diff --git a/.env.example b/.env.example index 5c4e41e2eb1..8965068dce2 100644 --- a/.env.example +++ b/.env.example @@ -1,22 +1,33 @@ # rename this file to .env and supply the values listed below # also make sure they are available to the build tool (e.g. Netlify) -# warning: variables prefixed with GATSBY_ will be made available to client-side code +# warning: variables prefixed with NEXT_PUBLIC_ will be made available to client-side code # be careful not to expose sensitive data (e.g. your Algolia admin key) -ALGOLIA_ADMIN_KEY=insertValue -ETHERSCAN_API_KEY=insertValue -GATSBY_ALGOLIA_APP_ID=insertValue -GATSBY_ALGOLIA_SEARCH_KEY=insertValue -GATSBY_ALGOLIA_BASE_SEARCH_INDEX_NAME=insertValue -GATSBY_GITHUB_TOKEN_READ_ONLY=insertValue -GATSBY_FUNCTIONS_PATH=insertValue -# Build pages only for the specified langs. Leave it empty to build all the langs -# e.g. `en,fr` will only build english and french pages -# Note: always include `en` as it is the default lang of the site -GATSBY_BUILD_LANGS= +# Algolia environment (app ID, search key and base search index name required for search) +# NEXT_PUBLIC_ALGOLIA_APP_ID=insertValue +# NEXT_PUBLIC_ALGOLIA_SEARCH_KEY=insertValue +# NEXT_PUBLIC_ALGOLIA_BASE_SEARCH_INDEX_NAME=insertValue +# NEXT_PUBLIC_GITHUB_TOKEN_READ_ONLY=insertValue + +# Etherscan API key (required for Etherscan API fetches) +# ETHERSCAN_API_KEY=insertValue + +# Google API key and Calendar ID (required to fetch Calendar events) +# GOOGLE_API_KEY= +# GOOGLE_CALENDAR_ID= -# Folders or files to ignore from the `src/content` folder -IGNORE_CONTENT=**/docs,**/tutorials +# Matomo environment (URL and site ID required for analytics) +NEXT_PUBLIC_MATOMO_URL= +NEXT_PUBLIC_MATOMO_SITE_ID= # Used to avoid loading Matomo in our preview deploys -IS_PREVIEW_DEPLOY=false \ No newline at end of file +IS_PREVIEW_DEPLOY=false + +# Build pages only for the specified langs. Leave it empty to build all the langs +# e.g. `en,fr` will only build English and French pages +# Note: always include `en` as it is the default lang of the site +BUILD_LOCALES= + +# If resource constraints are being hit during builds, change LIMIT_CPUS to a +# fixed number of CPUs (e.g. 2) to limit the demand during build time +LIMIT_CPUS= \ No newline at end of file diff --git a/.eslintignore b/.eslintignore index 1d630a7b202..422c3919cbb 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,2 +1,3 @@ -# The content is used as a code example in /src/pages/index.js -src/data/CreateWallet.js \ No newline at end of file +.next +dist +node_modules/ diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 00000000000..c50139c55cd --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,42 @@ +{ + "extends": ["next/core-web-vitals", "prettier", "plugin:storybook/recommended"], + "env": { "es6": true }, + "plugins": ["simple-import-sort"], + "rules": { + "simple-import-sort/imports": [ + "error", + { + "groups": [ + // Node.js builtins. + [ + "^(assert|buffer|child_process|cluster|console|constants|crypto|dgram|dns|domain|events|fs|http|https|module|net|os|path|punycode|querystring|readline|repl|stream|string_decoder|sys|timers|tls|tty|url|util|vm|zlib|freelist|v8|process|async_hooks|http2|perf_hooks)(/.*|$)" + ], + // Packages. `react` related packages come first. + // Also, put `react-icons` in sorting order not with `react` + ["^react(?!-.)$", "^\\w", "^@\\w"], + // The Chakra theme directory if imported to story file or other places + ["^@/@chakra-ui"], + // From the `types` directory. + ["^@/lib/types", "^@/lib/interfaces"], + // From the `components` directory. + ["^@/components"], + // From the `utils` directory. + ["^@/lib/utils"], + // From the `data` directory. + ["^@/data"], + // From the `constants` directory. + ["^@/lib/constants"], + // Parent imports. Put `..` last. + ["^\\.\\.(?!/?$)", "^\\.\\./?$"], + // Other relative imports. Put same-folder imports and `.` last. + ["^\\./(?=.*/)(?!/?$)", "^\\.(?!/?$)", "^\\./?$"], + // Style imports. + ["^.+\\.s?css$"], + // Side effect imports. + ["^\\u0000"] + ] + } + ], + "simple-import-sort/exports": "error" + } +} diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index db9004a7f85..7e2178aaab4 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -8,4 +8,4 @@ * @wackerow @corwintines @pettinarip @minimalsm @nhsz # Owners of specific files -/src/data/consensus-bounty-hunters.csv @djrtwo @asanso @fredriksvantes +/src/data/consensus-bounty-hunters.json @djrtwo @asanso @fredriksvantes diff --git a/.github/labeler.yml b/.github/labeler.yml index f5b8c69e702..b9dfc30db1a 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -1,5 +1,6 @@ "review needed :eyes:": - src/**/* + - public/* "documentation :book:": - README.md @@ -7,28 +8,35 @@ "tooling :wrench:": - .github/**/* - src/scripts/* - - netlify.toml + - src/lib/* + - src/hooks/* "dependencies :package:": - package.json - yarn.lock "internal :house:": - - gatsby-browser.js - - gatsby-config.js - - gatsby-node.js - - gatsby-ssr.js - .all-contributorsrc + - i18n.config.json + - next.config.js + - next-i18next.config,js + - next-sitemap.config.js + - tsconfig.json + - .nvmrc + - .eslintignore + - .eslintrc.json + - .prettierignore + - .prettierrc + - netlify.toml "translation :earth_africa:": - src/content/translations/**/* - - src/intl/* - - src/utils/translations.js + - src/intl/**/* + - src/lib/utils/translations.ts "content :fountain_pen:": - src/pages/* - - src/pages-conditional/* - - src/content/**/* + - public/content/**/* "event :date:": - src/data/community-events.json diff --git a/.github/workflows/chromatic.yml b/.github/workflows/chromatic.yml index df583ee1e7b..ceac26fc65f 100644 --- a/.github/workflows/chromatic.yml +++ b/.github/workflows/chromatic.yml @@ -14,9 +14,8 @@ on: # Only run on file changes in any of these paths - "src/components/**/*" - "src/pages/**/*" - - "src/pages-conditional/**/*" - - "src/templates/**/*" - - "src/@chakra-ui/gatsby-plugin/**/*" + - "src/layouts/**/*" + - "src/@chakra-ui/**/*" # List of jobs jobs: diff --git a/.gitignore b/.gitignore index 4cd730d60a1..091c2e7d306 100644 --- a/.gitignore +++ b/.gitignore @@ -1,91 +1,48 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript +# dependencies +/node_modules +/.pnp +.pnp.js -# Compiled binary addons (http://nodejs.org/api/addons.html) -build/Release +# testing +/coverage -# Dependency directories -node_modules/ -jspm_packages/ +# next.js +/.next/ +/out/ -# Typescript v1 declaration files -typings/ +# production +/build -# Optional npm cache directory -.npm +# misc +.DS_Store +*.pem -# Optional eslint cache -.eslintcache +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* -# Optional REPL history -.node_repl_history +# local env files +.env*.local +.env -# Output of 'npm pack' -*.tgz +# vercel +.vercel -# dotenv environment variable files -.env +# typescript +*.tsbuildinfo +next-env.d.ts -# gatsby files -.cache/ -public +# rss feeds +feed.xml -# Mac files -.DS_Store +# Sitemaps +sitemap*.xml -# Yarn -yarn-error.log -.pnp/ -.pnp.js -# Yarn Integrity file -.yarn-integrity +# Robots.txt +robots.txt # Local Netlify folder .netlify - -# Custom build files -# This file is generated by `yarn copy-contributors` command -src/data/contributors.json -# These files are generated by `yarn merge-translations` command -src/intl/*.json -i18n/locales -i18n/merged -# Auto generated code when gatsby build the site -src/gatsby-types.d.ts - -# Exported Crowdin files -.crowdin - -# vscode workplace configuration -.vscode - -# storybook static files -storybook-static/ \ No newline at end of file diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 00000000000..209e3ef4b62 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +20 diff --git a/.prettierignore b/.prettierignore index 557dcfdb3ab..ed8032e23cc 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,4 +1,6 @@ -.cache -package.json +.next +node_modules +yarn.lock package-lock.json -public \ No newline at end of file +public +build diff --git a/.storybook/babel-storybook-config.ts b/.storybook/babel-storybook-config.ts deleted file mode 100644 index 4cde75eab03..00000000000 --- a/.storybook/babel-storybook-config.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { TransformOptions } from "@babel/core" - -export const babelConfig: TransformOptions = { - sourceType: "unambiguous", - presets: [ - [ - "@babel/preset-env", - { - targets: { - chrome: 100, - }, - }, - ], - "@babel/preset-typescript", - "@babel/preset-react", - ], - plugins: [], -} diff --git a/.storybook/i18next.ts b/.storybook/i18next.ts index 5f8c98f4116..b4cc0629781 100644 --- a/.storybook/i18next.ts +++ b/.storybook/i18next.ts @@ -1,5 +1,5 @@ import i18n, { Resource } from "i18next" -import { initReactI18next } from "gatsby-plugin-react-i18next" +import { initReactI18next } from "react-i18next" export const baseLocales = { en: { title: "English", left: "En" }, @@ -21,30 +21,31 @@ const ns = [ const supportedLngs = Object.keys(baseLocales) /** - * Taking the ns array and combining all the ids - * under a single ns per language, set to the default of "translation" + * Taking the ns array and generating those files for each language available. */ const resources: Resource = ns.reduce((acc, n) => { supportedLngs.forEach((lng) => { if (!acc[lng]) acc[lng] = {} + try { acc[lng] = { - translation: { - ...acc[lng].translation, - + ...acc[lng], + [n]: { + ...acc[lng][n], ...require(`../src/intl/${lng}/${n}.json`), }, } } catch { acc[lng] = { - translation: { - ...acc[lng].translation, - + ...acc[lng], + [n]: { + ...acc[lng][n], ...require(`../src/intl/en/${n}.json`), }, } } }) + return acc }, {}) diff --git a/.storybook/main.ts b/.storybook/main.ts index b8c350a0fce..43bcf585a63 100644 --- a/.storybook/main.ts +++ b/.storybook/main.ts @@ -1,68 +1,51 @@ -import { StorybookConfig } from "@storybook/react-webpack5" +import path from "path" + +import type { StorybookConfig } from "@storybook/nextjs" import { propNames } from "@chakra-ui/react" -import { babelConfig } from "./babel-storybook-config" + +/** + * Note regarding package.json settings related to Storybook: + * + * There is a resolutions option set for the package `jackspeak`. This is related to a + * workaround provided to make sure storybook ( as of v7.5.2) works correctly with + * Yarn v1 + * + * Reference: https://github.com/storybookjs/storybook/issues/22431#issuecomment-1630086092 + * + * The primary recommendation is to upgrade to Yarn 3 if possible + */ const config: StorybookConfig = { - stories: ["../src/components/**/*.stories.tsx"], + stories: ["../src/components/**/*.stories.{ts,tsx}"], addons: [ "@storybook/addon-links", "@storybook/addon-essentials", "@storybook/addon-interactions", - // https://storybook.js.org/addons/@storybook/addon-a11y/ - "@storybook/addon-a11y", "@chakra-ui/storybook-addon", "storybook-react-i18next", ], - staticDirs: ["../static", "../src/assets"], - babel: async () => ({ - ...babelConfig, - }), + staticDirs: ["../public"], framework: { - name: "@storybook/react-webpack5", + name: "@storybook/nextjs", options: {}, }, + docs: { + autodocs: "tag", + }, refs: { "@chakra-ui/react": { disable: true, }, }, - features: {}, - webpackFinal: async (config) => { - if ( - config.module != undefined && - config.module.rules != undefined && - config.module.rules[0] !== "..." - ) { - config.module.rules[0].exclude = [/node_modules\/(?!(gatsby)\/)/] - config.module.rules[0].use = [ - { - loader: require.resolve("babel-loader"), - options: { - presets: [ - // use @babel/preset-react for JSX and env (instead of staged presets) - require.resolve("@babel/preset-react"), - require.resolve("@babel/preset-env"), - ], - plugins: [ - // use babel-plugin-remove-graphql-queries to remove static queries from components when rendering in storybook - require.resolve("babel-plugin-remove-graphql-queries"), - ], - }, - }, - ] - } + webpackFinal: async (config: any) => { + // Add path aliases + config.resolve.alias["@"] = path.resolve(__dirname, "../src") + config.resolve.alias["@/public"] = path.resolve(__dirname, "../public") return config }, typescript: { - check: false, - checkOptions: {}, - reactDocgen: "react-docgen-typescript", reactDocgenTypescriptOptions: { - compilerOptions: { - allowSyntheticDefaultImports: false, - esModuleInterop: false, - }, shouldExtractLiteralValuesFromEnum: true, /** * For handling bloated controls table of Chakra Props @@ -84,5 +67,4 @@ const config: StorybookConfig = { }, }, } - export default config diff --git a/.storybook/manager.js b/.storybook/manager.js deleted file mode 100644 index 2b557ddd929..00000000000 --- a/.storybook/manager.js +++ /dev/null @@ -1,12 +0,0 @@ -import { addons } from "@storybook/addons" -import theme from "./theme" -import favicon from "../src/assets/favicon.png" - -addons.setConfig({ - theme, -}) - -const link = document.createElement("link") -link.setAttribute("rel", "shortcut icon") -link.setAttribute("href", favicon) -document.head.appendChild(link) diff --git a/.storybook/manager.ts b/.storybook/manager.ts new file mode 100644 index 00000000000..ca570b21dc6 --- /dev/null +++ b/.storybook/manager.ts @@ -0,0 +1,14 @@ +import { addons } from "@storybook/manager-api" +import theme from "./theme" +// @ts-ignore +import favicon from "../public/favicon.png" + +addons.setConfig({ + theme, +}) + +// In order to override the default favicon, and inject a data hash link to the png +const link = document.createElement("link") +link.setAttribute("rel", "shortcut icon") +link.setAttribute("href", favicon) +document.head.appendChild(link) diff --git a/.storybook/preview.ts b/.storybook/preview.ts index 47e84ccc1a4..3789ca58c91 100644 --- a/.storybook/preview.ts +++ b/.storybook/preview.ts @@ -1,34 +1,17 @@ -import { Preview } from "@storybook/react" -import { action } from "@storybook/addon-actions" +import { extendBaseTheme } from "@chakra-ui/react" +import type { Preview } from "@storybook/react" -import i18n, { baseLocales } from "./i18next" -import theme from "../src/@chakra-ui/gatsby-plugin/theme" -import "../static/fonts/inter-font-face.css" - -const chakraBreakpointArray = Object.entries(theme.breakpoints) +import theme from "../src/@chakra-ui/theme" -// Gatsby's Link overrides: -// Gatsby Link calls the `enqueue` & `hovering` methods on the global variable ___loader. -// This global object isn't set in storybook context, requiring you to override it to empty functions (no-op), -// so Gatsby Link doesn't throw errors. -global.___loader = { - enqueue: () => {}, - hovering: () => {}, -} -// This global variable prevents the "__BASE_PATH__ is not defined" error inside Storybook. -global.__BASE_PATH__ = "/" +import i18n, { baseLocales } from "./i18next" -// Navigating through a gatsby app using gatsby-link or any other gatsby component will use the `___navigate` method. -// In Storybook, it makes more sense to log an action than doing an actual navigate. Check out the actions addon docs for more info: https://storybook.js.org/docs/react/essentials/actions +const extendedTheme = extendBaseTheme(theme) -// @ts-ignore -window.___navigate = (pathname) => { - action("NavigateTo:")(pathname) -} +const chakraBreakpointArray = Object.entries(extendedTheme.breakpoints) const preview: Preview = { globals: { - locale: "en", + locale: 'en', locales: baseLocales, }, parameters: { @@ -37,14 +20,14 @@ const preview: Preview = { controls: { matchers: { color: /(background|color)$/i, - date: /Date$/, + date: /Date$/i, }, }, backgrounds: { disable: true, }, chakra: { - theme, + theme: extendedTheme, }, layout: "centered", // Modify viewport selection to match Chakra breakpoints (or custom breakpoints) @@ -52,8 +35,18 @@ const preview: Preview = { viewports: chakraBreakpointArray.reduce((prevVal, currVal) => { const [token, key] = currVal - // Unnecessary breakpoint - if (token === "base") return { ...prevVal } + // Replace base value + if (token === "base") + return { + ...prevVal, + base: { + name: "base", + styles: { + width: "375px", // A popular minimum mobile width + height: "600px", + }, + }, + } return { ...prevVal, diff --git a/.storybook/theme.js b/.storybook/theme.js deleted file mode 100644 index f67075e44a7..00000000000 --- a/.storybook/theme.js +++ /dev/null @@ -1,27 +0,0 @@ -import { create } from "@storybook/theming" -// @ts-ignore -import brandImage from "./preview-logo.svg" - -export default create({ - base: "dark", - - appBg: "#222222", - appBorderColor: "white", - appBorderRadius: 4, - - brandTitle: "Ethereum.org", - brandImage, - brandUrl: "https://www.ethereum.org", - - barSelectedColor: "#ff7324", - - colorSecondary: "#ff7324", - - fontBase: "Inter, sans-serif", - - textColor: "#f2f2f2", - textMutedColor: "#b2b2b2", - - inputBorder: "#F7F7F7", - inputBorderRadius: 4, -}) diff --git a/.storybook/theme.ts b/.storybook/theme.ts new file mode 100644 index 00000000000..a55d128fecf --- /dev/null +++ b/.storybook/theme.ts @@ -0,0 +1,28 @@ +import { create } from "@storybook/theming" + +// @ts-ignore +import brandImage from "./preview-logo.svg" + +export default create({ + base: "dark", + + appBg: "#222222", + appBorderColor: "white", + appBorderRadius: 4, + + brandTitle: "Ethereum.org", + brandImage, + brandUrl: "https://www.ethereum.org", + + barSelectedColor: "#ff7324", + + colorSecondary: "#ff7324", + + fontBase: "Inter, sans-serif", + + textColor: "#f2f2f2", + textMutedColor: "#b2b2b2", + + inputBorder: "#F7F7F7", + inputBorderRadius: 4, +}) diff --git a/GC-preview-deploy.png b/GC-preview-deploy.png deleted file mode 100644 index 626464974ad..00000000000 Binary files a/GC-preview-deploy.png and /dev/null differ diff --git a/README.md b/README.md index 0a66513ff04..9dd02195aa6 100644 --- a/README.md +++ b/README.md @@ -97,9 +97,9 @@ yarn start - Open this directory in your favorite text editor / IDE, and see your changes live by visiting `localhost:8000` from your browser - Pro Tip: - Explore scripts within `package.json` for more build options - - Get **faster** local builds by building only one language. E.g. in your `.env` file, set `GATSBY_BUILD_LANGS=en` to build the content only in English + - Get **faster** local builds by building only one language. E.g. in your `.env` file, set `BUILD_LOCALES=en` to build the content only in English -By default the script will build all the languages (complete list in `data/translations.json`) and will ignore the `/docs` and `/tutorials` folders. To control this behavior you can play with the `GATSBY_BUILD_LANGS` and `IGNORE_CONTENT` env variables. Check out `.env.example` to read more about them. +By default the script will build all the languages (complete list in `data/translations.json`) and will ignore the `/docs` and `/tutorials` folders. To control this behavior you can play with the `BUILD_LOCALES` and `IGNORE_CONTENT` env variables. Check out `.env.example` to read more about them. 3. Commit and prepare for pull request (PR). In your PR commit message, reference the issue it resolves (see [how to link a commit message to an issue using a keyword](https://docs.github.com/en/free-pro-team@latest/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword)). diff --git a/docs/best-practices.md b/docs/best-practices.md index e3d662d65bc..f53ab02f481 100644 --- a/docs/best-practices.md +++ b/docs/best-practices.md @@ -6,9 +6,9 @@ _Please read carefully if adding or altering any written language content_ How to prepare your content for translation depends on whether you're working on a simple Markdown/MDX page or a React component page. -**- MDX pages (`/src/content/page/`)** +**- MDX pages (`public/content/page/`)** -Markdown will be translated as whole pages of content, so no specific action is required. Simply create a new folder within `/src/content/` with the name of the page, then place index markdown file (ie. `index.md`) within the new folder. +Markdown will be translated as whole pages of content, so no specific action is required. Simply create a new folder within `public/content/` with the name of the page, then place index markdown file (ie. `index.md`) within the new folder. **- React component page** diff --git a/docs/next-docs/code-conventions.md b/docs/next-docs/code-conventions.md new file mode 100644 index 00000000000..f849daef6a0 --- /dev/null +++ b/docs/next-docs/code-conventions.md @@ -0,0 +1,70 @@ +# Code conventions + +Some conventions we are using related to the project structure, TypeScript, etc, to improve consistency and facilitate maintenance. + +## Utils + +Utility functions (utils) should be defined in standalone files inside `src/lib/utils` dir. + +## Scripts + +Scripts we use on build time and are not directly related to the source code (eg: Crowdin imports, GitHub tasks) should be defined in standalone files inside `src/scripts` dir. + +## Constants + +Global constants should be defined inside `src/lib/constants.ts` file. + +## TypeScript + +### Types + +TypeScript types should be defined inside `src/lib/types.ts` file. Note that some pre-existent types could be defined in other files and will be temporarily kept there during the migration, to facilitate synchronization. These types should be moved to `src/lib/types.ts` later. + +### Interfaces + +TypeScript types should be defined inside `src/lib/interfaces.ts` file. Note that some pre-existent interfaces could be defined in other files and will be temporarily kept there during the migration, to facilitate synchronization. These interfaces should be moved to `src/lib/interfaces.ts` later. + +### Component Props + +For all components, use the following pattern: + +```tsx +type ComponentProps = { + // Prop types +} + +// Destructure props at the declaration and use the name `props` when using the spread operator for the remaining props not specifically needed +const Component = ({ title, label, ...props }: ComponentProps) => { + // Component code +} + +/** + * Components using `forwardRef` from the Chakra UI package + * + * The first argument of the generic types is the props type signature. + * + * For the second argument of the generic types, you are declaring the primary element type that the component will render. + * This could be a `div`, `span`, `button`, etc. or a custom component (typeof Button) if said component is being used in the return. + */ +const Component = forwardRef( + ({ title, label, ...props }, ref) => { + // Component code + } +) +``` + +#### Prop Type Naming Convention + +For the props type signature use the naming convention `Props` to provide an explicit name for the type. This is helpful for importing the signature to other files like page component and not force the user to alias the import every time, while providing readability. + +#### Directly annotate the props object + +**Do not use `React.FC`** and instead annotate the props object directly. `React.FC` implies the `children` prop, but this is not always desired when there is a component that should not accept this prop. `React.FC` also does not allow for use of Generic types, or use of Generic type when doing type guarding like function overloading. It is also not generally recommended to use and [was removed from the create-react-app template](https://github.com/facebook/create-react-app/pull/8177). + +A positive side-effect to directly annoting the props object is for IDE intellisense where you can view the props when hovering over the component name to see it's signature. + +i.e. `const Component: ({ label, title, ...props }: ComponentProps) => React.JSX.Element` + +#### Use the type alias for props type + +Use `type` and not `interface` to have the most constraint on the signature. We should also not be modifying the signature such as using [declaration merging](https://www.typescriptlang.org/docs/handbook/declaration-merging.html#merging-interfaces). diff --git a/docs/next-docs/stack.md b/docs/next-docs/stack.md new file mode 100644 index 00000000000..cfd38446be1 --- /dev/null +++ b/docs/next-docs/stack.md @@ -0,0 +1,38 @@ +# The ethereum.org website stack + +- [Node.js](https://nodejs.org/) +- [Yarn package manager](https://yarnpkg.com/cli/install) +- [NextJS](https://nextjs.org/) + - React framework that provides some goodies out of the box (pages router, SSG, SSR, i18n support, Image component, etc) + - Configurable in `next.config.js` + - [NextJS Tutorial](https://nextjs.org/learn/foundations/about-nextjs) + - [NextJS Docs](https://nextjs.org/docs) +- [React](https://reactjs.org/) - A JavaScript library for building component-based user interfaces +- [Typescript](https://www.typescriptlang.org/) - TypeScript is a strongly typed programming language that builds on JavaScript +- [Chakra UI](https://chakra-ui.com/) - A UI library (Migration in progress) +- [Algolia](https://www.algolia.com/) - Site indexing, rapid intra-site search results, and search analytics. [Learn more on how we implement Algolia for site search](./docs/ALGOLIA_DOCSEARCH.md). + - Primary implementation: `/src/components/Search/index.ts` +- [Crowdin](https://crowdin.com/) - crowdsourcing for our translation efforts (See "Translation initiative" below) +- [GitHub Actions](https://github.com/features/actions) - Manages CI/CD, and issue tracking +- [Netlify](https://www.netlify.com/) - DNS management and primary host for `master` build. +- [Storybook](https://storybook.js.org/) - For UI development, testing, and documentation. Check out [our storybook!](https://dev--63b7ea99632763723c7f4d6b.chromatic.com/) +- [Chromatic](https://www.chromatic.com/) - Visual testing & UI reviews. Visit [our chromatic project](https://www.chromatic.com/builds?appId=63b7ea99632763723c7f4d6b) + +## Code structure + +| Folder | Primary use | +| -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `/src` | Main source folder for development. | +| `/public/assets` | Image assets. | +| `/src/components` | React components that do not function as standalone pages. | +| `/public/content` | Markdown/MDX files for site content stored here.
For example: `ethereum.org/en/about/` is built from `public/content/about/index.md`
The markdown files are parsed by `[...slug].tsx` and rendered using the proper layout in `ContentPage.getLayout` method. | +| `/public/content/developers/docs` | \*Markdown files in here use the Docs layout: `src/layouts/Docs.tsx` | +| `/public/content/developers/tutorials` | \*Markdown files in here use the Tutorial layout: `src/layouts/Tutorial.tsx` | +| `/src/data` | General data files importable by components. | +| `/src/hooks` | Custom React hooks. | +| `/src/intl` | Language translation JSON files. | +| `/src/pages/api` | NextJS API Routes (https://nextjs.org/docs/pages/building-your-application/routing/api-routes) | +| `/src/pages` | React components that function as standalone pages. | +| `/src/scripts`
`/src/lib/utils` | Custom utility scripts. | +| `src/@chakra-ui` | Stores `theme.ts` which contains our custom Chakra theme, along with src/@chakra-ui/`semanticTokens.ts` (dark/light mode tokens) and custom Chakra components styles. | +| `src/layouts` | NextJS layouts (https://nextjs.org/docs/pages/building-your-application/routing/pages-and-layouts#with-typescript) that define layouts of different regions of the site. | diff --git a/docs/stack.md b/docs/stack.md index f74921223e9..be3bc9ee58a 100644 --- a/docs/stack.md +++ b/docs/stack.md @@ -22,20 +22,20 @@ ## Code structure -| Folder | Primary use | -| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `/src` | Main source folder for development | -| `/src/assets` | Image assets | -| `/src/components` | React components that do not function as standalone pages | -| `/src/content` | Markdown/MDX files for site content stored here.
For example: `ethereum.org/en/about/` is built from `src/content/about/index.md`
The markdown files are parsed and rendered by `src/templates/static.ts`\* | -| `/src/content/developers/docs` | \*Markdown files in here use the Docs template: `src/templates/docs.ts` | -| `/src/content/developers/tutorials` | \*Markdown files in here use the Tutorial template: `src/templates/tutorial.ts` | -| `/src/data` | General data files importable by components | -| `/src/hooks` | Custom React hooks | -| `/src/intl` | Language translation JSON files | -| `/src/lambda` | Lambda function scripts for API calls | -| `/src/pages`
`/src/pages-conditional` | React components that function as standalone pages.
For example: `ethereum.org/en/wallets/find-wallet` is built from `src/pages/wallets/find-wallet.ts` | -| `/src/scripts`
`/src/utils` | Custom utility scripts | -| `/src/styles` | Stores `layout.css` which contains root level css styling | -| `/src/templates` | TSX templates that define layouts of different regions of the site | -| `/src/theme.ts` | Declares site color themes, breakpoints and other constants (try to utilize these colors first) | +| Folder | Primary use | +| ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `/src` | Main source folder for development | +| `/src/assets` | Image assets | +| `/src/components` | React components that do not function as standalone pages | +| `/public/content` | Markdown/MDX files for site content stored here.
For example: `ethereum.org/en/about/` is built from `public/content/about/index.md`
The markdown files are parsed and rendered by `src/templates/static.ts`\* | +| `/public/content/developers/docs` | \*Markdown files in here use the Docs template: `src/templates/docs.ts` | +| `/public/content/developers/tutorials` | \*Markdown files in here use the Tutorial template: `src/templates/tutorial.ts` | +| `/src/data` | General data files importable by components | +| `/src/hooks` | Custom React hooks | +| `/src/intl` | Language translation JSON files | +| `/src/lambda` | Lambda function scripts for API calls | +| `/src/pages`
`/src/pages-conditional` | React components that function as standalone pages.
For example: `ethereum.org/en/wallets/find-wallet` is built from `src/pages/wallets/find-wallet.ts` | +| `/src/scripts`
`/src/utils` | Custom utility scripts | +| `/src/styles` | Stores `layout.css` which contains root level css styling | +| `/src/templates` | TSX templates that define layouts of different regions of the site | +| `/src/theme.ts` | Declares site color themes, breakpoints and other constants (try to utilize these colors first) | diff --git a/gatsby-browser.tsx b/gatsby-browser.tsx deleted file mode 100644 index 87ef1ba9de5..00000000000 --- a/gatsby-browser.tsx +++ /dev/null @@ -1,12 +0,0 @@ -/** - * Implement Gatsby's Browser APIs in this file. - * - * See: https://www.gatsbyjs.org/docs/browser-apis/ - */ - -import Prism from "prism-react-renderer/prism" -;(typeof global !== "undefined" ? global : window).Prism = Prism - -// Default languages included: -// https://github.com/FormidableLabs/prism-react-renderer/blob/master/src/vendor/prism/includeLangs.js -require("prismjs/components/prism-solidity") diff --git a/gatsby-config.ts b/gatsby-config.ts deleted file mode 100644 index f38438bdd9e..00000000000 --- a/gatsby-config.ts +++ /dev/null @@ -1,325 +0,0 @@ -import "dotenv/config" -import path from "path" - -import type { GatsbyConfig } from "gatsby" - -import { - supportedLanguages, - defaultLanguage, - ignoreLanguages, -} from "./src/utils/languages" - -import { IS_PREVIEW } from "./src/utils/env" - -const siteUrl = `https://ethereum.org` - -const ignoreContent = (process.env.IGNORE_CONTENT || "") - .split(",") - .filter(Boolean) - -const ignoreTranslations = ignoreLanguages.map( - (lang) => `**/translations\/${lang}` -) - -const config: GatsbyConfig = { - graphqlTypegen: true, - siteMetadata: { - // `title` & `description` pulls from respective ${lang}.json files in PageMetadata.js - title: `ethereum.org`, - description: `Ethereum is a global, decentralized platform for money and new kinds of applications. On Ethereum, you can write code that controls money, and build applications accessible anywhere in the world.`, - url: siteUrl, - siteUrl, - author: `@ethereum`, - defaultLanguage, - supportedLanguages, - editContentUrl: `https://github.com/ethereum/ethereum-org-website/tree/dev/`, - }, - plugins: [ - // Web app manifest - { - resolve: `gatsby-plugin-manifest`, - options: { - name: `ethereum.org`, - short_name: `ethereum.org`, - start_url: `/en/`, - background_color: `#ffffff`, - theme_color: `#222222`, - display: `standalone`, - icon: `src/assets/favicon.png`, - }, - }, - // Sitemap generator (ethereum.org/sitemap/sitemap-index.xml) - { - resolve: `gatsby-plugin-sitemap`, - options: { - output: "/sitemap", - query: `{ - site { - siteMetadata { - siteUrl - } - } - allSitePage { - nodes { - path - } - } - }`, - resolvePages: ({ site, allSitePage: { nodes: allPages } }) => { - return allPages - .filter((page) => { - // Filter out 404 pages - return !page.path.includes("404") - }) - .map((page) => ({ ...page, siteUrl: site.siteMetadata.siteUrl })) - }, - serialize: ({ path, siteUrl }: { path: string; siteUrl: string }) => { - const url = `${siteUrl}${path}` - const changefreq = path.includes(`/${defaultLanguage}/`) - ? `weekly` - : `monthly` - const priority = path.includes(`/${defaultLanguage}/`) ? 0.7 : 0.5 - return { - url, - changefreq, - priority, - } - }, - }, - }, - // robots.txt creation - { - resolve: "gatsby-plugin-robots-txt", - options: { - host: siteUrl, - sitemap: `${siteUrl}/sitemap/sitemap-index.xml`, - policy: [{ userAgent: "*", allow: "/" }], - }, - }, - // Ability to set custom IDs for headings (for translations) - // i.e. https://www.markdownguide.org/extended-syntax/#heading-ids - `gatsby-remark-autolink-headers`, - // Image support in markdown - `gatsby-remark-images`, - `gatsby-remark-copy-linked-files`, - // READING time - "gatsby-remark-reading-time", - // MDX support - { - resolve: `gatsby-plugin-mdx`, - options: { - // process all `.md` files as MDX - extensions: [`.mdx`, `.md`], - // Workaround to fix `backgroundColor` bug: - // https://github.com/gatsbyjs/gatsby/issues/25272 - plugins: [ - { - resolve: `gatsby-remark-images`, - options: { - backgroundColor: `transparent`, - maxWidth: 1200, - }, - }, - ], - // Note: in order for MDX to work with gatsby-remark-plugins - // The plugin must be listed top-level & in gatsbyRemarkPlugins - // See: https://www.gatsbyjs.org/docs/mdx/plugins/ - gatsbyRemarkPlugins: [ - { - // Local plugin to adjust the images & links urls of the translated md files - resolve: path.resolve(`./plugins/gatsby-remark-fix-static-urls`), - }, - { - resolve: `gatsby-remark-autolink-headers`, - options: { - enableCustomId: true, - elements: [`h1`, `h2`, `h3`, `h4`], - className: `header-anchor`, - }, - }, - { - resolve: `gatsby-remark-images`, - options: { - backgroundColor: `transparent`, - maxWidth: 1200, - }, - }, - { - resolve: `gatsby-remark-copy-linked-files`, - options: { - maxWidth: 1200, - }, - }, - ], - remarkPlugins: [], - }, - }, - // SEO tags - `gatsby-plugin-react-helmet`, - { - resolve: `gatsby-plugin-react-helmet-canonical-urls`, - options: { - siteUrl, - noQueryString: true, - }, - }, - // Needed for `gatsby-plugin-image` - `gatsby-plugin-image`, - `gatsby-plugin-sharp`, - `gatsby-transformer-sharp`, - // SVG support - { - resolve: "gatsby-plugin-react-svg", - options: { - rule: { - include: /assets/, - }, - }, - }, - // CSS in JS - { - resolve: "@chakra-ui/gatsby-plugin", - options: { - resetCSS: true, - isUsingColorMode: true, - portalZIndex: 1001, - }, - }, - // Source assets - { - resolve: `gatsby-source-filesystem`, - options: { - name: `assets`, - path: path.resolve(`src/assets`), - }, - }, - // Process files from /src/content/ (used in gatsby-node.js) - { - resolve: `gatsby-source-filesystem`, - options: { - name: `content`, - path: path.resolve(`src/content`), - ignore: [...ignoreContent, ...ignoreTranslations], - }, - }, - // Source data - { - resolve: `gatsby-source-filesystem`, - options: { - name: `data`, - path: path.resolve(`src/data`), - }, - }, - { - resolve: `gatsby-source-filesystem`, - options: { - path: path.resolve(`src/data/translation-reports`), - }, - }, - // Process files within /src/data/ - `gatsby-transformer-csv`, - // Process JSON files - `gatsby-transformer-json`, - // Add git information on File fields from latest commit: date, author and email - // Used for `Last updated` fields - { - resolve: `gatsby-transformer-gitinfo`, - options: { - include: /\.md$|\.csv/i, // Only .md & .csv files - }, - }, - // Needed for Gatsby Cloud redirect support - { - resolve: `gatsby-plugin-gatsby-cloud`, - options: { - generateMatchPathRewrites: false, - }, - }, - // Creates `_redirects` & `_headers` build files for Netlify - { - resolve: `gatsby-plugin-netlify`, - options: { - generateMatchPathRewrites: false, - }, - }, - // i18n support - { - resolve: `gatsby-source-filesystem`, - options: { - path: path.resolve(`./i18n/locales`), - name: `locale`, - }, - }, - // Wraps the entire page with a custom layout component - // Note: keep this before the i18n plugin declaration in order to have the - // i18n provider wrapping the layout component - { - resolve: `gatsby-plugin-layout`, - options: { - component: path.resolve(`./src/components/Layout`), - }, - }, - { - resolve: `gatsby-plugin-react-i18next`, - options: { - localeJsonSourceName: `locale`, // name given to `gatsby-source-filesystem` plugin. - languages: supportedLanguages, - defaultLanguage, - generateDefaultLanguagePage: true, - redirect: false, - siteUrl, - trailingSlash: "always", - // i18next options - i18nextOptions: { - fallbackLng: defaultLanguage, - interpolation: { - escapeValue: false, - }, - load: "currentOnly", - lowerCaseLng: true, - cleanCode: true, - react: { - transSupportBasicHtmlNodes: true, - transKeepBasicHtmlNodesFor: [ - "br", - "strong", - "i", - "bold", - "b", - "em", - "sup", - ], - }, - keySeparator: false, - nsSeparator: false, - }, - }, - }, - ], - // https://www.gatsbyjs.com/docs/reference/release-notes/v2.28/#feature-flags-in-gatsby-configjs - flags: { - FAST_DEV: true, // DEV_SSR, QUERY_ON_DEMAND & LAZY_IMAGES - }, -} - -// Avoid loading Matomo in preview deploys since NODE_ENV is `production` in -// there and it will send testing data as production otherwise -if (!IS_PREVIEW) { - config.plugins = [ - ...(config.plugins || []), - // Matomo analytics - { - resolve: "gatsby-plugin-matomo", - options: { - siteId: "4", - matomoUrl: "https://ethereumfoundation.matomo.cloud", - siteUrl, - matomoPhpScript: "matomo.php", - matomoJsScript: "matomo.js", - trackLoad: false, - }, - }, - ] -} - -export default config diff --git a/gatsby-node.ts b/gatsby-node.ts deleted file mode 100644 index 2bf78171cd7..00000000000 --- a/gatsby-node.ts +++ /dev/null @@ -1,498 +0,0 @@ -// https://www.gatsbyjs.org/docs/node-apis/ -import fs from "fs" -import path from "path" -import util from "util" -import child_process from "child_process" -import { createFilePath } from "gatsby-source-filesystem" -import type { GatsbyNode } from "gatsby" - -import type { Context } from "./src/types" - -import * as Schema from "./src/schema" - -import createLocales from "./src/scripts/createLocales" -import copyContributors from "./src/scripts/copyContributors" - -import { - supportedLanguages, - defaultLanguage, - Lang, -} from "./src/utils/languages" -import { IS_DEV } from "./src/utils/env" -import redirects from "./redirects.json" - -const exec = util.promisify(child_process.exec) - -const commonRedirectProps = { - isPermanent: true, - ignoreCase: true, - force: true, -} - -/** - * Markdown isOutdated check - * Parse header ids in markdown file (both translated and english) and compare their info structure. - * If this structure is not the same, then the file isOutdated. - * If there is not english file, return true - * @param {string} filePath filepath for translated mdx file - * @returns boolean for if file is outdated or not - */ -const checkIsMdxOutdated = (filePath: string): boolean => { - // .replace(/\\/g, "/") to replace \ in windows paths ex: C:\\folder\\myfile.txt becomes C:/folder/myfile.txt - const dirname = path.resolve("./").replace(/\\/g, "/") - const splitPath = filePath.split(dirname) - const tempSplitPath = splitPath[1] - const tempSplit = tempSplitPath.split("/") - tempSplit.splice(3, 2) - const englishPath = path.resolve(`${tempSplit.join("/")}`) - - const re = /([#]+) [^\{]+\{#([^\}]+)\}/gim - let translatedData, englishData - - try { - translatedData = fs.readFileSync(filePath, "utf-8") - englishData = fs.readFileSync(englishPath, "utf-8") - } catch { - return true - } - - let englishMatch = "" - let intlMatch = "" - try { - englishData.match(re).forEach((match) => { - englishMatch += match.replace(re, (_, p1, p2) => p1 + p2) - }) - translatedData.match(re).forEach((match) => { - intlMatch += match.replace(re, (_, p1, p2) => p1 + p2) - }) - } catch { - console.warn(`regex error in ${englishPath}`) - return true - } - - return englishMatch !== intlMatch -} - -/** - * JSON isOutdated check - * Checks if translation JSON file exists. - * If translation file exists, checks that all translations are present (checks keys), and that all the keys are the same. - * If translation file exists, isContentEnglish will be false - * @param {*} urlPath url path used to derive file path from - * @param {*} lang language abbreviation for language path - * @returns {{isOutdated: boolean, isContentEnglish: boolean}} - */ -const checkIsPageOutdated = async ( - urlPath: string, - lang: Lang -): Promise<{ isOutdated: boolean; isContentEnglish: boolean }> => { - // Files that need index appended on the end. Ex page-index.json, page-developers-index.json, page-upgrades-index.json - const indexFilePaths = ["", "developers", "upgrades"] - const filePath = urlPath.split("/").filter((text) => text !== "") - - if ( - indexFilePaths.includes(filePath[filePath.length - 1]) || - filePath.length === 0 - ) { - filePath.push("index") - } - - const joinedFilepath = filePath.join("-") - const srcPath = path.resolve(`src/intl/${lang}/page-${joinedFilepath}.json`) - const englishPath = path.resolve( - `src/intl/${defaultLanguage}/page-${joinedFilepath}.json` - ) - - // If no file exists, default to english - if (!fs.existsSync(srcPath)) { - return { - // Consider always defaultLanguage paths as updated - isOutdated: lang !== defaultLanguage, - isContentEnglish: true, - } - } else { - let translatedData, englishData, translatedKeys, englishKeys - try { - translatedData = JSON.parse(fs.readFileSync(srcPath).toString()) - englishData = JSON.parse(fs.readFileSync(englishPath).toString()) - translatedKeys = Object.keys(translatedData) - englishKeys = Object.keys(englishData) - } catch (err) { - return { - isOutdated: true, - isContentEnglish: true, - } - } - // Check if same amount of keys - if (translatedKeys.length !== englishKeys.length) { - return { - isOutdated: true, - isContentEnglish: false, - } - } - - // Check if all the keys are the same - if ( - JSON.stringify(translatedKeys.sort()) !== - JSON.stringify(englishKeys.sort()) - ) { - return { - isOutdated: true, - isContentEnglish: false, - } - } - - return { - isOutdated: false, - isContentEnglish: false, - } - } -} - -// Loops through all the files dictated by Gatsby (building pages folder), as well as -// folders flagged through the gatsby-source-filesystem plugin in gatsby-config -export const onCreateNode: GatsbyNode<{ - fileAbsolutePath: string -}>["onCreateNode"] = async ({ node, getNode, actions }) => { - const { createNodeField } = actions - - // Edit markdown nodes - if (node.internal.type === `Mdx`) { - let slug = createFilePath({ node, getNode, basePath: `content` }) - let isOutdated = false - - if (slug.includes("/translations/")) { - slug = slug.replace("/translations", "") - isOutdated = await checkIsMdxOutdated(node.fileAbsolutePath) - } else { - slug = `/${defaultLanguage}${slug}` - } - - const absolutePath = node.fileAbsolutePath as string - const relativePathStart = absolutePath.lastIndexOf("src/") - const relativePath = absolutePath.substring(relativePathStart) - - // Boolean if page is outdated (most translated files are) - createNodeField({ - node, - name: `isOutdated`, - value: isOutdated, - }) - // Page URI - createNodeField({ - node, - name: `slug`, - value: slug, - }) - // Relative path of file (for GitHub API commit history) - createNodeField({ - node, - name: `relativePath`, - value: relativePath, - }) - } -} - -export const createPages: GatsbyNode["createPages"] = async ({ - graphql, - actions, - reporter, -}) => { - const { createPage, createRedirect } = actions - - // custom redirects defined in `redirects.json` - redirects.forEach((redirect) => { - createRedirect({ - ...commonRedirectProps, - ...redirect, - }) - }) - - const { data, errors } = await graphql(` - query AllMdx { - allMdx { - edges { - node { - fields { - slug - relativePath - } - frontmatter { - lang - template - isOutdated - } - } - } - } - } - `) - - if (errors) { - reporter.panicOnBuild('🚨 ERROR: Loading "createPages" query') - } - - // For all markdown nodes, create a page - data?.allMdx.edges.filter(({ node }) => { - const slug = node.fields?.slug - - if (!slug) { - throw new Error(`Missing 'slug' node property.`) - } - - // Set template of markdown files - const nodeTemplate = node.frontmatter?.template - let template = nodeTemplate ? nodeTemplate : `static` - if (slug.includes(`/tutorials/`)) { - template = `tutorial` - } else if (slug.includes(`/docs/`)) { - template = `docs` - } - - const isLegal = - slug.includes(`/cookie-policy/`) || - slug.includes(`/privacy-policy/`) || - slug.includes(`/terms-of-use/`) || - slug.includes(`/contributing/`) || - slug.includes(`/style-guide/`) - const language = node.frontmatter?.lang as Lang - if (!language) { - throw `Missing 'lang' frontmatter property. All markdown pages must have a lang property. Page slug: ${slug}` - } - const relativePath = node.fields.relativePath - if (!relativePath) { - throw new Error(`Missing 'relativePath' node property.`) - } - - // If markdown file is English, check for corresponding file in each language. - // e.g. English file: "src/content/community/index.md" - // e.g. corresponding German file: "src/content/translations/de/community/index.md" - if (language === defaultLanguage) { - createRedirect({ - ...commonRedirectProps, - fromPath: slug.slice(3), - toPath: slug, - }) - - for (const lang of supportedLanguages) { - const splitPath = relativePath.split("/") - splitPath.splice(2, 0, `translations/${lang}`) - const langPath = splitPath.join("/") - // If corresponding file doesn't exist, create a page for it. - if (!fs.existsSync(langPath)) { - const splitSlug = slug.split("/") - splitSlug.splice(1, 1, lang) - const langSlug = splitSlug.join("/") - createPage({ - path: langSlug, - component: path.resolve(`src/templates/${template}.tsx`), - context: { - language: lang, - languagesToFetch: [lang], - slug: langSlug, - ignoreTranslationBanner: isLegal, - isLegal: isLegal, - isOutdated: false, - isContentEnglish: true, - relativePath, // Use English path for template MDX query - isDefaultLang: lang === defaultLanguage, - // gatsby i18n plugin - i18n: { - language: lang, - languages: supportedLanguages, - defaultLanguage: defaultLanguage, - generateDefaultLanguagePage: false, - routed: true, - originalPath: langSlug.slice(3), - path: langSlug, - }, - }, - }) - } - } - } - - createPage({ - path: slug, - component: path.resolve(`src/templates/${template}.tsx`), - context: { - language, - languagesToFetch: [language], - slug, - isOutdated: !!node.frontmatter?.isOutdated, - isDefaultLang: language === defaultLanguage, - relativePath, - // gatsby i18n plugin - i18n: { - language, - languages: supportedLanguages, - defaultLanguage, - generateDefaultLanguagePage: false, - routed: true, - originalPath: slug.slice(3), - path: slug, - }, - }, - }) - }) - - // Create `/pages-conditional/` pages for each language unless a markdown page already exists. - // This avoids overwriting markdown pages with a component page of the same name. - // Note: once all these markdown pages have been replaced with updated JSON translation files, - // we can remove this logic and the `/pages-conditional/` directory. - const outdatedMarkdown = [`eth`, `dapps`, `wallets`, `what-is-ethereum`] - outdatedMarkdown.forEach((page) => { - const originalPath = `/${page}/` - - createRedirect({ - ...commonRedirectProps, - fromPath: originalPath, - toPath: `/${defaultLanguage}${originalPath}`, - }) - - supportedLanguages.forEach(async (lang) => { - const markdownPath = path.resolve( - `src/content/translations/${lang}/${page}/index.md` - ) - const langHasOutdatedMarkdown = fs.existsSync(markdownPath) - if (!langHasOutdatedMarkdown) { - // Check if json strings exists for language, if not mark `isContentEnglish` as true - const { isOutdated, isContentEnglish } = await checkIsPageOutdated( - page, - lang - ) - const slug = `/${lang}${originalPath}` - createPage({ - path: slug, - component: path.resolve(`src/pages-conditional/${page}.tsx`), - context: { - language: lang, - languagesToFetch: [lang], - slug, - isContentEnglish, - isOutdated, - isDefaultLang: lang === defaultLanguage, - // gatsby i18n plugin - i18n: { - language: lang, - languages: supportedLanguages, - defaultLanguage, - generateDefaultLanguagePage: false, - routed: true, - originalPath, - path: slug, - }, - }, - }) - } - }) - }) -} - -// Add additional context to translated pages -// Only ran when creating component pages -// https://www.gatsbyjs.com/docs/creating-and-modifying-pages/#pass-context-to-pages -export const onCreatePage: GatsbyNode["onCreatePage"] = async ({ - page, - actions, -}) => { - const { createPage, deletePage, createRedirect } = actions - const rootPath = page.path.slice(3) - const is404Page = rootPath.match(/^\/404(\/|.html)$/) - - if (!page.context) { - return - } - - // these are the native Gatsby pages (those living under `/pages`) - // which do not pass through the `createPages` hook thus they don't have our - // custom context in them - const isPageWithoutCustomContext = page.context.isOutdated === undefined - - if (isPageWithoutCustomContext) { - const { language, i18n } = page.context - const isDefaultLang = language === defaultLanguage - - // as we don't have our custom context for this page, we calculate & add it - // later to them - const { isOutdated, isContentEnglish } = await checkIsPageOutdated( - i18n.originalPath, - language - ) - - let newPage = { - ...page, - context: { - ...page.context, - languagesToFetch: [language], - // hide the outdated content banner for 404 pages - isOutdated: is404Page ? false : isOutdated, - // display TranslationBanner for translation-component pages that are still in English - isContentEnglish, - isDefaultLang, - }, - } - - // there seems to be a bug in the i18n plugin where 404 pages get a - // duplicated `/lang` in their `matchPath`s - if (newPage.matchPath?.includes(`/${language}/${language}/*`)) { - newPage = { ...newPage, matchPath: `/${language}/*` } - } - - // on dev, we will have 2 pages for the default lang - // - 1 for the ones with the prefix `/{defaultLang}/learn/` - // - 1 for the ones without the prefix `/learn/` - // we do this to avoid having a 404 on those without the prefix since in - // dev we don't have the redirects from the server - deletePage(page) - - if (IS_DEV) { - createPage(newPage) - } - - // `routed` means that the page have the lang prefix on the url - // e.g. `/en/learn` or `/en` - if (!IS_DEV && i18n.routed) { - createPage(newPage) - - if (isDefaultLang && !is404Page) { - createRedirect({ - ...commonRedirectProps, - fromPath: rootPath, - toPath: page.path, - }) - } - } - } -} - -export const onPostBootstrap: GatsbyNode["onPostBootstrap"] = ({ actions }) => { - const { createRedirect } = actions - - supportedLanguages.forEach((lang) => { - createRedirect({ - ...commonRedirectProps, - fromPath: `/${lang}/*`, - toPath: `/${lang}/404`, - statusCode: 404, - force: false, - }) - }) -} - -export const createSchemaCustomization: GatsbyNode["createSchemaCustomization"] = - ({ actions }) => { - const { createTypes } = actions - const { sdls } = Schema - - createTypes([...Object.keys(sdls).map((sdlKey) => sdls[sdlKey])]) - } - -export const onPreBootstrap: GatsbyNode["onPreBootstrap"] = async ({ - reporter, -}) => { - await createLocales() - reporter.info(`Created locales`) - copyContributors() - reporter.info(`Contributors copied`) -} diff --git a/gatsby-ssr.tsx b/gatsby-ssr.tsx deleted file mode 100644 index 6a715f45f15..00000000000 --- a/gatsby-ssr.tsx +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Implement Gatsby's SSR (Server Side Rendering) APIs in this file. - * - * See: https://www.gatsbyjs.org/docs/ssr-apis/ - */ - -import React from "react" - -import type { RenderBodyArgs } from "gatsby" - -export const onRenderBody = ({ setHeadComponents }: RenderBodyArgs) => { - setHeadComponents([ - , - ]) -} diff --git a/github.json b/github.json deleted file mode 100644 index 8eb04623b71..00000000000 --- a/github.json +++ /dev/null @@ -1,90962 +0,0 @@ -{ - "data": { - "__schema": { - "queryType": { "name": "Query" }, - "mutationType": { "name": "Mutation" }, - "subscriptionType": null, - "types": [ - { - "kind": "INPUT_OBJECT", - "name": "AcceptEnterpriseAdministratorInvitationInput", - "description": "Autogenerated input type of AcceptEnterpriseAdministratorInvitation", - "fields": null, - "inputFields": [ - { - "name": "invitationId", - "description": "The id of the invitation being accepted", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "AcceptEnterpriseAdministratorInvitationPayload", - "description": "Autogenerated return type of AcceptEnterpriseAdministratorInvitation", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "invitation", - "description": "The invitation that was accepted.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "EnterpriseAdministratorInvitation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "message", - "description": "A message confirming the result of accepting an administrator invitation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "AcceptTopicSuggestionInput", - "description": "Autogenerated input type of AcceptTopicSuggestion", - "fields": null, - "inputFields": [ - { - "name": "repositoryId", - "description": "The Node ID of the repository.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "name", - "description": "The name of the suggested topic.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "AcceptTopicSuggestionPayload", - "description": "Autogenerated return type of AcceptTopicSuggestion", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "topic", - "description": "The accepted topic.", - "args": [], - "type": { "kind": "OBJECT", "name": "Topic", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "Actor", - "description": "Represents an object which can take actions on GitHub. Typically a User or Bot.", - "fields": [ - { - "name": "avatarUrl", - "description": "A URL pointing to the actor's public avatar.", - "args": [ - { - "name": "size", - "description": "The size of the resulting square image.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "login", - "description": "The username of the actor.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this actor.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this actor.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Bot", "ofType": null }, - { - "kind": "OBJECT", - "name": "EnterpriseUserAccount", - "ofType": null - }, - { "kind": "OBJECT", "name": "Mannequin", "ofType": null }, - { "kind": "OBJECT", "name": "Organization", "ofType": null }, - { "kind": "OBJECT", "name": "User", "ofType": null } - ] - }, - { - "kind": "OBJECT", - "name": "ActorLocation", - "description": "Location information for an actor", - "fields": [ - { - "name": "city", - "description": "City", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "country", - "description": "Country name", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "countryCode", - "description": "Country code", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "region", - "description": "Region name", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "regionCode", - "description": "Region or state code", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "AddAssigneesToAssignableInput", - "description": "Autogenerated input type of AddAssigneesToAssignable", - "fields": null, - "inputFields": [ - { - "name": "assignableId", - "description": "The id of the assignable object to add assignees to.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "assigneeIds", - "description": "The id of users to add as assignees.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - } - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "AddAssigneesToAssignablePayload", - "description": "Autogenerated return type of AddAssigneesToAssignable", - "fields": [ - { - "name": "assignable", - "description": "The item that was assigned.", - "args": [], - "type": { - "kind": "INTERFACE", - "name": "Assignable", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "AddCommentInput", - "description": "Autogenerated input type of AddComment", - "fields": null, - "inputFields": [ - { - "name": "subjectId", - "description": "The Node ID of the subject to modify.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "body", - "description": "The contents of the comment.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "AddCommentPayload", - "description": "Autogenerated return type of AddComment", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commentEdge", - "description": "The edge from the subject's comment connection.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "IssueCommentEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "subject", - "description": "The subject", - "args": [], - "type": { "kind": "INTERFACE", "name": "Node", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "timelineEdge", - "description": "The edge from the subject's timeline connection.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "IssueTimelineItemEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "AddEnterpriseSupportEntitlementInput", - "description": "Autogenerated input type of AddEnterpriseSupportEntitlement", - "fields": null, - "inputFields": [ - { - "name": "enterpriseId", - "description": "The ID of the Enterprise which the admin belongs to.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "login", - "description": "The login of a member who will receive the support entitlement.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "AddEnterpriseSupportEntitlementPayload", - "description": "Autogenerated return type of AddEnterpriseSupportEntitlement", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "message", - "description": "A message confirming the result of adding the support entitlement.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "AddLabelsToLabelableInput", - "description": "Autogenerated input type of AddLabelsToLabelable", - "fields": null, - "inputFields": [ - { - "name": "labelableId", - "description": "The id of the labelable object to add labels to.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "labelIds", - "description": "The ids of the labels to add.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - } - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "AddLabelsToLabelablePayload", - "description": "Autogenerated return type of AddLabelsToLabelable", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "labelable", - "description": "The item that was labeled.", - "args": [], - "type": { - "kind": "INTERFACE", - "name": "Labelable", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "AddProjectCardInput", - "description": "Autogenerated input type of AddProjectCard", - "fields": null, - "inputFields": [ - { - "name": "projectColumnId", - "description": "The Node ID of the ProjectColumn.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "contentId", - "description": "The content of the card. Must be a member of the ProjectCardItem union", - "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, - "defaultValue": null - }, - { - "name": "note", - "description": "The note on the card.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "AddProjectCardPayload", - "description": "Autogenerated return type of AddProjectCard", - "fields": [ - { - "name": "cardEdge", - "description": "The edge from the ProjectColumn's card connection.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ProjectCardEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "projectColumn", - "description": "The ProjectColumn", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ProjectColumn", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "AddProjectColumnInput", - "description": "Autogenerated input type of AddProjectColumn", - "fields": null, - "inputFields": [ - { - "name": "projectId", - "description": "The Node ID of the project.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "name", - "description": "The name of the column.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "AddProjectColumnPayload", - "description": "Autogenerated return type of AddProjectColumn", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "columnEdge", - "description": "The edge from the project's column connection.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ProjectColumnEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "project", - "description": "The project", - "args": [], - "type": { "kind": "OBJECT", "name": "Project", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "AddPullRequestReviewCommentInput", - "description": "Autogenerated input type of AddPullRequestReviewComment", - "fields": null, - "inputFields": [ - { - "name": "pullRequestId", - "description": "The node ID of the pull request reviewing", - "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, - "defaultValue": null - }, - { - "name": "pullRequestReviewId", - "description": "The Node ID of the review to modify.", - "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, - "defaultValue": null - }, - { - "name": "commitOID", - "description": "The SHA of the commit to comment on.", - "type": { - "kind": "SCALAR", - "name": "GitObjectID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "body", - "description": "The text of the comment.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "path", - "description": "The relative path of the file to comment on.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "position", - "description": "The line index in the diff to comment on.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "inReplyTo", - "description": "The comment id to reply to.", - "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "AddPullRequestReviewCommentPayload", - "description": "Autogenerated return type of AddPullRequestReviewComment", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "comment", - "description": "The newly created comment.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequestReviewComment", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commentEdge", - "description": "The edge from the review's comment connection.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequestReviewCommentEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "AddPullRequestReviewInput", - "description": "Autogenerated input type of AddPullRequestReview", - "fields": null, - "inputFields": [ - { - "name": "pullRequestId", - "description": "The Node ID of the pull request to modify.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "commitOID", - "description": "The commit OID the review pertains to.", - "type": { - "kind": "SCALAR", - "name": "GitObjectID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "body", - "description": "The contents of the review body comment.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "event", - "description": "The event to perform on the pull request review.", - "type": { - "kind": "ENUM", - "name": "PullRequestReviewEvent", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "comments", - "description": "The review line comments.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DraftPullRequestReviewComment", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "threads", - "description": "The review line comment threads.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DraftPullRequestReviewThread", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "AddPullRequestReviewPayload", - "description": "Autogenerated return type of AddPullRequestReview", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequestReview", - "description": "The newly created pull request review.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequestReview", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reviewEdge", - "description": "The edge from the pull request's review connection.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequestReviewEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "AddPullRequestReviewThreadInput", - "description": "Autogenerated input type of AddPullRequestReviewThread", - "fields": null, - "inputFields": [ - { - "name": "path", - "description": "Path to the file being commented on.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "body", - "description": "Body of the thread's first comment.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "pullRequestId", - "description": "The node ID of the pull request reviewing", - "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, - "defaultValue": null - }, - { - "name": "pullRequestReviewId", - "description": "The Node ID of the review to modify.", - "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, - "defaultValue": null - }, - { - "name": "line", - "description": "The line of the blob to which the thread refers. The end of the line range for multi-line comments.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "side", - "description": "The side of the diff on which the line resides. For multi-line comments, this is the side for the end of the line range.", - "type": { "kind": "ENUM", "name": "DiffSide", "ofType": null }, - "defaultValue": "RIGHT" - }, - { - "name": "startLine", - "description": "The first line of the range to which the comment refers.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "startSide", - "description": "The side of the diff on which the start line resides.", - "type": { "kind": "ENUM", "name": "DiffSide", "ofType": null }, - "defaultValue": "RIGHT" - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "AddPullRequestReviewThreadPayload", - "description": "Autogenerated return type of AddPullRequestReviewThread", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "thread", - "description": "The newly created thread.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequestReviewThread", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "AddReactionInput", - "description": "Autogenerated input type of AddReaction", - "fields": null, - "inputFields": [ - { - "name": "subjectId", - "description": "The Node ID of the subject to modify.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "content", - "description": "The name of the emoji to react with.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ReactionContent", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "AddReactionPayload", - "description": "Autogenerated return type of AddReaction", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reaction", - "description": "The reaction object.", - "args": [], - "type": { "kind": "OBJECT", "name": "Reaction", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "subject", - "description": "The reactable subject.", - "args": [], - "type": { - "kind": "INTERFACE", - "name": "Reactable", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "AddStarInput", - "description": "Autogenerated input type of AddStar", - "fields": null, - "inputFields": [ - { - "name": "starrableId", - "description": "The Starrable ID to star.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "AddStarPayload", - "description": "Autogenerated return type of AddStar", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "starrable", - "description": "The starrable.", - "args": [], - "type": { - "kind": "INTERFACE", - "name": "Starrable", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "AddVerifiableDomainInput", - "description": "Autogenerated input type of AddVerifiableDomain", - "fields": null, - "inputFields": [ - { - "name": "ownerId", - "description": "The ID of the owner to add the domain to", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "domain", - "description": "The URL of the domain", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "AddVerifiableDomainPayload", - "description": "Autogenerated return type of AddVerifiableDomain", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "domain", - "description": "The verifiable domain that was added.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "VerifiableDomain", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "AddedToProjectEvent", - "description": "Represents a 'added_to_project' event on a given issue or pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "App", - "description": "A GitHub App.", - "fields": [ - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": "The description of the app.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "logoBackgroundColor", - "description": "The hex color code, without the leading '#', for the logo background.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "logoUrl", - "description": "A URL pointing to the app's logo.", - "args": [ - { - "name": "size", - "description": "The size of the resulting image.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The name of the app.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "slug", - "description": "A slug based on the name of the app for use in URLs.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The URL to the app's homepage.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "ArchiveRepositoryInput", - "description": "Autogenerated input type of ArchiveRepository", - "fields": null, - "inputFields": [ - { - "name": "repositoryId", - "description": "The ID of the repository to mark as archived.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ArchiveRepositoryPayload", - "description": "Autogenerated return type of ArchiveRepository", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository that was marked as archived.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "Assignable", - "description": "An object that can have users assigned to it.", - "fields": [ - { - "name": "assignees", - "description": "A list of Users assigned to this object.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Issue", "ofType": null }, - { "kind": "OBJECT", "name": "PullRequest", "ofType": null } - ] - }, - { - "kind": "OBJECT", - "name": "AssignedEvent", - "description": "Represents an 'assigned' event on any assignable object.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "assignable", - "description": "Identifies the assignable associated with the event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INTERFACE", - "name": "Assignable", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "assignee", - "description": "Identifies the user or mannequin that was assigned.", - "args": [], - "type": { "kind": "UNION", "name": "Assignee", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Identifies the user who was assigned.", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": true, - "deprecationReason": "Assignees can now be mannequins. Use the `assignee` field instead. Removal on 2020-01-01 UTC." - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "UNION", - "name": "Assignee", - "description": "Types that can be assigned to issues.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Bot", "ofType": null }, - { "kind": "OBJECT", "name": "Mannequin", "ofType": null }, - { "kind": "OBJECT", "name": "Organization", "ofType": null }, - { "kind": "OBJECT", "name": "User", "ofType": null } - ] - }, - { - "kind": "INTERFACE", - "name": "AuditEntry", - "description": "An entry in the audit log.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { - "kind": "OBJECT", - "name": "MembersCanDeleteReposClearAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "MembersCanDeleteReposDisableAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "MembersCanDeleteReposEnableAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OauthApplicationCreateAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgAddBillingManagerAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgAddMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgBlockUserAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgConfigDisableCollaboratorsOnlyAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgConfigEnableCollaboratorsOnlyAuditEntry", - "ofType": null - }, - { "kind": "OBJECT", "name": "OrgCreateAuditEntry", "ofType": null }, - { - "kind": "OBJECT", - "name": "OrgDisableOauthAppRestrictionsAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgDisableSamlAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgDisableTwoFactorRequirementAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgEnableOauthAppRestrictionsAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgEnableSamlAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgEnableTwoFactorRequirementAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgInviteMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgInviteToBusinessAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgOauthAppAccessApprovedAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgOauthAppAccessDeniedAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgOauthAppAccessRequestedAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgRemoveBillingManagerAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgRemoveMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgRemoveOutsideCollaboratorAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgRestoreMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgUnblockUserAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgUpdateDefaultRepositoryPermissionAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgUpdateMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgUpdateMemberRepositoryCreationPermissionAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgUpdateMemberRepositoryInvitationPermissionAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "PrivateRepositoryForkingDisableAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "PrivateRepositoryForkingEnableAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoAccessAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoAddMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoAddTopicAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoArchivedAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoChangeMergeSettingAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigDisableAnonymousGitAccessAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigDisableCollaboratorsOnlyAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigDisableContributorsOnlyAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigDisableSockpuppetDisallowedAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigEnableAnonymousGitAccessAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigEnableCollaboratorsOnlyAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigEnableContributorsOnlyAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigEnableSockpuppetDisallowedAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigLockAnonymousGitAccessAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigUnlockAnonymousGitAccessAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoCreateAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoDestroyAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoRemoveMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoRemoveTopicAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepositoryVisibilityChangeDisableAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepositoryVisibilityChangeEnableAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "TeamAddMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "TeamAddRepositoryAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "TeamChangeParentTeamAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "TeamRemoveMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "TeamRemoveRepositoryAuditEntry", - "ofType": null - } - ] - }, - { - "kind": "UNION", - "name": "AuditEntryActor", - "description": "Types that can initiate an audit log event.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Bot", "ofType": null }, - { "kind": "OBJECT", "name": "Organization", "ofType": null }, - { "kind": "OBJECT", "name": "User", "ofType": null } - ] - }, - { - "kind": "INPUT_OBJECT", - "name": "AuditLogOrder", - "description": "Ordering options for Audit Log connections.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field to order Audit Logs by.", - "type": { - "kind": "ENUM", - "name": "AuditLogOrderField", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The ordering direction.", - "type": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "AuditLogOrderField", - "description": "Properties by which Audit Log connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "CREATED_AT", - "description": "Order audit log entries by timestamp", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "AutoMergeDisabledEvent", - "description": "Represents a 'auto_merge_disabled' event on a given pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "disabler", - "description": "The user who disabled auto-merge for this Pull Request", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "PullRequest referenced by event", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reason", - "description": "The reason auto-merge was disabled", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reasonCode", - "description": "The reason_code relating to why auto-merge was disabled", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "AutoMergeEnabledEvent", - "description": "Represents a 'auto_merge_enabled' event on a given pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enabler", - "description": "The user who enabled auto-merge for this Pull Request", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "PullRequest referenced by event.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "AutoRebaseEnabledEvent", - "description": "Represents a 'auto_rebase_enabled' event on a given pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enabler", - "description": "The user who enabled auto-merge (rebase) for this Pull Request", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "PullRequest referenced by event.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "AutoSquashEnabledEvent", - "description": "Represents a 'auto_squash_enabled' event on a given pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enabler", - "description": "The user who enabled auto-merge (squash) for this Pull Request", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "PullRequest referenced by event.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "AutomaticBaseChangeFailedEvent", - "description": "Represents a 'automatic_base_change_failed' event on a given pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "newBase", - "description": "The new base for this PR", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "oldBase", - "description": "The old base for this PR", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "PullRequest referenced by event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "AutomaticBaseChangeSucceededEvent", - "description": "Represents a 'automatic_base_change_succeeded' event on a given pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "newBase", - "description": "The new base for this PR", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "oldBase", - "description": "The old base for this PR", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "PullRequest referenced by event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "BaseRefChangedEvent", - "description": "Represents a 'base_ref_changed' event on a given issue or pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "currentRefName", - "description": "Identifies the name of the base ref for the pull request after it was changed.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "previousRefName", - "description": "Identifies the name of the base ref for the pull request before it was changed.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "PullRequest referenced by event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "BaseRefDeletedEvent", - "description": "Represents a 'base_ref_deleted' event on a given pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "baseRefName", - "description": "Identifies the name of the Ref associated with the `base_ref_deleted` event.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "PullRequest referenced by event.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "BaseRefForcePushedEvent", - "description": "Represents a 'base_ref_force_pushed' event on a given pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "afterCommit", - "description": "Identifies the after commit SHA for the 'base_ref_force_pushed' event.", - "args": [], - "type": { "kind": "OBJECT", "name": "Commit", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "beforeCommit", - "description": "Identifies the before commit SHA for the 'base_ref_force_pushed' event.", - "args": [], - "type": { "kind": "OBJECT", "name": "Commit", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "PullRequest referenced by event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ref", - "description": "Identifies the fully qualified ref name for the 'base_ref_force_pushed' event.", - "args": [], - "type": { "kind": "OBJECT", "name": "Ref", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Blame", - "description": "Represents a Git blame.", - "fields": [ - { - "name": "ranges", - "description": "The list of ranges from a Git blame.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "BlameRange", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "BlameRange", - "description": "Represents a range of information from a Git blame.", - "fields": [ - { - "name": "age", - "description": "Identifies the recency of the change, from 1 (new) to 10 (old). This is calculated as a 2-quantile and determines the length of distance between the median age of all the changes in the file and the recency of the current range's change.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commit", - "description": "Identifies the line author", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "Commit", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "endingLine", - "description": "The ending line for the range", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "startingLine", - "description": "The starting line for the range", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Blob", - "description": "Represents a Git blob.", - "fields": [ - { - "name": "abbreviatedOid", - "description": "An abbreviated version of the Git object ID", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "byteSize", - "description": "Byte size of Blob object", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commitResourcePath", - "description": "The HTTP path for this Git object", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commitUrl", - "description": "The HTTP URL for this Git object", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isBinary", - "description": "Indicates whether the Blob is binary or text. Returns null if unable to determine the encoding.", - "args": [], - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isTruncated", - "description": "Indicates whether the contents is truncated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "oid", - "description": "The Git object ID", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "GitObjectID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The Repository the Git object belongs to", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "text", - "description": "UTF8 text data or null if the Blob is binary", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "GitObject", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "Boolean", - "description": "Represents `true` or `false` values.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Bot", - "description": "A special type of user which takes actions on behalf of GitHub Apps.", - "fields": [ - { - "name": "avatarUrl", - "description": "A URL pointing to the GitHub App's public avatar.", - "args": [ - { - "name": "size", - "description": "The size of the resulting square image.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "login", - "description": "The username of the actor.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this bot", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this bot", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - { - "kind": "INTERFACE", - "name": "UniformResourceLocatable", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "BranchProtectionRule", - "description": "A branch protection rule.", - "fields": [ - { - "name": "allowsDeletions", - "description": "Can this branch be deleted.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "allowsForcePushes", - "description": "Are force pushes allowed on this branch.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "branchProtectionRuleConflicts", - "description": "A list of conflicts matching branches protection rule and other branch protection rules", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "BranchProtectionRuleConflictConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "creator", - "description": "The actor who created this branch protection rule.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dismissesStaleReviews", - "description": "Will new commits pushed to matching branches dismiss pull request review approvals.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isAdminEnforced", - "description": "Can admins overwrite branch protection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "matchingRefs", - "description": "Repository refs that are protected by this rule", - "args": [ - { - "name": "query", - "description": "Filters refs with query on name", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "RefConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pattern", - "description": "Identifies the protection rule pattern.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pushAllowances", - "description": "A list push allowances for this branch protection rule.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PushAllowanceConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with this branch protection rule.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "requiredApprovingReviewCount", - "description": "Number of approving reviews required to update matching branches.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "requiredStatusCheckContexts", - "description": "List of required status check contexts that must pass for commits to be accepted to matching branches.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "requiresApprovingReviews", - "description": "Are approving reviews required to update matching branches.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "requiresCodeOwnerReviews", - "description": "Are reviews from code owners required to update matching branches.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "requiresCommitSignatures", - "description": "Are commits required to be signed.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "requiresLinearHistory", - "description": "Are merge commits prohibited from being pushed to this branch.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "requiresStatusChecks", - "description": "Are status checks required to update matching branches.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "requiresStrictStatusChecks", - "description": "Are branches required to be up to date before merging.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "restrictsPushes", - "description": "Is pushing to matching branches restricted.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "restrictsReviewDismissals", - "description": "Is dismissal of pull request reviews restricted.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reviewDismissalAllowances", - "description": "A list review dismissal allowances for this branch protection rule.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReviewDismissalAllowanceConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "BranchProtectionRuleConflict", - "description": "A conflict between two branch protection rules.", - "fields": [ - { - "name": "branchProtectionRule", - "description": "Identifies the branch protection rule.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "BranchProtectionRule", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "conflictingBranchProtectionRule", - "description": "Identifies the conflicting branch protection rule.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "BranchProtectionRule", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ref", - "description": "Identifies the branch ref that has conflicting rules", - "args": [], - "type": { "kind": "OBJECT", "name": "Ref", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "BranchProtectionRuleConflictConnection", - "description": "The connection type for BranchProtectionRuleConflict.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "BranchProtectionRuleConflictEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "BranchProtectionRuleConflict", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "BranchProtectionRuleConflictEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "BranchProtectionRuleConflict", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "BranchProtectionRuleConnection", - "description": "The connection type for BranchProtectionRule.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "BranchProtectionRuleEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "BranchProtectionRule", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "BranchProtectionRuleEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "BranchProtectionRule", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CancelEnterpriseAdminInvitationInput", - "description": "Autogenerated input type of CancelEnterpriseAdminInvitation", - "fields": null, - "inputFields": [ - { - "name": "invitationId", - "description": "The Node ID of the pending enterprise administrator invitation.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CancelEnterpriseAdminInvitationPayload", - "description": "Autogenerated return type of CancelEnterpriseAdminInvitation", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "invitation", - "description": "The invitation that was canceled.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "EnterpriseAdministratorInvitation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "message", - "description": "A message confirming the result of canceling an administrator invitation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "ChangeUserStatusInput", - "description": "Autogenerated input type of ChangeUserStatus", - "fields": null, - "inputFields": [ - { - "name": "emoji", - "description": "The emoji to represent your status. Can either be a native Unicode emoji or an emoji name with colons, e.g., :grinning:.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "message", - "description": "A short description of your current status.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "organizationId", - "description": "The ID of the organization whose members will be allowed to see the status. If omitted, the status will be publicly visible.", - "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, - "defaultValue": null - }, - { - "name": "limitedAvailability", - "description": "Whether this status should indicate you are not fully available on GitHub, e.g., you are away.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": "false" - }, - { - "name": "expiresAt", - "description": "If set, the user status will not be shown after this date.", - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ChangeUserStatusPayload", - "description": "Autogenerated return type of ChangeUserStatus", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "status", - "description": "Your updated status.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserStatus", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CheckAnnotation", - "description": "A single check annotation.", - "fields": [ - { - "name": "annotationLevel", - "description": "The annotation's severity level.", - "args": [], - "type": { - "kind": "ENUM", - "name": "CheckAnnotationLevel", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "blobUrl", - "description": "The path to the file that this annotation was made on.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "location", - "description": "The position of this annotation.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CheckAnnotationSpan", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "message", - "description": "The annotation's message.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "path", - "description": "The path that this annotation was made on.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "rawDetails", - "description": "Additional information about the annotation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "title", - "description": "The annotation's title", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CheckAnnotationConnection", - "description": "The connection type for CheckAnnotation.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CheckAnnotationEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CheckAnnotation", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CheckAnnotationData", - "description": "Information from a check run analysis to specific lines of code.", - "fields": null, - "inputFields": [ - { - "name": "path", - "description": "The path of the file to add an annotation to.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "location", - "description": "The location of the annotation", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CheckAnnotationRange", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "annotationLevel", - "description": "Represents an annotation's information level", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "CheckAnnotationLevel", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "message", - "description": "A short description of the feedback for these lines of code.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "title", - "description": "The title that represents the annotation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "rawDetails", - "description": "Details about this annotation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CheckAnnotationEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "CheckAnnotation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "CheckAnnotationLevel", - "description": "Represents an annotation's information level.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "FAILURE", - "description": "An annotation indicating an inescapable error.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NOTICE", - "description": "An annotation indicating some information.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "WARNING", - "description": "An annotation indicating an ignorable error.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CheckAnnotationPosition", - "description": "A character position in a check annotation.", - "fields": [ - { - "name": "column", - "description": "Column number (1 indexed).", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "line", - "description": "Line number (1 indexed).", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CheckAnnotationRange", - "description": "Information from a check run analysis to specific lines of code.", - "fields": null, - "inputFields": [ - { - "name": "startLine", - "description": "The starting line of the range.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "startColumn", - "description": "The starting column of the range.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "endLine", - "description": "The ending line of the range.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "endColumn", - "description": "The ending column of the range.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CheckAnnotationSpan", - "description": "An inclusive pair of positions for a check annotation.", - "fields": [ - { - "name": "end", - "description": "End position (inclusive).", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CheckAnnotationPosition", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "start", - "description": "Start position (inclusive).", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CheckAnnotationPosition", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "CheckConclusionState", - "description": "The possible states for a check suite or run conclusion.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "ACTION_REQUIRED", - "description": "The check suite or run requires action.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "TIMED_OUT", - "description": "The check suite or run has timed out.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CANCELLED", - "description": "The check suite or run has been cancelled.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FAILURE", - "description": "The check suite or run has failed.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SUCCESS", - "description": "The check suite or run has succeeded.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NEUTRAL", - "description": "The check suite or run was neutral.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SKIPPED", - "description": "The check suite or run was skipped.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "STARTUP_FAILURE", - "description": "The check suite or run has failed at startup.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "STALE", - "description": "The check suite or run was marked stale by GitHub. Only GitHub can use this conclusion.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CheckRun", - "description": "A check run.", - "fields": [ - { - "name": "annotations", - "description": "The check run's annotations", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CheckAnnotationConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "checkSuite", - "description": "The check suite that this run is a part of.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CheckSuite", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "completedAt", - "description": "Identifies the date and time when the check run was completed.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "conclusion", - "description": "The conclusion of the check run.", - "args": [], - "type": { - "kind": "ENUM", - "name": "CheckConclusionState", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "detailsUrl", - "description": "The URL from which to find full details of the check run on the integrator's site.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "externalId", - "description": "A reference for the check run on the integrator's system.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The name of the check for this check run.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "permalink", - "description": "The permalink to the check run summary.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with this check run.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this check run.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "startedAt", - "description": "Identifies the date and time when the check run was started.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "status", - "description": "The current status of the check run.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "CheckStatusState", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "summary", - "description": "A string representing the check run's summary", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "text", - "description": "A string representing the check run's text", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "title", - "description": "A string representing the check run", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this check run.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { - "kind": "INTERFACE", - "name": "UniformResourceLocatable", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CheckRunAction", - "description": "Possible further actions the integrator can perform.", - "fields": null, - "inputFields": [ - { - "name": "label", - "description": "The text to be displayed on a button in the web UI.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "description", - "description": "A short explanation of what this action would do.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "identifier", - "description": "A reference for the action on the integrator's system. ", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CheckRunConnection", - "description": "The connection type for CheckRun.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CheckRunEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CheckRun", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CheckRunEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { "kind": "OBJECT", "name": "CheckRun", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CheckRunFilter", - "description": "The filters that are available when fetching check runs.", - "fields": null, - "inputFields": [ - { - "name": "checkType", - "description": "Filters the check runs by this type.", - "type": { - "kind": "ENUM", - "name": "CheckRunType", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "appId", - "description": "Filters the check runs created by this application ID.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "checkName", - "description": "Filters the check runs by this name.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "status", - "description": "Filters the check runs by this status.", - "type": { - "kind": "ENUM", - "name": "CheckStatusState", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CheckRunOutput", - "description": "Descriptive details about the check run.", - "fields": null, - "inputFields": [ - { - "name": "title", - "description": "A title to provide for this check run.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "summary", - "description": "The summary of the check run (supports Commonmark).", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "text", - "description": "The details of the check run (supports Commonmark).", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "annotations", - "description": "The annotations that are made as part of the check run.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CheckAnnotationData", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "images", - "description": "Images attached to the check run output displayed in the GitHub pull request UI.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CheckRunOutputImage", - "ofType": null - } - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CheckRunOutputImage", - "description": "Images attached to the check run output displayed in the GitHub pull request UI.", - "fields": null, - "inputFields": [ - { - "name": "alt", - "description": "The alternative text for the image.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "imageUrl", - "description": "The full URL of the image.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "caption", - "description": "A short image description.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "CheckRunType", - "description": "The possible types of check runs.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "ALL", - "description": "Every check run available.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "LATEST", - "description": "The latest check run.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "CheckStatusState", - "description": "The possible states for a check suite or run status.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "QUEUED", - "description": "The check suite or run has been queued.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "IN_PROGRESS", - "description": "The check suite or run is in progress.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "COMPLETED", - "description": "The check suite or run has been completed.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "WAITING", - "description": "The check suite or run is in waiting state.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REQUESTED", - "description": "The check suite or run has been requested.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CheckSuite", - "description": "A check suite.", - "fields": [ - { - "name": "app", - "description": "The GitHub App which created this check suite.", - "args": [], - "type": { "kind": "OBJECT", "name": "App", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "branch", - "description": "The name of the branch for this check suite.", - "args": [], - "type": { "kind": "OBJECT", "name": "Ref", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "checkRuns", - "description": "The check runs associated with a check suite.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "filterBy", - "description": "Filters the check runs by this type.", - "type": { - "kind": "INPUT_OBJECT", - "name": "CheckRunFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CheckRunConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commit", - "description": "The commit for this check suite", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "Commit", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "conclusion", - "description": "The conclusion of this check suite.", - "args": [], - "type": { - "kind": "ENUM", - "name": "CheckConclusionState", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "matchingPullRequests", - "description": "A list of open pull requests matching the check suite.", - "args": [ - { - "name": "states", - "description": "A list of states to filter the pull requests by.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "PullRequestState", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "labels", - "description": "A list of label names to filter the pull requests by.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "headRefName", - "description": "The head ref name to filter the pull requests by.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "baseRefName", - "description": "The base ref name to filter the pull requests by.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for pull requests returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IssueOrder", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "PullRequestConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "push", - "description": "The push that triggered this check suite.", - "args": [], - "type": { "kind": "OBJECT", "name": "Push", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with this check suite.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this check suite", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "status", - "description": "The status of this check suite.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "CheckStatusState", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this check suite", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CheckSuiteAutoTriggerPreference", - "description": "The auto-trigger preferences that are available for check suites.", - "fields": null, - "inputFields": [ - { - "name": "appId", - "description": "The node ID of the application that owns the check suite.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "setting", - "description": "Set to `true` to enable automatic creation of CheckSuite events upon pushes to the repository.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CheckSuiteConnection", - "description": "The connection type for CheckSuite.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CheckSuiteEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CheckSuite", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CheckSuiteEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "CheckSuite", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CheckSuiteFilter", - "description": "The filters that are available when fetching check suites.", - "fields": null, - "inputFields": [ - { - "name": "appId", - "description": "Filters the check suites created by this application ID.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "checkName", - "description": "Filters the check suites by this name.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "ClearLabelsFromLabelableInput", - "description": "Autogenerated input type of ClearLabelsFromLabelable", - "fields": null, - "inputFields": [ - { - "name": "labelableId", - "description": "The id of the labelable object to clear the labels from.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ClearLabelsFromLabelablePayload", - "description": "Autogenerated return type of ClearLabelsFromLabelable", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "labelable", - "description": "The item that was unlabeled.", - "args": [], - "type": { - "kind": "INTERFACE", - "name": "Labelable", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CloneProjectInput", - "description": "Autogenerated input type of CloneProject", - "fields": null, - "inputFields": [ - { - "name": "targetOwnerId", - "description": "The owner ID to create the project under.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "sourceId", - "description": "The source project to clone.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "includeWorkflows", - "description": "Whether or not to clone the source project's workflows.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "name", - "description": "The name of the project.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "body", - "description": "The description of the project.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "public", - "description": "The visibility of the project, defaults to false (private).", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CloneProjectPayload", - "description": "Autogenerated return type of CloneProject", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "jobStatusId", - "description": "The id of the JobStatus for populating cloned fields.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "project", - "description": "The new cloned project.", - "args": [], - "type": { "kind": "OBJECT", "name": "Project", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CloneTemplateRepositoryInput", - "description": "Autogenerated input type of CloneTemplateRepository", - "fields": null, - "inputFields": [ - { - "name": "repositoryId", - "description": "The Node ID of the template repository.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "name", - "description": "The name of the new repository.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "ownerId", - "description": "The ID of the owner for the new repository.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "description", - "description": "A short description of the new repository.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "visibility", - "description": "Indicates the repository's visibility level.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "RepositoryVisibility", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "includeAllBranches", - "description": "Whether to copy all branches from the template to the new repository. Defaults to copying only the default branch of the template.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": "false" - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CloneTemplateRepositoryPayload", - "description": "Autogenerated return type of CloneTemplateRepository", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The new repository.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "Closable", - "description": "An object that can be closed", - "fields": [ - { - "name": "closed", - "description": "`true` if the object is closed (definition of closed may depend on type)", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "closedAt", - "description": "Identifies the date and time when the object was closed.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Issue", "ofType": null }, - { "kind": "OBJECT", "name": "Milestone", "ofType": null }, - { "kind": "OBJECT", "name": "Project", "ofType": null }, - { "kind": "OBJECT", "name": "PullRequest", "ofType": null } - ] - }, - { - "kind": "INPUT_OBJECT", - "name": "CloseIssueInput", - "description": "Autogenerated input type of CloseIssue", - "fields": null, - "inputFields": [ - { - "name": "issueId", - "description": "ID of the issue to be closed.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CloseIssuePayload", - "description": "Autogenerated return type of CloseIssue", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "issue", - "description": "The issue that was closed.", - "args": [], - "type": { "kind": "OBJECT", "name": "Issue", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "ClosePullRequestInput", - "description": "Autogenerated input type of ClosePullRequest", - "fields": null, - "inputFields": [ - { - "name": "pullRequestId", - "description": "ID of the pull request to be closed.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ClosePullRequestPayload", - "description": "Autogenerated return type of ClosePullRequest", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "The pull request that was closed.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ClosedEvent", - "description": "Represents a 'closed' event on any `Closable`.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "closable", - "description": "Object that was closed.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INTERFACE", - "name": "Closable", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "closer", - "description": "Object which triggered the creation of this event.", - "args": [], - "type": { "kind": "UNION", "name": "Closer", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this closed event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this closed event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { - "kind": "INTERFACE", - "name": "UniformResourceLocatable", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "UNION", - "name": "Closer", - "description": "The object which triggered a `ClosedEvent`.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Commit", "ofType": null }, - { "kind": "OBJECT", "name": "PullRequest", "ofType": null } - ] - }, - { - "kind": "OBJECT", - "name": "CodeOfConduct", - "description": "The Code of Conduct for a repository", - "fields": [ - { - "name": "body", - "description": "The body of the Code of Conduct", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "key", - "description": "The key for the Code of Conduct", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The formal name of the Code of Conduct", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this Code of Conduct", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this Code of Conduct", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "CollaboratorAffiliation", - "description": "Collaborators affiliation level with a subject.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "OUTSIDE", - "description": "All outside collaborators of an organization-owned subject.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DIRECT", - "description": "All collaborators with permissions to an organization-owned subject, regardless of organization membership status.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ALL", - "description": "All collaborators the authenticated user can see.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "Comment", - "description": "Represents a comment.", - "fields": [ - { - "name": "author", - "description": "The actor who authored the comment.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "authorAssociation", - "description": "Author's association with the subject of the comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "CommentAuthorAssociation", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "body", - "description": "The body as Markdown.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bodyHTML", - "description": "The body rendered to HTML.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "HTML", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bodyText", - "description": "The body rendered to text.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdViaEmail", - "description": "Check if this comment was created via an email reply.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "editor", - "description": "The actor who edited the comment.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "includesCreatedEdit", - "description": "Check if this comment was edited and includes an edit with the creation data", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lastEditedAt", - "description": "The moment the editor made the last edit", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "publishedAt", - "description": "Identifies when the comment was published at.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userContentEdits", - "description": "A list of edits to this content.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserContentEditConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerDidAuthor", - "description": "Did the viewer author this comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "CommitComment", "ofType": null }, - { "kind": "OBJECT", "name": "GistComment", "ofType": null }, - { "kind": "OBJECT", "name": "Issue", "ofType": null }, - { "kind": "OBJECT", "name": "IssueComment", "ofType": null }, - { "kind": "OBJECT", "name": "PullRequest", "ofType": null }, - { "kind": "OBJECT", "name": "PullRequestReview", "ofType": null }, - { - "kind": "OBJECT", - "name": "PullRequestReviewComment", - "ofType": null - }, - { "kind": "OBJECT", "name": "TeamDiscussion", "ofType": null }, - { - "kind": "OBJECT", - "name": "TeamDiscussionComment", - "ofType": null - } - ] - }, - { - "kind": "ENUM", - "name": "CommentAuthorAssociation", - "description": "A comment author association with repository.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "MEMBER", - "description": "Author is a member of the organization that owns the repository.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "OWNER", - "description": "Author is the owner of the repository.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "MANNEQUIN", - "description": "Author is a placeholder for an unclaimed user.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "COLLABORATOR", - "description": "Author has been invited to collaborate on the repository.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CONTRIBUTOR", - "description": "Author has previously committed to the repository.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FIRST_TIME_CONTRIBUTOR", - "description": "Author has not previously committed to the repository.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FIRST_TIMER", - "description": "Author has not previously committed to GitHub.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NONE", - "description": "Author has no association with the repository.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "CommentCannotUpdateReason", - "description": "The possible errors that will prevent a user from updating a comment.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "ARCHIVED", - "description": "Unable to create comment because repository is archived.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INSUFFICIENT_ACCESS", - "description": "You must be the author or have write access to this repository to update this comment.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "LOCKED", - "description": "Unable to create comment because issue is locked.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "LOGIN_REQUIRED", - "description": "You must be logged in to update this comment.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "MAINTENANCE", - "description": "Repository is under maintenance.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "VERIFIED_EMAIL_REQUIRED", - "description": "At least one email address must be verified to update this comment.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DENIED", - "description": "You cannot update this comment", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CommentDeletedEvent", - "description": "Represents a 'comment_deleted' event on a given issue or pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deletedCommentAuthor", - "description": "The user who authored the deleted comment.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Commit", - "description": "Represents a Git commit.", - "fields": [ - { - "name": "abbreviatedOid", - "description": "An abbreviated version of the Git object ID", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "additions", - "description": "The number of additions in this commit.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "associatedPullRequests", - "description": "The pull requests associated with a commit", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for pull requests.", - "type": { - "kind": "INPUT_OBJECT", - "name": "PullRequestOrder", - "ofType": null - }, - "defaultValue": "{field: CREATED_AT, direction: ASC}" - } - ], - "type": { - "kind": "OBJECT", - "name": "PullRequestConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "author", - "description": "Authorship details of the commit.", - "args": [], - "type": { "kind": "OBJECT", "name": "GitActor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "authoredByCommitter", - "description": "Check if the committer and the author match.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "authoredDate", - "description": "The datetime when this commit was authored.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "authors", - "description": "The list of authors for this commit based on the git author and the Co-authored-by\nmessage trailer. The git author will always be first.\n", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GitActorConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "blame", - "description": "Fetches `git blame` information.", - "args": [ - { - "name": "path", - "description": "The file whose Git blame information you want.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "Blame", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "changedFiles", - "description": "The number of changed files in this commit.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "checkSuites", - "description": "The check suites associated with a commit.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "filterBy", - "description": "Filters the check suites by this type.", - "type": { - "kind": "INPUT_OBJECT", - "name": "CheckSuiteFilter", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CheckSuiteConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "comments", - "description": "Comments made on the commit.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CommitCommentConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commitResourcePath", - "description": "The HTTP path for this Git object", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commitUrl", - "description": "The HTTP URL for this Git object", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "committedDate", - "description": "The datetime when this commit was committed.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "committedViaWeb", - "description": "Check if committed via GitHub web UI.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "committer", - "description": "Committer details of the commit.", - "args": [], - "type": { "kind": "OBJECT", "name": "GitActor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deletions", - "description": "The number of deletions in this commit.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deployments", - "description": "The deployments associated with a commit.", - "args": [ - { - "name": "environments", - "description": "Environments to list deployments for", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for deployments returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DeploymentOrder", - "ofType": null - }, - "defaultValue": "{field: CREATED_AT, direction: ASC}" - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeploymentConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "file", - "description": "The tree entry representing the file located at the given path.", - "args": [ - { - "name": "path", - "description": "The path for the file", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { "kind": "OBJECT", "name": "TreeEntry", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "history", - "description": "The linear commit history starting from (and including) this commit, in the same order as `git log`.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "path", - "description": "If non-null, filters history to only show commits touching files under this path.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "author", - "description": "If non-null, filters history to only show commits with matching authorship.", - "type": { - "kind": "INPUT_OBJECT", - "name": "CommitAuthor", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "since", - "description": "Allows specifying a beginning time or date for fetching commits.", - "type": { - "kind": "SCALAR", - "name": "GitTimestamp", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "until", - "description": "Allows specifying an ending time or date for fetching commits.", - "type": { - "kind": "SCALAR", - "name": "GitTimestamp", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CommitHistoryConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "message", - "description": "The Git commit message", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "messageBody", - "description": "The Git commit message body", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "messageBodyHTML", - "description": "The commit message body rendered to HTML.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "HTML", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "messageHeadline", - "description": "The Git commit message headline", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "messageHeadlineHTML", - "description": "The commit message headline rendered to HTML.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "HTML", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "oid", - "description": "The Git object ID", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "GitObjectID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "onBehalfOf", - "description": "The organization this commit was made on behalf of.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "parents", - "description": "The parents of a commit.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CommitConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pushedDate", - "description": "The datetime when this commit was pushed.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The Repository this commit belongs to", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this commit", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "signature", - "description": "Commit signing information, if present.", - "args": [], - "type": { - "kind": "INTERFACE", - "name": "GitSignature", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "status", - "description": "Status information for this commit", - "args": [], - "type": { "kind": "OBJECT", "name": "Status", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "statusCheckRollup", - "description": "Check and Status rollup information for this commit.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "StatusCheckRollup", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "submodules", - "description": "Returns a list of all submodules in this repository as of this Commit parsed from the .gitmodules file.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SubmoduleConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "tarballUrl", - "description": "Returns a URL to download a tarball archive for a repository.\nNote: For private repositories, these links are temporary and expire after five minutes.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "tree", - "description": "Commit's root Tree", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "Tree", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "treeResourcePath", - "description": "The HTTP path for the tree of this commit", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "treeUrl", - "description": "The HTTP URL for the tree of this commit", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this commit", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanSubscribe", - "description": "Check if the viewer is able to change their subscription status for the repository.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerSubscription", - "description": "Identifies if the viewer is watching, not watching, or ignoring the subscribable entity.", - "args": [], - "type": { - "kind": "ENUM", - "name": "SubscriptionState", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "zipballUrl", - "description": "Returns a URL to download a zipball archive for a repository.\nNote: For private repositories, these links are temporary and expire after five minutes.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "GitObject", "ofType": null }, - { "kind": "INTERFACE", "name": "Subscribable", "ofType": null }, - { - "kind": "INTERFACE", - "name": "UniformResourceLocatable", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CommitAuthor", - "description": "Specifies an author for filtering Git commits.", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "ID of a User to filter by. If non-null, only commits authored by this user will be returned. This field takes precedence over emails.", - "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, - "defaultValue": null - }, - { - "name": "emails", - "description": "Email addresses to filter by. Commits authored by any of the specified email addresses will be returned.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CommitComment", - "description": "Represents a comment on a given Commit.", - "fields": [ - { - "name": "author", - "description": "The actor who authored the comment.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "authorAssociation", - "description": "Author's association with the subject of the comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "CommentAuthorAssociation", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "body", - "description": "Identifies the comment body.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bodyHTML", - "description": "The body rendered to HTML.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "HTML", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bodyText", - "description": "The body rendered to text.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commit", - "description": "Identifies the commit associated with the comment, if the commit exists.", - "args": [], - "type": { "kind": "OBJECT", "name": "Commit", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdViaEmail", - "description": "Check if this comment was created via an email reply.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "editor", - "description": "The actor who edited the comment.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "includesCreatedEdit", - "description": "Check if this comment was edited and includes an edit with the creation data", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isMinimized", - "description": "Returns whether or not a comment has been minimized.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lastEditedAt", - "description": "The moment the editor made the last edit", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "minimizedReason", - "description": "Returns why the comment was minimized.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "path", - "description": "Identifies the file path associated with the comment.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "position", - "description": "Identifies the line position associated with the comment.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "publishedAt", - "description": "Identifies when the comment was published at.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reactionGroups", - "description": "A list of reactions grouped by content left on the subject.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReactionGroup", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reactions", - "description": "A list of Reactions left on the Issue.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "content", - "description": "Allows filtering Reactions by emoji.", - "type": { - "kind": "ENUM", - "name": "ReactionContent", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Allows specifying the order in which reactions are returned.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ReactionOrder", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReactionConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with this node.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path permalink for this commit comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL permalink for this commit comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userContentEdits", - "description": "A list of edits to this content.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserContentEditConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanDelete", - "description": "Check if the current viewer can delete this object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanMinimize", - "description": "Check if the current viewer can minimize this object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanReact", - "description": "Can user react to this subject", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanUpdate", - "description": "Check if the current viewer can update this object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCannotUpdateReasons", - "description": "Reasons why the current viewer can not update this comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "CommentCannotUpdateReason", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerDidAuthor", - "description": "Did the viewer author this comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "Comment", "ofType": null }, - { "kind": "INTERFACE", "name": "Deletable", "ofType": null }, - { "kind": "INTERFACE", "name": "Minimizable", "ofType": null }, - { "kind": "INTERFACE", "name": "Updatable", "ofType": null }, - { "kind": "INTERFACE", "name": "UpdatableComment", "ofType": null }, - { "kind": "INTERFACE", "name": "Reactable", "ofType": null }, - { "kind": "INTERFACE", "name": "RepositoryNode", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CommitCommentConnection", - "description": "The connection type for CommitComment.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CommitCommentEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CommitComment", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CommitCommentEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "CommitComment", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CommitCommentThread", - "description": "A thread of comments on a commit.", - "fields": [ - { - "name": "comments", - "description": "The comments that exist in this thread.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CommitCommentConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commit", - "description": "The commit the comments were made on.", - "args": [], - "type": { "kind": "OBJECT", "name": "Commit", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "path", - "description": "The file the comments were made on.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "position", - "description": "The position in the diff for the commit that the comment was made on.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with this node.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "RepositoryNode", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CommitConnection", - "description": "The connection type for Commit.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CommitEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { "kind": "OBJECT", "name": "Commit", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CommitContributionOrder", - "description": "Ordering options for commit contribution connections.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field by which to order commit contributions.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "CommitContributionOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The ordering direction.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "CommitContributionOrderField", - "description": "Properties by which commit contribution connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "OCCURRED_AT", - "description": "Order commit contributions by when they were made.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "COMMIT_COUNT", - "description": "Order commit contributions by how many commits they represent.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CommitContributionsByRepository", - "description": "This aggregates commits made by a user within one repository.", - "fields": [ - { - "name": "contributions", - "description": "The commit contributions, each representing a day.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for commit contributions returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "CommitContributionOrder", - "ofType": null - }, - "defaultValue": "{field: OCCURRED_AT, direction: DESC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CreatedCommitContributionConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository in which the commits were made.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for the user's commits to the repository in this time range.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for the user's commits to the repository in this time range.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CommitEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { "kind": "OBJECT", "name": "Commit", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CommitHistoryConnection", - "description": "The connection type for Commit.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CommitEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { "kind": "OBJECT", "name": "Commit", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ConnectedEvent", - "description": "Represents a 'connected' event on a given issue or pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isCrossRepository", - "description": "Reference originated in a different repository.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "source", - "description": "Issue or pull request that made the reference.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "UNION", - "name": "ReferencedSubject", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "subject", - "description": "Issue or pull request which was connected.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "UNION", - "name": "ReferencedSubject", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "Contribution", - "description": "Represents a contribution a user made on GitHub, such as opening an issue.", - "fields": [ - { - "name": "isRestricted", - "description": "Whether this contribution is associated with a record you do not have access to. For\nexample, your own 'first issue' contribution may have been made on a repository you can no\nlonger access.\n", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "occurredAt", - "description": "When this contribution was made.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this contribution.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this contribution.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user who made this contribution.\n", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { - "kind": "OBJECT", - "name": "CreatedCommitContribution", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "CreatedIssueContribution", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "CreatedPullRequestContribution", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "CreatedPullRequestReviewContribution", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "CreatedRepositoryContribution", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "JoinedGitHubContribution", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RestrictedContribution", - "ofType": null - } - ] - }, - { - "kind": "OBJECT", - "name": "ContributionCalendar", - "description": "A calendar of contributions made on GitHub by a user.", - "fields": [ - { - "name": "colors", - "description": "A list of hex color codes used in this calendar. The darker the color, the more contributions it represents.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isHalloween", - "description": "Determine if the color set was chosen because it's currently Halloween.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "months", - "description": "A list of the months of contributions in this calendar.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ContributionCalendarMonth", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalContributions", - "description": "The count of total contributions in the calendar.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "weeks", - "description": "A list of the weeks of contributions in this calendar.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ContributionCalendarWeek", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ContributionCalendarDay", - "description": "Represents a single day of contributions on GitHub by a user.", - "fields": [ - { - "name": "color", - "description": "The hex color code that represents how many contributions were made on this day compared to others in the calendar.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "contributionCount", - "description": "How many contributions were made by the user on this day.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "contributionLevel", - "description": "Indication of contributions, relative to other days. Can be used to indicate which color to represent this day on a calendar.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ContributionLevel", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "date", - "description": "The day this square represents.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Date", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "weekday", - "description": "A number representing which day of the week this square represents, e.g., 1 is Monday.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ContributionCalendarMonth", - "description": "A month of contributions in a user's contribution graph.", - "fields": [ - { - "name": "firstDay", - "description": "The date of the first day of this month.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Date", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The name of the month.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalWeeks", - "description": "How many weeks started in this month.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "year", - "description": "The year the month occurred in.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ContributionCalendarWeek", - "description": "A week of contributions in a user's contribution graph.", - "fields": [ - { - "name": "contributionDays", - "description": "The days of contributions in this week.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ContributionCalendarDay", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "firstDay", - "description": "The date of the earliest square in this week.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Date", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "ContributionLevel", - "description": "Varying levels of contributions from none to many.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "NONE", - "description": "No contributions occurred.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FIRST_QUARTILE", - "description": "Lowest 25% of days of contributions.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SECOND_QUARTILE", - "description": "Second lowest 25% of days of contributions. More contributions than the first quartile.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "THIRD_QUARTILE", - "description": "Second highest 25% of days of contributions. More contributions than second quartile, less than the fourth quartile.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FOURTH_QUARTILE", - "description": "Highest 25% of days of contributions. More contributions than the third quartile.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "ContributionOrder", - "description": "Ordering options for contribution connections.", - "fields": null, - "inputFields": [ - { - "name": "direction", - "description": "The ordering direction.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ContributionsCollection", - "description": "A contributions collection aggregates contributions such as opened issues and commits created by a user.", - "fields": [ - { - "name": "commitContributionsByRepository", - "description": "Commit contributions made by the user, grouped by repository.", - "args": [ - { - "name": "maxRepositories", - "description": "How many repositories should be included.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": "25" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CommitContributionsByRepository", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "contributionCalendar", - "description": "A calendar of this user's contributions on GitHub.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ContributionCalendar", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "contributionYears", - "description": "The years the user has been making contributions with the most recent year first.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "doesEndInCurrentMonth", - "description": "Determine if this collection's time span ends in the current month.\n", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "earliestRestrictedContributionDate", - "description": "The date of the first restricted contribution the user made in this time period. Can only be non-null when the user has enabled private contribution counts.", - "args": [], - "type": { "kind": "SCALAR", "name": "Date", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "endedAt", - "description": "The ending date and time of this collection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "firstIssueContribution", - "description": "The first issue the user opened on GitHub. This will be null if that issue was opened outside the collection's time range and ignoreTimeRange is false. If the issue is not visible but the user has opted to show private contributions, a RestrictedContribution will be returned.", - "args": [], - "type": { - "kind": "UNION", - "name": "CreatedIssueOrRestrictedContribution", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "firstPullRequestContribution", - "description": "The first pull request the user opened on GitHub. This will be null if that pull request was opened outside the collection's time range and ignoreTimeRange is not true. If the pull request is not visible but the user has opted to show private contributions, a RestrictedContribution will be returned.", - "args": [], - "type": { - "kind": "UNION", - "name": "CreatedPullRequestOrRestrictedContribution", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "firstRepositoryContribution", - "description": "The first repository the user created on GitHub. This will be null if that first repository was created outside the collection's time range and ignoreTimeRange is false. If the repository is not visible, then a RestrictedContribution is returned.", - "args": [], - "type": { - "kind": "UNION", - "name": "CreatedRepositoryOrRestrictedContribution", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hasActivityInThePast", - "description": "Does the user have any more activity in the timeline that occurred prior to the collection's time range?", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hasAnyContributions", - "description": "Determine if there are any contributions in this collection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hasAnyRestrictedContributions", - "description": "Determine if the user made any contributions in this time frame whose details are not visible because they were made in a private repository. Can only be true if the user enabled private contribution counts.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isSingleDay", - "description": "Whether or not the collector's time span is all within the same day.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "issueContributions", - "description": "A list of issues the user opened.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "excludeFirst", - "description": "Should the user's first issue ever be excluded from the result.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - }, - { - "name": "excludePopular", - "description": "Should the user's most commented issue be excluded from the result.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - }, - { - "name": "orderBy", - "description": "Ordering options for contributions returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ContributionOrder", - "ofType": null - }, - "defaultValue": "{direction: DESC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CreatedIssueContributionConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "issueContributionsByRepository", - "description": "Issue contributions made by the user, grouped by repository.", - "args": [ - { - "name": "maxRepositories", - "description": "How many repositories should be included.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": "25" - }, - { - "name": "excludeFirst", - "description": "Should the user's first issue ever be excluded from the result.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - }, - { - "name": "excludePopular", - "description": "Should the user's most commented issue be excluded from the result.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "IssueContributionsByRepository", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "joinedGitHubContribution", - "description": "When the user signed up for GitHub. This will be null if that sign up date falls outside the collection's time range and ignoreTimeRange is false.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "JoinedGitHubContribution", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "latestRestrictedContributionDate", - "description": "The date of the most recent restricted contribution the user made in this time period. Can only be non-null when the user has enabled private contribution counts.", - "args": [], - "type": { "kind": "SCALAR", "name": "Date", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "mostRecentCollectionWithActivity", - "description": "When this collection's time range does not include any activity from the user, use this\nto get a different collection from an earlier time range that does have activity.\n", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ContributionsCollection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "mostRecentCollectionWithoutActivity", - "description": "Returns a different contributions collection from an earlier time range than this one\nthat does not have any contributions.\n", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ContributionsCollection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "popularIssueContribution", - "description": "The issue the user opened on GitHub that received the most comments in the specified\ntime frame.\n", - "args": [], - "type": { - "kind": "OBJECT", - "name": "CreatedIssueContribution", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "popularPullRequestContribution", - "description": "The pull request the user opened on GitHub that received the most comments in the\nspecified time frame.\n", - "args": [], - "type": { - "kind": "OBJECT", - "name": "CreatedPullRequestContribution", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequestContributions", - "description": "Pull request contributions made by the user.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "excludeFirst", - "description": "Should the user's first pull request ever be excluded from the result.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - }, - { - "name": "excludePopular", - "description": "Should the user's most commented pull request be excluded from the result.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - }, - { - "name": "orderBy", - "description": "Ordering options for contributions returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ContributionOrder", - "ofType": null - }, - "defaultValue": "{direction: DESC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CreatedPullRequestContributionConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequestContributionsByRepository", - "description": "Pull request contributions made by the user, grouped by repository.", - "args": [ - { - "name": "maxRepositories", - "description": "How many repositories should be included.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": "25" - }, - { - "name": "excludeFirst", - "description": "Should the user's first pull request ever be excluded from the result.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - }, - { - "name": "excludePopular", - "description": "Should the user's most commented pull request be excluded from the result.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequestContributionsByRepository", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequestReviewContributions", - "description": "Pull request review contributions made by the user.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for contributions returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ContributionOrder", - "ofType": null - }, - "defaultValue": "{direction: DESC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CreatedPullRequestReviewContributionConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequestReviewContributionsByRepository", - "description": "Pull request review contributions made by the user, grouped by repository.", - "args": [ - { - "name": "maxRepositories", - "description": "How many repositories should be included.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": "25" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequestReviewContributionsByRepository", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryContributions", - "description": "A list of repositories owned by the user that the user created in this time range.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "excludeFirst", - "description": "Should the user's first repository ever be excluded from the result.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - }, - { - "name": "orderBy", - "description": "Ordering options for contributions returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ContributionOrder", - "ofType": null - }, - "defaultValue": "{direction: DESC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CreatedRepositoryContributionConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "restrictedContributionsCount", - "description": "A count of contributions made by the user that the viewer cannot access. Only non-zero when the user has chosen to share their private contribution counts.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "startedAt", - "description": "The beginning date and time of this collection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCommitContributions", - "description": "How many commits were made by the user in this time span.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalIssueContributions", - "description": "How many issues the user opened.", - "args": [ - { - "name": "excludeFirst", - "description": "Should the user's first issue ever be excluded from this count.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - }, - { - "name": "excludePopular", - "description": "Should the user's most commented issue be excluded from this count.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalPullRequestContributions", - "description": "How many pull requests the user opened.", - "args": [ - { - "name": "excludeFirst", - "description": "Should the user's first pull request ever be excluded from this count.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - }, - { - "name": "excludePopular", - "description": "Should the user's most commented pull request be excluded from this count.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalPullRequestReviewContributions", - "description": "How many pull request reviews the user left.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalRepositoriesWithContributedCommits", - "description": "How many different repositories the user committed to.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalRepositoriesWithContributedIssues", - "description": "How many different repositories the user opened issues in.", - "args": [ - { - "name": "excludeFirst", - "description": "Should the user's first issue ever be excluded from this count.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - }, - { - "name": "excludePopular", - "description": "Should the user's most commented issue be excluded from this count.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalRepositoriesWithContributedPullRequestReviews", - "description": "How many different repositories the user left pull request reviews in.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalRepositoriesWithContributedPullRequests", - "description": "How many different repositories the user opened pull requests in.", - "args": [ - { - "name": "excludeFirst", - "description": "Should the user's first pull request ever be excluded from this count.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - }, - { - "name": "excludePopular", - "description": "Should the user's most commented pull request be excluded from this count.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalRepositoryContributions", - "description": "How many repositories the user created.", - "args": [ - { - "name": "excludeFirst", - "description": "Should the user's first repository ever be excluded from this count.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user who made the contributions in this collection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "ConvertProjectCardNoteToIssueInput", - "description": "Autogenerated input type of ConvertProjectCardNoteToIssue", - "fields": null, - "inputFields": [ - { - "name": "projectCardId", - "description": "The ProjectCard ID to convert.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "repositoryId", - "description": "The ID of the repository to create the issue in.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "title", - "description": "The title of the newly created issue. Defaults to the card's note text.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "body", - "description": "The body of the newly created issue.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ConvertProjectCardNoteToIssuePayload", - "description": "Autogenerated return type of ConvertProjectCardNoteToIssue", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "projectCard", - "description": "The updated ProjectCard.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ProjectCard", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ConvertToDraftEvent", - "description": "Represents a 'convert_to_draft' event on a given pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "PullRequest referenced by event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this convert to draft event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this convert to draft event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { - "kind": "INTERFACE", - "name": "UniformResourceLocatable", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ConvertedNoteToIssueEvent", - "description": "Represents a 'converted_note_to_issue' event on a given issue or pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreateBranchProtectionRuleInput", - "description": "Autogenerated input type of CreateBranchProtectionRule", - "fields": null, - "inputFields": [ - { - "name": "repositoryId", - "description": "The global relay id of the repository in which a new branch protection rule should be created in.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "pattern", - "description": "The glob-like pattern used to determine matching branches.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "requiresApprovingReviews", - "description": "Are approving reviews required to update matching branches.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "requiredApprovingReviewCount", - "description": "Number of approving reviews required to update matching branches.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "requiresCommitSignatures", - "description": "Are commits required to be signed.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "requiresLinearHistory", - "description": "Are merge commits prohibited from being pushed to this branch.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "allowsForcePushes", - "description": "Are force pushes allowed on this branch.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "allowsDeletions", - "description": "Can this branch be deleted.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "isAdminEnforced", - "description": "Can admins overwrite branch protection.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "requiresStatusChecks", - "description": "Are status checks required to update matching branches.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "requiresStrictStatusChecks", - "description": "Are branches required to be up to date before merging.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "requiresCodeOwnerReviews", - "description": "Are reviews from code owners required to update matching branches.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "dismissesStaleReviews", - "description": "Will new commits pushed to matching branches dismiss pull request review approvals.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "restrictsReviewDismissals", - "description": "Is dismissal of pull request reviews restricted.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "reviewDismissalActorIds", - "description": "A list of User or Team IDs allowed to dismiss reviews on pull requests targeting matching branches.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - } - }, - "defaultValue": null - }, - { - "name": "restrictsPushes", - "description": "Is pushing to matching branches restricted.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "pushActorIds", - "description": "A list of User, Team or App IDs allowed to push to matching branches.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - } - }, - "defaultValue": null - }, - { - "name": "requiredStatusCheckContexts", - "description": "List of required status check contexts that must pass for commits to be accepted to matching branches.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreateBranchProtectionRulePayload", - "description": "Autogenerated return type of CreateBranchProtectionRule", - "fields": [ - { - "name": "branchProtectionRule", - "description": "The newly created BranchProtectionRule.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "BranchProtectionRule", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreateCheckRunInput", - "description": "Autogenerated input type of CreateCheckRun", - "fields": null, - "inputFields": [ - { - "name": "repositoryId", - "description": "The node ID of the repository.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "name", - "description": "The name of the check.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "headSha", - "description": "The SHA of the head commit.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "GitObjectID", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "detailsUrl", - "description": "The URL of the integrator's site that has the full details of the check.", - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "defaultValue": null - }, - { - "name": "externalId", - "description": "A reference for the run on the integrator's system.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "status", - "description": "The current status.", - "type": { - "kind": "ENUM", - "name": "RequestableCheckStatusState", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "startedAt", - "description": "The time that the check run began.", - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "defaultValue": null - }, - { - "name": "conclusion", - "description": "The final conclusion of the check.", - "type": { - "kind": "ENUM", - "name": "CheckConclusionState", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "completedAt", - "description": "The time that the check run finished.", - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "defaultValue": null - }, - { - "name": "output", - "description": "Descriptive details about the run.", - "type": { - "kind": "INPUT_OBJECT", - "name": "CheckRunOutput", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actions", - "description": "Possible further actions the integrator can perform, which a user may trigger.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CheckRunAction", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreateCheckRunPayload", - "description": "Autogenerated return type of CreateCheckRun", - "fields": [ - { - "name": "checkRun", - "description": "The newly created check run.", - "args": [], - "type": { "kind": "OBJECT", "name": "CheckRun", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreateCheckSuiteInput", - "description": "Autogenerated input type of CreateCheckSuite", - "fields": null, - "inputFields": [ - { - "name": "repositoryId", - "description": "The Node ID of the repository.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "headSha", - "description": "The SHA of the head commit.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "GitObjectID", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreateCheckSuitePayload", - "description": "Autogenerated return type of CreateCheckSuite", - "fields": [ - { - "name": "checkSuite", - "description": "The newly created check suite.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "CheckSuite", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreateEnterpriseOrganizationInput", - "description": "Autogenerated input type of CreateEnterpriseOrganization", - "fields": null, - "inputFields": [ - { - "name": "enterpriseId", - "description": "The ID of the enterprise owning the new organization.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "login", - "description": "The login of the new organization.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "profileName", - "description": "The profile name of the new organization.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "billingEmail", - "description": "The email used for sending billing receipts.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "adminLogins", - "description": "The logins for the administrators of the new organization.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreateEnterpriseOrganizationPayload", - "description": "Autogenerated return type of CreateEnterpriseOrganization", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterprise", - "description": "The enterprise that owns the created organization.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Enterprise", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The organization that was created.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreateIpAllowListEntryInput", - "description": "Autogenerated input type of CreateIpAllowListEntry", - "fields": null, - "inputFields": [ - { - "name": "ownerId", - "description": "The ID of the owner for which to create the new IP allow list entry.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "allowListValue", - "description": "An IP address or range of addresses in CIDR notation.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "name", - "description": "An optional name for the IP allow list entry.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "isActive", - "description": "Whether the IP allow list entry is active when an IP allow list is enabled.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreateIpAllowListEntryPayload", - "description": "Autogenerated return type of CreateIpAllowListEntry", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ipAllowListEntry", - "description": "The IP allow list entry that was created.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "IpAllowListEntry", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreateIssueInput", - "description": "Autogenerated input type of CreateIssue", - "fields": null, - "inputFields": [ - { - "name": "repositoryId", - "description": "The Node ID of the repository.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "title", - "description": "The title for the issue.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "body", - "description": "The body for the issue description.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "assigneeIds", - "description": "The Node ID for the user assignee for this issue.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - } - }, - "defaultValue": null - }, - { - "name": "milestoneId", - "description": "The Node ID of the milestone for this issue.", - "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, - "defaultValue": null - }, - { - "name": "labelIds", - "description": "An array of Node IDs of labels for this issue.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - } - }, - "defaultValue": null - }, - { - "name": "projectIds", - "description": "An array of Node IDs for projects associated with this issue.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - } - }, - "defaultValue": null - }, - { - "name": "issueTemplate", - "description": "The name of an issue template in the repository, assigns labels and assignees from the template to the issue", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreateIssuePayload", - "description": "Autogenerated return type of CreateIssue", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "issue", - "description": "The new issue.", - "args": [], - "type": { "kind": "OBJECT", "name": "Issue", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreateProjectInput", - "description": "Autogenerated input type of CreateProject", - "fields": null, - "inputFields": [ - { - "name": "ownerId", - "description": "The owner ID to create the project under.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "name", - "description": "The name of project.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "body", - "description": "The description of project.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "template", - "description": "The name of the GitHub-provided template.", - "type": { - "kind": "ENUM", - "name": "ProjectTemplate", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "repositoryIds", - "description": "A list of repository IDs to create as linked repositories for the project", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreateProjectPayload", - "description": "Autogenerated return type of CreateProject", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "project", - "description": "The new project.", - "args": [], - "type": { "kind": "OBJECT", "name": "Project", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreatePullRequestInput", - "description": "Autogenerated input type of CreatePullRequest", - "fields": null, - "inputFields": [ - { - "name": "repositoryId", - "description": "The Node ID of the repository.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "baseRefName", - "description": "The name of the branch you want your changes pulled into. This should be an existing branch\non the current repository. You cannot update the base branch on a pull request to point\nto another repository.\n", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "headRefName", - "description": "The name of the branch where your changes are implemented. For cross-repository pull requests\nin the same network, namespace `head_ref_name` with a user like this: `username:branch`.\n", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "title", - "description": "The title of the pull request.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "body", - "description": "The contents of the pull request.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "maintainerCanModify", - "description": "Indicates whether maintainers can modify the pull request.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": "true" - }, - { - "name": "draft", - "description": "Indicates whether this pull request should be a draft.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": "false" - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreatePullRequestPayload", - "description": "Autogenerated return type of CreatePullRequest", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "The new pull request.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreateRefInput", - "description": "Autogenerated input type of CreateRef", - "fields": null, - "inputFields": [ - { - "name": "repositoryId", - "description": "The Node ID of the Repository to create the Ref in.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "name", - "description": "The fully qualified name of the new Ref (ie: `refs/heads/my_new_branch`).", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "oid", - "description": "The GitObjectID that the new Ref shall target. Must point to a commit.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "GitObjectID", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreateRefPayload", - "description": "Autogenerated return type of CreateRef", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ref", - "description": "The newly created ref.", - "args": [], - "type": { "kind": "OBJECT", "name": "Ref", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreateRepositoryInput", - "description": "Autogenerated input type of CreateRepository", - "fields": null, - "inputFields": [ - { - "name": "name", - "description": "The name of the new repository.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "ownerId", - "description": "The ID of the owner for the new repository.", - "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, - "defaultValue": null - }, - { - "name": "description", - "description": "A short description of the new repository.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "visibility", - "description": "Indicates the repository's visibility level.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "RepositoryVisibility", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "template", - "description": "Whether this repository should be marked as a template such that anyone who can access it can create new repositories with the same files and directory structure.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": "false" - }, - { - "name": "homepageUrl", - "description": "The URL for a web page about this repository.", - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "defaultValue": null - }, - { - "name": "hasWikiEnabled", - "description": "Indicates if the repository should have the wiki feature enabled.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": "false" - }, - { - "name": "hasIssuesEnabled", - "description": "Indicates if the repository should have the issues feature enabled.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": "true" - }, - { - "name": "teamId", - "description": "When an organization is specified as the owner, this ID identifies the team that should be granted access to the new repository.", - "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreateRepositoryPayload", - "description": "Autogenerated return type of CreateRepository", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The new repository.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreateTeamDiscussionCommentInput", - "description": "Autogenerated input type of CreateTeamDiscussionComment", - "fields": null, - "inputFields": [ - { - "name": "discussionId", - "description": "The ID of the discussion to which the comment belongs.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "body", - "description": "The content of the comment.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreateTeamDiscussionCommentPayload", - "description": "Autogenerated return type of CreateTeamDiscussionComment", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamDiscussionComment", - "description": "The new comment.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "TeamDiscussionComment", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "CreateTeamDiscussionInput", - "description": "Autogenerated input type of CreateTeamDiscussion", - "fields": null, - "inputFields": [ - { - "name": "teamId", - "description": "The ID of the team to which the discussion belongs.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "title", - "description": "The title of the discussion.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "body", - "description": "The content of the discussion.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "private", - "description": "If true, restricts the visibility of this discussion to team members and organization admins. If false or not specified, allows any organization member to view this discussion.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreateTeamDiscussionPayload", - "description": "Autogenerated return type of CreateTeamDiscussion", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamDiscussion", - "description": "The new discussion.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "TeamDiscussion", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreatedCommitContribution", - "description": "Represents the contribution a user made by committing to a repository.", - "fields": [ - { - "name": "commitCount", - "description": "How many commits were made on this day to this repository by the user.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isRestricted", - "description": "Whether this contribution is associated with a record you do not have access to. For\nexample, your own 'first issue' contribution may have been made on a repository you can no\nlonger access.\n", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "occurredAt", - "description": "When this contribution was made.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository the user made a commit in.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this contribution.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this contribution.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user who made this contribution.\n", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Contribution", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreatedCommitContributionConnection", - "description": "The connection type for CreatedCommitContribution.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CreatedCommitContributionEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CreatedCommitContribution", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of commits across days and repositories in the connection.\n", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreatedCommitContributionEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "CreatedCommitContribution", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreatedIssueContribution", - "description": "Represents the contribution a user made on GitHub by opening an issue.", - "fields": [ - { - "name": "isRestricted", - "description": "Whether this contribution is associated with a record you do not have access to. For\nexample, your own 'first issue' contribution may have been made on a repository you can no\nlonger access.\n", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "issue", - "description": "The issue that was opened.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "Issue", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "occurredAt", - "description": "When this contribution was made.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this contribution.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this contribution.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user who made this contribution.\n", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Contribution", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreatedIssueContributionConnection", - "description": "The connection type for CreatedIssueContribution.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CreatedIssueContributionEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CreatedIssueContribution", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreatedIssueContributionEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "CreatedIssueContribution", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "UNION", - "name": "CreatedIssueOrRestrictedContribution", - "description": "Represents either a issue the viewer can access or a restricted contribution.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { - "kind": "OBJECT", - "name": "CreatedIssueContribution", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RestrictedContribution", - "ofType": null - } - ] - }, - { - "kind": "OBJECT", - "name": "CreatedPullRequestContribution", - "description": "Represents the contribution a user made on GitHub by opening a pull request.", - "fields": [ - { - "name": "isRestricted", - "description": "Whether this contribution is associated with a record you do not have access to. For\nexample, your own 'first issue' contribution may have been made on a repository you can no\nlonger access.\n", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "occurredAt", - "description": "When this contribution was made.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "The pull request that was opened.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this contribution.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this contribution.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user who made this contribution.\n", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Contribution", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreatedPullRequestContributionConnection", - "description": "The connection type for CreatedPullRequestContribution.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CreatedPullRequestContributionEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CreatedPullRequestContribution", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreatedPullRequestContributionEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "CreatedPullRequestContribution", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "UNION", - "name": "CreatedPullRequestOrRestrictedContribution", - "description": "Represents either a pull request the viewer can access or a restricted contribution.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { - "kind": "OBJECT", - "name": "CreatedPullRequestContribution", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RestrictedContribution", - "ofType": null - } - ] - }, - { - "kind": "OBJECT", - "name": "CreatedPullRequestReviewContribution", - "description": "Represents the contribution a user made by leaving a review on a pull request.", - "fields": [ - { - "name": "isRestricted", - "description": "Whether this contribution is associated with a record you do not have access to. For\nexample, your own 'first issue' contribution may have been made on a repository you can no\nlonger access.\n", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "occurredAt", - "description": "When this contribution was made.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "The pull request the user reviewed.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequestReview", - "description": "The review the user left on the pull request.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequestReview", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository containing the pull request that the user reviewed.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this contribution.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this contribution.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user who made this contribution.\n", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Contribution", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreatedPullRequestReviewContributionConnection", - "description": "The connection type for CreatedPullRequestReviewContribution.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CreatedPullRequestReviewContributionEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CreatedPullRequestReviewContribution", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreatedPullRequestReviewContributionEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "CreatedPullRequestReviewContribution", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreatedRepositoryContribution", - "description": "Represents the contribution a user made on GitHub by creating a repository.", - "fields": [ - { - "name": "isRestricted", - "description": "Whether this contribution is associated with a record you do not have access to. For\nexample, your own 'first issue' contribution may have been made on a repository you can no\nlonger access.\n", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "occurredAt", - "description": "When this contribution was made.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository that was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this contribution.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this contribution.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user who made this contribution.\n", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Contribution", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreatedRepositoryContributionConnection", - "description": "The connection type for CreatedRepositoryContribution.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CreatedRepositoryContributionEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CreatedRepositoryContribution", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "CreatedRepositoryContributionEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "CreatedRepositoryContribution", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "UNION", - "name": "CreatedRepositoryOrRestrictedContribution", - "description": "Represents either a repository the viewer can access or a restricted contribution.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { - "kind": "OBJECT", - "name": "CreatedRepositoryContribution", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RestrictedContribution", - "ofType": null - } - ] - }, - { - "kind": "OBJECT", - "name": "CrossReferencedEvent", - "description": "Represents a mention made by one issue or pull request to another.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isCrossRepository", - "description": "Reference originated in a different repository.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "referencedAt", - "description": "Identifies when the reference was made.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this pull request.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "source", - "description": "Issue or pull request that made the reference.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "UNION", - "name": "ReferencedSubject", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "target", - "description": "Issue or pull request to which the reference was made.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "UNION", - "name": "ReferencedSubject", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this pull request.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "willCloseTarget", - "description": "Checks if the target will be closed when the source is merged.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { - "kind": "INTERFACE", - "name": "UniformResourceLocatable", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "Date", - "description": "An ISO-8601 encoded date string.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "DateTime", - "description": "An ISO-8601 encoded UTC date string.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeclineTopicSuggestionInput", - "description": "Autogenerated input type of DeclineTopicSuggestion", - "fields": null, - "inputFields": [ - { - "name": "repositoryId", - "description": "The Node ID of the repository.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "name", - "description": "The name of the suggested topic.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "reason", - "description": "The reason why the suggested topic is declined.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "TopicSuggestionDeclineReason", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeclineTopicSuggestionPayload", - "description": "Autogenerated return type of DeclineTopicSuggestion", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "topic", - "description": "The declined topic.", - "args": [], - "type": { "kind": "OBJECT", "name": "Topic", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "DefaultRepositoryPermissionField", - "description": "The possible default permissions for repositories.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "NONE", - "description": "No access", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "READ", - "description": "Can read repos by default", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "WRITE", - "description": "Can read and write repos by default", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ADMIN", - "description": "Can read, write, and administrate repos by default", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "Deletable", - "description": "Entities that can be deleted.", - "fields": [ - { - "name": "viewerCanDelete", - "description": "Check if the current viewer can delete this object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "CommitComment", "ofType": null }, - { "kind": "OBJECT", "name": "GistComment", "ofType": null }, - { "kind": "OBJECT", "name": "IssueComment", "ofType": null }, - { "kind": "OBJECT", "name": "PullRequestReview", "ofType": null }, - { - "kind": "OBJECT", - "name": "PullRequestReviewComment", - "ofType": null - }, - { "kind": "OBJECT", "name": "TeamDiscussion", "ofType": null }, - { - "kind": "OBJECT", - "name": "TeamDiscussionComment", - "ofType": null - } - ] - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteBranchProtectionRuleInput", - "description": "Autogenerated input type of DeleteBranchProtectionRule", - "fields": null, - "inputFields": [ - { - "name": "branchProtectionRuleId", - "description": "The global relay id of the branch protection rule to be deleted.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeleteBranchProtectionRulePayload", - "description": "Autogenerated return type of DeleteBranchProtectionRule", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteDeploymentInput", - "description": "Autogenerated input type of DeleteDeployment", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "The Node ID of the deployment to be deleted.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeleteDeploymentPayload", - "description": "Autogenerated return type of DeleteDeployment", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteIpAllowListEntryInput", - "description": "Autogenerated input type of DeleteIpAllowListEntry", - "fields": null, - "inputFields": [ - { - "name": "ipAllowListEntryId", - "description": "The ID of the IP allow list entry to delete.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeleteIpAllowListEntryPayload", - "description": "Autogenerated return type of DeleteIpAllowListEntry", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ipAllowListEntry", - "description": "The IP allow list entry that was deleted.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "IpAllowListEntry", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteIssueCommentInput", - "description": "Autogenerated input type of DeleteIssueComment", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "The ID of the comment to delete.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeleteIssueCommentPayload", - "description": "Autogenerated return type of DeleteIssueComment", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteIssueInput", - "description": "Autogenerated input type of DeleteIssue", - "fields": null, - "inputFields": [ - { - "name": "issueId", - "description": "The ID of the issue to delete.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeleteIssuePayload", - "description": "Autogenerated return type of DeleteIssue", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository the issue belonged to", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteProjectCardInput", - "description": "Autogenerated input type of DeleteProjectCard", - "fields": null, - "inputFields": [ - { - "name": "cardId", - "description": "The id of the card to delete.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeleteProjectCardPayload", - "description": "Autogenerated return type of DeleteProjectCard", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "column", - "description": "The column the deleted card was in.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ProjectColumn", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deletedCardId", - "description": "The deleted card ID.", - "args": [], - "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteProjectColumnInput", - "description": "Autogenerated input type of DeleteProjectColumn", - "fields": null, - "inputFields": [ - { - "name": "columnId", - "description": "The id of the column to delete.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeleteProjectColumnPayload", - "description": "Autogenerated return type of DeleteProjectColumn", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deletedColumnId", - "description": "The deleted column ID.", - "args": [], - "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "project", - "description": "The project the deleted column was in.", - "args": [], - "type": { "kind": "OBJECT", "name": "Project", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteProjectInput", - "description": "Autogenerated input type of DeleteProject", - "fields": null, - "inputFields": [ - { - "name": "projectId", - "description": "The Project ID to update.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeleteProjectPayload", - "description": "Autogenerated return type of DeleteProject", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "owner", - "description": "The repository or organization the project was removed from.", - "args": [], - "type": { - "kind": "INTERFACE", - "name": "ProjectOwner", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeletePullRequestReviewCommentInput", - "description": "Autogenerated input type of DeletePullRequestReviewComment", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "The ID of the comment to delete.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeletePullRequestReviewCommentPayload", - "description": "Autogenerated return type of DeletePullRequestReviewComment", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequestReview", - "description": "The pull request review the deleted comment belonged to.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequestReview", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeletePullRequestReviewInput", - "description": "Autogenerated input type of DeletePullRequestReview", - "fields": null, - "inputFields": [ - { - "name": "pullRequestReviewId", - "description": "The Node ID of the pull request review to delete.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeletePullRequestReviewPayload", - "description": "Autogenerated return type of DeletePullRequestReview", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequestReview", - "description": "The deleted pull request review.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequestReview", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteRefInput", - "description": "Autogenerated input type of DeleteRef", - "fields": null, - "inputFields": [ - { - "name": "refId", - "description": "The Node ID of the Ref to be deleted.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeleteRefPayload", - "description": "Autogenerated return type of DeleteRef", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteTeamDiscussionCommentInput", - "description": "Autogenerated input type of DeleteTeamDiscussionComment", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "The ID of the comment to delete.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeleteTeamDiscussionCommentPayload", - "description": "Autogenerated return type of DeleteTeamDiscussionComment", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteTeamDiscussionInput", - "description": "Autogenerated input type of DeleteTeamDiscussion", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "The discussion ID to delete.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeleteTeamDiscussionPayload", - "description": "Autogenerated return type of DeleteTeamDiscussion", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeleteVerifiableDomainInput", - "description": "Autogenerated input type of DeleteVerifiableDomain", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "The ID of the verifiable domain to delete.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeleteVerifiableDomainPayload", - "description": "Autogenerated return type of DeleteVerifiableDomain", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "owner", - "description": "The owning account from which the domain was deleted.", - "args": [], - "type": { - "kind": "UNION", - "name": "VerifiableDomainOwner", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DemilestonedEvent", - "description": "Represents a 'demilestoned' event on a given issue or pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "milestoneTitle", - "description": "Identifies the milestone title associated with the 'demilestoned' event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "subject", - "description": "Object referenced by event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "UNION", - "name": "MilestoneItem", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeployKey", - "description": "A repository deploy key.", - "fields": [ - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "key", - "description": "The deploy key.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "readOnly", - "description": "Whether or not the deploy key is read only.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "title", - "description": "The deploy key title.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "verified", - "description": "Whether or not the deploy key has been verified.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeployKeyConnection", - "description": "The connection type for DeployKey.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "DeployKeyEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "DeployKey", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeployKeyEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { "kind": "OBJECT", "name": "DeployKey", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeployedEvent", - "description": "Represents a 'deployed' event on a given pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deployment", - "description": "The deployment associated with the 'deployed' event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Deployment", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "PullRequest referenced by event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ref", - "description": "The ref associated with the 'deployed' event.", - "args": [], - "type": { "kind": "OBJECT", "name": "Ref", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Deployment", - "description": "Represents triggered deployment instance.", - "fields": [ - { - "name": "commit", - "description": "Identifies the commit sha of the deployment.", - "args": [], - "type": { "kind": "OBJECT", "name": "Commit", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commitOid", - "description": "Identifies the oid of the deployment commit, even if the commit has been deleted.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "creator", - "description": "Identifies the actor who triggered the deployment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INTERFACE", - "name": "Actor", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": "The deployment description.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "environment", - "description": "The latest environment to which this deployment was made.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "latestEnvironment", - "description": "The latest environment to which this deployment was made.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "latestStatus", - "description": "The latest status of this deployment.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "DeploymentStatus", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "originalEnvironment", - "description": "The original environment to which this deployment was made.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "payload", - "description": "Extra information that a deployment system might need.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ref", - "description": "Identifies the Ref of the deployment, if the deployment was created by ref.", - "args": [], - "type": { "kind": "OBJECT", "name": "Ref", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "Identifies the repository associated with the deployment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "state", - "description": "The current state of the deployment.", - "args": [], - "type": { - "kind": "ENUM", - "name": "DeploymentState", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "statuses", - "description": "A list of statuses associated with the deployment.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeploymentStatusConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "task", - "description": "The deployment task.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeploymentConnection", - "description": "The connection type for Deployment.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "DeploymentEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Deployment", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeploymentEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Deployment", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeploymentEnvironmentChangedEvent", - "description": "Represents a 'deployment_environment_changed' event on a given pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deploymentStatus", - "description": "The deployment status that updated the deployment environment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "DeploymentStatus", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "PullRequest referenced by event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DeploymentOrder", - "description": "Ordering options for deployment connections", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field to order deployments by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "DeploymentOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The ordering direction.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "DeploymentOrderField", - "description": "Properties by which deployment connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "CREATED_AT", - "description": "Order collection by creation time", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "DeploymentState", - "description": "The possible states in which a deployment can be.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "ABANDONED", - "description": "The pending deployment was not updated after 30 minutes.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ACTIVE", - "description": "The deployment is currently active.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DESTROYED", - "description": "An inactive transient deployment.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ERROR", - "description": "The deployment experienced an error.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FAILURE", - "description": "The deployment has failed.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INACTIVE", - "description": "The deployment is inactive.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PENDING", - "description": "The deployment is pending.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "QUEUED", - "description": "The deployment has queued", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "IN_PROGRESS", - "description": "The deployment is in progress.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "WAITING", - "description": "The deployment is waiting.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeploymentStatus", - "description": "Describes the status of a given deployment attempt.", - "fields": [ - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "creator", - "description": "Identifies the actor who triggered the deployment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INTERFACE", - "name": "Actor", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deployment", - "description": "Identifies the deployment associated with status.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Deployment", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": "Identifies the description of the deployment.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "environmentUrl", - "description": "Identifies the environment URL of the deployment.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "logUrl", - "description": "Identifies the log URL of the deployment.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "state", - "description": "Identifies the current state of the deployment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "DeploymentStatusState", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeploymentStatusConnection", - "description": "The connection type for DeploymentStatus.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "DeploymentStatusEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "DeploymentStatus", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DeploymentStatusEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "DeploymentStatus", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "DeploymentStatusState", - "description": "The possible states for a deployment status.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "PENDING", - "description": "The deployment is pending.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SUCCESS", - "description": "The deployment was successful.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FAILURE", - "description": "The deployment has failed.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INACTIVE", - "description": "The deployment is inactive.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ERROR", - "description": "The deployment experienced an error.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "QUEUED", - "description": "The deployment is queued", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "IN_PROGRESS", - "description": "The deployment is in progress.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "WAITING", - "description": "The deployment is waiting.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "DiffSide", - "description": "The possible sides of a diff.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "LEFT", - "description": "The left side of the diff.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "RIGHT", - "description": "The right side of the diff.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DisconnectedEvent", - "description": "Represents a 'disconnected' event on a given issue or pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isCrossRepository", - "description": "Reference originated in a different repository.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "source", - "description": "Issue or pull request from which the issue was disconnected.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "UNION", - "name": "ReferencedSubject", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "subject", - "description": "Issue or pull request which was disconnected.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "UNION", - "name": "ReferencedSubject", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DismissPullRequestReviewInput", - "description": "Autogenerated input type of DismissPullRequestReview", - "fields": null, - "inputFields": [ - { - "name": "pullRequestReviewId", - "description": "The Node ID of the pull request review to modify.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "message", - "description": "The contents of the pull request review dismissal message.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "DismissPullRequestReviewPayload", - "description": "Autogenerated return type of DismissPullRequestReview", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequestReview", - "description": "The dismissed pull request review.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequestReview", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DraftPullRequestReviewComment", - "description": "Specifies a review comment to be left with a Pull Request Review.", - "fields": null, - "inputFields": [ - { - "name": "path", - "description": "Path to the file being commented on.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "position", - "description": "Position in the file to leave a comment on.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "body", - "description": "Body of the comment to leave.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "DraftPullRequestReviewThread", - "description": "Specifies a review comment thread to be left with a Pull Request Review.", - "fields": null, - "inputFields": [ - { - "name": "path", - "description": "Path to the file being commented on.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "line", - "description": "The line of the blob to which the thread refers. The end of the line range for multi-line comments.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "side", - "description": "The side of the diff on which the line resides. For multi-line comments, this is the side for the end of the line range.", - "type": { "kind": "ENUM", "name": "DiffSide", "ofType": null }, - "defaultValue": "RIGHT" - }, - { - "name": "startLine", - "description": "The first line of the range to which the comment refers.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "startSide", - "description": "The side of the diff on which the start line resides.", - "type": { "kind": "ENUM", "name": "DiffSide", "ofType": null }, - "defaultValue": "RIGHT" - }, - { - "name": "body", - "description": "Body of the comment to leave.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Enterprise", - "description": "An account to manage multiple organizations with consolidated policy and billing.", - "fields": [ - { - "name": "avatarUrl", - "description": "A URL pointing to the enterprise's public avatar.", - "args": [ - { - "name": "size", - "description": "The size of the resulting square image.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "billingInfo", - "description": "Enterprise billing information visible to enterprise billing managers.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "EnterpriseBillingInfo", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": "The description of the enterprise.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "descriptionHTML", - "description": "The description of the enterprise as HTML.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "HTML", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "location", - "description": "The location of the enterprise.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "members", - "description": "A list of users who are members of this enterprise.", - "args": [ - { - "name": "organizationLogins", - "description": "Only return members within the organizations with these logins", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "query", - "description": "The search string to look for.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for members returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "EnterpriseMemberOrder", - "ofType": null - }, - "defaultValue": "{field: LOGIN, direction: ASC}" - }, - { - "name": "role", - "description": "The role of the user in the enterprise organization or server.", - "type": { - "kind": "ENUM", - "name": "EnterpriseUserAccountMembershipRole", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "deployment", - "description": "Only return members within the selected GitHub Enterprise deployment", - "type": { - "kind": "ENUM", - "name": "EnterpriseUserDeployment", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseMemberConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The name of the enterprise.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizations", - "description": "A list of organizations that belong to this enterprise.", - "args": [ - { - "name": "query", - "description": "The search string to look for.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for organizations returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "OrganizationOrder", - "ofType": null - }, - "defaultValue": "{field: LOGIN, direction: ASC}" - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "OrganizationConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ownerInfo", - "description": "Enterprise information only visible to enterprise owners.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "EnterpriseOwnerInfo", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this enterprise.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "slug", - "description": "The URL-friendly identifier for the enterprise.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this enterprise.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userAccounts", - "description": "A list of user accounts on this enterprise.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseUserAccountConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerIsAdmin", - "description": "Is the current viewer an admin of this enterprise?", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "websiteUrl", - "description": "The URL of the enterprise website.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseAdministratorConnection", - "description": "The connection type for User.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseAdministratorEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseAdministratorEdge", - "description": "A User who is an administrator of an enterprise.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "role", - "description": "The role of the administrator.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseAdministratorRole", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseAdministratorInvitation", - "description": "An invitation for a user to become an owner or billing manager of an enterprise.", - "fields": [ - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "email", - "description": "The email of the person who was invited to the enterprise.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterprise", - "description": "The enterprise the invitation is for.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Enterprise", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "invitee", - "description": "The user who was invited to the enterprise.", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "inviter", - "description": "The user who created the invitation.", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "role", - "description": "The invitee's pending role in the enterprise (owner or billing_manager).", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseAdministratorRole", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseAdministratorInvitationConnection", - "description": "The connection type for EnterpriseAdministratorInvitation.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseAdministratorInvitationEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseAdministratorInvitation", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseAdministratorInvitationEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "EnterpriseAdministratorInvitation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "EnterpriseAdministratorInvitationOrder", - "description": "Ordering options for enterprise administrator invitation connections", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field to order enterprise administrator invitations by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseAdministratorInvitationOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The ordering direction.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "EnterpriseAdministratorInvitationOrderField", - "description": "Properties by which enterprise administrator invitation connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "CREATED_AT", - "description": "Order enterprise administrator member invitations by creation time", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "EnterpriseAdministratorRole", - "description": "The possible administrator roles in an enterprise account.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "OWNER", - "description": "Represents an owner of the enterprise account.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "BILLING_MANAGER", - "description": "Represents a billing manager of the enterprise account.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "EnterpriseAuditEntryData", - "description": "Metadata for an audit entry containing enterprise account information.", - "fields": [ - { - "name": "enterpriseResourcePath", - "description": "The HTTP path for this enterprise.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseSlug", - "description": "The slug of the enterprise.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseUrl", - "description": "The HTTP URL for this enterprise.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { - "kind": "OBJECT", - "name": "MembersCanDeleteReposClearAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "MembersCanDeleteReposDisableAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "MembersCanDeleteReposEnableAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgInviteToBusinessAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "PrivateRepositoryForkingDisableAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "PrivateRepositoryForkingEnableAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepositoryVisibilityChangeDisableAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepositoryVisibilityChangeEnableAuditEntry", - "ofType": null - } - ] - }, - { - "kind": "OBJECT", - "name": "EnterpriseBillingInfo", - "description": "Enterprise billing information visible to enterprise billing managers and owners.", - "fields": [ - { - "name": "allLicensableUsersCount", - "description": "The number of licenseable users/emails across the enterprise.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "assetPacks", - "description": "The number of data packs used by all organizations owned by the enterprise.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "availableSeats", - "description": "The number of available seats across all owned organizations based on the unique number of billable users.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": true, - "deprecationReason": "`availableSeats` will be replaced with `totalAvailableLicenses` to provide more clarity on the value being returned Use EnterpriseBillingInfo.totalAvailableLicenses instead. Removal on 2020-01-01 UTC." - }, - { - "name": "bandwidthQuota", - "description": "The bandwidth quota in GB for all organizations owned by the enterprise.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Float", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bandwidthUsage", - "description": "The bandwidth usage in GB for all organizations owned by the enterprise.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Float", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bandwidthUsagePercentage", - "description": "The bandwidth usage as a percentage of the bandwidth quota.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "seats", - "description": "The total seats across all organizations owned by the enterprise.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": true, - "deprecationReason": "`seats` will be replaced with `totalLicenses` to provide more clarity on the value being returned Use EnterpriseBillingInfo.totalLicenses instead. Removal on 2020-01-01 UTC." - }, - { - "name": "storageQuota", - "description": "The storage quota in GB for all organizations owned by the enterprise.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Float", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "storageUsage", - "description": "The storage usage in GB for all organizations owned by the enterprise.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Float", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "storageUsagePercentage", - "description": "The storage usage as a percentage of the storage quota.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalAvailableLicenses", - "description": "The number of available licenses across all owned organizations based on the unique number of billable users.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalLicenses", - "description": "The total number of licenses allocated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "EnterpriseDefaultRepositoryPermissionSettingValue", - "description": "The possible values for the enterprise default repository permission setting.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "NO_POLICY", - "description": "Organizations in the enterprise choose default repository permissions for their members.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ADMIN", - "description": "Organization members will be able to clone, pull, push, and add new collaborators to all organization repositories.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "WRITE", - "description": "Organization members will be able to clone, pull, and push all organization repositories.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "READ", - "description": "Organization members will be able to clone and pull all organization repositories.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NONE", - "description": "Organization members will only be able to clone and pull public repositories.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "EnterpriseEnabledDisabledSettingValue", - "description": "The possible values for an enabled/disabled enterprise setting.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "ENABLED", - "description": "The setting is enabled for organizations in the enterprise.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DISABLED", - "description": "The setting is disabled for organizations in the enterprise.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NO_POLICY", - "description": "There is no policy set for organizations in the enterprise.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "EnterpriseEnabledSettingValue", - "description": "The possible values for an enabled/no policy enterprise setting.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "ENABLED", - "description": "The setting is enabled for organizations in the enterprise.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NO_POLICY", - "description": "There is no policy set for organizations in the enterprise.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseIdentityProvider", - "description": "An identity provider configured to provision identities for an enterprise.", - "fields": [ - { - "name": "digestMethod", - "description": "The digest algorithm used to sign SAML requests for the identity provider.", - "args": [], - "type": { - "kind": "ENUM", - "name": "SamlDigestAlgorithm", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterprise", - "description": "The enterprise this identity provider belongs to.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Enterprise", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "externalIdentities", - "description": "ExternalIdentities provisioned by this identity provider.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ExternalIdentityConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "idpCertificate", - "description": "The x509 certificate used by the identity provider to sign assertions and responses.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "X509Certificate", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "issuer", - "description": "The Issuer Entity ID for the SAML identity provider.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "recoveryCodes", - "description": "Recovery codes that can be used by admins to access the enterprise if the identity provider is unavailable.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "signatureMethod", - "description": "The signature algorithm used to sign SAML requests for the identity provider.", - "args": [], - "type": { - "kind": "ENUM", - "name": "SamlSignatureAlgorithm", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ssoUrl", - "description": "The URL endpoint for the identity provider's SAML SSO.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "UNION", - "name": "EnterpriseMember", - "description": "An object that is a member of an enterprise.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { - "kind": "OBJECT", - "name": "EnterpriseUserAccount", - "ofType": null - }, - { "kind": "OBJECT", "name": "User", "ofType": null } - ] - }, - { - "kind": "OBJECT", - "name": "EnterpriseMemberConnection", - "description": "The connection type for EnterpriseMember.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseMemberEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "UNION", - "name": "EnterpriseMember", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseMemberEdge", - "description": "A User who is a member of an enterprise through one or more organizations.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isUnlicensed", - "description": "Whether the user does not have a license for the enterprise.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": true, - "deprecationReason": "All members consume a license Removal on 2021-01-01 UTC." - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "UNION", - "name": "EnterpriseMember", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "EnterpriseMemberOrder", - "description": "Ordering options for enterprise member connections.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field to order enterprise members by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseMemberOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The ordering direction.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "EnterpriseMemberOrderField", - "description": "Properties by which enterprise member connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "LOGIN", - "description": "Order enterprise members by login", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT", - "description": "Order enterprise members by creation time", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "EnterpriseMembersCanCreateRepositoriesSettingValue", - "description": "The possible values for the enterprise members can create repositories setting.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "NO_POLICY", - "description": "Organization administrators choose whether to allow members to create repositories.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ALL", - "description": "Members will be able to create public and private repositories.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PUBLIC", - "description": "Members will be able to create only public repositories.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIVATE", - "description": "Members will be able to create only private repositories.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DISABLED", - "description": "Members will not be able to create public or private repositories.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "EnterpriseMembersCanMakePurchasesSettingValue", - "description": "The possible values for the members can make purchases setting.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "ENABLED", - "description": "The setting is enabled for organizations in the enterprise.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DISABLED", - "description": "The setting is disabled for organizations in the enterprise.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseOrganizationMembershipConnection", - "description": "The connection type for Organization.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseOrganizationMembershipEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseOrganizationMembershipEdge", - "description": "An enterprise organization that a user is a member of.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "role", - "description": "The role of the user in the enterprise membership.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseUserAccountMembershipRole", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseOutsideCollaboratorConnection", - "description": "The connection type for User.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseOutsideCollaboratorEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseOutsideCollaboratorEdge", - "description": "A User who is an outside collaborator of an enterprise through one or more organizations.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isUnlicensed", - "description": "Whether the outside collaborator does not have a license for the enterprise.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": true, - "deprecationReason": "All outside collaborators consume a license Removal on 2021-01-01 UTC." - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositories", - "description": "The enterprise organization repositories this user is a member of.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for repositories.", - "type": { - "kind": "INPUT_OBJECT", - "name": "RepositoryOrder", - "ofType": null - }, - "defaultValue": "{field: NAME, direction: ASC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseRepositoryInfoConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseOwnerInfo", - "description": "Enterprise information only visible to enterprise owners.", - "fields": [ - { - "name": "admins", - "description": "A list of all of the administrators for this enterprise.", - "args": [ - { - "name": "query", - "description": "The search string to look for.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "role", - "description": "The role to filter by.", - "type": { - "kind": "ENUM", - "name": "EnterpriseAdministratorRole", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for administrators returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "EnterpriseMemberOrder", - "ofType": null - }, - "defaultValue": "{field: LOGIN, direction: ASC}" - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseAdministratorConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "affiliatedUsersWithTwoFactorDisabled", - "description": "A list of users in the enterprise who currently have two-factor authentication disabled.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "affiliatedUsersWithTwoFactorDisabledExist", - "description": "Whether or not affiliated users with two-factor authentication disabled exist in the enterprise.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "allowPrivateRepositoryForkingSetting", - "description": "The setting value for whether private repository forking is enabled for repositories in organizations in this enterprise.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseEnabledDisabledSettingValue", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "allowPrivateRepositoryForkingSettingOrganizations", - "description": "A list of enterprise organizations configured with the provided private repository forking setting value.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "value", - "description": "The setting value to find organizations for.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for organizations with this setting.", - "type": { - "kind": "INPUT_OBJECT", - "name": "OrganizationOrder", - "ofType": null - }, - "defaultValue": "{field: LOGIN, direction: ASC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "OrganizationConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "defaultRepositoryPermissionSetting", - "description": "The setting value for base repository permissions for organizations in this enterprise.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseDefaultRepositoryPermissionSettingValue", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "defaultRepositoryPermissionSettingOrganizations", - "description": "A list of enterprise organizations configured with the provided default repository permission.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "value", - "description": "The permission to find organizations for.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "DefaultRepositoryPermissionField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for organizations with this setting.", - "type": { - "kind": "INPUT_OBJECT", - "name": "OrganizationOrder", - "ofType": null - }, - "defaultValue": "{field: LOGIN, direction: ASC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "OrganizationConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "domains", - "description": "A list of domains owned by the enterprise.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "isVerified", - "description": "Filter whether or not the domain is verified.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for verifiable domains returned.", - "type": { - "kind": "INPUT_OBJECT", - "name": "VerifiableDomainOrder", - "ofType": null - }, - "defaultValue": "{field: DOMAIN, direction: ASC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "VerifiableDomainConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseServerInstallations", - "description": "Enterprise Server installations owned by the enterprise.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "connectedOnly", - "description": "Whether or not to only return installations discovered via GitHub Connect.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - }, - { - "name": "orderBy", - "description": "Ordering options for Enterprise Server installations returned.", - "type": { - "kind": "INPUT_OBJECT", - "name": "EnterpriseServerInstallationOrder", - "ofType": null - }, - "defaultValue": "{field: HOST_NAME, direction: ASC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseServerInstallationConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ipAllowListEnabledSetting", - "description": "The setting value for whether the enterprise has an IP allow list enabled.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "IpAllowListEnabledSettingValue", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ipAllowListEntries", - "description": "The IP addresses that are allowed to access resources owned by the enterprise.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for IP allow list entries returned.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IpAllowListEntryOrder", - "ofType": null - }, - "defaultValue": "{field: ALLOW_LIST_VALUE, direction: ASC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "IpAllowListEntryConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isUpdatingDefaultRepositoryPermission", - "description": "Whether or not the default repository permission is currently being updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isUpdatingTwoFactorRequirement", - "description": "Whether the two-factor authentication requirement is currently being enforced.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "membersCanChangeRepositoryVisibilitySetting", - "description": "The setting value for whether organization members with admin permissions on a repository can change repository visibility.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseEnabledDisabledSettingValue", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "membersCanChangeRepositoryVisibilitySettingOrganizations", - "description": "A list of enterprise organizations configured with the provided can change repository visibility setting value.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "value", - "description": "The setting value to find organizations for.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for organizations with this setting.", - "type": { - "kind": "INPUT_OBJECT", - "name": "OrganizationOrder", - "ofType": null - }, - "defaultValue": "{field: LOGIN, direction: ASC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "OrganizationConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "membersCanCreateInternalRepositoriesSetting", - "description": "The setting value for whether members of organizations in the enterprise can create internal repositories.", - "args": [], - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "membersCanCreatePrivateRepositoriesSetting", - "description": "The setting value for whether members of organizations in the enterprise can create private repositories.", - "args": [], - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "membersCanCreatePublicRepositoriesSetting", - "description": "The setting value for whether members of organizations in the enterprise can create public repositories.", - "args": [], - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "membersCanCreateRepositoriesSetting", - "description": "The setting value for whether members of organizations in the enterprise can create repositories.", - "args": [], - "type": { - "kind": "ENUM", - "name": "EnterpriseMembersCanCreateRepositoriesSettingValue", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "membersCanCreateRepositoriesSettingOrganizations", - "description": "A list of enterprise organizations configured with the provided repository creation setting value.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "value", - "description": "The setting to find organizations for.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrganizationMembersCanCreateRepositoriesSettingValue", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for organizations with this setting.", - "type": { - "kind": "INPUT_OBJECT", - "name": "OrganizationOrder", - "ofType": null - }, - "defaultValue": "{field: LOGIN, direction: ASC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "OrganizationConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "membersCanDeleteIssuesSetting", - "description": "The setting value for whether members with admin permissions for repositories can delete issues.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseEnabledDisabledSettingValue", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "membersCanDeleteIssuesSettingOrganizations", - "description": "A list of enterprise organizations configured with the provided members can delete issues setting value.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "value", - "description": "The setting value to find organizations for.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for organizations with this setting.", - "type": { - "kind": "INPUT_OBJECT", - "name": "OrganizationOrder", - "ofType": null - }, - "defaultValue": "{field: LOGIN, direction: ASC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "OrganizationConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "membersCanDeleteRepositoriesSetting", - "description": "The setting value for whether members with admin permissions for repositories can delete or transfer repositories.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseEnabledDisabledSettingValue", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "membersCanDeleteRepositoriesSettingOrganizations", - "description": "A list of enterprise organizations configured with the provided members can delete repositories setting value.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "value", - "description": "The setting value to find organizations for.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for organizations with this setting.", - "type": { - "kind": "INPUT_OBJECT", - "name": "OrganizationOrder", - "ofType": null - }, - "defaultValue": "{field: LOGIN, direction: ASC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "OrganizationConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "membersCanInviteCollaboratorsSetting", - "description": "The setting value for whether members of organizations in the enterprise can invite outside collaborators.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseEnabledDisabledSettingValue", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "membersCanInviteCollaboratorsSettingOrganizations", - "description": "A list of enterprise organizations configured with the provided members can invite collaborators setting value.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "value", - "description": "The setting value to find organizations for.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for organizations with this setting.", - "type": { - "kind": "INPUT_OBJECT", - "name": "OrganizationOrder", - "ofType": null - }, - "defaultValue": "{field: LOGIN, direction: ASC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "OrganizationConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "membersCanMakePurchasesSetting", - "description": "Indicates whether members of this enterprise's organizations can purchase additional services for those organizations.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseMembersCanMakePurchasesSettingValue", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "membersCanUpdateProtectedBranchesSetting", - "description": "The setting value for whether members with admin permissions for repositories can update protected branches.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseEnabledDisabledSettingValue", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "membersCanUpdateProtectedBranchesSettingOrganizations", - "description": "A list of enterprise organizations configured with the provided members can update protected branches setting value.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "value", - "description": "The setting value to find organizations for.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for organizations with this setting.", - "type": { - "kind": "INPUT_OBJECT", - "name": "OrganizationOrder", - "ofType": null - }, - "defaultValue": "{field: LOGIN, direction: ASC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "OrganizationConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "membersCanViewDependencyInsightsSetting", - "description": "The setting value for whether members can view dependency insights.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseEnabledDisabledSettingValue", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "membersCanViewDependencyInsightsSettingOrganizations", - "description": "A list of enterprise organizations configured with the provided members can view dependency insights setting value.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "value", - "description": "The setting value to find organizations for.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for organizations with this setting.", - "type": { - "kind": "INPUT_OBJECT", - "name": "OrganizationOrder", - "ofType": null - }, - "defaultValue": "{field: LOGIN, direction: ASC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "OrganizationConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationProjectsSetting", - "description": "The setting value for whether organization projects are enabled for organizations in this enterprise.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseEnabledDisabledSettingValue", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationProjectsSettingOrganizations", - "description": "A list of enterprise organizations configured with the provided organization projects setting value.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "value", - "description": "The setting value to find organizations for.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for organizations with this setting.", - "type": { - "kind": "INPUT_OBJECT", - "name": "OrganizationOrder", - "ofType": null - }, - "defaultValue": "{field: LOGIN, direction: ASC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "OrganizationConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "outsideCollaborators", - "description": "A list of outside collaborators across the repositories in the enterprise.", - "args": [ - { - "name": "login", - "description": "The login of one specific outside collaborator.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "query", - "description": "The search string to look for.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for outside collaborators returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "EnterpriseMemberOrder", - "ofType": null - }, - "defaultValue": "{field: LOGIN, direction: ASC}" - }, - { - "name": "visibility", - "description": "Only return outside collaborators on repositories with this visibility.", - "type": { - "kind": "ENUM", - "name": "RepositoryVisibility", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseOutsideCollaboratorConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pendingAdminInvitations", - "description": "A list of pending administrator invitations for the enterprise.", - "args": [ - { - "name": "query", - "description": "The search string to look for.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for pending enterprise administrator invitations returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "EnterpriseAdministratorInvitationOrder", - "ofType": null - }, - "defaultValue": "{field: CREATED_AT, direction: DESC}" - }, - { - "name": "role", - "description": "The role to filter by.", - "type": { - "kind": "ENUM", - "name": "EnterpriseAdministratorRole", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseAdministratorInvitationConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pendingCollaboratorInvitations", - "description": "A list of pending collaborator invitations across the repositories in the enterprise.", - "args": [ - { - "name": "query", - "description": "The search string to look for.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for pending repository collaborator invitations returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "RepositoryInvitationOrder", - "ofType": null - }, - "defaultValue": "{field: CREATED_AT, direction: DESC}" - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "RepositoryInvitationConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pendingCollaborators", - "description": "A list of pending collaborators across the repositories in the enterprise.", - "args": [ - { - "name": "query", - "description": "The search string to look for.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for pending repository collaborator invitations returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "RepositoryInvitationOrder", - "ofType": null - }, - "defaultValue": "{field: CREATED_AT, direction: DESC}" - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterprisePendingCollaboratorConnection", - "ofType": null - } - }, - "isDeprecated": true, - "deprecationReason": "Repository invitations can now be associated with an email, not only an invitee. Use the `pendingCollaboratorInvitations` field instead. Removal on 2020-10-01 UTC." - }, - { - "name": "pendingMemberInvitations", - "description": "A list of pending member invitations for organizations in the enterprise.", - "args": [ - { - "name": "query", - "description": "The search string to look for.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterprisePendingMemberInvitationConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryProjectsSetting", - "description": "The setting value for whether repository projects are enabled in this enterprise.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseEnabledDisabledSettingValue", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryProjectsSettingOrganizations", - "description": "A list of enterprise organizations configured with the provided repository projects setting value.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "value", - "description": "The setting value to find organizations for.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for organizations with this setting.", - "type": { - "kind": "INPUT_OBJECT", - "name": "OrganizationOrder", - "ofType": null - }, - "defaultValue": "{field: LOGIN, direction: ASC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "OrganizationConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "samlIdentityProvider", - "description": "The SAML Identity Provider for the enterprise.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "EnterpriseIdentityProvider", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "samlIdentityProviderSettingOrganizations", - "description": "A list of enterprise organizations configured with the SAML single sign-on setting value.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "value", - "description": "The setting value to find organizations for.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "IdentityProviderConfigurationState", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for organizations with this setting.", - "type": { - "kind": "INPUT_OBJECT", - "name": "OrganizationOrder", - "ofType": null - }, - "defaultValue": "{field: LOGIN, direction: ASC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "OrganizationConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "supportEntitlements", - "description": "A list of members with a support entitlement.", - "args": [ - { - "name": "orderBy", - "description": "Ordering options for support entitlement users returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "EnterpriseMemberOrder", - "ofType": null - }, - "defaultValue": "{field: LOGIN, direction: ASC}" - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseMemberConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamDiscussionsSetting", - "description": "The setting value for whether team discussions are enabled for organizations in this enterprise.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseEnabledDisabledSettingValue", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamDiscussionsSettingOrganizations", - "description": "A list of enterprise organizations configured with the provided team discussions setting value.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "value", - "description": "The setting value to find organizations for.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for organizations with this setting.", - "type": { - "kind": "INPUT_OBJECT", - "name": "OrganizationOrder", - "ofType": null - }, - "defaultValue": "{field: LOGIN, direction: ASC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "OrganizationConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "twoFactorRequiredSetting", - "description": "The setting value for whether the enterprise requires two-factor authentication for its organizations and users.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseEnabledSettingValue", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "twoFactorRequiredSettingOrganizations", - "description": "A list of enterprise organizations configured with the two-factor authentication setting value.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "value", - "description": "The setting value to find organizations for.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for organizations with this setting.", - "type": { - "kind": "INPUT_OBJECT", - "name": "OrganizationOrder", - "ofType": null - }, - "defaultValue": "{field: LOGIN, direction: ASC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "OrganizationConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterprisePendingCollaboratorConnection", - "description": "The connection type for User.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterprisePendingCollaboratorEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterprisePendingCollaboratorEdge", - "description": "A user with an invitation to be a collaborator on a repository owned by an organization in an enterprise.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isUnlicensed", - "description": "Whether the invited collaborator does not have a license for the enterprise.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": true, - "deprecationReason": "All pending collaborators consume a license Removal on 2021-01-01 UTC." - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositories", - "description": "The enterprise organization repositories this user is a member of.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for repositories.", - "type": { - "kind": "INPUT_OBJECT", - "name": "RepositoryOrder", - "ofType": null - }, - "defaultValue": "{field: NAME, direction: ASC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseRepositoryInfoConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterprisePendingMemberInvitationConnection", - "description": "The connection type for OrganizationInvitation.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterprisePendingMemberInvitationEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "OrganizationInvitation", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalUniqueUserCount", - "description": "Identifies the total count of unique users in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterprisePendingMemberInvitationEdge", - "description": "An invitation to be a member in an enterprise organization.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isUnlicensed", - "description": "Whether the invitation has a license for the enterprise.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": true, - "deprecationReason": "All pending members consume a license Removal on 2020-07-01 UTC." - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "OrganizationInvitation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseRepositoryInfo", - "description": "A subset of repository information queryable from an enterprise.", - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isPrivate", - "description": "Identifies if the repository is private.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The repository's name.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nameWithOwner", - "description": "The repository's name with owner.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseRepositoryInfoConnection", - "description": "The connection type for EnterpriseRepositoryInfo.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseRepositoryInfoEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseRepositoryInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseRepositoryInfoEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "EnterpriseRepositoryInfo", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseServerInstallation", - "description": "An Enterprise Server installation.", - "fields": [ - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "customerName", - "description": "The customer name to which the Enterprise Server installation belongs.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hostName", - "description": "The host name of the Enterprise Server installation.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isConnected", - "description": "Whether or not the installation is connected to an Enterprise Server installation via GitHub Connect.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userAccounts", - "description": "User accounts on this Enterprise Server installation.", - "args": [ - { - "name": "orderBy", - "description": "Ordering options for Enterprise Server user accounts returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "EnterpriseServerUserAccountOrder", - "ofType": null - }, - "defaultValue": "{field: LOGIN, direction: ASC}" - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseServerUserAccountConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userAccountsUploads", - "description": "User accounts uploads for the Enterprise Server installation.", - "args": [ - { - "name": "orderBy", - "description": "Ordering options for Enterprise Server user accounts uploads returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "EnterpriseServerUserAccountsUploadOrder", - "ofType": null - }, - "defaultValue": "{field: CREATED_AT, direction: DESC}" - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseServerUserAccountsUploadConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseServerInstallationConnection", - "description": "The connection type for EnterpriseServerInstallation.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseServerInstallationEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseServerInstallation", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseServerInstallationEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "EnterpriseServerInstallation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "EnterpriseServerInstallationOrder", - "description": "Ordering options for Enterprise Server installation connections.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field to order Enterprise Server installations by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseServerInstallationOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The ordering direction.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "EnterpriseServerInstallationOrderField", - "description": "Properties by which Enterprise Server installation connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "HOST_NAME", - "description": "Order Enterprise Server installations by host name", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CUSTOMER_NAME", - "description": "Order Enterprise Server installations by customer name", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT", - "description": "Order Enterprise Server installations by creation time", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseServerUserAccount", - "description": "A user account on an Enterprise Server installation.", - "fields": [ - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "emails", - "description": "User emails belonging to this user account.", - "args": [ - { - "name": "orderBy", - "description": "Ordering options for Enterprise Server user account emails returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "EnterpriseServerUserAccountEmailOrder", - "ofType": null - }, - "defaultValue": "{field: EMAIL, direction: ASC}" - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseServerUserAccountEmailConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseServerInstallation", - "description": "The Enterprise Server installation on which this user account exists.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseServerInstallation", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isSiteAdmin", - "description": "Whether the user account is a site administrator on the Enterprise Server installation.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "login", - "description": "The login of the user account on the Enterprise Server installation.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "profileName", - "description": "The profile name of the user account on the Enterprise Server installation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "remoteCreatedAt", - "description": "The date and time when the user account was created on the Enterprise Server installation.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "remoteUserId", - "description": "The ID of the user account on the Enterprise Server installation.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseServerUserAccountConnection", - "description": "The connection type for EnterpriseServerUserAccount.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseServerUserAccountEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseServerUserAccount", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseServerUserAccountEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "EnterpriseServerUserAccount", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseServerUserAccountEmail", - "description": "An email belonging to a user account on an Enterprise Server installation.", - "fields": [ - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "email", - "description": "The email address.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isPrimary", - "description": "Indicates whether this is the primary email of the associated user account.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userAccount", - "description": "The user account to which the email belongs.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseServerUserAccount", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseServerUserAccountEmailConnection", - "description": "The connection type for EnterpriseServerUserAccountEmail.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseServerUserAccountEmailEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseServerUserAccountEmail", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseServerUserAccountEmailEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "EnterpriseServerUserAccountEmail", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "EnterpriseServerUserAccountEmailOrder", - "description": "Ordering options for Enterprise Server user account email connections.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field to order emails by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseServerUserAccountEmailOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The ordering direction.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "EnterpriseServerUserAccountEmailOrderField", - "description": "Properties by which Enterprise Server user account email connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "EMAIL", - "description": "Order emails by email", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "EnterpriseServerUserAccountOrder", - "description": "Ordering options for Enterprise Server user account connections.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field to order user accounts by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseServerUserAccountOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The ordering direction.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "EnterpriseServerUserAccountOrderField", - "description": "Properties by which Enterprise Server user account connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "LOGIN", - "description": "Order user accounts by login", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REMOTE_CREATED_AT", - "description": "Order user accounts by creation time on the Enterprise Server installation", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseServerUserAccountsUpload", - "description": "A user accounts upload from an Enterprise Server installation.", - "fields": [ - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterprise", - "description": "The enterprise to which this upload belongs.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Enterprise", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseServerInstallation", - "description": "The Enterprise Server installation for which this upload was generated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseServerInstallation", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The name of the file uploaded.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "syncState", - "description": "The synchronization state of the upload", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseServerUserAccountsUploadSyncState", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseServerUserAccountsUploadConnection", - "description": "The connection type for EnterpriseServerUserAccountsUpload.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseServerUserAccountsUploadEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseServerUserAccountsUpload", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseServerUserAccountsUploadEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "EnterpriseServerUserAccountsUpload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "EnterpriseServerUserAccountsUploadOrder", - "description": "Ordering options for Enterprise Server user accounts upload connections.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field to order user accounts uploads by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseServerUserAccountsUploadOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The ordering direction.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "EnterpriseServerUserAccountsUploadOrderField", - "description": "Properties by which Enterprise Server user accounts upload connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "CREATED_AT", - "description": "Order user accounts uploads by creation time", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "EnterpriseServerUserAccountsUploadSyncState", - "description": "Synchronization state of the Enterprise Server user accounts upload", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "PENDING", - "description": "The synchronization of the upload is pending.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SUCCESS", - "description": "The synchronization of the upload succeeded.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FAILURE", - "description": "The synchronization of the upload failed.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseUserAccount", - "description": "An account for a user who is an admin of an enterprise or a member of an enterprise through one or more organizations.", - "fields": [ - { - "name": "avatarUrl", - "description": "A URL pointing to the enterprise user account's public avatar.", - "args": [ - { - "name": "size", - "description": "The size of the resulting square image.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterprise", - "description": "The enterprise in which this user account exists.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Enterprise", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "login", - "description": "An identifier for the enterprise user account, a login or email address", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The name of the enterprise user account", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizations", - "description": "A list of enterprise organizations this user is a member of.", - "args": [ - { - "name": "query", - "description": "The search string to look for.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for organizations returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "OrganizationOrder", - "ofType": null - }, - "defaultValue": "{field: LOGIN, direction: ASC}" - }, - { - "name": "role", - "description": "The role of the user in the enterprise organization.", - "type": { - "kind": "ENUM", - "name": "EnterpriseUserAccountMembershipRole", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseOrganizationMembershipConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this user.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this user.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user within the enterprise.", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "Actor", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseUserAccountConnection", - "description": "The connection type for EnterpriseUserAccount.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseUserAccountEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "EnterpriseUserAccount", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseUserAccountEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "EnterpriseUserAccount", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "EnterpriseUserAccountMembershipRole", - "description": "The possible roles for enterprise membership.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "MEMBER", - "description": "The user is a member of the enterprise membership.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "OWNER", - "description": "The user is an owner of the enterprise membership.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "EnterpriseUserDeployment", - "description": "The possible GitHub Enterprise deployments where this user can exist.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "CLOUD", - "description": "The user is part of a GitHub Enterprise Cloud deployment.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SERVER", - "description": "The user is part of a GitHub Enterprise Server deployment.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ExternalIdentity", - "description": "An external identity provisioned by SAML SSO or SCIM.", - "fields": [ - { - "name": "guid", - "description": "The GUID for this identity", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationInvitation", - "description": "Organization invitation for this SCIM-provisioned external identity", - "args": [], - "type": { - "kind": "OBJECT", - "name": "OrganizationInvitation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "samlIdentity", - "description": "SAML Identity attributes", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ExternalIdentitySamlAttributes", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "scimIdentity", - "description": "SCIM Identity attributes", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ExternalIdentityScimAttributes", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "User linked to this external identity. Will be NULL if this identity has not been claimed by an organization member.", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ExternalIdentityConnection", - "description": "The connection type for ExternalIdentity.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ExternalIdentityEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ExternalIdentity", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ExternalIdentityEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ExternalIdentity", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ExternalIdentitySamlAttributes", - "description": "SAML attributes for the External Identity", - "fields": [ - { - "name": "emails", - "description": "The emails associated with the SAML identity", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserEmailMetadata", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "familyName", - "description": "Family name of the SAML identity", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "givenName", - "description": "Given name of the SAML identity", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "groups", - "description": "The groups linked to this identity in IDP", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nameId", - "description": "The NameID of the SAML identity", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "username", - "description": "The userName of the SAML identity", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ExternalIdentityScimAttributes", - "description": "SCIM attributes for the External Identity", - "fields": [ - { - "name": "emails", - "description": "The emails associated with the SCIM identity", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserEmailMetadata", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "familyName", - "description": "Family name of the SCIM identity", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "givenName", - "description": "Given name of the SCIM identity", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "groups", - "description": "The groups linked to this identity in IDP", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "username", - "description": "The userName of the SCIM identity", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "FileViewedState", - "description": "The possible viewed states of a file .", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "DISMISSED", - "description": "The file has new changes since last viewed.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "VIEWED", - "description": "The file has been marked as viewed.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNVIEWED", - "description": "The file has not been marked as viewed.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "Float", - "description": "Represents signed double-precision fractional values as specified by [IEEE 754](https://wikipedia.org/wiki/IEEE_floating_point).", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "FollowUserInput", - "description": "Autogenerated input type of FollowUser", - "fields": null, - "inputFields": [ - { - "name": "userId", - "description": "ID of the user to follow.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "FollowUserPayload", - "description": "Autogenerated return type of FollowUser", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user that was followed.", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "FollowerConnection", - "description": "The connection type for User.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "FollowingConnection", - "description": "The connection type for User.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "FundingLink", - "description": "A funding platform link for a repository.", - "fields": [ - { - "name": "platform", - "description": "The funding platform this link is for.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "FundingPlatform", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The configured URL for this funding link.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "FundingPlatform", - "description": "The possible funding platforms for repository funding links.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "GITHUB", - "description": "GitHub funding platform.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PATREON", - "description": "Patreon funding platform.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "OPEN_COLLECTIVE", - "description": "Open Collective funding platform.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "KO_FI", - "description": "Ko-fi funding platform.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "TIDELIFT", - "description": "Tidelift funding platform.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "COMMUNITY_BRIDGE", - "description": "Community Bridge funding platform.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "LIBERAPAY", - "description": "Liberapay funding platform.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ISSUEHUNT", - "description": "IssueHunt funding platform.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "OTECHIE", - "description": "Otechie funding platform.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CUSTOM", - "description": "Custom funding platform.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GenericHovercardContext", - "description": "A generic hovercard context with a message and icon", - "fields": [ - { - "name": "message", - "description": "A string describing this context", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "octicon", - "description": "An octicon to accompany this context", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "HovercardContext", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Gist", - "description": "A Gist.", - "fields": [ - { - "name": "comments", - "description": "A list of comments associated with the gist", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GistCommentConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": "The gist description.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "files", - "description": "The files in this gist.", - "args": [ - { - "name": "limit", - "description": "The maximum number of files to return.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": "10" - }, - { - "name": "oid", - "description": "The oid of the files to return", - "type": { - "kind": "SCALAR", - "name": "GitObjectID", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GistFile", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "forks", - "description": "A list of forks associated with the gist", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for gists returned from the connection", - "type": { - "kind": "INPUT_OBJECT", - "name": "GistOrder", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GistConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isFork", - "description": "Identifies if the gist is a fork.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isPublic", - "description": "Whether the gist is public or not.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The gist name.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "owner", - "description": "The gist owner.", - "args": [], - "type": { - "kind": "INTERFACE", - "name": "RepositoryOwner", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pushedAt", - "description": "Identifies when the gist was last pushed to.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTML path to this resource.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "stargazerCount", - "description": "Returns a count of how many stargazers there are on this object\n", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "stargazers", - "description": "A list of users who have starred this starrable.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Order for connection", - "type": { - "kind": "INPUT_OBJECT", - "name": "StarOrder", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "StargazerConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this Gist.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerHasStarred", - "description": "Returns a boolean indicating whether the viewing user has starred this starrable.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "Starrable", "ofType": null }, - { - "kind": "INTERFACE", - "name": "UniformResourceLocatable", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GistComment", - "description": "Represents a comment on an Gist.", - "fields": [ - { - "name": "author", - "description": "The actor who authored the comment.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "authorAssociation", - "description": "Author's association with the gist.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "CommentAuthorAssociation", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "body", - "description": "Identifies the comment body.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bodyHTML", - "description": "The body rendered to HTML.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "HTML", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bodyText", - "description": "The body rendered to text.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdViaEmail", - "description": "Check if this comment was created via an email reply.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "editor", - "description": "The actor who edited the comment.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "gist", - "description": "The associated gist.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "Gist", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "includesCreatedEdit", - "description": "Check if this comment was edited and includes an edit with the creation data", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isMinimized", - "description": "Returns whether or not a comment has been minimized.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lastEditedAt", - "description": "The moment the editor made the last edit", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "minimizedReason", - "description": "Returns why the comment was minimized.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "publishedAt", - "description": "Identifies when the comment was published at.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userContentEdits", - "description": "A list of edits to this content.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserContentEditConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanDelete", - "description": "Check if the current viewer can delete this object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanMinimize", - "description": "Check if the current viewer can minimize this object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanUpdate", - "description": "Check if the current viewer can update this object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCannotUpdateReasons", - "description": "Reasons why the current viewer can not update this comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "CommentCannotUpdateReason", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerDidAuthor", - "description": "Did the viewer author this comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "Comment", "ofType": null }, - { "kind": "INTERFACE", "name": "Deletable", "ofType": null }, - { "kind": "INTERFACE", "name": "Minimizable", "ofType": null }, - { "kind": "INTERFACE", "name": "Updatable", "ofType": null }, - { "kind": "INTERFACE", "name": "UpdatableComment", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GistCommentConnection", - "description": "The connection type for GistComment.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GistCommentEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GistComment", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GistCommentEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "GistComment", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GistConnection", - "description": "The connection type for Gist.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GistEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { "kind": "OBJECT", "name": "Gist", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GistEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { "kind": "OBJECT", "name": "Gist", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GistFile", - "description": "A file in a gist.", - "fields": [ - { - "name": "encodedName", - "description": "The file name encoded to remove characters that are invalid in URL paths.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "encoding", - "description": "The gist file encoding.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "extension", - "description": "The file extension from the file name.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isImage", - "description": "Indicates if this file is an image.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isTruncated", - "description": "Whether the file's contents were truncated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "language", - "description": "The programming language this file is written in.", - "args": [], - "type": { "kind": "OBJECT", "name": "Language", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The gist file name.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "size", - "description": "The gist file size in bytes.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "text", - "description": "UTF8 text data or null if the file is binary", - "args": [ - { - "name": "truncate", - "description": "Optionally truncate the returned file to this length.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "GistOrder", - "description": "Ordering options for gist connections", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field to order repositories by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "GistOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The ordering direction.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "GistOrderField", - "description": "Properties by which gist connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "CREATED_AT", - "description": "Order gists by creation time", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT", - "description": "Order gists by update time", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PUSHED_AT", - "description": "Order gists by push time", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "GistPrivacy", - "description": "The privacy of a Gist", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "PUBLIC", - "description": "Public", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SECRET", - "description": "Secret", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ALL", - "description": "Gists that are public and secret", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GitActor", - "description": "Represents an actor in a Git commit (ie. an author or committer).", - "fields": [ - { - "name": "avatarUrl", - "description": "A URL pointing to the author's public avatar.", - "args": [ - { - "name": "size", - "description": "The size of the resulting square image.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "date", - "description": "The timestamp of the Git action (authoring or committing).", - "args": [], - "type": { - "kind": "SCALAR", - "name": "GitTimestamp", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "email", - "description": "The email in the Git commit.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The name in the Git commit.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The GitHub user corresponding to the email field. Null if no such user exists.", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GitActorConnection", - "description": "The connection type for GitActor.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GitActorEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GitActor", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GitActorEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { "kind": "OBJECT", "name": "GitActor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GitHubMetadata", - "description": "Represents information about the GitHub instance.", - "fields": [ - { - "name": "gitHubServicesSha", - "description": "Returns a String that's a SHA of `github-services`", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "GitObjectID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "gitIpAddresses", - "description": "IP addresses that users connect to for git operations", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hookIpAddresses", - "description": "IP addresses that service hooks are sent from", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "importerIpAddresses", - "description": "IP addresses that the importer connects from", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isPasswordAuthenticationVerifiable", - "description": "Whether or not users are verified", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pagesIpAddresses", - "description": "IP addresses for GitHub Pages' A records", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "GitObject", - "description": "Represents a Git object.", - "fields": [ - { - "name": "abbreviatedOid", - "description": "An abbreviated version of the Git object ID", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commitResourcePath", - "description": "The HTTP path for this Git object", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commitUrl", - "description": "The HTTP URL for this Git object", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "oid", - "description": "The Git object ID", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "GitObjectID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The Repository the Git object belongs to", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Blob", "ofType": null }, - { "kind": "OBJECT", "name": "Commit", "ofType": null }, - { "kind": "OBJECT", "name": "Tag", "ofType": null }, - { "kind": "OBJECT", "name": "Tree", "ofType": null } - ] - }, - { - "kind": "SCALAR", - "name": "GitObjectID", - "description": "A Git object ID.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "GitSSHRemote", - "description": "Git SSH string", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "GitSignature", - "description": "Information about a signature (GPG or S/MIME) on a Commit or Tag.", - "fields": [ - { - "name": "email", - "description": "Email used to sign this object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isValid", - "description": "True if the signature is valid and verified by GitHub.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "payload", - "description": "Payload for GPG signing object. Raw ODB object without the signature header.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "signature", - "description": "ASCII-armored signature header from object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "signer", - "description": "GitHub user corresponding to the email signing this commit.", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "state", - "description": "The state of this signature. `VALID` if signature is valid and verified by GitHub, otherwise represents reason why signature is considered invalid.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "GitSignatureState", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "wasSignedByGitHub", - "description": "True if the signature was made with GitHub's signing key.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "GpgSignature", "ofType": null }, - { "kind": "OBJECT", "name": "SmimeSignature", "ofType": null }, - { "kind": "OBJECT", "name": "UnknownSignature", "ofType": null } - ] - }, - { - "kind": "ENUM", - "name": "GitSignatureState", - "description": "The state of a Git signature.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "VALID", - "description": "Valid signature and verified by GitHub", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INVALID", - "description": "Invalid signature", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "MALFORMED_SIG", - "description": "Malformed signature", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNKNOWN_KEY", - "description": "Key used for signing not known to GitHub", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "BAD_EMAIL", - "description": "Invalid email used for signing", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNVERIFIED_EMAIL", - "description": "Email used for signing unverified on GitHub", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NO_USER", - "description": "Email used for signing not known to GitHub", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNKNOWN_SIG_TYPE", - "description": "Unknown signature type", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNSIGNED", - "description": "Unsigned", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "GPGVERIFY_UNAVAILABLE", - "description": "Internal error - the GPG verification service is unavailable at the moment", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "GPGVERIFY_ERROR", - "description": "Internal error - the GPG verification service misbehaved", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NOT_SIGNING_KEY", - "description": "The usage flags for the key that signed this don't allow signing", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "EXPIRED_KEY", - "description": "Signing key expired", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "OCSP_PENDING", - "description": "Valid signature, pending certificate revocation checking", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "OCSP_ERROR", - "description": "Valid signature, though certificate revocation check failed", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "BAD_CERT", - "description": "The signing certificate or its chain could not be verified", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "OCSP_REVOKED", - "description": "One or more certificates in chain has been revoked", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "GitTimestamp", - "description": "An ISO-8601 encoded date string. Unlike the DateTime type, GitTimestamp is not converted in UTC.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "GpgSignature", - "description": "Represents a GPG signature on a Commit or Tag.", - "fields": [ - { - "name": "email", - "description": "Email used to sign this object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isValid", - "description": "True if the signature is valid and verified by GitHub.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "keyId", - "description": "Hex-encoded ID of the key that signed this object.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "payload", - "description": "Payload for GPG signing object. Raw ODB object without the signature header.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "signature", - "description": "ASCII-armored signature header from object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "signer", - "description": "GitHub user corresponding to the email signing this commit.", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "state", - "description": "The state of this signature. `VALID` if signature is valid and verified by GitHub, otherwise represents reason why signature is considered invalid.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "GitSignatureState", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "wasSignedByGitHub", - "description": "True if the signature was made with GitHub's signing key.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "GitSignature", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "HTML", - "description": "A string containing HTML code.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "HeadRefDeletedEvent", - "description": "Represents a 'head_ref_deleted' event on a given pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "headRef", - "description": "Identifies the Ref associated with the `head_ref_deleted` event.", - "args": [], - "type": { "kind": "OBJECT", "name": "Ref", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "headRefName", - "description": "Identifies the name of the Ref associated with the `head_ref_deleted` event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "PullRequest referenced by event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "HeadRefForcePushedEvent", - "description": "Represents a 'head_ref_force_pushed' event on a given pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "afterCommit", - "description": "Identifies the after commit SHA for the 'head_ref_force_pushed' event.", - "args": [], - "type": { "kind": "OBJECT", "name": "Commit", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "beforeCommit", - "description": "Identifies the before commit SHA for the 'head_ref_force_pushed' event.", - "args": [], - "type": { "kind": "OBJECT", "name": "Commit", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "PullRequest referenced by event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ref", - "description": "Identifies the fully qualified ref name for the 'head_ref_force_pushed' event.", - "args": [], - "type": { "kind": "OBJECT", "name": "Ref", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "HeadRefRestoredEvent", - "description": "Represents a 'head_ref_restored' event on a given pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "PullRequest referenced by event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Hovercard", - "description": "Detail needed to display a hovercard for a user", - "fields": [ - { - "name": "contexts", - "description": "Each of the contexts for this hovercard", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INTERFACE", - "name": "HovercardContext", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "HovercardContext", - "description": "An individual line of a hovercard", - "fields": [ - { - "name": "message", - "description": "A string describing this context", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "octicon", - "description": "An octicon to accompany this context", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { - "kind": "OBJECT", - "name": "GenericHovercardContext", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrganizationTeamsHovercardContext", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrganizationsHovercardContext", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "ReviewStatusHovercardContext", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "ViewerHovercardContext", - "ofType": null - } - ] - }, - { - "kind": "SCALAR", - "name": "ID", - "description": "Represents a unique identifier that is Base64 obfuscated. It is often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `\"VXNlci0xMA==\"`) or integer (such as `4`) input value will be accepted as an ID.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "IdentityProviderConfigurationState", - "description": "The possible states in which authentication can be configured with an identity provider.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "ENFORCED", - "description": "Authentication with an identity provider is configured and enforced.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CONFIGURED", - "description": "Authentication with an identity provider is configured but not enforced.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNCONFIGURED", - "description": "Authentication with an identity provider is not configured.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "Int", - "description": "Represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "InviteEnterpriseAdminInput", - "description": "Autogenerated input type of InviteEnterpriseAdmin", - "fields": null, - "inputFields": [ - { - "name": "enterpriseId", - "description": "The ID of the enterprise to which you want to invite an administrator.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "invitee", - "description": "The login of a user to invite as an administrator.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "email", - "description": "The email of the person to invite as an administrator.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "role", - "description": "The role of the administrator.", - "type": { - "kind": "ENUM", - "name": "EnterpriseAdministratorRole", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "InviteEnterpriseAdminPayload", - "description": "Autogenerated return type of InviteEnterpriseAdmin", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "invitation", - "description": "The created enterprise administrator invitation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "EnterpriseAdministratorInvitation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "IpAllowListEnabledSettingValue", - "description": "The possible values for the IP allow list enabled setting.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "ENABLED", - "description": "The setting is enabled for the owner.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DISABLED", - "description": "The setting is disabled for the owner.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "IpAllowListEntry", - "description": "An IP address or range of addresses that is allowed to access an owner's resources.", - "fields": [ - { - "name": "allowListValue", - "description": "A single IP address or range of IP addresses in CIDR notation.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isActive", - "description": "Whether the entry is currently active.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The name of the IP allow list entry.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "owner", - "description": "The owner of the IP allow list entry.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "UNION", - "name": "IpAllowListOwner", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "IpAllowListEntryConnection", - "description": "The connection type for IpAllowListEntry.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "IpAllowListEntryEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "IpAllowListEntry", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "IpAllowListEntryEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "IpAllowListEntry", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "IpAllowListEntryOrder", - "description": "Ordering options for IP allow list entry connections.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field to order IP allow list entries by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "IpAllowListEntryOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The ordering direction.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "IpAllowListEntryOrderField", - "description": "Properties by which IP allow list entry connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "CREATED_AT", - "description": "Order IP allow list entries by creation time.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ALLOW_LIST_VALUE", - "description": "Order IP allow list entries by the allow list value.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "UNION", - "name": "IpAllowListOwner", - "description": "Types that can own an IP allow list.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Enterprise", "ofType": null }, - { "kind": "OBJECT", "name": "Organization", "ofType": null } - ] - }, - { - "kind": "OBJECT", - "name": "Issue", - "description": "An Issue is a place to discuss ideas, enhancements, tasks, and bugs for a project.", - "fields": [ - { - "name": "activeLockReason", - "description": "Reason that the conversation was locked.", - "args": [], - "type": { "kind": "ENUM", "name": "LockReason", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "assignees", - "description": "A list of Users assigned to this object.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "author", - "description": "The actor who authored the comment.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "authorAssociation", - "description": "Author's association with the subject of the comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "CommentAuthorAssociation", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "body", - "description": "Identifies the body of the issue.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bodyHTML", - "description": "The body rendered to HTML.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "HTML", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bodyResourcePath", - "description": "The http path for this issue body", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bodyText", - "description": "Identifies the body of the issue rendered to text.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bodyUrl", - "description": "The http URL for this issue body", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "closed", - "description": "`true` if the object is closed (definition of closed may depend on type)", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "closedAt", - "description": "Identifies the date and time when the object was closed.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "comments", - "description": "A list of comments associated with the Issue.", - "args": [ - { - "name": "orderBy", - "description": "Ordering options for issue comments returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IssueCommentOrder", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "IssueCommentConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdViaEmail", - "description": "Check if this comment was created via an email reply.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "editor", - "description": "The actor who edited the comment.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hovercard", - "description": "The hovercard information for this issue", - "args": [ - { - "name": "includeNotificationContexts", - "description": "Whether or not to include notification contexts", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "true" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Hovercard", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "includesCreatedEdit", - "description": "Check if this comment was edited and includes an edit with the creation data", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isReadByViewer", - "description": "Is this issue read by the viewer", - "args": [], - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "labels", - "description": "A list of labels associated with the object.", - "args": [ - { - "name": "orderBy", - "description": "Ordering options for labels returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "LabelOrder", - "ofType": null - }, - "defaultValue": "{field: CREATED_AT, direction: ASC}" - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "LabelConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lastEditedAt", - "description": "The moment the editor made the last edit", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "locked", - "description": "`true` if the object is locked", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "milestone", - "description": "Identifies the milestone associated with the issue.", - "args": [], - "type": { "kind": "OBJECT", "name": "Milestone", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "number", - "description": "Identifies the issue number.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "participants", - "description": "A list of Users that are participating in the Issue conversation.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "projectCards", - "description": "List of project cards associated with this issue.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "archivedStates", - "description": "A list of archived states to filter the cards by", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ProjectCardArchivedState", - "ofType": null - } - }, - "defaultValue": "[ARCHIVED, NOT_ARCHIVED]" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ProjectCardConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "publishedAt", - "description": "Identifies when the comment was published at.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reactionGroups", - "description": "A list of reactions grouped by content left on the subject.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReactionGroup", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reactions", - "description": "A list of Reactions left on the Issue.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "content", - "description": "Allows filtering Reactions by emoji.", - "type": { - "kind": "ENUM", - "name": "ReactionContent", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Allows specifying the order in which reactions are returned.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ReactionOrder", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReactionConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with this node.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this issue", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "state", - "description": "Identifies the state of the issue.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "IssueState", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "timeline", - "description": "A list of events, comments, commits, etc. associated with the issue.", - "args": [ - { - "name": "since", - "description": "Allows filtering timeline events by a `since` timestamp.", - "type": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "IssueTimelineConnection", - "ofType": null - } - }, - "isDeprecated": true, - "deprecationReason": "`timeline` will be removed Use Issue.timelineItems instead. Removal on 2020-10-01 UTC." - }, - { - "name": "timelineItems", - "description": "A list of events, comments, commits, etc. associated with the issue.", - "args": [ - { - "name": "since", - "description": "Filter timeline items by a `since` timestamp.", - "type": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "skip", - "description": "Skips the first _n_ elements in the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "itemTypes", - "description": "Filter timeline items by type.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "IssueTimelineItemsItemType", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "IssueTimelineItemsConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "title", - "description": "Identifies the issue title.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this issue", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userContentEdits", - "description": "A list of edits to this content.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserContentEditConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanReact", - "description": "Can user react to this subject", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanSubscribe", - "description": "Check if the viewer is able to change their subscription status for the repository.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanUpdate", - "description": "Check if the current viewer can update this object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCannotUpdateReasons", - "description": "Reasons why the current viewer can not update this comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "CommentCannotUpdateReason", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerDidAuthor", - "description": "Did the viewer author this comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerSubscription", - "description": "Identifies if the viewer is watching, not watching, or ignoring the subscribable entity.", - "args": [], - "type": { - "kind": "ENUM", - "name": "SubscriptionState", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "Assignable", "ofType": null }, - { "kind": "INTERFACE", "name": "Closable", "ofType": null }, - { "kind": "INTERFACE", "name": "Comment", "ofType": null }, - { "kind": "INTERFACE", "name": "Updatable", "ofType": null }, - { "kind": "INTERFACE", "name": "UpdatableComment", "ofType": null }, - { "kind": "INTERFACE", "name": "Labelable", "ofType": null }, - { "kind": "INTERFACE", "name": "Lockable", "ofType": null }, - { "kind": "INTERFACE", "name": "Reactable", "ofType": null }, - { "kind": "INTERFACE", "name": "RepositoryNode", "ofType": null }, - { "kind": "INTERFACE", "name": "Subscribable", "ofType": null }, - { - "kind": "INTERFACE", - "name": "UniformResourceLocatable", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "IssueComment", - "description": "Represents a comment on an Issue.", - "fields": [ - { - "name": "author", - "description": "The actor who authored the comment.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "authorAssociation", - "description": "Author's association with the subject of the comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "CommentAuthorAssociation", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "body", - "description": "The body as Markdown.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bodyHTML", - "description": "The body rendered to HTML.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "HTML", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bodyText", - "description": "The body rendered to text.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdViaEmail", - "description": "Check if this comment was created via an email reply.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "editor", - "description": "The actor who edited the comment.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "includesCreatedEdit", - "description": "Check if this comment was edited and includes an edit with the creation data", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isMinimized", - "description": "Returns whether or not a comment has been minimized.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "issue", - "description": "Identifies the issue associated with the comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "Issue", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lastEditedAt", - "description": "The moment the editor made the last edit", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "minimizedReason", - "description": "Returns why the comment was minimized.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "publishedAt", - "description": "Identifies when the comment was published at.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "Returns the pull request associated with the comment, if this comment was made on a\npull request.\n", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reactionGroups", - "description": "A list of reactions grouped by content left on the subject.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReactionGroup", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reactions", - "description": "A list of Reactions left on the Issue.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "content", - "description": "Allows filtering Reactions by emoji.", - "type": { - "kind": "ENUM", - "name": "ReactionContent", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Allows specifying the order in which reactions are returned.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ReactionOrder", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReactionConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with this node.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this issue comment", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this issue comment", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userContentEdits", - "description": "A list of edits to this content.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserContentEditConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanDelete", - "description": "Check if the current viewer can delete this object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanMinimize", - "description": "Check if the current viewer can minimize this object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanReact", - "description": "Can user react to this subject", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanUpdate", - "description": "Check if the current viewer can update this object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCannotUpdateReasons", - "description": "Reasons why the current viewer can not update this comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "CommentCannotUpdateReason", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerDidAuthor", - "description": "Did the viewer author this comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "Comment", "ofType": null }, - { "kind": "INTERFACE", "name": "Deletable", "ofType": null }, - { "kind": "INTERFACE", "name": "Minimizable", "ofType": null }, - { "kind": "INTERFACE", "name": "Updatable", "ofType": null }, - { "kind": "INTERFACE", "name": "UpdatableComment", "ofType": null }, - { "kind": "INTERFACE", "name": "Reactable", "ofType": null }, - { "kind": "INTERFACE", "name": "RepositoryNode", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "IssueCommentConnection", - "description": "The connection type for IssueComment.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "IssueCommentEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "IssueComment", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "IssueCommentEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "IssueComment", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "IssueCommentOrder", - "description": "Ways in which lists of issue comments can be ordered upon return.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field in which to order issue comments by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "IssueCommentOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The direction in which to order issue comments by the specified field.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "IssueCommentOrderField", - "description": "Properties by which issue comment connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "UPDATED_AT", - "description": "Order issue comments by update time", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "IssueConnection", - "description": "The connection type for Issue.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "IssueEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { "kind": "OBJECT", "name": "Issue", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "IssueContributionsByRepository", - "description": "This aggregates issues opened by a user within one repository.", - "fields": [ - { - "name": "contributions", - "description": "The issue contributions.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for contributions returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ContributionOrder", - "ofType": null - }, - "defaultValue": "{direction: DESC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CreatedIssueContributionConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository in which the issues were opened.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "IssueEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { "kind": "OBJECT", "name": "Issue", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "IssueFilters", - "description": "Ways in which to filter lists of issues.", - "fields": null, - "inputFields": [ - { - "name": "assignee", - "description": "List issues assigned to given name. Pass in `null` for issues with no assigned user, and `*` for issues assigned to any user.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "createdBy", - "description": "List issues created by given name.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "labels", - "description": "List issues where the list of label names exist on the issue.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "mentioned", - "description": "List issues where the given name is mentioned in the issue.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "milestone", - "description": "List issues by given milestone argument. If an string representation of an integer is passed, it should refer to a milestone by its number field. Pass in `null` for issues with no milestone, and `*` for issues that are assigned to any milestone.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "since", - "description": "List issues that have been updated at or after the given date.", - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "defaultValue": null - }, - { - "name": "states", - "description": "List issues filtered by the list of states given.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "IssueState", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "viewerSubscribed", - "description": "List issues subscribed to by viewer.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": "false" - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "UNION", - "name": "IssueOrPullRequest", - "description": "Used for return value of Repository.issueOrPullRequest.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Issue", "ofType": null }, - { "kind": "OBJECT", "name": "PullRequest", "ofType": null } - ] - }, - { - "kind": "INPUT_OBJECT", - "name": "IssueOrder", - "description": "Ways in which lists of issues can be ordered upon return.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field in which to order issues by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "IssueOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The direction in which to order issues by the specified field.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "IssueOrderField", - "description": "Properties by which issue connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "CREATED_AT", - "description": "Order issues by creation time", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT", - "description": "Order issues by update time", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "COMMENTS", - "description": "Order issues by comment count", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "IssueState", - "description": "The possible states of an issue.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "OPEN", - "description": "An issue that is still open", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CLOSED", - "description": "An issue that has been closed", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "IssueTemplate", - "description": "A repository issue template.", - "fields": [ - { - "name": "about", - "description": "The template purpose.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "body", - "description": "The suggested issue body.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The template name.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "title", - "description": "The suggested issue title.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "IssueTimelineConnection", - "description": "The connection type for IssueTimelineItem.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "IssueTimelineItemEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "UNION", - "name": "IssueTimelineItem", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "UNION", - "name": "IssueTimelineItem", - "description": "An item in an issue timeline", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "AssignedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "ClosedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "Commit", "ofType": null }, - { - "kind": "OBJECT", - "name": "CrossReferencedEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "DemilestonedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "IssueComment", "ofType": null }, - { "kind": "OBJECT", "name": "LabeledEvent", "ofType": null }, - { "kind": "OBJECT", "name": "LockedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "MilestonedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "ReferencedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "RenamedTitleEvent", "ofType": null }, - { "kind": "OBJECT", "name": "ReopenedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "SubscribedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "TransferredEvent", "ofType": null }, - { "kind": "OBJECT", "name": "UnassignedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "UnlabeledEvent", "ofType": null }, - { "kind": "OBJECT", "name": "UnlockedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "UnsubscribedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "UserBlockedEvent", "ofType": null } - ] - }, - { - "kind": "OBJECT", - "name": "IssueTimelineItemEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "UNION", - "name": "IssueTimelineItem", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "UNION", - "name": "IssueTimelineItems", - "description": "An item in an issue timeline", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "AddedToProjectEvent", "ofType": null }, - { "kind": "OBJECT", "name": "AssignedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "ClosedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "CommentDeletedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "ConnectedEvent", "ofType": null }, - { - "kind": "OBJECT", - "name": "ConvertedNoteToIssueEvent", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "CrossReferencedEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "DemilestonedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "DisconnectedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "IssueComment", "ofType": null }, - { "kind": "OBJECT", "name": "LabeledEvent", "ofType": null }, - { "kind": "OBJECT", "name": "LockedEvent", "ofType": null }, - { - "kind": "OBJECT", - "name": "MarkedAsDuplicateEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "MentionedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "MilestonedEvent", "ofType": null }, - { - "kind": "OBJECT", - "name": "MovedColumnsInProjectEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "PinnedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "ReferencedEvent", "ofType": null }, - { - "kind": "OBJECT", - "name": "RemovedFromProjectEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "RenamedTitleEvent", "ofType": null }, - { "kind": "OBJECT", "name": "ReopenedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "SubscribedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "TransferredEvent", "ofType": null }, - { "kind": "OBJECT", "name": "UnassignedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "UnlabeledEvent", "ofType": null }, - { "kind": "OBJECT", "name": "UnlockedEvent", "ofType": null }, - { - "kind": "OBJECT", - "name": "UnmarkedAsDuplicateEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "UnpinnedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "UnsubscribedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "UserBlockedEvent", "ofType": null } - ] - }, - { - "kind": "OBJECT", - "name": "IssueTimelineItemsConnection", - "description": "The connection type for IssueTimelineItems.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "IssueTimelineItemsEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "filteredCount", - "description": "Identifies the count of items after applying `before` and `after` filters.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "UNION", - "name": "IssueTimelineItems", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageCount", - "description": "Identifies the count of items after applying `before`/`after` filters and `first`/`last`/`skip` slicing.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the timeline was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "IssueTimelineItemsEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "UNION", - "name": "IssueTimelineItems", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "IssueTimelineItemsItemType", - "description": "The possible item types found in a timeline.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "ISSUE_COMMENT", - "description": "Represents a comment on an Issue.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CROSS_REFERENCED_EVENT", - "description": "Represents a mention made by one issue or pull request to another.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ADDED_TO_PROJECT_EVENT", - "description": "Represents a 'added_to_project' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ASSIGNED_EVENT", - "description": "Represents an 'assigned' event on any assignable object.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CLOSED_EVENT", - "description": "Represents a 'closed' event on any `Closable`.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "COMMENT_DELETED_EVENT", - "description": "Represents a 'comment_deleted' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CONNECTED_EVENT", - "description": "Represents a 'connected' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CONVERTED_NOTE_TO_ISSUE_EVENT", - "description": "Represents a 'converted_note_to_issue' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DEMILESTONED_EVENT", - "description": "Represents a 'demilestoned' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DISCONNECTED_EVENT", - "description": "Represents a 'disconnected' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "LABELED_EVENT", - "description": "Represents a 'labeled' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "LOCKED_EVENT", - "description": "Represents a 'locked' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "MARKED_AS_DUPLICATE_EVENT", - "description": "Represents a 'marked_as_duplicate' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "MENTIONED_EVENT", - "description": "Represents a 'mentioned' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "MILESTONED_EVENT", - "description": "Represents a 'milestoned' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "MOVED_COLUMNS_IN_PROJECT_EVENT", - "description": "Represents a 'moved_columns_in_project' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PINNED_EVENT", - "description": "Represents a 'pinned' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REFERENCED_EVENT", - "description": "Represents a 'referenced' event on a given `ReferencedSubject`.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REMOVED_FROM_PROJECT_EVENT", - "description": "Represents a 'removed_from_project' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "RENAMED_TITLE_EVENT", - "description": "Represents a 'renamed' event on a given issue or pull request", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REOPENED_EVENT", - "description": "Represents a 'reopened' event on any `Closable`.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SUBSCRIBED_EVENT", - "description": "Represents a 'subscribed' event on a given `Subscribable`.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "TRANSFERRED_EVENT", - "description": "Represents a 'transferred' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNASSIGNED_EVENT", - "description": "Represents an 'unassigned' event on any assignable object.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNLABELED_EVENT", - "description": "Represents an 'unlabeled' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNLOCKED_EVENT", - "description": "Represents an 'unlocked' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER_BLOCKED_EVENT", - "description": "Represents a 'user_blocked' event on a given user.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNMARKED_AS_DUPLICATE_EVENT", - "description": "Represents an 'unmarked_as_duplicate' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNPINNED_EVENT", - "description": "Represents an 'unpinned' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNSUBSCRIBED_EVENT", - "description": "Represents an 'unsubscribed' event on a given `Subscribable`.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "JoinedGitHubContribution", - "description": "Represents a user signing up for a GitHub account.", - "fields": [ - { - "name": "isRestricted", - "description": "Whether this contribution is associated with a record you do not have access to. For\nexample, your own 'first issue' contribution may have been made on a repository you can no\nlonger access.\n", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "occurredAt", - "description": "When this contribution was made.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this contribution.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this contribution.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user who made this contribution.\n", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Contribution", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Label", - "description": "A label for categorizing Issues or Milestones with a given Repository.", - "fields": [ - { - "name": "color", - "description": "Identifies the label color.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the label was created.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": "A brief description of this label.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isDefault", - "description": "Indicates whether or not this is a default label.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "issues", - "description": "A list of issues associated with this label.", - "args": [ - { - "name": "orderBy", - "description": "Ordering options for issues returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IssueOrder", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "labels", - "description": "A list of label names to filter the pull requests by.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "states", - "description": "A list of states to filter the issues by.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "IssueState", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "filterBy", - "description": "Filtering options for issues returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IssueFilters", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "IssueConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "Identifies the label name.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequests", - "description": "A list of pull requests associated with this label.", - "args": [ - { - "name": "states", - "description": "A list of states to filter the pull requests by.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "PullRequestState", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "labels", - "description": "A list of label names to filter the pull requests by.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "headRefName", - "description": "The head ref name to filter the pull requests by.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "baseRefName", - "description": "The base ref name to filter the pull requests by.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for pull requests returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IssueOrder", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequestConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with this label.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this label.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the label was last updated.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this label.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "LabelConnection", - "description": "The connection type for Label.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "LabelEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { "kind": "OBJECT", "name": "Label", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "LabelEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { "kind": "OBJECT", "name": "Label", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "LabelOrder", - "description": "Ways in which lists of labels can be ordered upon return.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field in which to order labels by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "LabelOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The direction in which to order labels by the specified field.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "LabelOrderField", - "description": "Properties by which label connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "NAME", - "description": "Order labels by name ", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT", - "description": "Order labels by creation time", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "Labelable", - "description": "An object that can have labels assigned to it.", - "fields": [ - { - "name": "labels", - "description": "A list of labels associated with the object.", - "args": [ - { - "name": "orderBy", - "description": "Ordering options for labels returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "LabelOrder", - "ofType": null - }, - "defaultValue": "{field: CREATED_AT, direction: ASC}" - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "LabelConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Issue", "ofType": null }, - { "kind": "OBJECT", "name": "PullRequest", "ofType": null } - ] - }, - { - "kind": "OBJECT", - "name": "LabeledEvent", - "description": "Represents a 'labeled' event on a given issue or pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "label", - "description": "Identifies the label associated with the 'labeled' event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "Label", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "labelable", - "description": "Identifies the `Labelable` associated with the event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INTERFACE", - "name": "Labelable", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Language", - "description": "Represents a given language found in repositories.", - "fields": [ - { - "name": "color", - "description": "The color defined for the current language.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The name of the current language.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "LanguageConnection", - "description": "A list of languages associated with the parent.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "LanguageEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Language", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalSize", - "description": "The total size in bytes of files written in that language.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "LanguageEdge", - "description": "Represents the language of a repository.", - "fields": [ - { - "name": "cursor", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Language", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "size", - "description": "The number of bytes of code written in the language.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "LanguageOrder", - "description": "Ordering options for language connections.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field to order languages by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "LanguageOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The ordering direction.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "LanguageOrderField", - "description": "Properties by which language connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "SIZE", - "description": "Order languages by the size of all files containing the language", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "License", - "description": "A repository's open source license", - "fields": [ - { - "name": "body", - "description": "The full text of the license", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "conditions", - "description": "The conditions set by the license", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "LicenseRule", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": "A human-readable description of the license", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "featured", - "description": "Whether the license should be featured", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hidden", - "description": "Whether the license should be displayed in license pickers", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "implementation", - "description": "Instructions on how to implement the license", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "key", - "description": "The lowercased SPDX ID of the license", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "limitations", - "description": "The limitations set by the license", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "LicenseRule", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The license full name specified by ", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nickname", - "description": "Customary short name if applicable (e.g, GPLv3)", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "permissions", - "description": "The permissions set by the license", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "LicenseRule", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pseudoLicense", - "description": "Whether the license is a pseudo-license placeholder (e.g., other, no-license)", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "spdxId", - "description": "Short identifier specified by ", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "URL to the license on ", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "LicenseRule", - "description": "Describes a License's conditions, permissions, and limitations", - "fields": [ - { - "name": "description", - "description": "A description of the rule", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "key", - "description": "The machine-readable rule key", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "label", - "description": "The human-readable rule label", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "LinkRepositoryToProjectInput", - "description": "Autogenerated input type of LinkRepositoryToProject", - "fields": null, - "inputFields": [ - { - "name": "projectId", - "description": "The ID of the Project to link to a Repository", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "repositoryId", - "description": "The ID of the Repository to link to a Project.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "LinkRepositoryToProjectPayload", - "description": "Autogenerated return type of LinkRepositoryToProject", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "project", - "description": "The linked Project.", - "args": [], - "type": { "kind": "OBJECT", "name": "Project", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The linked Repository.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "LockLockableInput", - "description": "Autogenerated input type of LockLockable", - "fields": null, - "inputFields": [ - { - "name": "lockableId", - "description": "ID of the item to be locked.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "lockReason", - "description": "A reason for why the item will be locked.", - "type": { "kind": "ENUM", "name": "LockReason", "ofType": null }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "LockLockablePayload", - "description": "Autogenerated return type of LockLockable", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lockedRecord", - "description": "The item that was locked.", - "args": [], - "type": { - "kind": "INTERFACE", - "name": "Lockable", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "LockReason", - "description": "The possible reasons that an issue or pull request was locked.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "OFF_TOPIC", - "description": "The issue or pull request was locked because the conversation was off-topic.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "TOO_HEATED", - "description": "The issue or pull request was locked because the conversation was too heated.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "RESOLVED", - "description": "The issue or pull request was locked because the conversation was resolved.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SPAM", - "description": "The issue or pull request was locked because the conversation was spam.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "Lockable", - "description": "An object that can be locked.", - "fields": [ - { - "name": "activeLockReason", - "description": "Reason that the conversation was locked.", - "args": [], - "type": { "kind": "ENUM", "name": "LockReason", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "locked", - "description": "`true` if the object is locked", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Issue", "ofType": null }, - { "kind": "OBJECT", "name": "PullRequest", "ofType": null } - ] - }, - { - "kind": "OBJECT", - "name": "LockedEvent", - "description": "Represents a 'locked' event on a given issue or pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lockReason", - "description": "Reason that the conversation was locked (optional).", - "args": [], - "type": { "kind": "ENUM", "name": "LockReason", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lockable", - "description": "Object that was locked.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INTERFACE", - "name": "Lockable", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Mannequin", - "description": "A placeholder user for attribution of imported data on GitHub.", - "fields": [ - { - "name": "avatarUrl", - "description": "A URL pointing to the GitHub App's public avatar.", - "args": [ - { - "name": "size", - "description": "The size of the resulting square image.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "email", - "description": "The mannequin's email on the source instance.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "login", - "description": "The username of the actor.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTML path to this resource.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The URL to this resource.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - { - "kind": "INTERFACE", - "name": "UniformResourceLocatable", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "MarkFileAsViewedInput", - "description": "Autogenerated input type of MarkFileAsViewed", - "fields": null, - "inputFields": [ - { - "name": "pullRequestId", - "description": "The Node ID of the pull request.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "path", - "description": "The path of the file to mark as viewed", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MarkFileAsViewedPayload", - "description": "Autogenerated return type of MarkFileAsViewed", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "The updated pull request.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "MarkPullRequestReadyForReviewInput", - "description": "Autogenerated input type of MarkPullRequestReadyForReview", - "fields": null, - "inputFields": [ - { - "name": "pullRequestId", - "description": "ID of the pull request to be marked as ready for review.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MarkPullRequestReadyForReviewPayload", - "description": "Autogenerated return type of MarkPullRequestReadyForReview", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "The pull request that is ready for review.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MarkedAsDuplicateEvent", - "description": "Represents a 'marked_as_duplicate' event on a given issue or pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "canonical", - "description": "The authoritative issue or pull request which has been duplicated by another.", - "args": [], - "type": { - "kind": "UNION", - "name": "IssueOrPullRequest", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "duplicate", - "description": "The issue or pull request which has been marked as a duplicate of another.", - "args": [], - "type": { - "kind": "UNION", - "name": "IssueOrPullRequest", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isCrossRepository", - "description": "Canonical and duplicate belong to different repositories.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MarketplaceCategory", - "description": "A public description of a Marketplace category.", - "fields": [ - { - "name": "description", - "description": "The category's description.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "howItWorks", - "description": "The technical description of how apps listed in this category work with GitHub.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The category's name.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "primaryListingCount", - "description": "How many Marketplace listings have this as their primary category.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this Marketplace category.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "secondaryListingCount", - "description": "How many Marketplace listings have this as their secondary category.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "slug", - "description": "The short name of the category used in its URL.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this Marketplace category.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MarketplaceListing", - "description": "A listing in the GitHub integration marketplace.", - "fields": [ - { - "name": "app", - "description": "The GitHub App this listing represents.", - "args": [], - "type": { "kind": "OBJECT", "name": "App", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "companyUrl", - "description": "URL to the listing owner's company site.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "configurationResourcePath", - "description": "The HTTP path for configuring access to the listing's integration or OAuth app", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "configurationUrl", - "description": "The HTTP URL for configuring access to the listing's integration or OAuth app", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "documentationUrl", - "description": "URL to the listing's documentation.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "extendedDescription", - "description": "The listing's detailed description.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "extendedDescriptionHTML", - "description": "The listing's detailed description rendered to HTML.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "HTML", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "fullDescription", - "description": "The listing's introductory description.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "fullDescriptionHTML", - "description": "The listing's introductory description rendered to HTML.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "HTML", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hasPublishedFreeTrialPlans", - "description": "Does this listing have any plans with a free trial?", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hasTermsOfService", - "description": "Does this listing have a terms of service link?", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hasVerifiedOwner", - "description": "Whether the creator of the app is a verified org", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "howItWorks", - "description": "A technical description of how this app works with GitHub.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "howItWorksHTML", - "description": "The listing's technical description rendered to HTML.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "HTML", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "installationUrl", - "description": "URL to install the product to the viewer's account or organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "installedForViewer", - "description": "Whether this listing's app has been installed for the current viewer", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isArchived", - "description": "Whether this listing has been removed from the Marketplace.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isDraft", - "description": "Whether this listing is still an editable draft that has not been submitted for review and is not publicly visible in the Marketplace.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isPaid", - "description": "Whether the product this listing represents is available as part of a paid plan.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isPublic", - "description": "Whether this listing has been approved for display in the Marketplace.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isRejected", - "description": "Whether this listing has been rejected by GitHub for display in the Marketplace.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isUnverified", - "description": "Whether this listing has been approved for unverified display in the Marketplace.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isUnverifiedPending", - "description": "Whether this draft listing has been submitted for review for approval to be unverified in the Marketplace.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isVerificationPendingFromDraft", - "description": "Whether this draft listing has been submitted for review from GitHub for approval to be verified in the Marketplace.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isVerificationPendingFromUnverified", - "description": "Whether this unverified listing has been submitted for review from GitHub for approval to be verified in the Marketplace.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isVerified", - "description": "Whether this listing has been approved for verified display in the Marketplace.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "logoBackgroundColor", - "description": "The hex color code, without the leading '#', for the logo background.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "logoUrl", - "description": "URL for the listing's logo image.", - "args": [ - { - "name": "size", - "description": "The size in pixels of the resulting square image.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": "400" - } - ], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The listing's full name.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "normalizedShortDescription", - "description": "The listing's very short description without a trailing period or ampersands.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pricingUrl", - "description": "URL to the listing's detailed pricing.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "primaryCategory", - "description": "The category that best describes the listing.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "MarketplaceCategory", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "privacyPolicyUrl", - "description": "URL to the listing's privacy policy, may return an empty string for listings that do not require a privacy policy URL.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for the Marketplace listing.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "screenshotUrls", - "description": "The URLs for the listing's screenshots.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "secondaryCategory", - "description": "An alternate category that describes the listing.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "MarketplaceCategory", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "shortDescription", - "description": "The listing's very short description.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "slug", - "description": "The short name of the listing used in its URL.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "statusUrl", - "description": "URL to the listing's status page.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "supportEmail", - "description": "An email address for support for this listing's app.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "supportUrl", - "description": "Either a URL or an email address for support for this listing's app, may return an empty string for listings that do not require a support URL.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "termsOfServiceUrl", - "description": "URL to the listing's terms of service.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for the Marketplace listing.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanAddPlans", - "description": "Can the current viewer add plans for this Marketplace listing.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanApprove", - "description": "Can the current viewer approve this Marketplace listing.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanDelist", - "description": "Can the current viewer delist this Marketplace listing.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanEdit", - "description": "Can the current viewer edit this Marketplace listing.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanEditCategories", - "description": "Can the current viewer edit the primary and secondary category of this\nMarketplace listing.\n", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanEditPlans", - "description": "Can the current viewer edit the plans for this Marketplace listing.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanRedraft", - "description": "Can the current viewer return this Marketplace listing to draft state\nso it becomes editable again.\n", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanReject", - "description": "Can the current viewer reject this Marketplace listing by returning it to\nan editable draft state or rejecting it entirely.\n", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanRequestApproval", - "description": "Can the current viewer request this listing be reviewed for display in\nthe Marketplace as verified.\n", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerHasPurchased", - "description": "Indicates whether the current user has an active subscription to this Marketplace listing.\n", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerHasPurchasedForAllOrganizations", - "description": "Indicates if the current user has purchased a subscription to this Marketplace listing\nfor all of the organizations the user owns.\n", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerIsListingAdmin", - "description": "Does the current viewer role allow them to administer this Marketplace listing.\n", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MarketplaceListingConnection", - "description": "Look up Marketplace Listings", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "MarketplaceListingEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "MarketplaceListing", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MarketplaceListingEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "MarketplaceListing", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "MemberStatusable", - "description": "Entities that have members who can set status messages.", - "fields": [ - { - "name": "memberStatuses", - "description": "Get the status messages members of this entity have set that are either public or visible only to the organization.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for user statuses returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserStatusOrder", - "ofType": null - }, - "defaultValue": "{field: UPDATED_AT, direction: DESC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserStatusConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Organization", "ofType": null }, - { "kind": "OBJECT", "name": "Team", "ofType": null } - ] - }, - { - "kind": "OBJECT", - "name": "MembersCanDeleteReposClearAuditEntry", - "description": "Audit log entry for a members_can_delete_repos.clear event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseResourcePath", - "description": "The HTTP path for this enterprise.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseSlug", - "description": "The slug of the enterprise.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseUrl", - "description": "The HTTP URL for this enterprise.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "EnterpriseAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MembersCanDeleteReposDisableAuditEntry", - "description": "Audit log entry for a members_can_delete_repos.disable event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseResourcePath", - "description": "The HTTP path for this enterprise.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseSlug", - "description": "The slug of the enterprise.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseUrl", - "description": "The HTTP URL for this enterprise.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "EnterpriseAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MembersCanDeleteReposEnableAuditEntry", - "description": "Audit log entry for a members_can_delete_repos.enable event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseResourcePath", - "description": "The HTTP path for this enterprise.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseSlug", - "description": "The slug of the enterprise.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseUrl", - "description": "The HTTP URL for this enterprise.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "EnterpriseAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MentionedEvent", - "description": "Represents a 'mentioned' event on a given issue or pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "MergeBranchInput", - "description": "Autogenerated input type of MergeBranch", - "fields": null, - "inputFields": [ - { - "name": "repositoryId", - "description": "The Node ID of the Repository containing the base branch that will be modified.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "base", - "description": "The name of the base branch that the provided head will be merged into.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "head", - "description": "The head to merge into the base branch. This can be a branch name or a commit GitObjectID.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "commitMessage", - "description": "Message to use for the merge commit. If omitted, a default will be used.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "authorEmail", - "description": "The email address to associate with this commit.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MergeBranchPayload", - "description": "Autogenerated return type of MergeBranch", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "mergeCommit", - "description": "The resulting merge Commit.", - "args": [], - "type": { "kind": "OBJECT", "name": "Commit", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "MergePullRequestInput", - "description": "Autogenerated input type of MergePullRequest", - "fields": null, - "inputFields": [ - { - "name": "pullRequestId", - "description": "ID of the pull request to be merged.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "commitHeadline", - "description": "Commit headline to use for the merge commit; if omitted, a default message will be used.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "commitBody", - "description": "Commit body to use for the merge commit; if omitted, a default message will be used", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "expectedHeadOid", - "description": "OID that the pull request head ref must match to allow merge; if omitted, no check is performed.", - "type": { - "kind": "SCALAR", - "name": "GitObjectID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "mergeMethod", - "description": "The merge method to use. If omitted, defaults to 'MERGE'", - "type": { - "kind": "ENUM", - "name": "PullRequestMergeMethod", - "ofType": null - }, - "defaultValue": "MERGE" - }, - { - "name": "authorEmail", - "description": "The email address to associate with this merge.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MergePullRequestPayload", - "description": "Autogenerated return type of MergePullRequest", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "The pull request that was merged.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "MergeableState", - "description": "Whether or not a PullRequest can be merged.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "MERGEABLE", - "description": "The pull request can be merged.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CONFLICTING", - "description": "The pull request cannot be merged due to merge conflicts.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNKNOWN", - "description": "The mergeability of the pull request is still being calculated.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MergedEvent", - "description": "Represents a 'merged' event on a given pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commit", - "description": "Identifies the commit associated with the `merge` event.", - "args": [], - "type": { "kind": "OBJECT", "name": "Commit", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "mergeRef", - "description": "Identifies the Ref associated with the `merge` event.", - "args": [], - "type": { "kind": "OBJECT", "name": "Ref", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "mergeRefName", - "description": "Identifies the name of the Ref associated with the `merge` event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "PullRequest referenced by event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this merged event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this merged event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { - "kind": "INTERFACE", - "name": "UniformResourceLocatable", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Milestone", - "description": "Represents a Milestone object on a given repository.", - "fields": [ - { - "name": "closed", - "description": "`true` if the object is closed (definition of closed may depend on type)", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "closedAt", - "description": "Identifies the date and time when the object was closed.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "creator", - "description": "Identifies the actor who created the milestone.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": "Identifies the description of the milestone.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dueOn", - "description": "Identifies the due date of the milestone.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "issues", - "description": "A list of issues associated with the milestone.", - "args": [ - { - "name": "orderBy", - "description": "Ordering options for issues returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IssueOrder", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "labels", - "description": "A list of label names to filter the pull requests by.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "states", - "description": "A list of states to filter the issues by.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "IssueState", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "filterBy", - "description": "Filtering options for issues returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IssueFilters", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "IssueConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "number", - "description": "Identifies the number of the milestone.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "progressPercentage", - "description": "Identifies the percentage complete for the milestone", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Float", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequests", - "description": "A list of pull requests associated with the milestone.", - "args": [ - { - "name": "states", - "description": "A list of states to filter the pull requests by.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "PullRequestState", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "labels", - "description": "A list of label names to filter the pull requests by.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "headRefName", - "description": "The head ref name to filter the pull requests by.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "baseRefName", - "description": "The base ref name to filter the pull requests by.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for pull requests returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IssueOrder", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequestConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with this milestone.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this milestone", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "state", - "description": "Identifies the state of the milestone.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "MilestoneState", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "title", - "description": "Identifies the title of the milestone.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this milestone", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "Closable", "ofType": null }, - { - "kind": "INTERFACE", - "name": "UniformResourceLocatable", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MilestoneConnection", - "description": "The connection type for Milestone.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "MilestoneEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Milestone", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MilestoneEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { "kind": "OBJECT", "name": "Milestone", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "UNION", - "name": "MilestoneItem", - "description": "Types that can be inside a Milestone.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Issue", "ofType": null }, - { "kind": "OBJECT", "name": "PullRequest", "ofType": null } - ] - }, - { - "kind": "INPUT_OBJECT", - "name": "MilestoneOrder", - "description": "Ordering options for milestone connections.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field to order milestones by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "MilestoneOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The ordering direction.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "MilestoneOrderField", - "description": "Properties by which milestone connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "DUE_DATE", - "description": "Order milestones by when they are due.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT", - "description": "Order milestones by when they were created.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT", - "description": "Order milestones by when they were last updated.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NUMBER", - "description": "Order milestones by their number.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "MilestoneState", - "description": "The possible states of a milestone.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "OPEN", - "description": "A milestone that is still open.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CLOSED", - "description": "A milestone that has been closed.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MilestonedEvent", - "description": "Represents a 'milestoned' event on a given issue or pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "milestoneTitle", - "description": "Identifies the milestone title associated with the 'milestoned' event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "subject", - "description": "Object referenced by event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "UNION", - "name": "MilestoneItem", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "Minimizable", - "description": "Entities that can be minimized.", - "fields": [ - { - "name": "isMinimized", - "description": "Returns whether or not a comment has been minimized.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "minimizedReason", - "description": "Returns why the comment was minimized.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanMinimize", - "description": "Check if the current viewer can minimize this object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "CommitComment", "ofType": null }, - { "kind": "OBJECT", "name": "GistComment", "ofType": null }, - { "kind": "OBJECT", "name": "IssueComment", "ofType": null }, - { - "kind": "OBJECT", - "name": "PullRequestReviewComment", - "ofType": null - } - ] - }, - { - "kind": "INPUT_OBJECT", - "name": "MinimizeCommentInput", - "description": "Autogenerated input type of MinimizeComment", - "fields": null, - "inputFields": [ - { - "name": "subjectId", - "description": "The Node ID of the subject to modify.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "classifier", - "description": "The classification of comment", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ReportedContentClassifiers", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MinimizeCommentPayload", - "description": "Autogenerated return type of MinimizeComment", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "minimizedComment", - "description": "The comment that was minimized.", - "args": [], - "type": { - "kind": "INTERFACE", - "name": "Minimizable", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "MoveProjectCardInput", - "description": "Autogenerated input type of MoveProjectCard", - "fields": null, - "inputFields": [ - { - "name": "cardId", - "description": "The id of the card to move.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "columnId", - "description": "The id of the column to move it into.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "afterCardId", - "description": "Place the new card after the card with this id. Pass null to place it at the top.", - "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MoveProjectCardPayload", - "description": "Autogenerated return type of MoveProjectCard", - "fields": [ - { - "name": "cardEdge", - "description": "The new edge of the moved card.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ProjectCardEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "MoveProjectColumnInput", - "description": "Autogenerated input type of MoveProjectColumn", - "fields": null, - "inputFields": [ - { - "name": "columnId", - "description": "The id of the column to move.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "afterColumnId", - "description": "Place the new column after the column with this id. Pass null to place it at the front.", - "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MoveProjectColumnPayload", - "description": "Autogenerated return type of MoveProjectColumn", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "columnEdge", - "description": "The new edge of the moved column.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ProjectColumnEdge", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "MovedColumnsInProjectEvent", - "description": "Represents a 'moved_columns_in_project' event on a given issue or pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Mutation", - "description": "The root query for implementing GraphQL mutations.", - "fields": [ - { - "name": "acceptEnterpriseAdministratorInvitation", - "description": "Accepts a pending invitation for a user to become an administrator of an enterprise.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "AcceptEnterpriseAdministratorInvitationInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "AcceptEnterpriseAdministratorInvitationPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "acceptTopicSuggestion", - "description": "Applies a suggested topic to the repository.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "AcceptTopicSuggestionInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "AcceptTopicSuggestionPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "addAssigneesToAssignable", - "description": "Adds assignees to an assignable object.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "AddAssigneesToAssignableInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "AddAssigneesToAssignablePayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "addComment", - "description": "Adds a comment to an Issue or Pull Request.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "AddCommentInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "AddCommentPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "addEnterpriseSupportEntitlement", - "description": "Adds a support entitlement to an enterprise member.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "AddEnterpriseSupportEntitlementInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "AddEnterpriseSupportEntitlementPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "addLabelsToLabelable", - "description": "Adds labels to a labelable object.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "AddLabelsToLabelableInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "AddLabelsToLabelablePayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "addProjectCard", - "description": "Adds a card to a ProjectColumn. Either `contentId` or `note` must be provided but **not** both.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "AddProjectCardInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "AddProjectCardPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "addProjectColumn", - "description": "Adds a column to a Project.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "AddProjectColumnInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "AddProjectColumnPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "addPullRequestReview", - "description": "Adds a review to a Pull Request.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "AddPullRequestReviewInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "AddPullRequestReviewPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "addPullRequestReviewComment", - "description": "Adds a comment to a review.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "AddPullRequestReviewCommentInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "AddPullRequestReviewCommentPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "addPullRequestReviewThread", - "description": "Adds a new thread to a pending Pull Request Review.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "AddPullRequestReviewThreadInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "AddPullRequestReviewThreadPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "addReaction", - "description": "Adds a reaction to a subject.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "AddReactionInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "AddReactionPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "addStar", - "description": "Adds a star to a Starrable.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "AddStarInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "AddStarPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "addVerifiableDomain", - "description": "Adds a verifiable domain to an owning account.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "AddVerifiableDomainInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "AddVerifiableDomainPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "archiveRepository", - "description": "Marks a repository as archived.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "ArchiveRepositoryInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "ArchiveRepositoryPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "cancelEnterpriseAdminInvitation", - "description": "Cancels a pending invitation for an administrator to join an enterprise.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CancelEnterpriseAdminInvitationInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CancelEnterpriseAdminInvitationPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "changeUserStatus", - "description": "Update your status on GitHub.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "ChangeUserStatusInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "ChangeUserStatusPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "clearLabelsFromLabelable", - "description": "Clears all labels from a labelable object.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "ClearLabelsFromLabelableInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "ClearLabelsFromLabelablePayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "cloneProject", - "description": "Creates a new project by cloning configuration from an existing project.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CloneProjectInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CloneProjectPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "cloneTemplateRepository", - "description": "Create a new repository with the same files and directory structure as a template repository.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CloneTemplateRepositoryInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CloneTemplateRepositoryPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "closeIssue", - "description": "Close an issue.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CloseIssueInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CloseIssuePayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "closePullRequest", - "description": "Close a pull request.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "ClosePullRequestInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "ClosePullRequestPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "convertProjectCardNoteToIssue", - "description": "Convert a project note card to one associated with a newly created issue.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "ConvertProjectCardNoteToIssueInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "ConvertProjectCardNoteToIssuePayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createBranchProtectionRule", - "description": "Create a new branch protection rule", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreateBranchProtectionRuleInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CreateBranchProtectionRulePayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createCheckRun", - "description": "Create a check run.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreateCheckRunInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CreateCheckRunPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createCheckSuite", - "description": "Create a check suite", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreateCheckSuiteInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CreateCheckSuitePayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createEnterpriseOrganization", - "description": "Creates an organization as part of an enterprise account.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreateEnterpriseOrganizationInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CreateEnterpriseOrganizationPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createIpAllowListEntry", - "description": "Creates a new IP allow list entry.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreateIpAllowListEntryInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CreateIpAllowListEntryPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createIssue", - "description": "Creates a new issue.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreateIssueInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CreateIssuePayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createProject", - "description": "Creates a new project.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreateProjectInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CreateProjectPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createPullRequest", - "description": "Create a new pull request", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreatePullRequestInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CreatePullRequestPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createRef", - "description": "Create a new Git Ref.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreateRefInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CreateRefPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createRepository", - "description": "Create a new repository.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreateRepositoryInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CreateRepositoryPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createTeamDiscussion", - "description": "Creates a new team discussion.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreateTeamDiscussionInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CreateTeamDiscussionPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createTeamDiscussionComment", - "description": "Creates a new team discussion comment.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CreateTeamDiscussionCommentInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CreateTeamDiscussionCommentPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "declineTopicSuggestion", - "description": "Rejects a suggested topic for the repository.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeclineTopicSuggestionInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeclineTopicSuggestionPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteBranchProtectionRule", - "description": "Delete a branch protection rule", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteBranchProtectionRuleInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteBranchProtectionRulePayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteDeployment", - "description": "Deletes a deployment.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteDeploymentInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteDeploymentPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteIpAllowListEntry", - "description": "Deletes an IP allow list entry.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteIpAllowListEntryInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteIpAllowListEntryPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteIssue", - "description": "Deletes an Issue object.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteIssueInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteIssuePayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteIssueComment", - "description": "Deletes an IssueComment object.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteIssueCommentInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteIssueCommentPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteProject", - "description": "Deletes a project.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteProjectInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteProjectPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteProjectCard", - "description": "Deletes a project card.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteProjectCardInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteProjectCardPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteProjectColumn", - "description": "Deletes a project column.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteProjectColumnInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteProjectColumnPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deletePullRequestReview", - "description": "Deletes a pull request review.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeletePullRequestReviewInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeletePullRequestReviewPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deletePullRequestReviewComment", - "description": "Deletes a pull request review comment.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeletePullRequestReviewCommentInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeletePullRequestReviewCommentPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteRef", - "description": "Delete a Git Ref.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteRefInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteRefPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteTeamDiscussion", - "description": "Deletes a team discussion.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteTeamDiscussionInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteTeamDiscussionPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteTeamDiscussionComment", - "description": "Deletes a team discussion comment.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteTeamDiscussionCommentInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteTeamDiscussionCommentPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteVerifiableDomain", - "description": "Deletes a verifiable domain.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DeleteVerifiableDomainInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DeleteVerifiableDomainPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dismissPullRequestReview", - "description": "Dismisses an approved or rejected pull request review.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "DismissPullRequestReviewInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "DismissPullRequestReviewPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "followUser", - "description": "Follow a user.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "FollowUserInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "FollowUserPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "inviteEnterpriseAdmin", - "description": "Invite someone to become an administrator of the enterprise.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "InviteEnterpriseAdminInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "InviteEnterpriseAdminPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "linkRepositoryToProject", - "description": "Creates a repository link for a project.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "LinkRepositoryToProjectInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "LinkRepositoryToProjectPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lockLockable", - "description": "Lock a lockable object", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "LockLockableInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "LockLockablePayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "markFileAsViewed", - "description": "Mark a pull request file as viewed", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "MarkFileAsViewedInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "MarkFileAsViewedPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "markPullRequestReadyForReview", - "description": "Marks a pull request ready for review.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "MarkPullRequestReadyForReviewInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "MarkPullRequestReadyForReviewPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "mergeBranch", - "description": "Merge a head into a branch.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "MergeBranchInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "MergeBranchPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "mergePullRequest", - "description": "Merge a pull request.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "MergePullRequestInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "MergePullRequestPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "minimizeComment", - "description": "Minimizes a comment on an Issue, Commit, Pull Request, or Gist", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "MinimizeCommentInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "MinimizeCommentPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "moveProjectCard", - "description": "Moves a project card to another place.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "MoveProjectCardInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "MoveProjectCardPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "moveProjectColumn", - "description": "Moves a project column to another place.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "MoveProjectColumnInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "MoveProjectColumnPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "regenerateEnterpriseIdentityProviderRecoveryCodes", - "description": "Regenerates the identity provider recovery codes for an enterprise", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "RegenerateEnterpriseIdentityProviderRecoveryCodesInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "RegenerateEnterpriseIdentityProviderRecoveryCodesPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "regenerateVerifiableDomainToken", - "description": "Regenerates a verifiable domain's verification token.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "RegenerateVerifiableDomainTokenInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "RegenerateVerifiableDomainTokenPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "removeAssigneesFromAssignable", - "description": "Removes assignees from an assignable object.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "RemoveAssigneesFromAssignableInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "RemoveAssigneesFromAssignablePayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "removeEnterpriseAdmin", - "description": "Removes an administrator from the enterprise.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "RemoveEnterpriseAdminInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "RemoveEnterpriseAdminPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "removeEnterpriseIdentityProvider", - "description": "Removes the identity provider from an enterprise", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "RemoveEnterpriseIdentityProviderInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "RemoveEnterpriseIdentityProviderPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "removeEnterpriseOrganization", - "description": "Removes an organization from the enterprise", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "RemoveEnterpriseOrganizationInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "RemoveEnterpriseOrganizationPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "removeEnterpriseSupportEntitlement", - "description": "Removes a support entitlement from an enterprise member.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "RemoveEnterpriseSupportEntitlementInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "RemoveEnterpriseSupportEntitlementPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "removeLabelsFromLabelable", - "description": "Removes labels from a Labelable object.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "RemoveLabelsFromLabelableInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "RemoveLabelsFromLabelablePayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "removeOutsideCollaborator", - "description": "Removes outside collaborator from all repositories in an organization.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "RemoveOutsideCollaboratorInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "RemoveOutsideCollaboratorPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "removeReaction", - "description": "Removes a reaction from a subject.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "RemoveReactionInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "RemoveReactionPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "removeStar", - "description": "Removes a star from a Starrable.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "RemoveStarInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "RemoveStarPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reopenIssue", - "description": "Reopen a issue.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "ReopenIssueInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "ReopenIssuePayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reopenPullRequest", - "description": "Reopen a pull request.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "ReopenPullRequestInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "ReopenPullRequestPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "requestReviews", - "description": "Set review requests on a pull request.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "RequestReviewsInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "RequestReviewsPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "rerequestCheckSuite", - "description": "Rerequests an existing check suite.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "RerequestCheckSuiteInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "RerequestCheckSuitePayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resolveReviewThread", - "description": "Marks a review thread as resolved.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "ResolveReviewThreadInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "ResolveReviewThreadPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "setEnterpriseIdentityProvider", - "description": "Creates or updates the identity provider for an enterprise.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "SetEnterpriseIdentityProviderInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "SetEnterpriseIdentityProviderPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "setOrganizationInteractionLimit", - "description": "Set an organization level interaction limit for an organization's public repositories.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "SetOrganizationInteractionLimitInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "SetOrganizationInteractionLimitPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "setRepositoryInteractionLimit", - "description": "Sets an interaction limit setting for a repository.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "SetRepositoryInteractionLimitInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "SetRepositoryInteractionLimitPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "setUserInteractionLimit", - "description": "Set a user level interaction limit for an user's public repositories.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "SetUserInteractionLimitInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "SetUserInteractionLimitPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "submitPullRequestReview", - "description": "Submits a pending pull request review.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "SubmitPullRequestReviewInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "SubmitPullRequestReviewPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "transferIssue", - "description": "Transfer an issue to a different repository", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "TransferIssueInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "TransferIssuePayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "unarchiveRepository", - "description": "Unarchives a repository.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UnarchiveRepositoryInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UnarchiveRepositoryPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "unfollowUser", - "description": "Unfollow a user.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UnfollowUserInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UnfollowUserPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "unlinkRepositoryFromProject", - "description": "Deletes a repository link from a project.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UnlinkRepositoryFromProjectInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UnlinkRepositoryFromProjectPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "unlockLockable", - "description": "Unlock a lockable object", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UnlockLockableInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UnlockLockablePayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "unmarkFileAsViewed", - "description": "Unmark a pull request file as viewed", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UnmarkFileAsViewedInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UnmarkFileAsViewedPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "unmarkIssueAsDuplicate", - "description": "Unmark an issue as a duplicate of another issue.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UnmarkIssueAsDuplicateInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UnmarkIssueAsDuplicatePayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "unminimizeComment", - "description": "Unminimizes a comment on an Issue, Commit, Pull Request, or Gist", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UnminimizeCommentInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UnminimizeCommentPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "unresolveReviewThread", - "description": "Marks a review thread as unresolved.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UnresolveReviewThreadInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UnresolveReviewThreadPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateBranchProtectionRule", - "description": "Create a new branch protection rule", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateBranchProtectionRuleInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateBranchProtectionRulePayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateCheckRun", - "description": "Update a check run", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateCheckRunInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateCheckRunPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateCheckSuitePreferences", - "description": "Modifies the settings of an existing check suite", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateCheckSuitePreferencesInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateCheckSuitePreferencesPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateEnterpriseAdministratorRole", - "description": "Updates the role of an enterprise administrator.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseAdministratorRoleInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateEnterpriseAdministratorRolePayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateEnterpriseAllowPrivateRepositoryForkingSetting", - "description": "Sets whether private repository forks are enabled for an enterprise.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseAllowPrivateRepositoryForkingSettingInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateEnterpriseAllowPrivateRepositoryForkingSettingPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateEnterpriseDefaultRepositoryPermissionSetting", - "description": "Sets the default repository permission for organizations in an enterprise.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseDefaultRepositoryPermissionSettingInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateEnterpriseDefaultRepositoryPermissionSettingPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateEnterpriseMembersCanChangeRepositoryVisibilitySetting", - "description": "Sets whether organization members with admin permissions on a repository can change repository visibility.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseMembersCanChangeRepositoryVisibilitySettingInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateEnterpriseMembersCanChangeRepositoryVisibilitySettingPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateEnterpriseMembersCanCreateRepositoriesSetting", - "description": "Sets the members can create repositories setting for an enterprise.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseMembersCanCreateRepositoriesSettingInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateEnterpriseMembersCanCreateRepositoriesSettingPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateEnterpriseMembersCanDeleteIssuesSetting", - "description": "Sets the members can delete issues setting for an enterprise.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseMembersCanDeleteIssuesSettingInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateEnterpriseMembersCanDeleteIssuesSettingPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateEnterpriseMembersCanDeleteRepositoriesSetting", - "description": "Sets the members can delete repositories setting for an enterprise.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseMembersCanDeleteRepositoriesSettingInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateEnterpriseMembersCanDeleteRepositoriesSettingPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateEnterpriseMembersCanInviteCollaboratorsSetting", - "description": "Sets whether members can invite collaborators are enabled for an enterprise.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseMembersCanInviteCollaboratorsSettingInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateEnterpriseMembersCanInviteCollaboratorsSettingPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateEnterpriseMembersCanMakePurchasesSetting", - "description": "Sets whether or not an organization admin can make purchases.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseMembersCanMakePurchasesSettingInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateEnterpriseMembersCanMakePurchasesSettingPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateEnterpriseMembersCanUpdateProtectedBranchesSetting", - "description": "Sets the members can update protected branches setting for an enterprise.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseMembersCanUpdateProtectedBranchesSettingInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateEnterpriseMembersCanUpdateProtectedBranchesSettingPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateEnterpriseMembersCanViewDependencyInsightsSetting", - "description": "Sets the members can view dependency insights for an enterprise.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseMembersCanViewDependencyInsightsSettingInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateEnterpriseMembersCanViewDependencyInsightsSettingPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateEnterpriseOrganizationProjectsSetting", - "description": "Sets whether organization projects are enabled for an enterprise.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseOrganizationProjectsSettingInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateEnterpriseOrganizationProjectsSettingPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateEnterpriseProfile", - "description": "Updates an enterprise's profile.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseProfileInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateEnterpriseProfilePayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateEnterpriseRepositoryProjectsSetting", - "description": "Sets whether repository projects are enabled for a enterprise.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseRepositoryProjectsSettingInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateEnterpriseRepositoryProjectsSettingPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateEnterpriseTeamDiscussionsSetting", - "description": "Sets whether team discussions are enabled for an enterprise.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseTeamDiscussionsSettingInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateEnterpriseTeamDiscussionsSettingPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateEnterpriseTwoFactorAuthenticationRequiredSetting", - "description": "Sets whether two factor authentication is required for all users in an enterprise.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseTwoFactorAuthenticationRequiredSettingInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateEnterpriseTwoFactorAuthenticationRequiredSettingPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateIpAllowListEnabledSetting", - "description": "Sets whether an IP allow list is enabled on an owner.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateIpAllowListEnabledSettingInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateIpAllowListEnabledSettingPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateIpAllowListEntry", - "description": "Updates an IP allow list entry.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateIpAllowListEntryInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateIpAllowListEntryPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateIssue", - "description": "Updates an Issue.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateIssueInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateIssuePayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateIssueComment", - "description": "Updates an IssueComment object.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateIssueCommentInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateIssueCommentPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateProject", - "description": "Updates an existing project.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateProjectInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateProjectPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateProjectCard", - "description": "Updates an existing project card.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateProjectCardInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateProjectCardPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateProjectColumn", - "description": "Updates an existing project column.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateProjectColumnInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateProjectColumnPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatePullRequest", - "description": "Update a pull request", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdatePullRequestInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdatePullRequestPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatePullRequestReview", - "description": "Updates the body of a pull request review.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdatePullRequestReviewInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdatePullRequestReviewPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatePullRequestReviewComment", - "description": "Updates a pull request review comment.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdatePullRequestReviewCommentInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdatePullRequestReviewCommentPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateRef", - "description": "Update a Git Ref.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateRefInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateRefPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateRepository", - "description": "Update information about a repository.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateRepositoryInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateRepositoryPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateSubscription", - "description": "Updates the state for subscribable subjects.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateSubscriptionInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateSubscriptionPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateTeamDiscussion", - "description": "Updates a team discussion.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateTeamDiscussionInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateTeamDiscussionPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateTeamDiscussionComment", - "description": "Updates a discussion comment.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateTeamDiscussionCommentInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateTeamDiscussionCommentPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updateTopics", - "description": "Replaces the repository's topics with the given topics.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "UpdateTopicsInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UpdateTopicsPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "verifyVerifiableDomain", - "description": "Verify that a verifiable domain has the expected DNS record.", - "args": [ - { - "name": "input", - "description": null, - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "VerifyVerifiableDomainInput", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "VerifyVerifiableDomainPayload", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "Node", - "description": "An object with an ID.", - "fields": [ - { - "name": "id", - "description": "ID of the object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "AddedToProjectEvent", "ofType": null }, - { "kind": "OBJECT", "name": "App", "ofType": null }, - { "kind": "OBJECT", "name": "AssignedEvent", "ofType": null }, - { - "kind": "OBJECT", - "name": "AutoMergeDisabledEvent", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "AutoMergeEnabledEvent", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "AutoRebaseEnabledEvent", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "AutoSquashEnabledEvent", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "AutomaticBaseChangeFailedEvent", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "AutomaticBaseChangeSucceededEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "BaseRefChangedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "BaseRefDeletedEvent", "ofType": null }, - { - "kind": "OBJECT", - "name": "BaseRefForcePushedEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "Blob", "ofType": null }, - { "kind": "OBJECT", "name": "Bot", "ofType": null }, - { - "kind": "OBJECT", - "name": "BranchProtectionRule", - "ofType": null - }, - { "kind": "OBJECT", "name": "CheckRun", "ofType": null }, - { "kind": "OBJECT", "name": "CheckSuite", "ofType": null }, - { "kind": "OBJECT", "name": "ClosedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "CodeOfConduct", "ofType": null }, - { "kind": "OBJECT", "name": "CommentDeletedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "Commit", "ofType": null }, - { "kind": "OBJECT", "name": "CommitComment", "ofType": null }, - { "kind": "OBJECT", "name": "CommitCommentThread", "ofType": null }, - { "kind": "OBJECT", "name": "ConnectedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "ConvertToDraftEvent", "ofType": null }, - { - "kind": "OBJECT", - "name": "ConvertedNoteToIssueEvent", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "CrossReferencedEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "DemilestonedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "DeployKey", "ofType": null }, - { "kind": "OBJECT", "name": "DeployedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "Deployment", "ofType": null }, - { - "kind": "OBJECT", - "name": "DeploymentEnvironmentChangedEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "DeploymentStatus", "ofType": null }, - { "kind": "OBJECT", "name": "DisconnectedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "Enterprise", "ofType": null }, - { - "kind": "OBJECT", - "name": "EnterpriseAdministratorInvitation", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseIdentityProvider", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseRepositoryInfo", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseServerInstallation", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseServerUserAccount", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseServerUserAccountEmail", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseServerUserAccountsUpload", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "EnterpriseUserAccount", - "ofType": null - }, - { "kind": "OBJECT", "name": "ExternalIdentity", "ofType": null }, - { "kind": "OBJECT", "name": "Gist", "ofType": null }, - { "kind": "OBJECT", "name": "GistComment", "ofType": null }, - { "kind": "OBJECT", "name": "HeadRefDeletedEvent", "ofType": null }, - { - "kind": "OBJECT", - "name": "HeadRefForcePushedEvent", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "HeadRefRestoredEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "IpAllowListEntry", "ofType": null }, - { "kind": "OBJECT", "name": "Issue", "ofType": null }, - { "kind": "OBJECT", "name": "IssueComment", "ofType": null }, - { "kind": "OBJECT", "name": "Label", "ofType": null }, - { "kind": "OBJECT", "name": "LabeledEvent", "ofType": null }, - { "kind": "OBJECT", "name": "Language", "ofType": null }, - { "kind": "OBJECT", "name": "License", "ofType": null }, - { "kind": "OBJECT", "name": "LockedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "Mannequin", "ofType": null }, - { - "kind": "OBJECT", - "name": "MarkedAsDuplicateEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "MarketplaceCategory", "ofType": null }, - { "kind": "OBJECT", "name": "MarketplaceListing", "ofType": null }, - { - "kind": "OBJECT", - "name": "MembersCanDeleteReposClearAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "MembersCanDeleteReposDisableAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "MembersCanDeleteReposEnableAuditEntry", - "ofType": null - }, - { "kind": "OBJECT", "name": "MentionedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "MergedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "Milestone", "ofType": null }, - { "kind": "OBJECT", "name": "MilestonedEvent", "ofType": null }, - { - "kind": "OBJECT", - "name": "MovedColumnsInProjectEvent", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OauthApplicationCreateAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgAddBillingManagerAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgAddMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgBlockUserAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgConfigDisableCollaboratorsOnlyAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgConfigEnableCollaboratorsOnlyAuditEntry", - "ofType": null - }, - { "kind": "OBJECT", "name": "OrgCreateAuditEntry", "ofType": null }, - { - "kind": "OBJECT", - "name": "OrgDisableOauthAppRestrictionsAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgDisableSamlAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgDisableTwoFactorRequirementAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgEnableOauthAppRestrictionsAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgEnableSamlAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgEnableTwoFactorRequirementAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgInviteMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgInviteToBusinessAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgOauthAppAccessApprovedAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgOauthAppAccessDeniedAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgOauthAppAccessRequestedAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgRemoveBillingManagerAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgRemoveMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgRemoveOutsideCollaboratorAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgRestoreMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgUnblockUserAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgUpdateDefaultRepositoryPermissionAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgUpdateMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgUpdateMemberRepositoryCreationPermissionAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgUpdateMemberRepositoryInvitationPermissionAuditEntry", - "ofType": null - }, - { "kind": "OBJECT", "name": "Organization", "ofType": null }, - { - "kind": "OBJECT", - "name": "OrganizationIdentityProvider", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrganizationInvitation", - "ofType": null - }, - { "kind": "OBJECT", "name": "Package", "ofType": null }, - { "kind": "OBJECT", "name": "PackageFile", "ofType": null }, - { "kind": "OBJECT", "name": "PackageTag", "ofType": null }, - { "kind": "OBJECT", "name": "PackageVersion", "ofType": null }, - { "kind": "OBJECT", "name": "PinnedEvent", "ofType": null }, - { - "kind": "OBJECT", - "name": "PrivateRepositoryForkingDisableAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "PrivateRepositoryForkingEnableAuditEntry", - "ofType": null - }, - { "kind": "OBJECT", "name": "Project", "ofType": null }, - { "kind": "OBJECT", "name": "ProjectCard", "ofType": null }, - { "kind": "OBJECT", "name": "ProjectColumn", "ofType": null }, - { "kind": "OBJECT", "name": "PublicKey", "ofType": null }, - { "kind": "OBJECT", "name": "PullRequest", "ofType": null }, - { "kind": "OBJECT", "name": "PullRequestCommit", "ofType": null }, - { - "kind": "OBJECT", - "name": "PullRequestCommitCommentThread", - "ofType": null - }, - { "kind": "OBJECT", "name": "PullRequestReview", "ofType": null }, - { - "kind": "OBJECT", - "name": "PullRequestReviewComment", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "PullRequestReviewThread", - "ofType": null - }, - { "kind": "OBJECT", "name": "Push", "ofType": null }, - { "kind": "OBJECT", "name": "PushAllowance", "ofType": null }, - { "kind": "OBJECT", "name": "Reaction", "ofType": null }, - { "kind": "OBJECT", "name": "ReadyForReviewEvent", "ofType": null }, - { "kind": "OBJECT", "name": "Ref", "ofType": null }, - { "kind": "OBJECT", "name": "ReferencedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "Release", "ofType": null }, - { "kind": "OBJECT", "name": "ReleaseAsset", "ofType": null }, - { - "kind": "OBJECT", - "name": "RemovedFromProjectEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "RenamedTitleEvent", "ofType": null }, - { "kind": "OBJECT", "name": "ReopenedEvent", "ofType": null }, - { - "kind": "OBJECT", - "name": "RepoAccessAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoAddMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoAddTopicAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoArchivedAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoChangeMergeSettingAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigDisableAnonymousGitAccessAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigDisableCollaboratorsOnlyAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigDisableContributorsOnlyAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigDisableSockpuppetDisallowedAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigEnableAnonymousGitAccessAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigEnableCollaboratorsOnlyAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigEnableContributorsOnlyAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigEnableSockpuppetDisallowedAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigLockAnonymousGitAccessAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigUnlockAnonymousGitAccessAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoCreateAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoDestroyAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoRemoveMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoRemoveTopicAuditEntry", - "ofType": null - }, - { "kind": "OBJECT", "name": "Repository", "ofType": null }, - { - "kind": "OBJECT", - "name": "RepositoryInvitation", - "ofType": null - }, - { "kind": "OBJECT", "name": "RepositoryTopic", "ofType": null }, - { - "kind": "OBJECT", - "name": "RepositoryVisibilityChangeDisableAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepositoryVisibilityChangeEnableAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepositoryVulnerabilityAlert", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "ReviewDismissalAllowance", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "ReviewDismissedEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "ReviewRequest", "ofType": null }, - { - "kind": "OBJECT", - "name": "ReviewRequestRemovedEvent", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "ReviewRequestedEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "SavedReply", "ofType": null }, - { "kind": "OBJECT", "name": "SecurityAdvisory", "ofType": null }, - { "kind": "OBJECT", "name": "SponsorsListing", "ofType": null }, - { "kind": "OBJECT", "name": "SponsorsTier", "ofType": null }, - { "kind": "OBJECT", "name": "Sponsorship", "ofType": null }, - { "kind": "OBJECT", "name": "Status", "ofType": null }, - { "kind": "OBJECT", "name": "StatusCheckRollup", "ofType": null }, - { "kind": "OBJECT", "name": "StatusContext", "ofType": null }, - { "kind": "OBJECT", "name": "SubscribedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "Tag", "ofType": null }, - { "kind": "OBJECT", "name": "Team", "ofType": null }, - { - "kind": "OBJECT", - "name": "TeamAddMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "TeamAddRepositoryAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "TeamChangeParentTeamAuditEntry", - "ofType": null - }, - { "kind": "OBJECT", "name": "TeamDiscussion", "ofType": null }, - { - "kind": "OBJECT", - "name": "TeamDiscussionComment", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "TeamRemoveMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "TeamRemoveRepositoryAuditEntry", - "ofType": null - }, - { "kind": "OBJECT", "name": "Topic", "ofType": null }, - { "kind": "OBJECT", "name": "TransferredEvent", "ofType": null }, - { "kind": "OBJECT", "name": "Tree", "ofType": null }, - { "kind": "OBJECT", "name": "UnassignedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "UnlabeledEvent", "ofType": null }, - { "kind": "OBJECT", "name": "UnlockedEvent", "ofType": null }, - { - "kind": "OBJECT", - "name": "UnmarkedAsDuplicateEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "UnpinnedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "UnsubscribedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "User", "ofType": null }, - { "kind": "OBJECT", "name": "UserBlockedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "UserContentEdit", "ofType": null }, - { "kind": "OBJECT", "name": "UserStatus", "ofType": null }, - { "kind": "OBJECT", "name": "VerifiableDomain", "ofType": null } - ] - }, - { - "kind": "INTERFACE", - "name": "OauthApplicationAuditEntryData", - "description": "Metadata for an audit entry with action oauth_application.*", - "fields": [ - { - "name": "oauthApplicationName", - "description": "The name of the OAuth Application.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "oauthApplicationResourcePath", - "description": "The HTTP path for the OAuth Application", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "oauthApplicationUrl", - "description": "The HTTP URL for the OAuth Application", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { - "kind": "OBJECT", - "name": "OauthApplicationCreateAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgOauthAppAccessApprovedAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgOauthAppAccessDeniedAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgOauthAppAccessRequestedAuditEntry", - "ofType": null - } - ] - }, - { - "kind": "OBJECT", - "name": "OauthApplicationCreateAuditEntry", - "description": "Audit log entry for a oauth_application.create event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "applicationUrl", - "description": "The application URL of the OAuth Application.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "callbackUrl", - "description": "The callback URL of the OAuth Application.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "oauthApplicationName", - "description": "The name of the OAuth Application.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "oauthApplicationResourcePath", - "description": "The HTTP path for the OAuth Application", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "oauthApplicationUrl", - "description": "The HTTP URL for the OAuth Application", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "rateLimit", - "description": "The rate limit of the OAuth Application.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "state", - "description": "The state of the OAuth Application.", - "args": [], - "type": { - "kind": "ENUM", - "name": "OauthApplicationCreateAuditEntryState", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OauthApplicationAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "OauthApplicationCreateAuditEntryState", - "description": "The state of an OAuth Application when it was created.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "ACTIVE", - "description": "The OAuth Application was active and allowed to have OAuth Accesses.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SUSPENDED", - "description": "The OAuth Application was suspended from generating OAuth Accesses due to abuse or security concerns.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PENDING_DELETION", - "description": "The OAuth Application was in the process of being deleted.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "OperationType", - "description": "The corresponding operation type for the action", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "ACCESS", - "description": "An existing resource was accessed", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "AUTHENTICATION", - "description": "A resource performed an authentication event", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATE", - "description": "A new resource was created", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "MODIFY", - "description": "An existing resource was modified", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REMOVE", - "description": "An existing resource was removed", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "RESTORE", - "description": "An existing resource was restored", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "TRANSFER", - "description": "An existing resource was transferred between multiple resources", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "OrderDirection", - "description": "Possible directions in which to order a list of items when provided an `orderBy` argument.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "ASC", - "description": "Specifies an ascending order for a given `orderBy` argument.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DESC", - "description": "Specifies a descending order for a given `orderBy` argument.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrgAddBillingManagerAuditEntry", - "description": "Audit log entry for a org.add_billing_manager", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "invitationEmail", - "description": "The email address used to invite a billing manager for the organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrgAddMemberAuditEntry", - "description": "Audit log entry for a org.add_member", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "permission", - "description": "The permission level of the member added to the organization.", - "args": [], - "type": { - "kind": "ENUM", - "name": "OrgAddMemberAuditEntryPermission", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "OrgAddMemberAuditEntryPermission", - "description": "The permissions available to members on an Organization.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "READ", - "description": "Can read and clone repositories.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ADMIN", - "description": "Can read, clone, push, and add collaborators to repositories.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrgBlockUserAuditEntry", - "description": "Audit log entry for a org.block_user", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "blockedUser", - "description": "The blocked user.", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "blockedUserName", - "description": "The username of the blocked user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "blockedUserResourcePath", - "description": "The HTTP path for the blocked user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "blockedUserUrl", - "description": "The HTTP URL for the blocked user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrgConfigDisableCollaboratorsOnlyAuditEntry", - "description": "Audit log entry for a org.config.disable_collaborators_only event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrgConfigEnableCollaboratorsOnlyAuditEntry", - "description": "Audit log entry for a org.config.enable_collaborators_only event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrgCreateAuditEntry", - "description": "Audit log entry for a org.create event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "billingPlan", - "description": "The billing plan for the Organization.", - "args": [], - "type": { - "kind": "ENUM", - "name": "OrgCreateAuditEntryBillingPlan", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "OrgCreateAuditEntryBillingPlan", - "description": "The billing plans available for organizations.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "FREE", - "description": "Free Plan", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "BUSINESS", - "description": "Team Plan", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "BUSINESS_PLUS", - "description": "Enterprise Cloud Plan", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNLIMITED", - "description": "Legacy Unlimited Plan", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "TIERED_PER_SEAT", - "description": "Tiered Per Seat Plan", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrgDisableOauthAppRestrictionsAuditEntry", - "description": "Audit log entry for a org.disable_oauth_app_restrictions event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrgDisableSamlAuditEntry", - "description": "Audit log entry for a org.disable_saml event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "digestMethodUrl", - "description": "The SAML provider's digest algorithm URL.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "issuerUrl", - "description": "The SAML provider's issuer URL.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "signatureMethodUrl", - "description": "The SAML provider's signature algorithm URL.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "singleSignOnUrl", - "description": "The SAML provider's single sign-on URL.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrgDisableTwoFactorRequirementAuditEntry", - "description": "Audit log entry for a org.disable_two_factor_requirement event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrgEnableOauthAppRestrictionsAuditEntry", - "description": "Audit log entry for a org.enable_oauth_app_restrictions event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrgEnableSamlAuditEntry", - "description": "Audit log entry for a org.enable_saml event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "digestMethodUrl", - "description": "The SAML provider's digest algorithm URL.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "issuerUrl", - "description": "The SAML provider's issuer URL.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "signatureMethodUrl", - "description": "The SAML provider's signature algorithm URL.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "singleSignOnUrl", - "description": "The SAML provider's single sign-on URL.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrgEnableTwoFactorRequirementAuditEntry", - "description": "Audit log entry for a org.enable_two_factor_requirement event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrgInviteMemberAuditEntry", - "description": "Audit log entry for a org.invite_member event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "email", - "description": "The email address of the organization invitation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationInvitation", - "description": "The organization invitation.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "OrganizationInvitation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrgInviteToBusinessAuditEntry", - "description": "Audit log entry for a org.invite_to_business event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseResourcePath", - "description": "The HTTP path for this enterprise.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseSlug", - "description": "The slug of the enterprise.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseUrl", - "description": "The HTTP URL for this enterprise.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "EnterpriseAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrgOauthAppAccessApprovedAuditEntry", - "description": "Audit log entry for a org.oauth_app_access_approved event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "oauthApplicationName", - "description": "The name of the OAuth Application.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "oauthApplicationResourcePath", - "description": "The HTTP path for the OAuth Application", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "oauthApplicationUrl", - "description": "The HTTP URL for the OAuth Application", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OauthApplicationAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrgOauthAppAccessDeniedAuditEntry", - "description": "Audit log entry for a org.oauth_app_access_denied event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "oauthApplicationName", - "description": "The name of the OAuth Application.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "oauthApplicationResourcePath", - "description": "The HTTP path for the OAuth Application", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "oauthApplicationUrl", - "description": "The HTTP URL for the OAuth Application", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OauthApplicationAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrgOauthAppAccessRequestedAuditEntry", - "description": "Audit log entry for a org.oauth_app_access_requested event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "oauthApplicationName", - "description": "The name of the OAuth Application.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "oauthApplicationResourcePath", - "description": "The HTTP path for the OAuth Application", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "oauthApplicationUrl", - "description": "The HTTP URL for the OAuth Application", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OauthApplicationAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrgRemoveBillingManagerAuditEntry", - "description": "Audit log entry for a org.remove_billing_manager event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reason", - "description": "The reason for the billing manager being removed.", - "args": [], - "type": { - "kind": "ENUM", - "name": "OrgRemoveBillingManagerAuditEntryReason", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "OrgRemoveBillingManagerAuditEntryReason", - "description": "The reason a billing manager was removed from an Organization.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "TWO_FACTOR_REQUIREMENT_NON_COMPLIANCE", - "description": "The organization required 2FA of its billing managers and this user did not have 2FA enabled.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SAML_EXTERNAL_IDENTITY_MISSING", - "description": "SAML external identity missing", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SAML_SSO_ENFORCEMENT_REQUIRES_EXTERNAL_IDENTITY", - "description": "SAML SSO enforcement requires an external identity", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrgRemoveMemberAuditEntry", - "description": "Audit log entry for a org.remove_member event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "membershipTypes", - "description": "The types of membership the member has with the organization.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrgRemoveMemberAuditEntryMembershipType", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reason", - "description": "The reason for the member being removed.", - "args": [], - "type": { - "kind": "ENUM", - "name": "OrgRemoveMemberAuditEntryReason", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "OrgRemoveMemberAuditEntryMembershipType", - "description": "The type of membership a user has with an Organization.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "DIRECT_MEMBER", - "description": "A direct member is a user that is a member of the Organization.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ADMIN", - "description": "Organization administrators have full access and can change several settings, including the names of repositories that belong to the Organization and Owners team membership. In addition, organization admins can delete the organization and all of its repositories.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "BILLING_MANAGER", - "description": "A billing manager is a user who manages the billing settings for the Organization, such as updating payment information.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNAFFILIATED", - "description": "An unaffiliated collaborator is a person who is not a member of the Organization and does not have access to any repositories in the Organization.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "OUTSIDE_COLLABORATOR", - "description": "An outside collaborator is a person who isn't explicitly a member of the Organization, but who has Read, Write, or Admin permissions to one or more repositories in the organization.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "OrgRemoveMemberAuditEntryReason", - "description": "The reason a member was removed from an Organization.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "TWO_FACTOR_REQUIREMENT_NON_COMPLIANCE", - "description": "The organization required 2FA of its billing managers and this user did not have 2FA enabled.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SAML_EXTERNAL_IDENTITY_MISSING", - "description": "SAML external identity missing", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SAML_SSO_ENFORCEMENT_REQUIRES_EXTERNAL_IDENTITY", - "description": "SAML SSO enforcement requires an external identity", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER_ACCOUNT_DELETED", - "description": "User account has been deleted", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "TWO_FACTOR_ACCOUNT_RECOVERY", - "description": "User was removed from organization during account recovery", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrgRemoveOutsideCollaboratorAuditEntry", - "description": "Audit log entry for a org.remove_outside_collaborator event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "membershipTypes", - "description": "The types of membership the outside collaborator has with the organization.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrgRemoveOutsideCollaboratorAuditEntryMembershipType", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reason", - "description": "The reason for the outside collaborator being removed from the Organization.", - "args": [], - "type": { - "kind": "ENUM", - "name": "OrgRemoveOutsideCollaboratorAuditEntryReason", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "OrgRemoveOutsideCollaboratorAuditEntryMembershipType", - "description": "The type of membership a user has with an Organization.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "OUTSIDE_COLLABORATOR", - "description": "An outside collaborator is a person who isn't explicitly a member of the Organization, but who has Read, Write, or Admin permissions to one or more repositories in the organization.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNAFFILIATED", - "description": "An unaffiliated collaborator is a person who is not a member of the Organization and does not have access to any repositories in the organization.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "BILLING_MANAGER", - "description": "A billing manager is a user who manages the billing settings for the Organization, such as updating payment information.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "OrgRemoveOutsideCollaboratorAuditEntryReason", - "description": "The reason an outside collaborator was removed from an Organization.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "TWO_FACTOR_REQUIREMENT_NON_COMPLIANCE", - "description": "The organization required 2FA of its billing managers and this user did not have 2FA enabled.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SAML_EXTERNAL_IDENTITY_MISSING", - "description": "SAML external identity missing", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrgRestoreMemberAuditEntry", - "description": "Audit log entry for a org.restore_member event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "restoredCustomEmailRoutingsCount", - "description": "The number of custom email routings for the restored member.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "restoredIssueAssignmentsCount", - "description": "The number of issue assignments for the restored member.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "restoredMemberships", - "description": "Restored organization membership objects.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "UNION", - "name": "OrgRestoreMemberAuditEntryMembership", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "restoredMembershipsCount", - "description": "The number of restored memberships.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "restoredRepositoriesCount", - "description": "The number of repositories of the restored member.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "restoredRepositoryStarsCount", - "description": "The number of starred repositories for the restored member.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "restoredRepositoryWatchesCount", - "description": "The number of watched repositories for the restored member.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "UNION", - "name": "OrgRestoreMemberAuditEntryMembership", - "description": "Types of memberships that can be restored for an Organization member.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { - "kind": "OBJECT", - "name": "OrgRestoreMemberMembershipOrganizationAuditEntryData", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgRestoreMemberMembershipRepositoryAuditEntryData", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgRestoreMemberMembershipTeamAuditEntryData", - "ofType": null - } - ] - }, - { - "kind": "OBJECT", - "name": "OrgRestoreMemberMembershipOrganizationAuditEntryData", - "description": "Metadata for an organization membership for org.restore_member actions", - "fields": [ - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrgRestoreMemberMembershipRepositoryAuditEntryData", - "description": "Metadata for a repository membership for org.restore_member actions", - "fields": [ - { - "name": "repository", - "description": "The repository associated with the action", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryName", - "description": "The name of the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryResourcePath", - "description": "The HTTP path for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryUrl", - "description": "The HTTP URL for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "RepositoryAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrgRestoreMemberMembershipTeamAuditEntryData", - "description": "Metadata for a team membership for org.restore_member actions", - "fields": [ - { - "name": "team", - "description": "The team associated with the action", - "args": [], - "type": { "kind": "OBJECT", "name": "Team", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamName", - "description": "The name of the team", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamResourcePath", - "description": "The HTTP path for this team", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamUrl", - "description": "The HTTP URL for this team", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { - "kind": "INTERFACE", - "name": "TeamAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrgUnblockUserAuditEntry", - "description": "Audit log entry for a org.unblock_user", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "blockedUser", - "description": "The user being unblocked by the organization.", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "blockedUserName", - "description": "The username of the blocked user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "blockedUserResourcePath", - "description": "The HTTP path for the blocked user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "blockedUserUrl", - "description": "The HTTP URL for the blocked user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrgUpdateDefaultRepositoryPermissionAuditEntry", - "description": "Audit log entry for a org.update_default_repository_permission", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "permission", - "description": "The new default repository permission level for the organization.", - "args": [], - "type": { - "kind": "ENUM", - "name": "OrgUpdateDefaultRepositoryPermissionAuditEntryPermission", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "permissionWas", - "description": "The former default repository permission level for the organization.", - "args": [], - "type": { - "kind": "ENUM", - "name": "OrgUpdateDefaultRepositoryPermissionAuditEntryPermission", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "OrgUpdateDefaultRepositoryPermissionAuditEntryPermission", - "description": "The default permission a repository can have in an Organization.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "READ", - "description": "Can read and clone repositories.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "WRITE", - "description": "Can read, clone and push to repositories.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ADMIN", - "description": "Can read, clone, push, and add collaborators to repositories.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NONE", - "description": "No default permission value.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrgUpdateMemberAuditEntry", - "description": "Audit log entry for a org.update_member event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "permission", - "description": "The new member permission level for the organization.", - "args": [], - "type": { - "kind": "ENUM", - "name": "OrgUpdateMemberAuditEntryPermission", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "permissionWas", - "description": "The former member permission level for the organization.", - "args": [], - "type": { - "kind": "ENUM", - "name": "OrgUpdateMemberAuditEntryPermission", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "OrgUpdateMemberAuditEntryPermission", - "description": "The permissions available to members on an Organization.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "READ", - "description": "Can read and clone repositories.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ADMIN", - "description": "Can read, clone, push, and add collaborators to repositories.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrgUpdateMemberRepositoryCreationPermissionAuditEntry", - "description": "Audit log entry for a org.update_member_repository_creation_permission event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "canCreateRepositories", - "description": "Can members create repositories in the organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "visibility", - "description": "The permission for visibility level of repositories for this organization.", - "args": [], - "type": { - "kind": "ENUM", - "name": "OrgUpdateMemberRepositoryCreationPermissionAuditEntryVisibility", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "OrgUpdateMemberRepositoryCreationPermissionAuditEntryVisibility", - "description": "The permissions available for repository creation on an Organization.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "ALL", - "description": "All organization members are restricted from creating any repositories.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PUBLIC", - "description": "All organization members are restricted from creating public repositories.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NONE", - "description": "All organization members are allowed to create any repositories.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIVATE", - "description": "All organization members are restricted from creating private repositories.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INTERNAL", - "description": "All organization members are restricted from creating internal repositories.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PUBLIC_INTERNAL", - "description": "All organization members are restricted from creating public or internal repositories.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIVATE_INTERNAL", - "description": "All organization members are restricted from creating private or internal repositories.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PUBLIC_PRIVATE", - "description": "All organization members are restricted from creating public or private repositories.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrgUpdateMemberRepositoryInvitationPermissionAuditEntry", - "description": "Audit log entry for a org.update_member_repository_invitation_permission event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "canInviteOutsideCollaboratorsToRepositories", - "description": "Can outside collaborators be invited to repositories in the organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Organization", - "description": "An account on GitHub, with one or more owners, that has repositories, members and teams.", - "fields": [ - { - "name": "anyPinnableItems", - "description": "Determine if this repository owner has any items that can be pinned to their profile.", - "args": [ - { - "name": "type", - "description": "Filter to only a particular kind of pinnable item.", - "type": { - "kind": "ENUM", - "name": "PinnableItemType", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "auditLog", - "description": "Audit log entries of the organization", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "query", - "description": "The query string to filter audit entries", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for the returned audit log entries.", - "type": { - "kind": "INPUT_OBJECT", - "name": "AuditLogOrder", - "ofType": null - }, - "defaultValue": "{field: CREATED_AT, direction: DESC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "OrganizationAuditEntryConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "avatarUrl", - "description": "A URL pointing to the organization's public avatar.", - "args": [ - { - "name": "size", - "description": "The size of the resulting square image.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": "The organization's public profile description.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "descriptionHTML", - "description": "The organization's public profile description rendered to HTML.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "domains", - "description": "A list of domains owned by the organization.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "isVerified", - "description": "Filter by if the domain is verified.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for verifiable domains returned.", - "type": { - "kind": "INPUT_OBJECT", - "name": "VerifiableDomainOrder", - "ofType": null - }, - "defaultValue": "{field: DOMAIN, direction: ASC}" - } - ], - "type": { - "kind": "OBJECT", - "name": "VerifiableDomainConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "email", - "description": "The organization's public email.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hasSponsorsListing", - "description": "True if this user/organization has a GitHub Sponsors listing.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "interactionAbility", - "description": "The interaction ability settings for this organization.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "RepositoryInteractionAbility", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ipAllowListEnabledSetting", - "description": "The setting value for whether the organization has an IP allow list enabled.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "IpAllowListEnabledSettingValue", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ipAllowListEntries", - "description": "The IP addresses that are allowed to access resources owned by the organization.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for IP allow list entries returned.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IpAllowListEntryOrder", - "ofType": null - }, - "defaultValue": "{field: ALLOW_LIST_VALUE, direction: ASC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "IpAllowListEntryConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isSponsoringViewer", - "description": "True if the viewer is sponsored by this user/organization.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isVerified", - "description": "Whether the organization has verified its profile email and website, always false on Enterprise.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "itemShowcase", - "description": "Showcases a selection of repositories and gists that the profile owner has either curated or that have been selected automatically based on popularity.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ProfileItemShowcase", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "location", - "description": "The organization's public profile location.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "login", - "description": "The organization's login name.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "memberStatuses", - "description": "Get the status messages members of this entity have set that are either public or visible only to the organization.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for user statuses returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserStatusOrder", - "ofType": null - }, - "defaultValue": "{field: UPDATED_AT, direction: DESC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserStatusConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "membersWithRole", - "description": "A list of users who are members of this organization.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "OrganizationMemberConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The organization's public profile name.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "newTeamResourcePath", - "description": "The HTTP path creating a new team", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "newTeamUrl", - "description": "The HTTP URL creating a new team", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationBillingEmail", - "description": "The billing email for the organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "packages", - "description": "A list of packages under the owner.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "names", - "description": "Find packages by their names.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "repositoryId", - "description": "Find packages in a repository by ID.", - "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, - "defaultValue": null - }, - { - "name": "packageType", - "description": "Filter registry package by type.", - "type": { - "kind": "ENUM", - "name": "PackageType", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering of the returned packages.", - "type": { - "kind": "INPUT_OBJECT", - "name": "PackageOrder", - "ofType": null - }, - "defaultValue": "{field: CREATED_AT, direction: DESC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PackageConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pendingMembers", - "description": "A list of users who have been invited to join this organization.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pinnableItems", - "description": "A list of repositories and gists this profile owner can pin to their profile.", - "args": [ - { - "name": "types", - "description": "Filter the types of pinnable items that are returned.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "PinnableItemType", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PinnableItemConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pinnedItems", - "description": "A list of repositories and gists this profile owner has pinned to their profile", - "args": [ - { - "name": "types", - "description": "Filter the types of pinned items that are returned.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "PinnableItemType", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PinnableItemConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pinnedItemsRemaining", - "description": "Returns how many more items this profile owner can pin to their profile.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "project", - "description": "Find project by number.", - "args": [ - { - "name": "number", - "description": "The project number to find.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { "kind": "OBJECT", "name": "Project", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "projects", - "description": "A list of projects under the owner.", - "args": [ - { - "name": "orderBy", - "description": "Ordering options for projects returned from the connection", - "type": { - "kind": "INPUT_OBJECT", - "name": "ProjectOrder", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "search", - "description": "Query to search projects by, currently only searching by name.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "states", - "description": "A list of states to filter the projects by.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ProjectState", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ProjectConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "projectsResourcePath", - "description": "The HTTP path listing organization's projects", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "projectsUrl", - "description": "The HTTP URL listing organization's projects", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositories", - "description": "A list of repositories that the user owns.", - "args": [ - { - "name": "privacy", - "description": "If non-null, filters repositories according to privacy", - "type": { - "kind": "ENUM", - "name": "RepositoryPrivacy", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for repositories returned from the connection", - "type": { - "kind": "INPUT_OBJECT", - "name": "RepositoryOrder", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "affiliations", - "description": "Array of viewer's affiliation options for repositories returned from the connection. For example, OWNER will include only repositories that the current viewer owns.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "RepositoryAffiliation", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "ownerAffiliations", - "description": "Array of owner's affiliation options for repositories returned from the connection. For example, OWNER will include only repositories that the organization or user being viewed owns.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "RepositoryAffiliation", - "ofType": null - } - }, - "defaultValue": "[OWNER, COLLABORATOR]" - }, - { - "name": "isLocked", - "description": "If non-null, filters repositories according to whether they have been locked", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "isFork", - "description": "If non-null, filters repositories according to whether they are forks of another repository", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "RepositoryConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "Find Repository.", - "args": [ - { - "name": "name", - "description": "Name of Repository to find.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "requiresTwoFactorAuthentication", - "description": "When true the organization requires all members, billing managers, and outside collaborators to enable two-factor authentication.", - "args": [], - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this organization.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "samlIdentityProvider", - "description": "The Organization's SAML identity providers", - "args": [], - "type": { - "kind": "OBJECT", - "name": "OrganizationIdentityProvider", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "sponsorsListing", - "description": "The GitHub Sponsors listing for this user or organization.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "SponsorsListing", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "sponsorshipsAsMaintainer", - "description": "This object's sponsorships as the maintainer.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "includePrivate", - "description": "Whether or not to include private sponsorships in the result set", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - }, - { - "name": "orderBy", - "description": "Ordering options for sponsorships returned from this connection. If left blank, the sponsorships will be ordered based on relevancy to the viewer.", - "type": { - "kind": "INPUT_OBJECT", - "name": "SponsorshipOrder", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SponsorshipConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "sponsorshipsAsSponsor", - "description": "This object's sponsorships as the sponsor.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for sponsorships returned from this connection. If left blank, the sponsorships will be ordered based on relevancy to the viewer.", - "type": { - "kind": "INPUT_OBJECT", - "name": "SponsorshipOrder", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SponsorshipConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "team", - "description": "Find an organization's team by its slug.", - "args": [ - { - "name": "slug", - "description": "The name or slug of the team to find.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { "kind": "OBJECT", "name": "Team", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teams", - "description": "A list of teams in this organization.", - "args": [ - { - "name": "privacy", - "description": "If non-null, filters teams according to privacy", - "type": { - "kind": "ENUM", - "name": "TeamPrivacy", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "role", - "description": "If non-null, filters teams according to whether the viewer is an admin or member on team", - "type": { - "kind": "ENUM", - "name": "TeamRole", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "query", - "description": "If non-null, filters teams with query on team name and team slug", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userLogins", - "description": "User logins to filter by", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for teams returned from the connection", - "type": { - "kind": "INPUT_OBJECT", - "name": "TeamOrder", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "ldapMapped", - "description": "If true, filters teams that are mapped to an LDAP Group (Enterprise only)", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "rootTeamsOnly", - "description": "If true, restrict to only root teams", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TeamConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamsResourcePath", - "description": "The HTTP path listing organization's teams", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamsUrl", - "description": "The HTTP URL listing organization's teams", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "twitterUsername", - "description": "The organization's Twitter username.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this organization.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanAdminister", - "description": "Organization is adminable by the viewer.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanChangePinnedItems", - "description": "Can the viewer pin repositories and gists to the profile?", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanCreateProjects", - "description": "Can the current viewer create new projects on this owner.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanCreateRepositories", - "description": "Viewer can create repositories on this organization", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanCreateTeams", - "description": "Viewer can create teams on this organization.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanSponsor", - "description": "Whether or not the viewer is able to sponsor this user/organization.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerIsAMember", - "description": "Viewer is an active member of this organization.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerIsSponsoring", - "description": "True if the viewer is sponsoring this user/organization.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "websiteUrl", - "description": "The organization's public profile URL.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - { "kind": "INTERFACE", "name": "PackageOwner", "ofType": null }, - { "kind": "INTERFACE", "name": "ProjectOwner", "ofType": null }, - { "kind": "INTERFACE", "name": "RepositoryOwner", "ofType": null }, - { - "kind": "INTERFACE", - "name": "UniformResourceLocatable", - "ofType": null - }, - { "kind": "INTERFACE", "name": "MemberStatusable", "ofType": null }, - { "kind": "INTERFACE", "name": "ProfileOwner", "ofType": null }, - { "kind": "INTERFACE", "name": "Sponsorable", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "UNION", - "name": "OrganizationAuditEntry", - "description": "An audit entry in an organization audit log.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { - "kind": "OBJECT", - "name": "MembersCanDeleteReposClearAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "MembersCanDeleteReposDisableAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "MembersCanDeleteReposEnableAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OauthApplicationCreateAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgAddBillingManagerAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgAddMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgBlockUserAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgConfigDisableCollaboratorsOnlyAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgConfigEnableCollaboratorsOnlyAuditEntry", - "ofType": null - }, - { "kind": "OBJECT", "name": "OrgCreateAuditEntry", "ofType": null }, - { - "kind": "OBJECT", - "name": "OrgDisableOauthAppRestrictionsAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgDisableSamlAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgDisableTwoFactorRequirementAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgEnableOauthAppRestrictionsAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgEnableSamlAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgEnableTwoFactorRequirementAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgInviteMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgInviteToBusinessAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgOauthAppAccessApprovedAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgOauthAppAccessDeniedAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgOauthAppAccessRequestedAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgRemoveBillingManagerAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgRemoveMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgRemoveOutsideCollaboratorAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgRestoreMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgUnblockUserAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgUpdateDefaultRepositoryPermissionAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgUpdateMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgUpdateMemberRepositoryCreationPermissionAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgUpdateMemberRepositoryInvitationPermissionAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "PrivateRepositoryForkingDisableAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "PrivateRepositoryForkingEnableAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoAccessAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoAddMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoAddTopicAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoArchivedAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoChangeMergeSettingAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigDisableAnonymousGitAccessAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigDisableCollaboratorsOnlyAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigDisableContributorsOnlyAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigDisableSockpuppetDisallowedAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigEnableAnonymousGitAccessAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigEnableCollaboratorsOnlyAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigEnableContributorsOnlyAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigEnableSockpuppetDisallowedAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigLockAnonymousGitAccessAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigUnlockAnonymousGitAccessAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoCreateAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoDestroyAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoRemoveMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoRemoveTopicAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepositoryVisibilityChangeDisableAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepositoryVisibilityChangeEnableAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "TeamAddMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "TeamAddRepositoryAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "TeamChangeParentTeamAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "TeamRemoveMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "TeamRemoveRepositoryAuditEntry", - "ofType": null - } - ] - }, - { - "kind": "OBJECT", - "name": "OrganizationAuditEntryConnection", - "description": "The connection type for OrganizationAuditEntry.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "OrganizationAuditEntryEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "UNION", - "name": "OrganizationAuditEntry", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "description": "Metadata for an audit entry with action org.*", - "fields": [ - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { - "kind": "OBJECT", - "name": "MembersCanDeleteReposClearAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "MembersCanDeleteReposDisableAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "MembersCanDeleteReposEnableAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OauthApplicationCreateAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgAddBillingManagerAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgAddMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgBlockUserAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgConfigDisableCollaboratorsOnlyAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgConfigEnableCollaboratorsOnlyAuditEntry", - "ofType": null - }, - { "kind": "OBJECT", "name": "OrgCreateAuditEntry", "ofType": null }, - { - "kind": "OBJECT", - "name": "OrgDisableOauthAppRestrictionsAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgDisableSamlAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgDisableTwoFactorRequirementAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgEnableOauthAppRestrictionsAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgEnableSamlAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgEnableTwoFactorRequirementAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgInviteMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgInviteToBusinessAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgOauthAppAccessApprovedAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgOauthAppAccessDeniedAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgOauthAppAccessRequestedAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgRemoveBillingManagerAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgRemoveMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgRemoveOutsideCollaboratorAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgRestoreMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgRestoreMemberMembershipOrganizationAuditEntryData", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgUnblockUserAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgUpdateDefaultRepositoryPermissionAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgUpdateMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgUpdateMemberRepositoryCreationPermissionAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "OrgUpdateMemberRepositoryInvitationPermissionAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "PrivateRepositoryForkingDisableAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "PrivateRepositoryForkingEnableAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoAccessAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoAddMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoAddTopicAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoArchivedAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoChangeMergeSettingAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigDisableAnonymousGitAccessAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigDisableCollaboratorsOnlyAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigDisableContributorsOnlyAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigDisableSockpuppetDisallowedAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigEnableAnonymousGitAccessAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigEnableCollaboratorsOnlyAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigEnableContributorsOnlyAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigEnableSockpuppetDisallowedAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigLockAnonymousGitAccessAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigUnlockAnonymousGitAccessAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoCreateAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoDestroyAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoRemoveMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoRemoveTopicAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepositoryVisibilityChangeDisableAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepositoryVisibilityChangeEnableAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "TeamAddMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "TeamAddRepositoryAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "TeamChangeParentTeamAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "TeamRemoveMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "TeamRemoveRepositoryAuditEntry", - "ofType": null - } - ] - }, - { - "kind": "OBJECT", - "name": "OrganizationAuditEntryEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "UNION", - "name": "OrganizationAuditEntry", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrganizationConnection", - "description": "The connection type for Organization.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "OrganizationEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrganizationEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrganizationIdentityProvider", - "description": "An Identity Provider configured to provision SAML and SCIM identities for Organizations", - "fields": [ - { - "name": "digestMethod", - "description": "The digest algorithm used to sign SAML requests for the Identity Provider.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "externalIdentities", - "description": "External Identities provisioned by this Identity Provider", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ExternalIdentityConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "idpCertificate", - "description": "The x509 certificate used by the Identity Provider to sign assertions and responses.", - "args": [], - "type": { - "kind": "SCALAR", - "name": "X509Certificate", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "issuer", - "description": "The Issuer Entity ID for the SAML Identity Provider", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "Organization this Identity Provider belongs to", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "signatureMethod", - "description": "The signature algorithm used to sign SAML requests for the Identity Provider.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ssoUrl", - "description": "The URL endpoint for the Identity Provider's SAML SSO.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrganizationInvitation", - "description": "An Invitation for a user to an organization.", - "fields": [ - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "email", - "description": "The email address of the user invited to the organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "invitationType", - "description": "The type of invitation that was sent (e.g. email, user).", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrganizationInvitationType", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "invitee", - "description": "The user who was invited to the organization.", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "inviter", - "description": "The user who created the invitation.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The organization the invite is for", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "role", - "description": "The user's pending role in the organization (e.g. member, owner).", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrganizationInvitationRole", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrganizationInvitationConnection", - "description": "The connection type for OrganizationInvitation.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "OrganizationInvitationEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "OrganizationInvitation", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrganizationInvitationEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "OrganizationInvitation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "OrganizationInvitationRole", - "description": "The possible organization invitation roles.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "DIRECT_MEMBER", - "description": "The user is invited to be a direct member of the organization.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ADMIN", - "description": "The user is invited to be an admin of the organization.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "BILLING_MANAGER", - "description": "The user is invited to be a billing manager of the organization.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REINSTATE", - "description": "The user's previous role will be reinstated.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "OrganizationInvitationType", - "description": "The possible organization invitation types.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "USER", - "description": "The invitation was to an existing user.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "EMAIL", - "description": "The invitation was to an email address.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrganizationMemberConnection", - "description": "The connection type for User.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "OrganizationMemberEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrganizationMemberEdge", - "description": "Represents a user within an organization.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hasTwoFactorEnabled", - "description": "Whether the organization member has two factor enabled or not. Returns null if information is not available to viewer.", - "args": [], - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "role", - "description": "The role this user has in the organization.", - "args": [], - "type": { - "kind": "ENUM", - "name": "OrganizationMemberRole", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "OrganizationMemberRole", - "description": "The possible roles within an organization for its members.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "MEMBER", - "description": "The user is a member of the organization.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ADMIN", - "description": "The user is an administrator of the organization.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "OrganizationMembersCanCreateRepositoriesSettingValue", - "description": "The possible values for the members can create repositories setting on an organization.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "ALL", - "description": "Members will be able to create public and private repositories.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIVATE", - "description": "Members will be able to create only private repositories.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DISABLED", - "description": "Members will not be able to create public or private repositories.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "OrganizationOrder", - "description": "Ordering options for organization connections.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field to order organizations by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrganizationOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The ordering direction.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "OrganizationOrderField", - "description": "Properties by which organization connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "CREATED_AT", - "description": "Order organizations by creation time", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "LOGIN", - "description": "Order organizations by login", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrganizationTeamsHovercardContext", - "description": "An organization teams hovercard context", - "fields": [ - { - "name": "message", - "description": "A string describing this context", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "octicon", - "description": "An octicon to accompany this context", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "relevantTeams", - "description": "Teams in this organization the user is a member of that are relevant", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TeamConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamsResourcePath", - "description": "The path for the full team list for this user", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamsUrl", - "description": "The URL for the full team list for this user", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalTeamCount", - "description": "The total number of teams the user is on in the organization", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "HovercardContext", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "OrganizationsHovercardContext", - "description": "An organization list hovercard context", - "fields": [ - { - "name": "message", - "description": "A string describing this context", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "octicon", - "description": "An octicon to accompany this context", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "relevantOrganizations", - "description": "Organizations this user is a member of that are relevant", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "OrganizationConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalOrganizationCount", - "description": "The total number of organizations this user is in", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "HovercardContext", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Package", - "description": "Information for an uploaded package.", - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "latestVersion", - "description": "Find the latest version for the package.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PackageVersion", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "Identifies the name of the package.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "packageType", - "description": "Identifies the type of the package.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "PackageType", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository this package belongs to.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "statistics", - "description": "Statistics about package activity.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PackageStatistics", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "version", - "description": "Find package version by version string.", - "args": [ - { - "name": "version", - "description": "The package version.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "PackageVersion", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "versions", - "description": "list of versions for this package", - "args": [ - { - "name": "orderBy", - "description": "Ordering of the returned packages.", - "type": { - "kind": "INPUT_OBJECT", - "name": "PackageVersionOrder", - "ofType": null - }, - "defaultValue": "{field: CREATED_AT, direction: DESC}" - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PackageVersionConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PackageConnection", - "description": "The connection type for Package.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PackageEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Package", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PackageEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { "kind": "OBJECT", "name": "Package", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PackageFile", - "description": "A file in a package version.", - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "md5", - "description": "MD5 hash of the file.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "Name of the file.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "packageVersion", - "description": "The package version this file belongs to.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PackageVersion", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "sha1", - "description": "SHA1 hash of the file.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "sha256", - "description": "SHA256 hash of the file.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "size", - "description": "Size of the file in bytes.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "URL to download the asset.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PackageFileConnection", - "description": "The connection type for PackageFile.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PackageFileEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PackageFile", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PackageFileEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PackageFile", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "PackageFileOrder", - "description": "Ways in which lists of package files can be ordered upon return.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field in which to order package files by.", - "type": { - "kind": "ENUM", - "name": "PackageFileOrderField", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The direction in which to order package files by the specified field.", - "type": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "PackageFileOrderField", - "description": "Properties by which package file connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "CREATED_AT", - "description": "Order package files by creation time", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "PackageOrder", - "description": "Ways in which lists of packages can be ordered upon return.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field in which to order packages by.", - "type": { - "kind": "ENUM", - "name": "PackageOrderField", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The direction in which to order packages by the specified field.", - "type": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "PackageOrderField", - "description": "Properties by which package connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "CREATED_AT", - "description": "Order packages by creation time", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "PackageOwner", - "description": "Represents an owner of a package.", - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "packages", - "description": "A list of packages under the owner.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "names", - "description": "Find packages by their names.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "repositoryId", - "description": "Find packages in a repository by ID.", - "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, - "defaultValue": null - }, - { - "name": "packageType", - "description": "Filter registry package by type.", - "type": { - "kind": "ENUM", - "name": "PackageType", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering of the returned packages.", - "type": { - "kind": "INPUT_OBJECT", - "name": "PackageOrder", - "ofType": null - }, - "defaultValue": "{field: CREATED_AT, direction: DESC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PackageConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Organization", "ofType": null }, - { "kind": "OBJECT", "name": "Repository", "ofType": null }, - { "kind": "OBJECT", "name": "User", "ofType": null } - ] - }, - { - "kind": "OBJECT", - "name": "PackageStatistics", - "description": "Represents a object that contains package activity statistics such as downloads.", - "fields": [ - { - "name": "downloadsTotalCount", - "description": "Number of times the package was downloaded since it was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PackageTag", - "description": "A version tag contains the mapping between a tag name and a version.", - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "Identifies the tag name of the version.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "version", - "description": "Version that the tag is associated with.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PackageVersion", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "PackageType", - "description": "The possible types of a package.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "NPM", - "description": "An npm package.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "RUBYGEMS", - "description": "A rubygems package.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "MAVEN", - "description": "A maven package.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DOCKER", - "description": "A docker image.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DEBIAN", - "description": "A debian package.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NUGET", - "description": "A nuget package.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PYPI", - "description": "A python package.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PackageVersion", - "description": "Information about a specific package version.", - "fields": [ - { - "name": "files", - "description": "List of files associated with this package version", - "args": [ - { - "name": "orderBy", - "description": "Ordering of the returned package files.", - "type": { - "kind": "INPUT_OBJECT", - "name": "PackageFileOrder", - "ofType": null - }, - "defaultValue": "{field: CREATED_AT, direction: ASC}" - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PackageFileConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "package", - "description": "The package associated with this version.", - "args": [], - "type": { "kind": "OBJECT", "name": "Package", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "platform", - "description": "The platform this version was built for.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "preRelease", - "description": "Whether or not this version is a pre-release.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "readme", - "description": "The README of this package version.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "release", - "description": "The release associated with this package version.", - "args": [], - "type": { "kind": "OBJECT", "name": "Release", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "statistics", - "description": "Statistics about package activity.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PackageVersionStatistics", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "summary", - "description": "The package version summary.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "version", - "description": "The version string.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PackageVersionConnection", - "description": "The connection type for PackageVersion.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PackageVersionEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PackageVersion", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PackageVersionEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PackageVersion", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "PackageVersionOrder", - "description": "Ways in which lists of package versions can be ordered upon return.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field in which to order package versions by.", - "type": { - "kind": "ENUM", - "name": "PackageVersionOrderField", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The direction in which to order package versions by the specified field.", - "type": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "PackageVersionOrderField", - "description": "Properties by which package version connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "CREATED_AT", - "description": "Order package versions by creation time", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PackageVersionStatistics", - "description": "Represents a object that contains package version activity statistics such as downloads.", - "fields": [ - { - "name": "downloadsTotalCount", - "description": "Number of times the package was downloaded since it was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PageInfo", - "description": "Information about pagination in a connection.", - "fields": [ - { - "name": "endCursor", - "description": "When paginating forwards, the cursor to continue.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hasNextPage", - "description": "When paginating forwards, are there more items?", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hasPreviousPage", - "description": "When paginating backwards, are there more items?", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "startCursor", - "description": "When paginating backwards, the cursor to continue.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "UNION", - "name": "PermissionGranter", - "description": "Types that can grant permissions on a repository to a user", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Organization", "ofType": null }, - { "kind": "OBJECT", "name": "Repository", "ofType": null }, - { "kind": "OBJECT", "name": "Team", "ofType": null } - ] - }, - { - "kind": "OBJECT", - "name": "PermissionSource", - "description": "A level of permission and source for a user's access to a repository.", - "fields": [ - { - "name": "organization", - "description": "The organization the repository belongs to.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "permission", - "description": "The level of access this source has granted to the user.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "DefaultRepositoryPermissionField", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "source", - "description": "The source of this permission.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "UNION", - "name": "PermissionGranter", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "UNION", - "name": "PinnableItem", - "description": "Types that can be pinned to a profile page.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Gist", "ofType": null }, - { "kind": "OBJECT", "name": "Repository", "ofType": null } - ] - }, - { - "kind": "OBJECT", - "name": "PinnableItemConnection", - "description": "The connection type for PinnableItem.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PinnableItemEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "UNION", - "name": "PinnableItem", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PinnableItemEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "UNION", - "name": "PinnableItem", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "PinnableItemType", - "description": "Represents items that can be pinned to a profile page or dashboard.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "REPOSITORY", - "description": "A repository.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "GIST", - "description": "A gist.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ISSUE", - "description": "An issue.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PROJECT", - "description": "A project.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PULL_REQUEST", - "description": "A pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER", - "description": "A user.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ORGANIZATION", - "description": "An organization.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "TEAM", - "description": "A team.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PinnedEvent", - "description": "Represents a 'pinned' event on a given issue or pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "issue", - "description": "Identifies the issue associated with the event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "Issue", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "PreciseDateTime", - "description": "An ISO-8601 encoded UTC date string with millisecond precision.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PrivateRepositoryForkingDisableAuditEntry", - "description": "Audit log entry for a private_repository_forking.disable event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseResourcePath", - "description": "The HTTP path for this enterprise.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseSlug", - "description": "The slug of the enterprise.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseUrl", - "description": "The HTTP URL for this enterprise.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with the action", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryName", - "description": "The name of the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryResourcePath", - "description": "The HTTP path for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryUrl", - "description": "The HTTP URL for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "EnterpriseAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "RepositoryAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PrivateRepositoryForkingEnableAuditEntry", - "description": "Audit log entry for a private_repository_forking.enable event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseResourcePath", - "description": "The HTTP path for this enterprise.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseSlug", - "description": "The slug of the enterprise.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseUrl", - "description": "The HTTP URL for this enterprise.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with the action", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryName", - "description": "The name of the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryResourcePath", - "description": "The HTTP path for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryUrl", - "description": "The HTTP URL for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "EnterpriseAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "RepositoryAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ProfileItemShowcase", - "description": "A curatable list of repositories relating to a repository owner, which defaults to showing the most popular repositories they own.", - "fields": [ - { - "name": "hasPinnedItems", - "description": "Whether or not the owner has pinned any repositories or gists.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "items", - "description": "The repositories and gists in the showcase. If the profile owner has any pinned items, those will be returned. Otherwise, the profile owner's popular repositories will be returned.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PinnableItemConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "ProfileOwner", - "description": "Represents any entity on GitHub that has a profile page.", - "fields": [ - { - "name": "anyPinnableItems", - "description": "Determine if this repository owner has any items that can be pinned to their profile.", - "args": [ - { - "name": "type", - "description": "Filter to only a particular kind of pinnable item.", - "type": { - "kind": "ENUM", - "name": "PinnableItemType", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "email", - "description": "The public profile email.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "itemShowcase", - "description": "Showcases a selection of repositories and gists that the profile owner has either curated or that have been selected automatically based on popularity.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ProfileItemShowcase", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "location", - "description": "The public profile location.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "login", - "description": "The username used to login.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The public profile name.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pinnableItems", - "description": "A list of repositories and gists this profile owner can pin to their profile.", - "args": [ - { - "name": "types", - "description": "Filter the types of pinnable items that are returned.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "PinnableItemType", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PinnableItemConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pinnedItems", - "description": "A list of repositories and gists this profile owner has pinned to their profile", - "args": [ - { - "name": "types", - "description": "Filter the types of pinned items that are returned.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "PinnableItemType", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PinnableItemConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pinnedItemsRemaining", - "description": "Returns how many more items this profile owner can pin to their profile.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanChangePinnedItems", - "description": "Can the viewer pin repositories and gists to the profile?", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "websiteUrl", - "description": "The public profile website URL.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Organization", "ofType": null }, - { "kind": "OBJECT", "name": "User", "ofType": null } - ] - }, - { - "kind": "OBJECT", - "name": "Project", - "description": "Projects manage issues, pull requests and notes within a project owner.", - "fields": [ - { - "name": "body", - "description": "The project's description body.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bodyHTML", - "description": "The projects description body rendered to HTML.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "HTML", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "closed", - "description": "`true` if the object is closed (definition of closed may depend on type)", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "closedAt", - "description": "Identifies the date and time when the object was closed.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "columns", - "description": "List of columns in the project", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ProjectColumnConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "creator", - "description": "The actor who originally created the project.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The project's name.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "number", - "description": "The project's number.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "owner", - "description": "The project's owner. Currently limited to repositories, organizations, and users.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INTERFACE", - "name": "ProjectOwner", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pendingCards", - "description": "List of pending cards in this project", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "archivedStates", - "description": "A list of archived states to filter the cards by", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ProjectCardArchivedState", - "ofType": null - } - }, - "defaultValue": "[ARCHIVED, NOT_ARCHIVED]" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ProjectCardConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "progress", - "description": "Project progress details.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ProjectProgress", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this project", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "state", - "description": "Whether the project is open or closed.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ProjectState", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this project", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanUpdate", - "description": "Check if the current viewer can update this object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "Closable", "ofType": null }, - { "kind": "INTERFACE", "name": "Updatable", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ProjectCard", - "description": "A card in a project.", - "fields": [ - { - "name": "column", - "description": "The project column this card is associated under. A card may only belong to one\nproject column at a time. The column field will be null if the card is created\nin a pending state and has yet to be associated with a column. Once cards are\nassociated with a column, they will not become pending in the future.\n", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ProjectColumn", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "content", - "description": "The card content item", - "args": [], - "type": { - "kind": "UNION", - "name": "ProjectCardItem", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "creator", - "description": "The actor who created this card", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isArchived", - "description": "Whether the card is archived", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "note", - "description": "The card note", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "project", - "description": "The project that contains this card.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Project", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this card", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "state", - "description": "The state of ProjectCard", - "args": [], - "type": { - "kind": "ENUM", - "name": "ProjectCardState", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this card", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "ProjectCardArchivedState", - "description": "The possible archived states of a project card.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "ARCHIVED", - "description": "A project card that is archived", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NOT_ARCHIVED", - "description": "A project card that is not archived", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ProjectCardConnection", - "description": "The connection type for ProjectCard.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ProjectCardEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ProjectCard", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ProjectCardEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ProjectCard", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "UNION", - "name": "ProjectCardItem", - "description": "Types that can be inside Project Cards.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Issue", "ofType": null }, - { "kind": "OBJECT", "name": "PullRequest", "ofType": null } - ] - }, - { - "kind": "ENUM", - "name": "ProjectCardState", - "description": "Various content states of a ProjectCard", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "CONTENT_ONLY", - "description": "The card has content only.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NOTE_ONLY", - "description": "The card has a note only.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REDACTED", - "description": "The card is redacted.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ProjectColumn", - "description": "A column inside a project.", - "fields": [ - { - "name": "cards", - "description": "List of cards in the column", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "archivedStates", - "description": "A list of archived states to filter the cards by", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ProjectCardArchivedState", - "ofType": null - } - }, - "defaultValue": "[ARCHIVED, NOT_ARCHIVED]" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ProjectCardConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The project column's name.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "project", - "description": "The project that contains this column.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Project", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "purpose", - "description": "The semantic purpose of the column", - "args": [], - "type": { - "kind": "ENUM", - "name": "ProjectColumnPurpose", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this project column", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this project column", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ProjectColumnConnection", - "description": "The connection type for ProjectColumn.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ProjectColumnEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ProjectColumn", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ProjectColumnEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ProjectColumn", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "ProjectColumnPurpose", - "description": "The semantic purpose of the column - todo, in progress, or done.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "TODO", - "description": "The column contains cards still to be worked on", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "IN_PROGRESS", - "description": "The column contains cards which are currently being worked on", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DONE", - "description": "The column contains cards which are complete", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ProjectConnection", - "description": "A list of projects associated with the owner.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ProjectEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Project", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ProjectEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { "kind": "OBJECT", "name": "Project", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "ProjectOrder", - "description": "Ways in which lists of projects can be ordered upon return.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field in which to order projects by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ProjectOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The direction in which to order projects by the specified field.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "ProjectOrderField", - "description": "Properties by which project connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "CREATED_AT", - "description": "Order projects by creation time", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT", - "description": "Order projects by update time", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NAME", - "description": "Order projects by name", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "ProjectOwner", - "description": "Represents an owner of a Project.", - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "project", - "description": "Find project by number.", - "args": [ - { - "name": "number", - "description": "The project number to find.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { "kind": "OBJECT", "name": "Project", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "projects", - "description": "A list of projects under the owner.", - "args": [ - { - "name": "orderBy", - "description": "Ordering options for projects returned from the connection", - "type": { - "kind": "INPUT_OBJECT", - "name": "ProjectOrder", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "search", - "description": "Query to search projects by, currently only searching by name.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "states", - "description": "A list of states to filter the projects by.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ProjectState", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ProjectConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "projectsResourcePath", - "description": "The HTTP path listing owners projects", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "projectsUrl", - "description": "The HTTP URL listing owners projects", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanCreateProjects", - "description": "Can the current viewer create new projects on this owner.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Organization", "ofType": null }, - { "kind": "OBJECT", "name": "Repository", "ofType": null }, - { "kind": "OBJECT", "name": "User", "ofType": null } - ] - }, - { - "kind": "OBJECT", - "name": "ProjectProgress", - "description": "Project progress stats.", - "fields": [ - { - "name": "doneCount", - "description": "The number of done cards.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "donePercentage", - "description": "The percentage of done cards.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Float", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enabled", - "description": "Whether progress tracking is enabled and cards with purpose exist for this project", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "inProgressCount", - "description": "The number of in-progress cards.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "inProgressPercentage", - "description": "The percentage of in-progress cards.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Float", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "todoCount", - "description": "The number of to do cards.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "todoPercentage", - "description": "The percentage of to do cards.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Float", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "ProjectState", - "description": "State of the project; either 'open' or 'closed'", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "OPEN", - "description": "The project is open.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CLOSED", - "description": "The project is closed.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "ProjectTemplate", - "description": "GitHub-provided templates for Projects", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "BASIC_KANBAN", - "description": "Create a board with columns for To do, In progress and Done.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "AUTOMATED_KANBAN_V2", - "description": "Create a board with v2 triggers to automatically move cards across To do, In progress and Done columns.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "AUTOMATED_REVIEWS_KANBAN", - "description": "Create a board with triggers to automatically move cards across columns with review automation.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "BUG_TRIAGE", - "description": "Create a board to triage and prioritize bugs with To do, priority, and Done columns.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PublicKey", - "description": "A user's public key.", - "fields": [ - { - "name": "accessedAt", - "description": "The last time this authorization was used to perform an action. Values will be null for keys not owned by the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the key was created. Keys created before March 5th, 2014 have inaccurate values. Values will be null for keys not owned by the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "fingerprint", - "description": "The fingerprint for this PublicKey.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isReadOnly", - "description": "Whether this PublicKey is read-only or not. Values will be null for keys not owned by the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "key", - "description": "The public key string.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the key was updated. Keys created before March 5th, 2014 may have inaccurate values. Values will be null for keys not owned by the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PublicKeyConnection", - "description": "The connection type for PublicKey.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PublicKeyEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PublicKey", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PublicKeyEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { "kind": "OBJECT", "name": "PublicKey", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PullRequest", - "description": "A repository pull request.", - "fields": [ - { - "name": "activeLockReason", - "description": "Reason that the conversation was locked.", - "args": [], - "type": { "kind": "ENUM", "name": "LockReason", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "additions", - "description": "The number of additions in this pull request.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "assignees", - "description": "A list of Users assigned to this object.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "author", - "description": "The actor who authored the comment.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "authorAssociation", - "description": "Author's association with the subject of the comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "CommentAuthorAssociation", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "baseRef", - "description": "Identifies the base Ref associated with the pull request.", - "args": [], - "type": { "kind": "OBJECT", "name": "Ref", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "baseRefName", - "description": "Identifies the name of the base Ref associated with the pull request, even if the ref has been deleted.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "baseRefOid", - "description": "Identifies the oid of the base ref associated with the pull request, even if the ref has been deleted.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "GitObjectID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "baseRepository", - "description": "The repository associated with this pull request's base Ref.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "body", - "description": "The body as Markdown.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bodyHTML", - "description": "The body rendered to HTML.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "HTML", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bodyText", - "description": "The body rendered to text.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "changedFiles", - "description": "The number of changed files in this pull request.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "checksResourcePath", - "description": "The HTTP path for the checks of this pull request.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "checksUrl", - "description": "The HTTP URL for the checks of this pull request.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "closed", - "description": "`true` if the pull request is closed", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "closedAt", - "description": "Identifies the date and time when the object was closed.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "comments", - "description": "A list of comments associated with the pull request.", - "args": [ - { - "name": "orderBy", - "description": "Ordering options for issue comments returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IssueCommentOrder", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "IssueCommentConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commits", - "description": "A list of commits present in this pull request's head branch not present in the base branch.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequestCommitConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdViaEmail", - "description": "Check if this comment was created via an email reply.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deletions", - "description": "The number of deletions in this pull request.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "editor", - "description": "The actor who edited this pull request's body.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "files", - "description": "Lists the files changed within this pull request.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "PullRequestChangedFileConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "headRef", - "description": "Identifies the head Ref associated with the pull request.", - "args": [], - "type": { "kind": "OBJECT", "name": "Ref", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "headRefName", - "description": "Identifies the name of the head Ref associated with the pull request, even if the ref has been deleted.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "headRefOid", - "description": "Identifies the oid of the head ref associated with the pull request, even if the ref has been deleted.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "GitObjectID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "headRepository", - "description": "The repository associated with this pull request's head Ref.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "headRepositoryOwner", - "description": "The owner of the repository associated with this pull request's head Ref.", - "args": [], - "type": { - "kind": "INTERFACE", - "name": "RepositoryOwner", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hovercard", - "description": "The hovercard information for this issue", - "args": [ - { - "name": "includeNotificationContexts", - "description": "Whether or not to include notification contexts", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "true" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Hovercard", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "includesCreatedEdit", - "description": "Check if this comment was edited and includes an edit with the creation data", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isCrossRepository", - "description": "The head and base repositories are different.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isDraft", - "description": "Identifies if the pull request is a draft.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isReadByViewer", - "description": "Is this pull request read by the viewer", - "args": [], - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "labels", - "description": "A list of labels associated with the object.", - "args": [ - { - "name": "orderBy", - "description": "Ordering options for labels returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "LabelOrder", - "ofType": null - }, - "defaultValue": "{field: CREATED_AT, direction: ASC}" - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "LabelConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lastEditedAt", - "description": "The moment the editor made the last edit", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "latestOpinionatedReviews", - "description": "A list of latest reviews per user associated with the pull request.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "writersOnly", - "description": "Only return reviews from user who have write access to the repository", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - } - ], - "type": { - "kind": "OBJECT", - "name": "PullRequestReviewConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "latestReviews", - "description": "A list of latest reviews per user associated with the pull request that are not also pending review.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "PullRequestReviewConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "locked", - "description": "`true` if the pull request is locked", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "maintainerCanModify", - "description": "Indicates whether maintainers can modify the pull request.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "mergeCommit", - "description": "The commit that was created when this pull request was merged.", - "args": [], - "type": { "kind": "OBJECT", "name": "Commit", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "mergeable", - "description": "Whether or not the pull request can be merged based on the existence of merge conflicts.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "MergeableState", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "merged", - "description": "Whether or not the pull request was merged.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "mergedAt", - "description": "The date and time that the pull request was merged.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "mergedBy", - "description": "The actor who merged the pull request.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "milestone", - "description": "Identifies the milestone associated with the pull request.", - "args": [], - "type": { "kind": "OBJECT", "name": "Milestone", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "number", - "description": "Identifies the pull request number.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "participants", - "description": "A list of Users that are participating in the Pull Request conversation.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "permalink", - "description": "The permalink to the pull request.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "potentialMergeCommit", - "description": "The commit that GitHub automatically generated to test if this pull request could be merged. This field will not return a value if the pull request is merged, or if the test merge commit is still being generated. See the `mergeable` field for more details on the mergeability of the pull request.", - "args": [], - "type": { "kind": "OBJECT", "name": "Commit", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "projectCards", - "description": "List of project cards associated with this pull request.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "archivedStates", - "description": "A list of archived states to filter the cards by", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ProjectCardArchivedState", - "ofType": null - } - }, - "defaultValue": "[ARCHIVED, NOT_ARCHIVED]" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ProjectCardConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "publishedAt", - "description": "Identifies when the comment was published at.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reactionGroups", - "description": "A list of reactions grouped by content left on the subject.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReactionGroup", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reactions", - "description": "A list of Reactions left on the Issue.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "content", - "description": "Allows filtering Reactions by emoji.", - "type": { - "kind": "ENUM", - "name": "ReactionContent", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Allows specifying the order in which reactions are returned.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ReactionOrder", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReactionConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with this node.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this pull request.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "revertResourcePath", - "description": "The HTTP path for reverting this pull request.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "revertUrl", - "description": "The HTTP URL for reverting this pull request.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reviewDecision", - "description": "The current status of this pull request with respect to code review.", - "args": [], - "type": { - "kind": "ENUM", - "name": "PullRequestReviewDecision", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reviewRequests", - "description": "A list of review requests associated with the pull request.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "ReviewRequestConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reviewThreads", - "description": "The list of all review threads for this pull request.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequestReviewThreadConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reviews", - "description": "A list of reviews associated with the pull request.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "states", - "description": "A list of states to filter the reviews.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "PullRequestReviewState", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "author", - "description": "Filter by author of the review.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "PullRequestReviewConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "state", - "description": "Identifies the state of the pull request.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "PullRequestState", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "suggestedReviewers", - "description": "A list of reviewer suggestions based on commit history and past review comments.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SuggestedReviewer", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "timeline", - "description": "A list of events, comments, commits, etc. associated with the pull request.", - "args": [ - { - "name": "since", - "description": "Allows filtering timeline events by a `since` timestamp.", - "type": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequestTimelineConnection", - "ofType": null - } - }, - "isDeprecated": true, - "deprecationReason": "`timeline` will be removed Use PullRequest.timelineItems instead. Removal on 2020-10-01 UTC." - }, - { - "name": "timelineItems", - "description": "A list of events, comments, commits, etc. associated with the pull request.", - "args": [ - { - "name": "since", - "description": "Filter timeline items by a `since` timestamp.", - "type": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "skip", - "description": "Skips the first _n_ elements in the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "itemTypes", - "description": "Filter timeline items by type.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "PullRequestTimelineItemsItemType", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequestTimelineItemsConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "title", - "description": "Identifies the pull request title.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this pull request.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userContentEdits", - "description": "A list of edits to this content.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserContentEditConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanApplySuggestion", - "description": "Whether or not the viewer can apply suggestion.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanDeleteHeadRef", - "description": "Check if the viewer can restore the deleted head ref.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanReact", - "description": "Can user react to this subject", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanSubscribe", - "description": "Check if the viewer is able to change their subscription status for the repository.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanUpdate", - "description": "Check if the current viewer can update this object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCannotUpdateReasons", - "description": "Reasons why the current viewer can not update this comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "CommentCannotUpdateReason", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerDidAuthor", - "description": "Did the viewer author this comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerMergeBodyText", - "description": "The merge body text for the viewer and method.", - "args": [ - { - "name": "mergeType", - "description": "The merge method for the message.", - "type": { - "kind": "ENUM", - "name": "PullRequestMergeMethod", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerMergeHeadlineText", - "description": "The merge headline text for the viewer and method.", - "args": [ - { - "name": "mergeType", - "description": "The merge method for the message.", - "type": { - "kind": "ENUM", - "name": "PullRequestMergeMethod", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerSubscription", - "description": "Identifies if the viewer is watching, not watching, or ignoring the subscribable entity.", - "args": [], - "type": { - "kind": "ENUM", - "name": "SubscriptionState", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "Assignable", "ofType": null }, - { "kind": "INTERFACE", "name": "Closable", "ofType": null }, - { "kind": "INTERFACE", "name": "Comment", "ofType": null }, - { "kind": "INTERFACE", "name": "Updatable", "ofType": null }, - { "kind": "INTERFACE", "name": "UpdatableComment", "ofType": null }, - { "kind": "INTERFACE", "name": "Labelable", "ofType": null }, - { "kind": "INTERFACE", "name": "Lockable", "ofType": null }, - { "kind": "INTERFACE", "name": "Reactable", "ofType": null }, - { "kind": "INTERFACE", "name": "RepositoryNode", "ofType": null }, - { "kind": "INTERFACE", "name": "Subscribable", "ofType": null }, - { - "kind": "INTERFACE", - "name": "UniformResourceLocatable", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PullRequestChangedFile", - "description": "A file changed in a pull request.", - "fields": [ - { - "name": "additions", - "description": "The number of additions to the file.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deletions", - "description": "The number of deletions to the file.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "path", - "description": "The path of the file.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerViewedState", - "description": "The state of the file for the viewer.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "FileViewedState", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PullRequestChangedFileConnection", - "description": "The connection type for PullRequestChangedFile.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequestChangedFileEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequestChangedFile", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PullRequestChangedFileEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequestChangedFile", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PullRequestCommit", - "description": "Represents a Git commit part of a pull request.", - "fields": [ - { - "name": "commit", - "description": "The Git commit object", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "Commit", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "The pull request this commit belongs to", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this pull request commit", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this pull request commit", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { - "kind": "INTERFACE", - "name": "UniformResourceLocatable", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PullRequestCommitCommentThread", - "description": "Represents a commit comment thread part of a pull request.", - "fields": [ - { - "name": "comments", - "description": "The comments that exist in this thread.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CommitCommentConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commit", - "description": "The commit the comments were made on.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "Commit", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "path", - "description": "The file the comments were made on.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "position", - "description": "The position in the diff for the commit that the comment was made on.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "The pull request this commit comment thread belongs to", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with this node.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "RepositoryNode", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PullRequestCommitConnection", - "description": "The connection type for PullRequestCommit.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequestCommitEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequestCommit", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PullRequestCommitEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequestCommit", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PullRequestConnection", - "description": "The connection type for PullRequest.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequestEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PullRequestContributionsByRepository", - "description": "This aggregates pull requests opened by a user within one repository.", - "fields": [ - { - "name": "contributions", - "description": "The pull request contributions.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for contributions returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ContributionOrder", - "ofType": null - }, - "defaultValue": "{direction: DESC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CreatedPullRequestContributionConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository in which the pull requests were opened.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PullRequestEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "PullRequestMergeMethod", - "description": "Represents available types of methods to use when merging a pull request.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "MERGE", - "description": "Add all commits from the head branch to the base branch with a merge commit.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SQUASH", - "description": "Combine all commits from the head branch into a single commit in the base branch.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REBASE", - "description": "Add all commits from the head branch onto the base branch individually.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "PullRequestOrder", - "description": "Ways in which lists of issues can be ordered upon return.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field in which to order pull requests by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "PullRequestOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The direction in which to order pull requests by the specified field.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "PullRequestOrderField", - "description": "Properties by which pull_requests connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "CREATED_AT", - "description": "Order pull_requests by creation time", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT", - "description": "Order pull_requests by update time", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PullRequestReview", - "description": "A review object for a given pull request.", - "fields": [ - { - "name": "author", - "description": "The actor who authored the comment.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "authorAssociation", - "description": "Author's association with the subject of the comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "CommentAuthorAssociation", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "authorCanPushToRepository", - "description": "Indicates whether the author of this review has push access to the repository.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "body", - "description": "Identifies the pull request review body.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bodyHTML", - "description": "The body rendered to HTML.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "HTML", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bodyText", - "description": "The body of this review rendered as plain text.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "comments", - "description": "A list of review comments for the current pull request review.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequestReviewCommentConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commit", - "description": "Identifies the commit associated with this pull request review.", - "args": [], - "type": { "kind": "OBJECT", "name": "Commit", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdViaEmail", - "description": "Check if this comment was created via an email reply.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "editor", - "description": "The actor who edited the comment.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "includesCreatedEdit", - "description": "Check if this comment was edited and includes an edit with the creation data", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lastEditedAt", - "description": "The moment the editor made the last edit", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "onBehalfOf", - "description": "A list of teams that this review was made on behalf of.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TeamConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "publishedAt", - "description": "Identifies when the comment was published at.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "Identifies the pull request associated with this pull request review.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reactionGroups", - "description": "A list of reactions grouped by content left on the subject.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReactionGroup", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reactions", - "description": "A list of Reactions left on the Issue.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "content", - "description": "Allows filtering Reactions by emoji.", - "type": { - "kind": "ENUM", - "name": "ReactionContent", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Allows specifying the order in which reactions are returned.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ReactionOrder", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReactionConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with this node.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path permalink for this PullRequestReview.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "state", - "description": "Identifies the current state of the pull request review.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "PullRequestReviewState", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "submittedAt", - "description": "Identifies when the Pull Request Review was submitted", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL permalink for this PullRequestReview.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userContentEdits", - "description": "A list of edits to this content.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserContentEditConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanDelete", - "description": "Check if the current viewer can delete this object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanReact", - "description": "Can user react to this subject", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanUpdate", - "description": "Check if the current viewer can update this object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCannotUpdateReasons", - "description": "Reasons why the current viewer can not update this comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "CommentCannotUpdateReason", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerDidAuthor", - "description": "Did the viewer author this comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "Comment", "ofType": null }, - { "kind": "INTERFACE", "name": "Deletable", "ofType": null }, - { "kind": "INTERFACE", "name": "Updatable", "ofType": null }, - { "kind": "INTERFACE", "name": "UpdatableComment", "ofType": null }, - { "kind": "INTERFACE", "name": "Reactable", "ofType": null }, - { "kind": "INTERFACE", "name": "RepositoryNode", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PullRequestReviewComment", - "description": "A review comment associated with a given repository pull request.", - "fields": [ - { - "name": "author", - "description": "The actor who authored the comment.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "authorAssociation", - "description": "Author's association with the subject of the comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "CommentAuthorAssociation", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "body", - "description": "The comment body of this review comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bodyHTML", - "description": "The body rendered to HTML.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "HTML", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bodyText", - "description": "The comment body of this review comment rendered as plain text.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commit", - "description": "Identifies the commit associated with the comment.", - "args": [], - "type": { "kind": "OBJECT", "name": "Commit", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies when the comment was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdViaEmail", - "description": "Check if this comment was created via an email reply.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "diffHunk", - "description": "The diff hunk to which the comment applies.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "draftedAt", - "description": "Identifies when the comment was created in a draft state.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "editor", - "description": "The actor who edited the comment.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "includesCreatedEdit", - "description": "Check if this comment was edited and includes an edit with the creation data", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isMinimized", - "description": "Returns whether or not a comment has been minimized.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lastEditedAt", - "description": "The moment the editor made the last edit", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "minimizedReason", - "description": "Returns why the comment was minimized.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "originalCommit", - "description": "Identifies the original commit associated with the comment.", - "args": [], - "type": { "kind": "OBJECT", "name": "Commit", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "originalPosition", - "description": "The original line index in the diff to which the comment applies.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "outdated", - "description": "Identifies when the comment body is outdated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "path", - "description": "The path to which the comment applies.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "position", - "description": "The line index in the diff to which the comment applies.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "publishedAt", - "description": "Identifies when the comment was published at.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "The pull request associated with this review comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequestReview", - "description": "The pull request review associated with this review comment.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequestReview", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reactionGroups", - "description": "A list of reactions grouped by content left on the subject.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReactionGroup", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reactions", - "description": "A list of Reactions left on the Issue.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "content", - "description": "Allows filtering Reactions by emoji.", - "type": { - "kind": "ENUM", - "name": "ReactionContent", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Allows specifying the order in which reactions are returned.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ReactionOrder", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReactionConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "replyTo", - "description": "The comment this is a reply to.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequestReviewComment", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with this node.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path permalink for this review comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "state", - "description": "Identifies the state of the comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "PullRequestReviewCommentState", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies when the comment was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL permalink for this review comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userContentEdits", - "description": "A list of edits to this content.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserContentEditConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanDelete", - "description": "Check if the current viewer can delete this object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanMinimize", - "description": "Check if the current viewer can minimize this object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanReact", - "description": "Can user react to this subject", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanUpdate", - "description": "Check if the current viewer can update this object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCannotUpdateReasons", - "description": "Reasons why the current viewer can not update this comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "CommentCannotUpdateReason", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerDidAuthor", - "description": "Did the viewer author this comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "Comment", "ofType": null }, - { "kind": "INTERFACE", "name": "Deletable", "ofType": null }, - { "kind": "INTERFACE", "name": "Minimizable", "ofType": null }, - { "kind": "INTERFACE", "name": "Updatable", "ofType": null }, - { "kind": "INTERFACE", "name": "UpdatableComment", "ofType": null }, - { "kind": "INTERFACE", "name": "Reactable", "ofType": null }, - { "kind": "INTERFACE", "name": "RepositoryNode", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PullRequestReviewCommentConnection", - "description": "The connection type for PullRequestReviewComment.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequestReviewCommentEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequestReviewComment", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PullRequestReviewCommentEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequestReviewComment", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "PullRequestReviewCommentState", - "description": "The possible states of a pull request review comment.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "PENDING", - "description": "A comment that is part of a pending review", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SUBMITTED", - "description": "A comment that is part of a submitted review", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PullRequestReviewConnection", - "description": "The connection type for PullRequestReview.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequestReviewEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequestReview", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PullRequestReviewContributionsByRepository", - "description": "This aggregates pull request reviews made by a user within one repository.", - "fields": [ - { - "name": "contributions", - "description": "The pull request review contributions.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for contributions returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ContributionOrder", - "ofType": null - }, - "defaultValue": "{direction: DESC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CreatedPullRequestReviewContributionConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository in which the pull request reviews were made.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "PullRequestReviewDecision", - "description": "The review status of a pull request.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "CHANGES_REQUESTED", - "description": "Changes have been requested on the pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "APPROVED", - "description": "The pull request has received an approving review.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REVIEW_REQUIRED", - "description": "A review is required before the pull request can be merged.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PullRequestReviewEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequestReview", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "PullRequestReviewEvent", - "description": "The possible events to perform on a pull request review.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "COMMENT", - "description": "Submit general feedback without explicit approval.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "APPROVE", - "description": "Submit feedback and approve merging these changes.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REQUEST_CHANGES", - "description": "Submit feedback that must be addressed before merging.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DISMISS", - "description": "Dismiss review so it now longer effects merging.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "PullRequestReviewState", - "description": "The possible states of a pull request review.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "PENDING", - "description": "A review that has not yet been submitted.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "COMMENTED", - "description": "An informational review.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "APPROVED", - "description": "A review allowing the pull request to merge.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CHANGES_REQUESTED", - "description": "A review blocking the pull request from merging.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DISMISSED", - "description": "A review that has been dismissed.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PullRequestReviewThread", - "description": "A threaded list of comments for a given pull request.", - "fields": [ - { - "name": "comments", - "description": "A list of pull request comments associated with the thread.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "skip", - "description": "Skips the first _n_ elements in the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequestReviewCommentConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "diffSide", - "description": "The side of the diff on which this thread was placed.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "ENUM", "name": "DiffSide", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isCollapsed", - "description": "Whether or not the thread has been collapsed (outdated or resolved)", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isOutdated", - "description": "Indicates whether this thread was outdated by newer changes.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isResolved", - "description": "Whether this thread has been resolved", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "line", - "description": "The line in the file to which this thread refers", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "originalLine", - "description": "The original line in the file to which this thread refers.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "originalStartLine", - "description": "The original start line in the file to which this thread refers (multi-line only).", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "path", - "description": "Identifies the file path of this thread.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "Identifies the pull request associated with this thread.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "Identifies the repository associated with this thread.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resolvedBy", - "description": "The user who resolved this thread", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "startDiffSide", - "description": "The side of the diff that the first line of the thread starts on (multi-line only)", - "args": [], - "type": { "kind": "ENUM", "name": "DiffSide", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "startLine", - "description": "The start line in the file to which this thread refers (multi-line only)", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanReply", - "description": "Indicates whether the current viewer can reply to this thread.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanResolve", - "description": "Whether or not the viewer can resolve this thread", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanUnresolve", - "description": "Whether or not the viewer can unresolve this thread", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PullRequestReviewThreadConnection", - "description": "Review comment threads for a pull request review.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequestReviewThreadEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequestReviewThread", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PullRequestReviewThreadEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequestReviewThread", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PullRequestRevisionMarker", - "description": "Represents the latest point in the pull request timeline for which the viewer has seen the pull request's commits.", - "fields": [ - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lastSeenCommit", - "description": "The last commit the viewer has seen.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "Commit", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "The pull request to which the marker belongs.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "PullRequestState", - "description": "The possible states of a pull request.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "OPEN", - "description": "A pull request that is still open.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CLOSED", - "description": "A pull request that has been closed without being merged.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "MERGED", - "description": "A pull request that has been closed by being merged.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PullRequestTimelineConnection", - "description": "The connection type for PullRequestTimelineItem.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequestTimelineItemEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "UNION", - "name": "PullRequestTimelineItem", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "UNION", - "name": "PullRequestTimelineItem", - "description": "An item in a pull request timeline", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "AssignedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "BaseRefDeletedEvent", "ofType": null }, - { - "kind": "OBJECT", - "name": "BaseRefForcePushedEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "ClosedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "Commit", "ofType": null }, - { "kind": "OBJECT", "name": "CommitCommentThread", "ofType": null }, - { - "kind": "OBJECT", - "name": "CrossReferencedEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "DemilestonedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "DeployedEvent", "ofType": null }, - { - "kind": "OBJECT", - "name": "DeploymentEnvironmentChangedEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "HeadRefDeletedEvent", "ofType": null }, - { - "kind": "OBJECT", - "name": "HeadRefForcePushedEvent", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "HeadRefRestoredEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "IssueComment", "ofType": null }, - { "kind": "OBJECT", "name": "LabeledEvent", "ofType": null }, - { "kind": "OBJECT", "name": "LockedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "MergedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "MilestonedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "PullRequestReview", "ofType": null }, - { - "kind": "OBJECT", - "name": "PullRequestReviewComment", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "PullRequestReviewThread", - "ofType": null - }, - { "kind": "OBJECT", "name": "ReferencedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "RenamedTitleEvent", "ofType": null }, - { "kind": "OBJECT", "name": "ReopenedEvent", "ofType": null }, - { - "kind": "OBJECT", - "name": "ReviewDismissedEvent", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "ReviewRequestRemovedEvent", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "ReviewRequestedEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "SubscribedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "UnassignedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "UnlabeledEvent", "ofType": null }, - { "kind": "OBJECT", "name": "UnlockedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "UnsubscribedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "UserBlockedEvent", "ofType": null } - ] - }, - { - "kind": "OBJECT", - "name": "PullRequestTimelineItemEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "UNION", - "name": "PullRequestTimelineItem", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "UNION", - "name": "PullRequestTimelineItems", - "description": "An item in a pull request timeline", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "AddedToProjectEvent", "ofType": null }, - { "kind": "OBJECT", "name": "AssignedEvent", "ofType": null }, - { - "kind": "OBJECT", - "name": "AutoMergeDisabledEvent", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "AutoMergeEnabledEvent", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "AutoRebaseEnabledEvent", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "AutoSquashEnabledEvent", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "AutomaticBaseChangeFailedEvent", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "AutomaticBaseChangeSucceededEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "BaseRefChangedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "BaseRefDeletedEvent", "ofType": null }, - { - "kind": "OBJECT", - "name": "BaseRefForcePushedEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "ClosedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "CommentDeletedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "ConnectedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "ConvertToDraftEvent", "ofType": null }, - { - "kind": "OBJECT", - "name": "ConvertedNoteToIssueEvent", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "CrossReferencedEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "DemilestonedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "DeployedEvent", "ofType": null }, - { - "kind": "OBJECT", - "name": "DeploymentEnvironmentChangedEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "DisconnectedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "HeadRefDeletedEvent", "ofType": null }, - { - "kind": "OBJECT", - "name": "HeadRefForcePushedEvent", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "HeadRefRestoredEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "IssueComment", "ofType": null }, - { "kind": "OBJECT", "name": "LabeledEvent", "ofType": null }, - { "kind": "OBJECT", "name": "LockedEvent", "ofType": null }, - { - "kind": "OBJECT", - "name": "MarkedAsDuplicateEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "MentionedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "MergedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "MilestonedEvent", "ofType": null }, - { - "kind": "OBJECT", - "name": "MovedColumnsInProjectEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "PinnedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "PullRequestCommit", "ofType": null }, - { - "kind": "OBJECT", - "name": "PullRequestCommitCommentThread", - "ofType": null - }, - { "kind": "OBJECT", "name": "PullRequestReview", "ofType": null }, - { - "kind": "OBJECT", - "name": "PullRequestReviewThread", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "PullRequestRevisionMarker", - "ofType": null - }, - { "kind": "OBJECT", "name": "ReadyForReviewEvent", "ofType": null }, - { "kind": "OBJECT", "name": "ReferencedEvent", "ofType": null }, - { - "kind": "OBJECT", - "name": "RemovedFromProjectEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "RenamedTitleEvent", "ofType": null }, - { "kind": "OBJECT", "name": "ReopenedEvent", "ofType": null }, - { - "kind": "OBJECT", - "name": "ReviewDismissedEvent", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "ReviewRequestRemovedEvent", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "ReviewRequestedEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "SubscribedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "TransferredEvent", "ofType": null }, - { "kind": "OBJECT", "name": "UnassignedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "UnlabeledEvent", "ofType": null }, - { "kind": "OBJECT", "name": "UnlockedEvent", "ofType": null }, - { - "kind": "OBJECT", - "name": "UnmarkedAsDuplicateEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "UnpinnedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "UnsubscribedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "UserBlockedEvent", "ofType": null } - ] - }, - { - "kind": "OBJECT", - "name": "PullRequestTimelineItemsConnection", - "description": "The connection type for PullRequestTimelineItems.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequestTimelineItemsEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "filteredCount", - "description": "Identifies the count of items after applying `before` and `after` filters.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "UNION", - "name": "PullRequestTimelineItems", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageCount", - "description": "Identifies the count of items after applying `before`/`after` filters and `first`/`last`/`skip` slicing.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the timeline was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PullRequestTimelineItemsEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "UNION", - "name": "PullRequestTimelineItems", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "PullRequestTimelineItemsItemType", - "description": "The possible item types found in a timeline.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "PULL_REQUEST_COMMIT", - "description": "Represents a Git commit part of a pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PULL_REQUEST_COMMIT_COMMENT_THREAD", - "description": "Represents a commit comment thread part of a pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PULL_REQUEST_REVIEW", - "description": "A review object for a given pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PULL_REQUEST_REVIEW_THREAD", - "description": "A threaded list of comments for a given pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PULL_REQUEST_REVISION_MARKER", - "description": "Represents the latest point in the pull request timeline for which the viewer has seen the pull request's commits.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "AUTOMATIC_BASE_CHANGE_FAILED_EVENT", - "description": "Represents a 'automatic_base_change_failed' event on a given pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "AUTOMATIC_BASE_CHANGE_SUCCEEDED_EVENT", - "description": "Represents a 'automatic_base_change_succeeded' event on a given pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "AUTO_MERGE_DISABLED_EVENT", - "description": "Represents a 'auto_merge_disabled' event on a given pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "AUTO_MERGE_ENABLED_EVENT", - "description": "Represents a 'auto_merge_enabled' event on a given pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "AUTO_REBASE_ENABLED_EVENT", - "description": "Represents a 'auto_rebase_enabled' event on a given pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "AUTO_SQUASH_ENABLED_EVENT", - "description": "Represents a 'auto_squash_enabled' event on a given pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "BASE_REF_CHANGED_EVENT", - "description": "Represents a 'base_ref_changed' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "BASE_REF_FORCE_PUSHED_EVENT", - "description": "Represents a 'base_ref_force_pushed' event on a given pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "BASE_REF_DELETED_EVENT", - "description": "Represents a 'base_ref_deleted' event on a given pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DEPLOYED_EVENT", - "description": "Represents a 'deployed' event on a given pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DEPLOYMENT_ENVIRONMENT_CHANGED_EVENT", - "description": "Represents a 'deployment_environment_changed' event on a given pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "HEAD_REF_DELETED_EVENT", - "description": "Represents a 'head_ref_deleted' event on a given pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "HEAD_REF_FORCE_PUSHED_EVENT", - "description": "Represents a 'head_ref_force_pushed' event on a given pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "HEAD_REF_RESTORED_EVENT", - "description": "Represents a 'head_ref_restored' event on a given pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "MERGED_EVENT", - "description": "Represents a 'merged' event on a given pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REVIEW_DISMISSED_EVENT", - "description": "Represents a 'review_dismissed' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REVIEW_REQUESTED_EVENT", - "description": "Represents an 'review_requested' event on a given pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REVIEW_REQUEST_REMOVED_EVENT", - "description": "Represents an 'review_request_removed' event on a given pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "READY_FOR_REVIEW_EVENT", - "description": "Represents a 'ready_for_review' event on a given pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CONVERT_TO_DRAFT_EVENT", - "description": "Represents a 'convert_to_draft' event on a given pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ISSUE_COMMENT", - "description": "Represents a comment on an Issue.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CROSS_REFERENCED_EVENT", - "description": "Represents a mention made by one issue or pull request to another.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ADDED_TO_PROJECT_EVENT", - "description": "Represents a 'added_to_project' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ASSIGNED_EVENT", - "description": "Represents an 'assigned' event on any assignable object.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CLOSED_EVENT", - "description": "Represents a 'closed' event on any `Closable`.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "COMMENT_DELETED_EVENT", - "description": "Represents a 'comment_deleted' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CONNECTED_EVENT", - "description": "Represents a 'connected' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CONVERTED_NOTE_TO_ISSUE_EVENT", - "description": "Represents a 'converted_note_to_issue' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DEMILESTONED_EVENT", - "description": "Represents a 'demilestoned' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DISCONNECTED_EVENT", - "description": "Represents a 'disconnected' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "LABELED_EVENT", - "description": "Represents a 'labeled' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "LOCKED_EVENT", - "description": "Represents a 'locked' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "MARKED_AS_DUPLICATE_EVENT", - "description": "Represents a 'marked_as_duplicate' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "MENTIONED_EVENT", - "description": "Represents a 'mentioned' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "MILESTONED_EVENT", - "description": "Represents a 'milestoned' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "MOVED_COLUMNS_IN_PROJECT_EVENT", - "description": "Represents a 'moved_columns_in_project' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PINNED_EVENT", - "description": "Represents a 'pinned' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REFERENCED_EVENT", - "description": "Represents a 'referenced' event on a given `ReferencedSubject`.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REMOVED_FROM_PROJECT_EVENT", - "description": "Represents a 'removed_from_project' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "RENAMED_TITLE_EVENT", - "description": "Represents a 'renamed' event on a given issue or pull request", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REOPENED_EVENT", - "description": "Represents a 'reopened' event on any `Closable`.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SUBSCRIBED_EVENT", - "description": "Represents a 'subscribed' event on a given `Subscribable`.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "TRANSFERRED_EVENT", - "description": "Represents a 'transferred' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNASSIGNED_EVENT", - "description": "Represents an 'unassigned' event on any assignable object.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNLABELED_EVENT", - "description": "Represents an 'unlabeled' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNLOCKED_EVENT", - "description": "Represents an 'unlocked' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER_BLOCKED_EVENT", - "description": "Represents a 'user_blocked' event on a given user.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNMARKED_AS_DUPLICATE_EVENT", - "description": "Represents an 'unmarked_as_duplicate' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNPINNED_EVENT", - "description": "Represents an 'unpinned' event on a given issue or pull request.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNSUBSCRIBED_EVENT", - "description": "Represents an 'unsubscribed' event on a given `Subscribable`.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "PullRequestUpdateState", - "description": "The possible target states when updating a pull request.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "OPEN", - "description": "A pull request that is still open.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CLOSED", - "description": "A pull request that has been closed without being merged.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Push", - "description": "A Git push.", - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nextSha", - "description": "The SHA after the push", - "args": [], - "type": { - "kind": "SCALAR", - "name": "GitObjectID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "permalink", - "description": "The permalink for this push.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "previousSha", - "description": "The SHA before the push", - "args": [], - "type": { - "kind": "SCALAR", - "name": "GitObjectID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pusher", - "description": "The user who pushed", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository that was pushed to", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PushAllowance", - "description": "A team, user or app who has the ability to push to a protected branch.", - "fields": [ - { - "name": "actor", - "description": "The actor that can push.", - "args": [], - "type": { - "kind": "UNION", - "name": "PushAllowanceActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "branchProtectionRule", - "description": "Identifies the branch protection rule associated with the allowed user or team.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "BranchProtectionRule", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "UNION", - "name": "PushAllowanceActor", - "description": "Types that can be an actor.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "App", "ofType": null }, - { "kind": "OBJECT", "name": "Team", "ofType": null }, - { "kind": "OBJECT", "name": "User", "ofType": null } - ] - }, - { - "kind": "OBJECT", - "name": "PushAllowanceConnection", - "description": "The connection type for PushAllowance.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PushAllowanceEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PushAllowance", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "PushAllowanceEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PushAllowance", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Query", - "description": "The query root of GitHub's GraphQL interface.", - "fields": [ - { - "name": "codeOfConduct", - "description": "Look up a code of conduct by its key", - "args": [ - { - "name": "key", - "description": "The code of conduct's key", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "CodeOfConduct", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "codesOfConduct", - "description": "Look up a code of conduct by its key", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CodeOfConduct", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterprise", - "description": "Look up an enterprise by URL slug.", - "args": [ - { - "name": "slug", - "description": "The enterprise URL slug.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "invitationToken", - "description": "The enterprise invitation token.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "Enterprise", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseAdministratorInvitation", - "description": "Look up a pending enterprise administrator invitation by invitee, enterprise and role.", - "args": [ - { - "name": "userLogin", - "description": "The login of the user invited to join the business.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "enterpriseSlug", - "description": "The slug of the enterprise the user was invited to join.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "role", - "description": "The role for the business member invitation.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseAdministratorRole", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "EnterpriseAdministratorInvitation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseAdministratorInvitationByToken", - "description": "Look up a pending enterprise administrator invitation by invitation token.", - "args": [ - { - "name": "invitationToken", - "description": "The invitation token sent with the invitation email.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "EnterpriseAdministratorInvitation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "license", - "description": "Look up an open source license by its key", - "args": [ - { - "name": "key", - "description": "The license's downcased SPDX ID", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { "kind": "OBJECT", "name": "License", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "licenses", - "description": "Return a list of known open source licenses", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "License", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "marketplaceCategories", - "description": "Get alphabetically sorted list of Marketplace categories", - "args": [ - { - "name": "includeCategories", - "description": "Return only the specified categories.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "excludeEmpty", - "description": "Exclude categories with no listings.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "excludeSubcategories", - "description": "Returns top level categories only, excluding any subcategories.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "MarketplaceCategory", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "marketplaceCategory", - "description": "Look up a Marketplace category by its slug.", - "args": [ - { - "name": "slug", - "description": "The URL slug of the category.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "useTopicAliases", - "description": "Also check topic aliases for the category slug", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "MarketplaceCategory", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "marketplaceListing", - "description": "Look up a single Marketplace listing", - "args": [ - { - "name": "slug", - "description": "Select the listing that matches this slug. It's the short name of the listing used in its URL.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "MarketplaceListing", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "marketplaceListings", - "description": "Look up Marketplace listings", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "categorySlug", - "description": "Select only listings with the given category.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "useTopicAliases", - "description": "Also check topic aliases for the category slug", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "viewerCanAdmin", - "description": "Select listings to which user has admin access. If omitted, listings visible to the\nviewer are returned.\n", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "adminId", - "description": "Select listings that can be administered by the specified user.", - "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, - "defaultValue": null - }, - { - "name": "organizationId", - "description": "Select listings for products owned by the specified organization.", - "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, - "defaultValue": null - }, - { - "name": "allStates", - "description": "Select listings visible to the viewer even if they are not approved. If omitted or\nfalse, only approved listings will be returned.\n", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "slugs", - "description": "Select the listings with these slugs, if they are visible to the viewer.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "primaryCategoryOnly", - "description": "Select only listings where the primary category matches the given category slug.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - }, - { - "name": "withFreeTrialsOnly", - "description": "Select only listings that offer a free trial.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "MarketplaceListingConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "meta", - "description": "Return information about the GitHub instance", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GitHubMetadata", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "Fetches an object given its ID.", - "args": [ - { - "name": "id", - "description": "ID of the object.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - } - ], - "type": { "kind": "INTERFACE", "name": "Node", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "Lookup nodes by a list of IDs.", - "args": [ - { - "name": "ids", - "description": "The list of node IDs.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - } - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "INTERFACE", - "name": "Node", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "Lookup a organization by login.", - "args": [ - { - "name": "login", - "description": "The organization's login.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "rateLimit", - "description": "The client's rate limit information.", - "args": [ - { - "name": "dryRun", - "description": "If true, calculate the cost for the query without evaluating it", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - } - ], - "type": { "kind": "OBJECT", "name": "RateLimit", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "relay", - "description": "Hack to workaround https://github.com/facebook/relay/issues/112 re-exposing the root query object", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "Query", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "Lookup a given repository by the owner and repository name.", - "args": [ - { - "name": "owner", - "description": "The login field of a user or organization", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "name", - "description": "The name of the repository", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryOwner", - "description": "Lookup a repository owner (ie. either a User or an Organization) by login.", - "args": [ - { - "name": "login", - "description": "The username to lookup the owner by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "INTERFACE", - "name": "RepositoryOwner", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resource", - "description": "Lookup resource by a URL.", - "args": [ - { - "name": "url", - "description": "The URL.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "URI", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "INTERFACE", - "name": "UniformResourceLocatable", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "search", - "description": "Perform a search across resources.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "query", - "description": "The search string to look for.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "type", - "description": "The types of search items to search within.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "SearchType", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SearchResultItemConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "securityAdvisories", - "description": "GitHub Security Advisories", - "args": [ - { - "name": "orderBy", - "description": "Ordering options for the returned topics.", - "type": { - "kind": "INPUT_OBJECT", - "name": "SecurityAdvisoryOrder", - "ofType": null - }, - "defaultValue": "{field: UPDATED_AT, direction: DESC}" - }, - { - "name": "identifier", - "description": "Filter advisories by identifier, e.g. GHSA or CVE.", - "type": { - "kind": "INPUT_OBJECT", - "name": "SecurityAdvisoryIdentifierFilter", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "publishedSince", - "description": "Filter advisories to those published since a time in the past.", - "type": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "updatedSince", - "description": "Filter advisories to those updated since a time in the past.", - "type": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SecurityAdvisoryConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "securityAdvisory", - "description": "Fetch a Security Advisory by its GHSA ID", - "args": [ - { - "name": "ghsaId", - "description": "GitHub Security Advisory ID.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "SecurityAdvisory", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "securityVulnerabilities", - "description": "Software Vulnerabilities documented by GitHub Security Advisories", - "args": [ - { - "name": "orderBy", - "description": "Ordering options for the returned topics.", - "type": { - "kind": "INPUT_OBJECT", - "name": "SecurityVulnerabilityOrder", - "ofType": null - }, - "defaultValue": "{field: UPDATED_AT, direction: DESC}" - }, - { - "name": "ecosystem", - "description": "An ecosystem to filter vulnerabilities by.", - "type": { - "kind": "ENUM", - "name": "SecurityAdvisoryEcosystem", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "package", - "description": "A package name to filter vulnerabilities by.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "severities", - "description": "A list of severities to filter vulnerabilities by.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "SecurityAdvisorySeverity", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SecurityVulnerabilityConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "sponsorsListing", - "description": "Look up a single Sponsors Listing", - "args": [ - { - "name": "slug", - "description": "Select the Sponsors listing which matches this slug", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "SponsorsListing", - "ofType": null - }, - "isDeprecated": true, - "deprecationReason": "`Query.sponsorsListing` will be removed. Use `Sponsorable.sponsorsListing` instead. Removal on 2020-04-01 UTC." - }, - { - "name": "topic", - "description": "Look up a topic by name.", - "args": [ - { - "name": "name", - "description": "The topic's name.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { "kind": "OBJECT", "name": "Topic", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Lookup a user by login.", - "args": [ - { - "name": "login", - "description": "The user's login.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewer", - "description": "The currently authenticated user.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RateLimit", - "description": "Represents the client's rate limit.", - "fields": [ - { - "name": "cost", - "description": "The point cost for the current query counting against the rate limit.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "limit", - "description": "The maximum number of points the client is permitted to consume in a 60 minute window.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodeCount", - "description": "The maximum number of nodes this query may return", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "remaining", - "description": "The number of points remaining in the current rate limit window.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resetAt", - "description": "The time at which the current rate limit window resets in UTC epoch seconds.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "used", - "description": "The number of points used in the current rate limit window.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "Reactable", - "description": "Represents a subject that can be reacted on.", - "fields": [ - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reactionGroups", - "description": "A list of reactions grouped by content left on the subject.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReactionGroup", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reactions", - "description": "A list of Reactions left on the Issue.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "content", - "description": "Allows filtering Reactions by emoji.", - "type": { - "kind": "ENUM", - "name": "ReactionContent", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Allows specifying the order in which reactions are returned.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ReactionOrder", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReactionConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanReact", - "description": "Can user react to this subject", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "CommitComment", "ofType": null }, - { "kind": "OBJECT", "name": "Issue", "ofType": null }, - { "kind": "OBJECT", "name": "IssueComment", "ofType": null }, - { "kind": "OBJECT", "name": "PullRequest", "ofType": null }, - { "kind": "OBJECT", "name": "PullRequestReview", "ofType": null }, - { - "kind": "OBJECT", - "name": "PullRequestReviewComment", - "ofType": null - }, - { "kind": "OBJECT", "name": "TeamDiscussion", "ofType": null }, - { - "kind": "OBJECT", - "name": "TeamDiscussionComment", - "ofType": null - } - ] - }, - { - "kind": "OBJECT", - "name": "ReactingUserConnection", - "description": "The connection type for User.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReactingUserEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ReactingUserEdge", - "description": "Represents a user that's made a reaction.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reactedAt", - "description": "The moment when the user made the reaction.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Reaction", - "description": "An emoji reaction to a particular piece of content.", - "fields": [ - { - "name": "content", - "description": "Identifies the emoji reaction.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ReactionContent", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reactable", - "description": "The reactable piece of content", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INTERFACE", - "name": "Reactable", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Identifies the user who created this reaction.", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ReactionConnection", - "description": "A list of reactions that have been left on the subject.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReactionEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Reaction", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerHasReacted", - "description": "Whether or not the authenticated user has left a reaction on the subject.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "ReactionContent", - "description": "Emojis that can be attached to Issues, Pull Requests and Comments.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "THUMBS_UP", - "description": "Represents the `:+1:` emoji.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "THUMBS_DOWN", - "description": "Represents the `:-1:` emoji.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "LAUGH", - "description": "Represents the `:laugh:` emoji.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "HOORAY", - "description": "Represents the `:hooray:` emoji.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CONFUSED", - "description": "Represents the `:confused:` emoji.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "HEART", - "description": "Represents the `:heart:` emoji.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ROCKET", - "description": "Represents the `:rocket:` emoji.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "EYES", - "description": "Represents the `:eyes:` emoji.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ReactionEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { "kind": "OBJECT", "name": "Reaction", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ReactionGroup", - "description": "A group of emoji reactions to a particular piece of content.", - "fields": [ - { - "name": "content", - "description": "Identifies the emoji reaction.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ReactionContent", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies when the reaction was created.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "subject", - "description": "The subject that was reacted to.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INTERFACE", - "name": "Reactable", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "users", - "description": "Users who have reacted to the reaction subject with the emotion represented by this reaction group", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReactingUserConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerHasReacted", - "description": "Whether or not the authenticated user has left a reaction on the subject.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "ReactionOrder", - "description": "Ways in which lists of reactions can be ordered upon return.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field in which to order reactions by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ReactionOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The direction in which to order reactions by the specified field.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "ReactionOrderField", - "description": "A list of fields that reactions can be ordered by.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "CREATED_AT", - "description": "Allows ordering a list of reactions by when they were created.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ReadyForReviewEvent", - "description": "Represents a 'ready_for_review' event on a given pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "PullRequest referenced by event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this ready for review event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this ready for review event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { - "kind": "INTERFACE", - "name": "UniformResourceLocatable", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Ref", - "description": "Represents a Git reference.", - "fields": [ - { - "name": "associatedPullRequests", - "description": "A list of pull requests with this ref as the head ref.", - "args": [ - { - "name": "states", - "description": "A list of states to filter the pull requests by.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "PullRequestState", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "labels", - "description": "A list of label names to filter the pull requests by.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "headRefName", - "description": "The head ref name to filter the pull requests by.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "baseRefName", - "description": "The base ref name to filter the pull requests by.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for pull requests returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IssueOrder", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequestConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "branchProtectionRule", - "description": "Branch protection rules for this ref", - "args": [], - "type": { - "kind": "OBJECT", - "name": "BranchProtectionRule", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The ref name.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "prefix", - "description": "The ref's prefix, such as `refs/heads/` or `refs/tags/`.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "refUpdateRule", - "description": "Branch protection rules that are viewable by non-admins", - "args": [], - "type": { - "kind": "OBJECT", - "name": "RefUpdateRule", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository the ref belongs to.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "target", - "description": "The object the ref points to. Returns null when object does not exist.", - "args": [], - "type": { - "kind": "INTERFACE", - "name": "GitObject", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RefConnection", - "description": "The connection type for Ref.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "RefEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { "kind": "OBJECT", "name": "Ref", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RefEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { "kind": "OBJECT", "name": "Ref", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "RefOrder", - "description": "Ways in which lists of git refs can be ordered upon return.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field in which to order refs by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "RefOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The direction in which to order refs by the specified field.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "RefOrderField", - "description": "Properties by which ref connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "TAG_COMMIT_DATE", - "description": "Order refs by underlying commit date if the ref prefix is refs/tags/", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ALPHABETICAL", - "description": "Order refs by their alphanumeric name", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RefUpdateRule", - "description": "A ref update rules for a viewer.", - "fields": [ - { - "name": "allowsDeletions", - "description": "Can this branch be deleted.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "allowsForcePushes", - "description": "Are force pushes allowed on this branch.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pattern", - "description": "Identifies the protection rule pattern.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "requiredApprovingReviewCount", - "description": "Number of approving reviews required to update matching branches.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "requiredStatusCheckContexts", - "description": "List of required status check contexts that must pass for commits to be accepted to matching branches.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "requiresLinearHistory", - "description": "Are merge commits prohibited from being pushed to this branch.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "requiresSignatures", - "description": "Are commits required to be signed.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanPush", - "description": "Can the viewer push to the branch", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ReferencedEvent", - "description": "Represents a 'referenced' event on a given `ReferencedSubject`.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commit", - "description": "Identifies the commit associated with the 'referenced' event.", - "args": [], - "type": { "kind": "OBJECT", "name": "Commit", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commitRepository", - "description": "Identifies the repository associated with the 'referenced' event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isCrossRepository", - "description": "Reference originated in a different repository.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isDirectReference", - "description": "Checks if the commit message itself references the subject. Can be false in the case of a commit comment reference.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "subject", - "description": "Object referenced by event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "UNION", - "name": "ReferencedSubject", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "UNION", - "name": "ReferencedSubject", - "description": "Any referencable object", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Issue", "ofType": null }, - { "kind": "OBJECT", "name": "PullRequest", "ofType": null } - ] - }, - { - "kind": "INPUT_OBJECT", - "name": "RegenerateEnterpriseIdentityProviderRecoveryCodesInput", - "description": "Autogenerated input type of RegenerateEnterpriseIdentityProviderRecoveryCodes", - "fields": null, - "inputFields": [ - { - "name": "enterpriseId", - "description": "The ID of the enterprise on which to set an identity provider.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RegenerateEnterpriseIdentityProviderRecoveryCodesPayload", - "description": "Autogenerated return type of RegenerateEnterpriseIdentityProviderRecoveryCodes", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "identityProvider", - "description": "The identity provider for the enterprise.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "EnterpriseIdentityProvider", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "RegenerateVerifiableDomainTokenInput", - "description": "Autogenerated input type of RegenerateVerifiableDomainToken", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "The ID of the verifiable domain to regenerate the verification token of.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RegenerateVerifiableDomainTokenPayload", - "description": "Autogenerated return type of RegenerateVerifiableDomainToken", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "verificationToken", - "description": "The verification token that was generated.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Release", - "description": "A release contains the content for a release.", - "fields": [ - { - "name": "author", - "description": "The author of the release", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": "The description of the release.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "descriptionHTML", - "description": "The description of this release rendered to HTML.", - "args": [], - "type": { "kind": "SCALAR", "name": "HTML", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isDraft", - "description": "Whether or not the release is a draft", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isLatest", - "description": "Whether or not the release is the latest releast", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isPrerelease", - "description": "Whether or not the release is a prerelease", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The title of the release.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "publishedAt", - "description": "Identifies the date and time when the release was created.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "releaseAssets", - "description": "List of releases assets which are dependent on this release.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "name", - "description": "A list of names to filter the assets by.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReleaseAssetConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this issue", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "shortDescriptionHTML", - "description": "A description of the release, rendered to HTML without any links in it.", - "args": [ - { - "name": "limit", - "description": "How many characters to return.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": "200" - } - ], - "type": { "kind": "SCALAR", "name": "HTML", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "tag", - "description": "The Git tag the release points to", - "args": [], - "type": { "kind": "OBJECT", "name": "Ref", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "tagName", - "description": "The name of the release's Git tag", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this issue", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { - "kind": "INTERFACE", - "name": "UniformResourceLocatable", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ReleaseAsset", - "description": "A release asset contains the content for a release asset.", - "fields": [ - { - "name": "contentType", - "description": "The asset's content-type", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "downloadCount", - "description": "The number of times this asset was downloaded", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "downloadUrl", - "description": "Identifies the URL where you can download the release asset via the browser.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "Identifies the title of the release asset.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "release", - "description": "Release that the asset is associated with", - "args": [], - "type": { "kind": "OBJECT", "name": "Release", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "size", - "description": "The size (in bytes) of the asset", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "uploadedBy", - "description": "The user that performed the upload", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "Identifies the URL of the release asset.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ReleaseAssetConnection", - "description": "The connection type for ReleaseAsset.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReleaseAssetEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReleaseAsset", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ReleaseAssetEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ReleaseAsset", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ReleaseConnection", - "description": "The connection type for Release.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReleaseEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Release", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ReleaseEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { "kind": "OBJECT", "name": "Release", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "ReleaseOrder", - "description": "Ways in which lists of releases can be ordered upon return.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field in which to order releases by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ReleaseOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The direction in which to order releases by the specified field.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "ReleaseOrderField", - "description": "Properties by which release connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "CREATED_AT", - "description": "Order releases by creation time", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NAME", - "description": "Order releases alphabetically by name", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "RemoveAssigneesFromAssignableInput", - "description": "Autogenerated input type of RemoveAssigneesFromAssignable", - "fields": null, - "inputFields": [ - { - "name": "assignableId", - "description": "The id of the assignable object to remove assignees from.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "assigneeIds", - "description": "The id of users to remove as assignees.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - } - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RemoveAssigneesFromAssignablePayload", - "description": "Autogenerated return type of RemoveAssigneesFromAssignable", - "fields": [ - { - "name": "assignable", - "description": "The item that was unassigned.", - "args": [], - "type": { - "kind": "INTERFACE", - "name": "Assignable", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "RemoveEnterpriseAdminInput", - "description": "Autogenerated input type of RemoveEnterpriseAdmin", - "fields": null, - "inputFields": [ - { - "name": "enterpriseId", - "description": "The Enterprise ID from which to remove the administrator.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "login", - "description": "The login of the user to remove as an administrator.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RemoveEnterpriseAdminPayload", - "description": "Autogenerated return type of RemoveEnterpriseAdmin", - "fields": [ - { - "name": "admin", - "description": "The user who was removed as an administrator.", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterprise", - "description": "The updated enterprise.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Enterprise", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "message", - "description": "A message confirming the result of removing an administrator.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewer", - "description": "The viewer performing the mutation.", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "RemoveEnterpriseIdentityProviderInput", - "description": "Autogenerated input type of RemoveEnterpriseIdentityProvider", - "fields": null, - "inputFields": [ - { - "name": "enterpriseId", - "description": "The ID of the enterprise from which to remove the identity provider.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RemoveEnterpriseIdentityProviderPayload", - "description": "Autogenerated return type of RemoveEnterpriseIdentityProvider", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "identityProvider", - "description": "The identity provider that was removed from the enterprise.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "EnterpriseIdentityProvider", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "RemoveEnterpriseOrganizationInput", - "description": "Autogenerated input type of RemoveEnterpriseOrganization", - "fields": null, - "inputFields": [ - { - "name": "enterpriseId", - "description": "The ID of the enterprise from which the organization should be removed.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "organizationId", - "description": "The ID of the organization to remove from the enterprise.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RemoveEnterpriseOrganizationPayload", - "description": "Autogenerated return type of RemoveEnterpriseOrganization", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterprise", - "description": "The updated enterprise.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Enterprise", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The organization that was removed from the enterprise.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewer", - "description": "The viewer performing the mutation.", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "RemoveEnterpriseSupportEntitlementInput", - "description": "Autogenerated input type of RemoveEnterpriseSupportEntitlement", - "fields": null, - "inputFields": [ - { - "name": "enterpriseId", - "description": "The ID of the Enterprise which the admin belongs to.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "login", - "description": "The login of a member who will lose the support entitlement.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RemoveEnterpriseSupportEntitlementPayload", - "description": "Autogenerated return type of RemoveEnterpriseSupportEntitlement", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "message", - "description": "A message confirming the result of removing the support entitlement.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "RemoveLabelsFromLabelableInput", - "description": "Autogenerated input type of RemoveLabelsFromLabelable", - "fields": null, - "inputFields": [ - { - "name": "labelableId", - "description": "The id of the Labelable to remove labels from.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "labelIds", - "description": "The ids of labels to remove.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - } - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RemoveLabelsFromLabelablePayload", - "description": "Autogenerated return type of RemoveLabelsFromLabelable", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "labelable", - "description": "The Labelable the labels were removed from.", - "args": [], - "type": { - "kind": "INTERFACE", - "name": "Labelable", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "RemoveOutsideCollaboratorInput", - "description": "Autogenerated input type of RemoveOutsideCollaborator", - "fields": null, - "inputFields": [ - { - "name": "userId", - "description": "The ID of the outside collaborator to remove.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "organizationId", - "description": "The ID of the organization to remove the outside collaborator from.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RemoveOutsideCollaboratorPayload", - "description": "Autogenerated return type of RemoveOutsideCollaborator", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "removedUser", - "description": "The user that was removed as an outside collaborator.", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "RemoveReactionInput", - "description": "Autogenerated input type of RemoveReaction", - "fields": null, - "inputFields": [ - { - "name": "subjectId", - "description": "The Node ID of the subject to modify.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "content", - "description": "The name of the emoji reaction to remove.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ReactionContent", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RemoveReactionPayload", - "description": "Autogenerated return type of RemoveReaction", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reaction", - "description": "The reaction object.", - "args": [], - "type": { "kind": "OBJECT", "name": "Reaction", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "subject", - "description": "The reactable subject.", - "args": [], - "type": { - "kind": "INTERFACE", - "name": "Reactable", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "RemoveStarInput", - "description": "Autogenerated input type of RemoveStar", - "fields": null, - "inputFields": [ - { - "name": "starrableId", - "description": "The Starrable ID to unstar.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RemoveStarPayload", - "description": "Autogenerated return type of RemoveStar", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "starrable", - "description": "The starrable.", - "args": [], - "type": { - "kind": "INTERFACE", - "name": "Starrable", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RemovedFromProjectEvent", - "description": "Represents a 'removed_from_project' event on a given issue or pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RenamedTitleEvent", - "description": "Represents a 'renamed' event on a given issue or pull request", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "currentTitle", - "description": "Identifies the current title of the issue or pull request.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "previousTitle", - "description": "Identifies the previous title of the issue or pull request.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "subject", - "description": "Subject that was renamed.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "UNION", - "name": "RenamedTitleSubject", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "UNION", - "name": "RenamedTitleSubject", - "description": "An object which has a renamable title", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Issue", "ofType": null }, - { "kind": "OBJECT", "name": "PullRequest", "ofType": null } - ] - }, - { - "kind": "INPUT_OBJECT", - "name": "ReopenIssueInput", - "description": "Autogenerated input type of ReopenIssue", - "fields": null, - "inputFields": [ - { - "name": "issueId", - "description": "ID of the issue to be opened.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ReopenIssuePayload", - "description": "Autogenerated return type of ReopenIssue", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "issue", - "description": "The issue that was opened.", - "args": [], - "type": { "kind": "OBJECT", "name": "Issue", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "ReopenPullRequestInput", - "description": "Autogenerated input type of ReopenPullRequest", - "fields": null, - "inputFields": [ - { - "name": "pullRequestId", - "description": "ID of the pull request to be reopened.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ReopenPullRequestPayload", - "description": "Autogenerated return type of ReopenPullRequest", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "The pull request that was reopened.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ReopenedEvent", - "description": "Represents a 'reopened' event on any `Closable`.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "closable", - "description": "Object that was reopened.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INTERFACE", - "name": "Closable", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepoAccessAuditEntry", - "description": "Audit log entry for a repo.access event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with the action", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryName", - "description": "The name of the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryResourcePath", - "description": "The HTTP path for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryUrl", - "description": "The HTTP URL for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "visibility", - "description": "The visibility of the repository", - "args": [], - "type": { - "kind": "ENUM", - "name": "RepoAccessAuditEntryVisibility", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "RepositoryAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "RepoAccessAuditEntryVisibility", - "description": "The privacy of a repository", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "INTERNAL", - "description": "The repository is visible only to users in the same business.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIVATE", - "description": "The repository is visible only to those with explicit access.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PUBLIC", - "description": "The repository is visible to everyone.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepoAddMemberAuditEntry", - "description": "Audit log entry for a repo.add_member event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with the action", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryName", - "description": "The name of the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryResourcePath", - "description": "The HTTP path for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryUrl", - "description": "The HTTP URL for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "visibility", - "description": "The visibility of the repository", - "args": [], - "type": { - "kind": "ENUM", - "name": "RepoAddMemberAuditEntryVisibility", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "RepositoryAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "RepoAddMemberAuditEntryVisibility", - "description": "The privacy of a repository", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "INTERNAL", - "description": "The repository is visible only to users in the same business.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIVATE", - "description": "The repository is visible only to those with explicit access.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PUBLIC", - "description": "The repository is visible to everyone.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepoAddTopicAuditEntry", - "description": "Audit log entry for a repo.add_topic event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with the action", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryName", - "description": "The name of the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryResourcePath", - "description": "The HTTP path for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryUrl", - "description": "The HTTP URL for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "topic", - "description": "The name of the topic added to the repository", - "args": [], - "type": { "kind": "OBJECT", "name": "Topic", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "topicName", - "description": "The name of the topic added to the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "RepositoryAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "TopicAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepoArchivedAuditEntry", - "description": "Audit log entry for a repo.archived event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with the action", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryName", - "description": "The name of the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryResourcePath", - "description": "The HTTP path for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryUrl", - "description": "The HTTP URL for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "visibility", - "description": "The visibility of the repository", - "args": [], - "type": { - "kind": "ENUM", - "name": "RepoArchivedAuditEntryVisibility", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "RepositoryAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "RepoArchivedAuditEntryVisibility", - "description": "The privacy of a repository", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "INTERNAL", - "description": "The repository is visible only to users in the same business.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIVATE", - "description": "The repository is visible only to those with explicit access.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PUBLIC", - "description": "The repository is visible to everyone.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepoChangeMergeSettingAuditEntry", - "description": "Audit log entry for a repo.change_merge_setting event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isEnabled", - "description": "Whether the change was to enable (true) or disable (false) the merge type", - "args": [], - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "mergeType", - "description": "The merge method affected by the change", - "args": [], - "type": { - "kind": "ENUM", - "name": "RepoChangeMergeSettingAuditEntryMergeType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with the action", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryName", - "description": "The name of the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryResourcePath", - "description": "The HTTP path for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryUrl", - "description": "The HTTP URL for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "RepositoryAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "RepoChangeMergeSettingAuditEntryMergeType", - "description": "The merge options available for pull requests to this repository.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "MERGE", - "description": "The pull request is added to the base branch in a merge commit.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REBASE", - "description": "Commits from the pull request are added onto the base branch individually without a merge commit.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SQUASH", - "description": "The pull request's commits are squashed into a single commit before they are merged to the base branch.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigDisableAnonymousGitAccessAuditEntry", - "description": "Audit log entry for a repo.config.disable_anonymous_git_access event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with the action", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryName", - "description": "The name of the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryResourcePath", - "description": "The HTTP path for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryUrl", - "description": "The HTTP URL for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "RepositoryAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigDisableCollaboratorsOnlyAuditEntry", - "description": "Audit log entry for a repo.config.disable_collaborators_only event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with the action", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryName", - "description": "The name of the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryResourcePath", - "description": "The HTTP path for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryUrl", - "description": "The HTTP URL for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "RepositoryAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigDisableContributorsOnlyAuditEntry", - "description": "Audit log entry for a repo.config.disable_contributors_only event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with the action", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryName", - "description": "The name of the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryResourcePath", - "description": "The HTTP path for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryUrl", - "description": "The HTTP URL for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "RepositoryAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigDisableSockpuppetDisallowedAuditEntry", - "description": "Audit log entry for a repo.config.disable_sockpuppet_disallowed event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with the action", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryName", - "description": "The name of the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryResourcePath", - "description": "The HTTP path for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryUrl", - "description": "The HTTP URL for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "RepositoryAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigEnableAnonymousGitAccessAuditEntry", - "description": "Audit log entry for a repo.config.enable_anonymous_git_access event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with the action", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryName", - "description": "The name of the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryResourcePath", - "description": "The HTTP path for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryUrl", - "description": "The HTTP URL for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "RepositoryAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigEnableCollaboratorsOnlyAuditEntry", - "description": "Audit log entry for a repo.config.enable_collaborators_only event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with the action", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryName", - "description": "The name of the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryResourcePath", - "description": "The HTTP path for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryUrl", - "description": "The HTTP URL for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "RepositoryAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigEnableContributorsOnlyAuditEntry", - "description": "Audit log entry for a repo.config.enable_contributors_only event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with the action", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryName", - "description": "The name of the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryResourcePath", - "description": "The HTTP path for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryUrl", - "description": "The HTTP URL for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "RepositoryAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigEnableSockpuppetDisallowedAuditEntry", - "description": "Audit log entry for a repo.config.enable_sockpuppet_disallowed event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with the action", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryName", - "description": "The name of the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryResourcePath", - "description": "The HTTP path for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryUrl", - "description": "The HTTP URL for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "RepositoryAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigLockAnonymousGitAccessAuditEntry", - "description": "Audit log entry for a repo.config.lock_anonymous_git_access event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with the action", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryName", - "description": "The name of the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryResourcePath", - "description": "The HTTP path for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryUrl", - "description": "The HTTP URL for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "RepositoryAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigUnlockAnonymousGitAccessAuditEntry", - "description": "Audit log entry for a repo.config.unlock_anonymous_git_access event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with the action", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryName", - "description": "The name of the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryResourcePath", - "description": "The HTTP path for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryUrl", - "description": "The HTTP URL for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "RepositoryAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepoCreateAuditEntry", - "description": "Audit log entry for a repo.create event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "forkParentName", - "description": "The name of the parent repository for this forked repository.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "forkSourceName", - "description": "The name of the root repository for this network.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with the action", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryName", - "description": "The name of the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryResourcePath", - "description": "The HTTP path for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryUrl", - "description": "The HTTP URL for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "visibility", - "description": "The visibility of the repository", - "args": [], - "type": { - "kind": "ENUM", - "name": "RepoCreateAuditEntryVisibility", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "RepositoryAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "RepoCreateAuditEntryVisibility", - "description": "The privacy of a repository", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "INTERNAL", - "description": "The repository is visible only to users in the same business.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIVATE", - "description": "The repository is visible only to those with explicit access.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PUBLIC", - "description": "The repository is visible to everyone.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepoDestroyAuditEntry", - "description": "Audit log entry for a repo.destroy event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with the action", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryName", - "description": "The name of the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryResourcePath", - "description": "The HTTP path for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryUrl", - "description": "The HTTP URL for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "visibility", - "description": "The visibility of the repository", - "args": [], - "type": { - "kind": "ENUM", - "name": "RepoDestroyAuditEntryVisibility", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "RepositoryAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "RepoDestroyAuditEntryVisibility", - "description": "The privacy of a repository", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "INTERNAL", - "description": "The repository is visible only to users in the same business.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIVATE", - "description": "The repository is visible only to those with explicit access.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PUBLIC", - "description": "The repository is visible to everyone.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepoRemoveMemberAuditEntry", - "description": "Audit log entry for a repo.remove_member event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with the action", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryName", - "description": "The name of the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryResourcePath", - "description": "The HTTP path for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryUrl", - "description": "The HTTP URL for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "visibility", - "description": "The visibility of the repository", - "args": [], - "type": { - "kind": "ENUM", - "name": "RepoRemoveMemberAuditEntryVisibility", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "RepositoryAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "RepoRemoveMemberAuditEntryVisibility", - "description": "The privacy of a repository", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "INTERNAL", - "description": "The repository is visible only to users in the same business.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIVATE", - "description": "The repository is visible only to those with explicit access.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PUBLIC", - "description": "The repository is visible to everyone.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepoRemoveTopicAuditEntry", - "description": "Audit log entry for a repo.remove_topic event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with the action", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryName", - "description": "The name of the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryResourcePath", - "description": "The HTTP path for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryUrl", - "description": "The HTTP URL for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "topic", - "description": "The name of the topic added to the repository", - "args": [], - "type": { "kind": "OBJECT", "name": "Topic", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "topicName", - "description": "The name of the topic added to the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "RepositoryAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "TopicAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "ReportedContentClassifiers", - "description": "The reasons a piece of content can be reported or minimized.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "SPAM", - "description": "A spammy piece of content", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ABUSE", - "description": "An abusive or harassing piece of content", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "OFF_TOPIC", - "description": "An irrelevant piece of content", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "OUTDATED", - "description": "An outdated piece of content", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "DUPLICATE", - "description": "A duplicated piece of content", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "RESOLVED", - "description": "The content has been resolved", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Repository", - "description": "A repository contains the content for a project.", - "fields": [ - { - "name": "assignableUsers", - "description": "A list of users that can be assigned to issues in this repository.", - "args": [ - { - "name": "query", - "description": "Filters users with query on user name and login", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "branchProtectionRules", - "description": "A list of branch protection rules for this repository.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "BranchProtectionRuleConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "codeOfConduct", - "description": "Returns the code of conduct for this repository", - "args": [], - "type": { - "kind": "OBJECT", - "name": "CodeOfConduct", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "collaborators", - "description": "A list of collaborators associated with the repository.", - "args": [ - { - "name": "affiliation", - "description": "Collaborators affiliation level with a repository.", - "type": { - "kind": "ENUM", - "name": "CollaboratorAffiliation", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "query", - "description": "Filters users with query on user name and login", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "RepositoryCollaboratorConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commitComments", - "description": "A list of commit comments associated with the repository.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CommitCommentConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "contactLinks", - "description": "Returns a list of contact links associated to the repository", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "RepositoryContactLink", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "defaultBranchRef", - "description": "The Ref associated with the repository's default branch.", - "args": [], - "type": { "kind": "OBJECT", "name": "Ref", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deleteBranchOnMerge", - "description": "Whether or not branches are automatically deleted when merged in this repository.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deployKeys", - "description": "A list of deploy keys that are on this repository.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "DeployKeyConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deployments", - "description": "Deployments associated with the repository", - "args": [ - { - "name": "environments", - "description": "Environments to list deployments for", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for deployments returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "DeploymentOrder", - "ofType": null - }, - "defaultValue": "{field: CREATED_AT, direction: ASC}" - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "DeploymentConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": "The description of the repository.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "descriptionHTML", - "description": "The description of the repository rendered to HTML.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "HTML", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "diskUsage", - "description": "The number of kilobytes this repository occupies on disk.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "forkCount", - "description": "Returns how many forks there are of this repository in the whole network.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "forks", - "description": "A list of direct forked repositories.", - "args": [ - { - "name": "privacy", - "description": "If non-null, filters repositories according to privacy", - "type": { - "kind": "ENUM", - "name": "RepositoryPrivacy", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for repositories returned from the connection", - "type": { - "kind": "INPUT_OBJECT", - "name": "RepositoryOrder", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "affiliations", - "description": "Array of viewer's affiliation options for repositories returned from the connection. For example, OWNER will include only repositories that the current viewer owns.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "RepositoryAffiliation", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "ownerAffiliations", - "description": "Array of owner's affiliation options for repositories returned from the connection. For example, OWNER will include only repositories that the organization or user being viewed owns.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "RepositoryAffiliation", - "ofType": null - } - }, - "defaultValue": "[OWNER, COLLABORATOR]" - }, - { - "name": "isLocked", - "description": "If non-null, filters repositories according to whether they have been locked", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "RepositoryConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "fundingLinks", - "description": "The funding links for this repository", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "FundingLink", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hasIssuesEnabled", - "description": "Indicates if the repository has issues feature enabled.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hasProjectsEnabled", - "description": "Indicates if the repository has the Projects feature enabled.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hasWikiEnabled", - "description": "Indicates if the repository has wiki feature enabled.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "homepageUrl", - "description": "The repository's URL.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "interactionAbility", - "description": "The interaction ability settings for this repository.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "RepositoryInteractionAbility", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isArchived", - "description": "Indicates if the repository is unmaintained.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isBlankIssuesEnabled", - "description": "Returns true if blank issue creation is allowed", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isDisabled", - "description": "Returns whether or not this repository disabled.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isEmpty", - "description": "Returns whether or not this repository is empty.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isFork", - "description": "Identifies if the repository is a fork.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isInOrganization", - "description": "Indicates if a repository is either owned by an organization, or is a private fork of an organization repository.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isLocked", - "description": "Indicates if the repository has been locked or not.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isMirror", - "description": "Identifies if the repository is a mirror.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isPrivate", - "description": "Identifies if the repository is private.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isSecurityPolicyEnabled", - "description": "Returns true if this repository has a security policy", - "args": [], - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isTemplate", - "description": "Identifies if the repository is a template that can be used to generate new repositories.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isUserConfigurationRepository", - "description": "Is this repository a user configuration repository?", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "issue", - "description": "Returns a single issue from the current repository by number.", - "args": [ - { - "name": "number", - "description": "The number for the issue to be returned.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { "kind": "OBJECT", "name": "Issue", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "issueOrPullRequest", - "description": "Returns a single issue-like object from the current repository by number.", - "args": [ - { - "name": "number", - "description": "The number for the issue to be returned.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "UNION", - "name": "IssueOrPullRequest", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "issueTemplates", - "description": "Returns a list of issue templates associated to the repository", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "IssueTemplate", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "issues", - "description": "A list of issues that have been opened in the repository.", - "args": [ - { - "name": "orderBy", - "description": "Ordering options for issues returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IssueOrder", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "labels", - "description": "A list of label names to filter the pull requests by.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "states", - "description": "A list of states to filter the issues by.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "IssueState", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "filterBy", - "description": "Filtering options for issues returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IssueFilters", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "IssueConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "label", - "description": "Returns a single label by name", - "args": [ - { - "name": "name", - "description": "Label name", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { "kind": "OBJECT", "name": "Label", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "labels", - "description": "A list of labels associated with the repository.", - "args": [ - { - "name": "orderBy", - "description": "Ordering options for labels returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "LabelOrder", - "ofType": null - }, - "defaultValue": "{field: CREATED_AT, direction: ASC}" - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "query", - "description": "If provided, searches labels by name and description.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "LabelConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "languages", - "description": "A list containing a breakdown of the language composition of the repository.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Order for connection", - "type": { - "kind": "INPUT_OBJECT", - "name": "LanguageOrder", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "LanguageConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "latestRelease", - "description": "Get the latest release for the repository if one exists.", - "args": [], - "type": { "kind": "OBJECT", "name": "Release", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "licenseInfo", - "description": "The license associated with the repository", - "args": [], - "type": { "kind": "OBJECT", "name": "License", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lockReason", - "description": "The reason the repository has been locked.", - "args": [], - "type": { - "kind": "ENUM", - "name": "RepositoryLockReason", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "mentionableUsers", - "description": "A list of Users that can be mentioned in the context of the repository.", - "args": [ - { - "name": "query", - "description": "Filters users with query on user name and login", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "mergeCommitAllowed", - "description": "Whether or not PRs are merged with a merge commit on this repository.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "milestone", - "description": "Returns a single milestone from the current repository by number.", - "args": [ - { - "name": "number", - "description": "The number for the milestone to be returned.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { "kind": "OBJECT", "name": "Milestone", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "milestones", - "description": "A list of milestones associated with the repository.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "states", - "description": "Filter by the state of the milestones.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "MilestoneState", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for milestones.", - "type": { - "kind": "INPUT_OBJECT", - "name": "MilestoneOrder", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "query", - "description": "Filters milestones with a query on the title", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "MilestoneConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "mirrorUrl", - "description": "The repository's original mirror URL.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The name of the repository.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nameWithOwner", - "description": "The repository's name with owner.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "object", - "description": "A Git object in the repository", - "args": [ - { - "name": "oid", - "description": "The Git object ID", - "type": { - "kind": "SCALAR", - "name": "GitObjectID", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "expression", - "description": "A Git revision expression suitable for rev-parse", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "INTERFACE", - "name": "GitObject", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "openGraphImageUrl", - "description": "The image used to represent this repository in Open Graph data.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "owner", - "description": "The User owner of the repository.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INTERFACE", - "name": "RepositoryOwner", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "packages", - "description": "A list of packages under the owner.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "names", - "description": "Find packages by their names.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "repositoryId", - "description": "Find packages in a repository by ID.", - "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, - "defaultValue": null - }, - { - "name": "packageType", - "description": "Filter registry package by type.", - "type": { - "kind": "ENUM", - "name": "PackageType", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering of the returned packages.", - "type": { - "kind": "INPUT_OBJECT", - "name": "PackageOrder", - "ofType": null - }, - "defaultValue": "{field: CREATED_AT, direction: DESC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PackageConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "parent", - "description": "The repository parent, if this is a fork.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "primaryLanguage", - "description": "The primary language of the repository's code.", - "args": [], - "type": { "kind": "OBJECT", "name": "Language", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "project", - "description": "Find project by number.", - "args": [ - { - "name": "number", - "description": "The project number to find.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { "kind": "OBJECT", "name": "Project", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "projects", - "description": "A list of projects under the owner.", - "args": [ - { - "name": "orderBy", - "description": "Ordering options for projects returned from the connection", - "type": { - "kind": "INPUT_OBJECT", - "name": "ProjectOrder", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "search", - "description": "Query to search projects by, currently only searching by name.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "states", - "description": "A list of states to filter the projects by.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ProjectState", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ProjectConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "projectsResourcePath", - "description": "The HTTP path listing the repository's projects", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "projectsUrl", - "description": "The HTTP URL listing the repository's projects", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "Returns a single pull request from the current repository by number.", - "args": [ - { - "name": "number", - "description": "The number for the pull request to be returned.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequests", - "description": "A list of pull requests that have been opened in the repository.", - "args": [ - { - "name": "states", - "description": "A list of states to filter the pull requests by.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "PullRequestState", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "labels", - "description": "A list of label names to filter the pull requests by.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "headRefName", - "description": "The head ref name to filter the pull requests by.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "baseRefName", - "description": "The base ref name to filter the pull requests by.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for pull requests returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IssueOrder", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequestConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pushedAt", - "description": "Identifies when the repository was last pushed to.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "rebaseMergeAllowed", - "description": "Whether or not rebase-merging is enabled on this repository.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ref", - "description": "Fetch a given ref from the repository", - "args": [ - { - "name": "qualifiedName", - "description": "The ref to retrieve. Fully qualified matches are checked in order (`refs/heads/master`) before falling back onto checks for short name matches (`master`).", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { "kind": "OBJECT", "name": "Ref", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "refs", - "description": "Fetch a list of refs from the repository", - "args": [ - { - "name": "query", - "description": "Filters refs with query on name", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "refPrefix", - "description": "A ref name prefix like `refs/heads/`, `refs/tags/`, etc.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "DEPRECATED: use orderBy. The ordering direction.", - "type": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for refs returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "RefOrder", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "RefConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "release", - "description": "Lookup a single release given various criteria.", - "args": [ - { - "name": "tagName", - "description": "The name of the Tag the Release was created from", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { "kind": "OBJECT", "name": "Release", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "releases", - "description": "List of releases which are dependent on this repository.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Order for connection", - "type": { - "kind": "INPUT_OBJECT", - "name": "ReleaseOrder", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReleaseConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryTopics", - "description": "A list of applied repository-topic associations for this repository.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "RepositoryTopicConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this repository", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "securityPolicyUrl", - "description": "The security policy URL.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "shortDescriptionHTML", - "description": "A description of the repository, rendered to HTML without any links in it.", - "args": [ - { - "name": "limit", - "description": "How many characters to return.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": "200" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "HTML", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "squashMergeAllowed", - "description": "Whether or not squash-merging is enabled on this repository.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "sshUrl", - "description": "The SSH URL to clone this repository", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "GitSSHRemote", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "stargazerCount", - "description": "Returns a count of how many stargazers there are on this object\n", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "stargazers", - "description": "A list of users who have starred this starrable.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Order for connection", - "type": { - "kind": "INPUT_OBJECT", - "name": "StarOrder", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "StargazerConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "submodules", - "description": "Returns a list of all submodules in this repository parsed from the .gitmodules file as of the default branch's HEAD commit.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SubmoduleConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "tempCloneToken", - "description": "Temporary authentication token for cloning this repository.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "templateRepository", - "description": "The repository from which this repository was generated, if any.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this repository", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "usesCustomOpenGraphImage", - "description": "Whether this repository has a custom image to use with Open Graph as opposed to being represented by the owner's avatar.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanAdminister", - "description": "Indicates whether the viewer has admin permissions on this repository.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanCreateProjects", - "description": "Can the current viewer create new projects on this owner.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanSubscribe", - "description": "Check if the viewer is able to change their subscription status for the repository.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanUpdateTopics", - "description": "Indicates whether the viewer can update the topics of this repository.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerDefaultCommitEmail", - "description": "The last commit email for the viewer.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerDefaultMergeMethod", - "description": "The last used merge method by the viewer or the default for the repository.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "PullRequestMergeMethod", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerHasStarred", - "description": "Returns a boolean indicating whether the viewing user has starred this starrable.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerPermission", - "description": "The users permission level on the repository. Will return null if authenticated as an GitHub App.", - "args": [], - "type": { - "kind": "ENUM", - "name": "RepositoryPermission", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerPossibleCommitEmails", - "description": "A list of emails this viewer can commit with.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerSubscription", - "description": "Identifies if the viewer is watching, not watching, or ignoring the subscribable entity.", - "args": [], - "type": { - "kind": "ENUM", - "name": "SubscriptionState", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "vulnerabilityAlerts", - "description": "A list of vulnerability alerts that are on this repository.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "RepositoryVulnerabilityAlertConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "watchers", - "description": "A list of users watching the repository.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "ProjectOwner", "ofType": null }, - { "kind": "INTERFACE", "name": "PackageOwner", "ofType": null }, - { "kind": "INTERFACE", "name": "Subscribable", "ofType": null }, - { "kind": "INTERFACE", "name": "Starrable", "ofType": null }, - { - "kind": "INTERFACE", - "name": "UniformResourceLocatable", - "ofType": null - }, - { "kind": "INTERFACE", "name": "RepositoryInfo", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "RepositoryAffiliation", - "description": "The affiliation of a user to a repository", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "OWNER", - "description": "Repositories that are owned by the authenticated user.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "COLLABORATOR", - "description": "Repositories that the user has been added to as a collaborator.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ORGANIZATION_MEMBER", - "description": "Repositories that the user has access to through being a member of an organization. This includes every repository on every team that the user is on.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "RepositoryAuditEntryData", - "description": "Metadata for an audit entry with action repo.*", - "fields": [ - { - "name": "repository", - "description": "The repository associated with the action", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryName", - "description": "The name of the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryResourcePath", - "description": "The HTTP path for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryUrl", - "description": "The HTTP URL for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { - "kind": "OBJECT", - "name": "OrgRestoreMemberMembershipRepositoryAuditEntryData", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "PrivateRepositoryForkingDisableAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "PrivateRepositoryForkingEnableAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoAccessAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoAddMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoAddTopicAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoArchivedAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoChangeMergeSettingAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigDisableAnonymousGitAccessAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigDisableCollaboratorsOnlyAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigDisableContributorsOnlyAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigDisableSockpuppetDisallowedAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigEnableAnonymousGitAccessAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigEnableCollaboratorsOnlyAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigEnableContributorsOnlyAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigEnableSockpuppetDisallowedAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigLockAnonymousGitAccessAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoConfigUnlockAnonymousGitAccessAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoCreateAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoDestroyAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoRemoveMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoRemoveTopicAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "TeamAddRepositoryAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "TeamRemoveRepositoryAuditEntry", - "ofType": null - } - ] - }, - { - "kind": "OBJECT", - "name": "RepositoryCollaboratorConnection", - "description": "The connection type for User.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "RepositoryCollaboratorEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepositoryCollaboratorEdge", - "description": "Represents a user who is a collaborator of a repository.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "permission", - "description": "The permission the user has on the repository.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "RepositoryPermission", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "permissionSources", - "description": "A list of sources for the user's access to the repository.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PermissionSource", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepositoryConnection", - "description": "A list of repositories owned by the subject.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "RepositoryEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalDiskUsage", - "description": "The total size in kilobytes of all repositories in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepositoryContactLink", - "description": "A repository contact link.", - "fields": [ - { - "name": "about", - "description": "The contact link purpose.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The contact link name.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The contact link URL.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "RepositoryContributionType", - "description": "The reason a repository is listed as 'contributed'.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "COMMIT", - "description": "Created a commit", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ISSUE", - "description": "Created an issue", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PULL_REQUEST", - "description": "Created a pull request", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REPOSITORY", - "description": "Created the repository", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PULL_REQUEST_REVIEW", - "description": "Reviewed a pull request", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepositoryEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "RepositoryInfo", - "description": "A subset of repository info.", - "fields": [ - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": "The description of the repository.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "descriptionHTML", - "description": "The description of the repository rendered to HTML.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "HTML", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "forkCount", - "description": "Returns how many forks there are of this repository in the whole network.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hasIssuesEnabled", - "description": "Indicates if the repository has issues feature enabled.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hasProjectsEnabled", - "description": "Indicates if the repository has the Projects feature enabled.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hasWikiEnabled", - "description": "Indicates if the repository has wiki feature enabled.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "homepageUrl", - "description": "The repository's URL.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isArchived", - "description": "Indicates if the repository is unmaintained.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isFork", - "description": "Identifies if the repository is a fork.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isInOrganization", - "description": "Indicates if a repository is either owned by an organization, or is a private fork of an organization repository.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isLocked", - "description": "Indicates if the repository has been locked or not.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isMirror", - "description": "Identifies if the repository is a mirror.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isPrivate", - "description": "Identifies if the repository is private.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isTemplate", - "description": "Identifies if the repository is a template that can be used to generate new repositories.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "licenseInfo", - "description": "The license associated with the repository", - "args": [], - "type": { "kind": "OBJECT", "name": "License", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lockReason", - "description": "The reason the repository has been locked.", - "args": [], - "type": { - "kind": "ENUM", - "name": "RepositoryLockReason", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "mirrorUrl", - "description": "The repository's original mirror URL.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The name of the repository.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nameWithOwner", - "description": "The repository's name with owner.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "openGraphImageUrl", - "description": "The image used to represent this repository in Open Graph data.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "owner", - "description": "The User owner of the repository.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INTERFACE", - "name": "RepositoryOwner", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pushedAt", - "description": "Identifies when the repository was last pushed to.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this repository", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "shortDescriptionHTML", - "description": "A description of the repository, rendered to HTML without any links in it.", - "args": [ - { - "name": "limit", - "description": "How many characters to return.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": "200" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "HTML", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this repository", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "usesCustomOpenGraphImage", - "description": "Whether this repository has a custom image to use with Open Graph as opposed to being represented by the owner's avatar.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Repository", "ofType": null } - ] - }, - { - "kind": "OBJECT", - "name": "RepositoryInteractionAbility", - "description": "Repository interaction limit that applies to this object.", - "fields": [ - { - "name": "expiresAt", - "description": "The time the currently active limit expires.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "limit", - "description": "The current limit that is enabled on this object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "RepositoryInteractionLimit", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "origin", - "description": "The origin of the currently active interaction limit.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "RepositoryInteractionLimitOrigin", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "RepositoryInteractionLimit", - "description": "A repository interaction limit.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "EXISTING_USERS", - "description": "Users that have recently created their account will be unable to interact with the repository.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CONTRIBUTORS_ONLY", - "description": "Users that have not previously committed to a repository’s default branch will be unable to interact with the repository.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "COLLABORATORS_ONLY", - "description": "Users that are not collaborators will not be able to interact with the repository.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NO_LIMIT", - "description": "No interaction limits are enabled.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "RepositoryInteractionLimitExpiry", - "description": "The length for a repository interaction limit to be enabled for.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "ONE_DAY", - "description": "The interaction limit will expire after 1 day.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "THREE_DAYS", - "description": "The interaction limit will expire after 3 days.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ONE_WEEK", - "description": "The interaction limit will expire after 1 week.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ONE_MONTH", - "description": "The interaction limit will expire after 1 month.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SIX_MONTHS", - "description": "The interaction limit will expire after 6 months.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "RepositoryInteractionLimitOrigin", - "description": "Indicates where an interaction limit is configured.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "REPOSITORY", - "description": "A limit that is configured at the repository level.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ORGANIZATION", - "description": "A limit that is configured at the organization level.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER", - "description": "A limit that is configured at the user-wide level.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepositoryInvitation", - "description": "An invitation for a user to be added to a repository.", - "fields": [ - { - "name": "email", - "description": "The email address that received the invitation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "invitee", - "description": "The user who received the invitation.", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "inviter", - "description": "The user who created the invitation.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "permalink", - "description": "The permalink for this repository invitation.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "permission", - "description": "The permission granted on this repository by this invitation.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "RepositoryPermission", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The Repository the user is invited to.", - "args": [], - "type": { - "kind": "INTERFACE", - "name": "RepositoryInfo", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepositoryInvitationConnection", - "description": "The connection type for RepositoryInvitation.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "RepositoryInvitationEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "RepositoryInvitation", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepositoryInvitationEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "RepositoryInvitation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "RepositoryInvitationOrder", - "description": "Ordering options for repository invitation connections.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field to order repository invitations by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "RepositoryInvitationOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The ordering direction.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "RepositoryInvitationOrderField", - "description": "Properties by which repository invitation connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "CREATED_AT", - "description": "Order repository invitations by creation time", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INVITEE_LOGIN", - "description": "Order repository invitations by invitee login", - "isDeprecated": true, - "deprecationReason": "`INVITEE_LOGIN` is no longer a valid field value. Repository invitations can now be associated with an email, not only an invitee. Removal on 2020-10-01 UTC." - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "RepositoryLockReason", - "description": "The possible reasons a given repository could be in a locked state.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "MOVING", - "description": "The repository is locked due to a move.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "BILLING", - "description": "The repository is locked due to a billing related reason.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "RENAME", - "description": "The repository is locked due to a rename.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "MIGRATING", - "description": "The repository is locked due to a migration.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "RepositoryNode", - "description": "Represents a object that belongs to a repository.", - "fields": [ - { - "name": "repository", - "description": "The repository associated with this node.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "CommitComment", "ofType": null }, - { "kind": "OBJECT", "name": "CommitCommentThread", "ofType": null }, - { "kind": "OBJECT", "name": "Issue", "ofType": null }, - { "kind": "OBJECT", "name": "IssueComment", "ofType": null }, - { "kind": "OBJECT", "name": "PullRequest", "ofType": null }, - { - "kind": "OBJECT", - "name": "PullRequestCommitCommentThread", - "ofType": null - }, - { "kind": "OBJECT", "name": "PullRequestReview", "ofType": null }, - { - "kind": "OBJECT", - "name": "PullRequestReviewComment", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepositoryVulnerabilityAlert", - "ofType": null - } - ] - }, - { - "kind": "INPUT_OBJECT", - "name": "RepositoryOrder", - "description": "Ordering options for repository connections", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field to order repositories by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "RepositoryOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The ordering direction.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "RepositoryOrderField", - "description": "Properties by which repository connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "CREATED_AT", - "description": "Order repositories by creation time", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT", - "description": "Order repositories by update time", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PUSHED_AT", - "description": "Order repositories by push time", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NAME", - "description": "Order repositories by name", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "STARGAZERS", - "description": "Order repositories by number of stargazers", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "RepositoryOwner", - "description": "Represents an owner of a Repository.", - "fields": [ - { - "name": "avatarUrl", - "description": "A URL pointing to the owner's public avatar.", - "args": [ - { - "name": "size", - "description": "The size of the resulting square image.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "login", - "description": "The username used to login.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositories", - "description": "A list of repositories that the user owns.", - "args": [ - { - "name": "privacy", - "description": "If non-null, filters repositories according to privacy", - "type": { - "kind": "ENUM", - "name": "RepositoryPrivacy", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for repositories returned from the connection", - "type": { - "kind": "INPUT_OBJECT", - "name": "RepositoryOrder", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "affiliations", - "description": "Array of viewer's affiliation options for repositories returned from the connection. For example, OWNER will include only repositories that the current viewer owns.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "RepositoryAffiliation", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "ownerAffiliations", - "description": "Array of owner's affiliation options for repositories returned from the connection. For example, OWNER will include only repositories that the organization or user being viewed owns.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "RepositoryAffiliation", - "ofType": null - } - }, - "defaultValue": "[OWNER, COLLABORATOR]" - }, - { - "name": "isLocked", - "description": "If non-null, filters repositories according to whether they have been locked", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "isFork", - "description": "If non-null, filters repositories according to whether they are forks of another repository", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "RepositoryConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "Find Repository.", - "args": [ - { - "name": "name", - "description": "Name of Repository to find.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP URL for the owner.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for the owner.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Organization", "ofType": null }, - { "kind": "OBJECT", "name": "User", "ofType": null } - ] - }, - { - "kind": "ENUM", - "name": "RepositoryPermission", - "description": "The access level to a repository", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "ADMIN", - "description": "Can read, clone, and push to this repository. Can also manage issues, pull requests, and repository settings, including adding collaborators", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "MAINTAIN", - "description": "Can read, clone, and push to this repository. They can also manage issues, pull requests, and some repository settings", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "WRITE", - "description": "Can read, clone, and push to this repository. Can also manage issues and pull requests", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "TRIAGE", - "description": "Can read and clone this repository. Can also manage issues and pull requests", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "READ", - "description": "Can read and clone this repository. Can also open and comment on issues and pull requests", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "RepositoryPrivacy", - "description": "The privacy of a repository", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "PUBLIC", - "description": "Public", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIVATE", - "description": "Private", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepositoryTopic", - "description": "A repository-topic connects a repository to a topic.", - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this repository-topic.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "topic", - "description": "The topic.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "Topic", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this repository-topic.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { - "kind": "INTERFACE", - "name": "UniformResourceLocatable", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepositoryTopicConnection", - "description": "The connection type for RepositoryTopic.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "RepositoryTopicEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "RepositoryTopic", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepositoryTopicEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "RepositoryTopic", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "RepositoryVisibility", - "description": "The repository's visibility level.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "PRIVATE", - "description": "The repository is visible only to those with explicit access.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PUBLIC", - "description": "The repository is visible to everyone.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INTERNAL", - "description": "The repository is visible only to users in the same business.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepositoryVisibilityChangeDisableAuditEntry", - "description": "Audit log entry for a repository_visibility_change.disable event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseResourcePath", - "description": "The HTTP path for this enterprise.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseSlug", - "description": "The slug of the enterprise.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseUrl", - "description": "The HTTP URL for this enterprise.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "EnterpriseAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepositoryVisibilityChangeEnableAuditEntry", - "description": "Audit log entry for a repository_visibility_change.enable event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseResourcePath", - "description": "The HTTP path for this enterprise.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseSlug", - "description": "The slug of the enterprise.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterpriseUrl", - "description": "The HTTP URL for this enterprise.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "EnterpriseAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepositoryVulnerabilityAlert", - "description": "A alert for a repository with an affected vulnerability.", - "fields": [ - { - "name": "createdAt", - "description": "When was the alert created?", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dismissReason", - "description": "The reason the alert was dismissed", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dismissedAt", - "description": "When was the alert dismissed?", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dismisser", - "description": "The user who dismissed the alert", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The associated repository", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "securityAdvisory", - "description": "The associated security advisory", - "args": [], - "type": { - "kind": "OBJECT", - "name": "SecurityAdvisory", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "securityVulnerability", - "description": "The associated security vulnerability", - "args": [], - "type": { - "kind": "OBJECT", - "name": "SecurityVulnerability", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "vulnerableManifestFilename", - "description": "The vulnerable manifest filename", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "vulnerableManifestPath", - "description": "The vulnerable manifest path", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "vulnerableRequirements", - "description": "The vulnerable requirements", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "RepositoryNode", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepositoryVulnerabilityAlertConnection", - "description": "The connection type for RepositoryVulnerabilityAlert.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "RepositoryVulnerabilityAlertEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "RepositoryVulnerabilityAlert", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RepositoryVulnerabilityAlertEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "RepositoryVulnerabilityAlert", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "RequestReviewsInput", - "description": "Autogenerated input type of RequestReviews", - "fields": null, - "inputFields": [ - { - "name": "pullRequestId", - "description": "The Node ID of the pull request to modify.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "userIds", - "description": "The Node IDs of the user to request.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - } - }, - "defaultValue": null - }, - { - "name": "teamIds", - "description": "The Node IDs of the team to request.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - } - }, - "defaultValue": null - }, - { - "name": "union", - "description": "Add users to the set rather than replace.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RequestReviewsPayload", - "description": "Autogenerated return type of RequestReviews", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "The pull request that is getting requests.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "requestedReviewersEdge", - "description": "The edge from the pull request to the requested reviewers.", - "args": [], - "type": { "kind": "OBJECT", "name": "UserEdge", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "RequestableCheckStatusState", - "description": "The possible states that can be requested when creating a check run.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "QUEUED", - "description": "The check suite or run has been queued.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "IN_PROGRESS", - "description": "The check suite or run is in progress.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "COMPLETED", - "description": "The check suite or run has been completed.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "WAITING", - "description": "The check suite or run is in waiting state.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "UNION", - "name": "RequestedReviewer", - "description": "Types that can be requested reviewers.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Mannequin", "ofType": null }, - { "kind": "OBJECT", "name": "Team", "ofType": null }, - { "kind": "OBJECT", "name": "User", "ofType": null } - ] - }, - { - "kind": "INPUT_OBJECT", - "name": "RerequestCheckSuiteInput", - "description": "Autogenerated input type of RerequestCheckSuite", - "fields": null, - "inputFields": [ - { - "name": "repositoryId", - "description": "The Node ID of the repository.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "checkSuiteId", - "description": "The Node ID of the check suite.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RerequestCheckSuitePayload", - "description": "Autogenerated return type of RerequestCheckSuite", - "fields": [ - { - "name": "checkSuite", - "description": "The requested check suite.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "CheckSuite", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "ResolveReviewThreadInput", - "description": "Autogenerated input type of ResolveReviewThread", - "fields": null, - "inputFields": [ - { - "name": "threadId", - "description": "The ID of the thread to resolve", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ResolveReviewThreadPayload", - "description": "Autogenerated return type of ResolveReviewThread", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "thread", - "description": "The thread to resolve.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequestReviewThread", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "RestrictedContribution", - "description": "Represents a private contribution a user made on GitHub.", - "fields": [ - { - "name": "isRestricted", - "description": "Whether this contribution is associated with a record you do not have access to. For\nexample, your own 'first issue' contribution may have been made on a repository you can no\nlonger access.\n", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "occurredAt", - "description": "When this contribution was made.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this contribution.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this contribution.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user who made this contribution.\n", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Contribution", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ReviewDismissalAllowance", - "description": "A team or user who has the ability to dismiss a review on a protected branch.", - "fields": [ - { - "name": "actor", - "description": "The actor that can dismiss.", - "args": [], - "type": { - "kind": "UNION", - "name": "ReviewDismissalAllowanceActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "branchProtectionRule", - "description": "Identifies the branch protection rule associated with the allowed user or team.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "BranchProtectionRule", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "UNION", - "name": "ReviewDismissalAllowanceActor", - "description": "Types that can be an actor.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Team", "ofType": null }, - { "kind": "OBJECT", "name": "User", "ofType": null } - ] - }, - { - "kind": "OBJECT", - "name": "ReviewDismissalAllowanceConnection", - "description": "The connection type for ReviewDismissalAllowance.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReviewDismissalAllowanceEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReviewDismissalAllowance", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ReviewDismissalAllowanceEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ReviewDismissalAllowance", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ReviewDismissedEvent", - "description": "Represents a 'review_dismissed' event on a given issue or pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dismissalMessage", - "description": "Identifies the optional message associated with the 'review_dismissed' event.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dismissalMessageHTML", - "description": "Identifies the optional message associated with the event, rendered to HTML.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "previousReviewState", - "description": "Identifies the previous state of the review with the 'review_dismissed' event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "PullRequestReviewState", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "PullRequest referenced by event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequestCommit", - "description": "Identifies the commit which caused the review to become stale.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequestCommit", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this review dismissed event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "review", - "description": "Identifies the review associated with the 'review_dismissed' event.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequestReview", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this review dismissed event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { - "kind": "INTERFACE", - "name": "UniformResourceLocatable", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ReviewRequest", - "description": "A request for a user to review a pull request.", - "fields": [ - { - "name": "asCodeOwner", - "description": "Whether this request was created for a code owner", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "Identifies the pull request associated with this review request.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "requestedReviewer", - "description": "The reviewer that is requested.", - "args": [], - "type": { - "kind": "UNION", - "name": "RequestedReviewer", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ReviewRequestConnection", - "description": "The connection type for ReviewRequest.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReviewRequestEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReviewRequest", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ReviewRequestEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ReviewRequest", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ReviewRequestRemovedEvent", - "description": "Represents an 'review_request_removed' event on a given pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "PullRequest referenced by event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "requestedReviewer", - "description": "Identifies the reviewer whose review request was removed.", - "args": [], - "type": { - "kind": "UNION", - "name": "RequestedReviewer", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ReviewRequestedEvent", - "description": "Represents an 'review_requested' event on a given pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "PullRequest referenced by event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "requestedReviewer", - "description": "Identifies the reviewer whose review was requested.", - "args": [], - "type": { - "kind": "UNION", - "name": "RequestedReviewer", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ReviewStatusHovercardContext", - "description": "A hovercard context with a message describing the current code review state of the pull\nrequest.\n", - "fields": [ - { - "name": "message", - "description": "A string describing this context", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "octicon", - "description": "An octicon to accompany this context", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reviewDecision", - "description": "The current status of the pull request with respect to code review.", - "args": [], - "type": { - "kind": "ENUM", - "name": "PullRequestReviewDecision", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "HovercardContext", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "SamlDigestAlgorithm", - "description": "The possible digest algorithms used to sign SAML requests for an identity provider.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "SHA1", - "description": "SHA1", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SHA256", - "description": "SHA256", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SHA384", - "description": "SHA384", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SHA512", - "description": "SHA512", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "SamlSignatureAlgorithm", - "description": "The possible signature algorithms used to sign SAML requests for a Identity Provider.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "RSA_SHA1", - "description": "RSA-SHA1", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "RSA_SHA256", - "description": "RSA-SHA256", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "RSA_SHA384", - "description": "RSA-SHA384", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "RSA_SHA512", - "description": "RSA-SHA512", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SavedReply", - "description": "A Saved Reply is text a user can use to reply quickly.", - "fields": [ - { - "name": "body", - "description": "The body of the saved reply.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bodyHTML", - "description": "The saved reply body rendered to HTML.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "HTML", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "title", - "description": "The title of the saved reply.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user that saved this reply.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SavedReplyConnection", - "description": "The connection type for SavedReply.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SavedReplyEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SavedReply", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SavedReplyEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "SavedReply", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "SavedReplyOrder", - "description": "Ordering options for saved reply connections.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field to order saved replies by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "SavedReplyOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The ordering direction.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "SavedReplyOrderField", - "description": "Properties by which saved reply connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "UPDATED_AT", - "description": "Order saved reply by when they were updated.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "UNION", - "name": "SearchResultItem", - "description": "The results of a search.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "App", "ofType": null }, - { "kind": "OBJECT", "name": "Issue", "ofType": null }, - { "kind": "OBJECT", "name": "MarketplaceListing", "ofType": null }, - { "kind": "OBJECT", "name": "Organization", "ofType": null }, - { "kind": "OBJECT", "name": "PullRequest", "ofType": null }, - { "kind": "OBJECT", "name": "Repository", "ofType": null }, - { "kind": "OBJECT", "name": "User", "ofType": null } - ] - }, - { - "kind": "OBJECT", - "name": "SearchResultItemConnection", - "description": "A list of results that matched against a search query.", - "fields": [ - { - "name": "codeCount", - "description": "The number of pieces of code that matched the search query.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SearchResultItemEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "issueCount", - "description": "The number of issues that matched the search query.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "UNION", - "name": "SearchResultItem", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryCount", - "description": "The number of repositories that matched the search query.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userCount", - "description": "The number of users that matched the search query.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "wikiCount", - "description": "The number of wiki pages that matched the search query.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SearchResultItemEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "UNION", - "name": "SearchResultItem", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "textMatches", - "description": "Text matches on the result found.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TextMatch", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "SearchType", - "description": "Represents the individual results of a search.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "ISSUE", - "description": "Returns results matching issues in repositories.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "REPOSITORY", - "description": "Returns results matching repositories.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "USER", - "description": "Returns results matching users and organizations on GitHub.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SecurityAdvisory", - "description": "A GitHub Security Advisory", - "fields": [ - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": "This is a long plaintext description of the advisory", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ghsaId", - "description": "The GitHub Security Advisory ID", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "identifiers", - "description": "A list of identifiers for this advisory", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SecurityAdvisoryIdentifier", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "origin", - "description": "The organization that originated the advisory", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "permalink", - "description": "The permalink for the advisory", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "publishedAt", - "description": "When the advisory was published", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "references", - "description": "A list of references for this advisory", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SecurityAdvisoryReference", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "severity", - "description": "The severity of the advisory", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "SecurityAdvisorySeverity", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "summary", - "description": "A short plaintext summary of the advisory", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "When the advisory was last updated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "vulnerabilities", - "description": "Vulnerabilities associated with this Advisory", - "args": [ - { - "name": "orderBy", - "description": "Ordering options for the returned topics.", - "type": { - "kind": "INPUT_OBJECT", - "name": "SecurityVulnerabilityOrder", - "ofType": null - }, - "defaultValue": "{field: UPDATED_AT, direction: DESC}" - }, - { - "name": "ecosystem", - "description": "An ecosystem to filter vulnerabilities by.", - "type": { - "kind": "ENUM", - "name": "SecurityAdvisoryEcosystem", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "package", - "description": "A package name to filter vulnerabilities by.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "severities", - "description": "A list of severities to filter vulnerabilities by.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "SecurityAdvisorySeverity", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SecurityVulnerabilityConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "withdrawnAt", - "description": "When the advisory was withdrawn, if it has been withdrawn", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SecurityAdvisoryConnection", - "description": "The connection type for SecurityAdvisory.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SecurityAdvisoryEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SecurityAdvisory", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "SecurityAdvisoryEcosystem", - "description": "The possible ecosystems of a security vulnerability's package.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "RUBYGEMS", - "description": "Ruby gems hosted at RubyGems.org", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NPM", - "description": "JavaScript packages hosted at npmjs.com", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PIP", - "description": "Python packages hosted at PyPI.org", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "MAVEN", - "description": "Java artifacts hosted at the Maven central repository", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NUGET", - "description": ".NET packages hosted at the NuGet Gallery", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "COMPOSER", - "description": "PHP packages hosted at packagist.org", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SecurityAdvisoryEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "SecurityAdvisory", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SecurityAdvisoryIdentifier", - "description": "A GitHub Security Advisory Identifier", - "fields": [ - { - "name": "type", - "description": "The identifier type, e.g. GHSA, CVE", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "value", - "description": "The identifier", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "SecurityAdvisoryIdentifierFilter", - "description": "An advisory identifier to filter results on.", - "fields": null, - "inputFields": [ - { - "name": "type", - "description": "The identifier type.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "SecurityAdvisoryIdentifierType", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "value", - "description": "The identifier string. Supports exact or partial matching.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "SecurityAdvisoryIdentifierType", - "description": "Identifier formats available for advisories.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "CVE", - "description": "Common Vulnerabilities and Exposures Identifier.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "GHSA", - "description": "GitHub Security Advisory ID.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "SecurityAdvisoryOrder", - "description": "Ordering options for security advisory connections", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field to order security advisories by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "SecurityAdvisoryOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The ordering direction.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "SecurityAdvisoryOrderField", - "description": "Properties by which security advisory connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "PUBLISHED_AT", - "description": "Order advisories by publication time", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT", - "description": "Order advisories by update time", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SecurityAdvisoryPackage", - "description": "An individual package", - "fields": [ - { - "name": "ecosystem", - "description": "The ecosystem the package belongs to, e.g. RUBYGEMS, NPM", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "SecurityAdvisoryEcosystem", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The package name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SecurityAdvisoryPackageVersion", - "description": "An individual package version", - "fields": [ - { - "name": "identifier", - "description": "The package name or version", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SecurityAdvisoryReference", - "description": "A GitHub Security Advisory Reference", - "fields": [ - { - "name": "url", - "description": "A publicly accessible reference", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "SecurityAdvisorySeverity", - "description": "Severity of the vulnerability.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "LOW", - "description": "Low.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "MODERATE", - "description": "Moderate.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "HIGH", - "description": "High.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CRITICAL", - "description": "Critical.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SecurityVulnerability", - "description": "An individual vulnerability within an Advisory", - "fields": [ - { - "name": "advisory", - "description": "The Advisory associated with this Vulnerability", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SecurityAdvisory", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "firstPatchedVersion", - "description": "The first version containing a fix for the vulnerability", - "args": [], - "type": { - "kind": "OBJECT", - "name": "SecurityAdvisoryPackageVersion", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "package", - "description": "A description of the vulnerable package", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SecurityAdvisoryPackage", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "severity", - "description": "The severity of the vulnerability within this package", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "SecurityAdvisorySeverity", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "When the vulnerability was last updated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "vulnerableVersionRange", - "description": "A string that describes the vulnerable package versions.\nThis string follows a basic syntax with a few forms.\n+ `= 0.2.0` denotes a single vulnerable version.\n+ `<= 1.0.8` denotes a version range up to and including the specified version\n+ `< 0.1.11` denotes a version range up to, but excluding, the specified version\n+ `>= 4.3.0, < 4.3.5` denotes a version range with a known minimum and maximum version.\n+ `>= 0.0.1` denotes a version range with a known minimum, but no known maximum\n", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SecurityVulnerabilityConnection", - "description": "The connection type for SecurityVulnerability.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SecurityVulnerabilityEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SecurityVulnerability", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SecurityVulnerabilityEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "SecurityVulnerability", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "SecurityVulnerabilityOrder", - "description": "Ordering options for security vulnerability connections", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field to order security vulnerabilities by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "SecurityVulnerabilityOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The ordering direction.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "SecurityVulnerabilityOrderField", - "description": "Properties by which security vulnerability connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "UPDATED_AT", - "description": "Order vulnerability by update time", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "SetEnterpriseIdentityProviderInput", - "description": "Autogenerated input type of SetEnterpriseIdentityProvider", - "fields": null, - "inputFields": [ - { - "name": "enterpriseId", - "description": "The ID of the enterprise on which to set an identity provider.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "ssoUrl", - "description": "The URL endpoint for the identity provider's SAML SSO.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "issuer", - "description": "The Issuer Entity ID for the SAML identity provider", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "idpCertificate", - "description": "The x509 certificate used by the identity provider to sign assertions and responses.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "signatureMethod", - "description": "The signature algorithm used to sign SAML requests for the identity provider.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "SamlSignatureAlgorithm", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "digestMethod", - "description": "The digest algorithm used to sign SAML requests for the identity provider.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "SamlDigestAlgorithm", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SetEnterpriseIdentityProviderPayload", - "description": "Autogenerated return type of SetEnterpriseIdentityProvider", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "identityProvider", - "description": "The identity provider for the enterprise.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "EnterpriseIdentityProvider", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "SetOrganizationInteractionLimitInput", - "description": "Autogenerated input type of SetOrganizationInteractionLimit", - "fields": null, - "inputFields": [ - { - "name": "organizationId", - "description": "The ID of the organization to set a limit for.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "limit", - "description": "The limit to set.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "RepositoryInteractionLimit", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "expiry", - "description": "When this limit should expire.", - "type": { - "kind": "ENUM", - "name": "RepositoryInteractionLimitExpiry", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SetOrganizationInteractionLimitPayload", - "description": "Autogenerated return type of SetOrganizationInteractionLimit", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The organization that the interaction limit was set for.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "SetRepositoryInteractionLimitInput", - "description": "Autogenerated input type of SetRepositoryInteractionLimit", - "fields": null, - "inputFields": [ - { - "name": "repositoryId", - "description": "The ID of the repository to set a limit for.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "limit", - "description": "The limit to set.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "RepositoryInteractionLimit", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "expiry", - "description": "When this limit should expire.", - "type": { - "kind": "ENUM", - "name": "RepositoryInteractionLimitExpiry", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SetRepositoryInteractionLimitPayload", - "description": "Autogenerated return type of SetRepositoryInteractionLimit", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository that the interaction limit was set for.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "SetUserInteractionLimitInput", - "description": "Autogenerated input type of SetUserInteractionLimit", - "fields": null, - "inputFields": [ - { - "name": "userId", - "description": "The ID of the user to set a limit for.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "limit", - "description": "The limit to set.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "RepositoryInteractionLimit", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "expiry", - "description": "When this limit should expire.", - "type": { - "kind": "ENUM", - "name": "RepositoryInteractionLimitExpiry", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SetUserInteractionLimitPayload", - "description": "Autogenerated return type of SetUserInteractionLimit", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user that the interaction limit was set for.", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SmimeSignature", - "description": "Represents an S/MIME signature on a Commit or Tag.", - "fields": [ - { - "name": "email", - "description": "Email used to sign this object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isValid", - "description": "True if the signature is valid and verified by GitHub.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "payload", - "description": "Payload for GPG signing object. Raw ODB object without the signature header.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "signature", - "description": "ASCII-armored signature header from object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "signer", - "description": "GitHub user corresponding to the email signing this commit.", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "state", - "description": "The state of this signature. `VALID` if signature is valid and verified by GitHub, otherwise represents reason why signature is considered invalid.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "GitSignatureState", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "wasSignedByGitHub", - "description": "True if the signature was made with GitHub's signing key.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "GitSignature", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "UNION", - "name": "Sponsor", - "description": "Entities that can sponsor others via GitHub Sponsors", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Organization", "ofType": null }, - { "kind": "OBJECT", "name": "User", "ofType": null } - ] - }, - { - "kind": "INTERFACE", - "name": "Sponsorable", - "description": "Entities that can be sponsored through GitHub Sponsors", - "fields": [ - { - "name": "hasSponsorsListing", - "description": "True if this user/organization has a GitHub Sponsors listing.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isSponsoringViewer", - "description": "True if the viewer is sponsored by this user/organization.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "sponsorsListing", - "description": "The GitHub Sponsors listing for this user or organization.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "SponsorsListing", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "sponsorshipsAsMaintainer", - "description": "This object's sponsorships as the maintainer.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "includePrivate", - "description": "Whether or not to include private sponsorships in the result set", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - }, - { - "name": "orderBy", - "description": "Ordering options for sponsorships returned from this connection. If left blank, the sponsorships will be ordered based on relevancy to the viewer.", - "type": { - "kind": "INPUT_OBJECT", - "name": "SponsorshipOrder", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SponsorshipConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "sponsorshipsAsSponsor", - "description": "This object's sponsorships as the sponsor.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for sponsorships returned from this connection. If left blank, the sponsorships will be ordered based on relevancy to the viewer.", - "type": { - "kind": "INPUT_OBJECT", - "name": "SponsorshipOrder", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SponsorshipConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanSponsor", - "description": "Whether or not the viewer is able to sponsor this user/organization.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerIsSponsoring", - "description": "True if the viewer is sponsoring this user/organization.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Organization", "ofType": null }, - { "kind": "OBJECT", "name": "User", "ofType": null } - ] - }, - { - "kind": "OBJECT", - "name": "SponsorsListing", - "description": "A GitHub Sponsors listing.", - "fields": [ - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "fullDescription", - "description": "The full description of the listing.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "fullDescriptionHTML", - "description": "The full description of the listing rendered to HTML.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "HTML", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The listing's full name.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "shortDescription", - "description": "The short description of the listing.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "slug", - "description": "The short name of the listing.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "tiers", - "description": "The published tiers for this GitHub Sponsors listing.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for Sponsors tiers returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "SponsorsTierOrder", - "ofType": null - }, - "defaultValue": "{field: MONTHLY_PRICE_IN_CENTS, direction: ASC}" - } - ], - "type": { - "kind": "OBJECT", - "name": "SponsorsTierConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SponsorsTier", - "description": "A GitHub Sponsors tier associated with a GitHub Sponsors listing.", - "fields": [ - { - "name": "adminInfo", - "description": "SponsorsTier information only visible to users that can administer the associated Sponsors listing.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "SponsorsTierAdminInfo", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": "The description of the tier.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "descriptionHTML", - "description": "The tier description rendered to HTML", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "HTML", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "monthlyPriceInCents", - "description": "How much this tier costs per month in cents.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "monthlyPriceInDollars", - "description": "How much this tier costs per month in dollars.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The name of the tier.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "sponsorsListing", - "description": "The sponsors listing that this tier belongs to.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SponsorsListing", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SponsorsTierAdminInfo", - "description": "SponsorsTier information only visible to users that can administer the associated Sponsors listing.", - "fields": [ - { - "name": "sponsorships", - "description": "The sponsorships associated with this tier.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "includePrivate", - "description": "Whether or not to include private sponsorships in the result set", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - }, - { - "name": "orderBy", - "description": "Ordering options for sponsorships returned from this connection. If left blank, the sponsorships will be ordered based on relevancy to the viewer.", - "type": { - "kind": "INPUT_OBJECT", - "name": "SponsorshipOrder", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SponsorshipConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SponsorsTierConnection", - "description": "The connection type for SponsorsTier.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SponsorsTierEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SponsorsTier", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SponsorsTierEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "SponsorsTier", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "SponsorsTierOrder", - "description": "Ordering options for Sponsors tiers connections.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field to order tiers by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "SponsorsTierOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The ordering direction.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "SponsorsTierOrderField", - "description": "Properties by which Sponsors tiers connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "CREATED_AT", - "description": "Order tiers by creation time.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "MONTHLY_PRICE_IN_CENTS", - "description": "Order tiers by their monthly price in cents", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Sponsorship", - "description": "A sponsorship relationship between a sponsor and a maintainer", - "fields": [ - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "maintainer", - "description": "The entity that is being sponsored", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": true, - "deprecationReason": "`Sponsorship.maintainer` will be removed. Use `Sponsorship.sponsorable` instead. Removal on 2020-04-01 UTC." - }, - { - "name": "privacyLevel", - "description": "The privacy level for this sponsorship.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "SponsorshipPrivacy", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "sponsor", - "description": "The user that is sponsoring. Returns null if the sponsorship is private or if sponsor is not a user.", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": true, - "deprecationReason": "`Sponsorship.sponsor` will be removed. Use `Sponsorship.sponsorEntity` instead. Removal on 2020-10-01 UTC." - }, - { - "name": "sponsorEntity", - "description": "The user or organization that is sponsoring, if you have permission to view them.", - "args": [], - "type": { "kind": "UNION", "name": "Sponsor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "sponsorable", - "description": "The entity that is being sponsored", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INTERFACE", - "name": "Sponsorable", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "tier", - "description": "The associated sponsorship tier", - "args": [], - "type": { - "kind": "OBJECT", - "name": "SponsorsTier", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SponsorshipConnection", - "description": "The connection type for Sponsorship.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SponsorshipEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Sponsorship", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SponsorshipEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Sponsorship", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "SponsorshipOrder", - "description": "Ordering options for sponsorship connections.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field to order sponsorship by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "SponsorshipOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The ordering direction.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "SponsorshipOrderField", - "description": "Properties by which sponsorship connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "CREATED_AT", - "description": "Order sponsorship by creation time.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "SponsorshipPrivacy", - "description": "The privacy of a sponsorship", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "PUBLIC", - "description": "Public", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PRIVATE", - "description": "Private", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "StarOrder", - "description": "Ways in which star connections can be ordered.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field in which to order nodes by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "StarOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The direction in which to order nodes.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "StarOrderField", - "description": "Properties by which star connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "STARRED_AT", - "description": "Allows ordering a list of stars by when they were created.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "StargazerConnection", - "description": "The connection type for User.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "StargazerEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "StargazerEdge", - "description": "Represents a user that's starred a repository.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "starredAt", - "description": "Identifies when the item was starred.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "Starrable", - "description": "Things that can be starred.", - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "stargazerCount", - "description": "Returns a count of how many stargazers there are on this object\n", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "stargazers", - "description": "A list of users who have starred this starrable.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Order for connection", - "type": { - "kind": "INPUT_OBJECT", - "name": "StarOrder", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "StargazerConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerHasStarred", - "description": "Returns a boolean indicating whether the viewing user has starred this starrable.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Gist", "ofType": null }, - { "kind": "OBJECT", "name": "Repository", "ofType": null }, - { "kind": "OBJECT", "name": "Topic", "ofType": null } - ] - }, - { - "kind": "OBJECT", - "name": "StarredRepositoryConnection", - "description": "The connection type for Repository.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "StarredRepositoryEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isOverLimit", - "description": "Is the list of stars for this user truncated? This is true for users that have many stars.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "StarredRepositoryEdge", - "description": "Represents a starred repository.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "starredAt", - "description": "Identifies when the item was starred.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Status", - "description": "Represents a commit status.", - "fields": [ - { - "name": "combinedContexts", - "description": "A list of status contexts and check runs for this commit.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "StatusCheckRollupContextConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commit", - "description": "The commit this status is attached to.", - "args": [], - "type": { "kind": "OBJECT", "name": "Commit", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "context", - "description": "Looks up an individual status context by context name.", - "args": [ - { - "name": "name", - "description": "The context name.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "StatusContext", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "contexts", - "description": "The individual status contexts for this commit.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "StatusContext", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "state", - "description": "The combined commit status.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "StatusState", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "StatusCheckRollup", - "description": "Represents the rollup for both the check runs and status for a commit.", - "fields": [ - { - "name": "commit", - "description": "The commit the status and check runs are attached to.", - "args": [], - "type": { "kind": "OBJECT", "name": "Commit", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "contexts", - "description": "A list of status contexts and check runs for this commit.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "StatusCheckRollupContextConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "state", - "description": "The combined status for the commit.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "StatusState", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "UNION", - "name": "StatusCheckRollupContext", - "description": "Types that can be inside a StatusCheckRollup context.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "CheckRun", "ofType": null }, - { "kind": "OBJECT", "name": "StatusContext", "ofType": null } - ] - }, - { - "kind": "OBJECT", - "name": "StatusCheckRollupContextConnection", - "description": "The connection type for StatusCheckRollupContext.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "StatusCheckRollupContextEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "UNION", - "name": "StatusCheckRollupContext", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "StatusCheckRollupContextEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "UNION", - "name": "StatusCheckRollupContext", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "StatusContext", - "description": "Represents an individual commit status context", - "fields": [ - { - "name": "avatarUrl", - "description": "The avatar of the OAuth application or the user that created the status", - "args": [ - { - "name": "size", - "description": "The size of the resulting square image.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": "40" - } - ], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commit", - "description": "This commit this status context is attached to.", - "args": [], - "type": { "kind": "OBJECT", "name": "Commit", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "context", - "description": "The name of this status context.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "creator", - "description": "The actor who created this status context.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": "The description for this status context.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "state", - "description": "The state of this status context.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "StatusState", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "targetUrl", - "description": "The URL for this status context.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "StatusState", - "description": "The possible commit status states.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "EXPECTED", - "description": "Status is expected.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ERROR", - "description": "Status is errored.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FAILURE", - "description": "Status is failing.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PENDING", - "description": "Status is pending.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SUCCESS", - "description": "Status is successful.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "String", - "description": "Represents textual data as UTF-8 character sequences. This type is most often used by GraphQL to represent free-form human-readable text.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "SubmitPullRequestReviewInput", - "description": "Autogenerated input type of SubmitPullRequestReview", - "fields": null, - "inputFields": [ - { - "name": "pullRequestId", - "description": "The Pull Request ID to submit any pending reviews.", - "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, - "defaultValue": null - }, - { - "name": "pullRequestReviewId", - "description": "The Pull Request Review ID to submit.", - "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, - "defaultValue": null - }, - { - "name": "event", - "description": "The event to send to the Pull Request Review.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "PullRequestReviewEvent", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "body", - "description": "The text field to set on the Pull Request Review.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SubmitPullRequestReviewPayload", - "description": "Autogenerated return type of SubmitPullRequestReview", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequestReview", - "description": "The submitted pull request review.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequestReview", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Submodule", - "description": "A pointer to a repository at a specific revision embedded inside another repository.", - "fields": [ - { - "name": "branch", - "description": "The branch of the upstream submodule for tracking updates", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "gitUrl", - "description": "The git URL of the submodule repository", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The name of the submodule in .gitmodules", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "path", - "description": "The path in the superproject that this submodule is located in", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "subprojectCommitOid", - "description": "The commit revision of the subproject repository being tracked by the submodule", - "args": [], - "type": { - "kind": "SCALAR", - "name": "GitObjectID", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SubmoduleConnection", - "description": "The connection type for Submodule.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SubmoduleEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Submodule", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SubmoduleEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { "kind": "OBJECT", "name": "Submodule", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "Subscribable", - "description": "Entities that can be subscribed to for web and email notifications.", - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanSubscribe", - "description": "Check if the viewer is able to change their subscription status for the repository.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerSubscription", - "description": "Identifies if the viewer is watching, not watching, or ignoring the subscribable entity.", - "args": [], - "type": { - "kind": "ENUM", - "name": "SubscriptionState", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Commit", "ofType": null }, - { "kind": "OBJECT", "name": "Issue", "ofType": null }, - { "kind": "OBJECT", "name": "PullRequest", "ofType": null }, - { "kind": "OBJECT", "name": "Repository", "ofType": null }, - { "kind": "OBJECT", "name": "Team", "ofType": null }, - { "kind": "OBJECT", "name": "TeamDiscussion", "ofType": null } - ] - }, - { - "kind": "OBJECT", - "name": "SubscribedEvent", - "description": "Represents a 'subscribed' event on a given `Subscribable`.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "subscribable", - "description": "Object referenced by event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INTERFACE", - "name": "Subscribable", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "SubscriptionState", - "description": "The possible states of a subscription.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "UNSUBSCRIBED", - "description": "The User is only notified when participating or @mentioned.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SUBSCRIBED", - "description": "The User is notified of all conversations.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "IGNORED", - "description": "The User is never notified.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "SuggestedReviewer", - "description": "A suggestion to review a pull request based on a user's commit history and review comments.", - "fields": [ - { - "name": "isAuthor", - "description": "Is this suggestion based on past commits?", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isCommenter", - "description": "Is this suggestion based on past review comments?", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reviewer", - "description": "Identifies the user suggested to review the pull request.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Tag", - "description": "Represents a Git tag.", - "fields": [ - { - "name": "abbreviatedOid", - "description": "An abbreviated version of the Git object ID", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commitResourcePath", - "description": "The HTTP path for this Git object", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commitUrl", - "description": "The HTTP URL for this Git object", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "message", - "description": "The Git tag message.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The Git tag name.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "oid", - "description": "The Git object ID", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "GitObjectID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The Repository the Git object belongs to", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "tagger", - "description": "Details about the tag author.", - "args": [], - "type": { "kind": "OBJECT", "name": "GitActor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "target", - "description": "The Git object the tag points to.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INTERFACE", - "name": "GitObject", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "GitObject", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Team", - "description": "A team of users in an organization.", - "fields": [ - { - "name": "ancestors", - "description": "A list of teams that are ancestors of this team.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TeamConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "avatarUrl", - "description": "A URL pointing to the team's avatar.", - "args": [ - { - "name": "size", - "description": "The size in pixels of the resulting square image.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": "400" - } - ], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "childTeams", - "description": "List of child teams belonging to this team", - "args": [ - { - "name": "orderBy", - "description": "Order for connection", - "type": { - "kind": "INPUT_OBJECT", - "name": "TeamOrder", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "userLogins", - "description": "User logins to filter by", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "immediateOnly", - "description": "Whether to list immediate child teams or all descendant child teams.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "true" - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TeamConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "combinedSlug", - "description": "The slug corresponding to the organization and team.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": "The description of the team.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "discussion", - "description": "Find a team discussion by its number.", - "args": [ - { - "name": "number", - "description": "The sequence number of the discussion to find.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "TeamDiscussion", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "discussions", - "description": "A list of team discussions.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "isPinned", - "description": "If provided, filters discussions according to whether or not they are pinned.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Order for connection", - "type": { - "kind": "INPUT_OBJECT", - "name": "TeamDiscussionOrder", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TeamDiscussionConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "discussionsResourcePath", - "description": "The HTTP path for team discussions", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "discussionsUrl", - "description": "The HTTP URL for team discussions", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "editTeamResourcePath", - "description": "The HTTP path for editing this team", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "editTeamUrl", - "description": "The HTTP URL for editing this team", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "invitations", - "description": "A list of pending invitations for users to this team", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "OrganizationInvitationConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "memberStatuses", - "description": "Get the status messages members of this entity have set that are either public or visible only to the organization.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for user statuses returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "UserStatusOrder", - "ofType": null - }, - "defaultValue": "{field: UPDATED_AT, direction: DESC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserStatusConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "members", - "description": "A list of users who are members of this team.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "query", - "description": "The search string to look for.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "membership", - "description": "Filter by membership type", - "type": { - "kind": "ENUM", - "name": "TeamMembershipType", - "ofType": null - }, - "defaultValue": "ALL" - }, - { - "name": "role", - "description": "Filter by team member role", - "type": { - "kind": "ENUM", - "name": "TeamMemberRole", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Order for the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "TeamMemberOrder", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TeamMemberConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "membersResourcePath", - "description": "The HTTP path for the team' members", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "membersUrl", - "description": "The HTTP URL for the team' members", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The name of the team.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "newTeamResourcePath", - "description": "The HTTP path creating a new team", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "newTeamUrl", - "description": "The HTTP URL creating a new team", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The organization that owns this team.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "parentTeam", - "description": "The parent team of the team.", - "args": [], - "type": { "kind": "OBJECT", "name": "Team", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "privacy", - "description": "The level of privacy the team has.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "TeamPrivacy", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositories", - "description": "A list of repositories this team has access to.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "query", - "description": "The search string to look for.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Order for the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "TeamRepositoryOrder", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TeamRepositoryConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoriesResourcePath", - "description": "The HTTP path for this team's repositories", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoriesUrl", - "description": "The HTTP URL for this team's repositories", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this team", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "slug", - "description": "The slug corresponding to the team.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamsResourcePath", - "description": "The HTTP path for this team's teams", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamsUrl", - "description": "The HTTP URL for this team's teams", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this team", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanAdminister", - "description": "Team is adminable by the viewer.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanSubscribe", - "description": "Check if the viewer is able to change their subscription status for the repository.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerSubscription", - "description": "Identifies if the viewer is watching, not watching, or ignoring the subscribable entity.", - "args": [], - "type": { - "kind": "ENUM", - "name": "SubscriptionState", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "Subscribable", "ofType": null }, - { "kind": "INTERFACE", "name": "MemberStatusable", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "TeamAddMemberAuditEntry", - "description": "Audit log entry for a team.add_member event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isLdapMapped", - "description": "Whether the team was mapped to an LDAP Group.", - "args": [], - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "team", - "description": "The team associated with the action", - "args": [], - "type": { "kind": "OBJECT", "name": "Team", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamName", - "description": "The name of the team", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamResourcePath", - "description": "The HTTP path for this team", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamUrl", - "description": "The HTTP URL for this team", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "TeamAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "TeamAddRepositoryAuditEntry", - "description": "Audit log entry for a team.add_repository event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isLdapMapped", - "description": "Whether the team was mapped to an LDAP Group.", - "args": [], - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with the action", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryName", - "description": "The name of the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryResourcePath", - "description": "The HTTP path for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryUrl", - "description": "The HTTP URL for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "team", - "description": "The team associated with the action", - "args": [], - "type": { "kind": "OBJECT", "name": "Team", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamName", - "description": "The name of the team", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamResourcePath", - "description": "The HTTP path for this team", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamUrl", - "description": "The HTTP URL for this team", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "RepositoryAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "TeamAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "TeamAuditEntryData", - "description": "Metadata for an audit entry with action team.*", - "fields": [ - { - "name": "team", - "description": "The team associated with the action", - "args": [], - "type": { "kind": "OBJECT", "name": "Team", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamName", - "description": "The name of the team", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamResourcePath", - "description": "The HTTP path for this team", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamUrl", - "description": "The HTTP URL for this team", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { - "kind": "OBJECT", - "name": "OrgRestoreMemberMembershipTeamAuditEntryData", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "TeamAddMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "TeamAddRepositoryAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "TeamChangeParentTeamAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "TeamRemoveMemberAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "TeamRemoveRepositoryAuditEntry", - "ofType": null - } - ] - }, - { - "kind": "OBJECT", - "name": "TeamChangeParentTeamAuditEntry", - "description": "Audit log entry for a team.change_parent_team event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isLdapMapped", - "description": "Whether the team was mapped to an LDAP Group.", - "args": [], - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "parentTeam", - "description": "The new parent team.", - "args": [], - "type": { "kind": "OBJECT", "name": "Team", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "parentTeamName", - "description": "The name of the new parent team", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "parentTeamNameWas", - "description": "The name of the former parent team", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "parentTeamResourcePath", - "description": "The HTTP path for the parent team", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "parentTeamUrl", - "description": "The HTTP URL for the parent team", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "parentTeamWas", - "description": "The former parent team.", - "args": [], - "type": { "kind": "OBJECT", "name": "Team", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "parentTeamWasResourcePath", - "description": "The HTTP path for the previous parent team", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "parentTeamWasUrl", - "description": "The HTTP URL for the previous parent team", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "team", - "description": "The team associated with the action", - "args": [], - "type": { "kind": "OBJECT", "name": "Team", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamName", - "description": "The name of the team", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamResourcePath", - "description": "The HTTP path for this team", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamUrl", - "description": "The HTTP URL for this team", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "TeamAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "TeamConnection", - "description": "The connection type for Team.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TeamEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { "kind": "OBJECT", "name": "Team", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "TeamDiscussion", - "description": "A team discussion.", - "fields": [ - { - "name": "author", - "description": "The actor who authored the comment.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "authorAssociation", - "description": "Author's association with the discussion's team.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "CommentAuthorAssociation", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "body", - "description": "The body as Markdown.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bodyHTML", - "description": "The body rendered to HTML.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "HTML", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bodyText", - "description": "The body rendered to text.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bodyVersion", - "description": "Identifies the discussion body hash.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "comments", - "description": "A list of comments on this discussion.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Order for connection", - "type": { - "kind": "INPUT_OBJECT", - "name": "TeamDiscussionCommentOrder", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "fromComment", - "description": "When provided, filters the connection such that results begin with the comment with this number.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TeamDiscussionCommentConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commentsResourcePath", - "description": "The HTTP path for discussion comments", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commentsUrl", - "description": "The HTTP URL for discussion comments", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdViaEmail", - "description": "Check if this comment was created via an email reply.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "editor", - "description": "The actor who edited the comment.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "includesCreatedEdit", - "description": "Check if this comment was edited and includes an edit with the creation data", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isPinned", - "description": "Whether or not the discussion is pinned.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isPrivate", - "description": "Whether or not the discussion is only visible to team members and org admins.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lastEditedAt", - "description": "The moment the editor made the last edit", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "number", - "description": "Identifies the discussion within its team.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "publishedAt", - "description": "Identifies when the comment was published at.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reactionGroups", - "description": "A list of reactions grouped by content left on the subject.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReactionGroup", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reactions", - "description": "A list of Reactions left on the Issue.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "content", - "description": "Allows filtering Reactions by emoji.", - "type": { - "kind": "ENUM", - "name": "ReactionContent", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Allows specifying the order in which reactions are returned.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ReactionOrder", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReactionConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this discussion", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "team", - "description": "The team that defines the context of this discussion.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "Team", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "title", - "description": "The title of the discussion", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this discussion", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userContentEdits", - "description": "A list of edits to this content.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserContentEditConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanDelete", - "description": "Check if the current viewer can delete this object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanPin", - "description": "Whether or not the current viewer can pin this discussion.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanReact", - "description": "Can user react to this subject", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanSubscribe", - "description": "Check if the viewer is able to change their subscription status for the repository.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanUpdate", - "description": "Check if the current viewer can update this object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCannotUpdateReasons", - "description": "Reasons why the current viewer can not update this comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "CommentCannotUpdateReason", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerDidAuthor", - "description": "Did the viewer author this comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerSubscription", - "description": "Identifies if the viewer is watching, not watching, or ignoring the subscribable entity.", - "args": [], - "type": { - "kind": "ENUM", - "name": "SubscriptionState", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "Comment", "ofType": null }, - { "kind": "INTERFACE", "name": "Deletable", "ofType": null }, - { "kind": "INTERFACE", "name": "Reactable", "ofType": null }, - { "kind": "INTERFACE", "name": "Subscribable", "ofType": null }, - { - "kind": "INTERFACE", - "name": "UniformResourceLocatable", - "ofType": null - }, - { "kind": "INTERFACE", "name": "Updatable", "ofType": null }, - { "kind": "INTERFACE", "name": "UpdatableComment", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "TeamDiscussionComment", - "description": "A comment on a team discussion.", - "fields": [ - { - "name": "author", - "description": "The actor who authored the comment.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "authorAssociation", - "description": "Author's association with the comment's team.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "CommentAuthorAssociation", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "body", - "description": "The body as Markdown.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bodyHTML", - "description": "The body rendered to HTML.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "HTML", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bodyText", - "description": "The body rendered to text.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bodyVersion", - "description": "The current version of the body content.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdViaEmail", - "description": "Check if this comment was created via an email reply.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "discussion", - "description": "The discussion this comment is about.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TeamDiscussion", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "editor", - "description": "The actor who edited the comment.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "includesCreatedEdit", - "description": "Check if this comment was edited and includes an edit with the creation data", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lastEditedAt", - "description": "The moment the editor made the last edit", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "number", - "description": "Identifies the comment number.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "publishedAt", - "description": "Identifies when the comment was published at.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reactionGroups", - "description": "A list of reactions grouped by content left on the subject.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReactionGroup", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "reactions", - "description": "A list of Reactions left on the Issue.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "content", - "description": "Allows filtering Reactions by emoji.", - "type": { - "kind": "ENUM", - "name": "ReactionContent", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Allows specifying the order in which reactions are returned.", - "type": { - "kind": "INPUT_OBJECT", - "name": "ReactionOrder", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ReactionConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this comment", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this comment", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userContentEdits", - "description": "A list of edits to this content.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "UserContentEditConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanDelete", - "description": "Check if the current viewer can delete this object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanReact", - "description": "Can user react to this subject", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanUpdate", - "description": "Check if the current viewer can update this object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCannotUpdateReasons", - "description": "Reasons why the current viewer can not update this comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "CommentCannotUpdateReason", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerDidAuthor", - "description": "Did the viewer author this comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "Comment", "ofType": null }, - { "kind": "INTERFACE", "name": "Deletable", "ofType": null }, - { "kind": "INTERFACE", "name": "Reactable", "ofType": null }, - { - "kind": "INTERFACE", - "name": "UniformResourceLocatable", - "ofType": null - }, - { "kind": "INTERFACE", "name": "Updatable", "ofType": null }, - { "kind": "INTERFACE", "name": "UpdatableComment", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "TeamDiscussionCommentConnection", - "description": "The connection type for TeamDiscussionComment.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TeamDiscussionCommentEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TeamDiscussionComment", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "TeamDiscussionCommentEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "TeamDiscussionComment", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "TeamDiscussionCommentOrder", - "description": "Ways in which team discussion comment connections can be ordered.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field by which to order nodes.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "TeamDiscussionCommentOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The direction in which to order nodes.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "TeamDiscussionCommentOrderField", - "description": "Properties by which team discussion comment connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "NUMBER", - "description": "Allows sequential ordering of team discussion comments (which is equivalent to chronological ordering).", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "TeamDiscussionConnection", - "description": "The connection type for TeamDiscussion.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TeamDiscussionEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TeamDiscussion", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "TeamDiscussionEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "TeamDiscussion", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "TeamDiscussionOrder", - "description": "Ways in which team discussion connections can be ordered.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field by which to order nodes.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "TeamDiscussionOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The direction in which to order nodes.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "TeamDiscussionOrderField", - "description": "Properties by which team discussion connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "CREATED_AT", - "description": "Allows chronological ordering of team discussions.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "TeamEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { "kind": "OBJECT", "name": "Team", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "TeamMemberConnection", - "description": "The connection type for User.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TeamMemberEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "TeamMemberEdge", - "description": "Represents a user who is a member of a team.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "memberAccessResourcePath", - "description": "The HTTP path to the organization's member access page.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "memberAccessUrl", - "description": "The HTTP URL to the organization's member access page.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "role", - "description": "The role the member has on the team.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "TeamMemberRole", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "TeamMemberOrder", - "description": "Ordering options for team member connections", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field to order team members by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "TeamMemberOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The ordering direction.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "TeamMemberOrderField", - "description": "Properties by which team member connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "LOGIN", - "description": "Order team members by login", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CREATED_AT", - "description": "Order team members by creation time", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "TeamMemberRole", - "description": "The possible team member roles; either 'maintainer' or 'member'.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "MAINTAINER", - "description": "A team maintainer has permission to add and remove team members.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "MEMBER", - "description": "A team member has no administrative permissions on the team.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "TeamMembershipType", - "description": "Defines which types of team members are included in the returned list. Can be one of IMMEDIATE, CHILD_TEAM or ALL.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "IMMEDIATE", - "description": "Includes only immediate members of the team.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "CHILD_TEAM", - "description": "Includes only child team members for the team.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ALL", - "description": "Includes immediate and child team members for the team.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "TeamOrder", - "description": "Ways in which team connections can be ordered.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field in which to order nodes by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "TeamOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The direction in which to order nodes.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "TeamOrderField", - "description": "Properties by which team connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "NAME", - "description": "Allows ordering a list of teams by name.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "TeamPrivacy", - "description": "The possible team privacy values.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "SECRET", - "description": "A secret team can only be seen by its members.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "VISIBLE", - "description": "A visible team can be seen and @mentioned by every member of the organization.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "TeamRemoveMemberAuditEntry", - "description": "Audit log entry for a team.remove_member event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isLdapMapped", - "description": "Whether the team was mapped to an LDAP Group.", - "args": [], - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "team", - "description": "The team associated with the action", - "args": [], - "type": { "kind": "OBJECT", "name": "Team", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamName", - "description": "The name of the team", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamResourcePath", - "description": "The HTTP path for this team", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamUrl", - "description": "The HTTP URL for this team", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "TeamAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "TeamRemoveRepositoryAuditEntry", - "description": "Audit log entry for a team.remove_repository event.", - "fields": [ - { - "name": "action", - "description": "The action name", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actor", - "description": "The user who initiated the action", - "args": [], - "type": { - "kind": "UNION", - "name": "AuditEntryActor", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorIp", - "description": "The IP address of the actor", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLocation", - "description": "A readable representation of the actor's location", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ActorLocation", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorLogin", - "description": "The username of the user who initiated the action", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorResourcePath", - "description": "The HTTP path for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "actorUrl", - "description": "The HTTP URL for the actor.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "The time the action was initiated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "PreciseDateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isLdapMapped", - "description": "Whether the team was mapped to an LDAP Group.", - "args": [], - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "operationType", - "description": "The corresponding operation type for the action", - "args": [], - "type": { - "kind": "ENUM", - "name": "OperationType", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The Organization associated with the Audit Entry.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationName", - "description": "The name of the Organization.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationResourcePath", - "description": "The HTTP path for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationUrl", - "description": "The HTTP URL for the organization", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository associated with the action", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryName", - "description": "The name of the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryResourcePath", - "description": "The HTTP path for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoryUrl", - "description": "The HTTP URL for the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "team", - "description": "The team associated with the action", - "args": [], - "type": { "kind": "OBJECT", "name": "Team", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamName", - "description": "The name of the team", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamResourcePath", - "description": "The HTTP path for this team", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamUrl", - "description": "The HTTP URL for this team", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user affected by the action", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userLogin", - "description": "For actions involving two users, the actor is the initiator and the user is the affected user.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userResourcePath", - "description": "The HTTP path for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "userUrl", - "description": "The HTTP URL for the user.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "AuditEntry", "ofType": null }, - { - "kind": "INTERFACE", - "name": "OrganizationAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "RepositoryAuditEntryData", - "ofType": null - }, - { - "kind": "INTERFACE", - "name": "TeamAuditEntryData", - "ofType": null - } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "TeamRepositoryConnection", - "description": "The connection type for Repository.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TeamRepositoryEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "TeamRepositoryEdge", - "description": "Represents a team repository.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "permission", - "description": "The permission level the team has on the repository", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "RepositoryPermission", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "TeamRepositoryOrder", - "description": "Ordering options for team repository connections", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field to order repositories by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "TeamRepositoryOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The ordering direction.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "TeamRepositoryOrderField", - "description": "Properties by which team repository connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "CREATED_AT", - "description": "Order repositories by creation time", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UPDATED_AT", - "description": "Order repositories by update time", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PUSHED_AT", - "description": "Order repositories by push time", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NAME", - "description": "Order repositories by name", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PERMISSION", - "description": "Order repositories by permission", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "STARGAZERS", - "description": "Order repositories by number of stargazers", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "TeamRole", - "description": "The role of a user on a team.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "ADMIN", - "description": "User has admin rights on the team.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "MEMBER", - "description": "User is a member of the team.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "TextMatch", - "description": "A text match within a search result.", - "fields": [ - { - "name": "fragment", - "description": "The specific text fragment within the property matched on.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "highlights", - "description": "Highlights within the matched fragment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TextMatchHighlight", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "property", - "description": "The property matched on.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "TextMatchHighlight", - "description": "Represents a single highlight in a search result match.", - "fields": [ - { - "name": "beginIndice", - "description": "The indice in the fragment where the matched text begins.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "endIndice", - "description": "The indice in the fragment where the matched text ends.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "text", - "description": "The text matched.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Topic", - "description": "A topic aggregates entities that are related to a subject.", - "fields": [ - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The topic's name.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "relatedTopics", - "description": "A list of related topics, including aliases of this topic, sorted with the most relevant\nfirst. Returns up to 10 Topics.\n", - "args": [ - { - "name": "first", - "description": "How many topics to return.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": "3" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Topic", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "stargazerCount", - "description": "Returns a count of how many stargazers there are on this object\n", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "stargazers", - "description": "A list of users who have starred this starrable.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Order for connection", - "type": { - "kind": "INPUT_OBJECT", - "name": "StarOrder", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "StargazerConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerHasStarred", - "description": "Returns a boolean indicating whether the viewing user has starred this starrable.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "Starrable", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "TopicAuditEntryData", - "description": "Metadata for an audit entry with a topic.", - "fields": [ - { - "name": "topic", - "description": "The name of the topic added to the repository", - "args": [], - "type": { "kind": "OBJECT", "name": "Topic", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "topicName", - "description": "The name of the topic added to the repository", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { - "kind": "OBJECT", - "name": "RepoAddTopicAuditEntry", - "ofType": null - }, - { - "kind": "OBJECT", - "name": "RepoRemoveTopicAuditEntry", - "ofType": null - } - ] - }, - { - "kind": "ENUM", - "name": "TopicSuggestionDeclineReason", - "description": "Reason that the suggested topic is declined.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "NOT_RELEVANT", - "description": "The suggested topic is not relevant to the repository.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "TOO_SPECIFIC", - "description": "The suggested topic is too specific for the repository (e.g. #ruby-on-rails-version-4-2-1).", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PERSONAL_PREFERENCE", - "description": "The viewer does not like the suggested topic.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "TOO_GENERAL", - "description": "The suggested topic is too general for the repository.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "TransferIssueInput", - "description": "Autogenerated input type of TransferIssue", - "fields": null, - "inputFields": [ - { - "name": "issueId", - "description": "The Node ID of the issue to be transferred", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "repositoryId", - "description": "The Node ID of the repository the issue should be transferred to", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "TransferIssuePayload", - "description": "Autogenerated return type of TransferIssue", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "issue", - "description": "The issue that was transferred", - "args": [], - "type": { "kind": "OBJECT", "name": "Issue", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "TransferredEvent", - "description": "Represents a 'transferred' event on a given issue or pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "fromRepository", - "description": "The repository this came from", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "issue", - "description": "Identifies the issue associated with the event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "Issue", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "Tree", - "description": "Represents a Git tree.", - "fields": [ - { - "name": "abbreviatedOid", - "description": "An abbreviated version of the Git object ID", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commitResourcePath", - "description": "The HTTP path for this Git object", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commitUrl", - "description": "The HTTP URL for this Git object", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "entries", - "description": "A list of tree entries.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "TreeEntry", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "oid", - "description": "The Git object ID", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "GitObjectID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The Repository the Git object belongs to", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "GitObject", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "TreeEntry", - "description": "Represents a Git tree entry.", - "fields": [ - { - "name": "extension", - "description": "The extension of the file", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isGenerated", - "description": "Whether or not this tree entry is generated", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "mode", - "description": "Entry file mode.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "Entry file name.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "object", - "description": "Entry file object.", - "args": [], - "type": { - "kind": "INTERFACE", - "name": "GitObject", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "oid", - "description": "Entry file Git object ID.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "GitObjectID", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "path", - "description": "The full path of the file.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The Repository the tree entry belongs to", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "submodule", - "description": "If the TreeEntry is for a directory occupied by a submodule project, this returns the corresponding submodule", - "args": [], - "type": { "kind": "OBJECT", "name": "Submodule", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "type", - "description": "Entry file type.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "URI", - "description": "An RFC 3986, RFC 3987, and RFC 6570 (level 4) compliant URI string.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UnarchiveRepositoryInput", - "description": "Autogenerated input type of UnarchiveRepository", - "fields": null, - "inputFields": [ - { - "name": "repositoryId", - "description": "The ID of the repository to unarchive.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UnarchiveRepositoryPayload", - "description": "Autogenerated return type of UnarchiveRepository", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The repository that was unarchived.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UnassignedEvent", - "description": "Represents an 'unassigned' event on any assignable object.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "assignable", - "description": "Identifies the assignable associated with the event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INTERFACE", - "name": "Assignable", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "assignee", - "description": "Identifies the user or mannequin that was unassigned.", - "args": [], - "type": { "kind": "UNION", "name": "Assignee", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "Identifies the subject (user) who was unassigned.", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": true, - "deprecationReason": "Assignees can now be mannequins. Use the `assignee` field instead. Removal on 2020-01-01 UTC." - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UnfollowUserInput", - "description": "Autogenerated input type of UnfollowUser", - "fields": null, - "inputFields": [ - { - "name": "userId", - "description": "ID of the user to unfollow.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UnfollowUserPayload", - "description": "Autogenerated return type of UnfollowUser", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user that was unfollowed.", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "UniformResourceLocatable", - "description": "Represents a type that can be retrieved by a URL.", - "fields": [ - { - "name": "resourcePath", - "description": "The HTML path to this resource.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The URL to this resource.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Bot", "ofType": null }, - { "kind": "OBJECT", "name": "CheckRun", "ofType": null }, - { "kind": "OBJECT", "name": "ClosedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "Commit", "ofType": null }, - { "kind": "OBJECT", "name": "ConvertToDraftEvent", "ofType": null }, - { - "kind": "OBJECT", - "name": "CrossReferencedEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "Gist", "ofType": null }, - { "kind": "OBJECT", "name": "Issue", "ofType": null }, - { "kind": "OBJECT", "name": "Mannequin", "ofType": null }, - { "kind": "OBJECT", "name": "MergedEvent", "ofType": null }, - { "kind": "OBJECT", "name": "Milestone", "ofType": null }, - { "kind": "OBJECT", "name": "Organization", "ofType": null }, - { "kind": "OBJECT", "name": "PullRequest", "ofType": null }, - { "kind": "OBJECT", "name": "PullRequestCommit", "ofType": null }, - { "kind": "OBJECT", "name": "ReadyForReviewEvent", "ofType": null }, - { "kind": "OBJECT", "name": "Release", "ofType": null }, - { "kind": "OBJECT", "name": "Repository", "ofType": null }, - { "kind": "OBJECT", "name": "RepositoryTopic", "ofType": null }, - { - "kind": "OBJECT", - "name": "ReviewDismissedEvent", - "ofType": null - }, - { "kind": "OBJECT", "name": "TeamDiscussion", "ofType": null }, - { - "kind": "OBJECT", - "name": "TeamDiscussionComment", - "ofType": null - }, - { "kind": "OBJECT", "name": "User", "ofType": null } - ] - }, - { - "kind": "OBJECT", - "name": "UnknownSignature", - "description": "Represents an unknown signature on a Commit or Tag.", - "fields": [ - { - "name": "email", - "description": "Email used to sign this object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isValid", - "description": "True if the signature is valid and verified by GitHub.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "payload", - "description": "Payload for GPG signing object. Raw ODB object without the signature header.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "signature", - "description": "ASCII-armored signature header from object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "signer", - "description": "GitHub user corresponding to the email signing this commit.", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "state", - "description": "The state of this signature. `VALID` if signature is valid and verified by GitHub, otherwise represents reason why signature is considered invalid.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "GitSignatureState", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "wasSignedByGitHub", - "description": "True if the signature was made with GitHub's signing key.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "GitSignature", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UnlabeledEvent", - "description": "Represents an 'unlabeled' event on a given issue or pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "label", - "description": "Identifies the label associated with the 'unlabeled' event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "Label", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "labelable", - "description": "Identifies the `Labelable` associated with the event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INTERFACE", - "name": "Labelable", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UnlinkRepositoryFromProjectInput", - "description": "Autogenerated input type of UnlinkRepositoryFromProject", - "fields": null, - "inputFields": [ - { - "name": "projectId", - "description": "The ID of the Project linked to the Repository.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "repositoryId", - "description": "The ID of the Repository linked to the Project.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UnlinkRepositoryFromProjectPayload", - "description": "Autogenerated return type of UnlinkRepositoryFromProject", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "project", - "description": "The linked Project.", - "args": [], - "type": { "kind": "OBJECT", "name": "Project", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The linked Repository.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UnlockLockableInput", - "description": "Autogenerated input type of UnlockLockable", - "fields": null, - "inputFields": [ - { - "name": "lockableId", - "description": "ID of the item to be unlocked.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UnlockLockablePayload", - "description": "Autogenerated return type of UnlockLockable", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "unlockedRecord", - "description": "The item that was unlocked.", - "args": [], - "type": { - "kind": "INTERFACE", - "name": "Lockable", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UnlockedEvent", - "description": "Represents an 'unlocked' event on a given issue or pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "lockable", - "description": "Object that was unlocked.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INTERFACE", - "name": "Lockable", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UnmarkFileAsViewedInput", - "description": "Autogenerated input type of UnmarkFileAsViewed", - "fields": null, - "inputFields": [ - { - "name": "pullRequestId", - "description": "The Node ID of the pull request.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "path", - "description": "The path of the file to mark as unviewed", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UnmarkFileAsViewedPayload", - "description": "Autogenerated return type of UnmarkFileAsViewed", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "The updated pull request.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UnmarkIssueAsDuplicateInput", - "description": "Autogenerated input type of UnmarkIssueAsDuplicate", - "fields": null, - "inputFields": [ - { - "name": "duplicateId", - "description": "ID of the issue or pull request currently marked as a duplicate.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "canonicalId", - "description": "ID of the issue or pull request currently considered canonical/authoritative/original.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UnmarkIssueAsDuplicatePayload", - "description": "Autogenerated return type of UnmarkIssueAsDuplicate", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "duplicate", - "description": "The issue or pull request that was marked as a duplicate.", - "args": [], - "type": { - "kind": "UNION", - "name": "IssueOrPullRequest", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UnmarkedAsDuplicateEvent", - "description": "Represents an 'unmarked_as_duplicate' event on a given issue or pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "canonical", - "description": "The authoritative issue or pull request which has been duplicated by another.", - "args": [], - "type": { - "kind": "UNION", - "name": "IssueOrPullRequest", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "duplicate", - "description": "The issue or pull request which has been marked as a duplicate of another.", - "args": [], - "type": { - "kind": "UNION", - "name": "IssueOrPullRequest", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isCrossRepository", - "description": "Canonical and duplicate belong to different repositories.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UnminimizeCommentInput", - "description": "Autogenerated input type of UnminimizeComment", - "fields": null, - "inputFields": [ - { - "name": "subjectId", - "description": "The Node ID of the subject to modify.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UnminimizeCommentPayload", - "description": "Autogenerated return type of UnminimizeComment", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "unminimizedComment", - "description": "The comment that was unminimized.", - "args": [], - "type": { - "kind": "INTERFACE", - "name": "Minimizable", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UnpinnedEvent", - "description": "Represents an 'unpinned' event on a given issue or pull request.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "issue", - "description": "Identifies the issue associated with the event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "Issue", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UnresolveReviewThreadInput", - "description": "Autogenerated input type of UnresolveReviewThread", - "fields": null, - "inputFields": [ - { - "name": "threadId", - "description": "The ID of the thread to unresolve", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UnresolveReviewThreadPayload", - "description": "Autogenerated return type of UnresolveReviewThread", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "thread", - "description": "The thread to resolve.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequestReviewThread", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UnsubscribedEvent", - "description": "Represents an 'unsubscribed' event on a given `Subscribable`.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "subscribable", - "description": "Object referenced by event.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INTERFACE", - "name": "Subscribable", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INTERFACE", - "name": "Updatable", - "description": "Entities that can be updated.", - "fields": [ - { - "name": "viewerCanUpdate", - "description": "Check if the current viewer can update this object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "CommitComment", "ofType": null }, - { "kind": "OBJECT", "name": "GistComment", "ofType": null }, - { "kind": "OBJECT", "name": "Issue", "ofType": null }, - { "kind": "OBJECT", "name": "IssueComment", "ofType": null }, - { "kind": "OBJECT", "name": "Project", "ofType": null }, - { "kind": "OBJECT", "name": "PullRequest", "ofType": null }, - { "kind": "OBJECT", "name": "PullRequestReview", "ofType": null }, - { - "kind": "OBJECT", - "name": "PullRequestReviewComment", - "ofType": null - }, - { "kind": "OBJECT", "name": "TeamDiscussion", "ofType": null }, - { - "kind": "OBJECT", - "name": "TeamDiscussionComment", - "ofType": null - } - ] - }, - { - "kind": "INTERFACE", - "name": "UpdatableComment", - "description": "Comments that can be updated.", - "fields": [ - { - "name": "viewerCannotUpdateReasons", - "description": "Reasons why the current viewer can not update this comment.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "CommentCannotUpdateReason", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "CommitComment", "ofType": null }, - { "kind": "OBJECT", "name": "GistComment", "ofType": null }, - { "kind": "OBJECT", "name": "Issue", "ofType": null }, - { "kind": "OBJECT", "name": "IssueComment", "ofType": null }, - { "kind": "OBJECT", "name": "PullRequest", "ofType": null }, - { "kind": "OBJECT", "name": "PullRequestReview", "ofType": null }, - { - "kind": "OBJECT", - "name": "PullRequestReviewComment", - "ofType": null - }, - { "kind": "OBJECT", "name": "TeamDiscussion", "ofType": null }, - { - "kind": "OBJECT", - "name": "TeamDiscussionComment", - "ofType": null - } - ] - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateBranchProtectionRuleInput", - "description": "Autogenerated input type of UpdateBranchProtectionRule", - "fields": null, - "inputFields": [ - { - "name": "branchProtectionRuleId", - "description": "The global relay id of the branch protection rule to be updated.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "pattern", - "description": "The glob-like pattern used to determine matching branches.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "requiresApprovingReviews", - "description": "Are approving reviews required to update matching branches.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "requiredApprovingReviewCount", - "description": "Number of approving reviews required to update matching branches.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "requiresCommitSignatures", - "description": "Are commits required to be signed.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "requiresLinearHistory", - "description": "Are merge commits prohibited from being pushed to this branch.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "allowsForcePushes", - "description": "Are force pushes allowed on this branch.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "allowsDeletions", - "description": "Can this branch be deleted.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "isAdminEnforced", - "description": "Can admins overwrite branch protection.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "requiresStatusChecks", - "description": "Are status checks required to update matching branches.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "requiresStrictStatusChecks", - "description": "Are branches required to be up to date before merging.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "requiresCodeOwnerReviews", - "description": "Are reviews from code owners required to update matching branches.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "dismissesStaleReviews", - "description": "Will new commits pushed to matching branches dismiss pull request review approvals.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "restrictsReviewDismissals", - "description": "Is dismissal of pull request reviews restricted.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "reviewDismissalActorIds", - "description": "A list of User or Team IDs allowed to dismiss reviews on pull requests targeting matching branches.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - } - }, - "defaultValue": null - }, - { - "name": "restrictsPushes", - "description": "Is pushing to matching branches restricted.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "pushActorIds", - "description": "A list of User, Team or App IDs allowed to push to matching branches.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - } - }, - "defaultValue": null - }, - { - "name": "requiredStatusCheckContexts", - "description": "List of required status check contexts that must pass for commits to be accepted to matching branches.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateBranchProtectionRulePayload", - "description": "Autogenerated return type of UpdateBranchProtectionRule", - "fields": [ - { - "name": "branchProtectionRule", - "description": "The newly created BranchProtectionRule.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "BranchProtectionRule", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateCheckRunInput", - "description": "Autogenerated input type of UpdateCheckRun", - "fields": null, - "inputFields": [ - { - "name": "repositoryId", - "description": "The node ID of the repository.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "checkRunId", - "description": "The node of the check.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "name", - "description": "The name of the check.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "detailsUrl", - "description": "The URL of the integrator's site that has the full details of the check.", - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "defaultValue": null - }, - { - "name": "externalId", - "description": "A reference for the run on the integrator's system.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "status", - "description": "The current status.", - "type": { - "kind": "ENUM", - "name": "RequestableCheckStatusState", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "startedAt", - "description": "The time that the check run began.", - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "defaultValue": null - }, - { - "name": "conclusion", - "description": "The final conclusion of the check.", - "type": { - "kind": "ENUM", - "name": "CheckConclusionState", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "completedAt", - "description": "The time that the check run finished.", - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "defaultValue": null - }, - { - "name": "output", - "description": "Descriptive details about the run.", - "type": { - "kind": "INPUT_OBJECT", - "name": "CheckRunOutput", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "actions", - "description": "Possible further actions the integrator can perform, which a user may trigger.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CheckRunAction", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateCheckRunPayload", - "description": "Autogenerated return type of UpdateCheckRun", - "fields": [ - { - "name": "checkRun", - "description": "The updated check run.", - "args": [], - "type": { "kind": "OBJECT", "name": "CheckRun", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateCheckSuitePreferencesInput", - "description": "Autogenerated input type of UpdateCheckSuitePreferences", - "fields": null, - "inputFields": [ - { - "name": "repositoryId", - "description": "The Node ID of the repository.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "autoTriggerPreferences", - "description": "The check suite preferences to modify.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "CheckSuiteAutoTriggerPreference", - "ofType": null - } - } - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateCheckSuitePreferencesPayload", - "description": "Autogenerated return type of UpdateCheckSuitePreferences", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The updated repository.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseAdministratorRoleInput", - "description": "Autogenerated input type of UpdateEnterpriseAdministratorRole", - "fields": null, - "inputFields": [ - { - "name": "enterpriseId", - "description": "The ID of the Enterprise which the admin belongs to.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "login", - "description": "The login of a administrator whose role is being changed.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "role", - "description": "The new role for the Enterprise administrator.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseAdministratorRole", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateEnterpriseAdministratorRolePayload", - "description": "Autogenerated return type of UpdateEnterpriseAdministratorRole", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "message", - "description": "A message confirming the result of changing the administrator's role.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseAllowPrivateRepositoryForkingSettingInput", - "description": "Autogenerated input type of UpdateEnterpriseAllowPrivateRepositoryForkingSetting", - "fields": null, - "inputFields": [ - { - "name": "enterpriseId", - "description": "The ID of the enterprise on which to set the allow private repository forking setting.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "settingValue", - "description": "The value for the allow private repository forking setting on the enterprise.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseEnabledDisabledSettingValue", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateEnterpriseAllowPrivateRepositoryForkingSettingPayload", - "description": "Autogenerated return type of UpdateEnterpriseAllowPrivateRepositoryForkingSetting", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterprise", - "description": "The enterprise with the updated allow private repository forking setting.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Enterprise", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "message", - "description": "A message confirming the result of updating the allow private repository forking setting.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseDefaultRepositoryPermissionSettingInput", - "description": "Autogenerated input type of UpdateEnterpriseDefaultRepositoryPermissionSetting", - "fields": null, - "inputFields": [ - { - "name": "enterpriseId", - "description": "The ID of the enterprise on which to set the default repository permission setting.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "settingValue", - "description": "The value for the default repository permission setting on the enterprise.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseDefaultRepositoryPermissionSettingValue", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateEnterpriseDefaultRepositoryPermissionSettingPayload", - "description": "Autogenerated return type of UpdateEnterpriseDefaultRepositoryPermissionSetting", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterprise", - "description": "The enterprise with the updated default repository permission setting.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Enterprise", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "message", - "description": "A message confirming the result of updating the default repository permission setting.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseMembersCanChangeRepositoryVisibilitySettingInput", - "description": "Autogenerated input type of UpdateEnterpriseMembersCanChangeRepositoryVisibilitySetting", - "fields": null, - "inputFields": [ - { - "name": "enterpriseId", - "description": "The ID of the enterprise on which to set the members can change repository visibility setting.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "settingValue", - "description": "The value for the members can change repository visibility setting on the enterprise.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseEnabledDisabledSettingValue", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateEnterpriseMembersCanChangeRepositoryVisibilitySettingPayload", - "description": "Autogenerated return type of UpdateEnterpriseMembersCanChangeRepositoryVisibilitySetting", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterprise", - "description": "The enterprise with the updated members can change repository visibility setting.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Enterprise", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "message", - "description": "A message confirming the result of updating the members can change repository visibility setting.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseMembersCanCreateRepositoriesSettingInput", - "description": "Autogenerated input type of UpdateEnterpriseMembersCanCreateRepositoriesSetting", - "fields": null, - "inputFields": [ - { - "name": "enterpriseId", - "description": "The ID of the enterprise on which to set the members can create repositories setting.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "settingValue", - "description": "Value for the members can create repositories setting on the enterprise. This or the granular public/private/internal allowed fields (but not both) must be provided.", - "type": { - "kind": "ENUM", - "name": "EnterpriseMembersCanCreateRepositoriesSettingValue", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "membersCanCreateRepositoriesPolicyEnabled", - "description": "When false, allow member organizations to set their own repository creation member privileges.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "membersCanCreatePublicRepositories", - "description": "Allow members to create public repositories. Defaults to current value.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "membersCanCreatePrivateRepositories", - "description": "Allow members to create private repositories. Defaults to current value.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "membersCanCreateInternalRepositories", - "description": "Allow members to create internal repositories. Defaults to current value.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateEnterpriseMembersCanCreateRepositoriesSettingPayload", - "description": "Autogenerated return type of UpdateEnterpriseMembersCanCreateRepositoriesSetting", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterprise", - "description": "The enterprise with the updated members can create repositories setting.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Enterprise", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "message", - "description": "A message confirming the result of updating the members can create repositories setting.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseMembersCanDeleteIssuesSettingInput", - "description": "Autogenerated input type of UpdateEnterpriseMembersCanDeleteIssuesSetting", - "fields": null, - "inputFields": [ - { - "name": "enterpriseId", - "description": "The ID of the enterprise on which to set the members can delete issues setting.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "settingValue", - "description": "The value for the members can delete issues setting on the enterprise.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseEnabledDisabledSettingValue", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateEnterpriseMembersCanDeleteIssuesSettingPayload", - "description": "Autogenerated return type of UpdateEnterpriseMembersCanDeleteIssuesSetting", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterprise", - "description": "The enterprise with the updated members can delete issues setting.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Enterprise", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "message", - "description": "A message confirming the result of updating the members can delete issues setting.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseMembersCanDeleteRepositoriesSettingInput", - "description": "Autogenerated input type of UpdateEnterpriseMembersCanDeleteRepositoriesSetting", - "fields": null, - "inputFields": [ - { - "name": "enterpriseId", - "description": "The ID of the enterprise on which to set the members can delete repositories setting.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "settingValue", - "description": "The value for the members can delete repositories setting on the enterprise.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseEnabledDisabledSettingValue", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateEnterpriseMembersCanDeleteRepositoriesSettingPayload", - "description": "Autogenerated return type of UpdateEnterpriseMembersCanDeleteRepositoriesSetting", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterprise", - "description": "The enterprise with the updated members can delete repositories setting.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Enterprise", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "message", - "description": "A message confirming the result of updating the members can delete repositories setting.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseMembersCanInviteCollaboratorsSettingInput", - "description": "Autogenerated input type of UpdateEnterpriseMembersCanInviteCollaboratorsSetting", - "fields": null, - "inputFields": [ - { - "name": "enterpriseId", - "description": "The ID of the enterprise on which to set the members can invite collaborators setting.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "settingValue", - "description": "The value for the members can invite collaborators setting on the enterprise.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseEnabledDisabledSettingValue", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateEnterpriseMembersCanInviteCollaboratorsSettingPayload", - "description": "Autogenerated return type of UpdateEnterpriseMembersCanInviteCollaboratorsSetting", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterprise", - "description": "The enterprise with the updated members can invite collaborators setting.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Enterprise", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "message", - "description": "A message confirming the result of updating the members can invite collaborators setting.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseMembersCanMakePurchasesSettingInput", - "description": "Autogenerated input type of UpdateEnterpriseMembersCanMakePurchasesSetting", - "fields": null, - "inputFields": [ - { - "name": "enterpriseId", - "description": "The ID of the enterprise on which to set the members can make purchases setting.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "settingValue", - "description": "The value for the members can make purchases setting on the enterprise.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseMembersCanMakePurchasesSettingValue", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateEnterpriseMembersCanMakePurchasesSettingPayload", - "description": "Autogenerated return type of UpdateEnterpriseMembersCanMakePurchasesSetting", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterprise", - "description": "The enterprise with the updated members can make purchases setting.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Enterprise", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "message", - "description": "A message confirming the result of updating the members can make purchases setting.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseMembersCanUpdateProtectedBranchesSettingInput", - "description": "Autogenerated input type of UpdateEnterpriseMembersCanUpdateProtectedBranchesSetting", - "fields": null, - "inputFields": [ - { - "name": "enterpriseId", - "description": "The ID of the enterprise on which to set the members can update protected branches setting.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "settingValue", - "description": "The value for the members can update protected branches setting on the enterprise.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseEnabledDisabledSettingValue", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateEnterpriseMembersCanUpdateProtectedBranchesSettingPayload", - "description": "Autogenerated return type of UpdateEnterpriseMembersCanUpdateProtectedBranchesSetting", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterprise", - "description": "The enterprise with the updated members can update protected branches setting.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Enterprise", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "message", - "description": "A message confirming the result of updating the members can update protected branches setting.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseMembersCanViewDependencyInsightsSettingInput", - "description": "Autogenerated input type of UpdateEnterpriseMembersCanViewDependencyInsightsSetting", - "fields": null, - "inputFields": [ - { - "name": "enterpriseId", - "description": "The ID of the enterprise on which to set the members can view dependency insights setting.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "settingValue", - "description": "The value for the members can view dependency insights setting on the enterprise.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseEnabledDisabledSettingValue", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateEnterpriseMembersCanViewDependencyInsightsSettingPayload", - "description": "Autogenerated return type of UpdateEnterpriseMembersCanViewDependencyInsightsSetting", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterprise", - "description": "The enterprise with the updated members can view dependency insights setting.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Enterprise", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "message", - "description": "A message confirming the result of updating the members can view dependency insights setting.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseOrganizationProjectsSettingInput", - "description": "Autogenerated input type of UpdateEnterpriseOrganizationProjectsSetting", - "fields": null, - "inputFields": [ - { - "name": "enterpriseId", - "description": "The ID of the enterprise on which to set the organization projects setting.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "settingValue", - "description": "The value for the organization projects setting on the enterprise.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseEnabledDisabledSettingValue", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateEnterpriseOrganizationProjectsSettingPayload", - "description": "Autogenerated return type of UpdateEnterpriseOrganizationProjectsSetting", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterprise", - "description": "The enterprise with the updated organization projects setting.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Enterprise", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "message", - "description": "A message confirming the result of updating the organization projects setting.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseProfileInput", - "description": "Autogenerated input type of UpdateEnterpriseProfile", - "fields": null, - "inputFields": [ - { - "name": "enterpriseId", - "description": "The Enterprise ID to update.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "name", - "description": "The name of the enterprise.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "description", - "description": "The description of the enterprise.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "websiteUrl", - "description": "The URL of the enterprise's website.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "location", - "description": "The location of the enterprise.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateEnterpriseProfilePayload", - "description": "Autogenerated return type of UpdateEnterpriseProfile", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterprise", - "description": "The updated enterprise.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Enterprise", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseRepositoryProjectsSettingInput", - "description": "Autogenerated input type of UpdateEnterpriseRepositoryProjectsSetting", - "fields": null, - "inputFields": [ - { - "name": "enterpriseId", - "description": "The ID of the enterprise on which to set the repository projects setting.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "settingValue", - "description": "The value for the repository projects setting on the enterprise.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseEnabledDisabledSettingValue", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateEnterpriseRepositoryProjectsSettingPayload", - "description": "Autogenerated return type of UpdateEnterpriseRepositoryProjectsSetting", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterprise", - "description": "The enterprise with the updated repository projects setting.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Enterprise", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "message", - "description": "A message confirming the result of updating the repository projects setting.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseTeamDiscussionsSettingInput", - "description": "Autogenerated input type of UpdateEnterpriseTeamDiscussionsSetting", - "fields": null, - "inputFields": [ - { - "name": "enterpriseId", - "description": "The ID of the enterprise on which to set the team discussions setting.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "settingValue", - "description": "The value for the team discussions setting on the enterprise.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseEnabledDisabledSettingValue", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateEnterpriseTeamDiscussionsSettingPayload", - "description": "Autogenerated return type of UpdateEnterpriseTeamDiscussionsSetting", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterprise", - "description": "The enterprise with the updated team discussions setting.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Enterprise", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "message", - "description": "A message confirming the result of updating the team discussions setting.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateEnterpriseTwoFactorAuthenticationRequiredSettingInput", - "description": "Autogenerated input type of UpdateEnterpriseTwoFactorAuthenticationRequiredSetting", - "fields": null, - "inputFields": [ - { - "name": "enterpriseId", - "description": "The ID of the enterprise on which to set the two factor authentication required setting.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "settingValue", - "description": "The value for the two factor authentication required setting on the enterprise.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "EnterpriseEnabledSettingValue", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateEnterpriseTwoFactorAuthenticationRequiredSettingPayload", - "description": "Autogenerated return type of UpdateEnterpriseTwoFactorAuthenticationRequiredSetting", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enterprise", - "description": "The enterprise with the updated two factor authentication required setting.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Enterprise", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "message", - "description": "A message confirming the result of updating the two factor authentication required setting.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateIpAllowListEnabledSettingInput", - "description": "Autogenerated input type of UpdateIpAllowListEnabledSetting", - "fields": null, - "inputFields": [ - { - "name": "ownerId", - "description": "The ID of the owner on which to set the IP allow list enabled setting.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "settingValue", - "description": "The value for the IP allow list enabled setting.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "IpAllowListEnabledSettingValue", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateIpAllowListEnabledSettingPayload", - "description": "Autogenerated return type of UpdateIpAllowListEnabledSetting", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "owner", - "description": "The IP allow list owner on which the setting was updated.", - "args": [], - "type": { - "kind": "UNION", - "name": "IpAllowListOwner", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateIpAllowListEntryInput", - "description": "Autogenerated input type of UpdateIpAllowListEntry", - "fields": null, - "inputFields": [ - { - "name": "ipAllowListEntryId", - "description": "The ID of the IP allow list entry to update.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "allowListValue", - "description": "An IP address or range of addresses in CIDR notation.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "name", - "description": "An optional name for the IP allow list entry.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "isActive", - "description": "Whether the IP allow list entry is active when an IP allow list is enabled.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateIpAllowListEntryPayload", - "description": "Autogenerated return type of UpdateIpAllowListEntry", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ipAllowListEntry", - "description": "The IP allow list entry that was updated.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "IpAllowListEntry", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateIssueCommentInput", - "description": "Autogenerated input type of UpdateIssueComment", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "The ID of the IssueComment to modify.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "body", - "description": "The updated text of the comment.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateIssueCommentPayload", - "description": "Autogenerated return type of UpdateIssueComment", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "issueComment", - "description": "The updated comment.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "IssueComment", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateIssueInput", - "description": "Autogenerated input type of UpdateIssue", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "The ID of the Issue to modify.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "title", - "description": "The title for the issue.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "body", - "description": "The body for the issue description.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "assigneeIds", - "description": "An array of Node IDs of users for this issue.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - } - }, - "defaultValue": null - }, - { - "name": "milestoneId", - "description": "The Node ID of the milestone for this issue.", - "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, - "defaultValue": null - }, - { - "name": "labelIds", - "description": "An array of Node IDs of labels for this issue.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - } - }, - "defaultValue": null - }, - { - "name": "state", - "description": "The desired issue state.", - "type": { "kind": "ENUM", "name": "IssueState", "ofType": null }, - "defaultValue": null - }, - { - "name": "projectIds", - "description": "An array of Node IDs for projects associated with this issue.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateIssuePayload", - "description": "Autogenerated return type of UpdateIssue", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "issue", - "description": "The issue.", - "args": [], - "type": { "kind": "OBJECT", "name": "Issue", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateProjectCardInput", - "description": "Autogenerated input type of UpdateProjectCard", - "fields": null, - "inputFields": [ - { - "name": "projectCardId", - "description": "The ProjectCard ID to update.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "isArchived", - "description": "Whether or not the ProjectCard should be archived", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "note", - "description": "The note of ProjectCard.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateProjectCardPayload", - "description": "Autogenerated return type of UpdateProjectCard", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "projectCard", - "description": "The updated ProjectCard.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ProjectCard", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateProjectColumnInput", - "description": "Autogenerated input type of UpdateProjectColumn", - "fields": null, - "inputFields": [ - { - "name": "projectColumnId", - "description": "The ProjectColumn ID to update.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "name", - "description": "The name of project column.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateProjectColumnPayload", - "description": "Autogenerated return type of UpdateProjectColumn", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "projectColumn", - "description": "The updated project column.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "ProjectColumn", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateProjectInput", - "description": "Autogenerated input type of UpdateProject", - "fields": null, - "inputFields": [ - { - "name": "projectId", - "description": "The Project ID to update.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "name", - "description": "The name of project.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "body", - "description": "The description of project.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "state", - "description": "Whether the project is open or closed.", - "type": { - "kind": "ENUM", - "name": "ProjectState", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "public", - "description": "Whether the project is public or not.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateProjectPayload", - "description": "Autogenerated return type of UpdateProject", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "project", - "description": "The updated project.", - "args": [], - "type": { "kind": "OBJECT", "name": "Project", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdatePullRequestInput", - "description": "Autogenerated input type of UpdatePullRequest", - "fields": null, - "inputFields": [ - { - "name": "pullRequestId", - "description": "The Node ID of the pull request.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "baseRefName", - "description": "The name of the branch you want your changes pulled into. This should be an existing branch\non the current repository.\n", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "title", - "description": "The title of the pull request.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "body", - "description": "The contents of the pull request.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "state", - "description": "The target state of the pull request.", - "type": { - "kind": "ENUM", - "name": "PullRequestUpdateState", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "maintainerCanModify", - "description": "Indicates whether maintainers can modify the pull request.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "assigneeIds", - "description": "An array of Node IDs of users for this pull request.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - } - }, - "defaultValue": null - }, - { - "name": "milestoneId", - "description": "The Node ID of the milestone for this pull request.", - "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, - "defaultValue": null - }, - { - "name": "labelIds", - "description": "An array of Node IDs of labels for this pull request.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - } - }, - "defaultValue": null - }, - { - "name": "projectIds", - "description": "An array of Node IDs for projects associated with this pull request.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdatePullRequestPayload", - "description": "Autogenerated return type of UpdatePullRequest", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequest", - "description": "The updated pull request.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequest", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdatePullRequestReviewCommentInput", - "description": "Autogenerated input type of UpdatePullRequestReviewComment", - "fields": null, - "inputFields": [ - { - "name": "pullRequestReviewCommentId", - "description": "The Node ID of the comment to modify.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "body", - "description": "The text of the comment.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdatePullRequestReviewCommentPayload", - "description": "Autogenerated return type of UpdatePullRequestReviewComment", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequestReviewComment", - "description": "The updated comment.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequestReviewComment", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdatePullRequestReviewInput", - "description": "Autogenerated input type of UpdatePullRequestReview", - "fields": null, - "inputFields": [ - { - "name": "pullRequestReviewId", - "description": "The Node ID of the pull request review to modify.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "body", - "description": "The contents of the pull request review body.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdatePullRequestReviewPayload", - "description": "Autogenerated return type of UpdatePullRequestReview", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequestReview", - "description": "The updated pull request review.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "PullRequestReview", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateRefInput", - "description": "Autogenerated input type of UpdateRef", - "fields": null, - "inputFields": [ - { - "name": "refId", - "description": "The Node ID of the Ref to be updated.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "oid", - "description": "The GitObjectID that the Ref shall be updated to target.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "GitObjectID", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "force", - "description": "Permit updates of branch Refs that are not fast-forwards?", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": "false" - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateRefPayload", - "description": "Autogenerated return type of UpdateRef", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ref", - "description": "The updated Ref.", - "args": [], - "type": { "kind": "OBJECT", "name": "Ref", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateRepositoryInput", - "description": "Autogenerated input type of UpdateRepository", - "fields": null, - "inputFields": [ - { - "name": "repositoryId", - "description": "The ID of the repository to update.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "name", - "description": "The new name of the repository.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "description", - "description": "A new description for the repository. Pass an empty string to erase the existing description.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "template", - "description": "Whether this repository should be marked as a template such that anyone who can access it can create new repositories with the same files and directory structure.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "homepageUrl", - "description": "The URL for a web page about this repository. Pass an empty string to erase the existing URL.", - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "defaultValue": null - }, - { - "name": "hasWikiEnabled", - "description": "Indicates if the repository should have the wiki feature enabled.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "hasIssuesEnabled", - "description": "Indicates if the repository should have the issues feature enabled.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "hasProjectsEnabled", - "description": "Indicates if the repository should have the project boards feature enabled.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateRepositoryPayload", - "description": "Autogenerated return type of UpdateRepository", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The updated repository.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateSubscriptionInput", - "description": "Autogenerated input type of UpdateSubscription", - "fields": null, - "inputFields": [ - { - "name": "subscribableId", - "description": "The Node ID of the subscribable object to modify.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "state", - "description": "The new state of the subscription.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "SubscriptionState", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateSubscriptionPayload", - "description": "Autogenerated return type of UpdateSubscription", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "subscribable", - "description": "The input subscribable entity.", - "args": [], - "type": { - "kind": "INTERFACE", - "name": "Subscribable", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateTeamDiscussionCommentInput", - "description": "Autogenerated input type of UpdateTeamDiscussionComment", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "The ID of the comment to modify.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "body", - "description": "The updated text of the comment.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "bodyVersion", - "description": "The current version of the body content.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateTeamDiscussionCommentPayload", - "description": "Autogenerated return type of UpdateTeamDiscussionComment", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamDiscussionComment", - "description": "The updated comment.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "TeamDiscussionComment", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateTeamDiscussionInput", - "description": "Autogenerated input type of UpdateTeamDiscussion", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "The Node ID of the discussion to modify.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "title", - "description": "The updated title of the discussion.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "body", - "description": "The updated text of the discussion.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "bodyVersion", - "description": "The current version of the body content. If provided, this update operation will be rejected if the given version does not match the latest version on the server.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - }, - { - "name": "pinned", - "description": "If provided, sets the pinned state of the updated discussion.", - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateTeamDiscussionPayload", - "description": "Autogenerated return type of UpdateTeamDiscussion", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "teamDiscussion", - "description": "The updated discussion.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "TeamDiscussion", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UpdateTopicsInput", - "description": "Autogenerated input type of UpdateTopics", - "fields": null, - "inputFields": [ - { - "name": "repositoryId", - "description": "The Node ID of the repository.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "topicNames", - "description": "An array of topic names.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UpdateTopicsPayload", - "description": "Autogenerated return type of UpdateTopics", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "invalidTopicNames", - "description": "Names of the provided topics that are not valid.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "The updated repository.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "User", - "description": "A user is an individual's account on GitHub that owns repositories and can make new content.", - "fields": [ - { - "name": "anyPinnableItems", - "description": "Determine if this repository owner has any items that can be pinned to their profile.", - "args": [ - { - "name": "type", - "description": "Filter to only a particular kind of pinnable item.", - "type": { - "kind": "ENUM", - "name": "PinnableItemType", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "avatarUrl", - "description": "A URL pointing to the user's public avatar.", - "args": [ - { - "name": "size", - "description": "The size of the resulting square image.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bio", - "description": "The user's public profile bio.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "bioHTML", - "description": "The user's public profile bio as HTML.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "HTML", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "commitComments", - "description": "A list of commit comments made by this user.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "CommitCommentConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "company", - "description": "The user's public profile company.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "companyHTML", - "description": "The user's public profile company as HTML.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "HTML", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "contributionsCollection", - "description": "The collection of contributions this user has made to different repositories.", - "args": [ - { - "name": "organizationID", - "description": "The ID of the organization used to filter contributions.", - "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, - "defaultValue": null - }, - { - "name": "from", - "description": "Only contributions made at this time or later will be counted. If omitted, defaults to a year ago.", - "type": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "to", - "description": "Only contributions made before and up to and including this time will be counted. If omitted, defaults to the current time.", - "type": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ContributionsCollection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "email", - "description": "The user's publicly visible profile email.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "followers", - "description": "A list of users the given user is followed by.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "FollowerConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "following", - "description": "A list of users the given user is following.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "FollowingConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "gist", - "description": "Find gist by repo name.", - "args": [ - { - "name": "name", - "description": "The gist name to find.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { "kind": "OBJECT", "name": "Gist", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "gistComments", - "description": "A list of gist comments made by this user.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GistCommentConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "gists", - "description": "A list of the Gists the user has created.", - "args": [ - { - "name": "privacy", - "description": "Filters Gists according to privacy.", - "type": { - "kind": "ENUM", - "name": "GistPrivacy", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for gists returned from the connection", - "type": { - "kind": "INPUT_OBJECT", - "name": "GistOrder", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "GistConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hasSponsorsListing", - "description": "True if this user/organization has a GitHub Sponsors listing.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hovercard", - "description": "The hovercard information for this user in a given context", - "args": [ - { - "name": "primarySubjectId", - "description": "The ID of the subject to get the hovercard in the context of", - "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "Hovercard", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "interactionAbility", - "description": "The interaction ability settings for this user.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "RepositoryInteractionAbility", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isBountyHunter", - "description": "Whether or not this user is a participant in the GitHub Security Bug Bounty.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isCampusExpert", - "description": "Whether or not this user is a participant in the GitHub Campus Experts Program.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isDeveloperProgramMember", - "description": "Whether or not this user is a GitHub Developer Program member.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isEmployee", - "description": "Whether or not this user is a GitHub employee.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isHireable", - "description": "Whether or not the user has marked themselves as for hire.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isSiteAdmin", - "description": "Whether or not this user is a site administrator.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isSponsoringViewer", - "description": "True if the viewer is sponsored by this user/organization.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isViewer", - "description": "Whether or not this user is the viewing user.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "issueComments", - "description": "A list of issue comments made by this user.", - "args": [ - { - "name": "orderBy", - "description": "Ordering options for issue comments returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IssueCommentOrder", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "IssueCommentConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "issues", - "description": "A list of issues associated with this user.", - "args": [ - { - "name": "orderBy", - "description": "Ordering options for issues returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IssueOrder", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "labels", - "description": "A list of label names to filter the pull requests by.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "states", - "description": "A list of states to filter the issues by.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "IssueState", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "filterBy", - "description": "Filtering options for issues returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IssueFilters", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "IssueConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "itemShowcase", - "description": "Showcases a selection of repositories and gists that the profile owner has either curated or that have been selected automatically based on popularity.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ProfileItemShowcase", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "location", - "description": "The user's public profile location.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "login", - "description": "The username used to login.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": "The user's public profile name.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "Find an organization by its login that the user belongs to.", - "args": [ - { - "name": "login", - "description": "The login of the organization to find.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizationVerifiedDomainEmails", - "description": "Verified email addresses that match verified domains for a specified organization the user is a member of.", - "args": [ - { - "name": "login", - "description": "The login of the organization to match verified domains from.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organizations", - "description": "A list of organizations the user belongs to.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "OrganizationConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "packages", - "description": "A list of packages under the owner.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "names", - "description": "Find packages by their names.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "repositoryId", - "description": "Find packages in a repository by ID.", - "type": { "kind": "SCALAR", "name": "ID", "ofType": null }, - "defaultValue": null - }, - { - "name": "packageType", - "description": "Filter registry package by type.", - "type": { - "kind": "ENUM", - "name": "PackageType", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering of the returned packages.", - "type": { - "kind": "INPUT_OBJECT", - "name": "PackageOrder", - "ofType": null - }, - "defaultValue": "{field: CREATED_AT, direction: DESC}" - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PackageConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pinnableItems", - "description": "A list of repositories and gists this profile owner can pin to their profile.", - "args": [ - { - "name": "types", - "description": "Filter the types of pinnable items that are returned.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "PinnableItemType", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PinnableItemConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pinnedItems", - "description": "A list of repositories and gists this profile owner has pinned to their profile", - "args": [ - { - "name": "types", - "description": "Filter the types of pinned items that are returned.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "PinnableItemType", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PinnableItemConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pinnedItemsRemaining", - "description": "Returns how many more items this profile owner can pin to their profile.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "project", - "description": "Find project by number.", - "args": [ - { - "name": "number", - "description": "The project number to find.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Int", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { "kind": "OBJECT", "name": "Project", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "projects", - "description": "A list of projects under the owner.", - "args": [ - { - "name": "orderBy", - "description": "Ordering options for projects returned from the connection", - "type": { - "kind": "INPUT_OBJECT", - "name": "ProjectOrder", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "search", - "description": "Query to search projects by, currently only searching by name.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "states", - "description": "A list of states to filter the projects by.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "ProjectState", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "ProjectConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "projectsResourcePath", - "description": "The HTTP path listing user's projects", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "projectsUrl", - "description": "The HTTP URL listing user's projects", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "publicKeys", - "description": "A list of public keys associated with this user.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PublicKeyConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pullRequests", - "description": "A list of pull requests associated with this user.", - "args": [ - { - "name": "states", - "description": "A list of states to filter the pull requests by.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "PullRequestState", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "labels", - "description": "A list of label names to filter the pull requests by.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - } - }, - "defaultValue": null - }, - { - "name": "headRefName", - "description": "The head ref name to filter the pull requests by.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "baseRefName", - "description": "The base ref name to filter the pull requests by.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for pull requests returned from the connection.", - "type": { - "kind": "INPUT_OBJECT", - "name": "IssueOrder", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PullRequestConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositories", - "description": "A list of repositories that the user owns.", - "args": [ - { - "name": "privacy", - "description": "If non-null, filters repositories according to privacy", - "type": { - "kind": "ENUM", - "name": "RepositoryPrivacy", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for repositories returned from the connection", - "type": { - "kind": "INPUT_OBJECT", - "name": "RepositoryOrder", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "affiliations", - "description": "Array of viewer's affiliation options for repositories returned from the connection. For example, OWNER will include only repositories that the current viewer owns.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "RepositoryAffiliation", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "ownerAffiliations", - "description": "Array of owner's affiliation options for repositories returned from the connection. For example, OWNER will include only repositories that the organization or user being viewed owns.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "RepositoryAffiliation", - "ofType": null - } - }, - "defaultValue": "[OWNER, COLLABORATOR]" - }, - { - "name": "isLocked", - "description": "If non-null, filters repositories according to whether they have been locked", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "isFork", - "description": "If non-null, filters repositories according to whether they are forks of another repository", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "RepositoryConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repositoriesContributedTo", - "description": "A list of repositories that the user recently contributed to.", - "args": [ - { - "name": "privacy", - "description": "If non-null, filters repositories according to privacy", - "type": { - "kind": "ENUM", - "name": "RepositoryPrivacy", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for repositories returned from the connection", - "type": { - "kind": "INPUT_OBJECT", - "name": "RepositoryOrder", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "isLocked", - "description": "If non-null, filters repositories according to whether they have been locked", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "includeUserRepositories", - "description": "If true, include user repositories", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "contributionTypes", - "description": "If non-null, include only the specified types of contributions. The GitHub.com UI uses [COMMIT, ISSUE, PULL_REQUEST, REPOSITORY]", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "RepositoryContributionType", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "RepositoryConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "repository", - "description": "Find Repository.", - "args": [ - { - "name": "name", - "description": "Name of Repository to find.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "String", - "ofType": null - } - }, - "defaultValue": null - } - ], - "type": { - "kind": "OBJECT", - "name": "Repository", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "resourcePath", - "description": "The HTTP path for this user", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "savedReplies", - "description": "Replies this user has saved", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "The field to order saved replies by.", - "type": { - "kind": "INPUT_OBJECT", - "name": "SavedReplyOrder", - "ofType": null - }, - "defaultValue": "{field: UPDATED_AT, direction: DESC}" - } - ], - "type": { - "kind": "OBJECT", - "name": "SavedReplyConnection", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "sponsorsListing", - "description": "The GitHub Sponsors listing for this user or organization.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "SponsorsListing", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "sponsorshipsAsMaintainer", - "description": "This object's sponsorships as the maintainer.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "includePrivate", - "description": "Whether or not to include private sponsorships in the result set", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - }, - { - "name": "orderBy", - "description": "Ordering options for sponsorships returned from this connection. If left blank, the sponsorships will be ordered based on relevancy to the viewer.", - "type": { - "kind": "INPUT_OBJECT", - "name": "SponsorshipOrder", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SponsorshipConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "sponsorshipsAsSponsor", - "description": "This object's sponsorships as the sponsor.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for sponsorships returned from this connection. If left blank, the sponsorships will be ordered based on relevancy to the viewer.", - "type": { - "kind": "INPUT_OBJECT", - "name": "SponsorshipOrder", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "SponsorshipConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "starredRepositories", - "description": "Repositories the user has starred.", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "ownedByViewer", - "description": "Filters starred repositories to only return repositories owned by the viewer.", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Order for connection", - "type": { - "kind": "INPUT_OBJECT", - "name": "StarOrder", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "StarredRepositoryConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "status", - "description": "The user's description of what they're currently doing.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserStatus", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "topRepositories", - "description": "Repositories the user has contributed to, ordered by contribution rank, plus repositories the user has created\n", - "args": [ - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for repositories returned from the connection", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "INPUT_OBJECT", - "name": "RepositoryOrder", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "since", - "description": "How far back in time to fetch contributed repositories", - "type": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "RepositoryConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "twitterUsername", - "description": "The user's Twitter username.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "url", - "description": "The HTTP URL for this user", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanChangePinnedItems", - "description": "Can the viewer pin repositories and gists to the profile?", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanCreateProjects", - "description": "Can the current viewer create new projects on this owner.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanFollow", - "description": "Whether or not the viewer is able to follow the user.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerCanSponsor", - "description": "Whether or not the viewer is able to sponsor this user/organization.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerIsFollowing", - "description": "Whether or not this user is followed by the viewer.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewerIsSponsoring", - "description": "True if the viewer is sponsoring this user/organization.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "watching", - "description": "A list of repositories the given user is watching.", - "args": [ - { - "name": "privacy", - "description": "If non-null, filters repositories according to privacy", - "type": { - "kind": "ENUM", - "name": "RepositoryPrivacy", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "orderBy", - "description": "Ordering options for repositories returned from the connection", - "type": { - "kind": "INPUT_OBJECT", - "name": "RepositoryOrder", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "affiliations", - "description": "Affiliation options for repositories returned from the connection. If none specified, the results will include repositories for which the current viewer is an owner or collaborator, or member.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "RepositoryAffiliation", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "ownerAffiliations", - "description": "Array of owner's affiliation options for repositories returned from the connection. For example, OWNER will include only repositories that the organization or user being viewed owns.", - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "RepositoryAffiliation", - "ofType": null - } - }, - "defaultValue": "[OWNER, COLLABORATOR]" - }, - { - "name": "isLocked", - "description": "If non-null, filters repositories according to whether they have been locked", - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "after", - "description": "Returns the elements in the list that come after the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "before", - "description": "Returns the elements in the list that come before the specified cursor.", - "type": { - "kind": "SCALAR", - "name": "String", - "ofType": null - }, - "defaultValue": null - }, - { - "name": "first", - "description": "Returns the first _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - }, - { - "name": "last", - "description": "Returns the last _n_ elements from the list.", - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "defaultValue": null - } - ], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "RepositoryConnection", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "websiteUrl", - "description": "A URL pointing to the user's public website/blog.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null }, - { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - { "kind": "INTERFACE", "name": "PackageOwner", "ofType": null }, - { "kind": "INTERFACE", "name": "ProjectOwner", "ofType": null }, - { "kind": "INTERFACE", "name": "RepositoryOwner", "ofType": null }, - { - "kind": "INTERFACE", - "name": "UniformResourceLocatable", - "ofType": null - }, - { "kind": "INTERFACE", "name": "ProfileOwner", "ofType": null }, - { "kind": "INTERFACE", "name": "Sponsorable", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "UserBlockDuration", - "description": "The possible durations that a user can be blocked for.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "ONE_DAY", - "description": "The user was blocked for 1 day", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "THREE_DAYS", - "description": "The user was blocked for 3 days", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ONE_WEEK", - "description": "The user was blocked for 7 days", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ONE_MONTH", - "description": "The user was blocked for 30 days", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "PERMANENT", - "description": "The user was blocked permanently", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserBlockedEvent", - "description": "Represents a 'user_blocked' event on a given user.", - "fields": [ - { - "name": "actor", - "description": "Identifies the actor who performed the event.", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "blockDuration", - "description": "Number of days that the user was blocked for.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserBlockDuration", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "subject", - "description": "The user who was blocked.", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserConnection", - "description": "The connection type for User.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserContentEdit", - "description": "An edit on user content", - "fields": [ - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deletedAt", - "description": "Identifies the date and time when the object was deleted.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deletedBy", - "description": "The actor who deleted this content", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "diff", - "description": "A summary of the changes for this edit", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "editedAt", - "description": "When this content was edited", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "editor", - "description": "The actor who edited this content", - "args": [], - "type": { "kind": "INTERFACE", "name": "Actor", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserContentEditConnection", - "description": "A list of edits to content.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserContentEditEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserContentEdit", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserContentEditEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserContentEdit", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserEdge", - "description": "Represents a user.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { "kind": "OBJECT", "name": "User", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserEmailMetadata", - "description": "Email attributes from External Identity", - "fields": [ - { - "name": "primary", - "description": "Boolean to identify primary emails", - "args": [], - "type": { "kind": "SCALAR", "name": "Boolean", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "type", - "description": "Type of email", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "value", - "description": "Email id", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserStatus", - "description": "The user's description of what they're currently doing.", - "fields": [ - { - "name": "createdAt", - "description": "Identifies the date and time when the object was created.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "emoji", - "description": "An emoji summarizing the user's status.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "emojiHTML", - "description": "The status emoji as HTML.", - "args": [], - "type": { "kind": "SCALAR", "name": "HTML", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "expiresAt", - "description": "If set, the status will not be shown after this date.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": "ID of the object.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "indicatesLimitedAvailability", - "description": "Whether this status indicates the user is not fully available on GitHub.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "message", - "description": "A brief message describing what the user is doing.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "organization", - "description": "The organization whose members can see this status. If null, this status is publicly visible.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "Organization", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "updatedAt", - "description": "Identifies the date and time when the object was last updated.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "DateTime", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "user", - "description": "The user who has this status.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserStatusConnection", - "description": "The connection type for UserStatus.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserStatusEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "UserStatus", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "UserStatusEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "UserStatus", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "UserStatusOrder", - "description": "Ordering options for user status connections.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field to order user statuses by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "UserStatusOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The ordering direction.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "UserStatusOrderField", - "description": "Properties by which user status connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "UPDATED_AT", - "description": "Order user statuses by when they were updated.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "VerifiableDomain", - "description": "A domain that can be verified for an organization or an enterprise.", - "fields": [ - { - "name": "databaseId", - "description": "Identifies the primary key from the database.", - "args": [], - "type": { "kind": "SCALAR", "name": "Int", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "dnsHostName", - "description": "The DNS host name that should be used for verification.", - "args": [], - "type": { "kind": "SCALAR", "name": "URI", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "domain", - "description": "The unicode encoded domain.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hasFoundHostName", - "description": "Whether a TXT record for verification with the expected host name was found.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "hasFoundVerificationToken", - "description": "Whether a TXT record for verification with the expected verification token was found.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "id", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isRequiredForPolicyEnforcement", - "description": "Whether this domain is required to exist for an organization policy to be enforced.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isVerified", - "description": "Whether or not the domain is verified.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "owner", - "description": "The owner of the domain.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "UNION", - "name": "VerifiableDomainOwner", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "punycodeEncodedDomain", - "description": "The punycode encoded domain.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "URI", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "tokenExpirationTime", - "description": "The time that the current verification token will expire.", - "args": [], - "type": { "kind": "SCALAR", "name": "DateTime", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "verificationToken", - "description": "The current verification token for the domain.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "Node", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "VerifiableDomainConnection", - "description": "The connection type for VerifiableDomain.", - "fields": [ - { - "name": "edges", - "description": "A list of edges.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "VerifiableDomainEdge", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "nodes", - "description": "A list of nodes.", - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "VerifiableDomain", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "pageInfo", - "description": "Information to aid in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "PageInfo", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "totalCount", - "description": "Identifies the total count of items in the connection.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "Int", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "VerifiableDomainEdge", - "description": "An edge in a connection.", - "fields": [ - { - "name": "cursor", - "description": "A cursor for use in pagination.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "node", - "description": "The item at the end of the edge.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "VerifiableDomain", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "INPUT_OBJECT", - "name": "VerifiableDomainOrder", - "description": "Ordering options for verifiable domain connections.", - "fields": null, - "inputFields": [ - { - "name": "field", - "description": "The field to order verifiable domains by.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "VerifiableDomainOrderField", - "ofType": null - } - }, - "defaultValue": null - }, - { - "name": "direction", - "description": "The ordering direction.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "OrderDirection", - "ofType": null - } - }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "VerifiableDomainOrderField", - "description": "Properties by which verifiable domain connections can be ordered.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "DOMAIN", - "description": "Order verifiable domains by the domain name.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "UNION", - "name": "VerifiableDomainOwner", - "description": "Types that can own a verifiable domain.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": [ - { "kind": "OBJECT", "name": "Enterprise", "ofType": null }, - { "kind": "OBJECT", "name": "Organization", "ofType": null } - ] - }, - { - "kind": "INPUT_OBJECT", - "name": "VerifyVerifiableDomainInput", - "description": "Autogenerated input type of VerifyVerifiableDomain", - "fields": null, - "inputFields": [ - { - "name": "id", - "description": "The ID of the verifiable domain to verify.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "ID", "ofType": null } - }, - "defaultValue": null - }, - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": null - } - ], - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "VerifyVerifiableDomainPayload", - "description": "Autogenerated return type of VerifyVerifiableDomain", - "fields": [ - { - "name": "clientMutationId", - "description": "A unique identifier for the client performing the mutation.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "domain", - "description": "The verifiable domain that was verified.", - "args": [], - "type": { - "kind": "OBJECT", - "name": "VerifiableDomain", - "ofType": null - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "ViewerHovercardContext", - "description": "A hovercard context with a message describing how the viewer is related.", - "fields": [ - { - "name": "message", - "description": "A string describing this context", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "octicon", - "description": "An octicon to accompany this context", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "viewer", - "description": "Identifies the user who is related to this context.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "User", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [ - { "kind": "INTERFACE", "name": "HovercardContext", "ofType": null } - ], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "SCALAR", - "name": "X509Certificate", - "description": "A valid x509 certificate string", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__Directive", - "description": "A Directive provides a way to describe alternate runtime execution and type validation behavior in a GraphQL document.\n\nIn some cases, you need to provide options to alter GraphQL's execution behavior in ways field arguments will not suffice, such as conditionally including or skipping a field. Directives provide this by describing additional information to the executor.", - "fields": [ - { - "name": "args", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__InputValue", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "locations", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "__DirectiveLocation", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "onField", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": true, - "deprecationReason": "Use `locations`." - }, - { - "name": "onFragment", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": true, - "deprecationReason": "Use `locations`." - }, - { - "name": "onOperation", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": true, - "deprecationReason": "Use `locations`." - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "__DirectiveLocation", - "description": "A Directive can be adjacent to many parts of the GraphQL language, a __DirectiveLocation describes one such possible adjacencies.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "QUERY", - "description": "Location adjacent to a query operation.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "MUTATION", - "description": "Location adjacent to a mutation operation.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SUBSCRIPTION", - "description": "Location adjacent to a subscription operation.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FIELD", - "description": "Location adjacent to a field.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FRAGMENT_DEFINITION", - "description": "Location adjacent to a fragment definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FRAGMENT_SPREAD", - "description": "Location adjacent to a fragment spread.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INLINE_FRAGMENT", - "description": "Location adjacent to an inline fragment.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SCHEMA", - "description": "Location adjacent to a schema definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "SCALAR", - "description": "Location adjacent to a scalar definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "OBJECT", - "description": "Location adjacent to an object type definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "FIELD_DEFINITION", - "description": "Location adjacent to a field definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ARGUMENT_DEFINITION", - "description": "Location adjacent to an argument definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INTERFACE", - "description": "Location adjacent to an interface definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNION", - "description": "Location adjacent to a union definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ENUM", - "description": "Location adjacent to an enum definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ENUM_VALUE", - "description": "Location adjacent to an enum value definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INPUT_OBJECT", - "description": "Location adjacent to an input object type definition.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INPUT_FIELD_DEFINITION", - "description": "Location adjacent to an input object field definition.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__EnumValue", - "description": "One possible value for a given Enum. Enum values are unique values, not a placeholder for a string or numeric value. However an Enum value is returned in a JSON response as a string.", - "fields": [ - { - "name": "deprecationReason", - "description": null, - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isDeprecated", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__Field", - "description": "Object and Interface types are described by a list of Fields, each of which has a name, potentially a list of arguments, and a return type.", - "fields": [ - { - "name": "args", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__InputValue", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "deprecationReason", - "description": null, - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "isDeprecated", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "type", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "__Type", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__InputValue", - "description": "Arguments provided to Fields or Directives and the input fields of an InputObject are represented as Input Values which describe their type and optionally a default value.", - "fields": [ - { - "name": "defaultValue", - "description": "A GraphQL-formatted string representing the default value for this input value.", - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "description", - "description": null, - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "SCALAR", "name": "String", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "type", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "__Type", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__Schema", - "description": "A GraphQL Schema defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, as well as the entry points for query, mutation, and subscription operations.", - "fields": [ - { - "name": "directives", - "description": "A list of all directives supported by this server.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Directive", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "mutationType", - "description": "If this server supports mutation, the type that mutation operations will be rooted at.", - "args": [], - "type": { "kind": "OBJECT", "name": "__Type", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "queryType", - "description": "The type that query operations will be rooted at.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { "kind": "OBJECT", "name": "__Type", "ofType": null } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "subscriptionType", - "description": "If this server support subscription, the type that subscription operations will be rooted at.", - "args": [], - "type": { "kind": "OBJECT", "name": "__Type", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "types", - "description": "A list of all types supported by this server.", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - } - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "OBJECT", - "name": "__Type", - "description": "The fundamental unit of any GraphQL Schema is the type. There are many kinds of types in GraphQL as represented by the `__TypeKind` enum.\n\nDepending on the kind of a type, certain fields describe information about that type. Scalar types provide no information beyond a name and description, while Enum types provide their values. Object and Interface types provide the fields they describe. Abstract types, Union and Interface, provide the Object types possible at runtime. List and NonNull types compose other types.", - "fields": [ - { - "name": "description", - "description": null, - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "enumValues", - "description": null, - "args": [ - { - "name": "includeDeprecated", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - } - ], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__EnumValue", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "fields", - "description": null, - "args": [ - { - "name": "includeDeprecated", - "description": null, - "type": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - }, - "defaultValue": "false" - } - ], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Field", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "inputFields", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__InputValue", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "interfaces", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "kind", - "description": null, - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "ENUM", - "name": "__TypeKind", - "ofType": null - } - }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "name", - "description": null, - "args": [], - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ofType", - "description": null, - "args": [], - "type": { "kind": "OBJECT", "name": "__Type", "ofType": null }, - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "possibleTypes", - "description": null, - "args": [], - "type": { - "kind": "LIST", - "name": null, - "ofType": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "OBJECT", - "name": "__Type", - "ofType": null - } - } - }, - "isDeprecated": false, - "deprecationReason": null - } - ], - "inputFields": null, - "interfaces": [], - "enumValues": null, - "possibleTypes": null - }, - { - "kind": "ENUM", - "name": "__TypeKind", - "description": "An enum describing what kind of type a given `__Type` is.", - "fields": null, - "inputFields": null, - "interfaces": null, - "enumValues": [ - { - "name": "SCALAR", - "description": "Indicates this type is a scalar.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "OBJECT", - "description": "Indicates this type is an object. `fields` and `interfaces` are valid fields.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INTERFACE", - "description": "Indicates this type is an interface. `fields` and `possibleTypes` are valid fields.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "UNION", - "description": "Indicates this type is a union. `possibleTypes` is a valid field.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "ENUM", - "description": "Indicates this type is an enum. `enumValues` is a valid field.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "INPUT_OBJECT", - "description": "Indicates this type is an input object. `inputFields` is a valid field.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "LIST", - "description": "Indicates this type is a list. `ofType` is a valid field.", - "isDeprecated": false, - "deprecationReason": null - }, - { - "name": "NON_NULL", - "description": "Indicates this type is a non-null. `ofType` is a valid field.", - "isDeprecated": false, - "deprecationReason": null - } - ], - "possibleTypes": null - } - ], - "directives": [ - { - "name": "include", - "description": "Directs the executor to include this field or fragment only when the `if` argument is true.", - "locations": ["FIELD", "FRAGMENT_SPREAD", "INLINE_FRAGMENT"], - "args": [ - { - "name": "if", - "description": "Included when true.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null - } - ] - }, - { - "name": "skip", - "description": "Directs the executor to skip this field or fragment when the `if` argument is true.", - "locations": ["FIELD", "FRAGMENT_SPREAD", "INLINE_FRAGMENT"], - "args": [ - { - "name": "if", - "description": "Skipped when true.", - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "Boolean", - "ofType": null - } - }, - "defaultValue": null - } - ] - }, - { - "name": "deprecated", - "description": "Marks an element of a GraphQL schema as no longer supported.", - "locations": ["FIELD_DEFINITION", "ENUM_VALUE"], - "args": [ - { - "name": "reason", - "description": "Explains why this element was deprecated, usually also including a suggestion for how to access supported similar data. Formatted in [Markdown](https://daringfireball.net/projects/markdown/).", - "type": { "kind": "SCALAR", "name": "String", "ofType": null }, - "defaultValue": "\"No longer supported\"" - } - ] - } - ] - } - } -} diff --git a/graphql.config.js b/graphql.config.js deleted file mode 100644 index c95b11f743e..00000000000 --- a/graphql.config.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("./.cache/typegen/graphql.config.json") diff --git a/i18n/config.json b/i18n.config.json similarity index 100% rename from i18n/config.json rename to i18n.config.json diff --git a/netlify.toml b/netlify.toml index 49426606cd4..3e26ef59558 100644 --- a/netlify.toml +++ b/netlify.toml @@ -1,20 +1,13 @@ # Settings in the [build] context are global and are applied to all contexts # unless otherwise overridden by more specific contexts. [build] - # Directory to change to before starting a build. - # This is where we will look for package.json/.nvmrc/etc. - # base = "project/" - # Directory (relative to root of your repo) that contains the deploy-ready # HTML files and assets generated by the build. If a base directory has # been specified, include it in the publish directory path. - publish = "public" + publish = ".next" # Default build command. - # command = "yarn build" # debug with: "yarn build --verbose" - - # Directory with the serverless Lambda functions to deploy to AWS - functions = "public/functions" + command = "yarn build" [[headers]] for = "/*" @@ -22,4 +15,11 @@ Access-Control-Allow-Origin = "https://esp.ethereum.foundation" [[plugins]] - package = "@netlify/plugin-gatsby" \ No newline at end of file + package = "@netlify/plugin-nextjs" + +[functions] + included_files = [ + "./src/intl/**/*", + "!./public/**/*", + "!./node_modules/@swc/core-linux-x64-musl/**/*", + ] \ No newline at end of file diff --git a/next-i18next.config.js b/next-i18next.config.js new file mode 100644 index 00000000000..bacf8af4049 --- /dev/null +++ b/next-i18next.config.js @@ -0,0 +1,26 @@ +const i18nConfig = require("./i18n.config.json") + +const BUILD_LOCALES = process.env.BUILD_LOCALES +// Supported locales defined in `i18n.config.json` +const locales = BUILD_LOCALES + ? BUILD_LOCALES.split(",") + : i18nConfig.map(({ code }) => code) + +/** @type {import('next-i18next').UserConfig} */ +module.exports = { + i18n: { + defaultLocale: "en", + // supported locales defined in `i18n.config.json` + locales, + }, + // define custom location for intl files, otherwise default to public/locales (https://github.com/i18next/next-i18next#2-translation-content) + localePath: "./src/intl", + // see updates to your translation JSON files without having to restart your development server each time + reloadOnPrerender: true, + // Language codes to lookup, given set language is 'en-US': 'all' --> ['en-US', 'en', 'dev'], 'currentOnly' --> 'en-US', 'languageOnly' --> 'en' + load: "currentOnly", + // Language will be lowercased EN --> en while leaving full locales like en-US + cleanCode: true, + // Language will be lowercased eg. en-US --> en-us + lowerCaseLng: true, +} diff --git a/next-sitemap.config.js b/next-sitemap.config.js new file mode 100644 index 00000000000..5e5ee4e0caa --- /dev/null +++ b/next-sitemap.config.js @@ -0,0 +1,18 @@ +const i18nConfig = require("./i18n.config.json") +const locales = i18nConfig.map(({ code }) => code) + +/** @type {import('next-sitemap').IConfig} */ +module.exports = { + siteUrl: process.env.SITE_URL || "https://ethereum.org", + generateRobotsTxt: true, + transform: async (_, path) => { + const rootPath = path.split("/")[1] + if (path.endsWith("/404")) return null + const isDefaultLocale = !locales.includes(rootPath) || rootPath === "en" + return { + loc: path, + changefreq: isDefaultLocale ? "weekly" : "monthly", + priority: isDefaultLocale ? 0.7 : 0.5, + } + }, +} diff --git a/next.config.js b/next.config.js new file mode 100644 index 00000000000..6f49ee215fc --- /dev/null +++ b/next.config.js @@ -0,0 +1,47 @@ +const { PHASE_DEVELOPMENT_SERVER } = require("next/constants") + +const { i18n } = require("./next-i18next.config") + +const LIMIT_CPUS = Number(process.env.LIMIT_CPUS || 2) + +const experimental = LIMIT_CPUS + ? { + // This option could be enabled in the future when flagged as stable, to speed up builds + // (see https://nextjs.org/docs/pages/building-your-application/configuring/mdx#using-the-rust-based-mdx-compiler-experimental) + // mdxRs: true, + + // Reduce the number of cpus and disable parallel threads in prod envs to consume less memory + workerThreads: false, + cpus: LIMIT_CPUS, + } + : {} + +/** @type {import('next').NextConfig} */ +module.exports = (phase, { defaultConfig }) => { + let nextConfig = { + ...defaultConfig, + reactStrictMode: true, + webpack: (config) => { + config.module.rules.push({ + test: /\.ya?ml$/, + use: "yaml-loader", + }) + config.module.rules.push({ + test: /\.svg$/, + use: "@svgr/webpack", + }) + + return config + }, + i18n, + images: { + deviceSizes: [640, 750, 828, 1080, 1200, 1504, 1920], + }, + } + + if (phase !== PHASE_DEVELOPMENT_SERVER) { + nextConfig = { ...nextConfig, experimental } + } + + return nextConfig +} diff --git a/package.json b/package.json index 4478d56f33b..4e0c7b574d6 100644 --- a/package.json +++ b/package.json @@ -1,156 +1,89 @@ { "name": "ethereum-org-website", - "version": "7.23.0", - "description": "Website of ethereum.org", - "main": "index.js", - "repository": "git@github.com:ethereum/ethereum-org-website.git", - "author": "Sam Richards ", - "license": "MIT", - "private": false, + "version": "8.0.0", + "private": true, + "scripts": { + "dev": "next dev", + "build": "next build", + "postbuild": "next-sitemap", + "start": "next start", + "lint": "next lint", + "lint:fix": "next lint --fix", + "preversion": "bash ./src/scripts/updatePublishDate.sh", + "crowdin-contributors": "ts-node -O '{ \"module\": \"commonjs\" }' src/scripts/crowdin/getCrowdinContributors.ts", + "storybook": "storybook dev -p 6006", + "build-storybook": "storybook build" + }, "dependencies": { - "@apollo/client": "^3.3.13", - "@chakra-ui/gatsby-plugin": "^3.1.3", - "@chakra-ui/react": "2.8.0", - "@crowdin/crowdin-api-client": "^1.23.2", - "@docsearch/react": "^3.3.3", - "@emotion/react": "^11.9.3", - "@emotion/styled": "^11.9.3", - "@mdx-js/mdx": "^1.6.5", - "@mdx-js/react": "^1.6.5", - "algoliasearch": "^4.3.0", - "axios": "^1.6.0", - "browser-lang": "^0.1.0", - "browserslist": "^4.21.0", - "clipboard": "^2.0.6", - "cross-fetch": "^3.1.5", - "dotenv": "^8.2.0", + "@chakra-ui/next-js": "^2.1.5", + "@chakra-ui/react": "^2.8.0", + "@crowdin/crowdin-api-client": "^1.25.0", + "@docsearch/react": "^3.5.2", + "@emotion/react": "^11.11.1", + "@emotion/styled": "^11.11.0", + "@socialgouv/matomo-next": "^1.8.0", + "clipboard": "^2.0.11", "embla-carousel-react": "^7.0.0", "ethereum-blockies-base64": "^1.0.2", - "focus-trap-react": "^10.0.0", - "framer-motion": "^6.5.1", - "gatsby": "^5.4.1", - "gatsby-plugin-gatsby-cloud": "^5.4.0", - "gatsby-plugin-image": "^3.4.0", - "gatsby-plugin-layout": "^3.24.0", - "gatsby-plugin-manifest": "^5.4.0", - "gatsby-plugin-matomo": "^0.14.0", - "gatsby-plugin-mdx": "^3.0.0", - "gatsby-plugin-netlify": "^5.1.0", - "gatsby-plugin-react-helmet": "^6.4.0", - "gatsby-plugin-react-helmet-canonical-urls": "^1.4.0", - "gatsby-plugin-react-i18next": "^3.0.1", - "gatsby-plugin-react-svg": "^3.3.0", - "gatsby-plugin-robots-txt": "^1.8.0", - "gatsby-plugin-sharp": "^5.8.1", - "gatsby-plugin-sitemap": "^6.4.0", - "gatsby-remark-autolink-headers": "^5.21.0", - "gatsby-remark-copy-linked-files": "^5.21.0", - "gatsby-remark-images": "^6.21.0", - "gatsby-remark-reading-time": "^1.1.0", - "gatsby-source-filesystem": "^5.4.0", - "gatsby-transformer-csv": "^5.4.0", - "gatsby-transformer-gitinfo": "^1.1.0", - "gatsby-transformer-json": "^5.4.0", - "gatsby-transformer-remark": "^6.4.0", - "gatsby-transformer-sharp": "^5.4.0", + "focus-trap-react": "^10.2.3", + "framer-motion": "^10.13.0", + "gray-matter": "^4.0.3", "htmr": "^1.0.2", - "i18next": "^21.9.2", - "is-relative-url": "^3.0.0", - "lodash": "^4.17.21", - "luxon": "^1.28.1", - "polished": "^4.1.4", - "prism-react-renderer": "^1.1.1", + "i18next": "^23.6.0", + "lodash.merge": "^4.6.2", + "lodash.shuffle": "^4.2.0", + "luxon": "^3.4.3", + "next": "13.4.8", + "next-i18next": "^14.0.3", + "next-mdx-remote": "^3.0.8", + "next-sitemap": "^4.2.3", + "prism-react-renderer": "1.1.0", "prismjs": "^1.27.0", - "react": "^18.0.0", - "react-countdown": "^2.3.2", - "react-dom": "^18.0.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", "react-emoji-render": "^2.0.1", - "react-helmet": "^6.1.0", - "react-i18next": "^12.1.4", - "react-icons": "^4.3.1", - "react-instantsearch-dom": "^6.32.0", + "react-i18next": "^13.3.1", + "react-icons": "^4.10.1", "react-lite-youtube-embed": "^2.4.0", "react-select": "^4.3.0", - "recharts": "^2.1.9", - "styled-system": "^5.1.5", - "unist-util-visit-parents": "^2.1.2" + "reading-time": "^1.5.0", + "recharts": "^2.7.3", + "remark-gfm": "^3.0.1", + "yaml-loader": "^0.8.0" }, "devDependencies": { - "@babel/core": "^7.19.6", - "@babel/preset-env": "^7.20.2", - "@babel/preset-react": "^7.18.6", - "@babel/preset-typescript": "^7.18.6", - "@chakra-ui/cli": "^2.4.1", - "@chakra-ui/storybook-addon": "^5.0.1", - "@netlify/functions": "^1.2.0", - "@netlify/plugin-gatsby": "^3.7.2", - "@storybook/addon-a11y": "^7.0.23", - "@storybook/addon-actions": "^7.0.23", - "@storybook/addon-essentials": "^7.0.23", - "@storybook/addon-interactions": "^7.0.23", - "@storybook/addon-links": "^7.0.23", - "@storybook/react": "^7.0.23", - "@storybook/react-webpack5": "^7.0.23", - "@storybook/testing-library": "^0.2.0", - "@types/browser-lang": "^0.1.0", - "@types/github-slugger": "^1.3.0", - "@types/luxon": "^2.3.2", - "@types/mdx-js__react": "^1.5.5", - "@types/node": "^17.0.23", - "@types/react": "^18.0.17", - "@types/react-dom": "^18.0.6", - "@types/react-instantsearch-core": "^6.26.2", - "@types/styled-system": "^5.1.15", - "babel-loader": "^8.3.0", - "babel-preset-gatsby": "^2.23.0", - "chromatic": "^6.19.9", - "cross-env": "^7.0.3", - "github-slugger": "^1.3.0", - "gray-matter": "^4.0.3", - "husky": "^4.2.5", - "identity-obj-proxy": "^3.0.0", - "minimist": "^1.2.6", - "prettier": "^2.2.1", - "pretty-quick": "^3.1.0", - "rimraf": "^4.1.1", - "storybook": "^7.0.23", - "storybook-react-i18next": "^2.0.1", + "@chakra-ui/storybook-addon": "5.1.0", + "@netlify/plugin-nextjs": "^4.41.3", + "@storybook/addon-essentials": "7.6.6", + "@storybook/addon-interactions": "7.6.6", + "@storybook/addon-links": "7.6.6", + "@storybook/nextjs": "7.6.6", + "@storybook/react": "7.6.6", + "@storybook/testing-library": "0.2.2", + "@svgr/webpack": "^8.1.0", + "@types/hast": "^3.0.0", + "@types/luxon": "^3.3.2", + "@types/node": "^20.4.2", + "@types/react": "^18.2.15", + "@types/react-dom": "^18.2.7", + "eslint": "^8.45.0", + "eslint-config-next": "^13.0.0", + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-simple-import-sort": "^10.0.0", + "eslint-plugin-storybook": "^0.6.15", + "image-size": "^1.0.2", + "mdast-util-toc": "^7.0.0", + "minimist": "^1.2.8", + "polished": "^4.2.2", + "raw-loader": "^4.0.2", + "storybook": "7.6.6", + "storybook-react-i18next": "^2.0.9", "ts-node": "^10.9.1", - "typescript": "^4.6.3", - "walkdir": "^0.4.1" - }, - "scripts": { - "postinstall": "yarn theme", - "build": "gatsby build", - "build:10gb": "cross-env NODE_OPTIONS=--max-old-space-size=10240 gatsby build", - "clean": "gatsby clean", - "crowdin-clean": "rm -rf .crowdin && mkdir .crowdin", - "crowdin-import": "ts-node src/scripts/crowdin-import.ts", - "format": "prettier --write \"**/*.{js,jsx,json,md}\"", - "markdown-checker": "ts-node -O '{ \"module\": \"commonjs\" }' src/scripts/markdownChecker.ts", - "generate-heading-ids": "ts-node -O '{ \"module\": \"commonjs\" }' src/scripts/generateHeadingIds.ts", - "unused-translations": "ts-node -O '{ \"module\": \"commonjs\" }' src/scripts/unusedTranslations.ts", - "reorg-intl": "ts-node -O '{ \"module\": \"commonjs\" }' src/scripts/reorgIntlFiles.ts", - "optimize-images": "ts-node -O '{ \"module\": \"commonjs\" }' src/scripts/optimizeImages.ts", - "crowdin-contributors": "ts-node -O '{ \"module\": \"commonjs\" }' src/scripts/crowdin/getCrowdinContributors.ts", - "start": "gatsby develop", - "start:static": "gatsby build && gatsby serve", - "serve": "gatsby serve", - "type-check": "tsc --noEmit", - "storybook": "storybook dev -p 6006 -c .storybook", - "build-storybook": "storybook build", - "chromatic": "chromatic --project-token fee8e66c9916", - "theme": "chakra-cli tokens src/@chakra-ui/gatsby-plugin/theme.ts", - "theme:watch": "chakra-cli tokens src/@chakra-ui/gatsby-plugin/theme.ts --watch" - }, - "husky": { - "hooks": { - "pre-commit": "pretty-quick --staged" - } + "typescript": "^5.1.6", + "unified": "^10.0.0", + "unist-util-visit": "^5.0.0" }, - "volta": { - "node": "18.13.0", - "npm": "8.5.5", - "yarn": "1.22.18" + "resolutions": { + "jackspeak": "2.1.1" } } diff --git a/plugins/gatsby-remark-fix-static-urls/index.js b/plugins/gatsby-remark-fix-static-urls/index.js deleted file mode 100644 index ca726cc74cf..00000000000 --- a/plugins/gatsby-remark-fix-static-urls/index.js +++ /dev/null @@ -1,51 +0,0 @@ -const fs = require("fs") -const path = require("path") -const visitWithParents = require("unist-util-visit-parents") -const isRelativeUrl = require("is-relative-url") - -/** - * Modify the images & links urls on translated md files to point to the source - * ones. - * - * E.g. - * Before - * - Source file: ./image.png - * - Translated file: ./image.png - * - * After - * - Source file: ./image.png - * - Translated file: ../path/to/source/image.png - */ -module.exports = ({ markdownNode, markdownAST }) => { - const fileAbsoluteDir = path.dirname(markdownNode.fileAbsolutePath) - const sourceAbsoluteDir = fileAbsoluteDir.replace( - /translations\/\w{2,3}(-\w{2})?\//, - "" - ) - const relativePath = path.relative(fileAbsoluteDir, sourceAbsoluteDir) - - // if it is not a translated file, skip it - if (!fileAbsoluteDir.includes("/translations")) { - return markdownAST - } - - // loop for each node in the mdx file - visitWithParents(markdownAST, ["image", "link"], (node) => { - const isRelativeToMdFile = isRelativeUrl(node.url) - if (isRelativeToMdFile) { - const ext = path.extname(node.url) - - // ignore things that are not files, e.g. a hashed link '#anchor' - if (ext === "") { - return - } - - // 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) - } - } - }) - - return markdownAST -} diff --git a/plugins/gatsby-remark-fix-static-urls/package.json b/plugins/gatsby-remark-fix-static-urls/package.json deleted file mode 100644 index f748db51ed2..00000000000 --- a/plugins/gatsby-remark-fix-static-urls/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "gatsby-remark-image-urls", - "version": "1.0.0", - "description": "Set correct images urls in translated md files", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", - "build": "echo \"No build script setup\"" - }, - "keywords": [ - "gatsby", - "gatsby-plugin", - "image", - "markdown", - "remark" - ] -} diff --git a/public/_redirects b/public/_redirects new file mode 100644 index 00000000000..5ee30bff053 --- /dev/null +++ b/public/_redirects @@ -0,0 +1,183 @@ +/en/ / 301! + +/discord https://discord.gg/ethereum-org 301! + +/*/discord https://discord.gg/ethereum-org 301! + +/pdfs/* /en/ 301! + +/brand /en/assets/ 301! + +/ether /en/eth/ 301! + +/token /en/developers/ 301! + +/crowdsale /en/developers/ 301! + +/cli /en/developers/ 301! + +/greeter /en/developers/ 301! + +/search /en/ 301! + +/use /en/dapps/ 301! + +/beginners /en/what-is-ethereum/ 301! + +/eth2/ /en/roadmap/ 301! + +/build/ /en/developers/learning-tools/ 301! + +/nfts/ /en/nft/ 301! + +/daos/ /en/dao/ 301! + +/layer2/ /en/layer-2/ 301! + +/*/layer2/ /:splat/layer-2/ 301! + +/grants/ /en/community/grants/ 301! + +/no/* /nb/:splat 301! + +/ph/* /fil/:splat 301! + +/java/ /en/developers/docs/programming-languages/java/ 301! + +/en/java/ /en/developers/docs/programming-languages/java/ 301! + +/python/ /en/developers/docs/programming-languages/python/ 301! + +/en/python/ /en/developers/docs/programming-languages/python/ 301! + +/javascript/ /en/developers/docs/programming-languages/javascript/ 301! + +/en/javascript/ /en/developers/docs/programming-languages/javascript/ 301! + +/golang/ /en/developers/docs/programming-languages/golang/ 301! + +/en/golang/ /en/developers/docs/programming-languages/golang/ 301! + +/rust/ /en/developers/docs/programming-languages/rust/ 301! + +/en/rust/ /en/developers/docs/programming-languages/rust/ 301! + +/dot-net/ /en/developers/docs/programming-languages/dot-net/ 301! + +/en/dot-net/ /en/developers/docs/programming-languages/dot-net/ 301! + +/delphi/ /en/developers/docs/programming-languages/delphi/ 301! + +/en/delphi/ /en/developers/docs/programming-languages/delphi/ 301! + +/dart/ /en/developers/docs/programming-languages/dart/ 301! + +/en/dart/ /en/developers/docs/programming-languages/dart/ 301! + +/developers/docs/mining/ /en/developers/docs/consensus-mechanisms/pow/mining/ 301! + +/en/developers/docs/mining/ /en/developers/docs/consensus-mechanisms/pow/mining/ 301! + +/*/beginners /:splat/what-is-ethereum/ 301! + +/*/build /:splat/developers/learning-tools/ 301! + +/*/eth2/beacon-chain/ /:splat/upgrades/beacon-chain/ 301! + +/*/eth2/the-beacon-chain/ /:splat/upgrades/beacon-chain/ 301! + +/*/upgrades/the-beacon-chain/ /:splat/upgrades/beacon-chain/ 301! + +/*/eth2/merge /:splat/upgrades/merge/ 301! + +/*/eth2/the-merge /:splat/upgrades/merge/ 301! + +/*/upgrades/the-merge /:splat/upgrades/merge/ 301! + +/*/eth2/docking /:splat/upgrades/merge/ 301! + +/*/upgrades/docking /:splat/upgrades/merge/ 301! + +/*/eth2/the-docking /:splat/upgrades/merge/ 301! + +/*/upgrades/the-docking /:splat/upgrades/merge/ 301! + +/*/eth2/shard-chains/ /:splat/roadmap/danksharding/ 301! + +/*/upgrades/shard-chains/ /:splat/roadmap/danksharding/ 301! + +/upgrades/sharding/ /en/roadmap/danksharding/ 301! + +/*/upgrades/sharding/ /:splat/roadmap/danksharding/ 301! + +/upgrades/shard-chains/ /en/roadmap/danksharding/ 301! + +/upgrades/merge /en/roadmap/merge/ 301! + +/*/upgrades/merge /:splat/roadmap/merge/ 301! + +/upgrades/merge/issuance /en/roadmap/merge/issuance 301! + +/*/upgrades/merge/issuance /:splat/roadmap/merge/issuance 301! + +/upgrades/beacon-chain /en/roadmap/beacon-chain 301! + +/*/upgrades/beacon-chain /:splat/roadmap/beacon-chain 301! + +/upgrades/vision/ /en/roadmap/vision/ 301! + +/*/upgrades/vision/ /:splat/roadmap/vision/ 301! + +/upgrades /en/roadmap 301! + +/*/upgrades /:splat/roadmap 301! + +/upgrades/get-involved /contributing 301! + +/*/upgrades/get-involved /:splat/contributing 301! + +/*/eth2/staking/ /:splat/staking/ 301! + +/*/eth2/vision/ /:splat/roadmap/vision/ 301! + +/*/eth2/get-involved/ /:splat/upgrades/get-involved/ 301! + +/*/eth2/get-involved/bug-bounty/ /:splat/bug-bounty/ 301! + +/*/upgrades/get-involved/bug-bounty/ /:splat/bug-bounty/ 301! + +/*/eth2/deposit-contract/ /:splat/staking/deposit-contract/ 301! + +/*/eth2 /:splat/upgrades/ 301! + +/*/developers/docs/layer-2-scaling /:splat/developers/docs/scaling 301! + +/*/developers/docs/scaling/layer-2-rollups /:splat/developers/docs/scaling 301! + +/*/about/web-developer /:splat/about/#open-jobs 301! + +/*/about/product-designer /:splat/about/#open-jobs 301! + +/*/use /:splat/dapps/ 301! + +/*/contributing/translation-program/translation-guide/ /:splat/contributing/translation-program/faq/ 301! + +/*/contributing/translation-program/content-versions/ /:splat/contributing/translation-program/content-buckets/ 301! + +/*/developers/docs/smart-contracts/source-code-verification/ /:splat/developers/docs/smart-contracts/verifying/ 301! + +/*/developers/docs/smart-contracts/upgrading-smart-contracts/ /:splat/developers/docs/smart-contracts/upgrading/ 301! + +/staking/withdraws /en/staking/withdrawals/ 301! + +/*/writing-cohort https://ethereumwriterscohort.carrd.co/ 301! + +/*/staking/withdraws /:splat/staking/withdrawals/ 301! + +/*/guides/how-to-register-an-ethereum-account /:splat/guides/how-to-create-an-ethereum-account/ 301! + +/studio /en/deprecated-software/#ethereum-studio 301! + +/*/studio /:splat/deprecated-software/#ethereum-studio 301! + +/en/stablecoins /stablecoins 301! \ No newline at end of file diff --git a/src/assets/assets/eth-diamond-black-gray.png b/public/assets/eth-diamond-black-gray.png similarity index 100% rename from src/assets/assets/eth-diamond-black-gray.png rename to public/assets/eth-diamond-black-gray.png diff --git a/src/assets/assets/eth-diamond-black-white.jpg b/public/assets/eth-diamond-black-white.jpg similarity index 100% rename from src/assets/assets/eth-diamond-black-white.jpg rename to public/assets/eth-diamond-black-white.jpg diff --git a/src/assets/assets/eth-diamond-black.png b/public/assets/eth-diamond-black.png similarity index 100% rename from src/assets/assets/eth-diamond-black.png rename to public/assets/eth-diamond-black.png diff --git a/src/assets/assets/eth-diamond-glyph.png b/public/assets/eth-diamond-glyph.png similarity index 100% rename from src/assets/assets/eth-diamond-glyph.png rename to public/assets/eth-diamond-glyph.png diff --git a/src/assets/assets/eth-diamond-purple-purple.png b/public/assets/eth-diamond-purple-purple.png similarity index 100% rename from src/assets/assets/eth-diamond-purple-purple.png rename to public/assets/eth-diamond-purple-purple.png diff --git a/src/assets/assets/eth-diamond-purple-white.jpg b/public/assets/eth-diamond-purple-white.jpg similarity index 100% rename from src/assets/assets/eth-diamond-purple-white.jpg rename to public/assets/eth-diamond-purple-white.jpg diff --git a/src/assets/assets/eth-diamond-purple.png b/public/assets/eth-diamond-purple.png similarity index 100% rename from src/assets/assets/eth-diamond-purple.png rename to public/assets/eth-diamond-purple.png diff --git a/src/assets/assets/eth-diamond-rainbow.png b/public/assets/eth-diamond-rainbow.png similarity index 100% rename from src/assets/assets/eth-diamond-rainbow.png rename to public/assets/eth-diamond-rainbow.png diff --git a/src/assets/assets/eth-glyph-colored.png b/public/assets/eth-glyph-colored.png similarity index 100% rename from src/assets/assets/eth-glyph-colored.png rename to public/assets/eth-glyph-colored.png diff --git a/eth-transparent.png b/public/assets/eth-transparent.png similarity index 100% rename from eth-transparent.png rename to public/assets/eth-transparent.png diff --git a/eth.png b/public/assets/eth.png similarity index 100% rename from eth.png rename to public/assets/eth.png diff --git a/src/assets/assets/ethereum-logo-landscape-black-gray.png b/public/assets/ethereum-logo-landscape-black-gray.png similarity index 100% rename from src/assets/assets/ethereum-logo-landscape-black-gray.png rename to public/assets/ethereum-logo-landscape-black-gray.png diff --git a/src/assets/assets/ethereum-logo-landscape-black.png b/public/assets/ethereum-logo-landscape-black.png similarity index 100% rename from src/assets/assets/ethereum-logo-landscape-black.png rename to public/assets/ethereum-logo-landscape-black.png diff --git a/src/assets/assets/ethereum-logo-landscape-purple-purple.png b/public/assets/ethereum-logo-landscape-purple-purple.png similarity index 100% rename from src/assets/assets/ethereum-logo-landscape-purple-purple.png rename to public/assets/ethereum-logo-landscape-purple-purple.png diff --git a/src/assets/assets/ethereum-logo-landscape-purple-white.png b/public/assets/ethereum-logo-landscape-purple-white.png similarity index 100% rename from src/assets/assets/ethereum-logo-landscape-purple-white.png rename to public/assets/ethereum-logo-landscape-purple-white.png diff --git a/src/assets/assets/ethereum-logo-landscape-purple.png b/public/assets/ethereum-logo-landscape-purple.png similarity index 100% rename from src/assets/assets/ethereum-logo-landscape-purple.png rename to public/assets/ethereum-logo-landscape-purple.png diff --git a/src/assets/assets/ethereum-logo-portrait-black-gray.png b/public/assets/ethereum-logo-portrait-black-gray.png similarity index 100% rename from src/assets/assets/ethereum-logo-portrait-black-gray.png rename to public/assets/ethereum-logo-portrait-black-gray.png diff --git a/src/assets/assets/ethereum-logo-portrait-black.png b/public/assets/ethereum-logo-portrait-black.png similarity index 100% rename from src/assets/assets/ethereum-logo-portrait-black.png rename to public/assets/ethereum-logo-portrait-black.png diff --git a/src/assets/assets/ethereum-logo-portrait-purple-purple.png b/public/assets/ethereum-logo-portrait-purple-purple.png similarity index 100% rename from src/assets/assets/ethereum-logo-portrait-purple-purple.png rename to public/assets/ethereum-logo-portrait-purple-purple.png diff --git a/src/assets/assets/ethereum-logo-portrait-purple-white.png b/public/assets/ethereum-logo-portrait-purple-white.png similarity index 100% rename from src/assets/assets/ethereum-logo-portrait-purple-white.png rename to public/assets/ethereum-logo-portrait-purple-white.png diff --git a/src/assets/assets/ethereum-logo-portrait-purple.png b/public/assets/ethereum-logo-portrait-purple.png similarity index 100% rename from src/assets/assets/ethereum-logo-portrait-purple.png rename to public/assets/ethereum-logo-portrait-purple.png diff --git a/src/assets/assets/ethereum-wordmark-black-gray.png b/public/assets/ethereum-wordmark-black-gray.png similarity index 100% rename from src/assets/assets/ethereum-wordmark-black-gray.png rename to public/assets/ethereum-wordmark-black-gray.png diff --git a/src/assets/assets/ethereum-wordmark-black.png b/public/assets/ethereum-wordmark-black.png similarity index 100% rename from src/assets/assets/ethereum-wordmark-black.png rename to public/assets/ethereum-wordmark-black.png diff --git a/src/assets/assets/ethereum-wordmark-purple-purple.png b/public/assets/ethereum-wordmark-purple-purple.png similarity index 100% rename from src/assets/assets/ethereum-wordmark-purple-purple.png rename to public/assets/ethereum-wordmark-purple-purple.png diff --git a/src/assets/assets/ethereum-wordmark-purple-white.png b/public/assets/ethereum-wordmark-purple-white.png similarity index 100% rename from src/assets/assets/ethereum-wordmark-purple-white.png rename to public/assets/ethereum-wordmark-purple-white.png diff --git a/src/assets/assets/ethereum-wordmark-purple.png b/public/assets/ethereum-wordmark-purple.png similarity index 100% rename from src/assets/assets/ethereum-wordmark-purple.png rename to public/assets/ethereum-wordmark-purple.png diff --git a/src/assets/assets/hero-dark.png b/public/assets/hero-dark.png similarity index 100% rename from src/assets/assets/hero-dark.png rename to public/assets/hero-dark.png diff --git a/src/assets/assets/hero.png b/public/assets/hero.png similarity index 100% rename from src/assets/assets/hero.png rename to public/assets/hero.png diff --git a/public/assets/manifest-app-icon-192.png b/public/assets/manifest-app-icon-192.png new file mode 100644 index 00000000000..3d129c89970 Binary files /dev/null and b/public/assets/manifest-app-icon-192.png differ diff --git a/public/assets/manifest-app-icon-512.png b/public/assets/manifest-app-icon-512.png new file mode 100644 index 00000000000..1ca0e4c3b37 Binary files /dev/null and b/public/assets/manifest-app-icon-512.png differ diff --git a/public/assets/manifest-app-icon.svg b/public/assets/manifest-app-icon.svg new file mode 100644 index 00000000000..24849af38f0 --- /dev/null +++ b/public/assets/manifest-app-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/assets/manifest-homepage-screenshot-mobile.png b/public/assets/manifest-homepage-screenshot-mobile.png new file mode 100644 index 00000000000..319e45b3955 Binary files /dev/null and b/public/assets/manifest-homepage-screenshot-mobile.png differ diff --git a/public/assets/manifest-homepage-screenshot.png b/public/assets/manifest-homepage-screenshot.png new file mode 100644 index 00000000000..a09426f4b1a Binary files /dev/null and b/public/assets/manifest-homepage-screenshot.png differ diff --git a/static/static/eth-diamond-black-gray.svg b/public/assets/svgs/eth-diamond-black-gray.svg similarity index 100% rename from static/static/eth-diamond-black-gray.svg rename to public/assets/svgs/eth-diamond-black-gray.svg diff --git a/static/static/eth-diamond-black-white.svg b/public/assets/svgs/eth-diamond-black-white.svg similarity index 100% rename from static/static/eth-diamond-black-white.svg rename to public/assets/svgs/eth-diamond-black-white.svg diff --git a/static/static/eth-diamond-black.svg b/public/assets/svgs/eth-diamond-black.svg similarity index 100% rename from static/static/eth-diamond-black.svg rename to public/assets/svgs/eth-diamond-black.svg diff --git a/static/static/eth-diamond-glyph.svg b/public/assets/svgs/eth-diamond-glyph.svg similarity index 100% rename from static/static/eth-diamond-glyph.svg rename to public/assets/svgs/eth-diamond-glyph.svg diff --git a/static/static/eth-diamond-purple-purple.svg b/public/assets/svgs/eth-diamond-purple-purple.svg similarity index 100% rename from static/static/eth-diamond-purple-purple.svg rename to public/assets/svgs/eth-diamond-purple-purple.svg diff --git a/static/static/eth-diamond-purple-white.svg b/public/assets/svgs/eth-diamond-purple-white.svg similarity index 100% rename from static/static/eth-diamond-purple-white.svg rename to public/assets/svgs/eth-diamond-purple-white.svg diff --git a/static/static/eth-diamond-purple.svg b/public/assets/svgs/eth-diamond-purple.svg similarity index 100% rename from static/static/eth-diamond-purple.svg rename to public/assets/svgs/eth-diamond-purple.svg diff --git a/static/static/eth-diamond-rainbow.svg b/public/assets/svgs/eth-diamond-rainbow.svg similarity index 100% rename from static/static/eth-diamond-rainbow.svg rename to public/assets/svgs/eth-diamond-rainbow.svg diff --git a/static/static/eth-glyph-colored.svg b/public/assets/svgs/eth-glyph-colored.svg similarity index 100% rename from static/static/eth-glyph-colored.svg rename to public/assets/svgs/eth-glyph-colored.svg diff --git a/static/static/ethereum-logo-landscape-black-gray.svg b/public/assets/svgs/ethereum-logo-landscape-black-gray.svg similarity index 100% rename from static/static/ethereum-logo-landscape-black-gray.svg rename to public/assets/svgs/ethereum-logo-landscape-black-gray.svg diff --git a/static/static/ethereum-logo-landscape-black.svg b/public/assets/svgs/ethereum-logo-landscape-black.svg similarity index 100% rename from static/static/ethereum-logo-landscape-black.svg rename to public/assets/svgs/ethereum-logo-landscape-black.svg diff --git a/static/static/ethereum-logo-landscape-purple-purple.svg b/public/assets/svgs/ethereum-logo-landscape-purple-purple.svg similarity index 100% rename from static/static/ethereum-logo-landscape-purple-purple.svg rename to public/assets/svgs/ethereum-logo-landscape-purple-purple.svg diff --git a/static/static/ethereum-logo-landscape-purple-white.svg b/public/assets/svgs/ethereum-logo-landscape-purple-white.svg similarity index 100% rename from static/static/ethereum-logo-landscape-purple-white.svg rename to public/assets/svgs/ethereum-logo-landscape-purple-white.svg diff --git a/static/static/ethereum-logo-landscape-purple.svg b/public/assets/svgs/ethereum-logo-landscape-purple.svg similarity index 100% rename from static/static/ethereum-logo-landscape-purple.svg rename to public/assets/svgs/ethereum-logo-landscape-purple.svg diff --git a/static/static/ethereum-logo-portrait-black-gray.svg b/public/assets/svgs/ethereum-logo-portrait-black-gray.svg similarity index 100% rename from static/static/ethereum-logo-portrait-black-gray.svg rename to public/assets/svgs/ethereum-logo-portrait-black-gray.svg diff --git a/static/static/ethereum-logo-portrait-black.svg b/public/assets/svgs/ethereum-logo-portrait-black.svg similarity index 100% rename from static/static/ethereum-logo-portrait-black.svg rename to public/assets/svgs/ethereum-logo-portrait-black.svg diff --git a/static/static/ethereum-logo-portrait-purple-purple.svg b/public/assets/svgs/ethereum-logo-portrait-purple-purple.svg similarity index 100% rename from static/static/ethereum-logo-portrait-purple-purple.svg rename to public/assets/svgs/ethereum-logo-portrait-purple-purple.svg diff --git a/static/static/ethereum-logo-portrait-purple.svg b/public/assets/svgs/ethereum-logo-portrait-purple.svg similarity index 100% rename from static/static/ethereum-logo-portrait-purple.svg rename to public/assets/svgs/ethereum-logo-portrait-purple.svg diff --git a/static/static/ethereum-wordmark-black-gray.svg b/public/assets/svgs/ethereum-wordmark-black-gray.svg similarity index 100% rename from static/static/ethereum-wordmark-black-gray.svg rename to public/assets/svgs/ethereum-wordmark-black-gray.svg diff --git a/static/static/ethereum-wordmark-black.svg b/public/assets/svgs/ethereum-wordmark-black.svg similarity index 100% rename from static/static/ethereum-wordmark-black.svg rename to public/assets/svgs/ethereum-wordmark-black.svg diff --git a/static/static/ethereum-wordmark-purple-purple.svg b/public/assets/svgs/ethereum-wordmark-purple-purple.svg similarity index 100% rename from static/static/ethereum-wordmark-purple-purple.svg rename to public/assets/svgs/ethereum-wordmark-purple-purple.svg diff --git a/static/static/ethereum-wordmark-purple-white.svg b/public/assets/svgs/ethereum-wordmark-purple-white.svg similarity index 100% rename from static/static/ethereum-wordmark-purple-white.svg rename to public/assets/svgs/ethereum-wordmark-purple-white.svg diff --git a/static/static/ethereum-wordmark-purple.svg b/public/assets/svgs/ethereum-wordmark-purple.svg similarity index 100% rename from static/static/ethereum-wordmark-purple.svg rename to public/assets/svgs/ethereum-wordmark-purple.svg diff --git a/src/assets/home/merge-panda.svg b/public/assets/svgs/merge-panda.svg similarity index 100% rename from src/assets/home/merge-panda.svg rename to public/assets/svgs/merge-panda.svg diff --git a/src/assets/assets/translatathon-hero.png b/public/assets/translatathon-hero.png similarity index 100% rename from src/assets/assets/translatathon-hero.png rename to public/assets/translatathon-hero.png diff --git a/src/assets/certificates/dark-certificate.png b/public/certificates/dark-certificate.png similarity index 100% rename from src/assets/certificates/dark-certificate.png rename to public/certificates/dark-certificate.png diff --git a/src/assets/certificates/light-certificate.png b/public/certificates/light-certificate.png similarity index 100% rename from src/assets/certificates/light-certificate.png rename to public/certificates/light-certificate.png diff --git a/src/content/about/index.md b/public/content/about/index.md similarity index 100% rename from src/content/about/index.md rename to public/content/about/index.md diff --git a/src/content/bridges/index.md b/public/content/bridges/index.md similarity index 100% rename from src/content/bridges/index.md rename to public/content/bridges/index.md diff --git a/src/content/community/code-of-conduct/index.md b/public/content/community/code-of-conduct/index.md similarity index 100% rename from src/content/community/code-of-conduct/index.md rename to public/content/community/code-of-conduct/index.md diff --git a/src/content/community/events/index.md b/public/content/community/events/index.md similarity index 100% rename from src/content/community/events/index.md rename to public/content/community/events/index.md diff --git a/src/content/community/get-involved/index.md b/public/content/community/get-involved/index.md similarity index 100% rename from src/content/community/get-involved/index.md rename to public/content/community/get-involved/index.md diff --git a/src/content/community/grants/index.md b/public/content/community/grants/index.md similarity index 100% rename from src/content/community/grants/index.md rename to public/content/community/grants/index.md diff --git a/src/content/community/language-resources/index.md b/public/content/community/language-resources/index.md similarity index 100% rename from src/content/community/language-resources/index.md rename to public/content/community/language-resources/index.md diff --git a/public/content/community/online/index.md b/public/content/community/online/index.md new file mode 100644 index 00000000000..9dfa32ac11b --- /dev/null +++ b/public/content/community/online/index.md @@ -0,0 +1,50 @@ +--- +title: Online communities +description: A listing of the grant programs throughout the Ethereum ecosystem. +lang: en +--- + +# Online communities {#online-communities} + +Hundreds of thousands of Ethereum enthusiasts gather in these online forums to share news, talk about recent developments, debate technical issues, and imagine the future. + +## Forums {#forums} + +r/ethereum - all things Ethereum +r/ethfinance - the financial side of Ethereum, including DeFi +r/ethdev - focused on Ethereum development +r/ethtrader - trends & market analysis +r/ethstaker - welcome to all interested in staking on Ethereum +Fellowship of Ethereum Magicians - community oriented around technical standards in Ethereum +Ethereum Stackexchange - discussion and help for Ethereum developers +Ethereum Research - the most influential messageboard for cryptoeconomic research + +## Chat rooms {#chat-rooms} + +Ethereum Cat Herders - community oriented around offering project management support to Ethereum development +Ethereum Hackers - Discord chat run by ETHGlobal: an online community for Ethereum hackers all over the world +CryptoDevs - Ethereum development focused Discord community +EthStaker Discord - community-run guidance, education, support, and resources for existing and potential stakers +Ethereum.org website team - stop by and chat ethereum.org web development and design with the team and folks from the community +Matos Discord - web3 creators community where builders, industrial figureheads, and Ethereum enthusiasts hang out. We're passionate about web3 development, design, and culture. Come build with us. +Solidity Gitter - chat for solidity development (Gitter) +Solidity Matrix - chat for solidity development (Matrix) +Ethereum Stack Exchange - question and answer forum +Peeranha - decentralized question and answer forum + +## YouTube and Twitter {#youtube-and-twitter} + +Ethereum Foundation - Keep up to date with the latest from the Ethereum Foundation +@ethereum - Official account of the Ethereum Foundation +@ethdotorg - The portal to Ethereum, built for our growing global community +List of influential Ethereum twitter accounts + + + + +
+ + Learn more about DAOs + +
+
diff --git a/src/content/community/research/index.md b/public/content/community/research/index.md similarity index 100% rename from src/content/community/research/index.md rename to public/content/community/research/index.md diff --git a/public/content/community/support/index.md b/public/content/community/support/index.md new file mode 100644 index 00000000000..42684462948 --- /dev/null +++ b/public/content/community/support/index.md @@ -0,0 +1,116 @@ +--- +title: Ethereum support +description: Get support in the Ethereum ecosystem. +lang: en +--- + +# Ethereum support {#support} + +## Official Ethereum support {#official-support} + +Are you looking for the official Ethereum support? The first thing you should know is that Ethereum is decentralized. This means no central organization, entity, or person owns Ethereum, and because of this, no official support channels exist. + +Understanding the decentralized nature of Ethereum is vital because anyone claiming to be official support for Ethereum is probably trying to scam you! The best protection against scammers is educating yourself and taking security seriously. + + + Ethereum security and scam prevention + + + + Learn Ethereum fundamentals + + +Despite the lack of official support, many groups, communities, and projects across the Ethereum ecosystem are happy to help, and you can find a lot of useful information and resources on this page. Still have questions? Join the [ethereum.org Discord](/discord/), and we'll try to help. + +## Wallet support {#wallet-support} + +Having trouble with your wallet? Most wallets have dedicated support teams that can help: + +- [MetaMask](https://metamask.zendesk.com/hc/) +- [Argent](https://support.argent.xyz/hc/) +- [MyEtherWallet](https://help.myetherwallet.com/) + +_This is not an exhaustive list. Need help finding support for a specific wallet? Join the [ethereum.org discord](https://discord.gg/ethereum-org) and we'll try to help._ + +Looking for an Ethereum wallet? [Explore our full list of Ethereum wallets](/wallets/find-wallet/). + +## Building dapps {#building-support} + +Building can be hard. Here are some development focused spaces with experienced Ethereum developers that are happy to help. + +- [Alchemy University](https://university.alchemy.com/#starter_code) +- [CryptoDevs discord](https://discord.com/invite/5W5tVb3) +- [Ethereum StackExchange](https://ethereum.stackexchange.com/) +- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) +- [Web3 University](https://www.web3.university/) +- [LearnWeb3](https://discord.com/invite/learnweb3) + +You can also find documentation and development guides in our [Ethereum developer resources](/developers/) section. + +### Tooling {#dapp-tooling} + +Does your question relate to a particular tool, project, or library? Most projects have chat servers or forums dedicated to supporting you. + +Here are some popular examples: + +- [Solidity](https://gitter.im/ethereum/solidity/) +- [ethers.js](https://discord.gg/6jyGVDK6Jx) +- [web3.js](https://discord.gg/GsABYQu4sC) +- [Hardhat](https://discord.gg/xtrMGhmbfZ) +- [Truffle](https://discord.gg/8uKcsccEYE) +- [Alchemy](http://alchemy.com/discord) +- [Tenderly](https://discord.gg/fBvDJYR) + +## Running a node {#node-support} + +If you're running a node or validator, here are some communities that are dedicated to helping you get started. + +- [EthStaker discord](https://discord.gg/ethstaker) +- [EthStaker reddit](https://www.reddit.com/r/ethstaker) + +Most of the teams building Ethereum clients also have dedicated, public-facing, spaces where you can get support and ask questions. + +### Execution clients {#execution-clients} + +- [Geth](https://discord.gg/FqDzupGyYf) +- [Nethermind](https://discord.gg/YJx3pm8z5C) +- [Besu](https://discord.gg/p8djYngzKN) +- [Erigon](https://github.com/ledgerwatch/erigon/issues) + +### Consensus clients {#consensus-clients} + +- [Prysm](https://discord.gg/prysmaticlabs) +- [Nimbus](https://discord.gg/nSmEH3qgFv) +- [Lighthouse](https://discord.gg/cyAszAh) +- [Teku](https://discord.gg/7hPv2T6) +- [Lodestar](https://discord.gg/aMxzVcr) + +You can also [learn how to run a node here](/developers/docs/nodes-and-clients/run-a-node/). + +## Frequently asked questions {#faq} + +### I've sent ETH to the wrong wallet {#wrong-wallet} + +A transaction sent on Ethereum is irreversible. Unfortunately, if you've sent ETH to the wrong wallet, there is no way to recover these funds. No one central organization, entity, or person owns Ethereum, which means no one can reverse transactions. Therefore, it is vital always to double-check your transactions before sending them. + +### How can I claim my Ethereum giveaway? {#giveaway-scam} + +Ethereum giveaways are scams designed to steal your ETH. Do not be tempted by offers that seem too good to be true — if you send ETH to a giveaway address, you will not receive a giveaway, and you will not be able to recover your funds. + +[More on scam prevention](/security/#common-scams) + +### My transaction is stuck {#stuck-transaction} + +Transactions on Ethereum can sometimes get stuck if you have submitted a lower transaction fee than is required due to network demand. Many wallets provide an option to resubmit the same transaction with a higher transaction fee to allow the transaction to be processed. Alternatively, you can cancel a pending transaction by sending a transaction to your own address and using the same nonce as the pending transaction. + +[How to speed up or cancel a pending transaction on MetaMask](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) + +[How to cancel pending Ethereum transactions](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) + +### How do I mine Ethereum? {#mining-ethereum} + +Ethereum mining is no longer possible. Mining was switched off when Ethereum moved from proof-of-work to proof-of-stake. Now, instead of miners, Ethereum has validators. Validators stake ETH and receive staking rewards for securing the network. + +### How do I become a staker/validator? {#become-validator} + +To become a validator, you must stake 32 ETH in the Ethereum deposit contract and set up a validator node. More information is available on our [staking pages](/staking) and at [the staking launchpad](https://launchpad.ethereum.org/). diff --git a/src/content/contributing/adding-desci-projects/index.md b/public/content/contributing/adding-desci-projects/index.md similarity index 100% rename from src/content/contributing/adding-desci-projects/index.md rename to public/content/contributing/adding-desci-projects/index.md diff --git a/src/content/contributing/adding-developer-tools/index.md b/public/content/contributing/adding-developer-tools/index.md similarity index 100% rename from src/content/contributing/adding-developer-tools/index.md rename to public/content/contributing/adding-developer-tools/index.md diff --git a/src/content/contributing/adding-exchanges/index.md b/public/content/contributing/adding-exchanges/index.md similarity index 100% rename from src/content/contributing/adding-exchanges/index.md rename to public/content/contributing/adding-exchanges/index.md diff --git a/src/content/contributing/adding-glossary-terms/index.md b/public/content/contributing/adding-glossary-terms/index.md similarity index 100% rename from src/content/contributing/adding-glossary-terms/index.md rename to public/content/contributing/adding-glossary-terms/index.md diff --git a/src/content/contributing/adding-layer-2s/index.md b/public/content/contributing/adding-layer-2s/index.md similarity index 100% rename from src/content/contributing/adding-layer-2s/index.md rename to public/content/contributing/adding-layer-2s/index.md diff --git a/src/content/contributing/adding-products/index.md b/public/content/contributing/adding-products/index.md similarity index 100% rename from src/content/contributing/adding-products/index.md rename to public/content/contributing/adding-products/index.md diff --git a/src/content/contributing/adding-staking-products/index.md b/public/content/contributing/adding-staking-products/index.md similarity index 100% rename from src/content/contributing/adding-staking-products/index.md rename to public/content/contributing/adding-staking-products/index.md diff --git a/src/content/contributing/adding-wallets/index.md b/public/content/contributing/adding-wallets/index.md similarity index 100% rename from src/content/contributing/adding-wallets/index.md rename to public/content/contributing/adding-wallets/index.md diff --git a/src/content/contributing/content-resources/index.md b/public/content/contributing/content-resources/index.md similarity index 100% rename from src/content/contributing/content-resources/index.md rename to public/content/contributing/content-resources/index.md diff --git a/src/content/contributing/design-principles/index.md b/public/content/contributing/design-principles/index.md similarity index 100% rename from src/content/contributing/design-principles/index.md rename to public/content/contributing/design-principles/index.md diff --git a/src/content/contributing/design/adding-design-resources/index.md b/public/content/contributing/design/adding-design-resources/index.md similarity index 100% rename from src/content/contributing/design/adding-design-resources/index.md rename to public/content/contributing/design/adding-design-resources/index.md diff --git a/src/content/contributing/design/index.md b/public/content/contributing/design/index.md similarity index 100% rename from src/content/contributing/design/index.md rename to public/content/contributing/design/index.md diff --git a/src/content/contributing/index.md b/public/content/contributing/index.md similarity index 100% rename from src/content/contributing/index.md rename to public/content/contributing/index.md diff --git a/src/content/contributing/quizzes/index.md b/public/content/contributing/quizzes/index.md similarity index 100% rename from src/content/contributing/quizzes/index.md rename to public/content/contributing/quizzes/index.md diff --git a/src/content/contributing/style-guide/content-standardization/index.md b/public/content/contributing/style-guide/content-standardization/index.md similarity index 100% rename from src/content/contributing/style-guide/content-standardization/index.md rename to public/content/contributing/style-guide/content-standardization/index.md diff --git a/public/content/contributing/style-guide/index.md b/public/content/contributing/style-guide/index.md new file mode 100644 index 00000000000..351af2dcf61 --- /dev/null +++ b/public/content/contributing/style-guide/index.md @@ -0,0 +1,137 @@ +--- +title: Style Guide +description: Style guide for ethereum.org +lang: en +--- + +# Ethereum.org style guide {#style-guide} + +Content on [ethereum.org](/) is crowdsourced and primarily written by our incredible contributors. + +Our primary objective is to educate and inform visitors about Ethereum in a manner that is accessible to a diverse range of readers, from technical experts to casual visitors. Since we deal with complex and abstract topics, clear content writing is crucial to effectively convey the information and avoid confusion or misinterpretation. + +You should read this style guide before you [contribute to ethereum.org](/contributing/). + +## Who can submit content to ethereum.org {#who-can-help} + +Anyone! Ethereum.org is entirely open source, and many of its best pages are submitted by curious learners who expanded their notes into documentation pages now living on the site. + +## Audience {#audience} + +- 60% of our website visitors do not own any ether according to our survey responses +- 50% of visitors identify themselves as newcomers to the crypto space + +**Common reading-related problems:** + +- Articles are hard to digest due to + - too much text per page / paragraph + - usage of complex sentences + - technical jargon +- Content is too abstract and detached from reality, therefore users are unable to relate to it +- Too many links inside articles result in readers feeling overloaded and leaving the website + +**Takeaways**: + +- Operate with a mindset that people are curious about crypto, but not invested enough to spend hours exploring the topics +- Users want to understand how the topic relates to them and how they can take a part in it rather than going deep into the theory + +Loosely we can categorize the site audiences as: + + + +**Example user journeys:** + +- "I want to learn more about Ethereum, to know if I think it’s credible or not. Once I’ve answered a few basic questions, I want to try using Ethereum" +- "I know I need an Ethereum wallet, and want a good recommendation" +- "I want to learn how to run an Ethereum node" +- "I want to get a sense of the size and activity of the Ethereum community, to decide if it's active enough, so I can get help if needed" +- "I’m excited about Ethereum and want to get involved, but I don’t know what to do next" + + + + + +**Example user journeys**: + +- "I'm a developer but I have no background in crypto and want to understand the Ethereum tech stack at a high level" +- "I want to get a sample Ethereum project up and running fast, to get a sense of how difficult or easy it is to build a real project on Ethereum" +- "I want to learn about Ethereum's technical roadmap" +- "I’ve started work on an Ethereum project, and want to try out a few smart contract testing libraries" + + + + + +**Example user journeys**: + +- "I want to understand what use cases Ethereum can help with, and how it compares to other chains or other technologies" +- "I work at a business that is beginning an Ethereum related project, and want to learn more" +- "I want to understand the differences between private Ethereum chains, consortium chains, and the public Ethereum Mainnet" +- "I want to know the current status of Ethereum - how long has it been in production, how much usage it has, what's the direction of new development - to decide if I am confident to build my project on top of it" + + + +## Best practices {#best-practices} + +**Style** + +- Focus on the advantages for the user instead of explaining technical details about the system +- Use active voice and clear, concise sentences that are easy to follow +- Break up longer chunks of text into smaller sections or paragraphs +- Consider using tables, bullet points or numbered lists instead of paragraphs +- Highlight (bold) key phrases to support scanning and skimming through the article + +**Content ideas:** + +- Use examples or real-life scenarios of the application of the technology to help illustrate complex concepts or ideas +- Explain how the idea can positively affect people now or in the future +- Create before Ethereum / after Ethereum comparison +- Add step-by-step how to take action +- Include relevant statistics or graphs to strengthen the arguments +- Add calls to action +- Provide visual aids to explain the topic better + +**Other**: + +- Limit the length of the article up to 1000 words (1500 max) +- Reduce the number of hyperlinks to approximately 5 per 1000 words (excluding further reading section at the bottom of the page or product listings) + +### Objectivity {#objectivity} + +Ethereum.org documentation (and content at large) aims to maintain a credibly neutral source of truth to inform readers about Ethereum and its ecosystem. Some examples of things that we don't want in the content on ethereum.org: + +**Grand, unverifiable claims about Ethereum or adjacent technologies** + +> e.g. _"Ethereum will take over the world because..."_ + +**Hostile or confrontational language aimed at any organization or person** + +> e.g. _"Company X is bad because they are centralized!"_ + +**Politically charged rhetoric** + +> e.g. _"This political party is better for decentralization because..."_ + +### Acronyms {#acronyms} + +When introducing an unfamiliar acronym, spell out the full term, and put the acronym in parentheses. Put both the full term and acronym in bold. + +**For example:** + +"Ethereum, like Bitcoin, currently uses a consensus protocol called **proof-of-work (PoW)**." + +### Consistency {#consistency} + +Many of the topics covered on ethereum.org are technically complex. To reduce confusion to the reader, terms should be used consistently. For example, don't cycle back-and-forth between proof-of-work and PoW at random. + +[Content standardization](/contributing/style-guide/content-standardization/) - Read more about proper usage of terminology and other aspects such as how to properly add an image, attribute etc. + +## Anything else? {#anything-else} + +Like all content on ethereum.org, this style guide is an open-source work-in-progress with room for improvement. If there is anything you think should be added to improve this document please [suggest an edit on GitHub](https://github.com/ethereum/ethereum-org-website/blob/dev/public/content/contributing/style-guide/index.md). diff --git a/src/content/contributing/translation-program/blog-screenshot.png b/public/content/contributing/translation-program/blog-screenshot.png similarity index 100% rename from src/content/contributing/translation-program/blog-screenshot.png rename to public/content/contributing/translation-program/blog-screenshot.png diff --git a/src/content/contributing/translation-program/content-buckets/index.md b/public/content/contributing/translation-program/content-buckets/index.md similarity index 100% rename from src/content/contributing/translation-program/content-buckets/index.md rename to public/content/contributing/translation-program/content-buckets/index.md diff --git a/src/content/contributing/translation-program/enterprise-eth.png b/public/content/contributing/translation-program/enterprise-eth.png similarity index 100% rename from src/content/contributing/translation-program/enterprise-eth.png rename to public/content/contributing/translation-program/enterprise-eth.png diff --git a/src/content/contributing/translation-program/ethereum-org-screenshot.png b/public/content/contributing/translation-program/ethereum-org-screenshot.png similarity index 100% rename from src/content/contributing/translation-program/ethereum-org-screenshot.png rename to public/content/contributing/translation-program/ethereum-org-screenshot.png diff --git a/src/content/contributing/translation-program/faq/add-glossary-term.png b/public/content/contributing/translation-program/faq/add-glossary-term.png similarity index 100% rename from src/content/contributing/translation-program/faq/add-glossary-term.png rename to public/content/contributing/translation-program/faq/add-glossary-term.png diff --git a/src/content/contributing/translation-program/faq/comment-issue.png b/public/content/contributing/translation-program/faq/comment-issue.png similarity index 100% rename from src/content/contributing/translation-program/faq/comment-issue.png rename to public/content/contributing/translation-program/faq/comment-issue.png diff --git a/src/content/contributing/translation-program/faq/glossary-definition.png b/public/content/contributing/translation-program/faq/glossary-definition.png similarity index 100% rename from src/content/contributing/translation-program/faq/glossary-definition.png rename to public/content/contributing/translation-program/faq/glossary-definition.png diff --git a/src/content/contributing/translation-program/faq/glossary-tab.png b/public/content/contributing/translation-program/faq/glossary-tab.png similarity index 100% rename from src/content/contributing/translation-program/faq/glossary-tab.png rename to public/content/contributing/translation-program/faq/glossary-tab.png diff --git a/src/content/contributing/translation-program/faq/html-tag-strings.png b/public/content/contributing/translation-program/faq/html-tag-strings.png similarity index 100% rename from src/content/contributing/translation-program/faq/html-tag-strings.png rename to public/content/contributing/translation-program/faq/html-tag-strings.png diff --git a/src/content/contributing/translation-program/faq/index.md b/public/content/contributing/translation-program/faq/index.md similarity index 100% rename from src/content/contributing/translation-program/faq/index.md rename to public/content/contributing/translation-program/faq/index.md diff --git a/src/content/contributing/translation-program/faq/source-string-2.png b/public/content/contributing/translation-program/faq/source-string-2.png similarity index 100% rename from src/content/contributing/translation-program/faq/source-string-2.png rename to public/content/contributing/translation-program/faq/source-string-2.png diff --git a/src/content/contributing/translation-program/faq/source-string.png b/public/content/contributing/translation-program/faq/source-string.png similarity index 100% rename from src/content/contributing/translation-program/faq/source-string.png rename to public/content/contributing/translation-program/faq/source-string.png diff --git a/src/content/contributing/translation-program/faq/translation-memory.png b/public/content/contributing/translation-program/faq/translation-memory.png similarity index 100% rename from src/content/contributing/translation-program/faq/translation-memory.png rename to public/content/contributing/translation-program/faq/translation-memory.png diff --git a/src/content/contributing/translation-program/how-to-translate/crowdin-files.png b/public/content/contributing/translation-program/how-to-translate/crowdin-files.png similarity index 100% rename from src/content/contributing/translation-program/how-to-translate/crowdin-files.png rename to public/content/contributing/translation-program/how-to-translate/crowdin-files.png diff --git a/src/content/contributing/translation-program/how-to-translate/index.md b/public/content/contributing/translation-program/how-to-translate/index.md similarity index 100% rename from src/content/contributing/translation-program/how-to-translate/index.md rename to public/content/contributing/translation-program/how-to-translate/index.md diff --git a/src/content/contributing/translation-program/how-to-translate/list-of-languages.png b/public/content/contributing/translation-program/how-to-translate/list-of-languages.png similarity index 100% rename from src/content/contributing/translation-program/how-to-translate/list-of-languages.png rename to public/content/contributing/translation-program/how-to-translate/list-of-languages.png diff --git a/src/content/contributing/translation-program/how-to-translate/online-editor.png b/public/content/contributing/translation-program/how-to-translate/online-editor.png similarity index 100% rename from src/content/contributing/translation-program/how-to-translate/online-editor.png rename to public/content/contributing/translation-program/how-to-translate/online-editor.png diff --git a/src/content/contributing/translation-program/index.md b/public/content/contributing/translation-program/index.md similarity index 100% rename from src/content/contributing/translation-program/index.md rename to public/content/contributing/translation-program/index.md diff --git a/src/content/contributing/translation-program/launchpad-screenshot.png b/public/content/contributing/translation-program/launchpad-screenshot.png similarity index 100% rename from src/content/contributing/translation-program/launchpad-screenshot.png rename to public/content/contributing/translation-program/launchpad-screenshot.png diff --git a/src/content/contributing/translation-program/mission-and-vision/index.md b/public/content/contributing/translation-program/mission-and-vision/index.md similarity index 100% rename from src/content/contributing/translation-program/mission-and-vision/index.md rename to public/content/contributing/translation-program/mission-and-vision/index.md diff --git a/src/content/contributing/translation-program/playbook/index.md b/public/content/contributing/translation-program/playbook/index.md similarity index 100% rename from src/content/contributing/translation-program/playbook/index.md rename to public/content/contributing/translation-program/playbook/index.md diff --git a/src/content/contributing/translation-program/resources/index.md b/public/content/contributing/translation-program/resources/index.md similarity index 100% rename from src/content/contributing/translation-program/resources/index.md rename to public/content/contributing/translation-program/resources/index.md diff --git a/src/content/contributing/translation-program/translatathon/approved.png b/public/content/contributing/translation-program/translatathon/approved.png similarity index 100% rename from src/content/contributing/translation-program/translatathon/approved.png rename to public/content/contributing/translation-program/translatathon/approved.png diff --git a/public/content/contributing/translation-program/translatathon/index.md b/public/content/contributing/translation-program/translatathon/index.md new file mode 100644 index 00000000000..ea7a49adca1 --- /dev/null +++ b/public/content/contributing/translation-program/translatathon/index.md @@ -0,0 +1,206 @@ +--- +title: Ethereum.org Translatathon +description: Join the first ethereum.org Translatathon to contribute to ethereum.org, learn about Ethereum, and compete for prizes. +lang: en +--- + +Welcome to the first ever ethereum.org Translatathon! + +A translatathon is a collaborative and competitive hackathon-style event where individuals and teams compete for prizes by translating ethereum.org content into different languages. + +The goal is to translate website content and help make ethereum.org more accessible to non-English speakers, raise awareness of the importance of localization and the [Translation program](/contributing/translation-program/), onboard new contributors and give back to our community, while fostering a sense of community by teaming up, collaborating on translations, and competing against other teams. + +We invite you to join us in breaking down language barriers and making ethereum.org content available to a truly global audience. By participating in the Translatathon, you’ll have an opportunity to meet and collaborate with like-minded individuals from across the globe, compete for exciting prizes, and contribute to making Ethereum content more accessible to the world! + +## Overview {#overview} + +### When {#when} + +- Application period: August 1st - August 15th +- Translation period: August 16th - August 23rd +- Evaluation & QA period: August 23rd - August 30th +- Results announcement: August 31st + +### Where {#where} + +The translations and review process will take place in the [ethereum.org project on Crowdin](https://crowdin.com/project/ethereum-org), a localization management platform where all of our localization processes take place. + +All of the Translatathon participants will be required to join the project in Crowdin and translate directly on the platform, where you can translate as individuals or collaborate as part of a team. + +Office hours, workshops, team formation and FAQ sessions will be hosted on the [ethereum.org Discord](https://www.ethereum.org/discord), where you’ll also be able to find all the relevant information on the Translatathon, follow along with announcements and updates, and reach out to other participants and the ethereum.org team. + +### How {#how} + +#### Application period {#applications} + +The application period will be open from **August 1st** to **August 15th** + +All participants in the Translatathon are required to apply in order to participate and compete for prizes. + +During this period, we will be organizing several team formation calls on the Discord, where participants will be able to form teams and apply to compete in the ‘Teams’ category. + +Participants planning to compete as a team need to fill out the [Team registration form](https://teams.paperform.co/) by the end of the application period, adding links to the Crowdin profiles of each team member. + +#### Categories {#categories} + +The Translatathon will be split into two categories: **Teams** and **Individuals** + +Teams will be able to participate by collaborating on translations, competing only against other teams, and the final scores will be calculated based on the sum of translated words by all team members and the content buckets they translated. Teams can have up to a total of 3 members. + +Team members can translate into different languages! + +Individuals will participate in the Translatathon as normal, competing only against other individuals, and the final scores will be calculated based on their number of translated words and the content buckets they translated. + +**Only translations, submitted during the Translation period - starting 16th of August at 5:00am UTC and ending 23rd of August at 5:00am UTC - will count towards the final score.** + +## Step-by-step instructions {#instructions} + +1. Learn more about the Translatathon and read up on the timeline, process, requirements, and evaluation process + +2. Apply to participate [here](https://translatathon.paperform.co/) + +3. Join the team formation and Onboarding calls on the [ethereum.org Discord](https://www.ethereum.org/discord) + +4. If you’re planning to participate as part of a team, fill out the [Team registration form](https://teams.paperform.co/) + +5. Check out the resources on [how to join the project and how to use Crowdin](/contributing/translation-program/how-to-translate/), and read through the [Translation style guide](/contributing/translation-program/translators-guide/) for in-depth guidelines on translating ethereum.org content + +6. Translate! + + + When translating, do not use machine translation or submit low-quality translations, since all translations will be reviewed, and participants found using machine translation or submitting inaccurate translations will be disqualified from competing for prizes! + + +## Details and submission criteria {#details} + +### Requirements and scoring {#requirements-scoring} + +With the translation process taking place in Crowdin, the deliverable for Translatathon participants is simply the content you have translated in the [ethereum.org project](https://crowdin.com/project/ethereum-org). No need to manually submit anything. + +In order for your submissions to be counted, make sure that you are only translating untranslated and unapproved strings. + +This means that you should only be translating files that are less than 100% translated, and strings with no existing translations. They can be easily identified by the red square (as shown in the image below). + +Untranslated string (translate this!): + +![Untranslated string](./untranslated.png) + +Translated strings (do not translate): + +![Translated string](./translated.png) + +String with an approved translation (do not translate): + +![Approved string](./approved.png) + +The files for translation are already categorized by priority in Crowdin, with initial content buckets containing the most high-traffic pages. + +You can read more about content buckets [here](/contributing/translation-program/how-to-translate/#find-document), and check the exact distribution of pages across different content buckets [here](/contributing/translation-program/content-buckets/). + +We always recommend contributors to translate the content buckets in order, starting with 1) Homepage → 2) Essentials → 3) Exploring → 4) Use Ethereum pages, etc., but during the Translatathon, this will be especially important and could heavily influence your score, since the higher priority buckets will have a higher multiplier when calculating the final score. + +Full breakdown of multipliers by content bucket: + +- Content buckets 1-8: 1.2x points multiplier +- Content buckets 9-15: 1.1x points multiplier +- Content buckets 16-28: 1x points multiplier +- Remix translations: 0.8x points multiplier + +### Prizes {#prizes} + +The total prize pool for the Translatathon is 30,000$. + +A detailed breakdown of prizes will be announced at the end of the application period. + +### Evaluation process {#evaluation-process} + +We work with [Acolad](https://www.acolad.com/), a leading localization agency, on all review and QA processes for ethereum.org content. + +As part of the evaluation process for the Translatathon, all translations will be subject to a QA and feedback step, where professional linguists will evaluate submissions by individual translators based on quality and accuracy. + +We will also be running anti-machine translation measures, with Crowdin providing some tools that automatically detect machine translations. + +While translation quality will not play a critical role in the scoring, any participants found using machine translation or suggesting low-quality and inaccurate translations will be disqualified and not eligible to compete for prizes! + +If you are participating in the Translatathon as part of a team, try to pick your teammates wisely. Any team members that are disqualified based on the above criteria will results in your team losing points, putting you at a disadvantage against other teams. + +The evaluation period will take one week after the translation period ends, and results & winners will be announced on August 31st. + +All translations will also be subject to a thorough review before being added to the website. + +## Terms & conditions {#Terms-and-Conditions} + +_The Ethereum.org Translation Competition, also referred to as the “Translatathon”, is an experimental initiative by the ethereum.org team to incentivise and reward contributions to the ethereum.org Translation Program._ + +- Modification and Termination. We reserve the right to modify the rules or to terminate the Translatathon at any time, without prior notice. All changes will be effective immediately upon announcement. + +- Eligibility, Judging, and Prizes. The determination of eligibility, scoring and judging methodology, and prize distribution fall solely and irrevocably under our discretion. + +- Data Privacy. By submitting the application form, applicants and participants confirm that they have read and agree to our Privacy Policy and consent to share with us the requested information, which may include information that constitutes personal data. We will keep all information provided confidential, except for the participants’ provided Crowdin usernames and profile images which may be used in public announcements related to competition results and winners. + +- Translation Standards. The use of machine translation tools, as determined by us in our sole discretion, may result in disqualification from the competition. In addition, the submission of incorrect and/or inaccurate translations, as determined by us in our sole discretion, may result in ineligibility for prize consideration. Further, any contributions towards strings that have already been translated or reviewed, as determined by us in our sole discretion, will not be included in the participants’ final score. We reserve the right to make such determinations, which shall be final and binding. + +- Intellectual Property. Participants agree that by submitting a translation work during the Translatathon, they grant the Ethereum Foundation an irrevocable, non-exclusive, royalty-free licence to use, reproduce, distribute, display, modify, adapt, create derivative works from, and otherwise alter their translation work. Further, participants agree that their translation works may be made publicly available on the ethereum.org website under an open-source licence, including a Creative Commons licence, which allows others to use, share, and build upon the work. + +- Taxes. Any tax implications arising from the receipt of prizes are the sole responsibility of the prize recipient. + +- Comprehensively Sanctioned Countries. Participants from regions or countries that are subject to comprehensive international sanctions (including, but not limited to Cuba, Iran, North Korea, and Syria) will not be eligible for participation. + +- Waiver of Liability. Participants agree that the Ethereum Foundation, its affiliates, and all of their respective officers, directors, employees, and agents will have no liability whatsoever for any injuries, losses, or damages of any kind arising from or in connection with their participation in the Translatathon. + +- Governing Law. Any dispute or claim arising out of or relating to the Translatathon (in each case, including non-contractual disputes or claims), shall be governed by and construed in accordance with the laws of Switzerland without giving effect to any choice or conflict of law provision or rule (whether of Switzerland or any other jurisdiction). + +## Frequently asked questions {#FAQ} + + + +- In Crowdin, you can send a direct message to Ethereum.org Team +- On the ethereum.org Discord, you can send a message in the #translatathon & #translate channels +- You can send an email to translations@ethereum.org + + + + + +You can translate into any language! It is recommended to only translate into your native language to ensure sufficient quality, but in short, all language available in Crowdin are in scope for the Translatathon. + +In case you would like to translate into a language that is not available in the ethereum.org project in Crowdin, please send a message to Ethereum.org Team in Crowdin, or send a message in the #translatathon or #translate channels on the ethereum.org Discord and we’ll add the language to the project. + + + + + +Yes, all Translatathon participants are required to submit the individual application form to participate. + +Only one member of a team needs to submit the team registration form, so we can keep track of teams and their members. + + + + + +Machine translation is strictly forbidden, but the project in Crowdin has a built-in Translation memory and Glossary that you can use to assist you in the process, or check definitions and established translations for specific terms. + +You can learn more about navigating Crowdin and using the Translation memory and Glossary here. + + + + + +If you are already connected with other translators or people who would be interested in participating, you can simply apply to register as a team and add the Crowdin accounts for everyone that will be part of the team. + +You can also invite your friends and form a team with them. + +Finally, we’ll be hosting team formation calls on the ethereum.org Discord, where you can connect with other individuals looking for teammates. + + + + + +If the ethereum.org content in Crowdin has been 100% translated into your language, congratulations! + +Once the Translatathon is over, all the translated content will be fully reviewed and added to the website. + +However, despite your language being completely translated, you can still participate in the Translatathon by translating Remix content. +These translations will be used in the Remix IDE documentation and have a lower score multiplier than ethereum.org content. + + diff --git a/src/content/contributing/translation-program/translatathon/translated.png b/public/content/contributing/translation-program/translatathon/translated.png similarity index 100% rename from src/content/contributing/translation-program/translatathon/translated.png rename to public/content/contributing/translation-program/translatathon/translated.png diff --git a/src/content/contributing/translation-program/translatathon/untranslated.png b/public/content/contributing/translation-program/translatathon/untranslated.png similarity index 100% rename from src/content/contributing/translation-program/translatathon/untranslated.png rename to public/content/contributing/translation-program/translatathon/untranslated.png diff --git a/src/content/contributing/translation-program/translators-guide/article-titles-in-editor.png b/public/content/contributing/translation-program/translators-guide/article-titles-in-editor.png similarity index 100% rename from src/content/contributing/translation-program/translators-guide/article-titles-in-editor.png rename to public/content/contributing/translation-program/translators-guide/article-titles-in-editor.png diff --git a/src/content/contributing/translation-program/translators-guide/article-titles-in-sidebar.png b/public/content/contributing/translation-program/translators-guide/article-titles-in-sidebar.png similarity index 100% rename from src/content/contributing/translation-program/translators-guide/article-titles-in-sidebar.png rename to public/content/contributing/translation-program/translators-guide/article-titles-in-sidebar.png diff --git a/src/content/contributing/translation-program/translators-guide/crowdin-warning-example.png b/public/content/contributing/translation-program/translators-guide/crowdin-warning-example.png similarity index 100% rename from src/content/contributing/translation-program/translators-guide/crowdin-warning-example.png rename to public/content/contributing/translation-program/translators-guide/crowdin-warning-example.png diff --git a/src/content/contributing/translation-program/translators-guide/editor-settings.png b/public/content/contributing/translation-program/translators-guide/editor-settings.png similarity index 100% rename from src/content/contributing/translation-program/translators-guide/editor-settings.png rename to public/content/contributing/translation-program/translators-guide/editor-settings.png diff --git a/src/content/contributing/translation-program/translators-guide/example-of-ambiguous-tags.png b/public/content/contributing/translation-program/translators-guide/example-of-ambiguous-tags.png similarity index 100% rename from src/content/contributing/translation-program/translators-guide/example-of-ambiguous-tags.png rename to public/content/contributing/translation-program/translators-guide/example-of-ambiguous-tags.png diff --git a/src/content/contributing/translation-program/translators-guide/example-of-code-snippets.png b/public/content/contributing/translation-program/translators-guide/example-of-code-snippets.png similarity index 100% rename from src/content/contributing/translation-program/translators-guide/example-of-code-snippets.png rename to public/content/contributing/translation-program/translators-guide/example-of-code-snippets.png diff --git a/src/content/contributing/translation-program/translators-guide/example-of-link.png b/public/content/contributing/translation-program/translators-guide/example-of-link.png similarity index 100% rename from src/content/contributing/translation-program/translators-guide/example-of-link.png rename to public/content/contributing/translation-program/translators-guide/example-of-link.png diff --git a/src/content/contributing/translation-program/translators-guide/example-of-links-inside-tags.png b/public/content/contributing/translation-program/translators-guide/example-of-links-inside-tags.png similarity index 100% rename from src/content/contributing/translation-program/translators-guide/example-of-links-inside-tags.png rename to public/content/contributing/translation-program/translators-guide/example-of-links-inside-tags.png diff --git a/src/content/contributing/translation-program/translators-guide/example-of-strong-tags.png b/public/content/contributing/translation-program/translators-guide/example-of-strong-tags.png similarity index 100% rename from src/content/contributing/translation-program/translators-guide/example-of-strong-tags.png rename to public/content/contributing/translation-program/translators-guide/example-of-strong-tags.png diff --git a/src/content/contributing/translation-program/translators-guide/hide-tags.png b/public/content/contributing/translation-program/translators-guide/hide-tags.png similarity index 100% rename from src/content/contributing/translation-program/translators-guide/hide-tags.png rename to public/content/contributing/translation-program/translators-guide/hide-tags.png diff --git a/src/content/contributing/translation-program/translators-guide/how-to-find-a-button.png b/public/content/contributing/translation-program/translators-guide/how-to-find-a-button.png similarity index 100% rename from src/content/contributing/translation-program/translators-guide/how-to-find-a-button.png rename to public/content/contributing/translation-program/translators-guide/how-to-find-a-button.png diff --git a/public/content/contributing/translation-program/translators-guide/index.md b/public/content/contributing/translation-program/translators-guide/index.md new file mode 100644 index 00000000000..1785814547f --- /dev/null +++ b/public/content/contributing/translation-program/translators-guide/index.md @@ -0,0 +1,299 @@ +--- +title: Translators guide +lang: en +description: Instructions and tips for ethereum.org translators +--- + +# Ethereum.org Translation Style Guide {#style-guide} + +The ethereum.org translation style guide contains some of the most important guidelines, instructions, and tips for translators, helping us localize the website. + +This document serves as a general guide and is not specific to any one language. + +If you have any questions, suggestions or feedback, feel free to reach out to us at translations@ethereum.org, send a message to @ethdotorg on Crowdin, or [join our Discord](https://discord.gg/ethereum-org), where you can message us in the #translations channel or reach out to any of the team members. + +## Using Crowdin {#using-crowdin} + +You can find basic instructions on how to join the project in Crowdin and how to use the Crowdin online editor on the [Translation Program page](/contributing/translation-program/#how-to-translate). + +If you would like to learn more about Crowdin and using some of its advanced feature, the [Crowdin knowledge base](https://support.crowdin.com/online-editor/) contains a lot of in-depth guides and overviews of all Crowdin functionality. + +## Capturing the essence of the message {#capturing-the-essence} + +When translating ethereum.org content, avoid literal translations. + +It is important that the translations capture the essence of the message. This could mean rephrasing certain phrases, or using descriptive translations instead of translating the content word for word. + +Different languages have different grammar rules, conventions and word order. When translating, please be mindful of how sentences are structured in the target languages, and avoid literally translating the English source, as this can lead to poor sentence structure and readability. + +Instead of translating the source text word for word, it is recommended you read the entire sentence and adapt it to fit the conventions of the target language. + +## Formal vs. informal {#formal-vs-informal} + +We use the formal form of address, which is always polite and appropriate for all visitors. + +Using the formal address allows us to avoid sounding unofficial or offensive, and works regardless of the visitor’s age and gender. + +Most Indo-European and Afro-Asiatic languages use gender-specific second-person personal pronouns, which distinguish between male and female. When addressing the user or using possessive pronouns, we can avoid assuming the visitor’s gender, as the formal form of address is generally applicable and consistent, regardless of how they identify. + +## Simple and clear vocabulary and meaning {#simple-vocabulary} + +Our goal is to make content on the website understandable to as many people as possible. + +In most cases, this can be easily achieved by using short and simple words that are easily understandable. If there are multiple possible translations for a certain word in your language with the same meaning, the best option is most often the shortest word that clearly reflects the meaning. + +## Writing system {#writing-system} + +Ethereum.org is available in a number of languages, using alternative writing systems (or writing scripts) to Latin. + +All of the content should be translated using the correct writing system for your language, and should not include any words, written using Latin characters. + +When translating the content, you should ensure that the translations are consistent and do not include any Latin characters. + +A common misconception is that Ethereum should always be written in Latin. This is mostly incorrect, please use the spelling of Ethereum, native to your language (e.g. 以太坊 in Chinese, إيثيريوم in Arabic, etc.). + +**The above doesn’t apply to languages, where proper names shouldn’t be translated as a rule.** + +## Translating page metadata {#translating-metadata} + +Some pages contain metadata on the page, like 'title', 'lang', 'description', 'sidebar', etc. + +We hide the content that translators should never translate when uploading new pages to Crowdin, meaning that all the metadata visible to translators in Crowdin should get translated. + +Please be especially mindful when translating any strings where the source text is 'en'. This represents the language that the page is available in and should be translated to the [ISO language code for your language](https://www.andiamo.co.uk/resources/iso-language-codes/). These strings should always be translated using Latin characters, not the writing script, native to the target language. + +If you are unsure which language code to use, you can check the translation memory in Crowdin or find the language code for your language in the URL of the page in the Crowdin online editor. + +Some examples of language codes for the most widely spoken languages: + +- Arabic - ar +- Chinese Simplified - zh +- French - fr +- Hindi - hi +- Spanish - es + +## Titles of external articles {#external-articles} + +Some strings contain titles of external articles. Most of our developer documentation pages contain links to external articles for further reading. The strings containing titles of articles need to be translated, regardless of the article's language, to ensure a more consistent user experience for the visitors viewing the page in their language. + +You can find some examples of what these strings look like for translators and how to identify them below (links to articles can be found mostly at the bottom of these pages, in the 'Further reading' section): + +![Article titles in sidebar.png](./article-titles-in-sidebar.png) +![Article titles in editor.png](./article-titles-in-editor.png) + +## Crowdin warnings {#crowdin-warnings} + +Crowdin has a built-in feature that warns translators when they are about to make a mistake. Crowdin will automatically warn you of this before saving your translation if you forget to include a tag from the source, translate elements that should not be translated, add several consecutive spaces, forget end punctuation, etc. +If you see a warning like this, please go back and double-check the suggested translation. + +**Never ignore these warnings, as they usually mean that something is wrong, or that the translation is missing a key part of the source text.** + +An example of a Crowdin warning when you forget to add a tag to your translation: +![Example of a Crowdin warning](./crowdin-warning-example.png) + +## Dealing with tags and code snippets {#dealing-with-tags} + +A lot of the source content contains tags and variables, which are highlighted in yellow in the Crowdin editor. These serve different functions and should be approached correctly. + +**Crowdin settings** + +To make it easier to manage tags and copy them directly from the source, we recommend changing your settings in the Crowdin editor. + +1. Open settings + ![How to open settings in the editor](./editor-settings.png) + +2. Scroll down to the 'HTML tags displaying' section + +3. Select 'Hide' + ![Please select 'Hide'](./hide-tags.png) + +4. Click 'Save' + +By selecting this option, the full tag text will no longer be shown, and will be replaced by a number. +When translating, clicking on this tag will automatically copy the exact tag to the translation field. + +**Links** + +You may notice full links to pages on ethereum.org or other websites. + +These should be identical to the source and not changed or translated. If you translate a link or change it in any way, even just removing a part of it, like a slash (/), this will lead to broken and unusable links. + +The best way to handle links is to copy them directly from the source, either by clicking on them or using the ‘Copy Source’ button (Alt+C). + +![Example of link.png](./example-of-link.png) + +Links also appear in the source text in the form of tags (i.e. <0> ). If you hover over the tag, the editor will show its full content - sometimes these tags will represent links. + +It is very important to copy the links from the source and not change their order. + +If the order of the tags is changed, the link they represent will be broken. + +![Example of links inside tags.png](./example-of-links-inside-tags.png) + +**Tags and variables** + +The source text contains many different types of tags, which should always be copied from the source and never changed. Similarly to above, the order of these tags in the translation should also remain the same as the source. + +Tags always contain an opening and closing tag. In most cases, the text between opening and closing tags should be translated. + +Example: ``Decentralized`` + +`` - _Opening tag that makes the text bold_ + +Decentralized - _Translatable text_ + +`` - _Closing tag_ + +![Example of 'strong' tags.png](./example-of-strong-tags.png) + +Code snippets should be approached slightly differently to the other tags, since they contain code that should not be translated. + +Example: ``nonce`` + +`` - _Opening tag, which contains a code snippet_ + +nonce - _Non-translatable text_ + +`` - _Closing tag_ + +![Example of code snippets.png](./example-of-code-snippets.png) + +The source text also contains shortened tags, which only contain numbers, meaning that their function is not immediately obvious. You can hover over these tags to see exactly which function they serve. + +In the example below, you can see that hovering over the <0> tag shows that it represents `` and contains a code snippet, therefore the content inside these tags should not be translated. + +![Example of ambiguous tags.png](./example-of-ambiguous-tags.png) + +## Short vs. full forms/abbreviations {#short-vs-full-forms} + +There are a lot of abbreviations used on the website, e.g. dapps, NFT, DAO, DeFi, etc. These abbreviations are commonly used in English and most visitors to the website are familiar with them. + +Since they usually don’t have established translations in other languages, the best way to approach these and similar terms is to provide a descriptive translation of the full form, and add the English abbreviation in brackets. + +Do not translate these abbreviations, since most people wouldn’t be familiar with them, and the localized versions would not make much sense to most visitors. + +Example of how to translate dapps: + +- Decentralized applications (dapps) → _Translated full form (English abbreviation in brackets)_ + +## Terms without established translations {#terms-without-established-translations} + +Some terms might not have established translations in other languages, and are widely known by the original English term. Such terms mostly include newer concepts, like proof-of-work, proof-of-stake, Beacon Chain, staking, etc. + +While translating these terms can sound unnatural, since the English version is commonly used in other languages as well, it is highly recommended that they are translated. + +When translating them, feel free to get creative, use descriptive translations, or simply translate them literally. + +**The reason why most terms should be translated, instead of leaving some in English, is the fact that this new terminology will become more widespread in the future, as more people start using Ethereum and related technologies. If we want to onboard more people from all over the world to this space, we need to provide understandable terminology in as many languages as possible, even if we need to create it ourselves.** + +## Buttons & CTAs {#buttons-and-ctas} + +The website contains numerous buttons, which should be translated differently than other content. + +Button text can be identified by viewing the context screenshots, connected with most strings, or by checking the context in the editor, which includes the phrase ‘’button’’. + +The translations for buttons should be as short as possible, to prevent formatting mismatches. Additionally, button translations should be imperative, i.e. present a command or request. + +![How to find a button.png](./how-to-find-a-button.png) + +## Translating for inclusivity {#translating-for-inclusivity} + +Ethereum.org visitors come from all over the world and from different backgrounds. The language on the website should therefore be neutral, welcoming to everyone and not exclusive. + +An important aspect of this is gender neutrality. This can be easily achieved by using the formal form of address, and avoiding any gender-specific words in the translations. + +Another form of inclusivity is trying to translate for a global audience, not specific to any country, race or region. + +Finally, the language should be suitable for all audiences and ages. + +## Language-specific translations {#language-specific-translations} + +When translating, it is important to follow the grammar rules, conventions and formatting, used in your language, as opposed to copying from the source. The source text follows English grammar rules and conventions, which is not applicable to many other languages. + +You should be aware of the rules for your language and translate accordingly. If you need help, reach out to us and we will help you find some resources on how these elements should be used in your language. + +Some examples of what to be particularly mindful of: + +### Punctuation, formatting {#punctuation-and-formatting} + +**Capitalization** + +- There are vast differences in capitalization in different languages. +- In English, it is common to capitalize all words in titles and names, months and days, language names, holidays, etc. In many other languages, this is grammatically incorrect, as they have different capitalization rules. +- Some languages also have rules about capitalizing personal pronouns, nouns, and certain adjectives, which are not capitalized in English. + +**Spacing** + +- Orthography rules define the use of spaces for each language. Because spaces are used everywhere, these rules are some of the most distinct, and spaces are some of the most mistranslated elements. +- Some common differences in spacing between English and other languages: + - Space before units of measure and currencies (e.g. USD, EUR, kB, MB) + - Space before degree signs (e.g. °C, ℉) + - Space before some punctuation marks, especially the ellipsis (…) + - Space before and after slashes (/) + +**Lists** + +- Every language has a diverse and complex set of rules for writing lists. These can be significantly different to English. +- In some languages, the first word of each new line needs to be capitalized, while in others, new lines should start with lower-case letters. Many languages also have different rules about capitalization in lists, depending on the length of each line. +- The same applies to punctuation of line items. The end punctuation in lists can be a period (**.**), comma (**,**), or semicolon (**;**), depending on the language. + +**Quotation marks** + +- Languages use many different quotation marks. Simply copying the English quotation marks from the source is often incorrect. +- Some of the most common types of quotation marks include: + - „example text“ + - ‚example text’ + - »example text« + - “example text” + - ‘example text’ + - «example text» + +**Hyphens and dashes** + +- In English, a hyphen (-) is used to join words or different parts of a word, while a dash (–) is used to indicate a range or a pause. +- Many languages have different rules for using hyphens and dashes that should be observed. + +### Formats {#formats} + +**Numbers** + +- The main difference in writing numbers in different languages is the separator used for decimals and thousands. For thousands, this can be a period, comma or space. Similarly, some languages use a decimal point, while others use a decimal comma. + - Some examples of large numbers: + - English – **1,000.50** + - Spanish – **1.000,50** + - French – **1 000,50** +- Another important consideration when translating numbers is the percent sign. It can be written in different ways: **100%**, **100 %** or **%100**. +- Finally, negative numbers can be displayed differently, depending on the language: -100, 100-, (100) or [100]. + +**Dates** + +- When translating dates, there are a number of considerations and differences based on the language. These include the date format, separator, capitalization and leading zeros. There are also differences between full-length and numerical dates. + - Some examples of different date formats: + - English UK (dd/mm/yyyy) – 1st January, 2022 + - English US (mm/dd/yyyy) – January 1st, 2022 + - Chinese (yyyy-mm-dd) – 2022 年 1 月 1 日 + - French (dd/mm/yyyy) – 1er janvier 2022 + - Italian (dd/mm/yyyy) – 1º gennaio 2022 + - German (dd/mm/yyyy) – 1. Januar 2022 + +**Currencies** + +- Translating currencies can be challenging, due to the different formats, conventions and conversions. As a general rule, please keep currencies the same as the source. You can add your local currency and conversion in brackets, for the benefit of the reader. +- The main differences in writing currencies in different languages include symbol placement, decimal commas vs. decimal points, spacing, and abbreviations vs. symbols. + - Symbol placement: $100 or 100$ + - Decimal commas vs. decimal points: 100,50$ or 100.50$ + - Spacing: 100$ or 100 $ + - Abbreviations vs. symbols: 100 $ or 100 USD + +**Units of measure** + +- As a general rule, please keep the units of measure as per the source. If your country uses a different system, you can include the conversion in brackets. +- Aside from the localization of units of measure, it is also important to note the differences in how languages approach these units. The main difference is the spacing between the number and unit, which can be different, based on the language. Examples of this include 100kB vs. 100 kB or 50ºF vs. 50 ºF. + +## Conclusion {#conclusion} + +Translating ethereum.org is a great opportunity to learn about the different aspects of Ethereum. + +When translating, try not to rush. Take it easy and have fun! + +Thank you for being involved with the Translation Program and helping us make the website accessible to a wider audience. The Ethereum community is global, and we are happy you are a part of it! diff --git a/src/content/cookie-policy/index.md b/public/content/cookie-policy/index.md similarity index 100% rename from src/content/cookie-policy/index.md rename to public/content/cookie-policy/index.md diff --git a/public/content/dao/index.md b/public/content/dao/index.md new file mode 100644 index 00000000000..ab073b90663 --- /dev/null +++ b/public/content/dao/index.md @@ -0,0 +1,165 @@ +--- +title: Decentralized autonomous organizations (DAOs) +description: An overview of DAOs on Ethereum +lang: en +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: A representation of a DAO voting on a proposal. +summaryPoint1: Member-owned communities without centralized leadership. +summaryPoint2: A safe way to collaborate with internet strangers. +summaryPoint3: A safe place to commit funds to a specific cause. +--- + +## What are DAOs? {#what-are-daos} + +A DAO is a collectively-owned, blockchain-governed organization working towards a shared mission. + +DAOs allow us to work with like-minded folks around the globe without trusting a benevolent leader to manage the funds or operations. There is no CEO who can spend funds on a whim or CFO who can manipulate the books. Instead, blockchain-based rules baked into the code define how the organization works and how funds are spent. + +They have built-in treasuries that no one has the authority to access without the approval of the group. Decisions are governed by proposals and voting to ensure everyone in the organization has a voice, and everything happens transparently on-chain. + +## Why do we need DAOs? {#why-dao} + +Starting an organization with someone that involves funding and money requires a lot of trust in the people you're working with. But it’s hard to trust someone you’ve only ever interacted with on the internet. With DAOs you don’t need to trust anyone else in the group, just the DAO’s code, which is 100% transparent and verifiable by anyone. + +This opens up so many new opportunities for global collaboration and coordination. + +### A comparison {#dao-comparison} + +| DAO | A traditional organization | +| ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | +| Usually flat, and fully democratized. | Usually hierarchical. | +| Voting required by members for any changes to be implemented. | Depending on structure, changes can be demanded from a sole party, or voting may be offered. | +| Votes tallied, and outcome implemented automatically without trusted intermediary. | If voting allowed, votes are tallied internally, and outcome of voting must be handled manually. | +| Services offered are handled automatically in a decentralized manner (for example distribution of philanthropic funds). | Requires human handling, or centrally controlled automation, prone to manipulation. | +| All activity is transparent and fully public. | Activity is typically private, and limited to the public. | + +### DAO examples {#dao-examples} + +To help this make more sense, here's a few examples of how you could use a DAO: + +- A charity – you could accept donations from anyone in the world and vote on which causes to fund. +- Collective ownership – you could purchase physical or digital assets and members can vote on how to use them. +- Ventures and grants – you could create a venture fund that pools investment capital and votes on ventures to back. Repaid money could later be redistributed amongst DAO-members. + +## How do DAOs work? {#how-daos-work} + +The backbone of a DAO is its smart contract, which defines the rules of the organization and holds the group's treasury. Once the contract is live on Ethereum, no one can change the rules except by a vote. If anyone tries to do something that's not covered by the rules and logic in the code, it will fail. And because the treasury is defined by the smart contract too that means no one can spend the money without the group's approval either. This means that DAOs don't need a central authority. Instead, the group makes decisions collectively, and payments are automatically authorized when votes pass. + +This is possible because smart contracts are tamper-proof once they go live on Ethereum. You can't just edit the code (the DAOs rules) without people noticing because everything is public. + + + More on smart contracts + + +## Ethereum and DAOs {#ethereum-and-daos} + +Ethereum is the perfect foundation for DAOs for a number of reasons: + +- Ethereum’s own consensus is distributed and established enough for organizations to trust the network. +- Smart contract code can’t be modified once live, even by its owners. This allows the DAO to run by the rules it was programmed with. +- Smart contracts can send/receive funds. Without this you'd need a trusted intermediary to manage group funds. +- The Ethereum community has proven to be more collaborative than competitive, allowing for best practices and support systems to emerge quickly. + +## DAO governance {#dao-governance} + +There are many considerations when governing a DAO, such as how voting and proposals work. + +### Delegation {#governance-delegation} + +Delegation is like the DAO version of representative democracy. Token holders delegate votes to users who nominate themselves and commit to stewarding the protocol and staying informed. + +#### A famous example {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) – ENS holders can delegate their votes to engaged community members to represent them. + +### Automatic transaction governance {#governance-example} + +In many DAOs, transactions will be automatically executed if a quorum of members votes affirmative. + +#### A famous example {#governance-example} + +[Nouns](https://nouns.wtf) – In Nouns DAO, a transaction is automatically executed if a quorum of votes is met and a majority votes affirmative, as long as it is not vetoed by the founders. + +### Multisig governance {#governance-example} + +While DAOs may have thousands of voting members, funds can live in a wallet shared by 5-20 active community members who are trusted and usually doxxed (public identities known to the community). After a vote, the multisig signers execute the will of the community. + +## DAO laws {#dao-laws} + +In 1977, Wyoming invented the LLC, which protects entrepreneurs and limits their liability. More recently, they pioneered the DAO law that establishes legal status for DAOs. Currently Wyoming, Vermont, and the Virgin Islands have DAO laws in some form. + +### A famous example {#law-example} + +[CityDAO](https://citydao.io) – CityDAO used Wyoming's DAO law to buy 40 acres of land near Yellowstone National Park. + +## DAO membership {#dao-membership} + +There are different models for DAO membership. Membership can determine how voting works and other key parts of the DAO. + +### Token-based membership {#token-based-membership} + +Usually fully permissionless, depending on the token used. Mostly these governance tokens can be traded permissionlessly on a decentralized exchange. Others must be earned through providing liquidity or some other ‘proof-of-work’. Either way, simply holding the token grants access to voting. + +_Typically used to govern broad decentralized protocols and/or tokens themselves._ + +#### A famous example {#token-example} + +[MakerDAO](https://makerdao.com) – MakerDAO's token MKR is widely available on decentralized exchanges and anyone can buy into having voting power on Maker protocol's future. + +### Share-based membership {#share-based-membership} + +Share-based DAOs are more permissioned, but still quite open. Any prospective members can submit a proposal to join the DAO, usually offering a tribute of some value in the form of tokens or work. Shares represent direct voting power and ownership. Members can exit at any time with their proportionate share of the treasury. + +_Typically used for more closer-knit, human-centric organizations like charities, worker collectives, and investment clubs. Can also govern protocols and tokens as well._ + +#### A famous example {#share-example} + +[MolochDAO](http://molochdao.com/) – MolochDAO is focused on funding Ethereum projects. They require a proposal for membership so the group can assess whether you have the necessary expertise and capital to make informed judgments about potential grantees. You can't just buy access to the DAO on the open market. + +### Reputation-based membership {#reputation-based-membership} + +Reputation represents proof of participation and grants voting power in the DAO. Unlike token or share-based membership, reputation-based DAOs don't transfer ownership to contributors. Reputation cannot be bought, transferred or delegated; DAO members must earn reputation through participation. On-chain voting is permissionless and prospective members can freely submit proposals to join the DAO and request to receive reputation and tokens as a reward in exchange for their contributions. + +_Typically used for decentralized development and governance of protocols and dapps, but also well suited to a diverse set of organizations like charities, worker collectives, investment clubs, etc._ + +#### A famous example {#reputation-example} + +[DXdao](https://DXdao.eth.link) – DXdao is a global sovereign collective building and governing decentralized protocols and applications since 2019. It leverages reputation-based governance and holographic consensus to coordinate and manage funds, meaning no one can buy their way into influencing its future. + +## Join / start a DAO {#join-start-a-dao} + +### Join a DAO {#join-a-dao} + +- [Ethereum community DAOs](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [DAOHaus's list of DAOs](https://app.daohaus.club/explore) +- [Tally.xyz list of DAOs](https://www.tally.xyz) + +### Start a DAO {#start-a-dao} + +- [Summon a DAO with DAOHaus](https://app.daohaus.club/summon) +- [Start a Governor DAO with Tally](https://www.tally.xyz/add-a-dao) +- [Create an Aragon-powered DAO](https://aragon.org/product) +- [Start a colony](https://colony.io/) +- [Create a DAO with DAOstack's holographic consensus](https://alchemy.daostack.io/daos/create) + +## Further reading {#further-reading} + +### DAO Articles {#dao-articles} + +- [What's a DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) +- [The DAO Handbook](https://daohandbook.xyz) +- [House of DAOs](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) +- [What is a DAO and what is it for?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) +- [How to Start a DAO-Powered Digital Community](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) +- [What is a DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) +- [What is Holographic Consensus?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) +- [DAOs are not corporations: where decentralization in autonomous organizations matters by Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) +- [DAOs, DACs, DAs and More: An Incomplete Terminology Guide](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Ethereum Blog](https://blog.ethereum.org) + +### Videos {#videos} + +- [What is a DAO in crypto?](https://youtu.be/KHm0uUPqmVE) +- [Can a DAO Build a City?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/public/content/decentralized-identity/index.md b/public/content/decentralized-identity/index.md new file mode 100644 index 00000000000..9ad1f7cfdef --- /dev/null +++ b/public/content/decentralized-identity/index.md @@ -0,0 +1,189 @@ +--- +title: Decentralized identity +description: What is decentralized identity, and why does it matter? +lang: en +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: /eth-gif-cat.png +summaryPoint1: Traditional identity systems have centralized the issuance, maintenance and control of your identifiers. +summaryPoint2: Decentralized identity removes reliance on centralized third parties. +summaryPoint3: Thanks to crypto, users now have the tools to issue, hold and control their own identifiers and attestations once again. +--- + +Identity underpins virtually every aspect of your life today. Using online services, opening a bank account, voting in elections, buying property, securing employment—all of these things require proving your identity. + +However, traditional identity management systems have long relied on centralized intermediaries who issue, hold, and control your identifiers and [attestations](#what-are-attestations). This means you cannot control your identity-related information or decide who has access to personally identifiable information (PII) and how much access these parties have. + +To solve these problems, we have decentralized identity systems built on public blockchains like Ethereum. Decentralized identity allows individuals to manage their identity-related information. With decentralized identity solutions, _you_ can create identifiers and claim and hold your attestations without relying on central authorities, like service providers or governments. + +## What is identity? {#what-is-identity} + +Identity means an individual's sense of self, defined by unique characteristics. Identity refers to being an _individual_, i.e., a distinct human entity. Identity could also refer to other non-human entities, such as an organization or authority. + +## What are identifiers? {#what-are-identifiers} + +An identifier is a piece of information that acts as a pointer to a particular identity or identities. Common identifiers include: + +- Name +- Social security number/tax ID number +- Mobile number +- Date and place of birth +- Digital identification credentials, e.g., email addresses, usernames, avatars + +These traditional examples of identifiers are issued, held and controlled by central entities. You need permission from your government to change your name or from a social media platform to change your handle. + +## What are attestations? {#what-are-attestations} + +An attestation is a claim made by one entity about another entity. If you live in the United States, the driver's license issued to you by the Department of Motor Vehicles (one entity) attests that you (another entity) are legally allowed to drive a car. + +Attestations are different from identifiers. An attestation _contains_ identifiers to reference a particular identity, and makes a claim about an attribute related to this identity. So, your driver's license has identifiers (name, date of birth, address) but is also the attestation about your legal right to drive. + +### What are decentralized identifiers? {#what-are-decentralized-identifiers} + +Traditional identifiers like your legal name or email address rely on third parties—governments and email providers. Decentralized identifiers (DIDs) are different—they aren't issued, managed, or controlled by any central entity. + +Decentralized identifiers are issued, held, and controlled by individuals. An [Ethereum account](/developers/docs/accounts/) is an example of a decentralized identifier. You can create as many accounts as you want without permission from anyone and without the need to store them in a central registry. + +Decentralized identifiers are stored on distributed ledgers (blockchains) or peer-to-peer networks. This makes DIDs [globally unique, resolvable with high availability, and cryptographically verifiable](https://w3c-ccg.github.io/did-primer/). A decentralized identifier can be associated with different entities, including people, organizations, or government institutions. + +## What makes decentralized identifiers possible? {#what-makes-decentralized-identifiers-possible} + +### 1. Public Key Infrastructure (PKI) {#public-key-infrastructure} + +Public-key infrastructure (PKI) is an information security measure that generates a [public key](/glossary/#public-key) and [private key](/glossary/#private-key) for an entity. Public-key cryptography is used in blockchain networks to authenticate user identities and prove ownership of digital assets. + +Some decentralized identifiers, such as an Ethereum account, have public and private keys. The public key identifies the account's controller, while the private keys can sign and decrypt messages for this account. PKI provides proofs needed to authenticate entities and prevent impersonation and use of fake identities, using [cryptographic signatures](https://andersbrownworth.com/blockchain/public-private-keys/) to verify all claims. + +### 2. Decentralized datastores {#decentralized-datastores} + +A blockchain serves as a verifiable data registry: an open, trustless, and decentralized repository of information. The existence of public blockchains eliminates the need to store identifiers in centralized registries. + +If anyone needs to confirm the validity of a decentralized identifier, they can look up the associated public key on the blockchain. This is different from traditional identifiers that require third parties to authenticate. + +## How do decentralized identifiers and attestations enable decentralized identity? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} + +Decentralized identity is the idea that identity-related information should be self-controlled, private, and portable, with decentralized identifiers and attestations being the primary building blocks. + +In the context of decentralized identity, attestations (also known as [Verifiable Credentials](https://www.w3.org/TR/vc-data-model/)) are tamper-proof, cryptographically verifiable claims made by the issuer. Every attestation or Verifiable Credential an entity (e.g., an organization) issues is associated with their DID. + +Because DIDs are stored on the blockchain, anyone can verify the validity of an attestation by cross-checking the issuer's DID on Ethereum. Essentially, the Ethereum blockchain acts like a global directory that enables the verification of DIDs associated with certain entities. + +Decentralized identifiers are the reason attestations are self-controlled and verifiable. Even if the issuer doesn't exist anymore, the holder always has proof of the attestation's provenance and validity. + +Decentralized identifiers are also crucial to protecting the privacy of personal information through decentralized identity. For instance, if an individual submits proof of an attestation (a driver's license), the verifying party doesn't need to check the validity of information in the proof. Instead, the verifier only needs cryptographic guarantees of the attestation's authenticity and the identity of the issuing organization to determine if the proof is valid. + +## Types of attestations in decentralized identity {#types-of-attestations-in-decentralized-identity} + +How attestation information is stored and retrieved in an Ethereum-based identity ecosystem is different from traditional identity management. Here is an overview of the various approaches to issuing, storing, and verifying attestations in decentralized identity systems: + +### Off-chain attestations {#off-chain-attestations} + +One concern with storing attestations on-chain is that they might contain information individuals want to keep private. The public nature of the Ethereum blockchain makes it unattractive to store such attestations. + +The solution is to issue attestations, held by users off-chain in digital wallets, but signed with the issuer's DID stored on-chain. These attestations are encoded as [JSON Web Tokens](https://en.wikipedia.org/wiki/JSON_Web_Token) and contain the issuer's digital signature—which allows for easy verification of off-chain claims. + +Here's an hypothetical scenario to explain off-chain attestations: + +1. A university (the issuer) generates an attestation (a digital academic certificate), signs with its keys, and issues it to Bob (the identity owner). + +2. Bob applies for a job and wants to prove his academic qualifications to an employer, so he shares the attestation from his mobile wallet. The company (the verifier) can then confirm the validity of the attestation by checking the issuer's DID (i.e., its public key on Ethereum). + +### Off-chain attestations with persistent access {#offchain-attestations-with-persistent-access} + +Under this arrangement attestations are transformed into JSON files and stored off-chain (ideally on a [decentralized cloud storage](/developers/docs/storage/) platform, such as IPFS or Swarm). However, a [hash](/glossary/#hash) of the JSON file is stored on-chain and linked to a DID via an on-chain registry. The associated DID could either be that of the issuer of the attestation or the recipient. + +This approach enables attestations to gain blockchain-based persistence, while keeping claims information encrypted and verifiable. It also allows for selective disclosure since the holder of the private key can decrypt the information. + +### On-chain attestations {#onchain-attestations} + +On-chain attestations are held in [smart contracts](/developers/docs/smart-contracts/) on the Ethereum blockchain. The smart contract (acting as a registry) will map an attestation to a corresponding on-chain decentralized identifier (a public key). + +Here's an example to show how on-chain attestations might work in practice: + +1. A company (XYZ Corp) plans to sell ownership shares using a smart contract but only wants buyers that have completed a background check. + +2. XYZ Corp can have the company performing background checks to issue on-chain attestations on Ethereum. This attestation certifies that an individual has passed the background check without exposing any personal information. + +3. The smart contract selling shares can check the registry contract for the identities of screened buyers, making it possible for the smart contract to determine who is permitted to buy shares or not. + +### Soulbound tokens and identity {#soulbound} + +[Soulbound tokens](https://vitalik.ca/general/2022/01/26/soulbound.html) (non-transferable NFTs) could be used to collect information unique to a specific wallet. This effectively creates a unique on-chain identity bound to a particular Ethereum address that could include tokens representing achievements (e.g. finishing some specific online course or passing a threshold score in a game) or community participation. + +## Benefits of decentralized identity {#benefits-of-decentralized-identity} + +1. Decentralized identity increases individual control of identifying information. Decentralized identifiers and attestations can be verified without relying on centralized authorities and third-party services. + +2. Decentralized identity solutions facilitates a trustless, seamless, and privacy-protecting method for verifying and managing user identity. + +3. Decentralized identity harnesses blockchain technology, which creates trust between different parties and provides cryptographic guarantees to prove the validity of attestations. + +4. Decentralized identity makes identity data portable. Users store attestations and identifiers in a mobile wallet and can share with any party of their choice. Decentralized identifiers and attestations are not locked into the database of the issuing organization. + +5. Decentralized identity should work well with emerging zero-knowledge technologies that will enable individuals to prove they own or have done something without revealing what that thing is. This could become a powerful way to combine trust and privacy for applications such as voting. + +6. Decentralized identity enables anti-Sybil mechanisms to identify when one individual human is pretending to be multiple humans to game or spam some system. + +## Decentralized identity use-cases {#decentralized-identity-use-cases} + +Decentralized identity has many potential use-cases: + +### 1. Universal logins {#universal-dapp-logins} + +Decentralized identity can help replace password-based logins with [decentralized authentication](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). Service providers can issue attestations to users, which can be stored in an Ethereum wallet. An example attestation would be an [NFT](/nft/) granting the holder access to an online community. + +A [Sign-In with Ethereum](https://login.xyz/) function would then enable servers to confirm the user's Ethereum account and fetch the required attestation from their account address. This means users can access platforms and websites without having to memorize long passwords and improves the online experience for users. + +### 2. KYC authentication {#kyc-authentication} + +Using many online services requires individuals to provide attestations and credentials, such as a driving license or national passport. But this approach is problematic because private user information can be compromised and service providers cannot verify the authenticity of the attestation. + +Decentralized identity allows companies to skip on conventional [Know-Your-Customer (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) processes and authenticate user identities via Verifiable Credentials. This reduces the cost of identity management and prevents the use of fake documentation. + +### 3. Voting and online communities {#voting-and-online-communities} + +Online voting and social media are two novel applications for decentralized identity. Online voting schemes are susceptible to manipulation, especially if malicious actors create false identities to vote. Asking individuals to present on-chain attestations can improve the integrity of online voting processes. + +Decentralized identity can help create online communities that are free of fake accounts. For example, each user might have to authenticate their identity using an on-chain identity system, like the Ethereum Name Service, reducing the possibility of bots. + +### 4. Anti-Sybil protection {#sybil-protection} + +Sybil attacks refer to individual humans tricking a system into thinking they are multiple people to increase their influence. [Grant-giving applications](https://gitcoin.co/grants/) that use [quadratic voting](https://www.radicalxchange.org/concepts/plural-voting/) are vulnerable to these Sybil attacks because the value of a grant is increased when more individuals vote for it, incentivizing users to split their contributions across many identities. Decentralized identities help to prevent this by raising the burden on each participant to prove that they are really human, although often without having to reveal specific private information. + +## Use decentralized identity {#use-decentralized-identity} + +There are many ambitious projects using Ethereum as a foundation for decentralized identity solutions: + +- **[Ethereum Name Service (ENS)](https://ens.domains/)** - _A decentralized naming system for on-chain, machine-readable identifiers, like, Ethereum wallet addresses, content hashes, and metadata._ +- **[SpruceID](https://www.spruceid.com/)** - _A decentralized identity project which allows users to control digital identity with Ethereum accounts and ENS profiles instead of relying on third-party services._ +- **[Ethereum Attestation Service (EAS)](https://attest.sh/)** - _A decentralized ledger/protocol for making on-chain or off-chain attestations about anything._ +- **[Proof of Humanity](https://www.proofofhumanity.id)** - _Proof of Humanity (or PoH) is a social identity verification system built on Ethereum._ +- **[BrightID](https://www.brightid.org/)** - _A decentralized, open-source social identity network seeking to reform identity verification through the creation and analysis of a social graph._ +- **[Proof-of-personhood Passport](https://proofofpersonhood.com/)** - _A decentralized digital identity aggregator._ +- **[walt.id](https://walt.id)** — _Open source decentralized identity and wallet infrastructure that enables developers and organizations to leverage self-sovereign identity and NFTs/SBTs._ + +## Further reading {#further-reading} + +### Articles {#articles} + +- [Blockchain Use Cases: Blockchain in Digital Identity](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ +- [What is Ethereum 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) — _Emmanuel Awosika_ +- [Introduction to Decentralized Identity](https://walt.id/white-paper/digital-identity) — _Dominik Beron_ + +### Videos {#videos} + +- [Decentralized Identity (Bonus Livestream Session)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _A great explainer video on decentralized identity by Andreas Antonopolous_ +- [Sign In with Ethereum and Decentralized Identity with Ceramic, IDX, React, and 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _YouTube tutorial on building out an identity management system for creating, reading, and updating a user's profile using their Ethereum wallet by Nader Dabit_ +- [BrightID - Decentralized Identity on Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _Bankless podcast episode discussing BrightID, a decentralized identity solution for Ethereum_ +- [The Off Chain Internet: Decentralized Identity & Verifiable Credentials](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — EthDenver 2022 presentation by Evin McMullen +- [Verifiable Credentials Explained](https://www.youtube.com/watch?v=ce1IdSr-Kig) - YouTube explainer video with demo by Tamino Baumann + +### Communities {#communities} + +- [ERC-725 Alliance on GitHub](https://github.com/erc725alliance) — _Supporters of the ERC725 standard for managing identity on the Ethereum blockchain_ +- [SpruceID Discord server](https://discord.com/invite/Sf9tSFzrnt) — _Community for enthusiasts and developers working on Sign-in with Ethereum_ +- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _A community of developers contributing to building a framework for verifiable data for applications_ +- [walt.id](https://discord.com/invite/AW8AgqJthZ) — _A community of developers and builders working on decentralized identity use cases across various industries_ diff --git a/public/content/defi/index.md b/public/content/defi/index.md new file mode 100644 index 00000000000..168c5a8ee1d --- /dev/null +++ b/public/content/defi/index.md @@ -0,0 +1,352 @@ +--- +title: Decentralized finance (DeFi) +description: An overview of DeFi on Ethereum +lang: en +template: use-cases +emoji: ":money_with_wings:" +image: /use-cases/defi.png +alt: An Eth logo made of lego bricks. +sidebarDepth: 2 +summaryPoint1: A global, open alternative to the current financial system. +summaryPoint2: Products that let you borrow, save, invest, trade, and more. +summaryPoint3: Based on open-source technology that anyone can program with. +--- + +DeFi is an open and global financial system built for the internet age – an alternative to a system that's opaque, tightly controlled, and held together by decades-old infrastructure and processes. It gives you control and visibility over your money. It gives you exposure to global markets and alternatives to your local currency or banking options. DeFi products open up financial services to anyone with an internet connection and they're largely owned and maintained by their users. So far tens of billions of dollars worth of crypto has flowed through DeFi applications and it's growing every day. + +## What's DeFi? {#what-is-defi} + +DeFi is a collective term for financial products and services that are accessible to anyone who can use Ethereum – anyone with an internet connection. With DeFi, the markets are always open and there are no centralized authorities who can block payments or deny you access to anything. Services that were previously slow and at risk of human error are automatic and safer now that they're handled by code that anyone can inspect and scrutinize. + +There's a booming crypto economy out there, where you can lend, borrow, long/short, earn interest, and more. Crypto-savvy Argentinians have used DeFi to escape crippling inflation. Companies have started streaming their employees their wages in real time. Some folks have even taken out and paid off loans worth millions of dollars without the need for any personal identification. + + + +## DeFi vs traditional finance {#defi-vs-tradfi} + +One of the best ways to see the potential of DeFi is to understand the problems that exist today. + +- Some people aren't granted access to set up a bank account or use financial services. +- Lack of access to financial services can prevent people from being employable. +- Financial services can block you from getting paid. +- A hidden charge of financial services is your personal data. +- Governments and centralized institutions can close down markets at will. +- Trading hours are often limited to business hours of specific time zone. +- Money transfers can take days due to internal human processes. +- There's a premium to financial services because intermediary institutions need their cut. + +### A comparison {#defi-comparison} + +| DeFi | Traditional finance | +| -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | +| You hold your money. | Your money is held by companies. | +| You control where your money goes and how it's spent. | You have to trust companies not to mismanage your money, like lending to risky borrowers. | +| Transfers of funds happen in minutes. | Payments can take days due to manual processes. | +| Transaction activity is pseudonymous. | Financial activity is tightly coupled with your identity. | +| DeFi is open to anyone. | You must apply to use financial services. | +| The markets are always open. | Markets close because employees need breaks. | +| It's built on transparency – anyone can look at a product's data and inspect how the system works. | Financial institutions are closed books: you can't ask to see their loan history, a record of their managed assets, and so on. | + + + Explore DeFi apps + + +## It started with Bitcoin... {#bitcoin} + +Bitcoin in many ways was the first DeFi application. Bitcoin lets you really own and control value and send it anywhere around the world. It does this by providing a way for a large number of people, who don't trust each other, to agree on a ledger of accounts without the need for a trusted intermediary. Bitcoin is open to anyone and no one has the authority to change its rules. Bitcoin's rules, like its scarcity and its openness, are written into the technology. It's not like traditional finance where governments can print money that devalues your savings and companies can shut down markets. + +Ethereum builds on this. Like Bitcoin, the rules can't change on you and everyone has access. But it also makes this digital money programmable, using [smart contracts](/glossary#smart-contract), so you can go beyond storing and sending value. + + + +## Programmable money {#programmable-money} + +This sounds odd... "why would I want to program my money"? However, this is more just a default feature of tokens on Ethereum. Anyone can program logic into payments. So you can get the control and security of Bitcoin mixed with the services provided by financial institutions. This lets you do things with cryptocurrencies that you can't do with Bitcoin like lending and borrowing, scheduling payments, investing in index funds and more. + + +
Explore our suggestions for DeFi applications to try out if you're new to Ethereum.
+ + Explore DeFi apps + +
+ +## What can you do with DeFi? {#defi-use-cases} + +There's a decentralized alternative to most financial services. But Ethereum also creates opportunities for creating financial products that are completely new. This is an ever-growing list. + +- [Send money around the globe](#send-money) +- [Stream money around the globe](#stream-money) +- [Access stable currencies](#stablecoins) +- [Borrow funds with collateral](#lending) +- [Borrow without collateral](#flash-loans) +- [Start crypto savings](#saving) +- [Trade tokens](#swaps) +- [Grow your portfolio](#investing) +- [Fund your ideas](#crowdfunding) +- [Buy insurance](#insurance) +- [Manage your portfolio](#aggregators) + + + +### Send money around the globe quickly {#send-money} + +As a blockchain, Ethereum is designed for sending transactions in a secure and global way. Like Bitcoin, Ethereum makes sending money around the world as easy as sending an email. Just enter your recipient's [ENS name](/nft/#nft-domains) (like bob.eth) or their account address from your wallet and your payment will go directly to them in minutes (usually). To send or receive payments, you will need a [wallet](/wallets/). + + + See payment dapps + + +#### Stream money around the globe... {#stream-money} + +You can also stream money over Ethereum. This lets you pay someone their salary by the second, giving them access to their money whenever they need it. Or rent something by the second like a storage locker or electric scooter. + +And if you don't want to send or stream [ETH](/eth/) because of how much its value can change, there are alternative currencies on Ethereum: stablecoins. + + + +### Access stable currencies {#stablecoins} + +Cryptocurrency volatility is a problem for lots of financial products and general spending. The DeFi community has solved this with stablecoins. Their value stays pegged to an another asset, usually a popular currency like dollars. + +Coins like Dai or USDC have a value that stays within a few cents of a dollar. This makes them perfect for earning or retail. Many people in Latin America have used stablecoins as a way of protecting their savings in a time of great uncertainty with their government-issued currencies. + + + More on stablecoins + + + + +### Borrowing {#lending} + +Borrowing money from decentralized providers comes in two main varieties. + +- Peer-to-peer, meaning a borrower will borrow directly from a specific lender. +- Pool-based where lenders provide funds (liquidity) to a pool that borrowers can borrow from. + + + See borrowing dapps + + +There are many advantages to using a decentralized lender... + +#### Borrowing with privacy {#borrowing-privacy} + +Today, lending and borrowing money all revolves around the individuals involved. Banks need to know whether you're likely to repay a loan before lending. + +Decentralized lending works without either party having to identify themselves. Instead, the borrower must put up collateral that the lender will automatically receive if their loan is not repaid. Some lenders even accept NFTs as collateral. NFTs are a deed to a unique asset, like a painting. [More on NFTs](/nft/) + +This allows you to borrow money without credit checks or handing over private information. + +#### Access to global funds {#access-global-funds} + +When you use a decentralized lender you have access to funds deposited from all over the globe, not just the funds in the custody of your chosen bank or institution. This make loans more accessible and improves the interest rates. + +#### Tax-efficiencies {#tax-efficiencies} + +Borrowing can give you access to the funds you need without needing to sell your ETH (a taxable event). Instead, you can use ETH as collateral for a stablecoin loan. This gives you the cash-flow you need and lets you keep your ETH. Stablecoins are tokens that are much better for when you need cash as they don't fluctuate in value like ETH. [More on stablecoins](#stablecoins) + +#### Flash loans {#flash-loans} + +Flash loans are a more experimental form of decentralized lending that let you borrow without collateral or providing any personal information. + +They're not widely accessible to non-technical folks right now but they hint at what might be possible to everyone in the future. + +It works on the basis that the loan is taken out and paid back within the same transaction. If it can't be paid back, the transaction reverts as if nothing ever happened. + +The funds that are often used are held in liquidity pools (big pools of funds used for borrowing). If they are not being used at a given moment, this creates an opportunity for someone to borrow these funds, conduct business with them, and repay them in-full quite literally at the same time they're borrowed. + +This means a lot of logic must be included in a very bespoke transaction. A simple example might be someone using a flash loan to borrow as much of an asset at one price so they can sell it on a different exchange where the price is higher. + +So in a single transaction, the following happens: + +- You borrow X amount of $asset at $1.00 from exchange A +- You sell X $asset on exchange B for $1.10 +- You pay back loan to exchange A +- You keep the profit minus the transaction fee + +If exchange B's supply dropped suddenly and the user wasn't able to buy enough to cover the original loan, the transaction would simply fail. + +To be able to do the above example in the traditional finance world, you'd need an enormous amount of money. These money-making strategies are only accessible to those with existing wealth. Flash loans are an example of a future where having money is not necessarily a prerequisite for making money. + +[More on flash loans](https://aave.com/flash-loans/) + + + +### Start saving with crypto {#saving} + +#### Lending {#lending} + +You can earn interest on your crypto by lending it and see your funds grow in real time. Right now interest rates are much higher than what you're likely to get at your local bank (if you're lucky enough to be able to access one). Here's an example: + +- You lend your 100 Dai, a [stablecoin](/stablecoins/), to a product like Aave. +- You receive 100 Aave Dai (aDai) which is a token that represents your loaned Dai. +- Your aDai will increase based on the interest rates and you can see your balance growing in your wallet. Dependent on the APR, your wallet balance will read something like 100.1234 after a few days or even hours! +- You can withdraw an amount of regular Dai that's equal to your aDai balance at any time. + + + See lending dapps + + +#### No-loss lotteries {#no-loss-lotteries} + +No-loss lotteries like PoolTogether are a fun and innovative new way to save money. + +- You buy 100 tickets using 100 Dai tokens. +- You receive 100 plDai representing your 100 tickets. +- If one of your tickets is picked as the winner, your plDai balance will increase by the amount of the prize pool. +- If you don't win, your 100 plDai rolls over to next week's draw. +- You can withdraw an amount of regular Dai that's equal to your plDai balance at any time. + +The prize pool is generated by all the interest generated by lending the ticket deposits like in the lending example above. + + + Try PoolTogether + + + + +### Exchange tokens {#swaps} + +There are thousands of tokens on Ethereum. Decentralized exchanges (DEXs) let you trade different tokens whenever you want. You never give up control of your assets. This is like using a currency exchange when visiting a different country. But the DeFi version never closes. The markets are 24/7, 365 days a year and the technology guarantees there will always be someone to accept a trade. + +For example, if you want to use the no-loss lottery PoolTogether (described above), you'll need a token like Dai or USDC. These DEXs allow you to swap your ETH for those tokens and back again when you're finished. + + + See token exchanges + + + + +### Advanced trading {#trading} + +There are more advanced options for traders who like a little more control. Limit orders, perpetuals, margin trading and more are all possible. With Decentralized trading you get access to global liquidity, the market never closes, and you're always in control of your assets. + +When you use a centralized exchange you have to deposit your assets before the trade and trust them to look after them. While your assets are deposited, they're at risk as centralized exchanges are attractive targets for hackers. + + + See trading dapps + + + + +### Grow your portfolio {#investing} + +There are fund management products on Ethereum that will try to grow your portfolio based on a strategy of your choice. This is automatic, open to everyone, and doesn't need a human manager taking a cut of your profits. + +A good example is the [DeFi Pulse Index fund (DPI)](https://defipulse.com/blog/defi-pulse-index/). This is a fund that rebalances automatically to ensure your portfolio always includes [the top DeFi tokens by market capitalization](https://www.coingecko.com/en/defi). You never have to manage any of the details and you can withdraw from the fund whenever you like. + + + See investment dapps + + + + +### Fund your ideas {#crowdfunding} + +Ethereum is an ideal platform for crowdfunding: + +- Potential funders can come from anywhere – Ethereum and its tokens are open to anybody, anywhere in the world. +- It's transparent so fundraisers can prove how much money has been raised. You can even trace how funds are being spent later down the line. +- Fundraisers can set up automatic refunds if, for example, there is a specific deadline and minimum amount that isn't met. + + + See crowdfunding dapps + + +#### Quadratic funding {#quadratic-funding} + +Ethereum is open source software and a lot of the work so far has been funded by the community. This has led to the growth of an interesting new fundraising model: quadratic funding. This has the potential to improve the way we fund all types of public goods in the future. + +Quadratic funding makes sure that the projects that receive the most funding are those with the most unique demand. In other words, projects that stand to improve the lives of the most people. Here's how it works: + +1. There is a matching pool of funds donated. +2. A round of public funding starts. +3. People can signal their demand for a project by donating some money. +4. Once the round is over, the matching pool is distributed to projects. Those with the most unique demand get the highest amount from the matching pool. + +This means Project A with its 100 donations of 1 dollar could end up with more funding than Project B with a single donation of 10,000 dollars (dependent on the size of the matching pool). + +[More on quadratic funding](https://wtfisqf.com) + + + +### Insurance {#insurance} + +Decentralized insurance aims to make insurance cheaper, faster to pay out, and more transparent. With more automation, coverage is more affordable and pay-outs are a lot quicker. The data used to decide on your claim is completely transparent. + +Ethereum products, like any software, can suffer from bugs and exploits. So right now a lot of insurance products in the space focus on protecting their users against loss of funds. However, there are projects starting to build out coverage for everything life can throw at us. A good example of this is Etherisc's Crop cover which aims to [protect smallholder farmers in Kenya against droughts and flooding](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Decentralized insurance can provide cheaper cover for farmers who are often priced out of traditional insurance. + + + See insurance dapps + + + + +### Aggregators and portfolio managers {#aggregators} + +With so much going on, you'll need a way to keep track of all your investments, loans, and trades. There are a host of products that let you coordinate all your DeFi activity from one place. This is the beauty of DeFi's open architecture. Teams can build out interfaces where you can't just see your balances across products, you can use their features too. You might find this useful as you explore more of DeFi. + + + See portfolio dapps + + + + +## How does DeFi work? {#how-defi-works} + +DeFi uses cryptocurrencies and smart contracts to provide services that don't need intermediaries. In today's financial world, financial institutions act as guarantors of transactions. This gives these institutions immense power because your money flows through them. Plus billions of people around the world can't even access a bank account. + +In DeFi, a smart contract replaces the financial institution in the transaction. A smart contract is a type of Ethereum account that can hold funds and can send/refund them based on certain conditions. No one can alter that smart contract when it's live – it will always run as programmed. + +A contract that's designed to hand out an allowance or pocket money could be programmed to send money from Account A to Account B every Friday. And it will only ever do that as long as Account A has the required funds. No one can change the contract and add Account C as a recipient to steal funds. + +Contracts are also public for anyone to inspect and audit. This means bad contracts will often come under community scrutiny pretty quickly. + +This does mean there's currently a need to trust the more technical members of the Ethereum community who can read code. The open-source based community helps keep developers in check, but this need will diminish over time as smart contracts become easier to read and other ways to prove trustworthiness of code are developed. + +## Ethereum and DeFi {#ethereum-and-defi} + +Ethereum is the perfect foundation for DeFi for a number of reasons: + +- No one owns Ethereum or the smart contracts that live on it – this gives everyone an opportunity to use DeFi. This also means no one can change the rules on you. +- DeFi products all speak the same language behind the scenes: Ethereum. This means many of the products work together seamlessly. You can lend tokens on one platform and exchange the interest-bearing token in a different market on an entirely different application. This is like being able to cash loyalty points in at your bank. +- Tokens and cryptocurrency are built into Ethereum, a shared ledger – keeping track of transactions and ownership is kinda Ethereum's thing. +- Ethereum allows complete financial freedom – most products will never take custody of your funds, leaving you in control. + +You can think of DeFi in layers: + +1. The blockchain – Ethereum contains the transaction history and state of accounts. +2. The assets – [ETH](/eth/) and the other tokens (currencies). +3. The protocols – [smart contracts](/glossary/#smart-contract) that provide the functionality, for example, a service that allows for decentralized lending of assets. +4. [The applications](/dapps/) – the products we use to manage and access the protocols. + +## Build DeFi {#build-defi} + +DeFi is an open-source movement. The DeFi protocols and applications are all open for you to inspect, fork, and innovate on. Because of this layered stack (they all share the same base blockchain and assets), protocols can be mixed and matched to unlock unique combo opportunities. + + + More on building dapps + + +## Further reading {#futher-reading} + +### DeFi data {#defi-data} + +- [DeFi Prime](https://defiprime.com/) +- [DeFi Llama](https://defillama.com/) +- [DeFi Rate](https://defirate.com/) + +### DeFi articles {#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 {#videos} + +- [Finematics - decentralized finance education](https://finematics.com/) – _Videos on DeFi_ +- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _DeFi basics: Everything you need to know to get started in this occasionally baffling space._ +- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _What is DeFi?_ + +### Communities {#communities} + +- [DeFi Llama Discord server](https://discord.gg/buPFYXzDDd) +- [DeFi Pulse Discord server](https://discord.gg/Gx4TCTk) diff --git a/public/content/deprecated-software/index.md b/public/content/deprecated-software/index.md new file mode 100644 index 00000000000..e9386b322bb --- /dev/null +++ b/public/content/deprecated-software/index.md @@ -0,0 +1,428 @@ +--- +title: Deprecated software +description: Software which has been deprecated by its maintainers +lang: en +sidebarDepth: 2 +--- + +# Deprecated software {#summary-deprecated-software} + +This is a list of key Ethereum-related projects and resources which have been deprecated or are no longer maintained. It is important to highlight deprecated work so that users can find viable alternatives and to prevent malicious versions from being distributed. + +This list is curated by our community. If there's something missing or incorrect, please edit this page! + +## Proof-of-work {#pow} + +[Proof of work](/developers/docs/consensus-mechanisms/pow) is a consensus engine that was implemented in Ethereum until September 2022. It was deprecated when Ethereum swapped to a [proof-of-stake](/developers/docs/consensus-mechanisms/pos) based consensus mechanism. This was achieved by deprecating the parts of the client software related to proof-of-work mining, including [Ethhash](/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethhash) (the mining algorithm) and all the consensus logic and block gossiping functionality that was originally built in to execution clients. The clients themselves were not deprecated but several of their core components were. The concept of proof-of-work was deprecated as the total effect of removing the related components of the client software. + +## Software {#software} + +This section is for software for the desktop, command line, or server which has been deprecated. The main types are wallets, integrated development environments, languages, and Ethereum clients. Definitely be careful to not install deprecated software unless you are certain it is from the original source, e.g. a repo hosted under https://github.com/ethereum. + +### OpenEthereum {#open-ethereum} + +Deprecated July 2021 + +**Summary** + +OpenEthereum was the second largest Ethereum implementation by node count. OpenEthereum played an important role in being a key piece of infrastructure for some of the largest users in Ethereum like Etherscan and Gnosis Safe. Its tracing capabilities set it apart from other clients, ensuring reliable and fast synchronization for data providers. + +**Archives** + +[Archived GitHub repo](https://github.com/openethereum/openethereum) + +**History** + +OpenEthereum was built for miners, service providers, and exchanges which need fast synchronization and maximum uptime. OpenEthereum provided the core infrastructure essential for speedy and reliable services. + +**Alternatives** + +[Compare all Ethereum execution client options](/developers/docs/nodes-and-clients/#execution-clients). + +### Grid {#grid} + +Deprecated on December 10, 2020 + +**Summary** + +Grid was a JavaScript-based desktop application that allowed you to securely access Ethereum, IPFS, and other decentralized networks. It provided a user-friendly interface to assist a less technical audience in safely interacting with dapps, which increased accessibility for everyone. + +**Archives** + +[Archived GitHub repo](https://github.com/ethereum/grid) + +**History** + +Grid could be seen as a successor to Mist, also a standalone, JavaScript-based desktop app which included a Geth node. Grid removed the wallet aspect, and added a plugin-style approach for running different kinds of nodes. + +**Alternatives** + +[DAppNode](https://dappnode.io/) is a platform for deploying and hosting dapps, P2P clients, and blockchain nodes. + +### Ethereum Studio {#ethereum-studio} + +Deprecated on December 7, 2020 + +**Summary** + +Ethereum Studio was a web-based IDE which allowed users to create and test smart contracts, as well as build front-ends for them. + +**Archives** + +[Archived GitHub repo](https://github.com/SuperblocksHQ/ethereum-studio) + +**History** + +Ethereum Studio was developed to provide users with an IDE that had a built-in Ethereum blockchain and Solidity compiler. In addition to this it provided the ability to live edit code and export full dapps without the need for a terminal. + +**Alternatives** + +[Remix](https://remix.ethereum.org/) is an alternative web IDE for Solidity development. Additionally, the [Developer Portal](/developers/) has tools for web and local development, documentation, and more. + +### Meteor Dapp Wallet {#meteor-dapp-wallet} + +Deprecated on March 27, 2019 + +**Summary** + +Meteor Dapp Wallet was a component of Mist, an Ethereum wallet for managing Ethereum accounts and interacting with smart contracts. For many years the Meteor Dapp Wallet web UI was hosted as a subdomain "wallet.ethereum.org". + +The Mist Multisig Contract (solidity code) was also included, and Meteor Dapp Wallet featured a user interface for configuring and deploying it. + +**Not deprecated: deployed Mist Multisigs** + +The Mist Multisig -- deployed as bytecode to Ethereum Mainnet by thousands of users -- continues to be used to store and manage value without incident. [How to Interact with a Mist Multisig Contract](https://support.mycrypto.com/how-to/sending/how-to-interact-with-a-multisig-contract) provides a good overview for how to use these smart contracts. + +**Archives** + +[Archived GitHub repo](https://github.com/ethereum/meteor-dapp-wallet) + +**History** + +See Mist below. + +**Alternatives** + +See the [Ethereum Wallets](/wallets/) page on ethereum.org. + +### Mist {#mist} + +Deprecated on March 27, 2019 + +**Summary** + +Mist was a specialized browser built with Electron that enabled users to manage Ethereum accounts and interact with dapps hosted on the traditional web. + +**Archives** + +[Archived GitHub repo](https://github.com/ethereum/mist) + +**History** + +Mist was an important early experiment because it explored how to manage Ethereum keys, introduced users to financial tools, like multisigs, and demonstrated how the Web3 would work. It also introduced users to innovations like blockies, cute and memorable 8-bit style graphics representing Ethereum keys. + +**Alternatives** + +[MetaMask](https://metamask.io/) is an in-browser wallet enabling you to manage Ethereum keys and interact with dapps. It is available as an extension for Google Chrome and Firefox, and is included in [Brave Browser](https://brave.com/). + +### Mix {#mix} + +Deprecated on August 11, 2016 + +**Summary** + +Mix was an IDE built in C++ that allowed developers to build and deploy smart contracts to Ethereum. + +**Archives** + +[Archived GitHub repo](https://github.com/ethereum/mix) + +**History** + +Mix was of the earliest Ethereum-related applications. See this [presentation by Gavin Wood at Devcon0](https://www.youtube.com/watch?v=hcP_z_wBlaM). + +**Alternatives** + +[Remix](https://remix.ethereum.org/) is a browser-hosted IDE for Solidity / smart contract development, testing, and deployment. It also has a desktop option. + +### Minimal {#minimal} + +Deprecated in 2020. + +**Summary** + +Minimal was a modular implementation of the Ethereum blockchain written in Go. + +**Archives** + +[Archived GitHub repo](https://github.com/umbracle/minimal) + +**History** + +Minimal was replaced by [polgon-sdk](https://github.com/0xPolygon/polygon-edge) + +### Hyperledger Burrow {#hyperledger-burrow} + +Deprecated in 2022. + +**Summary** + +Hyperledger Burrow was a permissioned Ethereum smart-contract blockchain node. It executed Ethereum EVM and WASM smart contract code on permissioned virtual machines. + +**Archives** + +[Archived GitHub repo](https://github.com/hyperledger/burrow) + +### Mana-Ethereum {#mana-ethereum} + +**Summary** + +Mana-Ethereum was an Ethereum client built using Elixir. + +**Archives** + +[Archived GitHub repo](https://github.com/mana-ethereum/mana) + +**History** + +Mana-Ethereum's GitHub repository has not been explicitly archived, but the last commit was in 2019. + +### Aleth (cpp-ethereum) {#aleth} + +Deprecated on October 6, 2021 + +**Summary** + +Aleth (formerly known as cpp-ethereum) was an Ethereum client written in C++. + +**Archives** + +[Archived GitHub repo](https://github.com/ethereum/aleth) + +**History** + +Aleth was the third most popular client for Ethereum before being deprecated on October 6, 2021. + +**Alternatives** + +[Geth](https://geth.ethereum.org/) is a well-known alternative Ethereum client. + +### Ethereum-H {#ethereum-h} + +**Archives** + +The Ethereum-H archives have been removed from GitHub. + +**History** + +Ethereum-H was an Ethereum client written in Haskell. It was deprecated around 2015. + +**Alternatives** + +[Geth](https://geth.ethereum.org/), [Nethermind](http://nethermind.io/), [Besu](https://besu.hyperledger.org/en/stable/) and [Erigon](https://github.com/ledgerwatch/erigon) are viable alternative Ethereum clients - there is no current Haskell client. + +### ruby-ethereum {#ruby-ethereum} + +**Archives** + +[ruby-ethereum GitHub repo](https://github.com/cryptape/ruby-ethereum) + +**History** + +ruby-ethereum was an Ethereum client written in Ruby. It was deprecated around 2018. + +**Alternatives** + +[Geth](https://geth.ethereum.org/), [Nethermind](http://nethermind.io/), [Besu](https://besu.hyperledger.org/en/stable/) and [Erigon](https://github.com/ledgerwatch/erigon) are viable alternative Ethereum clients. There is no current Ruby client. + +### Parity {#parity} + +Deprecated on June 2, 2020 + +**Summary** + +Parity was an Ethereum client written in Rust. + +**Archives** + +[Archived GitHub repo](https://github.com/openethereum/parity-ethereum) + +**History** + +As one of two major, viable clients in the early years of Ethereum (the other being Geth), Parity was a crucial part of the ecosystem. During the Shanghai Attacks of 2016 Parity enabled Ethereum network to continue operating when clients like Geth were taken down by the attack, proving the importance of client diversity. + +**Alternatives** + +[Erigon](https://github.com/ledgerwatch/erigon) Erigon (previously called Turbo-Geth) is a next generation Ethereum client on the efficiency frontier, written in Go. + +**Note:** _The successor project to Parity Ethereum client was [OpenEthereum](https://github.com/openethereum/openethereum) **which has since been deprecated.**_ + +The ["Spin up your own Ethereum node"](/developers/docs/nodes-and-clients/run-a-node/#getting-the-client) resource on ethereum.org includes a section for downloading, installing, and running an Ethereum client. + +### Trinity {#trinity} + +Deprecated on July 1, 2021 + +**Summary** + +Trinity was a python-based Ethereum client which served as a research and educational tool for the community. A large number of python-based modules related to Trinity continue to be maintained by the same team, including [Py-EVM](https://github.com/ethereum/py-evm). + +**Archives** + +[Archived GitHub repo](https://github.com/ethereum/trinity) + +**History** + +Trinity was the successor project to [pyethereum](https://github.com/ethereum/pyethereum/tree/b704a5c6577863edc539a1ec3d2620a443b950fb), an early python-based Ethereum client. + +**Alternatives** + +The ["Spin up your own Ethereum node"](/developers/docs/nodes-and-clients/run-a-node/#getting-the-client) resource on ethereum.org includes a section for downloading, installing, and running an Ethereum client. + +The [EthereumJS](https://github.com/ethereumjs) project has a similar research and educational use-case as Trinity did. + +## Dapps and Services {#dapps-and-services} + +This section is for services deployed to Ethereum Mainnet and other EVM-based networks. Be aware that the dapps and services here may include DeFi applications which have been hacked or may suffer security vulnerabilities due to lack of maintenance, changes in the protocol, etc. + +### Cover Protocol {#cover-protocol} + +Shut down in Fall 2021 + +**Summary** + +Cover was a DeFi insurance protocol running on Ethereum and other EVM-based networks. + +**Archives** + +[Website](https://wayback.archive-it.org/17679/20211004074635/https://www.coverprotocol.com/) + +[Medium articles](https://wayback.archive-it.org/17679/20211004074633/https://coverprotocol.medium.com/) + +[GitHub repos](https://github.com/CoverProtocol/cover-core-v1) + +[Documentation](https://wayback.archive-it.org/17679/20211004074634/https://docs.coverprotocol.com/) + +### The DAO {#the-dao} + +Hacked and shut down in Summer 2016 + +**Summary** + +The DAO was a smart contract, dapp, and forum for organizing the funding of projects. A vulnerability was exploited and much of the ETH was drained, leading to a community-organized hard fork in order to return ETH to those who had deposited to The DAO. The UX front-end and forum are discontinued. + +**Archives** + +[Internet Archive of "daohub.org" on May 14, 2016](https://web.archive.org/web/20160514105232/https://daohub.org/) + +**History** + +While The DAO failed, the concept endured. The basic technical, social, and governance model innovated for The DAO is widely in use in DeFi, NFT, and project-funding communities. + +["DAO Fork" on ethereum.org](/history/#dao-fork) + +[Wikipedia entry for "The DAO"]() + +**Alternatives** + +["DAOs" on ethereum.org](/dao/) + +[MolochDAO](https://www.molochdao.com/) + +[Gitcoin Grants](https://gitcoin.co/grants/) + +### SparkPool {#sparkpool} + +Shut down in Fall 2021 + +**Summary** + +Headquartered in Hangzhou, the SparkPool service and community was one of the largest Ethereum-centered mining pools in the world. + +**Archives** + +**History** + +Associated with the EthFans community, the service was launched in 2015. SparkPool was disbanded in Fall, 2021 as a result of stricter legal regulations. + +**Alternatives** + +[Ethermine](https://ethermine.org/) + +## Documentation and Information Sources {#documentation-and-information-sources} + +There are numerous sources of documentation, articles, tutorials, and forums which are now removed or live but no longer maintained. We have selected a few which are significant or whose current status as deprecated may lead to confusion or scam attempts. + +### Legacy Wiki and eth.wiki {#eth-wiki} + +**Summary** + +Legacy Wiki and eth.wiki were wikis maintained by the Ethereum Foundation for the wider community. They were mainly oriented toward hosting detailed descriptions of key aspects of the Ethereum platform and summarizations of technical roadmaps. + +**Archives** + +[Archived GitHub repo for eth.wiki](https://github.com/ethereum/eth-wiki) + +[Archived GitHub repo for Legacy Wiki](https://github.com/ethereum/wiki/wiki) + +**History** + +Legacy Wiki was a GitHub wiki and a very early locus of technical content (including the original Ethereum Whitepaper). Over time, Ethereum developers migrated their documentation, specifications, and technical description work to other platforms like [Read the Docs](https://readthedocs.org/) and GitHub-hosted content. + +In 2019 and 2020, eth.wiki became the successor to Legacy Wiki, but an enduring community of contributors did not materialize. + +**Alternatives** + +Community-driven content: [Ethereum.org Website](/) + +Ethereum software projects often host their documentation on [Read the Docs](https://readthedocs.org/) + +GitHub-hosted technical specifications: [EIPs](https://github.com/ethereum/EIPs), [Execution Specs](https://github.com/ethereum/execution-specs), [Consensus Specs](https://github.com/ethereum/consensus-specs) + +### forum.ethereum.org {#forum-ethereum-org} + +**Summary** + +Ethereum Community Forum was a discussion board maintained by the Ethereum Foundation and hosted on Vanilla Forums. It used the subdomain "forum.ethereum.org". + +**Archives** + +Archive URL: [https://wayback.archive-it.org/16516/20210618210825/https://forum.ethereum.org/](https://wayback.archive-it.org/16516/20210618210825/https://forum.ethereum.org/) + +**History** + +This Forum was an early, "official" discussion board for the Ethereum community. Along with [/r/ethereum](https://reddit.com/r/ethereum) and a handful of Skype channels, it was an important point of coordination for developers, designers, and organizers. Over the years the participants of the Forum moved on and it became more of a place for the mining community. + +**Alternatives** + +[/r/ethereum](https://reddit.com/r/ethereum), and a large number of DAO Forums and Discord servers. + +## Gitter Channels {#gitter-channels} + +### AllCoreDevs {#allcorewdevs-gitter} + +**Summary** + +AllCoreDevs Gitter was the main public coordination comms channel for [Ethereum client core developers](https://github.com/ethereum/pm/). + +**Archives** + +[ethereum/AllCoreDevs Gitter Channel](https://gitter.im/ethereum/AllCoreDevs) + +**Alternatives** + +Please use the "allcoredevs" channel on the [EthR&D Discord Server](https://discord.gg/qHv7AjTDuK) + +### EthereumJS {#ethereumjs-gitter} + +**Summary** + +EthereumJS Gitter was the main public coordination comms channel for the [EthereumJS project](https://ethereumjs.github.io/). + +**Archives** + +[ethereum/EthereumJS Gitter Channel](https://gitter.im/ethereum/ethereumjs) + +**Alternatives** + +Please use the [EthereumJS Discord Server](https://discord.gg/TNwARpR) diff --git a/public/content/desci/index.md b/public/content/desci/index.md new file mode 100644 index 00000000000..bd5565f035f --- /dev/null +++ b/public/content/desci/index.md @@ -0,0 +1,140 @@ +--- +title: Decentralized science (DeSci) +description: An overview of decentralized science on Ethereum +lang: en +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: A global, open alternative to the current scientific system. +summaryPoint2: Technology that enables scientists to raise funding, run experiments, share data, distribute insights, and more. +summaryPoint3: Builds on the open science movement. +--- + +## What is decentralized science (DeSci)? {#what-is-desci} + +Decentralized science (DeSci) is a movement that aims to build public infrastructure for funding, creating, reviewing, crediting, storing, and disseminating scientific knowledge fairly and equitably using the Web3 stack. + +DeSci aims to create an ecosystem where scientists are incentivized to openly share their research and receive credit for their work while allowing anyone to access and contribute to the research easily. DeSci works off the idea that scientific knowledge should be accessible to everyone and that the process of scientific research should be transparent. DeSci is creating a more decentralized and distributed scientific research model, making it more resistant to censorship and control by central authorities. DeSci hopes to create an environment where new and unconventional ideas can flourish by decentralizing access to funding, scientific tools, and communication channels. + +Decentralized science allows for more diverse funding sources (from [DAOs](/dao/), [quadratic donations](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) to crowdfunding and more), more accessible data and methods, and by providing incentives for reproducibility. + +### Juan Benet - The DeSci Movement + + + +## How DeSci improves science {#desci-improves-science} + +An incomplete list of key problems in science and how decentralized science can help to address these issues + +| **Decentralized science** | **Traditional science** | +| ----------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | +| Distribution of funds is determined by the public using mechanisms such as quadratic donations or DAOs. | Small, closed, centralized groups control the distribution of funds. | +| You collaborate with peers from all over the globe in dynamic teams. | Funding organizations and home institutions limit your collaborations. | +| Funding decisions are made online and transparently. New funding mechanisms are explored. | Funding decisions are made with a long turnaround time and limited transparency. Few funding mechanisms exist. | +| Sharing laboratory services is made easier and more transparent using Web3 primitives. | Sharing laboratory resources is often slow and opaque. | +| New models for publishing can be developed that use Web3 primitives for trust, transparency and universal access. | You publish through established pathways frequently acknowledged as inefficient, biased and exploitative. | +| You can earn tokens and reputation for peer-reviewing work. | Your peer-review work is unpaid, benefiting for-profit publishers. | +| You own the intellectual property (IP) you generate and distribute it according to transparent terms. | Your home institution owns the IP you generate. Access to the IP is not transparent. | +| Sharing all of the research, including the data from unsuccessful efforts, by having all steps on-chain. | Publication bias means that researchers are more likely to share experiments that had successful results. | + +## Ethereum and DeSci {#ethereum-and-desci} + +A decentralized science system will require robust security, minimal monetary and transaction costs, and a rich ecosystem for application development. Ethereum provides everything needed for building a decentralized science stack. + +## DeSci use cases {#use-cases} + +DeSci is building the scientific toolset to onboard Web2 academia into the digital world. Below is a sampling of use cases that Web3 can offer to the scientific community. + +### Publishing {#publishing} + +Science publishing is famously problematic because it is managed by publishing houses that rely upon free labor from scientists, reviewers, and editors to generate the papers but then charge exorbitant publishing fees. The public, who have usually indirectly paid for the work and the publication costs through taxation, can often not access that same work without paying the publisher again. The total fees for publishing individual science papers are often five figures ($USD), undermining the whole concept of scientific knowledge as a [public good](https://www.econlib.org/library/Enc/PublicGoods.html) while generating enormous profits for a small group of publishers. + +Free and open-access platforms exist in the form of pre-print servers, [such as ArXiv](https://arxiv.org/). However, these platforms lack quality control, [anti-sybil mechanisms](https://csrc.nist.gov/glossary/term/sybil_attack), and do not generally track article-level metrics, meaning they are usually only used to publicize work before submission to a traditional publisher. SciHub also makes published papers free to access, but not legally, and only after the publishers have already taken their payment and wrapped the work in strict copyright legislation. This leaves a critical gap for accessible science papers and data with an embedded legitimacy mechanism and incentive model. The tools for building such a system exist in Web3. + +### Reproducibility and replicability {#reproducibility-and-replicability} + +Reproducibility and replicability are the foundations of quality scientific discovery. + +- Reproducible results can be achieved multiple times in a row by the same team using the same methodology. +- Replicable results can be achieved by a different group using the same experimental setup. + +New Web3-native tools can ensure that reproducibility and replicability are the basis of discovery. We can weave quality science into the technological fabric of academia. Web3 offers the ability to create attestations for each analysis component: the raw data, the computational engine, and the application result. The beauty of consensus systems is that when a trusted network is created for maintaining these components, each network participant can be responsible for reproducing the calculation and validating each result. + +### Funding {#funding} + +The current standard model for funding science is that individuals or groups of scientists make written applications to a funding agency. A small panel of trusted individuals score the applications and then interview candidates before awarding funds to a small portion of applicants. Aside from creating bottlenecks that lead to sometimes years of waiting time between applying for and receiving a grant, this model is known to be highly vulnerable to the biases, self-interests and politics of the review panel. + +Studies have shown that grant review panels do a poor job of selecting high-quality proposals as the same proposals given to different panels have wildly different outcomes. As funding has become more scarce, it has concentrated into a smaller pool of more senior researchers with more intellectually conservative projects. The effect has created a hyper-competitive funding landscape, entrenching perverse incentives and stifling innovation. + +Web3 has the potential to disrupt this broken funding model by experimenting with different incentive models developed by DAOs and Web3 broadly. [Retroactive public goods funding](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), [quadratic funding](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), [DAO governance](https://www.antler.co/blog/daos-and-web3-governance) and [tokenized incentive structures](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) are some of the Web3 tools that could revolutionize science funding. + +### IP ownership and development {#ip-ownership} + +Intellectual property (IP) is a big problem in traditional science: from being stuck in universities or unused in biotechs, to being notoriously hard to value. However, ownership of digital assets (such as scientific data or articles) is something Web3 does exceptionally well using [non-fungible tokens (NFTs)](/nft/). + +In the same way that NFTs can pass revenue for future transactions back to the original creator, you can establish transparent value attribution chains to reward researchers, governing bodies (like DAOs), or even the subjects whose data is collected. + +[IP-NFTs](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) can also function as a key to a decentralized data repository of the research experiments being undertaken, and plug into NFT and [DeFi](/defi/) financialization (from fractionalization to lending pools and value appraisal). It also allows natively on-chain entities such as DAOs like [VitaDAO](https://www.vitadao.com/) to conduct research directly on-chain. +The advent of non-transferable ["soulbound" tokens](https://vitalik.ca/general/2022/01/26/soulbound.html) may also play an important role in DeSci by allowing individuals to prove their experience and credentials linked to their Ethereum address. + +### Data storage, access and architecture {#data-storage} + +Scientific data can be made vastly more accessible using Web3 patterns, and distributed storage enables research to survive cataclysmic events. + +The starting point must be a system accessible by any decentralized identity holding the proper verifiable credentials. This allows sensitive data to be securely replicated by trusted parties, enabling redundancy and censorship resistance, reproduction of results, and even the ability for multiple parties to collaborate and add new data to the dataset. Confidential computing methods like [compute-to-data](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol) provide alternative access mechanisms to raw data replication, creating Trusted Research Environments for the most sensitive data. Trusted Research Environments have been [cited by the NHS](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) as a future-facing solution to data privacy and collaboration by creating an ecosystem where researchers can securely work with data on-site using standardized environments for sharing code and practices. + +Flexible Web3 data solutions support the scenarios above and provide the foundation for truly Open Science, where researchers can create public goods without access permissions or fees. Web3 public data solutions such as IPFS, Arweave and Filecoin are optimized for decentralization. dClimate, for example, provides universal access to climate and weather data, including from weather stations and predictive climate models. + +## Get involved {#get-involved} + +Explore projects and join the DeSci community. + +- [DeSci.Global: global events and meetup calendar](https://desci.global) +- [Blockchain for Science Telegram](https://t.me/BlockchainForScience) +- [Molecule: Fund and get funded for your research projects](https://discover.molecule.to/) +- [VitaDAO: receive funding through sponsored research agreements for longevity research](https://www.vitadao.com/) +- [ResearchHub: post a scientific result and engage in a conversation with peers](https://www.researchhub.com/) +- [LabDAO: fold a protein in-silico](https://alphafodl.vercel.app/) +- [dClimate API: query climate data collected by a decentralized community](https://api.dclimate.net/) +- [DeSci Foundation: DeSci publishing tool builder](https://descifoundation.org/) +- [DeSci.World: one-stop shop for users to view, engage with decentralized science](https://desci.world) +- [Fleming Protocol: open-source data economy that fuels collaborative biomedical discovery](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [OceanDAO: DAO governed funding for data-related science](https://oceanprotocol.com/dao) +- [Opscientia: open decentralized science workflows](https://opsci.io/research/) +- [LabDAO: fold a protein in-silico](https://alphafodl.vercel.app/) +- [Bio.xyz: get funded for your biotech DAO or desci project](https://www.bio.xyz/) +- [ResearchHub: post a scientific result and engage in a conversation with peers](https://www.researchhub.com/) +- [VitaDAO: receive funding through sponsored research agreements for longevity research](https://www.vitadao.com/) +- [Fleming Protocol: open-source data economy that fuels collaborative biomedical discovery](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [Active Inference Lab](https://www.activeinference.org/) +- [CureDAO: Community-Owned Precision Health Platform](https://docs.curedao.org/) +- [IdeaMarkets: enabling decentralized scientific credibility](https://ideamarket.io/) +- [DeSci Labs](https://www.desci.com/) + +We welcome suggestions for new projects to list - please look at our [listing policy](/contributing/adding-desci-projects/) to get started! + +## Further reading {#further-reading} + +- [DeSci Wiki by Jocelynn Pearl and Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) +- [A guide to decentralized biotech by Jocelynn Pearl for a16z future](https://future.a16z.com/a-guide-to-decentralized-biotech/) +- [The case for DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) +- [Guide to DeSci](https://future.com/what-is-decentralized-science-aka-desci/) +- [Decentralized science resources](https://www.vincentweisser.com/decentralized-science) +- [Molecule’s Biopharma IP-NFTs - A Technical Description](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) +- [Building Trustless Systems of Science by Jon Starr](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) +- [The Emergence of Biotech DAOs](https://molecule.to/blog/the-emergence-of-biotech-daos) +- [Paul Kohlhaas - DeSci: The Future of Decentralized Science (podcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) +- [An Active Inference Ontology for Decentralized Science: from Situated Sensemaking to the Epistemic Commons](https://zenodo.org/record/6320575) +- [DeSci: The Future of Research by Samuel Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) +- [Science Funding (Epilogue: DeSci and new crypto primitives) by Nadia](https://nadia.xyz/science-funding) +- [Decentralisation is Disrupting Drug Development](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) + +### Videos {#videos} + +- [What's Decentralized Science?](https://www.youtube.com/watch?v=-DeMklVWNdA) +- [Conversation between Vitalik Buterin and the scientist Aubrey de Grey about the intersection of longevity research and crypto](https://www.youtube.com/watch?v=x9TSJK1widA) +- [Scientific Publishing Is Broken. Can Web3 Fix It?](https://www.youtube.com/watch?v=WkvzYgCvWj8) +- [Juan Benet - DeSci, Independent Labs, & Large Scale Data Science](https://www.youtube.com/watch?v=zkXM9H90g_E) +- [Sebastian Brunemeier - How DeSci Can Transform Biomedical Research & Venture Capital](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/developers/docs/accounts/accounts.png b/public/content/developers/docs/accounts/accounts.png similarity index 100% rename from src/content/developers/docs/accounts/accounts.png rename to public/content/developers/docs/accounts/accounts.png diff --git a/src/content/developers/docs/accounts/index.md b/public/content/developers/docs/accounts/index.md similarity index 100% rename from src/content/developers/docs/accounts/index.md rename to public/content/developers/docs/accounts/index.md diff --git a/src/content/developers/docs/apis/backend/index.md b/public/content/developers/docs/apis/backend/index.md similarity index 100% rename from src/content/developers/docs/apis/backend/index.md rename to public/content/developers/docs/apis/backend/index.md diff --git a/src/content/developers/docs/apis/javascript/index.md b/public/content/developers/docs/apis/javascript/index.md similarity index 100% rename from src/content/developers/docs/apis/javascript/index.md rename to public/content/developers/docs/apis/javascript/index.md diff --git a/src/content/developers/docs/apis/json-rpc/index.md b/public/content/developers/docs/apis/json-rpc/index.md similarity index 100% rename from src/content/developers/docs/apis/json-rpc/index.md rename to public/content/developers/docs/apis/json-rpc/index.md diff --git a/src/content/developers/docs/blocks/index.md b/public/content/developers/docs/blocks/index.md similarity index 100% rename from src/content/developers/docs/blocks/index.md rename to public/content/developers/docs/blocks/index.md diff --git a/src/content/developers/docs/blocks/tx-block.png b/public/content/developers/docs/blocks/tx-block.png similarity index 100% rename from src/content/developers/docs/blocks/tx-block.png rename to public/content/developers/docs/blocks/tx-block.png diff --git a/src/content/developers/docs/bridges/index.md b/public/content/developers/docs/bridges/index.md similarity index 100% rename from src/content/developers/docs/bridges/index.md rename to public/content/developers/docs/bridges/index.md diff --git a/src/content/developers/docs/consensus-mechanisms/index.md b/public/content/developers/docs/consensus-mechanisms/index.md similarity index 100% rename from src/content/developers/docs/consensus-mechanisms/index.md rename to public/content/developers/docs/consensus-mechanisms/index.md diff --git a/src/content/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md b/public/content/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md similarity index 100% rename from src/content/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md rename to public/content/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md diff --git a/src/content/developers/docs/consensus-mechanisms/pos/attack-and-defense/reorg-schematic.png b/public/content/developers/docs/consensus-mechanisms/pos/attack-and-defense/reorg-schematic.png similarity index 100% rename from src/content/developers/docs/consensus-mechanisms/pos/attack-and-defense/reorg-schematic.png rename to public/content/developers/docs/consensus-mechanisms/pos/attack-and-defense/reorg-schematic.png diff --git a/src/content/developers/docs/consensus-mechanisms/pos/attestations/attestation_schematic.png b/public/content/developers/docs/consensus-mechanisms/pos/attestations/attestation_schematic.png similarity index 100% rename from src/content/developers/docs/consensus-mechanisms/pos/attestations/attestation_schematic.png rename to public/content/developers/docs/consensus-mechanisms/pos/attestations/attestation_schematic.png diff --git a/src/content/developers/docs/consensus-mechanisms/pos/attestations/index.md b/public/content/developers/docs/consensus-mechanisms/pos/attestations/index.md similarity index 100% rename from src/content/developers/docs/consensus-mechanisms/pos/attestations/index.md rename to public/content/developers/docs/consensus-mechanisms/pos/attestations/index.md diff --git a/public/content/developers/docs/consensus-mechanisms/pos/block-proposal/index.md b/public/content/developers/docs/consensus-mechanisms/pos/block-proposal/index.md new file mode 100644 index 00000000000..45697510225 --- /dev/null +++ b/public/content/developers/docs/consensus-mechanisms/pos/block-proposal/index.md @@ -0,0 +1,69 @@ +--- +title: Block proposal +description: Explanation of how blocks are proposed in proof-of-stake Ethereum. +lang: en +--- + +Blocks are the fundamental units of the blockchain. Blocks are discrete units of information that get passed between nodes, agreed upon and added to each node's database. This page explains how they are produced. + +## Prerequisites {#prerequisites} + +Block proposal is part of the proof-of-stake protocol. To help understand this page, we recommend you read about [proof-of-stake](public/content/developers/docs/consensus-mechanisms/pos/) and [block architecture](public/content/developers/docs/blocks/). + +## Who produces blocks? {#who-produces-blocks} + +Validator accounts propose blocks. Validator accounts are managed by node operators who run validator software as part of their execution and consensus clients and have deposited at least 32 ETH into the deposit contract. However, each validator is only occasionally responsible for proposing a block. Ethereum measures time in slots and epochs. Each slot is twelve seconds, and 32 slots (6.4 minutes) make up an epoch. Every slot is an opportunity to add a new block on Ethereum. + +### Random selection {#random-selection} + +A single validator is pseudo-randomly chosen to propose a block in each slot. There is no such thing as true randomness in a blockchain because if each node generated genuinely random numbers, they couldn't come to consensus. Instead, the aim is to make the validator selection process unpredictable. The randomness is achieved on Ethereum using an algorithm called RANDAO that mixes a hash from the block proposer with a seed that gets updated every block. This value is used to select a specific validator from the total validator set. The validator selection is fixed two epochs in advance as a way to protect against certain kinds of seed manipulation. + +Although validators add to RANDAO in each slot, the global RANDAO value is only updated once per epoch. To compute the index of the next block proposer, the RANDAO value is mixed with the slot number to give a unique value in each slot. The probability of an individual validator being selected is not simply `1/N` (where `N` = total active validators). Instead, it is weighted by the effective ETH balance of each validator. The maximum effective balance is 32 ETH (this means that `balance < 32 ETH` leads to a lower weight than `balance == 32 ETH`, but `balance > 32 ETH` does not lead to higher weighting than `balance == 32 ETH`). + +Only one block proposer is selected in each slot. Under normal conditions, a single block producer creates and releases a single block in their dedicated slot. Creating two blocks for the same slot is a slashable offence, often known as "equivocation". + +## How is the block created? {#how-is-a-block-created} + +The block proposer is expected to broadcast a signed beacon block that builds on top of the most recent head of the chain according to the view of their own locally-run fork choice algorithm. The fork choice algorithm applies any queued attestations left over from the previous slot, then finds the block with the greatest accumulated weight of attestations in its history. That block is the parent of the new block created by the proposer. + +The block proposer creates a block by collecting data from its own local database and view of the chain. The contents of the block are shown in the snippet below: + +```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 +``` + +The `randao_reveal` field takes a verifiable random value that the block proposer creates by signing the current epoch number. `eth1_data` is a vote for the block proposer's view of the deposit contract, including the root of the deposit Merkle trie and the total number of deposits that enable new deposits to be verified. `graffiti` is an optional field that can be used to add a message to the block. `proposer_slashings` and `attester_slashings` are fields that contain proof that certain validators have committed slashable offenses according to the proposer's view of the chain. `deposits` is a list of new validator deposits that the block proposer is aware of, and `voluntary_exits` is a list of validators that wish to exit that the block proposer has heard about on the consensus layer gossip network. The `sync_aggregate` is a vector showing which validators were previously assigned to a sync committee (a subset of validators that serve light client data) and participated in signing data. + +The `execution_payload` enables information about transactions to be passed between the execution and consensus clients. The `execution_payload` is a block of execution data that gets nested inside a beacon block. The fields inside the `execution_payload` reflect the block structure outlined in the Ethereum yellow paper, except that there are no ommers and `prev_randao` exists in place of `difficulty`. The execution client has access to a local pool of transactions that it has heard about on its own gossip network. These transactions are executed locally to generate an updated state trie known as a post-state. The transactions are included in the `execution_payload` as a list called `transactions` and the post-state is provided in the `state-root` field. + +All of these data are collected in a beacon block, signed, and broadcast to the block proposer's peers, who propagate it on to their peers, etc. + +Read more about the [anatomy of blocks](/developers/docs/blocks). + +## What happens to the block? {#what-happens-to-blocks} + +The block is added to the block proposer's local database and broadcast to peers over the consensus layer gossip network. When a validator receives the block, it verifies the data inside it, including checking that the block has the correct parent, corresponds to the correct slot, that the proposer index is the expected one, that the RANDAO reveal is valid and that the proposer is not slashed. The `execution_payload` is unbundled, and the validator's execution client re-executes the transactions in the list to check the proposed state change. Assuming the block passes all these checks, each validator adds the block to its own canonical chain. The process then starts again in the next slot. + +## Block rewards {#block-rewards} + +The block proposer receives payment for their work. There is a `base_reward` calculated as a function of the number of active validators and their effective balances. The block proposer then receives a fraction of `base_reward` for every valid attestation included in the block; the more validators attest to the block, the greater the block proposer's reward. There is also a reward for reporting validators that should be slashed, equal to `1/512 * effective balance` for each slashed validator. + +[More on rewards and penalties](/developers/docs/consensus-mechanisms/pos/rewards-and-penalties) + +## Further reading {#further-reading} + +- [Introduction to blocks](/developers/docs/blocks/) +- [Introduction to proof-of-stake](/developers/docs/consensus-mechanisms/pos/) +- [Ethereum consensus specs](https://github.com/ethereum/consensus-specs) +- [Introduction to Gasper](/developers/docs/consensus-mechanisms/pos/) +- [Upgrading Ethereum](https://eth2book.info/) diff --git a/src/content/developers/docs/consensus-mechanisms/pos/faqs/index.md b/public/content/developers/docs/consensus-mechanisms/pos/faqs/index.md similarity index 100% rename from src/content/developers/docs/consensus-mechanisms/pos/faqs/index.md rename to public/content/developers/docs/consensus-mechanisms/pos/faqs/index.md diff --git a/src/content/developers/docs/consensus-mechanisms/pos/gasper/index.md b/public/content/developers/docs/consensus-mechanisms/pos/gasper/index.md similarity index 100% rename from src/content/developers/docs/consensus-mechanisms/pos/gasper/index.md rename to public/content/developers/docs/consensus-mechanisms/pos/gasper/index.md diff --git a/src/content/developers/docs/consensus-mechanisms/pos/index.md b/public/content/developers/docs/consensus-mechanisms/pos/index.md similarity index 100% rename from src/content/developers/docs/consensus-mechanisms/pos/index.md rename to public/content/developers/docs/consensus-mechanisms/pos/index.md diff --git a/src/content/developers/docs/consensus-mechanisms/pos/keys/index.md b/public/content/developers/docs/consensus-mechanisms/pos/keys/index.md similarity index 100% rename from src/content/developers/docs/consensus-mechanisms/pos/keys/index.md rename to public/content/developers/docs/consensus-mechanisms/pos/keys/index.md diff --git a/src/content/developers/docs/consensus-mechanisms/pos/keys/multiple-keys.png b/public/content/developers/docs/consensus-mechanisms/pos/keys/multiple-keys.png similarity index 100% rename from src/content/developers/docs/consensus-mechanisms/pos/keys/multiple-keys.png rename to public/content/developers/docs/consensus-mechanisms/pos/keys/multiple-keys.png diff --git a/src/content/developers/docs/consensus-mechanisms/pos/keys/validator-key-schematic.png b/public/content/developers/docs/consensus-mechanisms/pos/keys/validator-key-schematic.png similarity index 100% rename from src/content/developers/docs/consensus-mechanisms/pos/keys/validator-key-schematic.png rename to public/content/developers/docs/consensus-mechanisms/pos/keys/validator-key-schematic.png diff --git a/src/content/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md b/public/content/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md similarity index 100% rename from src/content/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md rename to public/content/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md diff --git a/src/content/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md b/public/content/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md similarity index 100% rename from src/content/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md rename to public/content/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md diff --git a/src/content/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md b/public/content/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md similarity index 100% rename from src/content/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md rename to public/content/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md diff --git a/src/content/developers/docs/consensus-mechanisms/pow/index.md b/public/content/developers/docs/consensus-mechanisms/pow/index.md similarity index 100% rename from src/content/developers/docs/consensus-mechanisms/pow/index.md rename to public/content/developers/docs/consensus-mechanisms/pow/index.md diff --git a/src/content/developers/docs/consensus-mechanisms/pow/mining-algorithms/dagger-hashimoto/index.md b/public/content/developers/docs/consensus-mechanisms/pow/mining-algorithms/dagger-hashimoto/index.md similarity index 100% rename from src/content/developers/docs/consensus-mechanisms/pow/mining-algorithms/dagger-hashimoto/index.md rename to public/content/developers/docs/consensus-mechanisms/pow/mining-algorithms/dagger-hashimoto/index.md diff --git a/src/content/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethash/index.md b/public/content/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethash/index.md similarity index 100% rename from src/content/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethash/index.md rename to public/content/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethash/index.md diff --git a/src/content/developers/docs/consensus-mechanisms/pow/mining-algorithms/index.md b/public/content/developers/docs/consensus-mechanisms/pow/mining-algorithms/index.md similarity index 100% rename from src/content/developers/docs/consensus-mechanisms/pow/mining-algorithms/index.md rename to public/content/developers/docs/consensus-mechanisms/pow/mining-algorithms/index.md diff --git a/src/content/developers/docs/consensus-mechanisms/pow/mining/index.md b/public/content/developers/docs/consensus-mechanisms/pow/mining/index.md similarity index 100% rename from src/content/developers/docs/consensus-mechanisms/pow/mining/index.md rename to public/content/developers/docs/consensus-mechanisms/pow/mining/index.md diff --git a/src/content/developers/docs/dapps/index.md b/public/content/developers/docs/dapps/index.md similarity index 100% rename from src/content/developers/docs/dapps/index.md rename to public/content/developers/docs/dapps/index.md diff --git a/src/content/developers/docs/data-and-analytics/block-explorers/index.md b/public/content/developers/docs/data-and-analytics/block-explorers/index.md similarity index 100% rename from src/content/developers/docs/data-and-analytics/block-explorers/index.md rename to public/content/developers/docs/data-and-analytics/block-explorers/index.md diff --git a/src/content/developers/docs/data-and-analytics/index.md b/public/content/developers/docs/data-and-analytics/index.md similarity index 100% rename from src/content/developers/docs/data-and-analytics/index.md rename to public/content/developers/docs/data-and-analytics/index.md diff --git a/src/content/developers/docs/data-availability/index.md b/public/content/developers/docs/data-availability/index.md similarity index 100% rename from src/content/developers/docs/data-availability/index.md rename to public/content/developers/docs/data-availability/index.md diff --git a/src/content/developers/docs/data-structures-and-encoding/index.md b/public/content/developers/docs/data-structures-and-encoding/index.md similarity index 100% rename from src/content/developers/docs/data-structures-and-encoding/index.md rename to public/content/developers/docs/data-structures-and-encoding/index.md diff --git a/src/content/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md b/public/content/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md similarity index 100% rename from src/content/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md rename to public/content/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md diff --git a/src/content/developers/docs/data-structures-and-encoding/rlp/index.md b/public/content/developers/docs/data-structures-and-encoding/rlp/index.md similarity index 100% rename from src/content/developers/docs/data-structures-and-encoding/rlp/index.md rename to public/content/developers/docs/data-structures-and-encoding/rlp/index.md diff --git a/src/content/developers/docs/data-structures-and-encoding/ssz/index.md b/public/content/developers/docs/data-structures-and-encoding/ssz/index.md similarity index 100% rename from src/content/developers/docs/data-structures-and-encoding/ssz/index.md rename to public/content/developers/docs/data-structures-and-encoding/ssz/index.md diff --git a/src/content/developers/docs/data-structures-and-encoding/web3-secret-storage/index.md b/public/content/developers/docs/data-structures-and-encoding/web3-secret-storage/index.md similarity index 100% rename from src/content/developers/docs/data-structures-and-encoding/web3-secret-storage/index.md rename to public/content/developers/docs/data-structures-and-encoding/web3-secret-storage/index.md diff --git a/public/content/developers/docs/design-and-ux/index.md b/public/content/developers/docs/design-and-ux/index.md new file mode 100644 index 00000000000..aa6f11b259c --- /dev/null +++ b/public/content/developers/docs/design-and-ux/index.md @@ -0,0 +1,90 @@ +--- +title: Design and UX in web3 +description: Introduction to UX design and research in web3 space and Ethereum +lang: en +--- + +Are you new to designing with Ethereum? This is the right place for you. The Ethereum community has written resources to introduce you to web3 design and research basics. You'll learn about core concepts that may differ from other app designs you're familiar with. + +Need a more basic understanding of web3 first? Check out [**Learn hub**](/learn/). + +## Start with user research {#start-with-user-research} + +Effective design goes beyond creating visually appealing user interfaces. It involves gaining a deep understanding of the user's needs, objectives, and driving factors. Therefore, we highly recommend that all designers adopt a design process, such as the [**double diamond process**](), to ensure that their work is deliberate and intentional. + +- [Web3 needs more UX Researchers and Designers](https://akasha.org/blog/2022/10/11/akasha-conversation-09-web3-ux-researchers-and-designers) - An overview of current design maturity +- [A simple guide to UX Research in web3](https://uxplanet.org/a-complete-guide-to-ux-research-for-web-3-0-products-d6bead20ebb1) - Simple guide how to do research +- [How to Approach UX Decisions in Web3](https://archive.devcon.org/archive/watch/6/data-empathy-how-to-approach-ux-decisions-in-web3/) - A brief overview of quantitative and qualitative research and the differences between the two (video, 6 min) +- [Being a ux researcher in web3](https://medium.com/@georgia.rakusen/what-its-like-being-a-user-researcher-in-web3-6a4bcc096849) - A personal view on what it is like being a UX researcher in web3 + +## Research studies in web3 {#research-in-web3} + +This is a curated list of user research done in web3 that may help with design and product decisions or work as an inspiration to conduct own study. + +| Area of focus | Name | +| :------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Crypto onboarding | [CRADL: Crypto Research and Design Lab](https://project-cradl.notion.site/Crypto-Research-and-Design-Lab-50a7127f34ed4c88ad95c7cedf7fbe36) | +| Crypto onboarding | [CRADL: UX in Cryptocurrency](https://docs.google.com/presentation/d/1s2OPSH5sMJzxRYaJSSRTe8W2iIoZx0PseIV-WeZWD1s/edit?usp=sharing) | +| Crypto onboarding | [CRADL: Onboarding to Cryptocurrency](https://docs.google.com/presentation/d/1R9nFuzA-R6SxaGCKhoMbE4Vxe0JxQSTiHXind3LVq_w/edit?usp=sharing) | +| Crypto onboarding | [Bitcoin UX report](https://github.com/patestevao/BitcoinUX-report/blob/master/report.md) | +| Crypto onboarding | [ConSensys: The State of Web3 perception around the world 2023](https://consensys.io/insight-report/web3-and-crypto-global-survey-2023) | +| Crypto onboarding | [NEAR: Accelerating the journey towards adoption](https://drive.google.com/file/d/1VuaQP4QSaQxR5ddQKTMGI0b0rWdP7uGn/view) | +| Staking | [Staking: Key trends, takeaways, and predictions - Eth Staker](https://lookerstudio.google.com/u/0/reporting/cafcee00-e1af-4148-bae8-442a88ac75fa/page/p_ja2srdhh2c?s=hmbTWDh9hJo) | +| Staking | [Multi App Staking]() | +| DAO | [2022 DAO Research Update: What do DAO Builders Need?](https://blog.aragon.org/2022-dao-research-update/) | +| DeFi | [The state of Defi 2023](https://stateofdefi.org/) | +| DeFi | [Coverage pools](https://github.com/threshold-network/UX-User-Research/tree/main/Keep%20Coverage%20Pool) | +| DeFi | [ConSensys: DeFi User Research Report 2022](https://cdn2.hubspot.net/hubfs/4795067/ConsenSys%20Codefi-Defi%20User%20ResearchReport.pdf) | +| Metaverse | [Metaverse: User Research Report](https://www.politico.com/f/?id=00000187-7685-d820-a7e7-7e85d1420000) | +| Metaverse | [Going on Safari: Researching Users in the Metaverse](https://archive.devcon.org/archive/watch/6/going-on-safari-researching-users-in-the-metaverse/?tab=YouTube) (video, 27 min) | +| Ethereum.org UX stats | [Usability and user satisfaction survey dashboard - Ethereum.org](https://lookerstudio.google.com/reporting/0a189a7c-a890-40db-a5c6-009db52c81c9) | + +## Design for web3 {#design-for-web3} + +- [Web3 Design Principles](https://medium.com/@lyricalpolymath/web3-design-principles-f21db2f240c1) - A framework of UX rules for blockchain based dapps +- [Blockchain Design Principles](https://medium.com/design-ibm/blockchain-design-principles-599c5c067b6e) - Lessons learned by the blockchain design team at IBM +- [Dimensions of web3 UX](https://uxdesign.cc/the-levels-of-web3-user-experience-4f2ad113e37d) - An analysis of different layers of web3 UX and its challenges +- [Web3 Design Patterns](https://www.web3designpatterns.io/)- A curated library of design patterns from real Web3 products +- [W3design.io](https://w3design.io/) - A curated library of UI flows of different projects in the ecosystem +- [Neueux.com](https://neueux.com/apps) - UI library of user flows with diverse filtering options +- [Web3's Usability Crisis: What You NEED to Know!](https://www.youtube.com/watch?v=oBSXT_6YDzg) - A panel discussion on pitfalls of developer focused project building (video, 34 min) + +## Web3 Design Case Studies {#design-case-studies} + +- [How to write better web3 error messages](https://medium.com/@JonCrabb/how-to-design-better-web3-error-messages-bd96e12fa582) +- [Defi design tips](https://medium.com/@JonCrabb/defi-design-tips-vol-12-8600f4374714) +- [Deep Work Studio](https://deepwork.studio/case-studies/) +- [Crypto UX Handbook](https://www.cryptouxhandbook.com/) +- [Selling an NFT on OpenSea](https://builtformars.com/case-studies/opensea) +- [Wallet UX teardown how wallets need to change](https://www.youtube.com/watch?v=oTpuxYj8JWI&ab_channel=ETHDenver) (video, 20 min) + +## Design Bounties {#bounties} + +- [Dework](https://app.dework.xyz/bounties) +- [Gitcoin](https://bounties.gitcoin.co/explorer) +- [Buildbox hackathons](https://gitcoin.co/hackathons) +- [ETHGlobal](https://ethglobal.com/) + +## Design DAOs and communities {#design-daos-and-communities} + +Get involved in professional community-driven organizations or join design groups to discuss design and research related topics and trends with other members. + +- [Vectordao.com](https://vectordao.com/) +- [Deepwork.studio](https://www.deepwork.studio/) +- [Designer-dao.xyz](https://www.designer-dao.xyz/) +- [We3.co](https://we3.co/) +- [Openux.xyz](https://openux.xyz/about) +- [web3trends.org](https://web3trends.org/) +- [Open Source Web3Design](https://www.web3designers.org/) + +## Design Systems {#design-systems} + +- [Optimism Design](https://www.figma.com/@oplabs) (Figma) +- [Ethereum.org Design system](https://www.figma.com/@ethdotorg) (Figma) +- [Finity, a design system by Polygon](https://www.figma.com/community/file/1073921725197233598/finity-design-system) (Figma) +- [Kleros Design System](https://www.figma.com/community/file/999852250110186964/kleros-design-system) (Figma) +- [ENS Design system](https://thorin.ens.domains/) +- [Mirror Design System](https://degen-xyz.vercel.app/) + +**Articles and projects listed on this page are not official endorsements**, and are provided for informational purposes only. +We add links to this page based on criteria in our [listing policy](/contributing/design/adding-design-resources). If you'd like us to add a project/article, edit this page on [GitHub](https://github.com/ethereum/ethereum-org-website/blob/dev/public/content/developers/docs/design-and-ux/index.md). diff --git a/src/content/developers/docs/development-networks/index.md b/public/content/developers/docs/development-networks/index.md similarity index 100% rename from src/content/developers/docs/development-networks/index.md rename to public/content/developers/docs/development-networks/index.md diff --git a/src/content/developers/docs/ethereum-stack/index.md b/public/content/developers/docs/ethereum-stack/index.md similarity index 100% rename from src/content/developers/docs/ethereum-stack/index.md rename to public/content/developers/docs/ethereum-stack/index.md diff --git a/src/content/developers/docs/evm/evm-stack.png b/public/content/developers/docs/evm/evm-stack.png similarity index 100% rename from src/content/developers/docs/evm/evm-stack.png rename to public/content/developers/docs/evm/evm-stack.png diff --git a/src/content/developers/docs/evm/evm.png b/public/content/developers/docs/evm/evm.png similarity index 100% rename from src/content/developers/docs/evm/evm.png rename to public/content/developers/docs/evm/evm.png diff --git a/src/content/developers/docs/evm/index.md b/public/content/developers/docs/evm/index.md similarity index 100% rename from src/content/developers/docs/evm/index.md rename to public/content/developers/docs/evm/index.md diff --git a/src/content/developers/docs/evm/opcodes/index.md b/public/content/developers/docs/evm/opcodes/index.md similarity index 100% rename from src/content/developers/docs/evm/opcodes/index.md rename to public/content/developers/docs/evm/opcodes/index.md diff --git a/src/content/developers/docs/frameworks/index.md b/public/content/developers/docs/frameworks/index.md similarity index 100% rename from src/content/developers/docs/frameworks/index.md rename to public/content/developers/docs/frameworks/index.md diff --git a/src/content/developers/docs/gas/gas.png b/public/content/developers/docs/gas/gas.png similarity index 100% rename from src/content/developers/docs/gas/gas.png rename to public/content/developers/docs/gas/gas.png diff --git a/src/content/developers/docs/gas/index.md b/public/content/developers/docs/gas/index.md similarity index 100% rename from src/content/developers/docs/gas/index.md rename to public/content/developers/docs/gas/index.md diff --git a/src/content/developers/docs/ides/index.md b/public/content/developers/docs/ides/index.md similarity index 100% rename from src/content/developers/docs/ides/index.md rename to public/content/developers/docs/ides/index.md diff --git a/src/content/developers/docs/index.md b/public/content/developers/docs/index.md similarity index 100% rename from src/content/developers/docs/index.md rename to public/content/developers/docs/index.md diff --git a/src/content/developers/docs/intro-to-ether/index.md b/public/content/developers/docs/intro-to-ether/index.md similarity index 100% rename from src/content/developers/docs/intro-to-ether/index.md rename to public/content/developers/docs/intro-to-ether/index.md diff --git a/src/content/developers/docs/intro-to-ethereum/index.md b/public/content/developers/docs/intro-to-ethereum/index.md similarity index 100% rename from src/content/developers/docs/intro-to-ethereum/index.md rename to public/content/developers/docs/intro-to-ethereum/index.md diff --git a/public/content/developers/docs/mev/index.md b/public/content/developers/docs/mev/index.md new file mode 100644 index 00000000000..067b1110e34 --- /dev/null +++ b/public/content/developers/docs/mev/index.md @@ -0,0 +1,221 @@ +--- +title: Maximal extractable value (MEV) +description: An introduction to maximal extractable value (MEV) +lang: en +--- + +Maximal extractable value (MEV) refers to the maximum value that can be extracted from block production in excess of the standard block reward and gas fees by including, excluding, and changing the order of transactions in a block. + +## Miner extractable value {#miner-extractable-value} + +Maximal extractable value was first applied in the context of [proof-of-work](/developers/docs/consensus-mechanisms/pow/), and initially referred to as "miner extractable value". This is because in proof-of-work, miners control transaction inclusion, exclusion, and ordering. However, since the transition to proof-of-stake via [The Merge](/roadmap/merge) validators have been responsible for these roles, and mining is no longer part of the Ethereum protocol. The value extraction methods still exist, though, so the term "Maximal extractable value" is now used instead. + +## Prerequisites {#prerequisites} + +Make sure you're familiar with [transactions](/developers/docs/transactions/), [blocks](/developers/docs/blocks/), [proof-of-stake](/developers/docs/consensus-mechanisms/pos) and [gas](/developers/docs/gas/). Familiarity with [dapps](/dapps/) and [DeFi](/defi/) is helpful as well. + +## MEV extraction {#mev-extraction} + +In theory MEV accrues entirely to validators because they are the only party that can guarantee the execution of a profitable MEV opportunity. In practice, however, a large portion of MEV is extracted by independent network participants referred to as "searchers." Searchers run complex algorithms on blockchain data to detect profitable MEV opportunities and have bots to automatically submit those profitable transactions to the network. + +Validators do get a portion of the full MEV amount anyway because searchers are willing to pay high gas fees (which go to the validator) in exchange for higher likelihood of inclusion of their profitable transactions in a block. Assuming searchers are economically rational, the gas fee that a searcher is willing to pay will be an amount up to 100% of the searcher's MEV (because if the gas fee was higher, the searcher would lose money). + +With that, for some highly competitive MEV opportunities, such as [DEX arbitrage](#mev-examples-dex-arbitrage), searchers may have to pay 90% or even more of their total MEV revenue in gas fees to the validator because so many people want to run the same profitable arbitrage trade. This is because the only way to guarantee that their arbitrage transaction runs is if they submit the transaction with the highest gas price. + +### Gas golfing {#mev-extraction-gas-golfing} + +This dynamic has made being good at "gas golfing" — programming transactions so that they use the least amount of gas — a competitive advantage, because it allows searchers to set a higher gas price while keeping their total gas fees constant (since gas fees = gas price \* gas used). + +A few well-known gas golf techniques include: using addresses that start with a long string of zeroes (e.g. [0x0000000000C521824EaFf97Eac7B73B084ef9306](https://etherscan.io/address/0x0000000000c521824eaff97eac7b73b084ef9306)) since they take less space (and hence gas) to store; and leaving small [ERC-20](/developers/docs/standards/tokens/erc-20/) token balances in contracts, since it costs more gas to initialize a storage slot (the case if the balance is 0) than to update a storage slot. Finding more techniques to reduce gas usage is an active area of research among searchers. + +### Generalized frontrunners {#mev-extraction-generalized-frontrunners} + +Rather than programming complex algorithms to detect profitable MEV opportunities, some searchers run generalized frontrunners. Generalized frontrunners are bots that watch the mempool to detect profitable transactions. The frontrunner will copy the potentially profitable transaction's code, replace addresses with the frontrunner's address, and run the transaction locally to double-check that the modified transaction results in a profit to the frontrunner's address. If the transaction is indeed profitable, the frontrunner will submit the modified transaction with the replaced address and a higher gas price, "frontrunning" the original transaction and getting the original searcher's MEV. + +### Flashbots {#mev-extraction-flashbots} + +Flashbots is an independent project which extends execution clients with a service that allows searchers to submit MEV transactions to validators without revealing them to the public mempool. This prevents transactions from being frontrun by generalized frontrunners. + +## MEV examples {#mev-examples} + +MEV emerges on the blockchain in a few ways. + +### DEX arbitrage {#mev-examples-dex-arbitrage} + +[Decentralized exchange](/glossary/#dex) (DEX) arbitrage is the simplest and most well-known MEV opportunity. As a result, it is also the most competitive. + +It works like this: if two DEXes are offering a token at two different prices, someone can buy the token on the lower-priced DEX and sell it on the higher-priced DEX in a single, atomic transaction. Thanks to the mechanics of the blockchain, this is true, riskless arbitrage. + +[Here's an example](https://etherscan.io/tx/0x5e1657ef0e9be9bc72efefe59a2528d0d730d478cfc9e6cdd09af9f997bb3ef4) of a profitable arbitrage transaction where a searcher turned 1,000 ETH into 1,045 ETH by taking advantage of different pricing of the ETH/DAI pair on Uniswap vs. Sushiswap. + +### Liquidations {#mev-examples-liquidations} + +Lending protocol liquidations present another well-known MEV opportunity. + +Lending protocols like Maker and Aave require users to deposit some collateral (e.g. ETH). This deposited collateral is then used to then lend out to other users. + +Users can then borrow assets and tokens from others depending on what they need (e.g. you might borrow MKR if you want to vote in a MakerDAO governance proposal) up to a certain percentage of their deposited collateral. For example, if the borrowing amount is a maximum of 30%, a user who deposits 100 DAI into the protocol can borrow up to 30 DAI worth of another asset. The protocol determines the exact borrowing power percentage. + +As the value of a borrower's collateral fluctuates, so too does their borrowing power. If, due to market fluctuations, the value of borrowed assets exceeds say, 30% of the value of their collateral (again, the exact percentage is determined by the protocol), the protocol typically allows anyone to liquidate the collateral, instantly paying off the lenders (this is similar to how [margin calls](https://www.investopedia.com/terms/m/margincall.asp) work in traditional finance). If liquidated, the borrower usually has to pay a hefty liquidation fee, some of which goes to the liquidator — which is where the MEV opportunity comes in. + +Searchers compete to parse blockchain data as fast as possible to determine which borrowers can be liquidated and be the first to submit a liquidation transaction and collect the liquidation fee for themselves. + +### Sandwich trading {#mev-examples-sandwich-trading} + +Sandwich trading is another common method of MEV extraction. + +To sandwich, a searcher will watch the mempool for large DEX trades. For instance, suppose someone wants to buy 10,000 UNI with DAI on Uniswap. A trade of this magnitude will have a meaningful effect on the UNI/DAI pair, potentially significantly raising the price of UNI relative to DAI. + +A searcher can calculate the approximate price effect of this large trade on the UNI/DAI pair and execute an optimal buy order immediately _before_ the large trade, buying UNI cheaply, then execute a sell order immediately _after_ the large trade, selling it for the higher price caused by the large order. + +Sandwiching, however, is riskier as it isn't atomic (unlike DEX arbitrage, as described above) and is prone to a [salmonella attack](https://github.com/Defi-Cartel/salmonella). + +### NFT MEV {#mev-examples-nfts} + +MEV in the NFT space is an emergent phenomenon, and isn't necessarily profitable. + +However, since NFT transactions happen on the same blockchain shared by all other Ethereum transactions, searchers can use similar techniques as those used in traditional MEV opportunities in the NFT market too. + +For example, if there's a popular NFT drop and a searcher wants a certain NFT or set of NFTs, they can program a transaction such that they are the first in line to buy the NFT, or they can buy the entire set of NFTs in a single transaction. Or if an NFT is [mistakenly listed at a low price](https://www.theblockcrypto.com/post/113546/mistake-sees-69000-cryptopunk-sold-for-less-than-a-cent), a searcher can frontrun other purchasers and snap it up for cheap. + +One prominent example of NFT MEV occurred when a searcher spent $7 million to [buy](https://etherscan.io/address/0x650dCdEB6ecF05aE3CAF30A70966E2F395d5E9E5) every single Cryptopunk at the price floor. A blockchain researcher [explained on Twitter](https://twitter.com/IvanBogatyy/status/1422232184493121538) how the buyer worked with an MEV provider to keep their purchase secret. + +### The long tail {#mev-examples-long-tail} + +DEX arbitrage, liquidations, and sandwich trading are all very well-known MEV opportunities and are unlikely to be profitable for new searchers. However, there is a long tail of lesser known MEV opportunities (NFT MEV is arguably one such opportunity). + +Searchers who are just getting started may be able to find more success by searching for MEV in this longer tail. Flashbot's [MEV job board](https://github.com/flashbots/mev-job-board) lists some emerging opportunities. + +## Effects of MEV {#effects-of-mev} + +MEV is not all bad — there are both positive and negative consequences to MEV on Ethereum. + +### The good {#effects-of-mev-the-good} + +Many DeFi projects rely on economically rational actors to ensure the usefulness and stability of their protocols. For instance, DEX arbitrage ensures that users get the best, most correct prices for their tokens, and lending protocols rely on speedy liquidations when borrowers fall below collateralization ratios to ensure lenders get paid back. + +Without rational searchers seeking and fixing economic inefficiencies and taking advantage of protocols' economic incentives, DeFi protocols and dapps in general may not be as robust as they are today. + +### The bad {#effects-of-mev-the-bad} + +At the application layer, some forms of MEV, like sandwich trading, result in an unequivocally worse experience for users. Users who are sandwiched face increased slippage and worse execution on their trades. + +At the network layer, generalized frontrunners and the gas-price auctions they often engage in (when two or more frontrunners compete for their transaction to be included in the next block by progressively raising their own transactions' gas price) result in network congestion and high gas prices for everyone else trying to run regular transactions. + +Beyond what's happening _within_ blocks, MEV can have deleterious effects _between_ blocks. If the MEV available in a block significantly exceeds the standard block reward, validators may be incentivized to reorg blocks and capture the MEV for themselves, causing blockchain re-organization and consensus instability. + +This possibility of blockchain re-organization has been [previously explored on the Bitcoin blockchain](https://dl.acm.org/doi/10.1145/2976749.2978408). As Bitcoin's block reward halves and transaction fees make up a greater and greater portion of the block reward, situations arise where it becomes economically rational for miners to give up the next block's reward and instead remine past blocks with higher fees. With the growth of MEV, the same sort of situation could occur in Ethereum, threatening the integrity of the blockchain. + +## State of MEV {#state-of-mev} + +MEV extraction ballooned in early 2021, resulting in extremely high gas prices in the first few months of the year. The emergence of Flashbots's MEV relay has reduced the effectiveness of generalized frontrunners and has taken gas price auctions off-chain, lowering gas prices for ordinary users. + +While many searchers are still making good money from MEV, as opportunities become more well-known and more and more searchers compete for the same opportunity, validators will capture more and more total MEV revenue (because the same sort of gas auctions as originally described above also occur in Flashbots, albeit privately, and validators will capture the resulting gas revenue). MEV is also not unique to Ethereum, and as opportunities become more competitive on Ethereum, searchers are moving to alternate blockchains like Binance Smart Chain, where similar MEV opportunities as those on Ethereum exist with less competition. + +On the other hand, the transition from proof-of-work to proof-of-stake and the ongoing effort to scale Ethereum using rollups all change the MEV landscape in ways that are still somewhat unclear. It is not yet well known how having guaranteed block-proposers known slightly in advance changes the dynamics of MEV extraction compared to the probabilistic model in proof-of-work or how this will be disrupted when [single secret leader election](https://ethresear.ch/t/secret-non-single-leader-election/11789) and [distributed validator technology](/staking/dvt/) get implemented. Similarly, it remains to be seen what MEV opportunities exist when most user activity is ported away from Ethereum and onto its layer 2 rollups and shards. + +## MEV in Ethereum Proof-of-Stake (PoS) {#mev-in-ethereum-proof-of-stake} + +As explained, MEV has negative implications for overall user experience and consensus-layer security. But Ethereum’s transition to a proof-of-stake consensus (dubbed “The Merge”) potentially introduces new MEV-related risks: + +### Validator centralization {#validator-centralization} + +In post-Merge Ethereum, validators (having made security deposits of 32 ETH) come to consensus on the validity of blocks added to the Beacon Chain. Since 32 ETH may be out of the reach of many, [joining a staking pool](/staking/pools/) may be a more feasible option. Nevertheless, a healthy distribution of [solo stakers](/staking/solo/) is ideal, as it mitigates the centralization of validators and improves Ethereum’s security. + +However, MEV extraction is believed to be capable of accelerating validator centralization. This is partly because, as validators [earn less for proposing blocks](/roadmap/merge/issuance/#how-the-merge-impacts-ETH-supply) than miners currently do, MEV extraction may greatly [influence validator earnings](https://github.com/flashbots/eth2-research/blob/main/notebooks/mev-in-eth2/eth2-mev-calc.ipynb) after The Merge. + +Larger staking pools will likely have more resources to invest in necessary optimizations to capture MEV opportunities. The more MEV these pools extract, the more resources they have to improve their MEV-extraction capabilities (and increase overall revenue), essentially creating [economies of scale](https://www.investopedia.com/terms/e/economiesofscale.asp#). + +With fewer resources at their disposal, solo stakers may be unable to profit from MEV opportunities. This may increase the pressure on independent validators to join powerful staking pools to boost their earnings, reducing decentralization in Ethereum. + +### Permissioned mempools {#permissioned-mempools} + +In response to sandwiching and frontrunning attacks, traders may start conducting off-chain deals with validators for transaction privacy. Instead of sending a potential MEV transaction to the public mempool, the trader sends it directly to the validator, who includes it in a block and splits profits with the trader. + +“Dark pools” are a larger version of this arrangement and function as permissioned, access-only mempools open to users willing to pay certain fees. This trend would diminish Ethereum’s permissionlessness and trustlessness and potentially transform the blockchain into a “pay-to-play” mechanism that favors the highest bidder. + +Permissioned mempools would also accelerate the centralization risks described in the previous section. Large pools running multiple validators will likely benefit from offering transaction privacy to traders and users, increasing their MEV revenues. + +Combating these MEV-related problems in post-Merge Ethereum is a core area of research. To date, two solutions proposed to reduce the negative impact of MEV on Ethereum’s decentralization and security after The Merge are **Proposer-Builder Separation (PBS)** and the **Builder API**. + +### Proposer-Builder Separation {#proposer-builder-separation} + +In both proof-of-work and proof-of-stake, a node that builds a block proposes it for addition to the chain to other nodes participating in consensus. A new block becomes part of the canonical chain after another miner builds on top of it (in PoW) or it receives attestations from the majority of validators (in Pos). + +The combination of block producer and block proposer roles is what introduces most of the MEV-related problems described previously. For example, consensus nodes are incentivized to trigger chain reorganizations in time-bandit attacks to maximize MEV earnings. + +[Proposer-builder separation](https://ethresear.ch/t/proposer-block-builder-separation-friendly-fee-market-designs/9725) (PBS) is designed to mitigate the impact of MEV, especially at the consensus layer. PBS’ major feature is the separation of block producer and block proposer rules. Validators are still responsible for proposing and voting on blocks, but a new class of specialized entities, called **block builders**, are tasked with ordering transactions and building blocks. + +Under PBS, a block builder creates a transaction bundle and places a bid for its inclusion in a Beacon Chain block (as the “execution payload”). The validator selected to propose the next block then checks the different bids and chooses the bundle with the highest fee. PBS essentially creates an auction market, where builders negotiate with validators selling blockspace. + +Current PBS designs use a [commit-reveal scheme](https://gitcoin.co/blog/commit-reveal-scheme-on-ethereum/) in which builders only publish a cryptographic commitment to a block’s contents (block header) along with their bids. After accepting the winning bid, the proposer creates a signed block proposal that includes the block header. The block builder is expected to publish the full block body after seeing the signed block proposal, and it must also receive enough [attestations](/glossary/#attestation) from validators before it is finalized. + +#### How does proposer-builder separation mitigate MEV’s impact? {#how-does-pbs-curb-mev-impact} + +In-protocol proposer-builder separation reduces MEV’s effect on consensus by removing MEV extraction from the purview of validators. Instead, block builders running specialized hardware will capture MEV opportunities going forward. + +This doesn’t exclude validators totally from MEV-related income, though, as builders must bid high to get their blocks accepted by validators. Nevertheless, with validators no longer directly focused on optimizing MEV income, the threat of time-bandit attacks reduces. + +Proposer-builder separation also reduces MEV’s centralization risks. For instance, the use of a commit-reveal scheme removes the need for builders to trust validators not to steal the MEV opportunity or expose it to other builders. This lowers the barrier for solo stakers to benefit from MEV, otherwise, builders would trend towards favoring large pools with off-chain reputation and conducting off-chain deals with them. + +Similarly, validators don’t have to trust builders not to withhold block bodies or publish invalid blocks because payment is unconditional. The validator’s fee still processes even if the proposed block is unavailable or declared invalid by other validators. In the latter case, the block is simply discarded, forcing the block builder to lose all transaction fees and MEV revenue. + +### Builder API {#builder-api} + +While proposer-builder separation promises to reduce the effects of MEV extraction, implementing it requires changes to the consensus protocol. Specifically, the [fork choice](/developers/docs/consensus-mechanisms/pos/#fork-choice) rule on the Beacon Chain would need to be updated. The [Builder API](https://github.com/ethereum/builder-specs) is a temporary solution aimed at providing a working implementation of proposer-builder separation, albeit with higher trust assumptions. + +The Builder API is a modified version of the [Engine API](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) used by consensus layer clients to request execution payloads from execution layer clients. As outlined in the [honest validator specification](https://github.com/ethereum/consensus-specs/blob/dev/specs/bellatrix/validator.md), validators selected for block proposing duties request a transaction bundle from a connected execution client, which they include in the proposed Beacon Chain block. + +The Builder API also acts as a middleware between validators and execution-layer clients; but it is different because it allows validators on the Beacon Chain to source blocks from external entities (instead of building a block locally using an execution client). + +Below is an overview of how the Builder API works: + +1. The Builder API connects the validator to a network of block builders running execution layer clients. Like in PBS, builders are specialized parties that invest in resource-intensive block-building and use different strategies to maximize revenue earned from MEV + priority tips. + +2. A validator (running a consensus layer client) requests execution payloads along with bids from the network of builders. Bids from builders will contain the execution payload header—a cryptographic commitment to the payload's contents—and a fee to be paid to the validator. + +3. The validator reviews the incoming bids and picks the execution payload with the highest fee. Using the Builder API, the validator creates a "blinded" Beacon block proposal that includes only their signature and the execution payload header and sends it to the builder. + +4. The builder running the Builder API is expected to respond with the full execution payload upon seeing the blinded block proposal. This allows the validator to create a "signed" Beacon block, which they propagate throughout the network. + +5. A validator using the Builder API is still expected to build a block locally in case the block builder fails to respond promptly, so they don't miss out on block proposal rewards. However, validator cannot create another block using either the now-revealed transactions or another set, as it would amount to _equivocation_ (signing two blocks within the same slot), which is a slashable offense. + +An example implementation of the Builder API is [MEV Boost](https://github.com/flashbots/mev-boost), an improvement on the [Flashbots auction mechanism](https://docs.flashbots.net/Flashbots-auction/overview/) designed to curb the negative externalities of MEV on Ethereum. Flashbots auction allows miners in proof-of-work to outsource the work of building profitable blocks to specialized parties called **searchers**. + +Searchers look for lucrative MEV opportunities and send transaction bundles to miners along with a [sealed-price bid](https://en.wikipedia.org/wiki/First-price_sealed-bid_auction) for inclusion in the block. The miner running mev-geth, a forked version of the go-ethereum (Geth) client only has to choose the bundle with the most profit and mine it as part of the new block. To protect miners from spam and invalid transactions, transaction bundles pass through **relayers** for validation before getting to miners. + +MEV Boost retains the same workings of the original Flashbots auction, albeit with new features designed for Ethereum’s switch to proof-of-stake. Searchers still find profitable MEV transactions for inclusion in blocks, but a new class of specialized parties, called **builders**, are responsible for aggregating transactions and bundles into blocks. A builder accepts sealed-price bids from searchers and runs optimizations to find the most profitable ordering. + +The relayer is still responsible for validating transaction bundles before passing them to the proposer. However, MEV Boost introduces **escrows** responsible for providing [data availability](/developers/docs/data-availability/) by storing block bodies sent by builders and block headers sent by validators. Here, a validator connected to a relay asks for available execution payloads and uses MEV Boost’s ordering algorithm to select the payload header with the highest bid + MEV tips. + +#### How does the Builder API mitigate MEV’s impact? {#how-does-builder-api-curb-mev-impact} + +The core benefit of the Builder API is its potential to democratize access to MEV opportunities. Using commit-reveal schemes eliminates trust assumptions and reduces entry barriers for validators seeking to benefit from MEV. This should reduce the pressure on solo stakers to integrate with large staking pools in order to boost MEV profits. + +Widespread implementation of the Builder API will encourage greater competition among block builders, which increases censorship resistance. As validators review bids from multiple builders, a builder intent on censoring one or more user transactions must outbid all other non-censoring builders to be successful. This dramatically increases the cost of censoring users and discourages the practice. + +Some projects, such as MEV Boost, use the Builder API as part of an overall structure designed to provide transaction privacy to certain parties, such as traders trying to avoid frontrunning/sandwiching attacks. This is achieved by providing a private communication channel between users and block builders. Unlike the permissioned mempools described earlier, this approach is beneficial for the following reasons: + +1. The existence of multiple builders on the market makes censoring impractical, which benefits users. In contrast, the existence of centralized and trust-based dark pools would concentrate power in the hands of a few block builders and increase the possibility of censoring. + +2. The Builder API software is open-source, which allows anyone to offer block-builder services. This means users aren’t forced into using any particular block builder and improves Ethereum’s neutrality and permissionlessness. Moreover, MEV-seeking traders won’t inadvertently contribute to centralization by using private transaction channels. + +## Related resources {#related-resources} + +- [Flashbots docs](https://docs.flashbots.net/) +- [Flashbots GitHub](https://github.com/flashbots/pm) +- [MEV-Explore](https://explore.flashbots.net/) - _Dashboard and live transaction explorer for MEV transactions_ +- [mevboost.org](https://www.mevboost.org/) - _Tracker with real-time stats for MEV-Boost relays and block builders_ + +## Further reading {#further-reading} + +- [What Is Miner-Extractable Value (MEV)?](https://blog.chain.link/what-is-miner-extractable-value-mev/) +- [MEV and Me](https://www.paradigm.xyz/2021/02/mev-and-me) +- [Ethereum is a Dark Forest](https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest/) +- [Escaping the Dark Forest](https://samczsun.com/escaping-the-dark-forest/) +- [Flashbots: Frontrunning the MEV Crisis](https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752) +- [@bertcmiller's MEV Threads](https://twitter.com/bertcmiller/status/1402665992422047747) +- [MEV-Boost: Merge ready Flashbots Architecture](https://ethresear.ch/t/mev-boost-merge-ready-flashbots-architecture/11177) +- [What Is MEV Boost](https://www.alchemy.com/overviews/mev-boost) +- [Why run mev-boost?](https://writings.flashbots.net/writings/why-run-mevboost/) +- [The Hitchhikers Guide To Ethereum](https://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum) diff --git a/src/content/developers/docs/networking-layer/cons_client_net_layer.png b/public/content/developers/docs/networking-layer/cons_client_net_layer.png similarity index 100% rename from src/content/developers/docs/networking-layer/cons_client_net_layer.png rename to public/content/developers/docs/networking-layer/cons_client_net_layer.png diff --git a/src/content/developers/docs/networking-layer/exe_client_net_layer.png b/public/content/developers/docs/networking-layer/exe_client_net_layer.png similarity index 100% rename from src/content/developers/docs/networking-layer/exe_client_net_layer.png rename to public/content/developers/docs/networking-layer/exe_client_net_layer.png diff --git a/public/content/developers/docs/networking-layer/index.md b/public/content/developers/docs/networking-layer/index.md new file mode 100644 index 00000000000..74b15b33e34 --- /dev/null +++ b/public/content/developers/docs/networking-layer/index.md @@ -0,0 +1,163 @@ +--- +title: Networking layer +description: An introduction to Ethereum's networking layer. +lang: en +sidebarDepth: 2 +--- + +Ethereum is a peer-to-peer network with thousands of nodes that must be able to communicate with one another using standardized protocols. The "networking layer" is the stack of protocols that allow those nodes to find each other and exchange information. This includes "gossiping" information (one-to-many communication) over the network as well as swapping requests and responses between specific nodes (one-to-one communication). Each node must adhere to specific networking rules to ensure they are sending and receiving the correct information. + +There are two parts to the client software (execution clients and consensus clients), each with its own distinct networking stack. As well as communicating with other Ethereum nodes, the execution and consensus clients have to communicate with each other. This page gives an introductory explanation of the protocols that enable this communication. + +Execution clients gossip transactions over the execution-layer peer-to-peer network. This requires encrypted communication between authenticated peers. When a validator is selected to propose a block, transactions from the node's local transaction pool will be passed to consensus clients via a local RPC connection, which will be packaged into Beacon blocks. Consensus clients will then gossip Beacon blocks across their p2p network. This requires two separate p2p networks: one connecting execution clients for transaction gossip and one connecting consensus clients for block gossip. + +## Prerequisites {#prerequisites} + +Some knowledge of Ethereum [nodes and clients](/developers/docs/nodes-and-clients/) will be helpful for understanding this page. + +## The Execution Layer {#execution-layer} + +The execution layer's networking protocols is divided into two stacks: + +- the discovery stack: built on top of UDP and allows a new node to find peers to connect to + +- the DevP2P stack: sits on top of TCP and enables nodes to exchange information + +Both stacks work in parallel. The discovery stack feeds new network participants into the network, and the DevP2P stack enables their interactions. + +### Discovery {#discovery} + +Discovery is the process of finding other nodes in network. This is bootstrapped using a small set of bootnodes (nodes whose addresses are [hardcoded](https://github.com/ethereum/go-ethereum/blob/master/params/bootnodes.go) into the client so they can be found immediately and connect the client to peers). These bootnodes only exist to introduce a new node to a set of peers - this is their sole purpose, they do not participate in normal client tasks like syncing the chain, and they are only used the very first time a client is spun up. + +The protocol used for the node-bootnode interactions is a modified form of [Kademlia](https://medium.com/coinmonks/a-brief-overview-of-kademlia-and-its-use-in-various-decentralized-platforms-da08a7f72b8f) which uses a [distributed hash table](https://en.wikipedia.org/wiki/Distributed_hash_table) to share lists of nodes. Each node has a version of this table containing the information required to connect to its closest peers. This 'closeness' is not geographical - distance is defined by the similarity of the node's ID. Each node's table is regularly refreshed as a security feature. For example, in the [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5), discovery protocol nodes are also able to send 'ads' that display the subprotocols that the client supports, allowing peers to negotiate about the protocols they can both use to communicate over. + +Discovery starts with a game of PING-PONG. A successful PING-PONG "bonds" the new node to a bootnode. The initial message that alerts a bootnode to the existence of a new node entering the network is a `PING`. This `PING` includes hashed information about the new node, the bootnode and an expiry time-stamp. The bootnode receives the `PING` and returns a `PONG` containing the `PING` hash. If the `PING` and `PONG` hashes match then the connection between the new node and bootnode is verified and they are said to have "bonded". + +Once bonded, the new node can send a `FIND-NEIGHBOURS` request to the bootnode. The data returned by the bootnode includes a list of peers that the new node can connect to. If the nodes are not bonded, the `FIND-NEIGHBOURS` request will fail, so the new node will not be able to enter the network. + +Once the new node receives a list of neighbours from the bootnode, it begins a PING-PONG exchange with each of them. Successful PING-PONGs bond the new node with its neighbours, enabling message exchange. + +``` +start client --> connect to bootnode --> bond to bootnode --> find neighbours --> bond to neighbours +``` + +Execution clients are currently using the [Discv4](https://github.com/ethereum/devp2p/blob/master/discv4.md) discovery protocol and there is an active effort to migrate to the [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5) protocol. + +#### ENR: Ethereum Node Records {#enr} + +The [Ethereum Node Record (ENR)](/developers/docs/networking-layer/network-addresses/) is an object that contains three basic elements: a signature (hash of record contents made according to some agreed identity scheme), a sequence number that tracks changes to the record, and an arbitrary list of key:value pairs. This is a future-proof format that allows easier exchange of identifying information between new peers and is the preferred [network address](/developers/docs/networking-layer/network-addresses) format for Ethereum nodes. + +#### Why is discovery built on UDP? {#why-udp} + +UDP does not support any error checking, resending of failed packets, or dynamically opening and closing connections - instead it just fires a continuous stream of information at a target, regardless of whether it is successfully received. This minimal functionality also translates into minimal overhead, making this kind of connection very fast. For discovery, where a node simply wants to make its presence known in order to then establish a formal connection with a peer, UDP is sufficient. However, for the rest of the networking stack, UDP is not fit for purpose. The informational exchange between nodes is quite complex and therefore needs a more fully featured protocol that can support resending, error checking etc. The additional overhead associated with TCP is worth the additional functionality. Therefore, the majority of the P2P stack operates over TCP. + +### DevP2P {#devp2p} + +DevP2P is itself a whole stack of protocols that Ethereum implements to establish and maintain the peer-to-peer network. After new nodes enter the network, their interactions are governed by protocols in the [DevP2P](https://github.com/ethereum/devp2p) stack. These all sit on top of TCP and include the RLPx transport protocol, wire protocol and several sub-protocols. [RLPx](https://github.com/ethereum/devp2p/blob/master/rlpx.md) is the protocol governing initiating, authenticating and maintaining sessions between nodes. RLPx encodes messages using RLP (Recursive Length Prefix) which is a very space-efficient method of encoding data into a minimal structure for sending between nodes. + +A RLPx session between two nodes begins with an initial cryptographic handshake. This involves the node sending an auth message which is then verified by the peer. On successful verification, the peer generates an auth-acknowledgement message to return to the initiator node. This is a key-exchange process that enables the nodes to communicate privately and securely. A successful cryptographic handshake then triggers both nodes to send a "hello" message to one another "on the wire". The wire protocol is initiated by a successful exchange of hello messages. + +The hello messages contain: + +- protocol version +- client ID +- port +- node ID +- list of supported sub-protocols + +This is the information required for a successful interaction because it defines what capabilities are shared between both nodes and configures the communication. There is a process of sub-protocol negotiation where the lists of sub-protocols supported by each node are compared and those that are common to both nodes can be used in the session. + +Along with the hello messages, the wire protocol can also send a "disconnect" message that gives warning to a peer that the connection will be closed. The wire protocol also includes PING and PONG messages that are sent periodically to keep a session open. The RLPx and wire protocol exchanges therefore establish the foundations of communication between the nodes, providing the scaffolding for useful information to be exchanged according to a specific sub-protocol. + +### Sub-protocols {#sub-protocols} + +#### Wire protocol {#wire-protocol} + +Once peers are connected, and an RLPx session has been started, the wire protocol defines how peers communicate. Initially, the wire protocol defined three main tasks: chain synchronization, block propagation and transaction exchange. However, once Ethereum switched to proof-of-stake, block propagation and chain synchronization became part of the consensus layer. Transaction exchange is still in the remit of the execution clients. Transaction exchange refers to exchanging pending transactions between nodes so that miners can select some of them for inclusion in the next block. Detailed information about these tasks is available [here](https://github.com/ethereum/devp2p/blob/master/caps/eth.md). Clients that support these sub-protocols expose them via the [JSON-RPC](/developers/docs/apis/json-rpc/). + +#### les (light ethereum subprotocol) {#les} + +This is a minimal protocol for syncing light clients. Traditionally this protocol has rarely been used because full nodes are required to serve data to light clients without being incentivized. The default behavior of execution clients is not to serve light client data over les. More information is available in the les [spec](https://github.com/ethereum/devp2p/blob/master/caps/les.md). + +#### Snap {#snap} + +The [snap protocol](https://github.com/ethereum/devp2p/blob/master/caps/snap.md#ethereum-snapshot-protocol-snap) is an optional extension that allows peers to exchange snapshots of recent states, allowing peers to verify account and storage data without having to download intermediate Merkle trie nodes. + +#### Wit (witness protocol) {#wit} + +The [witness protocol](https://github.com/ethereum/devp2p/blob/master/caps/wit.md#ethereum-witness-protocol-wit) is an optional extension that enables exchange of state witnesses between peers, helping to sync clients to the tip of the chain. + +#### Whisper {#whisper} + +Whisper was a protocol that aimed to deliver secure messaging between peers without writing any information to the blockchain. It was part of the DevP2P wire protocol but is now deprecated. Other [related projects](https://wakunetwork.com/) exist with similar aims. + +## The consensus layer {#consensus-layer} + +The consensus clients participate in a separate peer-to-peer network with a different specification. Consensus clients need to participate in block gossip so that they can receive new blocks from peers and broadcast them when it is their turn to be block proposer. Similar to the execution layer, this first requires a discovery protocol so that a node can find peers and establish secure sessions for exchanging blocks, attestations etc. + +### Discovery {#consensus-discovery} + +Similar to the execution clients, consensus clients use [discv5](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-discovery-domain-discv5) over UDP for finding peers. The consensus layer implementation of discv5 differs from that of the execution clients only in that it includes an adaptor connecting discv5 into a [libP2P](https://libp2p.io/) stack, deprecating DevP2P. The execution layer's RLPx sessions are deprecated in favour of libP2P's noise secure channel handshake. + +### ENRs {#consensus-enr} + +The ENR for consensus nodes includes the node's public key, IP address, UDP and TCP ports and two consensus-specific fields: the attestation subnet bitfield and `eth2` key. The former makes it easier for nodes to find peers participating in specific attestation gossip sub-networks. The `eth2` key contains information about which Ethereum fork version the node is using, ensuring peers are connecting to the right Ethereum. + +### libP2P {#libp2p} + +The libP2P stack supports all communications after discovery. Clients can dial and listen on IPv4 and/or IPv6 as defined in their ENR. The protocols on the libP2P layer can be subdivided into the gossip and req/resp domains. + +### Gossip {#gossip} + +The gossip domain includes all information that has to spread rapidly throughout the network. This includes beacon blocks, proofs, attestations, exits and slashings. This is transmitted using libP2P gossipsub v1 and relies on various metadata being stored locally at each node, including maximum size of gossip payloads to receive and transmit. Detailed information about the gossip domain is available [here](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-gossip-domain-gossipsub). + +### Request-response {#request-response} + +The request-response domain contains protocols for clients requesting specific information from their peers. Examples include requesting specific Beacon blocks matching certain root hashes or within a range of slots. The responses are always returned as snappy-compressed SSZ encoded bytes. + +## Why does the consensus client prefer SSZ to RLP? {#ssz-vs-rlp} + +SSZ stands for simple serialization. It uses fixed offsets that make it easy to decode individual parts of an encoded message without having to decode the entire structure, which is very useful for the consensus client as it can efficiently grab specific pieces of information from encoded messages. It is also designed specifically to integrate with Merkle protocols, with related efficiency gains for Merkleization. Since all hashes in the consensus layer are Merkle roots, this adds up to a significant improvement. SSZ also guarantees unique representations of values. + +## Connecting the execution and consensus clients {#connecting-clients} + +Both consensus and execution clients run in parallel. They need to be connected so that the consensus client can provide instructions to the execution client, and the execution client can pass bundles of transactions to the consensus client to include in Beacon blocks. The communication between the two clients can be achieved using a local RPC connection. An API known as the ['Engine-API'](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) defines the instructions sent between the two clients. Since both clients sit behind a single network identity, they share an ENR (Ethereum node record) which contains a separate key for each client (eth1 key and eth2 key). + +A summary of the control flow is shown below, with the relevant networking stack in brackets. + +### When consensus client is not block producer: {#when-consensus-client-is-not-block-producer} + +- Consensus client receives a block via the block gossip protocol (consensus p2p) +- Consensus client pre-validates the block, i.e. ensures it arrived from a valid sender with correct metadata +- The transactions in the block are sent to the execution layer as an execution payload (local RPC connection) +- The execution layer executes the transactions and validates the state in the block header (i.e. checks hashes match) +- Execution layer passes validation data back to consensus layer, block now considered to be validated (local RPC connection) +- Consensus layer adds block to head of its own blockchain and attests to it, broadcasting the attestation over the network (consensus p2p) + +### When consensus client is block producer: {#when-consensus-client-is-block-producer} + +- Consensus client receives notice that it is the next block producer (consensus p2p) +- Consensus layer calls `create block` method in execution client (local RPC) +- Execution layer accesses the transaction mempool which has been populated by the transaction gossip protocol (execution p2p) +- Execution client bundles transactions into a block, executes the transactions and generates a block hash +- Consensus client grabs the transactions and block hash from the execution client and adds them to the beacon block (local RPC) +- Consensus client broadcasts the block over the block gossip protocol (consensus p2p) +- Other clients receive the proposed block via the block gossip protocol and validate as described above (consensus p2p) + +Once the block has been attested by sufficient validators it is added to the head of the chain, justified and eventually finalized. + +![](cons_client_net_layer.png) +![](exe_client_net_layer.png) + +Network layer schematic for consensus and execution clients, from [ethresear.ch](https://ethresear.ch/t/eth1-eth2-client-relationship/7248) + +## Further Reading {#further-reading} + +[DevP2P](https://github.com/ethereum/devp2p) +[LibP2p](https://github.com/libp2p/specs) +[Consensus layer network specs](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#enr-structure) +[kademlia to discv5](https://vac.dev/kademlia-to-discv5) +[kademlia paper](https://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf) +[intro to Ethereum p2p](https://p2p.paris/en/talks/intro-ethereum-networking/) +[eth1/eth2 relationship](http://ethresear.ch/t/eth1-eth2-client-relationship/7248) +[merge and eth2 client details video](https://www.youtube.com/watch?v=zNIrIninMgg) diff --git a/src/content/developers/docs/networking-layer/network-addresses/index.md b/public/content/developers/docs/networking-layer/network-addresses/index.md similarity index 100% rename from src/content/developers/docs/networking-layer/network-addresses/index.md rename to public/content/developers/docs/networking-layer/network-addresses/index.md diff --git a/src/content/developers/docs/networking-layer/portal-network/index.md b/public/content/developers/docs/networking-layer/portal-network/index.md similarity index 100% rename from src/content/developers/docs/networking-layer/portal-network/index.md rename to public/content/developers/docs/networking-layer/portal-network/index.md diff --git a/src/content/developers/docs/networking-layer/portal-network/portal-network-devp2p-libp2p.png b/public/content/developers/docs/networking-layer/portal-network/portal-network-devp2p-libp2p.png similarity index 100% rename from src/content/developers/docs/networking-layer/portal-network/portal-network-devp2p-libp2p.png rename to public/content/developers/docs/networking-layer/portal-network/portal-network-devp2p-libp2p.png diff --git a/src/content/developers/docs/networking-layer/portal-network/portal-network-table2.png b/public/content/developers/docs/networking-layer/portal-network/portal-network-table2.png similarity index 100% rename from src/content/developers/docs/networking-layer/portal-network/portal-network-table2.png rename to public/content/developers/docs/networking-layer/portal-network/portal-network-table2.png diff --git a/src/content/developers/docs/networks/index.md b/public/content/developers/docs/networks/index.md similarity index 100% rename from src/content/developers/docs/networks/index.md rename to public/content/developers/docs/networks/index.md diff --git a/src/content/developers/docs/nodes-and-clients/archive-nodes/index.md b/public/content/developers/docs/nodes-and-clients/archive-nodes/index.md similarity index 100% rename from src/content/developers/docs/nodes-and-clients/archive-nodes/index.md rename to public/content/developers/docs/nodes-and-clients/archive-nodes/index.md diff --git a/src/content/developers/docs/nodes-and-clients/bootnodes/index.md b/public/content/developers/docs/nodes-and-clients/bootnodes/index.md similarity index 100% rename from src/content/developers/docs/nodes-and-clients/bootnodes/index.md rename to public/content/developers/docs/nodes-and-clients/bootnodes/index.md diff --git a/src/content/developers/docs/nodes-and-clients/client-diagram.png b/public/content/developers/docs/nodes-and-clients/client-diagram.png similarity index 100% rename from src/content/developers/docs/nodes-and-clients/client-diagram.png rename to public/content/developers/docs/nodes-and-clients/client-diagram.png diff --git a/src/content/developers/docs/nodes-and-clients/client-diversity/client-diversity.png b/public/content/developers/docs/nodes-and-clients/client-diversity/client-diversity.png similarity index 100% rename from src/content/developers/docs/nodes-and-clients/client-diversity/client-diversity.png rename to public/content/developers/docs/nodes-and-clients/client-diversity/client-diversity.png diff --git a/public/content/developers/docs/nodes-and-clients/client-diversity/index.md b/public/content/developers/docs/nodes-and-clients/client-diversity/index.md new file mode 100644 index 00000000000..1a925d6a02c --- /dev/null +++ b/public/content/developers/docs/nodes-and-clients/client-diversity/index.md @@ -0,0 +1,111 @@ +--- +title: Client diversity +description: A high level explanation of the importance of Ethereum client diversity. +lang: en +sidebarDepth: 2 +--- + +The behavior of an Ethereum node is controlled by the client software it runs. There are several production-level Ethereum clients, each one developed and maintained in different languages by separate teams. The clients are built to a common spec that ensures the clients seamlessly communicate with each other and have the same functionality and provide an equivalent user experience. However, at the moment the distribution of clients across nodes is not equal enough to realize this network fortification to its full potential. Ideally, users divide roughly equally across the various clients to bring as much client diversity as possible to the network. + +## Prerequisites {#prerequisites} + +If you don't already understand what nodes and clients are, check out [nodes and clients](/developers/docs/nodes-and-clients/). [Execution](/glossary/#execution-layer) and [consensus](/glossary/#consensus-layer) layers are defined in the glossary. + +## Why are there multiple clients? {#why-multiple-clients} + +Multiple, independently developed and maintained clients exist because client diversity makes the network more resilient to attacks and bugs. Multiple clients is a strength unique to Ethereum - other blockchains rely on the infallibility of a single client. However, it is not enough simply to have multiple, clients available, they have to be adopted by the community and the total active nodes distributed relatively evenly across them. + +## Why is client diversity important? {#client-diversity-importance} + +Having many independently developed and maintained clients is vital for the health of a decentralized network. Let's explore the reasons why. + +### Bugs {#bugs} + +A bug in an individual client is less of a risk to the network when representing a minority of Ethereum nodes. With a roughly even distribution of nodes across many clients, the likelihood of most clients suffering from a shared issue is small, and as a result, the network is more robust. + +### Resilience to attacks {#resilience} + +Client diversity also offers resilience to attacks. For example, an attack that [tricks a particular client](https://twitter.com/vdWijden/status/1437712249926393858) onto a particular branch of the chain is unlikely to be successful because other clients are unlikely to be exploitable in the same way and the canonical chain remains uncorrupted. Low client diversity increases the risk associated with a hack on the dominant client. Client diversity has already proven to be an important defense against malicious attacks on the network, for example the Shanghai denial-of-service attack in 2016 was possible because attackers were able to trick the dominant client (Geth) into executing a slow disk i/o operation tens of thousands of times per block. Because alternative clients were also online which did not share the vulnerability, Ethereum was able to resist the attack and continue to operate while the vulnerability in Geth was fixed. + +### Proof-of-stake finality {#finality} + +A bug in a consensus client with over 33% of the Ethereum nodes could prevent the consensus layer from finalizing, meaning users could not trust that transactions would not be reverted or changed at some point. This would be very problematic for many of the apps built on top of Ethereum, particularly DeFi. + + Worse still, a critical bug in a client with a two-thirds majority could cause the chain to incorrectly split and finalize, leading to a large set of validators getting stuck on an invalid chain. If they want to rejoin the correct chain, these validators face slashing or a slow and expensive voluntary withdrawal and reactivation. The magnitude of a slashing scales with the number of culpable nodes with a two-thirds majority slashed maximally (32 ETH). + +Although these are unlikely scenarios, the Ethereum eco-system can mitigate their risk by evening out the distribution of clients across the active nodes. Ideally, no consensus client would ever reach a 33% share of the total nodes. + +### Shared responsibility {#responsibility} + +There is also a human cost to having majority clients. It puts excess strain and responsibility on a small development team. The lesser the client diversity, the greater the burden of responsibility for the developers maintaining the majority client. Spreading this responsibility across multiple teams is good for both the health of Ethereum's network of nodes and its network of people. + +## Current client diversity {#current-client-diversity} + +![Pie chart showing client diversity](./client-diversity.png) +_Diagram data from [ethernodes.org](https://ethernodes.org) and [clientdiversity.org](https://clientdiversity.org/)_ + +The two pie charts above show snapshots of the current client diversity for the execution and consensus layers (at time of writing in January 2022). The execution layer is overwhelmingly dominated by [Geth](https://geth.ethereum.org/), with [Open Ethereum](https://openethereum.github.io/) a distant second, [Erigon](https://github.com/ledgerwatch/erigon) third and [Nethermind](https://nethermind.io/) fourth, with other clients comprising less than 1 % of the network. The most commonly used client on the consensus layer - [Prysm](https://prysmaticlabs.com/#projects) - is not as dominant as Geth but still represents over 60% of the network. [Lighthouse](https://lighthouse.sigmaprime.io/) and [Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) make up ~20% and ~14% respectively, and other clients are rarely used. + +The execution layer data were obtained from [Ethernodes](https://ethernodes.org) on 23/01/2022. Data for consensus clients was obtained from [Michael Sproul](https://github.com/sigp/blockprint). Consensus client data is more difficult to obtain because the consensus layer clients do not always have unambiguous traces that can be used to identify them. The data was generated using a classification algorithm that sometimes confuses some of the minority clients (see [here](https://twitter.com/sproulM_/status/1440512518242197516) for more details). In the diagram above, these ambiguous classifications are treated with an either/or label (e.g. Nimbus/Teku). Nevertheless, it is clear that the majority of the network is running Prysm. The data is a snapshot over a fixed set of blocks (in this case Beacon blocks in slots 2048001 to 2164916) and Prysm's dominance has sometimes been higher, exceeding 68%. Despite only being snapshots, the values in the diagram provide a good general sense of the current state of client diversity. + +Up to date client diversity data for the consensus layer is now available at [clientdiversity.org](https://clientdiversity.org/). + +## Execution layer {#execution-layer} + +Until now, the conversation around client diversity has focused mainly on the consensus layer. However, the execution client [Geth](https://geth.ethereum.org) currently accounts for around 85% of all nodes. This percentage is problematic for the same reasons as for consensus clients. For example, a bug in Geth affecting transaction handling or constructing execution payloads could lead to consensus clients finalizing problematic or bugged transactions. Therefore, Ethereum would be healthier with a more even distribution of execution clients, ideally with no client representing more than 33% of the network. + +## Use a minority client {#use-minority-client} + +Addressing client diversity requires more than individual users to choose minority clients - it requires mining/validator pools and institutions like the major dapps and exchanges to switch clients too. However, all users can do their part in redressing the current imbalance and normalizing the use of all the available Ethereum software. After The Merge, all node operators will be required to run an execution client and a consensus client. Choosing combinations of the clients suggested below will help increase client diversity. + +### Execution clients {#execution-clients} + +[Besu](https://www.hyperledger.org/use/besu) + +[Nethermind](https://downloads.nethermind.io/) + +[Erigon](https://github.com/ledgerwatch/erigon) + +[Go-Ethereum](https://geth.ethereum.org/) + +### Consensus clients {#consensus-clients} + +[Nimbus](https://nimbus.team/) + +[Lighthouse](https://github.com/sigp/lighthouse) + +[Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) + +[Lodestar](https://github.com/ChainSafe/lodestar) + +[Prysm](https://docs.prylabs.network/docs/getting-started) + +Technical users can help accelerate this process by writing more tutorials and documentation for minority clients and encouraging their node-operating peers to migrate away from the dominant clients. Guides for switching to a minority consensus client are available on [clientdiversity.org](https://clientdiversity.org/). + +## Client diversity dashboards {#client-diversity-dashboards} + +Several dashboards give real-time client diversity statistics for the execution and consensus layer. + +**Consensus layer:** + +- [Rated.network](https://www.rated.network/) +- [clientdiversity.org](https://clientdiversity.org/) + **Execution layer:** + +- [execution-diversity.info](https://execution-diversity.info/) +- [Ethernodes](https://ethernodes.org/) + +## Further reading {#further-reading} + +- [Client diversity on Ethereum's consensus layer](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) +- [Ethereum Merge: Run the majority client at your own peril!](https://dankradfeist.de/ethereum/2022/03/24/run-the-majority-client-at-your-own-peril.html) – _Dankrad Fiest, March 24 2022_ +- [Importance of client diversity](https://our.status.im/the-importance-of-client-diversity/) +- [List of Ethereum node services](https://ethereumnodes.com/) +- ["Five Whys" of the client diversity problem](https://notes.ethereum.org/@afhGjrKfTKmksTOtqhB9RQ/BJGj7uh08) +- [Ethereum Diversity and How to Solve For It (YouTube)](https://www.youtube.com/watch?v=1hZgCaiqwfU) +- [clientdiversity.org](https://clientdiversity.org/) + +## Related topics {#related-topics} + +- [Run an Ethereum node](/run-a-node/) +- [Nodes and clients](/developers/docs/nodes-and-clients/) diff --git a/src/content/developers/docs/nodes-and-clients/eth1eth2client.png b/public/content/developers/docs/nodes-and-clients/eth1eth2client.png similarity index 100% rename from src/content/developers/docs/nodes-and-clients/eth1eth2client.png rename to public/content/developers/docs/nodes-and-clients/eth1eth2client.png diff --git a/src/content/developers/docs/nodes-and-clients/index.md b/public/content/developers/docs/nodes-and-clients/index.md similarity index 100% rename from src/content/developers/docs/nodes-and-clients/index.md rename to public/content/developers/docs/nodes-and-clients/index.md diff --git a/src/content/developers/docs/nodes-and-clients/light-clients/index.md b/public/content/developers/docs/nodes-and-clients/light-clients/index.md similarity index 100% rename from src/content/developers/docs/nodes-and-clients/light-clients/index.md rename to public/content/developers/docs/nodes-and-clients/light-clients/index.md diff --git a/src/content/developers/docs/nodes-and-clients/node-architecture/index.md b/public/content/developers/docs/nodes-and-clients/node-architecture/index.md similarity index 100% rename from src/content/developers/docs/nodes-and-clients/node-architecture/index.md rename to public/content/developers/docs/nodes-and-clients/node-architecture/index.md diff --git a/src/content/developers/docs/nodes-and-clients/node-architecture/node-architecture-text-background.png b/public/content/developers/docs/nodes-and-clients/node-architecture/node-architecture-text-background.png similarity index 100% rename from src/content/developers/docs/nodes-and-clients/node-architecture/node-architecture-text-background.png rename to public/content/developers/docs/nodes-and-clients/node-architecture/node-architecture-text-background.png diff --git a/src/content/developers/docs/nodes-and-clients/node-architecture/node_architecture.png b/public/content/developers/docs/nodes-and-clients/node-architecture/node_architecture.png similarity index 100% rename from src/content/developers/docs/nodes-and-clients/node-architecture/node_architecture.png rename to public/content/developers/docs/nodes-and-clients/node-architecture/node_architecture.png diff --git a/src/content/developers/docs/nodes-and-clients/nodes-as-a-service/index.md b/public/content/developers/docs/nodes-and-clients/nodes-as-a-service/index.md similarity index 100% rename from src/content/developers/docs/nodes-and-clients/nodes-as-a-service/index.md rename to public/content/developers/docs/nodes-and-clients/nodes-as-a-service/index.md diff --git a/src/content/developers/docs/nodes-and-clients/nodes.png b/public/content/developers/docs/nodes-and-clients/nodes.png similarity index 100% rename from src/content/developers/docs/nodes-and-clients/nodes.png rename to public/content/developers/docs/nodes-and-clients/nodes.png diff --git a/src/content/developers/docs/nodes-and-clients/run-a-node/diagram.png b/public/content/developers/docs/nodes-and-clients/run-a-node/diagram.png similarity index 100% rename from src/content/developers/docs/nodes-and-clients/run-a-node/diagram.png rename to public/content/developers/docs/nodes-and-clients/run-a-node/diagram.png diff --git a/src/content/developers/docs/nodes-and-clients/run-a-node/index.md b/public/content/developers/docs/nodes-and-clients/run-a-node/index.md similarity index 100% rename from src/content/developers/docs/nodes-and-clients/run-a-node/index.md rename to public/content/developers/docs/nodes-and-clients/run-a-node/index.md diff --git a/src/content/developers/docs/oracles/index.md b/public/content/developers/docs/oracles/index.md similarity index 100% rename from src/content/developers/docs/oracles/index.md rename to public/content/developers/docs/oracles/index.md diff --git a/src/content/developers/docs/programming-languages/dart/index.md b/public/content/developers/docs/programming-languages/dart/index.md similarity index 100% rename from src/content/developers/docs/programming-languages/dart/index.md rename to public/content/developers/docs/programming-languages/dart/index.md diff --git a/src/content/developers/docs/programming-languages/delphi/index.md b/public/content/developers/docs/programming-languages/delphi/index.md similarity index 100% rename from src/content/developers/docs/programming-languages/delphi/index.md rename to public/content/developers/docs/programming-languages/delphi/index.md diff --git a/src/content/developers/docs/programming-languages/dot-net/index.md b/public/content/developers/docs/programming-languages/dot-net/index.md similarity index 100% rename from src/content/developers/docs/programming-languages/dot-net/index.md rename to public/content/developers/docs/programming-languages/dot-net/index.md diff --git a/src/content/developers/docs/programming-languages/golang/index.md b/public/content/developers/docs/programming-languages/golang/index.md similarity index 100% rename from src/content/developers/docs/programming-languages/golang/index.md rename to public/content/developers/docs/programming-languages/golang/index.md diff --git a/src/content/developers/docs/programming-languages/index.md b/public/content/developers/docs/programming-languages/index.md similarity index 100% rename from src/content/developers/docs/programming-languages/index.md rename to public/content/developers/docs/programming-languages/index.md diff --git a/src/content/developers/docs/programming-languages/java/index.md b/public/content/developers/docs/programming-languages/java/index.md similarity index 100% rename from src/content/developers/docs/programming-languages/java/index.md rename to public/content/developers/docs/programming-languages/java/index.md diff --git a/src/content/developers/docs/programming-languages/javascript/index.md b/public/content/developers/docs/programming-languages/javascript/index.md similarity index 100% rename from src/content/developers/docs/programming-languages/javascript/index.md rename to public/content/developers/docs/programming-languages/javascript/index.md diff --git a/src/content/developers/docs/programming-languages/python/index.md b/public/content/developers/docs/programming-languages/python/index.md similarity index 100% rename from src/content/developers/docs/programming-languages/python/index.md rename to public/content/developers/docs/programming-languages/python/index.md diff --git a/src/content/developers/docs/programming-languages/ruby/index.md b/public/content/developers/docs/programming-languages/ruby/index.md similarity index 100% rename from src/content/developers/docs/programming-languages/ruby/index.md rename to public/content/developers/docs/programming-languages/ruby/index.md diff --git a/src/content/developers/docs/programming-languages/rust/index.md b/public/content/developers/docs/programming-languages/rust/index.md similarity index 100% rename from src/content/developers/docs/programming-languages/rust/index.md rename to public/content/developers/docs/programming-languages/rust/index.md diff --git a/src/content/developers/docs/scaling/index.md b/public/content/developers/docs/scaling/index.md similarity index 100% rename from src/content/developers/docs/scaling/index.md rename to public/content/developers/docs/scaling/index.md diff --git a/src/content/developers/docs/scaling/optimistic-rollups/index.md b/public/content/developers/docs/scaling/optimistic-rollups/index.md similarity index 100% rename from src/content/developers/docs/scaling/optimistic-rollups/index.md rename to public/content/developers/docs/scaling/optimistic-rollups/index.md diff --git a/src/content/developers/docs/scaling/optimistic-rollups/optimistic-rollups.png b/public/content/developers/docs/scaling/optimistic-rollups/optimistic-rollups.png similarity index 100% rename from src/content/developers/docs/scaling/optimistic-rollups/optimistic-rollups.png rename to public/content/developers/docs/scaling/optimistic-rollups/optimistic-rollups.png diff --git a/src/content/developers/docs/scaling/plasma/index.md b/public/content/developers/docs/scaling/plasma/index.md similarity index 100% rename from src/content/developers/docs/scaling/plasma/index.md rename to public/content/developers/docs/scaling/plasma/index.md diff --git a/src/content/developers/docs/scaling/sidechains/index.md b/public/content/developers/docs/scaling/sidechains/index.md similarity index 100% rename from src/content/developers/docs/scaling/sidechains/index.md rename to public/content/developers/docs/scaling/sidechains/index.md diff --git a/src/content/developers/docs/scaling/state-channels/index.md b/public/content/developers/docs/scaling/state-channels/index.md similarity index 100% rename from src/content/developers/docs/scaling/state-channels/index.md rename to public/content/developers/docs/scaling/state-channels/index.md diff --git a/src/content/developers/docs/scaling/validium/index.md b/public/content/developers/docs/scaling/validium/index.md similarity index 100% rename from src/content/developers/docs/scaling/validium/index.md rename to public/content/developers/docs/scaling/validium/index.md diff --git a/src/content/developers/docs/scaling/zk-rollups/index.md b/public/content/developers/docs/scaling/zk-rollups/index.md similarity index 100% rename from src/content/developers/docs/scaling/zk-rollups/index.md rename to public/content/developers/docs/scaling/zk-rollups/index.md diff --git a/public/content/developers/docs/smart-contracts/anatomy/index.md b/public/content/developers/docs/smart-contracts/anatomy/index.md new file mode 100644 index 00000000000..2f1a362771d --- /dev/null +++ b/public/content/developers/docs/smart-contracts/anatomy/index.md @@ -0,0 +1,658 @@ +--- +title: Anatomy of smart contracts +description: An in-depth look into the anatomy of a smart contact – the functions, data, and variables. +lang: en +--- + +A smart contract is a program that runs at an address on Ethereum. They're made up of data and functions that can execute upon receiving a transaction. Here's an overview of what makes up a smart contract. + +## Prerequisites {#prerequisites} + +Make sure you've read about [smart contracts](/developers/docs/smart-contracts/) first. This document assumes you're already familiar with programming languages such as JavaScript or Python. + +## Data {#data} + +Any contract data must be assigned to a location: either to `storage` or `memory`. It's costly to modify storage in a smart contract so you need to consider where your data should live. + +### Storage {#storage} + +Persistent data is referred to as storage and is represented by state variables. These values get stored permanently on the blockchain. You need to declare the type so that the contract can keep track of how much storage on the blockchain it needs when it compiles. + +```solidity +// Solidity example +contract SimpleStorage { + uint storedData; // State variable + // ... +} +``` + +```python +# Vyper example +storedData: int128 +``` + +If you've already programmed object-oriented languages, you'll likely be familiar with most types. However `address` should be new to you if you're new to Ethereum development. + +An `address` type can hold an Ethereum address which equates to 20 bytes or 160 bits. It returns in hexadecimal notation with a leading 0x. + +Other types include: + +- boolean +- integer +- fixed point numbers +- fixed-size byte arrays +- dynamically-sized byte arrays +- Rational and integer literals +- String literals +- Hexadecimal literals +- Enums + +For more explanation, take a look at the docs: + +- [See Vyper types](https://vyper.readthedocs.io/en/v0.1.0-beta.6/types.html#value-types) +- [See Solidity types](https://solidity.readthedocs.io/en/latest/types.html#value-types) + +### Memory {#memory} + +Values that are only stored for the lifetime of a contract function's execution are called memory variables. Since these are not stored permanently on the blockchain, they are much cheaper to use. + +Learn more about how the EVM stores data (Storage, Memory, and the Stack) in the [Solidity docs](https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html?highlight=memory#storage-memory-and-the-stack). + +### Environment variables {#environment-variables} + +In addition to the variables you define on your contract, there are some special global variables. They are primarily used to provide information about the blockchain or current transaction. + +Examples: + +| **Prop** | **State variable** | **Description** | +| ----------------- | ------------------ | ------------------------------------ | +| `block.timestamp` | uint256 | Current block epoch timestamp | +| `msg.sender` | address | Sender of the message (current call) | + +## Functions {#functions} + +In the most simplistic terms, functions can get information or set information in response to incoming transactions. + +There are two types of function calls: + +- `internal` – these don't create an EVM call + - Internal functions and state variables can only be accessed internally (i.e. from within the current contract or contracts deriving from it) +- `external` – these do create an EVM call + - External functions are part of the contract interface, which means they can be called from other contracts and via transactions. An external function `f` cannot be called internally (i.e. `f()` does not work, but `this.f()` works). + +They can also be `public` or `private` + +- `public` functions can be called internally from within the contract or externally via messages +- `private` functions are only visible for the contract they are defined in and not in derived contracts + +Both functions and state variables can be made public or private + +Here's a function for updating a state variable on a contract: + +```solidity +// Solidity example +function update_name(string value) public { + dapp_name = value; +} +``` + +- The parameter `value` of type `string` is passed into the function: `update_name` +- It's declared `public`, meaning anyone can access it +- It's not declared `view`, so it can modify the contract state + +### View functions {#view-functions} + +These functions promise not to modify the state of the contract's data. Common examples are "getter" functions – you might use this to receive a user's balance for example. + +```solidity +// Solidity example +function balanceOf(address _owner) public view returns (uint256 _balance) { + return ownerPizzaCount[_owner]; +} +``` + +```python +dappName: public(string) + +@view +@public +def readName() -> string: + return dappName +``` + +What is considered modifying state: + +1. Writing to state variables. +2. [Emitting events](https://solidity.readthedocs.io/en/v0.7.0/contracts.html#events). +3. [Creating other contracts](https://solidity.readthedocs.io/en/v0.7.0/control-structures.html#creating-contracts). +4. Using `selfdestruct`. +5. Sending ether via calls. +6. Calling any function not marked `view` or `pure`. +7. Using low-level calls. +8. Using inline assembly that contains certain opcodes. + +### Constructor functions {#constructor-functions} + +`constructor` functions are only executed once when the contract is first deployed. Like `constructor` in many class-based programming languages, these functions often initialize state variables to their specified values. + +```solidity +// Solidity example +// Initializes the contract's data, setting the `owner` +// to the address of the contract creator. +constructor() public { + // All smart contracts rely on external transactions to trigger its functions. + // `msg` is a global variable that includes relevant data on the given transaction, + // such as the address of the sender and the ETH value included in the transaction. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties + owner = msg.sender; +} +``` + +```python +# Vyper example + +@external +def __init__(_beneficiary: address, _bidding_time: uint256): + self.beneficiary = _beneficiary + self.auctionStart = block.timestamp + self.auctionEnd = self.auctionStart + _bidding_time +``` + +### Built-in functions {#built-in-functions} + +In addition to the variables and functions you define on your contract, there are some special built-in functions. The most obvious example is: + +- `address.send()` – Solidity +- `send(address)` – Vyper + +These allow contracts to send ETH to other accounts. + +## Writing functions {#writing-functions} + +Your function needs: + +- parameter variable and type (if it accepts parameters) +- declaration of internal/external +- declaration of pure/view/payable +- returns type (if it returns a value) + +```solidity +pragma solidity >=0.4.0 <=0.6.0; + +contract ExampleDapp { + string dapp_name; // state variable + + // Called when the contract is deployed and initializes the value + constructor() public { + dapp_name = "My Example dapp"; + } + + // Get Function + function read_name() public view returns(string) { + return dapp_name; + } + + // Set Function + function update_name(string value) public { + dapp_name = value; + } +} +``` + +A complete contract might look something like this. Here the `constructor` function provides an initial value for the `dapp_name` variable. + +## Events and logs {#events-and-logs} + +Events let you communicate with your smart contract from your frontend or other subscribing applications. When a transaction is mined, smart contracts can emit events and write logs to the blockchain that the frontend can then process. + +## Annotated examples {#annotated-examples} + +These are some examples written in Solidity. If you'd like to play with the code, you can interact with them in [Remix](http://remix.ethereum.org). + +### Hello world {#hello-world} + +```solidity +// Specifies the version of Solidity, using semantic versioning. +// Learn more: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma +pragma solidity ^0.5.10; + +// Defines a contract named `HelloWorld`. +// A contract is a collection of functions and data (its state). +// Once deployed, a contract resides at a specific address on the Ethereum blockchain. +// Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html +contract HelloWorld { + + // Declares a state variable `message` of type `string`. + // State variables are variables whose values are permanently stored in contract storage. + // The keyword `public` makes variables accessible from outside a contract + // and creates a function that other contracts or clients can call to access the value. + string public message; + + // Similar to many class-based object-oriented languages, a constructor is + // a special function that is only executed upon contract creation. + // Constructors are used to initialize the contract's data. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constructors + constructor(string memory initMessage) public { + // Accepts a string argument `initMessage` and sets the value + // into the contract's `message` storage variable). + message = initMessage; + } + + // A public function that accepts a string argument + // and updates the `message` storage variable. + function update(string memory newMessage) public { + message = newMessage; + } +} +``` + +### Token {#token} + +```solidity +pragma solidity ^0.5.10; + +contract Token { + // An `address` is comparable to an email address - it's used to identify an account on Ethereum. + // Addresses can represent a smart contract or an external (user) accounts. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#address + address public owner; + + // A `mapping` is essentially a hash table data structure. + // This `mapping` assigns an unsigned integer (the token balance) to an address (the token holder). + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#mapping-types + mapping (address => uint) public balances; + + // Events allow for logging of activity on the blockchain. + // Ethereum clients can listen for events in order to react to contract state changes. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#events + event Transfer(address from, address to, uint amount); + + // Initializes the contract's data, setting the `owner` + // to the address of the contract creator. + constructor() public { + // All smart contracts rely on external transactions to trigger its functions. + // `msg` is a global variable that includes relevant data on the given transaction, + // such as the address of the sender and the ETH value included in the transaction. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties + owner = msg.sender; + } + + // Creates an amount of new tokens and sends them to an address. + function mint(address receiver, uint amount) public { + // `require` is a control structure used to enforce certain conditions. + // If a `require` statement evaluates to `false`, an exception is triggered, + // which reverts all changes made to the state during the current call. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions + + // Only the contract owner can call this function + require(msg.sender == owner, "You are not the owner."); + + // Enforces a maximum amount of tokens + require(amount < 1e60, "Maximum issuance exceeded"); + + // Increases the balance of `receiver` by `amount` + balances[receiver] += amount; + } + + // Sends an amount of existing tokens from any caller to an address. + function transfer(address receiver, uint amount) public { + // The sender must have enough tokens to send + require(amount <= balances[msg.sender], "Insufficient balance."); + + // Adjusts token balances of the two addresses + balances[msg.sender] -= amount; + balances[receiver] += amount; + + // Emits the event defined earlier + emit Transfer(msg.sender, receiver, amount); + } +} +``` + +### Unique digital asset {#unique-digital-asset} + +```solidity +pragma solidity ^0.5.10; + +// Imports symbols from other files into the current contract. +// In this case, a series of helper contracts from OpenZeppelin. +// Learn more: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#importing-other-source-files + +import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; +import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; +import "../node_modules/@openzeppelin/contracts/introspection/ERC165.sol"; +import "../node_modules/@openzeppelin/contracts/math/SafeMath.sol"; + +// The `is` keyword is used to inherit functions and keywords from external contracts. +// In this case, `CryptoPizza` inherits from the `IERC721` and `ERC165` contracts. +// Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#inheritance +contract CryptoPizza is IERC721, ERC165 { + // Uses OpenZeppelin's SafeMath library to perform arithmetic operations safely. + // Learn more: https://docs.openzeppelin.com/contracts/2.x/api/math#SafeMath + using SafeMath for uint256; + + // Constant state variables in Solidity are similar to other languages + // but you must assign from an expression which is constant at compile time. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constant-state-variables + uint256 constant dnaDigits = 10; + uint256 constant dnaModulus = 10 ** dnaDigits; + bytes4 private constant _ERC721_RECEIVED = 0x150b7a02; + + // Struct types let you define your own type + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#structs + struct Pizza { + string name; + uint256 dna; + } + + // Creates an empty array of Pizza structs + Pizza[] public pizzas; + + // Mapping from pizza ID to its owner's address + mapping(uint256 => address) public pizzaToOwner; + + // Mapping from owner's address to number of owned token + mapping(address => uint256) public ownerPizzaCount; + + // Mapping from token ID to approved address + mapping(uint256 => address) pizzaApprovals; + + // You can nest mappings, this example maps owner to operator approvals + mapping(address => mapping(address => bool)) private operatorApprovals; + + // Internal function to create a random Pizza from string (name) and DNA + function _createPizza(string memory _name, uint256 _dna) + // The `internal` keyword means this function is only visible + // within this contract and contracts that derive this contract + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#visibility-and-getters + internal + // `isUnique` is a function modifier that checks if the pizza already exists + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html#function-modifiers + isUnique(_name, _dna) + { + // Adds Pizza to array of Pizzas and get id + uint256 id = SafeMath.sub(pizzas.push(Pizza(_name, _dna)), 1); + + // Checks that Pizza owner is the same as current user + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions + + // note that address(0) is the zero address, + // indicating that pizza[id] is not yet allocated to a particular user. + + assert(pizzaToOwner[id] == address(0)); + + // Maps the Pizza to the owner + pizzaToOwner[id] = msg.sender; + ownerPizzaCount[msg.sender] = SafeMath.add( + ownerPizzaCount[msg.sender], + 1 + ); + } + + // Creates a random Pizza from string (name) + function createRandomPizza(string memory _name) public { + uint256 randDna = generateRandomDna(_name, msg.sender); + _createPizza(_name, randDna); + } + + // Generates random DNA from string (name) and address of the owner (creator) + function generateRandomDna(string memory _str, address _owner) + public + // Functions marked as `pure` promise not to read from or modify the state + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#pure-functions + pure + returns (uint256) + { + // Generates random uint from string (name) + address (owner) + uint256 rand = uint256(keccak256(abi.encodePacked(_str))) + + uint256(_owner); + rand = rand % dnaModulus; + return rand; + } + + // Returns array of Pizzas found by owner + function getPizzasByOwner(address _owner) + public + // Functions marked as `view` promise not to modify state + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#view-functions + view + returns (uint256[] memory) + { + // Uses the `memory` storage location to store values only for the + // lifecycle of this function call. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/introduction-to-smart-contracts.html#storage-memory-and-the-stack + uint256[] memory result = new uint256[](ownerPizzaCount[_owner]); + uint256 counter = 0; + for (uint256 i = 0; i < pizzas.length; i++) { + if (pizzaToOwner[i] == _owner) { + result[counter] = i; + counter++; + } + } + return result; + } + + // Transfers Pizza and ownership to other address + function transferFrom(address _from, address _to, uint256 _pizzaId) public { + require(_from != address(0) && _to != address(0), "Invalid address."); + require(_exists(_pizzaId), "Pizza does not exist."); + require(_from != _to, "Cannot transfer to the same address."); + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + + ownerPizzaCount[_to] = SafeMath.add(ownerPizzaCount[_to], 1); + ownerPizzaCount[_from] = SafeMath.sub(ownerPizzaCount[_from], 1); + pizzaToOwner[_pizzaId] = _to; + + // Emits event defined in the imported IERC721 contract + emit Transfer(_from, _to, _pizzaId); + _clearApproval(_to, _pizzaId); + } + + /** + * Safely transfers the ownership of a given token ID to another address + * If the target address is a contract, it must implement `onERC721Received`, + * which is called upon a safe transfer, and return the magic value + * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; + * otherwise, the transfer is reverted. + */ + function safeTransferFrom(address from, address to, uint256 pizzaId) + public + { + // solium-disable-next-line arg-overflow + this.safeTransferFrom(from, to, pizzaId, ""); + } + + /** + * Safely transfers the ownership of a given token ID to another address + * If the target address is a contract, it must implement `onERC721Received`, + * which is called upon a safe transfer, and return the magic value + * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; + * otherwise, the transfer is reverted. + */ + function safeTransferFrom( + address from, + address to, + uint256 pizzaId, + bytes memory _data + ) public { + this.transferFrom(from, to, pizzaId); + require(_checkOnERC721Received(from, to, pizzaId, _data), "Must implement onERC721Received."); + } + + /** + * Internal function to invoke `onERC721Received` on a target address + * The call is not executed if the target address is not a contract + */ + function _checkOnERC721Received( + address from, + address to, + uint256 pizzaId, + bytes memory _data + ) internal returns (bool) { + if (!isContract(to)) { + return true; + } + + bytes4 retval = IERC721Receiver(to).onERC721Received( + msg.sender, + from, + pizzaId, + _data + ); + return (retval == _ERC721_RECEIVED); + } + + // Burns a Pizza - destroys Token completely + // The `external` function modifier means this function is + // part of the contract interface and other contracts can call it + function burn(uint256 _pizzaId) external { + require(msg.sender != address(0), "Invalid address."); + require(_exists(_pizzaId), "Pizza does not exist."); + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + + ownerPizzaCount[msg.sender] = SafeMath.sub( + ownerPizzaCount[msg.sender], + 1 + ); + pizzaToOwner[_pizzaId] = address(0); + } + + // Returns count of Pizzas by address + function balanceOf(address _owner) public view returns (uint256 _balance) { + return ownerPizzaCount[_owner]; + } + + // Returns owner of the Pizza found by id + function ownerOf(uint256 _pizzaId) public view returns (address _owner) { + address owner = pizzaToOwner[_pizzaId]; + require(owner != address(0), "Invalid Pizza ID."); + return owner; + } + + // Approves other address to transfer ownership of Pizza + function approve(address _to, uint256 _pizzaId) public { + require(msg.sender == pizzaToOwner[_pizzaId], "Must be the Pizza owner."); + pizzaApprovals[_pizzaId] = _to; + emit Approval(msg.sender, _to, _pizzaId); + } + + // Returns approved address for specific Pizza + function getApproved(uint256 _pizzaId) + public + view + returns (address operator) + { + require(_exists(_pizzaId), "Pizza does not exist."); + return pizzaApprovals[_pizzaId]; + } + + /** + * Private function to clear current approval of a given token ID + * Reverts if the given address is not indeed the owner of the token + */ + function _clearApproval(address owner, uint256 _pizzaId) private { + require(pizzaToOwner[_pizzaId] == owner, "Must be pizza owner."); + require(_exists(_pizzaId), "Pizza does not exist."); + if (pizzaApprovals[_pizzaId] != address(0)) { + pizzaApprovals[_pizzaId] = address(0); + } + } + + /* + * Sets or unsets the approval of a given operator + * An operator is allowed to transfer all tokens of the sender on their behalf + */ + function setApprovalForAll(address to, bool approved) public { + require(to != msg.sender, "Cannot approve own address"); + operatorApprovals[msg.sender][to] = approved; + emit ApprovalForAll(msg.sender, to, approved); + } + + // Tells whether an operator is approved by a given owner + function isApprovedForAll(address owner, address operator) + public + view + returns (bool) + { + return operatorApprovals[owner][operator]; + } + + // Takes ownership of Pizza - only for approved users + function takeOwnership(uint256 _pizzaId) public { + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + address owner = this.ownerOf(_pizzaId); + this.transferFrom(owner, msg.sender, _pizzaId); + } + + // Checks if Pizza exists + function _exists(uint256 pizzaId) internal view returns (bool) { + address owner = pizzaToOwner[pizzaId]; + return owner != address(0); + } + + // Checks if address is owner or is approved to transfer Pizza + function _isApprovedOrOwner(address spender, uint256 pizzaId) + internal + view + returns (bool) + { + address owner = pizzaToOwner[pizzaId]; + // Disable solium check because of + // https://github.com/duaraghav8/Solium/issues/175 + // solium-disable-next-line operator-whitespace + return (spender == owner || + this.getApproved(pizzaId) == spender || + this.isApprovedForAll(owner, spender)); + } + + // Check if Pizza is unique and doesn't exist yet + modifier isUnique(string memory _name, uint256 _dna) { + bool result = true; + for (uint256 i = 0; i < pizzas.length; i++) { + if ( + keccak256(abi.encodePacked(pizzas[i].name)) == + keccak256(abi.encodePacked(_name)) && + pizzas[i].dna == _dna + ) { + result = false; + } + } + require(result, "Pizza with such name already exists."); + _; + } + + // Returns whether the target address is a contract + function isContract(address account) internal view returns (bool) { + uint256 size; + // Currently there is no better way to check if there is a contract in an address + // than to check the size of the code at that address. + // See https://ethereum.stackexchange.com/a/14016/36603 + // for more details about how this works. + // TODO Check this again before the Serenity release, because all addresses will be + // contracts then. + // solium-disable-next-line security/no-inline-assembly + assembly { + size := extcodesize(account) + } + return size > 0; + } +} +``` + +## Further reading {#further-reading} + +Check out Solidity and Vyper's documentation for a more complete overview of smart contracts: + +- [Solidity](https://solidity.readthedocs.io/) +- [Vyper](https://vyper.readthedocs.io/) + +## Related topics {#related-topics} + +- [Smart contracts](/developers/docs/smart-contracts/) +- [Ethereum Virtual Machine](/developers/docs/evm/) + +## Related tutorials {#related-tutorials} + +- [Downsizing contracts to fight the contract size limit](/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/) _– Some practical tips for reducing the size of your smart contract._ +- [Logging data from smart contracts with events](/developers/tutorials/logging-events-smart-contracts/) _– An introduction to smart contract events and how you can use them to log data._ +- [Interact with other contracts from Solidity](/developers/tutorials/interact-with-other-contracts-from-solidity/) _– How to deploy a smart contract from an existing contract and interact with it._ diff --git a/src/content/developers/docs/smart-contracts/compiling/index.md b/public/content/developers/docs/smart-contracts/compiling/index.md similarity index 100% rename from src/content/developers/docs/smart-contracts/compiling/index.md rename to public/content/developers/docs/smart-contracts/compiling/index.md diff --git a/src/content/developers/docs/smart-contracts/composability/index.md b/public/content/developers/docs/smart-contracts/composability/index.md similarity index 100% rename from src/content/developers/docs/smart-contracts/composability/index.md rename to public/content/developers/docs/smart-contracts/composability/index.md diff --git a/src/content/developers/docs/smart-contracts/deploying/index.md b/public/content/developers/docs/smart-contracts/deploying/index.md similarity index 100% rename from src/content/developers/docs/smart-contracts/deploying/index.md rename to public/content/developers/docs/smart-contracts/deploying/index.md diff --git a/src/content/developers/docs/smart-contracts/formal-verification/index.md b/public/content/developers/docs/smart-contracts/formal-verification/index.md similarity index 100% rename from src/content/developers/docs/smart-contracts/formal-verification/index.md rename to public/content/developers/docs/smart-contracts/formal-verification/index.md diff --git a/src/content/developers/docs/smart-contracts/index.md b/public/content/developers/docs/smart-contracts/index.md similarity index 100% rename from src/content/developers/docs/smart-contracts/index.md rename to public/content/developers/docs/smart-contracts/index.md diff --git a/src/content/developers/docs/smart-contracts/languages/index.md b/public/content/developers/docs/smart-contracts/languages/index.md similarity index 100% rename from src/content/developers/docs/smart-contracts/languages/index.md rename to public/content/developers/docs/smart-contracts/languages/index.md diff --git a/src/content/developers/docs/smart-contracts/libraries/index.md b/public/content/developers/docs/smart-contracts/libraries/index.md similarity index 100% rename from src/content/developers/docs/smart-contracts/libraries/index.md rename to public/content/developers/docs/smart-contracts/libraries/index.md diff --git a/src/content/developers/docs/smart-contracts/security/index.md b/public/content/developers/docs/smart-contracts/security/index.md similarity index 100% rename from src/content/developers/docs/smart-contracts/security/index.md rename to public/content/developers/docs/smart-contracts/security/index.md diff --git a/src/content/developers/docs/smart-contracts/testing/index.md b/public/content/developers/docs/smart-contracts/testing/index.md similarity index 100% rename from src/content/developers/docs/smart-contracts/testing/index.md rename to public/content/developers/docs/smart-contracts/testing/index.md diff --git a/src/content/developers/docs/smart-contracts/upgrading/index.md b/public/content/developers/docs/smart-contracts/upgrading/index.md similarity index 100% rename from src/content/developers/docs/smart-contracts/upgrading/index.md rename to public/content/developers/docs/smart-contracts/upgrading/index.md diff --git a/src/content/developers/docs/smart-contracts/verifying/index.md b/public/content/developers/docs/smart-contracts/verifying/index.md similarity index 100% rename from src/content/developers/docs/smart-contracts/verifying/index.md rename to public/content/developers/docs/smart-contracts/verifying/index.md diff --git a/src/content/developers/docs/smart-contracts/verifying/source-code-verification.png b/public/content/developers/docs/smart-contracts/verifying/source-code-verification.png similarity index 100% rename from src/content/developers/docs/smart-contracts/verifying/source-code-verification.png rename to public/content/developers/docs/smart-contracts/verifying/source-code-verification.png diff --git a/src/content/developers/docs/standards/index.md b/public/content/developers/docs/standards/index.md similarity index 100% rename from src/content/developers/docs/standards/index.md rename to public/content/developers/docs/standards/index.md diff --git a/src/content/developers/docs/standards/tokens/erc-1155/index.md b/public/content/developers/docs/standards/tokens/erc-1155/index.md similarity index 100% rename from src/content/developers/docs/standards/tokens/erc-1155/index.md rename to public/content/developers/docs/standards/tokens/erc-1155/index.md diff --git a/public/content/developers/docs/standards/tokens/erc-20/index.md b/public/content/developers/docs/standards/tokens/erc-20/index.md new file mode 100644 index 00000000000..7e66e6fc83b --- /dev/null +++ b/public/content/developers/docs/standards/tokens/erc-20/index.md @@ -0,0 +1,156 @@ +--- +title: ERC-20 Token Standard +description: +lang: en +--- + +## Introduction {#introduction} + +**What is a Token?** + +Tokens can represent virtually anything in Ethereum: + +- reputation points in an online platform +- skills of a character in a game +- lottery tickets +- financial assets like a share in a company +- a fiat currency like USD +- an ounce of gold +- and more... + +Such a powerful feature of Ethereum must be handled by a robust standard, right? That's exactly +where the ERC-20 plays its role! This standard allows developers to build token applications that are interoperable with other products and services. + +**What is ERC-20?** + +The ERC-20 introduces a standard for Fungible Tokens, in other words, they have a property that makes each Token be exactly +the same (in type and value) as another Token. For example, an ERC-20 Token acts just like the ETH, meaning that 1 Token +is and will always be equal to all the other Tokens. + +## Prerequisites {#prerequisites} + +- [Accounts](/developers/docs/accounts) +- [Smart Contracts](/developers/docs/smart-contracts/) +- [Token standards](/developers/docs/standards/tokens/) + +## Body {#body} + +The ERC-20 (Ethereum Request for Comments 20), proposed by Fabian Vogelsteller in November 2015, is a Token Standard that +implements an API for tokens within Smart Contracts. + +Example functionalities ERC-20 provides: + +- transfer tokens from one account to another +- get the current token balance of an account +- get the total supply of the token available on the network +- approve whether an amount of token from an account can be spent by a third-party account + +If a Smart Contract implements the following methods and events it can be called an ERC-20 Token Contract and, once deployed, it +will be responsible to keep track of the created tokens on Ethereum. + +From [EIP-20](https://eips.ethereum.org/EIPS/eip-20): + +### Methods {#methods} + +```solidity +function name() public view returns (string) +function symbol() public view returns (string) +function decimals() public view returns (uint8) +function totalSupply() public view returns (uint256) +function balanceOf(address _owner) public view returns (uint256 balance) +function transfer(address _to, uint256 _value) public returns (bool success) +function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) +function approve(address _spender, uint256 _value) public returns (bool success) +function allowance(address _owner, address _spender) public view returns (uint256 remaining) +``` + +### Events {#events} + +```solidity +event Transfer(address indexed _from, address indexed _to, uint256 _value) +event Approval(address indexed _owner, address indexed _spender, uint256 _value) +``` + +### Examples {#web3py-example} + +Let's see how a Standard is so important to make things simple for us to inspect any ERC-20 Token Contract on Ethereum. +We just need the Contract Application Binary Interface (ABI) to create an interface to any ERC-20 Token. As you can +see below we will use a simplified ABI, to make it a low friction example. + +#### Web3.py Example {#web3py-example} + +First, make sure you have installed [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) Python library: + +``` +pip install web3 +``` + +```python +from web3 import Web3 + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI +weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # Wrapped ether (WETH) + +acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11" # Uniswap V2: DAI 2 + +# This is a simplified Contract Application Binary Interface (ABI) of an ERC-20 Token Contract. +# It will expose only the methods: balanceOf(address), decimals(), symbol() and totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'decimals', + 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +dai_contract = w3.eth.contract(address=w3.to_checksum_address(dai_token_addr), abi=simplified_abi) +symbol = dai_contract.functions.symbol().call() +decimals = dai_contract.functions.decimals().call() +totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals +addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# DAI +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) + +weth_contract = w3.eth.contract(address=w3.to_checksum_address(weth_token_addr), abi=simplified_abi) +symbol = weth_contract.functions.symbol().call() +decimals = weth_contract.functions.decimals().call() +totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals +addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# WETH +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) +``` + +## Further reading {#further-reading} + +- [EIP-20: ERC-20 Token Standard](https://eips.ethereum.org/EIPS/eip-20) +- [OpenZeppelin - Tokens](https://docs.openzeppelin.com/contracts/3.x/tokens#ERC20) +- [OpenZeppelin - ERC-20 Implementation](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) +- [Alchemy - Guide to Solidity ERC20 Tokens](https://www.alchemy.com/overviews/erc20-solidity) diff --git a/src/content/developers/docs/standards/tokens/erc-4626/index.md b/public/content/developers/docs/standards/tokens/erc-4626/index.md similarity index 100% rename from src/content/developers/docs/standards/tokens/erc-4626/index.md rename to public/content/developers/docs/standards/tokens/erc-4626/index.md diff --git a/public/content/developers/docs/standards/tokens/erc-721/index.md b/public/content/developers/docs/standards/tokens/erc-721/index.md new file mode 100644 index 00000000000..ed414243dce --- /dev/null +++ b/public/content/developers/docs/standards/tokens/erc-721/index.md @@ -0,0 +1,264 @@ +--- +title: ERC-721 Non-Fungible Token Standard +description: +lang: en +--- + +## Introduction {#introduction} + +**What is a Non-Fungible Token?** + +A Non-Fungible Token (NFT) is used to identify something or someone in a unique way. This type of Token is perfect to +be used on platforms that offer collectible items, access keys, lottery tickets, numbered seats for concerts and +sports matches, etc. This special type of Token has amazing possibilities so it deserves a proper Standard, the ERC-721 +came to solve that! + +**What is ERC-721?** + +The ERC-721 introduces a standard for NFT, in other words, this type of Token is unique and can have different value +than another Token from the same Smart Contract, maybe due to its age, rarity or even something else like its visual. +Wait, visual? + +Yes! All NFTs have a `uint256` variable called `tokenId`, so for any ERC-721 Contract, the pair +`contract address, uint256 tokenId` must be globally unique. That said, a dapp can have a "converter" that +uses the `tokenId` as input and outputs an image of something cool, like zombies, weapons, skills or amazing kitties! + +## Prerequisites {#prerequisites} + +- [Accounts](/developers/docs/accounts/) +- [Smart Contracts](/developers/docs/smart-contracts/) +- [Token standards](/developers/docs/standards/tokens/) + +## Body {#body} + +The ERC-721 (Ethereum Request for Comments 721), proposed by William Entriken, Dieter Shirley, Jacob Evans, +Nastassia Sachs in January 2018, is a Non-Fungible Token Standard that implements an API for tokens within Smart Contracts. + +It provides functionalities like to transfer tokens from one account to another, to get the current token balance of an +account, to get the owner of a specific token and also the total supply of the token available on the network. +Besides these it also has some other functionalities like to approve that an amount of token from an account can be +moved by a third party account. + +If a Smart Contract implements the following methods and events it can be called an ERC-721 Non-Fungible Token Contract +and, once deployed, it will be responsible to keep track of the created tokens on Ethereum. + +From [EIP-721](https://eips.ethereum.org/EIPS/eip-721): + +### Methods {#methods} + +```solidity + function balanceOf(address _owner) external view returns (uint256); + function ownerOf(uint256 _tokenId) external view returns (address); + function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; + function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; + function transferFrom(address _from, address _to, uint256 _tokenId) external payable; + function approve(address _approved, uint256 _tokenId) external payable; + function setApprovalForAll(address _operator, bool _approved) external; + function getApproved(uint256 _tokenId) external view returns (address); + function isApprovedForAll(address _owner, address _operator) external view returns (bool); +``` + +### Events {#events} + +```solidity + event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); + event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); + event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); +``` + +### Examples {#web3py-example} + +Let's see how a Standard is so important to make things simple for us to inspect any ERC-721 Token Contract on Ethereum. +We just need the Contract Application Binary Interface (ABI) to create an interface to any ERC-721 Token. As you can +see below we will use a simplified ABI, to make it a low friction example. + +#### Web3.py Example {#web3py-example} + +First, make sure you have installed [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) Python library: + +``` +pip install web3 +``` + +```python +from web3 import Web3 +from web3._utils.events import get_event_data + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # CryptoKitties Contract + +acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # CryptoKitties Sales Auction + +# This is a simplified Contract Application Binary Interface (ABI) of an ERC-721 NFT Contract. +# It will expose only the methods: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'name', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'ownerOf', + 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, +] + +ck_extra_abi = [ + { + 'inputs': [], + 'name': 'pregnantKitties', + 'outputs': [{'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'name': '_kittyId', 'type': 'uint256'}], + 'name': 'isPregnant', + 'outputs': [{'name': '', 'type': 'bool'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +ck_contract = w3.eth.contract(address=w3.to_checksum_address(ck_token_addr), abi=simplified_abi+ck_extra_abi) +name = ck_contract.functions.name().call() +symbol = ck_contract.functions.symbol().call() +kitties_auctions = ck_contract.functions.balanceOf(acc_address).call() +print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}") + +pregnant_kitties = ck_contract.functions.pregnantKitties().call() +print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}") + +# Using the Transfer Event ABI to get info about transferred Kitties. +tx_event_abi = { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'from', 'type': 'address'}, + {'indexed': False, 'name': 'to', 'type': 'address'}, + {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'Transfer', + 'type': 'event' +} + +# We need the event's signature to filter the logs +event_signature = w3.keccak(text="Transfer(address,address,uint256)").hex() + +logs = w3.eth.get_logs({ + "fromBlock": w3.eth.block_number - 120, + "address": w3.to_checksum_address(ck_token_addr), + "topics": [event_signature] +}) + +# Notes: +# - Increase the number of blocks up from 120 if no Transfer event is returned. +# - If you didn't find any Transfer event you can also try to get a tokenId at: +# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events +# Click to expand the event's logs and copy its "tokenId" argument +recent_tx = [get_event_data(w3.codec, tx_event_abi, log)["args"] for log in logs] + +if recent_tx: + kitty_id = recent_tx[0]['tokenId'] # Paste the "tokenId" here from the link above + is_pregnant = ck_contract.functions.isPregnant(kitty_id).call() + print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}") +``` + +CryptoKitties Contract has some interesting Events other than the Standard ones. + +Let's check two of them, `Pregnant` and `Birth`. + +```python +# Using the Pregnant and Birth Events ABI to get info about new Kitties. +ck_extra_events_abi = [ + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}], + 'name': 'Pregnant', + 'type': 'event' + }, + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'kittyId', 'type': 'uint256'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'genes', 'type': 'uint256'}], + 'name': 'Birth', + 'type': 'event' + }] + +# We need the event's signature to filter the logs +ck_event_signatures = [ + w3.keccak(text="Pregnant(address,uint256,uint256,uint256)").hex(), + w3.keccak(text="Birth(address,uint256,uint256,uint256,uint256)").hex(), +] + +# Here is a Pregnant Event: +# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog +pregnant_logs = w3.eth.get_logs({ + "fromBlock": w3.eth.block_number - 120, + "address": w3.to_checksum_address(ck_token_addr), + "topics": [ck_event_signatures[0]] +}) + +recent_pregnants = [get_event_data(w3.codec, ck_extra_events_abi[0], log)["args"] for log in pregnant_logs] + +# Here is a Birth Event: +# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a +birth_logs = w3.eth.get_logs({ + "fromBlock": w3.eth.block_number - 120, + "address": w3.to_checksum_address(ck_token_addr), + "topics": [ck_event_signatures[1]] +}) + +recent_births = [get_event_data(w3.codec, ck_extra_events_abi[1], log)["args"] for log in birth_logs] +``` + +## Popular NFTs {#popular-nfts} + +- [Etherscan NFT Tracker](https://etherscan.io/tokens-nft) list the top NFT on Ethereum by transfers volume. +- [CryptoKitties](https://www.cryptokitties.co/) is a game centered around breedable, collectible, and oh-so-adorable + creatures we call CryptoKitties. +- [Sorare](https://sorare.com/) is a global fantasy football game where you can collect limited editions collectibles, + manage your teams and compete to earn prizes. +- [The Ethereum Name Service (ENS)](https://ens.domains/) offers a secure & decentralized way to address resources both + on and off the blockchain using simple, human-readable names. +- [POAP](https://poap.xyz) delivers free NFTs to people who attend events or complete specific actions. POAPs are free to create and distribute. +- [Unstoppable Domains](https://unstoppabledomains.com/) is a San Francisco-based company building domains on + blockchains. Blockchain domains replace cryptocurrency addresses with human-readable names and can be used to enable + censorship-resistant websites. +- [Gods Unchained Cards](https://godsunchained.com/) is a TCG on the Ethereum blockchain that uses NFT's to bring real ownership + to in-game assets. +- [Bored Ape Yacht Club](https://boredapeyachtclub.com) is a collection of 10,000 unique NFTs, which, as well as being a provably-rare piece of art, acts as a membership token to the club, providing member perks and benefits that increase over time as a result of community efforts. + +## Further reading {#further-reading} + +- [EIP-721: ERC-721 Non-Fungible Token Standard](https://eips.ethereum.org/EIPS/eip-721) +- [OpenZeppelin - ERC-721 Docs](https://docs.openzeppelin.com/contracts/3.x/erc721) +- [OpenZeppelin - ERC-721 Implementation](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) +- [Alchemy NFT API](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) diff --git a/src/content/developers/docs/standards/tokens/erc-777/index.md b/public/content/developers/docs/standards/tokens/erc-777/index.md similarity index 100% rename from src/content/developers/docs/standards/tokens/erc-777/index.md rename to public/content/developers/docs/standards/tokens/erc-777/index.md diff --git a/src/content/developers/docs/standards/tokens/index.md b/public/content/developers/docs/standards/tokens/index.md similarity index 100% rename from src/content/developers/docs/standards/tokens/index.md rename to public/content/developers/docs/standards/tokens/index.md diff --git a/src/content/developers/docs/storage/index.md b/public/content/developers/docs/storage/index.md similarity index 100% rename from src/content/developers/docs/storage/index.md rename to public/content/developers/docs/storage/index.md diff --git a/src/content/developers/docs/transactions/gas-tx.png b/public/content/developers/docs/transactions/gas-tx.png similarity index 100% rename from src/content/developers/docs/transactions/gas-tx.png rename to public/content/developers/docs/transactions/gas-tx.png diff --git a/src/content/developers/docs/transactions/index.md b/public/content/developers/docs/transactions/index.md similarity index 100% rename from src/content/developers/docs/transactions/index.md rename to public/content/developers/docs/transactions/index.md diff --git a/src/content/developers/docs/transactions/tx.png b/public/content/developers/docs/transactions/tx.png similarity index 100% rename from src/content/developers/docs/transactions/tx.png rename to public/content/developers/docs/transactions/tx.png diff --git a/src/content/developers/docs/web2-vs-web3/index.md b/public/content/developers/docs/web2-vs-web3/index.md similarity index 100% rename from src/content/developers/docs/web2-vs-web3/index.md rename to public/content/developers/docs/web2-vs-web3/index.md diff --git a/src/content/developers/tutorials/a-developers-guide-to-ethereum-part-one/blockchain-diagram.png b/public/content/developers/tutorials/a-developers-guide-to-ethereum-part-one/blockchain-diagram.png similarity index 100% rename from src/content/developers/tutorials/a-developers-guide-to-ethereum-part-one/blockchain-diagram.png rename to public/content/developers/tutorials/a-developers-guide-to-ethereum-part-one/blockchain-diagram.png diff --git a/src/content/developers/tutorials/a-developers-guide-to-ethereum-part-one/ethereumtesterprovider.png b/public/content/developers/tutorials/a-developers-guide-to-ethereum-part-one/ethereumtesterprovider.png similarity index 100% rename from src/content/developers/tutorials/a-developers-guide-to-ethereum-part-one/ethereumtesterprovider.png rename to public/content/developers/tutorials/a-developers-guide-to-ethereum-part-one/ethereumtesterprovider.png diff --git a/src/content/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md b/public/content/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md similarity index 100% rename from src/content/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md rename to public/content/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md diff --git a/src/content/developers/tutorials/a-developers-guide-to-ethereum-part-one/web3py-and-nodes.png b/public/content/developers/tutorials/a-developers-guide-to-ethereum-part-one/web3py-and-nodes.png similarity index 100% rename from src/content/developers/tutorials/a-developers-guide-to-ethereum-part-one/web3py-and-nodes.png rename to public/content/developers/tutorials/a-developers-guide-to-ethereum-part-one/web3py-and-nodes.png diff --git a/src/content/developers/tutorials/all-you-can-cache/index.md b/public/content/developers/tutorials/all-you-can-cache/index.md similarity index 100% rename from src/content/developers/tutorials/all-you-can-cache/index.md rename to public/content/developers/tutorials/all-you-can-cache/index.md diff --git a/src/content/developers/tutorials/calling-a-smart-contract-from-javascript/index.md b/public/content/developers/tutorials/calling-a-smart-contract-from-javascript/index.md similarity index 100% rename from src/content/developers/tutorials/calling-a-smart-contract-from-javascript/index.md rename to public/content/developers/tutorials/calling-a-smart-contract-from-javascript/index.md diff --git a/src/content/developers/tutorials/create-and-deploy-a-defi-app/index.md b/public/content/developers/tutorials/create-and-deploy-a-defi-app/index.md similarity index 100% rename from src/content/developers/tutorials/create-and-deploy-a-defi-app/index.md rename to public/content/developers/tutorials/create-and-deploy-a-defi-app/index.md diff --git a/src/content/developers/tutorials/deploying-your-first-smart-contract/index.md b/public/content/developers/tutorials/deploying-your-first-smart-contract/index.md similarity index 100% rename from src/content/developers/tutorials/deploying-your-first-smart-contract/index.md rename to public/content/developers/tutorials/deploying-your-first-smart-contract/index.md diff --git a/src/content/developers/tutorials/deploying-your-first-smart-contract/remix-compile-button.png b/public/content/developers/tutorials/deploying-your-first-smart-contract/remix-compile-button.png similarity index 100% rename from src/content/developers/tutorials/deploying-your-first-smart-contract/remix-compile-button.png rename to public/content/developers/tutorials/deploying-your-first-smart-contract/remix-compile-button.png diff --git a/src/content/developers/tutorials/deploying-your-first-smart-contract/remix-compile.png b/public/content/developers/tutorials/deploying-your-first-smart-contract/remix-compile.png similarity index 100% rename from src/content/developers/tutorials/deploying-your-first-smart-contract/remix-compile.png rename to public/content/developers/tutorials/deploying-your-first-smart-contract/remix-compile.png diff --git a/src/content/developers/tutorials/deploying-your-first-smart-contract/remix-deploy-button.png b/public/content/developers/tutorials/deploying-your-first-smart-contract/remix-deploy-button.png similarity index 100% rename from src/content/developers/tutorials/deploying-your-first-smart-contract/remix-deploy-button.png rename to public/content/developers/tutorials/deploying-your-first-smart-contract/remix-deploy-button.png diff --git a/src/content/developers/tutorials/deploying-your-first-smart-contract/remix-deploy.png b/public/content/developers/tutorials/deploying-your-first-smart-contract/remix-deploy.png similarity index 100% rename from src/content/developers/tutorials/deploying-your-first-smart-contract/remix-deploy.png rename to public/content/developers/tutorials/deploying-your-first-smart-contract/remix-deploy.png diff --git a/src/content/developers/tutorials/deploying-your-first-smart-contract/remix-function-button.png b/public/content/developers/tutorials/deploying-your-first-smart-contract/remix-function-button.png similarity index 100% rename from src/content/developers/tutorials/deploying-your-first-smart-contract/remix-function-button.png rename to public/content/developers/tutorials/deploying-your-first-smart-contract/remix-function-button.png diff --git a/src/content/developers/tutorials/deploying-your-first-smart-contract/remix.png b/public/content/developers/tutorials/deploying-your-first-smart-contract/remix.png similarity index 100% rename from src/content/developers/tutorials/deploying-your-first-smart-contract/remix.png rename to public/content/developers/tutorials/deploying-your-first-smart-contract/remix.png diff --git a/src/content/developers/tutorials/deploying-your-first-smart-contract/transaction-log.png b/public/content/developers/tutorials/deploying-your-first-smart-contract/transaction-log.png similarity index 100% rename from src/content/developers/tutorials/deploying-your-first-smart-contract/transaction-log.png rename to public/content/developers/tutorials/deploying-your-first-smart-contract/transaction-log.png diff --git a/src/content/developers/tutorials/deploying-your-first-smart-contract/updated-state.png b/public/content/developers/tutorials/deploying-your-first-smart-contract/updated-state.png similarity index 100% rename from src/content/developers/tutorials/deploying-your-first-smart-contract/updated-state.png rename to public/content/developers/tutorials/deploying-your-first-smart-contract/updated-state.png diff --git a/src/content/developers/tutorials/develop-and-test-dapps-with-a-multi-client-local-eth-testnet/index.md b/public/content/developers/tutorials/develop-and-test-dapps-with-a-multi-client-local-eth-testnet/index.md similarity index 100% rename from src/content/developers/tutorials/develop-and-test-dapps-with-a-multi-client-local-eth-testnet/index.md rename to public/content/developers/tutorials/develop-and-test-dapps-with-a-multi-client-local-eth-testnet/index.md diff --git a/src/content/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md b/public/content/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md similarity index 100% rename from src/content/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md rename to public/content/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md diff --git a/src/content/developers/tutorials/eip-1271-smart-contract-signatures/index.md b/public/content/developers/tutorials/eip-1271-smart-contract-signatures/index.md similarity index 100% rename from src/content/developers/tutorials/eip-1271-smart-contract-signatures/index.md rename to public/content/developers/tutorials/eip-1271-smart-contract-signatures/index.md diff --git a/src/content/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/developers/tutorials/erc-721-vyper-annotated-code/index.md similarity index 100% rename from src/content/developers/tutorials/erc-721-vyper-annotated-code/index.md rename to public/content/developers/tutorials/erc-721-vyper-annotated-code/index.md diff --git a/src/content/developers/tutorials/erc20-annotated-code/erc20_interface.png b/public/content/developers/tutorials/erc20-annotated-code/erc20_interface.png similarity index 100% rename from src/content/developers/tutorials/erc20-annotated-code/erc20_interface.png rename to public/content/developers/tutorials/erc20-annotated-code/erc20_interface.png diff --git a/src/content/developers/tutorials/erc20-annotated-code/index.md b/public/content/developers/tutorials/erc20-annotated-code/index.md similarity index 100% rename from src/content/developers/tutorials/erc20-annotated-code/index.md rename to public/content/developers/tutorials/erc20-annotated-code/index.md diff --git a/src/content/developers/tutorials/erc20-with-safety-rails/icon-clone.png b/public/content/developers/tutorials/erc20-with-safety-rails/icon-clone.png similarity index 100% rename from src/content/developers/tutorials/erc20-with-safety-rails/icon-clone.png rename to public/content/developers/tutorials/erc20-with-safety-rails/icon-clone.png diff --git a/src/content/developers/tutorials/erc20-with-safety-rails/index.md b/public/content/developers/tutorials/erc20-with-safety-rails/index.md similarity index 100% rename from src/content/developers/tutorials/erc20-with-safety-rails/index.md rename to public/content/developers/tutorials/erc20-with-safety-rails/index.md diff --git a/src/content/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/alchemy-dashboard.png b/public/content/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/alchemy-dashboard.png similarity index 100% rename from src/content/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/alchemy-dashboard.png rename to public/content/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/alchemy-dashboard.png diff --git a/src/content/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/create-app.png b/public/content/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/create-app.png similarity index 100% rename from src/content/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/create-app.png rename to public/content/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/create-app.png diff --git a/src/content/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/ethereum-alchemy.png b/public/content/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/ethereum-alchemy.png similarity index 100% rename from src/content/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/ethereum-alchemy.png rename to public/content/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/ethereum-alchemy.png diff --git a/src/content/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md b/public/content/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md similarity index 100% rename from src/content/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md rename to public/content/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md diff --git a/src/content/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/pull-api-keys.gif b/public/content/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/pull-api-keys.gif similarity index 100% rename from src/content/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/pull-api-keys.gif rename to public/content/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/pull-api-keys.gif diff --git a/src/content/developers/tutorials/guide-to-smart-contract-security-tools/index.md b/public/content/developers/tutorials/guide-to-smart-contract-security-tools/index.md similarity index 100% rename from src/content/developers/tutorials/guide-to-smart-contract-security-tools/index.md rename to public/content/developers/tutorials/guide-to-smart-contract-security-tools/index.md diff --git a/src/content/developers/tutorials/hello-world-smart-contract-fullstack/create-app-view-hello-world.png b/public/content/developers/tutorials/hello-world-smart-contract-fullstack/create-app-view-hello-world.png similarity index 100% rename from src/content/developers/tutorials/hello-world-smart-contract-fullstack/create-app-view-hello-world.png rename to public/content/developers/tutorials/hello-world-smart-contract-fullstack/create-app-view-hello-world.png diff --git a/src/content/developers/tutorials/hello-world-smart-contract-fullstack/etherscan-contract.png b/public/content/developers/tutorials/hello-world-smart-contract-fullstack/etherscan-contract.png similarity index 100% rename from src/content/developers/tutorials/hello-world-smart-contract-fullstack/etherscan-contract.png rename to public/content/developers/tutorials/hello-world-smart-contract-fullstack/etherscan-contract.png diff --git a/src/content/developers/tutorials/hello-world-smart-contract-fullstack/etherscan-transaction.png b/public/content/developers/tutorials/hello-world-smart-contract-fullstack/etherscan-transaction.png similarity index 100% rename from src/content/developers/tutorials/hello-world-smart-contract-fullstack/etherscan-transaction.png rename to public/content/developers/tutorials/hello-world-smart-contract-fullstack/etherscan-transaction.png diff --git a/src/content/developers/tutorials/hello-world-smart-contract-fullstack/get-alchemy-api-key.gif b/public/content/developers/tutorials/hello-world-smart-contract-fullstack/get-alchemy-api-key.gif similarity index 100% rename from src/content/developers/tutorials/hello-world-smart-contract-fullstack/get-alchemy-api-key.gif rename to public/content/developers/tutorials/hello-world-smart-contract-fullstack/get-alchemy-api-key.gif diff --git a/src/content/developers/tutorials/hello-world-smart-contract-fullstack/hello-world-create-app.png b/public/content/developers/tutorials/hello-world-smart-contract-fullstack/hello-world-create-app.png similarity index 100% rename from src/content/developers/tutorials/hello-world-smart-contract-fullstack/hello-world-create-app.png rename to public/content/developers/tutorials/hello-world-smart-contract-fullstack/hello-world-create-app.png diff --git a/src/content/developers/tutorials/hello-world-smart-contract-fullstack/hello-world-explorer.png b/public/content/developers/tutorials/hello-world-smart-contract-fullstack/hello-world-explorer.png similarity index 100% rename from src/content/developers/tutorials/hello-world-smart-contract-fullstack/hello-world-explorer.png rename to public/content/developers/tutorials/hello-world-smart-contract-fullstack/hello-world-explorer.png diff --git a/src/content/developers/tutorials/hello-world-smart-contract-fullstack/index.md b/public/content/developers/tutorials/hello-world-smart-contract-fullstack/index.md similarity index 100% rename from src/content/developers/tutorials/hello-world-smart-contract-fullstack/index.md rename to public/content/developers/tutorials/hello-world-smart-contract-fullstack/index.md diff --git a/src/content/developers/tutorials/hello-world-smart-contract-fullstack/metamask-ropsten-example.png b/public/content/developers/tutorials/hello-world-smart-contract-fullstack/metamask-ropsten-example.png similarity index 100% rename from src/content/developers/tutorials/hello-world-smart-contract-fullstack/metamask-ropsten-example.png rename to public/content/developers/tutorials/hello-world-smart-contract-fullstack/metamask-ropsten-example.png diff --git a/src/content/developers/tutorials/hello-world-smart-contract/create-app-view-hello-world.png b/public/content/developers/tutorials/hello-world-smart-contract/create-app-view-hello-world.png similarity index 100% rename from src/content/developers/tutorials/hello-world-smart-contract/create-app-view-hello-world.png rename to public/content/developers/tutorials/hello-world-smart-contract/create-app-view-hello-world.png diff --git a/src/content/developers/tutorials/hello-world-smart-contract/etherscan-contract.png b/public/content/developers/tutorials/hello-world-smart-contract/etherscan-contract.png similarity index 100% rename from src/content/developers/tutorials/hello-world-smart-contract/etherscan-contract.png rename to public/content/developers/tutorials/hello-world-smart-contract/etherscan-contract.png diff --git a/src/content/developers/tutorials/hello-world-smart-contract/etherscan-transaction.png b/public/content/developers/tutorials/hello-world-smart-contract/etherscan-transaction.png similarity index 100% rename from src/content/developers/tutorials/hello-world-smart-contract/etherscan-transaction.png rename to public/content/developers/tutorials/hello-world-smart-contract/etherscan-transaction.png diff --git a/src/content/developers/tutorials/hello-world-smart-contract/get-alchemy-api-key.gif b/public/content/developers/tutorials/hello-world-smart-contract/get-alchemy-api-key.gif similarity index 100% rename from src/content/developers/tutorials/hello-world-smart-contract/get-alchemy-api-key.gif rename to public/content/developers/tutorials/hello-world-smart-contract/get-alchemy-api-key.gif diff --git a/src/content/developers/tutorials/hello-world-smart-contract/hello-world-create-app.png b/public/content/developers/tutorials/hello-world-smart-contract/hello-world-create-app.png similarity index 100% rename from src/content/developers/tutorials/hello-world-smart-contract/hello-world-create-app.png rename to public/content/developers/tutorials/hello-world-smart-contract/hello-world-create-app.png diff --git a/src/content/developers/tutorials/hello-world-smart-contract/hello-world-explorer.png b/public/content/developers/tutorials/hello-world-smart-contract/hello-world-explorer.png similarity index 100% rename from src/content/developers/tutorials/hello-world-smart-contract/hello-world-explorer.png rename to public/content/developers/tutorials/hello-world-smart-contract/hello-world-explorer.png diff --git a/src/content/developers/tutorials/hello-world-smart-contract/index.md b/public/content/developers/tutorials/hello-world-smart-contract/index.md similarity index 100% rename from src/content/developers/tutorials/hello-world-smart-contract/index.md rename to public/content/developers/tutorials/hello-world-smart-contract/index.md diff --git a/src/content/developers/tutorials/hello-world-smart-contract/metamask-ropsten-example.png b/public/content/developers/tutorials/hello-world-smart-contract/metamask-ropsten-example.png similarity index 100% rename from src/content/developers/tutorials/hello-world-smart-contract/metamask-ropsten-example.png rename to public/content/developers/tutorials/hello-world-smart-contract/metamask-ropsten-example.png diff --git a/src/content/developers/tutorials/how-to-implement-an-erc721-market/index.md b/public/content/developers/tutorials/how-to-implement-an-erc721-market/index.md similarity index 100% rename from src/content/developers/tutorials/how-to-implement-an-erc721-market/index.md rename to public/content/developers/tutorials/how-to-implement-an-erc721-market/index.md diff --git a/src/content/developers/tutorials/how-to-mint-an-nft/index.md b/public/content/developers/tutorials/how-to-mint-an-nft/index.md similarity index 100% rename from src/content/developers/tutorials/how-to-mint-an-nft/index.md rename to public/content/developers/tutorials/how-to-mint-an-nft/index.md diff --git a/src/content/developers/tutorials/how-to-mint-an-nft/instructionsPinata.gif b/public/content/developers/tutorials/how-to-mint-an-nft/instructionsPinata.gif similarity index 100% rename from src/content/developers/tutorials/how-to-mint-an-nft/instructionsPinata.gif rename to public/content/developers/tutorials/how-to-mint-an-nft/instructionsPinata.gif diff --git a/src/content/developers/tutorials/how-to-mint-an-nft/metadataJSON.png b/public/content/developers/tutorials/how-to-mint-an-nft/metadataJSON.png similarity index 100% rename from src/content/developers/tutorials/how-to-mint-an-nft/metadataJSON.png rename to public/content/developers/tutorials/how-to-mint-an-nft/metadataJSON.png diff --git a/src/content/developers/tutorials/how-to-mint-an-nft/metadataPinata.gif b/public/content/developers/tutorials/how-to-mint-an-nft/metadataPinata.gif similarity index 100% rename from src/content/developers/tutorials/how-to-mint-an-nft/metadataPinata.gif rename to public/content/developers/tutorials/how-to-mint-an-nft/metadataPinata.gif diff --git a/src/content/developers/tutorials/how-to-mint-an-nft/uploadPinata.gif b/public/content/developers/tutorials/how-to-mint-an-nft/uploadPinata.gif similarity index 100% rename from src/content/developers/tutorials/how-to-mint-an-nft/uploadPinata.gif rename to public/content/developers/tutorials/how-to-mint-an-nft/uploadPinata.gif diff --git a/src/content/developers/tutorials/how-to-mint-an-nft/view-contract-etherscan.png b/public/content/developers/tutorials/how-to-mint-an-nft/view-contract-etherscan.png similarity index 100% rename from src/content/developers/tutorials/how-to-mint-an-nft/view-contract-etherscan.png rename to public/content/developers/tutorials/how-to-mint-an-nft/view-contract-etherscan.png diff --git a/src/content/developers/tutorials/how-to-mint-an-nft/view-nft-etherscan.png b/public/content/developers/tutorials/how-to-mint-an-nft/view-nft-etherscan.png similarity index 100% rename from src/content/developers/tutorials/how-to-mint-an-nft/view-nft-etherscan.png rename to public/content/developers/tutorials/how-to-mint-an-nft/view-nft-etherscan.png diff --git a/src/content/developers/tutorials/how-to-mint-an-nft/viewContractEtherscan.png b/public/content/developers/tutorials/how-to-mint-an-nft/viewContractEtherscan.png similarity index 100% rename from src/content/developers/tutorials/how-to-mint-an-nft/viewContractEtherscan.png rename to public/content/developers/tutorials/how-to-mint-an-nft/viewContractEtherscan.png diff --git a/src/content/developers/tutorials/how-to-mint-an-nft/viewNFTEtherscan.png b/public/content/developers/tutorials/how-to-mint-an-nft/viewNFTEtherscan.png similarity index 100% rename from src/content/developers/tutorials/how-to-mint-an-nft/viewNFTEtherscan.png rename to public/content/developers/tutorials/how-to-mint-an-nft/viewNFTEtherscan.png diff --git a/src/content/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md b/public/content/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md similarity index 100% rename from src/content/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md rename to public/content/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md diff --git a/src/content/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md b/public/content/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md similarity index 100% rename from src/content/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md rename to public/content/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md diff --git a/src/content/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md b/public/content/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md similarity index 100% rename from src/content/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md rename to public/content/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md diff --git a/src/content/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/ast.png b/public/content/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/ast.png similarity index 100% rename from src/content/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/ast.png rename to public/content/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/ast.png diff --git a/src/content/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/cfg.png b/public/content/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/cfg.png similarity index 100% rename from src/content/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/cfg.png rename to public/content/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/cfg.png diff --git a/src/content/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md b/public/content/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md similarity index 100% rename from src/content/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md rename to public/content/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md diff --git a/src/content/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md b/public/content/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md similarity index 100% rename from src/content/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md rename to public/content/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md diff --git a/src/content/developers/tutorials/how-to-view-nft-in-metamask/findNFTEtherscan.png b/public/content/developers/tutorials/how-to-view-nft-in-metamask/findNFTEtherscan.png similarity index 100% rename from src/content/developers/tutorials/how-to-view-nft-in-metamask/findNFTEtherscan.png rename to public/content/developers/tutorials/how-to-view-nft-in-metamask/findNFTEtherscan.png diff --git a/src/content/developers/tutorials/how-to-view-nft-in-metamask/findNFTMetamask.gif b/public/content/developers/tutorials/how-to-view-nft-in-metamask/findNFTMetamask.gif similarity index 100% rename from src/content/developers/tutorials/how-to-view-nft-in-metamask/findNFTMetamask.gif rename to public/content/developers/tutorials/how-to-view-nft-in-metamask/findNFTMetamask.gif diff --git a/src/content/developers/tutorials/how-to-view-nft-in-metamask/goerliMetamask.gif b/public/content/developers/tutorials/how-to-view-nft-in-metamask/goerliMetamask.gif similarity index 100% rename from src/content/developers/tutorials/how-to-view-nft-in-metamask/goerliMetamask.gif rename to public/content/developers/tutorials/how-to-view-nft-in-metamask/goerliMetamask.gif diff --git a/src/content/developers/tutorials/how-to-view-nft-in-metamask/index.md b/public/content/developers/tutorials/how-to-view-nft-in-metamask/index.md similarity index 100% rename from src/content/developers/tutorials/how-to-view-nft-in-metamask/index.md rename to public/content/developers/tutorials/how-to-view-nft-in-metamask/index.md diff --git a/src/content/developers/tutorials/how-to-write-and-deploy-an-nft/alchemy-explorer-goerli.png b/public/content/developers/tutorials/how-to-write-and-deploy-an-nft/alchemy-explorer-goerli.png similarity index 100% rename from src/content/developers/tutorials/how-to-write-and-deploy-an-nft/alchemy-explorer-goerli.png rename to public/content/developers/tutorials/how-to-write-and-deploy-an-nft/alchemy-explorer-goerli.png diff --git a/src/content/developers/tutorials/how-to-write-and-deploy-an-nft/alchemy-explorer-sepolia.png b/public/content/developers/tutorials/how-to-write-and-deploy-an-nft/alchemy-explorer-sepolia.png similarity index 100% rename from src/content/developers/tutorials/how-to-write-and-deploy-an-nft/alchemy-explorer-sepolia.png rename to public/content/developers/tutorials/how-to-write-and-deploy-an-nft/alchemy-explorer-sepolia.png diff --git a/src/content/developers/tutorials/how-to-write-and-deploy-an-nft/configure-and-publish-your-app.png b/public/content/developers/tutorials/how-to-write-and-deploy-an-nft/configure-and-publish-your-app.png similarity index 100% rename from src/content/developers/tutorials/how-to-write-and-deploy-an-nft/configure-and-publish-your-app.png rename to public/content/developers/tutorials/how-to-write-and-deploy-an-nft/configure-and-publish-your-app.png diff --git a/src/content/developers/tutorials/how-to-write-and-deploy-an-nft/copy-alchemy-api-url.gif b/public/content/developers/tutorials/how-to-write-and-deploy-an-nft/copy-alchemy-api-url.gif similarity index 100% rename from src/content/developers/tutorials/how-to-write-and-deploy-an-nft/copy-alchemy-api-url.gif rename to public/content/developers/tutorials/how-to-write-and-deploy-an-nft/copy-alchemy-api-url.gif diff --git a/src/content/developers/tutorials/how-to-write-and-deploy-an-nft/create-your-app.png b/public/content/developers/tutorials/how-to-write-and-deploy-an-nft/create-your-app.png similarity index 100% rename from src/content/developers/tutorials/how-to-write-and-deploy-an-nft/create-your-app.png rename to public/content/developers/tutorials/how-to-write-and-deploy-an-nft/create-your-app.png diff --git a/src/content/developers/tutorials/how-to-write-and-deploy-an-nft/etherscan-goerli-contract-creation.png b/public/content/developers/tutorials/how-to-write-and-deploy-an-nft/etherscan-goerli-contract-creation.png similarity index 100% rename from src/content/developers/tutorials/how-to-write-and-deploy-an-nft/etherscan-goerli-contract-creation.png rename to public/content/developers/tutorials/how-to-write-and-deploy-an-nft/etherscan-goerli-contract-creation.png diff --git a/src/content/developers/tutorials/how-to-write-and-deploy-an-nft/etherscan-goerli-tx-details.png b/public/content/developers/tutorials/how-to-write-and-deploy-an-nft/etherscan-goerli-tx-details.png similarity index 100% rename from src/content/developers/tutorials/how-to-write-and-deploy-an-nft/etherscan-goerli-tx-details.png rename to public/content/developers/tutorials/how-to-write-and-deploy-an-nft/etherscan-goerli-tx-details.png diff --git a/src/content/developers/tutorials/how-to-write-and-deploy-an-nft/etherscan-sepoila-contract-creation.png b/public/content/developers/tutorials/how-to-write-and-deploy-an-nft/etherscan-sepoila-contract-creation.png similarity index 100% rename from src/content/developers/tutorials/how-to-write-and-deploy-an-nft/etherscan-sepoila-contract-creation.png rename to public/content/developers/tutorials/how-to-write-and-deploy-an-nft/etherscan-sepoila-contract-creation.png diff --git a/src/content/developers/tutorials/how-to-write-and-deploy-an-nft/etherscan-sepolia-tx-details.png b/public/content/developers/tutorials/how-to-write-and-deploy-an-nft/etherscan-sepolia-tx-details.png similarity index 100% rename from src/content/developers/tutorials/how-to-write-and-deploy-an-nft/etherscan-sepolia-tx-details.png rename to public/content/developers/tutorials/how-to-write-and-deploy-an-nft/etherscan-sepolia-tx-details.png diff --git a/src/content/developers/tutorials/how-to-write-and-deploy-an-nft/index.md b/public/content/developers/tutorials/how-to-write-and-deploy-an-nft/index.md similarity index 100% rename from src/content/developers/tutorials/how-to-write-and-deploy-an-nft/index.md rename to public/content/developers/tutorials/how-to-write-and-deploy-an-nft/index.md diff --git a/src/content/developers/tutorials/how-to-write-and-deploy-an-nft/metamask-goerli.png b/public/content/developers/tutorials/how-to-write-and-deploy-an-nft/metamask-goerli.png similarity index 100% rename from src/content/developers/tutorials/how-to-write-and-deploy-an-nft/metamask-goerli.png rename to public/content/developers/tutorials/how-to-write-and-deploy-an-nft/metamask-goerli.png diff --git a/src/content/developers/tutorials/interact-with-other-contracts-from-solidity/counterfactory-deploy.png b/public/content/developers/tutorials/interact-with-other-contracts-from-solidity/counterfactory-deploy.png similarity index 100% rename from src/content/developers/tutorials/interact-with-other-contracts-from-solidity/counterfactory-deploy.png rename to public/content/developers/tutorials/interact-with-other-contracts-from-solidity/counterfactory-deploy.png diff --git a/src/content/developers/tutorials/interact-with-other-contracts-from-solidity/index.md b/public/content/developers/tutorials/interact-with-other-contracts-from-solidity/index.md similarity index 100% rename from src/content/developers/tutorials/interact-with-other-contracts-from-solidity/index.md rename to public/content/developers/tutorials/interact-with-other-contracts-from-solidity/index.md diff --git a/src/content/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/flashloan-meme.png b/public/content/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/flashloan-meme.png similarity index 100% rename from src/content/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/flashloan-meme.png rename to public/content/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/flashloan-meme.png diff --git a/src/content/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md b/public/content/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md similarity index 100% rename from src/content/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md rename to public/content/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md diff --git a/src/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/avg_daily_blocks.png b/public/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/avg_daily_blocks.png similarity index 100% rename from src/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/avg_daily_blocks.png rename to public/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/avg_daily_blocks.png diff --git a/src/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/avg_gas_limit.png b/public/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/avg_gas_limit.png similarity index 100% rename from src/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/avg_gas_limit.png rename to public/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/avg_gas_limit.png diff --git a/src/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/daily_blocks.png b/public/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/daily_blocks.png similarity index 100% rename from src/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/daily_blocks.png rename to public/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/daily_blocks.png diff --git a/src/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/daily_gas_used.png b/public/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/daily_gas_used.png similarity index 100% rename from src/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/daily_gas_used.png rename to public/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/daily_gas_used.png diff --git a/src/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/dune_view.png b/public/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/dune_view.png similarity index 100% rename from src/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/dune_view.png rename to public/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/dune_view.png diff --git a/src/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/ef_daily_gas.png b/public/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/ef_daily_gas.png similarity index 100% rename from src/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/ef_daily_gas.png rename to public/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/ef_daily_gas.png diff --git a/src/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/etherscan_view.png b/public/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/etherscan_view.png similarity index 100% rename from src/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/etherscan_view.png rename to public/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/etherscan_view.png diff --git a/src/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/gas_demand_supply.png b/public/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/gas_demand_supply.png similarity index 100% rename from src/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/gas_demand_supply.png rename to public/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/gas_demand_supply.png diff --git a/src/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md b/public/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md similarity index 100% rename from src/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md rename to public/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md diff --git a/src/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/list_of_txn.png b/public/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/list_of_txn.png similarity index 100% rename from src/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/list_of_txn.png rename to public/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/list_of_txn.png diff --git a/src/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/parent_hash.png b/public/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/parent_hash.png similarity index 100% rename from src/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/parent_hash.png rename to public/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/parent_hash.png diff --git a/src/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/successful_txn.png b/public/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/successful_txn.png similarity index 100% rename from src/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/successful_txn.png rename to public/content/developers/tutorials/learn-foundational-ethereum-topics-with-sql/successful_txn.png diff --git a/src/content/developers/tutorials/logging-events-smart-contracts/index.md b/public/content/developers/tutorials/logging-events-smart-contracts/index.md similarity index 100% rename from src/content/developers/tutorials/logging-events-smart-contracts/index.md rename to public/content/developers/tutorials/logging-events-smart-contracts/index.md diff --git a/src/content/developers/tutorials/logging-events-smart-contracts/remix-screenshot.png b/public/content/developers/tutorials/logging-events-smart-contracts/remix-screenshot.png similarity index 100% rename from src/content/developers/tutorials/logging-events-smart-contracts/remix-screenshot.png rename to public/content/developers/tutorials/logging-events-smart-contracts/remix-screenshot.png diff --git a/src/content/developers/tutorials/merkle-proofs-for-offline-data-integrity/index.md b/public/content/developers/tutorials/merkle-proofs-for-offline-data-integrity/index.md similarity index 100% rename from src/content/developers/tutorials/merkle-proofs-for-offline-data-integrity/index.md rename to public/content/developers/tutorials/merkle-proofs-for-offline-data-integrity/index.md diff --git a/src/content/developers/tutorials/merkle-proofs-for-offline-data-integrity/merkle-empty-hash.png b/public/content/developers/tutorials/merkle-proofs-for-offline-data-integrity/merkle-empty-hash.png similarity index 100% rename from src/content/developers/tutorials/merkle-proofs-for-offline-data-integrity/merkle-empty-hash.png rename to public/content/developers/tutorials/merkle-proofs-for-offline-data-integrity/merkle-empty-hash.png diff --git a/src/content/developers/tutorials/merkle-proofs-for-offline-data-integrity/proof-c.png b/public/content/developers/tutorials/merkle-proofs-for-offline-data-integrity/proof-c.png similarity index 100% rename from src/content/developers/tutorials/merkle-proofs-for-offline-data-integrity/proof-c.png rename to public/content/developers/tutorials/merkle-proofs-for-offline-data-integrity/proof-c.png diff --git a/src/content/developers/tutorials/merkle-proofs-for-offline-data-integrity/tree.png b/public/content/developers/tutorials/merkle-proofs-for-offline-data-integrity/tree.png similarity index 100% rename from src/content/developers/tutorials/merkle-proofs-for-offline-data-integrity/tree.png rename to public/content/developers/tutorials/merkle-proofs-for-offline-data-integrity/tree.png diff --git a/src/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana1.png b/public/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana1.png similarity index 100% rename from src/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana1.png rename to public/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana1.png diff --git a/src/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana2.png b/public/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana2.png similarity index 100% rename from src/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana2.png rename to public/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana2.png diff --git a/src/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana3.png b/public/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana3.png similarity index 100% rename from src/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana3.png rename to public/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana3.png diff --git a/src/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana4.png b/public/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana4.png similarity index 100% rename from src/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana4.png rename to public/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana4.png diff --git a/src/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana5.png b/public/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana5.png similarity index 100% rename from src/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana5.png rename to public/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana5.png diff --git a/src/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana6.png b/public/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana6.png similarity index 100% rename from src/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana6.png rename to public/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana6.png diff --git a/src/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana7.png b/public/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana7.png similarity index 100% rename from src/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana7.png rename to public/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana7.png diff --git a/src/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana8.png b/public/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana8.png similarity index 100% rename from src/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana8.png rename to public/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/grafana8.png diff --git a/src/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md b/public/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md similarity index 100% rename from src/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md rename to public/content/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md diff --git a/src/content/developers/tutorials/nft-minter/index.md b/public/content/developers/tutorials/nft-minter/index.md similarity index 100% rename from src/content/developers/tutorials/nft-minter/index.md rename to public/content/developers/tutorials/nft-minter/index.md diff --git a/src/content/developers/tutorials/optimism-std-bridge-annotated-code/index.md b/public/content/developers/tutorials/optimism-std-bridge-annotated-code/index.md similarity index 100% rename from src/content/developers/tutorials/optimism-std-bridge-annotated-code/index.md rename to public/content/developers/tutorials/optimism-std-bridge-annotated-code/index.md diff --git a/src/content/developers/tutorials/reverse-engineering-a-contract/calldata-empty.png b/public/content/developers/tutorials/reverse-engineering-a-contract/calldata-empty.png similarity index 100% rename from src/content/developers/tutorials/reverse-engineering-a-contract/calldata-empty.png rename to public/content/developers/tutorials/reverse-engineering-a-contract/calldata-empty.png diff --git a/src/content/developers/tutorials/reverse-engineering-a-contract/claim-tx.png b/public/content/developers/tutorials/reverse-engineering-a-contract/claim-tx.png similarity index 100% rename from src/content/developers/tutorials/reverse-engineering-a-contract/claim-tx.png rename to public/content/developers/tutorials/reverse-engineering-a-contract/claim-tx.png diff --git a/src/content/developers/tutorials/reverse-engineering-a-contract/create-tx.png b/public/content/developers/tutorials/reverse-engineering-a-contract/create-tx.png similarity index 100% rename from src/content/developers/tutorials/reverse-engineering-a-contract/create-tx.png rename to public/content/developers/tutorials/reverse-engineering-a-contract/create-tx.png diff --git a/src/content/developers/tutorials/reverse-engineering-a-contract/flowchart-abi.png b/public/content/developers/tutorials/reverse-engineering-a-contract/flowchart-abi.png similarity index 100% rename from src/content/developers/tutorials/reverse-engineering-a-contract/flowchart-abi.png rename to public/content/developers/tutorials/reverse-engineering-a-contract/flowchart-abi.png diff --git a/src/content/developers/tutorials/reverse-engineering-a-contract/flowchart-entry.png b/public/content/developers/tutorials/reverse-engineering-a-contract/flowchart-entry.png similarity index 100% rename from src/content/developers/tutorials/reverse-engineering-a-contract/flowchart-entry.png rename to public/content/developers/tutorials/reverse-engineering-a-contract/flowchart-entry.png diff --git a/src/content/developers/tutorials/reverse-engineering-a-contract/flowchart-proxy.png b/public/content/developers/tutorials/reverse-engineering-a-contract/flowchart-proxy.png similarity index 100% rename from src/content/developers/tutorials/reverse-engineering-a-contract/flowchart-proxy.png rename to public/content/developers/tutorials/reverse-engineering-a-contract/flowchart-proxy.png diff --git a/src/content/developers/tutorials/reverse-engineering-a-contract/index.md b/public/content/developers/tutorials/reverse-engineering-a-contract/index.md similarity index 100% rename from src/content/developers/tutorials/reverse-engineering-a-contract/index.md rename to public/content/developers/tutorials/reverse-engineering-a-contract/index.md diff --git a/src/content/developers/tutorials/reverse-engineering-a-contract/opcode-view.png b/public/content/developers/tutorials/reverse-engineering-a-contract/opcode-view.png similarity index 100% rename from src/content/developers/tutorials/reverse-engineering-a-contract/opcode-view.png rename to public/content/developers/tutorials/reverse-engineering-a-contract/opcode-view.png diff --git a/src/content/developers/tutorials/reverse-engineering-a-contract/storage6.png b/public/content/developers/tutorials/reverse-engineering-a-contract/storage6.png similarity index 100% rename from src/content/developers/tutorials/reverse-engineering-a-contract/storage6.png rename to public/content/developers/tutorials/reverse-engineering-a-contract/storage6.png diff --git a/src/content/developers/tutorials/run-node-raspberry-pi/index.md b/public/content/developers/tutorials/run-node-raspberry-pi/index.md similarity index 100% rename from src/content/developers/tutorials/run-node-raspberry-pi/index.md rename to public/content/developers/tutorials/run-node-raspberry-pi/index.md diff --git a/src/content/developers/tutorials/scam-token-tricks/index.md b/public/content/developers/tutorials/scam-token-tricks/index.md similarity index 100% rename from src/content/developers/tutorials/scam-token-tricks/index.md rename to public/content/developers/tutorials/scam-token-tricks/index.md diff --git a/src/content/developers/tutorials/secure-development-workflow/index.md b/public/content/developers/tutorials/secure-development-workflow/index.md similarity index 100% rename from src/content/developers/tutorials/secure-development-workflow/index.md rename to public/content/developers/tutorials/secure-development-workflow/index.md diff --git a/src/content/developers/tutorials/send-token-ethersjs/index.md b/public/content/developers/tutorials/send-token-ethersjs/index.md similarity index 100% rename from src/content/developers/tutorials/send-token-ethersjs/index.md rename to public/content/developers/tutorials/send-token-ethersjs/index.md diff --git a/src/content/developers/tutorials/send-token-ethersjs/successful-transaction.png b/public/content/developers/tutorials/send-token-ethersjs/successful-transaction.png similarity index 100% rename from src/content/developers/tutorials/send-token-ethersjs/successful-transaction.png rename to public/content/developers/tutorials/send-token-ethersjs/successful-transaction.png diff --git a/src/content/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md b/public/content/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md similarity index 100% rename from src/content/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md rename to public/content/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md diff --git a/src/content/developers/tutorials/sending-transactions-using-web3-and-alchemy/mempool.png b/public/content/developers/tutorials/sending-transactions-using-web3-and-alchemy/mempool.png similarity index 100% rename from src/content/developers/tutorials/sending-transactions-using-web3-and-alchemy/mempool.png rename to public/content/developers/tutorials/sending-transactions-using-web3-and-alchemy/mempool.png diff --git a/src/content/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md b/public/content/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md similarity index 100% rename from src/content/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md rename to public/content/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md diff --git a/src/content/developers/tutorials/short-abi/index.md b/public/content/developers/tutorials/short-abi/index.md similarity index 100% rename from src/content/developers/tutorials/short-abi/index.md rename to public/content/developers/tutorials/short-abi/index.md diff --git a/src/content/developers/tutorials/smart-contract-security-guidelines/index.md b/public/content/developers/tutorials/smart-contract-security-guidelines/index.md similarity index 100% rename from src/content/developers/tutorials/smart-contract-security-guidelines/index.md rename to public/content/developers/tutorials/smart-contract-security-guidelines/index.md diff --git a/src/content/developers/tutorials/solidity-and-truffle-continuous-integration-setup/coverall.png b/public/content/developers/tutorials/solidity-and-truffle-continuous-integration-setup/coverall.png similarity index 100% rename from src/content/developers/tutorials/solidity-and-truffle-continuous-integration-setup/coverall.png rename to public/content/developers/tutorials/solidity-and-truffle-continuous-integration-setup/coverall.png diff --git a/src/content/developers/tutorials/solidity-and-truffle-continuous-integration-setup/gas-reports.png b/public/content/developers/tutorials/solidity-and-truffle-continuous-integration-setup/gas-reports.png similarity index 100% rename from src/content/developers/tutorials/solidity-and-truffle-continuous-integration-setup/gas-reports.png rename to public/content/developers/tutorials/solidity-and-truffle-continuous-integration-setup/gas-reports.png diff --git a/src/content/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md b/public/content/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md similarity index 100% rename from src/content/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md rename to public/content/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md diff --git a/src/content/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md b/public/content/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md similarity index 100% rename from src/content/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md rename to public/content/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md diff --git a/src/content/developers/tutorials/the-graph-fixing-web3-data-querying/graphql-query.gif b/public/content/developers/tutorials/the-graph-fixing-web3-data-querying/graphql-query.gif similarity index 100% rename from src/content/developers/tutorials/the-graph-fixing-web3-data-querying/graphql-query.gif rename to public/content/developers/tutorials/the-graph-fixing-web3-data-querying/graphql-query.gif diff --git a/src/content/developers/tutorials/the-graph-fixing-web3-data-querying/graphql.jpg b/public/content/developers/tutorials/the-graph-fixing-web3-data-querying/graphql.jpg similarity index 100% rename from src/content/developers/tutorials/the-graph-fixing-web3-data-querying/graphql.jpg rename to public/content/developers/tutorials/the-graph-fixing-web3-data-querying/graphql.jpg diff --git a/src/content/developers/tutorials/the-graph-fixing-web3-data-querying/index.md b/public/content/developers/tutorials/the-graph-fixing-web3-data-querying/index.md similarity index 100% rename from src/content/developers/tutorials/the-graph-fixing-web3-data-querying/index.md rename to public/content/developers/tutorials/the-graph-fixing-web3-data-querying/index.md diff --git a/src/content/developers/tutorials/the-graph-fixing-web3-data-querying/magic.jpg b/public/content/developers/tutorials/the-graph-fixing-web3-data-querying/magic.jpg similarity index 100% rename from src/content/developers/tutorials/the-graph-fixing-web3-data-querying/magic.jpg rename to public/content/developers/tutorials/the-graph-fixing-web3-data-querying/magic.jpg diff --git a/src/content/developers/tutorials/the-graph-fixing-web3-data-querying/not-good-enough.jpg b/public/content/developers/tutorials/the-graph-fixing-web3-data-querying/not-good-enough.jpg similarity index 100% rename from src/content/developers/tutorials/the-graph-fixing-web3-data-querying/not-good-enough.jpg rename to public/content/developers/tutorials/the-graph-fixing-web3-data-querying/not-good-enough.jpg diff --git a/src/content/developers/tutorials/the-graph-fixing-web3-data-querying/one-does-not-simply-query.jpg b/public/content/developers/tutorials/the-graph-fixing-web3-data-querying/one-does-not-simply-query.jpg similarity index 100% rename from src/content/developers/tutorials/the-graph-fixing-web3-data-querying/one-does-not-simply-query.jpg rename to public/content/developers/tutorials/the-graph-fixing-web3-data-querying/one-does-not-simply-query.jpg diff --git a/src/content/developers/tutorials/the-graph-fixing-web3-data-querying/thegraph-explorer.png b/public/content/developers/tutorials/the-graph-fixing-web3-data-querying/thegraph-explorer.png similarity index 100% rename from src/content/developers/tutorials/the-graph-fixing-web3-data-querying/thegraph-explorer.png rename to public/content/developers/tutorials/the-graph-fixing-web3-data-querying/thegraph-explorer.png diff --git a/src/content/developers/tutorials/the-graph-fixing-web3-data-querying/thegraph.png b/public/content/developers/tutorials/the-graph-fixing-web3-data-querying/thegraph.png similarity index 100% rename from src/content/developers/tutorials/the-graph-fixing-web3-data-querying/thegraph.png rename to public/content/developers/tutorials/the-graph-fixing-web3-data-querying/thegraph.png diff --git a/src/content/developers/tutorials/token-integration-checklist/index.md b/public/content/developers/tutorials/token-integration-checklist/index.md similarity index 100% rename from src/content/developers/tutorials/token-integration-checklist/index.md rename to public/content/developers/tutorials/token-integration-checklist/index.md diff --git a/src/content/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md b/public/content/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md similarity index 100% rename from src/content/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md rename to public/content/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md diff --git a/src/content/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/transfer-and-bought-events.png b/public/content/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/transfer-and-bought-events.png similarity index 100% rename from src/content/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/transfer-and-bought-events.png rename to public/content/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/transfer-and-bought-events.png diff --git a/src/content/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/transfer-and-sold-events.png b/public/content/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/transfer-and-sold-events.png similarity index 100% rename from src/content/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/transfer-and-sold-events.png rename to public/content/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/transfer-and-sold-events.png diff --git a/src/content/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md b/public/content/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md similarity index 100% rename from src/content/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md rename to public/content/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md diff --git a/src/content/developers/tutorials/uniswap-v2-annotated-code/index.md b/public/content/developers/tutorials/uniswap-v2-annotated-code/index.md similarity index 100% rename from src/content/developers/tutorials/uniswap-v2-annotated-code/index.md rename to public/content/developers/tutorials/uniswap-v2-annotated-code/index.md diff --git a/src/content/developers/tutorials/uniswap-v2-annotated-code/liquidityProviderDeposit.png b/public/content/developers/tutorials/uniswap-v2-annotated-code/liquidityProviderDeposit.png similarity index 100% rename from src/content/developers/tutorials/uniswap-v2-annotated-code/liquidityProviderDeposit.png rename to public/content/developers/tutorials/uniswap-v2-annotated-code/liquidityProviderDeposit.png diff --git a/src/content/developers/tutorials/using-websockets/index.md b/public/content/developers/tutorials/using-websockets/index.md similarity index 100% rename from src/content/developers/tutorials/using-websockets/index.md rename to public/content/developers/tutorials/using-websockets/index.md diff --git a/src/content/developers/tutorials/using-websockets/use-websockets.gif b/public/content/developers/tutorials/using-websockets/use-websockets.gif similarity index 100% rename from src/content/developers/tutorials/using-websockets/use-websockets.gif rename to public/content/developers/tutorials/using-websockets/use-websockets.gif diff --git a/public/content/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md b/public/content/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md new file mode 100644 index 00000000000..3a4362a8a3b --- /dev/null +++ b/public/content/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md @@ -0,0 +1,293 @@ +--- +title: "Waffle: Dynamic mocking and testing contract calls" +description: Advanced Waffle tutorial for using dynamic mocking and testing contract calls +author: "Daniel Izdebski" +tags: ["waffle", "smart contracts", "solidity", "testing", "mocking"] +skill: intermediate +lang: en +published: 2020-11-14 +--- + +## What is this tutorial about? {#what-is-this-tutorial-about} + +In this tutorial you will learn how to: + +- use dynamic mocking +- test interactions between smart contracts + +Assumptions: + +- you already know how to write a simple smart contract in `Solidity` +- you know your way around `JavaScript` and `TypeScript` +- you've done other `Waffle` tutorials or know a thing or two about it + +## Dynamic mocking {#dynamic-mocking} + +Why is dynamic mocking useful? Well, it allows us to write unit tests instead of integration tests. What does it mean? It means that we don't have to worry about smart contracts' dependencies, thus we can test all of them in complete isolation. Let me show you how exactly you can do it. + +### **1. Project** {#1-project} + +Before we start we need to prepare a simple node.js project: + +```bash +mkdir dynamic-mocking +cd dynamic-mocking +mkdir contracts src + +yarn init +# or if you're using npm +npm init +``` + +Let's start with adding typescript and test dependencies - mocha & chai: + +```bash +yarn add --dev @types/chai @types/mocha chai mocha ts-node typescript +# or if you're using npm +npm install @types/chai @types/mocha chai mocha ts-node typescript --save-dev +``` + +Now let's add `Waffle` and `ethers`: + +```bash +yarn add --dev ethereum-waffle ethers +# or if you're using npm +npm install ethereum-waffle ethers --save-dev +``` + +Your project structure should look like this now: + +``` +. +├── contracts +├── package.json +└── test +``` + +### **2. Smart contract** {#2-smart-contract} + +To start dynamic mocking, we need a smart contract with dependencies. Don't worry, I've got you covered! + +Here's a simple smart contract written in `Solidity` whose sole purpose is to check if we're rich. It uses ERC20 token to check if we have enough tokens. Put it in `./contracts/AmIRichAlready.sol`. + +```solidity +pragma solidity ^0.6.2; + +interface IERC20 { + function balanceOf(address account) external view returns (uint256); +} + +contract AmIRichAlready { + IERC20 private tokenContract; + uint public richness = 1000000 * 10 ** 18; + + constructor (IERC20 _tokenContract) public { + tokenContract = _tokenContract; + } + + function check() public view returns (bool) { + uint balance = tokenContract.balanceOf(msg.sender); + return balance > richness; + } +} +``` + +As we want to use dynamic mocking we don't need the whole ERC20, that's why we're using the IERC20 interface with only one function. + +It's time to build this contract! For that we will use `Waffle`. First, we're going to create a simple `waffle.json` config file which specifies compilation options. + +```json +{ + "compilerType": "solcjs", + "compilerVersion": "0.6.2", + "sourceDirectory": "./contracts", + "outputDirectory": "./build" +} +``` + +Now we're ready to build the contract with Waffle: + +```bash +npx waffle +``` + +Easy, right? In `build/` folder two files corresponding to the contract and the interface appeared. We will use them later for testing. + +### **3. Testing** {#3-testing} + +Let's create a file called `AmIRichAlready.test.ts` for the actual testing. First of all, we have to handle the imports. We will need them for later: + +```typescript +import { expect, use } from "chai" +import { Contract, utils, Wallet } from "ethers" +import { + deployContract, + deployMockContract, + MockProvider, + solidity, +} from "ethereum-waffle" +``` + +Except for JS dependencies, we need to import our built contract and interface: + +```typescript +import IERC20 from "../build/IERC20.json" +import AmIRichAlready from "../build/AmIRichAlready.json" +``` + +Waffle uses `chai` for testing. However, before we can use it, we have to inject Waffle's matchers into chai itself: + +```typescript +use(solidity) +``` + +We need to implement `beforeEach()` function that will reset the state of the contract before each test. Let's first think of what we need there. To deploy a contract we need two things: a wallet and a deployed ERC20 contract to pass it as an argument for the `AmIRichAlready` contract. + +Firstly we create a wallet: + +```typescript +const [wallet] = new MockProvider().getWallets() +``` + +Then we need to deploy an ERC20 contract. Here's the tricky part - we have only an interface. This is the part where Waffle comes to save us. Waffle has a magical `deployMockContract()` function that creates a contract using solely the _abi_ of the interface: + +```typescript +const mockERC20 = await deployMockContract(wallet, IERC20.abi) +``` + +Now with both the wallet and the deployed ERC20, we can go ahead and deploy the `AmIRichAlready` contract: + +```typescript +const contract = await deployContract(wallet, AmIRichAlready, [ + mockERC20.address, +]) +``` + +With all of that, our `beforeEach()` function is finished. So far your `AmIRichAlready.test.ts` file should look like this: + +```typescript +import { expect, use } from "chai" +import { Contract, utils, Wallet } from "ethers" +import { + deployContract, + deployMockContract, + MockProvider, + solidity, +} from "ethereum-waffle" + +import IERC20 from "../build/IERC20.json" +import AmIRichAlready from "../build/AmIRichAlready.json" + +use(solidity) + +describe("Am I Rich Already", () => { + let mockERC20: Contract + let contract: Contract + let wallet: Wallet + + beforeEach(async () => { + ;[wallet] = new MockProvider().getWallets() + mockERC20 = await deployMockContract(wallet, IERC20.abi) + contract = await deployContract(wallet, AmIRichAlready, [mockERC20.address]) + }) +}) +``` + +Let's write the first test for the `AmIRichAlready` contract. What do you think our test should be about? Yeah, you're right! We should check if we are already rich :) + +But wait a second. How will our mocked contract know what values to return? We haven't implemented any logic for the `balanceOf()` function. Again, Waffle can help here. Our mocked contract has some new fancy stuff to it now: + +```typescript +await mockERC20.mock..returns() +await mockERC20.mock..withArgs().returns() +``` + +With this knowledge we can finally write our first test: + +```typescript +it("returns false if the wallet has less than 1000000 tokens", async () => { + await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) + expect(await contract.check()).to.be.equal(false) +}) +``` + +Let's break down this test into parts: + +1. We set our mock ERC20 contract to always return balance of 999999 tokens. +2. Check if the `contract.check()` method returns `false`. + +We're ready to fire up the beast: + +![One test passing](./test-one.png) + +So the test works, but... there's still some room for improvement. The `balanceOf()` function will always return 99999. We can improve it by specifying a wallet for which the function should return something - just like a real contract: + +```typescript +it("returns false if the wallet has less than 1000001 tokens", async () => { + await mockERC20.mock.balanceOf + .withArgs(wallet.address) + .returns(utils.parseEther("999999")) + expect(await contract.check()).to.be.equal(false) +}) +``` + +So far, we've tested only the case where we're not rich enough. Let's test the opposite instead: + +```typescript +it("returns true if the wallet has at least 1000001 tokens", async () => { + await mockERC20.mock.balanceOf + .withArgs(wallet.address) + .returns(utils.parseEther("1000001")) + expect(await contract.check()).to.be.equal(true) +}) +``` + +You run the tests... + +![Two tests passing](test-two.png) + +...and here you are! Our contract seems to work as intended :) + +## Testing contract calls {#testing-contract-calls} + +Let's sum up what've done so far. We've tested the functionality of our `AmIRichAlready` contract and it seems to be working properly. That means we're done, right? Not exactly! Waffle allows us to test our contract even further. But how exactly? Well, in Waffle's arsenal there's a `calledOnContract()` and `calledOnContractWith()` matchers. They will allow us to check if our contract called the ERC20 mock contract. Here's a basic test with one of these matchers: + +```typescript +it("checks if contract called balanceOf on the ERC20 token", async () => { + await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) + await contract.check() + expect("balanceOf").to.be.calledOnContract(mockERC20) +}) +``` + +We can go even further and improve this test with the other matcher I told you about: + +```typescript +it("checks if contract called balanceOf with certain wallet on the ERC20 token", async () => { + await mockERC20.mock.balanceOf + .withArgs(wallet.address) + .returns(utils.parseEther("999999")) + await contract.check() + expect("balanceOf").to.be.calledOnContractWith(mockERC20, [wallet.address]) +}) +``` + +Let's check if the tests are correct: + +![Three tests passing](test-three.png) + +Great, all tests are green. + +Testing contract calls with Waffle is super easy. And here's the best part. These matchers work with both normal and mocked contracts! It is because Waffle records and filters EVM calls rather than inject code, like it is the case of popular testing libraries for other technologies. + +## The Finish Line {#the-finish-line} + +Congrats! Now you know how to use Waffle to test contract calls and mock contracts dynamically. There are far more interesting features to discover. I recommend diving into Waffle's documentation. + +Waffle's documentation is available [here](https://ethereum-waffle.readthedocs.io/). + +Source code for this tutorial can be found [here](https://github.com/EthWorks/Waffle/tree/master/examples/dynamic-mocking-and-testing-calls). + +Tutorials you may also be interested in: + +- [Testing smart contracts with Waffle](/developers/tutorials/testing-smart-contract-with-waffle/) diff --git a/src/content/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/test-one.png b/public/content/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/test-one.png similarity index 100% rename from src/content/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/test-one.png rename to public/content/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/test-one.png diff --git a/src/content/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/test-three.png b/public/content/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/test-three.png similarity index 100% rename from src/content/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/test-three.png rename to public/content/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/test-three.png diff --git a/src/content/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/test-two.png b/public/content/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/test-two.png similarity index 100% rename from src/content/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/test-two.png rename to public/content/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/test-two.png diff --git a/src/content/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md b/public/content/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md similarity index 100% rename from src/content/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md rename to public/content/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md diff --git a/src/content/developers/tutorials/waffle-test-simple-smart-contract/index.md b/public/content/developers/tutorials/waffle-test-simple-smart-contract/index.md similarity index 100% rename from src/content/developers/tutorials/waffle-test-simple-smart-contract/index.md rename to public/content/developers/tutorials/waffle-test-simple-smart-contract/index.md diff --git a/src/content/developers/tutorials/yellow-paper-evm/index.md b/public/content/developers/tutorials/yellow-paper-evm/index.md similarity index 100% rename from src/content/developers/tutorials/yellow-paper-evm/index.md rename to public/content/developers/tutorials/yellow-paper-evm/index.md diff --git a/src/content/developers/tutorials/yellow-paper-evm/yellow-paper-berlin.pdf b/public/content/developers/tutorials/yellow-paper-evm/yellow-paper-berlin.pdf similarity index 100% rename from src/content/developers/tutorials/yellow-paper-evm/yellow-paper-berlin.pdf rename to public/content/developers/tutorials/yellow-paper-evm/yellow-paper-berlin.pdf diff --git a/src/content/eips/index.md b/public/content/eips/index.md similarity index 100% rename from src/content/eips/index.md rename to public/content/eips/index.md diff --git a/src/content/energy-consumption/energy.png b/public/content/energy-consumption/energy.png similarity index 100% rename from src/content/energy-consumption/energy.png rename to public/content/energy-consumption/energy.png diff --git a/src/content/energy-consumption/energy_consumption_pre_post_merge.png b/public/content/energy-consumption/energy_consumption_pre_post_merge.png similarity index 100% rename from src/content/energy-consumption/energy_consumption_pre_post_merge.png rename to public/content/energy-consumption/energy_consumption_pre_post_merge.png diff --git a/src/content/energy-consumption/energy_use_per_transaction.png b/public/content/energy-consumption/energy_use_per_transaction.png similarity index 100% rename from src/content/energy-consumption/energy_use_per_transaction.png rename to public/content/energy-consumption/energy_use_per_transaction.png diff --git a/src/content/energy-consumption/index.md b/public/content/energy-consumption/index.md similarity index 100% rename from src/content/energy-consumption/index.md rename to public/content/energy-consumption/index.md diff --git a/src/content/enterprise/index.md b/public/content/enterprise/index.md similarity index 100% rename from src/content/enterprise/index.md rename to public/content/enterprise/index.md diff --git a/src/content/enterprise/private-ethereum/index.md b/public/content/enterprise/private-ethereum/index.md similarity index 100% rename from src/content/enterprise/private-ethereum/index.md rename to public/content/enterprise/private-ethereum/index.md diff --git a/src/content/foundation/index.md b/public/content/foundation/index.md similarity index 100% rename from src/content/foundation/index.md rename to public/content/foundation/index.md diff --git a/src/content/glossary/index.md b/public/content/glossary/index.md similarity index 100% rename from src/content/glossary/index.md rename to public/content/glossary/index.md diff --git a/src/content/governance/index.md b/public/content/governance/index.md similarity index 100% rename from src/content/governance/index.md rename to public/content/governance/index.md diff --git a/src/content/guides/how-to-create-an-ethereum-account/index.md b/public/content/guides/how-to-create-an-ethereum-account/index.md similarity index 100% rename from src/content/guides/how-to-create-an-ethereum-account/index.md rename to public/content/guides/how-to-create-an-ethereum-account/index.md diff --git a/src/content/guides/how-to-create-an-ethereum-account/wallet-box.png b/public/content/guides/how-to-create-an-ethereum-account/wallet-box.png similarity index 100% rename from src/content/guides/how-to-create-an-ethereum-account/wallet-box.png rename to public/content/guides/how-to-create-an-ethereum-account/wallet-box.png diff --git a/src/content/guides/how-to-id-scam-tokens/etherscan-scam.png b/public/content/guides/how-to-id-scam-tokens/etherscan-scam.png similarity index 100% rename from src/content/guides/how-to-id-scam-tokens/etherscan-scam.png rename to public/content/guides/how-to-id-scam-tokens/etherscan-scam.png diff --git a/src/content/guides/how-to-id-scam-tokens/index.md b/public/content/guides/how-to-id-scam-tokens/index.md similarity index 100% rename from src/content/guides/how-to-id-scam-tokens/index.md rename to public/content/guides/how-to-id-scam-tokens/index.md diff --git a/src/content/guides/how-to-id-scam-tokens/uniswap-real.png b/public/content/guides/how-to-id-scam-tokens/uniswap-real.png similarity index 100% rename from src/content/guides/how-to-id-scam-tokens/uniswap-real.png rename to public/content/guides/how-to-id-scam-tokens/uniswap-real.png diff --git a/src/content/guides/how-to-id-scam-tokens/uniswap-scam.png b/public/content/guides/how-to-id-scam-tokens/uniswap-scam.png similarity index 100% rename from src/content/guides/how-to-id-scam-tokens/uniswap-scam.png rename to public/content/guides/how-to-id-scam-tokens/uniswap-scam.png diff --git a/src/content/guides/how-to-revoke-token-access/index.md b/public/content/guides/how-to-revoke-token-access/index.md similarity index 100% rename from src/content/guides/how-to-revoke-token-access/index.md rename to public/content/guides/how-to-revoke-token-access/index.md diff --git a/src/content/guides/how-to-swap-tokens/index.md b/public/content/guides/how-to-swap-tokens/index.md similarity index 100% rename from src/content/guides/how-to-swap-tokens/index.md rename to public/content/guides/how-to-swap-tokens/index.md diff --git a/src/content/guides/how-to-swap-tokens/swap1.png b/public/content/guides/how-to-swap-tokens/swap1.png similarity index 100% rename from src/content/guides/how-to-swap-tokens/swap1.png rename to public/content/guides/how-to-swap-tokens/swap1.png diff --git a/src/content/guides/how-to-swap-tokens/swap2.png b/public/content/guides/how-to-swap-tokens/swap2.png similarity index 100% rename from src/content/guides/how-to-swap-tokens/swap2.png rename to public/content/guides/how-to-swap-tokens/swap2.png diff --git a/src/content/guides/how-to-swap-tokens/swap3.png b/public/content/guides/how-to-swap-tokens/swap3.png similarity index 100% rename from src/content/guides/how-to-swap-tokens/swap3.png rename to public/content/guides/how-to-swap-tokens/swap3.png diff --git a/src/content/guides/how-to-use-a-bridge/bridge1.png b/public/content/guides/how-to-use-a-bridge/bridge1.png similarity index 100% rename from src/content/guides/how-to-use-a-bridge/bridge1.png rename to public/content/guides/how-to-use-a-bridge/bridge1.png diff --git a/src/content/guides/how-to-use-a-bridge/bridge2.png b/public/content/guides/how-to-use-a-bridge/bridge2.png similarity index 100% rename from src/content/guides/how-to-use-a-bridge/bridge2.png rename to public/content/guides/how-to-use-a-bridge/bridge2.png diff --git a/src/content/guides/how-to-use-a-bridge/bridge3.png b/public/content/guides/how-to-use-a-bridge/bridge3.png similarity index 100% rename from src/content/guides/how-to-use-a-bridge/bridge3.png rename to public/content/guides/how-to-use-a-bridge/bridge3.png diff --git a/src/content/guides/how-to-use-a-bridge/index.md b/public/content/guides/how-to-use-a-bridge/index.md similarity index 100% rename from src/content/guides/how-to-use-a-bridge/index.md rename to public/content/guides/how-to-use-a-bridge/index.md diff --git a/src/content/guides/how-to-use-a-wallet/connect1.png b/public/content/guides/how-to-use-a-wallet/connect1.png similarity index 100% rename from src/content/guides/how-to-use-a-wallet/connect1.png rename to public/content/guides/how-to-use-a-wallet/connect1.png diff --git a/src/content/guides/how-to-use-a-wallet/connect2.png b/public/content/guides/how-to-use-a-wallet/connect2.png similarity index 100% rename from src/content/guides/how-to-use-a-wallet/connect2.png rename to public/content/guides/how-to-use-a-wallet/connect2.png diff --git a/src/content/guides/how-to-use-a-wallet/index.md b/public/content/guides/how-to-use-a-wallet/index.md similarity index 100% rename from src/content/guides/how-to-use-a-wallet/index.md rename to public/content/guides/how-to-use-a-wallet/index.md diff --git a/src/content/guides/how-to-use-a-wallet/send.png b/public/content/guides/how-to-use-a-wallet/send.png similarity index 100% rename from src/content/guides/how-to-use-a-wallet/send.png rename to public/content/guides/how-to-use-a-wallet/send.png diff --git a/src/content/guides/index.md b/public/content/guides/index.md similarity index 100% rename from src/content/guides/index.md rename to public/content/guides/index.md diff --git a/public/content/history/index.md b/public/content/history/index.md new file mode 100644 index 00000000000..353277ebc52 --- /dev/null +++ b/public/content/history/index.md @@ -0,0 +1,517 @@ +--- +title: History and Forks of Ethereum +description: A history of the Ethereum blockchain including major milestones, releases, and forks. +lang: en +sidebarDepth: 1 +--- + +# The history of Ethereum {#the-history-of-ethereum} + +A timeline of all the major milestones, forks, and updates to the Ethereum blockchain. + + + +Forks are when major technical upgrades or changes need to be made to the network – they typically stem from Ethereum Improvement Proposals (EIPs) and change the "rules" of the protocol. + +When upgrades are needed in traditional, centrally-controlled software, the company will just publish a new version for the end-user. Blockchains work differently because there is no central ownership. Ethereum clients must update their software to implement the new fork rules. Plus block creators (miners in a proof-of-work world, validators in a proof-of-stake world) and nodes must create blocks and validate against the new rules. More on consensus mechanisms + +These rule changes may create a temporary split in the network. New blocks could be produced according to the new rules or the old ones. Forks are usually agreed upon ahead of time so that clients adopt the changes in unison and the fork with the upgrades becomes the main chain. However, in rare cases, disagreements over forks can cause the network to permanently split – most notably the creation of Ethereum Classic with the DAO fork. + + + +Skip straight to information about some of the particularly important past upgrades: [The Beacon Chain](/roadmap/beacon-chain/); [The Merge](/roadmap/merge/); and [EIP-1559](#london) + +Looking for future protocol upgrades? [Learn about upcoming upgrades on the Ethereum roadmap](/roadmap/). + + + +## 2023 {#2023} + +### Shanghai {#shanghai} + + + +#### Summary {#shanghai-summary} + +The Shanghai upgrade brought staking withdrawals to the execution layer. In tandem with the Capella upgrade, this enabled blocks to accept withdrawal operations, which allows stakers to withdraw their ETH from the Beacon Chain to the execution layer. + + + +
    +
  • EIP-3651Starts the COINBASE address warm
  • +
  • EIP-3855New PUSH0 instruction
  • +
  • EIP-3860Limit and meter initcode
  • +
  • EIP-4895Beacon chain push withdrawals as operations
  • +
  • EIP-6049 - Deprecate SELFDESTRUCT
  • +
+ +
+ +- [Read the Shanghai upgrade specification](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/shanghai.md) + +--- + +### Capella {#capella} + + + +#### Summary {#capella-summary} + +The Capella upgrade was the third major upgrade to the consensus layer (Beacon Chain) and enabled staking withdrawals. Capella occurred synchronously with the execution layer upgrade, Shanghai, and enabled staking withdrawal functionality. + +This consensus layer upgrade brought the ability for stakers who did not provide withdrawal credentials with their initial deposit to do so, thereby enabling withdrawals. + +The upgrade also provided automatic account sweeping functionality, which continuously processes validator accounts for any available rewards payments or full withdrawals. + +- [More on staking withdrawals](/staking/withdrawals/). +- [Read the Capella upgrade specifications](https://github.com/ethereum/consensus-specs/blob/dev/specs/capella/) + + + +## 2022 {#2022} + +### Paris (The Merge) {#paris} + + + +#### Summary {#paris-summary} + +The Paris upgrade was triggered by the proof-of-work blockchain passing a [terminal total difficulty](/glossary/#terminal-total-difficulty) of 58750000000000000000000. This happened at block 15537393 on 15th September 2022, triggering the Paris upgrade the next block. Paris was [The Merge](/roadmap/merge/) transition - its major feature was switching off the [proof-of-work](/developers/docs/consensus-mechanisms/pow) mining algorithm and associated consensus logic and switching on [proof-of-stake](/developers/docs/consensus-mechanisms/pos) instead. Paris itself was an upgrade to the [execution clients](/developers/docs/nodes-and-clients/#execution-clients) (equivalent to Bellatrix on the consensus layer) that enabled them to take instruction from their connected [consensus clients](/developers/docs/nodes-and-clients/#consensus-clients). This required a new set of internal API methods, collectively known as the [Engine API](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md), to be activated. This was arguably the most significant upgrade in Ethereum history since [Homestead](#homestead)! + +- [Read the Paris upgrade specification](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/paris.md) + + + +
    +
  • EIP-3675Upgrade consensus to Proof-of-Stake
  • +
  • EIP-4399Supplant DIFFICULTY opcode with PREVRANDAO
  • +
+ +
+ +--- + +### Bellatrix {#bellatrix} + + + +#### Summary {#bellatrix-summary} + +The Bellatrix upgrade was the second scheduled upgrade for the [Beacon Chain](/roadmap/beacon-chain), preparing the chain for [The Merge](/roadmap/merge/). It brings validator penalties to their full values for inactivity and slashable offenses. Bellatrix also includes an update to the fork choice rules to prepare the chain for The Merge and the transition from the last proof-of-work block to the first proof-of-stake block. This includes making consensus clients aware of the [terminal total difficulty](/glossary/#terminal-total-difficulty) of 58750000000000000000000. + +- [Read the Bellatrix upgrade specification](https://github.com/ethereum/consensus-specs/tree/dev/specs/bellatrix) + +--- + +### Gray Glacier {#gray-glacier} + + + +#### Summary {#gray-glacier-summary} + +The Gray Glacier network upgrade pushed back the [difficulty bomb](/glossary/#difficulty-bomb) by three months. This is the only change introduced in this upgrade, and is similar in nature to the [Arrow Glacier](#arrow-glacier) and [Muir Glacier](#muir-glacier) upgrades. Similar changes have been performed on the [Byzantium](#byzantium), [Constantinople](#constantinople) and [London](#london) network upgrades. + +- [EF Blog - Gray Glacier Upgrade Announcement](https://blog.ethereum.org/2022/06/16/gray-glacier-announcement/) + + + +
    +
  • EIP-5133delays the difficulty bomb until September 2022
  • +
+ +
+ + + +## 2021 {#2021} + +### Arrow Glacier {#arrow-glacier} + + + +#### Summary {#arrow-glacier-summary} + +The Arrow Glacier network upgrade pushed back the [difficulty bomb](/glossary/#difficulty-bomb) by several months. This is the only change introduced in this upgrade, and is similar in nature to the [Muir Glacier](#muir-glacier) upgrade. Similar changes have been performed on the [Byzantium](#byzantium), [Constantinople](#constantinople) and [London](#london) network upgrades. + +- [EF Blog - Arrow Glacier Upgrade Announcement](https://blog.ethereum.org/2021/11/10/arrow-glacier-announcement/) +- [Ethereum Cat Herders - Ethereum Arrow Glacier Upgrade](https://medium.com/ethereum-cat-herders/ethereum-arrow-glacier-upgrade-e8d20fa4c002) + + + +
    +
  • EIP-4345delays the difficulty bomb until June 2022
  • +
+ +
+ +--- + +### Altair {#altair} + + + +#### Summary {#altair-summary} + +The Altair upgrade was the first scheduled upgrade for the [Beacon Chain](/roadmap/beacon-chain). It added support for "sync committees"—enabling light clients, and increased validator inactivity and slashing penalties as development progressed towards The Merge. + +- [Read the Altair upgrade specification](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) + +#### Fun fact! {#altair-fun-fact} + +Altair was the first major network upgrade that had an exact rollout time. Every upgrade prior had been based on a declared block number on the proof-of-work chain, where block times vary. The Beacon Chain does not require solving for proof-of-work, and instead works on a time-based epoch system consisting of 32 twelve-second "slots" of time where validators can propose blocks. This is why we knew exactly when we would hit epoch 74,240 and Altair became live! + +- [Block time](/developers/docs/blocks/#block-time) + +--- + +### London {#london} + + + +#### Summary {#london-summary} + +The London upgrade introduced [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559), which reformed the transaction fee market, along with changes to how gas refunds are handled and the [Ice Age](/glossary/#ice-age) schedule. + +- [Are you a dapp developer? Be sure to upgrade your libraries and tooling.](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/london-ecosystem-readiness.md) +- [Read the Ethereum Foundation announcement](https://blog.ethereum.org/2021/07/15/london-mainnet-announcement/) +- [Read the Ethereum Cat Herder's explainer](https://medium.com/ethereum-cat-herders/london-upgrade-overview-8eccb0041b41) + + + +
    +
  • EIP-1559improves the transaction fee market
  • +
  • EIP-3198returns the BASEFEE from a block
  • +
  • EIP-3529 - reduces gas refunds for EVM operations
  • +
  • EIP-3541 - prevents deploying contracts starting with 0xEF
  • +
  • EIP-3554delays the Ice Age until December 2021
  • +
+ +
+ +--- + +### Berlin {#berlin} + + + +#### Summary {#berlin-summary} + +The Berlin upgrade optimized gas cost for certain EVM actions, and increases support for multiple transaction types. + +- [Read the Ethereum Foundation announcement](https://blog.ethereum.org/2021/03/08/ethereum-berlin-upgrade-announcement/) +- [Read the Ethereum Cat Herder's explainer](https://medium.com/ethereum-cat-herders/the-berlin-upgrade-overview-2f7ad710eb80) + + + +
    +
  • EIP-2565lowers ModExp gas cost
  • +
  • EIP-2718enables easier support for multiple transaction types
  • +
  • EIP-2929gas cost increases for state access opcodes
  • +
  • EIP-2930adds optional access lists
  • +
+ +
+ + + +## 2020 {#2020} + +### Beacon Chain genesis {#beacon-chain-genesis} + + + +#### Summary {#beacon-chain-genesis-summary} + +The [Beacon Chain](/roadmap/beacon-chain/) needed 16384 deposits of 32 staked ETH to ship securely. This happened on November 27, meaning the Beacon Chain started producing blocks on December 1, 2020. This is an important first step in achieving the [Ethereum vision](/roadmap/vision/). + +[Read the Ethereum Foundation announcement](https://blog.ethereum.org/2020/11/27/eth2-quick-update-no-21/) + + + The Beacon Chain + + +--- + +### Staking deposit contract deployed {#staking-deposit-contract} + + + +#### Summary {#deposit-contract-summary} + +The staking deposit contract introduced [staking](/glossary/#staking) to the Ethereum ecosystem. Although a [Mainnet](/glossary/#mainnet) contract, it had a direct impact on the timeline for launching the [Beacon Chain](/roadmap/beacon-chain/), an important [Ethereum upgrade](/roadmap/). + +[Read the Ethereum Foundation announcement](https://blog.ethereum.org/2020/11/04/eth2-quick-update-no-19/) + + + Staking + + +--- + +### Muir Glacier {#muir-glacier} + + + +#### Summary {#muir-glacier-summary} + +The Muir Glacier fork introduced a delay to the [difficulty bomb](/glossary/#difficulty-bomb). Increases in block difficulty of the [proof-of-work](/developers/docs/consensus-mechanisms/pow/) consensus mechanism threatened to degrade the usability of Ethereum by increasing wait times for sending transactions and using dapps. + +- [Read the Ethereum Foundation announcement](https://blog.ethereum.org/2019/12/23/ethereum-muir-glacier-upgrade-announcement/) +- [Read the Ethereum Cat Herder's explainer](https://medium.com/ethereum-cat-herders/ethereum-muir-glacier-upgrade-89b8cea5a210) + + + +
    +
  • EIP-2384delays the difficulty bomb for another 4,000,000 blocks, or ~611 days.
  • +
+ +
+ + + +## 2019 {#2019} + +### Istanbul {#istanbul} + + + +#### Summary {#istanbul-summary} + +The Istanbul fork: + +- Optimised the [gas](/glossary/#gas) cost of certain actions in the [EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine). +- Improved denial-of-service attack resilience. +- Made [Layer 2 scaling](/developers/docs/scaling/#layer-2-scaling) solutions based on SNARKs and STARKs more performant. +- Enabled Ethereum and Zcash to interoperate. +- Allowed contracts to introduce more creative functions. + +[Read the Ethereum Foundation announcement](https://blog.ethereum.org/2019/11/20/ethereum-istanbul-upgrade-announcement/) + + + +
    +
  • EIP-152allow Ethereum to work with privacy-preserving currency like Zcash.
  • +
  • EIP-1108cheaper cryptography to improve gas costs.
  • +
  • EIP-1344protects Ethereum against replay attacks by adding CHAINID opcode.
  • +
  • EIP-1884optimising opcode gas prices based on consumption.
  • +
  • EIP-2028reduces the cost of CallData to allow more data in blocks – good for Layer 2 scaling.
  • +
  • EIP-2200other opcode gas price alterations.
  • +
+ +
+ +--- + +### Constantinople {#constantinople} + + + +#### Summary {#constantinople-summary} + +The Constantinople fork: + +- Reduced block [mining](/developers/docs/consensus-mechanisms/pow/mining/) rewards from 3 to 2 ETH. +- Ensured the blockchain didn't freeze before [proof-of-stake was implemented](#beacon-chain-genesis). +- Optimised the [gas](/glossary/#gas) cost of certain actions in the [EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine). +- Added the ability to interact with addresses that haven't been created yet. + +[Read the Ethereum Foundation announcement](https://blog.ethereum.org/2019/02/22/ethereum-constantinople-st-petersburg-upgrade-announcement/) + + + +
    +
  • EIP-145optimises cost of certain on-chain actions.
  • +
  • EIP-1014allows you to interact with addresses that have yet to be created.
  • +
  • EIP-1052optimises cost of certain on-chain actions.
  • +
  • EIP-1234makes sure the blockchain doesn't freeze before proof-of-stake and reduces block reward from 3 to 2 ETH.
  • +
+ +
+ + + +## 2017 {#2017} + +### Byzantium {#byzantium} + + + +#### Summary {#byzantium-summary} + +The Byzantium fork: + +- Reduced block [mining](/developers/docs/consensus-mechanisms/pow/mining/) rewards from 5 to 3 ETH. +- Delayed the [difficulty bomb](/glossary/#difficulty-bomb) by a year. +- Added ability to make non-state-changing calls to other contracts. +- Added certain cryptography methods to allow for [layer 2 scaling](/developers/docs/scaling/#layer-2-scaling). + +[Read the Ethereum Foundation announcement](https://blog.ethereum.org/2017/10/12/byzantium-hf-announcement/) + + + +
    +
  • EIP-140adds REVERT opcode.
  • +
  • EIP-658status field added to transaction receipts to indicate success or failure.
  • +
  • EIP-196adds elliptic curve and scalar multiplication to allow for ZK-Snarks.
  • +
  • EIP-197adds elliptic curve and scalar multiplication to allow for ZK-Snarks.
  • +
  • EIP-198enables RSA signature verification.
  • +
  • EIP-211adds support for variable length return values.
  • +
  • EIP-214adds STATICCALL opcode, allowing non-state-changing calls to other contracts.
  • +
  • EIP-100changes difficulty adjustment formula.
  • +
  • EIP-649delays difficulty bomb by 1 year and reduces block reward from 5 to 3 ETH.
  • +
+ +
+ + + +## 2016 {#2016} + +### Spurious Dragon {#spurious-dragon} + + + +#### Summary {#spurious-dragon-summary} + +The Spurious Dragon fork was the second response to the denial of service (DoS) attacks on the network (September/October 2016) including: + +- tuning opcode pricing to prevent future attacks on the network. +- enabling “debloat” of the blockchain state. +- adding replay attack protection. + +[Read the Ethereum Foundation announcement](https://blog.ethereum.org/2016/11/18/hard-fork-no-4-spurious-dragon/) + + + +
    +
  • EIP-155prevents transactions from one Ethereum chain from being rebroadcasted on an alternative chain, for example a testnet transaction being replayed on the main Ethereum chain.
  • +
  • EIP-160adjusts prices of EXP opcode – makes it more difficult to slow down the network via computationally expensive contract operations.
  • +
  • EIP-161allows for removal of empty accounts added via the DOS attacks.
  • +
  • EIP-170changes the maximum code size that a contract on the blockchain can have – to 24576 bytes.
  • +
+ +
+ +--- + +### Tangerine whistle {#tangerine-whistle} + + + +#### Summary {#tangerine-whistle-summary} + +The Tangerine Whistle fork was the first response to the denial of service (DoS) attacks on the network (September/October 2016) including: + +- addressing urgent network health issues concerning underpriced operation codes. + +[Read the Ethereum Foundation announcement](https://blog.ethereum.org/2016/10/18/faq-upcoming-ethereum-hard-fork/) + + + +
    +
  • EIP-150increases gas costs of opcodes that can be used in spam attacks.
  • +
  • EIP-158reduces state size by removing a large number of empty accounts that were put in the state at very low cost due to flaws in earlier versions of the Ethereum protocol.
  • +
+ +
+ +--- + +### DAO fork {#dao-fork} + + + +#### Summary {#dao-fork-summary} + +The DAO fork was in response to the [2016 DAO attack](https://www.coindesk.com/learn/understanding-the-dao-attack/) where an insecure [DAO](/glossary/#dao) contract was drained of over 3.6 million ETH in a hack. The fork moved the funds from the faulty contract to a [new contract](https://etherscan.io/address/0xbf4ed7b27f1d666546e30d74d50d173d20bca754) with a single function: withdraw. Anyone who lost funds could withdraw 1 ETH for every 100 DAO tokens in their wallets. + +This course of action was voted on by the Ethereum community. Any ETH holder was able to vote via a transaction on [a voting platform](https://web.archive.org/web/20170620030820/http://v1.carbonvote.com/). The decision to fork reached over 85% of the votes. + +Some miners refused to fork because the DAO incident wasn't a defect in the protocol. They went on to form [Ethereum Classic](https://ethereumclassic.org/). + +[Read the Ethereum Foundation announcement](https://blog.ethereum.org/2016/07/20/hard-fork-completed/) + +--- + +### Homestead {#homestead} + + + +#### Summary {#homestead-summary} + +The Homestead fork that looked to the future. It included several protocol changes and a networking change that gave Ethereum the ability to do further network upgrades. + +[Read the Ethereum Foundation announcement](https://blog.ethereum.org/2016/02/29/homestead-release/) + + + +
    +
  • EIP-2makes edits to contract creation process.
  • +
  • EIP-7adds new opcode: DELEGATECALL
  • +
  • EIP-8introduces devp2p forward compatibility requirements
  • +
+ +
+ + + +## 2015 {#2015} + +### Frontier thawing {#frontier-thawing} + + + +#### Summary {#frontier-thawing-summary} + +The frontier thawing fork lifted the 5,000 [gas](/glossary/#gas) limit per [block](/glossary/#block) and set the default gas price to 51 [gwei](/glossary/#gwei). This allowed for transactions – transactions require 21,000 gas. The [difficulty bomb](/glossary/#difficulty-bomb) was introduced to ensure a future hard-fork to [proof-of-stake](/glossary/#pos). + +- [Read the Ethereum Foundation announcement](https://blog.ethereum.org/2015/08/04/the-thawing-frontier/) +- [Read the Ethereum Protocol Update 1](https://blog.ethereum.org/2015/08/04/ethereum-protocol-update-1/) + +--- + +### Frontier {#frontier} + + + +#### Summary {#frontier-summary} + +Frontier was a live, but barebone implementation of the Ethereum project. It followed the successful Olympic testing phase. It was intended for technical users, specifically developers. [Blocks](/glossary/#block) had a [gas](/glossary/#gas) limit of 5,000. This ‘thawing’ period enabled miners to start their operations and for early adopters to install their clients without having to ‘rush’. + +[Read the Ethereum Foundation announcement](https://blog.ethereum.org/2015/07/22/frontier-is-coming-what-to-expect-and-how-to-prepare/) + + + +## 2014 {#2014} + +### Ether sale {#ether-sale} + + + +Ether officially went on sale for 42 days. You could buy it with BTC. + +[Read the Ethereum Foundation announcement](https://blog.ethereum.org/2014/07/22/launching-the-ether-sale/) + +--- + +### Yellowpaper released {#yellowpaper} + + + +The Yellow Paper, authored by Dr. Gavin Wood, is a technical definition of the Ethereum protocol. + +[View the Yellow Paper](https://github.com/ethereum/yellowpaper) + + + +## 2013 {#2013} + +### Whitepaper released {#whitepaper} + + + +The introductory paper, published in 2013 by Vitalik Buterin, the founder of Ethereum, before the project's launch in 2015. + + + Whitepaper + diff --git a/public/content/nft/index.md b/public/content/nft/index.md new file mode 100644 index 00000000000..c83c7416c01 --- /dev/null +++ b/public/content/nft/index.md @@ -0,0 +1,102 @@ +--- +title: Non-fungible tokens (NFT) +description: An overview of NFTs on Ethereum +lang: en +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: An Eth logo being displayed via hologram. +summaryPoint1: A way to represent anything unique as an Ethereum-based asset. +summaryPoint2: NFTs are giving more power to content creators than ever before. +summaryPoint3: Powered by smart contracts on the Ethereum blockchain. +--- + +## What are NFTs? {#what-are-nfts} + +NFTs are tokens that are individually unique. Each NFT has different properties (non-fungible) and is provably scarce. This is different from tokens such as ETH or other Ethereum based tokens like USDC where every token is identical and has the same properties ('fungible'). You don't care which specific dollar bill (or ETH) you have in your wallet, because they are all identical and worth the same. However, you _do_ care which specific NFT you own, because they all have individual properties that distinguish them from others ('non-fungible'). + +The uniqueness of each NFT enables tokenization of things like art, collectibles, or even real estate, where one specific unique NFT represents some specific unique real world or digital item. Ownership of an asset is publicly verifiable on Ethereum blockchain. + + + +## The internet of assets {#internet-of-assets} + +NFTs and Ethereum solve some of the problems that exist on the internet today. As everything becomes more digital, there's a need to replicate the properties of physical items like scarcity, uniqueness, and proof of ownership in a way that isn't controlled by a central organization. For example, with NFTs, you can own a music mp3 file across all Ethereum based apps and not be bound to one company's specific music app like Spotify or Apple Music. You can own a social media handle that you can sell or swap, but can't be arbitrarily taken away from you by a platform provider. + +Here's how an internet of NFTs compared to the internet most of us use today looks... + +### A comparison {#nft-comparison} + +| An NFT internet | The internet today | +| ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | +| You own your assets! Only you can sell or swap them. | You rent an asset from some organization and it can be taken away from you. | +| NFTs are digitally unique, no two NFTs are the same. | A copy of an entity often cannot be distinguished from the original. | +| Ownership of an NFT is stored on the blockchain for anyone to verify. | Ownership records of digital items are stored on servers controlled by institutions – you must take their word for it. | +| NFTs are smart contracts on Ethereum. This means they can easily be used in other smart contracts and apps on Ethereum! | Companies with digital items usually require their own "walled garden" infrastructure. | +| Content creators can sell their work anywhere and can access a global market. | Creators rely on the infrastructure and distribution of the platforms they use. These are often subject to terms of use and geographical restrictions. | +| NFT creators can retain ownership rights over their own work, and program royalties directly into the NFT contract. | Platforms, such as music streaming services, retain the majority of profits from sales. | + +## What are NFTs used for? {#nft-use-cases} + +NFTs are used for many things, including: + +- proving that you attended an event +- certify that you completed a course +- ownable items for games +- digital art +- tokenizing real-world assets +- proving your online identity +- gating access to content +- ticketing +- decentralized internet domain names +- collateral in DeFi + +Maybe you are an artist that wants to share their work using NFTs, without losing control and sacrificing your profits to intermediaries. You can create a new contract and specify the number of NFTs, their properties and a link to some specific artwork. As the artist, you can program into the smart contract the royalties you should be paid (e.g. transfer 5% of the sale price to the contract owner each time an NFT is transferred). You can also always prove that you created the NFTs because you own the wallet that deployed the contract. Your buyers can easily prove that they own an authentic NFT from your collection because their wallet address is associated with a token in your smart contract. They can use it across the Ethereum ecosystem, confident in its authenticity. + +Or consider a ticket to a sporting event. Just as an organizer of an event can choose how many tickets to sell, the creator of an NFT can decide how many replicas exist. Sometimes these are exact replicas, such as 5000 General Admission tickets. Sometimes several are minted that are very similar, but each slightly different, such as a ticket with an assigned seat. These can be bought and sold peer-to-peer without paying ticket handlers and the buyer always with assurance of the ticket authenticity by checking the contract address. + +On ethereum.org, NFTs are used to demonstrate that people have meaningfully contributed to our Github repository (programmed the website, written or modified an article...), translated our content, or attended our community calls, and we've even got our own NFT domain name. If you contribute to ethereum.org, you can claim a POAP NFT. Some crypto meetups have used POAPs as tickets. [More on contributing](/contributing/#poap). + +![ethereum.org POAP](./poap.png) + +This website also has an alternative domain name powered by NFTs, **ethereum.eth**. Our `.org` address is centrally managed by a domain name system (DNS) provider, whereas ethereum`.eth` is registered on Ethereum via the Ethereum Name Service (ENS). And it's owned and managed by us. [Check our ENS record](https://app.ens.domains/name/ethereum.eth) + +[More on ENS](https://app.ens.domains) + + + +## How do NFTs work? {#how-nfts-work} + +NFTs, like any digital items on the Ethereum blockchain, are created through a special Ethereum based computer program called a "smart contract." These contracts follow certain rules, like the ERC-721 or ERC-1155 standards, which determine what the contract can do. + +The NFT smart contract can do a few key things: + +- **Create NFTs:** It can make new NFTs. +- **Assign Ownership:** It keeps track of who owns which NFTs by linking them to specific Ethereum addresses. +- **Give Each NFT an ID:** Each NFT has a number that makes it unique. Additionally, there's usually some information (metadata) attached to it, describing what the NFT represents. + +When someone "creates" or "mints" an NFT, they're basically telling the smart contract to give them ownership of a particular NFT. This information is securely and publicly stored in the blockchain. + +Furthermore, the creator of the contract can add extra rules. They might limit how many of a certain NFT can be made or decide that they should get a small royalty fee whenever the NFT changes hands. + +### NFT security {#nft-security} + +Ethereum's security comes from proof-of-stake. The system is designed to economically disincentivize malicious actions, making Ethereum tamper-proof. This is what makes NFTs possible. Once the block containing your NFT transaction becomes finalized it would cost an attacker millions of ETH to change it. Anyone running Ethereum software would immediately be able to detect dishonest tampering with an NFT, and the bad actor would be economically penalized and ejected. + +Security issues relating to NFTs are most often related to phishing scams, smart contract vulnerabilities or user errors (such as inadvertently exposing private keys), making good wallet security critical for NFT owners. + + + More on security + + +## Further reading {#further-reading} + +- [A beginner's guide to NFTs](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, January 2020_ +- [EtherscanNFT tracker](https://etherscan.io/nft-top-contracts) +- [ERC-721 token standard](/developers/docs/standards/tokens/erc-721/) +- [ERC-1155 token standard](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/src/content/nft/poap.png b/public/content/nft/poap.png similarity index 100% rename from src/content/nft/poap.png rename to public/content/nft/poap.png diff --git a/src/content/privacy-policy/index.md b/public/content/privacy-policy/index.md similarity index 100% rename from src/content/privacy-policy/index.md rename to public/content/privacy-policy/index.md diff --git a/public/content/refi/index.md b/public/content/refi/index.md new file mode 100755 index 00000000000..53fb4f50831 --- /dev/null +++ b/public/content/refi/index.md @@ -0,0 +1,79 @@ +--- +title: Regenerative Finance (ReFi) +description: An overview of ReFi and its current use cases. +lang: en +template: use-cases +emoji: ":recycle:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: An alternative economic system built on regenerative principles +summaryPoint2: An attempt to harness Ethereum to solve global-level coordination crises such as climate change +summaryPoint3: A tool to drastically scale ecological benefit assets like verified carbon credits +--- + +## What is ReFi? {#what-is-refi} + +**Regenerative finance (ReFi)** is a set of tools and ideas built on top of blockchains, that aim to create economies which are regenerative, rather than extractive or exploitative. Eventually, extractive systems deplete the resources available and collapse; without regenerative mechanisms, they lack resilience. ReFi operates on the assumption that the creation of monetary value must be decoupled from the unsustainable extraction of resources from our planet and communities. + +Instead, ReFi aims to solve environmental, communal, or social problems by creating regenerative cycles. These systems create value for participants while simultaneously benefiting ecosystems and communities. + +One of the foundations of ReFi is the concept of regenerative economics pioneered by John Fullerton of the Capital Institute. He proposed [eight interconnected principles](https://capitalinstitute.org/8-principles-regenerative-economy/) that underlie systemic health: + +![Eight interconnected principles](refi-regenerative-economy-diagram.png) + +ReFi projects realize these principles using [smart contracts](/developers/docs/smart-contracts/) and [decentralized finance (DeFi)](/defi/) applications to incentivize regenerative behaviors, e.g. restoring degraded ecosystems, and facilitate large-scale collaboration on global issues such as climate change and biodiversity loss. + +ReFi also overlaps with the [decentralized science (DeSci)](/desci/) movement, which uses Ethereum as a platform to finance, create, review, credit, store, and disseminate scientific knowledge. DeSci tools could become useful for developing verifiable standards and practices for implementing and monitoring regenerative activities like planting trees, removing plastic from the ocean, or restoring a degraded ecosystem. + +## Tokenization of carbon credits {#tokenization-of-carbon-credits} + +The **[voluntary carbon market (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** is a mechanism for funding projects that make a verified positive impact on carbon emissions, either reducing ongoing emissions, or removing greenhouse gases already emitted from the atmosphere. These projects receive an asset called "carbon credits" after they are verified, which they can sell to individuals and organizations who want to support climate action. + +In addition to the VCM, there are also several government-mandated carbon markets (‘compliance markets’) that aim to establish a carbon price via laws or regulations within a particular jurisdiction (e.g. country or region), controlling the supply of permits to be distributed. Compliance markets incentivize polluters within their jurisdiction to reduce emissions, but they are not capable of removing greenhouse gases which have already been emitted. + +Despite its development over recent decades, the VCM continues to suffer from a variety of issues: + +1. Highly fragmented liquidity +2. Opaque transaction mechanisms +3. High fees +4. Very slow trading speed +5. Lack of scalability + +Transitioning the VCM to the new blockchain-based **digital carbon market (DCM)** might be an opportunity to upgrade the existing technology for validating, transacting and consuming carbon credits. Blockchains allow for publicly verifiable data, access for a broad range of users, and more liquidity. + +ReFi projects employ blockchain technology to alleviate many of the problems of the traditional market: + +- **Liquidity is concentrated in a small number of liquidity pools** that can be freely traded by anyone. Large organizations as well as individual users can use these pools without manual searches for sellers/buyers, participation fees, or prior registration. +- **All transactions are recorded on public blockchains**. The path each carbon credit takes due to trading activity is traceable forever as soon as it is made available in the DCM. +- **Transaction speed is nearly instant**. Securing large amounts of carbon credits via the legacy markets can take days or weeks, but this can be achieved in a few seconds in the DCM. +- **Trading activity occurs without intermediaries**, which charge high fees. Digital carbon credits represent a [62% cost improvement compared to equivalent traditional credits](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne), according to data from one analytics firm. +- **The DCM is scalable** and can meet the demands of individuals and multinational corporations alike. + +### Key components of the DCM {#key-components-dcm} + +Four major components make up the current landscape of the DCM: + +1. Registries such as [Verra](https://verra.org/project/vcs-program/registry-system/) and [Gold Standard](https://www.goldstandard.org/) make sure that projects creating carbon credits are reliable. They also operate the databases in which digital carbon credits originate and can be transferred or used up (retired). + +There is a new wave of innovative projects being built on blockchains that are attempting to disrupt incumbents in this sector. + +2. Carbon bridges, a.k.a. tokenizers, provide technology to represent or transfer carbon credits from traditional registries into the DCM. Notable examples include [Toucan Protocol](https://toucan.earth/), [C3](https://c3.app/), and [Moss.Earth](https://moss.earth/). +3. Integrated services offer carbon avoidance and/or removal credits to end-users so they can claim the environmental benefit of a credit and share their support of climate action with the world. + +Some such as [Klima Infinity](https://www.klimadao.finance/infinity) and [Senken](https://senken.io/) offer a wide variety of projects developed by third parties and issued under established standards like Verra; others like [Nori](https://nori.com/) only offer specific projects developed under their own carbon credit standard, which they issue and for which they have their own dedicated marketplace. + +4. The underlying rails and infrastructure that facilitate the scaling up of the impact and efficiency of the carbon market’s entire supply chain. [KlimaDAO](http://klimadao.finance/) supplies liquidity as a public good (allowing anyone to buy or sell carbon credits at a transparent price), incentivizes increased throughput of carbon markets and retirements with rewards, and provides user-friendly interoperable tooling to access data about, as well as acquire and retire, a wide variety of tokenized carbon credits. + +## ReFi beyond carbon markets {#refi-beyond} + +Although there is currently a strong emphasis on carbon markets in general and transitioning the VCM to the DCM in particular within the space, the term “ReFi” is not strictly limited to carbon. Other environmental assets beyond carbon credits can be developed and tokenized, which will mean other negative externalities can also be priced within the base layers of future economic systems. Moreover, the regenerative aspect of this economic model can be applied to other areas, such as the funding of public goods via quadratic funding platforms like [Gitcoin](https://gitcoin.co/). Organizations that are built on the idea of open participation and equitable distribution of resources empower everyone to funnel money to open-source software projects, as well as educational, environmental, and community-driven projects. + +By shifting the direction of capital away from extractive practices toward a regenerative flow, projects and companies that provide social, environmental, or communal benefits—and which might fail to achieve funding in traditional finance—can get off the ground and generate positive externalities for society much more quickly and easily. Transitioning to this model of funding also opens the door to much more inclusive economic systems, where people of all demographics can become active participants rather than merely passive observers. ReFi offers a vision of Ethereum as a mechanism for coordinating action on existential challenges facing our species and all life on our planet—as the base layer of a new economic paradigm, enabling a more inclusive and sustainable future for centuries to come. + +## Additional reading on ReFi + +- [A high-level overview of carbon currencies and their place in the economy](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) +- [The Ministry for the Future, a novel depicting the role of a carbon-backed currency in fighting climate change](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) +- [A detailed report by the Taskforce for Scaling Voluntary Carbon Markets](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) +- [Kevin Owocki and Evan Miyazono’s CoinMarketCap Glossary entry on ReFi](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/assets/use-cases/refi-regenerative-economy-diagram.png b/public/content/refi/refi-regenerative-economy-diagram.png similarity index 100% rename from src/assets/use-cases/refi-regenerative-economy-diagram.png rename to public/content/refi/refi-regenerative-economy-diagram.png diff --git a/src/content/roadmap/account-abstraction/index.md b/public/content/roadmap/account-abstraction/index.md similarity index 100% rename from src/content/roadmap/account-abstraction/index.md rename to public/content/roadmap/account-abstraction/index.md diff --git a/public/content/roadmap/beacon-chain/index.md b/public/content/roadmap/beacon-chain/index.md new file mode 100644 index 00000000000..6504254154a --- /dev/null +++ b/public/content/roadmap/beacon-chain/index.md @@ -0,0 +1,77 @@ +--- +title: The Beacon Chain +description: Learn about the Beacon Chain - the upgrade that introduced proof-of-stake Ethereum. +lang: en +template: upgrade +image: /upgrades/core.png +alt: +summaryPoint1: The Beacon Chain introduced proof-of-stake to the Ethereum ecosystem. +summaryPoint2: It was merged with the original Ethereum proof-of-work chain in September 2022. +summaryPoint3: The Beacon Chain introduced the consensus logic and block gossip protocol which now secures Ethereum. +--- + + + The Beacon Chain shipped on December 1, 2020, and formalized proof-of-stake as Ethereum's consensus mechanism with The Merge upgrade on September 15, 2022. + + +## What is the Beacon Chain? {#what-is-the-beacon-chain} + +The Beacon Chain is the name of the original proof-of-stake blockchain that was launched in 2020. It was created to ensure the proof-of-stake consensus logic was sound and sustainable before enabling it on Ethereum Mainnet. Therefore, it ran alongside the original proof-of-work Ethereum. The Beacon Chain was a chain of 'empty' blocks, but switching off proof-of-work and switching on proof-of-stake on Ethereum required instructing the Beacon Chain to accept transaction data from execution clients, bundle them into blocks and then organize them into a blockchain using a proof-of-stake-based consensus mechanism. At the same moment, the original Ethereum clients turned off their mining, block propagation and consensus logic, handing that all over to the Beacon Chain. This event was known as [The Merge](/roadmap/merge/). Once The Merge happened, there were no longer two blockchains. Instead, there was just one proof-of-stake Ethereum, which now requires two different clients per node. The Beacon Chain is now the consensus layer, a peer-to-peer network of consensus clients that handles block gossip and consensus logic, while the original clients form the execution layer, which is responsible for gossiping and executing transactions, and managing Ethereum's state. The two layers can communicate with one another using the Engine API. + +## What does the Beacon Chain do? {#what-does-the-beacon-chain-do} + +The Beacon Chain is the name given to a ledger of accounts that conducted and coordinated the network of Ethereum [stakers](/staking/) before those stakers started validating real Ethereum blocks. It does not process transactions or handle smart contract interactions though because that is being done in the execution layer. +The Beacon Chain is responsible for things like block and attestation handling, running the fork choice algorithm, and managing rewards and penalties. +Read more on our [node architecture page](/developers/docs/nodes-and-clients/node-architecture/#node-comparison). + +## Beacon Chain impact {#beacon-chain-features} + +### Introducing staking {#introducing-staking} + +The Beacon Chain introduced [proof-of-stake](/developers/docs/consensus-mechanisms/pos/) to Ethereum. This keeps Ethereum secure and earns validators more ETH in the process. In practice, staking involves staking ETH in order to activate validator software. As a staker, you run the software that creates and validates new blocks in the chain. + +Staking serves a similar purpose that [mining](/developers/docs/mining/) used to, but is different in many ways. Mining required large up-front expenditures in the form of powerful hardware and energy consumption, resulting in economies of scale, and promoting centralization. Mining also did not come with any requirement to lock up assets as collateral, limiting the protocol's ability to punish bad actors after an attack. + +The transition to proof-of-stake made Ethereum significantly more secure and decentralized by comparison to proof-of-work. The more people that participate in the network, the more decentralized and safe from attacks it becomes. + +And using proof-of-stake as consensus mechanism is a foundational component for [the secure, environmentally friendly and scalable Ethereum we have now](/roadmap/vision/). + + + If you're interested in becoming a validator and helping secure Ethereum, learn more about staking. + + +### Setting up for sharding {#setting-up-for-sharding} + +Since the Beacon Chain merged with the original Ethereum Mainnet, the Ethereum community started looking to scaling the network. + +Proof-of-stake has the advantage of having a registry of all approved block producers at any given time, each with ETH at stake. This registry sets the stage for the ability to divide and conquer but reliably split up specific network responsibilities. + +This responsibility is in contrast to proof-of-work, where miners have no obligation to the network and could stop mining and turn their node software off permanently in an instant without repercussion. There is also no registry of known block proposers and no reliable way to split network responsibilities safely. + +[More on sharding](/roadmap/danksharding/) + +## Relationship between upgrades {#relationship-between-upgrades} + +The Ethereum upgrades are all somewhat interrelated. So let’s recap how the Beacon Chain affects the other upgrades. + +### Beacon Chain and The Merge {#merge-and-beacon-chain} + +At first, The Beacon Chain existed separately from Ethereum Mainnet, but they were merged in 2022. + + + The Merge + + +### Shards and the Beacon Chain {#shards-and-beacon-chain} + +Sharding can only safely enter the Ethereum ecosystem with a proof-of-stake consensus mechanism in place. The Beacon Chain introduced staking, which 'merged' with Mainnet, paving the way for sharding to help further scale Ethereum. + + + Shard chains + + +## Further Reading + +- [More on Ethereum's future upgrades](/roadmap/vision) +- [More on node architecture](/developers/docs/nodes-and-clients/node-architecture) +- [More of proof-of-stake](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/roadmap/danksharding/index.md b/public/content/roadmap/danksharding/index.md similarity index 100% rename from src/content/roadmap/danksharding/index.md rename to public/content/roadmap/danksharding/index.md diff --git a/public/content/roadmap/future-proofing/index.md b/public/content/roadmap/future-proofing/index.md new file mode 100644 index 00000000000..c8e9960961e --- /dev/null +++ b/public/content/roadmap/future-proofing/index.md @@ -0,0 +1,38 @@ +--- +title: Future-proofing Ethereum +description: These upgrades cement Ethereum as the resilient, decentralized base layer for the future, whatever it may hold. +lang: en +image: /roadmap/roadmap-future.png +alt: "Ethereum roadmap" +template: roadmap +--- + +Some parts of the roadmap are not necessarily required for scaling or securing Ethereum in the near-term, but set Ethereum up for stability and reliability far into the future. + +## Quantum resistance {#quantum-resistance} + +Some of the cryptography securing present-day Ethereum will be compromised when quantum computing becomes a reality. Although quantum computers are probably decades away from being a genuine threat to modern cryptography, Ethereum is being built to be secure for centuries to come. This means making [Ethereum quantum resistant](https://consensys.net/blog/developers/how-will-quantum-supremacy-affect-blockchain/) as soon as possible. + +The challenge facing Ethereum developers is that the current proof-of-stake protocol relies upon a very efficient signature scheme known as BLS to aggregate votes on valid blocks. This signature scheme is broken by quantum computers, but the quantum resistant alternatives are not as efficient. + +The [“KZG” commitment schemes](/roadmap/danksharding/#what-is-kzg) used in several places across Ethereum to generate cryptographic secrets are known to be quantum-vulnerable. Currently, this is circumvented using “trusted setups” where many users generate randomness that cannot be reverse-engineered by a quantum computer. However, the ideal solution would simply be to incorporate quantum safe cryptography instead. There are two leading approaches that could become efficient replacements for the BLS scheme: [STARK-based](https://hackmd.io/@vbuterin/stark_aggregation) and [lattice-based](https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-lattice-encryption-326ac66e3175) signing. These are still being researched and prototyped. + + Read about KZG and trusted setups + +## Simpler and more efficient Ethereum {#simpler-more-efficient-ethereum} + +Complexity creates opportunities for bugs or vulnerabilities that can be exploited by attackers. Therefore, part of the roadmap is simplifying Ethereum and removing code that has hung around through various upgrades but is no longer needed or can now be improved upon. A leaner, simpler codebase is easier for developers to maintain and reason about. + +There are several updates that will be made to the [Ethereum Virtual Machine (EVM)](/developers/docs/evm) to make it simpler and more efficient. These include [removing the SELFDESTRUCT opcode](https://hackmd.io/@vbuterin/selfdestruct) - a rarely used command that is no longer needed and in some circumstances can be dangerous to use, especially when combined with other future upgrades to Ethereum’s storage model. Ethereum clients also still support some old transaction types that can now be completely removed. The way gas is calculated can also be improved and more efficient methods for the arithmetic underpinning some cryptographic operations can be brought in. + +Similarly, there are updates that can be made to other parts of present-day Ethereum clients. One example is that current execution and consensus clients use a different type of data compression. It will be much easier and more intuitive to share data between clients when the compression scheme is unified across the whole network. + +## Current progress {#current-progress} + +Most of the upgrades required for future-proofing Ethereum are still in the research phase and may be several years away from being implemented. Upgrades such as removing SELF-DESTRUCT and harmonizing the compression scheme used in the execution and consensus clients are likely to come sooner than quantum resistant cryptography. + +**Further reading** + +- [Gas](/developers/docs/gas) +- [EVM](/developers/docs/evm) +- [Data structures](/developers/docs/data-structures-and-encoding) diff --git a/public/content/roadmap/index.md b/public/content/roadmap/index.md new file mode 100644 index 00000000000..6a218c2e655 --- /dev/null +++ b/public/content/roadmap/index.md @@ -0,0 +1,117 @@ +--- +title: Ethereum roadmap +description: The path to more scalability, security and sustainability for Ethereum. +lang: en +template: roadmap +image: /roadmap/roadmap-main.png +alt: "Ethereum roadmap" +summaryPoints: +buttons: + - label: Further upgrades + toId: what-changes-are-coming + - label: Past upgrades + to: /history/ + variant: outline +--- + +Ethereum is already a powerful platform for global coordination, but it is still being improved. An ambitious set of improvements will upgrade Ethereum from its current form into a fully scaled, maximally resilient platform. These upgrades are laid out in the Ethereum roadmap. + +**To learn about previous upgrades to Ethereum, please visit our [History](/history/) page** + +## What changes are coming to Ethereum? {#what-changes-are-coming} + +The Ethereum roadmap outlines the specific improvements that will be made to protocol in the future. Overall, the roadmap will bring the following benefits to Ethereum users: + + + + + + + + +## Why does Ethereum need a roadmap? {#why-does-ethereum-need-a-roadmap} + +Ethereum gets regular upgrades that enhance its scalability, security, or sustainability. One of Ethereum's core strengths is adapting as new ideas emerge from research and development. Adaptability gives Ethereum the flexibility to tackle emerging challenges and keep up with the most advanced technological breakthroughs. + + + +The roadmap is mostly the result of years of work by researchers and developers - because the protocol is very technical - but any motivated person can participate. Ideas usually start off as discussions on a forum such as [ethresear.ch](https://ethresear.ch/), [Ethereum magicians](https://www.figma.com/exit?url=https%3A%2F%2Fethereum-magicians.org%2F) or the Eth R&D discord server. They may be responses to new vulnerabilities that are discovered, suggestions from organizations working in the application layer (such as dapps and exchanges) or from known frictions for end users (such as costs or transaction speeds). When these ideas mature, they can be proposed as [Ethereum Improvement Proposals](https://eips.ethereum.org/). This is all done in public so that anyone from the community can weigh in at any time. + +[More on Ethereum governance](/governance/) + + + + +

What was ETH2?

+ +

The term 'Eth2' was commonly used to describe the future of Ethereum before the switch to proof-of-stake but it was phased out in favor of more precise terminology. It was originally used to differentiate the Ethereum network before the switch to proof-of-stake and the network after, or sometimes to refer to the different Ethereum clients (execution clients were sometimes referred to as ETH1 clients and consensus clients were sometimes referred to as ETH2 clients).

+ +
+ +## Will Ethereum's roadmap change over time? {#will-ethereums-roadmap-change-over-time} + +Yes—almost definitely. The roadmap is the current plan for upgrading Ethereum, covering both near-term and future plans. We expect the roadmap to change as new information and technology become available. + +Think of Ethereum's roadmap as a set of intentions for improving Ethereum; it is the core researchers' and developers' best hypothesize of Ethereum's most optimal path forward. + +## When will the roadmap be finished? {#when-will-the-roadmap-be-finished} + +Ethereum will implement some upgrades in the next six months (e.g. staking withdrawals); others are lower priority and likely not to be implemented for the next 5-10 years (e.g. quantum resistance). Giving precise timing of each upgrade is complicated to predict as many roadmap items are worked on in parallel and developed at different speeds. The urgency of an upgrade can also change over time depending on external factors (e.g. a sudden leap in the performance and availability of quantum computers may make quantum-resistant cryptography more urgent). + +One way to think about Ethereum development is by analogy to biological evolution. A network that is able to adapt to new challenges and maintain fitness is more likely to succeed that one that is resistant to change, although as the network becomes more and more performant, scalable and secure fewer changes to the protocol will be required. + +## Do I have to do anything when there is an upgrade? {#do-i-have-to-do-anything-when-there-is-an-upgrade} + +Upgrades tend not to impact end-users except by providing better user-experiences and a more secure protocol and perhaps more options for how to interact with Ethereum. End uses are not required to actively participate in an upgrade, nor are they required to do anything to secure their assets. Node operators will need to update their clients to prepare for an upgrade. Some upgrades may lead to changes for application developers. For example, history expiry upgrades may lead application developers to grab historical data from new sources. + +## What about The Verge, The Splurge, etc? {#what-about-the-verge-splurge-etc} + +[Vitalik Buterin proposed a vision for the Ethereum roadmap](https://twitter.com/VitalikButerin/status/1588669782471368704) that was organized into several categories linked by their effects on Ethereum's architecture. It included: + +- The Merge: upgrades relating to the switch from proof-of-work to proof-of-stake +- The Surge: upgrades related to scalability by rollups and data sharding +- The Scourge: upgrades related to censorship resistance, decentralization and protocol risks from MEV +- The Verge: upgrades related to verifying blocks more easily +- The Purge: upgrades related to reducing the computational costs of running nodes and simplifying the protocol +- The Splurge: other upgrades that don't fit well into the previous categories. + +We decided not to use this terminology because we wanted to use a simpler and more user-centric model. Although we use user-centric language, the vision remains the same as the one proposed by Vitalik. + +## What about sharding? {#what-about-sharding} + +Sharding is splitting up the Ethereum blockchain so that subsets of validators are only responsible for a fraction of the total data. This was originally intended to be the way for Ethereum to scale. However, layer 2 rollups have developed much faster than expected and have provided a lot of scaling already, and will provide much more after Proto-Danksharding is implemented. This means "shard chains" are no longer needed and have been dropped from the roadmap. + +## Looking for specific technical upgrades? {#looking-for-specific-technical-upgrades} + +- [Danksharding](/roadmap/danksharding) - Danksharding makes layer 2 rollups much cheaper for users by adding “blobs” of data to Ethereum blocks. +- [Staking withdrawals](/staking/withdrawals) - The Shanghai/Capella upgrade enabled staking withdrawals on Ethereum, allowing people to unlock their staked ETH. +- [Single slot finality](/roadmap/single-slot-finality) - Instead of waiting for fifteen minutes, blocks could get proposed and finalized in the same slot. This is more convenient for apps and much more difficult to attack. +- [Proposer-builder separation](/roadmap/pbs) - Splitting the block building and block proposal tasks across separate validators creates a fairer, more censorship resistant and efficient way for Ethereum to come to consensus. +- [Secret leader election](/roadmap/secret-leader-election) - Clever cryptography can be used to ensure that the identity of the current block proposer is not made public, protecting them from certain types of attack. +- [Account abstraction](/roadmap/account-abstraction) - Account abstraction is a class of upgrades that support smart contract wallets natively on Ethereum, rather than having to use complex middleware. +- [Verkle trees](/roadmap/verkle-trees) - Verkle trees are a data structure that can be used to enable stateless clients on Ethereum. These “stateless” clients will require a tiny amount of storage space but will still be able to verify new blocks. +- [Statelessness](/roadmap/statelessness) - Stateless clients will be able to verify new blocks without having to store large amounts of data. This will provide all the benefits of running a node with only a tiny fraction of today’s costs. diff --git a/public/content/roadmap/merge/index.md b/public/content/roadmap/merge/index.md new file mode 100644 index 00000000000..385d930991b --- /dev/null +++ b/public/content/roadmap/merge/index.md @@ -0,0 +1,230 @@ +--- +title: The Merge +description: Learn about The Merge - when Mainnet Ethereum adopted proof-of-stake. +lang: en +template: upgrade +image: /upgrades/merge.png +alt: +summaryPoint1: Ethereum Mainnet uses proof-of-stake, but this wasn't always the case. +summaryPoint2: The upgrade from the original proof-of-work mechanism to proof-of-stake was called The Merge. +summaryPoint3: The Merge refers to the original Ethereum Mainnet merging with a separate proof-of-stake blockchain called the Beacon Chain, now existing as one chain. +summaryPoint4: The Merge reduced Ethereum's energy consumption by ~99.95%. +--- + + + The Merge was executed on September 15, 2022. This completed Ethereum's transition to proof-of-stake consensus, officially deprecating proof-of-work and reducing energy consumption by ~99.95%. + + +## What was The Merge? {#what-is-the-merge} + +The Merge was the joining of the original execution layer of Ethereum (the Mainnet that has existed since [genesis](/history/#frontier)) with its new proof-of-stake consensus layer, the Beacon Chain. It eliminated the need for energy-intensive mining and instead enabled the network to be secured using staked ETH. It was a truly exciting step in realizing the Ethereum vision—more scalability, security, and sustainability. + + + +Initially, the [Beacon Chain](/roadmap/beacon-chain/) shipped separately from [Mainnet](/glossary/#mainnet). Ethereum Mainnet - with all its accounts, balances, smart contracts, and blockchain state - continued to be secured by [proof-of-work](/developers/docs/consensus-mechanisms/pow/), even while the Beacon Chain ran in parallel using [proof-of-stake](/developers/docs/consensus-mechanisms/pos/). The Merge was when these two systems finally came together, and proof-of-work was permanently replaced by proof-of-stake. + +Imagine Ethereum is a spaceship that launched before it was quite ready for an interstellar voyage. With the Beacon Chain, the community built a new engine and a hardened hull. After significant testing, it became time to hot-swap the new engine for the old one mid-flight. This merged the new, more efficient engine into the existing ship enabling it to put in some serious light years and take on the universe. + +## Merging with Mainnet {#merging-with-mainnet} + +Proof-of-work secured Ethereum Mainnet from genesis until The Merge. This allowed the Ethereum blockchain we're all used to to come into existence in July 2015 with all its familiar features—transactions, smart contracts, accounts, etc. + +Throughout Ethereum's history, developers prepared for an eventual transition away from proof-of-work to proof-of-stake. On December 1, 2020, the Beacon Chain was created as a separate blockchain to Mainnet, running in parallel. + +The Beacon Chain was not originally processing Mainnet transactions. Instead, it was reaching consensus on its own state by agreeing on active validators and their account balances. After extensive testing, it became time for the Beacon Chain to reach consensus on real world data. After The Merge, the Beacon Chain became the consensus engine for all network data, including execution layer transactions and account balances. + +The Merge represented the official switch to using the Beacon Chain as the engine of block production. Mining is no longer the means of producing valid blocks. Instead, the proof-of-stake validators have adopted this role and are now responsible for processing the validity of all transactions and proposing blocks. + +No history was lost in The Merge. As Mainnet merged with the Beacon Chain, it also merged the entire transactional history of Ethereum. + + +This transition to proof-of-stake changed the way ether is issued. Learn more about ether issuance before and after The Merge. + + +### Users and holders {#users-holders} + +**The Merge did not change anything for holders/users.** + +_This bears repeating_: As a user or holder of ETH or any other digital asset on Ethereum, as well as non-node-operating stakers, **you do not need to do anything with your funds or wallet to account for The Merge.** ETH is just ETH. There is no such thing as "old ETH"/"new ETH" or "ETH1"/"ETH2" and wallets work exactly the same after The Merge as they did before—people telling you otherwise are likely scammers. + +Despite swapping out proof-of-work, the entire history of Ethereum since genesis remained intact and unaltered by the transition to proof-of-stake. Any funds held in your wallet before The Merge are still accessible after The Merge. **No action is required to upgrade on your part.** + +[More on Ethereum security](/security/#eth2-token-scam) + +### Node operators and dapp developers {#node-operators-dapp-developers} + + + +Key action items include: + +1. Run _both_ a consensus client and an execution client; third-party endpoints to obtain execution data no longer work since The Merge. +2. Authenticate both execution and consensus clients with a shared JWT secret so they can securely communicate. +3. Set a `fee recipient` address to receive your earned transaction fee tips/MEV. + +Not completing the first two items above will result in your node being seen as "offline" until both layers are synced and authenticated. + +Not setting a `fee recipient` will still allow your validator to behave as usual, but you will miss out on unburnt fee tips and any MEV you would have otherwise earned in blocks your validator proposes. + + + + +Up until The Merge, an execution client (such as Geth, Erigon, Besu or Nethermind) was enough to receive, properly validate, and propagate blocks being gossiped by the network. _After The Merge_, the validity of transactions contained within an execution payload now also depends on the validity of the "consensus block" it is contained within. + +As a result, a full Ethereum node now requires both an execution client and a consensus client. These two clients work together using a new Engine API. The Engine API requires authentication using a JWT secret, which is provided to both clients allowing secure communication. + +Key action items include: + +- Install a consensus client in addition to an execution client +- Authenticate execution and consensus clients with a shared JWT secret so they can securely communicate with one another. + +Not completing the above items will result in your node appearing to be "offline" until both layers are synced and authenticated. + + + + + +The Merge came with changes to consensus, which also includes changes related to:< + +
    +
  • block structure
  • +
  • slot/block timing
  • +
  • opcode changes
  • +
  • sources of on-chain randomness
  • +
  • concept of safe head and finalized blocks
  • +
+ +For more information, check out this blog post by Tim Beiko on How The Merge Impacts Ethereum’s Application Layer. + +
+ +## The Merge and energy consumption {#merge-and-energy} + +The Merge marked the end of proof-of-work for Ethereum and start the era of a more sustainable, eco-friendly Ethereum. Ethereum's energy consumption dropped by an estimated 99.95%, making Ethereum a green blockchain. Learn more about [Ethereum energy consumption](/energy-consumption/). + +## The Merge and scaling {#merge-and-scaling} + +The Merge also set the stage for further scalability upgrades not possible under proof-of-work, bringing Ethereum one step closer to achieving the full scale, security and sustainability outlined in its [Ethereum vision](/roadmap/vision/). + +## Misconceptions about The Merge {#misconceptions} + + + +There are two types of Ethereum nodes: nodes that can propose blocks and nodes that don't. + +Nodes that propose blocks are only a small number of the total nodes on Ethereum. This category includes mining nodes under proof-of-work (PoW) and validator nodes under proof-of-stake (PoS). This category requires committing economic resources (such as GPU hash power in proof-of-work or staked ETH in proof-of-stake) in exchange for the ability to occasionally propose the next block and earn protocol rewards. + +The other nodes on the network (i.e. the majority) are not required to commit any economic resources beyond a consumer-grade computer with 1-2 TB of available storage and an internet connection. These nodes do not propose blocks, but they still serve a critical role in securing the network by holding all block proposers accountable by listening for new blocks and verifying their validity on arrival according to the network consensus rules. If the block is valid, the node continues propagating it through the network. If the block is invalid for whatever reason, the node software will disregard it as invalid and stop its propagation. + +Running a non-block-producing node is possible for anyone under either consensus mechanism (proof-of-work or proof-of-stake); it is strongly encouraged for all users if they have the means. Running a node is immensely valuable for Ethereum and gives added benefits to any individual running one, such as improved security, privacy and censorship resistance. + +The ability for anyone to run their own node is absolutely essential to maintaining the decentralization of the Ethereum network. + +More on running your own node + + + + + +Gas fees are a product of network demand relative to the capacity of the network. The Merge deprecated the use of proof-of-work, transitioning to proof-of-stake for consensus, but did not significantly change any parameters that directly influence network capacity or throughput. + +With a rollup-centric roadmap, efforts are being focused on scaling user activity at layer 2, while enabling layer 1 Mainnet as a secure decentralized settlement layer optimized for rollup data storage to help make rollup transactions exponentially cheaper. The transition to proof-of-stake is a critical precursor to realizing this. More on gas and fees. + + + + +A transaction's "speed" can be measured in a few ways, including time to be included in a block and time to finalization. Both of these changes slightly, but not in a way that users will notice. + +Historically, on proof-of-work, the target was to have a new block every ~13.3 seconds. Under proof-of-stake, slots occur precisely every 12 seconds, each of which is an opportunity for a validator to publish a block. Most slots have blocks, but not necessarily all (i.e. a validator is offline). In proof-of-stake, blocks are produced ~10% more frequently than on proof-of-work. This was a fairly insignificant change and is unlikely to be noticed by users. + +Proof-of-stake introduced the transaction finality concept that did not previously exist. In proof-of-work, the ability to reverse a block gets exponentially more difficult with every passing block mined on top of a transaction, but it never quite reaches zero. Under proof-of-stake, blocks are bundled into epochs (6.4 minute spans of time containing 32 chances for blocks) which validators vote on. When an epoch ends, validators vote on whether to consider the epoch 'justified'. If validators agree to justify the epoch, it gets finalized in the next epoch. Undoing finalized transactions is economically inviable as it would require obtaining and burning over one-third of the total staked ETH. + + + + + +Initially after The Merge, stakers could only access fee tips and MEV that were earned as a result of block proposals. These rewards are credited to a non-staking account controlled by the validator (known as the fee recipient), and are available immediately. These rewards are separate from protocol rewards for performing validator duties. + +Since the Shanghai/Capella network upgrade, stakers can now designate a withdrawal address to start receiving automatic payouts of any excess staking balance (ETH over 32 from protocol rewards). This upgrade also enabled the ability for a validator to unlock and reclaim its entire balance upon exiting from the network. + +More on staking withdrawals + + + + +Since the Shanghai/Capella upgrade enabled withdrawals, validators are incentivized to withdraw their staking balance above 32 ETH, as these funds do not add to yield and are otherwise locked. Depending on the APR (determined by total ETH staked), they may be incentivized to exit their validator(s) to reclaim their entire balance or potentially stake even more using their rewards to earn more yield. + +An important caveat here, full validator exits are rate limited by the protocol, and only so many validators may exit per epoch (every 6.4 minutes). This limit fluctuates depending on the number of active validators, but comes out to approximately 0.33% of total ETH staked can be exited from the network in a single day. + +This prevents a mass exodus of staked funds. Furthermore, it prevents a potential attacker with access to a large portion of the total ETH staked from committing a slashable offense and exiting/withdrawing all of the offending validator balances in the same epoch before the protocol can enforce the slashing penalty. + +The APR is also intentionally dynamic, allowing a market of stakers to balance how much they're willing to be paid to help secure the network. If the rate is too low, then validators will exit at a rate limited by the protocol. Gradually this will raise the APR for everyone who remains, attracting new or returning stakers yet again. + + +## What happened to 'Eth2'? {#eth2} + +The term 'Eth2' has been deprecated. After merging 'Eth1' and 'Eth2' into a single chain, there is no longer any need to +distinguish between two Ethereum networks; there is just Ethereum. + +To limit confusion, the community has updated these terms: + +- 'Eth1' is now the 'execution layer', which handles transactions and execution. +- 'Eth2' is now the 'consensus layer', which handles proof-of-stake consensus. + +These terminology updates only change naming conventions; this does not alter Ethereum's goals or roadmap. + +[Learn more about the 'Eth2' renaming](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) + +## Relationship between upgrades {#relationship-between-upgrades} + +The Ethereum upgrades are all somewhat interrelated. So let’s recap how The Merge relates to the other upgrades. + +### The Merge and the Beacon Chain {#merge-and-beacon-chain} + +The Merge represents the formal adoption of the Beacon Chain as the new consensus layer to the original Mainnet execution layer. Since The Merge, validators are assigned to secure Ethereum Mainnet, and mining on [proof-of-work](/developers/docs/consensus-mechanisms/pow/) is no longer a valid means of block production. + +Blocks are instead proposed by validating nodes that have staked ETH in return for the right to participate in consensus. These upgrades set the stage for future scalability upgrades, including sharding. + + + The Beacon Chain + + +### The Merge and the Shanghai upgrade {#merge-and-shanghai} + +In order to simplify and maximize focus on a successful transition to proof-of-stake, The Merge upgrade did not include certain anticipated features such as the ability to withdraw staked ETH. This functionality was enabled separately with the Shanghai/Capella upgrade. + +For those curious, learn more about [What Happens After The Merge](https://youtu.be/7ggwLccuN5s?t=101), presented by Vitalik at the April 2021 ETHGlobal event. + +### The Merge and sharding {#merge-and-data-sharding} + +Originally, the plan was to work on sharding before The Merge to address scalability. However, with the boom of [layer 2 scaling solutions](/layer-2/), the priority shifted to swapping proof-of-work to proof-of-stake first. + +Plans for sharding are rapidly evolving, but given the rise and success of layer 2 technologies to scale transaction execution, sharding plans have shifted to finding the most optimal way to distribute the burden of storing compressed calldata from rollup contracts, allowing for exponential growth in network capacity. This would not be possible without first transitioning to proof-of-stake. + + + Sharding + + +## Further reading {#further-reading} + + + + diff --git a/src/content/roadmap/merge/issuance/index.md b/public/content/roadmap/merge/issuance/index.md similarity index 100% rename from src/content/roadmap/merge/issuance/index.md rename to public/content/roadmap/merge/issuance/index.md diff --git a/src/content/roadmap/pbs/index.md b/public/content/roadmap/pbs/index.md similarity index 100% rename from src/content/roadmap/pbs/index.md rename to public/content/roadmap/pbs/index.md diff --git a/public/content/roadmap/scaling/index.md b/public/content/roadmap/scaling/index.md new file mode 100644 index 00000000000..d2fad35d983 --- /dev/null +++ b/public/content/roadmap/scaling/index.md @@ -0,0 +1,47 @@ +--- +title: Scaling Ethereum +description: Rollups batch transactions together off-chain, reducing costs for the user. However, the way rollups currently use data is currently too expensive, limiting how cheap transactions can be. Proto-Danksharding fixes this. +lang: en +image: /roadmap/roadmap-transactions.png +alt: "Ethereum roadmap" +template: roadmap +--- + +Ethereum is scaled using [layer 2s](/layer-2/#rollups) (also known as rollups), which batch transactions together and send the output to Ethereum. Even though rollups are up to eight times less expensive than Ethereum Mainnet, it's possible to optimize rollups further to reduce costs for end users. Rollups also rely on some centralized components that developers can remove as the rollups mature. + + +
    +
  • Today’s rollups are ~3-8x cheaper than Ethereum layer 1
  • +
  • ZK-rollups will soon lower fees by ~40-100x
  • +
  • Upcoming changes to Ethereum will provide another ~100-1000x of scaling
  • +
  • Users should benefit from transactions costing less than $0.001
  • +
+
+ +## Making data cheaper {#making-data-cheaper} + +Rollups collect large numbers of transactions, execute them and submit the results to Ethereum. This generates a lot of data that needs to be openly available so that anyone can execute the transactions for themselves and verify that the rollup operator was honest. If someone finds a discrepancy, they can raise a challenge. + +### Proto-Danksharding {#proto-danksharding} + +Rollup data is stored on Ethereum permanently, which is expensive. Over 90% of the transaction cost users pay on rollups is due to this data storage. To reduce transaction costs, we can move the data into a new temporary 'blob' storage. Blobs are cheaper because they are not permanent; they get deleted from Ethereum once they are no longer needed. Storing rollup data long term becomes the responsibility of the people that need it, such as rollup operators, exchanges, indexing services etc. Adding blob transactions to Ethereum is part of an upgrade known as "Proto-Danksharding". It is expected to be shipped relatively soon—perhaps in late 2023. + +After blob transactions have become part of the Ethereum protocol through Proto-Danksharding, it will be possible to add many blobs to Ethereum blocks. This will be another substantial (>100x) scale-up to Ethereum’s throughput and scale-down to transaction costs. + +### Danksharding {#danksharding} + +The second stage of expanding blob data is complicated because it requires new methods for checking rollup data is available on the network and relies on validators separating their block building and block proposal responsibilities. It also requires a way to cryptographically prove that validators have verified small subsets of the blob data. + +This second step is known as [“Danksharding”](/roadmap/danksharding/). It is likely several years away from being fully implemented. Danksharding relies on other developments such as [separating block building and block proposal](/roadmap/pbs) and new network designs that enable the network to efficiently confirm that data is available by randomly sampling a few kilobytes at a time, known as [data availability sampling (DAS)](/developers/docs/data-availability). + +More on Danksharding + +## Decentralizing rollups {#decentralizing-rollups} + +[Rollups](/layer-2) are already scaling Ethereum. A [rich ecosystem of rollup projects](https://l2beat.com/scaling/tvl) is enabling users to transact quickly and cheaply, with a range of security guarantees. However, rollups have been bootstrapped using centralized sequencers (computers that do all the transaction processing and aggregation before submitting them to Ethereum). This is vulnerable to censorship, because the sequencer operators can be sanctioned, bribed or otherwise compromised. At the same time, [rollups vary](https://l2beat.com) in the way they validate incoming data. The best way is for "provers" to submit fraud proofs or validity proofs, but not all rollups are there yet. Even those rollups that do use validity/fraud proofs use a small pool of known provers. Therefore, the next critical step in scaling Ethereum is to distribute responsibility for running sequencers and provers across more people. + +More on rollups + +## Current progress {#current-progress} + +Proto-Danksharding is likely to be one of the earlier roadmap items to be implemented. The decentralized computation steps required to set it up are already underway and several clients have implemented prototypes for handling blob data. Full Danksharding is likely several years away, as it relies upon several other roadmap items being completed first. Decentralizing rollup infrastructure is likely to be a gradual process - there are many different rollups that are building slightly different systems and will fully decentralize at different rates. diff --git a/src/content/roadmap/secret-leader-election/index.md b/public/content/roadmap/secret-leader-election/index.md similarity index 100% rename from src/content/roadmap/secret-leader-election/index.md rename to public/content/roadmap/secret-leader-election/index.md diff --git a/public/content/roadmap/security/index.md b/public/content/roadmap/security/index.md new file mode 100644 index 00000000000..10ac381d6d7 --- /dev/null +++ b/public/content/roadmap/security/index.md @@ -0,0 +1,48 @@ +--- +title: A more secure Ethereum +description: Ethereum is the most secure and decentralized smart-contract platform in existence. However, there are still improvements that can be made so that Ethereum stays resilient to any level of attack far into the future. +lang: en +image: /roadmap/roadmap-security.png +alt: "Ethereum roadmap" +template: roadmap +--- + +Ethereum is already a very secure, decentralized smart-contract platform. However, there are still improvements that can be made so that Ethereum stays resilient to all kinds of attack far into the future. These include subtle changes to the way Ethereum clients deal with competing blocks, as well as increasing the speed the network considers blocks to be ["finalized"](/developers/docs/consensus-mechanisms/pos/#finality) (meaning they can't be changed without extreme economic losses to an attacker). + +There are also improvements that make censoring transactions much more difficult by making block proposers blind to the actual contents of their blocks, and new ways to identify when a client is censoring. Together these improvements will upgrade the proof-of-stake protocol so that users - from individuals to corporations - have instant confidence in their apps, data and assets on Ethereum. + +## Staking withdrawals {#staking-withdrawals} + +The upgrade from proof-of-work to proof-of-stake began with Ethereum pioneers “staking” their ETH in a deposit contract. That ETH is used to protect the network. However, that ETH cannot yet be unlocked and returned to the users. Allowing ETH to be withdrawn is a critical part of the proof-of-stake upgrade. In addition to withdrawals being a critical component of a fully-functional proof-of-stake protocol, allowing withdrawals is also good for Ethereum security as it allows stakers to use their ETH rewards for other non-staking purposes. This means users that want liquidity do not have to rely upon liquid staking derivatives (LSDs) that can be a centralizing force on Ethereum. This upgrade is scheduled to be completed on April 12, 2023. + +Read about withdrawals + +## Defending against attacks {#defending-against-attacks} + +Even after withdrawals there are improvements that can be made to Ethereum's [proof-of-stake](/developers/docs/consensus-mechanisms/pos/) protocol. One is known as [view-merge](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739) - a more secure fork-choice algorithm that makes certain sophisticated types of attack more difficult. + +Reducing the time Ethereum takes to finalize blocks would provide a better user experience and prevent sophisticated "reorg" attacks where attackers try to reshuffle very recent blocks to extract profit or censor certain transactions. [**Single slot finality (SSF)**](/roadmap/single-slot-finality/) is a way to minimize the finalization delay. Right now there are 15 mins worth of blocks that an attacker could theoretically convince other validators to reconfigure. With SSF, there are 0. Users, from individuals to apps and exchanges, benefit from fast assurance that their transactions will not be reverted, and the network benefits by shutting down a whole class of attacks. + +Read about single slot finality + +## Defending against censorship {#defending-against-censorship} + +Decentralization prevents individuals or small groups of validators from becoming too influential. New staking technologies can help to ensure Ethereum's validators stay as decentralized as possible while also defending them against hardware, software and network failures. This includes software that shares validator responsibilities across multiple nodes. This is known as **distributed validator technology (DVT)**. Staking pools are incentivized to use DVT because it allows multiple computers to collectively participate in validation, adding redundancy and fault-tolerance. It also splits validator keys across several systems, rather than having single operators running multiple validators. This makes it harder for dishonest operators to coordinate attacks on Ethereum. Overall, the idea is to derive security benefits by running validators as _communities_ rather than as individuals. + +Read about distributed validator technology + +Implementing **proposer-builder separation (PBS)** will drastically improve Ethereum's built-in defenses against censorship. PBS allows one validator to create a block and another to broadcast it across the Ethereum network. This ensures that the gains from professional profit-maximizing block building algorithms are shared more fairly across the network, **preventing stake from concentrating** with the best-performing institutional stakers over time. The block proposer gets to select the most profitable block offered to them by a market of block builders. To censor, a block proposer would often have to choose a less profitable block, which would be **economically irrational and also obvious to the rest of the validators** on the network. + +There are potential add-ons to PBS, such as encrypted transactions and inclusion lists, that could further improve Ethereum's censorship resistance. These make the block builder and proposer blind to the actual transactions included in their blocks. + +Read about proposer-builder separation + +## Protecting validators {#protecting-validators} + +It is possible that a sophisticated attacker could identify upcoming validators and spam them to prevent them from proposing blocks; this is known as a **denial of service (DoS)** attack. Implementing [**secret leader election (SLE)**](/roadmap/secret-leader-election) will protect against this type of attack by preventing block proposers from being knowable in advance. This works by continually shuffling a set of cryptographic commitments representing candidate block proposers and using their order to determine which validator is selected in such a way that only the validators themselves know their ordering in advance. + +Read about secret leader election + +## Current progress {#current-progress} + +Security upgrades on the roadmap are in advanced stages of research, but they are not expected to be implemented for some time. The next steps for view-merge, PBS, SSF and SLE is to finalize a specification and start building prototypes. diff --git a/src/content/roadmap/single-slot-finality/index.md b/public/content/roadmap/single-slot-finality/index.md similarity index 100% rename from src/content/roadmap/single-slot-finality/index.md rename to public/content/roadmap/single-slot-finality/index.md diff --git a/src/content/roadmap/statelessness/index.md b/public/content/roadmap/statelessness/index.md similarity index 100% rename from src/content/roadmap/statelessness/index.md rename to public/content/roadmap/statelessness/index.md diff --git a/public/content/roadmap/user-experience/index.md b/public/content/roadmap/user-experience/index.md new file mode 100644 index 00000000000..3f38666e539 --- /dev/null +++ b/public/content/roadmap/user-experience/index.md @@ -0,0 +1,36 @@ +--- +title: Improving user experience +description: It is still too complex to use Ethereum for most people. To encourage mass adoption, Ethereum must drastically lower its barriers to entry - users must get the benefits of decentralized, permissionless and censorship resistant access to Ethereum but it must be as frictionless as using a traditional web2 app. +lang: en +image: /roadmap/roadmap-ux.png +alt: "Ethereum roadmap" +template: roadmap +--- + +Using Ethereum needs to be simplified; from managing keys and wallets to initiating transactions. To facilitate mass adoption, Ethereum must drastically increase the ease of use, allowing users to experience permissionless and censorship-resistant access to Ethereum with the frictionless experience of using Web2 apps. + +## Beyond seed phrases {#no-more-seed-phrases} + +Ethereum accounts are protected by a pair of keys used to identify accounts (public key) and sign messages (private key). A private key is like a master password; it allows complete access to an Ethereum account. This is a different way of operating for people more familiar with banks and Web2 apps which manage accounts on a user's behalf. For Ethereum to reach mass adoption without relying on centralized third parties, there must be a straightforward, frictionless way for a user to take custody of their assets and keep control of their data without having to understand public-private key cryptography and key management. + +The solution to this is using smart contract wallets to interact with Ethereum. Smart contract wallets create ways to protect accounts if the keys are lost or stolen, opportunities for better fraud detection and defense, and allow wallets to get new functionality. Although smart contract wallets exist today, they are awkward to build because the Ethereum protocol needs to support them better. This additional support is known as account abstraction. + +More on account abstraction + +## Nodes for everyone + +Users running nodes do not have to trust third parties to provide them with data, and they can interact quickly, privately, and permissionlessly with the Ethereum blockchain. However, running a node right now requires technical knowledge and substantial disk space, meaning many people must trust intermediaries instead. + +There are several upgrades that will make running nodes far easier and far less resource intensive. The way data is stored will be changed to use a more space-efficient structure known as a **Verkle Tree**. Also, with [statelessness](/roadmap/statelessness) or [data expiry](/roadmap/statelessness/#data-expiry), Ethereum nodes will not need to store a copy of the entire Ethereum state data, drastically reducing hard disk space requirements. [Light nodes](/developers/docs/nodes-and-clients/light-clients/) will offer many benefits of running a full node but can run easily on mobile phones or inside simple browser apps. + +Read about Verkle trees + +With these upgrades, the barriers to running a node are reduced to effectively zero. Users will benefit from secure, permissionless access to Ethereum without having to sacrifice noticeable disk space or CPU on their computer or mobile phone, and will not have to rely on third parties for data or network access when they use apps. + +## Current progress {#current-progress} + +Smart contract wallets are already available, but more upgrades are required to make them as decentralized and permissionless as possible. EIP-4337 is a mature proposal that does not require any changes to Ethereum's protocol. The main smart contract required for EIP-4337 was deployed in March 2023. + +Full statelessness is still in the research phase and is likely several years away from being implemented. There are several milestones on the road to full statelessness, including data expiry, that may be implemented sooner. Other roadmap items, such as [Verkle Trees](/roadmap/verkle-trees/) and [Proposer-builder separation](/roadmap/pbs/) need to be completed first. + +Verkle tree testnets are already up and running, and the next phase is running Verkle-tree enabled clients on private, then public testnets. You can help accelerate progress by deploying contracts to the testnets or running testnet clients. diff --git a/src/content/roadmap/verkle-trees/index.md b/public/content/roadmap/verkle-trees/index.md similarity index 100% rename from src/content/roadmap/verkle-trees/index.md rename to public/content/roadmap/verkle-trees/index.md diff --git a/src/content/roadmap/verkle-trees/verkle.png b/public/content/roadmap/verkle-trees/verkle.png similarity index 100% rename from src/content/roadmap/verkle-trees/verkle.png rename to public/content/roadmap/verkle-trees/verkle.png diff --git a/src/content/security/appleTwitterScam.png b/public/content/security/appleTwitterScam.png similarity index 100% rename from src/content/security/appleTwitterScam.png rename to public/content/security/appleTwitterScam.png diff --git a/src/content/security/brokerScam.png b/public/content/security/brokerScam.png similarity index 100% rename from src/content/security/brokerScam.png rename to public/content/security/brokerScam.png diff --git a/src/content/security/discordScam.png b/public/content/security/discordScam.png similarity index 100% rename from src/content/security/discordScam.png rename to public/content/security/discordScam.png diff --git a/src/content/security/index.md b/public/content/security/index.md similarity index 100% rename from src/content/security/index.md rename to public/content/security/index.md diff --git a/src/content/security/passwordManager.png b/public/content/security/passwordManager.png similarity index 100% rename from src/content/security/passwordManager.png rename to public/content/security/passwordManager.png diff --git a/src/content/security/youtubeScam.png b/public/content/security/youtubeScam.png similarity index 100% rename from src/content/security/youtubeScam.png rename to public/content/security/youtubeScam.png diff --git a/public/content/smart-contracts/index.md b/public/content/smart-contracts/index.md new file mode 100644 index 00000000000..7bd00225802 --- /dev/null +++ b/public/content/smart-contracts/index.md @@ -0,0 +1,84 @@ +--- +title: Smart contracts +description: A non-technical introduction to smart contracts +lang: en +--- + +# Introduction to smart contracts {#introduction-to-smart-contracts} + +Smart contracts are the fundamental building blocks of Ethereum's application layer. They are computer programs stored on the blockchain that follow "if this then that" logic, and are guaranteed to execute according to the rules defined by its code, which cannot be changed once created. + +Nick Szabo coined the term "smart contract". In 1994, he wrote [an introduction to the concept](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html), and in 1996 he wrote [an exploration of what smart contracts could do](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). + +Szabo envisioned a digital marketplace where automatic, cryptographically-secure processes enable transactions and business functions to happen without trusted intermediaries. Smart contracts on Ethereum put this vision into practice. + +## Trust in conventional contracts {#trust-and-contracts} + +One of the biggest problems with a traditional contract is the need for trusted individuals to follow through with the contract's outcomes. + +Here is an example: + +Alice and Bob are having a bicycle race. Let's say Alice bets Bob $10 that she will win the race. Bob is confident he'll be the winner and agrees to the bet. In the end, Alice finishes the race well ahead of Bob and is the clear winner. But Bob refuses to pay out on the bet, claiming Alice must have cheated. + +This silly example illustrates the problem with any non-smart agreement. Even if the conditions of the agreement get met (i.e. you are the winner of the race), you must still trust another person to fulfill the agreement (i.e. payout on the bet). + +## A digital vending machine {#vending-machine} + +A simple metaphor for a smart contract is a vending machine, which works somewhat similarly to a smart contract - specific inputs guarantee predetermined outputs. + +- You select a product +- The vending machine displays the price +- You pay the price +- The vending machine verifies that you paid the right amount +- The vending machine gives you your item + +The vending machine will only dispense your desired product after all requirements are met. If you don't select a product or insert enough money, the vending machine won't give out your product. + +## Automatic execution {#automation} + +The main benefit of a smart contract is that it deterministically executes unambiguous code when certain conditions are met. There is no need to wait for a human to interpret or negotiate the result. This removes the need for trusted intermediaries. + +For example, you could write a smart contract that holds funds in escrow for a child, allowing them to withdraw funds after a specific date. If they try to withdraw before that date, the smart contract won't execute. Or you could write a contract that automatically gives you a digital version of a car's title when you pay the dealer. + +## Predictable outcomes {#predictability} + +Traditional contracts are ambiguous because they rely on humans to interpret and implement them. For example, two judges might interpret a contract differently, which could lead to inconsistent decisions and unequal outcomes. Smart contracts remove this possibility. Instead, smart contracts execute precisely based on the conditions written within the contract's code. This precision means that given the same circumstances, the smart contract will produce the same result. + +## Public record {#public-record} + +Smart contracts are useful for audits and tracking. Since Ethereum smart contracts are on a public blockchain, anyone can instantly track asset transfers and other related information. For example, you can check to see that someone sent money to your address. + +## Privacy protection {#privacy-protection} + +Smart contracts also protect your privacy. Since Ethereum is a pseudonymous network (your transactions are tied publicly to a unique cryptographic address, not your identity), you can protect your privacy from observers. + +## Visible terms {#visible-terms} + +Finally, like traditional contracts, you can check what's in a smart contract before you sign it (or otherwise interact with it). A smart contract's transparency guarantees that anyone can scrutinize it. + +## Smart contract use cases {#use-cases} + +Smart contracts can do essentially anything that computer programs can do. + +They can perform computations, create currency, store data, mint NFTs, send communications and even generate graphics. Here are some popular, real-world examples: + +- [Stablecoins](/stablecoins/) +- [Creating and distributing unique digital assets](/nft/) +- [An automatic, open currency exchange](/get-eth/#dex) +- [Decentralized gaming](/dapps/?category=gaming) +- [An insurance policy that pays out automatically](https://etherisc.com/) +- [A standard that lets people create customized, interoperable currencies](/developers/docs/standards/tokens/) + +## More of a visual learner? {#visual-learner} + +Watch Finematics explain smart contracts: + + + +## Further reading {#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/public/content/social-networks/index.md b/public/content/social-networks/index.md new file mode 100644 index 00000000000..8becb117c1a --- /dev/null +++ b/public/content/social-networks/index.md @@ -0,0 +1,121 @@ +--- +title: Decentralized social networks +description: An overview of decentralized social networks on Ethereum +lang: en +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: /ethereum-learn.png +summaryPoint1: Blockchain-based platforms for social interaction and content creation and distribution. +summaryPoint2: Decentralized social media networks protect user privacy and enhance data security. +summaryPoint3: Tokens and NFTs create new ways to monetize content. +--- + +Social networks play a massive role in our daily communications and interactions. However, centralized control of these platforms has created many problems: data breaches, server outages, de-platforming, censorship, and privacy violations are some of the trade-offs social media often make. To combat these issues, developers are building social networks on Ethereum. Decentralized social networks can fix many of the problems of traditional social networking platforms and improve users' overall experience. + +## What are decentralized social networks? {#what-are-decentralized-social-networks} + +Decentralized social networks are blockchain-based platforms that allow users to exchange information as well as publish and distribute content to audiences. Because these applications run on the blockchain, they are capable of being decentralized and resistant to censorship and undue control. + +Many decentralized social networks exist as alternatives to established social media services, such as Facebook, LinkedIn, Twitter, and Medium. But blockchain-powered social networks have a number of features that put them ahead of traditional social platforms. + +### How do decentralized social networks work? {#decentralized-social-networks-overview} + +Decentralized social networks are a class of [decentralized applications (dapps)](/dapps/)—applications powered by [smart contracts](/developers/docs/smart-contracts/) deployed on the blockchain. The contract code serves as the backend for these apps and defines their business logic. + +Traditional social media platforms rely on databases to store user information, program code, and other forms of data. But this creates single points-of-failure and introduces significant risk. For instance, Facebook's servers infamously [went offline for hours](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) last year, cutting off users from the platform. + +Decentralized social networks exist on a peer-to-peer network comprising thousands of nodes around the globe. Even if some nodes fail, the network will run uninterrupted, making applications resistant to failures and outages. + +Using decentralized storage systems like [the InterPlanetary File System (IPFS)](https://ipfs.io/), social networks built on Ethereum can protect user information from exploitation and malicious use. No one will sell your personal information to advertisers, neither will hackers be able to steal your confidential details. + +Many blockchain-based social platforms have native tokens that power monetization in absence of advertising revenue. Users can buy these tokens to access certain features, complete in-app purchases, or tip their favorite content creators. + +## Benefits of decentralized social networks {#benefits} + +1. Decentralized social networks are censorship-resistant and open to everyone. This means users cannot be banned, deplatformed, or restricted arbitrarily. + +2. Decentralized social networks are built on open-source ideals and make source code for applications available for public inspection. By eliminating the implementation of opaque algorithms common in traditional social media, blockchain-based social networks can align the interests of users and platform creators. + +3. Decentralized social networks eliminate the "middle-man". Content creators have direct ownership over their content, and they engage directly with followers, fans, buyers, and other parties, with nothing but a smart contract in between. + +4. As dapps running on the Ethereum network, which is sustained by a global, peer-to-peer network of nodes, decentralized social networks are less susceptible to server downtime and outages. + +5. Decentralized social platforms offer an improved monetization framework for content creators via non-fungible tokens (NFTs), in-app crypto payments, and more. + +6. Decentralized social networks afford users a high level of privacy and anonymity. For instance, an individual can sign in to an Ethereum-based social network using an ENS profile or wallet—without having to share personally identifiable information (PII), such as names, email addresses, etc. + +7. Decentralized social networks rely on decentralized storage, not centralized databases, which are considerably better for safeguarding user data. + +## Decentralized social networks on Ethereum {#ethereum-social-networks} + +The Ethereum network has become the preferred tool for developers creating decentralized social media owing to the popularity of its tokens (ERC-20/ERC-721) and its massive user base. Here are some examples of Ethereum-based social networks: + +### Peepeth {#peepeth} + +[Peepeth](https://peepeth.com/) is a microblogging platform similar to Twitter. It runs on the Ethereum blockchain and uses IPFS to store user data. + +Users can send short messages called "Peeps", which cannot be deleted or modified. You can collect tips or tip anyone on the platform in ether (ETH) without leaving the app. + +### Mirror {#mirror} + +[Mirror](https://mirror.xyz/) is a web3-enabled writing platform that aims to be decentralized and user-owned. Users can read and write for free on Mirror by simply connecting their wallets. Users can also collect writing and subscribe to their favorite writers. + +Posts published on Mirror are permanently stored on Arweave, a decentralized storage platform, and can be minted as collectable [non-fungible tokens (NFTs)](/nft/) known as Writing NFTs. Writing NFTs are completely free for writers to create, and collection happens on an Ethereum L2 — making transactions inexpensive, fast, and environmentally friendly. + +### MINDS {#minds} + +[MINDS](https://www.minds.com/) is one of the most used decentralized social networks. It works like Facebook and has racked up millions of users already. + +Users use the platform's native ERC-20 token $MIND to pay for items. Users can also earn $MIND tokens by publishing popular content, contributing to the ecosystem, and referring others to the platform. + +## Web2 social networks on Ethereum {#web2-social-networks-and-ethereum} + +[Web3](/web3/) native social platforms aren't the only ones trying to incorporate blockchain technology into social media. Many centralized platforms are also planning to integrate Ethereum into their infrastructure: + +### Reddit {#reddit} + +Reddit has [touted Community Points](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users), which are [ERC-20 tokens](/developers/docs/standards/tokens/erc-20/) that users can earn by posting quality content and contributing to online communities (subreddits). You can redeem these tokens within a subreddit to [get exclusive privileges and perks](https://www.reddit.com/community-points/). For this project, Reddit is working with Arbitrum, a [layer 2](/layer-2/) rollup designed to scale Ethereum transactions. + +The program is already live, with the r/CryptoCurrency subreddit [running its version of Community Points called "Moons"](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Per the official description, Moons "reward posters, commenters, and moderators for their contributions to the subreddit." Because these tokens are on the blockchain (users receive them in wallets), they are independent of Reddit and cannot be taken away. + +After concluding a beta phase on the Rinkeby testnet, Reddit Community Points are now on [Arbitrum Nova](https://nova.arbitrum.io/), a blockchain that combines properties of a [sidechain](/developers/docs/scaling/sidechains/) and an [optimistic rollup](/developers/docs/scaling/optimistic-rollups/). Besides using Community Points to unlock special features, users can also trade them for fiat on exchanges. Also, the amount of Community Points a user owns determines their influence on the decision-making process within the community. + +### Twitter {#twitter} + +In January 2021, Twitter Blue [rolled out support for NFTs](https://mashable.com/article/twitter-blue-nft-profile-picture), allowing users to connect their wallets and display NFTs as profile pictures. At time of writing, the social media company has also [announced plans](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) to create a decentralized social network in the future. + +### Instagram {#instagram} + +In May 2022, [Instagram announced support for NFTs](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) on Ethereum and Polygon. Users can post NFTs directly to Instagram by connecting their Ethereum wallet. + +## Use decentralized social networks {#use-decentralized-social-networks} + +- **[Status.im](https://status.im/)** - _Status is a secure messaging app that uses an open-source, peer-to-peer protocol, and end-to-end encryption to protect your messages from third parties._ +- **[Mirror.xyz](https://mirror.xyz/)** - _Mirror is a decentralized, user-owned publishing platform built on Ethereum for users to crowdfund ideas, monetize content, and build high-value communities._ +- **[Lens Protocol](https://lens.xyz/)** - _Lens Protocol is a composable and decentralized social graph helping creators take ownership of their content wherever they go in the digital garden of the decentralized internet._ +- **[Farcaster](https://farcaster.xyz/)** - _Farcaster is a sufficiently decentralized social network. It is an open protocol that can support many clients, just like email._ + +## Further reading {#further-reading} + +### Articles {#articles} + +- [Decentralizing social media: a guide to the web3 social stack](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _Coinbase Ventures_ +- [Social Networks Are the Next Big Decentralization Opportunity](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Goertzel_ +- [Web3 holds the promise of decentralized, community-powered social networks](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ +- [An Overview of the Blockchain Social Media Landscape](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ +- [How Blockchain Can Solve Social Media Privacy](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Prableen Bajpai_ +- [Social Media Networks Are Coming To The Blockchain](https://businesstechguides.co/what-are-decentralized-social-networks) — _Emmanuel Awosika_ +- [Sufficient Decentralization for Social Networks](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Varun Srinivasan_ + +### Videos {#videos} + +- [Decentralized Social Media Explained](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ +- [DeSo Blockchain Wants to Decentralize Social Media](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 {#communities} + +- [Status Discord Server](https://discord.com/invite/3Exux7Y) +- [Mirror Discord Server](https://discord.com/invite/txuCHcE8wV) +- [r/CryptoCurrency subreddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/staking/dvt/dvt-cluster.png b/public/content/staking/dvt/dvt-cluster.png similarity index 100% rename from src/content/staking/dvt/dvt-cluster.png rename to public/content/staking/dvt/dvt-cluster.png diff --git a/src/content/staking/dvt/index.md b/public/content/staking/dvt/index.md similarity index 100% rename from src/content/staking/dvt/index.md rename to public/content/staking/dvt/index.md diff --git a/public/content/staking/pools/index.md b/public/content/staking/pools/index.md new file mode 100644 index 00000000000..6a7da2491c0 --- /dev/null +++ b/public/content/staking/pools/index.md @@ -0,0 +1,86 @@ +--- +title: Pooled staking +description: An overview of how to get started with pooled ETH staking +lang: en +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-pool.png +alt: Leslie the rhino swimming in the pool. +sidebarDepth: 2 +summaryPoints: + - Stake and earn rewards with any amount of ETH by joining forces with others + - Skip the hard part and entrust validator operation to a third-party + - Hold staking tokens in your own wallet +--- + +## What are staking pools? {#what-are-staking-pools} + +Staking pools are a collaborative approach to allow many with smaller amounts of ETH to obtain the 32 ETH required to activate a set of validator keys. Pooling functionality is not natively supported within the protocol, so solutions were built out separately to address this need. + +Some pools operate using smart contracts, where funds can be deposited to a contract, which trustlessly manages and tracks your stake, and issues you a token that represents this value. Other pools may not involve smart contracts and are instead mediated off-chain. + +## Why stake with a pool? {#why-stake-with-a-pool} + +In addition to the benefits we outlined in our [intro to staking](/staking/), staking with a pool comes with a number of distinct benefits. + + + + + + + + + +## What to consider {#what-to-consider} + +Pooled or delegated staking is not natively supported by the Ethereum protocol, but given the demand for users to stake less than 32 ETH a growing number of solutions have been built out to serve this demand. + +Each pool and the tools or smart contracts they use have been built out by different teams, and each comes with benefits and risks. Pools enable users to swap their ETH for a token representing staked ETH. The token is useful because it allows users to swap any amount of ETH to an equivalent amount of a yield-bearing token that generates a return from the staking rewards applied to the underlying staked ETH (and vice versa) on decentralized exchanges even though the actual ETH stays staked on the consensus layer. This means swaps back and forth from a yield-bearing staked-ETH product and "raw ETH" is quick, easy and not only available in multiples of 32 ETH. + +However, these staked-ETH tokens tend to create cartel-like behaviors where a large amount of staked ETH ends up under the control of a few centralized organizations rather than spread across many independent individuals. This creates conditions for censorship or value extraction. The gold standard for staking should always be individuals running validators on their own hardware whenever possible. + +[More on risks of staking tokens](https://notes.ethereum.org/@djrtwo/risks-of-lsd). + +Attribute indicators are used below to signal notable strengths or weaknesses a listed staking pool may have. Use this section as a reference for how we define these attributes while you're choosing a pool to join. + + + +## Explore staking pools {#explore-staking-pools} + +There are a variety of options available to help you with your setup. Use the above indicators to help guide you through the tools below. + + + + + +Please note the importance of choosing a service that takes [client diversity](/developers/docs/nodes-and-clients/client-diversity/) seriously, as it improves the security of the network, and limits your risk. Services that have evidence of limiting majority client use are indicated with "execution client diversity" and "consensus client diversity." + +Have a suggestion for a staking tool we missed? Check out our [product listing policy](/contributing/adding-staking-products/) to see if it would be a good fit, and to submit it for review. + +## Frequently asked questions {#faq} + + +Typically ERC-20 staking tokens are issued to stakers and represent the value of their staked ETH plus rewards. Keep in mind that different pools will distribute staking rewards to their users via slightly different methods, but this is the common theme. + + + +Right now! The Shanghai/Capella network upgrade occurred in April 2023, and introduced staking withdrawals. Validator accounts that back staking pools now have the ability to exit and withdraw ETH to their designated withdrawal address. This enables the ability to redeem your portion of stake for the underlying ETH. Check with your provider to see how they support this functionality. + +Alternatively, pools that utilize an ERC-20 staking token allow users to trade this token in the open market, allowing you to sell your staking position, effectively "withdrawing" without actually removing ETH from the staking contract. + +More on staking withdrawals + + + +There are many similarities between these pooled staking options and centralized exchanges, such as the ability to stake small amounts of ETH and have them bundled together to activate validators. + +Unlike centralized exchanges, many other pooled staking options utilize smart contracts and/or staking tokens, which are usually ERC-20 tokens that can be held in your own wallet, and bought or sold just like any other token. This offers a layer of sovereignty and security by giving you control over your tokens, but still does not give you direct control over the validator client attesting on your behalf in the background. + +Some pooling options are more decentralized than others when it comes to the nodes that back them. To promote the health and decentralization of the network, stakers are always encouraged to select a pooling service that enables a permissionless decentralized set of node operators. + + +## Further reading {#further-reading} + +- [The Ethereum Staking Directory](https://www.staking.directory/) - _Eridian and Spacesider_ +- [Staking with Rocket Pool - Staking Overview](https://docs.rocketpool.net/guides/staking/overview.html) - _RocketPool docs_ +- [Staking Ethereum With Lido](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Lido help docs_ diff --git a/public/content/staking/saas/index.md b/public/content/staking/saas/index.md new file mode 100644 index 00000000000..19fbf6c6751 --- /dev/null +++ b/public/content/staking/saas/index.md @@ -0,0 +1,95 @@ +--- +title: Staking as a service +description: An overview of how to get started with pooled ETH staking +lang: en +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-saas.png +alt: Leslie the rhino floating in the clouds. +sidebarDepth: 2 +summaryPoints: + - Third-party node operators handle the operation of your validator client + - Great option for anyone with 32 ETH who doesn't feel comfortable dealing with the technical complexity of running a node + - Reduce trust, and maintain custody of your withdrawal keys +--- + +## What is staking as a service? {#what-is-staking-as-a-service} + +Staking as a service (“SaaS") represents a category of staking services where you deposit your own 32 ETH for a validator, but delegate node operations to a third-party operator. This process usually involves being guided through the initial setup, including key generation and deposit, then uploading your signing keys to the operator. This allows the service to operate your validator on your behalf, usually for a monthly fee. + +## Why stake with a service? {#why-stake-with-a-service} + +The Ethereum protocol does not natively support delegation of stake, so these services have been built out to fill this demand. If you have 32 ETH to stake, but don't feel comfortable dealing with hardware, SaaS services allow you to delegate the hard part while you earn native block rewards. + + + + + + + + + +## What to consider {#what-to-consider} + +There are a growing number of SaaS providers to help you stake your ETH, but they all have their own benefits and risks. All SaaS options require additional trust assumptions compared to home-staking. Saas options may have additional code wrapping the Ethereum clients that is not open or auditable. SaaS also has a detrimental effect on network decentralization. Depending on the setup, you may not control your validator - the operator could act dishonestly using your ETH. + +Attribute indicators are used below to signal notable strengths or weaknesses a listed SaaS provider may have. Use this section as a reference for how we define these attributes while you're choosing a service to help with your staking journey. + + + +## Explore staking service providers {#saas-providers} + +Below are some available SaaS provider. Use the above indicators to help guide you through these services + + + +### SaaS providers + + + +Please note the importance of supporting [client diversity](/developers/docs/nodes-and-clients/client-diversity/) as it improves the security of the network, and limits your risk. Services that have evidence of limiting majority client use are indicated with "execution client diversity" and "consensus client diversity." + +### Key Generators + + + +Have a suggestion for a staking-as-a-service provider we missed? Check out our [product listing policy](/contributing/adding-staking-products/) to see if it would be a good fit, and to submit it for review. + +## Frequently asked questions {#faq} + + +Arrangements will differ from provider-to-provider, but commonly you will be guided through setting up any signing keys you need (one per 32 ETH), and uploading these to your provider to allow them to validate on your behalf. The signing keys alone do not give any ability to withdraw, transfer, or spend your funds. However, they do provide the ability to cast votes towards consensus, which if not done properly can result in offline penalties or slashing. + + + +Yes. Each account is comprised of both BLS signing keys, and BLS withdrawal keys. In order for a validator to attest to the state of the chain, participate in sync committees and propose blocks, the signing keys must be readily accessible by a validator client. These must be connected to the internet in some form, and are thus inherently considered to be "hot" keys. This is a requirement for your validator to be able to attest, and thus the keys used to transfer or withdraw funds are separated for security reasons. + +The BLS withdrawal keys are used to sign a one-time message that declares which execution layer account staking rewards and exited funds should go to. Once this message is broadcast, the BLS withdrawal keys are no longer needed. Instead, control over withdrawn funds is permanently delegated to the address you provided. This allows you to set a withdrawal address secured via your own cold storage, minimizing risk to your validator funds, even if someone else controls your validator signing keys. + +Updating withdrawal credentials is a required step to enable withdrawals\*. This process involves generating the withdrawal keys using your mnemonic seed phrase. + +Make certain you back this seed phrase up safely or you will be unable to generate your withdraw keys when the time comes. + +\*Stakers who provided a withdrawal address with initial deposit do not need to set this. Check with your SaaS provider for support regarding how to prepare your validator. + + + +Staking withdrawals were implemented in the Shanghai/Capella upgrade in April 2023. Stakers need to provide a withdrawal address (if not provided on initial deposit), and reward payments will begin being distributed automatically on a periodic basis every few days. + +Validators can also fully exit as a validator, which will unlock their remaining ETH balance for withdrawal. Accounts that have provided an execution withdrawal address and completed the exiting process will receive their entire balance to the withdrawal address provided during the next validator sweep. + +More on staking withdrawals + + + +By using an SaaS provider, you are entrusting the operation of your node to someone else. This comes with the risk of poor node performance, which is not in your control. In the event your validator is slashed, your validator balance will be penalized and forcibly removed from the validator pool. + +Upon completion of the slashing/exiting process, these funds will be transferred to the withdrawal address assigned to the validator. This requires providing a withdrawal address to enable. This may have been provided on initial deposit. If not, the validator withdrawal keys will need to be used to sign a message declaring a withdrawal address. If no withdrawal address has been provided, funds will remain locked until provided. + +Contact individual SaaS provider for more details on any guarantees or insurance options, and for instructions on how to provide a withdrawal address. If you'd prefer to be in full control of your validator setup, learn more about how to solo stake your ETH. + + +## Further reading {#further-reading} + +- [The Ethereum Staking Directory](https://www.staking.directory/) - _Eridian and Spacesider_ +- [Evaluating Staking Services](https://www.attestant.io/posts/evaluating-staking-services/) - _Jim McDonald 2020_ diff --git a/public/content/staking/solo/index.md b/public/content/staking/solo/index.md new file mode 100644 index 00000000000..a5d252b5334 --- /dev/null +++ b/public/content/staking/solo/index.md @@ -0,0 +1,204 @@ +--- +title: Solo stake your ETH +description: An overview of how to get started solo staking your ETH +lang: en +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-solo.png +alt: Leslie the rhino on her own computer chip. +sidebarDepth: 2 +summaryPoints: + - Receive maximum rewards directly from the protocol for keeping your validator properly functioning and online + - Run home hardware and personally add to the security and decentralization of the Ethereum network + - Remove trust, and never give up control of the keys to your funds +--- + +## What is solo staking? {#what-is-solo-staking} + +Solo staking is the act of [running an Ethereum node](/run-a-node/) connected to the internet and depositing 32 ETH to activate a [validator](#faq), giving you the ability to participate directly in network consensus. + +**Solo staking increases the decentralization of the Ethereum network**, making Ethereum more censorship-resistant and robust against attacks. Other staking methods may not help the network in the same ways. Solo staking is the best staking option for securing Ethereum. + +An Ethereum node consists of both an execution layer (EL) client, as well as a consensus layer (CL) client. These clients are software that work together, along with a valid set of signing keys, to verify transactions and blocks, attest to the correct head of the chain, aggregate attestations, and propose blocks. + +Solo stakers are responsible for operating the hardware needed to run these clients. It is highly recommended to use a dedicated machine for this that you operate from home–this is extremely beneficial to the health of the network. + +A solo staker receives rewards directly from the protocol for keeping their validator properly functioning and online. + +## Why stake solo? {#why-stake-solo} + +Solo staking comes with more responsibility but provides you with maximum control over your funds and staking setup. + + + + + + + +## Considerations before staking solo {#considerations-before-staking-solo} + +As much as we wish that solo staking was accessible and risk free to everyone, this is not reality. There are some practical and serious considerations to keep in mind before choosing to solo stake your ETH. + + + +When operating your own node you should spend some time learning how to use the software you've chosen. This involves reading relevant documentation and being attune to communication channels of those dev teams. + +The more you understand about the software you're running and how proof-of-stake works, the less risky it will be as a staker, and the easier it will be to fix any issues that may arise along the way as a node operator. + + + +Node setup requires a reasonable comfort level when working with computers, although new tools are making this easier over time. Understanding of the command-line interface is helpful, but no longer strictly required. + +It also requires very basic hardware setup, and some understanding of minimum recommended specs. + + + +Just like how private keys secure your Ethereum address, you will need to generate keys specifically for your validator. You must understand how to keep any seed phrases or private keys safe and secure.{' '} + +Ethereum security and scam prevention + + + +Hardware occasionally fails, network connections error out, and client software occasionally needs upgrading. Node maintenance is inevitable and will occasionally require your attention. You'll want to be sure you stay aware of any anticipated network upgrades, or other critical client upgrades. + + + +Your rewards are proportional to the time your validator is online and properly attesting. Downtime incurs penalties proportional to how many other validators are offline at the same time, but does not result in slashing. Bandwidth also matters, as rewards are decreased for attestations that are not received in time. Requirements will vary, but a minimum of 10 Mb/s up and down is recommended. + + + +Different from inactivity penalties for being offline, slashing is a much more serious penalty reserved for malicious offenses. By running a minority client with your keys loaded on only one machine at time, your risk of being slashed is minimized. That being said, all stakers must be aware of the risks of slashing. + + More on slashing and validator lifecycle + + + + + +## How it works {#how-it-works} + + + +While active you will earn ETH rewards, which will be periodically deposited into your withdrawal address. + +If ever desired, you can exit as a validator which eliminates the requirement to be online, and stops any further rewards. Your remaining balance will then be withdrawn to the withdrawal address that you designate during setup. + +[More on staking withdrawals](/staking/withdrawals/) + +## Get started on the Staking Launchpad {#get-started-on-the-staking-launchpad} + +The Staking Launchpad is an open source application that will help you become a staker. It will guide you through choosing your clients, generate your keys and depositing your ETH to the staking deposit contract. A checklist is provided to make sure you've covered everything to get your validator set up safely. + + + +## What to consider with node and client setup tools {#node-tool-considerations} + +There are a growing number of tools and services to help you solo stake your ETH, but each come with different risks and benefits. + +Attribute indicators are used below to signal notable strengths or weaknesses a listed staking tool may have. Use this section as a reference for how we define these attributes while you’re choosing what tools to help with your staking journey. + + + +## Explore node and client setup tools {#node-and-client-tools} + +There are a variety of options available to help you with your setup. Use the above indicators to help guide you through the tools below. + + + +### Node tools + + + +Please note the importance of choosing a [minority client](/developers/docs/nodes-and-clients/client-diversity/) as it improves the security of the network, and limits your risk. Tools that allow you to setup minority client are denoted as "multi-client." + +### Key Generators + +These tools can be used as an alternative to the [Staking Deposit CLI](https://github.com/ethereum/staking-deposit-cli/) to help with key generation. + + + +Have a suggestion for a staking tool we missed? Check out our [product listing policy](/contributing/adding-staking-products/) to see if it would be a good fit, and to submit it for review. + +## Explore solo staking guides {#staking-guides} + + + +## Frequently asked questions {#faq} + +These are a few of the most common questions about staking that are worth knowing about. + + + +A validator is a virtual entity that lives on Ethereum and participates in the consensus of the Ethereum protocol. Validators are represented by a balance, public key, and other properties. A validator client is the software that acts on behalf of the validator by holding and using its private key. A single validator client can hold many key pairs, controlling many validators. + + + + +Each key-pair associated with a validator requires exactly 32 ETH to be activated. More ETH deposited to a single set of keys does not increase rewards potential, as each validator is limited to an effective balance of 32 ETH. This means that staking is done in 32 ETH increments, each with it's own set of keys and balance. + +Do not deposit more than 32 ETH for a single validator. It will not increase your rewards. If a withdrawal address has been set for the validator, excess funds over 32 ETH will be automatically withdrawn to this address during the next validator sweep. + +If solo staking seems too demanding for you, consider using a staking-as-a-service provider, or if you're working with less than 32 ETH, check out the staking pools. + + + +Going offline when the network is finalizing properly will NOT result in slashing. Small inactivity penalties are incurred if your validator is not available to attest for a given epoch (each 6.4 minutes long), but this is very different to slashing. These penalties are slightly less than the reward you would have earned had the validator been available to attest, and losses can be earned back with approximately an equal amount of time back online again. + +Note that penalties for inactivity are proportional to how many validators are offline at the same time. In cases where a large portion of the network is all offline at once, the penalties for each of these validators will be greater than when a single validator is unavailable. + +In extreme cases if the network stops finalizing as a result of more than a third of the validators being offline, these users will suffer what is known as a quadratic inactivity leak, which is an exponential drain of ETH from offline validator accounts. This enables the network to eventually self-heal by burning the ETH of inactive validators until their balance reaches 16 ETH, at which point they will be automatically ejected from the validator pool. The remaining online validators will eventually comprise over 2/3 the network again, satisfying the supermajority needed to once again finalize the chain. + + + +In short, this can never be fully guaranteed, but if you act in good faith, run a minority client and only keep your signing keys on one machine at a time, the risk of getting slashed is nearly zero. + +There are only a few specific ways that can result in a validator getting slashed and ejected from the network. At time of writing, the slashings that have occurred have been exclusively a product of redundant hardware setups where signing keys are stored on two separate machines at once. This can inadvertently result in a double vote from your keys, which is a slashable offense. + +Running a supermajority client (any client used by over 2/3 the network) also holds the risk of potential slashing in the event this client has a bug that results in a chain fork. This can result in a faulty fork that gets finalized. To correct back to the intended chain would require submitting a surround vote by trying to undo a finalized block. This is also a slashable offense and can be avoided simply by running a minority client instead. + +Equivalent bugs in a minority client would never finalize and thus would never result in a surround vote, and would simply result in inactivity penalties, not slashing. + + + + + +Individual clients may vary slightly in terms of performance and user interface, as each are developed by different teams using a variety of programming languages. That being said, none of them are "best." All production clients are excellent pieces of software, that all perform the same core functions to sync and interact with the blockchain. + +Since all production clients provide the same basic functionality, it is actually very important that you choose a minority client, meaning any client that is NOT currently being used by a majority of validators on the network. This may sound counterintuitive, but running a majority or supermajority client puts you at an increased risk of slashing in the event of a bug in that client. Running a minority client drastically limits these risks. + +Learn more about why client diversity is critical + + + +Although a virtual private server (VPS) can be used as a replacement to home hardware, the physical access and location of your validator client does matter. Centralized cloud solutions such as Amazon Web Services or Digital Ocean allow the convenience of not having to obtain and operate hardware, at the expense of centralizing the network. + +The more validator clients running on a single centralized cloud storage solution, the more dangerous it becomes for these users. Any event that takes these providers offline, whether by an attack, regulatory demands, or just power/internet outages, will result in every validator client that relies on this server to go offline at the same time. + +Offline penalties are proportional to how many others are offline at the same time. Using a VPS greatly increases the risk that offline penalties will be more severe, and increases your risk of quadratic leaking or slashing in the event the outage is large enough. To minimize your own risk, and the risk to the network, users are strongly encouraged to obtain and operate their own hardware. + + + + +Withdrawals of any kind from the Beacon Chain require withdrawal credentials to be set. + +New stakers set this at time of key generation and deposit. Existing stakers who did not already set this can upgrade their keys to support this functionality. + +Once withdrawal credentials are set, reward payments (accumulated ETH over the initial 32) will be periodically distributed to the withdrawal address automatically. + +To unlock and receive your entire balance back you must also complete the process of exiting your validator. + +More on staking withdrawals + + +## Further reading {#further-reading} + +- [The Ethereum Staking Directory](https://www.staking.directory/) - _Eridian and Spacesider_ +- [Ethereum's Client Diversity Problem](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ +- [Helping Client Diversity](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ +- [Client diversity on Ethereum's consensus layer](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ +- [How To: Shop For Ethereum Validator Hardware](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ +- [Step by Step: How to join the Ethereum 2.0 Testnet](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _Butta_ +- [Eth2 Slashing Prevention Tips](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raul Jordan 2020_ diff --git a/public/content/staking/withdrawals/index.md b/public/content/staking/withdrawals/index.md new file mode 100644 index 00000000000..ae46f089e3e --- /dev/null +++ b/public/content/staking/withdrawals/index.md @@ -0,0 +1,218 @@ +--- +title: Staking withdrawals +description: Page summarizing what staking push withdrawals are, how they work, and what stakers need to do to get their rewards +lang: en +template: staking +image: /staking/leslie-withdrawal.png +alt: Leslie the rhino with her staking rewards +sidebarDepth: 2 +summaryPoints: + - The Shanghai/Capella upgrade enabled staking withdrawals on Ethereum + - Validator operators must provide a withdrawal address to enable + - Rewards are automatically distributed every few days + - Validators who fully exit staking will receive their remaining balance +--- + + +Staking withdrawals were enabled with the Shanghai/Capella upgrade which occurred on April 12, 2023. More about Shanghai/Capella + + +**Staking withdrawals** refer to transfers of ETH from a validator account on Ethereum's consensus layer (the Beacon Chain), to the execution layer where it can be transacted with. + +**Reward payments of excess balance** over 32 ETH will automatically and regularly be sent to a withdrawal address linked to each validator, once provided by the user. Users can also **exit staking entirely**, unlocking their full validator balance. + +## Staking rewards {#staking-rewards} + +Reward payments are automatically processed for active validator accounts with a maxed out effective balance of 32 ETH. + +Any balance above 32 ETH earned through rewards does not actually contribute to principal, or increase the weight of this validator on the network, and is thus automatically withdrawn as a reward payment every few days. Aside from providing a withdrawal address one time, these rewards do not require any action from the validator operator. This is all initiated on the consensus layer, thus no gas (transaction fee) is required at any step. + +### How did we get here? {#how-did-we-get-here} + +Over the past few years Ethereum has undergone several network upgrades transitioning to a network secured by ETH itself, instead of energy-intensive mining as it once was. Participating in consensus on Ethereum is now known as "staking", as participants have voluntarily locked up ETH, placing it "at stake" for the ability to participate in the network. Users who follow the rules will be rewarded, while attempts to cheat can be penalized. + +Since the launch of the staking deposit contract in November 2020, some brave Ethereum pioneers have voluntarily locked funds up to activate "validators", special accounts that have the right to formally attest to and propose blocks, following network rules. + +Before the Shanghai/Capella upgrade, you couldn't use or access your staked ETH. But now, you can opt-in to automatically receive your rewards into a chosen account, and you can also withdraw your staked ETH whenever you want. + +### How do I prepare? {#how-do-i-prepare} + + + +### Important notices {#important-notices} + +Providing a withdrawal address is a required step for any validator account before it will be eligible to have ETH withdrawn from its balance. + + + Each validator account can only be assigned a single withdrawal address, one time. Once an address is chosen and submitted to the consensus layer, this cannot be undone or changed again. Double-check ownership and accuracy of the address provided before submitting. + + +There is no threat to your funds in the meantime for not providing this, assuming your mnemonic/seed phrase has remained safe offline, and has not been compromised in any way. Failure to add withdrawal credentials will simply leave the ETH locked in the validator account as it has been until a withdrawal address is provided. + +## Exiting staking entirely {#exiting-staking-entirely} + +Providing a withdrawal address is required before _any_ funds can be transferred out of a validator account balance. + +Users looking to exit staking entirely and withdraw their full balance back must also sign and broadcast a "voluntary exit" message with validator keys which will start the process of exiting from staking. This is done with your validator client and submitted to your consensus node, and does not require gas. + +The process of a validator exiting from staking takes variable amounts of time, depending on how many others are exiting at the same time. Once complete, this account will no longer be responsible for performing validator network duties, is no longer eligible for rewards, and no longer has their ETH "at stake". At this time the account will be marked as fully “withdrawable”. + +Once an account is flagged as "withdrawable", and withdrawal credentials have been provided, there is nothing more a user needs to do aside from wait. Accounts are automatically and continuously swept by block proposers for eligible exited funds, and your account balance will be transferred in full (also known as a "full withdrawal") during the next sweep. + +## When are staking withdrawals enabled? {#when} + +Staking withdrawals are live! Withdrawal functionality was enabled as part of the Shanghai/Capella upgrade which occurred on April 12, 2023. + +The Shanghai/Capella upgrade enabled previously staked ETH to be reclaimed into regular Ethereum accounts. This closed the loop on staking liquidity, and brought Ethereum one step closer on its journey towards building a sustainable, scalable, secure decentralized ecosystem. + +- [More on Ethereum history](/history/) +- [More on the Ethereum roadmap](/roadmap/) + +## How do withdrawal payments work? {#how-do-withdrawals-work} + +Whether a given validator is eligible for a withdrawal or not is determined by the state of the validator account itself. No user input is needed at any given time to determine whether an account should have a withdrawal initiated or not—the entire process is done automatically by the consensus layer on a continuous loop. + +### More of a visual learner? {#visual-learner} + +Check out this explanation of Ethereum staking withdrawals by Finematics: + + + +### Validator "sweeping" {#validator-sweeping} + +When a validator is scheduled to propose the next block, it is required to build a withdrawal queue, of up to 16 eligible withdrawals. This is done by originally starting with validator index 0, determining if there is an eligible withdrawal for this account per the rules of the protocol, and adding it to the queue if there is. The validator set to propose the following block will pick up where the last one left off, progressing in order indefinitely. + + +Think about an analogue clock. The hand on the clock points to the hour, progresses in one direction, doesn’t skip any hours, and eventually wraps around to the beginning again after the last number is reached.

+Now instead of 1 through 12, imagine the clock has 0 through N (the total number of validator accounts that have ever been registered on the consensus layer, over 500,000 as of Jan 2023).

+The hand on the clock points to the next validator that needs to be checked for eligible withdrawals. It starts at 0, and progresses all the way around without skipping any accounts. When the last validator is reached, the cycle continues back at the beginning. +
+ +#### Checking an account for withdrawals {#checking-an-account-for-withdrawals} + +While a proposer is sweeping through validators for possible withdrawals, each validator being checked is evaluated against a short series of questions to determine if a withdrawal should be triggered, and if so, how much ETH should be withdrawn. + +1. **Has a withdrawal address been provided?** If no withdrawal address has been provided, the account is skipped and no withdrawal initiated. +2. **Is the validator exited and withdrawable?** If the validator has fully exited, and we have reached the epoch where their account is considered to be "withdrawable", then a full withdrawal will be processed. This will transfer the entire remaining balance to the withdrawal address. +3. **Is the effective balance maxed out at 32?** If the account has withdrawal credentials, is not fully exited, and has rewards above 32 waiting, a partial withdrawal will be processed which transfers only the rewards above 32 to the user's withdrawal address. + +There are only two actions that are taken by validator operators during the course of a validator's life cycle that influence this flow directly: + +- Provide withdrawal credentials to enable any form of withdrawal +- Exit from the network, which will trigger a full withdrawal + +### Gas free {#gas-free} + +This approach to staking withdrawals avoids requiring stakers to manually submit a transaction requesting a particular amount of ETH to be withdrawn. This means there is **no gas (transaction fee) required**, and withdrawals also do not compete for existing execution layer block space. + +### How frequently will I get my staking rewards? {#how-soon} + +A maximum of 16 withdrawals can be processed in a single block. At that rate, 115,200 validator withdrawals can be processed per day (assuming no missed slots). As noted above, validators without eligible withdrawals will be skipped, decreasing the time to finish the sweep. + +Expanding this calculation, we can estimate the time it will take to process a given number of withdrawals: + + + +| Number of withdrawals | Time to complete | +| :-------------------: | :--------------: | +| 400,000 | 3.5 days | +| 500,000 | 4.3 days | +| 600,000 | 5.2 days | +| 700,000 | 6.1 days | +| 800,000 | 7.0 days | + + + +As you see this slows down as more validators are on the network. An increase in missed slots could slow this down proportionally, but this will generally represent the slower side of possible outcomes. + +## Frequently asked questions {#faq} + + +No, the process to provide withdrawal credentials is a one-time process, and cannot be changed once submitted. + + + +By setting an execution layer withdrawal address the withdrawal credentials for that validator have permanently been changed. This means the old credentials will no longer work, and the new credentials direct to an execution layer account. + +Withdrawal addresses can be either a smart contract (controlled by its code), or an externally owned account (EOA, controlled by its private key). Currently these accounts have no way to communicate a message back to the consensus layer that would signal a change of validator credentials, and adding this functionality would add unnecessary complexity to the protocol. + +As an alternative to changing the withdrawal address for a particular validator, users may choose to set a smart contract as their withdrawal address which could handle key rotating, such as a Safe. Users who set their funds to their own EOA can perform a full exit to withdraw all of their staked funds, and then re-stake using new credentials. + + + + +If you are part of a staking pool or hold staking tokens, you should check with your provider for more details about how staking withdrawals are handled, as each service operates differently. + +In general, users should be free to reclaim their underlying staked ETH, or change which staking provider they utilize. If a particular pool is getting too large, funds can be exited, redeemed, and re-staked with a smaller provider. Or, if you’ve accumulated enough ETH you could stake from home. + + + + +Yes, as long as your validator has provided a withdrawal address. This must be provided once to initially enable any withdrawals, then reward payments will be automatically triggered every few days with each validator sweep. + + + + +No, if your validator is still active on the network, a full withdrawal will not happen automatically. This requires manually initiating a voluntary exit. + +Once a validator has completed the exiting process, and assuming the account has withdrawal credentials, the remaining balance will then be withdrawn during the next validator sweep. + + + + +Withdrawals are designed to be pushed automatically, transferring any ETH that is not actively contributing to stake. This includes full balances for accounts that have completed the exiting process. + +It is not possible to manually request specific amounts of ETH to be withdrawn. + + + + +Validator operators are recommended to visit the Staking Launchpad Withdrawals page where you'll find more details about how to prepare your validator for withdrawals, timing of events, and more details about how withdrawals function. + +To try out your setup on a testnet first, visit the the Goerli Testnet Staking Launchpad to get started. + + + + +No. Once a validator has exited and its full balance has been withdrawn, any additional funds deposited to that validator will automatically be transferred to the withdrawal address during the next validator sweep. To re-stake ETH, a new validator must be activated. + + +## Further reading {#further-reading} + +- [Staking Launchpad Withdrawals](https://launchpad.ethereum.org/withdrawals) +- [EIP-4895: Beacon chain push withdrawals as operations](https://eips.ethereum.org/EIPS/eip-4895) +- [Ethereum Cat Herders - Shanghai](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) +- [PEEPanEIP #94: Staked ETH Withdrawal (Testing) with Potuz & Hsiao-Wei Wang](https://www.youtube.com/watch?v=G8UstwmGtyE) +- [PEEPanEIP#68: EIP-4895: Beacon chain push withdrawals as operations with Alex Stokes](https://www.youtube.com/watch?v=CcL9RJBljUs) +- [Understanding Validator Effective Balance](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/terms-of-use/index.md b/public/content/terms-of-use/index.md similarity index 100% rename from src/content/terms-of-use/index.md rename to public/content/terms-of-use/index.md diff --git a/public/content/translations/am/nft/index.md b/public/content/translations/am/nft/index.md new file mode 100644 index 00000000000..cc9a2f33d90 --- /dev/null +++ b/public/content/translations/am/nft/index.md @@ -0,0 +1,94 @@ +--- +title: የማይተኩ ቶከኖች (NFT) +description: በኢቲሪየም ላይ ስላሉ NFTዎች አጠቃላይ እይታ +lang: am +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: በሆሎግራም አማካኝነት የሚታየው የETH አርማ. +summaryPoint1: ማንኛውንም ልዩ የሆነ ነገር የሚወከልበት መንገድ እንደ ኢቴሪየም-ተኮር ንብረት። +summaryPoint2: NFTዎች ከበፊቱ በበለጠ ለይዘት ፈጣሪዎች የበለጠ ኃይል እየሰጡ ነው። +summaryPoint3: በኢቲሪየም ብሎክቼን ላይ በዘመናዊ ውሎች የጎለበቱ። +--- + +## NFTዎች ምንድናቸው? {#what-are-nfts} + +እያንዳንዳቸው NFTዎች ልዩ የሆኑ ቶከኖች ናቸው። እያንዳንዱ NFT የተለያዩ ንብረቶች አሉዋቸው (የማይተኩ) እና በጣም በትንሽ ብዛት ይገኛሉ። ይህም ከእንደ ERC-20 ቶከኖች እያንዳንዱ ሚመሳሰሉ በአንድ ስብስብ ውስጥ እንዳሉ ቶከኖች ከተመሳሳይ ባህሪያት ካላቸው ('የሚተኩ') ይለያል። በቦርሳህ ውስጥ የትኛው የተለየ የዶላር ገንዘብ እንዳለህ ግድ አይልህም፣ ምክንያቱም ሁሉም ተመሳሳይ እና ዋጋቸው አንድአይነት ነው። ነገር ግን፣ እርስዎ የየትኛው NFT ባለቤት _እንደሆኑ_ ይጨነቃሉ፣ ምክንያቱም ሁሉም ከሌሎች የሚለያቸው ('የማይተካ') የግል ንብረቶች ስላሏቸው ነው። + +የእያንዳንዱ NFT ልዩነት እንደ ስነ ጥበብ፣ ተሰብሳቢ ነገሮች ወይም ሪል እስቴት ያሉ ነገሮችን በቶከን መወከል ያስችላል፣ አንድ ልዩ NFT የተወሰነ ልዩ እውነተኛ ዓለም ወይም ዲጂታል ንጥል ነገርን ይወክላል። የንብረት ባለቤትነት በኢቲሪየም ብሎክቼን የተጠበቀ ነው - ማንም ሰው የባለቤትነት መዝገብን ማሻሻል ወይም አዲስ NFT ገልብጦ/ለጥፎ ወደ ማኖር ማድረግ አይችልም። + + + +## የንብረቶች በይነ መረብ {#internet-of-assets} + +NFT እና ኢቲሪየም በአሁኑ ጊዜ በይነመረብ ላይ ያሉትን አንዳንድ ችግሮች ይፈታሉ፡፡ ሁሉም ነገር ዲጂታል እየሆነ ሲመጣ የአካላዊ ንጥሎችን እንደ እጥረት፣ ልዩነት እና የባለቤትነት ማረጋገጫ ያሉ ባህሪያት የማባዛት ፍላጎት ይጨምራል። በማዕከላዊ አካል ቁጥጥር ስር ባልሆነ መንገድ። ለምሳሌ NFTዎችን በመጠቀም በአንድ በተወሰነ ኩባንያ የሙዚቃ መተግበሪያ ላይ ያልተወሰነ የmp3 የሙዚቃ ባለቤት መሆን ይችላሉ ወይም በመድረክ አቅራቢው በዘፈቀደ ከእርስዎ ሊወሰድ የማይችል ፣ መሸጥ ወይም መቀየር የሚችሉት የማህበራዊ ሚዲያ መያዣ ስም ባለቤት መሆን ይችላሉ ። + +ዛሬ ብዙዎቻችን የምንጠቀመው በይነ መረብ ከNFTዎች በይነ መረብ ጋር ሲወዳደር ምን እንደሚመስል እነሆ... + +### ንጽጽር {#nft-comparison} + +| የNFT በይነ መረብ | የዛሬው በይነ መረብ | +| ------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| የንብረቶችዎ ባለቤት ነዎት! መሸጥ ወይም መቀየር የሚችሉት እርስዎ ብቻ ነዎት። | ከአንዳንድ ድርጅት ንብረት ይከራያሉ። | +| NFTዎች የዲጂታል ልዩነት አላቸው፣ ሁለት NFTዎች መቼም አንድ አይደሉም። | የአንድን ስራ ቅጂ ብዙውን ጊዜ ከዋናው ስራ መለየት አይቻልም። | +| የNFT ባለቤትነት በማንም ሰው እንዲረጋገጥ በብሎክቼይን ላይ ይቀመጣል። | የዲጂታል እቃዎች ባለቤትነት መዝገቦች በተቋማት ቁጥጥር ስር ባሉ ሰርቨሮች ላይ ተቀምጠዋል - የእነሱን ቃል ማመን አለብዎት። | +| NFTዎች በኢቲርየም ላይ ያሉ ዘመናዊ ውሎች ናቸው። ይህ ማለት በኢተርየም ላይ ባሉ ሌሎች ዘመናዊ ውሎች እና መተግበሪያዎች ውስጥ በቀላሉ ጥቅም ላይ ሊውሉ ይችላሉ! | የዲጅታል ምርቶች ያላቸው ኩባንያዎች አብዛኛውን ጊዜ የራሳቸው "የታጠረ" መሠረተ ልማት ያስፈልጋቸዋል። | +| የሚድያ ስራ ፈጣሪዎች ስራቸውን በየትኛውም ቦታ መሸጥ እና አለምአቀፍ ገበያ ማግኘት ይችላሉ። | ፈጣሪዎች በሚጠቀሙባቸው መድረኮች መሠረተ ልማት እና ስርጭት ላይ ይወሰናሉ። እነዚህ ብዙውን ጊዜ በአጠቃቀም ውሎች እና በጂኦግራፊያዊ ገደቦች ስር ተገዢ ናቸው። | +| የNFT ፈጣሪዎች በራሳቸው ስራ ላይ የባለቤትነት መብቶችን ይዘው መቆየት እና የሮያሊቲ ክፍያን በቀጥታ በNFT ውል ማስገባት ይችላሉ። | እንደ የሙዚቃ ማሰራጫያ ያሉ አገልግሎቶችን የሚያቀርቡ መድረኮች ከሽያጮች የሚገኘውን አብዛኛው ትርፍ ያወስዳሉ። | + +## NFTዎች እንዴት ይሰራሉ? {#how-nfts-work} + +በኢተርየም ላይ እንደ ማንኛውም ቶከን፣ NFTዎች በዘመናዊ ውሎች ይሰጣሉ። ዘመናዊ ውሉ ምን ተግባራትን እንደሚፈጽም ከሚገልጹት ከበርካታ የNFT መስፈርቶች (በተለምዶ ERC-721 ወይም ERC-1155) ጋር የሚስማማ ነው። ኮንትራቱ NFTዎችን መፍጠር('ሚንት') እንዲሁም ለአንድ ለተወሰነ ባለቤት ሊመድባቸው ይችላል። ባለቤትነት በውሉ ውስጥ የተወሰኑ NFTዎችን ወደ ተወሰኑ አድራሻዎች በማጓደን ይገለጻል። NFT መታወቂያ እና በተለምዶ አብሮት የተያያዘ ሜታዳታ አለው ይህም አንድ የተወሰነን ቶከን ልዩ የሚያደርገው ነው። + +አንድ ሰው NFTን ሲፈጥር ወይም ሚንት ሲያደርግ፣ በአድራሻቸው ላይ የተለየ NFTን የሚመድበውን የዘመናዊ ውል ተግባር እየፈጸሙ ነው። ይህ መረጃ የብሎክቼይን አካል በሆነው በውሉ ማከማቻ ውስጥ ይቀመጣል። የውል ፈጣሪው ተጨማሪ አመክንዮ በውሉ ላይ ሊጽፍ ይችላል፣ ለምሳሌ አጠቃላይ አቅርቦቱን መገደብ ወይም ቶከን በተላለፈ ቁጥር ለፈጣሪው የሚከፈለውን ሮያሊቲ መወሰን። + +## NFTዎች ለምን ይጠቅማሉ? {#nft-use-cases} + +NFTዎች ለብዙ ነገሮች ይጠቅማሉ ። ከእነዚህም ውስጥ: + +- በአንድ ዝግጅት ላይ መሳተፍዎን ለማረጋገጥ +- አንድን ስልጠና ማጠናቀቆን ለማረጋገጥ +- በባለቤትነት ሊወስድዋቸው የሚችሉ የጨዋታዎች እቃዎች +- የዲጅታል ጥበብ +- የእውን ዓለም ንብረቶችን በቶክን ለመወከል +- የኦንላይን ማንነትዎን ለማረጋገጥ +- ልዩ የሆኑ ይዘቶችን ለማግኘት +- ትኬት ለመቁረጥ +- ላልተማከሉ የበይነ መረብ ዶሜይን ስሞች +- በDeFi ውስጥ ለማስያዣ + +ምናልባት NFTዎን በመጠቀም የስራዎችዎን ቁጥጥር ሳያጡ እና ትርፍዎን ለሁለተኛ ወገን መስዋዕት ሳያደርጉ ማጋራት የሚፈልግ አርቲስት ነዎት። አዲስ ውል በመፍጠር የNFTዎችን ብዛት እና ባህሪያቶቻቸውን መወሰን እንዲሁም ክተወሰኑ የስነጥበብ ስራዎች ጋር ማገናኘትን ይችላሉ። አርቲስቱ እንደመሆንዎ መጠን መከፈል ያለብዎትን የሮያሊቲ ክፍያን (ለምሳሌ NFT በተላለፈ ቁጥር 5% የሽያጭ ዋጋ ለውሉ ባለቤት ማስተላለፍን) ወደ ዘመናዊ ውሉ ፕሮግራም ማድረግ ይችላሉ። እንዲሁም ውሉን የለቀቀው ቦርሳ ባለቤት ስለሆኑ NFTዎችን እንደፈጠሩ ሁልጊዜ ማረጋገጥ ይችላሉ። ቦርሳ አድራሻቸው ከዘመናዊ ውሎ ውስጥ ካለ ቶከን ጋር የተቆራኘ ስለሆነ፣ ገዢዎችዎ ከስብስብዎ ትክክለኛ የNFT ባለቤት መሆኖን በቀላሉ ማረጋገጥ ይችላሉ። በእውነተኛነቱ በመተማመን በኢተርየም ሥነ ምህዳር ላይ ሊጠቀሙበት ይችላሉ። + +ወይም ለአንድ ስፖርታዊ ዝግጅት ቲኬት ያስቡ። የአንድ ዝግጅት አዘጋጅ ምን ያህል ትኬቶችን እንደሚሸጥ እንደሚመወስን ሁሉ የNFT ፈጣሪዎችም ምን ያህል ቅጂዎች እንዳሉ ሊወስኑ ይችላል። አንዳንድ ጊዜ አንድ አይነት ቅጂዎች ናቸው ለምሳሌ 5000 ጠቅላላ የመግቢያ ትኬቶች። አንዳንድ ጊዜ በርካቶች በጣም ተመሳሳይ ሆነው ነገር ግን እያንዳንዳቸው በትንሹ የሚለያዩ ለየት ባለመልክ ሊመረቱ ይችላሉ ለምሳሌ በቲኬቱ የተመደበ መቀመጫ። ለቲኬት ሻጮች ሳይከፍሉ አቻ ለአቻ ሊገዙ እና ሊሸጡ ይችላሉ እንዲሁም ገዢው ሁልጊዜ የውሉን አድራሻ በማጣራት የቲኬቱን ትክክለኛነት በማረጋገጥ ። + +በethereum.org ላይ ሰዎች በእኛ የGitHub ማከማቻ ላይ አስተዋፅዖ እንዳደረጉ ወይም ጥሪዎች ላይ እንደተገኙ ለማሳየት NFTዎች ይጠቅማሉ በተጨማሪም የራሳችን የNFT ዶሜይን ስም አለን። ለethereum.org አስተዋጽዎ ካደረጉ፣ የPOAP NFTን ማግኘት ይችላሉ። አንዳንድ የክሪፕቶ ዝግጅቶች POAPን እንደ ቲኬቶች ይጤቀማሉ። [ስለማበርከት ተጨማሪ](/contributing/#poap). + +![ethereum.org POAP](./poap.png) + +ይህ ድር ጣቢያ በNFTዎች የተሰራ አማራጭ የዶሜይን ስም አለው **ethereum.eth**. `.org` አድራሻችን በዶሜይን ስም ስርዓት (DNS) የቀረበ በማእከላዊነት የሚተዳደረው ሲሆን `.eth` ደግሞ በኢተርየም ስም አገልግሎት (ENS) በኩል በ ኢተርየም ላይ ተመዝግቧል። እንዲሁም በእኛ ባለቤትነት የተያዘ እና የሚተዳደር ነው። [የENS መዝገባችንን ይመልከቱ](https://app.ens.domains/name/ethereum.eth) + +[ስለ ENS ተጨማሪ መረጃ](https://app.ens.domains) + + + +### የNFT ደህንነት {#nft-security} + +የኢቴሪየም ደህንነት የሚመጣው ከቀብድ ማረጋገጫ ነው። ስርዓቱ ተንኮል-አዘል ድርጊቶችን በኢኮኖሚ ለማሰናከል የተታለመ ሲሆን ይህም ኢቴሬምን ደህንነቱ የጠበቀ እንዲሆን ያደርገዋል። NFTዎችን እውን የሚያደርገው ይህ ነው። የእርስዎን NFT ግብይት የያዘው ብሎክ አንዴ ከተጠናቀቀ አንድ ሰርጎገን እሱን ለመቀየር በሚሊዮኖች የሚቆጠር ETH ያስከፍላል። ማንኛውም የኢተርየም ሶፍትዌርን የሚያንቀሳቅስ ሰው በNFT ላይ ሐቀኝነት የጎደለው ድርጊት ክተፈጥረ ወዲያውኑ ማወቅ ይችላል፣ እና መጥፎው ተዋናይ በኢኮኖሚ ይቀጣል እና ይባረራል። + +የደህንነት ጉዳዮች ከNFTዎች ጋር ተያይዞ ብዙ ጊዜ ከማስመሰል ማጭበርበሮች፣ ከዘመናዊ ውል ድክመቶች ወይም ከተጠቃሚ ስህተቶች (ልክ እንደ ሳያውቁ የግል ቁልፎችን ማጋለጥ) የተገናኙ ስለሆነ፣ ጥሩ የቦርሳ ደህንነትን ለNFT ባለቤቶች ወሳኝ አድርጎታል። + + + ስለ ደህንነት ተጨማሪ መረጃ + + +## Further reading {#further-reading} + +- [ለጀማሪዎች የNFTs መመሪያ](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _ሊንዳ ዢ፣ ጃንዋሪ 2020_ +- [EtherscanNFT መከታተያ](https://etherscan.io/nft-top-contracts) +- [የERC-721 ቶከን መስፈርት](/developers/docs/standards/tokens/erc-721/) +- [የERC-1155 ቶከን መስፈርት](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/public/content/translations/ar/dao/index.md b/public/content/translations/ar/dao/index.md new file mode 100644 index 00000000000..9376cb31cb7 --- /dev/null +++ b/public/content/translations/ar/dao/index.md @@ -0,0 +1,165 @@ +--- +title: المنظمات المستقلة اللامركزية (DAO) +description: نظرة عامة على المنظمات المستقلة اللامركزية (DAO) على إثيريوم +lang: ar +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: تمثيل لمنظمة مستقلة لامركزية تصوّت على مقترح. +summaryPoint1: المجتمعات التي يملكها الأعضاء دون قيادة مركزية. +summaryPoint2: طريقة آمنة للتعاون مع الغرباء على الإنترنت. +summaryPoint3: مكان آمن لتخصيص أموال لسبب محدد. +--- + +## ما هي المنظمات المستقلة اللامركزية؟ {#what-are-daos} + +المنظمة المستقلة اللامركزية هي منظمة مملوكة جماعيًا ومُدارة بسلسلة الكتل تعمل لتحقيق مهمة مشتركة. + +تتيح لنا المنظمات المستقلة اللامركزية العمل مع أشخاص يشاركوننا نفس التفكير من جميع أنحاء العالم دون الحاجة إلى الثقة في قائد محب للخير لإدارة الأموال أو العمليات. ليست هناك حاجة إلى رئيس تتفيذي ينفق الأموال على هواه أو رئيس مالي قادر على التلاعب بالسجلات المالية. بدلاً من ذلك، إن القواعد القائمة على سلاسل الكتل والمخزنة على شكل تعليمات برمجية تضبط طريقة عمل المنظمة وكيفية إنفاق الأموال. + +توجد لديها خزائن داخلية لا يتمتع أحد بحق الوصول إليها دون الموافقة الجماعية. تُدار عملية اتخاذ القرار بواسطة طرح المقترحات ثم التصويت عليها لضمان إشراك كل أفراد المنظمة في اتخاذ القرار، وأن كل الإجراءات في السلسلة تتم بشفافية. + +## لماذا نحتاج إلى المنظمات المستقلة اللامركزية؟ {#why-dao} + +إن تأسيس منظمة بالشراكة مع شخص ما بحيث تشمل الشراكة تعاملات تمويلية ومالية هو أمر يتطلب ثقة قوية ومتبادلة بين الأطراف الذين تعمل معهم. ولكن قد يصعب أن نثق بأشخاص لم نتعامل معهم إلا عبر الإنترنت. مع المنظمات المستقلة اللامركزية لن تحتاج إلى الوثوق بأفراد المجموعة، ما عليك سوى الوثوق بالتعليمات البرمجية للمنظمة المستقلة اللامركزية، والتي تتسم بالشفافية بنسبة 100% وإمكانية التحقق منها من قِبَل أي شخص. + +يتيح ذلك فرصًا جديدة وكثيرة للتعاون والتنسيق على الصعيد العالمي. + +### مقارنة {#dao-comparison} + +| المنظمة المستقلة اللامركزية | منظمة تقليدية | +| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------- | +| عادةً ما تكون غير هرمية وديمقراطية الإدارة تمامًا. | ذات سلطة إدارية هرمية عادةً. | +| يشترط الأعضاء إجراء تصويت على أي تغييرات يلزم تنفيذها. | تبعًا للهيكل، يمكن أن يطلب طرف واحد إجراء التغييرات، أو ربما يتم استخدام التصويت. | +| يتم عد الأصوات وتنفَّذ النتيجة تلقائيًا دون وسيط موثوق به. | إذا سُمح بالتصويت، فإن الأصوات يتم عدها داخليًا، ويجب معالجة نتيجة التصويت يدويًا. | +| يتم التعامل مع الخدمات المقدمة تلقائيًا بطريقة لامركزية (مثل توزيع الأموال الخيرية). | تتطلب التعامل البشري، أو التشغيل الآلي الخاضع للرقابة المركزية، وكلاهما معرض للتلاعب. | +| جميع الأنشطة تتمتع بالشفافية وعلنية بشكل كامل. | عادةً ما تكون الأنشطة خاصة وتقتصر على الجمهور. | + +### أمثلة على المنظمات المستقلة اللامركزية {#dao-examples} + +لجعل الأمر أسهل للاستيعاب، إليك بعض الأمثلة على كيفية استخدام المنظمات المستقلة اللامركزية: + +- الأعمال الخيرية – يمكنك قبول تبرعات من أي شخص في العالم والتصويت على الوجهة المُرادة للتبرع. +- الملكية الجماعية – يمكنك شراء الأصول المادية أو الرقمية حيث يمكن للأعضاء التصويت على كيفية استخدامها. +- المشروعات المشتركة والمنح – يمكنك إنشاء صندوق مشروع مشترك لجمع رأس المال للاستثمارات والتصويت على المشروعات المشتركة المُراد دعمها. يمكن فيما بعد إعادة توزيع الأموال المسددة فيما بين أعضاء المنظمة المستقلة اللامركزية. + +## كيف تعمل المنظمات المستقلة اللامركزية؟ {#how-daos-work} + +إن الركيزة الأساسية للمنظمة المستقلة اللامركزية هي عقدها الذكي، والذي يحدد قواعد المنظمة ويحتفظ بخزينة المجموعة. بمجرد تفعيل العقد ضمن إثيريوم، لا يمكن لأحد أن يغير القواعد إلا بالتصويت. إذا حاول شخص ما إجراء عملية لا تشملها القواعد والمنطق في التعليمات البرمجية، فسيفشل في ذلك. ولأن الخزينة مُدارة بواسطة العقد الذكي أيضًا، لا يمكن لأحد أن ينفق المال دون الحصول على موافقة المجموعة. يعني ذلك أن المنظمة المستقلة اللامركزية لا تحتاج إلى سلطة مركزية. وبدلاً من ذلك، تتخذ المجموعة قرارات جماعية، ويتم التصريح بالمدفوعات تلقائيًا عند اعتماد الأصوات. + +هذا ممكن لأنه لا يمكن التلاعب بالعقود الذكية بعد تفعيلها ضمن إثيريوم. لا يمكنك تعديل التعليمات البرمجية (قواعد المنظمات المستقلة اللامركزية) دون ملاحظة الأشخاص ذلك لأن كل شيء عام. + + + المزيد عن العقود الذكية + + +## إثيريوم والمنظمات المستقلة اللامركزية {#ethereum-and-daos} + +تُعد إثيريوم الأساس المثالي للمنظمات المستقلة اللامركزية لعدة أسباب: + +- إن إجماع الآراء الخاص بإثيريوم يتم توزيعه وتأسيسه بالقدر الكافي الذي يجعل المنظمات تثق بالشبكة. +- لا يمكن تعديل التعليمات البرمجية للعقد الذكي بمجرد تفعيلها، حتى من قِبَل مالكيها. يسمح ذلك للمنظمة المستقلة اللامركزية بالعمل وفقًا للقواعد التي تمت برمجتها عليها. +- العقود الذكية قادرة على إرسال الأموال وتلقيها. وبدون هذا ستحتاج إلى وسيط موثوق به لإدارة أموال المجموعة. +- وقد أثبت مجتمع إثيريوم أن روحه التعاونية أكبر من روحه التنافسية، ما يسرّع إبراز أفضل الممارسات ونظم الدعم. + +## إرشادات المنظمة المستقلة اللامركزية {#dao-governance} + +هناك اعتبارات عديدة عند إعداد إرشادات المنظمة المستقلة اللامركزية، مثل كيفية اجراء التصويت وتقديم المقترحات. + +### التفويض {#governance-delegation} + +التفويض يشبه إصدار المنظمة المستقلة اللامركزية من الديمقراطية التمثيلية. يفوض ملاك الرموز المميزة أصواتهم للمستخدمين الذين يرشحون أنفسهم ويلتزمون بتوجيه البروتوكول ويبقون على اطلاع دائم عليه. + +#### مثال شهير {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) – يمكن لملاك خدمة اسم إثيريوم تفويض أصواتهم لأعضاء المجتمع المطلعين لتمثيلهم. + +### إرشادات المعاملات الآلية {#governance-example} + +في العديد من المنظمات المستقلة اللامركزية، سيتم تنفيذ المعاملات تلقائيًا إذا صوت النِصاب القانوني من الأعضاء بالإيجاب. + +#### مثال شهير {#governance-example} + +[Nouns](https://nouns.wtf) – في المنظمة المستقلة اللامركزية Nouns، يتم تنفيذ المعاملات تلقائيًا إذا تم استيفاء النصاب القانوني من الأصوات وصوّت الأغلبية بالإيجاب، وما لم يتم التصويت من قِبَل المؤسسين. + +### إرشادات التوقيعات المتعددة {#governance-example} + +في حين أن المنظمات المستقلة اللامركزية قد تضم الآلاف من الأعضاء المصوتين، يمكن أن تبقى الأموال في محفظة مشتركة بين 5-20 من أعضاء المجتمع النشطين الموثوق بهم وعادة ما تكون هوياتهم معروفة (الشخصيات العامة المعروفة للمجتمع). وبعد التصويت، يقوم الموقعون الذين لديهم توقيعات متعددة بتنفيذ إرادة المجتمع. + +## قوانين المنظمة المستقلة اللامركزية {#dao-laws} + +في عام 1977، أقرت ولاية وايومنغ في الولايات المتحدة قانون الشركة ذات المسؤولية المحدودة (LLC) الذي يحمي أصحاب المشاريع ويحد من مسؤوليتهم. ومؤخرًا، اضطلعت بدور رائد في وضع قانون المنظمات المستقلة اللامركزية ليحدد الوضع القانوني للمنظمات المستقلة اللامركزية. حاليًا يوجد في ولاية وايومنغ وفيرمونت وجزر فيرجن في الولايات المتحدة قوانين المنظمات المستقلة اللامركزية بأحد نماذجها. + +### مثال شهير {#law-example} + +[CityDAO](https://citydao.io) – استخدمت CityDAO قانون المنظمات المستقلة اللامركزية الذي وضعته ولاية وايومنغ لشراء 40 فدانًا من الأراضي بالقرب من متنزه يلوستون الوطني. + +## عضوية المنظمات المستقلة اللامركزية {#dao-membership} + +توجد نماذج مختلفة للعضوية في المنظمة المستقلة اللامركزية. يمكن للعضوية أن تحدد كيف يتم التصويت والأجزاء الرئيسية الأخرى في المنظمة المستقلة اللامركزية. + +### العضوية القائمة على الرمز المميز {#token-based-membership} + +لا تحتاج عادةً إلى أي تصريح، وذلك يعتمد على الرمز المميز المُستخدم. يمكن تداول معظم هذه الرموز المميزة الخاصة بالإرشادات دون تصريح في عملية تبادل لامركزية. يجب أن يتم الحصول على الرموز المميزة الأخرى من خلال تقديم سيولة أو غيرها من "إثباتات العمل". في كلتا الحالتين، مجرد امتلاك الرمز المميز يمنح الحق في الوصول إلى عملية التصويت. + +_عادةً ما تُستخدم لتقديم الإرشادات إلى عدد كبير من البروتوكولات اللامركزية و/أو الرموز المميزة نفسها._ + +#### مثال شهير {#token-example} + +[MakerDAO](https://makerdao.com) – إن الرمز المميز MKR الخاص بـ MakerDAO متاح على نطاق واسع في عمليات التبادل اللامركزية ويمكن لأي شخص أن يشتري قوة التصويت على مستقبل بروتوكول Maker. + +### العضوية القائمة على الأسهم {#share-based-membership} + +المنظمات المستقلة اللامركزية القائمة على الأسهم تتطلب التصاريح إلى حد ما، ولكنها لا تزال مفتوحة تمامًا. يمكن للراغبين في الحصول على العضوية تقديم مقترح للانضمام إلى المنظمة المستقلة اللامركزية، وعادةً ما يقدمون مقابلاً ذا قيمة على شكل رموز مميزة أو عمل. تمثل الأسهم قوة التصويت المباشر وحقوق الملكية. يمكن للأعضاء الخروج في أي وقت مصطحبين معهم حصتهم النسبية من الخزينة. + +_عادةً ما تُستخدم للمنظمات الأكثر تماسكًا التي تركز على الإنسان، مثل المؤسسات الخيرية ومجموعات العمال ونوادي الاستثمار. يمكن أيضًا أن تقدم الإرشادات إلى البروتوكولات والرموز الرمزية كذلك._ + +#### مثال شهير {#share-example} + +[MolochDAO](http://molochdao.com/) – تركز MolochDAO على تمويل مشاريع إثيريوم. تتطلب مقترحًا للعضوية حتى تتمكن المجموعة من تقييم ما إذا كان لديك الخبرة ورأس المال اللازمين لإصدار أحكام مستنيرة حول المستفيدين المحتملين. لا يمكنك شراء الوصول إلى المنظمة المستقلة اللامركزية في السوق المفتوحة. + +### العضوية القائمة على السمعة {#reputation-based-membership} + +السمعة تمثل إثباتًا على المشاركة وتمنح قوة التصويت في المنظمة المستقلة اللامركزية. وخلافًا للرمز المميز أو العضوية القائمة على الأسهم، فإن المنظمات المستقلة اللامركزية القائمة على السمعة لا تنقل الملكية إلى المساهمين. إذ لا يمكن شراء السمعة أو نقلها أو تفويضها، ويجب أن يكتسب أعضاء المنظمة المستقلة اللامركزية سمعتهم من خلال مشاركتهم. التصويت داخل السلسلة لا يحتاج إلى تصريح ويتمتع الأعضاء المحتملون بحرية تقديم مقترحاتهم للانضمام إلى المنظمة المستقلة اللامركزية والمطالبة بالحصول على السمعة والرموز المميزة كمكافأة مقابل مساهماتهم. + +_عادةً ما تُستخدم للتطوير وتقديم الإرشادات اللامركزيين للبروتوكولات والتطبيقات اللامركزية، ولكنها أيضًا مناسبة لمجموعة متنوعة من المنظمات، مثل المؤسسات الخيرية ومجموعات العمال ونوادي الاستثمار وغيرها._ + +#### مثال شهير {#reputation-example} + +[DXdao](https://DXdao.eth.link) – إن DXdao هي مجموعة مستقلة عالمية تنشئ وتقدم الإرشادات للبروتوكولات والتطبيقات اللامركزية منذ عام 2019. إنها تستفيد من تقديم الإرشادات القائم على السمعة وإجماع الآراء المجسَّم لتنسيق الأموال وإدارتها، ما يعني أنه لا يمكن لأي أحد منفردًا أن يشق طريقه للتأثير في مستقبل المنظمة. + +## الانضمام إلى منظمة مستقلة لامركزية / إنشاء منظمة مستقلة لامركزية {#join-start-a-dao} + +### الانضمام إلى منظمة مستقلة لامركزية {#join-a-dao} + +- [المنظمات المستقلة اللامركزية في مجتمع إثيريوم](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [قائمة DAOHaus للمنظمات المستقلة اللامركزية](https://app.daohaus.club/explore) +- [قائمة Tally.xyz للمنظمات المستقلة اللامركزية](https://www.tally.xyz) + +### إنشاء منظمة مستقلة لامركزية {#start-a-dao} + +- [استدعاء منظمة مستقلة لامركزية مع DAOHaus](https://app.daohaus.club/summon) +- [إنشاء منظمة مستقلة لامركزية إدارية مع Tally](https://www.tally.xyz/add-a-dao) +- [إنشاء منظمة مستقلة لامركزية مُشغَّلة بواسطة Aragon](https://aragon.org/product) +- [إنشاء مستعمرة](https://colony.io/) +- [إنشاء منظمة مستقلة لامركزية مع إجماع الآراء المجسَّم من DAOstack](https://alchemy.daostack.io/daos/create) + +## قراءة المزيد {#further-reading} + +### مقالات حول المنظمات المستقلة اللامركزية {#dao-articles} + +- [ما هي المنظمة المستقلة اللامركزية؟](https://aragon.org/dao) – [Aragon](https://aragon.org/) +- [دليل المنظمة المستقلة اللامركزية](https://daohandbook.xyz) +- [موطن المنظمات المستقلة اللامركزية](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) +- [ما هي المنظمة المستقلة اللامركزية وما الغاية منها؟](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) +- [كيفية إنشاء مجتمع رقمي مدعوم بواسطة منظمة مستقلة لامركزية](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) +- [ما هي المنظمة المستقلة اللامركزية؟](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) +- [ما هو إجماع الآراء المجسَّم؟](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) +- [المنظمات المستقلة اللامركزية ليست مجموعة شركات: حيث تهمّ اللامركزية في المنظمات المستقلة وفقًا لـ Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) +- [منظمات DAO وDAC وDA والمزيد: دليل مصطلحات غير مكتمل](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [مدونة إثيريوم](https://blog.ethereum.org) + +### مقاطع الفيديو {#videos} + +- [ما هي المنظمة المستقلة اللامركزية في التشفير؟](https://youtu.be/KHm0uUPqmVE) +- [هل تستطيع المنظمة المستقلة اللامركزية بناء مدينة؟](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/public/content/translations/ar/decentralized-identity/index.md b/public/content/translations/ar/decentralized-identity/index.md new file mode 100644 index 00000000000..c95477e46ed --- /dev/null +++ b/public/content/translations/ar/decentralized-identity/index.md @@ -0,0 +1,185 @@ +--- +title: الهوية اللامركزية +description: ما هي الهُوِيَّة اللامركزية، ولماذا هي مهمة؟ +lang: ar +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: /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/public/content/translations/ar/defi/index.md b/public/content/translations/ar/defi/index.md new file mode 100644 index 00000000000..a48cd06200b --- /dev/null +++ b/public/content/translations/ar/defi/index.md @@ -0,0 +1,352 @@ +--- +title: التمويل اللامركزي (DeFi) +description: نظرة عامة حول التمويل اللامركزي على إثيريوم +lang: ar +template: use-cases +emoji: ":money_with_wings:" +image: /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} + +- [دليل المبتدئين لتعلم التمويل اللامركزي](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, 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/public/content/translations/ar/desci/index.md b/public/content/translations/ar/desci/index.md new file mode 100644 index 00000000000..92a60b64346 --- /dev/null +++ b/public/content/translations/ar/desci/index.md @@ -0,0 +1,139 @@ +--- +title: لا مركزية العلوم (DeSci) +description: نظرة عامة على العلوم اللامركزية على إثيريوم +lang: ar +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: /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/) +- [معامل DeSci](https://www.desci.com/) + +نحن نرحب بقائمة من اقتراحات المشاريع الجديدة - يرجى إلقاء نظرة على [سياسة القائمة](/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/eips/index.md b/public/content/translations/ar/eips/index.md similarity index 100% rename from src/content/translations/ar/eips/index.md rename to public/content/translations/ar/eips/index.md diff --git a/src/content/translations/ar/enterprise/index.md b/public/content/translations/ar/enterprise/index.md similarity index 100% rename from src/content/translations/ar/enterprise/index.md rename to public/content/translations/ar/enterprise/index.md diff --git a/public/content/translations/ar/nft/index.md b/public/content/translations/ar/nft/index.md new file mode 100644 index 00000000000..7817280b2b8 --- /dev/null +++ b/public/content/translations/ar/nft/index.md @@ -0,0 +1,94 @@ +--- +title: الرموز المميزة غير القابلة للاستبدال (NFT) +description: نظرة عامة على الرموز المميزة غير القابلة للاستبدال على إثيريوم +lang: ar +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: يتم عرض شعار إثير عبر صورة مجسَّمة. +summaryPoint1: طريقة لتمثيل أي شيء فريد كأصل مستند إلى إثيريوم. +summaryPoint2: بفضل الرموز المميزة غير القابلة للاستبدال، سيتمتع منشئو المحتوى بقوة غير مسبوقة. +summaryPoint3: مدعومة بواسطة العقود الذكية التي تقدمها سلسلة كتل إثيريوم. +--- + +## ما هي رمز غير قابل للاستبدال ( NFTs) ؟ {#what-are-nfts} + +يكون كل رمز من الرموز الغير قابلة للاستبدال فريدًا من نوعه. يتميز الرمز غير القابل للاستبدال بخصائص مختلفة (غير قابل للاستبدال) ونادر بصورة مبرهنة. هذا يختلف عن الرموز مثل رموز ERC-20 حيث يكون كل رمز في المجموعة متطابقًا مع باقي الرموز من نفس المجموعة ويتميز بالخصائص نفسها ("قابل للاستبدال"). أنت لا تكترث للورقة النقدية التي لديها قيمة دولار في محفظتك، لأن كل الرموز متساوية ولها نفس القيمة. ومع ذلك، أنت _تكترث_ بأي رمز محدد غير قابل للاستبدال تملكه، لأن جميعها لها خصائص فردية تميزها عن غيرها ("غير قابلة للاستبدال"). + +يتيح تميّز كل رمز قابل للاستبدال ترميز أشياء مثل الفن أو المقتنيات القابلة للتجميع أو حتى العقارات، حيث يمثل رمز قابل للاستبدال واحد مميز، عنصرًا واحدًا من العالم الحقيقي أو عنصرًا رقميًا فريدًا. ملكية الأصول محمية بواسطة سلسلة كُتل إثيريوم، وهذا يعني أنه لا يمكن لأي شخص إجراء تعديلات على سجلات الملكية أو إنشاء رمز غير قابل للاستبدال بواسطة النسخ واللصق. + + + +## إنترنت الأصول {#internet-of-assets} + +تعمل الرموز القابلة للاستبدال و اثيريوم معًا على حل بعض المشكلات الموجودة على الإنترنت في الوقت الحالي. مع رواج السلع والمواد الرقمية، تبرز الحاجة لجعل خصائصها تشبه خصائص العناصر الفعلية مثل النُّدرة والتفرد وإثبات الملكية. بطريقة لا تتحكم فيها منظمة مركزية. على سبيل المثال، يمكنك باستخدام الرموز القابلة للاستبدال امتلاك موسيقى mp3 ليست مقتصرة على تطبيق الموسيقى الخاص بشركة واحدة، أو يمكنك امتلاك حساب على وسائل التواصل الاجتماعي يمكن بيعه أو مبادلته، ولكن لا يمكن لموفر الخدمة على المنصة أن ينتزعه منك بشكل تعسفي. + +إليك كيف يبدو إنترنت الرموز غير القابلة للاستبدال بالمقارنة مع الإنترنت الذي يستخدمه معظمنا في الوقت الحالي... + +### مقارنة {#nft-comparison} + +| إنترنت الرموز المميزة غير القابلة للاستبدال | الإنترنت اليوم | +| -------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | +| أنت مالك أصولك! انت فقط بإمكانه بيعها أو مبادلتها. | تستأجر أحد الأصول من بعض المنظمات. | +| تكون الرموز غير قابلة للاستبدال فريدة رقميًا، حيث لا يوجد رمزان متطابقان. | غالبًا لا يمكن تمييز نسخة من الكيان عن الأصل. | +| يتم تخزين ملكية الرموز غير القابلة للاستبدال على البلوكشين فتصبح متاحة لأي شخص للتحقق منها. | سجلات ملكية العناصر الرقمية مخزنة على خوادم تتحكم بها المؤسسات، ويمكنك أن تثق بها. | +| الرموز غير القابلة للاستبدال هي عقود ذكية على اثيريوم. هذا يعني أنه يمكن استخدامها بسهولة في العقود الذكية والتطبيقات الأخرى على اثيريوم! | عادة ما تتطلب الشركات التي تمتلك عناصر رقمية بنية تحتية خاصة بها "حدائق مسورة". | +| يمكن لصناع المحتوى بيع أعمالهم في أي مكان، كما يمكنهم الوصول إلى السوق العالمية. | يعتمد صناع المحتوى على البُنى التحتية والتوزيعات الخاصة بالمنصات التي يستخدمونها. كثيرًا ما تخضع هذه المنصات لشروط الاستخدام وللقيود الجغرافية. | +| يمكن لمنشئي الرموز القابلة للاستبدال الاحتفاظ بحقوق الملكية لأعمالهم الخاصة، وبرمجة العوائد الخاصة بهم مباشرة في عقد الرمز القابل للاستبدال. | تحتفظ المنصات، مثل خدمات البث الموسيقي، بمعظم الأرباح المتأتية من المبيعات. | + +## كيف تعمل الرموز المميزة غير القابلة للاستبدال؟ {#how-nfts-work} + +مثل أي رمز تم إصداره على اثيريوم، يتم إصدار الرموز القابلة للاستبدال بموجب عقد ذكي. يتوافق العقد الذكي مع أحد معايير الرمز القابل للاستبدال العديدة (عادةً ERC-721 أو ERC-1155) التي تحدد وظائف العقد. يمكن أن ينشئ العقد ("صك") الرموز القابلة للاستبدال ويخصصها لمالك معين. يتم تحديد الملكية في العقد من خلال تعيين رموز قابلة للاستبدال محددة لعناوين محددة. يمتلك الرمز القابل للاستبدال معرّفًا وبيانات وصفية مرتبطة به تجعل الرمز المميز فريدًا. + +عندما ينشئ شخص ما رمزًا قابلاً للاستبدال أو يصكه، فإنه ينفذ بالفعل وظيفة في العقد الذكي تعمل على تخصيص رمز قابل للاستبدال إلى عنوانه. يتم تخزين هذه المعلومات في مخزن العقد، وهو جزء من بلوكتشين. يمكن لمنشئ العقد كتابة منطق إضافي في العقد، على سبيل المثال وضع حدّ لإجمالي التوريد أو تحديد حق الامتياز الذي يجب دفعه إلى المنشئ في كل مرة يتم فيها نقل رمز مميز. + +## ما هي استخدامات الرموز المميزة غير القابلة للاستبدال؟ {#nft-use-cases} + +تُستخدم الرموز القابلة للاستبدال في عديد من الأمور، بما في ذلك: + +- إثبات حضورك لحدث +- التصديق على إكمالك دورة +- العناصر القابلة للامتلاك للألعاب +- الفن الرقمي +- ترميز أصول العالم الفعلي +- إثبات هويتك على الإنترنت +- بوابة الوصول إلى المحتوى +- التذاكر +- أسماء نطاقات الإنترنت اللامركزية +- الضمانات الإضافية في دي فاي + +ربما تكون فنان يريد مشاركة أعماله باستخدام الرموز القابلة للاستبدال، دون فقدان السيطرة وخسارة أرباحك للوسطاء. يمكنك إنشاء عقد جديد وتحديد عدد الرموز القابلة للاستبدال وخصائصها ورابط لبعض الأعمال الفنية المحددة. بصفتك فنانًا، يمكنك برمجة حقوق الملكية التي يجب دفعها لك في العقد الذكي (على سبيل المثال، تحويل 5% من سعر البيع إلى مالك العقد في كل مرة يتم فيها تحويل رمز قابل للاستبدال). كما يمكنك دائمًا إثبات أنك أنشأت الرموز القابلة للاستبدال لأنك تمتلك المحفظة التي نشرت العقد. يمكن للمشترين إثبات أنهم يمتلكون رمز قابل للاستبدال أصليًا من مجموعتك بسهولة لأن عنوان محفظتهم مرتبط برمز مميز في عقدك الذكي. وبذلك يمكنهم استخدام الأصل ضمن النظام الإيكولوجي للإيثيريوم، وهم واثقون من أصالته. + +أو لنفترض وجود تذكرة حضور حدث رياضي. تمامًا كما يستطيع منظم حدث اختيار عدد التذاكر المتاحة للبيع، يمكن لمنشئ الرمز غير القابل للاستبدال أن يقرر عدد النسخ المتماثلة. يمكن أحيانًا تحديد عدد النسخ بالضبط، مثل 5000 تذكرة دخول عامة. وأحيانًا أخرى تتشابه النسخ بشكل كبير، ولكن مع وجود اختلاف طفيف لكل منها، مثل تذكرة مقعد مخصص. هذه التذاكر يمكن شراؤها وبيعها بنظام الند للند بلا حاجة للدفع بشكل مباشر لحامل البطاقات الفعلية والمشتري يمكنه دائمًا التأكد من أصالة التذاكر من خلال مراجعة العقد الذكي. + +على ethereum.org، تستخدم الرموز غير القابلة للاستبدال للإشارة إلى تقديم الأشخاص مساهمات لمخزن Github الخاص بنا أو حضروا اجتماعات معينة، حتى أننا حصلنا على اسم نطاق خاص بنا مخصص للرمز غير القابل للاستبدال. إذا كنت مساهمًا في ethereum.org، يمكنك المطالبة برمز غير قابل للاستبدال لبروتوكول إثبات الحضور. استخدمت بعض اجتماعات العملات الرقمية بروتوكولات إثبات الحضور كتذاكر. [المزيد عن المساهمة](/contributing/#poap). + +![POAP لـ ethereum.org](./poap.png) + +يملك موقع الويب هذا أيضاً اسم نطاق بديل مدعوم من الرموز القابلة للاستبدال، **ethereum.eth**. إن عنوان `.org` الخاص بنا يُدار مركزيًا بواسطة مزوّد نظام أسماء النطاقات (DNS)، بينما ethereum`.eth` مسجل على إثيريوم عن طريق خدمة اسم الإثيريوم (ENS). وهو مملوك لنا ويُدار من قِبَلنا. [تحقق من سجل خدمة اسم الإثيريوم](https://app.ens.domains/name/ethereum.eth) + +[المزيد عن خدمة اسم الإثيريوم](https://app.ens.domains) + + + +### أمان الرمز المميز غير القابل للاستبدال {#nft-security} + +يستند أمان إثيريوم إلى مفهوم إثبات الحصة. صُمِّم النظام بهدف ردع الأعمال الضارة اقتصاديًا، ما يجعل إثيريوم محصّنة ضد التلاعب. هذا ما يُمكّن استخدام الرموز المميزة غير القابلة للاستبدال. بمجرد أن تصبح الكتلة التي تحتوي على معاملة الرمز المميز غير القابل للاستبدال الخاصة بك في شكلها النهائي، ستكلف المهاجم الملايين من عملة إثير حتى يتمكن من تغييرها. أي شخص يُشغل برنامج إثيريوم سيكتشف فورًا وجود تلاعب خبيث بالرمز المميز غير القابل للاستبدال، وسيُعاقب المُتلاعب ويُطرد اقتصاديًا. + +غالبًا ما تتعلق المسائل الأمنية المرتبطة بالرموز المميزة غير القابلة للاستبدال بعمليات الاحتيال والخداع، أو الثغرات في العقود الذكية، أو أخطاء المستخدم (مثل الكشف عن المفاتيح الخاصة دون قصد)، ما يجعل أمان المحفظة الجيد أمرًا حساسًا بالنسبة إلى مالكي الرموز المميزة غير القابلة للاستبدال. + + + المزيد عن الأمان + + +## قراءة إضافية {#further-reading} + +- [دليل المبتدئين إلى الرموز المميزة غير القابلة للاستبدال](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie، يناير 2020_ +- [أداة تتبع EtherscanNFT](https://etherscan.io/nft-top-contracts) +- [الأصول المبنية وفق المعيار ERC-721](/developers/docs/standards/tokens/erc-721/) +- [الأصول المبنية وفق المعيار ERC-1155](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/public/content/translations/ar/refi/index.md b/public/content/translations/ar/refi/index.md new file mode 100644 index 00000000000..92a934692a8 --- /dev/null +++ b/public/content/translations/ar/refi/index.md @@ -0,0 +1,79 @@ +--- +title: التمويل المتجدد (ري فاي) +description: نظرة عامة على التمويل المتجدد (ري فاي) وحالات استخدامه. +lang: ar +template: use-cases +emoji: ":recycle:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: اقتصاد بديل قائم على أُسُس متجددة +summaryPoint2: محاولة لتسخير الإيثريوم في سبيل حل الأزمات التي تتطلب تنسيق عالمي مثل التغيرات المناخية +summaryPoint3: أداة تسهم في توسع الأصول الإيكولوجية كالحصص الكربونية الموثقة +--- + +## ماهو التمويل المتجدد (ري فاي)؟ {#what-is-refi} + +**التمويل المتجدد (ري فاي)** هو مجموعة من الأدوات والأفكار المبنية على البلوكتشين بهدف خلق بيئات اقتصادية ذو طبيعة متجددة وليست استخراجية أو مُستغِلة. بطبيعة الحال، ينتهي المطاف بالأنظمة الاستخراجية باستنزاف الموارد المتاحة والانهيار، فمع غياب الآليات المتجددة، تفتقر هذه الأنظمة إلى المرونة. يعمل التمويل المتجدد (ري فاي) وفقًا لفرضية أن خلق القيمة النقدية يجب أن لا يتصاحب مع العملية غير المستدامة لاستخلاص الموارد من كوكبنا ومجتمعاتنا. + +بدلاً من ذلك، يهدف التمويل المتجدد (ري فاي) إلى إيجاد حلول للمشاكل البيئية، والمجتمعية، والاجتماعية من خلال إنشاء دورات متجددة. فهذه الأنظمة توازن بين إنشاء القيمة للمشاركين، ومنفعة الأنظمة البيئية والمجتمعية. + +يعتبر مفهوم الاقتصادات المتجددة، المبتكر من قِبل جون فولرتون من [Capital Institute](https://capitalinstitute.org)، أحد أُسُس التمويل المتجدد (ري فاي). اقترح فولرتون ثمانية مبادئ مترابطة تكمن وراء الصحة البنيوية: + +![ثمانية مبادئ مترابطة](refi-regenerative-economy-diagram.png) + +تدرك مشاريع التمويل المتجدد (ري فاي) هذه المبادئ بواسطة [العقود الذكية](/developers/docs/smart-contracts/) و [تطبيقات التمويل اللامركزي](/defi/) (دي فاي)، لتحفيز السلوكيات المتجددة، كاستعادة النظم البيئية المتدهورة، وتسير التعاون واسع النطاق لمجابهة مشاكل عالمية، مثل التغير المناخي وفقدان التنوع الحيوي. + +يتشابه التمويل المتجدد (ري فاي) مع حركة [العلم اللامركزي (دي ساي)](/desci/)، والتي تستخدم الإيثريوم كمنصة لتويمل المعرفة العلمية وإنشائها ومراجعتها ونسبها وتخزينها ونشرها. يمكن استغلال أدوات العلم اللامركزي (دي ساي) لتطوير معايير وممارسات قابلة للتحقق، لتنفيذ الأنشطة المتجددة ومراقبتها، كزراعة الأشجار، وتخليص المحيط من البلاستيك، أو استعادة النظم الإيكولوجية المتدهورة. + +## ترميز الحصص الكربونية {#tokenization-of-carbon-credits} + +يعتبر **[سوق الكربون الطوعي (في سي أِم)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** وسيلة لتمويل المشاريع ذات تأثير إيجابي موثق على انبعاثات غاز الكربون، إما من خلال تقليل الانبعاثات الصادرة، أو إزالة الغازات الدفينة المنبعثة في الجو. تحصل هذه المشاريع على أصل يدعى "الحصص الكربونية"، من بعد التحقق منهم، و الذي يمكن أن يباع إلى الأشخاص و المؤسسات، الراغبة بدعم التدابير المناخية. + +بالإضافة لهذه السوق، توجد لدينا أسواق كربون مُكَلَفة من قبل الحكومة ("أسواق الامتثال")، والتي تهدف إلى ترسيخ سعر الكربون، والتحكم في معروض التصاريح التي ستوزع، من خلال القوانين والأنظمة، ضمن نطاق حاكمية محدد (دولة أو منطقة)ه تحفز أسواق الامتثال مصادر التلوث ضمن حاكميتهم على تخفيف الانبعاثات ولكن هذه الأسواق غير قادرة على المساهمة في إزالة الغازات الدفينة المنبعثة مسبقًا في الجو. + +وعلى الرغم من تطور هذه الأسواق على مر العقود، فإنها لا تزال تعاني من عدة مشاكل، أبرزها ما يلي: + +1. التجزء الزائد للسيولة النقدية +2. آليات معاملة مبهمة +3. رسوم باهظة +4. سرعة التداول بطيئة جدًا +5. افتقار قابلية التطور + +ربما يمثل انتقال هذه الأسواق، من الشكل التقليدي إلى ** أسواق الكربون الرقمية (دي سي أِم) ** القائمة على البلوكتشين، فرصة لترقية التكنولوجيا المعتمدة للتحقق، و تسيير المعاملات، واستهلاك الحصص الكربونية. تسمح البلوكتشينات بإنشاء بيانات يمكن توثيقها من العامة، كما تسمح بالوصول إلى قاعدة أكبر من المستخدمين، إضافة إلى المساهمة في زيادة السيولة النقدية. + +توظف مشاريع التمويل المتجدد (ري فاي) تقنية البلوكتشين في سبيل التقليل من المشاكل التي تواجهها الأسواق التقليدية: + +- **حيث تتركز السيولة النقدية ضمن أعداد قليلة من مجموعات السيولة النقدية** والتي يمكن أن يداولها الجميع بحرية. المستخدمون الفرديون والمؤسسات على حد سواء يمكنهم استخدام هذه المجموعات، من دون الحاجة إلى البحث اليدوي عن بائع/مشترٍ، دفع رسوم المشاركة، أو حتى التسجيل المسبق. +- **كما أن جميع المعاملات مسجلة على بلوكتشين عامة**. يمكن تتبع المسار، الناتج عن أنشطة التداول، الذي يسلكه كل رصيد كربوني إلى الأبد بمجرد توافره في أسواق الكربون الرقمية. +- **ناهيك عن أن سرعة المعاملة تكاد أن تكون فورية**. قد تستغرق عملية الحصول على كمية كبيرة من الحصص الكربونية من الأسواق التقليدية أيامًا أو أسابيع بينما تستغرق نفس العملية بضع لحظات في أسواق الكربون الرقمية. +- **تحدث عملية التداول بدون وسطاء**، الذين يفرضون رسومًا باهظة. فبالاستناد الى بيانات إحدى شركات التحليلات،[ تحسن الحصص الكربونية الرقمية التكلفة بنسبة ٦٢%، بالمقارنة مع الحصص التقليدية](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne). +- يتميز **سوق الكربون الرقمية بقابلية التطور** التي تسطيع تلبية احتياجات الأفراد والشركات متعددة الجنسيات. + +### العناصر الرئيسة لأسواق الكربون الرقمية {#key-components-dcm} + +تُشكِل أربعة عناصر رئيسة المشهد الحالي لأسواق الكربون الرقمية: + +1. تبقي بعض الجهات [كـ Verra](https://verra.org/project/vcs-program/registry-system/) و[Gold Standard](https://www.goldstandard.org/) على سجلات للائتمان الكربوني للمساعدة على توثيق مصداقية الحصص الكربونية الخاصة بالمشاريع. كما يشغلون قواعد البيانات التي نشأت منها الحصص الكربونية القابلة للنقل أو الاستعمال (مُستَهَلَك). + +هناك موجة جديدة من المشاريع المبتكرة التي يتم بناؤها على بلوكتشين، والتي تحاول تعطيل شاغلي الوظائف في هذا القطاع. + +2. الجسور الكربونية، المعروفة بـ محول الحصص الكربونية، يوفر تقنية لتمثيل الحصص الكربونية أو نقلها من السجلات العادية إلى أسواق الكربون الرقمية. تشمل الأمثلة الجديرة بالذكر [Toucan Protocol](https://toucan.earth/) و[C3](https://c3.app/) و[Moss.Earth](https://moss.earth/). +3. تقدم الخدمات المتكاملة تجنب الكربون و/أو إزالة الحصص للمستخدمين النهائيين حتى يتمكنوا من المطالبة بالمنفعة البيئية للحصص ومشاركة دعمهم للعمل المناخي مع العالم. + +يقدم البعض مثل [Klima Infinity](https://www.klimadao.finance/infinity) و[Senken](https://senken.io/) مجموعة واسعة من المشاريع التي طورتها جهات خارجية وتم إصدارها وفقًا للمعايير المعمول بها مثل Verra؛ يقدم آخرون مثل [Nori](https://nori.com/) فقط مشاريع محددة تم تطويرها وفقًا لمعايير الحصص الكربونية التابعة لهم، والتي يصدرونها ولديهم سوقهم المخصصة لها. + +4. القضبان الأساسية والبنية التحتية التي تسهل عملية توسيع نطاق تأثير وكفاءة سلسلة التوريد بأكملها في سوق الكربون. توفر [KlimaDAO](http://klimadao.finance/) السيولة النقدية باعتبارها منفعة عامة (تسمح لأي شخص بشراء أو بيع الحصص الكربونية بسعر شفاف)، وتحفز زيادة إنتاجية أسواق الكربون والتقاعد من خلال المكافآت، وتوفر أدوات قابلة للتشغيل البيني سهلة الاستخدام للوصول إلى البيانات المتعلقة بها، فضلاً عن الحصول عليها والتقاعد، ومجموعة واسعة من الحصص الكربونية التي تم تحويلها إلى رموز مميزة. + +## التمويل المتجدد (ري فاي) خارج أسواق الكربون {#refi-beyond} + +على الرغم من التركيز بشكل قوي حاليًا على أسواق الكربون بشكل عام وتحويل سوق الكربون الطوعية إلى سوق الكربون الرقمية بشكل خاص في نطاق هذا المجال، فإن مصطلح "التمويل المتجدد (ري في)" لا يقتصر على الكربون فحسب. ويمكن تطوير أصول بيئية أخرى بخلاف الحصص الكربونية وتحويلها إلى رموز مميزة، ما يعني أنه يمكن أيضًا تسعير العوامل الخارجية السلبية الأخرى ضمن الطبقات الأساسية للأنظمة الاقتصادية المستقبلية. علاوة على ذلك، يمكن تطبيق الجانب التجديدي لهذا النموذج الاقتصادي على مجالات أخرى، مثل تمويل المنافع العامة عبر منصات التمويل التربيعية مثل [Gitcoin](https://gitcoin.co/). إن المنظمات القائمة على فكرة المشاركة المفتوحة والتوزيع العادل للموارد تعمل على تمكين الجميع من توجيه الأموال إلى مشاريع البرمجيات مفتوحة المصدر، إضافة إلى المشاريع التعليمية والبيئية والمجتمعية. + +من خلال تغيير مسار رأس المال بعيدًا عن الممارسات الاستخراجية نحو التدفق المتجدد، يمكن للمشاريع والشركات التي توفر منافع اجتماعية أو بيئية أو مجتمعية - والتي قد تفشل في تحقيق التمويل في التمويل التقليدي - أن تنطلق وتنشئ تأثيرات خارجية إيجابية للمجتمع. بسرعة وسهولة أكبر. كما أن التحول إلى نموذج التمويل هذا يفتح المجال أمام أنظمة اقتصادية أكثر شمولية، حيث يكون بوسع الأشخاص من كافة الفئات الديموغرافية أن يصبحوا مشاركين نشطين بدلاً من مجرد كونهم مراقبين سلبيين. يقدم التمويل المتجدد (ري في) رؤية إيثريوم كآلية لتنسيق العمل بشأن التحديات الوجودية التي تواجه الجنس البشري وجميع أشكال الحياة على كوكبنا، باعتبارها الطبقة الأساسية لنموذج اقتصادي جديد، ما يتيح مستقبلاً أكثر شمولاً واستدامة لقرون قادمة. + +## مزيد من المعلومات عن التمويل المتجدد (ري فاي) + +- [نظرة عامة رفيعة المستوى عن العملات الكربونية وموضعهم بالاقتصاد](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) +- [وزارة المستقبل، رواية تصوّر دور العملات المدعومة بالكربون في مجابهة التغير المناخي](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) +- [تقرير مفصّل من قِبل Taskforce لتطوير أسواق الكربون الطوعية](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) +- [مسرد المصطلحات كيفين أووكي وإيفان ميازونو كنقطة دخول إلى عالم التمويل المتجدد (ري فاي)](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/public/content/translations/ar/roadmap/beacon-chain/index.md b/public/content/translations/ar/roadmap/beacon-chain/index.md new file mode 100644 index 00000000000..dd2f4105f05 --- /dev/null +++ b/public/content/translations/ar/roadmap/beacon-chain/index.md @@ -0,0 +1,76 @@ +--- +title: سلسلة المنارة +description: تعرّف على سلسلة المنارة - الترقية التي جعلت إثيريوم جزءًا من إثبات الحصة. +lang: ar +template: upgrade +image: /upgrades/core.png +alt: +summaryPoint1: قدمت سلسلة المنارة إثبات الحصة في منظومة إثيريوم. +summaryPoint2: تم الدمج مع سلسلة إثبات الحصة الأصلية لإثيريوم في سبتمبر من عام 2022. +summaryPoint3: قدمت سلسلة المنارة منطق إجماع الآراء وبروتوكول نقل الكتل الذي يؤمّن إثيريوم الآن. +--- + + + أصبحت سلسلة المنارة متاحة في 1 ديسمبر 2020، وجعلت إثبات الحصة هو الرسمي لآلية إجماع الآراء لإثيريوم مع ترقية الدمج في 15 سبتمبر 2022. + + +## ما هي سلسلة المنارة؟ {#what-is-the-beacon-chain} + +كان مصطلح سلسلة المنارة هو اسم سلسلة الكتل الأصلية لإثبات الحصة الذي تم إطلاقه في عام 2020. وقد أنشئ هذا المشروع لضمان أن يكون منطق إجماع الآراء لإثبات الحصة سليمًا ومستدامًا قبل تمكينه في الشبكة الرئيسية لإثيريوم. ومن ثمَّ، فإنها عملت بجوار إثيريوم إثبات العمل الأصلي. إن المبادلة من إثبات العمل إلى إثبات الحصة في إثيريوم استلزم توجيه سلسلة المنارة لقبول التحويلات من سلسلة إثيريوم الأصلية، والجمع بينها في الكتل، ثم تنظيمها في سلسلة كتل باستخدام آلية إجماع الآراء المعتمدة على إثبات الحصة. وفي الوقت نفسه، أوقف عملاء إثيريوم الأصلي التنقيب وتجميع الكتل ومنطق إجماع الآراء، مع تسليم كل ذلك إلى سلسلة المنارة. وقد عُرف هذا الحدث باسم [الدمج](/roadmap/merge/). وبمجرد حدوث الدمج، لم يعد هناك سلسلتي كتل؛ أصبحت سلسلة إثيريوم واحدة معتمدة على إثبات الصحة. + +## ما الذي فعلته سلسلة المنارة؟ {#what-does-the-beacon-chain-do} + +اسم سلسلة المنارة هو الاسم المُعطى إلى سجل الحسابات الذي أجرى ونسق شبكة [مراهني](/staking/) إثيريوم قبل بدء هؤلاء المراهنين للمصادقة على معاملات إثيريوم الحقيقية. ولم تعالج المعاملات ولا تفاعلات العقد الذكي. + +قدمت محرك إجماع الآراء (أو طبقة إجماع الآراء) التي حلت محل التنقيب عن إثبات العمل في إثيريوم وقدمت العديد من التحسينات البارزة عليه. + +وكانت سلسلة المنارة مكونًا أساسيًا [لإثيريوم الآمن والملائم للبيئة والقابل للقياس الذي لدينا الآن](/roadmap/vision/). + +## تأثير سلسلة المنارة {#beacon-chain-features} + +### معلومات عن تجميد العملات {#introducing-staking} + +قدمت سلسلة المنارة [إثبات الحصة](/developers/docs/consensus-mechanisms/pos/) إلى إثيريوم. وهذا يحافظ على أمان إثيريوم ويُكسب برامج المدققين المزيد من ETH في هذه العملية. وعمليًا، سيشتمل تجميد العملات على تجميد ETH من أجل تنشيط برنامج المدقق. وكأحد المراهنين، فإنك تشغل البرنامج الذي ينشئ ويصادق على كتل جديدة في السلسلة. + +إن تجميد العملات يقدم غرضًا مشابهًا لما يستخدمه [التنقيب](/developers/docs/mining/)، لكنه مختلف من عدة جوانب. ويتطلب التنقيب نفقات أولية طائلة في شكل أجهزة قوية واستهلاك كبير للطاقة، ما يؤدي إلى تحقيق وفورات للتوسع وتعزيز المركزية. ولا يفرض التنقيب أيضًا أي شروط لحجز الأصول كضمان إضافي، ما يحد من قدرة البروتوكول على معاقبة الأطراف المسيئة بعد الهجوم. + +وقد جعل الانتقال إلى إثبات الحصة إثيريوم أكثر أمنًا ولا مركزية بالمقارنة مع إثبات العمل. وكلما زاد عدد الأشخاص الذين يشاركون في الشبكة، زادت اللامركزية وأصبحت الشبكة أكثر أمانًا ضد الهجمات. + + + إذا كنت مهتمًا بأن تصبح مدققًا وتساعد على تأمين الإثيريوم، فتعلم المزيد عن تجميد العملات. + + +### إعداد التقسيم {#setting-up-for-sharding} + +منذ اندمجت سلسلة المنارة مع الشبكة الرئيسية الأصلية لإثيريوم، بدأ مجتمع إثيريوم في التطلع إلى توسيع الشبكة. + +ويكون لإثبات الحصة ميزة امتلاك سجل لكل منتجي الكتل المعتمدين في أي وقت محدد، كل منهم مع ETH حسب الحصة. ويعيّن هذا السجل مرحلة للقدرة على التقسيم والسيطرة، ولكنه يقسم بصورة موثوق بها مسؤوليات الشبكة. + +وتتناقض هذه المسؤولية مع إثبات العمل، حيث لا يكون عاملو المنجم ملتزمين بالشبكة ويمكنهم التنقيب عن التعديل وإيقاف برنامج العقدة الخاص بهم بشكل دائم دون تداعيات. كما لا يوجد سجل لمقترحي الكتل المعروفين ولا توجد طريقة موثوق بها لتقسيم مسؤوليات الشبكة بأمان. + +[المزيد عن التقسيم](/roadmap/danksharding/) + +## العلاقة بين الترقيات {#relationship-between-upgrades} + +إن ترقيات إثيريوم كلها مترابطة إلى حد ما. لذا دعونا نلخص كيف تؤثر سلسلة المنارة على الترقيات الأخرى. + +### سلسلة المنارة والدمج {#merge-and-beacon-chain} + +في البداية، كانت سلسلة المنارة موجودة بشكل منفصل عن الشبكة الرئيسية لإثيريوم، لكنها اندمجت في عام 2022. + + + الدمج + + +### الأجزاء وسلسلة المنارة {#shards-and-beacon-chain} + +لا يمكن للأجزاء أن تدخل إلى منظومة الإثيريوم إلا بأمان، مع وجود آلية إجماع الآراء لإثبات الحصة. وقدمت سلسلة المنارة تجميد العملات، التي 'دُمجت' مع الشبكة الرئيسية، ما مهد الطريق أمام التقسيم للمساعدة في زيادة حجم الإثيريوم. + + + سلاسل الأجزاء + + +## قراءة إضافية + +- [المزيد عن ترقيات إثيريوم في المستقبل](/roapmap/vision) +- [المزيد عن إثبات الحصة](/developers/docs/consensus-mechanisms/pos) diff --git a/public/content/translations/ar/roadmap/merge/index.md b/public/content/translations/ar/roadmap/merge/index.md new file mode 100644 index 00000000000..350711d186b --- /dev/null +++ b/public/content/translations/ar/roadmap/merge/index.md @@ -0,0 +1,226 @@ +--- +title: الدمج +description: تعرّف على الدمج - عندما تبنت الشبكة الرئيسية إثيريوم إثبات الحصة. +lang: ar +template: upgrade +image: /upgrades/merge.png +alt: +summaryPoint1: تستخدم الشبكة الرئيسية لإثيريوم إثبات الحصة، بيد أن ذلك ليس الوضع دائمًا. +summaryPoint2: كان يُطلق على عملية التطوير من آلية إثبات العمل الأصلية إلى إثبات الحصة اسم الدمج. +summaryPoint3: يشير الدمج إلى دمج الشبكة الرئيسة لإثيريوم الأصلي مع سلسلة الكتل المنفصلة لإثبات الحصة ويُطلق عليها اسم سلسلة المنارة، الموجودة الآن كسلسلة واحدة. +summaryPoint4: يساهم الدمج في ترشيد استهلاك طاقة الإثيريوم بنسبة ~99.95%. +--- + + + نُفذ الدمج في 15 سبتمبر 2022. أكمل هذا انتقال الإثيريوم إلى إجماع الآراء حول إثبات الحصة، ما أدى إلى إهمال إثبات العمل رسميًا وترشيد استهلاك الطاقة بنسبة 99.95% تقريبًا. + + +## ما المقصود بالدمج؟ {#what-is-the-merge} + +تمثل الدمج في الانضمام إلى طبقة التنفيذ الأصلية من إثيريوم (الشبكة الرئيسة التي كانت موجودة منذ [الأصل](/history/#frontier)) مع طبقة إجماع الآراء لإثبات الحصة الجديدة لها، سلسلة المنارة. سيزيل هذا الحاجة إلى التنقيب المستهلك للطاقة، وبدلاً من ذلك سيؤمن الشبكة باستعمال عملات إثيريوم المجمدة. تمثل هذه خطوة جَدّ مشوقة لتحقيق رؤية إثيريوم – للمزيد من قابلية التوسع والأمن والاستمرارية. + + + +في البداية، [سلسلة المنارة](/roadmap/beacon-chain/) أُتيحت منفصلة عن [الشبكة الرئيسية](/glossary/#mainnet). الشبكة الرئيسية لإثيريوم ما زالت مؤَمنة بجميع حساباتها وأرصدتها وعقودها الذكية وحالة سلسلة الكتل [بإثبات العمل](/developers/docs/consensus-mechanisms/pow/)، بالرغم من أن سلسلة المنارة تعمل بالتوازي وفي نفس الوقت باستعمال [إثبات الحصة](/developers/docs/consensus-mechanisms/pos/). تمثل الدمج عندما اجتمع هذان النظامان في نهاية المطاف، واستعيض عن إثبات العمل بشكل دائم بإثبات الحصة. + +تخيل أن إثيريوم تمثل سفينة فضاء ليست جاهزة تمامًا انطلقت في رحلة بين النجوم. بَنى المجتمع محركًا جديدًا و هيكلاً أصلب من خلال سلسلة المنارة. وبعد إجراء اختبارات مهمة، قد آن الأوان لمبادلة المحرك الجديد بشكل سريع مع الرحلة المتوسطة القديمة. ودمج هذا المحرك الجديد الأكثر كفاءة في السفينة القائمة، ما مكنها من بذل سنوات قليلة خطيرة والاستيلاء على الكون. + +## الدمج مع الشبكة الرئيسية {#merging-with-mainnet} + +وقد أمّن إثبات العمل الشبكة الرئيسية لإثيريوم من الإنشاء إلى الدمج. سمح ذلك لسلسلة كتل إثيريوم التي اعتدنا جميعًا عليها بالتواجد في يوليو 2015 بكافة ميزاتها المألوفة - المعاملات والعقود الذكية والحسابات، إلخ. + +كما استعد المبرمجون طوال تاريخ إثيريوم للانتقال في نهاية المطاف من مرحلة إثبات العمل إلى مرحلة إثبات الحصة. وقد تم إنشاء سلسلة المنارة كسلسلة كتل منفصلة في الأول من ديسمبر 2020 بغرض صيانة الشبكة الرئيسية، وذلك كي تعمل سويًا. + +في البداية لم تعالج سلسلة المنارة معاملات الشبكة الرئيسية. وعوضًا عن ذلك، فإنها تتوصل إلى إجماع الآراء بشأن حالتها من خلال الاتفاق على برامج المدققين الفعلية وأرصدة حساباتهم. وقد حان الوقت عقب اختبارات مستفيضة لكي تتوصل سلسلة المنارة إلى إجماع الآراء بشأن بيانات العالم الحقيقي. حيث أصبحت سلسلة المنارة عقب عملية الدمج محركًا لإجماع الآراء لكافة بيانات الشبكة، بما في ذلك معاملات طبقة التنفيذ وأرصدة الحسابات. + +تمثل عملية الدمج التحول الرسمي لاستخدام سلسلة المنارة كمحرك لإنتاج الكتلة. كما لم يعد التنقيب يصلح كوسيلة لإنتاج كتل صالحة. وعوضًا عن ذلك، فقد اعتمدت برامج المدققين لإثبات الحصة هذا الدور وهي الآن مسؤولة عن التحقق من صحة كافة المعاملات واقتراح الكتل. + +كما لم يُفقد أي سجل في الدمج. وبما أن الشبكة الرئيسة قد اندمجت مع سلسلة المنارة، فقد دمجت أيضًا سجل المعاملات للإثيريوم بِرُمَّته. + + +كما قد غير هذا الانتقال إلى إثبات الحصة طريقة إصدار الإثيريوم. تعرف على المزيد بشأن إصدار الإثيريوم قبل وبعد الدمج. + + +### المستخدمون وحائزو الإثيريوم {#users-holders} + +**لم يغير الدمج أي شيء لحائزو الإثيريوم أو المستخدمين.** + +_يستحق هذا التكرار_: كمستخدم أو حائز الإثيريوم أو أي أصل رقمي آخر على الإثيريوم، فضلاً عن المراهنين غير العاملين بعقدات، **لا تحتاج إلى فعل أي شيء باستخدام أموالك أو محفظتك لحساب الدمج.** إثيريوم هي فقط إثيريوم. لا يوجد شيء مثل "ETH قديم"/"ETH حديث" أو "ETH1"/"ETH2" والمحافظ تعمل الشيء نفسه بالضبط بعد الدمج كما فعلت من قبل - يخبرونك الناس بخلاف ذلك لأنهم قد يكونوا محتالين. + +ورغم مبادلة إثبات العمل، فإن سجل الإثيريوم بِرُمَّته ظل صحيحًا منذ بداية الإثيريوم ولم يتغير بسبب الانتقال إلى إثبات الحصة. لا تزال أي أموال موجودة في محفظتك قبل الدمج متاحة عقب الدمج. **لا يلزمك أي إجراء لتطوير.** + +[المزيد حول أمن الإثيريوم](/security/#eth2-token-scam) + +### مشغلو العقدة ومطورو التطبيقات اللامركزية {#node-operators-dapp-developers} + + + +تشمل فقرات العمل الرئيسية ما يلي: + +1. تشغيل كل من عميل إجماع الآراء وعميل التنفيذ؛ لم تعد النِّقَاط الطرفية لأطراف خارجية للحصول على بيانات التنفيذ تعمل منذ الدمج. +2. المصادقة على كل من عميل إجماع الآراء وعميل التنفيذ مع سر JWT المشترك حتى يتمكنوا من التواصل بشكل آمن. +3. تعيين عنوان "مستلم الرسوم" لتلقي نصائح حول رسوم التحويل التي حصلت عليها أو القيمة القابلة للاستخراج بالتنقيب (MEV). + +كما سيؤدي عدم إكمال العنصرين الأولين أعلاه إلى اعتبار عقدتك "غير متصلة" حتى مزامنة كلتا الطبقتين ومصادقتهما. + +سيظل عدم تعيين "مستلم الرسوم" يسمح لبرنامج المدقق لديك بالتصرف كالمعتاد، ولكنك ستفوتك نصائح الرسوم غير المحترقة وأي قيمة قابلة للاستخراج بالتنقيب (MEV) كنت ستكسبها لولا ذلك في الكتل التي يقترحها برنامج المدقق لديك. + + + + +وحتى حدوث الدمج، كان عميل التنفيذ (مثل شركة جيث أو إريغون أو بيسو أو نيفرمايند) كافيًا لاستقبال الكتل الموجودة في الشبكة، والتحقق منها بشكل صحيح ونشرها. كما تتوقف صحة المعاملات التي تحتويها حمولة التنفيذ عقب الدمج الآن أيضًا على صحة "كتلة إجماع الآراء" التي تحتويها هذه الحمولة. + +ونتيجة لذلك، تتطلب الآن عقدة إثيريوم بأكملها عميل التنفيذ وعميل إجماع الآراء. كما يعمل هذان العميلان معًا باستخدام واجهة برمجة تطبيقات محرك جديد. كما تتطلب واجهة برمجة تطبيقات المحرك المصادقة باستخدام سر JWT، والذي يُتاح لكلا العميلين، ما يوفر الاتصال الآمن. + +عناصر العمل الرئيسية: + +- تثبيت عميل إجماع الآراء فضلاً عن عميل التنفيذ +- مصادقة عميل التنفيذ وعميل إجماع الآراء مع سر JWT المشترك حتى يتمكنوا من التواصل مع بعضهم بشكل آمن. + +كما سيؤدي عدم إكمال العناصر أعلاه إلى اعتبار عقدتك تظهر على أنها "غير متصلة" حتى مزامنة كلتا الطبقتين ومصادقتهما. + + + + + +وقد أحدثت عملية الدمج تغييرات في إجماع الآراء، والتي تشمل أيضًا التغييرات المتعلقة بما يلي: + +- بنية الكتلة +- توقيت الخانة أو الكتلة +- تغيير كود التشغيل +- مصادر عشوائية على السلسلة +- مفهوم "الرأس الآمن" و"الكتل النهائية" + +للحصول على المزيد من المعلومات، تحقق من مشاركة المدونة من تيم بيكو على [كيف يؤثر الدمج على طبقة تطبيق إثيريوم](https://blog.ethereum.org/2021/11/29/how-the-merge-impacts-app-layer/). + + +## عملية الدمج واستهلاك الطاقة {#merge-and-energy} + +سيشير الدمج إلى نهاية إثبات العمل لإثيريوم وبداية لعصر إثيريوم أكثر استدامة وصداقة للبيئة. انخفض استهلاك الطاقة في إثيريوم بما يقدر بنسبة 99.95%، ما يجعل الإثيريوم سلسلة كتل مصاحبة للبيئة. احصل على المزيد من المعلومات حول [استهلاك الطاقة في إثيريوم](/energy-consumption/). + +## عملية الدمج والتوسع {#merge-and-scaling} + +كما مهدت عملية الدمج السبيل نحو إجراء المزيد من التطويرات في التوسع التي يصعب تطويرها في إطار عملية إثبات العمل، حيث جعل الإثيريوم خطوة واحدة أقرب إلى تحقيق النطاق الكامل والأمن والاستدامة الموضحة في [رؤية الإثيريوم](/roadmap/vision/). + +## مفاهيم خطأ حول عملية الدمج {#misconceptions} + + +يوجد نوعان من عُقد إثيريوم: العُقد التي قد تقترح الكتل والعقد التي لا تقترح الكتل. + +حيث تمثل العُقد التي تقترح كتل فقط عددًا صغيرًا من مجموع العقد على إثيريوم. وتشمل هذه الفئة عُقد التنقيب بموجب إثبات العمل (PoW) وعقد برنامج المدقق بموجب إثبات الحصة (PoS). كما تتطلب هذه الفئة تخصيص مصادر اقتصادية (مثل قوة تجزئة GPU في إثبات العمل أو تجميد ETH في إثبات الحصة) نظير القدرة على اقتراح الكتلة التالية من حين لآخر والحصول على مكافآت البروتوكول. + +لا تلتزم العُقد الأخرى على الشبكة (بمعنى الأغلبية) بتخصيص أي مصادر اقتصادية تتجاوز حاسوب من الدرجة الاستهلاكية يحتوي على 1-2 تيرابايت من التخزين المتوفر واتصال بالإنترنت. كما لا تقترح هذه العُقد الكتل، ولكنها لا تزال تؤدي دورًا مفصليًا في تأمين الشبكة أثناء مساءلة كافة مقدمي الكتل بالاستماع إلى كتل جديدة والتحقق من صلاحيتها عند الوصول وفقًا لقواعد إجماع آراء الشبكة. كما تستمر العُقدة في نشر الكتلة بواسطة الشبكة إذا كانت صالحة. إذا كانت الكتلة غير صالحة لأي سبب من الأسباب، فإن برنامَج العُقدة سوف يتجاهلها كغير صالحة ويحد من انتشارها. + +يستطيع أي شخص تشغيل عقدة غير منتجة للكتلة في إطار آلية الإجماع (إثبات العمل أو إثبات الحصة)؛ إنه مشجع للغاية لكافة المستخدمين متى توافرت لديهم الوسائل. يمثل تشغيل العقدة قيمة هائلة للإثيريوم ويعطي المزيد من الفوائد الإضافية لأي فرد يشغلها، مثل تحسين الأمن والخصوصية ومقاومة الرِّقابة. + +تمثل قدرة أي شخص على تشغيل عقدة خاصة به أمرًا مهمًا للغاية +للمحافظة على لامركزية شبكة إثيريوم. + +[المزيد من المعلومات حول تشغيل عقدة خاصة بك](/run-a-node/) + + + + +تمثل رسوم الغاز منتجًا للطلب الشبكي بالنسبة إلى قدرة الشبكة. حيث نتج عن عملية الدمج إبطال استخدام إثبات العمل، والانتقال إلى إثبات الحصة بُغية التوصل إلى إجماع الآراء، بيد أنه لم يغير كثيرًا في أي مقاييس من شأنها أن تؤثر تأثيرًا مباشرًا على قدرة الشبكة أو على إنتاجيتها. + +كما يجري تركيز الجهود على توسع نطاق نشاط المستخدم في [الطبقة 2] (/طبقة 2)، بواسطة [خارطة طريق تعتمد على التركيز الإداري] (https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698)، أثناء تمكين الطبقة 1 للشبكة الرئيسية كطبقة تسوية لامركزية آمنة محسنة لتخزين البيانات المتداولة للمساعدة في خفض تكلفة تجميع المعاملات خارج البلوكشين داخل عقد إيثريوم ذكي من ذي قبل. كما يمثل الانتقال عقب ذلك إلى مرحلة إثبات الحصة تمهيدًا بالغ الأهمية لتحقيق ذلك. [المزيد من المعلومات حول الغاز والرسوم] (/developers/docs/gas/) + + + +يمكن قياس "سرعة" المعاملة باستخدام عدة طرق، بما في ذلك الوقت اللازم لإدراجها في كتلة ووقت إضفاء اللمسات النهائية عليها. ويتغير كلاهما قليلاً، بطريقة لا يلاحظها المستخدمون. + +لقد تمثل الهدف تاريخيًا في إثبات العمل في الحصول على كتلة جديدة كل 13.3 ثانية. كما تحدث الخانات بدقة كل 12 ثانية في إطار إثبات الحصة، وكل منها يمثل فرصة لبرنامج المدقق لنشر كتلة ما. تحتوي معظم الخانات على كتل، ولكن ليس بالضرورة احتواء كافة الخانات على كتل (أي إن برنامج المدقق غير متصل بالإنترنت). تُنتج الكتل بنسبة ~10% في إثبات الحصة أكثر من إثبات العمل. يُعد ذلك تغييرًا ضئيلاً إلى حد ما وقد لا يلاحظه المستخدمون. + +حيث نتج عن إثبات الحصة المفهوم النهائي للمعاملة الذي لم يكن موجودًا قبل ذلك. تصعب القدرة على عكس كتلة بشكل مضاعف في إثبات العمل مع كل كتلة مرور مستخرجة فوق معاملة، لكنها لا تصل أبدًا إلى نقطة الصفر. كما تُجمع الكتل في الحقبات في إطار إثبات الحصة (6.4 دقائق من الوقت تحتوي على 32 فرصة للكتل) التي يصوت عليها برامج المدقق. يصوت برنامَج المدقق عند انتهاء الحِقْبَة على ما إذا كان يجب اعتبار الحِقْبَة 'مبررة'. إذا وافق برنامَج المدقق على تبرير الحِقْبَة، يتم الانتهاء منها في الحِقْبَة التالية. كما لا يجدي التقاعس عن إتمام المعاملات اقتصاديًا لأنه سيتطلب الحصول على أكثر من ثلث مجموع تجميد العملات للإثيريوم وحرقه. + + + + +لا تزال جوائز تجميد الإثيريوم ومكافآت تجميد العملات مقفلة دون القدرة على السحب. ومن المزمع تنفيذ الانسحاب بُغية رفع مستوى شنغهاي القادم. + + + +وقد يبدو ذلك متعارضًا مع الملاحظة المذكورة أعلاه ومفادها أنه لا يمكن تنفيذ الانسحاب حتى ترقية شنغهاي، لكن يمكن لبرامج المدقق الوصول الفوري إلى مكافآت الرسوم أو القيمة القابلة للاستخراج بالتنقيب (MEV) المكتسبة خلال عروض الكتل. + +ويمنح البروتوكول الإثيريوم مكافأة لبرامج المدقق على إسهامها في إجماع الآراء. تعبّر طبقة إجماع الآراء عن الإثيريوم الصادرة حديثًا، حيث يكون لبرنامج المدقق عنوان فريد يحمّل جوائز الإثيريوم المجمدة والبروتوكول. هذه الإثيريوم مقفلة حتى شنغهاي. + +تُحسب الإثيريوم على طبقة التنفيذ بمعزل عن طبقة إجماع الآراء. يجب دفع إثيريوم لتغطية الغاز، وذلك عندما ينفذ المستخدمون المعاملات على الشبكة الرئيسة لإثيريوم، بما في ذلك نظير نصائح لبرنامج المدقق. يتوفر هذا الإثيريوم بالفعل على طبقة التنفيذ، ولا يصدر حديثًا بواسطة البروتوكول، حيث يُتاح لبرنامج المدقق مباشرة (ويتم توفير عنوان "مستلم رسوم" مناسب إلى برنامج العملاء). + + + +يتم تحفيز كافة برامج المدقق على سحب رصيد تجميد العملات الأعلى من 32 إثيريوم وذلك عقب تفعيل ترقية شنغهاي عمليات السحب، وبما أن هذه الأموال لا تضيف إلى العائد فهي محجوزة بخلاف ذلك. قد تُحفز للخروج من برامج المدقق لديهم لاسترداد كامل رصيدهم أو احتمال حصولهم على حصة أكثر باستخدام مكافآتهم لكسب المزيد من العائدات وذلك حسب تقديرات APR (المحدد بإجمالي حصة الإثيريوم). + +يوجد تحذير مهم هنا، معدل خروج برنامَج المدقق الكامل محدود بالبروتوكول، لذلك يمكن فقط لستة من برامج المدقق الخروج لكل حقبة (كل 6.4 دقائق، أو نحو 1350 في اليوم، أو 43,200 إثيريوم فقط في اليوم من أصل أكثر من 10 ملايين إثيريوم). ويُعدل هذا الحد الأقصى للمعدل وفقًا لإجمالي تجميد عملات إثيريوم ويحول دون الخروج الجماعي للأموال. فضلاً عن ذلك، فإنه يمنع مهاجم محتمل من استخدام حصته في ارتكاب جريمة عالية المخاطر ويخرج من كامل توازن حصته في نفس الحِقْبَة قبل أن يتمكن البروتوكول من إنفاذ العقوبة المخفضة. + +يُعد APR ديناميكيًا عن قصد، ما يتيح لسوق من المراهنات بموازنة مقدار ما لديهم من استعداد لدفعه للمساعدة في تأمين الشبكة. عند تفعيل عمليات السحب، إذا كان المعدل منخفضًا جدًا، فإن برامج المدقق تخرج بمعدل محدود من البروتوكول. يزيد ذلك تدريجيًا من APR لكل من يبقى، ويجتذب مراهنين جدد أو مراهنين مرة أخرى. + + +## ماذا حدث لـ 'Eth2'؟ {#eth2} + +لقد تم التخلي عن مصطلح "Eth2". لم تعد توجد أي حاجة للتمييز بين شبكتين من شبكات الإثيريوم عقب دمج 'Eth1' و'Eth2' في سلسلة واحدة؛ وذلك لوجود شبكة واحد فقط من الإثيريوم. + +وللحد من الارتباك، حدث المجتمع الشروط التالية: + +- يُعد 'Eth1' الآن 'طبقة التنفيذ'، المسؤولة عن تنفيذ المعاملات. +- أصبحت "Eth2" الآن "طبقة الإجماع"، التي تتعامل مع إجماع الآراء لإثبات الحصة. + +كما لا تغير تحديثات المصطلحات الآتية سوى مصطلحات التسميات؛ وهذا لا يغير أهداف إثيريوم أو خططها. + +[تعرّف على المزيد حول إعادة تسمية 'Eth2'](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) + +## العِلاقة بين الترقيات {#relationship-between-upgrades} + +تترابط ترقيات إثيريوم كلها إلى حد ما. لذا دعونا نلخص كيف يرتبط الدمج بالترقيات الأخرى. + +### عملية الدمج وسلسلة المنارة {#merge-and-beacon-chain} + +تمثل عملية الدمج الاعتماد الرسمي لسلسلة المنارة باعتبارها الطبقة الجديدة لإجماع الآراء بالنسبة لطبقة التنفيذ الأساسية للشبكة الرئيسية. خُصصت برامج المدقق منذ عملية الدمج لتأمين صيانة الإثيريوم في الشبكة الرئيسية، والتنقيب في [إثبات العمل](/developers/docs/consensus-mechanisms/pow/) لم يعد وسيلة صالحة للحصول على الكتل. + +وتُقدم الكتل عوضًا عن ذلك باستخدام التحقق من صحة العُقد التي جمدت الإثيريوم مقابل الحق في المشاركة في إجماع الآراء. كما مهدت هذه التحديثات السبيل نحو رفع مستوى القابلية للترقيات، بما في ذلك التقسيم والتوزيع. + + + سلسلة المنارة + + +### عملية الدمج وترقية شنغهاي {#merge-and-shanghai} + +لم تشمل ترقية عملية الدمج بعض الميزات المتوقعة مثل القدرة على سحب تجميد العملات في الإثيريوم وذلك بُغية تبسيط وزيادة التركيز على الانتقال الناجح إلى مرحلة إثبات الحصة إلى أقصى قدر ممكن. ومن المزمع أن تأتي ترقية شنغهاي عقب عملية الدمج، التي ستمكن المراهن من السحب. + +ابق على اطلاع مع [مشكلة تخطيط ترقية شنغهاي على موقع GitHub](https://github.com/ethereum/pm/issues/450)أو [مدونة البحث والتطوير EF](https://blog.ethereum.org/category/research-and-development/). ولمن يتملكهم الفضول، يمكن الحصول على المزيد من المعلومات حول [ما يحدث بعد عملية الدمج](https://youtu.be/7ggwLccuN5s?t=101)، حيث يقدّم العرض Vitalik بحدث ETHGlobal في أبريل 2021. + +### عملية الدمج وسلاسل الأجزاء {#merge-and-data-sharding} + +كانت الخِطَّة في الأصل أن نعمل على سلسلة الأجزاء قبل عملية الدمج لمعالجة قابلية التوسع. لكن مع ازدهار[حلول التوسيع للطبقة 2](/layer-2/) تحولت الأولوية نحو تغيير إثبات العمل إلى إثبات الحصة من خلال عملية إثبات الحصة أولاً. + +كما تتطور خطط التقسيم والتوزيع بسرعة، ولكن نظرًا لظهور ونجاح تكنولوجيات الطبقة 2 في توسيع نطاق تنفيذ المعاملات، فقد تحولت خطط التقسيم والتوزيع إلى إيجاد أفضل طريقة لتوزيع عبء تخزين بيانات المكالمات المضغوطة من العقود المتراكمة والسماح بالنمو الأسي في سَعَة الشبكة. حيث لن يحدث ذلك دون الانتقال أولاً إلى مرحلة إثبات الحصة. + + + التقسيم + + +## قراءة إضافية {#further-reading} + + + + diff --git a/public/content/translations/ar/smart-contracts/index.md b/public/content/translations/ar/smart-contracts/index.md new file mode 100644 index 00000000000..db427a921cc --- /dev/null +++ b/public/content/translations/ar/smart-contracts/index.md @@ -0,0 +1,84 @@ +--- +title: العقود الذكية +description: مقدمة غير تقنية للعقود الذكية +lang: ar +--- + +# مدخل إلى العقود الذكية {#introduction-to-smart-contracts} + +العقود الذكية هي عبارة عن كتل بناء أساسية في طبقة تطبيق الإيثريوم. هي برامج حاسوبية مُخزنة على بلوكتشين تتبع منطق "إذا هذا ثم ذلك"، وهي مضمونة التنفيذ وفقًا لقواعد محددة في النص البرمجي الخاص بها، والذي لا يمكن تغييره بمجرد إنشائه. + +وقد صاغ نيك سزابو مصطلح "العقد الذكي". حيث كتب في عام 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). + +تصوّر Szabo سوقًا رقمية تمكّن فيه العمليات الآلية والمشفرة بشكل آمن حدوث المعاملات ووظائف الأعمال بدون الحاجة إلى وسطاء موثوق بهم. وجدت عقود إيثريوم الذكية لجعل هذه الفكرة قابلة للتطبيق. + +## وضع الثقة في العقود التقليدية {#trust-and-contracts} + +تتمثل إحدى أكبر مشاكل العقود التقليدية في الحاجة إلى وجود أشخاص موثوق بهم لمتابعة نتائج العقد. + +إليك مثالًا: + +أليس وبوب يخوضان سباق دراجات. فلنفترض أن أليس راهنت بوب على 10 دولارات أنها ستفوز عليه في السباق. ولأن بوب واثق من قدرته على الفوز في السباق، وافق على الرهان. في النهاية، سبقت أليس بوب بفارق كبير وكانت هي الرابحة دون أدنى شك. لكن بوب رفض دفع الرهان مدعيًا أنه بالتأكيد أليس قد غشت. + +هذا مثال بسيط يوضح المشكلة المتعلقة بأي اتفاقية غير ذكية. وحتى لو استوفيت شروط الاتفاق (أي أنت الفائز في السباق)، فلا بد أن تضع ثقتك بشخص آخر يفي بالاتفاقية (أي الدفع في الرهان). + +## آلة بيع رقمية {#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/public/content/translations/ar/social-networks/index.md b/public/content/translations/ar/social-networks/index.md new file mode 100644 index 00000000000..a0273d9785a --- /dev/null +++ b/public/content/translations/ar/social-networks/index.md @@ -0,0 +1,121 @@ +--- +title: الشبكات الاجتماعية اللامركزية +description: نظرة عامة على الشبكات الاجتماعية اللامركزية على إثيريوم +lang: ar +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: /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](/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_ +- [How Blockchain Can Solve Social Media Privacy (كيف يمكن لسلسلة الكتل أن تحل مشكلة الخصوصية في وسائل التواصل الاجتماعي)](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _برابلين باجباي_ +- [Social Media Networks Are Coming To The Blockchain (انتقال وسائل التواصل الاجتماعي إلى سلسلة الكتل](https://businesstechguides.co/what-are-decentralized-social-networks) — _إيمانويل أوسيكا_ +- [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/content/translations/ar/staking/dvt/index.md b/public/content/translations/ar/staking/dvt/index.md similarity index 100% rename from src/content/translations/ar/staking/dvt/index.md rename to public/content/translations/ar/staking/dvt/index.md diff --git a/public/content/translations/ar/staking/pools/index.md b/public/content/translations/ar/staking/pools/index.md new file mode 100644 index 00000000000..c43d86e9807 --- /dev/null +++ b/public/content/translations/ar/staking/pools/index.md @@ -0,0 +1,85 @@ +--- +title: تجميد العملات المجمعة +description: نظرة عامة على كيفية بدء مراهنة عملة ETH المجمعة +lang: ar +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-pool.png +alt: يسبح ليزلي فرس النهر في حمام السباحة. +sidebarDepth: 2 +summaryPoints: + - راهن واحصل على مكافآت بأي مبلغ من ETH من خلال مشاركة الآخرين + - تجاوز الجزء الصعب وأسند عملية المدقق إلى جهة خارجية + - احتفظ برموز الرهانات المميزة في محفظتك الخاصة +--- + +## ما هو تجمع الرهان؟ {#what-are-staking-pools} + +إن تجمع الرهان هو نهج تعاوني يسمح للكثيرين ممن يمتلكون مبالغ قليلة من ETH بالحصول على 32 ETH اللازمة لتفعيل مجموعة من مفاتيح المدقق. لا يتم دعم وظيفة التجميع محلياً في البروتوكول، لذا تم إيجاد حلول منفصلة لتلبية هذه الحاجة. + +تعمل بعض تجمعات الرهان باستخدام العقود الذكية، حيث يمكن إيداع المبالغ في عقد، الذي يُدير ويتتبع حصتك بكل موثُوقية، ويُصدر لك رمزًا مميزًا يُمثل هذه القيمة. قد لا تشتمل التجمعات الأخرى على عقود ذكية وتتم من خلال الوساطة خارج السلسلة بدلاً من ذلك. + +## ما هي ميزات تجمع الرهان؟ {#why-stake-with-a-pool} + +إضافة إلى المزايا التي وضحناه في [مُقدمة عن المراهنة](/staking/)، تتضمن المراهنة في تجمعات حزمة من المزايا المتميزة. + + + + + + + + + +## الأمور التي يجب وضعها في اﻻعتبار {#what-to-consider} + +لا يتم دعم المراهنة المجمعة أو المفوضة محليًا في بروتوكول اﻻيثيريوم، ولكن نظرًا إلى طلب المستخدمين للمراهنة بأقل من 32 ETH، فقد تم إيجاد عدد متزايد من الحلول لتلبية هذا الطلب. + +يتم إنشاء كل تجمع والأدوات أو العقود الذكية التي يستخدمونها من قبل فرق مختلفة، وكلّ منها يتضمن مزايا ومخاطر. تُمكِّن التجمعات المستخدمين من مبادلة ETH الخاص بهم برمز مميز يمثل ETH التي تمت مراهنتها. الرمز المميز مفيد لأنه يسمح للمستخدمين بمبادلة أي كمية من ETH لكمية مماثلة من الرموز المميزة الحاملة للعائدات، التي تنشئ عائدات من مكافأت المراهنة التي يتم تطبيقها على ETH التي تمت مراهنته (والعكس صحيح) على التبادلات اللامركزية على الرغم من أن عملة ETH الفعلية تظل مراهنة في طبقة الإجماع. هذا يعني أن المبادلات المتكررة من منتج ETH ذي عائد مرتفع و"ETH الخام" سريعة وسهلة وليست متوفرة فقط في مضاعفات 32 ETH. + +ومع ذلك، تميل هذه الرموز المميزة التي تمثل عملة ETH التي تمت مراهنتها لخلق سلوكيات عصابية، حيث ينتهي الأمر بكمية كبيرة من عملة ETH التي تمت مراهنتها تحت سيطرة منظمات مركزية قليلة بدلًا من أن يتم توزيعه على العديد من الأفراد المستقلين. يخلق ذلك ظروفًا للرقابة أو استخراج القيمة. يجب أن يكون المقياس الذهبي للمراهنة دائمًا عبارة عن أفراد يشغلون عقد تدقيق على معداتهم الخاصة كلما أمكن ذلك. + +[مزيد من المعلومات عن مخاطر الرموز المميزة للمراهنة](https://notes.ethereum.org/@djrtwo/risks-of-lsd). + +تُستخدم مؤشرات السمات أدناه للتدليل على أي نقاط ضعف أو قوة ملحوظين يتمتع بهم تجمع الرهان المدرج. استخدم هذا القسم كمرجع لكيفية تحديد هذه السمات بينما تختار تجمعًا للانضمام إليه. + + + +## التعرف على تجمعات الرهان {#explore-staking-pools} + +تتوفر خيارات متنوعة لمساعدتك على إكمال الإعداد. استخدم المؤشرات أعلاه للمساعدة في إرشادك خلال الأدوات المتاحة أدناه. + + + + + +يُرجى مراعاة أهمية اختيار الخدمة التي تأخذ [تنوع العملاء](/developers/docs/nodes-and-clients/client-diversity/) على محمل الجد، لأنها تعمل على تحسين أمان الشبكة، وتحدّ من المخاطر التي تتعرض لها. تتم الإشارة إلى الخدمات التي تمتلك دليلًا على وضع حدود على أغلبية استخدامات العملاء بـ "تنويع عملاء التنفيذ" و"تنويع عملاء الإجماع". + +هل لديك اقتراح غاب عنا لأداة مراهنة؟ راجع [سياسة قائمة المنتجات](/contributing/adding-staking-products/) الخاصة بنا لمعرفة ما إذا كانت مناسبة، ثم أرسلها للمراجعة. + +## الأسئلة الشائعة {#faq} + + +عادةً، يتم إصدار الرموز المميزة للمراهنة وفقًا للمعيار ERC-20 للمراهنين، وتمثل هذه الرموز قيمة عملة ETH التي تمت مراهنتها إضافة إلى المكافآت. ضع في عين الاعتبار أن تجمعات الرهان المختلفة ستوزع مكافآت المراهنة لمستخدميها بطرق مختلفة بعض الشيء، لكن هذا هو الموضوع المشترك. + + + +الآن! تم تنفيذ تطوير الشبكة المعروف بـ Shanghai/Capella في أبريل ٢٠٢٣، وتم تقديم من خلاله ميزة سحب المراهنات. تتمع حسابات المدققين التي تدعم تجميعات الرهان الآن بإمكانية الخروج وسحب ETH على عنوان السحب المخصص. يتيح ذلك إمكانية استرداد أموال الجزء الخاص بك من الرهان مقابل عملة ETH الأساسية. تحقق من الأمر مع مزود الخدمة الخاص بك لمعرفة إذا ما كان يدعم هذه الوظيفة. + +وكحل بديل، تسمح بعض التجمعات التي تستخدم رموز مميزة للمراهنة وفقًا لمعيار ERC-20 لمستخدميها بتداول هذه الرموز المميزة في السوق المفتوحة، وتسمح لهم ببيع موضع المراهنة الخاص بهم، بشكلٍ يؤدي إلى انسحابهم من عملية المراهنة دون إزالة عملة ETH من عقد المراهنة. + +مزيد من المعلومات حول عمليات السحب المتعلقة بالمراهنات + + + +هناك العديد من أوجه التشابه بين خيار المراهنة المجمع، والمبادلات المركزية، مثل القدرة على المراهنة بمبالغ صغيرة من عملات ETH وتجميعهم معًا لتفعيل برامج المدققون. + +على عكس المبادلات المركزية، تستخدم العديد من خيارات المراهنة المجمعة الأخرى العقود الذكية و/أو الرموز المميزة للمراهنة، التي تكون عادةً وفقًا لمعيار الرموز المميزة ERC-20، والتي يمكن الاحتفاظ بها في محفظتكم الخاصة، كما يمكن بيعها وشراؤها كأي رمز مميز آخر. يضيف ذلك طبقة من النفوذ والأمان، من خلال منحك التحكم الكامل بالرموز المميزة الخاصة بك، لكن مع ذلك لا يمنحك سيطرة مباشرة على مصادقة عميل التدقيق الذي يعمل بالنيابة عنكم في الخلفية. + +تكون بعض خيارات التجمع أكثر لامركزية من غيرها عندما يتعلق الأمر بالعقود التي تدعمها. للترويج لصحة ولامركزية الشبكة، يتم تشجيع المراهنين دائمًا على اختيار خدمات تجميع تمكن مجموعة لامركزية غير مصرح بها من مشغلي العقدة. + + +## قراءة إضافية {#further-reading} + +- [المراهنة باستخدام RocketPool - نظرة عامة على المراهنة](https://docs.rocketpool.net/guides/staking/overview.html) - _وثائق RocketPool_ +- [مراهنة عملات إيثريوم باستخدام Lido](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _وثائق المساعدة الخاصة بـ Lido_ diff --git a/public/content/translations/ar/staking/saas/index.md b/public/content/translations/ar/staking/saas/index.md new file mode 100644 index 00000000000..9b147a9faed --- /dev/null +++ b/public/content/translations/ar/staking/saas/index.md @@ -0,0 +1,94 @@ +--- +title: تجميد العملات كخدمة +description: نظرة عامة على كيفية بدء مع تجميع ETH +lang: ar +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-saas.png +alt: يطوف ليزلي فرس النهر في السحاب. +sidebarDepth: 2 +summaryPoints: + - تتولى جهة خارجية مختصة بتشغيل العقد عمليات تشغيل عميلك المدقق + - خيار رائع لكل شخص يمتلك 32 ETH ولا يشعر بالراحة إزاء التعامل مع التعقيد التقني المرتبط بتشغيل عقدة + - خفض مستوى الثقة المطلوب، والحفاظ على ملكية مفاتيح السحب +--- + +## ما هي المراهنة كخدمة؟ {#what-is-staking-as-a-service} + +تمثل المراهنة كخدمة (SaaS) فئة من خدمات المراهنة حيث تقوم بإيداع 32 ETH الخاصة بك لتشغيل برنامج المدقق، لكنك تفوض عمليات تشغيل العقدة لجهة خارجية. تشمل هذه العملية عادةً الحصول على توجيه خلال إجراء الإعدادات الأولية، بما في ذلك إنشاء المفاتيح والإيداع، ثم تحميل مفاتيح التوقيع الخاصة بك إلى منصة التشغيل. يسمح ذلك للخدمة بتشغيل برنامج المدقق الخاص بك نيابة عنك، عادةً مقابل رسوم شهرية. + +## لم يجب المراهنة باستخدام خدمة؟ {#why-stake-with-a-service} + +لا يدعم بروتوكول إيثريوم بتفويض المراهنة، لذا تم تصميم هذه الخدمات لتلبية هذه الحاجة. إذا كنت تمتلك عملة 32 ETH لمراهنتها، ولكنك غير مرتاح إزاء التعامل مع المعدات، تسمح لك خدمات SaaS بإسناد الجزء الصعب إليهم بينما تحصل على كتلة مكافآت أصلية. + + + + + + + + + +## العناصر التي يجبُ أخذُها بعين اﻻعتبار {#what-to-consider} + +يتواجد عدد متزايد من موفري خدمات SaaS الذين يساعدونك على مراهنة عملة ETH الخاص بك، لكن هناك مميزات ومخاطر لكلٍ منهم. تتطلب جميع خيارات SaaS قدرًا إضافيًا من الثقة بالافتراضات مقارنةً بالمراهنة باستخدام معدات منزلية. قد تحتوي خيارات Saas على كود إضافي يغطي عملاء إيثريوم وقد لا يكون هذا الكود مفتوح المصدر أو متاحًا للتدقيق. كما تُحدث SaaS أثرًا سلبيًا على لامركزية شبكة إيثريوم. حسب الإعداد، قد لا يكون بإمكانك التحكم في برنامج المدقق الخاص بك - وبإمكان مشغل الخدمة التصرف في عملة ETH الخاص بكم بطريقة غير نزيهة. + +تُستخدم مؤشرات السمات أدناه للتدليل على أي نقاط ضعف أو قوة ملحوظين يتمتع بهم موفر خدمات SaaS المدرج. استخدم هذا القسم كمرجع لكيفية تحديد هذه السمات بينما تختار خدمة لمساعدتك على بدء رحلة المراهنة الخاصة بك. + + + +## التعرف على موفري خدمات المراهنة {#saas-providers} + +يتوفر أدناه بعض موفري خدمات المراهنة. استخدم المؤشرات أعلاه للمساعدة في إرشادك خلال هذه الخدمات. + + + +### موفرو خدمات المراهنة + + + +يُرجى مراعاة أهمية اختيار الخدمة التي تدعم [تنوع العملاء](/developers/docs/nodes-and-clients/client-diversity/)، لأنها تعمل على تحسين أمان الشبكة، وتحدّ من المخاطر التي تتعرض لها. تتم الإشارة إلى الخدمات التي تمتلك دليلًا على وضع حدود على أغلبية استخدامات العملاء بـ "تنويع عملاء التنفيذ" و"تنويع عملاء الإجماع". + +### مكونات المفاتيح + + + +هل لديك اقتراح غاب عنا بخصوص موفر خدمات المراهنة باعتبارها خدمة؟ راجع [سياسة قائمة المنتجات](/contributing/adding-staking-products/) الخاصة بنا لمعرفة ما إذا كانت مناسبة، ثم أرسلها للمراجعة. + +## الأسئلة الشائعة {#faq} + + +ستختلف الترتيبات من موفر خدمات إلى آخر، لكن العامل المشترك بينهم هو أنهم سيرشدونك خلال عملية إعداد مفاتيح التوقيع التي ستحتاجها (مفتاح لكل 32 ETH)، وتحميل هذه المفاتيح لموفر الخدمات للسماح له بالتدقيق نيابة عنك. لا تمنح مفاتيح التوقيع وحدها صلاحية بإجراء عملية سحب أو تحويل أو إنفاق لأموالكم. على كلٍ، تمنح هذه المفاتيح صلاحية التصويت في إجماع الآراء، والتي إذا لم يتم تنفيذها بشكل صحيح يمكن أن تؤدي إلى عقوبات الانقطاع عن الإنترنت أو الشطب. + + + +نعم. يتكون كل حساب من مفاتيح توقيع ومفاتيح سحب من BLS. ليتمكن المدقق من مصادقة حالة السلسلة، والمشاركة في لجان التزامن واقتراح كتل، يجب على العميل المدقق أن يمتلك وصولًا إلى مفاتيح التوقيع بشكلٍ مسبق. يجب أن تكون هذه المفاتيح متصلة بالإنترنت بشكلٍ ما، ولهذا يمكن اعتبارها بشكلٍ أصلي على أنها مفاتيح "قوية". مفاتيح التوقيع مطلوبة ليتمكن المدقق من المصادقة، وبالتالي يتم فصل المفاتيح المستخدمة لتحويل أو سحب الأموال لأسباب أمنية. + +تستخدم مفاتيح سحب BLS لتوقيع رسالة لمرة واحدة، والتي تعلن عن طبقة التنفيذ التي يجب تحويل مكافآت الرهان والأموال الصادرة إليها. بمجرد بث هذه الرسالة، لا تعد هناك حاجة إلى مفاتيح سحب BLS. بدلًا من ذلك، يتم تفويض التحكم بعمليات السحب بصورة دائمة إلى العنوان الذي قدمته. يتيح لك ذلك إعداد عنوان سحب مؤمن عبر وسائل تخزين غير متصلة بالإنترنت، ما يقلل من خطر الوصول إلى أموال المدقق الخاص بك، حتى في حال كان هناك شخص آخر يتحكم في مفاتيح توقيع المدقق الخاصة بك. + +تحديث بيانات اعتماد السحب هي خطوة مطلوبة لتمكين إجراء عمليات السحب. تتضمن هذه العملية إنشاء مفاتيح السحب الخاصة بك باستخدام عبارة الأصل الذاكرية. + +تأكد من الاحتفاظ بعبارة الأصل هذه بطريقة آمنة أو لن تتمكن من إنشاء مفاتيح السحب الخاصة بك عندما يحين الوقت. + +\*المراهنون الذين يوفرون عنوان سحب خلال عملية الإيداع الأولي لا يحتاجون إلى إجراء ذلك. تواصل مع موفر خدمة SaaS الخاص بكم للحصول على الدعم فيما يتعلق بكيفية تحضير برنامج المدقق الخاص بك. + + + +تم تطبيق عمليات سحب المراهنة في تحديث Shanghai/Capella في أبريل ٢٠٢٣. يجب على المراهنين توفير عنوان سحب (في حال لم يتم توفيره خلال عملية الإيداع الأولي)، وسيبدأ توزيع مدفوعات المكافآت تلقائيًا بشكلٍ دوري كل بضعة أيام. + +بإمكان المدققين أيضًا أن الخروج كليًا من عملية المراهنة، ما يتيح لهم إمكانية سحب رصيد ETH المتبقي لهم. ستحصل الحسابات التي وفرت عنوان سحب للتنفيذ، وأنهت عملية الخروج، على رصيدها بالكامل على عنوان السحب الذي تم توفيرة خلال عملية توزيع المكافآت الأولى. + +مزيد من المعلومات حول عمليات السحب المتعلقة بالمراهنات + + + +باستخدام موفر خدمات SaaS، فأنت بذلك تسند عملية العقدة الخاص بك إلى شخص آخر. لا يخلو ذلك من خطر ضعف أداء العقدة، الأمر الذي سيكون خارج سيطرتك. في حال تعرض المدقق الخاص بك للشطب، سيتم تطبيق عقوبة السحب من رصيد المدقق الخاص بك، كما سيتم سحب الرصيد بشكلٍ قسري وإزالته من تجمع المدقق. + +بعد إتمام عملية الشطب والخروج، سيتم تحويل الأموال المتبقية إلى عنوان السحب المخصص للمدقق. يتطلب ذلك توفير عنوان سحب لتمكين العملية. قد يكون تم توفيره خلال عملية الإيداع الأولي. في حالة عدم التوفر، يجب استخدام مفاتيح السحب الخاصة بالمدقق لتوقيع رسالة تكشف عن عنوان السحب. في حالة عدم توفير أي عنوان سحب، ستبقى الأموال مجمدة حتى يتم توفير عنوان سحب. + +تواصل مع موفر خدمة SaaS للاستفسار عن المزيد من التفاصيل حول الضمانات أو خيارات التأمين التي يقدمها، وعن تعليمات بخصوص كيفية توفير عنوان سحب. إذا كنت تفضل التمتع بالتحكم الكامل في إعداد المدقق الخاصة بك، تعرف على المزيد عن كيفية المراهنة بشكلٍ منفرد. + + +## قراءة إضافية {#further-reading} + +- [تقييم خدمات المراهنة](https://www.attestant.io/posts/evaluating-staking-services/) - _جيم ماكدونالد 2020_ diff --git a/public/content/translations/ar/staking/solo/index.md b/public/content/translations/ar/staking/solo/index.md new file mode 100644 index 00000000000..764a135caa5 --- /dev/null +++ b/public/content/translations/ar/staking/solo/index.md @@ -0,0 +1,203 @@ +--- +title: المراهنة الفردية لعملة ETH الخاص بك +description: نظرة عامة إلى كيفية بدء المراهنة الفردية لعملة ETH الخاص بك +lang: ar +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-solo.png +alt: ليزلي فرس النهر على شريحة الحاسوب الخاصة بها. +sidebarDepth: 2 +summaryPoints: + - الحصول على أقصى قدر ممكن من المكافآت من البروتوكول مباشرةً نظير الحفاظ على أداء برنامج المدقق الخاص بك بشكلٍ صحيح وإبقائه متصلاً بالإنترنت + - تشغيل الأجهزة المنزلية، وتعزيز أمان ولامركزية شبكة إيثريوم بشكلٍ شخصي + - إلغاء الحاجة إلى الثقة، وعدم التوقف عن التحكم في المفاتيح التي تمنحك الوصول إلى أموالك +--- + +## ما المقصود بالمراهنة الفردية؟ {#what-is-solo-staking} + +المراهنة الفردية هي عملية [تشغيل عقدة إيثريوم](/run-a-node/) متصلة بالإنترنت، وإيداع 32 ETH لتفعيل [برنامج المدقق](#faq)، وهذا يمنحك إمكانية المشاركة مباشرةً في إجماع الآراء على الشبكة. + +**تزيد المراهنة الفردية من لامركزية شبكة إيثريوم**، وهو ما يجعل إيثريوم أكثر مقاومة للرقابة وأكثر قوة أمام الهجمات. قد لا تساعد أساليب المراهنة الأخرى الشبكة بالطرق نفسها. تُعد المراهنة الفردية أفضل خيار مراهنة لتأمين إيثريوم. + +تتكون عقدة إيثريوم من عميل طبقة التنفيذ (EL) إضافة إلى عميل طبقة إجماع الآراء (CL). البرامج هي برمجيات تعمل معًا، إلى جانب مجموعة صالحة من مفاتيح التوقيع، للتحقق من المعاملات والكتل، ومصادقة العنوان الصحيح للسلسلة، وتجميع عمليات المصادقة، واقتراح الكتل. + +يتحمل المراهنون الفرديون مسؤولية تشغيل الأجهزة اللازمة لتشغيل هؤلاء العملاء. يُوصى بشدة باستخدام آلة مخصصة لهذا الغرض يمكنك تشغيلها من المنزل، هذا مفيد للغاية لسلامة الشبكة. + +يتلقى المراهنون الفرديون المكافآت من البروتوكول مباشرةً نظير الحفاظ على أداء برنامج المدقق الخاص بهم وإبقائه متصلًا بالإنترنت. + +## لماذا يجب التفكير في المراهنة الفردية؟ {#why-stake-solo} + +تنطوي المراهنة الفردية على مسؤولية أكبر ولكنها توفر أقصى قدر من التحكم في أموالك وإعدادات المراهنة. + + + + + + + +## الاعتبارات التي ينبغي وضعها في الاعتبار قبل المراهنة الفردية {#considerations-before-staking-solo} + +بقدر ما نتمنى أن تكون المراهنة الفردية متاحة وتخلو من المخاطر للجميع، فهذا ليس حقيقة واقعة. هناك بعض الاعتبارات العملية والمهمة التي ينبغي وضعها في الاعتبار قبل اختيار المراهنة الفردية لعملة ETH الخاصة بك. + + + +عند تشغيل العقدة الخاصة بك، عليك تخصيص بعض الوقت لتعلم كيفية استخدام البرنامج الذي اخترته. يتضمن ذلك قراءة ملفات التوثيق ذات الصلة والتوافق مع قنوات التواصل الخاصة بفرق المطورين. + +كلما عرفت أكثر عن البرنامج الذي تشغّله وعن آلية عمل بروتوكول إثبات المراهنة، انخفضت المخاطر عليك كمراهن، وسيسهل من إصلاح أي مشكلات قد تواجهها كمُشغّل عقدة. + + + +يتطلب إعداد العُقد قدرًا معقولًا من الشعور بالراحة عند العمل باستخدام الحواسيب، على الرغم من أن الأدوات الجديدة تجعل هذه العملية أسهل بمرور الوقت. يُعد فهم واجهة سطر الأوامر أمرًا مفيدًا، لكنه لم يعد ضروريًّا كما كان الأمر من قبل. + +كما يتطلب الأمر إجراء إعداد أساسي للأجهزة، ومعرفة القليل عن الحد الأدنى من المواصفات المطلوب توفرها فيها. + + + +وكما هو الحال في طريقة تأمين المفاتيح الخاصة لعنوان Ethereum الخاص بك، فإنك ستحتاج إلى إنشاء مفاتيح خصوصًا لبرنامج المدقق الخاص بك. يجب أن تعرف كيفية الحفاظ على سلامة وأمان أي عبارات أصل أو مفاتيح خاصة.{' '} + +أمان إيثريوم ومنع الاحتيال + + + +أحيانًا ما تتعطل الأجهزة، وينقطع الاتصال بالشبكة، ويحتاج برنامج العميل إجراء تحديث في بعض الأحيان. صيانة العقدة هو أمر لا مهرب منه، وستتطلب بعضًا من انتباهك كل فترة. عليك التأكد من أنك على دراية بأي عمليات تحديث مرتقبة للشبكة أو للعميل. + + + +تتناسب المكافآت التي تحصل عليها مع الوقت الذي يكون برنامج المدقق الخاص بك متصلًا فيه بالإنترنت وتتم فيه المصادقة على نحوٍ سليم. تؤدي فترة التوقف إلى فرض عقوبات تتناسب مع عدد برامج المدقق الأخرى غير المتصلة بالإنترنت في الوقت نفسه، ولكنها لا تؤدي إلى شطبها. يُعد عرض النطاق الترددي أمرًا مهمًّا أيضًا، إذ يتم تقليل المكافآت على عمليات المصادقة التي لم تُجر في الوقت المناسب. تختلف المواصفات المطلوبة، ولكن يُوصى بامتلاك اتصال بسرعة ١٠ ميجا بايت/ثانية لعمليات التحميل والتنزيل. + + + +يختلف الشطب عن عقوبات عدم النشاط بسبب الوجود في وضع عدم الاتصال بالإنترنت، إذ يُعد من أشد العقوبات التي تُنفذ على البرامج الضارة. ومن خلال تشغيل عميل من الأقلية مع تحميل مفاتيحك على آلة واحدة فقط في المرة الواحدة، فإن خطر التعرض للشطب يكون في أدنى مستوياته. ومع ذلك، يجب أن يكون جميع المراهنين على دراية بمخاطر الشطب. + +معرفة المزيد عن مراحل برنامج المدقق والشطب + + + + + +## آلية العمل {#how-it-works} + + + +ستحصل على مكافآت ETH، عندما تكون نشطًا، وسيتم إيداعها في عنوان السحب الخاص بك بشكلٍ دوري. + +إذا رغبت في ذلك، يمكنك الإنهاء كبرنامج مدقق، الأمر الذي سيلغي ضرورة بقائك متصلاً بالإنترنت، ويوقف أي مكافآت أخرى. سيتم بعد ذلك سحب رصيدك المتبقي إلى عنوان السحب الذي حددته في أثناء مرحلة الإعداد. + +[مزيد من المعلومات حول عمليات السحب المتعلقة بالمراهنات](/staking/withdrawals/) + +## البدء في استخدام منصة تشغيل المراهنة {#get-started-on-the-staking-launchpad} + +منصة تشغيل المراهنة هي تطبيق مفتوح المصدر يساعدك على أن تصبح مراهنًا. سترشدك المنصة خلال اختيار عملائك، وإنشاء مفاتيحك وإيداع ETH الخاص بك في عقد إيداع المراهنة. يتم توفير قائمة مرجعية للتأكد من أنك غطيت كل الشروط اللازمة لإعداد برنامج المدقق الخاص بك بطريقة آمنة. + + + +## ما الأمور التي ينبغي مراعاتها مع أدوات إعداد العقدة والعميل {#node-tool-considerations} + +هناك عدد متزايد من الأدوات والخدمات التي تساعدك في إجراء المراهنة الفردية لعملة ETH الخاصة بك، ولكن لكل منها مخاطر وفوائد مختلفة. + +تُستخدَم مؤشرات السمات الواردة أدناه للإشارة إلى نقاط القوة أو الضعف الملحوظة التي قد تكون في أداة المراهنة المدرجة. استخدم هذا القسم كمرجع لكيفية تحديد هذه السمات في أثناء اختيارك للأدوات التي تساعدك في رحلة المراهنة. + + + +## استكشاف أدوات إعداد العقدة والعميل {#node-and-client-tools} + +تتوفر خيارات متنوعة لمساعدتك على إكمال الإعداد. استخدم المؤشرات أعلاه للمساعدة في إرشادك خلال الأدوات المتاحة أدناه. + + + +### أدوات العقدة + + + +يُرجى ملاحظة أهمية اختيار [عميل من الأقلية](/developers/docs/nodes-and-clients/client-diversity/) لأنه يحسّن أمان الشبكة ويحد من المخاطر التي تتعرض لها. يُشار إلى الأدوات التي تتيح لك إعداد عميل من الأقلية على أنها "متعددة العملاء". + +### مكونات المفاتيح + +These tools can be used as an alternative to the [Staking Deposit CLI](https://github.com/ethereum/staking-deposit-cli/) to help with key generation. + + + +هل لديك اقتراح غاب عنا لأداة مراهنة؟ راجع [سياسة قائمة المنتجات](/contributing/adding-staking-products/) الخاصة بنا لمعرفة ما إذا كانت مناسبة، ثم أرسلها للمراجعة. + +## استكشاف إرشادات المراهنة الفردية {#staking-guides} + + + +## الأسئلة الشائعة {#faq} + +إليك بعض أكثر الأسئلة شيوعًا حول المراهنة التي ينبغي معرفتها. + + + +برنامج المدقق هو كيان افتراضي يوجد في إيثريوم ويشارك في عملية إجماع الآراء لبروتوكول الإيثريوم. يتم استعراض برامج المدقق بواسطة الرصيد والمفتاح العام وغيرها من الخصائص. عميل برنامج المدقق هو البرنامج الذي يعمل نيابةً عن برنامج المدقق من خلال الاحتفاظ بمفتاحه الخاص واستخدامه. يمكن أن يحتفظ عميل برنامج مدقق واحد بعدة أزواج من المفاتيح، والتحكم في العديد من برامج المدقق. + + + + +يلزم وجود 32 ETH بالضبط لتفعيل كل زوج من المفاتيح المقترنة ببرنامج مدقق واحد. إن إيداع المزيد من عملات ETH في مجموعة واحدة من المفاتيح لا يزيد من المكافآت المحتملة، حيث يقتصر كل برنامج مدقق على رصيد فعال يبلغ قدره 32 ETH. هذا يعني أن المراهنة تتم بزيادات تبلغ 32 ETH، لكل منها مجموعة المفاتيح والرصيد الخاصان بها. + +لا تجرِ عملية إيداع بأكثر من 32 ETH لبرنامج مدقق واحد. إذ لن يزيد ذلك من مكافآتك. في حال تعيين عنوان سحب لبرنامج المدقق، سيتم سحب أي أموال تزيد على 32 ETH تلقائيًّا إلى هذا العنوان أثناء عملية التحقق من برنامج المدقق المقبلة. + +إذا كانت المراهنة الفردية تتطلب منك بذل الكثير من الجهد، ففكر في استخدام مزود خدمة المراهنة كخدمة، أو إذا كنت تعمل بأقل من 32 ETH، فتحقّق من تجمعات الرهان. + + + +لن يؤدي عدم الاتصال بالإنترنت إلى الشطب عندما تنهي الشبكة معاملاتها على نحوٍ سليم. يتم فرض عقوبات صغيرة على عدم النشاط إذا لم يكن برنامج المدقق الخاص بك متاحًا لإقرار حالة الشبكة لمدة دورة كاملة (مدة كل منها 6.4 دقائق)، ولكن هذه العقوبات تختلف تمامًا عن الشطب. هذه العقوبات أقل بقليل من مقدار المكافأة التي كنت ستحصل عليها لو كان برنامج المدقق متاحًا للإقرار، ويمكن تعويض الخسائر عبر الحفاظ على الاتصال بالإنترنت لفترة تعادل فترة عدم الاتصال. + +تجدر الإشارة إلى أن العقوبات المفروضة على عدم النشاط تتناسب مع عدد برامج المدقق غير المتصلة بالإنترنت في الوقت نفسه. وفي الحالات التي يكون فيها جزء كبير من الشبكة غير متصل بالإنترنت في آن واحد، فإن العقوبات المفروضة على كل من برامج المدقق هذه ستكون أكثر مما كانت في حال عدم توفر برنامج مدقق واحد. + +في الحالات القصوى، إذا توقفت الشبكة عن إنهاء معاملاتها نتيجة لعدم اتصال أكثر من ثلث برامج المدقق بالإنترنت، فسيتعرض هؤلاء المستخدمون لما يُعرف باسم تسرب عدم النشاط التربيعي، وهو استنزاف هائل لعملات ETH من حسابات برنامج المدقق غير المتصلة بالإنترنت. يتيح ذلك للشبكة إمكانية الإصلاح الذاتي في نهاية المطاف عبر استهلاك ETH الخاص ببرامج المدقق غير النشطة حتى يصل رصيدها إلى 16 ETH، وعندها سيتم إخراجها تلقائيًّا من تجمع برنامج المدقق. ستشكّل برامج المدقق المتصلة بالإنترنت المتبقية في النهاية أكثر من ثلثي الشبكة مجددًا، الأمر الذي يحقق الأغلبية المطلقة اللازمة لكي تنهي الشبكة معاملاتها مجددًا. + + + +باختصار، ليس هناك ضمان كامل لعدم التعرض للشطب، ولكن إذا تصرفت بحسن نية، وشغّلت أحد عملاء الأقلية، واحتفظت بمفاتيح التوقيع الخاصة بك على جهاز واحد في كل مرة، فإن خطر التعرض للشطب سيكون معدومًا تقريبًا. + +لا يوجد سوى عدد قليل من الطرق المحددة التي يمكن أن تؤدي إلى تعرض برنامج المدقق للشطب وإخراجه من الشبكة. وحتى وقت كتابة هذه السطور، كانت عمليات الشطب التي تمت حتى الآن، بشكلٍ حصري، نتاجًا لإعدادات الأجهزة الزائدة عن الحاجة حيث يتم تخزين مفاتيح التوقيع على جهازين منفصلين في وقت واحد. تخزين المفاتيح بهذه الطريقة يمكن أن يؤدي إلى حدوث تصويت مزدوج من مفاتيحك، وهو أمر يعد مخالفة تستوجب الشطب. + +كما تنطوي عملية تشغيل عميل لديه أغلبية كبيرة (أي عميل يستخدمه أكثر من ثلثي الشبكة) على خطر التعرض للشطب إذا تسبب خلل في هذا العميل بحصول تفرع في الشبكة. قد يؤدي ذلك إلى ظهور تفرع خطأ يصل إلى مرحلة إنهاء المعاملات. سيتطلب تصحيح الخطأ والعودة إلى السلسلة المقصودة تقديم تصويت انسحاب من خلال محاولة التراجع عن الكتلة النهائية. كما يمثل ذلك مخالفة تستوجب الشطب، ويمكن تفاديها عبر تشغيل عقدة أقلية بدلًا من عقدة أغلبية. + +الأخطاء المماثلة في عميل الأقلية لا يبلغ مرحلة الإنهاء ومن ثم لا تؤدي أبدًا إلى حدوث تصويت شامل، وهو الأمر الذي سيؤدي ببساطة إلى فرض عقوبات عدم النشاط وليس الشطب. + + + + + +قد يختلف العملاء الفرديون قليلاً من حيث الأداء وواجهة المستخدم، حيث يتم تطوير كل منهم من قِبل فرق مختلفة باستخدام مجموعة متنوعة من لغات البرمجة. ومع قول ذلك، فإنه لا يوجد نوع عملاء يعد "الأفضل". إذ يُعد جميع عملاء الإنتاج من البرامج الممتازة، وتؤدي جميعًا الوظائف الأساسية نفسها المتعلقة بمزامنة البلوكتشين والتفاعل معها. + +ونظرًا إلى تقديم جميع عملاء الإنتاج الوظيفة الأساسية نفسها، فمن الضروري للغاية في الواقع أن تختار عميل أقلية، أي عميلاً لا يتم استخدامه حاليًّا من قبل غالبية برامج المدقق الموجودة على الشبكة. قد يبدو ذلك معاكسًا للمنطق، ولكن تشغيل عميل أغلبية أو عميل أغلبية كبيرة يعرضك لخطرٍ متزايد من الشطب في حال حدوث خلل في هذا العميل. تشغيل عميل أقلية يخفض هذا الخطر بشكلٍ كبير. + +تعرّف على المزيد حول سبب أهمية تنوع العملاء + + + +على الرغم من أنه يمكن استخدام خادم افتراضي خاص (VPS) كبديل للأجهزة المنزلية، فإن الوصول المادي وموقع عميل برنامج المدقق الخاص بك يُعد أمرًا مهمًّا. تتيح الحلول السحابية المركزية مثل Amazon Web Services أو Digital Ocean عدم الاضطرار إلى شراء الأجهزة وتشغيلها، لكن ذلك يكون على حساب مركزية الشبكة. + +كلما زاد عدد عملاء برامج المدقق الذين يستخدمون حل تخزين سحابي مركزي واحد، زاد الخطر على هؤلاء المستخدمين. أي حدث يؤدي إلى عدم اتصال مزودي الخدمات هؤلاء بالإنترنت، إما عن طريق التعرض لهجوم أو نتيجة مطالب تنظيمية أو بسبب انقطاع بالكهرباء أو الإنترنت، سيؤدي إلى توقف كل عميل برنامج مدقق يعتمد على هذا الخادم لعدم الاتصال بالإنترنت في الوقت نفسه. + +علمًا أن عقوبات الانقطاع عن الإنترنت تزداد مع ازدياد عدد العملاء الآخرين المنقطعين عن الإنترنت. استخدم سيرفرًا خاصًّا افتراضيًّا يزيد من خطر عقوبات الانفصال عن الإنترنت ويجعلها أكثر قسوةً، ويزيد من عرضتكم لتسرب تربيعي أو خصم إذا كان الانقطاع عن الإنترنت واسع النطاق لدرجة كافية. ولتقليل المخاطر التي تتعرض لها والتي تتعرض لها الشبكة، فإننا ننصح بشدة أن يشتري المستخدمون أجهزتهم الخاصة وتشغيلها. + + + + +تتطلب عمليات السحب من أي نوع من سلاسل المنارة تعيين بيانات اعتماد السحب. + +يقوم المراهنون الجدد بتعيين هذه البيانات في وقت إنشاء المفاتيح وإيداعها. يمكن للمراهنين الحاليين الذين لم يسبق لهم تعيين هذه البيانات، تحديث مفاتيحهم لدعم هذه الوظيفة. + +بعد تعيين بيانات اعتماد السحب، سيتم توزيع مدفوعات المكافآت (عملات ETH المتراكمة التي تزيد على 32) بصورة دورية في عنوان السحب تلقائيًّا. + +لفتح رصيدك واسترداده بالكامل، عليك أيضًا إكمال عملية الخروج من برنامج المدقق. + +مزيد من المعلومات حول عمليات السحب المتعلقة بالمراهنات + + +## قراءة إضافية {#further-reading} + +- [مشكلة تنوع عملاء إيثريوم](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ +- [تقديم المساعدة بخصوص تنوع العملاء](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ +- [تنوع العملاء في طبقة إجماع الآراء الخاصة بإيثريوم](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ +- [كيفية: التسوق لشراء أجهزة برنامج مدقق إيثريوم](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ +- [بتعليمات مفصلة: كيفية الانضمام إلى شبكة تجريب إيثريوم 2.0](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _Butta_ +- [نصائح لتفادي التعرض للشطب من Eth2](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raul Jordan 2020_ diff --git a/public/content/translations/ar/staking/withdrawals/index.md b/public/content/translations/ar/staking/withdrawals/index.md new file mode 100644 index 00000000000..b4f652d16b8 --- /dev/null +++ b/public/content/translations/ar/staking/withdrawals/index.md @@ -0,0 +1,217 @@ +--- +title: عمليات سحب تجميد العملات +description: ملخص الصفحة عن ماهية دفع عمليات سحب المراهنة، آلية عملها، والإجراءات التي يحتاج المراهنون إلى اتخاذها للحصول على مكافأتهم +lang: ar +template: staking +image: /staking/leslie-withdrawal.png +alt: ليزلي فرس النهر مع مكافأتها من المراهنة +sidebarDepth: 2 +summaryPoints: + - ساعد تحديث Shanghai/Capella على تمكين سحب المراهنة على إيثريوم + - يجب أن يقدم مشغلو برنامج المدقق عنوان السحب لتمكين هذه الخاصية + - يتم توزيع المكافآت تلقائيًّا كل بضعة أيام + - سيحصل المدققون الذين يخرجون من نظام المراهنة كليًّا على كامل رصيدهم المتبقي +--- + + +تم تمكين خاصية سحب المراهنة بفضل تحديث Shanghai/Capella الذي حدث في 12 أبريل 2023.  مزيد من المعلومات عن هذا التحديث + + +تشير **عمليات سحب المراهنة** إلى تحويل عملة ETH من حساب المدقق على طبقة إجماع إيثريوم (سلسلة المنارة) إلى طبقة التنفيذ حيث يمكن تداوله. + +**مدفوعات مكافآت الرصيد الفائض** للمدققين المساهمين بأكثر من 32 ETH سيتم إرسالها بشكل تلقائي ومنتظم إلى عنوان السحب المرتبط بكل مدقق، بمجرد أن يقدم المستخدم هذه العناوين. بإمكان المستخدمين أيضًا **الخروج من نظام المراهنة كليًّا**، بشكلٍ يتيح فتح قفل كامل رصيدهم كمدققين. + +## مكافآت المراهنة {#staking-rewards} + +تتم معالجة مدفوعات المكافآت لكافة حسابات المدققين النشطة والتي تمتلك رصيدًا ساريًا من رصيد 32 ETH. + +لا يساهم أي رصيد يتجاوز 32 ETH يتم ربحه من خلال المكافآت حقًّا في عملية الإيداع الأساسية، ولا يزيد من وزن المدقق في الشبكة، ولذلك يتم سحبها تلقائيًّا كدفعات مكافآت كل بضعة أيام. باستثناء الحاجة إلى توفير عنوان سحب لمرة واحدة، لا يتطلب استلام المكافآت أن يتخذ مشغل برنامج المدقق أي إجراء. يتم تنفيذ كافة هذه الإجراءات على طبقة الإجماع، لذلك لا توجد حاجة إلى رسوم غاز (رسوم معاملات) في أي خطوة. + +### كيف قطعنا هذا الشوط حتى وصلنا إلى هنا؟ {#how-did-we-get-here} + +على مدار السنوات الماضية، أجرت إيثريوم عدة تحديثات للشبكة، لتنتقل إلى شبكة يتم تأمينها بعملة ETH نفسها، بدلًا من عمليات تعدين مستهلكة للكهرباء كما كان الأمر في السابق. تُعرف المشاركة في طبقة الإجماع في إيثريوم الآن بالمراهنة، حيث يحجز المشاركون طوعيًّا كمية من عملة ETH، ويودعونها "للمراهنة"، للتمتع بإمكانية المشاركة في الشبكة. سيحصل المستخدمون الذين يتبعون القواعد على المكافآت، في حين سيتعرض المستخدمون الذين يحاولون الغش لعقوبات. + +منذ إطلاق عقد إيداع المراهنة في نوفمبر 2020، قام بعض رواد إيثريوم الشجعان بحجز أموالهم لتفعيل "برامج المدققين"، والحسابات الخاصة تمتلك الحق في المساهمة بالتحقق من الكتل واقتراحها، وفقًا لقواعد الشبكة. + +قبل تحديث Shanghai/Capella، لم تتمكن من استخدام عملة ETH التي تمت مراهنتها أو الوصول إليها. أما الآن، فيمكنك اختيار استلام مكافآتك بشكلٍ تلقائي لحسابٍ من اختيارك، وبإمكانك أيضًا سحب عملة ETH التي تمت مراهنتها متى شئت. + +### كيف يمكنني التحضير؟ {#how-do-i-prepare} + + + +### إشعارات مهمة {#important-notices} + +يلزم توفير عنوان للسحب لأي حساب مدقق قبل أن يصبح مؤهلاً لسحب عملة ETH من رصيده. + + + يمكن تخصيص عنوان سحب واحد فقط لكل حساب مدقق ولمرة واحدة فقط. بمجرد اختيار العنوان وإرساله إلى طبقة الإجماع، لا يمكن التراجع عن هذا الإجراء أو التغيير. تحقق جيدًا من ملكية ودقة العنوان الذي تم تقديمه قبل الإرسال. + + +لا يوجد أي تهديد على رصيدكم في الوقت الحالي في حال عدم تقديم عنوان سحب، بافتراض أن عبارة الأصل الذاكرة الخاصة بك لا تزال محفوظة بمكانٍ آمن بدون اتصال بالإنترنت، ولم يتم اختراقها بأي طريقة. سيؤدي عدم توفير عنوان سحب ببساطة إلى تراكم عملة ETH في حساب المدقق الخاص بك حتى يتم تقديم عنوان للسحب. + +## الخروج من نظام المراهنة بالكامل {#exiting-staking-entirely} + +يلزم توفير عنوان للسحب _قبل_ أن يصبح من الممكن تحويل أي رصيد من حساب المدقق. + +على المستخدمين الذين يريدون الخروج بالكامل من نظام المراهنة بالكامل وسحب كامل رصيدهم أن يوقعوا وينشروا رسالة "الانسحاب الطوعي" باستخدام مفاتيح المدقق التي ستبدأ عملية الخروج من نظام المراهنة. يتم إجراء ذلك باستخدام عميل المدقق الخاص بكم وإرساله عبر عقدة إجماع الآراء، ولا تتطلب العملية أي رسوم غاز. + +تستغرق عملية خروج مدقق من المراهنة فترات مختلفة من الزمن، حسب عدد المدققين الآخرين الذين يخرجون من المراهنة في نفس الوقت. بمجرد إتمام عملية الخروج، لن يعود هذا الحساب مسؤولًا عن أداء واجبات مدققي الشبكة، ويصير غير مؤهل للحصول على المكافآت، ولا يمتلك عملة ETH "قيد المراهنة". عند هذه المرحلة، ستتم الإشارة إلى الحساب على أنه "قابل للسحب" بالكامل. + +بمجرد أن تتم الإشارة إلى الحساب على أنه "قابل للسحب"، وبعد أن يتم تقديم بيانات اعتماد السحب، لا يتبقى أي شيء بإمكان المستخدم فعله سوى الانتظار. يتم فحص الحسابات بشكل تلقائي ومستمر من قبل مقدمي مقترحات الكتل للأموال المؤهلة التي تم الخروج منها، وسيتم تحويل رصيد حسابك بالكامل (المعروف أيضًا باسم "السحب الكامل") خلال عملية الفحص التالية. + +## متى يتم تمكين عمليات سحب المراهنة؟ {#when} + +أصبحت عمليات سحب المراهنة مفعلة! تم تفعيل وظيفة السحب كجزء من تحديث Shanghai/Capella التي حدثت في 12 أبريل 2023. + +ساعد تحديث Shanghai/Capella على تفعيل عملة ETH التي تمت مراهنتها سابقًا ليتم استردادها إلى حسابات إيثريوم عادية. أدى هذا إلى إغلاق حلقة السيولة، وجعلت إيثريوم تقترب خطوة واحدة من رحلتها نحو بناء نظام بيئي لا مركزي مستدام وقابل للتطوير وآمن. + +- [مزيد من المعلومات عن تاريخ إيثريوم](/history/) +- [مزيد من المعلومات عن خريطة طريق إيثريوم](/roadmap/) + +## ما هي آلية عمل مدفوعات السحب؟ {#how-do-withdrawals-work} + +يتم تحديد كون المدقق المحدد مؤهلاً للسحب أو لا من خلال حالة حساب المدقق نفسه. لا توجد إدخالات مستخدم مطلوبة في أي وقت ليحدد هل يجب أن يبدأ الحساب عملية سحب أم لا - تتم العملية كلها تلقائيًّا من خلال طبقة الإجماع في حلقة مستمرة. + +### أتريد المزيد من المعلومات المرئية؟ {#visual-learner} + +اطلع على هذا الشرح لعمليات سحب مراهنة الإيثيريوم من Finematics: + + + +### "فحص" المدقق {#validator-sweeping} + +عندما يتم جدولة مدقق ما لاقتراح الكتلة المقبلة، يلزم إنشاء قائمة انتظار للسحب، تصل إلى 16 عملية سحب مؤهلة. يتم إجراء ذلك من خلال البدء في الأساس بمؤشر المدقق 0، وتحديد أن هناك سحبًا مؤهلاً لهذا الحساب وفقًا لقواعد البروتوكول أو لا، وإضافته إلى قائمة الانتظار إن وجد. سيتابع المدقق الذي تم تعيينه لاقتراح الكتلة التالية من حيث توقفت الكتلة الأخيرة، ويتقدم بالترتيب إلى أجل غير مسمى. + + +فكر في الساعة التناظرية. يشير عقرب الساعة إلى الساعات، يتحرك باتجاهٍ واحد ولا يتخطى أي ساعة، ويعيد دورته مرة أخرى بعد أن يصل إلى الرقم الأخير.

+الآن بدلاً من 1 إلى 12، تخيل أن الساعة تحتوي على 0 إلى N(إجمالي عدد حسابات المدقق التي تم تسجيلها على الإطلاق في طبقة إجماع الآراء، أكثر من 500000 ابتداءً من يناير 2023).

. يشير عقرب الساعة إلى المدقق التالي الذي يجب التحقق من أهليته لعمليات السحب. يبدأ عند 0، ويتقدم على طول الطريق دون تخطي أي حسابات. عندما يتم بلوغ آخر مدقق، تعود الدورة للبدء مرة أخرى. +
+ +#### التحقق من أهلية حساب لعمليات السحب {#checking-an-account-for-withdrawals} + +بينما يفحص مقدم العرض المدقق عمليات السحب المحتملة، يتم تقييم كل مدقق يتم فحصه مقابل سلسلة قصيرة من الأسئلة لتحديد وجوب بدء السحب أو عدم وجوبه، وإذا كان الأمر كذلك، فما مقدار عملة ETH التي يجب سحبها. + +1. **هل تم توفير عنوان للسحب؟**، في حالة عدم توفير عنوان سحب، يتم تخطي الحساب دون بدء عملية سحب. +2. **هل خرج المدقق من المراهنة وأصبح قابلًا للسحب؟** إذا خرج المدقق كليًّا، فقد وصلنا إلى المرحلة التي يعتبر فيها حسابهم "قابلاً للسحب"، ثم ستتم معالجة السحب الكامل. سيؤدي ذلك إلى تحويل كامل الرصيد المتبقي إلى عنوان السحب. +3. **هل بلغ الرصيد الساري ذروته عند 32؟**، إذا كان الحساب يتضمن بيانات اعتماد السحب، ولم يتم الخروج منه بالكامل، ولديه مكافآت تزيد على 32 قيد الانتظار، فستتم معالجة السحب الجزئي الذي ينقل فقط المكافآت التي تزيد على 32 إلى عنوان السحب الخاص بالمستخدم. + +هناك إجراءان فقط يتم اتخاذهما من قبل مشغلي برنامج المدقق في أثناء دورة حياة المدقق وهو ما يؤثر في هذا التدفق بشكل مباشر: + +- توفير بيانات اعتماد السحب لإتاحة أي شكل من أشكال السحب +- الخروج من الشبكة، وهو ما سيؤدي إلى تحفيز سحب كامل + +### بدون رسوم للغاز {#gas-free} + +يتجنب هذا النهج في عمليات سحب المراهنة مطالبة المراهنين بتقديم معاملة يدويًّا تطلب سحب مبلغ معين من عملة ETH. هذا يعني أنه **لا توجد رسوم غاز (رسوم معاملات) مطلوبة**، وأن عمليات السحب لا تتنافس على الخروج من حيز كتلة طبقة التنفيذ. + +### ما هو عدد المرات التي سأحصل فيها على مكافآت المراهنة الخاصة بي؟ {#how-soon} + +يمكن معالجة 16 عملية سحب كحد أقصى في كتلة واحدة. وبهذا المعدل، يمكن معالجة 115,200 عملية سحب للمدقق يوميًّا (بافتراض عدم وجود خانات مفقودة). كما هو مذكور أعلاه، سيتم تخطي المدققين الذين لا يمتلكون عمليات سحب مؤهلة، وهو ما يقلل من الوقت اللازم لإنهاء عملية الفحص. + +وبتوسيع هذه العملية الحسابية، يمكننا تقدير الوقت الذي ستستغرقه معالجة عدد معين من عمليات السحب: + + + +| عدد عمليات السحب | الوقت المتخذ لإتمامها: | +| :--------------: | :--------------------: | +| 400,000 | 3.5 أيام | +| 500,000 | 4.3 أيام | +| 600,000 | 5.2 أيام | +| 700,000 | 6.1 أيام | +| 800,000 | 7.0 أيام | + + + +وكما هو موضح، فإن هذا يتباطأ مع وجود المزيد من المدققين على الشبكة. قد تؤدي زيادة الخانات المفقودة إلى إبطاء هذا بشكل متناسب، ولكن هذا سيمثل عمومًا الجانب الأبطأ من النتائج المحتملة. + +## أسئلة مكررة {#faq} + + +لا، إن عملية تقديم بيانات اعتماد السحب هي عملية يتم إجراؤها مرة واحدة، ولا يمكن تغييرها بمجرد إرسالها. + + + +من خلال تعيين عنوان سحب طبقة التنفيذ، تم تغيير بيانات اعتماد السحب الخاصة بهذا المدقق بشكل دائم. وهذا يعني أن بيانات الاعتماد القديمة لن تعمل بعد الآن، وسيتم توجيه بيانات الاعتماد الجديدة إلى حساب طبقة التنفيذ. + +يمكن أن تكون عناوين السحب إما عقدًا ذكيًّا (يتم التحكم فيه بواسطة النص البرمجي الخاص به)، أو حسابًا مملوكًا خارجيًّا (EOA، يتم التحكم فيه بواسطة مفتاح خاص). في الوقت الحالي، لا تمتلك هذه الحسابات طريقة لتوصيل رسالة مرة أخرى إلى طبقة إجماع الآراء التي من شأنها أن تشير إلى تغيير في بيانات اعتماد المدقق، ثم إن إضافة هذه الوظيفة من شأنها أن تضيف تعقيدًا غير ضروري إلى البروتوكول. + +كحل بديل لتغيير عنوان السحب لمدقق معين، يمكن للمستخدمين اختيار تعيين عقد ذكي كعنوان السحب الخاص بهم يمكنه التعامل مع تدوير المفاتيح، مثل الخزنة. يمكن للمستخدمين الذين خصصوا أموالهم لـ EOA الخاص بهم إجراء خروج كامل لسحب جميع أموالهم التي تمت مراهنتها، ثم إعادة المراهنة باستخدام بيانات اعتماد جديدة. + + + + +إذا كنت جزءًا من تجمع الرهان أو تحمل رموز المراهنة المميزة، يجب عليك الرجوع إلى موفر الخدمة الخاص بك للحصول على مزيد من التفاصيل حول كيفية التعامل مع عمليات سحب المراهنة، حيث تعمل كل خدمة بشكل مختلف. + +بشكل عام، يجب أن يتمتع المستخدمون بالحرية في استعادة عملة ETH الأساسية الخاصة بهم التي تمت مراهنتها، أو تغيير موفر خدمة المراهنة الذي يستخدمونه. إذا أصبح عدد مجمع معين كبيرًا جدًّا، فيمكن الخروج من الأموال واستردادها وإعادة رهنها مع موفر خدمة أصغر. أو، إذا جمعت ما يكفي من عملة ETH، فيمكنك المراهنة من المنزل. + + + + +أجل، ما دام المدقق قام بتوفير عنوان السحب. يجب توفير العنوان مرة واحدة لإتاحة أي عمليات سحب في البداية، ثم سيتم تشغيل دفعات المكافآت تلقائيًّا كل بضعة أيام مع كل عملية فحص للمدقق. + + + + +لا، إذا كان برنامج المدقق لا يزال نشطًا على الشبكة، فلن يتم السحب الكامل تلقائيًّا. يتطلب ذلك بدء عملية خروج طوعي يدويًّا. + +بمجرد أن يكمل المدقق عملية الخروج، وبافتراض أن الحساب يتضمن بيانات اعتماد للسحب، سيتم بعد ذلك سحب الرصيد المتبقي أثناء عملية فحص المدقق التالية. + + + + +تم تصميم عمليات السحب بحيث يتم دفعها تلقائيًّا، ونقل أي عملة ETH لا تساهم بشكل فعال في المراهنة. وهذا يشمل الأرصدة الكاملة للحسابات التي أكملت عملية الخروج. + +يتعذَّر طلب سحب كميات مُحدّدة من ETH يدويًّا. + + + + +يُنصح مشغلو برامج المدقق بزيارة صفحة منصة تشغيل عمليات سحب المراهنة حيث ستعثر على مزيد من التفاصيل حول إعداد المدقق لعمليات السحب. الاستعدادات، توقيت الأحداث، والمزيد من التفاصيل حول آلية عمل وظيفة عمليات السحب. + +لتجربة إعدادك على شبكة تجريب أولًا، تفضّل بزيارة منصة تشغيل المراهنة على شبكة جورلي التجريبية للبدء. + + + + +لا. بمجرد خروج برنامج المدقق وسحب الرصيد بالكامل، سيتم تحويل أي أموال إضافية تم إيداعها في برنامج المدقق هذا تلقائيًّا إلى عنوان السحب أثناء عملية فحص المدقق التالية. لإعادة مراهنة عملة ETH، يجب تفعيل مدقق جديد. + + +## قراءة إضافية {#further-reading} + +- [منصة تشغيل عمليات سحب المراهنة](https://launchpad.ethereum.org/withdrawals) +- [EIP-4895: إجراءات السحب المدفوعة من سلسلة المنارة كعمليات](https://eips.ethereum.org/EIPS/eip-4895) +- [رعاة القطط في إيثريوم - شانغاهاي](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) +- [PEEPanEIP #94: سحب عملة ETH التي تمت مراهنتها (تجريبي) مع Potuz & Hsiao-Wei Wang](https://www.youtube.com/watch?v=G8UstwmGtyE) +- [PEEPanEIP#68: EIP-4895: إجراءات السحب المدفوعة من سلسلة المنارة كعمليات مع Alex stokes](https://www.youtube.com/watch?v=CcL9RJBljUs) +- [فهم الرصيد الساري لبرنامج المدقق](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/public/content/translations/az/dao/index.md b/public/content/translations/az/dao/index.md new file mode 100644 index 00000000000..d7dea538ad4 --- /dev/null +++ b/public/content/translations/az/dao/index.md @@ -0,0 +1,165 @@ +--- +title: Mərkəzləşdirilməmiş muxtar təşkilatlar (DAO-lar) +description: Ethereum-da DAO-lara ümumi baxış +lang: az +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: Bir təklif üzrə səsvermədə iştirak edən DAO-nun təqdimatı. +summaryPoint1: Mərkəzləşdirilmiş rəhbərliyi olmayan üzvlərə məxsus icmalar. +summaryPoint2: İnternetdən kənar şəxslərlə əməkdaşlığın təhlükəsiz yolu. +summaryPoint3: Müəyyən bir səbəbə vəsait ayırmaq üçün təhlükəsiz yer. +--- + +## DAO-lar nədir? {#what-are-daos} + +DAO, ortaq bir missiyaya doğru çalışan, kollektiv mülkiyyətdə olan, blokçeynlə idarə olunan bir təşkilatdır. + +DAO-lar bizə vəsaitləri və ya əməliyyatları idarə etmək üçün xeyirxah liderə etibar etmədən dünyanın hər yerindən həmfikir insanlarla işləməmizə imkan verir. Vəsaitləri şıltaqlığa xərcləyə bilən CEO və ya kitabları manipulyasiya edə bilən CFO yoxdur. Bunun əvəzinə koda daxil edilmiş blokçeyn əsaslı qaydalar, təşkilatın necə işlədiyini və vəsaitlərin necə xərcləndiyini müəyyənləşdirir. + +Onların daxili xəzinələri var ki, qrupun razılığı olmadan heç kimin daxil olmaq səlahiyyəti yoxdur. Qərarlar, təşkilatdakı hər kəsin səsini təmin etmək üçün təkliflər və səsvermə ilə idarə olunur və hər şey şəffaf şəkildə zəncirdə baş verir. + +## DAO-lara nə üçün ehtiyacımız var? {#why-dao} + +Maliyyə və pul tələb edən biri ilə bir təşkilata başlamaq, işlədiyiniz insanlara böyük etibar tələb edir. Ancaq yalnız internetdə ünsiyyət qurduğunuz birinə etibar etmək çətindir. DAO-larla, qrupda başqa heç kimə etibar etməyinizə ehtiyac yoxdur, sadəcə DAO kodu ki, 100% şəffafdır və hər kəs tərəfindən yoxlanıla bilər. + +Bu, qlobal əməkdaşlıq və koordinasiya üçün çoxlu yeni imkanlar açır. + +### Müqayisə {#dao-comparison} + +| DAO | Ənənəvi təşkilat | +| ---------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | +| Adətən düz və tam demokratikləşmiş. | Adətən iyerarxik. | +| Hər hansı dəyişikliyin həyata keçirilməsi üçün üzvlər tərəfindən səsvermə tələb olunur. | Strukturdan asılı olaraq tək partiyadan dəyişiklik tələb oluna bilər və ya səsvermə təklif oluna bilər. | +| Səslər hesablandı və nəticə etibarlı vasitəçi olmadan avtomatik həyata keçirildi. | Səsverməyə icazə verilərsə, səslər daxildə hesablanır və səsvermənin nəticəsi əl ilə idarə olunmalıdır. | +| Təklif olunan xidmətlər mərkəzləşdirilməmiş şəkildə avtomatik idarə olunur (məsələn, xeyriyyə fondlarının paylanması). | Manipulyasiyaya meylli əl ilə idarə etmək və ya mərkəzdən idarə olunan avtomatlaşdırma tələb edir. | +| Bütün fəaliyyət şəffaf və tam açıqdır. | Fəaliyyət adətən özəldir və ümumxalqa məhduddur. | + +### DAO nümunələri {#dao-examples} + +Bunun daha mənalı olmasına kömək etmək üçün DAO-dan necə istifadə edə biləcəyinizlə bağlı bir neçə nümunə təqdim edirik: + +- Xeyriyyə təşkilatı – siz dünyada hər kəsdən ianə qəbul edə və maliyyələşdirməyə səbəb olanlara səs verə bilərsiniz. +- Kollektiv mülkiyyət – siz fiziki və ya rəqəmsal aktivləri satın ala bilərsiniz və üzvlər onlardan necə istifadə etmək barədə səs verə bilərlər. +- Müəssisələr və qrantlar – siz investisiya kapitalını birləşdirən və dəstək üçün müəssisələrə səs verən vençur fondu yarada bilərsiniz. Ödənilmiş pul daha sonra DAO üzvləri arasında yenidən paylaşıla bilər. + +## DAO-lar necə işləyir? {#how-daos-work} + +DAO-nun əsası təşkilatın qaydalarını müəyyən edən və qrupun xəzinəsini saxlayan ağıllı müqaviləsidir. Müqavilə Ethereum-da yayımlandıqdan sonra, qaydaları dəyişmək yalnız səsvermə yolu ilə mümkündür. Hər kəs qanunda olan qaydalar və məntiqlə əhatə olunmayan bir şeyi etməyə cəhd edərsə, uğursuz olacaq. Xəzinə də ağıllı müqavilə ilə müəyyən edildiyi üçün, bu o deməkdir ki, heç kim qrupun razılığı olmadan pulu xərcləyə bilməz. Bu o deməkdir ki, DAO-ların mərkəzi orqana ehtiyacı yoxdur. Bunun əvəzinə qrup qərarları kollektiv şəkildə qəbul edir və səslər keçdikdə ödənişlərə avtomatik icazə verilir. + +Bu mümkündür, çünki ağıllı müqavilələr Ethereum-da yayımlandıqdan sonra saxtakarlığa davamlıdır. İnsanların fərqinə varmadan sadəcə qanunu (DAO qaydalarını) redaktə edə bilməzsiniz, çünki hər şey açıqdır. + + + Ağıllı müqavilələr haqqında daha çox + + +## Ethereum və DAO-lar {#ethereum-and-daos} + +Ethereum bir sıra səbəblərə görə DAO-lar üçün mükəmməl təməldir: + +- Ethereum-un öz konsensusu təşkilatların şəbəkəyə etibar etməsi üçün kifayət qədər paylanmış və qurulmuşdur. +- Ağıllı müqavilə qanunu yayımlandıqdan sonra dəyişdirilə bilməz, hətta sahibləri tərəfindən. Bu, DAO-ya proqramlaşdırıldığı qaydalarla işləməyə imkan verir. +- Ağıllı müqavilələr pul göndərə/qəbul edə bilər. Bu olmadan, qrup vəsaitlərini idarə etmək üçün etibarlı vasitəçiyə ehtiyacınız olacaq. +- Ethereum icması rəqabətdən daha çox əməkdaşlıq etdiyini sübut etdi ki, bu da ən yaxşı təcrübələrin və dəstək sistemlərinin sürətlə ortaya çıxmasına imkan verir. + +## DAO-nın idarəetməsi {#dao-governance} + +DAO-nu idarə edərkən səsvermə və təkliflərin necə işlədiyi kimi bir çox mülahizələr var. + +### Nümayəndə heyəti {#governance-delegation} + +Nümayəndə heyəti, təmsilçi demokratiyanın DAO versiyası kimidir. Token sahibləri səsləri özlərini irəli sürən və protokolu idarə etməyi və məlumatlı olmağı öhdəsinə götürən istifadəçilərə verir. + +#### Tanınmış bir nümunə {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) – ENS sahibləri səslərini onları təmsil etmək üçün iştirak edən icma üzvlərinə həvalə edə bilərlər. + +### Avtomatik əməliyyat idarəetməsi {#governance-example} + +Bir çox DAO-da, üzvlərin kvorumu müsbət səs verərsə, əməliyyatlar avtomatik olaraq həyata keçiriləcəkdir. + +#### Tanınmış bir nümunə {#governance-example} + +[Nouns](https://nouns.wtf)– Nouns DAO-da, təsisçilər tərəfindən veto qoyulmadığı müddətcə, səslərin kvorumu təmin edildikdə və əksəriyyət müsbət səs verərsə, əməliyyat avtomatik olaraq həyata keçirilir. + +### Multisig idarəetmə {#governance-example} + +DAO-ların minlərlə səsvermə üzvü ola bilsə də, fondlar etibar edilən və adətən doks olan (cəmiyyətə məlum olan ictimai şəxsiyyətlər) 5-20 fəal icma üzvü tərəfindən paylaşılan cüzdanda yaşaya bilər. Səsvermədən sonra multisig imzalayanlar cəmiyyətin iradəsini yerinə yetirirlər. + +## DAO qanunları {#dao-laws} + +1977-ci ildə Vayominq LLC-ni icad etdi ki, sahibkarları qoruyur və onların məsuliyyətini məhdudlaşdırır. Bu yaxınlarda onlar DAO-lar üçün hüquqi statusu müəyyən edən DAO qanununa öncülük etdilər. Hal-hazırda Vayominq, Vermont və Virgin Adalarında müəyyən formada DAO qanunları var. + +### Tanınmış bir nümunə {#law-example} + +[CityDAO](https://citydao.io)- CityDAO, Yellowstone Milli Parkının yaxınlığında 40 hektar torpaq almaq üçün Vyoming'in DAO qanunundan istifadə etdi. + +## DAO üzvlüyü {#dao-membership} + +DAO üzvlüyünün müxtəlif modelləri var. Üzvlük səsvermənin necə işlədiyini və DAO-nun digər əsas hissələrini müəyyən edə bilər. + +### Token əsaslı üzvlük {#token-based-membership} + +İstifadə olunan tokendən asılı olaraq adətən tam icazəsizdir. Bu idarəetmə tokenləri əsasən mərkəzləşdirilməmiş birjada icazəsiz alına bilər. Digərləri likvidlik və ya başqa bir “işin sübutu”nu təmin etməklə qazanılmalıdır. İstənilən halda, sadəcə tokeni saxlamaq səsverməyə giriş imkanı verir. + +_Adətən geniş mərkəzləşdirilməmiş protokolları və/və ya tokenlərin özlərini idarə etmək üçün istifadə olunur._ + +#### Tanınmış bir nümunə {#token-example} + +[MakerDAO](https://makerdao.com)MakerDAO-nun MKR tokeni mərkəzləşdirilməmiş birjalarda geniş şəkildə mövcuddur və hər kəs Maker protokolunun gələcəyi haqqında səsvermə haqqı ilə satın ala bilər. + +### Paylaşım əsaslı üzvlük {#share-based-membership} + +Paylaşım əsaslı DAO-lar daha mərkəzləşdirilmiş idarə olunur, lakin hələ də kifayət qədər açıqdır. Hər hansı bir potensial üzv DAO-ya qoşulmaq təklifini təqdim edə bilər ki, adətən tokenlər və ya iş şəklində dəyərli xərac təklif edir. Səhmlər birbaşa səs və mülkiyyət hüququnu təmsil edir. Üzvlər xəzinədəki mütənasib payları ilə istənilən vaxt çıxa bilərlər. + +_Adətən xeyriyyə təşkilatları, işçi kollektivləri və investisiya klubları kimi daha sıx əlaqəli, insan mərkəzli təşkilatlar üçün istifadə olunur. Protokolları və tokenləri də idarə edə bilər._ + +#### Tanınmış bir nümunə {#share-example} + +[MolochDAO](http://molochdao.com/)– MolochDAO Ethereum layihələrini maliyyələşdirməyə yönəlib. Onlar üzvlük üçün təklif tələb edirlər ki, qrup potensial qrant alanlar haqqında əsaslandırılmış mühakimə yürütmək üçün lazımi təcrübəyə və kapitala malik olub-olmadığınızı qiymətləndirə bilsin. Siz açıq bazarda DAO-ya giriş əldə edə bilməzsiniz. + +### Reputasiyaya əsaslanan üzvlük {#reputation-based-membership} + +Reputasiya iştirakın sübutunu təmsil edir və DAO-da səsvermə hüququ verir. Token və ya səhm əsaslı üzvlükdən fərqli olaraq, reputasiyaya əsaslanan DAO-lar mülkiyyət hüququnu töhfə verənlərə ötürmür. Reputasiya alına, ötürülə və ya həvalə edilə bilməz; DAO üzvləri iştirakla reputasiya qazanmalıdırlar. Zəncirlə səsvermə icazəsizdir və gələcək üzvlər DAO-ya qoşulmaq üçün sərbəst şəkildə təkliflər təqdim edə və töhfələri müqabilində mükafat olaraq reputasiya və tokenlər almağı tələb edə bilərlər. + +_Tipik olaraq protokolların və mərkəzləşdirilməmiş tətbiqlərin mərkəzləşdirilməmiş inkişafı və idarə edilməsi üçün istifadə olunur, eyni zamanda xeyriyyə təşkilatları, işçi kollektivləri, investisiya klubları və s. üçün uyğundur._ + +#### Tanınmış bir nümunə {#reputation-example} + +[DXdao](https://DXdao.eth.link)– DXdao qlobal suveren kollektiv binadır və 2019-cu ildən mərkəzləşdirilməmiş protokolları və tətbiqləri idarə edir. O, fondları koordinasiya etmək və idarə etmək üçün reputasiyaya əsaslanan idarəetmə və holoqrafik konsensusdan istifadə edir, yəni heç kim onun gələcəyinə təsir etməyi satın ala bilməz. + +## DAO-ya qoşulun / başlayın {#join-start-a-dao} + +### Join a DAO {#join-a-dao} + +- [Ethereum icmasının DAO-ları](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [DAOHaus-un DAO siyahısı](https://app.daohaus.club/explore) +- [Tally.xyz-nın DAO siyahısı](https://www.tally.xyz) + +### DAO-ya başlayın {#start-a-dao} + +- [DAOHaus ilə DAO çağırın](https://app.daohaus.club/summon) +- [Tally ilə Qubernator DAO-ya başlayın](https://www.tally.xyz/add-a-dao) +- [Araqonla işləyən DAO yaradın](https://aragon.org/product) +- [Bir koloniyaya başlayın](https://colony.io/) +- [DAOstack-in holoqrafik konsensusu ilə DAO yaradın](https://alchemy.daostack.io/daos/create) + +## Further reading {#further-reading} + +### DAO məqalələri {#dao-articles} + +- [DAO nədir?](https://aragon.org/dao) – [Araqon](https://aragon.org/) +- [DAO Təlimatı](https://daohandbook.xyz) +- [DAO-lar evi](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) +- [DAO nədir və nə üçündür?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) +- [DAO ilə işləyən Rəqəmsal İcmaya Necə Başlamaq olar](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) +- [DAO nədir?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) +- [Holografik Konsensus nədir?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) +- [DAO-lar korporasiyalar deyil: muxtar təşkilatlarda mərkəzsizləşdirmənin vacib olduğu yerlərdə Vitalik tərəfindən](https://vitalik.ca/general/2022/09/20/daos.html) +- [DAO, DAC, DA və daha çox: Natamam Terminologiya Bələdçisi](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Ethereum Blog](https://blog.ethereum.org) + +### Videolar {#videos} + +- [Kriptovalyutada DAO nədir?](https://youtu.be/KHm0uUPqmVE) +- [DAO bir şəhər qura bilərmi?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/public/content/translations/az/nft/index.md b/public/content/translations/az/nft/index.md new file mode 100644 index 00000000000..88bb98bead2 --- /dev/null +++ b/public/content/translations/az/nft/index.md @@ -0,0 +1,94 @@ +--- +title: Dəyişilə bilməyən tokenlər (NFT) +description: Ethereum-da NFT-lərə ümumi baxış +lang: az +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /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əsvir 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ə dəstəklənmişdir. +--- + +## What are NFTs? {#what-are-nfts} + +NFT-lər individual olaraq unikal olan tokenlərdir. Hər bir NFT fərqli xüsusiyyətlərə malikdir (dəyişilə bilməyən) və sübut edilə bilən səviyyədə, azdır. Bu, bir dəstdəki hər bir tokenin eyni olduğu və eyni xassələrə malik olduğu ERC-20 kimi tokenlərdən fərqlidir ("dəyişilə bilən"). Pulqabınızda hansı xüsusi dollar əskinasın olması sizin üçün əhəmiyyəti yoxdur, çünki onların hamısı eynidir və eyni dəyərdədir. Bununla belə, siz hansı NFT-yə sahib olduğunuza əhəmiyyət _verirsiniz_, çünki onların hamısı onları digərlərindən fərqləndirən fərdi xüsusiyyətlərə malikdir (“dəyişilə bilməyən”). + +Hər bir NFT-nin unikallığı incəsənət, kolleksiya əşyaları və ya hətta daşınmaz əmlak kimi əşyaların tokenləşdirilməsinə imkan verir, burada bir xüsusi unikal NFT hansısa xüsusi unikal real dünya və ya rəqəmsal əşyanı təmsil edir. 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. + + + +## 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. və bir mərkəzi təşkilat tərəfindən idarə olunmayan şəkildə. Məsələn, NFT-lər ilə siz bir şirkətin xüsusi musiqi tətbiqinə xas olmayan bir musiqi mp3-ə sahib ola bilərsiniz və ya sata və ya dəyişdirə biləcəyiniz, lakin bir platforma tərəfindən özbaşına olaraq sizdən alına bilməyən sosial media dəstəyinə sahib ola bilərsiniz. + +Bu gün çoxumuzun istifadə etdiyi internetlə müqayisədə NFT internetinin fərqləri bunlardır... + +### Müqayisə {#nft-comparison} + +| NFT interneti | Bugünkü internet | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Aktivlərinizin sahibisiniz! Onları yalnız siz sata və ya dəyişdirə bilərsiniz. | Siz hansısa təşkilatdan aktiv icarəyə götürürsünüz. | +| NFT-lər rəqəmsal olaraq unikaldır, heç bir iki NFT eyni deyil. | Bi müəssisənin surətini çox vaxt orijinaldan ayırmaq olmur. | +| NFT-yə sahiblik, hər kəsin doğrulaması üçün blokçeyndə saxlanılı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-da ağıllı müqavilələrdir. Bu o deməkdir ki, onlar Ethereum-dakı digər ağıllı müqavilələrdə və tətbiqlərdə asanlıqla istifadə edilə bilər! | Rəqəmsal əşyaları olan şirkətlər adətən öz “divarlı bağ” infrastrukturunu tələb edirlər. | +| 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. | +| NFT yaradıcıları öz işləri üzərində mülkiyyət hüquqlarını saxlaya bilərlər və qonorarları birbaşa NFT müqaviləsinə proqramlaşdıra bilərlər. | Musiqi axını xidmətləri kimi platformalar satışdan əldə edilən gəlirin böyük hissəsini özlərinə saxlayır. | + +## NFT-lər necə işləyir? {#how-nfts-work} + +Ethereum-da verilən hər hansı bir token kimi, NFT-lər də ağıllı müqavilə ilə verilir. Ağıllı müqavilə müqavilənin hansı funksiyalara malik olduğunu müəyyən edən bir neçə NFT standartından birinə (ümumiyyətlə ERC-721 və ya ERC-1155) uyğun gəlir. Müqavilə NFT-lər yarada ('zərb edə') və onları müəyyən bir sahibə təyin edə bilər. Mülkiyyət, müqavilədə xüsusi NFT-ləri xüsusi ünvanlara uyğunlaşdırmaqla müəyyən edilir. NFT-nin identifikatoru və adətən onunla əlaqəli metadatası var ki, bu da xüsusi tokeni unikal edir. + +Kimsə NFT yaratdıqda və ya zərb edəndə, həqiqətən də ağıllı müqavilədə ünvanına müəyyən bir NFT təyin edən bir funksiyanı yerinə yetirir. Bu məlumat blokçeynin bir hissəsi olan müqavilənin anbarında saxlanılır. Müqaviləni yaradan, müqaviləyə əlavə məntiq yaza bilər, məsələn, ümumi tədarükün məhdudlaşdırılması və ya token hər dəfə ötürüldükdə yaradıcıya ödəniləcək qonorarın müəyyən edilməsi. + +## NFT-lər nə üçün istifadə olunur? {#nft-use-cases} + +NFT-lər bir çox şeylər üçün istifadə olunur, o cümlədən: + +- bir tədbirdə iştirak etdiyinizi sübut etmək +- bir kursu bitirdiyinizi təsdiq etmək +- oyunlar üçün sahib oluna bilən əşyalar +- rəqəmsal sənət +- real aktivlərinin tokenləşdirilməsi +- onlayn şəxsiyyətinizi sübut etmək +- məzmuna giriş imkanı eldə etmək +- bilet almaq +- mərkəzləşdirilməmiş internet domen adları +- DeFi-də girov + +Bəlkə siz NFT-lərdən istifadə edərək, nəzarəti itirmədən və qazancınızı vasitəçilərə qurban vermədən işlərini paylaşmaq istəyən bir sənətkarsınız. Siz yeni müqavilə yarada və NFT-lərin sayını, onların xassələrini və bəzi xüsusi sənət əsərlərinə aid linki təyin edə bilərsiniz. Sənətçi olaraq, sizə ödənilməli olan qonorarları ağıllı müqavilədə proqramlaşdıra bilərsiniz (məsələn, hər dəfə NFT köçürüldükdə satış qiymətinin 5%-ni müqavilə sahibinə köçürün). Həmçinin müqaviləni yerləşdirən pulqabının sahibi olduğunuz üçün NFT-ləri yaratdığınızı həmişə sübut edə bilərsiniz. Alıcılarınız kolleksiyanızdan orijinal NFT-yə sahib olduqlarını asanlıqla sübut edə bilərlər, çünki onların pulqabının ünvanı ağıllı müqavilənizdəki token ilə əlaqələndirilir. Onlar orijinallığına arxayın olaraq onu Ethereum ekosistemində istifadə edə bilərlər. + +Və ya bir idman tədbirinə bileti düşünün. Bir 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çəsi zərb edilir, məsələn, təyin edilmiş oturacaqlı bilet. Bunları, bilet idarəçilərinə pul ödəmədən və alıcı həmişə müqavilə ünvanını yoxlayaraq biletin həqiqiliyinə əmin olaraq, almaq və satmaq olar. + +Ethereum.org saytında NFT-lər insanların GitHub repozitoriyamıza töhfə verdiyini və ya zənglərə cavab verdiyini nümayiş etdirmək üçün istifadə olunur və bizim hətta öz NFT domen adımız var. Ethereum.org-a töhfə versəniz, POAP NFT-ni tələb edə bilərsiniz. Bəzi kriptovalyuta görüşləri bilet kimi POAP-lardan istifadə etmişdir. [Töhfə haqqında daha çox məlumat](/contributing/#poap). + +![ethereum.org POAP](./poap.png) + +Bu veb-saytın NFT-lər tərəfindən dəstəklənən alternativ domen adı da 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ə tərəfimizdən idarə olunur. [ENS qeydimizi yoxlayın](https://app.ens.domains/name/ethereum.eth) + +[ENS haqqında daha çox məlumat](https://app.ens.domains) + + + +### 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 dizayn edilmişdir 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ə qeyri-qanuni müdaxiləni aşkar edə biləcək və pis aktyor iqtisadi cəhətdən cəzalandırılacaq və çı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 pulqabının uyğun səviyyədə təhlükəsizliyini NFT sahibləri üçün kritik edir. + + + Təhlükəsizlik haqqında daha çox məlumat + + +## Further reading {#further-reading} + +- [NFT-lər haqqında yeni başlayanlar üçün bələdçi](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, yanvar 2020_ +- [EtherscanNFT izləyicisi](https://etherscan.io/nft-top-contracts) +- [ERC-721 token standartı](/developers/docs/standards/tokens/erc-721/) +- [ERC-1155 token standartı](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/src/content/translations/bg/eips/index.md b/public/content/translations/bg/eips/index.md similarity index 100% rename from src/content/translations/bg/eips/index.md rename to public/content/translations/bg/eips/index.md diff --git a/public/content/translations/bg/roadmap/beacon-chain/index.md b/public/content/translations/bg/roadmap/beacon-chain/index.md new file mode 100644 index 00000000000..e1f2ea8eef5 --- /dev/null +++ b/public/content/translations/bg/roadmap/beacon-chain/index.md @@ -0,0 +1,76 @@ +--- +title: Бийкън чейн +description: Научете какво е Бийкън чейн – надстройката, която въведе доказателство-за-залог в Eтереум. +lang: bg +template: upgrade +image: /upgrades/core.png +alt: +summaryPoint1: Бийкън чейн въведе доказателство-за-залог в екосистемата на Eтереум. +summaryPoint2: През септември 2022 г. беше извършено сливане с първоначалното доказателство-за-работа на Eтереум. +summaryPoint3: Бийкън чейн въведе логиката на консенсуса и блок протокола тип „разпространение на клюки“, който осигурява Eтереум в момента. +--- + + + Бийкън чейн беше пуснат на 1 декември 2020 г. и превърна доказателство-за-залог в официалния механизъм за консенсус на Eтереум със Сливането на 15 септември 2022 г. + + +## Какво представляваше Бийкън чейн? {#what-is-the-beacon-chain} + +Бийкън чейн беше името на оригиналната блокова верига за доказателство-за-залог, която беше пусната през 2020 г. Беше създадена, за да се провери дали консенсусната логика за доказателство-за-залог е надеждна и устойчива, преди да бъде въведена в основната мрежа на Eтереум. Поради тази причина работеше паралелно с оригиналния Eтереум, базиран на доказателство-за-работа. За изключването на доказателство-за-работа и включването на доказателство-за-залог беше необходимо да се подадат инструкции към Бийкън чейн да приема трансакции от оригиналната верига на Eтереум, да ги групира в блокове и след това да ги организира в блокова верига, използвайки консенсусен механизъм, базиран на доказателство-за-залог. В същото време клиентите на оригиналния Eтереум прекратиха добиването, разпространението на блокове и консенсусната логика и предадоха всичко това на Бийкън чейн. Това събитие беше познато като [Сливането](/roadmap/merge/). След като Сливането беше извършено, вече нямаше две вериги – остана само една базирана на доказателство-за-залог верига Eтереум. + +## За какво служеше Бийкън чейн? {#what-does-the-beacon-chain-do} + +Бийкън чейн беше името, дадено на счетоводната книга с акаунти, с която се ръководеше и координираше мрежата от [залагащи](/staking/) в Eтереум, преди тези залагащи да започнат да валидират реални трансакции в Eтереум. Не обработваше трансакции и взаимодействия с интелигентни договори. + +Тя въведе консенсусния механизъм (или „консенсусен слой“), който замени добиването базирано на доказателство-за-работа в Eтереум и допринесе за множество съществени подобрения. + +Бийкън чейн беше основополагащ компонент за [сигурния, екологичен и мащабируем Eтереум, който имаме сега](/roadmap/vision/). + +## Въздействието на Бийкън чейн {#beacon-chain-features} + +### Какво представляват залаганията {#introducing-staking} + +Бийкън чейн въведе [доказателство-за-залог](/developers/docs/consensus-mechanisms/pos/) в Eтереум. Това поддържа сигурността на Eтереум, а валидаторите печелят повече ETH в процеса. На практика залагането е свързано със залагане на ETH с цел активиране на валидаторския софтуер. Като залагащ вие управлявате софтуер, който създава и валидира нови блокове във веригата. + +Целта на залагането е подобна на тази, която имаше [добиването](/developers/docs/mining/), но се различава по много начини. Добиването изискваше да се правят големи инвестиции предварително под формата на мощен хардуер и консумация на енергия, което доведе до икономии по отношение на мащабируемостта и насърчаваше централизацията. Освен това, при добивът нямаше изисквания за заключване на активи като обезпечение, което ограничава способността на протокола да наказва некоректните участници след атака. + +След прехода към доказателство-за-залог Eтереум стана значително по-сигурен и децентрализиран в сравнение с механизма за доказателство-за-работа. Колкото повече хора участват в мрежата, толкова по-децентрализирана и защитена от атаки става тя. + + + Ако се интересувате от това да станете валидатор и да помогнете за защитата на Eтереум, научете повече за залагането. + + +### Настройки за фрагментиране {#setting-up-for-sharding} + +Откакто Бийкън чейн се сля с оригиналната основна мрежа на Eтереум, обществото на Eтереум започна да се ориентира към мащабируемостта на мрежата. + +При доказателство-за-залог има предимството да има регистър на всички одобрени създатели на блокове във всеки един момент, всеки със заложен ETH. Този регистър създава възможността да се разделя и владее, но също и надеждно да се разпределят специфични отговорности в мрежата. + +Тази отговорност е в контраст с механизма за доказателство-за-работа, при който миньорите нямат никакви задължения към мрежата и можеха да престанат да добиват и да изключат възела си незабавно без никакви последствия. Освен това, нямаше регистър на известните предлагащи блокове нито пък надежден начин за безопасно поделяне на отговорностите в мрежата. + +[Повече за фрагментирането](/roadmap/danksharding/) + +## Връзка между надстройките {#relationship-between-upgrades} + +Всички надстройки на Eтереум са свързани по определен начин. Така че нека обобщим как Бийкън чейн влияе върху другите надстройки. + +### Бийкън чейн и Сливането {#merge-and-beacon-chain} + +Първоначално Бийкън чейн съществуваше отделно от основната мрежа на Eтереум, но през 2022 г. те се сляха. + + + Сливането + + +### Компонентите и Бийкън чейн {#shards-and-beacon-chain} + +Фрагментирането може да навлезе безопасно в екосистемата на Eтереум само при наличието на консенсусен механизъм за доказателство-за-залог. Бийкън чейн въведе залагането, което се „сля“ с основната мрежа, проправяйки път за навлизането на фрагментирането, което помага за по-нататъшната мащабируемост на Eтереум. + + + Вериги от компоненти + + +## Допълнителна информация + +- [Повече информация за бъдещите надстройки на Eтереум](/roadmap/vision) +- [Повече информация за доказателство-за-залог](/developers/docs/consensus-mechanisms/pos) diff --git a/public/content/translations/bg/roadmap/merge/index.md b/public/content/translations/bg/roadmap/merge/index.md new file mode 100644 index 00000000000..26527a7c145 --- /dev/null +++ b/public/content/translations/bg/roadmap/merge/index.md @@ -0,0 +1,225 @@ +--- +title: Сливането +description: Научете за Сливането – когато основната мрежа на Етереум възприе механизма за доказателство-за-залог. +lang: bg +template: upgrade +image: /upgrades/merge.png +alt: +summaryPoint1: Основната мрежа на Етереум използва доказателство-за-залог, но това не винаги е било така. +summaryPoint2: Надстройката към доказателство-за-залог от оригиналния механизъм за доказателство-за-работа се нарича Сливането. +summaryPoint3: Терминът „Сливането“ се отнася до сливането на основната мрежа на Етереум със отделна блокова верига, базирана на доказателство-за-залог, наречена Бийкън чейн, които сега съществуват като една мрежа. +summaryPoint4: Сливането намали потреблението на енергия на Етереум с приблизително 99,95%. +--- + + + Сливането се осъществи на 15 септември 2022 г. Така завърши преходът на Етереум към консенсус с доказателство-за-залог, отхвърляйки официално механизма доказателство-за-работа и намалявайки разхода на енергия с приблизително 99,95%. + + +## Какво представляваше Сливането? {#what-is-the-merge} + +Сливането беше обединяването на оригиналния слой на изпълнение на Етереум (основната мрежа, която съществува от [създаването](/history/#frontier)) с новия консенсусен слой, базиран на доказателство-за-залог, Бийкън чейн. Това елиминира нуждата от енергоемко добиване (копаене), като вместо това сигурността на мрежата се осигурява със заложен ETH. Това беше една наистина вълнуваща стъпка от реализирането на визията на Етереум – по-голям мащаб, повече сигурност и устойчивост. + + + +Първоначално [Бийкън чейн](/roadmap/beacon-chain/) беше пусната отделно от [Основната мрежа](/glossary/#mainnet). Основната мрежа на Етереум с всичките ѝ акаунти, баланси, интелигентни договори и състояние на блоковата верига продължаваше да се осигурява от [доказателство-за-работа](/developers/docs/consensus-mechanisms/pow/), дори когато Бийкън чейн работеше паралелно, използвайки [доказателство-за-залог](/developers/docs/consensus-mechanisms/pos/). Сливането беше моментът, когато двете мрежи се обединиха, а механизмът за доказателство-за-работа беше за постоянно заменен с доказателство-за-залог. + +Представете си, че Етереум е космически кораб, който е изпратен в космоса, преди да е напълно готов за междузвездно пътуване. С Бийкън чейн общността създаде нов двигател и по-здрав корпус. След съществени тествания дойде време старият двигател да бъде заменен с новия по време на полет. Така бяха слети вече съществуващият кораб с новия, по-ефикасен двигател, за да бъдат добавени още доста светлинни години и да покори вселената. + +## Сливане с Основната мрежа {#merging-with-mainnet} + +Основната мрежа на Етереум беше осигурявана с доказателство-за-работа от създаването ѝ до Сливането. Това позволи блоковата верига на Етереум, с която всички сме свикнали, да се появи през юли 2015 г. с всичките ѝ познати функции – трансакции, интелигентни договори, сметки и т.н. + +През целия период на съществуване на Етереум разработчиците се подготвяха за евентуален преход от доказателство-за-работа към доказателство-за-залог. На 1 декември 2020 г. беше създадена Бийкън чейн, като отделна паралелна блокова верига. + +Първоначално Бийкън чейн не обработваше трансакции на Основната мрежа. Вместо това, постигаше консенсус за собственото си състояние, споразумявайки се за активни валидатори и балансите по техните сметки. След продължителни изпитания дойде времето Бийкън чейн да започне да постига консенсус с реални данни. След Сливането Бийкън чейн се превърна в консенсусния механизъм за всички данни в мрежата, включително трансакции на слоя на изпълнение и баланси по сметки. + +Сливането представлява официалното преминаване към използването на Бийкън чейн като механизма за изграждане на блокове. Добиването вече не е начинът за изграждане на валидни блокове. Вместо това тази роля е възприета от валидаторите на доказателство-за-залог и сега те отговарят за обработката на валидността на всички трансакции и предлагането на блокове. + +При сливането не бяха загубени никакви данни. При сливането на Основната мрежа с Бийкън чейн цялата хронология на трансакциите в Етереум също беше слята. + + +Този преход към доказателство-за-залог промени начина, по който се издава етер. Научете повече за издаването на етер преди и след сливането. + + +### Потребители и собственици {#users-holders} + +**Сливането не промени нищо за собствениците или потребителите.** + +_Това подлежи на повтаряне_: Като потребител или собственик на ETH или друг дигитален актив в Етереум, както и залагащи, който не управляват възел, **не е необходимо да правите каквото и да е с вашите средства или портфейл в реакция на Сливането.** ETH е просто ETH. Няма такова нещо като „стар ETH“/„нов ETH“ или „ETH1“/„ETH2“ и след Сливането портфейлите функционират по абсолютно същия начин като преди него – хора, които ви казват нещо различно, по всяка вероятност са измамници. + +Въпреки заменянето на доказателство-за-работа цялата хронология на Етереум от създаването насетне остава незасегната и непроменена от прехода към доказателство-за-залог. Всички средства в портфейла ви отпреди Сливането остават достъпни и след Сливането. **От ваша страна не се изисква никакво действие за надграждане.** + +[Повече за сигурността на Етереум](/security/#eth2-token-scam) + +### Оператори на възли и разработчици на DApp {#node-operators-dapp-developers} + + + +Ключовите дейности включват: + +1. Управляване на*двата вида* консенсусен клиент и клиент за изпълнение; след Сливането вече не могат да се използват източници трети страни за добиване на данни за изпълнение. +2. Удостоверяване на клиента на изпълнение и на консенсусния клиент със споделен JWT секрет, за да могат да комуникират по сигурен начин. +3. Задаване на адрес на „получател на такса“, за да получавате спечелените от вас суми от такси за трансакции/MEV (Стойност при добиването). + +Ако не завършите първите две точки в списъка, вашият възел ще се вижда като „офлайн“ докато не бъдат синхронизирани и удостоверени и двата слоя. + +Ако не зададете „получател на такса“ вашият валидатор ще работи нормално, но ще изпуснете възможността да се възползвате от неизразходваната част от таксите и MEV, които иначе бихте печелили от блоковете, които се обработват от вашия валидатор. + + + + +До сливането беше достатъчен клиент за изпълнение (като Geth, Erigon, Besu или Nethermind), за да се получават, валидират правилно и внедряват блокове, разпространявани от мрежата. _След Сливането_ валидността на транзакциите, съдържащи се в полезните данни на изпълнение, сега също зависи и от валидността на „консенсусния блок“, в който се съдържат. + +В резултат на това за един пълен възел в Етереум вече се изискват и клиент за изпълнение, и консенсусен клиент. Двата клиента работят заедно, използвайки нова система API. Системата API изисква удостоверяване с JWT секрет, който се предоставя и на двата клиента, позволявайки сигурна комуникация. + +Ключовите дейности включват: + +- Инсталиране на консенсусен клиент в допълнение към клиента на изпълнение +- Удостоверяване на клиента за изпълнение и на консенсусния клиент с помощта на JWT секрет, за да могат да комуникират помежду си по сигурен начин. + +Ако не завършите горните стъпки, вашият възел ще се вижда като „офлайн“ докато не бъдат синхронизирани и удостоверени и двата слоя. + + + + + +Сливането доведе промяна към консенсус, което включва и промени, свързани с: + +- структурата на блоковете +- времето на слот/блок +- промени в операционния код +- източниците на произволен принцип във веригата +- концепцията за _safe head_ и _finalized blocks_ + +За повече информация вижте тази публикация в блога на Тим Бейко относно [Как се отразява Сливането на слоя на приложение на Етереум](https://blog.ethereum.org/2021/11/29/how-the-merge-impacts-app-layer/). + + +## Сливането и потреблението на енергия {#merge-and-energy} + +Сливането постави край на доказателство-за-работа в Етереум и началото на една ера на по-устойчив и природосъобразен Етереум. Потреблението на енергия на Етереум спадна с приблизително 99,95%, което прави Етереум екологична блокова верига. Научете повече за [Енергийното потребление на Етереум](/energy-consumption/). + +## Сливането и мащабируемостта {#merge-and-scaling} + +Сливането също постави основата за по-нататъшни надстройки на мащабируемостта, които не са възможни при доказателство-за-работа, приближавайки Етереум една стъпка по-близо до постигането на пълните мащаб, сигурност и устойчивост, описани във [Визията на Етереум](/roadmap/vision/). + +## Заблуди относно Сливането {#misconceptions} + + +Има два вида възли на Етереум: възли, които могат да предлагат блокове, и които не го правят. + +Възлите, които предлагат блокове, са само малък брой от всички възли в Етереум. Тази категория включва възли за добиване при доказателство-за-работа (PoW) и валидаторски възли при доказателство-за-залог (PoS). Тази категория изисква ангажиране с икономически ресурси (GPU хеш мощност при доказателство-за-работа или заложени ETH при доказателство-за-залог) в замяна на възможността периодично да предлагате следващия блок и да печелите награди за протоколи. + +Останалите възли в мрежата (т.е. повечето) не изискват ангажирането с икономически ресурси освен компютър от потребителски клас с 1 – 2 TB налично място за съхранение и връзка с интернет. Тези възли не предлагат блокове, но все пак изпълняват критична роля в осигуряването на мрежата, като държат отговорни всички предлагащи блокове, като следят за нови блокове и проверяват тяхната валидност при пристигането им съгласно правилата за консенсус в мрежата. Ако блокът е валиден, възелът продължава да го разпространява в мрежата. Ако блокът е невалиден по някаква причина, софтуерът на възела ще го пренебрегне като невалиден и ще спре разпространението му. + +Управлението на възел, който не произвежда блокове, е възможно за всеки при който и да е от двата консенсусни механизма (доказателство-за-работа или доказателство-за-залог); _силно се препоръчва_ за всички потребители, ако разполагат със средствата за това. Управлението на възел е изключително ценно за Етереум и дава допълнителни предимства на всеки индивид, който управлява, като подобрена сигурност, поверителност и устойчивост на цензура. + +Възможността всеки да управлява свой собствен възел е _абсолютно необходима_ за поддържане на децентрализацията на мрежата на Етереум. + +[Повече информация за управлението на собствен възел](/run-a-node/) + + + + +Таксите за газ са продукт от търсенето на мрежата спрямо капацитета на мрежата. Сливането отхвърли използването на доказателство-за-работа, преминавайки към доказателство-за-залог за консенсус, но параметри, които пряко влияят върху капацитета или пропускателната способност на мрежата, не се промениха особено. + +С [ориентираната около ролъп карта](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698) усилията се насочват към мащабиране на потребителската активност в [слой 2](/layer-2/), докато се позволява на слой 1 Основната мрежа, като сигурен децентрализиран слой за споразумения, оптимизиран за съхранение на ролъп данни, да помогне за това ролъп трансакциите да станат осезаемо по-евтини. Преминаването към доказателство-за-залог е важна предварителна стъпка за реализирането на това. [Повече информация за газ и такси.](/developers/docs/gas/) + + + +„Скоростта“ на трансакциите може да се измерва по няколко начина, включително по времето за включване в блока и времето за финализиране. И двете се променят малко, но не и по начин, който ще е забележим за потребителите. + +В исторически план при доказателство-за-работа целта беше да има нов блок приблизително на всеки 13,3 секунди. При доказателство-за-залог слотовете се появяват на точно 12 секунди, като всеки един дава възможност валидатор да публикува блок. В повечето слотове има блок, но не задължително във всички (т.е. някой валидатор е офлайн). При доказателство-за-залог блоковете се произвеждат приблизително с 10% по-често в сравнение с при доказателство-за-работа. Това е сравнително незначителна промяна и е малко вероятно да бъде забелязана от потребителите. + +С доказателство-за-залог беше въведена концепцията за финализиране на трансакцията, която преди това не съществуваше. При доказателство-за-работа възможността за връщане на блок става значително по-трудна с всеки следващ блок, добит върху трансакция, но никога не изчезва напълно. При доказателство-за-залог блоковете са групирани в епохи (6,4-минутни интервали от време, съдържащи 32 шанса за блокове), за които валидаторите гласуват. Когато една епоха завърши, валидаторите гласуват за това дали да я зачетат за „оправдана“. Ако валидаторите се съгласят да оправдаят епохата, тя се финализира в следващата епоха. Отмяната на финализирани транзакции е икономически нерентабилна, тъй като би изисквала придобиване и изгаряне на над една трета от общо заложения ETH. + + + + +Заложения ETH и наградите от залагане остават заключени без възможност да бъдат теглени. Тегленията са планирани в предстоящата надстройка Shanghai. + + + +Това може да изглежда, че противоречи на бележката по-горе, че тегленията няма да бъдат активирани преди надстройката Shanghai, но валидаторите ПОЛУЧАВАТ незабавен достъп до наградите от такси/MEV, спечелени от предлагане на блокове. + +Протоколът издава ETH като награда за валидаторите за приноса им за консенсуса. Консенсусният слой отчита новоиздадения ETH, като валидаторът има уникален адрес, на който се съхраняват неговите ETH и награди от протокола. Този ETH е заключен до Shanghai. + +ETH на слоя за изпълнение се отчита отделно от консенсусния слой. Когато потребителите изпълняват трансакции в Основната мрежа на Етереум, трябва да се плаща ETH за покриване на такси за газ, включително възнаграждение за валидатора. Този ETH вече е на слоя за изпълнение, НЕ се издава сега от протокола и е достъпен за валидатора незабавно (при условие, че е предоставен правилният адрес на „получател на такса“ в софтуера на клиента). + + + +След като надстройката Shanghai активира тегленията, всички валидатори ще бъдат стимулирани да изтеглят своя баланс над 32 ETH, тъй като тези средства не допринасят към доходността и са иначе заключени. В зависимост от годишния лихвен процент (определен от общия заложен ETH) те може да бъдат стимулирани да излязат от своя валидатор(и), за да възстановят целия си баланс, или потенциално да заложат още повече, като използват своите награди, за да спечелят повече доходи. + +Важна уговорка тук е, че пълното излизане на валидатори е ограничено от протокола, така че само шест валидатора могат да излязат за една епоха (всеки 6,4 минути, т.е. 1350 на ден или приблизително само 43 200 ETH на ден от заложени над 10 милиона ETH). Този лимит се коригира в зависимост от общия заложен ETH и предотвратява масово извеждане на средства. Освен това, той не позволява на потенциален атакуващ да използва своя залог, за да извърши подлежащо на санкциониране нарушение и да изтегли целия си заложен баланс в рамките на една епоха, преди протоколът да е успял да наложи санкцията. + +ГЛП умишлено е динамичен и позволява залагащите на пазара да балансират колко са склонни да печелят за това, че подпомагат осигуряването на мрежата. Когато тегленията бъдат активирани, ако процентът е твърде нисък, валидаторите ще напуснат на етапи, ограничени от протокола. Постепенно това ще повиши ГЛП за всички останали, привличайки нови или завръщащи се залагащи. + + +## Какво се случи с „Eth2“? {#eth2} + +Терминът „Eth2“ беше отхвърлен. След сливането на „Eth1“ и „Eth2“ в една единствена верига вече няма нужда да се прави разграничение между две мрежи на Етереум. Вече има само Етереум. + +За да се намали объркването, общността актуализира следните термини: + +- Eth1 вече е „слоят на изпълнение“, отговорен за трансакциите и изпълнението. +- Eth2 вече е „консенсусният слой“, отговорен за механизма за консенсус с доказателство-за-залог. + +Тези актуализации на терминологията променят само правилата за наименуване. Това не променя целите или пътната карта на Eтереум. + +[Научете повече за преименуването на Eth2](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) + +## Връзка между надстройките {#relationship-between-upgrades} + +Всички надстройки на Етереум са свързани по определен начин. Така че нека обобщим как Сливането се отнася към другите надстройки. + +### Сливането и Бийкън чейн {#merge-and-beacon-chain} + +Сливането представлява официалното приемане на Бийкън чейн като новия консенсусен слой от оригиналния слой за изпълнение на Основната мрежа. От сливането насам на валидаторите е възложено да осигуряват Основната мрежа на Етереум, а добиването по механизма [доказателство-за-работа](/developers/docs/consensus-mechanisms/pow/) вече не е валиден метод за производство на блокове. + +Вместо това блоковете се предлагат от валидиращите възли, които са заложили ETH в замяна на правото да участват в консенсуса. Тези надстройки поставят основите за бъдещи надстройки на мащабируемостта, включително фрагментиране. + + + Бийкън чейн + + +### Сливането и надстройката Shanghai {#merge-and-shanghai} + +С цел опростяване и максимален фокус върху прехода към доказателство-за-залог надстройката „Сливането“ не включваше някой чакани функции, като възможността да се тегли заложен ETH. Надстройката Shanghai, която ще даде на залагащите възможността да изтеглят средствата си, е планирана да последва Сливането. + +Бъдете информирани навреме с [Проблеми с планирането на надстройката Shanghai в GitHub](https://github.com/ethereum/pm/issues/450) или [Блогът за проучване и развитие на Фондация Етереум](https://blog.ethereum.org/category/research-and-development/). Ако проявявате любопитство към темата, научете повече за това [Какво се случва след сливането](https://youtu.be/7ggwLccuN5s?t=101), представено от Виталик на голямото събитие ETHGlobal през април 2021 г. + +### Сливането и фрагментирането {#merge-and-data-sharding} + +Първоначално планът е бил да се работи върху фрагментирането преди сливането с цел решаване на въпроса с мащабируемостта. Но с бума на [решенията за мащабиране на ниво 2](/layer-2/) приоритетът се прехвърля върху заместването на доказателство-за-работа с доказателство-за-залог чрез сливането. + +Плановете за фрагментиране се развиват бързо, но имайки предвид появата и успехът на технологиите на слой 2 за увеличаване на мащаба на изпълнение на трансакции, плановете за фрагментиране се изместиха към намирането на оптималния начин на разпределяне на товара от съхранението на компресирани колдейта от ролъп договори, позволявайки значителен растеж на капацитета на мрежата. Това не би било възможно без първо да се извърши преход към доказателство-за-залог. + + + Фрагментиране + + +## Допълнителна информация {#further-reading} + + + + diff --git a/public/content/translations/bn/dao/index.md b/public/content/translations/bn/dao/index.md new file mode 100644 index 00000000000..b7818347f03 --- /dev/null +++ b/public/content/translations/bn/dao/index.md @@ -0,0 +1,165 @@ +--- +title: বিকেন্দ্রীভূত স্বায়ত্তশাসিত সংস্থা সমূহ (DAO) +description: ইথেরিয়াম উপর DAO একটি সংক্ষিপ্ত বিবরণী +lang: bn +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: একটি DAO-এর একটি রিপ্রেজেন্টেশন একটি প্রস্তাবে ভোট দিচ্ছে। +summaryPoint1: কেন্দ্রীভূত নেতৃত্ব ছাড়া সদস্য-মালিকানাধীন কমিউনিটি। +summaryPoint2: ইন্টারনেট অপরিচিতদের সাথে সহযোগিতা করার একটি নিরাপদ উপায়। +summaryPoint3: একটি নির্দিষ্ট কারণে ফান্ড সমর্পণ করার একটি নিরাপদ জায়গা। +--- + +## DAO কী? {#what-are-daos} + +একটি DAO হল একটি যৌথ মালিকানাধীন, ব্লকচেইন-শাসিত সংস্থা একটি শেয়ার করা মিশনের দিকে কাজ করে। + +DAO আমাদের ফান্ড বা ক্রিয়াকলাপ পরিচালনা করার জন্য একজন পরোপকারী নেতাকে বিশ্বাস না করেই বিশ্বজুড়ে সমমনা লোকদের সাথে কাজ করার অনুমতি দেয়। এমন কোন CEO নেই যিনি খেয়ালখুশি মতো ফান্ড ব্যয় করতে পারেন বা CFO নেই যিনি বইগুলি ম্যানিপুলেট করতে পারেন। পরিবর্তে, কোডে বেক করা ব্লকচেইন-ভিত্তিক নিয়মগুলি সংজ্ঞায়িত করে যে সংস্থা কীভাবে কাজ করে এবং কীভাবে ফান্ড ব্যয় করা হয়। + +তাদের অন্তর্নির্মিত কোষাগার রয়েছে যা গ্রূপের অনুমোদন ছাড়া অ্যাক্সেস করার ক্ষমতা কারও নেই। প্রতিষ্ঠানের প্রত্যেকের একটি মত আছে তা নিশ্চিত করার জন্য প্রস্তাব এবং ভোট দিয়ে সিদ্ধান্তগুলি নিয়ন্ত্রিত হয় এবং সবকিছু চেইনে স্বচ্ছভাবে ঘটে। + +## কেন আমাদের DAO প্রয়োজন? {#why-dao} + +তহবিল এবং অর্থ জড়িত এমন কারো সাথে একটি সংস্থা শুরু করার জন্য আপনি যাদের সাথে কাজ করছেন তাদের প্রতি অনেক বিশ্বাসের প্রয়োজন। কিন্তু এমন কাউকে বিশ্বাস করা কঠিন যার সাথে আপনি ইন্টারনেটে যোগাযোগ করেছেন। DAO-এর মাধ্যমে আপনাকে গ্রুপের অন্য কাউকে বিশ্বাস করতে হবে না, শুধুমাত্র DAO-এর কোড, যা 100% স্বচ্ছ এবং যে কারো দ্বারা যাচাইযোগ্য। + +এটি বিশ্বব্যাপী সহযোগিতা এবং সমন্বয়ের জন্য অনেক নতুন সুযোগ উন্মুক্ত করে। + +### একটি তুলনা {#dao-comparison} + +| DAO | একটি গতানুগতিক সংগঠন | +| ----------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | +| সাধারণত সমতল, এবং সম্পূর্ণরূপে গণতান্ত্রিক। | সাধারণত অনুক্রমিক। | +| কোনো পরিবর্তন বাস্তবায়নের জন্য সদস্যদের ভোট প্রয়োজন। | কাঠামোর উপর নির্ভর করে, একমাত্র দল থেকে পরিবর্তনের দাবি করা যেতে পারে, বা ভোট দেওয়ার প্রস্তাব দেওয়া যেতে পারে। | +| ভোট গণনা করা হয়, এবং ফলাফল বিশ্বস্ত মধ্যস্থতাকারী ছাড়াই স্বয়ংক্রিয়ভাবে প্রয়োগ করা হয়। | যদি ভোট দেওয়ার অনুমতি দেওয়া হয়, ভোটগুলি অভ্যন্তরীণভাবে গণনা করা হয় এবং ভোটের ফলাফল ম্যানুয়ালি পরিচালনা করতে হবে। | +| প্রদত্ত পরিষেবাগুলি একটি বিকেন্দ্রীভূত পদ্ধতিতে স্বয়ংক্রিয়ভাবে পরিচালনা করা হয় (উদাহরণস্বরূপ জনহিতকর ফান্ডের বিতরণ)। | মানুষের পরিচালনা প্রয়োজন বা কেন্দ্রীয়ভাবে নিয়ন্ত্রিত অটোমেশন, উভয়ই ম্যানিপুলেশন প্রবণ। | +| সমস্ত কার্যকলাপ স্বচ্ছ এবং সম্পূর্ণ জনসাধারণের। | কার্যকলাপ সাধারণত ব্যক্তিগত এবং জনসাধারণের মধ্যে সীমাবদ্ধ। | + +### DAO উদাহরণসমূহ {#dao-examples} + +এটিকে আরও বোধগম্য করতে সাহায্য করার জন্য, আপনি কীভাবে একটি DAO ব্যবহার করতে পারেন তার কয়েকটি উদাহরণ এখানে দেওয়া হল: + +- একটি দাতব্য সংস্থা – আপনি বিশ্বের যেকোনও ব্যক্তির কাছ থেকে অনুদান গ্রহণ করতে পারেন এবং ফান্ড দেওয়ার জন্য ভোট দিতে পারেন। +- সম্মিলিত মালিকানা – আপনি ফিজিক্যাল ​​বা ডিজিটাল সম্পদ ক্রয় করতে পারেন এবং সদস্যরা সেগুলি কীভাবে ব্যবহার করবে সে সম্পর্কে ভোট দিতে পারেন। +- উদ্যোগ এবং অনুদান – আপনি একটি ভেঞ্চার ফান্ড তৈরি করতে পারেন যা বিনিয়োগের মূলধন সংগ্রহ করে এবং উদ্যোগে সমর্থনের জন্য ভোট দেয়। পরিশোধিত অর্থ পরে DAO-সদস্যদের মধ্যে পুনরায় বিতরণ করা হয়। + +## DAO কিভাবে কাজ করে? {#how-daos-work} + +একটি DAO-এর মেরুদণ্ড হল এর স্মার্ট কন্ট্র্যাক্ট, যা সংস্থার নিয়মগুলিকে সংজ্ঞায়িত করে এবং গ্রুপের কোষাগারকে ধরে রাখে। কনট্র্যাক্টটি ইথেরিয়াম-এ লাইভ হয়ে গেলে, ভোট ছাড়া কেউ নিয়ম পরিবর্তন করতে পারবে না। যদি কেউ এমন কিছু করার চেষ্টা করে যা কোডের নিয়ম এবং যুক্তি অনুযায়ী পরিচালিত হবে না, তবে এটি ব্যর্থ হবে। আর যেহেতু কোষাগারটি স্মার্ট কন্ট্র্যাক্ট দ্বারা সংজ্ঞায়িত করা হয়েছে তার মানে গ্রুপের অনুমোদন ছাড়া কেউ টাকা ব্যয় করতে পারে না। এর মানে হল যে DAO গুলোর কেন্দ্রীয় কর্তৃপক্ষের প্রয়োজন নেই। পরিবর্তে, গ্রুপটি সম্মিলিতভাবে সিদ্ধান্ত নেয় এবং ভোট পাস হলে পেমেন্ট স্বয়ংক্রিয়ভাবে অনুমোদিত হয়। + +এটি সম্ভব কারণ স্মার্ট কন্ট্র্যাক্ট ইথেরিয়ামে লাইভ হয়ে গেলে তা টেম্পার-প্রুফ। লোকেদের নোটিস না দিয়ে আপনি আপনি কোডটি (DAO নিয়মসমূহ) সম্পাদনা করতে পারবেন না, কারণ সবকিছুই সর্বজনীন। + + + স্মার্ট কন্ট্র্যাক্ট সম্পর্কে আরো + + +## ইথেরিয়াম এবং DAO {#ethereum-and-daos} + +ইথেরিয়াম বিভিন্ন কারণে DAO-এর জন্য নিখুঁত ভিত্তি: + +- ইথেরিয়ামের নিজস্ব কনসেনসাস বিতরণ করা হয় এবং সংস্থাগুলি নেটওয়ার্কের উপর আস্থা রাখার জন্য যথেষ্ট প্রতিষ্ঠিত হয়। +- স্মার্ট কন্ট্র্যাক্ট কোড একবার লাইভ হলে তা পরিবর্তন করতে পারবে না, এমনকি এর মালিকরাও। এটি DAO কে এটির সাথে প্রোগ্রাম করা নিয়ম অনুসারে চালানোর অনুমতি দেয়। +- স্মার্ট কন্ট্র্যাক্ট ফান্ড পাঠাতে/নিতে পারে। এটি ছাড়া গ্রুপ ফান্ড পরিচালনার জন্য আপনার একজন বিশ্বস্ত মধ্যস্থতাকারীর প্রয়োজন হবে। +- ইথেরিয়াম কমিউনিটি প্রতিযোগিতামূলক হওয়ার তুলনায় আরো সহযোগী হয়ে প্রমাণিত হয়েছে, সর্বোত্তম অনুশীলন এবং সাপোর্ট সিস্টেম দ্রুত আবির্ভূত হতে অনুমতি দেয়। + +## DAO পরিচালনা {#dao-governance} + +একটি DAO পরিচালনা করার সময় অনেকগুলি বিবেচ্য বিষয় রয়েছে, যেমন ভোট এবং প্রস্তাবগুলি কীভাবে কাজ করে। + +### ডেলিগেশন {#governance-delegation} + +ডেলিগেশন হলো প্রতিনিধিত্বমূলক গণতন্ত্রের DAO সংস্করণের মতো। টোকেন হোল্ডাররা সেই ব্যবহারকারীদের ভোট অর্পণ করে যারা নিজেদের মনোনীত করে এবং প্রোটোকল পরিচালনা এবং অবগত থাকার প্রতিশ্রুতি দেয়। + +#### একটি বিখ্যাত উদাহরণ {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) – ENS হোল্ডাররা তাদের প্রতিনিধিত্ব করার জন্য নিযুক্ত সম্প্রদায়ের সদস্যদের কাছে তাদের ভোট অর্পণ করতে পারেন। + +### স্বয়ংক্রিয় লেনদেন পরিচালনা {#governance-example} + +অনেক DAO এ, লেনদেন স্বয়ংক্রিয়ভাবে সম্পাদিত হবে যদি সদস্যদের একটি কোরাম ইতিবাচক ভোট দেয়। + +#### একটি বিখ্যাত উদাহরণ {#governance-example} + +[বিশেষ্য](https://nouns.wtf) –বিশেষ্য DAO-তে, একটি লেনদেন স্বয়ংক্রিয়ভাবে কার্যকর হয় যদি ভোটের কোরাম পূরণ হয় এবং সংখ্যাগরিষ্ঠ ভোট ইতিবাচক হয়, যতক্ষণ না এটি প্রতিষ্ঠাতাদের দ্বারা ভেটো না করা হয়। + +### মাল্টিসিগ পরিচালনা {#governance-example} + +যদিও DAO-এর হাজার হাজার ভোটিং সদস্য থাকতে পারে, তহবিল 5-20 জন সক্রিয় কমিউনিটির সদস্যদের দ্বারা ভাগ করা একটি ওয়ালেটে থাকতে পারে যারা বিশ্বস্ত এবং সাধারণত ডক্সড (জনসাধারণের পরিচয় কমিউনিটির কাছে পরিচিত)। একটি ভোটের পরে, মাল্টিসিগ স্বাক্ষরকারীরা কমিউনিটির ইচ্ছা বাস্তবায়ন করে। + +## DAO আইনসমূহ {#dao-laws} + +1977 সালে, ওয়াইমিং LLC উদ্ভাবন করে, যা উদ্যোক্তাদের রক্ষা করে এবং তাদের দায়বদ্ধতা সীমিত করে। অতি সম্প্রতি, তারা DAO আইনের অগ্রগতি করেছে যা DAO-এর জন্য আইনি মর্যাদা প্রতিষ্ঠা করে। বর্তমানে ওয়াইমিং, ভার্মন্ট এবং ভার্জিন দ্বীপপুঞ্জে কিছু আকারে DAO আইন রয়েছে। + +### একটি বিখ্যাত উদাহরণ {#law-example} + +[CityDAO](https://citydao.io) – CityDAO ইয়েলোস্টোন ন্যাশনাল পার্কের কাছে 40 একর জমি কেনার জন্য ওয়াইমিং এর DAO আইন ব্যবহার করেছে। + +## DAO সদস্যপদ {#dao-membership} + +DAO সদস্যপদ জন্য বিভিন্ন মডেল আছে। ভোটিং এবং DAO এর অন্যান্য মূল অংশ কিভাবে কাজ করে সদস্যপদ তা নির্ধারণ করতে পারে। + +### টোকেন-ভিত্তিক সদস্যপদ {#token-based-membership} + +সাধারণত সম্পূর্ণ অনুমতিহীন, ব্যবহৃত টোকেনের উপর নির্ভর করে। বেশিরভাগই এই গভর্নেন্স টোকেনগুলি বিকেন্দ্রীভূত বিনিময়ে অনুমতি ছাড়াই লেনদেন করা যেতে পারে। অন্যদের অবশ্যই তারল্য প্রদান বা অন্য কোনো 'প্রুফ-অফ-ওয়ার্ক' এর মাধ্যমে উপার্জন করতে হবে। যেভাবেই হোক, শুধু টোকেন ধরে রাখা ভোটে অ্যাক্সেস দেয়। + +_সাধারণত বিস্তৃত বিকেন্দ্রীভূত প্রোটোকল এবং/অথবা টোকেনগুলিকে পরিচালনা করতে ব্যবহৃত হয়।_ + +#### একটি বিখ্যাত উদাহরণ {#token-example} + +[MakerDAO](https://makerdao.com) – MakerDAO-এর টোকেন MKR বিকেন্দ্রীভূত এক্সচেঞ্জে ব্যাপকভাবে পাওয়া যায় এবং যে কেউ মেকার প্রোটোকলের ভবিষ্যত ভোট দেওয়ার ক্ষমতা কিনতে পারে। + +### শেয়ার-ভিত্তিক সদস্যপদ {#share-based-membership} + +শেয়ার-ভিত্তিক DAO গুলি আরো অনুমোদিত, তবে এখনও বেশ উন্মুক্ত। যেকোন সম্ভাব্য সদস্যরা DAO-তে যোগদানের জন্য একটি প্রস্তাব জমা দিতে পারে, সাধারণত টোকেন বা কাজের আকারে কিছু মূল্যের শ্রদ্ধা নিবেদন করে। শেয়ার সরাসরি ভোটদানের ক্ষমতা এবং মালিকানার প্রতিনিধিত্ব করে। সদস্যরা তাদের কোষাগারের আনুপাতিক অংশ নিয়ে যেকোনো সময় প্রস্থান করতে পারেন। + +_সাধারণত আরও ঘনিষ্ঠ, মানব-কেন্দ্রিক সংস্থা যেমন দাতব্য সংস্থা, কর্মী সমষ্টি এবং বিনিয়োগ ক্লাবগুলির জন্য ব্যবহৃত হয়। পাশাপাশি প্রোটোকল এবং টোকেনগুলিও পরিচালনা করতে পারে।_ + +#### একটি বিখ্যাত উদাহরণ {#share-example} + +[MolochDAO](http://molochdao.com/) – MolochDAO ইথেরিয়াম প্রকল্পে অর্থায়নের উপর ফোকাসড। তাদের সদস্যতার জন্য একটি প্রস্তাবের প্রয়োজন যাতে গ্রুপটি মূল্যায়ন করতে পারে যে সম্ভাব্য অনুদানপ্রাপ্তদের সম্পর্কে অবগত সিদ্ধান্ত নেওয়ার জন্য আপনার প্রয়োজনীয় দক্ষতা এবং মূলধন আছে কি না। আপনি কেবল খোলা বাজারে DAO-তে অ্যাক্সেস কিনতে পারবেন না। + +### খ্যাতি-ভিত্তিক সদস্যপদ {#reputation-based-membership} + +খ্যাতি অংশগ্রহণের প্রমাণ উপস্থাপন করে এবং DAO-তে ভোট দেওয়ার ক্ষমতা প্রদান করে। টোকেন বা শেয়ার-ভিত্তিক সদস্যতার বিপরীতে, খ্যাতি-ভিত্তিক DAO অবদানকারীদের মালিকানা হস্তান্তর করে না। খ্যাতি কেনা, স্থানান্তর বা অর্পণ করা যাবে না; DAO সদস্যদের অবশ্যই অংশগ্রহণের মাধ্যমে সুনাম অর্জন করতে হবে। অন-চেইন ভোটিং অনুমোদনহীন এবং সম্ভাব্য সদস্যরা অবাধে DAO-তে যোগদানের প্রস্তাব জমা দিতে পারে এবং তাদের অবদানের বিনিময়ে খ্যাতি ও টোকেন পাওয়ার জন্য অনুরোধ করতে পারে। + +_সাধারণত প্রোটোকল এবং dapps গুলোর বিকেন্দ্রীভূত উন্নয়ন এবং পরিচালনার জন্য ব্যবহৃত হয়, তবে বিভিন্ন সংস্থা যেমন দাতব্য সংস্থা, কর্মী গোষ্ঠী, বিনিয়োগ ক্লাব ইত্যাদির জন্য উপযুক্ত।_ + +#### একটি বিখ্যাত উদাহরণ {#reputation-example} + +[DXdao](https://DXdao.eth.link) – DXdao হলো একটি বিশ্বব্যাপী সার্বভৌম যৌথ নির্মাণ এবং 2019 সাল থেকে বিকেন্দ্রীভূত প্রোটোকল এবং অ্যাপ্লিকেশনগুলো পরিচালনা করছে। এটি ফান্ড সমন্বয় ও পরিচালনার জন্য খ্যাতি-ভিত্তিক শাসন এবং হলোগ্রাফিক ঐক্যমতকে লাভ করে, যার অর্থ কেউ এর ভবিষ্যতকে প্রভাবিত করার উপায় কিনতে পারে না। + +## একটি DAO যোগদান/শুরু করুন {#join-start-a-dao} + +### Join a DAO {#join-a-dao} + +- [ইথেরিয়াম কমিউনিটির DAO সমূহ](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [DAOHaus-এর DAO-র তালিকা](https://app.daohaus.club/explore) +- [Tally.xyz এর DAO তালিকা](https://www.tally.xyz) + +### একটি DAO শুরু করুন {#start-a-dao} + +- [DAOHaus এর সাথে একটি DAO তলব করুন](https://app.daohaus.club/summon) +- [Tally দিয়ে একটি গভর্নর DAO শুরু করুন](https://www.tally.xyz/add-a-dao) +- [একটি Aragon-চালিত DAO তৈরি করুন](https://aragon.org/product) +- [একটি উপনিবেশ শুরু করুন](https://colony.io/) +- [DAOstack এর হলোগ্রাফিক কনসেনসাস দ্বারা একটি DAO তৈরি করুন](https://alchemy.daostack.io/daos/create) + +## Further reading {#further-reading} + +### DAO প্রবন্ধগুলো {#dao-articles} + +- [DAO কী?](https://aragon.org/dao) – [Aragon](https://aragon.org/) +- [DAO হ্যান্ডবুক](https://daohandbook.xyz) +- [DAO এর হোম](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) +- [DAO কী এবং এটি কী জন্য?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) +- [কীভাবে একটি DAO-চালিত ডিজিটাল কমিউনিটি শুরু করবেন](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) +- [DAO কী?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) +- [হলোগ্রাফিক কনসেনসাস কী?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) +- [DAO গুলি কর্পোরেশন নয়: যেখানে Vitalik দ্বারা স্বায়ত্তশাসিত সংস্থাগুলিতে বিকেন্দ্রীকরণ গুরুত্বপূর্ণ](https://vitalik.ca/general/2022/09/20/daos.html) +- [DAO, DAC, DA এবং আরও অনেক কিছু: একটি অসম্পূর্ণ পরিভাষা নির্দেশিকা](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [ইথেরিয়াম ব্লগ](https://blog.ethereum.org) + +### Videos {#videos} + +- [ক্রিপ্টোতে DAO কী?](https://youtu.be/KHm0uUPqmVE) +- [একটি DAO কি একটি শহর তৈরি করতে পারে?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/src/content/translations/bn/dapps/index.md b/public/content/translations/bn/dapps/index.md similarity index 100% rename from src/content/translations/bn/dapps/index.md rename to public/content/translations/bn/dapps/index.md diff --git a/public/content/translations/bn/decentralized-identity/index.md b/public/content/translations/bn/decentralized-identity/index.md new file mode 100644 index 00000000000..0496c902982 --- /dev/null +++ b/public/content/translations/bn/decentralized-identity/index.md @@ -0,0 +1,185 @@ +--- +title: বিকেন্দ্রীভূত পরিচয় +description: বিকেন্দ্রীভূত পরিচয় কী এবং কেন এটি গুরুত্বপূর্ণ? +lang: bn +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: /eth-gif-cat.png +summaryPoint1: ঐতিহ্যগত পরিচয় সিস্টেমগুলি আপনার শনাক্তকারী বৈশিষ্টসমূহের ইস্যুকরণ, রক্ষণাবেক্ষণ এবং নিয়ন্ত্রণকে কেন্দ্রীভূত করেছে। +summaryPoint2: বিকেন্দ্রীভূত পরিচয় কেন্দ্রীভূত তৃতীয় পক্ষের উপর নির্ভরতা দূর করে। +summaryPoint3: ক্রিপ্টোকারেন্সির জন্য ধন্যবাদ, ব্যবহারকারীদের কাছে এখন আবার তাদের শনাক্তকারী এবং প্রমাণীকরণ ইস্যু করার, ধরে রাখার এবং নিয়ন্ত্রণ করার টুলস রয়েছে। +--- + +পরিচয় আজ আপনার জীবনের কার্যত প্রতিটি দিকের সত্যতা প্রতিপন্ন করে। অনলাইন পরিষেবা ব্যবহার করা, একটি ব্যাঙ্ক অ্যাকাউন্ট খোলা, নির্বাচনে ভোট দেওয়া, সম্পত্তি কেনা, কর্মসংস্থান নিশ্চিত করা—এসব কিছুর জন্য আপনার পরিচয় প্রমাণ করতে হবে। + +যাইহোক, গতানুগতিক পরিচয় ব্যবস্থাপনা সিস্টেমগুলি দীর্ঘদিন ধরে কেন্দ্রীভূত মধ্যস্থতাকারীদের উপর নির্ভর করে যারা আপনার শনাক্তকারী এবং [প্রত্যয়ন](#what-are-attestations) ইস্যু করে, ধরে রাখে এবং নিয়ন্ত্রণ করে। এর মানে হল আপনি আপনার পরিচয়-সম্পর্কিত তথ্য নিয়ন্ত্রণ করতে পারবেন না বা কারো ব্যক্তিগতভাবে শনাক্তযোগ্য তথ্য (PII) অ্যাক্সেস আছে এবং এই দলগুলোর কতটা অ্যাক্সেস আছে তা নির্ধারণ করতে পারবেন না। + +এই সমস্যাগুলি সমাধান করার জন্য, আমরা ইথেরিয়াম -এর মতো পাবলিক ব্লকচেইনে তৈরি বিকেন্দ্রীভূত পরিচয় ব্যবস্থা করেছি। বিকেন্দ্রীভূত পরিচয় ব্যক্তিদের তাদের পরিচয়-সম্পর্কিত তথ্য পরিচালনা করতে দেয়। বিকেন্দ্রীভূত পরিচয় সমাধানের সাথে, _আপনি_ শনাক্তকারী তৈরি করতে পারেন এবং কেন্দ্রীয় কর্তৃপক্ষের উপর নির্ভর না করে আপনার প্রত্যয়ন দাবি করতে পারেন, যেমন পরিষেবা প্রদানকারী বা সরকার। + +## পরিচয় কী? {#what-is-identity} + +পরিচয় মানে স্বতন্ত্র বৈশিষ্ট্য দ্বারা সংজ্ঞায়িত একজন ব্যক্তির নিজের অনুভূতি। পরিচয় বলতে বোঝায় একটি _ব্যক্তি_, অর্থাৎ, একটি স্বতন্ত্র মানব সত্তা। পরিচয় অন্য অ-মানব সত্ত্বাকেও উল্লেখ করতে পারে, যেমন একটি সংস্থা বা কর্তৃপক্ষ। + +## শনাক্তকারী কী? {#what-are-identifiers} + +একটি শনাক্তকারী হল তথ্যের একটি অংশ যা একটি নির্দিষ্ট পরিচয় বা পরিচয়ের নির্দেশক হিসাবে কাজ করে। সাধারণ শনাক্তকারীর মধ্যে রয়েছে: + +- নাম +- সামাজিক নিরাপত্তা নম্বর/ট্যাক্স ID নম্বর +- মোবাইল নম্বর +- জন্ম তারিখ এবং স্থান +- ডিজিটাল শনাক্তকরণ শংসাপত্র, যেমন, ইমেল ঠিকানা, ব্যবহারকারীর নাম, এভাটার্স + +শনাক্তকারীর এই ঐতিহ্যগত উদাহরণগুলি কেন্দ্রীয় সত্তা দ্বারা জারি করা, রাখা এবং নিয়ন্ত্রণ করা হয়। আপনার নাম পরিবর্তন করার জন্য আপনার সরকারের কাছ থেকে বা আপনার হ্যান্ডেল পরিবর্তন করার জন্য একটি সোশ্যাল মিডিয়া প্ল্যাটফর্মের অনুমতি প্রয়োজন। + +## প্রত্যয়ন কী? {#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) তৈরি করে। পাবলিক-কী ক্রিপ্টোগ্রাফি ব্লকচেইন নেটওয়ার্কে ব্যবহারকারীর পরিচয় প্রমাণীকরণ এবং ডিজিটাল সম্পদের মালিকানা প্রমাণ করতে ব্যবহৃত হয়। + +কিছু বিকেন্দ্রীকৃত শনাক্তকারী, যেমন একটি ইথেরিয়াম অ্যাকাউন্ট, পাবলিক এবং ব্যক্তিগত কী আছে। পাবলিক কী অ্যাকাউন্টের নিয়ন্ত্রককে শনাক্ত করে, যখন ব্যক্তিগত কীগুলি এই অ্যাকাউন্টের জন্য বার্তাগুলি সাইন এবং ডিক্রিপ্ট করতে পারে। PKI সমস্ত দাবি যাচাই করার জন্য [ক্রিপ্টোগ্রাফিক স্বাক্ষর](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} + +চেইনে প্রত্যয়ন সংরক্ষণের সাথে একটি উদ্বেগ হল যে সেগুলিতে এমন তথ্য থাকতে পারে যা ব্যক্তিরা গোপন রাখতে চায়। ইথেরিয়াম ব্লকচেইনের সর্বজনীন প্রকৃতি এই ধরনের প্রত্যয়ন সংরক্ষণ করাকে আকর্ষণীয় করে তোলে। + +সমাধান হল প্রত্যয়ন জারি করা, যা ব্যবহারকারীদের অফ-চেইন ডিজিটাল ওয়ালেটে ঘটে, কিন্তু ইস্যুকারীর DID-তে সঞ্চিত অন-চেইনে স্বাক্ষর করা। এই প্রত্যয়নগুলি [JSON ওয়েব টোকেন](https://en.wikipedia.org/wiki/JSON_Web_Token) হিসাবে এনকোড করা হয়েছে এবং এতে ইস্যুকারীর ডিজিটাল স্বাক্ষর রয়েছে—যা অফ-চেইন দাবিগুলির সহজে যাচাই করার অনুমতি দেয়। + +অফ-চেইন প্রত্যয়ন ব্যাখ্যা করার জন্য এখানে একটি অনুমানমূলক দৃশ্যকল্প রয়েছে: + +1. একটি বিশ্ববিদ্যালয় (ইস্যুকারী) একটি প্রত্যয়ন (একটি ডিজিটাল একাডেমিক সনদপত্র) তৈরি করে, তার কীগুলির দ্বারা স্বাক্ষর করে এবং এটি ববকে (পরিচয় মালিক) ইস্যু করে। + +2. বব একটি চাকরির জন্য আবেদন করেন এবং একজন নিয়োগকর্তার কাছে তার শিক্ষাগত যোগ্যতা প্রমাণ করতে চান, তাই তিনি তার মোবাইল ওয়ালেট থেকে প্রত্যয়ন শেয়ার করেন। কোম্পানী (যাচাইকারী) তারপর ইস্যুকারীর DID (অর্থাৎ, ইথেরিয়ামে এর পাবলিক কী) পরীক্ষা করে সত্যায়নের বৈধতা নিশ্চিত করতে পারে। + +### অবিরাম অ্যাক্সেস সহ অফ-চেইন প্রত্যয়ন {#offchain-attestations-with-persistent-access} + +এই ব্যবস্থার অধীনে প্রত্যয়নগুলি JSON ফাইলে রূপান্তরিত হয় এবং অফ-চেইন সংরক্ষণ করা হয় (আদর্শভাবে একটি [বিকেন্দ্রীভূত ক্লাউড স্টোরেজ](/developers/docs/storage/) প্ল্যাটফর্মে, যেমন IPFS বা Swarm)। যাইহোক, JSON ফাইলের একটি [হ্যাশ](/glossary/#hash) অন-চেইন সংরক্ষণ করা হয় এবং একটি অন-চেইন রেজিস্ট্রির মাধ্যমে একটি DID-এর সাথে লিঙ্ক করা হয়। সংশ্লিষ্ট DID হয় প্রত্যয়ন প্রদানকারী বা প্রাপকের হতে পারে। + +এই পদ্ধতিটি ব্লকচেইন-ভিত্তিক অটলতা লাভের জন্য প্রত্যয়নকে সক্ষম করে, যখন দাবির তথ্য এনক্রিপ্ট করা এবং যাচাইযোগ্য রাখা হয়। এটি নির্বাচনী প্রকাশের জন্যও অনুমতি দেয় যেহেতু ব্যক্তিগত কী ধারক তথ্যটি ডিক্রিপ্ট করতে পারে। + +### অন-চেইন প্রত্যয়নসমূহ {#onchain-attestations} + +অন-চেইন প্রত্যয়ন ইথেরিয়াম ব্লকচেইনে [স্মার্ট কন্ট্র্যাক্টে](/developers/docs/smart-contracts/) অনুষ্ঠিত হয়। স্মার্ট কন্ট্র্যাক্ট (একটি রেজিস্ট্রি হিসাবে কাজ করে) একটি অনুরূপ অন-চেইন বিকেন্দ্রীভূত শনাক্তকারীর (একটি পাবলিক কী) একটি প্রত্যয়ন ম্যাপ করবে। + +কীভাবে অন-চেইন প্রত্যয়নগুলি অনুশীলনে কাজ করতে পারে তা দেখানোর জন্য এখানে একটি উদাহরণ দেওয়া হল: + +1. একটি কোম্পানি (XYZ Corp) একটি স্মার্ট কন্ট্র্যাক্ট ব্যবহার করে মালিকানা শেয়ার বিক্রি করার পরিকল্পনা করে কিন্তু শুধুমাত্র সেই ক্রেতাদের চায় যারা ব্যাকগ্রাউন্ড চেক সম্পন্ন করেছে। + +2. XYZ Corp কোম্পানিকে ইথেরিয়াম-এ অন-চেইন প্রত্যয়ন ইস্যু করার জন্য ব্যাকগ্রাউন্ড চেক করতে পারে। এই প্রত্যয়নটি প্রমাণ করে যে একজন ব্যক্তি কোনো ব্যক্তিগত তথ্য প্রকাশ না করেই ব্যাকগ্রাউন্ড চেক পাস করেছেন। + +3. স্মার্ট কন্ট্র্যাক্ট সেলিং শেয়ার স্ক্রিন করা ক্রেতাদের পরিচয়ের জন্য রেজিস্ট্রি চুক্তি পরীক্ষা করতে পারে, যা স্মার্ট কন্ট্রাক্টের পক্ষে কার শেয়ার কেনার অনুমতি আছে বা নাই তা নির্ধারণ করা সম্ভব করে। + +### সোলবাউন্ড টোকেনসমূহ এবং পরিচয় {#soulbound} + +[সোলবাউন্ড টোকেন](https://vitalik.ca/general/2022/01/26/soulbound.html) (অ-হস্তান্তরযোগ্য NFT) একটি নির্দিষ্ট ওয়ালেটের অনন্য তথ্য সংগ্রহ করতে ব্যবহার করা যেতে পারে। এটি কার্যকরভাবে একটি নির্দিষ্ট ইথেরিয়াম অ্যাড্রেসের সাথে আবদ্ধ একটি অনন্য অন-চেইন পরিচয় তৈরি করে যাতে কৃতিত্বের প্রতিনিধিত্বকারী টোকেন অন্তর্ভুক্ত থাকতে পারে (যেমন কিছু নির্দিষ্ট অনলাইন কোর্স শেষ করা বা একটি গেমে থ্রেশহোল্ড স্কোর পাস করা) বা কমিউনিটি অংশগ্রহণ। + +## বিকেন্দ্রীভূত পরিচয়ের সুবিধা {#benefits-of-decentralized-identity} + +1. বিকেন্দ্রীকৃত পরিচয় তথ্য সনাক্তকরণের ব্যক্তিগত নিয়ন্ত্রণ বাড়ায়। বিকেন্দ্রীভূত শনাক্তকারী এবং প্রত্যয়ন কেন্দ্রীভূত কর্তৃপক্ষ এবং তৃতীয় পক্ষের পরিষেবাগুলির উপর নির্ভর না করেই যাচাই করা যেতে পারে। + +2. বিকেন্দ্রীভূত পরিচয় সমাধানগুলি ব্যবহারকারীর পরিচয় যাচাই এবং পরিচালনার জন্য একটি বিশ্বাসহীন, নির্বিঘ্ন এবং গোপনীয়তা-সুরক্ষা পদ্ধতির সুবিধা দেয়। + +3. বিকেন্দ্রীভূত পরিচয় ব্লকচেইন প্রযুক্তি ব্যবহার করে, যা বিভিন্ন পক্ষের মধ্যে আস্থা তৈরি করে এবং প্রত্যয়নের বৈধতা প্রমাণ করার জন্য ক্রিপ্টোগ্রাফিক গ্যারান্টি প্রদান করে। + +4. বিকেন্দ্রীভূত পরিচয় পরিচয়-ডেটা বহনযোগ্য করে তোলে। ব্যবহারকারীরা মোবাইল ওয়ালেটে প্রত্যয়ন এবং শনাক্তকারী সঞ্চয় করে এবং তাদের পছন্দের যেকোনো পক্ষের সাথে শেয়ার করতে পারে। বিকেন্দ্রীভূত শনাক্তকারী এবং প্রত্যয়ন প্রদানকারী সংস্থার ডাটাবেসের মধ্যে লক করা হয় না। + +5. বিকেন্দ্রীভূত পরিচয় উদীয়মান জিরো-নলেজ প্রযুক্তিগুলির সাথে ভালভাবে কাজ করা উচিত যা ব্যক্তিদের প্রমাণ করতে সক্ষম করবে যে তারা নিজের বা কিছু করেছে তা প্রকাশ না করেই। এটি ভোট দেওয়ার মতো অ্যাপ্লিকেশনগুলির জন্য বিশ্বাস এবং গোপনীয়তা একত্রিত করার একটি শক্তিশালী উপায় হয়ে উঠতে পারে। + +6. বিকেন্দ্রীভূত পরিচয় অ্যান্টি-সাইবিল মেকানিজমকে শনাক্ত করতে সক্ষম করে যখন একজন ব্যক্তি একাধিক মানুষ হওয়ার ভান করে কোনো সিস্টেমকে গেম বা স্প্যাম করার জন্য। + +## বিকেন্দ্রীভূত পরিচয় ব্যবহার-ক্ষেত্রসমূহ {#decentralized-identity-use-cases} + +বিকেন্দ্রীভূত পরিচয়ের অনেক সম্ভাব্য ব্যবহার-ক্ষেত্র রয়েছে: + +### 1. ইউনিভার্সাল লগইন {#universal-dapp-logins} + +বিকেন্দ্রীভূত পরিচয় [বিকেন্দ্রীভূত প্রমাণীকরণের](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/) মাধ্যমে পাসওয়ার্ড-ভিত্তিক লগইনগুলি প্রতিস্থাপন করতে সহায়তা করতে পারে। পরিষেবা প্রদানকারীরা ব্যবহারকারীদের প্রত্যয়ন জারি করতে পারে, যা একটি ইথেরিয়াম ওয়ালেটে সংরক্ষণ করা যেতে পারে। একটি উদাহরণ প্রত্যয়ন হবে একটি [NFT](/nft/) যা ধারককে একটি অনলাইন কমিউনিটিতে অ্যাক্সেস দেয়। + +একটি [ইথেরিয়াম দিয়ে সাইন-ইন করুন](https://login.xyz/) ফাংশন তারপর সার্ভারগুলিকে ব্যবহারকারীর ইথেরিয়াম অ্যাকাউন্ট নিশ্চিত করতে এবং তাদের অ্যাকাউন্ট অ্যাড্রেস থেকে প্রয়োজনীয় প্রত্যয়ন আনতে সক্ষম করবে। এর মানে ব্যবহারকারীরা দীর্ঘ পাসওয়ার্ড মুখস্থ না করেই প্ল্যাটফর্ম এবং ওয়েবসাইটগুলি অ্যাক্সেস করতে পারে এবং ব্যবহারকারীদের জন্য অনলাইন অভিজ্ঞতা উন্নত করে। + +### 2. KYC প্রমাণীকরণ {#kyc-authentication} + +অনেক অনলাইন পরিষেবা ব্যবহার করার জন্য ব্যক্তিদের প্রত্যয়ন এবং প্রমাণপত্র প্রদান করতে হয়, যেমন একটি ড্রাইভিং লাইসেন্স বা জাতীয় পাসপোর্ট। কিন্তু এই পদ্ধতিটি সমস্যাযুক্ত কারণ ব্যক্তিগত ব্যবহারকারীর তথ্যের সাথে আপোস করা যেতে পারে এবং পরিষেবা প্রদানকারীরা প্রত্যয়নের সত্যতা যাচাই করতে পারে না। + +বিকেন্দ্রীভূত পরিচয় কোম্পানিগুলিকে প্রচলিত [আপনার গ্রাহককে জানুন (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) প্রক্রিয়াগুলি এড়িয়ে যেতে এবং যাচাইযোগ্য প্রমাণপত্রের মাধ্যমে ব্যবহারকারীর পরিচয় প্রমাণীকরণ করতে দেয়। এটি পরিচয় ব্যবস্থাপনার খরচ কমায় এবং জাল নথিপত্র ব্যবহার প্রতিরোধ করে। + +### 3. ভোটিং এবং অনলাইন কমিউনিটিগুলো {#voting-and-online-communities} + +অনলাইন ভোটিং এবং সোশ্যাল মিডিয়া বিকেন্দ্রীভূত পরিচয়ের জন্য দুটি অভিনব অ্যাপ্লিকেশন। অনলাইন ভোটিং স্কিমগুলি ম্যানিপুলেশনের জন্য সংবেদনশীল, বিশেষ করে যদি ম্যালিসিয়াস এক্টরস ভোট দেওয়ার জন্য মিথ্যা পরিচয় তৈরি করে। ব্যক্তিদের অন-চেইন প্রত্যয়ন উপস্থাপন করতে বলা অনলাইন ভোটিং প্রক্রিয়ার অখণ্ডতা উন্নত করতে পারে। + +বিকেন্দ্রীকৃত পরিচয় জাল অ্যাকাউন্ট মুক্ত অনলাইন কমিউনিটিস তৈরি করতে সাহায্য করতে পারে। উদাহরণস্বরূপ, প্রতিটি ব্যবহারকারীকে একটি অন-চেইন আইডেন্টিটি সিস্টেম ব্যবহার করে তাদের পরিচয় প্রমাণীকরণ করতে হতে পারে, যেমন ইথেরিয়াম নাম পরিষেবা, বটগুলির সম্ভাবনা হ্রাস করে। + +### 4. অ্যান্টি-সাইবিল সুরক্ষা {#sybil-protection} + +সাইবিল আক্রমণ বলতে বোঝায় যে ব্যক্তিরা তাদের প্রভাব বাড়ানোর জন্য একটি সিস্টেমকে একাধিক ব্যক্তি মনে করে প্রতারণা করে। [অনুদান প্রদানকারী অ্যাপ্লিকেশনগুলি](https://gitcoin.co/grants/) যেগুলি [ব্যবহার করে চতুর্মুখী ভোটিং](https://www.radicalxchange.org/concepts/plural-voting/) এই সাইবিল আক্রমণের জন্য ঝুঁকিপূর্ণ কারণ অনুদানের মূল্য বৃদ্ধি পায় যখন আরও বেশি ব্যক্তি এটিকে ভোট দেয়, ব্যবহারকারীদের তাদের অবদানগুলিকে অনেকগুলি পরিচয়ে বিভক্ত করতে উৎসাহিত করে। বিকেন্দ্রীভূত পরিচয়গুলি প্রত্যেক অংশগ্রহণকারীর উপর বোঝা বাড়িয়ে প্রমাণ করতে সাহায্য করে যে তারা সত্যিই মানুষ, যদিও প্রায়ই নির্দিষ্ট ব্যক্তিগত তথ্য প্রকাশ না করেই। + +## বিকেন্দ্রীভূত পরিচয় ব্যবহার করুন {#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 {#further-reading} + +### আর্টিকেল সমূহ {#articles} + +- [ব্লকচেন ব্যবহারের ক্ষেত্রে: ডিজিটাল পরিচয়ে ব্লকচেইন](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ +- [ইথেরিয়াম ERC725 কী? ব্লকচেইনে স্ব-সার্বভৌম পরিচয় ব্যবস্থাপনা](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _স্যাম টাউন_ +- [কিভাবে ব্লকচেইন ডিজিটাল পরিচয়ের সমস্যা সমাধান করতে পারে](https://time.com/6142810/proof-of-humanity/) — _অ্যান্ড্রু আর চাউ_ +- [বিকেন্দ্রীভূত পরিচয় কী এবং কেন আপনার যত্ন নেওয়া উচিত?](https://web3.hashnode.com/what-is-decentralized-identity) — _ইমানুয়েল আওসিকা_ + +### Videos {#videos} + +- [বিকেন্দ্রীভূত পরিচয় (বোনাস লাইভস্ট্রিম সেশন)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _ আন্দ্রেয়াস আন্তোনোপোলোস এর বিকেন্দ্রীভূত পরিচয়ের উপর একটি দুর্দান্ত ব্যাখ্যাকারী ভিডিও_ +- [Ceramic, IDX, React এবং 3ID Connect সংযোগের সাথে ইথেরিয়াম এবং বিকেন্দ্রীভূত পরিচয় দিয়ে সাইন ইন করুন](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _Nader Dabit এর ইথেরিয়াম ওয়ালেট ব্যবহার করে ব্যবহারকারীর প্রোফাইল তৈরি, পড়া এবং আপডেট করার জন্য একটি আইডেন্টিটি ম্যানেজমেন্ট সিস্টেম তৈরি করার বিষয়ে YouTube টিউটোরিয়াল_ +- [BrightID - ইথেরিয়ামে বিকেন্দ্রীভূত পরিচয়](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _Bankless পডকাস্ট পর্ব BrightID নিয়ে আলোচনা করে, ইথেরিয়াম এর জন্য একটি বিকেন্দ্রীভূত পরিচয় সমাধান_ +- [অফ চেইন ইন্টারনেট: বিকেন্দ্রীভূত পরিচয় & যাচাইযোগ্য প্রমাণপত্রাদি](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — Evin McMullen দ্বারা EthDenver 2022 উপস্থাপনা + +### কমিউনিটিগুলো {#communities} + +- [GitHub-এ ERC-725 জোট](https://github.com/erc725alliance) — _ইথেরিয়াম ব্লকচেইনে পরিচয় পরিচালনার জন্য ERC725 স্ট্যান্ডার্ডের সমর্থকগণ_ +- [SpruceID Discord সার্ভার](https://discord.com/invite/Sf9tSFzrnt) — _উৎসাহী এবং ডেভেলপারদের জন্য কমিউনিটি যারা ইথেরিয়ামের সাথে সাইন-ইন করে কাজ করছে_ +- [ Veramo Labs](https://discord.gg/sYBUXpACh4) — _অ্যাপ্লিকেশানগুলির জন্য যাচাইযোগ্য ডেটার জন্য একটি কাঠামো তৈরিতে অবদান রাখতে ডেভেলপারদের একটি কমিউনিটি_ diff --git a/public/content/translations/bn/defi/index.md b/public/content/translations/bn/defi/index.md new file mode 100644 index 00000000000..162f24cee2e --- /dev/null +++ b/public/content/translations/bn/defi/index.md @@ -0,0 +1,352 @@ +--- +title: বিকেন্দ্রীভূত অর্থ (DeFi) +description: ইথেরিয়াম এর উপর DeFi এর একটি সংক্ষিপ্ত বিবরণী +lang: bn +template: use-cases +emoji: ":money_with_wings:" +image: /use-cases/defi.png +alt: Lego ব্রিকস দিয়ে তৈরি একটি Eth লোগো। +sidebarDepth: 2 +summaryPoint1: বর্তমান আর্থিক ব্যবস্থার জন্য বিশ্বব্যাপী একটি উন্মুক্ত বিকল্প ব্যবস্থাপনা। +summaryPoint2: যে পণ্যগুলি আপনাকে ধার, সঞ্চয়, বিনিয়োগ, বাণিজ্য এবং আরও অনেক কিছু করতে দেয়। +summaryPoint3: যে কেউ প্রোগ্রাম করতে পারে এমন ওপেন সোর্স প্রযুক্তির উপরে নির্ভর করে তৈরি। +--- + +DeFi হলো একটি উন্মুক্ত এবং বিশ্বব্যাপী আর্থিক ব্যবস্থা যা ইন্টারনেট যুগের জন্য তৈরি করা হয়েছে – এমন একটি সিস্টেমের বিকল্প যা অস্বচ্ছ, শক্তভাবে নিয়ন্ত্রিত এবং কয়েক দশক পুরনো অবকাঠামো এবং প্রক্রিয়াগুলির দ্বারা একত্রিত। এটি আপনাকে আপনার অর্থের উপর নিয়ন্ত্রণ এবং দৃশ্যমানতা দেয়। এটি আপনাকে বিশ্বব্যাপী বাজারের এক্সপোজার এবং আপনার স্থানীয় মুদ্রা বা ব্যাংকিং অপশনগুলির বিকল্প দেয়। DeFi পণ্যগুলি ইন্টারনেট সংযোগ সহ সকলের জন্য আর্থিক পরিষেবা উন্মুক্ত করে এবং সেগুলি মূলত তাদের ব্যবহারকারীদের দ্বারা মালিকানাধীন এবং রক্ষণাবেক্ষণ করে। এখন পর্যন্ত কয়েক বিলিয়ন ডলার মূল্যের ক্রিপ্টো DeFi অ্যাপ্লিকেশনের মাধ্যমে প্রবাহিত হয়েছে এবং এর পরিমাণ প্রতিদিন বাড়ছে। + +## DeFi কি? {#what-is-defi} + +DeFi হল আর্থিক পণ্য এবং পরিষেবাগুলির জন্য একটি সম্মিলিত শব্দ যা ইথেরিয়াম ব্যবহার করতে পারে এমন যে কারো অ্যাক্সেসযোগ্য - ইন্টারনেট সংযোগ সহ যে কেউ। DeFi এর মাধ্যমে, মার্কেট সর্বদা খোলা থাকে এবং কোনও কেন্দ্রীভূত কর্তৃপক্ষ নেই যারা অর্থপ্রদান ব্লক করতে পারে বা আপনাকে যে কোনও কিছুতে অ্যাক্সেস অস্বীকার করতে পারে। যে পরিষেবাগুলি আগে ধীরগতির ছিল এবং মানব ত্রুটির ঝুঁকিতে ছিল সেগুলি এখন স্বয়ংক্রিয় এবং নিরাপদ কারণ সেগুলি কোড দ্বারা পরিচালনা করা হয় যা যে কেউ পরিদর্শন এবং যাচাই করতে পারে। + +বিশ্বে একটি ক্রমবর্ধমান ক্রিপ্টো অর্থনীতি রয়েছে, যেখানে আপনি ধার দিতে পারেন, ধার করতে পারেন, লং/শর্ট করতে পারেন, সুদ উপার্জন করতে পারেন এবং আরও অনেক কিছু করতে পারেন। ক্রিপ্টো-বুদ্ধিমান আর্জেন্টাইনরা অর্থনীতি পঙ্গু করে দিতে পারে এমন মুদ্রাস্ফীতি এড়াতে DeFi ব্যবহার করেছে। কোম্পানিগুলি তাদের কর্মীদের রিয়েল টাইমে তাদের মজুরি স্ট্রিমিং শুরু করেছে। কিছু লোক এমনকি কোনো ব্যক্তিগত পরিচয় ছাড়াই মিলিয়ন মিলিয়ন ডলারের ঋণ গ্রহণ করেছে এবং পরিশোধ করেছে। + + + +## DeFi বনাম প্রথাগত অর্থনীতি {#defi-vs-tradfi} + +DeFi এর সম্ভাব্যতা দেখার সর্বোত্তম উপায়গুলির মধ্যে একটি হল আজকের বিদ্যমান সমস্যাগুলি বোঝা। + +- কিছু লোককে একটি ব্যাঙ্ক অ্যাকাউন্ট সেট আপ করতে বা আর্থিক পরিষেবাগুলি ব্যবহার করার অনুমতি দেওয়া হয় না। +- আর্থিক পরিষেবাগুলিতে অ্যাক্সেসের অভাব মানুষকে কর্মসংস্থান হতে বাধা দিতে পারে। +- আর্থিক পরিষেবাগুলি আপনাকে অর্থ প্রদান থেকে অবরুদ্ধ করতে পারে। +- আর্থিক পরিষেবাগুলির একটি লুকানো চার্জ হল আপনার ব্যক্তিগত ডেটা। +- সরকার এবং কেন্দ্রীভূত প্রতিষ্ঠান ইচ্ছামতো বাজার বন্ধ করে দিতে পারে। +- ট্রেডিং ঘন্টা প্রায়ই নির্দিষ্ট সময় অঞ্চলের ব্যবসায়িক ঘন্টার মধ্যে সীমাবদ্ধ থাকে। +- অভ্যন্তরীণ মানব নিয়ন্ত্রণাধীন প্রক্রিয়ার কারণে অর্থ স্থানান্তর করতে অনেকদিন লাগতে পারে। +- আর্থিক পরিষেবাগুলির জন্য একটি প্রিমিয়াম রয়েছে কারণ মধ্যস্থতাকারী প্রতিষ্ঠানগুলির তাদের লভ্যাংশ প্রয়োজন। + +### একটি তুলনা {#defi-comparison} + +| DeFi | প্রথাগত অর্থনীতি | +| ------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------- | +| আপনি আপনার অর্থ ধরে রাখেন। | কোম্পানি আপনার অর্থ ধরে রাখে। | +| আপনার অর্থ কোথায় যায় এবং কীভাবে ব্যয় হয় তা আপনি নিয়ন্ত্রণ করেন। | ঝুঁকিপূর্ণ ঋণগ্রহীতাদের ঋণ দেওয়ার মতো আপনার অর্থের অব্যবস্থাপনা না করার জন্য আপনাকে কোম্পানিগুলিকে বিশ্বাস করতে হবে। | +| তহবিল স্থানান্তর মিনিটের মধ্যে ঘটে। | ম্যানুয়াল প্রক্রিয়ার কারণে অর্থপ্রদানে অনেকদিন লাগতে পারে। | +| লেনদেন কার্যকলাপ হলো ছদ্মনাম। | আর্থিক কার্যকলাপ আপনার পরিচয়ের সাথে দৃঢ়ভাবে মিলিত হয়। | +| DeFi যে কারো জন্য উন্মুক্ত। | আর্থিক পরিষেবাগুলি ব্যবহার করার জন্য আপনাকে অবশ্যই আবেদন করতে হবে। | +| মার্কেট সবসময় খোলা থাকে। | কর্মীদের বিরতির প্রয়োজন হয় বিধার মার্কেট বন্ধ করা হয়। | +| এটি স্বচ্ছতার উপর নির্মিত – যে কেউ একটি পণ্যের ডেটা দেখতে পারে এবং সিস্টেমটি কীভাবে কাজ করে তা পরিদর্শন করতে পারে। | আর্থিক প্রতিষ্ঠানগুলি বন্ধ বই: আপনি তাদের ঋণের ইতিহাস, তাদের পরিচালিত সম্পদের রেকর্ড এবং আরও অনেক কিছু দেখতে চাইতে পারবেন না। | + + + DeFi অ্যাপগুলি ঘেটে দেখুন + + +## এটি বিটকয়েন দিয়ে শুরু হয়েছিল... {#bitcoin} + +বিটকয়েন অনেক উপায়ে প্রথম DeFi অ্যাপ্লিকেশন ছিল। বিটকয়েন আপনাকে সত্যিকার অর্থে মূল্যের মালিক হতে এবং নিয়ন্ত্রণ করতে দেয় এবং বিশ্বের যে কোনো জায়গায় পাঠাতে দেয়। এটি একটি বিশ্বস্ত মধ্যস্থতাকারীর প্রয়োজন ছাড়াই অনেক সংখ্যক লোককে, যারা একে অপরকে বিশ্বাস করে না, অ্যাকাউন্টের লেজারে সম্মত হওয়ার একটি উপায় প্রদান করার মাধ্যমে এমনটি করে। বিটকয়েন যে কারো জন্য উন্মুক্ত এবং এর নিয়ম পরিবর্তন করার ক্ষমতা কারো নেই। ঘাটতি এবং উন্মুক্ততার মতো, বিটকয়েনের নিয়মসমূহ, এর প্রযুক্তিতে লেখা আছে। এটি প্রথাগত অর্থনীতির মতো নয় যেখানে সরকার আপনার সঞ্চয়ের অবমূল্যায়ন করে এমন অর্থ মুদ্রণ করতে পারে এবং কোম্পানিগুলি মার্কেট বন্ধ করে দিতে পারে। + +ইথেরিয়াম এগুলোর উপরেই তৈরি করা। বিটকয়েনের মতো, নিয়মগুলি আপনার ক্ষেত্রে পরিবর্তিত হতে পারবে না এবং প্রত্যেকেরই অ্যাক্সেস রয়েছে। কিন্তু এটি [স্মার্ট কনট্র্যাক্ট](/glossary#smart-contract) ব্যবহার করে এই ডিজিটাল অর্থকে প্রোগ্রামযোগ্য করে তোলে, যাতে আপনি মূল্য সংরক্ষণ এবং প্রেরণের বাইরে যেতে পারেন। + + + +## প্রোগ্রামেবল অর্থ {#programmable-money} + +এটা অদ্ভুত শোনাচ্ছে... "কেন আমি আমার অর্থ প্রোগ্রাম করতে চাইব"? যাইহোক, এটি ইথেরিয়াম-এ টোকেনগুলির একটি ডিফল্ট বৈশিষ্ট্য। যে কেউ অর্থ প্রদানের মধ্যে যুক্তি প্রোগ্রাম করতে পারেন। সুতরাং আপনি আর্থিক প্রতিষ্ঠান প্রদত্ত পরিষেবাগুলোর পাশাপাশি বিটকয়েনের নিয়ন্ত্রণ এবং নিরাপত্তা পেতে পারেন। এটি আপনাকে ক্রিপ্টোকারেন্সিগুলোর সাথে এমন কিছু করতে দেয় যা আপনি বিটকয়েনের সাথে করতে পারবেন না যেমন ধার দেওয়া এবং ধার নেওয়া, অর্থ প্রদানের সময় নির্ধারণ করা, ইন্ডেক্স ফান্ডে বিনিয়োগ করা এবং আরও অনেক কিছু। + + +
আপনি যদি ইথেরিয়াম-এ নতুন হন তবে চেষ্টা করতে DeFi অ্যাপ্লিকেশনগুলির জন্য আমাদের পরামর্শগুলি এক্সপ্লোর করুন।
+ + DeFi অ্যাপগুলি ঘেটে দেখুন + +
+ +## আপনি 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/) প্রয়োজন হবে। + + + পেমেন্ট dapps গুলো দেখুন + + +#### বিশ্বজুড়ে অর্থ স্ট্রিম করুন... {#stream-money} + +এছাড়াও আপনি ইথেরিয়াম এর মাধ্যমে অর্থ প্রবাহ করতে পারেন। এটি আপনাকে কাউকে তাদের বেতন সেকেন্ডের মধ্যে পরিশোধ করতে দেয়, যখনই তাদের প্রয়োজন হয় তখনই তাদের অর্থের অ্যাক্সেস দেয়। অথবা স্টোরেজ লকার বা বৈদ্যুতিক স্কুটারের মত কিছু ভাড়া নিন। + +এবং যদি আপনি [ETH](/eth/) পাঠাতে বা স্ট্রিম করতে না চান কারণ এর মান কতটা পরিবর্তিত হতে পারে, তাহলে ইথেরিয়াম-এ বিকল্প মুদ্রা রয়েছে: স্টেবলকয়েন। + + + +### স্থিতিশীল মুদ্রা অ্যাক্সেস করুন {#stablecoins} + +ক্রিপ্টোকারেন্সির অস্থিতিশীলতা প্রচুর আর্থিক পণ্য এবং সাধারণ ব্যয়ের জন্য একটি সমস্যা। DeFi কমিউনিটি এটি স্টেবলকয়েন দিয়ে সমাধান করেছে। তাদের মূল্য অন্য সম্পদের সাথে স্থির থাকে, সাধারণত ডলারের মতো একটি জনপ্রিয় মুদ্রা। + +Dai বা USDC-এর মতো কয়েনগুলির একটি মূল্য রয়েছে যা একটি ডলারের কয়েক সেন্টের মধ্যে থাকে। এটি তাদের উপার্জন বা খুচরা বিক্রয়ের জন্য নিখুঁত করে তোলে। লাতিন আমেরিকার অনেক লোক তাদের সরকার দ্বারা জারি করা মুদ্রার সাথে একটি বড় অনিশ্চয়তার সময়ে তাদের সঞ্চয় রক্ষার উপায় হিসাবে স্টেবলকয়েন ব্যবহার করেছে। + + + স্টেবলকয়েন সম্পর্কে আরও + + + + +### ধার করা {#lending} + +বিকেন্দ্রীভূত প্রদানকারীদের কাছ থেকে অর্থ ধার নেওয়া দুটি প্রধান প্রকারে আসে। + +- পিয়ার-টু-পিয়ার, যার অর্থ একজন ঋণগ্রহীতা সরাসরি একটি নির্দিষ্ট ঋণদাতার কাছ থেকে ধার করবে। +- পুল-ভিত্তিক যেখানে ঋণদাতারা একটি পুলে ফান্ড (লিকুইডিটি) প্রদান করে যেখান থেকে ঋণগ্রহীতারা ধার নিতে পারে। + + + ঋণদাতা dapps গুলো দেখুন + + +বিকেন্দ্রীভূত ঋণদাতা ব্যবহার করার অনেক সুবিধা রয়েছে... + +#### গোপনীয়তার সাথে ধার করা {#borrowing-privacy} + +আজ, টাকা ধার দেওয়া এবং ধার নেওয়া সবই জড়িত ব্যক্তিদের চারপাশে ঘোরে। ধার দেওয়ার আগে ব্যাংকগুলিকে জানতে হবে আপনি ঋণ পরিশোধ করতে পারবেন কিনা। + +বিকেন্দ্রীভূত ঋণ কোনো পক্ষকেই নিজেদের পরিচয় না দিয়ে কাজ করে। পরিবর্তে, ঋণগ্রহীতাকে অবশ্যই জামানত রাখতে হবে যা ঋণদাতা স্বয়ংক্রিয়ভাবে পাবেন যদি তাদের ঋণ পরিশোধ করা না হয়। কিছু ঋণদাতা জামানত হিসেবে এমনকি NFT গ্রহণ করে। NFT হল একটি অনন্য সম্পদের দলিল, যেমন একটি পেইন্টিং। [NFT সম্পর্কে আরো](/nft/) + +এটি আপনাকে ক্রেডিট চেক বা ব্যক্তিগত তথ্য হস্তান্তর ছাড়াই অর্থ ধার করতে দেয়। + +#### বৈশ্বিক ফান্ডসমূহে অ্যাক্সেস {#access-global-funds} + +আপনি যখন একটি বিকেন্দ্রীভূত ঋণদাতা ব্যবহার করেন তখন আপনার কাছে সমস্ত বিশ্ব থেকে জমা করা ফান্ডগুলিতে অ্যাক্সেস থাকে, শুধুমাত্র আপনার নির্বাচিত ব্যাঙ্ক বা প্রতিষ্ঠানের হেফাজতে থাকা ফান্ডগুলি নয়। এটি ঋণকে আরও সহজলভ্য করে এবং সুদের হার উন্নত করে। + +#### কর-দক্ষতাগুলো {#tax-efficiencies} + +ধার করা আপনাকে আপনার ETH (একটি করযোগ্য ইভেন্ট) বিক্রি করার প্রয়োজন ছাড়াই আপনার প্রয়োজনীয় ফান্ডগুলিতে অ্যাক্সেস দিতে পারে। পরিবর্তে, আপনি একটি স্টেবলকয়েন ঋণের জন্য জামানত হিসাবে ETH ব্যবহার করতে পারেন। এটি আপনাকে আপনার প্রয়োজনীয় নগদ-প্রবাহ দেয় এবং আপনাকে আপনার ETH রাখতে দেয়। স্টেবলকয়েন হল টোকেন যা আপনার নগদ প্রয়োজনের জন্য অনেক ভালো কারণ এগুলো ETH এর মত মূল্যে ওঠানামা করে না। [স্টেবলকয়েন সম্পর্কে আরও](#stablecoins) + +#### ফ্ল্যাশ লোনস {#flash-loans} + +ফ্ল্যাশ লোন হল বিকেন্দ্রীকৃত ঋণের একটি আরও পরীক্ষামূলক রূপ যা আপনাকে জামানত ছাড়া বা কোনো ব্যক্তিগত তথ্য প্রদান ছাড়াই ঋণ নিতে দেয়। + +এগুলো এই মুহূর্তে নন-টেকনিক্যাল লোকেদের কাছে ব্যাপকভাবে অ্যাক্সেসযোগ্য নয় তবে এগুলো ভবিষ্যতে সবার কাছে কী হতে পারে তার ইঙ্গিত দেয়। + +এটি সেই ভিত্তিতে কাজ করে যে একই লেনদেনের মধ্যে ঋণ নেওয়া হয় এবং ফেরত দেওয়া হয়। যদি এটি ফেরত দেওয়া না যায়, তাহলে লেনদেনটি এমনভাবে ফিরে আসে যেন কিছুই ঘটেনি। + +প্রায়শই ব্যবহৃত ফান্ডগুলো লিকুইডিটি পুল (ধার নেওয়ার জন্য ব্যবহৃত ফান্ডের বড় পুল) এ রাখা হয়। যদি সেগুলি একটি নির্দিষ্ট মুহুর্তে ব্যবহার করা না হয়, তাহলে এটি কারোর জন্য এই ফান্ডগুলি ধার করার, তাদের মাধ্যমে ব্যবসা পরিচালনা করার এবং তাদের ধার নেওয়ার সাথে সাথে পুরোপুরি আক্ষরিক অর্থে পরিশোধ করার একটি সুযোগ তৈরি করে। + +এর মানে হল একটি খুব ইচ্ছামত লেনদেনে অনেক যুক্তি অন্তর্ভুক্ত করা আবশ্যক। একটি সাধারণ উদাহরণ হতে পারে যে কেউ একটি ফ্ল্যাশ লোন ব্যবহার করে একটি মূল্যে যতটা সম্পদ ধার করতে পারে যাতে তারা এটিকে ভিন্ন বিনিময়ে বিক্রি করতে পারে যেখানে দাম বেশি। + +সুতরাং একটি একক লেনদেনে, নিম্নলিখিতগুলি ঘটে: + +- আপনি এক্সচেঞ্জ A থেকে X পরিমাণ, $1.00 এ $asset ধার করেন +- আপনি এক্সচেঞ্জ B-এ $1.10-এ X $asset বিক্রি করেন +- আপনি এক্সচেঞ্জ A তে লোন ফেরত দেন +- লাভ বিয়োগ লেনদেন ফি আপনি রাখুন + +যদি এক্সচেঞ্জ B এর সরবরাহ হঠাৎ করে কমে যায় এবং ব্যবহারকারী আসল লোন কভার করার জন্য যথেষ্ট ক্রয় করতে সক্ষম না হন, তাহলে লেনদেনটি ব্যর্থ হবে। + +প্রথাগত আর্থিক জগতে উপরের উদাহরণটি করতে সক্ষম হতে, আপনার প্রচুর পরিমাণ অর্থের প্রয়োজন হবে। এই অর্থ উপার্জন কৌশল শুধুমাত্র যাদের বিদ্যমান সম্পদ আছে তাদের অ্যাক্সেসযোগ্য। ফ্ল্যাশ লোন হল একটি ভবিষ্যতের উদাহরণ যেখানে অর্থ উপার্জনের জন্য অর্থ থাকা অপরিহার্য নয়। + +[ফ্ল্যাশ লোন সম্পর্কে আরো](https://aave.com/flash-loans/) + + + +### ক্রিপ্টো দিয়ে সঞ্চয় করা শুরু করুন {#saving} + +#### ঋণদান {#lending} + +আপনি আপনার ক্রিপ্টোকে ধার দিয়ে সুদ উপার্জন করতে পারেন এবং আপনার ফান্ড রিয়েল টাইমে বৃদ্ধি পেতে দেখতে পারেন। এই মুহূর্তে সুদের হারগুলি আপনার স্থানীয় ব্যাঙ্কে আপনি যা পেতে পারেন তার চেয়ে অনেক বেশি (যদি আপনি ভাগ্যবান হন যে একটি অ্যাক্সেস করতে সক্ষম হন)। উদাহরণস্বরূপ: + +- আপনি Aave-এর মতো একটি পণ্যকে আপনার 100 Dai, একটি [স্টেবলকয়েন](/stablecoins/) ধার দেন। +- আপনি 100 Aave Dai (aDai) পাবেন যা একটি টোকেন যা আপনার ধার করা Dai কে প্রতিনিধিত্ব করে। +- সুদের হারের উপর ভিত্তি করে আপনার aDai বৃদ্ধি পাবে এবং আপনি আপনার ওয়ালেটে আপনার ব্যালেন্স বাড়তে দেখতে পাবেন। APR-এর উপর নির্ভর করে, আপনার ওয়ালেট ব্যালেন্স কয়েক দিন বা এমনকি কয়েক ঘন্টা পরে 100.1234 এর মত কিছু পড়বে! +- আপনি যেকোন সময় আপনার aDai ব্যালেন্সের সমান পরিমাণ নিয়মিত Dai তুলতে পারবেন। + + + ধার দেওয়া dapps গুলো দেখুন + + +#### নো-লস লটারিসমূহ {#no-loss-lotteries} + +PoolTogether-এর মতো নো-লস লটারি অর্থ সঞ্চয় করার একটি মজাদার এবং উদ্ভাবনী নতুন উপায়। + +- আপনি 100 Dai টোকেন ব্যবহার করে 100 টি টিকিট কিনবেন। +- আপনি আপনার 100টি টিকেটের প্রতিনিধিত্ব করে 100 টি plDai পাবেন। +- যদি আপনার টিকিটগুলির মধ্যে একটি বিজয়ী হিসাবে বাছাই করা হয়, তাহলে আপনার plDai ব্যালেন্স প্রাইজ পুলের পরিমাণ অনুযায়ী বৃদ্ধি পাবে। +- আপনি জিততে না পারলে, আপনার 100 plDai পরের সপ্তাহের ড্রতে চলে যাবে। +- আপনি যেকোন সময় আপনার plDai ব্যালেন্সের সমান পরিমাণ রেগুলার Dai তুলতে পারবেন। + +উপরের ধারের উদাহরণের মতো টিকিট ডিপোজিট ধার দেওয়ার মাধ্যমে সমস্ত সুদের দ্বারা প্রাইজ পুল তৈরি হয়। + + + PoolTogether ব্যবহার করে দেখুন + + + + +### টোকেন সমূহ এক্সচেঞ্জ করুন {#swaps} + +ইথেরিয়ামে হাজার হাজার টোকেন রয়েছে। বিকেন্দ্রীভূত এক্সচেঞ্জ (DEX) আপনি যখনই চান তখনই আপনাকে বিভিন্ন টোকেন বাণিজ্য করতে দেয়। আপনি কখনই আপনার সম্পদের নিয়ন্ত্রণ ছেড়ে দিবেন না। এটি একটি ভিন্ন দেশে যাওয়ার সময় একটি মুদ্রা বিনিময় ব্যবস্থা ব্যবহার করার মত। কিন্তু DeFi সংস্করণ কখনই বন্ধ হয় না। মার্কেটগুলো বছরে 24/7, 365 দিন এবং এর প্রযুক্তি এই গ্যারান্টি দেয় যে সর্বদা একটি ট্রেড গ্রহণ করার জন্য কেউ থাকবে। + +উদাহরণস্বরূপ, আপনি যদি নো-লস লটারি PoolTogether (উপরে বর্ণিত) ব্যবহার করতে চান, তাহলে আপনাকে Dai বা USDC-এর মতো একটি টোকেনের প্রয়োজন হবে। এই DEX গুলি আপনাকে সেই টোকেনগুলির জন্য আপনার ETH অদলবদল করতে এবং আপনার শেষ হয়ে গেলে আবার ফিরে আসতে দেয়। + + + টোকেন এক্সচেঞ্জ দেখুন + + + + +### উন্নত ট্রেডিং {#trading} + +যারা একটু বেশি নিয়ন্ত্রণ পছন্দ করেন তাদের জন্য আরও উন্নত ব্যবস্থা রয়েছে। সীমিত অর্ডারস, পার্পেচুয়ালস, মার্জিন ট্রেডিং এবং আরও অনেক কিছু সম্ভব। বিকেন্দ্রীভূত ট্রেডিংয়ের মাধ্যমে আপনি বিশ্বব্যাপী লিকুইডিটির অ্যাক্সেস পান, বাজার কখনই বন্ধ হয় না এবং আপনি সর্বদা আপনার সম্পদের নিয়ন্ত্রণে থাকেন। + +যখন আপনি একটি কেন্দ্রীভূত এক্সচেঞ্জ ব্যবহার করেন তখন আপনাকে ট্রেডের আগে আপনার সম্পদ জমা করতে হবে এবং সেগুলির যত্ন নেওয়ার জন্য তাদের বিশ্বাস করতে হবে। আপনার সম্পদ জমা হওয়ার সময়, সেগুলি ঝুঁকির মধ্যে রয়েছে কারণ কেন্দ্রীভূত এক্সচেঞ্জগুলি হ্যাকারদের জন্য আকর্ষণীয় লক্ষ্য। + + + ট্রেডিং dapps দেখুন + + + + +### আপনার পোর্টফোলিও বাড়ান {#investing} + +ইথেরিয়াম এ ফান্ড ম্যানেজমেন্ট পণ্য রয়েছে যা আপনার পছন্দের কৌশলের ভিত্তিতে আপনার পোর্টফোলিও বাড়ানোর চেষ্টা করবে। এটি স্বয়ংক্রিয়, সকলের জন্য উন্মুক্ত, এবং আপনার লাভের একটি অংশ নেওয়ার জন্য একজন মানব পরিচালকের প্রয়োজন নেই। + +একটি ভাল উদাহরণ হল [DeFi পালস ইনডেক্স ফান্ড (DPI)](https://defipulse.com/blog/defi-pulse-index/)। এটি এমন একটি তহবিল যা আপনার পোর্টফোলিওতে সর্বদা [বাজার মূলধন দ্বারা শীর্ষ DeFi টোকেন](https://www.coingecko.com/en/defi) অন্তর্ভুক্ত থাকে তা নিশ্চিত করতে স্বয়ংক্রিয়ভাবে ভারসাম্য বজায় রাখে। আপনাকে কখনই কোনো বিবরণ পরিচালনা করতে হবে না এবং আপনি যখন খুশি ফান্ড থেকে উত্তোলন করতে পারেন। + + + বিনিয়োগ dapps গুলো দেখুন + + + + +### আপনার আইডিয়াগুলো ফান্ড করুন {#crowdfunding} + +ইথেরিয়াম ক্রাউডফান্ডিংয়ের জন্য একটি আদর্শ প্ল্যাটফর্ম: + +- সম্ভাব্য তহবিল যেকোন জায়গা থেকে আসতে পারে – ইথেরিয়াম এবং এর টোকেনগুলি বিশ্বের যে কোনও জায়গায় যে কোনও ব্যক্তির জন্য উন্মুক্ত। +- এটি স্বচ্ছ তাই তহবিল সংগ্রহকারীরা প্রমাণ করতে পারেন যে কত টাকা তোলা হয়েছে। এমনকি আপনি পরবর্তীতে কীভাবে ফান্ড ব্যয় করা হচ্ছে তাও ট্রেস করতে পারেন। +- তহবিল সংগ্রহকারীরা স্বয়ংক্রিয় অর্থ ফেরত সেটআপ করতে পারে যদি, উদাহরণস্বরূপ, একটি নির্দিষ্ট সময়সীমা এবং ন্যূনতম পরিমাণ পূরণ না হয়। + + + ক্রাউডফান্ডিং dapps গুলো দেখুন + + +#### কোয়াড্রেটিক ফান্ডিং {#quadratic-funding} + +ইথেরিয়াম হল ওপেন সোর্স সফ্টওয়্যার এবং এখনও পর্যন্ত অনেক কাজ কমিউনিটি দ্বারা অর্থায়ন করা হয়েছে। এটি একটি আকর্ষণীয় নতুন অর্থ সংগ্রহের মডেলের বৃদ্ধির দিকে পরিচালিত করেছে: কোয়াড্রেটিক ফান্ডিং। This has the potential to improve the way we fund all types of public goods in the future. + +Quadratic funding makes sure that the projects that receive the most funding are those with the most unique demand. In other words, projects that stand to improve the lives of the most people. এটি কীভাবে কাজ করে তার ব্যাখ্যা দেওয়া হল: + +1. অনুদানকৃত ফান্ডের একটি ম্যাচিং পুল আছে। +2. পাবলিক ফান্ডিং এর একটি রাউন্ড শুরু হয়। +3. লোকেরা কিছু অর্থ দান করে একটি প্রকল্পের জন্য তাদের চাহিদার সংকেত দিতে পারে। +4. একবার রাউন্ড শেষ হয়ে গেলে, ম্যাচিং পুলটি প্রকল্পগুলিতে বিতরণ করা হয়। যাদের সবচেয়ে অনন্য চাহিদা তারা ম্যাচিং পুল থেকে সর্বোচ্চ পরিমাণ পান। + +এর মানে হচ্ছে, B-এর 10,000 ডলারের একটি অনুদানের তুলনায় প্রজেক্ট A-এর 1 ডলারের 100টি অনুদানে শেষ পর্যন্ত বেশি পরিমাণে অর্থ জমা হতে পারে (মেচিং পুলের আকারের উপরে ভিত্তি করে)। + +[কোয়াড্রেটিক ফান্ডিং সম্পর্কে আরো](https://wtfisqf.com) + + + +### বীমা {#insurance} + +বিকেন্দ্রীভূত বীমার লক্ষ্য বীমা সস্তা, দ্রুত পরিশোধ করা এবং আরও স্বচ্ছ করা। আরো অটোমেশনের সহায়তায়, কভারেজ আরো সাশ্রয়ী এবং পে-আউটগুলি অনেক দ্রুত হয়ে উঠে। আপনার দাবির সিদ্ধান্ত নিতে ব্যবহৃত ডেটা সম্পূর্ণ স্বচ্ছ। + +যেকোন সফ্টওয়্যারের মতো ইথেরিয়াম পণ্যগুলি বাগ এবং শোষণের শিকার হতে পারে। তাই এই মুহূর্তে এই ক্ষেত্রে প্রচুর বীমা পণ্য তাদের ব্যবহারকারীদের তহবিলের ক্ষতি থেকে রক্ষা করার উপর ফোকাস করে। যাইহোক, জীবন আমাদের দিকে এগিয়ে দিতে পারে এমন সবকিছুর জন্য কভারেজ তৈরি করতে শুরু করা প্রকল্প রয়েছে। এর একটি ভাল উদাহরণ হল Etherisc এর ক্রপ কভার যার লক্ষ্য [খরা এবং বন্যা থেকে কেনিয়ার ক্ষুদ্র কৃষকদের রক্ষা করুন](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc)। বিকেন্দ্রীভূত বীমা কৃষকদের জন্য সস্তা কভার প্রদান করতে পারে যাদের প্রায়শই প্রথাগত বীমার বাইরে মূল্য দেওয়া হয়। + + + বীমা dapps গুলো দেখুন + + + + +### এগ্রিগেটর এবং পোর্টফোলিও ম্যানেজার সমূহ {#aggregators} + +এত কিছু করার সাথে, আপনার সমস্ত বিনিয়োগ, ঋণ এবং ব্যবসার ট্র্যাক রাখার জন্য আপনার একটি উপায় প্রয়োজন। অনেকগুলি পণ্য রয়েছে যা আপনাকে আপনার সমস্ত DeFi কার্যকলাপকে এক জায়গা থেকে সমন্বয় করতে দেয়। এটি DeFi এর উন্মুক্ত আর্কিটেকচারের সৌন্দর্য। দলগুলো এমন ইন্টারফেস তৈরি করতে পারে যেখানে আপনি কেবল পণ্য জুড়ে আপনার ব্যালেন্স দেখতে পাবেন না, আপনি তাদের বৈশিষ্ট্যগুলিও ব্যবহার করতে পারেন। আপনি DeFi এর আরও এক্সপ্লোর করার সাথে সাথে এটি দরকারী বলে মনে হতে পারে। + + + পোর্টফোলিও dapps সমূহ দেখুন + + + + +## DeFi কিভাবে কাজ করে? {#how-defi-works} + +DeFi ক্রিপ্টোকারেন্সি এবং স্মার্ট কন্ট্রাক্ট ব্যবহার করে এমন পরিষেবা প্রদান করতে যেগুলির মধ্যস্থতাকারীদের প্রয়োজন নেই। আজকের আর্থিক বিশ্বে, আর্থিক প্রতিষ্ঠানগুলি লেনদেনের গ্যারান্টার হিসাবে কাজ করে। এটি এই প্রতিষ্ঠানগুলিকে প্রচুর শক্তি দেয় কারণ আপনার অর্থ তাদের মাধ্যমে প্রবাহিত হয়। এছাড়াও বিশ্বের কোটি কোটি মানুষ এমনকি একটি ব্যাঙ্ক অ্যাকাউন্ট অ্যাক্সেস করতে পারে না। + +DeFi-এ, একটি স্মার্ট কন্ট্র্যাক্ট লেনদেনে আর্থিক প্রতিষ্ঠানকে প্রতিস্থাপন করে। একটি স্মার্ট কন্ট্র্যাক্ট হলো এক ধরনের ইথেরিয়াম অ্যাকাউন্ট যা ফান্ড ধরে রাখতে পারে এবং নির্দিষ্ট শর্তের ভিত্তিতে সেগুলি পাঠাতে/ফেরত দিতে পারে। লাইভ থাকাকালীন কেউ সেই স্মার্ট কন্ট্র্যাক্টটি পরিবর্তন করতে পারে না – এটি সর্বদা যেভাবে প্রোগ্রাম করা করা হয়েছে সেভাবে চলবে। + +কোন একটি ভাতা বা পকেট মানি দেওয়ার জন্য ডিজাইন করা একটি কন্ট্র্যাক্ট প্রতি শুক্রবার অ্যাকাউন্ট A থেকে অ্যাকাউন্ট B-তে টাকা পাঠানোর জন্য প্রোগ্রাম করা যেতে পারে। এবং যতক্ষণ না অ্যাকাউন্ট A-তে প্রয়োজনীয় ফান্ড থাকে ততক্ষণ এটি কেবল তা করবে। ফান্ড চুরি করার জন্য কেউ কন্ট্র্যাক্ট পরিবর্তন করতে এবং প্রাপক হিসাবে অ্যাকাউন্ট C যোগ করতে পারে না। + +তদারকি এবং নিরীক্ষা করার জন্য কনট্র্যাক্টগুলোও সার্বজনীন। এর অর্থ হল খারাপ কনট্র্যাক্টগুলি প্রায়শই কমিউনিটির যাচাইয়ের অধীনে খুব দ্রুত আসবে। + +এর অর্থ এই যে বর্তমানে ইথেরিয়াম কমিউনিটির আরও প্রযুক্তিগত সদস্যদের বিশ্বাস করার প্রয়োজন রয়েছে যারা কোড পড়তে পারে। ওপেন-সোর্স ভিত্তিক কমিউনিটি ডেভেলপারদের নিয়ন্ত্রণে রাখতে সাহায্য করে, কিন্তু সময়ের সাথে সাথে এই প্রয়োজনীয়তা হ্রাস পাবে কারণ স্মার্ট কনট্র্যাক্টগুলি পড়া সহজ হয়ে যায় এবং কোডের বিশ্বাসযোগ্যতা প্রমাণ করার অন্যান্য উপায় তৈরি করা হয়। + +## ইথেরিয়াম এবং DeFi {#ethereum-and-defi} + +ইথেরিয়াম বিভিন্ন কারণে DeFi-এর জন্য নিখুঁত ভিত্তি: + +- কেউ ইথেরিয়াম বা এটিতে থাকা স্মার্ট কনট্র্যাক্টের মালিক নয় – এটি প্রত্যেককে DeFi ব্যবহার করার সুযোগ দেয়। এর মানে এই যে কেউ আপনার ক্ষেত্রে নিয়ম পরিবর্তন করতে পারবেন না। +- DeFi পণ্যগুলি পর্দার আড়ালে একই ভাষায় কথা বলে: ইথেরিয়াম। এর মানে অনেক পণ্য নির্বিঘ্নে একসাথে কাজ করে। আপনি একটি প্ল্যাটফর্মে টোকেন ধার দিতে পারেন এবং সম্পূর্ণ ভিন্ন অ্যাপ্লিকেশনে একটি ভিন্ন বাজারে সুদ বহনকারী টোকেন বিনিময় করতে পারেন। এটি আপনার ব্যাঙ্কে লয়্যালটি পয়েন্ট নগদ করতে পারার মতো। +- টোকেন এবং ক্রিপ্টোকারেন্সি ইথেরিয়াম-এ, একটি শেয়ার্ড লেজারে, তৈরি করা হয় – লেনদেন এবং মালিকানার ট্র্যাক রাখা কিছুটা ইথেরিয়ামের বিষয়বস্তু। +- ইথেরিয়াম সম্পূর্ণ আর্থিক স্বাধীনতার অনুমতি দেয় - বেশিরভাগ পণ্য কখনই আপনার তহবিলের হেফাজত করবে না, নিয়ন্ত্রণ আপনার কাছেই থাকবে। + +আপনি লেয়ারসমূহে DeFi এর কথা ভাবতে পারেন: + +1. ব্লকচেইন – ইথেরিয়ামে লেনদেনের ইতিহাস এবং অ্যাকাউন্টের অবস্থা ধারন করে। +2. সম্পদ – [ETH](/eth/) এবং অন্যান্য টোকেনগুলো (মুদ্রাসমূহ)। +3. প্রোটোকল - [স্মার্ট কনট্র্যাক্ট](/glossary/#smart-contract) যাকিনা কার্যকারিতা প্রদান করে, উদাহরণস্বরূপ, একটি পরিষেবা যা সম্পদের বিকেন্দ্রীভূত ঋণের অনুমতি দেয়। +4. [অ্যাপ্লিকেশানগুলো](/dapps/) – প্রোটোকলগুলি পরিচালনা এবং অ্যাক্সেস করতে আমরা যে পণ্যগুলি ব্যবহার করি। + +## DeFi তৈরি করুন {#build-defi} + +DeFi একটি ওপেন সোর্স মুভমেন্ট। আপনার জন্য DeFi প্রোটোকলসমূহ এবং অ্যাপ্লিকেশনগুলি যাচাই, ফর্ক ও উদ্ভাবনের জন্য উন্মুক্ত। এই স্তরযুক্ত স্ট্যাকের কারণে (তারা সবাই একই বেস ব্লকচেইন এবং সম্পদ ভাগাভাগি করে), প্রোটোকলগুলি মিশ্রিত করা যেতে পারে এবং অনন্য কম্বো সুযোগগুলি আনলক করতে মিলিত হতে পারে। + + + Dapps তৈরি সম্পর্কে আরো + + +## Further reading {#futher-reading} + +### DeFi ডেটা {#defi-data} + +- [DeFi Prime](https://defiprime.com/) +- [DeFi Llama](https://defillama.com/) +- [DeFi Rate](https://defirate.com/) + +### DeFi আর্টিকেল {#defi-articles} + +- [DeFi-এর জন্য একটি শিক্ষানবিস গাইড](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, ৬ জানুয়ারি, 2020_ + +### Videos {#videos} + +- [Finematics - বিকেন্দ্রীভূত আর্থিক শিক্ষা](https://finematics.com/) – _DeFi এর উপর ভিডিও_ +- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _DeFi বেসিকস: এই বিস্তর পরিসীমাযুক্ত বিস্ময়কর স্থানে শুরু করার জন্য আপনার যা যা জানা প্রয়োজন।_ +- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _DeFi কি?_ + +### কমিউনিটিগুলো {#communities} + +- [DeFi Llama Discord সার্ভার](https://discord.gg/buPFYXzDDd) +- [DeFi Pulse Discord সার্ভার](https://discord.gg/Gx4TCTk) diff --git a/public/content/translations/bn/desci/index.md b/public/content/translations/bn/desci/index.md new file mode 100644 index 00000000000..70d6d739cd7 --- /dev/null +++ b/public/content/translations/bn/desci/index.md @@ -0,0 +1,139 @@ +--- +title: বিকেন্দ্রীভূত বিজ্ঞান (DeSci) +description: ইথেরিয়ামে বিকেন্দ্রীভূত বিজ্ঞানের একটি ওভারভিউ +lang: bn +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: একটি বিশ্বব্যাপী, বর্তমান বৈজ্ঞানিক ব্যবস্থার উন্মুক্ত বিকল্প। +summaryPoint2: প্রযুক্তি যা বিজ্ঞানীদের তহবিল সংগ্রহ করতে, পরীক্ষা চালাতে, ডেটা শেয়ার করতে, ইনসাইটস বিতরণ করতে এবং আরও অনেক কিছু করতে সক্ষম করে। +summaryPoint3: উন্মুক্ত বিজ্ঞান আন্দোলন গড়ে তোলে। +--- + +## বিকেন্দ্রীভূত বিজ্ঞান (DeSci) কী? {#what-is-desci} + +বিকেন্দ্রীভূত বিজ্ঞান (DeSci) হলো একটি আন্দোলন যার লক্ষ্য হল Web3 স্ট্যাক ব্যবহার করে বৈজ্ঞানিক জ্ঞানকে ন্যায্যভাবে এবং ন্যায়সঙ্গতভাবে অর্থায়ন, নির্মাণ, পর্যালোচনা, ক্রেডিটং, সঞ্চয় এবং প্রচারের জন্য পাবলিক অবকাঠামো তৈরি করা। + +DeSci একটি ইকোসিস্টেম তৈরি করার লক্ষ্য রাখে যেখানে বিজ্ঞানীরা তাদের গবেষণা খোলাখুলিভাবে শেয়ার করতে এবং তাদের কাজের জন্য কৃতিত্ব পাওয়ার জন্য উৎসাহিত করা হয় এবং যেকেউ সহজেই গবেষণায় অ্যাক্সেস এবং অবদান রাখতে দেয়। DeSci এই ধারণাটি নিয়ে কাজ করে দেয় যে বৈজ্ঞানিক জ্ঞান সবার কাছে অ্যাক্সেসযোগ্য হওয়া উচিত এবং বৈজ্ঞানিক গবেষণার প্রক্রিয়াটি স্বচ্ছ হওয়া উচিত। DeSci একটি আরও বিকেন্দ্রীভূত এবং বিতরণ করা বৈজ্ঞানিক গবেষণা মডেল তৈরি করছে, এটি কেন্দ্রীয় কর্তৃপক্ষের সেন্সরশিপ এবং নিয়ন্ত্রণের বিরুদ্ধে আরও প্রতিরোধী করে তুলেছে। DeSci এমন একটি পরিবেশ তৈরি করার আশা করে যেখানে নতুন এবং অপ্রচলিত ধারণাগুলি অর্থায়ন, বৈজ্ঞানিক টুলস এবং যোগাযোগের চ্যানেলগুলিতে অ্যাক্সেসকে বিকেন্দ্রীকরণ করে বিকাশ লাভ করতে পারে। + +বিকেন্দ্রীভূত বিজ্ঞান আরও বিভিন্ন তহবিল উৎসের অনুমতি দেয় ([DAO](/dao/) থেকে, ক্রাউডফান্ডিং এবং আরও অনেক কিছুর জন্য [কোয়াড্রেটিক ডোনেশন সমূহ](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531)), আরও অ্যাক্সেসযোগ্য অতিরিক্ত ডেটা ও পদ্ধতিগুলো, এবং পুনঃউৎপাদন ক্ষমতার জন্য প্রণোদনা প্রদান করে। + +### জুয়ান বেনেট - DeSci আন্দোলন + + + +## কিভাবে DeSci বিজ্ঞানের উন্নতি করে {#desci-improves-science} + +বিজ্ঞানের মূল সমস্যাগুলির একটি অসম্পূর্ণ তালিকা এবং কীভাবে বিকেন্দ্রীভূত বিজ্ঞান এই সমস্যাগুলি সমাধান করতে সাহায্য করতে পারে + +| **বিকেন্দ্রীভূত বিজ্ঞান** | **প্রথাগত বিজ্ঞান** | +| -------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | +| ফান্ডের বন্টন জনসাধারণের দ্বারা নির্ধারিত হয় কোয়াড্রেটিক ডোনেশনস বা DAO এর মতো মেকানিজম ব্যবহার করে। | ছোট, বন্ধ, কেন্দ্রীভূত গোষ্ঠীগুলি ফান্ডের বিতরণ নিয়ন্ত্রণ করে। | +| আপনি গতিশীল দলে সারা বিশ্ব থেকে সহকর্মীদের সাথে সহযোগিতা করেন। | অর্থায়ন সংস্থা এবং হোম প্রতিষ্ঠানগুলি আপনার সহযোগিতাকে সীমিত করে। | +| অর্থায়নের সিদ্ধান্তগুলি অনলাইনে এবং স্বচ্ছভাবে নেওয়া হয়। নতুন ফান্ডিং মেকানিজমসমূহ এক্সপ্লোর করা হয়। | অর্থায়নের সিদ্ধান্তগুলি দীর্ঘ অনুমোদন সময় এবং সীমিত স্বচ্ছতার সাথে নেওয়া হয়। কিছু ফান্ডিং মেকানিজমস বিদ্যমান। | +| Web3-এর মৌলিক বিষয়সমূহ ব্যবহার করে ল্যাবরেটরি পরিষেবাগুলি শেয়ার করা সহজতর এবং আরও স্বচ্ছ করা হয়েছে। | ল্যাবরেটরি রিসোর্সগুলো শেয়ার করা প্রায়ই ধীর এবং অস্বচ্ছ হয়। | +| প্রকাশের জন্য নতুন মডেল তৈরি করা যেতে পারে যা বিশ্বাস, স্বচ্ছতা এবং সর্বজনীন অ্যাক্সেসের জন্য Web3 প্রিমিটিভস ব্যবহার করে। | আপনি প্রায়শই অদক্ষ, পক্ষপাতদুষ্ট এবং শোষণমূলক হিসাবে স্বীকৃত প্রতিষ্ঠিত পথের মাধ্যমে প্রকাশ করেন। | +| আপনি পিয়ার-পর্যালোচনার কাজের জন্য টোকেন এবং খ্যাতি অর্জন করতে পারেন। | আপনার পিয়ার-রিভিউ কাজ অবৈতনিক, লাভজনক প্রকাশকদের উপকার করে। | +| আপনি যে ইন্টেলেকচুয়াল প্রপার্টি (IP) তৈরি করেন তার মালিক এবং স্বচ্ছ শর্তাবলী অনুসারে এটি বিতরণ করেন। | আপনি যে IP তৈরি করেন তার মালিক আপনার হোম প্রতিষ্ঠান। IP অ্যাক্সেস স্বচ্ছ নয়। | +| সমস্ত গবেষণা শেয়ার করা, যার মধ্যে অসফল প্রচেষ্টার ডেটা সহ, সমস্ত ধাপগুলি অন-চেইন করে। | প্রকাশনার পক্ষপাতের মানে হল যে গবেষকরা সফল ফলাফলের জন্য পরীক্ষাগুলি শেয়ার করার সম্ভাবনা বেশি। | + +## ইথেরিয়াম এবং DeSci {#ethereum-and-desci} + +একটি বিকেন্দ্রীভূত বিজ্ঞান ব্যবস্থার জন্য প্রয়োজন হবে শক্তিশালী নিরাপত্তা, মিনিমাল মনেটারি এবং লেনদেন খরচসমূহ এবং অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য একটি সমৃদ্ধ ইকোসিস্টেম। ইথেরিয়াম একটি বিকেন্দ্রীভূত বিজ্ঞান স্ট্যাক নির্মাণের জন্য প্রয়োজনীয় সবকিছু প্রদান করে। + +## DeSci ব্যবহার ক্ষেত্র সমূহ {#use-cases} + +ডিজিটাল পৃথিবীতে Web2 অ্যাকাডেমিয়া অনবোর্ড করার জন্য DeSci সায়েন্টিফিক টুলসেট তৈরি করছে। নীচে ব্যবহারের ক্ষেত্রে একটি নমুনা দেওয়া হল যা Web3 বৈজ্ঞানিক সম্প্রদায়কে অফার করতে পারে। + +### প্রকাশনা {#publishing} + +বিজ্ঞান প্রকাশনা বিখ্যাতভাবে সমস্যাযুক্ত কারণ এটি প্রকাশনা সংস্থাগুলির দ্বারা পরিচালিত হয় যেগুলি গবেষণাপত্র তৈরি করতে বিজ্ঞানী, পর্যালোচনাকারী এবং সম্পাদকদের বিনামূল্যে শ্রমের উপর নির্ভর করে কিন্তু তারপরে অতিরিক্ত প্রকাশনা ফি চার্জ করে। জনসাধারণ, যারা সাধারণত পরোক্ষভাবে কাজের জন্য এবং প্রকাশনার খরচ ট্যাক্সের মাধ্যমে পরিশোধ করে থাকে, তারা প্রায়শই প্রকাশককে আবার অর্থ প্রদান না করে একই কাজ অ্যাক্সেস করতে পারে না। স্বতন্ত্রভাবে বিজ্ঞানের গবেষণাপত্র প্রকাশের জন্য মোট ফি প্রায়ই পাঁচ অঙ্কের ($USD) হয়, যা প্রকাশকদের একটি ছোট গ্রুপের জন্য প্রচুর মুনাফা তৈরি করে এবং একটি [পাবলিক গুড](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} + +অর্থায়ন বিজ্ঞানের বর্তমান আদর্শ মডেল হল যে ব্যক্তি বা বিজ্ঞানীদের দল একটি অর্থায়ন সংস্থার কাছে লিখিত আবেদন করে। বিশ্বস্ত ব্যক্তিদের একটি ছোট প্যানেল আবেদনগুলি স্কোর করে এবং তারপর আবেদনকারীদের একটি ছোট অংশকে ফান্ড দেওয়ার আগে প্রার্থীদের সাক্ষাৎকার নেয়। অনুদানের জন্য আবেদন করা এবং প্রাপ্তির মধ্যে বাধা সৃষ্টি করা ছাড়াও যা কখনও কখনও বছরের পর বছর অপেক্ষা করে, স্বার্থ এবং রাজনীতির জন্য অত্যন্ত ঝুঁকিপূর্ণ বলে পরিচিত। + +গবেষণায় দেখা গেছে যে অনুদান পর্যালোচনা প্যানেলগুলি উচ্চ-মানের প্রস্তাবগুলি নির্বাচনে একটি ত্রুটিপূর্ণ কাজ করে কারণ বিভিন্ন প্যানেলে দেওয়া একই প্রস্তাবগুলির সম্পূর্ণ ভিন্ন ফলাফল রয়েছে। যেহেতু তহবিল আরও দুষ্প্রাপ্য হয়ে উঠেছে, এটি আরও বুদ্ধিবৃত্তিকভাবে রক্ষণশীল প্রকল্পের সাথে আরও সিনিয়র গবেষকদের একটি ছোট পুলে কেন্দ্রীভূত হয়েছে। প্রভাবটি একটি অতি-প্রতিযোগীতামূলক অর্থায়নের ল্যান্ডস্কেপ তৈরি করেছে, বিকৃত প্রণোদনা এবং উদ্ভাবনকে দমিয়ে দিয়েছে। + +DAO এবং Web3 ব্যাপকভাবে তৈরি করা বিভিন্ন প্রণোদনা মডেল নিয়ে পরীক্ষা-নিরীক্ষা করে 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) a> এবং [টোকেনাইজড ইনসেনটিভ স্ট্রাকচার](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) হল কিছু Web3 টুলস যা বিজ্ঞানের অর্থায়নে বিপ্লব ঘটাতে পারে। + +### IP মালিকানা এবং উন্নয়ন {#ip-ownership} + +বুদ্ধিবৃত্তিক সম্পত্তি (IP) গতানুগতিক বিজ্ঞানের একটি বড় সমস্যা: বিশ্ববিদ্যালয়গুলিতে আটকে থাকা থেকে বা বায়োটেকগুলিতে অব্যবহৃত হওয়া, মূল্যায়ন হতে খুবই কঠিন। যাইহোক, ডিজিটাল সম্পদের মালিকানা (যেমন বৈজ্ঞানিক ডেটা বা নিবন্ধ) হল যা কিছু Web3 অসাধারণভাবে [নন-ফাঞ্জিবল টোকেন (NFT)](/nft/) ব্যবহার করে। + +যেভাবে NFT ভবিষ্যতের লেনদেনের জন্য মূল নির্মাতার কাছে মুনাফা পাঠাতে পারে, আপনি গবেষক, গভর্নিং বডিস (যেমন DAO) বা এমনকি যাদের ডেটা সংগ্রহ করা হয়েছে তাদের পুরস্কৃত করার জন্য আপনি স্বচ্ছ মান অ্যাট্রিবিউশন চেইন স্থাপন করতে পারেন। + +[IP-NFT](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) গৃহীত গবেষণা পরীক্ষাগুলির একটি বিকেন্দ্রীকৃত ডেটা ভান্ডারের চাবিকাঠি হিসাবেও কাজ করতে পারে এবং NFT এবং [DeFi](/defi/) আর্থিককরণ (ভগ্নাংশ থেকে ঋণ পুল এবং মূল্য মূল্যায়ন পর্যন্ত) প্লাগ করতে পারে। এছাড়াও এটি নেটিভভাবে অন-চেইন সত্তা যেমন DAO এর মতো [VitaDAO](https://www.vitadao.com/) কে সরাসরি অন-চেইনে গবেষণা পরিচালনা করার অনুমতি দেয়। অ-হস্তান্তরযোগ্য ["সোলবাউন্ড" টোকেন](https://vitalik.ca/general/2022/01/26/soulbound.html)এর আবির্ভাব DeSci তে গুরুত্বপূর্ণ ভূমিকা পালন করতে পারে ব্যক্তিদের তাদের ইথেরিয়াম ঠিকানার সাথে যুক্ত তাদের অভিজ্ঞতা এবং প্রমাণপত্রাদি প্রমাণ করার অনুমতি দিয়ে। + +### ডেটা স্টোরেজ, অ্যাক্সেস এবং আর্কিটেকচার {#data-storage} + +Web3 প্যাটার্ন ব্যবহার করে বৈজ্ঞানিক ডেটা আরও বেশি অ্যাক্সেসযোগ্য করা যেতে পারে এবং বিতরণ করা স্টোরেজ বিপর্যয়মূলক ঘটনা থেকে বাঁচতে গবেষণাকে সক্ষম করে। + +শুরুর জায়গা অবশ্যই একটি সিস্টেম হতে হবে যা সঠিক যাচাইযোগ্য শংসাপত্র ধারণ করে কোনো বিকেন্দ্রীভূত পরিচয় দ্বারা অ্যাক্সেসযোগ্য। এটি সংবেদনশীল ডেটা বিশ্বস্ত পক্ষগুলির দ্বারা সুরক্ষিতভাবে প্রতিলিপি করার অনুমতি দেয়, অপ্রয়োজনীয়তা এবং সেন্সরশিপ প্রতিরোধ, ফলাফলের পুনঃউৎপাদন এবং এমনকি একাধিক পক্ষের সহযোগিতা এবং ডেটাসেটে নতুন ডেটা যোগ করার ক্ষমতা সক্ষম করে। [কম্পিউট-টু-ডেটা](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 ডেটা সলিউশন উপরের পরিস্থিতিগুলিকে সমর্থন করে এবং সত্যিকারের ওপেন সায়েন্সের ভিত্তি প্রদান করে, যেখানে গবেষকরা অ্যাক্সেসের অনুমতি বা ফি ছাড়াই পাবলিক পণ্য তৈরি করতে পারেন। Web3 পাবলিক ডেটা সলিউশন যেমন IPFS, Arweave এবং Filecoin বিকেন্দ্রীকরণের জন্য অপ্টিমাইজ করা হয়েছে। dClimate, উদাহরণস্বরূপ, আবহাওয়া স্টেশন এবং ভবিষ্যদ্বাণীমূলক জলবায়ু মডেল সহ জলবায়ু ও আবহাওয়া ডেটাতে সর্বজনীন অ্যাক্সেস প্রদান করে। + +## যুক্ত হোন {#get-involved} + +প্রকল্পগুলি ঘুরে দেখুন করুন এবং DeSci কমিউনিটিতে যোগ দিন। + +- [DeSci.Global: গ্লোবাল ইভেন্ট এবং মিটআপ ক্যালেন্ডার](https://desci.global) +- [বিজ্ঞান টেলিগ্রামের জন্য ব্লকচেইন](https://t.me/BlockchainForScience) +- [মলিকিউল: আপনার গবেষণা প্রকল্পগুলোর জন্য অর্থ প্রদান করুন এবং অর্থ পান](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 ফাউন্ডেশন: DeSci প্রকাশনা টুল নির্মাতা](https://descifoundation.org/) +- [DeSci.World: ব্যবহারকারীদের দেখার জন্য, বিকেন্দ্রীভূত বিজ্ঞানের সাথে জড়িত থাকার ওয়ান-স্টপ শপ](https://desci.world) +- [ফ্লেমিং প্রোটোকল: ওপেন-সোর্স ডেটা ইকোনমি যা সহযোগিতামূলক বায়োমেডিকাল আবিষ্কারকে জ্বালানী দেয়](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [OceanDAO: DAO পরিচালিত ডাটা-সম্পর্কিত বিজ্ঞানের জন্য অর্থায়ন](https://oceanprotocol.com/dao) +- [অপসায়েন্টিয়া: উন্মুক্ত বিকেন্দ্রীভূত বিজ্ঞান কর্মপ্রবাহ](https://opsci.io/research/) +- [LabDAO: সিলিকোতে একটি প্রোটিন ভাঁজ করুন](https://alphafodl.vercel.app/) +- [Bio.xyz: আপনার বায়োটেক DAO বা desci প্রকল্পের জন্য অর্থায়ন পান](https://www.molecule.to/) +- [ResearchHub: একটি বৈজ্ঞানিক ফলাফল পোস্ট করুন এবং সহকর্মীদের সাথে কথোপকথনে নিযুক্ত হন](https://www.researchhub.com/) +- [VitaDAO: দীর্ঘায়ু গবেষণার জন্য স্পনসরড গবেষণা চুক্তির মাধ্যমে অর্থায়ন পান](https://www.vitadao.com/) +- [ফ্লেমিং প্রোটোকল: ওপেন-সোর্স ডেটা ইকোনমি যা সহযোগিতামূলক বায়োমেডিকাল আবিষ্কারকে জ্বালানী দেয়](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/) +- [DeSci ল্যাবস](https://www.desci.com/) + +আমরা তালিকাভুক্ত নতুন প্রকল্পগুলির জন্য পরামর্শগুলিকে স্বাগত জানাই - শুরু করতে অনুগ্রহ করে আমাদের [তালিকা নীতি](/contributing/adding-desci-projects/) দেখুন! + +## Further reading {#further-reading} + +- [জোসেলিন পার্ল এবং আল্ট্রারেয়ার দ্বারা DeSci উইকি](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) +- [একটি a16z ভবিষ্যতের জন্য Jocelynn Pearl এর বিকেন্দ্রীভূত বায়োটেকের একটি নির্দেশিকা](https://future.a16z.com/a-guide-to-decentralized-biotech/) +- [DeSci এর জন্য ক্ষেত্র](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) +- [DeSci-এর নির্দেশিকা](https://future.com/what-is-decentralized-science-aka-desci/) +- [বিকেন্দ্রীকৃত বিজ্ঞান রিসোর্সসমূহ](https://www.vincentweisser.com/decentralized-science) +- [মলিকিউলের বায়োফার্মা IP-NFT - একটি প্রযুক্তিগত বর্ণনা](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) +- [জন স্টারের তৈরি করা বিজ্ঞানের বিশ্বাসহীন সিস্টেম](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) +- [বায়োটেক DAO-এর উত্থান](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) +- [DeSci: স্যামুয়েল আকিনোশোর দ্য ফিউচার অফ রিসার্চ](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) +- [নাদিয়ার সায়েন্স ফান্ডিং (এপিলগ: DeSci এবং নতুন ক্রিপ্টো প্রিমিটিভস)](https://nadia.xyz/science-funding) +- [বিকেন্দ্রীকরণ ওষুধের বিকাশকে ব্যাহত করছে](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) + +### Videos {#videos} + +- [বিকেন্দ্রীভূত বিজ্ঞান কী?](https://www.youtube.com/watch?v=-DeMklVWNdA) +- [দীর্ঘায়ু গবেষণা এবং ক্রিপ্টো এর সমন্বয় সম্পর্কে Vitalik বুটেরিন এবং বিজ্ঞানীঅব্রে ডি গ্রের মধ্যে কথোপকথন](https://www.youtube.com/watch?v=x9TSJK1widA) +- [বৈজ্ঞানিক প্রকাশনা ভেঙ্গে গেছে। Web3 এটা ঠিক করতে পারে?](https://www.youtube.com/watch?v=WkvzYgCvWj8) +- [জুয়ান বেনেট - DeSci, ইনডিপেনডেন্ট ল্যাবস, & বড় আকারের ডেটা সায়েন্স](https://www.youtube.com/watch?v=zkXM9H90g_E) +- [সেবাস্তিয়ান ব্রুনেমিয়ার - কিভাবে DeSci বায়োমেডিকাল গবেষণাকে রূপান্তর করতে পারে & ভেঞ্চার ক্যাপিটাল](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/bn/enterprise/index.md b/public/content/translations/bn/enterprise/index.md similarity index 100% rename from src/content/translations/bn/enterprise/index.md rename to public/content/translations/bn/enterprise/index.md diff --git a/src/content/translations/bn/eth/index.md b/public/content/translations/bn/eth/index.md similarity index 100% rename from src/content/translations/bn/eth/index.md rename to public/content/translations/bn/eth/index.md diff --git a/public/content/translations/bn/nft/index.md b/public/content/translations/bn/nft/index.md new file mode 100644 index 00000000000..57f8be65985 --- /dev/null +++ b/public/content/translations/bn/nft/index.md @@ -0,0 +1,94 @@ +--- +title: নন-ফাঞ্জিবল টোকেন (NFT) +description: ইথেরিয়াম এ NFT এর একটি সংক্ষিপ্ত বিবরণী +lang: bn +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: হলোগ্রামের মাধ্যমে একটি Eth লোগো ডিসপ্লে করা হচ্ছে।. +summaryPoint1: একটি ইথেরিয়াম-ভিত্তিক সম্পদ হিসেবে অনন্য কিছু উপস্থাপন করার একটি উপায়। +summaryPoint2: NFT কন্টেন্ট নির্মাতাদের আগের চেয়ে আরও ক্ষমতা দিচ্ছে। +summaryPoint3: ইথেরিয়াম ব্লকচেইনে স্মার্ট কন্ট্র্যাক্ট দ্বারা চালিত। +--- + +## What are NFTs? {#what-are-nfts} + +NFT হল টোকেন যারা প্রত্যেকে অনন্য। প্রতিটি NFT এর আলাদা বৈশিষ্ট্য রয়েছে (নন-ফাঞ্জিবল) এবং সম্ভবত দুষ্প্রাপ্য। এটি ERC-20 এর মতো টোকেন থেকে ভিন্ন যেখানে একটি সেটের প্রতিটি টোকেন অভিন্ন এবং একই বৈশিষ্ট্য রয়েছে ('ফাঞ্জিবল')। আপনার ওয়ালেট এ কোন নির্দিষ্ট ডলারের বিল আছে তা নিয়ে আপনি ভাবেন না, কারণ সেগুলি সবই অভিন্ন এবং একই মূল্যের। যাইহোক, আপনি কোন নির্দিষ্ট NFT এর মালিক তা আপনি কেয়ার _করেন_, কারণ তাদের সকলেরই স্বতন্ত্র বৈশিষ্ট্য রয়েছে যা তাদের অন্যদের থেকে আলাদা করে ('নন-ফাঞ্জিবল')। + +প্রতিটি NFT এর স্বতন্ত্রতা শিল্প, সংগ্রহযোগ্য বা এমনকি আবাসন এর মতো জিনিসগুলির টোকেনাইজেশন সক্ষম করে, যেখানে একটি নির্দিষ্ট অনন্য NFT কিছু নির্দিষ্ট অনন্য বাস্তব জাগতিক বা ডিজিটাল আইটেমকে প্রতিনিধিত্ব করে। কোন সম্পদের মালিকানা ইথেরিয়াম ব্লকচেইন দ্বারা সুরক্ষিত – কেউ মালিকানার রেকর্ড পরিবর্তন করতে বা একটি নতুন NFT কে বিদ্যমান কোনটিতে কপি/পেস্ট করতে পারে না। + + + +## সম্পদ বণ্টনের ক্ষেত্রে ইন্টারনেটের ব্যবহার {#internet-of-assets} + +NFT এবং ইথেরিয়াম বর্তমানে ইন্টারনেটে বিদ্যমান কিছু সমস্যার সমাধান করে। যেহেতু সবকিছু আরও ডিজিটাল হয়ে উঠছে, তাই ঘাটতি, স্বতন্ত্রতা এবং মালিকানার প্রমাণের মতো ফিজিক্যাল আইটেমগুলির বৈশিষ্ট্যগুলিকে প্রতিলিপি করার প্রয়োজন রয়েছে। এমনভাবে যা একটি কেন্দ্রীয় সংস্থা দ্বারা নিয়ন্ত্রিত নয়। উদাহরণস্বরূপ, NFT-এর দ্বারা, আপনি একটি মিউজিক mp3 এর মালিক হতে পারেন যা একটি কোম্পানির নির্দিষ্ট মিউজিক অ্যাপের জন্য নির্দিষ্ট নয়, অথবা আপনি একটি সোশ্যাল মিডিয়া হ্যান্ডেলের মালিক হতে পারেন যা আপনি বিক্রি বা অদলবদল করতে পারেন, কিন্তু ইচ্ছাকৃতভাবে প্ল্যাটফর্ম প্রদানকারীর দ্বারা আপনার কাছ থেকে কেড়ে নেয়া যাবে না। + +আমাদের মধ্যে বেশিরভাগই বর্তমানে যে ইন্টারনেট ব্যবহার করে তার তুলনায় NFT-এর একটি ইন্টারনেট দেখতে কেমন তা এখানে... + +### একটি তুলনা {#nft-comparison} + +| একটি NFT ইন্টারনেট | আজকের ইন্টারনেট | +| ------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | +| আপনি আপনার সম্পদের মালিক! শুধুমাত্র আপনি সেগুলো বিক্রি বা অদলবদল করতে পারেন। | আপনি কোনো প্রতিষ্ঠান থেকে একটি সম্পদ ভাড়া করেন। | +| NFT ডিজিটালভাবে অনন্য, দুটি NFT একই নয়। | কোনো এনটিটির একটি কপি প্রায়ই আসল থেকে আলাদা করা যায় না। | +| কোনো NFT এর মালিকানা যে কেউ যাচাই করার জন্য ব্লকচেইনে সংরক্ষণ করা হয়। | ডিজিটাল আইটেমগুলোর মালিকানা রেকর্ডসমূহ প্রতিষ্ঠান দ্বারা নিয়ন্ত্রিত সার্ভারগুলিতে সংরক্ষণ করা হয় – আপনাকে অবশ্যই তাদের কথা মানতে হবে। | +| NFT হল ইথেরিয়ামে স্মার্ট কন্ট্র্যাক্ট। এর মানে এগুলি সহজেই ইথেরিয়ামে অন্যান্য স্মার্ট কন্ট্র্যাক্ট এবং অ্যাপগুলিতে ব্যবহার করা যেতে পারে! | ডিজিটাল আইটেমগুলি সহ কোম্পানিগুলির সাধারণত তাদের নিজস্ব "ওয়াল্ড গার্ডেন" অবকাঠামো প্রয়োজন। | +| কন্টেন্ট নির্মাতারা তাদের কাজ যেকোনো জায়গায় বিক্রি করতে পারে এবং একটি বিশ্ব বাজারে অ্যাক্সেস করতে পারে। | নির্মাতারা তাদের ব্যবহার করা প্ল্যাটফর্মের অবকাঠামো ও বিতরণের উপর নির্ভর করে। এগুলি প্রায়ই ব্যবহারের শর্তাবলী এবং ভৌগলিক সীমাবদ্ধতার বিষয়। | +| NFT নির্মাতারা তাদের নিজস্ব কাজের উপর মালিকানার অধিকার রাখতে পারেন, এবং প্রোগ্রামের মুনাফা সরাসরি NFT কনট্র্যাক্টে নিতে পারেন। | প্ল্যাটফর্ম, যেমন মিউজিক স্ট্রিমিং পরিষেবা, বিক্রয় থেকে লাভের সিংহভাগ ধরে রাখে। | + +## NFT কিভাবে কাজ করে? {#how-nfts-work} + +ইথেরিয়াম-এ ইস্যু করা যেকোনো টোকেনের মতো, NFT গুলো একটি স্মার্ট কন্ট্র্যাক্টের মাধ্যমে ইস্যু করা হয়। স্মার্ট কন্ট্রাক্টটি বেশ কয়েকটি NFT স্ট্যান্ডার্ডের (সাধারণত ERC-721 বা ERC-1155) একটির সাথে সঙ্গতিপূর্ণ যা সংজ্ঞায়িত করে কনট্র্যাক্টের কী কী কাজ রয়েছে। কনট্র্যাক্ট NFT তৈরি ('মিন্ট') করতে পারে এবং সেগুলো একটি নির্দিষ্ট মালিককে বরাদ্দ করতে পারে। নির্দিষ্ট ঠিকানায় নির্দিষ্ট NFT ম্যাপ করে মালিকানা কনট্র্যাক্টে সংজ্ঞায়িত করা হয়। NFT তে একটি ID থাকে এবং সাধারণত এটির সাথে সম্পর্কিত মেটাডেটা থাকে যা নির্দিষ্ট টোকেনটিকে অনন্য করে তোলে। + +যখন কেউ একটি NFT তৈরি করে বা মিন্ট করে, তারা সত্যিই স্মার্ট কন্ট্র্যাক্টে একটি ফাংশন সম্পাদন করে যা তাদের ঠিকানায় একটি নির্দিষ্ট NFT বরাদ্দ করে। এই তথ্য কনট্র্যাক্টের স্টোরেজে সংরক্ষণ করা হয়, যা ব্লকচেইনের অংশ। কনট্র্যাক্টের নির্মাতা কনট্র্যাক্টে অতিরিক্ত লজিক লিখতে পারেন, উদাহরণস্বরূপ মোট সরবরাহ সীমিত করা বা প্রতিবার একটি টোকেন স্থানান্তর করার সময় নির্মাতাকে প্রদান করা রয়্যালটি সংজ্ঞায়িত করা। + +## NFT কেন ব্যবহার করা হয়? {#nft-use-cases} + +NFT অনেক কিছুর জন্য ব্যবহার করা হয়, যার মধ্যে রয়েছে: + +- প্রমাণ করে যে আপনি একটি ইভেন্টে অংশগ্রহণ করেছেন +- প্রত্যয়িত করুন যে আপনি একটি কোর্স সম্পন্ন করেছেন +- গেমের জন্য মালিকানাধীন আইটেম +- ডিজিটাল আর্ট +- বাস্তবিক-বিশ্বের সম্পদ টোকেনাইজিং +- আপনার অনলাইন পরিচয় প্রমাণ করা +- কনটেন্টে অ্যাক্সেস পাওয়া +- টিকেট কেনা +- বিকেন্দ্রীকৃত ইন্টারনেটের ডোমেইন নাম +- DeFi এ কোলেটারেল + +হতে পারে আপনি এমন একজন শিল্পী যিনি NFT ব্যবহার করে তাদের কাজ শেয়ার করতে চান, নিয়ন্ত্রণ না হারিয়ে এবং মধ্যস্থতাকারীদের কাছে আপনার লাভ উৎসর্গ না করে। আপনি একটি নতুন কনট্র্যাক্ট তৈরি করতে পারেন এবং NFT এর সংখ্যা, তাদের বৈশিষ্ট্য এবং কিছু নির্দিষ্ট শিল্পকর্মের লিঙ্ক উল্লেখ করতে পারেন। শিল্পী হিসাবে, আপনাকে যে রয়্যালটি দিতে হবে আপনি স্মার্ট কন্ট্র্যাক্টে প্রোগ্রাম করতে পারেন (যেমন প্রতিবার NFT স্থানান্তর করার সময় চুক্তির মালিককে বিক্রয় মূল্যের 5% হস্তান্তর করুন)। আপনি সর্বদা প্রমাণ করতে পারেন যে আপনি NFT তৈরি করেছেন কারণ আপনি সেই ওয়ালেটের মালিক যে কনট্র্যাক্টটি প্রসার করেছে। আপনার ক্রেতারা সহজেই প্রমাণ করতে পারে যে তারা আপনার সংগ্রহ থেকে একটি খাঁটি NFT এর মালিক, কারণ তাদের ওয়ালেট অ্যাড্রেস আপনার স্মার্ট কন্ট্র্যাক্টে একটি টোকেনের সাথে যুক্ত। তারা ইথেরিয়াম ইকোসিস্টেম জুড়ে এটি ব্যবহার করতে পারে, এর বিশুদ্ধতা সম্পর্কে আত্মবিশ্বাসী। + +অথবা একটি ক্রীড়া ইভেন্টের একটি টিকিট বিবেচনা করুন। ঠিক যেমন একটি ইভেন্টের একজন সংগঠক কতগুলি টিকিট বিক্রি করবেন তা পছন্দ করতে পারেন, তেমনি একটি NFT-এর নির্মাতা নির্ধারণ করতে পারেন কতগুলি প্রতিলিপি বিদ্যমান। কখনও কখনও এগুলি অবিকল প্রতিলিপি হয়, যেমন 5000 সাধারণ ভর্তির টিকিট। কখনও কখনও অনেকগুলি মিন্ট করা হয় যা খুব একই রকম, তবে প্রতিটি কিছুটা আলাদা, যেমন একটি নির্ধারিত আসন সহ একটি টিকিট। এগুলি টিকিট হ্যান্ডলারদের অর্থ প্রদান না করেই পিয়ার-টু-পিয়ার কেনা এবং বিক্রি করা যেতে পারে এবং কনট্র্যাক্টের অ্যাড্রেস চেক করে ক্রেতাকে টিকিটের বিশুদ্ধতার নিশ্চয়তা দেয়। + +ethereum.org-এ, NFT ব্যবহার করা হয় তা দেখানোর জন্য যে লোকেরা আমাদের Github রেপোজিটোরিতে অবদান রেখেছে বা কল এটেন্ড করেছে, এবং এমনকি আমরা আমাদের নিজস্ব NFT ডোমেইন নামও পেয়েছি। আপনি যদি ethereum.org-এ অবদান রাখেন, আপনি একটি POAP NFT দাবি করতে পারেন। কিছু ক্রিপ্টো মিটআপে টিকেট হিসাবে POAP ব্যবহার করা হয়েছে। [অবদান সম্পর্কে আরো](/contributing/#poap)। + +![ethereum.org POAP](./poap.png) + +এই ওয়েবসাইটের একটি বিকল্প ডোমেন নামও রয়েছে যা NFT দ্বারা চালিত হয়, **ethereum.eth**। আমাদের `.org` অ্যাড্রেস কেন্দ্রীয়ভাবে একটি ডোমেন নেইম সিস্টেম (DNS) প্রদানকারী দ্বারা পরিচালিত হয়, যেখানে ethereum`.eth` ইথেরিয়াম নেইম পরিষেবা (ENS) এর মাধ্যমে ইথেরিয়াম এ নিবন্ধিত হয়। এবং এটি মালিকানাধীন এবং আমাদের দ্বারা পরিচালিত। [আমাদের ENS রেকর্ড চেক করুন](https://app.ens.domains/name/ethereum.eth) + +[ENS সম্পর্কে আরো](https://app.ens.domains) + + + +### NFT নিরাপত্তা {#nft-security} + +ইথেরিয়াম এর নিরাপত্তা প্রুফ-অফ-স্টেক থেকে আসে। সিস্টেমটি অর্থনৈতিকভাবে দূষিত ক্রিয়াকলাপকে বিচ্ছিন্ন করার জন্য ডিজাইন করা হয়েছে, যা ইথেরিয়াম টেম্পার-প্রুফ করে। এটিই NFT কে সম্ভব করে তোলে। একবার আপনার NFT লেনদেন সম্বলিত ব্লকটি চূড়ান্ত হয়ে গেলে এটি পরিবর্তন করতে আক্রমণকারীকে লক্ষ লক্ষ ETH খরচ করতে হবে। ইথেরিয়াম সফ্টওয়্যার চালানো যে কেউ অবিলম্বে একটি NFT এর সাথে অসাধু কারসাজি শনাক্ত করতে সক্ষম হবে এবং ক্ষতিকর ব্যাক্তিকে অর্থনৈতিকভাবে শাস্তি দেওয়া হবে এবং বহিষ্কার করা হবে। + +NFT-এর সাথে সম্পর্কিত নিরাপত্তা সমস্যাগুলি প্রায়শই ফিশিং স্ক্যাম, স্মার্ট কন্ট্র্যাক্টের দুর্বলতা বা ব্যবহারকারীর ত্রুটিগুলির সাথে সম্পর্কিত (যেমন অসাবধানতাবশত ব্যক্তিগত কীগুলি প্রকাশ করা), যা NFT মালিকদের জন্য ভাল ওয়ালেটের নিরাপত্তাকে গুরুত্বপূর্ণ করে তোলে। + + + নিরাপত্তা সম্পর্কে আরো + + +## Further reading {#further-reading} + +- [NFT-এর জন্য একটি শিক্ষানবিস গাইড](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, জানুয়ারি 2020_ +- [EtherscanNFT ট্র্যাকার](https://etherscan.io/nft-top-contracts) +- [ERC-721 টোকেন স্ট্যান্ডার্ড](/developers/docs/standards/tokens/erc-721/) +- [ERC-1155 টোকেন স্ট্যান্ডার্ড](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/public/content/translations/bn/refi/index.md b/public/content/translations/bn/refi/index.md new file mode 100644 index 00000000000..eab9fc250ac --- /dev/null +++ b/public/content/translations/bn/refi/index.md @@ -0,0 +1,79 @@ +--- +title: রিজেনারেটিভ ফাইনান্স (ReFi) +description: ReFi এবং এর বর্তমান ব্যবহার ক্ষেত্রের একটি সংক্ষিপ্ত বিবরণী। +lang: bn +template: use-cases +emoji: ":recycle:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: পুনঃউৎপাদনমূলক নীতির উপর নির্মিত একটি বিকল্প অর্থনৈতিক ব্যবস্থা +summaryPoint2: জলবায়ু পরিবর্তনের মতো বিশ্ব-স্তরের সমন্বয় সংকট সমাধানের জন্য ইথেরিয়ামকে কাজে লাগানোর একটি প্রচেষ্টা +summaryPoint3: যাচাইকৃত কার্বন ক্রেডিটগুলির মতো পরিবেশগত সুবিধার সম্পদগুলিকে ব্যাপকভাবে স্কেল করার একটি টুল +--- + +## ReFi কি? {#what-is-refi} + +**রিজেনারেটিভ ফাইনান্স (ReFi)** হল ব্লকচেইনের উপরে তৈরি করা টুলস এবং আইডিয়ার একটি সেট, যেগুলির উদ্দেশ্য হল এমন অর্থনীতি তৈরি করা যা এক্সট্র্যাক্টিভ বা শোষণমূলক নয়। অবশেষে, নিষ্কাশন ব্যবস্থা উপলব্ধ সংস্থানগুলিকে হ্রাস করে এবং ধসে পড়ে; রিজেনারেটিভ প্রক্রিয়া ছাড়া, তাদের সহনশীলতা অভাব রয়েছে। ReFi এই অনুমানের উপর কাজ করে যে আর্থিক মূল্যের সৃষ্টি অবশ্যই আমাদের গ্রহ এবং সম্প্রদায় থেকে সম্পদের অস্থিতিশীল নিষ্কাশন থেকে বিচ্ছিন্ন করা উচিত। + +পরিবর্তে, ReFi এর লক্ষ্য পুনঃউৎপাদন চক্র তৈরি করে পরিবেশগত, সাম্প্রদায়িক বা সামাজিক সমস্যার সমাধান করা। এই সিস্টেমগুলি একই সাথে ইকোসিস্টেম এবং কমিউনিটিগুলিকে উপকৃত করার সময় অংশগ্রহণকারীদের জন্য মূল্য তৈরি করে। + +ReFi এর অন্যতম ভিত্তি হ'ল [ক্যাপিটাল ইনস্টিউটের](https://capitalinstitute.org) জন ফুলারটন প্রবর্তিত পুনঃউৎপাদনশীল অর্থনীতির ধারণা। তিনি আটটি আন্তঃসংযুক্ত নীতি প্রস্তাব করেছিলেন যা সিস্টেমিক স্বাস্থ্যের উপর ভিত্তি করে: + +![আটটি পরস্পর সংযুক্ত নীতি](./refi-regenerative-economy-diagram.png) + +ReFi প্রকল্পগুলি [স্মার্ট কন্ট্রাক্ট](/developers/docs/smart-contracts/) এবং [বিকেন্দ্রীভূত অর্থায়ন (DeFi)](/defi/) অ্যাপ্লিকেশনগুলি ব্যবহার করে এই নীতিগুলি উপলব্ধি করে পুনরুৎপাদনমূলক আচরণগুলিকে উত্সাহিত করে, উদাহরণস্বরূপ অবনমিত ইকোসিস্টেম পুনরুদ্ধার এবং জলবায়ু পরিবর্তন এবং জীববৈচিত্র্য ক্ষতির মতো বৈশ্বিক ইস্যুতে বড় আকারের সহযোগিতাকে সহজতর করে। + +ReFi [বিকেন্দ্রীভূত বিজ্ঞান (DeSci)](/desci/) আন্দোলনের সাথেও ওভারল্যাপ করে, যা বৈজ্ঞানিক জ্ঞানকে অর্থায়ন, তৈরি, পর্যালোচনা, ক্রেডিট, সঞ্চয় এবং প্রচারের জন্য একটি প্ল্যাটফর্ম হিসাবে ইথেরিয়াম ব্যবহার করে। গাছ লাগানো, সমুদ্র থেকে প্লাস্টিক অপসারণ বা অবনমিত ইকোসিস্টেম পুনরুদ্ধারের মতো পুনরুত্পাদনমূলক ক্রিয়াকলাপগুলি বাস্তবায়ন এবং পর্যবেক্ষণের জন্য যাচাইযোগ্য মান এবং অনুশীলনগুলি বিকাশের জন্য DeSci টুলস কার্যকর হতে পারে। + +## কার্বন ক্রেডিটের টোকেনাইজেশন {#tokenization-of-carbon-credits} + +**[স্বেচ্ছাচালিত কার্বন বাজার (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** এমন প্রকল্পগুলির অর্থায়নের জন্য একটি প্রক্রিয়া যা কার্বন নিঃসরণের উপর যাচাইকৃত ইতিবাচক প্রভাব ফেলে, হয় চলমান নির্গমন হ্রাস করে বা বায়ুমণ্ডল থেকে ইতিমধ্যে নির্গত গ্রিনহাউস গ্যাসগুলি অপসারণ করে। এই প্রকল্পগুলি যাচাই করার পরে "কার্বন ক্রেডিট" নামে একটি সম্পদ পায়, যা তারা এমন ব্যক্তি এবং সংস্থার কাছে বিক্রি করতে পারে যারা জলবায়ু পদক্ষেপকে সমর্থন করতে চায়। + +VCM ছাড়াও, বেশ কয়েকটি সরকার-বাধ্যতামূলক কার্বন বাজার ('কমপ্লায়েন্স মার্কেট') রয়েছে যা একটি নির্দিষ্ট এখতিয়ারের (যেমন দেশ বা অঞ্চল) মধ্যে আইন বা প্রবিধানের মাধ্যমে কার্বনের মূল্য প্রতিষ্ঠার লক্ষ্য রাখে, বিতরণের অনুমতিসরবরাহ নিয়ন্ত্রণ করে। কমপ্লায়েন্স মার্কেটগুলি নির্গমন হ্রাস করার জন্য তাদের এখতিয়ারের মধ্যে দূষণকারীদের উত্সাহিত করে, তবে তারা ইতিমধ্যে নির্গত গ্রিনহাউস গ্যাসগুলি অপসারণ করতে সক্ষম নয়। + +সাম্প্রতিক দশকগুলিতে এর ডেভেলপমেন্ট সত্ত্বেও, VCM বিভিন্ন ইস্যুতে ভুগছে: + +1. অত্যন্ত বিভক্ত লিকুইডিটি +2. অস্বচ্ছ লেনদেন প্রক্রিয়া +3. উচ্চ ফি +4. খুব ধীর ট্রেডিং স্পিড +5. মাপযোগ্যতার অভাব + +VCM কে নতুন ব্লকচেইন-ভিত্তিক **ডিজিটাল কার্বন বাজারে (DCM)** রূপান্তর করা কার্বন ক্রেডিটগুলি যাচাই, লেনদেন এবং গ্রহণের জন্য বিদ্যমান প্রযুক্তিআপগ্রেড করার একটি সুযোগ হতে পারে। ব্লকচেইনগুলি সর্বজনীনভাবে যাচাইযোগ্য ডেটা, বিস্তৃত ব্যবহারকারীদের অ্যাক্সেস এবং আরও তরলতার অনুমতি দেয়। + +ReFi প্রকল্পগুলি প্রথাগত বাজারের অনেক গুলি সমস্যা হ্রাস করতে ব্লকচেইন প্রযুক্তি ব্যবহার করে: + +- **লিকুইডিটি অল্প সংখ্যক লিকুইডিটি পুলে কেন্দ্রীভূত হয়** যা যে কেউ অবাধে ট্রেড করতে পারে। বড় সংস্থাগুলির পাশাপাশি স্বতন্ত্র ব্যবহারকারীরা বিক্রেতা/ক্রেতাদের জন্য ম্যানুয়াল অনুসন্ধান, অংশগ্রহণ ফি বা পূর্ব নিবন্ধন ছাড়াই এই পুলগুলি ব্যবহার করতে পারেন। +- **সমস্ত লেনদেন পাবলিক ব্লকচেইনে রেকর্ড করা হয়**। ট্রেডিং ক্রিয়াকলাপের কারণে প্রতিটি কার্বন ক্রেডিট যে পথটি নেয় তা DCM-এ এভেইল্যাবল হওয়ার সাথে সাথে চিরতরে শনাক্ত করা যায়। +- **লেনদেনের গতি প্রায় তাৎক্ষণিক**। পূর্ববর্তী বাজারের মাধ্যমে প্রচুর পরিমাণে কার্বন ক্রেডিট সুরক্ষিত করতে কয়েক দিন বা সপ্তাহ সময় লাগতে পারে তবে এটি DCM-এ কয়েক সেকেন্ডের মধ্যে অর্জন করা যেতে পারে। +- **ব্যবসায়িক কার্যকলাপ মধ্যস্থতাকারীদের ছাড়াই ঘটে**, যা উচ্চ ফি চার্জ করে। একটি অ্যানালিটিক্স ফার্মের তথ্য অনুসারে, [ডিজিটাল কার্বন ক্রেডিটগুলি সমতুল্য প্রথাগত ক্রেডিটের তুলনায় 62% ব্যয়ের উন্নতি](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne) প্রতিনিধিত্ব করে। +- **DCM মাপযোগ্য** এবং একইভাবে ব্যক্তি এবং বহুজাতিক কর্পোরেশনের চাহিদা মেটাতে পারে। + +### DCM এর মূল উপাদান {#key-components-dcm} + +চারটি প্রধান উপাদান DCM এর বর্তমান ল্যান্ডস্কেপ তৈরি করে: + +1. রেজিস্ট্রিসমূহ যেমন [Verra](https://verra.org/project/vcs-program/registry-system/) এবং [গোল্ড স্ট্যান্ডার্ড](https://www.goldstandard.org/) নিশ্চিত করুন যে কার্বন ক্রেডিট তৈরি করা প্রকল্পগুলি নির্ভরযোগ্য। তারা ডাটাবেসগুলিও পরিচালনা করে যেখানে ডিজিটাল কার্বন ক্রেডিটগুলি উৎপন্ন হয় এবং স্থানান্তর বা ব্যবহার করা যেতে পারে (অবসরপ্রাপ্ত)। + +ব্লকচেইনগুলিতে উদ্ভাবনী প্রকল্পগুলির একটি নতুন তরঙ্গ তৈরি হচ্ছে যা এই সেক্টরে দায়িত্বশীলদের ব্যাহত করার চেষ্টা করে। + +2. কার্বন ব্রিজগুলো, a.k.a. টোকেনাইজার, প্রথাগত রেজিস্ট্রি থেকে DCM-এ কার্বন ক্রেডিট প্রতিনিধিত্ব বা স্থানান্তর করার প্রযুক্তি প্রদান করে। উল্লেখযোগ্য উদাহরণগুলির মধ্যে রয়েছে [Toucan প্রোটোকল](https://toucan.earth/), [C3](https://c3.app/), এবং [Moss.Earth](https://moss.earth/)। +3. ইন্টিগ্রেটেড পরিষেবাগুলি শেষ-ব্যবহারকারীদের কার্বন পরিহার এবং/অথবা অপসারণের ক্রেডিট অফার করে যাতে তারা একটি ঋণের পরিবেশগত সুবিধা দাবি করতে পারে এবং বিশ্বের সাথে জলবায়ু ক্রিয়াকলাপের তাদের সমর্থন ভাগ করে নিতে পারে। + +কিছু যেমন [Klima Infinity](https://www.klimadao.finance/infinity) এবং [Senken](https://senken.io/) একটি অফার তৃতীয় পক্ষ দ্বারা তৈরি এবং Verra মতো প্রতিষ্ঠিত মানদণ্ডের অধীনে জারি করা বিভিন্ন ধরণের প্রকল্প; অন্যরা যেমন [Nori](https://nori.com/) শুধুমাত্র তাদের নিজস্ব কার্বন ক্রেডিট স্ট্যান্ডার্ডের অধীনে তৈরি করা নির্দিষ্ট প্রকল্পগুলি অফার করে, যা তারা জারি করে এবং যার জন্য তাদের নিজস্ব ডেডিকেটেড মার্কেটপ্লেস রয়েছে। + +4. অন্তর্নিহিত রেল এবং অবকাঠামো যা কার্বন বাজারের সমগ্র সাপ্লাই চেইনের প্রভাব এবং কার্যকারিতা বাড়াতে সাহায্য করে। [KlimaDAO](http://klimadao.finance/) একটি পাবলিক গুড হিসাবে তারল্য সরবরাহ করে (কাউকে একটি স্বচ্ছ মূল্যে কার্বন ক্রেডিট ক্রয় বা বিক্রি করার অনুমতি দেয়), কার্বন বাজারের বর্ধিত থ্রুপুট এবং এর সাথে অবসর গ্রহণকে উৎসাহিত করে পুরষ্কার, এবং বিভিন্ন ধরণের টোকেনাইজড কার্বন ক্রেডিট সম্পর্কে ডেটা অ্যাক্সেস করার পাশাপাশি অর্জন এবং অবসর নেওয়ার জন্য ব্যবহারকারী-বান্ধব ইন্টারঅপারেবল টুলিং প্রদান করে। + +## কার্বন বাজারগুলোর বাইরে ReFi {#refi-beyond} + +যদিও বর্তমানে সাধারণভাবে কার্বন বাজারের উপর জোর দেওয়া হয়েছে এবং বিশেষ করে স্থানের মধ্যে VCM-কে DCM-এ রূপান্তরিত করা হচ্ছে, "ReFi" শব্দটি কঠোরভাবে কার্বনের মধ্যে সীমাবদ্ধ নয়। কার্বন ক্রেডিট ছাড়িয়ে অন্যান্য পরিবেশগত সম্পদ বিকাশ এবং টোকেনাইজ করা যেতে পারে, যার অর্থ ভবিষ্যতের অর্থনৈতিক ব্যবস্থার ভিত্তি স্তরের মধ্যে অন্যান্য নেতিবাচক বাহ্যিকতার মূল্য নির্ধারণ করা যেতে পারে। তাছাড়া, এই অর্থনৈতিক মডেলের পুনরুৎপাদনমূলক দিকটি অন্যান্য ক্ষেত্রে প্রয়োগ করা যেতে পারে, যেমন [Gitcoin](https://gitcoin.co/)-এর মত চতুর্মুখী তহবিল প্ল্যাটফর্মের মাধ্যমে পাবলিক পণ্যের অর্থায়ন। কমিউনিটিসমূহ যেগুলি উন্মুক্ত অংশগ্রহণ এবং সম্পদের ন্যায়সঙ্গত বন্টনের ধারণার উপর তৈরি করা হয় সেগুলি প্রত্যেককে ওপেন-সোর্স সফ্টওয়্যার প্রকল্পগুলির পাশাপাশি শিক্ষামূলক, পরিবেশগত এবং কমিউনিটি-চালিত প্রকল্পগুলিতে অর্থ সরবরাহ করার ক্ষমতা দেয়। + +ক্যাপিটালের অভিমুখ নিষ্কাশনমূলক চর্চার থেকে সরিয়ে একটি পুনরূত্পাদকশীল ফ্লোর দিকে চালিত করার মাধ্যমে সামাজিক, পরিবেশগত বা সাম্প্রদায়িক সুবিধা প্রদানকারী প্রজেক্ট এবং কোম্পানিগুলো—যারা গতানুগতিক অর্থনীতিতে ফান্ডিং সংগ্রহ করতে ব্যর্থ হতো—তারা খুব সহজেই তাদের কর্মকাণ্ড শুরু করতে পারবে এবং সমাজের জন্য আরও দ্রুত এবং সহজে ইতিবাচক ফলাফলা বয়ে আনতে পারবে। তহবিলের এই মডেলে রূপান্তর আরও অনেক বেশি অন্তর্ভুক্তিমূলক অর্থনৈতিক ব্যবস্থার দরজা খুলে দেয়, যেখানে সমস্ত জনসংখ্যার মানুষ নিছক প্যাসিভ পর্যবেক্ষক না হয়ে সক্রিয় অংশগ্রহণকারী হতে পারে। ReFi আমাদের প্রজাতি এবং আমাদের গ্রহের সমস্ত প্রাণের মুখোমুখি অস্তিত্বের চ্যালেঞ্জগুলির বিরুদ্ধে পদক্ষেপের সমন্বয় করার জন্য একটি প্রক্রিয়া হিসাবে ইথেরিয়ামের একটি দৃষ্টিভঙ্গি অফার করে—একটি নতুন অর্থনৈতিক দৃষ্টান্তের ভিত্তি স্তর হিসাবে, যা আগামী শতাব্দীর জন্য আরও অন্তর্ভুক্তিমূলক এবং টেকসই ভবিষ্যত সক্ষম করে। + +## ReFi সম্পর্কে আরও পড়ুন + +- [কার্বন মুদ্রার একটি উচ্চ-স্তরের সংক্ষিপ্ত বিবরণ এবং অর্থনীতিতে তাদের স্থান](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) +- [ভবিষ্যতের জন্য মন্ত্রণালয়, জলবায়ু পরিবর্তনের বিরুদ্ধে লড়াইয়ে কার্বন-সমর্থিত মুদ্রার ভূমিকা চিত্রিত একটি উপন্যাস](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) +- [স্বেচ্ছাসেবী কার্বন বাজারগুলোকে স্কেলিং করার জন্য টাস্কফোর্সের একটি বিশদ প্রতিবেদন](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) +- [কেভিন ওওকিএবংইভান মিয়াজোনোর ReFi-তে CoinMarketCap গ্লসারি এন্ট্রি](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/public/content/translations/bn/smart-contracts/index.md b/public/content/translations/bn/smart-contracts/index.md new file mode 100644 index 00000000000..d5d646015e8 --- /dev/null +++ b/public/content/translations/bn/smart-contracts/index.md @@ -0,0 +1,84 @@ +--- +title: স্মার্ট কন্ট্র্যাক্ট +description: স্মার্ট কন্ট্র্যাক্টের একটি অ-প্রযুক্তিগত ভূমিকা +lang: bn +--- + +# Introduction to smart contracts {#introduction-to-smart-contracts} + +স্মার্ট কন্ট্র্যাক্ট হল ইথেরিয়াম এর অ্যাপ্লিকেশন স্তরের মৌলিক বিল্ডিং ব্লক। এগুলি ব্লকচেইনে সঞ্চিত কম্পিউটার প্রোগ্রাম যা "if this then that" যুক্তি অনুসরণ করে এবং এর কোড দ্বারা সংজ্ঞায়িত নিয়ম অনুসারে কার্যকর করার গ্যারান্টি দেওয়া হয়, যা একবার তৈরি হয়ে গেলে পরিবর্তন করা যায় না। + +Nick Szabo "স্মার্ট কন্ট্র্যাক্ট" শব্দটি তৈরি করেছিলেন। 1994 সালে, তিনি [ধারণাটির একটি ভূমিকা](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html) লিখেছিলেন এবং 1996 সালে তিনি [স্মার্ট কন্ট্রাক্টগুলি কী করতে পারে](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html) তার একটি অনুসন্ধান লিখেছিলেন। + +Szabo একটি ডিজিটাল মার্কেটপ্লেসের কল্পনা করেছে যেখানে স্বয়ংক্রিয়, ক্রিপ্টোগ্রাফিকভাবে-সুরক্ষিত প্রক্রিয়াগুলি বিশ্বস্ত মধ্যস্থতাকারী ছাড়াই লেনদেন এবং ব্যবসায়িক ফাংশনগুলি ঘটতে সক্ষম করে। ইথেরিয়ামে স্মার্ট কন্ট্র্যাক্টগুলি এই দৃষ্টিভঙ্গিকে অনুশীলন করে। + +## প্রচলিত কন্ট্রাক্ট গুলোয় আস্থা রাখুন {#trust-and-contracts} + +একটি প্রথাগত কন্ট্রাক্ট এর সাথে সবচেয়ে বড় সমস্যাগুলির মধ্যে একটি হল চুক্তির ফলাফলগুলি অনুসরণ করার জন্য বিশ্বস্ত ব্যক্তিদের প্রয়োজন। + +এখানে একটি উদাহরণ দেওয়া হল: + +অ্যালিস ও বব একটি সাইকেল রেস করছেন। ধরা যাক অ্যালিস ববের সাথে $10 বাজি ধরেছেন যে তিনি রেসটি জিতবেন। বব আত্মবিশ্বাসী যে তিনি বিজয়ী হবেন এবং বাজিতে সম্মত হন। শেষ পর্যন্ত, অ্যালিস ববের চেয়ে এগিয়ে দৌড় শেষ করে এবং স্পষ্ট বিজয়ী হয়। কিন্তু বব বাজির উপর অর্থ প্রদান করতে অস্বীকার করেন, দাবি করেন যে অ্যালিস অবশ্যই প্রতারণা করেছেন। + +এই নির্বোধ উদাহরণটি কোনও অ-স্মার্ট কন্ট্র্যাক্টের সাথে সমস্যাটি চিত্রিত করে। এমনকি যদি চুক্তির শর্তগুলি পূরণ হয় (অর্থাত্ আপনি দৌড়ের বিজয়ী), তবুও আপনাকে চুক্তিটি পূরণের জন্য অন্য ব্যক্তির উপরে বিশ্বাস করতে হবে (অর্থাৎ বাজিতে অর্থ প্রদান)। + +## A digital vending machine {#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/) + +## More of a visual learner? {#visual-learner} + +Finematics কে স্মার্ট চুক্তি ব্যাখ্যা করতে দেখুন: + + + +## Further reading {#further-reading} + +- [কিভাবে স্মার্ট কন্ট্রাক্ট পৃথিবী বদলে দেবে](https://www.youtube.com/watch?v=pA6CGuXEKtQ) +- [স্মার্ট কনট্র্যাক্টস: ব্লকচেইন প্রযুক্তি যা আইনজীবীদের প্রতিস্থাপন করবে](https://blockgeeks.com/guides/smart-contracts/) +- [ডেভেলপারদের জন্য স্মার্ট কন্ট্র্যাক্ট](/developers/docs/smart-contracts/) +- [স্মার্ট-কন্ট্রাক্ট লিখতে শিখুন](/developers/learning-tools/) +- [মাস্টারিং ইথেরিয়াম - একটি স্মার্ট কন্ট্র্যাক্ট কি?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/bn/social-networks/index.md b/public/content/translations/bn/social-networks/index.md new file mode 100644 index 00000000000..a95258a5a0f --- /dev/null +++ b/public/content/translations/bn/social-networks/index.md @@ -0,0 +1,121 @@ +--- +title: বিকেন্দ্রীভূত সামাজিক নেটওয়ার্ক +description: ইথেরিয়াম-এ বিকেন্দ্রীভূত সামাজিক নেটওয়ার্কগুলির একটি ওভারভিউ +lang: bn +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: /ethereum-learn.png +summaryPoint1: সামাজিক মিথস্ক্রিয়া এবং কন্টেন্ট তৈরি এবং বিতরণের জন্য ব্লকচেইন-ভিত্তিক প্ল্যাটফর্ম। +summaryPoint2: বিকেন্দ্রীভূত সামাজিক মিডিয়া নেটওয়ার্কগুলি ব্যবহারকারীর গোপনীয়তা রক্ষা করে এবং ডেটা সুরক্ষা বাড়ায়। +summaryPoint3: টোকেন এবং NFT কনটেন্ট নগদীকরণের নতুন উপায় তৈরি করে। +--- + +সামাজিক নেটওয়ার্কগুলি আমাদের দৈনন্দিন যোগাযোগ এবং মিথস্ক্রিয়াতে একটি বিশাল ভূমিকা পালন করে। যাইহোক, এই প্ল্যাটফর্মগুলির কেন্দ্রীভূত নিয়ন্ত্রণ অনেক গুলি সমস্যা তৈরি করেছে: ডেটা লঙ্ঘন, সার্ভার বিভ্রাট, ডি-প্ল্যাটফর্মিং, সেন্সরশিপ এবং গোপনীয়তা লঙ্ঘন গুলি সোশ্যাল মিডিয়া প্রায়শই কিছু ট্রেড-অফ করে। এই সমস্যাগুলি মোকাবেলা করার জন্য, ডেভেলপাররা ইথেরিয়াম-এ সামাজিক নেটওয়ার্ক তৈরি করছে। বিকেন্দ্রীভূত সামাজিক নেটওয়ার্কগুলি ঐতিহ্যগত সামাজিক নেটওয়ার্কিং প্ল্যাটফর্মের অনেক সমস্যা সমাধান করতে পারে এবং ব্যবহারকারীদের সামগ্রিক অভিজ্ঞতা উন্নত করতে পারে। + +## বিকেন্দ্রীভূত সামাজিক নেটওয়ার্ক কি? {#what-are-decentralized-social-networks} + +বিকেন্দ্রীভূত সামাজিক নেটওয়ার্কগুলি হল ব্লকচেইন-ভিত্তিক প্ল্যাটফর্ম যা ব্যবহারকারীদের তথ্য বিনিময়ের পাশাপাশি শ্রোতাদের কাছে কনটেন্ট প্রকাশ ও বিতরণ করতে দেয়। যেহেতু এই অ্যাপ্লিকেশনগুলি ব্লকচেইনে চালিত হয়, তারা বিকেন্দ্রীভূত হতে সক্ষম এবং সেন্সরশিপ এবং অযাচিত নিয়ন্ত্রণের বিরুদ্ধে প্রতিরোধী। + +অনেক বিকেন্দ্রীভূত সামাজিক নেটওয়ার্ক প্রতিষ্ঠিত সামাজিক মিডিয়া পরিষেবার বিকল্প হিসাবে বিদ্যমান, যেমন Facebook, LinkedIn, Twitter, এবং Medium। কিন্তু ব্লকচেইন-চালিত সোশ্যাল নেটওয়ার্কের বেশ কিছু বৈশিষ্ট্য রয়েছে যা তাদের প্রথাগত সামাজিক প্ল্যাটফর্মের চেয়ে এগিয়ে রাখে। + +### বিকেন্দ্রীভূত সামাজিক নেটওয়ার্ক কিভাবে কাজ করে? {#decentralized-social-networks-overview} + +বিকেন্দ্রীভূত সামাজিক নেটওয়ার্ক হল [বিকেন্দ্রীভূত অ্যাপ্লিকেশনের (dapps)](/dapps/) একটি শ্রেণী—[স্মার্ট কন্ট্র্যাক্ট](/developers/docs/smart-contracts/) দ্বারা চালিত অ্যাপ্লিকেশন যেগুলো ব্লকচেইনে স্থাপন করা হয়েছে। কনট্র্যাক্ট কোড এই অ্যাপগুলির জন্য ব্যাকএন্ড হিসাবে কাজ করে এবং তাদের ব্যবসার যুক্তি সংজ্ঞায়িত করে। + +প্রথাগত সোশ্যাল মিডিয়া প্ল্যাটফর্মগুলি ব্যবহারকারীর তথ্য, প্রোগ্রাম কোড এবং অন্যান্য ধরণের ডেটা সঞ্চয় করার জন্য ডেটাবেসের উপর নির্ভর করে। কিন্তু এটি ব্যর্থতার একক পয়েন্ট তৈরি করে এবং উল্লেখযোগ্য ঝুঁকির পরিচয় দেয়। উদাহরণস্বরূপ, গত বছর ফেসবুকের সার্ভারগুলি [কয়েক ঘন্টার জন্য অফলাইন হয়ে যায়](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact), যার ফলে ব্যবহারকারীরা প্ল্যাটফর্ম থেকে বিচ্ছিন্ন হয়ে যায়। + +বিকেন্দ্রীভূত সামাজিক নেটওয়ার্কগুলি বিশ্বজুড়ে হাজার হাজার নোড নিয়ে গঠিত পিয়ার-টু-পিয়ার নেটওয়ার্কে বিদ্যমান। এমনকি যদি কিছু নোড ব্যর্থ হয় তবে নেটওয়ার্কটি নিরবচ্ছিন্নভাবে চলবে, অ্যাপ্লিকেশনগুলিকে ব্যর্থতা এবং বিভ্রাটের বিরুদ্ধে প্রতিরোধী করে তুলবে। + +[InterPlanetary File System (IPFS)](https://ipfs.io/)-এর মতো বিকেন্দ্রীভূত স্টোরেজ সিস্টেম ব্যবহার করে, ইথেরিয়ামে নির্মিত সামাজিক নেটওয়ার্কগুলি ব্যবহারকারীর তথ্য শোষণ এবং অপব্যবহার থেকে রক্ষা করতে পারে। কেউ আপনার ব্যক্তিগত তথ্য বিজ্ঞাপনদাতাদের কাছে বিক্রি করবে না, হ্যাকাররাও আপনার গোপনীয় তথ্য চুরি করতে পারবে না। + +অনেক ব্লকচেইন-ভিত্তিক সামাজিক প্ল্যাটফর্মের নেটিভ টোকেন রয়েছে যা বিজ্ঞাপনের আয়ের অভাবে নগদীকরণকে শক্তি দেয়। ব্যবহারকারীরা নির্দিষ্ট বৈশিষ্ট্যগুলি অ্যাক্সেস করতে, অ্যাপ-মধ্যস্থ কেনাকাটা সম্পূর্ণ করতে বা তাদের প্রিয় কনটেন্ট ক্রিয়েটরদের পরামর্শ দিতে এই টোকেনগুলি কিনতে পারেন। + +## বিকেন্দ্রীভূত সামাজিক নেটওয়ার্কের সুবিধা {#benefits} + +1. বিকেন্দ্রীভূত সামাজিক নেটওয়ার্কগুলি সেন্সরশিপ-প্রতিরোধী এবং সবার জন্য উন্মুক্ত। এর অর্থ ব্যবহারকারীদের নির্বিচারে নিষিদ্ধ, ডিপ্ল্যাটফর্ম বা সীমাবদ্ধ করা যাবে না। + +2. বিকেন্দ্রীকৃত সামাজিক নেটওয়ার্কগুলি ওপেন-সোর্স আদর্শের উপর নির্মিত হয় এবং পাবলিক পরিদর্শনের জন্য উপলব্ধ অ্যাপ্লিকেশনগুলির জন্য উত্স কোড তৈরি করে। প্রচলিত সামাজিক মিডিয়াতে প্রচলিত অস্বচ্ছ অ্যালগরিদমের বাস্তবায়ন দূর করে, ব্লকচেইন-ভিত্তিক সামাজিক নেটওয়ার্কগুলি ব্যবহারকারী এবং প্ল্যাটফর্ম নির্মাতাদের স্বার্থকে সারিবদ্ধ করতে পারে। + +3. বিকেন্দ্রীকৃত সামাজিক নেটওয়ার্কগুলি "মধ্য-মানুষ" কে নির্মূল করে। কনটেন্ট ক্রিয়েটরদের তাদের সামগ্রীর উপর সরাসরি মালিকানা রয়েছে এবং তারা অনুসরণকারী, ভক্ত, ক্রেতা এবং অন্যান্য পক্ষের সাথে সরাসরি জড়িত, এর মধ্যে একটি স্মার্ট কন্ট্র্যাক্ট ছাড়া আর কিছুই নেই। + +4. ইথেরিয়াম নেটওয়ার্কে চলমান dapps হিসাবে, যা নোডগুলির একটি বিশ্বব্যাপী, পিয়ার-টু-পিয়ার নেটওয়ার্ক দ্বারা টেকসই হয়, বিকেন্দ্রীকৃত সামাজিক নেটওয়ার্কগুলি সার্ভার ডাউনটাইম এবং আউটেজের জন্য কম সংবেদনশীল। + +5. বিকেন্দ্রীকৃত সামাজিক প্ল্যাটফর্মগুলি নন-ফাঙ্গিবল টোকেন (NFT), ইন-অ্যাপ ক্রিপ্টো পেমেন্ট এবং আরও অনেক কিছুর মাধ্যমে কনটেন্ট ক্রিয়েটরদের জন্য একটি উন্নত নগদীকরণ কাঠামো সরবরাহ করে। + +6. বিকেন্দ্রীকৃত সামাজিক নেটওয়ার্কগুলি ব্যবহারকারীদের উচ্চ স্তরের গোপনীয়তা এবং নামহীনতা প্রদান করে। উদাহরণস্বরূপ, কোনও ব্যক্তি ENS প্রোফাইল বা ওয়ালেট ব্যবহার করে ইথেরিয়াম-ভিত্তিক সামাজিক নেটওয়ার্কে সাইন ইন করতে পারেন—নাম, ইমেল ঠিকানা ইত্যাদির মতো ব্যক্তিগতভাবে সনাক্তযোগ্য তথ্য (PII) শেয়ার না করে। + +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)](/nft/) হিসাবে তৈরি করা যেতে পারে যা রাইটিং NFT নামে পরিচিত। লেখকরা রাইটিং NFT সম্পূর্ণ বিনামূল্যে তৈরু করতে পারবেন এবং ইথেরিয়াম L2-এ কালেকশন হয় — যা লেনদেনগুলিকে সাশ্রয়ী, দ্রুত এবং পরিবেশবান্ধব করে তোলে। + +### MINDS {#minds} + +[MINDS](https://www.minds.com/) সর্বাধিক ব্যবহৃত বিকেন্দ্রীভূত সামাজিক নেটওয়ার্কগুলির মধ্যে একটি। এটি Facebook-এর মতো কাজ করে এবং ইতিমধ্যে লক্ষ লক্ষ ব্যবহারকারীকে আকৃষ্ট করেছে। + +ব্যবহারকারীরা আইটেমগুলির জন্য অর্থ প্রদানের জন্য প্ল্যাটফর্মের নেটিভ ERC -20 টোকেন $MIND ব্যবহার করে। ব্যবহারকারীরা জনপ্রিয় সামগ্রী প্রকাশ করে, ইকোসিস্টেমে অবদান রেখে এবং প্ল্যাটফর্মে অন্যদের উল্লেখ করে $MIND টোকেন উপার্জন করতে পারেন। + +## ইথেরিয়াম-এ Web2 সামাজিক নেটওয়ার্ক {#web2-social-networks-and-ethereum} + +[Web3](/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)। আপনি [একচেটিয়া বিশেষ সুবিধা এবং বিশেষ সুবিধা পেতে](https://www.reddit.com/community-points/) একটি সাবরেডিটের মধ্যে এই টোকেনগুলি ভাঙ্গাতে পারেন। এই প্রকল্পের জন্য, Reddit Arbitrum-এর সাথে কাজ করছে, একটি [লেয়ার 2](/layer-2/) রোলআপ যা ইথেরিয়াম লেনদেন স্কেল করার জন্য ডিজাইন করা হয়েছে। + +এই প্রোগ্রামটি ইতিমধ্যেই লাইভ এবং r/CryptoCurrency [সাবরেডিট "মুনস" নামের এর কমিউনিটি পয়েন্টের ভার্সন রান করছে](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki)। অফিসিয়াল বিবরণ অনুসারে, মুনস "সাবরেডিতে অবদানের জন্য পোস্টার, মন্তব্যকারী এবং মডারেটরদের পুরস্কৃত করে।" যেহেতু এই টোকেনগুলি ব্লকচেইনে রয়েছে (ব্যবহারকারীরা এগুলি ওয়ালেটগুলিতে গ্রহণ করে), তারা Reddit থেকে স্বাধীন এবং এটি কেড়ে নেওয়া যায় না। + +Rinkeby টেস্টনেট-এ একটি বিটা পর্ব শেষ করার পর, Reddit কমিউনিটি পয়েন্টগুলি এখন [Arbitrum Nova](https://nova.arbitrum.io/)-এ রয়েছে, একটি ব্লকচেইন যা + + + + + + + +## কি বিবেচনা করতে হবে {#what-to-consider} + +পুল করা বা অর্পিত স্টেকিং স্থানীয়ভাবে ইথেরিয়াম প্রোটোকল দ্বারা সমর্থিত নয়, কিন্তু ব্যবহারকারীদের 32 ETH-এর কম স্টেকিং এর চাহিদার প্রেক্ষিতে এই চাহিদা পূরণের জন্য ক্রমবর্ধমান সংখ্যক সমাধান তৈরি করা হয়েছে। + +প্রতিটি পুল এবং তারা যে টুলস বা স্মার্ট কন্ট্র্যাক্ট ব্যবহার করে তা বিভিন্ন দল দ্বারা তৈরি করা হয়েছে এবং প্রতিটিতে সুবিধা এবং ঝুঁকি রয়েছে। পুল ব্যবহারকারীদের একটি টোকেনের জন্য তাদের ETH অদলবদল করতে সক্ষম করে যা স্টেকড ETH প্রতিনিধিত্ব করে। টোকেনটি উপযোগী কারণ এটি ব্যবহারকারীদের যেকোন পরিমাণ ETH-কে একটি ফলন-বহনকারী টোকেনের সমতুল্য পরিমাণে অদলবদল করতে দেয় যা বিকেন্দ্রীভূত এক্সচেঞ্জে অন্তর্নিহিত স্টেকড ETH (এবং এর বিপরীতে) প্রয়োগ করা স্টেকিং পুরস্কার থেকে একটি রিটার্ন জেনারেট করে যদিও প্রকৃত ETH কনসেনসাস লেয়ারে আটকে থাকে। এর অর্থ হল একটি ফলন-বহনকারী স্টেকড-ETH পণ্য থেকে অদলবদল করা এবং "অপরিশোধিত ETH" দ্রুত, সহজ এবং শুধুমাত্র 32 ETH-এর গুণে পাওয়া যায় না। + +যাইহোক, এই স্টেকড-ETH টোকেনগুলি কার্টেলের মতো আচরণ তৈরি করে যেখানে প্রচুর পরিমাণে স্টেকড ETH অনেক স্বাধীন ব্যক্তিদের মধ্যে ছড়িয়ে পড়ার পরিবর্তে কয়েকটি কেন্দ্রীভূত সংস্থার নিয়ন্ত্রণে শেষ হয়। এটি সেন্সরশিপ বা মান নিষ্কাশনের জন্য শর্ত তৈরি করে। স্টকিংয়ের জন্য স্বর্ণের মান সর্বদা এমন ব্যক্তিদের হওয়া উচিত যারা যখনই সম্ভব তাদের নিজস্ব হার্ডওয়্যারে যাচাইকারী চালাচ্ছেন। + +[টোকেন স্টেকিং এর ঝুঁকি সম্পর্কে আরও কিছু](https://notes.ethereum.org/@djrtwo/risks-of-lsd)। + +একটি তালিকাভুক্ত স্টেকিং পুলের উল্লেখযোগ্য শক্তি বা দুর্বলতা সংকেত দিতে নিচে অ্যাট্রিবিউট সূচক ব্যবহার করা হয়েছে। আপনি যোগদানের জন্য একটি পুল নির্বাচন করার সময় আমরা কীভাবে এই বৈশিষ্ট্যগুলিকে সংজ্ঞায়িত করি তার একটি রেফারেন্স হিসাবে এই বিভাগটি ব্যবহার করুন। + + + +## স্টেকিং পুলগুলি অন্বেষণ করুন {#explore-staking-pools} + +আপনার সেটআপে আপনাকে সাহায্য করার জন্য বিভিন্ন বিকল্প উপলব্ধ রয়েছে। নীচের টুলসের মাধ্যমে আপনাকে গাইড করতে সাহায্য করার জন্য উপরের সূচকগুলি ব্যবহার করুন। + + + + + +দয়া করে মনে রাখবেন এমন একটি পরিষেবা বেছে নেওয়ার গুরুত্ব যা [ক্লায়েন্ট বৈচিত্র্য](/developers/docs/nodes-and-clients/client-diversity/) কে গুরুত্ব সহকারে নেয়, কারণ এটি নেটওয়ার্কের নিরাপত্তা উন্নত করে এবং আপনার ঝুঁকি সীমিত করে। যে পরিষেবাগুলিতে সংখ্যাগরিষ্ঠ ক্লায়েন্টের ব্যবহার সীমিত করার প্রমাণ রয়েছে সেগুলি দিয়ে নির্দেশিত হয় "এক্সিকিউশন ক্লায়েন্ট বৈচিত্র্য" এবং "কনসেনসাস ক্লায়েন্ট বৈচিত্র্য।" + +আমরা মিস করেছি একটি স্টেকিংয়ের টুলস জন্য আপনার পরামর্শ আছে? আমাদের [পণ্য তালিকা নীতি](/contributing/adding-staking-products/) দেখুন এটি উপযুক্ত কিনা তা দেখতে এবং পর্যালোচনার জন্য জমা দিতে। + +## Frequently asked questions {#faq} + + +সাধারণত ERC-20 স্টেকিং টোকেনগুলি স্টেকারদের জন্য জারি করা হয় যা তাদের স্টেক করা ETH প্লাস পুরস্কারের মূল্যকে প্রতিনিধিত্ব করে। মনে রাখবেন যে বিভিন্ন পুল তাদের ব্যবহারকারীদের কাছে সামান্য ভিন্ন পদ্ধতির মাধ্যমে স্টেকিং পুরস্কার বিতরণ করবে, তবে এটি সাধারণ থিম। + + + +এই মুহূর্তে! Shanghai/Capella নেটওয়ার্ক আপগ্রেড এপ্রিল 2023 এ হয়েছিল, এবং স্টেকিং উত্তোলন চালু করেছিল। ভ্যালিডেটর অ্যাকাউন্টগুলি যে ব্যাক স্টেকিং পুলগুলি এখন তাদের মনোনীত প্রত্যাহারের ঠিকানায় ETH থেকে প্রস্থান করার এবং প্রত্যাহার করার ক্ষমতা রাখে। এটি অন্তর্নিহিত ETH-এর জন্য আপনার অংশের অংশ ভাঙানোর ক্ষমতা সক্ষম করে। তারা কিভাবে এই কার্যকারিতা সমর্থন করে তা দেখতে আপনার প্রদানকারীর সাথে যোগাযোগ করুন। + +বিকল্পভাবে, যে পুলগুলি একটি ERC-20 স্টেকিং টোকেন ব্যবহার করে সেগুলি ব্যবহারকারীদের এই টোকেনটি খোলা বাজারে ট্রেড করার অনুমতি দেয়, আপনাকে আপনার স্টেকিং পজিশন বিক্রি করতে দেয়, কার্যকরভাবে ETH কে স্টেকিং চুক্তি থেকে সরিয়ে না দিয়েই "প্রত্যাহার" করে। + +স্টেকিং প্রত্যাহার এর উপর আরো + + + +এই পুলড স্টেকিং অপশন এবং কেন্দ্রীভূত এক্সচেঞ্জের মধ্যে অনেক মিল রয়েছে, যেমন অল্প পরিমাণ ETH স্টক করার ক্ষমতা এবং যাচাইকারীদের সক্রিয় করার জন্য সেগুলিকে একত্রিত করা। + +সেন্ট্রালাইজড এক্সচেঞ্জের বিপরীতে, অনেক অন্যান্য পুলড স্টেকিং অপশন স্মার্ট কন্ট্রাক্ট এবং/অথবা স্টেকিং টোকেন ব্যবহার করে, যা সাধারণত ERC-20 টোকেন যা আপনার নিজের ওয়ালেটে রাখা যায় এবং অন্য টোকেনের মতোই কেনা বা বিক্রি করা যায়। এটি আপনাকে আপনার টোকেনগুলির উপর নিয়ন্ত্রণ করার ক্ষমতা প্রদান করে সার্বভৌমত্ব এবং নিরাপত্তার একটি লেয়ার অফার করে, কিন্তু তারপরও ব্যাকগ্রাউন্ডে আপনাকে আপনার পক্ষের সত্যায়িতকারী ক্লায়েন্টের উপর সরাসরি নিয়ন্ত্রণ দেয় না। + +কিছু পুলিং অপশন অন্যদের তুলনায় বেশি বিকেন্দ্রীকৃত হয় যখন এটি নোডগুলির জন্য আসে যা তাদের ব্যাক করে। নেটওয়ার্কের স্বাস্থ্য এবং বিকেন্দ্রীকরণকে উন্নীত করার জন্য, স্টেকারদের সর্বদা একটি পুলিং পরিষেবা নির্বাচন করতে উত্সাহিত করা হয় যা নোড অপারেটরদের একটি অনুমতিহীন বিকেন্দ্রীকৃত সেট সক্ষম করে। + + +## Further reading {#further-reading} + +- [Rocket Pool দ্বারা স্টেকিং - স্টেকিং ওভারভিউ](https://docs.rocketpool.net/guides/staking/overview.html) - _RocketPool docs_ +- [লিডোর সাথে ইথেরিয়াম স্টেকিং](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _লিডো হেল্প ডকস_ diff --git a/public/content/translations/bn/staking/saas/index.md b/public/content/translations/bn/staking/saas/index.md new file mode 100644 index 00000000000..569e870b88b --- /dev/null +++ b/public/content/translations/bn/staking/saas/index.md @@ -0,0 +1,94 @@ +--- +title: একটি সেবা হিসাবে স্টেকিং +description: পুল করা দিয়ে কীভাবে ETH স্টেকিং শুরু করবেন তার একটি ওভারভিউ +lang: bn +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-saas.png +alt: Leslie the rhino মেঘের মধ্যে ভাসছে। +sidebarDepth: 2 +summaryPoints: + - থার্ড-পার্টি নোড অপারেটররা আপনার ভ্যালিডেটর ক্লায়েন্টের অপারেশন পরিচালনা করে + - 32 ETH সহ যে কেউ নোড চালানোর প্রযুক্তিগত জটিলতার সাথে কাজ করতে স্বাচ্ছন্দ্য বোধ করেন না তাদের জন্য দুর্দান্ত বিকল্প + - অপরকে বিশ্বাস করবেন না, এবং আপনার প্রত্যাহার কীগুলির হেফাজত বজায় রাখুন +--- + +## একটি সেবা হিসাবে স্টেকিং কি? {#what-is-staking-as-a-service} + +একটি পরিষেবা হিসাবে স্টেকিং ("SaaS") স্টেকিং পরিষেবাগুলির একটি বিভাগকে প্রতিনিধিত্ব করে যেখানে আপনি একটি বৈধকারীর জন্য আপনার নিজস্ব 32 ETH জমা করেন, তবে একটি তৃতীয় পক্ষের অপারেটরকে নোড অপারেশন অর্পণ করেন। এই প্রক্রিয়াটি সাধারণত কী জেনারেশন এবং ডিপোজিট সহ প্রাথমিক সেটআপের মাধ্যমে পরিচালিত হয়, তারপরে অপারেটরের কাছে আপনার সাইনিং কীগুলি আপলোড করে। এটি পরিষেবাটিকে আপনার পক্ষে আপনার বৈধতাকে পরিচালনা করার অনুমতি দেয়, সাধারণত একটি মাসিক ফি দিয়ে। + +## একটি পরিষেবার মাধ্যমে কেন স্টেক করবেন? {#why-stake-with-a-service} + +ইথেরিয়াম প্রোটোকল স্থানীয়ভাবে অংশীদারিত্বের প্রতিনিধিকে সমর্থন করে না, তাই এই চাহিদা পূরণের জন্য এই পরিষেবাগুলি তৈরি করা হয়েছে। যদি আপনার কাছে 32 ETH থাকে, কিন্তু আপনি হার্ডওয়্যার নিয়ে কাজ করতে স্বাচ্ছন্দ্য বোধ করেন না, তবে SaaS পরিষেবাগুলি আপনাকে হার্ড অংশ অর্পণ করার অনুমতি দেয় যখন আপনি স্থানীয় ব্লক পুরস্কার অর্জন করেন। + + + + + + + + + +## কি বিবেচনা করতে হবে {#what-to-consider} + +আপনার ETH স্টেক করতে আপনাকে সাহায্য করার জন্য SaaS প্রদানকারীর সংখ্যা ক্রমবর্ধমান, কিন্তু তাদের সকলের নিজস্ব সুবিধা এবং ঝুঁকি রয়েছে। সমস্ত SaaS বিকল্পের জন্য হোম-স্টেকিংয়ের তুলনায় অতিরিক্ত বিশ্বাসের অনুমান প্রয়োজন। Saas বিকল্পগুলিতে ইথেরিয়াম ক্লায়েন্টদের মোড়ানো অতিরিক্ত কোড থাকতে পারে যা খোলা বা নিরীক্ষণযোগ্য নয়। SaaS নেটওয়ার্ক বিকেন্দ্রীকরণের উপরও ক্ষতিকর প্রভাব ফেলে। সেটআপের উপর নির্ভর করে, আপনি আপনার যাচাইকারীকে নিয়ন্ত্রণ করতে পারবেন না - অপারেটর আপনার ETH ব্যবহার করে অসৎ আচরণ করতে পারে। + +একটি তালিকাভুক্ত SaaS প্রদানকারীর হতে পারে এমন উল্লেখযোগ্য শক্তি বা দুর্বলতা নির্দেশ করতে অ্যাট্রিবিউট ইন্ডিকেটর নিচে ব্যবহার করা হয়েছে। আপনি যখন আপনার স্টেকিং যাত্রায় সহায়তা করার জন্য একটি পরিষেবা বেছে নিচ্ছেন তখন আমরা কীভাবে এই বৈশিষ্ট্যগুলিকে সংজ্ঞায়িত করি তার একটি রেফারেন্স হিসাবে এই বিভাগটি ব্যবহার করুন। + + + +## স্টেকিং পরিষেবা প্রদানকারীদের অন্বেষণ করুন {#saas-providers} + +নীচে কিছু এভেইল্যাবল SaaS প্রদানকারী আছে। এই পরিষেবাগুলির মাধ্যমে আপনাকে গাইড করতে সাহায্য করার জন্য উপরের সূচকগুলি ব্যবহার করুন + + + +### SaaS প্রদানকারী সমূহ + + + +[ক্লায়েন্ট বৈচিত্র্য](/developers/docs/nodes-and-clients/client-diversity/) সমর্থন করার গুরুত্ব অনুগ্রহ করে মনে রাখবেন কারণ এটি নেটওয়ার্কের নিরাপত্তা উন্নত করে এবং আপনার ঝুঁকি সীমিত করে। যে পরিষেবাগুলিতে সংখ্যাগরিষ্ঠ ক্লায়েন্টের ব্যবহার সীমিত করার প্রমাণ রয়েছে সেগুলি দিয়ে নির্দেশিত হয় "এক্সিকিউশন ক্লায়েন্ট বৈচিত্র্য" এবং "কনসেনসাস ক্লায়েন্ট বৈচিত্র্য।" + +### কী জেনারেটর সমূহ + + + +আমরা মিস করেছি এমন কোন স্টেকিং-অ্যাস-এ-সার্ভিস সরবরাহকারীর পরামর্শ আছে? আমাদের [পণ্য তালিকা নীতি](/contributing/adding-staking-products/) দেখুন এটি উপযুক্ত কিনা তা দেখতে এবং পর্যালোচনার জন্য জমা দিতে। + +## Frequently asked questions {#faq} + + +ব্যবস্থাগুলি প্রদানকারী থেকে প্রদানকারীর থেকে পৃথক হবে, তবে সাধারণত আপনাকে আপনার প্রয়োজনীয় যেকোন সাইনিং কী সেট আপ করার মাধ্যমে নির্দেশিত হবে (প্রতি 32 ETH-এ একটি), এবং আপনার পক্ষ থেকে তাদের যাচাই করার অনুমতি দেওয়ার জন্য সেগুলি আপনার প্রদানকারীর কাছে আপলোড করার মাধ্যমে। স্বাক্ষরকারী কীগুলি একা আপনার তহবিল প্রত্যাহার, স্থানান্তর বা ব্যয় করার কোনও ক্ষমতা দেয় না। যাইহোক, তারা ঐকমত্যের দিকে ভোট দেওয়ার ক্ষমতা প্রদান করে, যা সঠিকভাবে না করা হলে অফলাইন জরিমানা বা কমানো হতে পারে। + + + +হ্যাঁ। প্রতিটি অ্যাকাউন্টে উভয় BLS সাইনিং কী এবং BLS প্রত্যাহার কী রয়েছে। চেইনের অবস্থা প্রমাণ করার জন্য একজন যাচাইকারীর জন্য, সিঙ্ক কমিটিতে অংশগ্রহণ করতে এবং ব্লক প্রস্তাব করার জন্য, সাইনিং কীগুলি অবশ্যই একজন যাচাইকারী ক্লায়েন্টের দ্বারা সহজেই অ্যাক্সেসযোগ্য হতে হবে। এগুলিকে অবশ্যই কোনো না কোনো আকারে ইন্টারনেটের সাথে সংযুক্ত থাকতে হবে এবং এইভাবে এগুলোকে "হট" কী হিসেবে বিবেচনা করা হয়। এটি আপনার যাচাইকারীর জন্য একটি প্রয়োজনীয়তা যা সত্যায়িত করতে সক্ষম হবেন এবং এইভাবে তহবিল স্থানান্তর বা উত্তোলনের জন্য ব্যবহৃত কীগুলি নিরাপত্তার কারণে আলাদা করা হয়। + +BLS প্রত্যাহার কীগুলি একটি এককালীন বার্তা স্বাক্ষর করতে ব্যবহার করা হয় যা ঘোষণা করে যে কোন এক্সিকিউশন লেয়ার অ্যাকাউন্ট স্টেকিং রিওয়ার্ড এবং প্রস্থান করা তহবিলগুলি যেতে হবে। একবার এই বার্তাটি সম্প্রচার করা হলে, BLS প্রত্যাহার কীগুলির আর প্রয়োজন নেই। পরিবর্তে, উত্তোলিত তহবিলের উপর নিয়ন্ত্রণ স্থায়ীভাবে আপনার দেওয়া ঠিকানায় অর্পণ করা হয়। এটি আপনাকে আপনার নিজের কোল্ড স্টোরেজের মাধ্যমে সুরক্ষিত একটি উত্তোলনের ঠিকানা সেট করতে দেয়, আপনার যাচাইকারী তহবিলের ঝুঁকি কমিয়ে দেয়, এমনকি যদি অন্য কেউ আপনার ভ্যালিডেটর সাইনিং কীগুলি নিয়ন্ত্রণ করে। + +প্রত্যাহার শংসাপত্রগুলি আপডেট করা প্রত্যাহার সক্ষম করার জন্য একটি প্রয়োজনীয় পদক্ষেপ\*। এই প্রক্রিয়াটি আপনার স্মৃতিবিজড়িত সীড বাক্যাংশ ব্যবহার করে প্রত্যাহার কী তৈরি করা সাথে জড়িত। + +নিশ্চিত করুন যে আপনি এই সীড বাক্যাংশটি নিরাপদে ব্যাক আপ করেছেন বা সময় এলে আপনি আপনার উইথড্র কী তৈরি করতে পারবেন না। + +প্রাথমিক আমানত সহ একটি উত্তোলনের ঠিকানা প্রদানকারী স্টেকারদের এটি সেট করার প্রয়োজন নেই। আপনার যাচাইকারীকে কীভাবে প্রস্তুত করবেন সেই বিষয়ে সহায়তার জন্য আপনার SaaS প্রদানকারীর সাথে যোগাযোগ করুন। + + + +2023 সালের এপ্রিলে Shanghai/Capella আপগ্রেডে স্টেকিং প্রত্যাহার কার্যকর করা হয়েছিল। স্টেকারদের একটি প্রত্যাহার ঠিকানা প্রদান করতে হবে (প্রাথমিক আমানতের ক্ষেত্রে প্রদান করা না হলে), এবং পুরস্কার প্রদানগুলি প্রতি কয়েক দিনে পর্যায়ক্রমিক ভিত্তিতে স্বয়ংক্রিয়ভাবে বিতরণ করা শুরু হবে। + +বৈধকারীরাও সম্পূর্ণরূপে বৈধকারী হিসাবে প্রস্থান করতে পারেন, যা তাদের অবশিষ্ট ETH ব্যালেন্সকে তুলে আনবে। যে অ্যাকাউন্টগুলি একটি এক্সিকিউশন প্রত্যাহার ঠিকানা প্রদান করেছে এবং প্রস্থান প্রক্রিয়া সম্পন্ন করেছে তারা পরবর্তী বৈধতা প্রদানকারীর সময় প্রদত্ত প্রত্যাহার ঠিকানায় তাদের সম্পূর্ণ ব্যালেন্স পাবে। + +স্টেকিং প্রত্যাহার এর উপর আরো + + + +একটি SaaS সরবরাহকারী ব্যবহার করে, আপনি আপনার নোডের অপারেশন অন্য কারও কাছে হস্তান্তর করছেন। এটি দুর্বল নোড পারফরম্যান্সের ঝুঁকি নিয়ে আসে, যা আপনার নিয়ন্ত্রণে নেই। যদি আপনার বৈধতা হ্রাস করা হয় তবে আপনার বৈধতা ব্যালেন্সটি জরিমানা করা হবে এবং বৈধতা পুল থেকে জোর করে সরানো হবে। + +স্ল্যাশিং/প্রস্থান প্রক্রিয়া শেষ হওয়ার পরে, এই তহবিলগুলি যাচাইকারীকে নির্ধারিত প্রত্যাহার ঠিকানায় স্থানান্তর করা হবে। এটি সক্ষম করার জন্য একটি উইথড্রয়াল এড্রেস প্রদান করা প্রয়োজন। এটি প্রাথমিক আমানত প্রদান করা হতে পারে। যদি তা না হয়, তাহলে প্রত্যাহারের ঠিকানা ঘোষণা করে একটি বার্তা স্বাক্ষর করার জন্য যাচাইকারী প্রত্যাহার কী ব্যবহার করতে হবে। যদি কোন উইথড্রয়াল এড্রেস প্রদান করা না হয়, তহবিল প্রদান না হওয়া পর্যন্ত লক থাকবে। + +যেকোনো গ্যারান্টি বা বীমা বিকল্প সম্পর্কে আরও বিশদ বিবরণের জন্য এবং কীভাবে প্রত্যাহারের ঠিকানা প্রদান করতে হয় তার নির্দেশাবলীর জন্য পৃথক SaaS প্রদানকারীর সাথে যোগাযোগ করুন। আপনি যদি আপনার ভ্যালিডেটর সেটআপের সম্পূর্ণ নিয়ন্ত্রণে থাকতে চান, তাহলে কীভাবে আপনার ETH এককভাবে দখল করবেন সে সম্পর্কে আরও জানুন। + + +## Further reading {#further-reading} + +- [স্টেকিং পরিষেবার মূল্যায়ন](https://www.attestant.io/posts/evaluating-staking-services/) - _Jim McDonald 2020_ diff --git a/public/content/translations/bn/staking/solo/index.md b/public/content/translations/bn/staking/solo/index.md new file mode 100644 index 00000000000..8b2ae991e44 --- /dev/null +++ b/public/content/translations/bn/staking/solo/index.md @@ -0,0 +1,203 @@ +--- +title: আপনার ETH দিয়ে স্বতন্ত্র স্টেক করুন +description: আপনার স্বতন্ত্র ETH স্টেকিং কিভাবে শুরু করবেন তার একটি ওভারভিউ +lang: bn +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-solo.png +alt: Leslie the rhino তার নিজের কম্পিউটার চিপে। +sidebarDepth: 2 +summaryPoints: + - আপনার যাচাইকারীকে সঠিকভাবে কাজ করে এবং অনলাইনে রাখার জন্য প্রোটোকল থেকে সরাসরি সর্বাধিক পুরষ্কার পান + - হোম হার্ডওয়্যার চালান এবং ব্যক্তিগতভাবে ইথেরিয়াম নেটওয়ার্কের নিরাপত্তা এবং বিকেন্দ্রীকরণ যোগ করুন + - কাউকে বিশ্বাস করবেন না, এবং আপনার তহবিলের চাবিগুলির নিয়ন্ত্রণ কখনই ছেড়ে দেবেন না +--- + +## সলো স্টেকিং কি? {#what-is-solo-staking} + +সোলো স্টেকিং হল ইন্টারনেটের সাথে সংযুক্ত [একটি ইথেরিয়াম নোড চালানো](/run-a-node/) এবং একটি [বৈধকারী](#faq) সক্রিয় করার জন্য 32 ETH জমা করার কাজ, যা আপনাকে নেটওয়ার্ক সম্মতিতে সরাসরি অংশগ্রহণ করার ক্ষমতা দেয়। + +**সলো স্টেকিং ইথেরিয়াম নেটওয়ার্কের বিকেন্দ্রীকরণ বাড়ায়**, ইথেরিয়ামকে আরো সেন্সরশিপ-প্রতিরোধী এবং আক্রমণের বিরুদ্ধে শক্তিশালী করে তোলে। অন্যান্য স্টেকিং পদ্ধতিগুলি একই ভাবে নেটওয়ার্ককে সাহায্য করতে পারে না। ইথেরিয়াম সুরক্ষিত করার জন্য সোলো স্টেকিং হল সেরা স্টেকিং বিকল্প। + +একটি ইথেরিয়াম নোড উভয়ই একটি এক্সিকিউশন লেয়ার (EL) ক্লায়েন্ট, সেইসাথে একটি কনসেনসাস লেয়ার (CL) ক্লায়েন্ট নিয়ে গঠিত। এই ক্লায়েন্টগুলি হল সফ্টওয়্যার যেগুলি সাইনিং কীগুলির একটি বৈধ সেট সহ, লেনদেন এবং ব্লকগুলি যাচাই করার জন্য, চেইনের সঠিক প্রধানকে সত্যায়িত করতে, সমষ্টিগত প্রত্যয়নগুলি এবং ব্লকগুলি প্রস্তাব করার জন্য একসাথে কাজ করে। + +সোলো স্টেকাররা এই ক্লায়েন্টদের চালানোর জন্য প্রয়োজনীয় হার্ডওয়্যার পরিচালনার জন্য দায়ী। এটির জন্য একটি ডেডিকেটেড মেশিন ব্যবহার করার পরামর্শ দেওয়া হয় যা আপনি বাড়ি থেকে পরিচালনা করেন-এটি নেটওয়ার্কের স্বাস্থ্যের জন্য অত্যন্ত উপকারী। + +একজন একক স্টেকার তাদের যাচাইকারীকে সঠিকভাবে কাজ করে এবং অনলাইনে রাখার জন্য প্রোটোকল থেকে সরাসরি পুরষ্কার পায়। + +## কেন একা স্টেক করবেন? {#why-stake-solo} + +সোলো স্টেকিং আরও দায়িত্ব নিয়ে আসে কিন্তু আপনাকে আপনার তহবিল এবং স্টেকিং সেটআপের উপর সর্বাধিক নিয়ন্ত্রণ প্রদান করে। + + + + + + + +## সোলো স্টেকিং এর আগে যা যা বিবেচনা করা উচিত {#considerations-before-staking-solo} + +আমরা যতই আশা করি যে সোলো স্টেকিং সবার জন্য অ্যাক্সেসযোগ্য এবং ঝুঁকিমুক্ত হবে, আসলে সেটা হয়না। আপনার ETH সোলো স্টেক করার আগে কিছু ব্যবহারিক এবং গুরুতর বিষয় মাথায় রাখতে হবে। + + + +আপনার নিজের নোড পরিচালনা করার সময় আপনার বেছে নেওয়া সফ্টওয়্যারটি কীভাবে ব্যবহার করবেন তা শিখতে কিছু সময় ব্যয় করা উচিত। এর মধ্যে প্রাসঙ্গিক নথিপত্র পড়া এবং সেই ডেভেলপার টিমের যোগাযোগের চ্যানেলগুলির সাথে মানিয়ে নেওয়া জড়িত। + +আপনি যে সফ্টওয়্যারটি চালাচ্ছেন এবং কীভাবে প্রুফ-অফ-স্টেক কাজ করে সে সম্পর্কে আপনি যত বেশি বুঝবেন, স্টেকার হিসাবে আপনার জন্য ঝুঁকি ততটা কম হবে এবং নোড অপারেটর হিসাবে যে কোনও সমস্যার সম্মুখীন হলে সেটা সমাধান করা ততটাই সহজ হবে। + + + +কম্পিউটারের মাধ্যমে কাজ করার সময় নোড সেটআপের জন্য আপনাকে কিছু কাজ করতে হবে, যদিও নতুন টুলস সময়ের সাথে সাথে কাজ আরও সহজ করে তুলছে। কমান্ড-লাইন ইন্টারফেস বোঝা সহায়ক, কিন্তু এখন এটা আর একদমই আবশ্যিক না। + +এটির জন্য খুব প্রাথমিক হার্ডওয়্যার সেটআপ করা এবং ন্যূনতম সুপারিশকৃত স্পেসিফিকেশন বোঝা প্রয়োজন। + + + +ঠিক যেমন ব্যক্তিগত কীগুলি আপনার ইথেরিয়াম ঠিকানাকে সুরক্ষিত করে, আপনাকে বিশেষভাবে আপনার ভ্যালিডেটরের জন্য কীগুলি তৈরি করতে হবে। আপনাকে অবশ্যই বুঝতে হবে যে কোন সীড ফ্রেজ বা ব্যক্তিগত কীগুলিকে কীভাবে নিরাপদ ও সুরক্ষিত রাখতে হয়।{' '} + +ইথেরিয়াম নিরাপত্তা এবং স্ক্যাম প্রতিরোধ + + + +হার্ডওয়্যার মাঝে মাঝে ব্যর্থ হতে পারে, নেটওয়ার্ক সংযোগ ত্রুটি হয় এবং ক্লায়েন্ট সফ্টওয়্যার মাঝে মাঝে আপগ্রেড করার প্রয়োজন হয়। নোড রক্ষণাবেক্ষণ অনিবার্য এবং মাঝে মাঝে এ বিষয়ে আপনাকে মনোযোগ দিতে হবে। আপনাকে যেকোন প্রত্যাশিত নেটওয়ার্ক আপগ্রেড বা অন্যান্য গুরুত্বপূর্ণ ক্লায়েন্ট আপগ্রেড সম্পর্কে সচেতন থাকতে হবে। + + + +আপনার পুরষ্কারগুলি আপনার ভ্যালিডেটর অনলাইনে থাকা এবং সঠিকভাবে সত্যায়িত করার সময়ের সমানুপাতিক। ডাউনটাইমের শাস্তির একই সময়ে অন্য কতজন ভ্যালিডেটর অফলাইন আছে তার সমানুপাতিক তবে এর ফলে স্ল্যাশিং করা হয় না। ব্যান্ডউইথও গুরুত্বপূর্ণ, কারণ সময়মতো প্রাপ্ত না হওয়া সত্যায়নের জন্য পুরষ্কারের পরিমাণ কমে যায়। প্রয়োজনীয়তা পরিবর্তিত হবে, তবে ন্যূনতম 10 Mb/s আপ এবং ডাউন স্পিড ব্যবহার করতে পরামর্শ দেওয়া হয়। + + + +অফলাইন থাকার জন্য নিষ্ক্রিয়তার শাস্তির থেকে আলাদা, স্ল্যাশিং হল গুরুত্বর অপরাধের জন্য সংরক্ষিত আরও গুরুতর শাস্তি। একটি মাইনরিটি ক্লায়েন্ট চালানোর মাধ্যমে আপনার চাবিগুলি একই সময়ে শুধুমাত্র একটি মেশিনে লোড করে, আপনার স্ল্যাশ হওয়ার ঝুঁকি হ্রাস করা যায়। তাই, সকল স্টেকারদের অবশ্যই স্ল্যাশিং এর ঝুঁকি সম্পর্কে সচেতন হতে হবে। + + স্ল্যাশিং এবং ভ্যালিডেটর লাইফসাইকেল সম্পর্কে আরও + + + + + +## কিভাবে এটা কাজ করে {#how-it-works} + + + +সক্রিয় থাকাকালীন আপনি ETH পুরষ্কার অর্জন করবেন, যা পর্যায়ক্রমে আপনার উত্তোলনের ঠিকানায় জমা করা হবে। + +যদি কখনও ইচ্ছা হয়, আপনি একজন ভ্যালিডেটর হিসাবে প্রস্থান করতে পারেন যা অনলাইনে থাকার প্রয়োজনীয়তাকে দূর করে, এবং পুরস্কার প্রাপ্তি বন্ধ করে দেয়। আপনার অবশিষ্ট ব্যালেন্স তারপর আপনার সেটআপের সময় মনোনীত করা উত্তোলনের ঠিকানায় উত্তোলন করা হবে। + +[স্টেকিং প্রত্যাহার এর উপর আরো](/staking/withdrawals/) + +## স্টেকিং লঞ্চপ্যাডে শুরু করুন {#get-started-on-the-staking-launchpad} + +স্টেকিং লঞ্চপ্যাড হল একটি ওপেন সোর্স অ্যাপ্লিকেশন যা আপনাকে স্টেকার হতে সাহায্য করবে। এটি আপনাকে আপনার ক্লায়েন্ট বাছাই করার, আপনার কী তৈরি করার এবং স্টেকিং ডিপোজিট চুক্তিতে আপনার ETH জমা করার বিষয়ে গাইড করবে। আপনার ভ্যালিডেটরকে নিরাপদে সেট আপ করার জন্য আপনি সবকিছু করেছেন তা নিশ্চিত করার জন্য একটি চেকলিস্ট প্রদান করা হয়। + + + +## নোড এবং ক্লায়েন্ট সেটআপ টুলসের ক্ষেত্রে কি কি বিষয় মাথায় রাখা উচিত {#node-tool-considerations} + +আপনাকে ETH স্বতন্ত্রভাবে স্টেক করতে সাহায্য করার জন্য থাকা টুলস এবং পরিষেবার সংখ্যা দিন দিন বাড়ছে, তবে প্রতিটির সাথেই বিভিন্ন ঝুঁকি এবং সুবিধা রয়েছে। + +একটি তালিকাভুক্ত স্টেকিং টুলস থাকতে পারে এমন উল্লেখযোগ্য শক্তি বা দুর্বলতাগুলো নির্দেশ করতে নীচে অ্যাট্রিবিউট ইন্ডিকেটর ব্যবহার করা হয়েছে। আপনার স্টেকিং যাত্রায় সাহায্য করার জন্য কোন টুলস বেছে নেওয়ার সময় আমরা কীভাবে এই বৈশিষ্ট্যগুলিকে সংজ্ঞায়িত করি তা জানতে এই বিভাগটিকে রেফারেন্স হিসাবে ব্যবহার করুন। + + + +## নোড এবং ক্লায়েন্ট সেটআপ টুলস এক্সপ্লোর করুন {#node-and-client-tools} + +আপনার সেটআপে আপনাকে সাহায্য করার জন্য বিভিন্ন বিকল্প উপলব্ধ রয়েছে। নীচের টুলসের মাধ্যমে আপনাকে গাইড করতে সাহায্য করার জন্য উপরের সূচকগুলি ব্যবহার করুন। + + + +### নোড টুলস + + + +একটি [মাইনরিটি ক্লায়েন্ট](/developers/docs/nodes-and-clients/client-diversity/) বেছে নেওয়া অত্যান্ত গুরুত্বপূর্ণ কারণ এটি নেটওয়ার্কের নিরাপত্তা উন্নত করে এবং আপনার ঝুঁকি সীমিত করে। যে টুলস আপনাকে মাইনরিটি ক্লায়েন্ট সেটআপ করতে দেয় সেগুলি "মাল্টি-ক্লায়েন্ট" হিসাবে চিহ্নিত করা হয়। + +### কী জেনারেটর সমূহ + +কী জেনারেশনে সহায়তা করার জন্য এই টুলস [স্টেকিং ডিপোজিট CLI](https://github.com/ethereum/staking-deposit-cli/) এর বিকল্প হিসাবে ব্যবহার করা যেতে পারে। + + + +আমরা মিস করেছি একটি স্টেকিংয়ের টুলস জন্য আপনার পরামর্শ আছে? আমাদের [পণ্য তালিকা নীতি](/contributing/adding-staking-products/) দেখুন এটি উপযুক্ত কিনা তা দেখতে এবং পর্যালোচনার জন্য জমা দিতে। + +## সোলো স্টেকিং গাইড এক্সপ্লোর করুন {#staking-guides} + + + +## Frequently asked questions {#faq} + +স্টেকিং সম্পর্কে কয়েকটি সাধারণ প্রশ্নের উত্তর যা জানা গুরুত্বপূর্ণ। + + + +একটি ভ্যালিডেটর হল একটি ভার্চুয়াল সত্তা যা ইথেরিয়ামে বাস করে এবং ইথেরিয়াম প্রোটোকলের ঐকমত্যে অংশগ্রহণ করে। যাচাইকারীদের একটি ব্যালেন্স, পাবলিক কী এবং অন্যান্য বৈশিষ্ট্য দ্বারা প্রতিনিধিত্ব করা হয়। একটি ভ্যালিডেটর ক্লায়েন্ট হল এমন একটি সফ্টওয়্যার যা তার ব্যক্তিগত কী ধরে রেখে এবং ব্যবহার করে যাচাইকারীর পক্ষে কাজ করে। একটি একক যাচাইকারী ক্লায়েন্ট অনেকগুলি কী জোড়া ধরে রাখতে পারে, যা অনেকগুলি যাচাইকারীকে নিয়ন্ত্রণ করে। + + + + +ভ্যালিডেটরের সাথে যুক্ত প্রতিটি কী-পেয়ার সক্রিয় করার জন্য ঠিক 32 ETH প্রয়োজন। কীগুলির একটি একক সেটে বেশি ETH জমা করা হলে পুরস্কারের সম্ভাবনা বাড়ে না, কারণ প্রতিজন ভ্যালিডেটরের জন্য 32 ETH কার্যকরী ব্যালেন্স হিসাবে গণ্য করা হয়। এর অর্থ হল স্টেকিং 32 ETH ইনক্রিমেন্ট করা হয়, যার প্রতিটির নিজস্ব চাবি এবং ব্যালেন্স রয়েছে। + +একক ভ্যালিডেটরের জন্য 32 ETH এর বেশি জমা করবেন না। এটা আপনার পুরস্কার বৃদ্ধি করবে না। যদি ভ্যালিডেটরের জন্য একটি উত্তোলনের ঠিকানা সেট করা থাকে, তাহলে পরবর্তী ভ্যালিডেটর সুইপ-এর সময় 32 ETH-এর বেশি অতিরিক্ত তহবিল স্বয়ংক্রিয়ভাবে এই ঠিকানায় উত্তোলন করা হবে। + +যদি সোলো স্টেকিং আপনার জন্য অনেক বেশি বলে মনে হয়, তাহলে একটি স্টেকিং-অ্যাস-এ-সার্ভিস প্রদানকারী ব্যবহার করার কথা বিবেচনা করুন, অথবা আপনি যদি 32 ETH-এর কম নিয়ে কাজ করেন, তাহলে স্টেকিং পুলগুলো চেক করুন। + + + +নেটওয়ার্ক সঠিকভাবে চূড়ান্ত হওয়ার সময় অফলাইনে যাওয়ার ফলে স্ল্যাশিং করা হবে না। নিষ্ক্রিয়তার জন্য ছোট জরিমানা করা হয় যদি আপনার ভ্যালিডেটর প্রদত্ত ইপোকে (প্রতিটি 6.4 মিনিট দীর্ঘ) প্রত্যয়িত করার জন্য এভেইলেবল না থাকে তবে এটি স্ল্যাশিং থেকে খুব আলাদা। যদি ভ্যালিডেটর সত্যায়িত করার জন্য এভেইলেবল থাকত তাহলে আপনার অর্জিত পুরষ্কারের চেয়ে এই জরিমানাগুলি কিছুটা কম এবং ক্ষতিগুলি আবার অনলাইনে প্রায় সমান পরিমাণ সময় দেওয়ার মাধ্যমে ফিরে পাওয়া যেতে পারে। + +মনে রাখবেন যে নিষ্ক্রিয়তার জন্য জরিমানা একই সময়ে কতজন ভ্যালিডেটর অফলাইনে রয়েছে তার সমানুপাতিক। এমন ক্ষেত্রে যেখানে নেটওয়ার্কের একটি বৃহৎ অংশ একবারে অফলাইনে থাকে, সকল ভ্যালিডেটরের জন্য জরিমানা একজন একক ভ্যালিডেটরের এভেইলেবন না থাকার কারণে হওয়া জরিমানার থেকে বেশি হবে। + +চরম ক্ষেত্রে যদি এক তৃতীয়াংশেরও বেশি ভ্যালিডেটর অফলাইনে থাকার ফলে নেটওয়ার্ক ফাইনালাইজ করা বন্ধ করে দেয়, তাহলে এই ব্যবহারকারীরা ক্ষতিগ্রস্ত হবেন যাকে কোয়াড্রেটিক ইন্যাকটিভ লিক বলা হয়, যা হলো অফলাইন ভ্যালিডেটর অ্যাকাউন্ট থেকে ETH-এর একটি এক্সপোনেনশিয়াল ড্রেইন। এটি নেটওয়ার্কটিকে নিষ্ক্রিয় ভ্যালিডেটরদের ব্যালেন্স 16 ETH-এ না পৌঁছানো পর্যন্ত ETH বার্ন করে নেটওয়ার্ককে সেলফ-হিল হতে দেয়, এই সময়ে ভ্যালিডেটরদেরকে তাদের ভ্যালিডেটর পুল থেকে স্বয়ংক্রিয়ভাবে বের করে দেওয়া হয়। অবশিষ্ট অনলাইন ভ্যালিডেটররা আবার 2/3টি নেটওয়ার্ক নিয়ে নেটওয়ার্ক গঠন করবে যা চেইনটি আবার চূড়ান্ত করার জন্য প্রয়োজনীয় সুপারমেজরিটিকে সন্তুষ্ট করবে। + + + +সংক্ষেপে, এটি কখনই পুরোপুরি নিশ্চিত করা যায় না, তবে আপনি যদি ভাল বিশ্বাসে কাজ করেন, একটি মাইনরিটি ক্লায়েন্ট চালান এবং একবারে কেবল মাত্র একটি মেশিনে আপনার সাইনিং কী রাখেন তবে স্ল্যাশ হওয়ার ঝুঁকি প্রায় শূন্য। + +শুধুমাত্র কয়েকটি নির্দিষ্ট উপায় রয়েছে যার ফলে একজন ভ্যালিডেটরকে নেটওয়ার্ক থেকে স্ল্যাশ করা এবং বের করে দেওয়া হতে পারে। লেখার সময়, যে স্ল্যাশিংগুলি ঘটেছে তা মূলত অপ্রয়োজনীয় হার্ডওয়্যার সেটআপের কারণে হয়েছে যেখানে সাইনিং কী একবারে দুটি আলাদা মেশিনে সংরক্ষণ করা হয়েছিলো। এটি অসাবধানতাবশত আপনার কীগুলির মাধ্যমে একটি ডাবল ভোট দিতে পারে, যা একটি স্ল্যাশযোগ্য অপরাধ। + +একটি সুপারমেজরিটি ক্লায়েন্ট (নেটওয়ার্কের 2/3 এরও বেশি দ্বারা ব্যবহৃত যে কোনও ক্লায়েন্ট) চালালে যদি সেই ক্লায়েন্টে চেইন ফোর্ক করে এমন কোনো বাগ থাকে তাহলে স্ল্যাশিং এর ঝুঁকি থাকে। এর ফলে একটি ত্রুটিপূর্ণ ফর্ক হতে পারে যা চূড়ান্ত হয়ে যায়। কাঙ্ক্ষিত চেইন ফিরে যাওয়ার জন্য চূড়ান্ত ব্লকটি বাতিল করার চেষ্টা করে একটি সারাউন্ড ভোট জমা দিতে হবে। এটি একটি স্ল্যাশযোগ্য অপরাধ এবং এর পরিবর্তে কেবল একটি মাইনরিটি ক্লায়েন্ট চালানোর মাধ্যমে এড়ানো যেতে পারে। + +একটি মাইনরিটি ক্লায়েন্টের বাগ কখনই চূড়ান্ত হবে না এবং এইভাবে কখনই এর ফলে একটি সারাউন্ড ভোটের নেওয়া হবে না এবং এটা কারণে শুধুমাত্র নিষ্ক্রিয়তার শাস্তি পেতে পারেন, স্ল্যাশিং নয়। + + + + + +প্রতিটি ক্লায়েন্ট কর্মক্ষমতা এবং ব্যবহারকারী ইন্টারফেসের ক্ষেত্রে সামান্য পরিবর্তিত হতে পারে, কারণ প্রতিটি ক্লায়েন্ট বিভিন্ন দল বিভিন্ন প্রোগ্রামিং ভাষা ব্যবহার করে তৈরি করে। তাই, তাদের কেউই "সেরা" নয়। সকল প্রোডাকশন ক্লায়েন্ট চমৎকার একটি সফ্টওয়্যার, যেগুলি ব্লকচেইনের সাথে সিঙ্ক এবং ইন্টারঅ্যাক্ট করার জন্য একই কোর ফাংশন সম্পাদন করে। + +যেহেতু সকল প্রোডাকশন ক্লায়েন্ট একই মৌলিক কার্যকারিতা প্রদান করে, তাই আপনার একটি মাইনরিটি ক্লায়েন্ট বেছে নেওয়া খুবই গুরুত্বপূর্ণ, যার অর্থ এমন যেকোন ক্লায়েন্ট বেছে নিন যা বর্তমানে নেটওয়ার্কের অধিকাংশ ভ্যালিডেটর দ্বারা ব্যবহার করা হচ্ছে না। এটি বিপরীতমুখী শোনাতে পারে, তবে একটি মেজরিটি বা সুপারমেজরিটি ক্লায়েন্ট চালানো আপনাকে সেই ক্লায়েন্টে একটি বাগ থাকার কারণে আপনার স্ল্যাশিং হওয়ার ঝুঁকি বাড়ায়। মাইনরিটি ক্লায়েন্ট চালানো এই ঝুঁকিগুলিকে মারাত্মকভাবে সীমিত করে। + +ক্লায়েন্টের বৈচিত্র্য কেন গুরুত্বপূর্ণ সে সম্পর্কে আরও জানুন + + + +যদিও একটি ভার্চুয়াল প্রাইভেট সার্ভার (VPS) হোম হার্ডওয়্যারের বিকল্প হিসাবে ব্যবহার করা যেতে পারে, আপনার ভ্যালিডেটর ক্লায়েন্টের ফিজিক্যাল অ্যাক্সেস এবং অবস্থান গুরুত্বপূর্ণ। Amazon Web Services বা Digital Ocean-এর মতো কেন্দ্রীভূত ক্লাউড সমাধানগুলি নেটওয়ার্ককে কেন্দ্রীভূত করার ব্যয়ে হার্ডওয়্যার অর্জন এবং পরিচালনা না করার সুবিধার অনুমতি দেয়। + +একক সেন্ট্রালাইজড ক্লাউড স্টোরেজ সলুশনে যত বেশি ভ্যালিডেটর ক্লায়েন্ট চলছে, সেটা ব্যবহারকারীদের জন্য তত বেশি বিপজ্জনক হয়ে ওঠে। কোনো অ্যাটাক, কর্তৃপক্ষের ডিমান্ড বা বিদ্যুৎ/ইন্টারনেট বিভ্রাট সহ যেকোনো কারণে এই সকল সেবা প্রদানকারীরা অফলাইনে চলে গেলে তাদের উপর নির্ভর করা প্রত্যেক ভ্যালিডেটর ক্লায়েন্টও একই সময়ে অফলাইনে চলে যাবে। + +অফলাইন জরিমানা একই সময়ে আরও কতজন অফলাইনে রয়েছে তার সমানুপাতিক। একটি VPS ব্যবহার অফলাইন জরিমানা আরও গুরুতর হওয়ার ঝুঁকি বাড়িয়ে তোলে এবং বিভ্রাটটি যথেষ্ট বড় হলে আপনার কোয়াড্রেটিঙ্ক লিক হবার বা স্ল্যাশি হওয়ার ঝুঁকি বাড়িয়ে তোলে। আপনার নিজের ঝুঁকি এবং নেটওয়ার্কের ঝুঁকি হ্রাস করার জন্য, ব্যবহারকারীদের তাদের নিজস্ব হার্ডওয়্যার রাখতে এবং পরিচালনা করতে দৃঢ়ভাবে উত্সাহিত করা হয়। + + + + +বিকন চেইন থেকে যে কোনও ধরণের উত্তোলনের জন্য উত্তোলনের ক্রেডেনশিয়াল সেট করা প্রয়োজন। + +নতুন স্টেকাররা কী জেনারেট এবং ডিপোজিট করার সময় এটি সেট করে। বিদ্যমান স্টেকার যারা ইতিমধ্যে এটি সেট করেনি তারা এই কার্যকারিতা সমর্থন করতে তাদের কী আপগ্রেড করতে পারে। + +একবার উত্তোলনের ক্রেডেনশিয়াল সেট হয়ে গেলে, পুরস্কারের অর্থপ্রদান (প্রাথমিক 32-এর উপরে জমা হওয়া ETH) স্বয়ংক্রিয়ভাবে উত্তোলনের ঠিকানায় পর্যায়ক্রমে বিতরণ করা হবে। + +আনলক করতে এবং আপনার সম্পূর্ণ ব্যালেন্স ফেরত পেতে আপনাকে অবশ্যই আপনার ভ্যালিডেটর বের করার প্রক্রিয়াটি সম্পূর্ণ করতে হবে। + +স্টেকিং প্রত্যাহার এর উপর আরো + + +## Further reading {#further-reading} + +- [ইথেরিয়ামের ক্লায়েন্টের বৈচিত্র্যের সমস্যা](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuellawosika 2022_ +- [ক্লায়েন্ট বৈচিত্র্যকে সাহায্য করা](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ +- [ইথেরিয়ামের কনসেনসাস লেয়ারে ক্লায়েন্ট বৈচিত্র্য](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ +- [কিভাবে: ইথেরিয়াম ভ্যালিডেটর হার্ডওয়্যারের জন্য কেনাকাটা করবেন](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ +- [ধাপে ধাপে: কিভাবে ইথেরিয়াম 2.0 টেস্টনেটে যোগদান করবেন](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _ Butta_ +- [Eth2 স্ল্যাশিং প্রতিরোধ টিপস](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raul Jordan 2020_ diff --git a/public/content/translations/bn/staking/withdrawals/index.md b/public/content/translations/bn/staking/withdrawals/index.md new file mode 100644 index 00000000000..f951e52d6b3 --- /dev/null +++ b/public/content/translations/bn/staking/withdrawals/index.md @@ -0,0 +1,218 @@ +--- +title: স্টেকিং উইথড্রয়াল +description: স্টেকিং পুশ উত্তোলন কি, সেগুলি কীভাবে কাজ করে এবং সেগুলোর জন্য পুরষ্কার পেতে স্টেকদের কী করতে হবে তার সংক্ষিপ্ত বিবরণীর পেজ +lang: bn +template: staking +image: /staking/leslie-withdrawal.png +alt: Leslie the rhino তার স্টেকিং পুরষ্কার সহ +sidebarDepth: 2 +summaryPoints: + - Shanghai/Capella আপগ্রেড ইথেরিয়াম-এ স্টেকিং প্রত্যাহার সক্ষম করেছে + - ভ্যালিডেটর অপারেটরদের অবশ্যই একটি উত্তোলনের ঠিকানা প্রদান করতে হবে + - পুরস্কার স্বয়ংক্রিয়ভাবে কয়েক দিন পর পর বিতরণ করা হয় + - যেসকল ভ্যালিডেটররা সম্পূর্ণরূপে স্টেকিং থেকে প্রস্থান করে তারা তাদের অবশিষ্ট ব্যালেন্স পাবেন +--- + + +12 এপ্রিল, 2023-এ ঘটে যাওয়া Shanghai/Capella আপগ্রেডের মাধ্যমে স্টেকিং উত্তোলনের ব্যবস্থা সক্ষম করা হয়েছিল। Shanghai/Capella সম্পর্কে আরও + + +**স্টেকিং উইথড্রয়ালস** ইথেরিয়ামের কনসেনসাস লেয়ার (বিকন চেইন) এর একটি ভ্যালিডেটর অ্যাকাউন্ট থেকে এক্সিকুশন লেয়ারে ETH-এর স্থানান্তরকে বোঝায় যেখানে এটির সাথে লেনদেন করা যেতে পারে। + +ব্যবহারকারী দ্বারা প্রদান করা হলে 32 ETH এর বেশি **অতিরিক্ত ব্যালেন্সের পুরষ্কার** স্বয়ংক্রিয়ভাবে এবং নিয়মিতভাবে প্রতিটি ভ্যালিডেটরের সাথে লিঙ্ক করা একটি উত্তোলনের ঠিকানায় পাঠানো হবে। ব্যবহারকারীরা তাদের সম্পূর্ণ ভ্যালিডেটর ব্যালেন্স আনলক করে **সম্পূর্ণভাবে স্টেকিং থেকে প্রস্থান করতে পারেন**। + +## স্টেকিং এর পুরষ্কারসমূহ {#staking-rewards} + +সর্বাধিক 32 ETH এর কার্যকর ব্যালেন্স সহ সক্রিয় ভ্যালিডেটর অ্যাকাউন্টগুলির জন্য পুরস্কার প্রদান স্বয়ংক্রিয়ভাবে প্রক্রিয়া করা হয়। + +পুরষ্কারের মাধ্যমে অর্জিত 32 ETH-এর উপরে যে কোনও ব্যালেন্স প্রকৃতপক্ষে মূলে অবদান রাখে না বা নেটওয়ার্কে এই ভ্যালিডেটরের ওয়েট বাড়ায় না এবং এইভাবে কয়েক দিন পর পর পুরস্কার হিসাবে স্বয়ংক্রিয়ভাবে উত্তোলন করা হয়। একবার উত্তোলনের ঠিকানা প্রদান করা ছাড়া এই পুরস্কারগুলির জন্য ভ্যালিডেটরের অপারেটরের আর কোনো কিছু করতে হবে না। এটি সবই কনসেনসাস লেয়ারে শুরু করা হয়েছে, তাই কোনও ধাপে কোনও গ্যাস (লেনদেন ফি) প্রয়োজন হয় না। + +### আমরা কিভাবে এখানে আসলাম? {#how-did-we-get-here} + +আগের এনার্জি-ইন্টেন্সিভ মাইনিং এর পরিবর্তে গত কয়েক বছরে ইথেরিয়াম অনেকগুলি নেটওয়ার্ক আপগ্রেডের মধ্য দিয়ে যেয়ে ETH দ্বারা সুরক্ষিত একটি নেটওয়ার্কে রূপান্তরিত হয়েছে। ইথেরিয়াম-এ কনসেনসাসে অংশগ্রহণ করা এখন "স্টেকিং" নামে পরিচিত, কারণ অংশগ্রহণকারীরা নেটওয়ার্কে অংশগ্রহণ করার জন্য স্বেচ্ছায় ETH-কে "স্টেক করে" লক করে রেখেছে। যে ব্যবহারকারীরা নিয়মগুলি অনুসরণ করে তাদের পুরস্কৃত করা হবে, এবং প্রতারণার প্রচেষ্টার জন্য শাস্তি দেওয়া হতে পারে। + +2020 সালের নভেম্বরে স্টেকিং ডিপোজিট চুক্তি চালু হওয়ার পর থেকে, কিছু সাহসী ইথেরিয়াম অগ্রগামীরা "ভ্যালিডেটর" সক্রিয় করার জন্য স্বেচ্ছায় ফান্ড লক আপ করেছে, এগুলো বিশেষ অ্যাকাউন্ট যেগুলোর নেটওয়ার্ক নিয়ম অনুসরণ করে আনুষ্ঠানিকভাবে ব্লকগুলিকে প্রত্যয়িত করার এবং প্রস্তাব করার অধিকার রয়েছে। + +Shanghai/Capella আপগ্রেডের আগে, আপনি আপনার স্টেক করা ETH ব্যবহার বা অ্যাক্সেস করতে পারবেন না। কিন্তু এখন, আপনি একটি নির্বাচিত অ্যাকাউন্টে স্বয়ংক্রিয়ভাবে আপনার পুরষ্কারগুলি পাওয়ার জন্য অপ্ট-ইন করতে পারেন এবং আপনি যখনই চান আপনার স্টেক করা ETH প্রত্যাহার করতে পারেন। + +### আমি কিভাবে প্রস্তুতি নেব? {#how-do-i-prepare} + + + +### গুরুত্বপূর্ণ নোটিশ {#important-notices} + +ETH এর ব্যালেন্স থেকে উত্তোলন করার যোগ্য হওয়ার আগে যেকোন ভ্যালিডেটর অ্যাকাউন্টকে একটি উত্তোলনের ঠিকানা প্রদান করতে হবে। + + + প্রতিটি ভ্যালিডেটর অ্যাকাউন্টে একবার শুধুমাত্র একটি উত্তোলনের ঠিকানা বরাদ্দ করা যাবে। একবার একটি ঠিকানা বেছে নেওয়া হলে এবং কনসেনসাস লেভেলে জমা দেওয়া হলে, এটি পূর্বাবস্থায় ফেরানো বা পরিবর্তন করা যাবে না। জমা দেওয়ার আগে প্রদত্ত ঠিকানার মালিকানা এবং যথার্থতা দুবার চেক করুন। + + +এটি প্রদান না করার জন্য এই সময়ের মধ্যে আপনার তহবিলের কোনও হুমকি নেই, ধরে নিচ্ছি যে আপনার মেমোনিক/সীড ফ্রেজ অফলাইনে নিরাপদ আছে এবং কোনওভাবেই কম্প্রোমাইজ হয়নি। উত্তোলনের ক্রেডেনশিয়াল যোগ করতে ব্যর্থ হলে ETH ভ্যালিডেটর অ্যাকাউন্টে উত্তোলনের ঠিকানা না দেওয়া পর্যন্ত লক করে রাখা হবে। + +## স্টেকিং থেকে সম্পূর্ণরূপে প্রস্থান {#exiting-staking-entirely} + +_কোনো_ ফান্ড যাচাইকারী অ্যাকাউন্ট ব্যালেন্স থেকে স্থানান্তর করার আগে একটি উত্তোলনের ঠিকানা প্রদান করা প্রয়োজন। + +যে ব্যবহারকারীরা স্টেকিং থেকে সম্পূর্ণভাবে প্রস্থান করতে চাইছেন এবং তাদের সম্পূর্ণ ব্যালেন্স ফেরত নিতে চাইছেন তাদের অবশ্যই ভ্যালিডেতর কী এর মাধ্যমে একটি "স্বেচ্ছাসেবী প্রস্থান" বার্তা স্বাক্ষর এবং সম্প্রচার করতে হবে যা তাদের স্টেকিং থেকে প্রস্থান করার প্রক্রিয়া শুরু করবে। এটি আপনার ভ্যালিডেটর ক্লায়েন্টের সাথে করা হয় এবং আপনার কনসেনসাস নোডে জমা দেওয়া হয় এবং এতে কোনো গ্যাসের প্রয়োজন হয় না। + +স্টেকিং থেকে প্রস্থান করার প্রক্রিয়ার জন্য প্রয়োজনীয় সময় পরিবর্তনশীল, একই সময়ে অন্য কতজন প্রস্থান করছে তার উপর নির্ভর করে। একবার সম্পূর্ণ হয়ে গেলে, এই অ্যাকাউন্টটি আর ভ্যালিডেটর নেটওয়ার্কের দায়িত্ব পালনের জন্য দায়ী থাকবে না, পুরস্কারের জন্য আর যোগ্য নয় এবং তাদের ETH আর "স্টেকে" থাকবে না। এই সময়ে অ্যাকাউন্টটি সম্পূর্ণরূপে "উত্তোলনযোগ্য" হিসাবে চিহ্নিত করা হবে। + +একবার একটি অ্যাকাউন্টকে "উত্তোলনযোগ্য" হিসাবে ফ্ল্যাগ করা হলে এবং উত্তোলনের ক্রেডেনশিয়াল প্রদান করা হলে, ব্যবহারকারীকে অপেক্ষা করা ছাড়া আর কিছু করার দরকার নেই। অ্যাকাউন্টগুলো স্বয়ংক্রিয়ভাবে এবং চলমানভাবে ব্লক প্রস্তাবকারীদের দ্বারা যোগ্য প্রস্থান করা ফান্ডের জন্য সুইপ করা হয় এবং পরবর্তী সুইপের সময়ে আপনার অ্যাকাউন্টের ব্যালেন্স সম্পূর্ণরূপে স্থানান্তরিত হবে (এটি "সম্পূর্ণ উত্তোলন" হিসাবেও পরিচিত)। + +## কখন স্টেকিং উত্তোলন সক্রিয় করা হয়? {#when} + +স্টেকিং উত্তোলন এখন লাইভ! Shanghai/Capella আপগ্রেডের অংশ হিসাবে প্রত্যাহার কার্যকারিতা সক্ষম করা হয়েছিল যা 12 এপ্রিল, 2023 এ হয়েছিল। + +Shanghai/Capella আপগ্রেড পূর্বে স্টেক করা ETH-কে নিয়মিত ইথেরিয়াম অ্যাকাউন্টে পুনরুদ্ধার করতে সক্ষম করেছে। এটা লিকুইডিটি স্টেকিং এর ক্ষেত্রে লুপ বন্ধ করেছে এবং একটি টেকসই, স্কেলেবল, নিরাপদ ডিসেন্ট্রালাইজড ইকোসিস্টেম তৈরির দিকে ইথেরিয়ামকে তার যাত্রায় এক ধাপ কাছাকাছি নিয়ে যায়। + +- [ইথেরিয়ামের ইতিহাস সম্পর্কে আরো](/history/) +- [ইথেরিয়ামের রোডম্যাপে সম্পর্কে আরো](/roadmap/) + +## উত্তোলনের পেমেন্ট কিভাবে কাজ করে? {#how-do-withdrawals-work} + +প্রদত্ত ভ্যালিডেটর উত্তোলনের জন্য যোগ্য কিনা তা ভ্যালিডেটর অ্যাকাউন্টের অবস্থা দ্বারা নির্ধারিত হয়। একটি অ্যাকাউন্টে একটি অর্থ উত্তোলন শুরু করা উচিত কিনা তা নির্ধারণ করার জন্য ব্যবহারকারীর কোনো ইনপুটের প্রয়োজন নেই - সম্পূর্ণ প্রক্রিয়াটি একটি চলমান লুপে কনসেনসাস লেয়ারে স্বয়ংক্রিয়ভাবে সম্পন্ন হয়। + +### More of a visual learner? {#visual-learner} + +ইথেরিয়াম স্টেকিং উত্তোলন সম্পর্কে Finematics-এর এই ব্যাখ্যাটি দেখুন: + + + +### যাচাইকারী "সুইপিং" {#validator-sweeping} + +যখন একজন ভ্যালিডেটর পরবর্তী ব্লকের প্রস্তাব করার জন্য নির্ধারিত হন, তখন 16টি যোগ্য উত্তোলনের জন্য একটি উত্তোলন সারি তৈরি করতে হবে। এটি মূলত ভ্যালিডেটর ইনডেক্স 0 দিয়ে শুরু করে, প্রোটোকলের নিয়ম অনুসারে এই অ্যাকাউন্টের জন্য একটি যোগ্য উত্তোলন আছে কিনা তা নির্ধারণ করে এবং যদি থাকে তবে এটিকে সারিতে যোগ করে করা হয়। নিম্নোক্ত ব্লকটি প্রস্তাব করার জন্য সেট করা যাচাইকারী শেষটি যেখানে ছেড়ে গেছে সেখানেই উঠবে, অনির্দিষ্টকালের জন্য অগ্রসর হবে। + + +একটি এনালগ ঘড়ি সম্পর্কে চিন্তা করুন। ঘড়ির কাঁটা ঘণ্টার দিকে নির্দেশ করে, এক দিকে অগ্রসর হয়, কোনো ঘন্টা এড়িয়ে যায় না এবং শেষ সংখ্যায় পৌঁছানোর পরে আবার শুরু থেকে শুরু করে।

+এখন 1 থেকে 12 এর পরিবর্তে, কল্পনা করুন যে ঘড়িতে 0 থেকে N পর্যন্ত কাঁটা আছে (এখন পর্যন্ত কন্সেন্সাস লেয়ারে নিবন্ধিত হওয়া বৈধকারী অ্যাকাউন্টের মোট সংখ্যা, 2023 সালের জানুয়ারী পর্যন্ত 500,000 এর বেশি)।

+ঘড়িতে থাকা হাতটি পরবর্তী যাচাইকারীর দিকে নির্দেশ করে যা যোগ্য উত্তোলনের জন্য পরীক্ষা করা দরকার। এটি 0 এ শুরু হয় এবং কোনো অ্যাকাউন্ট এড়িয়ে না গিয়েই চারদিকে ঘুরে এগিয়ে যায়। যখন শেষ ভ্যালিডেটরে এটি পৌঁছে যায়, চক্রটি আবার শুরু থেকে চলতে থাকে। +
+ +#### অর্থ উত্তোলনের জন্য একটি অ্যাকাউন্ট চেক করা হচ্ছে {#checking-an-account-for-withdrawals} + +সম্ভাব্য উত্তোলনের সময় ভ্যালিডেটরের মধ্যে দিয়ে একজন প্রস্তাবক সুইপ করার সময়, উত্তোলন শুরু করা যাবে কিনা সেই বিষয়টির মূল্যায়ন করা হয় প্রত্যেকটি ভ্যালিডেটরকে বিভিন্ন প্রশ্নের ছোট সিরিজের মাধ্যমে, আর ইতিবাচক ফলাফলের ক্ষেত্রে কি পরিমাণে ETH উত্তোলন করা উচিত তাও গণনা করা হয়। + +1. **উত্তোলনের জন্য কোন ঠিকানা প্রদান করা হয়েছে কী?** যদি কোনো উত্তোলনের ঠিকানা প্রদান করা না হয়, তাহলে অ্যাকাউন্টটি এড়িয়ে যাওয়া হবে এবং কোনো উত্তোলন শুরু করা হবে না। +2. **ভ্যালিডেটর কি প্রস্থান করেছেন এবং তার অর্থ উত্তোলন করা যাবে?** যদি ভ্যালিডেটর সম্পূর্ণরূপে প্রস্থান করে থাকে, এবং আমরা সেই যুগে পৌঁছে গেছি যেখানে তাদের অ্যাকাউন্টকে "উত্তোলনযোগ্য" হিসাবে বিবেচনা করা হয়, তাহলে সম্পূর্ণ উত্তোলন প্রক্রিয়া করা হবে। এটি পুরো অবশিষ্ট ব্যালেন্স উত্তোলনের ঠিকানায় স্থানান্তর করবে। +3. **কার্যকর ব্যালেন্স কি সর্বোচ্চ 32 এ শেষ হয়ে গেছে?** যদি অ্যাকাউন্টে প্রত্যাহারের শংসাপত্র থাকে, সম্পূর্ণরূপে প্রস্থান করা না হয়, এবং 32-এর বেশি পুরষ্কার অপেক্ষা করে, তাহলে একটি আংশিক উত্তোলন প্রক্রিয়া করা হবে যা শুধুমাত্র ব্যবহারকারীর উত্তোলনের ঠিকানায় 32 থেকে বেশি পরিমাণে পুরস্কার স্থানান্তর করে। + +ভ্যালিডেটরের জীবনচক্র চলাকালীন ভ্যালিডেটর অপারেটরদের দ্বারা নেওয়া মাত্র দুটি পদক্ষেপ রয়েছে যা সরাসরি এই প্রবাহকে প্রভাবিত করে: + +- উত্তোলনের শংসাপত্রগুলি প্রদান করা যাতে উত্তোলন করা যায় +- নেটওয়ার্ক থেকে প্রস্থান করা, যা সম্পূর্ণ উত্তোলন ট্রিগার করবে + +### গ্যাস মুক্ত {#gas-free} + +স্টেকিং উত্তোলন করার এই পদ্ধতিটি স্টেকারদের ম্যানুয়ালি একটি নির্দিষ্ট পরিমাণ ETH উত্তোলন করার জন্য অনুরোধ করে একটি লেনদেন জমা দেওয়ার প্রয়োজন এড়ায়। এর মানে **কোন গ্যাস (লেনদেন ফি) প্রয়োজন নেই**, এবং প্রত্যাহারও বিদ্যমান এক্সিকিউশন লেয়ার ব্লক স্পেসের জন্য প্রতিযোগিতা করে না। + +### আমি কত ঘন ঘন আমার স্টেকিং পুরষ্কার পাব? {#how-soon} + +একটি ব্লকে সর্বাধিক 16টি উত্তোলন প্রক্রিয়া করা যেতে পারে। সেই হারে, প্রতিদিন 115,200টি ভ্যালিডেটর উত্তোলন প্রক্রিয়া করা যেতে পারে (কোন স্লট মিস হয়নি বলে অনুমান করে)। উপরে উল্লিখিত হিসাবে, যোগ্য উত্তোলন ব্যতীত ভ্যালিডেটরগুলোকে বাদ দেওয়া হবে, সুইপ শেষ করার সময় কমিয়ে দেওয়া হবে। + +এই গণনাটি প্রসারিত করে, আমরা প্রদত্ত সংখ্যক উত্তোলন প্রক্রিয়া করতে যে সময় লাগবে তা অনুমান করতে পারি: + + + +| উত্তোলনের সংখ্যা | সম্পন্ন করার সময় | +| :--------------: | :---------------: | +| 400,000 | 3.5 দিন | +| 500,000 | 4.3 দিন | +| 600,000 | 5.2 দিন | +| 700,000 | 6.1 দিন | +| 800,000 | 7.0 দিন | + + + +আপনি দেখতে পাচ্ছেন যে নেটওয়ার্কে আরও ভ্যালিডেটর থাকায় এটি ধীর হয়ে যায়। মিস করা স্লটের বৃদ্ধি আনুপাতিকভাবে এটিকে কমিয়ে দিতে পারে, তবে এটি সাধারণত সম্ভাব্য ফলাফলের ধীর দিকের প্রতিনিধিত্ব করবে। + +## Frequently asked questions {#faq} + + +না, প্রত্যাহারের শংসাপত্র প্রদানের প্রক্রিয়াটি একটি এককালীন প্রক্রিয়া, এবং একবার জমা দেওয়ার পরে পরিবর্তন করা যাবে না। + + + +একটি এক্সিকিউশন লেয়ার উত্তোলন ঠিকানা সেট করে সেই যাচাইকারীর জন্য উত্তোলনের প্রমাণপত্র স্থায়ীভাবে পরিবর্তন করা হয়েছে। এর অর্থ হল পুরানো শংসাপত্রগুলি আর কাজ করবে না এবং নতুন শংসাপত্রগুলি একটি এক্সিকিউশন লেয়ার অ্যাকাউন্টে নির্দেশিত হবে। + +উত্তোলনের ঠিকানাগুলি হয় একটি স্মার্ট কন্ট্র্যাক্ট (এর কোড দ্বারা নিয়ন্ত্রিত), অথবা এটি একটি বহিরাগত মালিকানাধীন অ্যাকাউন্ট (EOA, এটির ব্যক্তিগত কী দ্বারা নিয়ন্ত্রিত) হতে পারে। বর্তমানে এই অ্যাকাউন্টগুলির কোনো উপায় নেই যে কনসেনসাস লেয়ারে বার্তা ফেরত পাঠানোর জন্য যা যাচাইকারী শংসাপত্রের পরিবর্তনের সংকেত দেবে, এবং এই কার্যকারিতা যোগ করলে প্রোটোকলটিতে অপ্রয়োজনীয় জটিলতা যুক্ত হবে। + +একটি নির্দিষ্ট ভ্যালিডেটরের জন্য উত্তোলনের ঠিকানা পরিবর্তন করার বিকল্প হিসাবে, ব্যবহারকারীরা তাদের উত্তলনের ঠিকানা হিসাবে একটি স্মার্ট কন্ট্র্যাক্ট সেট করতে বেছে নিতে পারে যা কী রোটেটিং পরিচালনা করতে পারে, যেমন একটি সেফ। যে ব্যবহারকারীরা তাদের নিজস্ব EOA-তে তাদের তহবিল সেট করে তারা তাদের সমস্ত স্টেক করা তহবিল উত্তোলন করার জন্য সম্পূর্ণ প্রস্থান করতে পারেন এবং তারপর নতুন শংসাপত্র ব্যবহার করে পুনরায় শেয়ার করতে পারেন। + + + + +আপনি যদি একটি স্টেকিং পুল-এর অংশ হন বা স্টেকিং টোকেনগুলি ধরে রাখেন, তাহলে প্রতিটি পরিষেবা আলাদাভাবে কাজ করে বলে স্টেকিং উত্তোলন কীভাবে পরিচালনা করা হয় সে সম্পর্কে আরও বিশদ জানতে আপনার প্রদানকারীর সাথে যোগাযোগ করা উচিত। + +সাধারণভাবে, অন্তর্নিহিত স্টেক করা ETH পুনরুদ্ধার করতে বা স্টেকিং প্রদানকারী ব্যবহার পরিবর্তন করার ক্ষেত্রে ব্যবহারকারীদের স্বাধীনতা থাকা উচিত। যদি একটি নির্দিষ্ট পুল খুব বড় হয়ে যায়, ফান্ড প্রস্থান করা যেতে পারে, রিডিম করা যেতে পারে এবং একটি ছোট প্রদানকারীর সাথে পুনরায় স্টেক করা যেতে পারে। অথবা, আপনি যদি পর্যাপ্ত ETH জমা করে থাকেন তাহলে আপনি স্টেক ফ্রম হোম করতে পারেন। + + + + +হ্যাঁ, যতক্ষণ না আপনার ভ্যালিডেটর একটি উত্তোলনের ঠিকানা প্রদান করেছে। প্রাথমিকভাবে কোনো উত্তোলন সম্ভব করার জন্য এটি অবশ্যই একবার প্রদান করতে হবে, তারপর প্রতিটি ভ্যালিডেটর সুইপ দিয়ে প্রতি কয়েকদিন পর পুরস্কার প্রদান স্বয়ংক্রিয়ভাবে ট্রিগার হবে। + + + + +না, যদি আপনার ভ্যালিডেটর এখনও নেটওয়ার্কে সক্রিয় থাকে, তাহলে সম্পূর্ণ উত্তোলন স্বয়ংক্রিয়ভাবে ঘটবে না। এর জন্য ম্যানুয়ালি একটি স্বেচ্ছাসেবী প্রস্থানের শুরুর প্রয়োজন হয়। + +একবার ভ্যালিডেটর তার প্রস্থান প্রক্রিয়া সম্পন্ন করলে এবং ধরে নেওয়া হল যে উত্তোলনের শংসাপত্র আছে, সেই ক্ষেত্রে বাকি থাকা ব্যালেন্সটি এরপরে পরবর্তী ভ্যালিডেটর সুইপের সময় উত্তোলন করা হবে। + + + + +উত্তোলনগুলি স্বয়ংক্রিয়ভাবে পুশ করার জন্য ডিজাইন করা হয়েছে, যে কোনো ETH হস্তান্তর করে যা সক্রিয়ভাবে অংশীদারিত্বে অবদান রাখে না। এর মধ্যে অ্যাকাউন্টগুলির সম্পূর্ণ ব্যালেন্স অন্তর্ভুক্ত রয়েছে যেগুলি প্রস্থান প্রক্রিয়া সম্পূর্ণ করেছে। + +নির্দিষ্ট পরিমাণ ETH উত্তোলন করার জন্য ম্যানুয়ালি অনুরোধ করা সম্ভব নয়। + + + + +ভ্যালিডেটর অপারেটরদের স্টেকিং লঞ্চপ্যাড উইথড্রয়ালস পৃষ্ঠাতে যাওয়ার পরামর্শ দেওয়া হচ্ছে যেখানে আপনি কীভাবে আপনার ভ্যালিডেটরদের উত্তোলনের জন্য প্রস্তুত করবেন সে সম্পর্কে আরও বিশদ তথ্য পাবেন। প্রস্তুত, ইভেন্টের সময় এবং উত্তোলন কীভাবে কাজ করে সে সম্পর্কে আরও বিশদ বিবরণ। + +প্রথমে একটি টেস্টনেটে আপনার সেটআপ চেষ্টা করে দেখতে, শুরু করতে Goerli টেস্টনেট স্টেকিং লঞ্চপ্যাডে যান। + + + + +না। একবার একটি ভ্যালিডেটর প্রস্থান করে এবং তার সম্পূর্ণ ব্যালেন্স উত্তোলন করা হলে, সেই ভ্যালিডেটরের কাছে জমা করা যেকোন অতিরিক্ত তহবিল স্বয়ংক্রিয়ভাবে পরবর্তী ভ্যালিডেটর স্যুইপের সময় উত্তোলনের ঠিকানায় স্থানান্তরিত হবে। ETH পুনরায় স্টেক করতে, একটি নতুন যাচাইকারী সক্রিয় করতে হবে। + + +## Further reading {#further-reading} + +- [স্টেকিং লঞ্চপ্যাড উত্তোলোন](https://launchpad.ethereum.org/withdrawals) +- [EIP-4895: অপারেশন হিসাবে বিকন চেইন পুশ উত্তোলন](https://eips.ethereum.org/EIPS/eip-4895) +- [ইথেরিয়াম ক্যাট হার্ডারস - সাংহাই](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) +- [PEEPanEIP #94: Potuz & Hsiao-Wei Wang-এর সাথে স্টেকড ETH উত্তোলন (পরীক্ষা)](https://www.youtube.com/watch?v=G8UstwmGtyE) +- [PEEPanEIP#68: EIP-4895: অ্যালেক্স স্টোক্সের সাথে অপারেশন হিসাবে বিকন চেইন পুশ উত্তোলন](https://www.youtube.com/watch?v=CcL9RJBljUs) +- [ভ্যালিডেটরের কার্যকরী ব্যালেন্স বোঝা](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/bn/wallets/index.md b/public/content/translations/bn/wallets/index.md similarity index 100% rename from src/content/translations/bn/wallets/index.md rename to public/content/translations/bn/wallets/index.md diff --git a/src/content/translations/bn/what-is-ethereum/index.md b/public/content/translations/bn/what-is-ethereum/index.md similarity index 100% rename from src/content/translations/bn/what-is-ethereum/index.md rename to public/content/translations/bn/what-is-ethereum/index.md diff --git a/src/content/translations/ca/community/events/index.md b/public/content/translations/ca/community/events/index.md similarity index 100% rename from src/content/translations/ca/community/events/index.md rename to public/content/translations/ca/community/events/index.md diff --git a/src/content/translations/ca/community/get-involved/index.md b/public/content/translations/ca/community/get-involved/index.md similarity index 100% rename from src/content/translations/ca/community/get-involved/index.md rename to public/content/translations/ca/community/get-involved/index.md diff --git a/src/content/translations/ca/community/grants/index.md b/public/content/translations/ca/community/grants/index.md similarity index 100% rename from src/content/translations/ca/community/grants/index.md rename to public/content/translations/ca/community/grants/index.md diff --git a/src/content/translations/ca/community/language-resources/index.md b/public/content/translations/ca/community/language-resources/index.md similarity index 100% rename from src/content/translations/ca/community/language-resources/index.md rename to public/content/translations/ca/community/language-resources/index.md diff --git a/public/content/translations/ca/community/support/index.md b/public/content/translations/ca/community/support/index.md new file mode 100644 index 00000000000..f8cd70da42a --- /dev/null +++ b/public/content/translations/ca/community/support/index.md @@ -0,0 +1,109 @@ +--- +title: Suport d'Ethereum +description: Aconseguiu suport en l'ecosistema Ethereum. +lang: ca +--- + +# Suport d'Ethereum {#support} + +## Suport oficial d'Ethereum {#official-support} + +Esteu buscant el suport oficial d'Ethereum? La primera cosa que heu de saber és que Ethereum és descentralitzat. Això vol dir que Ethereum no pertany a cap persona, entitat o organització central i, per aquest motiu, no existeix cap canal de suport oficial. + +Entendre la realitat descentralitzada d'Ethereum és vital, ja que qualsevol que afirmi ser el suport oficial d'Ethereum probablement us estarà intentant estafar! La millor forma de protegir-se contra els estafadors és educant-se un mateix i prendre proteccions de forma segura. + + + Seguretat i prevenció d'estafes a Ethereum + + + + Apreneu sobre els fonaments d'Ethereum + + +Malgrat la mancança de suport oficial, molts grups, comunitats i projectes a través de tot l'ecosistema Ethereum estan encantats per poder ajudar-vos. + +## Suport amb la cartera {#wallet-support} + +Teniu problemes amb la vostra cartera? La majoria de les carteres tenen equips de suport especialitzat que us poden ajudar: + +- [MetaMask](https://metamask.zendesk.com/hc/) +- [Argent](https://support.argent.xyz/hc/) +- [MyEtherWallet](https://help.myetherwallet.com/) + +_No és una llista exhaustiva. Necessiteu ajuda per trobar suport amb alguna cartera en especial? Uniu-vos al [discord ethereum.org](https://discord.gg/ethereum-org) i us intentarem ajudar._ + +Esteu buscant una cartera d'Ethereum? [Exploreu el nostre llistat de carteres d'Ethereum](/wallets/find-wallet/). + +## Construir aplicacions descentralitzades {#building-support} + +El procès de construcció pot ser difícil. Aquí teniu alguns espais enfocats al desenvolupament amb desenvolupadors experimentats en Ethereum que estaran encantats de poder ajudar. + +- [Discord CryptoDevs](https://discord.gg/Z9TA39m8Yu) +- [Ethereum Stackexchange](https://ethereum.stackexchange.com/) +- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) +- [Universitat Web3](https://www.web3.university/) + +També podeu trobar documentació i guies per al desenvolupament en la nostra secció de [recursos per a desenvolupadors d'Ethereum](/developers/). + +### Utilitats {#dapp-tooling} + +La vostra pregunta fa referència a alguna eina, projecte o biblioteca en particular? La majoria de projectes tenen servidors de xat o fòrums dedicats a donar-vos suport. + +Aquí teniu alguns exemples populars: + +- [Solidity](https://gitter.im/ethereum/solidity/) +- [ethers.js](https://discord.gg/6jyGVDK6Jx) +- [web3.js](https://discord.gg/GsABYQu4sC) +- [Hardhat](https://discord.gg/xtrMGhmbfZ) +- [Truffle](https://discord.gg/8uKcsccEYE) +- [Alchemy](http://alchemy.com/discord) + +## Executar un node {#node-support} + +Si esteu executant un node o un validador, aquí teniu algunes comunitats que es dediquen a ajudar-vos a començar. + +- [Discord EthStaker](https://discord.gg/ethstaker) +- [Reddit d'EthStaker](https://www.reddit.com/r/ethstaker) + +La majoria dels equips que construeixen clients Ethereum també tenen espais públics i dedicats, on podeu trobar suport i fer preguntes. + +### Clients d'execució {#execution-clients} + +- [Geth](https://discord.gg/FqDzupGyYf) +- [Nethermind](https://discord.gg/YJx3pm8z5C) +- [Besu](https://discord.gg/p8djYngzKN) +- [Erigon](https://github.com/ledgerwatch/erigon/issues) + +### Clients de consens {#consensus-clients} + +- [Prysm](https://discord.gg/prysmaticlabs) +- [Nimbus](https://discord.gg/nSmEH3qgFv) +- [Lighthouse](https://discord.gg/cyAszAh) +- [Teku](https://discord.gg/7hPv2T6) +- [Lodestar](https://discord.gg/aMxzVcr) + +També podeu [aprendre com executar un node aquí](/developers/docs/nodes-and-clients/run-a-node/). + +## Preguntes freqüents {#faq} + +### He enviat ETH a la cartera equivocada {#wrong-wallet} + +En Ethereum les transaccions ja enviades són irreversibles. Malauradament, si heu enviat ETH a la cartera equivocada, no hi ha forma de recuperar aquests fons. Ethereum no pertany a cap persona, entitat o organització central, cosa que significa que ningú pot retornar transaccions. Per tant, és vital que comproveu dues vegades les vostres transaccions abans d'enviar-les. + +### Com puc reclamar el meu regal d'Ethereum? {#giveaway-scam} + +Els regals d'Ethereum són estafes dissenyades per robar els vostres ETH. No caigueu en la temptació d'ofertes que semblen massa bones per ser veritat; si envieu ETH a aquestes adreces de regals, no rebreu cap regal i no podreu recuperar els vostres fons. + +[Més informació sobre la prevenció d'estafes](/security/#common-scams) + +### La meva transacció està bloquejada {#stuck-transaction} + +Les transaccions en Ethereum, de vegades, poden restar bloquejades si heu enviat una tarifa de transacció més baixa de la requerida a causa de la demanda de la xarxa. Moltes carteres donen l'opció de reenviar la mateixa transacció amb una tarifa de transacció més alta per a permetre que la transacció sigui processada. D'altra banda, podeu cancel·lar una transacció pendent enviant una transacció a la vostra adreça i utilitzant el mateix codi d'un sòl ús que la transacció pendent. + +[Com accelerar o cancel·lar una transacció pendent en MetaMask](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) + +[Com cancel·lar transaccions pendents en Ethereum](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) + +### Com puc minar Ethereum? {#mining-ethereum} + +No recomanem comprar equipament per a la mineria si no esteu minant Ethereum actualment. Durant el segon trimestre de 2022 tindrà lloc [la fusió](/roadmap/merge/): canviarem Ethereum de la prova de treball a la prova de participació. Aquest canvi significa que minar Ethereum ja no serà possible. diff --git a/public/content/translations/ca/dao/index.md b/public/content/translations/ca/dao/index.md new file mode 100644 index 00000000000..5586a8cfc48 --- /dev/null +++ b/public/content/translations/ca/dao/index.md @@ -0,0 +1,116 @@ +--- +title: Organitzacions Autònomes Descentralitzades (DAO en anglès) +description: Una visió general de les DAO a Ethereum +lang: ca +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: Representació d'una DAO que vota una proposta. +summaryPoint1: Comunitats de membres sense un lideratge centralitzat. +summaryPoint2: Una forma segura de col·laborar amb desconeguts a internet. +summaryPoint3: Un lloc segur per destinar fons per a una causa específica. +--- + +## Què són les DAO? {#what-are-daos} + +Les DAOs són sistemes segurs i eficaços perquè persones afins d'arreu del món treballin plegades. + +Pensa-hi com si fossin negocis natius d'internet que són propietat i estan dirigits col·lectivament pels seus membres. Disposen de tresoreries incorporades a les quals ningú està autoritzat a accedir-hi sense l'aprovació del grup. Les decisions es regeixen mitjançant propostes i votacions per garantir que tothom dins la organització hi té veu. + +No hi ha cap CEO que pugui autoritzar una despesa basada en el seu propi caprici i tampoc hi ha oportunitat de cap CFO dubtós que manipuli els llibres. Tot està al descobert i les normes referents a les despeses es cuinen dins la DAO mitjançant el seu codi. + +## Per què necessitem les DAO? {#why-dao} + +Començar una organització amb algú que involucri fons i diners requereix molta confiança en la gent amb qui es treballa. Però és difícil confiar en algú amb qui només heu interactuat a internet. Amb les DAO no heu de depositar la vostra confiança en cap persona del grup, només en el codi de la DAO, que és 100% transparent i verificable per qualsevol. + +Això obre un ventall de noves oportunitats per a la coordinació i col·laboració global. + +### Una comparativa {#dao-comparison} + +| DAO | Una organització tradicional | +| ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | +| Generalment plana i totalment democratitzada. | Generalment jeràrquica. | +| Es requereix la votació dels membres per implementar qualsevol canvi. | Depenent de l'estructura, es poden demanar canvis des d'una part solament o es pot proposar una votació. | +| Vots comptats i resultats implementats automàticament sense cap intermediari de confiança. | Si es permet una votació, els vots es compten internament i els resultats de la votació han de ser gestionats manualment. | +| Els serveis oferts són gestionats automàticament d'una forma descentralitzada (per exemple en la distribució de fons filantròpics). | Requereix gestió humana o un sistema automàtic de control centralitzat, inclinat a la manipulació. | +| Tota l'activitat és transparent i totalment pública. | L'activitat és típicament privada i limitada al públic. | + +### Exemples de DAO {#dao-examples} + +Perquè sigui més comprensible, aquí teniu alguns exemples de com podríeu utilitzar una DAO: + +- La caritat – podeu acceptar pertinences i donacions per part de qualsevol persona del món i el grup pot decidir com es volen gastar aquestes donacions. +- Una xarxa de treballadors autònoms – podeu crear una xarxa de contractants que agrupen els seus fons per a espais d'oficina i subscripcions de software. +- Empreses i subvencions – podeu crear un fons de risc que agrupi capitals d'inversió i voti a les empreses per donar-hi suport. Els diners reemborsats es poden redistribuir més endavant entre els membres de la DAO. + +## Pertinença a la DAO {#dao-membership} + +Hi ha diferents models de pertinença a la DAO. La pertinença pot determinar com funciona la votació i altres parts clau de la DAO. + +### Pertinença basada en tókens {#token-based-membership} + +Generalment completament lliure de permisos, depenent del token utilitzat. La majoria d'aquests tókens de govern es poden intercanviar sense cap permís en una casa de canvi descentralitzada. D'altres s'han de guanyar aportant liquiditat o alguna altra prova de treball o «proof-of-work». De qualsevol manera, tan sols mantenir el token garanteix l'accés al vot. + +_Típicament utilitzat per a governar amplis protocols descentralitzats o els tókens en sí mateixos._ + +#### Un exemple famós {#token-example} + +[MakerDAO](https://makerdao.com) – El token MKR de MakerDAO està ampliament disponible en cases de canvi descentralitzades. Per tant, qualsevol en pot comprar per tenir poder de vot en el futur protocol de Maker. + +### Pertinença basada en accions {#share-based-membership} + +Les DAO basades en accions necessiten de més permisos, però tot i això són bastant obertes. Qualsevol membre potencial pot presentar una proposta per unir-se a la DAO, generalment oferint tributs que tinguin algun valor en forma de tókens o treball. Les accions representen el poder de vot directe i la propietat. Els membres poden sortir en qualsevol moment amb la seva part proporcional de la tresoreria. + +_Generalment utilitzada per organitzacions més unides i centrades en l'ésser humà com ara les caritats, col·lectius de treballadors i clubs d'inversions. També poden governar protocols i tókens._ + +#### Un exemple famós {#share-example} + +[MolochDAO](http://molochdao.com/) – MolochDAO està enfocat a projectes de fons d'Ethereum. Requereixen una proposta per la pertinença per la qual cosa el grup pot avaluar si teniu l'experiència i el capital necessaris per fer judicis informats sobre potencials becaris. No podeu obtenir accés a la DAO en el mercat obert. + +## Com funcionen les DAO? {#how-daos-work} + +La vèrtebra d'una DAO és el contracte intel·ligent. El contracte defineix les normes de l'organització i suporta la tresoreria del grup. Un cop el contracte està actiu a Ethereum, ningú pot canviar les normes, excepte amb una votació. Si algú intenta fer alguna cosa que no estigui coberta per les normes i la lògica del codi, no tindrà èxit. I com que la tresoreria també està definida pel contracte intel·ligent, tampoc ningú pot gastar els diners sense l'aprovació del grup. Això vol dir que les DAO no necessiten una autoritat centralitzada. En canvi, el grup pren decisions de forma col·lectiva i s'autoritzen els pagaments automàticament quan ocorren votacions. + +Això és possible perquè els contractes intel·ligents són a prova de manipulació un cop estan actius a Ethereum. No podeu editar el codi (normes de la DAO) sense que la gent se n'adoni, ja que tot és públic. + + + Més informació sobre els contractes intel·ligents + + +## Ethereum i les DAO {#ethereum-and-daos} + +Ethereum és el fonament perfecte per a les DAO per un seguit de raons: + +- El propi consens d'Ethereum està prou distribuit i establert perquè les organitzacions confïin en la xarxa. +- El codi dels contractes intel·ligents no pot ésser modificat un cop està actiu, ni tan sols pels seus propis propietaris. Això permet a la DAO executar-se amb les normes amb les quals va ser programada. +- Els contractes intel·ligents poden rebre/enviar fons. Sense això necessitaríeu un intermediari de confiança per gestionar els fons del grup. +- La comunitat d'Ethereum ha provat ser més col·laborativa que competitiva i ha permès emergir ràpidament millors pràctiques i sistemes de suport. + +## Formar part / iniciar una DAO {#join-start-a-dao} + +### Formar part d'una DAO {#join-a-dao} + +- [DAO comunitàries d'Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [Llistat de DAO de DAOHaus](https://app.daohaus.club/explore) + +### Iniciar una DAO {#start-a-dao} + +- [Convocar una DAO amb DAOHaus](https://app.daohaus.club/summon) +- [Crear una DAO impulsada per Aragon](https://aragon.org/product) +- [Iniciar una colònia](https://colony.io/) +- [Construir una DAO amb DAOstack](https://daostack.io/) + +## Llegir-ne més {#further-reading} + +### Articles sobre DAO {#dao-articles} + +- [Què és una DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) +- [La casa de les DAO](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) +- [Què és una DAO i per què serveix?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOHaus](https://daohaus.club/) +- [Com iniciar una DAO-Comunitat impulsada digitalment](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOHaus](https://daohaus.club/) +- [Què és una DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) + +### Vídeos {#videos} + +- [Què és una DAO en criptografia?](https://youtu.be/KHm0uUPqmVE) diff --git a/public/content/translations/ca/defi/index.md b/public/content/translations/ca/defi/index.md new file mode 100644 index 00000000000..42ddb90a4a8 --- /dev/null +++ b/public/content/translations/ca/defi/index.md @@ -0,0 +1,351 @@ +--- +title: Finances Descentralitzades (DeFi) +description: Una visió general de les DeFi a Ethereum +lang: ca +template: use-cases +emoji: ":money_with_wings:" +image: /use-cases/defi.png +alt: Un logotip d'Ethereum fet de peces de lego. +sidebarDepth: 2 +summaryPoint1: Una alternativa global i oberta al sistema financer actual. +summaryPoint2: Productes que et permeten manllevar, estalviar, invertir, fer compra-vendes i més. +summaryPoint3: Basat en tecnologia de codi obert amb la que qualsevol pot programar-hi. +--- + +DeFi és un sistema obert i global pensat per l'era d'internet: una alternativa a un sistema opac, hípercontrolat i sustentat per una infraestructura i uns processos antics. Us dona control i visibilitat sobre els vostres diners. Us dona accés als mercats globals i alternatives a la vostra moneda o opcions bancàries locals. Els productes DeFi obren els serveis financers a qualsevol persona amb una connexió d'internet, alhora que són els propis usuaris els que n'ostenten la propietat i els mantenen. Fins ara, desenes de milions de dòlars en criptomonedes han passat a través d'aplicacions DeFi i aquest nombre creix cada dia. + +## Què és DeFi? {#what-is-defi} + +DeFi és un terme col·lectiu per als productes i serveis financers que són accessibles per a qualsevol persona que pugui fer servir Ethereum, qualsevol persona amb una connexió d'internet. Amb DeFi, els mercats estan sempre oberts i no hi ha cap autoritat central que pugui bloquejar pagaments o denegar-vos accés a res. Els serveis que abans eren lents i sensibles als errors humans són ara automàtics i més segurs, perquè estan gestionats per un codi informàtic que qualsevol pot inspeccionar i sotmetre a escrutini. + +Hi ha una criptoeconomia puixant allà fora, on podeu prestar, demanar prestat, rebre interessos i molt més. Els argentins amb coneixements de criptografia han usat les DeFi per escapar de la inflació tan limitadora que pateix el seu país. Les empreses han començat a pagar els salaris dels seus empleats en temps real. Hi ha hagut casos de persones que han pagat préstecs per valor de milions de dòlars, sense la necessitat de cap identificació personal. + + + +## DeFi vs les finances tradicionals {#defi-vs-tradfi} + +Una de les millors maneres de veure el potencial de DeFi és entendre els problemes que hi ha avui. + +- Hi ha persones que no tenen la possibilitat d'obrir un compte bancari o d'usar serveis financers. +- La falta d'accés als serveis financers pot impedir que determinades persones puguin aconseguir feina. +- Els serveis financers poden impedir que cobreu un sou. +- Un dels costos d'usar els serveis financers tradicionals és l'accés que donem a un tercer a moltes de les nostres dades personals. +- Governs i altres institucions centralitzades tenen poder per tancar els mercats, si els interessa. +- L'horari per a fer transaccions està sovint limitat a l'horari laboral d'una zona horària determinada. +- Les transferències monetàries poden arribar a trigar dies a completar-se, a causa de procediments interns que realitzen humans. +- Sempre hi ha primes o comissions que es paguen als intermediaris dels serveis financers. + +### Una comparativa {#defi-comparison} + +| DeFi | Finances tradicionals | +| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------- | +| El dipositari dels vostres diners sou vosaltres mateixos. | Els dipositaris dels vostres diners són empreses. | +| Controleu on van els vostres diners i com es gasten. | Heu de confiar en altres empreses que no facin un mal ús dels vostres diners, com ara prestar-lo a prestataris d'alt risc. | +| Les transferències de fons es completen en qüestió de minuts. | Els pagaments poden trigar dies, a causa de procediments manuals. | +| Les transaccions són fetes amb pseudònims. | L'activitat financera va sempre unida estretament a la vostra identitat. | +| DeFi és obert a tothom. | Heu de sol·licitar accés per poder usar els serveis financers. | +| Els mercats estan sempre oberts. | Els mercats tanquen perquè els empleats necessiten descansar. | +| Està construït de forma transparent: qualsevol pot mirar les dades d'un producte i inspeccionar com funciona el sistema. | Les institucions financeres són llibres tancats: no podeu veure el seu historial de préstecs, un informe dels seus actius sota gestió, etc. | + + + Exploreu aplicacions DeFi + + +## Va començar amb Bitcoin... {#bitcoin} + +Segons com es miri, Bitcoin va ser la primera aplicació DeFi. Bitcoin us permet tenir control i ser propietaris dels vostres fons i enviar-los a qualsevol lloc del món. Això passa perquè permet que moltes persones que no tenen perquè necessàriament confiar entre elles puguin posar-se d'acord en un registre de comptes (de pagaments i cobraments), sense la necessitat de tenir un intermediari de confiança. Bitcoin és obert a tothom i ningú té l'autoritat de canviar les seves regles. Les regles de Bitcoin, igual que la seva escassetat i la seva accessibilitat, estan escrites en la pròpia tecnologia. No és com en les finances tradicionals on els governs poden emetre nova moneda, cosa que devalua el valor dels vostres estalvis, o on les empreses poden tancar els mercats. + +Ethereum desenvolupa tot això. Com Bitcoin, les regles no es poden canviar i tothom hi té accés. Però també permet que el diners digitals siguin programables mitjançant [contractes intel·ligents](/glossary#smart-contract), així podeu fer més coses, a banda de guardar o enviar valor. + + + +## Diners programables {#programmable-money} + +Sona estrany... «per què he de voler programar els meus diners»? En tot cas, aquesta és una característica per defecte dels tókens a Ethereum. Tothom pot programar lògica en els pagaments. Així teniu el control i la seguretat de Bitcoin juntament amb els serveis que proporcionen les institucions financeres. Això permet que feu coses amb criptomonedes que no podeu fer amb Bitcoin, com prestar i endeutar-te, programar pagaments, invertir en índexs, fons i altres. + + +
Exploreu els nostres suggeriments d'aplicacions DeFi per provar-les, si sou novells a Ethereum.
+ + Exploreu aplicacions DeFi + +
+ +## Què podeu fer amb DeFi? {#defi-use-cases} + +Hi ha una alternativa descentralitzada a la majoria dels serveis financers. Però Ethereum també crea oportunitats per crear productes financers que són completament nous. Aquesta és una llista en continu creixement. + +- [Enviar diners a tot el món](#send-money) +- [Transferir diners a tot el món](#stream-money) +- [Accedir a divises estables](#stablecoins) +- [Endeutar-se, mitjançant l'entrega d'una garantia](#lending) +- [Endeutar-se sense l'entrega d'una garantia](#flash-loans) +- [Començar a estalviar en criptomonedes](#saving) +- [Comprar i vendre tókens](#swaps) +- [Fer créixer la vostra cartera d'inversions](#investing) +- [Aconseguir fons per a desenvolupar les vostres idees](#crowdfunding) +- [Comprar assegurances](#insurance) +- [Gestionar la vostra cartera d'inversions](#aggregators) + + + +### Enviar diners arreu del món, ràpidament {#send-money} + +Com a cadena de blocs (o «blockchain»), Ethereum està dissenyat per enviar transaccions de forma segura i global. Igual que Bitcoin, Ethereum converteix l'acte d'enviar diners arreu del món en una cosa tan fàcil com enviar un correu electrònic. Només heu d'introduir el [el nom ENS](/nft/#nft-domains) del destinatari (com josep.eth) o l'adreça de la seva cartera i el vostre pagament li arribarà en qüestió de minuts (normalment). Per a enviar o rebre pagaments, necessiteu una [cartera](/wallets/). + + + Exploreu dapps de pagament + + +#### Transferir diners arreu del món... {#stream-money} + +També podeu transferir diners dins d'Ethereum. Això us permet pagar salaris en un segon i donar als treballadors accés als seus diners en qualsevol moment que ho necessitin. O llogar coses en un segon, com un traster o una moto elèctrica. + +I si no voleu enviar o transferir [ETH](/eth/) a causa de les grans oscil·lacions de valor que pot patir, hi ha divises alternatives dins d'Ethereum: monedes estables («stablecoins»). + + + +### Accedir a divises estables {#stablecoins} + +La volatilitat de les criptomonedes és un problema per a molts productes financers i la despesa en general. La comunitat DeFi ho ha sol·lucionat amb les monedes estables o «stablecoins». El seu valor està lligat a un altre actiu, normalment una divisa popular com els dòlars americans. + +Monedes com DAI o USDC tenen un valor que oscil·la uns pocs cèntims al voltant d'un dòlar. Això les fa perfectes per a rebre interès, estalviar o invertir. Molta gent a Llatinoamèrica ha usat les monedes estables com una forma de protegir els seus estalvis en temps d'incertesa en relació amb les monedes emeses pels seus governs. + + + Més informació sobre monedes estables + + + + +### Obtenir préstecs {#lending} + +Obtenir diners prestats de proveïdors descentralitzats té dues varietats principals. + +- Persona-persona, és a dir el prestatari obtindrà el préstec directament d'un prestador específic. +- Basat en grups, on els prestadors proveeixen els fons (liquiditat) a un grup d'on els prestataris poden obtenir els préstecs. + + + Exploreu dapps per obtenir préstecs + + +Usar un prestatari descentralitzat té molts avantatges... + +#### Demanar prestat de forma privada {#borrowing-privacy} + +Avui dia, prestar diners i demanar-ne prestats té a veure amb els individus involucrats en l'operació. Els bancs, abans de deixar diners, han de saber si una persona podrà tornar un préstec. + +Els préstecs descentralitzats funcionen sense necessitat que les parts s'hagin d'identificar. A canvi, el prestatari ha de dipositar una garantia que el prestador rebrà automàticament en cas que el préstec no sigui retornat. Alguns prestadors accepten fins i tot NFT com a garantia. Els NFT són una escriptura de propietat lligada a un actiu únic, com pugui ser una pintura. [Més sobre els NFT](/nft/) + +Això us permet demanar diners sense la necessitat d'haver de passar per auditories o haver d'entregar informació privada. + +#### Accedir a fons globals {#access-global-funds} + +Quan utilitzeu un prestador descentralitzat teniu accés a fons dipositats d'arreu del món, no només dels fons custodiats que pugui tenir el vostre banc o la vostra institució de crèdit. Això fa els préstecs més accessibles i millora els tipus d'interès. + +#### Eficiències fiscals {#tax-efficiencies} + +Demanar préstecs pot donar-vos accés a fons que necessiteu sense haver de vendre els vostres ETH (cosa que pot generar una obligació fiscal). En canvi podeu fer servir els vostres ETH com a garantia per a obtenir un préstec amb una divisa estable («stablecoin»). Això us dona el fluxe de caixa que necessiteu i us permet mantenir els vostres ETH. Les divises estables són tókens que són millors per quan teniu necessitat de caixa, tenen l'avantatge que el seu valor no fluctua com pugui fer-ho l'ETH. [Més sobre les divises estables](#stablecoins) + +#### Préstecs ràpids {#flash-loans} + +Els préstecs ràpids són una forma experimental que us permet demanar manlleus sense necessitat de garantia o de donar informació privada. + +No són gaire accessibles a persones sense formació tècnica en aquest moment, però donen una idea del que pot arribar a ser possible per a tothom en el futur. + +Funciona sobre la base que el préstec és entregat i retornat en una mateixa transacció. Si no es pot retornar, la transacció es reverteix com si no hagués passat. + +Sovint els fons que s'usen estan en grups de liquiditat (grans grups de fons usats per ser prestats). Si no es fan servir en un moment donat, es crea l'oportunitat per a algú de demanar-los prestats, fer una transacció amb ells i retornar-los totalment, gairebé literalment al mateix moment que han estat prestats. + +Això significa que s'ha de programar a mida per a cada transacció. Un exemple senzill podria ser el d'algú que fa servir un préstec ràpid per a comprar un actiu a un preu per a revendre'l en un mercat (o borsa) diferent, on el preu sigui més alt. + +Així, en una transacció qualsevol hi passa el següent: + +- Demaneu una quantitat X prestada de $asset a 1,00$ del mercat A +- Veneu X $asset al mercat B per 1,10$ +- Torneu el préstec al mercat A +- Us quedeu el benefici de la transacció menys la comissió + +Si la disponibilitat del mercat B cau de sobte i l'usuari no pot comprar prou actiu X per a cobrir el préstec original, la transacció simplement no s'executaria. + +Per a poder dur a terme l'exemple anterior en les finances tradicionals, necessitaríeu una quantitat enorme de diners. Aquest tipus d'estratègies de negoci només estan disponibles per aquells que disposin d'una gran riquesa. Els préstecs ràpids són un exemple d'un futur on tenir diners no és necessàriament un prerequisit per a guanyar diners. + +[Més sobre préstecs ràpids](https://aave.com/flash-loans/) + + + +### Comenceu a estalviar amb criptomonedes {#saving} + +#### Prestar {#lending} + +Podeu guanyar interessos per les vostres criptomonedes fent préstecs i veure com els vostres fons creixen en temps real. En aquest moment els tipus d'interès són molt superiors al que normalment trobeu al vostre banc local (si teniu prou sort com per tenir-ne algun a prop). Aquí en teniu un exemple: + +- Presteu els vostres 100 Dai, una [moneda estable](/stablecoins/), a un producte com Aave. +- Rebeu 100 Aave Dai (aDai), que és un token que representa els vostres Dai prestats. +- Els vostres aDai s'incrementaran en base als tipus d'interès i podreu veure créixer el vostre saldo a la vostra cartera. En funció del tipus d'interès, el saldo de la vostra cartera serà de 100.1234 al cap d'uns pocs dies o, fins i tot, hores! +- Podeu retirar una quantitat de Dai normal, igual a la del vostre saldo, en qualsevol moment. + + + Veure dApps de préstecs + + +#### Loteria sense pèrdues {#no-loss-lotteries} + +Les loteries sense pèrdues com PoolTogether són una nova forma divertida i innovadora d'estalviar diners. + +- Compreu 100 tiquets fent servir 100 tókens Dai. +- Rebeu 100 plDai que representen els vostres 100 tiquets. +- Si un dels vostres tiquets és guanyador, el vostre saldo de plDai s'incrementarà en la quantitat del premi. +- Si no guanyeu, els vostres 100 plDai es guarden per al sorteig de la propera setmana. +- Podeu retirar una quantitat de Dai normal, igual al saldo de plDai que tingueu a la vostra cartera, en qualsevol moment. + +La quantitat del premi surt dels interessos que es generen prestant els tiquets dipositats com en l'exemple de préstecs anterior. + + + Proveu PoolTogether + + + + +### Tókens dels mercats d'intercanvi {#swaps} + +Hi ha milers de tókens a Ethereum. Els mercats d'intercanvi descentralitzats (DEX) us permeten intercanviar diferents tókens, en qualsevol moment que vulgueu. No doneu mai el control sobre els vostres actius. És com fer servir un mercat d'intercanvi de divises quan es visita un altre país. Però la versió DeFi no tanca mai. Els mercats estan oberts 24 hores al dia, 365 dies l'any i la tecnologia garanteix que sempre hi haurà algú que accepti la transacció. + +Per exemple, si voleu fer servir la loteria sense pèrdues PoolTogether (descrita més amunt), necessitareu un token com Dai o USDC. Aquests DEX us permeten intercanviar els vostres ETH per aquets tókens i recuperar els ETH quan hàgiu acabat. + + + Veure intercanvi de tókens + + + + +### Comerç avançat {#trading} + +Hi ha opcions més avançades per a qui vulgui una mica més de control sobre les operacions d'intercanvi. Ordres amb límit, contractes perpetus, palanquejament i moltes altres. Amb el comerç descentralitzat teniu accés a liquiditat global, els mercats no tanquen mai i sempre teniu control dels vostres actius. + +Quan feu servir un mercat (o casa de canvi) centralitzat heu de dipositar-hi els vostres actius abans d'executar la transacció i confiar que els vigilaran per tu. Mentre els vostres actius estan dipositats estan en risc, ja que els mercats centralitzats són objectius atractius per als hackers. + + + Veure dapps de comerç + + + + +### Fes créixer la vostra cartera {#investing} + +Hi ha productes de gestió de fons a Ethereum que poden fer créixer la vostra cartera en base a l'estratègia que trieu. És automàtic, obert a tothom i no requereix la presència d'un gestor humà que s'endugui una comissió. + +Un bon exemple és el [fons DeFi Pulse Index (DPI)](https://defipulse.com/blog/defi-pulse-index/). Aquest és un fons que s'ajusta automàticament per assegurar que la vostra cartera sempre inclou [els tókens DeFi més rellevants en funció de la seva capitalització](https://www.coingecko.com/en/defi). Mai n'heu de gestionar cap detall i podeu retirar actius del fons en qualsevol moment. + + + Veure dapps d'inversió + + + + +### Finançament per a les vostres idees {#crowdfunding} + +Ethereum és una plataforma ideal per al crowfunding: + +- Els inversors potencials poden venir de qualsevol lloc: Ethereum i els seus tókens estan oberts a tothom, arreu del món. +- És transparent, de manera que els receptors dels fons poden demostrar la quantitat de diners que han aixecat. Fins i tot podeu seguir el rastre de com els fons s'apliquen més endavant. +- Els receptors dels fons poden definir el retorn immediat dels diners si, per exemple, hi ha una data límit per aconseguir una quantitat mínima. + + + Veure dapps de crowfunding + + +#### Finançament quadràtic {#quadratic-funding} + +Ethereum és un sofware de codi obert i molta de la feina que s'ha fet fins ara l'ha finançada la comunitat. Això ha comportat el creixement d'un nou model de finançament interessant: el finançament quadràtic. Té el potencial de millorar la manera en què es subvenciona tot tipus de béns públics en un futur. + +El finançament quadràtic assegura que els projectes que reben més finançament són aquells amb major demanda única. En altres paraules, projectes que pretenen millorar les vides del major nombre de persones. Funciona així: + +1. Hi ha un conjunt de fons donats. +2. Comença una ronda de finançament. +3. La gent pot manifestar la seva preferència per un projecte donant diners. +4. Un cop la ronda ha acabat, el conjunt de fons es distribueix entre els projectes. Aquells amb més demanda directa obtenen els imports més elevats. + +Això vol dir que el Projecte A amb les seves 100 donacions d'1 dòlar, podria acabar rebent més finançament que el Projecte B amb una sola donació de 10.000 dòlars (en funció de la quantitat total de fons disponibles). + +[Més sobre finançament quadràtic](https://wtfisqf.com) + + + +### Assegurances {#insurance} + +Les assegurances descentralitzades pretenen ser més econòmiques, ràpides a cobrar pels afectats i més transparents. Amb més automatitzacions, les cobertures són més econòmiques i els assegurats cobren les indemnitzacions més ràpidament. Les dades que s'utilitzen per decidir sobre una reclamació són completament transparents. + +Els productes Ethereum, com qualsevol software, poden tenir errors de codi i ser atacats. Així que, en aquests moments, moltes de les assegurances en aquest sector se centren en protegir els usuaris de la possible pèrdua dels seus fons. Tot i això hi ha projectes que estan treballant per donar cobertura a qualsevol accident habitual. Un bon exemple n'és la cobertura d'Etherisc Crop que pretén [protegir petits agricultors a Kènia de les pèrdues per sequeres i inundacions](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Les assegurances descentralitzades poden proporcionar cobertures més econòmiques als agricultors que, sovint, no poden permetre's assegurances tradicionals. + + + Veure dapps d'assegurances + + + + +### Agregadors i gestors de carteres {#aggregators} + +Amb tantes coses alhora, necessitareu una forma per fer un seguiment de totes les inversions, préstecs i compra-vendes. Hi ha una munió de productes que us permeten coordinar la vostra activitat DeFi des d'un mateix lloc. Aquesta és la bellesa de l'arquitectura oberta de les DeFi. Equips de desenvolupadors fan interfícies on no només podeu veure els saldos de tots els vostres productes, sinó que també podeu utilitzar les seves funcions. Això us pot ser útil alhora que continueu l'exploració de les DeFi. + + + Veure les dapps de gestió de carteres + + + + +## Com funcionen les DeFi? {#how-defi-works} + +Les DeFi utilitzen les criptomonedes i els contractes intel·ligents per oferir serveis sense intermediaris. Avui dia en el món financer, les institucions financeres actuen com a garants de les transaccions. Això els dona a aquestes institucions un poder immens, ja que els vostres diners flueixen a través seu. A més, milers de milions de persones arreu del món no tenen accés a un compte bancari. + +En les DeFi, un contracte intel·ligent substitueix la institució financera en la transacció. Un contracte intel·ligent és un tipus de compte d'Ethereum on hi ha fons dipositats i que pot enviar-los o reemborsar-los, en base a determinades condicions. Ningú pot alterar aquest contracte intel·ligent quan està funcionant: sempre respondrà tal com està programat. + +Un contracte que està dissenyat per entregar un subsidi o diners de butxaca, podria programar-se per enviar diners del Compte A al Compte B cada divendres. I ho faria sempre que al Compte A hi hagués fons disponibles. Ningú pot canviar el contracte i afegir un Compte C com a beneficiari per tal de robar els fons. + +A més, els contractes són públics per tal que tothom els pugui inspeccionar i auditar. Això significa que els contractes maliciosos quedaran aviat sotmesos a l'escrutini públic. + +Significa també que actualment hi ha una necessitat de confiar en els membres més tècnics de la comunitat d'Ethereum que puguin llegir codi. La comunitat basada en el codi obert ajuda a mantenir els desenvolupadors sota control, però aquesta necessitat s'anirà reduint amb el temps, a mida que els contractes intel·ligents siguin més fàcils de llegir i es desenvolupin altres formes de demostrar la fiabilitat d'un determinat codi. + +## Ethereum i DeFi {#ethereum-and-defi} + +Ethereum és el fonament perfecte per a les DeFi per diverses raons: + +- No hi ha ningú que sigui el propietari d'Ethereum o dels contractes intel·ligents que hi viuen; això dona a tothom l'oportunitat de usar les DeFi. També significa que ningú pot canviar les normes en la vostra contra. +- Tots els productes DeFi parlen el mateix idioma: Ethereum. Això significa que molts dels productes funcionen perfectament de forma conjunta. Podeu prestar tókens en una plataforma i intercanviar-los amb l'interès subjacent en un mercat diferent o fins i tot en una aplicació totalment diferent. És com poder cobrar punts de fidelitat, directament al voostre banc. +- Els tókens i les criptomonedes estan construits sobre Ethereum, un llibre major compartit; recollir i portar al dia les transaccions que es produeixen és la feina d'Ethereum. +- Ethereum proporciona una llibertat financera completa: la majoria dels productes mai tindran la custòdia dels vostres fons, deixant que sigueu qui en tingui el control. + +Podeu pensar en les DeFi com en capes: + +1. La cadena de blocs («blockchain»): Ethereum conté l'historial de transaccions i l'estat dels comptes. +2. Els actius: [ETH](/eth/) i la resta de tókens (divises). +3. Els protocols\_ [contractes intel·ligents](/glossary/#smart-contract) que proporcionen les funcionalitats, per exemple un servei que permeti el préstec d'actius de forma descentralitzada. +4. [Les aplicacions](/dapps/): els productes que fem servir per a gestionar i accedir als protocols. + +## Construir les DeFi {#build-defi} + +Les DeFi són un moviment de codi obert. Els protocols i les aplicacions DeFi són oberts per tal que puguin ser inspeccionats pels usuaris, ser bifurcats i subjectes a innovació. Com que estan construïts per capes (tots comparteixen la mateixa base de cadena de blocs i els seus actius), els protocols poden combinar-se per generar oportunitats úniques. + + + Més sobre construir dapps + + +## Llegir-ne més {#futher-reading} + +### Dades sobre DeFi {#defi-data} + +- [DeFi Prime](https://defiprime.com/) +- [DeFi Llama](https://defillama.com/) + +### Articles sobre DeFi {#defi-articles} + +- [Una guia per a principiants de les DeFi](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, 6 de gener de 2020_ + +### Vídeos {#videos} + +- [Finematics – Educació sobre finances descentralitzades](https://finematics.com/) – _Vídeos sobre DeFi_ +- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _DeFi Basics: Tot el que necessiteu saber per a començar en aquest sector, a vegades desconcertant._ +- [Pissarra Crypto](https://youtu.be/17QRFlml4pA)_Què són les DeFi?_ + +### Comunitats {#communities} + +- [Servidor Discord de DeFi Llama](https://discord.gg/buPFYXzDDd) +- [Servidor Discord de DeFi Pulse](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/ca/eips/index.md b/public/content/translations/ca/eips/index.md similarity index 100% rename from src/content/translations/ca/eips/index.md rename to public/content/translations/ca/eips/index.md diff --git a/src/content/translations/ca/energy-consumption/index.md b/public/content/translations/ca/energy-consumption/index.md similarity index 100% rename from src/content/translations/ca/energy-consumption/index.md rename to public/content/translations/ca/energy-consumption/index.md diff --git a/src/content/translations/ca/governance/index.md b/public/content/translations/ca/governance/index.md similarity index 100% rename from src/content/translations/ca/governance/index.md rename to public/content/translations/ca/governance/index.md diff --git a/public/content/translations/ca/nft/index.md b/public/content/translations/ca/nft/index.md new file mode 100644 index 00000000000..31a6428352d --- /dev/null +++ b/public/content/translations/ca/nft/index.md @@ -0,0 +1,433 @@ +--- +title: Tókens no fungibles (NFT) +description: Resum general de NFT a Ethereum +lang: ca +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: Un logotip d'Eth mostrat mitjançant un holograma. +summaryPoint1: Una forma de representar quelcom únic com ara un actiu basat en Ethereum. +summaryPoint2: Els NFT estan donant més poder als creadors de contingut que mai. +summaryPoint3: Impulsats per petits contractes a la cadena de blocs d'Ethereum. +--- + +Actualment, els NFT estan prenent el món de l'art digital i dels objectes de col·lecció. Els artistes digitals estan veient com la seva vida canvia gràcies a les enormes vendes a un nou públic de criptomonedes. I els famosos s'estan incorporant alhora que descobreixen una nova oportunitat de connectar amb els seguidors. Però l'art digital és només una forma d'utilitzar els NFT. En realitat poden ser utilitzats per a representar la titularitat de qualsevol actiu únic, com una escriptura per a un objecte dins el regne digital o físic. + +Si Andy Warhol hagués nascut a finals dels noranta, probablement hauria encunyat la Sopa de Campbell com un NFT. Només és qüestió de temps que Kanye faci una sèrie de Yeezys a Ethereum. I, algun dia, la titularitat del vostre cotxe es podria demostrar amb un NFT. + +## Què és un NFT? {#what-are-nfts} + +Els NFT són tókens que poden ser utilitzats per a representar la propietat d'objectes únics. Ens permeten tokenitzar coses com ara obres d'art, col·leccionables o inclús propietats immobiliàries. Només poden tenir un titular oficial alhora i estan protegits per la cadena de blocs d'Ethereum; ningú no pot modificar el títol de propietat o copiar/enganxar un nou NFT en el medi existent. + +NFT significa token no fungible o «non-fungible token», en anglès. No fungible és un concepte econòmic que bé podríeu utilitzar per a descriure coses com ara els vostres mobles, un fitxer d'àudio o el vostre ordinador. Aquests objectes no són intercanviables per d'altres ja que tenen propietats úniques. + +Els objectes fungibles, d'altra banda, poden ser intercanviats perquè el seu valor els defineix més que les seves propietats úniques. Per exemple, els ETH o els dòlars són fungibles perquè un ETH o un dòlar es pot canviar per un altre ETH o un altre dòlar. + + + +## L'internet d'actius {#internet-of-assets} + +Els NFT i Ethereum solucionen alguns dels problemes que existeixen actualment a internet. Mentre tot es torna més digital, existeix la necessitat de replicar les propietats d'elements físics com ara l'escassetat, la singularitat i la prova de titularitat. Per no parlar que els objectes digitals sovint funcionen només en el context dels seus productes. Per exemple, no podeu revendre un mp3 d'iTunes que ja heu comprat o no podeu intercanviar els punts de fidelitat d'una empresa per crèdit d'una altra empresa inclús si existeix un mercat per a això. + +Així és com es veu una internet de NFT comparada amb la internet que la majoria de nosaltres utilitza avui en dia... + +### Una comparativa {#nft-comparison} + +| Una internet de NFT | La internet actual | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Els NFT són digitalment únics, no hi ha dos NFT d'iguals. | Una còpia d'un fitxer, com ara un .mp3 o un .jpg, és el mateix que l'original. | +| Cada NFT ha de tenir un propietari. Tothom pot conèixer aquesta informació i és fàcil verificar-la. | Els registres de propietat d'objectes digitals estan emmagatzemats en servidors controlats per institucions; heu de confiar-hi. | +| Els NFT són compatibles amb qualsevol cosa construïda mitjançant Ethereum. Un tiquet NFT per a un esdeveniment pot ser bescanviat a qualsevol mercat d'Ethereum per un altre NFT totalment diferent. Podeu canviar una peça d'art per un tiquet! | Les companyies amb objectes digitals han de construir les seves pròpies infraestructures. Per exemple, una aplicació que emet tiquets digitals per a esdeveniments hauria de crear el seu propi lloc d'intercanvi de tiquets. | +| Els creadors de contingut poden vendre el seu propi treball a qualsevol lloc i poden accedir a un mercat global. | Els creadors confien en la infraestructura i la distribució de les plataformes que utilitzen. Sovint estan subjectes a condicions d'ús i restriccions geogràfiques. | +| Els creadors poden retenir els drets de propietat del seu propi treball i reclamar drets de revenda directament. | Les plataformes, com ara serveis de música en temps real, retenen la majoria dels beneficis de les vendes. | +| Els objectes poden ser utilitzats de formes molt sorprenents. Per exemple, podeu utilitzar obres d'art digitals com a garantia d'un prèstec descentralitzat. | | + +### Exemples d'NFT {#nft-examples} + +El món dels NFT és relativament nou. En teoria, l'abast dels NFT és per tot allò que és únic i que necessita una titularitat demostrable. Aquí teniu alguns exemples d'NFT que existeixen avui en dia, perquè us feu una idea: + +- [Una obra d'art digital única](https://foundation.app/artworks) +- [Unes sabatilles esportives d'edició limitada](https://www.metagrail.co/auctions/91cf83fb-3477-4155-aae8-6dcb9b853397) +- [Un objecte d'un joc](https://market.decentraland.org/) +- [Un treball d'investigació](https://zora.co/0x517bab7661C315C63C6465EEd1b4248e6f7FE183/145) +- [Un col·leccionable digital](https://www.larvalabs.com/cryptopunks/details/1) +- [Un nom de domini](https://app.ens.domains/name/ethereum.eth) +- [Un tiquet que us dona accés a un esdeveniment o un cupó](https://www.yellowheart.io/) + +### Exemples d'ethereum.org {#ethereum-org-examples} + +Utilitzem els NFT per a retornar els nostres contribuïdors i tenim, fins i tot, el nostre propi nom de domini en NFT. + +#### POAP (protocol de prova d'assistència o «Proof of attendance protocol», en anglès) {#poaps} + +Si contribuïu a ethereum.org, podeu reclamar un NFT POAP. Són col·leccionables que demostren que heu participat en un esdeveniment. Algunes trobades sobre criptomonedes han utilitzat els POAP com a tiquet pels seus esdeveniments. [Més informació sobre les contribucions](/contributing/#poap). + +![POAP d'ethereum.org](./poap.png) + +#### ethereum.eth {#ethereum-dot-eth} + +Aquest lloc web té un nom de domini alternatiu impulsat pels NFT, **ethereum.eth**. La nostra adreça `.org` és gestionada centralment mitjançant un sistema de proveïdor de nom de domini (DNS, en anglès), mentre que el `.eth` d'ethereum està registrat a Ethereum mitjançant el Servei de Noms d'Ethereum (ENS, en anglès). És de la nostra propietat i la gestionem nosaltres mateixos. [Feu-hi una ullada al nostre registre ENS](https://app.ens.domains/name/ethereum.eth) + +[Més informació sobre l'ENS](https://app.ens.domains) + +## Com funcionen els NFT? {#how-nfts-work} + +Els NFT són diferents dels tókens ERC-20, com ara DAI o LINK, en els quals cada token individual és completament únic i no és divisible. Els NFT donen la capacitat d'assignar o reclamar titularitat de qualsevol peça única de dades digitals, una titularitat rastrejable mitjançant l'ús de la cadena de blocs d'Ethereum com a registre públic. Un NFT és un encunyat d'objectes digitals com a representació d'actius digitals o no digitals. Per exemple, un NFT podria representar: + +- Art digital: + - GIF + - Col·leccionables + - Música + - Vídeos +- Objectes de la vida real: + - Escriptures d'un cotxe + - Tiquets per a un esdeveniment en la vida real + - Factures tokenitzades + - Documents legals + - Signatures +- Moltíssimes més opcions amb les quals es pot esdevenir creatiu! + +Un NFT només pot tenir un propietari a la vegada. La propietat és gestionada mitjançant l'«uniqueID» i les metadades que cap altre token pot replicar. Els NFT són encunyats mitjançant petits contractes que n'assignen la titularitat i gestionen la transferibilitat. Quan algú crea o encunya un NFT, executa codi emmagatzemat en petits contractes que conformen diferents estàndards, com l'ERC-721. Aquesta informació s'afegeix a la cadena de blocs on es gestiona l'NFT. El procés d'encunyació, des d'una perspectiva superior, té els següents passos a seguir: + +- Crear un nou bloc +- Validar la informació +- Enregistrar la informació dins la cadena de blocs + +Els NFT tenen algunes propietats especials: + +- Cada token encunyat té un identificador únic que es troba enllaçat directament a una adreça d'Ethereum. +- Un NFT no es correspon directament amb un altre token. Per exemple, 1 ETH és exactament el mateix que un altre ETH. Aquest no és el cas amb els NFT. +- Cada token té un propietari i aquesta informació és fàcilment verificable. +- Existeixen a Ethereum i poden ser comprats i venuts en qualsevol mercat NFT basat en Ethereum. + +En altres paraules, si _teniu_ un NFT: + +- Podeu provar fàcilment que és de la vostra propietat. + - Provar que posseïu un NFT és bastant similar a provar que teniu ETH en el vostre compte. + - Per exemple, diguem que compreu un NFT i la propietat d'aquest token únic és transferida a la vostra cartera mitjançant la vostra adreça pública. + - El token prova que la vostra còpia del fitxer digital és l'original. + - La vostra clau privada és la prova de titularitat de l'original. + - La clau pública de contingut del creador serveix com a certificat d'autenticitat per aquest artefacte digital en particular. + - La clau pública del creador és essencialment una part permanent de la història del token. La clau pública del creador pot demostrar que el token que teniu va ser creat per un individu en particular, contribuint així en el seu valor de mercat (versus una falsificació). + - Una altra manera de provar que l'NFT és de la vostra propietat és mitjançant la signatura de missatges que provin que teniu la clau privada darrera l'adreça. + - Tal com es menciona anteriorment, la vostra clau privada és la prova de titularitat de l'original. Això ens diu que les claus privades darrere aquella adreça controlen l'NFT. + - Un missatge signat pot ser utilitzat com a prova que posseïu les vostres claus privades sense revelar-les a ningú i així provant que posseïu també l'NFT! +- Ningú pot manipular-lo de cap manera. +- Podeu vendre'l i, en alguns casos, això farà que el creador original rebi comissions de revenda. +- O podeu quedar-vos-el per sempre, amb total tranquil·litat sabent que el vostre actiu està protegit per la vostra cartera a Ethereum. + +I si _creeu_ un NFT: + +- Podeu provar fàcilment que en sou creador. +- Determineu l'escassetat. +- Podeu guanyar comissions cada vegada que sigui venut. +- Podeu vendre'l en qualsevol mercat NFT o entre parells. No esteu lligat a cap plataforma i no necessiteu cap intermediari. + +### Escassetat {#scarcity} + +El creador d'un NFT decideix l'escassetat dels seus actius. + +Per exemple, penseu en un tiquet per a un esdeveniment esportiu. Així com l'organitzador d'un esdeveniment pot escollir quants tiquets vendre, el creador d'un NFT pot decidir quantes rèpliques existeixen. De vegades són rèpliques exactes, com ara 5000 tiquets d'accés general. De vegades n'hi ha diversos encunyats que són molt similars, però cadascun lleugerament diferent, com ara un tiquet amb seient assignat. En un altre cas, el creador pot voler crear un NFT on només un sigui encunyat com a edició especial col·leccionable. + +En aquests casos, cada NFT tindria un identificador únic (com un codi de barres en un tiquet tradicional), amb un sol propietari. L'escassetat prevista de l'NFT importa, i depèn del creador. Un creador pot tenir la intenció de fer cada NFT completament únic per a crear escassetat o pot tenir les seves raons per produir molts milers de rèpliques. Recordeu, aquesta informació és totalment pública. + +### Comissions {#royalties} + +Alguns NFT pagaran automàticament comissions als seus creadors quan siguin venuts. És encara un concepte en desenvolupament, però és un dels més potents. Els propietaris originals d' [EulerBeats Originals](https://eulerbeats.com/) guanyen un 8% de comissions cada cop que es ven l'NFT. I algunes plataformes, com ara [Foundation](https://foundation.app) i [Zora](https://zora.co/), donen comissions als seus artistes. + +Les comissions són completament automàtiques; per tant, els creadors només han de seure i guanyar comissions mentre el seu treball es ven de persona a persona. De moment, calcular-les és un procès molt manual i hi manca exactitud; a molts creadors no se'ls paga el que mereixen. Si el vostre NFT disposa d'una comissió programada, mai no la perdreu. + +## Per què són utilitzats els NFT? {#nft-use-cases} + +Aquí teniu més informació sobre alguns del més casos d'ús i visions desenvolupats dels NFT d'Ethereum. + +- [Contingut digital](#nfts-for-creators) +- [Objectes de jocs](#nft-gaming) +- [Noms de domini](#nft-domains) +- [Objectes físics](#nft-physical-items) +- [Inversions i garanties](#nfts-and-defi) + + + +### Com poden maximitzar els creadors els seus beneficis {#nfts-for-creators} + +L'ús més gran d'NFT avui en dia és en el regne del contingut digital. L'explicació és senzilla: aquesta indústria actualment està trencada. Els creadors de contingut veuen com els seus beneficis i el seu potencial de guanys se'ls estan empassant les plataformes. + +Un artista que publica el seu treball en una xarxa social fa guanyar diners a la plataforma que ven anuncis als seguidors dels artistes. A canvi, obtenen visibilitat, però la visibilitat no paga les factures. + +Els NFT impulsen l'economia dels nous creadors on aquests no entreguen la propietat dels seus continguts a les plataformes que utilitzen per publicitar-se. La propietat s'incorpora al contingut mateix. + +Quan venen els seus continguts, els fons van directament a ells. Si el nou propietari ven l'NFT, automàticament el creador original pot rebre comissions. Això està garantit cada vegada que es ven perquè l'adreça del creador forma part de les metadades del token, metadades que no poden ser modificades. + + +
Exploreu, compreu o creeu els vostres propis NFT d'art o col·leccionables...
+ + Explorar art NFT + +
+ +#### El problema de copiar/enganxar {#nfts-copy-paste} + +La gent que està en contra sovint planteja el fet que els NFT «són ximples», en general juntament amb una captura de pantalla d'una obra d'art NFT. «Mireu, ara tinc aquesta imatge gratis!» diuen autocomplaent-se. + +Bé, sí. Però googlejar una imatge del Guernica de Picasso fa que sigueu el nou orgullós propietari d'una multimilionària obra d'art? + +Darrerament el fet de posseir quelcom real és tan valuós com el mercat fa que ho sigui. Com més vegades una peça de contingut sigui capturada, compartida i generalment utilitzada, més valor guanya. + +Tenir la titularitat d'un objecte real verificable sempre tindrà més valor que no tenir-la. + + + +### Potenciar el potencial de joc {#nft-gaming} + +Els NFT han atret molt d'interès per part dels desenvolupadors de jocs. Poden proporcionar registres de titularitat per a objectes d'un joc, alimentar les economies d'un joc i aportar molts beneficis als jugadors. + +En molts jocs habituals podeu comprar objectes per utilitzar-los quan jugueu. Però si aquest objecte fos un NFT, podríeu recuperar els vostres diners venent-lo en acabar amb el joc. Fins i tot podríeu treure'n profit si aquest objecte es tornés més desitjat. + +Per als desenvolupadors de jocs (i emissors d'NFT) podria suposar guanyar comissions cada vegada que un objecte és revenut al mercat obert. Això crea un model de negoci més beneficiós mútuament on tant jugadors com desenvolupadors obtenen guanys del mercat secundari d'NFT. + +També vol dir que si el joc ja no és mantingut pels desenvolupadors, els objectes que hágiu col·leccionat resten per a vosaltres. + +En darrer lloc, els objectes que trieu per al joc poden sobreviure als jocs en sí mateixos. Inclús si un joc ja no està disponible, els vostres objectes estaran sempre sota el vostre control. Això significa que els objectes d'un joc es tornen records digitals i tenen valor fora del joc. + +Decentraland, un joc de realitat virtual, fins it ot us permet comprar NFT que representen parcel·les de terreny virtuals que podeu utilitzar com creieu convenient. + + +
Doneu una ullada als jocs d'Ethereum, impulsats per NFT...
+ + Explorar els jocs NFT + +
+ + + +### Fer que les adreces d'Ethereum siguin més fàcils de recordar {#nft-domains} + +L'ENS utilitza els NFT per donar a la vostra adreça Ethereum un nom més fàcil de recordar com ara `mywallet.eth`. Això vol dir que podeu demanar a qualsevol que us enviï ETH via `mywallet.eth` en comptes de `0x123456789...`. + +Funciona de forma similar al nom d'un domini web que fa que l'adreça IP sigui més fàcil de recordar. Com els dominis, els noms ENS tenen cert valor, generalment basat en la longitud i en la rellevància. Amb els ENS no necessiteu un registre de domini per facilitar la transferència de titularitat. Sinó que podeu comerciar amb els vostres noms d'ENS en un mercat d'NFT. + +Els vostres noms d'ENS poden: + +- Rebre criptomonedes i altres NFT. +- Apuntar cap a un lloc web descentralitzat, com ara [ethereum.eth](https://ethereum.eth.link). [Més informació sobre com descentralitzar el vostre lloc web](https://docs.ipfs.io/how-to/websites-on-ipfs/link-a-domain/#domain-name-service-dns) +- Emmagatzemar qualsevol informació arbitrària, incloent-hi informació de perfil com adreces de correu electrònic i controls de Twitter. + + + +### Objectes físics {#nft-physical-items} + +La tokenització d'objectes físics no està encara tan desenvolupada com els seus homòlegs digitals. Però hi ha un munt de projectes que exploren la tokenització de propietats immobiliàries o articles de moda únics, entre d'altres. + +Com que els NFT són essencialment escriptures, algun dia podríeu comprar un cotxe o una casa utilitzant ETH i rebre l'escriptura com un NFT (en la mateixa transacció). A mesura que les coses es tornen més tecnològiques, no és difícil imaginar un món on la vostra cartera d'Ethereum es torni la clau del vostre cotxe o casa: obrireu la porta mitjançant la prova criptogràfica de propietat. + +Amb actius valuosos, com ara cotxes i propietats representables a Ethereum, podeu utilitzar NFT com a garantia en préstecs descentralitzats. És particularment útil si no teniu grans riqueses, siguin diners tradicionals o criptomonedes, però teniu articles físics de valor. [Més informació sobre les DeFi](/defi/) + + + +### Els NFT i les DeFi {#nfts-and-defi} + +El món dels NFT i el món de les [finances descentralitzades (DeFi)](/defi/) comencen a treballar plegats en un nombre de qüestions interessants. + +#### Préstecs avalats per NFT {#nft-backed-loans} + +Hi ha aplicacions DeFi que us permeten demanar diners en préstec utilitzant una garantia. Per exemple, utilitzeu com a garantia 10 ETH i podeu demanar en préstec 5000 DAI ([una criptomoneda](/stablecoins/)). Aquest tràmit garanteix que el prestador serà reemborsat; si el prestatari no torna els DAI, la garantia s'envia al prestador. No obstant això, no tothom posseeix suficients criptomonedes per usar-les com a garantia. + +En el seu lloc, els projectes estan començant a explorar l'ús dels NFT com a garantia. Imagineu que vau comprar en el seu dia un escàs NFT CryptoPunk, que poden arribar als 1000 dòlars als preus d'avui en dia. Posant-lo com a garantia, podeu accedir a un préstec amb el mateix conjunt de normes. Si no torneu el préstec, el vostre CryptoPunk serà enviat al prestatari com a garantia. De fet, tot això podria funcionar amb qualsevol cosa que tokenitzéssiu com a NFT. + +A més, no és gaire difícil a Ethereum, perquè ambdós mons (NFT i DeFi) comparteixen la mateixa infraestructura. + +#### Propietat fraccionada {#fractional-ownership} + +Els creadors d'NFT poden crear també «accions» per als seus NFT. Així, donen l'oportunitat als inversors i als seguidors de tenir una part de l'NFT sense haver de comprar-lo tot complet. D'aquesta forma, s'hi afegeixen moltes més oportunitats als encunyadors i col·leccionistes d'NFT per igual. + +- Els NFT fraccionats poden ser comercialitzats en [cases d'Intercanvi descentralitzades o DEX, per les seves sigles en anglès](/defi/#dex), com Uniswap, no tan sols en [mercats NFT](/dapps?category=collectibles). Això comporta més compradors i més venedors. +- Es pot definir un preu general per a un NFT mitjançant el preu de les seves fraccions. +- Disposeu de més d'una oportunitat per tenir i gaudir d'articles que us importen. És més difícil tenir un preu fora de la propietat dels NFT. + +Encara és experimental però podeu aprendre més sobre la titularitat de les fraccions NFT en els mercats d'intercanvi següents: + +- [NIFTEX](https://landing.niftex.com/) +- [NFTX](https://gallery.nftx.org/) + +En teoria, això obriria la possibilitat de fer coses com ara tenir una porció d'un Picasso. Us convertiríeu en un accionista d'un NFT de Picasso, cosa que vol dir que tindríeu dret de veu en coses com ara el repartiment d'ingressos. És molt probable que aviat posseir una fracció d'un NFT doni accés a una organització autònoma descentralitzada (DAO per les seves sigles en anglès) per a gestionar aquell actiu. + +Són organitzacions impulsades per Ethereum que permeten a desconeguts, com ara accionistes globals d'un actiu, coordinar-se en seguretat sense haver de confiar necessàriament en els altres. Això és degut al fet que no es pot gastar ni una sola peseta sense l'aprovació del grup. + +Com ja hem dit abans, és un espai emergent. Els NFT, les DAO o els tókens fraccionats s'estan desenvolupant a ritmes diferents. Però tota la seva infraestructura existeix i pot treballar conjuntament de forma fàcil perquè tots parlen la mateixa llengua: Ethereum. Per tant, estigueu pendents d'aquest espai. + +[Més informació sobre les DAO](/dao/) + + + +## Ethereum i els NFT {#ethereum-and-nfts} + +Ethereum fa possible que els NFT funcionin a causa d'una sèrie de raons: + +- L'historial de transaccions i les metadades del token són públicament verificables; és fàcil provar l'historial de titularitat. +- Un cop s'ha confirmat una transacció, és pràcticament impossible manipular aquelles dades per «robar» la titularitat. +- Comerciar amb els NFT es pot fer d'igual a igual sense necessitat de plataformes que poden guanyar una bona part com a compensació. +- Tots els productes Ethereum comparteixen el mateix «backend». Dit d'una altra manera, tots els productes Ethereum poden entendre's fàcilment els uns amb els altres; això fa que els NFT siguin fàcils de moure entre productes. Podeu comprar un NFT en un producte i vendre'l fàcilment en un altre. Com a creador, podeu llistar els vostres NFT en múltiples productes alhora; cada producte tindrà la informació de titularitat més actualitzada en cada moment. +- Ethereum mai no cau, per la qual cosa els vostres tókens sempre estaran disponibles a la venda. + +## L'impacte mediambiental dels NFT {#environmental-impact-nfts} + +Els NFT estan creixent en popularitat i això significa que també estan sota un escrutini creixent, especialment al voltant de la seva petjada de carboni. + +Volem aclarir alguns punts: + +- Els NFT no incrementen directament la petjada de carboni d'Ethereum. +- La manera en què Ethereum manté els vostres fons i actius de forma segura actualment és mitjançant un medi d'energia intensiva, però això està a punt de millorar. +- Un cop millorada, la petjada de carboni d'Ethereum serà un 99,95% millor, fent que sigui energèticament més eficient que moltes de les empreses existents avui en dia. + +Per ampliar-ne la informació ens haurem de posar més tècnics, per això tingueu una mica de paciència... + +### No culpeu els NFT {#nft-qualities} + +Tot el sistema NFT funciona a causa del fet que Ethereum és segura i descentralitzada. + +Descentralitzat significa que qualsevol pot verificar que posseïu alguna cosa. Tot sense confiar o concedir la custòdia a terceres parts que poden imposar les seves regles al seu gust. També vol dir que els vostres NFT són traslladables a través de diferents productes i mercats. + +Segur vol dir que ningú pot copiar/enganxar el vostre NFT o robar-lo. + +Aquestes qualitats d'Ethereum fan que sigui possible posseir la titularitat d'articles digitals únics i d'aconseguir un preu correcte pels vostres continguts. Però tot això té un cost. Les cadenes de blocs com Bitcoin i Ethereum actualment consumeixen molta energia a causa del fet que en fa falta molta per mantenir aquestes qualitats. Si fos fàcil reescriure la història d'Ethereum per robar NFT o criptomonedes, el sistema col·lapsaria. + +#### El treball d'encunyar el vostre NFT {#minting-nfts} + +Quan encunyeu un NFT, han de succeir certes coses: + +- Ha de ser confirmat com un actiu a la cadena de blocs. +- El balanç de comptes del titular s'ha d'actualitzar per incloure aquest actiu. Això fa possible que sigui comerciable o que la «propietat» sigui verificable. +- Les transaccions que confirmen tot això necessiten ser afegides a un bloc i «immortalitzades» a la cadena. +- El bloc ha de ser confirmat per totes les persones de la xarxa com a «correcte». Aquest consens evita la necessitat d'intermediaris, ja que la xarxa dona per bo que el vostre NFT existeix i que us pertany. I està en cadena, per tant qualsevol pot comprovar-ho. Aquesta és una de les formes en què Ethereum ajuda els creadors d'NFT a maximitzar els seus guanys. + +Totes aquestes tasques les fan els miners. I permeten a la resta de la xarxa tenir coneixement del vostre NFT i de qui és la titularitat. Això vol dir que la mineria ha de ser suficientment complicada; d'altra banda, qualsevol podria dir que és titular de l'NFT que acabeu d'encunyar i transferir-se la titularitat fraudulentament. Existeixen molts incentius localment per assegurar que els miners actuen amb honestedat. + +[Més informació sobre la mineria](/developers/docs/consensus-mechanisms/pow/) + +#### Protegir el vostre NFT amb la mineria {#securing-nfts} + +La dificultat de la mineria ve del fet que comporta un munt de poder de computació per a crear nous blocs a la cadena. És important recalcar que els blocs es creen de manera coherent, no només quan es necessiten. Es creen cada 12 segons aproximadament. + +Això és important per fer que Ethereum sigui a prova de manipulació, una de les qualitats que fa possible els NFT. Com més blocs, més segura és la cadena. Si el vostre NFT es va crear al bloc #600 i un pirata intentés robar-lo modificant les seves dades, l'empremta digital de tots els blocs subsegüents canviaria. Per tant, qualsevol individu que estigués executant un software d'Ethereum seria capaç immediatament de detectar-ho i evitar que succeís. + +Això vol dir, tanmateix, que constantment s'ha d'estar utilitzant energia computacional. També significa que un bloc que contingui 0 transaccions d'NFT tindrà aproximadament la mateixa empremta de carboni, ja que es consumirà energia computacional per crear-lo. Altres transaccions sense NFT ompliran els blocs. + +#### Les cadenes de blocs consumeixen molta energia actualment {#blockchains-intensive} + +Per tant, sí, hi ha una empremta de carboni associada a la creació de blocs mitjançant la mineria; i això també és un problema per a les cadenes com Bitcoin, però no és directament culpa dels NFT. + +Molta mineria utilitza fonts d'energies renovables o energies sense explotar a llocs remots. Existeix, a més, l'argument que les indústries que les NFT i les criptomonedes estan alterant tenen també enormes empremtes de carboni. Però tan sols perquè les indústries existents siguin dolentes, no significa que no ens hauríem d'esforçar per ser millors. + +I ho som. Ethereum està evolucionant per fer l'ús d'Ethereum (i, com a resultat, els NFT) més energèticament eficient. I aquest ha estat sempre el pla. + +No estem aquí per defensar l'empremta mediambiental de la mineria, sinó que volem explicar com estan canviant les coses a millor. + +### Un futur més verd... {#a-greener-future} + +Durant tot aquest temps que Ethereum ha existit, el consum energètic de la mineria ha estat un gran àmbit d'atenció per als desenvolupadors i els investigadors. I la visió sempre ha estat reemplaçar-la el més aviat possible. [Més informació sobre la visió d'Ethereum](/roadmap/vision/) + +Aquesta visió s'està lliurant ara mateix. + +#### Un Ethereum més verd {#greener-ethereum} + +Ethereum està passant actualment per una sèrie de millores que reemplaçaran la mineria amb [les participacions](/staking/). Això traurà l'energia computacional com a mecanisme de seguretat i reduirà la petjada de carboni d'Ethereum en ~99,95%[^1]. En aquest món, els participants comprometen fons en lloc de poder computacional per protegir la xarxa. + +El cost energètic d'Ethereum serà el cost d'executar un ordinador personal multiplicat pel nombre de nodes a la xarxa. Si hi ha 10.000 nodes a la xarxa i el cost d'execució d'un ordinador personal és aproximadament 525 kWh per any, això fa un total de 5.250.000 kWh[^1] per any per a tota la xarxa. + +Podem utilitzar aquest càlcul per comparar el futur d'Ethereum amb un servei global com Visa. 100.000 transaccions de Visa utilitzen 149 kWh d'energia[^2]. En la prova de participació d'Ethereum, aquest mateix nombre de transaccions costarien 17,4 kWh d'energia o ~11% del total de l'energia[^3]. Això sense considerar totes les optimitzacions fetes en paral·lel a la capa de consens i les cadenes de fragments, com ara els [rollups](/glossary/#rollups). Podria ser tan poc com 0,1666666667 kWh d'energia per cada 100.000 transaccions. + +L'important és que millora l'eficiència energètica a la vegada que preserva la descentralització i protecció d'Ethereum. Moltes altres cadenes de blocs externes podrien utilitzar algun tipus de participacions, però estan protegides per uns pocs apostadors selectes, no pels milers que Ethereum tindrà. Com més descentralització, més protegit estarà el sistema. + +[Més informació sobre les estimacions energètiques](#footnotes-and-sources) + +_Hem aportat la comparació bàsica de Visa perquè tingueu una base per comprendre el consum energètic de la prova de participació d'Ethereum respecte a un nom familiar. Tanmateix, a la pràctica, no és realment correcte comparar-los basant-se en nombre de transaccions. La despesa energètica d'Ethereum està basada en el temps. Si Ethereum fes més o menys transaccions d'un minut a l'altre, la despesa energètica seria la mateixa._ + +_És important també recordar que Ethereum fa més que només transaccions financeres, és una plataforma per a aplicacions; per tant, una comparació més justa podria ser amb moltes companyies o industries incloent-hi Visa, AWS i d'altres!_ + +#### Terminis {#timelines} + +El procés ja ha començat. [La cadena de balisa](/roadmap/beacon-chain/), la primera millora, llençada el desembre de 2020. Proporciona la base per a les participacions permetent als apostadors accedir al sistema. El següent pas rellevant per a l'eficiència energètica és fusionar la cadena actual, la que està protegida pels miners, amb la cadena de balisa, on la mineria no és necessària. Els terminis poden no ser exactes en aquest punt, però s'estima que succeirà en algun moment de 2022. Aquest procés es coneix com La Fusió (anteriorment anomenada l'acoblament). [Més informació sobre la fusió](/roadmap/merge/). + + + Més informació sobre les millores d'Ethereum + + +## Construir amb NFT {#build-with-nfts} + +La majoria dels NFT són construïts utilitzant un estàndard conegut com a [ERC-721](/developers/docs/standards/tokens/erc-721/). No obstant això, hi ha altres estàndards que us podrien interessar. L'estàndard [ERC-1155](https://blog.enjincoin.io/erc-1155-the-crypto-item-standard-ac9cf1c5a226) permet tókens semifungibles, cosa que és particularment útil en el món dels jocs. Més recentment, l'[EIP-2309](https://eips.ethereum.org/EIPS/eip-2309) ha estat proposat per fer l'encunyament d'NFT molt més eficient. Aquest estàndard us permet encunyar tants com vulgueu en una sola transacció! + +## Llegir-ne més {#further-reading} + +- [Dades sobre l'art criptogràfic](https://cryptoart.io/data) – Richard Chen, actualitzat automàticament +- [OpenSea: la bíblia sobre els NFT](https://opensea.io/blog/guides/non-fungible-tokens/) – _Devin Fizner, 10 de gener de 2020_ +- [Guia per a principiants dels NFT](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, gener de 2020_ +- [Tot el que heu de saber sobre el metavers](https://foundation.app/blog/enter-the-metaverse) – _Equip de la Fundació, foundation.app_ +- [No, els criptoartistes no estan malmetent el planeta](https://medium.com/superrare/no-cryptoartists-arent-harming-the-planet-43182f72fc61) +- [Mai més el poder d'un país](https://blog.ethereum.org/2021/05/18/country-power-no-more/) – _Carl Beekhuizen, 18 de maig de 2021_ + + + +### Notes a peu de pàgina i fonts {#footnotes-and-sources} + +Tot això explica com hem arribat a les nostres estimacions energètiques mencionades abans. Aquestes estimacions s'apliquen a la xarxa com a una totalitat i no estan reservades només al procés de creació, compra o venda d'NFT. + +#### 1. Un 99,95% de reducció d'energia de la mineria {#fn-1} + +La reducció del consum energètic del 99,95% d'un sistema protegit per miners a un sistema protegit per participacions es calcula utilitzant les següents fonts d'informació: + +- Anualment es consumeixen 44,49 TWh d'energia elèctrica minant Ethereum - [Digiconomist](https://digiconomist.net/ethereum-energy-consumption) + +- Un ordinador de sobretaula mitjà, l'únic que es necessita per a executar una prova de participació, utilitza una energia de 0,06 kWh – [Gràfic de l'energia a Silicon Valley](https://www.siliconvalleypower.com/residents/save-energy/appliance-energy-use-chart) (Alguns estimen que és una mica més alta, d'uns 0,15 kWh) + +En el moment d'escriure això, hi ha 140.592 validadors de 16.405 adreces úniques. D'aquests, se suposa que 87.897 validadors participen des de casa. + +Se suposa que un individu mitjà amb participacions des de casa utilitza una configuració d'ordinador personal de 100 watts per executar una mitjana de 5,4 clients validadors. + +Amb els 87.897 validadors executant des de casa ens dona 16.300 usuaris consumint ~1,64 megawatts d'energia. + +La resta dels validadors s'executen mitjançant participacions de custòdia com ara mercats d'intercanvi i serveis de participacions. Es pot suposar que utilitzen 100 watts per cada 5,5 validadors. Aquesta és una sobreestimació bruta per anar a cop segur. + +Per tant, en total, Ethereum consumeix en proves de participació al voltant de 2,62 megawatts, que és el mateix que un poble petit americà. + +Això és una reducció d'almenys el 99,95% del total de la despesa energètica de l'estimació de Digiconomist dels 44,49 TWh per any que els actuals miners d'Ethereum consumeixen. + +#### 2. Consum energètic de Visa {#fn-2} + +El cost de les 100.000 transaccions de Visa és de 149 kWh - [Despesa energètica mitjana de la xarxa Bitcoin per transacció comparada amb la xarxa Visa el 2020, Statista](https://www.statista.com/statistics/881541/bitcoin-energy-consumption-transaction-comparison-visa/) + +Cap a finals de setembre de 2020 havien processat 140.839.000.000 transaccions - [Informes financers de Visa del quart trimestre de 2020](https://s1.q4cdn.com/050606653/files/doc_financials/2020/q4/Visa-Inc.-Q4-2020-Operational-Performance-Data.pdf) + +#### 3. Despesa energètica per 100.000 transaccions en una xarxa de prova de participació fragmentada {#fn-3} + +S'estima que les millores en l'escalabilitat permetran la xarxa processar entre 25.000 i 100.000 transaccions per segon, amb [un màxim teòric de moment de 100.000](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698). + +[Vitalik Buterin parla sobre el potencial de les transaccions per segon amb la fragmentació](https://twitter.com/VitalikButerin/status/1312905884549300224) + +Amb un mínim, la fragmentació permetrà una quantitat de transaccions multiplicada per 64 en comparació amb les que es fan avui en dia que ronden les 15. Aquesta és la quantitat de cadenes fragmentades (capacitat i dades extra) que s'han introduït. [Més informació sobre les cadenes de fragments](/roadmap/danksharding/) + +Això vol dir que podem estimar quant es trigaria a processar 100.000 transaccions per poder comparar-ho amb l'exemple de Visa esmentat. + +- `15 * 64 = 960` transaccions per segon. +- `100.000 / 960 = 104,2` segons en processar 100.000 transaccions. + +En 104,2 segons, la xarxa Ethereum utilitzarà la mateixa quantitat d'energia: + +`1,44Kwh d'ús diari * 10.000 nodes de xarxa = 14.400 kWh` al dia. + +Un dia té 86.400 segons, per tant `14.400 / 86.400 = 0,1666666667 kWh` per segon. + +Si multipliquem això per la quantitat de temps que fa falta per a processar 100.000 transaccions: `0,1666666667 * 104,2 = 17,3666666701 kWh`. + +Això és un **11,6554809866%** de l'energia consumida per la mateixa quantitat de transaccions a Visa. + +Recordeu que tot això està basat en la mínima quantitat de transaccions per segon que Ethereum estarà capacitada a dur a terme. Si Ethereum assoleix el seu potencial de 100.000 transaccions per segon, 100.000 transaccions consumirien 0,1666666667 kWh. + +Per dir-ho d'una altra manera, si Visa gestionés 140.839.000.000 transaccions a un cost de 149 kWh per cada 100.000 transaccions significaria un consum d'energia anual de 209.850.110 kWh. + +Ethereum en un sol any consumeix 5.256.000 kWh. Amb un potencial de 788.940.000.000 - 3.153.600.000.000 transaccions processades en aquest espai de temps. + + + Si creieu que aquestes afirmacions són incorrectes o poden ser més exactes, plantegeu un problema o una PR. Són estimacions fetes per l'equip d'ethereum.org utilitzant informació accessible públicament i el disseny d'Ethereum planejat. No representa una promesa oficial de la Fundació Ethereum. + diff --git a/public/content/translations/ca/roadmap/beacon-chain/index.md b/public/content/translations/ca/roadmap/beacon-chain/index.md new file mode 100644 index 00000000000..018d7aa98b2 --- /dev/null +++ b/public/content/translations/ca/roadmap/beacon-chain/index.md @@ -0,0 +1,68 @@ +--- +title: La cadena de balisa +description: Aprèn més coses sobre la Cadena de Balisa - la millora que va introduir la prova de participació d'Ethereum. +lang: ca +template: upgrade +image: /upgrades/core.png +alt: +summaryPoint1: La Cadena de Balisa no canvia en res l'Ethereum que utilitzem avui en dia. +summaryPoint2: Coordinarà la xarxa, fent servei com a capa de consens. +summaryPoint3: Va introduir la prova de participació a l'ecosistema Ethereum. +summaryPoint4: Potser, això, ho coneixeu com la "Fase 0" dels mapes tècnics. +--- + + + La cadena de balisa es va posar en marxa l'1 de desembre del 2020 al migdia (UTC). Per saber-ne més exploreu les dades. Si voleu ajudar a validar la cadena, podeu "apostar" els vostres ETH. + + +## Què fa la cadena de balisa? {#what-does-the-beacon-chain-do} + +La cadena de balisa dirigirà o coordinarà l'expansió de la xarxa de [fragments](/roadmap/danksharding/) i [participants](/staking/). Però no serà com [la xarxa principal d'Ethereum](/glossary/#mainnet) d'avui en dia. No pot gestionar comptes o contractes intel·ligents. + +El rol de la cadena de balisa canviarà amb el pas del temps, però és un element fonamental de [l'Ethereum segur, sostenible i escalable per la qual treballem](/roadmap/vision/). + +## Característiques de la cadena de balisa {#beacon-chain-features} + +### Introducció de les "apostes" {#introducing-staking} + +La cadena de balisa introduirà la [prova de participació](/developers/docs/consensus-mechanisms/pos/) a Ethereum. És una manera nova d'ajudar a mantenir segur l'Ethereum. Ho podeu concebre com un bé públic que farà Ethereum més saludable i et farà guanyar més ETH en el procés. A la pràctica, haureu d'apostar ETH per tal d'activar el programari de validació. Com a validador, processareu les transaccions i creareu nous blocs a la cadena. + +Apostar i convertir-se en validador és més senzill que [minar](/developers/docs/mining/) (la manera actual de mantenir la xarxa segura). I s'espera que això contribueixi a fer Ethereum més segur a llarg termini. Com més gent participi a la xarxa, més descentralitzada i segura serà davant dels atacs. + + +Si us interessa ser validador i contribuir a protegir la cadena de balisa, aquí podeu aprendre més sobre les apostes. + + +Això és un canvi important per una altra millora:[les cadenes de fragments](/roadmap/danksharding/). + +### Configuració de les cadenes de fragments {#setting-up-for-shard-chains} + +Després que la xarxa principal es fusioni amb la cadena de balisa, la propera actualització introduirà cadenes de fragments a la xarxa de prova de participació. Aquests "fragments" augmentaran la capacitat de la xarxa i milloraran la velocitat de les transaccions tot ampliant la xarxa a 64 cadenes de blocs. La cadena de balisa és un primer pas important en la introducció de cadenes de fragments, ja que requereixen apostar per funcionar de manera segura. + +Amb el temps, la cadena de balisa també serà l'encarregada d'assignar als apostadors la validació de les cadenes de fragments. Això és clau per dificultar que els apostadors puguin coordinar-se i prendre el control d'un fragment. Per tant, vol dir que tenen [menys d'una possibilitat entre un bilió](https://medium.com/@chihchengliang/minimum-committee-size-explained-67047111fa20). + +## Relació entre les millores {#relationship-between-upgrades} + +Les millores d'Ethereum estan d'alguna manera interrelacionades. Recapitulem com la cadena de balisa afecta altres millores. + +### La xarxa principal i la cadena de balisa {#mainnet-and-beacon-chain} + +En un principi, la cadena de balisa serà independent de la xarxa principal d'Ethereum que fem servir actualment. Però, en última instància, estaran connectades. La idea és "fusionar" la xarxa principal amb el sistema de prova de participació, que la cadena de balisa coordinarà i controlarà. + + + La fusió + + +### Fragments i la cadena de balisa {#shards-and-beacon-chain} + +Les cadenes de fragments només poden entrar de forma segura a l'ecosistema Ethereum si existeix un mecanisme de consens de prova de participació. La cadena de balisa introduirà l'aposta i aplanarà el camí a la futura introducció de la cadena de fragments. + + + Cadenes de fragments + + + + +## Interactuar amb la cadena de balisa {#interact-with-beacon-chain} + + diff --git a/public/content/translations/ca/roadmap/merge/index.md b/public/content/translations/ca/roadmap/merge/index.md new file mode 100644 index 00000000000..553056a781a --- /dev/null +++ b/public/content/translations/ca/roadmap/merge/index.md @@ -0,0 +1,68 @@ +--- +title: La fusió +description: "Més informació sobre la fusió: quan la xarxa principal d'Ethereum s'integri al sistema coordinat de prova de participació de la cadena de balisa." +lang: ca +template: upgrade +image: /upgrades/merge.png +alt: +summaryPoint1: Està previst que l'actual xarxa principal d'Ethereum es "fusioni" amb la cadena de balisa basada en el sistema de prova de participació. +summaryPoint2: Això marcarà el final del sistema de prova de treball per Ethereum i significarà la transició completa al sistema de prova de participació. +summaryPoint3: Està previst que precedeixi la posada en marxa de la millora anomenada cadena de fragments. +summaryPoint4: En el passat ens hi referíem com "l'acoblament." +--- + + + Aquesta actualització representa el canvi oficial al consens de la prova de participació. D'aquesta manera s'elimina la necessitat de la mineria, que consumeix molta energia, i en el seu lloc s'assegura la xarxa utilitzant ether estacat. Un pas realment exitant és assolir Ethereum vision - més escalabilitat, seguretat, i sostenibilitat. + + +## Què és la fusió? {#what-is-the-docking} + +És important recordar que inicialment, l'actualització de la [cadena de balisa](/roadmap/beacon-chain/) s'enviava per separat des de la [xarxa principal](/glossary/#mainnet), la cadena que utilitzem avui. La xarxa principal d'Ethereum seguirà estant protegida mitjançant la [prova de treball](/developers/docs/consensus-mechanisms/pow/), fins i tot quan la cadena de balisa s'executi en paral·lel utilitzant la [prova de participació](/developers/docs/consensus-mechanisms/pos/). La fusió és quan aquests dos sistemes finalment es combinen. + +Imagineu que Ethereum és una nau espacial que no està del tot preparada per a un viatge interestel·lar. Amb la cadena de balisa la comunitat ha creat un nou motor i un habitacle més reforçat. Quan sigui el moment, la nau actual es fusionarà amb aquest nou sistema per convertir-se en una única nau, preparada per viatjar a anys llum i conquerir l'univers. + +## Fusió amb la xarxa principal {#docking-mainnet} + +Quan estigui preparada, la xarxa principal d'Ethereum es "fusionarà" amb la cadena de balisa transformant-se en un fragment propi que utilitzi la prova de participació en lloc de la [prova de treball](/developers/docs/consensus-mechanisms/pow/). + +La xarxa principal aportarà la capacitat d'executar contractes intel·ligents en el sistema de prova de participació, a més de l'historial complet i l'estat actual d'Ethereum, per garantir que la transició sigui fluida per a tots els titulars i usuaris d'ETH. + +## Després de la fusió {#after-the-merge} + +Això marcarà el final de la prova de treball per a Ethereum i el principi d'una nova era més sostenible i respectuosa amb el medi ambient. Arribats a aquest punt, Ethereum estarà un pas més a prop d'adquirir la mida completa, la seguretat i la sostenibilitat remarcades en la seva [visió d'Ethereum](/roadmap/vision/). + +És important tenir en compte que un objectiu d’implementació de la fusió és la simplicitat per agilitar la transició de la prova de treball a la prova de participació. Els desenvolupadors estan focalitzant els seus esforços en aquesta transició, alhora que minimitzen característiques addicionals que podrien endarrerir aquest objectiu. + +**Això vol dir que algunes funcions, com ara la possibilitat de retirar els ETH apilats, hauran d'esperar una mica més després de completar la unió.**Els plans inclouen una actualització de "neteja" posterior a la fusió per fer front a aquestes funcions, cosa que s'espera que passi molt aviat després de finalitzar la fusió. + +## Relació entre les millores {#relationship-between-upgrades} + +Les millores d'Ethereum estan d'alguna manera interrelacionades. Per tant, recapitulem sobre com La Fusió es relaciona amb les altres millores. + +### La Fusió i la Cadena de Balisa {#docking-and-beacon-chain} + +Un cop succeeixi La Fusió, s'assignaran els tenidors per validar la xarxa principal d'Ethereum. [La mineria](/developers/docs/consensus-mechanisms/pow/mining/) ja no farà falta, per tant, el miners probablement invertiran els seus guanys en participacions en el nou sistema de prova de participació. + + + La cadena de balisa + + +### La fusió i la neteja postfusió {#merge-and-post-merge-cleanup} + +Immediatament després de La Fusió, algunes característiques com ara la retirada d'ETH apilats, ja no estarà disponible. Aquestes estan previstes per a una millora separada que vindrà poc després de La Fusió. + +Estigueu al dia amb el [Blog de recerca i desenvolupament EF](https://blog.ethereum.org/category/research-and-development/). Per als curiosos, obteniu més informació sobre què passa després de la fusió en [What Happens After the Merge](https://youtu.be/7ggwLccuN5s?t=101), presentat per Vitalik a l'esdeveniment ETHGlobal d'abril de 2021. + +### La Fusió i les cadenes de fragments {#docking-and-shard-chains} + +Originalment, el pla era treballar en cadenes de fragments abans de La Fusió, per abordar l’escalabilitat. Tot i això, amb l’auge de les [solucions d’escala de capa 2](/developers/docs/scaling/#layer-2-scaling), la prioritat s’ha canviat a passar de la prova de treball a la prova de participació mitjançant La Fusió. + +La comunitat avaluarà de forma contínua la necessitat de múltiples rondes de cadenes de fragments per permetre una escalabilitat infinita. + + + Cadenes de fragments + + +## Més informació {#read-more} + + diff --git a/src/content/translations/ca/security/index.md b/public/content/translations/ca/security/index.md similarity index 100% rename from src/content/translations/ca/security/index.md rename to public/content/translations/ca/security/index.md diff --git a/public/content/translations/cs/dao/index.md b/public/content/translations/cs/dao/index.md new file mode 100644 index 00000000000..da01b92278d --- /dev/null +++ b/public/content/translations/cs/dao/index.md @@ -0,0 +1,165 @@ +--- +title: Decentralizované autonomní organizace (DAO) +description: Přehled DAO na Ethereu +lang: cs +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: Vyobrazení decentralizované autonomní organizace hlasující o návrhu. +summaryPoint1: Členské komunity bez centralizovaného vedení. +summaryPoint2: Bezpečný způsob, jak spolupracovat s lidmi na internetu. +summaryPoint3: Bezpečné místo pro vložení prostředků na konkrétní věc. +--- + +## Co jsou DAO? {#what-are-daos} + +DAO je kolektivně vlastněná, blockchainem řízená organizace, která pracuje k dosažení společného cíle. + +DAO nám umožňují pracovat s podobně smýšlejícími lidmi po celém světě, aniž bychom věřili benevolentnímu lídrovi, aby spravoval finanční prostředky nebo operace. Není zde žádný výkonný ředitel, který by rozmarně utrácel peníze nebo výkonný finanční ředitel, který by mohl manipulovat s rozvahou firmy. Namísto toho jsou do kódu zavedena pravidla založená na blockchainu, která definují, jak organizace funguje a jak je s finančními prostředky vynaloženo. + +Mají zabudované pokladny, do kterých nikdo nemá přístup bez souhlasu skupiny. Rozhodnutí se řídí návrhy a hlasováním, aby měl každý člen organizace možnost vyjádřit svůj názor a vše na blockchainu probíhalo transparentně. + +## Proč potřebujeme DAO? {#why-dao} + +Zakládání nové organizace s někým dalším vyžaduje nejen počáteční finanční prostředky, ale také velkou důvěru v lidi, s nimiž budete spolupracovat. Může být ale těžké důvěřovat někomu, s kým jste dosud komunikovali pouze přes internet. V DAO však nemusíte důvěřovat nikomu dalšímu, protože veškeré procesy dané organizace jsou založené na počítačovém kódu, který je 100% transparentní a kýmkoliv ověřitelný. + +Tento princip tak otevírá mnoho nových příležitostí ke globální spolupráci a koordinaci. + +### Srovnání {#dao-comparison} + +| Decentralizovaná Autonomní Organizace | Tradiční organizace | +| ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | +| Obvykle má horizontální strukturu a je plně demokratická. | Obvykle má hierarchickou strukturu. | +| Veškeré plánované změny vyžadují členské hlasování. | V závislosti na struktuře se změny dějí buď pomocí hlasování nebo rozhodnutím členů s výhraním právem. | +| Výsledky hlasování jsou zpracovávané automaticky bez nutnosti důvěryhodného prostředníka. | Pokud je hlasování povoleno, je vyřizováno ručně a výsledek je zpracováván interně. | +| Služby jsou řízeny automatickým a decentralizovaným způsobem (například distribuce filantropických fondů). | Vyžaduje lidskou manipulaci nebo centrálně řízenou automatizaci náchylnou k falšování. | +| Veškerá činnost je transparentní a zcela veřejná. | Aktivity jsou obvykle soukromé a skryté před veřejností. | + +### Příklady DAO {#dao-examples} + +Několik příkladů, k čemu je možné DAO využít: + +- Charita – můžete přijímat dary od kohokoliv na světě a hlasovat o tom, co bude financováno. +- Družstevní vlastnictví – můžete zakoupit fyzická či digitální aktiva a členové mohou hlasovat o tom, jak s nimi naložit. +- Podniky a granty – můžete vytvořit fond rizikového kapitálu, který sdružuje investiční kapitál a hlasuje o podnicích, které podpoří. Splacené peníze mohou být později přerozděleny mezi členy DAO. + +## Jak fungují DAO? {#how-daos-work} + +Základem DAO je její chytrý kontrakt, který definuje pravidla organizace a spravuje pokladnu skupiny. Jakmile je kontrakt nasazen na Ethereu, nikdo nemůže změnit pravidla jinak než hlasováním. Pokud by se tedy někdo prokusil provést akci, která není definována pravidly a logikou počítačového kódu, skončí to neúspěchem. Stejně tak i finanční prostředky jsou řízeny chytrým kontraktem, takže nikdo nemůže utratit peníze bez souhlasu skupiny Znamená to tedy, že DAO nepotřebuje žádnou ústřední entitu a namísto toho jsou všechna rozhodnutí i platby prováděny kolektivně na základě společného hlasování. + +To je možné z toho důvodu, že chytré kontrakty jsou po nasazení na Ethereum chráněny proti nedovolené manipulaci. Pravidla DAO jsou totiž zapsaná pomocí veřejně dostupného kódu a nelze je tak upravovat bez povšimnutí. + + + Více o chytrých smlouvách + + +## Ethereum a DAO {#ethereum-and-daos} + +Ethereum je ideální základ pro DAO a to hned z několika důvodů: + +- Vlastní konsenzus sítě Ethereum je natolik distribuovaný a zavedený, že mu organizace mohou důvěřovat. +- Kód chytrého kontraktu nemůže být po svém nasazení upraven a to ani vlastními majiteli. To umožňuje řídit DAO podle pravidel, se kterými byla naprogramována. +- Chytré kontrakty mohou posílat i přijímat finanční prostředky, což umožňuje správu společných financí bez existence důvěryhodného prostředníka. +- Komunita kolem Etherea prokazuje schopnost spolupracovat, což umožňuje vznik osvědčených postupů a podpůrných systémů. + +## Řízení DAO {#dao-governance} + +Při řízení DAO je třeba zvážit mnoho aspektů, například způsob hlasování a navrhování. + +### Delegace {#governance-delegation} + +Delegování je něco jako DAO verze zastupitelské demokracie. Držitelé tokenu delegují hlasy uživatelům, kteří se nabídnou a slíbí, že budou spravovat protokol a zůstanou o něm informováni. + +#### Příklad z praxe {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) – Držitelé ENS mohou delegovat své hlasy členům angažovaných komunit, aby je reprezentovali. + +### Automatické řízení transakcí {#governance-example} + +V mnoha DAO budou transakce provedeny automaticky, pokud bude dostatečně uživatelů hlasovat pro. + +#### Příklad z praxe {#governance-example} + +[Nouns](https://nouns.wtf) – V Nouns DAO je transakce provedena, pokud je dosažen dostatečný počet hlasů a většina z nich je pro a pokud ji zakladatelé nevetují. + +### Řízení Multisig {#governance-example} + +Přestože DAO mají tísíce hlasujících členů, finanční prostředky mohou být uloženy v peněžence sdílené 5 až 20 aktivními členy komunity, kteří jsou důvěryhodní a doxxnutí (jejich veřejná identita je komunitě známá). Po hlasování vykonají multisigoví signatáři vůli komunity. + +## Zákony DAO {#dao-laws} + +V roce 1977 představil stát Wyoming LLC, typ společnosti ekvivalentní k české společnosti s ručením omezením, který chrání podnikatele a omezuje jejich odpovědnost. V nedávné době se stal průkopníkem zákona DAO, který pro organizaci zavádí právní status. V současné době mají Wyoming, Vermont a Panenské ostrovy v nějaké formě zákony DAO. + +### Příklad z praxe {#law-example} + +[CityDAO](https://citydao.io) – CityDAO používal zákon DAO státu Wyoming ke koupi 40 akrů půdy poblíž Yellowstonského národního parku. + +## Členství v DAO {#dao-membership} + +Existují různé typy členství v DAO. Na základně nich je pak určeno, jak v dané DAO funguje hlasování a další klíčové principy. + +### Členství založené na tokenech {#token-based-membership} + +Obvykle zcela bez omezení (v závislosti na použitém tokenu). Příslušné tokeny jsou typicky volně obchodovány na decentralizované burze, získávány poskytnutím likvidity anebo těženy nějakým „proof-of-work“ způsobem. Ve všech případech ale pouhé držení tokenu umožňuje přístup k hlasování. + +_Obvykle se používá k řízení rozsáhlých decentralizovaných protokolů a/nebo tokenů samotných._ + +#### Příklad z praxe {#token-example} + +[MakerDAO](https://makerdao.com) – Token MKR společnosti MakerDAO je široce dostupný na decentralizovaných burzách a kdokoliv si může koupit hlasovací práva ohledně budoucnosti protokolu Maker. + +### Členství založené na akciích {#share-based-membership} + +DAO založené na akciích jsou přísnější, ale stále docela otevřené. Každý potenciální člen může předložit návrh na přijetí, který obvykle nabízí hodnotu ve formě tokenů nebo určitého typu práce. Akcie pak představují přímou hlasovací sílu a vlastnictví. Členové mohou z takové DAO kdykoli vystoupit a to se svým poměrným podílem celkových prostředků. + +_Obvykle se používá u lidskoprávních organizací, jako jsou charity a odborové svazy nebo u investičních klubů. Může být použita také k řízení protokolů nebo správě tokenů._ + +#### Příklad z praxe {#share-example} + +[MolochDAO](http://molochdao.com/) – MolochDAO se zaměřuje na financování projektů postavených na Ethereu. Pro získání členství je potřeba předložit návrh, na jehož základě skupina posoudí, má-li zájemce potřebné odborné znalosti a kapitál, aby mohl činit informované úsudky o potenciálních grantech. Přístup k takovému DAO tedy nelze koupit na otevřeném trhu. + +### Členství založené na reputaci {#reputation-based-membership} + +Reputace je důkazem účasti a poskytuje hlasovací práva v DAO. Na rozdíl od tokenových či podílových členství, organizace DAO založené na reputaci nepřevádějí vlastnictví na přispěvatele. Reputaci nelze koupit, převést či delegovat; členové DAO si ji musí získat prostřednictvím účasti. Hlasování na blockchainuje je veřejně dostupné a budoucí členové mohou svobodně předložit návrhy na vstup do DAO a požádat o získání reputace a tokenů jako odměnu za své příspěvky. + +_Obyvkle používané na decentralizovaném vývoji a řízení protokolů a decentralizovaných aplikací, ale hodí se také na rozmanitý soubor organizací jako charity, pracovní družstva, investiční kluby atd._ + +#### Příklad z praxe {#reputation-example} + +[DXdao](https://DXdao.eth.link) – DXdao je globální suverénní družstvo budující a řídící decentralizované protokoly a aplikace od roku 2019. Využívá řízení založené na reputaci a holografický konsensus ke koordinaci a správě finančních prostředků, což znamená, že si k ovládání její budoucnosti nikdo nemůže koupit cestu. + +## Připojte se / založte DAO {#join-start-a-dao} + +### Připojte se k DAO {#join-a-dao} + +- [DAO pro komunitu kolem Etherea](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [Seznam DAO od platformy DAOHaus](https://app.daohaus.club/explore) +- [Seznam DAO Tally.xyz](https://www.tally.xyz) + +### Založte DAO {#start-a-dao} + +- [Rozběhněte DAO pomocí DAOHaus](https://app.daohaus.club/summon) +- [Založte guvernéské DAO s Tally](https://www.tally.xyz/add-a-dao) +- [Vytvořte DAO postavenou na Aragonu](https://aragon.org/product) +- [Založte kolonii](https://colony.io/) +- [Vytvořte DAO s holografickým konsenzem DAOstack](https://alchemy.daostack.io/daos/create) + +## Další informace {#further-reading} + +### Články o DAO {#dao-articles} + +- [Co je DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) +- [Příručka DAO](https://daohandbook.xyz) +- [House of DAOs](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) +- [Co je to DAO a k čemu je to dobré?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) +- [Jak založit komunitu založenou na DAO](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) +- [Co je to DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) +- [Co je holografický konsenzus?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) +- [DAO nejsou korporace: kde na decentralizaci v autonomních organizacích záleží od Vitalika](https://vitalik.ca/general/2022/09/20/daos.html) +- [DAO, DAC, DA a další: Neúplná příručka terminologie](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Ethereum Blog](https://blog.ethereum.org) + +### Videa {#videos} + +- [Co je to DAO?](https://youtu.be/KHm0uUPqmVE) +- [Dokáže DAO vybudovat město?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/public/content/translations/cs/decentralized-identity/index.md b/public/content/translations/cs/decentralized-identity/index.md new file mode 100644 index 00000000000..caecd591eac --- /dev/null +++ b/public/content/translations/cs/decentralized-identity/index.md @@ -0,0 +1,185 @@ +--- +title: Decentralizovaná identita +description: Co je decentralizovaná identita a proč na ní záleží? +lang: cs +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: /eth-gif-cat.png +summaryPoint1: Tradiční systémy identity centralizovaly vydávání, údržbu a kontrolu vašich identifikátorů. +summaryPoint2: Decentralizovaná identita odstraňuje závislost na centralizovaných třetích stranách. +summaryPoint3: Díky kryptu mají nyní opět uživatelé nástroje k vydávání, držení a ovládání svých identifikátorů a osvědčení. +--- + +Identita podpírá prakticky každý aspekt vašeho života. Využívání online služeb, otevírání bankovního účtu, hlasování ve volbách, nákup majetku, zajištění zaměstnávání — to vše vyžaduje prokázání vaší totožnosti. + +Tradiční systémy správy identity však dlouho závisely na centralizovaných zprostředkovatelích, kteří vydávají, drží a ovládají vaše identifikátory a [atestace](#what-are-attestations). To znamená, že nemůžete ovládat informace související s vaší identitou nebo rozhodovat o tom, kdo má přístup k osobně identifikovatelným informacím (PII) a jak velký přístup tyto strany mají. + +Abychom tyto problémy vyřešili, vytvořili jsme decentralizované systémy identity založené na veřejných blockchainech, jako je Ethereum. Decentralizovaná identita umožňuje jednotlivcům spravovat informace související s jejich identitou. Pomocí decentralizovaných řešení identity můžete i _vy_ vytvářet identifikátory a nárokovat a spravovat své atestace, aniž byste byli závislí na centrální autoritě, jako jsou poskytovatelé služeb či vlády. + +## Co je to identita? {#what-is-identity} + +Identita značí sebepojetí jednotlivce, které je definováno jedinečnými charakteristikami. Identita znamená být _jednotlivcem_, tj. samostatnou lidskou entitou. Identita také může odkazovat na jiné nelidské entity, jako jsou například organizace či autority. + +## Co jsou identifikátory? {#what-are-identifiers} + +Identifikátor je informace, která slouží jako ukazatel ke konkrétní identitě či identitám. Mezi časté identifikátory patří: + +- Jméno +- Číslo sociálního zabezpečení / DIČ +- Číslo mobilního telefonu +- Datum a místo narození +- Digitální identifikační údaje, např. e-mailové adresy, uživatelská jména, avatary + +Tyto tradiční příklady identifikátorů jsou vydávány, drženy a kontrolovány centrálními entitami. Potřebujete povolení od vlády, abyste změnili své jméno nebo od sociální sítě, abyste změnili své uživatelské jméno. + +## Co jsou atestace? {#what-are-attestations} + +Atestace je nárok uplatněn jednou entitou o jiné entitě. Pokud žijete ve Spojených státech, řidičský průkaz, který vám byl vydán Ministerstvem pro motorová vozidla (jednou entitou) vám (jiné entitě) udělí atestaci, která vám legálně umožňuje řídit auto. + +Atestace se liší od identifikátorů. Atestace _obsahuje_ identifikátory odkazující na určitou identitu a uplatňuje nárok o atributu vztahujícím se k této identitě. Takže váš řidičský průkaz má identifikátory (jméno, datum narození, adresa), ale je také atestací o vašem zákonném právu řídit. + +### Co jsou decentralizované identifikátory? {#what-are-decentralized-identifiers} + +Tradiční identifikátory, jako je vaše jméno nebo e-mailová adresa, jsou závislé na třetích stranách – vládách a poskytovatelích e-mailových služeb. Decentralizované identifikátory (DID) jsou odlišné – nejsou vydávány, spravovány ani ovládány žádnou centrální entitou. + +Decentralizované identifikátory jsou vydávány, drženy a kontrolovány jednotlivci. [Ethereum účet](/developers/docs/accounts/) je příkladem decentralizovaného identifikátoru. Můžete si vytvořit tolik účtů, kolik chcete, bez povolení od kohokoliv a bez nutnosti jejich uložení do centrálního rejstříku. + +Decentralizované identifikátory jsou uloženy v distribuovaných účetních knihách (blockchainech) nebo v sítích typu peer-to-peer. Díky tomu jsou DID [globálně jedinečné, řešitelné s vysokou dostupností a kryptograficky ověřitelné](https://w3c-ccg.github.io/did-primer/). Decentralizovaný identifikátor může být spojen s různými entitami, včetně lidí, organizací nebo vládních institucí. + +## Co umožňuje decentralizované identifikátory? {#what-makes-decentralized-identifiers-possible} + +### 1. Infrastruktura veřejných klíčů (PKI) {#public-key-infrastructure} + +Infrastruktura veřejných klíčů (PKI) je opatřením v oblasti informační bezpečnosti, které pro entitu vytváří [veřejný klíč](/glossary/#public-key) a [privátní klíč](/glossary/#private-key). Kryptografie veřejných klídů se využívá v sítích blockchainu k ověření totožnosti uživatelů a k prokázání vlastnictví digitálních majetků. + +Některé decentralizované identifikátory, například účet Ethereum, mají veřejné a privátní klíče. Veřejný klíč identifikuje správce účtu, zatímco privátní klíče mohou podepisovat a dešifrovat zprávy pro tento účet. PKI poskytuje důkazy potřebné k ověření totožnosti entit a k zabránění vydávání se za jinou osobu a používání falešných identit pomocí [kryptografických podpisů](https://andersbrownworth.com/blockchain/public-private-keys/) k ověření všech nároků. + +### 2. Decentralizovaná datová úložiště {#decentralized-datastores} + +Blockchain slouží jako ověřitelný rejstřík dat: otevřený a decentralizovaný repozitář informací. Existence veřejných blockchainů odstraňuje potřebu ukládat identifikátory do centralizovaných rejstříků. + +Pokud někdo potřebuje potvrdit platnost decentralizovaného identifikátoru, může najít přidružený veřejný klíč na blockchainu. Toto je odlišné od tradičních identifikátorů, které vyžadují ověření od třetích stran. + +## Jak decentralizované identifikátory a atestace umožňují decentralizovanou identitu? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} + +Decentralizovaná identita je přesvědčení, že informace týkající se identity by měly být samostatně kontrolovány, soukromé a přenosné, přičemž základem toho všeho jsou decentralizované identifikátory a atestace. + +V kontextu decentralizované identity jsou atestace (známé také jako [ověřitelné přihlašovací údaje](https://www.w3.org/TR/vc-data-model/)) odolné proti manipulaci a jsou to kryptograficky ověřitelné nároky vznešené vydavatelem. Každá atestace nebo ověřitelný přihlašovací údaj, který entita (např.: organizace) uplatní je spojen s jejich decentralizovanými identifikátory (DID). + +Protože jsou DID uloženy na blockchainu, každý může ověřit platnost atestace pomocí porovnávání DID vydavatele na Ethereu. Ethereový blockchain se v podstatě chová jako globální adresář, který umožňuje ověření DID spojených s určitými entitami. + +Decentralizované identifikátory jsou důvodem, proč jsou atestace samostatně kontrolované a ověřitelné. I když vydavatel již neexistuje, držitel má vždy důkaz o původu a platnosti atestace. + +Decentralizované identifikátory jsou také klíčové pro ochranu soukromí osobních údajů prostřednictvím decentralizované identity. Například, pokud daný jednotlivec předloží doklad o atestaci (např.: řidičský průkaz), ověřující strana nemusí ověřovat platnost informací v dokladu. Ověřovatel místo toho potřebuje pouze kryptografické záruky autenticity atestace a identity vydávající organizace, aby určil, zda je doklad platný. + +## Typy atestací v decentralizované identitě {#types-of-attestations-in-decentralized-identity} + +Jak se informace atestací ukládají a získávají v ekosystému založeném na Ethereu se liší od tradiční správy identity. Zde je přehled různých přístupů k vydávání, ukládání a ověřování atestací v decentralizovaných systémech identity: + +### Atestace mimo blockchain {#off-chain-attestations} + +Jednou z obav o uchovávání atestací na blockchainu je to, že by mohly obsahovat informace, které si jednotlivci přejí zachovat v tajnosti. Veřejná povaha blockchainu Ethereum činí ukládání takových osvědčení neatraktivním. + +Řešením je vydávat atestace držené uživateli mimo blockchain v digitálních peněženkách, ale podepsané s DID vydavatele uloženým na blockchainu. Tyto atestace jsou zakódovány jako [JSON Web Tokeny](https://en.wikipedia.org/wiki/JSON_Web_Token) a obsahují digitální podpis vydavatele, který umožňuje snadné ověření nároků mimo blockchain. + +Zde je hypotetická situace pro vysvětlení atestací mimo blockchain: + +1. Univerzita (vydavatel) vytváří atestaci (digitální akademický certifikát), podepisuje ji pomocí jejích klíčů a vydává ji Bobovi (majiteli identity). + +2. Bob žádá o práci a chce prokázat své akademické kvalifikace zaměstnavateli, takže sdílí atestaci ze své mobilní peněženky. Společnost (ověřovatel) pak může potvrdit platnost atestace kontrolou DID vydavatele (tj. jeho veřejného klíče v Ethereu). + +### Atestace mimo blockchain s trvalým přístupem {#offchain-attestations-with-persistent-access} + +V rámci tohoto uspořádání jsou atestace přeměněny na soubory JSON a uloženy mimo blockchain (ideálně na platformě [decentralizovaného cloudového úložiště](/developers/docs/storage/), jako je IPFS nebo Swarm). Nicméně [hash](/glossary/#hash) souboru JSON je uložen na blockchainu a propojen s DID prostřednictvím blockchainového rejstříku. Související DID může být buď vydavatele atestace, nebo příjemce. + +Tento přístup umožňuje atestacím získat trvalost založenou na blockchainu a současně uchovávat informace o nárocích šifrované a ověřitelné. Umožňuje rovněž selektivní zveřejnění, jelikož držitel privátního klíče může informace dešifrovat. + +### Atestace na blockchainu {#onchain-attestations} + +Atestace na blockchainu jsou uchovávány v [chytrých kontaktech](/developers/docs/smart-contracts/) na blockchainu Ethereum. Chytrý kontrakt (sloužící jako rejstřík) spojí atestaci k odpovídajícímu blockchainovému decentralizovanému identifikátoru (veřejnému klíči). + +Zde je příklad toho, jak by mohla fungovat blockchainová atestace v praxi: + +1. Společnost (XYZ s. r. o.) plánuje prodat vlastnické akcie pomocí chytrého kontraktu, ale chce pouze kupce, kteří dokončili prověření minulosti. + +2. XYZ s. r. o. může nechat společnost, která prověřuje minulost, vydávat atestace na blockchainu Ethereum. Tato atestace potvrzuje, že jednotlivec prošel prověřením minulosti, aniž by odhalil jakékoli osobní údaje. + +3. Chytrý kontrakt o prodeji akcií může zkontrolovat registrační kontrakt k nalezení identity zkontrolovaných kupců, což chytrému kontraktu umožňuje určit, kdo smí akcie koupit a kdo ne. + +### Soulbound tokeny a identity {#soulbound} + +[Soulbound tokeny](https://vitalik.ca/general/2022/01/26/soulbound.html) (nepřenosné NFT) by mohly být použity ke shromažďování informací jedinečných pro konkrétní peněženku. To efektivně vytváří jedinečnou blockchainovou identitu vázanou na konkrétní Ethereum adresu, která by mohla zahrnovat tokeny reprezentující úspěchy (např.: dokončení daného online kurzu nebo dosažení nového skóre ve hře) nebo komunitní účasti. + +## Výhody decentralizované identity {#benefits-of-decentralized-identity} + +1. Decentralizovaná identita zvyšuje individuální kontrolu nad identifikačními údaji. Decentralizované identifikátory a atestace lze ověřit bez spoléhání se na centralizované autority a služby třetích stran. + +2. Decentralizovaná řešení identity umožňují spolehlivou, bezproblémovou a soukromou metodu, jak ověřovat a spravovat identitu uživatele. + +3. Decentralizovaná identita využívá blockchainovou technologii, která vytváří důvěru mezi různými stranami a poskytuje kryptografické záruky k prokázání platnosti atestací. + +4. Decentralizovaná identita umožňuje přenosnost identit. Uživatelé ukládají atestace a identifikátory v mobilní peněžence a mohou je sdílet s jakoukoliv stranou dle svého výběru. Decentralizované identifikátory a atestace nejsou uzamčeny v databázi vydávající organizace. + +5. Decentralizovaná identita by měla dobře fungovat s rozvíjejícími se technologiemi s nulovými znalostmi, které jednotlivcům umožní dokázat, že něco vlastní nebo udělali, aniž by odhalili, o co jde. Toto by se mohlo stát účinným způsobem, jak kombinovat důvěru a soukromí využití decentralizované identity, jako je hlasování. + +6. Decentralizovaná identita umožňuje mechanismům proti Sybil útokům identifikovat, kdy se jeden jednotlivec vydává za více lidí, aby si na nějakém systému zahrál nebo ho zaspamoval. + +## Příklady využití decentralizované identity {#decentralized-identity-use-cases} + +Decentralizovaná identita má mnoho možných využití: + +### 1. Univerzální přihlášení {#universal-dapp-logins} + +Decentralizovaná identita může pomoci nahradit přihlašovací údaje na základě hesel[decentralizovanou autentizací](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). Poskytovatelé služeb mohou vydávat atestace uživatelům, které mohou být uloženy v Ethereum peněžence. Příkladem atestace by byl [NFT](/nft/) umožňující držiteli přístup k online komunitě. + +Funkce [Přihlášení s Ethereem](https://login.xyz/) by pak umožnila serverům potvrdit uživatelův Ethereum účet a načíst požadovanou atestaci z jejich adresy účtu. To znamená, že uživatelé mohou přistupovat k platformám a webům, aniž by si museli zapamatovat dlouhá hesla, a tím zlepšili jejich online zážitek. + +### 2. Autentizace KYC {#kyc-authentication} + +Používání mnoha on-line služeb vyžaduje, aby jednotlivci poskytovali atestace a ověření, jako je řidičský průkaz nebo národní cestovní pas. Tento přístup je však problematický, protože soukromé informace uživatelů mohou být ohroženy a poskytovatelé služeb nemohou ověřit autenticitu atestace. + +Decentralizovaná identita umožňuje společnostem vyhnout se konvenčním [Know-Your-Customer (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) procesům a ověřovat identitu uživatelů pomocí ověřitelných údajů. To snižuje náklady na správu identit a zabraňuje používání falešné dokumentace. + +### 3. Hlasování a online komunity {#voting-and-online-communities} + +Online hlasování a sociální média jsou dvě nová využití pro decentralizovanou identitu. Online hlasovací systémy jsou náchylné k manipulaci, zejména pokud škodliví aktéři vytvářejí k hlasování falešnou identitu. Žádat jednotlivce, aby předložili online atestace, může zlepšit integritu procesů hlasování on-line. + +Decentralizovaná identita může pomoci vytvořit online komunity, které jsou bez falešných účtů. Každý uživatel například bude muset ověřit svou identitu pomocí blockchainového systému identity jako je Ethereum Name Service, což snižuje možnost výskytu botů. + +### 4. Ochrana proti Sybil útokům {#sybil-protection} + +Sybil útoky jsou útoky, kde se jednotlivci snaží přelstít systém, aby si myslel, že jsou více lidmi, aby zvyšili svůj vliv. [Aplikace pro udělování grantů](https://gitcoin.co/grants/), které využívají [kvadratické hlasování](https://www.radicalxchange.org/concepts/plural-voting/), jsou zranitelné vůči těmto Sybil útokům, protože hodnota grantu se zvýší, když pro něj hlasuje více jednotlivců, což podněcuje uživatele k tomu, aby své příspěvky rozdělili na více identit. Decentralizované identity tomu pomáhají zabránit tím, že zvyšují břemeno každého účastníka, aby dokázali, že jsou skutečně lidé, i když často aniž by bylo nutné zveřejnit konkrétní soukromé informace. + +## Využití decentralizované identity {#use-decentralized-identity} + +Existuje mnoho ambiciózních projektů, které využívají Ethereum jako základ pro decentralizovaná řešení identity: + +- **[Ethereum Name Service (ENS)](https://ens.domains/)** – _Decentralizovaný systém pojmenování pro blockchainové, strojově čitelné identifikátory, jako jsou adresy peněženky Ethereum, hashe obsahů a metadata._ +- **[SpruceID](https://www.spruceid.com/)** – _Projekt decentralizované identity, který uživatelům umožňuje ovládat digitální identitu s Ethereum účty a profily ENS místo spoléhání se na služby třetích stran._ +- **[Ethereum Attestation Service (EAS)](https://attest.sh/)** – _Decentralizovaná účetní kniha/protokol pro vytváření jakýkoliv atestací na blockchainu nebo mimo něj._ +- **[Proof of Humanity](https://www.proofofhumanity.id)** – _Proof of Humanity (nebo PoH) je systém pro ověřování sociální identity postavený na Ethereu._ +- **[BrightID](https://www.brightid.org/)** – _Decentralizovaná síť sociální identity s veřejně dostupným zdrojovým kódem usilující o reformu ověřování identity vytvořením a analýzou sociálního grafu._ +- **[Proof-of-personhood Passport](https://proofofpersonhood.com/)** – _Decentralizovaný agregátor digitální identity._ + +## Další informace {#further-reading} + +### Články {#articles} + +- [Využití blockchainu: Blockchain a digitální identita](https://consensys.net/blockchain-use-cases/digital-identity/) – _ConsenSys_ +- [Co je Ethereum ERC725? Samostatně suverénní správa identity na Blockchainu](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Sam Town_ +- [Jak by blockchain mohl vyřešit problém digitální identity](https://time.com/6142810/proof-of-humanity/) — _Andrew R. Chow_ +- [Co je decentralizovaná identita a proč by vás měla zajímat?](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ + +### Videa {#videos} + +- [Decentralizovaná identita (Bonusové živé vysílání)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Skvělé video na vysvětlení decentralizované identity od Andrease Antonopolouse_ +- [Přihlaste se pomocí Etherea a decentralizované identity s Ceramic, IDX, React, a 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) – _YouTube tutorial na vytváření systému správy identity pro tvorbu, čtení a aktualizaci uživatelského profilu pomocí jejich Ethereum peněženky od Nadera Dabita_ +- [BrightID – Decentralizovaná identita na Ethereu](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _epizoda podcastu Bankless o BrightID, decentralizovaném řešení identity pro Ethereum_ +- [Internet mimo blockchain: Decentralizovaná identita & Ověřitelné údaje](https://www.youtube.com/watch?v=EZ_Bb6j87mg) – EthDenver 2022 prezentace Evina McMullena + +### Komunity {#communities} + +- [Aliance ERC-725 na GitHubu](https://github.com/erc725alliance) – _Stoupenci normy ERC725 pro správu identity na blockchainu Ethereum_ +- [SpruceID Discord server](https://discord.com/invite/Sf9tSFzrnt) – _Komunita pro nadšence a vývojáře pracující na přihlášení s Ethereem_ +- [Veramo Labs](https://discord.gg/sYBUXpACh4) – _Komunita vývojářů podílejících se na budování rámce pro ověřitelná data pro aplikace_ diff --git a/public/content/translations/cs/defi/index.md b/public/content/translations/cs/defi/index.md new file mode 100644 index 00000000000..a418fca6d69 --- /dev/null +++ b/public/content/translations/cs/defi/index.md @@ -0,0 +1,352 @@ +--- +title: Decentralizované finance (DeFi) +description: Přehled DeFi na platformě Ethereum +lang: cs +template: use-cases +emoji: ":money_with_wings:" +image: /use-cases/defi.png +alt: Logo Eth vyrobené z cihel lega. +sidebarDepth: 2 +summaryPoint1: Globální, otevřená alternativa ke stávající finanční soustavě. +summaryPoint2: Produkty, které vám umožňují půjčovat, šetřit, investovat, obchodovat a více. +summaryPoint3: Založeno na open-source technologiích, se kterými může programovat každý. +--- + +DeFi je otevřený a globální finanční systém vytvořený pro internetový věk – jako alternativa ke stávajícímu systému, který je neprůhledný, přísně kontrolovaný a držený pohromadě pomocí infrastruktury a procesů starých desítky let. Dává vám přehled a kontrolu nad vašimi penězi. Dává vám možnost obchodovat na globálních trzích a je alternativou k místní měně a bankovnictví. Produkty DeFi otevírají finanční služby pro každého s připojením k internetu a tyto produkty jsou většinou vlastněny a udržovány jeho uživateli. Aplikacemi DeFi již protekly desítky miliard dolarů v kryptoměně a toto množství vzrůstá každým dnem. + +## Co je to DeFi? {#what-is-defi} + +DeFi je kolektivní termín pro finanční produkty a služby, které jsou přístupné každému, kdo může používat Ethereum – každý, kdo má internetové připojení. S DeFi jsou trhy a burzy vždy otevřené a neexistují žádné centralizované orgány, které by mohly blokovat platby nebo odepřít vám k něčemu přístup. Služby, které byly dříve pomalé a ohroženy lidskou chybou, jsou nyní automatické a bezpečnější, protože jsou zpracovávány pomocí kódu, který může kdokoli kontrolovat. + +Kryptoekonomika je na vzestupu, můžete si v ní půjčovat, longovat/shortovat akcie, vydělávat na úrocích a mnoho dalšího. Kryptoměnami zabývající se Argentinci využili DeFi k tomu, aby unikli ochromující inflaci. Firmy začaly svým zaměstnancům zasílat jejich mzdy v reálném čase. Někteří lidé si dokonce vzali a splatili půjčky v hodnotě milionů dolarů, aniž by potřebovali jakoukoliv osobní identifikaci. + + + +## DeFi vs. tradiční finanční systém {#defi-vs-tradfi} + +Jedním z nejlepších způsobů, jak vidět potenciál DeFi je pochopit problémy, které dnes existují. + +- Někteří lidé nemají přístup ke zřízení bankovního účtu nebo k využívání finančních služeb. +- Nedostatečný přístup k finančním službám může zabránit tomu, aby byli lidé zaměstnatelní. +- Finanční služby vám mohou zablokovat výplatu. +- Skrytým poplatekem za finanční služby jsou vaše osobní údaje. +- Vlády a centralizované instituce mohou trhy podle vlastního uvážení uzavřít. +- Doba obchodování je často omezena na pracovní dobu konkrétního časového pásma. +- Převody peněz mohou trvat několik dní kvůli vnitřním lidským procesům. +- Finanční služby jsou zpoplatněny, protože zprostředkovatelské instituce potřebují svůj podíl. + +### Srovnání {#defi-comparison} + +| DeFi | Tradiční finanční systém | +| --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| Své peníze spravujete vy. | Vaše peníze jsou spravovány společnostmi. | +| Máte kontrolu nad tím, kam vaše peníze půjdou a jak budou utraceny. | Musíte věřit firmám, že s vašimi penězi nebudou špatně hospodařit, například půjčovat je rizikovým dlužníkům. | +| Převody finančních prostředků probíhají během několika minut. | Platby mohou kvůli manuálním procesům trvat několik dní. | +| Transakční činnost je pseudonymní. | Finanční činnost je úzce spojená s vaší identitou. | +| DeFi je otevřeno komukoliv. | O využívání finančních služeb musíte požádat. | +| Trhy jsou vždy otevřené. | Trhy se zavírají, protože zaměstnanci potřebují přestávky. | +| Je postaveno na transparentnosti – kdokoli se může podívat na data produktu a zkontrolovat, jak systém funguje. | Finanční instituce jsou uzavřeným účetnictvím: nemůžete je požádat o nahlédnutí do jejich úvěrové historie, záznamu o spravovaných aktivech apod. | + + + Objevte DeFi aplikace + + +## Začalo to Bitcoinem... {#bitcoin} + +Bitcoin byl v mnoha ohledech prvním využití DeFi. Bitcoin vám umožňuje skutečně vlastnit a spravovat hodnotu a odesílat ji kamkoli po celém světě. To dělá tak, že umožňuje velkému počtu lidí, kteří si navzájem nedůvěřují, dohodnout se na účetní knize bez potřeby důvěryhodného zprostředkovatele. Bitcoin je otevřen komukoliv a nikdo nemá pravomoc měnit jeho pravidla. Pravidla Bitcoinu, stejně jako jeho vzácnost a otevřenost, jsou do technologie zapsána. Není to jako v tradičních finančních systémech, kde vlády mohou tisknout peníze, které znehodnocují vaše úspory, a kde společnosti mohou odejít z trhu. + +Na tom Ethereum staví. Stejně jako u Bitcoinu se pravidla nemohou změnit a přístup má každý. Zároveň však umožňuje tyto digitální peníze programovat pomocí [chytrých kontraktů](/glossary#smart-contract), takže můžete jít nad rámec ukládání a odesílání hodnot. + + + +## Programovatelné peníze {#programmable-money} + +Zní to zvláštně... "Proč bych chtěl programovat své peníze"? Toto je však více než výchozí funkce tokenů na Ethereu. Každý může naprogramovat logiku do plateb. Takže můžete získat kontrolu a bezpečnost Bitcoinu v kombinaci se službami poskytovanými finančními institucemi. Díky tomu můžete s kryptoměnami dělat věci, které s Bitcoinem dělat nemůžete, jako je půjčování a vypůjčování, plánování plateb, investování do indexových fondů a další. + + +
Prozkoumejte naše návrhy pro DeFi aplikace a vyzkoušet je, pokud jste v Ethereu noví.
+ + Objevte DeFi aplikace + +
+ +## Co můžete udělat s DeFi? {#defi-use-cases} + +Existuje decentralizovaná alternativa k většině finančních služeb. Ethereum však také vytváří příležitosti pro vytváření finančních produktů, které jsou zcela nové. Toto je stále rostoucí seznam. + +- [Posílat peníze napříč zeměkoulí](#send-money) +- [Streamovat peníze napříč zeměkoulí](#stream-money) +- [Pracovat se stabilními měnami](#stablecoins) +- [Vypůjčit si finanční prostředky se zajištěním](#lending) +- [Půjčovat si bez zajištění](#flash-loans) +- [Začít šetřit s kryptem](#saving) +- [Obchodovat s tokeny](#swaps) +- [Rozšířit své portfolio](#investing) +- [Financovat své nápady](#crowdfunding) +- [Zakoupit pojištění](#insurance) +- [Spravovat své portfolio](#aggregators) + + + +### Rychle posílat peníze napříč zeměkoulí {#send-money} + +Protože je Ethereum blockchain, je navržen pro zasílání bezpečných a celosvětových transakcí. Stejně jako Bitcoin umožňuje Ethereum posílat peníze po celém světě stejně snadno jako poslat e-mail. Stačí zadat příjemcovo [ENS jméno](/nft/#nft-domains) (např. bob.eth) nebo adresu jeho účtu z vaší peněženky a vaše platba mu (obvykle) během několika minut přijde. Chcete-li posílat nebo přijímat platby, budete potřebovat [peněženku](/wallets/). + + + Zobrazit platební decentralizované aplikace + + +#### Streamovat peníze napříč celou zeměkoulí... {#stream-money} + +Můžete také streamovat peníze přes Ethereum. To vám umožní vyplatit někomu jejich plat za pouhou vteřinu a umožnit jim přístup k jejich penězům, kdykoli bude potřeba. Nebo si za vteřinu něco pronajmout, jako třeba úložnou skříňku nebo elektrický skútr. + +A pokud nechcete posílat nebo streamovat [ETH](/eth/) kvůli tomu, jak moc se může měnit jeho hodnota, existují na Ethereu alternativní měny: stablecoiny. + + + +### Pracovat se stabilními měnami {#stablecoins} + +Volatilita kryptoměn je problémem pro spoustu finančních produktů a obecných výdajů. Komunita DeFi tento problém vyřešila pomocí stablecoinů. Jejich hodnota zůstává vázaná na jiný majetek, obvykle populární měnu jako dolary. + +Mince jako Dai nebo USDC mají hodnotu, která zůstane v rozmezí několika centů od jednoho dolaru. Díky tomu jsou perfektní pro výdělky nebo maloobchod. Mnoho lidí v Latinské Americe využívalo stablecoiny jako způsob ochrany svých úspor v době velké nejistoty s měnami vydávanými vládou. + + + Více o stablecoinech + + + + +### Půjčky {#lending} + +Půjčování peněz od decentralizovaných poskytovatelů má dvě hlavní varianty. + +- Peer-to-peer, což znamená, že si dlužník půjčí přímo od konkrétního věřitele. +- Poolové půjčky, kde věřitelé poskytují finanční prostředky (likviditu) do poolu, ze kterého si poté dlužníci mohou půjčovat. + + + Zobrazit decentralizované aplikace na půjčky + + +Použití decentralizovaného věřitele má mnoho výhod... + +#### Půjčování s ochranou soukromí {#borrowing-privacy} + +Dnes se půjčování peněz točí kolem zúčastněných osob. Banky musí vědět, zda je pravděpodobné, že úvěr splatíte před jeho poskytnutím. + +Decentralizované půjčky fungují, aniž by se kterákoli ze stran musela identifikovat. Místo toho musí dlužník poskytnout zajištění, který věřitel automaticky obdrží, pokud dlužníkův úvěr nebude splacen. Někteří věřitelé dokonce přijímají NFT jako zajištění. NFT je listina na unikátní aktivum, jako třeba obraz. [Více o NFT](/nft/) + +To vám umožní půjčit si peníze bez úvěrových kontrol nebo předávání vašich citlivých informací. + +#### Přístup ke globálním finančním prostředkům {#access-global-funds} + +Když používáte decentralizovaného věřitele, máte přístup k finančním prostředkům z celého světa, nikoli pouze k finančním prostředkům v úschově vámi vybrané banky nebo instituce. Díky tomu jsou půjčky přístupnější a zlepšují se tak úrokové sazby. + +#### Daňové úlevy {#tax-efficiencies} + +Půjčka vám může umožnit přístup k potřebným prostředkům, aniž byste museli prodat svůj ETH (zdanitelnou událost). Místo toho můžete použít ETH jako zajištění pro půjčku stabilní kryptoměny (stablecoin). To vám zajistí potřebný cash-flow a umožní vám ponechat si své ETH. Stablecoiny jsou tokeny, které jsou mnohem vhodnější, když potřebujete hotovost, protože jejich hodnota nekolísá jako u ETH. [Více o stablecoinech](#stablecoins) + +#### Bleskové úvěry {#flash-loans} + +Bleskové úvěry jsou experimentálnější formou decentralizovaného půjčování, která vám umožní půjčit si bez zástavy nebo poskytnutí jakýchkoli osobních údajů. + +V současné době nejsou pro netechnické lidi široce přístupné, ale naznačují, co by mohlo být v budoucnu možné pro každého. + +Fungují na základě toho, že úvěry jsou čerpány a spláceny v rámci jedné transakce. Pokud úvěr nelze splatit, transakce se vrátí, jako by k ní nikdy nedošlo. + +Často využívané finanční prostředky jsou uloženy v likviditních poolech (velkých fondech využívaných k půjčkám). Pokud se v danou chvíli nevyužívají, vzniká příležitost, aby si někdo tyto prostředky vypůjčil, provedl s nimi obchod a splatil je v plné výši doslova ve stejnou dobu, kdy si je vypůjčil. + +To znamená, že do transakce šité na míru musí být zahrnuto mnoho logických prvků. Jednoduchým příkladem může být někdo, kdo si pomocí bleskového úvěru půjčí co nejvíce aktiva za jednu cenu, aby ho mohl prodat na jiné burze, kde je cena vyšší. + +V rámci jedné transakce se tedy stane následující: + +- Půjčíte si X kusů $asset za $1,00 z burzy A +- Prodáte X kusů $asset na burze B za $1,10 +- Splatíte půjčku burze A +- Ponecháte si zisk po odečtení transakčního poplatku + +Pokud zásoby burzy B náhle poklesly a uživatel nebyl schopen koupit dostatek prostředků na pokrytí původní půjčky, transakce by jednoduše selhala. + +Abyste mohli provést výše uvedený příklad v tradičním finančním systému, potřebovali byste obrovské množství peněz. Tyto strategie vydělávání peněz jsou přístupné pouze těm, kteří jsou již bohatí. Bleskové úvěry jsou příkladem budoucnosti, kdy mít peníze není nutně podmínkou pro jejich vydělávání. + +[Více o bleskových úvěrech](https://aave.com/flash-loans/) + + + +### Začít šetřit s kryptem {#saving} + +#### Půjčování {#lending} + +Půjčováním kryptoměn můžete vydělávat na úrocích a sledovat růst svých prostředků v reálném čase. Momentálně jsou úrokové sazby mnohem vyšší než ty, které pravděpodobně dostanete v místní bance (pokud máte to štěstí, že se k ní dostanete). Toto je příklad: + +- Půjčíte svých 100 Dai, [stablecoinů](/stablecoins/), produktu, jako je Aave. +- Obdržíte 100 Aave Dai (aDai), což je token, který reprezentuje vaše zapůjčené Dai. +- Váš aDai se bude zvyšovat na základě úrokových sazeb a v peněžence uvidíte rostoucí zůstatek. V závislosti na RPSN bude zůstatek ve vaší peněžence po několika dnech nebo dokonce hodinách činit například 100,1234! +- Kdykoli si můžete vybrat částku běžných Dai, která se rovná vašemu zůstatku aDai. + + + Zobrazit decentralizované aplikace na půjčování + + +#### Bezztrátové loterie {#no-loss-lotteries} + +Bezztrátové loterie, jako je třeba PoolTogether, představují nový zábavný a inovativní způsob, jak ušetřit peníze. + +- Za 100 tokenů Dai si koupíte 100 lístků. +- Obdržíte 100 plDai, které představují vašich 100 lístků. +- Pokud bude jeden z vašich lístků vytažen a označen za vítězný, zvýší se váš zůstatek na účtu plDai o částku výherního fondu. +- Pokud nevyhrajete, převádí se vašich 100 plDai do losování příštího týdne. +- Kdykoli si můžete vybrat částku běžných Dai, která se rovná vašemu zůstatku plDai. + +Výherní fond je tvořen všemi úroky z půjčování vkladů lístků jako v příkladu s půjčováním výše. + + + Vyzkoušejte PoolTogether + + + + +### Vyměňování tokenů {#swaps} + +Na Ethereu jsou tisíce tokenů. Decentralizované burzy (DEXy) umožňují obchodovat s různými tokeny kdykoliv chcete. Nikdy se nevzdáte kontroly nad svým majetkem. Je to podobné, jako když při návštěvě jiné země používáte směnárnu. Ale DeFi nikdy nezavírá. Trhy fungují 24 hodin denně, 365 dní v roce a technologie zaručuje, že se vždy najde někdo, kdo obchod přijme. + +Chcete-li se například zúčastnit bezztrátové loterie PoolTogether (popsané výše), budete potřebovat token Dai nebo USDC. Tyto DEXy vám umožní vyměnit ETH za tyto tokeny a zase zpět, až budete hotovi. + + + Zobrazit burzy tokenů + + + + +### Pokročilé obchodování {#trading} + +Pro obchodníky, kteří mají rádi větší kontrolu, jsou k dispozici pokročilejší možnosti. Možné jsou limitní příkazy, trvalé příkazy, obchodování s marží a další. S decentralizovaným obchodováním získáte přístup ke globální likviditě, trh se nikdy neuzavře a vy máte svá aktiva vždy pod kontrolou. + +Když používáte centralizovanou burzu, musíte svá aktiva před obchodem uložit a důvěřovat jí, že se o ně postará. Zatímco jsou vaše aktiva uložena, jsou v ohrožení, protože centralizované burzy jsou atraktivním cílem pro hackery. + + + Zobrazit decentralizované aplikace na obchodování + + + + +### Rozšířit své portfolio {#investing} + +Na Ethereu existují produkty pro správu fondů, které se snaží rozšířit vaše portfolio na základě vámi zvolené strategie. Je to automatické, otevřené všem a nepotřebuje to lidského manažera, který by si bral podíl ze zisku. + +Dobrým příkladem je fond [DeFi Pulse Index (DPI)](https://defipulse.com/blog/defi-pulse-index/). Jedná se o fond, který se automaticky rebalancuje, aby vaše portfolio vždy zahrnovalo [nejlepší DeFi tokeny podle tržní kapitalizace](https://www.coingecko.com/en/defi). Nikdy se nemusíte starat o žádné podrobnosti a z fondu můžete vybírat, kdykoli se vám zachce. + + + Zobrazit investiční decentralizované aplikace + + + + +### Financovat své nápady {#crowdfunding} + +Ethereum je ideální platformou pro crowdfunding: + +- Potenciální sponzoři mohou pocházet odkudkoli – Ethereum a jeho tokeny jsou otevřené komukoli a kdekoli na světě. +- Je transparentní, takže sponzoři mohou prokázat, kolik peněz se podařilo vybrat. Později můžete dokonce sledovat, jak je s prostředky vynaloženo. +- Sponzoři mohou nastavit automatické vracení peněz, například pokud není dodržen určitý termín a minimální částka. + + + Zobrazit decentralizované aplikace na crowdfunding + + +#### Kvadratické financování {#quadratic-funding} + +Ethereum je open source software a velká část dosavadní práce byla financována komunitou. To vedlo k rozvoji nového zajímavého modelu získávání finančních prostředků: kvadratického financování. To má potenciál zlepšit způsob, jakým budeme v budoucnu financovat všechny druhy veřejných statků. + +Kvadratické financování zajišťuje, že nejvíce finančních prostředků obdrží projekty s největší poptávkou. Jinými slovy, projekty, které zlepšují životy většiny lidí. Funguje to takhle: + +1. Z darovaných prostředků je vytvořen odpovídající pool. +2. Začne kolo veřejného financování. +3. Lidé mohou dát najevo svou poptávku po projektu tím, že mu věnují nějaké peníze. +4. Po skončení kola se odpovídající pool rozdělí mezi projekty. Ti, kteří mají nejvíce jedinečných poptávek, získají nejvyšší částku z odpovídajícího poolu. + +To znamená, že projekt A se 100 dary ve výši 1 dolaru může nakonec získat více finančních prostředků než projekt B s jediným darem ve výši 10 000 dolarů (v závislosti na velikosti odpovídajícího poolu). + +[Více o kvadratickém financování](https://wtfisqf.com) + + + +### Pojištění {#insurance} + +Cílem decentralizovaného pojištění je zlevnit pojištění, urychlit výplatu pojistného plnění a zvýšit jeho transparentnost. Díky větší automatizaci je pojištění cenově dostupnější a výplaty pojistného plnění jsou mnohem rychlejší. Údaje použité k rozhodnutí o vaší události jsou zcela transparentní. + +Ethereum produkty, stejně jako ostatní software, mohou trpět chybami a zneužíváním. Mnoho pojišťovacích produktů v této oblasti se nyní zaměřuje na ochranu uživatelů před ztrátou finančních prostředků. Existují ale i projekty, které začínají vytvářet krytí pro všechno, co nám život může přinést. Dobrým příkladem je projekt společnosti Etherisc Crop, jehož cílem je [ochránit drobné zemědělce v Keni před suchem a povodněmi](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Decentralizované pojištění může poskytnout levnější krytí zemědělcům, kteří jsou často z tradičního pojištění vyřazeni. + + + Zobrazit decentralizované aplikace na pojištění + + + + +### Agregátoři a správci portfolia {#aggregators} + +Vzhledem k tomuto všemu potřebujete mít přehled o všech svých investicích, půjčkách a obchodech. Existuje celá řada produktů, které umožňují koordinovat všechny aktivity DeFi z jednoho místa. V tom spočívá krása otevřené architektury DeFi. Týmy mohou vytvořit rozhraní, ve kterých můžete nejen vidět své zůstatky napříč produkty, ale také používat jejich funkce. Mohlo by se vám to hodit, až budete prozkoumávat další části DeFi. + + + Zobrazit decentralizované aplikace na portfolia + + + + +## Jak funguje DeFi? {#how-defi-works} + +DeFi využívá kryptoměny a chytré kontrakty k poskytování služeb, které nepotřebují prostředníky. V dnešním finančním světě vystupují finanční instituce jako ručitelé transakcí. To dává těmto institucím obrovskou moc, protože přes ně proudí vaše peníze. Navíc miliardy lidí na celém světě nemají ani přístup k bankovnímu účtu. + +V systému DeFi nahrazuje chytrý kontrakt finanční instituci v transakci. Chytrý kontrakt je typ Ethereum účtu, který může uchovávat finanční prostředky a na základě určitých podmínek je odesílat/vracet. Když je chytrý kontrakt v provozu, nikdo ho nemůže pozměnit – vždy bude fungovat tak, jak byl naprogramován. + +Kontrakt, který je určen k vyplácení kapesného, může být naprogramován tak, aby každý pátek posílal peníze z účtu A na účet B. A to vždy jen do té doby, dokud má účet A požadované prostředky. Nikdo nemůže kontrakt změnit a přidat účet C jako příjemce a ukrást tak finanční prostředky. + +Kontrakty jsou rovněž veřejné a každý si je může prohlédnout a zkontrolovat. To znamená, že špatné kontrakty se často rychle dostanou pod drobnohled komunity. + +To znamená, že v současné době je třeba důvěřovat techničtějším členům komunity Etherea, kteří umí číst kód. Open-source komunita pomáhá udržet vývojáře pod kontrolou, ale tato potřeba se bude časem snižovat s tím, jak budou chytré kontrakty snáze čitelné a budou se vyvíjet další způsoby, jak prokázat důvěryhodnost kódu. + +## Ethereum a DeFi {#ethereum-and-defi} + +Ethereum je ideálním základem pro DeFi z několika důvodů: + +- Ethereum ani chytré kontrakty, které na něm fungují, nikdo nevlastní – to dává každému příležitost používat DeFi. To také znamená, že nikdo nemůže měnit pravidla. +- Všechny produkty DeFi hovoří v zákulisí stejným jazykem: Ethereem. To znamená, že mnoho produktů spolu bez problémů spolupracuje. Tokeny můžete půjčovat na jedné platformě a zúročené tokeny směňovat na jiném trhu v úplně jiné aplikaci. Je to podobné, jako když si v bance můžete nechat vyplatit věrnostní body. +- Tokeny a kryptoměny jsou zabudovány do sdílené účetní knihy Ethereum – sledování transakcí a vlastnictví je tak trochu význam Etherea. +- Ethereum umožňuje naprostou finanční svobodu – většina produktů nikdy nepřevezme vaše prostředky do úschovy, což vám ponechá nad vašimi prostředky kontrolu. + +O DeFi můžete přemýšlet ve vrstvách: + +1. Blockchain – Ethereum obsahuje historii transakcí a stavy účtů. +2. Aktiva – [ETH](/eth/) a ostatní tokeny (měny). +3. Protokoly 2 [chytré kontrakty](/glossary/#smart-contract), které poskytují například službu umožňující decentralizované půjčování aktiv. +4. [Aplikace](/dapps/) – produkty, které používáme ke správě a přístupu k protokolům. + +## Budujte DeFi {#build-defi} + +DeFi je open-source hnutí. Všechny protokoly a aplikace DeFi jsou otevřené, abyste je mohli kontrolovat, rozšiřovat a inovovat. Díky tomuto vrstvenému zásobníku (všechny sdílejí stejný základní blockchain a aktiva) lze protokoly kombinovat a odemykat tak jedinečné možnosti kombinací. + + + Více o budování decentralizovaných aplikací + + +## Další informace {#futher-reading} + +### DeFi data {#defi-data} + +- [DeFi Prime](https://defiprime.com/) +- [DeFi Llama](https://defillama.com/) +- [DeFi Rate](https://defirate.com/) + +### DeFi články {#defi-articles} + +- [Průvodce DeFi pro začátečníky](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, 6. ledna 2020_ + +### Videa {#videos} + +- [Finematics – decentralizované finanční vzdělávání](https://finematics.com/) – _Videa o DeFi_ +- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) – _Základy DeFi: Vše, co potřebujete vědět, abyste mohli začít v tomto občas matoucím prostoru._ +- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _Co je to DeFi?_ + +### Komunity {#communities} + +- [Server DeFi Llama na Discordu](https://discord.gg/buPFYXzDDd) +- [Server DeFi Pulse na Discordu](https://discord.gg/Gx4TCTk) diff --git a/public/content/translations/cs/desci/index.md b/public/content/translations/cs/desci/index.md new file mode 100644 index 00000000000..9bb96b2968c --- /dev/null +++ b/public/content/translations/cs/desci/index.md @@ -0,0 +1,139 @@ +--- +title: '"Decentralizovaná věda"' +description: Přehled decentralizované vědy na Ethereu +lang: cs +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Globální, otevřená alternativa ke stávajícímu vědeckému systému. +summaryPoint2: Technologie, která vědcům umožňuje získávat financování, provádět experimenty, sdílet data, šířit poznatky a další. +summaryPoint3: Vychází z hnutí otevřené vědy. +--- + +## Co je decentralizovaná věda (DeSci)? {#what-is-desci} + +Decentralizovaná věda (DeSci) je směr, jehož cílem je vybudovat veřejnou infrastrukturu pro financování, vytváření, vyhodnocování, připisování, ukládání a šíření vědeckých poznatků poctivě a spravedlivě pomocí nástrojů Web3. + +Cílem DeSci je vytvořit ekosystém, v němž jsou vědci motivováni k otevřenému sdílení svého výzkumu a získávání uznání za svou práci a který zároveň umožňuje každému snadný přístup k výzkumu a přispívání do výzkumu. DeSci vychází z myšlenky, že vědecké poznatky by měly být přístupné všem a že proces vědeckého výzkumu by měl být transparentní. DeSci vytváří decentralizovanější a distribuovanější model vědeckého výzkumu, který je odolnější vůči cenzuře a kontrole ze strany centrálních autorit. DeSci věří, že decentralizací přístupu k financování, vědeckým nástrojům a komunikačním kanálům vytvoří prostředí, kde budou moci vzkvétat nové a nekonvenční myšlenky. + +Decentralizovaná věda umožňuje rozmanitější zdroje financování (od [DAO](/dao/) [přes kvadratické financování](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) až po crowdfunding a další), přístupnější data a metody a motivaci k reprodukovatelnosti. + +### Juan Benet – Hnutí DeSci + + + +## Jak DeSci zlepšuje vědu {#desci-improves-science} + +Neúplný seznam klíčových problémů ve vědě a způsobů, jakými může decentralizovaná věda přispět k jejich řešení + +| **Decentralizovaná věda** | **Tradiční věda** | +| ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | +| Rozdělení finančních prostředků je určováno veřejností za použití mechanismů, jako jsou kvadratické financování nebo DAO. | Malé, uzavřené, centralizované skupiny kontrolují rozdělování finančních prostředků. | +| V dynamických týmech spolupracujete s kolegy z celého světa. | Financující organizace a domovské instituce omezují vaši spolupráci. | +| Rozhodnutí o financování se konají online a transparentně. Zkoumají se nové mechanismy financování. | Rozhodnutí o financování se konají s dlouhým časovým odstupem a omezenou transparentností. Existuje jen málo mechanismů financování. | +| Sdílení laboratorních služeb je jednodušší a transparentnější pomocí nástrojů Web3. | Sdílení laboratorních zdrojů je často pomalé a netransparentní. | +| Lze vyvíjet nové modely pro publikování, které využívají základní prvky Web3 pro větší spolehlivost, transparentnost a univerzální přístup. | Publikujete prostřednictvím zavedených cest, které jsou často považovány za neefektivní, neobjektivní a vykořisťovatelské. | +| Můžete získat tokeny a reputaci za práci věnovanou vzájemnému hodnocení. | Vaše práce na vzájemném hodnocení je neplacená a přináší prospěch vydavatelům zaměřeným na zisk. | +| Duševní vlastnictví (intellectual property, IP), které vytváříte a distribuujete podle transparentních podmínek, patří vám. | Vaše domovská instituce vlastní IP, které vygenerujete. Přístup k IP není transparentní. | +| Veškerý výzkum, včetně dat z neúspěšných pokusů, se krok za krokem sdílí na blockchain. | Publikační zaujatost znamená, že výzkumníci s větší pravděpodobností budou sdílet jen experimenty, které byly úspěšné. | + +## Ethereum a DeSci {#ethereum-and-desci} + +Decentralizovaný vědecký systém vyžaduje robustní zabezpečení, minimální peněžní a transakční náklady a rozsáhlý ekosystém pro vývoj aplikací. Ethereum poskytuje vše potřebné pro vybudování decentralizovaného vědeckého ekosystému. + +## Příklady využití DeSci {#use-cases} + +DeSci buduje vědeckou sadu nástrojů pro integraci Web2 akademické obce do digitálního světa. Níže je ukázka použití, které Web3 může nabídnout vědecké komunitě. + +### Publikování {#publishing} + +Vědecké publikování je všeobecně problematické, neboť je řízeno nakladatelskými společnostmi, které spoléhají na neplacenou práci vědců, recenzentů a editorů při tvorbě článků, ale pak účtují přemrštěné poplatky za publikování. Veřejnost, která obvykle zaplatila za práci a náklady na publikaci nepřímo formou daní, často nemá bez další platby nakladateli k této práci přístup. Celkové poplatky za publikaci jednotlivých vědeckých článků často dosahují pěticiferných částek (v amerických dolarech, $USD), což podkopává celý koncept vědeckého poznání jako [veřejného statku](https://www.econlib.org/library/Enc/PublicGoods.html) a zároveň generuje obrovské zisky pro malou skupinu vydavatelů. + +Volně dostupné platformy existují ve formě předtiskových serverů, [jako je ArXiv](https://arxiv.org/). Nicméně tyto platformy postrádají kontrolu kvality, [mechanismy proti sybil útokům](https://csrc.nist.gov/glossary/term/sybil_attack) a obvykle nesledují metriky na úrovni článků, což znamená, že jsou obvykle používány pouze ke zveřejnění prací před odesláním k tradičnímu vydavateli. SciHub také umožňuje volný přístup k publikovaným článkům, avšak nelegálně, a to až poté, co vydavatelé již přijali platbu a práci opatřili přísnými autorskými právy. To zanechává kritickou mezeru pro dostupné vědecké práce a data s vloženým mechanismem legitimity a modelu motivace. Nástroje pro vytvoření takového systému existují ve světě Web3. + +### Reprodukovatelnost a replikovatelnost {#reproducibility-and-replicability} + +Reprodukovatelnost a replikovatelnost tvoří základy kvalitního vědeckého objevu. + +- Reprodukovatelných výsledků lze dosáhnout několikrát za sebou stejným týmem používajícím stejnou metodologii. +- Replikovatelných výsledků lze dosáhnout jinou skupinou, ale pomocí stejné metodologie. + +Nové nástroje založené na Web3 mohou zajistit, že reprodukovatelnost a replikovatelnost jsou základní vlastností vědeckých objevů. Kvalitní vědu dokážeme začlenit do technologické struktury akademické obce. Web3 nabízí možnost vytvářet ověření pro každý komponent analýzy: surová data, výpočetní pohon a výsledek aplikace. Krásou konsenzuálních systémů je, že když se vytvoří důvěryhodná síť pro udržování těchto komponent, každý účastník sítě může být zodpovědný za reprodukování výpočtu a ověření každého výsledku. + +### Financování {#funding} + +Současný standardní model financování vědy spočívá v tom, že jednotlivci nebo skupiny vědců podávají písemné žádosti na finanční agenturu. Malá skupina důvěryhodných jednotlivců hodnotí žádosti a následně provádí pohovory s uchazeči před udělením finančních prostředků malé části žadatelů. Kromě vytváření úzkých míst, která často vedou k letům čekání mezi podáním žádosti a obdržením grantu, je známo, že tento model je velmi zranitelný vůči předsudkům, vlastním zájmům a politice hodnotícího panelu. + +Studie ukázaly, že hodnotící panely pro udělování grantů nedokážou dobře vybírat kvalitní návrhy, protože stejné návrhy poskytnuté různým panelům mají zcela odlišné výsledky. Vzhledem k tomu, že financování je stále vzácnější, koncentrovalo se do menší skupiny zkušenějších výzkumníků s intelektuálně konzervativnějšími projekty. Tento efekt vytvořil hyperkonkurenční prostředí pro financování, posilující nepřirozené podněty a brzdící inovace. + +Web3 má potenciál narušit tento nefungující model financování tím, že experimentuje s různými modely podnětů vyvinutými DAO a Web3 obecně. [Retroaktivní financování veřejných statků](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), [kvadratické financování](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), [řízení DAO](https://www.antler.co/blog/daos-and-web3-governance) a [tokenizované struktury podnětů](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) jsou některé z nástrojů Web3, které by mohly zásadně změnit financování vědy. + +### Vlastnictví a vývoj IP {#ip-ownership} + +Duševní vlastnictví (IP) je v tradiční vědě velkým problémem: počínaje ponecháním na univerzitách přes nevyužití v biotechnologiích až po notoricky obtížné ocenění. Nicméně vlastnictví digitálních aktiv (jako jsou vědecká data nebo články) je něco, co Web3 umí výjimečně dobře pomocí [nezaměnitelných tokenů (NFT)](/nft/). + +Podobně jako NFT mohou posílat budoucí příjmy z transakcí zpět původnímu tvůrci, můžete vytvořit transparentní řetězce přiřazující ocenění, abyste odměňovali výzkumníky, řídící orgány (jako DAO) nebo dokonce subjekty, jejichž data jsou shromažďována. + +[IP-NFT](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) mohou také fungovat jako klíč k decentralizovanému datovému úložišti prováděných výzkumných experimentů a spojení do finančního systému NFT a [DeFi](/defi/) (od frakcionace po úvěrové fondy a ocenění). Také nativně umožňují entitám na blockchainu, jako jsou DAO, například [VitaDAO](https://www.vitadao.com/), provádět výzkum přímo na blockchainu. Příchod nezaměnitelných [„soulbound“ tokenů](https://vitalik.ca/general/2022/01/26/soulbound.html) může také sehrát důležitou roli v oblasti DeSci tím, že jednotlivcům umožní prokázat své zkušenosti a kvalifikace spojené s jejich adresou na Ethereu. + +### Ukládání dat, přístup a architektura {#data-storage} + +Vědecká data mohou být mnohem dostupnější pomocí Web3 schémat a distribuované úložiště umožňuje výzkumu přežít kataklyzmatické události. + +Výchozím bodem musí být systém dostupný pro jakoukoli decentralizovanou identitu s náležitými ověřitelnými pověřeními. To umožňuje bezpečnou replikaci citlivých dat důvěryhodnými stranami, díky čemuž je možná redundance a odolnost proti cenzuře, reprodukce výsledků a dokonce možnost spolupráce více stran a přidávání nových dat do datové sady. Důvěrné výpočetní metody, jako je [compute-to-data](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol), poskytují alternativní způsoby přístupu k replikaci surových dat a vytvářejí důvěryhodná výzkumná prostředí pro nejcitlivější data. Důvěryhodná výzkumná prostředí byla [citována NHS](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) jako řešení směřující k budoucnosti v oblasti ochrany dat a spolupráce. Vytvářejí ekosystém, kde výzkumníci mohou bezpečně pracovat s daty pomocí standardizovaných prostředí pro sdílení kódu a postupů. + +Flexibilní řešení úschovy a sdílení dat ve Web3 podporují výše zmíněné scénáře a poskytují základ pro skutečně Otevřenou vědu, kde výzkumníci mohou vytvářet veřejně prospěšné statky bez nutnosti povolení nebo poplatků. Veřejná datová řešení ve Web3, jako jsou IPFS, Arweave a Filecoin, jsou optimalizována pro decentralizaci. Například dClimate poskytuje univerzální přístup k datům o klimatu a počasí, včetně dat z meteorologických stanic a prediktivních klimatických modelů. + +## Zapojit se {#get-involved} + +Podívejte se na níže uvedené projekty a zapojte se do DeSci komunity. + +- [DeSci.Global: Globální kalendář událostí a setkání](https://desci.global) +- [Telegramová skupina Blockchain for Science](https://t.me/BlockchainForScience) +- [Molecule: Financujte a získejte financování pro vaše výzkumné projekty](https://discover.molecule.to/) +- [VitaDAO: Získávejte financování prostřednictvím sponzorovaných smluv o výzkumu pro výzkum dlouhověkosti](https://www.vitadao.com/) +- [ResearchHub: Publikujte vědecké výsledky a zapojte se do konverzace s kolegy](https://www.researchhub.com/) +- [LabDAO: Skládejte bílkoviny in-silico](https://alphafodl.vercel.app/) +- [dClimate API: Poptávejte klimatická data shromážděná decentralizovanou komunitou](https://api.dclimate.net/) +- [DeSci Foundation: Publikační nástroj v rámci DeSci](https://descifoundation.org/) +- [DeSci.World: Jednotné kontaktní místo, kde se uživatelé mohou podívat a zapojovat do DeSci](https://desci.world) +- [Fleming Protocol: Open-source datová ekonomika, která podporuje spolupracující biomedicinské objevy](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [OceanDAO: Financování řízené DAO pro vědu zabývající se daty](https://oceanprotocol.com/dao) +- [Opscientia: Otevřené decentralizované vědecké pracovní postupy](https://opsci.io/research/) +- [LabDAO: Skládejte bílkoviny in-silico](https://alphafodl.vercel.app/) +- [Bio.xyz: Získejte financování pro svůj biotechnologický DAO nebo DeSci projekt](https://www.molecule.to/) +- [ResearchHub: Publikujte vědecké výsledky a zapojte se do konverzace s kolegy](https://www.researchhub.com/) +- [VitaDAO: Získávejte financování prostřednictvím sponzorovaných smluv o výzkumu pro výzkum dlouhověkosti](https://www.vitadao.com/) +- [Fleming Protocol: Open-source datová ekonomika, která podporuje spolupracující biomedicinské objevy](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [Active Inference Lab](https://www.activeinference.org/) +- [CureDAO: Platforma vlastněná komunitou pro precizní zdravotní péči](https://docs.curedao.org/) +- [IdeaMarkets: Získávání decentralizované vědecké kredibility](https://ideamarket.io/) +- [DeSci Labs](https://www.desci.com/) + +Uvítáme návrhy na nové projekty, které je třeba uvést na seznam – pro začátek si přečtěte naše [zásady pro zařazení do seznamu](/contributing/adding-desci-projects/)! + +## Další četba {#further-reading} + +- [DeSci Wiki od Jocelynn Pearl a Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) +- [Průvodce decentralizovanou biotechnologií od Jocelynn Pearl pro budoucnost a16z](https://future.a16z.com/a-guide-to-decentralized-biotech/) +- [Případ pro DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) +- [Průvodce DeSci](https://future.com/what-is-decentralized-science-aka-desci/) +- [Decentralizované vědecké zdroje](https://www.vincentweisser.com/decentralized-science) +- [Molecule's Biopharma IP-NFTs – technický popis](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) +- [Budování důvěryhodných systémů vědy od Jona Starra](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) +- [Vznik biotechnologických DAO](https://molecule.to/blog/the-emergence-of-biotech-daos) +- [Paul Kohlhaas – DeSci: Budoucnost decentralizované vědy (podcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) +- [Aktivní inferenční ontologie pro decentralizovanou vědu: Od situovaného vytváření smyslu k epistemickému společnému prostoru](https://zenodo.org/record/6320575) +- [DeSci: Budoucnost výzkumu od Samuela Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) +- [Financování vědy (Epilolog: DeSci a nové krypto základní prvky) od Nadie](https://nadia.xyz/science-funding) +- [Decentralizace narušuje vývoj léků](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) + +### Videa {#videos} + +- [Co je decentralizovaná věda?](https://www.youtube.com/watch?v=-DeMklVWNdA) +- [Rozhovor mezi Vitalikem Buterinem a vědcem Aubreyem de Greyem o průsečíku výzkumu dlouhověkosti a kryptoměn](https://www.youtube.com/watch?v=x9TSJK1widA) +- [Vědecké publikování je rozbité. Může ho opravit Web3?](https://www.youtube.com/watch?v=WkvzYgCvWj8) +- [Juan Benet – DeSci, nezávislé laboratoře & velké škálování Data Science](https://www.youtube.com/watch?v=zkXM9H90g_E) +- [Sebastian Brunemeier – Jak může DeSci transformovat biomedicínský výzkum & rizikový kapitál](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/cs/enterprise/index.md b/public/content/translations/cs/enterprise/index.md similarity index 100% rename from src/content/translations/cs/enterprise/index.md rename to public/content/translations/cs/enterprise/index.md diff --git a/public/content/translations/cs/nft/index.md b/public/content/translations/cs/nft/index.md new file mode 100644 index 00000000000..a0c72f5f86f --- /dev/null +++ b/public/content/translations/cs/nft/index.md @@ -0,0 +1,94 @@ +--- +title: Nezaměnitelné tokeny (NFT) +description: Přehled NFT na Ethereu +lang: cs +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: Logo Eth zobrazené prostřednictvím hologramu. +summaryPoint1: Způsob, jak reprezentovat cokoliv unikátního jako majetek založený na Ethereu. +summaryPoint2: NFT dávají tvůrcům obsahu větší moc než kdykoliv předtím. +summaryPoint3: Běží na chytrých kontraktech na blockchainu Ethereum. +--- + +## Co jsou NFTéčka? {#what-are-nfts} + +NFT jsou tokeny, které jsou individuálně jedinečné. Každé NFT má jiné vlastnosti (nezaměnitelné) a je prokazatelně vzácné. V tom se liší od tokenů, jako jsou ERC-20, kde je každý token v sadě identický a má stejné vlastnosti („zaměnitelné“). Obdobně jě vám jedno, kterou konkrétní dolarovou bankovku máte v peněžence, protože všechny jsou totožné a mají stejnou hodnotu. Ale _není_ vám jedno, které konkrétní NFT vlastníte, protože každé má individuální vlastnosti, které ho odlišují od ostatních („nezastupitelné“). + +Jedinečnost každého NFT umožňuje tokenizaci věcí, jako je umění, sběratelské předměty nebo dokonce nemovitosti, kde jedno konkrétní unikátní NFT představuje jednu konkrétní unikátní položku existující v reálném nebo digitálnm světě. Vlastnictví aktiva je zajištěno Ethereum blockchainem. Nikdo nemůže měnit záznam vlastnictví nebo zkopírovat a následně vložit toto NFT na blockchain. + + + +## Internet aktiv {#internet-of-assets} + +NFT a Ethereum řeší některé problémy, které dnes na internetu existují. S postupující digitalizací je třeba replikovat vlastnosti fyzických předmětů, jako je vzácnost, jedinečnost a důkaz vlastnictví způsobem, který není řízen centrální organizací. Díky NFT můžete například vlastnit hudební mp3, která není spojena s konkrétní hudební aplikací jedné společnosti, nebo můžete vlastnit přezdívku na sociálních sítích, kterou můžete prodat nebo vyměnit, ale nemůže vám být libovolně odebrána poskytovatelem platformy. + +Zde je porovnání NFT internetu a internetu, tak jak ho známe dnes... + +### Porovnání {#nft-comparison} + +| NFT internet | Dnešní internet | +| ---------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | +| Vy vlastníte svá aktiva! Jen vy je můžete prodat nebo směnit. | Půjčujete si aktiva od jiné organizace. | +| NFT jsou digitálně unikátní, žádná dvě NFT nejsou stejná. | Kopii aktiva často nelze odlišit od originálu. | +| Vlastnictví NFT je zapsáno na blockchainu, aby si jej mohl kdokoli ověřit. | Záznamy o vlastnictví digitálních položek jsou uloženy na serverech ovládaných firmami, kterým musíte ohledně jejich správy důvěřovat. | +| NFT jsou smart kontrakty na Ethereu. To znamená, že je lze snadno použít v jiných smart kontraktech a aplikacích na Ethereu! | Firmy, které centralizovaně spravují digitálními aktiva, mají obvykle vlastní infrastrukturu „zahrady za zdí“. | +| Tvůrci obsahu mohou prodávat svá díla kdekoliv a mají přístup na globální trh. | Tvůrci spoléhají na infrastrukturu a distribuci platforem, které využívají. Často je limitují podmínky používání a geografická omezení. | +| Tvůrci NFT si mohou ponechat vlastnická práva ke svému dílu a naprogramovat licenční poplatky přímo do NFT kontraktu. | Platformy, jako například služby streamování hudby, si nechávají většinu zisků z prodeje. | + +## Jak fungují NFT? {#how-nfts-work} + +Stejně jako jakýkoli jiný token na Ethereu, i NFT vznikají pomocí smart kontraktu. Smart kontrakt odpovídá jednomu z několika standardů NFT (nejčastěji se jedná o ERC-721 nebo ERC-1155), které definují, jaké funkce tento konkrétní kontrakt má. Tento kontrakt může vytvořit („vymintovat“) NFT a poslat ho konkrétnímu vlastníkovi. Vlastnictví je definováno v kontraktu pomocí mapování konkrétních NFT na konkrétní adresy. Každé NFT má svoje ID a obvykle i metadata, díky kterým je každý token jedinečný. + +Když někdo vytvoří nebo vymintuje NFT, ve skutečnosti spouští funkci ve smart kontraktu, která přiřadí konkrétní NFT k jeho adrese. Tyto informace jsou uloženy přímo v paměti kontraktu, který je součástí blockchainu. Tvůrce kontraktu může přidat další podmínky, například omezit celkový počet tokenů v oběhu nebo nastavit licenční poplatek, který se vyplatí tvůrci pokaždé, když je token převeden. + +## K čemu se NFT používají? {#nft-use-cases} + +NFT se používají pro spoustu věcí, mezi které patří: + +- důkaz, že jste se zúčastnili nějaké události +- certifikát o absolvování kurzu +- potvrzení vlastnictví položek do počítačových her +- digitální umění +- tokenizace aktiv v reálném světě +- prokázání vaší online identity +- nastavení přístupu k obsahu +- prodej vstupenek +- decentralizované názvy internetových domén +- kolaterál v DeFi + +Možná jste umělec, který chce zveřejnit svou práci pomocí NFT, aniž by ztratil kontrolu a přišel o své zisky kvůli prostředníkům. Můžete vytvořit nový kontrakt a zadat počet NFT, jejich vlastnosti a přidat odkaz na konkrétní umělecké dílo. Jako umělec můžete do smart kontraktu naprogramovat licenční poplatky, které by vám měly být vyplaceny (např. 5 % z prodejní ceny, což je vlastníkovi kontraktu vyplaceno pokaždé, když je NFT převedeno). Vždy také můžete prokázat, že jste vytvořili NFT, protože vlastníte peněženku, která kontrakt vytvořila. Vaši kupující mohou snadno prokázat, že vlastní autentické NFT z vaší sbírky, protože adresa jejich peněženky je spojena s tokenem ve vašem smart kontraktu. Mohou jej používat v celém ekosystému Etherea a jsou si jisti jeho pravostí. + +Nebo si představte vstupenku na sportovní událost. Stejně jako organizátor události si může vybrat, kolik vstupenek bude prodávat, může tvůrce NFT rozhodnout, kolik kopií existuje. Někdy se jedná o přesné kopie, jako je 5 000 všeobecných vstupenek. Někdy je vytvořených několik NFT, která jsou velmi podobná, ale každé mírně odlišné, jako například vstupenka s přiděleným sedadlem. Ty lze kupovat a prodávat peer-to-peer bez placení prodejcům vstupenek a kupující se vždy může ujistit o pravosti vstupenky pomocí kontroly adresy kontraktu. + +Na ethereum.org se NFT používají k ukázce toho, že lidé přispěli do našeho repozitáře na Githubu nebo se zúčastnili callů, a dokonce máme vlastní NFT s názvem domény. Pokud přispějete na ethereum.org, můžete získat POAP NFT. Některé krypto meetupy používají POAPy jako vstupenky. [Více o přispívání](/contributing/#poap). + +![ethereum.org POAP](./poap.png) + +Tato webová stránka má také alternativní název domény využívající NFT, **ethereum.eth**. Naše adresa `.org` je centrálně spravována poskytovatelem doménových jmen (DNS), zatímco ethereum`.eth` je registrována na síti Ethereum prostřednictvím Ethereum Name Service (ENS). A je vlastněná a ovládaná námi. [Podívejte se na náš ENS záznam.](https://app.ens.domains/name/ethereum.eth) + +[Více o ENS](https://app.ens.domains) + + + +### Zabezpečení NFT {#nft-security} + +Ethereum je zabezpečeno mechanismem proof-of-stake. Systém je navržen tak, aby ekonomicky bránil zlovolným akcím, takže Ethereum je chráněno proti neoprávněným zásahům. To je to, co umožňuje NFT fungovat. Jakmile bude blok obsahující vaši NFT transakci dokončen, stálo by útočníka miliony etheru to změnit. Každý, kdo používá Ethereum software, by byl okamžitě schopen odhalit nepoctivé a nedovolené zásahy týkající se NFT a záškodník by byl ekonomicky penalizován a vykázán. + +Bezpečnostní otázky týkající se NFT se nejčastěji týkají podvodů s phishingem, zranitelnosti smart kontraktů nebo uživatelské chyby (jako je neúmyslné odhalení soukromého klíče). Dobrá ochrana peněženky je tedy pro majitele NFT klíčovou. + + + Více o bezpečnosti + + +## Další informace {#further-reading} + +- [Průvodce NFT](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, leden 2020_ +- [EtherscanNFT tracker](https://etherscan.io/nft-top-contracts) +- [Standart tokenu ERC-721](/developers/docs/standards/tokens/erc-721/) +- [Standart tokenu ERC-1155](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/public/content/translations/cs/refi/index.md b/public/content/translations/cs/refi/index.md new file mode 100644 index 00000000000..d215ab97f43 --- /dev/null +++ b/public/content/translations/cs/refi/index.md @@ -0,0 +1,79 @@ +--- +title: Regenerativní finance (ReFi) +description: Přehled ReFi a aktuálních případů použití. +lang: cs +template: use-cases +emoji: ":recycle:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Alternativní ekonomický systém postavený na regenerativních principech +summaryPoint2: Snaha využít Ethereum k řešení koordinačních krizí na globální úrovni, jako je změna klimatu +summaryPoint3: Nástroj k významnému zvýšení škálování ekologických výhod, jako jsou ověřené emisní povolenky +--- + +## Co je to ReFi? {#what-is-refi} + +Pod pojmem **Regenerativní finance (ReFi)** rozumíme sadu nástrojů a nápadů na blockchainech, jejichž cílem je vytvářet ekonomiky, které jsou regenerativní, spíše než vykořisťovatelské nebo zaměřené na vytěžení surovin. Systémy zaměřené na vytěžení surovin časem spotřebují dostupné zdroje a zhroutí se; bez regenerativních mechanismů jim chybí odolnost. ReFi předpokládá, že vytváření monetární hodnoty je třeba oddělit od neudržitelného vytěžování zdrojů z naší planety a komunit. + +Namísto toho se ReFi snaží řešit environmentální, komunitní nebo sociální problémy vytvářením regenerativních cyklů. Tyto systémy vytvářejí hodnotu pro účastníky a současně jsou prospěšné pro ekosystémy a komunity. + +Jedním ze základů ReFi je koncept regenerativní ekonomiky, který vytvořil John Fullerton z [Capital Institute](https://capitalinstitute.org). Navrhl osm propojených principů, které jsou základem zdravého systému: + +![Osm vzájemně propojených principů](./refi-regenerative-economy-diagram.png) + +ReFi projekty realizují tyto principy pomocí [smart kontraktů](/developers/docs/smart-contracts/) a aplikací [decentralizovaných financí (DeFi)](/defi/), které motivují regenerativní chování, například obnovu degradovaných ekosystémů, a usnadňují širokou spolupráci v globálních otázkách, jako je změna klimatu a ztráta biodiverzity. + +ReFi se také částěčně překrývá s hnutím [decentralizované vědy (DeSci)](/desci/), které využívá platformu Ethereum k financování, vytváření, recenzování, oceňování, ukládání a šíření vědeckých znalostí. Nástroje DeSci by mohly být užitečné pro vývoj ověřitelných standardů a postupů pro implementaci a monitorování regenerativních aktivit, jako je výsadba stromů, odstraňování plastů z oceánu nebo obnova degradovaného ekosystému. + +## Tokenizace emisních povolenek {#tokenization-of-carbon-credits} + +**[Dobrovolný trh s emisními povolenkami (voluntary carbon market, VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** je mechanismus pro financování projektů, které mají ověřitelný pozitivní vliv na emise uhlíku, ať už jde o snižování probíhajících emisí nebo odstraňování skleníkových plynů již vypuštěných do atmosféry. Tyto projekty po ověření obdrží aktivum nazvané "uhlíkové kredity". Tyto kredity mohou prodávat jednotlivcům a organizacím, které chtějí podpořit opatření na ochranu klimatu. + +Kromě VCM existuje také několik vládou řízených trhů s emisními povolenkami (tzv. „povinné trhy“), které se snaží stanovit cenu uhlíku prostřednictvím zákonů nebo nařízení v určité jurisdikci (např. země nebo regionu), a tím řídí nabídku distribuovaných povolenek. Povinné trhy motivovují znečišťovatele v rámci své jurisdikce ke snižování emisí, ale nejsou schopné redukovat skleníkové plyny, které již byly emitovány. + +Navzdory svému vývoji v posledních desetiletích má VCM řadu nedostatků: + +1. Silně fragmentovaná likvidita +2. Netransparentní mechanismy transakcí +3. Vysoké poplatky +4. Příliš malá rychlost obchodování +5. Nedostatek škálovatelnosti + +Přechod VCM na nový **digitální trh s uhlíkovými kredity (digital carbon market, DCM)** založený na blockchainové technologii by mohl být příležitostí pro modernizaci stávající technologie pro ověřování, převod a spotřebu emisních povolenek. Blockchainové technologie umožňují veřejně ověřitelná data, přístup pro širokou škálu uživatelů a vyšší likviditu. + +Projekty ReFi využívají technologii blockchainu k řešení množství problémů tradičního trhu: + +- **Likvidita je soustředěna v malém počtu likvidních poolů**, které může kdokoliv volně obchodovat. Velké organizace, stejně jako jednotliví uživatelé, mohou tyto pooly využívat bez manuálního vyhledávání prodejců/kupců, bez účastnických poplatků nebo registrace. +- **Všechny transakce se zaznamenávají na veřejné blockchainy**. Od okamžiku, kdy je kredit k dispozici v DCM, je cesta, kterou každá emisní povolenka absolvuje v důsledku obchodní aktivity, navždy sledovatelná. +- **Transakce jsou zpracovány téměř okamžitě**. Obstarání velkého množství emisních povolenek prostřednictvím tradičních trhů může trvat dny nebo týdny, ale na DCM toho lze dosáhnout během několika sekund. +- **Obchodování probíhá bez zprostředkovatelů**, kteří si účtují vysoké poplatky. Podle dat jisté analytické společnosti představují digitální emisní povolenky [62% zlepšení nákladů ve srovnání se srovnatelnými tradičními povolenkami](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne). +- **DCM je škálovatelný** a může uspokojit potřeby jednotlivců i nadnárodních společností. + +### Klíčové složky DCM {#key-components-dcm} + +Současný ekosystém DCM se skládá ze čtyř hlavních složek: + +1. Registry, jako je například [Verra](https://verra.org/project/vcs-program/registry-system/) a [Gold Standard](https://www.goldstandard.org/), zajišťují, že projekty vytvářející emisní povolenky jsou spolehlivé. Také provozují databáze, ve kterých digitální emisní povolenky vznikají a mohou být převáděny nebo spotřebovány (zrušeny). + +Nová vlna inovativních projektů budovaných na blockchainech se snaží konkurovat tradičním hráčům v tomto odvětví. + +2. Emisní bridge, a.k.a. tokenizery poskytují technologii pro reprezentaci nebo přenos emisních povolenek z tradičních registrů do DCM. Mezi zajímavé příklady patří [Toucan Protocol](https://toucan.earth/), [C3](https://c3.app/) a [Moss.Earth](https://moss.earth/). +3. Integrované služby nabízejí koncovým uživatelům kredity za zamezení a/nebo odstranění uhlíkových emisí. Takto mohou získat reputaci v oblasti životního prostředí a sdílet se světem, že podporují kroky vedoucí ke zlepšení životního prostředí. + +Některé organizace, jako jsou [Klima Infinity](https://www.klimadao.finance/infinity) a [Senken](https://senken.io/), nabízejí širokou škálu projektů vyvinutých třetími stranami a vydávaných podle zavedených standardů, jako je Verra; jiné, jako je [Nori](https://nori.com/), nabízejí pouze konkrétní projekty vyvinuté v rámci jejich vlastního standardu emisních povolenek, které vydávají a pro které mají vyhrazen svůj vlastní trh. + +4. Základní infrastruktura, která usnadňuje zvýšení dopadu a účinnosti celého dodavatelského řetězce na trhu s emisními povolenkami. [KlimaDAO](http://klimadao.finance/) dodává likviditu jako veřejný statek (umožňuje komukoli nakupovat nebo prodávat emisní povolenky za transparentní cenu), pobízí ke zvýšení přístupnosti trhů s povolenkami a odměnám za jejich vyřazení. Také poskytuje uživatelsky přívětivé interoperabilní nástroje pro přístup k údajům o široké škále tokenizovaných emisních povolenek, o jejich získávání a vyřazení. + +## ReFi mimo trhy s emisními povolenkami {#refi-beyond} + +Ačkoliv je v současnosti kladen silný důraz na trhy s emisními povolenkami obecně a zejména na přechod z VCM na DCM, termín „ReFi“ není striktně omezen na tento problém. Další environmentální aktiva mimo emisní povolenky mohou být vyvinuta a tokenizována, což znamená, že další negativní externality mohou být také zahrnuty do základních vrstev budoucích ekonomických systémů. Navíc lze regenerativní aspekt tohoto ekonomického modelu aplikovat i na jiné oblasti, jako je financování veřejných statků prostřednictvím platforem pro kvadratické financování, například [Gitcoin](https://gitcoin.co/). Organizace postavené na myšlence otevřené účasti a spravedlivé distribuce zdrojů umožňují komukoliv směrovat peníze do open-source software projektů, stejně jako do projektů zaměřených na vzdělávání, životní prostředí a komunity. + +Přesunem směřování kapitálu z projektů vytěžujících zdroje k regenerativně zaměřeným akcím mohou projekty a společnosti, které poskytují sociální, environmentální nebo komunitní výhody – a které by nemusely získat financování v tradičním finančním sektoru – rychleji a snadněji získat základní kapitál a generovat pozitivní externality pro společnost. Přechod na tento model financování také otevírá dveře mnohem inkluzivnějším ekonomickým systémům, ve kterých se lidé všech demografických skupin mohou stát aktivními účastníky místo pouhých pasivních pozorovatelů. ReFi nabízí vizi Etherea jako mechanismu pro koordinaci akcí souvisejících s existenčními výzvami, kterým čelí naše druhy a veškerý život na naší planetě – jako základní vrstvu nového ekonomického paradigmatu, který umožňuje inkluzivnější a udržitelnou budoucnost na budoucí staletí. + +## Další zdroje informací o ReFi + +- [Základní přehled emisních měn a jejich místo v ekonomice](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) +- [The Ministry for the Future, román popisující roli měny kryté emisními povolenkami v boji proti změně klimatu](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) +- [Podrobná zpráva od Taskforce on Scaling Voluntary Carbon Markets](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) +- [Glossář o ReFi od Kevina Owockiho a Evana Miyazona na CoinMarketCap](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/public/content/translations/cs/smart-contracts/index.md b/public/content/translations/cs/smart-contracts/index.md new file mode 100644 index 00000000000..076a43d5f37 --- /dev/null +++ b/public/content/translations/cs/smart-contracts/index.md @@ -0,0 +1,84 @@ +--- +title: Chytré kontrakty +description: Netechnický úvod do chytrých kontraktů +lang: cs +--- + +# Úvod do chytrých kontraktů {#introduction-to-smart-contracts} + +Chytré kontrakty jsou základními stavebními kameny aplikační vrstvy Etherea. Jsou to počítačové programy uložené na blockchainu, které se řídí logikou „jestli tohle, tak tamto“ a je zaručeno, že se spouštějí podle pravidel definovaných svým kódem, který po vytvoření nelze změnit. + +Nick Szabo zavedl termín „chytrý kontrakt“. V roce 1994 napsal [úvod do tohoto konceptu](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html) a v roce 1996 napsal [výzkum činností, které by chytré kontrakty mohly dělat](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). + +Szabo si představoval digitální tržiště, kde automatické, kryptograficky bezpečné procesy umožňují provádění transakcí a obchodních funkcí bez důvěryhodných zprostředkovatelů. Chytré kontrakty na Ethereu tuto vizi uvedly do praxe. + +## Důvěra v konvenční kontrakty {#trust-and-contracts} + +Jedním z největších problémů tradičních kontraktů je, že vyžadují, aby důvěryhodné osoby dodržely podmínky kontraktu. + +Tady je ukázka: + +Představme si, že Alice a Bob jedou cyklistický závod. Řekněme, že Alice se vsadí s Bobem o 10 dolarů, že vyhraje závod. Bob si je jistý, že bude vítězem a souhlasí se sázkou. Alice nakonec dojede do cíle o hodně dříve než Bob a je jasným vítězem. Bob však odmítá vyplatit sázku a tvrdí, že Alice musela podvádět. + +Tento jednoduchý příklad ilustruje problém s jakoukoliv dohodou, která není založená na chytrém kontraktu. I když jsou podmínky dohody splněny (tj. jste vítězem závodu), musíte stále důvěřovat jiné osobě, že splní svou část dohody (např. že vám vyplatí výhru). + +## Digitální prodejní automat {#vending-machine} + +Jednoduchá metafora pro chytrý kontrakt je prodejní automat, který funguje podobně jako chytrý kontrakt – konkrétní vstupy zaručují předem stanovené výstupy. + +- Vyberete produkt +- Automat zobrazí cenu +- Zaplatíte +- Automat ověří, že jste zaplatili správnou částku +- Automat vám vydá vybraný produkt + +Prodejní automat vám vydá požadovaný produkt až po splnění všech požadavků. Pokud si nevyberete produkt nebo nevložíte dostatek peněz, prodejní automat vám produkt nevydá. + +## Automatické vykonání požadovaného výsledku {#automation} + +Hlavní výhodou chytrého kontraktu je, že deterministicky provádí jednoznačný kód, pokud jsou splněny určité podmínky. Není třeba čekat na lidskou interpretaci nebo vyjednávat o výsledku. Tím odpadá potřeba důvěryhodných zprostředkovatelů. + +Například můžete sepsat chytrý kontrakt, který drží finanční prostředky v úschově pro dítě, a umožní mu vybrat finanční prostředky až po určitém datu. Pokud se pokusí vybrat prostředky před tímto datem, chytrý kontrakt tuto operaci neumožní. Nebo můžete sepsat kontrakt, který vám automaticky poskytne digitální verzi vlastnictví vozidla, když zaplatíte prodejci. + +## Předpovídatelné výsledky {#predictability} + +Tradiční kontrakty jsou nejednoznačné, protože se spoléhají na to, že je interpretují a realizují lidé. Například dva soudci mohou vykládat kontrakt odlišnými způsoby, což může vést k nekonzistentním rozhodnutím a odlišným výsledkům. Chytré kontrakty tuto variantu neumožňují. Místo toho se chytré kontrakty exekuují přesně na základě podmínek napsaných v kódu kontraktu. Tato přesnost znamená, že za stejných okolností bude chytrý kontrakt poskytovat stejný výsledek. + +## Veřejný záznam {#public-record} + +Chytré kontrakty jsou užitečným nástrojem pro audity a sledování. Jelikož jsou ethereovské smart kontrakty na veřejném blockchainu, každý může okamžitě sledovat převody aktiv a další související informace. Můžete například zkontrolovat, zda někdo poslal peníze na vaši adresu. + +## Ochrana soukromí {#privacy-protection} + +Chytré kontrakty také chrání vaše soukromí. Protože je Ethereum pseudonymní síť (vaše transakce jsou veřejně vázány na jedinečnou kryptografickou adresu, ne vaši identitu), můžete chránit své soukromí před pozorovateli. + +## Transparentní podmínky {#visible-terms} + +A konečně, stejně jako v případě tradičních kontraktů, můžete prozkoumat, co je obsahem chytrého kontraktu před tím, než ho podepíšete (nebo s ním budete interagovat jiným způsobem). Transparentnost chytrého kontraktu zaručuje, že si ho může prohlédnout kdokoli. + +## Využití chytrých kontraktů {#use-cases} + +Chytré kontrakty umí v podstatě cokoli, co umí počítačové programy. + +Mohou provádět výpočty, vytvářet měnu, ukládat data, těžit NFT, odesílat komunikaci a dokonce generovat grafiku. Zde jsou některé reálné populární příklady: + +- [Stablecoiny](/stablecoins/) +- [Vytváření a distribuce jedinečných digitálních majetků](/nft/) +- [Automatická otevřená směnárna](/get-eth/#dex) +- [Decentralizované počítačové hry](/dapps/?category=gaming) +- [Pojistná smlouva, která automaticky vyplatí plnění](https://etherisc.com/) +- [Standard, který umožňuje vytvářet interoperabilní měny dle konkrétních požadavků](/developers/docs/standards/tokens/) + +## More of a visual learner? {#visual-learner} + +Koukněte se, jak vysvětlují chytré kontrakty na Finematics: + + + +## Další informace {#further-reading} + +- [Jak chytré kontrakty změní svět](https://www.youtube.com/watch?v=pA6CGuXEKtQ) +- [Chytré kontrakty: Blockchainová technologie, která nahradí právníky](https://blockgeeks.com/guides/smart-contracts/) +- [Chytré kontrakty pro vývojáře](/developers/docs/smart-contracts/) +- [Naučte se psát chytré kontrakty](/developers/learning-tools/) +- [Pochopení Etherea – Co je chytrý kontrakt?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/cs/social-networks/index.md b/public/content/translations/cs/social-networks/index.md new file mode 100644 index 00000000000..068c01cb079 --- /dev/null +++ b/public/content/translations/cs/social-networks/index.md @@ -0,0 +1,121 @@ +--- +title: Decentralizované sociální sítě +description: Přehled decentralizovaných sociálních sítí na Ethereu +lang: cs +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: /ethereum-learn.png +summaryPoint1: Platformy založené na blockchainu pro sociální interakci a tvorbu a distribuci obsahu. +summaryPoint2: Decentralizované sociální sítě chrání soukromí uživatelů a zvyšují bezpečnost dat. +summaryPoint3: Tokeny a NFT umožňují monetizovat obsah novým způsobem. +--- + +Sociální sítě hrají velkou roli v naší každodenní komunikaci a interakcích. Centralizovaná kontrola těchto platforem však způsobila spoustu problémů: úniky dat, výpadky serverů, mazání uživatelských účtů, cenzura a narušování soukromí jsou jen některými kroky, které sociální média dělají. Aby bojovali proti těmto problémům, budují vývojáři sociální sítě na Ethereu. Decentralizované sociální sítě mohou řešit mnoho problémů tradičních platforem sociálních médií a zlepšit celkovou uživatelskou zkušenost. + +## Co jsou decentralizované sociální sítě? {#what-are-decentralized-social-networks} + +Decentralizované sociální sítě jsou platformy založené na blockchainu, které umožňují uživatelům sdílení informací a zveřejňování obsahu pro své publikum. Díky tomu, že tyto aplikace běží na blockchainu, jsou decentralizované a odolné vůči cenzuře a přílišné kontrole. + +Existuje mnoho decentralizovaných sociálních sítí jako alternativy k zavedeným sociálním médiím, jako jsou Facebook, LinkedIn, Twitter a Medium. Avšak sociální sítě využívající blockchainovou technologii mají několik funkcí, které je staví nad tradiční sociální platformy. + +### Jak fungují decentralizované sociální sítě? {#decentralized-social-networks-overview} + +Decentralizované sociální sítě patří mezi [decentralizované aplikace (DAPP)](/dapps/) – aplikace využívající ke svému fungování [smart kontrakty](/developers/docs/smart-contracts/) na blockchainu. Zdrojový kód kontraktu slouží jako backend pro tyto aplikace a definuje jejich byznysovou logiku. + +Tradiční sociální sítě využívají pro ukládání informací uživatelů databáze, programový kód a další formy dat. To však vytváří tzv. jediné body selhání a tím uživatelům přináší značné riziko. Například serverové služby Facebooku se loni proslulým způsobem [na několik hodin odpojily](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact), což uživatele úplně odřízlo od této platformy. + +Decentralizované sociální sítě fungují na peer-to-peer síti, která zahrnuje tisíce síťových uzlů po celém světě. I když některé síťové uzly přestanou fungovat, síť bude nadále v provozu bez přerušení, což činí aplikace odolnými vůči poruchám a výpadkům. + +Díky použití decentralizovaných úložných systémů jako je [InterPlanetary File System (IPFS)](https://ipfs.io/) mohou sociální sítě postavené na Ethereu chránit informace uživatelů před zneužitím a škodlivým použitím. Nikdo nebude mít možnost prodávat vaše osobní údaje reklamním agenturám, a hackeři nebudou schopni ukrást vaše důvěrné informace. + +Mnoho sociálních platforem založených na blockchainu má vlastní tokeny, které umožňují monetizaci bez příjmů z reklamy. Uživatelé si mohou koupit tyto tokeny, aby získali přístup k určitým funkcím, provedli nákupy uvnitř aplikace nebo je darovali svým oblíbeným tvůrcům obsahu. + +## Výhody decentralizovaných sociálních sítí {#benefits} + +1. Decentralizované sociální sítě jsou odolné vůči cenzuře a otevřené všem. To znamená, že uživatelé nemohou být zakázáni, odstraněni z platformy nebo jinak omezeni. + +2. Decentralizované sociální sítě jsou postaveny na zásadách open-source a zpřístupňují veřejnosti svůj zdrojový kód, na který se tak může podívat kdokoliv. Odstraněním implementace netransparentních algoritmů běžných u tradičních sociálních médií mohou sociální sítě založené na blockchainu sjednotit zájmy uživatelů a tvůrců platformy. + +3. Decentralizované sociální sítě ruší nutnost "prostředníka". Tvůrci svůj obsah vlastní a komunikují se svými followery, fanoušky, zákazníky a dalšími subjekty napřímo prostřednictvím smart kontraktu. + +4. Jako DAPP běžící na síti Ethereum, která je udržována globální, peer-to-peer sítí uzlů, jsou decentralizované sociální sítě méně náchylné na výpadky serverů a elektřiny. + +5. Decentralizované sociální platformy nabízejí pro tvůrce obsahu vylepšený způsob monetizace pomocí nezaměnitelných tokenů (NFT), kryptoměnových plateb uvnitř aplikace a dalších možností. + +6. Decentralizované sociální sítě uživatelům poskytují vysokou úroveň soukromí a anonymity. Například jednotlivec se může přihlásit do sociální sítě založené na Ethereu pomocí ENS profilu nebo peněženky – aniž by musel sdílet osobně identifikovatelné informace (personally identifiable information, PII), jako jsou jména, e-mailové adresy atp. + +7. Decentralizované sociální sítě spoléhají na decentralizované úložiště, nikoliv na centralizované databáze, což je mnohem lepší způsob zabezpečení uživatelských dat. + +## Decentralizované sociální sítě na Ethereu {#ethereum-social-networks} + +Síť Ethereum se stala preferovaným nástrojem pro vývojáře, kteří vytvářejí decentralizovaná sociální média, a to díky popularitě tokenů (ERC-20/ERC-721) a obrovskému počtu uživatelů. Zde jsou některé příklady sociálních sítí běžících na Ethereu: + +### Peepeth {#peepeth} + +[Peepeth](https://peepeth.com/) je mikroblogovací platforma podobná Twitteru. Běží na blockchainu Ethereum a ukládá uživatelská data pomocí IPFS. + +Uživatelé mohou posílat krátké zprávy nazývané "peepy", které nelze smazat ani upravit. Můžete sbírat dýška nebo někomu na platformě dát dýško v etheru (ETH), aniž byste museli z aplikace odejít. + +### Mirror {#mirror} + +[Mirror](https://mirror.xyz/) je platforma pro psaní s podporou Web3, jejímž cílem je být decentralizovaná a vlastněná uživateli. Uživatelé platformy Mirror mohou číst a psát obsah zdarma jednoduše přihlášením pomocí svých peněženek. Také mohou sbírat publikovaný obsah a předplatit si své oblíbené tvůrce. + +Příspěvky publikované na Mirroru jsou trvale uloženy na Arweave, decentralizované úložné platformě, a mohou být vytvořeny jako sběratelské [nezaměnitelné tokeny (NFT)](/nft/) známé jako Writing NFT. Vytváření Writing NFT je pro tvůrce zcela zdarma a jejich převody probíhají na vrstvě 2 Etherea, což zajišťuje levné, rychlé a ekologicky šetrné transakce. + +### MINDS {#minds} + +[MINDS](https://www.minds.com/) je jednou z nejpoužívanějších decentralizovaných sociálních sítí. Funguje podobně jako Facebook a už má miliony uživatelů. + +K platbě za příspěvky na sociální sítí používají uživatelé nativní ERC-20 token $MIND. Uživatelé si tokeny $MIND mohou také vydělat, a to tím, že publikují obsah, který je u ostatních uživatelů populární, přispívají do ekosystému a přivedou na platformu další uživatele. + +## Web2 sociální sítě na Ethereu {#web2-social-networks-and-ethereum} + +[Web3](/web3/) nativní sociální platformy nejsou jediné, které se snaží začlenit technologii blockchainu do sociálních médií. I mnoho centralizovaných platforem plánuje integrovat Ethereum do své infrastruktury: + +### Reddit {#reddit} + +Reddit má tzv. [Community Points](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users), což jsou [ERC-20 tokeny](/developers/docs/standards/tokens/erc-20/), které mohou uživatelé dostat za publikování kvalitního obsahu a přispívání do online komunit (subredditů). Tyto tokeny lze v rámci daného subredditu utratit za exkluzivní výhody a výsady. Více informací najdete [zde](https://www.reddit.com/community-points/). Reddit na tomto projektu spolupracuje s Arbitrem, což je rollup [vrstvy W](/layer-2/) navržený ke škálování transakcí na Ethereu. + +Tento program už je spuštěn a na subredditu r/CryptoCurrency [běží verze Community Points nazvaná "Moons".](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Moons podle oficiálního popisu „odměňují uživatele za jejich příspěvky a komentáře a moderátory za jejich přínos na subredditu“. Jelikož tyto tokeny jsou na blockchainu (uživatelům jsou připisovány rovnou do jejich peněženek), jsou nezávislé na Redditu a nelze je uživatelům odebrat. + +Po dokončení beta fáze na testovací síti Rinkeby jsou Community Points v současné době na [Arbitrum Nova](https://nova.arbitrum.io/), blockchainu, který kombinuje vlastnosti [sidechainu](/developers/docs/scaling/sidechains/) a [optimistického rollupu](/developers/docs/scaling/optimistic-rollups/). Community Points mohou být kromě utracení za odemknutí speciálních funkcí také směněny za fiat na burzách. Množství Community Points, které uživatel vlastní, také určuje jeho vliv na rozhodování v rámci komunity. + +### Twitter {#twitter} + +V lednu 2021 Twitter Blue [zavedl podporu pro NFT](https://mashable.com/article/twitter-blue-nft-profile-picture), umožňující uživatelům připojit své peněženky a zobrazovat NFT jako profilové obrázky. V době psaní tohoto článku tato společnost také [oznámila plány](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) na vytvoření decentralizované sociální sítě. + +### Instagram {#instagram} + +V květnu 2022 [Instagram oznámil podporu pro NFT](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) na platformách Ethereum a Polygon. Uživatelé mohou nahrávat NFT na Instagram napřímo a to připojením své peněženky Ethereum. + +## Použití decentralizovaných sociálních sítí {#use-decentralized-social-networks} + +- **[Status.im](https://status.im/)** – _Status je bezpečná zprávová aplikace, která využívá open-source, peer-to-peer protokol a end-to-end šifrování k ochraně vašich zpráv před třetími stranami._ +- **[Mirror.xyz](https://mirror.xyz/)** – _Mirror je decentralizovaná platforma pro publikaci obsahu vlastněného uživateli postavená na Ethereu, která umožňuje uživatelům crowdfundovat nápady, monetizovat obsah a budovat komunity._ +- **[Lens Protocol](https://lens.xyz/)** – _Lens Protocol je komponovatelný a decentralizovaný sociální diagram, který pomáhá tvůrcům uchovat vlastnictví nad jimi vytvořeným obsahem kdekoliv v digitální zahradě decentralizovaného internetu._ +- **[Farcaster](https://farcaster.xyz/)** – _Farcaster je dostatečně decentralizovaná sociální síť. Je to otevřený protokol, který může podporovat více klientů, stejně jako e-mail._ + +## Další četba {#further-reading} + +### Články {#articles} + +- [Decentralizace sociálních médií: průvodce web3 stackem sociálních sítí](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) – _Coinbase Ventures_ +- [Sociální sítě jsou další velkou příležitostí pro decentralizaci](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Goertzel_ +- [Web3 má příslib decentralizovaných komunitně řízených sociálních sítí](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ +- [Přehled ekosystému blockchainových sociálních médií](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ +- [Jak může blockchain vyřešit otázku soukromí na sociálních sítích](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Prableen Bajpai_ +- [Sociální média přichází na blockchain](https://businesstechguides.co/what-are-decentralized-social-networks) — _Emmanuel Awosika_ +- [Dostatečná decentralizace pro sociální sítě](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Varun Srinivasan_ + +### Videa {#videos} + +- [Vysvětlení decentralizovaných sociálních médií](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ +- [DeSo Blockchain chce decentralizovat sociální média](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ +- [Budoucnost decentralizovaných sociálních médií s Balajim Srinivasanem, Vitalikem Buterinem a Juanem Benetem](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ + +### Komunity {#communities} + +- [Server Status na Discordu](https://discord.com/invite/3Exux7Y) +- [Server Mirror na Discordu](https://discord.com/invite/txuCHcE8wV) +- [subreddit r/CryptoCurrency](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/de/about/index.md b/public/content/translations/de/about/index.md similarity index 100% rename from src/content/translations/de/about/index.md rename to public/content/translations/de/about/index.md diff --git a/src/content/translations/de/bridges/index.md b/public/content/translations/de/bridges/index.md similarity index 100% rename from src/content/translations/de/bridges/index.md rename to public/content/translations/de/bridges/index.md diff --git a/src/content/translations/de/community/code-of-conduct/index.md b/public/content/translations/de/community/code-of-conduct/index.md similarity index 100% rename from src/content/translations/de/community/code-of-conduct/index.md rename to public/content/translations/de/community/code-of-conduct/index.md diff --git a/src/content/translations/de/community/events/index.md b/public/content/translations/de/community/events/index.md similarity index 100% rename from src/content/translations/de/community/events/index.md rename to public/content/translations/de/community/events/index.md diff --git a/src/content/translations/de/community/get-involved/index.md b/public/content/translations/de/community/get-involved/index.md similarity index 100% rename from src/content/translations/de/community/get-involved/index.md rename to public/content/translations/de/community/get-involved/index.md diff --git a/src/content/translations/de/community/grants/index.md b/public/content/translations/de/community/grants/index.md similarity index 100% rename from src/content/translations/de/community/grants/index.md rename to public/content/translations/de/community/grants/index.md diff --git a/src/content/translations/de/community/language-resources/index.md b/public/content/translations/de/community/language-resources/index.md similarity index 100% rename from src/content/translations/de/community/language-resources/index.md rename to public/content/translations/de/community/language-resources/index.md diff --git a/src/content/translations/de/community/online/index.md b/public/content/translations/de/community/online/index.md similarity index 100% rename from src/content/translations/de/community/online/index.md rename to public/content/translations/de/community/online/index.md diff --git a/src/content/translations/de/community/research/index.md b/public/content/translations/de/community/research/index.md similarity index 100% rename from src/content/translations/de/community/research/index.md rename to public/content/translations/de/community/research/index.md diff --git a/public/content/translations/de/community/support/index.md b/public/content/translations/de/community/support/index.md new file mode 100644 index 00000000000..c53589a6001 --- /dev/null +++ b/public/content/translations/de/community/support/index.md @@ -0,0 +1,116 @@ +--- +title: Ethereum-Support +description: Support im Ethereum-Ökosystem erhalten +lang: de +--- + +# Ethereum-Support {#support} + +## Offizieller Ethereum-Support {#official-support} + +Sind Sie auf der Suche nach dem offiziellen Ethereum-Support? Es ist wichtig, zu wissen, dass Ethereum dezentralisiert ist. Das bedeutet, dass Ethereum keiner zentralen Organisation, Entität oder Person gehört. Daher existieren auch keine offiziellen Supportkanäle. + +Es ist wichtig, die dezentrale Gestaltung von Ethereum zu verstehen, denn jeder, der behauptet, offizieller Support für Ethereum zu sein, versucht wahrscheinlich, Sie zu betrügen. Der beste Schutz vor Betrug ist, sich zu informieren und Sicherheit ernst zu nehmen. + + + Ethereum – Sicherheits- und Betrugsvorbeugung + + + + Mehr erfahren über die Grundlagen von Ethereum + + +Trotz des Mangels an offizieller Unterstützung sind viele Gruppen, Communitys und Projekte im gesamten Ethereum-Ökosystem gern bereit, zu helfen, und Sie können auf dieser Seite viele nützliche Informationen und Ressourcen finden. Haben Sie noch Fragen? Treten Sie dem [ethereum.org Discord](/discord/) bei und wir versuchen, Ihnen weiterzuhelfen. + +## Wallet-Support {#wallet-support} + +Haben Sie Probleme mit Ihrer Wallet? Die meisten Wallets haben spezielle Supportteams, die Ihnen helfen können: + +- [MetaMask](https://metamask.zendesk.com/hc/) +- [Argent](https://support.argent.xyz/hc/) +- [MyEtherWallet](https://help.myetherwallet.com/) + +_Das ist keine vollständige Liste. Brauchen Sie Hilfe bei der Suche nach Unterstützung für eine bestimmte Wallet? Treten Sie dem [ethereum.org-Discord](https://discord.gg/ethereum-org) bei, dann versuchen wir, Ihnen zu helfen._ + +Suchen Sie eine Ethereum-Wallet? [Sehen Sie sich unsere vollständige Liste der Ethereum-Wallets an](/wallets/find-wallet/). + +## dApps erstellen {#building-support} + +Erstellen kann durchaus schwer sein. Hier finden Sie einige Breiche mit Schwerpunkt auf Entwicklung mit erfahrenen Ethereum-Entwicklern, die Ihnen gerne helfen. + +- [Alchemy University](https://university.alchemy.com/#starter_code) +- [CryptoDevs-Discord](https://discord.gg/Z9TA39m8Yu) +- [Ethereum StackExchange](https://ethereum.stackexchange.com/) +- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) +- [Web3 University](https://www.web3.university/) +- [LearnWeb3](https://discord.com/invite/learnweb3) + +In unserem Bereich mit [Ethereum-Entwicklerressourcen](/developers/) finden Sie auch Dokumentationen und Entwicklungsleitfäden. + +### Tools {#dapp-tooling} + +Bezieht sich Ihre Frage auf ein bestimmtes Tool, Projekt oder eine Bibliothek? Die meisten Projekte haben Chat-Server oder Foren, die Unterstützung bieten. + +Hier sind einige beliebte Beispiele: + +- [Solidity](https://gitter.im/ethereum/solidity/) +- [ethers.js](https://discord.gg/6jyGVDK6Jx) +- [web3.js](https://discord.gg/GsABYQu4sC) +- [Hardhat](https://discord.gg/xtrMGhmbfZ) +- [Truffle](https://discord.gg/8uKcsccEYE) +- [Alchemy](http://alchemy.com/discord) +- [Tenderly](https://discord.gg/fBvDJYR) + +## Einen Knoten betreiben {#node-support} + +Wenn Sie einen Knoten oder Validator betreiben, finden Sie hier einige Communitys, die Ihnen den Einstieg erleichtern. + +- [EthStaker-Discord](https://discord.io/ethstaker) +- [EthStaker-Reddit](https://www.reddit.com/r/ethstaker) + +Die meisten Teams, die Ethereum-Clients entwickeln, haben auch eigene, öffentlich zugängliche Bereiche, in denen Sie Unterstützung erhalten und Fragen stellen können. + +### Ausführende Clients {#execution-clients} + +- [Geth](https://discord.gg/FqDzupGyYf) +- [Nethermind](https://discord.gg/YJx3pm8z5C) +- [Besu](https://discord.gg/p8djYngzKN) +- [Erigon](https://github.com/ledgerwatch/erigon/issues) + +### Konsens-Clients {#consensus-clients} + +- [Prysm](https://discord.gg/prysmaticlabs) +- [Nimbus](https://discord.gg/nSmEH3qgFv) +- [Lighthouse](https://discord.gg/cyAszAh) +- [Teku](https://discord.gg/7hPv2T6) +- [Lodestar](https://discord.gg/aMxzVcr) + +Sie können hier auch [lernen, wie ein Knoten betrieben wird](/developers/docs/nodes-and-clients/run-a-node/). + +## Häufig gestellte Fragen {#faq} + +### Ich habe ETH an die falsche Wallet gesendet {#wrong-wallet} + +Eine auf Ethereum gesendete Transaktion ist unumkehrbar. Wenn Sie ETH an die falsche Wallet geschickt haben, gibt es leider keine Möglichkeit, diese Gelder zurückzuholen. Keine zentrale Organisation, Entität oder Person ist Eigentümer von Ethereum. Das bedeutet, dass auch niemand Transaktionen rückgängig machen kann. Deshalb ist es wichtig, dass Sie alle Transaktionen vor dem Versenden immer noch einmal überprüfen. + +### Wie kann ich mein Ethereum-Giveaway erhalten? {#giveaway-scam} + +Ethereum-Giveaways sind Betrugsmaschen, die darauf abzielen, Ihr ETH zu stehlen. Lassen Sie sich nicht von Angeboten verleiten, die zu schön sind, um wahr zu sein. Wenn Sie ETH an eine Giveaway-Adresse schicken, erhalten Sie kein Giveaway und Sie können Ihr Geld nicht zurückfordern. + +[Mehr zum Thema Betrugsprävention](/security/#common-scams) + +### Meine Transaktion steckt fest {#stuck-transaction} + +Transaktionen auf Ethereum können manchmal stecken bleiben, wenn Sie eine niedrigere Transaktionsgebühr eingereicht haben, als aufgrund der Netzwerknachfrage erforderlich ist. Viele Wallets bieten die Möglichkeit, dieselbe Transaktion mit einer höheren Transaktionsgebühr erneut zu übermitteln, damit die Transaktion bearbeitet werden kann. Alternativ können Sie eine ausstehende Transaktion abbrechen. Senden Sie dafür eine Transaktion an Ihre eigene Adresse und verwenden Sie dieselbe Nonce wie für die ausstehende Transaktion. + +[So beschleunigen Sie ausstehenden Transaktionen auf MetaMask oder brechen sie ab](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) + +[So stornieren Sie ausstehende Ethereum-Transaktionen](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) + +### Wie kann ich Ethereum minen? {#mining-ethereum} + +Ethereum-Mining ist nicht mehr möglich. Das Mining wurde abgeschaltet, als Ethereum von Proof-of-Work zu Proof-of-Stake wechselte. Anstatt Miner hat Ethereum jetzt Validatoren. Validatoren setzen ETH ein und erhalten für das Staking des Netzwerkes eine Belohnung. + +### Wie werde ich Staker/Validator? {#become-validator} + +Um ein Validator zu werden, müssen Sie 32 ETH in den Einlagenvertrag von Ethereum einzahlen und einen Validator-Knoten aufbauen. Weitere Informationen dazu finden Sie auf den [Staking-Seiten](/staking) und [dem Staking-Launchpad](https://launchpad.ethereum.org/). diff --git a/src/content/translations/de/contributing/adding-desci-projects/index.md b/public/content/translations/de/contributing/adding-desci-projects/index.md similarity index 100% rename from src/content/translations/de/contributing/adding-desci-projects/index.md rename to public/content/translations/de/contributing/adding-desci-projects/index.md diff --git a/src/content/translations/de/contributing/adding-developer-tools/index.md b/public/content/translations/de/contributing/adding-developer-tools/index.md similarity index 100% rename from src/content/translations/de/contributing/adding-developer-tools/index.md rename to public/content/translations/de/contributing/adding-developer-tools/index.md diff --git a/src/content/translations/de/contributing/adding-exchanges/index.md b/public/content/translations/de/contributing/adding-exchanges/index.md similarity index 100% rename from src/content/translations/de/contributing/adding-exchanges/index.md rename to public/content/translations/de/contributing/adding-exchanges/index.md diff --git a/src/content/translations/de/contributing/adding-glossary-terms/index.md b/public/content/translations/de/contributing/adding-glossary-terms/index.md similarity index 100% rename from src/content/translations/de/contributing/adding-glossary-terms/index.md rename to public/content/translations/de/contributing/adding-glossary-terms/index.md diff --git a/src/content/translations/de/contributing/adding-layer-2s/index.md b/public/content/translations/de/contributing/adding-layer-2s/index.md similarity index 100% rename from src/content/translations/de/contributing/adding-layer-2s/index.md rename to public/content/translations/de/contributing/adding-layer-2s/index.md diff --git a/src/content/translations/de/contributing/adding-products/index.md b/public/content/translations/de/contributing/adding-products/index.md similarity index 100% rename from src/content/translations/de/contributing/adding-products/index.md rename to public/content/translations/de/contributing/adding-products/index.md diff --git a/src/content/translations/de/contributing/adding-staking-products/index.md b/public/content/translations/de/contributing/adding-staking-products/index.md similarity index 100% rename from src/content/translations/de/contributing/adding-staking-products/index.md rename to public/content/translations/de/contributing/adding-staking-products/index.md diff --git a/src/content/translations/de/contributing/adding-wallets/index.md b/public/content/translations/de/contributing/adding-wallets/index.md similarity index 100% rename from src/content/translations/de/contributing/adding-wallets/index.md rename to public/content/translations/de/contributing/adding-wallets/index.md diff --git a/src/content/translations/de/contributing/content-resources/index.md b/public/content/translations/de/contributing/content-resources/index.md similarity index 100% rename from src/content/translations/de/contributing/content-resources/index.md rename to public/content/translations/de/contributing/content-resources/index.md diff --git a/src/content/translations/de/contributing/design-principles/index.md b/public/content/translations/de/contributing/design-principles/index.md similarity index 100% rename from src/content/translations/de/contributing/design-principles/index.md rename to public/content/translations/de/contributing/design-principles/index.md diff --git a/src/content/translations/de/contributing/design/adding-design-resources/index.md b/public/content/translations/de/contributing/design/adding-design-resources/index.md similarity index 100% rename from src/content/translations/de/contributing/design/adding-design-resources/index.md rename to public/content/translations/de/contributing/design/adding-design-resources/index.md diff --git a/src/content/translations/de/contributing/design/index.md b/public/content/translations/de/contributing/design/index.md similarity index 100% rename from src/content/translations/de/contributing/design/index.md rename to public/content/translations/de/contributing/design/index.md diff --git a/src/content/translations/de/contributing/index.md b/public/content/translations/de/contributing/index.md similarity index 100% rename from src/content/translations/de/contributing/index.md rename to public/content/translations/de/contributing/index.md diff --git a/src/content/translations/de/contributing/quizzes/index.md b/public/content/translations/de/contributing/quizzes/index.md similarity index 100% rename from src/content/translations/de/contributing/quizzes/index.md rename to public/content/translations/de/contributing/quizzes/index.md diff --git a/src/content/translations/de/contributing/translation-program/faq/index.md b/public/content/translations/de/contributing/translation-program/faq/index.md similarity index 100% rename from src/content/translations/de/contributing/translation-program/faq/index.md rename to public/content/translations/de/contributing/translation-program/faq/index.md diff --git a/src/content/translations/de/contributing/translation-program/how-to-translate/index.md b/public/content/translations/de/contributing/translation-program/how-to-translate/index.md similarity index 100% rename from src/content/translations/de/contributing/translation-program/how-to-translate/index.md rename to public/content/translations/de/contributing/translation-program/how-to-translate/index.md diff --git a/src/content/translations/de/contributing/translation-program/index.md b/public/content/translations/de/contributing/translation-program/index.md similarity index 100% rename from src/content/translations/de/contributing/translation-program/index.md rename to public/content/translations/de/contributing/translation-program/index.md diff --git a/src/content/translations/de/contributing/translation-program/mission-and-vision/index.md b/public/content/translations/de/contributing/translation-program/mission-and-vision/index.md similarity index 100% rename from src/content/translations/de/contributing/translation-program/mission-and-vision/index.md rename to public/content/translations/de/contributing/translation-program/mission-and-vision/index.md diff --git a/src/content/translations/de/contributing/translation-program/resources/index.md b/public/content/translations/de/contributing/translation-program/resources/index.md similarity index 100% rename from src/content/translations/de/contributing/translation-program/resources/index.md rename to public/content/translations/de/contributing/translation-program/resources/index.md diff --git a/public/content/translations/de/contributing/translation-program/translators-guide/index.md b/public/content/translations/de/contributing/translation-program/translators-guide/index.md new file mode 100644 index 00000000000..3c8dab3cdd8 --- /dev/null +++ b/public/content/translations/de/contributing/translation-program/translators-guide/index.md @@ -0,0 +1,293 @@ +--- +title: Übersetzungsleitfaden +lang: de +description: Anweisungen und Tipps für ethereum.org-Übersetzer +--- + +# Übersetzungsleitfaden von ethereum.org {#style-guide} + +Der Übersetzungsleitfaden von ethereum.org enthält die wichtigsten Richtlinien, Anweisungen und Tipps für Übersetzer, die uns bei der Lokalisierung der Website helfen. + +Dieses Dokument dient als allgemeiner Leitfaden und ist nicht spezifisch für eine bestimmte Sprache. + +Wenn Sie Fragen, Vorschläge oder Feedback haben, wenden Sie sich bitte an translations@ethereum.org, senden Sie eine Nachricht an @ethdotorg auf Crowdin oder treten Sie [unserem Discord](https://discord.gg/ethereum-org) bei. Dort können Sie uns im Kanal #translations eine Nachricht senden oder sich an eines der Teammitglieder wenden. + +## Crowdin verwenden {#using-crowdin} + +Auf der Seite [Übersetzungsprogramm](/contributing/translation-program/#how-to-translate) finden Sie grundlegende Anweisungen, wie Sie dem Projekt in Crowdin beitreten und den Crowdin-Online-Editor verwenden können. + +Wenn Sie mehr über Crowdin und die Nutzung der erweiterten Funktionen erfahren möchten, finden Sie in der [Crowdin-Wissensdatenbank](https://support.crowdin.com/online-editor/) viele ausführliche Anleitungen und eine Übersicht über alle Crowdin-Funktionen. + +## Das Wesentliche der Botschaft erfassen {#capturing-the-essence} + +Vermeiden Sie bei der Übersetzung von ethereum.org-Inhalten wörtliche Übersetzungen. + +Es ist wichtig, dass die Übersetzung das Wesentliche einer Botschaft wiedergibt. Dazu gehört, dass bestimmte Formulierungen umformuliert oder beschreibende Übersetzungen verwendet werden, anstatt den Inhalt Wort für Wort zu übersetzen. + +Verschiedene Sprachen haben unterschiedliche Grammatikregeln, Konventionen und Wortfolgen. Achten Sie bei der Übersetzung darauf, wie die Sätze in den Zielsprachen aufgebaut sin. Vermeiden Sie eine wörtliche Übersetzung des englischen Quelltextes, da das zu einer ungewohnten Satzstruktur und schlechteren Lesbarkeit führen kann. + +Anstatt den Ausgangstext Wort für Wort zu übersetzen, empfiehlt es sich, den gesamten Satz zu lesen und ihn an die Konventionen der Zielsprache anzupassen. + +## Formell vs. informell {#formal-vs-informal} + +Wir verwenden die förmliche Anrede, die für alle Besucher stets höflich und angemessen ist. + +Durch die förmliche Anrede lässt sich vermeiden, dass Formulierungen inoffiziell oder beleidigend klingen. Zudem funktioniert sie unabhängig von Alter und Geschlecht des Besuchers. + +Die meisten indoeuropäischen und afroasiatischen Sprachen verwenden geschlechtsspezifische Personalpronomen der zweiten Person, die zwischen männlich und weiblich unterscheiden. Bei der Anrede von Benutzerinnen und Benutzern oder der Verwendung von Possessivpronomen können wir vermeiden, das Geschlecht anzunehmen, da die formale Anrede im Allgemeinen anwendbar und konsistent ist, unabhängig davon, wie er/sie/es sich identifiziert. + +## Einfaches und klares Vokabular und Bedeutung {#simple-vocabulary} + +Unser Ziel ist es, die Inhalte der Website für so viele Menschen wie möglich verständlich zu machen. + +In den meisten Fällen lässt sich das ganz einfach durch die Verwendung kurzer und einfacher Worte erreichen, die leicht verständlich sind. Wenn es für ein bestimmtes Wort in Ihrer Sprache mehrere mögliche Übersetzungen mit der gleichen Bedeutung gibt, ist die beste Option meist das kürzeste Wort, das die Bedeutung klar wiedergibt. + +## Schreibsystem {#writing-system} + +Ethereum.org ist in einer Reihe von Sprachen verfügbar, die alternative Schriftsysteme (oder Schreibschriften) zum Lateinischen verwenden. + +Der gesamte Inhalt sollte unter Verwendung des korrekten Schriftsystems für Ihre Sprache übersetzt werden und keine Wörter enthalten, die mit lateinischen Buchstaben geschrieben sind. + +Wenn Sie den Inhalt übersetzen, sollten Sie sicherstellen, dass die Übersetzungen einheitlich sind und keine lateinischen Zeichen enthalten. + +Ein gängiger Irrtum ist, dass Ethereum immer in Latein geschrieben werden sollte. Das ist meistens falsch. Nutzen Sie die Schreibweise von Ethereum in Ihrer Muttersprache (z. B. 以太坊 in Chinesisch, إيثيريوم in Arabisch usw.). + +**Die obigen Ausführungen gelten nicht für Sprachen, in denen Eigennamen in der Regel nicht übersetzt werden sollten.** + +## Metadaten der Seite übersetzen {#translating-metadata} + +Einige Seiten enthalten Metadaten wie "title", "lang", "description", "sidebar" usw. auf der Seite. + +Wir blenden beim Hochladen neuer Seiten in Crowdin die Inhalte aus, die Übersetzer nicht übersetzen sollen. Das bedeutet, dass alle Metadaten, die für Übersetzer in Crowdin sichtbar sind, auch übersetzt werden sollen. + +Seien Sie besonders aufmerksam, wenn Sie eine Zeichenfolgen übersetzen, deren Ausgangstext mit 'en' gekennzeichnet ist. Das steht für die Sprache, in der die Seite verfügbar ist. Das sollte mit dem [ISO-Sprachcode für Ihre Sprache](https://www.andiamo.co.uk/resources/iso-language-codes/) übersetzt werden. Diese Zeichenfolgen sollten immer mit lateinischen Buchstaben übersetzt werden, nicht mit der Schreibschrift der Zielsprache. + +Wenn Sie sich nicht sicher sind, welchen Sprachcode Sie verwenden sollten, können Sie das Translation Memory in Crowdin überprüfen oder den Sprachcode für Ihre Sprache auf der URL-Seite im Crowdin-Online-Editor finden. + +Einige Beispiele für Sprachcodes für die am weitesten verbreiteten Sprachen: + +- Arabisch - ar +- Vereinfachtes Chinesisch - zh +- Französisch - fr +- Hindi - hi +- Spanisch - es + +## Titel von externen Artikeln {#external-articles} + +Einige Strings enthalten Titel externer Artikel. Die meisten unserer Dokumentationsseiten für Entwickler enthalten Links zu externen Artikeln, um weiterführende Informationen zu bieten. Die Zeichenketten, die die Titel der Artikel enthalten, müssen unabhängig von der Sprache des Artikels übersetzt werden, um eine einheitliche Benutzererfahrung für die Besucher zu gewährleisten, die die Seite in ihrer Sprache ansehen. + +Im Folgenden finden Sie einige Beispiele dafür, wie diese Zeichenfolgen für Übersetzer aussehen und wie sie zu erkennen sind (Links zu den Artikeln finden Sie meist am Ende dieser Seiten im Abschnitt "Weiterführende Literatur"): + +![Titel von Artikeln in sidebar.png](./article-titles-in-sidebar.png) ![Titel von Artikeln in editor.png](./article-titles-in-editor.png) + +## Crowdin-Warnungen {#crowdin-warnings} + +Crowdin verfügt über eine eingebaute Funktion, die Übersetzer warnt, wenn sie im Begriff sind, einen Fehler zu machen. Crowdin warnt Sie automatisch, bevor Sie Ihre Übersetzung speichern, wenn Sie vergessen, ein Tag aus der Quelle einzubinden, Elemente übersetzen, die nicht übersetzt werden sollten, mehrere aufeinander folgende Leerzeichen hinzufügen, Ende-Satzzeichen vergessen usw. Wenn Sie eine solche Warnung sehen, gehen Sie zurück und überprüfen Sie die vorgeschlagene Übersetzung nochmals. + +**Ignorieren Sie diese Warnungen nicht, denn sie bedeuten in der Regel, dass etwas falsch ist oder dass in der Übersetzung ein wichtiger Teil des Ausgangstextes fehlt.** + +Ein Beispiel für eine Crowdin-Warnung, wenn Sie vergessen, ein Tag zur Übersetzung hinzuzufügen: ![Beispiel für eine Crowdin-Warnung](./crowdin-warning-example.png) + +## Umgang mit Tags und Codeausschnitten {#dealing-with-tags} + +Ein großer Teil des Quellinhalts enthält Tags und Variablen, die im Crowdin-Editor gelb hervorgehoben sind. Diese haben unterschiedliche Funktionen und sollten richtig angegangen werden. + +**Crowdin-Einstellungen** + +Um die Verwaltung von Tags zu erleichtern und diese direkt aus der Quelle zu kopieren, empfehlen wir Ihnen, Ihre Einstellungen im Crowdin-Editor zu ändern. + +1. Einstellungen öffnen ![Einstellungen im Editor öffnen](./editor-settings.png) + +2. Scrollen Sie nach unten zum Abschnitt „HTML-Tags Anzeige" + +3. Wählen Sie „Verstecken" ![Bitte „Verstecken" auswählen](./hide-tags.png) + +4. Klicken Sie auf „Speichern" + +Durch Auswahl dieser Option wird der vollständige Tag-Text nicht mehr angezeigt und durch eine Zahl ersetzt. Beim Übersetzen wird der exakte Tag automatisch in das Übersetzungsfeld kopiert, wenn der Tag angeklickt wird. + +**Links** + +Sie finden möglicherweise vollständige Links zu Seiten auf ethereum.org oder anderen Websites. + +Diese sollten mit der Quelle identisch sein und nicht verändert oder übersetzt werden. Wenn Sie einen Link übersetzen oder ihn in irgendeiner Weise verändern, selbst wenn Sie nur einen Teil davon entfernen, wie z. B. einen Schrägstrich (/), führt das zu fehlerhaften und unbrauchbaren Links. + +Am besten ist es, Links direkt aus der Quelle zu kopieren, entweder durch Anklicken oder mit der Schaltfläche „Copy Source" (Quelle kopieren) (Alt+C). + +![Beispiel für einen Link.png](./example-of-link.png) + +Links erscheinen im Quelltext auch in Form von Tags (z. B. <0> ). Wenn Sie mit dem Mauszeiger über das Tag fahren, zeigt der Editor den vollständigen Inhalt an. Manchmal stellen diese Tags auch Links dar. + +Es ist sehr wichtig, die Links aus der Quelle zu kopieren und die Reihenfolge nicht zu verändern. + +Wird die Reihenfolge der Tags geändert, wird damit die Verbindung, die sie darstellen, aufgebrochen. + +![Beispiel für Links in Tags.png](./example-of-links-inside-tags.png) + +**Tags und Variablen** + +Der Quelltext enthält viele verschiedene Arten von Tags, die immer aus der Quelle kopiert und nicht verändert werden sollten. Ähnlich wie oben sollte auch die Reihenfolge dieser Tags in der Übersetzung mit der Quelle übereinstimmen. + +Tags enthalten immer einen öffnenden und einen schließenden Tag. In den meisten Fällen sollte der Text zwischen öffnenden und schließenden Tags übersetzt werden. + +Beispiel: ``Dezentralisiert`` + +`` - _Öffnender Tag, der eine Fettformatierung bedingt_ + +Dezentralisiert – _Übersetzbarer Text_ + +`` – _Schließender Tag_ + +![Beispiel für „starke" Tags.png](./example-of-strong-tags.png) + +CodeAusschnitte sollten etwas anders behandelt werden als die anderen Tags, da sie Code enthalten, der nicht übersetzt werden sollte. + +Beispiel: ``Nonce`` + +`` – _Öffnender Tag, der einen Code-Ausschnitt enthält_ + +Nonce – _Nicht übersetzbarer Text_ + +`` – _Schließender Tag_ + +![Beispiel für Code-Ausschnitte.png](./example-of-code-snippets.png) + +Der Quelltext enthält auch verkürzte Tags, die nur Zahlen enthalten. Ihre Funktion ist dadurch nicht direkt ersichtlich. Sie können mit dem Mauszeiger über diese Tags fahren, um genau zu sehen, welche Funktion sie haben. + +Im folgenden Beispiel können Sie sehen, dass der Mauszeiger über dem <0> Tag zeigt, dass er `` darstellt und einen Code-Ausschnitt enthält. Daher sollte der Inhalt innerhalb dieser Tags nicht übersetzt werden. + +![Beispiel für mehrdeutige Tags.png](./example-of-ambiguous-tags.png) + +## Kurze vs. vollständige Formulierungen/Abkürzungen {#short-vs-full-forms} + +Auf der Website werden viele Abkürzungen verwendet, z. B. dApps, NFT, DAO, DeFi etc. Diese Abkürzungen werden im Englischen häufig verwendet und sind den meisten Besuchern der Website bekannt. + +Da es für diese und ähnliche Begriffe in der Regel keine etablierten Übersetzungen in anderen Sprachen gibt, ist es am besten, eine beschreibende Übersetzung der vollständigen Form anzugeben und die englische Abkürzung in Klammern hinzuzufügen. + +Übersetzen Sie diese Abkürzungen nicht, da die meisten Menschen damit nicht vertraut sind und die lokalisierten Versionen für die meisten Besucher nicht viel Sinn ergeben würden. + +Beispiel für die Übersetzung von dApps: + +- Dezentrale Anwendungen (dApps) → _Übersetzte Vollform (englische Abkürzung in Klammern)_ + +## Begriffe ohne etablierte Übersetzungen {#terms-without-established-translations} + +Für einige Begriffe gibt es möglicherweise keine etablierten Übersetzungen in anderen Sprachen und sie sind weithin unter dem englischen Originalbegriff bekannt. Diese Begriffe umfassen meist neuere Konzepte wie Proof-of-Work, Proof-of-Stake, Beacon Chain, Staking usw. + +Die Übersetzung dieser Begriffe kann zwar unnatürlich klingen, da aber die englische Version auch in anderen Sprachen häufig verwendet wird, ist es sehr empfehlenswert, sie zu übersetzen. + +Wenn Sie sie übersetzen, können Sie kreativ sein, beschreibende Übersetzungen verwenden oder einfach wörtlich übersetzen. + +**Es ist sinnvoll, die meisten Begriffe zu übersetzen, anstatt sie auf Englisch zu belassen, da diese neue Terminologie sich zukünftig stärker verbreitet, wenn mehr Menschen Ethereum und zugehörige Technologien nutzen. Wenn wir mehr Menschen aus der ganzen Welt für diesen Bereich gewinnen wollen, müssen wir eine verständliche Terminologie in so vielen Sprachen wie möglich anbieten, auch wenn wir sie selbst erstellen müssen.** + +## Schaltflächen und CTAs (Call to Action) {#buttons-and-ctas} + +Die Website enthält zahlreiche Schaltflächen, die anders übersetzt werden sollten als andere Inhalte. + +Schaltflächentext kann identifiziert werden, indem Sie sich die zugehörigen Kontext-Screenshots ansehen oder den Kontext im Editor überprüfen, der den Ausdruck „Button“ enthält. + +Die Übersetzungen für Schaltflächen sollten so kurz wie möglich sein, um Formatierungsfehler zu vermeiden. Außerdem sollten die Schaltflächenübersetzungen als Anweisung formuliert sein, d. h. einen Befehl oder eine Aufforderung darstellen. + +![Wie man eine Schaltfläche.png findet](./how-to-find-a-button.png) + +## Übersetzen für Inklusion {#translating-for-inclusivity} + +Die Besucher von ethereum.org kommen aus der ganzen Welt und haben ganz unterschiedliche Hintergründe. Die Sprache auf der Website sollte daher neutral, einladend für alle und nicht ausschließend sein. + +Ein wichtiger Aspekt dabei ist die Geschlechterneutralität. Das lässt sich leicht erreichen, indem die formale Anrede benutzt und geschlechtsspezifische Wörter in den Übersetzungen vermieden werden. + +Eine andere Möglichkeit der Inklusion ist der Versuch, für ein globales Publikum zu übersetzen, das nicht auf ein Land, eine Rasse oder eine Region festgelegt ist. + +Schließlich sollte die Sprache für jedes Publikum und Alter geeignet sein. + +## Sprachspezifische Übersetzungen {#language-specific-translations} + +Bei der Übersetzung ist es wichtig, die Grammatikregeln, Konventionen und die Formatierung in Ihrer Sprache zu befolgen und diese nicht von der Quelle zu übernehmen. Der Ausgangstext folgt den englischen Grammatikregeln und -konventionen, die in vielen anderen Sprachen nicht gelten. + +Sie sollten mit den Regeln für Ihre Sprache vertraut sein und entsprechend übersetzen. Wenn Sie Hilfe benötigen, wende Sie sich an uns. Wir unterstützen Sie dabei, Ressourcen zu finden, wie diese Elemente in Ihrer Sprache einzusetzen sind. + +Einige Beispiele dafür, worauf besonders zu achten ist: + +### Zeichensetzung, Formatierung {#punctuation-and-formatting} + +**Groß-/Kleinschreibung** + +- Es gibt große Unterschiede in der Groß- und Kleinschreibung in verschiedenen Sprachen. +- Im Englischen ist es üblich, alle Wörter in Titeln und Namen, Monaten und Tagen, Sprachnamen, Feiertagen usw. groß zu schreiben. In vielen anderen Sprachen ist das grammatikalisch nicht korrekt, da es abweichende Regeln für die Groß- und Kleinschreibung gibt. +- Einige Sprachen haben auch Regeln für die Großschreibung von Personalpronomen, Substantiven und bestimmten Adjektiven, die im Englischen nicht großgeschrieben werden. + +**Abstände** + +- Die Rechtschreibregeln legen die Verwendung von Leerzeichen für jede Sprache fest. Leerzeichen werden überall verwendet und folgen in jeder Sprache anderen Regeln. Leerzeichen gehören zu den am häufigsten falsch übersetzten Elementen. +- Einige häufige Unterschiede in den Abständen zwischen dem Englischen und anderen Sprachen: + - Leerzeichen vor Maßeinheiten und Währungen (z. B. USD, EUR, kB, MB) + - Leerzeichen vor Gradzeichen (z. B. °C, ℉) + - Leerzeichen vor einigen Satzzeichen, insbesondere vor der Ellipse (...) + - Leerzeichen vor und nach Schrägstrichen (/) + +**Listen** + +- Jede Sprache hat vielfältige und komplexe Regeln für die Erstellung von Listen. Diese können sich erheblich vom Englischen unterscheiden. +- In einigen Sprachen muss das erste Wort jeder neuen Zeile groß geschrieben werden, während in anderen Sprachen neue Zeilen mit Kleinbuchstaben beginnen sollten. Viele Sprachen haben auch unterschiedliche Regeln für die Groß- und Kleinschreibung in Listen, je nach Länge der einzelnen Zeilen. +- Das Gleiche gilt für die Interpunktion von Zeilenelementen. Das Endzeichen in Listen kann, je nach Sprache, ein Punkt (**.**), ein Komma (**,**) oder ein Semikolon (**;**) sein. + +**Anführungszeichen** + +- In den Sprachen werden viele verschiedene Anführungszeichen verwendet. Das einfache Kopieren der englischen Anführungszeichen aus der Quelle ist oft nicht korrekt. +- Zu den gängigsten Arten von Anführungszeichen gehören: + - „Beispieltext“ + - ‚Beispieltext’ + - »Beispieltext« + - “Beispieltext” + - ‘Beispieltext’ + - «Beispieltext» + +**Bindestriche und Gedankenstriche** + +- Im Englischen wird ein Bindestrich (-) verwendet, um Wörter oder verschiedene Teile eines Wortes zu verbinden, während ein Gedankenstrich (–) verwendet wird, um einen Bereich abzugrenzen oder eine Pause zu signalisieren. +- Viele Sprachen haben unterschiedliche Regeln für die Verwendung von Bindestrichen und Gedankenstrichen, die es zu beachten gilt. + +### Formate {#formats} + +**Zahlen** + +- Der Hauptunterschied bei der Schreibweise von Zahlen in verschiedenen Sprachen ist das Trennzeichen für Dezimalstellen und Tausender. Als Tausendertrennzeichen kann das ein Punkt, ein Komma oder ein Leerzeichen verwendet werden. Ebenso verwenden einige Sprachen einen Dezimalpunkt, andere ein Dezimalkomma. + - Einige Beispiele für große Zahlen: + - Englisch – **1,000.50** + - Spanisch – **1.000,50** + - Französisch – **1 000,50** +- Ebenfalls wichtig bei der Übersetzung von Zahlen ist das Prozentzeichen. Es kann auf verschiedene Weise geschrieben werden: **100%**, **100 %** oder **%100**. +- Und abschließend können auch negative Zahlen je nach Sprache unterschiedlich dargestellt werden: -100, 100-, (100) oder [100]. + +**Datumsangaben** + +- Bei der Übersetzung von Datumsangaben gibt es eine Reihe von Unterschieden und Überlegungen, die von der jeweiligen Sprache abhängen. Dazu gehören das Datumsformat, das Trennzeichen, die Großschreibung und führende Nullen. Es gibt auch Unterschiede zwischen den Datumsangaben in voller Länge und den numerischen Daten. + - Einige Beispiele für verschiedene Datumsformate: + - Englisch UK (dd/mm/yyyy) – 1st January, 2022 + - Englisch US (mm/dd/yyyy) – January 1st, 2022 + - Chinesisch (yyyy-mm-dd) – 2022 年 1 月 1 日 + - Französisch (dd/mm/yyyy) – 1er janvier 2022 + - Italienisch (dd/mm/yyyy) – 1º gennaio 2022 + - Deutsch (dd/mm/yyyy) – 1. Januar 2022 + +**Währungen** + +- Die Übersetzung von Währungen kann aufgrund der unterschiedlichen Formate, Konventionen und Umrechnungen eine Herausforderung darstellen. In der Regel sollten die Währungen mit der Quelle übereinstimmen. Sie können Ihre Landeswährung und die Umrechnung in Klammern hinzufügen, um dem Leser mehr Informationen zu bieten. +- Zu den wichtigsten Unterschieden bei der Schreibweise von Währungen in verschiedenen Sprachen gehören die Platzierung von Symbolen, Kommas und Dezimalpunkten, Abstände und Abkürzungen oder die Verwendung von Symbolen. + - Symbolplatzierung: $100 oder 100$ + - Dezimal-Kommas vs. Dezimal-Punkte: 100,50$ oder 100.50$ + - Abstände: 100$ oder 100 $ + - Abkürzungen oder Symbole: 100 $ oder 100 USD + +**Maßeinheiten** + +- Als allgemeine Regel gilt, dass die Maßeinheiten aus der Quelle beibehalten werden sollten. Wenn in Ihrem Land ein anderes System verwendet wird, können Sie die Umrechnung in Klammern angeben. +- Abgesehen von der Lokalisierung von Maßeinheiten sollte ebenfalls beachtet werden, wie unterschiedlich die Herangehensweise bei diesen Einheiten in den verschiedenen Sprachen ist. Der Hauptunterschied ist der Abstand zwischen der Zahl und der Einheit, der je nach Sprache unterschiedlich sein kann. Beispiele hierfür sind 100kB vs. 100 kB oder 50ºF vs. 50 ºF. + +## Zusammenfassung {#conclusion} + +Das Übersetzen von ethereum.org ist eine gute Gelegenheit, die verschiedenen Aspekte von Ethereum kennenzulernen. + +Versuchen Sie, beim Übersetzen langsam vorzugehen. Bleiben Sie locker und haben Sie Spaß dabei. + +Vielen Dank, dass Sie sich am Übersetzungsprogramm beteiligen und uns helfen, die Website einem breiteren Publikum zugänglich zu machen. Die Ethereum-Community ist global, und wir freuen uns, dass Sie ein Teil davon sind. diff --git a/public/content/translations/de/dao/index.md b/public/content/translations/de/dao/index.md new file mode 100644 index 00000000000..de8d801e5aa --- /dev/null +++ b/public/content/translations/de/dao/index.md @@ -0,0 +1,165 @@ +--- +title: Dezentrale autonome Organisationen (DAO) +description: Eine Übersicht über DAOs auf Ethereum +lang: de +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: Eine Repräsentation eines Abstimmungsvorschlags in einer DAO. +summaryPoint1: Communitys im Besitz ihrer Mitglieder ohne zentrale Führung. +summaryPoint2: Ein sicherer Weg, um mit Fremden im Internet zusammenzuarbeiten. +summaryPoint3: Ein sicherer Ort, um Mittel für einen bestimmten Zweck bereitzustellen. +--- + +## Was sind DAOs? {#what-are-daos} + +Eine DAO ist eine kollektiv geführte und durch die Blockchain verwaltete Organisation, die auf eine gemeinsame Mission hinarbeitet. + +DAOs ermöglichen es uns, mit Gleichgesinnten rund um den Globus zusammenzuarbeiten, ohne unser Vertrauen in das Wohlwollen einer Führungskraft setzen zu müssen, die die Fonds oder Operationen verwaltet. Es gibt keinen Geschäftsführer, der Geld nach Lust und Laune ausgeben kann, und keinen Finanzchef, der die Buchhaltung manipulieren kann. Stattdessen bestimmen in den Code eingebaute Blockchain-basierte Regeln, wie die Organisation arbeitet und wie die Mittel ausgegeben werden. + +Die Finanzverwaltung ist integriert und niemand kann ohne die Zustimmung der Gruppe darauf zugreifen. Entscheidungen werden durch Vorschläge und Abstimmungen geregelt, um sicherzustellen, dass jeder in der Organisation ein Mitspracherecht hat, und alles geschieht transparent On-Chain. + +## Warum brauchen wir DAOs? {#why-dao} + +Ein gemeinsam mit anderen Personen ein Unternehmen zu gründen und dafür Gelder und Finanzierungsmöglichkeiten bereitzustellen, benötigt viel Vertrauen in die Menschen, mit denen Sie arbeiten. Doch es ist alles andere als leicht, jemandem zu vertrauen, den Sie nur über das Internet kennen. Mit DAOs müssen Sie anderen in der Gruppe nicht vertrauen, sondern nur dem DAO-Code, der vollständig transparent und für jeden einsehbar ist. + +Das eröffnet viele neue Möglichkeiten für globale Zusammenarbeit und Koordination. + +### Ein Vergleich {#dao-comparison} + +| DAO | Ein herkömmliches Unternehmen | +| ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------- | +| In der Regel flache Strukturen und vollständig demokratisiert | In der Regel hierarchisch | +| Abstimmung durch die Gruppe erforderlich, um Veränderungen zu implementieren | Veränderungen können je nach Struktur durch einzelne Parteien verlangt oder durch offene Abstimmungen beschlossen werden | +| Nach der Stimmenauszählung wird das Ergebnis wird automatisch ohne vertrauenswürdige Dritte implementiert | Sofern Abstimmungen erlaubt sind, werden Stimmen intern gezählt und das Ergebnis muss manuell umgesetzt werden | +| Angebotene Dienste werden automatisch auf dezentrale Weise abgewickelt (etwa die Verteilung gemeinnütziger Mittel) | Erfordert die Abwicklung durch Personen oder zentral kontrollierte automatische Abläufe, die anfällig für Manipulation sind | +| Alle Aktivitäten sind transparent und vollständig öffentlich | Aktivitäten sind normalerweise unternehmensintern, begrenzte Einsicht für die Öffentlichkeit | + +### Beispiele für DAOs {#dao-examples} + +Für ein besseres Verständnis finden Sie im Folgenden Beispiele für den Einsatz einer DAO: + +- Eine Wohltätigkeitsorganisation – Sie können von jedem auf der Welt Spenden annehmen und darüber abstimmen, welche Zwecke finanziert werden sollen. +- Kollektives Eigentum – Sie können physische oder digitale Vermögenswerte erwerben und die Mitglieder können über deren Verwendung abstimmen. +- Unternehmen und Zuschüsse: Sie könnten einen Risikofonds gründen, der Investitionskapital bündelt und über zu unterstützende Unternehmen abstimmt. Das zurückgezahlte Geld könnte später unter den DAO-Mitgliedern neu verteilt werden. + +## Wie funktionieren DAOs? {#how-daos-work} + +Das Fundament einer DAO ist ihr Smart Contract, der das Regelwerk der Organisation festhält und die Schatzkammer verwaltet. Sobald ein Smart Contract auf Ethereum aktiv ist, können die Regeln ausschließlich per Abstimmung geändert werden. Vorgänge, die nicht durch die Regeln und Logik des Codes abgedeckt sind, schlagen fehl. Da auch die Finanzverwaltung durch den Smart Contract definiert ist, kann niemand das Geld ohne die Zustimmung der Gruppe ausgeben. Daher benötigen DAOs keine zentrale Instanz. Stattdessen trifft die Gruppe gemeinsam Entscheidungen, wobei Zahlungen bei positiver Abstimmung automatisch genehmigt werden. + +Möglich wird dies durch die Manipulationssicherheit veröffentlichter Smart Contracts. Da alle Vorgänge öffentlich sind, sind unbemerkte Änderungen am Code (also den Regeln der DAO) unmöglich. + + + Mehr zu Smart Contracts + + +## Ethereum und DAOs {#ethereum-and-daos} + +Ethereum ist aus einer Reihe von Gründen die perfekte Plattform für DAOs: + +- Der Ethereum-eigene Konsens ist so weit verbreitet und etabliert, dass Unternehmen dem Netzwerk vertrauen können. +- Der Code eines Smart Contracts kann nach seiner Veröffentlichung nicht mehr geändert werden, auch nicht von seinen Eigentümern. Damit kann die DAO nach den Regeln arbeiten, mit denen sie programmiert wurde. +- Smart Contracts können Geldmittel senden und empfangen. Andernfalls wäre für die Verwaltung der Geldmittel der Gruppe ein vertrauenswürdiger Vermittler erforderlich. +- Die Ethereum-Community ist bekannt dafür, dass es um Zusammenarbeit und nicht um Wettbewerb geht. Daher können sich bewährte Verfahren und Unterstützungssysteme schnell herausbilden. + +## DAO-Verwaltung {#dao-governance} + +Um DAOs zu verwalten, sind vorher zahlreiche Überlegungen notwendig – etwa wie Abstimmungen und Vorschläge funktionieren sollen. + +### Delegation {#governance-delegation} + +Die Delegation ist die DAO-Variante repräsentativer Demokratie. Tokenbesitzer delegieren Stimmen an Nutzer, die sich selbst nominieren und sich verpflichten, auf dem aktuellen Stand zu bleiben und das Protokoll zu betreuen. + +#### Bekanntes Beispiel {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) – Um sie zu vertreten, können ENS-Besitzer ihre Stimmen an engagierte Communitymitglieder delegieren. + +### Automatische Transaktionsverwaltung {#governance-example} + +In vielen DAOs werden Transaktionen automatisch ausgeführt, wenn eine Mehrheit der Mitglieder zustimmt. + +#### Bekanntes Beispiel {#governance-example} + +[Nouns](https://nouns.wtf) – Sofern die Gründer kein Veto einlegen, wird eine Transaktion in Nouns DAO automatisch ausgeführt, sofern ein Stimmquorum erreicht wird und die Mehrheit zustimmt. + +### Multisig-Verwaltung {#governance-example} + +Zwar können DAOs Tausende Mitglieder haben, doch die Gelder befinden sich meist in einer Wallet, auf die 5–20 aktive Communitymitglieder Zugriff haben und die in der Regel vertrauenswürdig und öffentlich bekannt sind (öffentliche Identitäten, die der Community bekannt sind). Nach einer erfolgreichen Abstimmung führen die Multisig-Unterzeichner den Community-Willen aus. + +## DAO-Gesetze {#dao-laws} + +Wyoming hat 1977 die LCC eingeführt, die Unternehmer schützt und ihre Haftung beschränkt. Kürzlich hat der Bundesstaat außerdem ein DAO-Gesetz verabschiedet, das den Rechtsstatus von DAOs festlegt. Aktuell verfügen (in den USA) Wyoming, Vermont und die Jungferninseln über eine Form von DAO-Gesetzen. + +### Bekanntes Beispiel {#law-example} + +[CityDAO](https://citydao.io) – CityDAO hat durch Wyomings DAO-Gesetz 40 Hektar Land in der Nähe des Yellowstone Nationalparks gekauft. + +## DAO-Mitgliedschaft {#dao-membership} + +Für die Mitgliedschaft in einer DAO gibt es verschiedene Modelle. Über die Mitgliedschaft wird festgelegt, wie Abstimmungen und andere wesentliche Bereiche der DAO funktionieren. + +### Token-basierte Mitgliedschaft {#token-based-membership} + +In der Regel völlig frei von Berechtigungen, je nach verwendetem Token. Meistens können diese Governance-Token an einer dezentralen Börse berechtigungsfrei gehandelt werden. Andere müssen erworben werden, durch die Bereitstellung liquider Mittel oder eine andere Form des „Arbeitsnachweises“. In jedem Fall gewährt der Besitz des Tokens Zugang zur Abstimmung. + +_In der Regel werden sie zur Steuerung umfangreicher dezentraler Protokolle und/oder von Token selbst verwendet._ + +#### Bekanntes Beispiel {#token-example} + +[MakerDAO](https://makerdao.com) – MakerDAOs Token MKR wird an zahlreichen dezentralisierten Börsen angeboten, sodass jeder Tokens und damit Stimmrechte für die zukünftige Ausrichtung von Maker kaufen kann. + +### Anteilsbasierte Mitgliedschaft {#share-based-membership} + +Anteilsbasierte DAOs sind stärker reglementiert, aber immer noch recht offen. Alle potenziellen Mitglieder können Anträge stellen, um der DAO beizutreten. Dafür wird meist eine Gegenleistung in Form von Tokens oder geleisteter Arbeit angeboten. Anteile stehen für direkte Stimmrechte und Eigentum. Mitglieder können jeder aussteigen und erhalten einen proportionalen Anteil an der Schatzkammer. + +_Findet in der Regel Anwendung für kleinere, auf den Menschen ausgerichtete Organisationen wie Wohltätigkeitsorganisationen, Gewerkschaften und Investmentclubs. Sie können auch Protokolle und Token regeln._ + +#### Bekanntes Beispiel {#share-example} + +[MolochDAO](http://molochdao.com/) – MolochDAO ist auf die Finanzierung von Ethereum-Projekten ausgerichtet. Gefordert wird ein Antrag auf Mitgliedschaft, damit die Gruppe beurteilen kann, ob Interessenten über das nötige Fachwissen und Kapital verfügen, um fundierte Entscheidungen über potenzielle Zuschussempfänger zu treffen. Es ist nicht möglich, den Zugang zur DAO einfach auf dem freien Markt zu kaufen. + +### Reputationsbasierte Mitgliedschaft {#reputation-based-membership} + +Reputation ist ein Nachweis der Teilnahme und gewährt Stimmrechte im DAO. Im Gegensatz zur token- oder anteilsbasierten Mitgliedschaft übertragen reputationsbasierte DAOs keine Vermögenswerte an Mitwirkende. Reputation kann weder gekauft, übertragen noch delegiert werden. DAO-Mitglieder können Reputation nur durch Teilnahme erwerben. On-Chain-Abstimmungen sind frei zugänglich. Jedes potenzielle Mitglied kann einen Antrag auf Beitritt zur DAO und Vergütung seiner Mitwirkung in Form von Reputation und Token stellen. + +_Typischerweise für die dezentrale Entwicklung und Steuerung von Protokollen und dApps verwendet, aber auch gut geeignet für eine Vielzahl von Organisationen wie Wohltätigkeitsorganisationen, Arbeiterkollektive, Investmentclubs usw._ + +#### Bekanntes Beispiel {#reputation-example} + +[DXdao](https://DXdao.eth.link) – DXdao ist ein globales und souveränes Kollektiv, das seit 2019 dezentralisierte Protokolle und Anwendungen entwickelt und administriert. Zur Koordinierung und Verwaltung der Geldmittel wird auf eine reputationsbasierte Administration gesetzt und ein holografischer Konsens verwendet. Somit ist es nicht möglich, sich die Entscheidungsmacht über die Organisation zu erkaufen. + +## DAO – Beitritt und Gründung {#join-start-a-dao} + +### Beitritt zu einer DAO {#join-a-dao} + +- [DAOs der Ethereum-Community](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [DAO-Liste von DAOHaus](https://app.daohaus.club/explore) +- [DAO-Liste von tally.xyz](https://www.tally.xyz) + +### Gründung einer DAO {#start-a-dao} + +- [Eine DAO mit DAOHaus gründen](https://app.daohaus.club/summon) +- [Starte eine Governor DAO mit Tally](https://www.tally.xyz/add-a-dao) +- [Eine von Aragon betriebene DAO gründen](https://aragon.org/product) +- [Eine Kolonie gründen](https://colony.io/) +- [Erstellen einer DAO mit dem holografischen Konsens von DAOstack](https://alchemy.daostack.io/daos/create) + +## Weiterführende Informationen {#further-reading} + +### DAO-Artikel {#dao-articles} + +- [Was ist eine DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) +- [Das DAO-Handbuch](https://daohandbook.xyz) +- [Haus der DAOs](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) +- [Was ist eine DAO und wofür ist sie da?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) +- [Wie man eine DAO-basierte digitale Community gründet](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) +- [Was ist eine DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) +- [Was ist holografischer Konsens?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) – [DAOstack](https://daostack.io/) +- [DAOs sind keine Unternehmen: Wo die Dezentralisierung in autonomen Organisationen wichtig ist von Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) +- [DAOs, DACs, DAs und mehr: Ein unvollständiger Terminologie-Guide](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Ethereum Blog](https://blog.ethereum.org) + +### Videos {#videos} + +- [Was ist eine DAO in der Kryptowirtschaft?](https://youtu.be/KHm0uUPqmVE) +- [Kann eine DAO eine Stadt bauen?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/public/content/translations/de/decentralized-identity/index.md b/public/content/translations/de/decentralized-identity/index.md new file mode 100644 index 00000000000..924a9f8fc63 --- /dev/null +++ b/public/content/translations/de/decentralized-identity/index.md @@ -0,0 +1,185 @@ +--- +title: Dezentralisierte Identität +description: Was ist eine dezentralisierte Identität und warum ist sie wichtig? +lang: de +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: /eth-gif-cat.png +summaryPoint1: Traditionelle Identitätssysteme haben die Ausgabe, Wartung und Kontrolle Ihrer Identifikatoren zentralisiert. +summaryPoint2: Eine dezentralisierte Identität beseitigt die Abhängigkeit von zentralisierten Dritten. +summaryPoint3: Dank Krypto haben Benutzer jetzt die Werkzeuge, um ihre eigenen Identifikatoren und Bescheinigungen wieder auszugeben, zu halten und zu kontrollieren. +--- + +Identität untermauert praktisch jeden Aspekt Ihres heutigen Lebens. Die Nutzung von Online-Diensten, die Eröffnung eines Bankkontos, die Teilnahme an Wahlen, der Kauf von Immobilien, die Sicherung von Arbeit – all dies erfordert den Nachweis Ihrer Identität. + +Traditionelle Identitätsmanagementsysteme verlassen sich jedoch seit langem auf zentralisierte Vermittler, die Ihre Identifikatoren und [Attestierungen](#what-are-attestations) ausstellen, halten und kontrollieren. Das bedeutet, dass Sie Ihre identitätsbezogenen Informationen nicht kontrollieren können und nicht entscheiden können, wer Zugriff auf personenbezogene Daten (PII) hat, und wie viel Zugriff diese Parteien haben. + +Um diese Probleme zu lösen, haben wir dezentrale Identitätssysteme, die auf öffentlichen Blockchains wie Ethereum basieren. Eine dezentralisierte Identität erlaubt es den Menschen, ihre identitätsbezogenen Informationen zu verwalten. Durch dezentralisierte Identitätslösungen können _Sie_ Identifikatoren erschaffen und Ihre Attestierungen sowohl beanspruchen als auch über sie verfügen, ohne dabei auf zentrale Autoritäten, wie Dienstleister oder Regierungen, vertrauen zu müssen. + +## Was ist Identität? {#what-is-identity} + +Identität bedeutet das Selbstempfinden eines Individuums, definiert durch einzigartige Charaktereigenschaften. Identität bezieht sich auf ein _Individuum_, d. h. eine eigenständige Person. Identität könnte sich auch auf andere nicht-menschliche Entitäten, wie eine Organisation oder Behörde, beziehen. + +## Was sind Identifikatoren? {#what-are-identifiers} + +Ein Identifikator ist eine Information, die als Attribut einer bestimmten Identität oder von Identitäten fungiert. Beispiele für allgemeine Identifikatoren: + +- Name +- Sozialversicherungsnummer/Steuernummer +- Mobiltelefonnummer +- Geburtsdatum und -ort +- Zugangsdaten für eine digitale Identifikation, z. B. E-Mail-Adressen, Benutzernamen, Avatare + +Diese traditionellen Beispiele von Identifikatoren werden von zentralen Stellen herausgegeben, gehalten und kontrolliert. Sie brauchen die Erlaubnis Ihrer Regierung, um Ihren Namen zu ändern, oder die einer Social-Media-Plattform, um Ihren Benutzernamen zu ändern. + +## Was ist eine Attestierung? {#what-are-attestations} + +Eine Attestierung ist ein Anspruch einer Entität gegenüber einer anderen Entität. Wenn Sie in den Vereinigten Staaten leben, bestätigt der Führerschein des Fahrzeugministeriums (eine Entität), dass Sie (eine andere Entität) berechtigt sind, ein Auto zu fahren. + +Attestierungen unterscheiden sich von Identifikatoren. Eine Attestierung _enthält_ Identifikatoren für den Verweis auf eine bestimmte Identität und stellt einen Anspruch gegenüber einem Attribut im Zusammenhang mit dieser Identität. Ihr Führerschein hat also Identifikatoren (Name, Geburtsdatum, Adresse), ist aber zugleich auch die Attestierung Ihres gesetzlichen Fahrrechts. + +### Was sind dezentralisierte Identifikatoren? {#what-are-decentralized-identifiers} + +Klassische Identifikatoren, wie beispielsweise Ihr bürgerlicher Name oder Ihre E-Mail-Adresse, sind von Dritten abhängig - von Regierungen und E-Mail-Anbietern. Dezentralisierte Identifikatoren (DIDs) sind anders - sie werden nicht von einer zentralen Stelle ausgegeben, verwaltet oder kontrolliert. + +Dezentralisierte Identifikatoren werden von Individuen ausgegeben, gehalten und kontrolliert. Ein [Ethereum-Konto](/developers/docs/accounts/) ist ein Beispiel für einen dezentralisierten Identifikator. Sie haben die Möglichkeit, so viele Konten zu erstellen, wie Sie möchten, ohne dass Sie eine Erlaubnis von Dritten benötigen und ohne dass diese Konten in einem zentralen Register gespeichert werden müssen. + +Dezentralisierte Identifikatoren werden auf sogenannten dezentralen Ledgern (Blockchains) oder Peer-to-Peer-Netzwerken gespeichert. Das macht DIDs [weltweit eindeutig, auflösbar mit hoher Verfügbarkeit und kryptographisch verifizierbar](https://w3c-ccg.github.io/did-primer/). Ein dezentralisierter Identifikator kann mit verschiedenen Entitäten verknüpft werden, darunter Personen, Organisationen oder staatliche Einrichtungen. + +## Was ermöglicht dezentralisierte Identifikatoren? {#what-makes-decentralized-identifiers-possible} + +### 1. Öffentliche Schlüssel-Infrastruktur (Public Key Infrastructure, PKI) {#public-key-infrastructure} + +Öffentliche Schlüssel-Infrastruktur (PKI) ist ein Maß zur Informationssicherheit, die einen [öffentlichen Schlüssel](/glossary/#public-key) und [einen privaten Schlüssel](/glossary/#private-key) für eine Entität generiert. Öffentliche Schlüssel-Kryptografie wird in Blockchain-Netzwerken verwendet, um Benutzeridentitäten zu authentifizieren und das Eigentum an digitalen Gütern nachzuweisen. + +Einige dezentralisierte Identifikatoren, wie z. B. ein Ethereum-Konto, haben öffentliche und private Schlüssel. Der öffentliche Schlüssel identifiziert den Controller des Kontos, während die privaten Schlüssel Nachrichten für dieses Konto signieren und entschlüsseln können. Die öffentliche Schlüssel-Infrastruktur stellt Beweise zur Verfügung, die zur Authentifizierung von Entitäten und zur Verhinderung von Identitätsdiebstahl und Nachahmung der Entitäten dient. Dabei werden [Kryptografische Unterschriften](https://andersbrownworth.com/blockchain/public-private-keys/) genutzt, um alle Ansprüche zu verifizieren. + +### 2. Dezentralisierte Datenspeicher {#decentralized-datastores} + +Eine Blockchain dient als überprüfbares Datenregister: ein offenes, dezentralisiertes Informationsarchiv, welches in keiner Weise Vertrauen benötigt. Die Existenz öffentlicher Blockchains macht es überflüssig, Identifikatoren in zentralisierten Registern zu speichern. + +Wenn jemand die Gültigkeit eines dezentralen Identifikators bestätigen muss, kann er den zugehörigen öffentlichen Schlüssel in der Blockchain finden. Dies unterscheidet sich von traditionellen Identifikatoren, die eine Authentifizierung durch Dritte erfordern. + +## Wie ermöglichen dezentralisierte Identifikatoren und Attestierungen dezentralisierte Identitäten? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} + +Die dezentralisierte Identität repräsentiert die Vorstellung, dass identitätsbezogene Informationen selbstkontrolliert, privat und übertragbar sein sollten. Dabei stellen dezentralisierte Identifikatoren und Attestierungen die Grundbausteine dar. + +Im Zusammenhang mit dezentralisierten Identitäten sind Attestierungen (auch bekannt als [nachprüfbare Berechtigungsnachweise](https://www.w3.org/TR/vc-data-model/)) manipulationssichere, kryptografisch überprüfbare Angaben des Emittenten. Jede Attestierung oder jeder nachprüfbarer Berechtigungsnachweis einer Entität (z. B. einer Organisation) wird mit ihrer DID in Zusammenhang gebracht. + +Da DIDs auf der Blockchain gespeichert sind, kann jeder die Gültigkeit einer Attestierung überprüfen, indem man die DID des Emittenten auf Ethereum überprüft. Im Grunde funktioniert die Blockchain von Ethereum wie ein globales Verzeichnis, das die Überprüfung von DIDs, die mit bestimmten Entitäten verbunden sind, ermöglicht. + +Dezentralisierte Identifikatoren sind der Grund dafür, dass Attestierungen selbstkontrolliert und überprüfbar sind. Auch wenn der Emittent nicht mehr existiert, wird der Inhaber immer einen Nachweis über die Herkunft und Gültigkeit der Attestierung haben. + +Dezentralisierte Identifikatoren sind auch entscheidend für den Schutz von persönlichen Daten mittels dezentralisierter Identität. Zum Beispiel, wenn eine Person einen Nachweis über eine Attestierung (z. B. Führerschein) einreicht, müssen die Verifizierenden die Gültigkeit der Informationen nicht überprüfen. Stattdessen benötigt der Verifizierende nur kryptografische Garantien über die Echtheit der Attestierung und die Identität der emittierenden Organisation, um festzustellen, ob der Nachweis gültig ist. + +## Attestierungen im Zusammenhang mit einer dezentralisierten Identität {#types-of-attestations-in-decentralized-identity} + +Wie Informationen zu Attestierungen gespeichert und in einem auf Ethereum basierenden Ökosystem der Identität abgerufen werden, unterscheidet sich vom traditionellen Identitätsmanagement. Hier finden Sie einen Überblick einiger Ansätze zur Ausgabe, Speicherung und der Überprüfung von Attestierungen in dezentralisierten Identitätssystemen: + +### Off-Chain-Attestierungen {#off-chain-attestations} + +Eine Sorge bei der On-Chain-Speicherung von Attestierungen besteht darin, dass sie möglicherweise Informationen enthalten, die Einzelpersonen privat halten möchten. Diese öffentliche Art der Ethereum-Blockchain macht sie zum Speichern solcher Attestierungen wenig attraktiv. + +Die Lösung besteht darin, Attestierungen auszustellen, die von Benutzern „off-chain" in digitalen Wallets gehalten werden, aber mit der DID des Ausstellers unterschrieben werden, die „on-chain" gespeichert sind. Diese Attestierungen sind als sogenannte [JSON Web Token](https://en.wikipedia.org/wiki/JSON_Web_Token) kodiert und enthalten die digitale Signatur des Emittenten. Das ermöglicht eine einfache Überprüfung von Off-Chain-Ansprüchen. + +Hier ist ein hypothetisches Szenario zur Erklärung von Off-Chain-Attestierungen: + +1. Eine Universität (der Emittent) stellt eine Attestierung aus (ein digitales akademisches Zertifikat), unterzeichnet sie mit ihren Schlüsseln und gibt sie an Bob (den Identitätseigentümer) aus. + +2. Bob bewirbt sich für eine Stelle und möchte seine akademischen Qualifikationen gegenüber einem Arbeitgeber nachweisen. Aus diesem Grund teilt er seine Attestierung mit Hilfe seiner mobilen Wallet. Das Unternehmen (Verifizierender) kann dann die Gültigkeit der Attestierung überprüfen, indem es die Gültigkeit der DID des Emittenten (d. h. ihres öffentlichen Schlüssels auf Ethereum) bestätigt. + +### Off-Chain-Attestierungen mit dauerhaftem Zugriff {#offchain-attestations-with-persistent-access} + +Bei dieser Regelung werden Attestierungen in JSON-Dateien umgewandelt und off-chain gespeichert (idealerweise mit einem [dezentralen Cloud-Speicher](/developers/docs/storage/), einer Plattform wie IPFS oder Swarm). Ein [Hash](/glossary/#hash) der JSON-Datei wird jedoch on-chain gespeichert und über eine On-Chain-Datenerfassung mit einer DID verbunden. Die dazugehörige DID könnte entweder die des Emittenten der Attestierung oder des Empfängers sein. + +Dieser Ansatz macht es möglich, dass Attestierungen eine Blockchain-basierte Langlebigkeit erlangen, wobei Informationen zu Ansprüchen verschlüsselt und überprüfbar bleiben. Er erlaubt auch eine selektive Offenlegung, da der Inhaber des privaten Schlüssels die Informationen entschlüsseln kann. + +### On-Chain-Attestierungen {#onchain-attestations} + +On-Chain-Attestierungen werden in [Smart Contracts](/developers/docs/smart-contracts/) auf der Ethereum-Blockchain gehalten. Der Smart Contract (als Datenerfassung fungierend) ordnet eine Attestierung einem zugehörigen dezentralisierten On-Chain-Identifikator (einem öffentlichen Schlüssel) zu. + +Im Folgenden zeigt ein Beispiel, wie On-Chain-Attestierungen in der Praxis funktionieren könnten: + +1. Ein Unternehmen (XYZ Corp) plant, Eigentumsanteile mit einem Smart Contract zu verkaufen, möchte aber nur Käufer, die eine Hintergrundüberprüfung abgeschlossen haben. + +2. XYZ Corp kann das Unternehmen Hintergrundüberprüfungen durchführen lassen, um On-Chain-Attestierungen auf Ethereum auszugeben. Mit dieser Attestierung wird bestätigt, dass eine Person die Hintergrundüberprüfung bestanden hat, ohne dass persönliche Daten freigegeben werden. + +3. Durch den Verkauf von Aktien mittels Smart Contracts kann man den Datenerfassungsvertrag auf die Identität von geprüften Käufern hin untersuchen. Das macht es möglich, mit dem Smart Contract zu bestimmen, wer Aktien kaufen darf oder nicht. + +### Seelengebundene Token und Identität {#soulbound} + +[Seelengebundene Token](https://vitalik.ca/general/2022/01/26/soulbound.html) (nicht übertragbare NFTs) können verwendet werden, um Informationen zu sammeln, die eindeutig auf eine bestimmte Wallet zutreffen. Dies erzeugt eine einzigartige On-Chain-Identität, die an eine bestimmte Ethereum-Adresse gebunden ist, die Token enthalten könnte, welche wiederum bestimmte Leistungen (z. B. Abschluss eines bestimmten Online-Kurses oder das Bestehen eines Schwellenwertes in einem Spiel) oder eine Gemeinschaftsbeteiligung darstellen. + +## Vorteile dezentralisierter Identitäten {#benefits-of-decentralized-identity} + +1. Dezentralisierte Identitäten erhöhen die individuelle Kontrolle der Identifizierung von Informationen. Dezentralisierte Identifikatoren und Attestierungen können überprüft werden, ohne sich auf zentralisierte Behörden und Dienste Dritter zu verlassen. + +2. Dezentralisierte Identitätslösungen benötigen kein Vertrauen. Sie stellen eine nahtlose und die Privatsphäre schützende Methode zur Überprüfung und Verwaltung von Benutzeridentitäten dar. + +3. Dezentralisierte Identitäten nutzten die Blockchain-Technologie, die Vertrauen zwischen verschiedenen Parteien schafft und kryptografische Garantien bietet, um die Gültigkeit von Attestierungen nachzuweisen. + +4. Dezentralisierte Identitäten machen Identitätsdaten übertragbar. Benutzer speichern Attestierungen und Identifikatoren in mobilen Wallets und können sie mit jeder Partei ihrer Wahl teilen. Dezentralisierte Identifikatoren und Attestierungen sind nicht in der Datenbank der emittierenden Organisation gesperrt. + +5. Dezentralisierte Identitäten sollten gut mit den sich entwickelnden Null-Wissen-Technologien funktionieren, denn sie ermöglichen es Personen, Eigentum oder bestimmte Aktionen nachzuweisen, ohne dabei aufzudecken, was sie genau besitzen bzw. getan haben. Dies könnte sich zu einer schlagkräftigen Möglichkeit entwickeln, Vertrauen und Privatsphäre für bestimmte Anwendungen zu verbinden, wie z. B. Abstimmungsverhalten. + +6. Dezentralisierte Identitäten ermöglichen es Anti-Sybil-Mechanismen, zu identifizieren, ob eine Einzelperson vorgibt, mehrere Menschen zu sein, um ein bestimmtes System auszuspielen oder zu spammen. + +## Dezentralisierte Nutzungsmöglichkeiten von Identitäten {#decentralized-identity-use-cases} + +Dezentralisierte Identitäten haben viele potenzielle Nutzungsmöglichkeiten: + +### 1. Universale Log-Ins {#universal-dapp-logins} + +Dezentralisierte Identitäten können dazu beitragen, Passwort-basierte Logins durch [dezentrale Authentifizierung](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/) zu ersetzen. Dienstleister können Attestierungen an Benutzer verteilen, welche in einer Ethereum-Wallet gespeichert werden. Eine Beispielattestierung wäre ein [NFT](/nft/), welcher dem Inhaber Zugriff auf eine Online-Community gewährt. + +Eine [Anmeldung über Ethereum](https://login.xyz/) würde es Servern ermöglichen, das Ethereum-Konto des Benutzers zu bestätigen und die erforderliche Attestierung von seiner Account-Adresse einzuholen. Das bedeutet, dass Benutzer auf Plattformen und Websites zugreifen können, ohne sich lange Passwörter merken und das Online-Erlebnis für Benutzer verbessern zu müssen. + +### 2. KYC-Authentifizierung {#kyc-authentication} + +Die Nutzung vieler Online-Dienste erfordert von Einzelpersonen die Bereitstellung von Attestierungen und Berechtigungsnachweisen, wie zum Beispiel einen Führerschein oder nationalen Reisepass. Dieser Ansatz ist jedoch problematisch, da private Nutzerinformationen kompromittiert werden und Dienstleister die Echtheit der Attestierung nicht überprüfen können. + +Dezentralisierte Identitäten erlauben es Unternehmen, herkömmliche [Know-Your-Customer (KYC)](https://de.wikipedia.org/wiki/Know_your_customer)-Prozesse zu überspringen und Benutzeridentitäten mittels überprüfbarer Zugangsdaten zu authentifizieren. Dies senkt die Kosten des Identitätsmanagements und verhindert die Verwendung gefälschter Dokumentationen. + +### 3. Abstimmungen und Online-Communtitys {#voting-and-online-communities} + +Online-Abstimmungen und Social Media sind zwei neuartige Anwendungen für dezentralisierte Identitäten. Online-Wahlsysteme sind manipulationsanfällig, insbesondere wenn böswillige Akteure falsche Identitäten zur Abstimmung erschaffen. Einzelpersonen zu bitten, On-chain-Attestierungen vorzulegen, kann die Integrität von Online-Abstimmungsverfahren verbessern. + +Dezentralisierte Identitäten können dabei helfen, Online-Communitys zu schaffen, die frei von gefälschten Konten sind. Zum Beispiel müsste jeder Benutzer seine Identität mittels eines On-Chain-Identitätssystems, wie dem Ethereum Name Service, authentifizieren, womit die Gefahr durch Bots reduziert wird. + +### 4. Anti-Sybil-Schutz {#sybil-protection} + +Sybil-Angriffe beziehen sich auf einzelne Menschen, die das System glauben lassen wollen, sie seien mehrere Menschen, um ihren Einfluss zu erhöhen. [Zuschussgebende Anwendungen](https://gitcoin.co/grants/), die [quadratisches Abstimmen](https://www.radicalxchange.org/concepts/plural-voting/) nutzen, sind durch diese Sybil-Angriffe gefährdet, da der Wert des Zuschusses erhöht wird, wenn mehr Individuen für ihn stimmen. Dies wiederum spornt Nutzer an, ihre Beiträge auf viele Identitäten zu verteilen. Dezentralisierte Identitäten helfen, dies zu verhindern, indem sie jeden Teilnehmer beweisen lassen, dass sie wirklich menschlich sind, auch wenn dabei meist keine spezifischen privaten Informationen verlangt werden. + +## Dezentrale Identitäten verwenden {#use-decentralized-identity} + +Es gibt viele ehrgeizige Projekte, die Ethereum als Grundlage für dezentrale Identitätslösungen verwenden: + +- **[Ethereum Name Service (ENS)](https://ens.domains/)** - _Ein dezentralisiertes Namenssystem für maschinenlesbare On-chain-Identifikatoren, wie Ethereum Wallet-Adressen, Content-Hashes und Metadaten._ +- **[SpruceID](https://www.spruceid.com/)** - _Ein dezentralisiertes Identitätsprojekt, das es Benutzern erlaubt, digitale Identitäten mit Hilfe von Ethereum-Konten und ENS-Profilen zu kontrollieren, statt sich auf Dienste Dritter zu verlassen._ +- **[Ethereum Attestation Service (EAS)](https://attest.sh/)** - _Ein dezentralisiertes Ledger/Protokoll zum Erstellen von On-Ketten- oder Off-Kettenbescheinigungen über irgendetwas._ +- **[Proof of Humanity](https://www.proofofhumanity.id)** - _Proof of Humanity (Beweis des Menschseins) ist ein auf Ethereum basierendes System zur Überprüfung der sozialen Identität._ +- **[BrightID](https://www.brightid.org/)**- _Ein dezentralisiertes quelloffenes Netzwerk zur sozialen Identität, das versucht, die Identitätsüberprüfung durch die Schaffung und Analyse eines sozialen Diagramms zu reformieren._ +- **[Personennachweis-Passport](https://proofofpersonhood.com/)** - _Ein dezentraler digitaler Identitätsaggregator._ + +## Weiterführende Informationen {#further-reading} + +### Artikel {#articles} + +- [Blockchain-Nutzungsfälle: Blockchain in digitaler Identität](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_> +- [Was ist Ethereum ERC725? Eigenständiges Identitätsmanagement in der Blockchain](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Sam-Stadt_ +- [Wie die Blockchain das Problem der digitalen Identität lösen könnte](https://time.com/6142810/proof-of-humanity/)— _Andrew R. Chow_ +- [Was sind dezentralisierte Identitäten und warum sollten sie Sie interessieren?](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ + +### Videos {#videos} + +- [Dezentralisierte Identität (Bonus Livestream Session)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Ein großartiges Erklärungsvideo über dezentrale Identität von Andreas Antonopolous_ +- [Anmelden mit Ethereum und dezentralisierter Identität mit Ceramic, IDX, React, und 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _YouTube-Tutorial zum Aufbau eines Identitätsmanagementsystems zum Erstellen, Lesen und Aktualisieren des Profils von Benutzern mit ihrer Ethereum-Wallet von Nader Dabit_ +- [BrightID - Dezentralisierte Identität auf Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _Podcast Bankless Episode über BrightID, eine dezentrale Identitätslösung für Ethereum_ +- [Das Off-Chain-Internet: Dezentralisierte Identität & Überprüfbare Berechtigungsnachweise](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — EthDenver 2022 Präsentation von Evin McMullen + +### Communities {#communities} + +- [ERC-725 Allianz auf GitHub](https://github.com/erc725alliance) — _Unterstützer des ERC725-Standards zur Identitätsverwaltung in der Ethereum-Blockchain_ +- [SpruceID Discord Server](https://discord.com/invite/Sf9tSFzrnt) — _Community für Enthusiasten und Entwickler, die am Anmelden mit Ethereum arbeiten_ +- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Eine Community von Entwicklern, die zum Aufbau eines Rahmens für überprüfbare Daten für Anwendungen beitragen_ diff --git a/public/content/translations/de/defi/index.md b/public/content/translations/de/defi/index.md new file mode 100644 index 00000000000..9c6eb76739a --- /dev/null +++ b/public/content/translations/de/defi/index.md @@ -0,0 +1,352 @@ +--- +title: Dezentrales Finanzwesen (DeFi) +description: Eine Übersicht über DeFi auf Ethereum +lang: de +template: use-cases +emoji: ":money_with_wings:" +image: /use-cases/defi.png +alt: Ein ETH-Logo aus Legosteinen. +sidebarDepth: 2 +summaryPoint1: Eine globale, offene Alternative zum aktuellen Finanzsystem. +summaryPoint2: Produkte, mit denen Sie Geld ausleihen, sparen, investieren, Handel treiben können und mehr. +summaryPoint3: Die Grundlage bildet Open-Source-Technologie, mit der jeder programmieren kann. +--- + +DeFi ist ein offenes und globales Finanzsystem für das Zeitalter des Internets – eine Alternative zu einem undurchsichtigen und streng kontrollierten System, das durch jahrzehntealte Infrastruktur und Prozesse zusammengehalten wird. Es bietet Kontrollmöglichkeiten und Transparenz über Ihr Geld. Zudem ermöglicht es Zugang zu globalen Märkten und Alternativen zu lokalen Währungen oder Banksystemen. DeFi-Produkte öffnen Finanzdienstleistungen für jeden mit einer Internetverbindung. Größtenteils sind sie im Besitz von den eigenen Benutzern, die auch die Verwaltung übernehmen. Bis dato sind viele Milliarden Dollar Kryptowährung durch DeFi-Anwendungen geflossen und das wird jeden Tag mehr. + +## Was ist DeFi? {#what-is-defi} + +DeFi ist ein Sammelbegriff für Finanzprodukte und Services, die für alle zugänglich sind, die Ethereum nutzen können – also jeder mit einer Internetverbindung. Mit DeFi sind Märkte immer offen. In diesem System gibt es keine zentralen Behörden, die Zahlungen blockieren oder Zugang zu irgendetwas verweigern können. Dienste, die früher langsam und wegen der erforderlichen menschlichen Interaktionen fehleranfällig waren, sind jetzt sicherer, da sie durch öffentlichen Code ausgeführt werden, den jeder prüfen und hinterfragen kann. + +Es gibt eine boomende Kryptowirtschaft, in der Sie Assets leihen und verleihen können, lang- und kurzfristige Positionen einnehmen, Zinsen verdienen und vieles mehr. Beispielsweise setzen Krypto-versierte Argentinier auf DeFi, um den Folgen der Hyperinflation zu entkommen. Und auch Unternehmen haben begonnen, ihre Mitarbeiter in Echtzeit via Krypto zu bezahlen. Es wurden sogar Darlehen im Wert von Millionen Dollar aufgenommen und bezahlt, ohne dass für die Beteiligten eine persönliche Identifizierung erforderlich gewesen wäre. + + + +## DeFi vs. das traditionelle Finanzsystem {#defi-vs-tradfi} + +Um das wahre Potenzial von DeFi erkennen zu können, ist es wichtig, die aktuellen Probleme des traditionellen Finanzsystems zu kennen. + +- Manchen Menschen ist die Möglichkeit zur Einrichtung eines Bankkontos oder zur Nutzung von Finanzdienstleistungen verwehrt. +- Der mangelnde Zugang zu Finanzdienstleistungen kann dazu führen, dass Menschen nicht aus ihrer Arbeitslosigkeit herauskommen. +- Traditionelle Finanzdienstleistungen können der Grund sein, dass Sie nicht bezahlt werden können. +- Ihre persönlichen Daten sind praktisch eine versteckte Gebühr für Finanzdienstleistungen. +- Regierungen und zentralisierte Institutionen können Märkte willkürlich schließen. +- Handelszeiten am Finanzmarkt sind häufig auf die Geschäftszeiten bestimmter Zeitzonen beschränkt. +- Transfers von Geldmitteln können aufgrund der Prozesse, die Interaktionen von Personen umfassen, Tage dauern. +- Bei vielen Finanzdienstleistungen sind oftmals Vermittler (z. B. Broker) zwischengeschaltet, für die Gebühren anfallen können. + +### Ein Vergleich {#defi-comparison} + +| DeFi | Traditionelles Finanzsystem | +| ------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Sie halten Ihr Geld selbst. | Ihr Geld liegt bei Dritten. | +| Sie kontrollieren, wofür Ihr Geld verwendet wird und wohin es fließt. | Sie müssen Unternehmen/Banken vertrauen, dass sie Ihr Geld nicht schlecht verwalten und beispielsweise Kredite an riskante Kreditnehmer vergeben. | +| Überweisungen erfolgen in wenigen Minuten. | Überweisungen können aufgrund von manuellen Prozessen Tage dauern. | +| Transaktionstätigkeiten erfolgen pseudonymisiert. | Finanzielle Vorgänge sind eng an Ihre Identität gekoppelt. | +| DeFi ist offen für jeden. | Sie müssen sich bewerben, um Finanzdienstleistungen in Anspruch nehmen zu können. | +| Märkte sind rund um die Uhr geöffnet. | Märkte schließen, da es Beschränkungen für die Arbeitszeit von Angestellten gibt. | +| Basiert auf dem Transparenzprinzip – jeder kann die Daten eines Produktes einsehen und überprüfen, wie das System funktioniert. | Finanzinstitute sind wie geschlossene Bücher: Es ist nicht möglich, ihre Kredithistorie, Aufzeichnungen der verwalteten Vermögenswerte oder Ähnliches einzusehen. | + + + DeFi-Apps entdecken + + +## Alles begann mit Bitcoin... {#bitcoin} + +Bitcoin war in vielerlei Hinsicht die erste DeFi-Anwendung. Mit Bitcoin können Sie den Wert selbst besitzen, kontrollieren und überall auf der Welt hinsenden. Bitcoin bietet vielen Menschen, die sich gegenseitig nicht vertrauen, die Möglichkeit, eine Einigung über einen aktuellen Transaktionsstatus und Stand aller Konten zu erzielen, ohne dass dafür ein vertrauenswürdiger Vermittler vonnöten ist. Bitcoin ist offen für jeden und niemand ist befugt, Regeln zu ändern. Die Regeln von Bitcoin, wie die Knappheit und Offenheit, sind in der Technologie niedergeschrieben. Es ist nicht wie im traditionellen Finanzwesen, wo Regierungen Geld drucken können, das Ihre Ersparnisse entwertet, und Unternehmen die Märkte schließen können. + +Darauf baut Ethereum auf. Wie bei Bitcoin, können die Regeln sich nicht ändern und jeder hat Zugang dazu. Doch zusätzlich macht Ethereum dieses digitale Geld programmierbar, und zwar mit[Smart Contracts](/glossary#smart-contract). Das bietet über das Speichern und Senden von Werten hinaus noch viele weitere Möglichkeiten. + + + +## Programmierbares Geld {#programmable-money} + +Das klingt merkwürdig... „Warum würde ich mein Geld programmieren wollen?“ Das ist tatsächlich eher ein Standardmerkmal der Token auf Ethereum. Jeder kann Logik in Zahlungen programmieren. Auf diese Weise erhalten Sie die Kontrolle und Sicherheit wie bei Bitcoin in Verbindung mit Dienstleistungen, die von Finanzinstituten bereitgestellt werden. Das eröffnet Möglichkeiten für Kryptowährungen, die mit Bitcoin nicht gegeben sind, wie z. B. das Vergeben oder Beanspruchen von Krediten, Terminplanung von Zahlungen, Investitionen in Indexfonds und vieles mehr. + + +
Machen Sie sich mit unseren Vorschlägen für DeFi-Anwendungen vertraut und testen sie, wenn Sie neu bei Ethereum sind.
+ + DeFi-Apps entdecken + +
+ +## Was kann man mit DeFi machen? {#defi-use-cases} + +Für fast alle Finanzdienstleistungen gibt es dezentrale Alternativen. Ethereum aber schafft zudem Möglichkeiten, komplett neue Finanzprodukte zu gestalten. Im Folgenden eine Liste mit Beispielen, die ständig länger wird: + +- [Geld rund um die Welt senden](#send-money) +- [Geld rund um die Welt „streamen“](#stream-money) +- [Zugang zu stabilen Währungen](#stablecoins) +- [Kredite mit hinterlegten Sicherheiten aufnehmen](#lending) +- [Kredite ohne hinterlegte Sicherheiten aufnehmen](#flash-loans) +- [Krypto-Sparkonten eröffnen](#saving) +- [Mit Token handeln](#swaps) +- [Das eigene Portfolio vergrößern](#investing) +- [Ihre Ideen finanzieren](#crowdfunding) +- [Versicherungen abschließen](#insurance) +- [Das eigene Portfolio verwalten](#aggregators) + + + +### Geld schnell um die ganze Welt senden {#send-money} + +Als Blockchain ist Ethereum für sichere und globale Transaktionen konzipiert. Wie auch Bitcoin macht Ethereum das weltweite Senden von Geld so einfach wie das Versenden einer E-Mail. Geben Sie einfach den [ENS-Namen](/nft/#nft-domains) des Empfängers (z. B. bob.eth) oder die Account-Adresse der Wallet ein und schon geht die Zahlung (typischerweise) innerhalb von Minuten direkt beim Empfänger ein. Zum Senden oder Empfangen von Zahlungen ist eine [Wallet](/wallets/) erforderlich. + + + Siehe Zahlungs-dApps + + +#### Geld um die Welt „streamen“... {#stream-money} + +Über Ethereum lässt sich auch Geld streamen. So können Sie das Gehalt für Personen sekündlich überweisen und geben ihnen damit Zugang zu ihrem verdienten Geld, wann immer sie es gerade benötigen. Ein weiterer Anwendungsfall wäre beispielsweise das Mieten von Objekten, wie z. B. Schließfächer oder E-Scooter, auf sekündlicher Basis. + +Und wenn Sie wegen der Volatilität kein [ETH](/eth/) senden oder streamen möchten, gibt es auf Ethereum alternative Währungen: Stablecoins. + + + +### Zugriff auf Stablecoins {#stablecoins} + +Die Volatilität von Kryptowährungen ist ein Problem für viele Finanzprodukte und allgemein für den Einsatz als Zahlungsmittel. Dieses Problem hat die DeFi-Community mit Stablecoins gelöst. Ihr Wert ist an ein anderes Asset gebunden, typischerweise beliebte Währungen wie der Dollar. + +Coins wie Dai oder USDC haben einen Wert der sich bis auf wenige Cent-Beträge am Wert des US-Dollars orientiert. Das macht sie perfekt für die Verzinsung/Veranlagung oder als Zahlungsmittel. Viele Menschen in Lateinamerika setzen auf Stablecoins als Mittel, um ihr Erspartes in Zeiten großer Unsicherheit werterhaltend zu schützen. + + + Mehr zu Stablecoins + + + + +### Kreditaufnahme {#lending} + +Es gibt zwei etablierte Möglichkeiten, um Geld von dezentralen Anbietern zu leihen: + +- Peer-to-Peer, das heißt der Kreditnehmer leiht direkt von einem bestimmten Kreditgeber. +- Pool-basiert, das heißt Kreditgeber stellen Geldmittel (Liquidität) für einen Pool bereit, aus dem Kreditnehmer die Mittel leihen können. + + + Siehe Lending-dApps + + +Auf dezentrale Kreditanbieter zurückzugreifen, bietet viele Vorteile... + +#### Geld leihen mit Privatsphäre {#borrowing-privacy} + +Bei der Vergabe und Inanspruchnahme von Krediten dreht sich heutzutage alles um die beteiligten Einzelpersonen. Banken müssen vor einer Kreditvergabe wissen, ob man wahrscheinlich in der Lage ist, den Kredit zurückzuzahlen. + +Eine dezentrale Kreditvergabe funktioniert vollständig ohne Identifikation der involvierten Parteien. Stattdessen muss der Kreditnehmer eine Sicherheit stellen, die der Kreditgeber automatisch erhält, wenn der Kredit nicht zurückgezahlt wird. Manche Plattformen akzeptieren sogar NFTs, also Non-Fungible Token, als Sicherheit. NFTs kann man sich wie eine Besitzurkunde für einen bestimmten Vermögenswert vorstellen. [Mehr zu NFTs](/nft/) + +Das ermöglicht es, ohne Kreditchecks und Preisgabe von privaten Informationen Geld zu borgen. + +#### Zugang zu globalen Geldmitteln {#access-global-funds} + +Wenn Sie auf einen dezentralen Kreditgeber setzen, erhalten Sie Zugang zu allen hinterlegten Assets überall auf der Welt und nicht nur zu denen, die im Depot Ihrer Bank oder Institution verwaltet werden. Damit werden Kredite leichter zugänglich und die Zinssätze verbessern sich. + +#### Steuervorteile {#tax-efficiencies} + +Wenn Sie Geld leihen, erhalten Sie Zugang zu Assets und müssen nicht Ihr ETH verkaufen (ein steuerpflichtiger Vorgang). Stattdessen können Sie ETH als Sicherheit für einen Stablecoin-Kredit verwenden. Damit erhalten Sie den benötigten Cashflow, ohne Ihre ETH verkaufen zu müssen. Stablecoins sind Token, die als Zahlungsmittel wesentlich besser geeignet sind, da sie anders als ETH keinen Wertschwankungen unterliegen. [Mehr zu Stablecoins](#stablecoins) + +#### Flash Loans {#flash-loans} + +Flash Loans, also Blitzkredite, sind eine experimentelle Form der dezentralen Kreditaufnahme. Dabei können Sie Geld leihen, ohne Sicherheiten oder persönliche Informationen hinterlegen zu müssen. + +Derzeit sind sie für den Otto Normalverbraucher nicht sehr leicht zugänglich, doch sie zeigen, was in der Zukunft für jeden möglich sein könnte. + +Flash Loans funktionieren unter der Prämisse, dass der Kredit innerhalb einer Transaktion beansprucht und auch wieder zurückgezahlt wird. Wenn er nicht zurückgezahlt werden kann, wird die Transaktion rückgängig gemacht – so als wäre nie etwas passiert. + +Das Geld, das dafür verwendet wird, ist meist in Liquiditäts-Pools (große Pools an Assets, die für das Leihen verwendet werden) gebunden. Wenn diese gebundenen Werte zu einem bestimmten Zeitpunkt gerade nicht verwendet werden, ergibt sich daraus für Dritte die Möglichkeit, diese Werte zu leihen, damit zu arbeiten und buchstäblich zum Zeitpunkt des Ausleihens wieder vollständig zurückzuzahlen. + +Das setzt voraus, dass viel Logik in eine sehr maßgeschneiderte Transaktion einfließen muss. Ein einfaches Beispiel wäre, einen Flash Loan einzusetzen, um eine große Menge eines bestimmten Assets zu einem niedrigen Preis zu borgen und es dann an einem anderen Handelsplatz zu einem höheren Preis zu verkaufen. + +Während einer einzelnen Transaktion passiert also Folgendes: + +- Sie leihen sich Betrag X von $asset zum Preis von $ 1,00 von Handelsplatz A. +- Sie verkaufen X von $asset auf Handelsplatz B für $ 1,10. +- Sie zahlen den Kredit bei Handelsplatz A zurück. +- Sie behalten den Profit abzüglich der Transaktionsgebühren. + +Gäbe es an Handelsplatz B kurzfristig zu wenig Angebot von Assets, wodurch Sie nicht in der Lage wären, genug zu verkaufen, um den ursprünglichen Kredit zurückzuzahlen, so würde die Transaktion schlichtweg einfach fehlschlagen. + +Um das obige Beispiel in der etablierten Finanzwelt umzusetzen, benötigten Sie sehr viel Geld. Diese Strategien des Geldverdienens sind jenen mit großem bestehenden Vermögen vorbehalten. Flash Loans sind ein Beispiel einer Zukunft, in der der Besitz von Geld nicht die Voraussetzung dafür ist, Geld zu verdienen. + +[Mehr zu Flash Loans](https://aave.com/flash-loans/) + + + +### Jetzt mit dem Kryptosparen beginnen {#saving} + +#### Darlehen {#lending} + +Sie können Ihrer Krypto in Echtzeit beim Wachsen zusehen, indem Sie sie verleihen und Zinsen verdienen. Aktuell sind diese Zinssätze um einiges höher als bei lokalen Banken (wenn Sie das Glück haben, Zugang dazu zu haben). Hier ein Beispiel: + +- Sie verleihen 100 Dai, ein [Stablecoin](/stablecoins/), an ein Produkt wie z. B. Aave. +- Sie erhalten einen Token, der für Ihr verliehenes Dai steht, also 100 Aave Dai (aDai). +- Ihr aDai steigt auf Grundlage der Zinssätze an und Sie können Ihr Guthaben in Ihrer Wallet wachsen sehen. Abhängig vom APR können Sie in Ihrer Wallet nach ein paar Tagen oder sogar Stunden ein Guthaben von beispielsweise 100,1234 ablesen. +- Sie können dann jederzeit normales Dai in Höhe Ihres aDai-Guthabens abheben. + + + Zu Lending-dApps + + +#### No-Loss-Lotterien {#no-loss-lotteries} + +No-Loss-Lotterien wie zum Beispiel PoolTogether sind ein lustiger und innovativer Weg, Geld zu sparen. + +- Sie kaufen 100 Tickets mit 100 Dai-Token. +- Sie erhalten 100 plDai, die für Ihre 100 Tickets stehen. +- Wird eines Ihrer Tickets als Gewinner gezogen, erhöht sich Ihr plDai-Guthaben um die Höhe des Gewinnpools. +- Wenn Sie nicht gewinnen, gehen Ihre 100 plDai in die Ziehung in der nächsten Woche über. +- Sie können natürlich jederzeit reguläres Dai in Höhe Ihres plDai-Guthabens abheben. + +Der Gewinnpool wird aus allen Zinsen gewonnen, die durch das Verleihen der Ticketanzahlungen wie im Beispiel zum Verleihen oben generiert wurden. + + + PoolTogether testen + + + + +### Token tauschen {#swaps} + +Auf Ethereum gibt es Tausende Token. Der Handel mit verschiedenen Token erfolgt über dezentrale Tauschbörsen (DEXs) und ist jederzeit möglich. Sie geben niemals die Kontrolle über Ihre Vermögenswerte aus der Hand. Das ist wie der Besuch einer Wechselstube, wenn Sie in ein anderes Land reisen. Doch die DeFi-Version ist immer geöffnet. Die Märkte sind rund um die Uhr an 365 Tagen im Jahr geöffnet. Die Technologie garantiert, dass es immer jemanden gibt, der einen Handel akzeptiert. + +Wenn Sie zum Beispiel die No-Loss-Lotterie PoolTogether (wie oben beschrieben) nutzen möchten, benötigen Sie einen Token wie Dai oder USDC. An diesen DEXs können Sie Ihr ETH gegen solche Token eintauschen. Sobald Sie fertig sind, ist es wieder möglich, diese Token zurückzutauschen. + + + Zu Token-Handesplätzen + + + + +### Erweitertes Trading {#trading} + +Für Trader, die sich mehr Kontrolle wünschen, gibt es fortgeschrittenere Optionen. Limit Orders, Perpetuals, Margin Trading und vieles mehr ist möglich. Mit dezentralem Trading erhalten Sie Zugang zu globaler Liquidität. Der Markt schließt nie und Sie haben immer volle Kontrolle über Ihre Assets. + +Wenn Sie sich für einen zentralen Handelsplatz entscheiden, müssen Sie Ihre Assets vor dem Handeln zuerst hinterlegen und darauf vertrauen, dass der Anbieter diese sicher verwahrt. Während Ihre Assets bei dem Anbieter hinterlegt sind, sind sie dem Risiko von Hackerangriffen ausgesetzt. + + + Zu Trading-dApps + + + + +### Das eigene Portfolio vergrößern {#investing} + +Auf Ethereum gibt es auch Produkte für das Portfoliomanagement, deren Ziel es ist, Ihr Portfolio mit einer Strategie Ihrer Wahl zu vergrößern. Das erfolgt automatisch, ist offen für jeden und Sie benötigen keinen realen Manager, der einen Anteil an Ihren Gewinnen beansprucht. + +Ein gutes Beispiel ist der [DeFi Pulse Index Fund (DPI)](https://defipulse.com/blog/defi-pulse-index/). Es handelt sich um einen Fonds, der automatisch ein Rebalancing durchführt, um sicherzustellen, dass Ihr Portfolio immer [die besten DeFi-Token nach Marktkapitalisierung](https://www.coingecko.com/en/defi) enthält. Sie werden niemals irgendwelche Details verwalten müssen und können jederzeit Abhebungen aus dem Fonds tätigen. + + + Zu Investment-dApps + + + + +### Eigene Ideen finanzieren {#crowdfunding} + +Ethereum ist die ideale Platform für Crowdfunding: + +- Potenzielle Geldgeber können von überall kommen – Ethereum und seine Token sind für jedermann offen, überall auf der Welt. +- Das System ist transparent, so dass Spendensammler beweisen können, wie viel Geld gesammelt wurde. Es lässt sich sogar nachverfolgen, wie die Mittel später ausgegeben werden. +- Spendensammler können automatische Erstattungen einrichten, wenn es beispielsweise eine bestimmte Frist und einen Mindestbetrag gibt, die bzw. der nicht eingehalten oder erreicht wird. + + + Zu Crowdfunding-dApps + + +#### Quadratische Finanzierung {#quadratic-funding} + +Ethereum ist Open-Source-Software und ein Großteil der bisherigen Arbeit wurde von der Community finanziert. Das hat zur Entwicklung eines interessanten neuen Fundraising-Modells geführt: die quadratische Finanzierung. Damit lässt sich die Art und Weise, wie wir in Zukunft alle Arten von öffentlichen Gütern finanzieren, verbessern. + +Über die quadratische Finanzierung wird sichergestellt, dass die Projekte mit dem größten individuellen Bedarf auch die meisten Mittel erhalten. Mit anderen Worten: Projekte, die das Leben der meisten Menschen verbessern können. So funktioniert es: + +1. Es gibt einen übereinstimmenden Pool an gespendeten Mitteln. +2. Eine öffentliche Finanzierungsrunde startet. +3. Menschen können ihre Nachfrage nach einem Projekt signalisieren, indem sie Geld spenden. +4. Sobald die Runde zu Ende ist, werden die Gelder aus dem übereinstimmenden Pool auf die Projekte verteilt. Die Projekte mit dem höchsten individuellen Bedarf erhalten den größten Teil aus dem übereinstimmenden Pool. + +Projekt A mit 100 Spenden zu je 1 Euro könnte also mehr Mittel erhalten als Projekt B mit einer einzelnen Spende von 10.000 Euro (abhängig von der Größe des übereinstimmenden Pools). + +[Zu quadratischer Finanzierung](https://wtfisqf.com) + + + +### Versicherung {#insurance} + +Eine dezentralisierte Versicherung zielt darauf ab, Versicherungen billiger und transparenter zu machen sowie Versicherungsfälle schneller auszuzahlen. Mit einem höherem Grad an Automatisierung wird der Versicherungsschutz erschwinglicher und die Auszahlungen erfolgen wesentlich schneller. Die Daten, die zur Entscheidung über Ihren Versicherungsfall genutzt werden, sind vollkommen transparent. + +Bei Ethereum-Produkten gibt es wie auch bei jeder anderen Software Fehler und Exploits. Derzeit liegt beispielsweise bei vielen Versicherungsprodukten in diesem Bereich der Schwerpunkt auf dem Schutz der Benutzer vor finanziellen Verlusten. Es gibt jedoch Projekte, die damit beginnen, einen Versicherungsschutz für alles Unwägbarkeiten aufzubauen, die das Leben uns bescheren kann. Ein gutes Beispiel ist die Ernteversicherung von Etherisc. Es wird versucht, [Kleinbauern in Kenia gegen Dürren und Überschwemmungen abzusichern](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Dezentrale Versicherungen können Landwirten, denen herkömmliche Versicherungen oft zu teuer sind, einen erschwinglichen Versicherungsschutz bieten. + + + Zu Versicherungs-dApps + + + + +### Aggregatoren und Portfoliomanager {#aggregators} + +Bei all diesen Entwicklungen brauchen Sie einen Weg, um alle Ihre Investitionen, Darlehen und Trades im Auge zu behalten. Es gibt eine Reihe von Produkten, mit denen Sie alle Ihre DeFi-Aktivitäten zentral koordinieren können. Das ist der Vorteil der offenen Architektur von DeFi. Teams können Schnittstellen entwickeln, über die Sie nicht nur Ihr Guthaben für alle Produkte sehen, sondern zusätzlich auch deren Funktionen nutzen können. Das finden Sie vielleicht nützlich, wenn Sie sich umfassender mit DeFi vertraut machen. + + + Zu Portfolio-dApps + + + + +## Wie funktioniert DeFi? {#how-defi-works} + +DeFi setzt Kryptowährungen und Smart Contracts ein, um Dienstleistungen anzubieten, die ohne Vermittler auskommen. In der Finanzwelt von heute fungieren Finanzinstitute als Garanten für Transaktionen. Das verleiht diesen Institutionen enorme Macht, da Ihr Geld durch die Institutionen fließt. Hinzu kommt, dass mehr als eine Milliarde Menschen auf der ganzen Welt nicht einmal Zugang zu einem Bankkonto haben. + +In DeFi ersetzt ein Smart Contract das Finanzinstitut in der Transaktion. Ein Smart Contract ist eine Art Ethereum-Konto, das Guthaben halten kann und dieses auf Grundlage bestimmter Bedingungen zurücksenden oder zurückerstatten kann. Niemand kann diesen Smart Contract mehr ändern, wenn er live ist – er läuft immer wie programmiert ab. + +Ein Vertrag, sprich Contract, mit dem ein Zuschuss oder Taschengeld bezahlt werden soll, könnte so programmiert werden, dass jeden Freitag Geld von Konto A auf Konto B überwiesen wird. Und das passiert solange, wie Konto A über die erforderlichen Mittel verfügt. Niemand kann den Vertrag ändern. Es ist nicht möglich, Konto C als Empfänger hinzufügen, um Geldmittel zu stehlen. + +Zudem sind die Contracts öffentlich und können von jedermann eingesehen und geprüft werden. Das bedeutet, dass schlechte Contracts meist sehr schnell von der Community überprüft werden. + +Daher ist es derzeit notwendig, den technisch versierten Mitgliedern der Ethereum-Community zu vertrauen, die Code lesen können. Die Open-Source-Community trägt dazu bei, dass die Entwickler stetig überprüft werden. Allerdings wird die Notwendigkeit dazu im Laufe der Zeit immer mehr abnehmen, da Smart Contracts leichter lesbar werden und neue Möglichkeiten zum Nachweis der Vertrauenswürdigkeit des Codes entwickelt werden. + +## Ethereum und DeFi {#ethereum-and-defi} + +Ethereum ist aus mehreren Gründen die perfekte Grundlage für DeFi: + +- Niemand ist Eigentümer von Ethereum oder der Smart Contracts, die darauf laufen. Und damit hat jeder die Möglichkeit, DeFi zu nutzen. Das bedeutet auch, dass niemand die Regeln für Sie ändern kann. +- Unter der Oberfläche sprechen alle DeFi-Produkte dieselbe Sprache: Ethereum. Daher können auch viele der Produkte nahtlos zusammenarbeiten. Sie können auf einer Platform Token verleihen und mit dem zinsakkumulierenden Token, den Sie dafür erhalten, auf dem Markt einer völlig anderen Anwendung handeln. Das ist ungefährt so, als würden Sie die Treuepunkte aus dem Supermarkt bei Ihrer Bank einzahlen. +- Token und Kryptowährungen sind Grundpfeiler von Ethereum: Ein verteiltes Ledger, die Nachvollziehbarkeit von Transaktionen und Eigentum – das liegt in der DNA von Ethereum. +- Ethereum ermöglicht völlige finanzielle Freiheit. Die meisten Produkte übernehmen niemals Eigentumsrechte an Ihren Geldmitteln, sodass Sie die Kontrolle nie aus der Hand geben. + +DeFi ist praktisch ein Ebenenmodell: + +1. Die Blockchain: Ethereum enthält den Transaktionsverlauf und den Status der Konten. +2. Die Assets: [ETH](/eth/) und die anderen Token (Währungen). +3. Die Protokolle – [Smart Contracts](/glossary/#smart-contract), die die Funktionalität bereitstellen, z.B. einen Dienst, der die dezentrale Ausleihe von Vermögenswerten ermöglicht. +4. [Die Anwendungen](/dapps/): Produkte die wir benutzen, um Protokolle zu verwalten und auf diese zuzugreifen. + +## DeFi aufbauen {#build-defi} + +DeFi ist eine Open-Source-Bewegung. DeFi-Protokolle und -Anwendungen sind für jeden offen, um sie zu überprüfen, aufzuspalten und zu verbessern. Durch diese kombinierten Ebenen oder Layer (sie teilen alle die gleiche Basis-Blockchain und Assets) können Protokolle vermischt und aufeinander abgestimmt werden, um neue einzigartige Möglichkeiten zu schaffen. + + + Mehr zum Erstellen von dApps + + +## Weiterführende Informationen {#futher-reading} + +### DeFi-Daten {#defi-data} + +- [DeFi Prime](https://defiprime.com/) +- [DeFi Llama](https://defillama.com/) +- [DeFi Rate](https://defirate.com/) + +### DeFi-Artikel {#defi-articles} + +- [Ein Leitfaden für Einsteiger in DeFi](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, 6. Januar 2020_ + +### Videos {#videos} + +- [Finanzmathematik – mehr erfahren über dezentralisierte Finanzmärkte](https://finematics.com/) – _Videos zu DeFi_ +- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _DeFi-Grundlagen: Alles, was Sie wissen müssen, um in diesem gelegentlich verblüffenden Bereich durchzustarten._ +- [Whiteboard-Krypto](https://youtu.be/17QRFlml4pA) _Was ist DeFi?_ + +### Communities {#communities} + +- [DeFi Llama Discord Server](https://discord.gg/buPFYXzDDd) +- [DeFi Pulse Discord Server](https://discord.gg/Gx4TCTk) diff --git a/public/content/translations/de/desci/index.md b/public/content/translations/de/desci/index.md new file mode 100644 index 00000000000..7ceeeff2f06 --- /dev/null +++ b/public/content/translations/de/desci/index.md @@ -0,0 +1,139 @@ +--- +title: Dezentrale Wissenschaft (DeSci) +description: Eine Übersicht über dezentralisierte Wissenschaft auf Ethereum +lang: de +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Eine globale, offene Alternative zum derzeitigen wissenschaftlichen System. +summaryPoint2: Technologie, die es Wissenschaftlern ermöglicht, Finanzierung zu erhalten, Experimente durchzuführen, Daten zu teilen, Erkenntnisse zu verbreiten und vieles mehr. +summaryPoint3: Baut auf der Open-Science-Bewegung auf. +--- + +## Was ist dezentralisierte Wissenschaft (DeSci)? {#what-is-desci} + +Dezentralisierte Wissenschaft (DeSci) ist eine Bewegung, die darauf abzielt, eine öffentliche Infrastruktur für die Finanzierung, Erstellung, Überprüfung, Anerkennung, Speicherung und Verbreitung von wissenschaftlichem Wissen fair und gerecht unter Verwendung des Web3-Stacks aufzubauen. + +DeSci zielt darauf ab, ein Ökosystem zu schaffen, in dem Wissenschaftler ermutigt werden, ihre Forschungsergebnisse offen zu teilen und Anerkennung für ihre Arbeit zu erhalten. Gleichzeitig wird Fachleuten, die ihre eigenen Leistungen einbringen möchten, der Zugang zur Forschung ermöglicht. DeSci arbeitet mit der Idee, dass wissenschaftliche Erkenntnisse für alle zugänglich und der Prozess der wissenschaftlichen Forschung transparent sein sollte. DeSci schafft ein dezentraleres und verteiltes wissenschaftliches Forschungsmodell, das widerstandsfähiger gegen Zensur und Kontrolle durch zentrale Behörden ist. DeSci hofft, eine Umgebung zu schaffen, in der neue und unkonventionelle Ideen gedeihen können, indem der Zugang zu Finanzierung, wissenschaftlichen Werkzeugen und Kommunikationskanälen dezentralisiert wird. + +Dezentralisierte Wissenschaft ermöglicht eine Vielzahl von Finanzierungsmöglichkeiten (von [DAOs](/dao/), [quadratischen Spenden](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) bis hin zu Crowdfunding und mehr), einen leichteren Zugang zu Daten und Methoden sowie Anreize für Reproduzierbarkeit. + +### Juan Benet - Die DeSci-Bewegung + + + +## Wie DeSci die Wissenschaft verbessert {#desci-improves-science} + +Eine unvollständige Liste von zentralen Problemen in der Wissenschaft und wie dezentralisierte Wissenschaft dazu beitragen kann, diese Probleme anzugehen + +| **Dezentralisierte Wissenschaft** | **Traditionelle Wissenschaft** | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| Die Verteilung von Mitteln wird durch die Öffentlichkeit mithilfe von Mechanismen wie quadratischen Spenden oder DAOs bestimmt. | Kleine, geschlossene, zentralisierte Gruppen kontrollieren die Verteilung von Mitteln. | +| Sie arbeiten mit Kollegen aus der ganzen Welt in dynamischen Teams zusammen. | Finanzierungsorganisationen und Heimateinrichtungen beschränken Ihre Zusammenarbeit. | +| Finanzierungsentscheidungen werden online und transparent getroffen. Es werden neue Finanzierungsmechanismen erforscht. | Finanzierungsentscheidungen werden mit langer Bearbeitungszeit und begrenzter Transparenz getroffen. Es gibt nur wenige Finanzierungsmechanismen. | +| Die gemeinsame Nutzung von Labor-Services wird durch Web3-Primitiven vereinfacht und transparenter gestaltet. | Die gemeinsame Nutzung von Laborressourcen ist oft langsam und intransparent. | +| Es können neue Modelle für die Veröffentlichung entwickelt werden, die Web3-Primitiven für Vertrauen, Transparenz und universellen Zugang nutzen. | Sie veröffentlichen über etablierte Wege, die häufig als ineffizient, voreingenommen und ausbeuterisch eingestuft werden. | +| Sie können Token und Reputation für die Begutachtung von Arbeiten verdienen. | Ihre Begutachtung von Arbeiten ist unbezahlt und kommen profitorientierten Verlagen zugute. | +| Sie besitzen das geistige Eigentum (IP), das Sie generieren, und verteilen es gemäß transparenten Bedingungen. | Ihre Heimatinstitution ist Eigentümerin des von Ihnen generierten IP. Der Zugang zum IP ist nicht sichtbar. | +| Gemeinsame Nutzung aller Forschungsergebnisse, einschließlich der Daten aus erfolglosen Versuchen, indem alle Schritte in die Prozesskette aufgenommen werden. | Dies bedeutet, dass Forscher mit größerer Wahrscheinlichkeit nur Experimente mit erfolgreichen Ergebnissen veröffentlichen. | + +## Ethereum und DeSci {#ethereum-and-desci} + +Ein dezentralisiertes Wissenschaftssystem erfordert robuste Sicherheit, minimale Geld- und Transaktionskosten und ein reiches Ökosystem für die Anwendungsentwicklung. Ethereum liefert alles, was für den Aufbau eines dezentralen wissenschaftlichen Stacks erforderlich ist. + +## DeSci-Anwendungsfälle {#use-cases} + +DeSci baut das wissenschaftliche Toolset für Web2-Akademie in der digitalen Welt auf. Im Folgenden finden Sie eine Auswahl von Anwendungsfällen, die Web3 der wissenschaftlichen Gemeinschaft bieten kann. + +### Veröffentlichung (Publishing) {#publishing} + +Das wissenschaftliche Publizieren ist bekanntermaßen problematisch, weil es von Verlagen verwaltet wird, die auf die kostenlose Arbeit von Wissenschaftlern, Gutachtern und Redakteuren angewiesen sind, um die Veröffentlichungen zu erstellen, dann aber exorbitante Veröffentlichungsgebühren verlangen. Die Öffentlichkeit, die in der Regel indirekt durch Steuern für das Werk und die Veröffentlichungskosten gezahlt hat, kann oft nicht auf dasselbe Werk zugreifen, ohne den Verleger erneut zu bezahlen. Die Gesamtkosten für die Publikation einzelner wissenschaftlicher Arbeiten belaufen sich oft auf fünfstellige Beträge (USD), wodurch das gesamte Konzept wissenschaftlicher Erkenntnisse als [öffentliches Gut](https://www.econlib.org/library/Enc/PublicGoods.html) untergraben wird, während gleichzeitig enorme Gewinne für eine kleine Gruppe von Verlegern erzielt werden. + +Kostenlose und frei zugängliche Plattformen gibt es in Form von Preprint-Servern, wie [ArXiv](https://arxiv.org/). Diesen Plattformen mangelt es jedoch an Qualitätskontrollen, [anti-sybil mechanisms](https://csrc.nist.gov/glossary/term/sybil_attack). Sie verfolgen in der Regel keine Qualitätskriterien auf Artikelniveau, was bedeutet, dass sie in der Regel nur dazu dienen, die Arbeiten zu veröffenlichen, ehe sie bei einem traditionellen Verlag eingereicht werden. SciHub macht auch publizierte Arbeiten frei zugänglich. Dies geschieht jedoch nicht auf legalem Weg, sondern erst, nachdem die Verlage ihre Bezahlung erhalten haben und die Arbeit in ein strenges Urheberrecht verpackt wurde. Dies hinterlässt eine kritische Lücke für zugängliche wissenschaftliche Publikationen und empirischen Daten mit einem eingebetteten Legitimationsmechanismus und Motivationsmodell. Die Werkzeuge für den Aufbau eines solchen Systems gibt es in Web3. + +### Reproduzierbarkeit und Replizierbarkeit {#reproducibility-and-replicability} + +Reproduzierbarkeit und Replizierbarkeit sind die Grundvoraussetzungen für qualitativ hochwertige wissenschaftliche Erkenntnisse. + +- Reproduzierbare Ergebnisse können mehrfach nacheinander vom selben Team mit derselben Methodik erzielt werden. +- Reproduzierbare Ergebnisse können von einer anderen Gruppe mit demselben Versuchsaufbau erzielt werden. + +Neue Web3-native Tools können sicherstellen, dass Reproduzierbarkeit und Replizierbarkeit die Basis für Forschungsergebnisse sind. Damit können wir Qualitätsforschung in das technologische Umfeld der akademischen Welt einbinden. Web3 bietet die Möglichkeit, Zertifikate für jede analytische Komponente zu erstellen: die Rohdaten, die Berechnungsmaschine und das Anwendungsergebnis. Der Vorteil von Konsens-Systemen besteht darin, dass durch die Schaffung eines vertrauenswürdigen Netzwerks zur Pflege dieser Komponenten jeder Netzwerkteilnehmer für die Nachvollziehbarkeit der Berechnung und die Validierung jedes Ergebnisses verantwortlich sein kann. + +### Finanzierung {#funding} + +Das derzeitige Standardmodell der Wissenschaftsförderung besteht darin, dass Einzelpersonen oder Forschergruppen schriftliche Anträge bei einer Förderorganisation einreichen. Die Bewertung der Anträge und die anschließende Durchführung von Interviews mit den Antragstellern erfolgt durch ein kleines Gremium, das sich aus vertrauenswürdigen Personen zusammensetzt, bevor die Mittel an einen kleinen Kreis von Antragstellern vergeben werden. Dieses Modell führt nicht nur zu Engpässen, die manchmal zu jahrelangen Wartezeiten zwischen Antrag und Bewilligung führen. Es ist auch sehr anfällig für Voreingenommenheit, Eigeninteressen und Politik des Prüfungsausschusses. + +Studien haben gezeigt, dass die Bewilligungsgremien bei der Auswahl von qualitativ hochwertigen Anträgen schlecht abschneiden: Gleiche Anträge, die verschiedenen Gremien vorgelegt werden, führen zu sehr unterschiedlichen Ergebnissen. Aufgrund der Mittelknappheit konzentrierten sie sich auf einen kleineren Pool älterer Forscher mit intellektuell konservativeren Projekten. Dies hat zu einer extrem wettbewerbsorientierten Förderlandschaft geführt, die falsche Anreize setzt und die Innovation im Keim erstickt. + +Web3 hat das Potenzial, dieses kaputte Finanzierungsmodell zu durchbrechen, indem es mit verschiedenen Anreizmodellen experimentiert, die von DAOs und Web3 im Allgemeinen entwickelt werden. [Retroaktive Fördermittel für öffentliche Güter](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), [quadratische Förderung](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), [DAO Governance](https://www.antler.co/blog/daos-and-web3-governance) und [tokenisierte Anreizstrukturen](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) sind einige der Web3-Tools, die die Wissenschaftsförderung revolutionieren könnten. + +### IP-Eigentum und -Entwicklung {#ip-ownership} + +Geistiges Eigentum (IP) ist ein Hauptproblem der traditionellen Wissenschaft: Es bleibt in Universitäten stecken oder wird in Biotechs nicht genutzt und ist schwierig zu bewerten. Allerdings ist das Eigentum an digitalen Gütern (wie z. B. wissenschaftlichen Daten oder Aufsätzen) ein Bereich, in dem Web3 mit seinen [Non-Fungible Token (NFTs)](/nft/) eine sehr gute Lösung bietet. + +Auf die gleiche Weise, wie NFTs Einnahmen für zukünftige Transaktionen an den ursprünglichen Ersteller zurückgeben können, können Sie transparente Wertzuweisungsketten einrichten, um Forscher, Verwaltungsorgane (wie DAOs) oder sogar die Personen, deren Daten gesammelt werden, zu belohnen. + +[IP-NFTs](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) können auch als Schlüssel zu einem dezentralisierten Datenspeicher für die durchgeführten Forschungsexperimente fungieren und sich in die NFT- und [DeFi](/defi/)-Finanzierung einfügen (von der Fraktionalisierung bis zu Leihpools und Wertschätzung). Es ermöglicht auch nativen On-Chain-Einheiten als DAOs wie etwa [VitaDAO](https://www.vitadao.com/), direkt in der Kette zu recherchieren. Die Einführung von nicht übertragbaren ["soulbound"-Token](https://vitalik.ca/general/2022/01/26/soulbound.html) könnte ebenfalls eine wichtige Rolle in DeSci spielen, da sie es Einzelpersonen ermöglichen, ihre Erfahrung und ihre Referenzen in Verbindung mit ihrer Ethereum-Adresse nachzuweisen. + +### Datenspeicherung, Zugriff und Architektur {#data-storage} + +Wissenschaftliche Daten können durch Web3-Modelle viel leichter zugänglich gemacht werden, und die verteilte Speicherung erlaubt es der Forschung, katastrophale Ereignisse zu überleben. + +Ausgangspunkt muss ein System sein, auf das jede dezentrale Identität mit verifizierbaren Berechtigungsnachweisen zugreift. Dies ermöglicht die sichere Replikation sensibler Daten durch vertrauenswürdige Parteien, Redundanz und Widerstandsfähigkeit gegen Zensur, die Reproduktion von Ergebnissen und sogar die Möglichkeit der Zusammenarbeit mehrerer Parteien und das Hinzufügen neuer Daten zu einem Datensatz. Vertrauliche Datenverarbeitungsmethoden wie [Compute-to-Data](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol) bieten alternative Zugriffsmechanismen zur Replikation von Rohdaten und zur Schaffung vertrauenswürdiger Forschungsumgebungen für besonders sensible Daten. Trusted Research Environments (vertrauenswürdige Forschungsumgebungen) wurden [vom NHS](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) als bahnbrechende Lösung für Datenschutz und Zusammenarbeit genannt, da sie ein Ökosystem schaffen, in dem Forscher vor Ort sicher mit Daten arbeiten können, indem sie standardisierte Umgebungen für die gemeinsame Nutzung von Code und Verfahren verwenden. + +Flexible Web3-Datenlösungen unterstützen die oben genannten Szenarien. Sie bilden die Grundlage für eine wirklich offene Wissenschaft, in der Forscher ohne Zugangsbeschränkungen oder Gebühren öffentliche Güter schaffen können. Öffentliche Web3-Datenlösungen wie IPFS, Arweave und Filecoin werden für die Dezentralisierung optimiert. dClimate bietet beispielsweise universellen Zugang zu Klima- und Wetterdaten, auch von Wetterstationen und Vorhersagemodellen. + +## Machen Sie mit {#get-involved} + +Erkunden Sie Projekte und werden Sie Teil der DeSci-Gemeinschaft. + +- [DeSci.Global: globale Ereignisse und Termine](https://desci.global) +- [Blockchain für Science Telegram](https://t.me/BlockchainForScience) +- [Molecule: fördern und eigene Forschungsprojekte finanzieren lassen](https://discover.molecule.to/) +- [VitaDAO: langfristige Forschung finanziert durch gesponserte Forschungsverträge](https://www.vitadao.com/) +- [ResearchHub: wissenschaftliche Ergebnisse veröffentlichen und in Diskurs mit Partnern gehen](https://www.researchhub.com/) +- [LabDAO: Falten eines Proteins in Silizium](https://alphafodl.vercel.app/) +- [dClimate API: Klimadaten abfragen, die von einer dezentralen Gemeinschaft erfasst werden](https://api.dclimate.net/) +- [DeSci Foundation: DeSci Publishing Tool Builder](https://descifoundation.org/) +- [DeSci.World: One-Stop-Shop für Benutzer, mit dezentralisierter Wissenschaft](https://desci.world) +- [Flamming-Protokoll: Open-Source-Datenwirtschaft, die die kollaborative biomedizinische Entdeckung fördert](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [OceanDAO: DAO regelte die Finanzierung der datenbezogenen Wissenschaft](https://oceanprotocol.com/dao) +- [OpScientia: offene dezentrale wissenschaftliche Workflows](https://opsci.io/research/) +- [LabDAO: Falten eines Proteins in Silizium](https://alphafodl.vercel.app/) +- [Bio.xyz: Erhalten Sie Mittel für Ihr Biotech-DAO oder desci-Projekt](https://www.molecule.to/) +- [ResearchHub: Poste ein wissenschaftliches Ergebnis und führe ein Gespräch mit Partnern](https://www.researchhub.com/) +- [VitaDAO: Langfristige Forschung finanziert durch gesponserte Forschungsverträge](https://www.vitadao.com/) +- [Flamming-Protokoll: Open-Source-Datenwirtschaft, die die kollaborative biomedizinische Entdeckung fördert](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [Aktives Inferenz-Labor](https://www.activeinference.org/) +- [CureDAO: Community-eigene Gesundheitsplattform](https://docs.curedao.org/) +- [IdeaMarkets: Ermöglicht dezentralisierte wissenschaftliche Glaubwürdigkeit](https://ideamarket.io/) +- [DeSci Labs](https://www.desci.com/) + +Wir freuen uns über Vorschläge für neue Projekte, die in die Liste aufgenommen werden sollen – bitte lesen Sie dazu unsere [Listing Policy](/contributing/adding-desci-projects/)! + +## Weiterführende Informationen {#further-reading} + +- [DeSci Wiki von Jocelynn Pearl und Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) +- [Ein Leitfaden für die dezentrale Biotechnologie von Jocelynn Perl für die Zukunft von a16z](https://future.a16z.com/a-guide-to-decentralized-biotech/) +- [Die Argumente für DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) +- [Anleitung zu DeSci](https://future.com/what-is-decentralized-science-aka-desci/) +- [Dezentralisierte Wissenschaftsressourcen](https://www.vincentweisser.com/decentralized-science) +- [Die Biopharma-IP-NFTs von Molecule – Eine technische Beschreibung](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) +- [Aufbau zuverlässiger Wissenschaftssysteme von Jon Starr](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) +- [Die Entstehung der Biotech-DAOs](https://molecule.to/blog/the-emergence-of-biotech-daos) +- [Paul Kohlhaas – DeSci: die Zukunft der dezentralisierten Wissenschaft (Podcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) +- [Eine aktive Inferenz-Ontologie für die dezentralisierte Wissenschaft: von aufgestellten Sensemaking bis zu den epistemischen Commons](https://zenodo.org/record/6320575) +- [DeSci: die Zukunft der Forschung von Samuel Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) +- [Science Funding (Epilog: DeSci und neue Kryptoprimitive) von Nadia](https://nadia.xyz/science-funding) +- [Dezentralisierung ist eine Dezentralisierung der Arzneimittelentwicklung](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) + +### Videos {#videos} + +- [Was ist die dezentralisierte Wissenschaft?](https://www.youtube.com/watch?v=-DeMklVWNdA) +- [Gespräch zwischen Vitalik Buterin und dem Wissenschaftler Aubrey de Grey über den Schnittpunkt der Langlebigkeitsforschung und Kryptographie](https://www.youtube.com/watch?v=x9TSJK1widA) +- [Wissenschaftliche Veröffentlichung ist kaputt. Kann Web3 das reparieren?](https://www.youtube.com/watch?v=WkvzYgCvWj8) +- [Juan Benet - DeSci, unabhängige Labore und datenintensive Wissenschaft im großen Maßstab](https://www.youtube.com/watch?v=zkXM9H90g_E) +- [Sebastian Brunemeier – Wie DeSci die biomedizinische Forschung verändern kann & Risikokapital](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/de/developers/docs/accounts/accounts.png b/public/content/translations/de/developers/docs/accounts/accounts.png similarity index 100% rename from src/content/translations/de/developers/docs/accounts/accounts.png rename to public/content/translations/de/developers/docs/accounts/accounts.png diff --git a/src/content/translations/de/developers/docs/accounts/index.md b/public/content/translations/de/developers/docs/accounts/index.md similarity index 100% rename from src/content/translations/de/developers/docs/accounts/index.md rename to public/content/translations/de/developers/docs/accounts/index.md diff --git a/src/content/translations/de/developers/docs/apis/backend/index.md b/public/content/translations/de/developers/docs/apis/backend/index.md similarity index 100% rename from src/content/translations/de/developers/docs/apis/backend/index.md rename to public/content/translations/de/developers/docs/apis/backend/index.md diff --git a/src/content/translations/de/developers/docs/apis/javascript/index.md b/public/content/translations/de/developers/docs/apis/javascript/index.md similarity index 100% rename from src/content/translations/de/developers/docs/apis/javascript/index.md rename to public/content/translations/de/developers/docs/apis/javascript/index.md diff --git a/src/content/translations/de/developers/docs/apis/json-rpc/index.md b/public/content/translations/de/developers/docs/apis/json-rpc/index.md similarity index 100% rename from src/content/translations/de/developers/docs/apis/json-rpc/index.md rename to public/content/translations/de/developers/docs/apis/json-rpc/index.md diff --git a/src/content/translations/de/developers/docs/blocks/index.md b/public/content/translations/de/developers/docs/blocks/index.md similarity index 100% rename from src/content/translations/de/developers/docs/blocks/index.md rename to public/content/translations/de/developers/docs/blocks/index.md diff --git a/src/content/translations/de/developers/docs/blocks/tx-block.png b/public/content/translations/de/developers/docs/blocks/tx-block.png similarity index 100% rename from src/content/translations/de/developers/docs/blocks/tx-block.png rename to public/content/translations/de/developers/docs/blocks/tx-block.png diff --git a/src/content/translations/de/developers/docs/consensus-mechanisms/index.md b/public/content/translations/de/developers/docs/consensus-mechanisms/index.md similarity index 100% rename from src/content/translations/de/developers/docs/consensus-mechanisms/index.md rename to public/content/translations/de/developers/docs/consensus-mechanisms/index.md diff --git a/src/content/translations/de/developers/docs/consensus-mechanisms/pos/index.md b/public/content/translations/de/developers/docs/consensus-mechanisms/pos/index.md similarity index 100% rename from src/content/translations/de/developers/docs/consensus-mechanisms/pos/index.md rename to public/content/translations/de/developers/docs/consensus-mechanisms/pos/index.md diff --git a/src/content/translations/de/developers/docs/consensus-mechanisms/pow/index.md b/public/content/translations/de/developers/docs/consensus-mechanisms/pow/index.md similarity index 100% rename from src/content/translations/de/developers/docs/consensus-mechanisms/pow/index.md rename to public/content/translations/de/developers/docs/consensus-mechanisms/pow/index.md diff --git a/src/content/translations/de/developers/docs/consensus-mechanisms/pow/mining/index.md b/public/content/translations/de/developers/docs/consensus-mechanisms/pow/mining/index.md similarity index 100% rename from src/content/translations/de/developers/docs/consensus-mechanisms/pow/mining/index.md rename to public/content/translations/de/developers/docs/consensus-mechanisms/pow/mining/index.md diff --git a/src/content/translations/de/developers/docs/dapps/index.md b/public/content/translations/de/developers/docs/dapps/index.md similarity index 100% rename from src/content/translations/de/developers/docs/dapps/index.md rename to public/content/translations/de/developers/docs/dapps/index.md diff --git a/src/content/translations/de/developers/docs/data-and-analytics/block-explorers/index.md b/public/content/translations/de/developers/docs/data-and-analytics/block-explorers/index.md similarity index 100% rename from src/content/translations/de/developers/docs/data-and-analytics/block-explorers/index.md rename to public/content/translations/de/developers/docs/data-and-analytics/block-explorers/index.md diff --git a/src/content/translations/de/developers/docs/data-and-analytics/index.md b/public/content/translations/de/developers/docs/data-and-analytics/index.md similarity index 100% rename from src/content/translations/de/developers/docs/data-and-analytics/index.md rename to public/content/translations/de/developers/docs/data-and-analytics/index.md diff --git a/src/content/translations/de/developers/docs/development-networks/index.md b/public/content/translations/de/developers/docs/development-networks/index.md similarity index 100% rename from src/content/translations/de/developers/docs/development-networks/index.md rename to public/content/translations/de/developers/docs/development-networks/index.md diff --git a/src/content/translations/de/developers/docs/ethereum-stack/index.md b/public/content/translations/de/developers/docs/ethereum-stack/index.md similarity index 100% rename from src/content/translations/de/developers/docs/ethereum-stack/index.md rename to public/content/translations/de/developers/docs/ethereum-stack/index.md diff --git a/src/content/translations/de/developers/docs/evm/evm.png b/public/content/translations/de/developers/docs/evm/evm.png similarity index 100% rename from src/content/translations/de/developers/docs/evm/evm.png rename to public/content/translations/de/developers/docs/evm/evm.png diff --git a/src/content/translations/de/developers/docs/evm/index.md b/public/content/translations/de/developers/docs/evm/index.md similarity index 100% rename from src/content/translations/de/developers/docs/evm/index.md rename to public/content/translations/de/developers/docs/evm/index.md diff --git a/src/content/translations/de/developers/docs/evm/opcodes/index.md b/public/content/translations/de/developers/docs/evm/opcodes/index.md similarity index 100% rename from src/content/translations/de/developers/docs/evm/opcodes/index.md rename to public/content/translations/de/developers/docs/evm/opcodes/index.md diff --git a/src/content/translations/de/developers/docs/frameworks/index.md b/public/content/translations/de/developers/docs/frameworks/index.md similarity index 100% rename from src/content/translations/de/developers/docs/frameworks/index.md rename to public/content/translations/de/developers/docs/frameworks/index.md diff --git a/src/content/translations/de/developers/docs/gas/gas.png b/public/content/translations/de/developers/docs/gas/gas.png similarity index 100% rename from src/content/translations/de/developers/docs/gas/gas.png rename to public/content/translations/de/developers/docs/gas/gas.png diff --git a/src/content/translations/de/developers/docs/gas/index.md b/public/content/translations/de/developers/docs/gas/index.md similarity index 100% rename from src/content/translations/de/developers/docs/gas/index.md rename to public/content/translations/de/developers/docs/gas/index.md diff --git a/src/content/translations/de/developers/docs/ides/index.md b/public/content/translations/de/developers/docs/ides/index.md similarity index 100% rename from src/content/translations/de/developers/docs/ides/index.md rename to public/content/translations/de/developers/docs/ides/index.md diff --git a/src/content/translations/de/developers/docs/index.md b/public/content/translations/de/developers/docs/index.md similarity index 100% rename from src/content/translations/de/developers/docs/index.md rename to public/content/translations/de/developers/docs/index.md diff --git a/src/content/translations/de/developers/docs/intro-to-ether/index.md b/public/content/translations/de/developers/docs/intro-to-ether/index.md similarity index 100% rename from src/content/translations/de/developers/docs/intro-to-ether/index.md rename to public/content/translations/de/developers/docs/intro-to-ether/index.md diff --git a/src/content/translations/de/developers/docs/intro-to-ethereum/index.md b/public/content/translations/de/developers/docs/intro-to-ethereum/index.md similarity index 100% rename from src/content/translations/de/developers/docs/intro-to-ethereum/index.md rename to public/content/translations/de/developers/docs/intro-to-ethereum/index.md diff --git a/public/content/translations/de/developers/docs/mev/index.md b/public/content/translations/de/developers/docs/mev/index.md new file mode 100644 index 00000000000..70d164de2c1 --- /dev/null +++ b/public/content/translations/de/developers/docs/mev/index.md @@ -0,0 +1,129 @@ +--- +title: Maximaler extrahierbarer Wert (MEV) +description: Eine Einführung in den maximal extrahierbaren Wert (MEV) +lang: de +--- + +Der Maximal extrahierbare Wert (MEV) bezieht sich auf den maximalen Wert, der aus der Blockproduktion extrahiert werden kann und der über die Standard-Blockprämie und die Gasgebühren hinausgeht, indem Transaktionen in einem Block einbezogen, ausgeschlossen oder in der Reihenfolge geändert werden. + +## Durch Miner extrahierbarer Wert + +Dieses Konzept wurde erstmals im Rahmen des [Arbeitsnachweis](/developers/docs/consensus-mechanisms/pow/) angewandt und anfangs als „miner extractable value" bezeichnet. Das liegt daran, dass beim Arbeitsnachweis die Miner den Einschluss, den Ausschluss und die Reihenfolge von Transaktionen kontrollieren. Nach der Umstellung auf Proof-of-Stake über [Die Zusammenführung](/roadmap/merge) werden jedoch die Validierer für diese Rollen verantwortlich sein, und Mining wird nicht mehr möglich sein. Die Methoden der Wertextraktion werden auch nach dieser Umstellung fortbestehen, so dass eine Namensänderung erforderlich war. Um das gleiche Akronym der Kontinuität willen und gleichzeitig die gleiche grundlegende Bedeutung beizubehalten, wird jetzt der „maximal extrahierbare Wert" als umfassenderer Ersatz verwendet. + +## Voraussetzungen {#prerequisites} + +Stellen Sie sicher, dass Sie mit [Transaktionen](/developers/docs/transactions/), [Blöcken](/developers/docs/blocks/), [Gas](/developers/docs/gas/) und [Mining](/developers/docs/consensus-mechanisms/pow/mining/) vertraut sind. Eine Vertrautheit mit [dApps](/dapps/) und [DeFi](/defi/) ist ebenfalls hilfreich. + +## MEV-Extrahierung {#mev-extraction} + +Theoretisch kommt MEV ausschließlich den Minern zugute, da Miner die einzige Partei sind, welche die Ausführung einer profitablen MEV-Gelegenheit garantieren kann (zumindest in der aktuellen Proof-of-Work-Kette; dies wird sich nach [Die Zusammenführung](/roadmap/merge/) ändern). In der Praxis wird jedoch ein großer Teil des MEV von unabhängigen Netzwerkteilnehmern, den sogenannten „Suchenden", extrahiert Die Suchenden lassen komplexe Algorithmen auf Blockchain-Daten laufen, um profitable MEV-Möglichkeiten zu erkennen, und haben Bots, die diese profitablen Transaktionen automatisch an das Netzwerk übermitteln. + +Die Miner erhalten ohnehin einen Teil des vollen MEV-Betrags, weil die Suchenden bereit sind, hohe Gasgebühren zu zahlen (die an die Miner gehen), um im Gegenzug die Wahrscheinlichkeit zu erhöhen, dass ihre profitablen Transaktionen in einen Block aufgenommen werden. Unter der Annahme, dass die Suchenden ökonomisch rational handeln, wird die Gasgebühr, die ein Suchender zu zahlen bereit ist, bis zu 100 % seines MEV betragen (denn wenn die Gasgebühr höher wäre, würde der Suchende Geld verlieren). + +Bei einigen stark umkämpften MEV-Möglichkeiten wie [DEX-Arbitrage](#mev-examples-dex-arbitrage) müssen die Suchenden unter Umständen 90 % oder sogar mehr ihrer gesamten MEV-Einnahmen in Form von Gasgebühren an den Miner zahlen, weil so viele Leute denselben profitablen Arbitragehandel betreiben wollen. Denn nur wenn sie das Geschäft mit dem höchsten Gaspreis einreichen, ist gewährleistet, dass ihr Arbitragegeschäft zustande kommt. + +### Gas-Golfen {#mev-extraction-gas-golfing} + +Diese Dynamik hat dazu geführt, dass das „Gas Golfen" - also das Programmieren von Transaktionen so, dass sie möglichst wenig Gas verbrauchen - zu einem Wettbewerbsvorteil geworden ist, weil es den Suchenden ermöglicht, einen höheren Gaspreis festzulegen und gleichzeitig ihre gesamten Gasgebühren konstant zu halten (da Gasgebühren = Gaspreis \* verbrauchtes Gas). + +Einige bekannte Gas-Golf-Techniken sind: Verwenden von Adressen, die mit einer langen Reihe von Nullen beginnen (z. B. [0x0000000000C521824EaFf97Eac7B73B084ef9306](https://etherscan.io/address/0x0000000000c521824eaff97eac7b73b084ef9306)), da sie weniger Platz (und damit Gas) zum Speichern benötigen; und das Belassen kleiner [ERC-20](/developers/docs/standards/tokens/erc-20/)-Token-Guthaben in Verträgen, da es mehr Gas kostet, einen Speicher-Slot zu initialisieren (der Fall, wenn das Guthaben gleich 0 ist), als einen Speicherplatz zu aktualisieren. Die Suche nach weiteren Techniken zur Verringerung des Gasverbrauchs ist ein aktiver Research-Bereich unter den Forschern. + +### Generalisierte Vorläufer {#mev-extraction-generalized-frontrunners} + +Anstatt komplexe Algorithmen zu programmieren, um gewinnbringende MEV-Möglichkeiten zu erkennen, lassen einige Suchende generalisierte Vorläufer betreiben. Generalisierte Vorläufer sind Bots, die den Mempool beobachten, um profitable Transaktionen zu erkennen. Der Vorläufer kopiert den Code der potenziell profitablen Transaktion, ersetzt die Adressen durch die Adresse des Vorläufers und führt die Transaktion lokal aus, um zu überprüfen, ob die geänderte Transaktion zu einem Gewinn für die Adresse des Vorläufers führt. Wenn die Transaktion tatsächlich rentabel ist, reicht der Vorläufer die geänderte Transaktion mit der ersetzten Adresse und einem höheren Gaspreis ein als den der Original-Transaktion und erhält so den MEV des ursprünglichen Suchenden. + +### Flashbots {#mev-extraction-flashbots} + +Flashbots ist ein unabhängiges Projekt, das den Go-Ethereum-Client um einen Dienst erweitert, der es Suchenden ermöglicht, MEV-Transaktionen an Miner zu übermitteln, ohne sie dem öffentlichen Mempool zu offenzulegen. Dadurch wird verhindert, dass Transaktionen von allgemeinen Vorläufern ausgeführt werden. + +Zum jetzigen Zeitpunkt wird ein erheblicher Teil der MEV-Transaktionen über Flashbots abgewickelt, was bedeutet, dass allgemeine Vorläufer nicht mehr so effektiv sind wie früher. + +## MEV-Beispiele {#mev-examples} + +Der MEV taucht auf der Blockchain auf mehrere Arten auf. + +### DEX-Arbitrage {#mev-examples-dex-arbitrage} + +[Decentralized Exchange](/glossary/#dex) (DEX) Arbitrage ist die einfachste und bekannteste MEV-Möglichkeit. Infolgedessen ist sie auch die wettbewerbsfähigste. + +Das funktioniert so: Wenn zwei DEX einen Token zu zwei unterschiedlichen Preisen anbieten, kann jemand den Token auf dem DEX mit dem niedrigeren Preis kaufen und auf dem DEX mit dem höheren Preis in einer einzigen, atomaren Transaktion verkaufen. Dank der Mechanik der Blockchain ist dies eine echte, risikolose Arbitrage. + +[Hier ist ein Beispiel](https://etherscan.io/tx/0x5e1657ef0e9be9bc72efefe59a2528d0d730d478cfc9e6cdd09af9f997bb3ef4) einer profitablen Arbitrage-Transaktion, bei der ein Suchender 1.000 ETH in 1.045 ETH umwandelte, indem er die unterschiedlichen Preise des Paares ETH/DAI bei Uniswap ggü. Sushiswap ausnutzte. + +### Liquidationen {#mev-examples-liquidations} + +Eine weitere bekannte MEV-Möglichkeit sind Leihprotokoll-Liquidationen. + +Leihprotokolle wie Maker und Aave funktionieren, indem sie von den Nutzern verlangen, eine Art von Sicherheit zu hinterlegen (z.B. ETH). Die Nutzer können sich dann verschiedene Vermögenswerte und Token von anderen leihen, je nachdem, was sie brauchen (zum Beispiel können sie sich MKR leihen, wenn sie über einen Vorschlag der MakerDAO-Governance abstimmen wollen, oder SUSHI, wenn sie einen Teil der Handelsgebühren auf Sushiswap verdienen wollen), und zwar bis zu einem bestimmten Betrag ihrer hinterlegten Sicherheiten - zum Beispiel 30 % (der genaue Prozentsatz der Leihkraft wird durch das Protokoll festgelegt). Die Nutzer, von denen sie sich die anderen Token leihen, fungieren in diesem Fall als Verleiher. + +Da der Wert der Sicherheiten eines Kreditnehmers schwankt, ändert sich auch seine Kreditaufnahmefähigkeit. Wenn der Wert der geliehenen Vermögenswerte aufgrund von Marktschwankungen etwa 30 % des Wertes ihrer Sicherheiten übersteigt (auch hier wird der genaue Prozentsatz durch das Protokoll festgelegt), erlaubt das Protokoll in der Regel jedem, die Sicherheiten zu verwerten und die Kreditgeber sofort zu entschädigen (dies ist vergleichbar mit der Funktionsweise von [Margin Calls](https://www.investopedia.com/terms/m/margincall.asp) im traditionellen Finanzwesen). Im Falle einer Liquidation muss der Kreditnehmer in der Regel eine saftige Liquidationsgebühr zahlen, von der ein Teil an den Liquidator geht - hier kommt der MEV ins Spiel. + +Die Suchenden konkurrieren darum, die Blockchain-Daten so schnell wie möglich zu analysieren, um festzustellen, welche Kreditnehmer liquidiert werden können, und als Erste eine Liquidationstransaktion einzureichen und die Liquidationsgebühr für sich selbst zu kassieren. + +### Der Sandwich-Handel {#mev-examples-sandwich-trading} + +Der Sandwich-Handel ist eine weitere gängige Methode der MEV-Extraktion. + +Um ein Sandwich zu finden, wird ein Sucher den Mempool nach großen DEX-Geschäften beobachten. Nehmen wir zum Beispiel an, jemand möchte 10.000 UNI mit DAI auf Uniswap kaufen. Ein Handel dieser Größenordnung wird sich erheblich auf das UNI/DAI-Paar auswirken und den Kurs von UNI gegenüber DAI möglicherweise erheblich ansteigen lassen. + +Ein Sucher kann die ungefähre Preisauswirkung dieses großen Handels auf das Paar UNI/DAI berechnen und einen optimalen Kaufauftrag unmittelbar _vor_ dem großen Handel ausführen, indem er UNI billig kauft, und dann einen Verkaufsauftrag unmittelbar _nach_ dem großen Handel ausführen, indem er sie zu dem durch den großen Auftrag erzeugten höheren Preis verkauft. + +Sandwiching ist jedoch riskanter, da es nicht atomar (im Gegensatz zu DEX-Arbitrage, wie oben beschrieben) und anfällig für einen [Salmonellenangriff](https://github.com/Defi-Cartel/salmonella) ist. + +### NFT MEV {#mev-examples-nfts} + +MEV im NFT-Raum ist ein neu auftretendes Phänomen, das nicht unbedingt profitabel ist. + +Da NEU-Transaktionen jedoch auf derselben Blockchain stattfinden, die auch von allen anderen Ethereum-Transaktionen genutzt wird, können Suchende auch auf dem NFT-Markt ähnliche Techniken wie bei den traditionellen MEV-Möglichkeiten anwenden. + +Wenn es beispielsweise eine beliebte NFT-Abgabe gibt und ein Suchender eine bestimmte NFT oder eine Reihe von NFTs haben möchte, kann er eine Transaktion so programmieren, dass er der erste in der Schlange ist, um die NFT zu kaufen, oder er kann die gesamte Reihe von NFTs in einer einzigen Transaktion kaufen. Oder wenn ein NFT [fälschlicherweise zu einem niedrigen Preis](https://www.theblockcrypto.com/post/113546/mistake-sees-69000-cryptopunk-sold-for-less-than-a-cent) angeboten wird, kann ein Suchender anderen Käufern zuvorkommen und es billig ergattern. + +Ein prominentes Beispiel für NFT MEV entstand, als ein Sucher 7 Millionen Dollar ausgab, um [jeden einzelnen Cryptopunk zum Mindestpreis zu kaufen](https://etherscan.io/address/0x650dCdEB6ecF05aE3CAF30A70966E2F395d5E9E5). Ein Blockchain-Forscher [erläuterte auf Twitter](https://twitter.com/IvanBogatyy/status/1422232184493121538), wie der Käufer mit einem MEV-Anbieter zusammenarbeitete, um seinen Kauf geheim zu halten. + +### Der lange Schwanz {#mev-examples-long-tail} + +DEX-Arbitrage, Liquidationen und Sandwich-Trading sind allesamt sehr bekannte MEV-Möglichkeiten, die für neue Suchende wahrscheinlich nicht profitabel sein werden. Es gibt jedoch eine ganze Reihe weniger bekannter MEV-Möglichkeiten (NFT MEV ist wohl eine davon). + +Suchende, die gerade erst anfangen, können möglicherweise mehr Erfolg haben, wenn sie nach MEV in diesem längeren Schwanz suchen. Die [MEV-Jobbörse](https://github.com/flashbots/mev-job-board) von Flashbot listet einige neue Möglichkeiten auf. + +## Auswirkungen von MEV {#effects-of-mev} + +MEV ist nicht nur schlecht - es gibt sowohl positive als auch negative Folgen von MEV auf Ethereum. + +### Das Positive {#effects-of-mev-the-good} + +Viele DeFi-Projekte sind auf wirtschaftlich rationale Akteure angewiesen, um die Nützlichkeit und Stabilität ihrer Protokolle zu gewährleisten. DEX-Arbitrage stellt zum Beispiel sicher, dass die Nutzer die besten und korrektesten Preise für ihre Token erhalten, und Kreditprotokolle verlassen sich auf schnelle Liquidationen, wenn Kreditnehmer unter die Besicherungsquote fallen, um sicherzustellen, dass die Kreditgeber zurückbezahlt werden. + +Ohne rationale Suchende, die nach wirtschaftlichen Ineffizienzen suchen und diese beheben und die wirtschaftlichen Anreize der Protokolle nutzen, könnten DeFi-Protokolle und dApps im Allgemeinen nicht so robust sein, wie sie es heute sind. + +### Das Negative {#effects-of-mev-the-bad} + +Auf der Anwendungsebene führen einige Formen des MEV, wie der Sandwich-Handel, zu einer eindeutig schlechteren Erfahrung für die Nutzer. Nutzer, die sich in einem „Sandwich" befinden, müssen mit erhöhter Verzögerung und schlechterer Ausführung ihrer Geschäfte rechnen. + +Auf der Netzwerkebene führen verallgemeinerte Vorläufer und die von ihnen häufig durchgeführten Gaspreisauktionen (bei denen zwei oder mehr Vorläufer um die Aufnahme ihrer Transaktion in den nächsten Block konkurrieren, indem sie den Gaspreis ihrer eigenen Transaktionen schrittweise erhöhen) zu einer Überlastung des Netzwerks und hohen Gaspreisen für alle anderen, die versuchen, reguläre Transaktionen durchzuführen. + +Abgesehen von dem, was _innerhalb_ der Blöcke geschieht, kann MEV auch _zwischen_ den Blöcken schädliche Auswirkungen haben. Wenn der in einem Block verfügbare MEV die Standard-Blockbelohnung deutlich übersteigt, können Miner einen Anreiz haben, Blöcke zu reminen und den MEV für sich selbst einzunehmen, was zu einer Reorganisation der Blockchain und einer Instabilität des Konsenses führt. + +Diese Möglichkeit der Reorganisation der Blockchain wurde [bereits bei der Bitcoin-Blockchain](https://dl.acm.org/doi/10.1145/2976749.2978408) untersucht. Da sich die Bitcoin-Blockbelohnung halbiert und die Transaktionsgebühren einen immer größeren Teil der Blockbelohnung ausmachen, entstehen Situationen, in denen es für die Miner wirtschaftlich rational wird, auf die Belohnung des nächsten Blocks zu verzichten und stattdessen vergangene Blöcke mit höheren Gebühren zu bearbeiten. Mit dem Wachstum von MEV könnte die gleiche Situation bei Ethereum eintreten und die Integrität der Blockchain bedrohen. + +## Zustand der MEV {#state-of-mev} + +Die MEV-Förderung stieg Anfang 2021 sprunghaft an, was in den ersten Monaten des Jahres zu extrem hohen Gaspreisen führte. Das Auftauchen von Flashbots MEV-Relais hat die Effektivität von allgemeinen Vorläufern reduziert und die Gaspreisauktionen aus der Kette genommen, was die Gaspreise für normale Nutzer senkt. + +Während viele Suchende immer noch gutes Geld mit MEV verdienen, werden die Miner mit zunehmender Bekanntheit der Gelegenheiten und immer mehr Suchenden, die um dieselbe Gelegenheit konkurrieren, immer mehr MEV-Einnahmen erzielen (weil die gleiche Art von Gasauktionen, wie sie oben beschrieben wurden, auch in Flashbots stattfinden, wenn auch auf privater Basis, und die Miner die daraus resultierenden Gaseinnahmen erzielen). MEV gibt es auch nicht nur bei Ethereum, und da die Möglichkeiten bei Ethereum immer wettbewerbsfähiger werden, weichen die Suchenden auf andere Blockchains wie Binance Smart Chain aus, wo ähnliche MEV-Möglichkeiten wie bei Ethereum bestehen, aber weniger Wettbewerb herrscht. + +Mit dem Wachstum und der zunehmenden Beliebtheit von DeFi könnte MEV schon bald die Basisbelohnung eines Ethereum-Blocks deutlich übertreffen. Damit wächst die Möglichkeit, dass egoistische Blöcke zurückbleiben und der Konsens instabil wird. Einige sehen darin eine existenzielle Bedrohung für Ethereum, und die Abschreckung von egoistischem Mining ist ein aktives Forschungsgebiet in der Ethereum-Protokolltheorie. Eine Lösung, die derzeit untersucht wird, ist [MEV-Reward-Smoothing](https://ethresear.ch/t/committee-driven-mev-smoothing/10408). + +## Zugehörige Ressourcen {#related-resources} + +- [Flashbots GitHub](https://github.com/flashbots/pm) +- [MEV-Explore](https://explore.flashbots.net/) _Dashboard und Live-Transaktions-Explorer für MEV-Transaktionen_ + +## Weiterführende Informationen {#further-reading} + +- [Was ist Miner-Extractable Value (MEV)?](https://blog.chain.link/what-is-miner-extractable-value-mev/) +- [MEV und ich](https://research.paradigm.xyz/MEV) +- [Ethereum ist ein dunkler Wald](https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest/) +- [Flucht aus dem dunklen Wald](https://samczsun.com/escaping-the-dark-forest/) +- [Flashbots: Vorläufer in der MEV-Krise](https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752) +- [@bertcmillers MEV-Themen](https://twitter.com/bertcmiller/status/1402665992422047747) diff --git a/src/content/translations/de/developers/docs/networks/index.md b/public/content/translations/de/developers/docs/networks/index.md similarity index 100% rename from src/content/translations/de/developers/docs/networks/index.md rename to public/content/translations/de/developers/docs/networks/index.md diff --git a/src/content/translations/de/developers/docs/nodes-and-clients/archive-nodes/index.md b/public/content/translations/de/developers/docs/nodes-and-clients/archive-nodes/index.md similarity index 100% rename from src/content/translations/de/developers/docs/nodes-and-clients/archive-nodes/index.md rename to public/content/translations/de/developers/docs/nodes-and-clients/archive-nodes/index.md diff --git a/src/content/translations/de/developers/docs/nodes-and-clients/bootnodes/index.md b/public/content/translations/de/developers/docs/nodes-and-clients/bootnodes/index.md similarity index 100% rename from src/content/translations/de/developers/docs/nodes-and-clients/bootnodes/index.md rename to public/content/translations/de/developers/docs/nodes-and-clients/bootnodes/index.md diff --git a/public/content/translations/de/developers/docs/nodes-and-clients/client-diversity/index.md b/public/content/translations/de/developers/docs/nodes-and-clients/client-diversity/index.md new file mode 100644 index 00000000000..38bb734b15e --- /dev/null +++ b/public/content/translations/de/developers/docs/nodes-and-clients/client-diversity/index.md @@ -0,0 +1,109 @@ +--- +title: Client-Diversität +description: Eine ausführliche Erklärung über die Bedeutung der Client-Vielfalt für Ethereum. +lang: de +sidebarDepth: 2 +--- + +Das Verhalten eines Ethereum-Knotens wird durch die von ihm ausgeführte Client-Software gesteuert. Es gibt mehrere Ethereum-Clients auf Produktionsebene, die jeweils von verschiedenen Teams in verschiedenen Sprachen entwickelt und gepflegt werden. Die Clients werden nach einer gemeinsamen Spezifikation aufgebaut, die sicherstellt, dass die Clients nahtlos miteinander kommunizieren und die gleiche Funktionalität haben sowie ein gleichwertiges Nutzererlebnis bieten. Im Moment jedoch ist die Verteilung von Clients auf Knotenpunkte nicht gleich genug, um diese Netzwerkbefestigung auf sein volles Potenzial zu realisieren. Idealerweise teilen sich Nutzer ungefähr gleich über die verschiedenen Clients hinweg und bringen so viel Client-Vielfalt wie möglich ins Netzwerk. + +## Voraussetzungen {#prerequisites} + +Wenn Sie noch nicht wissen, was Nodes und Clients sind, lesen Sie [Nodes und Clients](/developers/docs/nodes-and-clients/). [Ausführungs-](/glossary/#execution-layer) und [Konsensebenen](/glossary/#consensus-layer) sind im Glossar definiert. + +## Warum gibt es mehrere Clients? {#why-multiple-clients} + +Es gibt mehrere, unabhängig voneinander entwickelte und gewartete Clients, weil die Client-Vielfalt das Netzwerk widerstandsfähiger gegen Angriffe und Fehler macht. Mehrere Clients sind die einzigartige Stärke von Ethereum – andere Blockchains verlassen sich auf die Unfehlbarkeit eines einzigen Clients. Es reicht jedoch nicht aus, einfach mehrere Clients zur Verfügung zu haben, sie müssen von der Community angenommen werden und die Anzahl der aktiven Knoten muss relativ gleichmäßig auf sie verteilt sein. + +## Warum ist die Client-Vielfalt wichtig? {#client-diversity-importance} + +Viele unabhängig voneinander entwickelte und gewartete Clients sind für die Sicherheit eines dezentralen Netzwerks unerlässlich. Lassen Sie uns die Gründe dafür untersuchen. + +### Fehler {#bugs} + +Ein Fehler in einem einzelnen Client stellt ein geringeres Risiko für das Netzwerk dar, wenn er nur eine Minderheit der Ethereum-Knoten repräsentiert. Bei einer annähernd gleichmäßigen Verteilung der Knoten auf viele Clients ist die Wahrscheinlichkeit, dass die meisten Clients von einem gemeinsamen Problem betroffen sind, gering. Das Netzwerk ist daher robuster. + +### Verteidigung gegen Angriffe {#resilience} + +Die Client-Vielfalt bietet auch eine gewisse Widerstandsfähigkeit gegen Angriffe. Ein Angriff, bei dem [ein bestimmter Client in einen bestimmten Bereich der Chain gelockt wird](https://twitter.com/vdWijden/status/1437712249926393858), dürfte zum Besipiel kaum erfolgreich sein, da andere Clients wahrscheinlich nicht auf die gleiche Weise ausgenutzt werden können und die kanonische Chain nicht beschädigt wird. Eine geringe Client-Vielfalt erhöht das Risiko, das mit einem Hack auf den dominanten Client verbunden ist. Die Client-Vielfalt hat sich bereits als wichtiger Schutz gegen böswillige Angriffe auf das Netzwerk erwiesen. So war beispielsweise der Denial-of-Service-Angriff von Shanghai im Jahr 2016 möglich, weil es den Angreifern gelang, den dominanten Client (Geth) dazu zu bringen, einen „Slow Disk I/O-Vorgang“ zehntausende Male pro Block auszuführen. Da auch alternative Clients online waren, die diese Schwachstelle nicht aufwiesen, konnte Ethereum dem Angriff widerstehen und weiterarbeiten, während die Schwachstelle in Geth behoben wurde. + +### Finalität von Proof-of-stake {#finality} + +Ein Fehler in einem Konsensclient mit mehr als 33 % der Ethereum-Knoten könnte verhindern, dass die Konsensebene finalisieren kann. Das bedeutet, dass die Nutzer nicht darauf vertrauen können, dass Transaktionen nicht irgendwann rückgängig gemacht oder geändert werden. Dies wäre für viele der auf Ethereum aufbauenden Anwendungen, insbesondere DeFi, sehr problematisch. + + Schlimmer noch, ein kritischer Fehler in einem Client mit einer Zweidrittelmehrheit könnte dazu führen, dass die Chain nicht korrekt geteilt und finalisiert wird. Dies wiederum würde dazu führen, dass eine große Anzahl von Validatoren auf einer ungültigen Chain stecken bleibt. Wenn sie sich der korrekten Chain wieder anschließen möchten, müssen diese Validatoren mit Slashing oder einem langsamen und teuren freiwilligen Rückzug und Reaktivierung rechnen. Das Ausmaß eines Slashings skaliert mit der Anzahl der schuldigen Knoten, wobei maximal eine Zweidrittelmehrheit geslashed werden kann (32 ETH). + +Obwohl dies unwahrscheinliche Szenarien sind, kann das Ethereum-Ökosystem das Risiko mindern, indem es die Verteilung der Clients auf die aktiven Knoten ausgleicht. Im Idealfall würde kein Konsensclient jemals einen Anteil von 33 % an der Gesamtzahl der Nodes erreichen. + +### Gemeinsame Verantwortung {#responsibility} + +Bei Mehrheitsclients fallen außerdem Personalkosten an. Ein kleines Entwicklungsteam wird dadurch stärker belastet und trägt mehr Verantwortung. Je geringer die Client-Vielfalt ist, desto größer ist die Last der Verantwortung für die Entwickler, die den Mehrheitsclient pflegen. Die Verteilung dieser Verantwortung auf mehrere Teams ist vorteilhaft für die Sicherheit des Knoten-Netzwerks und für das Personalnetzwerk von Ethereum. + +## Aktuelle Client-Vielfalt {#current-client-diversity} + +![Ein Tortendiagramm, das die Client-Vielfalt zeigt](./client-diversity.png) _Diagramm-Daten von [ethernodes.org](https://ethernodes.org) und [clientdiversity.org](https://clientdiversity.org/)_ + +Die beiden Tortendiagramme oben zeigen Momentaufnahmen der aktuellen Client-Vielfalt für die Ausführungs- und die Konsensschicht (zum Zeitpunkt der Erstellung im Januar 2022). Die Ausführungsebene wird überwiegend von [Geth](https://geth.ethereum.org/) dominiert, mit [Open Ethereum](https://openethereum.github.io/) an zweiter mit weitem Abstand, [Erigon](https://github.com/ledgerwatch/erigon) an dritter und [Nethermind](https://nethermind.io/) an vierter Stelle, wobei andere Clients weniger als 1 % des Netzwerks ausmachen. Der am häufigsten verwendete Client auf der Konsensschicht - [Prysm](https://prysmaticlabs.com/#projects) - ist nicht so dominant wie Geth, macht aber immer noch über 60 % des Netzwerks aus. [Lighthouse](https://lighthouse.sigmaprime.io/) und [Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) machen ca. 20 % bzw. ca. 14 % aus. Andere Clients werden nur selten verwendet. + +Die Daten der Ausführungsebene wurden am 23.01.2022 von [Ethernodes](https://ethernodes.org) bezogen. Die Daten für Konsensclients stammen von [Michael Sproul](https://github.com/sigp/blockprint). Die Daten der Konsensclients sind schwieriger zu beschaffen, da die Clients der Konsensschicht nicht immer eindeutige Spuren hinterlassen, anhand derer sie identifiziert werden können. Die Daten wurden mit einem Klassifizierungsalgorithmus generiert, der manchmal einige der Minderheitenclients vertauscht (siehe [hier](https://twitter.com/sproulM_/status/1440512518242197516) für weitere Einzelheiten). Im obigen Diagramm werden diese mehrdeutigen Klassifizierungen mit einem Entweder-Oder-Label behandelt (z. B. Nimbus/Teku). Nichtsdestotrotz ist es klar, dass die Mehrheit des Netzwerks Prysm verwendet. Bei den Daten handelt es sich um eine Momentaufnahme über einen festen Satz von Blöcken (in diesem Fall Beacon-Blöcke in den Slots 2048001 bis 2164916), und die Dominanz von Prysm war zeitweise höher, über 68 %. Obwohl es sich nur um Momentaufnahmen handelt, vermitteln die Werte im Diagramm einen guten allgemeinen Eindruck vom aktuellen Stand der Client-Vielfalt. + +Aktuelle Daten zur Client-Vielfalt für die Konsensebene sind jetzt unter [clientdiversity.org](https://clientdiversity.org/) verfügbar. + +## Ausführungsebene {#execution-layer} + +Bisher hat sich die Diskussion über die Client-Vielfalt hauptsächlich auf die Konsensschicht konzentriert. Auf den Ausführungsclient [Geth](https://geth.ethereum.org) entfallen jedoch derzeit rund 85 % aller Knoten. Dieser Prozentsatz ist aus denselben Gründen problematisch wie bei den Konsensclients. Zum Beispiel könnte ein Fehler in Geth, der die Transaktionsabwicklung oder die Konstruktion der Ausführungsnutzlast betrifft, dazu führen, dass Konsensclients problematische oder fehlerhafte Transaktionen abschließen. Daher wäre Ethereum sicherer mit einer gleichmäßigeren Verteilung der Ausführungsclients, idealerweise mit keinem Client, der mehr als 33 % des Netzwerks repräsentiert. + +## Verwenden eines Minderheitenclients {#use-minority-client} + +Um die Client-Vielfalt zu verbessern, müssen nicht nur einzelne Nutzer Minderheitenclients wählen, sondern auch Mining-/Validatoren-Pools und Institutionen wie die großen dApps und Börsen, um ihre Clients zu wechseln. Allerdings können alle Nutzer ihren Teil dazu beitragen, das derzeitige Ungleichgewicht auszugleichen und die Nutzung der gesamten verfügbaren Ethereum-Software zu forcieren. Nach der Zusammenführung müssen alle Knotenbetreiber einen Ausführungsclient und einen Konsensclient betreiben. Die Wahl von Kombinationen der unten vorgeschlagenen Clients wird dazu beitragen, die Client-Vielfalt zu erhöhen. + +### Ausführungs-Clients {#execution-clients} + +[Besu](https://www.hyperledger.org/use/besu) + +[Nethermind](https://downloads.nethermind.io/) + +[Erigon](https://github.com/ledgerwatch/erigon) + +[Go-Ethereum](https://geth.ethereum.org/) + +### Konsens-Clients {#consensus-clients} + +[Nimbus](https://nimbus.team/) + +[Lighthouse](https://github.com/sigp/lighthouse) + +[Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) + +[Lodestar](https://github.com/ChainSafe/lodestar) + +[Prysm](https://docs.prylabs.network/docs/getting-started) + +Technisch versierte Nutzer können dazu beitragen, diesen Prozess zu beschleunigen, indem sie mehr Anleitungen und Dokumentationen für Minderheitenclients schreiben und ihre Kollegen, die Knoten betreiben, ermutigen, von den dominanten Clients wegzugehen. Anleitungen für den Wechsel zu einem Minderheitskonsensclient finden Sie auf [clientdiversity.org](https://clientdiversity.org/). + +## Dashboards für Client-Vielfalt {#client-diversity-dashboards} + +Verschiedene Dashboards geben Echtzeit-Statistiken zur Client-Vielfalt für die Ausführungs- und Konsensebene. + +**Konsensebene:** + +- [Rated.network](https://www.rated.network/) +- [clientdiversity.org](https://clientdiversity.org/) **Ausführungsebene:** + +- [execution-diversity.info](https://execution-diversity.info/) +- [Ethernodes](https://ethernodes.org/) + +## Weiterführende Informationen {#further-reading} + +- [Client-Vielfalt auf der Konsensebene von Ethereum](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) +- [Ethereum-Zusammenführung: Führen Sie den Mehrheitsclient auf eigene Gefahr aus!](https://dankradfeist.de/ethereum/2022/03/24/run-the-majority-client-at-your-own-peril.html) – _Dankrad Fiest, 24. März 2022_ +- [Bedeutung der Client-Vielfalt](https://our.status.im/the-importance-of-client-diversity/) +- [Liste der Ethereum-Knotendienste](https://ethereumnodes.com/) +- [Die „Fünf Gründe“ für das Problem der Client-Vielfalt](https://notes.ethereum.org/@afhGjrKfTKmksTOtqhB9RQ/BJGj7uh08) +- [Ethereum-Vielfalt und wie man sie löst (YouTube)](https://www.youtube.com/watch?v=1hZgCaiqwfU) +- [clientdiversity.org](https://clientdiversity.org/) + +## Verwandte Themen {#related-topics} + +- [Einen Ethereum-Knoten betreiben](/run-a-node/) +- [Knotenpunkte und Clients](/developers/docs/nodes-and-clients/) diff --git a/src/content/translations/de/developers/docs/nodes-and-clients/eth1eth2client.png b/public/content/translations/de/developers/docs/nodes-and-clients/eth1eth2client.png similarity index 100% rename from src/content/translations/de/developers/docs/nodes-and-clients/eth1eth2client.png rename to public/content/translations/de/developers/docs/nodes-and-clients/eth1eth2client.png diff --git a/src/content/translations/de/developers/docs/nodes-and-clients/index.md b/public/content/translations/de/developers/docs/nodes-and-clients/index.md similarity index 100% rename from src/content/translations/de/developers/docs/nodes-and-clients/index.md rename to public/content/translations/de/developers/docs/nodes-and-clients/index.md diff --git a/src/content/translations/de/developers/docs/nodes-and-clients/light-clients/index.md b/public/content/translations/de/developers/docs/nodes-and-clients/light-clients/index.md similarity index 100% rename from src/content/translations/de/developers/docs/nodes-and-clients/light-clients/index.md rename to public/content/translations/de/developers/docs/nodes-and-clients/light-clients/index.md diff --git a/src/content/translations/de/developers/docs/nodes-and-clients/node-architecture/index.md b/public/content/translations/de/developers/docs/nodes-and-clients/node-architecture/index.md similarity index 100% rename from src/content/translations/de/developers/docs/nodes-and-clients/node-architecture/index.md rename to public/content/translations/de/developers/docs/nodes-and-clients/node-architecture/index.md diff --git a/src/content/translations/de/developers/docs/nodes-and-clients/node-architecture/node-architecture-text-background.png b/public/content/translations/de/developers/docs/nodes-and-clients/node-architecture/node-architecture-text-background.png similarity index 100% rename from src/content/translations/de/developers/docs/nodes-and-clients/node-architecture/node-architecture-text-background.png rename to public/content/translations/de/developers/docs/nodes-and-clients/node-architecture/node-architecture-text-background.png diff --git a/src/content/translations/de/developers/docs/nodes-and-clients/nodes-as-a-service/index.md b/public/content/translations/de/developers/docs/nodes-and-clients/nodes-as-a-service/index.md similarity index 100% rename from src/content/translations/de/developers/docs/nodes-and-clients/nodes-as-a-service/index.md rename to public/content/translations/de/developers/docs/nodes-and-clients/nodes-as-a-service/index.md diff --git a/src/content/translations/de/developers/docs/nodes-and-clients/nodes.png b/public/content/translations/de/developers/docs/nodes-and-clients/nodes.png similarity index 100% rename from src/content/translations/de/developers/docs/nodes-and-clients/nodes.png rename to public/content/translations/de/developers/docs/nodes-and-clients/nodes.png diff --git a/src/content/translations/de/developers/docs/nodes-and-clients/run-a-node/diagram.png b/public/content/translations/de/developers/docs/nodes-and-clients/run-a-node/diagram.png similarity index 100% rename from src/content/translations/de/developers/docs/nodes-and-clients/run-a-node/diagram.png rename to public/content/translations/de/developers/docs/nodes-and-clients/run-a-node/diagram.png diff --git a/src/content/translations/de/developers/docs/nodes-and-clients/run-a-node/index.md b/public/content/translations/de/developers/docs/nodes-and-clients/run-a-node/index.md similarity index 100% rename from src/content/translations/de/developers/docs/nodes-and-clients/run-a-node/index.md rename to public/content/translations/de/developers/docs/nodes-and-clients/run-a-node/index.md diff --git a/src/content/translations/de/developers/docs/oracles/index.md b/public/content/translations/de/developers/docs/oracles/index.md similarity index 100% rename from src/content/translations/de/developers/docs/oracles/index.md rename to public/content/translations/de/developers/docs/oracles/index.md diff --git a/src/content/translations/de/developers/docs/programming-languages/dart/index.md b/public/content/translations/de/developers/docs/programming-languages/dart/index.md similarity index 100% rename from src/content/translations/de/developers/docs/programming-languages/dart/index.md rename to public/content/translations/de/developers/docs/programming-languages/dart/index.md diff --git a/src/content/translations/de/developers/docs/programming-languages/delphi/index.md b/public/content/translations/de/developers/docs/programming-languages/delphi/index.md similarity index 100% rename from src/content/translations/de/developers/docs/programming-languages/delphi/index.md rename to public/content/translations/de/developers/docs/programming-languages/delphi/index.md diff --git a/src/content/translations/de/developers/docs/programming-languages/dot-net/index.md b/public/content/translations/de/developers/docs/programming-languages/dot-net/index.md similarity index 100% rename from src/content/translations/de/developers/docs/programming-languages/dot-net/index.md rename to public/content/translations/de/developers/docs/programming-languages/dot-net/index.md diff --git a/src/content/translations/de/developers/docs/programming-languages/golang/index.md b/public/content/translations/de/developers/docs/programming-languages/golang/index.md similarity index 100% rename from src/content/translations/de/developers/docs/programming-languages/golang/index.md rename to public/content/translations/de/developers/docs/programming-languages/golang/index.md diff --git a/src/content/translations/de/developers/docs/programming-languages/index.md b/public/content/translations/de/developers/docs/programming-languages/index.md similarity index 100% rename from src/content/translations/de/developers/docs/programming-languages/index.md rename to public/content/translations/de/developers/docs/programming-languages/index.md diff --git a/src/content/translations/de/developers/docs/programming-languages/java/index.md b/public/content/translations/de/developers/docs/programming-languages/java/index.md similarity index 100% rename from src/content/translations/de/developers/docs/programming-languages/java/index.md rename to public/content/translations/de/developers/docs/programming-languages/java/index.md diff --git a/src/content/translations/de/developers/docs/programming-languages/javascript/index.md b/public/content/translations/de/developers/docs/programming-languages/javascript/index.md similarity index 100% rename from src/content/translations/de/developers/docs/programming-languages/javascript/index.md rename to public/content/translations/de/developers/docs/programming-languages/javascript/index.md diff --git a/src/content/translations/de/developers/docs/programming-languages/python/index.md b/public/content/translations/de/developers/docs/programming-languages/python/index.md similarity index 100% rename from src/content/translations/de/developers/docs/programming-languages/python/index.md rename to public/content/translations/de/developers/docs/programming-languages/python/index.md diff --git a/src/content/translations/de/developers/docs/programming-languages/ruby/index.md b/public/content/translations/de/developers/docs/programming-languages/ruby/index.md similarity index 100% rename from src/content/translations/de/developers/docs/programming-languages/ruby/index.md rename to public/content/translations/de/developers/docs/programming-languages/ruby/index.md diff --git a/src/content/translations/de/developers/docs/programming-languages/rust/index.md b/public/content/translations/de/developers/docs/programming-languages/rust/index.md similarity index 100% rename from src/content/translations/de/developers/docs/programming-languages/rust/index.md rename to public/content/translations/de/developers/docs/programming-languages/rust/index.md diff --git a/src/content/translations/de/developers/docs/scaling/index.md b/public/content/translations/de/developers/docs/scaling/index.md similarity index 100% rename from src/content/translations/de/developers/docs/scaling/index.md rename to public/content/translations/de/developers/docs/scaling/index.md diff --git a/src/content/translations/de/developers/docs/scaling/optimistic-rollups/index.md b/public/content/translations/de/developers/docs/scaling/optimistic-rollups/index.md similarity index 100% rename from src/content/translations/de/developers/docs/scaling/optimistic-rollups/index.md rename to public/content/translations/de/developers/docs/scaling/optimistic-rollups/index.md diff --git a/src/content/translations/de/developers/docs/scaling/plasma/index.md b/public/content/translations/de/developers/docs/scaling/plasma/index.md similarity index 100% rename from src/content/translations/de/developers/docs/scaling/plasma/index.md rename to public/content/translations/de/developers/docs/scaling/plasma/index.md diff --git a/src/content/translations/de/developers/docs/scaling/sidechains/index.md b/public/content/translations/de/developers/docs/scaling/sidechains/index.md similarity index 100% rename from src/content/translations/de/developers/docs/scaling/sidechains/index.md rename to public/content/translations/de/developers/docs/scaling/sidechains/index.md diff --git a/src/content/translations/de/developers/docs/scaling/state-channels/index.md b/public/content/translations/de/developers/docs/scaling/state-channels/index.md similarity index 100% rename from src/content/translations/de/developers/docs/scaling/state-channels/index.md rename to public/content/translations/de/developers/docs/scaling/state-channels/index.md diff --git a/src/content/translations/de/developers/docs/scaling/validium/index.md b/public/content/translations/de/developers/docs/scaling/validium/index.md similarity index 100% rename from src/content/translations/de/developers/docs/scaling/validium/index.md rename to public/content/translations/de/developers/docs/scaling/validium/index.md diff --git a/src/content/translations/de/developers/docs/scaling/zk-rollups/index.md b/public/content/translations/de/developers/docs/scaling/zk-rollups/index.md similarity index 100% rename from src/content/translations/de/developers/docs/scaling/zk-rollups/index.md rename to public/content/translations/de/developers/docs/scaling/zk-rollups/index.md diff --git a/public/content/translations/de/developers/docs/smart-contracts/anatomy/index.md b/public/content/translations/de/developers/docs/smart-contracts/anatomy/index.md new file mode 100644 index 00000000000..a9008f9b3f0 --- /dev/null +++ b/public/content/translations/de/developers/docs/smart-contracts/anatomy/index.md @@ -0,0 +1,658 @@ +--- +title: Anatomie von Smart Contracts +description: "Ein tiefgreifender Einblick in die Anatomie eines Smart Contracts: Funktionen, Daten und Variablen" +lang: de +--- + +Ein Smart Contract ist ein Programm, das auf einer Adresse auf Ethereum läuft. Ein solcher Vertrag besteht aus Daten und Funktionen, die nach dem Erhalt einer Transaktion ausgeführt werden können. Hier ein Überblick darüber, was einen Smart Contract ausmacht. + +## Voraussetzungen {#prerequisites} + +Sie sollten sich bereits mit [Smart Contracts](/developers/docs/smart-contracts/) vertraut gemacht haben. Die Informationen in diesem Dokument sind für Personen gedacht, die bereits mit Programmiersprachen wie JavaScript oder Python vertraut sind. + +## Daten {#data} + +Alle Vertragsdaten müssen einem Ort zugewiesen werden: entweder zu `storage` oder `memory`. Speicher in einem Smart Contract zu ändern ist ein kostenintensiver Prozess. Daher sollten Sie sich überlegen, wo Ihre Daten gespeichert werden sollen. + +### Speicher {#storage} + +Gleichbleibende Daten werden als Speicher oder Storage bezeichnet und über Zustandsvariablen dargestellt. Solche Daten werden dauerhaft auf der Blockchain gespeichert. Sie müssen den Typ deklarieren, damit der Contract beim Kompilieren verfolgen kann, wie viel Speicherplatz er auf der Blockchain benötigt. + +```solidity +// Solidity example +contract SimpleStorage { + uint storedData; // State variable + // ... +} +``` + +```python +# Vyper example +storedData: int128 +``` + +Wenn Sie bereits Erfahrung im Programmieren in objektorientierten Sprachen haben, werden Sie wahrscheinlich mit den meisten Typen vertraut sein. Allerdings sollte `address` neu für Sie sein, wenn Sie noch keine Erfahrung in der Ethereum-Entwicklung haben. + +Ein `adress`-Typ kann eine Ethereum-Adresse aufnehmen, was 20 Byte oder 160 Bit entspricht. Die Ausgabe erfolgt in hexadezimaler Schreibweise mit einem führenden 0x. + +Andere Typen umfassen: + +- boolesch +- Ganzzahl +- Festkommazahlen +- Byte-Arrays mit fester Größe +- Byte-Arrays mit dynamischer Größe +- Rationale und ganzzahlige Literale +- Zeichenfolgenliterale +- Hexadezimale Literale +- Enumerationen + +Weitere Erklärungen finden Sie in folgender Dokumentation: + +- [Vyper-Typen anzeigen](https://vyper.readthedocs.io/en/v0.1.0-beta.6/types.html#value-types) +- [Solidity-Typen anzeigen](https://solidity.readthedocs.io/en/latest/types.html#value-types) + +### Speicher {#memory} + +Werte, die nur für die Lebensdauer der Ausführung einer Vertragsfunktion gespeichert werden, werden als Memory Variables (Speichervariablen) bezeichnet. Da diese nicht dauerhaft auf der Blockchain gespeichert werden, sind sie wesentlich preiswerter. + +Erfahren Sie mehr darüber, wie die EVM Daten speichert (Aufbewahrung, Speicher und Stack), in den [Solidity-Dokumenten](https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html?highlight=memory#storage-memory-and-the-stack). + +### Umgebungsvariablen {#environment-variables} + +Zusätzlich zu den Variablen, die Sie in Ihrem Vertrag definieren, gibt es einige spezielle globale Variablen. Sie werden in erster Linie verwendet, um Informationen über die Blockchain oder aktuelle Transaktion bereitzustellen. + +Beispiele: + +| **Eigenschaft** | **Statusvariable** | **Beschreibung** | +| ----------------- | ------------------ | ----------------------------------------- | +| `block.timestamp` | uint256 | Aktueller Zeitstempel der Block-Epoche | +| `msg.sender` | address | Absender der Nachricht (aktueller Aufruf) | + +## Funktionen {#functions} + +Vereinfacht gesagt können Funktionen als Antwort auf eingehende Transaktionen Informationen erhalten oder festlegen. + +Es gibt zwei Arten von Functionsaufrufen: + +- `internal` – diese erstellen keinen EVM-Aufruf + - Auf interne Funktionen und Zustandsvariablen kann nur intern zugegriffen werden (d. h. innerhalb des aktuellen Vertrags oder von ihm abgeleiteter Verträge). +- `external` – diese erzeugen einen EVM-Aufruf + - Externe Funktionen sind Teil der Vertragsschnittstelle. Das bedeutet, dass sie aus anderen Verträgen und über Transaktionen aufgerufen werden können. Eine externe Funktion `f` kann nicht intern aufgerufen werden (z. B. `f()` funktioniert nicht, aber `this.f()` funktioniert). + +Sie können auch `public` oder `private` sein + +- `public`-Funktionen können intern aus dem Vertrag oder extern über Nachrichten aufgerufen werden. +- `private`-Funktionen sind nur für den Vertrag sichtbar, in dem sie definiert sind, und nicht in abgeleiteten Verträgen. + +Sowohl Funktionen als auch Statusvariablen können öffentlich oder privat gemacht werden. + +Hier ist eine Funktion zum Aktualisieren einer Zustandsvariable für einen Smart Contract: + +```solidity +// Solidity example +function update_name(string value) public { + dapp_name = value; +} +``` + +- Der Parameter `value` des Typs `string` wird an die Funktion `update_name` übergeben. +- Es wird `public` deklariert. Das bedeutet, dass jeder darauf zugreifen kann. +- `view` wird nicht deklariert, damit eine Änderung des Vertragsstatus möglich ist. + +### View-Funktionen {#view-functions} + +Diese Funktionen verpflichten sich, den Zustand der Vertragsdaten nicht zu ändern. Gängige Beispiele sind "Getter"-Funktionen, mit denen Sie z. B. den Kontostand eines Benutzers abfragen können. + +```solidity +// Solidity example +function balanceOf(address _owner) public view returns (uint256 _balance) { + return ownerPizzaCount[_owner]; +} +``` + +```python +dappName: public(string) + +@view +@public +def readName() -> string: + return dappName +``` + +Folgende Vorgänge werden als Modifikation des Zustands angesehen: + +1. In Zustandsvariablen schreiben +2. [Ereignisse ausgeben](https://solidity.readthedocs.io/en/v0.7.0/contracts.html#events) +3. [Weitere Verträge erstellen](https://solidity.readthedocs.io/en/v0.7.0/control-structures.html#creating-contracts) +4. `selfdestruct` verwenden +5. Ether über Aufrufe senden +6. Eine Funktion aufrufen, die nicht mit `view` oder `pure` markiert ist +7. Low-Level-Aufrufe verwenden +8. Inline-Assembly verwenden, die bestimmte Opcodes enthält + +### Konstruktorfunktionen {#constructor-functions} + +`constructor`-Funktionen werden nur einmal ausgeführt, wenn der Vertrag in die Blockchain integriert wird. In vielen klassenbasierten Programmiersprachen initialisieren diese Funktionen wie `constructor` oft Zustandsvariablen auf ihre angegebenen Werte. + +```solidity +// Solidity example +// Initializes the contract's data, setting the `owner` +// to the address of the contract creator. +constructor() public { + // All smart contracts rely on external transactions to trigger its functions. + // `msg` is a global variable that includes relevant data on the given transaction, + // such as the address of the sender and the ETH value included in the transaction. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties + owner = msg.sender; +} +``` + +```python +# Vyper example + +@external +def __init__(_beneficiary: address, _bidding_time: uint256): + self.beneficiary = _beneficiary + self.auctionStart = block.timestamp + self.auctionEnd = self.auctionStart + _bidding_time +``` + +### Integrierte Funktionen {#built-in-functions} + +Zusätzlich zu den Variablen, die Sie in Ihrem Vertrag definieren, gibt es einige spezielle integrierte Funktionen. Das offensichtlichste Beispiel ist: + +- `address.send()` – Solidity +- `send(address)` – Vyper + +Diese erlauben es Smart Contracts, ETH an andere Konten zu senden. + +## Funktionen entwickeln {#writing-functions} + +Ihre Funktion benötigt folgende Elemente: + +- Parametervariable und -typ (wenn Parameter akzeptiert werden) +- interne/externe Deklaration +- Deklaration von pure/view/payable +- Gibt den Typ zurück (wenn er einen Wert zurückgibt) + +```solidity +pragma solidity >=0.4.0 <=0.6.0; + +contract ExampleDapp { + string dapp_name; // Zustandsvariable + + // Wird aufgerufen, wenn der Vertrag bereitgestellt wird und initialisiert den Wert + constructor() public { + dapp_name = "Meine Beispiel-Dapp"; + } + + // Funktion holen + function read_name() public view returns(string) { + return dapp_name; + } + + // Funktion setzen + function update_name(string value) public { + dapp_name = value; + } +} +``` + +Ein vollständiger Smart Contract könnte so aussehen. Hier stellt die `constructor`-Funktion einen Anfangswert für die `dapp_name` -Variable bereit. + +## Ereignisse und Protokolle {#events-and-logs} + +Ereignisse ermöglichen Ihnen die Kommunikation mit Ihrem Smart Contract von Ihrem Frontend oder anderen verbundenen Anwendungen aus. Wenn eine Transaktion verifiziert wird, können Smart Contracts Events emittieren und Protokolle in die Blockchain schreiben, die das Frontend dann verarbeiten kann. + +## Kommentierte Beispiele {#annotated-examples} + +Das sind einige Beispiele in Solidity. Wenn Sie mit dem Code spielen möchten, können Sie mit ihm in [Remix](http://remix.ethereum.org) interagieren. + +### Hallo Welt {#hello-world} + +```solidity +// Bestimmt die Version von Solidity mit semantischer Versionierung. +// Learn more: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma +pragma solidity ^0.5.10; + +// Defines a contract named `HelloWorld`. +// Ein Smart contract ist eine Sammlung von Funktionen und Daten (sein Zustand). +// Einmal in die Blockchain integriert, befindet sich ein Contract an einer bestimmten Adresse der Ethereum-Blockchain. +// Erfahre mehr: https://solidity.readthedocs.io/de/v0.5.10/structure-of-a-contract.html +contract HelloWorld { + + // Deklariert eine Zustandsvariable `message` vom Typ `string`. + // Zustandsvariablen sind Variablen, deren Werte dauerhaft im Vertragsspeicher hinterlegt werden. + // Das Schlüsselwort `public` macht Variablen von außerhalb eines Contracts + // zugänglich und erzeugt eine Funktion, die andere Contracts oder Clients aufrufen können, um auf den Wert zuzugreifen. + string public message; + + // Ähnlich wie viele Klassen-basierte objektorientierte Sprachen, ist ein Konstruktor + // eine spezielle Funktion, die nur bei der Vertragserstellung ausgeführt wird. + // Konstruktoren werden verwendet, um die Vertragsdaten zu initialisieren. + // Erfahre mehr: https://solidity.readthedocs.io/de/v0.5.10/contracts. tml#constructors + constructor(string memory initMessage) public { + // Akzeptiert ein String Argument `initMessage` und setzt den Wert + // in die `message` Speichervariable des Contracts). + message = initMessage; + } + + // Eine öffentliche Funktion, die ein String-Argument akzeptiert + // und die Speichervariable `message` aktualisiert. + function update(string memory newMessage) public { + message = newMessage; + } +} +``` + +### Token {#token} + +```solidity +pragma solidity ^0.5.10; + +contract Token { + // Eine `Adresse` ist mit einer E-Mail-Adresse vergleichbar - sie wird verwendet, um ein Konto auf Ethereum zu identifizieren. + // Adressen können einen Smart Contract oder ein externes (Benutzer) Konto darstellen. + // Erfahre mehr: https://solidity.readthedocs.io/en/v0.5.10/types.html#address + address public owner; + + // Ein `mapping` ist im Wesentlichen eine Hashtabellen-Datenstruktur. + // Dieses `mapping` weist einer Adresse (dem Token-Halter) ein nicht signiertes Integer (dem Token-Halter) zu. + // Erfahre mehr: https://solidity.readthedocs.io/en/v0.5.10/types.html#mapping-types + mapping (address => uint) public balances; + + // Events ermöglichen die Protokollierung von Aktivitäten auf der Blockchain. + // Ethereum Clients können auf Events hören, um auf Änderungen des Contract-Zustands zu reagieren. + // Erfahre mehr: https://solidity.readthedocs.io/de/v0.5.10/contracts. tml#Events + event Transfer(address from, address to, uint amount); + + // Initialisiert die Vertragsdaten und setzt den `owner` + // auf die Adresse des Contract-Erstellers. + constructor() public { + // Alle Smart Contracts benötigen externe Transaktionen, um Funktionen auszuführen. + // `msg` ist eine globale Variable, die relevante Daten der gegebenen Transaktion enthält, + // wie die Adresse des Senders und der in der Transaktion enthaltene ETH Wert. + // Mehr erfahren: https://solidity.readthedocs.io/de/v0.5.10/units-and-global-variables.html#block-and-transaction-properties + owner = msg.sender; + } + + // Erstellt eine Menge neuer Tokens und sendet sie an eine Adresse. + function mint(address receiver, uint amount) public { + // `require` ist eine Kontrollstruktur, die benutzt wird, um bestimmte Bedingungen zu erzwingen. + // Wenn eine `require` Anweisung zu `false` auswertet, wird eine Ausnahme ausgelöst, + // welche alle Änderungen am Status während des aktuellen Aufrufs rückgängig macht. + // Erfahren Sie mehr: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions + + // Nur der Vertragsinhaber kann diese Funktion aufrufen + require(msg.sender == owner, "Sie sind nicht der Besitzer."); + + // Erzwingt eine maximale Menge an Token + require(amount < 1e60, "Maximale Ausgabe überschritten"); + + // Erhöht den Saldo von `Empfänger` um `Betrag`. + balances[receiver] += amount; + } + + // Sendet eine Menge vorhandener Token von einem beliebigen Anrufer an eine Adresse. + function transfer(address receiver, uint amount) public { + // Der Absender muss genug Token zum Senden besitzen + require(amount <= balances[msg.sender], "Insufficient balance."); + + // Tokensalden der beiden Adressen anpassen + balances[msg.sender] -= amount; + balances[receiver] += amount; + + // Sendet das zuvor definierte Event aus + emit Transfer(msg.sender, receiver, amount); + } +} +``` + +### Einzigartiges digitales Asset {#unique-digital-asset} + +```solidity +pragma solidity ^0.5.10; + +// Importiert Symbole aus anderen Dateien in den aktuellen Contract. +// In diesem Fall eine Reihe von Hilfsverträgen von OpenZeppelin. +// Erfahre mehr: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#importing-other-source-files + +import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; +import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver. ol"; +import "../node_modules/@openzeppelin/contracts/introspection/ERC165.sol"; +import "../node_modules/@openzeppelin/contracts/math/SafeMath.sol"; + +// Das Schlüsselwort `is` wird verwendet, um Funktionen und Schlüsselwörter aus externen Smart Contracts zu erben. +// In diesem Fall erbt `CryptoPizza` von den `IERC721` und `ERC165` Contracts. +// Erfahre mehr: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#inheritance +contract CryptoPizza is IERC721, ERC165 { + // Verwendet OpenZeppelins SafeMath Bibliothek, um arithmetische Operationen sicher durchzuführen. + // Erfahre mehr: https://docs.openzeppelin.com/contracts/2. /api/math#SafeMath + using SafeMath for uint256; + + // Konstante Zustandsvariablen in Solidity sind vergleichbar mit anderen Sprachen + // du musst jedoch voneiner Expression zuweisen, die beim Kompilieren konstant ist. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constant-state-variables + uint256 constant dnaDigits = 10; + uint256 constant dnaModulus = 10 ** dnaDigits; + bytes4 private constant _ERC721_RECEIVED = 0x150b7a02; + + // Struct types let you define your own type + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#structs + struct Pizza { + string name; + uint256 dna; + } + + // Creates an empty array of Pizza structs + Pizza[] public pizzas; + + // Mapping from pizza ID to its owner's address + mapping(uint256 => address) public pizzaToOwner; + + // Mapping from owner's address to number of owned token + mapping(address => uint256) public ownerPizzaCount; + + // Mapping from token ID to approved address + mapping(uint256 => address) pizzaApprovals; + + // You can nest mappings, this example maps owner to operator approvals + mapping(address => mapping(address => bool)) private operatorApprovals; + + // Internal function to create a random Pizza from string (name) and DNA + function _createPizza(string memory _name, uint256 _dna) + // The `internal` keyword means this function is only visible + // within this contract and contracts that derive this contract + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#visibility-and-getters + internal + // `isUnique` is a function modifier that checks if the pizza already exists + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html#function-modifiers + isUnique(_name, _dna) + { + // Adds Pizza to array of Pizzas and get id + uint256 id = SafeMath.sub(pizzas.push(Pizza(_name, _dna)), 1); + + // Checks that Pizza owner is the same as current user + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions + + // note that address(0) is the zero address, + // indicating that pizza[id] is not yet allocated to a particular user. + + assert(pizzaToOwner[id] == address(0)); + + // Maps the Pizza to the owner + pizzaToOwner[id] = msg.sender; + ownerPizzaCount[msg.sender] = SafeMath.add( + ownerPizzaCount[msg.sender], + 1 + ); + } + + // Creates a random Pizza from string (name) + function createRandomPizza(string memory _name) public { + uint256 randDna = generateRandomDna(_name, msg.sender); + _createPizza(_name, randDna); + } + + // Generates random DNA from string (name) and address of the owner (creator) + function generateRandomDna(string memory _str, address _owner) + public + // Functions marked as `pure` promise not to read from or modify the state + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#pure-functions + pure + returns (uint256) + { + // Generates random uint from string (name) + address (owner) + uint256 rand = uint256(keccak256(abi.encodePacked(_str))) + + uint256(_owner); + rand = rand % dnaModulus; + return rand; + } + + // Returns array of Pizzas found by owner + function getPizzasByOwner(address _owner) + public + // Functions marked as `view` promise not to modify state + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#view-functions + view + returns (uint256[] memory) + { + // Uses the `memory` storage location to store values only for the + // lifecycle of this function call. + // Erfahre mehr: https://solidity.readthedocs.io/en/v0.5.10/introduction-to-smart-contracts.html#storage-memory-and-the-stack + uint256[] memory result = new uint256[](ownerPizzaCount[_owner]); + uint256 counter = 0; + for (uint256 i = 0; i < pizzas.length; i++) { + if (pizzaToOwner[i] == _owner) { + result[counter] = i; + counter++; + } + } + return result; + } + + // Transferiert Pizza und deren Besitzanspruch auf eine andere Adresse + function transferFrom(address _from, address _to, uint256 _pizzaId) public { + require(_from != address(0) && _to != address(0), "Invalid address."); + require(_exists(_pizzaId), "Pizza does not exist."); + require(_from != _to, "Cannot transfer to the same address."); + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + + ownerPizzaCount[_to] = SafeMath.add(ownerPizzaCount[_to], 1); + ownerPizzaCount[_from] = SafeMath.sub(ownerPizzaCount[_from], 1); + pizzaToOwner[_pizzaId] = _to; + + // Gibt ein Event aus, dass in dem importierten IERC721 Contract definiert ist + emit Transfer(_from, _to, _pizzaId); + _clearApproval(_to, _pizzaId); + } + + /** + * Übergibt auf sichere Weise den Besitzanspruch von gegebener Token ID an eine andere Adresse + * Wenn die Zieladresse ein Contract ist, muss dieser `onERC721Received` implementieren, + * was bei einem sicheren Transfer aufgerufen wird und den magischen Wert zurückgibt: + * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; + * ansonsten, wird die Transaktion abgewiesen. + */ + function safeTransferFrom(address from, address to, uint256 pizzaId) + public + { + // solium-disable-next-line arg-overflow + this.safeTransferFrom(from, to, pizzaId, ""); + } + + /** + * Übergibt auf sichere Weise den Besitzanspruch von gegebener Token ID an eine andere Adresse + * Wenn die Zieladresse ein Contract ist, muss dieser `onERC721Received` implementieren, + * was bei einem sicheren Transfer aufgerufen wird und den magischen Wert zurückgibt: + * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; + * ansonsten, wird die Transaktion abgewiesen. + */ + function safeTransferFrom( + address from, + address to, + uint256 pizzaId, + bytes memory _data + ) public { + this.transferFrom(from, to, pizzaId); + require(_checkOnERC721Received(from, to, pizzaId, _data), "Must implement onERC721Received."); + } + + /** + * Internal function to invoke `onERC721Received` on a target address + * The call is not executed if the target address is not a contract + */ + function _checkOnERC721Received( + address from, + address to, + uint256 pizzaId, + bytes memory _data + ) internal returns (bool) { + if (!isContract(to)) { + return true; + } + + bytes4 retval = IERC721Receiver(to).onERC721Received( + msg.sender, + from, + pizzaId, + _data + ); + return (retval == _ERC721_RECEIVED); + } + + // Burns a Pizza - destroys Token completely + // The `external` function modifier means this function is + // part of the contract interface and other contracts can call it + function burn(uint256 _pizzaId) external { + require(msg.sender != address(0), "Invalid address."); + require(_exists(_pizzaId), "Pizza does not exist."); + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + + ownerPizzaCount[msg.sender] = SafeMath.sub( + ownerPizzaCount[msg.sender], + 1 + ); + pizzaToOwner[_pizzaId] = address(0); + } + + // Returns count of Pizzas by address + function balanceOf(address _owner) public view returns (uint256 _balance) { + return ownerPizzaCount[_owner]; + } + + // Returns owner of the Pizza found by id + function ownerOf(uint256 _pizzaId) public view returns (address _owner) { + address owner = pizzaToOwner[_pizzaId]; + require(owner != address(0), "Invalid Pizza ID."); + return owner; + } + + // Approves other address to transfer ownership of Pizza + function approve(address _to, uint256 _pizzaId) public { + require(msg.sender == pizzaToOwner[_pizzaId], "Must be the Pizza owner."); + pizzaApprovals[_pizzaId] = _to; + emit Approval(msg.sender, _to, _pizzaId); + } + + // Returns approved address for specific Pizza + function getApproved(uint256 _pizzaId) + public + view + returns (address operator) + { + require(_exists(_pizzaId), "Pizza does not exist."); + return pizzaApprovals[_pizzaId]; + } + + /** + * Private function to clear current approval of a given token ID + * Reverts if the given address is not indeed the owner of the token + */ + function _clearApproval(address owner, uint256 _pizzaId) private { + require(pizzaToOwner[_pizzaId] == owner, "Must be pizza owner."); + require(_exists(_pizzaId), "Pizza does not exist."); + if (pizzaApprovals[_pizzaId] != address(0)) { + pizzaApprovals[_pizzaId] = address(0); + } + } + + /* + * Sets or unsets the approval of a given operator + * An operator is allowed to transfer all tokens of the sender on their behalf + */ + function setApprovalForAll(address to, bool approved) public { + require(to != msg.sender, "Cannot approve own address"); + operatorApprovals[msg.sender][to] = approved; + emit ApprovalForAll(msg.sender, to, approved); + } + + // Tells whether an operator is approved by a given owner + function isApprovedForAll(address owner, address operator) + public + view + returns (bool) + { + return operatorApprovals[owner][operator]; + } + + // Takes ownership of Pizza - only for approved users + function takeOwnership(uint256 _pizzaId) public { + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + address owner = this.ownerOf(_pizzaId); + this.transferFrom(owner, msg.sender, _pizzaId); + } + + // Checks if Pizza exists + function _exists(uint256 pizzaId) internal view returns (bool) { + address owner = pizzaToOwner[pizzaId]; + return owner != address(0); + } + + // Checks if address is owner or is approved to transfer Pizza + function _isApprovedOrOwner(address spender, uint256 pizzaId) + internal + view + returns (bool) + { + address owner = pizzaToOwner[pizzaId]; + // Disable solium check because of + // https://github.com/duaraghav8/Solium/issues/175 + // solium-disable-next-line operator-whitespace + return (spender == owner || + this.getApproved(pizzaId) == spender || + this.isApprovedForAll(owner, spender)); + } + + // Check if Pizza is unique and doesn't exist yet + modifier isUnique(string memory _name, uint256 _dna) { + bool result = true; + for (uint256 i = 0; i < pizzas.length; i++) { + if ( + keccak256(abi.encodePacked(pizzas[i].name)) == + keccak256(abi.encodePacked(_name)) && + pizzas[i].dna == _dna + ) { + result = false; + } + } + require(result, "Pizza with such name already exists."); + _; + } + + // Returns whether the target address is a contract + function isContract(address account) internal view returns (bool) { + uint256 size; + // Currently there is no better way to check if there is a contract in an address + // than to check the size of the code at that address. + // Siehe https://ethereum.stackexchange.com/a/14016/36603 + // für weitere Informationen zur Funktionsweise. + // TO-DO Verifizieren Sie dies nochmals, bevor Serenity eingeführt wird + //, da alle Adressen dann Contracts sein werden. + // solium-disable-next-line security/no-inline-assembly + assembly { + size := extcodesize(account) + } + return size > 0; + } +} +``` + +## Weiterführende Informationen {#further-reading} + +Sehen Sie sich auch die Dokumentationen zu Solidity und Vyper an, um einen umfassenderen Überblick über Smart Contracts zu erhalten: + +- [Solidity](https://solidity.readthedocs.io/) +- [Vyper](https://vyper.readthedocs.io/) + +## Verwandte Themen {#related-topics} + +- [Smart Contracts](/developers/docs/smart-contracts/) +- [Ethereum-Virtual Machine (EVM)](/developers/docs/evm/) + +## Verwandte Tutorials {#related-tutorials} + +- [Verkleinern von Verträgen, um die Vertragsgröße zu begrenzen](/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/) _– Einige praktische Tipps zur Reduzierung der Größe Ihres Smart Contracts_ +- [Protokollieren von Daten aus Smart Contracts mit Ereignissen](/developers/tutorials/logging-events-smart-contracts/) _– Eine Einführung in Smart-Contract-Ereigbnisse und wie Sie diese zur Datenprotokollierung verwenden können_ +- [Mit anderen Verträgen aus Solidity interagieren](/developers/tutorials/interact-with-other-contracts-from-solidity/) _– So können Sie einen Smart Contract aus einem bestehenden Vertrag aufbauen und mit ihm interagieren_ diff --git a/src/content/translations/de/developers/docs/smart-contracts/compiling/index.md b/public/content/translations/de/developers/docs/smart-contracts/compiling/index.md similarity index 100% rename from src/content/translations/de/developers/docs/smart-contracts/compiling/index.md rename to public/content/translations/de/developers/docs/smart-contracts/compiling/index.md diff --git a/src/content/translations/de/developers/docs/smart-contracts/composability/index.md b/public/content/translations/de/developers/docs/smart-contracts/composability/index.md similarity index 100% rename from src/content/translations/de/developers/docs/smart-contracts/composability/index.md rename to public/content/translations/de/developers/docs/smart-contracts/composability/index.md diff --git a/src/content/translations/de/developers/docs/smart-contracts/deploying/index.md b/public/content/translations/de/developers/docs/smart-contracts/deploying/index.md similarity index 100% rename from src/content/translations/de/developers/docs/smart-contracts/deploying/index.md rename to public/content/translations/de/developers/docs/smart-contracts/deploying/index.md diff --git a/src/content/translations/de/developers/docs/smart-contracts/index.md b/public/content/translations/de/developers/docs/smart-contracts/index.md similarity index 100% rename from src/content/translations/de/developers/docs/smart-contracts/index.md rename to public/content/translations/de/developers/docs/smart-contracts/index.md diff --git a/src/content/translations/de/developers/docs/smart-contracts/languages/index.md b/public/content/translations/de/developers/docs/smart-contracts/languages/index.md similarity index 100% rename from src/content/translations/de/developers/docs/smart-contracts/languages/index.md rename to public/content/translations/de/developers/docs/smart-contracts/languages/index.md diff --git a/src/content/translations/de/developers/docs/smart-contracts/libraries/index.md b/public/content/translations/de/developers/docs/smart-contracts/libraries/index.md similarity index 100% rename from src/content/translations/de/developers/docs/smart-contracts/libraries/index.md rename to public/content/translations/de/developers/docs/smart-contracts/libraries/index.md diff --git a/src/content/translations/de/developers/docs/smart-contracts/security/index.md b/public/content/translations/de/developers/docs/smart-contracts/security/index.md similarity index 100% rename from src/content/translations/de/developers/docs/smart-contracts/security/index.md rename to public/content/translations/de/developers/docs/smart-contracts/security/index.md diff --git a/src/content/translations/de/developers/docs/smart-contracts/testing/index.md b/public/content/translations/de/developers/docs/smart-contracts/testing/index.md similarity index 100% rename from src/content/translations/de/developers/docs/smart-contracts/testing/index.md rename to public/content/translations/de/developers/docs/smart-contracts/testing/index.md diff --git a/src/content/translations/de/developers/docs/standards/index.md b/public/content/translations/de/developers/docs/standards/index.md similarity index 100% rename from src/content/translations/de/developers/docs/standards/index.md rename to public/content/translations/de/developers/docs/standards/index.md diff --git a/src/content/translations/de/developers/docs/standards/tokens/erc-1155/index.md b/public/content/translations/de/developers/docs/standards/tokens/erc-1155/index.md similarity index 100% rename from src/content/translations/de/developers/docs/standards/tokens/erc-1155/index.md rename to public/content/translations/de/developers/docs/standards/tokens/erc-1155/index.md diff --git a/public/content/translations/de/developers/docs/standards/tokens/erc-20/index.md b/public/content/translations/de/developers/docs/standards/tokens/erc-20/index.md new file mode 100644 index 00000000000..b93ba611571 --- /dev/null +++ b/public/content/translations/de/developers/docs/standards/tokens/erc-20/index.md @@ -0,0 +1,148 @@ +--- +title: ERC-20 Token-Standard +description: +lang: de +--- + +## Einführung {#introduction} + +**Was ist ein Token?** + +Token können praktisch alles in Ethereum darstellen: + +- Reputationspunkte auf einer Online-Platform +- Fähigkeiten eines Charakters in einem Spiel +- Lotteriescheine +- Vermögenswerte wie Anteile an einer Firma +- Eine Fiat-Währung wie der US-Dollar +- Eine Goldunze +- und weitere... + +Diese mächtigen Eigenschaften von Ethereum sollten in einem stabilen Standard bereitgestellt werden, oder? Und genau das ist der Punkt, an dem ERC-20 ins Spiel kommt! Dieser Standard ermöglicht es Entwicklern, Token zu erstellen, die mit anderen Produkten und Services interagieren können. + +**Was ist ERC-20?** + +Der ERC-20 führt einen Standard für Fungible Token ein. Mit anderen Worten, sie haben eine Eigenschaft, bei der jeder Token in Bezug auf Typ und Wert anderen Token entspricht. Zum Beispiel verhält sich ein ERC-20-Token genau wie der ETH. Das bedeutet, dass ein Token immer dem Wert aller anderen Token entspricht. + +## Voraussetzungen {#prerequisites} + +- [Konten](/developers/docs/accounts) +- [Smart Contracts](/developers/docs/smart-contracts/) +- [Token-Standards](/developers/docs/standards/tokens/) + +## Hauptteil {#body} + +Der im November 2015 von Fabian Vogelsteller eingereichte ERC-20-Antrag (Ethereum Request for Comments 20) ist ein Token-Standard, der eine API für Tokens innerhalb von Smart Contracts implementiert. + +Beispielfunktionalitäten, die ERC-20 bietet: + +- Token von einem Konto auf ein anderes übertragen +- den aktuellen Token-Saldo eines Kontos abfragen +- den im Netz verfügbaren Gesamtvorrat an Token ermitteln +- genehmigen, ob ein Token-Betrag von einem Konto durch ein Drittkonto ausgegeben werden kann + +Wenn ein Smart Contract die folgenden Methoden und Ereignisse implementiert, kann er als ERC-20-Token-Vertrag bezeichnet werden und ist nach der Bereitstellung dafür verantwortlich, die erstellten Token auf Ethereum zu verfolgen. + +Von [EIP-20](https://eips.ethereum.org/EIPS/eip-20): + +### Methoden {#methods} + +```solidity +function name() public view returns (string) +function symbol() public view returns (string) +function decimals() public view returns (uint8) +function totalSupply() public view returns (uint256) +function balanceOf(address _owner) public view returns (uint256 balance) +function transfer(address _to, uint256 _value) public returns (bool success) +function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) +function approve(address _spender, uint256 _value) public returns (bool success) +function allowance(address _owner, address _spender) public view returns (uint256 remaining) +``` + +### Events {#events} + +```solidity +event Transfer(address indexed _from, address indexed _to, uint256 _value) +event Approval(address indexed _owner, address indexed _spender, uint256 _value) +``` + +### Beispiele {#web3py-example} + +Sehen wir uns an, wie wichtig ein Standard ist, um uns die Überprüfung jedes ERC-20-Token-Vertrags auf Ethereum zu erleichtern. Wir benötigen lediglich das Contract Application Binary Interface (ABI), um eine Schnittstelle zu einem beliebigen ERC-20-Token zu erstellen. Wie Sie unten sehen können, werden wir ein vereinfachtes ABI verwenden, um es zu einem Beispiel mit geringer Reibung zu machen. + +#### Web3.py Beispiel {#web3py-example} + +Stellen Sie zuerst sicher, dass Sie [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) Python-Bibliothek installiert haben: + +``` +pip install web3 +``` + +```python +from web3 import Web3 + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI +weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # Wrapped ether (WETH) + +acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11" # Uniswap V2: DAI 2 + +# Dies ist ein vereinfachtes Contract Application Binary Interface (ABI) eines ERC-20 Token Contracts. +# Es werden nur die Methoden verfügbar gemacht: balanceOf(address), decimals(), symbol() und totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'decimals', + 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +dai_contract = w3.eth.contract(address=w3.toChecksumAddress(dai_token_addr), abi=simplified_abi) +symbol = dai_contract.functions.symbol().call() +decimals = dai_contract.functions.decimals().call() +totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals +addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# DAI +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) + +weth_contract = w3.eth.contract(address=w3.toChecksumAddress(weth_token_addr), abi=simplified_abi) +symbol = weth_contract.functions.symbol().call() +decimals = weth_contract.functions.decimals().call() +totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals +addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# WETH +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) +``` + +## Weiterführende Informationen {#further-reading} + +- [EIP-20: ERC-20 Token Standard](https://eips.ethereum.org/EIPS/eip-20) +- [OpenZeppelin - Token](https://docs.openzeppelin.com/contracts/3.x/tokens#ERC20) +- [OpenZeppelin - ERC-20 Implementierung](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) diff --git a/public/content/translations/de/developers/docs/standards/tokens/erc-721/index.md b/public/content/translations/de/developers/docs/standards/tokens/erc-721/index.md new file mode 100644 index 00000000000..e2134698e1e --- /dev/null +++ b/public/content/translations/de/developers/docs/standards/tokens/erc-721/index.md @@ -0,0 +1,243 @@ +--- +title: ERC-721 Nicht-fungibler Token-Standard +description: +lang: de +--- + +## Einführung {#introduction} + +**Was ist ein nicht-fungibler Token?** + +Ein nicht-fungibler Token (NFT) wird verwendet, um etwas oder jemanden auf eine einzigartige Weise zu identifizieren. Diese Art von Token ist perfekt, um auf Plattformen verwendet zu werden, die Sammelartikel anbieten, Zugang zu Schlüsseln, Lotteriekarten, nummerierten Plätzen für Konzerte und Sportspiele, etc. Diese spezielle Art von Token hat erstaunliche Möglichkeiten, so dass er einen angemessenen Standard verdient. Der ERC-721 hat dies gelöst! + +**Was ist ERC-721?** + +Der ERC-721 führt eine Norm für NFT ein, mit anderen Worten, diese Art von Token ist einzigartig und kann einen anderen Wert haben als ein anderer Token des gleichen Smart Contract, vielleicht wegen seines Alters, seiner Seltenheit oder auch so etwas wie sein visuelles Bild. Moment mal, visuell? + +Ja! Alle NFTs haben eine `uint256` Variable namens `TokenId` und bei jedem ERC-721 Contract muss das Paar aus `Kontaktadresse uint256 TokenId` global eindeutig sein. Eine dApp kann einen „Konverter" haben, der die `TokenId` als Eingabe verwendet und ein Bild von etwas Coolem ausgibt, wie Zombies, Waffen, Fertigkeiten oder Krypto-Kitties! + +## Voraussetzungen {#prerequisites} + +- [Konten](/developers/docs/accounts/) +- [Smart Contracts](/developers/docs/smart-contracts/) +- [Token-Standards](/developers/docs/standards/tokens/) + +## Hauptteil {#body} + +Der ERC-721 (Ethereum Request for Comments 721), im Januar 2018 von William Entriken, Dieter Shirley, Jacob Evans und Nastassia Sachs vorgeschlagen, ist ein nicht-fungibler Token-Standard, der eine API für Tokens innerhalb von Smart Contracts implementiert. + +Er bietet Funktionen wie die Übertragung von Token von einem Konto auf ein anderes, um den aktuellen Token-Saldo eines Kontos, den Eigentümer eines spezifischen Tokens sowie den Gesamtbestand der im Netzwerk verfügbaren Token abzurufen. Daneben gibt es auch einige andere Funktionalitäten wie zum Beispiel zu genehmigen, dass eine gewisse Menge an Token von einem Konto von einem Drittkonto verschoben werden kann. + +Wenn ein Smart Contract folgende Methoden und Ereignisse implementiert, kann er als ERC-721 nicht-fungibler Token-Vertrag bezeichnet werden. Einmal implementiert, werden mit ihm die erstellten Token auf Ethereum verfolgt. + +Aus [EIP-721](https://eips.ethereum.org/EIPS/eip-721): + +### Methoden {#methods} + +```solidity + function balanceOf(address _owner) external view returns (uint256); + function ownerOf(uint256 _tokenId) external view returns (address); + function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; + function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; + function transferFrom(address _from, address _to, uint256 _tokenId) external payable; + function approve(address _approved, uint256 _tokenId) external payable; + function setApprovalForAll(address _operator, bool _approved) external; + function getApproved(uint256 _tokenId) external view returns (address); + function isApprovedForAll(address _owner, address _operator) external view returns (bool); +``` + +### Events {#events} + +```solidity + event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); + event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); + event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); +``` + +### Beispiele {#web3py-example} + +Lassen Sie uns sehen, wie wichtig ein Standard ist, um es uns einfach zu machen, jeden ERC-721 Token-Vertrag auf Ethereum zu inspizieren. Wir benötigen nur das Application Binary Interface (ABI) des Vertrags, um eine Schnittstelle zu jedem ERC-721 Token zu erstellen. Wie Sie unten sehen können, werden wir ein vereinfachtes ABI verwenden, um es zu einem Beispiel mit geringer Reibung zu machen. + +#### Web3.py Beispiel {#web3py-example} + +Stellen Sie zuerst sicher, dass Sie [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) Python-Bibliothek installiert haben: + +``` +pip install web3 +``` + +```python +from web3 import Web3 +from web3._utils.events import get_event_data + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # CryptoKitties Contract + +acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # CryptoKitties Sales Auction + +# This is a simplified Contract Application Binary Interface (ABI) of an ERC-721 NFT Contract. +# Es werden nur folgende Methoden betrachtet: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'name', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'ownerOf', + 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, +] + +ck_extra_abi = [ + { + 'inputs': [], + 'name': 'pregnantKitties', + 'outputs': [{'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'name': '_kittyId', 'type': 'uint256'}], + 'name': 'isPregnant', + 'outputs': [{'name': '', 'type': 'bool'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +ck_contract = w3.eth.contract(address=w3.toChecksumAddress(ck_token_addr), abi=simplified_abi+ck_extra_abi) +name = ck_contract.functions.name().call() +symbol = ck_contract.functions.symbol().call() +kitties_auctions = ck_contract.functions.balanceOf(acc_address).call() +print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}") + +pregnant_kitties = ck_contract.functions.pregnantKitties().call() +print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}") + +# Nutzung des Transfer Event ABI um Informationen über übertragene Kitties zu erhalten. +tx_event_abi = { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'from', 'type': 'address'}, + {'indexed': False, 'name': 'to', 'type': 'address'}, + {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'Transfer', + 'type': 'event' +} + +# We need the event's signature to filter the logs +event_signature = w3.sha3(text="Transfer(address,address,uint256)").hex() + +logs = w3.eth.getLogs({ + "fromBlock": w3.eth.blockNumber - 120, + "address": w3.toChecksumAddress(ck_token_addr), + "topics": [event_signature] +}) + +# Notes: +# - 120 blocks is the max range for CloudFlare Provider +# - If you didn't find any Transfer event you can also try to get a tokenId at: +# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events +# Click to expand the event's logs and copy its "tokenId" argument + +recent_tx = [get_event_data(w3.codec, tx_event_abi, log)["args"] for log in logs] + +kitty_id = recent_tx[0]['tokenId'] # Paste the "tokenId" here from the link above +is_pregnant = ck_contract.functions.isPregnant(kitty_id).call() +print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}") +``` + +Der Krypto-Kitties-Vertrag hat neben den Standard-Events noch einige weitere interessante Events. + +Lassen Sie uns zwei dieser Events genauer ansehen, `Schwanger` und `Geburt`. + +```python +# Verwendung des Pregnant und Birth Events ABI um Informationen über neue Kitties zu erhalten. +ck_extra_events_abi = [ + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}], + 'name': 'Pregnant', + 'type': 'event' + }, + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'kittyId', 'type': 'uint256'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'genes', 'type': 'uint256'}], + 'name': 'Birth', + 'type': 'event' + }] + +# We need the event's signature to filter the logs +ck_event_signatures = [ + w3.sha3(text="Pregnant(address,uint256,uint256,uint256)").hex(), + w3.sha3(text="Birth(address,uint256,uint256,uint256,uint256)").hex(), +] + +# Here is a Pregnant Event: +# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog +pregnant_logs = w3.eth.getLogs({ + "fromBlock": w3.eth.blockNumber - 120, + "address": w3.toChecksumAddress(ck_token_addr), + "topics": [ck_event_signatures[0]] +}) + +recent_pregnants = [get_event_data(w3.codec, ck_extra_events_abi[0], log)["args"] for log in pregnant_logs] + +# Here is a Birth Event: +# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a +birth_logs = w3.eth.getLogs({ + "fromBlock": w3.eth.blockNumber - 120, + "address": w3.toChecksumAddress(ck_token_addr), + "topics": [ck_event_signatures[1]] +}) + +recent_births = [get_event_data(w3.codec, ck_extra_events_abi[1], log)["args"] for log in birth_logs] +``` + +## Beliebte NFTs {#popular-nfts} + +- [Etherscan NFT Tracker](https://etherscan.io/tokens-nft) Liste der Top-NFT auf Ethereum, nach Transfervolumen sortiert. +- [Krypto-Kitties](https://www.cryptokitties.co/) ist ein Spiel mit Fokus auf das Züchten und Sammeln liebenswerter Kreaturen, die wir Krypto-Kitties nennen. +- [Sorare](https://sorare.com/) ist ein Fantasie-Fußballspiel, bei dem es darum geht, limitierte Karten zu sammeln, Ihre Teams zu verwalten und gegeneinander anzutreten, um Preise zu gewinnen. +- [Der Ethereum Namen-Service (ENS)](https://ens.domains/) bietet einen sicheren & dezentralen Weg, Informationen mit Hilfe von verständlichen Namen auf und neben der Blockchains zu adressieren. +- [Unstoppable Domains](https://unstoppabledomains.com/) ist ein Unternehmen aus San Francisco, welches Domains auf Blockchains baut. Blockchain-Domains ersetzen Krypto-Adressen mit verständlichen und lesbaren Namen, um zensurresistente Websites zu ermöglichen. +- [Gods Unchained Cards](https://godsunchained.com/) ist ein TCG auf der Ethereum-Blockchain, welches NFTs verwendet, um In-Game-Assets als Eigentum zu verleihen. +- [Bored Ape Yacht Club](https://boredapeyachtclub.com) ist eine Sammlung von 10.000 einzigartigen NFTs, die nicht nur ein nachweislich seltenes Kunstwerk sind, sondern auch als Mitgliedschaftsmarke für den Club fungieren und den Mitgliedern Vergünstigungen und Vorteile bieten, die sich im Laufe der Zeit aufgrund der Bemühungen der Gemeinschaft erhöhen. + +## Weiterführende Informationen {#further-reading} + +- [EIP-721: ERC-721 Nicht-Fungibler Token-Standard](https://eips.ethereum.org/EIPS/eip-721) +- [OpenZeppelin - ERC-721 Dokumentation](https://docs.openzeppelin.com/contracts/3.x/erc721) +- [OpenZeppelin - ERC-721 Implementierung](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) +- [Alchemy NFT API](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) diff --git a/src/content/translations/de/developers/docs/standards/tokens/erc-777/index.md b/public/content/translations/de/developers/docs/standards/tokens/erc-777/index.md similarity index 100% rename from src/content/translations/de/developers/docs/standards/tokens/erc-777/index.md rename to public/content/translations/de/developers/docs/standards/tokens/erc-777/index.md diff --git a/src/content/translations/de/developers/docs/standards/tokens/index.md b/public/content/translations/de/developers/docs/standards/tokens/index.md similarity index 100% rename from src/content/translations/de/developers/docs/standards/tokens/index.md rename to public/content/translations/de/developers/docs/standards/tokens/index.md diff --git a/src/content/translations/de/developers/docs/storage/index.md b/public/content/translations/de/developers/docs/storage/index.md similarity index 100% rename from src/content/translations/de/developers/docs/storage/index.md rename to public/content/translations/de/developers/docs/storage/index.md diff --git a/src/content/translations/de/developers/docs/transactions/gas-tx.png b/public/content/translations/de/developers/docs/transactions/gas-tx.png similarity index 100% rename from src/content/translations/de/developers/docs/transactions/gas-tx.png rename to public/content/translations/de/developers/docs/transactions/gas-tx.png diff --git a/src/content/translations/de/developers/docs/transactions/index.md b/public/content/translations/de/developers/docs/transactions/index.md similarity index 100% rename from src/content/translations/de/developers/docs/transactions/index.md rename to public/content/translations/de/developers/docs/transactions/index.md diff --git a/src/content/translations/de/developers/docs/transactions/tx.png b/public/content/translations/de/developers/docs/transactions/tx.png similarity index 100% rename from src/content/translations/de/developers/docs/transactions/tx.png rename to public/content/translations/de/developers/docs/transactions/tx.png diff --git a/src/content/translations/de/developers/docs/web2-vs-web3/index.md b/public/content/translations/de/developers/docs/web2-vs-web3/index.md similarity index 100% rename from src/content/translations/de/developers/docs/web2-vs-web3/index.md rename to public/content/translations/de/developers/docs/web2-vs-web3/index.md diff --git a/src/content/translations/de/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md b/public/content/translations/de/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md similarity index 100% rename from src/content/translations/de/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md rename to public/content/translations/de/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md diff --git a/src/content/translations/de/developers/tutorials/calling-a-smart-contract-from-javascript/index.md b/public/content/translations/de/developers/tutorials/calling-a-smart-contract-from-javascript/index.md similarity index 100% rename from src/content/translations/de/developers/tutorials/calling-a-smart-contract-from-javascript/index.md rename to public/content/translations/de/developers/tutorials/calling-a-smart-contract-from-javascript/index.md diff --git a/src/content/translations/de/developers/tutorials/hello-world-smart-contract/index.md b/public/content/translations/de/developers/tutorials/hello-world-smart-contract/index.md similarity index 100% rename from src/content/translations/de/developers/tutorials/hello-world-smart-contract/index.md rename to public/content/translations/de/developers/tutorials/hello-world-smart-contract/index.md diff --git a/src/content/translations/de/developers/tutorials/how-to-mint-an-nft/index.md b/public/content/translations/de/developers/tutorials/how-to-mint-an-nft/index.md similarity index 100% rename from src/content/translations/de/developers/tutorials/how-to-mint-an-nft/index.md rename to public/content/translations/de/developers/tutorials/how-to-mint-an-nft/index.md diff --git a/public/content/translations/de/developers/tutorials/how-to-view-nft-in-metamask/index.md b/public/content/translations/de/developers/tutorials/how-to-view-nft-in-metamask/index.md new file mode 100644 index 00000000000..7810e36f7c0 --- /dev/null +++ b/public/content/translations/de/developers/tutorials/how-to-view-nft-in-metamask/index.md @@ -0,0 +1,38 @@ +--- +title: So zeigen Sie Ihren NFT in Ihrem Wallet an (Teil 3/3 der NFT-Tutorialreihe) +description: In diesem Tutorial wird beschrieben, wie Sie einen existierenden NFT auf MetaMask einsehen können. +author: "Sumi Mudgil" +tags: + - "NFTs" + - "ERC-721" + - "Alchemy" + - "Non Fungible Token" + - "Solidity" +skill: beginner +lang: de +published: 2021-04-22 +--- + +Dieses Tutorial ist Teil 3/3 der NFT-Tutorialreihe, in dem wir unseren neu geprägten NFT betrachten. Die allgemeine Anleitung ist für alle ERC-721-Token auf MetaMask anwendbar, auch im Mainnet oder einem Testnet. Wenn Sie lernen möchten, wie Sie Ihren eigenen NFT auf Ethereum prägen können, sollten Sie sich [Teil 1 zum Schreiben und Bereitstellen eines NFT-Smart-Contracts](/developers/tutorials/how-to-write-and-deploy-an-nft) ansehen. + +Herzlichen Glückwunsch! Sie haben es zum kürzesten und einfachsten Teil unserer NFT-Tutorialreihe geschafft. In diesem Teil erfahren Sie, wie Sie Ihren frisch geprägten NFT in einer virtuellen Geldbörse (Wallet) anzeigen können. Für dieses Beispiel verwenden wir MetaMask, da wir es bereits in den beiden vorangegangenen Teilen verwendet haben. + +Als Voraussetzung sollten Sie MetaMask bereits auf ihrem Handy oder in Ihrem Browser installiert haben und es sollte das Konto enthalten, für die Sie Ihre NFTs geprägt haben. Die App können Sie kostenlos auf [iOS](https://apps.apple.com/us/app/metamask-blockchain-wallet/id1438144202) oder [Android](https://play.google.com/store/apps/details?id=io.metamask&hl=de_US&gl=US) erhalten. + +## Schritt 1: Das Netzwerk auf Ropsten festlegen {#set-network-to-ropsten} + +Drücken Sie oben in der App auf die Schaltfläche "Wallet". Daraufhin werden Sie aufgefordert, ein Netzwerk auszuwählen. Da unser NFT im Ropsten-Netzwerk geprägt wurde, sollten Sie als Netzwerk Ropsten auswählen. + +![So legen Sie Ropsten als Netzwerk auf MetaMask fest](./goerliMetamask.gif) + +## Schritt 2: Kollektion zu MetaMask hinzufügen {#add-nft-to-metamask} + +Sobald Sie sich im Ropsten-Netzwerk befinden, wählen Sie die Registerkarte "Collectibles" (Sammelbare Elemente) auf der rechten Seite und fügen Sie die NFT-Smart-Contract-Adresse und die ERC-721-Token-ID Ihres NFT hinzu. Sie können sie anhand des Transaktions-Hashes Ihres NFT, der im zweiten Teil unseres Tutorials bereitgestellt wurde, auf Etherscan finden. + +![So finden Sie Ihren Transaktions-Hash und die ERC-721-Token-ID](./findNFTEtherscan.png) + +Möglicherweise müssen Sie die Seite ein paar Mal aktualisieren, bis Sie den NFT sehen können. Aber keine Sorge, er wird da sein. + +![So laden Sie Ihren NFT in MetaMask hoch](./findNFTMetamask.gif) + +Glückwunsch! Sie haben erfolgreich einen NFT gepräft und können ihn jetzt sehen. Wir können es kaum erwarten zu sehen, wie Sie die NFT-Welt im Sturm erobern werden! diff --git a/public/content/translations/de/developers/tutorials/how-to-write-and-deploy-an-nft/index.md b/public/content/translations/de/developers/tutorials/how-to-write-and-deploy-an-nft/index.md new file mode 100644 index 00000000000..717e997ded9 --- /dev/null +++ b/public/content/translations/de/developers/tutorials/how-to-write-and-deploy-an-nft/index.md @@ -0,0 +1,353 @@ +--- +title: So erstellen und veröffentlichen Sie einen NFT (Teil 1/3 von unserer NFT-Tutorialreihe) +description: Dieses Tutorial ist Teil 1 einer Serie über NFTs, die Ihnen Schritt für Schritt zeigt, wie Sie einen Non Fungible Token (ERC-721 Token) Smart Contract mit Ethereum und Inter Planetary File System (IPFS) erstellen und veröffentlichen. +author: "Sumi Mudgil" +tags: + - "NFTs" + - "ERC-721" + - "Alchemy" + - "Solidity" + - "Smart Contracts" +skill: beginner +lang: de +published: 2021-04-22 +--- + +Mit NFTs ist die Blockchain ins Auge der Öffentlichkeit gerückt. Das ist nun eine ausgezeichnete Gelegenheit, sich selbst ein Bild über diesen Hype zu machen. Veröffentlichen Sie dafür Ihren eigenen NFT (ERC-721 Token) auf der Ethereum-Blockchain. + +Alchemy ist sehr stolz darauf, die größten Namen im NFT-Bereich zu unterstützen, darunter Makersplace (kürzlich wurde ein Rekordverkauf digitaler Kunstwerke bei Christie's für 69 Millionen USD verzeichnet), Dapper Labs (Entwickler von NBA Top Shot & Crypto Kitties), OpenSea (der weltweit größte NFT-Marktplatz), Zora, Super Rare, NFTfi, Foundation, Enjin, Origin Protocol, Immutable und viele mehr. + +In diesem Tutorial erfahren Sie, wie Sie im Ropsten-Testnet mithilfe von [MetaMask](https://metamask.io/), [Solidity](https://docs.soliditylang.org/en/v0.8.0/), [Hardhat](https://hardhat.org/), [Pinata](https://pinata.cloud/) und [Alchemy](https://alchemy.com/signup/eth) einen ERC-721-Smart Contract erstellen und bereitstellen (keine Sorge, wenn Sie jetzt noch nicht wissen, was das alles bedeutet, wir werden Ihnen das erklären). + +In Teil 2 dieses Tutorials erläutern wir, wie Sie mit diesem Smart Contract einen NFT prägen können, in Teil 3 wird behandelt, wie Sie Ihren NFT auf MetaMask anzeigen können. + +Wenn Sie zu irgendeinem Zeitpunkt Fragen haben, melden Sie sich gerne im [Alchemy Discord](https://discord.gg/gWuC7zB) oder rufen Sie die [NFT-API-Dokumentation von Alchemy](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api). + +## Schritt 1: Verbindung mit dem Ethereum-Netzwerk {#connect-to-ethereum} + +Es gibt eine Reihe von Möglichkeiten, Anfragen an die Ethereum Blockchain zu stellen, der Einfachheit halber verwenden wir ein kostenloses Konto bei [Alchemy](https://alchemy.com/signup/eth), einer Blockchain-Entwicklerplattform und API, die es uns ermöglicht, mit der Ethereum-Chain zu kommunizieren, ohne dass wir unsere eigenen Nodes betreiben müssen. + +In diesem Tutorial werden wir auch die Alchemy-Entwicklertools für die Überwachung und Analyse nutzen, um zu verstehen, was sich hinter unserer Smart-Contract-Bereitstellung verbirgt. Wenn Sie noch kein Alchemy-Konto haben, können Sie sich [hier](https://alchemy.com/signup/eth) kostenlos registrieren. + +## Schritt 2: App (und den API-Schlüssel) erstellen {#make-api-key} + +Sobald Sie ein Alchemy-Konto erstellt haben, können Sie einen API-Schlüssel generieren, indem Sie eine App erstellen. Dadurch können wir Anfragen an das Ropsten-Testnet stellen. In [diesem Leitfaden](https://docs.alchemyapi.io/guides/choosing-a-network) erfahren Sie mehr über Testnetzwerke. + +1. Klicken Sie in Ihrem Alchemy-Dashboard in der Navigationsleiste unter "Apps" auf "Create App" (App erstellen), um auf die Seite "Create App" (App erstellen) zu gelangen. + +![App erstellen](./create-your-app.png) + +2. Geben Sie Ihrer App einen Namen (wir haben uns für "My First NFT!" entschieden), eine kurze Beschreibung, wählen Sie "Staging" für die Umgebung (für die Buchhaltung Ihrer App) und "Ropsten" als Netzwerk. + +![App konfigrurieren und veröffentlichen](./configure-and-publish-your-app.png) + +3. Klicken Sie auf “Create app” (App erstellen) und schon sind Sie fertig. Die App sollte in der untenstehenden Tabelle erscheinen. + +## Schritt 3: Ethereum-Konto (Adresse) erstellen {#create-eth-address} + +Zum Versenden und Empfangen von Transaktionen benötigen Sie ein Ethereum-Konto. In diesem Tutorial verwenden wir MetaMask, eine virtuelle Wallet im Browser, mit der Sie Ihre Ethereum-Kontoadresse verwalten können. Wenn Sie mehr über Transaktionen auf Ethereum erfahren möchten, besuchen Sie [diese Seite](/developers/docs/transactions/) von der Ethereum Foundation. + +Sie können [hier](https://metamask.io/download.html) MetaMask kostenlos herunterladen und ein Konto erstellen. Wie Sie ein neues Konto erstellen oder wenn Sie bereits ein Konto haben, stellen Sie bitte sicher, dass Sie zum Ropsten-Testnet oben rechts wechseln (um sicherzustellen, dass Sie nicht mit echtem Geld handeln). + +![Ropsten als Netzwerk festlegen](./metamask-goerli.png) + +## Schritt 4: Ether von einem Faucet hinzufügen {#step-4-add-ether-from-a-faucet} + +Um unseren Smart Contract in das Testnetzwerk integrieren zu können, benötigen wir ein paar Fake-ETH. Um ETH zu erhalten, können Sie zu [FaucETH](https://fauceth.komputing.org) navigieren und Ihre Ropsten-Kontoadresse eingeben. Klicken Sie dort auf "Request funds" (Geld anfordern), wählen Sie im Dropdown-Menü "Ethereum Testnet Ropsten" (Ethereum-Testnet Ropsten) und klicken Sie dann nochmals auf die Schaltfläche "Request funds" (Geld anfordern). Sie sollten kurz darauf ETH in Ihrem MetaMask-Konto sehen. + +## Schritt 5: Kontostand überprüfen {#check-balance} + +Um zu überprüfen, ob Sie das Guthaben erhalten haben, stellen wir eine [eth_getBalance](https://docs.alchemyapi.io/alchemy/documentation/alchemy-api-reference/json-rpc#eth_getbalance)-Anfrage über das [Composer-Tool von Alchemy](https://composer.alchemyapi.io?composer_state=%7B%22network%22%3A0%2C%22methodName%22%3A%22eth_getBalance%22%2C%22paramValues%22%3A%5B%22%22%2C%22latest%22%5D%7D). Das gibt den ETH-Betrag in unserem Wallet wieder. Nachdem Sie die Adresse Ihres MetaMask-Kontos eingegeben und auf “Send Request” (Anforderung senden) geklickt haben, sollten Sie eine Antwort ähnlich der Folgenden erhalten: + + `{"jsonrpc": "2.0", "id": 0, "result": "0xde0b6b3a7640000"}` + +**HINWEIS: **Dieses Ergebnis ist in Wei, nicht in ETH. Wei ist die kleinste Einheit von Ether. Die Umrechnung von Wei auf ETH ist: 1 ETH = 1018 Wei. Wenn wir also 0xde0b6b3a7640000 in eine Dezimalzahl konvertieren, erhalten wir 1\*1018 Wei und das entspricht 1 ETH. + +Puh! Unser Falschgeld ist da. + +## Schritt 6: Projekt initialisieren {#initialize-project} + +Zunächst müssen wir einen Ordner für unser Projekt erstellen. Navigieren Sie zur Befehlszeile und geben Sie Folgendes ein: + + mkdir my-nft + cd my-nft + +Jetzt, da wir uns in unserem Projektordner befinden, verwenden wir "npm init" um das Projekt zu starten. Wenn Sie npm noch nicht installiert haben, folgen Sie [dieser Anleitung](https://docs.alchemyapi.io/alchemy/guides/alchemy-for-macs#1-install-nodejs-and-npm) (wir brauchen auch [Node.js](https://nodejs.org/en/download/), also laden Sie das auch herunter). + + npm init + +Es spielt keine Rolle, wie Sie die Fragen zur Installation beantworten, aber wir haben es folgendermaßen gemacht: + + package name: (my-nft) + version: (1.0.0) + description: My first NFT! + entry point: (index.js) + test command: + git repository: + keywords: + author: + license: (ISC) + About to write to /Users/thesuperb1/Desktop/my-nft/package.json: + + { + "name": "my-nft", + "version": "1.0.0", + "description": "My first NFT!", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC" + } + +Genehmigen Sie die Datei "package.json" und schon kann es losgehen. + +## Schritt 7: [Hardhat](https://hardhat.org/getting-started/#overview) installieren {#install-hardhat} + +Hardhat ist eine Entwicklungsumgebung zum Kompilieren, Bereitstellen, Testen und Debuggen Ihrer Ethereum-Software. Es hilft Entwicklern bei der lokalen Erstellung von Smart Contracts und dApps, bevor diese auf der Live-Chain bereitgestellt werden. + +Innerhalb unseres my-nft-Projektlaufs: + + npm install --save-dev hardhat + +Auf dieser Seite finden Sie weitere Informationen zur [Installationsanleitung](https://hardhat.org/getting-started/#overview). + +## Schritt 8: Hardhat-Projekt erstellen {#create-hardhat-project} + +Führen Sie folgeden Befehl in unserem Projektordner aus: + + npx hardhat + +Sie sollten dann eine Willkommensnachricht sehen und die Möglichkeit haben, auszuwählen, wie Sie fortfahren möchten. Wählen Sie "create an empty hardhat.config.js" (Leere hardhat.config.js erstellen) aus: + + 888 888 888 888 888 + 888 888 888 888 888 + 888 888 888 888 888 + 8888888888 8888b. 888d888 .d88888 88888b. 8888b. 888888 + 888 888 "88b 888P" d88" 888 888 "88b "88b 888 + 888 888 .d888888 888 888 888 888 888 .d888888 888 + 888 888 888 888 888 Y88b 888 888 888 888 888 Y88b. + 888 888 "Y888888 888 "Y88888 888 888 "Y888888 "Y888 + 👷 Welcome to Hardhat v2.0.11 👷‍ + ? Was möchten Sie tun? … + Create a sample project + ❯ Create an empty hardhat.config.js + Quit + +Darüber wird eine hardhat.config.js-Datei für uns generiert, in der alle Einstellungen für unser Projekt angeben werden (in Schritt 13). + +## Schritt 9: Projektordner hinzufügen {#add-project-folders} + +Um unser Projekt zu organisieren, erstellen wir zwei neue Ordner. Navigieren Sie in der Befehlszeile zum Stammverzeichnis Ihres Projekts und geben Sie Folgendes ein: + + mkdir contracts + mkdir scripts + +- contracts/ ist der Ort, an dem wir unseren NFT-Smart-Contract-Code aufbewahren werden. + +- scripts/ ist der Ort, an dem wir Skripte veröffentlichen und mit unseren Smart Contract interagieren. + +## Schritt 10: Vertrag schreiben {#write-contract} + +Nachdem unsere Umgebung nun eingerichtet ist, kommen wir zu spannenderen Dingen: _Wir schreiben unseren Smart-Contract-Code._ + +Öffnen sie das my-nft-Projekt in ihrem favorisierten Ordner (wir bevorzugen [VSCode](https://code.visualstudio.com/)). Smart Contracts werden in einer Sprache namens Solidity geschrieben. Damit werden wir auch unseren Smart Contract MyNFT.sol schreiben. + +1. Navigieren Sie zum Ordner `Contracts` (Verträge) und erstellen Sie eine neue Datei namens MyNFT.sol. + +2. Im Folgenden finden Sie den NFT-Smart-Contract-Code, der auf der ERC-721-Implementierung der [OpenZeppelin](https://docs.openzeppelin.com/contracts/3.x/erc721)-Bibliothek basiert. Kopieren Sie folgenden Inhalt und fügen Sie ihn in die Datei MyNFT.sol ein. + + ```solidity + //Contract based on [https://docs.openzeppelin.com/contracts/3.x/erc721](https://docs.openzeppelin.com/contracts/3.x/erc721) + // SPDX-License-Identifier: MIT + pragma solidity ^0.8.0; + + import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; + import "@openzeppelin/contracts/utils/Counters.sol"; + import "@openzeppelin/contracts/access/Ownable.sol"; + import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol"; + + contract MyNFT is ERC721URIStorage, Ownable { + using Counters for Counters.Counter; + Counters.Counter private _tokenIds; + + constructor() ERC721("MyNFT", "NFT") {} + + function mintNFT(address recipient, string memory tokenURI) + public onlyOwner + returns (uint256) + { + _tokenIds.increment(); + + uint256 newItemId = _tokenIds.current(); + _mint(recipient, newItemId); + _setTokenURI(newItemId, tokenURI); + + return newItemId; + } + } + ``` + +3. Weil wir Klassen der OpenZeppelin-Vertragsbibliothek erben, geben Sie `npm install @openzeppelin/contracts` in die Befehlszeile ein, um die Bibliothek in Ihrem Ordner zu installieren. + +Doch was _macht_ dieser Code denn genau? Sehen wir uns das gemeinsam Zeil für Zeile an. + +Am Anfang unseres Smart Contracts importieren wir drei [OpenZeppelin](https://openzeppelin.com/)-Smart-Contract-Klassen: + +- @openzeppelin/contracts/token/ERC721/ERC721.sol enthält eine Implementierung des ERC-721-Standards, den unser NFT-Smart-Contract erben wird. (Damit der NFT auch Gültikeit erlangt, muss Ihr Smart Contract alle Methoden des ERC-721-Standards implementieren.) In der Schnittstellendefinition [hier](https://eips.ethereum.org/EIPS/eip-721) erfahren Sie mehr über die vererbten ERC-721-Funktionen. + +- @openzeppelin/contracts/utils/Counters.sol stellt Zähler zur Verfügung, die jeweils nur um eins erhöht oder verringert werden können. Unser Smart Contract benutzt einen Zähler, um die Gesamtanzahl der geprägten NFTs zu überprüfen und eine eindeutige ID für unseren neuen NFT festzulegen. (Jedem NFT, der durch die Benutzung eines Smart Contracts geprägt wird, muss eine eindeutige ID zugewiesen werden. In diesem Beispiel wird unsere eindeutige ID einfach deterministisch über die Gesamtanzahl der existierenden NFTs bestimmt. Zum Beispiel hat der erste NFT, der mit unserem Smart Contract geprägt wird, die ID "1", unser zweiter NFT hat die ID "2" usw.) + +- @openzeppelin/contracts/access/Ownable.sol richtet eine [Zugriffskontrolle](https://docs.openzeppelin.com/contracts/3.x/access-control) in unserem Smart Contract ein, so dass nur der Besitzer des Smart Contracts (also Sie) NFTs prägen kann. (Hinweis, die Einbeziehung der Zugriffskontrolle ist optional. Wenn Sie möchten, dass mit Ihrem Smart Contract jeder NFTs prägen kann, entfernen Sie das Wort "Ownable" in Zeile 10 und "onlyOwner" in Zeile 17.) + +Nach unseren Importanweisungen haben wir unseren benutzerdefinierten Smart Contract, der überraschend kurz ist , denn er enthält nur einen Zähler, einen Konstruktor und eine einzige Funktion. Das ist unseren vererbten OpenZeppelin-Contracts zu verdanken, die einen Großteil der Methoden implementieren, die wir zur Erstellung eines NFT benötigen, wie `ownerOf`, was den Besitzer des NFT zurückgibt, und `transferFrom`, was das Eigentum an einem NFT von einem Konto zu einem anderen überträgt. + +Sie werden feststellen, dass wir in unserem ERC-721-Konstruktor zwei Zeichenfolgen übergeben: "MyNFT" und "NFT". Die erste Variable ist der Name des Smart Contracts und die zweite ist sein Symbol. Sie können jede der beiden Variablen benennen wie sie möchten. + +Schließlich haben wir unsere Funktion `mintNFT(address recipient, string memory tokenURI)`, mit der wir einen NFT prägen können. Sie werden bemerken, dass diese Funktion zwei Variablen benötigt: + +- `address recipient` gibt die Adresse an, die den frisch geprägten NFT erhalten soll. + +- `string memory tokenURI` ist eine Zeichenfolge, die auf ein JSON-Dokument zeigt, das die Metadaten des NFT beschreibt. Die Metadaten eines NFT, sind das Element, das den NFT wirklich zum Leben erwecken. Sie schaffen die Grundlage, dass ein NFT konfigurierbare Eigenschaften wie einen Namen, eine Beschreibung ein Bild und andere Attribute haben kann. In Teil 2 dieses Tutorials wird die Konfiguration dieser Metadaten beschrieben. + +`mintNFT` ruft bestimmte Methoden der vererbten ERC-721-Bibliothek auf und gibt eine Zahl zurück, die für die ID des frisch geprägten NFT steht. + +## Schritt 11: MetaMask und Alchemy mit ihrem Projekt mit Ihrem Projekt verbinden {#connect-metamask-and-alchemy} + +Nachdem wir nun eine MetaMask-Wallet und ein Alchemy-Konto erstellt uns unseren Smart Contract geschrieben haben, ist es an der Zeit, die drei Elemente miteinander zu verbinden. + +Jede Transaktion, die von Ihrer virtuellen Wallet gesendet wird, benötigt eine Signatur mit ihrem eindeutigen privaten Schlüssel. Um unser Programm mit dieser Berechtigung auszustatten, können wir unseren privaten Schlüssel (und Alchemy-API-Schlüssel) in einer Umgebungsdatei sicher abspeichern. + +Wenn Sie mehr über das Senden von Transaktionen erfahren möchten, schauen Sie sich [dieses Tutorial](/developers/tutorials/sending-transactions-using-web3-and-alchemy/) über das senden von Transaktionen mit Web3 an. + +Installieren Sie zuerst das dotenv-Paket in Ihrem Projektverzeichnis: + + npm install dotenv --save + +Danach erstellen Sie eine `.env`-Datei im Hauptverzeichnis des Projekts und fügen den privaten Schlüssel von MetaMask und die HTTP-URL der Alchemy-API hinzu. + +- Befolgen Sie [diese Anweisungen](https://metamask.zendesk.com/hc/en-us/articles/360015289632-How-to-Export-an-Account-Private-Key), um Ihren privaten Schlüssel aus MetaMask zu importieren. + +- Unten wird erläutert, wie Sie die HTTP-URL der Alchemy-API erhalten und in die Zwischenablage kopieren. + +![Alchemy-API-URL kopieren](./copy-alchemy-api-url.gif) + +Ihre `.env`-Datei sollte nun wie folgt aussehen: + + API_URL="https://eth-ropsten.alchemyapi.io/v2/your-api-key" + PRIVATE_KEY="your-metamask-private-key" + +Um nun die Verbindung mit unserem Code zu erstellen, werden wir diese Variablen in der Datei hardhat.config.js in Schritt 13 referenzieren. + + +Führen Sie keinen Commit für .env aus. Stellen Sie sicher, dass Sie Ihre .env-Datei niemals an andere weitergeben, denn damit würden Sie Ihre geheimen Daten weitergeben. Wenn Sie die Versionskontrolle verwenden, fügen Sie Ihre Env-Datei zu einer Datei gitignore hinzu. + + +## Schritt 12: Ethers.js installieren {#install-ethers} + +Ethers.js ist eine Bibliothek, die es einfacher macht, mit Ethereum zu interagieren und Anfragen zu stellen. Dafür schließt sie [Standard-JSON-RPC-Methoden](/developers/docs/apis/json-rpc/) in benutzerfreundlichere Methoden ein. + +Hardhat macht es sehr einfach [Plug-ins](https://hardhat.org/plugins/) für zusätzliche Tools und erweiterte Funktionen zu integrieren. Wir werden das [Ethers-Plug-in](https://hardhat.org/plugins/nomiclabs-hardhat-ethers.html) für die Bereitstellung von Verträgen nutzen ([Ethers.js](https://github.com/ethers-io/ethers.js/) bietet einige sehr saubere Methoden zur Bereitstellung von Verträgen). + +Geben Sie Folgendes in Ihrem Projektverzeichnis ein: + + npm install --save-dev @nomiclabs/hardhat-ethers ethers@^5.0.0 + +Im nächsten Schritt benötigen wir auch Ether in unserer hardhat.config.js. + +## Schritt 13: hardhat.config.js aktualisieren {#update-hardhat-config} + +Wir haben bisher mehrere Abhängigkeiten und Plug-ins hinzugefügt. Jetzt müssen wir hardhat.config.js aktualisieren, damit unser Projekt über alle diese Abhängigkeiten informiert wird. + +Aktualisieren Sie Ihre hardhat.config.js so, dass sie wie folgt aussieht: + + /** + * @type import('hardhat/config').HardhatUserConfig + */ + require('dotenv').config(); + require("@nomiclabs/hardhat-ethers"); + const { API_URL, PRIVATE_KEY } = process.env; + module.exports = { + solidity: "0.8.1", + defaultNetwork: "ropsten", + networks: { + hardhat: {}, + ropsten: { + url: API_URL, + accounts: [`0x${PRIVATE_KEY}`] + } + }, + } + +## Schritt 14: Vertrag kompilieren {#compile-contract} + +Um sicherzugehen, dass so weit alles funktioniert, sollten wir unseren Vertrag erstellen. Die Aufgabe compile ist eine der integrierten Hardhat-Aufgaben. + +Führen Sie folgenden Befehl in der Befehlszeile aus: + + npx hardhat compile + +Möglicherweise erhalten Sie eine Warnung, dass die SPDX-Lizenzkennung nicht in Quelldatei angegeben sei. Doch darüber brauchen Sie sich keine Sorgen zu machen. Alles andere sieht hoffentlich gut aus. Falls nicht, können Sie jederzeit eine Nachricht im [Alchemy Discord](https://discord.gg/u72VCg3) hinterlassen. + +## Schritt 15: Bereitstellungsskript schreiben {#write-deploy} + +Nun, da unser Vertrag geschrieben und unsere Konfigurationsdatei einsatzbereit ist, ist es an der Zeit, das Skript zur Bereitstellung des Vertrags zu schreiben. + +Navigieren Sie zum Ordner `scripts/` und erstellen Sie eine neue Datei namens `deploy.js`. Fügen Sie folgende Inhalte hinzu: + +```js +async function main() { + const MyNFT = await ethers.getContractFactory("MyNFT") + + // Start deployment, returning a promise that resolves to a contract object + const myNFT = await MyNFT.deploy() + await myNFT.deployed() + console.log("Contract deployed to address:", myNFT.address) +} + +main() + .then(() => process.exit(0)) + .catch((error) => { + console.error(error) + process.exit(1) + }) +``` + +Hardhat erklärt in seinem [Vertragstutorial](https://hardhat.org/tutorial/testing-contracts.html#writing-tests) sehr gut, was die einzelnen Codezeilen bewirken. Wir haben diese Erklärungen hier übernommen. + + const MyNFT = await ethers.getContractFactory("MyNFT"); + +Eine ContractFactory in ethers.js ist eine Abstraktion, die dazu dient, neue Smart Contracts einzusetzen. So ist MyNFT eine Factory für Instanzen von unseren NFT-Vertrag. Wenn Sie das hardhat-ethers-Plug-in verwenden, werden die Instanzen ContractFactory und Contract standardmäßig mit dem ersten Unterzeichner verbunden. + + const myNFT = await MyNFT.deploy(); + +Mit dem Aufruf von deploy() über eine ContractFactory wird die Bereitstellung gestartet. Zurückgegeben wird eine Referenz, die auf einen Vertrag zeigt. Das ist das Objekt, das eine Methode für jede unserer Smart-Contract-Funktionen enthält. + +## Schritt 16: Vertragsbereitstellung {#deploy-contract} + +Nun sind wir endlich bereit, unseren Smart Contract bereitzustellen. Navigieren Sie zurück zu Ihrem Stammverzeichnis und führen Sie Folgendes über die Befehlszeile aus: + + npx hardhat --network ropsten run scripts/deploy.js + +Sie sollten dann etwas sehen wie: + + Contract deployed to address: 0x81c587EB0fE773404c42c1d2666b5f557C470eED + +Wenn wir den [Ropsten-Etherscan](https://ropsten.etherscan.io/) aufrufen und nach unserer Vertragsadresse suchen, sollten wir sehen, dass sie erfolgreich bereitgestellt wurde. Wenn sie nicht sofort angezeigt wird, haben Sie etwas Geduld, denn dieser Vorgang kann einige Zeit in Anspruch nehmen. Die Transaktion wird ungefähr so aussehen: + +![Transaktionsadresse auf Etherscan einsehen](./etherscan-sepolia-tx-details.png) + +Die Absenderadresse sollte mit der Adresse ihres MetaMask-Kontos übereinstimmen und in der Empfängeradresse sollte "Contract Creation" (Vertragserstellung) stehen. Wenn wir auf die Transaktion klicken ,sehen wir unsere Vertragsadresse im Empfängerfeld: + +![Vertragsadresse auf Etherscan anzeigen](./etherscan-sepoila-contract-creation.png) + +Großartig! Sie haben soeben Ihren NFT-Smart-Contract auf der Ethereum-Chain bereitgestellt. + +Um zu verstehen, was im Verborgenen vor sich geht, navigieren wir zur Explorer-Registerkarte in unserem [Alchemy-Dashboard](https://dashboard.alchemyapi.io/explorer). Wenn Sie mehrere Alchemy-Apps besitzen, filtern Sie nach Apps und wählen Sie "MyNFT" aus. + +![Mit dem Explorer-Dashboard von Alchemy Aufrufe einsehen, die im Verborgenen erfolgen](./alchemy-explorer-goerli.png) + +Hier sehen Sie eine Handvoll JSON-RPC-Aufrufe, die Hardhat/Ethers implementiert hat, als wir die .deploy()-Funktion aufgerufen haben. Zwei wichtige Funktionen, die hier aufzuführen sind, ist die [eth_sendRawTransaction](/developers/docs/apis/json-rpc/#eth_sendrawtransaction), die eine Anforderung zum Schreiben unseres Smart Contracts auf der Ropsten-Chain ist, und [eth_getTranscationByHash](/developers/docs/apis/json-rpc/#eth_gettransactionbyhash), die eine Anforderung ist, um Informationen über unsere Transaktion zu lesen, die vom Hash gegeben werden (ein typisches Muster beim Senden von Transaktionen). Wenn Sie mehr über das Senden von Transaktionen erfahren möchten, schauen Sie sich diese Anleitung an: [Transaktionen mit Web3 senden](/developers/tutorials/sending-transactions-using-web3-and-alchemy/). + +Damit sind wir am Ende vom ersten Teil dieses Tutorials. In [Teil 2 werden wir mit unserem Smart Contract interagieren, indem wir einen NFT prägen](/developers/tutorials/how-to-mint-an-nft/). In [Teil 3 werden wir Ihnen zeigen, wie Sie Ihren NFT in Ihrer Ethereum-Wallet sehen können](/developers/tutorials/how-to-view-nft-in-metamask/). diff --git a/src/content/translations/de/developers/tutorials/run-node-raspberry-pi/index.md b/public/content/translations/de/developers/tutorials/run-node-raspberry-pi/index.md similarity index 100% rename from src/content/translations/de/developers/tutorials/run-node-raspberry-pi/index.md rename to public/content/translations/de/developers/tutorials/run-node-raspberry-pi/index.md diff --git a/src/content/translations/de/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md b/public/content/translations/de/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md similarity index 100% rename from src/content/translations/de/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md rename to public/content/translations/de/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md diff --git a/src/content/translations/de/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md b/public/content/translations/de/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md similarity index 100% rename from src/content/translations/de/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md rename to public/content/translations/de/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md diff --git a/src/content/translations/de/eips/index.md b/public/content/translations/de/eips/index.md similarity index 100% rename from src/content/translations/de/eips/index.md rename to public/content/translations/de/eips/index.md diff --git a/src/content/translations/de/energy-consumption/energy_consumption_pre_post_merge.png b/public/content/translations/de/energy-consumption/energy_consumption_pre_post_merge.png similarity index 100% rename from src/content/translations/de/energy-consumption/energy_consumption_pre_post_merge.png rename to public/content/translations/de/energy-consumption/energy_consumption_pre_post_merge.png diff --git a/src/content/translations/de/energy-consumption/index.md b/public/content/translations/de/energy-consumption/index.md similarity index 100% rename from src/content/translations/de/energy-consumption/index.md rename to public/content/translations/de/energy-consumption/index.md diff --git a/src/content/translations/de/enterprise/index.md b/public/content/translations/de/enterprise/index.md similarity index 100% rename from src/content/translations/de/enterprise/index.md rename to public/content/translations/de/enterprise/index.md diff --git a/src/content/translations/de/enterprise/private-ethereum/index.md b/public/content/translations/de/enterprise/private-ethereum/index.md similarity index 100% rename from src/content/translations/de/enterprise/private-ethereum/index.md rename to public/content/translations/de/enterprise/private-ethereum/index.md diff --git a/src/content/translations/de/foundation/index.md b/public/content/translations/de/foundation/index.md similarity index 100% rename from src/content/translations/de/foundation/index.md rename to public/content/translations/de/foundation/index.md diff --git a/src/content/translations/de/glossary/index.md b/public/content/translations/de/glossary/index.md similarity index 100% rename from src/content/translations/de/glossary/index.md rename to public/content/translations/de/glossary/index.md diff --git a/src/content/translations/de/governance/index.md b/public/content/translations/de/governance/index.md similarity index 100% rename from src/content/translations/de/governance/index.md rename to public/content/translations/de/governance/index.md diff --git a/src/content/translations/de/guides/how-to-create-an-ethereum-account/index.md b/public/content/translations/de/guides/how-to-create-an-ethereum-account/index.md similarity index 100% rename from src/content/translations/de/guides/how-to-create-an-ethereum-account/index.md rename to public/content/translations/de/guides/how-to-create-an-ethereum-account/index.md diff --git a/src/content/translations/de/guides/how-to-revoke-token-access/index.md b/public/content/translations/de/guides/how-to-revoke-token-access/index.md similarity index 100% rename from src/content/translations/de/guides/how-to-revoke-token-access/index.md rename to public/content/translations/de/guides/how-to-revoke-token-access/index.md diff --git a/src/content/translations/de/guides/how-to-swap-tokens/index.md b/public/content/translations/de/guides/how-to-swap-tokens/index.md similarity index 100% rename from src/content/translations/de/guides/how-to-swap-tokens/index.md rename to public/content/translations/de/guides/how-to-swap-tokens/index.md diff --git a/src/content/translations/de/guides/how-to-use-a-bridge/index.md b/public/content/translations/de/guides/how-to-use-a-bridge/index.md similarity index 100% rename from src/content/translations/de/guides/how-to-use-a-bridge/index.md rename to public/content/translations/de/guides/how-to-use-a-bridge/index.md diff --git a/src/content/translations/de/guides/how-to-use-a-wallet/index.md b/public/content/translations/de/guides/how-to-use-a-wallet/index.md similarity index 100% rename from src/content/translations/de/guides/how-to-use-a-wallet/index.md rename to public/content/translations/de/guides/how-to-use-a-wallet/index.md diff --git a/src/content/translations/de/guides/index.md b/public/content/translations/de/guides/index.md similarity index 100% rename from src/content/translations/de/guides/index.md rename to public/content/translations/de/guides/index.md diff --git a/public/content/translations/de/history/index.md b/public/content/translations/de/history/index.md new file mode 100644 index 00000000000..0c7e8b1d4e7 --- /dev/null +++ b/public/content/translations/de/history/index.md @@ -0,0 +1,517 @@ +--- +title: Geschichte und Forks von Ethereum +description: Eine Geschichte der Ethereum-Blockchain, einschließlich der wichtigsten Meilensteine, Veröffentlichungen und Abspaltungen. +lang: de +sidebarDepth: 1 +--- + +# Die Geschichte von Ethereum {#the-history-of-ethereum} + +Ein Zeitstrang aller wichtigsten Meilensteine, Forks und Aktualisierungen der Ethereum-Blockchain. + + + +Forks entstehen, wenn größere technische Aktualisierungen oder Änderungen am Netzwerk vorgenommen werden müssen – sie gehen in der Regel aus Ethereum-Verbesserungsvorschlägen (EIPs) hervor und ändern die „Regeln“ des Protokolls. + +Wenn für eine Standardsoftware eine Aktualisierung benötigt wird, veröffentlicht der Hersteller lediglich eine neue Version für den Endbenutzer. Blockchains arbeiten anders, da es keinen alleinigen Besitzer gibt. Ethereum-Clients müssen ihre Software aktualisieren, um die neuen Fork-Regeln zu implementieren. Plus Block Ersteller (Miner in einer Proof-of-Work Umgebung, Validatoren in einer Proof-of-Stake Umgebung) und Nodes erstellen neue Blöcke und müssen diese, entsprechend der neuen Richtlinien, validieren. Mehr zu Konsensmechanismen +Diese Regeländerungen können eine vorübergehende Aufspaltung des Netzwerks verursachen. Neue Blöcke konnen nach den neuen oder den alten Regeln erzeugt werden. Forks werden in der Regel im Voraus vereinbart, damit die Clients die Änderungen einheitlich übernehmen und der Fork mit den Upgrades zur Main Chain wird. In seltenen Fällen können jedoch Meinungsverschiedenheiten über Forks dazu führen, dass das Netzwerk dauerhaft gespalten wird – am bekanntesten ist die Entstehung von Ethereum Classic durch den DAO Fork. + + + +Springen Sie direkt zu Informationen über einige besonders wichtige vergangene Upgrades: [Die Beacon Chain](/roadmap/beacon-chain/); [Die Zusammenführung](/roadmap/merge/); und [EIP-1559](#london) + +Suchen Sie nach weiteren Protokoll-Upgrades? [Erfahren Sie mehr über anstehende Upgrades auf der Ethereum-Roadmap](/roadmap/). + + + +## 2023 {#2023} + +### Shanghai {#shanghai} + + + +#### Zusammenfassung {#shanghai-summary} + +Das Shanghai-Update ebnete den Weg für Staking-Auszahlungen auf der Ausführungsebene. Die Fusion mit dem Capella-Upgrade ermöglichte es Blöcken, Auszahlungen zu akzeptieren, wodurch Stakern erlaubt wurde, ihre ETH von der Beacon Chain auf der Ausführungsebene abzuheben. + + + +
    +
  • EIP-3651Führt die COINBASE-Adresse ein
  • +
  • EIP-3855Neue PUSH0-Anweisung
  • +
  • EIP-3860Initcode-Größenlimit
  • +
  • EIP-4895Beacon Chain Push-Abhebungen als Operationen
  • +
  • EIP-6049Veraltet SELFDESTRUCT
  • +
+ +
+ +- [Lesen Sie die Spezifikation für das Shanghai-Upgrade](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/shanghai.md) + +--- + +### Capella {#capella} + + + +#### Zusammenfassung {#capella-summary} + +Das Capella-Update war das drittgrößte Upgrade für die Konsensebene (Beacon Chain) und ermöglichte Staking-Abhebungen. Mit Capella, das gleichzeitig mit dem Upgrade der Ausführungsebene, Shanghai, erfolgte, wurde die Staking-Abhebungsfunktion zur Verfügung gestellt. + +Das Upgrade für die Konsensebene ermöglichte es Stakern, die bei der ersten Einzahlung keine Abhebungen vornehmen durften, Abhebungen vorzunehmen. + +Das Upgrade hat auch eine automatische Kontenbereinigungsfunktion bereitgestellt, die kontinuierlich Validator-Konten auf verfügbare Prämienzahlungen oder vollständige Abhebungen überprüft und verarbeitet. + +- [Mehr zu Staking-Auszahlungen](/staking/withdrawals/). +- [Lesen Sie die Spezifikationen für das Capella-Upgrade](https://github.com/ethereum/consensus-specs/blob/dev/specs/capella/) + + + +## 2022 {#2022} + +### Paris (Die Zusammenführung) {#paris} + + + +#### Zusammenfassung {#paris-summary} + +Das Paris-Upgrade wurde durch das Erreichen einer [endgültigen Gesamtschwierigkeit](/glossary/#terminal-total-difficulty) von 58750000000000000000000 auf der Proof-of-Work-Blockchain ausgelöst. Dies geschah am 15. September 2022 im Block 15537393 und löste das Paris-Upgrade im nächsten Block aus. Paris war der Übergang zur [Zusammenführung (The Merge)](/roadmap/merge/) – seine wichtigste Funktion bestand darin, den [Proof-of-Work](/developers/docs/consensus-mechanisms/pow)-Mining-Algorithmus und die damit verbundene Konsenslogik abzuschalten und stattdessen [Proof-of-Stake](/developers/docs/consensus-mechanisms/pos) einzuschalten. Paris selbst war ein Upgrade für die [Ausführungsclients](/developers/docs/nodes-and-clients/#execution-clients) (entspricht Bellatrix auf der Konsensebene), das ihnen ermöglichte, Anweisungen von ihren verbundenen [Konsensclients](/developers/docs/nodes-and-clients/#consensus-clients) entgegenzunehmen. Hierfür musste ein neuer Satz interner API-Methoden aktiviert werden, der gemeinsam als [Engine-API](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) bekannt ist. Dies war wohl das bedeutendste Upgrade in der Geschichte von Ethereum seit [Homestead](#homestead)! + +- [Lesen Sie die Spezifikation für das Paris-Upgrade](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/paris.md) + + + +
    +
  • EIP-3675Ermöglicht den Übergang des Ethereum-Netzwerks vom Konsensmechanismus Proof-of-Work (PoW) zum Proof-of-Stake (PoS).
  • +
  • EIP-4399 Die SCHWIERIGKEITEN mit der Wiederverwendung und Lesbarkeit des Opcodes werden durch den PREVRANDAO behoben
  • +
+ +
+ +--- + +### Bellatrix {#bellatrix} + + + +#### Zusammenfassung {#bellatrix-summary} + +Das Bellatrix-Upgrade war das zweite geplante Upgrade für die [Beacon Chain](/roadmap/beacon-chain), das die Blockchain auf die [die Zusammenführung](/roadmap/merge/) vorbereitete. Es setzt Validator-Strafen für Inaktivität und strafbare Vergehen auf alle ihre Werte. Bellatrix beinhaltet auch eine Aktualisierung der Fork-Choice-Regeln, um die Blockchain auf die Zusammenführung und den Übergang vom letzten Proof-of-Work-Block zum ersten Proof-of-Stake-Block vorzubereiten. Dies beinhaltet auch, dass die Konsensclients über die [Terminale Gesamtschwierigkeit](/glossary/#terminal-total-difficulty) von 58750000000000000000000 informiert werden. + +- [Lesen Sie die Spezifikation des Bellatrix-Upgrades](https://github.com/ethereum/consensus-specs/tree/dev/specs/bellatrix) + +--- + +### Gray Glacier {#gray-glacier} + + + +#### Zusammenfassung {#gray-glacier-summary} + +Das Gray Glacier Netzwerk-Upgrade hat die [Schwierigkeitsbombe](/glossary/#difficulty-bomb) um drei Monate nach hinten verschoben. Dies ist die einzige Änderung, die in diesem Upgrade eingeführt wurde, und ähnelt den [Arrow Glacier](#arrow-glacier) und [Muir Glacier](#muir-glacier) Upgrades. Ähnliche Änderungen wurden bei den Netzwerk-Upgrades [Byzantium](#byzantium),[Constantinople](#constantinople) und [London](#london) durchgeführt. + +- [EF Blog - Gray Glacier Upgrade-Ankündigung](https://blog.ethereum.org/2022/06/16/gray-glacier-announcement/) + + + +
    +
  • EIP-5133Verzögert die Explosion der Schwierigkeitsbombe bis Ende September 2022
  • +
+ +
+ + + +## 2021 {#2021} + +### Arrow Glacier {#arrow-glacier} + + + +#### Zusammenfassung {#arrow-glacier-summary} + +Das Arrow Glacier Netzwerk-Upgrade hat die [Schwierigkeitsbombe](/glossary/#difficulty-bomb) um mehrere Monate nach hinten geschoben. Dies ist die einzige Änderung, die mit diesem Upgrade eingeführt wird, und ähnelt dem [Muir Glacier](#muir-glacier)-Upgrade. Ähnliche Änderungen wurden bei den Netzwerk-Upgrades [Byzantium](#byzantium),[Constantinople](#constantinople) und [London](#london) durchgeführt. + +- [EF Blog – Ankündigung des Arrow Glacier-Upgrades](https://blog.ethereum.org/2021/11/10/arrow-glacier-announcement/) +- [Ethereum Cat Herders – Ethereum Arrow Glacier-Upgrade](https://medium.com/ethereum-cat-herders/ethereum-arrow-glacier-upgrade-e8d20fa4c002) + + + +
    +
  • EIP-4345verzögert die Schwierigkeitsbombe bis Juni 2022
  • +
+ +
+ +--- + +### Altair {#altair} + + + +#### Zusammenfassung {#altair-summary} + +Das Altair-Upgrade war das erste geplante Upgrade für die [Beacon Chain](/roadmap/beacon-chain). Es wurde die Unterstützung für „Sync-Komitees“ hinzugefügt, die leichte Clients aktivierte und die Strafen für Inaktivität und Slashing von Validatoren erhöht, da die Entwicklung der Zusammenführung voranschritt. + +- [Lesen Sie die Spezifikation zum Altair-Upgrade](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) + +#### Fun Fact! {#altair-fun-fact} + +Altair war das erste große Netzwerk-Upgrade, für das es einen genauen Einführungszeitpunkt gab. Jedes vorherige Upgrade basierte auf einer angegebenen Blocknummer auf der Proof-of-Work-Chain, bei der die Blockzeiten variieren. Die Beacon Chain erfordert kein Lösen von Proof-of-Work und arbeitet stattdessen mit einem zeitbasierten Epochensystem, das aus 32 zwölfsekündigen „Slots" besteht, in denen Validatoren Blöcke vorschlagen können. Deshalb wussten wir genau, wann wir Epoche 74.240 erreichen würden und Altair live gehen würde! + +- [Blockzeit](/developers/docs/blocks/#block-time) + +--- + +### London {#london} + + + +#### Zusammenfassung {#london-summary} + +Das London-Upgrade führte die [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) ein, das den Markt für Transaktionsgebühren reformierte sowie Änderungen bei der Handhabung von Gasrückerstattungen und dem [Ice-Age](/glossary/#ice-age)-Zeitplan beinhaltete. + +- [Sind Sie ein dApp-Entwickler? Bitte aktualisieren Sie Ihre Bibliotheken und Werkzeuge.](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/london-ecosystem-readiness.md) +- [Lesen Sie die Ankündigung der Ethereum Foundation](https://blog.ethereum.org/2021/07/15/london-mainnet-announcement/) +- [Lesen Sie die Erklärung der Ethereum Cat Herder](https://medium.com/ethereum-cat-herders/london-upgrade-overview-8eccb0041b41) + + + +
    +
  • EIP-1559trägt zur Verbesserung der Marktbedingungen bei und senkt gleichzeitig die Transaktionsgebühren
  • +
  • EIP-3198zur Wiedergabe eines BASEFEE-Blockcodes
  • +
  • EIP-3529reduziert die Gasgebühren für EVM-Operationen
  • +
  • EIP-3541verhindert die Bereitstellung von Verträgen, verhindert, die mit 0xEF beginnen
  • +
  • EIP-3554plant, das Ice Age bis Dezember 2021 zu verlängern
  • +
+ +
+ +--- + +### Berlin {#berlin} + + + +#### Zusammenfassung {#berlin-summary} + +Mit dem Berlin-Upgrade wurden die Gaskosten für bestimmte EVM-Aktionen optimiert und die Unterstützung für mehrere Transaktionsarten erweitert. + +- [Lies die Ankündigung der Ethereum Foundation](https://blog.ethereum.org/2021/03/08/ethereum-berlin-upgrade-announcement/) +- [Lies die Erklärung der Ethereum Cat Herder](https://medium.com/ethereum-cat-herders/the-berlin-upgrade-overview-2f7ad710eb80) + + + +
    +
  • EIP-2565senkt die Gaskosten für ModExp
  • +
  • EIP-2718ermöglicht einen viel einfacheren Zugang zu den verschiedenen Transaktionsdiensten
  • +
  • EIP-2929Gaskostenerhöhung für Zustandszugriffs-Opcodes
  • +
  • EIP-2930fügt eine optionale Zugriffsliste hinzu
  • +
+ +
+ + + +## 2020 {#2020} + +### Entstehungsgeschichte der Beacon Chain {#beacon-chain-genesis} + + + +#### Zusammenfassung {#beacon-chain-genesis-summary} + +Die [Beacon Chain](/roadmap/beacon-chain/) benötigte zum sicheren Betrieb 16.384 Einzahlungen von 32 gestakten ETH. Dazu kam es am 27. November, was bedeutet, dass die Beacon Chain am 1. Dezember 2020 mit der Erzeugung von Blöcken begann. Dies ist ein wichtiger erster Schritt zur Verwirklichung der [Ethereum-Vision](/roadmap/vision/). + +[Die Ankündigung der Ethereum Foundation lesen](https://blog.ethereum.org/2020/11/27/eth2-quick-update-no-21/) + + + Die Beacon Chain + + +--- + +### Staking-Einzahlungsvertrag bereitgestellt {#staking-deposit-contract} + + + +#### Zusammenfassung {#deposit-contract-summary} + +Mit dem Staking-Einzahlungsvertrag wurde [Staking](/glossary/#staking) im Ökosystem von Ethereum eingeführt. Obwohl es sich um einen [Mainnet](/glossary/#mainnet)-Vertrag handelt, hatte er einen direkten Einfluss auf den Zeitplan für die Einführung der [Beacon Chain](/roadmap/beacon-chain/), einem wichtigen [Ethereum-Upgrade](/roadmap/). + +[Lies die Ankündigung der Ethereum Foundation](https://blog.ethereum.org/2020/11/04/eth2-quick-update-no-19/) + + + Staking + + +--- + +### Muir Glacier {#muir-glacier} + + + +#### Zusammenfassung {#muir-glacier-summary} + +Die Muir-Glacier-Fork führte eine Verzögerung in die [Schwierigkeitsbombe](/glossary/#difficulty-bomb) ein. Erhöhungen der Blockschwierigkeitsstufe des [Proof-of-Work](/developers/docs/consensus-mechanisms/pow/)-Konsensmechanismus drohten, die Nutzbarkeit von Ethereum zu verringern, indem die Wartezeiten für das Senden von Transaktionen und die Verwendung von dApps erhöht werden. + +- [Lies die Ankündigung der Ethereum Foundation](https://blog.ethereum.org/2019/12/23/ethereum-muir-glacier-upgrade-announcement/) +- [Lies die Erklärung der Ethereum Cat Herder](https://medium.com/ethereum-cat-herders/ethereum-muir-glacier-upgrade-89b8cea5a210) + + + +
    +
  • EIP-2384verzögert die Schwierigkeitsbombe um weitere 4.000.000 Blöcke, oder etwa 611 Tage.
  • +
+ +
+ + + +## 2019 {#2019} + +### Istanbul {#istanbul} + + + +#### Zusammenfassung {#istanbul-summary} + +Die Istanbul-Fork: + +- Optimierte die [Gaskosten](/glossary/#gas) für bestimmte Aktionen in der [EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine). +- Verbesserte Widerstandskraft gegen Denial-of-Service-Angriffe. +- Machte [Skalierungslösungen der Ebene 2](/developers/docs/scaling/#layer-2-scaling) basierend auf SNARKs und STARKs leistungsstärker. +- Aktivierte Ethereum und Zcash zur Interoperation. +- Ermöglichte Verträgen, kreativere Funktionen einzuführen. + +[Lies die Ankündigung der Ethereum Foundation](https://blog.ethereum.org/2019/11/20/ethereum-istanbul-upgrade-announcement/) + + + +
    +
  • EIP-152ermöglicht es dem Ethereum-Netzwerk, mit anonymen Währungen wie Zcash zu arbeiten, wodurch das Recht auf Privatsphäre geschützt werden kann.
  • +
  • EIP-1108eine günstigere Kryptographie zur Optimierung der Gaskosten.
  • +
  • EIP-1344schützt Ethereum vor Wiederholungsangriffen durch Hinzufügen des CHAINID -Opcodes.
  • +
  • EIP-1884die Optimierung der Gaspreis-Verfahrenscodes auf der Grundlage des Gasverbrauchs.
  • +
  • EIP-2028reduziert die Kosten für „CallData“, mit dem Ziel, mehr Daten in den Blöcken zu implementieren – gut für Layer-2-Skalierbarkeit.
  • +
  • EIP-2200 +weitere Änderungen der Gaspreisverfahrenscodes.
  • +
+ +
+ +--- + +### Constantinople {#constantinople} + + + +#### Zusammenfassung {#constantinople-summary} + +Die Constantinople-Fork: + +- Sie stellte sicher, dass die Blockchain nicht einfrieren konnte, bevor der [Proof-of-Stake](#beacon-chain-genesis) implementiert wurde. +- Optimierte die [Gas-](/glossary/#gas)-Kosten für bestimmte Aktionen in der [EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine). +- Fügte die Möglichkeit hinzu, mit Adressen zu interagieren, die noch nicht erstellt wurden. + +[Lies die Ankündigung der Ethereum Foundation](https://blog.ethereum.org/2019/02/22/ethereum-constantinople-st-petersburg-upgrade-announcement/) + + + +
    +
  • EIP-145optimiert die Kosten von bestimmten On-Chain-Aktionen.
  • +
  • EIP-1014erlaubt es Ihnen, Adressen zu verwenden, die noch nicht angelegt wurden.
  • +
  • EIP-1052optimiert die Kosten bestimmter On-Chain-Aktionen.
  • +
  • EIP-1234stellt sicher, dass die Blockchain vor dem Proof-of-Stake-Verfahren nicht eingefroren wird.
  • +
+ +
+ + + +## 2017 {#2017} + +### Byzantium {#byzantium} + + + +#### Zusammenfassung {#byzantium-summary} + +Die Byzantium-Fork: + +- Reduzierte die Block-[Mining](/developers/docs/consensus-mechanisms/pow/mining/)-Prämien von 5 auf 3 ETH. +- Verzögerte die [Schwierigkeitsbombe](/glossary/#difficulty-bomb) um ein Jahr. +- Fügte die Möglichkeit hinzu, nicht zustandsverändernde Aufrufe zu anderen Verträgen zu tätigen. +- Fügte bestimmte Kryptographie-Methoden hinzu, um [Layer-2-Skalierung](/developers/docs/scaling/#layer-2-scaling) zu ermöglichen. + +[Die Ankündigung der Ethereum Foundation lesen](https://blog.ethereum.org/2017/10/12/byzantium-hf-announcement/) + + + +
    +
  • EIP-140integriert den Operationscode REVERT.
  • +
  • EIP-658Statusfeld zu Transaktionsbelegen hinzugefügt, Erfolg oder Misserfolg anzuzeigen.
  • +
  • EIP-196integriert die elliptische Kurve sowie die Multiplikation mit einem Skalar, die die Verwendung von ZK-Snarks ermöglichen.
  • +
  • EIP-197fügt elliptische Kurven und Skalarmultiplikation hinzu, um ZK-Snarks zu ermöglichen.
  • +
  • EIP-198aktiviert Überprüfung der RSA-Signatur.
  • +
  • EIP-211fügt Unterstützung der Ausgabewerte eines Variableninhalts hinzu.
  • +
  • EIP-214integriert den Verfahrenscode, STATICCALL der nicht zustandsveränderte Aufrufe für andere Verträge erlaubt.
  • +
  • EIP-100ändert die Formel für die Einstellung des Schwierigkeitsgrades.
  • +
  • EIP-649verzögert die Schwierigkeitsbombe um ein Jahr und senkt die vollen Blockprämien von 5 auf 3 ETH.
  • +
+ +
+ + + +## 2016 {#2016} + +### Spurious Dragon {#spurious-dragon} + + + +#### Zusammenfassung {#spurious-dragon-summary} + +Die Spurious-Dragon-Fork war die zweite Reaktion auf die Denial-of-Service(DoS)-Angriffe auf das Netzwerk (September/Oktober 2016), einschließlich: + +- Abstimmen der Verfahrenscode-Preise, um zukünftige Angriffe auf das Netzwerk zu verhindern. +- Aktivierung von „Debloat“ (Wachstumsveringerung) für den Blockchain-Zustand. +- Hinzufügen von Replay-Angriffsschutz. + +[Lies die Ankündigung der Ethereum Foundation](https://blog.ethereum.org/2016/11/18/hard-fork-no-4-spurious-dragon/) + + + +
    +
  • EIP-155verhindert, dass Transaktionen von einer Ethereum-Blockchain wieder auf einer alternativen Blockchain gesendet werden. Beispiel: Eine Testnetz-Transaktion, die auf der Ethereum Haupt-Blockchain wiedergegeben wird.
  • +
  • EIP-160passt Preise des EXP-Verfahrenscodes an – und wirkt somit der Verlangsamung des Netzwerks durch rechenintensive Vertragsklauseln entgegen.
  • +
  • EIP-161ermöglicht das Löschen leerer Konten, die bei DOS-Attacken hinzugefügt wurden.
  • +
  • EIP-170ändert die maximale Codegröße, die ein Vertrag in der Blockchain haben kann, in 24576 Bytes.
  • +
+ +
+ +--- + +### Tangerine Whistle {#tangerine-whistle} + + + +#### Zusammenfassung {#tangerine-whistle-summary} + +Die Tangerine-Whistle-Fork war die erste Reaktion auf die Denial-of-Service(DoS)-Angriffe auf das Netzwerk (September/Oktober 2016), einschließlich: + +- Lösung der dringenden Probleme im Bereich der Netzwerkgesundheit im Zusammenhang mit unterbewerteten Verfahrenscodes. + +[Lies die Ankündigung der Ethereum Foundation](https://blog.ethereum.org/2016/10/18/faq-upcoming-ethereum-hard-fork/) + + + +
    +
  • EIP-150erhöht die Gaskosten der Verfahrenscodes, die bei Spam-Attacken verwendet werden können.
  • +
  • EIP-158reduziert die Zustandsgröße, indem sie eine große Anzahl leerer Konten entfernt, die aufgrund von Fehlern in früheren Versionen des Ethereum-Protokolls ursprünglich minimale Transaktionsgebühren enthielten.
  • +
+ +
+ +--- + +### DAO-Fork {#dao-fork} + + + +#### Zusammenfassung {#dao-fork-summary} + +Die DAO-Abspaltung war eine Reaktion auf den [DAO-Angriff 2016](https://www.coindesk.com/learn/understanding-the-dao-attack/), bei dem einem unsicheren [DAO](/glossary/#dao)-Vertrag durch einen Hack über 3,6 Millionen ETH entzogen wurden. Die Fork verschiebt das Guthaben aus dem fehlerhaften Vertrag in einen [neuen Vertrag](https://etherscan.io/address/0xbf4ed7b27f1d666546e30d74d50d173d20bca754) mit einer einzigen Funktion: Abheben. Jeder, der Geld verloren hat, konnte 1 ETH für jeden 100 DAO-Token in seiner Wallet abheben. + +Über diese Vorgehensweise wurde seitens der Ethereum-Community abgestimmt. Jeder ETH-Inhaber konnte über eine Transaktion auf [, einer Abstimmungsplattform,](https://web.archive.org/web/20170620030820/http://v1.carbonvote.com/) abstimmen. Die Entscheidung für die Fork erhielt mehr als 85 % der Stimmen. + +Einige Miner weigerten sich, die Abspaltung mitzutragen, da der Vorfall des DAO keinen Fehler im Protokoll darstellte. Sie gründeten daraufhin [Ethereum Classic](https://ethereumclassic.org/). + +[Lies die Ankündigung der Ethereum Foundation](https://blog.ethereum.org/2016/07/20/hard-fork-completed/) + +--- + +### Homestead {#homestead} + + + +#### Zusammenfassung {#homestead-summary} + +Die Homestead-Fork, die in die Zukunft schaute. Sie enthielt mehrere Protokolländerungen und eine Änderung des Netzwerks, die Ethereum die Möglichkeit gab, weitere Netzwerk-Upgrades durchzuführen. + +[Lies die Ankündigung der Ethereum Foundation](https://blog.ethereum.org/2016/02/29/homestead-release/) + + + +
    +
  • EIP-2ermöglicht es Bearbeitungen bei der Entwicklung von Smart Contracts vorzunehmen.
  • +
  • EIP-7 +führt einen neuen Verfahrenscode ein: DELEGATECALL
  • +
  • EIP-8präsentiert DEVP2P zur Erfüllung der Kompatibilitätsanforderungen
  • +
+ +
+ + + +## 2015 {#2015} + +### Frontier Thawing {#frontier-thawing} + + + +#### Zusammenfassung {#frontier-thawing-summary} + +Die Frontier-Thawing-Fork hob das 5.000 [Gas](/glossary/#gas)-Limit pro [Block](/glossary/#block) auf und setzte den Standardgaspreis auf 51 [gwei](/glossary/#gwei). Dies erlaubte Transaktionen – Transaktionen benötigen 21.000 Gas. Die [Schwierigkeitsbombe](/glossary/#difficulty-bomb) wurde eingeführt, um eine zukünftige harte Abspaltung zu [Proof-of-Stake](/glossary/#pos) sicherzustellen. + +- [Lies die Ankündigung der Ethereum Foundation](https://blog.ethereum.org/2015/08/04/the-thawing-frontier/) +- [Lesen Sie das Ethereum Protokoll-Update 1](https://blog.ethereum.org/2015/08/04/ethereum-protocol-update-1/) + +--- + +### Frontier {#frontier} + + + +#### Zusammenfassung {#frontier-summary} + +Frontier war live, aber soweit nur die Implementierung eines grundsätzlichen Rahmens des Ethereum-Projekts. Es folgte der erfolgreichen olympischen Testphase. Es war für technische Benutzer gedacht, speziell für Entwickler. [Blöcke](/glossary/#block) hatten ein [Gas](/glossary/#gas)-Limit von 5.000. Diese Zeit des „Auftauens" ermöglichte es den Minern, ihren Betrieb zu starten und für Early-Adopters, ihre Kunden zu installieren, ohne dies „überstürzen“ zu müssen. + +[Lies die Ankündigung der Ethereum Foundation](https://blog.ethereum.org/2015/07/22/frontier-is-coming-what-to-expect-and-how-to-prepare/) + + + +## 2014 {#2014} + +### Ether-Verkauf {#ether-sale} + + + +Ether ging offiziell 42 Tage lang in den Verkauf. Man konnte es mit BTC kaufen. + +[Lies die Ankündigung der Ethereum Foundation](https://blog.ethereum.org/2014/07/22/launching-the-ether-sale/) + +--- + +### Yellowpaper veröffentlicht {#yellowpaper} + + + +Das Yellowpaper, verfasst von Dr. Gavin Wood, ist eine technische Definition des Ethereum-Protokolls. + +[Yellowpaper anzeigen](https://github.com/ethereum/yellowpaper) + + + +## 2013 {#2013} + +### Whitepaper veröffentlicht {#whitepaper} + + + +Dieses einleitende Papier wurde ursprünglich 2013 von Vitalik Buterin, dem Gründer von Ethereum, vor dem Projektstart im Jahr 2015 veröffentlicht. + + + Whitepaper + diff --git a/public/content/translations/de/nft/index.md b/public/content/translations/de/nft/index.md new file mode 100644 index 00000000000..2f4542c9ab6 --- /dev/null +++ b/public/content/translations/de/nft/index.md @@ -0,0 +1,94 @@ +--- +title: Non Fungible Token (NFT) +description: Ein Überblick über NFTs bei Ethereum +lang: de +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: Ein als Hologramm abgebildetes ETH-Logo. +summaryPoint1: Ein Weg, alles Einzigartige als eine Ethereum-basierte Anlage darzustellen. +summaryPoint2: NFTs geben Inhaltserstellern mehr Einfluss denn je. +summaryPoint3: Auf Grundlage von intelligenten Verträgen auf der Ethereum-Blockchain. +--- + +## Was sind NFTs? {#what-are-nfts} + +NFTs, also Non Fungible Token, sind Token, die individuell einzigartig sind. Jeder NFT hat unterschiedliche Eigenschaften (nicht-fungibel) und ist nachweislich nur begrenzt verfügbar. Das ist ein Unterschied zu Token wie beispielsweise ERC-20s, bei denen alle Token desselben Typs identisch sind und die gleichen Eigenschaften aufweisen ('fungibel'). Vermutlich ist es Ihnen egal, welche Dollarnote Sie in Ihrer Brieftasche haben, denn sie sind alle identisch und gleich viel wert. Im Gegensatz dazu _ist_ es nicht egal, welchen spezifischen NFT Sie besitzen, da alle individuelle Eigenschaften haben, die sie von anderen unterscheiden ('nicht-fungibel'). + +Die Einzigartigkeit eines jeden NFT ermöglicht die Tokenisierung von Dingen wie Kunst, Sammlerstücken oder sogar Immobilien. Dabei stellt jeder bestimmte einzigartige NFT einen bestimmten einzigartigen realen oder digitalen Gegenstand dar. Das Eigentum an einem Vermögenswert ist durch die Ethereum-Blockchain gesichert – niemand kann die Aufzeichnung des Eigentums ändern oder einen neuen NFT kopieren/einfügen. + + + +## Das Internet der Vermögenswerte {#internet-of-assets} + +NFTs und Ethereum lösen einige der Probleme, die heute mit dem Internet bestehen. Da alles digital wird, braucht es Möglichkeiten, die Eigenschaften physischer Objekte wie Knappheit, Einzigartigkeit und den Eigentumsnachweis digital nachzubilden. Dieser Eigentumsnachweis sollte dabei nicht von einer zentralen Organisation kontrolliert werden. Mit NFTs können Sie z. B. eine Musikdatei im MP3-Format besitzen, die nicht an eine bestimmte Musik-App eines Unternehmens gebunden ist, oder Sie können einen Social-Media-Handle besitzen, den Sie verkaufen oder tauschen können, welcher Ihnen aber nicht willkürlich von einem Plattformanbieter entzogen werden kann. + +Doch wie könnte ein Internet der NFTs im Vergleich zum Internet von heute aussehen? + +### Ein Vergleich {#nft-comparison} + +| Internet der NFTs | Das Internet heute | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Sie besitzen Ihre Vermögenswerte! Nur Sie können sie verkaufen oder eintauschen. | Sie leihen sich Vermögenswerte von anderen Organisationen aus. | +| NFTs sind digital einzigartig. Es ist nicht möglich, dass zwei NFTs identisch sind. | Die Kopie eines Objektes ist oft nicht vom Original zu unterscheiden. | +| Das Eigentum an einem NFT wird in der Blockchain gespeichert und kann von jedem überprüft werden. | Eigentumsnachweise von digitalen Objekten werden auf Servern gespeichert, die von Institutionen kontrolliert werden. Denen müssen Sie vertrauen. | +| NFTs sind Smart Contracts auf Ethereum. Das bedeutet, dass sie problemlos in anderen Smart Contracts und Anwendungen auf Ethereum verwendet werden können. | Unternehmen mit digitalen Objekten benötigen in der Regel ihre eigene geschützte Infrastruktur. | +| Inhaltsersteller können ihre Arbeit überall verkaufen und auf einen globalen Markt zugreifen. | Dabei sind die Ersteller von der Infrastruktur und Distribution der Plattform abhängig, die sie nutzen. Für diese gelten häufig Nutzungsbedingungen und geografische Einschränkungen. | +| Schöpfer von NFTs können die Eigentumsrechte an ihren eigenen Werken behalten und die Tantiemen direkt in dem NFT-Vertrag einarbeiten. | Plattformen, wie z. B. Musik-Streaming-Dienste, behalten einen Großteil der Verkaufserlöse ein. | + +## Wie funktionieren NFTs? {#how-nfts-work} + +Wie alle Token auf Ethereum werden auch NFTs von einem Smart Contract herausgegeben. Der Smart Contract entspricht einem von mehreren NFT-Standards (für gewöhnlich ERC-721 oder ERC-1155), die festlegen, welche Funktionen der Contract hat. Der Contract kann NFTs erzeugen ('mint') und weist sie einem spezifischen Besitzer zu. Die Eigentümerschaft wird im Contract definiert, indem bestimmte NFTs bestimmten Adressen zugeordnet werden. Der NFT hat eine eigene ID und in der Regel auch Metadaten, die den jeweiligen Token eindeutig machen. + +Wenn jemand einen NFT erstellt oder prägt, führt er in Wirklichkeit eine Funktion im Smart Contract aus, die seiner Adresse einen bestimmten NFT zuweist. Diese Informationen werden im Speicher des Contracts verwahrt, der Teil der Blockchain ist. Der Ersteller des Contracts kann zusätzliche Funktionen in den Vertrag einbauen, z. B. eine Begrenzung des Gesamtangebots oder die Festlegung von Tantiemen, die bei jeder Übertragung eines Tokens an den Ersteller zu zahlen sind. + +## Wofür werden NFTs verwendet? {#nft-use-cases} + +NFTs werden unter anderem für folgende Zwecke eingesetzt: + +- den Nachweis, dass Sie eine Veranstaltung besucht haben +- Bescheinigung, dass Sie einen Kurs absolviert haben +- Gegenstände aus Spielen, an denen Besitzrechte gehalten werden können +- digitale Kunst +- Tokenisierung von Vermögenswerten der realen Welt +- Nachweis Ihrer Online-Identität +- Zugangsbeschränkung zu Inhalten +- Ticketverkauf +- Dezentralisierung von Internet-Domänennamen +- Sicherheiten in DeFi + +Vielleicht sind Sie ein Künstler, der seine Werke mit Hilfe von NFTs verbreiten möchte, ohne die Kontrolle über die Werke zu verlieren und seine Gewinne an Zwischenhändler zu opfern. Sie können einen neuen Contract erstellen und die Anzahl der NFTs, ihre Eigenschaften und eine Verknüpfung zu bestimmten Kunstwerken angeben. Als Künstler können Sie in den Smart Contract einprogrammieren, welche Tantiemen Sie erhalten sollen (z. B. <Überweisung on 5 % des Verkaufspreises an den Vertragseigentümer, wenn ein NFT übertragen wird). Sie können außerdem jederzeit nachweisen, dass Sie die NFTs erstellt haben, weil Sie die Wallet besitzen, die den Vertrag eingesetzt hat. Ihre Käufer können leicht nachweisen, dass sie einen echten NFT aus Ihrer Sammlung besitzen, da ihre Walletadresse mit einem Token in Ihrem Smart Contract verknüpft ist. Sie können ihn im gesamten Ethereum-Ökosystem verwenden und sich auf seine Authentizität verlassen. + +Oder denken Sie ein Ticket für ein Sportevent. So wie ein Veranstalter für seine Veranstaltung entscheiden kann, wie viele Tickets verkauft werden, kann der Ersteller eines NFT entscheiden, wie viele Repliken existieren. Manchmal handelt es sich dabei um genaue Repliken, wie etwa 5.000 Eintrittskarten. Manchmal werden auch mehrere Stücke geprägt, die zwar sehr ähnlich sind, aber doch leichte Unterschiede aufweisen, wie z. B. ein Ticket mit einem zugewiesenem Sitzplatz. Diese können in Peer-to-Peer-Umgebungen gekauft und verkauft werden, ohne dass Zwischenhändler dafür bezahlt werden müssen. Dabei kann sich der Käufer durch Überprüfung der Adresse des Contracts stets von der Echtheit des Tickets überzeugen. + +Auf ethereum.org werden NFTs verwendet, um zu zeigen, dass Leute zu unserer GitHub-Ablage beigetragen oder an Calls teilgenommen haben, und wir haben sogar unseren eigenen NFT-Domainnamen. Wenn Sie einen Beitrag für ethereum.org leisten, können Sie ein POAP-NFT beanspruchen. Einige Krypto-Treffen nutzen POAPs als Zutrittskarte. [Mehr zum Beitragen](/contributing/#poap). + +![ethereum.org POAP](./poap.png) + +Diese Website hat einen alternativen Domainnamen ermöglicht durch NFTs, **ethereum.eth**. Unsere `.org`-Adresse wird zentral von einem Domain Name System Provider (DNS) verwaltet. ethereum`.eth` hingegen ist über den Ethereum Name Service (ENS) registriert. Und sie gehört uns und wird von uns verwaltet. [Schauen Sie sich unseren ENS-Datensatz an](https://app.ens.domains/name/ethereum.eth). + +[Mehr zu ENS](https://app.ens.domains) + + + +### NFT-Sicherheit {#nft-security} + +Die Sicherheit von Ethereum basiert auf Proof-of-Stake. Das System ist darauf ausgelegt, böswillige Handlungen mithilfe finanziell negativer Anreize zu verhindern und Ethereum dadurch Manipulationen gegenüber sicherer zu machen. Das macht NFTs überhaupt erst möglich. Sobald der Block, der Ihre NFT-Transaktion beinhaltet, endgültig festgelegt wird, würde es einen Angreifer Millionen von ETH kosten, um dies wieder zu ändern. Jeder, der Ethereum-Software ausführt, würde die unehrliche Manipulation mit einem NFT sofort erkennen können und der Angreifer würde eine finanzielle Strafe erhalten und ausgeschlossen werden. + +Sicherheitsprobleme mit NFTs stehen oft im Zusammenhang mit Phishing-Betrügereien, Schwachstellen bei Smart Contracts oder Benutzerfehlern (z. B. unbeabsichtigtes Veröffentlichen privater Schlüssel). Damit wird eine sichere Wallet für NFT-Besitzer umso wichtiger. + + + Weiteres zur Sicherheit + + +## Weiterführende Informationen {#further-reading} + +- [NFT-Leitfaden für Einsteiger](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, Januar 2020_ +- [EtherscanNFT Tracker](https://etherscan.io/nft-top-contracts) +- [ERC-721-Token-Standard](/developers/docs/standards/tokens/erc-721/) +- [ERC-1155-Token-Standard](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/public/content/translations/de/refi/index.md b/public/content/translations/de/refi/index.md new file mode 100644 index 00000000000..7fa127d3f34 --- /dev/null +++ b/public/content/translations/de/refi/index.md @@ -0,0 +1,79 @@ +--- +title: Regenerative Finanzen (ReFi) +description: Ein Überblick über ReFi und die aktuellen Anwendungsfälle. +lang: de +template: use-cases +emoji: ":recycle:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Ein alternatives, auf regenerativen Prinzipien beruhendes Wirtschaftssystem +summaryPoint2: Ein Versuch, Ethereum für die Lösung globaler Koordinationskrisen wie dem Klimawandel nutzbar zu machen +summaryPoint3: Ein Instrument zur drastischen Skalierung von Gütern für ökologischen Nutzen wie geprüften Kohlenstoffgutschriften +--- + +## Was ist ReFi? {#what-is-refi} + +**Regenerative Finanzen (ReFi)** ist eine Reihe von Instrumenten und Ideen, die auf Blockchains aufbauen und darauf abzielen, eine Wirtschaft zu schaffen, die regenerativ ist und nicht extraktiv oder ausbeuterisch. Schließlich erschöpfen extraktive Systeme die verfügbaren Ressourcen und brechen irgendwann zusammen. Ohne Regenerationsmechanismen fehlt ihnen die Widerstandsfähigkeit. ReFi geht von der Annahme aus, dass die Schaffung von Geldwerten entkoppelt werden muss von einer nicht nachhaltigen Entnahme von Ressourcen aus unserem Planeten und unseren Gemeinschaften. + +Stattdessen zielt ReFi darauf ab, ökologische, kommunale oder soziale Probleme zu lösen, indem es regenerative Kreisläufe schafft. Diese Systeme schaffen Werte für die Teilnehmer und kommen gleichzeitig den Ökosystemen und Gemeinschaften zugute. + +Eine der Grundlagen von ReFi ist das Konzept der regenerativen Wirtschaft, das von John Fullerton vom [Capital Institute](https://capitalinstitute.org) erdacht wurde. Er schlug acht miteinander verknüpfte Grundsätze vor, die der systemischen Gesundheit zugrunde liegen: + +![Acht miteinander verknüpfte Grundsätze](./refi-regenerative-economy-diagram.png) + +ReFi-Projekte verwirklichen diese Prinzipien mithilfe von [Smart Contracts](/developers/docs/smart-contracts/) und [dezentralen Finanzen (DeFi)](/defi/), um Anreize für regenerative Verhaltensweisen zu schaffen, z. B. für die Wiederherstellung geschädigter Ökosysteme, und die Zusammenarbeit in großem Maßstab bei globalen Problemen wie Klimawandel und Verlust der Artenvielfalt zu erleichtern. + +ReFi überschneidet sich auch mit der Bewegung der [dezentralen Wissenschaft (DeSci)](/desci/), die Ethereum als Plattform für die Finanzierung, Erstellung, Überprüfung, Gutschrift, Speicherung und Verbreitung wissenschaftlicher Erkenntnisse nutzt. DeSci-Instrumente könnten sich als nützlich erweisen, um überprüfbare Standards und Praktiken für die Umsetzung und Überwachung regenerativer Aktivitäten wie das Pflanzen von Bäumen, die Entfernung von Plastik aus den Ozeanen oder die Wiederherstellung eines geschädigten Ökosystems zu entwickeln. + +## Tokenisierung von Kohlenstoffgutschriften {#tokenization-of-carbon-credits} + +Der **[freiwillige Kohlenstoffmarkt (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** ist ein Mechanismus zur Finanzierung von Projekten, die sich nachweislich positiv auf die Kohlenstoffemissionen auswirken, indem sie entweder laufende Emissionen reduzieren oder bereits emittierte Treibhausgase aus der Atmosphäre entfernen. Diese Projekte erhalten nach ihrer Verifizierung einen Vermögenswert, die so genannten "Kohlenstoffgutschriften", die sie an Einzelpersonen und Organisationen verkaufen können, die den Klimaschutz unterstützen wollen. + +Neben dem VCM gibt es auch mehrere staatlich verordnete Kohlenstoffmärkte ("Einhaltungs-Märkte"), die darauf abzielen, durch Gesetze oder Verordnungen innerhalb einer bestimmten Rechtsordnung (z. B. Land oder Region) einen Kohlenstoffpreis festzulegen und das Angebot an zu verteilenden Zertifikaten zu steuern. Die Märkte für die Einhaltung der Vorschriften bieten den Verursachern in ihrem Zuständigkeitsbereich Anreize zur Verringerung der Emissionen, aber sie sind nicht in der Lage, bereits emittierte Treibhausgase zu beseitigen. + +Trotz seiner Entwicklung in den letzten Jahrzehnten hat das VCM nach wie mit einigen Problemen zu kämpfen: + +1. Hochgradig fragmentierte Liquidität +2. Undurchsichtige Transaktionsmechanismen +3. Hohe Gebühren +4. Sehr langsame Handelsgeschwindigkeit +5. Mangelnde Skalierbarkeit + +Die Umstellung des VCM auf einen neuen, auf der Blockchain basierenden **digitalen Kohlenstoffmarkt (DCM)** könnte eine Gelegenheit sein, die bestehende Technologie für die Validierung, den Handel und den Verbrauch von Kohlenstoffgutschriften zu verbessern. Blockchains ermöglichen öffentlich überprüfbare Daten, den Zugang für einen breiten Nutzerkreis und mehr Liquidität. + +Bei ReFi-Projekten wird die Blockchain-Technologie eingesetzt, um viele der Probleme des traditionellen Marktes zu lindern: + +- **Die Liquidität konzentriert sich in einer kleinen Anzahl von Liquiditätspools**, die von jedem frei gehandelt werden können. Sowohl große Organisationen als auch einzelne Nutzer können diese Pools ohne manuelle Suche nach Verkäufern/Käufern, Teilnahmegebühren oder vorherige Registrierung nutzen. +- **Alle Transaktionen werden auf öffentlichen Blockchains aufgezeichnet**. Der Weg, den jede Emissionsgutschrift aufgrund von Handelsaktivitäten nimmt, ist für immer nachvollziehbar, sobald sie im DCM zur Verfügung gestellt wird. +- **Die Transaktionsgeschwindigkeit ist nahezu unmittelbar**. Die Beschaffung großer Mengen an Emissionsgutschriften über die herkömmlichen Märkte kann Tage oder Wochen dauern, während dies im DCM in wenigen Sekunden möglich ist. +- **Die Handelstätigkeit erfolgt ohne Zwischenhändler**, die hohe Gebühren verlangen. Digitale Emissionsgutschriften stellen eine [62%ige Kostenverbesserung im Vergleich zu entsprechenden traditionellen Gutschriften](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne) dar, so die Daten eines Analyseunternehmens. +- **Das DCM ist skalierbar** und kann die Anforderungen von Einzelpersonen und multinationalen Unternehmen gleichermaßen erfüllen. + +### Hauptbestandteile des DCM {#key-components-dcm} + +Die derzeitige Landschaft des DCM setzt sich aus vier Hauptkomponenten zusammen: + +1. Register wie [Verra](https://verra.org/project/vcs-program/registry-system/) und [Gold Standard](https://www.goldstandard.org/) sorgen dafür, dass Projekte, die Emissionsgutschriften erzeugen, auch zuverlässig sind. Sie betreiben auch die Datenbanken, in denen digitale Kohlenstoffgutschriften erzeugt und übertragen oder verbraucht werden können ("retired"). + +Es gibt eine neue Welle innovativer Projekte, die auf Blockchains aufbauen und versuchen, die Stellung der etablierten Unternehmen in diesem Sektor ins Wanken zu bringen. + +2. Kohlenstoffbrücken, auch bekannt als Tokenizer, sie bieten eine Technologie zur Darstellung oder Übertragung von Emissionsgutschriften aus traditionellen Registern in das DCM. Nennenswerte Beispiele sind [Toucan Protocol](https://toucan.earth/), [C3](https://c3.app/) und [Moss.Earth](https://moss.earth/). +3. Integrierte Dienste bieten den Endnutzern Gutschriften für die Vermeidung und/oder Beseitigung von Kohlenstoff, sodass sie den Umweltnutzen einer Gutschrift in Anspruch nehmen und ihre Unterstützung für den Klimaschutz mit der Welt teilen können. + +Einige, wie zum Beispiel [Klima Infinity](https://www.klimadao.finance/infinity) und [Senken](https://senken.io/) bieten eine breite Palette von Projekten an, die von Dritten entwickelt und unter etablierten Standards wie Verra veröffentlicht wurden. Andere wie [Nori](https://nori.com/) bieten nur bestimmte Projekte an, die nach ihrem eigenen Standard für Emissionsgutschriften entwickelt wurden, den sie ausgeben und für den sie einen eigenen Marktplatz haben. + +4. Das zugrundeliegende System und die Infrastruktur, die die Ausweitung von Wirkung und Effizienz der gesamten Lieferkette des Kohlenstoffmarktes erleichtern. [KlimaDAO](http://klimadao.finance/) stellt Liquidität als öffentliches Gut zur Verfügung (und ermöglicht es jedem, Emissionsgutschriften zu einem transparenten Preis zu kaufen oder zu verkaufen), schafft Anreize für einen erhöhten Durchsatz auf den Emissionshandelsmärkten und für die Stilllegung von Emissionsgutschriften durch Belohnungen und bietet benutzerfreundliche, interoperable Tools für den Zugriff auf Daten sowie für den Erwerb und die Stilllegung einer Vielzahl von tokenisierten Emissionsgutschriften. + +## ReFi über Kohlenstoffmärkte hinaus {#refi-beyond} + +Obwohl der Schwerpunkt derzeit auf Kohlenstoffmärkten im Allgemeinen und dem Übergang von VCM zu DCM im Besonderen liegt, ist der Begriff "ReFi" nicht auf Kohlenstoff beschränkt. Neben Kohlenstoffgutschriften können andere Umweltgüter entwickelt und mit Token versehen werden. Das bedeutet, dass auch andere negative externe Effekte in den Basisebenen zukünftiger Wirtschaftssysteme bepreist werden können. Darüber hinaus kann der regenerative Aspekt dieses Wirtschaftsmodells auch auf andere Bereiche angewandt werden, z. B. auf die Finanzierung öffentlicher Güter über quadratische Finanzierungsplattformen wie [Gitcoin](https://gitcoin.co/). Organisationen, die auf der Idee der offenen Beteiligung und der gerechten Verteilung von Ressourcen beruhen, ermöglichen es jedem, Geld in Open-Source-Softwareprojekte sowie in Bildungs-, Umwelt- und Gemeinschaftsprojekte zu stecken. + +Durch die Umlenkung des Kapitals weg von extraktiven Praktiken hin zu einem regenerativen Fluss können Projekte und Unternehmen, die soziale, ökologische oder kommunale Vorteile bieten und die bei der herkömmlichen Finanzierung möglicherweise nicht zum Zuge kommen, viel schneller und einfacher in Gang kommen und positive externe Effekte für die Gesellschaft erzeugen. Der Übergang zu diesem Finanzierungsmodell öffnet auch die Tür zu viel integrativeren Wirtschaftssystemen, in denen Menschen aller Bevölkerungsgruppen aktive Teilnehmer und nicht nur passive Beobachter werden können. ReFi bietet eine Vision von Ethereum als Mechanismus zur Koordinierung von Maßnahmen zur Bewältigung existenzieller Herausforderungen, denen unsere Spezies und alles Leben auf unserem Planeten gegenübersteht – als Grundlage für ein neues Wirtschaftsparadigma, das eine integrativere und nachhaltigere Zukunft für die kommenden Jahrhunderte ermöglicht. + +## Weitere Informationen zur ReFi + +- [Ein umfassender Überblick über Kohlenstoffwährungen und ihren Platz in der Wirtschaft](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) +- [Das Ministerium für die Zukunft, ein Roman über die Rolle einer kohlenstoffgestützten Währung bei der Bekämpfung des Klimawandels](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) +- [Ein ausführlicher Bericht der Taskforce für die Skalierung freiwilliger Kohlenstoffmärkte](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) +- [Kevin Owocki und Evan Miyazonos CoinMarketCap Glossar-Eintrag über ReFi](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/de/roadmap/account-abstraction/index.md b/public/content/translations/de/roadmap/account-abstraction/index.md similarity index 100% rename from src/content/translations/de/roadmap/account-abstraction/index.md rename to public/content/translations/de/roadmap/account-abstraction/index.md diff --git a/public/content/translations/de/roadmap/beacon-chain/index.md b/public/content/translations/de/roadmap/beacon-chain/index.md new file mode 100644 index 00000000000..d8c1ebcc0b2 --- /dev/null +++ b/public/content/translations/de/roadmap/beacon-chain/index.md @@ -0,0 +1,75 @@ +--- +title: Die Beacon Chain +description: Informieren Sie sich über die Beacon Chain – das Upgrade, mit dem Proof-of-Stake für Ethereum eingeführt wurde +lang: de +template: upgrade +image: /upgrades/core.png +alt: +summaryPoint1: Mit der Bacon Chain wurde Proof-of-Stake in das Ethereum Ökosystem eingeführt. +summaryPoint2: Sie wurde 2022 mit der ursprünglichen Ethereum Proof-of-Work Blockchain vereinigt. +summaryPoint3: Die Beacon Chain führte die Konsenslogik und das Block-Gossip-Protokoll ein, das nun Ethereum sichert. +--- + + + Die Beacon Chain, die am 1. Dezember 2020 an den Start ging, formalisierte Proof-of-Stake als Konsensmechanismus von Ethereum mit dem Merge Upgrade am 15. September 2022. + + +## Was ist die Beacon Chain? {#what-is-the-beacon-chain} + +Die Beacon Chain ist der Name der ursprünglichen Proof-of-Stake (Anteilsnachweis) Blockchain, die im Jahr 2020 eingeführt wurde. Sie wurde geschaffen, um sicherzustellen, dass die Proof-of-Stake Konsenslogik sicher und nachhaltig ist, bevor sie auf dem Ethereum Mainnet eingeführt wurde. Sie wurde daher neben dem ursprünglichen Proof-of-Work Konsens für Ethereum betrieben. Die Beacon Chain bestand aus 'leeren' Blöcken. Die Umstellung von Proof-of-Work (Arbeitsnachweis) auf den Proof-of-Stake (Anteilsnachweis) Mechanismus auf Ethereum erforderte jedoch, dass die Beacon Chain angewiesen wurde, Transaktionsdaten von Ausführungsklienten anzunehmen, sie zu Blockbündeln zusammenzuführen und sie dann mithilfe eines auf dem Proof-of-Stake-Mechanismus basierenden Konsensverfahrens in eine Blockchain zu organisieren. Zur gleichen Zeit haben die ursprünglichen Ethereum Clients ihr Mining, die Blockausbreitung und die Konsenslogik abgeschaltet und alles an die Beacon Chain übergeben. Dieses Ereignis wurde als [die Zusammenführung bekannt](/roadmap/merge/). Nachdem das Merge (Fusion)-Ereignis erfolgreich abgeschlossen war, existierten keine zwei Blockchains mehr. Stattdessen existierte nur noch ein Proof-of-Stake Ethereum, für das nun pro Knoten zwei verschiedene Klienten erforderlich waren. Die Beacon Chain ist nun die Konsensus-Ebene, ein Peer-to-Peer-Netzwerk von Konsens-Clients, das für den Block-Tratsch und die Konsensus-Logik zuständig ist, während die ursprünglichen Clients die Ausführungs-Ebene bilden, die für den Tratsch und die Ausführung von Transaktionen sowie die Verwaltung des Ethereum-Status verantwortlich ist. Die beiden Schichten können über die Engine-API miteinander kommunizieren. + +## Welche Funktion hat die Beacon Chain? {#what-does-the-beacon-chain-do} + +Die Beacon Chain ist die Bezeichnung für ein Kontenbuch, das das Netzwerk von Ethereum [Stakern](/staking/) leitete und koordinierte, bevor diese Staker mit der Validierung echter Ethereum-Blöcke begannen. Es werden jedoch keine Transaktionen verarbeitet oder Smart-Contract-Interaktionen abgewickelt, da dies in der Ausführungs-Ebene geschieht. Die Beacon Chain ist verantwortlich für Dinge wie die Handhabung von Blöcken und Bescheinigungen, die Ausführung des Fork-Choice-Algorithmus und die Verwaltung von Belohnungen und Strafen. Lesen Sie mehr auf unserer [Seite über die Architektur der Nodes](/developers/docs/nodes-and-clients/node-architecture/#node-comparison). + +## Auswirkungen der Beacon Chain {#beacon-chain-features} + +### Einführung ins Staking {#introducing-staking} + +Die Beacon Chain brachte [Proof-of-Stake](/developers/docs/consensus-mechanisms/pos/) zu Ethereum. Dieser Mechanismus sichert Ethereum und sorgt dafür, dass die Validatoren dabei ETH verdienen. In der Praxis bedeutet dies ETH einzusetzen, um die Validierungssoftware zu aktivieren. Als Staker führen Sie die Software aus die in der Chain neue Blöcke erstellt und validiert. + +Staking erfüllt denselben Zweck wie einst [Mining](/developers/docs/mining/), aber unterscheidet sich davon in vielerlei Hinsicht. Mining erforderte hohe Voraufwendungen in Form von mächtiger Hardware und hohem Energieverbrauch. Dies führte zu Skaleneffekten und förderte Zentralisierung. Mining sah auch keine Verpflichtung vor Vermögenswerte, als Sicherheiten zu sperren. Das Protokoll hatte dadurch weniger Möglichkeiten feindselige Akteure nach einer Attacke zu bestrafen. + +Der Wechsel zu Proof-of-Stake machte Ethereum wesentlich sicherer und dezentralisierte im Vergleich zu Proof-of-Work. Je mehr Menschen sich am Netzwerk beteiligen, desto dezentralisierter und sicherer wird es vor Angriffen. + +Und die Verwendung von Proof-of-Stake als Konsensmechanismus ist eine grundlegende Komponente für [das sichere, umweltfreundliche und skalierbare Ethereum, das wir jetzt haben](/roadmap/vision/). + + + Wenn Sie Interesse daran haben ein Validator zu werden und bei der Sicherung von Ethereum mitwirken wollen können Sie hier mehr über das Staking erfahren. + + +### Vorbereitung für Sharding {#setting-up-for-sharding} + +Seit die Beacon Chain mit dem ursprünglichen Ethereum Mainnet zusammengeführt wurde, hat die Ethereum Community damit begonnen das Netzwerk zu skalieren. + +Proof-of-Stake bietet den Vorteil, dass es zu jeder Zeit eine Registry aller zugelassener Blockproduzenten, die ETH eingesetzt haben, besitzt. Diese Registry bereitet den Weg teilen und herrschen anzuwenden, aber verlässlich spezifische Verantwortungen im Netzwerk zu teilen. + +Diese Verantwortung steht im Gegensatz zu Proof-of-Work, wo Miner keine Verantwortung gegenüber dem Netzwerk haben und jederzeit, ohne Auswirkungen, ihr Mining beenden und ihre Node-Software permanent abschalten konnten. Es gibt auch keine Registry bekannter Blockvorschläger und keinen verlässlichen Weg Verantwortung sicher im Netzwerk zu teilen. + +[Mehr zu Sharding](/roadmap/danksharding/) + +## Beziehung zwischen den Upgrades {#relationship-between-upgrades} + +Die Ethereum-Upgrades sind alle in gewisser Weise miteinander verbunden. Zusammenfassend wirkt sich die Beacon Chain auf weitere Upgrades wie folgt aus: + +### Beacon Chain und die Zusammenführung {#merge-and-beacon-chain} + +Zunächst existierte die Beacon Chain getrennt vom Ethereum Mainnet. Sie wurden im Jahre 2022 zusammengeführt. + + + Die Zusammenführung + + +### Shards und die Beacon Chain {#shards-and-beacon-chain} + +Sharding kann nur sicher in das Ethereum Ökosystem eingeführt werden, wenn ein Proof-of-Stake Konsensmechanismus aktiv ist. Die Beacon Chain, welche mit Mainnet zusammengeführt wurde, führte das Staking ein. Dieses ebnet den Weg für Sharding, was wiederum bei einer besseren Skalierung von Ethereum hilft. + + + Shard Chains + + +## Weiterführende Informationen + +- [Mehr über zukünftige Ethereum Upgrades](/roadmap/vision) +- [Mehr über die Knotenarchitektur](/developers/docs/nodes-and-clients/node-architecture) +- [Mehr über Proof-of-Stake](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/de/roadmap/danksharding/index.md b/public/content/translations/de/roadmap/danksharding/index.md similarity index 100% rename from src/content/translations/de/roadmap/danksharding/index.md rename to public/content/translations/de/roadmap/danksharding/index.md diff --git a/public/content/translations/de/roadmap/future-proofing/index.md b/public/content/translations/de/roadmap/future-proofing/index.md new file mode 100644 index 00000000000..8aa89d4abc6 --- /dev/null +++ b/public/content/translations/de/roadmap/future-proofing/index.md @@ -0,0 +1,38 @@ +--- +title: Zukunftssicherung von Ethereum +description: Diese Verbesserungen festigen Ethereum als widerstandsfähige und dezentrale Grundlage für die ungewisse Zukunft. +lang: de +image: /roadmap/roadmap-future.png +alt: "Ethereum-Roadmap" +template: roadmap +--- + +Einige Aspekte der Roadmap sind zwar nicht unmittelbar für die Skalierung oder Sicherheit von Ethereum erforderlich, legen jedoch den Grundstein für langfristige Stabilität und Zuverlässigkeit von Ethereum. + +## Quantenresistenz {#quantum-resistance} + +Wenn Quantencomputing Realität wird, wird einiges der Kryptographie, die das heutige Ethereum sichert, gefährdet sein. Obwohl Quantencomputer vermutlich noch Jahrzehnte davon entfernt sind, eine echte Bedrohung für die moderne Kryptographie darzustellen, wird Ethereum dennoch so entwickelt, dass es für die kommenden Jahrhunderte sicher ist. Dies bedeutet, dass Ethereum so schnell wie möglich [quantenresistent](https://consensys.net/blog/developers/how-will-quantum-supremacy-affect-blockchain/) gemacht werden soll. + +Die Herausforderung für Ethereum-Entwickler besteht darin, dass das aktuelle Proof-of-Stake-Protokoll auf einem sehr effizienten Signaturschema namens BLS basiert, um Stimmen für gültige Blöcke zu aggregieren. Dieses Signaturschema wird von Quantencomputern gebrochen, aber die quantenresistenten Alternativen sind nicht so effizient. + +Die in mehreren Bereichen von Ethereum zur Generierung kryptographischer Geheimnisse verwendeten ["KZG"-Verpflichtungsschemata](/roadmap/danksharding/#what-is-kzg) sind als quantenanfällig bekannt. Derzeit wird dies durch "vertrauenswürdige Setups" umgangen, bei denen viele Benutzer Zufälligkeit erzeugen, die von einem Quantencomputer nicht rückgängig gemacht werden kann. Die ideale Lösung wäre jedoch einfach, Quanten-sichere Kryptographie einzubauen. Es gibt zwei führende Ansätze, die effiziente Ersatzlösungen für das BLS-Schema werden könnten: [STARK-basierte](https://hackmd.io/@vbuterin/stark_aggregation) und [Gitter-basierte](https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-lattice-encryption-326ac66e3175) Signierung. Diese werden noch erforscht und prototypisiert. + + Lesen Sie über KZG und vertrauenswürdige Setups + +## Einfacheres und effizienteres Ethereum {#simpler-more-efficient-ethereum} + +Komplexität schafft Möglichkeiten für Fehler oder Schwachstellen, die von Angreifern ausgenutzt werden können. Ein Bestandteil des Fahrplans besteht daher darin, Ethereum zu vereinfachen, indem nicht mehr benötigter oder verbesserungsfähiger Code, der sich durch verschiedene Upgrades gehalten hat, entfernt wird. Eine schlankere, einfachere Codebasis ist für Entwickler leichter zu warten und zu verstehen. + +Es gibt mehrere Updates, die an der [Ethereum Virtual Machine (EVM)](/developers/docs/evm) vorgenommen werden, um sie einfacher und effizienter zu gestalten. Dazu gehört [das Entfernen des SELFDESTRUCT Opcodes](https://hackmd.io/@vbuterin/selfdestruct) - ein selten genutztes Kommando, das nicht mehr benötigt wird und unter bestimmten Umständen gefährlich zu verwenden sein kann, insbesondere in Kombination mit anderen zukünftigen Upgrades des Speichermodells von Ethereum. Auch unterstützen Ethereum-Clients noch einige alte Transaktionstypen, die nun vollständig entfernt werden können. Die Art und Weise, wie Gas berechnet wird, kann ebenfalls verbessert werden und effizientere Methoden für die Arithmetik, die einigen kryptographischen Operationen zugrunde liegt, können eingeführt werden. + +Ebenso können Updates an anderen Teilen der gegenwärtigen Ethereum-Clients vorgenommen werden. Ein Beispiel dafür ist, dass aktuelle Ausführungs- und Konsens-Clients eine andere Art der Datenkompression verwenden. Es wird viel einfacher und intuitiver sein, Daten zwischen Clients auszutauschen, wenn das Kompressionsschema im gesamten Netzwerk einheitlich ist. + +## Aktueller Fortschritt {#current-progress} + +Die meisten der für die Zukunftssicherung von Ethereum erforderlichen Upgrades befinden sich noch in der Forschungsphase und könnten mehrere Jahre von der Implementierung entfernt sein. Upgrades wie das Entfernen von SELF-DESTRUCT und die Harmonisierung des Kompressionsschemas, das in den Ausführungs- und Konsens-Clients verwendet wird, werden wahrscheinlich früher kommen als die Quantenresistente Kryptographie. + +**Weiterführende Informationen** + +- [Gas](/developers/docs/gas) +- [EVM](/developers/docs/evm) +- [Data structures](/developers/docs/data-structures-and-encoding) diff --git a/public/content/translations/de/roadmap/index.md b/public/content/translations/de/roadmap/index.md new file mode 100644 index 00000000000..c172f67d16e --- /dev/null +++ b/public/content/translations/de/roadmap/index.md @@ -0,0 +1,117 @@ +--- +title: Ethereum-Roadmap +description: Der Weg zu mehr Skalierbarkeit, Sicherheit und Nachhaltigkeit für Ethereum. +lang: de +template: roadmap +image: /roadmap/roadmap-main.png +alt: "Ethereum-Roadmap" +summaryPoints: +buttons: + - label: Weitere Upgrades + toId: welche-veränderungen-kommen-werden + - label: Bisherige Upgrades + to: /history/ + variant: Übersicht +--- + +Ethereum ist bereits eine leistungsstarke Plattform für die globale Koordinierung, aber sie wird immer noch verbessert. Ein ehrgeiziges Paket von Verbesserungen wird Ethereum von seiner derzeitigen Form zu einer vollständig skalierten, maximal widerstandsfähigen Plattform ausbauen. Diese Upgrades sind in der Ethereum-Roadmap dargelegt. + +**Um mehr über frühere Upgrades von Ethereum zu erfahren, besuchen Sie bitte unsere [History](/history/) Seite** + +## Welche Veränderungen stehen bei Ethereum an? {#what-changes-are-coming} + +Die Ethereum-Roadmap beschreibt die spezifischen Verbesserungen, die in Zukunft am Protokoll vorgenommen werden sollen. Insgesamt wird die Roadmap den Ethereum-Nutzern folgende Vorteile bringen: + + + + + + + + +## Warum braucht Ethereum eine Roadmap? {#why-does-ethereum-need-a-roadmap} + +Ethereum erhält regelmäßig Upgrades, die seine Skalierbarkeit, Sicherheit oder Nachhaltigkeit verbessern. Eine der Hauptstärken von Ethereum ist die Anpassung an neue Ideen, die aus Forschung und Entwicklung hervorgehen. Die Anpassungsfähigkeit gibt Ethereum die Flexibilität, sich neuen Herausforderungen zu stellen und mit den fortschrittlichsten technologischen Durchbrüchen Schritt zu halten. + + + +Die Roadmap ist vor allem das Ergebnis jahrelanger Arbeit von Forschern und Entwicklern - da das Protokoll sehr technisch ist - aber jede motivierte Person kann sich daran beteiligen. Die Ideen beginnen in der Regel als Diskussionen in einem Forum wie [ethresear.ch](https://ethresear.ch/), [Ethereum magicians](https://www.figma.com/exit?url=https%3A%2F%2Fethereum-magicians.org%2F) oder dem Eth R&D Discord Server. Dabei kann es sich um Reaktionen auf neu entdeckte Schwachstellen handeln, um Vorschläge von Organisationen, die auf der Anwendungsebene arbeiten (z. B. Dapps und Börsen), oder um bekannte Schwierigkeiten für Endnutzer (z. B. Kosten oder Transaktionsgeschwindigkeit). Wenn diese Ideen ausgereift sind, können sie als [Ethereum Improvement Proposals](https://eips.ethereum.org/) vorgeschlagen werden. Dies alles geschieht öffentlich, so dass sich jeder aus der Community jederzeit einbringen kann. + +[Mehr über Ethereum-Governance](/governance/) + + + + +

Was war ETH2?

+ +

Der Begriff "Eth2" wurde häufig verwendet, um die Zukunft von Ethereum vor der Umstellung auf Proof-of-Stake zu beschreiben, aber er wurde zu Gunsten einer präziseren Terminologie abgeschafft. Ursprünglich wurde er verwendet, um das Ethereum-Netzwerk vor der Umstellung auf Proof-of-Stake und das Netzwerk danach zu unterscheiden, oder manchmal, um sich auf die verschiedenen Ethereum-Clients zu beziehen (Ausführungs-Clients wurden manchmal als ETH1-Clients und Consensus-Clients wurden manchmal als ETH2-Clients bezeichnet).

+ +
+ +## Wird sich die Roadmap von Ethereum im Laufe der Zeit ändern? {#will-ethereums-roadmap-change-over-time} + +Ja - ganz sicherlich. Die Roadmap ist der aktuelle Plan für das Upgrade von Ethereum, der sowohl kurzfristige als auch zukünftige Pläne umfasst. Wir gehen davon aus, dass sich die Roadmap ändern wird, wenn neue Informationen und Technologien verfügbar werden. + +Betrachten Sie die Roadmap von Ethereum als eine Reihe von Absichten zur Verbesserung von Ethereum; sie ist die beste Hypothese der Kernforscher und -entwickler über den optimalen Weg zur Weiterentwicklung von Ethereum. + +## Wann wird die Roadmap fertiggestellt sein? {#when-will-the-roadmap-be-finished} + +Ethereum wird einige Upgrades in den nächsten sechs Monaten implementieren (z.B. Staking withdrawals); andere haben eine geringere Priorität und werden wahrscheinlich erst in den nächsten 5-10 Jahren implementiert (z.B. Quantum Resistenz). Der genaue Zeitplan für die verschiedenen Upgrades lässt sich nur schwer vorhersagen, da an vielen Punkten der Roadmap parallel gearbeitet wird und die Entwicklung unterschiedlich schnell verläuft. Die Dringlichkeit einer Aufrüstung kann sich auch im Laufe der Zeit in Abhängigkeit von externen Faktoren ändern (z. B. kann ein plötzlicher Sprung in der Leistung und Verfügbarkeit von Quantencomputern die Dringlichkeit einer quantenresistenten Kryptographie erhöhen). + +Eine Möglichkeit, die Entwicklung von Ethereum zu betrachten, ist die Vergleichung mit der biologischen Evolution. Ein Netzwerk, das in der Lage ist, sich an neue Herausforderungen anzupassen und fit zu bleiben, wird eher erfolgreich sein als eines, das sich gegen Veränderungen sträubt, obwohl mit zunehmender Leistung, Skalierbarkeit und Sicherheit des Netzwerks immer weniger Änderungen am Protokoll erforderlich sein werden. + +## Muss ich etwas tun, wenn es ein Upgrade gibt? {#do-i-have-to-do-anything-when-there-is-an-upgrade} + +Upgrades haben in der Regel keine Auswirkungen auf die Endnutzer, außer dass sie ein besseres Nutzererlebnis, ein sichereres Protokoll und vielleicht mehr Optionen für die Interaktion mit Ethereum bieten. Endnutzer sind nicht verpflichtet, sich aktiv an einem Upgrade zu beteiligen, und müssen auch nichts zur Sicherung ihrer Assets tun. Die Betreiber von Nodes müssen ihre Clients aktualisieren, um sich auf ein Upgrade vorzubereiten. Einige Upgrades können zu Änderungen für Anwendungsentwickler führen. So können beispielsweise Aktualisierungen des Zeitablaufs dazu führen, dass Anwendungsentwickler historische Daten aus neuen Quellen abrufen. + +## Was ist mit The Verge, The Splurge, usw.? {#what-about-the-verge-splurge-etc} + +[Vitalik Buterin schlug eine Vision für die Ethereum-Roadmap](https://twitter.com/VitalikButerin/status/1588669782471368704) vor, die in mehrere Kategorien unterteilt war, die durch ihre Auswirkungen auf die Ethereum-Architektur miteinander verbunden sind. Sie enthielt: + +- The Merge: Upgrades im Zusammenhang mit dem Wechsel von Proof-of-Work zu Proof-of-Stake +- The Surge: Upgrades im Zusammenhang mit der Skalierbarkeit durch Rollups und Data Sharding +- The Scourge: Upgrades im Zusammenhang mit Zensurresistenz, Dezentralisierung und Protokollrisiken von MEV +- The Verge: Upgrades zur einfacheren Verifizierung von Blöcken +- The Purge: Aktualisierungen im Zusammenhang mit der Reduzierung der Rechenkosten für den Betrieb der Nodes und der Vereinfachung des Protokolls +- The Splurge: andere Upgrades, die nicht gut in die vorherigen Kategorien passen. + +Wir haben uns entschieden, diese Terminologie nicht zu verwenden, weil wir ein einfacheres und nutzerzentrierteres Modell verwenden wollten. Obwohl wir eine nutzerzentrierte Sprache verwenden, bleibt die Vision dieselbe wie die von Vitalik vorgeschlagene. + +## Wie verhält es sich mit Sharding? {#what-about-sharding} + +Beim Sharding wird die Ethereum-Blockchain so aufgeteilt, dass Untergruppen von Validatoren nur für einen Bruchteil der Gesamtdaten verantwortlich sind. Ursprünglich sollte Ethereum auf diese Weise skaliert werden. Allerdings haben sich die Rollups auf Layer 2 viel schneller entwickelt als erwartet und haben bereits eine Menge an Skalierung gebracht, und sie werden noch viel mehr leisten, wenn Proto-Danksharding implementiert ist. Das bedeutet, dass "Shard Chains" nicht mehr benötigt werden und von der Roadmap gestrichen wurden. + +## Suchen Sie nach spezifischen technischen Upgrades? {#looking-for-specific-technical-upgrades} + +- [Danksharding](/roadmap/danksharding) - Danksharding macht Layer-2-Rollups für Benutzer wesentlich billiger, indem es Ethereum-Blöcken "Blobs" von Daten hinzufügt. +- [Staking withdrawals](/staking/withdrawals) - Das Shanghai/Capella-Upgrade ermöglichte Auszahlungen für die Staking-Funktion auf Ethereum, so dass die Leute ihre investierten ETH freischalten konnten. +- [Single slot finality](/roadmap/single-slot-finality) - Anstatt fünfzehn Minuten zu warten, könnten Blöcke im selben Slot vorgeschlagen und abgeschlossen werden. Dies ist praktischer für Anwendungen und viel schwieriger zu attackieren. +- [Proposer-builder separation](/roadmap/pbs) - Die Aufteilung der Aufgaben der Blockbildung und des Blockvorschlags auf verschiedene Validatoren schafft einen faireren, zensurresistenteren und effizienteren Weg für Ethereum, einen Konsensus zu erzielen. +- [Secret leader election](/roadmap/secret-leader-election) - Durch geschickte Kryptographie kann sichergestellt werden, dass die Identität des aktuellen Blockantragstellers nicht bekannt gegeben wird, wodurch er vor bestimmten Arten von Angriffen geschützt ist. +- [Account abstraction](/roadmap/account-abstraction)- Die Kontoabstraktion ist eine Klasse von Upgrades, die Smart-Contract-Wallets direkt auf Ethereum unterstützen, anstatt komplexe Middleware zu verwenden. +- [Verkle trees](/roadmap/verkle-trees) - Verkle-Bäume sind eine Datenstruktur, die verwendet werden kann, um zustandslose Clients auf Ethereum zu ermöglichen. Diese "zustandslosen" Clients benötigen nur wenig Speicherplatz, sind aber dennoch in der Lage, neue Blöcke zu verifizieren. +- [Statelessness](/roadmap/statelessness) - zustandslose Clients können neue Blöcke verifizieren, ohne große Datenmengen speichern zu müssen. Dies bietet alle Vorteile des Betriebs einer Node mit nur einem kleinen Bruchteil der heutigen Kosten. diff --git a/public/content/translations/de/roadmap/merge/index.md b/public/content/translations/de/roadmap/merge/index.md new file mode 100644 index 00000000000..334d178eae9 --- /dev/null +++ b/public/content/translations/de/roadmap/merge/index.md @@ -0,0 +1,229 @@ +--- +title: Die Zusammenführung +description: Erfahren Sie mehr über die Zusammenführung, als Mainnet Ethereum Proof-of-Stake einführte. +lang: de +template: upgrade +image: /upgrades/merge.png +alt: +summaryPoint1: Ethereum Mainnet verwendet Proof-of-Stake, aber das war nicht immer der Fall. +summaryPoint2: Der Wechsel vom ursprünglichen Proof-of-Work Mechanismus zu Proof-of-Stake wurde Zusammenführung genannt. +summaryPoint3: Die Zusammenführung bezieht sich auf das ursprüngliche Ethereum Mainnet, welches mit einer separaten Proof-of-Stake-Blockchain namens Beacon Chain vereinigt wurde, und somit nun beide als eine Blockchain existieren. +summaryPoint4: Die Zusammenführung reduzierte Ethereums Energieverbrauch um ca. 99,95 %. +--- + + + Die Zusammenführung wurde am 15. September 2022 durchgeführt. Dies vervollständigte Ethereums Übergang zu Proof-of-Stake, was Proof-of-Work offiziell abschaffte und den Energieverbrauch um ~99,95 % verringert hat. + + +## Was war die Zusammenführung? {#what-is-the-merge} + +Die Zusammenführung war das Verbinden der ursprünglichen Ausführungsschicht von Ethereum (das Mainnet das seit [Genesis](/history/#frontier) existierte) mit der neuen Proof-of-Stake Konsensschicht, der Beacon Chain. Damit entfällt das energieintensive Mining. Stattdessen wird das Netzwerk durch den Einsatz von Staked Ether gesichert. Ein wirklich spannender Schritt zur Verwirklichung der Ethereum-Vision: mehr Skalierbarkeit, Sicherheit und Nachhaltigkeit. + + + +Ursprünglich wurde die [Beacon Chain](/roadmap/beacon-chain/) getrennt vom [Mainnet](/glossary/#mainnet) betrieben. Das Ethereum-Mainnet, mit allen Konten, Kontoständen, Smart Contracts, und des Blockchain-Zustandes, wurde weiterhin durch [Proof-of-Work](/developers/docs/consensus-mechanisms/pow/) gesichert, auch wenn die Beacon Chain parallel dazu mit [Proof-of-Stake](/developers/docs/consensus-mechanisms/pos/) betrieben wurde. Die Zusammenführung fand statt, als diese beiden Systeme schließlich vereint wurden und Proof-of-Work permanent durch Proof-of-Stake ersetzt wurde. + +Stellen Sie sich Ethereum als ein Raumschiff vor, das gestartet wurde, bevor es für interstellare Reisen bereit war. Mit der Beacon Chain hat die Community einen neuen Motor und einen gehärteten Rumpf gebaut. Nach umfangreichen Tests war es an der Zeit, mitten im Flug den neuen Antrieb gegen den Alten auszutauschen. Dadurch wurde der neue effizientere Motor in das bestehende Raumschiff eingebaut, sodass noch einige Lichtjahre im Universum zurückgelegt werden können. + +## Die Zusammenführung mit dem Mainnet {#merging-with-mainnet} + +Proof-of-Work sicherte Ethereum Mainnet von Genesis bis zur Zusammenführung. Dies ermöglichte es der Ethereum Blockchain, an die wir alle gewöhnt sind, im Juli 2015 mit all ihren bekannten Merkmalen – Transaktionen, intelligente Verträge, Konten usw. – an den Start zu gehen. + +Während der gesamten Geschichte von Ethereum bereiteten sich Entwickler auf einen eventuellen Übergang von Proof-of-Work zu Proof-of-Stake vor. Am 1. Dezember 2020 wurde die Beacon Chain erstellt, die als separate Blockchain parallel zum Mainnet betrieben wurde. + +Die Beacon Chain hat ursprünglich keine Transaktionen von Mainnet verarbeitet. Stattdessen gelangte sie zu einem Konsens über ihren eigenen Zustand, indem sie sich auf aktive Validatoren und deren Kontostände einigte. Nach ausführlichen Tests war es für die Beacon Chain an der Zeit, Konsens über reale Daten zu erlangen. Nach der Zusammenführung wurde die Beacon Chain zur Konsens-Maschine für alle Netzwerkdaten, einschließlich der Transaktionen auf Ausführungsebene und der Kontostände. + +Die Zusammenführung stellte den offiziellen Wechsel zur Verwendung der Beacon Chain als Motor der Blockproduktion dar. Mining dient nicht länger als Mittel der Herstellung gültiger Blocks. Die Proof-of-Stake Validatoren haben stattdessen diese Rolle übernommen und sind jetzt für die Gültigkeit aller Transaktionen und das Vorschlagen von Blöcken verantwortlich. + +Keine Historie ging bei der Zusammenführung verloren. Als Mainnet mit der Beacon Chain zusammengeführt wurde, wurde auch die gesamte Transaktionshistorie von Ethereum zusammengeführt. + + +Der Übergang zu Proof-of-Stake änderte die Art und Weise wie Ether benutzt wird. Erfahren Sie mehr über Etherausgabe vor und nach der Zusammenführung. + + +### Benutzer und Halter {#users-holders} + +**Die Zusammenführung hat nichts für Halter/Benutzer geändert.** + +_Dies muss wiederholt werden_: Als Nutzer oder Halter von ETH oder irgendeines anderen digitalen Assets auf Ethereum, sowie nicht-Nodebetreibender Staker, **müssen Sie nichts mit Ihrem Guthaben oder Ihrer Wallet tun, um sich auf die Zusammenführung vorzubereiten.** ETH ist nur ETH. Es gibt kein „altes ETH“/„neues ETH“ oder „ETH1“/„ETH2“ und Wallets funktionieren nach der Zusammenführung genauso wie zuvor. Menschen, die anderes behaupten, sind sehr wahrscheinlich Betrüger. + +Trotz des Austauschs von Proof-of-Work blieb die gesamte Geschichte von Ethereum seit der Genesis intakt und durch den Übergang zu Proof-of-Stake unverändert. Jedes Guthaben in Ihrer Wallet vor dem Merge ist nach dem Merge weiterhin zugänglich. **Es ist keine Aktion zum Upgrade Ihrerseits erforderlich** + +[Mehr zu Ethereums Sicherheit](/security/#eth2-token-scam) + +### Node Operatoren und dApp Entwickler {#node-operators-dapp-developers} + + + +Zu den Schlüsselaktionen gehören: + +1. Betreiben Sie _sowohl_ einen Konsens-Client und einen Ausführungs-Client; Endpunkte von Drittanbietern, um Ausführungsdaten zu erhalten, funktionieren seit dem Merge nicht mehr. +2. Authentifizieren Sie sowohl die Ausführungs- als auch die Konsens-Clients mit einem gemeinsam genutzten JWT-Geheimnis, damit sie sicher kommunizieren können. +3. Legen Sie eine "Gebühr Empfänger"-Adresse fest, um Ihre verdienten Transaktionsgebühr-Tipps/MEV zu erhalten. + +Wenn Sie die ersten beiden obigen Elemente nicht abschließen, wird Ihre Node als "offline" betrachtet, bis beide Ebenen synchronisiert und authentifiziert sind. + +Wenn kein "Gebührenempfänger" gesetzt wird, kann sich dein Validator wie üblich verhalten, aber Sie werden auf unverbrannte Gebührentipps verzichten und alle MEV, die Sie sonst in Blöcken verdient hätten, die Ihr Validator vorschlägt. + + + + +Bis zum Merge reichte ein Client (wie Geth, Erigon, Besu oder Nethermind) aus, um ihn zu empfangen, validieren und Blöcke verbreiten, die vom Netzwerk vorgeschlagen werden. _Nach dem Merge_, ist die Gültigkeit von Transaktionen, die innerhalb einer ausführbaren Nutzlast enthalten sind, jetzt auch von der Gültigkeit des "Konsensblocks" abhängig, in dem er enthalten ist. + +Infolgedessen erfordert eine vollständige Ethereum-Node nun sowohl einen Ausführungs-Client als auch einen Konsens-Client. Diese beiden Clients arbeiten zusammen mit einer neuen Engine API. Die Engine API erfordert Authentifizierung mittels eines JWT Geheimnisses, das beiden Clients zur Verfügung gestellt wird, die eine sichere Kommunikation ermöglichen. + +Schlüssel-Aktionen beinhalten: + +- Installieren Sie einen Konsens-Client zusätzlich zu einem Ausführungs-Client +- Authentifizieren Sie die Ausführung und Konsens-Clients mit einem gemeinsam genutzten JWT-Geheimnis, so dass sie sicher miteinander kommunizieren können. + +Wenn Sie die ersten beiden obigen Elemente nicht abschließen, wird Ihre Node als "offline" betrachtet, bis beide Ebenen synchronisiert und authentifiziert sind. + + + + + +The Merge trat ein, indem es Änderungen an der Konsens-Methode mit sich brachte, darunter Änderungen an:< + +
    +
  • Block-Struktur
  • +
  • berücksichtigte Maßeinheiten/Messeziele in nicht monetären Einheiten (slot/block timing)
  • +
  • Opcode-Änderungen
  • +
  • Quellen des On-Chain-Zufalls
  • +
  • Begriffe wie safe head and finalized blocks
  • +
+ +Weitere Informationen findest Du in diesem Blogartikel von Tim Heiko zum Thema The Merge Update: Welche Auswirkungen hat das Ereignis auf die Ethereum-Execution Layer?. + +
+ +## Die Zusammenführung und der Energieverbrauch {#merge-and-energy} + +Die Zusammenführung markierte das Ende von Proof-of-Work für Ethereum und den Start der Ära eines nachhaltigeren und umweltfreundlicheren Ethereums. Ethereums Energieverbrauch reduzierte sich um geschätzte 99,95%, was Ethereum zu einer grünen Blockchain macht. Erfahren Sie mehr über [Ethereums Energieverbrauch](/energy-consumption/). + +## Die Zusammenführung und Skalierbarkeit {#merge-and-scaling} + +Die Zusammenführung ebnet auch den Weg für weitere Skalierungsupgrades, welche unter Proof-of-Work nicht möglich waren. Dies bringt Ethereum einen Schritt näher die volle Skalierung, Sicherheit und Nachhaltigkeit zu erreichen, die in der [Ethereum Vision](/roadmap/vision/) beschrieben ist. + +## Misverständnisse über die Zusammenführung {#misconceptions} + + + +Es gibt zwei Arten von Ethereum Nodes: Nodes die Blöcke vorschlagen können und Nodes die das nicht können. + +Nur ein kleiner Anteil der Nodes auf Ethereum können Blöcke vorschlagen. Diese Kategorie beinhaltet Mining Nodes bei Proof-of-Work (PoW) and Validator Nodes bei Proof-of-Stake (PoS). Sie erfordert wirtschaftliche Ressourcen (wie z. B. GPU Hash-Power bei Proof-of-Work oder eingesetztes ETH bei Proof-of-Stake) im Tausch für die Möglichkeit gelegentlich den nächsten Block vorzuschlagen und dafür Belohnungen zu erhalten. + +Die anderen Nodes des Netzwerkes (dies betrifft die Mehrheit der Nutzer) sind nicht dazu verpflichtet wirtschaftliche Ressourcen, die über einen Hobbycomputer mit 1-2 TB Speicherplatz und eine Internetverbindung hinausgehen, einzusetzen. Diese Nodes schlagen keine Blöcke vor, aber sie spielen immer noch eine entscheidende Rolle bei der Sicherung des Netzwerks, indem sie alle Blockvorschläger zur Rechenschaft ziehen, indem sie auf neue Blöcke hören und ihre Gültigkeit bei der Ankunft gemäß den Regeln des Netzwerkkonsenses überprüfen. Wenn der Block gültig ist, wird die Node ihn weiter über das Netzwerk verbreiten. Wenn der Block aus welchen Gründen auch immer ungültig ist, wird die Nodesoftware ihn als ungültig betrachten und seine Weitergabe stoppen. + +Jeder kann einen Knoten betreiben, der allerdings nicht erlaubt, andere Blöcke zu betreiben, egal welche Konsensmethode verwendet wird (PoW: Proof of Work oder PoS: Proof of Stake); es wird allen Nutzern dringend empfohlen, gegebenenfalls Knoten zu betreiben. Der Betrieb einer Node ist für Ethereum immens wertvoll und bietet jedem Einzelnen zusätzlichen Vorteil, der einen betreibt, wie etwa der Verbesserung der Sicherheit, der Privatsphäre und der Widerstandsfähigkeit der Zensur. + +Die Möglichkeit für jeden, einen eigenen Node zu betreiben, ist absolut essentiell zur Aufrechterhaltung der Dezentralisierung des Ethereum-Netzwerks. + +Mehr zum Betrieb eines eigenen Nodes + + + + + +Die Gasgebühren sind ein Produkt der Netznachfrage im Verhältnis zur Netzkapazität. Der Merge veraltete den Einsatz von Proof-of-Work für den Übergang zu Proof-of-Stake als Konsens, aber keine signifikante Änderung von Parametern, die direkt Einfluss auf Netzwerk-Kapazität oder Durchsatz haben. + +Mit einer Rollup-zentrierten Roadmap, die Bemühungen konzentrieren sich auf die Ausweitung der Nutzeraktivitäten auf Ebene 2, und gleichzeitig das Ebene 1 Mainnet als sichere dezentrale Abwicklungsschicht zu etablieren, die für die Speicherung von Rollup-Daten optimiert ist und dazu beiträgt, Rollup-Transaktionen exponentiell billiger zu machen. Der Übergang zu Proof-of-Stake ist ein entscheidender Vorläufer für die Umsetzung. Mehr zum Thema Gas-Kosten. + + + + +Die "Geschwindigkeit" einer Transaktion kann auf einige Arten gemessen werden, einschließlich der Zeit, die in einem Block und Zeit zur Fertigstellung enthalten sein soll. Beides ändert sich ein wenig, aber nicht in einer Weise, die die Nutzer bemerken werden. + +Historisch war es nach Proof-of-Work das Ziel, alle ~13.3 Sekunden einen neuen Block zu haben. Unter Proof-of-Stake stellen wir fest, dass Slots genau alle 12 Sekunden auftreten, wobei jeder von ihnen eine Möglichkeit für einen Validator ist, einen Block zu veröffentlichen. Die meisten Slots haben Blöcke, aber nicht unbedingt alle (d.h. ein Validator ist offline). Bei Proof-of-Stake werden Blöcke ~10% häufiger produziert als bei Proof-of-Work. Das war eine ziemlich unbedeutende Änderung und Benutzer werden es wahrscheinlich nicht bemerken. + +Proof-of-Stake führte das bisher nicht existierende Konzept der Transaktionsfinalität ein. Bei Proof-of-Work wird die Rückgängigmachung eines Blocks exponentiell schwieriger, wenn neue Blöcke auf vorherigen aufgebaut werden, aber es erreicht nie ganz Null. Unter Proof-of-Stake werden Blöcke in Epochen (6,4 Minuten Zeitspanne mit 32 Chancen für Blöcke) gebündelt, über die Validatoren abstimmen. Wenn eine Epoche endet, stimmen die Validatoren darüber ab, ob sie die Epoche als "gerechtfertigt" betrachten sollen. Wenn die Validatoren einverstanden sind, die Epoche zu rechtfertigen, wird sie in der nächsten Epoche fertiggestellt. Abgeschlossene Transaktionen rückgängig zu machen ist wirtschaftlich unrentabel, da sie mehr als ein Drittel der insgesamt eingesetzten ETH einsetzen und verbrennen müssten. + + + + + +Nach dem Zusammenführen hatten die Staker zunächst nur Zugriff auf Gebührentipps und MEV, die durch Blockvorschläge verdient wurden. Diese Belohnungen werden auf einem von Validatoren kontrollierten Konto gutgeschrieben, das nicht zum Einsatz kommt (bekannt als die Gebührenempfänger), und sind sofort verfügbar. Diese Belohnungen sind von den Protokollbelohnungen für die Erfüllung der Pflichten von Validatoren getrennt. + +Seit des Netzwerk-Upgrades namens Shanghai/Capella können die Staker nun einen Abhebungsadresse um automatische Auszahlungen von überschüssigem für Staking eingesetzten ETH zu erhalten (ETH über 32 aus Protokollbelohnungen). Mit diesem Upgrade wurde auch die Möglichkeit geschaffen, dass ein Validator sein gesamtes Guthaben beim Verlassen des Netzwerkes entsperren und zurückfordern kann. + +Mehr zu Staking-Auszahlungen + + + + +Seit das Shanghai/Capella-Upgrade Abhebungen ermöglicht, haben die Validatoren einen Anreiz, ihre Einsätze über 32 ETH abzuheben, da diese Gelder nicht zur Rendite beitragen und ansonsten gesperrt sind. Abhängig von der APR (bestimmt durch Gesamt-ETH abgesetzt), können sie dazu angehalten werden, ihre Validator(en) zu verlassen, um ihr gesamtes Guthaben zurückzugewinnen oder möglicherweise noch mehr mit ihren Prämien zu investieren, um mehr Ertrag zu erzielen. + +Eine wichtige Einschränkung ist, dass das Protokoll die Anzahl der Beendigungen von Prüfvorgängen begrenzt und nur eine bestimmte Anzahl von Prüfvorgängen pro Epoche (alle 6,4 Minuten) zulässig ist. Dieses Limit schwankt in Abhängigkeit von der Anzahl der aktiven Validatoren, liegt aber bei etwa 0,33% der insgesamt eingesetzten ETH, die an einem Tag aus dem Netzwerk entfernt werden können. + +Dadurch wird ein Massenexodus der für Staking eingesetzten Mittel verhindert. Darüber hinaus wird verhindert, dass ein potenzieller Angreifer, der Zugang zu einem großen Teil der gesamten ETH-Einsätze hat, ein "Slashing"-Vergehen begeht und alle verletzenden Validator-Guthaben in derselben Epoche abzieht, bevor das Protokoll die "Slashing"-Strafe durchsetzen kann. + +Der effektive Jahreszins ist auch bewusst dynamisch, damit ein Markt von Stakern abwägen kann, wie viel sie bereit sind, für die Sicherung des Netzwerks zu zahlen. Wenn die Rate zu niedrig ist, werden die Validatoren mit einer durch das Protokoll begrenzten Rate aussteigen. Nach und nach wird dadurch die APR für alle erhöht, die bleiben und wieder neue oder wiederkehrende Staker anziehen. + + +## Was ist mit "Eth2" passiert? {#eth2} + +Der Begriff "Eth2" ist veraltet. Nach der Zusammenführung von "Eth1" und "Eth2" in eine einzelne Chain gibt es keinen Grund mehr zwischen zwei Ethereum Netzwerken zu unterscheiden. Es gibt nur Ethereum. + +Um Unklarheiten zu minimieren, hat die Community diese Begriffe aktualisiert: + +- „Eth1“ ist nun der „Ausführungslayer“, der Transaktionen verarbeitet und ausführt. +- „Eth2“ ist nun der „Konsenslayer“, der den Proof-of-Stake-Konsens regelt. + +Diese aktualisierte Terminologie ändert lediglich die Benennungskonventionen. Die Ziele von Ethereum oder die Roadmap ändern sich dadurch nicht. + +[Mehr erfahren über die „Eth2“-Umbenennung](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) + +## Beziehung zwischen den Upgrades {#relationship-between-upgrades} + +Die Ethereum-Upgrades sind alle in gewisser Weise miteinander verbunden. Sehen wir uns nun an, welche Verbindung zwischen der Zusammenführung und anderen Upgrades besteht. + +### Die Zusammenführung und die Beacon Chain {#merge-and-beacon-chain} + +Die Zusammenführung stellt die formale Übernahme der Beacon Chain als neue Konsensschicht auf die ursprüngliche Mainnet-Ausführungsschicht dar. Seit dem Zusammenführen sind Validatoren der Sicherung vom Ethereum Mainnet zugewiesen, und das Minen auf [Proof-of-Work](/developers/docs/consensus-mechanisms/pow/) ist nicht mehr ein gültiges Mittel zur Blockproduktion. + +Blöcke werden stattdessen durch validierende Nodes vorgeschlagen, die ETH als Gegenleistung für das Recht auf Teilnahme am Konsens eingesetzt haben. Diese Upgrades setzten die Voraussetzungen für zukünftige Skalierbarkeitsverbesserungen, einschließlich Sharding. + + + Die Beacon Chain + + +### Die Zusammenführung und das Shanghai Upgrade {#merge-and-shanghai} + +Um den erfolgreichen Übergang zum Proof-of-Stake zu vereinfachen und zu maximieren, enthielt das Merge-Upgrade nicht bestimmte erwartete Funktionen, wie die Möglichkeit, eingesetztes ETH zurückzuziehen. Diese Funktion wurde mit dem Shanghai/Capella-Upgrade separat aktiviert. + +Für Neugierige: Erfahren Sie mehr darüber, [ was nach der Zusammenführung passiert](https://youtu.be/7ggwLccuN5s?t=101), präsentiert von Vitalik an der ETHGlobal-Veranstaltung im April 2021. + +### Die Zusammenführung und Sharding {#merge-and-data-sharding} + +Ursprünglich war geplant, vor der Zusammenführung an Sharding zu arbeiten, um die Skalierbarkeit zu verbessern. Mit dem Boom der [Layer-2-Skalierungslösungen](/layer-2/), hat sich die Priorität jedoch auf die Umwandlung von Proof-of-Work zu Proof-of-Stake, durch die Zusammenführung, verschoben. + +Pläne für die gemeinsame Nutzung entwickeln sich rasch, aber angesichts des Anstiegs und des Erfolgs von Lay-2-Technologien, um Transaktionsausführung zu skalieren, haben sich gemeinsame Pläne auf die Suche nach dem optimalen Weg zur Verteilung der Belastung durch die Speicherung komprimierter Rufdaten aus Rollup-Verträgen verlagert. Dies ermöglicht ein exponentielles Wachstum der Netzwerkkapazität. Dies wäre ohne den ersten Übergang zu Proof-of-Stake nicht möglich. + + + Sharding + + +## Weiterführende Informationen {#further-reading} + + + + diff --git a/src/content/translations/de/roadmap/merge/issuance/index.md b/public/content/translations/de/roadmap/merge/issuance/index.md similarity index 100% rename from src/content/translations/de/roadmap/merge/issuance/index.md rename to public/content/translations/de/roadmap/merge/issuance/index.md diff --git a/src/content/translations/de/roadmap/pbs/index.md b/public/content/translations/de/roadmap/pbs/index.md similarity index 100% rename from src/content/translations/de/roadmap/pbs/index.md rename to public/content/translations/de/roadmap/pbs/index.md diff --git a/public/content/translations/de/roadmap/scaling/index.md b/public/content/translations/de/roadmap/scaling/index.md new file mode 100644 index 00000000000..28166e93a12 --- /dev/null +++ b/public/content/translations/de/roadmap/scaling/index.md @@ -0,0 +1,47 @@ +--- +title: Ethereum zu skalieren +description: Rollups fassen Transaktionen off-chain zusammen und senken so die Kosten für den Nutzer. Die Art und Weise, wie Rollups derzeit Daten verwenden, ist jedoch zu teuer und schränkt ein, wie günstig Transaktionen sein können. Proto-Danksharding behebt das. +lang: de +image: /roadmap/roadmap-transactions.png +alt: "Ethereum-Roadmap" +template: roadmap +--- + +Ethereum wird mit Hilfe von [Layer 2s](/layer-2/#rollups) (auch bekannt als Rollups) skaliert, die Transaktionen zusammenfassen und den Output an Ethereum senden. Obwohl Rollups bis zu achtmal günstiger sind als das Ethereum Mainnet, kann man Rollups noch weiter optimieren, um die Kosten für die Endnutzer zu senken. Rollups stützen sich auch auf einige zentralisierte Komponenten, die mit zunehmender Reife der Rollups von den Entwicklern entfernt werden können. + + +
    +
  • Die heutigen Rollups sind ~3-8x günstiger als die Ethereum Layer 1
  • +
  • ZK-Rollups werden bald die Gebühren um ~40-100x senken
  • +
  • Bevorstehende Änderungen an Ethereum werden eine weitere ~100-1000-fache Skalierung ermöglichen
  • +
  • Benutzer könnten von Transaktionskosten unter $0.001 profitieren
  • +
+
+ +## Daten günstiger machen {#making-data-cheaper} + +Rollups sammeln eine große Anzahl von Transaktionen, führen sie aus und übermitteln die Ergebnisse an Ethereum. Dabei entstehen viele Daten, die offen zugänglich sein müssen, damit jeder die Transaktionen selbst durchführen und überprüfen kann, ob der Rollup-Betreiber ehrlich war. Wenn jemand eine Unstimmigkeit feststellt, kann er eine Beschwerde einreichen. + +### Proto-Danksharding {#proto-danksharding} + +Rollup-Daten werden dauerhaft auf Ethereum gespeichert, was teuer ist. Über 90 % der Transaktionskosten, die die Nutzer für Rollups zahlen, sind auf diese Datenspeicherung zurückzuführen. Um die Transaktionskosten zu senken, können wir die Daten in einen neuen temporären "Blob"-Speicher verschieben. Blobs sind billiger, weil sie nicht dauerhaft sind; sie werden aus Ethereum gelöscht, sobald sie nicht mehr benötigt werden. Die langfristige Speicherung von Rollup-Daten obliegt denjenigen, die sie benötigen, wie Rollup-Betreibern, Börsen, Indexierungsdiensten usw. Das Hinzufügen von Blob-Transaktionen zu Ethereum ist Teil eines Upgrades, das als "Proto-Danksharding" bekannt ist. Es soll relativ bald - vielleicht Ende 2023 - ausgeliefert werden. + +Nachdem Blob-Transaktionen durch Proto-Danksharding Teil des Ethereum-Protokolls geworden sind, wird es möglich sein, viele Blobs zu Ethereum-Blöcken hinzuzufügen. Dies wird eine weitere erhebliche (>100x) Steigerung des Ethereum-Durchsatzes und eine Senkung der Transaktionskosten bedeuten. + +### Danksharding {#danksharding} + +Die zweite Stufe der Erweiterung von Blobdaten ist kompliziert, weil sie neue Methoden zur Überprüfung der Verfügbarkeit von Rollup-Daten im Netz erfordert und davon abhängt, dass die Validatoren ihre Zuständigkeiten für die Blockbildung und den Blockvorschlag voneinander trennen. Außerdem muss kryptografisch nachgewiesen werden, dass die Validatoren kleine Teilmengen der Blobdaten überprüft haben. + +Dieser zweite Schritt ist bekannt unter dem Namen [“Danksharding”](/roadmap/danksharding/). Es wird wahrscheinlich noch einige Jahre dauern, bis es vollständig umgesetzt ist. Danksharding stützt sich auf andere Entwicklungen wie die [Trennung von Blockbildung und Blockvorschlag](/roadmap/pbs) und neue Netzwerkdesigns, die es dem Netzwerk ermöglichen, die Verfügbarkeit von Daten effizient zu bestätigen, indem jeweils einige Kilobyte zufällig abgetastet werden, was als [data availability sampling (DAS)](/developers/docs/data-availability) bekannt ist. + +Mehr zu Danksharding + +## Rollups dezentralisieren {#decentralizing-rollups} + +[Rollups](/layer-2) sind bereits dabei, Ethereum zu skalieren. Ein [reichhaltiges Ökosystem von Rollup-Projekten](https://l2beat.com/scaling/tvl) ermöglicht es den Nutzern, schnell und kostengünstig Transaktionen durchzuführen und dabei eine Reihe von Sicherheitsgarantien zu bieten. Rollups wurden jedoch mit zentralisierten Sequenzern (Computer, die die gesamte Transaktionsverarbeitung und -aggregation durchführen, bevor sie an Ethereum übermittelt werden) gebootet. Dies ist anfällig für Zensur, da die Betreiber der Sequenzer sanktioniert, bestochen oder anderweitig kompromittiert werden können. Gleichzeitig unterscheiden sich [Rollups](https://l2beat.com) in der Art und Weise, wie sie die eingehenden Daten validieren. Am besten ist es, wenn die "Prüfer" Betrugs- oder Gültigkeitsnachweise vorlegen, aber noch sind nicht alle Rollups so weit. Selbst die Rollups, die Gültigkeits-/Betrugsnachweise verwenden, nutzen einen kleinen Pool von bekannten Prüfern. Daher besteht der nächste kritische Schritt bei der Skalierung von Ethereum darin, die Verantwortung für den Betrieb von Sequenzern und Prüfern auf mehr Personen zu verteilen. + +Mehr zu Rollups + +## Aktueller Fortschritt {#current-progress} + +Proto-Danksharding wird wahrscheinlich einer der ersten Punkte auf der Roadmap sein, der umgesetzt wird. Die für die Einrichtung erforderlichen dezentralen Berechnungsschritte sind bereits im Gange, und mehrere Kunden haben Prototypen für die Verarbeitung von Blob-Daten implementiert. Das vollständige Danksharding wird wahrscheinlich noch einige Jahre auf sich warten lassen, da es davon abhängt, dass zunächst einige andere Punkte der Roadmap abgeschlossen werden. Die Dezentralisierung der Rollup-Infrastruktur wird wahrscheinlich ein schrittweiser Prozess sein - es gibt viele verschiedene Rollups, die leicht unterschiedliche Systeme aufbauen und in unterschiedlichem Tempo vollständig dezentralisieren werden. diff --git a/src/content/translations/de/roadmap/secret-leader-election/index.md b/public/content/translations/de/roadmap/secret-leader-election/index.md similarity index 100% rename from src/content/translations/de/roadmap/secret-leader-election/index.md rename to public/content/translations/de/roadmap/secret-leader-election/index.md diff --git a/public/content/translations/de/roadmap/security/index.md b/public/content/translations/de/roadmap/security/index.md new file mode 100644 index 00000000000..d50fd1e79fa --- /dev/null +++ b/public/content/translations/de/roadmap/security/index.md @@ -0,0 +1,48 @@ +--- +title: Ein sichereres Ethereum Netzwerk +description: Ethereum ist die sicherste und dezentralisierte Smart-Contract-Plattform, die es gibt. Es gibt jedoch immer noch Verbesserungen, die vorgenommen werden können, um Ethereum bis weit in die Zukunft hinein gegen jegliche Art von Angriffen zu wappnen. +lang: de +image: /roadmap/roadmap-security.png +alt: "Ethereum-Roadmap" +template: roadmap +--- + +Ethereum ist bereits eine äußerst sichere, dezentralisierte Smart-Contract-Plattform. Es gibt jedoch immer noch Verbesserungen, die vorgenommen werden können, um Ethereum bis weit in die Zukunft hinein gegen jegliche Art von Angriffen zu wappnen. Dazu gehören subtile Änderungen an der Art und Weise, wie Ethereum-Prüfer (Node) mit konkurrierenden Blöcken umgehen, sowie die Erhöhung der Geschwindigkeit, mit der das Netzwerk Blöcke als ["finalisiert"](/developers/docs/consensus-mechanisms/pos/#finality) betrachtet (was bedeutet, dass sie nicht ohne extreme wirtschaftliche Verluste für einen Angreifer verändert werden können). + +Es gibt zudem Verbesserungen, die das Zensieren von Transaktionen erheblich erschweren, indem sie den Block-Konstrukteur blind für den tatsächlichen Inhalt ihrer Blöcke machen, und neue Möglichkeiten, zu erkennen, wann ein Block-Prüfer zensiert. Zusammen werden diese Verbesserungen das Proof-of-Stake-Protokoll verbessern, so dass die Nutzer - von Privatpersonen bis hin zu Unternehmen - sofortiges Vertrauen in ihre Anwendungen, Daten und Vermögenswerte auf Ethereum haben. + +## Staking-Auszahlungen {#staking-withdrawals} + +Die Umstellung von Proof-of-Work auf Proof-of-Stake begann damit, dass die Ethereum-Pioniere ihre ETH in einem Hinterlegungsvertrag "verwahrten". Dieses ETH wird zum Schutz des Netzes verwendet. Dieses ETH kann jedoch bisher nicht freigeschaltet und an die Nutzer zurückgegeben werden. Die Erlaubnis, dieses ETH auszuzahlen, ist ein wichtiger Teil des Proof-of-Stake-Upgrades. Abgesehen davon, dass die Auszahlungen eine kritische Komponente eines voll funktionsfähigen Proof-of-Stake-Protokolls sind, ist das Zulassen von Auszahlungen auch vorteilhaft für die Sicherheit von Ethereum, da dies den Gutachtern ermöglicht, ihre ETH-Belohnungen für andere Zwecke als der Validierung von Transaktionen zu verwenden. Das bedeutet, dass Nutzer, die Liquidität wünschen, nicht auf Liquid Staking Derivate (LSD) angewiesen sind, die eine zentralisierende Kraft auf Ethereum ausüben können. Diese Aufrüstung soll bis zum 12. April 2023 abgeschlossen sein. + +Lesen Sie mehr über Auszahlungen + +## Angriff abwehren {#defending-against-attacks} + +Auch nach Abhebungen gibt es Verbesserungen, die am [Proof-of-Stake-Protokoll](/developers/docs/consensus-mechanisms/pos/) von Ethereum vorgenommen werden können. Eine davon ist [view-merge](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739) - ein sicherer "fork-choice"-Algorithmus, der bestimmte ausgeklügelte Arten von Angriffen erschwert. + +Eine Verkürzung der Zeit, die Ethereum für die Fertigstellung von Blöcken benötigt, würde eine bessere Nutzererfahrung bieten und ausgeklügelte "Reorg"-Angriffe verhindern, bei denen Angreifer versuchen, sehr aktuelle Blöcke umzuwandeln, um Profit zu machen oder bestimmte Transaktionen zu zensieren. [**Single slot finality (SSF)**](/roadmap/single-slot-finality/) ist eine Möglichkeit, die Abschlussverzögerung zu minimieren. Zurzeit besteht die Möglichkeit, dass ein Angreifer andere Validierer dazu bewegt, Blöcke in einem Zeitraum von 15 Minuten neu zu konfigurieren. Mit SSF ist dieser Zeitrahmen gleich 0. Nutzer, von Einzelpersonen bis hin zu Anwendungen und Börsen, profitieren von der schnellen Gewissheit, dass ihre Transaktionen nicht rückgängig gemacht werden, und das Netzwerk profitiert davon, dass eine ganze Klasse von Angriffen unterbunden wird. + +Lesen Sie mehr über die Endgültigkeit voneinzelnen Slots + +## Verteidigung gegen Zensur {#defending-against-censorship} + +Die Dezentralisierung verhindert, dass einzelne Personen oder kleine Gruppen von Prüfern zu viel Einfluss gewinnen. Neue Staking-Technologien können dazu beitragen, dass die Ethereum-Validatoren so dezentralisiert wie möglich bleiben und gleichzeitig vor Hardware-, Software- und Netzwerkausfällen geschützt sind. Dazu gehört auch Software, die die Verantwortung für die Validierung auf mehrere Nodes verteilt. Dies wird als **verteilte Validierungstechnologie (distributed validator technology / DVT)** bezeichnet. Für Staking-Pools besteht ein Anreiz, DVT zu verwenden, da es mehreren Computern ermöglicht, gemeinsam an der Validierung teilzunehmen, was zu zusätzlicher Redundanz und Fehlertoleranz führt. Außerdem werden die Validierungsschlüssel auf mehrere Systeme aufgeteilt, anstatt dass ein einzelner Operator mehrere Validatoren betreibt. Dies erschwert es unredlichen Betreibern, Angriffe auf Ethereum zu koordinieren. Insgesamt besteht die Idee darin, Sicherheitsvorteile zu erzielen, indem die Validatoren als _Gemeinschaften_ und nicht als Einzelpersonen betrieben werden. + +Lesen Sie mehr über verteilte Validierungstechnologie + +Die Implementierung der **Proposer-Builder-Separation (PBS)** wird die in Ethereum eingebauten Schutzmechanismen gegen Zensur drastisch verbessern. PBS ermöglicht es einem Validator, einen Block zu erstellen, und einem anderen, ihn über das Ethereum-Netzwerk zu veröffentlichen. Dadurch wird sichergestellt, dass die Gewinne aus professionellen, gewinnmaximierenden Blockbildungsalgorithmen gerechter über das Netzwerk verteilt werden und **verhindern, dass sich der Gewinn im Laufe der Zeit bei den leistungsstärksten institutionellen Stakern konzentriert**. Der Blockanbieter kann den profitabelsten Block auswählen, der ihm von einem Markt von Blockbauern angeboten wird. Um zu zensieren, müsste ein Blockvorschläger oft einen weniger profitablen Block wählen, was **wirtschaftlich betrachtet unlogisch und auch für den Rest der Validierer** im Netz offensichtlich wäre. + +Es gibt potenzielle Erweiterungen zu PBS, wie verschlüsselte Transaktionen und Inklusionslisten, die die Zensurresistenz von Ethereum weiter verbessern könnten. Diese machen den Blockersteller und den Vorschlagenden blind für die tatsächlichen Transaktionen, die in ihren Blöcken enthalten sind. + +Lesen Sie über die Trennung von Proposer und Builder + +## Schutz für Validatoren {#protecting-validators} + +Es ist möglich, dass ein raffinierter Angreifer bevorstehende Prüfer identifiziert und sie mit Spam attackiert, um sie daran zu hindern, Blöcke vorzuschlagen; dies ist als **Denial of Service (DoS)** Angriff bekannt. Die Implementierung von [**secret-leader-election (SLE)**](/roadmap/secret-leader-election) schützt vor dieser Art von Angriffen, indem verhindert wird, dass die Blockvorschläger im Voraus bekannt gegeben werden. Dabei wird eine Reihe von kryptografischen Zusagen, die Kandidaten für Blockvorschläge darstellen, ständig gemischt und deren Reihenfolge verwendet, um zu bestimmen, welcher Prüfer ausgewählt wird, und zwar so, dass nur die Prüfer selbst ihre Reihenfolge im Voraus erfahren. + +Lesen Sie über die geheime Wahl des Leiters + +## Aktueller Fortschritt {#current-progress} + +Die Sicherheitsverbesserungen in der Roadmap befinden sich in einem fortgeschrittenen Stadium der Entwicklung, werden aber voraussichtlich erst im Laufe der Zeit umgesetzt. Die nächsten Schritte für view-merge, PBS, SSF und SLE sind die Fertigstellung von Spezifikationen und der Beginn der Entwicklung von Prototypen. diff --git a/src/content/translations/de/roadmap/single-slot-finality/index.md b/public/content/translations/de/roadmap/single-slot-finality/index.md similarity index 100% rename from src/content/translations/de/roadmap/single-slot-finality/index.md rename to public/content/translations/de/roadmap/single-slot-finality/index.md diff --git a/src/content/translations/de/roadmap/statelessness/index.md b/public/content/translations/de/roadmap/statelessness/index.md similarity index 100% rename from src/content/translations/de/roadmap/statelessness/index.md rename to public/content/translations/de/roadmap/statelessness/index.md diff --git a/public/content/translations/de/roadmap/user-experience/index.md b/public/content/translations/de/roadmap/user-experience/index.md new file mode 100644 index 00000000000..eed49c7aebb --- /dev/null +++ b/public/content/translations/de/roadmap/user-experience/index.md @@ -0,0 +1,36 @@ +--- +title: Verbesserung der Benutzererfahrung +description: Für die meisten Menschen ist es immer noch zu kompliziert Ethereum zu benutzen. Um die Massenakzeptanz von Ethereum zu fördern, müssen die Eintrittsbarrieren drastisch gesenkt werden - die Nutzer müssen die Vorteile eines dezentralisierten, erlaubnisfreien und zensurresistenten Zugangs zu Ethereum nutzen können, der jedoch so reibungslos sein muss wie die Nutzung einer herkömmlichen Web2-App. +lang: de +image: /roadmap/roadmap-ux.png +alt: "Ethereum-Roadmap" +template: roadmap +--- + +Die Nutzung von Ethereum muss vereinfacht werden, von der Verwaltung von Schlüsseln und Wallets bis zur Initiierung von Transaktionen. Um die Massenakzeptanz zu erleichtern, muss Ethereum die Benutzerfreundlichkeit drastisch erhöhen, so dass die Nutzer einen erlaubnisfreien und zensurresistenten Zugang zu Ethereum mit der reibungslosen Erfahrung wie bei der Nutzung von Web2-Apps erleben können. + +## Jenseits von Seed-Phrasen {#no-more-seed-phrases} + +Ethereum-Konten sind durch ein Schlüsselpaar geschützt, das zur Identifizierung von Konten (öffentlicher Schlüssel) und zum Signieren von Nachrichten (privater Schlüssel) verwendet wird. Ein privater Schlüssel ist wie ein Master-Passwort; er ermöglicht den vollständigen Zugang zu einem Ethereum-Konto. Für Menschen, die eher mit Banken und Web2-Apps vertraut sind, welche die Konten im Namen des Nutzers verwalten, ist dies eine andere Art der Bedienung. Damit Ethereum die Massenakzeptanz erreicht, ohne sich auf zentralisierte Dritte zu verlassen, muss es einen unkomplizierten, reibungslosen Weg geben, wie ein Nutzer sein Vermögen in Verwahrung nehmen und die Kontrolle über seine Daten behalten kann, ohne sich mit Public-Private-Key-Kryptografie und Schlüsselverwaltung auskennen zu müssen. + +Die Lösung für dieses Problem ist die Verwendung von Smart Contract Wallets zur Interaktion mit Ethereum. Smart Contract Wallets bieten die Möglichkeit, Konten bei Verlust oder dem Diebstahl der Schlüssel zu schützen, Betrug besser aufzudecken und abzuwehren und ermöglichen neue Funktionen für Wallets. Obwohl es heute bereits Smart Contract Wallets gibt, ist es schwierig, diese zu erstellen, da das Ethereum-Protokoll sie besser unterstützen muss. Diese zusätzliche Unterstützung wird als Kontoabstraktion bezeichnet. + +Mehr zum Thema Kontenabstraktion + +## Nodes für jedermann + +Nutzer, die Nodes betreiben, müssen nicht darauf vertrauen, dass Dritte ihnen Daten zur Verfügung stellen, und sie können schnell, privat und ohne Erlaubnis mit der Ethereum-Blockchain interagieren. Allerdings erfordert der Betrieb einer Node derzeit technische Kenntnisse und viel Speicherplatz, so dass viele Menschen stattdessen auf Intermediäre vertrauen müssen. + +Es gibt mehrere Upgrades, die den Betrieb von Nodes wesentlich einfacher und weniger ressourcenintensiv machen werden. Die Art und Weise, wie Daten gespeichert werden, wird geändert, um eine platzsparendere Struktur zu verwenden, die als **Verkle Tree** bekannt ist. Außerdem werden mit [ statelessness](/roadmap/statelessness) oder [data expiry](/roadmap/statelessness/#data-expiry), Ethereum-Nodes nicht mehr Kopie der gesamten Ethereum-Statusdaten speichern müssen, was den Speicherplatzbedarf auf der Festplatte drastisch reduziert. [Light nodes](/developers/docs/nodes-and-clients/light-clients/) bietet viele Vorteile eine Full Node, kann aber problemlos auf Mobiltelefonen oder in einfachen Browseranwendungen ausgeführt werden. + +Lesen Sie über Verkle-Trees + +Mit diesen Upgrades werden die Hürden für den Betrieb einer Node praktisch auf Null reduziert. Die Nutzer werden von einem sicheren, erlaubnisfreien Zugang zu Ethereum profitieren, ohne dass sie nennenswerten Speicherplatz oder CPU auf ihrem Computer oder Mobiltelefon opfern müssen, und sie werden nicht auf Dritte angewiesen sein, wenn es um den Daten- oder Netzwerkzugang geht, wenn sie Apps verwenden. + +## Aktueller Fortschritt {#current-progress} + +Smart-Contract-Wallets sind bereits verfügbar, aber es sind noch weitere Verbesserungen erforderlich, um sie so dezentralisiert und erlaubnislos wie möglich zu gestalten. EIP-4337 ist ein ausgereifter Vorschlag, der keine Änderungen am Ethereum-Protokoll erfordert. Der für EIP-4337 erforderliche haupt Smart-Contract wurde im März 2023 bereitgestellt. + +Die vollständige Statelessness befindet sich noch in der Forschungsphase und ist wahrscheinlich noch einige Jahre von ihrer Umsetzung entfernt. Es gibt mehrere Meilensteine auf dem Weg zur vollständigen Statelessness, einschließlich data expiry, welche früher umgesetzt werden können. Andere Punkte der Roadmap wie zum Beispiel [ Verkle Trees](/roadmap/verkle-trees/) und [Proposer-builder separation](/roadmap/pbs/) müssen zuerst abgeschlossen werden. + +Verkle Tree Testnets sind bereits in Betrieb, und die nächste Phase besteht darin, Verkle Tree fähige Clients in privaten und dann in öffentlichen Testnets einzusetzen. Sie können dazu beitragen, den Fortschritt zu beschleunigen, indem Sie Kontrakte in die Testnets einbringen oder Testnet-Clients betreiben. diff --git a/src/content/translations/de/roadmap/verkle-trees/index.md b/public/content/translations/de/roadmap/verkle-trees/index.md similarity index 100% rename from src/content/translations/de/roadmap/verkle-trees/index.md rename to public/content/translations/de/roadmap/verkle-trees/index.md diff --git a/src/content/translations/de/security/index.md b/public/content/translations/de/security/index.md similarity index 100% rename from src/content/translations/de/security/index.md rename to public/content/translations/de/security/index.md diff --git a/public/content/translations/de/smart-contracts/index.md b/public/content/translations/de/smart-contracts/index.md new file mode 100644 index 00000000000..878288ac2d4 --- /dev/null +++ b/public/content/translations/de/smart-contracts/index.md @@ -0,0 +1,84 @@ +--- +title: Smart Contracts +description: Eine nicht-technische Einführung in Smart Contracts +lang: de +--- + +# Einführung in Smart Contracts {#introduction-to-smart-contracts} + +Smart Contracts sind die grundlegenden Bausteine der Anwendungsebene von Ethereum. Dabei handelt es sich um auf der Blockchain gespeicherte Computerprogramme, die einer "wenn dies, dann das"-Logik folgen und garantiert nach den in ihrem Code definierten Regeln ausgeführt werden und nach ihrer Erstellung nicht mehr verändert werden können. + +Nick Szabo hat den Begriff „Smart Contract" geprägt. Im Jahr 1994 schrieb er eine [Einführung in das Konzept](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html) und 1996 eine [Untersuchung der Möglichkeiten von Smart Contracts](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). + +Szabo stellte sich einen digitalen Marktplatz vor, auf dem automatische, kryptografisch gesicherte Prozesse Transaktionen und Geschäftsfunktionen ohne vertrauenswürdige Zwischenpersonen ermöglichen. Smart Contracts auf Ethereum realisieren eben diese Vision. + +## Vertrauen in herkömmliche Verträge {#trust-and-contracts} + +Eines der größten Probleme bei herkömmlichen Verträgen ist die Notwendigkeit, dass die Personen, denen Vertrauen entgegengebracht wird, die vertraglichen Regelungen auch einhalten. + +Hier ist ein Beispiel: + +Alice und Bob liefern sich ein Fahrradrennen. Nehmen wir an, Alice wettet mit Bob um 10 EUR, dass sie das Rennen gewinnt. Bob ist zuversichtlich, dass er gewinnt, und nimmt die Wette an. Am Ende fährt Alice weit vor Bob ins Ziel und ist die klare Siegerin. Doch Bob weigert sich, den Wetteinsatz zu bezahlen, und behauptet, Alice hätte betrogen. + +Dieses einfache Beispiel veranschaulicht, dass nicht kluge Vereinbarungen Probleme mit sich bringen können. Selbst wenn die Bedingungen der Vereinbarung erfüllt werden (z. B. Sie sind der Gewinner des Rennens), müssen Sie dennoch einer anderen Person vertrauen, dass die Vereinbarung erfüllt wird (z. B. Auszahlung des Wetteinsatzes). + +## Ein digitaler Verkaufsautomat {#vending-machine} + +Eine einfache Metapher für einen Smart Contract ist ein Verkaufsautomat, dessen Funktionsweise mit einem Smart Contract vergleichbar ist: konkrete Eingaben garantieren vorab festgelegte Leistungen. + +- Sie wählen ein Produkt. +- Der Verkaufautomat zeigt den Preis an. +- Sie zahlen den Preis. +- Der Automat prüft, ob Sie den richtigen Betrag bezahlt haben. +- Der Automat übergibt Ihnen Ihren Artikel. + +Der Verkaufsautomat gibt das gewünschte Produkt erst dann aus, wenn alle Anforderungen erfüllt sind. Wenn Sie beispielsweise kein Produkt auswählen oder nicht genug Geld einwerfen, gibt der Automat kein Produkt aus. + +## Automatische Ausführung {#automation} + +Der Hauptvorteil eines Smart Contracts besteht darin, dass er bestimmt eindeutigen Code ausführt, wenn bestimmte Bedingungen erfüllt sind. Es ist nicht nötig, auf einen Menschen zu warten, um das Ergebnis zu interpretieren oder zu verhandeln. Somit entfällt die Notwendigkeit von vertrauenswürdigen Vermittlern. + +Sie könnten zum Beispiel einen Smart Contract schreiben, der Gelder für ein Kind auf einem Treuhandkonto verwahrt und es dem Kind ermöglicht, nach einem bestimmten Datum über die Geldmittel zu verfügen. Wenn jemand versucht, das Guthaben vor diesem Datum abzuheben, führt der Smart Contract die Transaktion nicht aus. Sie könnten auch einen Vertrag aufsetzen, der Ihnen automatisch eine digitale Version des Fahrzeugbriefs aushändigt, wenn Sie den Händler bezahlen. + +## Vorhersehbare Ergebnisse {#predictability} + +Herkömmliche Verträge sind mehrdeutig, weil sie von Menschen ausgelegt und umgesetzt werden müssen. So könnten beispielsweise zwei Richter einen Vertrag unterschiedlich auslegen. Das könnte zu widersprüchlichen Entscheidungen und ungleichen Ergebnissen führen. Mit Smart Contracts ist das ausgeschlossen. Stattdessen führen sie alles genau auf Grundlage der programmierten Bedingungen aus, die dem Vertrag entsprechen. Diese Präzision bedingt, dass ein Smart Contract unter gleichen Umständen auch zum gleichen Ergebnis führt. + +## Öffentliche Aufzeichnung {#public-record} + +Smart Contracts sind nützlich für Prüfungen und die Nachverfolgung. Da sich die Smart Contracts von Ethereum auf einer öffentlichen Blockchain befinden, kann jeder umgehend die Übertragung von Vermögenswerten und weiterer damit verbundenen Informationen nachvollziehen. So können Sie beispielsweise überprüfen, ob jemand Geld an Ihre Adresse geschickt hat. + +## Schutz der Privatsphäre {#privacy-protection} + +Smart Contracts schützen zudem Ihre Daten. Da Ethereum ein pseudonymes Netzwerk ist (Transaktionen sind öffentlich an eine eindeutige kryptographische Adresse gebunden, nicht an eine Identität), können Sie Ihre Privatsphäre vor Beobachtern schützen. + +## Sichtbare Bedingungen {#visible-terms} + +Letztlich können Sie wie bei herkömmlichen Verträgen prüfen, was in einem Smart Contract steht, bevor Sie diesen unterschreiben (oder anderweitig damit interagieren). Die Transparenz eines Smart Contracts garantiert, dass er von jedem überprüft werden kann. + +## Anwendungsfälle für Smart Contracts {#use-cases} + +Smart Contracts können im Grunde alles, was auch Computerprogramme ausführen können. + +Sie können Berechnungen durchführen, Währungen erzeugen, Daten speichern, NFTs prägen, Mitteilungen senden und sogar Grafiken erstellen. Hier sind einige gängige reale Anwendungen: + +- [Stablecoins](/stablecoins/) +- [Einzigartige digitale Vermögenswerte erstellen und verteilen](/nft/) +- [Ein automatischer, offener Währungsumtausch](/get-eth/#dex) +- [Dezentralisiertes Gaming](/dapps/?category=gaming) +- [Eine Versicherungspolice mit automatisierter Auszahlung](https://etherisc.com/) +- [Ein Standard, der es Menschen ermöglicht, individuelle, interoperable Währungen zu schaffen](/developers/docs/standards/tokens/) + +## Eher der visuelle Lernende? {#visual-learner} + +Dann sehen Sie sich an, wie Finematics Smart Contracts erklären: + + + +## Weiterführende Informationen {#further-reading} + +- [So verändern Smart Contracts die Welt](https://www.youtube.com/watch?v=pA6CGuXEKtQ) +- [Smart Contracts: die Blockchain-Technologie, die Anwälte ersetzen wird](https://blockgeeks.com/guides/smart-contracts/) +- [Smart Contracts für Entwickler](/developers/docs/smart-contracts/) +- [Lernen Sie, Smart Contracts zu programmieren](/developers/learning-tools/) +- [Ethereum-Experte werden – was ist ein Smart Contract?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/de/social-networks/index.md b/public/content/translations/de/social-networks/index.md new file mode 100644 index 00000000000..d08c2825a89 --- /dev/null +++ b/public/content/translations/de/social-networks/index.md @@ -0,0 +1,121 @@ +--- +title: Dezentralisierte soziale Netzwerke +description: Eine Übersicht über dezentralisierte soziale Netzwerke in der Ethereum-Blockchain +lang: de +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: /ethereum-learn.png +summaryPoint1: Blockchain-basierte Plattformen für soziale Interaktionen und Content-Erstellung und -Verteilung. +summaryPoint2: Dezentralisierte Social-Media-Netzwerke schützen die Privatsphäre der Benutzer und erhöhen Datensicherheit. +summaryPoint3: Token und NFTs erschaffen neue Wege zur Monetarisierung von Inhalten. +--- + +Soziale Netzwerke spielen in unserer täglichen Kommunikation und Interaktion eine große Rolle. Allerdings hat die zentralisierte Kontrolle dieser Plattformen viele Probleme verursacht: Datenpannen, Server-Ausfälle, Ausschluss Einzelner, Zensur und Verstöße gegen die Privatsphäre sind einige der Kompromisse, die soziale Medien häufig machen. Um diese Probleme zu bekämpfen, bauen Entwickler soziale Netzwerke auf Ethereum auf. Dezentralisierte soziale Netzwerke können viele der Probleme der traditionellen sozialen Netzwerk-Plattformen beheben und die allgemeine Erfahrung der Benutzer verbessern. + +## Was sind dezentralisierte soziale Netzwerke? {#what-are-decentralized-social-networks} + +Dezentralisierte soziale Netzwerke sind Blockchain-basierte Plattformen, die es Benutzern ermöglichen, Informationen auszutauschen sowie Inhalte zu veröffentlichen und zu verteilen. Da diese Anwendungen auf der Blockchain laufen, sind sie dezentral und widerstandsfähig gegen Zensur und übermäßige Kontrolle. + +Viele dezentrale soziale Netzwerke existieren als Alternative zu schon etablierten Social-Media-Diensten wie Facebook, LinkedIn, Twitter und Medium. Aber soziale Netzwerke, die über die Blockchain laufen, verfügen über eine Reihe von Funktionen, die sie traditionellen sozialen Plattformen überlegen machen. + +### Wie funktionieren dezentralisierte soziale Netzwerke? {#decentralized-social-networks-overview} + +Dezentralisierte soziale Netzwerke sind eine Art von [dezentralisierten Anwendungen (dapps)](/dapps/), die mit [Smart Contracts](/developers/docs/smart-contracts/) betrieben werden und auf der Blockchain laufen. Der Vertragscode dient als Backend für diese Apps und definiert ihre Geschäftslogik. + +Traditionelle Social-Media-Plattformen basieren auf Datenbanken, um Benutzerinformationen, Programm-Code und andere Datenformen zu speichern. Dies jedoch führt zu immensen Risiken, da diese Systeme Einzelfehlerpunkte haben. Facebooks Server beispielsweise [ging letzes Jahr stundenlang offline](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact). Benutzer konnten die Plattform damit nicht nutzen. + +Dezentralisierte soziale Netzwerke existieren in einem Peer-to-Peer-Netzwerk, das Tausende von Knoten auf der ganzen Welt umfasst. Selbst wenn einige dieser Knoten brechen, kann das Netzwerk weiterlaufen, daher sind Anwendungen gegen Ausfälle resistenter. + +Mit der Verwendung von dezentralisierten Speichersystemen, wie [dem InterPlanetary File System (IPFS)](https://ipfs.io/), können soziale Netzwerke, die auf Ethereum aufgebaut sind, Benutzerinformationen vor Ausbeutung und böswilliger Nutzung schützen. Niemand wird Ihre persönlichen Informationen an Werbetreibende verkaufen, ebenso wenig können Hacker Ihre vertraulichen Daten stehlen. + +Viele Blockchain-basierte soziale Plattformen haben native Token, die die Monetarisierung ohne Werbeeinnahmen antreiben. Benutzer können diese Token kaufen, um auf bestimmte Funktionen zugreifen zu können, In-App-Käufe abzuschließen oder ihre liebsten Content-Ersteller zu unterstützen. + +## Vorteile dezentralisierter sozialer Netzwerke {#benefits} + +1. Dezentralisierte soziale Netzwerke sind zensurresistent und offen für alle. Dies bedeutet, dass Benutzer nicht willkürlich gebannt, von der Plattform ausgeschlossen oder eingeschränkt werden können. + +2. Dezentralisierte soziale Netzwerke basieren auf Open-Source-Idealen und stellen Quellcode für Anwendungen zur öffentlichen Kontrolle zur Verfügung. Durch die Abschaffung der Implementation von nicht-transparenten Algorithmen, die bei traditionellen Social Media üblich sind, können Blockchain-basierte soziale Netzwerke die Interessen von Benutzern und Erstellern verbinden. + +3. Dezentralisierte soziale Netzwerke eliminieren somit den „Zwischenhändler". Content-Ersteller haben direkten Besitz an ihren Inhalten. Sie interagieren direkt mit ihren Anhängern, Fans, Käufern und anderen Parteien und dabei steht einzig ein Smart Contract zwischen ihnen. + +4. Da dApps im Ethereum-Netzwerk ausgeführt werden, das durch ein globales Peer-to-Peer Netzwerk von Nodes unterstützt wird, kommt es bei dezentralisierten sozialen Netzwerken zu weniger Serverausfällen. + +5. Dezentralisierte soziale Plattformen bieten einen verbesserten Monetarisierungsrahmen für Content-Ersteller durch Non-fungible Token (NFTs), Krypto-Zahlungen in der App und vieles mehr. + +6. Dezentralisierte soziale Netzwerke bieten ihren Benutzern zudem ein hohes Maß an Privatsphäre und Anonymität. Zum Beispiel kann sich eine Person in ein Ethereum-basiertes soziales Netzwerk mit einem ENS-Profil oder einer Wallet einloggen, ohne personenbezogene Daten (PII) zu teilen, wie Namen, E-Mail-Adressen etc. + +7. Dezentralisierte soziale Netzwerke basieren auf dezentralisierter Speicherung und nicht auf zentralisierten Datenbanken, die wesentlich besser für die Sicherung von Benutzerdaten sind. + +## Dezentralisierte soziale Netzwerke auf Ethereum {#ethereum-social-networks} + +Das Ethereum-Netzwerk ist aufgrund der Beliebtheit seiner Token (ERC-20/ERC-721) und seiner enormen Benutzerbasis zum bevorzugten Werkzeug für Entwickler geworden. Hier sind einige Beispiele für Ethereum-basierte soziale Netzwerke: + +### Peepeth {#peepeth} + +[Peepeth](https://peepeth.com/) ist eine Microblogging-Plattform, ähnlich wie Twitter. Sie läuft auf der Ethereum-Blockchain und verwendet IPFS zur Speicherung von Benutzerdaten. + +Benutzer können kurze Nachrichten, „Peeps" genannt, senden, die nicht gelöscht oder geändert werden können. Ohne die App zu verlassen, können Sie auf der Plattform Unterstützung in Ether (ETH) sammeln oder jemand anderem eine Unterstützung zukommen lassen. + +### Mirror {#mirror} + +[Mirror](https://mirror.xyz/) ist eine web3-fähige Schreib-Plattform. Sie soll dezentralisiert sein und den Benutzern gehören. Benutzer können kostenlos auf Mirror lesen und schreiben, indem sie einfach ihre Wallets verbinden. Benutzer können auch Abfassungen sammeln und ihre Lieblingsschriftsteller abonnieren. + +Auf Mirror veröffentlichte Beiträge werden dauerhaft auf Arweave, einer dezentralen Speicherplattform, gespeichert und können als Sammlerstücke [nicht-fungible Token (NFTs)](/nft/) mit dem Namen „Writing NFTs" geprägt werden. Das Schreiben von NFTs ist für Autoren völlig kostenlos und das Sammeln geschieht auf Ethereum L2. Das macht Transaktionen kostengünstig, schnell und umweltfreundlich. + +### MINDS {#minds} + +[MINDS](https://www.minds.com/) ist eines der am häufigsten genutzten dezentralisierten sozialen Netzwerke. Es funktioniert wie Facebook und hat bereits Millionen von Benutzern gewonnen. + +Benutzer verwenden das native ERC-20-Token $MIND der Plattform, um für Artikel zu bezahlen. Benutzer können außerdem $MIND-Token verdienen, indem sie populäre Inhalte veröffentlichen, zum Ökosystem beitragen und andere auf die Plattform verweisen. + +## Soziale Web2-Netzwerke auf Ethereum {#web2-social-networks-and-ethereum} + +Native soziale [Web3](/web3/)-Plattformen sind nicht die einzigen, die versichern, Blockchain--Technologien in Social Media zu integrieren. Viele zentralisierte Plattformen planen auch, Ethereum in ihre Infrastruktur zu integrieren: + +### Reddit {#reddit} + +Auf Reddit gibt es [Community-Punkte](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users). Es handelt sich dabei um [ERC-20-Token](/developers/docs/standards/tokens/erc-20/), die Nutzer verdienen können, indem sie hochwertigen Inhalt veröffentlichen oder zu Online-Communitys (Subreddits) beitragen. Man kann diese Token innerhalb eines Subreddits verdienen, um [exklusive Privilegien zu erhalten](https://www.reddit.com/community-points/). Für dieses Projekt arbeitet Reddit mit Arbitrum zusammen, einem [Layer 2](/layer-2/)-Rollup für die Skalierung von Ethereum-Transaktionen. + +Das Programm ist bereits im Subreddit r/CryptoCurrency aktiv, [diese Version läuft mit ihrer Version von Community-Punkten namens "Moons"](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Gemäß der offiziellen Beschreibung belohnen Moons "Plakate, Kommentatoren und Moderatoren für deren Beiträge zum Subreddit". Da diese Token auf der Blockchain sind (Benutzer erhalten sie in Wallets), sind sie unabhängig von Reddit und können nicht entfernt werden. + +Nach Abschluss einer Beta-Phase auf dem Rinkeby-Testnet, sind Reddit Community-Punkte jetzt auf [Arbitrum Nova](https://nova.arbitrum.io/), einer Blockchain, die die Eigenschaftern einer [Sidechain](/developers/docs/scaling/sidechains/) und eines [optimistischen Rollups](/developers/docs/scaling/optimistic-rollups/) besitzt. Neben der Verwendung von Community-Punkten zum Freischalten spezieller Funktionen können Nutzer sie auch auf Börsen gegen Papierwährung tauschen. Außerdem bestimmt die Anzahl der Community-Punkte, die ein Benutzer besitzt, seinen Einfluss auf den Entscheidungsprozess innerhalb der Community. + +### Twitter {#twitter} + +Im Januar 2021 hat Twitter Blue [Unterstützung für NFTs](https://mashable.com/article/twitter-blue-nft-profile-picture)eingeführt, die es Benutzern erlaubt, ihre Wallets zu verbinden und NFTs als Profilbilder anzuzeigen. Zum Zeitpunkt des Schreibens hat das Social-Media-Unternehmen auch [Pläne angekündigt](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web), ein dezentralisiertes soziales Netzwerk für die Zukunft zu schaffen. + +### Instagram {#instagram} + +Im Mai 2022 [kündigte Instagram die Unterstützung für NFTs](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) auf Ethereum und Polygon an. Benutzer können NFTs direkt an Instagram schicken, indem sie ihre Ethereum-Wallet verbinden. + +## Nutzen Sie dezentralisierte soziale Netzwerke {#use-decentralized-social-networks} + +- **[Status.im](https://status.im/)** - _Status ist eine sichere Messaging-App, die quelloffen ist und Peer-to-Peer-Protokolle sowie Ende-zu-Ende-Verschlüsselung verwendet, um Ihre Nachrichten vor Dritten zu schützen._ +- **[Mirror.xyz](https://mirror.xyz/)** - _Mirror ist eine dezentralisierte, eigene Publishing-Plattform basierend auf Ethereum, die hilft, Ideen zu finanzieren, Inhalte zu monetarisieren und wertvolle Communitys aufzubauen._ +- **[Lens Protocol](https://lens.xyz/)** - _Lens Protocol ist ein zusammengesetztes und dezentralisiertes soziales Diagramm, welches Erstellern dabei hilft, das Eigentumsrecht ihres Inhalts zu behalten/zu übernehmen._ +- **[Farcaster](https://farcaster.xyz/)** - _Farcaster ist ein ausreichend dezentralisiertes soziales Netzwerk. Es ist ein offenes Protokoll, das viele Clients unterstützen kann, genau wie E-Mail._ + +## Weiterführende Informationen {#further-reading} + +### Artikel {#articles} + +- [Dezentralisierung sozialer Medien: eine Anleitung zum Web3 Social Stack](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _Coinbase Ventures_ +- [Soziale Netzwerke sind die nächste große Dezentralisierungsmöglichkeit](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Goertzel_ +- [Web3 verspricht dezentralisierte, Community-betriebene soziale Netzwerke](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ +- [Eine Übersicht über die Social-Media-Landschaft auf der Blockchain](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ +- [Wie Blockchain den Schutz der Privatsphäre in Social Media ermöglicht](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Prableen Bajpai_ +- [Soziale Netzwerke kommen auf die Blockchain](https://businesstechguides.co/what-are-decentralized-social-networks) — _Emmanuel Awosika_ +- [Ausreichende Dezentralisierung für soziale Netzwerke](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Varun Srinivasan_ + +### Videos {#videos} + +- [Dezentralisierte Social Media erklärt](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ +- [DeSo Blockchain möchte Social Media dezentralisieren](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ +- [Die Zukunft von dezentralisierten Social Media mit Balaji Srinivasan, Vitalik Buterin, Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ + +### Communities {#communities} + +- [Status Discord-Server](https://discord.com/invite/3Exux7Y) +- [Mirror Discord-Server](https://discord.com/invite/txuCHcE8wV) +- [r/Kryptowährung-Subreddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/de/staking/dvt/index.md b/public/content/translations/de/staking/dvt/index.md similarity index 100% rename from src/content/translations/de/staking/dvt/index.md rename to public/content/translations/de/staking/dvt/index.md diff --git a/public/content/translations/de/staking/pools/index.md b/public/content/translations/de/staking/pools/index.md new file mode 100644 index 00000000000..3a14c6acf00 --- /dev/null +++ b/public/content/translations/de/staking/pools/index.md @@ -0,0 +1,85 @@ +--- +title: Gepooltes Staking +description: Eine Übersicht darüber, wie man mit ETH-Pool-Staking beginnen kann +lang: de +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-pool.png +alt: Leslie, das Nashorn, wie es im Pool schwimmt. +sidebarDepth: 2 +summaryPoints: + - Staken Sie und verdienen Sie Belohnungen mit jedem ETH-Betrag, indem Sie Ihre Kräfte mit anderen bündeln + - Überspringen Sie den schwierigen Teil und vertrauen Sie den Validator-Betrieb einem Drittanbieter an + - Halten Sie Staking-Token in Ihrer eigenen Wallet +--- + +## Was sind Staking-Pools? {#what-are-staking-pools} + +Staking-Pools sind ein kollaborativer Ansatz, um es vielen Menschen mit kleineren ETH-Beträgen zu ermöglichen, die 32 ETH zu erhalten, die zur Aktivierung eines Satzes von Validator-Schlüsseln erforderlich sind. Die Pooling-Funktionalität wird innerhalb des Protokolls nicht nativ unterstützt, daher wurden separate Lösungen entwickelt, um diesen Bedarf zu decken. + +Einige Pools arbeiten mit Smart Contracts, bei denen Gelder in einen Vertrag eingezahlt werden können, der Ihren Einsatz (Stake) vertrauenswürdig verwaltet und verfolgt und Ihnen einen Token ausstellt, der diesen Wert widerspiegelt. Andere Pools beinhalten möglicherweise keine Smart Contracts und werden stattdessen außerhalb der Chain vermittelt. + +## Warum in einem Pool staken? {#why-stake-with-a-pool} + +Zusätzlich zu den Vorteilen, die wir in unserer [Einführung zum Staking](/staking/) beschrieben haben, bietet das Staking mit einem Pool einige konkrete Vorteile. + + + + + + + + + +## Bitte beachten {#what-to-consider} + +Gepooltes oder delegiertes Staking wird vom Ethereum-Protokoll nicht nativ unterstützt, aber angesichts der Nachfrage nach Benutzern, weniger als 32 ETH einzusetzen, wurde eine wachsende Zahl von Lösungen entwickelt, um diesen Bedarf zu befriedigen. + +Jeder Pool und die von verschiedenen Teams entwickelten Tools oder Smart Contracts haben jeweils eigene Vorteile und Risiken. Pools ermöglichen Benutzern, ihr ETH gegen einen Token zu tauschen, der für das ETH steht, das gestaked wurde. Der Token ist nützlich, weil er es den Nutzern ermöglicht, einen beliebigen ETH-Betrag in einen gleichwertigen Betrag eines renditetragenden Tokens zu tauschen, der auf dezentralen Börsen eine Rendite aus den auf die zugrunde liegende eingesetzte ETH angewendeten Staking-Belohnungen generiert (und umgekehrt), auch wenn die eigentliche ETH auf der Konsensebene eingesetzt bleibt. Dies bedeutet, dass Tauschvorgänge zwischen einem zinsbringenden gestaked-ETH-Produkt und "rohem ETH" in beide Richtungen schnell, einfach und nicht nur mit 32 ETH verfügbar sind. + +Allerdings kommt es mit diesen gestaketen ETH-Token zu kartellähnlichem Verhalten. Eine große Menge an gestaketem ETH gelangt unter Kontrolle einiger weniger zentralisierter Organisationen, anstatt sich auf viele unabhängige Individuen zu verteilen. Dies schafft die Möglichkeit für Zensur oder Wertentzug. Der Goldstandard für Staking sollte darin bestehen, dass Einzelpersonen Validatoren, wann immer möglich, auf ihrer eigenen Hardware betreiben. + +[Mehr zu den Risiken von Staking-Token](https://notes.ethereum.org/@djrtwo/risks-of-lsd). + +Attributindikatoren werden unten verwendet, um auf nennenswerte Stärken oder Schwächen hinzuweisen, die ein gelisteter Staking-Pool enthalten kann. Verwenden Sie diesen Abschnitt als Referenz dafür, wie wir diese Attribute definieren, während Sie einen Pool auswählen, dem Sie beitreten möchten. + + + +## Staking-Pools entdecken {#explore-staking-pools} + +Es gibt eine Vielzahl von Optionen, die Ihnen bei der Einrichtung helfen. Anhand der Indikatoren oben können Sie die Tools unten besser beurteilen. + + + + + +Hinweis: Es ist wichtig, einen Dienst zu wählen, der [Client-Diversität](/developers/docs/nodes-and-clients/client-diversity/) ernst nimmt, da das die Sicherheit des Netzwerks verbessert und Ihr Risiko begrenzt. Dienste, die nachweislich die Nutzung von Mehrheits-Clients einschränken, sind gekennzeichnet mit "Vielfalt der Ausführungskunden" and "Vielfalt der Konsenskunden". + +Haben Sie einen Vorschlag für einen Staking-Tool, der noch fehlt? Machen Sie sich mit unserer [Richtlinie zum Aufführen von Produkten](/contributing/adding-staking-products/) vertraut, um beurteilen zu können, ob Ihr Vorschlag geeignet ist. Senden Sie ihn uns dann zur Prüfung zu. + +## Häufig gestellte Fragen {#faq} + + +Typischerweise werden ERC-20 Staking-Token an Staker ausgegeben, die den Wert ihrer eingesetzten ETH plus Belohnungen darstellen. Denken Sie daran, dass Staking-Belohnungen grundsätzlich etabliert sind, verschiedene Pools Staking-Belohnungen allerdings nach leicht unterschiedlichen Methoden an ihre Benutzer verteilen. + + + +Sofort! Die Aktualisierung des Netzwerks auf Shanghai/Capella erfolgte im April 2023 und führte das Auszahlen von Staking-Mitteln ein. Validatoren haben nun die Möglichkeit, Staking-Pools, die sie unterstützen, zu verlassen und eine Auszahlung von ETH an ihre angegebene Adresse anzuweisen. Dies macht es möglich, Ihren Anteil am Stake gegen das zugrundeliegende ETH einzulösen. Bitte wenden Sie sich an Ihren Anbieter, um zu erfahren, wie er diese Funktionalität unterstützt. + +Alternativ dazu ermöglichen Pools, die einen ERC-20 Staking-Token verwenden, den Handel mit diesem Token auf dem freien Markt, so dass Sie Ihre Staking-Position verkaufen können, ohne tatsächlich ETH aus dem Staking-Vertrag zu entnehmen. + +Mehr zum Abheben von Staking + + + +Es gibt viele Ähnlichkeiten zwischen diesen gepoolten Staking-Optionen und zentralisierten Börsen, wie z. B. die Möglichkeit, kleine ETH-Beträge zu staken und sie zu bündeln, um Validatoren zu aktivieren. + +Im Gegensatz zu zentralisierten Börsen nutzen viele andere gepoolte Staking-Optionen Smart Contracts und/oder Staking-Token, bei denen es sich in der Regel um ERC-20-Token handelt, die Sie in Ihrer eigenen Wallet halten und wie jeden anderen Token kaufen oder verkaufen können. Dies bietet eine gewisse Souveränität und Sicherheit, da Sie die Kontrolle über Ihre Token besitzen. Allerdings haben Sie immer noch keine direkte Kontrolle über den Validator-Client, der in Ihrem Namen im Hintergrund Attestierungen ausgibt. + +Einige Pooling-Optionen sind im Hinblick auf die Nodes, die sie unterstützen, stärker dezentralisiert als andere. Um die Gesundheit und Dezentralisierung des Netzwerks zu fördern, werden Staker immer dazu ermutigt, einen Pooling-Service auszuwählen, der eine genehmigungsfreie, dezentrale Gruppe von Node-Betreibern ermöglicht. + + +## Weiterführende Informationen {#further-reading} + +- [Staking mit Rocket Pool – Staking-Übersicht](https://docs.rocketpool.net/guides/staking/overview.html) – _RocketPool-Dokumentation_ +- [Staking von Ethereum mit Lido](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Lido Hilfedokumente_ diff --git a/public/content/translations/de/staking/saas/index.md b/public/content/translations/de/staking/saas/index.md new file mode 100644 index 00000000000..24c0a75e96b --- /dev/null +++ b/public/content/translations/de/staking/saas/index.md @@ -0,0 +1,94 @@ +--- +title: Staking als Service +description: Eine Übersicht darüber, wie man mit gepooltem ETH-Staking beginnen kann +lang: de +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-saas.png +alt: Leslie, das in den Wolken schwebende Nashorn. +sidebarDepth: 2 +summaryPoints: + - Drittanbieter als Node-Betreiber kümmern sich um den Betrieb Ihres Validator-Client + - Eine großartige Option für alle mit 32 ETH, die ungern mit der technischen Komplexität von Nodes umgehen + - Weniger Vertrauen, doch Ihre Auszahlungsschlüssel bleiben bei Ihnen +--- + +## Was ist unter Staking-as-a-Service, also Staking als Service zu verstehen? {#what-is-staking-as-a-service} + +Staking-as-a-Service („SaaS“) stellt eine Kategorie von Staking-Diensten dar, bei der Sie Ihre eigenen 32 ETH für einen Validator hinterlegen, aber den Node-Betrieb an einen Drittanbieter delegieren. In der Regel werden Sie in diesem Prozess durch die anfängliche Konfiguration geführt, einschließlich Schlüsselgenerierung und Hinterlegung, und dann laden Sie Ihre Signaturschlüssel für den Betreiber hoch. So kann der Service Ihren Validator in Ihrem Namen betreiben, für gewöhnlich gegen eine monatliche Gebühr. + +## Warum per Service staken? {#why-stake-with-a-service} + +Das Ethereum-Protokoll unterstützt keine Delegation von Staking, daher wurden diese Serviceleistungen aufgebaut, um die entsprechende Nachfrage zu befriedigen. Wenn Sie über 32 ETH zum Staking verfügen, sich aber davor scheuen, mit Hardware umzugehen, bieten SaaS-Dienste Ihnen die Möglichkeit, den schwierigen Teil zu delegieren, während Sie native Blockbelohnungen erhalten. + + + + + + + + + +## Bitte beachten {#what-to-consider} + +Es kommen immer mehr SaaS-Anbieter auf den Markt, die Ihnen beim Staking Ihrer ETH helfen. Doch alle haben ihre eigenen Vorteile und Risiken. Bei allen SaaS-Optionen müssen Sie im Vergleich zum Home-Staking mehr Vertrauen aufbringen. SaaS-Optionen können zusätzlichen Code haben, der die Ethereum-Clients umgibt, der nicht offen oder überprüfbar ist. SaaS beeinträchtigt zudem die Dezentralisierung des Netzwerks. Je nach Einstellung haben Sie möglicherweise keine Kontrolle über Ihren Validator – der Betreiber könnte mit Ihrem ETH unehrlich handeln. + +Attributindikatoren werden unten verwendet, um nennenswerte Stärken oder Schwächen eines gelisteten SaaS-Anbieters zu signalisieren. Nutzen Sie bei Ihrer Auswahl eines Diensts, dem Sie Ihr Staking anvertrauen möchten, diesen Abschnitt als Referenz dafür, wie wir diese Attribute definieren. + + + +## Erkunden Sie die Staking-Dienstleister {#saas-providers} + +Nachfolgend finden Sie einige verfügbare SaaS-Anbieter. Verwenden Sie die obigen Indikatoren für die Beurteilung dieser Dienste + + + +### SaaS-Anbieter + + + +Hinweis: Es ist wichtig, dass sie die [Client-Diversität](/developers/docs/nodes-and-clients/client-diversity/) unterstützen, denn das erhöht die Netzsicherheit und begrenzt Ihre Risiken. Dienste, die nachweislich die Nutzung von Mehrheits-Clients einschränken, sind gekennzeichnet mit "Vielfalt der Ausführungskunden" and "Vielfalt der Konsenskunden". + +### Schlüssel-Generatoren + + + +Sie haben einen Vorschlag zu einem SaaS-Anbieter, den wir noch nicht haben? Machen Sie sich mit unserer [Richtlinie zum Aufführen von Produkten](/contributing/adding-staking-products/) vertraut, um beurteilen zu können, ob Ihr Vorschlag geeignet ist. Senden Sie ihn uns dann zur Prüfung zu. + +## Häufig gestellte Fragen {#faq} + + +Die Vereinbarungen unterscheiden sich von Anbieter zu Anbieter. In der Regel werden Sie durch die Einrichtung aller benötigten Signaturschlüssel (einer pro 32 ETH) und das Hochladen dieser Schlüssel zu Ihrem Anbieter geleitet, damit dieser in Ihrem Namen validieren kann. Die Signaturschlüssel allein bieten nicht die Möglichkeit, Ihr Geld abzuheben, zu überweisen oder auszugeben. Sie bieten jedoch die Möglichkeit, Stimmen für einen Konsens abzugeben, was, wenn es nicht richtig gemacht wird, zu Offline-Strafen oder Slashing führen kann. + + + +Ja. Jedes Konto besteht aus BLS-Signaturschlüsseln und BLS-Abhebungsschlüsseln. Damit ein Validator den Zustand der Blockchain attestieren, an Synchronisierungsausschüssen teilnehmen und Blöcke vorschlagen kann, müssen die Signaturschlüssel für einen Validator-Kunden leicht zugänglich sein. Diese müssen in irgendeiner Form mit dem Internet verbunden sein und werden daher naturgemäß als "Hot Keys" betrachtet. Dies ist eine Voraussetzung für Ihren Validator, um attestieren zu können. Daher werden die Schlüssel, die zum Überweisen oder Abheben von Geldern verwendet werden, aus Sicherheitsgründen getrennt. + +Die BLS-Abhebungsschlüssel werden verwendet, um eine einmalige Nachricht zu signieren, die angibt, an welches Execution-Layer-Konto Staking-Belohnungen und ausgetretene Mittel gehen sollen. Sobald diese Nachricht gesendet wurde, werden die BLS-Abhebungsschlüssel nicht mehr benötigt. Stattdessen wird die Kontrolle über abgehobene Mittel dauerhaft an die von Ihnen angegebene Adresse delegiert. Auf diese Weise können Sie eine Abhebungsadresse festlegen, die durch Ihre eigene Cold Storage gesichert ist, um das Risiko für Ihre Validator-Fonds zu minimieren, selbst wenn jemand anderes die Signaturschlüssel Ihres Validators kontrolliert. + +Das Aktualisieren der Auszahlungsberechtigungen ist ein erforderlicher Schritt, um Auszahlungen zu ermöglichen\*. Dieser Prozess beinhaltet das Generieren der Abhebungsschlüssel mit Hilfe Ihrer Mnemonic Seed Phrase. + +Stellen Sie unbedingt sicher, dass Sie diesen Seed-Satz sicher aufbewahren, sonst können Sie Ihre Auszahlungsschlüssel nicht erstellen, wenn es soweit ist. + +\*Staker, die eine Auszahlungsadresse bei der ersten Einzahlung angegeben haben, müssen dies nicht einstellen. Bitte wenden Sie sich an Ihren SaaS-Anbieter, um Unterstützung bei der Vorbereitung Ihres Validators zu erhalten. + + + +Staking Auszahlungen wurden mit der Shanghai/Capella Aktualisierung im April 2023 eingeführt. Staker müssen (sofern nicht bereits bei der Ersteinzahlung geschehen) eine Auszahlungsadresse bereitstellen. Belohnungen werden daraufhin automatisch alle paar Tage in regelmäßigen Abständen ausgezahlt. + +Validatoren haben auch die Möglichkeit, ihre Tätigkeit als Validator zu beenden. Das ermöglicht die Auszahlung ihres restlichen ETH-Guthabens. Konten, die eine Auszahlungsadresse angegeben und den Austrittsprozess abgeschlossen haben, erhalten ihr gesamtes Guthaben bei der nächsten Validatorendurchsicht auf die angegebene Auszahlungsadresse. + +Mehr zu Staking-Abhebungen + + + +Durch die Nutzung eines SaaS-Anbieters vertrauen Sie den Betrieb Ihrer Nodes jemand anderem an. Dies birgt das Risiko einer schlechten Node-Leistung, auf die Sie keinen Einfluss haben. Falls Ihr Validator geslashed wird, wird Ihr Validator-Guthaben bestraft und zwangsweise aus dem Validator-Pool entfernt. + +Nach Abschluss des Slashing-/Austrittsprozesses werden diese Mittel an die dem Validator zugewiesene Auszahlungsadresse übertragen. Dies erfordert die Angabe einer Auszahlungsadresse zur Aktivierung. Diese Adresse kann bei der anfänglichen Einzahlung angegeben worden sein. Falls nicht, müssen die Auszahlungsschlüssel des Validators verwendet werden, um eine Nachricht zu unterschreiben, die eine Auszahlungsadresse angibt. Wenn keine Auszahlungsadresse angegeben wurde, bleibt das Guthaben bis zur Angabe gesperrt. + +Für weitere Informationen zu Garantien oder Versicherungsoptionen sowie zur Anleitung zur Bereitstellung einer Abhebungsadresse wenden Sie sich bitte an Ihren individuellen SaaS-Anbieter. Wenn Sie es vorziehen, die volle Kontrolle über Ihre Validator-Konfiguration zu haben, erfahren Sie mehr darüber, wie Sie Ihre ETH alleine einsetzen können. + + +## Weiterführende Informationen {#further-reading} + +- [Bewertung von Staking-Diensten](https://www.attestant.io/posts/evaluating-staking-services/) – _Jim McDonald 2020_ diff --git a/public/content/translations/de/staking/solo/index.md b/public/content/translations/de/staking/solo/index.md new file mode 100644 index 00000000000..9cb0960f8f9 --- /dev/null +++ b/public/content/translations/de/staking/solo/index.md @@ -0,0 +1,203 @@ +--- +title: Solo-Staking Ihres ETH +description: Ein Überblick darüber, wie Sie mit dem Solo-Staking Ihres ETH beginnen können +lang: de +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-solo.png +alt: Leslie das Nashorn auf ihrem eigenen Computerchip. +sidebarDepth: 2 +summaryPoints: + - Erhalten Sie maximale Belohnungen direkt vom Protokoll, indem Sie sicherstellen, dass Ihr Validator ordnungsgemäß funktioniert und online ist + - Benutzen Sie Hardware zu Hause und tragen Sie persönlich zur Sicherheit und Dezentralisierung des Ethereum-Netzwerks bei + - Vertrauen Sie niemandem und geben Sie niemals den Zugang zu Ihren Geldern weiter +--- + +## Was ist Solo-Staking? {#what-is-solo-staking} + +Solo-Staking ist das [Betreiben eines Ethereum-Knotens](/run-a-node/), der mit dem Internet verbunden ist, und das Hinterlegen von 32 ETH, um einen [Validator zu aktivieren](#faq), wodurch Sie direkt am Netzwerkkonsens teilnehmen können. + +**Das Solo-Staking erhöht die Dezentralisierung des Ethereum-Netzwerks **, damit Ethereum gegen Zensur resistenter und gegen Angriffe robuster wird. Andere Staking-Methoden können das Netzwerk nicht auf die gleiche Weise unterstützen. Das Solo-Staking ist die beste Staking-Option zur Absicherung von Ethereum. + +Ein Ethereum-Knoten besteht sowohl aus einem Client der Ausführungsschicht (Execution Layer, EL) als auch aus einem Client der Konsensschicht (Client Layer, CL). Diese Kunden sind Software, die mit einem gültigen Satz von Signaturschlüsseln zusammenarbeiten, um Transaktionen und Blöcke zu verifizieren, den korrekten Kopf der Kette zu bestätigen, Bestätigungen zu attestieren und Blöcke vorzuschlagen. + +Solo-Staker sind für den Betrieb der Hardware verantwortlich, die zum Ausführen dieser Clients erforderlich ist. Es wird dringend empfohlen, dafür einen fest zugeordneten Computer zu verwenden, den Sie von zu Hause aus betreiben, denn dies ist für die Gesundheit des Netzwerks sehr vorteilhaft. + +Ein Solo-Staker erhält Belohnungen direkt vom Protokoll dafür, dass sein Validator ordnungsgemäß funktioniert und online bleibt. + +## Warum Solo-Staken? {#why-stake-solo} + +Das Solo-Staking bringt mehr Verantwortung mit sich, bietet Ihnen aber die maximale Kontrolle über Ihre Mittel und Ihre Staking-Einstellungen. + + + + + + + +## Überlegungen vor dem Solo-Staking {#considerations-before-staking-solo} + +So sehr wir uns wünschen, dass das Solo-Staking für alle zugänglich und risikofrei wäre, spiegelt dies nicht die Realität wider. Es gibt einige praktische und ernsthafte Überlegungen, die Sie beachten sollten, bevor Sie sich entscheiden, Ihre ETH solo zu staken. + + + +Wenn Sie Ihren eigenen Knoten betreiben, sollten Sie einige Zeit damit verbringen, die Verwendung der von Ihnen gewählten Software zu erlernen. Dies umfasst das Lesen der relevanten Dokumentation und das Einstimmen auf die Kommunikationskanäle dieser Entwicklerteams. + +Je mehr Sie über die von Ihnen verwendete Software und die Funktionsweise von Proof-of-Stake (Stake-Nachweis) verstehen, desto weniger riskant ist es als Staker und desto einfacher wird es, alle Probleme zu beheben, die auf dem Weg als Node-Betreiber auftreten können. + + + +Das Einrichten von Nodes erfordert ein angemessenes Maß an Sicherheit bei der Arbeit mit Computern, obwohl neue Tools dies im Laufe der Zeit einfacher machen. Das Verständnis der Befehlszeilenschnittstelle ist hilfreich, aber nicht mehr unbedingt erforderlich. + +Es erfordert auch eine sehr einfache Hardware-Konfiguration und ein gewisses Verständnis der empfohlenen Mindestspezifikationen. + + + +Genauso wie private Schlüssel Ihre Ethereum-Adresse sichern, müssen Sie Schlüssel speziell für Ihren Validator generieren. Sie müssen sich informieren, wie Sie Seed-Phrasen oder private Schlüssel sicher aufbewahren.{' '} + +Ethereum-Sicherheit und Betrugsprävention + + + +Hardware fällt gelegentlich aus, Netzwerkverbindungen fallen aus und Client-Software muss gelegentlich aktualisiert werden. Die Node-Wartung ist unvermeidlich und erfordert von Zeit zu Zeit Ihre Aufmerksamkeit. Sie sollten sicher sein, dass Sie über alle erwarteten Netzwerk-Upgrades oder andere wichtige Client-Upgrades informiert sind. + + + +Ihre Belohnungen sind proportional zu der Zeit, in der Ihr Validator online ist und ordnungsgemäß attestiert. Ausfallzeiten führen zu Strafen, die proportional dazu sind, wie viele andere Validatoren gleichzeitig offline sind, aber führen nicht zum Slashing. Auch die Bandbreite spielt eine Rolle, da die Belohnungen für Bescheinigungen, die nicht rechtzeitig eingehen, gekürzt werden. Die Anforderungen sind unterschiedlich, es wird jedoch ein Minimum von 10 Mb/s Upload und Download empfohlen. + + + +Im Gegensatz zu Strafen für Inaktivität in Offline-Zeiten ist Slashing eine viel schwerwiegendere Strafe, die auf böswillige Vergehen beschränkt ist. Wenn Sie einen Minderheiten-Client mit Ihren Schlüsseln jeweils auf nur einer Maschine laden, wird das Risiko des Schrumpfens minimiert. Davon abgesehen müssen sich alle Staker der Risiken von Slashing bewusst sein. + + Mehr über Slashing und den Lebenszyklus von Validatoren + + + + + +## Wie es funktioniert {#how-it-works} + + + +Während Sie aktiv sind, erhalten Sie ETH-Prämien, die regelmäßig in Ihre Auszahlungsadresse eingezahlt werden. + +Wenn Sie möchten, können Sie als Validator aussteigen, wodurch die Notwendigkeit entfällt, online zu sein, und alle weiteren Belohnungen gestoppt werden. Ihr verbleibendes Guthaben wird dann an die Auszahlungsadresse, die Sie bei der Einrichtung angeben, ausgezahlt. + +[Mehr zu Staking-Auszahlungen](/staking/withdrawals/) + +## Beginnen Sie mit dem Staking-Launchpad {#get-started-on-the-staking-launchpad} + +Das Staking-Launchpad ist eine Open-Source-Anwendung, die Ihnen hilft, ein Staker zu werden. Es führt Sie durch die Auswahl Ihrer Clients, die Generierung Ihrer Schlüssel und die Hinterlegung Ihrer ETH nach Maßgabe des Staking-Einlagenvertrags. Eine Checkliste wird bereitgestellt, um sicherzustellen, dass Sie alles abgedeckt haben, um Ihren Validator sicher einzurichten. + + + +## Was bei Node- und Client-Konfigurations-Tools zu beachten ist {#node-tool-considerations} + +Es gibt eine wachsende Zahl von Tools und Dienstleistungen, die Ihnen helfen, Ihre ETH solo zu staken, aber sie sind mit unterschiedlichen Risiken und Vorteilen verbunden. + +Attributindikatoren werden unten verwendet, um auf nennenswerte Stärken oder Schwächen hinzuweisen, die ein gelistetes Staking-Tool haben kann. Verwenden Sie diesen Abschnitt als Referenz dafür, wie wir diese Attribute definieren, während Sie auswählen, welche Tools Sie bei Ihrer Staking-Reise unterstützen. + + + +## Erkunden Sie Tools zum Einrichten von Nodes und Clients {#node-and-client-tools} + +Es gibt eine Vielzahl von Optionen, die Ihnen bei der Einrichtung helfen. Verwenden Sie die obigen Indikatoren, um Sie durch die folgenden Tools zu führen. + + + +### Node-Tools + + + +Bitte beachten Sie, wie wichtig es ist, einen [Minderheits-Client](/developers/docs/nodes-and-clients/client-diversity/) zu wählen, da er die Sicherheit des Netzwerks verbessert und Ihr Risiko begrenzt. Tools, mit denen Sie einen Minderheit-Client einrichten können, werden als „Multi-Client" bezeichnet. + +### Schlüssel-Generatoren + +Diese Tools können als Alternative zur [Staking-Einlage-CLI](https://github.com/ethereum/staking-deposit-cli/) genutzt werden, um bei der Schlüsselgenerierung zu helfen. + + + +Haben Sie einen Vorschlag für einen Staking-Tool, der noch fehlt? Machen Sie sich mit unserer [Richtlinie zum Aufführen von Produkten](/contributing/adding-staking-products/) vertraut, um beurteilen zu können, ob Ihr Vorschlag geeignet ist. Senden Sie ihn uns dann zur Prüfung zu. + +## Erkunden Sie Solo-Staking-Anleitungen {#staking-guides} + + + +## Häufig gestellte Fragen {#faq} + +Das sind einige der häufigsten Fragen zum Thema Staking. Es ist lohnenswert sich damit auseinanderzusetzen. + + + +Ein Validator ist eine virtuelle Einheit, die auf Ethereum existiert und am Konsens des Ethereum-Protokolls teilnimmt. Validatoren werden durch ein Guthaben, einen öffentlichen Schlüssel und andere Eigenschaften dargestellt. Ein Validator-Client ist die Software, die im Namen des Validators handelt, indem sie seinen privaten Schlüssel hält und verwendet. Ein einzelner Validator-Client kann viele Schlüsselpaare enthalten und viele Validatoren steuern. + + + + +Jedes Schlüsselpaar, das einem Validator zugeordnet ist, erfordert genau 32 ETH, um aktiviert zu werden. Mehr ETH, die in einen einzigen Schlüsselsatz eingezahlt werden, erhöhen das Belohnungspotenzial nicht, da jeder Validator auf ein effektives Guthaben von 32 ETH begrenzt ist. Dies bedeutet, dass das Staking in Schritten von 32 ETH erfolgt, von denen jeder seinen eigenen Schlüsselsatz und sein eigenes Guthaben hat. + +Zahlen Sie nicht mehr als 32 ETH für einen einzelnen Validator ein. Sie wird Ihre Belohnungen nicht erhöhen. Wenn eine Auszahlungsadresse für den Validator festgelegt wurde, werden überschüssige Gelder über 32 ETH während des nächsten Validator-Sweeps automatisch an diese Adresse überwiesen. + +Wenn Ihnen Solo-Staking zu anspruchsvoll erscheint, ziehen Sie die Nutzung eines Staking-as-a-Service-Anbieters in Betracht, oder wenn Sie mit weniger als 32 ETH arbeiten, schauen Sie sich die Staking-Pools an. + + + +Wenn man offline geht, während das Netzwerk ordnungsgemäß abgeschlossen wird, führt dies NICHT zu Slashing. Es fallen kleine Strafen für Inaktivität an, wenn Ihr Validator für eine bestimmte Epoche (jeweils 6,4 Minuten lang) nicht verfügbar ist, um dies zu bestätigen, aber dies unterscheidet sich stark von Slashing. Diese Strafen sind etwas geringer als die Belohnung, die Sie verdient hätten, wenn der Validator zur Bestätigung verfügbar gewesen wäre, und Verluste können mit ungefähr der gleichen Zeit zurückerstattet werden, wenn Sie wieder online sind. + +Beachten Sie, dass Strafen für Inaktivität proportional dazu sind, wie viele Validatoren gleichzeitig offline sind. In Fällen, in denen ein großer Teil des Netzwerks auf einmal offline ist, sind die Strafen für jeden dieser Validatoren größer, als wenn ein einzelner Validator nicht verfügbar ist. + +In extremen Fällen, wenn das Netzwerk nicht mehr fertig gestellt wird, weil mehr als ein Drittel der Validatoren offline sind, werden diese Benutzer unter einem sogenannten quadratischen Inaktivitätsleck leiden, das einen exponentiellen Abfluss von ETH von Offline-Validierungskonten darstellt. Dies ermöglicht es dem Netzwerk, sich schließlich selbst zu heilen, indem es die ETH von inaktiven Validatoren verbrennt, bis deren Kontostand 16 ETH erreicht. An diesem ​​​​Punkt werden sie automatisch aus dem Validator-Pool herausgeworfen werden. Die verbleibenden Online-Validatoren werden schließlich wieder über 2/3 des Netzwerks verfügen und die qualifizierte Mehrheit haben, die erforderlich ist, um die Kette erneut abzuschließen. + + + +Kurz gesagt, dies kann nie vollständig garantiert werden, aber wenn Sie in gutem Glauben handeln, einen Minderheits-Client betreiben und Ihre Signaturschlüssel jeweils nur auf einem Computer aufbewahren, liegt das Slashing-Risiko bei nahezu null. + +Es gibt nur wenige spezifische Möglichkeiten, die dazu führen können, dass ein Validator geslashed und aus dem Netzwerk herausgeworfen wird. Zum Zeitpunkt des Verfassens dieses Artikels waren die aufgetretenen Slashings ausschließlich ein Produkt redundanter Hardware-Konfigurationen, bei denen Signaturschlüssel gleichzeitig auf zwei separaten Computern gespeichert werden. Dies kann unbeabsichtigt zu einer doppelten Abstimmung Ihrer Schlüssel führen. Das wiederum stellt ein strafbares Vergehen dar. + +Das Ausführen eines Clients mit qualifizierter Mehrheit (jeder Client, der von mehr als 2/3 des Netzwerks verwendet wird) birgt auch das Risiko eines potenziellen Slashing, falls dieser Client einen Fehler aufweist, der zu einer Chain-Fork führt. Dies kann zu einer fehlerhaften Fork führen, die abgeschlossen wird. Um zur beabsichtigten Kette zurückzukehren, müsste eine Surround-Abstimmung durchgeführt werden, indem man versucht, einen abgeschlossenen Block rückgängig zu machen. Auch dies ist ein strafbares Vergehen und kann einfach dadurch vermieden werden, dass stattdessen ein Minderheits-Client ausgeführt wird. + +Äquivalente Fehler in einem Minderheits-Client würden niemals abgeschlossen und würden daher niemals zu einer Surround-Abstimmung, sondern einfach zu Inaktivitätsstrafen, nicht zu Slashing. + + + + + +Einzelne Clients können in Bezug auf Leistung und Benutzeroberfläche leicht variieren, da jeder von verschiedenen Teams mit einer Vielzahl von Programmiersprachen entwickelt wird. Davon abgesehen ist keiner von ihnen „am besten" Bei allen Produktions-Clients handelt es sich um eine hervorragende Software, die alle die gleichen Kernfunktionen zur Synchronisierung und Interaktion mit der Blockchain ausführen. + +Da alle Produktions-Clients die gleiche Grundfunktionalität bieten, ist es sehr wichtig, dass Sie einen Minderheits-Client wählen, d. h. jeden Client, der derzeit NICHT von einer Mehrheit der Validatoren im Netzwerk verwendet wird. Dies mag kontraintuitiv klingen, aber wenn Sie einen Mehrheits- oder einen Client mit qualifizierter Mehrheit betreiben, besteht für Sie ein erhöhtes Risiko des Slashing im Falle eines Fehlers in diesem Client. Der Betrieb eines Minderheits-Client begrenzt diese Risiken drastisch. + +Erfahren Sie mehr darüber, warum Client-Diversität entscheidend ist + + + +Obwohl ein virtueller privater Server (VPS) als Ersatz für Heim-Hardware verwendet werden kann, spielen der physische Zugang und Standort Ihres Validator-Client eine Rolle. Zentralisierte Cloud-Lösungen wie Amazon Web Services oder Digital Ocean bieten den Vorteil, dass keine Hardware angeschafft und betrieben werden muss, was zur Zentralisierung des Netzwerks beiträgt. + +Je mehr Validator-Clients auf einer einzigen zentralisierten Cloud-Speicherlösung laufen, desto gefährlicher wird es für diese Benutzer. Jedes Ereignis, das diese Anbieter offline schaltet, sei es durch einen Angriff, behördliche Anforderungen oder nur Strom-/Internetausfälle, führt dazu, dass jeder Validator-Client, der sich auf diesen Server verlässt, gleichzeitig offline geht. + +Offline-Strafen sind proportional dazu, wie viele andere gleichzeitig offline sind. Die Verwendung eines VPS erhöht das Risiko, dass Offline-Strafen schwerwiegender sind, und erhöht Ihr Risiko von quadratischen Lecks oder Slashing, falls der Ausfall groß genug ist. Um Ihr eigenes Risiko und das Risiko für das Netzwerk zu minimieren, wird Benutzern dringend empfohlen, ihre eigene Hardware zu erwerben und zu betreiben. + + + + +Abhebungen jeglicher Art aus der Beaconchain erfordern die Angabe von Rücktrittsberechtigungen. + +Neue Staker setzen dies bei der Schlüsselgenerierung und Einzahlung. Bestehende Staker, die dies noch nicht eingestellt haben, können ihre Schlüssel aktualisieren, um diese Funktion zu unterstützen. + +Sobald die Auszahlungsdaten festgelegt sind, werden Prämienzahlungen (über den ursprünglichen 32) periodisch an die Auszahlungsadresse ausgezahlt. + +Um Ihr gesamtes Guthaben zu entsperren und zu erhalten, müssen Sie auch den Prozess des Verlassens Ihres Validators abschließen. + +Mehr zu Staking-Auszahlungen + + +## Weiterführende Informationen {#further-reading} + +- [Ethereums Client-Diversitätsproblem](https://hackernoon.com/Ethereums-Client-Diversitätsproblem) – _@emmanuelawosika 2022_ +- [Client-Diversität fördern](https://www.attestant.io/Posts/Client-Diversität-fördern/) – _Jim McDonald 2022_ +- [Client-Diversität auf der Konsensebene von Ethereum](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) – _jmcook.eth 2022_ +- [Anleitung: Ethereum-Validator-Hardware kaufen](https://www.youtube.com/watch?v=C2wwu1IlhDc) – _EthStaker 2022_ +- [Schritt für Schritt: Wie man dem Ethereum 2.0 Testnetz beitritt](https://kb.beaconcha.in/Guides/Tutorium-eth2-Multi-Client) - _ Butta_ +- [Eth2-Slashing-Präventionstipps](https://medium.com/prysmatic-labs/eth2-Slashing-Präventionstipps-f6faa5025f50) – _Raul Jordan 2020 _ diff --git a/public/content/translations/de/staking/withdrawals/index.md b/public/content/translations/de/staking/withdrawals/index.md new file mode 100644 index 00000000000..7c017a5be48 --- /dev/null +++ b/public/content/translations/de/staking/withdrawals/index.md @@ -0,0 +1,218 @@ +--- +title: Staking-Auszahlungen +description: Seite mit einer Zusammenfassung zu Staking-Push-Auszahlungen, wie sie funktionieren und was Staker tun müssen, um ihre Belohnungen zu erhalten +lang: de +template: staking +image: /staking/leslie-withdrawal.png +alt: Leslie das Nashorn mit ihren Staking-Auszahlungen +sidebarDepth: 2 +summaryPoints: + - Das Shanghai/Capella-Update ermöglichte Staking-Auszahlungen auf Ethereum + - Validatoren müssen eine Auszahlungsadresse angeben, um sie zu aktivieren + - Erträge werden alle paar Tage automatisch ausgezahlt + - Validatoren, die nicht mehr staken, erhalten ihr verbleibendes Guthaben +--- + + +Staking-Auszahlungen wurden mit dem Shanghai/Capella-Upgrade aktiviert, welches am 12. April 2023 durchgeführt wurde. Mehr über Shanghai/Capella erfahren + + +**Staking-Auszahlungen** beziehen sich auf die Übertragung von ETH von einem Validator-Konto in der Konsensschicht von Ethereum (der Beacon Chain) zur Ausführungsschicht, in der damit Transaktionen durchgeführt werden können. + +**Belohnungszahlungen für überschüssige Guthaben** über 32 ETH werden automatisch und regelmäßig an eine mit jedem Validator verknüpfte Auszahlungsadresse gesendet, sobald sie vom Benutzer angegeben wurde. Benutzer können auch das **Staking vollständig beenden** und damit ihr gesamtes Validator-Guthaben freigeben. + +## Staking-Belohnungen {#staking-rewards} + +Belohnungszahlungen werden automatisch für aktive Validator-Konten mit einem ausgeschöpften effektiven Guthaben von 32 ETH verarbeitet. + +Ein Guthaben über 32 ETH, das durch Belohnungen verdient wurde, trägt tatsächlich nicht zum Grundkapital bei oder erhöht das Gewicht dieses Validators im Netzwerk. Daher wird es automatisch alle paar Tage als Prämienzahlung abgehoben. Abgesehen von der einmaligen Angabe einer Auszahlungsadresse sind für diese Belohnungen keine weiteren Aktionen vom Validator erforderlich. Dies wird alles auf der Konsensschicht initiiert, daher ist in keinem Schritt Gas (Transaktionsgebühr) erforderlich. + +### Wie sind wir an diesem Punkt angelangt? {#how-did-we-get-here} + +In den letzten Jahren hat Ethereum mehrere Netzwerk-Upgrades durchlaufen und ist zu einem Netzwerk übergegangen, das durch ETH selbst gesichert ist, anstatt durch energieintensives Mining, wie es früher der Fall war. Die Teilnahme am Konsens auf Ethereum wird nun als „Staking" bezeichnet, da die Teilnehmer freiwillig ETH gesperrt haben und es „aufs Spiel setzen", um am Netzwerk teilnehmen zu können. Benutzer, die sich an die Regeln halten, werden belohnt, während Versuche, das System zu betrügen, bestraft werden können. + +Seit der Einführung des Staking-Einzahlungsvertrags im November 2020 haben einige mutige Ethereum-Pioniere freiwillig Gelder gesperrt, um „Validatoren" zu aktivieren, spezielle Konten, die das Recht haben, gemäß den Netzwerkregeln offiziell Blöcke zu beglaubigen und vorzuschlagen. + +Vor dem Shanghai/Capella-Upgrade konnten Sie Ihr gestaktes ETH nicht verwenden oder darauf zugreifen. Aber jetzt können Sie sich dafür entscheiden, Ihre Belohnungen automatisch auf ein ausgewähltes Konto zu erhalten, und Sie können auch jederzeit Ihr gestaktes ETH abheben. + +### Wie bereite ich mich vor? {#how-do-i-prepare} + + + +### Wichtige Hinweise {#important-notices} + +Die Angabe einer Auszahlungsadresse ist ein erforderlicher Schritt für jedes Validator-Konto, bevor es für die Abhebung von ETH aus seinem Guthaben infrage kommt. + + + Jedem Validatoren-Konto kann nur eine einzige Abhebungsadresse zugewiesen werden, und zwar nur einmal. Sobald eine Adresse ausgewählt und an die Konsensus-Ebene übermittelt wurde, lässt sich dieser Vorgang nicht mehr rückgängig machen. Überprüfen Sie die Besitzverhältnisse und die Richtigkeit der angegebenen Adresse, bevor Sie sie einreichen. + + +In der Zwischenzeit besteht keine Bedrohung für Ihre Gelder, wenn Sie dies nicht tun, vorausgesetzt, Ihre Mnemonic-/Seed-Phrase ist offline sicher aufbewahrt und wurde in keiner Weise kompromittiert. Wenn keine Auszahlungsinformationen hinzugefügt werden, bleibt das ETH einfach im Validator-Konto gesperrt, wie es bislang der Fall war, bis eine Auszahlungsadresse angegeben wird. + +## Das vollständige Beenden des Staking {#exiting-staking-entirely} + +Die Angabe einer Auszahlungsadresse ist erforderlich, bevor _irgendwelche_ Gelder aus dem Guthaben eines Validator-Kontos übertragen werden können. + +Benutzer, die das Staking vollständig beenden und ihr gesamtes Guthaben abheben möchten, müssen auch eine „freiwillige Ausstiegsnachricht" mit Validator-Schlüsseln unterzeichnen und übermitteln, die den Prozess des Ausstiegs aus dem Staking einleitet. Der Vorgang erfolgt mit Ihrem Validator-Client und wird an Ihren Konsens-Node übermittelt. Dafür fallen keine Gas-Kosten an. + +Der Prozess, bei dem ein Validator aus dem Staking aussteigt, dauert je nachdem, wie viele andere gleichzeitig aussteigen, unterschiedlich lange. Sobald der Vorgang abgeschlossen ist, ist dieses Konto nicht mehr dafür verantwortlich, Validator-Netzwerkaufgaben auszuführen, ist nicht mehr für Belohnungen berechtigt und hat sein ETH nicht mehr „aufs Spiel gesetzt". Zu diesem Zeitpunkt wird das Konto als vollständig „abhebbar" gekennzeichnet. + +Sobald ein Konto als „abhebbar" markiert wurde und Auszahlungsinformationen bereitgestellt wurden, gibt es nichts mehr, was ein Benutzer tun muss, außer zu warten. Konten werden automatisch und kontinuierlich von Block-Proposern auf berechtigte freigegebene Gelder durchsucht, und Ihr Kontoguthaben wird in voller Höhe (auch als „vollständiger Abzug" bekannt) während des nächsten Sweeps übertragen. + +## Wann sind Staking-Abhebungen aktiviert? {#when} + +Staking-Abhebungen sind live! Die Funktionalität für das Abheben wurden als Teil des Shanghai/Capella Upgrades vom 12. April 2023 aktiviert. + +Das Shanghai/Capella Upgrade ermöglicht ETH, das gestaked wurde, mit regulären Ethereum-Konten zurückzufordern. Dies schloss den Kreis hinsichtlich der Bereitstellung von Liquidität und brachte Ethereum einen Schritt näher auf seinem Weg, ein nachhaltiges, skalierbares, sicheres dezentralisiertes Ökosystem zu schaffen. + +- [Mehr zur Geschichte von Ethereum](/history/) +- [Mehr zur Ethereum-Roadmap](/roadmap/) + +## Wie funktionieren Auszahlungen? {#how-do-withdrawals-work} + +Ob ein bestimmter Validator zur Auszahlung berechtigt ist oder nicht, wird durch den Zustand des Validator-Kontos selbst bestimmt. Es ist zu keinem Zeitpunkt eine Benutzereingabe erforderlich, um zu bestimmen, ob eine Auszahlung für ein Konto eingeleitet werden sollte oder nicht - der gesamte Prozess wird automatisch von der Konsensschicht in einer kontinuierlichen Schleife durchgeführt. + +### Eher der visuelle Lernende? {#visual-learner} + +Sehen Sie sich diese Erklärung für die Abhebungen von Ethereum von Finematics an: + + + +### Validator „Sweeping" {#validator-sweeping} + +Es ist notwendig, dass ein Validator, der den nächsten Block vorschlagen soll, eine Warteschlange mit bis zu 16 zugelassenen Auszahlungen erstellt. Ursprünglich beginnt man mit dem Validator-Index 0 und prüft, ob es gemäß den Protokollregeln eine berechtigte Auszahlung für dieses Konto gibt. Ist dies der Fall, wird sie zur Warteschlange hinzugefügt. Der für den nächsten Block vorgesehene Validator knüpft ununterbrochen dort an, wo der vorherige aufgehört hat, und verfährt dabei in stetiger Reihenfolge. + + +Stellen Sie sich eine analoge Uhr vor. Der Zeiger der Uhr zeigt auf die Stunde, bewegt sich in eine Richtung, lässt keine Stunden aus und kehrt schließlich nach Erreichen der letzten Zahl wieder an den Anfang zurück.

+Stellen Sie sich nun vor, dass die Uhr statt 1 bis 12 die Zahlen 0 bis N hat (die Gesamtzahl der jemals auf der Konsensus-Ebene registrierten Validatoren-Konten, über 500.000 im Januar 2023).

+Der Zeiger auf der Uhr zeigt auf den nächstenValidator, der auf zulässige Abhebungen geprüft werden muss. Es beginnt bei 0 und schreitet rundherum fort, ohne irgendwelche Konten zu überspringen. Wenn der letzte Validator erreicht ist, beginnt der Zyklus von vorne. +
+ +#### Überprüfung eines Kontos auf Auszahlungen {#checking-an-account-for-withdrawals} + +Bei der Durchsicht der Validatoren auf mögliche Auszahlungen bewertet der Vorschlagende jeden überprüften Validator mit einer kurzen Fragenreihe. Auf diese Weise wird entschieden, ob eine Auszahlung ausgelöst werden sollte und falls ja, wie viel ETH abgehoben werden soll. + +1. **Wurde eine Auszahlungsadresse angegeben?** Wenn keine Auszahlungsadresse angegeben wurde, wird das Konto übersprungen und keine Auszahlung eingeleitet. +2. **Hat der Validator den Prozess verlassen und ist das Guthaben abhebbar?** Sobald der Validator den Prozess komplett verlassen hat und der Zeitpunkt erreicht ist, in dem das Guthaben des Kontos als „abhebbar" gilt, wird eine vollständige Auszahlung veranlasst. Dies wird das gesamte verbleibende Guthaben an die Auszahlungsadresse übertragen. +3. **Ist der effektive Kontostand auf 32 begrenzt?** Falls das Konto Auszahlungsberechtigungen besitzt, noch nicht vollständig beendet ist und über 32 anstehende Belohnungen hat, wird eine teilweise Auszahlung vorgenommen. Dabei werden lediglich die über 32 hinausgehenden Belohnungen an die Auszahlungsadresse des Benutzers übertragen. + +Es gibt nur zwei Aktionen, die von Validatoren während des Lebenszyklus eines Validators durchgeführt werden, die diesen Ablauf direkt beeinflussen: + +- Bereitstellung von Auszahlungsberechtigungen, um eine Form von Auszahlung zu ermöglichen +- Verlassen des Netzwerks, was eine vollständige Auszahlung anstößt + +### Kostenfreies Gas {#gas-free} + +Dieser Ansatz für Staking-Auszahlungen vermeidet, dass Staker manuell eine Transaktion einreichen müssen, die eine bestimmte Menge an ETH zur Auszahlung anfordert. Das bedeutet, dass **kein Gas (Transaktionsgebühr) erforderlich** ist und Auszahlungen auch nicht um den bestehenden Blockplatz der Ausführungsschicht konkurrieren. + +### Wie oft erhalte ich meine Staking-Belohnungen? {#how-soon} + +In einem einzigen Block können maximal 16 Auszahlungen verarbeitet werden. Mit dieser Rate können pro Tag 115.200 Validator-Auszahlungen verarbeitet werden (vorausgesetzt, es werden keine Slots verpasst). Wie oben erwähnt, werden Validatoren ohne berechtigte Auszahlungen übersprungen, was die Zeit bis zum Abschluss des Durchlaufs verkürzt. + +Indem wir diese Berechnung erweitern, können wir die Zeit abschätzen, die benötigt wird, um eine bestimmte Anzahl von Auszahlungen zu verarbeiten: + + + +| Anzahl der Auszahlungen | Zeit bis zum Abschluss | +| :---------------------: | :--------------------: | +| 400,000 | 3,5 Tage | +| 500,000 | 4,3 Tage | +| 600,000 | 5,2 Tage | +| 700,000 | 6,1 Tage | +| 800,000 | 7,0 Tage | + + + +Wie Sie sehen, verlangsamt sich dieser Prozess, wenn mehr Validatoren im Netzwerk sind. Eine Zunahme von verpassten Slots könnte dies proportional verlangsamen, aber dies wird im Allgemeinen die langsamere Seite der möglichen Ergebnisse darstellen. + +## Häufig gestellte Fragen {#faq} + + +Nein, der Prozess zur Bereitstellung von Auszahlungsberechtigungen ist ein einmaliger Prozess und kann nach der Einreichung nicht mehr geändert werden. + + + +Durch die Einstellung einer Ausführungsebene wurden die Auszahlungsberechtigungen für diesen Validator dauerhaft geändert. Das bedeutet, dass die alten Berechtigungen nicht mehr funktionieren, und die neuen Berechtigungen zu einem Ausführungsschicht-Konto führen. + +Abhebungsadressen können entweder ein intelligenter Vertrag sein (durch seinen Code kontrolliert), oder ein externes Konto (EOA, kontrolliert durch seinen privaten Schlüssel). Aktuell existiert keine Möglichkeit für diese Konten, eine Nachricht zur Konsensschicht zurückzusenden, die eine Änderung der Validator-Anmeldeinformationen anzeigen würde. Eine solche Funktion einzuführen, würde das Protokoll unnötig komplizieren. + +Als Alternative zur Änderung der Auszahlungsadresse für einen bestimmten Validator können sich Benutzer dafür entscheiden, einen intelligenten Vertrag als ihre Auszahlungsadresse festzulegen, der Schlüsselrotationen handhaben könnte, wie zum Beispiel ein Safe. Benutzer, die ihre Mittel auf ihr eigenes extern kontrolliertes Konto (EOA) setzen, können einen vollständigen Ausstieg durchführen, um all ihre gestakten Mittel abzuheben, und dann mit neuen Anmeldeinformationen erneut staken. + + + + +Wenn Sie Teil eines Staking-Pools sind oder Staking-Token besitzen, sollten Sie sich bei Ihrem Anbieter erkundigen, wie Staking-Auszahlungen gehandhabt werden, da jeder Dienst anders funktioniert. + +Im Allgemeinen sollten Benutzer in der Lage sein, ihr zugrundeliegendes gestaktes ETH zurückzufordern oder zu ändern, welchen Staking-Anbieter sie nutzen. Wenn ein bestimmter Pool zu groß wird, können Mittel abgezogen, eingelöst und mit einem kleineren Anbieter neu gestaked werden. Oder, wenn Sie genug ETH angesammelt haben, könnten Sie von zu Hause aus staken. + + + + +Ja, solange Ihr Validator eine Auszahlungsadresse bereitgestellt hat. Diese muss einmal bereitgestellt werden, um Auszahlungen zu ermöglichen, danach werden Belohnungszahlungen automatisch alle paar Tage mit jedem Durchlauf des Validators ausgelöst. + + + + +Nein, wenn Ihr Validator noch aktiv im Netzwerk ist, erfolgt keine automatische Auszahlung. Dies erfordert das manuelle Einleiten eines freiwilligen Ausstiegs. + +Sobald ein Validator den Ausstiegsprozess abgeschlossen hat und vorausgesetzt, das Konto verfügt über Auszahlungsberechtigungen, wird das verbleibende Guthaben dann während des nächsten Validator-Durchlaufs abgehoben. + + + + +Auszahlungen sind darauf ausgelegt, automatisch durchgeführt zu werden und jegliches ETH zu übertragen, das nicht aktiv zum Staking beiträgt. Dies beinhaltet vollständige Salden für Konten, die den Ausstiegsprozess abgeschlossen haben. + +Es ist nicht möglich, manuell spezifische Mengen an ETH zur Auszahlung anzufordern. + + + + +Es wird empfohlen, dass Validatoren die Seite Staking Launchpad Withdrawals besuchen, auf der Sie weitere Details dazu finden, wie Sie Ihren Validator auf Auszahlungen vorbereiten können. Vorbereitung, Zeitpunkt der Ereignisse und weitere Details darüber, wie Auszahlungen funktionieren. + +Um Ihre Einrichtung zunächst auf einem Testnetz auszuprobieren, können Sie mit dem Goerli Testnet Staking Launchpad beginnen. + + + + +Nein. Sobald ein Validator ausgetreten ist und sein gesamtes Guthaben abgehoben wurde, werden alle zusätzlichen Einzahlungen auf diesen Validator automatisch während des nächsten Validator-Durchlaufs an die Auszahlungsadresse übertragen. Um ETH erneut zu staken, muss ein neuer Validator aktiviert werden. + + +## Weiterführende Informationen {#further-reading} + +- [Startplattform für Staking-Auszahlungen](https://launchpad.ethereum.org/withdrawals) +- [EIP-4895: Beacon-Kette implementiert Abhebungen als Operationen](https://eips.ethereum.org/EIPS/eip-4895) +- [Ethereum Cat Herders - Shanghai](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) +- [PEEPanEIP #94: Auszahlung von gestaktem ETH (Testing) mit Potuz & Hsiao-Wei Wang](https://www.youtube.com/watch?v=G8UstwmGtyE) +- [PEEPanEIP#68: EIP-4895: Beacon-Kette implementiert Abhebungen als Operationen mit Alex Stokes](https://www.youtube.com/watch?v=CcL9RJBljUs) +- [Verständnis der effektiven Bilanz des Validators](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/de/web3/index.md b/public/content/translations/de/web3/index.md similarity index 100% rename from src/content/translations/de/web3/index.md rename to public/content/translations/de/web3/index.md diff --git a/src/content/translations/de/web3/web2.png b/public/content/translations/de/web3/web2.png similarity index 100% rename from src/content/translations/de/web3/web2.png rename to public/content/translations/de/web3/web2.png diff --git a/src/content/translations/de/web3/web3.png b/public/content/translations/de/web3/web3.png similarity index 100% rename from src/content/translations/de/web3/web3.png rename to public/content/translations/de/web3/web3.png diff --git a/src/content/translations/de/zero-knowledge-proofs/index.md b/public/content/translations/de/zero-knowledge-proofs/index.md similarity index 100% rename from src/content/translations/de/zero-knowledge-proofs/index.md rename to public/content/translations/de/zero-knowledge-proofs/index.md diff --git a/src/content/translations/el/community/code-of-conduct/index.md b/public/content/translations/el/community/code-of-conduct/index.md similarity index 100% rename from src/content/translations/el/community/code-of-conduct/index.md rename to public/content/translations/el/community/code-of-conduct/index.md diff --git a/src/content/translations/el/community/events/index.md b/public/content/translations/el/community/events/index.md similarity index 100% rename from src/content/translations/el/community/events/index.md rename to public/content/translations/el/community/events/index.md diff --git a/src/content/translations/el/community/get-involved/index.md b/public/content/translations/el/community/get-involved/index.md similarity index 100% rename from src/content/translations/el/community/get-involved/index.md rename to public/content/translations/el/community/get-involved/index.md diff --git a/src/content/translations/el/community/grants/index.md b/public/content/translations/el/community/grants/index.md similarity index 100% rename from src/content/translations/el/community/grants/index.md rename to public/content/translations/el/community/grants/index.md diff --git a/src/content/translations/el/community/language-resources/index.md b/public/content/translations/el/community/language-resources/index.md similarity index 100% rename from src/content/translations/el/community/language-resources/index.md rename to public/content/translations/el/community/language-resources/index.md diff --git a/src/content/translations/el/community/online/index.md b/public/content/translations/el/community/online/index.md similarity index 100% rename from src/content/translations/el/community/online/index.md rename to public/content/translations/el/community/online/index.md diff --git a/src/content/translations/el/community/research/index.md b/public/content/translations/el/community/research/index.md similarity index 100% rename from src/content/translations/el/community/research/index.md rename to public/content/translations/el/community/research/index.md diff --git a/public/content/translations/el/community/support/index.md b/public/content/translations/el/community/support/index.md new file mode 100644 index 00000000000..4d49f9a9f12 --- /dev/null +++ b/public/content/translations/el/community/support/index.md @@ -0,0 +1,116 @@ +--- +title: Υποστήριξη Ethereum +description: Λάβετε υποστήριξη στο οικοσύστημα του Ethereum. +lang: el +--- + +# Υποστήριξη Ethereum {#support} + +## Επίσημη υποστήριξη του Ethereum {#official-support} + +Χρειάζεστε επίσημη υποστήριξη του Ethereum; Το πρώτο πράγμα που πρέπει να γνωρίζετε είναι ότι το Ethereum είναι αποκεντρωμένο. Αυτό σημαίνει ότι κανένας κεντρικός οργανισμός, οντότητα ή άτομο δεν κατέχει το Ethereum και γι' αυτό δεν υπάρχουν επίσημα κανάλια υποστήριξης. + +Η κατανόηση της αποκεντρωμένης φύσης του Ethereum είναι ζωτικής σημασίας, γιατί οποιοσδήποτε παρουσιάζεται ως επίσημη υποστήριξη για το Ethereum πιθανότατα προσπαθεί να σας εξαπατήσει! Η καλύτερη προστασία από απατεώνες είναι να εκπαιδευτείτε καλύτερα και να λάβετε σοβαρά υπόψη την ασφάλεια. + + + Ασφάλεια του Ethereum και πρόληψη κατά της απάτης + + + + Μάθετε τις βασικές αρχές του Ethereum + + +Παρά την έλλειψη επίσημης υποστήριξης, πολλές ομάδες, κοινότητες και έργα σε όλο το οικοσύστημα του Ethereum είναι πρόθυμοι να βοηθήσουν και μπορείτε να βρείτε πολλές χρήσιμες πληροφορίες και πόρους σε αυτήν τη σελίδα. Έχετε περισσότερες ερωτήσεις; Εγγραφείτε στο [ethereum.org Discord](/discord/) και θα προσπαθήσουμε να σας βοηθήσουμε. + +## Υποστήριξη πορτοφολιού {#wallet-support} + +Αντιμετωπίζετε πρόβλημα με το πορτοφόλι σας; Τα περισσότερα πορτοφόλια έχουν ειδικές ομάδες υποστήριξης που μπορούν να βοηθήσουν: + +- [MetaMask](https://metamask.zendesk.com/hc/) +- [Argent](https://support.argent.xyz/hc/) +- [MyEtherWallet](https://help.myetherwallet.com/) + +_Η παραπάνω λίστα δεν είναι ολοκληρωμένη. Χρειάζεστε βοήθεια υποστήριξης για συγκεκριμένο πορτοφόλι; Εγγραφείτε στο [ethereum.org discord](https://discord.gg/rZz26QWfCg) και θα προσπαθήσουμε να σας βοηθήσουμε._ + +Ενδιαφέρεστε για πορτοφόλι Ethereum; [Δείτε την πλήρη λίστα πορτοφολιών Ethereum](/wallets/find-wallet/). + +## Δημιουργία αποκεντρωμένων εφαρμογών {#building-support} + +Η υλοποίηση μπορεί να είναι δύσκολη. Δείτε παρακάτω ιστότοπους ανάπτυξης με έμπειρους προγραμματιστές Ethereum που μπορούν να σας βοηθήσουν. + +- [Alchemy University](https://university.alchemy.com/#starter_code) +- [CryptoDevs discord](https://discord.gg/Z9TA39m8Yu) +- [Ethereum StackExchange](https://ethereum.stackexchange.com/) +- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) +- [Web3 University](https://www.web3.university/) +- [LearnWeb3](https://discord.com/invite/learnweb3) + +Μπορείτε επίσης να βρείτε οδηγούς τεκμηρίωσης και ανάπτυξης στην ενότητα [Πόροι προγραμματιστών Ethereum](/developers/). + +### Εργαλεία {#dapp-tooling} + +Η ερώτησή σας αφορά σε συγκεκριμένο εργαλείο, έργο, ή βιβλιοθήκη; Τα περισσότερα έργα έχουν διακομιστές συνομιλίας ή φόρουμ αφιερωμένα στην υποστήριξή σας. + +Δείτε μερικά δημοφιλή παραδείγματα: + +- [Solidity](https://gitter.im/ethereum/solidity/) +- [ethers.js](https://discord.gg/6jyGVDK6Jx) +- [web3.js](https://discord.gg/GsABYQu4sC) +- [Hardhat](https://discord.gg/xtrMGhmbfZ) +- [Truffle](https://discord.gg/8uKcsccEYE) +- [Alchemy](http://alchemy.com/discord) +- [Tenderly](https://discord.gg/fBvDJYR) + +## Εκτέλεση κόμβου {#node-support} + +Αν εκτελείτε έναν κόμβο ή έναν επαληθευτή, δείτε παρακάτω μερικές κοινότητες που είναι αφιερωμένες να σας βοηθήσουν να ξεκινήσετε. + +- [EthStaker discord](https://discord.gg/ethstaker) +- [EthStaker reddit](https://www.reddit.com/r/ethstaker) + +Οι περισσότεροι από τους πελάτες του Ethereum έχουν επίσης ξεχωριστούς, δημόσιους χώρους, όπου μπορείτε να λάβετε υποστήριξη και να υποβάλλετε ερωτήσεις. + +### Λογισμικό πελάτη {#execution-clients} + +- [Geth](https://discord.gg/FqDzupGyYf) +- [Nethermind](https://discord.gg/YJx3pm8z5C) +- [Besu](https://discord.gg/p8djYngzKN) +- [Erigon](https://github.com/ledgerwatch/erigon/issues) + +### Προγράμματα συναίνεσης {#consensus-clients} + +- [Prysm](https://discord.gg/prysmaticlabs) +- [Nimbus](https://discord.gg/nSmEH3qgFv) +- [Lighthouse](https://discord.gg/cyAszAh) +- [Teku](https://discord.gg/7hPv2T6) +- [Lodestar](https://discord.gg/aMxzVcr) + +Μπορείτε επίσης να [μάθετε πώς να εκτελέσετε έναν κόμβο εδώ](/developers/docs/nodes-and-clients/run-a-node/). + +## Συχνές ερωτήσεις {#faq} + +### Έχω στείλει ETH σε λάθος πορτοφόλι {#wrong-wallet} + +Μια συναλλαγή που αποστέλλεται στο Ethereum είναι μη αναστρέψιμη. Δυστυχώς, εάν έχετε στείλει ETH σε λάθος πορτοφόλι, δεν υπάρχει τρόπος να ανακτήσετε αυτά τα χρήματα. Κανένας κεντρικός οργανισμός, οντότητα ή πρόσωπο δεν κατέχει το Ethereum, πράγμα που σημαίνει ότι κανείς δεν μπορεί να επέμβει στις συναλλαγές. Επομένως, είναι ζωτικής σημασίας να ελέγχετε πάντα τις συναλλαγές σας πριν τις ολοκληρώσετε. + +### Πώς μπορώ να διεκδικήσω το δώρο μου στο Ethereum; {#giveaway-scam} + +Τα δώρα στο Ethereum είναι απάτες που έχουν σχεδιαστεί για να κλέψουν τα ETH σας. Μη δελεάζεστε από προσφορές που φαίνονται πολύ καλές για να είναι αληθινές, εάν στείλετε ETH σε μια διεύθυνση προσφοράς δε θα λάβετε δώρο και δε θα μπορείτε να ανακτήσετε τα χρήματά σας. + +[Περισσότερα για την πρόληψη κατά της απάτης](/security/#common-scams) + +### Η συναλλαγή μου καθυστερεί {#stuck-transaction} + +Οι συναλλαγές στο Ethereum μερικές φορές μπορεί να καθυστερούν εάν έχετε υποβάλει χαμηλότερες κρατήσεις συναλλαγής από αυτή που απαιτείται λόγω της ζήτησης του δικτύου. Πολλά πορτοφόλια παρέχουν επιλογή για εκ νέου υποβολή της ίδιας συναλλαγής, με υψηλότερη χρέωση για την επίσπευσή της. Εναλλακτικά, μπορείτε να ακυρώσετε μια εκκρεμή συναλλαγή στέλνοντας μια συναλλαγή στη δική σας διεύθυνση και χρησιμοποιώντας το ίδιο «nonce» με την εκκρεμή συναλλαγή. + +[Πώς να επιταχύνετε ή να ακυρώσετε μια εκκρεμή συναλλαγή στο MetaMask](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) + +[Πώς να ακυρώσετε τις εκκρεμείς συναλλαγές Ethereum](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) + +### Πώς μπορώ να κρυπτορύξω Ethereum; {#mining-ethereum} + +Η κρυπτόρυξη στο Ethereum δεν είναι πλέον δυνατή. Η κρυπτόρυξη απενεργοποιήθηκε όταν το Ethereum πέρασε από την απόδειξη εργασίας στην απόδειξη συμμετοχής. Τώρα, αντί για κρυπτορύχους, το Ethereum έχει επικυρωτές. Οι επικυρωτές αποθηκεύουν το κεφάλαιό τους σε ETH και λαμβάνουν ανταμοιβές για την ασφάλεια του δικτύου. + +### Πώς να κάνετε αποθήκευση κεφαλαίου/επικύρωση; {#become-validator} + +Για να γίνετε επικυρωτής, πρέπει να αποθηκεύσετε 32 ETH στο συμβόλαιο κατάθεσης του Ethereum και να δημιουργήσετε έναν κόμβο επικύρωσης. Περισσότερες πληροφορίες είναι διαθέσιμες στη [σελίδα αποθήκευσης κεφαλαίου](/staking) και στην [πλατφόρμα εκκίνησης αποθήκευσης κεφαλαίου](https://launchpad.ethereum.org/). diff --git a/public/content/translations/el/dao/index.md b/public/content/translations/el/dao/index.md new file mode 100644 index 00000000000..14402a0f70e --- /dev/null +++ b/public/content/translations/el/dao/index.md @@ -0,0 +1,165 @@ +--- +title: Αποκεντρωμένοι Αυτόνομοι Οργανισμοί (DAO) +description: Μια επισκόπηση των DAO στο Ethereum +lang: el +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: Αναπαράσταση ενός DAO που ψηφίζει για μια πρόταση. +summaryPoint1: Κοινότητες αποτελούμενες από μέλη χωρίς κεντρική εξουσία. +summaryPoint2: Ένας ασφαλής τρόπος συνεργασίας μεταξύ αγνώστων στο διαδίκτυο. +summaryPoint3: Ένα ασφαλές μέρος συγκέντρωσης κεφαλαίων για συγκεκριμένο σκοπό. +--- + +## Τι είναι οι DAO; {#what-are-daos} + +Ένας DAO είναι μια οργάνωση που διαχειρίζεται συλλογικά, διοικούμενη στην κρυπτοαλυσίδα και εργάζεται προς μια κοινή αποστολή. + +Οι DAO μας επιτρέπουν να εργαζόμαστε με άλλους χρήστες σε όλο τον κόσμο χωρίς να εμπιστευόμαστε έναν καλοπροαίρετο ηγέτη για να διαχειριστούμε τα κεφάλαια ή τις επιχειρήσεις. Δεν υπάρχει διευθύνων σύμβουλος που να μπορεί να δαπανήσει χρήματα για μια ιδιοτροπία του ή οικονομικός σύμβουλος που να μπορεί να χειραγωγήσει τα λογιστικά βιβλία. Αντιθέτως, οι κανόνες με βάση την κρυπτοαλυσίδα ενσωματώνονται στον κώδικα και καθορίζουν τον τρόπο λειτουργίας του οργανισμού και της δαπάνης των κεφαλαίων. + +Υπάρχουν ενσωματωμένα θησαυροφυλάκια στα οποία κανείς δεν έχει έγκριση πρόσβασης χωρίς την άδεια της ομάδας. Οι αποφάσεις λαμβάνονται μετά από προτάσεις και ψηφοφορίες για να διασφαλιστεί ότι όλοι στον οργανισμό έχουν λόγο και όλα συμβαίνουν με διαφάνεια στην κρυπτοαλυσίδα. + +## Πού εξυπηρετούν οι οργανισμοί DAO; {#why-dao} + +Η έναρξη ενός οργανισμού με κάποιον που έχει συμμετοχή στη χρηματοδότηση και τα χρήματα, απαιτεί μεγάλη εμπιστοσύνη στους ανθρώπους με τους οποίους συνεργάζεστε. Αλλά είναι δύσκολο να εμπιστευτείς κάποιον με τον οποίο έχεις έρθει σε επαφή μόνο στο διαδίκτυο. Με τη χρήση των οργανισμών DAO δε χρειάζεται να εμπιστεύεστε κανέναν άλλον στην ομάδα, παρά μόνο τον κώδικα του DAO, ο οποίος είναι 100% διαφανής και επαληθεύσιμος από οποιονδήποτε. + +Αυτό ανοίγει πάρα πολλές νέες ευκαιρίες για παγκόσμια συνεργασία και συντονισμό. + +### Σύγκριση {#dao-comparison} + +| DAO | Ένας παραδοσιακός οργανισμός | +| -------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | +| Συνήθως επίπεδη και πλήρως εκδημοκρατισμένη. | Συνήθως ιεραρχικά. | +| Απαιτείται ψηφοφορία από τα μέλη για τυχόν αλλαγές που πρόκειται να υλοποιηθούν. | Ανάλογα με τη δομή, μπορεί να ζητηθούν αλλαγές από ένα μόνο μέρος ή να υπάρξει ψηφοφορία. | +| Η καταμέτρηση των ψήφων και η εφαρμογή του αποτελέσματος γίνεται αυτόματα χωρίς την ύπαρξη αξιόπιστου διαμεσολαβητή. | Εάν επιτρέπεται η ψηφοφορία, οι ψήφοι καταμετρώνται εντός της εταιρείας και το αποτέλεσμα της ψηφοφορίας διεκπεραιώνεται χειρόγραφα. | +| Οι προσφερόμενες υπηρεσίες διεκπεραιώνονται αυτόματα με αποκεντρωμένο τρόπο (π.χ. διανομή φιλανθρωπικών κεφαλαίων). | Απαιτεί ανθρώπινο χειρισμό ή κεντρικά ελεγχόμενη αυτοματοποίηση, ευάλωτη σε χειραγώγηση. | +| Όλες οι δραστηριότητες είναι διαφανείς και πλήρως δημόσιες. | Η δραστηριότητα είναι συνήθως ιδιωτική και μη δημοσιεύσιμη σε όλα τα ενδιαφερόμενα μέρη. | + +### Παραδείγματα οργανισμών DAO {#dao-examples} + +Για να γίνει πιο κατανοητό, παραθέτουμε μερικά παραδείγματα για το πώς θα μπορούσαν να χρησιμοποιηθούν οι οργανισμοί DAO: + +- Φιλανθρωπία – θα μπορούσατε να δεχτείτε δωρεές από οποιονδήποτε στον κόσμο και να ψηφίσετε τον τρόπο ανάθεσης. +- Συλλογική ιδιοκτησία - θα μπορούσατε να αγοράσετε φυσικά ή ψηφιακά περιουσιακά στοιχεία και τα μέλη μπορούν να ψηφίσουν για τον τρόπο χρήσης. +- Επιχειρήσεις και επιχορηγήσεις - θα μπορούσατε να δημιουργήσετε ένα ταμείο χρηματοδότησης που συγκεντρώνει επενδυτικά κεφάλαια και ψηφίζει για τις επιχειρήσεις που θα υποστηρίξει. Τα επιστρεφόμενα χρήματα μπορούν αργότερα να αναδιανεμηθούν μεταξύ των μελών των οργανισμών DAO. + +## Πώς λειτουργούν οι DAO; {#how-daos-work} + +Η ραχοκοκαλιά ενός DAO είναι το έξυπνο συμβόλαιο του, το οποίο ορίζει τους κανόνες του οργανισμού και κατέχει το θησαυροφυλάκιο της ομάδας. Μόλις το συμβόλαιο δημοσιευτεί στο Ethereum, κανείς δεν μπορεί να αλλάξει τους κανόνες εκτός από μια ψηφοφορία. Αν κάποιος προσπαθήσει να τροποποιήσει κάτι που δεν καλύπτεται από τους κανόνες και τη λογική του κώδικα, θα αποτύχει. Και επειδή ο θησαυρός του καθορίζεται επίσης από το έξυπνο συμβόλαιό του, σημαίνει ότι κανείς δεν μπορεί να σπαταλήσει τα χρήματα χωρίς την έγκριση της ομάδας. Αυτό σημαίνει ότι οι DAO δε χρειάζονται κεντρική εξουσία. Αντιθέτως, η ομάδα λαμβάνει συλλογικές αποφάσεις και οι πληρωμές εγκρίνονται αυτόματα μετά από ψηφοφορία. + +Αυτό είναι δυνατό επειδή τα έξυπνα συμβόλαια είναι απαραβίαστα μόλις δημοσιευτούν στο Ethereum. Δεν μπορείτε απλά να επεξεργαστείτε τον κώδικα (τους κανόνες των DAO) χωρίς να το προσέξει κανείς επειδή όλα είναι δημόσια. + + + Περισσότερα για τα έξυπνα συμβόλαια + + +## Το Ethereum και οι DAO {#ethereum-and-daos} + +Το Ethereum είναι το ιδανικό θεμέλιο για DAO για διάφορους λόγους: + +- Η συναίνεση του Ethereum διαδοθεί και καθιερωθεί αρκετά ώστε οι οργανισμοί να εμπιστεύονται το δίκτυο. +- Ο κώδικας του έξυπνου συμβολαίου δεν μπορεί να τροποποιηθεί από τη στιγμή που θα δημοσιευθεί, ακόμη και από τους ιδιοκτήτες του. Αυτό επιτρέπει στον DAO να λειτουργεί σύμφωνα με τους κανόνες με τους οποίους έχει προγραμματιστεί. +- Τα έξυπνα συμβόλαια μπορούν να στέλνουν/λαμβάνουν κεφάλαια. Χωρίς αυτά θα χρειαζόσασταν έναν έμπιστο ενδιάμεσο για να διαχειριστείτε τα κεφάλαια της ομάδας. +- Η κοινότητα του Ethereum έχει αποδειχθεί ότι είναι ποιο συνεργατική παρά ανταγωνιστική, επιτρέποντας την ταχεία εμφάνιση βέλτιστων πρακτικών και συστημάτων υποστήριξης. + +## Διακυβέρνηση DAO {#dao-governance} + +Υπάρχουν πολλές συζητήσεις όταν διαχειρίζεται ένας DAO, όπως το πώς λειτουργούν οι ψηφοφορίες και οι προτάσεις. + +### Αντιπροσωπεία {#governance-delegation} + +Αντιπροσωπεία είναι σαν η εκδοχή σε DAO της αντιπροσωπευτικής δημοκρατίας. Οι κάτοχοι των ψηφιακών στοιχείων εκχωρούν ψήφους σε χρήστες που ορίζουν τους εαυτούς τους και δεσμεύονται να διαχειρίζονται το πρωτόκολλο και να παραμένουν ενημερωμένοι. + +#### Ένα δημοφιλές παράδειγμα {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) – Οι κάτοχοι ENS μπορούν να εκχωρήσουν τις ψήφους τους σε ενεργά μέλη της κοινότητας για να τους εκπροσωπούν. + +### Αυτόματη διακυβέρνηση συναλλαγής {#governance-example} + +Σε πολλούς DAO, οι συναλλαγές θα εκτελούνται αυτόματα εάν επιβεβαιωθεί η απαρτία μελών. + +#### Ένα δημοφιλές παράδειγμα {#governance-example} + +[Nouns](https://nouns.wtf) – Στο Nouns DAO, μια συναλλαγή εκτελείται αυτόματα εφόσον επιτευχθεί απαρτία των ψήφων και επικράτηση αυτών με πλειοψηφία, όσο δεν υπάρχει βέτο από τους ιδρυτές. + +### Διακυβέρνηση πολλαπλών υπογραφών {#governance-example} + +Καθώς οι DAOs μπορεί να έχουν χιλιάδες μέλη που ψηφίζουν, τα κεφάλαια μπορούν να διατηρούνται σε ένα πορτοφόλι που μοιράζονται 5-20 ενεργά μέλη της κοινότητας που είναι αξιόπιστα και συνήθως doxxed (δημόσιες ταυτότητες γνωστές στην κοινότητα). Μετά την ψηφοφορία, οι εξουσιοδοτημένοι υπογράφοντες εκτελούν τη βούληση της κοινότητας. + +## Νομοθεσία DAO {#dao-laws} + +Το 1977, το Wyoming εφηύρε την LLC, η οποία προστατεύει τους επιχειρηματίες και περιορίζει την ευθύνη τους. Πιο πρόσφατα, πρωτοστάτησαν στο νόμο DAO που θεσπίζει το νομικό καθεστώς για τους DAO. Επί του παρόντος το Wyoming, το Vermont και οι Παρθένοι Νήσοι διαθέτουν DAO νόμους σε κάποια μορφή. + +### Ένα δημοφιλές παράδειγμα {#law-example} + +[CityDAO](https://citydao.io) – Η CityDAO χρησιμοποίησε το νόμο DAO του Wyoming για να αγοράσει 40 στρέμματα γης κοντά στο Εθνικό Πάρκο Yellowstone. + +## Μέλη DAO {#dao-membership} + +Υπάρχουν διάφοροι τύποι συμμετοχής μελών στους οργανισμούς DAO. Ο τύπος μέλους καθορίζει τον τρόπο συμμετοχής στις ψηφοφορίες αλλά και άλλα χαρακτηριστικά της συμμετοχής στον οργανισμό DAO. + +### Συμμετοχή βασισμένη σε ψηφιακό στοιχείο {#token-based-membership} + +Συνήθως χωρίς άδειες, ανάλογα με το ψηφιακό στοιχείο που χρησιμοποιείται. Κυρίως αυτά τα ψηφιακά στοιχεία διακυβέρνησης μπορούν να αποτελέσουν αντικείμενο ανταλλαγής χωρίς ανάγκη άδειας σε ένα αποκεντρωμένο ανταλλακτήριο. Άλλα πρέπει να αποκτώνται με την παροχή ρευστότητας ή με κάποια άλλη «απόδειξη εργασίας». Όπως και να χει, απλά κατέχοντας το ψηφιακό στοιχείο εγγυάται η πρόσβαση σε ψηφοφορίες. + +_Συνήθως χρησιμοποιείται για να καθοδηγούν ευρεία αποκεντρωμένα πρωτόκολλα και/ή ψηφιακά στοιχεία._ + +#### Ένα δημοφιλές παράδειγμα {#token-example} + +[MakerDAO](https://makerdao.com) – Το ψηφιακό στοιχείο του MakerDAO MKR είναι ευρέως διαθέσιμο σε αποκεντρωμένα ανταλλακτήρια και ο καθένας μπορεί να αγοράσει το δικαίωμα ψήφου στο μέλλον του πρωτοκόλλου Maker. + +### Συμμετοχή βασισμένη σε μετοχές {#share-based-membership} + +Οι DAO που βασίζονται σε μετοχές είναι περισσότερο κάτω από άδειες, αλλά ακόμα διατηρούνται ανοιχτοί. Κάθε υποψήφιο μέλος μπορεί να υποβάλει πρόταση για να ενταχθεί σε DAO, προσφέροντας συνήθως ένα συμβολικό ποσό ή εργασία. Ο αριθμός των μετοχών αντιπροσωπεύουν άμεσα τη δύναμη ψήφου και το ποσοστό ιδιοκτησίας. Τα μέλη μπορούν να αποχωρήσουν ανά πάσα στιγμή με το μερίδιο που τους αναλογεί, από το κοινό κεφάλαιο. + +_Συνήθως χρησιμοποιείται για πιο στενές και ανθρωποκεντρικές οργανώσεις, όπως τις φιλανθρωπικές οργανώσεις, τις συλλογικότητες των εργαζομένων και τους επενδυτικούς συλλόγους. Μπορεί επίσης να ρυθμίζει πρωτόκολλα και ψηφιακά στοιχεία._ + +#### Ένα δημοφιλές παράδειγμα {#share-example} + +[MolochDAO](http://molochdao.com/) – το MolochDAO επικεντρώνεται στη χρηματοδότηση έργων στο Ethereum. Απαιτούν μια πρόταση για την πρόσβαση μέλους, έτσι ώστε η ομάδα να μπορεί να αξιολογήσει αν υπάρχει η απαραίτητη εμπειρία και κεφάλαιο, για να προβεί όσο το δυνατόν σε ποιο σωστές αποφάσεις σχετικά με πιθανές χορηγίες. Δεν μπορείτε απλά να αγοράσετε πρόσβαση σε έναν DAO στην ανοικτή αγορά. + +### Συμμετοχή που βασίζεται στη δημοσιότητα {#reputation-based-membership} + +Η δημοσιότητα αποτελεί απόδειξη παρουσίας και παρέχει το δικαίωμα ψήφου στον DAO. Σε αντίθεση με τα μέλη σύμφωνα με τα ψηφιακά στοιχεία ή τις μετοχές τους, οι DAO που βασίζονται στη δημοσιότητα δε μεταβιβάζουν την ιδιοκτησία στους συμμετέχοντες. Η δημοσιότητα δεν μπορεί να αγοραστεί, να μεταβιβαστεί ή να εκχωρηθεί. Τα μέλη του DAO πρέπει να κερδίζουν τη φήμη τους μέσω της συμμετοχής τους. Η ψηφοφορία επί της αλυσίδας είναι χωρίς άδεια και τα μελλοντικά μέλη μπορούν ελεύθερα να υποβάλουν προτάσεις για να ενταχθούν σε DAO και να ζητήσουν να λάβουν δημοσιότητα και ψηφιακά στοιχεία ως ανταμοιβή σε αντάλλαγμα για τις συνεισφορές τους. + +_Συνήθως χρησιμοποιείται για την αποκεντρωμένη ανάπτυξη και διακυβέρνηση πρωτοκόλλων και dapp, αλλά είναι κατάλληλο και για ένα ποικίλο σύνολο οργανισμών, όπως φιλανθρωπικές οργανώσεις, συλλογικότητες εργαζομένων, επενδυτικούς συλλόγους κλπ._ + +#### Ένα δημοφιλές παράδειγμα {#reputation-example} + +[DXdao](https://DXdao.eth.link) – Το DXdao είναι ένα παγκόσμιο κυρίαρχο συλλογικό κατασκεύασμα και καθοδηγεί αποκεντρωμένα πρωτόκολλα και εφαρμογές από το 2019. Αξιολογεί τη διακυβέρνηση που βασίζεται στη δημοσιότητα και την ολογραφική συναίνεση για τον συντονισμό και τη διαχείριση των κεφαλαίων, πράγμα που σημαίνει ότι κανείς δεν μπορεί να αγοράσει την πορεία του για να επηρεάσει το μέλλον του. + +## Εγγραφή / έναρξη DAO {#join-start-a-dao} + +### Συμμετέχετε σε ένα DAO {#join-a-dao} + +- [Κοινότητα DAO στο Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [Λίστα DAOHaus για DAO](https://app.daohaus.club/explore) +- [Tally.xyz λίστα των DAO](https://www.tally.xyz) + +### Ξεκινήστε ένα DAO {#start-a-dao} + +- [Επίκληση ενός DAO με DAOHaus](https://app.daohaus.club/summon) +- [Ξεκινήστε Διακυβέρνηση DAO με το Tally](https://www.tally.xyz/add-a-dao) +- [Δημιουργία ενός DAO βασισμένου στο Aragon](https://aragon.org/product) +- [Ξεκινήστε μια αποικία](https://colony.io/) +- [Δημιουργήστε έναν DAO με την ολογραφική συναίνεση του DAOstack](https://alchemy.daostack.io/daos/create) + +## Περισσότερες πληροφορίες {#further-reading} + +### Άρθρα για DAO {#dao-articles} + +- [Τι είναι ένας DAO;](https://aragon.org/dao) – [Aragon](https://aragon.org/) +- [Το Εγχειρίδιο DAO](https://daohandbook.xyz) +- [Οίκος των DAO](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) +- [Τι είναι ένας DAO και τι αφορά;](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) +- [Πώς να ξεκινήσετε έναν DAO-Powered Digital Community](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) +- [Τι είναι ένας DAO;](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) +- [Τι είναι η ολογραφική συναίνεση;](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) +- [Οι DAO δεν είναι εταιρείες: όπου η αποκέντρωση σε αυτόνομους οργανισμούς έχει σημασία, από τον Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) +- [Οι DAO, DAC, DA και άλλοι: Ένας ατελής οδηγός ορολογίας](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Ιστολόγιο Ethereum](https://blog.ethereum.org) + +### Βίντεο {#videos} + +- [Τι είναι ένας DAO στα κρυπτονομίσματα;](https://youtu.be/KHm0uUPqmVE) +- [Μπορεί ένας DAO να χτίσει μια πόλη;](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/public/content/translations/el/decentralized-identity/index.md b/public/content/translations/el/decentralized-identity/index.md new file mode 100644 index 00000000000..672d64b7a02 --- /dev/null +++ b/public/content/translations/el/decentralized-identity/index.md @@ -0,0 +1,185 @@ +--- +title: Αποκεντρωμένη ταυτότητα +description: Αποκεντρωμένη ταυτότητα και η σημασία της +lang: el +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: /eth-gif-cat.png +summaryPoint1: Τα παραδοσιακά συστήματα ταυτότητας διαχειρίζονται κεντρικά τα στοιχεία και τον έλεγχο των αναγνωριστικών σας. +summaryPoint2: Η αποκεντρωμένη ταυτότητα καταργεί την ανάγκη ύπαρξης κεντρικών τρίτων μερών. +summaryPoint3: Χάρη στα κρυπτονομίσματα, οι χρήστες διαθέτουν εργαλεία έκδοσης, διατήρησης και ελέγχου των αναγνωριστικών τους και καθώς και της επικύρωσης. +--- + +Η ταυτότητα στηρίζει σχεδόν κάθε πτυχή της ζωής σας σήμερα. Η χρήση διαδικτυακών υπηρεσιών, το άνοιγμα τραπεζικού λογαριασμού, η ψηφοφορία στις εκλογές, η αγορά ακινήτων, η εξασφάλιση εργασίας—όλα αυτά απαιτούν απόδειξη της ταυτότητάς σας. Η χρήση διαδικτυακών υπηρεσιών, το άνοιγμα τραπεζικού λογαριασμού, η ψηφοφορία στις εκλογές, η αγορά ακινήτων, η εξασφάλιση εργασίας—όλα αυτά απαιτούν απόδειξη της ταυτότητάς σας. + +Ωστόσο, τα παραδοσιακά συστήματα διαχείρισης ταυτοποίησης βασίζονται εδώ και πολύ καιρό σε κεντρικούς μεσάζοντες που εκδίδουν, κατέχουν και ελέγχουν τα αναγνωριστικά και [ τις βεβαιώσεις σας](#what-are-attestations). Αυτό σημαίνει ότι δεν μπορείτε να ελέγξετε τις πληροφορίες που σχετίζονται με την ταυτότητά σας ή να αποφασίσετε ποιος έχει πρόσβαση σε πληροφορίες προσωπικής ταυτοποίησης (PII) και πόση πρόσβαση έχουν αυτά τα μέλη. + +Για να λύσουμε αυτά τα προβλήματα, έχουμε αποκεντρωμένα συστήματα ταυτότητας που είναι χτισμένα σε δημόσια blockchains όπως το Ethereum. Η αποκεντρωμένη ταυτότητα επιτρέπει στα ίδια τα άτομα να διαχειρίζονται τις πληροφορίες που σχετίζονται με την ταυτότητά τους. Με αποκεντρωμένες λύσεις ταυτότητας, _μπορείτε_ να δημιουργήσετε αναγνωριστικά και να διεκδικήσετε και να κρατήσετε τις βεβαιώσεις σας χωρίς να βασίζεστε σε κεντρικές αρχές, όπως παρόχους υπηρεσιών ή κυβερνήσεις. + +## Τι είναι η ταυτότητα; {#what-is-identity} + +Ταυτότητα σημαίνει η αίσθηση του εαυτού ενός ατόμου, που ορίζεται από μοναδικά χαρακτηριστικά. Η ταυτότητα αναφέρεται στο να είσαι ένα _άτομο _, δηλ. μια ξεχωριστή ανθρώπινη οντότητα. Η ταυτότητα θα μπορούσε επίσης να αναφέρεται σε άλλες μην ανθρώπινες οντότητες, όπως έναν οργανισμό ή μια αρχή. + +## Τι είναι τα αναγνωριστικά; {#what-are-identifiers} + +Το αναγνωριστικό είναι ένα κομμάτι πληροφορίας που ενεργεί ως δείκτης μιας συγκεκριμένης ταυτότητας ή ιδιότητας. Τα κοινά αναγνωριστικά περιλαμβάνουν: + +- Όνομα +- Αριθμός κοινωνικής ασφάλισης/αριθμός φορολογικού μητρώου +- Αριθμός κινητού +- Ημερομηνία και τόπος γέννησης +- Ψηφιακά διαπιστευτήρια, π.χ. διευθύνσεις email, ονόματα χρηστών, άβαταρ + +Αυτά τα παραδοσιακά παραδείγματα αναγνωριστικών εκδίδονται, διατηρούνται και ελέγχονται από κεντρικές αρχές. Χρειάζεστε άδεια από την κυβέρνησή σας για να αλλάξετε το όνομά σας ή και από μια πλατφόρμα κοινωνικών μέσων για να αλλάξετε το όνομα χρήστη σας. + +## Τι είναι οι βεβαιώσεις; {#what-are-attestations} + +Μια βεβαίωση είναι μια ισχυρισμός που διατυπώνεται από μια οντότητα για μια άλλη οντότητα. Εάν ζείτε στις Ηνωμένες Πολιτείες, η άδεια οδήγησης που σας έχει εκδοθεί από το Υπουργείο Μηχανοκίνητων Οχημάτων (μία οντότητα) βεβαιώνει ότι εσείς (μια άλλη οντότητα) επιτρέπεται νόμιμα να οδηγείτε αυτοκίνητο. + +Οι βεβαιώσεις διαφέρουν από τα αναγνωριστικά. Μια βεβαίωση _περιέχει_ αναγνωριστικά για την αναφορά μιας συγκεκριμένης ταυτότητας και προβάλλει έναν ισχυρισμό σχετικά με ένα χαρακτηριστικό που σχετίζεται με αυτήν την ταυτότητα. Έτσι, η άδεια οδήγησής σας έχει αναγνωριστικά (όνομα, ημερομηνία γέννησης, διεύθυνση) αλλά είναι και η βεβαίωση σχετικά με το νόμιμο δικαίωμα οδήγησης σας. + +### Τι είναι τα αποκεντρωμένα αναγνωριστικά; {#what-are-decentralized-identifiers} + +Τα παραδοσιακά αναγνωριστικά όπως το νόμιμο όνομα ή η διεύθυνση ηλεκτρονικού ταχυδρομείου σας, βασίζονται σε τρίτα μέρη—κυβερνήσεις και παρόχους ηλεκτρονικών διευθύνσεων. Τα αποκεντρωμένα αναγνωριστικά (DID) είναι διαφορετικά—δεν εκδίδονται, διαχειρίζονται ή ελέγχονται από καμία κεντρική οντότητα. + +Τα αποκεντρωμένα αναγνωριστικά εκδίδονται, διατηρούνται και ελέγχονται από άτομα. Ένας [λογαριασμός Ethereum](/developers/docs/accounts/) είναι ένα παράδειγμα αποκεντρωμένου αναγνωριστικού. Μπορείτε να δημιουργήσετε όσους λογαριασμούς θέλετε χωρίς άδεια από κανέναν και χωρίς να χρειάζεται να τους αποθηκεύσετε σε κεντρικό αρχείο. + +Τα αποκεντρωμένα αναγνωριστικά αποθηκεύονται σε διανέμομενα λογιστικά βιβλία (blockchains) ή δίκτυα peer-to-peer. Αυτό καθιστά τα DID [παγκοσμίως μοναδικά, επιλύσιμα με υψηλή διαθεσιμότητα και κρυπτογραφικά επαληθεύσιμα](https://w3c-ccg.github.io/did-primer/). Ένα αποκεντρωμένο αναγνωριστικό μπορεί να συσχετιστεί με διαφορετικές οντότητες, συμπεριλαμβανομένων ατόμων, οργανισμών ή κυβερνητικών ιδρυμάτων. + +## Τι καθιστά τα αποκεντρωμένα αναγνωριστικά υλοποιήσιμα; {#what-makes-decentralized-identifiers-possible} + +### 1. Υποδομή Δημόσιου Κλειδιού (PKI) {#public-key-infrastructure} + +Το Public-key infrastructure (PKI) είναι ένα μέτρο ασφάλειας πληροφοριών που δημιουργεί ένα [δημόσιο κλειδί](/glossary/#public-key) και [ ένα ιδιωτικό κλειδί](/glossary/#private-key) για μια οντότητα. Η κρυπτογραφία δημόσιου κλειδιού χρησιμοποιείται σε δίκτυα blockchain για τον έλεγχο ταυτότητας των χρηστών και την απόδειξη της ιδιοκτησίας των ψηφιακών τους στοιχείων. + +Ορισμένα αποκεντρωμένα αναγνωριστικά, όπως ένας λογαριασμός Ethereum, διαθέτουν δημόσια και ιδιωτικά κλειδιά. Το δημόσιο κλειδί προσδιορίζει τον διαχειριστή του λογαριασμού, ενώ τα ιδιωτικά κλειδιά μπορούν να υπογράψουν και να αποκρυπτογραφήσουν μηνύματα για αυτόν τον λογαριασμό. Το PKI παρέχει αποδείξεις που απαιτούνται για τον έλεγχο ταυτότητας οντοτήτων και την αποτροπή πλαστοπροσωπίας και χρήσης πλαστών ταυτοτήτων, χρησιμοποιώντας τις [κρυπτογραφημένες υπογραφές](https://andersbrownworth.com/blockchain/public-private-keys/) για την επαλήθευση όλων των ενεργειών. + +### 2. Αποκεντρωμένα συστήματα δεδομένων {#decentralized-datastores} + +Μία blockchain χρησιμεύει ως ένα μητρώο δεδομένων που μπορεί να επαληθευτεί: δηλαδή ένα ανοιχτό, αξιόπιστο και αποκεντρωμένο αποθετήριο πληροφοριών. Η ύπαρξη δημόσιων blockchain εξαλείφει την ανάγκη αποθήκευσης αναγνωριστικών σε κεντρικά μητρώα. + +Εάν κάποιος χρειάζεται να επιβεβαιώσει την εγκυρότητα ενός αποκεντρωμένου αναγνωριστικού, μπορεί να αναζητήσει το σχετικό δημόσιο κλειδί στο blockchain. Αυτό διαφέρει από τα παραδοσιακά αναγνωριστικά που απαιτούν έλεγχο ταυτότητας από τρίτους. + +## Πώς τα αποκεντρωμένα αναγνωριστικά και οι βεβαιώσεις επιτρέπουν την αποκεντρωμένη ταυτότητα; {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} + +Η αποκεντρωμένη ταυτότητα είναι η ιδέα ότι οι πληροφορίες που σχετίζονται με την ταυτότητα πρέπει να είναι αυτοελεγχόμενες, απόρρητες και φορητές, με τα αποκεντρωμένα αναγνωριστικά και τις βεβαιώσεις να είναι τα κύρια δομικά τους στοιχεία. + +Στο πλαίσιο της αποκεντρωμένης ταυτότητας, οι βεβαιώσεις (επίσης γνωστές ως [Επαληθεύσιμα διαπιστευτήρια](https://www.w3.org/TR/vc-data-model/)) είναι στεγανές, κρυπτογραφικά επαληθεύσιμα από όλους. Κάθε βεβαίωση ή επαληθεύσιμο διαπιστευτήριο που εκδίδει μια οντότητα (π.χ. ένας οργανισμός) σχετίζεται με το DID της. + +Επειδή τα DID αποθηκεύονται στο blockchain, οποιοσδήποτε μπορεί να επαληθεύσει την εγκυρότητα μιας βεβαίωσης ελέγχοντας το DID του εκδότη στο Ethereum. Ουσιαστικά, το blockchain του Ethereum λειτουργεί σαν ένας παγκόσμιος κατάλογος που επιτρέπει την επαλήθευση των DID που σχετίζονται με συγκεκριμένες οντότητες. + +Τα αποκεντρωμένα αναγνωριστικά είναι ο λόγος που οι βεβαιώσεις είναι αυτοελεγχόμενες και επαληθεύσιμες. Ακόμα και αν ο εκδότης δεν υπάρχει πλέον, ο κάτοχος έχει πάντα την απόδειξη της προέλευσης και της εγκυρότητας της βεβαίωσης. + +Τα αποκεντρωμένα αναγνωριστικά είναι επίσης ζωτικής σημασίας για την προστασία του απορρήτου των προσωπικών πληροφοριών, μέσω της αποκεντρωμένης ταυτότητας. Για παράδειγμα, εάν ένα άτομο υποβάλει αποδεικτικό βεβαίωσης (άδεια οδήγησης), το μέρος επαλήθευσης δε χρειάζεται να ελέγξει την εγκυρότητα των πληροφοριών στο αποδεικτικό. Αντίθετα, ο επαληθευτής χρειάζεται μόνο κρυπτογραφημένες εγγυήσεις για τη γνησιότητα της βεβαίωσης και την ταυτότητα του οργανισμού που εκδίδει για να καθορίσει εάν η απόδειξη είναι έγκυρη. + +## Τύποι βεβαιώσεων αποκεντρωμένης ταυτότητας {#types-of-attestations-in-decentralized-identity} + +Ο τρόπος με τον οποίο αποθηκεύονται και ανακτώνται οι πληροφορίες βεβαίωσης σε ένα οικοσύστημα ταυτότητας που βασίζεται στο Ethereum, διαφέρει από την παραδοσιακή διαχείριση ταυτότητας. Ακολουθεί μια επισκόπηση διαφορετικών προσεγγίσεων για την έκδοση, την αποθήκευση και την επαλήθευση βεβαιώσεων σε αποκεντρωμένα συστήματα ταυτότητας: + +### Βεβαιώσεις εκτός αλυσίδας {#off-chain-attestations} + +Μια ανησυχία σχετικά με την αποθήκευση βεβαιώσεων στην αλυσίδα είναι ότι μπορεί να περιέχουν πληροφορίες που οι χρήστες θέλουν να διατηρήσουν ιδιωτικά. Ο δημόσιος χαρακτήρας του blockchain Ethereum καθιστά μη ελκυστική την αποθήκευση τέτοιων βεβαιώσεων. + +Η λύση είναι η έκδοση βεβαιώσεων, που τηρούνται από χρήστες εκτός αλυσίδας σε ψηφιακά πορτοφόλια, αλλά υπογεγραμμένες με το DID του εκδότη που είναι αποθηκευμένο στην αλυσίδα. Αυτές οι βεβαιώσεις κωδικοποιούνται ως [JSON Web Tokens](https://en.wikipedia.org/wiki/JSON_Web_Token) και περιέχουν την ψηφιακή υπογραφή του εκδότη, η οποία επιτρέπει την εύκολη επαλήθευση πληροφοριών εκτός αλυσίδας. + +Ακολουθεί ένα υποθετικό σενάριο που εξηγεί τις βεβαιώσεις εκτός αλυσίδας: + +1. Ένα πανεπιστήμιο (ο εκδότης) δημιουργεί μια βεβαίωση (ψηφιακό ακαδημαϊκό πιστοποιητικό), υπογράφει με τα κλειδιά του και την εκδίδει για τον Μπομπ (τον κάτοχο της ταυτότητας). + +2. Ο Μπομπ κάνει αίτηση για δουλειά και θέλει να αποδείξει τα ακαδημαϊκά του προσόντα σε έναν εργοδότη, γι' αυτό μοιράζεται τη βεβαίωση από το κινητό του πορτοφόλι. Η εταιρεία (ο επαληθευτής) μπορεί στη συνέχεια να επιβεβαιώσει την εγκυρότητα της βεβαίωσης ελέγχοντας το DID του εκδότη (δηλαδή το δημόσιο κλειδί του στο Ethereum). + +### Βεβαιώσεις εκτός αλυσίδας με μόνιμη πρόσβαση {#offchain-attestations-with-persistent-access} + +Σύμφωνα με αυτήν τη ρύθμιση, οι βεβαιώσεις μετατρέπονται σε αρχεία JSON και αποθηκεύονται εκτός αλυσίδας (ιδανικά σε μια πλατφόρμα [αποκεντρωμένης αποθήκευσης cloud](/developers/docs/storage/), όπως το IPFS ή το Swarm). Ωστόσο, ένα [αναγνωριστικό](/glossary/#hash) του αρχείου JSON αποθηκεύεται στην αλυσίδα και συνδέεται με ένα DID μέσω ενός μητρώου σε αυτή. Το σχετικό DID μπορεί να είναι είτε του εκδότη της βεβαίωσης είτε του παραλήπτη. + +Αυτή η προσέγγιση επιτρέπει στις βεβαιώσεις να αποκτήσουν διάρκεια με βάση το blockchain, διατηρώντας παράλληλα τις πληροφορίες των αξιώσεων κρυπτογραφημένες και επαληθεύσιμες. Επιτρέπει επίσης την επιλεκτική αποκάλυψη, καθώς ο κάτοχος του ιδιωτικού κλειδιού μπορεί να αποκρυπτογραφήσει τις πληροφορίες. + +### Βεβαιώσεις επί της αλυσίδας {#onchain-attestations} + +Οι βεβαιώσεις επί της αλυσίδας πραγματοποιούνται στα [έξυπνα συμβόλαια](/developers/docs/smart-contracts/) στο blockchain του Ethereum. Το έξυπνο συμβόλαιο (που λειτουργεί ως μητρώο) θα αντιστοιχίσει μια βεβαίωση σε ένα αντίστοιχο αποκεντρωμένο αναγνωριστικό στην αλυσίδα (ένα δημόσιο κλειδί). + +Ακολουθεί ένα παράδειγμα για να δείτε πώς οι βεβαιώσεις στην αλυσίδα λειτουργούν στην πράξη: + +1. Μια εταιρεία (XYZ Corp) σχεδιάζει να πουλήσει μετοχές ιδιοκτησίας χρησιμοποιώντας ένα έξυπνο συμβόλαιο, αλλά θέλει μόνο αγοραστές που έχουν ολοκληρώσει έναν έλεγχο. + +2. Η XYZ Corp μπορεί να ζητήσει από την εταιρεία να πραγματοποιεί ελέγχους ζητημάτων για την έκδοση πιστοποιήσεων επί της αλυσίδας στο Ethereum. Αυτή η βεβαίωση πιστοποιεί ότι ένα άτομο έχει περάσει τον έλεγχο χωρίς να αποκαλύψει τα προσωπικά στοιχεία του. + +3. Το έξυπνο συμβόλαιο της πώλησης μετοχών μπορεί να ελέγξει το συμβόλαιο μητρώου για τις ταυτότητες των αγοραστών που έχουν ελεγχθεί, καθιστώντας δυνατό να προσδιορίσει ποιος επιτρέπεται να αγοράσει μετοχές ή όχι. + +### Προσωπικά ψηφιακά στοιχεία και ταυτότητα {#soulbound} + +Τα [προσωπικά ψηφιακά στοιχεία](https://vitalik.ca/general/2022/01/26/soulbound.html) (μη μεταβιβάσιμα NFT) θα μπορούσαν να χρησιμοποιηθούν για τη συλλογή μοναδικών πληροφοριών για ένα συγκεκριμένο πορτοφόλι. Αυτό δημιουργεί αποτελεσματικά μια μοναδική ταυτότητα επί της αλυσίδας που συνδέεται με μια συγκεκριμένη διεύθυνση Ethereum που θα μπορούσε να περιλαμβάνει ψηφιακά στοιχεία που αντιπροσωπεύουν επιτεύγματα (π.χ. ολοκλήρωση κάποιου συγκεκριμένου διαδικτυακού μαθήματος ή μιας βαθμολογίας σε ένα παιχνίδι) ή συμμετοχή στην κοινότητα. + +## Πλεονεκτήματα της αποκεντρωμένης ταυτότητας {#benefits-of-decentralized-identity} + +1. Η αποκεντρωμένη ταυτότητα αυξάνει τον ατομικό έλεγχο των πληροφοριών αναγνώρισης. Τα αποκεντρωμένα αναγνωριστικά και οι βεβαιώσεις μπορούν να επαληθευτούν χωρίς να βασίζεστε σε κεντρικές αρχές και υπηρεσίες τρίτων. + +2. Οι αποκεντρωμένες λύσεις ταυτότητας διευκολύνουν μια αξιόπιστη, απρόσκοπτη και προστατευτική μέθοδο για την επαλήθευση και τη διαχείριση της ταυτότητας χρήστη. + +3. Η αποκεντρωμένη ταυτότητα αξιοποιεί την τεχνολογία blockchain, η οποία δημιουργεί εμπιστοσύνη μεταξύ των διαφορετικών μερών και παρέχει κρυπτογραφημένες εγγυήσεις για την απόδειξη της εγκυρότητας των βεβαιώσεων. + +4. Η αποκεντρωμένη ταυτότητα καθιστά τα δεδομένα ταυτότητας φορητά. Οι χρήστες αποθηκεύουν τις βεβαιώσεις και τα αναγνωριστικά στο πορτοφόλι του τηλεφώνου τους και μπορούν να τα μοιραστούν με οποιονδήποτε επιλέξουν. Τα αποκεντρωμένα αναγνωριστικά και οι βεβαιώσεις δεν είναι κλειδωμένα στη βάση δεδομένων του οργανισμού έκδοσης. + +5. Η αποκεντρωμένη ταυτότητα θα πρέπει να λειτουργεί καλά με τις αναδυόμενες τεχνολογίες μηδενικής γνώσης που θα επιτρέψουν στα άτομα να αποδείξουν ότι κατέχουν ή έχουν κάνει κάτι χωρίς να αποκαλύπτουν τι είναι αυτό. Αυτό θα μπορούσε να γίνει ένας ισχυρός τρόπος για να συνδυαστεί η εμπιστοσύνη και το απόρρητο για εφαρμογές όπως η ψηφοφορία. + +6. Η αποκεντρωμένη ταυτότητα επιτρέπει στους μηχανισμούς anti-Sybil να αναγνωρίζουν πότε ένας μεμονωμένος άνθρωπος προσποιείται ότι είναι πολλοί άνθρωποι για να παίξει ή να στείλει κακόβουλο περιεχόμενο σε κάποιο σύστημα. + +## Χρήσεις αποκεντρωμένης ταυτότητας {#decentralized-identity-use-cases} + +Η αποκεντρωμένη ταυτότητα έχει πολλές περιπτώσεις χρήσης όπως: + +### 1. Γενική σύνδεση {#universal-dapp-logins} + +Η αποκεντρωμένη ταυτότητα μπορεί να βοηθήσει στην αντικατάσταση των συνδέσεων που βασίζονται σε κωδικό πρόσβασης με [αποκεντρωμένο έλεγχο ταυτότητας](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). Οι πάροχοι υπηρεσιών μπορούν να εκδίδουν βεβαιώσεις στους χρήστες, οι οποίες μπορούν να αποθηκευτούν σε ένα πορτοφόλι Ethereum. Ένα παράδειγμα βεβαίωσης θα ήταν ένα [NFT](/nft/) που παρέχει στον κάτοχο πρόσβαση σε μια διαδικτυακή κοινότητα. + +Μια λειτουργία [Σύνδεση με Ethereum](https://login.xyz/) θα επέτρεπε στους διακομιστές να επιβεβαιώσουν τον λογαριασμό Ethereum του χρήστη και να ανακτήσουν την απαιτούμενη βεβαίωση από τη διεύθυνση του λογαριασμού τους. Αυτό σημαίνει ότι οι χρήστες μπορούν να έχουν πρόσβαση σε πλατφόρμες και ιστότοπους χωρίς να χρειάζεται να απομνημονεύουν μεγάλους κωδικούς πρόσβασης βελτιώνοντας τη διαδικτυακή εμπειρία. + +### 2. Πιστοποίηση KYC {#kyc-authentication} + +Η χρήση πολλών διαδικτυακών υπηρεσιών απαιτεί από τα άτομα να παρέχουν πιστοποιήσεις και διαπιστευτήρια, όπως άδεια οδήγησης ή διαβατήριο. Ωστόσο, αυτή η προσέγγιση είναι προβληματική επειδή οι ιδιωτικές πληροφορίες χρήστη, μπορεί να παραβιαστούν και οι πάροχοι υπηρεσιών δεν μπορούν να επαληθεύσουν τη γνησιότητα της πιστοποίησης. + +Η αποκεντρωμένη ταυτότητα επιτρέπει στις εταιρείες να παρακάμπτουν τις συμβατικές διαδικασίες [Know-Your-Customer (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) και να ελέγχουν την ταυτότητα των χρηστών μέσω επαληθεύσιμων διαπιστευτηρίων. Αυτό μειώνει το κόστος διαχείρισης ταυτότητας και αποτρέπει τη χρήση πλαστών εγγράφων. + +### 3. Ψηφοφορίες και διαδικτυακές κοινότητες {#voting-and-online-communities} + +Η διαδικτυακή ψηφοφορία και τα μέσα κοινωνικής δικτύωσης είναι δύο νέες εφαρμογές για αποκεντρωμένη ταυτότητα. Τα διαδικτυακά συστήματα ψηφοφορίας είναι επιρρεπή σε χειραγώγηση, ειδικά εάν κακόβουλοι παράγοντες δημιουργούν ψευδείς ταυτότητες για να ψηφίσουν. Ζητώντας από άτομα να παρουσιάσουν βεβαιώσεις on-chain μπορεί να βελτιώσει την ακεραιότητα των διαδικτυακών διαδικασιών ψηφοφορίας. + +Η αποκεντρωμένη ταυτότητα μπορεί να βοηθήσει στη δημιουργία διαδικτυακών κοινοτήτων χωρίς ψεύτικους λογαριασμούς. Για παράδειγμα, κάθε χρήστης μπορεί να χρειαστεί να πιστοποιήσει την ταυτότητά του χρησιμοποιώντας ένα σύστημα ταυτότητας on-chain, όπως η υπηρεσία ονομάτων Ethereum, μειώνοντας την πιθανότητα από ρομπότ. + +### 4. Προστασία Anti-Sybil {#sybil-protection} + +Οι επιθέσεις Sybil αναφέρονται σε μεμονωμένους ανθρώπους που ξεγελούν ένα σύστημα ώστε να πιστεύουν ότι είναι πολλά άτομα για να αυξήσουν την επιρροή τους. Οι [εφαρμογές παροχής επιχορηγήσεων](https://gitcoin.co/grants/) που χρησιμοποιούν [ την τετραγωνική ψηφοφορία](https://www.radicalxchange.org/concepts/plural-voting/) είναι ευάλωτα σε αυτές τις επιθέσεις Sybil, επειδή η αξία μιας επιχορήγησης αυξάνεται όταν περισσότερα άτομα την ψηφίζουν, παροτρύνοντας τους χρήστες να μοιράσουν τις συνεισφορές τους σε πολλές ταυτότητες. Οι αποκεντρωμένες ταυτότητες βοηθούν να αποφευχθεί κάτι τέτοιο, αυξάνοντας το βάρος σε κάθε συμμετέχοντα να αποδείξει ότι είναι πραγματικά άνθρωπος, αν και συχνά χωρίς να χρειάζεται να αποκαλύψει συγκεκριμένες προσωπικές πληροφορίες. + +## Χρήση αποκεντρωμένης ταυτότητας {#use-decentralized-identity} + +Υπάρχουν πολλά φιλόδοξα έργα που χρησιμοποιούν το Ethereum ως βάση για αποκεντρωμένες λύσεις ταυτότητας: + +- **[Υπηρεσία ονόματος Ethereum (ENS)](https://ens.domains/)** - _ Ένα αποκεντρωμένο σύστημα ονοματοδοσίας για αναγνωριστικά εντός αλυσίδας, αναγνώσιμα από μηχανή, όπως διευθύνσεις πορτοφολιού Ethereum, κατακερματισμοί περιεχομένου και μεταδεδομένα._ +- **[SpruceID](https://www.spruceid.com/)** - _Ένα έργο για αποκεντρωμένη ταυτότητα που επιτρέπει στους χρήστες να ελέγχουν την ψηφιακή ταυτότητα με λογαριασμούς Ethereum και προφίλ ENS αντί να βασίζονται σε υπηρεσίες τρίτων._ +- **[Υπηρεσία Επικύρωσης Ethereum (EAS)](https://attest.sh/)** - _Ένα αποκεντρωμένο ledger/πρωτόκολλο για την κατασκευή βεβαιώσεων επί ή εκτός της αλυσίδας για οτιδήποτε._ +- **[Απόδειξη ότι είσαι Άνθρωπος](https://www.proofofhumanity.id)** - _Η απόδειξη ότι είσαι Άνθρωπος (ή PoH) είναι ένα κοινωνικό σύστημα επαλήθευσης ταυτότητας που βασίζεται στο Ethereum._ +- **[BrightID](https://www.brightid.org/)** - _Αποκεντρωμένο, δίκτυο κοινωνικής ταυτότητας ανοιχτού κώδικα που επιδιώκει να μεταρρυθμίσει την επαλήθευση ταυτότητας μέσω της δημιουργίας και ανάλυσης ενός κοινωνικού γραφήματος._ +- **[Διαβατήριο απόδειξης προσωπικότητας](https://proofofpersonhood.com/)** - _Ένας αποκεντρωμένος φορέας συγκέντρωσης ψηφιακών ταυτοτήτων._ + +## Περισσότερες πληροφορίες {#further-reading} + +### Άρθρα {#articles} + +- [Περιπτώσεις χρήσης Blockchain: Blockchain στην ψηφιακή ταυτότητα](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ +- [Τι είναι το Ethereum ERC725; Ανεξάρτητη διαχείριση ταυτότητας στο Blockchain](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Sam Town_ +- [Πώς το Blockchain θα μπορούσε να λύσει το πρόβλημα της ψηφιακής ταυτότητας](https://time.com/6142810/proof-of-humanity/) — _Andrew R. Τσόου_ +- [Τι είναι η αποκεντρωμένη ταυτότητα και γιατί πρέπει να σας ενδιαφέρει;](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ + +### Βίντεο {#videos} + +- [Αποκεντρωμένη ταυτότητα (Bonus Livestream Session)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Ένα υπέροχο επεξηγητικό βίντεο για την αποκεντρωμένη ταυτότητα από τον Ανδρέα Αντωνόπουλο_ +- [Συνδεθείτε με το Ethereum και την αποκεντρωμένη ταυτότητα με Ceramic, IDX, React και 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _Οδηγός YouTube σχετικά με τη δημιουργία ενός συστήματος διαχείρισης ταυτότητας για τη δημιουργία, την ανάγνωση και την ενημέρωση του προφίλ ενός χρήστη χρησιμοποιώντας το πορτοφόλι του Ethereum από τον Nader Dabit_ +- [BrightID - Αποκεντρωμένη ταυτότητα στο Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _Επεισόδιο podcast χωρίς τράπεζα που συζητά το BrightID, μια αποκεντρωμένη λύση ταυτότητας για το Ethereum_ +- [Το Διαδίκτυο εκτός αλυσίδας: Αποκεντρωμένη ταυτότητα & Επαληθεύσιμα διαπιστευτήρια](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — Παρουσίαση EthDenver 2022 από την Evin McMullen + +### Κοινότητες {#communities} + +- [ERC-725 Alliance στο GitHub](https://github.com/erc725alliance) — _Υποστηρικτές του προτύπου ERC725 για τη διαχείριση ταυτότητας στο blockchain Ethereum_ +- [Διακομιστής SpruceID Discord](https://discord.com/invite/Sf9tSFzrnt) — _Κοινότητα για λάτρεις και προγραμματιστές που εργάζονται με τον τρόπο Σύνδεσης στο Ethereum_ +- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Μια κοινότητα προγραμματιστών που συμβάλλουν στη δημιουργία ενός πλαισίου για επαληθεύσιμα δεδομένα για εφαρμογές_ diff --git a/public/content/translations/el/defi/index.md b/public/content/translations/el/defi/index.md new file mode 100644 index 00000000000..f05cadbc84c --- /dev/null +++ b/public/content/translations/el/defi/index.md @@ -0,0 +1,352 @@ +--- +title: Αποκεντρωμένη τραπεζική (DeFi) +description: Μια επισκόπηση της DeFi στο Ethereum +lang: el +template: use-cases +emoji: ":money_with_wings:" +image: /use-cases/defi.png +alt: Το λογότυπο Eth κατασκευασμένο από τούβλα lego. +sidebarDepth: 2 +summaryPoint1: Μια παγκόσμια, ανοικτή εναλλακτική λύση στο τρέχον χρηματοπιστωτικό σύστημα. +summaryPoint2: Προϊόντα που σας επιτρέπουν να δανειστείτε, να αποθηκεύσετε, να επενδύσετε, να ανταλλάξετε και πολλά άλλα. +summaryPoint3: Βασίζεται σε τεχνολογία ανοιχτού κώδικα με την οποία ο καθένας μπορεί να προγραμματίσει. +--- + +Η DeFi είναι ένα ανοικτό, παγκόσμιο οικονομικό σύστημα που δημιουργήθηκε στην εποχή του διαδικτύου, μια εναλλακτική λύση σε ένα σύστημα που είναι αδιαφανές, αυστηρά ελεγχόμενο και συντηρείται εδώ και δεκαετίες από ξεπερασμένες υποδομές και διαδικασίες. Σας δίνει τη δυνατότητα να ελέγχετε και να παρακολουθείτε τα χρήματά σας. Σας παρέχει πρόσβαση στις παγκόσμιες αγορές καθώς και σε εναλλακτικές λύσεις στο τοπικό νόμισμά σας ή σε τραπεζικές επιλογές. Τα DeFi προϊόντα παρέχουν οικονομικές υπηρεσίες σε οποιοδήποτε διαθέτει σύνδεση στο διαδίκτυο. Οι υπηρεσίες αυτές ανήκουν και συντηρούνται κυρίως από τους χρήστες του. Μέχρι στιγμής κρυπτονομίσματα αξίας δεκάδων δισεκατομμυρίων δολαρίων διοχετεύονται διαμέσου των DeFi εφαρμογών και η εισροή τους αυξάνεται καθημερινά. + +## Τι είναι η DeFi; {#what-is-defi} + +H DeFi είναι ένας γενικός όρος για οικονομικά προϊόντα και υπηρεσίες που είναι προσβάσιμες σε οποιονδήποτε μπορεί να χρησιμοποιήσει το Ethereum, οποιονδήποτε με σύνδεση στο διαδίκτυο. Με τη DeFi, οι αγορές είναι πάντα ανοικτές και δεν υπάρχουν κεντρικές αρχές που να μπορούν να εμποδίσουν τις πληρωμές σας ή να σας απαγορεύσουν την πρόσβαση σε οτιδήποτε. Οι υπηρεσίες, που προηγουμένως ήταν αργές και με τη πιθανότητα ανθρώπινου σφάλματος, πλέον είναι αυτόματες, ασφαλέστερες και λειτουργούν με κώδικα που ο καθένας μπορεί να ελέγξει και να αξιολογήσει. + +Υπάρχει μια αναπτυσσόμενη κρυπτοοικονομία, όπου μπορείτε να δανείσετε, να δανειστείτε, μακροπρόθεσμα ή βραχυπρόθεσμα, να κερδίστε τόκους και πολλά άλλα. Όσοι Αργεντίνοι είναι γνώστες των κρυπτονομισμάτων έχουν χρησιμοποιήσει τη DeFi για να αποφύγουν τον υπερβολικό πληθωρισμό. Κάποιες εταιρίες έχουν αρχίσει να μεταφέρουν τον μισθό των υπαλλήλων τους άμεσα. Μερικοί έχουν λάβει και έχουν εξοφλήσει δάνεια αξίας εκατομμυρίων δολαρίων χωρίς να είναι απαραίτητη οποιαδήποτε ταυτοποίηση. + + + +## Αποκεντρωμένη ή Παραδοσιακή Τραπεζική {#defi-vs-tradfi} + +Ένας από τους καλύτερους τρόπους για να δούμε την προοπτική της DeFi είναι να κατανοήσουμε τα προβλήματα που υπάρχουν σήμερα. + +- Ορισμένοι δεν έχουν πρόσβαση ώστε να αποκτήσουν τραπεζικό λογαριασμό ή να κάνουν χρήση χρηματοοικονομικών υπηρεσιών. +- Η έλλειψη πρόσβασης σε χρηματοοικονομικές υπηρεσίες μπορεί να εμποδίσει τους ανθρώπους να βρουν εργασία. +- Οι χρηματοοικονομικές υπηρεσίες μπορούν να παρεμποδίσουν τις πληρωμές σας. +- Τα προσωπικά σας δεδομένα μπορούν να χρησιμοποιηθούν από τις χρηματοοικονομικές υπηρεσίες. +- Οι κυβερνήσεις και τα κεντρικά ιδρύματα έχουν την δυνατότητα να κλείσουν τις αγορές κατα βούληση. +- Οι ώρες συναλλαγών συχνά περιορίζονται στις εργάσιμες ώρες της συγκεκριμένης χρονικής ζώνης. +- Οι μεταφορές χρημάτων μπορεί να χρειαστούν αρκετές ημέρες λόγω εσωτερικών διαδικασιών από υπαλλήλους. +- Οι χρηματοοικονομικές υπηρεσίες κρατούν προμήθειες, επειδή οι ενδιάμεσες υπηρεσίες ζητούν το οικονομικό μερίδιό τους. + +### Σύγκριση {#defi-comparison} + +| DeFi | Παραδοσιακή Τραπεζική | +| ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Διατηρείτε οι ίδιοι τα χρήματά σας. | Τα χρήματά σας κατέχονται από εταιρείες. | +| Ελέγχετε πού στέλνονται τα χρήματά σας και πώς δαπανώνται. | Πρέπει να εμπιστεύεστε τις εταιρείες να μην κακοδιαχειρίζονται τα χρήματά σας, όπως ο δανεισμός σε ριψοκίνδυνους δανειολήπτες. | +| Οι μεταφορές κεφαλαίων πραγματοποιούνται σε λίγα λεπτά. | Οι πληρωμές για να εκτελεστούν μπορεί να χρειαστούν ημέρες λόγω μη αυτόματων διαδικασιών. | +| Η δραστηριότητα συναλλαγής είναι ανώνυμη. | Η οικονομική δραστηριότητα συνδέεται αυτόματα με την ταυτότητά σας. | +| Η DeFi είναι ανοιχτή σε οποιονδήποτε. | Πρέπει να κάνετε αίτηση ώστε να χρησιμοποιήσετε τις χρηματοπιστωτικές υπηρεσίες. | +| Οι αγορές είναι πάντα ανοικτές. | Οι αγορές κλείνουν επειδή οι υπάλληλοι έχουν ωράριο εργασίας. | +| Είναι φτιαγμένη ώστε να υπάρχει διαφάνεια και ο καθένας μπορεί να δει τα δεδομένα ενός προϊόντος και να επιθεωρήσει πώς λειτουργεί το σύστημα. | Τα χρηματοπιστωτικά ιδρύματα είναι κλειστά βιβλία: δεν μπορείτε να ζητήσετε να δείτε το ιστορικό των δανείων τους, το αρχείο των περιουσιακών τους στοιχείων που διαχειρίζονται και ούτω καθεξής. | + + + Εξερευνήστε εφαρμογές DeFi + + +## Η αρχή έγινε με το Bitcoin... {#bitcoin} + +Από πολλές απόψεις, το Bitcoin ήταν η πρώτη εφαρμογή DeFi. Το Bitcoin σας επιτρέπει να κατέχετε πραγματικά και να ελέγχετε την αξία του και να τη στέλνετε οπουδήποτε στον κόσμο. Αυτό επιτυγάνεται παρέχοντας μία λύση για ένα μεγάλο αριθμό ανθρώπων, που δεν εμπιστεύονται ο ένας τον άλλον, να συμφωνήσουν για ένα βιβλίο λογαριασμών χωρίς την ανάγκη ενός αξιόπιστου ενδιάμεσου φορέα. Το Bitcoin είναι ανοιχτό σε όλους και κανείς δεν έχει την εξουσία να αλλάξει τους κανόνες του. Οι κανόνες του Bitcoin, όπως η σπανιότητα και η διαφάνειά του, είναι γραμμένοι πάνω στην τεχνολογία. Δεν είναι σαν την παραδοσιακή χρηματοδότηση όπου οι κυβερνήσεις μπορούν να εκτυπώσουν χρήματα και να υποτιμούν τις αποταμιεύσεις σας και οι εταιρείες που μπορούν να κλείσουν τις αγορές. + +Το Ethereum βασίζεται σε αυτό. Όπως και στο Bitcoin, οι κανόνες δεν μπορούν να αλλάξουν για εσάς και όλοι έχουν πρόσβαση. Ακόμη, καθιστά αυτό το ψηφιακό χρήμα ικανό να προγραμματιστεί για να μπορείτε να το αξιοποιήσετε πέρα από την αποθήκευση και την αποστολή του, χρησιμοποιώντας τα [έξυπνα συμβόλαια](/glossary#smart-contract). + + + +## Προγραμματιζόμενα χρήματα {#programmable-money} + +Ακούγεται παράξενο... «γιατί να θέλω να προγραμματίσω τα χρήματά μου»; Ωστόσο, αυτό είναι περισσότερο μια προεπιλεγμένη δυνατότητα των ψηφιακών στοιχείων στο Ethereum. Οποιοσδήποτε μπορεί να προγραμματίσει κάτι λογικό σε πληρωμές. Έτσι, μπορείτε να πάρετε τον έλεγχο και την ασφάλεια του Bitcoin αναμειγνύοντας τις υπηρεσίες που παρέχονται από τα χρηματοπιστωτικά ιδρύματα. Αυτό σας επιτρέπει να κάνετε διάφορα με τα κρυπτονομίσματα που δεν μπορείτε να κάνετε με το Bitcoin, όπως να δανείσετε και να δανειστείτε, προγραμματισμό πληρωμών, επενδύσεις σε κεφάλαια και πολλά άλλα. + + +
Δείτε τις προτάσεις μας για τις DeFi εφαρμογές για να τις δοκιμάσετε, αν είστε νέοι στο Ethereum.
+ + Εξερευνήστε εφαρμογές DeFi + +
+ +## Τι μπορείτε να κάνετε με τη DeFi; {#defi-use-cases} + +Υπάρχει μια αποκεντρωμένη εναλλακτική λύση για τις περισσότερες χρηματοπιστωτικές υπηρεσίες. Αλλά το Ethereum δημιουργεί επίσης ευκαιρίες για τη δημιουργία εντελώς νέων χρηματοπιστωτικών προϊόντων. Πρόκειται για μια συνεχώς αυξανόμενη λίστα. + +- [Στείλτε χρήματα παγκοσμίως](#send-money) +- [Μεταδώστε χρήματα παγκοσμίως](#stream-money) +- [Πρόσβαση σε νομίσματα σταθερής αξίας](#stablecoins) +- [Κεφάλαια δανεισμού με εγγύηση](#lending) +- [Δανεισμός χωρίς εγγύηση](#flash-loans) +- [Αποταμίευση κρυπτονομισμάτων](#saving) +- [Συναλλαγές ψηφιακών στοιχείων](#swaps) +- [Αυξήστε το χαρτοφυλάκιό σας](#investing) +- [Χρηματοδότηση των ιδεών σας](#crowdfunding) +- [Αγορά ασφαλιστικών υπηρεσιών](#insurance) +- [Διαχείριση του χαρτοφυλακίου σας](#aggregators) + + + +### Στείλτε χρήματα παγκοσμίως γρήγορα {#send-money} + +Ως blockchain, το Ethereum έχει σχεδιαστεί για την αποστολή συναλλαγών με ένα ασφαλή και παγκόσμιο τρόπο. Όπως το Bitcoin, το Ethereum κάνει την αποστολή χρημάτων σε όλο τον κόσμο τόσο εύκολα, όπως την αποστολή email. Απλά εισαγάγετε το [όνομα ENS](/nft/#nft-domains) των παραληπτών σας (όπως bob.eth) ή τη διεύθυνση του λογαριασμού τους από το πορτοφόλι σας και η πληρωμή σας θα πάει απευθείας σε αυτούς σε μερικά λεπτά (συνήθως). Για να στείλετε ή να λάβετε πληρωμές, θα χρειαστείτε ένα [πορτοφόλι](/wallets/). + + + Δείτε τις dapps πληρωμών + + +#### Στείλτε χρήματα παγκοσμίως... {#stream-money} + +Μπορείτε επίσης να στείλετε χρήματα μέσω του Ethereum. Αυτό σας επιτρέπει να πληρώσετε το μισθό κάποιου σε δευτερόλεπτα, δίνοντάς του τη δυνατότητα να έχει πρόσβαση στα χρήματά του και να τα αξιοποιήσει όπως θέλει. Ή νοικιάστε κάτι σε δευτερόλεπτα όπως ένα ντουλάπι αποθήκευσης ή ένα ηλεκτρικό σκούτερ. + +Αν δε θέλετε να στείλετε ή να μεταδώσετε [ETH](/eth/) λόγω της μεταβαλλόμενης η αξία του, υπάρχουν εναλλακτικά νομίσματα στο Ethereum όπως τα κρυπτονομίσματα σταθερής αξίας. + + + +### Πρόσβαση σε νομίσματα σταθερής αξίας {#stablecoins} + +Η μεταβλητότητα των κρυπτονομισμάτων είναι ένα πρόβλημα για πολλά χρηματοοικονομικά προϊόντα και γενικές δαπάνες. Η κοινότητα του DeFi έλυσε αυτό το πρόβλημα με τα κρυπτονομίσματα σταθερής αξίας. Η αξία τους παραμένει συνδεδεμένη με ένα άλλο περιουσιακό στοιχείο, συνήθως ένα δημοφιλές νόμισμα όπως τα δολάρια. + +Νομίσματα όπως το Dai ή το USDC έχουν σταθερή τιμή σε σχέση με το δολάριο. Αυτό τα καθιστά ιδανικά για κέρδη ή λιανικό εμπόριο. Πολλοί στη Λατινική Αμερική χρησιμοποίησαν τα κρυπτονομίσματα σταθερής αξίας ως τρόπο προστασίας των αποταμιεύσεων τους, λόγω της μεγάλης αβεβαιότητας με τα νομίσματα που έχουν εκδοθεί από την κυβέρνηση. + + + Περισσότερα για τα κρυπτονομίσματα σταθερής αξίας + + + + +### Δανεισμός {#lending} + +Ο δανεισμός χρημάτων από αποκεντρωμένους παρόχους προσφέρεται με δύο κύριους τρόπους. + +- Το «peer-to-peer», που σημαίνει ότι ένας δανειολήπτης θα δανειστεί απευθείας από ένα συγκεκριμένο δανειστή. +- Το «pool-based» όπου οι δανειστές παρέχουν κεφάλαιο (ρευστότητα) σε μια δεξαμενή από την οποία μπορούν να δανειστούν οι δανειολήπτες. + + + Δείτε τις dapps δανεισμού + + +Υπάρχουν πολλά πλεονεκτήματα με τη χρήση ενός αποκεντρωμένου δανειστή... + +#### Δανειοληψία με ιδιωτικότητα {#borrowing-privacy} + +Σήμερα, ο δανεισμός και το δάνειο χρημάτων αφορούν τα άτομα που εμπλέκονται. Οι τράπεζες πρέπει να γνωρίζουν αν είναι δυνατόν να εξοφληθεί ένα δάνειο πριν να το παρέχουν. + +Ο αποκεντρωμένος δανεισμός λειτουργεί χωρίς κανένα από τα δύο μέρη να χρειάζεται να ταυτοποιηθεί. Αντίθετα, ο δανειολήπτης πρέπει να δηλώσει εγγυήσεις που θα λάβει αυτόματα ο δανειστής εάν το δάνειό του δεν αποπληρωθεί. Ορισμένοι δανειστές δέχονται ακόμη και NFT ως εγγύηση. Τα NFT είναι μια πράξη σε ένα μοναδικό περιουσιακό στοιχείο, όπως μια ζωγραφική. [Περισσότερα για τα NTF](/nft/) + +Αυτό σας επιτρέπει να δανειστείτε χρήματα χωρίς ελέγχους πιστοληπτικής ικανότητας ή την υποβολή προσωπικών δεδομένων. + +#### Πρόσβαση σε παγκόσμια κεφάλαια {#access-global-funds} + +Όταν χρησιμοποιείτε έναν αποκεντρωμένο δανειστή έχετε πρόσβαση σε κεφάλαια που κατατίθενται από όλο τον κόσμο, όχι μόνο τα κεφάλαια που ελέγχει η τράπεζα ή το ίδρυμα. Αυτό καθιστά τα δάνεια πιο προσβάσιμα και βελτιώνει τα επιτόκια. + +#### Φορολογικές αποδόσεις {#tax-efficiencies} + +Ο δανεισμός μπορεί να σας δώσει πρόσβαση σε κεφάλαια χωρίς να χρειάζεται να πουλήσετε τα ETH σας (ένα φορολογητέο γεγονός). Αντίθετα, μπορείτε να χρησιμοποιήσετε τα ETH ως εγγύηση για ένα δάνειο με κρυπτονόμισμα σταθερής αξίας. Αυτό σας προσφέρει τη ρευστότητα μετρητών που χρειάζεστε και σας επιτρέπει να κρατήσετε τα ETH σας. Τα κρυπτονομίσματα σταθερής αξίας είναι ψηφιακά στοιχεία που είναι ποιο σταθερά όταν χρειάζεστε μετρητά, καθώς δε μεταβάλλεται η αξία τους όπως το ETH. [Περισσότερα για τα κρυπτονομίσματα σταθερής αξίας](#stablecoins) + +#### Στιγμιαία δάνεια {#flash-loans} + +Τα στιγμιαία δάνεια είναι μια πιο πειραματική μορφή αποκεντρωμένου δανεισμού που σας επιτρέπουν να δανειστείτε χωρίς εγγύηση ή παροχή προσωπικών πληροφοριών. + +Δεν είναι ευρέως προσβάσιμα σε μη τεχνικούς χρήστες αυτή τη στιγμή, αλλά αναμένεται να χρησιμοποιηθούν από όλους στο μέλλον. + +Λειτουργεί κατά βάση ότι το δάνειο λαμβάνεται και εξοφλείται στο πλαίσιο της ίδιας συναλλαγής. Αν δεν μπορεί να αποπληρωθεί, η συναλλαγή επανέρχεται σαν να μη συνέβη ποτέ. + +Τα κεφάλαια που χρησιμοποιούνται συχνά διατηρούνται σε δεξαμενές ρευστότητας (μεγάλες δεξαμενές κεφαλαίων που χρησιμοποιούνται για δανεισμό). Εάν δε χρησιμοποιηθούν σε μια δεδομένη στιγμή, αυτό δημιουργεί μια ευκαιρία για κάποιον να δανειστεί αυτά τα κεφάλαια, διεξάγοντας επιχείρηση μαζί τους και να τους αποπληρώσει πλήρως κυριολεκτικά την ίδια στιγμή που τον δανείζουν. + +Αυτό σημαίνει ότι απαιτούνται αρκετά λογιστικά να συμπεριληφθούν, σε μια πολύ εξατομικευμένη συναλλαγή. Ένα απλό παράδειγμα είναι όταν κάποιος λαμβάνει ένα στιγμιαίο δάνειο ενός ψηφιακού στοιχείου σε μια τιμή, ώστε να μπορεί να το πουλήσει σε διαφορετικό ανταλλακτήριο υψηλότερη τιμή. + +Έτσι, σε μία μόνο συναλλαγή, συμβαίνουν τα εξής: + +- Δανειζόσαστε το ποσό X $asset στο $1.00 από το ανταλλακτήριο Α +- Πουλάτε τα Χ $asset στο ανταλλακτήριο Β για $1.10 +- Αποπληρώνετε το δάνειο στο ανταλλακτήριο Α +- Κρατάτε το κέρδος μείον τις κρατήσεις της συναλλαγής + +Αν στο ανταλλακτήριο B έπεσε ξαφνικά η αξία και ο χρήστης δεν ήταν σε θέση να αγοράσει αρκετά για να καλύψει το αρχικό δάνειο, η συναλλαγή απλά θα αποτύχει. + +Για να μπορέσετε να εφαρμόσετε το παραπάνω παράδειγμα στον παραδοσιακό χρηματοπιστωτικό κόσμο, θα χρειαστείτε ένα σεβαστό χρηματικό ποσό. Αυτές οι στρατηγικές κέρδους είναι προσβάσιμες μόνο σε εκείνους με τον υπάρχοντα πλούτο. Τα στιγμιαία δάνεια αποτελούν παράδειγμα ενός μέλλοντος όπου η κατοχή χρημάτων δεν αποτελεί απαραίτητα προϋπόθεση για κέρδος χρημάτων. + +[Περισσότερα για τα στιγμιαία δάνεια](https://aave.com/flash-loans/) + + + +### Αρχίστε να εξοικονομείτε με κρυπτονομίσματα {#saving} + +#### Δανεισμός {#lending} + +Μπορείτε να κερδίσετε τόκους με τα κρυπτονομίσματά σας, δανείζοντάς τα και παρακολουθώντας το κεφάλαιό σας να αυξάνεται σε πραγματικό χρόνο. Αυτή τη στιγμή τα επιτόκια είναι πολύ υψηλότερα από ότι είναι πιθανό να βρείτε στην τοπική σας τράπεζα (αν είστε αρκετά τυχεροί ώστε να έχετε πρόσβαση σε μία από αυτές). Δείτε ένα παράδειγμα: + +- Δανείζετε τα 100 Dai σας, ένα [κρυπτονόμισμα σταθερής αξίας](/stablecoins/), σε ένα προϊόν όπως το Aave. +- Λαμβάνετε 100 Aave Dai (aDai) τα οποία αντιστοιχούν σε ψηφιακό στοιχείο που δηλώνει πως δανείσατε τα Dai σας. +- Τα aDai σας θα αυξηθούν με βάση το επιτόκιο και μπορείτε να δείτε το υπόλοιπό σας να αυξάνεται στο πορτοφόλι σας. Ανάλογα το ετήσιο ποσοστό επιτοκίου, το υπόλοιπο του πορτοφολιού σας θα εμφανίζεται σαν 100.1234 μετά από λίγες ημέρες ή ακόμα και ώρες! +- Μπορείτε να κάνετε ανάληψη ένα ποσό των κανονικών Dai που είναι ίσο με το υπόλοιπό aDai σας ανά πάσα στιγμή. + + + Δείτε dapps για δανεισμό + + +#### Κληρώσεις λαχείων χωρίς απώλεια {#no-loss-lotteries} + +Οι κληρώσεις λαχείων χωρίς απώλεια, όπως το PoolTogether είναι ένας διασκεδαστικός και καινοτόμος νέος τρόπος για να εξοικονομήσετε χρήματα. + +- Αγοράζετε 100 εισιτήρια χρησιμοποιώντας 100 Dai. +- Λαμβάνετε 100 plDai που αντιπροσωπεύουν τα 100 εισιτήρια σας. +- Αν επιλεγεί ένα από τα εισιτήρια σας, το υπόλοιπό σας plDai θα αυξηθεί κατά το ποσό του βραβείου. +- Αν δεν κερδίσετε, τα 100 plDai περνούν στην κλήρωση της επόμενης εβδομάδας. +- Μπορείτε να κάνετε ανάληψη ένα ποσό των κανονικών Dai που είναι ίσο με το υπόλοιπό plDai σας ανά πάσα στιγμή. + +Το έπαθλο δημιουργείται από όλους τους τόκους που προκύπτουν από τη χορήγηση των καταθέσεων εισιτηρίων, όπως στο παραπάνω παράδειγμα δανειοδότησης. + + + Δοκιμάστε το PoolTogether + + + + +### Ανταλλαγή κρυπτονομισμάτων {#swaps} + +Υπάρχουν χιλιάδες ψηφιακά στοιχεία στο Ethereum. Τα αποκεντρωμένα χρηματιστήρια (DEXs) σας επιτρέπουν να ανταλλάξετε διαφορετικά ψηφιακά στοιχεία όποτε θέλετε. Δε χάνετε τον έλεγχο των στοιχείων σας. Αυτό είναι σαν να χρησιμοποιείτε ένα ανταλλακτήριο συναλλάγματος όταν επισκέπτεστε μια διαφορετική χώρα. Αλλά, η έκδοση DeFi ποτέ δεν κλείνει. Οι αγορές είναι ανοιχτές 24/7, 365 ημέρες το χρόνο και η τεχνολογία εγγυάται ότι θα υπάρχει πάντα κάποιος να αποδεχθεί τη συναλλαγή. + +Για παράδειγμα, εάν θέλετε να χρησιμοποιήσετε τη λοταρία χωρίς απώλειες PoolTogether (που περιγράφεται παραπάνω), θα χρειαστείτε ένα κρυπτονόμισμα όπως το Dai ή το USDC. Αυτά τα DEX σάς επιτρέπουν να ανταλλάξετε τα ETH σας με αυτά τα κρυπτονομίσματα και να τα επιστρέψετε ξανά με την ολοκλήρωση. + + + Δείτε ανταλλακτήρια κρύπτο + + + + +### Προχωρημένες συναλλαγές {#trading} + +Υπάρχουν περισσότερο προηγμένες επιλογές για έμπορους που θα προτιμούσαν λίγο περισσότερο έλεγχο. Εντολές limit, μόνιμες, συναλλαγές δανείου και άλλα είναι όλα δυνατά. Με τις αποκεντρωμένες συναλλαγές έχετε πρόσβαση σε μια παγκόσμια ρευστότητα, η αγορά δεν κλείνει ποτέ και έχετε πάντα τον έλεγχο των περιουσιακών σας στοιχείων. + +Όταν χρησιμοποιείτε ένα κεντρικό χρηματιστήριο, πρέπει να καταθέτετε τα περιουσιακά σας στοιχεία πριν από τη συναλλαγή και να τα εμπιστεύεστε σε αυτό. Ενώ τα περιουσιακά σας στοιχεία κατατίθενται, διατρέχουν κίνδυνο, καθώς τα κεντρικά ανταλλακτήρια αποτελούν ελκυστικούς στόχους για τους χάκερ. + + + Δείτε εφαρμογές συναλλαγών + + + + +### Αυξήστε το χαρτοφυλάκιό σας {#investing} + +Υπάρχουν προϊόντα διαχείρισης κεφαλαίων στο Ethereum που θα προσπαθήσουν να αυξήσουν το χαρτοφυλάκιό σας με βάση μια στρατηγική της δικής σας επιλογής. Αυτό είναι αυτόματο, ανοιχτό σε όλους και δε χρειάζεται ανθρώπινη μεσολάβηση που θα περικόψει τα κέρδη σας. + +Ένα καλό παράδειγμα είναι το [ταμείο DeFi Pulse Index (DPI)](https://defipulse.com/blog/defi-pulse-index/). Αυτό είναι ένα αμοιβαίο κεφάλαιο που ισορροπεί ξανά αυτόματα για να διασφαλίσει ότι το χαρτοφυλάκιό σας περιλαμβάνει πάντα [τα κορυφαία κρυπτονομίσματα DeFi ανά κεφαλαιοποίηση αγοράς](https://www.coingecko.com/en/defi). Δε χρειάζεται ποτέ να διαχειριστείτε καμία από τις λεπτομέρειες και μπορείτε να κάνετε ανάληψη από το ταμείο όποτε θέλετε. + + + Δείτε εφαρμογές επενδύσεων + + + + +### Χρηματοδότηση των ιδεών σας {#crowdfunding} + +Το Ethereum είναι μια ιδανική πλατφόρμα για crowdfunding: + +- Οι πιθανοί χρηματοδότες μπορούν να προέλθουν από οπουδήποτε. Το Ethereum και τα κρυπτονομίσματά του είναι ανοιχτά σε οποιονδήποτε και οπουδήποτε στον κόσμο. +- Είναι διαφανές, ώστε οι έρανοι να μπορούν να αποδείξουν πόσα χρήματα έχουν συγκεντρωθεί. Μπορείτε ακόμη και να εντοπίσετε πώς δαπανώνται τα κεφάλαια αργότερα. +- Οι έρανοι μπορούν να ορίσουν αυτόματες επιστροφές χρημάτων εάν, για παράδειγμα, υπάρχει συγκεκριμένη προθεσμία και ελάχιστο ποσό που δε θα συμπληρωθεί. + + + Δείτε εφαρμογές χρηματοδότησης + + +#### Τετραγωνική χρηματοδότηση {#quadratic-funding} + +Το Ethereum είναι λογισμικό ανοιχτού κώδικα και μεγάλο μέρος της δουλειάς μέχρι στιγμής έχει χρηματοδοτηθεί από την κοινότητα. Αυτό οδήγησε στην ανάπτυξη ενός ενδιαφέροντος νέου μοντέλου συγκέντρωσης κεφαλαίων: της τετραγωνικής χρηματοδότησης. Αυτό έχει τη δυνατότητα να βελτιώσει τον τρόπο με τον οποίο χρηματοδοτούμε όλα τα είδη δημόσιων αγαθών στο μέλλον. + +Η τετραγωνική χρηματοδότηση διασφαλίζει ότι τα έργα που λαμβάνουν τη μεγαλύτερη χρηματοδότηση, είναι αυτά με τη μεγαλύτερη ζήτηση. Με άλλα λόγια, έργα που μπορούν να βελτιώσουν τη ζωή των περισσότερων ανθρώπων. Δείτε πώς λειτουργεί: + +1. Υπάρχει μια αντίστοιχη δεξαμενή δωρεών. +2. Ξεκινά ένας γύρος δημόσιας χρηματοδότησης. +3. Οι χρήστες μπορούν να προωθήσουν ένα έργο δωρίζοντας κάποια χρήματα. +4. Μόλις ολοκληρωθεί ο γύρος, η αντίστοιχη δεξαμενή διανέμεται στα έργα. Εκείνοι με την περισσότερη ζήτηση λαμβάνουν το υψηλότερο ποσό από την αντίστοιχη δεξαμενή. + +Αυτό σημαίνει ότι το Έργο Α με τις 100 δωρεές του 1 δολαρίου θα μπορούσε να καταλήξει με περισσότερη χρηματοδότηση από το Έργο Β με μία μόνο δωρεά των 10.000 δολαρίων (ανάλογα με το μέγεθος της αντίστοιχης δεξαμενής). + +[Περισσότερα για την τετραγωνική χρηματοδότηση](https://wtfisqf.com) + + + +### Ασφαλιστικές υπηρεσίες {#insurance} + +Η αποκεντρωμένη ασφάλιση στοχεύει να κάνει τη δυνατότητα ασφάλισης φθηνότερη, ταχύτερη στην πληρωμή και πιο διαφανή. Με περισσότερη αυτοματοποίηση, η κάλυψη είναι πιο προσιτή και οι πληρωμές είναι πολύ πιο γρήγορες. Τα δεδομένα που χρησιμοποιούνται για την απόφαση σχετικά με την αξίωσή σας είναι απολύτως διαφανή. + +Τα προϊόντα Ethereum, όπως κάθε λογισμικό, μπορεί να υστερούν από σφάλματα και εκμεταλλεύσεις. Έτσι, αυτή τη στιγμή πολλά προϊόντα ασφάλισης στον χώρο, επικεντρώνονται στην προστασία των χρηστών τους από την απώλεια κεφαλαίων. Ωστόσο, υπάρχουν έργα που αρχίζουν να δημιουργούν κάλυψη για οτιδήποτε μπορεί να μας συμβεί. Ένα καλό παράδειγμα αυτού είναι η κάλυψη Crop της Etherisc που στοχεύει να [προστατέψει τους μικροκαλλιεργητές στην Κένυα από ξηρασίες και πλημμύρες](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Η αποκεντρωμένη ασφάλιση μπορεί να προσφέρει φθηνότερη κάλυψη για τους αγρότες που συχνά αποτιμώνται από την παραδοσιακή ασφάλιση. + + + Δείτε εφαρμογές ασφάλισης + + + + +### Aggregators και διαχειριστές πορτοφολιού {#aggregators} + +Με τόσα πολλά που συμβαίνουν, θα χρειαστείτε έναν τρόπο να παρακολουθείτε όλες τις επενδύσεις, τα δάνεια και τις συναλλαγές σας. Υπάρχουν πολλά προϊόντα που σας επιτρέπουν να συντονίζετε όλη τη δραστηριότητά σας στο DeFi από ένα μέρος. Αυτή είναι η ομορφιά της ανοιχτής αρχιτεκτονικής του DeFi. Οι ομάδες μπορούν να δημιουργήσουν διεπαφές όπου δεν μπορείτε απλώς να δείτε το υπόλοιπο κεφαλαίου σας στα προϊόντα, αλλά μπορείτε να χρησιμοποιήσετε και τις δυνατότητές τους. Μπορεί να σας φανεί χρήσιμο καθώς εξερευνάτε περισσότερο το DeFi. + + + Δείτε εφαρμογές χαρτοφυλακίου + + + + +## Πώς λειτουργεί η DeFi; {#how-defi-works} + +Το DeFi χρησιμοποιεί κρυπτονομίσματα και έξυπνα συμβόλαια για να παρέχει υπηρεσίες που δε χρειάζονται μεσάζοντες. Στον σημερινό οικονομικό κόσμο, τα χρηματοπιστωτικά ιδρύματα λειτουργούν ως εγγυητές των συναλλαγών. Αυτό δίνει σε αυτά τα ιδρύματα τεράστια δύναμη επειδή τα χρήματά σας ρέουν μέσω αυτών. Επιπλέον, δισεκατομμύρια άνθρωποι σε όλο τον κόσμο δεν μπορούν καν να έχουν πρόσβαση σε τραπεζικό λογαριασμό. + +Στο DeFi, ένα έξυπνο συμβόλαιο αντικαθιστά το χρηματοπιστωτικό ίδρυμα κατά τη συναλλαγή. Ένα έξυπνο συμβόλαιο είναι ένας τύπος λογαριασμού Ethereum που μπορεί να κρατήσει κεφάλαια και μπορεί να τα στείλει/επιστρέψει με βάση ορισμένες προϋποθέσεις. Κανείς δεν μπορεί να αλλάξει αυτό το έξυπνο συμβόλαιο όταν έχει δημοσιευτεί και θα εκτελείται πάντα όπως έχει προγραμματιστεί. + +Ένα συμβόλαιο που έχει σχεδιαστεί για να μοιράζει ένα επίδομα ή χαρτζιλίκι θα μπορούσε να προγραμματιστεί να στέλνει χρήματα από τον λογαριασμό Α στον λογαριασμό Β κάθε Παρασκευή. Και αυτό θα το κάνει μόνο εφόσον ο Λογαριασμός Α έχει τα απαιτούμενα κεφάλαια. Κανείς δεν μπορεί να αλλάξει το συμβόλαιο και να προσθέσει τον λογαριασμό Γ ως παραλήπτη για να κλέψει χρήματα. + +Τα συμβόλαια είναι επίσης διαθέσιμα δημόσια για επιθεώρηση και έλεγχο από οποιονδήποτε. Αυτό σημαίνει ότι τα κακόβουλα συμβόλαια θα ελεγχθούν σύντομα από την κοινότητα αρκετά γρήγορα. + +Αυτό σημαίνει ότι υπάρχει προς το παρόν ανάγκη να εμπιστευόμαστε τα πιο τεχνικά μέλη της κοινότητας του Ethereum που μπορούν να διαβάσουν κώδικα. Η κοινότητα που βασίζεται σε ανοιχτό κώδικα, βοηθάει τους προγραμματιστές να ελέγχουν αλλά αυτή η ανάγκη θα μειωθεί με την πάροδο του χρόνου, καθώς τα έξυπνα συμβόλαια γίνονται ευκολότερα στην ανάγνωση και αναπτύσσονται άλλοι τρόποι για την απόδειξη της αξιοπιστίας του κώδικα. + +## Ethereum και DeFi {#ethereum-and-defi} + +Το Ethereum είναι το τέλειο θεμέλιο για το DeFi για διάφορους λόγους: + +- Κανείς δεν κατέχει το Ethereum ή τα έξυπνα συμβόλαια που ισχύουν σε αυτό. Έτσι δίνεται σε όλους την ευκαιρία να χρησιμοποιήσουν το DeFi. Αυτό σημαίνει επίσης ότι κανείς δεν μπορεί να αλλάξει τους κανόνες για εσάς. +- Τα προϊόντα DeFi μιλούν όλα την ίδια γλώσσα στα παρασκήνια: Ethereum. Αυτό σημαίνει ότι πολλά από τα προϊόντα συνεργάζονται άψογα. Μπορείτε να δανείσετε κρυπτονομίσματα σε μια πλατφόρμα και να ανταλλάξετε το έντοκο κρυπτονόμισμα σε διαφορετική αγορά σε μια εντελώς διαφορετική εφαρμογή. Αυτό είναι σαν να μπορείτε να εξαργυρώσετε πόντους επιβράβευσης στην τράπεζά σας. +- Τα ψηφιακά στοιχεία και τα κρυπτονομίσματα είναι ενσωματωμένα στο Ethereum, ένα κοινό Ledger. Η παρακολούθηση των συναλλαγών και της ιδιοκτησίας είναι θέμα του Ethereum. +- Το Ethereum επιτρέπει πλήρη οικονομική ελευθερία. Τα περισσότερα προϊόντα δε θα αναλάβουν ποτέ τη φύλαξη των κεφαλαίων σας, αφήνοντάς σας τον έλεγχο. + +Μπορείτε να σκεφτείτε το DeFi σε επίπεδα: + +1. Το blockchain – Το Ethereum περιέχει το ιστορικό συναλλαγών και την κατάσταση των λογαριασμών. +2. Τα ψηφιακά στοιχεία – [ETH](/eth/) και τα άλλα κρύπτο (νομίσματα). +3. Τα πρωτόκολλα – [Έξυπνα συμβόλαια](/glossary/#smart-contract) που παρέχουν τη λειτουργικότητα, για παράδειγμα, μια υπηρεσία που επιτρέπει τον αποκεντρωμένο δανεισμό περιουσιακών στοιχείων. +4. [Οι εφαρμογές](/dapps/) – Τα προϊόντα που χρησιμοποιούμε για τη διαχείριση και την πρόσβαση στα πρωτόκολλα. + +## Δημιουργία DeFi {#build-defi} + +Το DeFi είναι ανοιχτού κώδικα. Τα πρωτόκολλα και οι εφαρμογές DeFi είναι όλα διαθέσιμα για επιθεώρηση, ενσωμάτωση και καινοτομία. Λόγω αυτής της πολυεπίπεδης στοίβας (όλες μοιράζονται την ίδια βασική κρυπτοαλυσίδα και τα ψηφιακά στοιχεία), τα πρωτόκολλα μπορούν να αναμειχθούν και να συνδυαστούν για να ξεκλειδώσουν μοναδικές ευκαιρίες. + + + Περισσότερα για τη δημιουργία dapp + + +## Περισσότερες πληροφορίες {#futher-reading} + +### Δεδομένα DeFi {#defi-data} + +- [DeFi Prime](https://defiprime.com/) +- [DeFi Llama](https://defillama.com/) +- [DeFi Rate](https://defirate.com/) + +### Άρθρα DeFi {#defi-articles} + +- [Οδηγός για αρχάριους για το DeFi](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, 6 Ιανουαρίου 2020_ + +### Βίντεο {#videos} + +- [Finematics - εκπαίδευση στην αποκεντρωμένη τραπεζική](https://finematics.com/) – _Βίντεο σε DeFi_ +- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _Τα βασικά για την DeFi: Όλα όσα χρειάζεται να μάθετε για να ξεκινήσετε σε αυτό τον ιδιαίτερα πολύπλοκο χώρο._ +- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _Τι είναι η DeFi;_ + +### Κοινότητες {#communities} + +- [DeFi Llama διακομιστής Discord](https://discord.gg/buPFYXzDDd) +- [DeFi Pulse διακομιστής Discord](https://discord.gg/Gx4TCTk) diff --git a/public/content/translations/el/desci/index.md b/public/content/translations/el/desci/index.md new file mode 100644 index 00000000000..8ce65c0e522 --- /dev/null +++ b/public/content/translations/el/desci/index.md @@ -0,0 +1,139 @@ +--- +title: Αποκεντρωμένη επιστήμη (DeSci) +description: Μια επισκόπηση της αποκεντρωμένης επιστήμης στο Ethereum +lang: el +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Μια παγκόσμια, ανοικτή εναλλακτική λύση στο τρέχον επιστημονικό σύστημα. +summaryPoint2: Τεχνολογία που επιτρέπει στους επιστήμονες να αντλήσουν χρηματοδοτήσεις, να εκτελέσουν πειράματα, να μοιραστούν δεδομένα, ιδέες και πολλά άλλα. +summaryPoint3: Δημιουργία πάνω στο ανοιχτό επιστημονικό κίνημα. +--- + +## Τι είναι η αποκεντρωμένη επιστήμη (DeSci); {#what-is-desci} + +Η αποκεντρωμένη επιστήμη (DeSci) είναι ένα κίνημα που στοχεύει στη δημιουργία δημόσιας υποδομής για χρηματοδότηση, δημιουργία, αναθεώρηση, πίστωση, αποθήκευση και διάδοση της επιστημονικής γνώσης δίκαια και χρησιμοποιώντας την τεχνολογία Web3. + +Η DeSci στοχεύει να δημιουργήσει ένα οικοσύστημα όπου οι επιστήμονες θα έχουν κίνητρα να μοιράζονται ανοιχτά την έρευνά τους και να λαμβάνουν εύσημα για το έργο τους, επιτρέποντας ταυτόχρονα σε οποιονδήποτε να έχει πρόσβαση και να συνεισφέρει στην έρευνα εύκολα. Η DeSci βασίζεται στην ιδέα ότι η επιστημονική γνώση πρέπει να είναι προσβάσιμη σε όλους και ότι η διαδικασία της επιστημονικής έρευνας πρέπει να είναι διαφανής. Η DeSci δημιουργεί ένα πιο αποκεντρωμένο και κατανεμημένο μοντέλο επιστημονικής έρευνας, καθιστώντας το πιο ανθεκτικό στη λογοκρισία και τον έλεγχο από τις κεντρικές αρχές. Η DeSci ελπίζει να δημιουργήσει ένα περιβάλλον όπου νέες και αντισυμβατικές ιδέες μπορούν να ανθίσουν με την αποκέντρωση της πρόσβασης στη χρηματοδότηση, τα επιστημονικά εργαλεία και τα κανάλια επικοινωνίας. + +Η αποκεντρωμένη επιστήμη επιτρέπει περισσότερες διαφορετικές πηγές χρηματοδότησης (από [DAO](/dao/), [τετραγωνικές δωρεές](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) για χρηματοδότηση και άλλα), πιο προσβάσιμα δεδομένα και μεθόδους πρόσβασης, παρέχοντας κίνητρα για αναπαραγωγιμότητα. + +### Juan Benet - Το Κίνημα DeSci + + + +## Πώς το DeSci βελτιώνει την επιστήμη {#desci-improves-science} + +Μια ελλιπής λίστα βασικών προβλημάτων και πώς η αποκεντρωμένη επιστήμη μπορεί να βοηθήσει στην αντιμετώπιση αυτών των ζητημάτων + +| **Αποκεντρωμένη επιστήμη** | **Παραδοσιακή επιστήμη** | +| -------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | +| Η κατανομή των κεφαλαίων καθορίζεται από το κοινό χρησιμοποιώντας μηχανισμούς όπως οι τετραγωνικές δωρεές ή οι DAO. | Μικρές, κλειστές, κεντρικές ομάδες ελέγχουν στη διανομή των κεφαλαίων. | +| Συνεργάζεστε με χρήστες από όλο τον κόσμο σε δυναμικές ομάδες. | Οι χρηματοδοτικοί οργανισμοί και τα ιδρύματα του εσωτερικού περιορίζουν τις συνεργασίες σας. | +| Οι αποφάσεις χρηματοδότησης λαμβάνονται διαδικτυακά και με διαφάνεια. Διερευνώνται νέοι μηχανισμοί χρηματοδότησης. | Οι αποφάσεις χρηματοδότησης λαμβάνονται με μακρύ χρόνο διεκπεραίωσης και περιορισμένη διαφάνεια. Υπάρχουν λίγοι μηχανισμοί χρηματοδότησης. | +| Η κοινή χρήση εργαστηριακών υπηρεσιών γίνεται ευκολότερη και πιο διαφανής χρησιμοποιώντας το Web3. | Η κοινή χρήση εργαστηριακών πόρων είναι συχνά αργή και αδιαφανής. | +| Μπορούν να αναπτυχθούν νέα μοντέλα για δημοσίευση που χρησιμοποιούν Web3 για εμπιστοσύνη, διαφάνεια και γενική πρόσβαση. | Δημοσιεύετε μέσω καθιερωμένων οδών που συχνά αναγνωρίζονται ως αναποτελεσματικές, μεροληπτικές και εκμεταλλευτικές. | +| Μπορείτε να κερδίσετε ψηφιακά στοιχεία και φήμη για εργασία αξιολόγησης από χρήστες. | Η εργασία εξέτασης από χρήστες είναι δωρεάν, προς όφελος των κερδοσκοπικών εκδοτών. | +| Είστε κάτοχος της πνευματικής ιδιοκτησίας (IP) που δημιουργείτε και τη διανέμετε σύμφωνα με διαφανείς όρους. | Ο πάροχος της χώρας σας κατέχει την IP που δημιουργείτε. Η πρόσβαση στην IP δεν είναι διαφανής. | +| Κοινή χρήση όλης της έρευνας, συμπεριλαμβανομένων των δεδομένων από ανεπιτυχείς προσπάθειες, έχοντας όλα τα βήματα στην αλυσίδα. | Η μεροληψία δημοσίευσης σημαίνει ότι οι ερευνητές είναι πιο πιθανό να μοιραστούν πειράματα που είχαν επιτυχημένα αποτελέσματα. | + +## Το Ethereum και η DeSci {#ethereum-and-desci} + +Ένα αποκεντρωμένο επιστημονικό σύστημα θα απαιτήσει ισχυρή ασφάλεια, ελάχιστο χρηματικό κόστος, κόστος συναλλαγών και ένα πλούσιο οικοσύστημα για την ανάπτυξη εφαρμογών. Το Ethereum παρέχει όλα όσα χρειάζονται για τη δημιουργία μιας αποκεντρωμένης επιστήμης. + +## Χρήσεις της DeSci {#use-cases} + +Η DeSci δημιουργεί το επιστημονικό σύνολο εργαλείων για να ενσωματώσει τον ακαδημαϊκό χώρο του Web2 στον ψηφιακό κόσμο. Ακολουθεί ένα δείγμα περιπτώσεων χρήσης που μπορεί να προσφέρει το Web3 στην επιστημονική κοινότητα. + +### Δημοσίευση {#publishing} + +Είναι γνωστό πως η επιστημονική δημοσίευση είναι προβληματική, επειδή τη διαχειρίζονται εκδοτικοί οίκοι που βασίζονται σε δωρεάν εργασία από επιστήμονες, κριτικούς και συντάκτες για τη δημιουργία των εγγράφων, αλλά στη συνέχεια χρεώνουν υπέρογκα τέλη για τη δημοσίευση. Οι χρήστες, που συνήθως έχουν πληρώσει έμμεσα για το έργο και το κόστος δημοσίευσης μέσω της φορολογίας, συχνά δεν μπορούν να έχουν πρόσβαση στο ίδιο έργο χωρίς να πληρώσουν ξανά τον εκδότη. Τα συνολικά τέλη για τη δημοσίευση των μεμονωμένων επιστημονικών εργασιών είναι συχνά πενταψήφια ($USD), υπονομεύοντας την όλη έννοια της επιστημονικής γνώσης ως [ δημόσιο όφελος](https://www.econlib.org/library/Enc/PublicGoods.html) ενώ παράλληλα παράγει τεράστια κέρδη για μια μικρή ομάδα εκδοτών. + +Πλατφόρμες δωρεάν και ανοιχτής πρόσβασης υπάρχουν με τη μορφή διακομιστών προεκτύπωσης όπως το [ArXiv](https://arxiv.org/). Ωστόσο, αυτές οι πλατφόρμες στερούνται ποιοτικού ελέγχου, [μηχανισμών anti-sybil](https://csrc.nist.gov/glossary/term/sybil_attack) και δεν παρακολουθούν γενικά μετρήσεις σε επίπεδο άρθρου, δηλαδή συνήθως χρησιμοποιούνται μόνο για τη δημοσιοποίηση της εργασίας πριν από την υποβολή σε έναν παραδοσιακό εκδότη. Το SciHub παρέχει δωρεάν πρόσβαση στις δημοσιευμένες εργασίες, αλλά όχι νόμιμα και μόνο αφού οι εκδότες έχουν ήδη λάβει την πληρωμή τους και δημοσιεύσουν το έργο υπό αυστηρής νομοθεσίας περί πνευματικών δικαιωμάτων. Αυτό αφήνει ένα κρίσιμο κενό για πρόσβαση σε επιστημονικά έγγραφα και δεδομένα με ενσωματωμένο μηχανισμό νομιμότητας και ένα μοντέλο κινήτρων. Τα εργαλεία κατασκευής ενός τέτοιου συστήματος υπάρχουν στο Web3. + +### Αναπαραγωγικότητα και δυνατότητα αναπαραγωγής {#reproducibility-and-replicability} + +Η αναπαραγωγικότητα και η δυνατότητα αναπαραγωγής είναι τα θεμέλια της ποιοτικής επιστημονικής ανακάλυψης. + +- Αναπαραγόμενα αποτελέσματα μπορούν να επιτευχθούν πολλές φορές συνεχόμενα από την ίδια ομάδα χρησιμοποιώντας την ίδια μεθοδολογία. +- Δυνατότητα αναπαραγωγής μπορεί να επιτευχθεί από διαφορετική ομάδα χρησιμοποιώντας τα ίδια στοιχεία πειράματος. + +Τα νέα εγγενή εργαλεία Web3 μπορούν να διασφαλίσουν ότι η αναπαραγωγικότητα και η δυνατότητα αναπαραγωγής αποτελούν τη βάση της ανακάλυψης. Μπορούμε να συνδυάσουμε την ποιοτική επιστήμη στον τεχνολογικό ιστό του ακαδημαϊκού χώρου. Το Web3 προσφέρει τη δυνατότητα δημιουργίας βεβαιώσεων για κάθε στοιχείο ανάλυσης: τα πρωτογενή δεδομένα, την υπολογιστική μηχανή και το αποτέλεσμα της εφαρμογής. Η ομορφιά των συστημάτων συναίνεσης είναι ότι όταν δημιουργείται ένα αξιόπιστο δίκτυο για τη συντήρηση αυτών των στοιχείων, κάθε συμμετέχων του δικτύου μπορεί να είναι υπεύθυνος για την αναπαραγωγή του υπολογισμού και την επικύρωση κάθε αποτελέσματος. + +### Χρηματοδότηση {#funding} + +Το τρέχον πρότυπο μοντέλο για τη χρηματοδότηση της επιστήμης είναι ότι άτομα ή ομάδες επιστημόνων υποβάλλουν γραπτές αιτήσεις σε έναν οργανισμό χρηματοδότησης. Μια μικρή ομάδα έμπιστων ατόμων βαθμολογεί τις αιτήσεις και στη συνέχεια παίρνει συνέντευξη από τους υποψηφίους πριν χορηγήσει κεφάλαια σε μια μικρή μερίδα υποψηφίων. Εκτός από τη δημιουργία καθυστέρησης που μερικές φορές οδηγούν σε χρόνια αναμονής μεταξύ υποβολής αίτησης και λήψης επιχορήγησης, αυτό το μοντέλο είναι γνωστό ότι είναι πολύ ευάλωτο στις προκαταλήψεις, τα προσωπικά συμφέροντα και την πολιτική της επιτροπής αναθεώρησης. + +Μελέτες έχουν δείξει ότι οι επιτροπές αναθεώρησης επιχορηγήσεων κάνουν κακή δουλειά όσον αφορά την επιλογή προτάσεων υψηλής ποιότητας, καθώς οι ίδιες προτάσεις που δίνονται σε διαφορετικές ομάδες έχουν εξαιρετικά διαφορετικά αποτελέσματα. Καθώς η χρηματοδότηση γίνεται πιο σπάνια, συγκεντρώνεται σε μια μικρότερη δεξαμενή γνωστών ερευνητών με πιο ιδιαίτερα έργα. Το αποτέλεσμα έχει δημιουργήσει ένα υπερανταγωνιστικό τοπίο χρηματοδότησης, εδραιώνει διεστραμμένα κίνητρα και καταπνίγει την καινοτομία. + +Το Web3 έχει τη δυνατότητα να διαταράξει αυτό το μοντέλο χρηματοδότησης πειραματιζόμενο με διαφορετικά μοντέλα κινήτρων που αναπτύχθηκαν από τους DAO και γενικά το 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 κάνει εξαιρετικά χρησιμοποιώντας τα [μη εναλλάξιμα κρυπτοπαραστατικά (NFT)](/nft/). + +Με τον ίδιο τρόπο που τα NFT μπορούν να μεταφέρουν έσοδα από μελλοντικές συναλλαγές στον αρχικό δημιουργό τους, μπορείτε να δημιουργήσετε αλυσίδες απόδοσης της αξίας με πλήρη διαφάνεια για να επιβραβεύσετε τους ερευνητές, τους κυβερνητικούς φορείς (όπως τους DAO) ή ακόμα και τα υποκείμενα των οποίων τα δεδομένα συλλέγονται. + +Τα [IP-NFT](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) μπορούν επίσης να λειτουργήσουν ως κλειδί για ένα αποκεντρωμένο αποθετήριο δεδομένων των ερευνητικών πειραμάτων που διεξάγονται, συνδέοντας τη χρηματοοικονομική των NFT και της [DeFi](/defi/) (από την κλασματοποίηση έως τις ομάδες δανεισμού και εκτίμησης της αξίας). Επιτρέπει επίσης σε οντότητες στην αλυσίδα, τους DAO, όπως το [VitaDAO](https://www.vitadao.com/) να διεξάγουν έρευνα απευθείας σε αυτήν. Η εμφάνιση των μη μεταβιβάσιμων [ψηφιακών στοιχείων «soulbound»](https://vitalik.ca/general/2022/01/26/soulbound.html) μπορεί επίσης να παίξει σημαντικό ρόλο στο DeSci επιτρέποντας άτομα να αποδείξουν την εμπειρία και τα διαπιστευτήριά τους που συνδέονται με τη διεύθυνσή τους Ethereum. + +### Αποθήκευση δεδομένων, πρόσβαση και αρχιτεκτονική {#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 υποστηρίζουν τα παραπάνω σενάρια και παρέχουν τη βάση για μια πραγματικά ανοιχτή επιστήμη, όπου οι ερευνητές μπορούν να δημιουργούν δημόσια αγαθά χωρίς άδειες πρόσβασης ή χρεώσεις. Οι λύσεις δημόσιων δεδομένων Web3 όπως το IPFS, το Arweave και το Filecoin έχουν βελτιστοποιηθεί για αποκέντρωση. Το dClimate, για παράδειγμα, παρέχει καθολική πρόσβαση σε δεδομένα για το κλίμα και τον καιρό, μεταξύ άλλων από μετεωρολογικούς σταθμούς και προγνωστικά κλιματικά μοντέλα. + +## Λάβετε μέρος {#get-involved} + +Εξερευνήστε τα έργα και εγγραφείτε στην κοινότητα DeSci. + +- [DeSci.Global: Γενικές εκδηλώσεις και ημερολόγιο συναντήσεων.](https://desci.global) +- [Η κρυπτοαλυσίδα για την επιστήμη Telegram.](https://t.me/BlockchainForScience) +- [Molecule: Παρέχετε και λάβετε χρηματοδότηση για τα ερευνητικά σας έργα.](https://discover.molecule.to/) +- [VitaDAO: Λάβετε χρηματοδότηση μέσω συμφωνιών έρευνας με χορηγία για έρευνα μακροζωίας.](https://www.vitadao.com/) +- [ResearchHub: Δημοσιεύστε μια επιστημονική έρευνα και συμμετάσχετε σε μια συζήτηση.](https://www.researchhub.com/) +- [LabDAO: fold a protein in-silico](https://alphafodl.vercel.app/) +- [dClimate API: Αναζήτηση δεδομένων για το κλίμα που συλλέγονται από μια αποκεντρωμένη κοινότητα.](https://api.dclimate.net/) +- [DeSci Foundation: DeSci δημιουργία εργαλείου δημοσίευσης.](https://descifoundation.org/) +- [DeSci.World: Σύντομη αγορά για να δουν οι χρήστες και να ασχοληθούν με την αποκεντρωμένη επιστήμη.](https://desci.world) +- [Πρωτόκολλο Fleming: Οικονομικά δεδομένα ανοιχτού κώδικα υποστηρίζοντας τη συλλογική βιοϊατρική έρευνα.](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: fold a protein in-silico](https://alphafodl.vercel.app/) +- [Bio.xyz: Λάβετε χρηματοδότηση για το έργο βιοτεχνολογίας DAO ή desci.](https://www.molecule.to/) +- [ResearchHub: Δημοσιεύστε μια επιστημονική έρευνα και συμμετάσχετε σε μια συζήτηση.](https://www.researchhub.com/) +- [VitaDAO: Λάβετε χρηματοδότηση μέσω συμφωνιών έρευνας με χορηγία για έρευνα μακροζωίας.](https://www.vitadao.com/) +- [Πρωτόκολλο Fleming: Οικονομικά δεδομένα ανοιχτού κώδικα υποστηρίζοντας τη συλλογική βιοϊατρική έρευνα.](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/) +- [Εργαστήρια DeSci](https://www.desci.com/) + +Χαιρετίζουμε τις προτάσεις νέων έργων για τη λίστα. Δείτε την [πολιτική καταχώρισης](/contributing/adding-desci-projects/) για να ξεκινήσετε! + +## Περισσότερες πληροφορίες {#further-reading} + +- [DeSci Wiki των Jocelynn Pearl και Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) +- [Ένας οδηγός για την αποκεντρωμένη βιοτεχνολογία από την Jocelynn Pearl για το μέλλον του a16z](https://future.a16z.com/a-guide-to-decentralized-biotech/) +- [Η περίπτωση για την DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) +- [Οδηγός για DeSci](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) +- [Δημιουργώντας έμπιστα συστήματα επιστήμης του Jon Starr](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) +- [Η εμφάνιση των βιοτεχνολογικών DAO](https://molecule.to/blog/the-emergence-of-biotech-daos) +- [Paul Kohlhaas - DeSci: Το μέλλον της αποκεντρωμένης επιστήμης (podcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) +- [Μια ενεργή οντολογία συμπερασμάτων για την αποκεντρωμένη επιστήμη: από την εντοπιζόμενη αισθησιοποίηση στα επιστημικά κοινά](https://zenodo.org/record/6320575) +- [DeSci: Το μέλλον της έρευνας από τον Samuel Akinosho.](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) +- [Χρηματοδότηση επιστήμης (Επίλογος: Η DeSci και οι νέες μεθόδοι κρύπτο) από την 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 Gray σχετικά με τη διασταύρωση της έρευνας μακροζωίας και των κρυπτονομισμάτων.](https://www.youtube.com/watch?v=x9TSJK1widA) +- [Η επιστημονική δημοσίευση είναι προβληματική. Μπορεί το Web3 να το διορθώσει;](https://www.youtube.com/watch?v=WkvzYgCvWj8) +- [Juan Benet - DeSci, Ανεξάρτητα εργαστήρια & η Επιστήμη των δεδομένων μεγάλης κλίμακας.](https://www.youtube.com/watch?v=zkXM9H90g_E) +- [Sebastian Brunemeier - Πώς η DeSci μπορεί να τροποποιήσει τη Βιοϊατρική έρευνα & τα Επιχειρηματικά κεφάλαια.](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/el/learn/index.md b/public/content/translations/el/learn/index.md similarity index 100% rename from src/content/translations/el/learn/index.md rename to public/content/translations/el/learn/index.md diff --git a/public/content/translations/el/nft/index.md b/public/content/translations/el/nft/index.md new file mode 100644 index 00000000000..d207129eb8c --- /dev/null +++ b/public/content/translations/el/nft/index.md @@ -0,0 +1,94 @@ +--- +title: Μη Εναλλάξιμα Κρυπτοπαραστατικά (NFT) +description: Μια επισκόπηση των NFT στο Ethereum +lang: el +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: Ένα λογότυπο Eth που προβάλλεται μέσω ολογράμματος. +summaryPoint1: Ένας τρόπος για να αντιπροσωπεύσετε οτιδήποτε μοναδικό ως περιουσιακό στοιχείο με βάση το Ethereum. +summaryPoint2: Τα NFT δίνουν περισσότερη δύναμη στους δημιουργούς περιεχομένου από ποτέ. +summaryPoint3: Υποστηρίζονται από έξυπνα συμβόλαια στο blockchain του Ethereum. +--- + +## Τι είναι τα NFT; {#what-are-nfts} + +Τα NFT είναι μοναδικά ψηφιακά στοιχεία. Κάθε NFT έχει διαφορετικές ιδιότητες (μη εναλλάξιμες) και είναι πραγματικά σπάνιο. Αυτό διαφέρει από ψηφιακά στοιχεία όπως τα ERC-20 όπου κάθε ψηφιακό στοιχείο σε ένα σύνολο είναι πανομοιότυπο και έχει τις ίδιες ιδιότητες («εναλλάξιμα»). Δε σας νοιάζει ποιο συγκεκριμένο χαρτονόμισμα δολαρίου έχετε στο πορτοφόλι σας, γιατί είναι όλα πανομοιότυπα και αξίζουν το ίδιο. Ωστόσο, σας _ενδιαφέρει_ ποιο συγκεκριμένο NFT κατέχετε, επειδή όλα έχουν ξεχωριστές ιδιότητες που τα διακρίνουν από τα άλλα ("μη εναλλάξιμα"). + +Η μοναδικότητα κάθε NFT επιτρέπει τη δημιουργία ψηφιακών αντικειμένων όπως η τέχνη, τα συλλεκτικά αντικείμενα ή ακόμα και τα ακίνητα, όπου ένα συγκεκριμένο και μοναδικό NFT αντιπροσωπεύει κάποιο συγκεκριμένο, μοναδικό και πραγματικό στον κόσμο ή ψηφιακό αντικείμενο. Η κυριότητα ενός ψηφιακού στοιχείου εξασφαλίζεται από το blockchain του Ethereum – κανείς δεν μπορεί να τροποποιήσει το αρχείο ιδιοκτησίας ή να αντιγράψει/επικολλήσει ένα νέο NFT με τα ίδια χαρακτηριστικά. + + + +## Το διαδίκτυο των περιουσιακών στοιχείων {#internet-of-assets} + +Τα NFT και το Ethereum λύνουν μερικά από τα προβλήματα που υπάρχουν σήμερα στο διαδίκτυο. Καθώς όλα γίνονται πιο ψηφιακά, υπάρχει ανάγκη να καθοριστούν οι ιδιότητες των φυσικών αντικειμένων, όπως η σπανιότητα, η μοναδικότητα και η απόδειξη ιδιοκτησίας. με τρόπο που δεν ελέγχεται από ένα κεντρικό οργανισμό. Για παράδειγμα, με τα NFT μπορείτε να κατέχετε ένα τραγούδι mp3 που δεν αφορά συγκεκριμένη εφαρμογή μουσικής μιας εταιρείας ή μπορείτε να κατέχετε ένα αναγνωριστικό μέσων κοινωνικής δικτύωσης που μπορείτε να πουλήσετε ή να ανταλλάξετε, αλλά δεν μπορεί να αφαιρεθεί αυθαίρετα από τον πάροχο της πλατφόρμας. + +Δείτε παρακάτω μια σύγκριση ενός διαδικτύου με NFT, σε σύγκριση με το διαδίκτυο που οι περισσότεροι από εμάς χρησιμοποιούμε μεχρι σήμερα... + +### Σύγκριση {#nft-comparison} + +| Το διαδίκτυο με NFT | Το σημερινό διαδίκτυο | +| ---------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Τα ψηφιακά στοιχεία ανήκουν σε εσάς! Μόνο εσείς μπορείτε να τα πουλήσετε ή να τα μετατρέψετε. | Ενοικιάζετε ένα περιουσιακό στοιχείο από κάποιον οργανισμό. | +| Τα NFT είναι ψηφιακά μοναδικά στοιχεία, κανένα NFT δεν είναι ίδιο με κάποιο άλλο. | Ένα αντίγραφο μιας οντότητας συχνά δεν μπορεί να εξακριβωθεί από το πρωτότυπο. | +| Η κυριότητα ενός NFT αποθηκεύεται στην κρυπτοαλυσίδα και μπορεί να το επαληθεύσει οποιοσδήποτε. | Τα αρχεία ιδιοκτησίας των ψηφιακών στοιχείων αποθηκεύονται σε διακομιστές που ελέγχονται από ιδρύματα – πρέπει να λάβετε γραπτή εγγύηση. | +| Τα NFT είναι έξυπνα συμβόλαια στο Ethereum. Αυτό σημαίνει ότι μπορούν εύκολα να χρησιμοποιηθούν σε άλλα έξυπνα συμβόλαια και εφαρμογές στο Ethereum! | Οι εταιρείες με ψηφιακά αντικείμενα απαιτούν συνήθως σύμφωνα με τους δικούς τους κανόνες. | +| Οι δημιουργοί περιεχομένου μπορούν να πωλούν την εργασία τους οπουδήποτε και να έχουν πρόσβαση στην παγκόσμια αγορά. | Οι δημιουργοί βασίζονται στην υποδομή και τη διανομή των πλατφορμών που κάνουν χρήση. Συχνά υπόκεινται σε όρους χρήσης και σε γεωγραφικούς περιορισμούς. | +| Οι δημιουργοί NFT μπορούν να διατηρήσουν τα δικαιώματα ιδιοκτησίας της δουλειάς τους και να προγραμματίσουν τα δικαιώματα στο συμβόλαιο NFT. | Πλατφόρμες, όπως οι υπηρεσίες ροής μουσικής, διατηρούν την πλειονότητα των κερδών από τις πωλήσεις τους. | + +## Πώς λειτουργούν τα NFT; {#how-nfts-work} + +Όπως κάθε ψηφιακό στοιχείο που εκδίδεται στο Ethereum, τα NFT εκδίδονται με έξυπνο συμβόλαιο. Το έξυπνο συμβόλαιο συμμορφώνεται με ένα από τα πολλά πρότυπα NFT (κοινώς ERC-721 ή ERC-1155) που ορίζουν ποιες λειτουργίες θα έχει το συμβόλαιο. Το συμβόλαιο μπορεί να δημιουργήσει («κοπή») NFT και να τα εκχωρήσει σε συγκεκριμένο ιδιοκτήτη. Η κυριότητα ορίζεται στο συμβόλαιο με την αντιστοίχιση συγκεκριμένων NFT σε συγκεκριμένες διευθύνσεις. Το NFT έχει ένα αναγνωριστικό και συνήθως μεταδεδομένα που σχετίζονται με αυτό που το κάνουν μοναδικό. + +Όταν κάποιος δημιουργεί ή κόβει ένα NFT, εκτελεί πραγματικά μια λειτουργία στο έξυπνο συμβόλαιο που εκχωρεί ένα συγκεκριμένο NFT στη διεύθυνσή του. Αυτές οι πληροφορίες αποθηκεύονται στο χώρο αποθήκευσης του συμβολαίου, το οποίο αποτελεί μέρος της κρυπτοαλυσίδας. Ο δημιουργός του συμβολαίου μπορεί να καταχωρήσει πρόσθετα στοιχεία στο συμβόλαιο, για παράδειγμα να περιορίσει τη συνολική προσφορά ή να ορίσει ένα ποσοστό κρατήσεων που πρέπει να καταβάλλεται στον δημιουργό κάθε φορά που μεταφέρεται ένα ψηφιακό στοιχείο. + +## Πού χρησιμοποιούνται τα NFT; {#nft-use-cases} + +Τα NFT χρησιμοποιούνται για πολλά πράγματα, όπως: + +- πιστοποιούν τη συμμετοχή σας σε μια εκδήλωση +- πιστοποιούν ότι ολοκληρώσατε ένα μάθημα +- την κατοχή αντικειμένων από παιχνίδια +- ψηφιακή τέχνη +- ψηφιοποίηση πραγματικών αντικειμένων +- πιστοποίηση της διαδικτυακής σας ταυτότητας +- πρόσβαση σε περιεχόμενο +- εισιτήρια +- αποκεντρωμένα ονόματα τομέα διαδικτύου +- υποθήκες σε DeFi + +Ίσως, είστε ένας καλλιτέχνης που θέλει να μοιραστεί τη δουλειά του χρησιμοποιώντας NFT, χωρίς να χάσετε τον έλεγχο και να θυσιάσετε τα κέρδη σας σε μεσάζοντες. Μπορείτε να δημιουργήσετε ένα νέο συμβόλαιο και να καθορίσετε τον αριθμό των NFT, τις ιδιότητές τους και έναν σύνδεσμο προς κάποιο συγκεκριμένο έργο τέχνης. Ως καλλιτέχνης, μπορείτε να προγραμματίσετε στο έξυπνο συμβόλαιο τα δικαιώματα που πρέπει να λάβετε (π.χ. να μεταφέρεται το 5% της τιμής πώλησης στον κάτοχο του συμβολαίου, κάθε φορά που μεταβιβάζεται ένα NFT). Μπορείτε επίσης να αποδείξετε πάντα ότι δημιουργήσατε τα NFT επειδή σας ανήκει το πορτοφόλι που δημιούργησε το συμβόλαιο. Οι αγοραστές σας μπορούν εύκολα να αποδείξουν ότι κατέχουν ένα αυθεντικό NFT από τη συλλογή σας, επειδή η διεύθυνση του πορτοφολιού τους σχετίζεται με ένα ψηφιακό στοιχείο από το έξυπνο συμβόλαιό σας. Μπορούν να το χρησιμοποιήσουν σε όλο το οικοσύστημα Ethereum, σίγουροι για την αυθεντικότητά του. + +Ή σκεφτείτε ένα εισιτήριο για ένα αθλητικό γεγονός. Ακριβώς όπως ένας διοργανωτής μιας εκδήλωσης μπορεί να επιλέξει πόσα εισιτήρια θα πουλήσει, ο δημιουργός ενός NFT μπορεί να αποφασίσει πόσα αντίγραφα θα υπάρχουν. Μερικές φορές είναι ακριβή αντίγραφα, όπως 5000 εισιτήρια γενικής εισόδου. Μερικές φορές δημιουργούνται αρκετά πολύ παρόμοια, αλλά το καθένα ελαφρώς διαφορετικό, όπως ένα εισιτήριο για μια προκαθορισμένη θέση. Μπορούν να αγοράζονται και να πωλούνται από χρήστη σε χρήστη χωρίς να πληρώνουν τα πωλητήρια εισιτηρίων και ο αγοραστής είναι πάντα με τη διασφάλιση της γνησιότητας του εισιτηρίου ελέγχοντας τη διεύθυνση του συμβολαίου. + +Στο ethereum.org, τα NFT χρησιμοποιούνται για να αποδείξουν τη συνεισφορά στο αποθετήριο GitHub ή ότι έχουν παρακολουθήσει συναντήσεις, ενώ έχουμε ακόμη και το δικό μας όνομα τομέα NFT. Εάν συμβάλλετε στο ethereum.org, μπορείτε να διεκδικήσετε ένα POAP NFT. Ορισμένες συναντήσεις για κρυπτονομίσματα έχουν χρησιμοποιήσει POAP ως εισιτήρια. [Περισσότερα για τον τρόπο συνεισφοράς](/contributing/#poap). + +![ethereum.org POAP](./poap.png) + +Αυτός ο ιστότοπος διαθέτει επίσης ένα εναλλακτικό όνομα τομέα που υποστηρίζεται από NFT, το **ethereum.eth**. Η διεύθυνση μας `.org` διαχειρίζεται κεντρικά από έναν πάροχο απόδοσης ονομάτων τομέα (DNS), ενώ το ethereum`.eth` έχει καταχωρηθεί στο Ethereum μέσω της Yπηρεσίας Oνοματοδοσίας του Ethereum (ENS). Είναι ιδιοκτησία μας και διαχειρίζεται από εμάς. [Ελέγξτε την εγγραφή μας ENS](https://app.ens.domains/name/ethereum.eth) + +[Περισσότερα για το EMS](https://app.ens.domains) + + + +### Ασφάλεια NFT {#nft-security} + +Η ασφάλεια του Ethereum προέρχεται από την απόδειξη συμμετοχής. Το σύστημα έχει σχεδιαστεί για να αποθαρρύνει οικονομικά τις κακόβουλες ενέργειες, καθιστώντας το Ethereum ανθεκτικό στις παραβιάσεις. Αυτό είναι που καθιστά δυνατή την ύπαρξη των NFT. Μόλις ολοκληρωθεί το μπλοκ που περιέχει τη συναλλαγή του NFT σας, θα κόστιζε σε έναν κακόβουλο εκατομμύρια ETH για να το τροποποιήσει. Όποιος εκτελεί λογισμικό Ethereum θα είναι αμέσως σε θέση να ανιχνεύσει κακόβουλη παραβίαση με ένα NFT, ο οποίος θα τιμωρείται οικονομικά και θα απομακρύνεται. + +Τα ζητήματα ασφαλείας που σχετίζονται με τα NFT συχνά σχετίζονται με απάτες, με τρωτά σημεία των έξυπνων συμβολαίων ή σφάλματα χρήστη (όπως ακούσια έκθεση των ιδιωτικών κλειδιών), καθιστώντας την καλή ασφάλεια του πορτοφολιού κρίσιμη για τους ιδιοκτήτες NFT. + + + Περισσότερα για την ασφάλεια + + +## Περισσότερες πληροφορίες {#further-reading} + +- [Οδηγόε για αρχάριους στα NFT](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, Ιανουάριος 2020_ +- [Ανιχνευτής EtherscanNFT](https://etherscan.io/nft-top-contracts) +- [Πρότυπο κρυπτονομισμάτων ERC-721](/developers/docs/standards/tokens/erc-721/) +- [Πρότυπο κρυπτονομισμάτων ERC-1155](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/public/content/translations/el/refi/index.md b/public/content/translations/el/refi/index.md new file mode 100644 index 00000000000..1dc368b5b1f --- /dev/null +++ b/public/content/translations/el/refi/index.md @@ -0,0 +1,79 @@ +--- +title: Αναγεννητική Τραπεζική (ReFi) +description: Μια επισκόπηση της ReFi και οι περιπτώσεις χρήσης της. +lang: el +template: use-cases +emoji: ":recycle:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Ένα εναλλακτικό οικονομικό σύστημα που βασίζεται σε αναγεννητικές αρχές. +summaryPoint2: Μια προσπάθεια αξιοποίησης του Ethereum για την επίλυση κρίσεων συντονισμού σε παγκόσμιο επίπεδο, όπως η κλιματική αλλαγή. +summaryPoint3: Ένα εργαλείο δραστικής κλιμάκωσης περιουσιακών στοιχείων οικολογικού οφέλους, όπως πιστοποιημένες αποτυπώσεις άνθρακα. +--- + +## Τι είναι η ReFi; {#what-is-refi} + +Η **Αναγεννητική τραπεζική (ReFi)** είναι ένα σύνολο εργαλείων και ιδεών που βασίζονται πάνω σε blockchain, στοχεύοντας στη δημιουργία οικονομιών που αναγεννιούνται και όχι από εξόρυξη ή εκμετάλλευση. Τελικά, τα συστήματα εξόρυξης εξαντλούν τους διαθέσιμους πόρους και καταρρέουν. Χωρίς αναγεννητικούς μηχανισμούς, τους λείπει η ανθεκτικότητα. Η ReFi λειτουργεί με την υπόθεση ότι η δημιουργία νομισματικής αξίας πρέπει να αποσυνδεθεί από τη μη βιώσιμη εξόρυξη πόρων από τον πλανήτη και τις κοινότητές μας. + +Αντίθετα, η ReFi στοχεύει στην επίλυση περιβαλλοντικών, κοινοτικών ή κοινωνικών προβλημάτων δημιουργώντας κύκλους αναγέννησης. Αυτά τα συστήματα δημιουργούν αξία για τους συμμετέχοντες ενώ ταυτόχρονα ωφελούν τα οικοσυστήματα και τις κοινότητες. + +Ένα από τα θεμέλια της ReFi είναι η έννοια της αναγεννητικής οικονομίας που πρωτοπαρουσιάστηκε από τον John Fullerton του [Capital Institute](https://capitalinstitute.org). Πρότεινε οκτώ αλληλένδετες αρχές που αποτελούν τη βάση της συστημικής υγείας: + +![Οκτώ αλληλένδετες αρχές](refi-regenerative-economy-diagram.png) + +Τα έργα ReFi υλοποιούν αυτές τις αρχές χρησιμοποιώντας [έξυπνα συμβόλαια](/developers/docs/smart-contracts/) και [αποκεντρωμένη χρηματοδότηση (DeFi)](/defi/) για δίνουν κίνητρα για αναγεννητικές συμπεριφορές, π.χ. την αποκατάσταση των υποβαθμισμένων οικοσυστημάτων και τη διευκόλυνση της μεγάλης κλίμακας συνεργασίας σε παγκόσμια ζητήματα όπως η κλιματική αλλαγή και η απώλεια βιοποικιλότητας. + +Η ReFi επικαλύπτεται επίσης με το κίνημα [αποκεντρωμένης επιστήμης (DeSci)](/desci/), το οποίο χρησιμοποιεί το Ethereum ως πλατφόρμα για τη χρηματοδότηση, τη δημιουργία, την αναθεώρηση, την πίστωση, την αποθήκευση και τη διάδοση της επιστημονικής γνώσης. Τα εργαλεία DeSci θα μπορούσαν να γίνουν χρήσιμα για την ανάπτυξη επαληθεύσιμων προτύπων και πρακτικών για την εφαρμογή και την παρακολούθηση αναγεννητικών δραστηριοτήτων όπως η φύτευση δέντρων, η αφαίρεση πλαστικού από τον ωκεανό ή η αποκατάσταση ενός υποβαθμισμένου οικοσυστήματος. + +## Tokenization των πιστώσεων άνθρακα {#tokenization-of-carbon-credits} + +Η **[εθελοντική αγορά άνθρακα (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** είναι ένας μηχανισμός χρηματοδότησης έργων με επαληθευμένο θετικό αντίκτυπο στις εκπομπές άνθρακα, είτε μειώνοντας τις συνεχιζόμενες εκπομπές είτε αφαιρώντας τα αέρια του θερμοκηπίου που ήδη εκπέμπονται, από την ατμόσφαιρα. Αυτά τα έργα λαμβάνουν ένα ψηφιακό στοιχείο που ονομάζεται «πιστώσεις άνθρακα» αφού επαληθευτούν, το οποίο μπορούν να πουλήσουν σε άτομα και οργανισμούς που θέλουν να υποστηρίξουν τις δράσεις για το κλίμα. + +Εκτός από το VCM, υπάρχουν επίσης αρκετές κυβερνητικές αγορές άνθρακα («αγορές συμμόρφωσης») που στοχεύουν στον καθορισμό της τιμής άνθρακα μέσω νόμων ή κανονισμών σε μια συγκεκριμένη δικαιοδοσία (π.χ. χώρα ή περιοχή), ελέγχοντας την παροχή αδειών που πρέπει να διανέμονται. Οι αγορές συμμόρφωσης δίνουν κίνητρα στους ρυπαίνοντες εντός της δικαιοδοσίας τους να μειώσουν τις εκπομπές, αλλά δεν είναι σε θέση να αφαιρέσουν τα αέρια του θερμοκηπίου που έχουν ήδη αποδεσμευτεί. + +Παρά την ανάπτυξή του τις τελευταίες δεκαετίες, το VCM συνεχίζει να υποφέρει από διάφορα ζητήματα: + +1. Υψηλή κατακερματισμένη ρευστότητα +2. Αδιαφανείς μηχανισμοί συναλλαγών +3. Υψηλές κρατήσεις +4. Πολύ αργή ταχύτητα συναλλαγών +5. Έλλειψη επεκτασιμότητας + +Η μετάβαση του VCM στη νέα **ψηφιακή αγορά άνθρακα (DCM)** που βασίζεται σε blockchain μπορεί να είναι μια ευκαιρία για την αναβάθμιση της υπάρχουσας τεχνολογίας για την επικύρωση, τη συναλλαγή και την κατανάλωση πιστώσεων άνθρακα. Οι blockchain επιτρέπουν την πρόσβαση σε δημόσια επαληθεύσιμα δεδομένα, σε ένα ευρύ φάσμα χρηστών, αποφέροντας περισσότερη ρευστότητα. + +Τα έργα ReFi χρησιμοποιούν τεχνολογία blockchain για να εξαλείψουν πολλά από τα προβλήματα της παραδοσιακής αγοράς: + +- **Η ρευστότητα συγκεντρώνεται σε έναν μικρό αριθμό δεξαμενών ρευστότητας** που μπορούν να συναλλάσσονται ελεύθερα από οποιονδήποτε. Μεγάλοι οργανισμοί καθώς και μεμονωμένοι χρήστες μπορούν να χρησιμοποιήσουν αυτές τις δεξαμενές χωρίς αυτόματες αναζητήσεις πωλητών/αγοραστών, τέλη συμμετοχής ή προηγούμενη εγγραφή. +- **Όλες οι συναλλαγές καταγράφονται σε δημόσιες κρυπτοαλυσίδες**. Η διαδρομή που ακολουθεί κάθε πίστωση άνθρακα λόγω της εμπορικής δραστηριότητας είναι ανιχνεύσιμη για πάντα μόλις γίνει διαθέσιμη στο DCM. +- **Η ταχύτητα συναλλαγής είναι σχεδόν άμεση**. Η εξασφάλιση μεγάλων ποσών πιστώσεων άνθρακα μέσω των αγορών παλαιού τύπου, μπορεί να διαρκέσει ημέρες ή εβδομάδες, αλλά αυτό μπορεί να επιτευχθεί σε λίγα δευτερόλεπτα με το DCM. +- **Η εμπορική δραστηριότητα πραγματοποιείται χωρίς μεσάζοντες**, οι οποίοι χρεώνουν υψηλές προμήθειες. Οι ψηφιακές πιστώσεις άνθρακα αντιπροσωπεύουν το [62% της βελτίωσης κόστους σε σύγκριση με τις αντίστοιχες παραδοσιακές πιστώσεις](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne), σύμφωνα με τα στοιχεία μιας εταιρείας ανάλυσης. +- **Το DCM είναι επεκτάσιμο** και μπορεί να καλύψει τις απαιτήσεις ιδιωτών και πολυεθνικών εταιρειών. + +### Βασικά στοιχεία του DCM {#key-components-dcm} + +Τέσσερα κύρια στοιχεία συνθέτουν το τρέχον τοπίο του DCM: + +1. Μητρώα όπως το [Verra](https://verra.org/project/vcs-program/registry-system/) και το [Gold Standard](https://www.goldstandard.org/) επιβεβαιώνουν ότι τα έργα που δημιουργούν πιστώσεις άνθρακα είναι αξιόπιστα. Διαχειρίζονται επίσης τις βάσεις δεδομένων από τις οποίες προέρχονται οι ψηφιακές πιστώσεις άνθρακα και μπορούν να μεταφερθούν ή να χρησιμοποιηθούν (αποσύρονται). + +Υπάρχει ένα νέο κύμα καινοτόμων έργων που χτίζονται σε blockchain που επιχειρούν να διαταράξουν τους κατεστημένους φορείς σε αυτόν τον τομέα. + +2. Γέφυρες άνθρακα, δηλαδή tokenizer, παρέχουν τεχνολογία για την αναπαράσταση ή τη μεταφορά πιστώσεων άνθρακα από παραδοσιακά μητρώα στο DCM. Αξιοσημείωτα παραδείγματα περιλαμβάνουν το [Πρωτόκολλο Toucan](https://toucan.earth/), [C3](https://c3.app/) και το [Moss.Earth](https://moss.earth/). +3. Οι ολοκληρωμένες υπηρεσίες προσφέρουν πιστώσεις αποφυγής ή/και αφαίρεσης άνθρακα στους τελικούς χρήστες, ώστε να μπορούν να διεκδικήσουν το περιβαλλοντικό όφελος μιας πίστωσης και να μοιραστούν την υποστήριξή τους στη δράση για το κλίμα με τον κόσμο. + +Ορισμένα, όπως το [Klima Infinity](https://www.klimadao.finance/infinity) και το [Senken](https://senken.io/) προσφέρουν μεγάλη ποικιλία έργων που αναπτύχθηκαν από τρίτους και εκδόθηκαν σύμφωνα με καθιερωμένα πρότυπα όπως το Verra και άλλα όπως το [Nori](https://nori.com/) προσφέρουν μόνο συγκεκριμένα έργα που έχουν αναπτυχθεί βάσει του δικού τους προτύπου πίστωσης άνθρακα, το οποίο εκδίδουν και για τα οποία έχουν τη δική τους αποκλειστική αγορά. + +4. Τα θεμέλια και οι υποδομές που διευκολύνουν την κλιμάκωση του αντίκτυπου και της αποτελεσματικότητας ολόκληρης της αλυσίδας εφοδιασμού της αγοράς άνθρακα. Το [KlimaDAO](http://klimadao.finance/) παρέχει ρευστότητα ως δημόσιο αγαθό (επιτρέποντας σε οποιονδήποτε να αγοράσει ή να πουλήσει πιστώσεις άνθρακα σε διαφανή τιμή), παρέχει κίνητρα για αυξημένη απόδοση των αγορών άνθρακα και συνταξιοδοτήσεις ως ανταμοιβή και παρέχει φιλικά προς τον χρήστη διαλειτουργικά εργαλεία για πρόσβαση σε δεδομένα, καθώς και για την απόκτηση και την απόσυρση μιας μεγάλης ποικιλίας πιστώσεων άνθρακα. + +## Η ReFi πέρα από τις αγορές άνθρακα {#refi-beyond} + +Αν και επί του παρόντος δίνεται μεγάλη έμφαση στις αγορές άνθρακα γενικά και στη μετάβαση του VCM στο DCM ειδικότερα εντός του χώρου, ο όρος «ReFi» δεν περιορίζεται αυστηρά στον άνθρακα. Άλλα περιβαλλοντικά πλεονεκτήματα πέρα από τις πιστώσεις άνθρακα μπορούν να αναπτυχθούν και να αναγνωριστούν, πράγμα που σημαίνει ότι άλλες αρνητικές εξωτερικές επιδράσεις μπορούν επίσης να αποτιμηθούν στα βασικά επίπεδα των μελλοντικών οικονομικών συστημάτων. Επιπλέον, η αναγεννητική πτυχή αυτού του οικονομικού μοντέλου μπορεί να εφαρμοστεί σε άλλους τομείς, όπως η χρηματοδότηση δημόσιων αγαθών μέσω τετραγωνικών πλατφορμών χρηματοδότησης όπως το [Gitcoin](https://gitcoin.co/). Οι οργανισμοί που βασίζονται στην ιδέα της ανοιχτής συμμετοχής και της δίκαιης κατανομής των πόρων δίνουν τη δυνατότητα σε όλους να διοχετεύουν χρήματα σε έργα λογισμικού ανοιχτού κώδικα, καθώς και σε εκπαιδευτικά, περιβαλλοντικά και κοινοτικά έργα. + +Μετατοπίζοντας την κατεύθυνση του κεφαλαίου μακριά από τις εξορυκτικές πρακτικές προς μια αναγεννητική ροή, τα έργα και οι εταιρείες που παρέχουν κοινωνικά, περιβαλλοντικά ή κοινοτικά οφέλη και που ενδέχεται να αποτύχουν τη χρηματοδότηση στην παραδοσιακή χρηματοδότηση, μπορούν να απογειωθούν και να δημιουργήσουν θετικές εξωτερικές επιδράσεις για την κοινωνία πολύ πιο γρήγορα και εύκολα. Η μετάβαση σε αυτό το μοντέλο χρηματοδότησης ανοίγει επίσης την πόρτα σε πολύ πιο περιεκτικά οικονομικά συστήματα, όπου άτομα όλων των δημογραφικών ομάδων μπορούν να γίνουν ενεργοί συμμετέχοντες και όχι απλώς παθητικοί παρατηρητές. Το ReFi προσφέρει ένα όραμα του Ethereum ως μηχανισμού συντονισμού δράσης στις υπαρξιακές προκλήσεις που αντιμετωπίζει το είδος μας και όλη η ζωή στον πλανήτη μας, ως το βασικό στρώμα ενός νέου οικονομικού παραδείγματος, που επιτρέπει ένα πιο περιεκτικό και βιώσιμο μέλλον για τους επόμενους αιώνες. + +## Διαβάστε περισσότερα για τη ReFi + +- [Μια επισκόπηση υψηλού επιπέδου των νομισμάτων άνθρακα και της θέσης τους στην οικονομία](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) +- [Το Υπουργείο για το Μέλλον, ένα μυθιστόρημα που παρουσιάζει το ρόλο ενός νομίσματος που υποστηρίζεται από άνθρακα στην καταπολέμηση της κλιματικής αλλαγής](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) +- [Λεπτομερής αναφορά από την Taskforce for Scaling Voluntary Markets Carbon](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) +- [Καταχώρηση στο γλωσσάρι του CoinMarketCap του Kevin Owocki και του Evan Miyazono στο ReFi](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/public/content/translations/el/roadmap/beacon-chain/index.md b/public/content/translations/el/roadmap/beacon-chain/index.md new file mode 100644 index 00000000000..5b43c77f51e --- /dev/null +++ b/public/content/translations/el/roadmap/beacon-chain/index.md @@ -0,0 +1,64 @@ +--- +title: Η κύρια αλυσίδα (Beacon Chain) +description: Μάθετε για το beacon chain - την πρώτη σημαντική αναβάθμιση Eth2 σε Ethereum. +lang: el +template: upgrade +image: /upgrades/core.png +alt: +summaryPoint1: Η εφαρμογή της κύριας αλυσίδας δεν αλλάζει τίποτα για το Ethereum όπως το χρησιμοποιούμε μέχρι σήμερα +summaryPoint2: Θα κατευθύνει το δίκτυο +summaryPoint3: Θα προσθέσει τα αποδεικτικά επεξεργασίας (proof-of-stake) στο οικοσύστημα του Ethereum +summaryPoint4: Μπορεί να το γνωρίζετε αυτό ως "Φάση 0" σε τεχνικούς όρους +--- + + + Η κύρια αλυσίδα ανακοινώθηκε στις 1 Δεκεμβρίου το μεσημέρι UTC. Για να μάθετε περισσότερα, εξερευνήστε τα δεδομένα. Αν θέλετε να βοηθήσετε στην επικύρωση της αλυσίδας "chain", μπορείτε να δεσμεύσετε (stake) τα ETH σας. + + +## Τι ακριβώς κάνει η κύρια αλυσίδα; {#what-does-the-beacon-chain-do} + +Η κύρια αλυσίδα θα διεξάγει ή θα συντονίζει το διευρυμένο δίκτυο των [shards](/roadmap/danksharding/) και των [stakers](/staking/). Αλλά δεν θα είναι όπως το σημερινό [κεντρικό δίκτυο του Ethereum](/glossary/#mainnet). Δεν μπορεί να χειριστεί λογαριασμούς ή έξυπνα συμβόλαια. + +Ο ρόλος της κύρια αλυσίδας θα αλλάξει με την πάροδο του χρόνου, αλλά είναι ένα θεμελιώδες συστατικό για [ένα ασφαλές, βιώσιμο και κλιμακούμενο Ethereum προς το οποίο εργαζόμαστε](/roadmap/vision/). + +## Χαρακτηριστικά της κύριας αλυσίδας {#beacon-chain-features} + +### Παρουσιάζοντας το staking {#introducing-staking} + +Η κύρια αλυσίδα θα εισαγάγει το [proof-of-stake](/developers/docs/consensus-mechanisms/pos/) στο Ethereum. Ένα νέο τρόπο για να σας βοηθήσει να διατηρήσετε το Ethereum ασφαλές. Σκεφτείτε το σαν δημόσιο αγαθό που θα κάνει το Ethereum πιο υγιές και θα σας αποδώσει περισσότερο ETH κατά την παραγωγή του. Στην πράξη, θα σας εμπλέξει στην αποθήκευση (staking) ETH προκειμένου να ενεργοποιήσετε το λογισμικό επικύρωσης. Ως επικυρωτής θα επεξεργάζεστε συναλλαγές και θα δημιουργείτε νέα μπλοκ στην αλυσίδα (chain). + +Το Staking (αποθήκευση) και η λειτουργία σας ως επικυρωτής, είναι ευκολότερη από την [εξόρυξη](/developers/docs/mining/) (πώς είναι το δίκτυο ασφαλισμένο επί του παρόντος). Με την ελπίδα να βοηθήσει το Ethereum να γίνει πιο ασφαλές μακροπρόθεσμα. Όσο περισσότεροι άνθρωποι συμμετέχουν στο δίκτυο, τόσο πιο αποκεντρωμένο και ασφαλές από μια επίθεση θα μπορέσει να γίνει. + + +Αν ενδιαφέρεστε να γίνετε επικυρωτής και να βοηθήσετε στην ασφάλιση του Beacon Chain, μάθετε περισσότερα για το staking. + + +Αυτή είναι επίσης μια σημαντική αλλαγή για τη δεύτερη αναβάθμιση Eth2: [shard chains](/roadmap/danksharding/). + +### Ρύθμιση για τις shard chains {#setting-up-for-shard-chains} + +Οι shard chains θα είναι η δεύτερη αναβάθμιση του Eth2. Θα αυξήσουν τη χωρητικότητα του δικτύου και θα βελτιώσουν την ταχύτητα των συναλλαγών επεκτείνοντας το δίκτυο σε 64 blockchains. Η κύρια αλυσίδα είναι το πρώτο σημαντικό βήμα για την εισαγωγή των shard chains, επειδή απαιτούν το staking για να λειτουργήσουν με ασφάλεια. + +Τελικά η κύρια αλυσίδα θα είναι επίσης υπεύθυνη για την τυχαία ανάθεση στους stakers, την επικύρωση των shard chains. Αυτό είναι το κλειδί για να καταστήσει δύσκολο στους stakers να συμπράξουν και να αναλάβουν ένα shard. Το οποίο σημαίνει ότι έχουν [πιθανότητες λιγότερο από ένα 1 στο τρισεκατομμύριο](https://medium.com/@chihchengliang/minimum-committee-size-explained-67047111fa20). + +## Σχέση μεταξύ των αναβαθμίσεων {#relationship-between-upgrades} + +Οι αναβαθμίσεις του Eth2 είναι με κάποιο τρόπο αλληλένδετες. Ας ανακεφαλαιώσουμε λοιπόν πώς η κύρια αλυσίδα επηρεάζει τις άλλες αναβαθμίσεις. + +### Το κεντρικό δίκτυο και η κύρια αλυσίδα {#mainnet-and-beacon-chain} + +Η κύρια αλυσίδα αρχικά, θα υπάρχει ξεχωριστά στο κεντρικό δίκτυο του Ethereum που χρησιμοποιούμε σήμερα. Τελικά όμως θα συνδεθούν. Το σχέδιο είναι να "ενσωματωθεί" το κεντρικό δίκτυο στο σύστημα proof-of-stake που ελέγχεται και συντονίζεται από την κύρια αλυσίδα. + +Η ενσωμάτωση + +### Τα Shards και η κύρια αλυσίδα {#shards-and-beacon-chain} + +Οι Shard chains μπορούν να εισέλθουν με ασφάλεια στο οικοσύστημα του Ethereum μόνο με έναν μηχανισμό επαλήθευσης (proof-of-stake). Η κύρια αλυσίδα θα εισαγάγει το staking, ανοίγοντας το δρόμο για την αναβάθμιση της shard chain. + +Shard chains + + + +## Αλληλεπίδραση με την κύρια αλυσίδα {#interact-with-beacon-chain} + + diff --git a/public/content/translations/el/roadmap/merge/index.md b/public/content/translations/el/roadmap/merge/index.md new file mode 100644 index 00000000000..c3fbfc9d815 --- /dev/null +++ b/public/content/translations/el/roadmap/merge/index.md @@ -0,0 +1,48 @@ +--- +title: Ενσωμάτωση του κεντρικού δικτύου με το Eth2 +description: Μάθετε για την ενσωμάτωση - όταν το κεντρικό δίκτυο του Ethereum θα συνδεθεί με το Beacon Chain, το συντονισμένο σύστημα proof-of-stake. +lang: el +template: upgrade +image: /upgrades/merge.png +alt: +summaryPoint1: Τελικά το τρέχον κεντρικό δίκτυο του Ethereum θα "ενσωματωθεί" με τις υπόλοιπες αναβαθμίσεις του Eth2. +summaryPoint2: Η ενσωμάτωση αυτή θα συγχωνεύσει το κεντρικό δίκτυο του "Eth1" με το beacon chain του Eth2 και το σύστημα διαλογής (sharding system). +summaryPoint3: Αυτό θα σηματοδοτήσει το τέλος του proof-of-work για το Ethereum και την πλήρη μετάβαση στο proof of stake. +summaryPoint4: Μπορεί να το γνωρίζετε αυτό ως "Φάση 1.5" με τεχνικούς όρους. +--- + + + Με αυτή την αναβάθμιση θα ακολουθήσει η άφιξη των shard chains. Αλλά είναι η στιγμή που το όραμα του Eth2 θα υλοποιηθεί πλήρως – με μεγαλύτερη επεκτασιμότητα, ασφάλεια και επιβιωσιμότητα με την υποστήριξη ολόκληρου του δικτύου. + + +## Ποια είναι η ενσωμάτωση; {#what-is-the-docking} + +Είναι σημαντικό να θυμόμαστε ότι αρχικά, οι υπόλοιπες αναβαθμίσεις του Eth2 αποστέλλονται ξεχωριστά από το [κεντρικό δίκτυο](/glossary/#mainnet) - την αλυσίδα (chain) που χρησιμοποιούμε σήμερα. Το κεντρικό δίκτυο του Ethereum θα συνεχίσει να ασφαλίζεται με το λεγόμενο [proof-of-work](/developers/docs/consensus-mechanisms/pow/), ακόμη και όταν [η Beacon Chain](/roadmap/beacon-chain/) και οι [shard chains](/roadmap/danksharding/) θα εκτελούνται παράλληλα χρησιμοποιώντας το [proof of stake](/developers/docs/consensus-mechanisms/pos/). Η ενσωμάτωση θα πραγματοποιηθεί όταν αυτά τα δύο συστήματα θα συγχωνευτούν. + +Φανταστείτε το Ethereum να είναι ένα διαστημόπλοιο που δεν είναι αρκετά έτοιμο για ένα διαστρικό ταξίδι του. Με την Beacon Chain και τις shard chains η κοινότητα έχει χτίσει ένα νέο κινητήρα και ένα ποιο ανθεκτικό κύτος. Όταν έρθει η ώρα, το διαστημόπλοιο θα προσγειωθεί με αυτό το νέο σύστημα, έτσι ώστε να μπορεί να καταστεί έτοιμο να τεθεί σε σοβαρά έτη φωτός και να επικρατήσει στο σύμπαν. + +## Ενσωμάτωση κεντρικού δικτύου {#docking-mainnet} + +Όταν είναι έτοιμο, το κεντρικό δίκτυο του Ethereum θα "συνδεθεί" με την Beacon Chain και θα γίνει το δικό του σύστημα που θα χρησιμοποιεί το proof-of-stake αντί για το [proof of work](/developers/docs/consensus-mechanisms/pow/). + +Το Κεντρικό δίκτυο θα φέρει τη δυνατότητα να διαχειρίζεται Smart Contract με το σύστημα proof-of-stake, συν το πλήρες ιστορικό και την τρέχουσα κατάσταση του Ethereum, για να διασφαλιστεί ότι η μετάβαση θα είναι ομαλή για όλους τους κατόχους και τους χρήστες του ETH. + +## Μετά την ενσωμάτωση {#after-the-docking} + +Αυτό θα σηματοδοτήσει το τέλος του proof-of-work για το Ethereum και θα ξεκινήσει την εποχή ενός πιο βιώσιμου, φιλικού προς το περιβάλλον Ethereum. Σε αυτό το σημείο το Ethereum θα έχει την κλίμακα, την ασφάλεια και τη βιωσιμότητα που περιγράφεται στο [όραμα Eth2](/roadmap/vision/). + +## Σχέση μεταξύ των αναβαθμίσεων {#relationship-between-upgrades} + +Οι αναβαθμίσεις του Eth2 είναι με κάποιο τρόπο αλληλένδετες. Ας ανακεφαλαιώσουμε λοιπόν πώς η ενσωμάτωση επηρεάζει τις υπόλοιπες αναβαθμίσεις. + +### Η ενσωμάτωση και η κύρια αλυσίδα {#docking-and-beacon-chain} + +Μόλις συμβεί η ενσωμάτωση, οι stakers θα αφοσιωθούν στην επικύρωση του κεντρικού δικτύου του Ethereum. Ακριβώς όπως και με τις shard chains. [Η εξόρυξη](/developers/docs/consensus-mechanisms/pow/mining/) δεν θα απαιτείται πλέον και έτσι οι εξορύκτες πιθανότατα να επενδύσουν τα κέρδη τους στο νέο σύστημα proof-of-stake. + +Το Beacon Chain + +### Η ενσωμάτωση και οι shard chains {#docking-and-shard-chains} + +Με το κεντρικό δίκτυο να γίνεται ένα shard, η επιτυχής εφαρμογή των shard chains είναι κρίσιμη για αυτή την αναβάθμιση. Είναι πιθανό η μετάβαση να διαδραματίσει σημαντικό ρόλο βοηθώντας την κοινότητα να αποφασίσει αν θα ξεκινήσει μια δεύτερη αναβάθμιση για το sharding. Αυτή η αναβάθμιση θα κάνει τα άλλα shards όπως το Mainnet: θα είναι σε θέση να χειριστεί συναλλαγές και Smart Contract και όχι μόνο να παρέχει περισσότερα δεδομένα.Shard chains + +Shard chains diff --git a/public/content/translations/el/smart-contracts/index.md b/public/content/translations/el/smart-contracts/index.md new file mode 100644 index 00000000000..5527b12554b --- /dev/null +++ b/public/content/translations/el/smart-contracts/index.md @@ -0,0 +1,84 @@ +--- +title: Έξυπνα συμβόλαια +description: Μια μη τεχνική εισαγωγή στα έξυπνα συμβόλαια +lang: el +--- + +# Εισαγωγή στα έξυπνα συμβόλαια {#introduction-to-smart-contracts} + +Τα έξυπνα συμβόλαια αποτελούν τα θεμελιώδη δομικά στοιχεία του επιπέδου εφαρμογών του Ethereum. Είναι προγράμματα υπολογιστών που είναι αποθηκευμένα στην κρυπτοαλυσίδα, τα οποία ακολουθούν τη λογική «αν συμβεί αυτό, τότε αυτό» και είναι εγγυημένα ότι εκτελούνται σύμφωνα με τους κανόνες που ορίζονται από τον κώδικά του, ο οποίος δεν μπορεί να αλλάξει από τη στιγμή που θα δημιουργηθεί. + +Ο Nick Szabo επινόησε τον όρο «έξυπνο συμβόλαιο». Το 1994, έγραψε [μια εισαγωγή σε αυτή την έννοια](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html) και το 1996 [μια ερεύνα για το τι θα μπορούσαν να κάνουν τα έξυπνα συμβόλαια](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). + +Ο Szabo οραματίστηκε μια ψηφιακή αγορά όπου οι αυτόματες και κρυπτογραφικά ασφαλείς διαδικασίες επιτρέπουν τις συναλλαγές και τις επιχειρηματικές λειτουργίες να πραγματοποιούνται χωρίς την ανάγκη αξιόπιστων μεσαζόντων. Τα έξυπνα συμβόλαια στο Ethereum κάνουν το όραμα πράξη. + +## Εμπιστοσύνη στα συμβατικά συμβόλαια {#trust-and-contracts} + +Ένα από τα μεγαλύτερα προβλήματα με ένα παραδοσιακό συμβόλαιο, είναι η ανάγκη ύπαρξης αξιόπιστων ατόμων για ορθά αποτελέσματα. + +Δείτε ένα παράδειγμα: + +Η Alice και ο Bob θα κάνουν έναν αγώνα ποδηλάτου. Ας πούμε ότι η Alice στοιχηματίζει με τον Bob $10 πως θα κερδίσει τον αγώνα. Ο Bob είναι σίγουρος ότι θα είναι νικητής και συμφωνεί με αυτό το στοίχημα. Στο τέλος, η Alice τελειώνει τον αγώνα πολύ μπροστά από τον Μπομπ και είναι η ξεκάθαρη νικήτρια. Αλλά ο Bob αρνείται να πληρώσει το στοίχημα, ισχυριζόμενος ότι η Alice έκλεψε στον αγώνα. + +Αυτό το χαζό παράδειγμα καταδεικνύει το πρόβλημα με οποιοδήποτε μη έξυπνο συμβόλαιο. Ακόμη και αν πληρούνται οι προϋποθέσεις της συμφωνίας (δηλ. είσαστε ο νικητής του αγώνα), θα πρέπει να εμπιστευθείτε ένα άλλο άτομο για να εκπληρώσει τη συμφωνία (δηλ. την πληρωμή του στοιχήματος). + +## Ένας ψηφιακός αυτόματος πωλητής {#vending-machine} + +Ένα απλό παράδειγμα έξυπνου συμβολαίου είναι μια μηχανή αυτόματης πώλησης, η οποία λειτουργεί κάπως παρόμοια με ένα έξυπνο συμβόλαιο όπου συγκεκριμένες ενέργειες εγγυώνται προκαθορισμένα αποτελέσματα. + +- Επιλέγετε ένα προϊόν +- Ο αυτόματος πωλητής εμφανίζει την τιμή +- Πληρώνετε το τίμημα +- Ο αυτόματος πωλητής επαληθεύει ότι πληρώσατε το σωστό ποσό +- Ο αυτόματος πωλητής σας δίνει το αντικείμενο σας + +Ο αυτόματος πωλητής θα σας δώσει το προϊόν σας μόνο όταν θα πληρούνται όλες οι προϋποθέσεις. Αν δεν επιλέξετε ένα προϊόν ή δεν εισάγετε αρκετά χρήματα, ο αυτόματος πωλητής δε θα σας δώσει το προϊόν. + +## Αυτόματη εκτέλεση {#automation} + +Το κύριο πλεονέκτημα ενός έξυπνου συμβολαίου είναι ότι εκτελεί πάντοτε τον σαφή κώδικα όταν πληρούνται συγκεκριμένες προϋποθέσεις. Δε χρειάζεται να περιμένουμε κάποιον να ερμηνεύσει ή να διαπραγματευτεί το αποτέλεσμα. Με αυτό τον τρόπο αφαιρείται η ανάγκη για αξιόπιστους μεσάζοντες. + +Για παράδειγμα, θα μπορούσατε να συντάξετε ένα έξυπνο συμβόλαιο που κρατά κεφάλαια αποταμίευσης για ένα παιδί, επιτρέποντάς το να αποσύρει αυτά τα κεφάλαια μετά από μια συγκεκριμένη ημερομηνία. Εάν προσπαθήσει να κάνει ανάληψη πριν από αυτή την ημερομηνία, το έξυπνο συμβόλαιο δε θα εκτελεστεί. Διαφορετικά, θα μπορούσατε να συντάξετε ένα συμβόλαιο που σας δίνει αυτόματα μια ψηφιακή έκδοση του τίτλου ενός αυτοκινήτου όταν πληρώσετε τον αντιπρόσωπο. + +## Προβλέψιμα αποτελέσματα {#predictability} + +Τα παραδοσιακά συμβόλαια είναι διφορούμενα επειδή βασίζονται στον άνθρωπο για την ερμηνεία και την εφαρμογή τους. Για παράδειγμα, δύο δικαστές πιθανός να ερμηνεύσουν διαφορετικά ένα συμβόλαιο, γεγονός που θα μπορούσε να οδηγήσει σε ασυνεπείς αποφάσεις και άνισα αποτελέσματα. Τα έξυπνα συμβόλαια αφαιρούν αυτή την πιθανότητα. Αντιθέτως, τα έξυπνα συμβόλαια εκτελούνται ακριβώς με βάση τους όρους που αναγράφονται στον κώδικα της σύμβασης. Αυτή η ακρίβεια σημαίνει ότι, δεδομένων των ίδιων περιστάσεων, ένα έξυπνο συμβόλαιο θα αποδώσει το ίδιο αποτέλεσμα. + +## Δημόσια εγγραφή {#public-record} + +Τα έξυπνα συμβόλαια είναι χρήσιμα στον έλεγχο και παρακολούθηση. Δεδομένου ότι τα έξυπνα συμβόλαια του Ethereum βρίσκονται σε δημόσια κρυπτοαλυσίδα, ο καθένας μπορεί να παρακολουθήσει άμεσα τις μεταφορές περιουσιακών στοιχείων και άλλες σχετικές πληροφορίες. Για παράδειγμα, μπορείτε να ελέγξετε ότι κάποιος έστειλε χρήματα στη διεύθυνσή σας. + +## Προστασία ιδιωτικότητας {#privacy-protection} + +Τα έξυπνα συμβόλαια προστατεύσουν επίσης το απόρρητό σας. Δεδομένου ότι το Ethereum είναι ένα δίκτυο με ψευδώνυμα (οι συναλλαγές σας συνδέονται δημοσίως με μια μοναδική κρυπτογραφημένη διεύθυνση και όχι με την ταυτότητά σας), μπορείτε να προστατεύσετε το απόρρητο σας από παρατηρητές. + +## Ορατοί όροι {#visible-terms} + +Τέλος, όπως τα παραδοσιακά συμβόλαια, μπορείτε να ελέγξετε τι υπάρχει σε ένα έξυπνο συμβόλαιο πριν το υπογράψετε (ή να το χειριστείτε διαφορετικά). Η διαφάνεια ενός έξυπνου συμβολαίου εγγυάται ότι ο καθένας μπορεί να το ελέγξει. + +## Χρήσεις ενός έξυπνου συμβολαίου {#use-cases} + +Τα έξυπνα συμβόλαια μπορούν να κάνουν ουσιαστικά οτιδήποτε μπορούν να κάνουν τα προγράμματα υπολογιστών. + +Μπορούν να εκτελέσουν υπολογισμούς, να δημιουργήσουν ένα νόμισμα, να αποθηκεύσουν δεδομένα, να δημιουργήσουν NFT, να επικοινωνήσουν, ακόμη και να δημιουργήσουν γραφικά. Δείτε μερικά δημοφιλή, αληθινά παραδείγματα: + +- [Κρυπτονομίσματα σταθερής αξίας](/stablecoins/) +- [Δημιουργία και διανομή μοναδικών ψηφιακών περιουσιακών στοιχείων](/nft/) +- [Ένα αυτόματο, ανοικτό ανταλλακτήριο νομισμάτων](/get-eth/#dex) +- [Αποκεντρωμένα παιχνίδια](/dapps/?category=gaming) +- [Μια πολιτική ασφάλισης που πληρώνει αυτόματα](https://etherisc.com/) +- [Ένα πρότυπο που επιτρέπει στους ανθρώπους να δημιουργήσουν προσαρμοσμένα και διαλειτουργικά νομίσματα](/developers/docs/standards/tokens/) + +## Περισσότερα από έναν εικονικό μαθητή; {#visual-learner} + +Δείτε τη Finematics να εξηγεί τα έξυπνα συμβόλαια: + + + +## Περισσότερες πληροφορίες {#further-reading} + +- [Πώς θα αλλάξουν τον κόσμο τα έξυπνα συμβόλαια](https://www.youtube.com/watch?v=pA6CGuXEKtQ) +- [Έξυπνα Συμβόλαια: Η τεχνολογία blockchain που θα αντικαταστήσει τους δικηγόρους](https://blockgeeks.com/guides/smart-contracts/) +- [Έξυπνες συμβόλαια για προγραμματιστές](/developers/docs/smart-contracts/) +- [Μάθετε να συντάσσετε έξυπνα συμβόλαια](/developers/learning-tools/) +- [Mastering Ethereum - Τι είναι ένα έξυπνο συμβόλαιο;](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/el/social-networks/index.md b/public/content/translations/el/social-networks/index.md new file mode 100644 index 00000000000..8fea2aeb309 --- /dev/null +++ b/public/content/translations/el/social-networks/index.md @@ -0,0 +1,121 @@ +--- +title: Αποκεντρωμένα κοινωνικά δίκτυα +description: Μια επισκόπηση των αποκεντρωμένων κοινωνικών δικτύων στο Ethereum +lang: el +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: /ethereum-learn.png +summaryPoint1: Πλατφόρμες βασισμένες στο Blockchain για κοινωνική αλληλεπίδραση, δημιουργία και διανομή περιεχομένου. +summaryPoint2: Τα αποκεντρωμένα κοινωνικά δίκτυα μέσων ενημέρωσης, προστατεύουν την ιδιωτικότητα των χρηστών και ενισχύουν την ασφάλεια των δεδομένων. +summaryPoint3: Τα κρυπτονομίσματα και τα NFT δημιουργούν νέους τρόπους δημιουργίας κέρδους από περιεχόμενο. +--- + +Τα κοινωνικά δίκτυα έχουν τεράστιο ρόλο στις καθημερινές μας επικοινωνίες και αλληλεπιδράσεις. Ωστόσο, ο κεντρικός έλεγχος αυτών των πλατφορμών έχει δημιουργήσει πολλά προβλήματα: παραβιάσεις δεδομένων, διακοπές του διακομιστή, de-platforming, λογοκρισία και παραβιάσεις των προσωπικών δεδομένων είναι μερικές από τις συνέπειες που τα μέσα κοινωνικής δικτύωσης κάνουν συχνά. Για την καταπολέμηση αυτών των θεμάτων, οι προγραμματιστές φτιάχνουν κοινωνικά δίκτυα στο Ethereum. Τα αποκεντρωμένα κοινωνικά δίκτυα μπορούν να διορθώσουν αρκετά από τα προβλήματα των παραδοσιακών πλατφορμών κοινωνικής δικτύωσης και να βελτιώσουν τη συνολική εμπειρία των χρηστών. + +## Αποκεντρωμένα κοινωνικά δίκτυα {#what-are-decentralized-social-networks} + +Τα αποκεντρωμένα κοινωνικά δίκτυα είναι πλατφόρμες βασισμένες στο blockchain που επιτρέπουν στους χρήστες να ανταλλάσσουν πληροφορίες, καθώς και να δημοσιεύουν και να διανέμουν περιεχόμενο σε ακροατήρια. Επειδή αυτές οι εφαρμογές λειτουργούν στο blockchain, μπορούν να αποκεντρωθούν και είναι ανθεκτικές στη λογοκρισία και τον αδικαιολόγητο έλεγχο. + +Πολλά αποκεντρωμένα κοινωνικά δίκτυα υπάρχουν ως εναλλακτικές λύσεις σε καθιερωμένες υπηρεσίες κοινωνικών μέσων, όπως το Facebook, το LinkedIn, το Twitter και το Medium. Ωστόσο, τα κοινωνικά δίκτυα που υποστηρίζονται από κρυπτοαλυσίδα έχουν μια σειρά από χαρακτηριστικά που τα τοποθετούν μπροστά από τις παραδοσιακές κοινωνικές πλατφόρμες. + +### Λειτουργία των αποκεντρωμένων κοινωνικών δικτύων {#decentralized-social-networks-overview} + +Τα αποκεντρωμένα κοινωνικά δίκτυα είναι μια κατηγορία [αποκεντρωμένων εφαρμογών (dapps)](/dapps/). Εφαρμογές που υποστηρίζονται από [έξυπνα συμβόλαια](/developers/docs/smart-contracts/) που αναπτύσσονται στην κρυπτοαλυσίδα. Ο κωδικός συμβολαίου χρησιμεύει ως υποστήριξη για αυτές τις εφαρμογές και καθορίζει την επιχειρηματική τους λογική. + +Οι παραδοσιακές πλατφόρμες μέσων κοινωνικής δικτύωσης βασίζονται σε βάσεις δεδομένων για την αποθήκευση των πληροφοριών χρήστη, του κώδικα προγράμματος και άλλων μορφών δεδομένων. Αυτό δημιουργεί ορισμένα σημεία αποτυχίας και προσθέτει σημαντική επικινδυνότητα. Για παράδειγμα, οι διακομιστές του Facebook [βγήκαν πέρυσι εκτός σύνδεσης για ώρες](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact), αποκόπτοντας τους χρήστες από την πλατφόρμα. + +Τα αποκεντρωμένα κοινωνικά δίκτυα υπάρχουν σε ένα δίκτυο από χρήστη σε χρήστη περιλαμβάνοντας χιλιάδες κόμβους σε όλο τον κόσμο. Ακόμα και αν κάποιοι κόμβοι αποτύχουν, το δίκτυο θα λειτουργεί αδιάκοπα, καθιστώντας τις εφαρμογές ανθεκτικές σε αστοχίες και διακοπές λειτουργίας. + +Χρησιμοποιώντας αποκεντρωμένα συστήματα αποθήκευσης όπως το [InterPlanetary File System (IPFS)](https://ipfs.io/), τα κοινωνικά δίκτυα που δημιουργήθηκαν στο Ethereum μπορούν να προστατεύσουν τις πληροφορίες των χρηστών από διαρροή και κακόβουλη χρήση. Κανείς δε θα πουλήσει τα προσωπικά σας στοιχεία σε διαφημιστές, ούτε οι χάκερ θα μπορούν να κλέψουν τα εμπιστευτικά σας στοιχεία. + +Πολλές πλατφόρμες κοινωνικής δικτύωσης που βασίζονται σε blockchain διαθέτουν δικό τους κρυπτονόμισμα ενισχύοντας τη δημιουργία εσόδων χωρίς τη χρήση διαφημίσεων. Οι χρήστες μπορούν να αγοράσουν αυτά τα ψηφιακά στοιχεία για να αποκτήσουν πρόσβαση σε ορισμένες λειτουργίες, να ολοκληρώσουν αγορές εντός της εφαρμογής ή να δώσουν συμβουλές στους αγαπημένους τους δημιουργούς περιεχομένου. + +## Πλεονεκτήματα αποκεντρωμένων κοινωνικών δικτύων {#benefits} + +1. Τα αποκεντρωμένα κοινωνικά δίκτυα είναι ανθεκτικά στη λογοκρισία και είναι ανοιχτά για όλους. Αυτό σημαίνει ότι οι χρήστες δεν μπορούν να αποκλειστούν, να τροποποιηθούν ή να περιοριστούν αυθαίρετα. + +2. Τα αποκεντρωμένα κοινωνικά δίκτυα έχουν δημιουργηθεί με εφαρμογές ανοιχτού κώδικα και καθιστούν τον πηγαίο κώδικά τους διαθέσιμο για δημόσιο έλεγχο. Καταργώντας την εφαρμογή αδιαφανών αλγορίθμων που είναι κοινά στα παραδοσιακά μέσα κοινωνικής δικτύωσης, αυτά που βασίζονται σε τεχνολογία blockchain μπορούν να ευθυγραμμίσουν τα ενδιαφέροντα των χρηστών και των δημιουργών πλατφορμών. + +3. Τα αποκεντρωμένα κοινωνικά δίκτυα εξαλείφουν τον «μεσάζοντα». Οι δημιουργοί περιεχομένου έχουν άμεση κυριότητα του περιεχομένου τους και αλληλεπιδρούν απευθείας με τους ακόλουθους, τους θαυμαστές, τους αγοραστές και άλλους, μόνο με τη μεσολάβηση του έξυπνου συμβολαίου μεταξύ τους. + +4. Καθώς οι dapp που εκτελούνται στο δίκτυο Ethereum, το οποίο υποστηρίζεται από ένα παγκόσμιο από χρήστη σε χρήστη δίκτυο κόμβων, τα αποκεντρωμένα κοινωνικά δίκτυα είναι λιγότερο επιρρεπή σε σφάλματα διακομιστή και διακοπές λειτουργίας. + +5. Οι αποκεντρωμένες πλατφόρμες κοινωνικής δικτύωσης προσφέρουν ένα βελτιωμένο πλαίσιο δημιουργίας εσόδων για δημιουργούς περιεχομένου, μέσω των μη εναλλάξιμων διακριτικών (NFT), πληρωμών κρυπτονομισμάτων εντός εφαρμογής και άλλων. + +6. Τα αποκεντρωμένα κοινωνικά δίκτυα προσφέρουν στους χρήστες υψηλό επίπεδο ιδιωτικότητας και ανωνυμίας. Για παράδειγμα, ένα άτομο μπορεί να συνδεθεί σε ένα κοινωνικό δίκτυο που βασίζεται στο Ethereum χρησιμοποιώντας ένα προφίλ ή πορτοφόλι ENS, χωρίς να χρειάζεται να μοιράζεται στοιχεία προσωπικής ταυτοποίησης (PII), όπως ονόματα, διευθύνσεις email κλπ. + +7. Τα αποκεντρωμένα κοινωνικά δίκτυα βασίζονται σε αποκεντρωμένη αποθήκευση και όχι σε κεντρικές βάσεις δεδομένων, οι οποίες είναι πολύ καλύτερες για την προστασία των δεδομένων χρήστη. + +## Αποκεντρωμένα κοινωνικά δίκτυα στο Ethereum {#ethereum-social-networks} + +Το δίκτυο Ethereum έχει γίνει το προτιμώμενο εργαλείο για προγραμματιστές που δημιουργούν αποκεντρωμένα μέσα κοινωνικής δικτύωσης, λόγω της δημοτικότητας των κρυπτονομισμάτων του (ERC-20/ERC-721) και της τεράστιας βάσης χρηστών του. Δείτε μερικά παραδείγματα κοινωνικών δικτύων που βασίζονται στο Ethereum: + +### Peepeth {#peepeth} + +Το [Peepeth](https://peepeth.com/) είναι μια πλατφόρμα microblogging παρόμοια με το Twitter. Λειτουργεί στο blockchain του Ethereum και χρησιμοποιεί IPFS για την αποθήκευση δεδομένων χρήστη. + +Οι χρήστες μπορούν να ανταλλάσουν σύντομα μηνύματα που ονομάζονται «Peeps», τα οποία δεν μπορούν να διαγραφούν ή να τροποποιηθούν. Μπορείτε να στείλετε χρήματα ή να λάβετε δωρεές σε οποιονδήποτε στην πλατφόρμα σε Ether (ETH) μέσα από την εφαρμογή. + +### Mirror {#mirror} + +Το [Mirror](https://mirror.xyz/) είναι μια πλατφόρμα γραφής με δυνατότητα web3 που στοχεύει να είναι αποκεντρωμένη και να ανήκει στους χρήστες. Οι χρήστες μπορούν να διαβάζουν και να γράφουν δωρεάν στο Mirror συνδέοντας απλά τα πορτοφόλια τους. Οι χρήστες μπορούν επίσης να συλλέγουν άρθρα και να εγγραφούν στους αγαπημένους τους συγγραφείς. + +Οι αναρτήσεις που δημοσιεύονται στο Mirror αποθηκεύονται μόνιμα στο Arweave, μια αποκεντρωμένη πλατφόρμα αποθήκευσης και μπορούν να κοπούν ως συλλεκτικά [μη εναλλάξιμα κρυπτοπαραστατικά (NFT)](/nft/) γνωστά ως Writing NFT. Τα Writing NFT είναι εντελώς δωρεάν για να δημιουργηθούν από τους συγγραφείς και η συλλογή τους γίνεται στο Ethereum L2, καθιστώντας τις συναλλαγές φθηνές, γρήγορες και φιλικές προς το περιβάλλον. + +### MINDS {#minds} + +Το [MINDS](https://www.minds.com/) είναι ένα από τα πιο χρησιμοποιούμενα αποκεντρωμένα κοινωνικά δίκτυα. Λειτουργεί όπως το Facebook και έχει ήδη συγκεντρώσει εκατομμύρια χρήστες. + +Οι χρήστες χρησιμοποιούν το κρυπτονόμισμα ERC-20 της πλατφόρμας $MIND για να πληρώσουν για αντικείμενα. Οι χρήστες μπορούν επίσης να κερδίσουν κρυπτονομίσματα $MIND δημοσιεύοντας δημοφιλές περιεχόμενο, συνεισφέροντας στο οικοσύστημα και παραπέμποντας άλλους στην πλατφόρμα. + +## Κοινωνικά δίκτυα Web2 στο Ethereum {#web2-social-networks-and-ethereum} + +Οι εγγενείς πλατφόρμες κοινωνικής δικτύωσης [Web3](/web3/) δεν είναι οι μόνες που προσπαθούν να ενσωματώσουν την τεχνολογία κρυπτοαλυσίδας στα μέσα κοινωνικής δικτύωσης. Πολλές κεντρικές πλατφόρμες σχεδιάζουν επίσης να ενσωματώσουν το Ethereum στην υποδομή τους: + +### 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/) που έχει σχεδιαστεί για την κλιμακωτή αναβάθμιση των συναλλαγών στο Ethereum. + +Το πρόγραμμα είναι ήδη σε λειτουργία, με το subreddit r/CryptoCurrency [που εκτελεί την έκδοση των σημείων κοινότητας που ονομάζεται "Moons"](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Σύμφωνα με την επίσημη περιγραφή, το Moons «επιβραβεύει αφίσες, σχολιαστές και συντονιστές για τη συνεισφορά τους στο subreddit». Επειδή αυτά τα κρυπτονομίσματα βρίσκονται στην κρυπτοαλυσίδα (οι χρήστες τα λαμβάνουν σε πορτοφόλια), είναι ανεξάρτητα από το Reddit και δεν μπορούν να αφαιρεθούν. + +Μετά την ολοκλήρωση μιας φάσης beta στο δίκτυο δοκιμών του Rinkeby, οι πόντοι της κοινότητας Reddit βρίσκονται τώρα σε [Arbitrum Nova](https://nova.arbitrum.io/), μια κρυπτοαλυσίδα που συνδυάζει τις ιδιότητες μιας [πλευρικής αλυσίδας](/developers/docs/scaling/sidechains/) και ενός [optimistic πακέτου ενημέρωσης](/developers/docs/scaling/optimistic-rollups/). Εκτός από τη χρήση πόντων κοινότητας για την πρόσβαση σε ειδικές λειτουργίες, οι χρήστες μπορούν επίσης να τους ανταλλάξουν με fiat σε ανταλλακτήρια. Επίσης, ο αριθμός των πόντων κοινότητας που κατέχει ένας χρήστης καθορίζει την επιρροή τους στη διαδικασία λήψης αποφάσεων εντός της κοινότητας. + +### Twitter {#twitter} + +Τον Ιανουάριο του 2021, το Twitter Blue [κυκλοφόρησε την υποστήριξη για NFT](https://mashable.com/article/twitter-blue-nft-profile-picture), επιτρέποντας στους χρήστες να συνδέουν τα πορτοφόλια τους και να εμφανίζουν τα NFT ως φωτογραφίες προφίλ. Τη στιγμή που γράφονται αυτές οι γραμμές, η εταιρεία κοινωνικών μέσων έχει επίσης [ανακοινώσει σχέδια](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) για τη δημιουργία ενός αποκεντρωμένου κοινωνικού δικτύου στο μέλλον. + +### Instagram {#instagram} + +Τον Μάιο του 2022, το [Instagram ανακοίνωσε υποστήριξη για NFT](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) στο Ethereum και το Polygon. Οι χρήστες μπορούν να δημοσιεύουν NFT απευθείας στο Instagram συνδέοντας το πορτοφόλι τους Ethereum. + +## Χρήση αποκεντρωμένων κοινωνικών δικτύων {#use-decentralized-social-networks} + +- **[Status.im](https://status.im/)** - _Το Status είναι μια ασφαλής εφαρμογή ανταλλαγής μηνυμάτων που χρησιμοποιεί το πρωτόκολλο ανοιχτού κώδικα, από χρήστη σε χρήστη και κρυπτογράφηση από άκρο σε άκρο για προστασία των μηνυμάτων σας από τρίτα μέρη._ +- **[Mirror.xyz](https://mirror.xyz/)** - _Το Mirror είναι αποκεντρωμένη, προσωπική πλατφόρμα δημοσιεύσεων, βασισμένη στο Ethereum, ώστε οι χρήστες να συγκεντρώνουν ιδέες, να δημιουργούν έσοδα από περιεχόμενο και να δημιουργούν κοινότητες υψηλής αξίας._ +- **[Το πρωτόκολλο Lens](https://lens.xyz/)** - _Το πρωτόκολλο Lens είναι αποκεντρωμένο κοινωνικό γράφημα που βοηθά τους δημιουργούς να αποκτήσουν την κυριότητα του περιεχομένου τους όπου και αν πάνε στον ψηφιακό κήπο του αποκεντρωμένου Διαδικτύου._ +- **[Farcaster](https://farcaster.xyz/)** - _Το Farcaster είναι επαρκώς αποκεντρωμένο κοινωνικό δίκτυο. Είναι ένα ανοιχτό πρωτόκολλο που μπορεί να υποστηρίξει πολλούς πελάτες, όπως και το email._ + +## Περισσότερες πληροφορίες {#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_ +- [Μια επισκόπηση του χώρου των μέσων κοινωνικής δικτύωσης σε Blockchain](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Cryptopedia Gemini_ +- [Πώς το Blockchain μπορεί να λύσει το απόρρητο των μέσων κοινωνικής δικτύωσης](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Prableen Bajpai_ +- [Τα δίκτυα κοινωνικών μέσων έρχονται στο Blockchain](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} + +- [Επεξήγηση αποκεντρωμένων μέσων κοινωνικής δικτύωσης](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ +- [Η DeSo Blockchain θέλει να αποκεντρώσει τα μέσα κοινωνικής δικτύωσης](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Τεχνολογία Bloomberg_ +- [Το μέλλον των αποκεντρωμένων μέσων κοινωνικής δικτύωσης των Balaji Srinivasan, Vitalik Buterin, Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ + +### Κοινότητες {#communities} + +- [Κατάσταση διακομιστή Discord](https://discord.com/invite/3Exux7Y) +- [Εναλλακτικός διακομιστής Discord](https://discord.com/invite/txuCHcE8wV) +- [r/CryptoCurrency subreddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/es/about/index.md b/public/content/translations/es/about/index.md similarity index 100% rename from src/content/translations/es/about/index.md rename to public/content/translations/es/about/index.md diff --git a/src/content/translations/es/bridges/index.md b/public/content/translations/es/bridges/index.md similarity index 100% rename from src/content/translations/es/bridges/index.md rename to public/content/translations/es/bridges/index.md diff --git a/src/content/translations/es/community/code-of-conduct/index.md b/public/content/translations/es/community/code-of-conduct/index.md similarity index 100% rename from src/content/translations/es/community/code-of-conduct/index.md rename to public/content/translations/es/community/code-of-conduct/index.md diff --git a/src/content/translations/es/community/events/index.md b/public/content/translations/es/community/events/index.md similarity index 100% rename from src/content/translations/es/community/events/index.md rename to public/content/translations/es/community/events/index.md diff --git a/src/content/translations/es/community/get-involved/index.md b/public/content/translations/es/community/get-involved/index.md similarity index 100% rename from src/content/translations/es/community/get-involved/index.md rename to public/content/translations/es/community/get-involved/index.md diff --git a/src/content/translations/es/community/grants/index.md b/public/content/translations/es/community/grants/index.md similarity index 100% rename from src/content/translations/es/community/grants/index.md rename to public/content/translations/es/community/grants/index.md diff --git a/src/content/translations/es/community/language-resources/index.md b/public/content/translations/es/community/language-resources/index.md similarity index 100% rename from src/content/translations/es/community/language-resources/index.md rename to public/content/translations/es/community/language-resources/index.md diff --git a/src/content/translations/es/community/online/index.md b/public/content/translations/es/community/online/index.md similarity index 100% rename from src/content/translations/es/community/online/index.md rename to public/content/translations/es/community/online/index.md diff --git a/src/content/translations/es/community/page-community.json b/public/content/translations/es/community/page-community.json similarity index 100% rename from src/content/translations/es/community/page-community.json rename to public/content/translations/es/community/page-community.json diff --git a/src/content/translations/es/community/research/index.md b/public/content/translations/es/community/research/index.md similarity index 100% rename from src/content/translations/es/community/research/index.md rename to public/content/translations/es/community/research/index.md diff --git a/public/content/translations/es/community/support/index.md b/public/content/translations/es/community/support/index.md new file mode 100644 index 00000000000..2139be64b46 --- /dev/null +++ b/public/content/translations/es/community/support/index.md @@ -0,0 +1,116 @@ +--- +title: Soporte técnico de Ethereum +description: Explicación de cómo obtener soporte técnico en el ecosistema Ethereum. +lang: es +--- + +# Soporte técnico de Ethereum {#support} + +## Soporte oficial de Ethereum {#official-support} + +¿Está buscando el soporte técnico oficial de Ethereum? Lo primero que debe saber es que Ethereum está descentralizado. Eso significa que carece de organización centra y que ninguna entidad ni persona es dueña de Ethereum. Por lo tanto, no existen canales de soporte oficiales. + +Comprender la naturaleza descentralizada de Ethereum es vital, ya que todo aquel que afirme ser el soporte técnico oficial de Ethereum probablemente esté tratando de estafarle. La mejor manera de protegerse contra estafadores es enterarse bien y tomarse la seguridad en serio. + + + Seguridad en Ethereum y prevención de fraudes + + + + Aprenda los fundamentos de Ethereum. + + +A pesar de la falta de apoyo oficial, muchos grupos, comunidades y proyectos en todo el ecosistema Ethereum están deseosos de ayudar, y puede encontrar mucha información y recursos útiles en esta página. ¿Todavía le surgen algunas preguntas? Entonces, únase al chat [Discord de Ethereum.org](/discord/) e intentaremos ayudarle. + +## Soporte para la cartera {#wallet-support} + +¿Tiene problemas con su cartera? La mayoría de las carteras tienen equipos de soporte asignados que le pueden ayudar: + +- [MetaMask](https://metamask.zendesk.com/hc/) +- [Argent](https://support.argent.xyz/hc/) +- [MyEtherWallet](https://help.myetherwallet.com/) + +_Esta lista no es exhaustiva. ¿Necesita ayuda para encontrar soporte sobre una cartera específica? Únase al Discord de [ethereum.org](https://discord.gg/ethereum-org) e intentaremos ayudarle._ + +¿Busca una cartera de Ethereum? [Explore nuestra lista completa de carteras Ethereum](/wallets/find-wallet/). + +## Creación de DApps {#building-support} + +Crear puede ser difícil. A continuación, le indicamos algunos espacios centrados en el desarrollo con experimentados desarrolladores de Ethereum que estarán dispuestos a ayudarle. + +- [Alchemy University](https://university.alchemy.com/#starter_code) +- [Discord de CryptoDevs](https://discord.gg/Z9TA39m8Yu) +- [Ethereum Stackexchange](https://ethereum.stackexchange.com/) +- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) +- [Web3 University](https://www.web3.university/) +- [LearnWeb3](https://discord.com/invite/learnweb3) + +También puede encontrar documentación y guías de desarrollo en nuestra sección de recursos para desarrolladores de [Ethereum](/developers/). + +### Herramientas {#dapp-tooling} + +¿Su pregunta se refiere a una herramienta, proyecto o biblioteca en particular? La mayoría de los proyectos tienen servidores de chat o foros destinados a ayudarle. + +He aquí algunos ejemplos: + +- [Solidity](https://gitter.im/ethereum/solidity/) +- [ethers.js](https://discord.gg/6jyGVDK6Jx) +- [web3.js](https://discord.gg/GsABYQu4sC) +- [Hardhat](https://discord.gg/xtrMGhmbfZ) +- [Truffle](https://discord.gg/8uKcsccEYE) +- [Alchemy](http://alchemy.com/discord) +- [Tenderly](https://discord.gg/fBvDJYR) + +## Ejecución de un nodo {#node-support} + +Si está ejecutando un nodo o validador, estas son algunas comunidades dedicadas a ayudar a los usuarios en sus comienzos. + +- [Discord de EthStaker](https://discord.gg/ethstaker) +- [Reddit de EthStaker](https://www.reddit.com/r/ethstaker) + +La mayoría de los equipos que se encargan de la creación de clientes de Ethereum también cuentan con espacios especializados, orientados al público, en los que se puede obtener ayuda y hacer preguntas. + +### Clientes de ejecución {#execution-clients} + +- [Geth](https://discord.gg/FqDzupGyYf) +- [Nethermind](https://discord.gg/YJx3pm8z5C) +- [Besu](https://discord.gg/p8djYngzKN) +- [Erigon](https://github.com/ledgerwatch/erigon/issues) + +### Clientes de consenso {#consensus-clients} + +- [Prysm](https://discord.gg/prysmaticlabs) +- [Nimbus](https://discord.gg/nSmEH3qgFv) +- [Lighthouse](https://discord.gg/cyAszAh) +- [Teku](https://discord.gg/7hPv2T6) +- [Lodestar](https://discord.gg/aMxzVcr) + +También puede [aprender aquí a ejecutar su propio nodo](/developers/docs/nodes-and-clients/run-a-node/). + +## Preguntas más frecuentes {#faq} + +### He enviado ETH a una cartera equivocada {#wrong-wallet} + +Una transacción enviada en Ethereum es irreversible. Desafortunadamente, si ha enviado ETH a la cartera equivocada, no hay forma de recuperar esos fondos. Debido a que no existe organización central, ni ninguna entidad ni persona al frente de Ethereum, nadie puede revertir las transacciones. Por lo tanto, es vital comprobar siempre sus transacciones antes de enviarlas. + +### ¿Cómo puedo reclamar mi regalo en Ethereum? {#giveaway-scam} + +Los regalos de Ethereum son estafas diseñadas para robarle ETH. No se deje tentar por ofertas que parezcan demasiado buenas para ser verdad, si envía ETH a una dirección de regalo, no recibirá ningún ningún regalo, ni tampoco podrá recuperar sus fondos. + +[Más información acerca de la prevención de fraudes.](/security/#common-scams) + +### Mi transacción está estancada {#stuck-transaction} + +Debido a la demanda de la red, las transacciones en Ethereum pueden a veces estancarse si ha pagado una comisión de la transacción inferior a la requerida. Muchas carteras proporcionan una opción para volver a enviar la misma transacción con una comisión de transacción más elevada y así poder procesar la transacción. Otra alternativa es cancelar una transacción pendiente enviando una transacción a su propia dirección y utilizando el mismo nonce que la transacción pendiente. + +[Cómo acelerar o cancelar una transacción pendiente en MetaMask.](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) + +[Cómo cancelar las transacciones pendientes de Ethereum.](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) + +### ¿Cómo puedo minar Ethereum? {#mining-ethereum} + +Ya no se puede minar en Ethereum. La minería se desactivó cuando Ethereum pasó de la prueba de trabajo a la prueba de participación. Ahora, en lugar de mineros, Ethereum tiene validadores. Los validadores apuestan ETH y reciben recompensas por asegurar la red. + +### ¿Cómo puedo convertirme en participante/validador? {#become-validator} + +Para convertirse en validador, debe apostar 32 ETH en el contrato de depósito de Ethereum y configurar un nodo de validación. Hay más información disponible en nuestras [páginas de participación](/staking) y en [la plataforma de lanzamiento de participación](https://launchpad.ethereum.org/). diff --git a/src/content/translations/es/contributing/adding-developer-tools/index.md b/public/content/translations/es/contributing/adding-developer-tools/index.md similarity index 100% rename from src/content/translations/es/contributing/adding-developer-tools/index.md rename to public/content/translations/es/contributing/adding-developer-tools/index.md diff --git a/src/content/translations/es/contributing/adding-exchanges/index.md b/public/content/translations/es/contributing/adding-exchanges/index.md similarity index 100% rename from src/content/translations/es/contributing/adding-exchanges/index.md rename to public/content/translations/es/contributing/adding-exchanges/index.md diff --git a/src/content/translations/es/contributing/adding-glossary-terms/index.md b/public/content/translations/es/contributing/adding-glossary-terms/index.md similarity index 100% rename from src/content/translations/es/contributing/adding-glossary-terms/index.md rename to public/content/translations/es/contributing/adding-glossary-terms/index.md diff --git a/src/content/translations/es/contributing/adding-layer-2s/index.md b/public/content/translations/es/contributing/adding-layer-2s/index.md similarity index 100% rename from src/content/translations/es/contributing/adding-layer-2s/index.md rename to public/content/translations/es/contributing/adding-layer-2s/index.md diff --git a/src/content/translations/es/contributing/adding-products/index.md b/public/content/translations/es/contributing/adding-products/index.md similarity index 100% rename from src/content/translations/es/contributing/adding-products/index.md rename to public/content/translations/es/contributing/adding-products/index.md diff --git a/src/content/translations/es/contributing/adding-staking-products/index.md b/public/content/translations/es/contributing/adding-staking-products/index.md similarity index 100% rename from src/content/translations/es/contributing/adding-staking-products/index.md rename to public/content/translations/es/contributing/adding-staking-products/index.md diff --git a/src/content/translations/es/contributing/content-resources/index.md b/public/content/translations/es/contributing/content-resources/index.md similarity index 100% rename from src/content/translations/es/contributing/content-resources/index.md rename to public/content/translations/es/contributing/content-resources/index.md diff --git a/src/content/translations/es/contributing/design-principles/index.md b/public/content/translations/es/contributing/design-principles/index.md similarity index 100% rename from src/content/translations/es/contributing/design-principles/index.md rename to public/content/translations/es/contributing/design-principles/index.md diff --git a/src/content/translations/es/contributing/index.md b/public/content/translations/es/contributing/index.md similarity index 100% rename from src/content/translations/es/contributing/index.md rename to public/content/translations/es/contributing/index.md diff --git a/src/content/translations/es/contributing/translation-program/faq/index.md b/public/content/translations/es/contributing/translation-program/faq/index.md similarity index 100% rename from src/content/translations/es/contributing/translation-program/faq/index.md rename to public/content/translations/es/contributing/translation-program/faq/index.md diff --git a/src/content/translations/es/contributing/translation-program/index.md b/public/content/translations/es/contributing/translation-program/index.md similarity index 100% rename from src/content/translations/es/contributing/translation-program/index.md rename to public/content/translations/es/contributing/translation-program/index.md diff --git a/public/content/translations/es/contributing/translation-program/translators-guide/index.md b/public/content/translations/es/contributing/translation-program/translators-guide/index.md new file mode 100644 index 00000000000..70da3871742 --- /dev/null +++ b/public/content/translations/es/contributing/translation-program/translators-guide/index.md @@ -0,0 +1,293 @@ +--- +title: Guía para traductores +lang: es +description: Instrucciones y consejos para traductores de ethereum.org +--- + +# Guía de estilo de traducción de ethereum.org {#style-guide} + +La guía de estilo de traducción de ethereum.org reúne algunas de las pautas, instrucciones y consejos más importantes para que los traductores ayuden a localizar la página web. + +Este documento sirve de guía general y no es específico de ningún idioma. + +Si tiene alguna pregunta, sugerencia o comentario, no dude en contactarnos en translations@ethereum.org, enviar un mensaje a @ethdotorg en Crowdin, o [unirse a nuestro chat Discord](https://discord.gg/ethereum-org), donde puede enviarnos mensajes en el canal de #translations o contactar con cualquiera de los miembros del equipo. + +## Cómo utilizar Crowdin {#using-crowdin} + +Puede encontrar instrucciones básicas sobre cómo unirse al proyecto en Crowdin y cómo utilizar el editor en línea de Crowdin en la página [Programa de traducción](/contributing/translation-program/#how-to-translate). + +Si quiere saber más sobre Crowdin y usar alguna de sus funciones avanzadas, [la base de conocimientos de Crowdin](https://support.crowdin.com/online-editor/) contiene muchas guías detalladas y descripciones generales de todas las funciones de Crowdin. + +## Capturar la esencia del mensaje {#capturing-the-essence} + +Al traducir contenido de ethereum.org, evite las traducciones literales. + +Es importante que las traducciones capten la esencia del mensaje. Esto podría significar parafrasear ciertas oraciones, o recurrir a una traducción más descriptiva en lugar de traducir el contenido literalmente. + +Cada idioma tiene sus reglas gramáticas, usos y orden de palabras particulares. Al traducir, tenga en cuenta la estructura de las frases en el idioma de destino y evite traducir literalmente del inglés, ya que esto puede dar como resultado un texto mal estructurado que no se entiende bien. + +En lugar de traducir el texto original palabra por palabra, se recomienda leer la frase entera y adaptarla a los usos del idioma de destino. + +## ¿Estilo formal o informal? {#formal-vs-informal} + +Utilizamos el estilo formal (usted), ya que siempre resulta más educado y apropiado para dirigirse a todos los visitantes. + +El uso del estilo formal da un carácter más serio y menos ofensivo, y es apto para todo tipo de edad y género del visitante. + +La mayoría de los idiomas indoeuropeos y afro-asiáticos utilizan pronombres personales de segunda persona específicos para el género, que distinguen entre hombres y mujeres. Al dirigirnos al usuario o usar pronombres posesivos, podemos evitar el asumir el género del visitante, ya que el estilo formal suele siempre ser oportuno y coherente, independientemente de cómo se identifiquen. + +## Vocabulario y significado sencillo y claro {#simple-vocabulary} + +Nuestro objetivo es hacer que el contenido de la página web sea comprensible para el mayor número de personas posible. + +En la mayoría de los casos, esto se puede lograr fácilmente utilizando palabras breves y sencillas que se entiendan fácilmente. Si hay varias traducciones acertadas para una determinada palabra en el idioma local con el mismo significado, la mejor opción es la palabra más corta que refleja claramente el significado. + +## Sistema de escritura {#writing-system} + +Ethereum.org está disponible en varios idiomas, utilizando sistemas alternativos de escritura (o escribiendo scripts) al latín. + +Todo el contenido debe traducirse utilizando el sistema de escritura correcto para su idioma, y no debe incluir ninguna palabra, escrita usando caracteres latinos. + +Al traducir el contenido, debe asegurarse de que las traducciones sean consistentes y no incluyan ningún carácter latino. + +Una idea errónea común es que Ethereum debe estar siempre escrito en latín. Esto es incorrecto en la mayoría de los casos, por favor use la ortografía de Ethereum, nativa de su idioma (por ejemplo, en chino, اريوم en árabe, etc.). + +**Lo anterior no se aplica a los idiomas, donde los nombres propios no se traducen, por regla general.** + +## Traducir metadatos de la página {#translating-metadata} + +Algunas páginas contienen metadatos en la página, como 'title', 'lang', 'description', 'sidebar', etc. + +Ocultamos el contenido que los traductores nunca deberían traducir al subir nuevas páginas a Crowdin, por lo que todos los metadatos visibles para los traductores en Crowdin deberán traducirse. + +Por favor, tenga especial cuidado cuando traduzca cadenas cuyo texto origen sea 'en'. Esto representa el idoma en el que la página está disponible y deberá traducirse al [código ISO de idioma para su idioma](https://www.andiamo.co.uk/resources/iso-language-codes/). Estas cadenas de texto siempre deben traducirse usando caracteres latinos, y no el alfabeto nativo al idioma de destino. + +Si no está seguro que código de idioma usar, puede revisar la memoria de traducción en Crowdin, o buscar el código de idoma para su idioma en la URL de la página en el editor en línea de Crowdin. + +He aquí algunos ejemplos de códigos de idioma para los idiomas más hablados: + +- Árabe: ar +- Chino simplificado: zh +- Francés: fr +- Hindi: hi +- Español: es + +## Títulos de artículos externos {#external-articles} + +Algunas cadenas de texto contienen títulos de artículos externos. La mayoría de nuestras páginas de documentación para desarrolladores contienen enlaces a artículos externos para leer más. Las cadenas de texto que contienen títulos de artículos necesitan traducirse, al margen del idioma del artículo, para asegurar una experiencia de usuario más consistente a los visitantes que lean la página en su idioma nativo. + +Puede encontrar a continuación algunos ejemplos de estas cadenas de texto para traducción y cómo identificarlas (los enlaces a artículos se pueden encontrar en la parte inferior de estas páginas, en la sección de «Leer más»): + +![Títulos de artículos en sidebar.png](./article-titles-in-sidebar.png) ![Títulos de artículos en editor.png](./article-titles-in-editor.png) + +## Advertencias de Crowdin {#crowdin-warnings} + +Crowdin tiene una función incorporada que advierte a los traductores cuando están a punto de cometer un error. Crowdin le avisará automáticamente del error antes de guardar la traducción si ha cometido errores, como olvidarse de incluir una etiqueta del texto original; traducir elementos que no deberían traducirse; añadir varios espacios en blanco consecutivos; olvidar marcas de puntuación final; etc. Si ve una advertencia como esta, por favor retroceda y compruebe por segunda vez la traducción sugerida. + +**Nunca ignore estas advertencias, porque usualmente significan que algo está mal, o que en la traducción falta una parte del texto original.** + +Un ejemplo de una advertencia de Crowdin cuando olvida añadir una etiqueta a su traducción: ![Ejemplo de una advertencia de Crowdin](./crowdin-warning-example.png) + +## Trabajar con etiquetas y fragmentos de código {#dealing-with-tags} + +Gran parte del contenido en inglés contiene etiquetas y variables, que se destacan en amarillo en el editor de Crowdin.-. Estas funciones tienen diferentes funciones y deben abordarse correctamente. + +**Ajustes de Crowdin** + +Para facilitar la gestión de etiquetas y copiarlas directamente desde el inglés, le recomendamos cambiar su configuración en el editor de Crowdin. + +1. Abrir ajustes ![Cómo abrir los ajustes en el editor](./editor-settings.png) + +2. Desplácese hacia abajo hasta la sección «Mostrar etiquetas HTML». + +3. Seleccione «Ocultar». ![Seleccione «Ocultar».](./hide-tags.png) + +4. Haga clic en «Guardar». + +Al seleccionar esta opción, el texto completo de la etiqueta ya no se mostrará y se reemplazará por un número. Al hacer clic en esta etiqueta durante la traducción, se copiará automáticamente la etiqueta exacta en el campo de traducción. + +**Enlaces** + +Observará que hay enlaces completos a páginas de ethereum.org u otros sitios web. + +Estos deben ser idénticos a los enlaces de la versión original en inglés y no deben modificarse ni traducirse. Si traduce un enlace o lo modifica, aunque solo sea eliminando una parte del mismo, como un barra oblicua (/), inutilizará el enlace. + +La mejor manera de conservar los enlaces intactos es copiarlos directamente desde el texto original, ya sea haciendo clic en ellos o usando el botón «Copiar texto» (Alt+C). + +![Ejemplo de link.png](./example-of-link.png) + +Los enlaces también aparecen en el texto original en forma de etiquetas (es decir, <0> ). Si pasa el cursor sobre la etiqueta, el editor mostrará su contenido completo (a veces estas etiquetas representan enlaces). + +Es muy importante copiar los enlaces del texto original y no cambiar su orden. + +Si se cambia el orden de las etiquetas, el enlace que representan se inutilizará. + +![Ejemplo de enlaces dentro de tags.png](./example-of-links-inside-tags.png) + +**Etiquetas y variables** + +El texto original contiene muchos tipos diferentes de etiquetas, que siempre deben copiarse del texto original y no modificarse bajo ninguna circunstancia. Del mismo modo, el orden de estas etiquetas en la traducción también debería seguir siendo el mismo que en la versión original. + +Las etiquetas siempre contienen una etiqueta de apertura y otra de cierre. En la mayoría de los casos, el texto entre etiquetas de apertura y cierre debe traducirse. + +Ejemplo: ``Decentralized`` + +``: _Etiqueta de apertura que hace que el texto resalte en negrita_ + +Descentralizado: _texto traducible_ + +``: _Etiqueta de cierre_ + +![Ejemplo de «strong» tags.png](./example-of-strong-tags.png) + +Los fragmentos de código deben abordarse de forma ligeramente diferente a las demás etiquetas, ya que contienen código que no se debe traducir. + +Ejemplo: ``nonce`` + +``: _Etiqueta de apertura, que contiene un fragmento de código_ + +nonce - _Texto no traducible_ + +``: _etiqueta de cierre_ + +![Ejemplo de código snippets.png](./example-of-code-snippets.png) + +El texto original también contiene etiquetas acortadas, que solo contienen números, lo que significa que su función no es inmediatamente obvia. Puede pasar el cursor sobre estas etiquetas para ver qué función tienen exactamente. + +En el ejemplo de abajo, al pasar el cursor por la <0> etiqueta se muestra lo que representa `` y contiene un fragmento de código, por lo tanto el contenido dentro de estas etiquetas no debe traducirse. + +![Ejemplo de tags.png ambiguo](./example-of-ambiguous-tags.png) + +## Siglas y descripciones completas {#short-vs-full-forms} + +En el sitio web, se utilizan muchas siglas, como por ejemplo, dapps, NFT, DAO, DeFi, etc. Estas siglas se utilizan comúnmente en inglés y la mayoría de los visitantes del sitio web están familiarizados con ellas. + +Dado que no suelen tener una traducción oficial a otros idiomas, la mejor manera de traducir estos y otros términos similares es proporcionar una descripción completa y añadir la sigla en inglés entre paréntesis. + +No traduzca estas siglas o abreviaturas a su idioma nativo, ya que la mayoría de la gente no estaría familiarizada con ellas, y las versiones localizadas no tendrían mucho sentido para la mayoría de los visitantes. + +Ejemplo de cómo traducir dApps: + +- Aplicaciones descentralizadas (dApps) → _Traducida completa (abreviatura en inglés entre paréntesis)_ + +## Términos sin traducción oficial {#terms-without-established-translations} + +Puede que algunos términos aún no tengan una traducción oficial en otros idiomas, y sin embargo, se conozcan ampliamente por su denominación en inglés. Tales términos incluyen principalmente conceptos más nuevos, como proof-of-work (prueba de trabajo), proof-of-stake (prueba de participación), beacon chain (cadena de baliza), staking (participación), etc. + +Si bien la traducción de estos términos puede sonar antinatural, ya que la versión en inglés también se utiliza en otros idiomas, es altamente recomendable que se traduzcan. + +Al traducirlos, sea creativo con toda libertad, use traducciones descriptivas o simplemente tradúzcalos literalmente. + +**La razón por la que la mayoría de estos términos se deberían traducir, en lugar de dejar algunos en inglés, es el hecho de que esta nueva terminología se extenderá en el futuro, a medida que más personas empiecen a utilizar Ethereum y tecnologías relacionadas. Si queremos llegar a más personas de todo el mundo con este espacio, tenemos que proporcionar una terminología comprensible en tantos idiomas como sea posible, aunque necesitemos acuñar los términos nosotros mismos.** + +## Botones y comandos interactivos (CTA) {#buttons-and-ctas} + +El sitio web contiene numerosos botones, que deben traducirse de forma diferente a otros contenidos. + +El texto del botón se puede identificar viendo las capturas de pantalla de contexto, conectadas con la mayoría de las cadenas, o buscando el contexto en el editor, que incluye la frase «botón». + +Las traducciones para los botones deben ser lo más cortas posible, para evitar errores de formato. Asimismo, la traducción de los botones debe tener un sentido imperioso, es decir, dar una order o solicitar algo. + +![Cómo encontrar un button.png](./how-to-find-a-button.png) + +## Traducir de forma inclusiva {#translating-for-inclusivity} + +Los visitantes de ethereum.org vienen de todo el mundo y tienen diferentes orígenes. Por lo tanto, el lenguaje en el sitio web debería ser neutral, dar la bienvenida a todos y no excluir a nadie. + +Un aspecto importante a colación es la neutralidad entre hombres y mujeres. Esto puede lograrse fácilmente utilizando un estilo formal y evitando en las traducciones palabras específicas de género. + +Otra forma de inclusividad es intentar traducir para un público global, que no sea específico a ningún país, raza o región. + +Por último, las expresiones deben ser adecuadas a todos los públicos y edades. + +## Traducciones específicas del idioma {#language-specific-translations} + +Al traducir, es importante seguir las reglas gramaticales, usos y formatos utilizados en su idioma, en lugar de copiarlos de la versión original. El texto original sigue las normas y usos gramaticales del inglés, que no es aplicable a muchos otros idiomas. + +Debe conocer las reglas de su idioma y traducir aplicándolas. Si necesita ayuda, comuníquese con nosotros y le ayudaremos a encontrar algunos recursos de ayuda para utilizar estos elementos en su idioma. + +He aquí algunos ejemplos de aspectos especialmente importantes: + +### Puntuación y formato {#punctuation-and-formatting} + +**Uso de mayúsculas** + +- Hay grandes diferencias en el uso de mayúsculas en diferentes idiomas. +- En inglés, se escriben con mayúscula inicial todas las palabras en títulos y nombres, meses y días, nombres de idiomas, vacaciones, etc. En muchos otros idiomas, esto es gramaticalmente incorrecto, ya que tienen diferentes reglas de uso de mayúsculas. +- Algunos idiomas también tienen reglas sobre el uso de mayúsculas de pronombres personales, sustantivos y ciertos adjetivos, que no están se escriben con inicial en mayúscula en inglés. + +**Espaciado** + +- Las reglas de ortografía definen el uso de espacios en cada idioma. Dado que todos los idiomas se escriben con espacios, estas reglas son algunas de las más características y los espacios son algunos de los elementos que se suelen traducir mal. +- He aquí algunas diferencias comunes en el espaciado entre inglés y otros idiomas: + - Espacio antes de unidades de medición y divisas (por ejemplo, USD, EUR, kB, MB) + - Espacio antes de los signos de grado (por ejemplo, °C, °F) + - Espacio antes de algunos signos de puntuación, especialmente el paréntesis (…) + - Espacio antes y después de las barras (/) + +**Listas** + +- Cada idioma tiene un conjunto diverso y complejo de reglas para escribir listas. Pueden ser significativamente diferentes al inglés. +- En algunos idiomas, la primera palabra de cada nueva línea se escribe en mayúscula, mientras que en otros, las nuevas líneas deben comenzar en minúscula. Muchos idiomas también tienen reglas diferentes sobre el uso de mayúsculas en las listas, en función de la longitud de cada línea. +- Lo mismo se aplica a la puntuación de los elementos de línea. La puntuación final en las listas puede ser un punto (**.**), una coma (**,**) o un punto y coma (**;**), dependiendo del idioma. + +**Comillas** + +- Los idiomas utilizan muchas comillas diferentes. Utilizar las comillas inglesas no es correcto en muchos idiomas. +- He aquí algunos de los tipos de comillas más comunes: + - „texto de ejemplo“ + - ‚texto de ejemplo’ + - »texto de ejemplo« + - “texto de ejemplo” + - ‘texto de ejemplo’ + - «texto de ejemplo» + +**Guiones** + +- En inglés, un guión corto (-) se utiliza para unir palabras o diferentes partes de una palabra, mientras un guión medio (–) se utiliza para indicar una explicación o hacer una pausa. +- Muchos idiomas siguen unas reglas de uso de los guines diferentes, por lo tanto, deben cumplirse. + +### Formatos {#formats} + +**Números** + +- La principal diferencia en la escritura de números en diferentes idiomas es el separador utilizado para decimales y millares. Los millares se pueden expresar por punto, coma o espacio. Del mismo modo, algunos idiomas utilizan un punto decimal, mientras que otros usan una coma decimal. + - Algunos ejemplos de cifras de más de tres dígitos: + - En inglés: **1,000.50** + - En español: **1.000,50** + - En francés: **1000,50** +- Otra consideración importante a la hora de traducir números es el signo de porcentaje. Puede escribirse de diferentes maneras: **100%**, **100 %** o **%100**. +- Finalmente, los números negativos pueden mostrarse diferentemente, dependiendo del idioma: -100, 100-, (100) o [100]. + +**Fechas** + +- A la hora de traducir las fechas, hay una serie de consideraciones y diferencias basadas en el idioma. Estos incluyen el formato de fecha, separador, el uso de mayúsculas y los ceros al inicio. También hay diferencias entre las fechas completas y las numéricas. + - He aquí agunos ejemplos de diferentes formatos de fecha: + - Inglés británico (dd/mm/aaaa): 1st January, 2022 + - Inglés estadounidense (mm/dd/aaaa): January 1st, 2022 + - Chino (aaa-mm-dd): 2022 年 1 月 1 日 + - Francés (dd/mm/aaaa): 1er janvier 2022 + - Italian (dd/mm/yyyy): 1o gennaio 2022 + - Alemán (dd/mm/aaaa): 1. Januar 2022 + +**Divisas** + +- Traducir divisas puede ser un desafío, debido a los diferentes formatos, convenciones y conversiones. Como regla general, mantenga las mismas divisas que se mencionan en el texto original. Puede añadir su divisa local y poner su conversión entre paréntesis, para ayudar a su comprensión. +- Las principales diferencias en la escritura de divisas en diferentes idiomas incluyen la colocación de símbolos, comas decimales frente a puntos decimales, espacio, y siglas frente a descripciones completas. + - Colocación de símbolos: $100 o 100 $ + - Comas decimales o puntos decimales: 100,50 $ o 100.50$ + - Espacio: 100$ o 100 $ + - Abreviaturas, siglas o símbolos: 100 $ o 100 USD + +**Unidades de medición** + +- Como regla general, mantenga las mismas unidades de medición que se mencionan en el texto original. Si su país utiliza un sistema diferente, puede incluir la conversión entre corchetes. +- Aparte de la conversión de unidades de medición, también es importante señalar las diferencias en la forma en que los idiomas abordan estas unidades. La diferencia principal es el espacio entre el número y la unidad, que puede ser diferente, en función del idioma. Como por ejemplo, 100kB o 100 kB, 50 ºF o + +## Conclusión {#conclusion} + +Traducir ethereum.org representa una gran oportunidad para aprender sobre los diferentes aspectos de Ethereum. + +No traduzca con prisas y a lo loco. ¡No se complique la vida y diviértase! + +Gracias por participar en el Programa de Traducción y ayudarnos a hacer que el sitio web sea accesible a un público más amplio. La comunidad Ethereum es global, y estamos contentos de que forme parte de ella. diff --git a/public/content/translations/es/dao/index.md b/public/content/translations/es/dao/index.md new file mode 100644 index 00000000000..c2c4f1da846 --- /dev/null +++ b/public/content/translations/es/dao/index.md @@ -0,0 +1,165 @@ +--- +title: Organizaciones Autónomas Descentralizadas (DAO) +description: Una visión general de las DAO en Ethereum +lang: es +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: Imagen de una DAO votando una propuesta. +summaryPoint1: Comunidades con propiedad compartida por los miembros sin liderazgo centralizado. +summaryPoint2: Una forma segura de colaborar con desconocidos en Internet. +summaryPoint3: Un lugar seguro para dar fondos a una causa específica. +--- + +## ¿Qué son las DAO? {#what-are-daos} + +Una DAO es una organización de propiedad colectiva y gobernada mediante cadena de bloques que vela por una misión compartida. + +Las DAO nos permiten trabajar con personas de ideas afines a nosotros en todo el mundo sin tener que confiar en un líder benévolo para que administre los fondos u operaciones. No existe ningún director ejecutivo que pueda gastar los fondos a su antojo, ni ningún director financiero que pueda manipular la contabilidad. En lugar de eso, las reglas basadas en la cadena de bloques e integradas en el código son las que definen cómo funciona la organización y cómo se gastan los fondos. + +Han incorporado tesoros a los que nadie tiene autoridad para acceder sin la aprobación del grupo. Las decisiones se toman a través de propuestas y votaciones para asegurar que todos en la organización tengan voz, y que todo suceda de forma transparente en cadena. + +## ¿Por qué necesitamos DAO? {#why-dao} + +Emprender una organización conjunta, que involucre financiación y dinero requiere mucha confianza en las personas con las que se esté trabajando. No obstante, es difícil confiar en alguien con quien solo se ha interactuado en Internet. Con una DAO, no necesita confiar en nadie de su grupo, tan solo en el código de DAO, que es 100 % transparente y cualquier persona puede verificar. + +Así se abren nuevas oportunidades para la colaboración y coordinación globales. + +### Una comparación {#dao-comparison} + +| DAO | Una organización tradicional | +| ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| Suele ser plana y totalmente democratizada. | Suele ser jerárquica. | +| Los miembros votan previamente cualquier cambio que quieran emprender. | Dependiendo de la estructura, se pueden exigir cambios a un único grupo o se puede ofrecer la posibilidad de votarlos. | +| Los votos cuentan y los resultados se implementan automáticamente sin intermediarios de confianza. | Si se permite la votación, los votos se contabilizan internamente y el resultado de la votación debe ser tramitado manualmente. | +| Los servicios ofrecidos se gestionan automáticamente de forma descentralizada (por ejemplo, la distribución de fondos filantrópicos). | Requiere tramitación humana o centralización, propensa a la manipulación. | +| Toda la actividad es transparente y totalmente pública. | La actividad es normalmente privada y limitada al público. | + +### Ejemplos de DAO {#dao-examples} + +Para ayudar a que esto tenga más sentido, aquí hay algunos ejemplos de cómo se podría usar una DAO: + +- Una organización benéfica puede aceptar donaciones de cualquier persona en el mundo y votar por aquellas causas que quiera financiar. +- Como miembros de la propiedad colectiva, pueden comprar activos físicos o digitales y votar sobre cómo usarlos. +- Empresas y subvenciones: podría crear un fondo de riesgo que agrupe el capital de inversión y vote sobre las empresas a respaldar. El dinero reembolsado podría redistribuirse posteriormente entre los miembros de la DAO. + +## ¿Cómo funcionan las DAO? {#how-daos-work} + +La columna vertebral de una DAO son los contratos inteligentes, estos definen las reglas de la organización y la forma de administrar los activos atesorados. Una vez que el contrato está activo en Ethereum, nadie puede cambiar las reglas excepto con una votación. Si alguien intenta hacer algo que no está cubierto por las reglas y la lógica del código, no podrá hacerlo. Y dado que el tesoro está definido también por el contrato inteligente, nadie puede gastar el dinero sin la aprobación del grupo. Esto significa que las DAO no necesitan una autoridad central. En vez de ello, el grupo toma las decisiones colectivamente y los pagos se autorizan automáticamente cuando se aprueben los votos suficientes. + +Esto se consigue gracias a que los contratos inteligentes son a prueba de manipulación una vez que conectan con Ethereum. No puede editar el código (las reglas de la DAO) sin que la gente se dé cuenta, ya que todo es público. + + + Más sobre contratos inteligentes + + +## Ethereum y las DAO {#ethereum-and-daos} + +Ethereum es la base perfecta para las DAO por varias razones: + +- El propio consenso de Ethereum se distribuye y establece lo suficiente como para que las organizaciones confíen en la red. +- El código inteligente del contrato no puede ser modificado una vez se conecte, ni siquiera por sus propietarios. Esto permite a la DAO funcionar siguiendo las reglas con las que fue programada. +- Los contratos inteligentes pueden enviar/recibir fondos. Sin esto necesitará un intermediario de confianza para administrar los fondos del grupo. +- La comunidad Ethereum ha demostrado ser más colaborativa que competitiva, permitiendo que emerjan rápidamente las mejores prácticas y sistemas de apoyo. + +## Gobernanza de las DAO {#dao-governance} + +Muchas consideraciones entran en juego a la hora de gobernar una DAO, como las funciones de los votos y propuestas. + +### Delegación {#governance-delegation} + +La delegación es como la versión DAO de la democracia representativa. Los dueños de los tókenes delegan votos a los usuarios que se nominan a sí mismos y se comprometen a administrar el protocolo y a mantenerse informados. + +#### Un conocido ejemplo {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) – Los titulares de ENS pueden delegar sus votos a los miembros comprometidos de la comunidad para representarlos. + +### Gobernanza de transacciones automáticas {#governance-example} + +En muchas DAO, las transacciones se ejecutarán automáticamente si un conjunto de miembros vota afirmativamente. + +#### Un conocido ejemplo {#governance-example} + +[Nouns](https://nouns.wtf) – En Nouns DAO, una transacción se ejecuta automáticamente si se cumple un quórum de votos y la mayoría lo refrenda por voto, siempre y cuando no reciba el veto de los fundadores. + +### Gobernanza multifirma {#governance-example} + +Mientras que las DAO pueden tener miles de miembros votantes, los fondos pueden vivir en una cartera compartida por 5-20 miembros activos de la comunidad que suelen ser de confianza y "doxxed" (identidades públicas conocidas por la comunidad). Después de una votación, los firmantes multifirma ejecutan la voluntad de la comunidad. + +## Las Leyes de una DAO {#dao-laws} + +En 1977, Wyoming inventó la LLC (sociedad de responsabilidad limitada), que protege a los emprendedores y limita su responsabilidad. Más recientemente, promovieron la ley de las DAO que establece su estatus legal. Actualmente Wyoming, Vermont y las islas Vírgenes tienen alguna legislación que regula las DAO. + +### Un conocido ejemplo {#law-example} + +La CityDAO utilizó la ley de las DAO de Wyoming para comprar 40 hectáreas de tierra cerca del Parque Nacional de Yellowstone. + +## Suscripción a una DAO {#dao-membership} + +Existen diferentes modelos de suscripción a una DAO. Los miembros pueden determinar cómo funciona la votación y otras partes clave de la DAO. + +### Inscripción basada en tókenes {#token-based-membership} + +Normalmente no tienen todos los permisos, dependiendo del token utilizado. La mayoría de estos tókenes de gobernanza pueden comerciarse sin permiso en un intercambio descentralizado. Otros deben ganarse proporcionando liquidez o alguna otra «prueba de trabajo». En cualquiera de los dos casos, simplemente conservar el token permite el acceso a las votaciones. + +_Normalmente se utiliza para gobernar protocolos o tókenes descentralizados en sí mismos._ + +#### Un conocido ejemplo {#token-example} + +[MakerDAO](https://makerdao.com) – El token de MakerDAO MKR está ampliamente disponible en intercambios descentralizados y cualquiera puede comprar para poder tener un voto en el futuro del protocolo Maker. + +### Inscripción basada en participaciones {#share-based-membership} + +Las DAO basadas en participaciones son más permisivas, pero aun así bastante abiertas. Cualquier miembro potencial puede presentar una propuesta para unirse a la DAO, generalmente ofreciendo un tributo de algún valor en forma de tókenes o trabajo. Las participaciones representan poder de voto directo y propiedad. Los miembros pueden salir en cualquier momento con su parte proporcional de la tesorería. + +_Normalmente se utiliza para organizaciones más estrechas, centradas en el ser humano, como organizaciones benéficas, colectivos de trabajadores y clubes de inversión. También se pueden gobernar protocolos y tókenes._ + +#### Un conocido ejemplo {#share-example} + +[MolochDAO](http://molochdao.com/) – MolochDAO se centra en la financiación de proyectos Ethereum. Requieren una propuesta de membresía para que el grupo pueda evaluar si tiene la experiencia y el capital necesarios para emitir juicios informados sobre posibles subvenciones. No se puede simplemente comprar acceso a la DAO en el mercado abierto. + +### Adhesión de miembros basada en la reputación {#reputation-based-membership} + +La reputación representa una prueba de participación y otorga poder de voto en la DAO. A diferencia de la adhesión de miembros basada en tókenes o en la participación, las DAO basadas en la reputación no transfieren la propiedad a colaboradores. La reputación no puede comprarse, transferirse ni delegarse; los miembros de la DAO deben ganarse la reputación mediante la participación. La votación en cadena se realiza sin permisos y los potenciales miembros pueden presentar propuestas libremente para unirse a la DAO y solicitar reputación y tókenes como recompensa a cambio de su contribución. + +_Suele usarse para el desarrollo descentralizado y la gobernanza de protocolos y DApps, pero resulta igualmente adecuado para un conjunto diverso de organizaciones, como las benéficas, los colectivos de trabajadores, o los grupos de inversión, entre otros._ + +#### Un conocido ejemplo {#reputation-example} + +[DXdao](https://DXdao.eth.link) – DXdao es un colectivo soberano global que construye y gobierna aplicaciones y protocolos descentralizados desde 2019. Goza de la gobernanza basada en la reputación y el consenso holográfico para coordinar y manejar fondos, por lo que nadie puede sumar capital para influenciar su futuro. + +## Crear/unirse a una DAO {#join-start-a-dao} + +### Unirse a una DAO {#join-a-dao} + +- [Comunidad Ethereum y DAO](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [Lista de DAOHaus de las DAO](https://app.daohaus.club/explore) +- [Lista Tally.xyz de DAO](https://www.tally.xyz) + +### Crear una DAO {#start-a-dao} + +- [Crear una DAO con DAOHaus](https://app.daohaus.club/summon) +- [Iniciar un gobernador DAO con Tally](https://www.tally.xyz/add-a-dao) +- [Crear una DAO impulsada por Aragon](https://aragon.org/product) +- [Empezar una colonia](https://colony.io/) +- [Crear una DAO con el consenso holográfico de DAOstack](https://alchemy.daostack.io/daos/create) + +## Para profundizar sobre el tema {#further-reading} + +### Artículos acerca de las DAO {#dao-articles} + +- [¿Qué es una DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) +- [El manual de las DAO](https://daohandbook.xyz) +- [La casa de las DAO](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) +- [¿Qué es una DAO y para qué sirve?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) +- [Cómo empezar una comunidad digital con una DAO](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) +- [¿Qué es una DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) +- [¿Qué es el consenso holográfico?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) +- [Las DAO no son corporaciones: donde la descentralización en organizaciones autónomas importa, por Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) +- [DAO, DAC, DA y más: una guía de terminología incompleta](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Blog de Ethereum](https://blog.ethereum.org) + +### Vídeos {#videos} + +- [¿Qué es una DAO en cripto?](https://youtu.be/KHm0uUPqmVE) +- [¿Puede una DAO construir una ciudad?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/public/content/translations/es/decentralized-identity/index.md b/public/content/translations/es/decentralized-identity/index.md new file mode 100644 index 00000000000..e47ccac5f3a --- /dev/null +++ b/public/content/translations/es/decentralized-identity/index.md @@ -0,0 +1,185 @@ +--- +title: Identidad descentralizada +description: "¿Qué es la identidad descentralizada y por qué es importante?" +lang: es +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: /eth-gif-cat.png +summaryPoint1: Los sistemas tradicionales de identidad han centralizado la emisión, mantenimiento y control de sus identificadores. +summaryPoint2: La identidad descentralizada elimina la dependencia de terceras partes centralizadas. +summaryPoint3: Gracias a la criptografía, los usuarios tienen ahora las herramientas para emitir, retener y controlar sus propios identificadores y certificaciones. +--- + +La identidad está detrás de prácticamente todos los aspectos de su vida. El uso de servicios en línea, la apertura de una cuenta bancaria, la votación en elecciones, la compra de propiedades, los contratos de empleo... Todo esto requiere demostrar su identidad. + +Sin embargo, los sistemas tradicionales de gestión de identidad dependen de intermediarios centralizados que emiten y controlan sus identificaciones y [certificados](#what-are-attestations). Esto significa que no puede controlar su información relacionada con su identidad ni decidir quién tiene acceso a su Información de Identificación Personal (PII) y cuánto acceso tienen estas partes. + +Para resolver estos problemas, hemos descentralizado los sistemas de identidad utilizando cadenas de bloques públicas como Ethereum. La identidad descentralizada permite a los individuos administrar la información relacionada con su identidad. Con soluciones de identidad descentralizada, _tú_ puede crear identificadores y reclamar y mantener sus certificados sin depender de autoridades centralizadas como proveedores de servicios o gobiernos. + +## Qué es la identidad? {#what-is-identity} + +Identidad significa el sentido del yo como individuo, definido por características únicas. La identidad se refiere a ser un _individuo_, es decir, una entidad humana única. La identidad también refiere entidades no humanas, como una organización o autoridad. + +## ¿Qué son los identificadores? {#what-are-identifiers} + +Un identificador es una pieza de información que actúa como un indicador a una identidad o identidad en particular. Los identificadores comunes incluyen: + +- Nombre +- Número de identificación fiscal/de seguridad social +- Número de teléfono móvil +- Fecha y lugar de nacimiento +- Credenciales de identificación digital, por ejemplo, direcciones de correo electrónico, nombres de usuario, avatares + +Estos ejemplos tradicionales de identificadores son emitidos, sostenidos y controlados por entidades centrales. Se necesita permiso del Gobierno para cambiar su nombre o el de una plataforma de redes sociales para cambiar el nombre de usuario. + +## ¿Qué son los certificados? {#what-are-attestations} + +Un certificado es una afirmación hecha por una entidad acerca de otra entidad. Si vive en Estados Unidos, su carné de conducir emitido por el Department of Motor Vehicles (una entidad) certifica que usted (otra entidad) está legalmente autorizado a conducir un coche. + +Los certificados son diferentes de los identificadores. Un certificado _contiene_ identificadores que hacen referencia a una identidad en particular, y hace una afirmación relacionada con esta identidad. Por lo tanto, su carné de conducir tiene identificadores (nombre, fecha de nacimiento, dirección), pero también es una afirmación sobre su derecho legal a conducir. + +### ¿Qué son los identificadores descentralizados? {#what-are-decentralized-identifiers} + +Los identificadores tradicionales como tu nombre jurídico o dirección de correo electrónico dependen de terceros: gobiernos y proveedores de correo electrónico. Los identificadores descentralizados (DID) son diferentes: no son emitidos, administrados o controlados por ninguna entidad central. + +Los identificadores descentralizados son emitidos, mantenidos y controlados por individuos. Una [cuenta Ethereum](/developers/docs/accounts/) es un ejemplo de un identificador descentralizado. Puede crear tantas cuentas como quiera sin el permiso de nadie y sin necesidad de almacenarlas en un registro central. + +Los identificadores descentralizados se almacenan en las cadenas de bloques o redes entre pares. Esto hace a los DIDs [globalmente únicos, resolubles con alta disponibilidad, y criptográficamente verificables](https://w3c-ccg.github.io/did-primer/). Un identificador descentralizado puede ser asociado con diferentes entidades, incluyendo personas, organizaciones o instituciones gubernamentales. + +## ¿Qué hace que los identificadores descentralizados sean posibles? {#what-makes-decentralized-identifiers-possible} + +### 1. Infraestructura de clave pública (ICP) {#public-key-infrastructure} + +La infraestructura de clave pública (ICP) es una medida de seguridad de la información que genera una [clave pública](/glossary/#public-key) y una [clave privada](/glossary/#private-key) para una entidad. La criptografía de clave pública se utiliza en las redes de cadena de bloques para autenticar las identidades del usuario y demostrar la propiedad de los activos digitales. + +Algunos identificadores descentralizados, como una cuenta de Ethereum, tienen claves públicas y privadas. La clave pública identifica al controlador de la cuenta, mientras que las claves privadas pueden firmar y descifrar mensajes para esta cuenta. Los ICP proporcionan pruebas necesarias para autenticar entidades y prevenir la suplantación y el uso de identidades falsas, utilizando [firmas criptográficas](https://andersbrownworth.com/blockchain/public-private-keys/) para verificar todas las reclamaciones. + +### 2. Almacenes de datos descentralizados {#decentralized-datastores} + +Una cadena de bloques sirve como un registro de datos verificables: un repositorio de información abierto, sin confianza y descentralizado. La existencia de cadenas de bloques públicas elimina la necesidad de almacenar identificadores en registros centralizados. + +Si alguien necesita confirmar la validez de un identificador descentralizado, puede buscar la clave pública asociada en la cadena de bloques. Esto es diferente de los identificadores tradicionales que requieren de terceros para autenticarse. + +## ¿Cómo hacen los identificadores descentralizados para generar certificaciones descentralizadas? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} + +La identidad descentralizada es la idea de que la información relacionada con la identidad debe ser autocontrolada, privada y portátil, siendo sus cimientos los identificadores descentralizados y los certificados. + +En el contexto de la identidad descentralizada, las certificaciones (también conocidas como [credenciales verificables](https://www.w3.org/TR/vc-data-model/)) son afirmaciones a prueba de manipulación, criptográficamente verificables realizadas por el emisor. Cada certificado o credencial verificable que una entidad (por ejemplo, una organización) emite está asociada con su CPI. + +Debido a que los CPI se almacenan en la cadena de bloques, cualquiera puede verificar la validez de un certificado comprobando el CPI del emisor en Ethereum. Esencialmente, la blockchain de Ethereum actúa como un directorio global que permite la verificación de CPIs asociados con ciertas entidades. + +Los identificadores descentralizados son la razón por la que se pueden autocontrolar y verificar los certificados. Incluso si el emisor ya no existe, el titular siempre tiene prueba de la procedencia y validez del certificado. + +Los identificadores descentralizados también son cruciales para proteger la privacidad de la información personal a través de la identidad descentralizada. Por ejemplo, si un individuo envía una prueba de un certificado (un carné de conducir), el grupo de verificación no necesita verificar la validez de la información en la prueba. En cambio, el verificador solo necesita garantías criptográficas de la autenticidad del certificado y de la identidad de la organización emisora para determinar si la prueba es válida. + +## Tipos de certificados en identidad descentralizada {#types-of-attestations-in-decentralized-identity} + +La forma en que se almacena y recupera la información de los certificados en un ecosistema de identidad basado en Ethereum es diferente de la gestión tradicional de la identidad. He aquí una visión general de los diversos enfoques para emitir, almacenar y verificar los certificados en sistemas de identidad descentralizados: + +### Certificados fuera de cadena {#off-chain-attestations} + +Un problema que conlleva el almacenamiento de certificados en la cadena es que pueden contener información que los individuos quieren mantener privados. La naturaleza pública de la cadena de bloques de Ethereum no facilita el almacenamiento de tales certificados. + +La solución es emitir certificados mantenidos por los usuarios fuera de la cadena en carteras digitales pero firmadas con el CPI del emisor almacenado en la cadena. Estos certificados están codificados como [JSON Web Tokens](https://en.wikipedia.org/wiki/JSON_Web_Token) y contienen la firma digital del emisor, lo que permite una verificación fácil de las reclamaciones fuera de la cadena. + +Este es un escenario hipotético para explicar los certificados fuera de la cadena: + +1. Una universidad (el emisor) genera un certificado (un certificado académico digital), firma con sus claves y lo emite a Bob (el titular de la identidad). + +2. Bob solicita un empleo y quiere demostrar sus cualificaciones académicas a un empleador, por lo que comparte la certificación desde su cartera. La compañía (el verificador) puede confirmar la validez del certificado comprobando el CPI del emisor (es decir, su clave pública en Ethereum). + +### Certificaciones fuera de cadena con acceso permanente {#offchain-attestations-with-persistent-access} + +Bajo este sistema, los cerficados se transforman en un archivo JSON y son almacenados off-chain (idealmente en una [plataforma de cloud descentralizada](/developers/docs/storage/) como IPFS o Swarm). Sin embargo, un hash [](/glossary/#hash) del archivo JSON se almacena en cadena y se enlaza con un CPI mediante un registro en la cadena. El CPI asociado podría ser el del emisor del certificado o el destinatario. + +Este enfoque permite que las certificaciones obtengan permanencia basada en la cadena de bloques, manteniendo la información de reclamaciones cifrada y verificable. También permite la divulgación selectiva, ya que el titular de la clave privada puede descifrar la información. + +### Certificados en la cadena {#onchain-attestations} + +Los certificados en la cadena se mantienen en [contratos inteligentes](/developers/docs/smart-contracts/) en la cadena de bloques de Ethereum. El contrato inteligente (actuando como un registro) enlazará un certificado a un identificador descentralizado correspondiente en la cadena (una clave pública). + +He aquí un ejemplo que ilustra cómo podrían funcionar en la práctica los certificados en la cadena: + +1. Una empresa (XYZ Corp) planea vender acciones utilizando un contrato inteligente, pero solo quiere compradores que hayan completado una comprobación de antecedentes. + +2. XYZ Corp puede hacer que la empresa realice comprobaciones de antecedentes para emitir certificados en cadena en Ethereum. Este certificado verifica que el individuo ha pasado la comprobación de antecedentes sin exponer ninguna información personal. + +3. El contrato inteligente de venta de acciones puede comprobar el contrato de registro para ver las identidades de los compradores examinados, haciendo posible que el contrato inteligente determine quién está autorizado a comprar acciones y quién no. + +### Los tókenes Souldbound y la identidad {#soulbound} + +[Los tókenes Soulbound](https://vitalik.ca/general/2022/01/26/soulbound.html) (NFT no transferibles) pueden utilizarse para recopilar información única en una cartera específica. Esto crea efectivamente una identidad única en cadena vinculada a una dirección particular de Ethereum que podría incluir tókenes representando logros (ej. terminar algún curso en línea específico o pasar un umbral de puntuación en un juego) o participación en la comunidad. + +## Beneficios de una identidad descentralizada {#benefits-of-decentralized-identity} + +1. La identidad descentralizada aumenta el control individual de la información identificativa. Los identificadores y certificados descentralizados pueden ser verificados sin depender de autoridades centralizadas o servicios de terceros. + +2. Las soluciones de identidad descentralizadas facilitan un método de protección de la privacidad, robusto y confiable para verificar y gestionar la identidad del usuario. + +3. La identidad descentralizada que utiliza la tecnología de cadena de bloques crea confianza entre diferentes partes y proporciona garantías criptográficas para probar la validez de las certificaciones. + +4. La identidad descentralizada permite la portabilidad de los datos de identidad. Los usuarios almacenan certificados e identificadores en la cartera móvil y los pueden compartir con cualquier otro según su criterio. Los identificadores descentralizados y los certificados no están bloqueados en la base de datos de la organización emisora. + +5. La identidad descentralizada debería funcionar bien con las tecnologías emergentes de conocimiento cero que permitan a los individuos demostrar que tienen o han hecho algo sin revelar lo que es esa cosa. Esta podría convertirse en una manera poderosa de combinar confianza y privacidad para aplicaciones como la votación. + +6. La identidad descentralizada permite aplicar mecanismos AntiSybil que detecten cuando un humano individual pretende ser varios humanos diferentes para jugar o hacer spam en algún sistema. + +## Casos de uso de identidad descentralizada {#decentralized-identity-use-cases} + +La identidad descentralizada tiene muchos casos potenciales de uso: + +### 1. Inicio de sesión universal {#universal-dapp-logins} + +La identidad descentralizada puede ayudar a reemplazar los inicios de sesión basados en contraseña con [autenticación descentralizada](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). Los proveedores de servicios pueden emitir certificados a los usuarios, los cuales pueden ser almacenados en una cartera de Ethereum. Un certificado de ejemplo sería un [NFT](/nft/) que otorga al titular acceso a una comunidad en línea. + +Una función [de inicio de sesión con Ethereum](https://login.xyz/) habilitaría entonces a los servidores para confirmar la cuenta de Ethereum del usuario y obtener la verificación necesaria desde la dirección de su cuenta. Esto significa que los usuarios pueden acceder a plataformas y sitios web sin tener que memorizar contraseñas largas y mejorar la experiencia en línea de los usuarios. + +### 2. Autenticación KYC {#kyc-authentication} + +El uso de muchos servicios en línea requiere que los individuos proporcionen certificados y credenciales, como un carné de conducir o pasaporte nacional. Pero este enfoque es problemático porque la información privada de los usuarios puede verse comprometida y los proveedores de servicios no pueden verificar la autenticidad del certificado. + +La identidad descentralizada permite a las empresas saltarse a los procesos [Conozca a Su Cliente (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) convencionales y autenticar identidades de usuario a través de credenciales verificables. Esto reduce el coste de la gestión de la identidad y evita el uso de documentación falsa. + +### 3. Votaciones y comunidades en línea {#voting-and-online-communities} + +Las votaciones en línea y las redes sociales son dos nuevas aplicaciones para la identidad descentralizada. Los esquemas de votación en línea son susceptibles de manipulación, especialmente si los actores maliciosos crean identidades falsas para votar. Pedir a las personas que presenten certificaciones en la cadena puede mejorar la integridad de los procesos de votación en línea. + +La identidad descentralizada puede ayudar a crear comunidades en línea libres de falsas cuentas. Por ejemplo, cada usuario podría tener que autenticar su identidad utilizando un sistema de identidad en la cadena, como el Ethereum Name Service, reduciendo la posibilidad de bots. + +### 4. Protección AntiSybil {#sybil-protection} + +Los ataques Sybil se refieren a seres humanos individuales engañando a un sistema para que piensen que son múltiples personas para aumentar así su influencia. [Las aplicaciones de concesión de subvenciones](https://gitcoin.co/grants/) que utilizan [votación cuadrática](https://www.radicalxchange.org/concepts/plural-voting/) son vulnerables a estos ataques de Sybil, porque el valor de una subvención aumenta cuando más personas votan por ella, incentivando a los usuarios a dividir sus contribuciones a través de muchas identidades. Las identidades descentralizadas ayudan a evitar esto aumentando la carga sobre cada participante para demostrar que son realmente humanos, aunque a menudo sin tener que revelar información privada específica. + +## Usos de la identidad descentralizada {#use-decentralized-identity} + +Hay muchos proyectos ambiciosos que utilizan Ethereum como base para soluciones de identidad descentralizada: + +- **[Ethereum Name Service (ENS)](https://ens.domains/)** - _Un sistema de nomenclatura descentralizado en la cadena, identificadores legibles por máquinas, como direcciones del cartera Ethereum, hashes de contenido y metadatos._ +- **[SpruceID](https://www.spruceid.com/)** - _Un proyecto de identidad descentralizado que permite a los usuarios controlar la identidad digital con cuentas de Ethereum y perfiles ENS en lugar de depender de servicios de terceros._ +- **[Servicio de Atestación de Ethereum (EAS)](https://attest.sh/)**: _Un registro/protocolo descentralizado para hacer atestaciones dentro o fuera de la cadena sobre cualquier cosa._ +- **[Proof of Humanity](https://www.proofofhumanity.id)** - _Proof of Humanity (o PoH) es un sistema de verificación de identidad social construido en Ethereum._ +- **[Brillo](https://www.brightid.org/)** - _Una red de identidad social descentralizada y de código abierto que busca reformar la verificación de identidad a través de la creación y el análisis de un gráfico social._ +- **[Proof-of-personhood Passport](https://proofofpersonhood.com/)** - _Un agregador de identidad digital descentralizado._ + +## Para profundizar sobre el tema {#further-reading} + +### Artículos {#articles} + +- [Casos de Uso de la cadena de bloques: Blockchain in Digital Identity](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ +- [¿Qué es Ethereum ERC725? Administración propia y soberana de identidades en la cadena de bloques](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Ciudad de Sam_ +- [Cómo la cadena de bloques podría resolver el problema de la identidad digital](https://time.com/6142810/proof-of-humanity/) — _Andrew R. Chow_ +- [¿Qué es la identidad descentralizada y por qué merece tu atención?](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ + +### Vídeos {#videos} + +- [Identidad descentralizada (bonificación de sesión Livestream)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Un vídeo muy aclarador de la identidad descentralizada explicado por Andreas_ +- [Iniciar sesión con Ethereum e Identity descentralizada con Ceramic, IDX, React, y 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _tutorial de YouTube sobre la construcción de un sistema de gestión de identidad para crear, leer, y actualizar el perfil de un usuario usando su cartera Ethereum por Nader Dabit_ +- [BrightID - Identidad descentralizada en Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _episodio de pódcast Bankless abordando BrightID, una solución de identidad descentralizada para Ethereum_ +- [Internet fuera de la cadena: Credenciales descentralizadas y verificables](https://www.youtube.com/watch?v=Ez_Bb6j87mg) — _EthDenver 2022 presentación de Evin McMullen_ + +### Comunidades {#communities} + +- [ERC-725 Alianza en GitHub](https://github.com/erc725alliance) — _Partidarios del estándar ERC725 para gestionar la identidad en la cadena de bloques Ethereum_ +- [Servidor SpruceID Discord](https://discord.com/invite/Sf9tSFzrnt) — _Comunidad para entusiastas y desarrolladores que trabajan en SpruceID con Ethereum_ +- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Una comunidad de desarrolladores que contribuyen a la construcción de un marco para datos verificables para aplicaciones_ diff --git a/public/content/translations/es/defi/index.md b/public/content/translations/es/defi/index.md new file mode 100644 index 00000000000..7c379d149a7 --- /dev/null +++ b/public/content/translations/es/defi/index.md @@ -0,0 +1,352 @@ +--- +title: Finanzas descentralizadas (DeFi) +description: Una visión de las finanzas descentralizadas en Ethereum +lang: es +template: use-cases +emoji: ":money_with_wings:" +image: /use-cases/defi.png +alt: Un logotipo de Ethereum hecho de bloques de Lego. +sidebarDepth: 2 +summaryPoint1: Una alternativa global y abierta al sistema financiero actual. +summaryPoint2: Productos que le permiten tomar prestado, ahorrar, invertir, comerciar y más. +summaryPoint3: Basado en tecnología de código abierto con la que cualquiera puede programar. +--- + +DeFi o Finanzas Descentralizadas es un sistema financiero global y abierto para la era de Internet, una alternativa al sistema anticuado, fuertemente controlado y mantenido por procesos e infraestructuras del siglo pasado. En DeFi, usted tiene el control y la total visibilidad sobre su dinero. Puede interactuar con mercados mundiales y alternativos a la moneda local o entidades bancarias de su país. Los productos en DeFi permiten el uso de servicios financieros a cualquier persona que tenga una conexión a Internet y además, dichos servicios son manejados y mantenidos por sus propios usuarios. Hasta el momento, miles de millones de dólares en criptomonedas han circulado a través de las aplicaciones DeFi y siguen aumentando cada día. + +## ¿Qué es DeFi? {#what-is-defi} + +DeFi es un término colectivo que se refiere a los diferentes productos y servicios financieros accesibles para cualquier usuario de Ethereum, cualquier persona con una conexión a Internet. Con DeFi, los mercados siempre se encuentran abiertos y no existen autoridades centralizadas que puedan bloquear las transacciones o denegar el acceso a cualquiera de los servicios. Estos servicios, anteriormente lentos y con riesgo de error humano, ahora son automáticos y más seguros debido a que son manejados por un código que cualquier persona puede inspeccionar y analizar. + +Existe una economía creciente criptográfica palpable, en la que se puede prestar, pedir prestado, a corto y a largo plazo, ganar intereses y mucho más. En Argentina, por ejemplo, los usuarios de criptomonedas han logrado escapar de la fuerte inflación que atañe al país a través del uso de las DeFi. Las empresas están empezando a pagar los salarios de sus empleados en tiempo real. Algunas personas han llegado a retirar y pagar préstamos de millones de dólares sin la necesidad de una identificación personal. + + + +## DeFi versus finanzas tradicionales {#defi-vs-tradfi} + +Una de las mejores maneras de determinar el potencial de las DeFi es entender los problemas que existen en la actualidad. + +- Algunas personas no tienen acceso a una cuenta bancaria o al uso de servicios financieros. +- La falta de acceso a servicios financieros puede impedir que las personas consigan un empleo. +- Los servicios financieros pueden bloquear sus transacciones de dinero. +- Sus datos personales son una carga oculta en los servicios financieros que usa. +- Los gobiernos y las instituciones centralizadas pueden cerrar los mercados a voluntad. +- Las horas de comercio están a menudo limitadas al horario laboral de una zona horaria específica. +- Las transferencias de dinero pueden tomar días debido a procesos humanos internos. +- Existe una prima al uso de servicios financieros debido a que las instituciones intermediarias necesitan su parte. + +### Una comparación {#defi-comparison} + +| DeFi | Finanzas tradicionales | +| ------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Usted guarda su dinero. | Las empresas guardan su dinero. | +| Usted controla el destino de su dinero y la manera en la cual se gasta. | Debe confiar en que las compañías no administren mal su dinero, como prestárselo a prestatarios no fiables. | +| Los fondos se transfieren en cuestión de minutos. | Los pagos pueden tomar días debido a procesos manuales. | +| La actividad financiera se realiza bajo un seudónimo. | La actividad financiera está fuertemente vinculada a su identidad. | +| DeFi está abierto a cualquier persona. | Debe solicitar el uso de los servicios financieros. | +| Los mercados siempre están abiertos. | Los mercados cierran debido a que los empleados necesitan descanso. | +| Construido sobre la transparencia: cualquier persona puede mirar los datos del producto e inspeccionar el funcionamiento del sistema. | Las instituciones financieras son como libros cerrados: no puede preguntar por el historial de préstamos, el registro de sus activos administrados, etc. | + + + Explorar las aplicaciones DeFi + + +## Todo empezó con Bitcoin... {#bitcoin} + +Bitcoin es en muchos sentidos la primera aplicación DeFi. Bitcoin permite poseer y controlar valor y mandarlo a cualquier parte del mundo. Lo hace a través de un registro público, que provee una forma para que grandes cantidades de personas, que no se conocen entre sí, puedan acordar diferentes transacciones sin la necesidad de un intermediario. Bitcoin está abierto a cualquier persona y nadie tiene la autoridad para cambiar sus reglas. Las reglas de Bitcoin, como su escasez y el acceso público, están escritas en su tecnología. No se asemeja a las finanzas tradicionales, donde los gobiernos pueden imprimir dinero que devalúa sus ahorros y las empresas pueden cerrar mercados. + +Ethereum se basa en esto. Al igual que Bitcoin, las reglas no pueden cambiar en contra de su voluntad y todo el mundo tiene acceso. Pero también hace que el dinero digital sea programable, a través del uso de [contratos inteligentes](/glossary#smart-contract), permitiendo que pueda ir más allá de simplemente almacenar y enviar valor. + + + +## Dinero programable {#programmable-money} + +Esto puede sonar extraño... ¿por qué querría programar mi dinero? Sin embargo, esto no es más que una característica natural de los tókenes en Ethereum. Cualquier persona puede programar operaciones lógicas dentro de los pagos. De esta manera, puede obtener el control y la seguridad de Bitcoin combinado con los servicios que proveen las instituciones financieras. Esto le permite realizar actividades con las criptomonedas que no podría hacer en Bitcoin como prestar o pedir un préstamo, planificar pagos, invertir en fondos indexados y más. + + +
Si es nuevo en Ethereum, explore y pruebe algunas de nuestras sugerencias de aplicaciones DeFi.
+ + Explorar las aplicaciones DeFi + +
+ +## ¿Qué puede hacer con DeFi? {#defi-use-cases} + +Existe una alternativa descentralizada para la mayoría de servicios financieros. Pero Ethereum también nos presenta la oportunidad de crear productos financieros completamente nuevos. Esta es una lista en constante crecimiento. + +- [Envíe dinero a cualquier parte del mundo](#send-money) +- [Pague sueldos en tiempo real desde y hacia cualquier parte del mundo](#stream-money) +- [Acceda a monedas estables](#stablecoins) +- [Pida préstamos de fondos usando garantías](#lending) +- [Pida préstamos sin garantías](#flash-loans) +- [Empiece a ahorrar en criptomonedas](#saving) +- [Comercie con tókenes](#swaps) +- [Haga crecer su portafolio](#investing) +- [Financie sus ideas](#crowdfunding) +- [Compre un seguro](#insurance) +- [Gestione su portafolio](#aggregators) + + + +### Envíe dinero a cualquier parte del mundo {#send-money} + +Como cadena de bloques, Ethereum está diseñado para realizar transacciones de una manera segura y con un alcance global. Al igual que Bitcoin, Ethereum hace que enviar dinero alrededor del mundo sea tan fácil como enviar un correo electrónico. Solo se necesita ingresar el [nombre ENS](/nft/#nft-domains) del beneficiario (p. ej. bob.eth) o la dirección de cuenta usando la cartera y este recibirá directamente el pago en cuestión de minutos (por lo general). Para enviar o recibir pagos, necesitará tener una [cartera](/wallets/). + + + Ver DApps de pagos + + +#### Pague sueldos en tiempo real desde y hacia cualquier parte del mundo... {#stream-money} + +Puede pagar sueldos en tiempo real usando Ethereum. Esto le permite pagarle a una persona su sueldo en cualquier momento, dándole acceso a su dinero cuando quiera que lo necesite. De la misma manera, también puede alquilar objetos como taquillas o patinetes eléctricos. + +Por último, si no quiere enviar o pagar en tiempo real usando [ETH](/eth/) debido a la volatilidad de su precio, existen otras divisas alternativas: «stablecoins» o monedas estables. + + + +### Acceso a monedas estables {#stablecoins} + +La volatilidad de las criptomonedas es un problema para muchos productos financieros y para el gasto en general. La comunidad DeFi ha resuelto este desafío a través del uso de las monedas estables. Su valor permanece vinculado a otro activo, generalmente una moneda popular como los dólares. + +Las monedas como Dai o USDC tienen un valor que varía en pocos céntimos del dólar. Esto las hace perfectas para acumular ganancias o comerciar. Muchas personas en Latinoamérica han utilizado las monedas estables como una forma de proteger sus ahorros frente a momentos de gran incertidumbre que involucran a las monedas emitidas por su gobierno. + + + Más sobre monedas estables + + + + +### Préstamos {#lending} + +Los préstamos de dinero de proveedores descentralizados se llevan a cabo de dos formas principales. + +- Entre pares (también conocido como P2P), en que un prestatario tomará prestado directamente de un prestamista específico. +- En función de las reservas (o «pools»), cuando los prestamistas proporcionan reservas (liquidez) a una reserva de la que los prestatarios pueden pedir préstamos. + + + Ver DApps de préstamos + + +El uso de un prestamista descentralizado tiene muchas ventajas... + +#### Préstamos privados {#borrowing-privacy} + +Hoy en día, los créditos y los préstamos de dinero giran totalmente en torno a las personas implicadas. Los bancos necesitan saber si es probable que pueda pagar un préstamo antes de autorizarlo. + +Los préstamos descentralizados funcionan sin que ninguna de las partes tenga que identificarse. En su lugar, el prestatario debe ofrecer una garantía que recibirá el prestamista automáticamente si el crédito no se cubre. Algunos prestamistas incluso aceptan NFT como garantía. Los NFT son una obra de un bien único, como un cuadro. [Más información sobre NFT](/nft/) + +Esto le permite pedir dinero prestado sin cheques de crédito ni entregar información privada. + +#### Acceso a los fondos globales {#access-global-funds} + +Cuando usted utiliza un prestamista o crédito descentralizado, tiene acceso a los fondos depositados de todo el mundo, no solo los fondos bajo custodia de su banco o institución elegida. Esto hace más accesibles los préstamos y mejora los tipos de interés. + +#### Eficiencias fiscales {#tax-efficiencies} + +Los préstamos pueden proporcionarle acceso a los fondos que necesita sin necesidad de vender sus ETH (operación imponible). En su lugar, puede usar ETH como garantía para obtener un préstamo de moneda estable. Esto le da el flujo de efectivo que necesita y le permite mantener sus ETH. Las monedas estables son tókenes mucho mejores para cuando necesita dinero ya que no fluctúan en valor como el ETH. [Más sobre las monedas estables](#stablecoins) + +#### Préstamos flash {#flash-loans} + +Los préstamos Flash son una forma experimental de préstamos descentralizados que le permiten pedir prestado sin garantías ni enviar información personal. + +Por el momento no son muy accesibles para las personas que no saben mucho de tecnología, pero están destinados a poder ser usados por todo el mundo en un futuro. + +Funcionan sobre la base de que el préstamo se retira y se reembolsa en la misma transacción. Si no se puede reembolsar, la transacción se revierte, como si nada hubiese pasado. + +Los fondos que se usan suelen ser retenidos en reservas (grandes reservas, o «pools», de fondos usadas para pedir préstamos). Si no se están usando en un momento determinado, esto le da a cualquiera la oportunidad de prestar fondos, encargarse de la transacción y pagar la totalidad del monto casi al mismo tiempo en que se prestan los fondos. + +Por esta razón, debe incluirse mucha lógica en una transacción muy específica. Un ejemplo sencillo: alguien puede estar usando un préstamo flash para pedir prestada cierta cantidad de un activo a un precio para poder venderlo luego en un intercambio diferente donde el precio es mayor. + +Esto es lo que ocurre en una transacción: + +- Pide prestado X cantidad de $asset a 1,00 $ de A +- Vende X $asset a B por 1,10 $ +- Paga el préstamo a A +- Conserva el beneficio menos la tarifa de transacción + +Si la oferta de B cayera repentinamente y el usuario no pudiera comprar la cantidad suficiente para cubrir el préstamo, la transacción sería fallida. + +Para hacer lo que describimos en el ejemplo de arriba pero en el mundo real necesitaría mucho dinero. Estas estrategias para hacer dinero solo son accesibles para aquellos que ya tienen dinero. Los préstamos flash son un ejemplo de un futuro en el que tener dinero no es necesariamente un requisito previo para ganar dinero. + +[Más información sobre los préstamos flash](https://aave.com/flash-loans/) + + + +### Empiece a ahorrar con criptomonedas {#saving} + +#### Préstamos {#lending} + +Puede ganar un interés en criptomonedas al prestar dinero: verá cómo aumentan sus fondos en tiempo real. Ahora mismo, las tasas de interés son mucho más altas de lo que probablemente pueda obtener en su banco local (si tiene la suerte suficiente de encontrar uno). Le mostramos un ejemplo: + +- Presta sus 100 Dai, [criptomoneda estable](/stablecoins/), a un producto como, por ejemplo, Aave. +- Recibirá 100 Aave Dai (aDai), que es un token que representa su Dai prestado. +- Sus tókenes aDai crecerán en base al tipo de interés y podrá ver cómo aumenta el valor total de su cartera. Dependiendo de la tasa efectiva anual (APR, por sus siglas en inglés), el valor de su cartera será aproximadamente de 100.1234 tras pocos días ¡o incluso horas! +- Puede retirar una cantidad de Dai que sea igual a sus fondos de aDai siempre que quiera. + + + Ver DApps de préstamos + + +#### Loterías sin pérdidas {#no-loss-lotteries} + +Las loterías sin pérdidas —como PoolTogether— son una nueva forma divertida e innovadora de ahorrar dinero. + +- Compra 100 boletos usando 100 tókenes Dai. +- Recibe 100 plDai, que representan sus 100 boletos. +- Si uno de sus boletos es elegido ganador, su saldo de plDai incrementará por el monto del fondo de premios. +- Si no gana, sus 100 plDai se pasarán al sorteo de la siguiente semana. +- Puede retirar una cantidad concreta de Dai que sea igual a la cantidad de sus fondos plDai cuando quiera. + +El fondo de premios es generado gracias al interés que se crea al prestar los depósitos de boletos, como en el ejemplo de préstamo de antes. + + + Probar PoolTogether + + + + +### Tókenes de intercambio {#swaps} + +Hay miles de tókenes en Ethereum. Los intercambios descentralizados (DEX) le permiten intercambiar diferentes tókenes siempre que quiera. Nunca abandonará el control de sus activos. Es como usar un intercambio de monedas cuando se visita un país diferente. Pero la versión DeFi nunca se cierra. Los mercados funcionan a todas horas, los 365 días del año; la tecnología se asegura de que siempre habrá alguien que aceptará un intercambio. + +Por ejemplo, si quiere usar la lotería sin pérdidas PoolTogether (explicada arriba) necesitará un token como Dai o USDC. Estos DEX le permiten cambiar sus ETH por tókenes y viceversa cuando haya acabado. + + + Ver intercambios de tókenes + + + + +### Transacciones avanzadas {#trading} + +Hay más opciones avanzadas para los inversores que quieren tener más control. Órdenes limitadas, perpetuas, operaciones de margen y muchas más. Con las transacciones descentralizadas obtiene acceso a la liquidez global; el mercado nunca se cierra, por lo que siempre tendrá el control de sus activos. + +Cuando usa un intercambio centralizado, tiene que depositar sus activos antes de la operación y confiar en ellos. A pesar de que sus activos sí son depositados, están en riesgo, ya que los intercambios descentralizados son objetivos atractivos para los hackers. + + + Ver DApps de transacciones + + + + +### Haga crecer su portafolio {#investing} + +Hay productos de gestión de fondos en Ethereum que tratarán de hacer crecer su portafolio basándose en la estrategia que usted elija. Este proceso es automático, abierto para todo el mundo y no necesita de un gestor humano que se haga cargo de sus ganancias. + +Un buen ejemplo es el [fondo DeFi Pulse Index (DPI)](https://defipulse.com/blog/defi-pulse-index/). Este es un fondo que se reequilibra automáticamente para asegurar que su portafolio siempre incluya [los mejores tókenes DeFi por capitalización de mercado](https://www.coingecko.com/en/defi). Nunca tendrá que gestionar ninguno de los detalles y puede retirar del fondo cuando usted quiera. + + + Ver DApps de inversión + + + + +### Financie sus ideas {#crowdfunding} + +Ethereum es una plataforma ideal para la recaudación de fondos: + +- Los financiadores potenciales pueden venir de cualquier sitio; Ethereum y sus tókenes están abiertos para cualquiera, en cualquier lugar del mundo. +- Es transparente, por lo que los recaudadores pueden demostrar cuánto dinero se ha recaudado. Incluso puede rastrear cómo se están usando los fondos. +- Los recaudadores pueden configurar reembolsos automáticos si, por ejemplo, hay una fecha límite y una cantidad mínima a la que no se ha llegado. + + + Ver DApps de recaudación de fondos + + +#### Financiación cuadrática {#quadratic-funding} + +Ethereum es un software de código abierto, y un montón del trabajo que se ha hecho hasta ahora se ha financiado gracias a la comunidad. Esto ha llevado al incremento de un nuevo modelo de financiamiento: financiación cuadrática. Tiene el potencial de mejorar la forma en que financiaremos todo tipo de bienes públicos en el futuro. + +El financiamiento cuadrático se asegura de que los proyectos que reciben el mayor financiamiento son aquellos con la demanda más única. En otras palabras, son proyectos que pretenden mejorar la vida de la mayoría de las personas. Así es como funciona: + +1. Hay una reserva de fondos donados. +2. Comienza una ronda de financiación pública. +3. Las personas pueden mostrar su interés en un proyecto donando alguna cantidad de dinero. +4. Una vez se termina la ronda, la reserva correspondiente se distribuye a los proyectos. Aquellos con una demanda única obtienen la mayor cantidad de los grupos correspondientes. + +Esto significa que el Proyecto A con sus 100 donaciones de 1 dólar puede terminar con mayor fondeo que el Proyecto B con una donación única de 10.000 dólares (en función del tamaño del grupo correspondiente). + +[Más información sobre la financiación cuadrática](https://wtfisqf.com) + + + +### Seguros {#insurance} + +El aseguramiento descentralizado tiene como objetivo hacer que el aseguramiento sea más barato, se pague más rápido y sea más transparente. Con más automatización, la cobertura es más asequible y los pagos son mucho más rápidos. Los datos usados para decidir sobre su solicitud son completamente transparentes. + +Los productos de Ethereum —al igual que el software— pueden sufrir virus y aprovechamiento. Ahora mismo hay muchos productos de seguros enfocándose en proteger a sus usuarios de pérdidas de fondos. Sin embargo, existen proyectos que empiezan a crear cobertura para todo lo que la vida nos depare. Un buen ejemplo es la cobertura de Etherisc Crop, que pretende [proteger a los pequeños agricultores en Kenia contra las sequías y las inundaciones](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). El aseguramiento descentralizado ofrece una cobertura más barata para los granjeros a los que se les cobra con precios fuera del de los seguros tradicionales. + + + Ver DApps de aseguramiento + + + + +### Agregadores y gestores de portafolios {#aggregators} + +Con tantas cosas en marcha, necesitará una forma de realizar un seguimiento de todas sus inversiones, préstamos y operaciones. Existen una gran cantidad de productos que le permiten coordinar toda su actividad de DeFi (Finanzas Descentralizadas) desde un solo lugar. Esta es la belleza de la arquitectura abierta de DeFi. Los equipos pueden crear interfaces en las que no solo puede ver sus saldos entre productos, sino que también puede usar sus funciones. Le resultará más útil a medida que explora más sobre DeFi. + + + Ver DApps de portafolios + + + + +## ¿Cómo funciona DeFi? {#how-defi-works} + +DeFi usa criptomonedas y contratos inteligentes para ofrecer servicios que no necesitan intermediarios. En el mundo financiero actual, las instituciones financieras actúan como los burócratas de las transacciones. Esto le da a estas instituciones mucho poder porque su dinero fluye a través de ellos. Además, hay miles de millones de personas alrededor del mundo que ni siquiera pueden abrir una cuenta bancaria. + +En DeFi, un contrato inteligente reemplaza a la institución financiera en la transacción. Un contrato inteligente es un tipo de cuenta de Ethereum que puede almacenar, enviar y reembolsar fondos basándose en ciertas condiciones. Nadie puede alterar un contrato inteligente cuando está en funcionamiento; siempre se ejecutará según lo programado. + +Un contrato que está diseñado para distribuir una prestación o una propina puede ser programado para enviar dinero desde la Cuenta A hasta la Cuenta B cada viernes. Y no cesará de realizar ese proceso siempre y cuando la Cuenta A tenga los fondos suficientes. Nadie puede cambiar el contrato y añadir una Cuenta C como destinatario para robar fondos. + +Los contratos son públicos para cualquiera que quiera inspeccionarlos. Así pues, los contratos malos se someterán al escrutinio de la comunidad en muy poco tiempo. + +Esto quiere decir que actualmente es necesario confiar en los miembros más técnicos de la comunidad de Ethereum, que pueden leer el código que hay detrás. Que la comunidad sea de código abierto ayuda a dejar a los desarrolladores bajo control, pero esta necesidad disminuirá con el tiempo a medida que los contratos inteligentes se vuelvan más fáciles de leer y se desarrollen otras formas de demostrar la fiabilidad del código. + +## Ethereum y DeFi {#ethereum-and-defi} + +Ethereum es la base perfecta para DeFi por varias razones: + +- Nadie es dueño de Ethereum ni de los contratos inteligentes que se ejecutan dentro de ella. Esto le da a todos la oportunidad de usar DeFi. Esto también implica que nadie puede cambiar las reglas que sigue. +- Todos los productos en DeFi, en el fondo, hablan el mismo idioma: Ethereum. Por eso, muchos productos funcionan juntos sin problemas. Puede prestar tókenes en una plataforma e intercambiar el token remunerado en un mercado diferente en una aplicación completamente distinta. Es como poder conseguir puntos de fidelidad en su banco. +- Los tókenes y las criptomonedas están construidas usando Ethereum, un libro de contabilidad compartido que lleva el registro de las transacciones y de los comprobantes de propiedad. +- Ethereum permite una total libertad financiera: la mayoría de los productos nunca se harán cargo de sus fondos, dejándole el control a usted. + +DeFi se puede dividir en varias capas: + +1. La cadena de bloques: Ethereum contiene el registro de transacciones y el estado de las cuentas. +2. Los activos: [ETH](/eth/) y otros tókenes (monedas). +3. Los protocolos, o [contratos inteligentes](/glossary/#smart-contract), brindan funcionalidad, como por ejemplo, un servicio que permite el préstamo descentralizado de activos. +4. [Las aplicaciones](/dapps/): los productos que usamos para gestionar y acceder a los protocolos. + +## Desarrollar DeFi {#build-defi} + +DeFi es un proyecto de código abierto. Puede inspeccionar, copiar e innovar todos los protocolos y aplicaciones de DeFi. Debido a su naturaleza de capas (todos comparten la misma cadena de bloques y los mismos activos), los protocolos pueden mezclarse y emparejarse para desbloquear combinaciones de oportunidades únicas. + + + Más información sobre el desarrollo de DApps + + +## Más información {#futher-reading} + +### Datos sobre DeFi {#defi-data} + +- [DeFi Prime](https://defiprime.com/) +- [DeFi Llama](https://defillama.com/) +- [DeFi Rate](https://defirate.com/) + +### Artículos sobre DeFi {#defi-articles} + +- [Guía sobre DeFi para principantes](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4), _Sid Coelho-Prabhu, 6 de enero de 2020_ + +### Vídeos {#videos} + +- [Finematics - Educación DeFi](https://finematics.com/) – _Vídeos sobre DeFi_ +- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) – _DeFi Básico: Todo lo que necesitas saber para empezar en este apabullante espacio._ +- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA)_¿Qué es DeFi?_ + +### Comunidades {#communities} + +- [Servidor Discord de DeFi Llama](https://discord.gg/buPFYXzDDd) +- [Servidor Discord de DeFi Pulse](https://discord.gg/Gx4TCTk) diff --git a/public/content/translations/es/desci/index.md b/public/content/translations/es/desci/index.md new file mode 100644 index 00000000000..dad46dd1bc6 --- /dev/null +++ b/public/content/translations/es/desci/index.md @@ -0,0 +1,139 @@ +--- +title: Ciencia descentralizada (DesCi) +description: Un vistazo a la ciencia descentralizada en Ethereum +lang: es +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Una alternativa global y abierta al sistema científico actual. +summaryPoint2: Tecnología que permite a científicos recaudar fondos, realizar experimentos, compartir información y distribuir ideas, entre otras cosas. +summaryPoint3: Se basa en el movimiento de la ciencia abierta. +--- + +## ¿Qué es la ciencia descentralizada (DeSci)? {#what-is-desci} + +La ciencia descentralizada (DeSci) es un movimiento cuyo objetivo es construir una infraestructura pública para financiar, crear, revisar, acreditar, almacenar y difundir el conocimiento científico de forma justa y equitativa utilizando el conjunto de herramientas Web3. + +DeSci pretende crear un ecosistema en el que se incentive a los científicos a compartir abiertamente sus investigaciones y recibir reconocimiento por su trabajo, al tiempo que se le permita a cualquiera acceder a la investigación y contribuir a ella con facilidad. DeSci se basa en la idea de que el conocimiento científico debe ser accesible para todos y que el proceso de investigación científica debe ser transparente. DeSci está creando un modelo de investigación científica más descentralizado y distribuido, haciéndolo más resistente a la censura y al control por parte de las autoridades centrales. DeSci espera crear un entorno en el que puedan florecer ideas nuevas y no convencionales, descentralizando el acceso a la financiación, a herramientas científicas y canales de comunicación. + +La ciencia descentralizada permite fuentes de financiación más diversas (de [DAO](/dao/), [donaciones cuadráticas](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) a la recaudación colaborativa de fondos, entre otros métodos), datos y métodos de acceso más accesibles, y al proporcionar incentivos para la reproducibilidad. + +### Juan Benet, el movimiento de DeSci + + + +## Cómo DeSci mejora la ciencia {#desci-improves-science} + +Una lista parcial de problemas clave en la ciencia y cómo la ciencia descentralizada puede ayudar a abordar estos problemas + +| **Ciencia descentralizada** | **Ciencia tradicional** | +| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| La distribución de fondos la determina el público utilizando mecanismos como donaciones cuadráticas o DAO. | Grupos pequeños, cerrados y centralizados controlan la distribución de fondos. | +| Colabore con pares de todo el mundo en equipos dinámicos. | Las organizaciones de financiamiento y las instituciones locales limitan sus colaboraciones. | +| Las decisiones sobre financiamiento se toman en línea y con transparencia. Se exploran nuevos mecanismos de financiación. | Las decisiones de financiación se toman con un largo período de tiempo y una transparencia limitada. Existen mecanismos limitados de financiación. | +| Los servicios de laboratorio compartido más fáciles y transparentes utilizando las primitivas Web3. | Los recursos de laboratorio para compartir son a menudo lentos y opacos. | +| Se pueden desarrollar nuevos modelos de publicación que utilicen primitivas Web3 para dar confianza, transparencia y acceso universal. | Se publica a través de vías establecidas, reconocidas con frecuencia como ineficientes, sesgadas y manipulables. | +| Puede ganar tókenes y reputación por la tarea de revisión de pares. | La tarea de revisión de pares no se remunera, lo que beneficia solamente a los editores con ánimo de lucro. | +| La propiedad intelectual (IP) se genera y se distribuye de acuerdo a términos transparentes. | Solo su institución local es propietaria de la IP que usted genera. El acceso a la propiedad intelectual no es transparente. | +| Al poder tener todos los pasos en la cadena, se comparte todos los datos de la investigación, incluyendo los de esfuerzos fallidos. | Existe sesgo en la publicación porque que es más probable que los investigadores solo compartan experimentos que tuvieron resultados exitosos. | + +## Ethereum y DeSci {#ethereum-and-desci} + +Un sistema científico descentralizado requerirá una seguridad robusta, costos mínimos monetarios y de transacción y un rico ecosistema para el desarrollo de aplicaciones. Ethereum proporciona todo lo necesario para construir una pila (stack) de ciencia descentralizada. + +## Casos de uso de DeSci {#use-cases} + +DeSci está construyendo el conjunto de herramientas científicas para la transformación de la academia de Web2 hacia el mundo digital. A continuación se muestran algunos ejemplos de casos de uso que Web3 puede ofrecer a la comunidad científica. + +### Publicación {#publishing} + +La publicación científica es problemática porque se gestiona mediante la publicación de editoriales que emplean la labor sin ánimo de lucro de científicos, correctores y editores para generar las publicaciones por las que después cobran honorarios de publicación exorbitantes. El público, que generalmente ha pagado indirectamente por el trabajo y los costes de publicación a través de sus impuestos, a menudo no puede acceder a ese mismo trabajo sin pagar de nuevo al editor. Las tarifas totales por publicar documentos científicos individuales suelen ser en cifras de cinco dígitos (USD $), limitando todo el concepto de conocimiento científico como un [bien público](https://www.econlib.org/library/Enc/PublicGoods.html) y generando enormes ganancias para un pequeño grupo de editores. + +Existen plataformas gratuitas y de acceso abierto en forma de servidores de pre-impresión, [como ArXiv](https://arxiv.org/). Sin embargo, estas plataformas carecen de control de calidad, [mecanismos antiSybil](https://csrc.nist.gov/glossary/term/sybil_attack)y generalmente no rastrean métricas relacionadas con el artículo, lo que significa que generalmente sólo se utilizan para dar publicidad del trabajo antes de entregarlo a un editor tradicional. SciHub también hace que los documentos publicados sean de acceso gratuito, pero no legalmente, y sólo después de que los editores ya hayan realizado su pago y protegido el trabajo en estricta legislación sobre derechos de autor. Esto deja una brecha crítica para los documentos científicos y los datos accesibles con un mecanismo de legitimidad integrado y un modelo de incentivos. Las herramientas para construir un sistema de este tipo existen en Web3. + +### Reproducibilidad y replicabilidad {#reproducibility-and-replicability} + +La reproducibilidad y la replicabilidad son los fundamentos de un descubrimiento científico de calidad. + +- Un mismo equipo puede alcanzar los resultados reproducibles varias veces seguidas utilizando la misma metodología. +- Un grupo diferente puede alcanzar los resultados replicables usando la misma configuración experimental. + +Las nuevas herramientas nativas de Web3 pueden asegurar que la reproducibilidad y la replicabilidad sean la base del descubrimiento. Podemos aportar ciencia de calidad al tejido tecnológico de la academia. Web3 ofrece la posibilidad de crear certificaciones para cada componente de análisis: los datos en bruto, el motor de cálculo y el resultado de la aplicación. La belleza de los sistemas de consenso es que cuando se crea una red de confianza para mantener estos componentes, cada participante de la red puede ser responsable de reproducir el cálculo y validar cada resultado. + +### Financiación {#funding} + +El modelo estándar actual para la financiación de la ciencia es que los individuos o grupos de científicos presenten solicitudes por escrito a una agencia de financiación. Un pequeño panel de personas de confianza anota las solicitudes y luego entrevista a los candidatos antes de otorgar fondos a una pequeña parte de los solicitantes. Además de crear atascos que conllevan a veces años de tiempo de espera entre la solicitud y la recepción de una subvención, se sabe que este modelo es muy vulnerable a los sesgos, los intereses propios y la política del panel de revisión. + +Los estudios han demostrado que los paneles de revisión de subvenciones hacen un mal trabajo al seleccionar propuestas de alta calidad, ya que las mismas propuestas entregadas a diferentes paneles tienen resultados muy diferentes. A medida que la financiación se ha vuelto más escasa, se ha concentrado en un grupo más pequeño de investigadores más experimentados con proyectos intelectualmente más conservadores. El efecto ha creado un panorama de financiación altamente competitivo, enquistando incentivos perversos y ahogando la innovación. + +Web3 tiene el potencial de interrumpir este modelo de financiación roto al experimentar con diferentes modelos de incentivos desarrollados por DAO y Web3 en general. [Financiación retroactiva de bienes públicos](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), [financiación cuadrática](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), [Gobernanza de DAO](https://www.antler.co/blog/daos-and-web3-governance) y [estructuras de incentivos tokenizados](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) son algunas de las herramientas Web3 que podrían revolucionar la financiación de la ciencia. + +### Tenencia y desarrollo de la propiedad intelectual {#ip-ownership} + +La propiedad intelectual (PI) es un gran problema en la ciencia tradicional: desde estar atrapada en universidades o biotecnologías sin uso, hasta ser notoriamente difícil de valorar. Sin embargo, la propiedad de activos digitales (como los datos científicos o artículos) es algo que Web3 hace excepcionalmente bien usando [tókenes no fungibles (NFT)](/nft/). + +De la misma manera que los NFT pueden transferir ingresos de vuelta al creador original, puede establecer cadenas transparentes de atribución de valor para recompensar a investigadores, organismos gubernamentales (como DAO), o incluso a los sujetos cuyos datos se recolectan. + +[NFT-PI](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) pueden también funcionar como llave de un repositorio descentralizado de datos de las investigaciones experimentales en curso, conectarse a NFT y a financiación [DeFi](/defi/) (desde fraccionalización hasta reservas de préstamos y tasación de valor). También permite a entidades nativas en cadena como las DAO similares a [VitaDAO](https://www.vitadao.com/) realizar investigaciones directamente en cadena. La llegada de tókenes no trasnferibles ["soulbound" tokens](https://vitalik.ca/general/2022/01/26/soulbound.html) también puede desempeñar un rol importante en DeSci, permitiendo a las personas demostrar su experiencia y credenciales vinculadas a su dirección de Ethereum. + +### Almacenamiento de datos, acceso y arquitectura {#data-storage} + +Los datos científicos pueden ser mucho más accesibles usando patrones Web3, y el almacenamiento distribuido permite que la investigación sobreviva a eventos cataclísmicos. + +El punto de partida debe ser un sistema accesible por cualquier identidad descentralizada que posea las credenciales verificables adecuadas. Esto permite que partes de confianza repliquen los datos sensibles de forma segura, sumando mayor resistencia a la redundancia y a la censura, una reproducción de resultados, e incluso la posibilidad de que múltiples partes colaboren y añadan nuevos datos al conjunto de datos. Métodos de computación confidenciales como [computo-a-datos](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol) proporcionan mecanismos alternativos de acceso para replicación de datos sin procesar, creando "entornos de investigación de confianza" para los datos más sensibles. [La NHS](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) considera a los "entornos de investigación de confianza" como una solución de cara al futuro para la privacidad de datos y la colaboración mediante la creación de un ecosistema donde los investigadores pueden trabajar de forma segura con datos in situ utilizando entornos estandarizados para compartir código y prácticas. + +Las soluciones de datos de Web3 flexibles soportan los escenarios anteriores y proporcionan la base para una ciencia verdaderamente abierta, donde los investigadores pueden crear bienes públicos sin permisos de acceso o tasas. Las soluciones de datos públicos Web3 como IPFS, Arweave y Filecoin están optimizadas para la descentralización. dClimate, por ejemplo, proporciona acceso universal a los datos climáticos y meteorológicos, incluso de estaciones meteorológicas y modelos climáticos predecibles. + +## Participar {#get-involved} + +Explore proyectos y únase a la comunidad DeSci. + +- [DeSci.Global: calendario global de eventos y encuentros](https://desci.global) +- [Cadena de bloques para Science Telegram](https://t.me/BlockchainForScience) +- [Molecule: financie y reciba fondos para sus proyectos de investigación](https://discover.molecule.to/) +- [VitaDAO: recibe financiación a través de acuerdos de investigación patrocinados para la investigación de la longevidad](https://www.vitadao.com/) +- [ResearchHub: publique un resultado científico y participe en conversaciones con pares](https://www.researchhub.com/) +- [LabDAO: pliegue una proteína simulada por ordenador](https://alphafodl.vercel.app/) +- [dClimate API: consulta datos climáticos recopilados por una comunidad descentralizada](https://api.dclimate.net/) +- [DeSci Foundation: creador de herramientas de publicación DeSci](https://descifoundation.org/) +- [DeSci.World: ventanilla única para que los usuarios vean e interactúen con la ciencia descentralizada](https://desci.world) +- [Protocolo Fleming: economía de datos de código abierto que fomenta el descubrimiento biomédico colaborativo](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [OceanDAO: financiación regida por una DAO para la ciencia relacionada con datos](https://oceanprotocol.com/dao) +- [Opscientia: flujos de trabajo científicos descentralizados y abiertos](https://opsci.io/research/) +- [LabDAO: pliegue una proteína simulada por ordenador](https://alphafodl.vercel.app/) +- [Bio.xyz: consiga financiación para su DAO biotecnológico o su proyecto científico descentralizado](https://www.molecule.to/) +- [ResearchHub: publique un resultado científico y participe en conversaciones con pares](https://www.researchhub.com/) +- [VitaDAO: recibe financiación a través de acuerdos de investigación patrocinados para la investigación de la longevidad](https://www.vitadao.com/) +- [Protocolo Fleming: economía de datos de código abierto que fomenta el descubrimiento biomédico colaborativo](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [Laboratorio de inferencia activa](https://www.activeinference.org/) +- [CureDAO: Plataforma de salud de precisión propiedad de la comunidad](https://docs.curedao.org/) +- [IdeaMarkets: permite la credibilidad científica descentralizada](https://ideamarket.io/) +- [DeSci Labs](https://www.desci.com/) + +Estamos abiertos a recibir sugerencias sobre nuevos proyectos por incluir, por favor, ¡consulte nuestra [política de inclusión](/contributing/adding-desci-projects/) para empezar! + +## Para mayor información {#further-reading} + +- [DeSci Wiki por Jocelynn Pearl y Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) +- [Una guía para descentralizar la biotecnología de Jocelynn Pearl para el futuro de 16z](https://future.a16z.com/a-guide-to-decentralized-biotech/) +- [La oportunidad para la DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) +- [Guía de DeSci](https://future.com/what-is-decentralized-science-aka-desci/) +- [Recursos de ciencia descentralizados](https://www.vincentweisser.com/decentralized-science) +- [Los IP-NFT de la molécula Biopharma: una descripción técnica](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) +- [Construyendo sistemas sin confianza de la ciencia por Jon Starr](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) +- [La emergencia de los DAO de la biotecnología](https://molecule.to/blog/the-emergence-of-biotech-daos) +- [Paul Kohlhaas - DeSci: El futuro de la ciencia descentralizada (pódcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) +- [Una ontología de la inferencia activa para la ciencia descentralizada: de la obtención del sentido en contexto a las comunidades epistémicas](https://zenodo.org/record/6320575) +- [DeSci: El futuro de la investigación por Samuel Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) +- [La fundación científica (epílogo: DeSci y las nuevas primitivas cripto) por Nadia](https://nadia.xyz/science-funding) +- [La descentralización está provocando una disrupción en el desarrollo de fármacos](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) + +### Videos {#videos} + +- [¿Qué es la ciencia descentralizada?](https://www.youtube.com/watch?v=-DeMklVWNdA) +- [Conversación entre Vitalik Buterin y el científico Aubrey de Grey sobre la intersección de la investigación de la longevidad y las criptomonedas](https://www.youtube.com/watch?v=x9TSJK1widA) +- [La publicación científica está interrumpida. ¿Puede Web3 darle continuidad?](https://www.youtube.com/watch?v=WkvzYgCvWj8) +- [Juan Benet, DeSci, Laboratorios Independientes, & Ciencias de datos de gran escala](https://www.youtube.com/watch?v=zkXM9H90g_E) +- [Brunemeier: Cómo la ciencia descentralizada puede transformar la investigación biomédica y el capital de riesgo](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/es/developers/docs/accounts/accounts.svg b/public/content/translations/es/developers/docs/accounts/accounts.svg similarity index 100% rename from src/content/translations/es/developers/docs/accounts/accounts.svg rename to public/content/translations/es/developers/docs/accounts/accounts.svg diff --git a/src/content/translations/es/developers/docs/accounts/index.md b/public/content/translations/es/developers/docs/accounts/index.md similarity index 100% rename from src/content/translations/es/developers/docs/accounts/index.md rename to public/content/translations/es/developers/docs/accounts/index.md diff --git a/src/content/translations/es/developers/docs/apis/backend/index.md b/public/content/translations/es/developers/docs/apis/backend/index.md similarity index 100% rename from src/content/translations/es/developers/docs/apis/backend/index.md rename to public/content/translations/es/developers/docs/apis/backend/index.md diff --git a/src/content/translations/es/developers/docs/apis/javascript/index.md b/public/content/translations/es/developers/docs/apis/javascript/index.md similarity index 100% rename from src/content/translations/es/developers/docs/apis/javascript/index.md rename to public/content/translations/es/developers/docs/apis/javascript/index.md diff --git a/src/content/translations/es/developers/docs/apis/json-rpc/index.md b/public/content/translations/es/developers/docs/apis/json-rpc/index.md similarity index 100% rename from src/content/translations/es/developers/docs/apis/json-rpc/index.md rename to public/content/translations/es/developers/docs/apis/json-rpc/index.md diff --git a/src/content/translations/es/developers/docs/blocks/index.md b/public/content/translations/es/developers/docs/blocks/index.md similarity index 100% rename from src/content/translations/es/developers/docs/blocks/index.md rename to public/content/translations/es/developers/docs/blocks/index.md diff --git a/src/content/translations/es/developers/docs/blocks/tx-block.svg b/public/content/translations/es/developers/docs/blocks/tx-block.svg similarity index 100% rename from src/content/translations/es/developers/docs/blocks/tx-block.svg rename to public/content/translations/es/developers/docs/blocks/tx-block.svg diff --git a/src/content/translations/es/developers/docs/bridges/index.md b/public/content/translations/es/developers/docs/bridges/index.md similarity index 100% rename from src/content/translations/es/developers/docs/bridges/index.md rename to public/content/translations/es/developers/docs/bridges/index.md diff --git a/src/content/translations/es/developers/docs/consensus-mechanisms/index.md b/public/content/translations/es/developers/docs/consensus-mechanisms/index.md similarity index 100% rename from src/content/translations/es/developers/docs/consensus-mechanisms/index.md rename to public/content/translations/es/developers/docs/consensus-mechanisms/index.md diff --git a/src/content/translations/es/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md b/public/content/translations/es/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md similarity index 100% rename from src/content/translations/es/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md rename to public/content/translations/es/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md diff --git a/src/content/translations/es/developers/docs/consensus-mechanisms/pos/attestations/index.md b/public/content/translations/es/developers/docs/consensus-mechanisms/pos/attestations/index.md similarity index 100% rename from src/content/translations/es/developers/docs/consensus-mechanisms/pos/attestations/index.md rename to public/content/translations/es/developers/docs/consensus-mechanisms/pos/attestations/index.md diff --git a/src/content/translations/es/developers/docs/consensus-mechanisms/pos/block-proposal/index.md b/public/content/translations/es/developers/docs/consensus-mechanisms/pos/block-proposal/index.md similarity index 100% rename from src/content/translations/es/developers/docs/consensus-mechanisms/pos/block-proposal/index.md rename to public/content/translations/es/developers/docs/consensus-mechanisms/pos/block-proposal/index.md diff --git a/src/content/translations/es/developers/docs/consensus-mechanisms/pos/faqs/index.md b/public/content/translations/es/developers/docs/consensus-mechanisms/pos/faqs/index.md similarity index 100% rename from src/content/translations/es/developers/docs/consensus-mechanisms/pos/faqs/index.md rename to public/content/translations/es/developers/docs/consensus-mechanisms/pos/faqs/index.md diff --git a/src/content/translations/es/developers/docs/consensus-mechanisms/pos/gasper/index.md b/public/content/translations/es/developers/docs/consensus-mechanisms/pos/gasper/index.md similarity index 100% rename from src/content/translations/es/developers/docs/consensus-mechanisms/pos/gasper/index.md rename to public/content/translations/es/developers/docs/consensus-mechanisms/pos/gasper/index.md diff --git a/src/content/translations/es/developers/docs/consensus-mechanisms/pos/index.md b/public/content/translations/es/developers/docs/consensus-mechanisms/pos/index.md similarity index 100% rename from src/content/translations/es/developers/docs/consensus-mechanisms/pos/index.md rename to public/content/translations/es/developers/docs/consensus-mechanisms/pos/index.md diff --git a/src/content/translations/es/developers/docs/consensus-mechanisms/pos/keys/index.md b/public/content/translations/es/developers/docs/consensus-mechanisms/pos/keys/index.md similarity index 100% rename from src/content/translations/es/developers/docs/consensus-mechanisms/pos/keys/index.md rename to public/content/translations/es/developers/docs/consensus-mechanisms/pos/keys/index.md diff --git a/src/content/translations/es/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md b/public/content/translations/es/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md similarity index 100% rename from src/content/translations/es/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md rename to public/content/translations/es/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md diff --git a/src/content/translations/es/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md b/public/content/translations/es/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md similarity index 100% rename from src/content/translations/es/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md rename to public/content/translations/es/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md diff --git a/src/content/translations/es/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md b/public/content/translations/es/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md similarity index 100% rename from src/content/translations/es/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md rename to public/content/translations/es/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md diff --git a/src/content/translations/es/developers/docs/consensus-mechanisms/pow/index.md b/public/content/translations/es/developers/docs/consensus-mechanisms/pow/index.md similarity index 100% rename from src/content/translations/es/developers/docs/consensus-mechanisms/pow/index.md rename to public/content/translations/es/developers/docs/consensus-mechanisms/pow/index.md diff --git a/src/content/translations/es/developers/docs/consensus-mechanisms/pow/mining/index.md b/public/content/translations/es/developers/docs/consensus-mechanisms/pow/mining/index.md similarity index 100% rename from src/content/translations/es/developers/docs/consensus-mechanisms/pow/mining/index.md rename to public/content/translations/es/developers/docs/consensus-mechanisms/pow/mining/index.md diff --git a/src/content/translations/es/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md b/public/content/translations/es/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md similarity index 100% rename from src/content/translations/es/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md rename to public/content/translations/es/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md diff --git a/src/content/translations/es/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md b/public/content/translations/es/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md similarity index 100% rename from src/content/translations/es/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md rename to public/content/translations/es/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md diff --git a/src/content/translations/es/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md b/public/content/translations/es/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md similarity index 100% rename from src/content/translations/es/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md rename to public/content/translations/es/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md diff --git a/src/content/translations/es/developers/docs/dapps/index.md b/public/content/translations/es/developers/docs/dapps/index.md similarity index 100% rename from src/content/translations/es/developers/docs/dapps/index.md rename to public/content/translations/es/developers/docs/dapps/index.md diff --git a/src/content/translations/es/developers/docs/data-and-analytics/block-explorers/index.md b/public/content/translations/es/developers/docs/data-and-analytics/block-explorers/index.md similarity index 100% rename from src/content/translations/es/developers/docs/data-and-analytics/block-explorers/index.md rename to public/content/translations/es/developers/docs/data-and-analytics/block-explorers/index.md diff --git a/src/content/translations/es/developers/docs/data-and-analytics/index.md b/public/content/translations/es/developers/docs/data-and-analytics/index.md similarity index 100% rename from src/content/translations/es/developers/docs/data-and-analytics/index.md rename to public/content/translations/es/developers/docs/data-and-analytics/index.md diff --git a/src/content/translations/es/developers/docs/data-availability/index.md b/public/content/translations/es/developers/docs/data-availability/index.md similarity index 100% rename from src/content/translations/es/developers/docs/data-availability/index.md rename to public/content/translations/es/developers/docs/data-availability/index.md diff --git a/src/content/translations/es/developers/docs/data-structures-and-encoding/index.md b/public/content/translations/es/developers/docs/data-structures-and-encoding/index.md similarity index 100% rename from src/content/translations/es/developers/docs/data-structures-and-encoding/index.md rename to public/content/translations/es/developers/docs/data-structures-and-encoding/index.md diff --git a/src/content/translations/es/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md b/public/content/translations/es/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md similarity index 100% rename from src/content/translations/es/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md rename to public/content/translations/es/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md diff --git a/src/content/translations/es/developers/docs/data-structures-and-encoding/rlp/index.md b/public/content/translations/es/developers/docs/data-structures-and-encoding/rlp/index.md similarity index 100% rename from src/content/translations/es/developers/docs/data-structures-and-encoding/rlp/index.md rename to public/content/translations/es/developers/docs/data-structures-and-encoding/rlp/index.md diff --git a/src/content/translations/es/developers/docs/data-structures-and-encoding/ssz/index.md b/public/content/translations/es/developers/docs/data-structures-and-encoding/ssz/index.md similarity index 100% rename from src/content/translations/es/developers/docs/data-structures-and-encoding/ssz/index.md rename to public/content/translations/es/developers/docs/data-structures-and-encoding/ssz/index.md diff --git a/src/content/translations/es/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md b/public/content/translations/es/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md similarity index 100% rename from src/content/translations/es/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md rename to public/content/translations/es/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md diff --git a/src/content/translations/es/developers/docs/design-and-ux/index.md b/public/content/translations/es/developers/docs/design-and-ux/index.md similarity index 100% rename from src/content/translations/es/developers/docs/design-and-ux/index.md rename to public/content/translations/es/developers/docs/design-and-ux/index.md diff --git a/src/content/translations/es/developers/docs/development-networks/index.md b/public/content/translations/es/developers/docs/development-networks/index.md similarity index 100% rename from src/content/translations/es/developers/docs/development-networks/index.md rename to public/content/translations/es/developers/docs/development-networks/index.md diff --git a/src/content/translations/es/developers/docs/ethereum-stack/index.md b/public/content/translations/es/developers/docs/ethereum-stack/index.md similarity index 100% rename from src/content/translations/es/developers/docs/ethereum-stack/index.md rename to public/content/translations/es/developers/docs/ethereum-stack/index.md diff --git a/src/content/translations/es/developers/docs/evm/evm.svg b/public/content/translations/es/developers/docs/evm/evm.svg similarity index 100% rename from src/content/translations/es/developers/docs/evm/evm.svg rename to public/content/translations/es/developers/docs/evm/evm.svg diff --git a/src/content/translations/es/developers/docs/evm/gas.svg b/public/content/translations/es/developers/docs/evm/gas.svg similarity index 100% rename from src/content/translations/es/developers/docs/evm/gas.svg rename to public/content/translations/es/developers/docs/evm/gas.svg diff --git a/src/content/translations/es/developers/docs/evm/index.md b/public/content/translations/es/developers/docs/evm/index.md similarity index 100% rename from src/content/translations/es/developers/docs/evm/index.md rename to public/content/translations/es/developers/docs/evm/index.md diff --git a/src/content/translations/es/developers/docs/evm/opcodes/index.md b/public/content/translations/es/developers/docs/evm/opcodes/index.md similarity index 100% rename from src/content/translations/es/developers/docs/evm/opcodes/index.md rename to public/content/translations/es/developers/docs/evm/opcodes/index.md diff --git a/src/content/translations/es/developers/docs/frameworks/index.md b/public/content/translations/es/developers/docs/frameworks/index.md similarity index 100% rename from src/content/translations/es/developers/docs/frameworks/index.md rename to public/content/translations/es/developers/docs/frameworks/index.md diff --git a/src/content/translations/es/developers/docs/gas/index.md b/public/content/translations/es/developers/docs/gas/index.md similarity index 100% rename from src/content/translations/es/developers/docs/gas/index.md rename to public/content/translations/es/developers/docs/gas/index.md diff --git a/src/content/translations/es/developers/docs/ides/index.md b/public/content/translations/es/developers/docs/ides/index.md similarity index 100% rename from src/content/translations/es/developers/docs/ides/index.md rename to public/content/translations/es/developers/docs/ides/index.md diff --git a/src/content/translations/es/developers/docs/index.md b/public/content/translations/es/developers/docs/index.md similarity index 100% rename from src/content/translations/es/developers/docs/index.md rename to public/content/translations/es/developers/docs/index.md diff --git a/src/content/translations/es/developers/docs/intro-to-ether/index.md b/public/content/translations/es/developers/docs/intro-to-ether/index.md similarity index 100% rename from src/content/translations/es/developers/docs/intro-to-ether/index.md rename to public/content/translations/es/developers/docs/intro-to-ether/index.md diff --git a/src/content/translations/es/developers/docs/intro-to-ethereum/index.md b/public/content/translations/es/developers/docs/intro-to-ethereum/index.md similarity index 100% rename from src/content/translations/es/developers/docs/intro-to-ethereum/index.md rename to public/content/translations/es/developers/docs/intro-to-ethereum/index.md diff --git a/src/content/translations/es/developers/docs/layer-2-scaling/index.md b/public/content/translations/es/developers/docs/layer-2-scaling/index.md similarity index 100% rename from src/content/translations/es/developers/docs/layer-2-scaling/index.md rename to public/content/translations/es/developers/docs/layer-2-scaling/index.md diff --git a/public/content/translations/es/developers/docs/mev/index.md b/public/content/translations/es/developers/docs/mev/index.md new file mode 100644 index 00000000000..f82a5eca686 --- /dev/null +++ b/public/content/translations/es/developers/docs/mev/index.md @@ -0,0 +1,221 @@ +--- +title: Valor máximo extraíble (MEV) +description: Introducción al valor máximo extraíble (MEV) +lang: es +--- + +El valor máximo extraíble (MEV) se refiere al valor máximo que se puede extraer de la producción de bloques por encima de la recompensa de bloques y las tarifas de gas estándares incluyendo, excluyendo y cambiando el orden de las transacciones en un bloque. + +## Valor extraíble del minero {#miner-extractable-value} + +El valor máximo extraíble se aplicó por primera vez en el contexto de [prueba de trabajo](/developers/docs/consensus-mechanisms/pow/), e inicialmente se refería a él como "valor extraíble de minero". Esto es porque en la prueba de trabajo, los mineros controlan la inclusión, la exclusión y el orden de las transacciones. No obstante, desde la transición a la prueba de participación a través de [La Fusión](/roadmap/merge), los validadores han sido responsables de estas funciones, y la minería ya no forma parte del protocolo Ethereum. Como los métodos de extracción de valor todavía existen, se utiliza en su lugar el término "valor máximo extraíble" actualmente. + +## Requisitos previos {#prerequisites} + +Asegúrese de estar familiarizado con las [transacciones](/developers/docs/transactions/), los [bloques](/developers/docs/blocks/), la [prueba de participación](/developers/docs/consensus-mechanisms/pos) y el [gas](/developers/docs/gas/). Familiarizarse con las [dApps](/dapps/) y [DeFi](/defi/) también le será muy útil. + +## Extracción de MEV {#mev-extraction} + +En teoría, el MEV se acumula por completo en los validadores porque son la única parte que puede garantizar la ejecución de una oportunidad rentable de MEV. De cualquier manera, en la práctica, una gran porción del MEV es extraído por participantes de la red independientes conocidos como "buscadores". Los buscadores ejecutan algoritmos complejos en datos de la cadena de bloques para detectar oportunidades rentables de MEV y tienen bots que en automático envían esas transacciones rentables a la red. + +Los validadores obtienen una parte de la cantidad total de MEV de todos modos porque los buscadores están dispuestos a pagar altas tarifas de gas (que van al validador) a cambio de una mayor probabilidad de incluir sus transacciones rentables en un bloque. Asumiendo que los buscadores son económicamente racionales, la tarifa de gas que estarán dispuestos a pagar será de un monto hasta un 100% del MEV del buscador ( porque si la tarifa de gas fuera más alta, el buscador estaría perdiendo dinero). + +Con eso, para algunas oportunidades de MEV altamente competitivas, como [arbitraje de DEX](#mev-examples-dex-arbitrage), los buscadores pueden tener que pagar el 90% o incluso más de sus ingresos totales de MEV en tarifas de gas al validador porque muchas personas quieren ejecutar la misma transacción de arbitraje rentable. Esto es porque la única manera de garantizar que esas transacciones de arbitraje se ejecuten es que envíen la transacción con el precio de gas más alto. + +### Gas golfing {#mev-extraction-gas-golfing} + +Está dinámica a hecho que ser bueno en el "gas golfing" —programar transacciones de manera que usen la menor cantidad de gas— sea una ventaja competitiva, pues permite a los buscadores fijar un precio de gas más alto, mientras mantienen sus tarifas de gas constantes (tarifas de gas = precio del gas \* gas usado). + +Algunas de las técnicas más conocidas del gas golfing incluyen usar direcciones que comiencen con una larga cadena de ceros (p. ej., [0x0000000000C521824EaFf97Eac7B73B084ef9306](https://etherscan.io/address/0x0000000000c521824eaff97eac7b73b084ef9306)), ya que usan menos espacio (y por lo tanto menos gas) de almacenamiento; y dejar saldos de tokens [ERC-20](/developers/docs/standards/tokens/erc-20/) pequeños en los contratos, ya que cuesta más gas inicializar un espacio de almacenamiento (si el saldo es 0) que actualizar un espacio de almacenamiento. Encontrar más técnicas para reducir el uso de gas es un área de investigación muy activa entre los investigadores. + +### Frontrunners generalizados {#mev-extraction-generalized-frontrunners} + +En vez de programar algoritmos complejos capaces de detectar oportunidades de MEV rentables, algunos buscadores ejecutan frontrunnes generalizados. Los frontrunnes generalizados son bots que observan la zona de espera, o mempool, para detectar transacciones rentables. El frontrunner copia el código de transacción potencialmente rentable, reemplaza las direcciones con la dirección del frontrunner y ejecuta la transacción localmente para verificar que la transacción modificada resulte en una ganancia para la dirección del frontrunner. Si la transacción es efectivamente rentable, el frontrunner entregará la transacción modificada con la dirección reemplazada y un precio de gas más alto eligiendo la transacción original ("frontrunning") y obteniendo el MEV del buscador original. + +### Flashbots {#mev-extraction-flashbots} + +Flashbots es un proyecto independiente que amplía los clientes de ejecución con un servicio que permite a los buscadores enviar transacciones de MEV a los validadores sin revelarlas a la zona de espera o mempool pública. Esto evita el frontrunning por parte de los frontrunners generalizados. + +## Ejemplos de MEV {#mev-examples} + +El MEV surge en la cadena de bloques de varias formas. + +### Arbitraje en DEX {#mev-examples-dex-arbitrage} + +El arbitraje en [exchanges descentralizados](/glossary/#dex) (DEX) es la oportunidad más simple y conocida de MEV. Como resultado, también es la más competitiva. + +Funciona así: si dos DEX ofrecen el mismo token a diferentes precios, alguien puede comprar el token en el DEX más barato y venderlo en el DEX de mayor precio en una sola transacción atómica. Gracias a las mecánicas de la cadena de bloques, esto es un verdadero arbitraje sin riesgos. + +[Este es un ejemplo](https://etherscan.io/tx/0x5e1657ef0e9be9bc72efefe59a2528d0d730d478cfc9e6cdd09af9f997bb3ef4) de una transacción de arbitraje rentable donde un buscador convirtió 1.000 ETH en 1,045 ETH aprovechando diferentes precios del par ETH/DAI en Uniswap vs. Sushiswap. + +### Liquidaciones {#mev-examples-liquidations} + +Las liquidaciones del protocolo de préstamos presentan otra muy conocida oportunidad de MEV. + +Los protocolos de préstamo como Maker y Aave requieren que los usuarios depositen alguna garantía o colateral (por ejemplo, ETH). Este colateral depositado se utiliza para luego hacer un préstamo a otros usuarios. + +Los usuarios pueden pedir prestados activos y tokens de otros dependiendo de lo que necesiten (por ejemplo, puede pedir prestado MKR si desea votar en una propuesta de gobernanza de MakerDAO) hasta un cierto porcentaje de la garantía depositada. Por ejemplo, si la cantidad del préstamo es de un máximo del 30%, un usuario que deposite 100 DAI en el protocolo puede pedir prestado por un valor de hasta 30 DAI de otro activo. El protocolo determina el porcentaje exacto de poder de endeudamiento, o préstamo. + +Como el valor del colateral de quien pide el préstamo fluctúa, también lo hace su poder de préstamo. Si, debido a las fluctuaciones del mercado, el valor de los activos prestados excede, digamos, el 30% del valor de su colateral (nuevamente, el porcentaje exacto está determinado por el protocolo), el protocolo típicamente permite a cualquiera liquidar el colateral, pagando al instante a los prestamistas (esto es similar al funcionamiento de las [llamadas de margen](https://www.investopedia.com/terms/m/margincall.asp) en las finanzas tradicionales). Si se liquida el colateral, el prestatario generalmente tiene que pagar una tasa de liquidación importante, parte de la cual va al liquidador, que es donde entra en juego la oportunidad de MEV. + +Los buscadores compiten para analizar datos de la cadena de bloques lo más rápido posible para determinar qué prestatarios pueden ser líquidados y ser los primeros en enviar una transacción de liquidación y hacerse de la tasa de liquidación. + +### Intercambio sándwich {#mev-examples-sandwich-trading} + +El intercambio sándwich es otro método común de extracción de MEV. + +Para esta operación, un buscador intentará localizar operaciones grandes en DEX en la zona de espera. Por ejemplo, supongamos que alguien quiere comprar 10.000 UNI con DAI en Uniswap. Una operación de esta magnitud tendrá un efecto significativo en el par UNI/DAI, lo que podría aumentar significativamente el precio de UNI en relación con DAI. + +Un buscador puede calcular el efecto de precio aproximado de esta gran operación en el par UNI/DAI y ejecutar una orden de compra óptima inmediatamente _antes_ de la gran transacción, comprando UNI barato y luego colocando una orden de venta inmediatamente _después_ de la gran transacción, vendiendo por el precio más alto causado por la orden grande. + +Sin embargo, el sandwiching, es más arriesgado, ya que no es atómico (a diferencia del arbitraje en DEX, como se describió anteriormente) y es propenso a un [ataque de salmonela](https://github.com/Defi-Cartel/salmonella). + +### MEV de NFT {#mev-examples-nfts} + +El MEV en el espacio de NFT es un fenómeno emergente y no es necesariamente rentable. + +Sin embargo, dado que las transacciones de NFT ocurren en la misma cadena de bloques compartida por todas las demás transacciones de Ethereum, los buscadores pueden utilizar técnicas similares a las utilizadas en oportunidades de MEV tradicionales en el mercado de NFT también. + +Por ejemplo, si hay un drop de NFT popular y un buscador quiere un cierto NFT o conjunto de NFT, puede programar una transacción de tal forma que sea la primera persona en la fila para comprar el NFT o puede comprar todo el conjunto de NFT en una sola transacción. O si un NFT es [erróneamente listado a un bajo precio](https://www.theblockcrypto.com/post/113546/mistake-sees-69000-cryptopunk-sold-for-less-than-a-cent), un buscador puede adelantarse a otros compradores con frontrunning y llevárselo barato. + +Un ejemplo prominente de MEV de NFT ocurrió cuando un buscador gastó USD 7 millones para [comprar](https://etherscan.io/address/0x650dCdEB6ecF05aE3CAF30A70966E2F395d5E9E5) todos los Cryptopunks al precio mínimo. Un investigador de la cadena de bloques [explicó en Twitter](https://twitter.com/IvanBogatyy/status/1422232184493121538) cómo el comprador trabajó con un proveedor de MEV para mantener su compra en secreto. + +### La cola larga {#mev-examples-long-tail} + +El arbitraje en DEX, las liquidaciones y las operaciones sándwich son oportunidades muy conocidas de MEV y es poco probable que sean rentables para los nuevos buscadores. Sin embargo, existe una larga cola de oportunidades de MEV menos conocidas (el MEV de NFT es posiblemente una de esas oportunidades). + +Los buscadores que acaben de iniciarse pueden encontrar más éxito buscando MEV en esta cola más larga. La [tabla de trabajo de MEV](https://github.com/flashbots/mev-job-board) de Flashbot muestra algunas oportunidades emergentes. + +## Efectos del MEV {#effects-of-mev} + +No todo sobre el MEV es malo: hay consecuencias tanto positivas como negativas para el MEV en Ethereum. + +### Lo positivo {#effects-of-mev-the-good} + +Muchos proyectos DeFi dependen de actores económicamente racionales para asegurar la utilidad y la estabilidad de sus protocolos. Por ejemplo, el arbitraje en DEX asegura que los usuarios obtengan los mejores y más correctos precios para sus tokens, y los protocolos de préstamo dependen de liquidaciones rápidas cuando los prestatarios caen por debajo de los ratios de colateralización para garantizar que los prestamistas reciban el pago. + +Sin que los buscadores racionales busquen y corrijan ineficiencias económicas y aprovechen los incentivos económicos de los protocolos, los protocolos de DeFi y las dApps en general podrían no ser tan robustos como lo son hoy en día. + +### Lo negativo {#effects-of-mev-the-bad} + +En la capa de aplicación, algunas formas de MEV, como las transacciones sándwich, dan como resultado una experiencia rotundamente peor para los usuarios. Los usuarios hechos sándwich se enfrentan a un aumento en los deslizamientos y a una peor ejecución de sus transacciones. + +En la capa de red, los frontrunners generalizados y las subastas de precio de gas en las que suelen participar (cuando dos o más frontrunners compiten para que su transacción se incluya en el siguiente bloque aumentando progresivamente el precio del gas de sus transacciones) dan como resultado congestión de la red y altos precios del gas para todos los demás que intentan realizar transacciones regulares. + +Más allá de lo que suceda _dentro de_ los bloques, el MEV puede tener efectos perjudiciales _entre_ los bloques. Si el MEV disponible en un bloque excede significativamente la recompensa de bloque estándar, se puede incentivar a los validadores a reorganzar los bloques y capturar el MEV para ellos mismos, causando la reorganización de la cadena de bloques y la inestabilidad del consenso. + +Esta posibilidad de reorganización de la cadena de bloques se ha [explorado previamente en la cadena de bloques de Bitcoin](https://dl.acm.org/doi/10.1145/2976749.2978408). A medida que la recompensa de bloque de Bitcoin se reduce a la mitad y las comisiones de transacción componen una porción cada vez más grande de la recompensa de bloque, surgen situaciones en las que se vuelve económicamente racional que los mineros renuncien a la recompensa del siguiente bloque y en su lugar reminen bloques pasados con tarifas más altas. Con el crecimiento del MEV, podría ocurrir el mismo tipo de situación en Ethereum, lo que amenaza la integridad de la cadena de bloques. + +## Estado del MEV {#state-of-mev} + +La extracción del MEV se disparó a principios de 2021, lo que dio lugar a precios extremadamente altos del gas en los primeros meses del año. El surgimiento del relay de MEV de Flashbots ha reducido la efectividad de los frontrunners generalizados y ha quitado de la cadena las subastas de gas, lo que resultó en la baja de precios del gas para los usuarios corrientes. + +Si bien muchos buscadores todavía están ganando buen dinero con el MEV, a medida que las oportunidades se vuelven más conocidas y más y más buscadores compiten por la misma oportunidad, los validadores capturarán más y más ingresos totales de MEV (porque el mismo tipo de subastas de gas que se describió originalmente anteriormente también ocurren en Flashbots, aunque de forma privada, y los validadores capturarán el ingreso resultante del gas). El MEV además no es exclusivo de Ethereum, y a medida que las oportunidades se vuelven más competitivas en Ethereum, los buscadores se están pasando a cadenas de bloques alternativas como Binance Smart Chain, donde existen oportunidades de MEV similares a las de Ethereum con menos competencia. + +Por otro lado, la transición de prueba de trabajo a prueba de participación y el esfuerzo continuo para escalar Ethereum utilizando rollups cambian el panorama de MEV de maneras que todavía no están claras. Todavía no es bien sabido cómo tener proponentes de bloques garantizados conocidos ligeramente de antemano cambia la dinámica de extracción de MEV en comparación con el modelo probabilístico en la prueba de trabajo o cómo esto se alterará cuando se implementen la [elección de líder secreto único](https://ethresear.ch/t/secret-non-single-leader-election/11789) y [tecnología de validador distribuido](/staking/dvt/). Del mismo modo, queda por ver qué oportunidades de MEV existen cuando la mayor parte de la actividad de los usuarios se aleje de Ethereum y se lleve a sus rollups y shards de capa 2. + +## MEV en la prueba de participación (PoS) de Ethereum {#mev-in-ethereum-proof-of-stake} + +Como se explicó, el MEV tiene implicaciones negativas para la experiencia general del usuario y la seguridad de la capa de consenso. Pero la transición de Ethereum a un consenso de prueba de participación (apodado "La Fusión") potencialmente introduce nuevos riesgos relacionados con el MEV: + +### Centralización de validadores {#validator-centralization} + +En Ethereum posterior a la Fusión, los validadores (habiendo hecho depósitos de seguridad de 32 ETH) llegan a un consenso sobre la validez de los bloques añadidos a la cadena de Baliza. Dado que 32 ETH pueden estar fuera del alcance de muchos, [unirse a un grupo de staking o participación](/staking/pools/) puede ser una opción más factible. No obstante, una distribución saludable de [participantes en solitario](/staking/solo/) es ideal, ya que mitiga la centralización de los validadores y mejora la seguridad de Ethereum. + +Sin embargo, se cree que la extracción de MEV es capaz de acelerar la centralización de los validadores. Esto se debe en parte a que, como los validadores [ganan menos por proponer bloques](/roadmap/merge/issuance/#how-the-merge-impacts-ETH-supply) que los mineros actualmente, la extracción de MEV puede [influir en gran medida en las ganancias de los validadores](https://github.com/flashbots/eth2-research/blob/main/notebooks/mev-in-eth2/eth2-mev-calc.ipynb) después de La Fusión. + +Es probable que los grupos de participación más grandes tengan más recursos para invertir en las optimizaciones necesarias para capturar oportunidades de MEV. Cuanto más MEV extraen estos grupos, más recursos tienen para mejorar sus capacidades de extracción de MEV (y aumentar los ingresos generales), esencialmente creando [economías de escala](https://www.investopedia.com/terms/e/economiesofscale.asp#). + +Con menos recursos a su disposición, los participantes en solitario pueden no poder beneficiarse de las oportunidades de MEV. Esto puede aumentar la presión sobre los validadores independientes para que se unan a poderosos grupos de participación para aumentar sus ganancias, reduciendo la descentralización en Ethereum. + +### Zonas de espera (mempools) con permisos {#permissioned-mempools} + +En respuesta a los ataques de sandwiching y frontrunning, los operadores podrían comenzar a realizar acuerdos fuera de la cadena con validadores para la privacidad de las transacciones. En lugar de enviar una posible transacción de MEV a la zona de espera o mempool pública, el trader la envía directamente al validador, que la incluye en un bloque y divide las ganancias con el trader. + +Los "pools o grupos oscuros" son una versión más grande de este arreglo y funcionan como zonas de espera con permiso y de solo acceso abiertas a los usuarios dispuestos a pagar ciertas tarifas. Esta tendencia disminuiría la falta de permisos y la no necesidad de confianza de Ethereum, y potencialmente transformaría la cadena de bloques en un mecanismo de "pago para jugar" que favorezca al mejor postor. + +Las zonas de espera con permisos también acelerarían los riesgos de centralización descritos en la sección anterior. Los grandes grupos que ejecutan múltiples validadores probablemente se beneficiarán de ofrecer privacidad de transacciones a los traders y los usuarios, aumentando sus ingresos de MEV. + +Combatir estos problemas relacionados con el MEV después de la Fusión de Ethereum es un área central de investigación. Hasta la fecha, dos soluciones propuestas para reducir el impacto negativo del MEV en la descentralización y la seguridad de Ethereum después de la Fusión son **Proposer-Builder Separation (PBS)** y la **Builder API**. + +### Separación proponente-constructor {#proposer-builder-separation} + +Tanto en la prueba de trabajo como en la prueba de participación, un nodo que construye un bloque lo propone para su adición a la cadena a otros nodos que participan en el consenso. Un nuevo bloque se convierte en parte de la cadena canónica después de que otro minero construye sobre él (en PoW) o recibe certificaciones de la mayoría de los validadores (en Pos). + +La combinación de roles de productor de bloques y proponente de bloques es lo que introduce la mayoría de los problemas relacionados con el MEV descritos anteriormente. Por ejemplo, los nodos de consenso son incentivados a desencadenar reorganizaciones de la cadena en ataques de bandidos de tiempo (time-bandit) para maximizar las ganancias de MEV. + +[La separación proponente-constructor](https://ethresear.ch/t/proposer-block-builder-separation-friendly-fee-market-designs/9725) (PBS) está diseñada para mitigar el impacto del MEV, especialmente en la capa de consenso. La principal característica de PBS es la separación de las reglas del productor de bloques y el proponente de bloques. Los validadores siguen siendo responsables de proponer y votar sobre los bloques, pero una nueva clase de entidades especializadas, llamadas **constructores de bloques**, tienen la tarea de ordenar transacciones y construir construcción. + +Bajo PBS, un constructor de bloques crea un paquete de transacciones y hace una oferta por su inclusión en un bloque de la Cadena de Baliza (como la "carga útil de ejecución"). El validador seleccionado para proponer el siguiente bloque luego comprueba las diferentes ofertas y elige el paquete con la tarifa más alta. PBS esencialmente crea un mercado de subastas, donde los constructores negocian con los validadores que venden espacio de bloques. + +Los diseños actuales de PBS utilizan un [esquema commit-reveal](https://gitcoin.co/blog/commit-reveal-scheme-on-ethereum/) en el que los constructores solo publican un compromiso criptográfico con el contenido de un bloque (encabezado de bloque) junto con sus ofertas. Después de aceptar la oferta ganadora, el proponente crea una propuesta de bloque firmada que incluye el encabezado del bloque. Se espera que el constructor de bloques publique el cuerpo completo del bloque después de ver la propuesta de bloque firmada, y también debe recibir suficientes [atestaciones](/glossary/#attestation) de los validadores antes de que se finalice. + +#### ¿Cómo mitiga la separación proponente-constructor el impacto del MEV? {#how-does-pbs-curb-mev-impact} + +La separación entre proponentes y constructores en el protocolo reduce el efecto del MEV en el consenso eliminando la extracción del MEV del ámbito de los validadores. En su lugar, los constructores de bloques que ejecuten hardware especializado capturarán las oportunidades de MEV en el futuro. + +Esto no excluye totalmente a los validadores de los ingresos relacionados con MEV no obstante, ya que los constructores deben pujar alto para que sus bloques sean aceptados por los validadores. De todas maneras, si los validadores ya no se centran directamente en optimizar los ingresos de MEV, la amenaza de ataques time-bandit se reduce. + +La separación entre proponentes y constructores también reduce los riesgos de centralización de MEV. Por ejemplo, el uso de un esquema commit-reveal elimina la necesidad de que los constructores confíen en que los validadores no robarán la oportunidad de MEV o la expondrán a otros constructores. Esto reduce la barrera para que los participantes en solitario se beneficien del MEV; de lo contrario, los constructores tenderían a favorecer grandes pools con reputación fuera de la cadena y a realizar acuerdos fuera de la cadena con ellos. + +Del mismo modo, los validadores no tienen que confiar en los constructores para que no retengan cuerpos de bloques o publiquen bloques no válidos porque el pago es incondicional. La tarifa del validador todavía se procesa incluso si el bloque propuesto no está disponible o es declarado no válido por otros validadores. En este último caso, el bloque simplemente se descarta, lo que obliga al constructor de bloques a perder todas las tarifas de transacción y los ingresos de MEV. + +### Builer API {#builder-api} + +Si bien la separación proponente-constructor promete reducir los efectos de la extracción de MEV, su implementación requiere cambios en el protocolo de consenso. Específicamente, la regla de [elección de bifurcación](/developers/docs/consensus-mechanisms/pos/#fork-choice) en la Cadena de Baliza tendría que actualizarse. La [Builder API](https://github.com/ethereum/builder-specs), de constructor, es una solución temporal destinada a proporcionar una implementación que funcione de la separación proponente-constructor, aunque con mayores suposiciones de confianza. + +La Builder API es una versión modificada de la [Engine API](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) utilizada por los clientes de capa de consenso para solicitar cargas útiles de ejecución a los clientes de la capa de ejecución. Como se describe en la [especificación del validador honesto](https://github.com/ethereum/consensus-specs/blob/dev/specs/bellatrix/validator.md), los validadores seleccionados para las tareas de propuesta de bloques solicitan un paquete de transacciones de un cliente de ejecución conectado, que incluyen en el bloque de la Cadena de Baliza propuesto. + +La Builder API también actúa como middleware entre los validadores y los clientes de la capa de ejecución; pero es diferente porque permite a los validadores de la Cadena de Baliza obtener bloques de entidades externas (en lugar de construir un bloque localmente utilizando un cliente de ejecución). + +A continuación se muestra una descripción general de cómo funciona la Builder API: + +1. La Builder API conecta al validador con una red de constructores de bloques que ejecutan clientes de capa de ejecución. Al igual que en PBS, los constructores son partes especializadas que invierten en la construcción de bloques que consumen muchos recursos y utilizan diferentes estrategias para maximizar los ingresos obtenidos de MEV + propina de prioridad. + +2. Un validador (que ejecuta un cliente de capa de consenso) solicita cargas útiles de ejecución junto con ofertas de la red de constructores. Las ofertas de los constructores contendrán el encabezado de la carga útil de ejecución —un compromiso criptográfico con el contenido de la carga útil— y una tarifa que se pagará al validador. + +3. El validador revisa las ofertas entrantes y elige la carga útil de ejecución con la tarifa más alta. Usando la Builder API, el validador crea una propuesta de bloque de baliza "ciega" que incluye solo su firma y el encabezado de carga útil de ejecución, y la envía al constructor. + +4. Se espera que el constructor que ejecuta la Builder API responda con la carga útil de ejecución completa al ver la propuesta de bloque ciega. Esto permite al validador crear un bloque de baliza "firmado", que propaga por toda la red. + +5. Aún se espera que un validador que utilice la Builder API construya un bloque localmente en caso de que el constructor de bloques no responda con prontitud, para que no se pierdan las recompensas de la propuesta de bloque. Sin embargo, el validador no puede crear otro bloque utilizando las transacciones ahora reveladas u otro conjunto, ya que equivaldría a _equivocación_ (firmar dos bloques dentro de la misma ranura), lo que es una ofensa que se puede acuchillar. + +Un ejemplo de implementación de la Builder API es [MEV Boost](https://github.com/flashbots/mev-boost), una mejora del [mecanismo de subasta de Flashbots](https://docs.flashbots.net/Flashbots-auction/overview/) diseñado para reducir las externalidades negativas de MEV en Ethereum. La subasta de Flashbots permite a los mineros en prueba de trabajo subcontratar el trabajo de construcción de bloques rentables a partes especializadas llamadas **buscadores**. + +Los buscadores buscan oportunidades lucrativas de MEV y envían paquetes de transacciones a los mineros junto con una [puja de precio sellado](https://en.wikipedia.org/wiki/First-price_sealed-bid_auction) para su inclusión en el bloque. El minero que ejecuta mev-geth, una versión bifurcada del cliente go-ethereum (Geth), solo tiene que elegir el paquete con más ganancias y minarlo como parte del nuevo bloque. Para proteger a los mineros del spam y las transacciones no válidas, los paquetes de transacciones pasan por **relayers** para su validación antes de llegar a los mineros. + +MEV Boost conserva el mismo funcionamiento de la subasta original de Flashbots, aunque con nuevas funciones diseñadas para el cambio de Ethereum a prueba de participación. Los buscadores todavía encuentran transacciones de MEV rentables para su inclusión en bloques, pero una nueva clase de partes especializadas, llamadas **constructores**, son responsables de agregar transacciones y paquetes en bloques. Un constructor acepta ofertas de precio sellado de los buscadores y ejecuta optimizaciones para encontrar la orden más rentable. + +El relayer sigue siendo responsable de validar los paquetes de transacciones antes de pasarlos al proponente. Sin embargo, MEV Boost introduce **escrows** responsables de proporcionar [disponibilidad de datos](/developers/docs/data-availability/) mediante el almacenamiento de cuerpos de bloques enviados por constructores y encabezados de bloque enviados por validadores. Aquí, un validador conectado a un relay solicita las cargas útiles de ejecución disponibles y utiliza el algoritmo de ordenación de MEV Boost para seleccionar el encabezado de la carga útil con la puja + propinas de MEV más valiosas. + +#### ¿Cómo mitiga la Builder API el impacto del MEV? {#how-does-builder-api-curb-mev-impact} + +El principal beneficio de la Builder API es su potencial para democratizar el acceso a las oportunidades de MEV. El uso de esquemas commit-reveal elimina las suposiciones de confianza y reduce las barreras de entrada para los validadores que buscan beneficiarse del MEV. Esto debería reducir la presión sobre los participantes en solitario para que se integren a grandes grupos de participación con el fin de aumentar las ganancias de MEV. + +La implementación generalizada de la Builder API fomentará una mayor competencia entre los constructores de bloques, lo que aumenta la resistencia a la censura. A medida que los validadores revisan las ofertas de varios constructores, el intento de un constructor de censurar una o más transacciones de usuario debe superar a todos los demás constructores sin censura para tener éxito. Esto aumenta drásticamente el costo de censurar a los usuarios y desalienta la práctica. + +Algunos proyectos, como MEV Boost, utilizan la Builder API como parte de una estructura general diseñada para proporcionar privacidad de las transacciones a ciertas partes, como los traders que intentan evitar los ataques de frontrunning/sandwiching. Esto se logra proporcionando un canal de comunicación privado entre los usuarios y los constructores de bloques. A diferencia de las zonas de espera o mempools con permisos descritas anteriormente, este enfoque es beneficioso por las siguientes razones: + +1. La existencia de múltiples constructores en el mercado hace que la censura sea poco práctica, lo que beneficia a los usuarios. Por el contrario, la existencia de pools oscuros centralizados y basadas en la confianza concentraría el poder en manos de unos pocos constructores de bloques y aumentaría la posibilidad de censura. + +2. El software de la Builder API es de código abierto, lo que permite a cualquier persona ofrecer servicios de creación de bloques. Esto significa que los usuarios no se ven obligados a usar ningún constructor de bloques en particular y mejora la neutralidad y la no necesidad de permisos de Ethereum. Además, los traders que buscan MEV no contribuirán inadvertidamente a la centralización mediante el uso de canales de transacciones privados. + +## Recursos relacionados {#related-resources} + +- [Documentos de Flashbots](https://docs.flashbots.net/) +- [Flashbots GitHub](https://github.com/flashbots/pm) +- [MEV-Explore:](https://explore.flashbots.net/) _Explorador del Panel de control y de transacciones en vivo para transacciones de MEV_ +- [mevboost.org:](https://www.mevboost.org/) _Rastreador con estadísticas en tiempo real para relays de MEV-Boost y constructores de bloques_ + +## Más información {#further-reading} + +- [¿Qué es el valor extraíble del minero (MEV)?](https://blog.chain.link/what-is-miner-extractable-value-mev/) +- [MEV y yo](https://www.paradigm.xyz/2021/02/mev-and-me) +- [Ethereum es un bosque oscuro](https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest/) +- [Escapar del bosque oscuro](https://samczsun.com/escaping-the-dark-forest/) +- [Flashbots: frontrunning en la crisis de MEV](https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752) +- [Hilos sobre MEV de @bertcmiller](https://twitter.com/bertcmiller/status/1402665992422047747) +- [MEV-Boost: Fusionar la arquitectura de Flashbots lista](https://ethresear.ch/t/mev-boost-merge-ready-flashbots-architecture/11177) +- [¿Qué es el impulso de MEV?](https://www.alchemy.com/overviews/mev-boost) +- [¿Por qué ejecutar mev-boost?](https://writings.flashbots.net/writings/why-run-mevboost/) +- [La Guía de Hitchhikers hacia Ethereum](https://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum) diff --git a/public/content/translations/es/developers/docs/networking-layer/index.md b/public/content/translations/es/developers/docs/networking-layer/index.md new file mode 100644 index 00000000000..88c28dc9e98 --- /dev/null +++ b/public/content/translations/es/developers/docs/networking-layer/index.md @@ -0,0 +1,155 @@ +--- +title: Capa de red +description: Introducción a la capa de red de Ethereum. +lang: es +sidebarDepth: 2 +--- + +Ethereum es una red de pares, o peer-to-peer, con miles de nodos que deben poder comunicarse entre sí utilizando protocolos estandarizados. La "capa de red" es la serie de protocolos que permiten que esos nodos se encuentren entre sí e intercambien información. Esto incluye el "gossiping" (comunicación uno a muchos) en la red, así como el intercambio de peticiones y respuestas entre nodos específicos (comunicación uno a uno). Cada nodo debe cumplir reglas específicas de red para asegurarse de enviar y recibir la información correcta. + +Hay dos partes en el software cliente (cliente de ejecución y cliente de consenso), cada una con su propia pila de red. Además de comunicarse con otros nodos de Ethereum, los clientes de ejecución y de consenso tienen que comunicarse entre sí. Esta página ofrece una explicación introductoria de los protocolos que permiten esta comunicación. + +Los clientes de ejecución gossipean transacciones sobre la red peer-to-peer de capa de ejecución. Esto requiere una comunicación encriptada entre pares autenticados. Cuando un validador es elegido para proponer un bloque, las transacciones del pool de transacciones local del nodo serán enviadas a los clientes de consenso a través de una conexión RPC local, que se empaquetará en bloques Beacon. Los clientes de consenso luego gossipearán bloques Beacon a través de su red p2p. Esto requiere dos redes p2p separadas: una que conecta clientes de ejecución para el gossiping de transacciones y otra que conecta clientes de consenso para el gossiping de bloques. + +## Requisitos previos {#prerequisites} + +Tener algún conocimiento sobre [nodos y clientes](/developers/docs/nodes-and-clients/) de Ethereum será útil para entender esta página. + +## Capa de ejecución {#execution-layer} + +Los protocolos de red de la capa de ejecución se dividen en dos pilas: + +- la pila de descubrimiento: construida sobre UDP, permite que un nuevo nodo encuentre pares a los que conectarse + +- la pila DevP2P: se asienta sobre TCP y permite a los nodos intercambiar información + +Ambas pilas funcionan en paralelo. La pila de descubrimiento alimenta nuevos participantes en la red, y la pila DevP2P permite sus interacciones. + +### Descubrimiento {#discovery} + +El descubrimiento es el proceso de encontrar otros nodos en la red. Esto se inicia utilizando un pequeño conjunto de nodos de arranque o bootnodes (nodos cuyas direcciones están [incrustadas](https://github.com/ethereum/go-ethereum/blob/master/params/bootnodes.go) en el cliente para que se puedan encontrar inmediatamente y conectar el cliente a los pares). Estos nodos de arranque solo existen para presentar un nuevo nodo a un conjunto de pares: este es su único propósito, no participan en tareas normales del cliente, como la sincronización de la cadena, y solo se utilizan la primera vez que se activa un cliente. + +El protocolo utilizado para las interacciones nodo-nodo de arranque es una forma modificada de [Kademlia](https://medium.com/coinmonks/a-brief-overview-of-kademlia-and-its-use-in-various-decentralized-platforms-da08a7f72b8f), que utiliza una [tabla de hash distribuida](https://en.wikipedia.org/wiki/Distributed_hash_table) para compartir listas de nodos. Cada nodo tiene una versión de esta tabla que contiene la información necesaria para conectarse a sus pares más cercanos. Esta "cercanía" no es geográfica; la distancia se define por la similitud del ID del nodo. La tabla de cada nodo se actualiza regularmente como una función de seguridad. Por ejemplo, en el [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5), los nodos del protocolo de descubrimiento también pueden enviar "anuncios" que muestran los subprotocolos que el cliente admite, lo que permite a los pares negociar sobre los protocolos que ambos pueden usar para comunicarse. + +El descubrimiento comienza con un juego de PING-PONG. Un PING-PONG exitoso "vincula" el nuevo nodo a un nodo de arranque. El mensaje inicial que alerta a un nodo de arranque de la existencia de un nuevo nodo que entra en la red es un `PING`. Este `PING` incluye información con hash sobre el nuevo nodo, el nodo de arranque y una marca de tiempo de caducidad. El nodo de arranque recibe el `PING` y devuelve un `PONG` que contiene el hash `PING`. Si los hashes `PING` y `PONG` coinciden, entonces se verifica la conexión entre el nuevo nodo y el nodo de arranque, y se dice que están "vinculados". + +Una vez unidos, el nuevo nodo puede enviar una solicitud `FIND-NEIGHBOURS` al nodo de arranque. Los datos devueltos por el nodo de arranque incluyen una lista de pares a los que el nuevo nodo puede conectarse. Si los nodos no se vinculan, la solicitud `FIND-NEIGHBOURS` fallará, por lo que el nuevo nodo no podrá entrar en la red. + +Una vez que el nuevo nodo recibe una lista de vecinos del nodo de arranque, comienza un intercambio PING-PONG con cada uno de ellos. Los PING-PONG exitosos vinculan el nuevo nodo con sus vecinos, lo que permite el intercambio de mensajes. + +``` +start client --> connect to bootnode --> bond to bootnode --> find neighbours --> bond to neighbours +``` + +Los clientes de ejecución están utilizando actualmente el protocolo de descubrimiento [Discv4](https://github.com/ethereum/devp2p/blob/master/discv4.md), y hay una iniciativa activa para migrar al protocolo [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5). + +#### ENR: Registros de nodos de Ethereum {#enr} + +El [Registro de nodos de Ethereum (ENR)](/developers/docs/networking-layer/network-addresses/) es un objeto que contiene tres elementos básicos: una firma (hash del contenido del registro hecho de acuerdo con algún esquema de identidad acordado), un número de secuencia que rastrea los cambios en el registro y una lista arbitraria de pares clave:valor. Este es un formato a prueba de futuro que permite un intercambio más fácil de información de identificación entre nuevos pares y es el formato preferido de [dirección de red](/developers/docs/networking-layer/network-addresses) para los nodos de Ethereum. + +#### ¿Por qué el descubrimiento se basa en UDP? {#why-udp} + +UDP no admite ninguna comprobación de errores, el reenvío de paquetes fallidos ni la apertura y cierre dinámicos de conexiones; en su lugar, solo dispara un flujo continuo de información a un objetivo, independientemente de si se recibe con éxito. Esta funcionalidad mínima también se traduce en una sobrecarga mínima, lo que hace que este tipo de conexión sea muy rápida. Para el descubrimiento, donde un nodo simplemente quiere dar a conocer su presencia para luego establecer una conexión formal con un par, UDP es suficiente. Sin embargo, para el resto de la pila de redes, UDP no es apto para el propósito. El intercambio de información entre los nodos es bastante complejo y, por lo tanto, necesita un protocolo más completo que pueda admitir el reenvío, la comprobación de errores, etc. La sobrecarga adicional asociada con TCP hace da valor a la funcionalidad adicional o hace que tenga sentido. Por lo tanto, la mayoría de la pila P2P opera a través de TCP. + +### DevP2P {#devp2p} + +DevP2P es en sí mismo toda una pila de protocolos que Ethereum implementa para establecer y mantener la red entre pares. Después de que nuevos nodos entran en la red, sus interacciones se rigen por protocolos de la pila [DevP2P](https://github.com/ethereum/devp2p). Todos estos se basan en TCP e incluyen el protocolo de transporte RLPx, el protocolo de cable y varios subprotocolos. [RLPx](https://github.com/ethereum/devp2p/blob/master/rlpx.md) es el protocolo que rige el inicio, la autenticación y el mantenimiento de sesiones entre nodos. RLPx codifica los mensajes utilizando RLP (Prefijo de Longitud Recursiva), que es un método muy eficiente en el uso de espacio para codificar los datos en una estructura mínima para el envío entre nodos. + +Una sesión RLPx entre dos nodos comienza con un apretón de manos criptográfico inicial. Esto implica que el nodo envíe un mensaje de autenticación, que luego es verificado por el par. Una vez que la verificación es exitosa, el par genera un mensaje de confirmación de autenticación para mostrar al nodo iniciador. Este es un proceso de intercambio de claves que permite a los nodos comunicarse de forma privada y segura. Un apretón de manos criptográfico exitoso hace que ambos nodos envíen un mensaje de "hola" el uno al otro "en el cable". El protocolo de cable se inicia mediante un intercambio exitoso de mensajes de saludo. + +Los mensajes de saludo contienen: + +- versión del protocolo +- ID del cliente +- puerto +- ID del nodo +- lista de subprotocolos compatibles + +Esta es la información necesaria para una interacción exitosa porque define qué capacidades se comparten entre ambos nodos y configura la comunicación. Hay un proceso de negociación de subprotocolos en el que se comparan las listas de subprotocolos compatibles con cada nodo y los que son comunes a ambos nodos se pueden utilizar en la sesión. + +Junto con los mensajes de saludo, el protocolo de cable también puede enviar un mensaje de "desconexión" que avisa a un par que la conexión se cerrará. El protocolo de cable también incluye mensajes PING y PONG que se envían periódicamente para mantener una sesión abierta. Por lo tanto, los intercambios entre RLPx y el protocolo de cable establecen los cimientos de la comunicación entre los nodos, proporcionando el andamiaje para que se intercambie información útil de acuerdo con un subprotocolo específico. + +### Subprotocolos {#sub-protocols} + +#### Protocolo de cable {#wire-protocol} + +Una vez que los pares están conectados y se ha iniciado una sesión RLPx, el protocolo de cable define cómo se comunican los pares. Inicialmente, el protocolo de cable definía tres tareas principales: sincronización de la cadena, propagación de bloques e intercambio de transacciones. Sin embargo, una vez que Ethereum cambió a la prueba de participación, la propagación de bloques y la sincronización de cadenas se convirtieron en parte de la capa de consenso. El intercambio de transacciones todavía está en el ámbito de los clientes de ejecución. El intercambio de transacciones se refiere al intercambio de transacciones pendientes entre nodos para que los mineros puedan seleccionar algunas de ellas para su inclusión en el siguiente bloque. Hay información detallada sobre estas tareas [aquí](https://github.com/ethereum/devp2p/blob/master/caps/eth.md). Los clientes que admiten estos subprotocolos los exponen a través del [JSON-RPC](/developers/docs/apis/json-rpc/). + +#### les (subprotocolo ligero de ethereum) {#les} + +Este es un protocolo mínimo para sincronizar clientes ligeros. Tradicionalmente, este protocolo rara vez se ha utilizado porque los nodos completos deben servir datos a los clientes ligeros sin ser incentivados. El comportamiento predeterminado de los clientes de ejecución no es servir datos de clientes ligeros sobre les. Hay más información disponible en la [especificación de Ies](https://github.com/ethereum/devp2p/blob/master/caps/les.md). + +#### Snap {#snap} + +El [protocolo snap](https://github.com/ethereum/devp2p/blob/master/caps/snap.md#ethereum-snapshot-protocol-snap) es una extensión opcional que permite a los pares intercambiar instantáneas de estados recientes, lo que les permite verificar los datos de la cuenta y el almacenamiento sin tener que descargar nodos intermedios de Merkle trie. + +#### Wit (protocolo testigo) {#wit} + +El [protocolo testigo](https://github.com/ethereum/devp2p/blob/master/caps/wit.md#ethereum-witness-protocol-wit) es una extensión opcional que permite el intercambio de testigos de estado entre pares, ayudando a sincronizar los clientes con la punta de la cadena. + +#### Whisper {#whisper} + +Whisper era un protocolo que tenía como objetivo ofrecer mensajes seguros entre pares sin escribir ninguna información en la cadena de bloques. Era parte del protocolo de cable DevP2P, pero ahora está obsoleto. Existen otros [proyectos relacionados](https://wakunetwork.com/) con objetivos similares. + +## La capa de consenso {#consensus-layer} + +Los clientes de consenso participan en una red separada entre pares con una especificación diferente. Los clientes de consenso necesitan participar en el gossiping de bloques para que puedan recibir nuevos bloques de sus pares y transmitirlos cuando sea su turno de proponer bloques. Como sucede con la capa de ejecución, esto primero requiere un protocolo de descubrimiento para que un nodo pueda encontrar pares y establecer sesiones seguras para intercambiar bloques, atestaciones, etc. + +### Descubrimiento {#consensus-discovery} + +Al igual que los clientes de ejecución, los clientes de consenso usan [discv5](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-discovery-domain-discv5) sobre UDP para encontrar pares. La implementación de la capa de consenso de discv5 difiere de la de los clientes de ejecución solo en que incluye un adaptador que conecta el discov5 a una pila [libP2P](https://libp2p.io/), dejando obsoleto DevP2P. Las sesiones RLPx de la capa de ejecución están obsoletas en favor del apretón de manos del canal seguro de ruido de libP2P. + +### ENR {#consensus-enr} + +El registro de nodos de Ethereum (ENR) de los nodos de consenso incluye la clave pública del nodo, la dirección IP, los puertos UDP y TCP y dos campos específicos de consenso: el bitfield de la subred de certificación y la clave `eth2`. El primero hace que sea más fácil para los nodos encontrar pares que participen en subredes de gossiping de certificación específicas. La clave `eth2` contiene información sobre qué versión de bifurcación de Ethereum está usando el nodo, lo que garantiza que los pares se conecten al Ethereum correcto. + +### libP2P {#libp2p} + +La pila libP2P admite todas las comunicaciones después del descubrimiento. Los clientes pueden marcar y escuchar en IPv4 y/o IPv6 como se define en su ENR. Los protocolos de la capa libP2P se pueden subdividir en los dominios gossip y req/resp. + +### Gossip {#gossip} + +El dominio de gossip incluye toda la información que tiene que difundirse rápidamente por toda la red. Esto incluye bloques de baliza (beacon), pruebas, certificaciones, salidas y salidas forzadas (slashings). Esto se transmite utilizando libP2P gossipsub v1 y se basa en varios metadatos que se almacenan localmente en cada nodo, incluido el tamaño máximo de las cargas útiles de gossip para recibir y transmitir. La información detallada sobre el dominio de gossip está disponible [aquí](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-gossip-domain-gossipsub). + +### Solicitud-respuesta {#request-response} + +El dominio de solicitud-respuesta (request-response) contiene protocolos para los clientes que solicitan información específica de sus pares. Algunos ejemplos incluyen solicitar a bloques de baliza específicos que coincidan con ciertos hashes raíz o dentro de un rango de ranuras. Las respuestas siempre se devuelven como bytes codificados SSZ con compresión rápida. + +## ¿Por qué el cliente de consenso prefiere SSZ en lugar de RLP? {#ssz-vs-rlp} + +SSZ significa serialización simple. Utiliza desplazamientos fijos que facilitan la decodificación de partes individuales de un mensaje codificado sin tener que decodificar toda la estructura, lo que es muy útil para el cliente de consenso, ya que puede extraer de manera eficiente partes específicas de información de los mensajes codificados. También está diseñado específicamente para integrarse con los protocolos de Merkle, con ventajas de eficiencia relacionadas para la Merkleización. Dado que todos los hashes en la capa de consenso son raíces de Merkle, esto contribuye a la mejora significativa. SSZ también garantiza representaciones únicas de valores. + +## Conexión de los clientes de ejecución y de consenso {#connecting-clients} + +Tanto los clientes de consenso como los de ejecución se ejecutan en paralelo. Necesitan estar conectados para que el cliente de consenso pueda proporcionar instrucciones al cliente de ejecución, y el cliente de ejecución pueda pasar paquetes de transacciones al cliente de consenso para incluirlos en los bloques de Baliza. La comunicación entre los dos clientes se puede lograr utilizando una conexión local de RPC. Una API conocida como [Engine-API](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) define las instrucciones enviadas entre los dos clientes. Dado que ambos clientes están detrás de una sola identidad de red, comparten un ENR (registro de nodos de Ethereum) que contiene una clave separada para cada cliente (clave eth1 y clave eth2). + +A continuación se muestra un resumen del flujo de control, con la pila de red relevante entre paréntesis. + +### Cuando el cliente de consenso no es productor de bloques: + +- El cliente de consenso recibe un bloque a través del protocolo de gossiping de bloques (p2p de consenso) +- El cliente de consenso valida previamente el bloque, es decir, se asegura de que llegue de un remitente válido con los metadatos correctos +- Las transacciones en el bloque se envían a la capa de ejecución como una carga útil de ejecución (conexión local de RPC) +- La capa de ejecución ejecuta las transacciones y valida el estado en el encabezado del bloque (es decir, comprueba la coincidencia de los hashes) +- La capa de ejecución pasa los datos de validación a la capa de consenso, bloque que ahora se considera validado (conexión local RPC) +- La capa de consenso añade un bloque a la cabeza de su propia cadena de bloques y hace una verificación, transmitiendo la verificación en la red (p2p de consenso) + +### Cuando el cliente de consenso es productor de bloques: + +- El cliente de consenso recibe un aviso de que es el próximo productor de bloques (p2p de consenso) +- La capa de consenso invoca el método `create block` en el cliente de ejecución (RPC local) +- La capa de ejecución accede a la zona de espera (mempool) completada por el protocolo de gossiping de la transacción (p2p de ejecución) +- El cliente de ejecución agrupa las transacciones en un bloque, ejecuta las transacciones y genera un hash de bloques +- El cliente de consenso agarra las transacciones y el hash de bloques del cliente de ejecución y los agrega al bloque de baliza (RPC local) +- El cliente de consenso transmite el bloque a través del protocolo de gossiping de bloque (p2p de consenso) +- Otros clientes reciben el bloque propuesto a través del protocolo de gossiping de bloque y lo validan como se describió anteriormente (p2p de consenso) + +Una vez que el bloque ha sido certificado por suficientes validadores, se añade a la cabeza de la cadena, se justifica y finalmente se finaliza. + +![](cons_client_net_layer.png) ![](exe_client_net_layer.png) + +Esquema de capa de red para clientes de consenso y ejecución, de [ethresear.ch](https://ethresear.ch/t/eth1-eth2-client-relationship/7248) + +## Más información {#further-reading} + +[DevP2P](https://github.com/ethereum/devp2p) [LibP2p](https://github.com/libp2p/specs) [Especificaciones de red de capa de consenso](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#enr-structure) [kademlia a discv5](https://vac.dev/kademlia-to-discv5) [kademlia paper](https://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf) [Introducción a Ethereum p2p](https://p2p.paris/en/talks/intro-ethereum-networking/) [Relación eth1/eth2](http://ethresear.ch/t/eth1-eth2-client-relationship/7248) [Video con detalles sobre La fusión y el cliente eth2](https://www.youtube.com/watch?v=zNIrIninMgg) diff --git a/src/content/translations/es/developers/docs/networking-layer/network-addresses/index.md b/public/content/translations/es/developers/docs/networking-layer/network-addresses/index.md similarity index 100% rename from src/content/translations/es/developers/docs/networking-layer/network-addresses/index.md rename to public/content/translations/es/developers/docs/networking-layer/network-addresses/index.md diff --git a/src/content/translations/es/developers/docs/networking-layer/portal-network/index.md b/public/content/translations/es/developers/docs/networking-layer/portal-network/index.md similarity index 100% rename from src/content/translations/es/developers/docs/networking-layer/portal-network/index.md rename to public/content/translations/es/developers/docs/networking-layer/portal-network/index.md diff --git a/src/content/translations/es/developers/docs/networks/index.md b/public/content/translations/es/developers/docs/networks/index.md similarity index 100% rename from src/content/translations/es/developers/docs/networks/index.md rename to public/content/translations/es/developers/docs/networks/index.md diff --git a/src/content/translations/es/developers/docs/nodes-and-clients/archive-nodes/index.md b/public/content/translations/es/developers/docs/nodes-and-clients/archive-nodes/index.md similarity index 100% rename from src/content/translations/es/developers/docs/nodes-and-clients/archive-nodes/index.md rename to public/content/translations/es/developers/docs/nodes-and-clients/archive-nodes/index.md diff --git a/src/content/translations/es/developers/docs/nodes-and-clients/bootnodes/index.md b/public/content/translations/es/developers/docs/nodes-and-clients/bootnodes/index.md similarity index 100% rename from src/content/translations/es/developers/docs/nodes-and-clients/bootnodes/index.md rename to public/content/translations/es/developers/docs/nodes-and-clients/bootnodes/index.md diff --git a/public/content/translations/es/developers/docs/nodes-and-clients/client-diversity/index.md b/public/content/translations/es/developers/docs/nodes-and-clients/client-diversity/index.md new file mode 100644 index 00000000000..88854c8eada --- /dev/null +++ b/public/content/translations/es/developers/docs/nodes-and-clients/client-diversity/index.md @@ -0,0 +1,109 @@ +--- +title: Diversidad de clientes +description: Explicación detallada sobre la importancia de la diversidad de clientes en Ethereum. +lang: es +sidebarDepth: 2 +--- + +El software ejecutado por el cliente, controla el comportamiento de un nodo de Ethereum. Hay diferentes niveles de producción de clientes de Ethereum, cada uno de ellos desarrollado y mantenido en varios idiomas por diferentes equipos. Los clientes han sido construidos con especificaciones similares que permiten la comunicación entre ellos, compartir rasgos comunes y ofrecer una experiencia al cliente similar. No obstante, en estos momentos, la distribución de clientes en los nodos no es del todo uniforme como para que el reforzamiento de la red opere a su máximo potencial. Idóneamente, los usuarios se dividen de manera uniforme a través de varios clientes para generar tanta diversidad de clientes como sea posible en la red. + +## Prerrequisitos {#prerequisites} + +Si aún quiere profundizar sobre qué son los nodos y clientes, acceda a la sección de [nodos y clientes](/developers/docs/nodes-and-clients/). Las capas de [ejecución](/glossary/#execution-layer) y [consenso](/glossary/#consensus-layer) se describen en el glosario. + +## ¿Por qué existen múltiples clientes? {#why-multiple-clients} + +La existencia de clientes múltiples, desarrollados y mantenidos de manera independiente se debe a que la diversidad de clientes permite que la red sea más resiliente frente a ataques o errores. Los clientes múltiples son una baza singular para Ethereum. Otras cadenas de bloques dependen de la infalibilidad de un solo cliente. Sin embargo, no es una tarea simple mantener múltiples clientes disponibles, ya que la comunidad debe adoptarlos y la cantidad de nodos disponibles deberá distribuirse lo más uniformemente posible entre ellos. + +## ¿Por qué es tan importante la diversidad de clientes? {#client-diversity-importance} + +Para garantizar el buen estado de una red descentralizada, es vital contar con varios clientes desarrollados y mantenidos de manera independiente. Entendamos por qué. + +### Errores {#bugs} + +Un error producido en un solo cliente es menos arriesgado para la red cuando se focaliza en una minoría de los nodos de Ethereum. Al haber una distribución equitativa de los nodos entre varios clientes, la probabilidad de que la mayoría de los clientes se vean afectados por una misma incidencia se reduce. Esto trae como resultado que la red sea más robusta. + +### Resiliencia frente a los ataques {#resilience} + +La diversidad de clientes también ofrece una mayor resiliencia frente a los ataques. Por ejemplo, si un ataque se dirige [a un cliente en particular](https://twitter.com/vdWijden/status/1437712249926393858) y a una ramificación específica de la cadena es poco probable que tenga éxito, ya que es muy improbable que otros clientes puedan verse afectados de la misma manera y que la cadena predilecta se mantenga incorrupta. La poca diversidad de clientes aumenta el riesgo de hackeos dirigidos al cliente dominante. Se ha probado que la diversidad de clientes es una forma de defensa de vital importancia ante ataques maliciosos contra la red. Por ejemplo, el ataque de servicios denegados de Shanghai de 2016 tuvo lugar debido a que los atacantes lograron forzar al cliente dominante (Geth), haciéndolo ejecutar una operación de disco ralentizado i/o decenas de miles de veces por bloque. Gracias a que clientes alternativos se encontraban en línea sin compartir los puntos débiles, Ethereum pudo resistir el ataque y continuar operando mientras se lograban reparar los fallos en Geth. + +### Finalidad de la prueba de participación {#finality} + +Un error en un cliente de consenso con más del 33 % de los nodos de Ethereum podría impedir que la capa de consenso finalizara, lo que significa que los usuarios no podrían confiar en que las transacciones no se revirtieran o cambiarían en algún momento. Esto podría ser bastante problemático para muchas de las aplicaciones contruidas en Ethereum, especialmente las DeFi. + + Peor aún, un error crítico en un cliente con dos tercios de mayoría haría que la cadena se dividiera y finalizara de manera incorrecta, haciendo que un gran número de validadores se vieran involucrados en una cadena inválida. Si los validadores quisieran reincorporarse a la cadena correcta, se verían afectados por recortes o por un lento y costoso proceso de retirada y reactivación voluntaria. La magnitud de los recortes aumenta en función del número de nodos culpables, con un máximo de dos tercios de la mayoría (32 ETH) recortados. + +A pesar de que es poco probable que se den estas situaciones, el ecosistema de Ethereum puede mitigar dichos riesgos igualando la distribución de clientes a través de los nodos activos. Idóneamente, ningún cliente de consenso podría alcanzar una participación del 33 % del total de los nodos. + +### Responsabilidad compartida {#responsibility} + +La tenencia de clientes mayoritarios también conlleva un costo humano. Esto supondría una sobrecarga de estrés y responsabilidades a un equipo de desarrollo a pequeña escala. Mientras haya menos diversidad de clientes, mayor será la carga de responsabilidades adjudicadas a los desarrolladores a cargo del cliente mayoritario. Distribuir la responsabilidad entre múltiples equipos favorece el bienestar tanto de los nodos de la red de Ethereum como de las personas involucradas. + +## Diversidad actual de clientes {#current-client-diversity} + +![Gráfico que muestra la diversidad de clientes](./client-diversity.png) _Diagrama de datos de [ethernodes.org](https://ethernodes.org) y [clientdiversity.org](https://clientdiversity.org/)_ + +Los dos gráficos de la parte superior muestran capturas del estado actual de la diversidad de clientes para las capas de ejecución y consenso (en el momento de su redacción en enero de 2022). La capa de ejecución está abrumadoramente dominada por [Geth](https://geth.ethereum.org/), [Open Ethereum](https://openethereum.github.io/) en un lejano segundo lugar, [Erigon](https://github.com/ledgerwatch/erigon) en tercero y [Nethermind](https://nethermind.io/) en el cuarto, además de la participación de otros clientes cuya participación representa menos del 1 % en la red. En la capa de consenso, el cliente de usado con mayor frecuencia es [Prysm](https://prysmaticlabs.com/#projects). A pesar de no ser tan predominante como Geth, representa más del 60 % de la red. [Lighthouse](https://lighthouse.sigmaprime.io/) y [Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) acaparan el 20 % y 14 % respectivamente, mientras que el uso del resto de los clientes es poco común. + +Los datos sobre la capa de ejecución se han sacado de [Ethernodes](https://ethernodes.org) el 23/01/2022. Los datos sobre la capa de consenso provienen de [Michael Sproul](https://github.com/sigp/blockprint). Los datos de clientes de consenso son más difíciles de obtener, porque los clientes de la capa de consenso no siempre tienen rastros inequívocos que se pueden utilizar para identificarlos. La información se ha creado gracias a un algoritmo de clasificación que en algunas ocasiones confunde a algunos de los clientes minoritarios (vea [aquí](https://twitter.com/sproulM_/status/1440512518242197516) para detalles adicionales). En el diagrama de la parte superior, estas clasificaciones ambiguas se indican con una etiqueta (p. ej.,: Nimbus/Teku). No obstante, es evidente que la mayoría de la red se ejecuta con Prysm. Los datos son una muestra de un determinado grupo de bloques (específicamente de los bloques baliza situados entre las ranuras 2048001 y 2164916) en los que el predominio de Prysm es relativamente mayor, sobrepasando el 68 %. A pesar de que solo son capturas, los valores presentes en el diagrama ofrecen una visión generalizada del estado actual de la diversidad de clientes. + +Los datos actualizados de diversidad de clientes para la capa de consenso ahora están disponibles en [clientdiversity.org](https://clientdiversity.org/). + +## Capa de ejecución {#execution-layer} + +Hasta el momento, el foco de la discusión sobre la diversidad de clientes se centraba en la capa de consenso. Sin embargo, actualmente, el cliente de ejecución [Geth](https://geth.ethereum.org), se encuentra a cargo de cerca del 85 % del total de los nodos. Estos son porcentajes críticos, tanto para el cliente de consenso como para el de ejecución. Por ejemplo, un error en Geth que afecte el manejo de las transacciones o un error en la construcción de la carga útil de ejecución podría generar una finalización de transacciones problemática o con errores para los clientes de consenso. Así pues, Ethereum podría ser mucho más saludable con una distribución más equitativa de clientes de ejecución, en donde, idóneamente, no haya ningún cliente con más del 33 % de la participación en la red. + +## Uso de clientes minoritarios {#use-minority-client} + +Para abordar la diversidad de clientes y escoger un cliente minoritario no solo se necesitan usuarios individuales, sino también reservas de minería/validación e instituciones como grandes DApps e intercambios para intercambiar clientes también. A pesar de ello, todos los usuarios pueden participar en el proceso de reequilibrar las disparidades actuales y normalizar el uso de todo el software disponible de Ethereum. Tras La Fusión, todos los operadores de nodo deberán ejecutar un cliente de ejecución y un cliente de consenso. Escoger alguna de las combinaciones de clientes sugeridas a continuación, ayudará a aumentar la diversidad de clientes. + +### Clientes de ejecución {#execution-clients} + +[Besu](https://www.hyperledger.org/use/besu) + +[Nethermind](https://downloads.nethermind.io/) + +[Erigon](https://github.com/ledgerwatch/erigon) + +[Go-Ethereum](https://geth.ethereum.org/) + +### Clientes de consenso {#consensus-clients} + +[Nimbus](https://nimbus.team/) + +[Lighthouse](https://github.com/sigp/lighthouse) + +[Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) + +[Lodestar](https://github.com/ChainSafe/lodestar) + +[Prysm](https://docs.prylabs.network/docs/getting-started) + +Los usuarios técnicos pueden acelerar este proceso con tutoriales y documentación relacionada a clientes minoritarios, invitando a otros operadores de nodos a migrar alejándose de los clientes dominantes. Las guías para migrar a un cliente de consenso minoritario están disponibles en [clientdiversity.org](https://clientdiversity.org/). + +## Paneles de control de diversidad de clientes {#client-diversity-dashboards} + +Hay varios paneles que ofrecen estadísticas en tiempo real sobre la diversidad de clientes en las capas de consenso y ejecución. + +**Capa de consenso:** + +- [Rated.network](https://www.rated.network/) +- [clientdiversity.org](https://clientdiversity.org/) **/Capa de ejecución:** + +- [execution-diversity.info](https://execution-diversity.info/) +- [Ethernodes](https://ethernodes.org/) + +## Más información {#further-reading} + +- [Diversidad de clientes en la capa de consenso de Ethereum](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) +- [Fusión de Ethereum: ejecute el cliente mayoritario bajo su propio riesgo!](https://dankradfeist.de/ethereum/2022/03/24/run-the-majority-client-at-your-own-peril.html), _Dankrad Fiest, 24 de marzo de 2022_ +- [La importancia de la diversidad de clientes](https://our.status.im/the-importance-of-client-diversity/) +- [Lista de servicios de nodos de Ethereum](https://ethereumnodes.com/) +- [Las cinco razones que explican el problema de la diversidad de clientes](https://notes.ethereum.org/@afhGjrKfTKmksTOtqhB9RQ/BJGj7uh08) +- [La diversidad de Ethereum y cómo resolverla (YouTube)](https://www.youtube.com/watch?v=1hZgCaiqwfU) +- [clientdiversity.org](https://clientdiversity.org/) + +## Temas relacionados {#related-topics} + +- [Cómo ejecutar un nodo de Ethereum](/run-a-node/) +- [Nodos y clientes](/developers/docs/nodes-and-clients/) diff --git a/src/content/translations/es/developers/docs/nodes-and-clients/index.md b/public/content/translations/es/developers/docs/nodes-and-clients/index.md similarity index 100% rename from src/content/translations/es/developers/docs/nodes-and-clients/index.md rename to public/content/translations/es/developers/docs/nodes-and-clients/index.md diff --git a/src/content/translations/es/developers/docs/nodes-and-clients/light-clients/index.md b/public/content/translations/es/developers/docs/nodes-and-clients/light-clients/index.md similarity index 100% rename from src/content/translations/es/developers/docs/nodes-and-clients/light-clients/index.md rename to public/content/translations/es/developers/docs/nodes-and-clients/light-clients/index.md diff --git a/src/content/translations/es/developers/docs/nodes-and-clients/node-architecture/index.md b/public/content/translations/es/developers/docs/nodes-and-clients/node-architecture/index.md similarity index 100% rename from src/content/translations/es/developers/docs/nodes-and-clients/node-architecture/index.md rename to public/content/translations/es/developers/docs/nodes-and-clients/node-architecture/index.md diff --git a/src/content/translations/es/developers/docs/nodes-and-clients/nodes-as-a-service/index.md b/public/content/translations/es/developers/docs/nodes-and-clients/nodes-as-a-service/index.md similarity index 100% rename from src/content/translations/es/developers/docs/nodes-and-clients/nodes-as-a-service/index.md rename to public/content/translations/es/developers/docs/nodes-and-clients/nodes-as-a-service/index.md diff --git a/src/content/translations/es/developers/docs/nodes-and-clients/run-a-node/index.md b/public/content/translations/es/developers/docs/nodes-and-clients/run-a-node/index.md similarity index 100% rename from src/content/translations/es/developers/docs/nodes-and-clients/run-a-node/index.md rename to public/content/translations/es/developers/docs/nodes-and-clients/run-a-node/index.md diff --git a/src/content/translations/es/developers/docs/oracles/index.md b/public/content/translations/es/developers/docs/oracles/index.md similarity index 100% rename from src/content/translations/es/developers/docs/oracles/index.md rename to public/content/translations/es/developers/docs/oracles/index.md diff --git a/src/content/translations/es/developers/docs/programming-languages/dart/index.md b/public/content/translations/es/developers/docs/programming-languages/dart/index.md similarity index 100% rename from src/content/translations/es/developers/docs/programming-languages/dart/index.md rename to public/content/translations/es/developers/docs/programming-languages/dart/index.md diff --git a/src/content/translations/es/developers/docs/programming-languages/delphi/index.md b/public/content/translations/es/developers/docs/programming-languages/delphi/index.md similarity index 100% rename from src/content/translations/es/developers/docs/programming-languages/delphi/index.md rename to public/content/translations/es/developers/docs/programming-languages/delphi/index.md diff --git a/src/content/translations/es/developers/docs/programming-languages/dot-net/index.md b/public/content/translations/es/developers/docs/programming-languages/dot-net/index.md similarity index 100% rename from src/content/translations/es/developers/docs/programming-languages/dot-net/index.md rename to public/content/translations/es/developers/docs/programming-languages/dot-net/index.md diff --git a/src/content/translations/es/developers/docs/programming-languages/golang/index.md b/public/content/translations/es/developers/docs/programming-languages/golang/index.md similarity index 100% rename from src/content/translations/es/developers/docs/programming-languages/golang/index.md rename to public/content/translations/es/developers/docs/programming-languages/golang/index.md diff --git a/src/content/translations/es/developers/docs/programming-languages/index.md b/public/content/translations/es/developers/docs/programming-languages/index.md similarity index 100% rename from src/content/translations/es/developers/docs/programming-languages/index.md rename to public/content/translations/es/developers/docs/programming-languages/index.md diff --git a/src/content/translations/es/developers/docs/programming-languages/java/index.md b/public/content/translations/es/developers/docs/programming-languages/java/index.md similarity index 100% rename from src/content/translations/es/developers/docs/programming-languages/java/index.md rename to public/content/translations/es/developers/docs/programming-languages/java/index.md diff --git a/src/content/translations/es/developers/docs/programming-languages/javascript/index.md b/public/content/translations/es/developers/docs/programming-languages/javascript/index.md similarity index 100% rename from src/content/translations/es/developers/docs/programming-languages/javascript/index.md rename to public/content/translations/es/developers/docs/programming-languages/javascript/index.md diff --git a/src/content/translations/es/developers/docs/programming-languages/python/index.md b/public/content/translations/es/developers/docs/programming-languages/python/index.md similarity index 100% rename from src/content/translations/es/developers/docs/programming-languages/python/index.md rename to public/content/translations/es/developers/docs/programming-languages/python/index.md diff --git a/src/content/translations/es/developers/docs/programming-languages/ruby/index.md b/public/content/translations/es/developers/docs/programming-languages/ruby/index.md similarity index 100% rename from src/content/translations/es/developers/docs/programming-languages/ruby/index.md rename to public/content/translations/es/developers/docs/programming-languages/ruby/index.md diff --git a/src/content/translations/es/developers/docs/programming-languages/rust/index.md b/public/content/translations/es/developers/docs/programming-languages/rust/index.md similarity index 100% rename from src/content/translations/es/developers/docs/programming-languages/rust/index.md rename to public/content/translations/es/developers/docs/programming-languages/rust/index.md diff --git a/src/content/translations/es/developers/docs/scaling/index.md b/public/content/translations/es/developers/docs/scaling/index.md similarity index 100% rename from src/content/translations/es/developers/docs/scaling/index.md rename to public/content/translations/es/developers/docs/scaling/index.md diff --git a/src/content/translations/es/developers/docs/scaling/optimistic-rollups/index.md b/public/content/translations/es/developers/docs/scaling/optimistic-rollups/index.md similarity index 100% rename from src/content/translations/es/developers/docs/scaling/optimistic-rollups/index.md rename to public/content/translations/es/developers/docs/scaling/optimistic-rollups/index.md diff --git a/src/content/translations/es/developers/docs/scaling/plasma/index.md b/public/content/translations/es/developers/docs/scaling/plasma/index.md similarity index 100% rename from src/content/translations/es/developers/docs/scaling/plasma/index.md rename to public/content/translations/es/developers/docs/scaling/plasma/index.md diff --git a/src/content/translations/es/developers/docs/scaling/sidechains/index.md b/public/content/translations/es/developers/docs/scaling/sidechains/index.md similarity index 100% rename from src/content/translations/es/developers/docs/scaling/sidechains/index.md rename to public/content/translations/es/developers/docs/scaling/sidechains/index.md diff --git a/src/content/translations/es/developers/docs/scaling/state-channels/index.md b/public/content/translations/es/developers/docs/scaling/state-channels/index.md similarity index 100% rename from src/content/translations/es/developers/docs/scaling/state-channels/index.md rename to public/content/translations/es/developers/docs/scaling/state-channels/index.md diff --git a/src/content/translations/es/developers/docs/scaling/validium/index.md b/public/content/translations/es/developers/docs/scaling/validium/index.md similarity index 100% rename from src/content/translations/es/developers/docs/scaling/validium/index.md rename to public/content/translations/es/developers/docs/scaling/validium/index.md diff --git a/src/content/translations/es/developers/docs/scaling/zk-rollups/index.md b/public/content/translations/es/developers/docs/scaling/zk-rollups/index.md similarity index 100% rename from src/content/translations/es/developers/docs/scaling/zk-rollups/index.md rename to public/content/translations/es/developers/docs/scaling/zk-rollups/index.md diff --git a/src/content/translations/es/developers/docs/security/index.md b/public/content/translations/es/developers/docs/security/index.md similarity index 100% rename from src/content/translations/es/developers/docs/security/index.md rename to public/content/translations/es/developers/docs/security/index.md diff --git a/public/content/translations/es/developers/docs/smart-contracts/anatomy/index.md b/public/content/translations/es/developers/docs/smart-contracts/anatomy/index.md new file mode 100644 index 00000000000..ba63089c762 --- /dev/null +++ b/public/content/translations/es/developers/docs/smart-contracts/anatomy/index.md @@ -0,0 +1,659 @@ +--- +title: Anatomía de los contratos inteligentes +description: "Una mirada en profundidad a la anatomía de un contacto inteligente: Sus funciones, datos y variables." +lang: es +--- + +Un contrato inteligente es un programa que se ejecuta en una dirección en Ethereum. Están formados por datos y funciones, que se pueden ejecutar al recibir una transacción. A continuación encontrarás una visión general de lo que compone un contrato inteligente. + +## Requisitos previos {#prerequisites} + +Asegúrate de haber leído primero la documentación sobre los [contratos inteligentes](/developers/docs/smart-contracts/). Este documento asume que ya estás familiarizado con lenguajes de programación como JavaScript o Python. + +## Datos {#data} + +Cualquier dato del contrato debe asignarse a una ubicación: ya sea a `almacenamiento` o `memoria`. Es costoso modificar el almacenamiento en un contrato inteligente, por lo que debes considerar dónde deben ubicarse sus datos. + +### Almacenamiento {#storage} + +Los datos persistentes se denominan almacenamiento y se representan por variables de estado. Estos valores se almacenan permanentemente en la blockchain. Necesitas declarar el tipo de dato para que el contrato pueda llevar un seguimiento de la cantidad de almacenamiento en la blockchain que se necesitará cuando compile. + +```solidity +// ejemplo de Solidity +contract SimpleStorage { + uint storedData; // variable de estado + // ... +} +``` + +```python +# ejemplo de Vyper +storedData: int128 +``` + +Si ya has utilizado lenguajes de programación orientados a objetos, probablemente estarás familiarizado con la mayoría de tipos de datos. Sin embargo, la `dirección` debe ser nueva para ti si eres nuevo en el desarrollo de Ethereum. + +Una variable de tipo `dirección ` puede contener una dirección de Ethereum que equivale a 20 bytes o 160 bits. Devuelve en notación hexadecimal con un 0x al inicio. + +Otros tipos de variables incluyen: + +- booleano +- entero +- números de punto fijo +- matrices de bytes de punto fijo +- matrices de bytes de tamaño dinámico +- Literales de tipo real, racional o integradores +- Literales de cadenas de caracteres +- Literales en base hexadecimal +- Enumeraciones + +Para más explicación, echa un vistazo a la documentación: + +- [Ver los de tipo Vyper](https://vyper.readthedocs.io/en/v0.1.0-beta.6/types.html#value-types) +- [Ver los de tipo Solidity](https://solidity.readthedocs.io/en/latest/types.html#value-types) + +### Memoria {#memory} + +Los valores que sólo se almacenan durante la vida útil de la ejecución de una función de contrato se llaman variables de memoria. Dado que estos no se almacenan permanentemente en la blockchain, son mucho más baratos de usar. + +Obtén más información sobre cómo la EVM almacena datos (almacenamiento, memoria y pila) en la [documentación de Solidity](https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html?highlight=memory#storage-memory-and-the-stack). + +### Variables de entorno {#environment-variables} + +Además de las variables que se definen en su contrato, hay algunas variables globales especiales. Se utilizan principalmente para proporcionar información acerca de la cadena de bloques o la transacción actual. + +Ejemplos: + +| **Propiedad** | **Variable de estado** | **Descripción** | +| ----------------- | ---------------------- | -------------------------------------- | +| `block.timestamp` | uint256 | Marca de tiempo del bloque actual | +| `msg.sender` | dirección | Remitente del mensaje (llamada actual) | + +## Funciones {#functions} + +De una forma simplista, las funciones pueden obtener información o establecer información en respuesta a las transacciones entrantes. + +Existen dos tipos de llamadas de funciones: + +- `Internas`: Estas no crean una llamada a la EVM. + - Sólo se puede acceder a las funciones internas y a las variables de estado internamente (es decir, desde el contrato actual o los contratos que derivan de él) +- `Externas`: Estas crean una llamada a la EVM. + - Las funciones externas forman parte de la interfaz del contrato, lo que significa que se pueden llamar desde otros contratos y a través de transacciones. Una función externa `f` no puede llamarse internamente (es decir, `f()` no funciona, pero `this.f()` funciona). + +También pueden ser `públicas` o `privadas`. + +- las funciones `públicas` pueden llamarse internamente desde dentro del contrato o externamente a través de mensajes +- las funciones `privadas` solo son visibles para el contrato en el que están definidas y no en contratos derivados + +Tanto las funciones como las variables de estado pueden hacerse públicas o privadas. + +Aquí se ejemplifica una función para actualizar una variable de estado en un contrato: + +```solidity +// ejemplo de Solidity +function update_name(string value) public { + dapp_name = value; +} +``` + +- El parámetro `valor` del tipo `string` se transfiere a la función: `update_name` +- Se declara `pública`, lo que significa que cualquiera puede acceder a ella. +- No está declarada `view` para solo lectura, por lo que puede modificar el estado del contrato. + +### Funciones de visualización {#view-functions} + +Estas funciones no modifican el estado de los datos del contrato. Ejemplos comunes son las funciones "getter", que se pueden utilizar para recibir el saldo o balance de un usuario, por ejemplo. + +```solidity +// Ejemplo de Solidity +function balanceOf(address _owner) public view returns (uint256 _balance) { + return ownerPizzaCount[_owner]; +} +``` + +```python +dappName: public(string) + +@view +@public +def readName() -> string: + return dappName +``` + +Qué se considera modificar un estado: + +1. Escribir a variables de estado. +2. [Emisión de eventos](https://solidity.readthedocs.io/en/v0.7.0/contracts.html#events). +3. [Creando otros contratos](https://solidity.readthedocs.io/en/v0.7.0/control-structures.html#creating-contracts). +4. Usar la variable `selfdestruct`. +5. Enviae ethers mediante llamadas. +6. Llamar a cualquier función no marcada como sólo lectura `view` o `pure`. +7. Usar llamadas de bajo nivel. +8. Utilizando un ensamblaje en línea que contiene ciertos códigos de operador. + +### Constructor (funciones) {#constructor-functions} + +Las funciones `constructor` solo se ejecutan una vez cuando el contrato es implementado por primera vez. Al igual que ocurre con `constructor` en muchos otros lenguajes de programación basados en clases, estas funciones a menudo inicializan variables de estado a sus valores especificados. + +```solidity +// Ejemplo de Solidity +// Inicializa los datos del contrato, estableciendo el `propietario` +// Establece la dirección del creador del contrato +constructor() public { + // Todos los contratos inteligentes dependen de transacciones externas para activar sus funciones. + // `msg` es una variable global que incluye datos relevantes en la transacción dada, + // tales como la dirección del remitente y el valor ETH incluido en la transacción. + // Más información: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties + owner = msg.sender; +} +``` + +```python +# Ejemplo en Vyper + +@external +def __init__(_beneficiary: address, _bidding_time: uint256): + self.beneficiary = _beneficiary + self.auctionStart = block.timestamp + self.auctionEnd = self.auctionStart + _bidding_time +``` + +### Funciones integradas {#built-in-functions} + +Además de las variables y funciones que define en su contrato, hay algunas funciones especiales integradas. El ejemplo más obvio es: + +- `address.send()`: Solidity +- `send(address)` – Vyper + +Esto permite que los contratos envíen ETH a otras cuentas. + +## Funciones de escritura {#writing-functions} + +Tu función necesita: + +- parámetro de la variable y tipo de variable (si acepta parámetros) +- declaraciónde variable interna/externa +- declaración de variable de tipo pure/view/payable +- devuelve el tipo (valor, en caso de devolución) + +```solidity +pragma solidity >=0.4.0 <=0.6.0; + +contract ExampleDapp { + string dapp_name; // state variable + + // Called when the contract is deployed and initializes the value + constructor() public { + dapp_name = "My Example dapp"; + } + + // Get Function + function read_name() public view returns(string) { + return dapp_name; + } + + // Set Function + function update_name(string value) public { + dapp_name = value; + } +} +``` + +Un contrato completo podría verse así. Aquí la función `constructor` proporciona un valor inicial para la variable `dapp_name`. + +## Eventos y logs {#events-and-logs} + +Los eventos le permiten comunicarse con su contrato inteligente desde su front-end u otras aplicaciones de suscripción. Cuando se mina una transacción, los contratos inteligentes pueden emitir eventos y escribir registros en la cadena de bloques que el front-end puede procesar. + +## Ejemplos agregados {#annotated-examples} + +Estos son algunos ejemplos escritos en Solidity. Si quiere experimentar con el código, puede interactuar ellos en [Remix](http://remix.ethereum.org). + +### Hola mundo {#hello-world} + +```solidity +// Especifica la versión de Solidity, utilizando la versión semántica. +// Más información: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragmma +pragma solidity ^0.5.10; + +// Define un contrato llamado `HelloWorld`. +// Un contrato es una colección de funciones y datos (su estado). +// Una vez desplegado, un contrato reside en una dirección específica en la blockchain de Ethereum. +// Más información: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html +contract HelloWorld { + + // Declara una variable de estado `message` del tipo `string`. + // Las variables de estado son variables cuyos valores se almacenan permanentemente en el almacenamiento del contrato. + // La palabra clave `public` hace que las variables sean accesibles desde fuera de un contrato + // y crea una función que otros contratos o clientes pueden llamar para acceder al valor. + string public message; + + // Similar a muchos idiomas orientados a objetos basados en clases, un constructor es + // una función especial que sólo se ejecuta cuando se crea un contrato. + // Los constructores se utilizan para inicializar los datos del contrato. + // Más información: https://solidity.readthedocs.io/es/v0.5.10/contracts. tml#constructors + constructor(string memory initMessage) public { + // Acepta un argumento de cadena `initMessage` y establece el valor + // en la variable de almacenamiento `message` del contrato). + message = initMessage; + } + + // Una función pública que acepta un argumento de cadena + // y actualiza la variable de almacenamiento `message`. + function update(string memory newMessage) public { + message = newMessage; + } +} +``` + +### Token {#token} + +```solidity +pragma solidity ^0.5.10; + +contract Token { + // Una `dirección` es comparable a una dirección de correo electrónico - se usa para identificar una cuenta en Ethereum. + // Direcciones pueden representar un contrato inteligente o una cuenta externa (de usuario). + // Más información: https://solidity.readthedocs.io/en/v0.5.10/types.html#address + address public owner; + + // Un `mapping` es esencialmente una estructura de datos de tabla hash. + // Este `mapping` asigna un entero sin signo (el saldo del token) a una dirección (el titular del token). + // Más información: https://solidity.readthedocs.io/en/v0.5.10/types.html#mapping-types + mapping (address => uint) public balances; + + // Los eventos permiten registrar la actividad en la blockchain. + // Los clientes de Ethereum pueden escuchar eventos para reaccionar a los cambios de estado del contrato. + // Más información: https://solidity.readthedocs.io/es/v0.5.10/contracts. tml#events + event Transfer(address from, address to, uint amount); + + // Inicializa los datos del contrato establecer el `dueño` + // a la dirección del creador del contrato. + constructor() public { + // Todos los contratos inteligentes dependen de transacciones externas para activar sus funciones. + // `msg` es una variable global que incluye datos relevantes en la transacción dada, + // tales como la dirección del remitente y el valor ETH incluido en la transacción. + // Más información: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties + owner = msg.sender; + } + + // Crea una cantidad de nuevos tokens y los envía a una dirección. + function mint(address receiver, uint amount) public { + // `requiere` es una estructura de control utilizada para hacer cumplir ciertas condiciones. + // Si una instrucción `require` evalúa a `falso`, se activa una excepción, + // la cual revierte todos los cambios realizados en el estado durante la llamada actual. + // Más información: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions + + // Sólo el propietario del contrato puede llamar a esta función + require(msg.sender == owner, "You are not the owner."); + + // Impone una cantidad máxima de tokens + require(amount < 1e60, "Maximum issuance exceeded"); + + // Aumenta el saldo del `receiver` en `amount`. + balances[receiver] += amount; + } + + // Envía una cantidad de tokens existentes de cualquier llamante a una dirección. + function transfer(address receiver, uint amount) public { + // El remitente debe tener suficientes tokens para enviar + require(amount <= balances[msg.sender], "Insufficient balance."); + + // Ajusta el saldo del token de las dos direcciones + balances[msg.sender] -= amount; + balances[receiver] += amount; + + // Emite el evento definido anteriormente + emit Transfer(msg.sender, receiver, amount); + } +} +``` + +### Activo digital único {#unique-digital-asset} + +```solidity +pragma solidity ^0.5.10; + +// Importa símbolos de otros archivos al contrato actual. +// En este caso, una serie de contratos de ayuda de OpenZeppelin. +// Learn more: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#importing-other-source-files + +import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; +import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; +import "../node_modules/@openzeppelin/contracts/introspection/ERC165.sol"; +import "../node_modules/@openzeppelin/contracts/math/SafeMath.sol"; + +// The `is` keyword is used to inherit functions and keywords from external contracts. +// En este caso, `CryptoPizza` hereda de los contratos `IERC721` y `ERC165`. +// Más información: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#inheritance +contract CryptoPizza is IERC721, ERC165 { + // Utiliza la librería SafeMath de OpenZeppelin para realizar operaciones aritméticas de forma segura. + // Más información: +https://docs.openzeppelin.com/contracts/3. /api/math#SafeMath + using SafeMath for uint256; + + // Las variables de estado constantes en Solidity son similares a otros idiomas + // pero debe asignar desde una expresión que es constante en el momento de compilar. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constant-state-variables + uint256 constant dnaDigits = 10; + uint256 constant dnaModulus = 10 ** dnaDigits; + bytes4 private constant _ERC721_RECEIVED = 0x150b7a02; + + // Struct types let you define your own type + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#structs + struct Pizza { + string name; + uint256 dna; + } + + // Creates an empty array of Pizza structs + Pizza[] public pizzas; + + // Mapping from pizza ID to its owner's address + mapping(uint256 => address) public pizzaToOwner; + + // Mapping from owner's address to number of owned token + mapping(address => uint256) public ownerPizzaCount; + + // Mapping from token ID to approved address + mapping(uint256 => address) pizzaApprovals; + + // You can nest mappings, this example maps owner to operator approvals + mapping(address => mapping(address => bool)) private operatorApprovals; + + // Internal function to create a random Pizza from string (name) and DNA + function _createPizza(string memory _name, uint256 _dna) + // The `internal` keyword means this function is only visible + // within this contract and contracts that derive this contract + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#visibility-and-getters + internal + // `isUnique` is a function modifier that checks if the pizza already exists + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html#function-modifiers + isUnique(_name, _dna) + { + // Adds Pizza to array of Pizzas and get id + uint256 id = SafeMath.sub(pizzas.push(Pizza(_name, _dna)), 1); + + // Checks that Pizza owner is the same as current user + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions + + // note that address(0) is the zero address, + // indicating that pizza[id] is not yet allocated to a particular user. + + assert(pizzaToOwner[id] == address(0)); + + // Maps the Pizza to the owner + pizzaToOwner[id] = msg.sender; + ownerPizzaCount[msg.sender] = SafeMath.add( + ownerPizzaCount[msg.sender], + 1 + ); + } + + // Creates a random Pizza from string (name) + function createRandomPizza(string memory _name) public { + uint256 randDna = generateRandomDna(_name, msg.sender); + _createPizza(_name, randDna); + } + + // Generates random DNA from string (name) and address of the owner (creator) + function generateRandomDna(string memory _str, address _owner) + public + // Functions marked as `pure` promise not to read from or modify the state + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#pure-functions + pure + returns (uint256) + { + // Generates random uint from string (name) + address (owner) + uint256 rand = uint256(keccak256(abi.encodePacked(_str))) + + uint256(_owner); + rand = rand % dnaModulus; + return rand; + } + + // Returns array of Pizzas found by owner + function getPizzasByOwner(address _owner) + public + // Functions marked as `view` promise not to modify state + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#view-functions + view + returns (uint256[] memory) + { + // Uses the `memory` storage location to store values only for the + // lifecycle of this function call. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/introduction-to-smart-contracts.html#storage-memory-and-the-stack + uint256[] memory result = new uint256[](ownerPizzaCount[_owner]); + uint256 counter = 0; + for (uint256 i = 0; i < pizzas.length; i++) { + if (pizzaToOwner[i] == _owner) { + result[counter] = i; + counter++; + } + } + return result; + } + + // Transfers Pizza and ownership to other address + function transferFrom(address _from, address _to, uint256 _pizzaId) public { + require(_from != address(0) && _to != address(0), "Invalid address."); + require(_exists(_pizzaId), "Pizza does not exist."); + require(_from != _to, "Cannot transfer to the same address."); + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + + ownerPizzaCount[_to] = SafeMath.add(ownerPizzaCount[_to], 1); + ownerPizzaCount[_from] = SafeMath.sub(ownerPizzaCount[_from], 1); + pizzaToOwner[_pizzaId] = _to; + + // Emits event defined in the imported IERC721 contract + emit Transfer(_from, _to, _pizzaId); + _clearApproval(_to, _pizzaId); + } + + /** + * Safely transfers the ownership of a given token ID to another address + * If the target address is a contract, it must implement `onERC721Received`, + * which is called upon a safe transfer, and return the magic value + * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; + * otherwise, the transfer is reverted. + */ + function safeTransferFrom(address from, address to, uint256 pizzaId) + public + { + // solium-disable-next-line arg-overflow + this.safeTransferFrom(from, to, pizzaId, ""); + } + + /** + * Safely transfers the ownership of a given token ID to another address + * If the target address is a contract, it must implement `onERC721Received`, + * which is called upon a safe transfer, and return the magic value + * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; + * otherwise, the transfer is reverted. + */ + function safeTransferFrom( + address from, + address to, + uint256 pizzaId, + bytes memory _data + ) public { + this.transferFrom(from, to, pizzaId); + require(_checkOnERC721Received(from, to, pizzaId, _data), "Must implement onERC721Received."); + } + + /** + * Internal function to invoke `onERC721Received` on a target address + * The call is not executed if the target address is not a contract + */ + function _checkOnERC721Received( + address from, + address to, + uint256 pizzaId, + bytes memory _data + ) internal returns (bool) { + if (!isContract(to)) { + return true; + } + + bytes4 retval = IERC721Receiver(to).onERC721Received( + msg.sender, + from, + pizzaId, + _data + ); + return (retval == _ERC721_RECEIVED); + } + + // Burns a Pizza - destroys Token completely + // The `external` function modifier means this function is + // part of the contract interface and other contracts can call it + function burn(uint256 _pizzaId) external { + require(msg.sender != address(0), "Invalid address."); + require(_exists(_pizzaId), "Pizza does not exist."); + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + + ownerPizzaCount[msg.sender] = SafeMath.sub( + ownerPizzaCount[msg.sender], + 1 + ); + pizzaToOwner[_pizzaId] = address(0); + } + + // Returns count of Pizzas by address + function balanceOf(address _owner) public view returns (uint256 _balance) { + return ownerPizzaCount[_owner]; + } + + // Returns owner of the Pizza found by id + function ownerOf(uint256 _pizzaId) public view returns (address _owner) { + address owner = pizzaToOwner[_pizzaId]; + require(owner != address(0), "Invalid Pizza ID."); + return owner; + } + + // Approves other address to transfer ownership of Pizza + function approve(address _to, uint256 _pizzaId) public { + require(msg.sender == pizzaToOwner[_pizzaId], "Must be the Pizza owner."); + pizzaApprovals[_pizzaId] = _to; + emit Approval(msg.sender, _to, _pizzaId); + } + + // Returns approved address for specific Pizza + function getApproved(uint256 _pizzaId) + public + view + returns (address operator) + { + require(_exists(_pizzaId), "Pizza does not exist."); + return pizzaApprovals[_pizzaId]; + } + + /** + * Private function to clear current approval of a given token ID + * Reverts if the given address is not indeed the owner of the token + */ + function _clearApproval(address owner, uint256 _pizzaId) private { + require(pizzaToOwner[_pizzaId] == owner, "Must be pizza owner."); + require(_exists(_pizzaId), "Pizza does not exist."); + if (pizzaApprovals[_pizzaId] != address(0)) { + pizzaApprovals[_pizzaId] = address(0); + } + } + + /* + * Sets or unsets the approval of a given operator + * An operator is allowed to transfer all tokens of the sender on their behalf + */ + function setApprovalForAll(address to, bool approved) public { + require(to != msg.sender, "Cannot approve own address"); + operatorApprovals[msg.sender][to] = approved; + emit ApprovalForAll(msg.sender, to, approved); + } + + // Tells whether an operator is approved by a given owner + function isApprovedForAll(address owner, address operator) + public + view + returns (bool) + { + return operatorApprovals[owner][operator]; + } + + // Takes ownership of Pizza - only for approved users + function takeOwnership(uint256 _pizzaId) public { + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + address owner = this.ownerOf(_pizzaId); + this.transferFrom(owner, msg.sender, _pizzaId); + } + + // Checks if Pizza exists + function _exists(uint256 pizzaId) internal view returns (bool) { + address owner = pizzaToOwner[pizzaId]; + return owner != address(0); + } + + // Checks if address is owner or is approved to transfer Pizza + function _isApprovedOrOwner(address spender, uint256 pizzaId) + internal + view + returns (bool) + { + address owner = pizzaToOwner[pizzaId]; + // Disable solium check because of + // https://github.com/duaraghav8/Solium/issues/175 + // solium-disable-next-line operator-whitespace + return (spender == owner || + this.getApproved(pizzaId) == spender || + this.isApprovedForAll(owner, spender)); + } + + // Check if Pizza is unique and doesn't exist yet + modifier isUnique(string memory _name, uint256 _dna) { + bool result = true; + for (uint256 i = 0; i < pizzas.length; i++) { + if ( + keccak256(abi.encodePacked(pizzas[i].name)) == + keccak256(abi.encodePacked(_name)) && + pizzas[i].dna == _dna + ) { + result = false; + } + } + require(result, "Pizza with such name already exists."); + _; + } + + // Returns whether the target address is a contract + function isContract(address account) internal view returns (bool) { + uint256 size; + // Currently there is no better way to check if there is a contract in an address + // than to check the size of the code at that address. + // En https://ethereum.stackexchange.com/a/14016/36603 + // podrás consultar más detalles sobre cómo funciona esto. + // TODO Verifica esto de nuevo antes de el lanzamiento de Serenity, porque todas las direcciones serán + // contratos entonces. + // solium-disable-next-line security/no-inline-assembly + assembly { + size := extcodesize(account) + } + return size > 0; + } +} +``` + +## Leer más {#further-reading} + +Revise la documentación de Solidity y Vyper para ver una descripción más completa de los contratos inteligentes: + +- [Solidity](https://solidity.readthedocs.io/) +- [Vyper](https://vyper.readthedocs.io/) + +## Temas relacionados {#related-topics} + +- [Contratos inteligentes](/developers/docs/smart-contracts/) +- [Máquina virtual de Ethereum](/developers/docs/evm/) + +## Tutoriales relacionados {#related-tutorials} + +- [Reducir el tamaño de los contratos para luchar contra el límite de tamaño del contrato](/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/) _: Algunos consejos prácticos para reducir el tamaño de tu contrato inteligente._ +- [Registro de datos de contratos inteligentes con eventos](/developers/tutorials/logging-events-smart-contracts/) _: Una introducción a los eventos de contratos inteligentes y cómo puede utilizarlos para registrar datos._ +- [Interactuar con otros contratos de Solidity](/developers/tutorials/interact-with-other-contracts-from-solidity/)_: Cómo implementar un contrato inteligente de un contrato existente e interactuar con él._ diff --git a/src/content/translations/es/developers/docs/smart-contracts/compiling/index.md b/public/content/translations/es/developers/docs/smart-contracts/compiling/index.md similarity index 100% rename from src/content/translations/es/developers/docs/smart-contracts/compiling/index.md rename to public/content/translations/es/developers/docs/smart-contracts/compiling/index.md diff --git a/src/content/translations/es/developers/docs/smart-contracts/composability/index.md b/public/content/translations/es/developers/docs/smart-contracts/composability/index.md similarity index 100% rename from src/content/translations/es/developers/docs/smart-contracts/composability/index.md rename to public/content/translations/es/developers/docs/smart-contracts/composability/index.md diff --git a/src/content/translations/es/developers/docs/smart-contracts/deploying/index.md b/public/content/translations/es/developers/docs/smart-contracts/deploying/index.md similarity index 100% rename from src/content/translations/es/developers/docs/smart-contracts/deploying/index.md rename to public/content/translations/es/developers/docs/smart-contracts/deploying/index.md diff --git a/src/content/translations/es/developers/docs/smart-contracts/formal-verification/index.md b/public/content/translations/es/developers/docs/smart-contracts/formal-verification/index.md similarity index 100% rename from src/content/translations/es/developers/docs/smart-contracts/formal-verification/index.md rename to public/content/translations/es/developers/docs/smart-contracts/formal-verification/index.md diff --git a/src/content/translations/es/developers/docs/smart-contracts/index.md b/public/content/translations/es/developers/docs/smart-contracts/index.md similarity index 100% rename from src/content/translations/es/developers/docs/smart-contracts/index.md rename to public/content/translations/es/developers/docs/smart-contracts/index.md diff --git a/src/content/translations/es/developers/docs/smart-contracts/languages/index.md b/public/content/translations/es/developers/docs/smart-contracts/languages/index.md similarity index 100% rename from src/content/translations/es/developers/docs/smart-contracts/languages/index.md rename to public/content/translations/es/developers/docs/smart-contracts/languages/index.md diff --git a/src/content/translations/es/developers/docs/smart-contracts/libraries/index.md b/public/content/translations/es/developers/docs/smart-contracts/libraries/index.md similarity index 100% rename from src/content/translations/es/developers/docs/smart-contracts/libraries/index.md rename to public/content/translations/es/developers/docs/smart-contracts/libraries/index.md diff --git a/src/content/translations/es/developers/docs/smart-contracts/security/index.md b/public/content/translations/es/developers/docs/smart-contracts/security/index.md similarity index 100% rename from src/content/translations/es/developers/docs/smart-contracts/security/index.md rename to public/content/translations/es/developers/docs/smart-contracts/security/index.md diff --git a/src/content/translations/es/developers/docs/smart-contracts/testing/index.md b/public/content/translations/es/developers/docs/smart-contracts/testing/index.md similarity index 100% rename from src/content/translations/es/developers/docs/smart-contracts/testing/index.md rename to public/content/translations/es/developers/docs/smart-contracts/testing/index.md diff --git a/src/content/translations/es/developers/docs/smart-contracts/upgrading/index.md b/public/content/translations/es/developers/docs/smart-contracts/upgrading/index.md similarity index 100% rename from src/content/translations/es/developers/docs/smart-contracts/upgrading/index.md rename to public/content/translations/es/developers/docs/smart-contracts/upgrading/index.md diff --git a/src/content/translations/es/developers/docs/smart-contracts/verifying/index.md b/public/content/translations/es/developers/docs/smart-contracts/verifying/index.md similarity index 100% rename from src/content/translations/es/developers/docs/smart-contracts/verifying/index.md rename to public/content/translations/es/developers/docs/smart-contracts/verifying/index.md diff --git a/src/content/translations/es/developers/docs/smart-contracts/verifying/source-code-verification.svg b/public/content/translations/es/developers/docs/smart-contracts/verifying/source-code-verification.svg similarity index 100% rename from src/content/translations/es/developers/docs/smart-contracts/verifying/source-code-verification.svg rename to public/content/translations/es/developers/docs/smart-contracts/verifying/source-code-verification.svg diff --git a/src/content/translations/es/developers/docs/standards/index.md b/public/content/translations/es/developers/docs/standards/index.md similarity index 100% rename from src/content/translations/es/developers/docs/standards/index.md rename to public/content/translations/es/developers/docs/standards/index.md diff --git a/src/content/translations/es/developers/docs/standards/tokens/erc-1155/index.md b/public/content/translations/es/developers/docs/standards/tokens/erc-1155/index.md similarity index 100% rename from src/content/translations/es/developers/docs/standards/tokens/erc-1155/index.md rename to public/content/translations/es/developers/docs/standards/tokens/erc-1155/index.md diff --git a/public/content/translations/es/developers/docs/standards/tokens/erc-20/index.md b/public/content/translations/es/developers/docs/standards/tokens/erc-20/index.md new file mode 100644 index 00000000000..e02d1b51596 --- /dev/null +++ b/public/content/translations/es/developers/docs/standards/tokens/erc-20/index.md @@ -0,0 +1,149 @@ +--- +title: Estándar de token ERC-20 +description: +lang: es +--- + +## Introducción {#introduction} + +**¿Qué es un token?** + +Los tokens pueden representar cualquier elemento virtualmente en Ethereum: + +- puntos de reputación en la plataforma online +- las habilidades de un personaje en un juego +- boletos de lotería +- activos financieros como una acción en una empresa +- una moneda fiat como el USD +- un lingote de oro +- y más... + +Una característica tan poderosa de Ethereum debe ser manejada con un estándar sólido, ¿verdad? ¡Ahí es exactamente donde el ERC desempeña su papel! Este estándar permite a los desarrolladores construir aplicaciones de token que son interoperables con otros productos y servicios. + +**¿Qué es el ERC-20?** + +El ERC-20 introduce un estándar para los tokens fungibles, es decir, tienen una propiedad que hace que cada token sea exactamente igual (en tipo y valor) que otro token. Por ejemplo, un token ERC-20 actúa igual que ETH, es decir, 1 token es y siempre será igual a todos los demás tokens. + +## Requisitos previos {#prerequisites} + +- [Cuentas](/developers/docs/accounts) +- [Contratos inteligentes](/developers/docs/smart-contracts/) +- [Estándares de token](/developers/docs/standards/tokens/) + +## Cuerpo {#body} + +El ERC-20 (Ethereum Request for Comments 20), propuesto por Fabian Vogelsteller en Noviembre 2015, es un estándar de token que implementa una API para tokens dentro de contratos inteligentes. + +Ejemplos de funcionalidades que proporciona ERC-20: + +- transferir tokens de una cuenta a otra +- obtener el saldo actual de tokens de una cuenta +- obtener el siministro total del token disponible en la red +- aprobar si una cantidad de tokens de una cuenta puede gastarse con una cuenta de terceros + +Si un contrato inteligente implementa los siguientes métodos y eventos, se puede llamar un contrato de token ERC-20, y una vez implementado, será el responsable de llevar un seguimiento de los tokens creados en Ethereum. + +Desde [EIP-20](https://eips.ethereum.org/EIPS/eip-20): + +### Métodos {#methods} + +```solidity +function name() public view returns (string) +function symbol() public view returns (string) +function decimals() public view returns (uint8) +function totalSupply() public view returns (uint256) +function balanceOf(address _owner) public view returns (uint256 balance) +function transfer(address _to, uint256 _value) public returns (bool success) +function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) +function approve(address _spender, uint256 _value) public returns (bool success) +function allowance(address _owner, address _spender) public view returns (uint256 remaining) +``` + +### Eventos {#events} + +```solidity +event Transfer(address indexed _from, address indexed _to, uint256 _value) +event Approval(address indexed _owner, address indexed _spender, uint256 _value) +``` + +### Ejemplos {#web3py-example} + +Vamos a ver cómo un estándar es tan importante para que las cosas sean sencillas para que inspeccionemos cualquier contrato de token de ERC-20 en Ethereum. Sólo necesitamos la Interfaz binaria de aplicaciones de contrato (ABI) para crear una interfaz a cualquier token ER-20. Como puedes ver a continuación, usaremos una ABI simplificada, para que sea un ejemplo de fricción bajo. + +#### Ejemplo de Web3.py {#web3py-example} + +Primero asegúrate de haber instalado [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) Python library: + +``` +pip install web3 +``` + +```python +from web3 import Web3 + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI +weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # Wrapped ether (WETH) + +acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11" # Uniswap V2: DAI 2 + +# This is a simplified Contract Application Binary Interface (ABI) of an ERC-20 Token Contract. +# It will expose only the methods: balanceOf(address), decimals(), symbol() and totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'decimals', + 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +dai_contract = w3.eth.contract(address=w3.to_checksum_address(dai_token_addr), abi=simplified_abi) +symbol = dai_contract.functions.symbol().call() +decimals = dai_contract.functions.decimals().call() +totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals +addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# DAI +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) + +weth_contract = w3.eth.contract(address=w3.to_checksum_address(weth_token_addr), abi=simplified_abi) +symbol = weth_contract.functions.symbol().call() +decimals = weth_contract.functions.decimals().call() +totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals +addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# WETH +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) +``` + +## Leer más {#further-reading} + +- [EIP-20: Estándar de token ERC-20](https://eips.ethereum.org/EIPS/eip-20) +- [Tokens de OpenZeppelin](https://docs.openzeppelin.com/contracts/3.x/tokens#ERC20) +- [OpenZeppelin: Implementación de ERC-20](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) +- [Alchemy: Guía de tokens ERC20 de Solidity](https://www.alchemy.com/overviews/erc20-solidity) diff --git a/src/content/translations/es/developers/docs/standards/tokens/erc-4626/index.md b/public/content/translations/es/developers/docs/standards/tokens/erc-4626/index.md similarity index 100% rename from src/content/translations/es/developers/docs/standards/tokens/erc-4626/index.md rename to public/content/translations/es/developers/docs/standards/tokens/erc-4626/index.md diff --git a/public/content/translations/es/developers/docs/standards/tokens/erc-721/index.md b/public/content/translations/es/developers/docs/standards/tokens/erc-721/index.md new file mode 100644 index 00000000000..dd349a3f0d8 --- /dev/null +++ b/public/content/translations/es/developers/docs/standards/tokens/erc-721/index.md @@ -0,0 +1,244 @@ +--- +title: Estándar de token no fungible ERC-721 +description: +lang: es +--- + +## Introducción {#introduction} + +**¿Qué es un token no fungible o funcional?** + +Una ficha no funcional (NFT) se utiliza para identificar algo o a alguien de una manera única. Este tipo de token es perfecto para ser usado en plataformas que ofrecen artículos recolectables, acceder a llaves, boletos de lotería, asientos numerados para conciertos y partidos deportivos, etc. Este tipo especial de token tiene unas posibilidades asombrosas, por lo que merece un estándar adecuado, el ERC-721 vino a solucionarlo. + +**¿Qué es ERC-721?** + +El ERC-721 introduce una norma para NFT, en otras palabras, este tipo de ficha es único y puede tener un valor diferente que otra ficha del mismo contrato inteligente, tal vez debido a su antigüedad, rareza o incluso a algo como su visualidad. Espera, ¿visual? + +¡Sí! Todos los NFT tienen una variable `uint256` llamada `tokenId`, así para cualquier Contrato ERC-721, el par `dirección del contrato, uint256 tokenId` debe ser único globalmente. Dicho esto, una dapp puede tener un "convertidor" que utilice el `tokenId` como entrada y produzca una imagen de algo atractivo, ¡como zombies, armas, habilidades o increíbles gatitos! + +## Requisitos previos {#prerequisites} + +- [Cuentas](/developers/docs/accounts/) +- [Contratos inteligentes](/developers/docs/smart-contracts/) +- [Estándares de token](/developers/docs/standards/tokens/) + +## Cuerpo {#body} + +El ERC-721 (Ethereum Request for Comments 721), propuesto por William Entriken, Dieter Shirley, Jacob Evans, Nastassia Sachs en enero de 2018, es un Estándar de Token No Fungible que implementa una API para tokens dentro de Smart Contracts. + +Proporciona funcionalidades como transferir tokens de una cuenta a otra, para obtener el saldo actual del token de una cuenta y además del suministro total del token disponible en la red. Además de estos también tiene otras funcionalidades como aprobar que una cantidad de token de una cuenta puede ser gastada por una cuenta de terceros. + +Si un contrato inteligente implementa los siguientes métodos y eventos, se puede llamar un Contrato de Token ERC-721, y una vez desplegado será el responsable de llevar un seguimiento de los tokens creados en Ethereum. + +De [EIP-721](https://eips.ethereum.org/EIPS/eip-721): + +### Métodos {#methods} + +```solidity + function balanceOf(address _owner) external view returns (uint256); + function ownerOf(uint256 _tokenId) external view returns (address); + function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; + function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; + function transferFrom(address _from, address _to, uint256 _tokenId) external payable; + function approve(address _approved, uint256 _tokenId) external payable; + function setApprovalForAll(address _operator, bool _approved) external; + function getApproved(uint256 _tokenId) external view returns (address); + function isApprovedForAll(address _owner, address _operator) external view returns (bool); +``` + +### Eventos {#events} + +```solidity + event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); + event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); + event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); +``` + +### Ejemplos {#web3py-example} + +Vamos a ver la importancia de un estándar para que inspeccionemos fácilmente cualquier contrato de token de ERC-721 en Ethereum. Sólo necesitamos la Interfaz binaria de aplicaciones de contrato (ABI) para crear una interfaz a cualquier Token ERC-721. Como puedes ver a continuación, usaremos un ABI simplificado, para que sea un ejemplo de fricción baja. + +#### Ejemplo de Web3.py {#web3py-example} + +Primero asegúrate de haber instalado [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) Python library: + +``` +pip install web3 +``` + +```python +from web3 import Web3 +from web3._utils.events import get_event_data + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # CryptoKitties Contract + +acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # CryptoKitties Sales Auction + +# This is a simplified Contract Application Binary Interface (ABI) of an ERC-721 NFT Contract. +# It will expose only the methods: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'name', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'ownerOf', + 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, +] + +ck_extra_abi = [ + { + 'inputs': [], + 'name': 'pregnantKitties', + 'outputs': [{'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'name': '_kittyId', 'type': 'uint256'}], + 'name': 'isPregnant', + 'outputs': [{'name': '', 'type': 'bool'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +ck_contract = w3.eth.contract(address=w3.to_checksum_address(ck_token_addr), abi=simplified_abi+ck_extra_abi) +name = ck_contract.functions.name().call() +symbol = ck_contract.functions.symbol().call() +kitties_auctions = ck_contract.functions.balanceOf(acc_address).call() +print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}") + +pregnant_kitties = ck_contract.functions.pregnantKitties().call() +print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}") + +# Using the Transfer Event ABI to get info about transferred Kitties. +tx_event_abi = { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'from', 'type': 'address'}, + {'indexed': False, 'name': 'to', 'type': 'address'}, + {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'Transfer', + 'type': 'event' +} + +# We need the event's signature to filter the logs +event_signature = w3.keccak(text="Transfer(address,address,uint256)").hex() + +logs = w3.eth.get_logs({ + "fromBlock": w3.eth.block_number - 120, + "address": w3.to_checksum_address(ck_token_addr), + "topics": [event_signature] +}) + +# Notes: +# - Increase the number of blocks up from 120 if no Transfer event is returned. +# - If you didn't find any Transfer event you can also try to get a tokenId at: +# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events +# Click to expand the event's logs and copy its "tokenId" argument +recent_tx = [get_event_data(w3.codec, tx_event_abi, log)["args"] for log in logs] + +if recent_tx: + kitty_id = recent_tx[0]['tokenId'] # Paste the "tokenId" here from the link above + is_pregnant = ck_contract.functions.isPregnant(kitty_id).call() + print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}") +``` + +El contrato de CryptoKitties tiene algunos eventos interesantes aparte de los estándar. + +Revisemos dos de ellos, `Embarazada` y `Nacimiento`. + +```python +# Usar la ABI de eventos de Embarazada y Nacimiento para obtener información sobre nuevos gatitos. +ck_extra_events_abi = [ + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}], + 'name': 'Pregnant', + 'type': 'event' + }, + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'kittyId', 'type': 'uint256'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'genes', 'type': 'uint256'}], + 'name': 'Birth', + 'type': 'event' + }] + +# We need the event's signature to filter the logs +ck_event_signatures = [ + w3.keccak(text="Pregnant(address,uint256,uint256,uint256)").hex(), + w3.keccak(text="Birth(address,uint256,uint256,uint256,uint256)").hex(), +] + +# Here is a Pregnant Event: +# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog +pregnant_logs = w3.eth.get_logs({ + "fromBlock": w3.eth.block_number - 120, + "address": w3.to_checksum_address(ck_token_addr), + "topics": [ck_event_signatures[0]] +}) + +recent_pregnants = [get_event_data(w3.codec, ck_extra_events_abi[0], log)["args"] for log in pregnant_logs] + +# Here is a Birth Event: +# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a +birth_logs = w3.eth.get_logs({ + "fromBlock": w3.eth.block_number - 120, + "address": w3.to_checksum_address(ck_token_addr), + "topics": [ck_event_signatures[1]] +}) + +recent_births = [get_event_data(w3.codec, ck_extra_events_abi[1], log)["args"] for log in birth_logs] +``` + +## NFT populares {#popular-nfts} + +- [Etherscan NFT Tracker](https://etherscan.io/tokens-nft) enumera los principales NFT en Ethereum por volumen de transferencias. +- [CryptoKitties](https://www.cryptokitties.co/) es un juego centrado en criables, coleccionables y tan adorables criaturas que llamamos CryptoKitties. +- [Sorare](https://sorare.com/) es un juego de fútbol de fantasía global en el que puedes coleccionar coleccionables de ediciones limitadas, gestiona tus equipos y compite para ganar premios. +- [Ethereum Name Service (ENS)](https://ens.domains/) ofrece un Nombre en forma descentralizada de abordar los recursos tanto dentro y fuera de la cadena de bloques utilizando nombres sencillos y legibles por humanos. +- [POAP](https://poap.xyz) entrega NFT gratis a las personas que asisten a eventos o completan acciones específicas. Los POAP se pueden crear y distribuir de forma gratuita. +- [Unstoppable Domains](https://unstoppabledomains.com/) es una empresa con sede en San Francisco que crea dominios en cadenas de bloques. Los dominios de cadena de bloques reemplazan las direcciones de criptomonedas por nombres legibles por humanos y se pueden usar para habilitar sitios web resistentes a la censura. +- [Tarjetas de Gods Unchained:](https://godsunchained.com/) TCG en la cadena de bloques de Ethereum que utiliza NFT para otorgar propiedad real en los activos del juego. +- [Bored Ape Yacht Club](https://boredapeyachtclub.com) es una colección de 10.000 NFT únicos que, además de ser obras de arte de probada rareza, actúa como token de membresía del club, lo que proporciona ventajas y beneficios a los miembros que aumentan con el tiempo como resultado de los esfuerzos de la comunidad. + +## Leer más {#further-reading} + +- [EIP-721: ERC-721 Estándar de token no fungible](https://eips.ethereum.org/EIPS/eip-721) +- [OpenZeppelin: Documentos de ERC-721](https://docs.openzeppelin.com/contracts/3.x/erc721) +- [OpenZeppelin: Implementación de ERC-721](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) +- [API de NFT de Alchemy](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) diff --git a/src/content/translations/es/developers/docs/standards/tokens/erc-777/index.md b/public/content/translations/es/developers/docs/standards/tokens/erc-777/index.md similarity index 100% rename from src/content/translations/es/developers/docs/standards/tokens/erc-777/index.md rename to public/content/translations/es/developers/docs/standards/tokens/erc-777/index.md diff --git a/src/content/translations/es/developers/docs/standards/tokens/index.md b/public/content/translations/es/developers/docs/standards/tokens/index.md similarity index 100% rename from src/content/translations/es/developers/docs/standards/tokens/index.md rename to public/content/translations/es/developers/docs/standards/tokens/index.md diff --git a/src/content/translations/es/developers/docs/storage/index.md b/public/content/translations/es/developers/docs/storage/index.md similarity index 100% rename from src/content/translations/es/developers/docs/storage/index.md rename to public/content/translations/es/developers/docs/storage/index.md diff --git a/src/content/translations/es/developers/docs/transactions/gas-tx.svg b/public/content/translations/es/developers/docs/transactions/gas-tx.svg similarity index 100% rename from src/content/translations/es/developers/docs/transactions/gas-tx.svg rename to public/content/translations/es/developers/docs/transactions/gas-tx.svg diff --git a/src/content/translations/es/developers/docs/transactions/index.md b/public/content/translations/es/developers/docs/transactions/index.md similarity index 100% rename from src/content/translations/es/developers/docs/transactions/index.md rename to public/content/translations/es/developers/docs/transactions/index.md diff --git a/src/content/translations/es/developers/docs/transactions/tx.svg b/public/content/translations/es/developers/docs/transactions/tx.svg similarity index 100% rename from src/content/translations/es/developers/docs/transactions/tx.svg rename to public/content/translations/es/developers/docs/transactions/tx.svg diff --git a/src/content/translations/es/developers/docs/web2-vs-web3/index.md b/public/content/translations/es/developers/docs/web2-vs-web3/index.md similarity index 100% rename from src/content/translations/es/developers/docs/web2-vs-web3/index.md rename to public/content/translations/es/developers/docs/web2-vs-web3/index.md diff --git a/src/content/translations/es/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md b/public/content/translations/es/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md similarity index 100% rename from src/content/translations/es/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md rename to public/content/translations/es/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md diff --git a/src/content/translations/es/developers/tutorials/calling-a-smart-contract-from-javascript/index.md b/public/content/translations/es/developers/tutorials/calling-a-smart-contract-from-javascript/index.md similarity index 100% rename from src/content/translations/es/developers/tutorials/calling-a-smart-contract-from-javascript/index.md rename to public/content/translations/es/developers/tutorials/calling-a-smart-contract-from-javascript/index.md diff --git a/src/content/translations/es/developers/tutorials/hello-world-smart-contract/index.md b/public/content/translations/es/developers/tutorials/hello-world-smart-contract/index.md similarity index 100% rename from src/content/translations/es/developers/tutorials/hello-world-smart-contract/index.md rename to public/content/translations/es/developers/tutorials/hello-world-smart-contract/index.md diff --git a/src/content/translations/es/developers/tutorials/how-to-mint-an-nft/index.md b/public/content/translations/es/developers/tutorials/how-to-mint-an-nft/index.md similarity index 100% rename from src/content/translations/es/developers/tutorials/how-to-mint-an-nft/index.md rename to public/content/translations/es/developers/tutorials/how-to-mint-an-nft/index.md diff --git a/public/content/translations/es/developers/tutorials/how-to-view-nft-in-metamask/index.md b/public/content/translations/es/developers/tutorials/how-to-view-nft-in-metamask/index.md new file mode 100644 index 00000000000..29db95491bc --- /dev/null +++ b/public/content/translations/es/developers/tutorials/how-to-view-nft-in-metamask/index.md @@ -0,0 +1,38 @@ +--- +title: Cómo visualizar su NFT en su cartera (parte 3/3 de la serie de tutoriales de NFT) +description: Este tutorial explica cómo visualizar un NFT en MetaMask +author: "Sumi Mudgil" +tags: + - "NTF" + - "ERC-721" + - "Alchemy" + - "tókenes no fungibles" + - "Solidity" +skill: beginner +lang: es +published: 2021-04-22 +--- + +Este tutorial es la parte 3/3 en la serie de tutoriales NFT, donde vemos nuestros NFT recién acuñados. Sin embargo, puede utilizar el tutorial general para cualquier token ERC-721 usando MetaMask, incluso en la red principal o cualquier red de prueba. Si quiere aprender a acuñar su propio NFT en Ethereum, debería revisar la [parte 1 en Cómo escribir & desplegar un contrato inteligente NFT](/developers/tutorials/how-to-write-and-deploy-an-nft)! + +¡Enhorabuena! Ha llegado a la parte más corta y sencilla de nuestra serie de tutoriales NFT sobre cómo ver su NFT recién acuñado en una cartera virtual. Utilizaremos MetaMask para este ejemplo, ya que es lo que usamos en las dos partes anteriores. + +Como requisito previo, ya debería tener MetaMask en su móvil instalado e incluir la cuenta a la que ha acuñado su NFT: puede obtener la aplicación gratis para [iOS](https://apps.apple.com/us/app/metamask-blockchain-wallet/id1438144202) o [Android](https://play.google.com/store/apps/details?id=io.metamask&hl=en_US&gl=US). + +## Paso 1: Establecer su red en Ropsten {#set-network-to-ropsten} + +En la parte superior de la aplicación, pulse el botón «Wallet» (Cartera) después de lo cual se le pedirá que seleccione una red. Como nuestro NFT se acuñó en la red Ropsten, lo más lógico es que seleccione Ropsten como su red. + +![Cómo configurar Ropsten como su red móvil MetaMask](./goerliMetamask.gif) + +## Paso 2: Añadir su coleccionable a MetaMask {#add-nft-to-metamask} + +Una vez que esté en la red Ropsten, seleccione la pestaña «Collectibles» (Coleccionables) a la derecha y añada la dirección del contrato inteligente NFT y el identificador de token ERC-721 de su NFT, que podrá encontrar en Etherscan basándose en el hash de transacción de su NFT desplegado en la parte II de nuestro tutorial. + +![Cómo encontrar el hash de su transacción y el ID de token ERC-721](./findNFTEtherscan.png) + +Puede que necesite actualizar un par de veces la pantalla para ver su NFT, ¡pero estará ahí ! + +![Cómo subir su NFT a MetaMask](./findNFTMetamask.gif) + +¡Enhorabuena! Ha acuñado satisfactoriamente un NFT, ¡y ahora puede verlo! ¡Estamos deseando ver cómo va a arrasar en el universo NFT! diff --git a/public/content/translations/es/developers/tutorials/how-to-write-and-deploy-an-nft/index.md b/public/content/translations/es/developers/tutorials/how-to-write-and-deploy-an-nft/index.md new file mode 100644 index 00000000000..3f16fdb450a --- /dev/null +++ b/public/content/translations/es/developers/tutorials/how-to-write-and-deploy-an-nft/index.md @@ -0,0 +1,353 @@ +--- +title: Cómo escribir & y desplegar un NFT (parte 1/3 de la serie de tutoriales sobre NFT) +description: Este tutorial es la parte 1 de una serie sobre NFT que le indicará cómo escribir y desplegar un contrato inteligente de un token no fungible o NFT (ERC-721 token) paso a paso usando Ethereum y el sistema de archivos interplanetario (IPFS). +author: "Sumi Mudgil" +tags: + - "NTF" + - "ERC-721" + - "Alchemy" + - "Solidity" + - "contratos inteligentes" +skill: beginner +lang: es +published: 2021-04-22 +--- + +Los NFT ponen la cadena de bloques en el punto de mira y esto supone una excelente oportunidad para que usted le coja el tranquillo y publique su propio NFT (ERC-721 Token) en la cadena de bloques de Ethereum. + +Alchemy se enorgullece de promocionar a los protagonistas del espacio NFT, incluyendo Makersplace (que recientemente logró una venta récord de obras de arte digitales en Christie's por 69 millones de dólares), Dapper Labs (creadores de NBA Top Shot & Crypto Kitties), OpenSea (el mayor mercado de NFT del mundo), Zora, Super Rare, NFTfi, Foundation, Enjin, Origin Protocol e Immutable, entre muchos otros. + +En este tutorial, le guiaremos sobre cómo crear e implementar un contrato inteligente ERC-721 en la red de pruebas de Ropsten usando [MetaMask](https://metamask.io/), [Solidity](https://docs.soliditylang.org/en/v0.8.0/), [Hardhat](https://hardhat.org/), [Pinata](https://pinata.cloud/) y [Alchemy](https://alchemy.com/signup/eth) (no se preocupe si todo esto le suena a chino, lo iremos viendo en este tutorial). + +En la parte 2 de este tutorial, explicaremos cómo podemos utilizar nuestro contrato inteligente para acuñar un NFT, y en la parte 3 explicaremos cómo ver su NFT en MetaMask. + +Y, por supuesto, si le surge alguna duda en cualquier momento, no dude en consultar [Alchemy Discord](https://discord.gg/gWuC7zB) o visitar [los documentos de la API de NFT en Alchemy](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api)! + +## Paso 1: Conectarse a la red Ethereum {#connect-to-ethereum} + +Hay muchas maneras de hacer peticiones a la cadena de bloques Ethereum, pero para simplificarnos la vida, usaremos una cuenta gratuita en [Alchemy](https://alchemy.com/signup/eth), una plataforma de desarrollo de cadena de bloques y API que nos permite comunicarnos con la cadena Ethereum sin tener que ejecutar nuestros propios nodos. + +En este tutorial, también aprovecharemos las herramientas de desarrollo de Alchemy para monitorizar y analizar lo que está ocurriendo dentro de nuestro despliegue de contratos inteligentes. Si aún no tiene una cuenta de Alchemy, puede registrarse gratis en [aquí](https://alchemy.com/signup/eth). + +## Paso 2: Crear su aplicación (y llave API) {#make-api-key} + +Una vez que haya creado una cuenta de Alchemy, puede generar una clave de API creando una aplicación. Esto nos permitirá hacer solicitudes a la red de pruebas de Ropsten. Consulte [esta guía](https://docs.alchemyapi.io/guides/choosing-a-network) si tiene curiosidad para saber más sobre redes de pruebas. + +1. Navegue a la página «Crear App» en su tablero Alchemy pasando el cursor sobre «Apps» en la barra de navegación y haciendo clic en «Crear App». + +![Crear su app](./create-your-app.png) + +2. Dele un nombre a su aplicación (nosotros hemos elegido «My First NFT!» [Mi primer NFT]), ofrezca una descripción corta, seleccione «Staging» (Por fases) para el entorno (usado para la contabilidad de su aplicación), y elija «Ropsten» como red. + +![Configure y publíque su aplicación](./configure-and-publish-your-app.png) + +3. ¡Haga clic en «Crear app» y ya está! Su aplicación debería aparecer en la siguiente tabla. + +## Paso 3: Crear una cuenta Ethereum (dirección) {#create-eth-address} + +Necesitamos una cuenta Ethereum para enviar y recibir transacciones. Para este tutorial, usaremos MetaMask, una cartera virtual en el navegador usada para manejar la dirección de su cuenta Ethereum. Si quiere más información sobre cómo funcionan las transacciones en Ethereum, eche un vistazo a [esta página](/developers/docs/transactions/) de Ethereum Foundation. + +Puede descargar y crear una cuenta MetaMask gratis [aquí](https://metamask.io/download.html). Cuando esté creando una cuenta, o si ya tiene una cuenta, asegúrese de cambiarla a la «Ropsten Test Network» (red de pruebas de Robsten) en la parte superior derecha ( para que no tratemos con dinero real). + +![Configure Ropsten como su red](./metamask-goerli.png) + +## Paso 4: Añadir ether de un faucet {#step-4-add-ether-from-a-faucet} + +Para desarrollar nuestro contrato inteligente en la red de prueba, necesitaremos algunos ETH de prueba. Para obtener ETH, puede ir a [FaucETH](https://fauceth.komputing.org) e introducir la dirección de su cuenta Ropsten, hacer clic en «Request funds» (Solicitar fondos) y luego en «Ethereum Testnet Ropsten» (Ropsten de red de prueba de Ethereum) antes de volver a hacer clic en el botón «Request funds». Deberían aparecer ETH en su cuenta de MetaMask poco después. + +## Paso 5: Comprobar su balance {#check-balance} + +Para comprobar que nuestro balance está ahí, hagamos una solicitud de [eth_getBalance](https://docs.alchemyapi.io/alchemy/documentation/alchemy-api-reference/json-rpc#eth_getbalance)usando [la herramienta de composición de Alchemy](https://composer.alchemyapi.io?composer_state=%7B%22network%22%3A0%2C%22methodName%22%3A%22eth_getBalance%22%2C%22paramValues%22%3A%5B%22%22%2C%22latest%22%5D%7D). Esto devolverá la cantidad de ETH a nuestra cartera. Después de introducir la dirección de su cuenta de MetaMask y hacer clic en «Send Request» (Enviar Solicitud), debería ver una respuesta como esta: + + `{"jsonrpc": "2.0", "id": 0, "result": "0xde0b6b3a7640000"}` + +\*\*NOTA: Este resultado es en wei no en ETH. Wei se usa como la denominación más pequeña de ether. La conversión de wei a ETH es 1 eth = 1018 wei. Así que si convertimos 0xde0b6b3a7640000 a decimal, obtenemos 1\*1018 wei, que es igual a 1 ETH. + +¡Fiu! Nuestro dinero de prueba está ahí sano y salvo. + +## Paso 6: Iniciar nuestro proyecto {#initialize-project} + +Primero, necesitaremos crear una carpeta para nuestro proyecto. Navegue hasta su línea de comandos y teclee: + + mkdir my-nft + cd my-nft + +Ahora que estamos dentro de nuestra carpeta de proyecto, usaremos npm init para iniciar el proyecto. Si no tiene instalado npm, siga[estas instrucciones](https://docs.alchemyapi.io/alchemy/guides/alchemy-for-macs#1-install-nodejs-and-npm) (también necesitaremos [Node.js](https://nodejs.org/en/download/), así que ¡descárgueselo también!). + + npm init + +Realmente no importa la respuesta que dé a las preguntas de instalación, he aquí un ejemplo de cómo lo hicimos nosotros: + + package name: (my-nft) + version: (1.0.0) + description: My first NFT! + entry point: (index.js) + test command: + git repository: + keywords: + author: + license: (ISC) + About to write to /Users/thesuperb1/Desktop/my-nft/package.json: + + { + "name": "my-nft", + "version": "1.0.0", + "description": "My first NFT!", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC" + } + +Apruebe package.json y ¡ya puede comenzar! + +## Paso 7: Instalar [Hardhat](https://hardhat.org/getting-started/#overview) {#install-hardhat} + +Hardhat es un entorno de desarrollo para compilar, desplegar, probar y depurar su software Ethereum. Ayuda a los desarrolladores cuando construyen contratos inteligentes y dApps localmente antes de desplegarse en la cadena en vivo. + +Dentro de nuestro proyecto my-nft, ejecute: + + npm install --save-dev hardhat + +Revise esta página para más información acerca de las [intrucciones de instalación](https://hardhat.org/getting-started/#overview). + +## Paso 8: Crear proyecto Hardhat {#create-hardhat-project} + +Dentro de la carpeta de nuestro proyecto, ejecute: + + npx hardhat + +Entonces debería aparecer un mensaje de bienvenida y la opción de seleccionar lo que desea hacer. Seleccione «create an empty hardhat.config.js» (crear un hardhat.config.js vacío): + + 888 888 888 888 888 + 888 888 888 888 888 + 888 888 888 888 888 + 8888888888 8888b. 888d888 .d88888 88888b. 8888b. 888888 + 888 888 "88b 888P" d88" 888 888 "88b "88b 888 + 888 888 .d888888 888 888 888 888 888 .d888888 888 + 888 888 888 888 888 Y88b 888 888 888 888 888 Y88b. + 888 888 "Y888888 888 "Y88888 888 888 "Y888888 "Y888 + 👷 Bienvenido a Hardhat v2.0.11 👷‍ + ? ¿Qué es lo que quieres hacer? … + Create a sample project + ❯ Create an empty hardhat.config.js + Quit + +Esta acción nos creará un archivo hardhat.config.js, que es donde especificaremos todos los ajustes para nuestro proyecto (en el paso 13). + +## Paso 9: Añadir carpetas de proyecto {#add-project-folders} + +Para mantener nuestro proyecto organizado, crearemos dos nuevas carpetas. Navegue al directorio raíz de su proyecto en su línea de comandos y teclee: + + mkdir contracts + mkdir scripts + +- contratos/es donde guardaremos nuestro código de contrato inteligente NFT + +- scripts/ es donde mantendremos scripts para desplegar e interactuar con nuestro contrato inteligente + +## Paso 10: Escribir nuestro contrato {#write-contract} + +Ahora que nuestro entorno está configurado, es hora de dedicarse a cosas más emocionantes, como por ejemplo, _¡escribir nuestro código de contrato inteligente!_ + +Abra el proyecto my-nft en su editor favorito (a nosotros nos gusta [VSCode](https://code.visualstudio.com/)). Los contratos inteligentes están escritos en un lenguaje llamado Solidity que es el que utilizaremos para escribir nuestro contrato inteligente MyNFT.sol + +1. Vaya a la carpeta `contratos` y cree un nuevo archivo llamado MyNFT.sol + +2. A continuación se muestra nuestro código NFT de contrato inteligente, el cual se basa en la implementación ERC-721 de la biblioteca [OpenZeppelin](https://docs.openzeppelin.com/contracts/3.x/erc721). Copie y pegue el contenido de abajo en su archivo MyNFT.sol. + + ```solidity + //Contract based on [https://docs.openzeppelin.com/contracts/3.x/erc721](https://docs.openzeppelin.com/contracts/3.x/erc721) + // SPDX-License-Identifier: MIT + pragma solidity ^0.8.0; + + import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; + import "@openzeppelin/contracts/utils/Counters.sol"; + import "@openzeppelin/contracts/access/Ownable.sol"; + import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol"; + + contract MyNFT is ERC721URIStorage, Ownable { + using Counters for Counters.Counter; + Counters.Counter private _tokenIds; + + constructor() ERC721("MyNFT", "NFT") {} + + function mintNFT(address recipient, string memory tokenURI) + public onlyOwner + returns (uint256) + { + _tokenIds.increment(); + + uint256 newItemId = _tokenIds.current(); + _mint(recipient, newItemId); + _setTokenURI(newItemId, tokenURI); + + return newItemId; + } + } + ``` + +3. Como estamos heredando clases de la biblioteca de contratos de OpenZeppelin, en la línea de comandos, ejecute `npm install @openzeppelin/contracts` para instalar la biblioteca en nuestra carpeta. + +Entonces, ¿qué _hace_ exactamente este código? Descompongámoslo, línea por línea. + +En la parte superior de nuestro contrato inteligente, importamos tres clases de contrato inteligente de [OpenZeppelin](https://openzeppelin.com/): + +- @openzeppelin/contracts/token/ERC721/ERC721.sol contiene la implementación del estándar ERC-721, que nuestro contrato NFT heredará. (Para ser un NFT válido, su contrato inteligente debe implementar todos los métodos del estándar ERC-721.) Para obtener más información sobre las funciones ERC-721 heredadas, consulte la definición de interfaz [aquí](https://eips.ethereum.org/EIPS/eip-721). + +- @openzeppelin/contracts/utils/Counters.sol proporciona contadores que sólo pueden aumentar o disminuir un valor. Nuestro contrato inteligente utiliza un contador para hacer un seguimiento del número total de NFT acuñados y establecer el ID único en nuestro nuevo NFT. (A cada NFT acuñado usando un contrato inteligente se le debe asignar un identificador único—aquí nuestro identificador único sólo está determinado por el número total de NFT en existencia. Por ejemplo, el primer NFT que acuñamos con nuestro contrato inteligente tiene «1» por ID, nuestro segundo NFT tiene «2», etc.) + +- @openzeppelin/contracts/access/Ownable.sol establece un [control de acceso](https://docs.openzeppelin.com/contracts/3.x/access-control) en nuestro contrato inteligente, por lo que solo el propietario del contrato inteligente (usted) puede acuñar NFT. (Nota, incluir el control de acceso es totalmente una preferencia. Si quiere que alguien pueda acuñar un NFT usando su contrato inteligente, elimine la palabra «Ownable» [apropiable] en la línea 10 y «onlyOwner» [solo el propietario] en la línea 17.) + +Después de nuestras declaraciones de importación, tenemos nuestro contrato inteligente NFT personalizado, que es sorprendentemente corto — ¡sólo contiene un contador, un constructor y una sola función! Esto es gracias a nuestros contratos de OpenZeppelin heredados, los cuales implementan la mayoría de los métodos que necesitamos para crear un NFT, como `ownerOf` (dueño de) que indica el dueño del NFT, y `transferFrom` (transferir desde), que transfiere la propiedad del NFT de una cuenta a otra. + +En nuestro constructor ERC-721, notará que pasamos 2 cadenas, «MyNFT» y «NFT». La primera variable es el nombre del contrato inteligente, y la segunda es su símbolo. ¡Puede nombrar cada una de estas variables como quiera! + +Por último, tenemos nuestra función `mintNFT(address recipient, string memory tokenURI)` que nos permite acuñar un NFT. Notará que esta función toma dos variables: + +- `address recipient` especifica la dirección que recibirá su NFT recién acuñado + +- `string memory tokenURI` es una cadena que debe resolver un documento JSON que describe los metadatos de NFT. Los metadatos de un NFT es realmente lo que lo lleva a la vida, permitiéndole tener características configurables, como el nombre, descripción, imagen y otros atributos. En la parte 2 de este tutorial, describiremos cómo configurar estos metadatos. + +`mintNFT` llama a algunos métodos de la biblioteca ERC-721 heredada, y en última instancia muestra un número que representa el ID del NFT recién acuñado. + +## Paso 11: Conectar MetaMask & Alchemy a su proyecto {#connect-metamask-and-alchemy} + +Ahora que hemos creado una cartera de MetaMask, una cuenta de Alchemy y hemos escrito nuestro contrato inteligente, es hora de conectarlos a los tres. + +Cada transacción enviada desde su cartera virtual requiere una firma usando su clave privada única. Para proporcionar a nuestro programa este permiso, podemos almacenar nuestra clave privada (y la clave API de Alchemy) en un archivo de entorno. + +Si quiere ahondar sobre el envío de transacciones, consulte [este tutorial](/developers/tutorials/sending-transactions-using-web3-and-alchemy/) sobre el envío de transacciones usando web3. + +Primero, instale el paquete dotenv en el directorio de su proyecto: + + npm install dotenv --save + +Seguidamente, cree un archivo `.env` en el directorio raíz de nuestro proyecto y añádale nuestra clave privada MetaMask y HTTP Alchemy API URL. + +- Siga [estas instrucciones](https://metamask.zendesk.com/hc/en-us/articles/360015289632-How-to-Export-an-Account-Private-Key) para exportar tu clave privada desde MetaMask + +- Vea las indicaciones siguientes para obtener la URL de la API de Alchemy HTTP y cópiela en su portapapeles + +![Copie el URL de su API Alchemy](./copy-alchemy-api-url.gif) + +Su `.env` debería ser parecido a: + + API_URL="https://eth-ropsten.alchemyapi.io/v2/your-api-key" + PRIVATE_KEY="your-metamask-private-key" + +Para conectarlos a nuestro código, haremos referencia a estas variables en nuestro archivo hardhat.config.js en el paso 13. + + +¡No exponga su .env! Asegúrese de que nunca comparte ni expone su archivo .env con nadie, ya que ello conlleva revelar sus secretos. Si está haciendo un control de la versión, añada .env a un archivo gitignore. + + +## Paso 12: Instalar Ethers.js {#install-ethers} + +Ethers.js es una biblioteca que hace más fácil interactuar y hacer solicitudes a Ethereum combinando [métodos JSON-RPC estándar](/developers/docs/apis/json-rpc/) con métodos más amigables para el usuario. + +Hardhat hace que sea muy fácil integrar [plugins](https://hardhat.org/plugins/) para herramientas adicionales y una mayor funcionalidad. Aprovecharemos el [plugin de Ethers](https://hardhat.org/plugins/nomiclabs-hardhat-ethers.html) para desplegar contratos ([Ethers.js](https://github.com/ethers-io/ethers.js/) tiene algunos métodos de despliegue de contratos súper limpios). + +En el directorio de su proyecto teclee: + + npm install --save-dev @nomiclabs/hardhat-ethers ethers@^5.0.0 + +También necesitaremos ethers en nuestro hardhat.config.js en el siguiente paso. + +## Paso 13: Actualizar hardhat.config.js {#update-hardhat-config} + +Hasta el momento, hemos añadido varias dependencias y plugins, ahora necesitamos actualizar hardhat.config.js para que nuestro proyecto los reconozca. + +Actualice su hardhat.config.js para que se vea así: + + /** + * @type import('hardhat/config').HardhatUserConfig + */ + require('dotenv').config(); + require("@nomiclabs/hardhat-ethers"); + const { API_URL, PRIVATE_KEY } = process.env; + module.exports = { + solidity: "0.8.1", + defaultNetwork: "ropsten", + networks: { + hardhat: {}, + ropsten: { + url: API_URL, + accounts: [`0x${PRIVATE_KEY}`] + } + }, + } + +## Paso 14: Compilar nuestro contrato {#compile-contract} + +Para asegurarnos de que todo funciona hasta ahora, compilemos nuestro contrato. La tarea de compilación es una de las tareas de hardhat incorporadas. + +Desde la línea de comandos ejecute: + + npx hardhat compile + +Puede que reciba una advertencia sobre el identificador de licencia SPDX no proporcionado en el archivo fuente, pero no se preocupe si la recibe, ¡esperemos que todo lo demás esté correcto! Si no, siempre puede enviar un mensaje en el [discord de Alchemy](https://discord.gg/u72VCg3). + +## Paso 15: Escribir nuestro script de despliegue {#write-deploy} + +Ahora que nuestro contrato está escrito y nuestro archivo de configuración está listo, es hora de escribir nuestro script de despliegue del contrato. + +Vaya a la carpeta `scripts/` y cree un nuevo archivo llamado `deploy.js`, agregando los siguientes contenidos: + +```js +async function main() { + const MyNFT = await ethers.getContractFactory("MyNFT") + + // Start deployment, returning a promise that resolves to a contract object + const myNFT = await MyNFT.deploy() + await myNFT.deployed() + console.log("Contract deployed to address:", myNFT.address) +} + +main() + .then(() => process.exit(0)) + .catch((error) => { + console.error(error) + process.exit(1) + }) +``` + +Hardhat detalla excepcionalmente bien lo que hace cada una de estas líneas de código en su [tutorial de contratos](https://hardhat.org/tutorial/testing-contracts.html#writing-tests), aquí hemos adoptado sus explicaciones. + + const MyNFT = await ethers.getContractFactory("MyNFT"); + +Un ContractFactory en ethers.js es una abstracción utilizada para implementar nuevos contratos inteligentes, por lo que MyNFT aquí es una fábrica para las instancias de nuestro contrato NFT. Cuando se utiliza el plugin ContractFactory y las instancias de contrato del plugin de hardhat-ethers están conectadas al primer firmante por defecto. + + const myNFT = await MyNFT.deploy(); + +Ejecutar un despliegue() en un ContractFactory iniciará el despliegue y devolverá una Promesa que se resuelva a un Contrato. Este es el elemento que tiene un método para cada una de nuestras funciones de contrato inteligente. + +## Paso 16: Desplegar nuestro contrato {#deploy-contract} + +¡Ahora ya estamos listos para desplegar nuestro contrato inteligente! Navegue de nuevo a la raíz del directorio de su proyecto, y en la linea de comando ejecute: + + npx hardhat --network ropsten run scripts/deploy.js + +Debería mostrarse algo parecido a: + + Contract deployed to address: 0x81c587EB0fE773404c42c1d2666b5f557C470eED + +Si nos dirigimos al [Ropsten etherscan](https://ropsten.etherscan.io/) y buscamos la dirección de nuestro contrato deberíamos poder comprobar que se ha desplegado correctamente. Si no puede verla inmediatamente, por favor espere unos instantes, ya que puede llevar algún tiempo. La transacción tendrá un aspecto parecido a este: + +![Visualice la dirección de su transacción en Etherscan](./etherscan-sepolia-tx-details.png) + +La dirección de origen debe coincidir con la dirección de su cuenta de MetaMask y la dirección de destino dirá «Contract Creation» (Creación de contrato). Si hacemos clic en la transacción, veremos la dirección de nuestro contrato en la casilla To (para): + +![Visualice su dirección de contrato en Etherscan](./etherscan-sepoila-contract-creation.png) + +¡Síííííí! ¡Ha desplegado su primer contrato inteligente NFTen la cadena Ethereum! + +Para entender qué está pasando internamente, naveguemos a la pestaña del navegador en nuestro [panel Alchemy](https://dashboard.alchemyapi.io/explorer). Si dispone de varias aplicaciones de Alchemy, asegúrese de filtrar por aplicación y seleccione «MyNFT». + +![Ver llamadas realizadas internamente con el panel del explorador de Alchemy](./alchemy-explorer-goerli.png) + +Aquí verá un puñado de llamadas JSON-RPC que Hardhat/Ethers realizó internamente cuando ejecutamos a la función .deploy(). Dos aspectos importantes que debe tener en cuenta aquí son [eth_sendRawTransaction](/developers/docs/apis/json-rpc/#eth_sendrawtransaction), que es la solicitud de escribir nuestro contrato en la cadena Ropsten, y [eth_getTransactionByHash](/developers/docs/apis/json-rpc/#eth_gettransactionbyhash) que es una solicitud para leer información sobre nuestra transacción a partir de un hash (un patrón típico cuando realizamos transacciones). Para ahondar más sobre el envío de transacciones, consulte este tutorial en [Envío de transacciones mediante Web3](/developers/tutorials/sending-transactions-using-web3-and-alchemy/). + +Y así concluye la parte 1 de este tutorial. En la [parte 2, interactuaremos con nuestro contrato inteligente acuñando un NFT](/developers/tutorials/how-to-mint-an-nft/), y en la [parte 3 le enseñaremos a ver su NFT en su cartera de Ethereum](/developers/tutorials/how-to-view-nft-in-metamask/). diff --git a/src/content/translations/es/developers/tutorials/run-node-raspberry-pi/index.md b/public/content/translations/es/developers/tutorials/run-node-raspberry-pi/index.md similarity index 100% rename from src/content/translations/es/developers/tutorials/run-node-raspberry-pi/index.md rename to public/content/translations/es/developers/tutorials/run-node-raspberry-pi/index.md diff --git a/src/content/translations/es/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md b/public/content/translations/es/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md similarity index 100% rename from src/content/translations/es/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md rename to public/content/translations/es/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md diff --git a/src/content/translations/es/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md b/public/content/translations/es/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md similarity index 100% rename from src/content/translations/es/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md rename to public/content/translations/es/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md diff --git a/src/content/translations/es/eips/index.md b/public/content/translations/es/eips/index.md similarity index 100% rename from src/content/translations/es/eips/index.md rename to public/content/translations/es/eips/index.md diff --git a/src/content/translations/es/energy-consumption/energy_consumption_pre_post_merge.png b/public/content/translations/es/energy-consumption/energy_consumption_pre_post_merge.png similarity index 100% rename from src/content/translations/es/energy-consumption/energy_consumption_pre_post_merge.png rename to public/content/translations/es/energy-consumption/energy_consumption_pre_post_merge.png diff --git a/src/content/translations/es/energy-consumption/index.md b/public/content/translations/es/energy-consumption/index.md similarity index 100% rename from src/content/translations/es/energy-consumption/index.md rename to public/content/translations/es/energy-consumption/index.md diff --git a/src/content/translations/es/enterprise/index.md b/public/content/translations/es/enterprise/index.md similarity index 100% rename from src/content/translations/es/enterprise/index.md rename to public/content/translations/es/enterprise/index.md diff --git a/src/content/translations/es/enterprise/private-ethereum/index.md b/public/content/translations/es/enterprise/private-ethereum/index.md similarity index 100% rename from src/content/translations/es/enterprise/private-ethereum/index.md rename to public/content/translations/es/enterprise/private-ethereum/index.md diff --git a/src/content/translations/es/foundation/index.md b/public/content/translations/es/foundation/index.md similarity index 100% rename from src/content/translations/es/foundation/index.md rename to public/content/translations/es/foundation/index.md diff --git a/src/content/translations/es/glossary/index.md b/public/content/translations/es/glossary/index.md similarity index 100% rename from src/content/translations/es/glossary/index.md rename to public/content/translations/es/glossary/index.md diff --git a/src/content/translations/es/governance/index.md b/public/content/translations/es/governance/index.md similarity index 100% rename from src/content/translations/es/governance/index.md rename to public/content/translations/es/governance/index.md diff --git a/src/content/translations/es/guides/how-to-create-an-ethereum-account/index.md b/public/content/translations/es/guides/how-to-create-an-ethereum-account/index.md similarity index 100% rename from src/content/translations/es/guides/how-to-create-an-ethereum-account/index.md rename to public/content/translations/es/guides/how-to-create-an-ethereum-account/index.md diff --git a/src/content/translations/es/guides/how-to-id-scam-tokens/index.md b/public/content/translations/es/guides/how-to-id-scam-tokens/index.md similarity index 100% rename from src/content/translations/es/guides/how-to-id-scam-tokens/index.md rename to public/content/translations/es/guides/how-to-id-scam-tokens/index.md diff --git a/src/content/translations/es/guides/how-to-revoke-token-access/index.md b/public/content/translations/es/guides/how-to-revoke-token-access/index.md similarity index 100% rename from src/content/translations/es/guides/how-to-revoke-token-access/index.md rename to public/content/translations/es/guides/how-to-revoke-token-access/index.md diff --git a/src/content/translations/es/guides/how-to-swap-tokens/index.md b/public/content/translations/es/guides/how-to-swap-tokens/index.md similarity index 100% rename from src/content/translations/es/guides/how-to-swap-tokens/index.md rename to public/content/translations/es/guides/how-to-swap-tokens/index.md diff --git a/src/content/translations/es/guides/how-to-use-a-bridge/index.md b/public/content/translations/es/guides/how-to-use-a-bridge/index.md similarity index 100% rename from src/content/translations/es/guides/how-to-use-a-bridge/index.md rename to public/content/translations/es/guides/how-to-use-a-bridge/index.md diff --git a/src/content/translations/es/guides/how-to-use-a-wallet/index.md b/public/content/translations/es/guides/how-to-use-a-wallet/index.md similarity index 100% rename from src/content/translations/es/guides/how-to-use-a-wallet/index.md rename to public/content/translations/es/guides/how-to-use-a-wallet/index.md diff --git a/src/content/translations/es/guides/index.md b/public/content/translations/es/guides/index.md similarity index 100% rename from src/content/translations/es/guides/index.md rename to public/content/translations/es/guides/index.md diff --git a/public/content/translations/es/history/index.md b/public/content/translations/es/history/index.md new file mode 100644 index 00000000000..48c614d8852 --- /dev/null +++ b/public/content/translations/es/history/index.md @@ -0,0 +1,516 @@ +--- +title: Historia y bifurcaciones de Ethereum +description: Una historia de la cadena de bloques de Ethereum, que incluye los principales hitos, lanzamientos y bifurcaciones. +lang: es +sidebarDepth: 1 +--- + +# La historia de Ethereum {#the-history-of-ethereum} + +Una cronología que incluye todos los principales hitos, bifurcaciones y actualizaciones de la cadena de bloques de Ethereum. + + + +Las bifurcaciones se producen cuando es necesario realizar actualizaciones o cambios técnicos importantes en la red; suelen provenir de las [propuestas de mejora de Ethereum (o EIP)](/eips/) y cambian las «reglas» del protocolo. + +Cuando se precisan actualizaciones en un software tradicional y controlado centralmente, la empresa publica una nueva versión para el usuario final. Las cadenas de bloque funcionan de manera diferente porque no hay propiedad central. Los clientes de Ethereum deben actualizar su software para implementar las nuevas reglas establecidas en la bifurcación. Además de creadores de bloques (los mineros en el mundo de las pruebas de trabajo y los validadores en el universo de las pruebas de participación) y los nodos, deben crearse bloques y validarlos con respecto a las reglas nuevas. Más información sobre los mecanismos de consenso + +Estos cambios en las normas pueden crear una división temporal en la red. Los bloques nuevos podrían producirse de acuerdo con las reglas nuevas o con las antiguas. Normalmente las bifurcaciones se acuerdan con antelación para que los clientes adopten los cambios a la vez. Además, de este modo las bifurcaciones actualizadas se convertirán en la cadena principal. Sin embargo, en casos excepcionales, los desacuerdos con respecto a las bifurcaciones pueden provocar que la red permanezca dividida. La más notable es la creación de Ethereum Classic con la [bifurcación DAO] (#dao-fork). + + + +Vaya directamente a la información sobre algunas de las actualizaciones anteriores más importantes: [La cadena de baliza](/upgrades); [La Fusión](/roadmap/merge/); y [EIP-1559](#london) + +¿Busca futuras actualizaciones del protocolo? [Descubra las próximas actualizaciones de la hoja de ruta de Ethereum](/roadmap/). + + + +## 2023 {#2023} + +### Shanghai {#shanghai} + + + +#### Resumen {#shanghai-summary} + +La actualizacion Shangai permite retirar la participación a la capa de ejecución. Junto con la actualización Capella, habilitó los bloques para aceptar las operaciones de retirada, que permitieran a los interesados retirar sus ETH provenientes de la cadena de baliza para ejecutarlos posteriormente. + + + +
    +
  • EIP-3651: inicia la direcciónCOINBASE
  • +
  • EIP-3855: nueva instrucciónPUSH0
  • +
  • EIP-3860: código iniciación límite y contador
  • +
  • EIP-4895: notificación cadena de baliza con retiradas como operaciones
  • +
  • EIP-6049 - Deprecate SELFDESTRUCT
  • +
+ +
+ +- [Lea la especificación de la actualización Shanghai](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/shanghai.md) + +--- + +### Capella {#capella} + + + +#### Resumen {#capella-summary} + +La actualizacion Capella es la tercera actualización importante a la capa de consenso (cadena de baliza), que le permite retirar su participación. Capella se produjo de forma sincrónica a la actualización de la capa de ejecución, Shanghai, y activó la funcionalidad de retirada de participaciones. + +Esta actualización de la capa de consenso aporta a los participantes que no proporcionaron credenciales de retirada en su depósito inicial la posibilidad de hacerlo ahora. + +La actualizacion también proporciona la funcionalidad de barrido automático de la cuenta, la cual procesa constantemente cuentas validadoras para cualquier pago de recompensa disponible o retiradas completas. + +- [Más información sobre la retirada de participaciones](/staking/withdrawals/). +- [Lea la especificacion de la actualizacion Capella](https://github.com/ethereum/consensus-specs/blob/dev/specs/capella/) + + + +## 2022 {#2022} + +### Paris (La Fusión) {#paris} + + + +#### Resumen {#paris-summary} + +El paso de la cadena de bloque de la prueba de trabajo a la [dificultad total terminal](/glossary/#terminal-total-difficulty) de 58750000000000000000000 originó La Fusión. Esto ocurrió en el bloque 15537393 el 15 de septiembre de 2022, y dio comienzo a la actualización Paris en el siguiente bloque. Paris supuso la transición denominada [La Fusión](/roadmap/merge/): cuya característica principal consistió en pasar del [algoritmo de minería y lógica de consenso asociada de la](/developers/docs/consensus-mechanisms/pow) prueba de trabajo [a la prueba de participación](/developers/docs/consensus-mechanisms/pos). Paris fue en sí una actualización a los [clientes de ejecución](/developers/docs/nodes-and-clients/#execution-clients) (equivalente a Bellatrix, en la capa de consenso) que les permitió recibir instrucciones de sus clientes de consenso conectados. Esto requirió que se activara un nuevo conjunto de métodos internos de API, conocido colectivamente como [Engine API](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md). Esta fue probablemente la actualización más significativa en la historia de Ethereum desde [Homestead](#homestead)! + +- [Lea la especificación de actualización Paris](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/paris.md) + + + +
    +
  • EIP-3675: consenso de actualización a la prueba de participación
  • +
  • EIP-4399: suplanta código operativo DIFFICULTY por PREVRANDAO
  • +
+ +
+ +--- + +### Bellatrix {#bellatrix} + + + +#### Resumen {#bellatrix-summary} + +La actualización Bellatrix fue la segunda actualización programada para la [cadena de baliza](/roadmap/beacon-chain), como prepración de la cadena para [La Fusión](/roadmap/merge/). Incorpora penalizaciones del validador a sus valores completos por inactividad y recortes por malas conductas. Bellatrix también incluye una actualización de las reglas de elección de la bifurcación para preparar la cadena de cara a La Fusión y la transición del último bloque de prueba de trabajo al primer bloque de prueba de participación. Esto incluye sensibilizar a los clientes sobre la dificultad total de la terminal [](/glossary/#terminal-total-difficulty) de 58750000000000000000000. + +- [Lea las especificaciones de actualización Bellatrix](https://github.com/ethereum/consensus-specs/tree/dev/specs/bellatrix) + +--- + +### Gray Glacier {#gray-glacier} + + + +#### Resumen {#gray-glacier-summary} + +La actualización de la red Gray Glacier hizo retroceder la [bomba de dificultad](/glossary/#difficulty-bomb) tres meses. Este es el único cambio introducido en esta actualización, y es similar en naturaleza a las actualizaciones [Arrow Glacier](#arrow-glacier) y [Muir Glacier](#muir-glacier). Se han llevado a cabo cambios similares en las actualizaciones de red [Byzantium](#byzantium),[Constantinople](#constantinople) y [London](#london). + +- [EF Blog: anuncio de actualización de Gray Glacier](https://blog.ethereum.org/2022/06/16/gray-glacier-announcement/) + + + +
    +
  • EIP-5133: retrasa la bomba de dificultad hasta septiembre de 2022
  • +
+ +
+ + + +## 2021 {#2021} + +### Arrow Glacier {#arrow-glacier} + + + +#### Resumen {#arrow-glacier-summary} + +La actualización de la red Arrow Glacier hizo retroceder la [bomba de dificultad](/glossary/#difficulty-bomb) varios meses. Este es el único cambio introducido en esta actualización, y es similar en naturaleza a la actualización de [Muir Glacier](#muir-glacier). Cambios similares han sido realizados en las actualizaciones de red [Byzantium](#byzantium),[Constantinopla](#constantinople) y [Londres](#london). + +- [Blog de EF: anuncio de actualización de Arrow Glacier](https://blog.ethereum.org/2021/11/10/arrow-glacier-announcement/) +- [Ethereum Cat Herders: actualización de Arrow Glacier de Ethereum](https://medium.com/ethereum-cat-herders/ethereum-arrow-glacier-upgrade-e8d20fa4c002) + + + +
    +
  • EIP-4345: retrasa la bomba de dificultad hasta junio de 2022
  • +
+ +
+ +--- + +### Altair {#altair} + + + +#### Resumen {#altair-summary} + +La actualización Altair fue la primera programada para la [cadena de baliza](/roadmap/beacon-chain). Añadió soporte para los «comités de sincronización», permitiendo clientes ligeros y un aumento de la inactividad del validador y de las penalizaciones de recorte a medida que avanzaba el desarrollo hacia La Fusión. + +- [Lea las especificaciones de actualización Altair](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) + +#### ¡Dato curioso! {#altair-fun-fact} + +Altair fue la primera gran actualización de red que ha tenido un periodo de implementación preciso. Cada una de las actualizaciones anteriores se habían basado en un número de bloques declarados en la cadena de prueba de trabajo, donde los tiempos de bloque varían. La cadena de baliza no requiere resolución para la prueba de trabajo y, en lugar de ello, funciona en un sistema épocas basado en el tiempo, que consiste en «ranuras» de tiempo de doce segundos durante los cuales los validadores pueden proponer bloques. Por esta razón sabíamos exactamente cuándo alcanzaríamos la época 74.240 y Altair vería la luz. + +- [Tiempo del bloque](/developers/docs/blocks/#block-time) + +--- + +### London {#london} + + + +#### Resumen {#london-summary} + +La actualización London introdujo [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559), que ha transformado el mercado de las comisiones de las transacciones, junto con cambios en la forma en que se manejan los reembolsos de gas y el plan [Era de hielo](/glossary/#ice-age). + +- [¿Es desarrollador de DApps? Asegúrese de actualizar sus bibliotecas y herramientas.](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/london-ecosystem-readiness.md) +- [Lea el anuncio de Ethereum Foundation.](https://blog.ethereum.org/2021/07/15/london-mainnet-announcement/) +- [Lea la explicación de Ethereum Cat Herders.](https://medium.com/ethereum-cat-herders/london-upgrade-overview-8eccb0041b41) + + + +
    +
  • EIP-1559: mejora el sector de las comisiones de las transacciones
  • +
  • EIP-3198: devuelve el BASEFEE de un bloque
  • +
  • EIP-3529: reduces reembolsos de gas para operaciones EVM
  • +
  • EIP-3541: evita lanzar contratos que empiecen por 0xEF
  • +
  • EIP-3554: retrasa la Era de hielo hasta diciembre de 2021
  • +
+ +
+ +--- + +### Berlin {#berlin} + + + +#### Resumen {#berlin-summary} + +La actualización Berlin optimizó el coste del gas para ciertas acciones de EVM, y aumentó la compatibilidad con múltiples tipos de transacciones. + +- [Leer el anuncio de Ethereum Foundation](https://blog.ethereum.org/2021/03/08/ethereum-berlin-upgrade-announcement/) +- [Leer la explicación de Ethereum Cat Herders](https://medium.com/ethereum-cat-herders/the-berlin-upgrade-overview-2f7ad710eb80) + + + +
    +
  • EIP-2565: reduce el gasto moderado ModExp de gas
  • +
  • EIP-2718: permite mejor soporte para múltiples tipos de transacciones
  • +
  • EIP-2929: incrementos en el coste del gas para códigos operativos de acceso a estados
  • +
  • EIP-2930: añade listas de acceso opcionales
  • +
+ +
+ + + +## 2020 {#2020} + +### El origen de la cadena de baliza {#beacon-chain-genesis} + + + +#### Resumen {#beacon-chain-genesis-summary} + +La [cadena de baliza](/roadmap/beacon-chain/) necesita 16.384 depósitos de 32 ETH apostados para enviarse de forma segura. Esto sucedió el 27 de noviembre, lo que significa que la cadena de baliza comenzó a producir su cadena de bloques a partir del 1 de diciembre de 2020. Este es un importante primer paso para lograr la[ vision de Ethereum](/roadmap/vision/). + +[Leer el anuncio de Ethereum Foundation](https://blog.ethereum.org/2020/11/27/eth2-quick-update-no-21/) + + + La cadena de baliza + + +--- + +### Contrato de depósito de participación implementado {#staking-deposit-contract} + + + +#### Resumen {#deposit-contract-summary} + +El contrato de depósito de participación introdujo la [participación](/glossary/#staking) en el ecosistema de Ethereum. A pesar de ser un contrato en la [red principal](/glossary/#mainnet), ha tenido impacto directo sobre la secuenciación de lanzamiento de la [cadena de baliza](/roadmap/beacon-chain/), una importante [ actualización de Ethereum](/roadmap/). + +[Leer el anuncio de Ethereum Foundation](https://blog.ethereum.org/2020/11/04/eth2-quick-update-no-19/) + + + Staking (apostar) + + +--- + +### Muir Glacier {#muir-glacier} + + + +#### Resumen {#muir-glacier-summary} + +La bifurcación Muir Glacier introdujo un retraso en la [bomba de dificultad](/glossary/#difficulty-bomb). El aumento de la dificultad del bloque del mecanismo de consenso de la [prueba de trabajo](/developers/docs/consensus-mechanisms/pow/) amenazó con degradar la usabilidad de Ethereum, debido al incremento de los tiempos de espera para enviar transacciones y utilizar DApps. + +- [Leer el anuncio de Ethereum Foundation](https://blog.ethereum.org/2019/12/23/ethereum-muir-glacier-upgrade-announcement/) +- [Leer la explicación de Ethereum Cat Herders](https://medium.com/ethereum-cat-herders/ethereum-muir-glacier-upgrade-89b8cea5a210) + + + +
    +
  • EIP-2384: retrasa la bomba de dificultad otros 4.000.000 bloques o ~611 días.
  • +
+ +
+ + + +## 2019 {#2019} + +### Istanbul {#istanbul} + + + +#### Resumen {#istanbul-summary} + +La bifurcación de Istanbul: + +- Optimizó el coste del [gas](/glossary/#gas) de ciertas acciones en la [EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine). +- Mejoró la resistencia al ataque de denegación de servicio. +- Realizó escalabilidad de [capa 2](/developers/docs/scaling/#layer-2-scaling) basada en SNARK y STARK más eficientes. +- Habilitó Ethereum y Zcash para que interoperasen. +- Permitió que los contratos introdujeran funciones más creativas. + +[Leer el anuncio de Ethereum Foundation](https://blog.ethereum.org/2019/11/20/ethereum-istanbul-upgrade-announcement/) + + + +
    +
  • EIP-152: permite a Ethereum funcionar con una moneda que mantiene la privacidad como Zcash.
  • +
  • EIP-1108: una criptografía más barata para mejorar los costes del gas gas.
  • +
  • EIP-1344: protege a Ethereum contra ataques de repetición al añadir CHAINID opcode.
  • +
  • EIP-1884: optimiza los precios del gas para el código de operación en función del consumo.
  • +
  • EIP-2028: reduce el coste de CallData para permitir más datos en bloques, lo que es productivo para la escalabilidad de capa 2.
  • +
  • EIP-2200: otras modificaciones del precio del gas del código de operación
  • +
+ +
+ +--- + +### Constantinople {#constantinople} + + + +#### Resumen {#constantinople-summary} + +La bifurcación Constantinople: + +- Garantizó que la cadena de bloques no se congelara antes de que se implementara la [prueba de participación](#beacon-chain-genesis). +- Optimizado el costo del [gas](/glossary/#gas) de ciertas acciones en la [EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine). +- Añadió la capacidad de interactuar con direcciones que aún no se han creado. + +[Leer el anuncio de Ethereum Foundation](https://blog.ethereum.org/2019/02/22/ethereum-constantinople-st-petersburg-upgrade-announcement/) + + + +
    +
  • EIP-145: optimizó el precio del gas en función del consumo.
  • +
  • EIP-1014: le permite interactuar con direcciones que aún no se han creado.
  • +
  • EIP-1052: optimiza el coste de ciertas acciones en cadena.
  • +
  • EIP-1234: se asegura de que la cadena de bloque no lo congele'antes de la prueba.
  • +
+ +
+ + + +## 2017 {#2017} + +### Byzantium {#byzantium} + + + +#### Resumen {#byzantium-summary} + +La bifurcación de Bizantium: + +- Redujo las recompensas de [minería](/developers/docs/consensus-mechanisms/pow/mining/) de bloques de 5 a 3 ETH. +- Retrasó un año la [bomba de dificultad](/glossary/#difficulty-bomb). +- Se ha añadido la habilidad para realizar llamadas «sin cambiar de estado» a otros contratos. +- Añadió ciertos métodos de criptografía para permitir [escalabilidad de capa 2](/developers/docs/scaling/#layer-2-scaling). + +[Leer el anuncio de Ethereum Foundation](https://blog.ethereum.org/2017/10/12/byzantium-hf-announcement/) + + + +
    +
  • EIP-140: añade el código de operaciónREVERT.
  • +
  • EIP-658: campo de estado añadido a los recibos de la transacción para indicar el éxito o el fracaso.
  • +
  • EIP-196: añade curva elíptica y multiplicación escalar para permitir ZK-Snarks.
  • +
  • EIP-197: añade curva elíptica y multiplicación escalar para permitir ZK-Snarks.
  • +
  • EIP-198: permite la verificación de firmas RSA.
  • +
  • EIP-211: añade soporte para valores de retorno de longitud variable.
  • +
  • EIP-214agrega el código STATICALL , permitiendo llamadas no cambiantes de estado a otros contratos.
  • +
  • EIP-100: cambia la fórmula de ajuste de dificultad.
  • +
  • EIP-649: retrasa la bomba de dificultad 1 año y reduce la recompensa de bloques de 5 a 3 ETH.
  • +
+ +
+ + + +## 2016 {#2016} + +### Spurious Dragon {#spurious-dragon} + + + +#### Resumen {#spurious-dragon-summary} + +La bifurcación Spurious Dragon fue la segunda respuesta a los ataques de denegación de servicio (DoS) a la red (septiembre/octubre de 2016) e incluye: + +- Ajuste de los precios del código de operación para evitar futuros ataques a la red. +- Activación de la «deflación» del estado de la cadena de bloques. +- Adición de la protección contra ataques de repetición. + +[Lea el anuncio de la Fundación Ethereum](https://blog.ethereum.org/2016/11/18/hard-fork-no-4-spurious-dragon/) + + + +
    +
  • EIP-155: evita que las transacciones de una cadena Ethereum se redifundan en una cadena alternativa, por ejemplo, una transacción de red de prueba que se reproduce en la cadena principal de Ethereum.
  • +
  • EIP-160: ajusta los precios del código operativo EXP: hace más difícil ralentizar la red a través de operaciones de contrato de elevado coste computacional.
  • +
  • EIP-161: permite eliminar cuentas vacías añadidas a través de los ataques DOS.
  • +
  • EIP-170: cambia el tamaño máximo del código que un contrato en la cadena de bloques puede tener a 24.576 bytes.
  • +
+ +
+ +--- + +### Tangerine Whistle {#tangerine-whistle} + + + +#### Resumen {#tangerine-whistle-summary} + +La bifurcación Tangerine Whistle fue la primera respuesta a los ataques de denegación de servicio (DoS) a la red (septiembre/octubre de 2016) e incluyó: + +- la gestión de problemas urgentes del buen estado de la red relacionados con códigos de operación depreciados. + +[Leer el anuncio de Ethereum Foundation](https://blog.ethereum.org/2016/10/18/faq-upcoming-ethereum-hard-fork/) + + + +
    +
  • EIP-150: aumenta el coste de gas de los códigos operativos que pueden utilizarse en ataques de spam.
  • +
  • EIP-158: reduce el tamaño del estado al eliminar un gran número de cuentas vacías que se pusieron en el estado depreciados debido a fallos en versiones anteriores del protocolo Ethereum.
  • +
+ +
+ +--- + +### La bifuración DAO {#dao-fork} + + + +#### Resumen {#dao-fork-summary} + +La bifurcación DAO surgió como respuesta al [ataque de DAO de 2016](https://www.coindesk.com/learn/understanding-the-dao-attack/) donde un contrato inseguro [DAO](/glossary/#dao) fue drenando más de 3,6 millones de ETH en un hackeo. La bifurcación movió los fondos del contrato defectuoso a un [nuevo contrato](https://etherscan.io/address/0xbf4ed7b27f1d666546e30d74d50d173d20bca754) con una única función: la de retirada. Cualquiera que haya perdido fondos podría retirar 1 ETH por cada 100 tókenes DAO en sus carteras. + +Esta acción fue votada por la comunidad Ethereum. Cualquier titular de ETH pudo votar a través de una transacción en [una plataforma de votación](https://web.archive.org/web/20170620030820/http://v1.carbonvote.com/). La decisión de realizar un fork obtuvo más del 85 % de los votos. + +Algunos mineros se negaron a bifurcar porque el incidente de la DAO no era un defecto en el protocolo. Pasaron a formar [Ethereum Classic](https://ethereumclassic.org/). + +[Leer el anuncio de Ethereum Foundation](https://blog.ethereum.org/2016/07/20/hard-fork-completed/) + +--- + +### Homestead {#homestead} + + + +#### Resumen {#homestead-summary} + +Homestead: la bifurcación con perspectivas de futuro. Incluyó varios cambios de protocolo y un cambio de red que concedió a Ethereum la capacidad de hacer más actualizaciones de red. + +[Leer el anuncio de Ethereum Foundation](https://blog.ethereum.org/2016/02/29/homestead-release/) + + + +
    +
  • EIP-2: edita el proceso de creación del contrato.
  • +
  • EIP-7: añade un nuevo código operativo: DELEGATECALL
  • +
  • EIP-8: introduce los requisitos de compatibilidad futura de devp2p
  • +
+ +
+ + + +## 2015 {#2015} + +### Deshielo Frontier {#frontier-thawing} + + + +#### Resumen {#frontier-thawing-summary} + +La bifurcación de deshielo Frontier elevó el limite del [gas](/glossary/#gas) de 5.000 por [bloque](/glossary/#block) y fijó el precio por defecto en 51 [gwei](/glossary/#gwei). Esto permitió que se realizaran transacciones que requiriesen 21.000 unidades de gas. La bomba de dificultad [](/glossary/#difficulty-bomb)se introdujo para asegurar un futuro de bifurcación dura a la [prueba de participación](/glossary/#pos). + +- [Leer el anuncio de Ethereum Foundation](https://blog.ethereum.org/2015/08/04/the-thawing-frontier/) +- [Lea la actualización 1 del protocolo de Ethereum](https://blog.ethereum.org/2015/08/04/ethereum-protocol-update-1/) + +--- + +### Frontier {#frontier} + + + +#### Resumen {#frontier-summary} + +Frontier fue una implementación en vivo, pero básica, del proyecto Ethereum. Siguió a la exitosa fase de pruebas Olympic. Estaba destinada a usuarios técnicos, específicamente a desarrolladores. [Los bloques](/glossary/#block) tenían un límite de [gas](/glossary/#gas) de 5.000. Este período de «deshielo» permitió a los mineros iniciar sus operaciones y a los primeros adoptantes instalar sus clientes sin tener que «precipitarse». + +[Leer el anuncio de Ethereum Foundation](https://blog.ethereum.org/2015/07/22/frontier-is-coming-what-to-expect-and-how-to-prepare/) + + + +## 2014 {#2014} + +### Venta de ether {#ether-sale} + + + +El ether salió oficialmente a la venta durante 42 días. Podía comprarse con BTC. + +[Leer el anuncio de Ethereum Foundation](https://blog.ethereum.org/2014/07/22/launching-the-ether-sale/) + +--- + +### Protocolo publicado {#yellowpaper} + + + +El protocolo, escrito por el Dr. Gavin Wood, es una definición técnica del protocolo de Ethereum. + +[Ver el protocolo](https://github.com/ethereum/yellowpaper) + + + +## 2013 {#2013} + +### Protocolo publicado {#whitepaper} + + + +Documento introductorio, publicado en el 2013 por Vitalik Buterin, fundador de Ethereum, antes del lanzamiento del proyecto en 2015. + + + Informe + diff --git a/public/content/translations/es/nft/index.md b/public/content/translations/es/nft/index.md new file mode 100644 index 00000000000..6c8360a6152 --- /dev/null +++ b/public/content/translations/es/nft/index.md @@ -0,0 +1,94 @@ +--- +title: Tókenes no fungibles (NFT) +description: Una visión general de los NFT en Ethereum +lang: es +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: Un logotipo Eth mostrado a través de un holograma. +summaryPoint1: Una forma de representar cualquier cosa exclusiva como un activo de Ethereum. +summaryPoint2: Los NFT están otorgando más poder a los creadores de contenido que nunca. +summaryPoint3: Impulsados por contratos inteligentes en la cadena de bloques de Ethereum. +--- + +## ¿Qué son los NFT? {#what-are-nfts} + +Los NFT son tókenes individualmente únicos. Cada NFT tiene diferentes propiedades (no fungibles) y es probable que no abunde. Es distinto de tókenes como el ERC-20, en el que cada token en el conjunto es idéntico y tiene las mismas propiedades (denominadas «fungibles»). A usted no le importa saber qué billete de un dólar tiene en su cartera en concreto, ya que todos son los billetes son idénticos y valen lo mismo. Pero, _sí_ le importaría saber qué NFT en concreto posee, porque cada uno tiene propiedades individuales que lo distinguen de los demás («no fungibles»). + +El carácter único de cada NFT permite la tokenización de cosas como arte, bienes coleccionables, o incluso bienes raíces, donde cada NFT específico es único y representa algo específico que es único en el mundo real o digital. El propietario de un activo está respaldado por la cadena de bloques de Ethereum y nadie puede modificar el registro de propiedad, ni copiar ni pegar un NFT nuevo. + + + +## El Internet de los activos {#internet-of-assets} + +Los NFT y Ethereum solucionan algunos de los problemas que existen hoy en día en Internet. Visto el entorno cada vez más digital en el que nos movemos, es necesario imitar las propiedades de los objetos físicos, tales como su escasez, su singularidad y la veracidad del derecho de propiedad. de una manera que no esté controlada por una organización centralizada. Por ejemplo, con los NFT, se pueden poseer archivos musicales en mp3, siempre que no pertenezcan a la aplicación específica de música propiedad de una empresa, o ser usuario de una red social que le permita vender o intercambiar archivos musicales, y que ningún proveedor de plataformas se lo pueda quitar arbitrariamente. + +El Internet de los NFT es comparable con el Internet que la mayoría de nosotros conocemos hoy en día... + +### Una comparación {#nft-comparison} + +| Internet con NFT | Internet actual | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| ¡Usted es dueño de sus activos! Sólo usted puede venderlos o intercambiarlos. | Usted alquila un activo a alguna organización. | +| Los NFT son únicos digitalmente: no hay dos NFT iguales. | La copia de un elemento, muchas veces no se puede distinguir de la original. | +| El derecho de propiedad de un NFT está almacenado en la cadena de bloques para que cualquiera lo verifique. | Los registros con los derechos de propiedad de los objetos digitales se almacenan en servidores controlados por instituciones, y a usted no le queda otra alternativa que confiar en su palabra. | +| Los NFT son contratos inteligentes en Ethereum. Esto significa que pueden ser facilmente usados en otros contratos inteligentes y aplicaciones en Ethereum. | Las empresas con activos digitales suelen necesitar su propia infraestructura de «jardín cerrado». | +| Los creadores de contenido pueden vender su trabajo en cualquier lugar y acceder a un mercado global. | Los creadores dependen de la infraestructura y la distribución de las plataformas que usan. A menudo suelen estar sujetos a condiciones de uso y restricciones geográficas. | +| Los creadores de NFT pueden conservar los derechos de propiedad sobre sus obras, y programar derechos de autor directamente en el contrato del NFT. | Las plataformas (como los servicios de streaming de música) retienen la mayoría de las ganancias de las ventas. | + +## ¿Cómo funcionan los NFT? {#how-nfts-work} + +Como cualquier token emitido en Ethereum, los NFT se emiten mediante un contrato inteligente. El contrato inteligente se ajusta a uno de los distintos estándares de NFT que existen —los más comunes son el ERC-721 o el ERC-1155— y esto define las funciones que tiene el contrato. El contrato puede crear (acuñar) los NFT y asignarlos a un dueño específico. La propiedad del NFT viene definida dentro del contrato a través de un mapeo de trazabilidad que asigna un NFT concreto a una dirección específica. El NFT tiene un ID y suele llevar metadatos asociados, que lo convierten en un token único. + +Cuando alguien crea o acuña un NFT, lo que realmente están haciendo es ejecutar una función en el contrato inteligente que asigna ese NFT en particular a su dirección. Esta información se guarda en el almacenamiento interno del contrato que forma parte de la cadena de bloques. El creador del contrato puede incorporar la lógica adicional al contrato, por ejemplo, al limitar el número total de tókenes, o pedir derechos de autor que se le pagarán al creador cada vez que el token se transfiera. + +## ¿Para qué se usan los NFT? {#nft-use-cases} + +Los NFT se usan para muchas cosas, como por ejemplo: + +- demostrar la asistencia a un evento +- certificar que completó un curso +- definir la propiedad de artículos en un videojuego +- arte digital +- tokenización de activos del mundo real +- comprobar su identidad digital +- limitar el acceso a contenido +- venta de entradas +- crear nombres de dominio de Internet descentralizados +- usarlos como garantía en DeFi + +Tal vez usted es un artista que quiere compartir su arte a través de los NFT, sin perder el control de su propiedad intelectual ni sacrificar sus ganancias, dándoselas a intermediarios. Puede crear un nuevo contrato que especifique el número de NFT, sus propiedades y añadir un enlace a la obra de arte específica. Como artista, usted puede programar en su contrato inteligente los derechos de autor que debería recibir (por ejemplo, «transferir 5 % del precio de venta al dueño del contrato cada vez que se transfiera el NFT»). También podrá demostrar en todo momento que creó usted los NFT, al ser el propietario o la propietaria de la cartera utilizada en el contrato. Sus compradores podrán comprobar fácilmente que poseen un NFT auténtico de su colección, ya que la dirección de sus carteras estará asociada a un token en su contrato inteligente. Los pueden usar a través del ecosistema de Ethereum, confiando en su autenticidad. + +O pongamos, por ejemplo, una entrada a un evento deportivo. Al igual que el organizador de un evento puede escoger el número de entradas que va a vender, el creador de un NFT también puede decidir cuántas copias existirán. En algunos casos las copias son idénticas, como 5.000 entradas de admisión general. Algunas veces muchas copias acuñadas son muy similares, pero cada una difiere ligeramente, como una entrada con un asiento asignado. Estas se pueden comprar y vender entre pares directamente, sin tener que pasar por promotores o intermediarios de venta, porque pueden asegurarse de la autenticidad de la entrada revisando la dirección del contrato donde se crearon. + +Aquí en ethereum.org, utilizamos NFT para reconocer a las personas que han contribuido a nuestro repositorio de GitHub, su asistencia a las reuniones, e incluso tenemos nuestro NFT del nombre de nuestro dominio. Si contribuye a ethereum.org, puede reclamar un NFT POAP. Algunos eventos y encuentros de criptomonedas utilizan POAP (protocolos de prueba de asistencia) para sus entradas. [Más información sobre cómo contribuir](/contributing/#poap). + +![POAP de ethereum.org](./poap.png) + +El nombre de dominio alternativo de esta página web también funciona a través de NFT, **ethereum.eth**. Nuestra dirección `.org` está gestionada por un proveedor de sistemas de nombres de dominio (DNS), mientras que ethereum`.eth` está registrado en Ethereum a través del servicio de nombres de Ethereum (ENS). Este último es de nuestra propiedad y lo administramos nosotros mismos. [Échele un vistazo a nuestro registro de ENS](https://app.ens.domains/name/ethereum.eth) + +[Más información sobre ENS](https://app.ens.domains) + + + +### Seguridad de los NFT {#nft-security} + +La seguridad en Ethereum proviene de la prueba de participación. El sistema está diseñado para desincentivar económicamente acciones maliciosas, haciendo que Ethereum sea a prueba de manipulación y fraude. Esto es lo que hace que los NFT sean posibles. Una vez que finalice el bloque que contiene su transacción de NFT, le costaría a un atacante millones de ETH cambiarla. Cualquiera que ejecute el software Ethereum podría detectar inmediatamente una manipulación deshonesta con un NFT, y el causante recibiría una penalización económica y se le expulsaría. + +Las cuestiones de seguridad en relación a los NFT están casi siempre relacionadas con estafas de phishing, puntos flacos en los contratos inteligentes o errores de usuario (como exponer sus claves privadas sin darse cuenta), haciendo que la adopción de óptimas medidas de seguridad y la gestión de la cartera sean dos criterios fundamentales para los propietarios de NFT. + + + Más sobre seguridad + + +## Más información {#further-reading} + +- [Guía sobre NFT para principiantes](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d), _Linda Xie, enero del 2020_ +- [Rastreador EtherscanNFT](https://etherscan.io/nft-top-contracts) +- [Estándar de token ERC-721](/developers/docs/standards/tokens/erc-721/) +- [Estándar de token ERC-1155](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/public/content/translations/es/refi/index.md b/public/content/translations/es/refi/index.md new file mode 100644 index 00000000000..7422bbf8b55 --- /dev/null +++ b/public/content/translations/es/refi/index.md @@ -0,0 +1,79 @@ +--- +title: Finanzas regenerativas (ReFi) +description: Un panorama del ReFi y sus casos de uso actuales. +lang: es +template: use-cases +emoji: ":recycle:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Un sistema económico alternativo construido con principios regenerativos +summaryPoint2: Un intento de utilizar Ethereum para solucionar crisis de coordinación a escala global, como el cambio climático. +summaryPoint3: Una herramienta para escalar drásticamente activos de beneficio ecológico como créditos de carbon verificados. +--- + +## ¿Qué son las ReFi? {#what-is-refi} + +Las **Finanzas regenerativas (ReFi)** son un conjunto de herramientas e ideas construidas sobre cadenas de bloques, que buscan crear economías regenerativas, en lugar de extractivas o explotadoras. A la larga, los sistemas extractivos agotan los recursos disponibles y colapsan sin mecanismos regenerativos, carecen de resiliencia. ReFi opera con la creencia de que la creación de valor monetario debe separarse de la insostenible extracción de recursos de nuestro planeta y de nuestras comunidades. + +En cambio, el objetivo de las ReFi es solucionar problemas ambientales, comunales o sociales a través de la creación de ciclos regenerativos. Estos sistemas crean valor para los participantes, mientras que benefician simultáneamente a los ecosistemas y a las comunidades. + +Uno de los fundamentos de ReFi es el concepto de economías regenerativas, liderado por John Fullerton del [Capital Institute](https://capitalinstitute.org). Él propuso ocho principios interconectados que subyacen en la salud sistémica: + +![Ocho principios interconectados](./refi-regenerative-economy-diagram.png) + +Los proyectos de ReFi adoptan estos principios usando [contratos inteligentes](/developers/docs/smart-contracts/) y [finanzas descentralizadas (DeFi)](/defi/) por medio de aplicaciones que incentivan comportamientos regenerativos, como por ejemplo, la restauración de ecosistemas degradados y la facilitación de una colaboración a gran escala en temas globales, como el cambio climático y la pérdida de la biodiversidad. + +ReFi también se solapa con el movimiento de [Ciencia descentralizada (DeSci)](/desci/), que usa a Ethereum como a una plataforma para financiar, crear, revisar, acreditar, guardar y diseminar conocimiento científico. Las herramientas DeSci pueden ser útiles para desarrollar estándares y prácticas verificables y así implementar y supervisar actividades regenerativas como plantar árboles, extraer plástico del mar o restaurar un ecosistema degradado. + +## Tokenización de créditos de carbono {#tokenization-of-carbon-credits} + +El **[mercado voluntario de carbono (conocido en inglés como VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** es un mecanismo de financiación de proyectos que tengan un impacto positivo verificado en la emisión del carbono, ya sea a través de la reducción de las emisiones actuales, o de la eliminación de gases de efecto invernadero que ya se hayan emitido a la atmósfera. Estos proyectos reciben un activo llamado «crédito de carbono» después de que hayan sido verificados, el cual pueden vender a personas y a organizaciones que quieran apoyar la causa climática. + +Además del VCM, también hay varios sectores de carbono de mandato gubernamental (denominados, sectores de cumplimiento) que pretenden establecer un precio del carbono a través de leyes y normativas con jurisdicción local (p. ej., país o región), controlando la asignación de permisos de distribución. Los mercados de cumplimiento incentivan a los contaminadores dentro de su jurisdicción a reducir las emisiones, pero ellos no son capaces de eliminar los gases de efecto invernadero que ya hayan sido emitidos. + +A pesar de su desarrollo en las recientes décadas, el VCM continúa padeciendo una variedad de problemas: + +1. Liquidez altamente fragmentada +2. Mecanismos de transacciones opacas +3. Tarifas altas +4. Velocidad de comercio muy lenta +5. Falta de escalabilidad + +Pasar del VCM al nuevo mercado digital de carbono (DCM) ** basado en bloque de cadenas ** puede ser una oportunidad para actualizar la tecnología existente y así validar, transaccionar y consumir créditos de carbono. Las cadenas de bloques permiten comprobar públicamente la información, dan acceso a un amplio número de usuarios y que haya más liquidez. + +Los proyectos de ReFi emplean tecnología de cadena de bloques para aliviar los numerosos problemas del mercado tradicional: + +- ** La liquidez se concentra en un número pequeño de reservas (fondos) de liquidez** que cualquiera puede comercializar libremente. Corporaciones, así como también usuarios individuales pueden usar estas reservas sin un manual de búsqueda para vendedores/compradores, comisiones de participación o registro previo. +- **Todas las transacciones se registran en cadenas de bloques públicas**. La ruta que cada crédito de carbono toma debido a la actividad comercial tiene trazabilidad desde el momento en que se pone a disposición en el DCM. +- **La velocidad de transacción es casi instantánea**. Asegurar grandes cantidades de créditos de carbono a través mercados tradicionales puede llevar días, si no semanas, sin embargo esto se puede lograr en unos segundos en el DCM. +- **Actividad de comercialización ocurre sin ningún intermediario**, que cobra tarifas altas. Los créditos de carbono digital representan un [ una mejora del coste del 62 %, comparado con el equivalente de créditos tradicionales](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne), de acuerdo con los datos de una empresa de analítica. +- **El DCM es escalable** y puede cumplir las demandas de los individuos y empresas multinacionales por igual. + +### Componentes clave del DCM {#key-components-dcm} + +Los cuatro componentes mayores que conforman el panorama actual del DCM son: + +1. Registros como [Verra](https://verra.org/project/vcs-program/registry-system/) y [ Gold Standard](https://www.goldstandard.org/) se aseguran de que los proyectos que crean créditos de carbono sean fiables. Estos también operan las bases de datos en las que se originan los créditos digitales de carbono y donde estos pueden transferirse o utilizarse (retirarse). + +Hay una nueva ola de proyectos innovadores que se están construyendo en las cadenas de bloques, que están intentando alterar la incumbencia en este sector. + +2. También conocidos como puentes de carbono, los tokenizadores, proporcionan la tecnología que representa o transfiere los créditos de carbono de registros tradicionales al DCM. Ejemplos notables incluyen [Protocolo de Toucan](https://toucan.earth/),[C3](https://c3.app/), y [Moss.Earth](https://moss.earth/). +3. Servicios integrados a favor del medio ambiente ofrecen créditos de anulación y/o eliminación de emisiones de carbono a los consumidores, para que ellos puedan reclamar los beneficios ambientales de un crédito y así apoyar la causa climática con el resto del mundo. + +Algunos como [Klima Infinity](https://www.klimadao.finance/infinity) y [Senken](https://senken.io/) ofrecen una amplia variedad de proyectos desarrollados por terceras personas y emitidos bajo estándares ya establecidos como el Verra; otros como [Nori](https://nori.com/) solo ofrecen proyectos específicos bajo su propio estándar de créditos de carbono, los que ellos mismos emiten y para los que tienen una plataforma intermediaria dedicada. + +4. La infraestructura y los cauces subyacentes que facilitan la escalabilidad del impacto y la eficiencia de toda la cadena de suministros del mercado de carbono. [KlimaDAO](http://klimadao.finance/) suministra liquidez como bien público (permitiendo que cualquier persona pueda comprar o vender créditos de carbono a un precio transparente), incentiva el crecimiento del rendimiento de los mercados de carbono y retiradas con recompensas, y ofrece herramientas fáciles de usar e interoperables para que el usuario pueda acceder a datos relacionados, así como adquirir y retirar una gran variedad de créditos de carbono tokenizados. + +## ReFi más allá de los mercados de carbono {#refi-beyond} + +Aunque hay actualmente un gran énfasis en los mercados de carbono en general y en pasar del VCM al DCM en particular dentro del espacio, el término «ReFi» no está estrictamente limitado al carbono. Se pueden desarrollar y tokenizar otros activos ambientales más alla de los créditos de carbono, lo que significaría que a otras consecuencias negativas también se les podría poner un precio dentro de las capas bases de futuros sistemas económicos. Aún más, el aspecto regenerativo de este modelo económico puede aplicarse a otras áreas, como a la financiación de bienes públicos a través de plataformas de financiación cuadrática como [Gitcoin](https://gitcoin.co/). Las organizaciones que están construidas sobre la idea de participación abierta y distribución equitativa de recursos empoderan a todos a canalizar el dinero hacia proyectos de código abierto, así también como hacia proyectos de enfoque educacional, ambiental y comunitario. + +Al alejar el rumbo del capital de las prácticas extractivas y redirigirlo hacia un flujo regenerativo, los proyectos y empresas ―que proporcionan beneficios sociales, ambientales y comunales, y que podrían no obtener fondos a través de finanzas tradicionales― pueden despegar y generar consecuencias positivas para la sociedad mucho más rápida y fácilmente. Pasar a este modelo de financiación también abre la puerta a sistemas económicos mucho más inclusivos, donde personas de todas las áreas demográficas pueden ser participantes activos en lugar de ser solo meros observadores pasivos. ReFi ofrece una visión de Ethereum como mecanismo para la acción coordinada en contra de los desafíos existenciales a los que se enfrenta nuestra especie y toda vida en nuestro planeta, como la capa base de un nuevo paradigma económico, permitiendo un futuro más inclusivo y sostenible por siglos venideros. + +## Bibliografía para saber más sobre las ReFi + +- [Un panorama general detallado de las monedas y activos de carbono y su lugar en la economía](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) +- [«El ministerio del futuro», una novela que muestra el papel de una moneda respaldada por carbono en su lucha contra el cambio climático.](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) +- [Un informe detallado por el grupo de trabajo sobre la optimización de los mercados voluntarios de carbono (VCM).](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) +- [Entrada sobre las ReFi en el glosario de CoinMarketCap de Kevin Owocki y Evan Miyazono](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/es/roadmap/account-abstraction/index.md b/public/content/translations/es/roadmap/account-abstraction/index.md similarity index 100% rename from src/content/translations/es/roadmap/account-abstraction/index.md rename to public/content/translations/es/roadmap/account-abstraction/index.md diff --git a/public/content/translations/es/roadmap/beacon-chain/index.md b/public/content/translations/es/roadmap/beacon-chain/index.md new file mode 100644 index 00000000000..3d533c2c5de --- /dev/null +++ b/public/content/translations/es/roadmap/beacon-chain/index.md @@ -0,0 +1,75 @@ +--- +title: La cadena de baliza +description: "Descubra todo lo relacionado con la cadena de baliza: la actualización que introdujo la prueba de participación en Ethereum." +lang: es +template: upgrade +image: /upgrades/core.png +alt: +summaryPoint1: La cadena de baliza ha introducido la prueba de participación en el ecosistema de Ethereum. +summaryPoint2: Se fusionó con la cadena de prueba de trabajo original de Ethereum en septiembre de 2022. +summaryPoint3: La cadena de baliza introdujo la lógica de consenso y bloqueó el protocolo de cotilleo que ahora asegura Ethereum. +--- + + + La cadena de baliza enviada el 1 de diciembre de 2020 formalizó la prueba de participación como mecanismo de consenso de Ethereum con la actualización a La Fusión el 15 de septiembre de 2022. + + +## ¿Qué es la cadena de baliza? {#what-is-the-beacon-chain} + +La cadena de baliza es el nombre original de la cadena de bloques de la prueba de participación que fue lanzada en 2020. Fue creada para mostrar que la lógica de consenso de la prueba de participación era segura y sostenible, antes de habilitarla en la red principal de Ethereum. Por esta razón, estuvo funcionando paralelamente con la prueba de trabajo de Ethereum. La Cadena de Baliza fue una cadena de bloques 'vacios', pero al cambiar a prueba de trabajo y al cambiar a prueba de participación en Ethereum requiere instrucciones a la Cadena de Baliza para aceptar data de transacciones de clientes de ejecución, juntarlos en bloques y después organizarlos en la cadena de bloques usando un mecanismo de consenso usando una base prueba de participación. Al mismo tiempo, los clientes originales de Ethereum apagaron su minería, propagación de bloques y lógica de consenso, confiándolo todo a la cadena de baliza. A este evento se le denominó [La Fusión](/roadmap/merge/). Una vez producida La Fusión, ya no había dos cadenas de bloques. En lugar de ello, solo había una prueba de participación en Ethereum, que ahora requiere dos clientes diferentes por nodo. La cadena de baliza es ahora la capa de consenso, una red entre pares de clientes de consenso que maneja el bloque de intercambio de información y la lógica de consenso, mientras que los clientes originales forman la capa de ejecución, que es la responsable del intercambio de información y de la ejecución de transacciones, y de la gestión del estado de Ethereum. Las dos capas pueden comunicarse entre sí usando Engine API. + +## ¿Qué hace la cadena de baliza? {#what-does-the-beacon-chain-do} + +Cadena de baliza es el nombre que se le ha dado a un libro mayor de cuentas que dirigía y coordinaba la red de [participantes](/staking/) de Ethereum antes de que esos participantes comenzaran a validar bloques reales de Ethereum. No procesa transacciones ni maneja interacciones de contratos inteligentes, porque eso se esta haciendo a través de la capa de ejecución. La cadena de baliza es responsable de cosas como la gestión de bloques y certificaciones, de la ejecución del algoritmo de bifurcación y de la gestión de recompensas y penalizaciones. Lea más en nuestra [página de arquitectura de nodos](/developers/docs/nodes-and-clients/node-architecture/#node-comparison). + +## El impacto de la cadena de baliza {#beacon-chain-features} + +### Introducción a la participación {#introducing-staking} + +La cadena de baliza introdujo la [prueba de participación](/developers/docs/consensus-mechanisms/pos/) en Ethereum. Esta mantiene la seguridad de Ethereum y permite a los validadores obtener más ETH en el proceso. En la práctica, la participación supone comprometer ETH para poder activar el software de validación. Como participante, se encargará de ejecutar el software que crea y valida los nuevos bloques de la cadena. + +La participación cumple un propósito similar al que solía realizar la [minería](/developers/docs/mining/), pero con muchas diferencias entre ambos. La minería requería de una inversión inicial significativa destinada a la adquisición de un productivo hardware y a cubrir los gastos de consumo energético, lo que derivó en economías de escala y en la promoción de la centralización. La minería tampoco requería la retención de activos colaterales, lo que limitaba los alcances del protocolo a castigar las acciones incorrectas solo tras un ataque. + +La transición de Ethereum a la prueba de participación hace que la red sea significativamente más segura y descentralizada en comparación con la prueba de trabajo. Cuantas más personas participan en la red, más descentralizada y menos segura frente a ataques se vuelve. + +Y usando la prueba de participación como un mecanismo de consenso es un componente fundamental para [la seguridad, respecto al medio ambiente y la escalabilidad de Ethereum que tenemos ahora](/roadmap/vision/). + + + Si le interesa convertirse en validador y contribuir con la seguridad de Ethereum, obtenga más información sobre la participación. + + +### Preparación para la fragmentación {#setting-up-for-sharding} + +Al producirse la fusión entre la cadena de baliza y la red principal de Ethereum, la comunidad de Ethereum comenzó a interesarse por la escalabilidad de la red. + +La prueba de participación ofrece las ventajas de contar con un registro de todos los productores de bloques aprobados en cualquier período de tiempo, todos ellos con ETH en participación. Este registro establece el escenario para la posibilidad de «dividir y vencer», pero determina de manera precisa la derivación de responsabilidades de la red. + +Esta responsabilidad se diferencia de la responsabilidad de la prueba de trabajo, en donde los mineros no tenían obligaciones con la red, quienes podían detener la minería y desactivar el software del nodo permanentemente sin que esto tuviera repercusiones. Tampoco existía un registro de quién proponía los bloques, por lo que no había forma de dividir apropiadamente las responsabilidades de la red. + +[Más sobre la fragmentación](/roadmap/danksharding/) + +## Relación entre actualizaciones {#relationship-between-upgrades} + +Las actualizaciones de Ethereum están interrelacionadas de alguna manera. Por tanto y a modo de recapitulación, veamos cómo la cadena de baliza influye en otras actualizaciones. + +### La cadena de baliza y La Fusión {#merge-and-beacon-chain} + +En sus comienzos, la cadena de baliza existía de manera independiente a la red principal de Ethereum, pero se fusionaron en 2022. + + + La Fusión + + +### Los fragmentos y la cadena de baliza {#shards-and-beacon-chain} + +La fragmentación solo podría implementarse en el ecosistema de Ethereum de manera segura a través del mecanismo de consenso de la prueba de participación. La cadena de baliza introdujo apuestas, que se «fusionaron» con la red principal, allanando el camino para la fragmentación y así contribuir a una mayor escalabilidad de Ethereum. + + + Cadenas de fragmentos + + +## Más información + +- [Más sobre las futuras actualizaciones de Ethereum](/roadmap/vision) +- [Más sobre arquitectura de nodos](/developers/docs/nodes-and-clients/node-architecture) +- [Más sobre la prueba de participación](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/es/roadmap/danksharding/index.md b/public/content/translations/es/roadmap/danksharding/index.md similarity index 100% rename from src/content/translations/es/roadmap/danksharding/index.md rename to public/content/translations/es/roadmap/danksharding/index.md diff --git a/public/content/translations/es/roadmap/future-proofing/index.md b/public/content/translations/es/roadmap/future-proofing/index.md new file mode 100644 index 00000000000..c30cbe3b047 --- /dev/null +++ b/public/content/translations/es/roadmap/future-proofing/index.md @@ -0,0 +1,38 @@ +--- +title: Ethereum garantía futura +description: Estas actualizaciones consolidan a Ethereum como el fundamento descentralizado y resiliente del futuro, en todas sus formas. +lang: es +image: /roadmap/roadmap-future.png +alt: "Hoja de ruta de Ethereum" +template: roadmap +--- + +Algunas partes de la hoja de ruta no son obligatorias para escalar o asegurar a Ethereum a corto plazo, pero preparan la estabilidad y fiabilidad de Ethereum en el futuro. + +## Resistencia cuántica {#quantum-resistance} + +Parte de la criptografía que asegura el presente de Ethereum se alterará cuando la computación cuántica se haga realidad. Aunque es probable que la computación cuántica esté a décadas de distancia de ser una amenaza genuina para la criptografía moderna, Ethereum se está construyendo para ser segura por los siglos de los siglos. Esto significa hacer a [Ethereum cuántico resistente](https://consensys.net/blog/developers/how-will-quantum-supremacy-affect-blockchain/) tan pronto como sea posible. + +El desafío al que se enfrentan los desarrolladores de Ethereum es que el protocolo actual de prueba de participación se base en una estrategia de firmas muy eficiente conocida como BLS para añadir votos en bloques válidos. Las computadoras cuánticas son capaces de descodificar esta estrategia de firmas, no obstante, las alternativas cuántico-resistentes no son tan eficientes. + +Las [estrategias comprometidas «KZG»](/roadmap/danksharding/#what-is-kzg) que Ethereum utiliza en múltiples ocasiones para generar secretos criptográficos tienen vulnerabilidad cuántica. Actualmente, esto se evita usando «configuraciones seguras» en las que muchos usuarios generan una aleatoriedad a la que las computadoras cuánticas no pueden aplicar ingeniería inversa. De cualquier forma, la solución idónea sería incorporar simplemente criptografía cuántica segura. Hay dos enfoques principales que podrían convertirse en sustituciones eficientes de las estrategias BLS: [el basado en STARK](https://hackmd.io/@vbuterin/stark_aggregation) y [el basado en redes](https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-lattice-encryption-326ac66e3175) de firmas. Se siguen investigando y elaborando prototipos. + + Lea acerca de KZG y las configuraciones seguras + +## Ethereum más simple y eficiente {#simpler-more-efficient-ethereum} + +La complejidad crea oportunidades para errores o vulnerabilidades que los intrusos pueden explotar. En consecuencia, parte de la hoja de ruta está simplificando Ethereum y eliminando el código que ha estado pendiente de varias actualizaciones, pero que ya no se necesita o que ahora puede mejorarse. A los desarrolladores les resulta más sencillo y dinámico mantener y razonar una base de código. + +Se realizarán múltiples actualizaciones a la [Máquina Virtual de Ethereum (EVM)](/developers/docs/evm) para hacerla más simple y eficiente. Estas incluyen [eliminar el código operativo AUTODESTRUCTOR](https://hackmd.io/@vbuterin/selfdestruct): un comando rara vez usado que no se necesita más y que, en algunas circunstancias, puede llegar a ser peligroso, especialmente si se combina con otras actualizaciones futuras del modelo de almacenamiento de Ethereum. Los clientes de Ethereum aún apoyan algunos tipos de transacciones antiguas que ahora pueden eliminarse completamente. La forma en que se calcula el gas también se puede mejorar y se pueden implementar métodos más eficientes para la aritmética que respalda ciertas operaciones criptográficas. + +Igualmente, hay actualizaciones que pueden hacerse en otras áreas para los clientes actuales de Ethereum. Un ejemplo es que la ejecución actual y los clientes de consenso usan un tipo diferente de comprensión de la información. Será mucho más fácil e intuitivo compartir datos entre clientes si la estrategia de compresión está unificada en toda la red. + +## Progreso actual {#current-progress} + +La mayoría de las actualizaciones requeridas para la garantía futura de Ethereum están aún en fase de investigación y su implementación aún puede tardar varios años. Actualizaciones como eliminar SELF-DESTRUCT y armonizar la estrategia de comprensión usada en la ejecución y en los clientes de consenso probablemente lleguen antes que la criptografía cuántica resistente. + +**Más información** + +- [Gas](/developers/docs/gas) +- [EVM](/developers/docs/evm) +- [Estructura de datos](/developers/docs/data-structures-and-encoding) diff --git a/public/content/translations/es/roadmap/index.md b/public/content/translations/es/roadmap/index.md new file mode 100644 index 00000000000..9d6b5047687 --- /dev/null +++ b/public/content/translations/es/roadmap/index.md @@ -0,0 +1,117 @@ +--- +title: Hoja de ruta de Ethereum +description: El camino hacia una mayor escalabilidad, seguridad y sostenibilidad para Ethereum. +lang: es +template: roadmap +image: /roadmap/roadmap-main.png +alt: "Hoja de ruta de Ethereum" +summaryPoints: +buttons: + - label: Actualizaciones futuras + toId: "¿Qué cambios están pendientes?" + - label: Actualizaciones anteriores + to: /history/ + variant: borrador +--- + +Ethereum ya es una plataforma poderosa para la coordinación global, pero aún se está mejorando. Un conjunto ambicioso de mejoras actualizará Ethereum de su forma actual a una plataforma de máxima resiliencia a escala completa. Estas actualizaciones se establecen en la hoja de ruta de Ethereum. + +**Para obtener más información sobre las actualizaciones anteriores de Ethereum, visite nuestra página [Historia](/history/)** + +## ¿Qué cambios le esperan a Ethereum? {#what-changes-are-coming} + +La hoja de ruta de Ethereum describe las mejoras específicas que se harán en el protocolo en el futuro. En general, la hoja de ruta traerá los siguientes beneficios a los usuarios de Ethereum: + + + + + + + + +## ¿Por qué Ethereum necesita una hoja de ruta? {#why-does-ethereum-need-a-roadmap} + +Ethereum se actualiza periódciamente para mejorar su escalabilidad, seguridad o sostenibilidad. Uno de los principales puntos fuertes de Ethereum es la adaptación a medida que surgen nuevas ideas de la investigación y el desarrollo. La adaptabilidad le da a Ethereum la flexibilidad para hacer frente a los desafíos emergentes y mantenerse al día con los avances tecnológicos más avanzados. + + + +La hoja de ruta es principalmente el resultado de años de trabajo de investigadores y desarrolladores, dado que el protocolo es muy técnico. No obstante cualquier persona motivada puede participar. Las ideas suelen comenzar como debates en un foro como [ethresear.ch](https://ethresear.ch/), [Ethereum magicians](https://www.figma.com/exit?url=https%3A%2F%2Fethereum-magicians.org%2F) o en el servidor de Discord de EthR&D. Pueden haber respuestas a nuevos puntos flacos que se descubren, sugerencias de organizaciones que trabajan en la capa de aplicaciones (como DApps e intercambios) o disuasiones conocidas para los usuarios finales (como costes o velocidades de transacción). Cuando estas ideas maduren, se pueden proponer como [propuestas de mejora de Ethereum o EIP] (https://eips.ethereum.org/). Todo esto se hace en público para que cualquier persona de la comunidad pueda intervenir en cualquier momento. + +[Más información sobre la gobernanza de Ethereum](/gobernanza/) + + + + +

¿Qué era ETH2?

+ +

El término Eth2 se usaba comúnmente para describir el futuro de Ethereum antes del cambio a la prueba de participación, pero se eliminó gradualmente a favor de una terminología más precisa.Originalmente se usó para diferenciar la red Ethereum antes del cambio a la prueba de participación y la red después, o a veces para referirse a los diferentes clientes de Ethereum (los clientes de ejecución a veces se denominaban clientes ETH1 y los clientes de consenso a veces se denominaban clientes ETH2).

+ +
+ +## ¿Cambiará la hoja de ruta de Ethereum con el tiempo? {#will-ethereums-roadmap-change-over-time} + +Sí, casi seguro que sí. La hoja de ruta es el plan actual para actualizar Ethereum, que cubre los planes a corto plazo y futuros. Esperamos que la hoja de ruta cambie a medida que se disponga de nueva información y tecnología. + +Piense en la hoja de ruta de Ethereum como un conjunto de intenciones para mejorar Ethereum; es la mejor hipótesis de los principales investigadores y desarrolladores sobre el camino más óptimo de Ethereum. + +## ¿Cuándo terminará la hoja de ruta? {#when-will-the-roadmap-be-finished} + +Ethereum implementará algunas actualizaciones en los próximos seis meses (por ejemplo, retiradas de participación); otras tienen una prioridad más baja y es probable que no se implementen durante los próximos 5-10 años (por ejemplo, la resistencia cuántica). Dar un tiempo preciso de cada actualización es complicado de predecir, ya que muchos elementos de la hoja de ruta se trabajan en paralelo y se desarrollan a diferentes velocidades. La urgencia de una actualización también puede cambiar con el tiempo dependiendo de factores externos (por ejemplo, un salto repentino en el rendimiento y la disponibilidad de los ordenadores cuánticos puede hacer que la criptografía resistente a los cuánticos sea más urgente). + +Una forma de pensar en el desarrollo de Ethereum es por analogía con la evolución biológica. Es más probable que una red que sea capaz de adaptarse a los nuevos desafíos y mantener la aptitud tenga más éxito que la resistente al cambio, aunque a medida que la red se vuelve cada vez más eficiente, escalable y segura, se requerirán menos cambios en el protocolo. + +## ¿Tengo que hacer algo cuando haya una actualización? {#do-i-have-to-do-anything-when-there-is-an-upgrade} + +Las actualizaciones tienden a no afectar a los usuarios finales, excepto al proporcionar mejores experiencias de usuario y un protocolo más seguro y tal vez más opciones sobre cómo interactuar con Ethereum. Los usos finales no están obligados a participar activamente en una actualización, ni están obligados a hacer nada para asegurar sus activos. Los operadores de nodos tendrán que actualizar sus clientes de cara a una actualización. Algunas actualizaciones pueden provocar cambios para los desarrolladores de aplicaciones. Por ejemplo, las actualizaciones de caducidad del historial pueden llevar a los desarrolladores de aplicaciones a obtener datos históricos de nuevas fuentes. + +## ¿Y qué pasa con The Verge, The Splurge, etc? {#what-about-the-verge-splurge-etc} + +[Vitalik Buterin propusó una visión para la hoja de ruta de Ethereum](https://twitter.com/VitalikButerin/status/1588669782471368704) que estaba organizada en varias categorías vinculadas por sus efectos a la arquitectura de Ethereum. Incluía: + +- The Merge: actualizaciones relacionadas con el cambio de prueba de trabajo a prueba de participación +- The Surge: actualizaciones relacionadas con la escalabilidad mediante acumulaciones y fragmentación de datos. +- The Scourge: mejoras relacionadas con la resistencia a la censura, la descentralización y los riesgos de protocolo de MEV. +- The Verge: actualizaciones relacionadas con la verificación de bloques más fácilmente. +- The Purge: actualizaciones relacionadas con la reducción de los costes computacionales de la ejecución de los nodos y la simplificación del protocolo. +- The Splurge: otras actualizaciones que no encajan bien en las categorías anteriores. + +Decidimos no usar esta terminología porque queríamos usar un modelo más simple y centrado en el usuario. Aunque utilizamos un lenguaje centrado en el usuario, la visión sigue siendo la misma que la propuesta por Vitalik. + +## ¿Qué pasa con la fragmentación? {#what-about-sharding} + +La fragmentación está dividiendo la cadena de bloques de Ethereum para que los subconjuntos de validadores solo sean responsables de una fracción del total de datos. Originalmente, esta iba a ser la forma de escalar Ethereum. Sin embargo, las acumulaciones de la capa 2 se han desarrollado mucho más rápido de lo esperado y ya han proporcionado mucha escalabilidad, y proporcionarán mucha más después de que se implemente ProtoDanksharding. Esto significa que ya no se necesitan «cadenas fragmentadas» y se han eliminado de la hoja de ruta. + +## ¿Busca actualizaciones técnicas específicas? {#looking-for-specific-technical-upgrades} + +- [Danksharding](/roadmap/danksharding): Danksharding hace que las acumulaciones de capa 2 sean mucho más baratas para los usuarios al añadir «masas» de datos a los bloques de Ethereum. +- [Retiradas de participación](/staking/withdrawals): la actualización de Shanghai/Capella posibilitó las retiradas de participación en Ethereum, lo que permitió a las personas desbloquear su ETH en participación. +- [Finalidad de una sola ranura](/roadmap/single-slot-finality): en lugar de esperar quince minutos, los bloques podrían proponerse y finalizarse en la misma ranura. Esto resulta más práctico para las aplicaciones y mucho más difícil de atacar. +- [Separación entre proponentes y constructores](/roadmap/pbs): dividir las tareas de construcción de bloques y propuestas de bloques entre validadores separados crea una forma más justa, más resistente a la censura y eficiente para que Ethereum llegue a un consenso. +- [Eleccion de líder secreto](/roadmap/secret-leader-election): se puede utilizar una criptografía inteligente para garantizar que la identidad del actual proponente de bloques no se haga pública, protegiéndolos de ciertos tipos de ataques. +- [Abstracción de cuenta](/roadmap/account-abstraction): la abstracción de cuenta es una clase de actualización que admite carteras de contratos inteligentes de forma nativa en Ethereum, en lugar de tener que usar middleware complejo. +- [Árboles de Verkle](/roadmap/verkle-trees): los árboles de Verkle son una estructura de datos que se puede utilizar para habilitar clientes sin estado en Ethereum. Estos clientes «sin estado» requerirán una pequeña cantidad de espacio de almacenamiento, pero aún así podrán verificar nuevos bloques. +- [Sin estado](/roadmap/statelessness): los clientes sin estado podrán verificar nuevos bloques sin tener que almacenar grandes cantidades de datos. Esto proporcionará todos los beneficios de ejecutar un nodo con solo una pequeña fracción de los costes actuales. diff --git a/public/content/translations/es/roadmap/merge/index.md b/public/content/translations/es/roadmap/merge/index.md new file mode 100644 index 00000000000..6b7c92a67d4 --- /dev/null +++ b/public/content/translations/es/roadmap/merge/index.md @@ -0,0 +1,229 @@ +--- +title: La Fusión +description: Conozca más sobre La Fusión y sobre cuándo la red principal de Ethereum implementará la prueba de participación. +lang: es +template: upgrade +image: /upgrades/merge.png +alt: +summaryPoint1: La red principal de Ethereum usa prueba de participación, pero esto no fue siempre el caso. +summaryPoint2: La actualización del mecanismo original de prueba de trabajo a prueba de participación se denominó «La fusión». +summaryPoint3: La Fusión se refiere a la fusión original de la red principal de Ethereum con una cadena de bloques de prueba de participación independiente llamada la cadena de bloques, que ahora existe como una cadena. +summaryPoint4: La Fusión reduce el consumo de energía de Ethereum en un ~99.95%. +--- + + + La Fusión se ejecutó el 15 de septiembre de 2022. Esto completó la transición de Ethereum al consenso de prueba de participación, dejando de lado oficialmente la prueba de trabajo y reduciendo el consumo de energía en un ~99,95%. + + +## ¿Qué es La Fusión? {#what-is-the-merge} + +La fusión fue la unión de la capa de ejecución inicial de Ethereum (la red principal que ha existido desde el [génesis](/history/#frontier)) con su nueva capa de consenso de prueba de participación, la cadena de baliza. Eliminó la necesidad de la minería conun consumo intensivo de energía y, en su lugar, permitió asegurar la red utilizando ETH apostados. Es un paso verdaderamente emocionante para hacer la visión de Ethereum una realidad: más escalabilidad, seguridad y sostenibilidad. + + + +Inicialmente, la [cadena de baliza](/roadmap/beacon-chain/) se lanzó de manera separada de la [red principal](/glossary/#mainnet). La red principal de Ethereum, con todas sus cuentas, balances, contratos inteligentes y estado de la cadena de bloques, continúa siendo asegurdad por el mecanismo de [prueba de participación](/developers/docs/consensus-mechanisms/pow/), incluso cuando la cadena de baliza se ejecuta en paralelo usando la [prueba de participación](/developers/docs/consensus-mechanisms/pos/). La Fusión se produce cuando estos dos sistemas finalmente se unen, siendo la prueba de trabajo permanentemente remplazada por la prueba de participación. + +Imagina que Ethereum es una nave espacial que es lanzada antes de estar lista para un viaje interestelar. Con la cadena de baliza, la comunidad construyó un nuevo motor y un chasis más fuerte. Después de muchas pruebas, casi ha llegado el momento de cambiar el nuevo motor por el antiguo en pleno vuelo. De este modo, el nuevo motor, más eficiente, se integrará en la nave existente, preparada para recorrer grandes distancias y conquistar el universo. + +## Acoplamiento con la red principal {#merging-with-mainnet} + +Prueba de trabajo aseguraba la red principal de Ethereum desde sus orígenes hasta La Fusión. Esto permitió que la cadena de bloques de Ethereum que todos usamos se creara en julio de 2015 con todas sus características familiares: transacciones, contratos inteligentes, cuentas, etc. + +A lo largo de la historia de Ethereum, los desarrolladores han trabajado duro para preparar una eventual transición del algoritmo de consenso prueba de trabajo a prueba de participación. El 1 de diciembre de 2020 se creó la cadena de baliza, que desde entonces existe como una cadena de bloques independiente de la red principal, funcionando en paralelo. + +La cadena de baliza no ha estado procesando las transacciones de la red principal. En su lugar, ha ido consensuando su propio estado de acuerdo con los validadores activos y los saldos de sus cuentas. Tras numerosas pruebas, ha llegado el momento de que la cadena de baliza alcance el consenso con datos reales. Tras La Fusión, la cadena de baliza se convierte en el motor de consenso para todos los datos de la red, incluyendo las transacciones de capa de ejecución y los balances de cuenta. + +La Fusión representa la transición oficial al uso de la cadena de baliza como el mecanismo de producción de bloques. El minado deja de ser el mecanismo de producción de bloques válidos. En lugar de ello, los validadores de la prueba de participación han asumido este rol y ahora son los responsables de procesar la validez de todas transacciones y de proponer nuevos bloques. + +El historial no se ha perdido tras La Fusión. Ya que la red principal se fusionó con la cadena de baliza, también se produjo una fusión de todo el historial de transacciones de Ethereum. + + +Esta transición a la prueba de participación ha cambiado la forma en la que se emiten Ethers. Más información sobre la emisión de ether antes y después de La Fusión. + + +### Usuarios y titulares {#users-holders} + +**La Fusión no cambió nada para los titulares/usuarios.** + +_Es necesario repetirlo_: Como usuarios o titulares de ETH o cualquier otro activo digital de Ethereum, así como aquellos participantes que no operan en nodos, **no es necesario realizar ninguna acción relacionada con sus fondos, cartera o cuenta para La Fusión.** ETH sigue siendo ETH. No existirán tales cosas como «old ETH»/«new ETH» ni «ETH1»/«ETH2». Las carteras seguirán funcionando exactamente igual que como lo hacían antes de La Fusión. Las personas que sugieran lo contrario, probablemente sean estafadores. + +A pesar de intercambiar la prueba de trabajo y transicionar a la prueba de participación, el historial completo de Ethereum se mantiene intacto y sin alteraciones desde su creación. Todos los fondos que tengas en tu cartera antes de La Fusión siguen siendo accesibles después de la misma. **No se requiere ninguna actualización por su parte.** + +[Más información sobre la seguridad de Ethereum](/security/#eth2-token-scam) + +### Operadores de nodos y desarrolladores de DApps {#node-operators-dapp-developers} + + + +Las principales medidas son las siguientes: + +1. Ejecutar un cliente de consenso _both_ y un cliente de ejecución; las terminales de terceros para obtener datos de ejecución ya no funcionarán después de La Fusión. +2. Se autenticarán tanto el cliente de ejecución como el de consenso al compartir un JWT secreto que les permite comunicarse entre sí. +3. Establecer una dirección «receptora de la comisión» para recibir las propinas de las comosiones de transacciones ganadas/MEV. + +Si no se completan los dos puntos anteriores, el nodo se verá como «desconectado» hasta que ambas capas estén sincronizadas y autenticadas. + +Si no se establece un «receptor de las comisiones», el validador seguirá comportandose como de costumbre, pero se perderán las propinas de las comisiones no consumidas y cualquier MEV que se hubiera ganado en los bloques que propone el validador. + + + + +Hasta el momento de La Fusión, un cliente de ejecución (como Geth, Erigon, Besu o Nethermind) era suficiente para recibir, validar y propagar los bloques divulgados por la red principal. _Tras La Fusión_, la validez de las transacciones contenidas en las cargas de ejecución ahora también dependerán de la validación del «bloque de consenso» que estas contienen. + +Como resultado de ello, un nodo completo de Ethereum ahora requiere tanto de un cliente de ejecución como de un cliente de consenso. Estos dos clientes trabajan juntos utilizando una nueva Engine API. La Engine API requiere la autenticación mediante un JWT secreto, que se proporciona a ambos clientes permitiendo una comunicación segura. + +Las acciones clave incluyen: + +- La instalación de un cliente de consenso adicional al cliente de ejecución. +- La autenticación de los clientes de ejecución y consenso con un JWT secreto compartido para permitir que estos se comuniquen entre sí de manera segura. + +Si no se completan los pasos anteriores, su nodo aparecerá como «desconectado» hasta que ambas capas estén sincronizadas y autenticadas. + + + + + +La Fusión vino con cambios en el consenso, que también incluye cambios relacionados con:< + +
    +
  • estructura de bloque
  • +
  • secuenciación de bloques/ranuras
  • +
  • cambios en el código operativo
  • +
  • fuentes de aleatoriedad en cadena
  • +
  • concepto de cabeza segura y bloques finalizados
  • +
+ +Para obtener más información, eche un vistazo a esta publicación en el blog de Tim Beiko sobre Cómo afecta La Fusión a la capa de aplicación de Ethereum. + +
+ +## La Fusión y el consumo de energía {#merge-and-energy} + +La Fusión pone fin a la prueba de trabajo de Ethereum, dando paso al inicio de una era con un Ethereum más sostenible y ecológico. El consumo de energía de Ethereum se redujo en un 99,95% aproximadamente, haciendo de Ethereum una cadena de bloques ecológica. Más información sobre [el consumo de energía de Ethereum](/energy-consumption/). + +## La Fusión y la fragmentación {#merge-and-scaling} + +La Fusión coloca a Ethereum en una nueva fase de actualizaciones escalables que no podrían realizarse bajo el mecanismo de prueba de trabajo, lo que permite que Ethereum dé un paso importante en la consecución de los objetivos de escalabilidad, seguridad y sustentabilidad contenidos en la [Visión de Ethereum](/roadmap/vision/). + +## Conceptos erróneos sobre La Fusión {#misconceptions} + + + +Hay dos tipos de nodos en Ethereum: los que pueden proponer bloques y los que no. + +Los nodos que proponen bloques son solo un pequeño número total de todos los nodos de Ethereum. Esta categoría incluye los nodos mineros bajo prueba de trabajo (PoW) y los nodos validadores bajo prueba de participación (PoS). Esta categoría requiere comprometer recursos económicos (como el poder de hash de la GPU en una prueba de trabajo o ETH depositado en prueba de participación) a cambio de poder proponer ocasionalmente el siguiente bloque y ganar recompensas del protocolo. + +Los demás nodos de la red (es decir, la mayoría) no necesitan comprometer ningún recurso económico más allá de un ordenador de consumo con 1-2 TB de almacenamiento disponible y una conexión a Internet. Estos nodos no proponen bloques, pero siguen desempeñando un papel fundamental en la seguridad de la red, al tener un registro de todos los nodos que sí proponen bloques analizando la inclusión de nuevos y verificando su validez a su llegada, de acuerdo con las reglas de consenso de la red. Si el bloque es válido, el nodo continúa propagándolo por la red. Si el bloque no es válido por cualquier motivo, el software del nodo lo ignorará como no válido y detendrá su propagación. + +Cualquier persona bajo cualquier mecanismo de consenso (prueba de trabajo o prueba de participación) puede ejecutar un nodo que no produzca bloques; se recomienda encarecidamente para todos los usuarios si tienen los medios. Ejecutar un nodo es inmensamente valioso para Ethereum y aporta beneficios adicionales a cualquier persona que ejecute uno, como la mejora de la seguridad, la privacidad y la resistencia a la censura. + +La capacidad de cualquier persona tiene de ejecutar su propio nodo es absolutamente esencial para mantener la descentralización de la red Ethereum. + +Más información sobre cómo ejecutar su propio nodo. + + + + + +Las tarifas de gas son producto de la demanda de la red en relación con la capacidad de la misma. La Fusión dejó obsoleto el uso del mecanismo de prueba de trabajo, permitiendo la transición a la prueba de participación para el consenso, pero no cambió de manera significativa ninguno de los parámetros que influyen de manera directa la capacidad o rendimiento de la red. + +Con una hoja de ruta centrada en las acumulaciones, los esfuerzos se están centrando en escalar la actividad del usuario en la capa 2, al tiempo que se le permite la red principal de la capa 1 ser una capa de liquidación descentralizada segura optimizada para el almacenamiento de datos de la acumulación y así ayudar a hacer que las transacciones sean exponencialmente más baratas. La transición a la prueba de participación es un precursor fundamental para conseguirlo. Más información sobre el gas y las tarifas. + + + + +La «velocidad» de una transacción puede medirse de varias maneras, incluyendo el tiempo de inclusión en un bloque y el tiempo de finalización. Ambas cosas cambian ligeramente, aunque no de forma perceptible para los usuarios. + +Históricamente, en la prueba de trabajo, el objetivo era tener un nuevo bloque cada ~13,3 segundos. Con la prueba de participación, los intervalos ocurren cada 12 segundos, y cada uno de ellos constituye una oportunidad para que el validador publique un bloque. La mayoría de las ranuras tienen bloques, aunque no necesariamente todos (por ejemplo , un validador está desconectado). Con la prueba de participación, los bloques se producen con más de 10 % de frecuencia en comparación con la prueba de trabajo. Esto es un cambio relativamente insignificante, con pocas probabilidades de ser percibido por los usuarios. + +La prueba de participación introduce el concepto de finalidad de la transacción que no existía anteriormente. Con la prueba de trabajo, la posibilidad de revertir un bloque se hace exponencialmente más difícil, con cada bloque aprobado siendo minado como complemento de la transacción, aunque nunca suele llegar a cero. En la prueba de participación, los bloques se agrupan en épocas (periodos de tiempo de 6,4 minutos que contienen 32 oportunidades para los bloques) que los validadores votan. Cuando termina una época, los validadores votan si la consideran «justificada». Si los validadores están de acuerdo en justificarla, se finaliza en la siguiente. Deshacer las transacciones finalizadas es económicamente inviable ya que requeriría obtener y quemar más de un tercio del total de ETH depositado. + + + + + +Inicialmente, después de La Fusión, los participantes solo podían acceder a las propinas de tarifas y MEV que se ganaban como resultado de las propuestas de bloques. Estas recompensas se acreditan a una cuenta sin participación controlada por el validador (conocida como el destinatario de la tarifa), y están disponibles de inmediato. Estas recompensas están separadas de las recompensas del protocolo para realizar las tareas de validación. + +Desde la mejora de la red Shanghai/Capella, los participantes pueden designar una dirección de retirada para comenzar a recibir pagos automáticos de cualquier saldo en exceso (más de 32 ETH por recompensas del protocolo). Esta actualización también permitió a los validadores desbloquear y reclamar el total de su saldo al salir de la red. + +Más información sobre la retirada de participaciones. + + + + +Desde que la actualización Shanghai/Capella activó las retiradas, los validadores tienen el incentivo de retirar su saldo excedente de participación por encima de los 32 ETH, pues estos fondos no suman al rendimiento y sólo están bloqueados. Dependiendo de la tasa efectiva anual (o APR, según sus siglas en inglés), que viene determinada por el total de ETH depositado, se puede animar a su(s) validadores a reclamar todo su saldo o potencialmente apostar aún más usando sus recompensas para ganar más rendimiento. + +Un detalle importante que cabe recalcar es que el ritmo de las salidas de un validador total las limita el protocolo, y sólo puede salir cierto número de validadores por época (cada 6,4 minutos). Este límite fluctúa dependiendo del número de validadores activos, pero llega a aproximadamente el 0,33 % del total de ETH en participación que puede salir de la red en un solo día. + +Esto evita un éxodo masivo de fondos en participación. Además, evita que un potencial atacante con acceso a una gran parte del total de ETH en participación actúe de mala fe y que se pueda recortar/retirar todo el saldo del validador causante en la misma época, antes de que el protocolo pueda hacer cumplir la penalización mediante recorte. + +La APR también es intencionalmente dinámica, lo que permite a un mercado de participantes equilibrar cuánto están dispuestos a que se les pague para ayudar a proteger la red. Si la tasa es muy baja, los validadores se retirarán a un ritmo limitado por el protocolo. Poco a poco, esto aumentará la APR para todos los que se queden, atrayendo a nuevos participantes o a los que regresen. + + +## ¿Qué pasó con «Eth2»? {#eth2} + +El término «Eth2» ha quedado obsoleto. Al fusionar Eth1 y Eth2 en una sola cadena, no hay necesidad de distinguir entre dos redes de Ethereum; es solo Ethereum. + +Para evitar mayor confusión, la comunidad ha actualizado estos términos: + +- «Eth1» es ahora la«capa de ejecución», que se encarga de las transacciones y ejecución. +- «Eth2» ahora es la «capa de consenso», que maneja el consenso de prueba de participación. + +Estas actualizaciones de terminología solo cambian la nomenclatura, no alteran los objetivos ni el itinerario de Ethereum. + +[Más información acerca del cambio de nombre a «Eth2»](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) + +## Relación entre actualizaciones {#relationship-between-upgrades} + +Las actualizaciones de Ethereum están interrelacionadas de alguna manera. Recapitulemos pues, sobre cómo se relaciona La Fusión con otras actualizaciones. + +### La Fusión y la cadena de baliza {#merge-and-beacon-chain} + +La Fusión representa la adopción formal de la cadena de baliza como la nueva capa de consenso de la capa de ejecución original de la red principal. Desde La Fusión, se asignan validadores para proteger la red principal de Ethereum y el minado de la [prueba de trabajo](/developers/docs/consensus-mechanisms/pow/) deja de ser el medio válido para la producción de bloques. + +En su lugar, los bloques serán propuestos desde un nodo validado que tenga ETH apostados a cambio del derecho de participar en el consenso. Estas actualizaciones sientan las bases para futuras mejoras de escalabilidad, incluida la fragmentación. + + + La cadena de baliza + + +### La Fusión y actualización Shanghai {#merge-and-shanghai} + +Con la intención de simplificar y maximizar los esfuerzos centrados en una transición fructífera a la prueba de participación, la actualización de La Fusión no incluirá algunas características previamente anticipadas, como la posibilidad de retirar ETH apostados. Esta funcionalidad se habilitó de forma separada con la actualización Shanghai/Capella. + +Aquellos que quieran saber más, pueden ver la charla [Lo que ocurrirá después de La Fusión](https://youtu.be/7ggwLccuN5s?t=101), que dio Vitalik, en el evento ETHGlobal en abril de 2021. + +### La fusión y la fragmentación {#merge-and-data-sharding} + +Originalmente, el plan era trabajar en la fragmentación antes de La Fusión para abordar la escalabilidad. No obstante, con la proliferación de las [soluciones escalables de capa 2](/layer-2/), las prioridades se reorientaron a pasar de prueba de trabajo a prueba de participación. + +Los planes de fragmentación están evolucionando rápidamente, pero dado el auge y el éxito de las tecnologías de capa 2 para escalar la ejecución de transacciones, los planes de fragmentación han pasado a buscar la forma más óptima de distribuir la carga de almacenar los datos comprimidos de las llamadas procedentes de las acumulaciones, permitiendo un crecimiento exponencial de la capacidad de la red. Esto no sería posible sin pasar primero a la prueba de participación. + + + Fragmentación + + +## Más información {#further-reading} + + + + diff --git a/src/content/translations/es/roadmap/merge/issuance/index.md b/public/content/translations/es/roadmap/merge/issuance/index.md similarity index 100% rename from src/content/translations/es/roadmap/merge/issuance/index.md rename to public/content/translations/es/roadmap/merge/issuance/index.md diff --git a/src/content/translations/es/roadmap/pbs/index.md b/public/content/translations/es/roadmap/pbs/index.md similarity index 100% rename from src/content/translations/es/roadmap/pbs/index.md rename to public/content/translations/es/roadmap/pbs/index.md diff --git a/public/content/translations/es/roadmap/scaling/index.md b/public/content/translations/es/roadmap/scaling/index.md new file mode 100644 index 00000000000..803a1fe7dbd --- /dev/null +++ b/public/content/translations/es/roadmap/scaling/index.md @@ -0,0 +1,47 @@ +--- +title: Escalar en Ethereum +description: Las acumulaciones agrupan transacciones en lotes y lo hacen fuera de la cadena, reduciendo costes para el usuario. Sin embargo, la forma en que las acumulaciones gestionan los datos es muy cara en estos momentos, limitando con ello la posibilidad de tener transacciones baratas. Proto-anksharing se encarga de solucionarlo. +lang: es +image: /roadmap/roadmap-transactions.png +alt: "Hoja de ruta de Ethereum" +template: roadmap +--- + +Ethereum escala utilizando las [capas 2](/layer-2/#rollups)(también conocidas como acumulaciones o «rollups»), que agrupan transacciones y envían el resultado a Ethereum. Aunque las acumulaciones son hasta ocho veces más baratas que la red principal de Ethereum, es posible optimizarlas aún más para reducir costes para los usuarios finales. Las acumulaciones dependen de algunos componentes centralizados que los desarrolladores podrán eliminar en la medida en que dichas acumulaciones maduren. + + +
    +
  • Actualmente las acumulaciones son ~3-8x más baratas que la capa 1 de Ethereum
  • +
  • Las acumulaciones ZK pronto reducirán un ~40-100 las tarifas.
  • +
  • Los próximos cambios en Ethereum traerán un incremento de ~100-1.000 en escalabilidad.
  • +
  • Los usuarios deberían beneficiarse con transacciones que cuesten menos de 0,001 USD.
  • +
+
+ +## Abaratar los datos {#making-data-cheaper} + +Las acumulaciones agrupan un gran número de transacciones, las ejecutan y envían los resultados a Ethereum. Esto genera una gran cantidad de datos que necesitan estar disponibles para todos, de forma que cualquiera pueda ejecutar las transacciones por sí mismo y verificar que el operador de la acumulación ha actuado con honestidad. Si alguien encuentra una discrepancia, puede denunciarla. + +### ProtoDanksharding {#proto-danksharding} + +Los datos de las acumulaciones se almacenan en Ethereum de forma permanente, lo que tiene un coste elevado. Más del 90 % del coste de la transacción que los usuarios pagan en las acumulaciones se debe a este almacenamiento de datos. Para reducir los costes de las transacciones, podemos trasladar los datos a un nuevo almacenamiento temporal masivo. Las masas de datos son más baratas, ya que no son permanentes; se eliminan de Ethereum una vez que ya no se necesitan. Almacenar datos de las acumulaciones a largo plazo se convierte en una responsabilidad de las personas que los necesitan, como los operadores de acumulación, los intercambios, los servicios de indexación, etc. Añadir transacciones masivas a Ethereum es parte de una actualización conocida como «ProtoDanksharding». Se espera que esté lista relativamente pronto, tal vez a finales de 2023. + +Después de que las transacciones masivas se hayan convertido en parte del protocolo Ethereum a través de ProtoDanksharding, se podrán añadir muchas masas a los bloques de Ethereum. Esto traerá otro aumento sustancial (>x 100) del rendimiento de Ethereum y una reducción en los costes de transacción. + +### Danksharding {#danksharding} + +La segunda fase de expansión de los datos guardados masivamente es complicada, porque requiere nuevos métodos para comprobar si los datos de las acumulaciones están disponibles en la red y depende de que se puedan separar las responsabilidades de los validadores en la construcción y propuesta de bloques. También requiere una forma de demostrar criptográficamente que los validadores han verificado pequeños subconjuntos de los datos masivos. + +Este segundo paso es conocido como [«Danksharding»](/roadmap/danksharding/). Es probable que aún tarde varios años en implementarse en su totalidad. Danksharding se basa en otros desarrollos como [separar la construcción y la propuesta de bloques](/roadmap/pbs) y nuevos diseños de red que permitan a la red confirmar eficientemente que los datos están disponibles, muestreando aleatoriamente unos cuantos kilobytes cada vez, lo que se denomina [muestreo de disponibilidad de datos (DAS)](/developers/docs/data-availability). + +Más información sobre la fragmentación. + +## Descentralizar las acumulaciones {#decentralizing-rollups} + +Las [acumulaciones](/layer-2) ya están escalando en Ethereum. Un ecosistema rico en [proyectos sobre acumulaciones](https://l2beat.com/scaling/tvl) permite que los usuarios hagan una transacción rápida y económica, con un rango de garantías de seguridad. Sin embargo, las acumulaciones se han implementado inicialmente utilizando secuenciadores centralizados (ordenadores que realizan todo el procesamiento de transacciones y la agregación antes de enviarlas a Ethereum). Esto los hace vulnerables a la censura, porque los operadores de los secuenciadores pueden ser sancionados, sobornados o verse expuestos a riesgos. Al mismo tiempo, [las acumulaciones se diferencian](https://l2beat.com) en la forma en que validan los datos entrantes. La mejor forma es que los «probadores» presenten pruebas de fraude o pruebas de validez, pero no todas las acumulaciones están a ese nivel. Incluso aquellas acumulaciones que utilizan pruebas de validez/fraude utilizan un pequeño grupo de probadores conocidos. Por lo tanto, el siguiente paso crítico en la escalabilidad de Ethereum es distribuir la responsabilidad de ejecutar secuenciadores y probadores entre más personas. + +Más información sobre las acumulaciones. + +## Progreso actual {#current-progress} + +Es probable que ProtoDanksharding sea uno de los primeros componentes de la hoja de ruta en implementarse. Los pasos en computación descentralizada necesarios para configurarlo ya están en marcha y varios clientes han implementado prototipos para manejar datos en masa. Es probable que el Danksharding completo aún no vea la luz en varios años, ya que depende de que se completen varios otros elementos de la hoja de ruta en primer lugar. Descentralizar la infraestructura de acumulaciones seguramente será un proceso gradual: hay muchas acumulaciones distintas que están construyendo sistemas ligeramente diferentes y se descentralizarán totalmente a diferentes velocidades. diff --git a/src/content/translations/es/roadmap/secret-leader-election/index.md b/public/content/translations/es/roadmap/secret-leader-election/index.md similarity index 100% rename from src/content/translations/es/roadmap/secret-leader-election/index.md rename to public/content/translations/es/roadmap/secret-leader-election/index.md diff --git a/public/content/translations/es/roadmap/security/index.md b/public/content/translations/es/roadmap/security/index.md new file mode 100644 index 00000000000..630799ce052 --- /dev/null +++ b/public/content/translations/es/roadmap/security/index.md @@ -0,0 +1,48 @@ +--- +title: Un Ethereum más seguro +description: Ethereum es la plataforma de contratos inteligentes más segura y descentralizada que existe. Sin embargo, todavía se pueden hacer mejoras para que Ethereum siga resistiendo a cualquier tipo de ataque en el futuro. +lang: es +image: /roadmap/roadmap-security.png +alt: "Hoja de ruta de Ethereum" +template: roadmap +--- + +Ethereum ya es una plataforma de contratos inteligentes muy segura y descentralizada. Sin embargo, todavía se pueden hacer mejoras para que Ethereum siga resistiendo a cualquier tipo de ataque en el futuro. Esto incluye cambios sutiles en la forma en que los clientes de Ethereum gestionan los bloques en conflicto, así como aumentar la velocidad a la que la red considera que los bloques están ["finalizados"](/developers/docs/consensus-mechanisms/pos/#finality) (lo que significa que no pueden cambiarse sin pérdidas económicas extremas para un atacante). + +También hay mejoras que dificultan mucho más la censura de transacciones al hacer que los proponentes de bloques desconozcan el contenido real de sus bloques, y nuevos métodos para identificar cuándo un cliente está censurando. Juntas, estas mejoras actualizarán el protocolo de la prueba de participación, de manera que los usuarios, desde individuos hasta corporaciones, tengan confianza instantánea en sus aplicaciones, datos y activos en Ethereum. + +## Retiradas de participaciones {#staking-withdrawals} + +La actualización de prueba de trabajo a prueba de participación comenzó con los pioneros de Ethereum apostando su ETH en un contrato de depósito. Ese ETH se usó para proteger la red. Sin embargo, ese ETH no se puede desbloquear y devolver a los usuarios. Permitir la retirada de ETH es una parte crítica de la mejora de la prueba de participación. Además de que las retiradas son un componente crítico de un protocolo de prueba de participación completamente funcional, permitir las retiradas también es beneficioso para la seguridad de Ethereum, ya que permite a los participantes usar sus recompensas de ETH para otros fines que no sea la participación. Esto significa que los usuarios que desean liquidez no tienen que depender de los derivados de participación líquida (LSD) que pueden ser una fuerza centralizadora en Ethereum. Está previsto que se complete esta actualización el 12 de abril de 2023. + +Descubra más cosas sobre las retiradas. + +## Defenderse contra ataques {#defending-against-attacks} + +Incluso después de las retiradas, hay mejoras que se pueden hacer en el protocolo [de prueba de participación](/developers/docs/consensus-mechanisms/pos/) de Ethereum. Uno se lo conoce como [view-merge](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739): un algoritmo de elección de bifurcación más seguro que dificulta ciertos ataques sofisticados. + +Reducir el tiempo que Ethereum tarda en finalizar bloques podría proveer una mejor experiencia de usuario y evitar ataques sofisticados «reorg», en los que los atacantes intentan reordenar bloques muy recientes para obtener beneficios o para censurar ciertas transacciones. [**Finalidad de ranura única (SSF)**](/roadmap/single-slot-finality/) es una forma de minimizar el retraso de finalización. En la actualidad hay 15 minutos de bloques en los que un atacante puede, en teoría, convencer a los otros validadores para reconfigurar. Con SSF, hay 0. Los usuarios, desde individuos hasta aplicaciones e intercambios, se benefician de una rápida garantía de que sus transacciones no se revertirán y de que la red se beneficia al cerrar toda una categoría de ataques. + +Más información sobre la finalidad de ranura única. + +## Defenderse contra la censura {#defending-against-censorship} + +La descentralización evita que los individuos o pequeños grupos de validadores se vuelvan demasiado influyentes. Las nuevas tecnologías de participación pueden ayudar a garantizar que los validadores de Ethereum se mantengan lo más descentralizados posible, al tiempo que los defienden contra fallos de hardware, software y red. Esto incluye el software que comparte las responsabilidades del validador a través de múltiples nodos. Esto se conoce como **tecnología de validador distribuido (DVT)**. Las participaciones agrupadas tienen incentivos a usar DVT, porque permite que múltiples ordenadores participen colectivamente en la validación, añadiendo redundancia y tolerancia a fallos. También divide las claves del validador en varios sistemas, en lugar de tener operadores individuales que ejecuten múltiples validadores. Esto hace que a los operadores deshonestos les resulte más difícil coordinar los ataques a Ethereum. En conjunto, la idea es obtener beneficios de seguridad ejecutando validadores como _comunidades_ en lugar de como individuos. + +Lea acerca de la tecnología de validación distribuida + +La implementación de la **separación proponente-constructor (PBS)** mejorará drásticamente la defensa integrada de Ethereum contra la censura. PBS permite a un validador crear un bloque y a otro transmitirlo a través de la red Ethereum. Esto asegura que las ganancias de los algoritmos de maximización de ganancias profesionales de construcción de bloques se compartan de manera más justa en toda la red, **evitando que la participación se concentre** con los participantes institucionales de mejor rendimiento a lo largo del tiempo. El proponente de bloques puede seleccionar el bloque más rentable que le ofrece un mercado de constructores de bloques. Para censurar, un proponente de bloques a menudo tendría que elegir un bloque menos rentable, que sería **económicamente irracional y también obvio para el resto de los validadores** en la red. + +Hay posibles complementos para PBS, como transacciones cifradas y listas de inclusión, que podrían mejorar aún más la resistencia a la censura de Ethereum. Esto hace que el constructor de bloques y el proponente no vean las transacciones reales incluidas en sus bloques. + +Más información acerca de la separación entre proponentes y constructores. + +## Proteger a los validadores {#protecting-validators} + +Es posible que un atacante sofisticado pueda identificar a los próximos validadores y enviarles correo basura para evitar que propongan bloques; esto se conoce como un ataque de **denegación de servicio (DoS)**. La implementación de [**elección de líder secreto (SLE)**](/roadmap/secret-leader-election) protegerá contra este tipo de ataque al evitar que los proponentes de bloques sean conocidos de antemano. Esto funciona mezclando continuamente un conjunto de compromisos criptográficos que representan a los proponentes de bloques candidatos y utilizando su orden para determinar qué validador se selecciona, de tal manera que solo los propios validadores conozcan su pedido por adelantado. + +Más información acerca de la elección del líder secreto. + +## Progreso actual {#current-progress} + +Las actualizaciones de seguridad en la hoja de ruta se encuentran en etapas avanzadas de investigación, aunque no se espera que se implementen aún próximamente. Los siguientes pasos para view-merge, PBS, SSF y SLE consisten en finalizar una especificación y comenzar a construir prototipos. diff --git a/src/content/translations/es/roadmap/single-slot-finality/index.md b/public/content/translations/es/roadmap/single-slot-finality/index.md similarity index 100% rename from src/content/translations/es/roadmap/single-slot-finality/index.md rename to public/content/translations/es/roadmap/single-slot-finality/index.md diff --git a/src/content/translations/es/roadmap/statelessness/index.md b/public/content/translations/es/roadmap/statelessness/index.md similarity index 100% rename from src/content/translations/es/roadmap/statelessness/index.md rename to public/content/translations/es/roadmap/statelessness/index.md diff --git a/public/content/translations/es/roadmap/user-experience/index.md b/public/content/translations/es/roadmap/user-experience/index.md new file mode 100644 index 00000000000..84e0383f6e4 --- /dev/null +++ b/public/content/translations/es/roadmap/user-experience/index.md @@ -0,0 +1,36 @@ +--- +title: Mejorar la experiencia de usuario +description: "Todavía es demasiado complejo el uso de Ethereum para la mayoría de las personas. Para fomentar la adopción masiva, Ethereum debe reducir drásticamente sus barreras de entrada: los usuarios deben obtener los beneficios del acceso descentralizado, sin permiso y resistente a la censura a Ethereum, pero debe ser tan sencillo como usar una aplicación Web2 tradicional." +lang: es +image: /roadmap/roadmap-ux.png +alt: "Hoja de ruta de Ethereum" +template: roadmap +--- + +El uso de Ethereum debe simplificarse; desde la gestión de claves y carteras hasta el inicio de transacciones. Para facilitar la adopción masiva, Ethereum debe aumentar drásticamente la facilidad de uso, permitiendo a los usuarios experimentar un acceso sin permiso y resistente a la censura a Ethereum con la experiencia sin fricciones de usar aplicaciones Web2. + +## Más allá de las fases semilla {#no-more-seed-phrases} + +Las cuentas de Ethereum están protegidas por un par de claves que se utilizan para identificar las cuentas (clave pública) y firmar mensajes (clave privada). Una clave privada es una especie de contraseña maestra: permite el acceso completo a una cuenta de Ethereum. Esta es una forma diferente de operar para las personas más familiarizadas con los bancos y las aplicaciones Web2 que administran cuentas en nombre de un usuario. Para que Ethereum alcance la adopción masiva sin depender de terceros centralizados, debe haber una forma directa y sin fricciones de que un usuario tome la custodia de sus activos y mantenga el control de sus datos sin tener que entender la criptografía de claves público-privadas y la gestión de claves. + +La solución a esto es el uso de carteras de contratos inteligentes para interactuar con Ethereum. Las carteras de contratos inteligentes crean formas de proteger las cuentas en caso de pérdida o robo de las claves, suponen oportunidades para una mejor detección y defensa del fraude, y permiten que las carteras obtengan nuevas funciones. Aunque las carteras de contratos inteligentes existen hoy en día, son difíciles de construir porque el protocolo Ethereum necesita soportarlas mejor. Este soporte adicional se conoce como abstracción de cuentas. + +Más información sobre la abstracción de cuentas + +## Nodos para todos + +Los usuarios que ejecutan nodos no tienen que confiar en terceros para proporcionarles datos, y pueden interactuar de forma rápida, privada y sin permiso con la cadena de bloques de Ethereum. Sin embargo, ejecutar un nodo en este momento requiere conocimientos técnicos y destinar un espacio en disco considerable, lo que significa que muchas personas deben confiar en intermediarios en su lugar. + +Hay varias actualizaciones que simplificarán y reducirán la dependencia de recursos de la ejecución de los nodos. La forma en que se almacenan los datos se cambiará para utilizar una estructura más eficiente en el espacio conocida como **Verkle Tree**. Además, con [sin estado](/roadmap/statelessness) o [vencimiento de datos](/roadmap/statelessness/#data-expiry), los nodos de Ethereum no necesitarán almacenar una copia de todos los datos del estado de Ethereum, lo que reducirá drásticamente los requisitos de espacio en el disco duro. [Los nodos ligeros](/developers/docs/nodes-and-clients/light-clients/) ofrecerán muchos beneficios de ejecutar un nodo completo, pero se pueden ejecutar fácilmente en teléfonos móviles o dentro de simples aplicaciones de navegador. + +Más información acerca de los árboles Verkle + +Con estas actualizaciones, las barreras para ejecutar un nodo se reducen efectivamente a cero. Los usuarios se beneficiarán de un acceso seguro y sin permiso a Ethereum sin tener que sacrificar un considerable espacio en el disco o la CPU de su ordenador o teléfono móvil, ni tampoco tendrán que depender de terceros para acceder a los datos o a la red cuando utilicen aplicaciones. + +## Progreso actual {#current-progress} + +Las billeteras de contrato inteligente ya están disponibles, pero existen más actualizaciones necesarias para hacerlas todo lo descentralizadas y sin permisos como sea posible. EIP-4337 es una propuesta madura que no requiere ningún cambio en el protocolo de Ethereum. El principal contrato inteligente requerido para el EIP-4337 se desplegó en marzo de 2023. + +El sin estado total todavía está en la fase de investigación y es probable que su implementación aún esté a varios años vista. Hay varios hitos en el camino hacia el sin estado total, incluida la caducidad de los datos, que pueden implementarse antes. Antes deben completarse otros elementos de la hoja de ruta, como los [árboles de Verkle](/roadmap/verkle-trees/) y [la separación proponente-constructor](/roadmap/pbs/). + +Las redes de prueba del árbol de Verkle ya están en funcionamiento, y la siguiente fase consiste en ejecutar clientes habilitados para el árbol de Verkle en redes de prueba privadas y luego públicas. Puede ayudar a acelerar el progreso implementando contratos en las redes de prueba o ejecutando clientes de la red de prueba. diff --git a/src/content/translations/es/roadmap/verkle-trees/index.md b/public/content/translations/es/roadmap/verkle-trees/index.md similarity index 100% rename from src/content/translations/es/roadmap/verkle-trees/index.md rename to public/content/translations/es/roadmap/verkle-trees/index.md diff --git a/src/content/translations/es/security/index.md b/public/content/translations/es/security/index.md similarity index 100% rename from src/content/translations/es/security/index.md rename to public/content/translations/es/security/index.md diff --git a/public/content/translations/es/smart-contracts/index.md b/public/content/translations/es/smart-contracts/index.md new file mode 100644 index 00000000000..c51bf058930 --- /dev/null +++ b/public/content/translations/es/smart-contracts/index.md @@ -0,0 +1,84 @@ +--- +title: Contratos inteligentes +description: Una introducción sin tecnicismos a los contratos inteligentes +lang: es +--- + +# Introducción a los contratos inteligentes {#introduction-to-smart-contracts} + +Los contratos inteligentes son los bloques de construcción fundamentales de la capa de aplicación de Ethereum. Son programas informáticos almacenados en la cadena de bloques que siguen la lógica «si ocurre esto, entonces se produce aquello» y garantizan ejecutarse siguiendo las reglas definidas por su código, que no se puede cambiar una vez creado. + +Nick Szabo acuñó el término «contrato inteligente». En 1994, escribió [una introducción al concepto](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html), y en 1996 escribió [una exploración de lo que podrían hacer los contratos inteligentes](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). + +Szaba visualizó una plataforma intermediaria digital donde los procesos automáticos y criptográficamente seguros permitieran que transacciones y funciones de negocios se llevaran a cabo sin intermediarios de confianza. Los contratos inteligentes en Ethereum ponen esta visión en práctica. + +## Confianza en los contratos convencionales {#trust-and-contracts} + +Uno de los mayores problemas con un contrato convencional es la necesidad de tener individuos honestos que cumplan con lo acordado en el contrato. + +He aquí un ejemplo: + +Alicia y Bob están haciendo una carrera en bicicleta. Digamos que Alicia le apuesta a Bob 10 dólares de que ella le gane en la carrera. Bob está seguro de que él ganará, por eso acepta la apuesta. Al final, Alicia termina la carrera muy por delante de Bob y es la clara ganadora. Pero Bob se niega a pagar la apuesta, alegando que Alicia debe haber hecho trampa. + +Este sencillo ejemplo ilustra el problema de cualquier acuerdo no inteligente. Aunque se cumplan las condiciones del acuerdo (es decir, usted sea el ganador de la carrera), aún debe confiar en que la otra persona cumpla el acuerdo (es decir, que pague la apuesta). + +## Una máquina expendedora digital {#vending-machine} + +Una metáfora sencilla para un contrato inteligente es la de una máquina expendedora que funciona de forma similar a un contrato inteligente: aportes específicos garantizan resultados predeterminados. + +- Seleccione un producto +- La máquina expendedora muestra el precio. +- Usted paga el precio. +- La máquina expendedora comprueba que usted ha pagado la cantidad correcta. +- La máquina expendedora le da su artículo. + +La máquina expendedora solo dispensará el producto deseado después de que se hayan cumplido todos los requisitos. Si no selecciona un producto o inserta suficiente dinero, la máquina expendedora no le entregará su producto. + +## Ejecución automática {#automation} + +El principal beneficio de un contrato inteligente es que ejecuta determinísticamente un código sin ambigüedades cuando se cumplen ciertas condiciones. No hay necesidad de esperar a que un humano interprete o negocie el resultado. Esto elimina la necesidad de intermediarios de confianza. + +Por ejemplo, usted podría escribir un contrato inteligente que mantenga fondos en fideicomiso para un menor, permitiéndole retirar los fondos después de una fecha específica. Si se intenta retirar fondos antes de esa fecha, el contrato inteligente no se ejecutaría. O podría escribir un contrato que automáticamente le brinde una versión digital de un título de un coche cuando le pague al concesionario. + +## Resultados predecibles {#predictability} + +Los contratos tradicionales son ambiguos, porque dependen de que los humanos los interpreten y los implementen. Por ejemplo, dos jueces pueden interpretar un contrato de forma distinta, lo que puede dar paso a decisiones inconsistentes y resultados desiguales. Los contratos inteligentes eliminan esta posibilidad. Los contratos inteligentes, por el contrario, se ejecutan con precisión basándose en las condiciones estipuladas por escrito dentro del código del contrato. Esta precisión significa que dadas las mismas circunstancias, el contrato inteligente producirá el mismo resultado. + +## Registro público {#public-record} + +Los contratos inteligentes también son útiles para auditorías y seguimiento. Dado que los contratos inteligentes de Ethereum están en una cadena de bloques pública, cualquier persona puede realizar un seguimiento instantáneo de la transferencia de activos y de otros datos relacionados. Por ejemplo, puede consultar para ver que alguien envió dinero a su dirección. + +## Protección de la privacidad {#privacy-protection} + +Los contratos inteligentes también protegen su privacidad. Puesto que Ethereum es una red pseudónima (sus transacciones están vinculadas públicamente a una dirección criptográfica única, no a su identidad), puede proteger su privacidad frente a observadores. + +## Términos visibles {#visible-terms} + +Finalmente, así como con los contratos tradicionales, usted puede verificar el contenido de un contrato inteligente antes de firmarlo (o alternativamente, interactuar con él). La transparencia de un contato inteligente garantiza que cualquiera pueda examinarlo. + +## Casos de uso de contratos inteligentes {#use-cases} + +Los contratos inteligentes básicamente pueden hacer lo mismo que otros programas informáticos. + +Se pueden realizar cálculos, crear una divisa, almacenar datos, acuñar NFT, enviar comunicaciones e incluso generar gráficos. He aquí algunos ejemplos populares sacados del mundo real: + +- [Monedas estables](/stablecoins/) +- [Crear y distribuir activos digitales únicos](/nft/) +- [Un cambio de divisas automático y abierto](/get-eth/#dex) +- [Juegos descentralizados](/dapps/?category=gaming) +- [Una póliza de seguro que paga automáticamente](https://etherisc.com/) +- [Un estándar que permite a las personas crear divisas interoperables y personalizadas](/developers/docs/standards/tokens/) + +## ¿Es más bien de los que aprende viendo? {#visual-learner} + +Mire en este vídeo cómo Finematics explica los contratos inteligentes: + + + +## Más información {#further-reading} + +- [¿Cómo cambiarán el mundo los contratos inteligentes?](https://www.youtube.com/watch?v=pA6CGuXEKtQ) +- [Contratos inteligentes: la tecnología de la cadena de bloques que remplazará a los abogados](https://blockgeeks.com/guides/smart-contracts/) +- [Contratos inteligentes para desarrolladores](/developers/docs/smart-contracts/) +- [Aprenda a redactar contratos inteligentes](/developers/learning-tools/) +- [Dominar Ethereum: ¿Qué es un contrato inteligente?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/es/social-networks/index.md b/public/content/translations/es/social-networks/index.md new file mode 100644 index 00000000000..1eb64df27ad --- /dev/null +++ b/public/content/translations/es/social-networks/index.md @@ -0,0 +1,121 @@ +--- +title: Redes sociales descentralizadas +description: Una visión general de las redes sociales descentralizadas en Ethereum +lang: es +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: /ethereum-learn.png +summaryPoint1: Plataformas basadas en la cadena de bloques para interacción social, creación y distribución de contenidos. +summaryPoint2: Las redes sociales descentralizadas protegen la privacidad del usuario y mejoran la seguridad de los datos. +summaryPoint3: Tókenes y NFT crean nuevas formas de monetizar contenido. +--- + +Las redes sociales juegan un enorme papel en nuestras comunicaciones e interacciones diarias. Sin embargo el control centralizado de estas plataformas ha generado importantes problemas: brechas en la custodia de datos, servidores fuera de servicio, desviaciones de las plataformas, censura y violación de la privacidad son algunos de los inconvenientes que suelen producir las redes sociales. Para combatir estos problemas, los desarrolladores están construyendo redes sociales en Ethereum. Las redes sociales descentralizadas pueden solucionar muchos de los problemas de las plataformas de redes sociales tradicionales y mejorar las experiencia de los usuarios de forma global. + +## ¿Qué son las redes sociales descentralizadas? {#what-are-decentralized-social-networks} + +Las redes sociales descentralizadas son plataformas basadas en la cadena de bloques que permiten a los usuarios intercambiar información, así como publicar y distribuir contenido al público. Dado que estas aplicaciones se ejecutan en la cadena de bloques, son capaces de ser descentralizadas y resistentes a la censura y al control indebido. + +Muchas redes sociales descentralizadas existen como alternativa a los servicios de redes sociales establecidas como Facebook, LinkedIn, Twitter, y Medium. No obstante, las redes sociales impulsadas por la cadena de bloques tienen una serie de características que les confieren ventajas sobre las plataformas sociales tradicionales. + +### ¿Cómo funcionan las redes sociales descentralizadas? {#decentralized-social-networks-overview} + +Las redes sociales descentralizadas son una clase [aplicaciones descentralizadas (DApps)](/dapps/) - aplicaiones impulsadas por [contratos inteligentes](/developers/docs/smart-contracts/) desplegados en la cadena de bloques. El código de contrato sirve como el backend para estas aplicaciones y define su lógica de negocio. + +Las plataformas tradicionales de redes sociales se basan en bases de datos para almacenar información del usuario, el código del programa y otras formas de datos. Aunque esto crea puntos únicos de fallo y supone un riesgo significativo. Por ejemplo, los servidores de Facebook, de forma notoria, [se desconectaron durante horas](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) el año pasado, dejando a los usuarios fuera de la plataforma. + +Las redes sociales descentralizadas existen en redes entre pares que comprenden miles de nodos alrededor del mundo. Incluso si algunos nodos fallan, la red se ejecutará sin interrupción, haciendo que las aplicaciones sean resistentes a fallos o cortes y apagones. + +Utilizando sistemas de almacenamiento descentralizados como [el sistema de archivos interplanetario IPFS](https://ipfs.io/), las redes sociales construidas sobre Ethereum pueden proteger la información del usuario de la explotación y el uso malicioso. Nadie venderá su información personal a los anunciantes, ni los hackers podrán robar sus datos confidenciales. + +Muchas plataformas de redes sociales basadas en la cadena de bloques tienen tókenes nativos que potencian la monetización a falta de ingresos publicitarios. Los usuarios pueden comprar esos tokens para acceder a ciertas características, completar compras en la aplicación o dar propinas a sus creadores de contenido favoritos. + +## Beneficios de las redes sociales descentralizadas {#benefits} + +1. Las redes sociales descentralizadas son resistentes a la censura y están abiertas a todos. Esto significa que los usuarios no pueden ser bloqueados, eliminados de la plataforma ni sufrir restricciones arbitrariamente. + +2. Las redes sociales descentralizadas se construyen sobre ideales de código abierto y hacen que el código fuente de las aplicaciones esté disponible para su inspección pública. Al eliminar la implementación de algoritmos opacos, comunes en las redes sociales tradicionales, las redes sociales basadas en la cadena de bloques alinean los intereses de los usuarios y creadores en la plataforma. + +3. Las redes sociales descentralizadas eliminan al intermediario. Los creadores son propietarios exclusivos de sus contenidos, y se comprometen directamente con sus seguidores, aficionados, compradores y otras partes, con la única mediación de un contrato inteligente entre ellos. + +4. Al tratarse de DApps que corren en la red Ethereum, que es una red global de nodos entre pares, las redes sociales descentralizadas son menos propensas a sufrir tiempos de inactividad por fallos o interrupciones de funcionamiento o cortes en servidores. + +5. Las plataformas sociales descentralizadas ofrecen un marco de monetización mejorado para los creadores de contenido a través de tókenes no fungibles (NFT), pagos con criptomonedas en la propia aplicación, entre otras ventajas. + +6. Las redes sociales descentralizadas proporcionan a los usuarios un alto nivel de privacidad y anonimato. Por ejemplo, un individuo puede iniciar sesión en una red social basada en la red Ethereum usando un perfil de ENS o una cartera, sin tener que compartir información personal identificable (PIII), como nombres, direcciones de correo electrónico, etc. + +7. Las redes sociales descentralizadas se basan en el almacenamiento descentralizado, no en bases de datos centralizadas, que son considerablemente mejores para salvaguardar los datos del usuario. + +## Redes sociales descentralizadas en Ethereum {#ethereum-social-networks} + +La red Ethereum se ha convertido en la herramienta preferida para los desarrolladores que crean redes sociales descentralizadas debido a la popularidad de sus tókenes (ERC-20/ERC-721) y su enorme base de usuarios. He aquí algunos ejemplos de redes sociales basadas en Ethereum: + +### Peepeth {#peepeth} + +[Peepeth](https://peepeth.com/) es una plataforma de microblogging similar a Twitter. Se ejecuta en la cadena de bloques de Ethereum y utiliza IPFS para almacenar datos de usuario. + +Los usuarios pueden enviar mensajes cortos llamados «Peeps», que no pueden ser borrados o modificados. Se puede obtener propinas en ether (ETH), o entregárselas a cualquiera de la plataforma, sin salir de la aplicación. + +### Mirror {#mirror} + +[Mirror](https://mirror.xyz/) es una plataforma de escritura con soporte web 3 con el propósito de ser descentralizada y que el usuario sea el propietario de su contenido. Los usuarios pueden leer y escribir gratis en Mirror simplemente conectando sus carteras. Los usuarios también pueden recopilar escritos y suscribirse a sus escritores favoritos. + +Las entradas publicadas en Mirror se almacenan permanentemente en Arwaeve, una plataforma de almacenamiento descentralizada, y puede ser acuñado como [tókenes no fungibles (NFT)](/nft/) coleccionables, conocidos como NFT de escritura. Los NFT de escritura son de creación completamente gratuita para los escritores, y la colección de los mismos es en una capa L2 de Ethereum, que permite que las transacciones sean baratas, rápidas y respetuosas con el medio ambiente. + +### MINDS {#minds} + +[MINDS](https://www.minds.com/) es una de las redes sociales descentralizadas más utilizadas. Funciona como Facebook y ya ha acumulado millones de usuarios. + +Los usuarios utilizan $MIND, token ERC-20 nativo de la plataforma, para pagar los artículos. Los usuarios también pueden ganar $MIND tókenes publicando contenido popular, contribuyendo al ecosistema y recomendado la plataforma a otros. + +## Redes sociales Web2 en Ethereum {#web2-social-networks-and-ethereum} + +Las plataformas sociales nativas [Web3](/web3/) no son las únicas que intentan incorporar la tecnología blockchain a las redes sociales. Muchas plataformas centralizadas también están planeando integrar Ethereum en su infraestructura: + +### Reddit {#reddit} + +Reddit ha promocionado [puntos promocionados en la comunidad](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users), que son [tókenes ERC-20](/developers/docs/standards/tokens/erc-20/) que los usuarios pueden ganar publicando contenido de calidad y contribuyendo a las comunidades en línea (subreddits). Puede canjear estos tókenes dentro de un subreddit para [obtener privilegios y beneficios exclusivos](https://www.reddit.com/community-points/). Para este proyecto, Reddit está trabajando con Arbitrum, un rollup de [capa 2](/layer-2/) diseñado para dar escalabilidad a las transacciones de Ethereum. + +El programa ya está activo, con el subreddit r/Criptomoneda [ejecutando su versión de puntos de comunidad llamada «Moons»](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Según la descripción oficial, los Moons «recompensan carteles, comentaristas y moderadores por sus contribuciones al subreddit». Debido a que estos tókenes están en la cadena de bloques (los usuarios los reciben en carteras), estos son independientes de Reddit y no se pueden quitar. + +Después de concluir una fase beta en la red de prueba de Rinkeby, los puntos de la comunidad de Reddit ahora están en [Arbitrum Nova](https://nova.arbitrum.io/), una cadena de bloques que combina las propiedades de una [cadena lateral](/developers/docs/scaling/sidechains/) y una [acumulación optimista](/developers/docs/scaling/optimistic-rollups/). Además de usar puntos comunitarios para desbloquear funciones especiales, los usuarios también pueden cambiarlos por moneda fiduciaria en los comercios o intercambios. Además, la cantidad de puntos de la comunidad que posee un usuario determina su influencia en el proceso de toma de decisiones dentro de la comunidad. + +### Twitter {#twitter} + +En enero de 2021, Twitter Blue [lanzó soporte para NFT](https://mashable.com/article/twitter-blue-nft-profile-picture), permitiendo a los usuarios conectar sus carteras y mostrar NFT como imágenes de perfil. En el momento de publicar este artículo, la empresa de redes sociales también [ha anunciado planes](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) para crear una red social descentralizada en el futuro. + +### Instagram {#instagram} + +En mayo de 2022, [Instagram anunció la compatibilidad con NFT](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) en Ethereum y Polygon. Los usuarios pueden publicar NFT directamente en Instagram conectando su cartera Ethereum. + +## Redes sociales descentralizadas en uso {#use-decentralized-social-networks} + +- **[Status.im](https://status.im/)** - _Status es una aplicación de mensajería segura que utiliza código abierto, protocolo entre pares y cifrado de extremo a extremo para proteger sus mensajes de terceros._ +- **[Mirror.xyz](https://mirror.xyz/)** - _Mirror es plataforma de publicación descentralizada con la propiedad asignada a los usuarios. Creada sobre Ethereum, los usuarios puedan financiar ideas, monetizar contenido y construir comunidades de alto valor._ +- **[Lens Protocol](https://lens.xyz/)** - _Lens Protocol es una red social de gráficos, compuesto y descentralizado, que ayuda a los creadores a tomar posesión de su contenido dondequiera que vayan en el jardín digital del Internet descentralizado._ +- **[Farcaster](https://farcaster.xyz/)**: _Farcaster es una red social suficientemente descentralizada. Es un protocolo abierto que puede soportar muchos clientes, al igual que el correo electrónico._ + +## Para profundizar sobre el tema {#further-reading} + +### Artículos {#articles} + +- [Descentralizar las redes sociales: una guía para el apilamiento social de web3](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _Coinbase Ventures_ +- [Las redes sociales son la gran oportunidad futura de descentralización](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Goertzel_ +- [Web3 contiene la promesa de redes sociales descentralizadas y alimentadas por la comunidad](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ +- [Un vistazo al panorama de las redes sociales en la cadena de bloques](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ +- [Cómo la cadena de bloques puede resolver la privacidad de las redes sociales](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Prableen Bajpai_ +- [Las redes sociales están llegando a la cadena de bloques](https://businesstechguides.co/what-are-decentralized-social-networks) — _Emmanuel Awosika_ +- [Descentralización suficiente para las redes sociales](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks): _Varun Srinivasan_ + +### Vídeos {#videos} + +- [Explicación sobre las redes sociales descentralizadas](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ +- [La cadena de bloques DeSo quiere descentralizar las redes sociales](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ +- [El futuro de las redes sociales descentralizadas con Balaji, Vitalik Buterin, Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ + +### Comunidades {#communities} + +- [Servidor Discord de Status](https://discord.com/invite/3Exux7Y) +- [Servidor Discord de Mirror](https://discord.com/invite/txuCHcE8wV) +- [r/Cryptocurrency subreddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/es/staking/dvt/index.md b/public/content/translations/es/staking/dvt/index.md similarity index 100% rename from src/content/translations/es/staking/dvt/index.md rename to public/content/translations/es/staking/dvt/index.md diff --git a/public/content/translations/es/staking/pools/index.md b/public/content/translations/es/staking/pools/index.md new file mode 100644 index 00000000000..2a4f96f7537 --- /dev/null +++ b/public/content/translations/es/staking/pools/index.md @@ -0,0 +1,85 @@ +--- +title: Participación agrupada +description: Una visión general de cómo empezar con la participación agrupada de ETH +lang: es +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-pool.png +alt: Leslie, el rinoceronte, nadando en la piscina. +sidebarDepth: 2 +summaryPoints: + - Participe y gane recompensas con cualquier cantidad de ETH uniendo fuerzas con otros + - Ahórrese la parte difícil y confíe el funcionamiento del validador a un tercero + - Almacene tókenes de participación en su propia cartera +--- + +## ¿Qué son las participaciones agrupadas? {#what-are-staking-pools} + +Las participaciones agrupadas son un enfoque colaborativo que permite a muchas personas con pequeñas cantidades de ETH obtener los 32 ETH necesarios para activar un conjunto de claves de validación. El protocolo no permite por defecto la funcionalidad de agrupación, por lo que se han creado soluciones por separado para satisfacer esta necesidad. + +Algunas agrupaciones operan utilizando contratos inteligentes, estos permiten depositar fondos en un contrato, que gestiona y rastrea su participación de forma fiable, y se emite un token que representa este valor. Puede que otras agrupaciones no comprendan contratos inteligentes y en su lugar se medien fuera de la red. + +## ¿Por qué debería participar en una agrupación? {#why-stake-with-a-pool} + +Además de las ventajas que hemos descrito en nuestra [introducción a las participaciones](/staking/), participar en una agrupación supone una serie de ventajas distintas. + + + + + + + + + +## Qué hay que tener en cuenta {#what-to-consider} + +El protocolo de ETH no admite de forma original las participaciones agrupadas o delegadas, pero dada la demanda de los usuarios de apostar menos de 32 ETH, se ha creado un número creciente de soluciones para satisfacer esta demanda. + +Cada reserva y las herramientas o contratos inteligentes que utilizan los han construido diferentes equipos, por eso cada uno conlleva sus propios riesgos y beneficios. Las reservas permiten a los usuarios cambiar sus ETH por tókenes que representan los ETH apostados. El token es útil, pues permite a los usuarios intercambiar cualquier cantidad de ETH a una cantidad equivalente a un token que genera rendimiento a partir de las recompensas de participación aplicadas al ETH apostado subyacente (y viceversa) en intercambios descentralizados, aunque el ETH actual permanezca apostado en la capa de consenso. Esto implica que cambiar de ida y vuelta un ETH apostado que genera rendimiento y un «ETH bruto» es rápido, fácil y no solo disponible en múltiplos de 32 ETH. + +Sin embargo, estos tókenes-ETH apostados tienden a generar conductas similares a un cártel en el que una gran cantidad de ETH apostados terminan en manos de unas pocas organizaciones centralizadas, en lugar de distribuirse entre muchos individuos independientes. Esto crea condiciones para la censura o la extracción de valor. La regla de oro para participar siempre debería ser que las personas ejecuten validadores en su propio hardware siempre que sea posible. + +[Más información sobre los riesgos de la participación de tókenes](https://notes.ethereum.org/@djrtwo/risks-of-lsd). + +Los indicadores de atributos se utilizan a continuación para señalar los puntos fuertes o débiles que puede tener una agrupación de participaciones de la lista. Utilice esta sección como referencia para saber cómo definimos estos atributos mientras elige un grupo al que unirse. + + + +## Explore las participaciones agrupadas {#explore-staking-pools} + +Existe una gran variedad de opciones disponibles para ayudarle con su configuración. Utilice los indicadores anteriores para guiarse a través de las herramientas siguientes. + + + + + +Es importante elegir un servicio que se tome en serio la [diversidad de clientes](/developers/docs/nodes-and-clients/client-diversity/), ya que mejora la seguridad de la red y limita el riesgo. Los servicios que tienen constatación de limitar el uso de cliente mayoritario están señalados con "diversidad de cliente de ejecución" y "diversidad de cliente de consenso". + +¿Tiene alguna sugerencia para una herramienta de participación no cubierta? Eche un vistazo a nuestra [política de listado de productos](/contributing/adding-staking-products/) para ver si le parece una opción aceptable y enviarla para su revisión. + +## Preguntas más frecuentes {#faq} + + +Normalmente los tókenes de participación ERC-20 se emiten a los participantes y representan el valor de sus ETH apostados más las recompensas. Tenga en cuenta que las diferentes agrupaciones repartirán las recompensas de las participaciones entre sus usuarios a través de métodos ligeramente diferentes, pero siempre se reparten. + + + +¡En cualquier momento! La actualización de red Shanghai/Capella se produjo en abril de 2023 e introdujo las retiradas de participaciones. Después de esta actualización, las cuentas de validador que respaldan las reservas de participación tendrán la posibilidad de salir y retirar ETH a su dirección de retirada designada. Esto permitirá la capacidad de canjear su parte de participación por el ETH subyacente. Compruebe con su proveedor la compatibilidad con esta funcionalidad. + +Alternativamente, los grupos que usan tókenes de participación ERC-20, permiten a los usuarios operar dicho token en el libre mercado, pudiendo vender la posición en participación, «retirándola» de forma eficaz sin tener que eliminar ETH del contrato de participación. + +Más sobre retiradas de participaciones + + + +Hay muchas semejanzas entre estas opciones de participación agrupada y los intercambios centralizados, como la posibilidad de apostar pequeñas cantidades de ETH y tenerlas juntas para activar validadores. + +A diferencia de los intercambios centralizados, muchas otras opciones de participación agrupadas utilizan contratos inteligentes y/o tókenes de participación, que son usualmente tókenes ERC-20 que pueden permanecer en la cartera, y comprarse o venderse como cualquier otro token. Esto ofrece una capa de soberanía y seguridad al darle el control sobre sus tókenes, pero no le da el control directo sobre el cliente validador que certifica en su nombre en segundo plano. + +Algunas opciones de agrupamiento están más descentralizadas que otras cuando se trata de los nodos que las respaldan. Para promover la salud y la descentralización de la red, siempre se anima a los participantes a seleccionar un servicio de agrupación que permita un conjunto descentralizado de operadores de nodos sin permisos. + + +## Para profundizar sobre el tema {#further-reading} + +- [Participaciones con RocketPool: visión general de las participaciones](https://docs.rocketpool.net/guides/staking/overview.html) - _Documentos de RocketPool_ +- [Participaciones Ethereum con Lido](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Documentos de ayuda de Lido_ diff --git a/public/content/translations/es/staking/saas/index.md b/public/content/translations/es/staking/saas/index.md new file mode 100644 index 00000000000..a7b2b4e8296 --- /dev/null +++ b/public/content/translations/es/staking/saas/index.md @@ -0,0 +1,94 @@ +--- +title: Participación como servicio +description: Una visión general de cómo empezar con la participación agrupada de ETH +lang: es +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-saas.png +alt: Leslie, el rinoceronte, flotando en las nubes. +sidebarDepth: 2 +summaryPoints: + - Nodos de terceros gestionan la operación de su cliente validador + - Excelente opción para cualquier persona con 32 ETH que no se sienta cómoda tratando con la complejidad técnica de ejecutar un nodo + - Desconfíe y mantenga la custodia de sus claves de retirada +--- + +## ¿Qué es participación como servicio (SaaS)? {#what-is-staking-as-a-service} + +La participación como servicio (SaaS), representa una categoría de servicios de participación donde deposita 32 ETH para la validación, pero se delegan las operaciones del nodo a un tercero. A cambio se le suele guiar por la configuración inicial, incluida la generación de claves y el depósito, para luego cargar las claves de firma al operador. Esto permite que el servicio maneje su validador en su nombre, generalmente, a cambio de una cuota mensual. + +## ¿Por qué debería participar con un servicio? {#why-stake-with-a-service} + +El protocolo de Ethereum no respalda originariamente la delegación de participaciones y, por tanto, estos servicios se han creado con el fin de cubrir esta demanda. Si tiene 32 ETH para participar, pero no domina con confianza el hardware, los servicios de participación (SaaS) le permiten delegar la parte técnica mientras gana recompensas de bloques nativos. + + + + + + + + + +## Qué hay que tener en cuenta {#what-to-consider} + +Hay un número creciente de proveedores de SAAS para ayudarle a apostar sus ETH, pero todos tienen sus propias ventajas y riesgos. Todas las opciones SaaS requieren suposiciones adicionales de confianza en comparación con la participación desde casa. Las opciones SaaS pueden suponer el uso de un codigo adicional para los clientes de Ethereum que no es abierto ni auditable. SaaS tambien causa un efecto perjudicial en la descentralizacion de la red. Dependiendo de la configuracion, se puede controlar o no la validacion: el operador puede actuar deshonestamente usando sus ETH. + +Los indicadores de atributos se utilizan para señalar las fortalezas o debilidades notables que puede tener un proveedor aprobado de SaaS. Utilice esta sección como referencia sobre cómo definimos estos atributos, mientras está eligiendo el servicio que le ayudará con su experiencia de participación. + + + +## Explorar proveedores de servicios de participación {#saas-providers} + +A continuación encontrará algunos proveedores SaaS disponibles. Utilice los indicadores de arriba para guiarse a través de estos servicios + + + +### Proveedores SaaS + + + +Por favor, tenga en cuenta la importancia de elegir [clientes diversos](/developers/docs/nodes-and-clients/client-diversity/) ya que mejora la seguridad de la red y limita su riesgo. Los servicios que tienen constatación de limitar el uso de cliente mayoritario están señalados con "diversidad de cliente de ejecución" y "diversidad de cliente de consenso". + +### Generadores de claves + + + +¿Tiene alguna sugerencia para un proveedor de participación como servicio que no hayamos mencionado? Eche un vistazo a nuestra [política de listado de productos](/contributing/adding-staking-products/) para ver si le parece una opción aceptable y enviarla para su revisión. + +## Preguntas más frecuentes {#faq} + + +Los acuerdos difieren de proveedor a proveedor, pero comúnmente se le guiará a través de la configuración de las claves de firma que necesite (una por 32 ETH), y subirlos a su proveedor para permitirles validar en su nombre. Las llaves de firma por sí solas no dan ninguna capacidad para retirar, transferir o gastar sus fondos. Sin embargo, sí proporcionan la capacidad de emitir votos a favor del consenso. Si no se hace correctamente, puede dar lugar a sanciones fuera de línea o a un recorte. + + + +Sí. Cada cuenta se compone de ambas claves BLS para firmar y claves BLS para retirar. Para que un validador certifique el estado de la cadena, participe en comités de sincronización y proponga bloques, las claves de firma deben ser fácilmente accesibles por el cliente validador. Estos deben estar conectados a Internet de alguna forma, y por lo tanto se consideran inherentemente como claves «calientes». Este es un requisito para que su validador pueda certificar y, por lo tanto, las claves utilizadas para transferir o retirar fondos están separadas por razones de seguridad. + +Las claves BLS de retirada se utilizan para firmar un mensaje de una sola vez que declara a qué cuenta de la capa de ejecución deberían ir las recompensas de participación y los fondos sacados. Una vez que este mensaje se difunda, las claves BLS de retirada ya no son necesarias. En cambio, el control sobre los fondos retirados se delega permanentemente a la dirección que usted proporcionó. Esto le permite establecer una dirección de retiro segura a través de su propio almacenamiento en frío, minimizando el riesgo para sus fondos de validador, incluso si alguien controla las claves de firmado de validador. + +Para habilitar la retirada, es necesario actualizar las credenciales\*. Este proceso implica generar las claves de retirada usando su frase mnemotécnica de recuperación. + +Asegúrese de hacer una copia de esta frase de recuperación de forma segura, o no podrá generar sus claves de retirada cuando llegue el momento. + +\*Los participantes que proporcionaran una dirección de retirada con depósito inicial no necesitan establecerla. Consulte con su proveedor de SaaS para obtener ayuda acerca de cómo preparar su validador. + + + +En abril de 2023, se habilitó la retirada de participaciones en la actualización Shanghai/Capella. Los participantes deben proporcionar una dirección de retirada (si no se proporciona en el depósito inicial), y los pagos de recompensas se distribuirán automáticamente de forma periódica cada pocos días. + +Los validadores también pueden salir como validadores, lo que desbloqueará su saldo restante en ETH para retirarlo. Las cuentas que hayan proporcionado una dirección de retirada de ejecución y hayan completado el proceso de salida recibirán su saldo completo a la dirección de retirada proporcionada durante el próximo barrido del validador. + +Más sobre los retiros de Staking + + + +Al usar un proveedor SaaS, está confiando la operación de su nodo a otra persona. Esto conlleva el riesgo de un funcionamiento deficiente del nodo, que no está bajo su control. En el caso de que recorte la actividad de su validador, el saldo de su validador será penalizado y eliminado forzosamente del grupo de validadores. + +Al finalizar el proceso de recorte y salida, estos fondos se transferirán a la dirección de retirada asignada al validador. Para habilitar la retirada, es preciso proporcionar una dirección. Puede haberse proporcionado en un depósito inicial. De lo contrario, se tendrán que usar las claves de retirada del validador para firmar un mensaje declarando una dirección de retirada. Si no se ha proporcionado ninguna dirección de retirada, los fondos permanecerán bloqueados hasta que se proporcione. + +Póngase en contacto con un proveedor individual de SaaS para obtener más detalles sobre cualquier garantía u opciones de seguridad, así como para obtener instrucciones de configuración de una dirección de retirada. Si prefiere tener control total de la configuración de su validador, infórmese sobre cómo apostar sus ETH en solitario. + + +## Para profundizar sobre el tema {#further-reading} + +- [Examen de los servicios de participación](https://www.attestant.io/posts/evaluating-staking-services/) - _Jim McDonald 2020_ diff --git a/public/content/translations/es/staking/solo/index.md b/public/content/translations/es/staking/solo/index.md new file mode 100644 index 00000000000..d698532d6c4 --- /dev/null +++ b/public/content/translations/es/staking/solo/index.md @@ -0,0 +1,203 @@ +--- +title: Participación individual de su ETH +description: Una visión general de cómo empezar a postar su ETH individualmente +lang: es +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-solo.png +alt: Leslie, el rinoceronte, en su propio chip. +sidebarDepth: 2 +summaryPoints: + - Reciba el máximo de recompensas directamente del protocolo al mantener su validador conectado y funcionando correctamente + - Ejecute hardware doméstico y contribuya personalmente a la seguridad y a la descentralización de la red Ethereum. + - Desconfíe y no deje nunca de controlar las claves de sus fondos +--- + +## ¿Qué es staking individual? {#what-is-solo-staking} + +Participación individual es el acto de [ ejecutar un nodo Ethereum](/run-a-node/) conectado a Internet y depositar 32 ETH para activar un [validador](#faq), abriendo la posibilidad de participar directamente en el consenso de la red. + +**La participación en solitario aumenta la descentralización de la red Ethereum**, haciendo que Ethereum sea más resistente a la censura y robusto contra ataques. Puede que otros métodos de participación no ayuden a la red de la misma manera. La participación en solitario es la mejor opción de participación para asegurar Ethereum. + +Un nodo Ethereum consiste tanto en un cliente de capa de ejecución (EL), como en un cliente de capa de consenso (CL). Estos clientes son software que funcionan estrechamente entre sí, y adicionalmente con un par de claves de firma válidas, para verificar transacciones y bloques, certificar la cabeza correcta de la cadena, resumir verificaciones, y proponer bloques. + +Los participantes individuales conlleva la responsabilidad de operar el hardware necesario para ejecutar dichos clientes. Es muy recomendable utilizar una máquina específicamente dedicada a esto, que usted opere desde su hogar, algo que es extremadamente beneficioso para la salud de la red. + +El participante individual recibe las recompensas directamente desde el protocolo por mantener su validador funcionando correctamente y en línea. + +## ¿Por qué debería participar de forma individual? {#why-stake-solo} + +La participación en solitario conlleva más responsabilidad, pero proporciona el máximo control posible sobre los fondos y la configuración para realizarla. + + + + + + + +## Consideraciones antes de hacer una participación individual {#considerations-before-staking-solo} + +Por mucho que deseemos que la participación individual fuera accesible y libre de riesgos para todos, esta no es la realidad. Hay algunas consideraciones prácticas y serias que debemos tener en cuenta antes de elegir la participación individual de su ETH. + + + +Al operar su propio nodo debería invertir tiempo en aprender cómo utilizar el software que ha elegido. Esto implica leer la documentación pertinente y estar en sintonía con los canales de comunicación de los equipos de desarrollo relacionados. + +Cuanto más entienda sobre el software que está ejecutando y cómo funciona la prueba de participación, menos riesgo tendrá como participante, y le será más fácil solucionar cualquier incidente que pueda surgir en su función como operador de nodos. + + + +La configuración del nodo requiere un nivel de comodidad razonable al trabajar con ordenadores, aunque las nuevas herramientas lo facilitan con el tiempo. Entender la interfaz de la línea de comandos es útil, pero no estrictamente necesario. + +También requiere una configuración de hardware muy básica, y cierta comprensión de las especificaciones mínimas recomendadas. + + + +De la misma manera que las claves privadas protegen su dirección de Ethereum, necesitará generar claves específicamente para su validador. Debe entender cómo proteger cualquier frase semilla o clave secreta de forma efectiva.{' '} + +Seguridad y prevención de estafa Ethereum + + + +El hardware ocasionalmente falla, en las conexiones de red suceden desconexiones, y el software cliente ocasionalmente necesita actualizarse. El mantenimiento de nodos es inevitable y de vez en cuando requerirá tu atención. Conviene que esté al tanto de cualquier actualización de red prevista, o de otras actualizaciones críticas del software cliente. + + + +Sus recompensas son proporcionales al tiempo que su validador esté en línea y certifique correctamente. El tiempo de inactividad incurre en penalizaciones proporcionales a los validadores que estén desconectados al mismo tiempo, pero no ocasiona recortes. El ancho de banda también importa, ya que las recompensas disminuyen por las certificaciones que no se reciben a tiempo. Los requisitos variarán, pero se recomienda un mínimo de 10 Mb/s de descarga y carga. + + + +Distinta a las penalizaciones por inactividad por estar fuera de línea, el recorte es una penalización mucho más grave reservada para infracciones maliciosas. Al ejecutar un cliente minoritario con sus claves cargadas en una sola máquina cada vez, se reduce el riesgo de ser penalizado por recortes. Dicho esto, todos los participantes deben ser conscientes de los riesgos de los recortes. + + Más sobre recortes y el ciclo de vida del validador + + + + + +## Cómo funciona {#how-it-works} + + + +Mientras esté activo, obtendrá recompensas ETH que se depositarán periódicamente en su dirección de retirada. + +Si lo desea, puede salir como validador, lo que elimina el requisito de estar en línea y detiene cualquier recompensa adicional. Su saldo restante se retirará entonces a la dirección de retirada que usted designe durante la configuración. + +[Más sobre los retiros de Staking](/staking/withdrawals/) + +## Familiarícese con el Lanzador de participaciones {#get-started-on-the-staking-launchpad} + +El Lanzador de participaciones es una aplicación de código abierto que le ayudará a convertirse en un participante. Le guiará a través de la elección de sus clientes de software, a generar sus llaves y depositar su ETH en el contrato de depósito de participación. Se proporciona una lista de verificación para asegurarse de que ha cubierto todo para configurar su validador de forma segura. + + + +## Qué considerar respecto a las herramientas de configuración de nodos y clientes {#node-tool-considerations} + +Cada vez hay más herramientas y servicios para ayudarle a que usted haga una participación individual de su ETH, pero cada uno de ellos conlleva diferentes riesgos y beneficios. + +Los indicadores de atributos a continuación indican las fortalezas o debilidades que puede tener cada herramienta de participación. Utilice esta sección como referencia sobre cómo definimos estos atributos, mientras está eligiendo las herramientas que le ayudarán con su experiencia de participación. + + + +## Explora las herramientas de configuración de nodos y clientes {#node-and-client-tools} + +Hay una variedad de opciones disponibles para ayudarle con su configuración. Utilice los indicadores de arriba para guiarle a través de las herramientas que se muestran a continuación. + + + +### Herramientas de nodo + + + +Por favor, tenga en cuenta la importancia de elegir un [cliente minoritario](/developers/docs/nodes-and-clients/client-diversity/) ya que mejora la seguridad de la red y limita su riesgo. Las herramientas que le permiten configurar un cliente minoritario se expresan como «multi-cliente». + +### Generadores de claves + +Estas herramientas pueden utilizarse como alternativa a la [CLI de depósito de participación](https://github.com/ethereum/staking-deposit-cli/) para ayudar con la generación de claves. + + + +¿Tiene alguna sugerencia para una herramienta de participación no cubierta? Eche un vistazo a nuestra [política de listado de productos](/contributing/adding-staking-products/) para ver si le parece una opción aceptable y enviarla para su revisión. + +## Explorar guías de participación individual {#staking-guides} + + + +## Preguntas más frecuentes {#faq} + +Estas son algunas de las preguntas más comunes sobre la participación que vale la pena conocer. + + + +Un validador es una entidad virtual que vive en Ethereum y participa en el consenso del protocolo Ethereum. Los validadores están representados por un saldo, una clave pública y otras propiedades. Un cliente validador es el software que actúa en nombre del validador al mantener y utilizar su clave privada. Un solo cliente validador puede mantener muchos pares de claves y controlar muchos validadores. + + + + +Cada par de claves asociadas a un validador requieren exactamente 32 ETH para ser activadas. Más ETH depositado en un solo par de claves no incrementa el potencial de recompensas, ya que cada validador está limitado a un saldo efectivo de 32 ETH. Esto significa que la participación se realiza en incrementos de 32 ETH, cada uno con su propio conjunto de claves y saldo. + +No deposite más de 32 ETH para un solo validador. No aumentará sus recompensas. Si se ha establecido una dirección de retirada para el validador, cualquier exceso de fondos superior a 32 ETH se retirará automáticamente a esta dirección durante el próximo barrido del validador. + +Si la participación individual le parece demasiado exigente, plantéese el usar un proveedor de participación como servicio, o si está trabajando con menos de 32 ETH, plantéese los grupos de participación. + + + +El desconectarse cuando la red está finalizando correctamente NO producirá «recortes». Se le aplicarán ligeras penalizaciones por inactividad si su validador no está disponible para certificar una época determinada (a cada 6,4 minutos), que es muy diferente del «recorte». Estas penalizaciones son ligeramente inferiores a la recompensa que usted habría ganado si el validador hubiera estado disponible para certificar, y las pérdidas pueden devolverse al cabo del mismo tiempo aproximadamente en línea. + +Tenga en cuenta que las penalizaciones por inactividad son proporcionales a los validadores que estén fuera de línea al mismo tiempo. En casos en los que una gran parte de la red está desconectada a la vez, las penalizaciones para cada uno de estos validadores serán mayores que cuando un validador no esté disponible. + +En casos extremos, si la red se detiene con más de un tercio de los validadores fuera de línea como resultado, estos usuarios serán penalizados con lo que se conoce como una fuga cuadrática de inactividad, esto es, un drenaje exponencial de ETH de las cuentas de validadores fuera de línea. Esto permite que la red eventualmente se regenere al quemar ETH de validadores inactivos hasta que su balance alcance los 16 ETH, en cuyo momento serán expulsados automáticamente del grupo de validadores. Los validadores en línea restantes eventualmente comprenderán más de 2/3 la red de nuevo, satisfaciendo la supermayoría necesaria para finalizar la cadena una vez más. + + + +Francamente, esto es algo que no se puede garantizar al cien por cien, pero si se actúa de buena fe, se ejecuta un cliente minoritario y solo mantiene sus claves de firma en una máquina cada vez, el riesgo de sufrir «recortes» es prácticamente cero. + +Solo hay unas cuantas formas específicas de que un validador sea penalizado con «recortes» y expulsado de la red. A fecha de publicación de este blog, los «recortes» que se han producido han sido exclusivamente un producto de configuraciones de hardware redundantes donde las claves de firma se almacenan en dos máquinas separadas a la vez. Esto puede dar como resultado casualmente un doble voto de sus llaves, lo cual es una acción penalizada. + +Ejecutar un cliente de supermayoría (cualquier cliente utilizado por más de 2/3 la red) también tiene el riesgo de un potencial «recorte» en el caso de que este cliente tenga un error que resulte en una bifurcación de la cadena. Esto puede producir una bifurcación defectuosa que se finalice. Para revertir a la cadena prevista, se requeriría enviar un voto surround («envolvente») intentando deshacer un bloque finalizado. Esto también es una acción penalizada con «recorte» y que se puede evitar simplemente ejecutando un cliente minoritario en su lugar. + +Errores equivalentes en un cliente minoritario nunca finalizarán (bloques) y, por lo tanto, nunca resultarían en un voto surround («envolvente»), y simplemente resultaría en penalizaciones por inactividad, no de «recorte». + + + + + +Los clientes individuales pueden variar ligeramente en términos de funcionamiento e interfaz de usuario, ya que cada uno lo desarrollan diferentes equipos, utilizando una variedad de lenguajes de programación. Dicho esto, ninguno de ellos es el «mejor». Todos los clientes de producción son excelentes piezas de software, los cuales realizan las mismas funciones fundamentales para sincronizar e interactuar con la cadena de bloques. + +Dado que todos los clientes de producción proporcionan la misma funcionalidad básica, es en realidad es muy importante que elija un cliente minoritario, esto es, cualquier cliente que NO esté siendo usado actualmente por la mayoría de validadores de la red. Esto puede parecer poco intuitivo, pero el ejecutar un cliente en mayoría o supermayoría aumenta su riesgo de sufrir «recortes» en el caso de error en ese cliente. La ejecución de un cliente minoritario limita drásticamente estos riesgos. + +Más información sobre por qué la diversidad de clientes es crítica + + + +Aunque un servidor privado virtual (VPS) puede utilizarse en sustitución del hardware doméstico, el acceso físico y la ubicación de su cliente validador sí importa. Las soluciones centralizadas en la nube tales como Amazon Web Services (AWS) o Digital Ocean permiten la conveniencia de no tener que obtener y operar hardware, a expensas de centralizar la red. + +Cuantos más clientes validadores se ejecuten en una sola solución centralizada de almacenamiento en la nube, más peligroso será para estos usuarios. Cualquier evento que desconecte a estos proveedores, ya sea por un ataque, por exigencias regulatorias, o simplemente por interrupciones de energía o Internet, ocasionará que cada cliente validador que se base en estos servidores se desconecte al mismo tiempo. + +Las penalizaciones por estar fuera de línea son proporcionales a cuántos están fuera de línea al mismo tiempo. El uso de VPS aumenta enormemente el riesgo de que las penalizaciones por estar fuera de línea sean más severas, y aumenta su riesgo de fuga cuadrática o «recorte» en el caso de que la interrupción sea lo suficientemente importante. Para reducir su propio riesgo, y el riesgo para la red, se recomienda encarecidamente a los usuarios obtener y operar su propio hardware. + + + + +Las retiradas de cualquier tipo de la cadena de baliza requieren que se establezcan credenciales de retirada. + +Los nuevos participantes las establecen en el momento de la generación y el depósito de la clave. Los particpipantes existentes que no hayan configurado esta funcionalidad pueden actualizar sus claves para poder utilizarla. + +Una vez establecidas las credenciales de retirada, los pagos de recompensa (ETH acumulados por encima de los 32 iniciales) se distribuirán periódica y automáticamente a la dirección de retirada. + +Para desbloquear y recibir el saldo completo, también debe completar el proceso de salida de su validador. + +Más sobre los retiros de Staking + + +## Para profundizar sobre el tema {#further-reading} + +- [ El problema de la diversidad de clientes de Ethereum](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ +- [Controbuir a la diversidad de clientes](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ +- [Diversidad de clientes en la capa de consenso de Ethereum](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ +- [Guía: Cómo comprar hardware para un validador de Ethereum](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ +- [Paso a paso: Cómo unirse a la red de prueba de Ethereum 2.0](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _Butta_ +- [Consejos para la prevención de «recortes» de Eth2](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raúl Jordan 2020_ diff --git a/public/content/translations/es/staking/withdrawals/index.md b/public/content/translations/es/staking/withdrawals/index.md new file mode 100644 index 00000000000..505bca8dd21 --- /dev/null +++ b/public/content/translations/es/staking/withdrawals/index.md @@ -0,0 +1,218 @@ +--- +title: Retiradas de participaciones +description: La página resume lo que son los «empujones de retirada», cómo funcionan y lo que los participantes deben hacer para obtener sus recompensas +lang: es +template: staking +image: /staking/leslie-withdrawal.png +alt: Leslie el rinoceronte con sus recompensas de participaciones +sidebarDepth: 2 +summaryPoints: + - La actualización Shanghai/Capella habilita las retiradas de participaciones en Ethereum + - Los operadores del validador deben proporcionar una dirección de retirada para habilitarla + - Las recompensas se distribuyen automáticamente cada tantos días + - Los validadores que salen completamente de las apuestas recibirán su balance restante +--- + + +Las retiradas de participaciones se habilitarán con la actualización de Shanghai/Capella que ocurrió el 12 de abril de 2023. Más información sobre Shanghai/Capella + + +**Las retiradas de participaciones** se refieren a las transferencias de ETH para la cuenta del validador en la capa de consenso de Ethereum (la cadena de baliza), a la capa de ejecución donde se pueden transferir. + +**Los pagos de recompensas del saldo excedente** de más de 32 ETH se enviará automática y regularmente a una dirección de retirada vinculada a cada validador, una vez proporcionada por el usuario. Los usuarios también pueden **dejar de apostar por completo**, desbloqueando todo su saldo del validador. + +## Recompensas de participaciones {#staking-rewards} + +Los pagos de recompensas se procesan automáticamente para cuentas de validadores activas con un saldo efectivo máximo de 32 ETH. + +Cualquier saldo por encima de 32 ETH ganado a través de recompensas no contribuye realmente al capital inicial, ni aumenta el peso de este validador en la red y, por lo tanto, se retira automáticamente como un pago de recompensa cada pocos días. Aparte de proporcionar una dirección de retiro una vez, estas recompensas no requieren ninguna acción del operador validador. Todo esto se inicia en la capa de consenso, por lo tanto no se requiere gas (tarifa de transacción) en ningún paso. + +### ¿Cómo hemos llegado hasta aquí? {#how-did-we-get-here} + +En los últimos años, Ethereum se ha sometido a varias actualizaciones de red que han hecho la transición a una red protegida por ETH en sí, en lugar de la minería con alto consumo nergético como era antes. Participar en el consenso en Ethereum se denomina ahora «participar», ya que los participantes han bloqueado voluntariamente ETH, poniéndolos «en juego» por la capacidad de participar en la red. Los usuarios que sigan las reglas serán recompensados, mientras que los intentos de hacer trampa podrán penalizarse. + +Desde el lanzamiento del contrato de depósito de participación en noviembre de 2020, algunos valientes pioneros de Ethereum han bloqueado voluntariamente fondos para activar «validadores»: cuentas especiales que tienen derecho a certificar formalmente y proponer bloques, siguiendo las reglas de la red. + +Antes de la actualización Shanghai/Capella, no se podía usar o acceder a sus ETH apostados. Pero ahora, puede optar por recibir automáticamente sus recompensas en una cuenta elegida y también puede retirar sus ETH apostados cuando quiera. + +### ¿Cómo me preparo? {#how-do-i-prepare} + + + +### Avisos importantes {#important-notices} + +Proporcionar una dirección de retirada es un paso obligatorio para cualquier cuenta de validdor antes de que sea elegible para que se retiren ETH de su saldo. + + + A cada cuenta de validador sólo se le puede asignar una dirección de retirada, una vez. Cuando se elige una dirección y se envía a la capa de consenso, no puede deshacerse ni cambiarse nuevamente. Vuelva a verificar la propiedad y la precisión de la dirección proporcionada antes de enviarla. + + +Mientras tanto no hay ninguna amenaza para sus fondos por no proporcionar esto, asumiendo que su frase mnemónica/de recuperación esté segura fuera de línea, y no se vea afectada de ninguna manera. Si no agrega las credenciales de retirada, simplemente dejará los ETH bloqueados en la cuenta del validador como ha estado hasta que se proporcione una dirección de retirada. + +## Salir completamente de la apuesta {#exiting-staking-entirely} + +Antes de que _los_ fondos puedan transferirse fuera del saldo de una cuenta de validación, es necesario proporcionar una dirección de retirada. + +Para abandonar la apuesta y recuperar todo su saldo, los usuarios deben enviar un mensaje de «salida voluntaria» firmado con sus claves de validación que iniciará el proceso de desvinculación de la apuesta. Esto se hace con su cliente validador y se envía a su nodo consenso, y no requiere gas. + +El proceso de un validador que sale de la apuesta lleva un tiempo variable, en función de la cantidad de peticiones de salida que se registren al mismo tiempo. Una vez completado, esta cuenta ya no tendrá la responsabilidad de realizar las tareas de la red de validación, no será elegible para recibir recompensas ni tendrá sus ETH «apostados». En ese momento, la cuenta se marcará como totalmente «retirable». + +Una vez que una cuenta se marca como «retirable» y se proporcionan las credenciales de retirada, no hay nada más que el usuario deba hacer aparte de esperar. Los proponentes de bloques barren de forma automática y continua las cuentas en busca de fondos que reúnan las condiciones de salida, y el saldo de su cuenta se transferirá en su totalidad (también conocido como «retirada completa») durante el próximo barrido. + +## ¿Cuándo se habilitarán las retiradas de apuestas? {#when} + +¡Las retiradas de apuestas ya están hablitadas! La funcionalidad de retirada se ha habilitado como parte de la actualización Shanghai/Capella que se lanzó el 12 de abril de 2023. + +La actualización Shanghai/Capella habilitó previamente que los ETH apostados se reclamen en las cuentas regulares de Ethereum. Con esto se cierra el ciclo de la liquidez y aproima un poco más a Ethereum en su intención de desarrollar un ecosistema descentralizado escalable, seguro y sostenible. + +- [Más sobre la historia de Ethereum](/history/) +- [Más sobre la hoja de ruta de Ethereum](/roadmap/) + +## ¿Cómo funcionan los pagos de las retiradas? {#how-do-withdrawals-work} + +La elegibilidad de un validador dado para una retirada o no, viene determinada por el estado de la cuenta del validador. No se necesita ninguna entrada de usuario en un momento dado para determinar si una cuenta debe tener una retirada iniciada o no (todo el proceso lo realiza automáticamente la capa de consenso en un bucle continuo). + +### ¿Es más bien de los que aprende viendo? {#visual-learner} + +Lea la explicación sobre retirads de apuestas en Ethereum hecha por Finematics: + + + +### «Barrido» del validador {#validator-sweeping} + +Cuando un validador está programado para proponer el siguiente bloque, se requiere construir una cola de retirada, de hasta 16 retiradas elegibles. Para ello se empieza originariamente con el índice del validador 0, que determina si hay una retirada elegible para esta cuenta según las reglas del protocolo y se añade a la cola, si existe. El validador establecido para proponer el siguiente bloque lo tomará ahí donde el último lo haya dejado y irá procesando las órdenes de manera indefinida. + + +Piense en un reloj analógico. La manecilla en el reloj marca la hora, avanza en un sentido, no se salta ninguna hora y, al alcanzar el último número, vuelve nuevamente al punto de inicio.

+Ahora en lugar del 1 al 12, imagine que el reloj tiene de 0 hasta N (el número total de cuentas validadoras que alguna vez se registraron en la capa de consenso, más de 500.000 en enero de 2023).

+La manecilla en el reloj apunta hacia el siguiente validador que necesita ser verificado antes de permitirle retiradas. Empieza a partir de 0, y avanza todo el camino alrededor sin saltarse ninguna cuenta. Cuando se alcance el último validador, el ciclo continúa volviendo al principio. +
+ +#### Cómo comprobar si una cuenta es elegible para retirada {#checking-an-account-for-withdrawals} + +Mientras un proponente barre posibles retiradas a través de validadores, cada validador que se revisa se evalúa, a tenor de una pequeña serie de preguntas, para determinar si debe activarse una retirada, y de ser así, cuántos ETH se deberían retirar. + +1. **¿Se ha proporcionado una dirección de retirada?** Si no se ha proporcionado ninguna dirección, se omitirá la cuenta y no se iniciará ningún proceso de retirada. +2. **¿El validador ha salido y es apto para la retirada?** Si el validador ha salido completamente, y hemos llegado a la época en la que se considera que su cuenta es «retirable», entonces se procesará una retirada completa. Esto transferirá todo el saldo restante a la dirección de retirada. +3. **¿Supera el saldo efecto máximo los 32 ETH?** Si la cuenta tiene credenciales de retirada, no está completamente cerrada y tiene recompensas sobre los 32 en espera, se procesará una retirada parcial que sólo transfiere las recompensas por encima de 32 a la dirección de retirada del usuario. + +En el transcurso del ciclo de vida de un validador, solo hay dos acciones que puede emprender un validador que influyen directamente en este flujo: + +- Proporcionar credenciales de retirada para habilitar cualquier forma de retirada +- Salir de la red, que provocará una retirada completa + +### Gas gratis {#gas-free} + +Este enfoque a las retiradas de apuestas evita que los participantes tengan que presentar manualmente una transacción solicitando la retirada de una cantidad particular de ETH. Esto también significa que no se requiere **ningún gas (comisión de transacción)** y que las retiradas tampoco compiten por el espacio de bloque existente de la capa de ejecución. + +### ¿Con qué frecuencia obtendré mis recompensas de participación? {#how-soon} + +Se pueden procesar un máximo de 16 retiradas en un solo bloque. A ese ritmo, se pueden procesar 115.200 retiradas de validadores al día (asumiendo que no se pierda el turno). Como se mencionó anteriormente, se omitirá a los validadores sin retiradas elegibles, lo que reducirá el tiempo para finalizar el barrido. + +Ampliando este cálculo podemos estimar el tiempo que llevará el procesar un número determinado de retiradas: + + + +| Número de retiradas | Tiempo que llevará | +| :-----------------: | :----------------: | +| 400.000 | 3,5 días | +| 500.00 | 4,3 días | +| 600.000 | 5,2 días | +| 700.000 | 6,1 días | +| 800.000 | 7 días | + + + +Como puede ver, cuantos más validadores esten en la red, más se ralentiza el proceso. Un aumento en las vacantes podría ralentizar esto proporcionalmente, pero esto generalmente representará el lado más lento de los posibles resultados. + +## Preguntas más frecuentes {#faq} + + +No, el proceso para proporcionar credenciales de retirada es un proceso de una sola vez, y no se puede cambiar una vez presentado. + + + +Al establecer una capa de ejecución en una dirección de retirada, las credenciales de retirada para ese validador se cambian permanentemente. Esto significa que las credenciales antiguas ya no funcionarán, y las nuevas credenciales irán directamente a una cuenta de capa de ejecución. + +Las direcciones de retirada pueden ser un contrato inteligente (controlado por su código), o una cuenta de propietario externa (EOA, controlada por su clave privada). Actualmente estas cuentas no tienen forma de comunicar un mensaje de vuelta a la capa de consenso que señalaría un cambio de credenciales de validador, y añadir esta funcionalidad añadiría una complejidad innecesaria al protocolo. + +Como alternativa al cambio de la dirección de retirada para un validador en particular, los usuarios pueden optar por establecer un contrato inteligente como su dirección de retirada, la cual podría manejar la rotación clave, como una caja fuerte. Los usuarios que establezcan sus fondos en su propia EOA pueden realizar una salida completa para retirar todos sus fondos apostados, y luego volver a apostarlos usando nuevas credenciales. + + + + +Si forma parte de alguna reserva de participación o tiene tókenes de participación, debería consultarle a su proveedor los detalles de retiradas de participación, pues cada servicio opera de forma distinta. + +En general, los usuarios deberían tener la libertad de reclamar sus ETH apostados subyacentes, o cambiar de proveedor de apuestas. Si un grupo en particular se está volviendo demasiado grande, los fondos se pueden cerrar y canjear, y volver a apostarlos con un proveedor más pequeño. O, si ha acumulado suficientes ETH podría apostar desde casa. + + + + +Sí, siempre y cuando su validador haya proporcionado una dirección de retirada. Se debe proporcionar una vez para habilitar inicialmente cualquier retirada, luego los pagos de recompensa se activarán automáticamente cada pocos días con cada barrido del validador. + + + + +No, si su validador todavía está activo en la red, una retirada completa no se producirá automáticamente. Esto requiere iniciar manualmente una salida voluntaria. + +Una vez que un validador ha completado el proceso de salida ―asumiendo que la cuenta tenga credenciales de retirada― el saldo restante se retirará entonces durante el siguiente barrido del validador. + + + + +Las retiradas están diseñadas para producirse automáticamente, transfiriendo cualquier ETH que no contribuya activamente a la apuesta. Esto incluye saldos completos para cuentas que han completado el proceso de salida. + +No es posible solicitar manualmente la retirada de cantidades específicas de ETH. + + + + +Se recomienda a los operadores de validadores visitar la página Retiradas en la plataforma de lanzamiento de participaciones donde encontrarás más detalles sobre cómo preparar tu validador para retiradas. Preparado, el momento de los eventos y más detalles sobre cómo funcionan las retiradas. + +Para probar primero su configuración en una red de pruebas, visite el Lanzador de apuestas de red de prueba Goerli para empezar. + + + + +No. Una vez que un validador ha salido y su saldo total se ha retirado, cualquier fondo adicional depositado a ese validador se transferirá automáticamente a la dirección de retirada durante el próximo barrido del validador. Para volver a apostar ETH, se debe activar un validador nuevo. + + +## Más información {#further-reading} + +- [Retiradas en la plataforma de lanzamiento de participaciones](https://launchpad.ethereum.org/withdrawals) +- [EIP-4895: La cadena de baliza impulsa las retiradas como operaciones](https://eips.ethereum.org/EIPS/eip-4895) +- [ Ethereum Cat Herders - Shanghai](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) +- [PEEPanEIP #94: Retirada de ETH apostados (Prueba) con Potuz & Hsiao-Wei Wang](https://www.youtube.com/watch?v=G8UstwmGtyE) +- [PEEPanEIP#68: EIP-4895: La cadena de baliza impulsa retiradas como operaciones con Alex Stokes](https://www.youtube.com/watch?v=CcL9RJBljUs) +- [Entender el saldo de efectivo del validador](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/es/web3/index.md b/public/content/translations/es/web3/index.md similarity index 100% rename from src/content/translations/es/web3/index.md rename to public/content/translations/es/web3/index.md diff --git a/src/content/translations/es/web3/web2.png b/public/content/translations/es/web3/web2.png similarity index 100% rename from src/content/translations/es/web3/web2.png rename to public/content/translations/es/web3/web2.png diff --git a/src/content/translations/es/web3/web3.png b/public/content/translations/es/web3/web3.png similarity index 100% rename from src/content/translations/es/web3/web3.png rename to public/content/translations/es/web3/web3.png diff --git a/public/content/translations/es/whitepaper/index.md b/public/content/translations/es/whitepaper/index.md new file mode 100644 index 00000000000..426640965af --- /dev/null +++ b/public/content/translations/es/whitepaper/index.md @@ -0,0 +1,501 @@ +--- +title: Guía de Ethereum +description: Una guía introductoria a Ethereum publicada en 2013 antes de su lanzamiento. +lang: es +sidebarDepth: 2 +--- + +# Guía de Ethereum {#ethereum-whitepaper} + +_Esta guía introductoria fue publicada originalmente en 2013 por Vitalik Buterin, el fundador de [Ethereum](/what-is-ethereum/), antes del lanzamiento del proyecto en 2015. Vale la pena señalar que Ethereum, al igual que muchos proyectos de software de código abierto impulsados por la comunidad, ha evolucionado desde su inicio._ + +_Aunque tenga varios años de antigüedad, mantenemos este documento porque sigue sirviendo como una referencia útil y una representación precisa de Ethereum y su visión. Para aprender sobre los últimos desarrollos de Ethereum, y cómo se hacen los cambios en el protocolo, recomendamos [esta guía](/learn/)._ + +## Un contrato inteligente de nueva generación y una plataforma de aplicación descentralizada {#a-next-generation-smart-contract-and-decentralized-application-platform} + +La publicación de Bitcoin en 2009 por parte de Satoshi Nakamoto a menudo se ha aclamado como un avance radical en el ámbito del dinero y las divisas, siendo el primer ejemplo de un activo digital que a la vez no tiene respaldo o [valor intrínseco](http://bitcoinmagazine.com/8640/an-exploration-of-intrinsic-value-what-it-is-why-bitcoin-doesnt-have-it-and-why-bitcoin-does-have-it/) ni un emisor o mando centralizado. Sin embargo, otra parte, quizás más importante, del experimento de Bitcoin es la tecnología subyacente de blockchain como una herramienta de consenso distribuido, aspecto del Bitcoin sobre el cual se está empezando rápidamente a centrar la atención. Las aplicaciones alternativas que se citan comunmente de la tecnología de blockchain incluyen el el uso de los activos digitales blockchain para representar divisas a medida e instrumentos financieros ([monedas coloreadas](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit)), la propiedad de un artefacto físico subyacente ([propiedad inteligente](https://en.bitcoin.it/wiki/Smart_Property)), activos no fungibles como nombres de dominio ([Namecoin](http://namecoin.org)), así como aplicaciones más complejas que involucran activos digitales controlados directamente por un fragmento de código que implementa reglas arbitrarias ([contratos inteligentes](http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/idea.html)) o incluso [organizaciones autónomas descentralizadas](http://bitcoinmagazine.com/7050/bootstrapping-a-decentralized-autonomous-corporation-part-i/) basadas en blockchain (DAO). Lo que Ethereum pretende es proporcionar una blockchain con un lenguaje integrado Turing completo y plenamente desarrollado que se puede usar para crear "contratos" que, a su vez, se pueden utilizar para codificar funciones arbitrarias de transición de estados, permitiendo a los usuarios crear cualquiera de los sistemas descritos anteriormente, así como otros que todavía no hemos imaginado, tan solo escribiendo la lógica en unas pocas líneas de código. + +## Introducción a Bitcoin y a los conceptos existentes {#introduction-to-bitcoin-and-existing-concepts} + +### Historial {#history} + +El concepto de moneda digital descentralizada, así como aplicaciones alternativas como los registros de propiedades, ha existido durante décadas. Los protocolos anónimos de dinero digital de los años ochenta y noventa, en su mayoría depentiendes de una primitiva criptográfica conocida como firma digital ciega, proporcionaron una moneda con un alto grado de privacidad, pero fallaron en gran medida al imponerse debido a su dependencia de un intermediario centralizado. En 1998, el [b-money](http://www.weidai.com/bmoney.txt) se convirtió en la primera propuesta para presentar la idea de crear dinero mediante la resolución de rompecabezas computaciones, así como del consenso descentralizado, pero la propuesta era escasa en detalles sobre cómo se podría implementar el consenso descentralizado en la práctica. En 2005, Hal Finney introdujo el concepto de [pruebas de trabajo reutilizables](http://nakamotoinstitute.org/finney/rpow/), un sistema que utiliza ideas del b-money junto con los rompecabezas computacionalmente difíciles Hashcash de Adam Back, para crear un concepto de criptomoneda. Sin embargo, una vez más se quedó por debajo del ideal al delegar la computación de confianza a un "backend". En 2009, una moneda descentralizada se implementó por primera vez en la práctica por Satoshi Nakamoto, combinando primitivas consolidadas para gestionar la propiedad a través de la criptografía de clave pública junto con un algoritmo de consenso para mantener un registro de quién es dueño de las monedas, conocido como "prueba de trabajo". + +El mecanismo detrás de la prueba de trabajo constituyó un avance en el área porque resolvió dos problemas al mismo tiempo. Primero, proporcionó un algoritmo de consenso simple y moderadamente efectivo, permitiendo que los nodos en la red aceptasen colectivamente un conjunto de actualizaciones canónicas al estado del libro de contabilidad de Bitcoin. Segundo, proporcionó un mecanismo para permitir la entrada libre en el proceso de consenso, resolviendo el problema político de decidir quién llega a influir en el consenso e impidiendo al mismo tiempo los ataques Sybil. Lo hace sustituyendo una barrera formal para la participación, por ejemplo, el requisito de estar registrado como una entidad única en una lista particular, por una barrera económica: el peso de un único nodo en el proceso de votación de consenso es directamente proporcional a la potencia de cálculo que aporta el nodo. Desde entonces, se ha propuesto un enfoque alternativo llamado _prueba de participación_, que calcula el peso de un nodo como la parte proporcional de sus monedas en propiedad y no sus recursos computacionales; la argumentación de los méritos relativos de ambos enfoques está fuera del alcance de este documento, pero hay que señalar que ambos pueden servir como la columna vertebral de una criptomoneda. + +Aquí puedes consultar una entrada del blog de Vitalik Buterin, el fundador de Ethereum, en [Prehistorial de Ethereum](https://vitalik.ca/general/2017/09/14/prehistory.html). [Aquí](https://blog.ethereum.org/2016/02/09/cut-and-try-building-a-dream/) hay otra entrada del blog con más contenido histórico. + +### Bitcoin como un sistema de transición de estados {#bitcoin-as-a-state-transition-system} + +![Transición de estado de Ethereum](./ethereum-state-transition.png) + +Desde un punto de vista técnico, el libro de contabilidad de una criptomoneda como Bitcoin se puede considerar un sistema de transición de estados, donde hay un "estado" que consiste en el estado de propiedad de todos los bitcoins existentes, y una "función de transición de estados" que toma un estado y una transacción y produce un nuevo estado como resultado. En un sistema bancario estándar, por ejemplo, el estado es una hoja de balance, una transacción es una petición para mover $X de A a B, y la función de transición de estado reduce el valor en la cuenta A en $X y aumenta el valor en la cuenta B en $X. Si la cuenta A tiene menos de $X en primer lugar, la función de transición de estado devuelve un error. Por lo tanto, se puede definir formalmente: + + APPLY(S,TX) -> S' o ERROR + +En el sistema bancario definido anteriormente: + + APPLY({ Alice: $50, Bob: $50 },"enviar $20 de Alice a Bob") = { Alice: $30, Bob: $70 } + +Pero: + + APPLY({ Alice: $50, Bob: $50 },"enviar $70 de Alice a Bob") = ERROR + +El "estado" en Bitcoin es el conjunto de todas las monedas (técnicamente, "transacciones de salida no gastadas" o UTXO por sus siglas en inglés) que han sido minadas y no se han gastado aún, junto con cada UTXO que tenga una denominación y un propietario (definido por una dirección de 20 bytes, que es esencialmente una clave pública criptográfica[fn. 1](#notas)). Una transacción contiene una o más entradas, donde cada entrada contiene una referencia a una UTXO existente y una firma criptográfica generada por la clave privada asociada con la dirección del propietario, y una o más salidas, donde cada salida contiene una nueva UTXO para ser añadida al estado. + +La función de transición de estado `APPLY(S,TX) -> S'` puede definirse aproximadamente como sigue: + +1. Para cada entrada en `TX`: + + - Si la UTXO referenciada no está en `S`, devolver un error. + - Si la firma proporcionada no coincide con el propietario de la UTXO, devolver un error. + +2. Si la suma de las denominaciones de todas las entradas UTXO es menor que la suma de las denominaciones de todas las salidas UTXO, devolver un error. +3. Devolver `S'` con todas las entradas UTXO eliminadas y todas las salidas UTXO añadidas. + +La primera mitad del primer paso impide a los emisores de transacciones que gasten monedas que no existen, la segunda mitad del primer paso impide que los emisores de transacciones gasten las monedas de otras personas, y el segundo paso hace cumplir la conservación del valor. Para poder utilizar esto para hacer pagos, el protocolo es el siguiente. Supongamos que Alice quiere enviar 11,7 BTC a Bob. En primer lugar, Alice buscará un conjunto de UTXO disponibles en su poder que sumen un total de al menos 11,7 BTC. En la práctica, Alice no será capaz de obtener exactamente 11,7 BTC; digamos que la cifra más pequeña que puede obtener es 6+4+2=12. A continuación, crea una transacción con estas tres entradas y dos salidas. La primera salida será 11,7 BTC con la dirección de Bob como propietario, y la segunda salida será el "cambio" restante de 0,3 BTC, siendo la propietaria la misma Alice. + +### Minería {#mining} + +![Bloques de Ethereum](./ethereum-blocks.png) + +Si tuviéramos acceso a un servicio centralizado de confianza, este sistema sería trivial de implementar; se podría exactamente como se ha descrito, usando el disco duro de un servidor centralizado para mantener el registro del estado. Sin embargo, con Bitcoin estamos tratando de construir un sistema monetario descentralizado, así que necesitaremos combinar el sistema de transición de estados con un sistema de consenso para asegurarse de que todo el mundo esté de acuerdo en el orden de las transacciones. El proceso de consenso descentralizado de Bitcoin requiere que los nodos que integran la red intenten producir continuamente paquetes de transacciones llamados "bloques". La red está pensada para producir aproximadamente un bloque cada diez minutos, donde cada bloque contiene una marca temporal, un nonce, una referencia (es decir, un hash de) al bloque anterior y una lista de todas las transacciones que han tenido lugar desde el bloque anterior. Con el tiempo, esto crea una "blockchain" persistente, cada vez mayor, que se actualiza constantemente para representar el último estado del libro de contabilidad de Bitcoin. + +El algoritmo para comprobar si un bloque es válido, expresado en este paradigma, es el siguiente: + +1. Evaluar si el bloque anterior al que hace referencia el bloque existe y es válido. +2. Evaluar que la marca temporal del bloque sea mayor que la del bloque anterior[fn. 2](#notes)y menos de 2 horas a futuro +3. Evaluar que la prueba de trabajo del bloque es válida. +4. Permitir que `S[0]` sea el estado al final del bloque anterior. +5. Supongamos que `TX` es la lista de transacciones del bloque con `n` transacciones. Para todo `i` de `0... -1`, asignar `S[i+1] = APPLY(S[i], X[i])` Si cualquier aplicación devuelve un error, salir y devolver false. +6. Devolver true, y asignar `S[n]` como estado al final de este bloque. + +Fundamentalmente, cada transacción en el bloque debe proporcionar una transición de estado válido de lo que era el estado canónico antes de que la transacción fuera ejecutada a otro nuevo estado. Obsérvese que el estado no se codifica en el bloque en modo alguno; es una abstracción pura que debe ser recordada por el nodo validador y solo puede ser calculada (de forma segura) para cualquier bloque empezando desde el estado de génesis y aplicando secuencialmente cada transacción en cada bloque. Además, hay que tener en cuenta que es importante el orden en el que el minero incluye transacciones en el bloque; si hay dos transacciones A y B en un bloque tal que B gasta un UTXO creado por A, entonces el bloque será válido si A viene antes que B pero no en caso contrario. + +La única condición de validación presente en la lista anterior que no se encuentra en otros sistemas es el requisito de la "prueba de trabajo". La condición concreta es que el hash SHA256 doble de cada bloque, tratado como un número de 256 bits, debe ser inferior a un objetivo ajustado dinámicamente, que en el momento de escribir estas líneas es aproximadamente 2187. El propósito de esto es hacer que la creación de bloques sea computacionalmente "difícil", impidiendo así que los atacantes de sybil reconstruyan todo el blockchain en su beneficio. Dado que SHA256 está diseñada para ser una función pseudoraleatoria completamente impredecible, la única forma de crear un bloque válido es mediante simple prueba y error, incrementando repetidamente el nonce y comprobando si el nuevo hash coincide. + +Para el objetivo actual de \~2187, la red debe hacer un promedio de \~269 intentos antes de encontrar un bloque válido; en general el objetivo se recalibra por la red cada 2016 blques, por lo que que en promedio se crea un bloque nuevo por parte de algún nodo en la red cada diez minutos. Para compensar a los mineros por este trabajo computacional, el minero de cada bloque tiene derecho a incluir una transacción dándose a si mismo 12,5 BTC creados de la nada. Además, si cualquier transacción tiene un valor total más alto en sus entradas que en sus salidas, la diferencia también se destina al minero como "tarifa de transacción". Por otra parte, este es también el único mecanismo por el cual se emiten BTC; el estado inicial no contenía monedas en absoluto. + +Para comprender mejor el propósito de la minería, examinemos que ocurre en el caso de un atacante malicioso. Puesto que se sabe que la criptografía subyacente de Bitcoin es segura, el atacante se enfoncará en una parte del sistema Bitcoin que no está protegida directamente por criptografía: el orden de las transacciones. La estrategia del atacante es simple: + +1. Envía 100 BTC a un vendedor a cambio de algún producto (preferiblemente un bien digital con entrega rápida) +2. Espera a la entrega del producto +3. Crea otra transacción en la que se envía los mismos 100 BTC a sí mismo +4. Trata de convencer a la red de que la transacción para sí mismo era la que tuvo lugar primero. + +Una vez que el paso (1) ha tenido lugar, tras unos minutos algún minero incluirá la transacción en un bloque, digamos el bloque número 270. Tras aproximadamente una hora, se habrán añadido cinco bloques más a la cadena tras ese bloque, con cada uno de esos bloques apuntando indirectamente a la transacción y así "confirmándola". En este punto, el vendedor aceptará el pago, lo tomará como finalizado y entregará el producto; ya que estamos asumiendo que se trata de un bien digital, la entrega es instantánea. Ahora, el atacante crea otra transacción en la que se envía 100 BTC a sí mismo. Si el atacante lo suelta sin más, la transacción no se procesará; los mineros intentarán ejecutar `APPLY(S, X)` y observarán que `TX` consume una UTXO que ya no está en el estado. En su lugar, el atacante crea una "bifurcación" del blockchain, comenzando por minar otra versión del bloque 270 apuntando al mismo bloque 269 como padre pero con la nueva transacción en lugar de la antigua. Dado que los datos del bloque son diferentes, esto requiere volver a hacer la prueba de trabajo. Además, la nueva versión del bloque 270 del atacante tiene un hash diferente, por lo que los bloques originales 271 a 275 no "apuntan" a él; por lo tanto, la cadena original y la nueva cadena del atacante están completamente separadas. La regla es que en una bifurcación se toma la blockchain más larga como la verdadera, y así los mineros legítimos trabajarán en la cadena 275 mientras el atacante por sí solo está trabajando en la cadena 270. Para que el atacante haga que su blockchain sea el más largo, necesitaría tener más poder computacional que el resto de la red combinada para alcanzarles (de ahí, "ataque del 51%"). + +### Árboles de Merkle {#merkle-trees} + +![SPV en Bitcoin](./spv-bitcoin.png) + +_Izquierda: Basta con presentar solo un pequeño número de nodos en un árbol de Merkle para demostrar la validez de una bifurcación._ + +_Derecha: Cualquier intento de cambiar cualquier parte del árbol de Merkle llevará eventualmente a una inconsistencia en algún lugar previo de la cadena._ + +Una característica importante de escalabilidad de Bitcoin es que el bloque se almacena en una estructura de datos multinivel. El "hash" de un bloque es en realidad solo el hash del encabezado del bloque, aproximadamente 200 bytes de datos que contienen la marca de tiempo, el nonce, el hash del bloque anterior y el hash raíz de una estructura de datos llamada el árbol de Merkle que almacena todas las transacciones en el bloque. Un árbol de Merkle es un tipo de árbol binario, compuesto por un conjunto de nodos con un gran número de nodos hoja en la parte inferior del árbol que contienen los datos subyacentes, un conjunto de nodos intermedios donde cada nodo es el hash de sus dos hijos, y finalmente un único nodo raíz, también formado por el hash de sus dos hijos, representando la parte "superior" del árbol. El propósito del árbol de Merkle es permitir que los datos en un bloque se entreguen fragmentados: un nodo solo puede descargar el encabezado de un bloque de una fuente, la pequeña parte del árbol relevante para ellos de otra fuente, y aún así tener la certeza de que todos los datos son correctos. La razón por la que esto funciona es que los hashes se propagan hacia arriba: si un usuario malicioso intenta insertar una transacción falsa en la parte inferior de un árbol Merkle, este cambio causará un cambio en el nodo anterior, y luego un cambio en el nodo anterior, finalmente cambiando la raíz del árbol y por lo tanto el hash del bloque, causando que el protocolo lo registre como un bloque completamente diferente (casi con total seguridad con una prueba de trabajo no válida). + +Se podría decir que el protocolo del árbol de Merkle es esencial para la sostenibilidad a largo plazo. Un "nodo completo" en la red Bitcoin, uno que almacene y procesa la totalidad de todos los bloques, ocupa unos 15 GB de espacio en disco en la red Bitcoin a fecha de abril de 2014, y está creciendo más de un gigabyte al mes. Actualmente, esto es viable para algunos ordenadores de escritorio y no para teléfonos, y más adelante en el futuro sólo las empresas y entusiastas podrán participar. Un protocolo conocido como "verificación de pago simplificada" (SPV) permite que existan otra clase de nodos, llamados "nodos ligeros", que descargan los encabezados del bloque, verifican la prueba de trabajo en los encabezados de bloque, y luego descargan solo las "bifurcaciones" asociadas con las transacciones que son relevantes para ellos. Esto permite que los nodos ligeros determinen con una sólida garantía de seguridad cuál es el estado de cualquier transacción de Bitcoin, y cuál es su saldo actual con tan solo descargar una pequeña porción de toda la blockchain. + +### Aplicaciones alternativas de la blockchain {#alternative-blockchain-applications} + +La idea de tomar el concepto subyacente de blockchain y aplicarla a otros conceptos también tiene un largo historial. En 1998, Nick Szabo publicó el concepto de [títulos de propiedad seguros con autoridad de propietario](http://nakamotoinstitute.org/secure-property-titles/), un documento que describe como "nuevos avances en la tecnología de bases de datos replicadas" permitirá un sistema basado en blockchain para almacenar un registro de quién es propietario de que terreno, creando un marco elaborado que incluye conceptos tales como la propiedad familiar, la posesión adversa y el impuesto sobre la tierra de Georgia. Lamentablemente, no había ningún sistema efectivo de bases de datos replicadas disponible en ese momento, por lo que el protocolo nunca se implementó en la práctica. Sin embargo, después de 2009, una vez que se desarrolló el consenso descentralizado de Bitcoin, un número de aplicaciones alternativas comenzaron a surgir rápidamente. + +- **Namecoin** - creada en 2010, [Namecoin](https://namecoin.org/) se describe como una base de datos de registro de nombres descentralizada. En protocolos descentralizados como Tor, Bitcoin y BitMessage, es necesario que haya una forma de identificar las cuentas de tal modo que otras personas puedan interactuar con ellas, pero en todas las soluciones existentes la única clase de identificador disponible es un hash pseudoaleatorio, como por ejemplo `1LW79wp5ZBqaHW1jL5TCiBCrhQYtHagUWy`. Idealmente, a uno le gustaría poder tener una cuenta con un nombre como "george". Sin embargo, el problema es que si una persona puede crear una cuenta llamada "george", entonces alguien puede usar el mismo proceso para registrar "george" para y suplantarle. La única solución es un paradigma primero-en-archivar, donde el primer registrador lo realiza satisfactoriamente y el segundo falla, un problema perfectamente adaptado para el protocolo de consenso de Bitcoin. Namecoin es la implementación más antigua y exitosa de un sistema de registro de nombres utilizando tal idea. +- **Monedas coloreadas** - el propósito de las [monedas coloreadas](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit) es servir como protocolo que permite a la gente crear sus propias monedas digitales, o, en el importante caso trivial de una moneda con una unidad, tokens digitales, en la blockchain de Bitcoin. En el protocolo de monedas coloreadas, alguien "emite" una nueva moneda al asignar públicamente un color a una UTXO de Bitcoin específica, y el protocolo define recursivamente el color de otras UTXO para que sean de color idéntico al de las entradas que la transacción que las creó ha gastado (algunas reglas especiales se aplican en el caso de entradas a color mixto). Esto permite a los usuarios tener carteras que contienen solo UTXO de un color específico y enviarlas por todo el mundo como bitcoins normales, rastreando hacia atrás por la blockchain para determinar el color de cualquier UTXO que reciban. +- **Metacoin**: La idea detrás de una metacoin es tener un protocolo que está montado sobre Bitcoin, usando transacciones de Bitcoin para almacenar las transacciones de metacoin, pero que tiene una función de transición de estado diferente, `APPLY'`. Dado que el protocolo metacoin no puede evitar que aparezcan transacciones de metacoin inválidas en la blockchain de Bitcoin, se añade una regla por la que si `APPLY'(S,TX)` devuelve un error, el protocolo por defecto aplica `APPLY'(S,TX) = S`. Esto proporciona un mecanismo fácil para crear un protocolo arbitrario de criptomonedas, con posibles características avanzadas que no pueden ser implementadas dentro del propio Bitcoin, pero con un coste de desarrollo muy bajo, ya que las complejidades de minado y trabajo en red ya las gestiona el protocolo Bitcoin. Las metacoins se han utilizado para implementar algunas clases de contratos financieros, registro de nombres e intercambio descentralizado. + +Por lo tanto, en general, hay dos enfoques para la construcción de un protocolo de consenso: construir una red independiente, o construir un protocolo sobre Bitcoin. El primer enfoque, aunque ha sido razonablemente exitoso en el caso de aplicaciones como Namecoin, es difícil de implementar; cada implementación individual necesita iniciar una blockchain independiente, además de construir y probar todas las transiciones de estado necesarias y el código de red. Además, predecimos que el conjunto de aplicaciones para la tecnología de consenso descentralizado seguirá una distribución de ley de potencias donde la gran mayoría de las aplicaciones serían demasiado pequeñas para garantizar su propia blockchain, y observamos que existen grandes clases de aplicaciones descentralizadas, en particular organizaciones autónomas descentralizadas, que necesitan interactuar entre sí. + +El enfoque basado en Bitcoin, por otra parte, tiene el defecto de que no hereda las características de verificación de pago simplificada de Bitcoin. SPV funciona en Bitcoin porque puede usar la profundidad de blockchain como indicador de validez; en algún momento, una vez que los antecesores de una transacción van lo suficientemente atrás, se puede afirmar con seguridad que fueron legítimamente parte del estado. Los metaprotocolos basados en blockchain, por otra parte, no pueden forzar a la blockchain a no incluir transacciones que no son válidas en el contexto de sus propios protocolos. Por lo tanto, una implementación de metaprotocolo SPV completamente segura necesitaría escanear hasta el comienzo de la blockchain de Bitcoin para determinar si ciertas transacciones son válidas. Actualmente, todas las implementaciones "ligeras" de los metaprotocolos basados en Bitcoin dependen de un servidor de confianza para proporcionar los datos, lo que es presumiblemente un resultado altamente subóptimo, especialmente cuando uno de los propósitos primarios de una criptomoneda es eliminar la necesidad de confianza. + +### Scripting {#scripting} + +Incluso sin ninguna extensión, el protocolo Bitcoin de hecho facilita una versión débil del concepto de "contratos inteligentes". La UTXO en Bitcoin puede ser propiedad no solo de una clave pública, sino también de un script más complicado expresado en un lenguaje simple de programación basado en pila. En este paradigma, una transacción que gaste esa UTXO debe proporcionar datos que satisfagan el script. De hecho, incluso el mecanismo público básico de propiedad de claves se implementa a través de un script: el script toma una firma de curva elíptica como entrada, lo verifica contra la transacción y la dirección que posee la UTXO, y devuelve 1 si la verificación es correcta y 0 en caso contrario. Existen otros scripts más complicados para varios casos de uso adicionales. Por ejemplo, se puede desarrollar un script que requiere firmas de dos de cada tres claves privadas para la validación ("multisig"), una configuración útil para cuentas corporativas, cuentas de ahorro seguras y algunos contextos de fideicomiso de comerciantes. Los scripts también pueden utilizarse para pagar recompensas por soluciones a problemas computacionales. y uno puede incluso construir un script que diga algo como: "este Bitcoin UTXO es tuyo si puedes proporcionar una prueba de SPV en la que enviaste una transacción de Dogecoin de esta denominación", permitiendo en esencia un intercambio descentralizado de criptomonedas. + +Sin embargo, el lenguaje de scripting implementado en Bitcoin tiene varias limitaciones importantes: + +- **Falta de completitud Turing**, es decir, mientras que hay un subconjunto grande de computación que el lenguaje de scripting de Bitcoin admite, no lo admite todo. La categoría principal que falta son los bucles. Esto se hace para evitar bucles infinitos durante la verificación de transacciones; teóricamente es un obstáculo superable para programadores de script, ya que cualquier bucle se puede simular simplemente repitiendo el código base muchas veces con un comando if, pero conduce a scripts que son muy ineficientes en términos de espacio. Por ejemplo, implementar un algoritmo alternativo de firma de la curva elíptica probablemente requeriría 256 rondas de multiplicación repetidas a incluir individualmente en el código. +- **Indiferencia al valor**: no hay forma de que un script UTXO proporcione un control detallado de la cantidad que se puede retirar. Por ejemplo, un caso de uso importante de un contrato de oráculo sería un contrato de cobertura, en el que A y B ponen 1000 dólares en BTC y después de 30 días el script envía 1000 dólares de BTC a A y el resto a B. Esto requeriría un oráculo para determinar el valor de 1 BTC en USD, pero aún así se trata de una mejora enorme en términos de confianza y e infraestructura con respecto a las soluciones totalmente centralizadas disponibles ahora. Sin embargo, dado que una UTXO es todo o nada, la única manera de lograr esto es a través de un hack muy ineficiente en el que tener muchas UTXO de diferentes denominaciones (por ejemplo, una UTXO de 2k para cada k de hasta 30) y hacer que el oráculo elija qué UTXO enviar a A y cuál a B. +- **Falta de estado**: una [UTXO se puede gastar o no gastar](https://bitcoin.org/en/glossary/unspent-transaction-output); no hay ninguna posibilidad de contratos multietapa o scripts que mantengan cualquier otro estado interno más allá de eso. Esto hace difícil hacer contratos de opciones multietapa, ofertas de intercambio descentralizadas o protocolos de compromiso criptográficos en dos etapas (necesarios para recompensas computacionales seguras). También significa que UTXO solo puede utilizarse para construir contratos únicos aislados y no más contratos "con estado" complejos, como organizaciones descentralizadas, y dificulta la implementación de metaprotocolos. El estado binario combinado con la indiferencia al valor también implica que otra aplicación importante, el límite de retiro, es imposible. +- **Ceguera a la Blockchain**: las UTXO son ciegas a los datos de la blockchain como el nonce, la marca temporal y el hash del bloque anterior. Esto limita severamente las aplicaciones en juegos de azar y otras categorías, al privar al lenguaje de scripting de una fuente potencialmente valiosa de aleatoriedad. + +Por tanto, consideramos tres enfoques para construir aplicaciones avanzadas encima de las criptomonedas: construir una nueva blockchain, usando scripting por encima de Bitcoin, y construyendo un metaprotocolo encima de Bitcoin. Construir una nueva blockchain permitiría libertad ilimitada al construir un conjunto de funcionalidades, pero a costa del tiempo de desarrollo, esfuerzo para ponerla en marcha, y seguridad. El uso de scripts es fácil de implementar y estandarizar, pero está muy limitado en sus capacidades, y los metaprotocolos, aunque sencillos, sufren de defectos en la escalabilidad. Con Ethereum, pretendemos construir un framework alternativo que proporcione mejoras aún mayores en cuanto a facilidad de desarrollo, así como como propiedades más robustas para clientes ligeros, al tiempo que permite a las aplicaciones compartir un entorno económico y la seguridad de la blockchain. + +## Ethereum {#ethereum} + +El propósito de Ethereum es crear un protocolo alternativo para construir aplicaciones descentralizadas, proporcionando un conjunto diferente de contrapartidas que creemos que serán muy útiles para un amplio abanico de aplicaciones descentralizadas, con especial énfasis en situaciones en las que el rápido tiempo de desarrollo, la seguridad para aplicaciones pequeñas y rara vez usadas y la capacidad de las diferentes aplicaciones para interactuar de manera muy eficiente son importantes. Ethereum lo logra construyendo lo que es esencialmente la capa fundacional abstracta definitiva: una blockchain con un lenguaje de programación Turing completo, que permite a cualquiera escribir contratos y aplicaciones descentralizadas donde pueden crear sus propias reglas reglas arbitrarias de propiedad, formatos de transacción y funciones de transición de estado. Una versión básica de Namecoin puede escribirse en dos líneas de código, y otros protocolos como monedas y sistemas de reputación se pueden incorporar en menos de veinte. Los contratos inteligentes, "cajas" criptográficas que contienen valor y sólo lo desbloquean si se cumplen ciertas condiciones también se pueden desarrollar por encima de la plataforma, con mucho más poder que el que ofrece el script de Bitcoin gracias a los poderes añadidos de completitud Turing, conocimiento del valor, conocimiento de la blockchain y estado. + +### Filosofía {#philosophy} + +El diseño en el que se basa Ethereum está pensado para seguir los siguientes principios: + +1. **Simplicidad**: el protocolo Ethereum debe ser tan simple como sea posible, incluso a costa de cierto almacenamiento de datos o uso del tiempo ineficientes.[fn. 3](#notes) Un programador promedio debería ser idealmente capaz de entender e implementar toda la especificación,[fn. 4](#notes) con objeto de comprender totalmente el potencial democratizador sin precedentes que la criptomoneda trae y profundizar en la visión de Ethereum como un protocolo abierto a todos. Cualquier optimización que añada complejidad no debe incluirse a menos que esa optimización proporcione un beneficio sustancial. +2. **Universalidad**: una parte fundamental de la filosofía de diseño de Ethereum es que Ethereum no tiene "funciones".[fn. 5](#notes) En su lugar, Ethereum proporciona un lenguaje interno de scripting Turing completo, que un programador puede usar para desarrollar cualquier contrato inteligente o transacción de cualquier tipo que se pueda definir matemáticamente. ¿Quieres inventar tu propio derivado financiero? Con Ethereum, puedes. ¿Quieres crear tu propia moneda? Establécela como un contrato en Ethereum. ¿Quieres configurar un Daemon o una red Skynet a gran escala? Puede que necesites tener unos cuantos miles de contratos entrelazados y asegurarte de alimentarlos generosamente para lograrlo, pero nada te lo impide con Ethereum al alcance de tu mano. +3. **Modularidad**: las partes del protocolo Ethereum deben diseñarse para ser tan modulares y separables como sea posible. En el transcurso del desarrollo, nuestro objetivo es crear un programa donde si uno fuera a hacer una pequeña modificación del protocolo en un solo lugar, la pila de la aplicación continuaría funcionando sin ninguna modificación adicional. Innovaciones como Ethash (consulta el [protocolo en el apéndice](https://ethereum.github.io/yellowpaper/paper.pdf#appendix.J) o [el artículo](https://github.com/ethereum/wiki/wiki/Ethash)), los árboles de Patricia modificados ([protocolo](https://ethereum.github.io/yellowpaper/paper.pdf#appendix.D), [wiki](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-Patricia-Tree)) y RLP ([YP](https://ethereum.github.io/yellowpaper/paper.pdf#appendix.B), [wiki](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-RLP)) deben ser y son, implementados como librerías separadas de funciones completas. Esto es así puesto que, aunque se usan en Ethereum e incluso si Ethereum no requiere ciertas funciones, estas funciones siguen siendo utilizables también en otros protocolos. El desarrollo de Ethereum debe de realizarse al máximo para beneficiar a todo el ecosistema de criptomonedas, no solo a sí mismo. +4. **Agilidad**: los detalles del protocolo de Ethereum no son inamovibles. Aunque seremos extremadamente prudentes a la hora de hacer modificaciones a construcciones de alto nivel, como por ejemplo la [hoja de ruta de sharding](https://ethresear.ch/t/sharding-phase-1-spec/1407/) y la ejecución abstracta, con disponibilidad de datos solo grabada en el consenso. Pruebas computacionales posteriores en el proceso de desarrollo pueden llevarnos a descubrir que ciertas modificaciones, p. ej., en la arquitectura de protocolo o en la máquina virtual de Ethereum (EVM), mejorasen sustancialmente la escalabilidad o seguridad. Si se encuentran estas oportunidades, las explotaremos. +5. **No discriminación** y **no censura**: el protocolo no debe intentar restringir o prevenir activamente categorías específicas de uso. Todos los mecanismos regulatorios del protocolo deben diseñarse para regular directamente el daño y no tratar de oponerse a aplicaciones específicas indeseables. Un programador puede incluso ejecutar un script en bucle infinito sobre Ethereum mientras esté dispuesto a seguir pagando la tarifa de transacción por paso computacional. + +### Cuentas de Ethereum {#ethereum-accounts} + +En Ethereum, el estado está compuesto por objetos llamados "cuentas", donde cada cuenta tiene una dirección de 20 bytes y transiciones de estado, que son transferencias directas de valor e información entre cuentas. Una cuenta de Ethereum contiene cuatro campos: + +- El **nonce**, un contador utilizado para asegurarse de que cada transacción solo se puede procesar una vez +- El **saldo ether** actual de la cuenta +- El **código de contrato** de la cuenta si está presente +- El **almacenamiento** de la cuenta (vacío por defecto) + +El "Ether" es el principal criptocombustible interno de Ethereum, y se utiliza para pagar las tarifas por transacción. En general, hay dos tipos de cuentas: **cuentas de propiedad externa**, controladas por claves privadas, y **cuentas de contrato**, controladas por su código de contrato. Una cuenta de propiedad externa no tiene código, y uno puede enviar mensajes desde una cuenta de propiedad externa creando y firmando una transacción; en una cuenta de contrato, cada vez que la cuenta de contrato recibe un mensaje, su código se activa, permitiéndola leer y escribir en el almacenamiento interno y enviar otros mensajes o crear contratos uno por uno. + +Obsérvese que los "contratos" en Ethereum no deben ser vistos como algo que debe ser "satisfecho" o "cumplido"; son más bien parecidos a "agentes autónomos" que viven dentro del entorno de ejecución de Ethereum, siempre ejecutando una pieza específica de código cuando un mensaje o transacción les da "un toque", y tienen control directo sobre su propio saldo ether y su propio almacén de clave/valor para hacer un seguimiento de las variables persistentes. + +### Mensajes y transacciones {#messages-and-transactions} + +El término "transacción" se utiliza en Ethereum para referirse al paquete de datos firmados que almacena un mensaje para ser enviado desde una cuenta de propiedad externa. Las transacciones contienen: + +- El destinatario del mensaje +- Una firma que identifica al remitente +- La cantidad de ether a transferir del remitente al destinatario +- Un campo de datos opcional +- Un valor `STARTGAS`, que representa el número máximo de pasos computacionales que se permite ejecuctar a la transacción +- Un valor `GASPRICE`, que representa la tarifa que el remitente paga por paso computacional + +Los tres primeros son campos estándar que se esperan en cualquier criptomoneda. El campo de datos no tiene ninguna función por defecto, pero la máquina virtual tiene un opcode que un contrato puede utilizar para acceder a los datos; como ejemplo de caso de uso, si un contrato está funcionando como un servicio de registro de dominio sobre la blockchain, entonces podría querer interpretar los datos que se le pasan como que contienen dos "campos", el primer campo sería un dominio a registra y el segundo campo es la dirección IP a la cual registrarlo. El contrato leería estos valores de los datos del mensaje y los guardaría adecuadamente en el almacenamiento. + +Los campos `STARTGAS` y `GASPRICE` son cruciales para el modelo antidenegación de servicio de Ethereum. Para prevenir bucles infinitos hostiles o accidentales u otro despilfarro computacional en el código, cada transacción tiene que establecer un límite de cuántos pasos computacionales de ejecución de código puede utilizar. La unidad fundamental de cálculo es el "gas"; en general, un paso computacional cuesta 1 gas, pero algunas operaciones cuestan cantidades más altas de gas porque son más caras computacionalmente o incrementan la cantidad de datos que deben almacenarse como parte del estado. También hay una tarifa de 5 gas por cada byte en los datos de la transacción. La intención del sistema de tarifas es obligar a un atacante a pagar proporcionalmente por cada recurso que consuma, incluyendo la computación, ancho de banda y almacenamiento; por lo tanto, cualquier transacción que lleve a la red a consumir una mayor cantidad de cualquiera de estos recursos debe tener una tarifa de gas aproximadamente proporcional al incremento. + +### Mensajes {#messages} + +Los contratos tienen la capacidad de enviar "mensajes" a otros contratos. Los mensajes son objetos virtuales que nunca se serializan y existen sólo en el entorno de ejecución de Ethereum. Un mensaje contiene: + +- El remitente del mensaje (implícito) +- El destinatario del mensaje +- La cantidad de ether a transferir junto con el mensaje +- Un campo de datos opcional +- Un valor de `STARTGAS` + +En esencia, un mensaje es como una transacción, excepto que la produce un contrato y no un actor externo. Un mensaje se crea cuando un contrato que se encuentra ejecutando código, ejecuta el opcode `CALL`, el cual genera y ejecuta un mensaje. Como en una transacción, un mensaje hace que la cuenta del destinatario ejecute su código. Así, los contratos pueden tener relaciones con otros contratos exactamente de la misma manera que los actores externos pueden hacerlo. + +Nótese que la cantidad de gas asignada por una transacción o contrato se aplica al gas total consumido por esa transacción y a todas sus subejecuciones. Por ejemplo, si un actor externo A envía una transacción a B con 1000 gas, y B consume 600 gas antes de enviar un mensaje a C, y la ejecución interna de C consume 300 gas antes de regresar, entonces B puede gastar otros 100 gas antes de quedarse sin gas. + +### Función de transición de estado de Ethereum {#ethereum-state-transition-function} + +![Transición de estado de Ether](./ether-state-transition.png) + +La función de transición de estado `APPLY(S,TX) -> S'` puede definirse como sigue: + +1. Comprobar si la transacción está bien formada (es decir, si tiene el número correcto de valores), la firma es válida, y el nonce coincide con el nonce en la cuenta del remitente. Si no, devuelve un error. +2. Calcular la tarifa de transacción como `STARTGAS * GASPRICE` y determinar la dirección de envío a partir de la firma. Restar la tarifa del saldo de la cuenta del remitente e incrementar el nonce del remitente. Si no hay suficiente saldo para gastar, devolver un error. +3. Inicializar `GAS = STARTGAS` y retirar una cierta cantidad de gas por byte para pagar por los bytes de la transacción. +4. Transferir el valor de la transacción desde la cuenta del remitente a la cuenta receptora. Si la cuenta receptora aún no existe, la crea. Si la cuenta receptora es un contrato, ejecutar el código del contrato hasta su terminación o hasta que la ejecución se quede sin gas. +5. Si la transferencia de valor falla porque el remitente no tenía suficiente dinero o se cabó el gas durante la ejecución del código, revertir todos los cambios de estado excepto el pago de las tarifas, y añadir las comisiones a la cuenta del minero. +6. En caso contrario, devolver las comisiones por todo el gas restante al remitente y enviar las tarifas pagadas por el gas consumido al minero. + +Por ejemplo, supongamos que el código del contrato es: + + if !self.storage[calldataload(0)]: + self.storage[calldataload(0)] = calldataload(32) + +Ten en cuenta que, en realidad, el código del contrato está escrito en el código de bajo nivel de la EVM; este ejemplo está escrito en Serpent, uno de nuestros lenguajes de alto nivel, para mayor claridad, que puede ser compilado a código de la EVM. Supongamos que el almacenamiento del contrato empieza vacío, y se envía una transacción con valor de 10 ether, 2000 gas, 0,001 de precio de gas ether y 64 bytes de datos, con los bytes 0-31 representando el número `2` y los bytes 32-63 representando la cadena `CHARLIE`.[fn. 6](#notes) El proceso para la función de transición de estado en este caso es el siguiente: + +1. Comprobar que la transacción es válida y está bien formada. +2. Comprobar que el remitente de la transacción tiene al menos 2000 \* 0,001 = 2 ether. Si los tiene, restar 2 ether de la cuenta del remitente. +3. Inicializar gas = 2000; suponiendo que la transacción tenga 170 bytes de longitud y que la tarifa por byte sea 5, restar 850 y quedarán 1150 gas. +4. Restar 10 ether más de la cuenta del remitente y añadirlos a la cuenta del contrato. +5. Ejecutar el código. En este caso es simple: comprueba si se utiliza el almacenamiento del contrato en índice `2`, observa que no, por lo que asigna al almacenamiento en el índice `2` el valor `CHARLIE`. Supongamos que esto consume 187 gas, así que la cantidad restante de gas es 1150 - 187 = 963 +6. Añadir 963 \* 0,001 = 0.963 ether de vuelta a la cuenta del remitente y devolver el estado resultante. + +Si no hubiera un contrato en el extremo receptor de la transacción, entonces la tarifa total de transacción sería simplemente igual al `GASPRICE` proporcionado multiplicado por la longitud de la transacción en bytes, y los datos enviados junto a la transacción serían irrelevantes. + +Ten en cuenta que los mensajes funcionan de forma equivalente a las transacciones en términos de revertirse: si la ejecución de un mensaje se queda sin gas, entonces la ejecución del mensaje y todas las demás ejecuciones activadas por esa ejecución, se revierten, pero las ejecuciones padres no necesitan revertirse. Esto significa que es "seguro" para un contrato llamar a otro contrato, como si A llama a B con G gas, entonces se garantiza que la ejecución de A perdería como máximo G gas. Por último, tener en cuenta que hay un opcode, `CREATE`, que crea un contrato; su mecánica de ejecución generalmente es similar a `CALL`, con la excepción de que la salida de la ejecución determina el código del contrato recién creado. + +### Ejecución de código {#code-execution} + +El código en los contratos de Ethereum está escrito en un lenguaje de bajo nivel bytecode basado en pila, conocido como "código de máquina virtual de Ethereum" o "código de la EVM". El código consiste en una serie de bytes, donde cada byte representa una operación. En general, la ejecución del código es un bucle infinito que consiste en ejecutar repetidamente la operación en el contador actual de programa (que comienza en cero) y luego incrementar el contador del programa en uno, hasta que se alcance el final del código o se detecte un error o una instrucción `STOP` o `RETURN`. Las operaciones tienen acceso a tres tipos de espacio en el que almacenar datos: + +- La **pila**, un contenedor «último en entrar, primero en salir» cuyos valores se pueden apilar y retirar +- **Memoria**, un array de bytes expandible infinitamente +- El **almacenamiento** a largo plazo del contrato, un almacén de clave/valor. A diferencia de la pila y la memoria, que se restablecen una vez termina la computación, el almacenamiento persiste a largo plazo. + +El código también puede acceder al valor, remitente y datos del mensaje entrante, así como datos del bloque de cabecera. El código también puede devolver un array de bytes de datos como salida. + +El modelo de ejecución formal de código de la EVM es sorprendentemente simple. Mientras que la máquina virtual de Ethereum está en ejecución, su estado computacional completo se puede definir por la tupla `(estado_del_bloque, transacción, mensaje, código, memoria, pila, pc, gas)`, donde `estado_del_bloque` es el estado global que contiene todas las cuentas e incluye saldos y almacenamiento. Al inicio de cada ronda de ejecución, la instrucción actual se encuentra tomando el `pc`-ésimo byte de `código` (o 0 si `pc >= len(code)`), y cada instrucción tiene su propia definición en términos de como afecta a la tupla. Por ejemplo, `ADD` retira dos elementos de la pila y apila su suma, reduce `gas` en 1 e incrementa `pc` en 1, y `SSSTORE` retira los dos elementos superiores de la pila e inserta el segundo elemento en el almacenamiento del contrato en el índice especificado por el primer elemento. Aunque hay muchas maneras de optimizar la ejecución de la máquina virtual de Ethereum mediante la compilación en tiempo de ejecución, una implementación básica de Ethereum puede hacerse en unos pocos cientos de líneas de código. + +### Blockchain y minería {#blockchain-and-mining} + +![Ethereum aplica diagrama de bloque](./ethereum-apply-block-diagram.png) + +La blockchain de Ethereum es en muchas maneras similar a la blockchain de Bitcoin, aunque tiene algunas diferencias. La diferencia principal entre Ethereum y Bitcoin en relación a la arquitectura blockchain es que, a diferencia de Bitcoin (que solo contiene una copia de la lista de la transacciones), los bloques de Ethereum contienen una copia tanto de la lista de transacciones como del estado más reciente. Aparte, hay dos valores, el número de bloque y la dificultad, que también se almacenan en el bloque. El algoritmo básico de validación de bloque en Ethereum es el siguiente: + +1. Comprobar si el bloque anterior referenciado existe y es válido. +2. Comprobar que la marca temporal del bloque es mayor que la del bloque anterior referenciado e inferior a 15 minutos en el futuro +3. Comprobar que el número de bloque, dificultad, raíz de la transacción, raíz "uncle" límite de gas (diversos conceptos específicos de bajo nivel de Ethereum) son válidos. +4. Comprobar que la prueba de trabajo del bloque es válida. +5. Dejar que `S[0]` sea el estado al final del bloque anterior. +6. Sea `TX` es la lista de transacciones del bloque, con `n` transacciones. Para todo `i` en `0...n-1`, asignar `S[i+1] = APPLY(S[i],TX[i])`. Si cualquier aplicación devuelve un error, o si el gas total consumido en el bloque hasta este punto excede el `GASLIMIT`, devolver un error. +7. Hacer que `S_FINAL` sea `S[n]`, pero añadiendo la recompensa de bloque pagada al minero. +8. Comprobar si la raíz del árbol Merkle del state `S_FINAL` es igual a la raiz del estado final proporcionada en la cabecera del bloque. Si es así, el bloque es válido; de lo contrario, no es válido. + +El enfoque puede parecer muy ineficiente a primera vista, porque necesita almacenar todo el estado con cada bloque, pero en realidad la eficiencia debe ser comparable a la de Bitcoin. La razón es que el estado se almacena en la estructura del árbol, y después de cada bloque sólo una pequeña parte del árbol necesita ser modificada. Por lo tanto, en general, entre dos bloques adyacentes la inmensa mayoría del árbol debe ser idéntico, y por lo tanto los datos pueden ser almacenados una vez y referenciados dos veces usando punteros (esto es, hashes de los subárboles). Un tipo especial de árbol conocido como "árbol Patricia" se utiliza para lograr esto incluyendo una modificación al concepto de árbol Merkle que permite que se inserten y eliminen nodos, y no solo que se cambien, de forma eficiente. Además, dado que toda la información de estado es parte del último bloque, no hay necesidad de almacenar todo el historial de la blockchain, una estrategia que, si se pudiera aplicar a Bitcoin, se calcular que proporcionaría entre 5-20 veces de ahorro de espacio. + +Una pregunta habitual es "dónde" se ejecuta el código del contrato, en términos del hardware físico. Esto tiene una respuesta simple: el proceso de ejecución del código del contrato es parte de la definición de la función de transición de estado, que es parte del algoritmo de validación de bloques, así que si una transacción se añade al bloque `B`, la ejecución del código generada por esa transacción se ejecutará por todos los nodos, ahora y en el futuro, que descarguen y validen el bloque `B`. + +## Aplicaciones {#applications} + +En general, hay tres tipos de aplicaciones sobre Ethereum. La primera categoría son las aplicaciones financieras, que ofrecen a los usuarios formas más potentes de gestionar y suscribir contratos con su dinero. Esto incluye submonedas, derivados financieros, contratos de cobertura, carteras de ahorros, testamentos e incluso, en última instancia, algunas clases de contratos de empleo a gran escala. La segunda categoría son aplicaciones semifinancieras en las que el dinero está presente, pero también hay una destacada parte no monetaria junto a lo que se está haciendo; un ejemplo perfecto son las recompensas autoaplicadas a soluciones a problemas computacionales. Por último, hay aplicaciones como el voto en línea y el gobierno descentralizado que no son en absoluto financieras. + +### Sistemas de Token {#token-systems} + +Los sistemas de tokens en blockchain tienen muchas aplicaciones que van desde submonedas que representan activos como el USD o el oro, hasta acciones de empresas, tokens individuales que representan una propiedad inteligente, cupones seguros infalsificables, e incluso sistemas de tokens sin ningún vínculo con un valor convencional en absoluto, utilizados como sistemas de puntos para incentivos. Los sistemas de token son sorprendentemente fáciles de implementar en Ethereum. El punto clave a entender es que una moneda, o sistema de token, de forma fundamental es una base de datos con una operación: restar X unidades de A y dar X unidades a B, con la disposición de que (1) A tuviera al menos X unidades antes de la transacción y (2) que la transacción sea aprobada por A. Todo lo que se necesita para implementar un sistema de token es implementar esta lógica en un contrato. + +El código básico para implementar un sistema de token en Serpent tiene este aspecto: + + def send(to, value): + if self.storage[msg.sender] >= value: + self.storage[msg.sender] = self.storage[msg.sender] - value + self.storage[to] = self.storage[to] + value + +Esta es en esencia una implementación literal de la función de transición de estado de un "sistema bancario" descrita más arriba en este documento. Hay que añadir algunas líneas de código adicionales para crear en primer lugar el paso inicial en el que se distribuyen las unidades de moneda y otros casos extremos, e idealmente se añadiría una función para permitir que otros contratos puedan consultar el saldo de una dirección. Pero eso es todo lo que hay que hacer. En teoría, los sistemas de token basados en Ethereum que actúan como submonedas pueden incluir potencialmente otra característica importante de la que carecen las metamonedas basadas en la cadena de Bitcoin: la capacidad de pagar las tarifas de transacción directamente en esa moneda. La forma en que se implementaría esto sería haciendo que el contrato mantendría un saldo de ether con el cual reembolsaría el ether utilizado para pagar comisiones al remitente, y recargaría este saldo recolectando las unidades de moneda interna que cobra en tarifas y revenderlas en una subasta en ejecución constante. Así, los usuarios necesitarían "activar" sus cuentas con ether, pero una vez que el ether está ahí, sería reutilizable porque el contrato lo reembolsaría cada vez. + +### Derivados financieros y monedas de valor estable {#financial-derivatives-and-stable-value-currencies} + +Los derivados financieros son la aplicación más común de un "contrato inteligente", y uno de los más sencillos de implementar en código. El desafío principal al implementar contratos financieros es que la mayoría de ellos requieren referencia a un teletipo de precio externo; por ejemplo, una aplicación muy deseable es un contrato inteligente que protege contra la volatilidad del ether (u otra criptomoneda) con respecto al dólar estadounidense, pero para hacer esto es necesario que el contrato sepa cuál es el cambio de ETH/USD. La forma más sencilla de hacer esto es a través de un contrato de "fuente de datos" gestionado por una entidad específica (p. ej., NASDAQ), y diseñado para que esa entidad tenga la capacidad de actualizar el contrato según sea necesario y que proporcione una interfaz que permite a otros contratos enviar un mensaje a ese contrato y recuperar una respuesta que proporcione el precio. + +Dado dicho ingrediente crítico, el contrato de cobertura sería siguiente: + +1. Esperar a que la parte A introduzca 1000 ether. +2. Esperar a que la parte B introduzca 1000 ether. +3. Almacenar el valor de 1000 ether en USD, calculados mediante consulta al contrato de fuente de datos, en el almacenamiento, digamos que es $x. +4. Después de 30 días, permitir a A o B "reactivar" el contrato para enviar $x en ether (calculado mediante consulta al contrato de la fuente de datos para obtener el nuevo precio) a A y el resto a B. + +Un contrato así tendría un gran potencial en el comercio en criptomonedas. Uno de los problemas principales que se citan sobre las criptomonedas es el hecho de que son volátiles; aunque muchos usuarios y comerciantes pueden querer la seguridad y conveniencia de operar con activos criptográficos, tal vez no quieran enfrentarse a la perspectiva de perder el 23 % del valor de sus fondos en un solo día. Hasta ahora, la solución más propuesta ha sido la de activos respaldados por emisores; la idea es que un emisor crea una submoneda en la que tiene derecho a emitir y retirar unidades, y proporcionar una unidad de la moneda a cualquiera que les proporcione (fuera de línea) una unidad de un activo subyacente especificado (p. ej., oro, USD). A continuación, el emisor se compromete a proporcionar una unidad del activo subyacente a cualquiera que envíe de vuelta una unidad del criptoactivo. Este mecanismo permite que cualquier activo no criptográfico se "eleve" a activo criptográfico, siempre que se pueda confiar en el emisor. + +En la práctica, sin embargo, los emisores no siempre son fiables, y en algunos casos la infraestructura bancaria es demasiado débil o demasiado hostil para que estos servicios existan. Los derivados financieros ofrecen una alternativa. Aquí, en lugar de un único emisor que proporciona los fondos para respaldar un activo, un mercado descentralizado de especuladores que apuestan a que el precio de un activo criptográfico de referencia (p. ej., ETH) subirá, desempeñará ese papel. A diferencia de los emisores, los especuladores no tienen la opción de suspender pagos en su parte del acuerdo, porque el contrato de cobertura mantiene sus fondos en fideicomiso. Nótese que este enfoque no está completamente descentralizado, dado que todavía se necesita una fuente de confianza para proporcionar el teletipo de precios, aunque presumiblemente incluso esto es una mejora enorme en términos de reducción de requisitos de infraestructura (a diferencia de ser un emisor, la emisión de una fuente de precios no requiere ninguna licencia y es probable que se pueda categorizar dentro de la libre expresión) y reducción del riesgo de fraude. + +### Sistemas de identidad y reputación {#identity-and-reputation-systems} + +La primera de todas las criptomonedas alternativas, [Namecoin](http://namecoin.org/), intentó usar una blockchain de tipo Bitcoin para proporcionar un sistema de registro de nombres, donde los usuarios pueden registrar sus nombres en una base de datos pública junto con otros datos. El caso de uso más citado es para un sistema [DNS](https://wikipedia.org/wiki/Domain_Name_System), que asigna nombres de dominio como "bitcoin.org" (o, en el caso de Namecoin, "bitcoin.bit") a una dirección IP. Otros casos de uso incluyen autenticación de correo electrónico y sistemas de reputación potencialmente más avanzados. Este es el contrato básico para proporcionar un sistema de registro de nombres similar a Namecoin en Ethereum: + + def register(name, value): + if !self.storage[name]: + self.storage[name] = value + +El contrato es muy sencillo; es tan solo una base de datos dentro de la red de Ethereum a la que se puede añadir datos, pero no modificarlos ni eliminarlos. Cualquiera puede registrar un nombre asignando cierto valor, y ese registro se queda para siempre. Un contrato de registro de nombres más sofisticado también tendrá una "función de cláusula" que permitiría a otros contratos consultarla, así como un mecanismo para que el "propietario" (es decir, el primer registrador) de un nombre pueda cambiar los datos o transferir la propiedad. Se puede incluso añadir reputación y funcionalidad «web-of-trust» por encima. + +### Almacenamiento de archivos descentralizado {#decentralized-file-storage} + +En los últimos años, han surgido una serie de empresas emergentes populares para almacenar archivos en línea, siendo Dropbox la más destacada, que buscan permitir a los usuarios subir una copia de seguridad de su disco duro y tener un servicio de copia de seguridad y permitir al usuario acceder a este a cambio de una cuota mensual. En este momento, sin embargo, el mercado de almacenamiento de archivos es a veces relativamente ineficiente; una mirada rápida a varias [soluciones existentes](http://online-storage-service-review.toptenreviews.com/) lo muestra, particularmente en el nivel de "valle inquietante" entre 20-200 GB, en el que ni se activan las cuotas gratuitas ni los descuentos de nivel empresarial, los precios mensuales del coste de almacenamiento de archivos son tan elevados que se paga más de lo que cuesta todo el disco duro en un solo mes. Los contratos de Ethereum pueden permitir el desarrollo de un ecosistema de almacenamiento de archivos descentralizado, donde los usuarios individuales pueden ganar pequeñas cantidades de dinero alquilando sus propios discos duros y el espacio no utilizado puede utilizarse para reducir aún más el coste del almacenamiento de archivos. + +La pieza clave fundamental de dicho dispositivo sería lo que hemos llamado el "contrato Dropbox descentralizado". Este contrato funciona como se indica a continuación. Primero, se dividen los datos deseados en bloques, cifrando cada bloque por privacidad, y se construye un árbol de Merkle a partir de ellos. Se crea entonces un contracto con la regla de que cada N bloques, el contrato elegirá un índice aleatorio en el árbol de Merkle (usando el hash del bloque anterior, accesible desde el código del contrato, como fuente de aleatoriedad), y dará X ether a la primera entidad que proporcione una transacción con una prueba de propiedad similar a la verificación de pago simplificado del bloque para ese índice específico del árbol. Cuando un usuario quiere volver a descargar su archivo, puede utilizar un protocolo de canal de micropago (p. ej., pagar 1 szabo por cada 32 kilobytes) para recuperar el archivo; la forma más eficiente de tarificación es que el pagador no publique la transacción hasta el final, y en su lugar reemplace la transacción por una ligeramente más lucrativa con el mismo nonce tras cada 32 kilobytes. + +Una característica importante del protocolo es que, aunque puede parecer que se confía en que muchos nodos aleatorios decidan no olvidar el archivo, se puede reducir ese riesgo a casi cero dividiendo el archivo en muchas piezas a través del compartido secreto, y observar los contratos para ver que cada pieza sigue en posesión de algunos nodos. Si un contrato sigue pagando dinero, esto proporciona una prueba criptográfica de que alguien todavía está almacenando el archivo. + +### Organizaciones autonómas descentralizadas {#decentralized-autonomous-organizations} + +El concepto general de una "organización autónoma descentralizada" (DAO por sus siglas en inglés) es el de una entidad virtual que tiene cierto número de miembros o accionistas que, quizás con una mayoría del 67 %, tienen el derecho a gastar los fondos de la entidad y modificar su código. Los miembros decidirían colectivamente el modo en el que la organización debe destinar sus fondos. Los métodos para destinar los fondos de una DAO podrían variar, desde recompensas y sueldos hasta mecanismos más exóticos, como una moneda interna para recompensar el trabajo. Esto esencialmente replica los elementos legales de una empresa tradicional o sin fines de lucro, pero utiliza solo tecnología criptográfica de blockchain para su cumplimiento. Hasta ahora, gran parte de las conversaciones alrededor de las DAO han tratado acerca del modelo "capitalista" de una "corporación autónoma descentralizada" (DAC por sus siglas en inglés), con accionistas que reciben dividendos y acciones negociables; una alternativa, tal vez descrita como una "comunidad autónoma descentralizada", haría que todos los miembros tuvieran una parte idéntica en la toma de decisiones y requeriría que el 67 % de los miembros existentes aceptaran agregar o eliminar un miembro. El requisito de que una persona puede ser miembro solo una vez necesitaría ser impuesto colectivamente por el grupo. + +Un esquema general de cómo implementar un DAO es el siguiente. El diseño más simple es simplemente una sección de código automodificable que cambia si dos tercios de los miembros están de acuerdo en un cambio. Aunque el código es teóricamente inmutable, esto se puede eludir fácilmente y tener mutabilidad de facto al tener fragmentos del código en contratos separados, y teniendo la dirección de a qué contratos llamar guardados en el almacenamiento modificable. En una implementación simple de dicho contrato DAO, habría tres tipos de transacción, diferenciadas por los datos proporcionados en la transacción: + +- `[0,i,K,V]` para registrar una propuesta con índice `i` para cambiar la dirección en el índice de almacenamiento `K` al valor `V` +- `[1,i]` para registrar un voto a favor de la propuesta `i` +- `[2,i]` para finalizar la propuesta `i` si tiene los suficientes votos + +El contrato tendría entonces cláusulas para cada una de ellas. Mantendría un registro de todos los cambios de almacenamiento abiertos, junto con una lista de quienes han votado por ellos. También tendría una lista de todos los miembros. Cuando cualquier cambio de almacenamiento alcanza el voto de dos tercios de los miembros, una transacción finalizadora podría ejecutar el cambio. Un esquema más sofisticado también tendría capacidad de voto incorporada para funciones tales como el envío de una transacción, añadir y borrar miembros, e incluso puede proporcionar una delegación de votos tipo [Democracia líquida](https://es.wikipedia.org/wiki/Democracia_l%C3%ADquida) (p. ej. cualquiera puede asignar a alguien para votar por él, y dicha asignación es transitiva, de modo que si A asigna a B y B asigna a C, entonces C determina el voto de A). Este diseño permitiría que la DAO crezca orgánicamente como una comunidad descentralizada, permitiendo a la gente a eventualmente delegar la tarea de filtrar quién sería miembro a especialistas, aunque a diferencia de lo que ocurre en el "sistema actual", los especialistas pueden aparecer y desaparecer a medida que los miembros individuales cambian sus posicionamientos. + +Hay un modelo alternativo para una corporación descentralizada, donde cualquier cuenta puede tener cero o más acciones, y se necesitan dos tercios de las acciones para tomar una decisión. Un esquema completo implicaría una función de gestión de activos, la posibilidad de hacer una oferta de compraventa de acciones y la capacidad de aceptar ofertas (preferiblemente con un mecanismo de casamiento de órdenes dentro del contrato). La delegación también existiría al estilo de la democracia líquida, generalizando el concepto de un "consejo directivo". + +### Otras aplicaciones {#further-applications} + +**1. Carteras de ahorro**. Supongamos que Alice quiere mantener sus fondos a salvo, pero le preocupa perder su clave privada o que alguien la hackee. Entonces pone ether en un contrato con Bob, un banco, como sigue: + +- Alice solo puede retirar un máximo del 1 % de los fondos por día. +- Bob por su parte solo puede retirar un máximo del 1 % de los fondos por día, pero Alice tiene la habilidad de hacer una transacción con su clave que elimine esta capacidad. +- Alice y Bob juntos pueden retirar cualquier cantidad. + +Normalmente, el 1 % diario es suficiente para Alice, y si Alice quiere retirar más, puede contactar con Bob para que le ayude. Si la clave de Alice es hackeada, se dirige a Bob con celeridad para trasladar los fondos a un nuevo contrato. Si pierde su clave, Bob podrá sacar los fondos eventualmente. Si Bob resulta ser malicioso, ella puede desactivar su capacidad para retirar fondos. + +**2. Seguro de cosecha**. Se puede hacer fácilmente un contrato de derivados financieros usando una fuente de datos meteorológicos en lugar de cualquier índice de precios. Si un agricultor de Iowa compra un derivado que paga a la inversa de acuerdo a la precipitación de Iowa, entonces si hay una sequía, el agricultor recibirá automáticamente dinero y, si llueve lo suficiente, el agricultor estará contento porque a sus cultivos les va a ir bien. Esto puede ampliarse a los seguros de desastres naturales en general. + +**3. Una fuente de datos descentralizada**. Para contratos financieros por diferencias, podría ser posible descentralizar la fuente de datos a través de un protocolo llamado [SchellingCoin](http://blog.ethereum.org/2014/03/28/schellingcoin-a-minimal-trust-universal-data-feed/). SchellingCoin funciona básicamente de la siguiente manera: N partes introducen en el sistema el valor de un ato determinado (p. ej. el precio del ETH/USD), los valores están ordenados, y todos aquellos entre el percentil 25 y el 75 obtienen un token como recompensa. Todo el mundo tiene el incentivo para proporcionar la respuesta que todos los demás les proporcionarán, y el único valor en el que un gran número de jugadores pueden estar de acuerdo de forma realista es el valor obvio por defecto: el verdadero. Esto crea un protocolo descentralizado que puede proporcionar teóricamente cualquier número de valores, incluidos el precio del ETH/USD, la temperatura en Berlín o incluso el resultado de un cálculo particularmente difícil. + +**4. Fideicomiso multifirma inteligente**. Bitcoin permite contratos de transacción multifirma donde, por ejemplo, tres de las cinco claves dadas pueden gastar los fondos. Ethereum permite más granularidad; por ejemplo, cuatro de cada cinco pueden gastarlo todo, tres de cada cinco pueden gastar hasta un 10 % al día y dos de cada cinco pueden gastar hasta 0,5 % al día. Además, la multifirma de Ethereum es asíncrona: dos partes pueden registrar sus firmas en la blockchain en diferentes momentos y la última firma enviará automáticamente la transacción. + +**5. Computación en la nube**. La tecnología EVM también puede utilizarse para crear un entorno de computación verificable que permite a los usuarios pedir a otros que realicen cálculos y, opcionalmente, pedir pruebas de que los cálculos en ciertos puntos de control seleccionados aleatoriamente se realizaron correctamente. Esto permite la creación de un mercado de computación en la nube donde cualquier usuario puede participar con su escritorio, portátil o servidor especializado, y el control por muestreo junto con depósitos de seguridad se pueden usar para asegurar que el sistema es de confianza (es decir, los nodos no pueden hacer trampa fructuosamente). Aunque tal sistema puede no ser adecuado para todas las tareas; las tareas que requieren un alto nivel de comunicación entre procesos, por ejemplo, no pueden ejecutarse fácilmente en una nube grande de nodos. Otras tareas, sin embargo, son mucho más fáciles de paralelizar; proyectos como SETI@home, folding@home y algoritmos genéticos pueden implementarse fácilmente sobre una plataforma de este tipo. + +**6. Apuestas entre pares**. Cualquier cifra de protocolos de apuestas entre pares, tal y como [ Cyberdice](http://www.cl.cam.ac.uk/~fms27/papers/2008-StajanoCla-cyberdice.pdf) de Frank Stajano y Richard Clayton, pueden implementarse en la blockchain de Ethereum. El protocolo de apuestas más simple en realidad es simplemente un contrato por diferencias en el siguiente hash de bloque, y a partir de ahí pueden construirse protocolos más avanzados, creando servicios de apuestas con tarifas cercanas a cero en donde no hay la posibilidad de hacer trampas. + +**7. Mercados de predicciones**. Habiendo un oráculo o SchellingCoin, los mercados de predicciones también son fáciles de implementar, y los mercados de predicciones junto con SchellingCoin podrían resultar en la primera aplicación de la [futarquía](http://hanson.gmu.edu/futarchy.html) como protocolo de gobierno para organizaciones descentralizadas. + +**8. Mercados descentralizados sobre la cadena**, usando el sistema de identidad y de reputación como base. + +## Miscelánea y dudas {#miscellanea-and-concerns} + +### Implementación de GHOST modificada {#modified-ghost-implementation} + +El protocolo del "subárbol observado voraz más pesado" (en inglés: Greedy Heaviest Observed Subtree, GHOST) es una innovación presentada por primera vez por Yonatan Sompolinsky y Aviv Zohar en [diciembre de 2013](https://eprint.iacr.org/2013/881.pdf). La motivación detrás de GHOST es que las blockchains con tiempos de confirmación rápidos actualmente sufren de una menor seguridad debido a una alta tasa de obsolescencia: puesto que los bloques tardan un cierto tiempo en propagarse a través de la red, si el minero A extrae un bloque y luego el minero B extrae otro bloque antes de que el bloque del minero A se propague a B, el bloque del minero B se desperdiciará y no contribuirá a la seguridad de la red. Además, hay un problema de centralización: si el minero A es una pool de minado con un 30 % de potencia de hash y el minero B tiene un 10 % de potencia de hash, el minero A tendrá el riesgo de producir un bloque obsoleto un 70 % del tiempo (ya que el 30 % restante del tiempo, el minero A produjo el último bloque y también obtendrá datos de minado inmediatamente) mientras que el minero B tendrá el riesgo de producir un bloque obsoleto 90 % del tiempo. Por tanto, si el intervalo de bloque es lo suficientemente corto como para que la tasa de obselescencia sea alta, A será sustancialmente más eficiente simplemente en virtud de su tamaño. Con estos dos efectos combinados, es muy probable que las blockchains que producen bloques rápidamente, hagan que una pool de minado, que tenga un porcentaje lo suficientemente grande de la potencia de hash de red, acabe teniendo el control de facto sobre el proceso de minado. + +Como describen Sompolinsky y Zohar, GHOST resuelve el primer problema de pérdida de seguridad de red al incluir bloques obsoletos en el cálculo de qué cadena es la "más larga"; es decir, no solo el padre y los ancestros adicionales de un bloque, sino que también los descendientes obsoletos del ancestro del bloque (en jerga de Ethereum, "uncles", es decir, tíos) se añaden al cálculo de qué bloque tiene la prueba de trabajo total más grande respaldándola. Para resolver el segundo problema del sesgo de la centralización, vamos más allá del protocolo descrito por Sompolinsky y Zohar, y también proporcionamos recompensas de bloque a los obsoletos: un bloque obsoleto recibe el 87,5 % de su recompensa base, y el sobrino que incluye el bloque obsoleto recibe el 12,5 % restante. Sin embargo, las tasas de transacción no se otorgan a los uncles. + +Ethereum implementa una versión simplificada de GHOST que solo desciende siete niveles. Concrétamente, se define como sigue: + +- Un bloque debe especificar un padre, y debe especificar 0 o más uncles +- Un uncle incluido en el bloque `B` debe tener las siguientes propiedades: +- Debe ser un hijo directo del antepasado del ancestro de generación `k`-ésima de `B`, donde `2 <= k <= 7`. +- No puede ser un ancestro de `B` +- Un uncle debe ser una cabecera de bloque válido, pero no necesita ser un bloque previamente verificado o incluso válido +- Un uncle debe ser diferente de todos los uncles incluidos en bloques anteriores y todos los demás uncles incluidos en el mismo bloque (no doble inclusión) +- Por cada uncle `U` en el bloque `B`, el minero de `B` recibe un 3,125 % adicional que se añade a su recompensa de coinbase y el minero de U obtiene el 93,75 % de una recompensa estándar de coinbase. + +Esta versión limitada de GHOST, que permite incluir uncles hasta un límite de 7 generaciones, se utilizó por dos razones. La primera, GHOST ilimitado incluiría demasiadas complicaciones en el cálculo de que uncles para un bloque determinado son válidos. La segunda, GHOST ilimitado con compensación como se usa en Ethereum elimina el incentivo de un minero para minar en la cadena principal y no la cadena de un atacante público. + +### Tarifas {#fees} + +Puesto que cada transacción publicada en la blockchain impone a la red el coste de la necesidad de descargarla y verificarla, es necesario algún mecanismo regulatorio, que normalmente implica tarifas de transacción, para prevenir abusos. El enfoque por defecto, utilizado en Bitcoin, es tener únicamente comisiones voluntarias, dependiendo de los mineros para que actúen como los guardianes y establezcan mínimos dinámicos. Este enfoque ha sido recibido muy favorablemente en la comunidad de Bitcoin, en particular porque está "basado en el mercado", permitiendo la oferta y la demanda entre los mineros y los remitentes de transacciones determinen el precio. El problema con esta forma de razonar es, no obstante, que el procesado de transacciones no es un mercado; aunque es intuitivamente atractivo interpretar el procesado de transacciones como un servicio que el que el minero ofrece al remitente, en realidad cada transacción que incluye un minero tendrá que ser procesada por todos los nodos de la red. por lo que la gran mayoría del coste del procesado de las transacciones es asumido por terceras partes y no el minero que está tomando la decisión de incluirla o no. Por lo tanto, es muy probable que ocurren problemas de la tragedia de los comunes. + +Sin embargo, resulta que este defecto en el mecanismo basado en el mercado, cuando se da un supuesto simplificador inexacto en particular, mágicamente se cancela. El argumento es el siguiente. Supongamos que: + +1. Una transacción conduce a `k` operaciones, ofreciendo la recompensa `kR` a cualquier minero que la incluya, donde `R` lo establece el remitente y `k` y `R` son (aproximadamente) visibles para el minero de antemano. +2. Una operación tiene un coste de procesamiento de `C` para cualquier nodo (es decir, todos los nodos tienen la misma eficiencia) +3. Hay `N` nodos de minado, cada uno con exactamente la misma potencia de procesamiento (es decir, `1/N` del total) +4. No existen nodos completos que no minen. + +Un minero estará dispuesto a procesar una transacción si la recompensa esperada es mayor que el coste. Por lo tanto, la recompensa esperada es de `kR/N` ya que el minero tiene una probabilidad de `1/N` de procesar el siguiente bloque, y el coste de procesamiento para el minero es simplemente `kC`. Por lo tanto, los mineros incluirán transacciones donde se cumpla que `kR/N > kC`, o `R > NC`. Nótese que `R` es la tarifa por operación proporcionada por el remitente y es por lo tanto un límite inferior al beneficio que el remitente obtiene de la transacción, y `NC` es el coste para toda la red del procesamiento de una operación. Por lo tanto, los mineros tienen el incentivo de incluir solo aquellas transacciones en las que el beneficio utilitario total supere al coste. + +Sin embargo, hay varias divergencias importantes de esas suposiciones en la realidad: + +1. El minero paga un coste mayor para procesar la transacción que otros nodos de verificación, ya que el tiempo de verificación adicional retrasa la propagación del bloque y por lo tanto aumenta la probabilidad de que el bloque se convierta en caducado. +2. Existen nodos completos que no minan. +3. La distribución de potencia de minado puede acabar siendo radicalmente desigualitaria en la práctica. +4. Los especuladores, enemigos políticos y dementes, cuya función de utilidad incluye causar daño a la red, existen y pueden establecer hábilmente contratos cuyo coste es mucho menor que el coste pagado por otros nodos de verificación. + +(1) proporciona una tendencia al minero a que incluya menos transacciones, e (2) incrementa `NC`; por lo tanto, estos dos efectos al menos parcialmente se cancelan entre sí.[¿Cómo?](https://github.com/ethereum/wiki/issues/447#issuecomment-316972260) (3) y (4) son el principal problema; para resolverlos, simplemente fijamos un límite reajustable: ningún bloque puede tener más operaciones que `BLK_LIMIT_FACTOR` veces el promedio de la media móvil exponencial a largo plazo. Específicamente: + + blk.oplimit = floor((blk.parent.oplimit \* (EMAFACTOR - 1) + + floor(parent.opcount \* BLK\_LIMIT\_FACTOR)) / EMA\_FACTOR) + +`BLK_LIMIT_FACTOR` y `EMA_FACTOR` son constantes que se les asignará respectivamente los valores 65 536 y 1,5 por el momento, pero probablemente se cambiará después de un análisis más en detalle. + +Hay otro factor que desincentiva los tamaños de bloques grandes en Bitcoin: los bloques grandes tardarán más en propagarse y por lo tanto tienen una mayor probabilidad de convertirse en caducados. En Ethereum, los bloques que consumen mucho gas también pueden tardar más en propagarse porque son físicamente más grandes y porque tardan más en procesar las transiciones del estado de la transacción para validarla. Este desincentivo por el retraso es una consideración significativa en Bitcoin, pero menos en Ethereum gracias al protocolo GHOST; por lo tanto, depender de límites de bloques regulados proporciona una base de referencia más estable. + +### Computación y completitud Turing {#computation-and-turing-completeness} + +Un apunte importante es que la máquina virtual de Ethereum es Turing-completa; esto significa que el código EVM puede codificar cualquier cómputo que se pueda llevar a cabo, incluyendo bucles infinitos. El código de EVM permite hacer bucles de dos maneras. En primer lugar, hay una instrucción `JUMP` que permite al programa saltar a un punto anterior del código, y una instrucción `JUMPI` para hacer saltos condicionales, lo que permite instrucciones como `while x < 27: x = x * 2`. En segundo lugar, los contratos pueden llamar a otros contratos, permitiendo potencialmente hacer bucles a través de la recursividad. Esto naturalmente conduce a un problema: ¿pueden los usuarios maliciosos esencialmente apagar a mineros y nodos completos obligándolos a entrar en un bucle infinito? El problema surge debido a un problema en las ciencias de la computación, conocido como el problema de la parada: no hay manera de determinar, en el caso general, si un programa dado se detendrá o no. + +Como se describe en la sección de transición de estados, nuestra solución funciona requiriendo que una transacción establezca un número máximo de pasos computacionales que se le permitirá ejecutar, y si la ejecución requiere de más cómputo, se revierte pero las comisiones aún así hay que pagarlas. Los mensajes funcionan del mismo modo. Para mostrar la motivación detrás de nuestra solución, consideremos los siguientes ejemplos: + +- Un atacante crea un contrato que ejecuta un bucle infinito, y a continuación envía una transacción que activa ese bucle al minero. El minero procesará la transacción, ejecutará el bucle infinito y esperará a que se quede sin gas. A pesar de que la ejecución se queda sin gas y se detiene a media ejecución, la transacción sigue siendo válida y el minero sigue recibiendo la tarifa del atacante por cada paso computacional. +- Un atacante crea un bucle infinito muy largo con la intención de forzar al minero a mantener la computación durante tanto tiempo que para el momento que la computación termina, habrán surgido varios bloques más y no será posible que el minero incluya la transacción para reclamar la tarifa. Sin embargo, el atacante tendrá que enviar un valor para `STARTGAS`, que limita el número de pasos computacionales que puede realizar la ejecución, así el minero sabrá por adelantado que la computación llevará un número excesivamente grande de pasos. +- Un atacante contempla un contrato con código similar a `send(A,contract.storage[A]); contract.storage[A] = 0`, y envía una transacción con el gas suficiente para ejecutar el primer paso pero no el segundo (es decir, hacer un retiro pero no dejar que el saldo se reduzca). El autor del contrato no necesita preocuparse por protegerse contra estos ataques, porque si la ejecución se detiene sin concluir, los cambios se revierten. +- Un contrato financiero funciona tomando la mediana de nueve fuentes de datos propietarias para minimizar el riesgo. Un atacante se apodera de una de las fuentes de datos, que está diseñada para ser modificable a través del mecanismo de llamada de dirección variable descrito en la sección sobre DAOs, y lo transforma para que ejecute un bucle infinito, tratando así de forzar que se quede sin gas cualquier intento de retirar fondos del contrato financiero. Sin embargo, el contrato financiero puede establecer un límite de gas en el mensaje para prevenir este problema. + +La alternativa a la completitud Turing es la incompletitud Turing, donde `JUMP` y `JUMPI` no existen y solo se permite que exista una copia de cada contrato en la pila de llamadas en un momento dado. Con este sistema, el sistema de tarifas descrito y las incertidumbres alrededor de la efectividad de nuestra solución podrían ser innecesarias, ya que el coste de ejecutar un contrato tendría el límite superior establecido por su tamaño. Adicionalmente, la incompletitud Turing no es ni siquiera una limitación tan grande; de todos los ejemplos de contrato que hemos concebido internamente, hasta ahora solo uno requiere de un bucle, e incluso ese bucle se podría eliminar haciendo 26 repeticiones de un fragmento de código de una línea. Dadas las serias implicaciones de la completitud Turing y su beneficio limitado, ¿por qué no sencillamente tener un lenguaje Turing-incompleto? En realidad, sin embargo, la incompletitud Turing dista de ser una solución idónea al problema. Para ver por qué, consideremos los siguientes contratos: + + C0: llamada(C1); llamada(C1); + C1: llamada(C2); llamada(C2); + C2: llamada(C3); llamada(C3); + ... + C49: llamada (C50); llamada(C50); + C50: (ejecutar un paso de un programa y guardar el cambio en el almacenamiento) + +Ahora, enviar una transacción a A. Así, en 51 transacciones, tenemos un contrato que ejecutaría 250 pasos computacionales. Los mineros podrían intentar detectar estas bombas lógicas por adelantado manteniendo un valor junto a cada contrato que especifique el número máximo de pasos computacionales que pueden realizar, y calculando esto para contratos que llaman a otros contratos recursivamente, pero eso requeriría que los mineros prohíban contratos que creen otros contratos (ya que la creación y ejecución de los 26 contratos anteriores se podría agrupar fácilmente en un único contrato). Otro punto problemático es que el campo de dirección de un mensaje es una variable, por lo que en general podría ni siquiera ser posible saber a qué otros contratos llamará con antelación un contrato dado. Por lo tanto, en resumen tenemos una conclusión sorprendente: la completidud Turing es sorprendentemente fácil de gestionar, y la falta de completidud Turing es al igual sorprendentemente difícil de gestionar a menos que existan exactamente los mismos controles, pero en ese caso, ¿por qué no dejar que el protocolo sea sin más Turing-completo? + +### Moneda y emisión monetaria {#currency-and-issuance} + +La red Ethereum incluye su propia moneda incorporada: ether, el cual cumple el doble propósito de proporcionar una capa de liquidez primaria para permitir un intercambio eficiente entre varios tipos de activos digitales y, aún más importante, el proporcionar un mecanismo para pagar tarifas de transacción. Para comodidad y para evitar futuras discusiones (ver el debate actual mBTC/uBTC/satoshi en Bitcoin), las denominaciones se preetiquetarán: + +- 1: wei +- 1012: szabo +- 1015: finney +- 1018: ether + +Esto se debe tomar como una versión expandida del concepto de "dólares" y "centavos" o "BTC" y "satoshi". En un futuro cercano, esperamos que "ether" se utilice para transacciones ordinarias, "finney" para microtransacciones y "szabo" y "wei" para análisis técnicos relativos a las tarifas e implementación de protocolos; las denominaciones restantes pueden ser útiles más tarde y no deben ser incluidas en los clientes en este punto. + +El modelo de emisión será el siguiente: + +- El Ether se lanzará en una venta de moneda al precio de 1000-2000 ether por BTC, un mecanismo destinado a financiar la organización Ethereum y pagar por el desarrollo que ha sido utilizado con éxito por otras plataformas como Mastercoin y NXT. Los primeros compradores se beneficiarán de grandes descuentos. Los BTC que se obtengan de la venta se utilizarán en su totalidad para pagar salarios y recompensas a los desarrolladores e invertirá en varios proyectos con ánimo y sin ánimo de lucro en el ecosistema Ethereum y de criptomonedas. +- 0,099 veces de la cantidad total vendida (60 102 216 ETH) se asignará a la organización para compensar a los primeros contribuyentes y pagar los gastos denominados en ETH antes del bloque génesis. +- 0,099 veces de la cantidad total vendida se mantendrá como una reserva a largo plazo. +- 0,26 veces de la cantidad total vendida se asignará a los mineros por año para siempre después de ese punto. + +| Grupo | en el lanzamiento tras | 1 año | tras 5 años | +| --------------------------------- | ---------------------- | ------ | ----------- | +| Unidades de moneda | 1,198X | 1,458X | 2,498X | +| Compradores | 83,5 % | 68,6 % | 40,0 % | +| Reserva gastada antes de la venta | 8,26 % | 6,79 % | 3,96 % | +| Reserva utilizada posventa | 8,26 % | 6,79 % | 3,96 % | +| Mineros | 0 % | 17,8 % | 52,0 % | + +**Tasa de crecimiento a largo plazo de la oferta (porcentaje)** + +![Inflación Ethereum](./ethereum-inflation.png) + +_A pesar de la emisión lineal de moneda, al igual que con Bitcoin a lo largo del tiempo la tasa de crecimiento de la oferta tiende sin embargo a cero_ + +Las dos opciones principales en el modelo anterior son: (1) la existencia y el tamaño de un fondo de dotación financiera y, (2) la existencia de una oferta lineal en crecimiento permanente, a diferencia de una oferta limitada como en Bitcoin. La justificación de un fondo de dotación financiera es la siguiente. Si el fondo de dotación no existiese, y la emisión lineal se redujera a 0,217 veces para proporcionar la misma tasa de inflación, entonces la cantidad total de ether sería un 16,5 % menos, por lo que cada unidad sería un 19,8 % más valiosa. Por lo tanto, en el equilibrio de 19,8 % se compraría más ether en la venta, por lo que cada unidad sería una vez más tan valiosa como antes. La organización también tendría 1,198 veces de BTC, que puede considerarse como dividido en dos porciones: el BTC original, y un 0,198 adicional. Por lo tanto, esta situación es _exactamente equivalente_ a la dotación, pero con una diferencia importante: la organización guarda exclusivamente BTC, y no tiene el incentivo para apoyar el valor de la unidad de ether. + +El modelo de crecimiento lineal permanente de la oferta reduce el riesgo de lo que algunos ven como una concentración excesiva de riqueza en Bitcoin, y da a los individuos que viven en el presente y a los que vivan el futuro una oportunidad justa de adquirir unidades de moneda, mientras que al mismo tiempo mantiene un fuerte incentivo para obtener y poseer el ether porque la "tasa de crecimiento de la oferta" como porcentaje sigue tendiendo a cero con el tiempo. También teorizamos que, dado que las monedas siempre se pierden con el tiempo debido a negligencias, muerte, etc, y que la pérdida de monedas pueden modelarse como un porcentaje de la oferta total por año, que la oferta de moneda total en circulación eventualmente se estabilizará en un valor igual a a la emisión anual dividida entre la tasa de pérdida (p. ej., a una tasa de pérdida de 1 %, una vez que el suministro alcance 26 veces, entonces 0,26 veces se minarán y 0,26 veces se perderán cada año, creando un equilibrio). + +Nótese que en el futuro, es probable que Ethereum cambie a un modelo de prueba de participación por seguridad, reduciendo el requisito de emisión a una cantidad de entre cero y 0,05 por año. En el caso de que la organización Ethereum pierda la financiación o desaparezca por cualquier otro motivo, dejamos abierto un "contrato social": cualquiera tiene derecho a crear una futura versión candidata de Ethereum, con la única condición de que la cantidad de ether debe ser como máximo igual a `60102216 * (1.198 + 0.26 * n)` donde `n` es el número de años posteriores al bloque génesis. Los creadores son libres de hacer una venta inicial de monedas o asignar de otra forma parte o toda la diferencia entre la expansión de oferta basada en prueba de participación (PoS, por sus siglas en inglés) y la expansión de oferta máxima permitida para pagar por el desarrollo. Las actualizaciones candidatas que no cumplan con el contracto social pueden ser justificadamente bifurcadas a versiones que lo cumplan. + +### Centralización del minado {#mining-centralization} + +El algoritmo de minado de Bitcoin funciona haciendo que los mineros calculen SHA256 en versiones ligeramente modificadas del encabezado del bloque millones de veces una y otra vez, hasta que finalmente un nodo encuentre una versión cuyo hash sea menor que el objetivo (actualmente alrededor de 2192). Sin embargo, este algoritmo de minado es vulnerable a dos formas de centralización. En primer lugar, el ecosistema minero ahora está dominado por los ASIC (circuitos integrados de aplicación específica), chips de ordenador diseñados para la tarea y, por lo tanto, miles de veces más eficientes en la tarea específica de minado de Bitcoin. Esto significa que el minado de Bitcoin ya no es una actividad altamente descentralizada e igualitaria, requiriendo millones de dólares de capital en la práctica para poder participar. En segundo lugar, la mayoría de los mineros de Bitcoin no realizan la validación de bloques localmente; en su lugar, dependen de un "pool" (grupo) de minado centralizado que proporciona los encabezados del bloque. Se puede argumentar que este problema es peor: en el momento de escribir estas líneas, los tres principales pools de minería controlan indirectamente aproximadamente el 50 % del poder de procesamiento en la red de Bitcoin, aunque esto lo mitiga el hecho de que los mineros pueden cambiar a otros pools de minado si un pool o coalición intentan un ataque del 51 %. + +El propósito actual de Ethereum es utilizar un algoritmo de minado donde los mineros tienen que obtener datos aleatorios del estado, computar aleatoriamente algunas transacciones seleccionadas de los últimos N bloques en la blockchain, y devolver el hash del resultado. Esto tiene dos ventajas importantes. Primero, los contratos de Ethereum pueden incluir cualquier tipo de cómputo, por lo que un ASIC Ethereum sería esencialmente un ASIC de cómputo general, es decir, una CPU mejor. Segundo, la minería requiere acceso a toda la blockchain, lo que obliga a los mineros a almacenar toda la blockchian y ser al menos capaces de verificar cada transacción. Esto elimina la necesidad de pools de minado centralizadas; aunque las pools de minado pueden seguir desempeñando el papel legítimo de equilibrar la aleatoriedad de la distribución de recompensas, esta función puede realizarse igualmente bien por pools entre pares sin ningún control central. + +Este modelo no ha sido probado, y puede haber dificultades a lo largo del camino para evitar ciertas optimizaciones inteligentes cuando se utiliza la ejecución del contrato como algoritmo de minado. Sin embargo, una característica notablemente interesante de este algoritmo es que permite a cualquiera "envenenar el pozo", al introducir un gran número de contratos en la blockchain específicamente diseñados para bloquear ciertos ASIC. Existen incentivos económicos para que los fabricantes de ASIC utilicen un truco así para atacarse mutuamente. Por tanto, la solución que estamos desarrollando es en última instancia, una solución adaptativa humana en vez de una solución puramente técnica. + +### Escalabilidad {#scalability} + +Una preocupación común en Ethereum es la cuestión de la escalabilidad. Al igual que Bitcoin, Ethereum sufre del defecto de que cada transacción tiene que ser procesada por cada nodo de la red. Con Bitcoin, el tamaño de la blockchain actual se sitúa en unos 15 GB, creciendo alrededor de 1 MB por hora. Si la red Bitcoin procesara las 2000 transacciones que procesa Visa por segundo, crecería 1 MB cada tres segundos (1 GB por hora, 8 TB por año). Es probable que Ethereum sufra un patrón de crecimiento similar, empeorado por el hecho de que habrá muchas aplicaciones funcionando encima del blockchain Ethereum, en lugar de solo una moneda como es el caso de Bitcoin, pero mitigado por el hecho de que los nodos completos de Ethereum necesitan almacenar sólo el estado en lugar de todo el historial de la blockchain. + +El problema con un tamaño tan grande de blockchain es el riesgo de centralización. Si el tamaño del blockchain aumenta hasta, digamos, 100 TB, entonces el escenario más factible sería que solo un pequeño número de grandes empresas ejecutarían nodos completos, y todos los usuarios normales usarían nodos SPV ligeros. En esta situación, surge el problema potencial de que los nodos completos se unieran y acordasen hacer trampas de algún modo rentable (p. ej., cambiando la recompensa por bloque, darse a si mismos BTC). Los nodos ligeros no tendrían forma de detectar esto inmediatamente. Por supuesto, probablemente existiría al menos un nodo completo honesto, y al cabo de unas horas la información sobre el fraude se iría filtrando a través de canales como Reddit, pero llegados a ese punto sería demasiado tarde: correspondería a los usuarios ordinarios organizar un esfuerzo para elaborar una lista negra de dichos bloques, un problema masivo y probablemente no factible de coordinación a una escala similar a la de lograr con éxito un ataque del 51 %. En el caso de Bitcoin, esto es actualmente un problema, pero existe una modificación de blockchain [propuesta por Peter Todd](https://web.archive.org/web/20140623061815/http://sourceforge.net/p/bitcoin/mailman/message/31709140/) que mitigará este problema. + +A corto plazo, Ethereum utilizará dos estrategias adicionales para hacer frente a este problema. Primero, dados los algoritmos de minado basados en blockchain, todos y cada uno de los mineros estarán obligados a ser nodos completos, creando un límite inferior en el número de nodos completos. Segundo, y no obstante más importante, incluiremos una raíz del árbol de estado intermedio en el blockchain después de procesar cada transacción. Incluso si la validación del bloque está centralizada, siempre y cuando exista un nodo de verificación honesto, el problema de la centralización se puede eludir a través de un protocolo de verificación. Si un minero publica un bloque inválido, el bloque o bien estará mal formateado, o el estado `S[n]` será incorrecto. Como se sabe que `S[0]` es correcto, debe haber algún primer estado `S[i]` que es incorrecto, donde `S[i-1]` es correcto. El nodo de verificación proporcionaría el índice `i`, junto con una "prueba de nulidad" consistente en el subconjunto de nodos de árbol Patricia que necesitan procesar `APPLY(S[i-1], X[i]) -> S[i]`. Los nodos podrían usar esos nodos Patricia para ejecutar esa parte del cómputo, y ver que el `S[i]` generado no coincide con el `S[i]` proporcionado. + +Otro ataque más sofisticado consistiría en que los mineros maliciosos publicasen bloques incompletos, por lo que ni siquiera existiría la información completa para determinar si los bloques son válidos o no. La solución a esto es un protocolos desafío-respuesta: los nodos de verificación emiten "desafíos" en forma de índices de transacción objetivo, y al recibir un nodo, un nodo ligero trata el bloque como no fiable hasta que otro nodo, ya sea minero u otro verificador, proporcione un subconjunto de nodos Patricia como prueba de validez. + +## Conclusión {#conclusion} + +El protocolo Ethereum fue concebido originalmente como una versión mejorada de una criptomoneda, proporcionando características avanzadas como fideicomiso sobre la blockchain, límites de retiro, contratos financieros, mercados de apuestas y similares a través de un lenguaje de programación de propósito muy general. El protocolo Ethereum no "implementaría" ninguna de las aplicaciones directamente, pero la existencia de un lenguaje de programación Turing completo significa que teóricamente pueden crearse contratos arbitrarios para cualquier tipo de transacción o aplicación. Lo más interesante de Ethereum, sin embargo, es que el protocolo Ethereum va mucho más allá de ser solo una moneda. Los protocolos en torno al almacenamiento de archivos descentralizado, la computación descentralizada y los mercados de predicción descentralizados, entre docenas de otros conceptos de este tipo, tienen el potencial de aumentar sustancialmente la eficiencia de la industria computacional y aportar un impulso masivo a otros protocolos peer-to-peer al añadir por primera vez una capa económica. Por último, también hay un considerable conjunto de aplicaciones que no guardan relación alguna con el dinero. + +El concepto de una función de transición de estado arbitraria implementada por el protocolo Ethereum proporciona una plataforma con un potencial único; en lugar de ser un protocolo de un solo propósito cerrado destinado a una serie específica de aplicaciones en el ámbito del almacenamiento de datos, apuestas o finanzas, Ethereum está abierto por diseño y creemos que es extremadamente adecuado para servir como una capa fundacional para un gran número de protocolos financieros y no financieros en los años venideros. + +## Notas y lecturas adicionales {#notes-and-further-reading} + +### Notas {#notes} + +1. Un lector sofisticado puede haber notado que una dirección de Bitcoin es el hash de la clave pública de la curva elíptica, y no la clave pública en sí. Sin embargo, es perféctamente legítimo en terminología criptográfica el referirse al hash de la clave pública como la clave pública en sí. Esto es porque la la criptografía de Bitcoin se puede considerar un algoritmo personalizado de firma digital, donde la clave pública consiste en el hash de la clave pública CCE, la firma consiste en la clave pública CCE concatenada con la firma CCE, y el algoritmo de verificación involucra verificar la clave pública ECC en la firma contra el hash de la clave pública ECC proporcionada como clave pública y después verificar la firma ECC contra la clave pública ECC. +2. Técnicamente, la mediana de los 11 bloques anteriores. +3. El protocolo Ethereum debe ser tan simple como práctico, pero puede que sea necesario tener un nivel bastante alto de complejidad, por ejemplo para escalar, para internalizar los costes de almacenamiento, ancho de banda y E/S, para seguridad, privacidad, transparencia, etc. Donde sea necesaria la complejidad, la documentación debe ser tan clara, concisa y actualizada como sea posible. para que alguien completamente sin conocimiento de Ethereum pueda aprender y convertirse en un experto. +4. Consulta el [documento amarillo](https://ethereum.github.io/yellowpaper/paper.pdf) de la máquina virtual Ethereum (que es útil como especificación y referencia para construir un cliente Ethereum desde cero), y también hay muchos temas en la [wiki de Ethereum](https://github.com/ethereum/wiki/wiki), tales como desarrollo de sharding, desarrollo del núcleo, desarrollo de dapp, investigación, Casper, I+D y protocolos de red. Para investigación y posible implementación en el futuro está [ethresearch.ch](https://ethresear.ch). +5. Otra forma de expresar esto es con abstracción. La [última hoja de ruta](https://ethresear.ch/t/sharding-phase-1-spec/1407/67) está planeando la ejecución abstracta, permitiendo que los motores de ejecución no tengan que seguir necesariamente una especificación canónica, sino que por ejemplo podría ser diseñados para una aplicación específica, así como para un shard. (Esta heterogeneidad de los motores de ejecución no está explícitamente señalada en la hoja de ruta. También está el sharding heterógeno, que conceptualizó Vlad Zamfir.) +6. Internamente, tanto 2 como "CHARLIE" son números, siendo este último representado en base 256 big-endian. Los números pueden ser como mínimo 0 y como máximo 2256-1. + +### Lecturas adicionales {#further-reading} + +1. [Valor intrínseco](http://bitcoinmagazine.com/8640/an-exploration-of-intrinsic-value-what-it-is-why-bitcoin-doesnt-have-it-and-why-bitcoin-does-have-it/) +2. [Propiedad inteligente](https://en.bitcoin.it/wiki/Smart_Property) +3. [Contratos inteligentes](https://en.bitcoin.it/wiki/Contracts) +4. [B-money](http://www.weidai.com/bmoney.txt) +5. [Pruebas de trabajo reutilizables](http://www.finney.org/~hal/rpow/) +6. [Títulos de propiedad seguros con autoridad del propietario](http://szabo.best.vwh.net/securetitle.html) +7. [Informe oficial de Bitcoin](http://bitcoin.org/bitcoin.pdf) +8. [Namecoin](https://namecoin.org/) +9. [Triángulo de Zooko](https://wikipedia.org/wiki/Zooko's_triangle) +10. [Informe oficial de monedas coloreadas](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit) +11. [Informe oficial de Mastercoin](https://github.com/mastercoin-MSC/spec) +12. [Corporaciones autónomas descentralizadas, Bitcoin Magazine](http://bitcoinmagazine.com/7050/bootstrapping-a-decentralized-autonomous-corporation-part-i/) +13. [Verificación de pago simplificada](https://en.bitcoin.it/wiki/Scalability#Simplifiedpaymentverification) +14. [Árboles de Merkle](https://wikipedia.org/wiki/Merkle_tree) +15. [Árboles de Patricia](https://wikipedia.org/wiki/Patricia_tree) +16. [GHOST](https://eprint.iacr.org/2013/881.pdf) +17. [StorJ y agentes autónomos, Jeff Garzik](http://garzikrants.blogspot.ca/2013/01/storj-and-bitcoin-autonomous-agents.html) +18. [Mike Hearn, sobre propiedad inteligente en el Turing Festival](http://www.youtube.com/watch?v=Pu4PAMFPo5Y) +19. [Ethereum RLP](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-RLP) +20. [Árboles de Merkle y Patricia en Ethereum](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-Patricia-Tree) +21. [Peter Todd sobre los árboles Merkle de suma](http://sourceforge.net/p/bitcoin/mailman/message/31709140/) + +_Para consultar la historia del libro blanco, ver https://github.com/ethereum/wiki/blob/old-before-deleting-all-files-go-to-wiki-wiki-instead/old-whitepaper-for-historical-reference.md_ + +_Ethereum, al igual que muchos proyectos de software de código abierto impulsados por la comunidad, ha evolucionado desde su concepción inicial. Para aprender sobre los últimos desarrollos de Ethereum, y cómo se hacen los cambios en el protocolo, recomendamos [esta guía](/learn/)._ diff --git a/src/content/translations/es/zero-knowledge-proofs/index.md b/public/content/translations/es/zero-knowledge-proofs/index.md similarity index 100% rename from src/content/translations/es/zero-knowledge-proofs/index.md rename to public/content/translations/es/zero-knowledge-proofs/index.md diff --git a/src/content/translations/fa/bridges/index.md b/public/content/translations/fa/bridges/index.md similarity index 100% rename from src/content/translations/fa/bridges/index.md rename to public/content/translations/fa/bridges/index.md diff --git a/src/content/translations/fa/community/code-of-conduct/index.md b/public/content/translations/fa/community/code-of-conduct/index.md similarity index 100% rename from src/content/translations/fa/community/code-of-conduct/index.md rename to public/content/translations/fa/community/code-of-conduct/index.md diff --git a/src/content/translations/fa/community/events/index.md b/public/content/translations/fa/community/events/index.md similarity index 100% rename from src/content/translations/fa/community/events/index.md rename to public/content/translations/fa/community/events/index.md diff --git a/src/content/translations/fa/community/get-involved/index.md b/public/content/translations/fa/community/get-involved/index.md similarity index 100% rename from src/content/translations/fa/community/get-involved/index.md rename to public/content/translations/fa/community/get-involved/index.md diff --git a/src/content/translations/fa/community/grants/index.md b/public/content/translations/fa/community/grants/index.md similarity index 100% rename from src/content/translations/fa/community/grants/index.md rename to public/content/translations/fa/community/grants/index.md diff --git a/src/content/translations/fa/community/language-resources/index.md b/public/content/translations/fa/community/language-resources/index.md similarity index 100% rename from src/content/translations/fa/community/language-resources/index.md rename to public/content/translations/fa/community/language-resources/index.md diff --git a/src/content/translations/fa/community/online/index.md b/public/content/translations/fa/community/online/index.md similarity index 100% rename from src/content/translations/fa/community/online/index.md rename to public/content/translations/fa/community/online/index.md diff --git a/src/content/translations/fa/community/research/index.md b/public/content/translations/fa/community/research/index.md similarity index 100% rename from src/content/translations/fa/community/research/index.md rename to public/content/translations/fa/community/research/index.md diff --git a/public/content/translations/fa/community/support/index.md b/public/content/translations/fa/community/support/index.md new file mode 100644 index 00000000000..44f1d2b14ce --- /dev/null +++ b/public/content/translations/fa/community/support/index.md @@ -0,0 +1,116 @@ +--- +title: پشتیبانی اتریوم +description: در اکوسیستم اتریوم پشتیبانی دریافت کنید. +lang: fa +--- + +# پشتیبانی اتریوم {#support} + +## پشتیبانی رسمی اتریوم {#official-support} + +آیا به دنبال پشتیبانی رسمی اتریوم هستید؟ اولین چیزی که باید بدانید این است که اتریوم غیرمتمرکز است. این بدان معناست که هیچ سازمان مرکزی، نهاد یا شخصی مالک اتریوم نیست و به همین دلیل، هیچ کانال پشتیبانی رسمی وجود ندارد. + +درک ماهیت غیرمتمرکز اتریوم بسیار مهم است زیرا هرکسی که ادعا می‌کند پشتیبان رسمی اتریوم است، احتمالاً سعی دارد از شما کلاهبرداری کند! بهترین محافظت در برابر کلاهبرداران، آموزش خود و جدی گرفتن امنیت است. + + + امنیت اتریوم و جلوگیری از کلاهبرداری + + + + اصول اتریوم را بیاموزید + + +علیرغم عدم پشتیبانی رسمی، بسیاری از گروه‌ها، جوامع و پروژه‌ها در سراسر اکوسیستم اتریوم با کمال میل به شما کمک می‌کنند و شما می‌توانید اطلاعات و منابع مفید زیادی را در این صفحه بیابید. هنوز سؤالی دارید؟ به [دیسکورد ethereum.org](/discord/) بپیوندید، و ما سعی می‌کنیم کمکتان کنیم. + +## پشتیبانی کیف پول {#wallet-support} + +با کیف پول خود مشکل دارید؟ اکثر کیف پول‌ها دارای تیم‌های پشتیبانی اختصاصی هستند که می‌توانند به شما کمک کنند: + +- [MetaMask](https://metamask.zendesk.com/hc/) +- [Argent](https://support.argent.xyz/hc/) +- [MyEtherWallet](https://help.myetherwallet.com/) + +_این یک فهرست جامع نیست. برای پیدا کردن پشتیبانی برای یک کیف پول خاص به کمک نیاز دارید؟ به [دیسکورد ethereum.org](https://discord.gg/ethereum-org) بپیوندید و ما سعی خواهیم کرد به شما کمک کنیم._ + +به دنبال کیف پول اتریوم می‌گردید؟ [فهرست کامل کیف پول‌های اتریوم ما را جستجو کنید](/wallets/find-wallet/). + +## ساخت برنامه‌های غیرمتمرکز (dappها) {#building-support} + +ساختن می‌تواند سخت باشد. در اینجا برخی از فضاهای متمرکز توسعه با توسعه‌دهندگان باتجربه‌ای وجود دارند که خوشحال می‌شوند به شما کمکی کنند. + +- [دانشگاه شیمی](https://university.alchemy.com/#starter_code) +- [دیسکورد CryptoDevs](https://discord.gg/Z9TA39m8Yu) +- [StackExchange اتریوم](https://ethereum.stackexchange.com/) +- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) +- [دانشگاه Web3](https://www.web3.university/) +- [LearnWeb3](https://discord.com/invite/learnweb3) + +همچنین می‌توانید مستندات و راهنمای توسعه را در بخش [منابع توسعه‌دهندگان اتریوم](/developers/) ما بیابید. + +### ابزارسازی {#dapp-tooling} + +آیا سؤال شما به ابزار، پروژه یا کتابخانه خاصی مربوط می‌شود؟ بیشتر پروژه‌ها دارای سرورهای چت یا انجمن‌هایی هستند که برای پشتیبانی از شما اختصاص داده‌شده‌اند. + +در اینجا برخی از نمونه‌های محبوب آورده شده است: + +- [Solidity](https://gitter.im/ethereum/solidity/) +- [ethers.js](https://discord.gg/6jyGVDK6Jx) +- [web3.js](https://discord.gg/GsABYQu4sC) +- [Hardhat](https://discord.gg/xtrMGhmbfZ) +- [Truffle](https://discord.gg/8uKcsccEYE) +- [Alchemy](http://alchemy.com/discord) +- [Tenderly](https://discord.gg/fBvDJYR) + +## راه‌اندازی یک گره {#node-support} + +اگر از یک گره یا یک اعتبارسنج استفاده می‌کنید، در اینجا چند انجمن وجود دارد که به شما در شروع کار کمک می‌کنند. + +- [دیسکورد EthStaker](https://discord.io/ethstaker) +- [ردیت EthStaker](https://www.reddit.com/r/ethstaker) + +اکثر تیم‌هایی که کلاینت های اتریومی را می‌سازند، فضاهای اختصاصی و عمومی دارند که می‌توانید از آنها پشتیبانی دریافت کنید و سؤال بپرسید. + +### کلاینت‌های اجرا {#execution-clients} + +- [Geth](https://discord.gg/FqDzupGyYf) +- [Nethermind](https://discord.gg/YJx3pm8z5C) +- [Besu](https://discord.gg/p8djYngzKN) +- [Erigon](https://github.com/ledgerwatch/erigon/issues) + +### کلاینت‌های اجماع {#consensus-clients} + +- [Prysm](https://discord.gg/prysmaticlabs) +- [Nimbus](https://discord.gg/nSmEH3qgFv) +- [Lighthouse](https://discord.gg/cyAszAh) +- [Teku](https://discord.gg/7hPv2T6) +- [Lodestar](https://discord.gg/aMxzVcr) + +همچنین می‌توانید [نحوه‌ی اجرای یک گره را در اینجا بیاموزید](/developers/docs/nodes-and-clients/run-a-node/). + +## پرسش‌های متداول {#faq} + +### من به کیف پول اشتباهی اتر فرستاده‌ام {#wrong-wallet} + +تراکنش ارسال‌شده روی اتریوم برگشت‌ناپذیر است. متأسفانه اگر به کیف پول اشتباهی اتر ارسال کرده باشید، هیچ راهی برای برگرداندن آن وجود ندارد. هیچ سازمان مرکزی، نهاد یا شخصی مالک اتریوم نیست، به این معنی که هیچ‌کس نمی‌تواند تراکنش‌ها را برگشت دهد. بنابراین، همیشه ضروری است که تراکنش‌های خود را قبل از ارسال دوباره بررسی کنید. + +### چگونه می‌توانم هدایای اتریوم خود را مطالبه کنم؟ {#giveaway-scam} + +هدایای اتریوم کلاهبرداری‌هایی است که برای سرقت اتریوم شما طراحی شده‌اند. در معرض وسوسه‌ی پیشنهادهایی که به نظر خیلی خوب و واقعی به نظر می‌رسند قرار نگیرید - اگر اتوریومی را به یک آدرس هدیه‌دهنده ارسال کنید، هدیه‌ای دریافت نخواهید کرد و نمی‌توانید وجوه خود را بازیابی کنید. + +[اطلاعات بیشتر در مورد پیشگیری از کلاهبرداری](/security/#common-scams) + +### تراکنش من گیر کرده است {#stuck-transaction} + +اگر به دلیل تقاضای شبکه کارمزد تراکنش کمتری را نسبت به آنچه که لازم است ارسال کرده باشید، تراکنش‌های اتریوم گاهی ممکن است گیر کنند. بسیاری از کیف پول‌ها گزینه‌ای برای ارسال مجدد همان تراکنش با کارمزد تراکنش بالاتر را ارائه می‌دهند تا امکان پردازش تراکنش فراهم شود. از طرف دیگر، می‌توانید با ارسال یک تراکنش به آدرس خودتان و استفاده از nonce همان تراکنش معلق، یک تراکنش معلق را لغو کنید. + +[نحوه‌ی سرعت بخشیدن یا لغو تراکنش معلق در MetaMask](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) + +[چگونه تراکنش‌های معلق اتریوم را لغو کنیم؟](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) + +### چگونه می‌توانم اتریوم را استخراج کنم؟ {#mining-ethereum} + +استخراج اتریوم دیگر امکان‌پذیر نیست. از زمانی که اتریوم از اثبات کار به اثبات سهام منتقل شد، استخراج ناممکن شد. اکنون به جای ماینر، اتریوم اعتبارسنج دارد. اعتبارسنجی‌ه اتر را به اشتراک می‌گذارند و برای ایمن کردن شبکه، پاداش سهام‌گذاری دریافت می‌کنند. + +### چگونه می‌توانم یک سهام‌گذار/اعتبارسنج شوم؟ {#become-validator} + +برای تبدیل شدن به یک اعتبار‌سنج، باید 32 اتر در قرارداد سپرده‌گذاری کنید و یک گره‌ی اعتبارسنج راه‌اندازی کنید.‌ اطلاعات بیشتر در [صفحات سهام‌گذاری](/staking) و در [سکوی پرتاب سهام‌گذاری](https://launchpad.ethereum.org/) ما در دسترس است. diff --git a/public/content/translations/fa/dao/index.md b/public/content/translations/fa/dao/index.md new file mode 100644 index 00000000000..5b66558222e --- /dev/null +++ b/public/content/translations/fa/dao/index.md @@ -0,0 +1,165 @@ +--- +title: سازمان‌های خودمختار غیرمتمرکز (DAOها) +description: نگاهی کلی به DAOهای بر پایه اتریوم +lang: fa +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: تصویری از یک DAO در حال رأی دادن به یک پیشنهاد. +summaryPoint1: جوامع عضومحور بدون رهبری متمرکز. +summaryPoint2: راهی ایمن برای برقراری ارتباط با غریبه‌های اینترنتی. +summaryPoint3: محلی امن برای تخصیص وجه به یک هدف خاص. +--- + +## DAO چیست؟ {#what-are-daos} + +DAO یک سازمان تحت مالکیت جمعی و تحت کنترل بلاک چین است که در راستای یک ماموریت مشترک کار می کند. + +DAOها به ما این امکان را می دهند که بدون اعتماد به یک رهبر خیرخواه برای مدیریت سرمایه ها یا عملیات، با افراد همفکر در سراسر جهان کار کنیم. هیچ مدیر عاملی وجود ندارد که بتواند بودجه خود را صرف یک هوس کند یا مدیر مالی که بتواند کتاب ها را دستکاری کند. درعوض، قوانین مبتنی بر بلاک چین که در کد گنجانده شده است، نحوه عملکرد سازمان و نحوه خرج کردن بودجه را مشخص می کند. + +آن‌ها دارایی‌های یکپارچه‌ای تحت اختیار دارند که هیچ‌کس بدون تأیید گروه، اجازه‌ دسترسی به آن‌ها را ندارد. تصمیم‌ها با پیشنهادها و رأی‌گیری اداره می‌شوند تا اطمینان حاصل شود که همه در سازمان حق اظهار نظر دارند و همه چیز به‌طور شفاف در زنجیره اتفاق می‌افتد. + +## چرا به DAOها نیاز داریم؟ {#why-dao} + +راه‌اندازی یک سازمان با شخصی دیگر که نیازمند بودجه و پول است، نیاز به اعتماد زیادی به افرادی دارد که با آن‌ها کار می‌کنید. اما اعتماد کردن به کسی که با او فقط در اینترنت تعامل داشته‌اید آسان نیست. با استفاده از DAOها، نیازی به اعتماد به دیگر افراد گروه نیست؛ فقط کافی است از کد DAO مطمئن شوید که 100% شفاف است و توسط هر کسی قابل تأیید است. + +این موضوع فرصت‌های جدیدی را برای همکاری و هماهنگی در سطح جهانی ایجاد می‌کند. + +### یک مقایسه: {#dao-comparison} + +| DAO | یک سازمان سنتی | +| ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | +| معمولاً همه‌ی افراد آن در یک سطح هستند و کاملاً دموکراتیک است. | معمولاً دارای ساختار سلسله‌مراتبی است. | +| رأی‌گیری از اعضا برای اعمال هرگونه تغییر لازم است. | با توجه به ساختار سازمان، تغییرات را باید از مقامات رده‌بالا درخواست کرد یا ممکن است دراین‌باره رای‌گیری شود. | +| رأی‌ها شمرده می‌شود و نتیجه به‌طور خودکار بدون نیاز به واسطه‌ی مورد اعتماد اعلام می‌شود. | اگر رأی‌گیری انجام شود، رأی‌ها به‌صورت داخلی شمرده می‌شود و نتیجه‌ی رأی‌گیری باید به‌صورت دستی اعلام شود. | +| خدمات ارائه‌شده به‌طور خودکار و به‌صورت غیرمتمرکز انجام می‌شوند (به‌عنوان مثال، توزیع کمک‌های بشردوستانه). | نیازمند دخالت انسان یا اتوماسیونِ دارای کنترل مرکزی است، که مستعد دستکاری است. | +| تمام فعالیت‌ها شفاف و کاملاً عمومی است. | فعالیت‌ها معمولاً خصوصی است و دسترسی عمومی به آنها محدود است. | + +### نمونه‌های DAO {#dao-examples} + +برای درک بیشتر این موضوع، در اینجا چند مثال از موارد استفاده از DAO آورده شده است: + +- یک سازمان خیریه - می‌توانید از هر کس در دنیا اهدایی بپذیرید و تصمیم بگیرید برای چه کار خیری کمک کنید. +- مالکیت جمعی - می‌توان دارایی‌های دیجیتال یا فیزیکال خرید و اعضا می‌توانند به اینکه چطور از آنها استفاده کنند رای دهند. +- سرمایه‌گذاری‌های جسورانه و کمک‌های مالی به کسب‌وکارها – می‌توانید یک صندوق سرمایه‌گذاری جسورانه ایجاد کنید که منابع مالی را جمع‌آوری کند و به استارت‌آپ‌ها و کسب‌وکارهای نوپا تزریق کند. پول بازپرداخت‌شده می‌تواند بعداً بین اعضای DAO توزیع شود. + +## DAOها چگونه کار می‌کنند؟ {#how-daos-work} + +شالوده اصلی هر سازمان مستقل غیرمتمرکز، قرارداد هوشمند آن است که قوانین این سازمان را تعیین و خزانه گروه را نگاه می‌داد. هنگامی که قرارداد در اتریوم فعال می‌شود، هیچ‌کس نمی‌تواند قوانین را تغییر دهد مگر با رأی دادن. اگر کسی سعی کند کاری انجام دهد که توسط قوانین و منطق موجود در کد پوشش داده نشده باشد، با شکست مواجه خواهد شد. و از آنجا که خزانه‌داری نیز توسط قرارداد هوشمند تعریف می‌شود، به این معنی است که هیچ‌کس نمی‌تواند پول را بدون تأیید گروه خرج کند. این بدان معناست که DAOها نیازی به یک مرجع مرکزی ندارند. در عوض، گروه به صورت جمعی تصمیم می‌گیرد و پرداخت‌ها به صورت‌خودکار با تصویب آرا مجاز می‌شوند. + +این امر به این دلیل امکان‌پذیر است که قراردادهای هوشمند به محض فعال شدن روی اتریوم، ضد دستکاری هستند. شما نمی‌توانید کد (قوانین DAOها) را بدون اینکه مردم متوجه شوند ویرایش کنید، زیرا همه‌چیز عمومی است. + + + اطلاعات بیشتر درباره قراردادهای هوشمند + + +## اتریوم و DAOها {#ethereum-and-daos} + +اتریوم بنا به دلایلی زیربنای عالی برای DAOها است: + +- وفاق خود اتریوم به اندازه کافی توزیع و ایجاد شده است که سازمان‌ها بتوانند به شبکه اعتماد کنند. +- کد قرارداد هوشمند، حتی توسط صاحبان آن نمی‌تواند پس از فعال شدن تغییر داده شود. این موضوع به DAO اجازه می‌دهد تا بر اساس قوانینی که با آن برنامه‌ریزی شده است اجرا شود. +- قراردادهای هوشمند می‌توانند وجوه را ارسال یا دریافت کنند. بدون آن، شما برای مدیریت وجوه گروه به یک واسطه قابل‌اعتماد نیاز دارید. +- جامعه اتریوم ثابت کرده است که بیشتر مشارکتی است تا رقابتی، و اجازه می‌دهد که بهترین شیوه‌ها و سیستم‌های پشتیبانی به‌سرعت ظهور کنند. + +## حاکمیت DAO {#dao-governance} + +در زمان حاکمیت یک DAO، موارد بسیاری باید در نظر گرفته شوند، از جمله نحوه رای دادن و پیشنهادها. + +### نمایندگی {#governance-delegation} + +اصطلاح نمایندگی (Delegation) نسخه DAO از دموکراسی نمایندگی است. هولدرهای توکن، نمایندگی رای خود را به کاربرانی می‌دهند که خودشان را نامزد می‌کنند و پروتکل مورد نظر را مدیریت می‌کنند و همیشه در جریان امور هستند. + +#### یک مثال آشنا {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) - هولدرهای ENS می‌توانند نمایندگی رای‌های خود را به اعضا مشارکت‌کننده جامعه بسپارند تا نماینده آنان شوند. + +### حاکمیت خودکار تراکنش‌ {#governance-example} + +در بسیاری از DAOها، تراکنش ها در صورت کسب حدنصاب آرای اعضا، به صورت خودکار اجرا خواهند شد. + +#### یک نمونهٔ معروف {#governance-example} + +[Nouns](https://nouns.wtf) در Nouns DAO، تا زمانی که بنیان گذاران رای نداده باشند، اگر رای‌ها به حد نصاب برسند و اکثریت رای موافق داده باشند، یک تراکنش به طور خودکار اجرا می‌شود. + +### حاکمیت چند امضایی {#governance-example} + +با اینکه DAOها ممکن است هزاران عضو رای دهنده داشته باشند، وجوه را می‌توان در یک کیف پول مشترک بین ۵ تا ۲۰ عضو فعال جامعه که مورد اعتماد و معمولا داکس شده‌اند (هویت آشنا برای عموم) یافت. پس از اجرای یک رای، امضا کننده‌های کیف پول چند امضایی مورد نظر، خواسته جامعه را اجرا می‌کنند. + +## قوانین DAOها {#dao-laws} + +در سال ۱۹۷۷، وایومینگ LLC را اختراع کرد که از کارآفرینان محافظت کرده و مسئولیت آنها را محدود می‌کند. اخیراً، آنها پیشگام قانون DAO بودند که وضعیت قانونی را برای DAOها ایجاد می کند. در حال حاضر وایومینگ، ورمونت و جزایر ویرجین قوانین DAO را به نوعی دارند. + +### یک نمونهٔ معروف {#law-example} + +[CityDAO](https://citydao.io) – CityDAO از قانون DAO وایومینگ برای خرید 40 هکتار زمین در نزدیکی پارک ملی یلوستون استفاده کرد. + +## عضویت در DAO {#dao-membership} + +روش‌های مختلفی برای عضویت در DAO وجود دارد. اعضا می‌توانند نحوه رأی‌گیری و سایر بخش‌های کلیدی DAO را تعیین کنند. + +### عضویت مبتنی بر توکن {#token-based-membership} + +بسته به توکن مورد استفاده، معمولاً بدون نیاز به هیچ نوع مجوز است. عمدتاً این توکن‌های حاکمیتی را می‌توان بدون مجوز در یک صرافی غیرمتمرکز معامله کرد. توکن‌های دیگری نیز هستند که باید از طریق ارائه‌ نقدینگی یا «اثبات کار» به نوع دیگر به دست آیند. در هر صورت، صرفا نگه داشتن این توکن‌ها امکان شرکت در رأی‌گیری‌ها را فراهم می‌کند. + +_این روش معمولاً برای کنترل پروتکل‌های نامتمرکز گسترده و/یا خود توکن‌ها استفاده می‌شود._ + +#### یک نمونهٔ معروف {#token-example} + +[MakerDAO](https://makerdao.com) – توکن MakerDAO به نام MKR به طور گسترده در صرافی های نامتمرکز در دسترس بوده و هر کس می تواند با خرید آن قدرت رأی دادن در خصوص آینده ی پروتکل Maker را به دست آورد. + +### عضویت مبتنی بر سهم {#share-based-membership} + +DAOهای مبتنی بر سهم مجوزهای بیشتری دارند، اما هنوز کاملاً باز هستند. هر عضو احتمالی می‌تواند پیشنهادی برای پیوستن به DAO ارائه کند، که معمولاً ادای احترامی با ارزش به شکل توکن یا کار ارائه می‌کند. سهام نشان‌دهنده قدرت مستقیم رأی دادن و مالکیت است. اعضا می توانند در هر زمان با سهم متناسب خود از خزانه خارج شوند. + +_معمولاً برای سازمان‌های یکپارچه‌تر و انسان‌محوری مانند مؤسسات خیریه، تعاونی‌های کارگری و باشگاه‌های سرمایه‌گذاری استفاده می‌شود. همچنین می‌تواند پروتکل‌ها و توکن‌ها را نیز کنترل کند._ + +#### یک نمونهٔ معروف {#share-example} + +[MolochDAO](http://molochdao.com/) – MolochDAO بر تأمین مالی پروژه‌های اتریوم متمرکز است. آن‌ها به پیشنهاد عضویت نیاز دارند تا گروه بتواند ارزیابی کند که آیا شما تخصص و سرمایه‌ی لازم برای انجام قضاوت‌های آگاهانه در مورد دریافت‌کنندگان بالقوه‌ی احتمالی را دارید یا خیر. شما نمی‌توانید بدون دردسر از بازار آزاد دسترسی به DAO را خریداری کنید. + +### عضویت مبتنی بر شهرت {#reputation-based-membership} + +شهرت در DAO نشان‌دهنده اثبات مشارکت است و قدرت رأی را اعطا می‌کند. برخلاف عضویت مبتنی بر توکن یا سهم، DAOهای مبتنی بر شهرت مالکیت را به مشارکت‌کنندگان منتقل نمی‌کنند. شهرت را نمی‌توان خرید، انتقال یا تفویض کرد. اعضای DAO باید از طریق مشارکت شهرت کسب کنند. رأی‌گیری روی زنجیره غیرمجاز است و اعضای بالقوه می‌توانند آزادانه برای پیوستن به DAO پیشنهاد ارسال کنند و درخواست کنند که به‌عنوان پاداش در ازای مشارکت‌های خود، شهرت و توکن دریافت کنند. + +_معمولاً برای توسعه و حاکمیت غیرمتمرکز پروتکل‌ها و dAppها استفاده می‌شود، اما در عین حال برای مجموعه متنوعی از سازمان‌ها مانند مؤسسات خیریه، گروه‌های کارگری، باشگاه‌های سرمایه‌گذاری و غیره مناسب است._ + +#### یک نمونهٔ معروف {#reputation-example} + +[DXdao](https://DXdao.eth.link) – DXdao یک سازمان تضامنی حاکمیتی جهانی است که از سال 2019 به ساختن و حکمرانی کردن بر پروتکل‌ها و برنامه‌های کاربردی غیرمتمرکز مشغول است. این سازمان از حاکمیت مبتنی بر شهرت و اجماع هولوگرافیک برای هماهنگی و مدیریت وجوه استفاده می‌کند، به این معنی که هیچ‌کس نمی‌تواند روش خود را برای تأثیرگذاری بر آینده آن بخرد. + +## پیوستن به / ایجاد یک DAO {#join-start-a-dao} + +### پیوستن به DAO {#join-a-dao} + +- [DAOهای جامعه اتریوم](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [فهرست DAOها از DAOHaus](https://app.daohaus.club/explore) +- [لیست Tally.xyz از DAO](https://www.tally.xyz) + +### یک DAO راه‌اندازی کنید {#start-a-dao} + +- [یک DAO را از DAOHaus فراخوانی کنید](https://app.daohaus.club/summon) +- [یک Governor DAO با Tally راه اندازی کنید](https://www.tally.xyz/add-a-dao) +- [یک DAO تحت پشتیبانی Aragon ایجاد کنید](https://aragon.org/product) +- [یک گروه تشکیل دهید](https://colony.io/) +- [با اجماع هولوگرافیک DAOstack یک DAO ایجاد کنید](https://alchemy.daostack.io/daos/create) + +## بیشتر بخوانید {#further-reading} + +### مقالات مرتبط با DAO {#dao-articles} + +- [DAO چیست؟](https://aragon.org/dao) – [Aragon](https://aragon.org/) +- [کتاب راهنمای DAO](https://daohandbook.xyz) +- [مجموعه DAOها](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) +- [DAO چیست و به چه دردی می‌خورد؟](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) +- [چگونه انجمن دیجیتالی تحت پشتیبانی DAO ایجاد کنیم؟](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) +- [DAO چیست؟](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) +- [اجماع هولوگرافیک چیست؟](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) +- [DAOها شرکت نیستند: جایی که تمرکززدایی در سازمان های خودمختار از سوی Vitalik اهمیت دارد](https://vitalik.ca/general/2022/09/20/daos.html) +- [DAO، DAC، DA و موارد دیگر: راهنمای اصطلاحات ناقص](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [بلاگ اتریوم](https://blog.ethereum.org) + +### ویدیوها {#videos} + +- [DAO در دنیای رمزارزها چیست؟](https://youtu.be/KHm0uUPqmVE) +- [آیا یک DAO می‌تواند یک شهر بسازد؟](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) diff --git a/public/content/translations/fa/decentralized-identity/index.md b/public/content/translations/fa/decentralized-identity/index.md new file mode 100644 index 00000000000..6f88cc59ebf --- /dev/null +++ b/public/content/translations/fa/decentralized-identity/index.md @@ -0,0 +1,185 @@ +--- +title: هویت نامتمرکز +description: هویت نامتمرکز چیست و چرا اهمیت دارد؟ +lang: fa +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: /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) برای یک موجودیت. رمزنگاری کلید عمومی در شبکه های بلاک چین برای احراز هویت کاربران و اثبات مالکیت دارایی های دیجیتال استفاده می شود. + +برخی از شناسه های غیرمتمرکز، مانند حساب اتریوم، دارای کلیدهای عمومی و خصوصی هستند. کلید عمومی کنترل کننده حساب را شناسایی می کند، در حالی که کلیدهای خصوصی می توانند پیام های این حساب را امضا و رمزگشایی کنند. PKI با استفاده از [امضاهای رمزنگاری](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 صادرکننده در اتریوم تأیید کند. اساساً، بلاک چین اتریوم مانند یک فهرست جهانی عمل می کند که تأیید DID های مرتبط با موجودیت های خاص را امکان‌پذیر می کند. + +شناسه های غیرمتمرکز دلیلی هستند که تصدیق ها خودکنترلی و قابل تأیید هستند. حتی اگر صادرکننده دیگر وجود نداشته باشد، هولدر همیشه مدرکی دال بر منشأ و اعتبار تصدیق دارد. + +شناسه های غیرمتمرکز نیز برای محافظت از حریم خصوصی اطلاعات شخصی از طریق هویت غیرمتمرکز بسیار مهم هستند. برای مثال، اگر فردی مدرکی مبنی بر تصدیق (گواهینامه رانندگی) ارائه دهد، طرف تأییدکننده نیازی به بررسی اعتبار اطلاعات موجود در مدرک ندارد. درعوض، تأییدکننده فقط به ضمانت‌های رمزنگاری درباره اصالت تصدیق و هویت سازمان صادرکننده نیاز دارد تا تشخیص دهد که آیا مدرک معتبر است یا خیر. + +## انواع تصدیق در هویت غیرمتمرکز {#types-of-attestations-in-decentralized-identity} + +نحوه ذخیره و بازیابی اطلاعات تصدیق در اکوسیستم هویت مبتنی بر اتریوم با مدیریت هویت سنتی متفاوت است. در اینجا مروری بر رویکردهای مختلف برای صدور، ذخیره و تأیید تصدیق در سیستم‌های هویت غیرمتمرکز است: + +### تصدیق های خارج از زنجیره {#off-chain-attestations} + +یکی از نگرانی‌های مربوط به ذخیره تصدیق ها به‌صورت آنچین این است که ممکن است حاوی اطلاعاتی باشند که افراد بخواهند خصوصی نگه دارند. ماهیت عمومی بلاک چین اتریوم، ذخیره چنین تصدیق‌هایی را جذاب نمی‌کند. + +راه حل، صدور گواهی است که توسط کاربران خارج از زنجیره در کیف پول های دیجیتال نگهداری می شود، اما با DID صادرکننده که به‌صورت آنچین ذخیره می شود، امضا شده است. این تصدیق‌ها به‌عنوان [JSON Web Token](https://en.wikipedia.org/wiki/JSON_Web_Token) کدگذاری می‌شوند و حاوی امضای دیجیتال صادرکننده هستند—که امکان تأیید آسان ادعاهای خارج از زنجیره را فراهم می‌کند. + +در اینجا یک سناریوی فرضی برای توضیح تصدیق‌های خارج از زنجیره وجود دارد: + +1. یک دانشگاه (صادرکننده) یک تصدیق (گواهی علمی دیجیتالی) تولید می کند، کلیدهای آن را امضا می کند و آن را برای باب (صاحب هویت) صادر می کند. + +2. باب برای کار درخواست می‌کند و می‌خواهد مدارک تحصیلی خود را به یک کارفرما ثابت کند، بنابراین تصدیق را از کیف پول تلفن همراه خود به اشتراک می‌گذارد. سپس شرکت (تأیید کننده) می‌تواند اعتبار تصدیق را با بررسی DID صادرکننده (یعنی کلید عمومی آن در اتریوم) تأیید کند. + +### تصدیق های خارج از زنجیره با دسترسی مداوم {#offchain-attestations-with-persistent-access} + +به این ترتیب، تصدیق‌ها به فایل‌های JSON تبدیل می‌شوند و خارج از زنجیره ذخیره می‌شوند (به طور ایده‌آل در یک پلت‌فرم [ذخیره‌سازی غیرمتمرکز ابر](/developers/docs/storage/)، مانند IPFS یا Swarm). با این حال، یک [هش](/glossary/#hash) از فایل JSON در زنجیره ذخیره می‌شود و از طریق یک رجیستری در زنجیره به یک DID مرتبط می‌شود. DID مرتبط می‌تواند صادرکننده تصدیق یا گیرنده باشد. + +این رویکرد تصدیق‌ها را قادر می‌سازد تا پایداری مبتنی بر بلاک چین را به دست آورند، در حالی که اطلاعات ادعاها را رمزگذاری شده و قابل تأیید نگه می‌دارد. همچنین امکان افشای انتخابی را فراهم می کند زیرا دارنده کلید خصوصی می تواند اطلاعات را رمزگشایی کند. + +### تصدیق‌های آنچین {#onchain-attestations} + +تصدیق‌های آنچین در [قراردادهای هوشمند](/developers/docs/smart-contracts/) در بلاک‌چین اتریوم برگزار می‌شود. قرارداد هوشمند (که به عنوان یک رجیستری عمل می کند) یک تصدیق را به یک شناسه غیرمتمرکز آنچین مربوطه (یک کلید عمومی) متصل می کند. + +در اینجا یک مثال برای نشان دادن نحوه عملکرد تصدیق‌های آنچین در عمل آورده شده است: + +1. یک شرکت (XYZ Corp) قصد دارد سهام مالکیت خود را با استفاده از یک قرارداد هوشمند بفروشد اما فقط خریدارانی را می خواهد که بررسی پیشینه را تکمیل کرده باشند. + +2. XYZ Corp می‌تواند شرکت را وادار کند که بررسی‌های پیشینه را برای صدور تصدیق‌های آنچین در اتریوم انجام دهد. این گواهی تأیید می کند که یک فرد بدون افشای هیچ گونه اطلاعات شخصی، بررسی پیشینه را گذرانده است. + +3. قرارداد هوشمند فروش سهام می تواند قرارداد ثبت را برای هویت خریداران غربال شده بررسی کند و این امکان را برای قرارداد هوشمند تعیین کند که چه کسی مجاز به خرید سهام است یا خیر. + +### توکن‌های Soulbound و هویت {#soulbound} + +[توکن‌های Soulbound](https://vitalik.ca/general/2022/01/26/soulbound.html) (NFT‌های غیرقابل انتقال) می‌توانند برای جمع‌آوری اطلاعات منحصر به فرد برای یک کیف پول خاص استفاده شوند. این به طور مؤثر یک هویت آنچین منحصر به فرد ایجاد می کند که به یک آدرس اتریوم خاص متصل می شود که می تواند شامل توکن هایی باشد که دستاوردها را نشان می دهد (به عنوان مثال اتمام یک دوره آنلاین خاص یا گذراندن یک امتیاز آستانه در یک بازی) یا مشارکت کامیونیتی. + +## مزایای هویت غیرمتمرکز {#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/) باشد که به دارنده اجازه دسترسی به یک انجمن آنلاین را می دهد. + +سپس یک تابع [Sign-In with Ethereum](https://login.xyz/) سرورها را قادر می‌سازد تا حساب اتریوم کاربر را تأیید کنند و گواهی لازم را از آدرس حساب خود دریافت کنند. این بدان معناست که کاربران می توانند بدون نیاز به حفظ رمزهای عبور طولانی به پلتفرم ها و وب سایت ها دسترسی داشته باشند و این تجربه آنلاین را برای کاربران بهبود می بخشد. + +### 2. احراز هویت KYC {#kyc-authentication} + +استفاده از بسیاری از خدمات آنلاین، افراد را ملزم به ارائه تصدیق ها و اعتبارنامه هایی مانند گواهینامه رانندگی یا پاسپورت ملی می کند. اما این رویکرد مشکل ساز است زیرا اطلاعات خصوصی کاربر می تواند به خطر بیفتد و ارائه دهندگان خدمات نمی توانند صحت تصدیق را تأیید کنند. + +هویت غیرمتمرکز به شرکت‌ها این امکان را می‌دهد که از فرآیندهای معمول [Know-Your-Customer (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) صرف‌نظر کنند و هویت کاربر را از طریق اعتبارنامه‌های قابل تأیید احراز هویت کنند. این امر هزینه مدیریت هویت را کاهش می دهد و از استفاده از اسناد جعلی جلوگیری می کند. + +### 3. رای گیری و کامیونیتی‌های آنلاین {#voting-and-online-communities} + +رای گیری آنلاین و سوشال مدیا دو کاربرد جدید برای هویت غیرمتمرکز هستند. طرح‌های رای‌گیری آنلاین مستعد دستکاری هستند، به‌ویژه اگر بازیگران بدخواه برای رای دادن هویت‌های جعلی ایجاد کنند. درخواست از افراد برای ارائه تصدیق های آنچین می تواند یکپارچگی فرآیندهای رای گیری آنلاین را بهبود بخشد. + +هویت غیرمتمرکز می تواند به ایجاد کامیونیتی‌های آنلاینی که عاری از حساب های جعلی هستند کمک کند. به عنوان مثال، هر کاربر ممکن است مجبور باشد هویت خود را با استفاده از یک سیستم هویت آنچین، مانند سرویس نام اتریوم، احراز هویت کند، که احتمال وجود ربات ها را کاهش می دهد. + +### 4. محافظت ضد سیبیل {#sybil-protection} + +حملات Sybil به افراد فردی اشاره دارد که یک سیستم را فریب می دهند تا فکر کنند چندین نفر هستند تا نفوذ خود را افزایش دهند. [برنامه های کمک هزینه](https://gitcoin.co/grants/) که از [رأی درجه](https://www.radicalxchange.org/concepts/plural-voting/) استفاده می کنند در برابر این حملات Sybil آسیب پذیر هستند زیرا ارزش کمک هزینه زمانی افزایش می یابد که افراد بیشتری به آن رأی می دهند و کاربران را تشویق می کند تا مشارکت های خود را در بسیاری از هویت ها تقسیم کنند. هویت‌های غیرمتمرکز با بالا بردن بار روی دوش هر شرکت‌کننده برای اثبات اینکه واقعاً انسان هستند، به جلوگیری از این امر کمک می‌کند، هرچند اغلب بدون نیاز به افشای اطلاعات خصوصی خاص. + +## از هویت غیرمتمرکز استفاده کنید {#use-decentralized-identity} + +پروژه های جاه طلبانه زیادی وجود دارد که از اتریوم به عنوان پایه ای برای راه حل های هویت غیرمتمرکز استفاده می کنند: + +- **[Ethereum Name Service (ENS)](https://ens.domains/)** - _یک سیستم نام‌گذاری غیرمتمرکز برای شناسه‌های روی زنجیره، قابل خواندن توسط ماشین، مانند آدرس‌های کیف پول اتریوم، هش محتوا و ابرداده._ +- **[SpruceID](https://www.spruceid.com/)** - _یک پروژه هویت غیرمتمرکز که به کاربران امکان می دهد به جای تکیه بر خدمات شخص ثالث هویت دیجیتال را با حساب های اتریوم و پروفایل های ENS کنترل کنند._ +- **[خدمات گواهی اتریوم (EAS)](https://attest.sh/)** - _یک دفتر کل/پروتکل غیرمتمرکز برای ایجاد گواهی‌های زنجیره‌ای یا خارج از زنجیره درباره هر چیزی._ +- **[Proof of Humanity](https://www.proofofhumanity.id)** - _Proof of Humanity (یا PoH) یک سیستم تأیید هویت اجتماعی است که بر روی اتریوم ساخته شده است._ +- **[BrightID](https://www.brightid.org/)** - _یک شبکه هویت اجتماعی غیرمتمرکز و منبع باز که به دنبال اصلاح تأیید هویت از طریق ایجاد و تجزیه و تحلیل یک نمودار اجتماعی است._ +- **[گذرنامه اثبات شخصیت](https://proofofpersonhood.com/)** - _یک جمع کننده هویت دیجیتال غیرمتمرکز._ + +## بیشتر بخوانید {#further-reading} + +### مقالات {#articles} + +- [موارد استفاده از بلاک چین: بلاک چین در هویت دیجیتال](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ +- [اتریوم ERC725 چیست؟ مدیریت هویت خودمختار در بلاک چین](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _سام تاون_ +- [چگونه بلاک چین می تواند مشکل هویت دیجیتال را حل کند](https://time.com/6142810/proof-of-humanity/) — _اندرو آر. چاو_ +- [هویت غیرمتمرکز چیست و چرا باید به آن اهمیت دهید؟](https://web3.hashnode.com/what-is-decentralized-identity) _آووسیکا_ + +### ویدیوها {#videos} + +- [هویت غیرمتمرکز (جلسه پخش زنده جایزه)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) - _یک ویدیوی توضیح دهنده عالی در مورد هویت غیرمتمرکز توسط آندریاس آنتونوپولوس_ +- [ورود با اتریوم و هویت غیرمتمرکز با Ceramic، IDX، React و 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _آموزش YouTube در مورد ایجاد یک سیستم مدیریت هویت برای ایجاد، خواندن و به روز رسانی نمایه کاربر با استفاده از کیف پول اتریوم توسط نادر دبیت_ +- [BrightID - هویت غیرمتمرکز در اتریوم](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _قسمت پادکست بدون بانک در مورد BrightID، یک راه حل هویت غیرمتمرکز برای اتریوم_ +- [اینترنت خارج از زنجیره: هویت غیرمتمرکز & اعتبار قابل تأیید](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — ارائه EthDenver 2022 توسط Evin McMullen + +### جوامع {#communities} + +- [اتحاد ERC-725 در GitHub](https://github.com/erc725alliance) — _حامی استاندارد ERC725 برای مدیریت هویت در بلاک چین اتریوم_ +- [سرور SpruceID Discord](https://discord.com/invite/Sf9tSFzrnt) — *انجمن برای علاقه مندان و توسعه دهندگانی که روی ورود به سیستم با اتریوم*کار می کنند +- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _جامعه ای از توسعه دهندگان که در ساخت چارچوبی برای داده های قابل تأیید برای برنامه ها مشارکت دارند_ diff --git a/public/content/translations/fa/defi/index.md b/public/content/translations/fa/defi/index.md new file mode 100644 index 00000000000..b6976ed8b09 --- /dev/null +++ b/public/content/translations/fa/defi/index.md @@ -0,0 +1,352 @@ +--- +title: امور مالی غیرمتمرکز (DeFi) +description: نگاهی کلی بر امور مالی غیرمتمرکز بر پایه‌ی اتریوم +lang: fa +template: use-cases +emoji: ":money_with_wings:" +image: /use-cases/defi.png +alt: لوگوی اتر ساخته‌شده از آجرهای لگو. +sidebarDepth: 2 +summaryPoint1: یک جایگزین جهانی و آِزاد برای سیستم مالی فعلی. +summaryPoint2: محصولاتی برای استقراض، پس‌انداز، سرمایه‌گذاری، معامله و سایر موارد. +summaryPoint3: بر پایه‌ی فناوری متن‌باز که هر کسی می‌تواند برای آن برنامه‌نویسی کند. +--- + +امور مالی غیرمتمرکز (DeFi) یک سیستم مالی جهانی و آزاد است که برای عصر اینترنت ساخته شده است؛ جایگزینی برای سیستمی غیرشفاف که شدیداً تحت کنترل است و ده‌ها سال است به این شیوه اداره می‌شود. این سیستم کنترل و شفافیت در رابطه با پولتان را فراهم می‌کند. این سیستم همچنین بازارهای جهانی را در دسترس شما قرار می‌دهد و جایگزینی برای پول محلی یا گزینه‌های بانکی محلی شما ارائه می‌دهد. محصولات DeFi خدمات مالی را به روی هر شخصی که به اینترنت دسترسی دارد باز می‌کنند و به‌طور کلی متعلق به کاربران هستند و توسط آن‌ها اداره می‌شوند. تابه‌حال ده‌ها میلیارد دلار ارز رمزنگاری‌شده به سمت برنامه‌های کاربری DeFi روان‌شده‌اند و این رقم روز به روز افزایش می‌یابد. + +## DeFi چیست؟ {#what-is-defi} + +DeFi یک واژه‌ی کلی برای محصولات و خدمات مالی در دسترس هر کسی است که می‌تواند از اتریوم استفاده کند – یعنی هرکسی که به اینترنت دسترسی دارد. با DeFi بازارها همواره باز هستند و هیچ قدرت متمرکزی نمی‌تواند پرداخت‌ها را مسدود کند یا دسترسی شما را محدود کند. خدماتی که پیش‌تر کند و در ریسک خطای انسانی بودند حالا خودکار و ایمن‌تر هستند و توسط برنامه‌هایی انجام می‌شوند که هر کسی می‌تواند آن‌ها را بررسی کرده و ایمنی‌شان را بسنجد. + +اقتصاد ارزهای رمزنگاری‌شده بسیار روبه‌رشد است و در آن می‌توانید قرض بدهید، قرض بگیرید، خرید و فروش استقراضی انجام دهید، سود کسب کنید و کارهای دیگر انجام دهید. آرژانتینی‌های علاقه‌مند به ارزهای رمزنگاری‌شده از DeFi برای فرار از تورم فلج‌کننده استفاده کرده‌اند. شرکت‌ها پرداخت دستمزد‌ کارکنانشان به‌صورت آنلاین و در لحظه را شروع کرده‌اند. برخی افراد حتی میلیون‌ها دلار را بدون احراز هویت قرض گرفته‌اند و پس داده‌اند. + + + +## DeFi در مقابل امور مالی سنتی {#defi-vs-tradfi} + +یکی از بهترین راه‌های فهمیدن پتانسیل‌های DeFi، فهمیدن مشکلات امروزه است. + +- برخی مردم دسترسی به ساخت حساب بانکی یا استفاده از خدمات مالی ندارند. +- دسترسی پایین به خدمات مالی می‌تواند باعث شود مردم نتوانند مشغول به کار شوند. +- خدمات مالی می‌توانند مانع از پرداخت حقوق شما شوند. +- یکی از هزینه‌های پنهان خدمات مالی، اطلاعات شخصی شماست. +- دولت‌ها و نهادهای متمرکز می‌توانند هر زمان خواستند بازارها را ببندند. +- ساعات خرید و فروش اغلب محدود به ساعات اداری ویژه‌ یک منطقه‌ زمانی است. +- به دلیل رویه‌های انسانی، تراکنش‌های مالی ممکن است روزها طول بکشند. +- خدمات مالی کارمزد دارند چرا که نهادهای میانجی می‌خواهند سهم خود را دریافت کنند. + +### یک مقایسه: {#defi-comparison} + +| DeFi | امور مالی سنتی | +| ---------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| شما مالک پول خود هستید. | پول‌ شما توسط شرکت‌ها نگهداری می‌شود. | +| شما کنترل می‌کنید که پولتان کجا برود و چگونه خرج شود. | شما باید به شرکت‌ها اعتماد کنید که پولتان را به شکل اشتباه مدیریت نکنند، مثلاً آن را به افراد پرریسک قرض ندهند. | +| جابجایی پول در چند دقیقه انجام می‌شود. | پرداخت‌ها ممکن است به دلیل فرایندهای دستی تا چند روز طول بکشد. | +| فعالیت تراکنش با نام مستعار انجام می‌شود. | فعالیت مالی کاملاً وابسته به هویت شخص است. | +| DeFi برای همه آزاد است. | شما باید برای استفاده از خدمات مالی درخواست بدهید. | +| بازارها همواره باز هستند. | بازارها بسته می‌شوند چرا که کارمندان نیاز به استراحت دارند. | +| بر پایه‌ی شفافیت ساخته‌شده‌است – هر کس می‌تواند اطلاعات محصول را نگاه کند و نحوه‌ی کار سیستم را بررسی کند. | نهادهای مالی همانند کتاب‌های بسته هستند: نمی‌توانید از آن‌ها درخواست کنید که تاریخچه‌ی وام‌ها، تاریخچه‌ی دارایی‌های مدیریت‌شده‌ی آن‌ها و غیره را ببینید. | + + + مشاهده‌ی برنامه‌های DeFi + + +## همه چیز با بیت‌کوین شروع شد... {#bitcoin} + +از خیلی جهات بیت‌کوین اولین برنامه‌ی DeFi محسوب می‌شود. بیت‌کوین به شما اجازه می‌دهد که ارزش را واقعاً در اختیار داشته باشید و کنترل کنید و برای هر کسی در هر کجای جهان بفرستید. بیت‌کوین این کار را با فراهم کردن راهی برای توافق بر یک دفترکل حاوی حساب‌های کاربری بدون نیاز به اعتماد به یک میانجی سوم برای تعداد زیادی آدم که به یکدیگر اعتماد ندارند انجام می‌دهد. بیت‌کوین برای همه آزاد است و هیچ‌کس نمی‌تواند برای آن قانون وضع کند. قوانین بیت‌کوین، مثل کمیابی و باز بودنش، در فناوری آن نهادینه شده‌اند. مانند امور مالی سنتی نیست که دولت‌ها بتوانند پول چاپ کنند که ارزش پس‌اندازهای شما کم شود و شرکت‌ها بتوانند بازارها را ببندند. + +اتریوم بر همین اساس ساخته شده‌است. همانند بیت‌کوین، قوانین برای شما و هر کسی که به آن دسترسی دارد تغییر نمی‌کند. اما با استفاده از [قراردادهای هوشمند](/glossary#smart-contract) این پول دیجیتال قابل‌برنامه‌نویسی شده‌است تا بتوانید کارهایی فراتر از نگهداری و انتقال ارزش انجام دهید. + + + +## پول قابل‌برنامه‌ریزی {#programmable-money} + +عجیب به نظر می‌رسد... «چرا باید بخواهم پولم را برنامه‌نویسی کنم؟» با این حال، این کار چیزی فراتر از ویژگی‌های پیش‌فرض توکن‌ها در اتریوم است. هر شخصی می‌تواند منطق را بر روی پرداخت‌ها برنامه‌نویسی کند. پس می‌توانید کنترل و ایمنی بیت‌کوین را در کنار خدمات ارائه‌شده توسط نهادهای مالی داشته باشید. با این ویژگی شما می‌توانید کارهایی با ارزهای رمزنگاری‌شده بکنید که با بیت‌کوین نمی‌توانستید انجام دهید؛ مثل قرض دادن و قرض گرفتن، برنامه‌ریزی کردن پرداخت‌ها، سرمایه‌گذاری در صندوق‌های سرمایه‌گذاری مبتنی بر شاخص و غیره. + + +
اگر تازه پا به جهان اتریوم گذاشته‌اید، نگاهی به پیشنهاد‌های ما برای برنامه‌های DeFi جهت استفاده بیاندازید.
+ + مشاهده‌ی برنامه‌های DeFi + +
+ +## با 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} + +نوسانات ارزهای رمزنگاری‌شده برای بسیاری از محصولات مالی و هزینه‌کردهای عمومی یک مشکل محسوب می‌شود. جامعه‌ی DeFi این مشکل را با پایدرز حل کرده است. ارزش آن‌ها به یک دارایی دیگر متصل است؛ عموماً به یک ارز مشهور مثل دلار. + +ارزهایی همچون Dai یا USDC ارزشی حدود یک دلار دارند. این موضوع باعث می‌شود برای کسب درآمد یا خرید عالی باشند. بسیاری از مردم در آمریکای لاتین از پایدارز به عنوان روشی برای حفاظت از پس‌انداز خود در دوران عدم‌اطمینان بسیار زیاد به ارزهایی که دولت خودشان ساخته است، استفاده کرده‌اند. + + + اطلاعات بیشتر درباره‌ی پایدارز + + + + +### قرض گرفتن {#lending} + +قرض گرفتن پول از فراهم‌کنندگان غیرمتمرکز به دو شکل است. + +- همتا به همتا، به این معنی که قرض‌گیرنده به‌طور مستقیم از یک قرض‌دهنده‌ی مشخص قرض می‌گیرد. +- بر پایه‌ی استخر که در آن قرض‌دهندگان وجوه (نقدینگی) را به یک استخر ارائه می‌دهند و قرض‌گیرندگان می‌توانند از آن قرض بگیرند. + + + مشاهده‌ی برنامه‌های غیرمتمرکز برای قرض گرفتن + + +مزایای بسیاری برای استفاده از یک قرض‌دهنده‌ی غیرمتمرکز وجود دارد... + +#### قرض گرفتن ضمن حفظ حریم خصوصی {#borrowing-privacy} + +امروزه قرض گرفتن و قرض دادن پول به‌کلی به افراد دخیل در آن مربوط است. بانک‌ها پیش از وام دادن به شما مطمئن می‌شوند که آیا وام را بازپرداخت می‌کنید یا خیر. + +قرض دادن غیرمتمرکز به احراز هویت هیچ‌یک از طرفین نیاز ندارد. در عوض، قرض‌گیرنده باید وثیقه‌ای بگذارد که قرض‌دهنده در صورت عدم بازپرداخت به‌صورت خودکار دریافتش خواهد کرد. برخی قرض‌دهندگان حتی NFTها را به عنوان وثیقه می‌پذیرند. NFT سندی برای یک دارایی یکتا است؛ مثلاً یک نقاشی. [اطلاعات بیشتر درباره‌ی NFT](/nft/) + +این ویژگی به شما امکان می‌دهد که بدون چک اعتباری یا دادن اطلاعات خصوصی، پول قرض بگیرید. + +#### دسترسی به سرمایه‌های جهانی {#access-global-funds} + +با استفاده از یک قرض‌دهنده‌ی غیرمتمرکز به سرمایه‌هایی از سراسر جهان دسترسی دارید، نه صرفاً سرمایه‌هایی که در اختیار بانک یا نهاد منتخبتان هستند. این موضوع باعث می‌شود که وام‌ها در دسترس‌تر بوده و نرخ بهره بهتر باشد. + +#### کارآیی مالیاتی {#tax-efficiencies} + +قرض گرفتن می‌تواند به شما اجازه دهد که از سرمایه‌هایی که نیاز دارید بدون فروختن اتر خود (که مالیات دارد) استفاده کنید. در عوض می‌توانید از ETH خود به‌عنوان وثیقه برای دریافت وام استیبل کوین استفاده کنید. با این کار جریان نقدینگی لازم را خواهید داشت و می‌توانید اتر خود را نگه‌داری کنید. پایدارزها توکن‌هایی هستند که هنگام نیاز به وجه نقد بسیار بهتر هستند، چون برخلاف اتر نوسانات ارزشی ندارند. [اطلاعات بیشتر درباره‌ی پایدارزها](#stablecoins) + +#### وام لحظه‌ای {#flash-loans} + +وام‌های لحظه‌ای یک شکل تجربی‌تر از قرض دادن غیرمتمرکز هستند که به شما اجازه می‌دهند بدون وثیقه گذاشتن یا در اختیار قرار دادن اطلاعات شخصی قرض بگیرید. + +این نوع از وام در حال حاضر به‌طور گسترده برای افراد غیرفنی در دسترس نیست، اما اشاره‌ای است برای این که در آینده چه اتفاقاتی می‌تواند برای همه ممکن باشد. + +این وام‌ها به این صورت کار می‌کنند که قرض‌ دادن و پس دادن قرض در یک تراکنش انجام می‌شود. اگر امکان بازپرداخت وام در لحظه نباشد، تراکنش برمی‌گردد، به گونه‌ای که گویی هرگز اتفاق نیافتاده است. + +پول‌هایی که اغلب استفاده می‌شوند در استخر‌های نقدینگی (استخرهای بزرگی از پول که برای قرض دادن استفاده می‌شوند) نگه‌داری می‌شوند. اگر این پول‌ها در لحظه‌ای مشخص در حال استفاده نباشند، یک فرصت برای شخصی دیگر ایجاد می‌شود که این پول‌ها را قرض بگیرد، با آن کسب‌وکاری برای خود بسازد و سپس همه‌ی پول را دقیقاً در زمانی که قرض گرفته بازپس‌دهد. + +این به این معناست که منطق بسیار زیادی را باید درون یک تراکنش مشخص گنجاند. یک مثال ساده می‌تواند این باشد که یک فرد، میزان زیادی از یک دارایی را با وام لحظه‌ای قرض بگیرد تا در صرافی دیگری با قیمتی بالاتر بفروشد. + +بنابراین در یک تراکنش، اتفاقات زیر رخ می‌دهند: + +- مقدار X $asset را به قیمت $1.00 از صرافی A قرض می‌گیرید +- X $asset را در صرافی B به قیمت $1.00 تومان به فروش می‌رسانید +- قرض خود را به صرافی A برمی‌گردانید +- سود خود منهای کارمزد تراکنش را نگه می‌دارید + +اگر عرضه‌ی صرافی B ناگهان افت کند و این کاربر نتواند به میزان کافی برای پوشش دادن قرضش از این صرافی خرید کند، تراکنش انجام نمی‌شود. + +برای این که بتوانید مثال پیش‌گفته را در نظام مالی سنتی دنیا انجام دهید، به مقدار بسیار زیادی پول نیاز دارید. این راهبردهای پول‌سازی تنها در دسترس افرادی هستند که سرمایه‌ی بسیار زیادی دارند. وام‌های لحظه‌ای نمونه‌ای از آینده‌ای هستند که داشتن پول از ملزومات پول درآوردن نخواهد بود. + +[اطلاعات بیشتر درباره‌ی وام‌های لحظه‌ای](https://aave.com/flash-loans/) + + + +### شروع پس‌انداز با ارزهای رمزنگاری‌شده {#saving} + +#### قرض دادن {#lending} + +شما می‌توانید از قرض دادن ارزهای رمزنگاری‌شده‌ی خود به دیگران بهره کسب کنید و رشد سرمایه‌تان را به چشم ببینید. در حال حاضر نرخ بهره‌ بسیار بیشتر از آن چیزی است که احتمالاً در بانک‌های محلی‌تان دریافت می‌کنید (البته اگر به حد کافی خوش‌شانس باشید که چنین بانکی نزدیکتان باشد). این مثال را ببینید: + +- شما 100 Dai، یک [پایدارز](/stablecoins/)، را به یک محصول مثل Aave قرض می‌دهید. +- شما 100 Aave Dai‏ (aDai) می‌گیرید. این توکن نمایش‌دهنده‌ی Dai قرض‌داده‌شده‌ی شما است. +- aDai شما بر اساس نرخ بهره زیاد می‌شود و می‌توانید شاهد افزایش میزان موجودی خود در کیف پولتان باشید. بسته به نرخ درصدی سالانه، موجودی کیف‌پول شما پس از چند روز یا حتی چند ساعت چیزی شبیه 100.1234 خواهد بود! +- شما می‌توانید به‌اندازه‌ی aDaiهای موجودی خود در هر زمانی از حساب خود Dai برداشت کنید. + + + مشاهده‌ی برنامه‌های غیرمتمرکز قرض‌دهی + + +#### بخت‌آزمایی‌های بدون باخت {#no-loss-lotteries} + +بخت‌آزمایی‌های بدون باخت مثل PoolTogether روشی جدید، خلاقانه و لذت‌بخش برای سود کردن با پول هستند. + +- شما 100 بلیط با 100 توکن Dai می‌خرید. +- 100 عدد plDai که نمایش‌دهنده‌ی 100 بلیطتان است دریافت می‌کنید. +- اگر یکی از بلیط‌های شما به عنوان بلیط برنده انتخاب شود، موجودی plDai شما به اندازه‌ی جایزه‌ی استخر افزایش می‌یابد. +- اگر برنده نشوید، 100 plDai شما به قرعه‌کشی هفته‌ی بعد منتقل می‌شود. +- می‌توانید به‌اندازه‌ی plDaiهایی که موجود دارید در هر زمانی از حساب خود Dai برداشت کنید. + +جایزه‌ی استخر از بهره‌ای که با قرض‌دهی سپرده‌ی بلیط‌ها همچو مثال قرض‌دهی بالا به دست می‌آید، تولید می‌شود. + + + PoolTogether را امتحان کنید + + + + +### مبادله‌ی توکن‌ها {#swaps} + +هزاران توکن روی اتریوم وجود دارند. صرافی‌های غیرمتمرکز (DEXها) به شما اجازه می‌دهند هر زمان که خواستید توکن‌های مختلف را مبادله کنید. شما هیچ وقت کنترل دارایی خود را از دست نمی‌دهید. این کار مثل مراجعه به صرافی در سفر به کشوری دیگر است. تفاوت در این است که صرافی‌های DeFi هرگز بسته نمی‌شوند. بازارها به‌صورت شبانه‌روزی در تمام 365 روز سال باز هستند و فناوری تضمین می‌کند همواره شخصی وجود داشته باشد که معامله را بپذیرد. + +برای مثال، اگر بخواهید از بخت‌آزمایی بدون باخت PoolTogether استفاده کنید (بالاتر توضیح داده‌ایم)، به توکنی مثل Dai یا USDC نیاز خواهید داشت. این صرافی‌های غیرمتمرکز به شما اجازه می‌دهند که اتر (ETH) خود را به این توکن‌ها تبدیل کنید و وقتی کارتان تمام شد به حالت اول تبدیل کنید. + + + مشاهده‌ی صرافی‌های توکن‌ها + + + + +### معامله‌ی پیشرفته {#trading} + +برای معامله‌گرانی که می‌خواهند کمی کنترل بیشتری داشته باشند، گزینه‌های پیشرفته‌تر در دسترس است. سفارش محدود، معاملات دائمی (perpetuals)، معاملات حاشیه‌ای (margin trading) و موارد دیگر امکان‌پذیر است. با مبادله‌ی غیرمتمرکز به نقدینگی جهانی متصل خواهید شد، بازار هرگز بسته نخواهد شد و همواره کنترل دارایی‌تان را در دست خواهید داشت. + +وقتی از صرافی‌های متمرکز استفاده می‌کنید مجبور هستید که دارایی‌تان را پیش از معامله به آن‌ها منتقل کنید و برای نگه‌داری دارایی‌تان به آن‌ها اعتماد کنید. دارایی‌های شما وقتی به صرافی‌های متمرکز منتقل شده‌اند در خطر هستند، چون صرافی‌های متمرکز اهداف جذابی برای هکرها هستند. + + + مشاهده‌ی برنامه‌های غیرمتمرکز معامله + + + + +### سبد خود را بزرگ کنید {#investing} + +محصولات مدیریت سرمایه‌ای روی اتریوم وجود دارد که سعی می‌کنند سبد سرمایه‌ای شما را بر اساس راهبرد انتخابی‌تان بزرگ کنند. این کار به‌صورت خودکار انجام می‌شود، برای همه آزاد است و نیازی به مدیریت انسانی ندارد که بخشی از سود را از آن خود کند. + +یک مثال خوب برای این موضوع [صندوق مبتنی بر شاخص DeFi Pulse‏ (DPI)](https://defipulse.com/blog/defi-pulse-index/) است. این صندوق به‌طور خودکار در موجودی خود تغییر ایجاد می‌کند تا مطمئن شود که سبد دارایی‌های شما همواره شامل [بهترین توکن‌های DeFi از نظر ارزش بازار](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} + +با در نظر گرفتن همه‌ی این مسائل، شما به راهی نیاز دارید که بتوانید بر همه‌ی سرمایه‌گذاری‌هایتان، وام‌هایتان و معاملاتتان نظارت داشته باشید. محصولاتی وجود دارند که به شما امکان می‌دهند بتوانید از یکجا بر همه‌ی فعالیت‌های DeFiتان نظارت کنید. این زیبایی مهندسی باز DeFi است. تیم‌ها می‌توانند رابط‌های کاربری‌ای بسازند که نه‌تنها بتوانید موجودی حساب‌هایتان را از طریق آن‌ها ببینید، بلکه بتوانید از ویژگی‌های آن‌ها نیز بهره ببرید. شاید وقتی در دنیای DeFi بیشتر کاوش کردید، این ویژگی را کارگشا بیابید. + + + مشاهده‌ی برنامه‌های غیرمتمرکز سبدگردانی + + + + +## DeFi چگونه کار می‌کند؟ {#how-defi-works} + +DeFi از ارزهای رمزنگاری شده و قرارداد هوشمند استفاده می‌کند تا خدماتی را بدون حضور میانجی ارائه دهد. در دنیای مالی امروز، نهادهای مالی به عنوان تضمین‌کننده های تراکنش‌ ها ایفای نقش می‌کنند. این موضوع به این نهادها قدرت بسیار زیادی می‌دهد، چرا که پول شما از دل آن‌ها می‌گذرد. به‌علاوه، میلیاردها انسان در سراسر جهان حتی نمی‌توانند حساب بانکی داشته باشند. + +در DeFi یک قرارداد هوشمند جایگزین نهادهای مالی در تراکنش‌‌ها می‌شود. قرارداد هوشمند نوعی حساب اتریوم است که می‌‌تواند سرمایه را در خود نگه‌داری کند و آن را در شرایط خاصی به شخصی بفرستد یا مسترد کند. هیچ‌کس نمی‌تواند وقتی قرارداد هوشمند در حال کار است آن را تغییر دهد – این قرارداد همواره به شکلی که برنامه‌نویسی شده کار خواهد کرد. + +یک قرارداد که برای واریز مقرری یا پول توجیبی طراحی شده‌ است، می‌تواند به گونه‌ای برنامه‌نویسی شود که هر جمعه از حساب A به حساب B پول واریز کند. و این کار را تا زمانی انجام خواهد داد که حساب A پول کافی داشته باشد. هیچ‌کس نمی‌‌تواند قرارداد را تغییر دهد و حساب C را به‌عنوان گیرنده اضافه کند تا پول بدزدد. + +به‌علاوه، قراردادها برای همه عمومی هستند تا هر کسی بتوانند آن‌ها را بررسی و امنیت‌سنجی کند. این بدین معنا است که قراردادهای بد اغلب خیلی زود مورد بررسی موشکافانه‌ی جامعه قرار می‌گیرند. + +این به این معنا است که در حال حاضر باید به افرادی که در جامعه‌ی اتریوم فنی‌تر هستند و می‌توانند کدها را بخوانند، بیشتر اعتماد کنیم. جامعه‌ی مبتنی بر متن‌باز کمک می‌کند که توسعه‌دهندگان تحت‌نظر باقی بمانند، اما وقتی قراردادهای هوشمند راحت‌تر قابل‌خواندن شوند و راه‌های دیگری برای سنجش اعتبار لازم کدها توسعه داده‌شوند، این نیاز از بین خواهد رفت. + +## اتریوم و DeFi {#ethereum-and-defi} + +به چند دلیل، اتریوم زیربنایی عالی برای DeFi است: + +- هیچ‌کس مالک اتریوم یا قراردادهای هوشمند روی آن نیست – این موضوع، فرصت استفاده از DeFi را در اختیار همه قرار می‌دهد. این موضوع همچنین به این معنا است که کسی نمی‌تواند قوانین را برای شخص شما عوض کند. +- محصولات DeFi همگی یک زبان مشترک در پشت‌صحنه دارند: اتریوم. این بدان معناست که بسیاری از محصولات در کنار هم و با هم کار می‌کنند. شما می توانید توکن‌ها را در یک پلتفرم قرض دهید و توکن‌های سودتان را در یک بازار متفاوت در یک برنامه‌ی کاملاً متفاوت مبادله کنید. چیزی شبیه نقد کردن امتیازات باشگاه مشتریان در بانک محلی‌تان. +- توکن‌ها و ارزهای رمزنگاری‌شده درون اتریوم که یک دفتر کل اشتراکی است قرار گرفته‌اند – نگه‌داری از تراکنش‌ها و تملک‌ها کار اتریوم است. +- اتریوم آزادی کامل مالی را در اختیار شما قرار می‌دهد – بیشتر محصولات هرگز کنترل سرمایه‌ی شما را به دست نمی‌گیرند و کنترل آن به‌طور کامل در اختیار شما خواهد بود. + +می‌توانید DeFi را در قالب چند لایه در نظر بگیرید: + +1. زنجیره‌ی بلوکی – اتریوم شامل تاریخچه‌ی تراکنش‌ها و وضعیت حساب‌ها است. +2. دارایی‌ها – [اتر (ETH)](/eth/) و دیگر توکن‌ها (ارزها). +3. پروتکل‌ها – [قراردادهای هوشمندی](/glossary/#smart-contract) که عملکرد را امکان‌پذیر می‌کنند؛ مثلاً خدمتی که امکان قرض دادن دارایی‌ها را به صورت غیرمتمرکز فراهم می‌کند. +4. [برنامه‌های کاربردی](/dapps/) – محصولاتی که برای مدیریت و دسترسی به پروتکل‌ها استفاده می‌کنیم. + +## DeFi را بسازید {#build-defi} + +DeFi یک جنبش متن‌باز است. پروتکل‌ها و برنامه‌های کاربردی DeFi همگی به روی شما باز هستند تا آن‌ها را بررسی کنید، فورک کنید، و روی آن‌ها خلاقیت به خرج دهید. به دلیل این ساختار لایه‌ای (که همگی از زنجیره‌ی بلوکی و دارایی‌های پایه یکسان استفاده می‌کنند)، پروتکل‌ها می‌توانند با یکدیگر ترکیب شده و تطبیق داده‌شوند تا فرصت‌‌های ترکیبی منحصربه‌فردی را ایجاد کنند. + + + اطلاعات بیشتر درباره‌ی ساختن برنامه‌‌های غیرمتمرکز + + +## بیشتر بخوانید {#futher-reading} + +### داده‌های DeFi {#defi-data} + +- [DeFi Prime](https://defiprime.com/) +- [DeFi Llama](https://defillama.com/) +- [نرخ DeFi](https://defirate.com/) + +### مقاله‌های DeFi {#defi-articles} + +- [راهنمای امور مالی غیرمتمرکز (DeFi) برای مبتدیان](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu، تاریخ 6 ژانویه 2020_ + +### ویدیوها {#videos} + +- [Finematics - decentralized finance education](https://finematics.com/) – _ویدیوهایی درباره‌ی DeFi_ +- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _مقدمات DeFi: هر آنچه لازم است برای شروع در این فضای کمابیش گیج‌کننده بدانید._ +- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA)‏ _DeFi چیست؟_ + +### جوامع {#communities} + +- [سرور دیسکورد DeFi Llama](https://discord.gg/buPFYXzDDd) +- [سرور دیسکورد DeFi Pulse](https://discord.gg/Gx4TCTk) diff --git a/public/content/translations/fa/desci/index.md b/public/content/translations/fa/desci/index.md new file mode 100644 index 00000000000..77b0850d670 --- /dev/null +++ b/public/content/translations/fa/desci/index.md @@ -0,0 +1,139 @@ +--- +title: دانش نامتمرکز (دیسای) +description: مروری بر علم غیرمتمرکز در اتریوم +lang: fa +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: یک جایگزین جهانی و باز برای سیستم علمی فعلی. +summaryPoint2: فناوری که دانشمندان را قادر می‌سازد بودجه جمع‌آوری کنند، آزمایش‌ها را انجام دهند، داده‌ها را به اشتراک بگذارند، بینش‌ها را توزیع کنند و موارد دیگر. +summaryPoint3: بر اساس جنبش علم باز است. +--- + +## علم غیرمتمرکز (DeSci) چیست؟ {#what-is-desci} + +علم غیرمتمرکز (DeSci) جنبشی است که هدف آن ایجاد زیرساخت عمومی برای تأمین مالی، ایجاد، بررسی، اعتباردهی، ذخیره و انتشار دانش علمی به طور عادلانه و عادلانه با استفاده از پشته Web3 است. + +هدف DeSci ایجاد اکوسیستمی است که در آن دانشمندان تشویق می شوند تا تحقیقات خود را آشکارا به اشتراک بگذارند و اعتبار کار خود را دریافت کنند و در عین حال به هر کسی اجازه دهد به راحتی به تحقیق دسترسی داشته باشد و در آن مشارکت کند. DeSci از این ایده استفاده می کند که دانش علمی باید در دسترس همه باشد و روند تحقیقات علمی باید شفاف باشد. DeSci در حال ایجاد یک مدل تحقیقات علمی غیرمتمرکز و توزیع‌شده‌تر است و آن را در برابر سانسور و کنترل مقامات مرکزی مقاوم‌تر می‌کند. DeSci امیدوار است با غیرمتمرکز کردن دسترسی به بودجه، ابزارهای علمی و کانال های ارتباطی، محیطی ایجاد کند که در آن ایده های جدید و غیر متعارف شکوفا شوند. + +علم غیرمتمرکز به منابع مالی متنوع‌تر (از [DAO](/dao/)، [کمک مالی درجه دوم](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) تا تأمین مالی جمعی و بیشتر)، داده‌ها و روش‌های دسترسی بیشتر، و با ارائه انگیزه‌هایی برای تکرارپذیری، اجازه می‌دهد. + +### خوان بنت - جنبش DeSci + + + +## چگونه DeSci علم را بهبود می بخشد {#desci-improves-science} + +فهرست ناقصی از مشکلات کلیدی در علم و اینکه چگونه علم غیرمتمرکز می تواند به رفع این مسائل کمک کند + +| **علم غیرمتمرکز** | **علم سنتی** | +| ---------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | +| توزیع وجوه توسط مردم با استفاده از مکانیسم هایی مانند کمک های مالی درجه دوم یا DAO ها تعیین می شود. | گروه های کوچک، بسته و متمرکز، توزیع وجوه را کنترل می کنند. | +| شما با همتایان خود از سراسر جهان در تیم های پویا همکاری می کنید. | سازمان های تامین مالی و موسسات خانگی همکاری های شما را محدود می کنند. | +| تصمیمات مالی به صورت آنلاین و شفاف گرفته می شود. مکانیسم های تامین مالی جدید بررسی شده است. | تصمیمات تامین مالی با مدت زمان طولانی و شفافیت محدود اتخاذ می شود. مکانیسم های مالی کمی وجود دارد. | +| اشتراک‌گذاری خدمات آزمایشگاهی با استفاده از Web3 اولیه آسان‌تر و شفاف‌تر شده است. | به اشتراک گذاری منابع آزمایشگاهی اغلب آهسته و مبهم است. | +| می توان مدل های جدیدی برای انتشار ایجاد کرد که از Web3 اولیه برای اعتماد، شفافیت و دسترسی جهانی استفاده می کنند. | شما از طریق مسیرهای مشخصی که اغلب به عنوان ناکارآمد، جانبدارانه و استثمارگر شناخته می شوند، منتشر می کنید. | +| شما می توانید نشانه ها و شهرت را برای کار بررسی همتا کسب کنید. | کار بازبینی شما بدون دستمزد است و به نفع ناشران سودآور است. | +| شما مالک مالکیت معنوی (IP) هستید که تولید می کنید و آن را طبق شرایط شفاف توزیع می کنید. | مؤسسه خانگی شما مالک IP تولید شده شما است. دسترسی به IP شفاف نیست. | +| به اشتراک گذاشتن تمام تحقیقات، از جمله داده‌های حاصل از تلاش‌های ناموفق، با داشتن تمام مراحل در زنجیره. | سوگیری انتشار به این معنی است که محققان احتمال بیشتری برای به اشتراک گذاشتن آزمایش هایی دارند که نتایج موفقیت آمیزی داشته اند. | + +## اتریوم و DeSci {#ethereum-and-desci} + +یک سیستم علمی غیرمتمرکز به امنیت قوی، حداقل هزینه های پولی و معاملاتی و یک اکوسیستم غنی برای توسعه برنامه نیاز دارد. اتریوم همه چیز مورد نیاز برای ایجاد یک پشته علمی غیرمتمرکز را فراهم می کند. + +## موارد استفاده DeSci {#use-cases} + +DeSci در حال ساخت مجموعه ابزار علمی برای ورود دانشگاه Web2 به دنیای دیجیتال است. در زیر نمونه‌ای از موارد استفاده است که Web3 می‌تواند به جامعه علمی ارائه دهد. + +### انتشار {#publishing} + +انتشار علم بسیار مشکل ساز است زیرا توسط مؤسسات انتشاراتی مدیریت می شود که برای تولید مقالات به نیروی کار رایگان دانشمندان، داوران و ویراستاران متکی هستند اما پس از آن هزینه های گزافی برای انتشار دریافت می کنند. عموم مردم که معمولاً به طور غیرمستقیم برای اثر و هزینه های انتشار از طریق مالیات پرداخت کرده اند، اغلب نمی توانند بدون پرداخت مجدد به ناشر به همان اثر دسترسی داشته باشند. مجموع هزینه‌های انتشار مقالات علمی منفرد اغلب پنج رقمی است ($USD) که کل مفهوم دانش علمی به‌عنوان [کالای عمومی را تضعیف می‌کند](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} + +تکرارپذیری و تکرارپذیری پایه های اکتشاف علمی با کیفیت هستند. + +- نتایج قابل تکرار را می توان چندین بار متوالی توسط یک تیم با استفاده از روش یکسان به دست آورد. +- نتایج قابل تکرار را می توان توسط گروهی متفاوت با استفاده از تنظیمات آزمایشی یکسان به دست آورد. + +ابزارهای جدید وب 3 می توانند اطمینان حاصل کنند که تکرارپذیری و تکرارپذیری اساس کشف هستند. ما می‌توانیم علم با کیفیت را در تار و پود فناوری دانشگاه ببافیم. 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 {#ip-ownership} + +مالکیت فکری (IP) یک مشکل بزرگ در علم سنتی است: از گیر افتادن در دانشگاه ها یا استفاده نشدن در بیوتکنولوژی گرفته تا ارزش گذاری بسیار سخت. با این حال، مالکیت دارایی‌های دیجیتال (مانند داده‌های علمی یا مقالات) چیزی است که Web3 با استفاده از [توکن غیرقابل تعویض (NFT)](/nft/)خوبی انجام می‌دهد. + +همانطور که NFTها می توانند درآمد معاملات آتی را به سازنده اصلی بازگردانند، شما می توانید زنجیره های انتساب ارزش شفاف را برای پاداش دادن به محققان، نهادهای حاکم (مانند DAO) یا حتی افرادی که داده های آنها جمع آوری شده است ایجاد کنید. + +[IP-NFTs](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) همچنین می تواند به عنوان کلیدی برای مخزن داده های غیرمتمرکز آزمایش های تحقیقاتی در حال انجام عمل کند و به NFT و [DeFi](/defi/) مالی (از تقسیم بندی تا استخرهای وام دهی و ارزیابی ارزش) متصل شود. همچنین به نهادهای داخلی زنجیره ای مانند DAO مانند [VitaDAO](https://www.vitadao.com/) اجازه می دهد تا تحقیقات را مستقیماً روی زنجیره انجام دهند. ظهور توکن‌های غیرقابل انتقال ["soulbound"](https://vitalik.ca/general/2022/01/26/soulbound.html) نیز ممکن است نقش مهمی در DeSci ایفا کند و به افراد اجازه می‌دهد تا تجربه و اعتبار خود را در ارتباط با آدرس اتریوم خود ثابت کنند. + +### ذخیره سازی داده ها، دسترسی و معماری {#data-storage} + +داده های علمی را می توان با استفاده از الگوهای Web3 بسیار در دسترس تر کرد و ذخیره سازی توزیع شده تحقیقات را قادر می سازد تا از رویدادهای فاجعه بار جان سالم به در ببرد. + +نقطه شروع باید سیستمی باشد که توسط هر هویت غیرمتمرکزی که دارای اعتبارنامه های قابل تایید مناسب است، قابل دسترسی باشد. این اجازه می‌دهد تا داده‌های حساس به‌طور ایمن توسط طرف‌های مورد اعتماد تکثیر شوند و مقاومت در برابر افزونگی و سانسور، بازتولید نتایج، و حتی امکان همکاری چندین طرف و افزودن داده‌های جدید به مجموعه داده را ممکن می‌سازد. روش‌های محاسباتی محرمانه مانند [محاسبه به داده](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 از سناریوهای بالا پشتیبانی می‌کنند و پایه‌ای را برای علوم باز واقعاً فراهم می‌کنند، جایی که محققان می‌توانند کالاهای عمومی را بدون مجوز دسترسی یا هزینه ایجاد کنند. راه حل های داده عمومی Web3 مانند IPFS، Arweave و Filecoin برای تمرکززدایی بهینه شده اند. به عنوان مثال، dClimate دسترسی جهانی به داده های آب و هوا و آب و هوا، از جمله ایستگاه های هواشناسی و مدل های پیش بینی آب و هوا را فراهم می کند. + +## مشارکت کنید {#get-involved} + +پروژه ها را کاوش کنید و به جامعه DeSci بپیوندید. + +- [DeSci.Global: رویدادهای جهانی و تقویم ملاقات](https://desci.global) +- [بلاک چین برای علم تلگرام](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: سازنده ابزار انتشارات DeSci](https://descifoundation.org/) +- [DeSci.World: فروشگاه تک مرحله ای برای مشاهده کاربران، درگیر شدن با علم غیرمتمرکز](https://desci.world) +- [پروتکل فلمینگ: اقتصاد داده منبع باز که به کشف مشترک زیست پزشکی کمک می کند](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 یا desci خود بودجه دریافت کنید](https://www.molecule.to/) +- [ResearchHub: یک نتیجه علمی را ارسال کنید و با همتایان خود گفتگو کنید](https://www.researchhub.com/) +- [VitaDAO: دریافت بودجه از طریق توافقنامه های تحقیقاتی حمایت شده برای تحقیقات طول عمر](https://www.vitadao.com/) +- [پروتکل فلمینگ: اقتصاد داده منبع باز که به کشف مشترک زیست پزشکی کمک می کند](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/) +- [DeSci Labs](https://www.desci.com/) + +ما از پیشنهادهایی برای فهرست کردن پروژه‌های جدید استقبال می‌کنیم - لطفاً برای شروع به خط مشی فهرست [](/contributing/adding-desci-projects/) ما نگاه کنید! + +## بیشتر بخوانید {#further-reading} + +- [DeSci Wiki توسط Jocelynn Pearl and Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) +- [راهنمای بیوتکنولوژی غیرمتمرکز توسط Jocelynn Pearl برای آینده a16z](https://future.a16z.com/a-guide-to-decentralized-biotech/) +- [مورد برای DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) +- [راهنمای DeSci](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) +- [ظهور DAOهای بیوتکنولوژی](https://molecule.to/blog/the-emergence-of-biotech-daos) +- [Paul Kohlhaas - DeSci: The Future of Science Decentralized (پادکست)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) +- [هستی‌شناسی استنتاج فعال برای علم غیرمتمرکز: از حس‌سازی موقعیت‌یافته تا عوام معرفتی](https://zenodo.org/record/6320575) +- [DeSci: The Future of Research اثر ساموئل آکینوشو](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) +- [تامین مالی علم (پایان: DeSci و رمزارزهای اولیه) توسط نادیا](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) +- [Juan Benet - DeSci، آزمایشگاههای مستقل، & علم داده در مقیاس بزرگ](https://www.youtube.com/watch?v=zkXM9H90g_E) +- [Sebastian Brunemeier - چگونه DeSci می تواند تحقیقات زیست پزشکی را تغییر دهد & سرمایه خطرپذیر](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/fa/developers/docs/accounts/accounts.png b/public/content/translations/fa/developers/docs/accounts/accounts.png similarity index 100% rename from src/content/translations/fa/developers/docs/accounts/accounts.png rename to public/content/translations/fa/developers/docs/accounts/accounts.png diff --git a/src/content/translations/fa/developers/docs/accounts/index.md b/public/content/translations/fa/developers/docs/accounts/index.md similarity index 100% rename from src/content/translations/fa/developers/docs/accounts/index.md rename to public/content/translations/fa/developers/docs/accounts/index.md diff --git a/src/content/translations/fa/developers/docs/blocks/index.md b/public/content/translations/fa/developers/docs/blocks/index.md similarity index 100% rename from src/content/translations/fa/developers/docs/blocks/index.md rename to public/content/translations/fa/developers/docs/blocks/index.md diff --git a/src/content/translations/fa/developers/docs/blocks/tx-block.png b/public/content/translations/fa/developers/docs/blocks/tx-block.png similarity index 100% rename from src/content/translations/fa/developers/docs/blocks/tx-block.png rename to public/content/translations/fa/developers/docs/blocks/tx-block.png diff --git a/src/content/translations/fa/developers/docs/consensus-mechanisms/index.md b/public/content/translations/fa/developers/docs/consensus-mechanisms/index.md similarity index 100% rename from src/content/translations/fa/developers/docs/consensus-mechanisms/index.md rename to public/content/translations/fa/developers/docs/consensus-mechanisms/index.md diff --git a/src/content/translations/fa/developers/docs/consensus-mechanisms/pos/index.md b/public/content/translations/fa/developers/docs/consensus-mechanisms/pos/index.md similarity index 100% rename from src/content/translations/fa/developers/docs/consensus-mechanisms/pos/index.md rename to public/content/translations/fa/developers/docs/consensus-mechanisms/pos/index.md diff --git a/src/content/translations/fa/developers/docs/consensus-mechanisms/pow/index.md b/public/content/translations/fa/developers/docs/consensus-mechanisms/pow/index.md similarity index 100% rename from src/content/translations/fa/developers/docs/consensus-mechanisms/pow/index.md rename to public/content/translations/fa/developers/docs/consensus-mechanisms/pow/index.md diff --git a/src/content/translations/fa/developers/docs/consensus-mechanisms/pow/mining/index.md b/public/content/translations/fa/developers/docs/consensus-mechanisms/pow/mining/index.md similarity index 100% rename from src/content/translations/fa/developers/docs/consensus-mechanisms/pow/mining/index.md rename to public/content/translations/fa/developers/docs/consensus-mechanisms/pow/mining/index.md diff --git a/src/content/translations/fa/developers/docs/dapps/index.md b/public/content/translations/fa/developers/docs/dapps/index.md similarity index 100% rename from src/content/translations/fa/developers/docs/dapps/index.md rename to public/content/translations/fa/developers/docs/dapps/index.md diff --git a/src/content/translations/fa/developers/docs/evm/evm.png b/public/content/translations/fa/developers/docs/evm/evm.png similarity index 100% rename from src/content/translations/fa/developers/docs/evm/evm.png rename to public/content/translations/fa/developers/docs/evm/evm.png diff --git a/src/content/translations/fa/developers/docs/evm/index.md b/public/content/translations/fa/developers/docs/evm/index.md similarity index 100% rename from src/content/translations/fa/developers/docs/evm/index.md rename to public/content/translations/fa/developers/docs/evm/index.md diff --git a/src/content/translations/fa/developers/docs/evm/opcodes/index.md b/public/content/translations/fa/developers/docs/evm/opcodes/index.md similarity index 100% rename from src/content/translations/fa/developers/docs/evm/opcodes/index.md rename to public/content/translations/fa/developers/docs/evm/opcodes/index.md diff --git a/src/content/translations/fa/developers/docs/gas/gas.png b/public/content/translations/fa/developers/docs/gas/gas.png similarity index 100% rename from src/content/translations/fa/developers/docs/gas/gas.png rename to public/content/translations/fa/developers/docs/gas/gas.png diff --git a/src/content/translations/fa/developers/docs/gas/index.md b/public/content/translations/fa/developers/docs/gas/index.md similarity index 100% rename from src/content/translations/fa/developers/docs/gas/index.md rename to public/content/translations/fa/developers/docs/gas/index.md diff --git a/src/content/translations/fa/developers/docs/index.md b/public/content/translations/fa/developers/docs/index.md similarity index 100% rename from src/content/translations/fa/developers/docs/index.md rename to public/content/translations/fa/developers/docs/index.md diff --git a/src/content/translations/fa/developers/docs/intro-to-ether/index.md b/public/content/translations/fa/developers/docs/intro-to-ether/index.md similarity index 100% rename from src/content/translations/fa/developers/docs/intro-to-ether/index.md rename to public/content/translations/fa/developers/docs/intro-to-ether/index.md diff --git a/src/content/translations/fa/developers/docs/intro-to-ethereum/index.md b/public/content/translations/fa/developers/docs/intro-to-ethereum/index.md similarity index 100% rename from src/content/translations/fa/developers/docs/intro-to-ethereum/index.md rename to public/content/translations/fa/developers/docs/intro-to-ethereum/index.md diff --git a/src/content/translations/fa/developers/docs/networks/index.md b/public/content/translations/fa/developers/docs/networks/index.md similarity index 100% rename from src/content/translations/fa/developers/docs/networks/index.md rename to public/content/translations/fa/developers/docs/networks/index.md diff --git a/public/content/translations/fa/developers/docs/nodes-and-clients/index.md b/public/content/translations/fa/developers/docs/nodes-and-clients/index.md new file mode 100644 index 00000000000..cef246b9782 --- /dev/null +++ b/public/content/translations/fa/developers/docs/nodes-and-clients/index.md @@ -0,0 +1,316 @@ +--- +title: گره‌ها و کلاینت‌ها +description: نگاهی اجمالی بر گره‌ها و نرم‌افزار کلاینت اتریوم، به علاوه‌ی نحوه‌ی راه‌اندازی یک گره و علت انجام آن. +lang: fa +sidebarDepth: 2 +--- + +اتریوم یک شبکه‌ی توزیع‌شده از رایانه‌هایی است که نرم‌افزار را اجرا می‌کنند (به نام گره‌ها) که می‌تواند بلوک‌ها و داده‌های تراکنش را تأیید کنند. برای «اجرای» یک گره، به یک برنامه‌ی کاربردی که به عنوان کلاینت شناخته می‌شود در رایانه خود نیاز دارید. + +## پیش‌نیازها {#prerequisites} + +پیش از آن که نمونه‌ی کلاینت اتریوم خود را اجرا کنید و در این موضوع عمیق شوید باید [مبانی ماشین مجازی اتریوم](/developers/docs/evm/) و شبکه‌ی همتا به همتا را بدانید و متوجه شوید. به [معرفی اتریوم](/developers/docs/intro-to-ethereum/) ما نگاهی بیاندازید. + +If you're new to the topic of nodes, we recommend first checking out our user-friendly introduction on [running an Ethereum node](/run-a-node). + +## کلاینت‌ها و گره‌ها چه هستند؟ {#what-are-nodes-and-clients} + +«گره» به اجرای یک تکه از نرم‌افزار کلاینت گفته می‌شود. کلاینت یک پیاده‌سازی از اتریوم است که تمام تراکنش‌های هر بلوک را تأیید می‌کند، شبکه را ایمن نگه می‌دارد و داده‌ها را دقیق نگه می‌دارد. + +شما می‌توانید یک نمای در لحظه و زنده را از شبکه‌ی اتریوم را با نگاه به [نقشه‌ی گره‌ها](https://etherscan.io/nodetracker) ببینید. + +[کلاینت‌های اتریوم](/developers/docs/nodes-and-clients/#execution-clients) بسیاری در زبان‌های برنامه‌نویسی مختلفی مثل گو، Rust، جاوا اسکریپت، تایپ‌اسکریپت، پایتون، سی‌شارپ، دات‌نت، Nim و جاوا وجود دارند. همه‌ی این پیاده‌سازی‌ها مشخصات رسمی (در اصل [یلو پیپر اتریوم](https://ethereum.github.io/yellowpaper/paper.pdf)) را دنبال می‌کنند. این مشخصاتْ نحوه‌ی عملکرد شبکه‌ی اتریوم و زنجیره‌ی بلوکی را تعیین می‌کند. + +![کلاینت اجرا](./client-diagram.png) نمودار ساده شده‌ی ویژگی‌های کلاینت اتریوم. + +## انواع گره {#node-types} + +اگر می‌خواهید که [گره‌ی خودتان را اجرا کنید](/developers/docs/nodes-and-clients/run-a-node/) باید بدانید که گره‌های مختلفی وجود دارند که داده‌های مختلفی را استفاده می‌کنند. در واقع کلاینت‌ها می‌توانند سه نوع گره را اجرا کنند - سبک، کامل و آرشیو. گزینه‌های استراتژی‌های همگام‌سازی مختلف هم وجود دارند که زمان همگام‌سازی را سریع‌تر می‌کنند. همگام‌سازی به این اشاره دارد که با چه سرعتی می‌تواند به‌روزترین اطلاعات را در مورد وضعیت اتریوم دریافت کند. + +### گره‌ی کامل {#full-node} + +- داده‌های زنجیره بلوکی را کامل نگه‌داری می‌کند. +- در اعتبارسنجی بلوک‌ها شرکت می‌کند و همه‌ی وضعیت‌ها و بلوک‌ها را تأیید می‌کند. +- همه‌ی وضعیت‌ها می‌توانند از گره‌‌ی کامل استخراج شوند. +- در خدمت شبکه است و داده‌ها را در زمان درخواست ارائه می‌دهد. + +### گره‌ی سبک {#light-node} + +- زنجیره‌ی هدر را ذخیره و هر چیز دیگری را درخواست می‌کند. +- می‌تواند اعتبار داده‌ها را نسبت به ریشه‌های حالت در هدرهای بلوک تأیید کند. +- برای دستگاه‌های کم‌ظرفیت، مانند دستگاه‌های تعبیه‌شده یا تلفن‌های همراه، که توانایی ذخیره‌ی چندین گیگابایت داده‌های زنجیره بلوکی را ندارند، مفید است. + +### گره‌‌ی آرشیو {#archive-node} + +- هر چیزی که در گره کامل نگهداری می‌شود را ذخیره کرده و یک آرشیو کامل از وضعیت‌های تاریخی می‌سازد. وقتی می‌خواهید درخواستی بفرستید، مثل گرفتن موجودی حساب در بلوک شماره‌ی 4,000,000، یا به‌طور ساده و قابل‌اتکا [مجموعه‌ی تراکنش خود را بدون نیاز به استخراج آن‌ها با استفاده از OpenEthereum آزمایش کنید](https://openethereum.github.io/JSONRPC-trace-module#trace_callmany)، نیاز می‌شود. +- این داده‌ها واحدهای ترابایتی را نشان می‌دهند که گره‌های آرشیو را برای کاربران متوسط از ​​جذابیت می‌اندازد، اما می‌تواند برای سرویس‌هایی مانند جستجوگرهای بلوک، نگهدارندگان کیف پول و تجزیه و تحلیل زنجیره مفید باشند. + +همگام‌سازی کلاینت‌ها در هر حالتی غیر از آرشیو منجر به کاهش داده‌های زنجیره‌ی بلوکی می‌شود. این بدان معناست که هیچ آرشیوی از تمام وضعیت‌های تاریخی وجود ندارد اما گره‌ی کامل قادر است آنها را بنا به تقاضا بسازد. + +## چرا باید یک گره‌ی اتریوم را اجرا کنم؟ {#why-should-i-run-an-ethereum-node} + +اجرای یک گره به شما این امکان را می‌دهد که بدون نیاز به اعتماد و به شکل خصوصی از اتریوم ضمن پشتیبانی از اکوسیستم استفاده کنید. + +### مزایا برای شما {#benefits-to-you} + +اجرای گره‌ی خودتان شما را قادر می‌سازد از اتریوم به شکل واقعاً خصوصی، خودکفا و بدون نیاز به اعتماد استفاده کنید. نیازی نیست به شبکه اعتماد کنید زیرا می‌توانید داده‌ها را خودتان با کلاینت خود تأیید کنید. «اعتماد نکنید، اعتبارسنجی کنید» یک سخن مشهور مربوط به زنجیره‌ی بلوکی است. + +- گره‌ی شما تمام تراکنش‌ها و بلوک‌ها را با توجه به قوانین اجماع به تنهایی اعتبارسنجی می‌کند. این به این معنی است که شما نیازی به اتکا به هیچ گره‌ی دیگری در شبکه یا اعتماد تام به آن‌ها ندارید. +- شما نیازی به افشای آدرس و موجودیتان به گره‌های تصادفی ندارید. همه چیز می‌تواند با کلاینت خودتان بررسی شود. +- اگر از گره‌ی خودتان استفاده کنید برنامه‌ی غیرمتمرکزتان می‌تواند ایمن‌تر و خصوصی‌تر باشد. [MetaMask](https://metamask.io), [MyEtherWallet](https://myetherwallet.com) and some other wallets can be easily pointed to your own local node. +- شما می‌توانید نقاط پایانی فراخوانی رویه‌ای دوردست (RPC) سفارشی خود را برنامه‌ریزی کنید. +- شما می‌توانید با استفاده از **ارتباط بین پردازشی (IPC)** گره‌ی خود را متصل کنید یا برای بارگذاری برنامه‌ی خود به‌عنوان افزونه آن را بازنویسی کنید. با این روش تأخیر کمی خواهید داشت، که برای جایگزینی تراکنش‌های شما در سریع‌ترین زمان ممکن لازم است (یعنی پیش‌اجرا). + +![چگونه با استفاده از برنامه‌های کاربردی و گره‌ها به اتریوم دسترسی داشته باشید](./nodes.png) + +### مزایای شبکه {#network-benefits} + +داشتن مجموعه‌ی متنوعی از گره‌ها برای سلامت، امنیت و انعطاف‌پذیری عملیاتی اتریوم حائظ اهمیت است. + +- آن‌ها دسترسی به داده‌های زنجیره‌ی بلوکی را برای کلاینت‌های سبکی که به آن وابسته هستند فراهم می‌کنند. در پیک‌های استفاده‌ی زیاد، باید گره‌های کامل کافی برای همگام‌سازی گره‌های سبک وجود داشته باشد. گره‌های سبک همه‌ی زنجیره بلوکی را ذخیره نمی‌کنند و به جای آن داده‌ها را با [ریشه‌ی وضعیت درون هدر بلوک‌ها](/developers/docs/blocks/#block-anatomy) اعتبارسنجی می‌کنند. آن‌ها می‌توانند در صورت نیاز اطلاعات بیشتری را از بلوک‌ها درخواست کنند. +- گره‌های کامل قوانین اجماع اثبات کار را اجرا می‌کنند تا نتوان آن‌ها را فریب داد که بلوک‌هایی را بپذیرند که از آن‌ها پیروی نمی‌کنند. این کار امنیت بیشتری را در شبکه ایجاد می‌کند، چون اگر همه‌ی گره‌ها گره‌های سبک باشند که تأیید کامل را انجام نمی‌دهند، استخراج‌گرها می‌توانند به شبکه حمله کنند و برای مثال بلوک‌هایی با پاداش بالاتر بسازند. + +اگر یک گره‌ی کامل را اجرا کنید، کل شبکه‌ی اتریوم از آن سود می‌برد. + +## اجرای گره‌ی خودتان {#running-your-own-node} + +به اجرای کلاینت اتریوم خود علاقه دارید؟ + +For a beginner-friendly introduction visit our [run a node](/run-a-node) page to learn more. + +If you're more of a technical user, learn how to [spin up your own node](/developers/docs/nodes-and-clients/run-a-node/) with the command line! + +### پروژه‌ها {#projects} + +[**یک کلاینت انتخاب کنید و دستورالعمل‌هایش را اجرا کنید**](#clients) + +**ethnode -** **_یک گره‌ی اتریوم (geth یا OpenEthereum) را برای توسعه‌ی محلی اجرا کنید._** + +- [گیت‌هاب](https://github.com/vrde/ethnode) + +**DAppNode -** **_یک رابط کاربری گرافیکی سیستم‌عامل برای اجرای گره‌های Web3 شامل اتریوم و زنجیره‌ی بیکن روی دستگاه‌های مخصوص._** + +- [dappnode.io](https://dappnode.io) + +### منابع {#resources} + +- [اجرای گره‌های کامل اتریوم: راهنمایی کامل](https://medium.com/coinmonks/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _- جاستین لروکس، 7 نوامبر 2019_ +- [صفحه‌ی تقلب پیکربندی گره‌ها](https://dev.to/5chdn/ethereum-node-configuration-modes-cheat-sheet-25l8) _5 ژانویه 2019 - آفری شودن_ +- [چگونه یگ گره‌ی geth را نصب و اجرا کنیم](https://www.quiknode.io/guides/infrastructure/how-to-install-and-run-a-geth-node) _‏ 4 اکتبر 2020 - ساهیل سن_ +- [چگونه یک گره‌ی OpenEthereum (parity سابق)](https://www.quiknode.io/guides/infrastructure/how-to-run-a-openethereum-ex-parity-client-node) _‏22 سپتامبر 2020 - ساهیل سان_ + +## جایگزین‌ها {#alternatives} + +اجرای گره خود می‌تواند دشوار باشد و همیشه نیازی به اجرای نمونه‌ی خود ندارید. در این مورد شما می‌توانید از وب سرویس‌ طرف ثالث مثل [Infura](https://infura.io)،‏ [Alchemy](https://alchemyapi.io) یا [QuikNode](https://www.quiknode.io) استتفاده کنید. [ArchiveNode](https://archivenode.io/) هم یک گزینه‌ی جایگزین استکه امیدوار است داده‌های آرشیو روی زنجیره‌ی بلوکی اتریوم را برای توسعه‌دهندگان مستقلی که در غیر این صورت توانایی پرداخت آن را ندارند، به ارمغان بیاورد.‌ For an overview of using these services, check out [nodes as a service](/developers/docs/nodes-and-clients/nodes-as-a-service/). + +اگر شخصی یک گره‌ی اتریوم را با یک وب سرویس عمومی در انجمن شما اجرا می‌کند، می‌توانید کیف پول‌های سبک خود (مانند MetaMask) را [از طریق RPC سفارشی](https://metamask.zendesk.com/hc/en-us/articles/360015290012-Using-a-Local-Node) به یک گره‌ی انجمن هدایت کنید و نسبت به طرف ثالث مورد اعتماد تصادفی، حریم خصوصی بیشتری را حفظ کنید. + +از طرف دیگر، اگر کلاینت را اجرا می‌کنید، می‌توانید آن را با دوستان خود که ممکن است به آن نیاز داشته باشند به اشتراک بگذارید. + +## کلاینت‌های اجرا (پیشتر «کلاینت‌های Eth1») {#execution-clients} + +جامعه‌ی اتریوم چندین کلاینت اجرای متن‌باز (که قبلاً به عنوان «کلاینت‌های Eth1» یا فقط «کلاینت‌های اتریوم» شناخته می‌شدند) نگهداری می‌کند که توسط تیم‌های مختلف با استفاده از زبان‌های برنامه نویسی مختلف توسعه یافته‌اند. این کار باعث می‌شود شبکه قوی‌تر و پخش‌تر شود. هدف ایده‌آل دستیابی به تنوع بدون تسلط هیچ کلاینتی برای کاهش هر نقطه شکستی است. + +این جدول خلاصه‌ای از کلاینت‌های مختلف ارائه می‌دهد. همه‌ی آن‌ها در [آزمون کلاینت](https://github.com/ethereum/tests) قبول شده‌اند و به‌طور فعال نگهداری می‌شوند تا با ارتقاهای شبکه همگام بمانند. + +| کلاینت | زبان | سیستم‌عامل | شبکه‌ها | راهبرد همگام‌سازی | هرس کردن وضعیت | +| ------------------------------------------------------------------------- | --------------- | ----------------------- | -------------------------------------------- | ------------------- | ----------------------- | +| [Geth](https://geth.ethereum.org/) | Go | لینوکس، ویندوز، مک‌اواس | شبکه‌ی اصلی، Görli،‏ Rinkeby،‏ Ropsten | Snap, Full | آرشیو، هرس‌شده (Pruned) | +| [Nethermind](http://nethermind.io/) | سی‌شارپ، دات‌نت | لینوکس، ویندوز، مک‌اواس | شبکه‌ی اصلی، Görli، Rinkeby، Ropsten و بیشتر | Fast, Beam, Archive | آرشیو، هرس‌شده (Pruned) | +| [Besu](https://besu.hyperledger.org/en/stable/) | جاوا | لینوکس، ویندوز، مک‌اواس | Mainnet, Rinkeby, Ropsten, Görli, and more | سریع، کامل | آرشیو، هرس‌شده (Pruned) | +| [Erigon](https://github.com/ledgerwatch/erigon) | Go | لینوکس، ویندوز، مک‌اواس | شبکه‌ی اصلی، Görli، Rinkeby، Ropsten | Full | آرشیو، هرس‌شده (Pruned) | +| [OpenEthereum (Deprecated)](https://github.com/openethereum/openethereum) | Rust | لینوکس، ویندوز، مک‌اواس | شبکه‌ی اصلی، Kovan،‏ Ropsten و بیشتر | Warp، کامل | آرشیو، هرس‌شده (Pruned) | + +**دقت کنید که OpenEthereum‏[منسوخ شده است](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) و دیگر نگهداری نمی‌شود.** با احتیاط از آن استفاده کنید و ترجیحاً به پیاده‌سازی کلاینت دیگری بروید. + +برای شبکه‌های پشتیبانی‌شده‌ی بیشتر [شبکه‌های اتریوم](/developers/docs/networks/) را بخوانید. + +### مزایای پیاده‌سازی‌های مختلف {#advantages-of-different-implementations} + +هر کلاینت دارای موارد استفاده و مزایای منحصر به فردی است، بنابراین شما باید یکی را بر اساس ترجیحات خود انتخاب کنید. تنوع اجازه می‌دهد تا پیاده‌سازی‌ها بر روی ویژگی‌های مختلف و مخاطبان کاربر متمرکز شوند. ممکن است بخواهید کلاینت را بر اساس ویژگی‌ها، پشتیبانی، زبان برنامه‌نویسی یا مجوزها انتخاب کنید. + +#### Go Ethereum {#geth} + +Go Ethereum (به طور خلاصه geth) یکی از پیاده‌سازی‌های اصلی برای پروتکل اتریوم است. در حال حاضر، گسترده‌ترین کلاینت با بزرگترین پایگاه کاربران و ابزارهای متنوع برای کاربران و توسعه‌دهندگان است. به زبان Go نوشته‌شده، کاملاً متن باز است و مجوز آن تحت GNU LGPL v3 است. + +#### OpenEthereum {#openethereum} + +OpenEthereum یک کلاینت اتریوم سریع، غنی و پیشرفته مبتنی بر CLI است. برای ارائه زیرساخت‌های ضروری برای خدمات سریع و قابل اعتماد ساخته شده است که نیاز به همگام سازی سریع و حداکثر زمان به‌کار دارد. هدف OpenEthereum این است که سریع‌ترین، سبک‌ترین و امن‌ترین کلاینت اتریوم باشد. یک پایگاه کد تمیز و ماژولار برای موارد زیر است: + +- سفارشی‌سازی آسان. +- ادغام سبک در خدمات یا محصولات. +- حداقل حافظه و رد پای حافظه + +OpenEthereum با استفاده از زبان برنامه‌نویسی پیشرو Rust ساخته شده و مجوز آن تحت GPLv3 است. + +**دقت کنید که OpenEthereum‏[منسوخ شده است](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) و دیگر نگهداری نمی‌شود.** با احتیاط از آن استفاده کنید و ترجیحاً به پیاده‌سازی کلاینت دیگری بروید. + +#### Nethermind {#nethermind} + +Nethermind یک پیاده‌سازی اتریوم است که با پشته‌ی فناوری سی‌شارپ دات‌نت ایجاد شده و بر روی تمام پلتفرم‌های اصلی از جمله ARM اجرا می‌شود. این پیاده‌سازی کارکردی عادی با موارد زیر ارائه می‌دهد: + +- یک ماشین مجازی بهینه +- دسترسی به وضعیت +- شبکه و ویژگی‌های غنی مانند داشبوردهای Prometheus/Grafana، پشتیبانی از گزارش سازمانی seq، ردیابی JSON RPC، و افزونه‌های تجزیه و تحلیل. + +Nethermind همچنین [اسناد با جزییات](https://docs.nethermind.io)، پشتیبانی توسعه‌ی قوی، یک جامعه‌ی آنلاین و پشتیبانی 24 ساعته در 7 روز هفته برای کاربران پرمیوم دارد. + +#### Besu {#besu} + +هایپرلجر Besu یک کلاینت اتریوم در رده‌ی سازمانی برای شبکه‌های عمومی و مجوزدار است. این کلاینت تمام ویژگی‌های اصلی اتریوم، از ردیابی گرفته تا GraphQL را اجرا می‌کند، نظارت گسترده‌ای دارد و توسط ConsenSys پشتیبانی می‌شود، هم در کانال‌های جامعه باز و هم از طریق SLAهای تجاری برای شرکت‌ها. به زبان جاوا نوشته شده و دارای مجوز آپاچی 2.0 است. + +#### Erigon {#erigon} + +Erigon که قبلاً به عنوان Erigon شناخته می‌شد، یک فورک Go Ethereum است که هدفش سرعت و کارایی فضای دیسک است. Erigon یک پیاده‌سازی کاملاً بازسازی شده از Ethereum است که در حال حاضر به زبان Go نوشته شده است، اما پیاده‌سازی آن به زبان‌های دیگر برنامه‌ریزی شده است. هدف Erigon ارائه‌ی پیاده‌سازی سریع‌تر، ماژولارتر و بهینه‌تر اتریوم است. این کلاینت می‌تواند با بکارگیری کمتر از 2 ترابایت فضای دیسک، در کمتر از 3 روز، همگام‌سازی گره‌ی آرشیو کامل را انجام دهد + +### حالات همگام‌سازی {#sync-modes} + +برای پیگیری و تأیید داده‌های جاری در شبکه، کلاینت اتریوم باید با آخرین حالت شبکه همگام شود. این کار با دانلود داده‌ها از همتایان، تأیید رمزنگاری یکپارچگی آن‌ها و ایجاد یک پایگاه داده‌ی محلی زنجیره‌ی بلوکی انجام می‌شود. + +حالت‌های همگام‌سازی رویکردهای متفاوتی را برای این فرایند با بده‌بستان‌های مختلف نشان می‌دهند. کلاینت‌ها همچنین در پیاده‌سازی‌های الگوریتم‌های همگام‌سازی تفاوت دارند. برای جزئیات پیاده‌سازی، همیشه به مستندات رسمی کلاینت انتخابی خود مراجعه کنید. + +#### نگاهی اجمالی بر راهبردها {#overview-of-strategies} + +نگاهی اجمالی بر رویکردهای همگام‌سازی استفاده‌شده در شبکه‌ی اصلی کلاینت‌های آماده: + +##### همگام‌سازی کامل + +همگام‌سازی کامل همه‌ی بلوک‌ها (از جمله هدرها، تراکنش‌ها و رسیدها) را بارگیری می‌کند و با اجرای هر بلوک از پیدایش، وضعیت زنجیره‌ی بلوکی را به صورت تدریجی ایجاد می‌کند. + +- اعتماد را به حداقل می‌رساند و با تأیید هر تراکنش، بالاترین امنیت را ارائه می‌دهد. +- ٰبا افزایش تعداد تراکنش‌ها، پردازش همه تراکنش‌ها ممکن است روزها تا هفته‌ها طول بکشد. + +##### همگام‌سازی سریع + +همگام‌سازی سریع همه بلوک‌ها (از جمله هدرها، تراکنش‌ها و رسیدها) را دانلود می‌کند، همه هدرها را تأیید می‌کند، وضعیت را دانلود می‌کند و آن را در برابر هدرها تأیید می‌کند. + +- بر امنیت مکانیزم اجماع اتکا دارد. +- همگام‌سازی تنها چند ساعت زمان می‌برد. + +##### همگام‌سازی سبک + +حالت کلاینت سبک همه‌ی هدرهای بلوک و داده‌های‌ بلوک را بارگیری می‌کند و برخی را به‌طور تصادفی تأیید می‌کند. فقط نوک زنجیره را از نقاط بررسی مطمئن همگام‌سازی می‌کند. + +- با تکیه بر اعتماد به توسعه‌دهندگان و مکانیزم اجماع، تنها آخرین وضعیت را دریافت می‌کند. +- کلاینت ظرف چند دقیقه با وضعیت فعلی شبکه آماده استفاده است. + +[اطلاعات بیشتر درباره‌ی کلاینت‌های سبک](https://www.parity.io/blog/what-is-a-light-client/) + +##### همگام‌سازی فوری + +توسط geth پیاده‌سازی شده است. با استفاده از عکس‌های فوری پویا که توسط همتایان ارائه می‌شوند، تمام داده‌های حساب و ذخیره‌سازی را بدون بارگیری گره‌های درخت میانی بازیابی می‌کند و سپس درخت مرکل را به صورت محلی بازسازی می‌کند. + +- سریع‌ترین راهبرد همگام‌سازی که توسط geth توسعه داده شده است و هم‌اکنون حالت پیش‌فرض آن است +- صرفه‌جویی در مصرف حافظه و پهنای باند شبکه بدون به خطر انداختن امنیت. + +[اطلاعات بیشتر در مورد همگام‌سازی فوری](https://github.com/ethereum/devp2p/blob/master/caps/snap.md) + +##### همگام‌سازی Warp + +توسط OpenEthereum پیاده‌سازی شده است. گره‌ها به‌طور منظم یک عکس فوری از وضعیت بحرانی اجماع تولید می‌کنند و هر همتایی می‌تواند این عکس‌های فوری را از طریق شبکه دریافت کند و همگام‌سازی سریع را از این نقطه ممکن سازد. + +- سریع‌ترین حالت و حالت پیش‌فرض‌ همگام‌سازی OpenEthereum متکی به عکس‌های فوری ایستا است که توسط همتایان ارائه می‌شود. +- راهکاری مشابه همگام‌سازی فوری اما بدون مزایای امنیتی خاص. + +[اطلاعات بیشتر در مورد Warp](https://openethereum.github.io/Beginner-Introduction#warping---no-warp) + +##### همگام‌سازی Beam + +توسط Nethermind و Trinity پیاده‌سازی شده است. مانند همگام‌سازی سریع عمل می‌کند، اما داده‌های مورد نیاز برای اجرای آخرین بلوک‌ها را نیز بارگیری می‌کند، که به شما امکان می‌دهد ظرف چند دقیقه جستجوی زنجیره را شروع کنید. + +- ابتدا وضعیت را همگام‌سازی می‌کند و شما را قادر می‌سازد ظرف چند دقیقه RPC را درخواست کنید. +- هنوز در حال توسعه است و کاملاً قابل‌اعتماد نیست، همگام‌سازی پس‌زمینه کند شده است و پاسخ‌های RPC ممکن است شکست بخورند. + +[اطلاعات بیشتر درباره‌ی همگام‌سازی Beam](https://medium.com/@jason.carver/intro-to-beam-sync-a0fd168be14a) + +#### برپا کردن در کلاینت‌ها {#client-setup} + +کلاینت‌ها با توجه به نیازهای شما گزینه‌های پیکربندی غنی‌ای را ارائه می‌دهند. بر اساس سطح امنیت، داده‌های موجود و هزینه، موردی را انتخاب کنید که برای شما مناسب است. به غیر از الگوریتم همگام‌سازی، می‌توانید هرس (pruning) انواع مختلف داده‌های قدیمی را نیز تنظیم کنید. هرس امکان حذف داده‌های قدیمی را فراهم می‌کند، به‌عنوان مثال حذف گره‌های درخت وضعیت که از بلوک‌های اخیر غیرقابل‌دسترسی هستند. + +به مستندات یا صفحه‌ی راهنمای کلاینت توجه کنید تا بفهمید کدام حالت همگام‌سازی حالت پیش‌فرض است. شما می‌توانید زمانی که به‌طور کامل تنظیم شدید مدل همگام‌سازی ترجیحی را انتخاب کنید، مثل: + +**تنظیم همگام‌سازی سبک در [geth](https://geth.ethereum.org/) یا [ERIGON](https://github.com/ledgerwatch/erigon)** + +`geth --syncmode "light"` + +برای جزئیات بیشتر آموزش [اجرای گره‌ی سبک geth](/developers/tutorials/run-light-node-geth/) را مشاهده کنید. + +**تنظیم همگام‌سازی کامل با آرشیو در [Besu](https://besu.hyperledger.org/)** + +`besu --sync-mode=FULL` + +مانند هر پیکربندی دیگر، می توان آن را با پرچم راه‌اندازی (startup flag) یا در فایل پیکربندی تعریف کرد. یک مثال دیگر [Nethermind](https://docs.nethermind.io/nethermind/) است که از شما می‌خواهد پیکربندی را در اولین تنظیم اولیه انتخاب کنید و یک فایل پیکربندی ایجاد می‌کند. + +## کلاینت‌های اجماع («کلاینت‌های Eth2» سابق) {#consensus-clients} + +چندین کلاینت اجماع (که قبلاً به‌عنوان کلاینت‌های «Eth2» شناخته می‌شدند) وجود دارد که از [ارتقاهای اجماع](/roadmap/beacon-chain/) پشتیبانی می‌کنند. They are running the Beacon Chain and will provide proof-of-stake consensus mechanism to execution clients after [The Merge](/roadmap/merge/). + +| کلاینت | زبان | سیستم‌عامل | شبکه‌ها | +| ----------------------------------------------------------- | ---------- | ----------------------- | ---------------------------------------- | +| [Teku](https://pegasys.tech/teku) | جاوا | لینوکس، ویندوز، مک‌اواس | زنجیره‌ی بیکن، Goerli | +| [Nimbus](https://nimbus.team/) | Nim | لینوکس، ویندوز، مک‌اواس | زنجیره‌ی بیکن، Goerli | +| [Lighthouse](https://lighthouse-book.sigmaprime.io/) | Rust | لینوکس، ویندوز، مک‌اواس | زنجیره‌ی بیکن، Goerli،‏ Pyrmont | +| [Lodestar](https://lodestar.chainsafe.io/) | TypeScript | لینوکس، ویندوز، مک‌اواس | زنجیره‌ی بیکن، Goerli | +| [Prysm](https://docs.prylabs.network/docs/getting-started/) | Go | لینوکس، ویندوز، مک‌اواس | زنجیره‌ی بیکن، Gnosis،‏ Goerli،‏ Pyrmont | + +## سخت‌افزار {#hardware} + +نیازهای سخت‌افزاری بر اساس کلاینت متفاوت است اما معمولاً آن‌قدر زیاد نیست چون گره فقط باید همگام بماند. این را با استخراج که نیاز به توان پردازشی زیادی دارد اشتباه نگیرید. با این حال، سخت‌افزار قدرتمندتر زمان همگام‌سازی و عملکرد را بهبود می‌بخشد. بسته به نیازها و خواسته‌های شما، اتریوم می‌تواند بر روی رایانه، سرور خانگی، رایانه‌های تک‌بُرد یا سرورهای خصوصی مجازی در فضای ابری اجرا شود. + +یک راه ساده برای اجرای گره‌ی خودتان، استفاده از باکس‌های پلاگ اند پلی (plug and play) مثل [DAppNode](https://dappnode.io/) است. این باکسْ سخت‌افزار لازم برای اجرای کلاینت‌ها و برنامه‌هایی که به آن‌ها وابسته است را با یک رابط کاربری ساده ارائه می‌دهد. + +### الزامات {#requirements} + +پیش از نصب هر کلاینتی مطمئن شوید که رایانه‌ی شما منابع لازم را برای اجرای آن دارد. الزامات کمینه و پیشنهادی را می‌توانید در زیر ببینید، هر چند که بخش کلیدی آن فضای حافظه است. همگام‌سازی زنجیره‌ی بلوکی اتریوم بسیار به ورودی و خروجی حساس است. بهتر است که حتما درایو حالت جامد (SSD) داشته باشید. برای اجرای کلاینت اتریوم بر روی هارددیسک (HDD) شما نیاز به حداقل 8 گیگابایت رم دارید که به عنوان حافظه‌ی نهان استفاده کنید. + +#### الزامات حداقلی {#recommended-specifications} + +- پردازنده‌ با حداقل دو هسته +- حداقل 4 گیگابایت رم با یک درایو ذخیره‌سازی جامد (SSD)، ‎+8‏ گیگابایت اگر هارددیسک دارید +- پهنای باند 8 مگابیت بر ثانیه + +#### مشخصات پیشنهادی {#recommended-specifications} + +- پردازنده‌ی سریع با حداقل چهار هسته +- حداقل 16 گیگابایت رم +- درایو ذخیره‌سازی جامد (SSD) سریع با حداقل 500 گیگابایت فضای خالی +- پهنای باند بیش از 25 مگابیت بر ثانیه + +حالت همگام‌سازی که انتخاب می‌کنید بر فضای مورد نیاز تأثیر می‌گذارد، اما ما فضای دیسک مورد نیاز برای هر کلاینت را در زیر تخمین زده‌ایم. + +| کلاینت | فضای حافظه (همگام‌سازی سریع) | فضای حافظه (آرشیو کامل) | +| ------------ | ---------------------------- | ----------------------- | +| Geth | بیش از 400 گیگابایت | بیش از 6 ترابایت | +| OpenEthereum | بیش از 280 گیگابایت | بیش از 6 ترابایت | +| Nethermind | بیش از 200 گیگابایت | بیش از 5 ترابایت | +| Besu | بیش از 750 گیگابایت | بیش از 5 ترابایت | +| Erigon | اطلاق‌ناپذیر | بیش از 1 ترابایت | + +- توجه: Erigon همگام‌سازی سریع را انجام نمی‌دهد، اما هرس کامل امکان‌پذیر است (تقریبا 500 گیگابایت) + +این نمودارها نشان می‌دهند الزامات حافظه چطور همواره در حال تغییر هستند. برای به‌روزترین داده‌ها برای geth و OpenEthereum [داده‌های همگام‌سازی کامل](https://etherscan.io/chartsync/chaindefault) و [داده‌های همگام‌سازی آرشیو](https://etherscan.io/chartsync/chainarchive) را مشاهده کنید. + +### اتریوم روی رایانه‌ی تک‌برد {#ethereum-on-a-single-board-computer} + +راحت‌ترین و ارزان‌ترین راه برای اجرای گره‌ی اتریوم استفاده از یک رایانه‌ی تک‌بردی با معماری ARM مانند Raspberry Pi است. [اتریوم روی ARM](https://twitter.com/EthereumOnARM) تصاویری از کلاینت‌های geth،‏ OpenEthereum،‏ Nethermind و Besu ارائه می‌دهد. این یک آموزش ساده برای [چگونه یک کلاینت ARM را بسازیم و بر پا کنیم](/developers/tutorials/run-node-raspberry-pi/) است. + +دستگاه‌های کوچک، مقرون به صرفه و کارآمد مانند این‌ها برای اجرای یک گره در خانه ایده آل هستند. + +## بیشتر بخوانید {#further-reading} + +اطلاعات بسیاری درباره‌ی کلاینت‌های اتریوم بر روی اینترنت وجود دارد. این‌ها چند منبع هستند که می‌توانند مفید باشند. + +- [اتریوم مقدماتی - بخش دوم - فهم گره‌ها](https://kauri.io/ethereum-101-part-2-understanding-nodes/48d5098292fd4f11b251d1b1814f0bba/a) _- ویل بارنز، 13 فوریه 2019_ +- [اجرای گره‌های کامل اتریوم: راهنمایی برای افراد کم انگیزه](https://medium.com/@JustinMLeroux/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _- جاستین لروکس، 7 نوامبر 2019_ +- [آنالیز نیازمندی‌های سخت‌افزار برای تبدیل شدن به یک گره‌ی کامل معتبر اتریوم](https://medium.com/coinmonks/analyzing-the-hardware-requirements-to-be-an-ethereum-full-validated-node-dc064f167902) _- آلبرت پالا، 24 سپتامبر 2018_ +- [اجرای یک گره Besu هایپرلجر بر شبکه‌ی اصلی اتریوم: مزایا، نیازمندی‌ها و راه‌اندازی](https://pegasys.tech/running-a-hyperledger-besu-node-on-the-ethereum-mainnet-benefits-requirements-and-setup/) _- فلیپ فراگی، 7 مه 2020_ + +## موضوعات مرتبط {#related-topics} + +- [بلوک‌ها](/developers/docs/blocks/) +- [شبکه‌ها](/developers/docs/networks/) + +## آموزش‌های مرتبط {#related-tutorials} + +- [اجرای یک گره با geth](/developers/tutorials/run-light-node-geth/) _- چگونه geth را بارگیری، نصب و اجرا کنیم. Covering syncmodes, the JavaScript console, and more._ +- [Raspberry Pi 4 خود را فقط با اتصال کارت MicroSD به یک گره‌ی اعتبارسنج تبدیل کنید - راهنمای نصب](/developers/tutorials/run-node-raspberry-pi/) _- Raspberry Pi 4 خود را متصل کنید، یک کابل اترنت وصل کنید، دیسک SSD را وصل کنید و دستگاه را روشن کنید تا Raspberry Pi 4 را به یک گره‌ی کامل اتریوم که لایه‌ی اجرا (شبکه‌ی اصلی) و / یا لایه‌ی اجماع (زنجیره‌ی بیکن / اعتبارسنج) را اجرا می‌کند تبدیل کنید._ diff --git a/src/content/translations/fa/developers/docs/nodes-and-clients/nodes-as-a-service/index.md b/public/content/translations/fa/developers/docs/nodes-and-clients/nodes-as-a-service/index.md similarity index 100% rename from src/content/translations/fa/developers/docs/nodes-and-clients/nodes-as-a-service/index.md rename to public/content/translations/fa/developers/docs/nodes-and-clients/nodes-as-a-service/index.md diff --git a/public/content/translations/fa/developers/docs/nodes-and-clients/run-a-node/index.md b/public/content/translations/fa/developers/docs/nodes-and-clients/run-a-node/index.md new file mode 100644 index 00000000000..c983032e2c3 --- /dev/null +++ b/public/content/translations/fa/developers/docs/nodes-and-clients/run-a-node/index.md @@ -0,0 +1,162 @@ +--- +title: چرخاندن گره‌ی اتریوم خودتان +description: مقدمه‌ای عمومی بر اجرای نمونه‌ی خودتان از کلاینت اتریوم. +lang: fa +sidebarDepth: 2 +--- + +اجرای گره‌ی خودتان مزایای متنوعی برای شما دارد، امکانات جدیدی را در اختیارتان قرار می‌دهد و به پشتیبانی از اکوسیستم کمک می‌کند. این صفحه شما را برای چرخاندن گره‌ی خودتان و ایفای نقش برای اعتبارسنجی تراکنش‌های اتریوم راهنمایی می‌کند. + +## پیش‌نیازها {#prerequisites} + +شما باید بدانید که گره‌ی اتریوم چیست و چرا ممکن است بخواهید یک کلاینت را اجرا کنید. این موضوع در [گره‌ها و کلاینت‌ها](/developers/docs/nodes-and-clients/) بررسی شده است. + +If you're new to the topic of running a node, or looking for a less technical path, we recommend first checking out our user-friendly introduction on [running an Ethereum node](/run-a-node). + +## انتخاب یک رویکرد {#choosing-approach} + +اولین گام برای چرخاندن گره خودتان انتخاب رویکردتان است. شما باید کلاینت (نرم‌افزار)، محیط و پارامتر‌هایی که می‌خواهید با آن‌ها کار را شروع کنید انتخاب کنید. همه‌ی [کلاینت‌های شبکه‌ی اصلی](/developers/docs/nodes-and-clients/#advantages-of-different-implementations) را ببینید. + +### تنظیمات کلاینت {#client-settings} + +پیاده‌سازی‌های کلاینت حالت‌های مختلف همگام‌سازی و گزینه‌های مختلف دیگر را فعال می‌کنند. [حالات همگام‌سازی](/developers/docs/nodes-and-clients/#sync-modes) نشانگر روش‌های مختلف دانلود و اعتبارسنجی داده‌های زنجیره‌ی بلوکی است. پیش از آغاز یک گره، شما باید تصمیم بگیرید که از کدام شبکه و کدام حالت همگام‌سازی استفاده نمایید. مهم‌ترین چیزی که باید به آن توجه کرد حافظه‌ی دیسک و زمان همگام‌سازی است که کلاینت نیاز دارد. + +تمام گزینه‌ها و ویژگی‌ها را می‌توان در مستندات کلاینت مشاهده کرد. پیکربندی‌های متنوع کلاینت می‌تواند با اجرای کلاینت با پرچم‌های متناظر تنظیم شود. برای اهداف آزمایشی، ممکن است ترجیح بدهید که کلاینت خود را روی شبکه‌ی تست اجرا کنید. [نگاه اجمالی بر شبکه‌های پشتیبانی‌شده را مشاهده کنید](/developers/docs/nodes-and-clients/#execution-clients). + +### محیط‌زیست و سخت‌افزار {#environment-and-hardware} + +#### محلی یا ابری {#local-vs-cloud} + +کلاینت‌های اتریوم می‌توانند روی رایانه‌های رده‌ی مصرف‌کننده کار کنند و برخلاف استخراج به سخت‌افزار خاصی نیاز ندارند. بنابراین، شما بر اساس نیاز خود گزینه‌های مختلفی برای بکارگیری دارید. برای ساده کردن، بیایید اجرای یک گره را هم در یک ماشین فیزیکی محلی و هم در یک سرور ابری بررسی کنیم: + +- ابر + - ارائه‌دهندگانْ زمان به‌کار (uptime) سرور بالا و آدرس‌های آی‌پی (IP) عمومی ثابت ارائه می‌دهند + - گرفتن سرور اختصاصی یا مجازی ممکن است راحت‌تر از ساختن سرور شخصی باشد + - بده‌بستان بر سر این است که به یک شخص ثالث - ارائه‌دهده‌ی سرور اعتماد کنیم + - به دلیل اندازه‌ی حافظه‌ی لازم برای گره‌ی کامل، هزینه‌ی اجاره‌ی سرور ممکن است بالا باشد +- سخت‌افزار شخصی + - رویکرد بی‌اعتمادتر و حاکمیتی‌تر + - سرمایه‌گذاری برای یک بار + - امکان خرید ماشین‌های پیش‌پیکربندی‌شده + - شما باید به‌طور فیزیکی دستگاه را آماده، نگهداری و احتمالاً عیب‌یابی کنید + +هر دو گزینه مزایای متفاوتی دارند که در بالا خلاصه شده است. اگر به دنبال راه‌حل ابری هستید، علاوه بر بسیاری از ارائه‌دهندگان سنتی پردازش ابری، خدماتی هم وجود دارند که بر روی بکارگیری گره‌ها متمرکز شده‌اند. برای مثال: + +- [QuikNode](https://www.quiknode.io/) +- [Blockdaemon](https://blockdaemon.com) +- [LunaNode](https://www.lunanode.com/) +- [Alchemy](https://www.alchemy.com/) + +#### سخت‌افزار {#hardware} + +با این حال، یک شبکه‌ی غیرمتمرکز و مقاوم در برابر سانسور نباید بر ارائه‌دهندگان ابری متکی باشد. برای اکوسیستم سالم‌تر است که هر کس با سخت‌افزار شخصی خودش گره را اجرا کند. ساده‌ترین راه استفاده از ماشین‌های پیش‌پیکربندی‌شده است: + +- [DappNode](https://dappnode.io/) +- [Avado](https://ava.do/) + +[الزامات فضای ذخیره‌سازی برای هر کلاینت و حالت همگام‌سازی](/developers/docs/nodes-and-clients/#requirements) را جهت اطلاع از حداقل فضای لازم و فضای توصیه‌شده بررسی کنید. به‌طور کلی، قدرت محاسباتی متوسط ​​باید کافی باشد. معمولاً مشکل از سرعت درایو است. در همگام‌سازی ابتدایی، کلاینت‌های اتریوم عملیات‌های خواندن و نوشتن بسیاری را انجام می‌دهند. در نتیجه درایو حالت جامد (SSD) به شدت پیشنهاد می‌شود. یک کلاینت ممکن است نتواند [حالت فعلی را بر روی هارددیسک همگام‌سازی کند](https://github.com/ethereum/go-ethereum/issues/16796#issuecomment-391649278) و همواره چند بلوک از شبکه‌ی اصلی عقب بماند. شما می‌توانید اکثر کلاینت‌ها را بر روی [یک رایانه‌ی تک‌بورد با ARM](/developers/docs/nodes-and-clients/#ethereum-on-a-single-board-computer/) اجرا کنید. همچنین می‌توانید از سیستم‌عامل [Ethbian](https://ethbian.org/index.html) برای Raspberry Pi 4 استفاده کنید. This lets you [run a client by flashing the SD card](/developers/tutorials/run-node-raspberry-pi/). بر اساس امکانات نرم‌افزار و سخت‌افزاری شما، زمان همگام‌سازی اولیه و نیازهای ذخیره‌سازی ممکن است متفاوت باشد. فراموش نکنید که [الزامات فضای ذخیره‌سازی و زمان همگام‌سازی](/developers/docs/nodes-and-clients/#recommended-specifications) را بررسی کنید. همچنین مطمئن شوید که اتصال اینترنت شما با [حد پهنای باند](https://wikipedia.org/wiki/Data_cap) محدود نشده باشد. توصیه می‌شود از یک اتصال نامحدود استفاده کنید، چون حجم پهنای لازم برای همگام‌سازی اولیه و پخش داده‌ها در شبکه ممکن است از حد مجاز تنظیم‌شده فراتر رود. + +#### سیستم‌عامل {#operating-system} + +همه‌ی کلاینت‌ها سیستم‌عامل‌های اصلی یعنی لینوکس، مک‌اواس و ویندوز را پشتیبانی می‌کنند. این بدان معناست که می‌توانید گره‌ها را با سیستم‌عاملی (OS) که برای شما مناسب‌تر است، روی رایانه‌های رومیزی یا سرورهای معمولی اجرا کنید. مطمئن شوید که سیستم‌عامل شما به‌روز است تا از مشکلات احتمالی و آسیب‌پذیری‌های امنیتی جلوگیری شود. + +## چرخاندن گره {#spinning-up-node} + +### دریافت نرم‌افزار کلاینت {#getting-the-client} + +ابتدا [نرم‌افزار کلاینت](/developers/docs/nodes-and-clients/#execution-clients) مدنظرتان را بارگیری کنید + +شما به‌راحتی می‌توانید یک برنامه‌ی کاربردی قابل‌اجرا یا بسته‌ی نصبی را بارگیری کنید که مناسب سیستم‌عامل و معماری شما باشد. همیشه امضاها و چک تجمیع بسته‌های بارگیری‌شده را بررسی کنید. برخی کلاینت‌ها مخازنی هم برای نصب و ارتقای آسان‌تر ارائه می‌دهند. در صورت ترجیح می‌توانید از منبع شروع به ساختن کنید. همه کلاینت‌ها متن‌باز هستند، بنابراین می‌توانید آن‌ها را با کامپایلر مناسب از کد منبع بسازید. + +باینری‌های قابل‌اجرا برای پیاده‌سازی های سرویس‌گیرنده شبکه‌ی اصلی پایدار را می‌توان از صفحات انتشار آن‌ها بارگیری کرد: + +- [Geth](https://geth.ethereum.org/downloads/) +- [OpenEthereum,](https://github.com/openethereum/openethereum/releases) +- [Nethermind](https://downloads.nethermind.io/) +- [Besu](https://besu.hyperledger.org/en/stable/) +- [Erigon](https://github.com/ledgerwatch/erigon) + +**دقت کنید که OpenEthereum‏[منسوخ شده است](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) و دیگر نگهداری نمی‌شود.** با احتیاط از آن استفاده کنید و ترجیحاً به پیاده‌سازی کلاینت دیگری بروید. + +### آغاز کلاینت {#starting-the-client} + +قبل از راه‌اندازی نرم‌افزار کلاینت اتریوم، آخرین بررسی را انجام دهید تا مطمئن شوید محیط شما آماده است. برای مثال، مطمئن شوید که: + +- فضای حافظه‌ی کافی با توجه به شبکه‌ و حالت همگام‌سازی انتخابی وجود دارد. +- حافظه و پردازنده توسط برنامه‌های دیگر استفاده نمی‌شود. +- سیستم‌عامل به آخرین نسخه‌ی خود به‌روز شده است. +- زمان و تاریخ سیستم درست است. +- روتر و فایروال شما اتصالات را در پورت‌های شنونده (listening ports) می‌پذیرند. به طور پیش‌فرض کلاینت‌های اتریوم از یک پورت شنونده (TCP) و یک پورت یابنده (UDP) که هر دو به‌طور پیش‌فرض روی 30303 هستند استفاده می‌کنند. + +کلاینت خود را ابتدا روی شبکه‌ی تست اجرا کنید تا مطمئن شوید که همه‌‌چیز به‌درستی کار می‌کند. [اجرای یک گره سبک geth‏](/developers/tutorials/run-light-node-geth/) باید کارگشا باشد. شما باید هرگونه تنظیمات کلاینت که به صورت پیش‌‌فرض وجود ندارند را در ابتدا مشخص کنید. می‌توانید از پرچم‌ها و فایل‌های پیکربندی برای مشخص کردن پیکربندی موردنظر استفاده کنید. برای اطلاع از جزئیات، مستندات کلاینت خود را بررسی کنید. اجرای کلاینت، توابع اصلی، نقاط پایانی انتخاب شده و جستجوی همتایان را آغاز می‌کند. پس از یافتن موفق همتایان، کلاینت شروع به همگام‌سازی می‌کند. داده‌ی کنونی زنجیره‌ی بلوکی زمانی آماده خواهد بود که کلاینت به‌طور موفقیت‌آمیز با وضعیت فعلی همگام‌سازی کرده باشد. + +### استفاده از کلاینت {#using-the-client} + +کلاینت‌ها ارائه‌دهنده‌ی نقاط پایانی وب سرویس RPC هستند که می‌توانید از آن‌ها برای کنترل کلاینت و ارتباط با شبکه‌ی اتریوم به اشکال مختلف استفاده کنید: + +- فراخوانی دستی آن‌ها با یک پروتکل مناسب (مثلاً استفاده از `curl`) +- ضمیمه کردن کنسول ارائه شده (مثلاً `geth attach`) +- پیاده‌سازی آن‌ها در برنامه‌های کاربردی + +کلاینت‌های مختلف پیاده‌سازی‌های مختلفی برای نقاط پایانی RPC دارند. اما برای JSON-RPC استانداردی وجود دارد که می‌توانید برای هر کلاینتی استفاده نمایید. برای مروری اجمالی، [مستندات JSON-RPC را بخوانید](https://eth.wiki/json-rpc/API). برنامه‌های کاربردی که نیاز به اطلاعات از شبکه‌ی اتریوم دارند می‌توانند از RPC استفاده کنند. برای مثال، کیف پول‌ معروف MetaMask به شما اجازه می‌دهد که [یک نمونه‌ی زنجیره‌ی بلوکی محلی را اجرا کنید و به آن متصل کنید](https://metamask.zendesk.com/hc/en-us/articles/360015290012-Using-a-Local-Node). + +#### دستیابی به RPC {#reaching-rpc} + +پورت پیش‌فرض JSON-RPC `8545` است اما می‌توانید پورت‌های نقاط پایانی محلی را در فایل پیکربندی مشخص کنید. در حالت پیش‌فرض، رابط RPC فقط در هاست محلی (localhost) رایانه‌ی شما قابل دسترسی است. برای اینکه بتوانید از راه دور به آن دسترسی داشته باشید، می‌توانید با تغییر آدرس به `0.0.0.0` آن را در معرض دید عموم قرار دهید. بدین ترتیب از طریق آدرس‌های آی‌پی (IP) محلی و عمومی قابل‌دسترسی خواهد بود. در بیشتر موارد، باید روی روتر خود بازارسالی پورت (port forwarding) را هم تنظیم کنید. + +شما باید این کار را با احتیاط انجام دهید، چون هر کسی در اینترنت اجازه می‌دهد گره‌ی شما را کنترل کند. اگر از کلاینت خود به عنوان کیف پول استفاده می‌کنید، بازیگران بداندیش می‌توانند به گره‌ی شما دسترسی پیدا کنند تا سیستم شما را خراب کنند یا سرمایه‌های شما را بدزدند. + +راه‌حل این مشکل، جلوگیری از تغییرپذیری روش‌های بالقوه خطرناک RPC است. برای مثال، با `geth` شما می‌توانید روش‌های تغییرپذیر را با پرچم مشخص کنید: `--http.api web3,eth,txpool`. + +همچنین می‌توانید با اشاره سرویس وب سرور، مانند Nginx، به آدرس محلی و پورت کلاینت خود، دسترسی به رابط RPC خود را میزبانی کنید. + +ساده‌ترین و بهترین راه از حیث حفظ حریم خصوصی برای تنظیم یک نقطه‌ی پایانی قابل‌دسترس این است که سرویس [Tor](https://www.torproject.org/) آنیون خود را داشته باشید. بدین ترتیب می‌توانید به RPC خارج از شبکه‌ی محلی خود بدون آدرس آی‌پی (IP) عمومی ثابت یا پورت‌های باز شده دسترسی پیدا کنید. برای انجام این کار: + +- `tor` را نصب کنید +- پیکربندی `torrc` را برای فعال‌سازی سرویس پنهان با آدرس RPC کلاینت و پورت خود ویرایش کنید +- سرویس `tor` را مجدداً راه‌اندازی کنید + +وقتی Tor را مجدداً راه‌اندازی می‌کنید، کلید‌های سرویس پنهان و نام میزبان را در نشانی مدنظرتان دریافت می‌کنید. از آن به بعد، RPC شما روی نام میزبان `.onion` قابل‌دسترسی خواهد بود. + +### گرداندن گره {#operating-the-node} + +شما باید به‌طور مرتب گره خود را کنترل کنید تا مطمئن شوید که به درستی کار می‌کند. ممکن است نیاز به انجام تعمیرات گاه‌به‌گاه داشته باشید. + +#### برخط نگه‌داشتن گره {#keeping-node-online} + +نیازی نیست که گره‌ی شما بی‌وقعه برخط باشد، اما باید آن را تا حد امکان برخط نگه دارید تا با شبکه همگام شود. برای راه‌اندازی مجدد می‌توانید آن را خاموش کنید، اما به خاطر داشته باشید که: + +- اگر وضعیت اخیر همچنان روی دیسک نوشته می‌شود، خاموش شدن می‌تواند تا چند دقیقه طول بکشد. +- خاموش شدن اجباری می‌تواند به پایگاه داده آسیب برساند. +- کلاینت شما با شبکه همگام نمی‌شود و با راه‌اندازی مجدد باید مجدداً همگام شود. + +_این موضوع روی گره‌های اعتبار سنج لایه‌ی اجماع اعمال نمی‌شود._ بُرون‌خط کردن گره‌ی شما بر تمام سرویس‌های وابسته به آن تأثیر می‌گذارد. اگر یک گره را برای _سهام‌گذاری_ اجرا می‌کنید باید سعی کنید زمان خاموشی را تا حد امکان پایین آورید. + +#### ساختن سرویس کلاینت {#creating-client-service} + +برای اجرای خودکار کلاینت در هنگام راه‌اندازی، ساختن سرویس را در نظر بگیرید. به‌عنوان مثال در سرورهای لینوکس، بهترین رویه ساخت سرویسی است که کلاینت را با پیکربندی مناسب، تحت کاربر با امتیازات محدود اجرا می‌کند و به‌طور خودکار مجدداً راه‌اندازی می‌شود. + +#### به‌روزرسانی کلاینت {#updating-client} + +شما باید نرم‌افزار کلاینت خود را با آخرین پچ‌های امنیتی، ویژگی‌ها و [EIPها](/eips/) به‌روز نگه‌دارید. خصوصاً قبل از انجام [فورک‌های سخت](/history/) مطمئن شوید که نسخه‌ی درست کلاینت را اجرا می‌کنید. + +#### اجرای سرویس‌های اضافه {#running-additional-services} + +اجرای گره خودتان به شما امکان می‌دهد از خدماتی استفاده کنید که نیاز به دسترسی مستقیم به RPC کلاینت اتریوم دارند. این‌ها سرویس‌هایی هستند که بر روی اتریوم ساخته شده‌اند مثل [راه‌حل‌های لایه‌‌ی 2](/developers/docs/scaling/#layer-2-scaling)، [کلاینت‌های اجماع] و سایر زیرساخت‌های اتریوم. + +#### نظارت بر گره {#monitoring-the-node} + +برای نظارت صحیح بر گره‌ی خود، جمع‌آوری معیارها را در نظر بگیرید. کلاینت‌ها نقاط‌ پایانی‌های معیارها را ارائه می‌دهند که شما بتوانید داده‌های جامعی درباره‌ی گره‌ی خود دریافت کنید. از ابزارهایی مثل [InfluxDB](https://www.influxdata.com/get-influxdb/) یا [Prometheus](https://prometheus.io/) برای ساخت پایگاه داده‌هایی استفاده کنید که می‌توانید با استفاده از نرم‌افزارهایی مثل [Grafana](https://grafana.com/) آن‌ها را تبدیل به بازنمایی بصری و نمودار کنید. تنظیمات زیادی برای استفاده از این نرم‌افزار و داشبوردهای مختلف Grafana وجود دارد تا بتوانید گره‌ی خود و شبکه را به‌طور کامل به شکل بصری بازنمایی کنید. به‌عنوان بخشی از نظارت خود، مطمئن شوید که عملکرد دستگاه خود را زیر نظر داشته باشید. در طول همگام‌‌سازی اولیه‌ی گره شما، ممکن است نرم‌افزار کلاینت برای پردازنده و رم بسیار سنگین باشد. علاوه بر Grafana می‌توانید از ابزارهایی که سیستم‌عاملتان به شما ارائه می‌دهد، مثل `htop` یا `uptime`، برای این کار استفاده کنید. + +## بیشتر بخوانید {#further-reading} + +- [تحلیل نیازهای سخت‌افزاری برای تبدیل شدن به یک گره‌ی کامل معتبر اتریوم](https://medium.com/coinmonks/analyzing-the-hardware-requirements-to-be-an-ethereum-full-validated-node-dc064f167902) _- آلبرت پالا، 24 سپتامبر 2018_ +- [اجرای گره‌های کامل اتریوم: راهنمایی برای افراد کم‌انگیزه](https://medium.com/@JustinMLeroux/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _- جاستین لروکس، 7 نوامبر 2019_ +- [اجرای یک گره‌ی Besu هایپرلجر روی شبکه‌ی اصلی اتریوم: مزایا، نیازمندی‌ها و راه‌اندازی](https://pegasys.tech/running-a-hyperledger-besu-node-on-the-ethereum-mainnet-benefits-requirements-and-setup/) _- فلیپ فراگی، 7 مه 2020_ +- [بکارگیری کلاینت اتریوم Nethermind با پشته‌ی نظارت](https://medium.com/nethermind-eth/deploying-nethermind-ethereum-client-with-monitoring-stack-55ce1622edbd) _- Nethermind.eth،‏ 8 جولای 2020_ + +## موضوعات مرتبط {#related-topics} + +- [گره‌ها و کلاینت‌ها](/developers/docs/nodes-and-clients/) +- [بلوک‌ها](/developers/docs/blocks/) +- [شبکه‌ها](/developers/docs/networks/) diff --git a/src/content/translations/fa/developers/docs/transactions/gas-tx.png b/public/content/translations/fa/developers/docs/transactions/gas-tx.png similarity index 100% rename from src/content/translations/fa/developers/docs/transactions/gas-tx.png rename to public/content/translations/fa/developers/docs/transactions/gas-tx.png diff --git a/src/content/translations/fa/developers/docs/transactions/index.md b/public/content/translations/fa/developers/docs/transactions/index.md similarity index 100% rename from src/content/translations/fa/developers/docs/transactions/index.md rename to public/content/translations/fa/developers/docs/transactions/index.md diff --git a/src/content/translations/fa/developers/docs/transactions/tx.png b/public/content/translations/fa/developers/docs/transactions/tx.png similarity index 100% rename from src/content/translations/fa/developers/docs/transactions/tx.png rename to public/content/translations/fa/developers/docs/transactions/tx.png diff --git a/src/content/translations/fa/developers/docs/web2-vs-web3/index.md b/public/content/translations/fa/developers/docs/web2-vs-web3/index.md similarity index 100% rename from src/content/translations/fa/developers/docs/web2-vs-web3/index.md rename to public/content/translations/fa/developers/docs/web2-vs-web3/index.md diff --git a/src/content/translations/fa/eips/index.md b/public/content/translations/fa/eips/index.md similarity index 100% rename from src/content/translations/fa/eips/index.md rename to public/content/translations/fa/eips/index.md diff --git a/src/content/translations/fa/energy-consumption/energy_consumption_pre_post_merge.png b/public/content/translations/fa/energy-consumption/energy_consumption_pre_post_merge.png similarity index 100% rename from src/content/translations/fa/energy-consumption/energy_consumption_pre_post_merge.png rename to public/content/translations/fa/energy-consumption/energy_consumption_pre_post_merge.png diff --git a/src/content/translations/fa/energy-consumption/index.md b/public/content/translations/fa/energy-consumption/index.md similarity index 100% rename from src/content/translations/fa/energy-consumption/index.md rename to public/content/translations/fa/energy-consumption/index.md diff --git a/src/content/translations/fa/governance/index.md b/public/content/translations/fa/governance/index.md similarity index 100% rename from src/content/translations/fa/governance/index.md rename to public/content/translations/fa/governance/index.md diff --git a/src/content/translations/fa/guides/how-to-create-an-ethereum-account/index.md b/public/content/translations/fa/guides/how-to-create-an-ethereum-account/index.md similarity index 100% rename from src/content/translations/fa/guides/how-to-create-an-ethereum-account/index.md rename to public/content/translations/fa/guides/how-to-create-an-ethereum-account/index.md diff --git a/src/content/translations/fa/guides/how-to-id-scam-tokens/index.md b/public/content/translations/fa/guides/how-to-id-scam-tokens/index.md similarity index 100% rename from src/content/translations/fa/guides/how-to-id-scam-tokens/index.md rename to public/content/translations/fa/guides/how-to-id-scam-tokens/index.md diff --git a/src/content/translations/fa/guides/how-to-revoke-token-access/index.md b/public/content/translations/fa/guides/how-to-revoke-token-access/index.md similarity index 100% rename from src/content/translations/fa/guides/how-to-revoke-token-access/index.md rename to public/content/translations/fa/guides/how-to-revoke-token-access/index.md diff --git a/src/content/translations/fa/guides/how-to-swap-tokens/index.md b/public/content/translations/fa/guides/how-to-swap-tokens/index.md similarity index 100% rename from src/content/translations/fa/guides/how-to-swap-tokens/index.md rename to public/content/translations/fa/guides/how-to-swap-tokens/index.md diff --git a/src/content/translations/fa/guides/how-to-use-a-bridge/index.md b/public/content/translations/fa/guides/how-to-use-a-bridge/index.md similarity index 100% rename from src/content/translations/fa/guides/how-to-use-a-bridge/index.md rename to public/content/translations/fa/guides/how-to-use-a-bridge/index.md diff --git a/src/content/translations/fa/guides/how-to-use-a-wallet/index.md b/public/content/translations/fa/guides/how-to-use-a-wallet/index.md similarity index 100% rename from src/content/translations/fa/guides/how-to-use-a-wallet/index.md rename to public/content/translations/fa/guides/how-to-use-a-wallet/index.md diff --git a/src/content/translations/fa/guides/index.md b/public/content/translations/fa/guides/index.md similarity index 100% rename from src/content/translations/fa/guides/index.md rename to public/content/translations/fa/guides/index.md diff --git a/src/content/translations/fa/learn/index.md b/public/content/translations/fa/learn/index.md similarity index 100% rename from src/content/translations/fa/learn/index.md rename to public/content/translations/fa/learn/index.md diff --git a/public/content/translations/fa/nft/index.md b/public/content/translations/fa/nft/index.md new file mode 100644 index 00000000000..67945d69c77 --- /dev/null +++ b/public/content/translations/fa/nft/index.md @@ -0,0 +1,94 @@ +--- +title: توکن‌های معاوضه‌ناپذیر (NFTها) +description: نگاهی کلی به NFTها در اتریوم +lang: fa +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: لوگوی اتر که با هولوگرام نمایش داده شده‌ است. +summaryPoint1: راهی برای نمایش دادن هر چیز بی‌همتا به‌عنوان یک دارایی مبتنی بر اتریوم. +summaryPoint2: "‏NFTها به تولیدکنندگان محتوا بیش از هر زمان دیگر قدرت می‌دهند." +summaryPoint3: با پشتیبانی قراردادهای هوشمند روی زنجیره‌ بلوکی اتریوم. +--- + +## NFT ها چه هستند? {#what-are-nfts} + +NFTها هر یک به صورت جداگانه منحصر به فرد هستند. هر NFT ویژگی های متفاوتی دارد (non-fungible) و این دلیلی بر کمیاب بودن آن است. این با توکن های دیگر مثل ERC-20 که در آن همه توکن هایی که در یک مجموعه هستند همسان اند و ویژگی های یکسانی دارند، متفاوت است ('fungible'). برای شما مهم نیست که دقیقا کدام اسکناس دلار در کیف پول‌تان است، زیرا همه آنها یکسان هستند و ارزش یکسانی دارند. با این حال، شما به اینکه کدام NFT خاص را دارید _اهمیت_ می‌دهید، زیرا هر کدام از آن ها مشخصات متفاوتی دارند که آن ها را نسبت به بقیه متمایز می‌کنند ('non-fungible'). + +منحصر به فرد بودن هر NFT امکان توکنیزه کردن چیزهایی مانند آثار هنری، اشیاء کلکسیونی یا حتی املاک و مستغلات را فراهم می‌کند؛ به این صورت یک NFT منحصر به فرد، برخی از اقلام خاص دنیای واقعی یا دیجیتالی را نمایندگی می‌کند. مالکیت یک دارایی توسط بلاکچین اتریوم تضمین می‌شود – هیچ‌کس نمی‌تواند سابقه‌ مالکیت را تغییر دهد یا یک NFT جدید را با کپی/پیست به وجود بیاورد. + + + +## اینترنت دارایی‌ها {#internet-of-assets} + +NFTها و اتریوم برخی از مشکلاتی را که امروزه در اینترنت وجود دارد حل می‌کنند. همان‌طور که همه‌چیز دیجیتالی‌تر می‌شود، نیاز به همتاسازی ویژگی‌های اقلام فیزیکی مانند نادر بودن، منحصربه‌فرد بودن و اثبات مالکیت وجود دارد، به شکلی که توسط هیچ سازمان متمرکزی کنترل نشود. برای مثال، با NFTها، شما میتوانید صاحب یک قطعه موسیقی که مخصوص اپلیکیشن موسیقی یک شرکت خاص نیست باشید، یا می‌توانید مالک نام کاربری شبکه اجتماعی خود باشید و این توانایی را داشته باشید که آن را بفروشید و یا معاوضه کنید، درحالی که ارائه دهنده پلتفرم نمی‌تواند آن را خودسرانه از شما بگیرد. + +اینترنت NFTها در مقایسه با اینترنت امروزی که اکثر ما استفاده می کنیم چنین به نظر می‌رسد... + +### یک مقایسه {#nft-comparison} + +| یک اینترنت NFT | اینترنت امروزی | +| -------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| شما مالک دارایی هایتان هستید! فقط شما می‌توانید آنها را بفروشید و یا مبادله کنید. | شما یک دارایی را از یک سازمان اجاره می‌کنید. | +| NFTها از نظر دیجیتالی منحصر به فرد هستند و هرگز دو NFT یکسان وجود ندارد. | یک نسخه کپی از یک موجودیت اغلب نمی‌تواند از نسخه اصلی تشخیص داده شود. | +| گواهی مالکیت یک NFT بر روی بلاکچین ذخیره می‌شود و قابل تایید همگان است. | سوابق مالکیت اقلام دیجیتال در سرورهایی که توسط سازمان ها کنترل می‌شوند ذخیره می‌شود - شما باید حرف آنها را قبول کنید. | +| NFTها قراردادهای هوشمند روی اتریوم هستند. یعنی آنها به راحتی می‌توانند در دیگر قراردادهای هوشمند و اپلیکیشن‌های غیرمتمرکز روی اتریوم استفاده شوند! | شرکت‌ های دارای اقلام دیجیتال، معمولا به زیرساخت اختصاصی «محدود و بسته» خود نیاز دارند. | +| سازندگان محتوا می‌توانند آثار خود را در هر جا بفروشند و می‌توانند به یک بازار جهانی دسترسی داشته باشند. | سازندگان به زیرساخت و توزیع پلتفرم‌هایی که استفاده می‌کنند متکی هستند. این‌ها اغلب مشمول شرایط استفاده و محدودیت‌های جغرافیایی هستند. | +| سازندگان NFT می‌توانند حقوق مالکیت کار خود را حفظ کنند و حق امتیاز را مستقیماً در قرارداد هوشمند NFT برنامه ریزی کنند. | پلتفرم‌هایی مانند سرویس‌های پخش موسیقی، اکثر سود حاصل از فروش را از آن خود می‌کنند. | + +## NFTها چگونه کار می‌کنند؟ {#how-nfts-work} + +مانند هر توکن دیگری که روی اتریوم ساخته می‌شود،NFTها هم توسط قراردادهای هوشمند ساخته میشوند. قرارداد هوشمند با یکی از چندین استاندارد NFT (معمولا ERC-1155 یا ERC-721) مطابقت دارد که مشخص می‌کند قرارداد هوشمند دارای چه توابعی است. قرارداد هوشمند می‌تواند NFT بسازد (ضرب کند) و آن را به یک مالک خاص اختصاص دهد. مالکیت در قرارداد هوشمند و از طریق نگاشت هر NFT به یک آدرس خاص تعیین میشود. هر NFT دارای یک ID و معمولاً ابرداده مرتبط با آن است که توکن خاص را منحصر به فرد می‌کند. + +هنگامی که شخصی یک NFT ایجاد یا ضرب می‌کند، در واقع در حال اجرای یک تابع در قرارداد هوشمند است که یک NFT خاص را به آدرس او اختصاص می دهد. این اطلاعات در حافظه قراداد ذخیره می‌شود، که قسمتی از بلاکچین است. سازنده قرارداد می‌تواند منطق اضافه ای در قرارداد بنویسد، به عنوان مثال محدود کردن تعداد توکن قابل تامین یا تعریف حق امتیازی که با هر بار انتقال توکن، به سازنده پرداخت شود. + +## NFTها برای چه مواردی مورد استفاده قرار می‌گیرند؟ {#nft-use-cases} + +NFTها کاربرد بسیاری دارند، از جمله: + +- اثبات اینکه شما در یک رویداد شرکت کرده اید +- گواهی این که شما دوره ای را گذرانده اید +- آیتم های قابل مالکیت در بازی ها +- هنر دیجیتال +- توکنیزه کردن دارایی های دنیای واقعی +- اثبات هویت دیجیتالی شما +- دریچه دسترسی به محتوا +- صدور بلیت +- نام دامنه های اینترنتی غیرمتمرکز +- وثیقه در امور مالی غیر متمرکز (DeFi) + +شاید شما هنرمندی هستید که می‌خواهید با استفاده از NFT، بدون از دست دادن کنترل و سودتان به واسطه ها، آثارتان را به اشتراک بگذارید. میتوانید قرارداد هوشمند جدیدی بسازید و تعداد NFT ها، مشخصات آن ها و لینک مربوط به یک کار هنری خاص را مشخص کنید. به عنوان یک هنرمند، شما می‌توانید حق امتیاز قابل پرداخت خود را در قرارداد هوشمند برنامه نویسی کنید (به عنوان مثال انتقال 5 درصد قیمت فروش به صاحب قرارداد، هر بار که یک NFT منتقل میشود). همچنین همیشه میتوانید ثابت کنید که شما سازنده NFTها هستید به این خاطر که مالک کیف پولی هستید که قرارداد را منتشر کرده است. خریداران شما به راحتی میتوانند اصالت NFT را که از مجموعه شما خریداری کرده اند اثبات کنند به این خاطر که کیف پول آنها به یکی از توکن ها در قرارداد هوشمند شما منتسب شده است. آنها میتوانند با خیالی آسوده نسبت به اصالت NFT شان، از آن توکن در سراسر اکوسیستم اتریوم استفاده کنند. + +و یا، بلیت یک رویداد ورزشی را در نظر بگیرید. درست همان‌طور که برگزارکننده‌ یک رویداد می‌تواند انتخاب کند که چند بلیت بفروشد، خالق یک NFT نیز می‌تواند تصمیم بگیرد که چه تعداد کپی وجود داشته باشد. گاهی این‌ها کپی‌هایی کاملاً شبیه به هم هستند، مانند 5000 بلیت پذیرش عمومی. گاهی اوقات چندین عدد ضرب می‌شود که بسیار شبیه به هم هستند، اما هر یک با دیگری کمی تفاوت دارد؛ مانند بلیت یک صندلی اختصاصی. بلیت ها را میتوان به شکل همتا به همتا و بدون نیاز به واسطه خرید و فروش کرد و خریدار همیشه میتواند اصالت بلیت ها را با چک کردن اعتبار آدرس قرارداد چک کند. + +در Ethereum.org، از NFTها برای نشان دادن مشارکت اعضا در GitHub ما یا شرکت در دورهمی ها استفاده میشود، و ما حتی دامنه NFT خودمان را داریم. اگر در ethereum.org مشارکت کنید، می‌توانید درخواست یک POAP NFT کنید. بعضی دورهمی های کریپتویی از PAOPها به عنوان بلیت استفاده کرده‌اند. [اطلاعات بیشتر در مورد مشارکت](/contributing/#poap). + +![ethereum.org POAP](./poap.png) + +همچنین این وبسایت یک دامنه جایگزین دارد که توسط NFTها پشتیبانی می‌شوند، **ethereum.eth**. آدرس `.org` ما اساساً توسط یک ارائه‌دهنده‌ سیستم نام دامنه (DNS) مدیریت می‌شود، در حالی که ethereum`.eth` از طریق سرویس نام اتریوم (ENS) در اتریوم ثبت شده‌ است. و تحت مالکیت و مدیریت ما است. [اطلاعات ENS ما را بررسی کنید](https://app.ens.domains/name/ethereum.eth) + +[اطلاعات بیشتر درباره‌ ENS](https://app.ens.domains) + + + +### امنیت NFT {#nft-security} + +امنیت اتریوم از اثبات سهام ناشی می‌شود. این سیستم به گونه‌ای طراحی شده است که از لحاظ اقتصادی از اقدامات خرابکارانه جلوگیری کند و اتریوم را ضد دستکاری کند. این همان چیزی است که NFT را ممکن می‌کند. هنگامی که بلوک حاوی تراکنش NFT شما نهایی شود، تغییر آن برای مهاجم، میلیون‌ها اتر هزینه خواهد داشت. هرکس که نرم‌افزار اتریوم را اجرا می‌کند، فوراً می‌تواند دستکاری خرابکارانه در NFT را تشخیص دهد و طرف خرابکار از نظر اقتصادی جریمه خواهد شد و اخراج می‌شود. + +مسائل امنیتی مربوط به NFTها اغلب به کلاهبرداری‌های فیشینگ، آسیب‌پذیری‌های قرارداد هوشمند یا خطاهای کاربر (مانند افشای ناخواسته کلیدهای خصوصی) مربوط می‌شود، که امنیت خوب برای کیف پول را برای دارندگان NFT ضروری می‌کند. + + + اطلاعات بیشتر در مورد امنیت + + +## بیشتر بخوانید {#further-reading} + +- [راهنمای NFT برای مبتدیان](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _لیندا ژی، ژانویه 2020_ +- [ردیاب EtherscanNFT](https://etherscan.io/nft-top-contracts) +- [استاندارد توکن ERC-721](/developers/docs/standards/tokens/erc-721/) +- [استاندارد توکن ERC-1155](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/public/content/translations/fa/refi/index.md b/public/content/translations/fa/refi/index.md new file mode 100644 index 00000000000..8f42fedb2d9 --- /dev/null +++ b/public/content/translations/fa/refi/index.md @@ -0,0 +1,79 @@ +--- +title: امور مالی بازتولیدکننده (ReFi) +description: مروری بر ReFi و موارد استفاده فعلی آن. +lang: fa +template: use-cases +emoji: ":recycle:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: یک سیستم اقتصادی جایگزین ساخته شده بر پایه اصول بازتولیدکننده +summaryPoint2: تلاشی برای استفاده از اتریوم برای حل چالش های هماهنگی در سراسر جهان مثل تغییرات آب و هوایی +summaryPoint3: ابزاری برای مقیاس‌پذیری قابل توجه دارایی های سودمند زیست محیطی مانند اعتبارات کربن تایید شده +--- + +## Refi چیست؟ {#what-is-refi} + +**امور مالی بازتولیدکننده (ReFi)**مجموعه ای از ابزار ها و ایده ها است که بر روی بستر بلاکچین ساخته شده اند که هدف آن تولید اقتصادهایی است که بازتولیدکننده باشند، نه استخراجی یا استثمارگر. در نهایت، سیستم های استخراجی منابع موجود را استفاده کرده و از بین می برند که بدون هیچگونه ساز و کار بازتولیدکننده، فاقد قدرت خواهند بود. عملکرد ReFi بر این پنداشت است که ایجاد ارزش پولی باید از استخراج ناپایدار منابع از سیاره و از جوامع ما جدا شود. + +در عوض، هدف ReFi حل مشکلات محیط زیستی، همگانی، یا اجتماعی به وسیله ایجاد چرخه های بازتولیدکننده می باشد. این سیستم ها در حالی که برای شرکت کنندگان ارزش تولید می کنند، به طور همزمان به اکوسیستم ها و جوامع هم سود می رسانند. + +یکی از پایه های ReFi مفهوم اقتصاد بازتولیدکننده است که توسط جان فولرتون از [موسسه کاپیتال](https://capitalinstitute.org) مطرح شد. او 8 اصل به هم پیوسته را که زیربنای سلامت سیستماتیک را تشکیل می دهند پیشنهاد کرد: + +![هشت اصل به هم پیوسته](./refi-regenerative-economy-diagram.png) + +پروژه های Refi این اصول را هنگام استفاده از [قرارداد های هوشمند](/developers/docs/smart-contracts/) و اپلیکیشن‌های[ سیستم های مالی غیر متمرکز (DeFi)](/defi/) به عنوان محرکی برای رفتارهای بازتولیدکننده به کار می گیرند. به عنوان مثال احیا اکوسیستم های تنزل یافته و تقویت همکاری ها در مقیاس بزرگ برای مسائل جهانی مانند تغییرات آب و هوا و تقلیل تنوع زیستی جانوری. + +ReFi همچنین با جنبش [دانش غیرمتمرکز (DeSci)](/desci/) همپوشانی دارد، که از اتریوم به عنوان پلتفرمی برای فراهم کردن سرمایه، تولید کردن، بررسی کردن، اعتبار دادن، ذخیره کردن، و منتشر کردن دانش علمی استفاده می کند. ابزارهای DeSci می توانند برای توسعه استاندارد ها و شیوه های تحقیق پذیر برای اجرا کردن و نظارت کردن بر فعالیت های بازتولیدکننده مانند کاشتن درختان، جمع‌آوری پلاستیک از اقیانوس، یا احیای یک اکوسیستم تخریب شده مفید باشند. + +## توکنیزه کردن اعتبارات کربنی {#tokenization-of-carbon-credits} + +**[بازار داوطلبانه کربن (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** مکانیزمی است برای تامین مالی پروژه هائی که تاثیر مثبت تایید شده ای بر انتشار کربن می گذارند؛ یا مداوم انتشارشان را کاهش می دهند، یا گاز های گل خانه ای را که قبلا در جو منتشر شده اند حذف می‌کنند. پس از تایید این پروژه ها، آن ها یک دارائی به نام "اعتبارات کربن" دریافت می کنند، که می توانند آن ها را به افراد و سازمان هایی که میخواهند از اقدامات آب و هوایی حمایت کنند بفروشند. + +علاوه بر VCM، چندین بازار کربن دستوری از طرف دولت («بازارهای سازگاری) وجود دارد که هدف آن ها تعیین قیمت کربن از طریق قوانین و مقررات در یک حوزه قضایی بخصوص (مثلا در یک کشور یا منطقه)، جهت کنترل صدور مجوزهایی است که باید توزیع شوند. بازارهای سازگاری، در حوزه حقوقی خود، آلایندگان را جهت کاهش انتشار گاز های گلخانه ای تشویق می کنند، اما قادر به پاک کردن گاز های گلخانه ای از قبل منتشر شده نیستند. + +علی رقم توسعه آن در دهه های اخیر، VCM هنوز با چالش های متعددی مواجه است: + +1. پراکندگی زیاد نقدینگی +2. مکانیزم های غیر شفاف تراکنش +3. هزینه های بالا +4. سرعت بسیار پایین معاملات +5. عدم مقیاس پذیری + +انتقال VCM به **بازار جدید کربن دیجیتال (DCM)** مبتنی بر بلاک چین ممکن است شانسی برای ارتقا دادن تکنولوژی موجود برای معتبر ساختن، معامله کردن و مصرف کردن اعتبارات کربن باشد. بلاکچین‌ها به داده های قابل تایید عمومی اجازه دسترسی برای طیف گسترده ای از کاربرها، و نقدینگی بیشتر را می دهند. + +پروژه های Refi با به کار گیری تکنولوژی بلاکچین تعداد زیادی از مشکلات بازار های سنتی را تسهیل می کنند: + +- ** نقدینگی در تعداد محدودی از استخر های نقدینگی متمرکز شده است** که هر شخص می تواند آزادانه آن را مبادله کند. تشکیلات بزرگ همانند اشخاص می توانند از این استخر های نقدینگی بدون جستجوی دستی فروشندگان و خریداران، پرداخت هزینه های مشارکت یا هزینه ثبت نام، استفاده کنند. +- **تمامی تراکنش ها به روی بلاکچین‌های عمومی ثبت می شوند**. مسیری که هر یک از اعتبارات کربن جهت فعالیت مبادله طی می کند، به محض در دسترس بودن در DCM برای همیشه قابل ردیابی خواهد بود. +- **سرعت تراکنش تقریبا آنی می باشد**. تامین مقادیر زیاد اعتبارات کربن از طریق بازارهای ارثی می تواند چندین روز یا هفته به طول بینجامد، در حالی که از طریق DCM در عرض چند ثانیه میسر خواهد بود. +- **فعالیت مبادله تجاری بدون هرگونه واسطه انجام می گیرد**، که کارمزد بالایی را درخواست می کنند. به توجه به داده های یک شرکت تحلیلی، اعتبارهای کربن دیجیتال باعث [ بهبود 62% هزینه نسبت به اعتبار های کربن سنتی](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne) میشود. +- **DCM مقیاس پذیز است** و میتواند هم نیاز اشخاص و هم سازمان های بین المللی را بر طرف کند. + +### اجزای کلیدی DCM {#key-components-dcm} + +چشم انداز فعلی DCM شامل چهار جزء اصلی است: + +1. سازمان ها یا سیستم هایی مانند [Verra](https://verra.org/project/vcs-program/registry-system/) و [ Gold Standard](https://www.goldstandard.org/) از قابل اعتماد بودن پروژه هایی که اعتبارات کربن تولید می کنند اطمینان حاصل می کنند. آنها همچنین پایگاه های اطلاعاتی را مدیریت می کنند که اطلاعات کربن دیجیتال از آن ها منشأ می گیرد و می تواند منتقل یا مصرف شود (بازنشسته). + +موج جدیدی از پروژه های نوآورانه در حال ساخت بر روی بلاکچین‌ها وجود دارد که در حال تلاش برای ایجاد اختلال برای متصدیان در این بخش هستند. + +2. پل های کربنی، با نام مستعار مبدل توکن های دیجیتال، یک فناوری برای نمایش دادن یا انتقال اعتبارات کربن از سازمان های قدیمی به DCM را فراهم می کنند. مثال های قابل توجه شامل [Toucan Protocol](https://toucan.earth/)، [C3](https://c3.app/)، و [Moss.Earth](https://moss.earth/) می شوند. +3. خدمات یکپارچه، اجتناب کربن و/یا حذف اعتبارات را به کاربران نهایی ارائه می کند بنابراین آن ها می توانند اعتبار مزایای زیست محیطی را مطالبه کنند و حمایت خود را از اقدامات آب و هوایی را با دنیا به اشتراک بگذارند. + +بعضی شرکت ها مثل [کلیما اینفینیتی (Klima Infinity)](https://www.klimadao.finance/infinity) و [سنکن (Senken)](https://senken.io/) طیف گسترده ای از پروژه های توسعه یافته توسط شرکت های ثالت و اعتبار کربن صادر شده زیر نظر استاندارد هایی مثل Verra را ارائه میدهند؛ دیگران مثل [نوری (Nori)](https://nori.com/) تنها پروژه های خاص را که زیر نظر استاندارد خودشان توسعه یافته اند ارائه میدهند، که صادر کننده اعتبار کربن خودشان هستند و برای هر کدام بازارچه مخصوص به خود را دارند. + +4. چارچوب و زیرساخت اساسی که امکان مقیاس‌پذیری اثربخشی و بازده کل زنجیره تامین را در بازار کربن فراهم می کند. [KlimaDAO](http://klimadao.finance/) نقدینگی را به عنوان کالای عمومی تامین می‌کند (امکان خرید یا فروش اعتبار کربن با قیمتی شفاف را برای هر کس فراهم میکند)، مشوق برای افزایش فعالیت در بازارهای کربن و بازنشستگی اعتبارات را از طریق پاداش‌ها، و ابزارهای ساده و هم‌تراز برای دسترسی به اطلاعات و همچنین به‌دست آوردن و بازنشستگی طیف گسترده‌ای از اعتبارات کربن توکن‌سازی‌شده فراهم می‌کند. + +## Refi فراتر از بازارهای کربن {#refi-beyond} + +با اینکه هم اکنون تاکید زیادی روی بازارهای کربن به طور کلی، و به خصوص انتقال VCM به DCM در این حوزه وجود دارد، Refi به کربن محدود نمیشود. دیگر دارایی‌های زیست‌محیطی فراتر از اعتبارات کربن هم میتوانند توسعه و توکنیزه شوند، که امکان گنجاندن سایر اثرات جانبی نامطلوب را در سطوح پایه ای سیستم‌های اقتصادی آینده فراهم می‌کند. علاوه بر این، جنبه بازتولیدکنندگی این مدل اقتصادی را میتوان برای سایر بخش نیز بکار برد مثل تامین سرمایه کالاهای عمومی از طریق پلتفرم های تامین مالی درجه دوم مثل [گیتکوین](https://gitcoin.co/). سازمان هایی که بنیاد آن ها بر اساس ایده مشارکت آزاد و توزیع منصفانه منابع نهادینه شده است همه را قادر می‌سازند سرمایه ها را به سمت پروژه های نرم افزاری منبع-باز، و نیز پروژه‌های آموزشی، محیط زیستی و پروژه های جامعه محور سرازیر کنند. + +با تغییر مسیر جریان سرمایه از فعالیت‌های استخراجی به سوی جریان بازتولیدکننده، پروژه‌ها و شرکت‌هایی که مزایای اجتماعی، زیست محیطی یا محلی ارائه می‌کنند - و ممکن است در سیستم سنتی تامین سرمایه ناموفق باشند - می‌توانند از جا بلند شوند و تأثیرات مثبت جانبی را برای جامعه به شکل سریع‌تر و آسان‌تر ایجاد کنند. انتقال به این نوع تأمین سرمایه، همچنین فرصتی برای ایجاد سیستم‌های اقتصادی فراگیر ایجاد می‌کند که در آنها افراد همه بافت‌های جمعیتی می‌توانند به صورت فعال مشارکت کنند، به جای اینکه فقط به طور غیرفعال ناظر باشند. ReFi چشم اندازی از اتریوم را ارائه میدهد که از آن به عنوان مکانیسمی برای هماهنگی مقابله با چالش‌های پیش روی ما و حیات روی سیاره‌‌مان استفاده میشود- به عنوان لایه پایه‌ای یک پارادایم اقتصادی جدید در آینده، این مکانیسم یک آینده فراگیرتر و پایدارتر برای قرون آینده را ممکن می‌سازد. + +## مطالعه بیشتر درباره ReFi + +- [نگاه کلی به ارز های کربن و جایگاه آنها در اقتصاد](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) +- [وزارت آینده، رمانی که نقش ارزهای دارای پشتوانه کربن در مقابله با تغییرات اقلیمی را شرح می‌دهد](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) +- [یک گزارش مفصل از سوی Taskforce for Scaling Voluntary Carbon Markets](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) +- [توضیح واژه نامه CoinMarketCap از Kevin Owocki و Evan Miyazono درباره ReFi](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/public/content/translations/fa/roadmap/beacon-chain/index.md b/public/content/translations/fa/roadmap/beacon-chain/index.md new file mode 100644 index 00000000000..d872117ce5a --- /dev/null +++ b/public/content/translations/fa/roadmap/beacon-chain/index.md @@ -0,0 +1,68 @@ +--- +title: زنجیره بیکن +description: در مورد زنجیره‌ی بیکن یاد بگیرید - ارتقایی که اثبات سهام را برای اتریوم به ارمغان می‌آورد. +lang: fa +template: upgrade +image: /upgrades/core.png +alt: +summaryPoint1: زنجیره‌ی بیکن هیچ چیز مربوط به اتریومی را که امروزه استفاده می‌کنیم، تغییر نمی‌دهد. +summaryPoint2: بلکه شبکه را متناسب کرده و به عنوان یک لایه اجماع عمل می‌کند. +summaryPoint3: اثبات سهام را به اکوسیستم اتریوم وارد می‌کند. +summaryPoint4: احتمالاً شما آن را در نقشه راه فنی تحت عنوان "فاز ۰" می شناسید. +--- + + + زنجیره بیکن در 1 دسامبر 2020، رأس ساعت 12 ظهر به وقت ساعت هماهنگ جهانی آغاز به کار کرد. برای یادگیری بیشتر، این داده ها را بکاوید. اگر می‌خواهید به اعتبارسنجی زنجیره کمک کنید، می‌توانید اتر خود را سهام‌گذاری کنید. + + +## زنجیره بیکن چه می‌کند؟ {#what-does-the-beacon-chain-do} + +زنجیره‌ی بیکن شبکه‌ی بسط‌یافته [خرده‌زنجیره‌ها](/roadmap/danksharding/) و [سهام‌گذارها](/staking/) را هدایت یا هماهنگ می‌کند. اما نظیر[شبکه اصلی اتریوم](/glossary/#mainnet) امروز نخواهد بود. قابلیت استفاده از حساب های کاربری و قرارداد های هوشمند را ندارد. + +نقش زنجیره‌ی بیکن در طی زمان تغییر می‌کند اما همچنان عنصری بنیادین برای [ اتریوم امن، پایدار و مقیاس پذیری که اکنون داریم به سویش پیش می‌رویم](/roadmap/vision/) باقی می‌ماند. + +## ویژگی های زنجیره بیکن {#beacon-chain-features} + +### درباره سهام گذاری {#introducing-staking} + +زنجیره بیکن ویژگی [اثبات مالکیت سهام](/developers/docs/consensus-mechanisms/pos/) را به اتریوم اضافه می‌ کند. این یک روشی جدید برای شماست که اتریوم را امن نگه دارید. از این روش می توان به عنوان چیزی عام المنفعه یاد کرد که قرار است اتریوم را سالم تر کند و در طی این فرایند اتر بیشتری را نصیب شما کند. در عمل این روش شما را وارد سهام گذاری اتر برای فعال سازی نرم افزار اعتبارسنج خواهد کرد. به عنوان اعتبارسنج، شما تراکنش ها را پردازش خواهید کرد و بلوک های جدیدی را در زنجیره خواهید ساخت. + +سهام گذاری و اعتبارسنج شدن آسان تر از [استخراج](/developers/docs/mining/) است (که در حال حاضر شبکه با آن امن شده است). و امیدواریم که این روش در دراز مدت، به ایمن تر کردن اتریوم کمک کند. هر چه افراد بیشتری در شبکه مشارکت کنند، شبکه نسبت به حملات ایمن تر و غیرمتمرکزتر خواهد شد. + + +اگر به اعتبارسنج شدن و کمک به ایمن‌سازی شبکه‌ی بیکن علاقمند دارید، درباره سهام‌گذاری بیشتر بدانید. + + +این موضوع هم‌چنین تغییری مهم برای ارتقای دیگری است: [خرده‌زنجیره‌ها](/roadmap/danksharding/). + +### راه اندازی زنجیره های شارد {#setting-up-for-shard-chains} + +بعد از ادغام شدن شبکه اصلی و زنجیره بیکن، ارتقای بعدی زنجیره شارد را به شبکه اثبات مالکیت سهام معرفی می‌کند. این زنجیره های "شارد" ظرفیت شبکه را افزایش می‌دهند و با توسعه شبکه به 64 زنجیره بلوکی سبب افزایش سرعت تراکنش ها می‌ شوند. زنجیره بیکن اولین قدم مهم در معرفی زنجیره های شارد است، چرا که این زنجیره ها برای عملکرد ایمن نیاز به سهام گذاری دارند. + +در نهایت زنجیره بیکن مسئولیت اختصاص دادن تصادفی سهام گذار ها را به اعتبارسنج ها در زنجیره های شارد نیز خواهد داشت. این امر در دشوار کردن تبانی و تصاحب زنجیره های شارد توسط سهام گذار ها نقش کلیدی دارد. خب، این یعنی آنها [شانسی کمتر از 1 در هزار میلیارد](https://medium.com/@chihchengliang/minimum-committee-size-explained-67047111fa20) خواهند داشت. + +## ارتباط میان ارتقاها {#relationship-between-upgrades} + +تمام ارتقاهای اتریوم تا حدودی با یکدیگر مرتبط هستند. پس بیایید دوباره خلاصه کنیم که زنجیره بیکن چگونه بر سایر ارتقاها تأثیر می‌گذارد. + +### شبکه اصلی و زنجیره بیکن {#mainnet-and-beacon-chain} + +زنجیره بیکن ابتدا، به شکل جدا از شبکه اصلی اتریوم که امروزه استفاده می‌کنیم وجود خواهد داشت. اما در نهایت با هم ادغام خواهند شد. نقشه این است که شبکه اصلی با سیستم گواهی اثبات مالکیت سهام "ادغام" شود، این کار ازطریق زنجیره بیکن هدایت و تنظیم می‌ شود. + + + ادغام + + +### زنجیره های شارد و زنجیره بیکن {#shards-and-beacon-chain} + +زنجیره های شارد تنها می‌توانند با داشتن یک مکانیسم توافق مجموعه اثبات مالکیت سهام به شکل ایمن وارد اکوسیستم اتریوم شوند. زنجیره بیکن سهام گذاری را معرفی خواهد کرد، که راه را برای ارتقای رنجیره های شارد هموار خواهد کرد. + + + زنجیره های شارد + + + + +## تعامل با زنجیره بیکن {#interact-with-beacon-chain} + + diff --git a/public/content/translations/fa/roadmap/merge/index.md b/public/content/translations/fa/roadmap/merge/index.md new file mode 100644 index 00000000000..3efdc5f95b6 --- /dev/null +++ b/public/content/translations/fa/roadmap/merge/index.md @@ -0,0 +1,68 @@ +--- +title: ادغام +description: درباره‎ ادغام بدانید - زمانی که شبکه‌ی اصلی اتریوم به سیستم اثبات سهامی می‌پیوندد که توسط زنجیره‌ی بیکن هماهنگ شده‌است. +lang: fa +template: upgrade +image: /upgrades/merge.png +alt: +summaryPoint1: سرانجام شبکه اصلی کنونی اتریوم با سیستم گواهی اثبات سهام زنجیره بیکن "ادغام" خواهد شد. +summaryPoint2: این نشانگر پایان گواهی کار و انتقال کامل به سیستم گواهی اثبات سهام برای اتریوم خواهد بود. +summaryPoint3: برنامه ریزی شده که ادغام پیش از رونمایی از زنجیره های شارد انجام شود. +summaryPoint4: ما پیش تر به این کار "داکینیگ" می‌ گفتیم. +--- + + + این ارتقا تغییر رسمی به سمت توافق گواهی اثبات سهام را نشان می‌دهد. این تغییر به انرژی بیشتری برای استخراج نیاز ندارد، در عوض سبب امن شدن شبکه از طریق سهام گذاری اتر می‌ شود. قدمی به‌واقع هیجان‌انگیز در راه تحقق چشم انداز اتریوم - مقیاس‌پذیری، امنیت، و پایداری بیشتر. + + +## ادغام چیست؟ {#what-is-the-docking} + +مهم است که به خاطر داشته باشیم که در ابتدا، [زنجیره‌ی بیکن](/roadmap/beacon-chain/) از [شبکه‌ی اصلی](/glossary/#mainnet) جدا شد - زنجیره‌ای که امروز از آن استفاده می‌‌کنیم. تأمین امنیت شبکه اصلی اتریوم همچنان ازطریق [گواهی کار](/developers/docs/consensus-mechanisms/pow/) انجام خواهد شد، حتی زمانی که زنجیره بیکن با استفاده از [گواهی اثبات سهام](/developers/docs/consensus-mechanisms/pos/) به صورت موازی اجرا می شود. ادغام زمانی است که این دو سیستم به یکدیگر می‌پیوندند. + +فرض کنید اتریوم یک سفینه فضاییست که برای ماجراجویی نجومی خود هنوز کاملاً آماده نشده است. با زنجیره بیکن، جامعه یک موتور تازه با بدنه قوی ساخته است. وقتی که زمانش برسد، سفینه فعلی به این سیستم جدید متصل و به یک سفینه ادغام می‌ شوند، آماده حرکت کردن برای سال های نوری به سمت کهکشان می‌ شود. + +## ادغام کردن شبکه اصلی {#docking-mainnet} + +زمانی که آماده شود، شبکه اصلی اتریوم با زنجیره بیکن "ادغام" می‌ شود، و به شارد خودش تبدیل می‌ شود که از گواهی اثبات سهام به جای [گواهی کار](/developers/docs/consensus-mechanisms/pow/) استفاده می‌ کند. + +شبکه اصلی برای حصول اطمینان از انتقال روان همه کاربران و دارندگان اتر، امکان اجرای قراردادهای هوشمند را علاوه بر تمام تاریخچه و وضعیت کنونی اتریوم در سیستم گواهی اثبات سهام فراهم خواهد کرد. + +## پس از ادغام {#after-the-merge} + +این نشانگر پایان گواهی کار برای اتریوم و آغاز عصر اتریومی پایدارتر و سازگارتر با محیط زیست خواهد بود. در این نقطه اتریوم یک قدم به دستیابی به مقیاس کامل، امنیت، و تاب‌آوری بیشتر که در [چشم‌انداز اتریوم 2](/roadmap/vision/) به آن اشاره شده است، نزدیک می‌‌شود. + +این نکته نیز مهم است که هدف اجرای عملیات ادغام، ساده‌‌سازی و تسریع انتقال از اثبات کار به اثبات سهام است. توسعه‌دهندگان در حال تمرکز بر روی تراکنشها، و کاهش ویژگی های جدیدی که سبب تاخیر در رسیدن به این هدف می‌شود، هستند. + +**این به این معنی هست که معدودی از ویژگی‌ها، مانند توانایی عقب‌نشینی سهام‌گذاری اتر باید کمی صبر کنند تا این ادغام تمام شود.** طبق برنامه‌ریزی یک «پاک‌سازی» ارتقا پس از ادغام برای پاسخ‌گویی به این ویژگی‌ها باید انجام شود، که قرار است خیلی زود بعد از ادغام اتفاق بیفتد. + +## ارتباط میان ارتقا‌ها {#relationship-between-upgrades} + +تمام ارتقاهای اتریوم تا حدودی با یکدیگر مرتبط هستند. پس بیایید نحوه‌ی ارتباط ادغام با سایر ارتقاها را مرور کنیم. + +### ادغام و زنجیره‌ی بیکن {#docking-and-beacon-chain} + +زمانی که ادغام اتفاق بیفتد، سهام‌گذاران برای معتبرسازی شبکه‌ی اصلی اتریوم تخصیص داده می‌شوند. دیگر نیازی به [استخراج](/developers/docs/consensus-mechanisms/pow/mining/) نخواهد بود، در نتیجه استخراجگران احتمالاً درآمد خود را در سهام گذاری سیستم جدید گواهی اثبات سهام سرمایه گذاری خواهند کرد. + + + زنجیره بیکن + + +### ادغام و پاک‌سازی پس از ادغام {#merge-and-post-merge-cleanup} + +بلافاصله پس از ادغام، برخی از ویژگی‌‌ها مانند برداشتن اتر سهام‌گذاری‌شده همچنان پشتیبانی نخواهند شد. این‌ موارد برای ارتقای جداگانه‌ای پس از پروژه‌ی ادغام برنامه‌ریزی شده‌اند. + +با [وبلاک توسعه و تحقیقات بنیاد اتریوم](https://blog.ethereum.org/category/research-and-development/) بروز بمانید. افراد کنجکاو می‌توانند [چه اتفاقی پس از ادغام می‌افتد](https://youtu.be/7ggwLccuN5s?t=101) که توسط ویتالیک در رویداد جهانی اتر در آوریل 2021 ارائه شده است را مشاهده کنند. + +### ادغام و خرده‌زنجیره‌‌ها {#docking-and-shard-chains} + +در ابتدا، برنامه این بود که روی خرده‌زنجیره‌ها قبل از ادغام کار شود - تا به نیاز مقیاس‌پذیری پاسخ داده شود. اما، با رشد چشمگیر [راه‌حل‌های لایه‌ی 2 مقیاس‌پذیری](/developers/docs/scaling/#layer-2-scaling)، اولویت به سمت تعویض اثبات سهام با اثبات کار تغییر کرده است. + +این یک ارزیابی مداوم از جامعه برای پاسخ به چندین دوره احتمالی از خده زنجیره های شارد برای امکان پذیر کردن مقیاس پذیری بی نهایت است. + + + زنجیره های شارد + + +## بیشتر بخوانید {#read-more} + + diff --git a/src/content/translations/fa/security/index.md b/public/content/translations/fa/security/index.md similarity index 100% rename from src/content/translations/fa/security/index.md rename to public/content/translations/fa/security/index.md diff --git a/public/content/translations/fa/smart-contracts/index.md b/public/content/translations/fa/smart-contracts/index.md new file mode 100644 index 00000000000..60b654b2e3d --- /dev/null +++ b/public/content/translations/fa/smart-contracts/index.md @@ -0,0 +1,84 @@ +--- +title: قراردادهای هوشمند +description: یک مقدمه‌ی غیرفنی بر قراردادهای هوشمند +lang: fa +--- + +# مقدمه‌ای بر قراردادهای هوشمند {#introduction-to-smart-contracts} + +قرارداد های هوشمند بنیادی‌ترین اجزای سازنده لایه اپلیکیشن اتریوم هستند. آن ها برنامه های کامپیوتری دخیره شده بر روی بستر بلاکچین هستند که از منطق "اگر این بنابراین آن" پیروی می کنند و تضمین می شوند که بر اساس قوانین تعریف شده از سوی کد آن اجرا شوند و زمانی که ایجاد شدند دیگر قابل تغییر نخواهند بود. + +نیک سابو برای اولین بار آن‌ها را «قرارداد هوشمند» نامید. او در سال 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). + +سابو یک بازار دیجیتال را تجسم کرد که در آن فرایندهای خودکار و امن از نظر رمزنگاری، تراکنش ها و وظایف کسب و کار را قادر می‌سازند بدون واسطه های مورد اعتماد رخ دهند. قراردادهای هوشمند در اتریوم به این تجسم جامه‌ عمل می‌پوشانند. + +## اعتماد در قراردادهای متعارف {#trust-and-contracts} + +یکی از بزرگترین مشکلات قراردادهای سنتی، نیاز به افراد مورد اعتماد برای پیگیری نتایج قرارداد است. + +به‌عنوان مثال: + +آلیس و باب مسابقه دوچرخه‌سواری دارند. فرض کنید آلیس با باب 10 دلار شرط می‌بندد که در مسابقه برنده خواهد شد. باب مطمئن است که برنده خواهد بود و با شرط بندی موافقت می کند. در پایان، آلیس مسابقه را خیلی جلوتر از باب به پایان می‌رساند و مشخصاً برنده می‌شود. اما باب از پرداخت مبلغ شرط‌بندی امتناع می‌کند و ادعا می‌کند که آلیس حتماً تقلب کرده است. + +این مثال احمقانه، مشکل هر نوع توافق غیرهوشمند را نشان می‌دهد. حتی اگر شرایط توافق برآورده شود (یعنی شما برنده مسابقه شده باشید)، همچنان باید به شخص دیگری برای اجرای توافق اعتماد کنید (یعنی پرداخت مبلغ شرط‌بندی). + +## یک دستگاه فروش دیجیتال {#vending-machine} + +یک مثال ساده برای قرارداد هوشمند، دستگاه فروش خودکار است که تا حدودی شبیه به قرارداد هوشمند عمل می‌کند - ورودی‌های خاص خروجی‌های از پیش تعیین شده را تضمین می‌کنند. + +- شما یک محصول را انتخاب می‌کنید +- دستگاه فروش خودکار قیمت را نشان می دهد +- شما بهای آن را پرداخت می کنید +- دستگاه فروش خودکار تایید می کند که شما مبلغ درستی را پرداخت کرده اید +- وندینگ ماشین جنس را به شما می دهد + +دستگاه فروش خودکار فقط پس از برآورده شدن تمام الزامات، محصول مورد نظر را به شما می‌دهد. اگر محصولی را انتخاب نکنید یا پول کافی پرداخت نکنید، دستگاه فروش خودکار محصول را به شما تحویل نمی‌دهد. + +## اجرای خودکار {#automation} + +مزیت اصلی قراردادهوشمند این است که زمانی که شرایط مشخص موجود باشد، کد دستوری واضح و غیر مبهم را به طور قطعی اجرا می کند. نیازی نیست منتظر ماند تا انسان نتیجه را تفسیر یا راجع به آن مذاکره کند. این امر، نیاز به واسطه قابل اعتماد را از بین میبرد. + +به‌عنوان مثال، می‌توانید یک قرارداد هوشمند بنویسید که مبلغی را برای یک کودک نزد شخص ثالث نگه دارد و به او اجازه دهد پس از یک تاریخ خاص مبلغ را برداشت کند. اگر سعی کند وجه را قبل از تاریخ مشخص شده برداشت کند، قرارداد هوشمند اجرا نمیشود. یا می‌توانید قراردادی بنویسید که نسخه‌ی دیجیتالی سند خودرو را هنگام پرداخت قیمت معامله به فروشنده به‌طور خودکار به شما بدهد. + +## خروجی‌های قابل پیش‌بینی {#predictability} + +قراردادهای سنتی مبهم هستند زیرا تفسیر و اجرای آنها به عهده انسان است. برای مثال، دو قاضی ممکن است تفسیر متفاوتی از یک قرارداد یکسان داشته باشند،که میتواند منجر به تصمیمات ناسازگار و نتیجه نهایی نابرابر شود. قراردادهای هوشمند این احتمال را از بین میبرند. در عوض، قراردادهای هوشمند دقیقاً بر اساس شرایط نوشته شده در کد قرارداد اجرا می‌شوند. این دقت به این معنی است که در شرایط یکسان، قرارداد هوشمند نتیجه یکسان را به همراه خواهد داشت. + +## سابقه‌ی عمومی {#public-record} + +قراردادهای هوشمند برای حسابرسی و ردیابی مفید هستند. از آنجایی که قراردادهای هوشمند اتریوم بر روی یک بلاکچین عمومی قرار دارند، هر کس می‌تواند فوراً انتقال دارایی‌ها و سایر اطلاعات مرتبط را ردیابی کند. برای مثال، شما میتوانید چک کنید که آیا کسی به آدرس شما پول فرستاده است یا نه. + +## حفاظت از حریم خصوصی {#privacy-protection} + +قراردادهای هوشمند همچنین می‌توانند از حریم خصوصی شما محافظت کنند. از آنجا که اتریوم یک شبکه‌ مستعار است (تراکنش‌های شما به‌صورت عمومی به یک آدرس رمزنگاری منحصربه‌فرد مرتبط هستند، نه هویت شما)، می‌توانید از حریم خصوصی خود در برابر ناظران محافظت کنید. + +## قوانین مشخص {#visible-terms} + +در نهایت، مانند قراردادهای سنتی، شما قبل از امضای قرارداد هوشمند (یا هر نوع تعامل دیگر با آن) می‌توانید محتوای آن را بررسی نمایید. بخاطر شفافیت قراردادهای هوشمند میتوان آنها را موشکافانه بررسی کرد. + +## کاربردهای قراردادهای هوشمند {#use-cases} + +قراردادهای هوشمند اصولاً قادرند هر کاری را که توسط نرم‌افزارهای رایانه‌ای قابل انجام است انجام دهند. + +این کار دیگر می‌تواند انجام محاسبات، ایجاد واحد پولی، ذخیره‌ داده، استخراج توکن‌های غیرقابل معاوضه، برقراری ارتباط یا حتی ایجاد تصاویر گرافیکی باشد. در ادامه چند مثال معمول از دنیای واقعی آورده شده است: + +- [پایدارزها](/stablecoins/) +- [ایجاد و توزیع دارایی‌های یکتای دیجیتال](/nft/) +- [یک صرافی خودکار و باز یکاهای پولی](/get-eth/#dex) +- [بازی کردن غیرمتمرکز](/dapps/?category=gaming) +- [یک بیمه‌نامه که به‌صورت خودکار پرداخت می‌کند.](https://etherisc.com/) +- [استانداردی که به افراد امکان می‌دهد ارزهای سفارشی‌شده و قابل تعامل ایجاد کنند](/developers/docs/standards/tokens/) + +## فردی هستید که با توضیحات تصویری راحت‌ترید؟ {#visual-learner} + +Watch Finematics قراردادهای هوشمند را توضیح می‌دهد: + + + +## بیشتر بخوانید {#further-reading} + +- [چگونه قراردادهای هوشمند دنیا را تغییر خواهند داد](https://www.youtube.com/watch?v=pA6CGuXEKtQ) +- [قردادهای هوشمند: فناوری زنجیره‌‌ی بلوکی که جایگزین وکلا خواهد شد](https://blockgeeks.com/guides/smart-contracts/) +- [قراردادهای هوشمند برای توسعه‌دهندگان](/developers/docs/smart-contracts/) +- [نحوه‌ی نوشتن قراردادهای هوشمند را بیاموزید](/developers/learning-tools/) +- [تبحر در اتریوم: یک قرارداد هوشمند چیست؟](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/fa/social-networks/index.md b/public/content/translations/fa/social-networks/index.md new file mode 100644 index 00000000000..81fd7a607ff --- /dev/null +++ b/public/content/translations/fa/social-networks/index.md @@ -0,0 +1,121 @@ +--- +title: شبکه های اجتماعی غیر متمرکز +description: بررسی اجمالی شبکه های اجتماعی غیرمتمرکز روی اتریوم +lang: fa +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: /ethereum-learn.png +summaryPoint1: پلتفرم های مبتنی بر بلاک چین، برای تعامل اجتماعی و ایجاد و توزیع محتوا. +summaryPoint2: شبکه های رسانه اجتماعی غیرمتمرکز، از حریم خصوصی کاربران محافظت می کنند و امنیت داده ها را افزایش می دهند. +summaryPoint3: توکن ها و نیفتی ها راه های جدیدی برای کسب درآمد از محتوا ایجاد می کنند. +--- + +شبکه های اجتماعی نقش گسترده ای در ارتباطات و تعاملات روزانه ما دارند. اگرچه، کنترل متمرکز این پلتفرم‌ها مشکلات زیادی ایجاد کرده است که: نقض داده‌ها، قطع شدن سرورها، پلتفرم‌زدایی، سانسور و نقض حریم خصوصی برخی از مبادلاتی هستند که رسانه‌های اجتماعی اغلب انجام می‌دهند. برای مبارزه با این مشکلات، توسعه دهندگان در حال ساخت شبکه های اجتماعی بر روی اتریوم هستند. شبکه های اجتماعی غیرمتمرکز می توانند بسیاری از مشکلات پلتفرم های شبکه های اجتماعی سنتی را برطرف کنند و تجربه کلی کاربران را بهبود بخشند. + +## شبکه های اجتماعی غیرمتمرکز چی هستند؟ {#what-are-decentralized-social-networks} + +شبکه‌های اجتماعی غیرمتمرکز پلتفرم‌هایی مبتنی بر بلاک چین هستند که به کاربران امکان تبادل اطلاعات و همچنین انتشار و توزیع محتوا برای مخاطبان را می‌دهند. از آنجایی که این برنامه‌ها بر روی بلاک چین اجرا می‌شوند، می‌توانند غیرمتمرکز باشند و در برابر سانسور و کنترل بی‌رویه مقاوم باشند. + +بسیاری از شبکه‌های اجتماعی غیرمتمرکز به‌عنوان جایگزینی برای سرویس‌های رسانه‌های اجتماعی موجود تاسیس شده اند. مانند فیس‌بوک، لینکدین، توییتر و مدیوم . اما شبکه های اجتماعی مبتنی بر بلاک چین دارای تعدادی ویژگی هستند که آنها را از پلتفرم های اجتماعی سنتی برتری می دهد. + +### شبکه های اجتماعی غیرمتمرکز چگونه کار می کنند؟ {#decentralized-social-networks-overview} + +شبکه‌های اجتماعی غیرمتمرکز دسته‌ای از [برنامه‌های کاربردی غیرمتمرکز (dapps)](/dapps/) هستند که توسط [قراردادهای هوشمند](/developers/docs/smart-contracts/) مستقر در بلاک چین قدرت می‌گیرند. کد قرارداد به عنوان پشتیبان این برنامه ها عمل می کند و منطق تجاری آنها را تعریف می کند. + +پلتفرم‌های رسانه‌های اجتماعی سنتی برای ذخیره اطلاعات کاربر، کد برنامه و سایر اشکال داده به پایگاه‌های داده متکی هستند. که این باعث ایجاد نقاط شکست واحد می شود و خطر قابل توجهی را ایجاد می کند. به عنوان مثال، سرورهای فیس بوک سال گذشته به طرز بدنامی [برای ساعت ها آفلاین شدند](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) و کاربران را از پلتفرم قطع کردند. + +شبکه های اجتماعی غیرمتمرکز در یک شبکه همتا به همتا (peer-to-peer) وجود دارند که شامل هزاران گره در سراسر جهان است حتی اگر برخی از گره ها از کار بیفتند، شبکه بدون وقفه اجرا می شود و برنامه ها را در برابر خرابی ها و قطعی ها مقاوم می کند. + +با استفاده از سیستم‌های ذخیره‌سازی غیرمتمرکز مانند [سیستم فایل بین سیاره‌ای (IPFS به معنای فایل سیستم بین سیاره ای است که در واقع یک سیستم توزیع فایل همتا به همتا و غیر متمرکز است)](https://ipfs.io/)، شبکه‌های اجتماعی ساخته شده بر روی اتریوم می‌توانند از اطلاعات کاربر در برابر سوء استفاده و استفاده مخرب محافظت کنند هیچ کس اطلاعات شخصی شما را به تبلیغ کنندگان نمی فروشد و هکرها نیز نمی توانند اطلاعات محرمانه شما را بدزدند. + +بسیاری از پلتفرم‌های اجتماعی مبتنی بر بلاک چین دارای توکن‌های بومی هستند که در غیاب درآمد تبلیغاتی به کسب درآمد کمک می‌کنند. کاربران می‌توانند این توکن‌ها را برای دسترسی به برخی ویژگی‌ها، تکمیل خریدهای درون‌برنامه‌ای یا انعام به سازندگان محتوای مورد علاقه خود خریداری کنند. + +## مزایای شبکه های اجتماعی غیر متمرکز؟ {#benefits} + +1. شبکه های اجتماعی غیرمتمرکز در برابر سانسور مقاوم هستند و به روی همه باز هستند. این بدان معناست که کاربران را نمی توان خودسرانه ممنوع کرد، تغییر شکل داد یا محدود کرد. + +2. شبکه های اجتماعی غیرمتمرکز بر اساس ایده آل های اپن سورس ساخته شده اند و سورس کد برنامه ها را برای بازرسی عمومی در دسترس قرار می دهند. با حذف اجرای الگوریتم‌های غیرشفاف رایج در رسانه‌های اجتماعی سنتی، شبکه‌های اجتماعی مبتنی بر بلاک چین می‌توانند علایق کاربران و سازندگان پلتفرم را همسو کنند. + +3. شبکه های اجتماعی غیرمتمرکز «مرد میانی» (middle-man) را حذف می کنند. سازندگان محتوا مالکیت مستقیمی بر محتوای خود دارند و مستقیماً با دنبال‌کنندگان، طرفداران، خریداران و سایر طرف‌ها درگیر می‌شوند و چیزی جز یک قرارداد هوشمند در این بین ندارند. + +4. از آنجایی که برنامه‌هایی که در شبکه اتریوم اجرا می‌شوند، که توسط یک شبکه جهانی و همتا به همتا از گره‌ها پشتیبانی می‌شود، شبکه‌های اجتماعی غیرمتمرکز کمتر در معرض خرابی و قطعی سرور هستند. + +5. پلتفرم‌های اجتماعی غیرمتمرکز یک چارچوب بهبودیافته درآمدزایی را برای سازندگان محتوا از طریق توکن‌های غیرقابل تعویض (NFT)، پرداخت‌های رمزنگاری درون برنامه‌ای و موارد دیگر ارائه می‌کنند. + +6. شبکه های اجتماعی غیرمتمرکز سطح بالایی از حریم خصوصی و ناشناس بودن را برای کاربران فراهم می کند. به عنوان مثال، یک فرد می‌تواند با استفاده از نمایه یا کیف پول ENS به یک شبکه اجتماعی مبتنی بر اتریوم وارد شود - بدون اینکه نیازی به اشتراک‌گذاری اطلاعات شناسایی شخصی (PII) مانند نام، آدرس ایمیل و غیره باشد. + +7. شبکه‌های اجتماعی غیرمتمرکز به ذخیره‌سازی غیرمتمرکز متکی هستند، نه پایگاه‌های داده متمرکز، که برای حفاظت از داده‌های کاربر بسیار بهتر هستند. + +## شبکه های اجتماعی غیرمتمرکز در اتریوم {#ethereum-social-networks} + +شبکه اتریوم به دلیل محبوبیت توکن‌های آن (ERC-20/ERC-721) و پایگاه کاربر عظیم آن، به ابزاری مطلوب برای توسعه‌دهندگانی تبدیل شده است که رسانه‌های اجتماعی غیرمتمرکز ایجاد می‌کنند. در اینجا چند نمونه از شبکه های اجتماعی مبتنی بر اتریوم آورده شده است: + +### Peepeth {#peepeth} + +[Peepeth](https://peepeth.com/) یک پلت فرم microblogging مشابه توییتر است. بر روی بلاک چین اتریوم اجرا می شود و از IPFS (IPFS به معنای فایل سیستم بین سیاره ای است که در واقع یک سیستم توزیع فایل همتا به همتا و غیر متمرکز است) برای ذخیره داده های کاربر استفاده می کند. + +کاربران می توانند پیام های کوتاهی به نام "Peeps" ارسال کنند که قابل حذف یا تغییر نیستند. می‌توانید بدون ترک برنامه، نکاتی را جمع‌آوری کنید یا به هر کسی در پلتفرم در اتر (ETH) انعام دهید. + +### Mirror {#mirror} + +[Mirror](https://mirror.xyz/) یک پلتفرم نوشتاری دارای web3 فعال است که هدف آن غیرمتمرکز بودن و مالکیت کاربر است. کاربران می توانند با اتصال کیف پول خود به صورت رایگان در Mirror بخوانند و بنویسند. کاربران همچنین می توانند نوشته ها را درخواست کرده و همچنین نویسندگان مورد علاقه خود را دنبال کنند. + +پست‌های منتشر شده در Mirror به‌طور دائم در Arweave، یک پلت‌فرم ذخیره‌سازی غیرمتمرکز، ذخیره می‌شوند و می‌توانند به‌عنوان [توکن‌های غیرقابل تعویض قابل جمع‌آوری (NFT)](/nft/) به نام Writing NFT ذخیره شوند. گذاشتن NFT برای نویسندگان کاملاً رایگان است و جمع‌آوری آن بر روی Ethereum L2 انجام می‌شود – باعث می‌شود تراکنش‌ها ارزان، سریع و سازگار با محیط‌زیست باشند. + +### MINDS {#minds} + +[MINDS](https://www.minds.com/) یکی از پرکاربردترین شبکه های اجتماعی غیرمتمرکز است. مانند فیس بوک کار می کند و تاکنون میلیون ها کاربر را جذب کرده است. + +کاربران از رمز بومی ERC-20 پلتفرم $MIND برای پرداخت هزینه اقلام استفاده می کنند. کاربران همچنین می توانند با انتشار محتوای محبوب، کمک به اکوسیستم و ارجاع دیگران به پلتفرم، توکن های $MIND کسب کنند. + +## شبکه های اجتماعی Web2 در اتریوم {#web2-social-networks-and-ethereum} + +پلتفرم‌های اجتماعی بومی [Web3](/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 کار می‌کند، یک مجموعه [لایه ۲](/layer-2/) که برای مقیاس‌بندی تراکنش‌های اتریوم طراحی شده است. + +این برنامه در حال حاضر فعال است و زیر ردیت r/CryptoCurrency نسخه Community Points خود را به نام ["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، توییتر آبی [از NFTها پشتیبانی کرد](https://mashable.com/article/twitter-blue-nft-profile-picture) و به کاربران این امکان را داد تا کیف پول خود را به هم متصل کنند و NFTها را به عنوان عکس نمایه نمایش دهند. در زمان نگارش این مقاله، این شرکت رسانه های اجتماعی همچنین [از برنامه های](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) خود برای ایجاد یک شبکه اجتماعی غیرمتمرکز در آینده خبر داده است. + +### Instagram {#instagram} + +در می 2022، [اینستاگرام از NFT ها](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) در اتریوم و Polygon پشتیبانی کرد. کاربران می توانند با اتصال کیف پول اتریوم خود، NFT ها را مستقیماً به اینستاگرام ارسال کنند. + +## از شبکه های اجتماعی غیرمتمرکز استفاده کنید {#use-decentralized-social-networks} + +- **[Status.im](https://status.im/)** - _ یک برنامه پیام رسانی امن است که از یک پروتکل منبع باز، همتا به همتا و رمزگذاری سرتاسر برای محافظت از پیام های شما در برابر اشخاص ثالث استفاده می کند_. +- **[Mirror.xyz](https://mirror.xyz/)** - _ یک پلتفرم انتشار غیرمتمرکز و متعلق به کاربر است که بر پایه اتریوم ساخته شده است تا کاربران بتوانند بر روی ایده‌های خود سرمایه‌گذاری کنند، از محتوا کسب درآمد کنند و جوامع با ارزش بالا بسازند _. +- **[Lens Protocol](https://lens.xyz/)** - _ پروتکل لنز یک نمودار اجتماعی قابل ترکیب و غیرمتمرکز است که به سازندگان کمک می‌کند تا هر کجا که در باغ دیجیتال اینترنت غیرمتمرکز می‌روند، مالکیت محتوای خود را در دست بگیرند_. +- **[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} + +- [توضیح رسانه های اجتماعی غیرمتمرکز](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ +- [بلاک چین DeSo می خواهد رسانه های اجتماعی را غیرمتمرکز کند](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ +- [آینده رسانه های اجتماعی غیرمتمرکز با بالاجی سرینیواسان، ویتالیک بوترین، خوان بنت](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/content/translations/fa/staking/dvt/index.md b/public/content/translations/fa/staking/dvt/index.md similarity index 100% rename from src/content/translations/fa/staking/dvt/index.md rename to public/content/translations/fa/staking/dvt/index.md diff --git a/public/content/translations/fa/staking/pools/index.md b/public/content/translations/fa/staking/pools/index.md new file mode 100644 index 00000000000..dd5b06a45f7 --- /dev/null +++ b/public/content/translations/fa/staking/pools/index.md @@ -0,0 +1,85 @@ +--- +title: سهام‌گذاری مشترک +description: مروری بر نحوه آغاز به کار سهام‌گذاری مشترک اتر +lang: fa +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-pool.png +alt: لسلی اسب آبی در حال شنا در استخر. +sidebarDepth: 2 +summaryPoints: + - از طریق تجمیع قوا با دیگران، هر چقدر اتریوم که می‌خواهید سهام‌گذاری کنید و پاداش کسب کنید + - بخش سخت را رها کنید و عملیات اعتبارسنجی را به شخص ثالث بسپارید + - توکن‌های سهامگذاری را در کیف‌پول خودتان نگه دارید +--- + +## استخر سهام‌گذاری چیست؟ {#what-are-staking-pools} + +استخر سهام‌گذاری یک رویکرد مبتنی بر همکاری است که به افراد بسیاری که مقادیر اتر کمتری دارند امکان می‌دهد 32 اتر لازم برای فعال کردن مجموعه‌ای از کلیدهای اعتبارسنجی را به دست آورند. عملکرد ادغام به‌طور بومی در پروتکل پشتیبانی نمی‌شود، بنابراین راه حل‌هایی به‌طور جداگانه برای رفع این نیاز ساخته شدند. + +برخی از استخرها با استفاده از قراردادهای هوشمند کار می‌کنند، که در آن می‌توان وجوه را به یک قرارداد واریز کرد، که بدون نیاز به اعتماد سهام شما را مدیریت و ردیابی می‌کند، و توکنی را برای شما صادر می‌کند که نشان‌دهنده این ارزش است. سایر استخرها ممکن است شامل قراردادهای هوشمند نباشند و در عوض به صورت خارج زنجیره واسطه شوند. + +## چرا بهتر است با استخر سهام‌گذاری کنیم؟ {#why-stake-with-a-pool} + +علاوه بر مزایایی که در [معرفی سهام‌گذاری](/staking/) بیان کردیم، سهام‌گذاری با استخر دارای چندین مزیت متمایز است. + + + + + + + + + +## آنچه باید در نظر گرفته شود {#what-to-consider} + +سهام‌گذاری مشترک یا تفویضی به‌طور بومی توسط پروتکل اتریوم پشتیبانی نمی‌شود، اما با توجه به تقاضای کاربران برای سهام‌گذاری کمتر از 32 اتر، راه‌حل‌های فزاینده‌ای برای پاسخگویی به این تقاضا ساخته شده است. + +هر استخر و ابزار یا قراردادهای هوشمند مورد استفاده‌ آنها توسط تیم های مختلف ساخته شده‌اند و هر کدام همراه با منافع و خطراتی هستند. استخرها کاربران را قادر می‌سازند تا اترهای خود را با توکنی که نمایانگر اتر سهامگذاری شده است تعویض کنند. این توکن مفید است زیرا به کاربران اجازه می دهد تا هر مقدار اتر دلخواه را با مقدار معادل یک توکن سودده مبادله کنند که سودی را از طریق پاداش‌های سهامگذاری اجرا شده بر روی اتر سهامگذاری شده اساسی (و بالعکس) در صرافی‌های غیرمتمرکز تولید می‌کند، حتی اگر اتر واقعی روی لایه اجماع ثابت بماند. این بدان معناست که مبادله مکرر بین محصول سودده‌ اتر سهامگذاری شده و "اتر خام" نه تنها در ضریب 32 اتر در دسترس است بلکه فرایندی سریع و آسان است. + +با این‌حال، این توکن‌های اتر سهامگذاری شده تمایل به ایجاد رفتارهای کارتل‌مانندی دارند که در آنجا مقدار زیادی از اتر سهامگذاری شده به جای اینکه در بین بسیاری از افراد مستقل پخش شود، تحت کنترل چند سازمان متمرکز قرار می‌گیرد. این اتفاق شرایطی را برای سانسور یا استخراج ارزش ایجاد می‌کند. استاندارد طلا برای سهامگذاری همیشه باید اشخاصی باشند که در هر زمان ممکن اعتبارسنج‌ها را بر روی سخت‌افزار خودشان اجرا کنند. + +[اطلاعات بیشتر درباره خطرات سهامگذاری توکن‌ها](https://notes.ethereum.org/@djrtwo/risks-of-lsd). + +شاخص‌های ویژگی در زیر برای نشان دادن نقاط قوت یا ضعف قابل توجهی که ممکن است یک استخر فهرست شده داشته باشد استفاده می‌شود. از این بخش به‌عنوان مرجعی برای نحوه تعریف این ویژگی‌ها هنگام انتخاب استخری برای پیوستن استفاده کنید. + + + +## استخرهای سهام‌گذاری را کاوش کنید {#explore-staking-pools} + +گزینه‌های مختلفی برای کمک به شما در راه‌اندازی وجود دارد. از شاخص‌های بالا برای راهنمایی به خود در مورد ابزارهای زیر استفاده کنید. + + + + + +لطفاً از اهمیت انتخاب سرویسی که [تنوع کاربر](/developers/docs/nodes-and-clients/client-diversity/) را جدی بگیرد غافل نشوید، زیرا امنیت شبکه را بهبود می‌بخشد و ریسک شما را محدود می‌کند. سرویس‌هایی که مدارکی از محدود کردن استفاده اکثریت کاربران را دارند با عنوان "تنوع کاربر اجرایی" و "تنوع کاربر اجماعی" نشان داده می‌شوند. + +ابزار سهامگذاری‌‌ می‌شناسید که نگنجانده‌ایم؟ [سیاست فهرست‌بندی محصول](/contributing/adding-staking-products/) ما را برای اطمینان از مناسب بودن آن و ثبت آن جهت بررسی مشاهده کنید. + +## پرسش‌های متداول {#faq} + + +معمولاً توکن‌های سهامگذاری ERC-20 برای سهامگذارانی چاپ می‌شوند که نمایانگر ارزش اتر سهامگذاری شده آنها به‌علاوه پاداش‌ باشند. در نظر داشته باشید که روش استخرهای مختلف برای توزیع پاداش‌های سهام‌گذاری بین کاربرانشان کمی با هم متفاوت است، اما این رویکرد رایج است. + + + +همین حالا! ارتقاءهای شانگهای/کاپلا در آوریل سال 2023 رخ دادند، و برداشت‌های سهامگذاری را به همراه داشتند. حساب‌های اعتبارسنج که استخرهای سهامگذاری را پشتیبانی می‌کنند، اکنون قادرند که خارج شوند و اتر را به آدرس برداشت تعیین شده خود برداشت کنند. این امر امکان پس گرفتن سهم خودتان از سهم‌گذاری مربوط به اتر مربوطه را فراهم می‌سازد. با ارائه‌دهنده‌تان بررسی کنید که چگونه این عملکرد را پیشتیبانی می‌کنند. + +از طرفی، استخرهایی که از توکن سهامگذاری ERC-20 استفاده می‌کنند به کاربرانشان امکان معامله این توکن در بازار آزاد معامله را می‌دهند، و به شما اجازه می‌دهند که موقعیت سهامگذاری خود را بفروشید، عملاً یعنی "برداشت کردن" بدون حذف اتر از قرارداد سهامگذاری. + +اطلاعات بیشتر درباره برداشت‌های سهامگذاری + + + +شباهت‌های زیادی بین این گزینه‌های سهام‌گذاری مشترک و صرافی‌های متمرکز وجود دارد؛ نظیر توانایی سهام‌گذاری مقادیر کم اتر و ترکیب کردن آن‌ها برای فعال‌سازی اعتبارسنج‌ها. + +برخلاف صرافی‌های متمرکز، بسیاری دیگر از گزینه‌های سهامگذاری مشترک از قراردادهای هوشمند و/یا توکن‌های سهامگذاری استفاده می‌کنند که معمولاً توکن‌های ERC-20 هستند که می‌توانید آنها را در کیف‌پول خود نگه دارید، و درست همانند هر توکن دیگری آنها را بخرید یا بفروشید. این کار با اعطای کنترل توکن‌هایتان به شما، لایه‌ای از حاکمیت و امنیت را ارائه می‌دهد، اما در عین حال روی کاربر اعتبارسنجی که از طرف شما در پس‌زمینه تصدیق می‌کند، کنترل مستقیمی ارائه نمی‌دهد. + +برخی از گزینه‌های ادغام از حیث گره‌هایی که آن‌ها را پشتیبانی می‌کنند غیرمتمرکزتر از سایرین هستند. برای ارتقای سلامت و عدم تمرکز شبکه، به سهام‌گذاران همواره توصیه می‌شود که سرویس ادغامی را انتخاب کنند که یک مجموعه غیرمتمرکز بدون مجوز از عملگرهای گره را فعال می‌کند. + + +## بیشتر بخوانید {#further-reading} + +- [ سهام‌گذاری با Rocket Pool - بررسی کلی سهام‌گذاری](https://docs.rocketpool.net/guides/staking/overview.html) _مستندات RocketPool _ +- [ سهام‌گذاری اتریوم با لیدو](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) _مستندات کمکی لیدو_ diff --git a/public/content/translations/fa/staking/saas/index.md b/public/content/translations/fa/staking/saas/index.md new file mode 100644 index 00000000000..f1943f43d0e --- /dev/null +++ b/public/content/translations/fa/staking/saas/index.md @@ -0,0 +1,93 @@ +--- +title: سهام‌گذاری به‌عنوان یک خدمت +description: مروری بر نحوه شروع سهام‌گذاری مشترک اتر +lang: fa +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-saas.png +alt: لسلی اسب آبی شناور در میان ابرها. +sidebarDepth: 2 +summaryPoints: + - عملگرهای گره شخص ثالث، عملیات کلاینت اعتبارسنج شما را مدیریت می‌کنند + - گزینه‌ای عالی برای هر کسی با 32 اتر که برای کار با پیچیدگی فنی اجرای گره احساس راحتی نمی‌کند + - نیاز به اعتماد را کاهش دهید و از کلیدهای برداشت خود محافظت کنید +--- + +## سهام‌گذاری به‌عنوان سرویس چیست؟ {#what-is-staking-as-a-service} + +سهام‌گذاری به‌عنوان سرویس («SaaS») نشان‌دهنده دسته‌ای از خدمات سهام‌گذاری است که در آن شما 32 اتر خود را برای یک اعتبارسنج سپرده‌گذاری می‌کنید، اما عملیات گره را به یک عملگر شخص ثالث تفویض می‌کنید. این فرایند معمولاً شامل راهنمایی شدن از طریق راه‌اندازی اولیه، از جمله تولید و واریز کلید، و سپس بارگذاری کلیدهای امضای خود برای عملگر است. این کار به سرویس امکان می‌دهد تا اعتبارسنجتان را از طرف شما، و معمولاً در ازای هزینه‌ای ماهانه، مدیریت کند. + +## چرا بهتر است از طریق یک سرویس سهام‌گذاری کنیم؟ {#why-stake-with-a-service} + +پروتکل اتریوم به‌طور بومی از تفویض سهام پشتیبانی نمی‌کند، بنابراین این سرویس‌ها برای برطرف کردن این تقاضا ساخته شده‌اند. اگر 32 اتر برای سهام‌گذاری در اختیار دارید، اما در مواجهه با سخت‌افزار احساس راحتی نمی‌کنید، سرویس‌های SaaS به شما امکان می‌دهند تا زمانی که پاداش‌های بلوک بومی را دریافت می‌کنید، بخش سخت را تفویض کنید. + + + + + + + + + +## آنچه باید در نظر گرفته شود {#what-to-consider} + +تعداد فزاینده‌ای از ارائه‌دهندگان SaaS وجود دارند که در سهامگذاری اتر به شما کمک می‌کنند اما هرکدام از آنها مزایا و خطرات خاص خود را دارند. تمام گزینه‌های SaaS نیازمند فرضیه‌های اعتماد بیشتر در مقایسه با سهامگذاری خانگی هستند. گزینه‌های SaaS ممکن است کد اضافه‌ای داشته باشند که کاربرهای اتریوم را به طوری شکل می‌دهند که یا باز نیست یا قابل ممیزی نیست. همچنین SaaS تاثیر مخربی بر تمرکززدایی شبکه دارد. بسته به تنظیمات، ممکن است اعتبار‌سنج خود را کنترل نکنید - اپراتور با عدم صداقت می‌تواند از اتر شما استفاده کند. + +شاخص‌های ویژگی در زیر برای نشان دادن نقاط قوت یا ضعف قابل‌توجهی که ممکن است ارائه‌دهنده فهرست‌شده SaaS داشته باشد، استفاده می‌شود. از این بخش به عنوان مرجعی برای نحوه تعریف این ویژگی‌ها هنگام انتخاب سرویس برای کمک به خود در مسیر سهام‌گذاری استفاده کنید. + + + +## ارائه‌دهندگان خدمات سهام‌گذاری را مشاهده و بررسی کنید {#saas-providers} + +در زیر برخی از ارائه‌دهندگان SaaS قید شده‌اند. از شاخص‌های بالا برای راهنمایی درباره این خدمات استفاده کنید + + + +### ارائه‌دهندگان SaaS + + + +لطفاً از اهمیت انتخاب سرویسی که [تنوع کلاینت](/developers/docs/nodes-and-clients/client-diversity/) را جدی بگیرد غافل نشوید، زیرا امنیت شبکه را بهبود می‌بخشد و ریسک شما را محدود می‌کند. سرویس‌هایی که مدارکی از محدود کردن استفاده اکثریت کاربران را دارند با عنوان "تنوع کاربر اجرایی" و "تنوع کاربر اجماعی" نشان داده می‌شوند. + +### تولید‌کنندگان کلید + + + +یک ارائه‌دهنده سهام‌گذاری به‌عنوان خدمت را پیشنهاد می‌دهید که نگنجانده‌ایم؟ [سیاست فهرست‌بندی محصول](/contributing/adding-staking-products/) ما را برای اطمینان از مناسب بودن آن و ثبت آن جهت بررسی مشاهده کنید. + +## پرسش‌های متداول {#faq} + + +ترتیب امور بین ارائه‌دهندگان مختلف، متفاوت است، اما معمولاً راهنمایی می‌شوید که کلیدهای امضای مورد نیاز خود (یکی به‌ازای هر 32 اتر) را راه‌اندازی کنید، و آن‌ها را برای تأیید اعتبار از طرف خودتان، در ارائه‌دهنده‌ای بارگذاری کنید. کلیدهای امضا به تنهایی امکان برداشت، انتقال یا خرج کردن وجوه شما را ندارند. با این حال، آن‌ها توانایی رأی دادن برای حصول اجماع را فراهم می‌کنند، که اگر به درستی انجام نشود، می‌تواند منجر به جریمه آفلاین یا تقطیع شود. + + + +بله. هر حساب هم از کلیدهای امضای BLS و هم از کلیدهای برداشت BLS تشکیل شده است. برای اینکه اعتبارسنج وضعیت زنجیره را تأیید کند، در کمیته‌های همگام‌سازی شرکت کند و بلوک‌ها را پیشنهاد کند، کلیدهای امضا باید به آسانی توسط کلاینت اعتبارسنج قابل دسترسی باشند. این‌ها باید به شکلی به اینترنت متصل شوند، و بنابراین ذاتاً کلیدهای «داغ» در نظر گرفته می‌شوند. این یک الزام برای اعتبارسنج شماست تا بتواند تصدیق کند، و در نتیجه کلیدهای مورد استفاده برای انتقال یا برداشت وجه به دلایل امنیتی از هم جدا می‌شوند. + +کلیدهای برداشت BLS برای امضای پیام یک بار مصرفی که اعلام می‌کند پاداش‌های سهامگذاری و سرمایه خارج شده حساب باید به کدام لایه اجرایی بروند استفاده می‌شوند. به محض مخابره‌ این پیام، کلیدهای برداشت BLS دیگر مورد نیاز نیستند. در عوض کنترل وجوه برداشت شده، به صورت دائمی به آدرسی که شما ارائه داده اید منتقل و تفویض می‌شوند. با این کار می‌توانید آدرس برداشت را تنظیم کنید که متعلق به کیف‌پول سرد شما است تا خطر مربوط به وجوه اعتبارسنج خود را به حداقل برسانید حتی اگر شخص دیگری کلیدهای امضای اعتبارسنج شما را داشته باشد. + +بروزرسانی اطلاعات رمز برداشت، یک اقدام لازم برای فعالسازی امکان برداشت است. این فرایند شامل تولید کلیدهای برداشت با استفاده از عبارت بازیابی شما است. + +مطمئن شوید که پشتیبان امنی از این عبارت بازیابی دارید یا در هر زمان ممکن نخواهید توانست کلیدهای برداشت خود را تولید کنید. +/\*سهامگذارانی که آدرس برداشت را با واریز اولیه تدارک دیده‌اند نیازی به تنظیم این مورد ندارند. با ارائه دهنده سرویس SaaS خود برای راهنمایی در مورد نحوه راه اندازی اعتبار سنج خود تماس بگیرید. + + + +برداشت‌های سهامگذاری در ارتقاء شانگهای/کاپلا در آوریل 2023 پیاده‌سازی شدند. سهامگذاران باید یک آدرس برداشت ارائه کنند (البته اگر هنگام واریز اولیه ارائه نکرده‌اند)، و پرداخت پاداش‌ها به صورت خودکار طی دوره زمانی هر چند روز یک بار توزیع خواهند شد. + +اعتبارسنج‌ها همچنین می‌توانند به صورت کامل از نقش اعتبارسنج خارج شوند، که منجر به باز شدن موجودی اتر باقیمانده آنها برای برداشت خواهد شد. حساب‌هایی که یک آدرس برداشت اجرایی را ارائه کرده‌اند و فرایند خروج را تکمیل کرده‌اند تمام موجودی خود را در نوبت اعتبارسنج بعدی در آدرس برداشتی که ارائه کرده‌اند دریافت خواهند نمود. + +اطلاعات بیشتر درباره برداشت‌های سهامگذاری + + + +با استفاده از یک ارائه‌دهنده SaaS، عملیات گره خود را به شخص دیگری تفویض می‌کنید. این کار، خطر عملکرد ضعیف گره را به همراه دارد، که در کنترل شما نیست. در صورتی که اعتبارسنج شما مشمول تقطیع شود، موجودی اعتبارسنج شما جریمه می‌شود و قاطعانه از استخر اعتبارسنج حذف می‌شود. + +پس از تکمیل فرایند اسلشینگ/خروج، این وجوه به آدرس برداشت اختصاص یافته به اعتبارسنج منتقل خواهند شد. این امر نیاز به ارائه یک آدرس برداشت برای فعالسازی دارد. آدرس برداشت ممکن است در واریز اولیه ارائه شده باشد. اگر آدرس برداشت ارائه نشده بود، لازم است از کلیدهای برداشت اعتبارسنج برای امضای پیام مشخص کننده آدرس برداشت استقاده شود. اگر آدرس برداشت ارائه نشده باشد، وجوه تا زمان ارائه آدرس، غیر قبل برداشت خواهند بود. + +برای جزئیات بیشتر در مورد ضمانت‌ نامه ها یا بیمه و دستورالعمل‌هایی درباره نحوه ارائه آدرس برداشت، با ارائه‌دهنده سرویس SaaS تماس بگیرید. اگر ترجیح می‌دهید راه‌اندازی اعتبارسنج خود را کاملاً تحت کنترل داشته باشید، درباره نحوه به اشتراک گذاشتن اتر خود به‌صورت انفرادی بیشتر بدانید. + + +## بیشتر بخوانید {#further-reading} + +- [ارزیابی سرویس‌های سهام‌گذاری](https://www.attestant.io/posts/evaluating-staking-services/) - _جیم مک‌دونالد 2020_ diff --git a/public/content/translations/fa/staking/solo/index.md b/public/content/translations/fa/staking/solo/index.md new file mode 100644 index 00000000000..d2a272ea818 --- /dev/null +++ b/public/content/translations/fa/staking/solo/index.md @@ -0,0 +1,202 @@ +--- +title: اتر خود را به‌صورت انفرادی سهام‌گذاری کنید +description: مروری بر نحوه‌ی آغاز سهام‌گذاری به‌صورت انفرادی +lang: fa +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-solo.png +alt: لسلی اسب آبی روی تراشه رایانه‌ای خودش. +sidebarDepth: 2 +summaryPoints: + - حداکثر پاداش را مستقیماً از پروتکل دریافت کنید تا اعتبارسنج خود را کارا و آنلاین نگه دارید + - سخت‌افزار خانگی را اجرا کنید و شخصاً امنیت و تمرکززدایی شبکه اتریوم را بیشتر کنید + - نیاز به اعتماد را حذف کنید و همیشه کلیدهای سرمایه خود را تحت کنترل داشته باشید +--- + +## سهام‌گذاری انفرادی چیست؟ {#what-is-solo-staking} + +سهام‌گذاری انفرادی به عمل [اجرای یک گره اتریوم](/run-a-node/) متصل به اینترنت و واریز 32 اتر برای فعال کردن یک [اعتبارسنج](#faq) گفته می‌شود، که به شما امکان می‌دهد به‌طور مستقیم در اجماع شبکه شرکت کنید. + +**سهامگذاری انفرادی، تمرکززدایی شبکه اتریوم را افزایش می‌دهد،** که منجر می‌شود اتریوم در برابر سانسور مقاوم‌تر و در مقابل مهاجمین مستحکم‌تر باشد. دیگر روش‌های سهامگذاری ممکن است به همین روش به شبکه کمک نکنند. سهامگذاری انفرادی بهترین گزینه سهامگذاری برای ایمن‌سازی اتریوم است. + +یک گره‌ی اتریوم از یک کلاینت لایه اجرا (EL) و یک کلاینت لایه اجماع (CL) تشکیل شده است. این کلاینت‌ها نرم‌افزارهایی هستند که همراه با مجموعه‌ای از کلیدهای امضاکننده معتبر، برای تأیید تراکنش‌ها و بلوک‌ها، تصدیق کردن سر درست زنجیره، جمع‌آوری تأییدیه‌ها و پیشنهاد بلوک‌ها با هم کار می‌کنند. + +سهام‌گذارهای انفرادی مسئول کار با سخت‌افزار مورد نیاز برای اجرای این کلاینت‌ها هستند. قویاً توصیه می‌شود از یک دستگاه اختصاصی که در خانه به کار گرفته شود برای این کار استفاده کنید - این کار برای سلامت شبکه بسیار مفید است. + +یک سهام‌گذار انفرادی در ازای اینکه اعتبارسنج خود را کارآمد و آنلاین نگه دارد، مستقیماً از پروتکل پاداش دریافت می‌کند. + +## چرا به‌صورت انفرادی سهام‌گذاری کنیم؟ {#why-stake-solo} + +سهامگذاری انفرادی مسئولیت‌ به همراه دارد اما حداکثر کنترل بر وجوه و تنظیمات سهامگذاری را به شما ارائه می‌دهد. + + + + + + + +## ملاحظات لازم قبل از سهام‌گذاری انفرادی {#considerations-before-staking-solo} + +درست است که ما آرزو می‌کنیم سهام‌گذاری انفرادی برای همه در دسترس و بدون ریسک باشد، اما واقعیت چنین نیست. چند موضوع عملی و جدی وجود دارد که باید قبل از انتخاب سهام‌گذاری انفرادی اتر خود در نظر داشته باشید. + + + +هنگام راه‌اندازی گره‌ی خود، باید مدتی را صرف یادگیری نحوه استفاده از نرم‌افزار انتخابی خود کنید. این کار شامل مطالعه‌ی مستندات مرتبط و هماهنگی با کانال‌های ارتباطی آن تیم‌های توسعه‌دهنده است. + +هرچه بیشتر در مورد نرم‌افزاری که در حال اجرا هستید و نحوه‌ی کار اثبات سهام اطلاعات بیشتری کسب کنید، ریسک آن به‌عنوان یک سهام‌گذار برایتان کمتر خواهد بود و رفع هرگونه مشکلی که ممکن است در طول مسیر به عنوان عملگر گره ایجاد شود آسان‌تر خواهد بود. + + + +راه‌اندازی گره به تسلط کافی در کار با رایانه نیاز دارد، گرچه ابزارهای جدید به مرور زمان این کار را آسان‌تر می‌کنند. درک رابط خط فرمان مفید است، اما دیگر به‌شدت موردنیاز نیست. + +تنظیمات سخت‌افزاری بسیار ابتدایی و درک حداقل مشخصات توصیه‌شده نیز لازم است. + + + +همان‌طور که کلیدهای خصوصی آدرس اتریوم شما را ایمن می‌کنند، باید کلیدهایی را به‌ویژه برای اعتبارسنج خود ایجاد کنید. باید بدانید که چگونه هر عبارت بازیابی یا کلید خصوصی را ایمن نگه دارید.{' '} + +امنیت اتریوم و پیشگیری از کلاهبرداری + + + +سخت‌افزار گهگاه خراب می‌شود، اتصالات شبکه بعضاً دچار مشکل می‌شوند و نرم‌افزار کلاینت هر از گاهی نیازمند ارتقا است. نگهداری از گره ناگزیر است و هر چند وقت یکبار نیازمند توجه شما خواهد بود. شما باید مطمئن باشید که از هرگونه ارتقای شبکه پیش‌بینی‌شده یا سایر ارتقاهای حیاتی مشتری آگاه هستید. + + + +پاداش‌های شما متناسب با زمانی است که اعتبارسنج شما آنلاین است و به‌درستی تصدیق می‌کند. زمان خاموشی متناسب با تعداد اعتبارسنج‌های دیگر که همزمان آفلاین هستند مشمول جریمه می‌شود، اما به برخورد شدید منجر نمی‌شود. پهنای باند نیز مهم است، زیرا پاداش برای تصدیق‌هایی که به موقع دریافت نمی‌شوند کاهش می‌یابد. الزامات متفاوت خواهد بود، اما حداقل سرعت 10 مگابیت بر ثانیه برای بارگذاری و بارگیری توصیه می‌شود. + + + +برخورد شدید که متفاوت از مجازات‌های عدم فعالیت برای آفلاین بودن است، مجازات بسیار جدی‌تری است که برای جرایم مخرب در نظر گرفته شده است. با اجرای یک کلاینت اقلیت با کلیدهایتان تنها روی یک دستگاه بارشده در آن واحد، ریسک برخورد شدید با شما به حداقل می‌رسد. همان‌طور که گفته شد، همه سهام‌گذاران باید از ریسک‌های برخورد شدید آگاه باشند. + +اطلاعات بیشتر درباره جریمه و چرخه‌ حیات اعتبارسنج + + + + + +## نحوه‌ی عملکرد {#how-it-works} + + + +زمانی که فعال باشد شما پاداش اتر دریافت خواهید کرد، که به صورت دوره‌ای به آدرس برداشت شما واریز می‌گردد. + +در صورت تمایل، می‌توانید دیگر اعتبارسنج نباشید؛ بدین ترتیب، نیاز به آنلاین بودن از بین می‌رود و دریافت هرگونه پاداش بیشتر متوقف می‌شود. موجودی باقیمانده شما نیز سپس به آدرس برداشتی که در زمان تنظیمات اختصاص داده بودید واریز خواهد شد. + +[اطلاعات بیشتر درباره برداشت‌های سهامگذاری](/staking/withdrawals/) + +## با Staking Launchpad کار را شروع کنید {#get-started-on-the-staking-launchpad} + +Staking Launchpad یک برنامه منبع‌باز است که به شما کمک می‌کند سهام‌گذار شوید. این شما را از طریق انتخاب کلاینت‌های خود، تولید کلیدهای خود و واریز اتر خود به قرارداد واریز سهام‌گذاری راهنمایی می‌کند. چک‌لیستی ارائه شده است تا مطمئن شوید همه چیز را برای راه‌اندازی اعتبارسنج خود به‌طور ایمن در نظر گرفته‌اید. + + + +## ملاحظات مربوط به ابزارهای راه‌اندازی گره و کلاینت {#node-tool-considerations} + +تعداد فزاینده‌ای از ابزارها و خدمات وجود دارد که به شما کمک می‌کند اتر خود را به‌صورت انفرادی به اشتراک بگذارید، اما هر کدام خطرات و مزایای متفاوتی دارند. + +شاخص‌های ویژگی در زیر برای نشان دادن نقاط قوت یا ضعف قابل توجهی که ممکن است یک استخر فهرست‌شده داشته باشد استفاده می‌شود. از این بخش به عنوان مرجعی برای نحوه تعریف این ویژگی‌ها هنگام انتخاب ابزارها برای کمک به خود در مسیر سهام‌گذاری استفاده کنید. + + + +## مشاهده و بررسی ابزارهای راه‌اندازی گره و کلاینت {#node-and-client-tools} + +گزینه های مختلفی برای کمک کردن به شما در راه‌اندازی وجود دارد.‌ از شاخص‌های بالا برای راهنمایی درباره ابزارهای زیر استفاده کنید. + + + +### ابزارهای گره + + + +لطفاً از اهمیت انتخاب [کلاینت اقلیت](/developers/docs/nodes-and-clients/client-diversity/) غافل نشوید، زیرا امنیت شبکه را بهبود می‌بخشد و ریسک شما را محدود می‌کند. ابزارهایی که به شما امکان می‌دهند کاربر اقلیت را راه‌اندازی کنید با عنوان «چندکاربری» نشان داده می‌شوند. + +### تولید‌کنندگان کلید + +این ابزارها می‌توانند به‌عنوان جایگزینی برای [Staking Deposit CLI](https://github.com/ethereum/staking-deposit-cli/) برای کمک به تولید کلید استفاده شوند. + + + +ابزار سهامگذاری‌‌ می‌شناسید که نگنجانده‌ایم؟ [سیاست فهرست‌بندی محصول](/contributing/adding-staking-products/) ما را برای اطمینان از مناسب بودن آن و ثبت آن جهت بررسی مشاهده کنید. + +## مشاهده‌ی راهنماهای سهام‌گذاری انفرادی {#staking-guides} + + + +## پرسش‌های متداول {#faq} + +اینها چند مورد از متداول‌ترین سؤالات مربوط به سهام‌گذاری هستند که ارزش دانستن دارند. + + + +یک اعتبارسنج یک موجود مجازی است که بر روی اتریوم زندگی می‌کند و در اجماع پروتکل اتریوم مشارکت می‌کند. اعتبارسنج‌ها با موجودی، کلید عمومی و سایر مشخصات نشان داده می‌شوند. کلاینت اعتبارسنج نرم‌افزاری است که با نگه داشتن و استفاده از کلید خصوصی آن، از طرف اعتبارسنج عمل می‌کند. یک کلاینت اعتبارسنج منفرد می‌تواند چندین جفت کلید را در خود نگه دارد و اعتبارسنج‌های زیادی را کنترل کند. + + + + +هر جفت کلید مرتبط با یک اعتبارسنج دقیقاً به 32 اتر نیاز دارد تا فعال شود. واریز کردن اتر بیشتر به یک مجموعه کلید، پتانسیل پاداش را افزایش نمی‌دهد، زیرا هر اعتبارسنج محدود به موجودی مؤثر 32 اتر است. این بدان معنی است که سهام‌گذاری با افزایش‌های 32 اتری انجام می‌شود که هر کدام مجموعه‌ای از کلیدها و موجودی خاص خود را دارند. + +بیش از 32 اتر برای یک اعتبارسنج واریز نکنید. این کار پاداش‌های شما را زیادتر نمی‌کند. اگر یک آدرس برداشت برای اعتبارسنج تنظیم شده‌ باشد، وجوه بیشتر از 32 اتر به صورت خودکار به این آدرس در طی نوبت اعتبارسنج بعدی واریز خواهد شد. + +اگر سهام‌گذاری انفرادی برای شما بسیار سخت به نظر می‌رسد، از یک ارائه‌دهنده‌ی سهام‌گذاری به‌عنوان سرویس استفاده کنید، یا اگر با کمتر از 32 اتر کار می‌کنید، استخرهای سهام‌گذاری را بررسی کنید. + + + +آفلاین شدن هنگامی که شبکه به درستی در حال نهایی‌سازی است، منجر به برخورد شدید نمی‌شود. اگر اعتبارسنج شما برای یک دوره معین (هر دوره 6.4 دقیقه) برای تصدیق کردن در دسترس نباشد، جریمه‌های عدم فعالیت کوچک اعمال می‌شود، اما این موضوع با برخورد شدید بسیار متفاوت است. این جریمه‌ها اندکی کمتر از پاداشی است که در صورت در دسترس بودن اعتبارسنج کسب می‌کردید، و ضررها را می‌توان با آنلاین بودن به مدت زمان تقریباً برابر دوباره به دست آورد. + +توجه داشته باشید که جریمه عدم فعالیت متناسب با تعداد اعتبارسنج‌هایی است که در آن واحد آفلاین هستند. در مواردی که بخش بزرگی از شبکه به‌طور همزمان آفلاین باشد، جریمه هر یک از این اعتبارسنج‌ها بیشتر از زمانی خواهد بود که یک اعتبارسنج منفرد در دسترس نباشد. + +در موارد شدید، اگر شبکه به دلیل آفلاین بودن بیش از یک سوم اعتبارسنج‌ها، نهایی کردن را متوقف کند، این کاربران دچار نشت عدم فعالیت درجه دوم شناخته می‌شود که تخلیه نمایی اتر از حساب‌های اعتبارسنج‌های آفلاین است. این کار، به شبکه امکان می‌دهد تا نهایتاً با سوزاندن اتریوم اعتبارسنج‌های غیرفعال خود را ترمیم کند تا زمانی که موجودی آنها به 16 اتر برسد، که در آن نقطه، آن‌ها به‌طور خودکار از استخر اعتبارسنج رانده می‌شوند. اعتبارسنج‌های آنلاین باقیمانده در نهایت بیش از 2/3 شبکه را دوباره تشکیل می‌دهند و اکثریت قابل‌توجه موردنیاز را برای نهایی کردن مجدد زنجیره برآورده می‌کنند. + + + +به‌طور خلاصه، این موضوع را هرگز نمی‌توان به‌طور کامل تضمین کرد، اما اگر با حسن نیت عمل کنید، یک کلاینت اقلیت را اجرا کنید و کلیدهای امضای خود را هر بار فقط در یک دستگاه نگه دارید، خطر برخورد شدید تقریباً صفر است. + +تنها چند راه خاص وجود دارد که می‌تواند منجر به برخورد شدید و رانده شدن از شبکه شود.‌ در زمان نگارش این مقاله، برخوردهای شدیدی که رخ داده‌اند صرفاً حاصل تنظیمات سخت‌افزاری اضافی بوده است که در آن کلیدهای امضا در دو دستگاه جداگانه ذخیره می‌شوند. این کار می‌تواند به‌طور ناخواسته منجر به رأی مضاعف از سمت کلیدهای شما شود، که یک تخلف مشمول برخورد شدید است. + +اجرای یک کلاینت با اکثریت قابل‌توجه (هر کلاینتی که بیش از 2/3 شبکه استفاده می‌کند) همچنین ریسک برخورد شدید بالقوه را در صورتی که کلاینت دارای اشکالی باشد که منجر به فورک زنجیره شود، در خود نهفته است. این موضوع می‌تواند منجر به فورک معیوب شود که نهایی می‌شود. برای تصحیح بازگشت به زنجیره موردنظر به ارسال رای فراگیر با تلاش برای لغو یک بلوک نهایی‌شده نیاز است. این موضوع هم یک تخلف مشمول برخورد شدید است و می‌توان به سادگی با اجرای یک کلاینت اقلیت به‌جای آن، از آن جلوگیری کرد. + +اشکالات برابر در کلاینت اقلیت هرگز نهایی نمی‌شوند و بنابراین هرگز منجر به رأی فراگیر نمی‌شوند و صرفاً منجر به جریمه‌های عدم فعالیت و نه برخورد شدید می‌شوند. + + + + + +کلاینت‌های فردی ممکن است از نظر عملکرد و رابط کاربری کمی متفاوت باشند، زیرا هر کدام توسط تیم‌های مختلف و با استفاده از زبان‌های برنامه‌نویسی مختلف توسعه یافته‌اند. همان‌طور که گفته شد، هیچ‌یک از آن‌ها «بهترین» نیستند. همه کلاینت‌های تولید نرم‌افزارهایی عالی هستند که همگی عملکردهای اصلی یکسانی را برای همگام‌سازی و تعامل با زنجیره‌‌ی بلوکی انجام می‌دهند. + +از آنجایی که همه‌ی کلاینت‌های تولید عملکردهای اولیه یکسانی را ارائه می‌دهند، در واقع بسیار مهم است که یک کلاینت اقلیت را انتخاب کنید، یعنی کلاینتی که در حال حاضر توسط اکثر اعتبارسنج‌ها در شبکه استفاده نمی‌شود. این کار ممکن است غیرمنطقی به نظر برسد، اما اجرای یک کلاینت اکثریت یا کلاینت اکثریت قابل‌توجه، شما را در معرض خطر برخورد شدید در صورت بروز اشکال در آن کلاینت قرار می‌دهد. اجرای یک کلاینت اقلیت، به‌شدت این خطرات را محدود می‌کند. + +درباره‌ی اینکه چرا تنوع کلاینت حیاتی است بیشتر بدانید + + + +گرچه یک سرور خصوصی مجازی (VPS) می‌تواند به عنوان جایگزینی برای سخت‌افزار خانگی استفاده شود، دسترسی فیزیکی و مکان کلاینت اعتبارسنجتان مهم است. راه‌حل‌های ابری متمرکز مانند Amazon Web Services یا Digital Ocean، به قیمت متمرکز کردن شبکه، راحتیِ بی‌نیازی از تهیه و اجرای سخت‌افزار را به همراه می‌آورند. + +هر چه کلاینت‌های اعتبارسنجی بیشتری روی یک راه‌حل ذخیره‌سازی ابری متمرکز واحد کار کنند، برای این کاربران خطرناک‌تر می‌شود. هر رویدادی که این ارائه‌دهندگان را آفلاین کند، خواه از طریق حمله، درخواست‌های نظارتی، یا صرفاً قطع برق/اینترنت، منجر به آفلاین شدن هر کلاینت اعتبارسنجی می‌شود که به این سرور متکی است و همزمان آفلاین می‌شود. + +جریمه‌های آفلاین بودن متناسب با تعداد کلاینت‌های دیگری است که همزمان آفلاین هستند. استفاده از VPS ریسک شدیدتر شدن جریمه‌های آفلاین بودن را تا حد زیادی افزایش می‌دهد و در صورتی که قطعی به اندازه کافی بزرگ باشد، خطر نشت درجه دوم یا کاهش را افزایش می‌دهد. برای به حداقل رساندن خطر خود و شبکه، به کاربران قویاً توصیه می‌شود که سخت‌افزار خود را تهیه کنند و اجرا کنند. + + + + +هر نوع برداشت از زنجیره بیکن نیازمند آن است که جزئیات رمز برداشت تنظیم شوند. + +سهامگذاران جدید این را در زمان تولید کلید و واریز تنظیم می‌کنند. سهامگذاران کنونی که قبلا این قسمت را تنظیم نکرده‌اند می‌توانند کلیدهایشان را برای پشتیبانی از این عملکرد ارتقا دهند. + +به محض تنظیم کردن اطالاعات رمز برداشت، پرداخت‌های پاداش (اتر جمع شده و بدست آمده از 32 اتر اولیه) به صورت دوره ای و به صورت خودکار به آدرس برداشت توزیع خواهد شد. + +برای باز کردن و بازپس‌گیری کل موجودی تان باید فرایند خروج از اعتبارسنج خود را نیز تکمیل کنید. + +اطلاعات بیشتر درباره برداشت‌های سهامگذاری + + +## بیشتر بخوانید {#further-reading} + +- [مشکل تنوع کلاینت اتریوم](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ +- [کمک به تنوع کلاینت‌ها](https://www.attestant.io/posts/helping-client-diversity/) - _جیم مک‌دونالد 2022_ +- [ تنوع کلاینت در لایه‌ی اجماع اتریوم](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ +- [گام‌به‌گام: نحوه‌ی پیوستن به شبکه‌ی آزمایشی اتریوم 2.0](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _بوتا_ +- [نکات پیشگیری از برخورد شدید Eth2](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _راول جردن 2020_ diff --git a/public/content/translations/fa/staking/withdrawals/index.md b/public/content/translations/fa/staking/withdrawals/index.md new file mode 100644 index 00000000000..4b093559641 --- /dev/null +++ b/public/content/translations/fa/staking/withdrawals/index.md @@ -0,0 +1,218 @@ +--- +title: برداشت‌ها از سهام‌گذاری +description: این صفحه به طور خلاصه بیان می‌کند که برداشت‌های سهامگذاری خودکار چه هستند، چطور کار می‌کنند، و سهامگذاران برای دریافت پاداش‌هایشان به چه کار باید انجام بدهند +lang: fa +template: staking +image: /staking/leslie-withdrawal.png +alt: لزلی (Leslie) کرگدن، با پاداش سهام گذاری‌اش +sidebarDepth: 2 +summaryPoints: + - ارتقاء شانگهای/کاپلا برداشت‌های سهامگذاری را روی اتریوم فعال کرد + - اپراتورهای اعتبارسنج باید یک آدرس برداشت را برای فعالسازی فراهم کنند + - پاداش ها هر چند روز یک بار به صورت خودکار توزیع می‌شوند + - اعتبارسنج‌هایی که از سهامگذاری کاملاً خارج می‌شوند موجودی باقیمانده خود را دریافت خواهند نمود +--- + + +برداشت‌های سهامگذاری همراه با ارتقاء شانگهای/کاپلا که در 12 آوریل 2023 رخ داد فعال شدند. اطلاعات بیشتر درباره شانگهای/کاپلا + + +**برداشت‌های سهامگذاری** اشاره به انتقال‌های اتر از یک حساب اعتبارسنج روی لایه اجماعی اتریوم (زنجیره بیکن) به لایه اجرایی که می‌تواند در آنجا معامله شود دارند. + +**پرداخت پاداش موجودی اضافه** بیشتر از 32 اتر به صورت خودکار و مرتب به آدرس برداشت متصل به هر اعتبارسنج، که قبلاً یک بار توسط کاربر فراهم شده است ارسال خواهد شد. کاربران همچنین می‌توانند **کاملاً از سهامگذاری خارج شوند**، که کل موجودی اعتبارسنج‌ آنها را باز خواهد کرد. + +## پاداش‌های سهام‌گذاری {#staking-rewards} + +پرداخت پاداش‌ها به صورت خودکار برای حساب‌های اعتبارسنج فعال همراه با حداکثر موجودی مؤثر 32 اتری پردازش می‌شوند. + +هرگونه موجودی بالاتر از 32 اتر که از طریق پاداش‌ها به دست می‌آید، در واقع به اصل کار کمک نمی‌کند یا وزن این اعتبارسنج را در شبکه افزایش نمی‌دهد، و بنابراین به‌طور خودکار هر چند روز یک‌بار به‌عنوان پرداخت پاداش برداشت می‌شود. جدا از ارائه یک باره‌ آدرس برداشت، این پاداش‌ها نیازی به هیچ اقدامی از سوی اپراتور اعتبارسنج ندارند. همه اینها در لایه اجماع فعال می‌شوند، بنابراین هیچ گسی (کارمزد معامله) در هیچ مرحله‌ای مورد نیاز نیست. + +### چطور به اینجا رسیدیم؟ {#how-did-we-get-here} + +اتریوم طی چند سال گذشته تحت چندین ارتقاء شبکه قرار گرفته است و به جای ماینینگ انرژی‌بر که در گذشته وجود داشت، به شبکه‌ای که توسط خود اتریوم ایمن‌سازی شده تبدیل شده است. مشارکت در اجماع روی اتریوم اکنون تحت عنوان "سهامگذاری" شناخته می شود، زیرا شرکت‌کنندگان به‌طور داوطلبانه اتر را قفل کرده‌اند، و آن را برای امکان مشارکت در شبکه "در وضعیت سهامگذاری" قرار داده‌اند. کاربرانی که از قوانین تبعیت می‌کنند پاداش می‌گیرند، و هر تلاشی برای تقلب می‌تواند جریمه شود. + +از زمان راه‌اندازی قرارداد سپرده‌گذاری سهام در نوامبر 2020، برخی از پیشگامان شجاع اتریوم به‌طور داوطلبانه وجوهی را برای فعالسازی «اعتبارسنج‌ها» قفل کرده‌اند، یعنی حساب‌های ویژه‌ای که بر اساس قوانین شبکه،‌حق تصدیق رسمی و پیشنهاد بلوک‌ها را دارند. + +قبل از ارتقاء شانگهای/کاپلا، نمی‌توانید به اتر سهامگذاری شده خود دسترسی داشته باشید یا از آن استفاده کنید. اما الان، می‌توانید انتخاب کنید که پاداش‌های خود را به صورت خودکار در یک حساب منتخب دریافت کنید، و نیز می‌توانید اتر سهامگذاری شده خود را هر زمان که بخواهید برداشت کنید. + +### چگونه آماده شوم؟ {#how-do-i-prepare} + + + +### اطلاعیه های مهم {#important-notices} + +ارائه یک آدرس برداشت، یک قدم ضروری برای هر حساب اعتبارسنج قبل از واجد شرایط بودن آن برای برداشت اتر از موجودی آن است. + + + هر حساب اعتبارسنج می‌تواند فقط یک بار تنها به یک آدرس برداشت اختصاص یابد. پس از انتخاب یک آدرس و ارسال آن به لایه اجماع، نمی‌توان آن را لغو کرد یا دوباره تغییر داد. مالکیت و صحت آدرس ارائه شده را قبل از ثبت دوباره بررسی کنید. + + +در این میان هیچ تهدیدی برای وجوه شما به دلیل ارائه نکردن این مورد وجود ندارد، با این فرض که عبارت بازیابی شما در محیطی آفلاین نگهداری می‌شود و به هیچ وجه به خطر نیفتاده است. عدم افزودن اطلاعات رمز برداشت صرفاً اتر را تا زمانی که آدرس برداشت ارائه شود در حساب اعتبارسنج قفل می‌کند. + +## خروج کامل از سهامگذاری {#exiting-staking-entirely} + +فراهم کردن آدرس برداشت قبل از اینکه _هر_ انتقال وجهی بتواند به خارج از موجودی حساب اعتبارسنج منتقل شود الزامی است. + +کاربرانی که قصد خروج کامل از سهامگذاری و برداشت کامل موجودی خود را دارند، باید پیام "خروج داوطلبانه" را که روند خروج از سهامگذاری را آغاز خواهد کرد با کلیدهای اعتبارسنج امضا و مخابره کنند. این امر با کاربر اعتبارسنج شما انجام می‌شود و در گره اجماع شما ثبت می‌شود، و نیازی به پرداخت گس ندارد. + +فرآیند خروج یک اعتبارسنج از سهامگذاری، بسته به تعداد دیگری که همزمان خارج می‌شوند، زمان متغیری را می‌طلبد. پس از تکمیل، این حساب دیگر مسئول انجام وظایف اعتبارسنج در شبکه نخواهد بود، و دیگر واجد شرایط دریافت پاداش‌ها نیست، و اتر آن دیگر "در وضعیت سهامگذاری" نیست. در این زمان حساب، نشان کاملاً "قابل برداشت" را دریافت خواهد کرد. + +هنگامی که یک حساب نشان "قابل برداشت" را دریافت کند، و اطلاعات رمز برداشت ارائه شدند، کاربر به غیر از انتظار کشیدن کار دیگری لازم نیست انجام بدهد. حساب‌ها به‌طور خودکار و به‌طور مداوم توسط پیشنهادکنندگان بلوک برای وجوه خارج شده واجد شرایط جابجا می‌شوند، و موجودی حساب شما به‌طور کامل (که به عنوان "برداشت کامل" نیز شناخته می‌شود) در جابجایی بعدی منتقل می‌شود. + +## برداشت‌های سهامگذاری چه موقع فعال می‌شوند؟ {#when} + +برداشت‌های سهامگذاری فعال هستند! عملکرد برداشت به عنوان بخشی از ارتقاء شانگهای/کاپلا که در تاریخ 12 آوریل 2023 روی داد فعال شد. + +ارتقاء شانگهای/کاپلا این امکان را فراهم کرد که اتر سهامگذاری شده در درون حساب‌های معمول اتریوم بازپس گرفته شود. این امر حلقه نقدینگی سهامگذاری را بست و اتریوم را یک قدم به مسیر ساختن یک اکوسیستم غیرمتمرکز پایدار، مقیاس‌پذیر و امن نزدیک‌تر کرد. + +- [اطلاعات بیشتر درباره تاریخچه اتریوم](/history/) +- [اطلاعات بیشتر درباره نقشه‌راه اتریوم](/roadmap/) + +## پرداخت برداشت‌ها چگونه انجام می‌شوند؟ {#how-do-withdrawals-work} + +اینکه آیا یک اعتبارسنج مشخص واجد شرایط برداشت است یا نه، توسط وضعیت خود حساب اعتبارسنج تعیین می‌شود. هیچ اطلاعاتی از سوی کاربر در هر زمان معین برای تعیین اینکه آیا یک حساب باید شروع به برداشت کند یا نه لازم نیست - کل فرآیند به طور خودکار توسط لایه اجماع در یک حلقه پیوسته انجام می‌شود. + +### فردی هستید که با توضیحات تصویری راحت‌ترید؟ {#visual-learner} + +این توضیحات برداشت‌های سهامگذاری اتریوم ارائه شده از سوی Finematics را مرور کنید: + + + +### «انتقال» بین اعتبارسنج‌ها {#validator-sweeping} + +زمانی که یک اعتبارسنج قرار است بلوک بعدی را پیشنهاد کند، باید یک صف برداشت ایجاد کند، نهایتاً تا 16 برداشت واجد شرایط. این کار با شروع با شاخص اعتبارسنج 0 انجام می‌شود، یعنی تعیین اینکه آیا برداشت واجد شرایطی برای این حساب طبق قوانین پروتکل وجود دارد یا نه، و در صورت وجود آن را به صف اضافه کند. کار اعتبارسنج تنظیم شده برای پیشنهاد بلوک بعدی از جایی که آخرین بلوک متوقف شده است ادامه می‌یابد و این روند به‌ترتیب به طور نامحدود پیش می‌رود. + + +به یک ساعت آنالوگ فکر کنید. عقربه روی آن به ساعت اشاره می‌کند، در یک جهت پیش می‌رود، از روی هیچ ساعتی نمی‌‌پرد و در نهایت پس از رسیدن به آخرین عدد، دوباره از ابتدا شروع به چرخیدن می‌کند.

+اکنون به جای اعداد 1 تا 12، تصور کنید ساعت دارای اعداد 0 تا N داشته باشد ( تا ژانویه 2023 تعداد کل حساب های اعتبارسنج که تا کنون در لایه اجماع ثبت شده اند، بیش از 500،000 بوده است).

+عقربه روی ساعت به اعتبارسنج بعدی اشاره می‌کند که باید برای برداشت‌های واجد شرایط بررسی شود. این روند از عدد 0 شروع می‌شود، و بدون پریدن و رد شدن از هر حساب تا آخر پیش می‌رود. وقتی که به آخرین اعتبارسنج دست یافت، چرخه پیوسته به آغاز مسیر باز می‌گردد. +
+ +#### بررسی یک حساب برای برداشت {#checking-an-account-for-withdrawals} + +در حالی که یک پیشنهاددهنده در حال جابجایی بین اعتبارسنج‌ها برای برداشت‌های احتمالی است، هر اعتبارسنج که بررسی می‌شود با یک سری سوالات کوتاه ارزیابی می‌شود تا مشخص شود که آیا برداشت باید آغاز شود یا نه، و اگر چنین است، چه مقدار اتر باید برداشت شود. + +1. **آیا یک آدرس برداشت ارائه شده است؟** اگر هیچ آدرس برداشتی ارائه نشده است، از حساب عبور می‌کند و هیچ برداشتی انجام نمی‌شود. +2. ** آیا اعتبارسنج خارج شده و قابل برداشت است؟** اگر اعتبارسنج به طور کامل خارج شده باشد، و ما به ایپوکی رسیده باشیم که حساب آن "قابل برداشت" در نظر گرفته شود، برداشت کامل انجام می‌شود. با این کار کل موجودی باقیمانده به آدرس برداشت منتقل می‌شود. +3. **آیا موجودی مؤثر حداکثر 32 اتر است؟** اگر حساب دارای اطلاعات رمز برداشت باشد، به طور کامل از آن خارج نشده باشد، و دارای پاداش های در حال انتظار بالاتر از 32 باشد، یک برداشت جزئی پردازش خواهد شد که فقط پاداش‌های بالای 32 را به آدرس برداشت کاربر منتقل می‌کند. + +تنها دو اقدام وجود دارد که توسط اپراتورهای اعتبارسنج در طول چرخه عمر اعتبارسنج انجام می‌شود که مستقیماً بر این جریان تأثیر می‌گذارد: + +- ارائه اطلاعات رمز برداشت برای فعالسازی هر شکلی از برداشت +- خروج از شبکه، که منجر به برداشت کامل خواهد شد + +### بدون گس {#gas-free} + +این رویکرد برای برداشت‌های سهامگذاری از الزام سهامگذاران به ثبت دستی تراکنشی که درخواست برداشت مقدار خاصی از اتر را دارند، اجتناب می‌کند. این بدان معناست که **نیازی به گس (کارمزد تراکنش) نیست**، و برداشت‌ها نیز برای فضای بلوک لایه اجرایی موجود رقابت نمی‌کنند. + +### هر چند وقت یک‌بار پاداش‌های سهامگذاری را دریافت خواهم کرد؟ {#how-soon} + +حداکثر 16 برداشت را می‌توان در یک بلوک پردازش کرد. با این نرخ، می‌توان 115200 برداشت اعتبارسنج را در روز پردازش کرد (با فرض تلف نشدن هرگونه اسلات). همانطور که در بالا ذکر شد، اعتبارسنج‌های بدون حق برداشت نادیده گرفته می‌شوند، و زمان پایان جابجایی را کاهش می‌دهند. + +با گسترش این محاسبه، می‌توانیم زمان پردازش تعداد معینی از برداشت‌ها را تخمین بزنیم: + + + +| شمار برداشت ها | زمان تکمیل | +| :------------: | :--------: | +| 400,000 | 3.5 روز | +| 500,000 | 4.3 روز | +| 600,000 | 5.2 روز | +| 700,000 | 6.1 روز | +| 800,000 | 7.0 روز | + + + +می‌بینید که اعتبارسنج‌های بیشتر در شبکه سرعت آن را کاهش می‌دهند. افزایش در تعداد اسلات‌های از دست رفته می‌تواند سرعت را به نسبت کاهش دهد، اما این به طور کلی نشان‌دهنده سمت کندتر خروجی‌های احتمالی است. + +## پرسش‌های متداول {#faq} + + +نه، فرآیند ارائه اطلاعات رمز برداشت یک فرایند یک‌باره است و پس از ثبت دیگر قابل تغییر نیست. + + + +با تعیین یک آدرس برداشت لایه اجرا، اطلاعات رمز برداشت آن اعتبارسنج برای همیشه تغییر کرده است. این بدان معناست که اطلاعات رمز قدیمی دیگر عمل نمی‌کنند و اطلاعات رمز جدید به یک حساب لایه اجرا هدایت می‌شود. + +آدرس‌های برداشت می‌توانند یک قرارداد هوشمند (که توسط کد آن کنترل می‌شود)، یا یک حساب دارای مالکیت خارجی (EOA، که توسط کلید خصوصی آن کنترل می‌شود) باشند. در حال حاضر این حساب‌ها هیچ راهی برای انتقال یک پیام به لایه اجماع که نشان‌دهنده تغییر اطلاعات رمز اعتبارسنج باشد ندارند، و افزودن این قابلیت پیچیدگی زائدی را به پروتکل اضافه خواهد کرد. + +به‌عنوان یک راهکار جایگزین تغییر آدرس برداشت برای یک اعتبارسنج خاص، کاربران ممکن است یک قرارداد هوشمند را به‌عنوان آدرس برداشت خود تعیین کنند که می‌تواند چرخش کلید را انجام دهد، مثلاً یک گاوصندوق. کاربرانی که وجوه خود را روی EOA خود تنظیم می‌کنند، می‌توانند یک خروج کامل برای برداشت همه وجوه سهامگذاری شده خود انجام دهند، و سپس با استفاده از اطلاعات رمز جدید مجدداً سهامگذاری کنند. + + + + +اگر بخشی از یک استخر سهامگذاری هستید یا توکن‌های سهامگذاری را نگه می‌دارید، باید با ارائه‌دهنده خود درباره جزئیات بیشتر مربوط به نحوه انجام برداشت‌های سهامگذاری مشورت کنید، چون هر سرویس رویکرد متفاوتی دارد. + +در کل، کاربران باید آزاد باشند اتر سهامگذاری شده خود را پس بگیرند، یا اینکه ارائه‌دهنده‌ مورد استفاده خود را تغییر دهند. اگر یک استخر خاص بیش از حد بزرگ شود، وجوه را می‌توان خارج کرد، بازخرید کرد، و دوباره با یک ارائه‌دهنده کوچکتر سهامگذاری کرد. یا، اگر اتر کافی جمع‌آوری کرده‌اید می‌توانید بروید سراغ سهامگذاری در خانه. + + + + +بله، تا زمانی که اعتبارسنج شما یک آدرس برداشت ارائه کرده باشد. این باید یک بار ارائه شود تا در ابتدا هر شکلی از برداشت را فعال کند، سپس پرداخت‌های پاداش به طور خودکار هر چند روز یک‌بار با هر جابجایی اعتبارسنج فعال می‌شوتد. + + + + +نه، اگر اعتبارسنج شما همچنان در شبکه فعال باشد، برداشت کامل به صورت خودکار انجام نخواهد شد. این امر مستلزم آغاز دستی یک خروج داوطلبانه است. + +به محض اینکه اعتبارسنج فرایند خروج را تکمیل کرد و با فرض اینکه حساب دارای اطلاعات رمز برداشت است، باقیمانده موجودی سپس در طی انتقال اعتبارسنج بعدی برداشت خواهد شد. + + + + +برداشت‌ها به گونه‌ای طراحی شده‌اند که به‌طور خودکار انجام می شوند و هر اتر را که به طور فعال در سهامگذاری مشارکت ندارد منتقل می‌کنند. این امر شامل تمام موجودی حساب‌هایی است که فرایند خروج را تکمیل کرده‌اند. + +امکان درخواست دستی مقادیر خاصی از اتر برای برداشت وجود ندارد. + + + + +به اپراتورهای اعتبارسنج توصیه می‌شود از صفحه برداشت‌های سکوی پرتاب سهامگذاری بازدید کنند، که در آنجا جزئیات بیشتری درباره نجوه آماده‌سازی اعتبارسنج خود برای برداشت‌ها پیدا خواهید کرد. تهیه شده، زمان‌بندی رویدادها و اطلاعات بیشتر درباره چگونگی کار برداشت‌ها. + +برای امتحان اولیه تنظیمات خود در یک شبکه آزمایشی، به صفحه سکوی پرتاب سهامگذاری شبکه آزمایشی Goerli برای شروع مراجعه کنید. + + + + +خیر. به محض اینکه یک اعتبارسنج خارج شود و موجودی کامل آن برداشت شود، هرگونه وجوه اضافی که به آن اعتبارسنج سپرده می‌شود، به‌طور خودکار به آدرس برداشت منتقل خواهد شد. برای سهامگذاری مجدد اتر، یک اعتبارسنج جدید باید فعال شود. + + +## بیشتر بخوانید {#further-reading} + +- [برداشت‌های سکوی پرتاب سهامگذاری](https://launchpad.ethereum.org/withdrawals) +- [پروتکل EIP-4895: برداشت‌های زنجیره بیکن به‌عنوان عملیات‌ها](https://eips.ethereum.org/EIPS/eip-4895) +- [تیم ویراستاران اتریوم - شانگهای](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) +- [PEEPanEIP شماره 94: برداشت اتر سهامگذاری شده (آزمایشی) با Potuz & Hsiao-Wei Wang](https://www.youtube.com/watch?v=G8UstwmGtyE) +- [PEEPanEIP شماره 68: پروپوزال EIP-4895: برداشت‌های خودکار زنجیره بیکن به‌عنوان عملیات با الکس استوکس](https://www.youtube.com/watch?v=CcL9RJBljUs) +- [آشنایی با موجودی مؤثر اعتبارسنج](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/fa/web3/index.md b/public/content/translations/fa/web3/index.md similarity index 100% rename from src/content/translations/fa/web3/index.md rename to public/content/translations/fa/web3/index.md diff --git a/src/content/translations/fa/web3/web2.png b/public/content/translations/fa/web3/web2.png similarity index 100% rename from src/content/translations/fa/web3/web2.png rename to public/content/translations/fa/web3/web2.png diff --git a/src/content/translations/fa/web3/web3.png b/public/content/translations/fa/web3/web3.png similarity index 100% rename from src/content/translations/fa/web3/web3.png rename to public/content/translations/fa/web3/web3.png diff --git a/public/content/translations/fa/zero-knowledge-proofs/index.md b/public/content/translations/fa/zero-knowledge-proofs/index.md new file mode 100644 index 00000000000..2e6768c54d0 --- /dev/null +++ b/public/content/translations/fa/zero-knowledge-proofs/index.md @@ -0,0 +1,212 @@ +--- +title: اثبات‌های دانش-صفر +description: یک مقدمه غیرتخصصی درباره اثبات دانش صفر، برای مبتدی ها. +lang: fa +--- + +## اثبات دانش صفر چیست؟ {#what-are-zk-proofs} + +اثبات دانش صفر، روشی برای اثبات اعتبار یک گزاره بدون افشای خود گزاره است. «ثابت کننده» طرفی است که تلاش می کند ادعایی را ثابت کند، در حالی که «تایید کننده» مسئولیت تایید آن ادعا را دارد. + +اثبات دانش صفر اولین بار در سال 1985 در مقاله‌ای با عنوان [«پیچیدگی دانش سیستم‌های اثبات تعاملی»](http://people.csail.mit.edu/silvio/Selected%20Scientific%20Papers/Proof%20Systems/The_Knowledge_Complexity_Of_Interactive_Proof_Systems.pdf) مطرح شد که تعریفی از اثبات‌ دانش صفر ارائه می‌دهد که امروز به ‌طور گسترده مورد ارجاع قرار می‌گیرد: + +> یک پروتکل دانش صفر روشی است که به وسیلۀ آن یک طرف (اثبات‌کننده) می‌تواند به طرف دیگر (تاییدکننده) ثابت کند که چیزی درست است، بدون این‌ که هیچ اطلاعاتی جز این واقعیت که این عبارت خاص درست است فاش کند. + +اثبات‌های دانش صفر در طول سالیان بهبود یافته‌اند و اکنون در چندین اپلیکیشن در دنیای واقعی مورد استفاده قرار می‌گیرند. + +## چرا به اثبات دانش صفر نیاز داریم؟ {#why-zero-knowledge-proofs-are-important} + +اثبات‌ دانش صفر نشان‌دهندۀ یک پیشرفت چشمگیر در رمزنگاری کاربردی بود، زیرا وعدۀ بهبود امنیت اطلاعات برای افراد را می‌داد. در نظر بگیرید که چگونه می‌توانید ادعای خود (مثلاً «من شهروند کشور X هستم») را به یک طرف دیگر (مثلاً یک ارائه‌دهندۀ خدمات) اثبات کنید. برای اثبات ادعای خود می‌بایست «شواهدی» مانند پاسپورت ملی یا گواهینامۀ رانندگی ارائه دهید. + +اما این شیوه مشکلاتی دارد، بیش از همه، فقدان حریم خصوصی. زیرا اطلاعات شناسایی شخصی یا به‌اختصار PII اشتراک‌گذاری‌شده با سرویس‌های شخص ثالث، در پایگاه‌های دادۀ مرکزی ذخیره می‌شود که در برابر هک آسیب‌پذیرند. هم‌زمان با اهمیت یافتن سرقت هویت، درخواست‌ها برای ابزارهایی با قابلیت حفاظت بیشتر از حریم خصوصی به هنگام اشتراک‌گذاری اطلاعات حساس افزایش یافته است. + +اثبات دانش صفر با حذف نیاز به افشای اطلاعات برای اثبات اعتبار ادعاها، این مشکل را حل می‌کند. پروتکل دانش صفر، از گزاره (که «شاهد» نامیده می‌شود) به‌ عنوان ورودی استفاده می‌کند تا یک اثبات موجز برای اعتبار آن ایجاد کند. این اثبات، تضمین‌های محکمی برای صحت یک گزاره بدون افشای اطلاعات مورد استفاده در ایجاد آن ارائه می‌دهد. + +با رجوع به مثال قبلی، تنها مدرکی که برای اثبات ادعای شهروندی خود نیاز دارید، اثبات دانش صفر است. تاییدکننده تنها می‌بایست بررسی کند که آیا برخی از ویژگی‌های اثبات درست است یا نه تا متقاعد شود که گزارۀ اصلی نیز درست است. + +## اثبات دانش صفر چکونه کار میکند؟ {#how-do-zero-knowledge-proofs-work} + +اثبات دانش صفر به شما امکان می‌دهد که صحت یک گزاره را اثبات کنید، بدون این‌که محتوای آن گزاره را به اشتراک بگذارید یا چگونگی کشف حقیقت را فاش کنید. برای ممکن ساختن این امر، پروتکل‌های دانش صفر بر الگوریتم‌هایی تکیه می‌کنند که برخی داده‌ها را به ‌عنوان ورودی می‌گیرند و «درست» یا «نادرست» را به ‌عنوان خروجی برمی‌گردانند. + +یک پروتکل دانش صفر باید معیارهای زیر را برآورده کند: + +1. **کامل بودن**: اگر ورودی معتبر باشد، پروتکل دانش صفر همیشه پاسخ «درست» را برمی‌گرداند. از این رو، اگر گزارۀ اصلی درست باشد و اثبات‌کننده و تایید‌کننده صادقانه عمل کنند، اثبات را می‌توان پذیرفت. + +2. **صحت:** اگر ورودی نامعتبر باشد، از نظر تئوری غیرممکن است که پروتکل دانش صفر فریب بخورد تا پاسخ «درست» را بازگرداند. از این رو، یک اثبات‌کنندۀ دروغگو نمی‌تواند یک تاییدکنندۀ صادق را فریب دهد تا یک گزارۀ نامعتبر را معتبر بداند (مگر با یک احتمال ناچیز). + +3. **دانش صفر**: تاییدکننده، چیزی دربارۀ یک گزاره فراتر از اعتبار یا نادرستی آن یاد نمی‌گیرد (آن‌ها از گزاره، «دانش صفر» دارند). این الزام همچنین مانع می‌شود که تاییدکننده از طریق اثبات، به ورودی اصلی (محتوای گزاره) دست یابد. + +در شکل اولیه، یک اثبات دانش صفر از سه عنصر تشکیل شده است: **شاهد**،**چالش**، و **پاسخ**. + +- **شاهد**: با استفاده از اثبات دانش صفر، اثبات‌کننده می‌خواهد آگاهی خود از برخی اطلاعات محرمانه را اثبات کند. اطلاعات محرمانه، «شاهد» اثبات است، و آگاهی مفروض اثبات‌کننده درباره شاهد، مجموعه‌ای از پرسش‌ها را تعیین می‌کند که تنها از سوی یک طرف مطلع می‌تواند پاسخ داده شود. بنابراین، اثبات‌کننده فرایند اثبات را با انتخاب تصادفی یک پرسش، برآورد پاسخ و ارسال آن برای تاییدکننده آغاز می‌کند. + +- **چالش**: تاییدکننده به‌ طور تصادفی پرسش دیگری را از مجموعه انتخاب می‌کند و از اثبات‌کننده می‌خواهد که به آن پاسخ دهد. + +- **پاسخ**: اثبات‌کننده پرسش را می‌پذیرد، پاسخ را برآورد می‌کند و به تاییدکننده بازمی‌گرداند. پاسخ اثبات‌کننده، به تاییدکننده اجازه می‌دهد که بررسی کند آیا اولی واقعاً به شاهد دسترسی دارد یا خیر. برای اطمینان از این‌که اثبات‌کننده حدس‌های کورکورانه نمی‌زند و پاسخ‌های صحیحش از سر تصادف و شانس نیست، تاییدکننده سؤال‌های بیشتری می‌پرسد. با تکرار چندبارۀ این تعامل تا زمانی که رضایت تاییدکننده جلب شود، احتمال جعل شدن دانش شاهد از سوی اثبات کننده به میزان قابل توجهی کاهش می‌یابد. + +موارد بالا، ساختار یک «اثبات دانش صفر تعاملی» را شرح می‌دهد. پروتکل‌های اولیۀ دانش صفر از اثبات تعاملی استفاده می‌کردند، طبق این پروتکل‌ها، تایید اعتبار یک گزاره نیازمند ارتباط رفت و برگشتی میان اثبات‌کننده‌ها و تاییدکننده‌ها بود. + +یک مثال خوب که نحوۀ کار اثبات‌های تعاملی را روشن می‌کند، داستان معروف [غار علی بابا](https://en.wikipedia.org/wiki/Zero-knowledge_proof#The_Ali_Baba_cave) از ژان ژاک کویسکوتر است. در این داستان، پگی (اثبات‌کننده) می‌خواهد بدون فاش کردن عبارت رمز، به ویکتور (تاییدکننده) ثابت کند که آن عبارت را می‌داند تا دری جادویی را باز کند. + +### اثبات دانش صفر غیرتعاملی {#non-interactive-zero-knowledge-proofs} + +هرچند اثبات تعاملی یک انقلاب محسوب می‌شد، اما کارایی چندانی نداشت، زیرا مستلزم این بود که دو طرف در دسترس باشند و به‌ طور مکرر با هم تعامل داشته باشند. حتی اگر یک تاییدکننده به صداقت یک اثبات‌کننده اعتقاد داشته باشد، اثبات برای تایید مستقل در دسترس نخواهد بود (محاسبۀ یک اثبات جدید نیازمند مجموعۀ جدیدی از پیام‌ها بین اثبات‌کننده و تاییدکننده است). + +برای حل این مشکل، مانوئل بلوم، پل فلدمن و سیلویو میکالی اولین [اثبات‌های دانش صفر غیرتعاملی](https://dl.acm.org/doi/10.1145/62212.62222) را پیشنهاد کردند که در آن اثبات‌کننده و تاییدکننده یک کلید مشترک دارند. این کلید اجازه می‌دهد که اثبات‌کننده دانش خود از برخی اطلاعات (به‌ عنوان مثال شاهد) را بدون ارائۀ خود اطلاعات اثبات کند. + +برخلاف اثبات‌های تعاملی، اثبات‌های غیرتعاملی فقط به یک دور ارتباط بین شرکت‌کنندگان (اثبات‌کننده و تاییدکننده) نیاز دارند. اثبات‌کننده، برای محاسبۀ اثبات دانش صفر، اطلاعات محرمانه را به یک الگوریتم ویژه می‌فرستد. این اثبات برای تاییدکننده ارسال می‌شود، و تاییدکننده با استفاده از الگوریتم دیگری بررسی می‌کند که آیا اثبات‌کننده اطلاعات محرمانه را می‌داند یا خیر. + +اثبات غیرتعاملی، ارتباط بین اثبات‌کننده و تاییدکننده را کاهش می‌دهد و اثبات‌کننده‌های دانش صفر را کارآمدتر می‌کند. علاوه بر آن، به‌محض تولید هر اثبات، برای تایید اشخاص دیگر (به شرط داشتن کلید مشترک و الگوریتم تایید) در دسترس است. + +اثبات‌ غیرتعاملی پیشرفتی برای فناوری دانش صفر محسوب می‌شد و باعث توسعۀ سیستم‌های اثبات مورد استفادۀ امروزی شد. در زیر به معرفی انواع آن‌ می‌پردازیم: + +### انواع اثبات دانش صفر {#types-of-zero-knowledge-proofs} + +#### ZK-SNARKs {#zk-snarks} + +ZK-SNARK مخفف عبارت **Zero-Knowledge Succinct Non-Interactive Argument of Knowledge** است. پروتکل ZK-SNARK دارای ویژگی‌های زیر است: + +- **دانش صفر**: یک تاییدکننده می‌تواند یکپارچگی یک گزاره را بدون دانستن چیز دیگری در مورد آن گزاره تایید کند. تنها دانش تاییدکننده از گزاره، درست یا نادرست بودن آن است. + +- **موجز**: اثبات دانش صفر کوچک‌تر از شاهد، و به‌سرعت قابل تایید است. + +- **غیرتعاملی**: اثبات «غیرتعاملی» است، زیرا اثبات‌کننده و تاییدکننده فقط یک دور باهم تعامل دارند، برخلاف اثبات‌های تعاملی که به چندین دور ارتباط نیاز دارند. + +- **استدلال**: اثبات، شرط «صحت» را برآورده می‌کند، بنابراین تقلب بسیار بعید است. + +- **(از) دانش**: اثبات دانش صفر بدون دسترسی به اطلاعات محرمانه (شاهد) قابل ساخت نیست. برای اثبات‌کننده‌ای که شاهد ندارد، اگر نگوییم غیرممکن، اما دشوار است که یک اثبات دانش صفر معتبر را محاسبه کند. + +«کلید مشترک» که قبلاً به آن اشاره کردیم، به پارامترهای عمومی‌ اشاره دارد که اثبات‌کننده و تاییدکننده توافق می‌کنند از آن‌ها در تولید و تایید شواهد استفاده کنند. تولید پارامترهای عمومی (که در مجموع، به ‌عنوان رشتۀ مرجع مشترک یا به‌اختصار CRS شناخته می‌شود) به دلیل اهمیت آن در امنیت پروتکل، یک عملیات حساس است. اگر آنتروپی (تصادفی بودن) مورد استفاده در تولید CRS به دست یک اثبات‌کنندۀ نااهل بیفتد، ممکن است اثبات‌های تقلبی را محاسبه کنند. + +[محاسبات چندجانبه که به‌اختصار MPC گفته می‌شود](https://en.wikipedia.org/wiki/Secure_multi-party_computation)، راهی برای کاهش ریسک در تولید پارامترهای عمومی است. در این نوع محاسبات، چندین طرف در یک [مراسم راه‌اندازی مورد اعتماد](https://zkproof.org/2021/06/30/setup-ceremonies/amp/) شرکت می‌کنند، که در آن هر فرد مقادیری تصادفی برای تولید CRS ارائه می‌کند. تا زمانی که یک طرف صادق بخشی از آنتروپی خود را از بین ببرد، پروتکل ZK-SNARK سلامت محاسباتی را حفظ می‌کند. + +راه‌اندازی‌های مورد اعتماد، کاربران را ملزم می‌کنند در تولید پارامتر به شرکت‌کنندگان اعتماد کنند. با این حال، توسعۀ ZK-STARKs پروتکل‌های اثباتی را فعال کرده است که با یک راه‌اندازی غیرمعتمد کار می‌کنند. + +#### ZK-STARKs {#zk-starks} + +ZK-STARK مخفف عبارت **Zero-Knowledge Scalable Transparent Argument of Knowledge** است. ZK-STARKها مشابه ZK-SNARKها هستند، با این تفاوت که ویژگی‌های زیر را دارند: + +- **مقیاس‌پذیر**: در مواقعی که اندازۀ شاهد بزرگ‌تر است، ZK-STARK در ایجاد و تایید مدارک، سریع‌تر از ZK-SNARK عمل می‌کند. با بزرگ‌تر شدن شاهد، زمان‌ مورد نیاز برای اثبات و تایید توسط اثبات‌های STARK تنها اندکی افزایش پیدا می‌کند (زمان‌های اثبات‌کننده و تاییدکنندۀ SNARK با افزایش اندازۀ شاهد به صورت خطی افزایش می‌یابند). + +- **شفاف**: برای ایجاد پارامترهای عمومی به منظور اثبات و تایید، ZK-STARK به جای این‌که به راه‌اندازی مورد اعتماد متکی باشد، به تصادف قابل تایید عمومی متکی است. بنابراین، در مقایسه با ZK-SNARK شفاف‌تر هستند. + +ZK-STARKها، نسبت به ZK-SNARKها اثبات‌های بزرگ‌تری تولید می‌کنند، به این معنی که معمولاً منابع/هزینۀ بیشتری برای تایید نیاز دارند. با این حال، ممکن است در برخی موارد (مانند اثبات مجموعه داده‌های بزرگ)، ZK-STARK نسبت به ZK-SNARK مقرون‌به‌صرفه‌تر باشد. + +## موارد استفادۀ اثبات دانش صفر {#use-cases-for-zero-knowledge-proofs} + +### پرداخت‌های ناشناس {#anonymous-payments} + +پرداخت‌های کارت اعتباری اغلب برای چندین طرف، از جمله ارائه‌دهندۀ خدمات پرداخت، بانک‌ها و سایر اشخاص ذینفع (مانند مقامات دولتی) قابل مشاهده است. هرچند نظارت مالی برای شناسایی فعالیت‌های غیرقانونی مزیت‌هایی دارد، اما حریم خصوصی شهروندان عادی را نیز تضعیف می‌کند. + +رمزارزها به‌ عنوان ابزاری در خدمت کاربران، برای انجام معاملات محرمانه و همتا به همتا در نظر گرفته شده بودند. اما بیشتر تراکنش‌های ارزهای دیجیتال در بلاک‌چین‌های عمومی به طور آشکار قابل مشاهده‌اند. هویت‌ کاربران اغلب مستعار است یا به طور عمدی به هویت‌ دنیای واقعی آن‌ها مرتبط می‌شود (مثلاً با قرار دادن آدرس‌های ETH در پروفایل‌های توییتر یا گیت‌هاب)، یا ممکن است با استفاده از تجزیه و تحلیل داده‌های اولیه و آفچین، با هویت‌ دنیای واقعی آن‌ها مرتبط شود. + +«سکه‌های حریم خصوصی» خاصی وجود دارد که برای تراکنش‌های کاملاً ناشناس طراحی شده‌اند. بلاک‌چین‌های متمرکز بر حریم خصوصی، مانند Zcash و Monero، از جزئیات تراکنش، از جمله آدرس‌های فرستنده/گیرنده، نوع دارایی، مقدار، و جدول زمانی تراکنش محافظت می‌کنند. + +شبکه‌های بلاک‌چین متمرکز بر حریم خصوصی با استفاده از فناوری دانش صفر در پروتکل، به گره‌ها اجازه می‌دهند تا تراکنش‌ها را بدون نیاز به دسترسی به داده‌های تراکنش تایید کنند. + +اثبات‌ دانش صفر همچنین برای ناشناس کردن تراکنش‌ها در بلاک‌چین‌های عمومی استفاده می‌شود. به عنوان مثال، Tornado Cash یک سرویس غیرمتمرکز و غیرسرپرستی است که به کاربران اجازه می‌دهد تا تراکنش‌های محرمانه را در اتریوم انجام دهند. Tornado Cash از اثبات دانش صفر برای مخفی کردن جزئیات تراکنش و تضمین حریم خصوصی مالی استفاده می‌کند. متأسفانه، به این دلیل که ابزارهای حفظ حریم خصوصی «انتخابی» هستند، با فعالیت‌های غیرقانونی همراهند. برای غلبه بر این امر، حریم خصوصی در نهایت باید به پیش‌فرض در بلاک‌چین‌های عمومی تبدیل شود. + +### حفاظت از هویت {#identity-protection} + +سیستم‌های کنونی مدیریت هویت، اطلاعات شخصی را در معرض خطر قرار می‌دهند. اثبات دانش صفر به افراد کمک می‌کند تا هویت خود را تایید، و در عین حال از اطلاعات حساس محافظت کنند. + +اثبات دانش صفر به‌ویژه در زمینۀ [هویت غیرمتمرکز](/decentralized-identity/) مفید است. هویت غیرمتمرکز (که «هویت خودمختار» نیز نامیده می‌شود) توانایی کنترل دسترسی به شناسه‌های شخصی را به فرد می‌دهد. اثبات شهروندی بدون فاش کردن جزئیات شناسۀ مالیاتی یا اطلاعات گذرنامه، نمونۀ خوبی است که نشان می‌دهد چگونه فناوری دانش صفر هویت غیرمتمرکز را امکان‌پذیر می‌کند. + +### احراز هویت {#authentication} + +استفاده از خدمات آنلاین پلتفرم‌ها مستلزم اثبات هویت و حق دسترسی شما به آن پلتفرم‌ها است. این امر اغلب مستلزم ارائۀ اطلاعات شخصی مانند نام، آدرس ایمیل، تاریخ تولد و غیره است. همچنین ممکن است لازم باشد رمزهای عبور طولانی را به خاطر بسپارید یا در خطر از دست دادن دسترسی باشید. + +با این حال، اثبات‌ دانش صفر می‌تواند احراز هویت را هم برای پلتفرم‌ها و هم برای کاربران ساده‌ کند. هنگامی که یک ZK-proof با استفاده از ورودی‌های عمومی (مانند داده‌هایی که عضویت کاربر در پلتفرم را تایید می‌کند) و ورودی‌های خصوصی (مانند جزئیات کاربر) تولید شد، کاربر می‌تواند به‌سادگی آن را برای احراز هویت خود در زمانی که نیاز به دسترسی دارد ارائه کند. این امر تجربۀ کاربران را بهبود می‌بخشد و سازمان‌ها را از نیاز به ذخیرۀ حجم عظیمی از اطلاعات کاربران معاف می‌کند. + +### محاسبه قابل تایید {#verifiable-computation} + +محاسبات قابل تایید یکی دیگر از کاربردهای فناوری اثبات دانش صفر برای بهبود طرح‌های بلاک‌چین است. محاسبه قابل تایید به ما امکان می‌دهد ضمن حفظ نتایج قابل تایید، محاسبات را به نهاد دیگری برون‌سپاری کنیم. آن نهاد نتیجه را همراه با اثباتی که تایید می‌کند برنامه به‌درستی اجرا شده است، ارسال می‌کند. + +اهمیت اساسی محاسبه قابل تایید، در بهبود سرعت پردازش بلاک‌چین‌ها بدون کاهش امنیت است. درک این موضوع مستلزم دانستن تفاوت‌‌های راه‌حل‌های پیشنهادی برای مقیاس‌پذیری اتریوم است. + +[راه‌حل‌های مقیاس‌پذیری آنچین](/developers/docs/scaling/#on-chain-scaling)، مانند شاردینگ، نیاز به اصلاح گستردۀ لایۀ پایۀ بلاک‌چین دارند. با این حال، این رویکرد بسیار پیچیده است و اشتباهات در پیاده‌سازی می‌تواند مدل امنیتی اتریوم را تضعیف کند. + +[راه‌حل‌های مقیاس‌پذیری آفچین](/developers/docs/scaling/#off-chain-scaling) نیازی به طراحی مجدد پروتکل هستۀ اتریوم ندارند. در عوض، برای بهبود توان عملیاتی در لایۀ پایۀ اتریوم به یک مدل محاسباتی برون‌سپاری شده تکیه می‌کنند. + +در عمل این‌گونه کار می‌کنند: + +- اتریوم به جای پردازش هر تراکنش، اجرا را در یک زنجیرۀ جداگانه بارگذاری می‌کند. + +- پس از پردازش تراکنش‌ها، زنجیرۀ دیگر، نتایج را برای اعمال به حالت اتریوم برمی‌گرداند. + +در اینجا، مزیت این است که اتریوم نیازی به اجرا ندارد و فقط باید نتایج حاصل از محاسبات برون‌سپاری‌شده را در حالت خود اعمال کند. این امر ازدحام شبکه را کاهش می‌دهد و در عین حال سرعت تراکنش را بهبود می‌بخشد (پروتکل‌های آفچین برای اجرای سریع‌تر بهینه می‌شوند). + +زنجیره نیاز به روشی دارد تا معاملات آفچین را بدون اجرای مجدد آن‌ها اعتبارسنجی کند، در غیر این صورت ارزش اجرای آفچین از بین می‌رود. + +اینجا همان جایی است که محاسبه قابل تایید وارد عمل می‌شود. هنگامی که یک گره، تراکنشی را خارج از اتریوم اجرا می‌کند، برای اثبات صحت اجرای آفچین، اثبات دانش صفر را ارائه می‌دهد. این اثبات (که [اثبات اعتبار](/glossary/#validity-proof) نامیده می‌شود) معتبر بودن یک تراکنش را تضمین می‌کند و به اتریوم اجازه می‌دهد تا نتیجه را در حالت خود اعمال کند، بدون این‌که انتظار داشته باشد کسی آن را مورد تردید قرار دهد. + +[رول آپ‌های دانش صفر](/developers/docs/scaling/zk-rollups) و [ولیدیوم‌ها](/developers/docs/scaling/validium/) دو راه‌حل مقیاس‌پذیری آفچین هستند که از اثبات اعتبار برای ارائۀ مقیاس‌پذیری ایمن استفاده می‌کنند. این پروتکل‌ها هزاران تراکنش را به صورت آف‌چین اجرا می‌کنند و اثبات‌هایی را برای تایید در شبکۀ اتریوم ارائه می‌کنند. این نتایج را می‌توان بلافاصله پس از تایید اثبات اعمال کرد که به اتریوم اجازه می‌دهد تراکنش‌های بیشتری را بدون افزایش محاسبه در لایۀ پایه پردازش کند. + +### کاهش رشوه و تبانی در رای‌گیری آنچین {#secure-blockchain-voting} + +طرح‌های رای‌گیری بلاک‌چین ویژگی‌های مناسب زیادی دارند: آن‌ها کاملاً قابل ممیزی، ایمن در برابر حملات، مقاوم در برابر سانسور و عاری از محدودیت‌های جغرافیایی هستند. اما حتی طرح‌های رای‌گیری آنچین نیز از مشکل **تبانی** مصون نیستند. + +تبانی که به عنوان «هماهنگی برای محدود کردن رقابت آزاد از طریق فریب دادن، گول زدن و گمراه کردن دیگران» تعریف می‌شود، ممکن است از طریق یک طرف بدخواه که با ارائۀ رشوه بر رای‌گیری تاثیر می‌گذارد، عملی شود. به عنوان مثال، آلیس ممکن است از باب رشوه بگیرد تا به `گزینۀ B` رأی دهد، حتی اگر ترجیح خودش `گزینۀ A` باشد. + +رشوه و تبانی، اثربخشی هر فرایندی را که از رای دادن به عنوان مکانیسم سیگنال‌دهی استفاده می‌کند کاهش می‌دهد (به‌ویژه در جایی که کاربران می‌توانند نحوۀ رای دادن خود را ثابت کنند). این امر می‌تواند عواقب قابل توجهی داشته باشد، به‌ویژه در مواردی که آرا تعیین‌کنندۀ تخصیص منابع کمیاب هستند. + +برای مثال، [مکانیسم‌های تامین مالی ثانویه](https://www.radicalxchange.org/concepts/plural-funding/) برای سنجش و اولویت‌‌بندی گزینه‌های خاص از میان پروژه‌های مختلف نفع عمومی، بر اعانه‌ها تکیه می‌کنند. هر اعانه به عنوان یک «رای» برای یک پروژۀ خاص محسوب می‌شود و هر پروژه‌ای که رای بیشتری بیاورد وجوه بیشتری از استخر مربوطه دریافت می‌کند. + +استفاده از رای‌گیری آنچین، تامین مالی ثانویه را مستعد تبانی می‌کند: تراکنش‌های بلاک‌چین عمومی هستند، بنابراین رشوه‌دهندگان می‌توانند فعالیت آنچین رشوه‌گیران را بررسی کنند تا ببینند چگونه «رای داده‌اند». به این ترتیب، بودجۀ ثانویه دیگر ابزاری موثر برای تخصیص بودجه بر اساس ترجیحات جمعی جامعه نخواهد بود. + +خوشبختانه، راه‌حل‌های جدیدتر مانند MACI که مخفف Minimum Anti-Collusion Infrastructure (زیرساخت ضد تبانی حداقل) است، از اثبات دانش صفر استفاده می‌کنند تا رای‌گیری آنچین (مانند مکانیسم‌های تامین مالی ثانویه) را در برابر رشوه و تبانی مقاوم کنند. MACI مجموعه‌ای از قراردادهای هوشمند و اسکریپت‌ها است که به یک مدیر مرکزی (که «هماهنگ‌کننده» نامیده می‌شود) اجازه می‌دهند تا رای‌ها را _بدون_ افشای جزئیات نحوۀ رای دادن افراد جمع‌آوری و شمارش کند. با این حال، هنوز هم می‌توان شمارش صحیح آرا یا مشارکت یک فرد خاص در رای‌گیری را تایید کرد. + +#### MACI چگونه با اثبات دانش صفر کار می‌کند؟ {#how-maci-works-with-zk-proofs} + +در ابتدا، هماهنگ‌کننده قرارداد MACI را بر روی شبکۀ اتریوم قرار می‌دهد، پس از آن کاربران می‌توانند برای رای دادن (با ثبت کلید عمومی خود در قرارداد هوشمند) ثبت‌نام کنند. کاربران با ارسال پیام‌های رمزگذاری‌شده از طریق کلید عمومی خود در قرارداد هوشمند رای می‌دهند (از جمله معیارهای دیگر این است که یک رای معتبر باید با جدیدترین کلید عمومی مرتبط با هویت کاربر امضا شود). سپس، هماهنگ‌کننده پس از پایان دورۀ رای‌گیری، همۀ پیام‌ها را پردازش می‌کند، آرا را جمع‌آوری و نتایج را در زنجیره تایید می‌کند. + +در MACI، از اثبات‌های دانش صفر برای اطمینان از صحت محاسبه استفاده می‌شود، زیرا هماهنگ‌کننده نمی‌تواند به ‌طور نادرست آرا را پردازش و نتایج را محاسبه کند. این امر با درخواست از هماهنگ‌کننده برای ایجاد اثبات‌های ZK-SNARK به دست می‌آید که تایید می‌کند الف) همۀ پیام‌ها به‌درستی پردازش شده‌اند؛ ب) نتیجۀ نهایی با مجموع آرای _معتبر_ مطابقت دارد. + +بنابراین، حتی بدون به اشتراک گذاشتن آرای تک‌تک کاربران (که معمولاً اتفاق می‌افتد)، MACI صحت و سلامت نتایج محاسبه‌شده در فرایند شمارش آرا را تضمین می‌کند. این ویژگی در کاهش اثربخشی طرح‌های تبانی اساسی مفید است. در ادامه، این احتمال را با استفاده از مثال قبلی رشوه دادن باب به آلیس برای رای دادن به گزینۀ مد نظرش، بررسی می‌کنیم: + +- آلیس با ارسال کلید عمومی خود به یک قرارداد هوشمند، برای رای دادن ثبت‌نام می‌کند. +- آلیس در ازای دریافت رشوه از باب، با او توافق می‌کند که به `گزینۀ B` رای دهد. +- آلیس به `گزینۀ B` رای می‌دهد. +- آلیس به‌ طور محرمانه یک تراکنش رمزگذاری‌شده برای تغییر کلید عمومی مرتبط با هویت خود ارسال می‌کند. +- آلیس با استفاده از کلید عمومی جدید، پیام دیگری (رمزگذاری‌شده) مبنی بر رای دادن به `گزینۀ A` به قرارداد هوشمند می‌فرستد. +- آلیس تراکنشی را به باب نشان می‌دهد تا بگوید او به `گزینۀ B` رای داده است (که نامعتبر است، زیرا کلید عمومی دیگر با هویت آلیس در سیستم مرتبط نیست) +- در حین پردازش پیام‌ها، هماهنگ‌کننده رای آلیس برای `گزینۀ B` را نادیده می‌گیرد و تنها رای `گزینۀ A` را می‌شمارد. از این رو، تلاش باب برای تبانی با آلیس و دستکاری در رای‌گیری آنچین با شکست مواجه می‌شود. + +استفاده از MACI نیازمند اعتماد به هماهنگ‌کننده مبنی بر تبانی نکردن با رشوه‌دهندگان یا تلاش برای رشوه دادن رای‌دهندگان از سوی او است. هماهنگ‌کننده می‌تواند پیام‌های کاربران را رمزگشایی کند (برای ایجاد اثبات لازم است)، بنابراین آن‌ها می‌توانند نحوۀ رای دادن هر فرد را به‌ طور دقیق تایید کنند. + +اما در مواردی که هماهنگ‌کننده صادق است، MACI ابزاری قدرتمند برای تضمین سلامت رای‌گیری آنچین است. این امر بیان‌کنندۀ دلیل محبوبیت آن در میان برنامه‌های تامین مالی ثانویه (مانند [clr.fund](https://clr.fund/#/about/maci)) است که به‌شدت بر صحت آرای تک‌تک افراد متکی است. + +[درباره MACI بیشتر بیاموزید](https://github.com/privacy-scaling-explorations/maci/blob/master/specs/01_introduction.md). + +## معایب استفاده از اثبات دانش صفر {#drawbacks-of-using-zero-knowledge-proofs} + +### هزینه‌های سخت‌افزاری {#hardware-costs} + +تولید اثبات‌های دانش صفر شامل محاسبات بسیار پیچیده‌ای است که تنها در ماشین‌های تخصصی به بهترین وجه انجام می‌شود. از آنجایی که این ماشین‌ها گرانقیمت‌اند، اغلب در دسترس افراد عادی نیستند. به‌علاوه، برنامه‌هایی که می‌خواهند از فناوری دانش صفر استفاده کنند، می‌بایست هزینه‌های سخت‌افزاری را لحاظ کنند، که احتمال دارد باعث افزایش هزینه‌ها برای کاربران نهایی شود. + +### هزینه‌های تایید اثبات {#proof-verification-costs} + +تایید اثبات‌ها همچنین نیازمند محاسبه پیچیده است و هزینه‌های پیاده‌سازی فناوری دانش صفر در برنامه‌ها را افزایش می‌دهد. این هزینه به‌ویژه در زمینۀ اثبات محاسبه است. به‌ عنوان مثال، رول‌آپ‌های ZK برای تایید یک اثبات ZK-SNARK در اتریوم حدود 500000 گس هزینه برمی‌دارد و هزینه‌های ZK-STARKها از این رقم هم بالاتر است. + +### مفروضات اعتماد {#trust-assumptions} + +در ZK-SNARK، رشته مرجع مشترک (Common Reference String) یا همان پارامترهای عمومی، یک بار تولید می‌شود و از آن پس، برای استفادۀ طرف‌هایی که مایل به شرکت در پروتکل دانش صفر هستند در دسترس خواهند بود. پارامترهای عمومی از طریق یک مراسم راه‌اندازی مورد اعتماد ایجاد می‌شوند، که در آن شرکت‌کنندگان مورد اعتمادند. + +اما در واقع، هیچ راهی برای کاربران وجود ندارد تا صداقت شرکا را ارزیابی کنند و آن‌ها ناگزیدند به قول توسعه‌دهندگان اطمینان کنند. اما ZK-STARKها نیازی به مفروضات اعتماد ندارند زیرا تصادفی بودن استفاده‌شده در تولید رشته (استرینگ) به ‌طور عمومی قابل تایید است. در همین حال، محققان در حال کار بر روی راه‌اندازی بدون اعتماد برای ZK-SNARKها هستند تا امنیت مکانیسم‌های اثبات را افزایش دهند. + +### تهدیدات محاسبات کوانتومی {#quantum-computing-threats} + +ZK-SNARK از الگوریتم‌های رمزنگاری انحنای بیضوی ([ECDSA](/glossary/#ecdsa)) برای رمزگذاری استفاده می‌کند. هرچند الگوریتم ECDSA در حال حاضر امن است، توسعۀ رایانه‌های کوانتومی می‌تواند مدل امنیتی آن را در آینده با شکست مواجه کند. + +ZK-STARK در برابر تهدید محاسبه کوانتومی مصون در نظر گرفته می شود، زیرا برای رمزگذاری از هش‌های مقاوم در برابر برخورد استفاده می‌کند. برخلاف جفت‌ کلیدهای عمومی-خصوصی که در رمزنگاری انحنای بیضوی استفاده می‌شوند، شکستن هش مقاوم در برابر برخورد، برای الگوریتم‌های محاسبات کوانتومی دشوارتر است. + +## بیشتر بخوانید {#further-reading} + +- [دانشمند کامپیوتر یک مفهوم را در 5 سطح دشواری توضیح می‌دهد](https://www.youtube.com/watch?v=fOGdb1CTu5c) - _کانال یوتیوب Wired_ +- [بررسی اجمالی موارد استفاده برای اثبات‌ دانش صفر](https://appliedzkp.org/#Projects) - _تیم کاوش‌های حریم خصوصی و مقیاس‌پذیری_ +- [SNARKها در مقایسه با STARKها و SNARKهای بازگشتی](https://www.alchemy.com/overviews/snarks-vs-starks) — _خلاصه‌های کیمیاگری_ +- [اثبات دانش صفر: بهبود حریم خصوصی در یک بلاک‌چین](https://www.altoros.com/blog/zero-knowledge-proof-improving-privacy-for-a-blockchain/) - _دیمیتری لاورنوف_ +- [zk-SNARKها - یک مثال واقعی از دانش صفر و بررسی جامع آن](https://medium.com/coinmonks/zk-snarks-a-realistic-zero-knowledge-example-and-deep-dive-c5e6eaa7131c) - _آدام لوسیانو_ +- [ZK-STARKها - ایجاد اعتماد قابل تایید، حتی نسبت به رایانه‌های کوانتومی](https://medium.com/coinmonks/zk-starks-create-verifiable-trust-even-against-quantum-computers-dd9c6a2bb13d) - _آدام لوسیانو_ +- [مقدمه‌ای تقریبی دربارۀ چگونگی امکان zk-SNARKها](https://vitalik.ca/general/2021/01/26/snarks.html) - _ویتالیک بوترین_ +- [اثبات دانش صفر و نقش آن در بلاک‌چین چیست؟](https://www.leewayhertz.com/zero-knowledge-proof-and-blockchain/) - _لیوی هرتز_ diff --git a/public/content/translations/fi/dao/index.md b/public/content/translations/fi/dao/index.md new file mode 100644 index 00000000000..830486306ba --- /dev/null +++ b/public/content/translations/fi/dao/index.md @@ -0,0 +1,165 @@ +--- +title: Hajautetut autonomiset organisaatiot (DAO) +description: Katsaus Ethereumissa oleviin DAOihin +lang: fi +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: Kuvitus, jossa hajautettu yhteisö äänestää ehdotuksesta. +summaryPoint1: Jäsenten omistamat yhteisöt ilman keskitettyä johtajuutta. +summaryPoint2: Turvallinen tapa tehdä yhteistyötä nettituttujen kanssa. +summaryPoint3: Turvallinen alusta sijoittaa varoja haluttuun kohteeseen. +--- + +## Mitä hajautetut autonomiset organisaatiot (DAO) ovat? {#what-are-daos} + +DAO on kollektiivisesti omistettu, blockchain-hallittu organisaatio, joka tavoittelee yhteisen tehtävän suorittamista. + +DAO luo mahdollisuuden työskennellä yhteisen näkemyksen jakavien ihmisten kanssa globaalisti, tarvitsematta luottaa varoja tai operaatioita hyväntahtoisen johtajan käsiin. Läsnäolo riittää. Yhteisöllä ei ole toimitusjohtajaa, joka voisi käyttää varoja varsin itsenäisesti haluamallaan tavalla tai talousjohtajaa ohjaamassa kirjanpidollista kulttuuria. Sen sijaan koodiin kirjatut lohkoketjuihin perustuvat säännöt määrittelevät, miten organisaatio toimii ja miten varoja käytetään. + +Järjestelmään on sisäänrakennettuna varannot, joihin kenelläkään ei ole pääsyä ilman ryhmän hyväksyntää. Päätöksenteko toteutetaan ehdotuksilla ja äänestyksillä sen varmistamiseksi, että kaikilla organisaatioissa on ääni, ja että kaikki tapahtuu avoimesti ketjussa. + +## Mihin hajautettuja autonomisia organisaatioita (DAO) tarvitaan? {#why-dao} + +Kun muodostat organisaation ja sijoitat varojasi sen toimintaan, tarvitaan paljon luottamusta henkilöihin, joiden kanssa työskentelet. On vaikea luottaa henkilöön - vain internetin välityksellä. DAOssa sinun ei tarvitse luottaa henkilöön ryhmässä, luotat DAOn koodiin, joka on 100% läpinäkyvä ja kenen tahansa tarkastettavissa. + +Globaalin yhteistyön mahdollisuudet ovat näin ollen lähes rajattomat. + +### Vertailu {#dao-comparison} + +| DAO | Perinteinen organisaatio | +| -------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| Matala ja täysin demokratisoitu organisaatiomalli. | Yleensä hierarkia. | +| Jäsenten on äänestettävä, jotta muutokset voidaan toteuttaa. | Organisoitumismallin mukaisesti muutoksia voidaan vaatia vain yhdeltä osapuolelta tai äänestystä voidaan vaihtoehtoisesti esittää. | +| Äänet laskettu ja lopputulos saatu aikaan automaattisesti ilman kolmansien osapuolien myötävaikutusta. | Jos äänestys menettelytapana, ääntenlasku ja lopputulos täytyy käsitellä manuaalisesti. | +| Tarjotut palvelut toteutetaan automaattisesti hajautettuna (vaikkapa esimerkiksi hyväntekeväisyysvarojen jakaminen). | Vaati manuaalikäsittelyä tai keskitetysti valvottua automaatiota, altis manipuloinnille. | +| Kaikki toiminta on läpinäkyvää ja täysin julkista. | Toiminta on tyypillisesti yksityistä ja kohdennetulle yleisölle tarkoitettua. | + +### Esimerkkejä DAOsta {#dao-examples} + +Jotta ymmärtäisit paremmin, esittelemme muutaman DAOn käyttötapauksen: + +- Hyväntekeväisyys – voidaan hyväksyä globaalit lahjoitukset ja äänestää siitä, mihin rahoitusta kohdennetaan. +- Yhteisomistus – voidaan ostaa fyysistä tai digitaalista omaisuutta ja jäsenet voivat äänestää siitä, miten niitä käytetään. +- Yritystoiminnan tukemisen rahastot - voit luoda yritysrahaston, jonne kerätään yhteistä investointipääomaa ja äänestetään tuen kohdentamisesta. Myöhemmin takaisinmaksettu raha voitaisiin jakaa uudelleen DAOn jäsenten kesken. + +## Kuinka DAOt toimivat? {#how-daos-work} + +DAOn selkäranka on sen älykäs sopimus, joka määrittelee organisaation säännöt ja huolehtii konsernin arvovarannoista. Kun sopimus on julkaistu Ethereumissa, sen sisältö on pysyvä. Vain äänestämällä muutoksesta voi muuttaa sääntöjä ja vaikuttaa sisältöön. Yritykset tehdä jotakin koodiin kirjoitetun logiikan vastaista epäonnistuvat. Älysopimukseen kirjatut ehdot määrittävät myös varojen käytön, joten siihen tarvitaan ryhmän hyväksyntä. Käytännössä se tarkoittaa sitä, että DAOt eivät tarvitse keskusjohtoisuutta toimiakseen. Sen sijaan päätökset tehdään yhteisesti ja maksut suoritetaan tai hylätään automaattisesti äänestysten perusteella. + +Tämä on mahdollista koska älysopimukset ovat suojattuja, eikä niitä voi "peukaloida" sen jälkeen, kun ne julkaistaan Ethereumissa. Koodin huomaamaton muokkaaminen on poissuljettu (DAOn säännöt). Kaikki on julkista ja avointa. + + + Lisätietoa älysopimuksista + + +## Ethereum ja DAOt {#ethereum-and-daos} + +Ethereum on täydellinen alusta DAOille useista syistä: + +- Ethereumin olemus on vakiintunut riittävästi, jotta organisaatiot voivat luottaa järjestelmään. +- Kun älysopimus on julkaistu, sitä ei voi huomaamatta muokata, edes sen omistajat. Tämä mahdollistaa DAOn toiminnan niillä säännöillä, joilla se on asetettu toimimaan. +- Älysopimukset voivat ottaa vastaan ja lähettää varoja. Ilman tätä ominaisuutta, tarvitsisit kolmannen osapuolen hallinnoimaan ryhmän varoja. +- Ethereum-yhteisö näyttää olevan enemmänkin yhteistyöyhteisö kuin kilpailuyhteisö, koska parhaat käytännöt jaetaan nopeasti kaikkien hyödyksi. + +## DAOn hallinto {#dao-governance} + +DAOn hallinnoinnissa on useita näkökohtia kuten, miten äänestysten ja ehdotuksien halutaan toimivan. + +### Valtuuttaminen {#governance-delegation} + +Valtuuttaminen on DAOn versiointi edustuksellisesta demokratiasta. Rahakkeiden haltijat delegoivat äänensä kanditaateille, jotka ovat ilmoittaneet halukkuutensa ja jotka sitoutuvat ohjaamaan protokollaa sekä pysymään ajan tasalla. + +#### Tunnettu esimerkki {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) – ENS-järjestelmän haltijat voivat siirtää äänensä työhön osallistuville yhteisön jäsenille. + +### Automaattinen transaktioiden hallinnointi {#governance-example} + +Monissa DAOissa tapahtumat suoritetaan automaattisesti, jos jäsenten päätösvaltaisuus on vahvistettu. + +#### Tunnettu esimerkki {#governance-example} + +[Nouns](https://nouns.wtf) – Nouns DAOssa transaktio käynnistetään automaattisesti, jos äänestys todetaan päätösvaltaiseksi ja enemmistö äänestää samansuuntaisesti, paitsi perustajajäsenten käyttäessä mahdollisuutta veto-oikeuteen. + +### Multisig-hallinnointi {#governance-example} + +Vaikka DAOlla voi olla tuhansia äänioikeutettuja jäseniä sen varat säilytetään lompakossa, jonka jakaa 5-20 aktiivista yhteisön luotettua ns. doxxed jäsentä (jäsenien julkiset profiilit ovat tunnettuja yhteisön sisällä). Äänestyksen jälkeen multisig-allekirjoittajat toteuttavat yhteisön tahdon. + +## DAOn lait {#dao-laws} + +Vuonna 1977 Wyoming keksi LLC:n, joka suojelee yrittäjiä ja rajoittaa heidän vastuutaan. Äskettäin samainen taho toimi pioneerina DAO-lain asettamisen, jolla määritellään DAOn laillinen status. Tällä hetkellä Wyomingilla, Vermontilla ja Neitsytsaarilla on DAO-lakeja jossain muodossa. + +### Tunnettu esimerkki {#law-example} + +[CityDAO](https://citydao.io) – CityDAO hyödynsi Wyomingin DAO-lakia 40 hehtaarin maa-alueen ostossa lähellä Yellowstonen kansallispuistoa. + +## DAO-jäsenyys {#dao-membership} + +DAO-jäsenyydessä on erilaisia malleja. Jäsenyys määrittelee, miten äänestys toimii, DAOn muiden avainominaisuuksien ohella. + +### Rahakkeisiin perustuva jäsenyys {#token-based-membership} + +Ei yleensä vaadi luvitusta tai valtuuksia, rahakekohtaisia ehtoja löytyy. Useimmista näillä hallinnollisilla rahakkeilla voidaan käydä vapaasti kauppaa hajautetuilla vaihtotoreilla. Joissakin tapauksissa jäsenyys täytyy ansaita tarjoamalla likvidejä varoja tai esittämällä esimerkiksi proof-of-work -todisteen. Niin tai näin, rahakkeen omistaminen antaa oikeuden äänestämiseen. + +_Tämä menettelytapa kattaa laajasti hajautettuja protokollia ja rahakkeita._ + +#### Tunnettu esimerkki {#token-example} + +[MakerDAO](https://makerdao.com) – MakerDAOn tunnus on MKR on laajalti saatavilla hajautetun vaihdon pörsseissä. Kuka tahansa voi ostaa äänivaltaa Maker-protokollan tulevaisuuden hallintaan. + +### Jäsenosuus {#share-based-membership} + +Osuuksiin perustuvat DAOt vaativat enemmän käyttövaltuuksia, mutta ovat melko avoimia Voit anoa jäsenyyttä DAOon, ja luontevaa on tarjota vastikkeeksi yhteisölle jotakin arvonlisää, kuten vapaaehtoistyötä tai rahakkeita. Osuudet edustavat äänivaltaa ja omistajuutta. Jäsenet voivat poistua koska tahansa omaisuueränsä mukanaan. + +_Tyypillisiä jäseniä ovat tiiviit, ihmiskeskeiset organisaatiot, kuten hyväntekeväisyysyhdistykset, työosuuskunnat ja investoijat. Voi kattaa myös protokollia ja rahakkeita._ + +#### Tunnettu esimerkki {#share-example} + +[MolochDAO](http://molochdao.com/) – MolochDAO keskittyy Ethereum-projektien rahoittamiseen. Ryhmään jäseneksi kutsutaan. Jäsenet arvioivat kutsuttavan osaamista ja pääomien riittävyyttä sekä kapasiteettia tehdä arvioita potentiaalisista rahoitusehdokkaista. Et voi ostaa pääsyä DAOon avoimilta markkinoilta. + +### Maineeseen perustuva jäsenyys {#reputation-based-membership} + +Maineella on vaikutusta osallistumiseen ja äänivaltaan DAOssa. Toisin kuten rahakkeisiin tai osuuksiin perustuvassa jäsenyysmallissa, DAOissa, joihin hyväksytään maineen perusteella, omistajuus ei siirry osallistujille. Mainetta ei voi ostaa, siirtää tai osittaa: DAOn jäsenten on ansaittava maineensa osallistumisella. On-chain-äänestäminen on luvatonta, ja potentiaaliset jäsenet voivat vapaasti ehdottaa DAOon uusia jäseniä sekä anoa mainetta tai rahakkeita vastineeksi panoksestaan. + +_Käytetään tyypillisesti protokollien ja dAppsin hajautettuun kehittämiseen ja hallintoon, mutta sopii myös hyvin monenlaisiin järjestöihin, kuten hyväntekeväisyysjärjestöihin, työyhteisöihin, sijoitusklubeihin jne._ + +#### Tunnettu esimerkki {#reputation-example} + +[DXdao](https://DXdao.eth.link) – DXdao on suvereeni kollektiivinen järjestelmä, joka on hallinnoinut hajautettuja protokollia ja sovelluksia vuodesta 2019 alkaen. Se hyödyntää mainepohjaista hallintotapaa ja holografista konsensusta koordinoidakseen ja hallinnoidakseen varoja, joten kukaan ei voi ostaa siellä vaikutusvaltaa. + +## Liity DAOon tai perusta DAO (hajautettu itsenäinen yhteisö) {#join-start-a-dao} + +### Liity DAOon {#join-a-dao} + +- [Ethereum-yhteisön DAOt](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [DAOHausin lista DAOista](https://app.daohaus.club/explore) +- [Tally.xyz luettelo DAOista](https://www.tally.xyz) + +### Perusta DAO {#start-a-dao} + +- [Kutsu DAO DAOHausilla](https://app.daohaus.club/summon) +- [Käynnistä hallinnointi-DAO Tallyn avulla](https://www.tally.xyz/add-a-dao) +- [Luo Aragon-käyttöinen DAO](https://aragon.org/product) +- [Aloita seikkailu pioneerien kanssa](https://colony.io/) +- [Luo DAO DAOstackin holografisella konsensuksella](https://alchemy.daostack.io/daos/create) + +## Runsaasti lisää tietoa {#further-reading} + +### DAOn artikkelit {#dao-articles} + +- [Mikä DAO on?](https://aragon.org/dao) – [Aragon](https://aragon.org/) +- [DAO-käsikirja](https://daohandbook.xyz) +- [House of DAO](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metapeli](https://wiki.metagame.wtf/) +- [Mihin DAOa käytetään?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) +- [Miten aloittaa oma DAO-pohjainen digitaalinen yhteisö](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) +- [Mikä DAO on?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) +- [Mitä tarkoittaa holograafinen konsensus?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) – [DAOstack](https://daostack.io/) +- [DAOt eivät ole yrityksiä: kuinka hajauttaminen itsenäisissä organisaatioissa luo vaikuttavuutta, Vitalikia mukaellen](https://vitalik.ca/general/2022/09/20/daos.html) +- [DAOs, DACs, DAs and More: An Incomplete Terminology Guide – DAOt, DACt, DAt ja muita vastaavia: Epätäydellinen terminologia -opas](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Ethereum Blog](https://blog.ethereum.org) + +### Videoita {#videos} + +- [Mikä on DAOn rooli kryptoissa?](https://youtu.be/KHm0uUPqmVE) +- [Can a DAO Build a City? - Voisiko DAO rakentaa kaupungin?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/src/content/translations/fi/dapps/index.md b/public/content/translations/fi/dapps/index.md similarity index 100% rename from src/content/translations/fi/dapps/index.md rename to public/content/translations/fi/dapps/index.md diff --git a/src/content/translations/fi/enterprise/index.md b/public/content/translations/fi/enterprise/index.md similarity index 100% rename from src/content/translations/fi/enterprise/index.md rename to public/content/translations/fi/enterprise/index.md diff --git a/src/content/translations/fi/learn/index.md b/public/content/translations/fi/learn/index.md similarity index 100% rename from src/content/translations/fi/learn/index.md rename to public/content/translations/fi/learn/index.md diff --git a/public/content/translations/fi/nft/index.md b/public/content/translations/fi/nft/index.md new file mode 100644 index 00000000000..f856f2cb9ca --- /dev/null +++ b/public/content/translations/fi/nft/index.md @@ -0,0 +1,356 @@ +--- +title: Ainutlaatuiset rahakkeet (NFT) +description: Yleiskatsaus Ethereum-järjestelmän NFT:ihin +lang: fi +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: Eth-logo hologrammina heijastettuna. +summaryPoint1: Tapa esittää mitä tahansa ainutlaatuista digitaalisena Ethereum-omaisuuseränä. +summaryPoint2: NFT:t antavat valtaa sisällöntuottajille ennen näkemättömällä tavalla. +summaryPoint3: Toimii Ethereum-lohkoketjun älysopimuksilla. +--- + +Digitaalinen taide ja keräilykokoelmat saavat aivan uutta voimaa ja näkyvyyttä NFT:n avulla. Digitaalisten taiteilijoiden liiketoiminta on muutoksessa kryptoyleisölle myynnin voimakkaan kasvun myötä. Julkkikset puolestaan huomaavat uuden tavan kohdata fanejaan. Digitaalinen taide on vain yksi keinoista hyödyntää NFT:itä. Niitä voidaan hyödyntää myös ainutlaatuisen omaisuuden omistajuuden todistamiseen. Esimerkkinä digitaalisen maailma tai reaalimaailman ei-korvattava token. + +Jos Andy Warhol olisi syntynyt 90-luvun lopulla, hän todennäköisesti olisi julkaissut rahakkeen Campbell's Soup -teoksesta NFT:nä. On vain ajan kysymys milloin Kanye vie Yeezys'n Ethereumiin. Jonakin päivänä saatat todentaa autosi omistajuuden NFTllä. + +## Mikä on NFT (non fungible token)? {#what-are-nfts} + +NFTt ova rahakkeita, joilla voidaan todentaa omistajuus ainulaatuiselle asialle, kohteelle tai kappaleelle. Rahakkeilla voidaan todentaa taiteen, keräilyesineiden, -kokoelmien ja jopa kiinteistöjen omistajuutta. Niillä voi olla vain yksi Ethereum-lohkoketjussa vahvistettu omistaja kerrallaan - kukaan ei voi muokata omistajuusrekisteriä tai tehdä kopiota olemassa olevasta NFTsta. + +NFT (non-fungible token) tarkoittaa uniikkia rahaketta, joka ei ole korvattavissa. Uniikki on termi, jota käytetään kuvaamaan yksilöllistä kappaletta kuten huonekalua, musiikkikappaletta tai tietokonettasi. Nämä asiat tai kappaleet ovat sikäli uniikkeja, koska ne sisältävät ainutlaatuisia ominaisuuksia. + +Vaihdettavat asiat tai kappaleet, toisin sanoen, voidaan vaihtaa vastaaviin, koska nykyarvo määrittää niitä enemmän kuin ainutlaatuiset ominaisuudet. Esimerkiksi, Etherit tai dollarit ovat vaihdettavissa koska 1 ETH / $1USD on vaihdettavissa vastaavaan 1 ETH / $1 USD. + + + +## Omaisuuserien internet {#internet-of-assets} + +NFTt ja Ethereum ratkaisevat joitakin interentin luomia ongelmia. Kaiken digitalisoituessa syntyy tarve erilaisten abstraktien ominaisuuksien omistajuuden todentamiseen. Muistettava on, että digitaaliset kappaleet usein toimivat yhdessä niihin liittyvän tuotteen kanssa. Et voi jälleenmyydä esim. iTunes mp3sta, jonka olet ostanut, tai et voi vaihtaa yrityksen bonuksia toisen vastaavan bonuksiin, vaikka markkinaa löytyisikin. + +Kuinka NFT muuttaa tiedon tallentamista, käsittelyä ja hyödyntämistä netissä. Vertailua nykywebiin. + +### Vertailu {#nft-comparison} + +| NFT internet | Internet tänään | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| NFTt ovat digitaalisesti ainutlaatuisia. | Kopio tiedostosta, kuten .mp3 tai .jpg, on sama kuin alkuperäinen. | +| Jokaisella NFTllä on omistaja, jonka omistajuus on julkisesti vahvistettu ja nähtävissä. | Digitaalisessa muodossa olevien asioiden/esineiden omistajuus tallennetaan instituutioiden servereille - sinun täytyy luottaa niihin. | +| NFTt toimivat yhteen minkä tahansa Ethereumiin rakennetun kanssa. NFTllä luotu pääsylippu voidaan myydä millä tahansa Ethereumin markkinalla. Vaihto täysin toisentyyppiseen NFTiin onnistuu. Voit vaihtaa taidetta vaikkapa pääsylippuun! | Yritysten, jotka käyttävät digitaalisia esineitä/asioita, tulee rakentaa oma infrastruktuuri niille. Esimerkiksi sovellus, joka myöntää digitaalisia pääsylippuja tapahtumiin, joutuu rakentamaan oman vaihtoalustan. | +| Sisällöntuottajat voivat myydä töitään missä tahansa ja heillä on pääsy globaaliin markkinaan. | Sisällöntuottajat/taiteilijat luottavat kolmansien alustoihin ja infraan, joka heillä on käytettävissään. Näihin liittyy usein käyttöehtoja tai -rajoituksia sekä maantieteellisiä rajoja. | +| Sisällöntuottajat/taiteilijat voivat todistaa oikeutensa teokseen ja saada jälleenmyynnistä rojalteja suoraan. | Alustat, kuten musiikin suoratoistopalvelut, pitävät itsellään suurimman osan myynnin tuotoista. | +| Esineitä voidaan hyödyntää yllättävillä tavoilla. Voit esimerkiksi käyttää digitaalista taideteosta kryptolainan vakuutena. | | + +### NFT esimerkkejä {#nft-examples} + +NFT-järjestelmä on suhteellisen uusi. Teoriassa, mikä tahansa uniikki asia, jonka omistajuus tulee todentaa, voidaan liittää NFTiin. Esimerkkejä NFTien soveltamisesta, helpottamaan ymmärtämistä: + +- [Ainutlaatuinen digitaalinen taideteos](https://foundation.app/artworks) +- [Ainutlaatuinen tennari, josta rajoitettu erä](https://www.metagrail.co/auctions/91cf83fb-3477-4155-aae8-6dcb9b853397) +- [Peliin liittyvä digitaalinen kohde](https://market.decentraland.org/) +- [Essee](https://zora.co/0x517bab7661C315C63C6465EEd1b4248e6f7FE183/145) +- [Digitaalinen keräilykokoelma](https://www.larvalabs.com/cryptopunks/details/1) +- [Verkkotunnus (domain)](https://app.ens.domains/name/ethereum.eth) +- [Pääsylippu tapahtumaan tai digitaalinen kuponki](https://www.yellowheart.io/) +- [Osta reaalimaailman tuotteita](https://www.tangible.store/) +- [Kiinteistömurto-osakkeet](https://realt.co/) +- [Tutkintotodistukset](https://www.degreecert.com/) +- [Musiikin rojaltit NFTin kautta](https://opulous.org/) +- [Siirry ansaintaan](https://yeticoineth.com/about.html) +- [Digitaalinen identiteetti](https://photochromic.io/) + +### ethereum.org sovelluksia {#ethereum-org-examples} + +Käytämme NFTeita tunnustuksena osallistujille ja meillä on jopa oma NFT-verkkotunnus. + +#### POAP (proof of attendance protocol) {#poaps} + +Osallistumalla ethereum.org kehitystyöhön, voit lunastaa POAP NFTn. Näin todistat osallistuneesi "tapahtumaan" tai täsmällisemmin kehitystyöhön, tavalla tai toisella. Joissakin krypto-tapaamisissa POAPia on käytetty pääsylippuna tapahtumaan. [Lisää osallistumisesta](/contributing/#poap). + +![ethereum.org POAP](./poap.png) + +#### ethereum.eth {#ethereum-dot-eth} + +Sivustolla on vaihtoehtoinen verkkotunnus, jota NFT tukee, **ethereum.eth**. Verkkotunnusjärjestelmän (DNS=domain name system) tarjoaja hallinnoi keskitetysti osoitetta `.org` , kun taas ethereum`.eth` on rekisteröity Ethereumille, Ethereumin palvelun kautta (ENS = Ethereum name system). Omistamme ja hallinnoimme sen. [Tarkista ENS-tietueemme](https://app.ens.domains/name/ethereum.eth) + +[Lisätietoa ENSsta](https://app.ens.domains) + +## Kuinka NFTt tomivat? {#how-nfts-work} + +NFTt eroavat ERC-20-rahakkeista, kuten DAI tai LINK, sillä jokainen yksittäinen rahake on täysin ainutlaatuinen. NFTt mahdollistavat omistajuuden määrittämisen tai omistajuuden vaatimisen mihin tahansa ainutlaatuiseen digitaaliseen dataan, ja Ethereumin lohkoketjussa hallitaan lokikirjaa omistajuudesta. NFT lyödään mistä tahansa digitaalisista esineistä tai edustamaan digitaalisesti reaalimaailman hyödykkeitä. NFT voisi edustaa seuraavasti: + +- Digitaalinen taide + - GIF-kuvat + - Keräilykokoelmat ja -esineet + - Musiikki + - Videot +- Reaalimaailman hyödykkeet + - Autoon liittyvät asiakirjat (omistajuus ja huoltohistoria) + - Tapahtumien pääsyliput + - Laskutus digitaalisella valuutalla + - Lainsäädäntöön perustuvat määrämuotoiset asiakirjat + - Allekirjoitukset +- Vaihtoehtoja ja mahdollisuuksia on loputtomasti! + +Omistajuutta hallitaan ainutlaatuisella IDllä sekä metatiedoilla, jotka ovat jäljittelemättömiä. NFTit lyödään (painetaan, luodaan) älysopimuksilla, jotka osoittavat omistajuutta ja hallitsevat NFTin omistajuuden siirtymistä. Kun joku luo tai lyö NFTn, hän suorittaa koodin, joka on tallennettu eri standardien mukaisiin älykkäisiin sopimuksiin kuten [ERC-721](/developers/docs/standards/tokens/erc-721/). Tieto lisätään lohkoketjuun, jossa NFTa hallinnoidaan. NFTn luomisen prosessi ylhäältä alas kuvataan seuraavasti: + +- Luodaan uusi lohko +- Tarkastetaan tiedot +- Tallennetaan tiedot lohkoketjuun + +NFTlla on joitakin erityisominaisuuksia: + +- Jokaisella rahakkeella on yksilöllinen tunnus, joka linkittää sen suoraan Ethereum-osoitteeseen. +- Rahakkeet eivät ole suoraan keskenään vaihdettavissa vaihtosuhteella 1:1. Kun taas 1 ETH on tarkalleen sama kuin toinen 1 ETH. Näin ei ole NFTn kohdalla. +- Jokaisella NFT-rahakkeella on omistaja ja tämä tieto on helposti todennettavissa. +- Tieto on tallennettu Ethereumiin ja sieltä käsin myytävissä tai ostettavissa millä tahansa Ethereum-pohjaisella NFT-markkinalla. + +Toisin sanoen, jos _omistaa_ NFTn: + +- Voit sujuvasti todistaa omistajuutesi. + - Todistus NFTn omistuksesta toimii samankaltaisesti kuin todistettaessa, että sinulla on Ethereitä tililläsi. + - Jos esimerkiksi ostat NFTn, omistajuus siirretään lompakkoosi vaikkapa julkisen osoitteesi kautta. + - Rahake osoittaa, että digitaalinen tiedostosi on alkuperäinen. + - Yksityinen avaimesi todistaa omistusoikeuden alkuperäiseen tiedostoon. + - Sisällön luojan julkinen avainen toimii kyseisen teoksen aitouden todistajana. + - Sisällön tai teoksen luojan julkinen avain on pysyvä osa teoksen digitaalisen rahakkeen historiaa. Hallussasi olevan sisällön tai teoksen luojan julkinen avain -tieto kertoo, kuka nimenomainen henkilö on luonut teoksen ja voi näin vaikuttaa sen markkina-arvoonkin (vastavoima väärennöksille). + - Toinen tapa ajatella, että omistat NFTn on allekirjoittaa viestit osoittaaksesi, että omistat osoitteen "takana" olevan yksityisavaimen. + - Kuten mainittua, yksityinen avaimesi on alkuperäisen kappaleen omistusoikeuden todiste. Tämä ilmentää sitä, että yksityiset avaimet osoitteen takana hallitsevat NFTia. + - Allekirjoitettua viestiä voidaan käyttää osoittamaan, että omistat ko. yksityiset avaimet paljastamatta niitä kenellekään ja samalla todisteena NFTn omistuksesta! +- Manipulointi on lähes mahdotonta! +- Voit myydä NFTn ja jossakin tapauksissa voit ansaita alkuperäisen teoksen tai sisällön luojan rojalteja edelleen myynnistä. +- Voit myös pitää hallussasi, tietäen, että omaisuus säilyy suojattuna Ethereumissa, valitsemassasi lompakossa. + +Jos _luot_ NFTn: + +- Voit helposti todistaa olevasi luoja. +- Määrität liikkeelle laskettavan lukumäärän. +- Voit ansaita rojalteja, joka kerta kun teos jälleenmyydään. +- Voit myydä sen millä tahansa NFT-markkinalla tai kahdenvälisessä verkossa (peer-to-peer). Myynti ei ole sidottu mihinkään yhteen alustaan ja et tarvitse kolmatta osapuolta välittäjäksi. + +### Liikkeelle laskettava painos- tai lukumäärä {#scarcity} + +NFTn luoja päättää kuinka runsaasti teoksesta tai asiasta luodaan kappaleita. + +Kuvittele esimerkkinä urheilutapahtuman pääsylippua. Kuten tapahtuman järjestäjä päättä kuinka monta lippua tapahtumaan myydään, NFTn luoja päättää kuinka monta alkuperäiskappaletta on olemassa. Joskus nämä ovat täsmällisiä kaksoiskappaleita kuten 5000 General Admission pääsylippua. Joskus luodut NFTt voivat olla hyvin samankaltaisia vain hiuksenhienoilla eroilla, kuten pääsylippu osoitetulla istumapaikalla. Jossakin tapauksessa luoja luo vain yhden NFTn, joka edustaa erittäin harvinaista asiaa tai esinettä. + +Kaikissa näissä tapauksissa NFTlla on yksilöllinen tunniste (kuten viivakoodi perinteisessä "lipussa"), ja vain yksi omistaja. Painosmäärän määrittely NFTlle on siis teoksen luojan arvioitava ja päätettävä asia. Teoksen tai sisällön luojalla voi olla tarve luoda vain yksi NFT teoksestaan tai syitä luoda tuhansia versioita siitä. Muista, että nämä tiedot ovat kaikki julkisia. + +### Rojaltit {#royalties} + +Jotkut NFTt tilittävät automaattisesti rojalteja luojalle, kun NFT myydään. Konsepti on edelleen kehittyvä, mutta se on jo yksi tehokkaimmista. [EulerBeats Originals](https://eulerbeats.com/) -omistajat ansaitsevat 8% rojaltin joka kerta, kun NFT myydään edelleen. Jotkut alustat kuten [Foundation](https://foundation.app) and [Zora](https://zora.co/), tuottavat myynnistä rojalteja taiteilijoille. + +Kaikki tämä toimii automaattisesti, joten teoksen tai sisällön luoja ansaitsee rojalteja omasta työstään, vaikkapa taiteesta ilman suurempia oheisponnistuksia. Teokset siirtyvät omistajalta toiselle sujuvasti. Tällä hetkellä rojaltien maksu on manuaalista ja epätarkkaa monessakin tapauksessa - monet teoksien tai sisältöjen luojat eivät ansaitse työstään sitä, mikä heidän kuuluisi ansaita. Mikäli NFTin on ohjelmoitu rojalti, sen tilitys toteutuu väistämättä kaupankäynnin yhteydessä. + +## Mihin NFTia voidaan käyttää? {#nft-use-cases} + +Lisätietoja pidemmälle viedyistä käyttötapauksista ja visioista, joihin Ethereum-pohjaisia NFTeita voidaan hyödyntää. + +- [Digitaalinen sisältö](#nfts-for-creators) +- [Pelien sisällä olevat kohteet, asiat ja tavarat (item)](#nft-gaming) +- [Verkkotunnusten nimet](#nft-domains) +- [Fyysiset, reaalimaailman tuotteet](#nft-physical-items) +- [Sijoitukset ja vakuudet](#nfts-and-defi) +- [Tokenporttaus](#tokengating) + + + +### Ansainnan oikeudenmukaisuuden varmistaminen luoville aloille ja sen työntekijöille {#nfts-for-creators} + +Kattavinta NFTien käyttö on digitaalisten sisältöjen toimialalla. Tämä johtuu perinteisen tulonjaon koetusta epäoikeudenmukaisuudesta ko. toimialalla. Sisällön ja teosten tuottajien ansainnan potentiaali häviää nyt käytettävissä oleviin alustoihin. + +Kun taiteilija julkaisee työn sosiaalisessa verkostossa, tuotot ohjautuvat lopulta mainostuloina alustalle. Taitelijat saavat toki näkyvyyttä työlleen, mutta laskuja sillä ei maksa. + +NFTin voima on uudenlaisessa alustataloudessa, jossa teoksen omistajuus pysyy tekijällä ja samalla näkyvyys on taattu. Omistajuus sisältyy itse teokseen. + +Kun sisältöä myydään, ansainta ohjautuu suoraan luojalle. Jos uusi sisällön tai teoksen omistaja myy NFTin, alkuperäinen teoksen luoja saa automaattisesti rojaltit itselleen. Tämä on varmistettu teoksen sisältämässä metadatassa, jota ei voi muokata. Data sisältää alkuperäisen luojan osoitteen. + + +
Tutki, osta tai luo omia NFT-toteutuksia
+ + Tutustu NFT-taiteeseen + +
+ +#### Copy-paste-ongelma {#nfts-copy-paste} + +Vastustajat tuovat usein esiin argumentin siitä, että NFTit "ovat tyhmiä", koska näyttökaappauksella voit hankkia itsellesi NFT-taidetta. "Katsokaa, nyt minulla on tuo kuva ilmaiseksi!" he naureskelevat. + +Kyllä toki. Mutta tekeekö googlattu kuvaleike Picasson Guernicasta oikeutta taiteilijalle ja sinulle: taiteen ja henkilön tekemän työn arvostukselle? + +Lopulta varsinainen teoksen ja työn arvo määräytyy markkinan mukaan, jolloin on hyvä muistaa oikeudenmukaisuus. Mitä enemmän sisältöä jaetaan, sitä enemmän se myöskin kerää arvostusta. + +Todellisen ja alkuperäisen asian tai teoksen omistamisella tulee olemaan aina enemmän arvoa kuin kopiolla. + + + +### Edistetään pelaamisen mahdollisuuksia {#nft-gaming} + +NFTt kiinnostavat pelien kehittäjiä. NFTt voivat välittää tietoa pelin kohteista (item), ruokkia peli-alaa ja luoda uudenlaisia etuja pelaajille. + +Tavanomaisissa peleissä voit jo nyt ostaa asioita tai kohteita käyttääksesi niitä pelissä. NFT-pelikohteen tai -asian voit jälleenmyydä pelin jälkeen ja saada käyttämäsi rahat takaisin. Saatatpa jopa ansaita lisää, jos kohteesta on tullut aiempaa halutumpi. + +Pelin kehittäjien toimiessa NFTin liikkeellelaskijana, jostakin kohteesta tai tavarasta, he voisivat ansaita rojaltin joka kerta, kun kohde jälleenmyydään avoimella markkinalla. Näin luodaan tahoja hyödyttävä liiketoimintamalli, jossa sekä pelaajat että pelien kehittäjät voivat ansaita toissijaisista NFT-markkinoista. + +Tämä johtaa siihen, että mikäli peliä ei ylläpidettäisi, hankkimasi keräilykohteet säilyvät omistuksessasi. + +Pelin kohteet pysyvät olemassa, vaikka itse peli päättyisi. Vaikka peliä ei enää pidettäisi yllä, sinun kohteesi ovat aina sinun hallinnassasi. Tämä tarkoittaa, että pelin sisältämistä esineistä tulee digitaalisia muistoesineitä ja niiden arvo on pelin ulkopuolella. + +Decentraland, virtuaalinen reality-peli, jossa NFTt edustavat tontteja tai kiinteistöjä, joita voit käyttää tarpeesi mukaan. + + +
Tutustu Ethereum-peleihin, joita NFTt boostaavat...
+ + Tutki NFT-pelejä + +
+ + + +### Kuinka teet Ethereum-osoitteesta mieleenpainuvamman {#nft-domains} + +Ethereum Name Service (ENS) käyttää NFTa tuottaakseen sinulle Ethereum-osoitteen, joka on helpompi muistaa: `mywallet.eth`. Tämä tarkoittaa, että voit pyytää jotakuta lähettämään sinut ETH `mywallet.eth` pikemminkin kuin `0x123456789.....`. + +Tämä toimii samalla tavalla kuin sivuston verkkotunnus, joka tekee IP-osoitteesta mieleenpainuvamman. Ja kuten verkkotunnuksilla, ENSlla on arvo, joka perustuu pituuteen ja merkityksellisyyteen. ENSn avulla et tarvitse verkkotunnusta omistuksen siirtämiseeen. Sen sijaan voit käydä kauppaa ENS-nimillä NFT-markkinalla. + +ENS-nimesi voi: + +- Vastaanottaa kryptoja ja muita NFTta. +- Osoittaa hajautetuille sivustoille kuten [ethereum.eth](https://ethereum.eth.link). [Lue lisää sivustosi hajauttamisesta](https://docs.ipfs.io/how-to/websites-on-ipfs/link-a-domain/#domain-name-service-dns) +- Tallentaa kaikki halutut tiedot mukaanlukien profiilitiedot kuten sähköpostisoitteet ja Twitter-käyttäjätiedot. + + + +### Fyysiset, reaalimaailman tuotteet {#nft-physical-items} + +Fyysisten esineiden muuttaminen virtuaalisiksi rahakkeiksi ei ole vielä kehittynyt samoin kuin niiden digitaaliset vastineet. On olemassa runsaasti hankkeita, jotka tutkivat esimerkiksi kiinteistöjen, one-of-a-kind -muotiesineiden ja vastaavien uniikkien tuotteiden virtualisoimista rahakkeiksi. + +Koska NFTt ovat pääasiassa omistajuus- tai uniikkiustodisteita, voit jonakin päivänä ostaa auton tai kodin käyttämällä Ethereitä ja saada omistukseen liittyvät asiakirjat NFTna vastineeksi (samassa siirtotapahtumassa). Kun digitalisaatio edistyy, voi olla tavallista, että Ethereum-lompakkosi on kotisi avain, joka avaa lukituksen käyttämällä omistajuustodistetta koodina avaukselle. + +Koska NFTn takana voi olla arvokkaita omaisuuseriä, kuten asuntoja tai autoja, voit käyttää sitä virtuaalilainojen hankkimiseen. Tämä hyödyttää erityisesti niitä, jotka eivät ole kryptovaluutta-rikkaita, mutta omistavat fyysisiä omaisuuseriä. [Lue lisää DeFista](/defi/) + + + +### NFT ja DeFi {#nfts-and-defi} + +NFT-maailma ja [hajautettu rahoitus (DeFi)](/defi/) hakevat synergiaa mielenkiintoisilla tavoilla. + +#### NFT-vakuudelliset lainat {#nft-backed-loans} + +On olemassa DeFi-sovelluksia, joiden avulla voit lainata rahaa vakuuden avulla. Esimerkiksi 10 ETH vakuudeksi voit lainata 5000 DAI ([vakaata kryptovaluuttaa](/stablecoins/)). Tämä takaa, että lainanantaja saa kryptonsa takaisin – jos lainanottaja ei maksa takaisin DAIta, vakuus lähetetään lainanantajalle. Kaikilla ei kuitenkaan ole tarpeeksi kryptoja käyttääkseen niitä vakuutena. + +Hankkeet alkavat tutkia NFTn käyttöä vakuutena. Kuvittele ostavasi harvinainen CryptoPunk NFTn takaisin - niiden arvo voi nousta $ 1000 päivässä. Käyttämällä tätä vakuutena, voit saada lainan samoilla säännöillä. Jos et maksa lainaa takaisin DAIna, omistamasi CryptoPunk lähetetään lainanantajalle vastineena tai vakuutena takaisinmaksusta. Käytäntö voisi toimia minkä tahansa kanssa, jonka muutat NFT-rahakkeeksi. + +Tämä ei ole ollenkaan vaikeaa Ethereumissa, koska molemmissa (NFT ja DeFi) on taustalla sama järjestelmäinfrasturktuuri. + +#### Osittainen omistajuus {#fractional-ownership} + +NFT-luojat voivat myös luoda osakkeita NFTlle. Sijoittajat ja fanit voivat hankkia osuuksia yhdestä NFTstä ilman, että heidän tarvitsee ostaa koko kohdetta. Tämä lisää mahdollisuuksia NFT-luojille ja keräilijöille. + +- NFTn osuuksia voidaan kaupata vaihtomarkkinoilla [DEXt](/defi/#dex) kuten Uniswap, eikä vain [NFT-markkinoilla](/dapps?category=collectibles). Se merkitsee enemmän ostajia ja myyjiä. +- NFTn kokonaishinta voidaan määritellä sen osuuksien perusteella. +- Sinulla on enemmän mahdollisuuksia omistaa ja hyötyä kohteistä, joista välität. On vaikeampaa hinnoitella NFTsta luopuminen. + +Tämä on vielä kokeellista, mutta voit oppia NFTn murto-osan omistamisesta seuraavilla vaihtotoreilla: + +- [NIFTEX](https://landing.niftex.com/) +- [NFTX](https://gallery.nftx.org/) + +Teoriassa tämä avaisi mahdollisuuden omistaa esimerkiksi osuus Picassoa. Sinusta tulisi osuudenomistaja Picasso NFTssa, jolloin sinulla on vaikutusvaltaa esimerkiksi tulonjakopäätöksiin. On todennäköistä että jonakin päivänä omistat murto-osan NFTsta ja hajautettu autonominen organisaatio (DAO) hallinnoi omaisuutta. + +Ethereum myötävaikuttaa vahvasti näihin organisaatioihin, jotka antavat tuntemattomille vaikkapa globaaleille osuuksienomistajille mahdollisuuden koordinoida toimintaansa ilman, että heidän tarvitsee välttämättä luottaa muihin ihmisiin. Tämä johtuu siitä, että pienintäkään kolikkoa ei voida käyttää ilman ryhmän hyväksyntää. + +Kuten mainittua, nämä ominaisuudet ovat kehittyviä. NFTt, DAOt ja muut rahakkeet ovat eri kehitysvaiheissa. Infrastruktuuri on jo olemassa ja toimii sujuvasti yhdessä, koska he puhuvat samaa kieltä: Ethereumia. Seuraa tilannetta. + +[Lisää DAOsta](/dao/) + +### Aitoustodistukset {#certificates} + +Yritykset, jotka tarjoavat väärennettyjä yliopistotodistuksia kuuluvat miljardibisnekseen, jota NFTt voivat auttaa torjumaan. NFTt voivat olla turvallinen ja nopea tapa varmentaa henkilön tutkintotiedot. + +[Etelä-Koreassa eräs yliopisto myöntää tutkintotodistuksia jo NFTna](https://forkast.news/headlines/south-korea-nfts-graduates-hoseo/), siinä toivossa, että NFTt parantavat hallinnollisten palvelujen saatavuutta ja estävät tutkintotodistusten väärentämisen. [Trinity Business School (TBS) Irlannissa suunnittelee NFT-tarjontaa vuodesta 2023 alkaen](https://trinitynews.ie/2022/04/business-school-to-offer-degree-nfts/). + + + +### Tokenporttaus {#tokengating} + +Tokenporttaus on tapa rajoittaa pääsyä johonkin ja NFTt ovat keinona avata pääsy. Käytön laajuus ja käyttötapa voivat vaihdella huomattavasti alustakohtaisesti, mutta suosittuja käyttötapauksia ovat yksityischatit ja e-commerce-tuotteet. + +Alusta, joka tokenporttaa, pyytää sinua luomaan yhteyden lompakollasi, jotta voit osoittaa vaaditun NFTn omistuksen. Jos sinulla on vaadittu NFT, pääsy hyväksytään. Jos taas ei ole, jäät "portille". NFTt ovat ainutlaatuisuuden vuoksi hyvä toteutustapa – et voi saada haluamaasi valeomistajuudella. + +Koska NFTt ovat Ethereumia, niitä voidaan käyttää tokenporttaukseen millä tahansa alustalla, joka ottaa NFTt käyttöön. Yksi omistamasi NFT voi siis avata pääsyn useisiin sisältöihin, yksityisiin chat-palveluihin ja eksklusiivisiin tuotteisiin eri sivustoilla ja sovelluksissa. + +Jos NFTn luomisessa ja jakamisessa on kyse yhteisö-sukupolvesta tai yhteisö-digitalisoinnista, tokenporttaamisessa on kyse yhteisö-huolenpidosta. On nähtävissä, että NFTitä käytetään enemmänkin jäsenyyden tai lojaalisuuden merkkinä - mainio tapa jakaa myös sen mukanaan tuomat palkkiot. + +#### Esimerkkejä: + +- [Collab.land](https://collab.land/) tokenporttaa Discord chat-palvelimet tai Telegram-ryhmät +- [Unlock protocol](https://unlock-protocol.com/) on protokolla tokenporttausta varten +- [Shopify](https://help.shopify.com/en/manual/products/digital-service-product/nfts) on kasvava lista sovelluksia, joiden avulla kauppiaat voivat tokenportata tuotteita ja alennuksia. + + + +## Ethereum ja NFTt (non-fungible-token) {#ethereum-and-nfts} + +Ethereum mahdollistaa NFTien toiminnan useista hyvistä syistä: + +- Transaktioiden historia ja rahakkeiden metatiedot ovat julkisesti todennettavissa - on helppo todistaa omistushistoria. +- Kun transaktio on vahvistettu, on melkein mahdotonta manipuloida tietoja omistuksen väärentämiseksi. +- Kaupankäynti NFTlla tapahtuu kahdenvälisesti, eikä siihen tarvita alustoja, jotka voivat ottaa huomattavia palkkioita korvauksena. +- Kaikki Ethereum tuotteet hyödyntävät samaa "backendiä". Toisin sanoen Ethereum-tuotteet ymmärtävät helposti toisiaan - NFTt ovat käytettävissä läpi tuotevalikoiman. Voit sujuvasti ostaa NFTn tuotteesta ja myydä sen toista NFTia vastaan. Sisällöntuottajana voit listata NFTt useista tuotteista samaan aikaan – jokaisella tuotteella on näin ajantasainen omistajuustieto. +- Ethereum ei koskaan "totaalisesti kaadu", joten rahakkeesi ovat myytävissä kaiken aikaan. + +## NFTien ympäristövaikutukset {#environmental-impact-nfts} + +NFTiden luonti ja siirtäminen ovat vain Ethereumin liiketoimia – NFTn lyöminen (minttaus), ostaminen, vaihtaminen tai kanssakäyminen NFTn kanssa ei suoraan kuluta energiaa. [The Mergen](/roadmap/merge) jälkeen Ethereumista on tullut matalaenerginen lohkoketju, mikä tarkoittaa, että sen ympäristövaikutukset ovat vähäisiä. + +[Lisätietoa Ethereumin energiankulutuksesta](/energy-consumption/). + +### Älä syytä NFT:itä {#nft-qualities} + +Koko NFT-ekosysteemi toimii, koska Ethereum on hajautettu ja turvallinen. + +Hajautuksen merkitys on siinä, että sinä ja muut voivat vahvistaa omistavansa jotakin. Kaikki tämä niin, ettei tarvitse luottaa kolmansiin osapuoliin tai myöntää heille oikeuksia. Hehän voivat määrätä omia sääntöjään halutessaan. Tämä tarkoittaa myös että NFTisi on käytettävissä monilla markkinoilla ja tuotekategorioissa. + +Kukaan ei voi "copy-pastettaa" NFTsi tai varastaa sitä. + +Nämä Ethereumin ominaisuudet tekevät uniikkien asioiden tai kohteiden digitaalisen omistamisen mahdolliseksi ja saat oikeudenmukaisen hinnan tuottamallesi sisällölle. Ethereum suojaa digitaalisia varantoja käyttämällä konseuskseen ['proof-of-stake -mekanismia'](/developers/docs/consensus-mechanisms/pos). Edellinen on vähähiilinen menetelmä sen määrittämiseksi, kuka voi lisätä lohkon tapahtumia ketjuun. Sitä pidetään varmempana kuin energiaintensiivistä vaihtoehtoa, ['proof-of-work -mekanismia'](/developers/docs/consensus-mechanisms/pow). NFTt liitettiin usein korkeaan energiankulutukseen, koska aiemmin Ethereum käytti varmistamiseen proof-of-work -mekanismia. Tämä ei enää pidä paikkaansa. + +#### NFTn lyöminen {#minting-nfts} + +Kun lyöt (mint) NFTn, tapahtuu muutamia asioita: + +- NFT täytyy olla varmistettuna omaisuuseränä lohkoketjussa. +- NFTn omistajan tilin saldo pitää olla päivitetty niin, että omaisuuserä sisältyy siihen. Tämä mahdollistaa kaupankäynnin jatkossa tai omistajuuden vahvistamisen. +- Transaktiot, jotka vahvistavat yllä olevat vaiheet, lisätään lohkoon ja ikuistetaan ketjun osaksi. +- Lohko tulee vahvistaa kaikkien verkoston osallistujien toimesta "oikeaksi". Tämä yhteisymmärrys poistaa välikäsien tarpeen, koska verkosto on yhtä mieltä siitä, että NFT on olemassa ja kuuluu sinulle. Se sijaitsee ketjussa, josta kuka tahansa voi asian varmistaa. Tällä tavoin Ethereum auttaa NFT-luojia saavuttamaan ansainnan oikeudenmukaisuutta. + +Lohkojen tuottajat ja varmentajat hoitavat kaikki nämä tehtävät. Ehdottajat lisäävät NFT-tapahtumasi lohkoketjuun ja lähettävät sen verkostolle. Varmentajat tarkastavat, että tapahtuma on validi ja lisäävät sen tietokantoihinsa. Kryptomaailma käyttää runsaasti kannustimia varmistamaan sen, että varmentajat toimivat eettisesti. Muuten kuka tahansa voisi väittää omistavansa NFTn, jonka juuri löit ja petollisesti siirtää sen omiin nimiinsä. + +#### NFTn turvallisuus {#nft-security} + +Ethereumin turvallisuus syntyy hajautetusta sijoittamisesta siihen. Järjestelmään on sisäänrakennettuna taloudellinen puolustus pahansuopia toimintoja vastaan, joten Ethereumia ei voi peukaloida. Tämä tekee NFTt mahdolliseksi. Kun NFT-tapahtumasi sisältävä lohko on valmis, hyökkääjälle maksaisi miljoonia ethereitä kyetä muuttamaan sitä. Ethereum-softat tunnistaisivat välittömästi epärehellisen NFTn muokkaus tai kaappausyrityksen ja vihamielistä toimijaa rangaistaisiin taloudellisesti sekä poistamalla hänet yhteisöstä. + +Turvallisuushaasteet, jotka liittyvät NFTeihin, ovat monesti kalasteluyrityksiä, älysopimuksen haavoittuvuuksia tai käyttäjien virheitä (kuten yksityisavaimen paljastaminen). Lompakkojen suojaus on keskeistä NFTen omistajille. + + + Lisää tietoturvasta ja suojauksesta + + +## Rakennettu NFTien kanssa {#build-with-nfts} + +Useimmat NFTt on rakennettu johdonmukaisesti [ERC-721](/developers/docs/standards/tokens/erc-721/)-standardilla. On kuitenkin myös muita standardeja, joihin saatat haluta tutustua. [ERC-1155](/developers/docs/standards/tokens/erc-1155/)-standardi mahdollistaa osittain korvattavissa olevat rahakkeet, jotka ovat hyödyllisiä esimerkiksi pelaamisessa. Viimeaikoina [EIP-2309](https://eips.ethereum.org/EIPS/eip-2309)-standardia on ehdotettu louhinnan huomattavaan tehostamiseen. Tämä standardi mahdollistaa niin monien rahakkeiden lyömistä (mint) kuin haluat yhdessä transaktiossa! + +## Lisää luettavaa {#further-reading} + +- [Crypto art data](https://cryptoart.io/data) – Richard Chen, päivitetään automaattisesti +- [OpenSea: The NFT Bible – OpenSea: NFT-Raamattu](https://opensea.io/blog/guides/non-fungible-tokens/) – _Devin Fizner, 10 tammikuu 2020_ +- [A beginner's guide to NFTs – Aloittelijan opas NFT-maailmaan](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, January 2020_ +- [Kaikki, mitä sinun tarvitsee tietää metaversesta](https://foundation.app/blog/enter-the-metaverse) – _Foundation team, foundation.app_ +- ["CryptoArtists" eivät vahingoita planeettaa](https://medium.com/superrare/no-cryptoartists-arent-harming-the-planet-43182f72fc61) +- [Ethereumin energiankulutus](/energy-consumption/) +- [Ethereum NFT APIt](https://www.alchemy.com/list-of/nft-apis-on-ethereum) – _Alchemy_ + + diff --git a/src/content/translations/fil/bridges/index.md b/public/content/translations/fil/bridges/index.md similarity index 100% rename from src/content/translations/fil/bridges/index.md rename to public/content/translations/fil/bridges/index.md diff --git a/public/content/translations/fil/dao/index.md b/public/content/translations/fil/dao/index.md new file mode 100644 index 00000000000..a33158f9436 --- /dev/null +++ b/public/content/translations/fil/dao/index.md @@ -0,0 +1,165 @@ +--- +title: Mga decentralized autonomous organization (mga DAO) +description: Pangkalahatang-ideya ng mga DAO sa Ethereum +lang: fil +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: Representasyon ng botohan ng DAO sa isang panukala. +summaryPoint1: Mga komunidad ng mga miyembro na walang sentralisadong pamumuno. +summaryPoint2: Isang ligtas na paraan para makipag-collaborate sa mga hindi kakilala sa internet. +summaryPoint3: Isang lugar kung saan ligtas magbigay ng pondo para sa partikular na layunin. +--- + +## Ano ang mga DAO? {#what-are-daos} + +Ang DAO ay isang collectively-owned, blockchain-governed na organisasyon na naglalayong makamit ang iisang layunin. + +Ang mga DAO ay nagbibigay-daan sa atin na makipagtulungan sa mga kapwa natin sa buong mundo nang hindi kinakailangang umasa sa isang mapagmalasakit na pinuno para pamahalaan ang pera o operasyon. Walang CEO na gagastos sa pondo nang basta-basta o CFO na magmamanipula ng mga libro. Sa halip, ang mga blockchain-based na panuntunan na inilagay sa code ang nagtatakda sa kung paano gumagana ang organisasyon at paano ginagastos ang pondo. + +May mga built-in treasury ang mga ito na hindi maa-access ng kahit sino kung walang pahintulot mula sa grupo. Nagpapasya sa pamamagitan ng mga panukala at botohan para tiyaking may boses ang lahat sa organisasyon, at transparent na nangyayari ang lahat on-chain. + +## Bakit kailangan natin ang mga DAO? {#why-dao} + +Sa pagsisimula ng organisasyon kasama ng isang tao kung saan maglalabas ng pondo at pera, kailangang magtiwala nang husto sa mga makakatrabaho mo. Ngunit mahirap magtiwala sa isang taong nakausap mo lang sa internet. Sa pamamagitan ng mga DAO, hindi mo na kailangang magtiwala sa kahit sino sa grupo, kundi sa code lang mismo ng DAO, na 100% transparent at mave-verify ng kahit sino. + +Magbubukas ito ng maraming bagong oportunidad para sa global na collaboration at koordinasyon. + +### Paghahambing {#dao-comparison} + +| DAO | Isang tradisyonal na organisasyon | +| --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | +| Karaniwang pantay, at ganap na demokratiko. | Karaniwang may hirarkiya. | +| Kailangang magbotohan ang mga miyembro para ipatupad ang anumang pagbabago. | Depende sa structure, maaaring hilingin ang mga pagbabago mula sa iisang panig, o maaaring magkaroon ng botohan. | +| Bibilangin ang mga boto, at awtomatikong ipapatupad ang resulta kahit walang pinagkakatiwalaang intermediary. | Kung papayagan ang botohan, internal na binibilang ang mga boto, at dapat mano-manong pangasiwaan ang resulta ng botohan. | +| Awtomatikong decentralized ang pangangasiwa sa mga serbisyong iniaalok (halimbawa, pamamahagi ng philantropic funds). | Kailangang pangasiwaan ng tao, o ng centrally controlled automation, maaaring mamanipula. | +| Transparent at ganap na pampubliko ang lahat ng aktibidad. | Karaniwang pribado at hindi ipinapakita sa publiko ang aktibidad. | + +### Mga halimbawa ng DAO {#dao-examples} + +Upang mas madali itong maunawaan, narito ang ilang halimbawa kung paano maaaring gamitin ang DAO: + +- Charity – puwede kang tumanggap ng donasyon mula sa kahit sino sa mundo at bumoto sa kung aling mga layunin ang susuportahan. +- Collective ownership – puwede kang bumili ng mga physical at digital asset at puwedeng magbotohan ang mga miyembro sa kung paano gagamitin ang mga ito. +- Mga venture at grant – puwede kang bumuo ng venture fund kung saan pinagsama-sama ang kapital para sa investment at magbobotohan para pumili ng mga venture na susuportahan. Ang perang ibinayad ay maaaring i-redistribute sa mga miyembro ng DAO kalaunan. + +## Paano gumagana ang mga DAO? {#how-daos-work} + +Ang pundasyon ng isang DAO ay ang smart contract nito, na nagtatakda ng mga panuntunan ng organisasyon at nagpapanatili ng treasury ng grupo. Kapag live na ang kontrata sa Ethereum, walang sinumang makakapagbago ng mga panuntunan maliban sa pamamagitan ng boto. Kung may magtatangkang gumawa ng isang bagay na hindi saklaw ng mga panuntunan at logic sa code, hindi ito maisasagawa. At dahil itinatakda rin ng smart contract ang treasury, wala ring sinumang puwedeng gumastos ng pera nang walang pahintulot ng grupo. Ibig sabihin nito, hindi nangangailangan ang mga DAO ng isang sentral na awtoridad. Sa halip, ang grupo ay nagdedesisyon nang sama-sama, at ang mga pagbabayad ay awtomatikong pinapahintulutan kapag pumasa ang mga boto. + +Posible ito dahil hindi mababago ang mga smart contract kapag live na ang mga ito sa Ethereum. Hindi mo mae-edit nang basta-basta ang code (ang mga panuntunan ng DAO) nang hindi napapansin ng mga tao dahil ang lahat ay pampubliko. + + + Higit pa sa mga matalinong kontrata + + +## Ethereum at Mga DAO {#ethereum-and-daos} + +Ang Ethereum ang angkop na pundasyon para sa mga DAO dahil sa mga sumusunod: + +- Ipinapamahagi at napatunayan na ang sariling consensus ng Ethereum, kung kaya, mapagkakatiwalaan ng mga organisasyon ang network. +- Hindi na mababago ang smart contract code kapag live na ito, kahit ng mga may-ari nito. Dahil dito, tumatakbo ang DAO ayon sa mga panuntunang itinakda para dito. +- Nakakapagpadala/nakakatanggap ng pondo ang mga smart contract. Kung wala nito, kakailanganin mo ng mapagkakatiwalaang intermediary para pamahalaan ang pondo ng grupo. +- Napatunayan nang mas collaborative kaysa kompetitibo ang komunidad ng Ethereum, kung kaya, mabilis na lumalabas ang pinakamagagandang kagawian at mga support system. + +## Pamamahala ng DAO {#dao-governance} + +Maraming dapat isaalang-alang kapag namamahala ng DAO, tulad ng proseso ng pagboto at pagpapanukala. + +### Delegasyon {#governance-delegation} + +Ang delegasyon ay parang bersyon ng DAO ng representative democracy. Dine-delegate ng mga may-ari ng token ang kanilang mga boto sa mga user na nagpresenta ng kanilang sarili at nakatuon sa pangangalaga sa protocol at sa pananatiling updated. + +#### Isang kilalang halimbawa {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) – Maaaring i-delegate ng mga may-ari ng ENS ang kanilang mga boto sa mga aktibong miyembro ng komunidad upang katawanin sila. + +### Awtomatikong pamamahala ng transaksyon {#governance-example} + +Sa mga DAO, ang mga transaksyon ay awtomatikong isasagawa kung bumoto ng pabor ang isang partikular na bilang ng mga miyembro. + +#### Isang kilalang halimbawa {#governance-example} + +[Nouns](https://nouns.wtf) – Sa Nouns DAO, awtomatikong isasagawa ang transaksyon kung naabot ang isang partikular na bilang ng mga boto, at marami sa mga ito ang bumoto ng pabor, basta't hindi babaligtarin ng mga founder ang pasya. + +### Multisig na pamamahala {#governance-example} + +Bagama't may libo-libong miyembrong bumoboto sa mga DAO, puwedeng itabi ang pondo sa wallet na pinaghahatian ng 5-20 akitbong miyembro ng komunidad na pinagkakatiwalaan at karaniwang doxxed (mga pampublikong indibidwal na kilala ng komunidad). Matapos ang botohan, ipapatupad ng mga multisig signer ang kagustuhan ng komunidad. + +## Mga batas sa DAO {#dao-laws} + +Noong 1977, nilikha sa Wyoming ang LLC, na nagpoprotekta sa mga negosyante at nagbibigay limitasyon sa kanilang pananagutan. Kamakailan lang, ipinanukala rito ang batas sa DAO na nagtatakda ng legal na status para sa mga DAO. Sa kasalukuyan, may mga batas sa DAO ang Wyoming, Vermont, at Virgin Islands. + +### Isang kilalang halimbawa {#law-example} + +[CityDAO](https://citydao.io) – Ginamit ng CityDAO ang batas sa DAO ng Wyoming para bumili ng 40 acres ng lupa malapit sa Yellowstone National Park. + +## Membership sa DAO {#dao-membership} + +May iba't ibang klase ng membership sa DAO. Itinatakda ng membership ang proseso ng botohan at ang iba pang mahahalagang aspeto ng DAO. + +### Token-based membership {#token-based-membership} + +Karaniwang ganap na walang pahintulot, depende sa token na ginamit. Maaaring i-trade nang walang pahintulot sa isang decentralized exchange ang karamihan sa mga governance token na ito. Kailangan namang kitain ang iba sa pamamagitan ng pagbibigay ng liquidity o iba pang 'patunay ng gawain'. Sa anumang paraan, makakaboto ka basta't mayroon kang mga token grant. + +_Karaniwang ginagamit para pamahalaan ang mga malawak at decentralized na protocol at/o mga token mismo._ + +#### Isang kilalang halimbawa {#token-example} + +[MakerDAO](https://makerdao.com) – Ang token ng MakerDAO na MKR ay malawakang makukuha sa mga decentralized exchange at puwedeng magbayad ang sinuman para magkaroon ng kapangyarihang bumoto para sa patutunguhan ng protocol ng Maker. + +### Membership na token-based {#share-based-membership} + +Sa mga share-based DAO, mas maraming pahintulot, pero medyo open pa rin ang mga ito. Ang sinumang interesadong maging miyembro ay maaaring magsumite ng proposal upang sumali sa DAO, at karaniwang nagbibigay ng tribute na may halaga, gaya ng mga token o gawa. Ang mga share ay nagbibigay ng kapangyarihan para bumoto nang direkta at ng pagmamay-ari. Puwede umalis ang mga miyembro kahit kailan at ibibigay sa kanila ang karampatang share nila ng treasury. + +_Karaniwan itong gamit sa mga organisasyon tulad ng mga charity, worker collective, at investment club. Maaari din nitong pamahalaan ang mga protocol at token._ + +#### Isang kilalang halimbawa {#share-example} + +[MolochDAO](http://molochdao.com/) – Ang MolochDAO ay nakatuon sa pagpopondo ng mga proyekto sa Ethereum. Kailangan ng grupo ng proposal para maging miyembro upang malaman nito kung may sapat kang kaalaman at kapital para magpasya tungkol sa mga potensyal na grantee. Hindi ka puwedeng bumili lang ng access sa DAO sa open market. + +### Membership na Reputation-based {#reputation-based-membership} + +Ang reputasyon ay nagpapakita ng patunay ng partisipasyon at nagbibigay ng kapangyarihang bumoto sa DAO. Hindi tulad ng token o share-based membership, hindi inililipat ng mga reputation-based DAO ang pagmamay-ari sa mga contributor. Hindi mabibili, mata-transfer, o made-delegate ang reputasyon. Dapat makuha ng mga miyembro ng DAO ang reputasyon sa pamamagitan ng pakikilahok. Hindi kailangan ng pahintulot sa on-chain na pagboto at magagawa ng mga nagnanais maging miyembro na magsumite ng mga proposal para makasali sa DAO at humiling na makatanggap ng reputasyon at mga token kapalit ng kanilang mga kontribusyon. + +_Karaniwan itong ginagamit para sa decentralized development at pamamahala ng mga protocol at dapp, pati na rin sa iba't ibang organisasyon tulad ng mga charity, worker collective, at investment club._ + +#### Isang kilalang halimbawa {#reputation-example} + +[DXdao](https://DXdao.eth.link) – Ang DXdao ay isang global sovereign collective na bumubuo at namamahala ng mga decentralized na protocol at application mula pa noong 2019. Ginagamit nito ang reputation-based governance at holographic consensus upang isaayos at pamahalaan ang mga pondo. Ibig sabihin nito, walang makakapagbayad para baguhin ang patutunguhan nito. + +## Sumali/magsimula ng DAO {#join-start-a-dao} + +### Sumali sa DAO {#join-a-dao} + +- [Mga Dao sa komunidad ng Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [Listahan ng Mga DAO ng DAOHaus](https://app.daohaus.club/explore) +- [Listahan ng Mga DAO ng Tally.xyz](https://www.tally.xyz) + +### Magsimula ng DAO {#start-a-dao} + +- [Mag-summon ng DAO gamit ang DAOHaus](https://app.daohaus.club/summon) +- [Magsimula ng Governor DAO gamit ang Tally](https://www.tally.xyz/add-a-dao) +- [Gumawa ng DAO na pinapagana ng Aragon](https://aragon.org/product) +- [Magsimula ng colony](https://colony.io/) +- [Gumawa ng DAO gamit ang holographic consensus ng DAOstack](https://alchemy.daostack.io/daos/create) + +## Karagdagang pagbabasa {#further-reading} + +### Mga artikulo ng DAO {#dao-articles} + +- [Ano ang DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) +- [Handbook ng DAO](https://daohandbook.xyz) +- [House of DAOs](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) +- [Ano and DAO at para saan ito?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) +- [Paaano Magsimula ng DAO na Pinapagana ng Digital na Komunidad](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) +- [Ano ang DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) +- [Ano ang Holographic Consensus?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) +- [Ang mga DAO ay hindi mga korporasyon: kung saan mahalaga ang decentralization sa mga autonomous na organisasyon, gawa ni Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) +- [Mga DAO, DAC, DA at Iba pa: Isang Hindi Kumpletong Gabay sa Terminolohiya](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Ethereum Blog](https://blog.ethereum.org) + +### Videos {#videos} + +- [Ano ang DAO sa crypto?](https://youtu.be/KHm0uUPqmVE) +- [Makakapagtayo ba ng Lungsod ang DAO?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/public/content/translations/fil/decentralized-identity/index.md b/public/content/translations/fil/decentralized-identity/index.md new file mode 100644 index 00000000000..18eb65021c5 --- /dev/null +++ b/public/content/translations/fil/decentralized-identity/index.md @@ -0,0 +1,185 @@ +--- +title: Decentralized na identity +description: Ano ang decentralized identity at bakit ito importante? +lang: fil +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: /eth-gif-cat.png +summaryPoint1: Ang mga tradisyonal na identity system ay nakasentro sa pagbibigay, pagpapanatili at pagkontrol ng iyong mga identifier. +summaryPoint2: Inaalis ng decentralized identity ang pagdepende sa mga centralized na third party. +summaryPoint3: Dahil sa crypto, mayroon na ulit ang mga user ng mga tool para ibigay, pangasiwaan at kontrolin ang sarili nilang mga identifier at attestation. +--- + +Sinusuportahan ng identity ang halos lahat ng aspeto ng buhay mo ngayon. Sa paggamit ng mga serbisyo online, pagbubukas ng bank account, pagboto sa halalan, pagbili ng property, at paghahanap ng trabaho, kailangan mong patunayan ang iyong identity. + +Gayunpaman, matagal nang umaasa ang mga tradisyonal na identity management system sa mga centralized intermediary na nagbibigay, nangangasiwa, at kumokontrol sa iyong mga identifier at [attestation](#what-are-attestations). Ibig sabihin ito ay hindi mo makokontrol ang impormasyong nauugnay sa iyong identity o hindi ka makakapagpasya sa kung sino ang may access sa personally identifiable information (PII) at kung gaano kalawak ang access ng mga partidong ito. + +Para maayos ang mga problemang ito, mayroon kaming mga decentralized identity system na ginawa sa mga pampublikong blockchain tulad ng Ethereum. Sa tulong ng decentralized identity, mapapamahalaan ng mga indibidwal ang kanilang impormasyong nauugnay sa identity. Gamit ang mga decentralized identity solution, maaari _kang_ gumawa ng mga identifier at make-claim at mapapangasiwaan mo ang iyong mga attestation nang hindi nakadepende sa mga central authority, tulad ng mga service provider at ng pamahalaan. + +## Ano ang identity? {#what-is-identity} + +Tumutukoy ang identity sa pagkakakilala ng isang indibidwal sa kanyang sarili, ayon sa mga natatanging katangian. Tumutukoy ang identity sa pagiging isang _indibidwal_, ibig sabihin, isang partikular na tao. Ang identity ay maaari ding tumukoy sa iba pang entidad na hindi tao, gaya ng isang organisasyon o awtoridad. + +## Ano ang mga identifier? {#what-are-identifiers} + +Ang identifier ay impormasyong nagsisilbing pointer sa partikular na identity o mga identity. Kasama sa mga karaniwang identifier ang: + +- Pangalan +- Social security number/tax ID number +- Numero ng cellphone +- Petsa at lugar ng kapanganakan +- Mga kredensyal sa digital identification, hal., email address, username, avatar + +Ang mga tradisyonal na halimbawang ito ng mga identifier ay ibinibigay, pinapangasiwaan at kinokontrol ng mga central entity. Kailangan mo ng pahintulot mula sa iyong pamahalaan para palitan ang pangalan mo o mula sa isang social media platform para palitan ang handle mo. + +## Ano ang mga attestiation? {#what-are-attestations} + +Ang attestation ay isang claim na ginawa ng isang entity tungkol sa isa pang entity. Kung nakatira ka sa Estados Unidos, ang lisensya sa pagmamaneho na ibinigay sa iyo ng Department of Motor Vehicles (isang entidad) ay nagpapatunay na ikaw (isa pang entidad) ay legal na pinapayagang magmaneho ng kotse. + +Magkaiba ang mga attestation at mga identifier. Ang attestation ay _may_ mga identifier para tumukoy ng partikular na identity, at gumagawa ng claim tungkol sa isang attribute na nauugnay sa identity na ito. Kung kaya, may mga identifier ang iyong lisensya sa pagmamaneho (pangalan, petsa ng kapanganakan, address) ngunit ito rin ang pagpapatunay tungkol sa iyong legal na karapatang magmaneho. + +### Ano ang mga decentralized identifier? {#what-are-decentralized-identifiers} + +Ang mga tradisyonal na identifier tulad ng iyong legal na pangalan o email address ay umaasa sa mga third party—mga pamahalaan at email provider. Naiiba ang decentralized identifiers (DIDs)—hindi ibinibigay, pinapamahalaan, o kinokontrol ang mga ito ng anumang sentral na entity. + +Ang mga decentralized identifier ay ibinibigay, pinapangasiwaan, at kinokontrol ng mga indibidwal. Ang [Ethereum account](/developers/docs/accounts/) ay halimbawa ng isang decentralized identifier. Maaari kang gumawa ng mga account hangga't gusto mo nang hindi humihingi ng pahintulot ng kahit sino at nang hindi kinakailangang i-store ang mga ito sa isang sentral na registry. + +Ang mga decentralized identifier ay sino-store sa mga distributed ledger (blockchain) o peer-to-peer network. Dahil dito, ang decentralized identifiers (DIDs) ay [walang katulad sa mundo, nareresolba at may high availability, at mave-verify sa pamamagitan ng cryptography](https://w3c-ccg.github.io/did-primer/). Maaaring iugnay ang decentralized identifier sa iba't ibang entity, kasama na ang mga tao, organisasyon, o mga institusyon ng pamahalaan. + +## Paano naging posible ang mga decentralized identifier? {#what-makes-decentralized-identifiers-possible} + +### 1. Public Key Infrastructure (PKI) {#public-key-infrastructure} + +Ang public-key infrastructure (PKI) ay isang hakbang para sa seguridad ng impormasyon na bumubuo ng [pampublikong key](/glossary/#public-key) at [ pribadong key](/glossary/#private-key) para sa isang entity. Ang public-key cryptography ay ginagamit sa mga blockchain network upang patunayan ang identity ng user at patunayan ang pagmamay-ari sa mga digital asset. + +May pampubliko at pribadong key ang ilang decentralized identifier, tulad ng Ethereum account. Tinutukoy ng pampublikong key ang controller ng account, habang magagawa ng mga pribadong key na mag-sign at mag-decrypt ng mga mensahe para sa account na ito. Ang public key insfrastructure (PKI) ay nagbibigay ng mga patunay na kinakailangan upang i-authenticate ang mga entity at pigilan ang pagpapanggap at paggamit ng mga pekeng identity, at gumagamit ng[mga cryptographic signature](https://andersbrownworth.com/blockchain/public-private-keys/) upang i-verify ang lahat ng claim. + +### 2. Mga decentralized datastore {#decentralized-datastores} + +Ang blockchain ay nagsisilbing registry ng nave-verify na data: bukas, hindi kailangang umasa sa third party, at desentralisadong repository ng impormasyon. Dahil sa mga pampublikong blockchain, hindi kailangang i-store ang mga identifier sa mga sentralisadong registry. + +Kung kailangang kumpirmahin ng sinuman ang validity ng isang decentralized identifier, puwede nilang hanapin ang nauugnay na pampublikong key sa blockchain. Iba ito sa mga tradisyonal na identifier na nangangailangan ng mga third party para mag-authenticate. + +## Paano nagbibigay-daan ang mga "decentralized identifier" at "attestation" sa decentralized identity? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} + +Tumutukoy ang decentralized identity sa pananaw na dapat pribado, portable, at ikaw mismo ang kumokontrol sa impormasyong nauugnay sa identity, at ang mga decentralized identifier at attestation ang mga pangunahing bahagi nito. + +Sa konteksto ng decentralized identity, ang mga attestation (kilala rin bilang [Mga Nave-verify na Kredensyal](https://www.w3.org/TR/vc-data-model/)) ay mga claim ng issuer na hindi mababago at mave-verify sa pamamagitan ng cryptography. Ang bawat "attestation" o "Nave-verify na Kredensyal" na ibinibigay ng isang entity (hal., isang organisasyon) ay iniuugnay sa decentralized identifier (DID) nito. + +Dahil naka-store ang decentralized identifiers (DIDs) sa blockchain, maaaring i-verify ng sinuman ang validity ng isang attestation sa pamamagitan ng pagsusuri sa DID ng issuer sa Ethereum. Sa madaling salita, ang blockchain ng Ethereum ay nagsisilbing pandaigdigang direktoryo na nagbibigay-daan sa pag-verify ng mga DID na nauugnay sa mga partikular na entity. + +Dahil sa mga decentralized identifier, mave-verify at ikaw mismo ang kokontrol sa mga attestation. Kahit wala na ang issuer ng attestation, palaging may patunay ang may-ari ng pinagmulan at validity ng attestation. + +Mahalaga rin ang mga decentralized identifier sa pagprotekta sa privacy ng personal na impormasyon sa pamamagitan ng decentralized identity. Halimbawa, kung magsusumite ang isang indibidwal ng patunay ng attestation (lisensya sa pagmamaneho), hindi kailangang suriin ng partidong nagve-verify ang validity ng impormasyon sa patunay. Kailangan lang ng verifier ng mga crytographic guarantee ng authenticity ng attestation at identity ng nagbigay na organisasyon para matukoy kung valid ang patunay. + +## Mga uri ng attestation sa decentralized identity {#types-of-attestations-in-decentralized-identity} + +Naiiba sa tradisyonal na pamamahala ng identity ang pag-store at pagkuha sa impormasyon ng attestation sa isang Ethereum-based na identity ecosystem. Narito ang pangkalahatang-ideya ng iba't ibang paraan ng pagbibigay, pag-store, at pag-verify ng mga attestation sa mga decentralized identity system: + +### Mga off-chain na attestation {#off-chain-attestations} + +Ang isang alalahanin sa pag-store ng mga attestation on-chain ay maaaring maglaman ang mga ito ng impormasyon na gustong panatilihing pribado ng mga indibidwal. Dahil pampubliko ang Ethereum blockchain, hindi mainam na i-store dito ang mga ganitong attestation. + +Ang solusyon ay magbigay ng mga attestation, na pinapangasiwaan ng mga user off-chain sa mga digital wallet, pero na-sign gamit ang DID ng issuer na na-store on-chain. Ang mga attestation na ito ay naka-encode bilang [mga JSON Web Token](https://en.wikipedia.org/wiki/JSON_Web_Token) at dapat maglaman ng digital signature ng issuer—na nagpapadali sa pag-verify ng mga off-chain na claim. + +Narito ang isang hypothetical na sitwasyon na nagpapaliwanag sa mga off-chain na attestation: + +1. May unibersidad (ang issuer) na gumawa ng attestation (isang digital na sertipikong pang-akademiko), na-sign ito gamit ang mga key nito, at ibinigay ito kay Bob (may-ari ng identity). + +2. Naghahanap ng trabaho si Bob at gusto niyang patunayan ang kanyang mga kwalipikasyong pang-akademiko sa isang employer, kaya ibinahagi niya ang attestation galing sa mobile wallet niya. Maaaring kumpirmahin ng kumpanya (ang verifier) ang validity ng attestation sa pamamagitan ng pagsusuri sa DID ng issuer (ibig sabihin, ang public key nito sa Ethereum). + +### Mga off-chain na attestation na may persistent access {#offchain-attestations-with-persistent-access} + +Sa ilalim ng pagsasaayos na ito, ang mga attestation ay ginagawang mga JSON file at sino-store off-chain (pinakamainam kung sa [decentralized cloud storage](/developers/docs/storage/) platform, tulad ng IPFS o Swarm). Gayunpaman, ang [ hash](/glossary/#hash) ng JSON file ay sino-store on-chain at nili-link sa DID sa pamamagitan ng isang on-chain registry. Ang nauugnay na DID ay maaaring galing sa issuer ng attestation o sa recipient. + +Sa tulong ng paraang ito, nagkakaroon ang mga attestation ng blockchain-based persistence at napapanatiling naka-encrypt at nave-verify ang impormasyon ng mga claim. Binibigyang-daan din nito ang selective na pagsisiwalat dahil maaaring i-decrypt ng may-ari ng pribadong key ang impormasyon. + +### Mga on-chain na attestation {#onchain-attestations} + +Ang mga on-chain na attestation ay pinapangasiwaan sa [mga smart contract](/developers/docs/smart-contracts/) sa Ethereum blockchain. Ang smart contract (nagsisilbing registry) ay magmamapa ng attestation sa kaukulang on-chain na decentralized identifier (isang pampublikong key). + +Narito ang isang halimbawa upang ipakita kung paano gumagana ang mga on-chain na attestation: + +1. Pinaplano ng isang kumpanya (XYZ Corp) na magbenta ng mga share sa pagmamay-ari gamit ang isang smart contract pero gusto lang nito ng mga buyer na sumailalim sa background check. + +2. Maaaring hilingin ng XYZ Corp sa kumpanyang nagsasagawa ng mga background check na magbigay ng mga on-chain na attestation sa Ethereum. Papatunayan ng attestation na ito na nakapasa ang indibidwal sa background check nang hindi inilalantad ang anumang personal na impormasyon. + +3. Maaaring suriin ng smart contract na nagbebenta ng mga share ang registry contract para sa mga identity ng mga na-screen na buyer, kung kaya, malalaman ng smart contract kung sino ang pinapahintulutang bumili ng mga shares o hindi. + +### Soulbound tokens at identity {#soulbound} + +Puwedeng gamitin ang [soulbound tokens](https://vitalik.ca/general/2022/01/26/soulbound.html)(mga non-transferable na NFT) upang kolektahin ang impormasyon na partikular sa isang wallet. Epektibo itong gumagawa ng natatanging on-chain na identity patungo sa isang partikular na Ethereum address na maaaring kinabibilangan ng mga token na kumakatawan sa mga napagtagumpayan (hal. pagtatapos ng ilang partikular na online na kurso o paglampas sa isang threshold score sa isang laro) o pakikilahok sa komunidad. + +## Mga benepisyo ng decentralized identity {#benefits-of-decentralized-identity} + +1. Sa tulong ng decentralized identity, mas makokontrol ng indibidwal ang nakakatukoy na impormasyon. Maaaring i-verify ang mga decentralized identifier at attestation nang hindi umaasa sa mga centralized na awtoridad at mga serbisyo ng third party. + +2. Ang mga decentralized identity solution ay tumutulong para magkaroon ng paraan para sa pag-verify at pamamahala ng identity ng user na hindi kailangang umasa sa third party, seamless, at nagpoprotekta sa privacy. + +3. Ginagamit ng decentralized identity ang teknolohiya ng blockchain, na bumubuo ng tiwala sa pagitan ng iba't ibang partido at nagbibigay ng mga cryptographic guarantee para patunayan ang validity ng mga attestation. + +4. Ginagawang portable ng decentralized identity ang data ng identity. Sino-store ng mga user ang mga attestation at identifier sa mobile wallet at maibabahagi nila ang mga ito sa anumang partidong gusto nila. Hindi rin nakapirmi ang mga decentralized identifier at attestation sa database ng nagbibigay na organisasyon. + +5. Magagamit ang decentralized identity sa mga bagong zero-knowledge technology na magbibigay-daan sa mga indibidwal na patunayan na pagmamay-ari o ginawa nila ang isang bagay nang hindi ibinubunyag kung ano ito. Ito ay maaaring maging pinakamahusay na paraan para pagsamahin ang tiwala at privacy para magamit sa mga bagay tulad ng pagboto. + +6. Binibigyang-daan ng decentralized identity ang mga mekanismo laban sa Sybil attack na tukuyin kapag may isang indibidwal na taong nagpapanggap bilang maraming tao para dayain o i-spam ang isang system. + +## Mga use case ng decentralized identity {#decentralized-identity-use-cases} + +Maraming posibleng use case ang decentralized identity: + +### 1. Mga universal login {#universal-dapp-logins} + +Makakatulong ang decentralized identity na palitan ang mga pag-log in gamit ang password ng [decentralized authentication](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). Maaaring magbigay ang mga service provider ng mga attestation sa mga user, na maso-store sa Ethereum wallet. Ang isang halimbawa ng attestation ay isang [NFT](/nft/) na nagbibigay sa may-ari ng access sa isang online na komunidad. + +Ang function na [Mag-sign in gamit ang Ethereum](https://login.xyz/) ay magbibigay-daan sa mga server na kumpirmahin ang Ethereum account ng user at kunin ang kinakailangang attestation mula sa account address niya. Ibig sabihin nito, maa-access ng mga user ang mga platform at website nang hindi kinakailangang tandaan ang mahahabang password at mapapahusay nito ang online experience ng mga user. + +### 2. KYC authentication {#kyc-authentication} + +Sa paggamit ng mga online na serbisyo, kailangang magbigay ng mga indibidwal ng mga attestation at kredensyal, tulad ng lisensya sa pagmamaneho o pambansang pasaporte. Ngunit nagdudulot ng problema ang paraang ito dahil maaaring makompromiso ang pribadong impormasyon ng user at hindi mave-verify ng mga service provider ang authenticity ng attestation. + +Binibigyang-daan ng decentralized identity ang mga kumpanya na iwasan ang mga karaniwang prosesong [Know-Your-Customer (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) at i-authenticate ang mga identity ng user sa pamamagitan ng Mga Nave-verify na Kredensyal. Pinapababa nito ang gastos sa pamamahala ng identity at pinipigilan nito ang paggamit ng pekeng dokumentasyon. + +### 3. Pagboto at mga online na komunidad {#voting-and-online-communities} + +Ang online na pagboto at social media ay dalawang bagong paggamit ng decentralized identity. Madaling mamanipula ang mga scheme ng online na pagboto, lalo kung gumawa ang mga mapanlokong actor ng mga pekeng identity para bumoto. Mapapaganda ng paghiling sa mga indibidwal na magpresenta ng mga on-chain na attestation ang integridad ng mga proseso ng online na pagboto. + +Makakatulong ang decentralized identity sa paggawa ng mga online na komunidad na walang pekeng account. Halimbawa, kailangang i-authenticate ng bawat user ang identity nila gamit ang isang on-chain na identity system, tulad ng Ethereum Name Service, na nagpapaliit sa posibilidad na mapasok ito ng mga bot. + +### 4. Proteksyon laban sa Sybil attack {#sybil-protection} + +Ang mga Sybil attack ay tumutukoy sa mga indibidwal na nagpapanggap bilang maraming tao para manlinlang ng isang system at mapalakas ang impluwensya nila. Ang [mga application na nagbibigay ng grant](https://gitcoin.co/grants/) na gumagamit ng [quadratic voting](https://www.radicalxchange.org/concepts/plural-voting/) ay madaling mabiktima ng mga Sybil attack na ito dahil madadagdagan ang halaga ng grant kapag mas maraming tao ang bumoto para dito, kaya nahihikayat ang mga user na hatiin ang kanilang mga kontribusyon sa maraming identity. Nakakatulong ang mga decentralized identity na iwasan ito sa pamamagitan ng pag-aatang sa bawat kalahok na patunayang totoong tao sila, bagama't madalas na ginagawa ito nang hindi kinakailangang isiwalat ang partikular na pribadong impormasyon. + +## Gamitin ang decentralized identity {#use-decentralized-identity} + +Maraming malalaking proyekto ang gumagamit ng Ethereum bilang pundasyon para sa mga decentralized identity solution: + +- **[Ethereum Name Service (ENS)](https://ens.domains/)** - _Isang decentralized naming system para sa mga identifier na on-chain at nababasa ng machine, tuld ng mga address sa Ethereum wallet, mga content hash, at metadata._ +- **[SpruceID](https://www.spruceid.com/)** - _Isang decentralized identity project na nagbibigay-daan sa mga user na kontrolin ang digital identity gamit ang mga Ethereum account at ENS profile sa halip na umasa sa mga serbisyo ng third party._ +- **[Ethereum Attestation Service (EAS)](https://attest.sh/)** - _Isang decentralized ledger/protocol para sa paggawa ng mga on-chain o off-chain na attestation tungkol sa anumang bagay._ +- **[Proof of Humanity](https://www.proofofhumanity.id)** - _Ang Proof of Humanity (o PoH) ay isang social identity verification system na ginawa sa Ethereum._ +- **[BrightID](https://www.brightid.org/)** - _ Isang decentralized at open-source na social identity network na naglalayong baguhin ang pag-verify ng identity sa pamamagitan ng paggawa at pagsusuri ng isang social graph._ +- **[Proof-of-personhood Passport](https://proofofpersonhood.com/)** - _Isang decentralized digital identity aggregator._ + +## Karagdagang pagbabasa {#further-reading} + +### Mga Artikulo {#articles} + +- [Mga Use Case ng Blockchain: Blockchain sa Digital Identity](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ +- [Ano ang Ethereum ERC725? Pamamahala ng Self-Sovereign Identity sa Blockchain](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) —_ Sam Town_ +- [Paano Malulutas ng Blockchain ang Suliranin sa Digital Identity](https://time.com/6142810/proof-of-humanity/) — _Andrew R. Chow_ +- [Ano ang Decentralized Identity at Bakit Dapat Kang Mag-alaala?](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ + +### Videos {#videos} + +- [Decentralized Identity (Bonus Livestream Session)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Isang magandang video na gawa ni Andreas Antonopolous na nagpapaliwanag sa decentralized identity_ +- [Mag-sign In sa Ethereum at Decentralized Identity gamit ang Ceramic, IDX, React, at 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _Tutorial sa YouTube na gawa ni Nader Dabit tungkol sa pagbuo ng management system para sa paggawa, pagbabasa, at pag-update ng profile ng isang user gamit ang kanyang Ethereum wallet_ +- [BrightID - Decentralized Identity sa Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM)— _Episode ng Bankless podcast kung saan pinag-uusapan ang BrightID, isang decentralized identity solution para sa Ethereum_ +- [The Off Chain Internet: Decentralized Identity at Mga Nave-verify na Kredensyal](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — Presentation ni Evin McMullen sa EthDenver noong 2022 + +### Mga Komunidad {#communities} + +- [ERC-725 Alliance sa GitHub](https://github.com/erc725alliance) — _Mga tagasuporta ng pamantayang ERC725 para sa pamamahala ng identity sa Ethereum blockchain_ +- [SpruceID Discord server](https://discord.com/invite/Sf9tSFzrnt) — _Komunidad para sa mga tagahanga at developer na nagtatrabaho sa Mag-sign in gamit ang Ethereum_ +- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Isang komunidad ng mga developer na tumutulong sa pagbuo ng framework para sa nave-verify na data para sa mga application_ diff --git a/public/content/translations/fil/defi/index.md b/public/content/translations/fil/defi/index.md new file mode 100644 index 00000000000..140b72df7c4 --- /dev/null +++ b/public/content/translations/fil/defi/index.md @@ -0,0 +1,352 @@ +--- +title: Desentralisadong Pananalapi (DeFi) +description: Pangkalahatang-ideya ng DeFi sa Ethereum +lang: fil +template: use-cases +emoji: ":money_with_wings:" +image: /use-cases/defi.png +alt: Logo ng Eth na gawa sa mga lego brick. +sidebarDepth: 2 +summaryPoint1: Isang pandaigdigan at bukas na alternatibo sa kasalukuyang sistemang pinansyal. +summaryPoint2: Mga produkto na nagbibigay-daan sa iyong manghiram, mag-ipon, mag-invest, mag-trade, at iba pa. +summaryPoint3: Nakabatay sa open-source na teknolohiyang magagamit ng kahit sino para mag-program. +--- + +Ang DeFi ay isang bukas at pandaigdigang sistemang pinansyal na binuo para sa panahon ng internet - isang alternatibo sa isang sistema na mahirap unawain, mahigpit na kontrolado, at pinagbubuklod ng infrastructure at mga prosesong ilang dekada nang ginagamit. Sa tulong nito makokontrol at makikita mo ang iyong pera. Binibigyan ka nito ng pagkakataong makita ang mga pandaigdigang market at mga alternatibo sa iyong lokal na currency o mga opsyon sa pagbabangko. Binubuksan ng mga produkto ng DeFi ang mga serbisyong pinansyal sa sinumang may koneksyon sa internet at ang karamihan sa mga ito ay pagmamay-ari at pinapanatili ng mga user ng mga ito. Sa ngayon, daan-daang bilyong dolyar ng crypto na ang dumaan sa mga DeFi application at patuloy itong dumarami araw-araw. + +## Ano ang DeFi? {#what-is-defi} + +DeFi ang tawag sa mga produkto at serbisyong pinansyal na maaring gamitin ng sinumang makakagamit ng Ethereum - kahit sinong may koneksyon sa internet. Sa DeFi, laging bukas ang mga market at walang centralized na awtoridad na makakapigil ng mga pagbabayad o hindi magbibigay sa iyo ng access sa kahit ano. Ang mga serbisyong dating mabagal at nanganganib dahil sa human error ay awtomatiko at mas ligtas na ngayon dahil pinapangasiwaan na ang mga ito ng code na masusuri at mabubusisi ng kahit sino. + +Lumalaki ang ekonomiya ng crypto, kung saan puwede kang magpautang, manghiram, mag-trade, kumita ng interes, at iba pa. Gumamit ng DeFi ang mga taga-Argentina na marunong sa crypto para takasan ang matinding pagtaas ng presyo. May mga kumpanya nang nagsimulang i-stream sa kanilang mga empleyado ang kanilang mga suweldo nang real time. May ibang nakahiram at nakapagbayad ng mga loan na milyong-milyong dolyar ang halaga nang hindi nangangailangan ng anumang personal identification. + + + +## DeFi vs tradisyonal na pinansya {#defi-vs-tradfi} + +Ang isa sa mga pinakamagandang paraan upang makita ang potensyal ng DeFi ay unawain ang mga problemang umiiral ngayon. + +- May mga tao na hindi pinagkakalooban ng access para gumawa ng bank account o gumamit ng mga serbisyong pinansyal. +- Ang kakulangan ng access sa mga serbisyong pinansyal ay maaaring nakakahadlang para makahanap ng trabaho ang mga tao. +- Maaaring mapigilan ng mga serbisyong pinansyal na makuha mo ang iyong suweldo. +- Isa sa mga nakatagong singil ng mga serbisyong pinansyal ay ang iyong personal na data. +- Maaaring ipasara ng mga pamahalaan at centralized institution ang mga market kapag gusto nila. +- Ang oras ng pag-trade ay karaniwang limitado sa oras ng negosyo ng partikular na time zone. +- Maaaring abutin nang ilang araw ang mga pag-transfer ng pera dahil sa mga internal na prosesong ginagawa ng tao. +- May premium ang mga serbisyong pinansyal dahil kailangan ng mga intermediary institution ang kanilang parte. + +### Pag-kumpara {#defi-comparison} + +| DeFi | Tradisyonal na pinansya | +| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Hawak mo ang iyong pera. | Ang iyong pera ay hawak ng mga kumpanya. | +| Kontrolado mo kung saan mapupunta ang iyong pera at kung paano ito gagastusin. | Kailangan mong magtiwalang hindi papabayaan ng mga kumpanya ang pera mo, tulad ng pagpapahiram nito sa mga hindi mapagkakatiwalaang nangungutang. | +| Nangyayari ang mga pag-transfer ng pondo sa loob ng ilang minuto. | Maaaring tumagal nang ilang araw ang mga pagbabayad dahil sa mga manula na proseso. | +| Gumagamit ng mga hindi tunay na pangalan sa mga aktibidad sa transaksyon. | Talagang konektado ang pinansyal na aktibidad sa iyong identity. | +| Ang DeFi ay bukas para sa lahat. | Kailangan mong mag-apply para magamit ang mga serbisyong pinansyal. | +| Ang mga market ay palaging bukas. | Nagsasara ang mga market dahil kailangang magpahinga ng mga empleyado. | +| Transparency ang pundasyon nito – puwedeng tingnan ng kahit sino ang data ng produkto at suriin kung paano gumagana ang system. | Ang mga pinansyal institusyon ay parang mga saradong libro: hindi mo maaaring tingnan ang kanilang kasaysayan ng pautang, record ng mga pinapamahalaan nilang asset, at iba pa. | + + + I-explore ang mga DeFi app + + +## Nagsimula ito sa Bitcoin... {#bitcoin} + +Sa maraming paraan, ang Bitcoin ang unang DeFi application. Talagang pinapayagan ka ng Bitcoin na magmay-ari at kontrolin ang halaga nito at ipadala ito kahit saan sa mundo. Ginagawa nito ito sa pamamagitan ng pagbibigay ng paraan para sa maraming tao, na hindi umaasa sa isa't isa, na sumang-ayon sa isang ledger ng mga account na hindi nangangailangan ng isang pinagkakatiwalaang intermediary. Ang Bitcoin ay bukas sa lahat at walang sinuman ang may awtoridad na baguhin ang mga panuntunan nito. Ang mga panuntunan ng Bitcoin, tulad ng kanyang kakapusan at pagiging bukas, ay nakalagay na sa teknolohiya. Hindi ito katulad ng tradisyonal na pinansya kung saan maaaring mag-print ang mga pamahalaan ng pera na nagpapababa sa halaga ng iyong ipon at mga kumpanyang maaaring magpasara ng mga market. + +Mas pinapahusay pa ito ng Ethereum. Tulad ng Bitcoin, hindi maaaring magbago ang mga panuntunan nang biglaan at may access ang lahat. Ngunit ito rin ang dahilan kung bakit programmable ang digital money, gamit ang [mga smart contract](/glossary#smart-contract), kung kaya, hindi lang pag-store at pagpapadala ng halaga ang magagawa mo. + + + +## Programmable na pera {#programmable-money} + +Medyo kakaiba itong pakinggan... "bakit ko gugustuhing i-program ang pera ko"? Ngunit, isa itong default na feature ng mga token sa Ethereum. Kahit sino ay maaaring mag-program ng logic sa mga pagbabayad. Kaya makukuha mo ang kontrol at seguridad ng Bitcoin pati ang mga serbisyong ibinibigay ng mga pinansyal na institusyon. Dahil dito, magagawa mo sa mga cryptocurrency ang mga bagay na hindi mo magagawa sa Bitcoin, tulad ng pagpapautang at panghihiram, pag-iiskedyul ng mga pagbabayad, pag-invest sa mga index fund at iba pa. + + +
Tingnan ang aming mga rekomendasyon para sa mga DeFi application na dapat subukan kung bago ka sa Ethereum.
+ + I-explore ang mga DeFi app + +
+ +## Ano ang magagawa mo sa DeFi? {#defi-use-cases} + +May decentralized na alternatibo sa karamihan sa mga serbisyong pinansyal. Ngunit nagbibigay din ang Ethereum ng pagkakataon para gumawa ng mga bagong-bagong pinansyal na produkto. Palaging nadaragdagan ang listahang ito. + +- [Magpadala ng pera sa iba't ibang bahagi ng mundo](#send-money) +- [Mag-stream ng pera sa iba't ibang bahagi ng mundo](#stream-money) +- [Ma-access ang mga stable na currency](#stablecoins) +- [Humiram ng pondo na may collateral](#lending) +- [Humiram nang walang collateral](#flash-loans) +- [Simulan ang pag-iipon ng crypto](#saving) +- [Mag-trade ng mga token](#swaps) +- [Palaguin ang iyong portfolio](#investing) +- [Pondohan ang iyong mga ideya](#crowdfunding) +- [Bumili ng insurance](#insurance) +- [Pamahalaan ang iyong portfolio](#aggregators) + + + +### Magpadala ng pera sa iba't ibang bahagi ng mundo nang mabilis {#send-money} + +Bilang isang blockchain, ang Ethereum ay idinisenyo para magpadala ng mga transaksyon sa ligtas at pandaigdigang paraan. Tulad ng Bitcoin, pinapadali ng Ethereum ang pagpapadala ng pera sa iba't ibang bahagi ng mundo, na parang nagpapadala lang ng email. Ilagay lang ang [ENS name](/nft/#nft-domains) (tulad ng bob.eth) ng recipient mo o ang kanyang account address mula sa iyong wallet at sa loob ng ilang minuto (karaniwan), direkta na niyang matatanggap ang bayad mo. Upang magpadala o tumanggap ng mga pagbabayad, kakailanganin mo ng [wallet](/wallets/). + + + Tingnan ang mga decentralized application (dapps) para sa pagbabayad + + +#### Mag-stream ng pera sa iba't ibang bahagi ng mundo... {#stream-money} + +Maaari ka ring mag-stream ng pera sa Ethereum. Binibigyang-daan ka nitong bayaran ang suweldo ng isang tao sa kada segundo, kaya agad niyang makukuha ang pera niya kapag kailangan niya ito. O magrenta ng isang bagay kada segundi, tulad ng storage locker o electric scooter. + +At kung ayaw mong magpadala o mag-stream ng [ETH](/eth/) dahil nagbabago-bago ang halaga nito, may mga alternatibong currency sa Ethereum: mga stablecoin. + + + +### Ma-access ang mga stable na currency {#stablecoins} + +Ang volatility ng cryptocurrency ay problema para sa maraming pinansyal na produkto at pangkalahatang paggastos. Inayos ito ng komunidad ng DeFi gamit ang mga stablecoin. Ipinapareho ang halaga ng mga ito sa isa pang asset, na karaniwang mas ginagamit na currency tulad ng dolyar. + +Ang mga coin tulad ng Dai o USDC ay may halagang nananatiling malapit sa isang dolyar. Dahil dito, mainam ito para sa pagkakaroon ng kita o retail. Maraming tao sa Latin America ang gumamit ng mga stablecoin bilang paraan para protektahan ang kanilang naipong pera sa panahon ng kawalan ng katiyakan pagdating sa mga currency na mula sa kanilang pamahalaan. + + + Iba pang detalye tungkol sa mga stablecoin + + + + +### Paghiram {#lending} + +Ang paghiram ng pera mula sa mga decentralized provider ay may dalawang pangunahing uri. + +- Peer-to-peer, na nangangahulugang direktang hihiram ang borrower sa isang partikular na lender. +- Pool-based kung saan nagbibigay ng pondo (liquidity) ang mga lender sa isang pool na mahihiraman ng mga borrower. + + + Tingnan ang dapps para sa panghihiram + + +Maraming benepisyo sa paggamit ng decentralized lender... + +#### Paghiram nang may privacy {#borrowing-privacy} + +Sa kasalukuyan, ang pagpapautang at panghihiram ng pera ay nauugnay sa mga indibidwal na may kinalaman dito. Kailangang malaman ng mga bangko kung malaman na mababayaran mo ang loan bago ito magpautang. + +Ang decentralized na pagpapautang ay nangyayari nang hindi kinakailangang magpakilala ng kahit aling panig. Sa halip, ang borrower ay dapat maglaan ng collateral na awtomatikong matatanggap ng lender kung sakali hindi mabayaran ang kanilang loan. May ilang lender na tumatanggap ng NFT bilang collateral. Ang mga NFT ay titulo para sa natatanging asset, tulad ng painting. [Iba pang detalye tungkol sa mga NFT](/nft/) + +Binibigyang-daan ka nitong humiram ng pera nang walang pagsusuri ng iyong credit o pagbibigay ng pribadong impormasyon. + +#### Access sa pandaigdigang pondo {#access-global-funds} + +Kapag gumamit ka ng decentralized lender, may access ka sa pondong idineposito sa iba't ibang bahagi ng mundo, hindi lang sa pondong hawak ng pinili mong bangko o institusyon. Pinapadali nito ang pagkuha ng mga loan at pinapababa nito ang interes. + +#### Tax-efficiencies {#tax-efficiencies} + +Kapag nanghiram, maa-access mo ang pondong kailangan mo nang hindi ibinebenta ang iyong ETH (isang taxable event). Sa halip, maaari mong gamitin ang ETH bilang collateral para sa stablecoin loan. Dahil dito, makukuha mo ang cash-flow na kailangan mo at hindi mawawala sa iyo ang ETH mo. Ang mga stablecoin ay mga token na mas mainam kapag kailangan mo ng cash dahil hindi nagbabago-bago ang halaga ng mga ito gaya ng ETH. [Iba pang detalye tungkol sa mga stablecoin.](#stablecoins) + +#### Mga flash loan {#flash-loans} + +Ang mga flash loan ay mas eksperimental na uri ng decentralized na pagpapautang kung saan puwede kang humiram kahit walang collateral o nang hindi nagbibigay ng anumang personal na impormasyon. + +Sa ngayon, hindi pa ito magagamit ng mga hindi maalam sa teknolohiya, pero ipinapahiwatig ng mga ito ang mga posibleng maisagawa ng lahat sa hinaharap. + +Gumagana ito kapag inutang ang loan at binayaran ito sa iisang transaksyon. Kung hindi ito mababayaran, bababalik sa dati ang transaksyon na parang walang nangyari. + +Ang pondo na kadalasang ginagamit ay nasa mga liquidity pool (malalaking grupo ng pondo na ginagamit para sa panghihiram). Kung hindi ginagamit ang mga ito sa ngayon, binibigyan nito ng pagkakataon ang isang tao na hiramin ang pondong ito, magnegosyo gamit ang mga ito, at bayaran ang mga ito nang buo sa halos parehong pagkakataon na hiniram ito. + +Ibig sabihin nito, maraming logic na dapat isama sa isang napaka-bespoke na transaksyon. Ang isang simpleng halimbawa ay ang paggamit ng isang tao ng flash loan para manghiram ng maraming asset sa isang presyo upang maibenta ito sa ibang exchange kung saan mas mataas ang presyo. + +Kung kaya, sa iisang transaksyon, ganito ang nangyayari: + +- Humiram ka ng halagang X ng $asset sa halagang $1.00 mula sa exchange A +- Ibinenta mo ang X na $asset sa exchange B sa halagang $1.10 +- Binayaran mo ang loan sa exchange A +- Makukuha mo ang kita maliban sa bayarin sa transaksyon + +Kung biglang bumaba ang supply ng exchange B at kulang ang binili ng user para sapatan ang orihinal na loan, hindi maisasagawa ang transaksyon. + +Para magawa ang halimbawa sa itaas sa tradisyonal na mundo ng pinansya, kakailanganin mo ng napakalaking halaga ng pera. Ang mga may pera lang ang makakagamit ng mga pamamaraang ito ng pagkakapera. Ang mga flash loan ay halimbawa ng kinabukasan kung saan hindi kailangang magkaroon ng pera para kumita ng pera. + +[Iba pang detalye tungkol sa mga flash loan](https://aave.com/flash-loans/) + + + +### Magsimulang mag-ipon gamit ang crypto {#saving} + +#### Pagpapautang {#lending} + +Maaari kang kumita ng interes sa iyong crypto sa pamamagitan ng pagpapautang nito at subaybayan ang paglago ng iyong pondo nang real time. Sa ngayon, mas mataas ang interes kaysa sa karaniwang makukuha mo sa iyong lokal na bangko (kung susuwertihin kang magkaroon ng access sa isang bangko). Narito ang isang halimbawa: + +- Ipapautang mo ang iyong 100 Dai, isang [stablecoin](/stablecoins/), sa isang produkto gaya ng Aave. +- Tatanggap ka ng 100 Aave Dai (aDai) na isang token na kumakatawan sa iyong ipinautang na Dai. +- Ang iyong aDai ay tataas base sa interes at makikita mo ang paglaki ng iyong balanse sa iyong wallet. Depende sa APR, maaaring maging 100.1234 ang balanse ng iyong wallet pagkatapos ng ilang araw o maging oras! +- Maaari kang mag-withdraw ng regular na Dai na katumbas ng iyong balanse sa aDai anumang oras. + + + Tingnan ang mga decentralized application (dapps) para sa pagpapautang + + +#### Mga no-loss lottery {#no-loss-lotteries} + +Ang mga no-loss lottery tulad ng PoolTogether ay masaya at bagong paraan upang mag-ipon ng pera. + +- Bibili ka ng 100 na ticket gamit ang 100 Dai token. +- Makakatanggap ka ng 100 plDai na kumakatawan sa iyong 100 ticket. +- Kung mananalo ang isa sa mga ticket mo, tataas ang iyong plDai balance ayon sa halaga ng prize pool. +- Kung hindi ka mananalo, maililipat ang iyong 100 plDai sa draw sa susunod na linggo. +- Maaari kang mag-withdraw ng regular na Dai na katumbas ng iyong plDai balance anumang oras. + +Ang prize pool ay mula sa lahat ng interes na kinikita mula sa pagpapautang ng mga ticket deposit tulad ng nabanggit sa halimbawa sa pagpapautang sa itaas. + + + Subukan ang PoolTogether + + + + +### Mag-exchange ng mga token {#swaps} + +May libo-libong token sa Ethereum. Sa tulong ng mga decentralized exchange (DEXs), mate-trade mo ang iba't ibang token kahit kailan mo gusto. Hinding-hindi mo bibitawan ang pagkontrol sa mga asset mo. Dito, para kang gumagamit ng currency exchange kapag pumunta sa ibang bansa. Ngunit hinding-hindi nagsasara ang bersyong DeFi. Ang mga market ay bukas 24/7, 365 araw kada taon at iginagarantiya ng teknolohiya na palaging may tatanggap ng trade. + +Halimbawa, kung nais mong gamitin ang no-loss lottery na PoolTogether (na inilalarawan sa itaas), kakailanganin mo ng token tulad ng Dai o USDC. Ang mga DEX na ito ay nagbibigay-daan sa iyo na i-swap ang iyong ETH sa mga token na iyon at i-swap ito ulit kapag tapos ka na. + + + Tingnan ang mga token exchange + + + + +### Advanced trading {#trading} + +Mayroong mga mas advanced na opsyon para sa mga trader na gusto ng kaunti pang kontrol. Ang mga limit order, perpetual, margin trading, at iba pa ay posibleng gawin. Sa pamamagitan ng Decentralized trading, magkakaroon ka ng access sa global na liquidity, hinding-hindi nagsasara ang market, palagi mong makokontrol ang mga asset mo. + +Kapag gumagamit ka ng centralized exchange, dapat mong ideposito ang mga asset mo bago mag-trade at dapat mong ipaubaya sa kanila ang mga ito. Habang nakadeposito ang iyong mga asset, nanganganib ang mga ito dahil mainit sa mata ng mga hacker ang mga centralized exchange. + + + Tingnan ang mga decentralized application (dapps) para sa trading + + + + +### Palaguin ang iyong portfolio {#investing} + +May mga produkto para sa pamamahala ng pondo sa Ethereum na susubukang palaguin ang iyong portfolio batay sa estratehiyang iyong pipiliin. Ito ay awtomatiko, bukas sa lahat, at hindi nangangailangan ng manager na makikihati sa iyong kita. + +Isang magandang halimbawa ang [ DeFi Pulse Index fund (DPI)](https://defipulse.com/blog/defi-pulse-index/). Ito ay isang pondo na awtomatikong nagre-rebalance upang tiyaking palaging makikita sa portfolio mo [ang mga nangungunang DeFi token ayon sa market capitalization](https://www.coingecko.com/en/defi). Hindi mo kailangang pamahalaan ang alinman sa mga detalye at puwede kang umalis sa pondo kung kailan mo gusto. + + + Tingnan ang mga decentralized application (dapps) para sa investment + + + + +### Pondohan ang iyong mga ideya {#crowdfunding} + +Magandang platform ang Ethereum para sa crowdfunding: + +- Maaaring manggagaling ang mga potensyal na funder kahit saan – bukas ang Ethereum at ang mga token nito para sa kahit sino at kahit saang sulok ng mundo. +- Transparent ito kaya maipapakita ng mga fundraiser kung magkano na ang naipong pera. At malalaman mo kung saan napupunta o nagagastos ang lahat ng ito. +- Maaaring mag-set up ang mga fundraiser ng mga awtomatikong refund kung, halimbawa, may tiyak na takdang oras at minimum na halaga na hindi natugunan. + + + Tingnan ang mga decentralized application (dapps) para sa crowdfunding + + +#### Kwadratik na pondo {#quadratic-funding} + +Ang Ethereum ay open source na software at marami sa mga naunang gawain nito ay pinondohan ng komunidad. Dahil dito, nagkaroon ng interesante at bagong fundraising model: ang quadratic funding. This has the potential to improve the way we fund all types of public goods in the future. + +Quadratic funding makes sure that the projects that receive the most funding are those with the most unique demand. In other words, projects that stand to improve the lives of the most people. Narito kung paano ito gumagana: + +1. May matching pool ng mga donasyon. +2. Magsisimula ang isang round ng public funding. +3. Maaaring ipahiwatig ng mga tao ang kanilang demand para sa isang proyekto sa pamamagitan ng pag-donate ng pera. +4. Kapag natapos na ang round, ang matching pool ay ipinapamahagi sa mga proyekto. Ang may pinakakakaibang demand ang makakakuha ng pinakamalaking halaga mula sa matching pool. + +Ibig sabihin nito, ang Proyekto A na may 100 na donasyon na nagkakahalaga ng 1 dolyar ay maaaring magkaroon ng mas maraming pondo kaysa sa Proyekto B na may isang donasyon na nagkakahalaga ng 10,000 dolyar (depende sa laki ng matching pool). + +[Iba pang detalye tungkol sa quadratic funding](https://wtfisqf.com) + + + +### Insurance {#insurance} + +Ang decentralized insurance ay may layuning gawing mas abot-kaya, mas pabilisin ang payout, at mas transparent ang insurance. Sa pamamagitan ng higit pang automation, mas abot-kaya ang coverage at mas mabibilis ang pay-out. Ang data na ginagamit upang magpasya sa iyong claim ay ganap na transparent. + +Ang mga produkto ng Ethereum, gaya ng anumang software, ay puwedeng magkaroon ng mga bug at puwedeng abusuhin. Kaya sa ngayon, maraming produkto ng insurance ang nakatuon sa pagprotekta sa mga user laban sa pagkawala ng pondo. Gayunpaman, may mga proyekto na nagsisimulang bumuo ng coverage para sa lahat ng puwede nating harapin sa buhay. Isang magandang halimbawa nito ay ang Crop cover ng Etherisc na may layuning [ protektahan ang maliliit na magsasaka sa Kenya laban sa tagtuyot at pagbaha](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Ang decentralized insurance ay maaaring magbigay ng mas abot-kayang presyo para sa mga magsasaka na kadalasang hindi kayang magbayad para sa tradisyonal na insurance. + + + Tingnan ang decentralized application (dapps) para sa insurance + + + + +### Mga aggregator at manager ng portfolio {#aggregators} + +Sa dami ng mga nangyayari, kakailanganin mo ng paraan upang subaybayan ang lahat ng iyong mga investment, loan, at trade. May iba't ibang produkto na nagbibigay-daan sa iyong i-coordinate ang lahat ng iyong aktibidad sa DeFi mula sa isang lugar. Ito ang kagandahan ng open architecture ng DeFi. Ang mga team ay maaaring bumuo ng mga interface kung saan hindi mo lang makikita ang iyong mga balanse sa iba't ibang produkto, maaari mo ring gamitin ang kanilang mga feature. Maaaring maging kapaki-pakinabang ito para sa iyo habang tinitingnan mo ang iba pang bahagi ng DeFi. + + + Tingnan ang decentralized application (dapps) para sa portfolio + + + + +## Paano gumagana ang DeFi? {#how-defi-works} + +Ang DeFi ay gumagamit ng mga cryptocurrency at smart contract upang magbigay ng mga serbisyong hindi nangangailangan ng mga intermediary. Sa kasalukuyang mundo ng pinansya, ang mga institusyong pinansyal ay nagsisilbing guarantor ng mga transaksyon. Binibigyan nito ang mga institusyong ito ng labis na kapangyarihan dahil dumadaan sa kanila ang pera mo. Dagdag pa rito, bilyon-bilyong tao sa buong mundo ang walang access sa bank account. + +Sa DeFi, pinapalitan ng smart contract ang pinansyal na institusyon sa transaksyon. Ang smart contract ay isang uri ng Ethereum account na maaaring humawak ng pondo at ipadala/ibalik ang mga ito base sa ilang partikular na kundisyon. Walang sinuman ang puwedeng magbago ng smart contract kapag live ito – palagi itong tatakbo ayon sa kung paano ito na-program. + +Ang isang kontrata na idinisenyo upang magbigay ng allowance o pocket money ay maaaring i-program na magpadala ng pera sa Account B mula sa Account A tuwing Biyernes. At gagawin lamang nito ito kung may sapat na pondo ang Account A. Walang sinuman ang puwedeng magbago ng kontrata at magdagdag ng Account C bilang recipient upang magnakaw ng pondo. + +Ang mga kontrata ay bukas din para tingnan at i-audit ng kahit sino. Ibig sabihin nito, madalas na masisiyasat kaagad ng komunidad ang hindi magagandang kontrata. + +Ito ay nangangahulugan na kailangan nating magtiwala sa mga mas teknikal na miyembro ng komunidad ng Ethereum na nakakapag-read ng code. Ang open-source based na komunidad ay tumutulong sa pagbabantay sa mga developer, pero hindi na ito masyadong kakailanganin sa paglipas ng panahon habang nagiging mas madaling i-read ang mga smart contract at gumagawa ng iba pang paraan para patunayan ang pagiging mapagkakatiwalaan ng code. + +## Ethereum at DeFi {#ethereum-and-defi} + +Ang Ethereum ang perpektong pundasyon para sa DeFi dahil sa mga sumusunod: + +- Walang nagmamay-ari sa Ethereum o sa mga smart contract na narito – binibigyan nito ang lahat ng pagkakataon na gumamit ng DeFi. Ibig sabihin din nito, walang makakapagbago ng mga panuntunan nang biglaan. +- Iisa ang language na ginagamit ng lahat ng produkto ng DeFi: Ethereum. Ibig sabihin, maayos na magagamit nang sama-sama ang marami sa mga produkto. Magagawa mong magpautang ng mga token sa isang platform at i-exchange ang token na may interes sa ibang market sa isang ganap na ibang application. Dito, para kang nagpapapalit ng loyalty points sa bangko mo. +- Ang mga token at cryptocurrency ay bahagi ng Ethereum, na isang nakabahaging ledger – magaling ang Ethereum sa pagsubaybay sa mga transaksyon at pagmamay-ari. +- Nagbibigay ng ganap na financial freedom ang Ethereum – hinding-hindi hahawakan ng karamihan sa mga produkto ang pondo mo, kaya ikaw talaga ang may kontrol. + +Maaaring isipin na may mga layer ang DeFi: + +1. Ang blockchain – na Ethereum ay naglalaman ng kasaysayan ng mga transaksyon at kalagayan ng mga account. +2. Ang mga asset –[ ETH](/eth/)at iba pang token (mga currency). +3. Ang mga protocol – [mga smart contract](/glossary/#smart-contract) na nagbibigay ng kakayahan, halimbawa, sa isang serbisyong nagpapahintulot ng decentralized na pagpapautang ng mga asset. +4. [Ang mga application](/dapps/) – ang mga produkto na ginagamit natin para pamahalaan at i-access ang mga protocol. + +## Gumawa ng DeFi {#build-defi} + +Ang DeFi ay isang open-source movement. Ang mga protocol at application ng DeFi ay bukas para i-inspect, i-fork, at pagandahin mo. Dahil sa layered stack na ito (gumagamit ang lahat ng ito ng parehong base blockchain at mga asset), ang mga protocol ay maaaring pagsama-samahin upang gumawa ng mga natatanging oportunidad. + + + Iba pang detalye tungkol sa mga decentralized application (dapps) para sa paggawa + + +## Karagdagang pagbabasa {#futher-reading} + +### DeFi data {#defi-data} + +- [DeFi Prime](https://defiprime.com/) +- [Defi Llama](https://defillama.com/) +- [DeFi Rate](https://defirate.com/) + +### Mga artikulo tungkol sa DeFi {#defi-articles} + +- [Gabay para sa mga baguhan sa DeFi](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, Enero 6, 2020_ + +### Videos {#videos} + +- [Finematics - edukasyon tungkol sa decentralized finance](https://finematics.com/) – _Mga video tungkol sa DeFi_ +- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _Mga pangunahing kaalaman sa DeFi: Lahat ng kailangan mong malaman para makapagsimula sa nakakalitong lugar na ito._ +- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA)_Ano ang DeFi?_ + +### Mga Komunidad {#communities} + +- [Discord server ng DeFi Llama](https://discord.gg/buPFYXzDDd) +- [Discord server ng DeFi Pulse](https://discord.gg/Gx4TCTk) diff --git a/public/content/translations/fil/desci/index.md b/public/content/translations/fil/desci/index.md new file mode 100644 index 00000000000..0069959027d --- /dev/null +++ b/public/content/translations/fil/desci/index.md @@ -0,0 +1,139 @@ +--- +title: Decentralized science (DeSci) +description: Pangkalahatang-ideya ng decentralized science sa Ethereum +lang: fil +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Isang pandaigdigan at bukas na alternatibo sa kasalukuyang sistemang siyentipiko. +summaryPoint2: Isang teknolohiyang nagbibigay-daan sa mga siyentipiko na lumikom ng pondo, magsagawa ng mga eksperimento, magbahagi ng data, magbahagi ng mga kaalaman, at iba pa. +summaryPoint3: Pinapalawig ang open science movement. +--- + +## Ano ang decentralized science (DeSci)? {#what-is-desci} + +Ang decentralized science (DeSci) ay isang kilusang naglalayong gumawa ng pampublikong infrastructure para sa pagpopondo, paggawa, pagsusuri, pagkilala, pag-store, at pagpapalaganap ng kaalaman sa agham nang patas at pantay-pantay gamit ang Web3 stack. + +Layunin ng DeSci na gumawa ng ecosystem kung saan hinihikayat ang mga siyentipikong hayagang ibahagi ang kanilang pananaliksik at kilalanin para sa kanilang gawa habang binibigyang-daan ang kahit sino na i-access at mag-contribute sa pananaliksik nang walang kahirap-hirap. Pinagbabatayan ng DeSci ang ideyang dapat naa-access ng lahat ang siyentipikong kaalaman at dapat transparent ang proseso ng siyentipikong pananaliksik. Gumagawa ang DeSci ng mas decentralized at mas malawak na model ng siyentipikong pananaliksik. Kung kaya, mas mahihirapan ang mga central authority na i-censor o kontrolin ito. Umaasa ang DeSci na makakagawa ito ng environment kung saan mabubuo ang mga bago at hindi pangkaraniwang ideya sa pamamagitan ng pag-decentralize sa access sa pondo, mga scientific tool, at mga channel ng komunikasyon. + +Nagbibigay-daan ang decentralized science sa mas diverse na pinagmumulan ng pondo (mula sa [mga DAO](/dao/), [quadratic donation](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) hanggang sa crowdfunding at iba pa), mas accessible na data at paraan ng pag-access, at sa pamamagitan ng pagbibigay ng mga insentibo para sa reproducibility. + +### Juan Benet - Ang DeSci Movement + + + +## Paano pinapaunlad ng DeSci ang agham {#desci-improves-science} + +Isang hindi kumpletong listahan ng mga pangunahing problema sa agham at kung paano makakatulong ang decentralized science na tugunan ang mga isyung ito + +| **Decentralized science** | **Tradisyonal na agham** | +| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| Ang distribusyon ng pondo ay tinutukoy ng publiko gamit ang mga mekanismo tulad ng mga quadratic donation o DAO. | Mga maliit, eksklusibo, at centralized na grupo ang kumokontrol sa distribusyon ng pondo. | +| Nakikipag-collaborate ka sa mga kasamahan mula sa iba't ibang panig ng mundo sa mga dynamic na team. | Nililimitahan ng mga funding organization at home institution ang mga pakikipag-collaborate mo. | +| Ginagawa online at nang transparent ang mga desisyon sa pondo. Tumitingin ng mga bagong mekanismo sa pagpopondo. | Matagal bago makuha ang mga desisyon sa pondo at limitado lang ang transparency. Iilan lang ang mga mekanismo sa pagpopondo. | +| Mas madali at mas transparent ang pagbabahagi ng mga serbisyo sa laboratoryo gamit ang Web3 primitives. | Madalas na mabagal at hindi gaanong malinaw ang pagbabahagi ng mga mapagkukunan para sa laboratoryo. | +| Maaaring mag-develop ng mga bagong model para sa paglalathala na gumagamit ng Web3 primitives para sa tiwala, transparency, at pangkalahatang access. | Naglalathala ka sa pamamagitan ng mga itinakdang pathway na madalas na kinikilalang hindi epektibo, may kinikilingan, at mapagsamantala. | +| Maaari kang kumita ng mga token at makilala para sa pagsusuri ng gawa ng mga kasamahan. | Hindi ka babayaran para sa iyong pagsusuri sa gawa ng mga kasamahan, kung kaya, ang mga for-profit publisher ang nakikinabang. | +| Ikaw ang nagmamay-ari sa intellectual property (IP) na ginagawa mo at maipapamahagi mo ito ayon sa mga transparent na tuntunin. | Ang home institution mo ang nagmamay-ari sa IP na ginagawa mo. Hindi transparent ang access sa IP. | +| Dahil on-chain ang lahat ng hakbang, ibinabahagi ang buong pananaliksik, kasama ang data mula sa mga hindi matagumpay na eksperimento. | Dahil sa publication bias, mas malamang na ibahagi ng mga mananaliksik ang mga eksperimentong naging matagumpay. | + +## Ethereum at DeSci {#ethereum-and-desci} + +Ang decentralized science system ay mangangailangan ng maigting na seguridad, maliit na monetary cost at transaction cost, at mahusay na ecosystem para sa pag-develop ng application. Ibinibigay ng Ethereum ang lahat ng kailangan para gumawa ng decentralized science stack. + +## Mga use case ng DeSci {#use-cases} + +Ginagawa ng DeSci ang scientific toolset na mag-o-onboard sa Web2 academia sa digital na mundo. Nasa ibaba ang mga halimbawa ng mga use case na maibibigay ng Web3 na siyentipikong komunidad. + +### Paglalathala {#publishing} + +Ang paglalathala ng mga siyentipikong pananaliksik ay kilala bilang nakakaligalig dahil pinapamahalaan ito ng mga publishing house na umaasa sa libreng trabaho ng mga siyentipiko, reviewer, at editor para mabuo ang mga pananaliksik, ngunit maniningil ng napakamahal na bayarin sa paglalathala. Kadalasan, hindi naa-access ng publiko, na karaniwang hindi direktang nagbayad para sa pananaliksik at mga gastos sa paglalathala sa pamamagitan ng pagbubuwis, ang mismong pananaliksik nang hindi nagbabayad sa publisher. Ang kabuuang bayarin para sa paglalathala ng bawat isang siyentipikong pananaliksik ay kadalasang halagang may limang digit ($USD), na sumisira sa konsepto ng siyentipikong kaalaman bilang [public good](https://www.econlib.org/library/Enc/PublicGoods.html) habang kumikita ng napakalaking halaga para sa mallit na grupo ng mga publisher. + +Mayroong mga libre at open-access na platform gaya ng mga pre-print server, [tulad ng ArXiv](https://arxiv.org/). Gayunpaman, ang mga platform na ito ay walang paraan ng pagkontrol sa kalidad, [mekanismo laban sa Sybil attack,](https://csrc.nist.gov/glossary/term/sybil_attack) at karaniwang hindi sinusubaybayan ang mga pamantayan sa antas ng artikulo. Ibig sabihin nito, karaniwang ginagamit lang ang mga ito para magsapubliko ng pananaliksik bago isumite sa tradisyonal na publisher. Sa SciHub, libreng makukuha ang mga nailathalang pananaliksik, pero hindi legal. Makukuha lang din ang mga pananaliksik kapag nabayaran na ang mga publisher at naprotektahan na ng mga ito ang pananaliksik sa mahigpit na batas sa copyright. Dahil dito, malaki ang pangangailangan para sa accessible na siyentipikong pananaliksik at data na may naka-embed na mekanismo ng pagiging lehitimo at model para sa insentibo. Makikita sa Web3 ang mga tool para makagawa ng ganitong system. + +### Reproducibility at replicability {#reproducibility-and-replicability} + +Ang reproductibility at replicability ay mga pundasyon ng de-kalidad na scientific discovery. + +- Maaaring makuha ang mga reproducible na resulta nang maraming magkakasunod na beses ng parehong team gamit ang parehong pamamaraan. +- Maaaring makuha ng ibang grupo ang mga replicable na resulta gamit ang parehong experimental setup. + +Tinitiyak ng mga bagong Web3-native tool na pundasyon ng pagtuklas ang reproducibility at replicability. Puwede nating ilagay ang de-kalidad na agham sa teknolohikal na aspeto ng akademya. Sa Web3, makakagawa ng mga attestation para sa bawat bahagi ng pagsusuri: ang raw data, computational engine, at resulta ng application. Ang maganda sa mga consensus sytem ay kapag gumawa ng pinagkakatiwalaang network para sa pagpapanatili ng mga bahaging ito, maaaring maging responsable ang bawat kasapi ng network sa pag-reproduce ng kalkulasyon at pag-validate sa bawat resulta. + +### Pagpopondo {#funding} + +Sa kasalukuyan, ang standard model para sa pagpopondo sa agham ay sumusulat ang mga indibidwal o grupo ng mga siyentipiko ng mga aplikasyon sa isang funding agency. Binibigyan ng puntos ng isang maliit na panel ng mga pinagkakatiwalaang indibidwal ang mga aplikasyon at pagkatapos ay kinakapanayam ng mga ito ang mga kandidato bago igawad ang pondo sa ilang aplikante. Bukod sa paggawa ng mga hadlang na humahantong sa napakatagal na panahon ng paghihintay sa pagitan ng pag-apply at pagtanggap ng grant, kilala ang model na ito na madaling maimpluwensyahan ng mga personal na opinyon, pansariling interes, at pulitika ng review panel. + +Ayon sa mga pag-aaral, hindi napipili ng mga grant review panel ang mga de-kalidad na proposal dahil labis na naiiba ang resulta noong ibinigay ang mga parehong proposal sa ibang mga panel. Dahil sa kakulangan saa pondo, mas kaunti na lamang ang napagbibigyan nito, at mas nakatutok sa mga mas matagal nang mga mananaliksik na may mga proyektong konserbatibo. Dahil dito, naging sobrang kompetitibo ang pagkuha ng pondo, nagtakda ng mga hindi katanggap-tanggap na insentibo, at nalimitahan ang inobasyon. + +May potensyal ang Web3 na baguhin ang hindi epektibong funding model na ito sa pamamagitan ng pagsubok sa iba't ibang model para sa insentibo na ginawa ng DAO at Web3. Ang [retroactive public goods funding](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), [quadratic funding](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), [DAO governance](https://www.antler.co/blog/daos-and-web3-governance) at [mga tokenized na incentive structure](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) ang ilan sa mga Web3 tool na maaaring bumago sa pagpopondo para sa agham. + +### Pagmamay-ari at pag-develop sa IP {#ip-ownership} + +Ang intellectual property (IP) ay malaking problema sa tradisyonal na agham: mula sa pagkapako sa mga unibersidad, o hindi paggamit sa mga ito sa mga biotech, hanggang sa kahirapan sa pagtantya sa halaga nito. Gayunpaman, bihasa ang Web3 pagdating sa pagmamay-ari sa mga digital asset (tulad ng siyentipikong data o mga artikulo) sa tulong ng [mga non-fungible token (NFTs)](/nft/). + +Tulad kung paano nagagawa ng mga NFT na ibalik ang kita para sa mga susunod pang transaksyon sa orihinal na creator, puwede kang magtakda ng mga transparent na value attribution chain para gantimpalaan ang mga mananaliksik, governing body (tulad ng mga DAO), o maging ang mga subject na pinagkukunan ng data. + +Ang [IP-NFTs](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) ay puwede ring maging susi sa repository ng decntralized data ng mga isinasagawang eksperimento sa pananaliksik, at puwede rin itong gamitin sa NFT at [DeFi](/defi/) financialization (mula sa fractionalization hanggang sa mga lending pool at value appraisal). Binibigyang-daan din nito ang mga native na on-chain na entity gaya ng mga DAO tulad ng [VitaDAO](https://www.vitadao.com/) na magsagawa ng pananaliksik nang direkta on-chain. Maaaring may mahalagang papel din sa DeSci ang pagdating ng mga non-transferable na ["soulbound" token](https://vitalik.ca/general/2022/01/26/soulbound.html) sa pamamagitan ng pagbibigay-daan sa mga indibidwal na patunayan ang kanilang karanasan at kredensyal na nauugnay sa kanilang Ethereum address. + +### Pag-store, pag-access, at architecture ng data {#data-storage} + +Ang siyentipikong data ay maaaring gawing mas accessible gamit ang mga pattern ng Web3, at binibigyang-daan ng malawak na storage na malampasan ng pananaliksik ang mga cataclysmic event. + +Dapat itong magsimula sa isang system na maa-access ng anumang decentralized identity na may hawak ng mga naaangkop at nave-verify na kredensyal. Dahil dito, secure na mare-replicate ng mga pinagkakatiwalaang partido ang sensitibong data, na nagbibigay-daan sa redundacy at paglaban sa censorship, reproduction ng mga resulta, at maging ang kakayahan ng maraming partido na mag-collaborate at magdagdag ng bagong data sa dataset. Ang mga paraan ng confidential computing tulad ng [compute-to-data](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol) ay nagbibigay ng mga alternatibong paraan ng pag-access sa pag-replicate ng raw data, na gumagawa ng mga Trusted Research Environment para sa mga pinakasensitibong data. Ang mga Trusted Research Environment ay [binanggit ng NHS](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) bilang future-facing solution para sa privacy ng data at collaboration sa pamamagitan ng paggawa ng ecosystem kung saan secure na magagamit ng mga mananaliksik ang data on-site gamit ang mga standardized na environment para sa pagbabahagi ng code at mga kagaiwan. + +Sinusuportahan ng mga flexible na Web3 data solution ang mga sitwasyong nabanggit at nagsisilbi itong pundasyon para sa ganap na Open Science, kung saan makakagawa ng public goods are mga mananaliksik nang hindi nangangailangan ng mga pahintulot para ma-access o mga bayarin. Ang mga Web3 public data solution tulad ng IPFS, Arweave, at Filecoin ay ginawa para sa decentralization. Halimbawa, nagbibigay ang dClimate ng pangkalahatang access sa data ng klima at lagay ng panahon, kabilang iyong mula sa mga weather station at mga predictive climate model. + +## Makibahagi {#get-involved} + +Tingnan ang mga proyekto at sumali sa komunidad ng DeSci. + +- [DeSci.Global: kalendaryo ng mga global event at meetup](https://desci.global) +- [Telegram ng Blockchain for Science](https://t.me/BlockchainForScience) +- [Molecule: Maglaan at makakuha ng pondo para sa iyong mga proyektong pananaliksik](https://discover.molecule.to/) +- [VitaDAO: makatanggap ng pondo sa pamamagitan ng mga sponsored na research agreement para sa longevity research](https://www.vitadao.com/) +- [ResearchHub: mag-post ng resulta ng siyentipikong pag-aaral at makipag-usap sa mga kapwa mananaliksik](https://www.researchhub.com/) +- [LabDAO: mag-fold ng protein in-silico](https://alphafodl.vercel.app/) +- [dClimate API: mag-query ng data ng klima na kinolekta ng decentralized community](https://api.dclimate.net/) +- [DeSci Foundation: builder ng tool sa paglalathala ng DeSci](https://descifoundation.org/) +- [DeSci.World: one-stop shop para tingnan at mag-engage ang mga user sa decentralized science](https://desci.world) +- [Fleming Protocol: open-source data economy na naghihikayat ng collaborative na biomedical discovery](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [OceanDAO: pagpopondo na pinapamahalaan ng decentralized autonomous organization (DAO) para sa agham na nauugnay sa data](https://oceanprotocol.com/dao) +- [Opscientia: mga bukas na workflow ng decentralized science](https://opsci.io/research/) +- [LabDAO: mag-fold ng protein in-silico](https://alphafodl.vercel.app/) +- [Bio.xyz: makakuha ng pondo para sa iyong biotech DAO o desci project](https://www.molecule.to/) +- [ResearchHub: mag-post ng resulta ng siyentipikong pag-aaral at makipag-usap sa mga kapwa mananaliksik](https://www.researchhub.com/) +- [VitaDAO: makatanggap ng pondo sa pamamagitan ng mga sponsored na research agreement para sa longevity research](https://www.vitadao.com/) +- [Fleming Protocol: open-source data economy na naghihikayat ng collaborative na biomedical discovery](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [Active Inference Lab](https://www.activeinference.org/) +- [CureDAO: Platform para sa Precision Health na Pagmamay-ari ng Komunidad](https://docs.curedao.org/) +- [IdeaMarkets: nagbibigay-daan sa decentralized scientific credibility](https://ideamarket.io/) +- [DeSci Labs](https://www.desci.com/) + +Tumatanggap kami ng mga mungkahi para sa mga bagong proyekto na ililista - tingnan ang aming [patakaran sa pagsasama sa listahan](/contributing/adding-desci-projects/) para magsimula! + +## Karagdagang pagbabasa {#further-reading} + +- [DeSci Wiki ni Jocelynn Pearl at ng Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) +- [Gabay sa decentralized biotech ni Jocelynn Pearl para sa a16z future](https://future.a16z.com/a-guide-to-decentralized-biotech/) +- [Ang sitwasyon para sa DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) +- [Gabay sa DeSci](https://future.com/what-is-decentralized-science-aka-desci/) +- [Mga mapagkukunan tungkol sa decentralized science](https://www.vincentweisser.com/decentralized-science) +- [Biopharma IP-NFTs ng Molecule - Isang Teknikal na Paglalarawan](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) +- [Paggawa ng mga Trustless na System of Science ni Jon Starr](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) +- [Ang Pag-usbong ng Biotech DAOs](https://molecule.to/blog/the-emergence-of-biotech-daos) +- [Paul Kohlhaas - DeSci: Ang Kinabukasan ng Decentralized Science (podcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) +- [Isang Ontolohiya ng Aktibong Inference para sa Decentralized Science: mula sa Situated Sensemaking hanggang sa Epistemic Commons](https://zenodo.org/record/6320575) +- [DeSci: Ang Kinabukasan ng Pananaliksik ni Samuel Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) +- [Pondo para sa Agham (Epilogo: DeSci at bagong crypto primitives) ni Nadia](https://nadia.xyz/science-funding) +- [Binabago ng Decentralization ang Pag-develop ng Gamot](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) + +### Videos {#videos} + +- [Ano ang Decentralized Science?](https://www.youtube.com/watch?v=-DeMklVWNdA) +- [Usapan sa pagitan ni Vitalik Buterin at ng siyentipikong si Aubrey de Grey tungkol sa intersection ng longevity research at crypto](https://www.youtube.com/watch?v=x9TSJK1widA) +- [Sira ang Pampublikasyon ng Siyentipiko. Maaayos Ba Ito ng Web3?](https://www.youtube.com/watch?v=WkvzYgCvWj8) +- [Juan Benet - DeSci, Independent Labs, at Large Scale Data Science](https://www.youtube.com/watch?v=zkXM9H90g_E) +- [Sebastian Brunemeier - Paano Mababago ng DeSci ang Biomedical Research at Venture Capital](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/fil/energy-consumption/energy_consumption_pre_post_merge.png b/public/content/translations/fil/energy-consumption/energy_consumption_pre_post_merge.png similarity index 100% rename from src/content/translations/fil/energy-consumption/energy_consumption_pre_post_merge.png rename to public/content/translations/fil/energy-consumption/energy_consumption_pre_post_merge.png diff --git a/src/content/translations/fil/energy-consumption/index.md b/public/content/translations/fil/energy-consumption/index.md similarity index 100% rename from src/content/translations/fil/energy-consumption/index.md rename to public/content/translations/fil/energy-consumption/index.md diff --git a/src/content/translations/fil/governance/index.md b/public/content/translations/fil/governance/index.md similarity index 100% rename from src/content/translations/fil/governance/index.md rename to public/content/translations/fil/governance/index.md diff --git a/src/content/translations/fil/guides/how-to-create-an-ethereum-account/index.md b/public/content/translations/fil/guides/how-to-create-an-ethereum-account/index.md similarity index 100% rename from src/content/translations/fil/guides/how-to-create-an-ethereum-account/index.md rename to public/content/translations/fil/guides/how-to-create-an-ethereum-account/index.md diff --git a/src/content/translations/fil/guides/how-to-id-scam-tokens/index.md b/public/content/translations/fil/guides/how-to-id-scam-tokens/index.md similarity index 100% rename from src/content/translations/fil/guides/how-to-id-scam-tokens/index.md rename to public/content/translations/fil/guides/how-to-id-scam-tokens/index.md diff --git a/src/content/translations/fil/guides/how-to-revoke-token-access/index.md b/public/content/translations/fil/guides/how-to-revoke-token-access/index.md similarity index 100% rename from src/content/translations/fil/guides/how-to-revoke-token-access/index.md rename to public/content/translations/fil/guides/how-to-revoke-token-access/index.md diff --git a/src/content/translations/fil/guides/how-to-swap-tokens/index.md b/public/content/translations/fil/guides/how-to-swap-tokens/index.md similarity index 100% rename from src/content/translations/fil/guides/how-to-swap-tokens/index.md rename to public/content/translations/fil/guides/how-to-swap-tokens/index.md diff --git a/src/content/translations/fil/guides/how-to-use-a-bridge/index.md b/public/content/translations/fil/guides/how-to-use-a-bridge/index.md similarity index 100% rename from src/content/translations/fil/guides/how-to-use-a-bridge/index.md rename to public/content/translations/fil/guides/how-to-use-a-bridge/index.md diff --git a/src/content/translations/fil/guides/how-to-use-a-wallet/index.md b/public/content/translations/fil/guides/how-to-use-a-wallet/index.md similarity index 100% rename from src/content/translations/fil/guides/how-to-use-a-wallet/index.md rename to public/content/translations/fil/guides/how-to-use-a-wallet/index.md diff --git a/src/content/translations/fil/guides/index.md b/public/content/translations/fil/guides/index.md similarity index 100% rename from src/content/translations/fil/guides/index.md rename to public/content/translations/fil/guides/index.md diff --git a/public/content/translations/fil/nft/index.md b/public/content/translations/fil/nft/index.md new file mode 100644 index 00000000000..db2af5ed83a --- /dev/null +++ b/public/content/translations/fil/nft/index.md @@ -0,0 +1,94 @@ +--- +title: Non-fungible token (NFT) +description: Isang pangkalahatang-ideya ng mga NFT sa Ethereum +lang: fil +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: Logo ng Eth naka display via hologram. +summaryPoint1: Isang paraan para katawanin ang kahit anong natatangi bilang Ethereum-based asset. +summaryPoint2: Mas binibigyang-kakayahan ngayon ng mga NFT ang mga content creator. +summaryPoint3: Pinapagana ng mga smart contract sa Ethereum blockchain. +--- + +## Ano ang NFTs? {#what-are-nfts} + +Ang mga NFT ay mga token na magkakaiba. May iba't ibang property (non-fungible) ang bawat NFT at limitado lang ang bilang nito. Iba ito sa mga token tulad ng mga ERC-20 kung saan magkakapareho at may magkakaparehong property ('fungible') ang bawat token. Wala kang pakialam sa partikular na dollar bill sa wallet mo, dahil pare-pareho at magkakasing halaga ang mga ito. Gayunpaman, mahalaga _sa'yo_ kung aling partikular na NFT ang pagmamay-ari mo, dahil may mga natatanging property ang bawat isa, kung kaya, matutukoy mo ang pagkakaiba nito sa iba ('non-fungible'). + +Dahil sa pagiging natatangi ng bawat NFT, mato-tokenize ang mga bagay tulad ng art, mga collectible, o kahit real estate, kung saan kumakatawan ang isang partikular at natatanging NFT sa partikular na bagay sa totoong mundo o digital item. Sine-secure ng Ethereum blockchain ang pagmamay-ari sa isang asset – walang puwedeng magbago ng record ng pagmamay-ari o kumopya/mag-paste para gumawa ng bagong NFT. + + + +## Ang internet ng mga asset {#internet-of-assets} + +Nilulutas ng mga NFT at Ethereum ng ilan sa mga problema sa internet ngayon. Habang nagiging mas digital ang lahat, kailangang i-replicate ang mga property ng mga pisikal na item tulad ng kakapusan, pagiging natatangi, at patunay ng pagmamay-ari. sa paraang hindi kontrolado ng isang sentral na organisasyon. Halimbawa, gamit ang mga NFT, puwede kang magmay-ari ng music mp3 na hindi para lang sa partikular na music app ng isang kumpanya, o puwede kang magmay-ari ng isang social media handle na puwede mong ibenta o i-swap, pero hindi maaaring basta-basta kunin mula sa iyo ng isang platform provider. + +Ganito ang hitsura ng internet ng mga NFT kumpara sa internet na ginagamit ng karamihan sa atin ngayon... + +### Pag-kumpara {#nft-comparison} + +| Internet ng NFT | Ang internet sa kasalukuyan | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Pagmamay-ari mo ang iyong mga asset! Ikaw lang ang puwedeng magbenta at mag-swap sa mga ito. | Puwede kang magrenta ng asset mula sa isang organisasyon. | +| Ang mga NFT ay digitally unique, walang dalawang NFT na magkapareho. | Kadalasan, hindi mapag-iba sa orihinal ang kopya ng isang entity. | +| Ang pagmamay-ari sa isang NFT ay naka-store sa blockchain para ma-verify ng sinuman. | Ang mga record ng pagmamay-ari sa mga digital item ay naka-store sa mga server na kontrolado ng mga institusyon – dapat mo silang pagkatiwalaan. | +| Ang NFTs ay mga smart contracts sa Ethereum. Ibig sabihin, madali silang gamitin sa iba pang smart contract at app sa Ethereum! | Karaniwang kailangan ng mga kumpanya na may mga digital item ng sarili nilang "walled garden" infrastructure. | +| Magagawa ng mga content creator na ibenta ang kanilang gawa kahit saan at mag-access ng global market. | Umaasa ang mga creator sa infrastructure at distribusyon ng mga platform na ginagamit nila. Madalas na napapailalim ang mga ito sa mga tuntunin ng paggamit at mga limitasyon sa lokasyon. | +| Puwedeng panatilihin ng mga NFT creator ang mga karapatan sa pagmamay-ari sa sarili nilang gawa, at puwede nilang direktang ilagay ang mga royalty sa kontrata ng NFT. | Naitatabi ng mga platform, tulad ng mga serbisyo sa music streaming, ang malaking bahagi ng kita mula sa mga benta. | + +## Paano gumagana ang mga NFT? {#how-nfts-work} + +Tulad ng anumang token na inilabas sa Ethereum, ang mga NFT ay galing sa smart contract. Sumusunod ang smart contract sa isa sa ilang pamantayan ng NFT (karaniwang ERC-721 o ERC-1155) na nagtatakda kung ano ang mga function ng kontrata. Puwedeng lumikha ('mag-mint') ng mga NFT ang kontrata at italaga ang mga ito sa isang partikular na may-ari. Tinutukoy sa kontrata ang pagmamay-ari sa pamamagitan ng pagmamapa ng mga partikular na NFT sa mga partikular na address. Ang NFT ay may ID at nauugnay na metadata na nagbibigay ng kakaibang katangian sa token. + +Kapag gumawa o nag-mint ng NFT ang isang tao, nag-e-execute talaga siya ng function sa smart contract na nagtatalaga ng partikular na NFT sa address niya. Ang impormasyon na ito ay naka-store sa storage ng kontrata, na bahagi ng blockchain. Puwedeng magdagdag pa ang creator ng kontrata ng logic sa kontrata, halimbawa, na naglilimita ng kabuuang supply o na tumutukoy ng royalty na ibabayad sa creator sa tuwing may tina-transfer na token. + +## Saan ginagamit ang mga NFT? {#nft-use-cases} + +Ang mga NFT ay ginagamit para sa iba't ibang bagay, kabilang ang: + +- pagpapatunay na dumalo ka sa isang event +- pagpapatunay na natapos mo ang isang kurso +- mga ownable item para sa mga laro +- digital art +- pag-tokenize sa mga real-world asset +- pagpapatunay ng iyong online na pagkakakilanlan +- pagkontrol sa access sa content +- ticketing +- mga decentralized na internet domain name +- collateral sa DeFi + +Maaaring artist ka na gustong ibahagi ang gawa mo gamit ang mga NFT nang hindi nawawalan ng kontrol at nang hindi isinasakripisyo ang kita mo sa mga intermediary. Puwede kang gumawa ng bagong kontrata at tukuyin ang bilang ng mga NFT, mga property ng mga ito, at isang link sa ilang partikular na artwork. Bilang artist, puwede mong ilagay sa smart contract ang mga royalty na dapat ibayad sa iyo (halimbawa, i-transfer ang 5% ng sale price sa may-ari ng kontrata sa tuwing may tina-transfer na NFT). Palagi mo ring mapapatunayan na ginawa mo ang mga NFT dahil pagmamay-ari mo ang wallet na nag-deploy ng kontrata. Madaling mapapatunayan ng mga buyer mo na nagmamay-ari sila ng authentic na NFT galing sa koleksyon mo dahil nauugnay ang address ng wallet nila sa token sa smart contract mo. Magagamit nila ito sa buong Ethereum ecosystem nang may kumpiyansa sa authenticity nito. + +O parang ticket lang sa isang sporting event. Kung paanong mapipili ng organizer ng event kung gaano karaming ticket ang ibebenta, makakapagpasya ang creator ng NFT kung ilang replica ang mayroon. Kung minsan, mga exact replica ang mga ito, tulad ng 5000 General Admission ticket. Kung minsan, may ilang mini-mint na halos magkakatulad, pero may kaunting pagkakaiba, tulad ng ticket na may nakatalagang upuan. Maaaring bilhin at ibenta nang peer-to-peer ang mga ito nang hindi kinakailangang magbayad sa mga ticket handler at palaging sigurado ang buyer sa authenticity ng ticket sa pamamagitan ng pagtingin sa address ng kontrata. + +Sa ethereum.org, ginagamit ang mga NFT para ipakita na nag-contribute ang mga tao sa aming GitHub repository o sumali sa mga tawag, at mayroon din kaming sariling domain name para sa NFT. Kung magko-contribute ka sa ethereum.org, maaari kang mag-claim ng POAP NFT. May ilang crypto meetup na gumamit ng mga POAP bilang ticket. [Iba pang detalye tungkol sa pag contribute](/contributing/#poap). + +![ethereum.org POAP](./poap.png) + +Ang website na ito ay mayroon ding alternatibong domain name na pinapagana ng mga NFT, ang **ethereum.eth**. Ang aming `.org` address ay sentral na pinamamahalaan ng domain name system (DNS) provider, samantalang ang ethereum`.eth` ay nakarehistro sa Ethereum sa pamamagitan ng Ethereum Name Service (ENS). At pagmamay-ari at pinamamahalaan namin ito. [Tingnan ang aming ENS record](https://app.ens.domains/name/ethereum.eth) + +[Iba pang detalye tungkol sa ENS](https://app.ens.domains) + + + +### Seguridad ng NFT {#nft-security} + +Ang seguridad ng Ethereum ay mula sa proof-of-stake. Ang system na ito ay idinisenyo para ekonomikal na i-disincentivize ang mga nakakapinsalang pagkilos, kung kaya, tamper-proof ang Ethereum. Ginagawa nitong posible ang mga NFT. Kapag naisapinal na ang block na naglalaman ng iyong NFT transaction, kakailanganing gumastos ng milyon-milyong ETH ang attacker para mapalitan ito. Matutukoy kaagad ng sinumang nagpapatakbo ng Ethereum software ang hindi matapat na tampering sa NFT, at papatawan ng parusa sa ekonomikal na paraan at tatanggalin ang bad actor. + +Pinakamadalas na nauugnay sa mga phishing scam, vulnerability ng smart contract o error ng user (gaya ng hindi sinasadyang pagsisiwalat ng mga pribadong key) ang mga isyu sa seguridad kaugnay ng mga NFT, kung kaya, kritikal para sa mga may-ari ng NFT ang mainam na seguridad para sa wallet. + + + Iba pang detalye tungkol sa seguridad + + +## Karagdagang pagbabasa {#further-reading} + +- [Gabay ng baguhan sa mga NFT](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, Enero 2020_ +- [EtherscanNFT tracker](https://etherscan.io/nft-top-contracts) +- [ERC-721 token standard](/developers/docs/standards/tokens/erc-721/) +- [ERC-1155 token standard](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/public/content/translations/fil/refi/index.md b/public/content/translations/fil/refi/index.md new file mode 100644 index 00000000000..72642b4a0cf --- /dev/null +++ b/public/content/translations/fil/refi/index.md @@ -0,0 +1,79 @@ +--- +title: Regenerative Finance (ReFi) +description: Pangkalahatang-ideya ng Regenerative Finance (ReFi) at mga kasalukuyang use case nito. +lang: fil +template: use-cases +emoji: ":recycle:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Isang alternatibong sistema ng ekonomiya na ibinatay sa mga prinsipyong regenerative +summaryPoint2: Isang pagsubok na gamitin ang Ethereum upang malutas ang mga pandaigdigang problema sa koordinasyon tulad ng pagbabago ng klima +summaryPoint3: Isang tool na susukatin nang husto ang mga ecological benefit asset tulad ng mga verified na carbon credit +--- + +## Ano ang ReFi? {#what-is-refi} + +Ang **regenerative finance (ReFi)** ay isang hanay ng mga tool at ideya na ibinatay sa mga blockchain, na naglalayong gumawa ng mga ekonomiya na regenerative, sa halip na extractive o exploitative. Kalaunan, mauubos ng mga extractive system ang mga resource na available, at magko-collapse ang mga ito. Kapag walang regenerative na mekanismo, walang resilience ang mga ito. Ipinagpapalagay sa ReFi na dapat i-decouple ang paggawa ng monetary value sa hindi sustainable na paghango ng mga resource mula sa ating planeta at mga komunidad. + +Sa halip, layunin ng ReFi na lutasin ang mga problemang pangkalikasan, pangkomunidad, o panlipunan sa pamamagitan ng paggawa ng mga regenerative cycle. Mapapakinabangan ng mga kalahok ang mga system na ito habang nakikinabang din sa mga ito ang mga ecosystem at komunidad. + +Ang isa sa mga pundasyon ng ReFi ay ang konsepto ng regenerative economics na unang ginamit ni John Fullerton ng [Capital Institute](https://capitalinstitute.org). Nagpanukala siya ng walong magkakaugnay na prinsipyo na sumusuporta sa systemic health: + +![Walong magkakaugnay na prinsipyo](./refi-regenerative-economy-diagram.png) + +Isinasakatuparan ng mga proyekto sa ReFi ang mga prinsipyong ito gamit ang [mga smart contract](/developers/docs/smart-contracts/) at mga [decentralized finance (DeFi)](/defi/) application para hikayatin ang mga regenerative na kagaiwan, hal., pagpapanumbalik ng sigla ng mga napinsalang ecosystem, at pangasiwaan ang large-scale collaboration sa mga pandaigdigang isyu tulad ng pagbabago ng klima at pagkaubos ng biodiversity. + +May pagkakapareho ang ReFi sa [decentralized science (DeSci)](/desci/) movement, na gumagamit ng Ethereum bilang platform para pondohan, gawin, suriin, kilalanin, i-store, at ipakalat ang siyentipikong kaalaman. Ang mga tool sa DeSci ay maaaring maging kapaki-pakinabang para sa pagbuo ng mga nave-verify na pamantayan at pamamaraan para sa pagpapatupad at pagsusubaybay sa mga regenerative na aktibidad tulad ng pagtatanim ng mga puno, pag-aalis ng plastic sa karagatan, o pagpapanumbalik ng sigla ng napinsalang ecosystem. + +## Tokenization ng mga carbon credit {#tokenization-of-carbon-credits} + +Ang **[voluntary carbon market (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** ay mekanismo para pondohan ang mga proyekto na may napatunayang positibong epekto sa mga carbon emission, tulad ng pababain ang mga kasalukuyang emission o alisin ang mga greenhouse gas na nasa atmosphere na. Matapos ma-verify, makakatanggap ang mga proyektong ito ng asset na tinatawag na "mga carbon credit," na maibebenta ng mga ito sa mga indibidwal at organisasyong gustong suportahan ang mga pagsisikap para protektahan ang klima. + +Bukod sa VCM, may mga carbon market na itinatakda ng pamahalaan (‘mga compliance market’) na naglalayong magtakda ng carbon price sa pamamagitan ng mga batas o regulasyon sa isang partikular na hurisdiksyon (hal. bansa o rehiyon), na nagkokontrol sa supply ng mga permit na ipapamahagi. Hinihikayat ng mga compliance market ang mga polluter sa kanilang hurisdiksyon na bawasan ang mga emission, pero wala silang kakayahang alisin ang mga greenhouse gas na nasa atmosphere na. + +Kahit dine-develop ito sa mga nakaraang dekada, patuloy na nakakaranas ang VCM ng iba't ibang isyu: + +1. Labis na fragmented na liquidity +2. Mga hindi malinaw na mekanismo para sa transaksyon +3. Mahal na bayarin +4. Napakabagal na trading +5. Kakulangan sa scalability + +Ang paglipat ng VCM sa bagong blockchain-based **digital carbon market (DCM)** ay maaaring maging oportunidad upang ma-upgrade ang kasalukuyang teknolohiya para sa pag-validate, pag-transact at paggamit ng mga carbon credit. Nagbibigay-daan ang mga blockchain sa publicly verifiable data, access para sa iba't ibang user, at higit na liquidity. + +Gumagamit ang mga proyekto sa ReFi ng blockchain technology para solusyonan ang marami sa mga problema ng tradisyonal na market: + +- **Tinitipon ang liquidity sa iilang liquidity pool** na malayang mate-trade ng kahit sino. Ginagamit ng malalaking organisasyon, pati na rin ng mga indibidwal na user ang mga pool na ito nang hindi manual na naghahanap ng mga seller/buyer, bayarin sa paglahok, o paunang pagpaparehistro. +- **Nire-record ang lahat ng transaksyon sa mga pampublikong blockchain**. Ang daang tinatahak ng bawat carbon credit dahil sa aktibidad sa trading ay palaging masusubaybayan sa sandaling maging available ito sa digital carbon market (DCM). +- **Halos agaran ang bilis ng transaksyon**. Maaaring abutin nang ilang araw o linggo ang pagkuha ng maraming carbon credit sa pamamagitan ng mga legacy market, pero magagawa ito sa loob ng ilang segundo sa DCM. +- **Isinasagawa ang mga gawain sa trading nang walang intermediary**, na naniningil ng mahal na bayarin. Ayon sa data mula sa isang analytics firm, kumakatawan ang mga digital carbon credit sa [62% pagpapabuti sa gastos kumpara sa mga katumbas na tradisyonal na credit](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne). +- **Scalable ang DCM** at kaya nitong tugunan ang mga demand ng mga indibidwal at multinational corporation. + +### Mga pangunahing bahagi ng DCM {#key-components-dcm} + +Apat na pangunahing bahagi ang bumubuo sa kasalukuyang landscape ng DCM: + +1. Tinitiyak ng mga registry tulad ng [Verra](https://verra.org/project/vcs-program/registry-system/) at [Gold Standard](https://www.goldstandard.org/) na mapagkakatiwalaan ang mga proyektong gumagawa ng mga carbon credit. Nagpapatakbo rin ang mga ito ng mga database kung saan nagmumula ang mga digital carbon credit at maaaring i-transfer o maubos (hindi na gagamitin) ang mga ito. + +May bagong wave ng mga inobatibong proyekto na ibinabatay sa mga blockchain na sinusubukang baguhin ang mga kasalukuyang nasa sektor na ito. + +2. Ang mga carbon bridge, na kilala rin bilang mga tokenizer, ay nagbibigay ng teknolohiya upang ipakita o i-transfer sa DCM ang mga carbon credit mula sa mga tradisyonal na registry. Kabilang sa mga kilalang halimbawa ang [Toucan Protocol](https://toucan.earth/), [C3](https://c3.app/), at [Moss.Earth](https://moss.earth/). +3. Nag-aalok ang mga naka-integrate na serbisyo ng pag-iwas sa paglalabas ng carbon at/o credit sa pag-aalis sa mga end-user nang sa gayon ay makuha nila ang benepisyong pangkapaligiran ng isang credit at ibahagi sa mundo ang kanilang suporta sa mga pagsisikap para protektahan ang klima. + +May ilang serbisyo tulad ng [Klima Infinity](https://www.klimadao.finance/infinity) at [Senken](https://senken.io/) na nag-aalok ng iba't ibang uri ng mga proyektong binuo ng mga third party at inilabas sa ilalim ng mga itinakdang pamantayan tulad ng Verra; habang ang ibang serbisyo tulad ng [Nori](https://nori.com/) ay nag-aalok lang ng mga partikular na proyekto na ginawa sa ilalim ng sarili nilang pamantayan para sa carbon credit, na ibinibigay nila at pinaglalaanan nila ng sariling marketplace. + +4. Pinapangasiwaan ng mga kasalukuyang rail at infrastructure ang pagpapalawak ng epekto at kahusayan ng buong supply chain ng carbon market. Nagsu-supply ang [KlimaDAO](http://klimadao.finance/) ng liquidity bilang public good (nagbibigay-daan sa kahit sino na bumili o magbenta ng mga carbon credit sa transparent na presyo), nagbibigay ito ng mga reward kapalit ng mas mataas na throughput ng mga carbon market at pag-retire, at nagbibigay ito ng madaling gamiting interoperable tooling para ma-access ang data tungkol sa, pati na rin ang kumuha at mag-retire ng, iba't ibang tokenized na carbon credit. + +## Ang ReFi sa labas ng mga carbon market {#refi-beyond} + +Bagama't may matinding pagpapahalaga sa mga carbon market sa pangkalahatan at pag-transition ng VCM sa DCM partikular na sa loob ng space, hindi limitado sa carbon ang terminong “ReFi”. Maaaring gumawa at mag-tokenize ng iba pang environmental asset at hindi lang mga carbon credit. Ipinapahiwatig nitong maaari ding itakda ang presyo ng iba pang negatibong externality sa mga base layer ng mga susunod pang sistema ng ekonomiya. Dagdag pa rito, ang regenerative na aspeto ng economic model na ito ay maaaring gamitin sa iba't ibang aspeto, tulad ng pagsuporta sa pagpopondo sa mga public good sa pamamagitan ng mga quadratic funding platform gaya ng [Gitcoin](https://gitcoin.co/). Binibigyang-kakayahan ng mga organisasyon na ibinatay sa ideya ng pakikilahok na bukas sa lahat at pantay-pantay na pamamahagi ng mga resource ang lahat na maglaan ng pera sa mga proyekto sa open-source software, pati na rin sa mga proyektong pang-edukasyon, pangkalikasan, at pangkomunidad. + +Sa pamamagitan ng paglihis ng kapital sa mga extractive na kagawian at pagdirekta nito sa regenerative na flow, makakapagsimula nang mas mabilis at mas madali ang mga proyekto at kumpanya na nagbibigay ng mga benepisyong panlipunan, pangkapaligiran, o pangkomunidad—na posibleng hindi makakuha ng pondo sa tradisyonal na pinansya. Dahil sa pag-transition sa ganitong model ng pagpopondo, nagkakaroon din ng mga mas inklusibong sistema ng ekonomiya, kung saan ang mga tao mula sa bawat demograpiko ay puwedeng maging mga aktibong kalahok, sa halip na mga simpleng tagamasid lang. Ipinapakita ng ReFi ang Ethereum bilang mekanismo para sa pagsasaayos ng pagkilos sa mga banta sa pamumuhay na kinakaharap ng ating species at lahat ng buhay sa planeta natina ating planeta—bilang pangunahing haligi ng bagong uri ng ekonomiya, na nagbibigay daan sa mas matatag na kinabukasan sa mga susunod na siglo. + +## Karagdagang babasahin tungkol sa ReFi + +- [Isang high-level na pangkalahatang-ideya ng mga carbon currency at ang kanilang lugar sa ekonomiya](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) +- [The Ministry for the Future, na isang nobela na nagpapakita ng papel ng isang carbon-backed currency sa paglaban sa pagbabago ng klima](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) +- [Isang detalyadong ulat mula sa Taskforce for Scaling Voluntary Carbon Markets](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) +- [Ang CoinMarketCap Glossary entry nina Kevin Owocki at Evan Miyazono tungkol sa ReFi](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/fil/security/index.md b/public/content/translations/fil/security/index.md similarity index 100% rename from src/content/translations/fil/security/index.md rename to public/content/translations/fil/security/index.md diff --git a/public/content/translations/fil/smart-contracts/index.md b/public/content/translations/fil/smart-contracts/index.md new file mode 100644 index 00000000000..08cde513f60 --- /dev/null +++ b/public/content/translations/fil/smart-contracts/index.md @@ -0,0 +1,84 @@ +--- +title: Smarteng kontrata +description: Isang hindi teknikal na panimula sa mga smart contract +lang: fil +--- + +# Introduction to smart contracts {#introduction-to-smart-contracts} + +Ang mga smart contract ang mga pangunahing building block ng application layer ng Ethereum. Mga computer program ang mga ito na naka-store sa blockchain na sumusunod sa logic na "if this then that (kung ganito ang mangyayari, ito ang susunod na mangyayari)," at tiyak na mae-execute ang mga ito alinsunod sa mga panuntunan na tinukoy ng code nito, na hindi na mababago kapag nagawa na. + +Si Nick Szabo ang gumawa ng terminong "smart contract". Noong 1994, sumulat siya ng [panimula sa konsepto](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html), at noong 1996, sumulat siya ng [pagsusuri ng magagawa ng mga smart contract](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). + +Gusto ni Szabo ng digital marketplace kung saan binibigyang-daan ng mga awtomatiko at cryptographically-secure na proseso na maisagawa ang mga transaksyon at business fuction nang walang pinagkakatiwalaang intermediary. Isinasagawa ng mga smart contract sa Ethereum ang mithiing ito. + +## Tiwala sa mga conventional na kontrata {#trust-and-contracts} + +Ang isa sa pinakamalalaking problema sa tradisyonal na kontrata ang pangangailangan ng mga mapagkakatiwalaang indibidwal na tuparin ang mga resulta ng kontrata. + +Narito ang isang halimbawa: + +Sina Alice at Bob ay nagkakarera sakay ng bisikleta. Sabihin nating pumusta ng $10 si Alice kay Bob na siya ang mananalo sa karera. Tiwala si Bob na siya ang mananalo at pumayag siya sa pusta. Sa huli, naungusan ni Alice si Bob at siya ang nanalo. Pero ayaw ibigay ni Bob ang ipinusta, at inaakusahan niya si Alice na nandaya. + +Ipinapakita ng nakakatawang halimbawang ang problema sa anumang non-smart agreement. Kahit na matugunan ang mga kundisyon ng kasunduan (halimbawa, ikaw ang nanalo sa karera), kailangan mo pa rin magtiwala sa ibang tao na tuparin ang kasunduan (ibig sabihin, ibigay ang ipinusta). + +## A digital vending machine {#vending-machine} + +Maihahambing ang smart contract sa isang vending machine, na gumagana na halos katulad ng smart contract - kapag naglagay ng mga partikular na input, siguradong makukuha ang mga paunang natukoy na output. + +- Pipili ka ng produkto +- Ipapakita ng vending machine ang presyo +- Babayaran mo ang presyo +- Kukumpirmahin ng vending machine na tama ang binayad mong halaga +- Ibibigay sa iyo ng vending machine ang iyong item + +Ilalabas lang ng vending machine ang gusto mong produkto kapag natugunan ang lahat ng kahingian. Kung hindi ka pipili ng produkto o kulang ang ilalagay mong pera, hindi ilalabas ng vending machine ang iyong produkto. + +## Awtomatikong pag-execute {#automation} + +Ang pangunahing benepisyo ng smart contract ay tiyak nitong ine-execute ang malinaw na code kapag natugunan ang ilang partikular na kundisyon. Hindi mo kailangang maghintayng tao para i-interpret ang o makipag-usap tungkol sa resulta. Inaalis nito ang pangangailangan ng mga pinagkakatiwalaang intermediary. + +Halimbawa, maaari kang mag-write ng smart contract na nag-iingat ng pondo sa escrow para sa isang bata, na magbibigay-daan sa kanyang kunin ang pondo pagkatapos ng isang partikular na petsa. Kung susubukan niyang kunin ang pondo bago ang petsang iyon, hindi mae-execute ang smart contract. O maari kang mag-write ng kontrata na awtomatiko kang binibigyan ng digital na bersyon ng titulo ng kotse kapag binayaran mo ang dealer. + +## Mga predictable outcome {#predictability} + +Malabo ang mga tradisyonal na kontrata dahil umaasa ang mga ito sa mga tao upang unawain at ipatupad ang mga ito. Halimbawa, maaaring magkaiba ang interpretasyon ng dalawang hukom sa isang kontrata, na maaaring magresulta sa hindi magkakaayon na desisyon at hindi patas na resulta. Inaalis ng mga smart contract ang posibilidad na ito. Sa halip, ine-execute ang mga smart contract nang tumpak batay sa mga kundisyong nakasulat sa code ng kontrata. Dahil sa katumpakang ito, kapag pareho ang mga sitwasyon, iisang resulta ang ibibigay ng smart contract. + +## Pampublikong record {#public-record} + +Ang mga smart contract ay kapaki-pakinabang para sa mga audit at pagsubaybay. Dahil nasa pampublikong blockchain ang mga smart contract ng Ethereum, agad na masusubaybayan ng kahit sino ang mga pag-transfer ng asset at iba pang nauugnay na impormasyon. Halimbawa, puwede mong alamin kung may nagpadala ng pera sa iyong address. + +## Pagprotekta sa privacy {#privacy-protection} + +Pinoprotektahan din ng mga smart contract ang iyong privacy. Dahil isang pseudonymous network ang Ethereum (pampublikong nakaugnay ang iyong mga transaksyon sa isang natatanging cryptographic address, at hindi sa iyong identity), kaya mapoprotektahan mo ang iyong privacy mula sa mga observer. + +## Mga nakikitang tuntunin {#visible-terms} + +Sa wakas, tulad ng mga tradisyonal na kontrata, matitingnan mo ang laman ng smart contract bago mo ito lagdaan (o kaya ay mag-interact dito). Sinisigurado ng transparency ng smart contract na masusuri ito ng kahit sino. + +## Mga use case ng smart contract {#use-cases} + +Sa pangkalahatan, magagawa ng mga smart contract ang anumang bagay na magagawa ng mga computer program. + +Magagawa ng mga itong mag-compute, gumawa ng currency, mag-store ng data, mag-mint ng NFTs, magpadala ng komunikasyon at maging gumawa ng graphics. Narito ang ilan sa mga kilalang halimbawa sa totoong buhay: + +- [Stablecoins](/stablecoins/) +- [Paggawa at pamamahagi ng mga natatangign digital asset](/nft/) +- [Isang awtomatiko at bukas na currency exchange](/get-eth/#dex) +- [Decentralized gaming](/dapps/?category=gaming) +- [Isang insurance policy na awtomatikong nagbabayad](https://etherisc.com/) +- [Isang pamantayan na nagbibigay-daan sa mga tao na gumawa ng mga naka-customize at interoperable na currency](/developers/docs/standards/tokens/) + +## More of a visual learner? {#visual-learner} + +Panoorin ang paliwanag sa Finematics tungkol sa mga smart contract: + + + +## Karagdagang pagbabasa {#further-reading} + +- [Paano Mababago ng Mga Smart Contract ang Mundo](https://www.youtube.com/watch?v=pA6CGuXEKtQ) +- [Mga Smart Contract: Ang Blockchain Technology na Papalit sa Mga Abogado](https://blockgeeks.com/guides/smart-contracts/) +- [Mga smart contract para sa mga developer](/developers/docs/smart-contracts/) +- [Matuto kung paano mag-write ng mga smart contract](/developers/learning-tools/) +- [Pagiging Bihasa sa Ethereum - Ano ang Smart Contract?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/fil/social-networks/index.md b/public/content/translations/fil/social-networks/index.md new file mode 100644 index 00000000000..17d061b67a4 --- /dev/null +++ b/public/content/translations/fil/social-networks/index.md @@ -0,0 +1,121 @@ +--- +title: Mga decentralized na social network +description: Pangkalahatang-ideya ng mga decentralized social network sa Ethereum +lang: fil +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: /ethereum-learn.png +summaryPoint1: Mga blockchain-based na platform para sa social interaction, at paggawa at pamamahagi ng content. +summaryPoint2: Pinoprotektahan ng mga decentralized social media network ang privacy ng user at pinapaigting ng mga ito ang seguridad ng data. +summaryPoint3: Gumagawa ng mga bagong paraan ang mga token at NFT upang pagkakitaan ang content. +--- + +Malaki ang papel na ginagampanan ng mga social network sa ating pang-araw-araw na komunikasyon at pakikipag-ugnayan. Ngunit, ang centralized na kontrol ng mga platform na ito ay nagdulot ng maraming problema: ang mga data breach, mga pagbagsak ng server, pagtanggal sa platform, censorship, at mga pag-aabuso sa privacy ang ilan sa mga trade-off na kadalasang resulta sa social media. Upang labanan ang mga isyung ito, gumagawa ang mga developer ng mga social network sa Ethereum. Maaayos ng mga decentralized social network ang marami as mga problema ng tradisyonal na social networking platform at mapapaganda ng mga ito ang karanasan ng mga user sa pangkalahatan. + +## Ano ang mga decentralized social network? {#what-are-decentralized-social-networks} + +Ang mga decentralized social network ay mga blockchain-based platform na nagpapahintulot sa mga user na makipagpalitan ng impormasyon, pati na rin mag-publish at mamahagi ng content sa mga audience. Dahil tumatakbo sa blockchain ang mga application na ito, may kakayahan ang mga itong maging decentralized at maiiwasan ng mga ito ang censorship at hindi makatuwirang pagkontrol. + +Maraming decentralized social network ang nagsisilbing mga alternatibo sa mga kilala nang social media service tulad ng Facebook, LinkedIn, Twitter, at Medium. Ngunit may ilang feature ang mga blockchain-powered social network na nagpapalamang sa mga ito sa mga tradisyonal na social platform. + +### Paano gumagana ang mga decentralized social network? {#decentralized-social-networks-overview} + +Ang mga decentralized social network ay uri ng [mga decentralized application (dapps)](/dapps/) — mga application na pinapagana ng [mga smart contract](/developers/docs/smart-contracts/) na dineploy sa blockchain. Ang contract code ay nagsisilbing backend para sa mga app na ito at nagtatakda ng business logic ng mga ito. + +Umaasa ang mga tradisyonal na social media platform sa mga database upang mag-store ng impormasyon ng user, program code, at iba pang uri ng data. Ngunit gumagawa ito ng single point-of-failure at nagdudulot ng matinding panganib. Halimbawa, [ilang oras na naging offline](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) ang mga server ng Facebook noong nakaraang taon, na naging dahilan upang hindi mapuntahan ng mga user ang platform. + +Nasa peer-to-peer network ang mga decentralized social network na binubuo ng libo-libong node sa iba't ibang bahagi ng mundo. Kahit magkaproblema ang ilang node, hindi maaantala ang network, kaya hindi papalya at hihinto ang mga application. + +Sa paggamit ng mga decentralized storage system tulad ng [InterPlanetary File System (IPFS)](https://ipfs.io/), mapoprotektahan ng mga social network na ginawa sa Ethereum ang impormasyon ng user mula sa pang-aabuso at mapaminsalang paggamit. Hindi ibebenta ng kahit sino ang iyong personal na impormasyon sa mga advertiser, at hindi rin mananakaw ng mga hacker ang mga kumpidensyal mong detalye. + +Maraming blockchain-based social platform na may mga native token na nagpapatakbo ng monetization kapag walang kita mula sa advertising. Maaaring bilhin ng mga user ang mga token na ito para ma-access ang ilang partikular na feature, magsagawa ng mga in-app na pagbili, o bigyan ng tip ang mga paborito nilang content creator. + +## Mga benepisyo ng mga decentralized social network {#benefits} + +1. Hindi nase-censor at bukas sa lahat ang mga decentralized social network. Ibig sabihin nito, hindi puwedeng i-ban, tanggalin sa platform, o limitahan ang mga user nang walang maayos na dahilan. + +2. Ibinatay ang mga decentralized social network sa mga open-source ideal at ginagawa nitong available para masiyasat ng publiko ang source code. Sa pamamagitan ng pag-aalis ng pagpapatupad ng mga malabong algrithm na pangkaraniwan sa tradisyonal na social media, maiaayon ng mga blockchain-based social network ang mgaa interes ng mga user at mga creator sa platform. + +3. Inaalis ng mga decentralized social network ang "middle-man". Ang mga content creator ang direktang nagmamay-ari sa kanilang content, at direkta silang nakikipag-ugnayan sa mga follower, fan, buyer, at iba pang partido, gamit lang ang smart contract. + +4. Bilang mga decentralized application (dapps) na tumatakbo sa Ethereum network, na itinataguyod ng pandaigdigan at peer-to-peer na network ng mga node, maliit ang posibilidad na makaranas ng downtime at paghinto ng server ang mga decentralized social network. + +5. Nagbibigay ang mga decentralized social platform ng mas magandang framework ng monetization para sa mga content creator sa pamamagitan ng mga non-fungible token (NFTs), mga in-app na pagbabayad ng crypto, at iba pa. + +6. Sa mga decentralized social network, mataas na antas ng privacy at anonymity ang nakukuha ng mga user. Halimbawa, maaaring mag-sign in ang isang indibidwal sa isang Ethereum-based social network gamit ang ENS profile o wallet—nang hindi kinakailangang magbahagi ng personally identifiable information (PII), tulad ng pangalan, email address, at iba pa. + +7. Umaasa ang mga decentralized social network sa decentralized storage, at hindi sa mga centralized database, na maituturing na mas mainam para sa pag-iingat sa data ng user. + +## Mga decentralized social network sa Ethereum {#ethereum-social-networks} + +Ang Ethereum network na ang pinipiling tool ng mga developer na gumagawa ng decentralized social media dahil sa kasikatan ng mga token nito (ERC-20/ERC-721) at sa malaking bilang ng mga user nito. Narito ang ilang halimbawa ng mga Ethereum-based social network: + +### Peepeth {#peepeth} + +Ang [Peepeth](https://peepeth.com/) ay isang microblogging platform na katulad ng Twitter. Tumatakbo ito sa Ethereum blockchain at gumagamit ito ng IPFS para mag-store ng data ng user. + +Puwedeng magpadala ang mga user ng maiikling mensahe na tinatawag na "Peeps," na hindi made-delete o mababago. Maaari kang kumuha ng mga tip o magbigay ng tip sa kahit sino sa platform sa ether (ETH) nang hindi umaalis sa app. + +### Mirror {#mirror} + +Ang [Mirror](https://mirror.xyz/) ay isang web3-enabled writing platform na may layuning maging decentralized at pagmamay-ari ng mga user. Ang mga user ay maaaring magbasa at magsulat nang libre sa Mirror sa pamamagitan lang ng pagkonekta ng kanilang mga wallet. Maaari ding mangolekta ng mga sulatin ang mga user at mag-subscribe sa mga paborito nilang manunulat. + +Ang mga post na nailathala sa Mirror ay permanenteng iso-store sa Arweave, isang decentralized storage platform, at maaaring i-mint bilang mga collectable na [non-fungible token (NFTs)](/nft/) na tinatawag na Writing NFTs. Ganap na libre para sa mga manunulat ang paggawa ng Writing NFTs, at nangyayari ang pagkolekta sa isang Ethereum L2 — kung kaya, mura, mabilis, at environmentally friendly ang mga transaksyon. + +### MINDS {#minds} + +Ang [MINDS](https://www.minds.com/) ay isa sa mga pinakaginagamit na decentralized social network. Gumagana ito tulad ng Facebook at mayroon na itong milyong-milyong user. + +Ginagamit ng mga user ang native ERC-20 token na $MIND ng platform para bayaran ang mga item. Maaari ding kumita ang mga user ng mga $MIND token sa pamamagitan ng paglalathala ng sikat na content, pag-contribute sa ecosystem, at pag-refer ng iba sa platform. + +## Mga Web2 social network sa Ethereum {#web2-social-networks-and-ethereum} + +Hindi lang ang mga native social platform sa [Web3](/web3/) ang sumusubok na i-incorporate ang blockchain technology sa social media. Pinaplano rin ng maraming centralized platform na i-integrate ang Ethereum sa kani-kanilang infrastructure: + +### Reddit {#reddit} + +Mayroon ang Reddit ng [touted Community Points](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users), na [mga ERC-20 token](/developers/docs/standards/tokens/erc-20/) makukuha ng mga user sa pamamagitan ng pag-post ng de-kalidad na content at pag-contribute sa mga online na komunidad (mga subreddit). Mare-redeem mo ang mga token na ito sa isang subreddit upang [makakuha ng mga eksklusibong pribilehiyo at benepisyo](https://www.reddit.com/community-points/). Para sa proyektong ito, nakikipagtulungan ang Reddit sa Arbitrum, na isang [layer 2](/layer-2/) rollup na idinisenyo para sukatin ang mga transaksyon sa Ethereum. + +Live na ang programa, at nagpapatakbo ang subreddit na r/CryptoCurrency [ng bersyon nito ng Community Points na tinatawag na "Moons"](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Ayon sa opisyal na paglalarawan, "ginagantimpalaan ng Moons ang mga poster, commenter, at moderator para sa kanilang mga kontribusyon sa subreddit." Dahil ang mga token na ito ay nasa blockchain (natatanggap ng mga user ang mga ito sa kanilang mga wallet), hiwalay ang mga ito sa Reddit at hindi maaaring kunin. + +Matapos ang beta phase sa Rinkeby testnet, nasa [Arbitrum Nova](https://nova.arbitrum.io/) na ngayon ang Community Points sa Reddit, na isang blockchain na pinagsasama ang mga property ng [sidechain](/developers/docs/scaling/sidechains/) at [optimistic rollup](/developers/docs/scaling/optimistic-rollups/). Maliban sa paggamit ng Community Points para makuha ang mga espesyal na feature, maaari ding i-trade ng mga user sa fiat sa mga exchange. Gayudin, ang dami ng Community Points na pagmamay-ari ng isang user ang nagtatakda ng kanyang impluwensya sa proseso ng pagpapasya sa loob ng komunidad. + +### Twitter {#twitter} + +Noong Enero 2021, inilunsad ng Twitter Blue [ ang suporta para sa mga non-fungible token (NFTs)](https://mashable.com/article/twitter-blue-nft-profile-picture), na nagpapahintulot sa mga users na ikonekta ang kanilang mga wallet at ipakita ang NFTs bilang profile picture. Habang isinusulat ito, [nag-anunsyo rin ng mga plano](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) ang social media company na gumawa ng decentralized social network sa hinaharap. + +### Instagram {#instagram} + +Noong Mayo 2022, [inanunsyo ng Instagram ang suporta para sa NFTs sa Ethereum at Polygon](https://about.instagram.com/blog/announcements/instagram-digital-collectibles). Direktang mapo-post ng mga user ang NFTs sa Instagram sa pamamagitan ng pagkonekta ng kanilang Ethereum wallet. + +## Gumamit ng mga decentralized social network {#use-decentralized-social-networks} + +- **[Status.im](https://status.im/)** - _Ang Status ay isang secure na messaging app na gumagamit ng open-source, peer-to-peer protocol, at end-to-end encryption upang protektahan ang iyong mga mensahe mula sa mga third party._ +- **[Mirror.xyz](https://mirror.xyz/)** - _Ang Mirror ay isang decentralized publishing platform na pagmamay-ari ng mga user na ginawa sa Ethereum magawa ng mga user na mangalap ng mga ideya, pagkakitaan ang content, at bumuo ng mga high-value na komunidad._ +- **[Lens Protocol](https://lens.xyz/)** - _Ang Lens Protocol ay isang composable at decentralized social graph na tumutulong sa mga creator na maipakitang pagmamay-ari nila ang kanilang content saan man sila pumunta sa digital garden ng decentralized internet._ +- **[Farcaster](https://farcaster.xyz/)** - _Ang Farcaster ay isang sapat na decentralized na social network. Open protocol ito na puwedeng suportahan ang maraming client, katulad ng email._ + +## Karagdagang pagbabasa {#further-reading} + +### Mga Artikulo {#articles} + +- [Pag-decentralize sa social media: isang gabay sa web3 social stack](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _Coinbase Ventures_ +- [Ang Mga Social Network ang Susunod na Malaking Oportunidad para sa Decentralization](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Goertzel_ +- [Ang Web3 ang susi mga social network na decentralized at pinapatakbo ng komunidad](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ +- [Pangkalahatang-ideya ng Landscape ng Blockchain Social Media](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ +- "[Paano Malulutas ng Blockchain ang Problema sa Privacy sa Social Media](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Prableen Bajpai_." +- [Papunta na sa Blockchain ang Mga Social Media Network](https://businesstechguides.co/what-are-decentralized-social-networks) — _Emmanuel Awosika_ +- [Sapat na Decentralization para sa Mga Social Network](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Varun Srinivasan_ + +### Videos {#videos} + +- [Paliwanag Tungkol sa Decentralized Social Media](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ +- [Gustong I-decentralize ng DeSo Blockchain ang Social Media](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ +- [Ang Kinabukasan ng Decentralized Social Media kasama sina Balaji Srinivasan, Vitalik Buterin, Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ + +### Mga Komunidad {#communities} + +- [Discord Server ng Status](https://discord.com/invite/3Exux7Y) +- [Discord Server ng Mirror](https://discord.com/invite/txuCHcE8wV) +- [Subreddit na r/CryptoCurrency](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/fil/staking/dvt/index.md b/public/content/translations/fil/staking/dvt/index.md similarity index 100% rename from src/content/translations/fil/staking/dvt/index.md rename to public/content/translations/fil/staking/dvt/index.md diff --git a/public/content/translations/fil/staking/pools/index.md b/public/content/translations/fil/staking/pools/index.md new file mode 100644 index 00000000000..79246a7ca00 --- /dev/null +++ b/public/content/translations/fil/staking/pools/index.md @@ -0,0 +1,85 @@ +--- +title: Pooled staking +description: Pangkalahatang-ideya tungkol sa kung paano magsimula sa pooled staking ng ETH +lang: fil +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-pool.png +alt: Lumalangoy sa pool ang rhino na si Leslie. +sidebarDepth: 2 +summaryPoints: + - Mag-stake at makakuha ng mga reward sa anumang halaga ng ETH sa pamamagitan ng pakikipagtulungan sa iba + - Ipaubaya ang validator sa third party para sa mas madali at simpleng proseso + - Ilagay ang mga staking token sa sarili mong wallet +--- + +## Ano ang mga staking pool? {#what-are-staking-pools} + +Isang collaborative approach ang mga staking pool para payagan ang maraming may mas maliliit na halaga ng ETH na makuha ang 32 ETH na kailangan para ma-activate ang isang set ng mga key ng validator. Hindi native na sinusuportahan sa protocol ang pooling functionality, kaya hiwalay na gumawa ng mga solution para tugunan ang pangangailangang ito. + +May ilang pool na gumagamit ng mga smart contract, kung saan maaaring ideposito ang mga pondo sa isang contract, na namamahala at sumusubaybay sa stake mo nang hindi umaasa sa third party, at nagbibigay sa iyo ng token na kumakatawan sa halagang ito. Maaaring hindi gumagamit ang ibang pool ng mga smart contract at off-chain na lang isinasaayos. + +## Bakit dapat mag-stake sa isang pool? {#why-stake-with-a-pool} + +Bukod sa mga benepisyo na aming inilahad sa aming [panimula sa staking](/staking/), ang staking sa isang pool ay may iba't ibang natatanging benepisyo. + + + + + + + + + +## Ano ang dapat isaalang-alang {#what-to-consider} + +Ang pooled o delegated staking ay hindi native na sinusuportahan ng Ethereum protocol, ngunit dahil sa demand ng mga user na mag-stake ng wala pang 32 ETH, mas maraming solution ang binuo upang punan ang demand na ito. + +Ang bawat tool at ang mga tool o smart contract na ginagamit ng mga ito ay ginawa ng iba't ibang team, at may mga benepisyo at panganib ang bawat isa sa mga ito. Binibigyang-daan ng mga pool ang mga user na i-swap ang ETH nila sa token na kumakatawan sa staked ETH. Ang token ay kapaki-pakinabang dahil ito'y binibigyang-daan nito ang mga user na i-swap ang kahit anong halaga ng ETH sa yield-bearing token na may katumbas na halaga na kumikita mula sa mga reward sa staking na inilalapat sa kasalukuyang staked ETH (at vice versa) sa mga decentralized exchange kahit na ang mismong ETH ay mananatiling staked sa consensus layer. Nangangahulugan ito na ang pag-swap sa at mula sa yield-bearing staked-ETH product at "raw ETH" ay mabilis, madali, at hindi lang available sa mga multiple ng 32 ETH. + +Gayunpaman, ang mga staked-ETH token na ito ay karaniwang nagdudulot ng mga kagawiang mala-cartel kung saan nakokontrol ng ilang centralized na organisasyon ang malaking halaga ng staked ETH sa halip na sa maraming independiyenteng indibidwal. Dahil dito, nagkakaroon ng sitwasyong nagbibigay-daan sa censorship o pagkuha ng halaga. Sa staking, palaging ang pinakamainam na sitwasyon ay ang mga indibidwal ang nagpapatakbo ng mga validator sa sarili nilang hardware hangga't maaari. + +[Iba pang detalye tungkol sa mga panganib ng pag-stake ng mga token](https://notes.ethereum.org/@djrtwo/risks-of-lsd). + +Gumagamit ng mga attribute indicator sa ibaba para ipakita ang mga kapansin-pansing kalakasan o kahinaan ng isang nakalistang staking pool. Gamitin ang seksyong ito bilang sanggunian sa kung paano namin tinutukoy ang mga attribute na ito habang pumipili ka ng pool na sasalihan. + + + +## Tingnan ang mga staking pool {#explore-staking-pools} + +May iba't ibang opsyon na available upang tulungan ka sa iyong setup. Gamitin ang mga indicator sa itaas para magabayan ka sa mga tool sa ibaba. + + + + + +Tandaan ang kahalagahan ng pagpili ng serbisyo na seryoso sa [client diversity](/developers/docs/nodes-and-clients/client-diversity/), dahil pinapaigting nito ang seguridad ng network, at nililimitahan nito ang iyong panganib. Matutukoy ang mga serbisyo na may patunay ng paglilimita ng pangunahing paggamit ng client sa pamamagitan ng "execution client diversity" at "consensus client diversity." + +May mungkahi para sa staking tool na hindi namin nabanggit? Tingnan ang aming [patakaran sa product listing](/contributing/adding-staking-products/) para malaman kung ito ay angkop, at isumite ito para masuri. + +## Mga karaniwang itanong {#faq} + + +Karaniwang ibinibigay ang mga ERC-20 staking token sa mga staker na kumakatawan sa halaga ng kanilang staked ETH at mga reward. Tandaan na medyo magkakaiba ang paraan ng iba't ibang pool ng pamamahagi ng mga reward para sa staking sa kanilang mga user, pero pangkaraniwan ito. + + + +Ngayon na! Ang Shanghai/Capella network upgrade ay nangyari noong Abril 2023, at inilunsad nito ang mga pag-withdraw sa staking. Ang mga validator accounts na sumusuporta sa mga staking pool ngayon ay may kakayahang umalis at i-withdraw ang ETH at ilagay sa kanilang itinakdang withdrawal address. Dahil dito, magkakaroon ka ng kakayahang i-redeem ang bahagi mo sa stake para sa kasalukuyang ETH. Magtanong sa iyong provider upang malaman kung paano nila sinusuportahan ang functionality na ito. + +Binibigyang-daan naman ng mga pool na gumagamit ng ERC-20 staking token ang mga user na i-trade ang token na ito sa open market. Kung gayon, maibebenta mo ang iyong staking position at makakapag-"withdraw" ka nang hindi inaalis ang EH sa staking contract. + +Iba pang detalye tungkol sa mga pag-withdraw sa staking + + + +Maraming pagkakatulad ang mga opsyong ito sa pooled staking at mga centralized exchange, gaya ng kakayahang mag-stake ng maliliit na halaga ng ETH at pagsama-samahin ang mga ito upang mapagana ang mga validator. + +Hindi katulad ng mga centralized exchange, gumagamit ang maraming iba pang opsyon sa pooled staking ng mga smart contract a/o mga staking token, na karaniwang mga ERC-20 token na puwedeng ilagay sa sarili mong wallet, at mabili o maibenta gaya ng ibang token. Nagbibigay ito ng layer ng sovereignty at seguridad sa pamamagitan ng pagbibigay sa iyo ng kontrol sa iyong mga token, pero hindi ka pa rin nito bibigyan ng direktang kontrol sa validator client na nagpapatunay para sa iyo sa background. + +May ilang opsyon sa pooling na mas decentralized kumpara sa iba pagdating sa mga node na sumusuporta sa mga ito. Upang itaguyod ang kalagayan at decentralization ng network, palaging hinihikayat ang mga staker na pumili ng pooling service na nag-e-enable ng isang set ng mga node operator na hindi kailangan ng pahintulot at decentralized. + + +## Karagdagang pagbabasa {#further-reading} + +- [Pag-stake gamit ang Rocket Pool - Pangkalahatang-ideya ng Staking](https://docs.rocketpool.net/guides/staking/overview.html) - _Mga dokumento ng RocketPool_ +- [Pag-stake ng Ethereum gamit ang Lido](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Mga pantulong na dokumento ng Lido_ diff --git a/public/content/translations/fil/staking/saas/index.md b/public/content/translations/fil/staking/saas/index.md new file mode 100644 index 00000000000..75154cd43e4 --- /dev/null +++ b/public/content/translations/fil/staking/saas/index.md @@ -0,0 +1,94 @@ +--- +title: Staking bilang serbisyo +description: Pangkalahatang-ideya tungkol sa kung paano magsimula sa pooled staking ng ETH +lang: fil +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-saas.png +alt: Lumulutang sa ulap ang rhino na si Leslie. +sidebarDepth: 2 +summaryPoints: + - Ang mga third-party node operator ang nangangasiwa sa operasyon ng iyong validator client + - Magandang opsyon para sa sinumang may 32 ETH na hindi kumportable sa pagiging teknikal at kumplikado ng pagpapatakbo ng node + - Iwasang umasa sa iba, at panatilihing hawak mo ang iyong mga withdrawal key +--- + +## Ano ang staking bilang serbisyo? {#what-is-staking-as-a-service} + +Ang Staking as a Service (“SaaS") ay kumakatawan sa kategorya ng mga serbisyo sa staking kung saan mo idineposito ang sarili mong 32 ETH para sa isang validator, ngunit itinatalaga mo ang operasyon ng node sa isang third-party operator. Kadalasan, sa prosesong ito, ginagabayan ka sa buong inisyal na pag-set up, na kinabibilangan ng paggawa at pag-deposit ng key, at pagkatapos ay ia-upload ng mga signing key mo sa operator. Sa tulong nito, papatakbuhin ng serbisyo ang iyong validator para sa iyo, na kadalasang may bayad kada buwan. + +## Bakit dapat mag-stake sa gamit ang isang serbisyo? {#why-stake-with-a-service} + +Hindi native na sinusuportahan ng Ethereum protocol ang pagtatalaga ng stake, kaya ginawa ang mga serbisyong ito para punan ang demand na ito. Kung mayroon kang 32 ETH na ise-stake, pero hindi ka kumportableng mangasiwa ng hardware, binibigyang-daan ka ng mga serbisyong SaaS na italaga ang mahirap na trabaho habang nakakakuha ka ng mga native na block reward. + + + + + + + + + +## Ano ang dapat isaalang-alang {#what-to-consider} + +Dumarami ang mga SaaS provider na tutulong sa iyong i-stake ang ETH mo, pero may kanya-kanyang benepisyo at panganib ang mga ito. Ang lahat ng opsyon sa SaaS ay nangangailangan ng mga karagdagang trust assumption kumpara sa home-staking. Ang mga opsyon sa Saas ay maaaring naglalagay ng karagdagang code sa mga Ethereum clients na hindi bukas o mao-audit. Mayroon ding hindi magandang epekto ang SaaS sa decentralization ng network. Depende sa setup, maaaring hindi mo kontrolado ang iyong validator - maaaring gamitin ng operator ang iyong ETH sa maling paraan. + +Ang mga attribute indicator ay ginagamit sa ibaba para ipakita ang mga kapansin-pansing kalakasan o kahinaas ng isang nakalistang SaaS provider. Gamitin ang seksyong ito bilang sanggunian sa pagtukoy ng mga katangian na ito habang pumipili ka ng serbisyong tutulong sa iyo sa iyong pag-stake. + + + +## Tingnan ang mga staking service provider {#saas-providers} + +Nasa ibaba ang ilang available na SaaS provider. Gamitin ang mga indicator sa itaas upang tulungan kang gamitin ang mga serbisyong ito + + + +### Mga SaaS provider + + + +Tandaan ang kahalagahan ng pagsuporta sa [client diversity](/developers/docs/nodes-and-clients/client-diversity/) dahil pinapaigting nito ang seguridad ng network, at nililimitahan nito ang iyong panganib. Matutukoy ang mga serbisyo na may patunay ng paglilimita ng pangunahing paggamit ng client sa pamamagitan ng "execution client diversity" at "consensus client diversity." + +### Mga Generator ng Key + + + +Mayroong mungkahi para sa staking-as-a-service provider na hindi namin napansin? Tingnan ang aming [patakaran sa product listing](/contributing/adding-staking-products/) para malaman kung ito ay angkop, at isumite ito para masuri. + +## Mga karaniwang itanong {#faq} + + +Mag-iiba ang mga usapan depende sa provider, pero karaniwan kang gagabayan sa pag-set up ng anumang signing key na kailangan mo (isa kada 32 ETH), at ia-upload ang mga ito sa iyong provider para payagan ang mga itong mag-validate para sa iyo. Hindi nagbibigay ang mga signing key ng anumang kakayahang mag-withdraw, mag-transfer, o gastusin ang iyong pondo. Gayunpaman, nagbibigay ang mga ito ng kakayahang bumoto para sa consensus, na kung hindi maayos na gagawin ay maaaring magdulot ng mga parusa offline o slashing. + + + +Oo. Ang bawat account ay binubuo ng mga BLS signing key at mga BLS withdrawal key. Upang magawa ng isang validator na patunayan ang kalagayan ng chain, lumahok sa mga sync committee at magmungkahi ng mga block, dapat maa-access kaagad ng validator client ang mga signing key. Dapat nakakonekta ang mga ito sa internet, at nang sa gayon ay maituturing na mga "hot" key. Isa itong kahingian para makapagpatunay ang iyong validator, kung kaya, pinaghihiwalay ang mga key na ginagamit para mag-transfer o mag-withdraw ng pondo para sa mga dahilang panseguridad. + +Ang mga BLS withdrawal key ay ginagamit upang mag-sign ng one-time na mensahe na nagtatakda kung saang execution layer account mapupunta ang mga staking reward at inilabas na pondo. Kapag na-broadcast na ang mensaheng ito, hindi na kailangan ang mga BLS withdrawal key. Sa halip, permanenteng itatalaga ang kontrol sa na-withdraw na pondo sa address na ibinigay mo. Binibigyang-daan ka nitong magtakda ng withdrawal address na naka-secure sa pamamagitan ng iyong sariling cold storage, na nagpapaliit sa posibilidad na manganib ang pondo ng iyong validator, kahit na may ibang nagkokontrol ng mga signing key ng iyong validator. + +Kailangang i-update ang mga kredensyal sa pag-withdraw para makapag-withdraw\*. Sa prosesong ito, gagawin ang mga withdrawal key gamit ang iyong mnemonic seed phrase. + +Tiyaking maingat mong iba-back up ang seed phrase na ito, kung hindi ay hindi mo magagawa ang iyong mga withdrawal key kapag kailangan na itong gawin. + +\*Hindi ito kailangang itakda ng mga staker na nagbigay ng withdrawal address na may inisyal na deposito. Magtanong sa iyong SaaS provider para sa suporta tungkol sa kung paano ihanda ang iyong validator. + + + +Inilunsad ang pag-withdraw sa staking sa Shanghai/Capella upgrade noong Abril 2023. Kailangang magbigay ng mga staker ng withdrawal address (kung hindi ito ibinigay sa inisyal na deposito), at awtomatikong sisimulang ipamahagi ang mga reward payment kada ilang araw. + +Puwede ring ganap na umalis ang mga validator bilang validator, na siyang mag-a-unlock ng natitirang nilang ETH balance para ma-withdraw. Matatanggap ng mga account na nagbigay ng execution withdrawal address at nakatapos ng proseso ng pag-alis ang kanilang buong balanse sa withdrawal address na ibinigay sa susunod na validator sweep. + +Iba pang detalye tungkol sa mga pag-withdraw sa staking + + + +Sa pamamagitan ng paggamit ng SaaS provider, ipinagkakatiwala mo ang operasyon ng node mo sa iba. May kaakibat itong panganib ng hindi magandang performance ng node, na hindi mo makokontrol. Kung ma-slash ang validator mo, papatawan ng parusa ang validator balance mo at puwersahang aalisin sa validator pool. + +Kapag natapos na ang proseso ng slashing/pag-alis, ita-transfer ang pondong ito sa withdrawal address na nakatalaga sa validator. Para ma-enable ito, kailangang magbigay ng withdrawal address. Maaaring naibigay na ito sa inisyal na deposito. Kung hindi, kakailanganing gamitin ang mga withdrawal key ng validator para mag-sign ng mensaheng nagdedeklara ng withdrawal address. Kung walang ibinigay na withdrawal address, hindi makukuha ang pondo hangga't hindi ito naibibigay. + +Makipag-ugnayan sa indibidwal na SaaS provider para sa iba pang detalye tungkol sa anumang guarantee o opsyon sa insurance, at para sa mga tagubilin sa kung paano magbigay ng withdrawal address. Kung gusto mong ikaw lang ang nagkokontrol ng iyong validator setup, magbasa pa tungkol sa kung paano i-solo stake ang iyong ETH. + + +## Karagdagang pagbabasa {#further-reading} + +- [Pagsusuri sa Mga Serbisyo sa Staking](https://www.attestant.io/posts/evaluating-staking-services/) - _Jim McDonald 2020_ diff --git a/public/content/translations/fil/staking/solo/index.md b/public/content/translations/fil/staking/solo/index.md new file mode 100644 index 00000000000..5492af557e0 --- /dev/null +++ b/public/content/translations/fil/staking/solo/index.md @@ -0,0 +1,203 @@ +--- +title: I-solo stake ang iyong ETH +description: Pangkalahatang-ideya tungkol sa kung paano simulang i-solo stake ang iyong ETH +lang: fil +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-solo.png +alt: Ang rhino na si Leslie na nasa sarili niyang computer chip. +sidebarDepth: 2 +summaryPoints: + - Direktang makatanggap ng maximum rewards mula sa protocol para sa pagpapatakbo nang maayos sa iyong validator at pagpapanatili ritong online + - Patakbuhin ang home hardware at personal na magdagdag sa seguridad at decentralization ng Ethereum network + - Iwasang umasa sa iba, at huwag ibigay sa iba ang kontrol ng mga key sa pondo mo +--- + +## Ano ang solo staking? {#what-is-solo-staking} + +Ang solo staking ay tumutukoy sa [pagpapatakbo ng Ethereum node](/run-a-node/) na nakakonekta sa internet at pagdedeposito ng 32 ETH para mag-activate ng [validator](#faq), na nagbibigay sa iyo ng kakayahang direktang lumahok sa network consensus. + +**Pinapaigting ng solo staking ang decentralization ng Ethereum network**, kung kaya, mas naiiwasan ng Ethereum ang censorship at nalalabanan nito ang mga atake. Maaaring hindi makatulong sa network ang ibang paraan ng staking sa ganitong paraan. Ang solo staking ang pinakamainam na opsyon para sa pag-secure ng Ethereum. + +Ang isang Ethereum node ay binubuo ng execution layer (EL) client at consensus layer (CL) client. Ang mga client na ito ay mga software na nagtutulungan, kasama ang valid na set ng mga signing key, upang mag-verify ng mga transaksyon at mga block, patunayan ang tamang head ng chain, mag-aggregate ng mga attestation, at magmungkahi ng mga block. + +Ang mga solo staker ay responsable sa pagpapatakbo ng hardware na kinakailangan upang patakbuhin ang mga client na ito. Lubos na inirerekomendang gumamit ng nakalaang machine para dito na pinapatakbo mo sa tahanan–makakabuti ito para sa kalagayan ng network. + +Tinatanggap ng solo staker ang mga reward nang direkta mula sa protocol para sa maayos na pagpapatakbo sa kanyang validator at pagpapanatili ritong online. + +## Bakit dapat mag-solo stake? {#why-stake-solo} + +Sa solo staking, mas malaki ang responsibilidad mo pero makokontrol mo nang husto ang pondo at staking setup mo. + + + + + + + +## Mga dapat isaalang-alang bago mag-solo staking {#considerations-before-staking-solo} + +Kahit na gusto nating maging accessible at walang panganib ang solo staking para sa lahat, hindi ito makatotohanan. May ilang praktikal at seryosong bagay na dapat isaalang-alang bago piliing i-solo stake ang iyong ETH. + + + +Kapag pinapatakbo mo ang sarili mong node, dapat kang maglaan ng oras para alamin kung paano gamitin ang napili mong software. Kasama dito ang pagbabasa ng mga kaugnay na dokumentasyon at pagiging updated sa mga komunikasyon ng mga dev team. + +Kung mas nauunawaan mo ang software na iyong pinapatakbo at kung paano gumagana ang patunay ng stake, mas maliit ang panganib bilang staker, at mas madaling ayusin ang anumang problema na maaari mong kaharapin kalaunan bilang operator ng node. + + + +Kapag nagse-set up ng node, kailangang kumportableng gumamit ng mga computer, bagama't pinapadali ito ng mga bagong tool sa paglipas ng panahon. Makakatulong kung nauunawaan ang command-line interface, pero hindi na ito lubos na kinakailangan. + +Ito rin ay nangangailangan ng napaka-basic na hardware setup, at pag-unawa sa minimum na inirerekomendang specs. + + + +Tulad kung paano sine-secure ng mga pribadong key ang iyong Ethereum address, kakailanganin mong gumawa ng mga key na para mismo sa iyong validator. Dapat mong maunawaan kung paano panatilihing ligtas at secure ang anumang seed phrase o pribadong key.{' '} + +Seguridad at pag-iwas sa scam ng Ethereum + + + +May mga pagkakataon na papalya ang hardware, magkakaroon ng error sa mga koneksyon sa network, at may mga pagkakataong kakailanganing i-upgrade ang software ng client. Ang pangangalaga sa node ay hindi maiiwasan at kakailanganin mo itong bigyan ng pansin paminsan-minsan. Kakailanganin mong tiyaking magiging updated ka sa anumang inaasahang upgrade sa network, o iba pang mahahalagang pag-upgrade sa client. + + + +Ang iyong mga reward ay nakabatay sa oras na online ang iyong validator at maayos ang pag-attest. Magpapataw ng penalty para sa downtime na nakabatay sa bilang ng iba pang validator na offline sa parehong panahon, ngunit hindi ito magreresulta sa slashing. Ang bandwidth ay mahalaga rin, dahil nababawasan ang mga reward para sa mga attestation na hindi natatanggap sa tamang oras. Mag-iiba-iba ang mga kahingian, pero inirerekomenda ang hindi bababa sa 10 Mb/s na up at down. + + + +Naiiba sa mga penalty sa kawalan ng aktibidad na ipapataw dahil sa pagiging offline, ang slashing ay isang mas matinding penalty na ipinapataw para sa mga mapaminsalang pagkilos. Sa pamamagitan ng pagpapatakbo ng isang minority client nang naka-load ang iyong mga key sa iisang machine lang sa bawat pagkakataon, lumiliit ang panganib na makaranas ka ng slashing. Sa kabila nito, dapat alam ng lahat ng staker ang mga panganib ng slashing. + + Iba pang detalye tungkol sa slashing at validator lifecycle + + + + + +## Paano ito gumagana {#how-it-works} + + + +Habang aktibo ka, magkakaroon ka ng mga ETH reward, na ide-deposito paminsan-minsan sa iyong withdrawal address. + +Kung gusto mo, maaari kang umalis bilang validator, kung kaya, hindi mo na kailangang maging online at hindi mo na matatanggap ang anupamang reward. Ang iyong natitirang balanse ay iwi-withdraw sa withdrawal address na itatalaga mo sa panahon ng pag-set up. + +[Iba pang detalye tungkol sa mga pag-withdraw sa staking](/staking/withdrawals/) + +## Magsimula sa Staking Launchpad {#get-started-on-the-staking-launchpad} + +Ang Staking Launchpad ay isang open source na application na tutulong sa iyong maging staker. Gagabayan ka nito sa pagpili ng iyong mga client, paggawa ng mga key mo at pagdedeposito ng ETH mo sa staking deposit contract. May checklist na ibinibigay upang tiyakin na nagawa mo ang lahat para ligtas na ma-set up ang iyong validator. + + + +## Ano ang dapat isaalang-alang sa mga tool para sa node at client setup {#node-tool-considerations} + +Dumarami ang mga tool at serbisyo na tutulong sa iyong i-solo stake ang ETH mo, pero may iba't ibang panganib at benepisyo ang bawat isa sa mga ito. + +Ang mga attribute indicator ay ginagamit sa ibaba upang ipahiwatig ang mga kapansin-pansing kalakasan o kahinaan ng isang nakalistang staking tool. Gamitin ang seksyong ito bilang sanggunian sa kung paano namin tinutukoy ang mga attribute na ito habang pumipili ka ng mga tool na tutulong sa iyong staking journey. + + + +## Tingnan ang mga tool para sa pag-set up ng node at client {#node-and-client-tools} + +May iba't ibang opsyon na available upang tulungan ka sa iyong setup. Gamitin ang mga indicator sa itaas para magabayan ka sa mga tool sa ibaba. + + + +### Mga tool para sa node + + + +Tandaan ang kahalagahan ng pagpili ng [minority client](/developers/docs/nodes-and-clients/client-diversity/) dahil pinapaigting nito ang seguridad ng network, at nililimitahan nito ang iyong panganib. Ang mga tool na nagbibigay-daan sa iyong mag-set up ng minority client ay tinutukoy bilang "multi-client." + +### Mga Generator ng Key + +Ang mga tool na ito ay maaaring gamitin bilang alternatibo sa [Staking Deposit CLI](https://github.com/ethereum/staking-deposit-cli/) upang tumulong sa paggawa ng key. + + + +May mungkahi para sa staking tool na hindi namin nabanggit? Tingnan ang aming [patakaran sa product listing](/contributing/adding-staking-products/) para malaman kung ito ay angkop, at isumite ito para masuri. + +## Tingnan ang mga gabay sa solo staking {#staking-guides} + + + +## Mga karaniwang itanong {#faq} + +Ilan ito sa mga pinakakaraniwang tanong tungkol sa staking na mahalagang malaman. + + + +Ang validator ay isang virtual entity sa Ethereum at nakikilahok sa consensus ng Ethereum protocol. Ang mga validator ay kinakatawan ng isang balanse, pampublikong key, at iba pang property. Ang validator client ang software na kumikilos para sa validator sa pamamagitan ng pangangasiwa at paggamit sa pribadong key nito. Maaaring mangasiwa ang isang validator client ng maraming pares ng key, na nagkokontrol ng maraming validator. + + + + +Ang bawat key-pair na nauugnay sa isang validator ay nangangailangan ng eksaktong 32 ETH para ma-activate. Ang pagdedeposito ng mas maraming ETH sa isang set ng mga key ay hindi nagpapalaki sa posibildad na makakuha ng mga reward, dahil limitado ang bawat validator sa epektibong balanse na 32 ETH. Ibig sabihin nito, isinasagawa ang staking nang kada 32 ETH, kung saan may sariling set ng mga key at balanse ang bawat isa. + +Huwag magdeposito ng mahigit 32 ETH para sa isang validator. Hindi nito mapaparami ang iyong mga reward. Kung mayroon nang itinakdang withdrawal address para sa validator, ang sobrang pondo na higit sa 32 ETH ay awtomatikong iwi-withdraw sa address na ito sa susunod na validator sweep. + +Kung masyadong matrabaho para sa iyo ang solo staking, pag-isipang gumamit ng staking-as-a-service provider, o kung wala ka pang 32 ETH, tingnan ang mga staking pool. + + + +Ang pagiging offline kapag maayos na nagfa-finalize ang network ay HINDI magreresulta sa slashing. Magkakaroon ng maliliit na penalty para sa kawalan ng aktibidad kung ang iyong validator ay hindi available na magpatunay para sa isang partikular na epoch (tumatagal nang 6.4 minuto ang bawat isa), ngunit labis itong naiiba sa slashing. Ang mga penalty na ito ay bahagyang mas kaunti kaysa sa reward na maaari mo sanang makuha kung available para magpatunay ang validator, at mababawi ang mga pagkalugi sa pamamagitan ng halos katumbas na panahon ng pagiging online ulit. + +Tandaan na ang mga penalty para sa kawalan ng aktibidad ay nakabatay sa bilang ng mga validator na offline sa parehong panahon. Sa mga sitwasyon kung saan sabay-sabay na offline ang malaking bahagi ng network, mas malaki ang ipapataw na penalty para sa bawat isa sa mga validator na ito kumpara kung isang validator lang ang hindi available. + +Sa mga sukdulang sitwasyon, kung hihinto sa pag-finalize ang network dahil offline ang mahigit sa isang-katlo ng mga validator, mapeperhuwisyo ang mga user ng quadratic inactivity leak, na labis na pagkaubos ng ETH mula sa mga offline na validator account. Binibigyang-daan nito ang network na ayusin ang sarili nito sa pamamagitan ng paggamit ng ETH ng mga hindi aktibong validator hanggang sa maging 16 ETH ang kanilang balanse, at sa puntong iyon, awtomatiko silang aalisin sa validator pool. Kalaunan, mapupunan ulit ng mga natitirang online na validator ang 2/3 ng network, na siyang sasapat sa supermajority na kinakailangan para maisapinal ulit ang chain. + + + +Sa madaling salita, hindi ito ganap na masisigurado, ngunit kung kikilos ka nang walang masamang hangarin, magpapatakbo ka ng minority client at papanatilihin mo lang ang mga signing key mo sa isang machine sa bawat pagkakataon, halos zero ang tsansang masa-slash ka. + +Mayroon lang ilang partikular na paraan na maaaring magresulta sa pag-slash ng validator at pag-eject nito sa network. Habang isinusulat ito, ang mga slashing na nangyari ay produkto lang ng mga redundant na hardware setup kung saan sino-store ang mga signing key sa dalawang magkahiwalay na machine sa bawat pagkakataon. Ito ay maaaring hindi sinasadyang magresulta sa isang double vote mula sa iyong mga keys, na isang slashable offense. + +Ang pagpapatakbo ng isang supermajority client (anumang client na ginagamit ng mahigit 2/3 ng network) ay nagdadala rin ng panganib ng potensyal na pag-slash kung sakaling may bug ang client na ito na nagreresulta sa chain fork. Ito ay maaaring magdulot ng depektibong fork na maisasapinal. Upang maibalik sa tamang chain, kinakailangang magsumite ng surround vote sa pamamagitan ng pagsusumikap na bawiin ang isang naisapinal na block. Ito rin ay isang slashable offense at maaari itong maiwasan sa pamamagitan ng pagpapatakbo na lang ng isang minority client. + +Ang mga katumbas na bug sa isang minority client ay hindi kailanman maisasapinal at hindi kailanman magreresulta sa isang surround vote, at magdudulot lang ng mga penalty para sa kawalan ng aktibidad, hindi sa slashing. + + + + + +Maaaring medyo magkakaiba ang performance at user interface ng mga indibidwal na client, dahil ginawa ang bawat isa sa mga ito ng iba't ibang team gamit ang iba't ibang programming language. Gayunpaman, wala sa mga ito ang "pinakamahusay." Ang lahat ng production client ay magagandang uri ng software na nagsasagawa ng mga pangunahing function na mag-sync at mag-interact sa blockchain. + +Dahil ibinibigay ng lahat ng production client ang parehong basic functionality, napakahalaga na pumili ka ng minority client, ibig sabihin, anumang client na HINDI kasalukuyang ginagamit ng karamihan sa mga validator sa network. Maaaring hindi ito rasonable, pero ang pagpapatakbo ng majority o supermajority client ay maglalagay sa iyo sa mas malaking panganib ng slashing kung sakaling magkaroon ng bug sa client na iyon. Labis na nililimitahan ng pagpapatakbo ng minority client ang mga panganib na ito. + +Magbasa pa tungkol sa kung bakit mahalaga ang client diversity + + + +Bagama't maaaring gumamit ng virtual private server (VPS) bilang pamalit sa home hardware, ang pisikal na access at lokasyon ng iyong validator client ay mahalaga. Sa tulong ng mga centralized cloud solution tulad ng Amazon Web Services o Digital Ocean, hindi na kailangang kumuha at magpatakbo ng hardware, ngunit ang kapalit nito ay pag-centralize sa network. + +Kapag mas maraming validator client ang tumatakbo sa isang centralized cloud storage solution, mas magiging mapanganib ito para sa mga user na ito. Kapag nagkaroon ng anumang event na magpapa-offline sa mga provider na ito, isa mang atake, mga panregulatoryong demand, o simpleng pagkawala ng kuryente/internet, sabay-sabay na mag-o-offline ang bawat validator client na umaasa sa server na ito. + +Ang mga penalty sa pagiging offline ay nakabatay sa bilang ng iba pang provider na offline sa parehong panahon. Kapag gumamit ng VPS, mas mapapalaki ang panganib na mas magiging matindi ang ipapataw na penalty sa pagiging offline, at mapapalaki nito ang posibilidad na makaranas ka ng quadratic leaking o slashing kung sakaling maging masyadong malaki ang outage. Upang mapaliit ang panganib para sa iyo at sa network, lubos na hinihikayat ang mga user na kumuha at magpatakbo ng sarili nilang hardware. + + + + +Ang anumang uri ng withdrawal mula sa Beacon Chain ay nangangailangan ng pagtatakda ng mga kredensyal sa pag-withdraw. + +Itinatakda ito ng mga bagong staker sa panahon ng paggawa ng key at deposito. Puwedeng i-upgrade ng mga kasalukuyang staker na hindi pa nakapag-set nito ang kanilang mga key para masuportahan ang functionality na ito. + +Kapag naitakda na ang mga kredensyal sa pag-withdraw, ang mga reward payment (nalikom na ETH matapos ang unang 32) ay pana-panahong awtomatikong ipapamahagi sa withdrawal address. + +Upang ma-unlock at maibalik ang iyong buong balanse, dapat mo ring tapusin ang proseso ng pag-aalis ng iyong validator. + +Iba pang detalye tungkol sa mga pag-withdraw sa staking + + +## Karagdagang pagbabasa {#further-reading} + +- [Ang Problema ng Ethereum sa Client Diversity](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ +- [Pagtulong sa Client Diversity](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ +- [Client diversity sa consensus layer ng Ethereum](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ +- [Paano Dapat Gawin: Bumili ng Hardware para sa Ethereum Validator](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ +- [Step by Step: Paano sumali sa Ethereum 2.0 Testnet](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _Butta_ +- [Mga Tip para sa Pag-iwas sa Slashing sa Eth2](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raul Jordan 2020_ diff --git a/public/content/translations/fil/staking/withdrawals/index.md b/public/content/translations/fil/staking/withdrawals/index.md new file mode 100644 index 00000000000..3dfbe6dab24 --- /dev/null +++ b/public/content/translations/fil/staking/withdrawals/index.md @@ -0,0 +1,218 @@ +--- +title: Mga pag-withdraw ng stake +description: Page na nagbubuod sa kung ano ang mga pag-push withdraw sa staking, paano ito gumagana, at kung ano ang dapat gawin ng mga staker para makuha ang mga reward nila +lang: fil +template: staking +image: /staking/leslie-withdrawal.png +alt: Ang rhino na si Leslie kasama ng mga natanggap niyang reward mula sa staking +sidebarDepth: 2 +summaryPoints: + - Binigyang-daan ng Shanghai/Capella upgrade ang mga pag-withdraw sa staking sa Ethereum + - Upang magamit ang serbisyo, kinakailangan ng mga operator ng validator na magbigay ng withdrawal address + - Ang mga reward ay awtomatikong ipinapamahagi kada ilang araw + - Matatanggap ng mga validator na ganap na aalis sa staking ang kanilang natitirang balanse +--- + + +Ang pag-withdraw sa staking ay in-enable kasabay ng Shanghai/Capella ugrade na naganap noong Abril 12, 2023. Iba pang detalye tungkol sa Shanghai/Capella + + +Ang **mga pag-withdraw sa staking** ay tumutukoy sa mga pag-transfer ng ETH mula sa validator account na nasa consensus layer ng Ethereum (ang Beacon Chain), papunta sa execution layer kung saan ito magagamit sa mga transaksyon. + +Ang **mga reward payment para sa sobrang balanse** na mahigit 32 ETH ay awtomatiko at regular na ipapadala sa withdrawal address na naka-link sa bawat validator, kapag ibinigay na ito ng user. Ang mga user ay puwede ring **ganap na umalis sa staking**, na nagbubukas ng kanilang buong balanse bilang validator. + +## Mga reward mula sa staking {#staking-rewards} + +Ang mga reward payment ay awtomatikong ipinoproseso para sa mga aktibong validator account na may maxed out na effective balance na 32 ETH. + +Ang anumang balanse na mahigit 32 ETH na nakamit sa pamamagitan ng mga reward ay hindi talaga nagdadagdag sa pangunahing balanse, o hindi nagpapataas ng weight ng validator sa network, kaya, awtomatiko itong iwi-withdraw bilang reward payment kada ilang araw. Maliban sa pagbibigay ng withdrawal address isang beses, hindi kinakailangan ng anumang aksyon mula sa operator ng validator para sa mga reward na ito. Ito ay nagsisimula sa consensus layer, kung kaya, walang gas (bayarin sa transaksyon) na kinakailangan sa kahit anong hakbang. + +### Paano tayo nakarating dito? {#how-did-we-get-here} + +Sa mga nakaraang taon, ang Ethereum ay sumailalim sa ilang pag-upgrade sa network at nag-transition sa network na pinoprotektahan ng ETH mismo, sa halip ng energy-intensive mining tulad ng dati. Ang paglahok sa consensus sa Ethereum ay kinikilala na ngayon bilang "staking", dahil ang mga kalahok ay boluntaryong naglalagay ng kanilang ETH sa isang "stake" upang magkaroon ng kakayahan na makilahok sa network. Ang mga user na sumusunod sa mga panuntunan ay mabibigyan ng gantimpala, habang ang mga magtatangkang mandaya ay maaaring parusahan. + +Mula nang ilunsad ang staking deposit contract noong Nobyembre 2020, boluntaryong naglagay ang ilang matapang na nanguna sa Ethereum ng mga pondo upang i-activate ang "mga validator", na mga espesyal na account na may karapatang pormal na patunayan ang at magmungkahi ng mga block, alinsunod sa mga panuntunan ng network. + +Bago ang Shanghai/Capella upgrade, hindi mo magamit o ma-access ang iyong staked ETH. Ngunit ngayon, maaari mong piliin awtomatikong matanggap ang iyong mga reward sa isang piling account, at mawi-withdraw mo rin ang iyong staked ETH kung kailan mo gusto. + +### Paano ako maghahanda? {#how-do-i-prepare} + + + +### Mahahalagang paunawa {#important-notices} + +Ang pagbibigay ng withdrawal address ay isang kinakailangang hakbang para sa anumang validator account bago ito maging eligible na mag-withdraw ng ETH mula sa balanse nito. + + + Ang bawat validator account ay maaari lang magkaroon ng isang withdrawal address, nang isang beses lang. Kapag nakapili na ng address at naisumite na ito sa consensus layer, hindi na ito maaaring bawiin o baguhin ulit. I-double check ang pagmamay-ari at katumpakan ng address na ibinigay bago ito isumite. + + +Sa ngayon, walang banta sa pondo mo kung hindi mo ito ibibigay, basta't nananatiling ligtas offline ang iyong mnemonic/seed phrase, at hindi ito nakompromiso sa anumang paraan. Kung hindi maipapakita ang mga kredensyal sa pag-withdraw, hindi makukuha ang ETH sa validator account hangga't hindi nagbibigay ng withdrawal address. + +## Ganap na pag-alis sa staking {#exiting-staking-entirely} + +Kailangang magbigay ng withdrawal address bago ma-transfer ang _anumang_ pondo mula sa balanse ng validator account. + +Ang mga user na nagnanais na ganap na umalis sa staking at i-withdraw ang kanilang buong balanse ay kinakailangan ding mag-sign at mag-broadcast ng mensahe ng "boluntaryong pag-alis" gamit ang mga key ng validator para masimulan ang proseso ng pag-alis sa staking. Ito ay ginagawa gamit ang iyong validator client at isinusumite sa iyong consensus node, at hindi nangangailangan ng gas. + +Ang proseso ng pag-alis ng isang validator sa staking ay gumugugol ng iba't ibang oras, depende sa kung ilan pang validator ang umaalis sa parehong panahon. Kapag tapos na, ang account na ito ay hindi na magiging responsable sa pagganap ng mga tungkulin sa validator network, hindi na eligibile para sa mga reward, at hindi na rin nagse-"stake" ng kanilang ETH. Sa oras na ito, ang account ay ituturing na ganap nang "withdrawable". + +Kapag ang isang account ay na-flag na bilang "withdrawable", at nagbigay na ng mga kredensyal sa pag-withdraw, wala nang kailangang gawin ang user kundi maghintay. Ang mga account ay awtomatiko at tuloy-tuloy na isi-sweep ng mga block proposer para sa mga eligible na exited fund, at ita-transfer ang buong balanse ng iyong account (kilala rin bilang "full withdrawal") sa susunod na sweep. + +## Kailan pinapagana ang mga pag-withdraw sa staking? {#when} + +Live na ang mga pag-withdraw sa staking! Ang functionality ng pag-withdraw ay in-enable bilang bahagi ng Shanghai/Capella upgrade na naganap noong Abril 12, 2023. + +Ang Shanghai/Capella upgrade ang nagbigay-daan para maibalik ang staked ETH sa mga regular na Ethereum account. Sinubaybayan nito ang pag-stake ng liquidity, at inilapit nito ang Ethereum sa layunin nitong bumuo ng sustainable, scalable, at secure na decentralized ecosystem. + +- [Iba pang detalye tungkol sa kasaysayan ng Ethereum](/history/) +- [Iba pang detalye tungkol sa roadmap ng Ethereum](/roadmap/) + +## Paano gumagana ang mga withdrawal payment? {#how-do-withdrawals-work} + +Ang pagiging eligible ng isang partikular na validator para sa pag-withdraw ay tinutukoy sa pamamagitan ng kalagayan mismo ng validator account. Hindi kailangan ng anumang user input anumang oras upang matukoy kung dapat magsimula ng pag-withdraw ang account o hindi—ang buong proseso ay awtomatikong ginagawa ng consensus layer sa isang tuloy-tuloy na loop. + +### More of a visual learner? {#visual-learner} + +Tingnan ang paliwanag ng Finematics tungkol sa mga pag-withdraw sa staking ng Ethereum: + + + +### "Pag-sweep" ng validator {#validator-sweeping} + +Kapag nakaiskedyul ang isang validator na magmungkahi ng susunod na block, kailangan nitong gumawa ng withdrawal queue ng hanggang 16 na eligible withdrawal. Ito ay ginagawa sa pamamagitan ng pagsisimula sa validator index 0, pagtukoy kung may eligible withdrawal para sa account na ito batay sa mga panuntunan ng protocol, at pagdadagdag nito sa queue kung mayroon man. Ang validator na nakatakda na mag-propose ng susunod na bloke ay magpapatuloy kung saan iniwan ng huling bloke, at magpapatuloy ito nang sunod-sunod ng walang katapusan. + + +Para lang itong analog na orasan. Itinuturo ng kamay sa orasan ang oras, umuusad ito sa isang direksyon, wala itong nilalaktawang anumang oras, at sa huli ay bumabalik ito sa simula kapag naabot na nito ang huling numero.

+Ngayon, sa halip na 1 hanggang 12, isipin na may 0 hanggang N (ang kabuuang bilang ng mga validator account na nairehistro sa consensus layer, na mahigit 500,000 mula noong Enero 2023).

+Ituturo ng kamay sa orasan ang susunod na validator na kailangang tingnan kung may mga eligible withdrawal. Nagsisimula ito sa, at umuusad paikot nang hindi nilalaktawan ang anumang account. Kapag naabot na ang huling validator, babalik ang sa simula ang cycle. +
+ +#### Pagtingin kung may mga withdrawal ang account {#checking-an-account-for-withdrawals} + +Habang sini-sweep ng isang proposer ang mga validator para sa mga posibleng withdrawal, inihahambing ang bawat sinusuring validator sa maikling serye ng mga tanong para tukuyin kung dapat mag-trigger ng withdrawal, at kung oo, kung gaano karaming ETH ang dapat i-withdraw. + +1. **Mayroon bang ibinigay na withdrawal address?** Kung wala pang withdrawal address na ibinigay, lalaktawan ang account at hindi magsisimula ng anumang withdrawal. +2. **Inalis at mawi-withdraw ba ang validator?** Kung ganap nang inalis ang validator, at naabot na natin ang epoch kung saan maituturing nang "mawi-withdraw" ang kanilang account, magpoproseso ng full withdrawal. Ita-transfer nito ang buong natitirang balanse sa withdrawal address. +3. **Umabot na ba sa 32 ang effective balance?** Kung ang account ay may mga kredensyal sa pag-withdraw, hindi pa ganap na naiaalis, at may nakatenggang mga reward na mahigit 32, magpoproseso ng isang partial withdrawal na nagta-transfer lang ng mga reward na mahigit 32 sa withdrawal address ng user. + +May dalawang aksyon lang na ginagawa ng mga validator operator sa buong life cycle ng isang validator na direktang nakakaapekto sa flow na ito: + +- Magbigay ng mga kredensyal sa pag-withdraw upang ma-enable ang anumang uri ng withdrawal +- Umalis sa network, na magti-trigger ng full withdrawal + +### Walang gas {#gas-free} + +Sa estratehiyang ito sa mga pag-withdraw sa staking, hindi hinihiling sa mga staker na manual na magsumite ng transaksyon na nagpapa-withdraw ng partikular na dami ng ETH. Ibig sabihin nito, **hindi kailangan ng gas (bayarin sa transaksyon)**, at hindi rin nakikipag-agawan ang mga withdrawal para sa kasalukuyang execution layer block space. + +### Gaano kadalas kong matatanggap ang aking mga staking reward? {#how-soon} + +Maaaring magproseso ng hanggang 16 na withdrawal sa isang block. Sa bilis na 'yon, puwedeng magproseso ng 115,200 validator withdrawal kada araw (kung walang nilaktawang slot). Tulad ng nabanggit sa itaas, lalaktawan ang mga validator na walang eligible na withdrawal, na magpapabilis sa pagtatapos ng sweep. + +Kapag pinalawak ang kalkulasyong ito, matatantya natin ang oras na kakailanganin upang magproseso ng partikular na bilang ng mga withdrawal: + + + +| Bilang ng mga withdrawal | Tagal bago makumpleto | +| :----------------------: | :-------------------: | +| 400,000 | 3.5 araw | +| 500,000 | 4.3 araw | +| 600,000 | 5.2 araw | +| 700,000 | 6.1 araw | +| 800,000 | 7.0 araw | + + + +Tulad ng nakikita mo, babagal ito habang dumarami ang mga validator sa network. Kapag dumami ang mga nilaktawang slot, babagal ito nang husto, pero karaniwan nitong kakatawanin ang mas mabagal na posibleng resulta. + +## Mga karaniwang itanong {#faq} + + +Hindi, ang proseso ng pagbibigay ng mga kredensyal sa pag-withdraw ay one-time process, at hindi na maaaring baguhin kapag naisumite na. + + + +Sa pamamagitan ng pagtatakda ng withdrawal address ng execution layer, permanente nang nabago ang mga kredensyal sa pag-withdraw ng validator na iyon. Ito ay nangangahulugan na hindi na gagana ang mga lumang kredensyal, at sa execution layer account didirekta ang mga bagong kredensyal. + +Ang mga withdrawal address ay maaaring maging smart contract (kontrolado ng code nito), o externally owned account (EOA, kontrolado ng pribadong key nito). Sa kasalukuyan, ang mga account na ito ay walang paraan para magpadala ng mensahe pabalik sa consensus layer na magpapahiwatig ng pagbabago sa mga kredensyal ng validator, at magiging kumplikado ang protocol kahit hindi naman dapat kapag idinagdag ang functionality na ito. + +Bilang alternatibo sa pagbabago ng withdrawal address para sa partikular na validator, maaaring piliin ng mga user na magtakda ng isang smart contract bilang kanilang withdrawal address na maaaring pangasiwaan ang pag-rotate ng key, tulad ng Safe. Ang mga user na nagtatakda ng kanilang pondo sa kanilang sariling EOA ay maaaring magsagawa ng ganap na pag-alis para i-withdraw ang lahat ng kanilang na-stake na pondo, at pagkatapos ay mag-stake ulit gamit ang mga bagong kredensyal. + + + + +Kung bahagi ka ng isang staking pool o may hawak kang mga staking token, dapat kang magtanong sa iyong provider ng iba pang detalye tungkol sa kung paano pinapangasiwaan ang mga pag-withdraw sa staking, dahil magkakaiba ang paraan ng pangangasiwa ng bawat serbisyo. + +Sa pangkalahatan, dapat malaya ang mga user na kunin ang kasalukuyan nilang staked ETH, o magpalit ng staking provider na ginagamit nila. Kung masyado nang nagiging malaki ang isang partikular na pool, puwedeng alisin, i-redeem, at i-stake ulit ang pondo sa mas maliit na provider. O, kung nakalikom ka na ng sapat na ETH, maaari kang mag-stake mula sa bahay. + + + + +Oo, basta't may ibinigay na withdrawal address ang iyong validator. Dapat itong ibigay nang isang beses para inisyal na ma-enable ang anumang withdrawal, pagkatapos ay awtomatikong mati-trigger kada ilang araw ang mga reward payment sa bawat validator sweep. + + + + +Hindi, kung ang iyong validator ay aktibo pa sa network, hindi magaganap nang awtomatiko ang full withdrawal. Para mangyari ito, kailangang manual na magsimula ng boluntaryong pag-alis. + +Kapag natapos na ng validator ang proseso ng pag-alis, at kung may mga kredensyal sa pag-withdraw ang account, ang natitirang balanse ay saka iwi-withdraw sa susunod na validator sweep. + + + + +Ang mga withdrawal ay idinisenyo upang awtomatikong maiproseso, at ililipat nito ang anumang ETH na hindi aktibong nagko-contribute sa stake. Kasama dito ang mga kumpletong balanse para sa mga account na natapos na ang proseso ng pag-alis. + +Hindi posibleng manual na hilingin ang partikular na halaga ng ETH na iwi-withdraw. + + + + +Inirerekomenda sa mga operator ng validator na bisitahin ang page na Mga Pag-withdraw sa Staking sa Launchpad kung saan ka makakakita ng iba pang detalye tungkol sa kung paano ihanda ang iyong validator para sa mga withdrawal. pagiging handa, timing ng mga event, at iba pang detalye tungkol sa kung paano gumagana ang mga withdrawal. + +Upang subukan muna ang iyong setup sa isang testnet, bisitahin ang Goerli Testnet Staking Launchpad para magsimula. + + + + +Hindi. Kapag umalis na ang isang validator at na-wtihdraw na ang kumpletong balanse nito, awtomatikong ita-transfer ang anumang karagdagang pondong idineposito sa validator na iyon sa withdrawal address sa susunod na validator sweep. Upang mag-stake ulit ng ETH, kailangang mag-activate ng bagong validator. + + +## Karagdagang pagbabasa {#further-reading} + +- [Mga Pag-withdraw sa Staking sa Launchpad](https://launchpad.ethereum.org/withdrawals) +- [EIP-4895: Mga Beacon chain push withdrawal bilang mga operasyon](https://eips.ethereum.org/EIPS/eip-4895) +- [Ethereum Cat Herders - Shanghai](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) +- [PEEPanEIP #94: Pag-withdraw sa Staked ETH (Testing) kasama sina Potuz at Hsiao-Wei Wang](https://www.youtube.com/watch?v=G8UstwmGtyE) +- [PEEPanEIP#68: EIP-4895: Mga Beacon chain push withdrawal bilang mga operasyon kasama si Alex Stokes](https://www.youtube.com/watch?v=CcL9RJBljUs) +- [Pag-unawa sa Validator Effective Balance](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/fil/web3/index.md b/public/content/translations/fil/web3/index.md similarity index 100% rename from src/content/translations/fil/web3/index.md rename to public/content/translations/fil/web3/index.md diff --git a/src/content/translations/fil/web3/web2.png b/public/content/translations/fil/web3/web2.png similarity index 100% rename from src/content/translations/fil/web3/web2.png rename to public/content/translations/fil/web3/web2.png diff --git a/src/content/translations/fil/web3/web3.png b/public/content/translations/fil/web3/web3.png similarity index 100% rename from src/content/translations/fil/web3/web3.png rename to public/content/translations/fil/web3/web3.png diff --git a/src/content/translations/fil/zero-knowledge-proofs/index.md b/public/content/translations/fil/zero-knowledge-proofs/index.md similarity index 100% rename from src/content/translations/fil/zero-knowledge-proofs/index.md rename to public/content/translations/fil/zero-knowledge-proofs/index.md diff --git a/src/content/translations/fr/about/index.md b/public/content/translations/fr/about/index.md similarity index 100% rename from src/content/translations/fr/about/index.md rename to public/content/translations/fr/about/index.md diff --git a/src/content/translations/fr/bridges/index.md b/public/content/translations/fr/bridges/index.md similarity index 100% rename from src/content/translations/fr/bridges/index.md rename to public/content/translations/fr/bridges/index.md diff --git a/src/content/translations/fr/community/code-of-conduct/index.md b/public/content/translations/fr/community/code-of-conduct/index.md similarity index 100% rename from src/content/translations/fr/community/code-of-conduct/index.md rename to public/content/translations/fr/community/code-of-conduct/index.md diff --git a/src/content/translations/fr/community/events/index.md b/public/content/translations/fr/community/events/index.md similarity index 100% rename from src/content/translations/fr/community/events/index.md rename to public/content/translations/fr/community/events/index.md diff --git a/src/content/translations/fr/community/get-involved/index.md b/public/content/translations/fr/community/get-involved/index.md similarity index 100% rename from src/content/translations/fr/community/get-involved/index.md rename to public/content/translations/fr/community/get-involved/index.md diff --git a/src/content/translations/fr/community/grants/index.md b/public/content/translations/fr/community/grants/index.md similarity index 100% rename from src/content/translations/fr/community/grants/index.md rename to public/content/translations/fr/community/grants/index.md diff --git a/src/content/translations/fr/community/language-resources/index.md b/public/content/translations/fr/community/language-resources/index.md similarity index 100% rename from src/content/translations/fr/community/language-resources/index.md rename to public/content/translations/fr/community/language-resources/index.md diff --git a/src/content/translations/fr/community/online/index.md b/public/content/translations/fr/community/online/index.md similarity index 100% rename from src/content/translations/fr/community/online/index.md rename to public/content/translations/fr/community/online/index.md diff --git a/src/content/translations/fr/community/research/index.md b/public/content/translations/fr/community/research/index.md similarity index 100% rename from src/content/translations/fr/community/research/index.md rename to public/content/translations/fr/community/research/index.md diff --git a/public/content/translations/fr/community/support/index.md b/public/content/translations/fr/community/support/index.md new file mode 100644 index 00000000000..a84e417ead1 --- /dev/null +++ b/public/content/translations/fr/community/support/index.md @@ -0,0 +1,116 @@ +--- +title: Assistance Ethereum +description: Obtenez de l'aide sur l'écosystème Ethereum. +lang: fr +--- + +# Assistance Ethereum {#support} + +## Asistance officielle Ethereum {#official-support} + +Vous recherchez l'assistance officielle Ethereum ? La première chose que vous devez savoir est le fait qu'Ethereum est décentralisé. Cela signifie qu'aucune organisation, entité ou personne n'est propriétaire d'Ethereum et, de ce fait, il n'existe aucune assistance officielle. + +Comprendre la nature décentralisée d'Ethereum est essentiel, car quiconque prétendant représenter l'assiatnce officielle d'Ethereum essaie probablement de vous escroquer ! La meilleure protection contre les arnaques consiste à vous informer et à prendre la sécurité au sérieux. + + + Sécurité d'Ethereum et prévention des arnaques + + + + Apprendre les fondamentaux d'Ethereum + + +Malgré le manque d'assistance officielle, de nombreux groupes, communautés et projets à travers l'écosystème Ethereum sont heureux de vous aider. Vous pouvez trouver beaucoup d'informations et de ressources utiles sur cette page. Vous avez d'autres questions ? Rejoignez le [Discord ethereum.org](/discord/) et nous essaierons de vous aider. + +## Assistance concernant votre portefeuille {#wallet-support} + +Vous rencontrez un problème avec votre portefeuille ? La plupart des portefeuilles ont des équipes d'assistance dédiées qui peuvent vous aider : + +- [MetaMask](https://metamask.zendesk.com/hc/) +- [Argent](https://support.argent.xyz/hc/) +- [MyEtherWallet](https://help.myetherwallet.com/) + +_Cette liste est non-exhaustive. Vous avez besoin d'aide pour trouver l'assistance pour un portefeuille spécifique ? Rejoignez le [Discord Ethereum.org](https://discord.gg/ethereum-org) et nous essaierons de vous aider._ + +Vous êtes à la recherche d'un portefeuille Ethereum ? [Explorez notre liste complète de portefeuilles Ethereum](/wallets/find-wallet/). + +## Créer des applications décentralisées {#building-support} + +Le développement d'une application décentralisée peut être difficile. Voici quelques espaces axés sur leur création, avec des développeurs Ethereum chevronnés qui seront heureux de vous faire part de leur expérience. + +- [Alchemy University](https://university.alchemy.com/#starter_code) +- [Discord CryptoDevs](https://discord.gg/Z9TA39m8Yu) +- [StackExchange Ethereum](https://ethereum.stackexchange.com/) +- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) +- [Web3 University](https://www.web3.university/) +- [LearnWeb3](https://discord.com/invite/learnweb3) + +Vous pouvez aussi consulter notre documentation ainsi que des guides de développement dans notre section [Ressources pour les développeurs Ethereum](/developers/). + +### Outils {#dapp-tooling} + +Votre question concerne un outil, un projet ou une bibliothèque en particulier ? La plupart des projets disposent de serveurs de discussion ou des forums dédiés au soutien des membres. + +Voici quelques exemples connus : + +- [Solidity](https://gitter.im/ethereum/solidity/) +- [ethers.js](https://discord.gg/6jyGVDK6Jx) +- [web3.js](https://discord.gg/GsABYQu4sC) +- [Hardhat](https://discord.gg/xtrMGhmbfZ) +- [Truffle](https://discord.gg/8uKcsccEYE) +- [Alchemy](http://alchemy.com/discord) +- [Tenderly](https://discord.gg/fBvDJYR) + +## Exécuter un nœud {#node-support} + +Si vous exécutez un nœud ou un validateur, voici quelques communautés qui sont consacrées à aider ceux qui débutent. + +- [Discord EthStaker](https://discord.gg/ethstaker) +- [Reddit EthStaker](https://www.reddit.com/r/ethstaker) + +La plupart des équipes qui créent des clients Ethereum disposent aussi d'espaces dédiés, ouverts au public, dans lesquels vous pouvez obtenir une aide et poser des questions. + +### Clients d'exécution {#execution-clients} + +- [Geth](https://discord.gg/FqDzupGyYf) +- [Nethermind](https://discord.gg/YJx3pm8z5C) +- [Besu](https://discord.gg/p8djYngzKN) +- [Erigon](https://github.com/ledgerwatch/erigon/issues) + +### Clients de consensus {#consensus-clients} + +- [Prysm](https://discord.gg/prysmaticlabs) +- [Nimbus](https://discord.gg/nSmEH3qgFv) +- [Lighthouse](https://discord.gg/cyAszAh) +- [Teku](https://discord.gg/7hPv2T6) +- [Lodestar](https://discord.gg/aMxzVcr) + +Vous pouvez aussi [apprendre comment exécuter un nœud ici](/developers/docs/nodes-and-clients/run-a-node/). + +## Questions fréquemment posées {#faq} + +### J'ai transféré mes ETH vers le mauvais portefeuille {#wrong-wallet} + +Les transactions effectuées sur Ethereum sont irréversibles. Malheureusement, si vous avez envoyé des ETH au mauvais portefeuille, il n'y a aucun moyen de récupérer ces fonds. Aucune organisation centrale, entité ou personne n'est propriétaire d'Ethereum, ce qui signifie que personne ne peut annuler les transactions. Pour cette raison, il est primordial de vérifier deux fois vos transactions avant de les effectuer. + +### Comment puis-je réclamer mon cadeau Ethereum ? {#giveaway-scam} + +Les concours Ethereum sont des arnaques conçues pour récupérer vos ETH. Ne vous laissez pas tenter par des offres qui semblent trop belles pour être vraies — si vous envoyez des ETH vers une adresse de « concours », vous ne recevrez pas de cadeau, et vous ne pourrez pas récupérer vos fonds. + +[En savoir plus sur la prévention des arnaques](/security/#common-scams) + +### Ma transaction est bloquée {#stuck-transaction} + +Les transactions sur Ethereum peuvent parfois se bloquer si vous avez soumis des frais de transactions inférieurs à ceux requis en raison de la demande du réseau. De nombreux portefeuilles offrent la possibilité de renvoyer la même transaction avec des frais de transaction plus élevés, afin de permettre à celle-ci d'être traitée. Vous pouvez aussi annuler une transaction en cours en envoyant une transaction vers votre propre adresse en utilisant le même nonce que la transaction en cours. + +[Comment accélérer ou annuler une transaction en cours via MetaMask](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) + +[Comment annuler des transactions Ethereum en cours](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) + +### Comment miner de l'Ethereum ? {#mining-ethereum} + +Le minage d'Ethereum n'est plus possible. Le minage a disparu lors du passage d'Ethereum de la preuve de travail à la preuve d'enjeu. Désormais, en place des mineurs, Ethereum dispose de validateurs. Les validateurs misent de l'ETH et reçoivent des récompenses pour la sécurisation du réseau. + +### Comment devenir un staker/validateur ? {#become-validator} + +Pour devenir un validateur, vous devez miser 32 ETH dans le contrat de dépôt Ethereum et mettre en place un nœud de validateur. Davantage d'informations sont disponibles sur nos [pages de staking](/staking) et sur [la plateforme de lancement de staking](https://launchpad.ethereum.org/). diff --git a/src/content/translations/fr/contributing/adding-desci-projects/index.md b/public/content/translations/fr/contributing/adding-desci-projects/index.md similarity index 100% rename from src/content/translations/fr/contributing/adding-desci-projects/index.md rename to public/content/translations/fr/contributing/adding-desci-projects/index.md diff --git a/src/content/translations/fr/contributing/adding-developer-tools/index.md b/public/content/translations/fr/contributing/adding-developer-tools/index.md similarity index 100% rename from src/content/translations/fr/contributing/adding-developer-tools/index.md rename to public/content/translations/fr/contributing/adding-developer-tools/index.md diff --git a/src/content/translations/fr/contributing/adding-exchanges/index.md b/public/content/translations/fr/contributing/adding-exchanges/index.md similarity index 100% rename from src/content/translations/fr/contributing/adding-exchanges/index.md rename to public/content/translations/fr/contributing/adding-exchanges/index.md diff --git a/src/content/translations/fr/contributing/adding-glossary-terms/index.md b/public/content/translations/fr/contributing/adding-glossary-terms/index.md similarity index 100% rename from src/content/translations/fr/contributing/adding-glossary-terms/index.md rename to public/content/translations/fr/contributing/adding-glossary-terms/index.md diff --git a/src/content/translations/fr/contributing/adding-layer-2s/index.md b/public/content/translations/fr/contributing/adding-layer-2s/index.md similarity index 100% rename from src/content/translations/fr/contributing/adding-layer-2s/index.md rename to public/content/translations/fr/contributing/adding-layer-2s/index.md diff --git a/src/content/translations/fr/contributing/adding-products/index.md b/public/content/translations/fr/contributing/adding-products/index.md similarity index 100% rename from src/content/translations/fr/contributing/adding-products/index.md rename to public/content/translations/fr/contributing/adding-products/index.md diff --git a/src/content/translations/fr/contributing/adding-staking-products/index.md b/public/content/translations/fr/contributing/adding-staking-products/index.md similarity index 100% rename from src/content/translations/fr/contributing/adding-staking-products/index.md rename to public/content/translations/fr/contributing/adding-staking-products/index.md diff --git a/src/content/translations/fr/contributing/adding-wallets/index.md b/public/content/translations/fr/contributing/adding-wallets/index.md similarity index 100% rename from src/content/translations/fr/contributing/adding-wallets/index.md rename to public/content/translations/fr/contributing/adding-wallets/index.md diff --git a/src/content/translations/fr/contributing/content-resources/index.md b/public/content/translations/fr/contributing/content-resources/index.md similarity index 100% rename from src/content/translations/fr/contributing/content-resources/index.md rename to public/content/translations/fr/contributing/content-resources/index.md diff --git a/src/content/translations/fr/contributing/design-principles/index.md b/public/content/translations/fr/contributing/design-principles/index.md similarity index 100% rename from src/content/translations/fr/contributing/design-principles/index.md rename to public/content/translations/fr/contributing/design-principles/index.md diff --git a/src/content/translations/fr/contributing/design/adding-design-resources/index.md b/public/content/translations/fr/contributing/design/adding-design-resources/index.md similarity index 100% rename from src/content/translations/fr/contributing/design/adding-design-resources/index.md rename to public/content/translations/fr/contributing/design/adding-design-resources/index.md diff --git a/src/content/translations/fr/contributing/design/index.md b/public/content/translations/fr/contributing/design/index.md similarity index 100% rename from src/content/translations/fr/contributing/design/index.md rename to public/content/translations/fr/contributing/design/index.md diff --git a/src/content/translations/fr/contributing/index.md b/public/content/translations/fr/contributing/index.md similarity index 100% rename from src/content/translations/fr/contributing/index.md rename to public/content/translations/fr/contributing/index.md diff --git a/src/content/translations/fr/contributing/quizzes/index.md b/public/content/translations/fr/contributing/quizzes/index.md similarity index 100% rename from src/content/translations/fr/contributing/quizzes/index.md rename to public/content/translations/fr/contributing/quizzes/index.md diff --git a/src/content/translations/fr/contributing/translation-program/faq/index.md b/public/content/translations/fr/contributing/translation-program/faq/index.md similarity index 100% rename from src/content/translations/fr/contributing/translation-program/faq/index.md rename to public/content/translations/fr/contributing/translation-program/faq/index.md diff --git a/src/content/translations/fr/contributing/translation-program/how-to-translate/index.md b/public/content/translations/fr/contributing/translation-program/how-to-translate/index.md similarity index 100% rename from src/content/translations/fr/contributing/translation-program/how-to-translate/index.md rename to public/content/translations/fr/contributing/translation-program/how-to-translate/index.md diff --git a/src/content/translations/fr/contributing/translation-program/index.md b/public/content/translations/fr/contributing/translation-program/index.md similarity index 100% rename from src/content/translations/fr/contributing/translation-program/index.md rename to public/content/translations/fr/contributing/translation-program/index.md diff --git a/src/content/translations/fr/contributing/translation-program/mission-and-vision/index.md b/public/content/translations/fr/contributing/translation-program/mission-and-vision/index.md similarity index 100% rename from src/content/translations/fr/contributing/translation-program/mission-and-vision/index.md rename to public/content/translations/fr/contributing/translation-program/mission-and-vision/index.md diff --git a/src/content/translations/fr/contributing/translation-program/resources/index.md b/public/content/translations/fr/contributing/translation-program/resources/index.md similarity index 100% rename from src/content/translations/fr/contributing/translation-program/resources/index.md rename to public/content/translations/fr/contributing/translation-program/resources/index.md diff --git a/public/content/translations/fr/contributing/translation-program/translators-guide/index.md b/public/content/translations/fr/contributing/translation-program/translators-guide/index.md new file mode 100644 index 00000000000..cf24ac277a5 --- /dev/null +++ b/public/content/translations/fr/contributing/translation-program/translators-guide/index.md @@ -0,0 +1,293 @@ +--- +title: Guide à l'intention des traducteurs +lang: fr +description: Instructions et conseils pour les traducteurs d'ethereum.org +--- + +# Guide de style pour la traduction d'ethereum.org {#style-guide} + +Le guide de style pour la traduction d'ethereum.org contient les principales recommandations, directives et astuces pour ceux qui nous aident à traduire le site. + +Ce document sert de guide général et n'est spécifique à aucune langue. + +Si vous avez des questions, des suggestions ou des commentaires, n'hésitez pas à nous contacter à l'adresse translations@ethereum.org, à envoyer un message à @ethdotorg sur Crowdin ou à [rejoindre notre serveur Discord](https://discord.gg/ethereum-org), où vous pourrez nous envoyer un message dans le salon #translations ou contacter l'un des membres de l'équipe. + +## Utiliser Crowdin {#using-crowdin} + +Vous pouvez trouver les instructions de base pour rejoindre le projet sur Crowdin et sur l'utilisation de l'éditeur en ligne de la plateforme sur la [page du programme de traduction](/contributing/translation-program/#how-to-translate). + +Si vous souhaitez en savoir plus sur Crowdin et sur certaines de ses fonctionnalités avancées, la [base de connaissances de Crowdin](https://support.crowdin.com/online-editor/) contient de nombreux guides approfondis et des aperçus de toutes les fonctionnalités de Crowdin. + +## Capturer l'essence du message {#capturing-the-essence} + +Lors de la traduction du contenu d'ethereum.org, évitez les traductions littérales. + +Les traductions doivent capturer l'essence du message. Cela peut impliquer de reformuler certaines phrases ou d'utiliser des traductions descriptives plutôt que de traduire le contenu mot à mot. + +Chaque langue a ses règles grammaticales, ses conventions et sa syntaxe. Lors de la traduction, gardez à l'esprit la manière dont les phrases sont structurées dans la langue de destination et évitez de traduire littéralement la source anglaise, car cela peut conduire à une structure de phrase et une lisibilité de faible qualité. + +Au lieu de traduire le texte original mot pour mot, il est recommandé de lire la phrase entière et de l'adapter aux conventions de la langue de destination. + +## Formel vs. informel {#formal-vs-informal} + +Nous utilisons la forme formelle (le vouvoiement), car elle est toujours polie et appropriée pour tous les visiteurs. + +La forme formelle nous évite de paraître non officiels ou offensants et fonctionne quels que soient l'âge et le sexe du visiteur. + +À la deuxième personne, la plupart des langues indo-européennes et afro-asiatiques utilisent des pronoms personnels spécifiques au sexe, qui distinguent les hommes et les femmes. Lorsque nous nous adressons à l'utilisateur ou que nous utilisons un pronom possessif, nous pouvons éviter de supposer le sexe du visiteur avec la forme formelle, étant donné qu'elle est généralement applicable et cohérente, quelle que soit la façon dont il s'identifie. + +## Signification et vocabulaire simples et clairs {#simple-vocabulary} + +Notre objectif est de rendre le contenu du site accessible au plus grand nombre de personnes possible. + +La plupart du temps, il suffit d'utiliser des mots courts et simples qui sont faciles à comprendre. S'il y a plusieurs traductions possibles pour un certain mot, le meilleur choix sera souvent le mot le plus court reflétant clairement le sens. + +## Système d'écriture {#writing-system} + +Ethereum.org est disponible en plusieurs langues qui utilisent des systèmes d'écriture (ou des scripts) différents du système latin. + +Tout le contenu doit alors être traduit en utilisant le système d'écriture de votre langue et ne doit pas inclure de mots écrits en caractères latins. + +Lors de la traduction du contenu, vous devez vous assurer que les traductions sont cohérentes et n'incluent pas de caractères latins. + +Une idée reçue courante voudrait qu'« Ethereum » soit toujours écrit en latin. C'est généralement incorrect. Veuillez utiliser l'orthographe d'« Ethereum » native dans votre langue (ex : 以太坊 en chinois, إيثيريوم en arabe, etc.). + +**Ceci ne s'applique pas aux langues au sein desquelles il existe une règle proscrivant la traduction des noms propres.** + +## Traduction des métadonnées de la page {#translating-metadata} + +Certaines pages contiennent des métadonnées comme « title », « lang », « description », « sidebar », etc. + +Nous « cachons » le contenu que les traducteurs ne doivent jamais traduire lors du chargement de nouvelles pages sur Crowdin, ce qui signifie que toutes les métadonnées visibles aux traducteurs dans Crowdin doivent être traduites. + +Soyez particulièrement attentif lorsque vous traduisez des chaînes où le texte source est « en ». Ce texte indique la langue dans laquelle la page est disponible et doit donc être traduit par le [code de langue ISO correspondant à votre langue](https://www.andiamo.co.uk/resources/iso-language-codes/). Ces chaînes de caractères doivent toujours être traduites en utilisant des caractères latins, et non le script natif de la langue cible. + +Si vous n'êtes pas certain du code de langue à utiliser, vous pouvez vérifier la mémoire de traduction dans Crowdin ou trouver le code de votre langue dans l'URL de la page dans l'éditeur en ligne Crowdin. + +Voici quelques exemples de codes de langue pour les langues les plus parlées : + +- Arabe - ar +- Chinois simplifié - zh +- Français - fr +- Hindi - hi +- Espagnol - es + +## Titres des articles externes {#external-articles} + +Certaines chaînes de caractères contiennent des titres d'articles externes. La plupart de nos pages de documentation pour développeurs contiennent des liens vers des articles externes pour de plus amples détails. Les chaînes de caractères contenant les titres des articles doivent être traduites, quelle que soit la langue de l'article, afin d'assurer une expérience utilisateur plus cohérente pour les visiteurs qui consultent la page dans leur langue. + +Pour vous aider à les repérer, vous trouverez ci-dessous quelques exemples de ces chaînes (les liens vers les articles se trouvent principalement en bas de ces pages, dans la section « Further reading » [Lectures complémentaires]) : + +![Titres des articles dans sidebar.png](./article-titles-in-sidebar.png) ![Titres des articles dans editor.png](./article-titles-in-editor.png) + +## Avertissements Crowdin {#crowdin-warnings} + +Crowdin a une fonctionnalité intégrée qui avertit les traducteurs lorsqu'ils sont sur le point de faire une erreur. Crowdin vous en avertira automatiquement avant d'enregistrer votre traduction si vous oubliez d'inclure une balise de la source, de traduire des éléments qui ne devraient pas être traduits, d'ajouter plusieurs espaces consécutifs, d'oublier la ponctuation de fin, etc. Si un tel avertissement s'affiche, veuillez revenir en arrière et vérifier la traduction proposée. + +**N'ignorez jamais ces avertissements, car ils signifient généralement que quelque chose ne va pas ou qu'il manque un élément essentiel du texte source dans la traduction.** + +Voici un exemple d'avertissement Crowdin lorsque vous oubliez d'ajouter une balise à votre traduction : ![Exemple d'un avertissement dans Crowdin](./crowdin-warning-example.png) + +## Gérer les balises et les extraits de code {#dealing-with-tags} + +Une grande partie du contenu de la source contient des balises et des variables, surlignées en jaune dans l'éditeur Crowdin. Elles remplissent différentes fonctions et doivent être utilisées correctement. + +**Paramètres de Crowdin** + +Pour faciliter la gestion des tags et les copier directement à partir de la source, nous vous recommandons de modifier vos paramètres dans l'éditeur Crowdin. + +1. Ouvrez les paramètres de l'éditeur ![Comment ouvrir les paramètres de l'éditeur](./editor-settings.png) + +2. Allez à la section 'Affichage des tags HTML' + +3. Sélectionnez 'Masquer' ![Veuillez sélectionner 'Masquer'](./hide-tags.png) + +4. Cliquez sur 'Enregistrer' + +En sélectionnant cette option, le texte du tag complet ne sera plus affiché et sera remplacé par un nombre. Lors de la traduction, cliquer sur ce tag copiera automatiquement le tag exact dans le champ de traduction. + +**Liens** + +Vous pouvez remarquer des liens complets vers des pages d'ethereum.org ou d'autres sites web. + +Ceux-ci doivent rester identiques à la source sans changement ni traduction. Si vous traduisez un lien ou le modifiez d'une manière ou d'une autre, même uniquement en supprimant une partie de celui-ci, comme un slash (/), cela va casser les liens et les rendre inutilisables. + +La meilleure façon de gérer les liens est de les copier directement à partir de la source, soit en cliquant dessus, soit en utilisant le bouton « Copy Source » (Copier la source) (Alt+C). + +![Exemple de lien.png](./example-of-link.png) + +Les liens apparaissent également dans le texte source sous la forme de balises (c'est-à-dire <0> ). Si vous survolez la balise, l'éditeur affichera son véritable contenu. Parfois, ces balises désigneront des liens. + +Il est très important de copier les liens depuis le texte source et de ne pas modifier l'ordre des balises. + +Si l'ordre des balises est changé, le lien qu'elles représentent sera cassé. + +![Exemple de liens à l'intérieur de balises.png](./example-of-links-inside-tags.png) + +**Balises et variables** + +Le texte source contient de nombreux types de balises différentes, qui doivent toujours être copiées depuis la source et ne pas être modifiées. Comme expliqué plus haut, l'ordre des balises dans la traduction devrait également être le même que dans le texte source. + +Les balises comprennent toujours une balise ouvrante et une balise fermante. Et en général, le texte compris entre les deux balises doit être traduit. + +Exemple : ``Décentralisé`` + +`` - _Balise ouvrante qui fait apparaître le texte en gras_ + +Décentralisé - _Texte à traduire_ + +`` - _Balise fermante_ + +![Exemple de balises strong.png](./example-of-strong-tags.png) + +Les extraits de code doivent être abordés légèrement différemment des autres balises, car ils contiennent du code qui ne doit pas être traduit. + +Exemple : ``nonce`` + +`` - _Balise ouvrante, qui contient un extrait de code_ + +nonce - _Texte non traduisible_ + +`` - _Balise fermante_ + +![Exemple d'extraits de code.png](./example-of-code-snippets.png) + +Le texte source contient aussi des balises raccourcies. Elles contiennent uniquement des chiffres et leur fonction n'est donc pas directement identifiable. Vous pouvez survoler ces balises pour voir exactement ce à quoi elles servent. + +Dans l'exemple ci-dessous, vous pouvez voir que survoler la balise <0> nous permet de savoir qu'elle désigne en fait une balise `` et qu'elle contient un extrait de code. Le contenu de ces balises ne doit donc pas être traduit. + +![Exemple de balises ambiguës.png](./example-of-ambiguous-tags.png) + +## Formes courtes, formes complètes et abréviations {#short-vs-full-forms} + +De nombreuses abréviations sont utilisées sur le site, comme dApps, NFT, DAO, DeFi, etc. Ces abréviations sont couramment utilisées en anglais et les visiteurs du site web les connaissent généralement. + +Étant donné qu'elles n'ont souvent pas de traduction établie dans les autres langues, la meilleure façon d'adapter ces termes (ainsi que les termes qui gravitent autour) est de fournir une traduction descriptive de leur forme complète, puis d'ajouter l'abréviation entre parenthèses. + +Ne traduisez pas ces abréviations, car la plupart des gens ne les connaissent pas et les versions traduites n'auraient pas vraiment de sens pour la plupart des visiteurs. + +Exemple de la manière de traduire « dApps » : + +- Applications décentralisées (dApps) → _Forme complète traduite (abréviation anglaise entre parenthèses)_ + +## Termes sans traduction établie {#terms-without-established-translations} + +Certains termes peuvent ne pas avoir de traduction bien définie dans les autres langues et être largement connus sous leur forme anglaise. Ces termes incluent principalement des concepts récents, comme proof-of-work, proof-of-stake, Beacon Chain, staking, etc. + +La traduction de ces termes peut sembler peu naturelle, mais puisque la version anglaise est également couramment utilisée dans d'autres langues, il est fortement recommandé de les traduire. + +Lorsque vous traduisez ces termes, soyez créatifs, utilisez des traductions descriptives ou alors traduisez-les littéralement. + +**Le fait de traduire ces termes, plutôt que de les laisser en anglais, permettra à cette nouvelle terminologie de se généraliser à l'avenir, à mesure que de plus en plus de personnes utiliseront Ethereum et les technologies associées. Si nous voulons faire connaître ce domaine à plus de personnes à travers le monde, nous devons fournir une terminologie compréhensible dans un maximum de langues, quitte à la créer nous-mêmes.** + +## Boutons et appels à l'action (CTA) {#buttons-and-ctas} + +Le site contient de nombreux boutons, qui doivent être traduits différemment des autres contenus. + +Vous pouvez repérer un bouton et son contenu en visualisant les captures d'écran contextuelles, fournies avec la plupart des textes sources, ou bien en regardant le contexte de l'éditeur, qui inclura le terme « button » (bouton). + +Les traductions des boutons doivent être aussi courtes que possible pour éviter les problèmes de mise en forme. En outre, la traduction des boutons doit être impérative, c'est-à-dire exprimer un ordre ou une demande. + +![Comment repérer un bouton.png](./how-to-find-a-button.png) + +## Traduire de manière inclusive {#translating-for-inclusivity} + +Les visiteurs d'ethereum.org viennent de partout dans le monde et d'horizons différents. Le langage du site web devrait donc être neutre, accueillant pour tout le monde et inclusif. + +La neutralité de genre est un aspect important de cette démarche. Dans cette optique, préférez un langage formel lorsque vous vous adressez au visiteur, en évitant d'utiliser des termes genrés dans les traductions. + +Une autre forme d'inclusivité consiste à faire en sorte que la traduction s'adresse à un public mondial, et pas spécifiquement à un pays, une ethnie ou une région du monde. + +Enfin, le langage doit être adapté à tous les publics et tous les âges. + +## Traductions spécifiques à une langue {#language-specific-translations} + +Lors de la traduction, plutôt que de calquer simplement la source, il est important de suivre les règles de grammaire, les conventions et le formatage en vigueur dans votre langue. Le texte source suit les règles et conventions de la grammaire anglaise, qui ne sont pas applicables dans beaucoup d'autres langues. + +Vous devez donc avoir les règles de votre langue en tête afin de traduire correctement. Si vous avez besoin d'aide pour traduire certains éléments, contactez-nous et nous vous aiderons à trouver des ressources sur la façon dont ils doivent être adaptés à votre langue. + +Voici quelques exemples de ce à quoi vous devrez faire attention : + +### Ponctuation et mise en forme {#punctuation-and-formatting} + +**Majuscules** + +- Il existe de grandes différences entre les langues sur la façon d'utiliser les lettres majuscules. +- En anglais, il est courant de mettre en majuscule sur la première lettre de tous les mots contenus dans les titres, les noms, les mois, les jours, le nom des langues, les jours fériés, etc. Dans de nombreuses autres langues, c'est grammaticalement incorrect, car les règles sont différentes. +- Certaines langues ont aussi des règles sur la mise en majuscule des pronoms personnels, des noms communs et de certains adjectifs, qui ne portent pas de majuscule en anglais. + +**Espaces** + +- Les règles orthographiques définissent l'utilisation des espaces pour chaque langue. Ces règles sont souvent très spécifiques, et parce que les espaces sont utilisés partout, ils sont parmi les éléments les plus mal traduits. +- Voici quelques différences d'espacement fréquentes entre l'anglais et d'autres langues : + - Espace avant les unités de mesure et les devises (ex. USD, EUR, kB, MB) + - Espace avant le signe de degré (ex. °C, ℉) + - Espace avant certains signes de ponctuation, notamment l'ellipse (…) + - Espace avant et après les barres obliques (/) + +**Listes** + +- Chaque langue possède un ensemble de règles diverses et variées pour la rédaction des listes. Elles peuvent différer considérablement de l'anglais. +- Dans certaines langues, le premier mot de chaque nouvelle ligne doit avoir sa première lettre en majuscule, tandis que dans d'autres langues, les nouvelles lignes doivent commencer par une lettre minuscule. Plusieurs langues ont aussi différentes règles sur la présence de majuscule en début de ligne, en fonction de la longueur de celle-ci. +- Il en va de même pour la ponctuation en fin de ligne. Cela peut être un point (**.**), une virgule (**,**) ou un point-virgule (**;**), en fonction de la langue. + +**Guillemets** + +- Certaines langues utilisent différents signes pour les guillemets. Il est souvent incorrect de se contenter de recopier les guillemets anglais. +- Parmi les types de guillemets les plus courants, figurent : + - „texte d'exemple“ + - ‚texte d'exemple’ + - »texte d'exemple« + - “texte d'exemple” + - ‘texte d'exemple’ + - «texte d'exemple» + +**Tirets et traits d'union** + +- En anglais, le trait d'union (-) est utilisé pour joindre des mots ou différentes parties d'un mot, tandis que le tiret (–) est utilisé pour indiquer un intervalle ou une pause. +- Beaucoup de langues ont des règles différentes concernant les tirets et les traits d'union qui doivent être respectées. + +### Formats {#formats} + +**Nombres** + +- La principale différence entre les langues concernant les nombres écrits est le séparateur utilisé pour les nombres décimaux et celui des milliers. Pour les milliers, cela peut être un point, une virgule ou une espace. De la même manière, certaines langues utilisent un point pour les nombres décimaux, tandis que d'autres utilisent une virgule. + - Voici quelques exemples de grands nombres : + - Anglais – **1,000.50** + - Espagnol – **1.000,50** + - Français – **1 000,50** +- Une autre chose à prendre en considération lors de la traduction de nombres est le signe pourcentage. Il peut être écrit de différentes manières : **100%**, **100 %** ou encore **%100**. +- Enfin, les nombres négatifs peuvent aussi s'afficher différemment en fonction de la langue : -100, 100-, (100) ou [100]. + +**Dates** + +- Lors de la traduction des dates, il y a un certain nombre de différences à prendre en compte, en fonction de la langue. Il s'agit par exemple du format de date, du séparateur, de la présence de majuscules ou encore des zéros initiaux. Il y a aussi des différences entre les dates complètes et les dates numériques. + - Voici quelques exemples de différents formats de date : + - Anglais UK (jj/mm/aaaa) – 1er janvier 2022 + - Anglais US (mm/jj/aaaa) – janvier 1, 2022 + - Chinois (aaaa-mm-jj) – 2022 年 1 月 1 日 + - Français (jj/mm/aaaa) – 1er janvier 2022 + - Italien (jj/mm/aaaa) – 1º gennaio 2022 + - Allemand (jj/mm/aaaa) – 1. Januar 2022 + +**Devises** + +- Traduire des devises peut s'avérer difficile, en raison des différences de formats, de conventions et de conversions. En règle générale, veuillez garder la même devise que la source. Dans l'intérêt du lecteur, vous pouvez éventuellement ajouter votre devise locale ainsi que la conversion entre parenthèses. +- Les principales différences qui existent lors de l'écriture des devises dans différentes langues sont le placement des symboles, les virgules décimales par rapport aux points décimaux, l'espacement et les abréviations par rapport aux symboles. + - Emplacement du symbole : $100 ou 100$ + - Virgule décimale ou point décimal : 100,50$ ou 100.50$ + - Espacement : 100$ ou 100 $ + - Abréviation ou symbole : 100 $ ou 100 USD + +**Unités de mesure** + +- En règle générale, veuillez garder la même unité de mesure que dans le texte source. Si votre pays utilise un autre système, vous pouvez inclure la conversion entre parenthèses. +- Outre la localisation des unités de mesure, il est également important de tenir compte des différences dans la façon dont les langues abordent ces unités. La différence principale est l'espacement entre le nombre et l'unité, qui peut différer selon la langue. Par exemple, on observe cette différence entre 100kB, 100 kB, 50ºF et 50 ºF. + +## Conclusion {#conclusion} + +Traduire ethereum.org constitue une excellente occasion de découvrir les différents aspects d'Ethereum. + +Lors de la traduction, essayez de ne pas vous précipiter. Prenez votre temps et faites-vous plaisir ! + +Merci pour votre participation au programme de traduction et de nous aider à rendre le site accessible à un public plus large. La communauté Ethereum est internationale, et nous sommes heureux que vous en fassiez partie ! diff --git a/public/content/translations/fr/dao/index.md b/public/content/translations/fr/dao/index.md new file mode 100644 index 00000000000..b9c0dc50b6c --- /dev/null +++ b/public/content/translations/fr/dao/index.md @@ -0,0 +1,165 @@ +--- +title: Organisation autonome décentralisée (DAO) +description: Un aperçu des DAO sur Ethereum +lang: fr +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: Une représentation d'une DAO qui vote une proposition. +summaryPoint1: Des communautés appartenant à leurs membres sans pouvoir centralisé. +summaryPoint2: Un moyen sûr de collaborer avec des étrangers sur Internet. +summaryPoint3: Un endroit sûr pour engager des fonds pour une cause précise. +--- + +## Que sont les DAO ? {#what-are-daos} + +Une DAO est une organisation collectivement gérée par la blockchain et qui travaille à une mission partagée. + +Les DAO nous permettent de travailler avec des personnes partageant le même état d'esprit et dans le monde entier, sans pour autant faire confiance à un dirigeant bienveillant pour gérer les fonds ou les opérations. Il n'y a pas de Directeur Général qui puisse dépenser des fonds sur un caprice ou un Chef de la direction financière capable de manipuler les registres. Au lieu de cela, les règles basées sur la blockchain ont été intégrées dans le code et définissent comment fonctionne l'organisation et comment les fonds sont dépensés. + +Elles possèdent une trésorerie intégrée à laquelle personne ne peut accéder sans l'accord du groupe. Les décisions sont régies par des propositions et des votes pour s'assurer que tout le monde au sein de l'organisation a une voix et que tout se passe de manière transparente sur la chaîne. + +## Pourquoi avons-nous besoin des DAO ? {#why-dao} + +Créer une organisation avec quelqu'un qui injecte des fonds et de l'argent exige une grande confiance dans les personnes avec lesquelles vous travaillez. Mais il est difficile de faire confiance à une personne avec laquelle vous n’avez interagi que sur Internet. Avec les DAO, vous n'avez pas besoin de faire confiance à quelqu'un dans le groupe, juste au code de la DAO, qui est 100 % transparent et vérifiable par n'importe qui. + +Cela ouvre énormément de nouvelles possibilités de collaboration et de coordination au niveau mondial. + +### Une comparaison {#dao-comparison} + +| DAO | Organisation traditionnelle | +| --------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | +| Habituellement fixe, et pleinement démocratisée. | Généralement hiérarchique. | +| Vote requis par les membres pour que tout changement soit mis en œuvre. | Selon la structure, des changements peuvent être demandés par une seule personne et le vote peut être biaisé. | +| Votes comptabilisés et résultats mis en œuvre automatiquement sans intermédiaire de confiance. | Si les votes sont proposés, ils sont calculés en interne et les résultats des votes doivent être traités manuellement. | +| Les services offerts sont gérés automatiquement de manière décentralisée (par exemple la distribution de fonds philanthropiques). | Nécessite une manipulation humaine ou une automatisation centralisée sujette à la manipulation. | +| Toutes les activités sont transparentes et entièrement publiques. | L'activité est généralement privée et limitée au public. | + +### Exemples de DAO {#dao-examples} + +Pour aider votre compréhension, voici quelques exemples de la façon dont vous pourriez utiliser une DAO : + +- Un organisme caritatif – vous pouvez accepter les dons de n'importe qui dans le monde entier et voter pour les causes à financer. +- Propriété collective – vous pouvez acheter des actifs physiques ou numériques et les membres peuvent voter sur la façon de les utiliser. +- Ventures et subventions – vous pourriez créer un fonds de risque qui regroupe le capital d’investissement et qui votera pour savoir quelles les entreprises garder. L'argent perçu pourra plus tard être redistribué entre les membres de la DAO. + +## Comment fonctionnent les DAO ? {#how-daos-work} + +La colonne vertébrale d'une DAO est son contrat intelligent, qui définit les règles de l'organisation et détient la trésorerie du groupe. Une fois que le contrat est en vigueur sur Ethereum, personne ne peut modifier les règles autrement que par un vote. Si quelqu'un essaie de faire quelque chose qui n'est pas couvert par les règles et la logique dans le code, il échouera. Et, comme la trésorerie est également définie par le contrat intelligent, personne ne peut dépenser l'argent sans l'approbation du groupe. Cela signifie que les DAO n'ont pas besoin d'une autorité centrale. Au lieu de cela, le groupe prend des décisions collectives et les paiements sont autorisés automatiquement lorsque les votes sont passés. + +Ceci est possible parce que les contrats intelligents sont étanches à toute intrusion dès qu'ils sont mis en service sur Ethereum. Vous ne pouvez pas simplement modifier le code (les règles DAO) sans que les gens le remarquent puisque tout est public. + + + En savoir plus sur les contrats intelligents + + +## Ethereum et DAO {#ethereum-and-daos} + +Ethereum est une base parfaite pour les DAOs pour plusieurs raisons : + +- Le consensus propre à Ethereum est suffisamment distribué et établi pour que les organisations fassent confiance au réseau. +- Le code du contrat intelligent ne peut pas être modifié une fois en direct, même par ses propriétaires. Cela permet à la DAO de fonctionner selon les règles avec lesquelles elle a été programmée. +- Les contrats intelligents peuvent envoyer/recevoir des fonds. Sans cela, vous aurez besoin d'un intermédiaire de confiance pour gérer les fonds de groupe. +- La communauté Ethereum s'est révélée plus coopérative que compétitive, permettant ainsi l'émergence de pratiques exemplaires dotés d'une grande vitesse de développement. + +## Gouvernance de DAO {#dao-governance} + +Il existe de nombreuses considérations à prendre en compte au moment de gouverner une DAO, comme le fonctionnement du vote et des propositions. + +### Délégation {#governance-delegation} + +La délégation est la version DAO de la démocratie représentative. Les détenteurs de jetons délèguent des votes aux utilisateurs qui se désignent et s'engagent à gérer le protocole et à rester informés. + +#### Un exemple célèbre {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) – Les détenteurs d'ENS peuvent déléguer leurs votes à des membres de la communauté engagés pour les représenter. + +### Gouvernance automatique des transactions {#governance-example} + +Dans de nombreuse DAO, les transactions seront automatiquement exécutées si le quorum des membres vote par l'affirmative. + +#### Un exemple célèbre {#governance-example} + +[Nouns](https://nouns.wtf) – Dans Nouns DAO, une transaction est automatiquement exécutée si un quorum de votes est atteint et qu'une majorité vote par l'affirmative, tant qu'elle ne fait pas l'objet d'un véto de la part des fondateurs. + +### Gouvernance Multisig {#governance-example} + +Tandis que les DAO peuvent avoir des milliers de membres votants, les fonds peuvent se trouver dans un portefeuille partagé par 5 à 20 membres actifs de la communauté qui sont dignes de confiance et généralement doxxés (identités publiques connues de la communauté). Après un vote, les signataires multisig exécutent la volonté de la communauté. + +## Les lois des DAO {#dao-laws} + +En 1977, le Wyoming a créé la LLC, qui protège les entrepreneurs et limite leur responsabilité. Plus récemment, ils ont été les pionniers de la loi pour les DAO qui établit un statut juridique pour les DAO. Actuellement, le Wyoming, le Vermont et les Iles Vierges ont des lois portant sur les DAO sous une forme ou une autre. + +### Un exemple célèbre {#law-example} + +[CityDAO](https://citydao.io) - CityDAO s'est servi de la loi DAO du Wyoming pour acheter 40 acres de terrain près du parc national de Yellowstone. + +## Adhésion à la DAO {#dao-membership} + +Il existe différents modèles pour adhérer à une DAO. L'adhésion peut déterminer comment fonctionne le vote et d'autres éléments clés de la DAO. + +### Adhésion basée sur des jetons {#token-based-membership} + +Habituellement cela se fait totalement sans permission, seulement en fonction du jeton utilisé. La plupart de ces jetons de gouvernance peuvent être échangés sans permission sur un échange décentralisé. D’autres doivent être gagnés en fournissant des liquidités ou une autre « preuve de travail ». Quoi qu’il en soit, il suffit de détenir le jeton pour donner accès au vote. + +_Généralement, cela est utilisé pour régir des protocoles décentralisés et/ou des jetons eux-mêmes._ + +#### Un exemple célèbre {#token-example} + +[MakerDAO](https://makerdao.com) – Le jeton MKR de MakerDAO est largement disponible sur les échanges décentralisés et tout le monde peut acheter un droit de vote sur le futur du protocole Maker. + +### Adhésion basée sur les actions {#share-based-membership} + +Les DAO basées sur les actions sont davantage soumises à l'autorisation, mais demeurent très ouvertes. Tous les membres potentiels peuvent soumettre une proposition pour rejoindre la DAO, offrant habituellement une contribution d'une certaine valeur sous la forme de jetons ou de travail. Les actions représentent le droit de vote direct et la propriété. Les membres peuvent sortir à tout moment avec leur part proportionnelle de la trésorerie. + +_Habituellement utilisé pour des organisations plus proches et axées sur l’humanité telles que les organismes de bienfaisance, les collectifs de travailleurs et les clubs d’investissement. Cela peut également concerner la gouvernance des protocoles et des jetons._ + +#### Un exemple célèbre {#share-example} + +[MolochDAO](http://molochdao.com/) – MolochDAO se concentre sur le financement de projets Ethereum. Ils requièrent une proposition d’adhésion afin que le groupe puisse évaluer si vous avez l’expertise et le capital nécessaires pour émettre des jugements éclairés sur les bénéficiaires potentiels. Vous ne pouvez pas vous contenter d'acheter l'accès à la DAO sur le marché ouvert. + +### Adhésion basée sur la réputation {#reputation-based-membership} + +Ici, la réputation représente une preuve de participation et accorde le droit de vote dans la DAO. Contrairement à une adhésion basée sur des jetons ou sur les actions, les DAO basées sur la réputation ne transfèrent pas la propriété aux contributeurs. En effet, la réputation ne peut pas être achetée, transférée ou déléguée  ; les membres de la DAO doivent mériter leur réputation par la participation. Le vote sur la chaîne est sans permission, les membres potentiels peuvent librement soumettre des propositions pour rejoindre la DAO et demander à recevoir de la réputation et des jetons en guise de récompense en échange de leurs contributions. + +_Habituellement utilisée pour le développement décentralisé et la gouvernance de protocoles et de DApps, cette méthode est également adaptée à divers autres types d'organisations, comme les organismes caritatifs, les collectifs de travailleurs, les clubs d'investissement, etc._ + +#### Un exemple célèbre {#reputation-example} + +[DXdao](https://DXdao.eth.link) – DXdao est une construction collective mondiale souveraine et régit les protocoles et applications décentralisés depuis 2019. Il tire parti de la gouvernance basée sur la réputation et du consensus holographique pour coordonner et gérer les fonds, ce qui signifie que personne ne peut acheter son entrée pour influencer son avenir. + +## Rejoindre/démarrer une DAO {#join-start-a-dao} + +### Rejoindre une organisation autonome décentralisée (DAO) {#join-a-dao} + +- [DAO de la communauté Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [Liste des DAO de DAOHauss](https://app.daohaus.club/explore) +- [Liste des DAO Tally.xyz](https://www.tally.xyz) + +### Démarrer une DAO {#start-a-dao} + +- [Invoquer une DAO avec DAOHaus](https://app.daohaus.club/summon) +- [Lancer une Governor DAO avec Tally](https://www.tally.xyz/add-a-dao) +- [Créer une DAO propulsée par Aragon](https://aragon.org/product) +- [Lancer une colonie](https://colony.io/) +- [Créer une DAO avec le consensus holographique de DAOstack](https://alchemy.daostack.io/daos/create) + +## Complément d'information {#further-reading} + +### Articles DAO {#dao-articles} + +- [Qu'est-ce qu'une DAO ?](https://aragon.org/dao) – [Aragon](https://aragon.org/) +- [Le Manuel DAO](https://daohandbook.xyz) +- [La maison des DAOs](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) +- [Qu'est-ce qu'une DAO et à quoi sert-elle ?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) +- [Comment démarrer une communauté numérique DAO](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) +- [Qu'est-ce qu'une DAO ?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) +- [Qu'est-ce que le Consensus holographique ?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) +- [Les DAO ne sont pas des entreprises : là où la décentralisation dans les organisations autonomes compte, par Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) +- [DAO, DAC, DA et plus : un guide terminologique incomplet](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Blog Ethereum](https://blog.ethereum.org) + +### Vidéos {#videos} + +- [Qu'est-ce qu'une DAO en cryptomonnaie ?](https://youtu.be/KHm0uUPqmVE) +- [Une DAO peut-elle bâtir une ville ?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/public/content/translations/fr/decentralized-identity/index.md b/public/content/translations/fr/decentralized-identity/index.md new file mode 100644 index 00000000000..553ae11a3e3 --- /dev/null +++ b/public/content/translations/fr/decentralized-identity/index.md @@ -0,0 +1,188 @@ +--- +title: Identité décentralisée +description: Qu’est-ce que l’identité décentralisée et pourquoi est-ce important ? +lang: fr +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: /eth-gif-cat.png +summaryPoint1: Les systèmes traditionnels d'identité centralisent l'émission, le maintien et le contrôle de vos identifiants. +summaryPoint2: L'identité décentralisée supprime la dépendance à l'égard de tiers centralisés. +summaryPoint3: Grâce à la crypto, les utilisateurs ont maintenant les outils pour émettre, conserver et contrôler à nouveau leurs propres identifiants et attestations. +--- + +L'identité sous-tend pratiquement tous les aspects de votre vie aujourd'hui. Utiliser les services en ligne, ouvrir un compte bancaire, voter aux élections, acheter des biens, en assurant l’emploi, tout cela nécessite de prouver votre identité. + +Cependant, les systèmes traditionnels de gestion d'identité reposent depuis longtemps sur des intermédiaires centralisés qui émettent, conservent et contrôlent vos identifiants et vos [attestations](#what-are-attestations). Cela signifie que vous ne pouvez pas contrôler les renseignements relatifs à votre identité ou décider qui a accès à des renseignements personnels identifiables (PII) et quel est le niveau d'accès de ces parties. + +Pour résoudre ces problèmes, nous avons des systèmes d'identité décentralisés construits sur des blockchains publiques comme Ethereum. L'identité décentralisée permet aux individus de gérer les informations relatives à leur identité. Avec des solutions d’identité décentralisées, _vous_ pouvez créer des identifiants et réclamer et détenir vos attestations sans compter sur les autorités centrales, comme les fournisseurs de services ou les gouvernements. + +## Qu'est-ce qu'une identité? {#what-is-identity} + +L'identité signifie le sentiment de soi d'un individu, défini par des caractéristiques uniques. L'identité désigne le fait d'être un _individu_, c'est-à-dire une entité humaine distincte. L'identité pourrait également se référer à d'autres entités non humaines, comme une organisation ou une autorité. + +## Que sont les identifiants ? {#what-are-identifiers} + +Un identificateur est une information qui sert de pointeur vers une identité particulière ou des identités. Les identifiants communs comprennent : + +- Nom +- Numéro de sécurité sociale/numéro d'identification fiscale +- Téléphone portable +- Date et lieu de naissance +- Identifiants numérique, par exemple les adresses e-mail, les noms d'utilisateur, les avatars + +Ces exemples traditionnels d’identifiants sont publiés, détenus et contrôlés par des entités centrales. Vous avez besoin de la permission de votre gouvernement pour changer votre nom ou de celle d'une plateforme de médias sociaux pour changer de poignée. + +## Que sont les attestations ? {#what-are-attestations} + +Une attestation est une déclaration faite par une entité sur une autre entité. Si vous vivez aux États-Unis, le permis de conduire qui vous a été délivré par le Department of Motor Vehicles (ministère des véhicules à moteur) (une entité) atteste que vous (une autre entité) êtes légalement autorisé à conduire une voiture. + +Les attestations sont différentes des identifiants. Une attestation \_contient_des identifiants pour référencer une identité particulière et émet une revendication à propos d'un attribut lié à cette identité. Ainsi, votre permis de conduire a des identifiants (nom, date de naissance, adresse) mais est aussi l'attestation de votre droit légal de conduire. + +### Que sont les identifiants décentralisés ? {#what-are-decentralized-identifiers} + +Les identificateurs traditionnels comme votre nom légal ou votre adresse de courriel dépendent de tierces parties – gouvernements et fournisseurs de courriel. Les identifiants décentralisés (DID) sont différents : ils ne sont pas délivrés, gérés ou contrôlés par une quelconque entité centrale. + +Des identifiants décentralisés sont émis, conservés et contrôlés par des individus. Un compte [Ethereum](/developers/docs/accounts/) est un exemple d'identifiant décentralisé. Vous pouvez créer autant de comptes que vous le souhaitez sans permission de personne et sans avoir à les stocker dans un registre central. + +Les identifiants décentralisés sont stockés sur des registres distribués (blockchains) ou sur des réseaux de pair-à-pair. Cela rend les DID [mondialement uniques, solubles avec une haute disponibilité, et vérifiables cryptographiquement](https://w3c-ccg.github.io/did-primer/). Un identifiant décentralisé peut être associé à différentes entités, y compris les personnes, les organisations ou les institutions gouvernementales. + +## Qu'est-ce qui rend possible les identifiants décentralisés ? {#what-makes-decentralized-identifiers-possible} + +### 1. Infrastructure à clé publique (ICP) {#public-key-infrastructure} + +L'infrastructure à clé publique (ICP) est une mesure de sécurité de l'information qui génère une [clé publique](/glossary/#public-key) et une [clé privée](/glossary/#private-key) pour une entité. La cryptographie à clé publique est utilisée dans les réseaux blockchain pour authentifier l'identité des utilisateurs et prouver la propriété des actifs numériques. + +Certains identifiants décentralisés, tels qu'un compte Ethereum, possèdent des clés publiques et privées. La clé publique identifie le contrôleur du compte, tandis que les clés privées peuvent signer et déchiffrer les messages pour ce compte. L'ICP fournit les preuves nécessaires pour authentifier les entités et empêcher l'usurpation d'identité et l'utilisation de fausses identités, en utilisant [des signatures cryptographiques](https://andersbrownworth.com/blockchain/public-private-keys/) pour vérifier toutes les demandes. + +### 2. Stockage de données décentralisé {#decentralized-datastores} + +Une blockchain sert de registre de données vérifiable : un registre d'informations ouvert, dénué de confiance et décentralisé. L'existence de blockchains publiques élimine la nécessité de stocker des identifiants dans des registres centralisés. + +Si quelqu'un a besoin de confirmer la validité d'un identifiant décentralisé, il peut consulter la clé publique associée sur la blockchain. Cela diffère des identifiants traditionnels qui nécessitent l'authentification par des tiers. + +## Comment les identifiants et les attestations décentralisés permettent-ils une identité décentralisée ? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} + +L'identité décentralisée est l'idée que les informations liées à l'identité doivent être autocontrôlées, privées et portables, les identifiants et les attestations décentralisés étant les principaux éléments constitutifs. + +Dans le contexte de l'identité décentralisée, les attestations (également connues sous le nom de [identifiants vérifiables](https://www.w3.org/TR/vc-data-model/)) sont des déclarations infalsifiables et vérifiables par cryptographie faites par l'émetteur. Chaque attestation ou identifiant vérifiable émis par une entité (par exemple, une organisation) est associé à son identité décentralisée (IDD). + +Les IDD étant stockées sur la blockchain, n'importe qui peut vérifier la validité d'une attestation en recoupant l'IDD de l'émetteur sur Ethereum. Essentiellement, la blockchain Ethereum agit comme un répertoire mondial qui permet de vérifier les IDD associées à certaines entités. + +Les identifiants décentralisés sont la raison pour laquelle les attestations sont autocontrôlées et vérifiables. Même si l'émetteur n'existe plus, le détenteur a toujours la preuve de la provenance et de la validité de l'attestation. + +Les identifiants décentralisés sont également essentiels pour protéger la confidentialité des informations personnelles grâce à l'identité décentralisée. Par exemple, si une personne soumet la preuve d'une attestation (un permis de conduire), la partie vérificatrice n'a pas besoin de vérifier la validité des informations contenues dans la preuve. Au lieu de cela, le vérificateur n'a besoin que de garanties cryptographiques de l'authenticité de l'attestation et de l'identité de l'organisation émettrice pour déterminer si la preuve est valide. + +## Types d'attestations dans l'identité décentralisée {#types-of-attestations-in-decentralized-identity} + +La façon dont les informations d'attestation sont stockées et récupérées dans un écosystème d'identité basé sur Ethereum est différente de la gestion d'identité traditionnelle. Voici un aperçu des différentes approches de l'émission, du stockage et de la vérification des attestations dans les systèmes d'identité décentralisés : + +### Attestations hors chaîne {#off-chain-attestations} + +L'une des préoccupations liées au stockage des attestations sur la chaîne est qu'elles peuvent contenir des informations que les personnes souhaitent garder privées. La nature publique de la blockchain Ethereum rend peu attrayant le stockage de telles attestations. + +La solution consiste à délivrer des attestations, détenues par les utilisateurs en dehors de la chaîne dans des portefeuilles numériques, mais signées avec le DID de l'émetteur stocké sur la chaîne. Ces attestations sont encodées en [JSON Web Tokens](https://en.wikipedia.org/wiki/JSON_Web_Token) et contiennent la signature numérique de l'émetteur, ce qui permet une vérification facile des revendications hors chaîne. + +Voici un scénario hypothétique pour expliquer les attestations hors de la chaîne : + +1. Une université (l'émetteur) génère une attestation (un certificat académique numérique), signe avec ses clés et la délivre à Bob (le propriétaire de l'identité). + +2. Bob postule à un emploi et veut apporter la preuve de ses diplômes universitaires à un employeur, il partage donc l'attestation de son portefeuille numérique. L'entreprise (le vérificateur) peut ensuite confirmer la validité de l'attestation en vérifiant le DID de l'émetteur (c'est-à-dire sa clé publique sur Ethereum). + +### Attestations hors chaîne avec accès persistant {#offchain-attestations-with-persistent-access} + +Dans ce cas, les attestations sont transformées en fichiers JSON et stockées hors chaîne ( idéalement sur une plateforme [de stockage cloud décentralisée](/developers/docs/storage/), telle que IPFS ou Swarm). Cependant, un [hachage](/glossary/#hash) du fichier JSON est stocké sur la chaîne et lié à un DID via un registre sur la chaîne. Le DID associé peut être soit celui de l'émetteur de l'attestation, soit celui du destinataire. + +Cette approche permet aux attestations d'obtenir une persistance basée sur la blockchain, tout en conservant les informations relatives aux demandes de remboursement chiffrées et vérifiables. Elle permet également une divulgation sélective puisque le détenteur de la clé privée peut déchiffrer les informations. + +### Attestations sur la chaîne {#onchain-attestations} + +Les attestations sur la chaîne sont détenues dans des [contrats intelligents](/developers/docs/smart-contracts/) sur la blockchain Ethereum. Le contrat intelligent (agissant comme un registre) associera une attestation à un identifiant décentralisé correspondant sur la chaîne (une clé publique). + +Voici un exemple pour montrer comment les attestations sur la chaîne pourraient fonctionner dans la pratique : + +1. Une entreprise (XYZ Corp) prévoit de vendre des parts de propriété à l'aide d'un contrat intelligent, mais ne veut que des acheteurs ayant effectué une vérification des antécédents. + +2. XYZ Corp peut demander à l'entreprise qui effectue les vérifications d'antécédents de délivrer des attestations sur la chaîne Ethereum. Cette attestation certifie qu'une personne a passé la vérification des antécédents sans exposer d'informations personnelles. + +3. Le contrat intelligent qui vend des actions peut vérifier dans le contrat de registre l'identité des acheteurs sélectionnés, ce qui permet au contrat intelligent de déterminer qui est autorisé à acheter des actions ou non. + +### Jetons d'âme et identité {#soulbound} + +[Les jetons d'âme](https://vitalik.ca/general/2022/01/26/soulbound.html) (NFT non transférables) pourraient être utilisés pour collecter des informations propres à un portefeuille spécifique. Cela crée effectivement une identité unique sur la chaîne, liée à une adresse Ethereum particulière, qui peut inclure des jetons représentant des réalisations (par exemple, terminer un cours en ligne spécifique ou atteindre un score seuil dans un jeu) ou la participation à une communauté. + +## Avantages d'une identité décentralisée {#benefits-of-decentralized-identity} + +1. L'identité décentralisée accroît votre contrôle sur vos informations personnelles d'identification. Les identifiants et attestations décentralisés peuvent être vérifiés sans dépendre des autorités centralisées et des services tiers. + +2. Les solutions d'identité décentralisées facilitent la vérification et la gestion de l'identité des utilisateurs de manière fiable, transparente et protègent la vie privée. + +3. L'identité décentralisée exploite la technologie blockchain, qui crée la confiance entre les différentes parties et fournit des garanties cryptographiques pour prouver la validité des attestations. + +4. L'identité décentralisée rend les données d'identité transférables. Les utilisateurs stockent des attestations et des identificateurs dans un portefeuille numérique et peuvent les partager avec n'importe quelle partie de leur choix. Les identifiants et attestations décentralisés ne sont pas verrouillés dans la base de données de l'organisme émetteur. + +5. L'identité décentralisée devrait bien fonctionner avec les technologies émergentes de connaissance zéro qui permettront aux individus de prouver qu'ils possèdent ou ont fait quelque chose sans révéler ce que c'est. Cela pourrait devenir un moyen puissant de combiner confiance et confidentialité pour des applications telles que le vote. + +6. L'identité décentralisée permet aux mécanismes anti-Sybil de détecter lorsqu'un individu se fait passer pour plusieurs autres afin de jouer ou de spammer un système. + +## Cas d'utilisation de l'identité décentralisée {#decentralized-identity-use-cases} + +L'identité décentralisée propose de nombreux cas d'utilisation potentiels : + +### 1. Connexions universelles {#universal-dapp-logins} + +L'identité décentralisée peut aider à remplacer les connexions par mot de passe par une [authentification décentralisée](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). Les fournisseurs de services peuvent délivrer des attestations aux utilisateurs, qui peuvent être stockées dans un portefeuille Ethereum. Un exemple d'attestation serait un [NFT](/nft/) accordant au titulaire l'accès à une communauté en ligne. + +Une fonction de [connexion avec Ethereum](https://login.xyz/) permettrait alors aux serveurs de confirmer le compte Ethereum de l'utilisateur et de récupérer l'attestation requise à partir de l'adresse de son compte. Cela signifie que les utilisateurs peuvent accéder aux plateformes et aux sites web sans avoir à mémoriser de longs mots de passe et améliore l'expérience en ligne des utilisateurs. + +### 2. Authentification KYC {#kyc-authentication} + +L'utilisation de nombreux services en ligne exige des personnes qu'elles fournissent des attestations et des justificatifs, tels qu'un permis de conduire ou un passeport national. Mais cette approche est problématique, car les informations privées des utilisateurs peuvent être compromises et les fournisseurs de services ne peuvent pas vérifier l'authenticité de l'attestation. + +L'identité décentralisée permet aux entreprises de se passer des processus classiques de [connaissance du client (Know-Your-Customer KYC)](https://en.wikipedia.org/wiki/Know_your_customer) et d'authentifier l'identité des utilisateurs au moyen d'identifiants vérifiables. Cela réduit le coût de la gestion de l'identité et empêche l'utilisation de faux documents. + +### 3. Votes et communautés en ligne {#voting-and-online-communities} + +Le vote en ligne et les médias sociaux sont deux nouvelles applications de l'identité décentralisée. Les systèmes de vote en ligne sont susceptibles d'être manipulés, notamment si des acteurs malveillants créent de fausses identités pour voter. Demander aux personnes de présenter des attestations sur la chaîne peut améliorer l'intégrité des processus de vote en ligne. + +L'identité décentralisée peut contribuer à créer des communautés en ligne exemptes de faux comptes. Par exemple, chaque utilisateur pourrait devoir authentifier son identité à l'aide d'un système d'identité sur la chaîne, comme le service de nom Ethereum, ce qui réduirait les possibilités de bots. + +### 4. Protection anti-sybil {#sybil-protection} + +Les attaques de type Sybil consistent à faire croire à un système que l'on est plusieurs personnes afin d'augmenter son influence. [Les applications d'octroi de subventions](https://gitcoin.co/grants/) qui utilisent [le vote quadratique](https://www.radicalxchange.org/concepts/plural-voting/) sont vulnérables à ces attaques de type « Sybil », car la valeur d'une subvention augmente lorsque davantage de personnes votent pour elle, ce qui incite les utilisateurs à répartir leurs contributions entre plusieurs identités. Les identités décentralisées permettent d'éviter cela en faisant peser sur chaque participant la charge de prouver qu'il est réellement humain, mais souvent sans avoir à révéler des informations privées spécifiques. + +## Utiliser une identité décentralisée {#use-decentralized-identity} + +Il existe de nombreux projets ambitieux utilisant Ethereum comme base pour des solutions d'identité décentralisée : + +- **[Ethereum Name Service (ENS)](https://ens.domains/)** - _Un système de nommage décentralisé pour les identifiants sur la chaîne, lisibles par machine, tels que les adresses de portefeuilles Ethereum, les hachages de contenu et les métadonnées._ +- **[SprunceID](https://www.spruceid.com/)** - _Un projet d'identité décentralisé qui permet aux utilisateurs de contrôler leur identité numérique avec des comptes Ethereum et des profils ENS au lieu de s'appuyer sur des services tiers._ +- **[Ethereum Attestation Service (EAS)](https://attest.sh/)** - _Un registre/protocole décentralisé pour faire des attestations en chaîne ou hors chaîne sur quoi que ce soit._ +- **[Preuve d'humanité](https://www.proofofhumanity.id)** - _Preuve d'humanité (ou PoH) est un système de vérification d'identité sociale construit sur Ethereum._ +- **[BrightID](https://www.brightid.org/)** - _Un réseau d'identité sociale décentralisé et open-source qui cherche à réformer la vérification d'identité par la création et l'analyse d'un graphe social._ +- **[Passeport de preuve d'identité ](https://proofofpersonhood.com/)** - _Un agrégateur d'identité numérique décentralisé._ + +## Complément d'information {#further-reading} + +### Articles {#articles} + +- [Cas d'utilisation de la Blockchain : Blockchain en identité numérique](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsensusSys_ +- [Qu'est-ce qu'Ethereum ERC725 ? Gestion des identités autonomes sur la Blockchain](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Sam Town_ +- [Comment la Blockchain pourrait-elle résoudre le problème de l'identité numérique](https://time.com/6142810/proof-of-humanity/) — _Andrew R. Chow_ +- [Qu'est-ce que l'identité décentralisée et pourquoi devriez-vous vous en préocupper ?](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ +- [Introduction à l'Identité Décentralisée](https://walt.id/white-paper/digital-identity)— _Dominik Beron_ + +### Vidéos {#videos} + +- [Identité décentralisée (Bonus Session Livestream)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Une formidable vidéo explicative sur l'identité décentralisée par Andreas Antonopolous_ +- [Connexion avec Ethereum et Decentralized Identity avec Ceramic, IDX, React, et 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _tutoriel YouTube sur la création d'un système de gestion d'identité pour créer, lire et mettre à jour un profil d'utilisateur en utilisant son portefeuille Ethereum par Nader Dabit_ +- [BrightID - Identité décentralisée sur Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _Épisode de podcast non bancaire parlant de BrightID, une solution d'identité décentralisée pour Ethereum_ +- [The Off Chain Internet : Identités décentralisées & Références vérifiables](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — Présentation EthDenver 2022 par Evin McMullen +- [Explication des Justificatifs Vérifiables](https://www.youtube.com/watch?v=ce1IdSr-Kig) - Vidéo explicative sur YouTube avec démonstration par Tamino Baumann + +### Communautés {#communities} + +- [ERC-725 Alliance sur GitHub](https://github.com/erc725alliance) — _Supporters de la norme ERC725 pour la gestion d'identité sur la blockchain Ethereum_ +- [Serveur Discord SpruceID](https://discord.com/invite/Sf9tSFzrnt) — _Communauté pour les adeptes et les développeurs travaillant sur la connexion avec Ethereum_ +- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Une communauté de développeurs contribuant à la construction d'un framework de données vérifiables pour les applications_ +- [walt.id](https://discord.com/invite/AW8AgqJthZ) — _Une communauté de développeurs et constructeurs travaillant sur des cas d'utilisation d'identité décentralisée dans diverses industries._ diff --git a/public/content/translations/fr/defi/index.md b/public/content/translations/fr/defi/index.md new file mode 100644 index 00000000000..ef931315a87 --- /dev/null +++ b/public/content/translations/fr/defi/index.md @@ -0,0 +1,352 @@ +--- +title: Finance Décentralisée (DeFi) +description: Un aperçu de la DeFi sur Ethereum +lang: fr +template: use-cases +emoji: ":money_with_wings:" +image: /use-cases/defi.png +alt: Un logo Eth fait en briques lego. +sidebarDepth: 2 +summaryPoint1: Une alternative mondiale ouverte au système financier actuel. +summaryPoint2: Des produits qui vous permettent d'emprunter, d'épargner, d'investir, d'échanger et plus encore. +summaryPoint3: Basé sur une technologie open-source avec laquelle n'importe qui peut programmer. +--- + +La DeFi est un système financier ouvert et mondial conçu pour l'ère de l'internet - une alternative à un système opaque, contrôlé rigoureusement et maintenu par des infrastructures et des processus vieux de plusieurs décennies. Il vous donne le contrôle et la visibilité de votre argent. Il vous offre une exposition aux marchés mondiaux et des alternatives à vos options bancaires ou monétaires locales. Les produits DeFi ouvrent des services financiers à toute personne disposant d'une connexion Internet et ils sont en grande partie la propriété de leurs utilisateurs. Jusqu'à présent, des dizaines de milliards de dollars de cryptomonnaies ont coulé à travers des applications DeFi et ils se développent chaque jour. + +## Qu'est-ce que la DeFi ? {#what-is-defi} + +DeFi est un terme collectif pour les produits et services financiers qui sont accessibles à toute personne qui peut utiliser Ethereum – toute personne disposant d'une connexion Internet. Avec la DeFi, les marchés sont toujours ouverts et il n'y a aucune autorités centralisée qui peut bloquer les paiements ou vous refuser l'accès à quoi que ce soit. Les services qui étaient auparavant lents et à risque d'erreurs humaines sont automatiques et plus sûrs maintenant qu'ils sont gérés par code que n'importe qui peut inspecter et contrôler. + +Il y a une économie de cryptomonnaies en plein essor où vous pouvez prêter, emprunter, long/court, gagner des intérêts, et plus. Les Argentins possédant des crypto-monnaies ont utilisé la DeFi pour échapper à l'inflation de leur pays. Les entreprises ont commencé à verser les salaires de leurs employés en temps réel. Certaines personnes ont même souscrit et remboursé des prêts d'une valeur de millions de dollars sans qu'il soit nécessaire de les identifier. + + + +## DeFi vs finance traditionnelle {#defi-vs-tradfi} + +L'une des meilleures façons de voir le potentiel de la DeFi est de comprendre les problèmes qui existent aujourd'hui. + +- Certaines personnes ne sont pas autorisées à créer un compte bancaire ou à utiliser des services financiers. +- Un manque d'accès aux services financiers peut empêcher les gens d'être employables. +- Les services financiers peuvent vous empêcher d'être payé. +- Des frais cachés de services financiers sont vos données personnelles. +- Les gouvernements et les institutions centralisées peuvent fermer les marchés à volonté. +- Les heures de trading sont souvent limitées aux heures de bureau sur un fuseau horaire spécifique. +- Les transferts d'argent peuvent prendre des jours en raison de processus humains internes. +- Il y a une prime pour les services financiers parce que les institutions intermédiaires ont besoin de leur part. + +### Une comparaison {#defi-comparison} + +| DeFi | La finance traditionnelle | +| -------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Vous détenez votre argent. | Votre argent est détenu par des entreprises. | +| Vous contrôlez où va votre argent et comment il est dépensé. | Vous devez faire confiance à des entreprises pour ne pas mal gérer votre argent, comme prêter à des emprunteurs risqués. | +| Les transferts de fonds se font en quelques minutes. | Les paiements peuvent prendre des jours en raison de processus manuels. | +| L'activité de la transaction est anonyme | L'activité financière est étroitement associée à votre identité. | +| La DeFi est ouverte à tout le monde. | Vous devez faire une demande pour utiliser les services financiers. | +| Les marchés sont toujours ouverts. | Les marchés ferment parce que les employés ont besoin de pauses. | +| Il est construit sur la transparence – tout le monde peut regarder les données d'un produit et inspecter le fonctionnement du système. | Les institutions financières sont des livres fermés : vous ne pouvez pas demander à voir leurs antécédents de prêts, un dossier de leurs actifs gérés, etc. | + + + Explorer la DeFi + + +## Et si on commençait avec Bitcoin... {#bitcoin} + +Bitcoin à bien des égards a été la première application de la DeFi. Bitcoin vous permet de posséder et de contrôler la valeur et de l'envoyer partout dans le monde. Il le fait en fournissant un moyen à un grand nombre de personnes, qui ne se font pas confiance les unes aux autres, de se mettre d'accord sur un grand livre de comptes sans avoir besoin d'un intermédiaire de confiance. Le Bitcoin est ouvert à tout le monde et personne n'a l'autorité nécessaire pour modifier ses règles. Les règles du Bitcoin, comme sa rareté et son ouverture, sont inscrites dans la technologie. Ce n'est pas comme la finance traditionnelle où les gouvernements peuvent imprimer de l'argent qui déprécie vos épargnes et où les entreprises peuvent fermer les marchés. + +L'Ethereum s'appuie sur cela. Comme le Bitcoin, les règles ne peuvent pas changer et tout le monde y a accès. Mais cela rend aussi cet argent numérique programmable, en utilisant [contrats intelligents](/glossary#smart-contract), vous pouvez donc aller au-delà du stockage et de la valeur d'envoi. + + + +## Monnaie programmable {#programmable-money} + +Cela semble étrange... « pourquoi je voudrais programmer mon argent » ? Cependant, il s'agit plutôt d'une fonctionnalité par défaut des jetons sur Ethereum. N'importe qui peut programmer une logique de paiement. Ainsi, vous pouvez obtenir le contrôle et la sécurité de Bitcoin mélangés avec les services fournis par les institutions financières. Cela vous permet de faire des choses avec des cryptomonnaies que vous ne pouvez pas faire avec des Bitcoins comme des prêts et des emprunts, des paiements, des investissements dans des fonds d'indice et plus encore. + + +
Explorez nos suggestions pour les applications de la DeFi pour essayer si vous êtes nouveau sur Ethereum.
+ + Explorer la DeFi + +
+ +## Que pouvez-vous faire avec la DeFi ? {#defi-use-cases} + +Il existe une alternative décentralisée à la plupart des services financiers. Mais Ethereum crée également des opportunités de création de produits financiers totalement nouveaux. Cette liste ne cesse de croître. + +- [Envoyer de l'argent partout dans le monde](#send-money) +- [Diffuser de l'argent dans le monde entier](#stream-money) +- [Accéder aux devises stables](#stablecoins) +- [Emprunter des fonds avec garantie](#lending) +- [Emprunter sans garantie](#flash-loans) +- [Démarrer des économies de cryptomonnaies](#saving) +- [Échanger des jetons](#swaps) +- [Développer votre portefeuille](#investing) +- [Financer vos idées](#crowdfunding) +- [Acheter une assurance](#insurance) +- [Gérer votre portefeuille](#aggregators) + + + +### Envoyer de l'argent partout dans le monde rapidement {#send-money} + +En tant que blockchain, Ethereum est conçu pour envoyer des transactions de manière sécurisée et globale. Tout comme Bitcoin, Ethereum vous permet d'envoyer de l'argent dans le monde entier aussi facilement qu'un un email. Entrez simplement le nom [ENS de votre destinataire](/nft/#nft-domains) (comme bob. th) ou l'adresse de leur compte à partir de votre portefeuille et votre paiement leur ira directement, en quelques minutes (habituellement). Pour envoyer ou recevoir des paiements, vous aurez besoin d'un [portefeuille](/wallets/). + + + Voir les applications de paiement + + +#### Diffuser de l'argent partout dans le monde... {#stream-money} + +Vous pouvez également diffuser de l'argent sur Ethereum. Cela vous permet de payer à quelqu'un son salaire en une seconde, lui donnant accès, ainsi, à son argent chaque fois qu'il en a besoin. Ou louer quelque chose presque instantanément comme un casier de stockage ou scooter électrique par exemple. + +Et si vous ne voulez pas envoyer ou diffuser des [ETH](/eth/) en raison de sa volatilité, Il existe des devises alternatives sur Ethereum: les stablecoins. + + + +### Accéder aux monnaies stables {#stablecoins} + +La volatilité des cryptomonnaies est un problème pour de nombreux produits financiers et les dépenses en générales. La communauté de la DeFi a résolu cela avec des stablecoins. Leur valeur reste indexée sur un autre actif, généralement une devise populaire comme le dollar par exemple. + +Les pièces comme Dai ou USDC ont une valeur qui reste stable à quelques centimes de dollars près. Cela les rend parfaits pour gagner ou revendre vos jetons. De nombreuses personnes en Amérique latine ont utilisés des pièces stables comme moyen de protéger leurs économies en cette période de grande incertitude avec leurs monnaies émises par le gouvernement. + + + En savoir plus sur les stablecoins + + + + +### Emprunter {#lending} + +L'emprunt de l'argent auprès de prestataires décentralisés se compose de deux variétés principales. + +- Pair-à-pair, ce qui signifie qu'un emprunteur empruntera directement auprès d'un prêteur spécifique. +- Basé sur une pool où les prêteurs fournissent des fonds (liquidités) à une réserve dans laquelle les emprunteurs peuvent emprunter. + + + Voir les dapp d'emprunt + + +Il y a de nombreux avantages à utiliser un prêteur décentralisé... + +#### Emprunter avec confidentialité {#borrowing-privacy} + +Aujourd'hui, le prêt et l'emprunt d'argent tournent autour des personnes impliquées. Les banques doivent savoir si vous êtes susceptible de rembourser un prêt avant de le prêter. + +Les prêts décentralisés fonctionnent sans que l’une ou l’autre des parties n’ait à s’identifier. Au lieu de cela, l'emprunteur doit placer une garantie que le prêteur recevra automatiquement si leur prêt n'est pas remboursé. Certains prêteurs acceptent même les NFT comme garanties. Les NFT sont un acte de propriété unique, comme une peinture par exemple. [Plus de détails sur les NFT](/nft/) + +Cela vous permet d'emprunter de l'argent sans chèques d'acompte et sans remise d'informations privées. + +#### Accès aux fonds mondiaux {#access-global-funds} + +Lorsque vous utilisez un prêteur décentralisé, vous avez accès aux fonds déposés du monde entier, pas seulement les fonds détenus par la banque ou l'institution que vous avez choisie. Cela rend les prêts plus accessibles et améliore les taux d'intérêt. + +#### Efficacité fiscale {#tax-efficiencies} + +L’emprunt peut vous donner accès aux fonds dont vous avez besoin sans devoir vendre votre ETH (un événement imposable). Au lieu de cela, vous pouvez utiliser ETH comme garantie pour un prêt stablecoin. Cela vous donne le flux de trésorerie dont vous avez besoin et vous permet de garder votre ETH. Les Stablecoins sont des jetons qui sont beaucoup plus intéressant quand vous avez besoin d'argent car ils ne fluctuent pas en valeur comme ETH. [Plus d'infos sur les stablecoins](#stablecoins) + +#### Prêts Flash {#flash-loans} + +Les prêts Flash sont une forme plus expérimentale de prêt décentralisé qui vous permet d'emprunter sans garantie ou sans fournir de renseignements personnels. + +Ils ne sont pas largement accessibles à tout le monde pour le moment, mais ils pourraient être un exemple de ce qui pourrait être possible pour tout le monde à l'avenir. + +Ils fonctionnent sur le fait que le prêt est contracté et remboursé dans le cadre de la même transaction. Si elle ne peut pas être remboursée, la transaction redevient nulle. C'est comme si elle n'avait jamais existé. + +Les fonds qui sont souvent utilisés sont détenus dans des pools de liquidités (gros réservoirs de fonds utilisés pour emprunter). S'ils ne sont pas utilisés à un moment donné, cela donne l'occasion à quelqu'un d'emprunter ces fonds, faire affaires avec eux, et les rembourser dans leur intégralité littéralement en même temps qu'ils sont empruntés. + +Cela signifie que beaucoup de logique doit être inclus dans une transaction sur mesure. Un exemple simple pourrait être une personne utilisant un prêt flash pour emprunter un actif à un prix unique afin de le vendre à un autre endroit où le prix est plus élevé. + +Donc, voici le déroulement d'une seule transaction : + +- Vous empruntez un montant de $assets à 1,00 $ par l'échange A +- Vous vendez X $asset sur l'échange B pour 1,10 $ +- Vous remboursez le prêt à l'échange A +- Vous conservez le profit moins les frais de transaction + +Si l'échange B chutait soudainement et que l'utilisateur n'était pas en mesure d'acheter suffisamment pour couvrir le prêt initial, la transaction échouerait tout simplement. + +Pour pouvoir faire ce qui précède dans le monde de la finance traditionnelle, vous auriez besoin d'une somme d'argent énorme. Ces stratégies pour gagner de l'argent ne sont accessibles qu'à ceux qui possèdent déjà une certaine richesse. Les prêts Flash sont un exemple d'avenir où avoir de l'argent n'est pas nécessairement une condition préalable pour gagner de l'argent. + +[Plus d'infos sur les prêts Flash](https://aave.com/flash-loans/) + + + +### Commencez à épargner avec des cryptomonnaies {#saving} + +#### Prêt {#lending} + +Vous pouvez gagner de l'intérêt sur votre cryptomonnaie en le prêtant et en voyant vos fonds croître en temps réel. En ce moment, les taux d'intérêt sont beaucoup plus élevés que ce que vous pourriez obtenir à votre banque locale (si vous avez la chance d'en avoir une). Voici un exemple : + +- Vous prêtez vos 100 Dai, un [stablecoin](/stablecoins/), à un produit comme Aave. +- Vous recevez 100 Aave Dai (aDai), ce qui représente votre Dai prêté. +- Votre aDai augmentera en fonction des taux d'intérêt et vous pourrez ainsi voir votre solde croître dans votre portefeuille. Dépendant de l'APR, le solde de votre portefeuille va lire quelque chose comme 100.1234 après quelques jours ou même quelques heures ! +- Vous pouvez retirer un montant de Dai égal à votre solde aDai à tout moment. + + + Voir les dApps de prêt + + +#### Loteries sans risque {#no-loss-lotteries} + +Les Loteries sans risque comme PoolTogether sont un moyen amusant et innovant d'épargner de l'argent. + +- Vous achetez 100 tiquets en utilisant 100 jetons Dai. +- Vous recevez 100 plDai représentant vos 100 billets. +- Si l'un de vos billets est tiré au sort, votre compte plDai augmentera du montant de la cagnotte. +- Si vous ne gagnez pas, vos 100 plDai sont remis en jeu pour le tirage au sort de la semaine suivante. +- Vous pouvez retirer un montant de Dai équivalent à votre compte plDai à n'importe quel moment. + +La cagnotte équivaut aux intérêts générés par les prêts effectués grâce aux achats de tiquets comme dans l'exemple au dessus. + + + Essayer PoolTogether + + + + +### Échanger des jetons {#swaps} + +Il existe des milliers de jetons sur Ethereum. Les échanges décentralisés (DEXs) vous permettent d'échanger des jetons quand vous le souhaitez. Vous gardez toujours le contrôle de vos actifs. C'est comme échanger des devises lorsque vous visitez un autre pays. Mais la version de la DeFi ne ferme jamais. Les marchés sont ouverts 24 heures sur 24, 365 jours par an, la technologie garantie qu'il y aura toujours quelqu'un pour accepter un échange. + +Par exemple, si vous voulez vous lancer dans une loterie sans risque (décrite au dessus), vous aurez besoin de jeton comme les Dai ou USDC. Les DEXs vous permettent d'échanger vos ETH avec des tokens, et de les reconvertir en ETH lorsque vous avez terminé. + + + Voir échanger des jetons + + + + +### Échanges avancés {#trading} + +Pour les traders qui aiment le contrôle, il existe des options avancées. Les ordres à cours limités, échanges perpétuels, le trading sur marge sont tous possibles. Avec le trading décentralisé, vous avez accès à des liquidités dans le monde entier, le marché est toujours ouvert et vous gardez à tout moment le contrôle sur vos actifs. + +Avec le trading centralisé, vous devez déposer vos actifs avant les échanges et faire confiance à un tier pour en prendre soin. Lorsqu'ils sont déposés, vos actifs courent un risque par ce que les centres d'échange sont des cibles très attractives pour les hackers. + + + Voir Applications décentralisées (dapps) + + + + +### Développer votre Portefeuille {#investing} + +Il existe des outils de gestion de fonds sur Ethereum qui vous permettront de développer votre portefeuille en vous appuyant sur la stratégie de votre choix. C'est automatique, ouvert à tous, et personne ne pourra vous demander de commission. + +Voilà un bon exemple [DeFi Pulse Index fund (DPI)](https://defipulse.com/blog/defi-pulse-index/). C'est un fond qui se rééquilibre automatiquement pour garantir qu'il inclue toujours [les jetons DeFi ayant la meilleure capitalisation boursière](https://www.coingecko.com/en/defi). Pas besoin de gérer les détails et vous pouvez retirer les fonds quand bon vous semble. + + + Voir les applications d'investissement dapps + + + + +### Financer vos projets {#crowdfunding} + +Ethereum est une plateforme idéale pour le crowdfunding: + +- Des investisseurs potentiels du monde entier - Ethereum et ses jetons sont ouverts à tous et partout. +- La transparence permet à tous les collecteurs de fonds de prouver combien ils ont levé. Vous pouvez aussi tracer l'utilisation des fonds levés. +- Les collecteurs de fonds peuvent mettre en place des remboursements automatiques. Par exemple si un montant minimum n'est pas atteint à la deadline du projet. + + + Voir les dapps de crowdfunding + + +#### Financements quadratiques {#quadratic-funding} + +Ethereum est un logiciel open source, une grand partie du travail à été financée par la communauté. Cela a conduit à la croissance d'un nouveau modèle de collecte de fond : le financement quadratique. Ce modèle a le potentiel d'améliorer la façon dont nous finançons tous les types de biens publics à l'avenir. + +Le financement quadratique veille à ce que les projets qui reçoivent le plus de financement soient ceux dont la demande est la plus unique. En d'autres termes, des projets qui visent à améliorer la vie du plus grand nombre de personnes. Voici comment ça marche : + +1. Il y a une cagnotte commune pour les fonds donnés. +2. Une série de financement public commence. +3. Les gens peuvent manifester leur demande pour un projet en donnant un peu d'argent. +4. Une fois que la série est terminée, la cagnotte commune est distribuée aux projets. Ceux avec la demande la plus unique obtiennent le plus gros montant de la cagnotte commune. + +Cela veut dire qu'un projet A avec ses 100 donneurs de 1 dollar pourrait finir avec plus de financement qu'un projet B avec un seul donneur de 10 000 dollars (selon la taille de la cagnotte correspondante). + +[En savoir plus sur le financement quadratique](https://wtfisqf.com) + + + +### Assurance {#insurance} + +L'assurance décentralisée vise à rendre l'assurance moins chère, plus rapide à rembourser et plus transparente. Avec davantage d'automatisation, la protection est plus abordable et les paiements sont beaucoup plus rapides. Les données utilisées pour décider de votre réclamation sont complètement transparentes. + +Les produits Ethereum, comme n'importe quel logiciel, peuvent souffrir de bugs et d'exploits. Actuellement, de nombreux produits d'assurance dans l'espace sont axés sur la protection de leurs utilisateurs contre la perte de fonds. Cependant, il y a des projets qui commencent à construire une couverture pour tous les événements de la vie. Un bon exemple de ceci est la couverture Etherisc's Crop qui vise à [protéger les petits agriculteurs kényans contre les sécheresses et les inondations](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Les assurances décentralisées peuvent offrir une couverture moins chère aux agriculteurs qui n'ont souvent pas les moyens d'accéder aux assurances traditionnelles. + + + Voir les assurances Dapps + + + + +### Agrégateurs et gestionnaires de portefeuille {#aggregators} + +Avec tant de choses en cours, vous aurez besoin d'un moyen de suivre tous vos investissements, vos prêts et vos transactions. Il y a une foule de produits qui vous permettent de coordonner toutes vos activités de DeFi à partir d'un seul endroit. C'est la beauté de l'architecture ouverte de DeFi. Les équipes peuvent construire des interfaces où vous ne pouvez pas simplement voir vos balances entre produits mais également utiliser leurs fonctionnalités. Vous pourriez trouver cela utile en explorant plus à propos de la DeFi. + + + Voir les dApps de portefeuille + + + + +## Comment est-ce que la DeFi marche ? {#how-defi-works} + +DeFi utilise des cryptomonnaies et des contrats intelligents pour fournir des services qui n'ont pas besoin d'intermédiaires. Dans le monde financier actuel, les institutions financières agissent en tant que garantes des transactions. Cela donne à ces institutions un immense pouvoir parce que votre argent circule à travers elles. De plus, des milliards de personnes dans le monde ne peuvent même pas accéder à un compte bancaire. + +Avec la DeFi, un contrat intelligent remplace l'institution financière dans la transaction. Un contrat intelligent est un type de compte Ethereum qui peut détenir des fonds et les envoyer/rembourser selon certaines conditions. Personne ne peut modifier ce contrat intelligent quand il est en ligne – il sera toujours exécuté comme programmé. + +Un contrat conçu pour distribuer une allocation ou de l'argent de poche pourrait être programmé pour envoyer de l'argent du compte A au compte B chaque vendredi. Et il le fera aussi longtemps et uniquement lorsque le compte A aura les fonds nécessaires. Personne ne peut modifier le contrat et ajouter le compte C comme bénéficiaire pour voler des fonds. + +Les contrats sont également publics pour toute personne voulant l'inspecter et le vérifier. Cela signifie que les mauvais contrats seront souvent et rapidement examinés par la communauté. + +Cela signifie qu'il est actuellement nécessaire de faire confiance aux membres les plus avancés de la communauté Ethereum qui peuvent lire du code. La communauté open-source aide à contrôler les développeurs, mais ce besoin diminuera avec le temps à mesure que les contrats intelligents deviennent plus faciles à lire et que d'autres moyens de prouver la fiabilité du code sont développés. + +## Ethereum et DeFi {#ethereum-and-defi} + +Ethereum est la fondation parfaite pour la DeFi pour plusieurs raisons: + +- Personne ne possède Ethereum ou les contrats intelligents qui s'y développent - c'est ce qui donne l'opportunité à n'importe qui d'utiliser la DeFi. Cela signifie que personne ne peut modifier les règles vous concernant. +- Au fond, tous les produits DeFi parlent le même langage : Ethereum. Tous les produits travaillent ensemble et de manière transparente. Vous pouvez prêter des tokens sur une plateforme et échanger les intérêts sur un autre marché ou sur une application complètement différente. C'est comme engranger des points de fidélité avec une banque. +- Les cryptomonnaies et les jetons sont incorporés à Ethereum, un registre partagé qui garde trace de toutes les transactions et les propriétés. +- Ethereum permet une totale liberté financière. La plupart des produits ne prendront jamais vos fonds en charge, ce qui vous laisse un contrôle total. + +Vous pouvez voir la DeFi comme des couches : + +1. La Blockchain, Ethereum qui trace l'historique des transactions et les états de comptes. +2. Les actifs [ETH](/eth/) et autres jetons (devises). +3. Les protocoles, [contrats intelligents](/glossary/#smart-contract) qui offrent des fonctionnalités comme les prêts d'actifs décentralisés. +4. [Les applications](/dapps/) les produits que vous utilisez pour accéder et gérer les protocoles. + +## Fabriquer une DeFi {#build-defi} + +DeFi est un mouvement open source. Les protocoles et applications DeFi sont ouverts et libres pour que vous puissiez les inspecter, fouiller et innover dessus. Grâce à cette superposition (ils partagent tous la même Blockchain et les mêmes ressources de base), les protocoles peuvent être mélangés et assemblés pour créer des combos d'opportunités uniques. + + + En savoir plus sur la fabrication de dapps + + +## Complément d'information {#futher-reading} + +### Données DeFi {#defi-data} + +- [DeFi Prime](https://defiprime.com/) +- [DeFi Llama](https://defillama.com/) +- [DeFi Rate](https://defirate.com/) + +### Articles DeFi {#defi-articles} + +- [Un guide de la DeFi pour débutants](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) - _Sid Coelho-Prabhu, 6 janvier 2020_ + +### Vidéos {#videos} + +- [Finematics - decentralized finance education](https://finematics.com/) _vidéos de DeFi_ +- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _Les bases de la DeFi : Tout ce que vous avez besoin de savoir pour commencer dans cet espace parfois déroutant_ +- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _Qu'est-ce que DeFi?_ + +### Communautés {#communities} + +- [Serveur Discord DeFi Llama](https://discord.gg/buPFYXzDDd) +- [Serveur Discord DeFi Pulse](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/fr/deprecated-software/index.md b/public/content/translations/fr/deprecated-software/index.md similarity index 100% rename from src/content/translations/fr/deprecated-software/index.md rename to public/content/translations/fr/deprecated-software/index.md diff --git a/public/content/translations/fr/desci/index.md b/public/content/translations/fr/desci/index.md new file mode 100644 index 00000000000..1eb7679a34d --- /dev/null +++ b/public/content/translations/fr/desci/index.md @@ -0,0 +1,139 @@ +--- +title: La science décentralisée (DeSci) +description: Présentation de la science décentralisée sur Ethereum +lang: fr +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Une alternative globale et ouverte au système scientifique actuel. +summaryPoint2: Technologie qui permet aux scientifiques de recueillir des fonds, de mener des expériences, de partager des données, de diffuser des idées et plus encore. +summaryPoint3: S'appuie sur le mouvement science en libre accès. +--- + +## Qu'est-ce que la science décentralisée (DeSci) ? {#what-is-desci} + +La science décentralisée (DeSci) est un mouvement qui vise à construire une infrastructure publique en vue du financement, de la création, de l'examen, de l'attribution de crédits, du stockage et de la diffusion des connaissances scientifiques de manière juste et équitable en utilisant la pile Web3. + +La DeSci vise à créer un écosystème dans lequel les scientifiques sont incités à partager ouvertement leurs recherches et à être salués pour leurs travaux, tout en permettant à quiconque d'accéder et de contribuer facilement aux recherches. La DeSci part du principe que les connaissances scientifiques doivent être accessibles à tous et que le processus de recherche scientifique doit être transparent. La DeSci crée un modèle de recherche scientifique plus décentralisé et distribué, qui la rend plus résistante à la censure et au contrôle par les autorités centrales. La DeSci vise à créer un environnement où les idées nouvelles et non conventionnelles peuvent prospérer en décentralisant l’accès au financement, aux outils scientifiques et aux canaux de communication. + +La science décentralisée permet d'accéder à des sources de financement plus variées (des [DAO](/dao/), [dons quadratiques](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) aux financements participatifs et plus encore), des données et méthodes d'accès plus accessibles, et incite à la reproductibilité. + +### Juan Benet - Le Mouvement DeSci + + + +## En quoi la DeSci fait avancer la science {#desci-improves-science} + +Liste non exhaustive des principaux problèmes rencontrés par la science et comment la science décentralisée peut aider à les résoudre + +| **La science décentralisée** | **La science traditionnelle** | +| --------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | +| La répartition des fonds est déterminée par le public à l’aide de mécanismes tels que les dons quadratiques ou les DAO. | De petits groupes fermés et centralisés contrôlent la répartition des fonds. | +| Vous collaborez avec des pairs du monde entier dans des équipes dynamiques. | Les organismes de financement et les établissements d’origine limitent vos collaborations. | +| Les décisions de financement sont prises en ligne et en toute transparence. De nouveaux mécanismes de financement sont explorés. | Les décisions de financement sont longues à prendre et la transparence en la matière limitée. Il existe peu de mécanismes de financement. | +| Le recours aux primitives Web3 facilite le partage des services de laboratoire et les rend plus transparents. | Le partage des ressources des laboratoires est souvent lent et opaque. | +| Il est possible d'élaborer de nouveaux modèles de publication qui utilisent les primitives Web3 pour garantir confiance, transparence et accès universel. | Vous publiez par le biais de voies établies souvent considérées comme inefficaces, partiales et basées sur l'exploitation. | +| Vous pouvez gagner des jetons et consolider votre réputation en faisant un travail d'évaluation par les pairs. | Votre travail d'évaluation par les pairs n'est pas rémunéré, ce qui profite aux éditeurs à but lucratif. | +| Vous êtes détenteur de la propriété intellectuelle (PI) que vous créez et diffusez ces créations dans le respect de conditions transparentes. | Votre institution d'origine est propriétaire de la PI que vous générez. L'accès à la PI n'est pas transparent. | +| Partagez toutes les recherches, y compris les données issues de recherches infructueuses, en basculant toutes les étapes sur la chaîne. | Le biais de publication veut que les chercheurs soient plus susceptibles de partager des expériences qui ont donné des résultats positifs. | + +## Ethereum et la DeSci {#ethereum-and-desci} + +Pour développer des applications, un système scientifique décentralisé exigera une sécurité renforcée, des coûts monétaires et de transaction minimaux et un écosystème riche. Ethereum fournit tout ce qui est nécessaire pour construire une pile scientifique décentralisée. + +## Exemples d'utilisation de la DeSci {#use-cases} + +La DeSci met en place les outils scientifiques nécessaires pour faire basculer le milieu universitaire du Web2 vers le digital. Vous trouverez ci-dessous un échantillon d'exemples d'utilisation que le Web3 peut offrir à la communauté scientifique. + +### Publications {#publishing} + +Comme chacun le sait, les publications scientifiques posent problème car elles sont gérées par des maisons d'édition qui s'appuient sur le travail gratuit de scientifiques, de réviseurs et d'éditeurs pour produire des articles, mais qui facturent ensuite des frais d'édition exorbitants. Le public, qui a généralement financé indirectement le travail et les coûts de publication à travers les taxes et les impôts qu'il paie, ne peut souvent pas accéder à ce même travail sans payer l'éditeur à nouveau. Le montant total des frais de publication d'articles scientifiques individuels est souvent à cinq chiffres ($USD), ce qui sape le concept même de connaissance scientifique en tant que [bien public](https://www.econlib.org/library/Enc/PublicGoods.html) tout en permettant à un petit groupe d'éditeurs d'engranger d'énormes profits. + +Il existe des plateformes d'acès libre et gratuit sous forme de serveurs de pré-impression [comme ArXiv](https://arxiv.org/). Le contrôle qualité , de même que les [mécanismes anti-sybil](https://csrc.nist.gov/glossary/term/sybil_attack), font défaut sur ces plateformes, qui ne suivent généralement pas les paramètres de niveau article, ce qui signifie qu'ils ne sont généralement utilisés que pour faire connaître un travail avant de le soumettre à un éditeur classique. SciHub permet également d'accéder gratuitement aux articles publiés, mais pas légalement, et seulement après que les éditeurs ont été réglés et ont lié l'œuvre à une législation stricte sur le droit d'auteur. Les données et articles scientifiques accessibles associés à un mécanisme de légitimité et à un modèle incitatif intégrés manquent donc cruellement. Le Web3 offre les outils nécessaire pour construire un tel système. + +### Reproductibilité et réplicabilité {#reproducibility-and-replicability} + +La reproductibilité et la réplicabilité sont les fondements des découvertes scientifiques de qualité. + +- Des résultats reproductibles peuvent être obtenus plusieurs fois de suite par la même équipe en utilisant la même méthodologie. +- Des résultats reproductibles peuvent être obtenus par un autre groupe utilisant le même dispositif expérimental. + +Avec les nouveaux outils Web3 natifs, reproductibilité et réplicabilité sont à la base des découvertes. Le tissu technologique universitaire peut s'imprégner d'une science de qualité. Le Web3 offre la possibilité de créer des attestations pour chaque composant d'analyse : les données brutes, le moteur de calcul et le résultat de l'application. Les systèmes fonctionnant sur le mode du consensus ont ceci de fabuleux que lorsqu'un réseau de confiance est créé pour préserver ces composants, chaque participant au réseau peut être chargé de la reproduction du calcul et de la validation de chaque résultat. + +### Financement {#funding} + +Dans le cadre du modèle de financement actuel de la science, des personnes ou des groupes de scientifiques présentent des demandes de financement écrites à des organismes de financement. Un petit groupe de personnes de confiance notent les candidats, puis les interrogent avant d'attribuer des fonds à une fraction d'entre eux. Ce modèle, qui crée des goulets d'étranglement susceptibles de retarder de plusieurs années le traitement des demandes de subvention, est réputé être très vulnérable à l'orientation, aux intérêts personnels et à la politique du comité d’étude. + +Des études ont montré que les comités d'étude des demandes de subventions ont du mal à sélectionner les propositions de qualité. En effet, les mêmes propositions soumises à des comités différents donnent des résultats très différents. Le financement étant de plus en plus limité, il s’est concentré sur un groupe plus restreint de chercheurs plus âgés, porteurs de projets plus classiques sur le plan intellectuel. Cela a eu pour effet de créer un paysage de financement hyperconcurrentiel, d'ancrer des incitations perverses et d'étouffer l'innovation. + +Le Web3 a le potentiel d'ébranler ce modèle de financement dépassé en expérimentant différents modèles d'incitation développés par les DAO et le Web3 dans l'ensemble. [Le financement rétroactif de biens publics](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), [le financement quadratique](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), la [gouvernance de DAO](https://www.antler.co/blog/daos-and-web3-governance) et les [structures incitatives basées sur l'utilisation de jetons](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) sont quelques-uns des outils Web3 qui pourraient révolutionner le financement de la science. + +### Propriété et développement de la PI {#ip-ownership} + +La propriété intellectuelle (PI) pose problème dans la science traditionnelle : cantonnée aux universités ou inutilisée dans les entreprises de biotechnologie, elle est de surcroît et comme chacun le sait difficile à évaluer. Le Web3 est cependant particulièrement performant en matière de propriété des actifs numériques (notamment des données scientifiques ou des articles), grâce au recours aux [jetons non fongibles (NFTs)](/nft/). + +De la même manière que les NFT peuvent transmettre les recettes de futures transactions au créateur initial, vous pouvez établir des chaînes d'attribution de valeur transparentes pour récompenser les chercheurs, les organes directeurs (les DAO par exemple), ou même les personnes dont les données sont collectées. + +Les [NFT liés à la PI](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) peuvent également servir de clé d'accès à un référentiel de données décentralisé relatif aux expériences de recherche en cours, et puiser dans les NFT et le financement de la [DeFi](/defi/) (de la fractionalisation aux groupes de prêt et à l'estimation de la valeur). Ils permettent également aux entités nativement en chaîne, telles que les DAO comme [VitaDAO](https://www.vitadao.com/), de mener des recherches directement en chaîne. Les [jetons « soulbound » non transférables](https://vitalik.ca/general/2022/01/26/soulbound.html) peuvent également jouer un rôle important en matière de DeSci en permettant aux individus d'apporter la preuve de leur expérience et leurs identifiants liés à leur adresse Ethereum. + +### Stockage de données, accès et architecture {#data-storage} + +Les données scientifiques peuvent être rendues beaucoup plus accessibles en utilisant les modèles Web3, sachant que le stockage distribué permet aux recherches et études de survivre à des événements cataclysmiques. + +Le tout doit reposer sur un système accessible par toute identité décentralisée disposant d'identifiants vérifiables appropriés. Les données sensibles peuvent ainsi être répliquées en toute sécurité par des parties de confiance, ce qui permet de résister à la redondance et à la censure, de reproduire les résultats et même à plusieurs parties de collaborer et d'ajouter de nouvelles données à l'ensemble de données. Des méthodes de calcul confidentielles telles que [compute-to-data](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol) offrent des mécanismes d'accès alternatifs à la réplication des données brutes, créant des environnements de recherche fiables pour les données les plus sensibles. Les environnements de recherche fiables ont été [cités par le NHS](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) comme une solution de préservation de la confidentialité des données et de collaboration orientée vers l'avenir dans la mesure où ils créent un écosystème au sein duquel les chercheurs peuvent travailler en toute sécurité avec les données directement sur place en utilisant des environnements normalisés pour le partage de code et de pratiques. + +Les solutions Web 3 flexibles axées sur les données prennent en charge les scénarios ci-dessus et fournissent les bases d'une science réellement ouverte, où les chercheurs peuvent créer des biens publics sans autorisation d'accès ni frais. Les solutions Web3 relatives aux données publiques telles qu'IPFS, Arweave et Filecoin sont optimisées pour la décentralisation. dClimate, par exemple, fournit un accès universel aux données climatiques et météorologiques, y compris à partir de stations météo et de modèles climatiques prédictifs. + +## Participer {#get-involved} + +Explorer les projets et rejoindre la communauté DeSci. + +- [DeSci.Global : calendrier des événements et des rencontres à l'échelle mondiale](https://desci.global) +- [La blockchain au service de la science avec Telegram](https://t.me/BlockchainForScience) +- [Molecule : Financer et recevoir des fonds pour vos projets de recherche](https://discover.molecule.to/) +- [VitaDAO : recevoir des fonds par le biais d'accords de recherche sponsorisés en vue de recherches sur la longévité](https://www.vitadao.com/) +- [Research Hub : publier un résultat scientifique et participer à une conversation avec des pairs](https://www.researchhub.com/) +- [LabDAO : plier une protéine in-silico](https://alphafodl.vercel.app/) +- [dClimate API : envoyer des requêtes concernant les données climatiques recueillies par une communauté décentralisée](https://api.dclimate.net/) +- [DeSci Foundation : fabricant d'outils de publication DeSci](https://descifoundation.org/) +- [DeSci.World : guichet unique grâce auquel les utilisateurs peuvent avoir une visibilité, échanger avec la science décentralisée](https://desci.world) +- [Protocole Fleming : économie des données open-source qui alimente la recherche biomédicale collaborative](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [OceanDAO : source de financement régi par une DAO pour les études scientifiques liées aux données](https://oceanprotocol.com/dao) +- [Opscientia : flux de travaux scientifiques décentralisés ouverts](https://opsci.io/research/) +- [LabDAO : plier une protéine in-silico](https://alphafodl.vercel.app/) +- [Bio.xyz : financer votre projet DAO ou desci biotech](https://www.molecule.to/) +- [Research Hub: publier un résultat scientifique et engager une conversation avec les pairs](https://www.researchhub.com/) +- [VitaDAO : recevoir des fonds pour mener des recherches sur la longévité par le biais d'accords de recherche sponsorisés](https://www.vitadao.com/) +- [Protocole Fleming : économie de données open-source qui alimente la découverte biomédicale collaborative](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [Active Inference Lab](https://www.activeinference.org/) +- [CureDAO : plateforme de santé de précision détenue par une communauté](https://docs.curedao.org/) +- [IdeaMarkets : pour une crédibilité scientifique décentralisée renforcée](https://ideamarket.io/) +- [DeSci Labs](https://www.desci.com/) + +Nous accueillons volontiers les suggestions de nouveaux projets à répertorier - veuillez consulter notre [politique d'inscription](/contributing/adding-desci-projects/) pour commencer ! + +## En savoir plus {#further-reading} + +- [DeSci Wiki par Jocelynn Pearl et Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) +- [Un guide sur la biotech décentralisée par Jocelynn Pearl pour a16z future](https://future.a16z.com/a-guide-to-decentralized-biotech/) +- [Arguments en faveur de la DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) +- [Guide relatif à la DeSci](https://future.com/what-is-decentralized-science-aka-desci/) +- [Ressources relatives à la science décentralisée](https://www.vincentweisser.com/decentralized-science) +- [Les IP-NFT de Molecule dans le domaine biopharmaceutique - Description technique](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) +- [Construire des systèmes scientifiques sans tiers de confiance par Jon Starr](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) +- [L’émergence des DAO biotech](https://molecule.to/blog/the-emergence-of-biotech-daos) +- [Paul Kohlhaas - DeSci : L'avenir de la science décentralisée (podcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) +- [Une ontologie des Inférences actives pour une science décentralisée : de la création de sens en situation aux biens communs épistémiques](https://zenodo.org/record/6320575) +- [DeSci : l'avenir de la recherche par Samuel Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) +- [Financement de la science (Épilogue : la DeSci et les nouvelles primitives dans les cryptomonnaies) par Nadia](https://nadia.xyz/science-funding) +- [La décentralisation perturbe développement des médicaments](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) + +### Vidéos {#videos} + +- [Qu'est-ce que la science décentralisée ?](https://www.youtube.com/watch?v=-DeMklVWNdA) +- [Conversation entre Vitalik Buterin et le scientifique Aubrey de Grey sur le croisement entre recherche sur la longévité et cryptomonnaie](https://www.youtube.com/watch?v=x9TSJK1widA) +- [La publication scientifique est en panne. Est-ce que le Web3 peut améliorer ?](https://www.youtube.com/watch?v=WkvzYgCvWj8) +- [Juan Benet - DeSci, laboratoires indépendants, & dcience des données à grande échelle](https://www.youtube.com/watch?v=zkXM9H90g_E) +- [Sebastian Brunemeier - Comment la DeSci peut transformer la recherche biomédicale & le capital risque](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/fr/developers/docs/accounts/index.md b/public/content/translations/fr/developers/docs/accounts/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/accounts/index.md rename to public/content/translations/fr/developers/docs/accounts/index.md diff --git a/src/content/translations/fr/developers/docs/apis/backend/index.md b/public/content/translations/fr/developers/docs/apis/backend/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/apis/backend/index.md rename to public/content/translations/fr/developers/docs/apis/backend/index.md diff --git a/src/content/translations/fr/developers/docs/apis/javascript/index.md b/public/content/translations/fr/developers/docs/apis/javascript/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/apis/javascript/index.md rename to public/content/translations/fr/developers/docs/apis/javascript/index.md diff --git a/src/content/translations/fr/developers/docs/apis/json-rpc/index.md b/public/content/translations/fr/developers/docs/apis/json-rpc/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/apis/json-rpc/index.md rename to public/content/translations/fr/developers/docs/apis/json-rpc/index.md diff --git a/src/content/translations/fr/developers/docs/blocks/index.md b/public/content/translations/fr/developers/docs/blocks/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/blocks/index.md rename to public/content/translations/fr/developers/docs/blocks/index.md diff --git a/src/content/translations/fr/developers/docs/bridges/index.md b/public/content/translations/fr/developers/docs/bridges/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/bridges/index.md rename to public/content/translations/fr/developers/docs/bridges/index.md diff --git a/src/content/translations/fr/developers/docs/consensus-mechanisms/index.md b/public/content/translations/fr/developers/docs/consensus-mechanisms/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/consensus-mechanisms/index.md rename to public/content/translations/fr/developers/docs/consensus-mechanisms/index.md diff --git a/src/content/translations/fr/developers/docs/consensus-mechanisms/pos/index.md b/public/content/translations/fr/developers/docs/consensus-mechanisms/pos/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/consensus-mechanisms/pos/index.md rename to public/content/translations/fr/developers/docs/consensus-mechanisms/pos/index.md diff --git a/src/content/translations/fr/developers/docs/consensus-mechanisms/pow/index.md b/public/content/translations/fr/developers/docs/consensus-mechanisms/pow/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/consensus-mechanisms/pow/index.md rename to public/content/translations/fr/developers/docs/consensus-mechanisms/pow/index.md diff --git a/src/content/translations/fr/developers/docs/consensus-mechanisms/pow/mining/index.md b/public/content/translations/fr/developers/docs/consensus-mechanisms/pow/mining/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/consensus-mechanisms/pow/mining/index.md rename to public/content/translations/fr/developers/docs/consensus-mechanisms/pow/mining/index.md diff --git a/src/content/translations/fr/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md b/public/content/translations/fr/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md rename to public/content/translations/fr/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md diff --git a/src/content/translations/fr/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md b/public/content/translations/fr/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md rename to public/content/translations/fr/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md diff --git a/src/content/translations/fr/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md b/public/content/translations/fr/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md rename to public/content/translations/fr/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md diff --git a/src/content/translations/fr/developers/docs/dapps/index.md b/public/content/translations/fr/developers/docs/dapps/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/dapps/index.md rename to public/content/translations/fr/developers/docs/dapps/index.md diff --git a/src/content/translations/fr/developers/docs/data-and-analytics/block-explorers/index.md b/public/content/translations/fr/developers/docs/data-and-analytics/block-explorers/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/data-and-analytics/block-explorers/index.md rename to public/content/translations/fr/developers/docs/data-and-analytics/block-explorers/index.md diff --git a/src/content/translations/fr/developers/docs/data-and-analytics/index.md b/public/content/translations/fr/developers/docs/data-and-analytics/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/data-and-analytics/index.md rename to public/content/translations/fr/developers/docs/data-and-analytics/index.md diff --git a/src/content/translations/fr/developers/docs/data-availability/index.md b/public/content/translations/fr/developers/docs/data-availability/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/data-availability/index.md rename to public/content/translations/fr/developers/docs/data-availability/index.md diff --git a/src/content/translations/fr/developers/docs/data-structures-and-encoding/index.md b/public/content/translations/fr/developers/docs/data-structures-and-encoding/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/data-structures-and-encoding/index.md rename to public/content/translations/fr/developers/docs/data-structures-and-encoding/index.md diff --git a/src/content/translations/fr/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md b/public/content/translations/fr/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md rename to public/content/translations/fr/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md diff --git a/src/content/translations/fr/developers/docs/data-structures-and-encoding/rlp/index.md b/public/content/translations/fr/developers/docs/data-structures-and-encoding/rlp/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/data-structures-and-encoding/rlp/index.md rename to public/content/translations/fr/developers/docs/data-structures-and-encoding/rlp/index.md diff --git a/src/content/translations/fr/developers/docs/data-structures-and-encoding/ssz/index.md b/public/content/translations/fr/developers/docs/data-structures-and-encoding/ssz/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/data-structures-and-encoding/ssz/index.md rename to public/content/translations/fr/developers/docs/data-structures-and-encoding/ssz/index.md diff --git a/src/content/translations/fr/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md b/public/content/translations/fr/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md rename to public/content/translations/fr/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md diff --git a/src/content/translations/fr/developers/docs/design-and-ux/index.md b/public/content/translations/fr/developers/docs/design-and-ux/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/design-and-ux/index.md rename to public/content/translations/fr/developers/docs/design-and-ux/index.md diff --git a/src/content/translations/fr/developers/docs/development-networks/index.md b/public/content/translations/fr/developers/docs/development-networks/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/development-networks/index.md rename to public/content/translations/fr/developers/docs/development-networks/index.md diff --git a/src/content/translations/fr/developers/docs/ethereum-stack/index.md b/public/content/translations/fr/developers/docs/ethereum-stack/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/ethereum-stack/index.md rename to public/content/translations/fr/developers/docs/ethereum-stack/index.md diff --git a/src/content/translations/fr/developers/docs/evm/index.md b/public/content/translations/fr/developers/docs/evm/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/evm/index.md rename to public/content/translations/fr/developers/docs/evm/index.md diff --git a/src/content/translations/fr/developers/docs/evm/opcodes/index.md b/public/content/translations/fr/developers/docs/evm/opcodes/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/evm/opcodes/index.md rename to public/content/translations/fr/developers/docs/evm/opcodes/index.md diff --git a/src/content/translations/fr/developers/docs/frameworks/index.md b/public/content/translations/fr/developers/docs/frameworks/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/frameworks/index.md rename to public/content/translations/fr/developers/docs/frameworks/index.md diff --git a/src/content/translations/fr/developers/docs/gas/index.md b/public/content/translations/fr/developers/docs/gas/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/gas/index.md rename to public/content/translations/fr/developers/docs/gas/index.md diff --git a/src/content/translations/fr/developers/docs/ides/index.md b/public/content/translations/fr/developers/docs/ides/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/ides/index.md rename to public/content/translations/fr/developers/docs/ides/index.md diff --git a/src/content/translations/fr/developers/docs/index.md b/public/content/translations/fr/developers/docs/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/index.md rename to public/content/translations/fr/developers/docs/index.md diff --git a/src/content/translations/fr/developers/docs/intro-to-ether/index.md b/public/content/translations/fr/developers/docs/intro-to-ether/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/intro-to-ether/index.md rename to public/content/translations/fr/developers/docs/intro-to-ether/index.md diff --git a/src/content/translations/fr/developers/docs/intro-to-ethereum/index.md b/public/content/translations/fr/developers/docs/intro-to-ethereum/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/intro-to-ethereum/index.md rename to public/content/translations/fr/developers/docs/intro-to-ethereum/index.md diff --git a/src/content/translations/fr/developers/docs/layer-2-scaling/index.md b/public/content/translations/fr/developers/docs/layer-2-scaling/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/layer-2-scaling/index.md rename to public/content/translations/fr/developers/docs/layer-2-scaling/index.md diff --git a/public/content/translations/fr/developers/docs/mev/index.md b/public/content/translations/fr/developers/docs/mev/index.md new file mode 100644 index 00000000000..d6b26e5794a --- /dev/null +++ b/public/content/translations/fr/developers/docs/mev/index.md @@ -0,0 +1,221 @@ +--- +title: Valeur Extractible Maximale (Maximal extractable value - MEV) +description: Une introduction à la Valeur Extractible Maximale (Maximal extractable value - MEV) +lang: fr +--- + +La Valeur Extractible Maximale (MEV) représente la valeur maximale qui peut être extraite de la production d'un bloc au-delà de la récompense standard du bloc et des frais de gaz, en incluant, en excluant ou en modifiant l'ordre des transactions au sein d'un bloc. + +## Valeur extractible par minage {#miner-extractable-value} + +La valeur extractible maximale a été appliquée pour la première fois dans le contexte de [preuve de travail](/developers/docs/consensus-mechanisms/pow/), et initialement appelée « valeur extractible par les mineurs ». Ceci est dû au fait que dans la preuve de travail, les mineurs contrôlent les inclusions, exclusions et l'ordre des transactions. Cependant, depuis le passage à la preuve d'enjeu via [La Fusion](/roadmap/merge), les validateurs sont responsables de ces rôles, et le minage ne fait plus partie du protocole Ethereum. Les méthodes d'extraction de valeurs existent toujours, donc le terme « valeur extractible maximale » est maintenant utilisé à la place. + +## Prérequis {#prerequisites} + +Assurez-vous d'être à l'aise avec les concepts de [transactions](/developers/docs/transactions/), [blocs](/developers/docs/blocks/), [preuve d'enjeu](/developers/docs/consensus-mechanisms/pos) ainsi que [de gaz](/developers/docs/gas/). Se familiariser avec les [applications décentralisées (dApps)](/dapps/) et la [finance décentralisée (DeFi)](/defi/) peut également être utile. + +## Extraction MEV {#mev-extraction} + +En théorie, la MEV revient entièrement aux validateurs parce qu'ils sont la seule partie à pouvoir garantir l'exécution d'une MEV rentable. Cependant, en pratique, une grande partie des MEV est extraite par des participants indépendants du réseau qui sont appelés les « chercheurs ». Les chercheurs exécutent des algorithmes complexes sur les données de la blockchain pour détecter les opportunités MEV rentables et soumettent automatiquement au réseau ces transactions rentables via des programmes informatiques automatisés. + +Les validateurs obtiennent dans tous les cas une partie du montant total des MEV, puisque les chercheurs sont prêts à payer des frais de gaz élevés (revenant au validateur) en échange d'une plus grande probabilité d'inclure leurs transactions rentables dans un bloc. En supposant que les chercheurs soient économiquement rationnels, les frais de gaz qu'un chercheur est prêt à payer pourront atteindre 100 % du MEV du chercheur (parce que si les frais de carburant étaient plus élevés, le chercheur perdrait de l'argent). + +Ainsi, pour certaines opportunités MEV hautement compétitives, telles que [l'arbitrage DEX](#mev-examples-dex-arbitrage), les chercheurs devront parfois payer au validateur des frais de gaz, s'élevant à 90 % (ou même davantage) de leurs MEV totaux, car un grand nombre de personnes souhaitent utiliser le même négoce d'arbitrage. En effet, la seule façon de garantir que leur transaction d'arbitrage soit exécutée est de soumettre la transaction avec le prix de gaz le plus élevé. + +### Le gas-golfing {#mev-extraction-gas-golfing} + +Cette dynamique a fait du « gas-golfing » — le fait de programmer des transactions pour qu'elles utilisent le moins de gaz possible — un avantage concurrentiel, parce qu'il permet aux chercheurs de fixer un prix de gaz plus élevé tout en gardant leurs frais totaux constants (puisque les frais de gaz = prix du gaz \* gaz utilisé). + +Quelques techniques de gas-golfing bien connues consistent à : utiliser des adresses commençant par une longue chaîne de zéros (p. ex. [0x000000C521824EaFf97Eac7B73B084ef9306](https://etherscan.io/address/0x0000000000c521824eaff97eac7b73b084ef9306)) puisqu'elles occupent moins de place (et donc de gaz); ou bien laisser volontairement de petits soldes de jetons [ERC-20](/developers/docs/standards/tokens/erc-20/) dans les contrats, car il est plus cher d'initialiser un emplacement de stockage (ce qui se passe lorsque le solde est 0) que de le mettre à jour. Trouver de nouvelles techniques pour réduire la consommation de gaz est un domaine de recherche actif parmi les chercheurs. + +### Extracteurs embusqués (Frontrunners) {#mev-extraction-generalized-frontrunners} + +Plutôt que de programmer des algorithmes complexes pour détecter des opportunités MEV rentables, certains chercheurs exécutent des favoris généralisés. Les favoris généralisés sont des programmes automatiques qui scrutent le mempool pour détecter les transactions rentables. Le favori copiera le code de la transaction potentiellement rentable, remplacera les adresses par l'adresse du favori et exécutera la transaction localement pour vérifier doublement que la transaction modifiée génère un profit pour l'adresse du favori. Si la transaction est effectivement rentable, le favori soumettra la transaction modifiée avec l'adresse remplacée et un prix de carburant plus élevé devenant ainsi le favori de la transaction originale et ainsi obtenir le MEV du chercheur original. + +### Flashbots {#mev-extraction-flashbots} + +Flashbots est un projet indépendant qui étend les clients d'exécution avec un service qui permet aux chercheurs de soumettre des transactions MEV aux validateurs sans les révéler au mempool public . Cela empêche les transactions d'être exécutées par des favoris généralisés. + +## Exemples de MEV {#mev-examples} + +Les MEV apparaissent sur la blockchain de différentes façons. + +### Arbitrage DEX {#mev-examples-dex-arbitrage} + +[L'arbitrage sur les plateformes d'échanges décentralisées](/glossary/#dex) (DEX) est la possibilité MEV la plus simple et la plus connue. Par conséquent, c'est aussi le plus compétitif. + +Cela fonctionne ainsi : si deux DEX proposent un jeton à deux prix différents, quelqu'un peut acheter sur le DEX le jeton au prix le plus bas et le vendre au prix le plus élevé dans une transaction atomique unique. Grâce au mécanisme de la blockchain, c'est véritablement un arbitrage sans risque. + +[Voici l'exemple](https://etherscan.io/tx/0x5e1657ef0e9be9bc72efefe59a2528d0d730d478cfc9e6cdd09af9f997bb3ef4) d'une transaction d'arbitrage rentable où un chercheur a transformé 1 000 ETH en 1 045 ETH en profitant de prix différents de la paire ETH/DAI sur Uniswap vs. Sushiswap. + +### Liquidations {#mev-examples-liquidations} + +Les liquidations dans les protocoles de prêt représentent une autre occasion bien connue de MEV. + +Les protocoles de prêt comme Maker et Aave exigent que les utilisateurs déposent des garanties (par exemple ETH). Cette garantie déposée est ensuite utilisée pour prêter à d'autres utilisateurs. + +Les utilisateurs peuvent alors emprunter des actifs et des jetons à d'autres en fonction de ce dont ils ont besoin (p. ex. vous pourriez emprunter des MKR si vous voulez voter dans une proposition de gouvernance MakerDAO) jusqu'à un certain pourcentage de leur garantie déposée. Par exemple, si le montant d'emprunt est de 30 % maximum, un utilisateur qui dépose 100 DAI dans le protocole peut emprunter jusqu'à 30 DAI d'un autre actif. Le protocole détermine le pourcentage exact de pouvoir d'emprunt. + +La valeur des collatéraux d'un emprunteur fluctue, tout comme leur pouvoir d'emprunt. Si, en raison des fluctuations du marché, la valeur des actifs empruntés excède par exemple 30 % de la valeur de leur garantie (encore une fois, le pourcentage exact est déterminé par le protocole), le protocole permet généralement à quiconque de liquider la garantie et de rembourser instantanément les prêteurs (système similaire à la façon dont les [appels de marge](https://www.investopedia.com/terms/m/margincall.asp) fonctionnent dans la finance traditionnelle). En cas de liquidation, l'emprunteur doit généralement payer des frais de liquidation élevés, dont certains vont au liquidateur — c’est là que se trouve la possibilité du MEV. + +Les chercheurs rivalisent pour analyser les données de la blockchain le plus rapidement possible afin de déterminer quels emprunteurs peuvent être liquidés et être les premiers à soumettre une transaction de liquidation et à collecter les frais de liquidation pour eux-mêmes. + +### Échange Sandwich {#mev-examples-sandwich-trading} + +L'échange Sandwich est une autre méthode courante d'extraction MEV. + +Pour créer un sandwich, un chercheur va inspecter le mempool pour trouver des transactions DEX de grand volume. Par exemple, supposons que quelqu'un souhaite acheter 10 000 UNI avec DAI sur Uniswap. Un échange de cette ampleur aura un impact significatif sur la paire UNI/DAI, ce qui pourrait augmenter considérablement le prix de l'UNI par rapport à DAI. + +Un chercheur peut calculer l'impact approximatif en termes de prix de cette importante négociation sur la paire UNI/DAI et exécuter un ordre d'achat optimal immédiatement _avant_ le vaste échange en achetant ainsi des UNI à bon prix, puis exécuter un ordre de vente immédiatement _après_ l'échange en le vendant à un prix bien supérieur résultant de l'importance de l'ordre. + +Cependant, l'échange Sandwich est plus risqué, car il n'est pas atomique (contrairement à l'arbitrage DEX décrit ci-dessus) et est sujet à une [attaque à la salmonelle](https://github.com/Defi-Cartel/salmonella). + +### MEV sur NFT {#mev-examples-nfts} + +Le MEV dans l'espace NFT est un phénomène émergent et n'est pas nécessairement rentable. + +Cependant, étant donné que les transactions NFT se produisent sur la même blockchain partagée que toutes les autres transactions Ethereum, les chercheurs peuvent utiliser sur le marché des NFT des techniques similaires à celles traditionnellement utilisées pour les opportunités MEV. + +Par exemple, s'il y a une forte demande d'un NFT populaire et qu'un chercheur veut un certaine NFT ou un ensemble de NFT, il peut programmer une transaction de telle sorte qu'il soit le premier à acheter le NFT ou encore, il pourra acheter l'ensemble des NFT en une seule transaction. Ou si une NFT est [répertoriée par erreur à un prix bas](https://www.theblockcrypto.com/post/113546/mistake-sees-69000-cryptopunk-sold-for-less-than-a-cent), un chercheur peut faire face à d'autres acheteurs et la récupérer à moindre coût. + +Un exemple significatif de NFT MEV s'est produit lorsqu'un chercheur a dépensé 7 millions de dollars pour [acheter](https://etherscan.io/address/0x650dCdEB6ecF05aE3CAF30A70966E2F395d5E9E5) chaque Cryptopunk au prix plancher. Un chercheur en blockchain [a expliqué sur Twitter](https://twitter.com/IvanBogatyy/status/1422232184493121538) comment l'acheteur a travaillé avec un fournisseur MEV pour garder son secret d'achat. + +### La longue série {#mev-examples-long-tail} + +Les opérations d’arbitrage DEX, de liquidations et d'échange Sandwich sont toutes des opportunités MEV bien connues et ne sont pas susceptibles d’être rentables pour les nouveaux chercheurs. Cependant, il existe une longue série d'opportunités MEV moins connues (les NFT MEV sont sans aucun doute l'une de ces opportunités). + +Les chercheurs qui sont sur le point de débuter peuvent rencontrer davantage de succès en recherchant les MEV dans cette longue série. Le [MEV job board](https://github.com/flashbots/mev-job-board) de Flashbot liste certaines opportunités émergentes. + +## Effets du MEV {#effects-of-mev} + +MEV n’est pas que négatif. Il existe des conséquences positives et négatives concernant MEV sur Ethereum. + +### Les avantages {#effects-of-mev-the-good} + +De nombreux projets DeFi s'appuient sur des acteurs économiquement rationnels pour assurer l'utilité et la stabilité de leurs protocoles. Par exemple, l'arbitrage DEX garantit que les utilisateurs obtiennent le meilleur et le plus juste prix pour leurs jetons, et les protocoles de prêt reposent sur des liquidations rapides lorsque les emprunteurs tombent sous les ratios de garantie pour s'assurer que les prêteurs sont remboursés. + +Sans chercheurs rationnels qui cherchent et corrigent les inefficacités économiques et qui profitent des incitations économiques des protocoles, les protocoles DeFi et dApps en général peuvent ne pas être aussi robustes qu'ils le sont aujourd'hui. + +### Les inconvénients {#effects-of-mev-the-bad} + +À la couche de l'application, certaines formes de MEV, comme les échanges sandwich, entraînent sans équivoque une expérience pire pour les utilisateurs. Les utilisateurs qui sont pris en sandwichs sont confrontés à une augmentation du glissement et à une pire exécution pour leurs opérations. + +Au niveau de la couche réseau, les favoris généralisés et les ventes aux enchères de prix du gaz dans lesquelles ils se livrent souvent (lorsque deux ou plusieurs favoris rivalisent pour que leur transaction soit incluse dans le bloc suivant en augmentant progressivement le prix du gaz de leurs propres transactions) entraînent une congestion du réseau et des prix élevés de gaz pour tous les autres qui essaient de faire des transactions régulières. + +Au-delà de ce qui se passe _à l'intérieur des blocs_, le MEV peut avoir des effets nocifs _entre_ les blocs. Si le MEV disponible dans un bloc dépasse significativement la récompense standard du bloc, les validateurs peuvent être encouragés à réextraire des blocs et à capturer le MEV pour eux-mêmes, causant une réorganisation de la blockchain et une instabilité consensuelle. + +Cette possibilité de réorganisation de la blockchain a été [précédemment rencontrée sur la blockchain Bitcoin](https://dl.acm.org/doi/10.1145/2976749.2978408). Comme la récompense de bloc de Bitcoin est divisée en deux et les frais de transaction représentent une part plus grande de la récompense de bloc, des situations apparaissent où il devient économiquement rationnel pour les mineurs d'abandonner la récompense du prochain bloc et de réextraire les blocs passés avec des frais plus élevés. Avec la croissance du MEV, le même type de situation pourrait se produire avec Ethereum, menaçant l'intégrité de la blockchain. + +## État du MEV {#state-of-mev} + +L’extraction MEV a été organisée au début de 2021, ce qui a entraîné des prix de gaz extrêmement élevés au cours des premiers mois de l’année. L'émergence du relais MEV de Flashbots a réduit l'efficacité des favoris généralisés et en prenant les enchères sur les prix du gaz hors chaîne, a permis la baisse des prix de gaz pour les utilisateurs ordinaires. + +Bien que de nombreux chercheurs gagnent encore beaucoup d'argent avec la MEV, au fur et à mesure que les opportunités deviennent plus connues et que de plus en plus de chercheurs se font concurrence pour la même opportunité, les validateurs capteront de plus en plus le revenu total de la MEV (parce que le même type de ventes aux enchères de gaz, tel que décrit à l'origine ci-dessus, se produit également dans les Flashbots, bien que de manière privée, et les validateurs capteront le revenu des gaz qui en résulte). MEV n'est pas non plus l'apanage d'Ethereum et à mesure que les possibilités deviennent plus compétitives sur Ethereum, les chercheurs se déplacent vers des blockchains alternatifs comme Binance Smart Chain, où des possibilités MEV similaires à celles sur Ethereum existent mais avec moins de concurrence. + +D'autre part, la transition de la preuve de travail à la preuve d'enjeu et les efforts en cours pour faire évoluer Ethereum à l'aide de rollups modifient le paysage de la MEV d'une manière qui n'est pas encore très claire. On ne sait pas encore bien comment le fait que les promoteurs de blocs garantis soient connus légèrement à l'avance modifie la dynamique de l'extraction de la MEV par rapport au modèle probabiliste dans la preuve de travail ou comment cela sera perturbé lorsque [l'élection d'un leader secret unique](https://ethresear.ch/t/secret-non-single-leader-election/11789) et [la technologie de validateur distribué](/staking/dvt/) seront mis en œuvre. De même, il reste à voir quelles seront les opportunités de MEV lorsque la plupart des activités des utilisateurs seront transférées d'Ethereum vers ses rollups et shards de niveau 2. + +## MEV dans Ethereum Proof-of-Stake (PoS) {#mev-in-ethereum-proof-of-stake} + +Comme expliqué, la MEV a des implications négatives sur l'expérience globale de l'utilisateur et la sécurité de la couche de consensus. Mais la transition d'Ethereum vers un consensus de preuve d'enjeu (surnommé « La Fusion ») introduit potentiellement de nouveaux risques liés à la MEV : + +### Centralisation des validateurs {#validator-centralization} + +Dans l'Ethereum post-fusion, les validateurs (ayant effectué des dépôts de sécurité de 32 ETH) parviennent à un consensus sur la validité des blocs ajoutés à la chaîne Beacon. Puisque 32 ETH peuvent être hors de portée pour beaucoup, [joindre un pool de jalonnement](/staking/pools/) peut être une option plus réalisable. Néanmoins, une distribution saine de [solo stakers](/staking/solo/) est idéale, car elle atténue la centralisation des validateurs et améliore la sécurité d'Ethereum. + +Cependant, on pense que l'extraction des MEV est capable d'accélérer la centralisation des validateurs. C'est en partie parce que, comme les validateurs [gagnent moins pour proposer des blocs](/roadmap/merge/issuance/#how-the-merge-impacts-ETH-supply) que les mineurs actuellement, l'extraction de MEV peut grandement [influencer les gains des validateurs](https://github.com/flashbots/eth2-research/blob/main/notebooks/mev-in-eth2/eth2-mev-calc.ipynb) après La Fusion. + +Les pools de jalonnement plus importants auront probablement plus de ressources à investir dans les optimisations nécessaires pour saisir les opportunités de MEV. Plus ces pools extraient de MEV, plus ils disposent de ressources pour améliorer leurs capacités d'extraction de MEV (et augmenter leurs revenus globaux), créant essentiellement [des économies d'échelle](https://www.investopedia.com/terms/e/economiesofscale.asp#). + +Avec moins de ressources à leur disposition, il se peut que les stakers solos ne puissent pas profiter des opportunités des MEV. Cela pourrait accroître la pression sur les validateurs indépendants pour qu'ils rejoignent de puissants pools de jalonnement pour augmenter leurs revenus, réduisant ainsi la décentralisation d'Ethereum. + +### Mempools autorisés {#permissioned-mempools} + +En réponse aux attaques de type « sandwiching » et « frontrunning », les commerçants peuvent commencer à effectuer des transactions hors chaîne avec des validateurs pour assurer la confidentialité des transactions. Au lieu d'envoyer une transaction MEV potentielle au mempool public, le trader l'envoie directement au validateur, qui l'inclut dans un bloc et partage les bénéfices avec le trader. + +Les « dark pools » sont une version plus large de cet arrangement et fonctionnent comme des mempools à accès limité et autorisés, ouverts aux utilisateurs prêts à payer certains frais. Cette tendance diminuerait l'absence de permission et de confiance d'Ethereum et transformerait potentiellement la blockchain en un mécanisme « pay-to-play » qui favorise le plus offrant. + +Les mempools à autorisation accéléreraient également les risques de centralisation décrits dans la section précédente. Les grands pools qui exploitent plusieurs validateurs bénéficieront probablement de la confidentialité des transactions pour les commerçants et les utilisateurs, ce qui augmentera leurs revenus MEV. + +La lutte contre ces problèmes liés à la MEV dans l'Ethereum post-fusion est un domaine de recherche essentiel. À ce jour, deux solutions proposées pour réduire l'impact négatif du MEV sur la décentralisation et la sécurité d'Ethereum après la Fusion sont **Séparation Proposant-Constructeur (PBS)** et l'**API constructeur**. + +### Séparation entre le proposant et le constructeur {#proposer-builder-separation} + +Dans le cas de la preuve de travail et de la preuve d'enjeu, un nœud qui construit un bloc le propose aux autres nœuds participant au consensus pour qu'il soit ajouté à la chaîne. Un nouveau bloc devient partie intégrante de la chaîne canonique après qu'un autre mineur l'a construit (en PoW) ou qu'il a reçu les attestations de la majorité des validateurs (en Pos). + +La combinaison des rôles de producteur et de proposant de blocs est à l'origine de la plupart des problèmes liés à la MEV décrits précédemment. Par exemple, les nœuds de consensus sont incités à déclencher des réorganisations de chaînes lors d'attaques de type « time-bandit » afin de maximiser les gains MEV. + +[Proposer-builder separation](https://ethresear.ch/t/proposer-block-builder-separation-friendly-fee-market-designs/9725) (PBS) est conçu pour atténuer l'impact de la MEV, en particulier au niveau de la couche de consensus. La principale caractéristique de PBS est la séparation des règles relatives aux producteurs et aux proposants de blocs. Les validateurs sont toujours chargés de proposer et de voter sur les blocs, mais une nouvelle classe d'entités spécialisées, appelées **block builders**, sont chargées d'ordonner les transactions et de construire les blocs. + +Dans le cadre de la PBS, un constructeur de blocs crée un paquet de transactions et fait une offre pour son inclusion dans un bloc de la chaîne Beacon (en tant que « charge utile d'exécution »). Le validateur sélectionné pour proposer le bloc suivant vérifie alors les différentes offres et choisit le lot ayant le tarif le plus élevé. PBS crée essentiellement un marché aux enchères, où les constructeurs négocient avec les validateurs qui vendent de l'espace de bloc. + +Les conceptions actuelles de PBS utilisent un [schéma d'engagement-révélation](https://gitcoin.co/blog/commit-reveal-scheme-on-ethereum/) dans lequel les constructeurs ne publient qu'un engagement cryptographique sur le contenu d'un bloc (en-tête de bloc) avec leurs offres. Après avoir accepté l'offre gagnante, le proposant crée une proposition de bloc signée qui comprend l'en-tête de bloc. Le constructeur de blocs est censé publier le corps complet du bloc après avoir vu la proposition de bloc signée, et il doit également recevoir suffisamment d'[attestations](/glossary/#attestation) des validateurs avant qu'il ne soit finalisé. + +#### Comment la séparation proposant-constructeur atténue-t-elle l'impact de la MEV ? {#how-does-pbs-curb-mev-impact} + +La séparation entre le proposant et le constructeur dans le protocole réduit l'effet de la MEV sur le consensus en retirant l'extraction de la MEV de la compétence des validateurs. Ce sont plutôt les constructeurs de blocs utilisant du matériel spécialisé qui saisiront les opportunités de MEV à l'avenir. + +Cela n'exclut pas totalement les validateurs des revenus liés à la MEV, car les constructeurs doivent faire des offres élevées pour que leurs blocs soient acceptés par les validateurs. Néanmoins, les validateurs n'étant plus directement axés sur l'optimisation des revenus de la MEV, la menace des attaques de type « time-bandit » diminue. + +La séparation proposant-constructeur réduit également les risques de centralisation de la MEV. Par exemple, l'utilisation d'un schéma commit-reveal évite aux constructeurs de devoir faire confiance aux validateurs pour ne pas voler l'opportunité MEV ou l'exposer aux autres constructeurs. Cela réduit la barrière qui empêche les stakers solitaires de bénéficier de la MEV, sinon les constructeurs auraient tendance à favoriser les grands pools ayant une réputation hors chaîne et à conclure des accords hors chaîne avec eux. + +De même, les validateurs n'ont pas à faire confiance aux constructeurs pour qu'ils ne retiennent pas les corps de blocs ou ne publient pas de blocs invalides, car le paiement est inconditionnel. Les frais du validateur sont toujours traités même si le bloc proposé est indisponible ou déclaré invalide par d'autres validateurs. Dans ce dernier cas, le bloc est tout simplement rejeté, ce qui oblige le créateur du bloc à perdre tous les frais de transaction et les revenus de la MEV. + +### API pour les builders {#builder-api} + +Bien que la séparation des proposants et des constructeurs promette de réduire les effets de l'extraction des MEV, sa mise en œuvre nécessite des modifications du protocole de consensus. Plus précisément, la règle [fork choice](/developers/docs/consensus-mechanisms/pos/#fork-choice) de la chaîne de balises devrait être mise à jour. L'[API pour les builders](https://github.com/ethereum/builder-specs) est une solution temporaire visant à fournir une mise en œuvre fonctionnelle de la séparation proposer-bâtir, bien qu'avec des hypothèses de confiance plus élevées. + +L'API pour les builders est une version modifiée de l'API [Engine API](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) utilisée par les clients de la couche de consensus pour demander des charges utiles d'exécution aux clients de la couche d'exécution. Comme indiqué dans la [spécification du validateur honnête](https://github.com/ethereum/consensus-specs/blob/dev/specs/bellatrix/validator.md), les validateurs sélectionnés pour les tâches de proposition de bloc demandent un paquet de transactions à un client d'exécution connecté, qu'ils incluent dans le bloc de la chaîne Beacon proposé. + +L'API pour les builders fait également office d'intergiciel entre les validateurs et les clients de la couche d'exécution, mais elle est différente car elle permet aux validateurs de la chaîne Beacon de s'approvisionner en blocs auprès d'entités externes (au lieu de construire un bloc localement à l'aide d'un client d'exécution). + +Vous trouverez ci-dessous un aperçu du fonctionnement de l'API pour les builders : + +1. L'API pour les builders connecte le validateur à un réseau de constructeurs de blocs exécutant des clients de la couche d'exécution. Comme dans le cas de PBS, les constructeurs sont des parties spécialisées qui investissent dans la construction de blocs à forte intensité de ressources et utilisent différentes stratégies pour maximiser les revenus tirés des MEV + les pourboires prioritaires. + +2. Un validateur (qui exécute un client de la couche de consensus) demande des charges utiles d'exécution ainsi que des offres au réseau de constructeurs. Les offres des constructeurs contiendront l'en-tête de la charge utile d'exécution - un engagement cryptographique sur le contenu de la charge utile - et une redevance à payer au validateur. + +3. Le validateur examine les offres entrantes et choisit la charge utile d'exécution dont les frais sont les plus élevés. À l'aide de l'API pour les builders, le validateur crée une proposition de bloc Beacon "aveugle" qui comprend uniquement sa signature et l'en-tête de la charge utile d'exécution et l'envoie au builder. + +4. Le constructeur qui exécute l'API pour les builders est censé répondre avec la totalité de la charge utile d'exécution lorsqu'il voit la proposition de bloc aveuglé. Cela permet au validateur de créer un bloc Beacon « signé », qu'il propage à travers le réseau. + +5. Un validateur utilisant l'API pour les builders est toujours censé construire un bloc localement au cas où le constructeur de blocs ne répondrait pas rapidement, afin de ne pas manquer les récompenses de la proposition de bloc. Cependant, le validateur ne peut pas créer un autre bloc en utilisant les transactions maintenant révélées ou un autre ensemble, car cela reviendrait à _équivocation_ (signer deux blocs dans le même slot), ce qui est une infraction répréhensible. + +Un exemple d'implémentation de l'API pour les builders est [MEV Boost](https://github.com/flashbots/mev-boost), une amélioration du [mécanisme d'enchères Flashbots](https://docs.flashbots.net/Flashbots-auction/overview/) conçu pour freiner les externalités négatives de la MEV sur Ethereum. L'enchère Flashbots permet aux mineurs en proof-of-work d'externaliser le travail de construction de blocs rentables à des parties spécialisées appelées **searchers**. + +Les chercheurs recherchent des opportunités MEV lucratives et envoient des paquets de transactions aux mineurs avec une [offre à prix scellé](https://en.wikipedia.org/wiki/First-price_sealed-bid_auction) pour l'inclusion dans le bloc. Le mineur qui exécute mev-geth, une version bifurquée du client go-ethereum (Geth), n'a qu'à choisir le paquet qui rapporte le plus et le miner dans le cadre du nouveau bloc. Pour protéger les mineurs des spams et des transactions invalides, les paquets de transactions passent par des **relayers** pour validation avant d'arriver aux mineurs. + +MEV Boost conserve le même fonctionnement que la vente aux enchères Flashbots originale, mais avec de nouvelles fonctionnalités conçues pour le passage à la preuve d'enjeu d'Ethereum. Les chercheurs trouvent toujours des transactions MEV rentables à inclure dans les blocs, mais une nouvelle catégorie de parties spécialisées, appelées **constructeurs**, sont responsables de l'agrégation des transactions et des paquets en blocs. Un builder accepte les offres à prix scellés des chercheurs et effectue des optimisations pour trouver la commande la plus rentable. + +Le relayeur est toujours responsable de la validation des paquets de transactions avant de les transmettre au proposant. Cependant, MEV Boost introduit des **escrows** chargés de fournir [la disponibilité des données](/developers/docs/data-availability/) en stockant les corps de blocs envoyés par les constructeurs et les en-têtes de blocs envoyés par les validateurs. Ici, un validateur connecté à un relais demande les charges utiles d'exécution disponibles et utilise l'algorithme d'ordonnancement de MEV Boost pour sélectionner l'en-tête de charge utile avec l'offre la plus élevée + les conseils MEV. + +#### Comment l'API pour les builders atténue-t-elle l'impact de la MEV ? {#how-does-builder-api-curb-mev-impact} + +L'avantage principal de l'API pour les builders est son potentiel de démocratisation de l'accès aux opportunités MEV. L'utilisation de schémas commit-reveal élimine les hypothèses de confiance et réduit les barrières d'entrée pour les validateurs qui cherchent à bénéficier de la MEV. Cela devrait réduire la pression exercée sur les jalonneurs solitaires pour qu'ils s'intègrent à de grands pools de jalonnement afin d'augmenter les profits de la MEV. + +La mise en œuvre généralisée de l'API pour les builders favorisera une plus grande concurrence entre les constructeurs de blocs, ce qui augmentera la résistance à la censure. Comme les validateurs examinent les offres de plusieurs constructeurs, un constructeur qui a l'intention de censurer une ou plusieurs transactions d'utilisateurs doit surenchérir sur tous les autres constructeurs non censurés pour réussir. Cela augmente considérablement le coût de la censure des utilisateurs et décourage cette pratique. + +Certains projets, tels que MEV Boost, utilisent l'API pour les builders dans le cadre d'une structure globale conçue pour assurer la confidentialité des transactions à certaines parties, telles que les traders qui tentent d'éviter les attaques de type frontrunning/sandwiching. Pour ce faire, un canal de communication privé est mis en place entre les utilisateurs et les constructeurs de blocs. Contrairement aux mempools à autorisation décrits précédemment, cette approche est bénéfique pour les raisons suivantes : + +1. L'existence de multiples constructeurs sur le marché rend la censure peu pratique, ce qui profite aux utilisateurs. En revanche, l'existence de dark pools centralisés et basés sur la confiance concentrerait le pouvoir entre les mains de quelques constructeurs de blocs et augmenterait la possibilité de censure. + +2. Le logiciel API pour les builders est un logiciel libre, ce qui permet à quiconque de proposer des services de construction de blocs. Cela signifie que les utilisateurs ne sont pas obligés d'utiliser un constructeur de blocs particulier et cela améliore la neutralité et l'absence de permission d'Ethereum. De plus, les commerçants à la recherche de MEV ne contribueront pas par inadvertance à la centralisation en utilisant des canaux de transaction privés. + +## Ressources associées {#related-resources} + +- [Docs Flashbots](https://docs.flashbots.net/) +- [GitHub Flashbots](https://github.com/flashbots/pm) +- [MEV-Explore](https://explore.flashbots.net/) _Tableau de bord et explorateur de transactions en direct pour les transactions MEV_ +- [mevboost.org](https://www.mevboost.org/) - _Traqueur en temps réel avec statistiques pour les relais MEV-Boost et les constructeurs de blocs_ + +## Complément d'information {#further-reading} + +- [Qu'est-ce qu'une valeur extractible par minage (MEV) ?](https://blog.chain.link/what-is-miner-extractable-value-mev/) +- [MEV et moi](https://www.paradigm.xyz/2021/02/mev-and-me) +- [L'Ethereum est une Forêt Sombre](https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest/) +- [S'échapper de la forêt Sombre](https://samczsun.com/escaping-the-dark-forest/) +- [Flashbots : Devancer la crise des MEV](https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752) +- [@bertcmiller's MEV Threads](https://twitter.com/bertcmiller/status/1402665992422047747) +- [MEV-Boost : Fusionner l'architecture Flashbots](https://ethresear.ch/t/mev-boost-merge-ready-flashbots-architecture/11177) +- [Qu'est-ce que MEV Boost](https://www.alchemy.com/overviews/mev-boost) +- [Pourquoi exécuter mev-boost ?](https://writings.flashbots.net/writings/why-run-mevboost/) +- [Le Guide des randonneurs sur Ethereum](https://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum) diff --git a/public/content/translations/fr/developers/docs/networking-layer/index.md b/public/content/translations/fr/developers/docs/networking-layer/index.md new file mode 100644 index 00000000000..5a8d2c03d45 --- /dev/null +++ b/public/content/translations/fr/developers/docs/networking-layer/index.md @@ -0,0 +1,155 @@ +--- +title: Couche de réseautage +description: Introduction à la couche réseau Ethereum. +lang: fr +sidebarDepth: 2 +--- + +Ethereum est un réseau pair-à-pair composé de milliers de nœuds qui doivent pouvoir communiquer entre eux en utilisant des protocoles standardisés. La « couche réseau » est la pile de protocoles qui permettent à ces nœuds de se trouver et d'échanger des informations. Cela inclut des informations de commutation (communication de type « d'une personne à plusieurs ») sur le réseau, ainsi que des échanges de requêtes et de réponses entre des nœuds spécifiques (communication de type « de personne à personne »). Chaque nœud doit adhérer à des règles de réseautage spécifiques pour s'assurer qu'il envoie et reçoit les informations correctes. + +Il existe deux types de logiciels clients (les clients d'exécution et les clients de consensus), chacun disposant de sa propre pile réseau. En plus de communiquer avec d’autres nœuds Ethereum, les clients d’exécution et de consensus doivent communiquer entre eux. Cette page est une introduction explicative des protocoles qui permettent cette communication. + +Les clients d'exécution font circuler des informations sur les transactions dans le réseau pair-à-pair de la couche d'exécution. Cela nécessite une communication chiffrée entre les pairs authentifiés. Lorsqu'un validateur est sélectionné pour proposer un bloc, les transactions depuis le pool de transactions locales du nœud seront transmises à des clients de consensus via une connexion RPC locale, qui sera empaquetée dans des blocs de chaîne phare. Les clients de consensus diffuseront ensuite les blocs de la chaîne phare au travers de leur réseau p2p. Deux réseaux p2p distincts sont donc nécessaires : un connecté au client d'exécution pour les commutations de transaction et un client de consensus pour les blocs de commutation. + +## Prérequis {#prerequisites} + +Une certaine connaissance des [nœuds et clients d'Ethereum](/developers/docs/nodes-and-clients/) sera utile pour comprendre cette page. + +## La couche d'exécution {#execution-layer} + +Les protocoles de réseau de la couche d'exécution sont divisés en deux piles : + +- la pile de découverte : s'appuie sur UDP et permet à un nouveau nœud de trouver des pairs auxquels se connecter + +- la pile DevP2P : s'appuie sur TCP et permet aux nœuds d'échanger des informations + +Les deux piles fonctionnent en parallèle. La pile de découverte alimente le réseau en nouveaux participants, et la pile DevP2P permet leurs interactions. + +### La découverte {#discovery} + +La découverte est le processus permettant de trouver d'autres nœuds sur le réseau. Il est amorcé en utilisant un petit ensemble de nœuds de démarrage (nœuds dont les adresses sont [codées en dur](https://github.com/ethereum/go-ethereum/blob/master/params/bootnodes.go) dans le client afin de pouvoir être trouvés immédiatement et de connecter le client à des pairs). Ces nœuds de démarrage n'existent que pour introduire un nouveau nœud à un ensemble de pairs - c'est leur seul objectif, ils ne participent pas aux tâches normales du client comme la synchronisation de la chaîne, et ils ne sont utilisés que lors du premier lancement d'un client. + +Le protocole utilisé pour les interactions des nœuds avec les nœuds de démarrage est une forme modifiée de [Kademlia](https://medium.com/coinmonks/a-brief-overview-of-kademlia-and-its-use-in-various-decentralized-platforms-da08a7f72b8f) qui utilise une [table de hachage distribué](https://en.wikipedia.org/wiki/Distributed_hash_table) pour partager des listes de nœuds. Chaque nœud dispose d'une version de cette table contenant les informations nécessaires pour se connecter à ses pairs les plus proches. Cette « proximité » n'est pas géographique - la distance est définie par la similitude de l'ID du nœud. Chaque table de nœud est régulièrement actualisée en tant que fonctionnalité de sécurité. Par exemple, dans [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5), les nœuds de protocole de découverte sont également en mesure d'envoyer des « publicités » qui affichent les sous-protocoles pris en charge par le client, ce qui permet aux pairs de négocier les protocoles qu'ils peuvent tous deux utiliser pour communiquer. + +Le processus de découverte commence par une partie de PING-PONG. Un PING-PONG réussi va « lier » le nouveau nœud à un nœud de démarrage. Le message initial qui avertit un nœud de démarrage de l'existence d'un nouveau nœud entrant sur le réseau est un `PING`. Ce `PING` inclut des informations hachées sur le nouveau nœud, le nœud de démarrage et une date d'expiration. Le nœud de démarrage reçoit le `PING` et retourne un `PONG` contenant le hachage `PING`. Si les hachages `PING` et `PONG` correspondent, alors la connexion entre le nouveau nœud et le nœud de démarrage est vérifiée et on dit qu'ils sont « liés ». + +Une fois lié, le nouveau nœud peut envoyer une requête `FIND-NEIGHBOURS` au nœud de démarrage. Les données retournées par le nœud de démarrage incluent une liste de pairs auxquels le nouveau nœud peut se connecter. Si les nœuds ne sont pas liés, la requête `FIND-NEIGHBOURS` échouera, de sorte que le nouveau nœud ne pourra pas entrer sur le réseau. + +Dès que le nouveau nœud reçoit une liste de voisins depuis le nœud de démarrage, il commence un échange PING-PONG avec chacun d'eux. Les PING-PONG réussissent à lier le nouveau nœud avec ses voisins, ce qui permet l’échange de messages. + +``` +démarrage du client --> connexion au nœud de démarrage --> lien avec le nœud de démarrage --> trouver les voisins --> liens avec les voisins +``` + +Les clients d'exécution utilisent actuellement le protocole de découverte [Discv4](https://github.com/ethereum/devp2p/blob/master/discv4.md) et des actions ont été entreprises pour migrer vers le protocole [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5). + +#### ENR : Ethereum Node Records (Registres des Nœuds Ethereum) {#enr} + +Le [registre des nœuds Ethereum (ENR : Ethereum Node Records)](/developers/docs/networking-layer/network-addresses/) est un objet qui contient trois éléments de base : une signature (hachage du contenu des registres selon un schéma d'identité convenu), un numéro de séquence qui suit les modifications apportées au registre, et une liste arbitraire de paires clé/valeur. Il s'agit d'un format à l'épreuve du futur qui permet de simplifier l'échange d'informations d'identification entre les nouveaux pairs. C'est également le format [d'adresse réseau](/developers/docs/networking-layer/network-addresses) préféré pour les nœuds Ethereum. + +#### Pourquoi le processus de découverte est-il basé sur UDP ? {#why-udp} + +UDP ne prend pas en charge le contrôle des erreurs, le renvoi des paquets en échec, ou l'ouverture et la fermeture dynamique des connexions. Il se contente d'envoyer un flux continu d'informations à une cible, qu'il soit ou non reçu avec succès. Cette fonctionnalité minimale se traduit également par un minimum de frais, ce qui rend ce type de connexion très rapide. Pour la découverte, où un nœud veut simplement faire connaître sa présence afin d'établir ensuite une connexion formelle avec un pair, UDP est suffisant. Cependant, pour le reste de la pile de réseaux, UDP n'est pas adapté. L'échange d'informations entre les nœuds est assez complexe et a donc besoin d'un protocole plus complet qui puisse prendre en charge le renvoi, la vérification des erreurs, etc. Les frais supplémentaires associés à TCP valent la peine de bénéficier de fonctionnalités supplémentaires. Par conséquent, la majorité de la pile P2P fonctionne sur TCP. + +### DevP2P {#devp2p} + +DevP2P est en lui-même une pile de protocoles qu'Ethereum implémente pour établir et maintenir le réseau de pair à pair. Une fois les nouveaux nœuds entrés sur le réseau, leurs interactions sont régies par des protocoles dans la pile [DevP2P](https://github.com/ethereum/devp2p). Ils reposent tous sur TCP et comprennent le protocole de transport RLPx, le protocole filaire et plusieurs sous-protocoles. [RLPx](https://github.com/ethereum/devp2p/blob/master/rlpx.md) est le protocole régissant l'initiation, l'authentification et la maintenance des sessions entre nœuds. RLPx code les messages à l'aide de RLP (Recursive Length Prefix), une méthode très efficace d'encodage des données dans une structure minimale pour l'envoi entre nœuds. + +Une session RLPx entre deux nœuds commence par une poignée de main cryptographique. Cela implique que le nœud envoie un message d'authentification qui est ensuite vérifié par le pair. En cas de vérification réussie, le pair génère un message de reconnaissance d'authentification à renvoyer au nœud initiateur. Il s'agit d'un processus d'échange de clés qui permet aux nœuds de communiquer en privé et en toute sécurité. Une poignée de main cryptographique réussie déclenche ensuite l'envoi par les deux nœuds d'un message « bonjour » « en mode filaire ». Le protocole filaire est initié par un échange réussi de messages de bienvenue. + +Les messages de bienvenue contiennent : + +- La version du protocole +- L'ID du client +- Le port +- L'ID du nœud +- La liste des sous-protocoles pris en charge + +Ce sont les informations requises pour une interaction réussie, car elles définissent les capacités qui sont partagées entre les deux nœuds et configurent la communication. Il existe un processus de négociation de sous-protocoles où les listes de sous-protocoles prises en charge par chaque nœud sont comparées ; ceux qui sont communs aux deux nœuds peuvent être utilisés dans la session. + +Outre les messages de bienvenue, le protocole filaire peut également envoyer un message de « déconnexion » qui avertit un pair que la connexion va être fermée. Le protocole filaire comprend également les messages PING et PONG qui sont envoyés périodiquement pour conserver une session ouverte. Les échanges de RLPx et de protocoles filaires établissent donc les bases de la communication entre les nœuds, fournissant l'échafaudage nécessaire à l'échange d'informations utiles selon un sous-protocole spécifique. + +### Sous-protocoles {#sub-protocols} + +#### Le protocole filaire {#wire-protocol} + +Une fois que les pairs sont connectés et qu'une session RLPx est entamée, le protocole filaire définit la façon dont les pairs communiquent. Initialement, le protocole filaire définissait trois tâches principales : synchronisation de chaînes, propagation de blocs et échange de transactions. Cependant, depuis qu'Ethereum est passé à la preuve d'enjeu, la propagation des blocs et la synchronisation des chaînes sont devenues partie intégrante de la couche de consensus. L'échange de transactions est toujours à la charge des clients d'exécution. L'échange de transactions fait référence à l'échange de transactions en attente entre les nœuds afin que les mineurs puissent sélectionner certains d'entre eux pour les inclure dans le bloc suivant. Des informations plus détaillées sur ces tâches sont disponibles [ici](https://github.com/ethereum/devp2p/blob/master/caps/eth.md). Les clients qui prennent en charge ces sous-protocoles les affichent via [JSON-RPC](/developers/docs/apis/json-rpc/). + +#### Les (sous-protocole ethereum léger) {#les} + +Il s'agit d'un protocole minimal destiné à synchroniser les clients légers. Jusqu'à présent, ce protocole a rarement été utilisé, dans la mesure où les nœuds complets sont contraints de servir des données à des clients légers sans être incités à le faire. Le comportement par défaut des clients d'exécution n'est pas de servir des données clientes légères via les. D'autres informations sont disponibles dans les [spécifications](https://github.com/ethereum/devp2p/blob/master/caps/les.md). + +#### Snap (protocole d'accrochage) {#snap} + +Le [protocole snap](https://github.com/ethereum/devp2p/blob/master/caps/snap.md#ethereum-snapshot-protocol-snap) est une extension optionnelle qui permet aux pairs d'échanger des instantanés d'états récents, permettant aux pairs de vérifier les données de compte et de stockage sans avoir à télécharger les nœuds intermédiaires d'arbre de Merkle. + +#### Wit (protocole de témoin) {#wit} + +Le [protocole de témoin](https://github.com/ethereum/devp2p/blob/master/caps/wit.md#ethereum-witness-protocol-wit) est une extension facultative qui permet l'échange de témoins d'état entre pairs, aidant à synchroniser les clients à la pointe de la chaîne. + +#### Whisper {#whisper} + +Whisper était un protocole visant à fournir une messagerie sécurisée entre pairs sans écrire aucune information sur la blockchain. Il faisait partie du protocole filaire DevP2P mais est maintenant obsolète. D'autres [projets connexes](https://wakunetwork.com/) existent avec des objectifs similaires. + +## La couche de consensus {#consensus-layer} + +Les clients de consensus participent à un réseau distinct de pair-à-pair avec une spécification différente. Les clients de consensus doivent participer à des commutateurs de blocs afin de recevoir des pairs de nouveaux blocs de leurs pairs et les diffuser quand c'est à leur tour de proposer un bloc. De la même manière que la couche d'exécution, cette approche nécessite d'abord un protocole de découverte afin qu'un nœud puisse trouver des pairs et établir des sessions sécurisées pour échanger des blocs, des attestations, etc. + +### La découverte {#consensus-discovery} + +Comme pour les clients d'exécution, les clients de consensus utilisent [discv5](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-discovery-domain-discv5) sur UDP pour trouver des pairs. L'implémentation de la couche de consensus de discv5 diffère de celle des clients d'exécution uniquement en ce qu'elle inclut un adaptateur connectant discv5 dans une pile [libP2P](https://libp2p.io/), dépréciant DevP2P. Les sessions de la couche d'exécution RLPx sont dépréciées au profit du système de liaison sécurisé libP2P. + +### ENRs {#consensus-enr} + +L'ENR pour les nœuds de consensus inclut la clé publique du nœud, l'adresse IP, les ports UDP et TCP et deux champs spécifiques au consensus : l'attestation bitfield du sous-réseau et la clé `eth2`. Le premier permet aux nœuds de trouver plus facilement des nœuds participant à des sous-réseaux de commutation d'attestations spécifiques. La clé `eth2` contient des informations sur la version de la fourche d'Ethereum que le nœud utilise, en s'assurant que les pairs se connectent au bon Ethereum. + +### libP2P {#libp2p} + +La pile libP2P prend en charge toutes les communications après la découverte. Les clients peuvent composer et écouter sur IPv4 et/ou IPv6 tel que défini dans leur ENR. Les protocoles de la couche libP2P peuvent être subdivisés en domaines de commutation et de questions/réponses. + +### Commutation {#gossip} + +Le domaine du commutateur inclut toutes les informations qui doivent se propager rapidement sur le réseau. Cela inclut les blocs de la chaîne phare, les preuves, les attestations, les sorties et les coupes. Les informations sont transmises à l'aide de libP2P gossipsub v1 et repose sur diverses métadonnées stockées localement sur chaque nœud, y compris la taille maximale des charges de commutation à recevoir et à transmettre. Des informations plus détaillées sur les domaines de commutation sont disponibles [ici](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-gossip-domain-gossipsub). + +### Question-réponse {#request-response} + +Le domaine question-réponse contient des protocoles pour les clients demandant des informations spécifiques à leurs pairs. Il peut s'agir, par exemple, de demander des blocs spécifiques de la chaîne phare correspondant à certains hachages de la racine ou se situant dans une gamme d'emplacements. Les réponses sont toujours renvoyées sous la forme d'octets encodés SSZ compressés par snappy. + +## Pourquoi le client de consensus préfère-t-il SSZ à RLP ? {#ssz-vs-rlp} + +SSZ signifie "sérialisation simple". Elle utilise des décalages fixes qui facilitent le décodage de parties individuelles d'un message encodé sans avoir à décoder toute la structure, ce qui est très utile pour le client de consensus qui peut récupérer efficacement des éléments d'information spécifiques à partir de messages codés. Elle est également conçue spécifiquement pour s’intégrer aux protocoles Merkle, cela se traduisant par des gains d'efficacité pour la Merkleization. Puisque tous les hachages de la couche de consensus sont des racines de Merkle, cela représente une amélioration significative. SSZ garantit également des représentations uniques de valeurs. + +## Connexion des clients d'exécution et de consensus {#connecting-clients} + +Les clients de consensus et d'exécution fonctionnent en parallèle. Ils doivent être connectés afin que le client de consensus puisse fournir des instructions au client d'exécution et que le client d'exécution puisse passer des paquets de transactions au client de consensus pour les inclure dans les blocs phares. Cette communication entre les deux clients peut être réalisée en utilisant une connexion RPC locale. Une API connue sous le nom de ['Engine-API'](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) définit les instructions envoyées entre les deux clients. Puisque les deux clients se trouvent derrière une seule identité de réseau, ils partagent un ENR (registre de nœuds Ethereum) qui contient une clé séparée pour chaque client (clé eth1 et clé eth2). + +Un résumé du flux de contrôle est affiché ci-dessous (la pile réseau pertinente apparaît entre parenthèses). + +### Lorsque le client de consensus n'est pas le producteur de bloc : + +- Le client de consensus reçoit un bloc via le protocole de commutation (consensus p2p) +- Le client de consensus prévalide le bloc, c'est-à-dire qu'il s'assure qu'il est arrivé d'un expéditeur valide avec des métadonnées correctes +- Les transactions dans le bloc sont envoyées à la couche d'exécution en tant que charge d'exécution (connexion RPC locale) +- La couche d'exécution exécute les transactions et valide l'état dans l'en-tête du bloc (c'est-à-dire vérifie la correspondance des haches) +- La couche d'exécution transmet les données de validation à la couche de consensus, le bloc est maintenant considéré comme validé (connexion RPC locale) +- La couche de consensus ajoute un bloc à la tête de sa propre blockchain et l'atteste, diffusant l'attestation sur le réseau (consensus p2p) + +### Lorsque le client de consensus est le producteur de bloc : + +- Le client de consensus reçoit une note l'informant qu'il est le prochain producteur de blocs (consensus p2p) +- La couche de consensus appelle la méthode `create block` dans le client d'exécution (RPC en local) +- La couche d'exécution accède au mempool de transaction qui a été alimenté par le protocole de commutation de transaction (exécution p2p) +- Le client d'exécution empaquette les transactions dans un bloc, exécute les transactions et génère un hachage du bloc +- Le client de consensus récupère les transactions et bloque le hachage du client d'exécution et les ajoute au bloc phare (RPC) +- Le client de consensus reçoit le bloc via le protocole de commutation (consensus p2p) +- Les autres clients reçoivent le bloc proposé via le protocole de commutation de bloc et le valident comme décrit ci-dessus (consensus p2p) + +Une fois le bloc attesté par suffisamment de validateurs, il est ajouté en tête de la chaîne, justifié et finalisé. + +![](cons_client_net_layer.png) ![](exe_client_net_layer.png) + +Le schéma de couche réseau pour les clients de consensus et d'exécution par [ethresear.ch](https://ethresear.ch/t/eth1-eth2-client-relationship/7248) + +## Complément d'information {#further-reading} + +[DevP2P](https://github.com/ethereum/devp2p) [LibP2p](https://github.com/libp2p/specs) [spécifications réseau de la couche de consensus](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#enr-structure) [kademlia to discv5](https://vac.dev/kademlia-to-discv5) [kademlia paper](https://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf) [introduction à Ethereum p2p](https://p2p.paris/en/talks/intro-ethereum-networking/) [relation eth1/eth2](http://ethresear.ch/t/eth1-eth2-client-relationship/7248) [vidéo sur les détails de La Fusion avec client eth2](https://www.youtube.com/watch?v=zNIrIninMgg) diff --git a/src/content/translations/fr/developers/docs/networking-layer/network-addresses/index.md b/public/content/translations/fr/developers/docs/networking-layer/network-addresses/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/networking-layer/network-addresses/index.md rename to public/content/translations/fr/developers/docs/networking-layer/network-addresses/index.md diff --git a/src/content/translations/fr/developers/docs/networking-layer/portal-network/index.md b/public/content/translations/fr/developers/docs/networking-layer/portal-network/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/networking-layer/portal-network/index.md rename to public/content/translations/fr/developers/docs/networking-layer/portal-network/index.md diff --git a/src/content/translations/fr/developers/docs/networks/index.md b/public/content/translations/fr/developers/docs/networks/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/networks/index.md rename to public/content/translations/fr/developers/docs/networks/index.md diff --git a/public/content/translations/fr/developers/docs/nodes-and-clients/client-diversity/index.md b/public/content/translations/fr/developers/docs/nodes-and-clients/client-diversity/index.md new file mode 100644 index 00000000000..aec7101afcc --- /dev/null +++ b/public/content/translations/fr/developers/docs/nodes-and-clients/client-diversity/index.md @@ -0,0 +1,113 @@ +--- +title: Diversité des clients +description: Une explication de haut niveau sur l'importance de la diversité des clients Ethereum. +lang: fr +sidebarDepth: 2 +--- + +Le comportement d'un nœud Ethereum est contrôlé par le logiciel client qu'il exécute. Il existe plusieurs clients Ethereum de niveau production, chacun développé et mis à jour dans différentes langues par des équipes séparées. Les clients sont créés selon une spécification commune qui garantit que les clients communiquent entre eux de manière transparente, ont les mêmes fonctionnalités et offrent une expérience utilisateur équivalente. Cependant, pour le moment, la répartition des clients entre les nœuds n'est pas assez équilibrée pour réaliser cette fortification du réseau à son plein potentiel. Idéalement, les utilisateurs se divisent à peu près équitablement entre les différents clients pour apporter le plus de diversité possible au réseau. + +## Prérequis {#prerequisites} + +Si vous ne maîtrisez pas déjà ce que sont les nœuds et les clients, consultez la page [nœuds et clients](/developers/docs/nodes-and-clients/). [Exécution](/glossary/#execution-layer) et [couches de consensus](/glossary/#consensus-layer) sont définies dans le glossaire. + +## Pourquoi existe-t-il différents clients ? {#why-multiple-clients} + +De multiples clients, développés et mis à jour de manière indépendante, existent parce que la diversité des clients rend le réseau plus résistant aux attaques et aux bogues. La multitude de clients est une force propre à Ethereum - d'autres blockchains dépendent de l'infaillibilité d'un seul client. Cependant, il ne suffit pas de disposer de plusieurs clients, ceux-ci doivent être adoptés par la communauté et la totalité des nœuds actifs répartis relativement égale entre eux. + +## Pourquoi la diversité des clients est-elle importante ? {#client-diversity-importance} + +Disposer de nombreux clients développés et mis à jour de façon indépendante est vital pour la bonne santé d'un réseau décentralisé. Voyons pourquoi. + +### Bogues {#bugs} + +Un bogue dans un client individualisé est moins risqué pour le réseau lorsqu'il représente une minorité de nœuds Ethereum. Lorsque les nœuds sont répartis de façon à peu près égale entre de nombreux clients, la probabilité que la plupart des clients souffrent d'un problème commun est faible et, par conséquent, le réseau est plus robuste. + +### Résistance aux attaques {#resilience} + +La diversité des clients offre également une résilience aux attaques. Par exemple, une attaque qui viserait [un client spécifique](https://twitter.com/vdWijden/status/1437712249926393858) sur une branche particulière de la chaîne a peu de chance de réussir parce que les autres clients sont peu susceptibles d'être exploités de la même manière et que la chaîne canonique reste intacte. La faible diversité des clients augmente le risque associé à un piratage sur le client dominant. La diversité des clients s'est déjà avérée être une défense efficace contre les attaques malveillantes sur le réseau, par exemple l'attaque de Shanghai par déni de service en 2016 a pu être menée parce que les attaquants ont réussi à tromper le client dominant (Geth) en exécutant une opération sur disque i/o des dizaines de milliers de fois par bloc. Puisque des clients alternatifs étaient également en ligne et ne partageaient pas la vulnérabilité, Ethereum a pu résister à l'attaque et continuer à fonctionner pendant que la vulnérabilité de Geth était corrigée. + +### Finalité de la preuve d'enjeu {#finality} + +Un bogue dans un client de consensus avec plus de 33 % des nœuds Ethereum pourrait empêcher la finalisation de la chaîne phare, de sorte que les utilisateurs ne pourraient pas avoir confiance dans le fait que les transactions ne seraient pas annulées ou modifiées à un moment donné. Cela serait problématique pour de nombreuses applications basées sur Ethereum, en particulier pour la DeFi. + + Pire encore, un bogue critique dans un client avec une majorité des deux tiers pourrait causer le fractionnement et la finalisation incorrecte de la chaîne, entraînant le blocage d'un grand nombre de validateurs sur une chaîne invalide. S'ils souhaitent rejoindre la bonne chaîne, ces validateurs sont confrontés à un délestage ou à un retrait volontaire et à une réactivation lente et coûteuse. La magnitude d'un délestage est proportionnelle au nombre de nœuds impliqués avec une majorité des deux tiers sanctionnée au maximum (32 ETH). + +Bien que ces scénarios soient peu probables, l’écosystème Ethereum peut atténuer leurs risques en éliminant la distribution des clients sur les nœuds actifs. Idéalement, aucun client de consensus ne devrait pouvoir atteindre 33 % du total des nœuds. + +### Partager les responsabilités {#responsibility} + +Le fait d'avoir des clients majoritaires a aussi un coût humain. Il impose une pression et une responsabilité excessives à une petite équipe de développement. Plus la diversité des clients est limitée, plus la charge de responsabilité est importante pour les développeurs qui maintiennent le client majoritaire. La répartition de cette responsabilité entre plusieurs équipes est bénéfique pour la bonne santé du réseau de nœuds d'Ethereum et de son réseau d'utilisateurs. + +## Diversité actuelle de clients {#current-client-diversity} + +![Graphique Pie montrant la diversité des clients](./client-diversity.png) _Schéma issu des données de [ethernodes.org](https://ethernodes.org) et [clientdiversity.org](https://clientdiversity.org/)_ + +Les deux diagrammes ci-dessus montrent des instantanés de la diversité actuelle de clients pour l'exécution et les couches de consensus (au moment de l'écriture en janvier 2022). La couche d'exécution est dominée par [Geth](https://geth.ethereum.org/), avec [Open Ethereum](https://openethereum.github.io/) en seconde place, [Erigon](https://github.com/ledgerwatch/erigon) troisième et [Nethermind](https://nethermind.io/) quatrième, puis d'autres logiciels représentant moins de 1 % du réseau. Le client le plus couramment utilisé sur la couche de consensus - [Prysm](https://prysmaticlabs.com/#projects) - n'est pas aussi dominant que Geth mais représente toujours plus de 60 % du réseau. [Lighthouse](https://lighthouse.sigmaprime.io/) et [Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) représentent respectivement ~20 % et ~14 %, et les autres clients ne sont que rarement utilisés. + +Les données de la couche d'exécution ont été obtenues à partir de [Ethernodes](https://ethernodes.org) le 23/01/22. Les données pour les clients de consensus ont été obtenues à partir de [Michael Sproul](https://github.com/sigp/blockprint). Les données des clients du Consensus sont plus difficiles à obtenir dans la mesure où les clients de la Chaîne phare ne disposent pas toujours de traces claires susceptibles d'être utilisées pour les identifier. Les données ont été générées à l'aide d'un algorithme de classification qui, parfois, induit en erreur certains des clients minoritaires (voir [ici](https://twitter.com/sproulM_/status/1440512518242197516) pour plus de détails). Dans le diagramme ci-dessus, ces classifications ambiguës sont traitées avec une étiquette de type soit/soit (par exemple Nimbus/Teku). Néanmoins, il est clair que la majorité du réseau utilise Prysm. Les données constituent un instantané sur un ensemble fixe de blocs (dans ce cas, les blocs de la chaîne phare pour les emplacements 2048001 à 2164916) et la domination de Prysm a parfois même été plus élevée, dépassant les 68 %. Bien que ce ne soient que des instantanés, les valeurs du diagramme fournissent un bonne vision générale de l'état actuel de la diversité des clients. + +Des données mises à jour concernant la diversité des clients pour la couche de consensus sont maintenant disponibles sur [clientdiversity.org](https://clientdiversity.org/). + +## Couche d'exécution {#execution-layer} + +Jusqu’à présent, la conversation autour de la diversité des clients s’est principalement concentrée sur la couche de consensus. Cependant, le client d'exécution [Geth](https://geth.ethereum.org) compte actuellement pour environ 85 % de l'ensemble de tous les nœuds. Ce pourcentage est problématique pour les mêmes raisons que pour les clients de consensus. Par exemple, un bogue dans Geth affectant la gestion des transactions ou la construction de blocs d'exécution peut conduire les clients de consensus à finaliser des transactions problématiques ou avec des bogues. Ainsi, Ethereum serait plus sain avec une distribution plus uniforme des clients d'exécution, idéalement sans client représentant plus de 33 % du réseau. + +## Utiliser un client minoritaire {#use-minority-client} + +Pour résoudre le problème de la diversité des clients, il ne suffit pas que les utilisateurs individuels choisissent des clients minoritaires : il faut aussi que les pools de mineurs/validateurs et les institutions comme les principales dapps et les plateformes d'échange changent de clients. Cependant, tous les utilisateurs peuvent collaborer pour corriger le déséquilibre actuel et normaliser l'utilisation de tous les logiciels Ethereum disponibles. Après La Fusion, tous les opérateurs de nœuds seront requis pour exécuter un client d'exécution et un client de consensus. Le choix des combinaisons de clients suggérées ci-dessous contribuera à accroître la diversité des clients. + +### Clients d'exécution {#execution-clients} + +[Besu](https://www.hyperledger.org/use/besu) + +[Nethermind](https://downloads.nethermind.io/) + +[Erigon](https://github.com/ledgerwatch/erigon) + +[Akula](https://akula.app) + +[Go-Ethereum](https://geth.ethereum.org/) + +### Clients de consensus {#consensus-clients} + +[Nimbus](https://nimbus.team/) + +[Lighthouse](https://github.com/sigp/lighthouse) + +[Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) + +[Lodestar](https://github.com/ChainSafe/lodestar) + +[Prysm](https://docs.prylabs.network/docs/getting-started) + +Les utilisateurs techniques peuvent aider à accélérer ce processus en rédigeant plus de tutoriels et de documentation pour les clients minoritaires et ainsi encourager leurs pairs à migrer loin des clients dominants. Des guides pour basculer vers un client de consensus minoritaire sont disponibles sur [clientdiversity.org](https://clientdiversity.org/). + +## Tableaux de bord relatif à la diversité des clients {#client-diversity-dashboards} + +Plusieurs tableaux de bord donnent des statistiques en temps réel de la diversité des clients pour la couche d'exécution et la couche de consensus. + +**Couche de consensus:** + +- [Rated.network](https://www.rated.network/) +- [clientdiversity.org](https://clientdiversity.org/) + +**Couche d'exécution :** + +- [execution-diversity.info](https://execution-diversity.info/) +- [Ethernodes](https://ethernodes.org/) + +## Complément d'information {#further-reading} + +- [Diversité des clients sur la couche de consensus d'Ethereum](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) +- [La Fusion Ethereum : Exécutez le client majoritaire à vos risques et périls !](https://dankradfeist.de/ethereum/2022/03/24/run-the-majority-client-at-your-own-peril.html) – _Dankrad Fiest, 24 mars 2022_ +- [L'importance de la diversité des clients](https://our.status.im/the-importance-of-client-diversity/) +- [Liste des services de nœuds Ethereum](https://ethereumnodes.com/) +- [Cinq raisons au problème de la diversité des clients](https://notes.ethereum.org/@afhGjrKfTKmksTOtqhB9RQ/BJGj7uh08) +- [Diversité Ethereum et comment la résoudre (YouTube)](https://www.youtube.com/watch?v=1hZgCaiqwfU) +- [clientdiversity.org](https://clientdiversity.org/) + +## Sujets connexes {#related-topics} + +- [Exécuter un nœud Ethereum](/run-a-node/) +- [Nœuds et clients](/developers/docs/nodes-and-clients/) diff --git a/src/content/translations/fr/developers/docs/nodes-and-clients/index.md b/public/content/translations/fr/developers/docs/nodes-and-clients/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/nodes-and-clients/index.md rename to public/content/translations/fr/developers/docs/nodes-and-clients/index.md diff --git a/src/content/translations/fr/developers/docs/nodes-and-clients/nodes-as-a-service/index.md b/public/content/translations/fr/developers/docs/nodes-and-clients/nodes-as-a-service/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/nodes-and-clients/nodes-as-a-service/index.md rename to public/content/translations/fr/developers/docs/nodes-and-clients/nodes-as-a-service/index.md diff --git a/src/content/translations/fr/developers/docs/nodes-and-clients/run-a-node/index.md b/public/content/translations/fr/developers/docs/nodes-and-clients/run-a-node/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/nodes-and-clients/run-a-node/index.md rename to public/content/translations/fr/developers/docs/nodes-and-clients/run-a-node/index.md diff --git a/src/content/translations/fr/developers/docs/oracles/index.md b/public/content/translations/fr/developers/docs/oracles/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/oracles/index.md rename to public/content/translations/fr/developers/docs/oracles/index.md diff --git a/src/content/translations/fr/developers/docs/programming-languages/dart/index.md b/public/content/translations/fr/developers/docs/programming-languages/dart/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/programming-languages/dart/index.md rename to public/content/translations/fr/developers/docs/programming-languages/dart/index.md diff --git a/src/content/translations/fr/developers/docs/programming-languages/delphi/index.md b/public/content/translations/fr/developers/docs/programming-languages/delphi/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/programming-languages/delphi/index.md rename to public/content/translations/fr/developers/docs/programming-languages/delphi/index.md diff --git a/src/content/translations/fr/developers/docs/programming-languages/dot-net/index.md b/public/content/translations/fr/developers/docs/programming-languages/dot-net/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/programming-languages/dot-net/index.md rename to public/content/translations/fr/developers/docs/programming-languages/dot-net/index.md diff --git a/src/content/translations/fr/developers/docs/programming-languages/golang/index.md b/public/content/translations/fr/developers/docs/programming-languages/golang/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/programming-languages/golang/index.md rename to public/content/translations/fr/developers/docs/programming-languages/golang/index.md diff --git a/src/content/translations/fr/developers/docs/programming-languages/index.md b/public/content/translations/fr/developers/docs/programming-languages/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/programming-languages/index.md rename to public/content/translations/fr/developers/docs/programming-languages/index.md diff --git a/src/content/translations/fr/developers/docs/programming-languages/java/index.md b/public/content/translations/fr/developers/docs/programming-languages/java/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/programming-languages/java/index.md rename to public/content/translations/fr/developers/docs/programming-languages/java/index.md diff --git a/src/content/translations/fr/developers/docs/programming-languages/javascript/index.md b/public/content/translations/fr/developers/docs/programming-languages/javascript/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/programming-languages/javascript/index.md rename to public/content/translations/fr/developers/docs/programming-languages/javascript/index.md diff --git a/src/content/translations/fr/developers/docs/programming-languages/python/index.md b/public/content/translations/fr/developers/docs/programming-languages/python/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/programming-languages/python/index.md rename to public/content/translations/fr/developers/docs/programming-languages/python/index.md diff --git a/src/content/translations/fr/developers/docs/programming-languages/ruby/index.md b/public/content/translations/fr/developers/docs/programming-languages/ruby/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/programming-languages/ruby/index.md rename to public/content/translations/fr/developers/docs/programming-languages/ruby/index.md diff --git a/src/content/translations/fr/developers/docs/programming-languages/rust/index.md b/public/content/translations/fr/developers/docs/programming-languages/rust/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/programming-languages/rust/index.md rename to public/content/translations/fr/developers/docs/programming-languages/rust/index.md diff --git a/src/content/translations/fr/developers/docs/scaling/index.md b/public/content/translations/fr/developers/docs/scaling/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/scaling/index.md rename to public/content/translations/fr/developers/docs/scaling/index.md diff --git a/src/content/translations/fr/developers/docs/scaling/optimistic-rollups/index.md b/public/content/translations/fr/developers/docs/scaling/optimistic-rollups/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/scaling/optimistic-rollups/index.md rename to public/content/translations/fr/developers/docs/scaling/optimistic-rollups/index.md diff --git a/src/content/translations/fr/developers/docs/scaling/plasma/index.md b/public/content/translations/fr/developers/docs/scaling/plasma/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/scaling/plasma/index.md rename to public/content/translations/fr/developers/docs/scaling/plasma/index.md diff --git a/src/content/translations/fr/developers/docs/scaling/sidechains/index.md b/public/content/translations/fr/developers/docs/scaling/sidechains/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/scaling/sidechains/index.md rename to public/content/translations/fr/developers/docs/scaling/sidechains/index.md diff --git a/src/content/translations/fr/developers/docs/scaling/state-channels/index.md b/public/content/translations/fr/developers/docs/scaling/state-channels/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/scaling/state-channels/index.md rename to public/content/translations/fr/developers/docs/scaling/state-channels/index.md diff --git a/src/content/translations/fr/developers/docs/scaling/validium/index.md b/public/content/translations/fr/developers/docs/scaling/validium/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/scaling/validium/index.md rename to public/content/translations/fr/developers/docs/scaling/validium/index.md diff --git a/src/content/translations/fr/developers/docs/scaling/zk-rollups/index.md b/public/content/translations/fr/developers/docs/scaling/zk-rollups/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/scaling/zk-rollups/index.md rename to public/content/translations/fr/developers/docs/scaling/zk-rollups/index.md diff --git a/src/content/translations/fr/developers/docs/security/index.md b/public/content/translations/fr/developers/docs/security/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/security/index.md rename to public/content/translations/fr/developers/docs/security/index.md diff --git a/public/content/translations/fr/developers/docs/smart-contracts/anatomy/index.md b/public/content/translations/fr/developers/docs/smart-contracts/anatomy/index.md new file mode 100644 index 00000000000..dfaee8ba4b4 --- /dev/null +++ b/public/content/translations/fr/developers/docs/smart-contracts/anatomy/index.md @@ -0,0 +1,658 @@ +--- +title: Anatomie des contrats intelligents +description: "Examen approfondi des composantes d'un contrat intelligent : les fonctions, les données et les variables." +lang: fr +--- + +Les contrats intelligents sont des programmes qui s'exécutent à une adresse sur Ethereum. Ils sont constitués de données et de fonctions qui peuvent s'exécuter lors de la réception d'une transaction. Cette page explique la composition d'un contrat intelligent. + +## Prérequis {#prerequisites} + +Assurez-vous de commencer par lire la page [Contrats intelligents](/developers/docs/smart-contracts/). Ce document part du principe que vous êtes déjà familiarisé avec des langages de programmation comme JavaScript ou Python. + +## Données {#data} + +Toute donnée relative à un contrat doit être affectée à un emplacement : soit `storage` soit `memory`. Il est coûteux de modifier le stockage dans un contrat intelligent. Vous devez donc décider de l'endroit où vous souhaitez conserver vos données. + +### Stockage {#storage} + +Les données persistantes sont appelées stockage et sont représentées par des variables d'état. Ces valeurs sont stockées en permanence sur la blockchain. Vous devez déclarer le type afin que le contrat puisse garder une trace de la quantité de stockage nécessaire sur la blockchain quand il compile. + +```solidity +// Solidity example +contract SimpleStorage { + uint storedData; // State variable + // ... +} +``` + +```python +# Vyper example +storedData: int128 +``` + +Si vous avez déjà programmé des langages orientés objet, vous serez probablement familiarisé avec la plupart des types. Cependant, le type `address` devrait être nouveau pour vous si vous commencez à développer pour Ethereum. + +Un type `address ` peut contenir une adresse Ethereum qui équivaut à 20 octets ou 160 bits, ce qui donne une adresse en notation hexadécimale commençant par 0x. + +Les autres types incluent les : + +- booléens ; +- nombres entiers ; +- numéros de points fixes ; +- tableaux d'octets de taille fixe ; +- tableaux d'octets de taille dynamique ; +- littéraux rationnels et entiers ; +- littéraux de chaîne ; +- nombres hexadécimaux ; +- énumérations. + +Pour plus d'explications, consultez les pages ci-dessous : + +- [Types Vyper](https://vyper.readthedocs.io/en/v0.1.0-beta.6/types.html#value-types) +- [Types Solidity](https://solidity.readthedocs.io/en/latest/types.html#value-types) + +### Mémoire {#memory} + +Les valeurs qui ne sont stockées que pendant la durée de l'exécution d'une fonction de contrat sont appelées variables de mémoire. Celles-ci n'étant pas stockées de façon permanente sur la blockchain, elles sont donc moins chères à utiliser. + +Pour en savoir plus sur la façon dont l'EVM conserve les données (stockage, mémoire et pile) consultez la documentation [Solidity](https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html?highlight=memory#storage-memory-and-the-stack). + +### Variables d'environnement {#environment-variables} + +En plus des variables que vous définissez sur votre contrat, il existent quelques variables globales spéciales. Elles sont principalement utilisées pour fournir des informations sur la blockchain ou la transaction en cours. + +Exemples : + +| **Propriété** | **Variable d'état** | **Description** | +| ----------------- | ------------------- | --------------------------------------- | +| `block.timestamp` | uint256 | Horodatage de la période du bloc actuel | +| `msg.sender` | address | Expéditeur du message (appel en cours) | + +## Fonctions {#functions} + +En termes simples, les fonctions peuvent obtenir ou définir des informations en réponse à des transactions entrantes. + +Il existe deux types d'appels de fonctions : + +- `internal` - Ces fonctions ne créent pas d'appel EVM + - Les fonctions internes et les variables d'état ne peuvent être accédées qu'en interne (c'est-à-dire à partir du contrat actuel ou des contrats qui en découlent) +- `external` - Ces fonctions créent un appel EVM + - Les fonctions externes font partie de l'interface du contrat, ce qui signifie qu'elles peuvent être appelées à partir d'autres contrats et via des transactions. Une fonction externe `f` ne peut pas être appelée en interne (par ex., `f()` ne fonctionne pas, mais `this.f()` fonctionne). + +Elles peuvent également être de type `public` ou `private` + +- Les fonctions `public` peuvent être appelées en interne à l'intérieur du contrat ou à l'extérieur via des messages +- Les fonctions `private` ne sont visibles que pour le contrat dans lequel elles sont définies et non dans les contrats dérivés + +Les fonctions et les variables d'état peuvent être rendues publiques ou privées + +Voici une fonction pour mettre à jour une variable d'état sur un contrat : + +```solidity +// Solidity example +function update_name(string value) public { + dapp_name = value; +} +``` + +- Le paramètre `value` de type `string` est passé dans la fonction : `update_name`. +- Il est déclaré `public`, ce qui signifie que n'importe qui peut y accéder. +- Il n'est pas déclaré comme `view`, il peut donc modifier l'état du contrat + +### Fonctions "view" {#view-functions} + +Ces fonctions promettent de ne pas modifier l’état des données du contrat. Les exemples courants sont les fonctions « getter » - vous pouvez utiliser ceci pour obtenir le solde d'un utilisateur par exemple. + +```solidity +// Solidity example +function balanceOf(address _owner) public view returns (uint256 _balance) { + return ownerPizzaCount[_owner]; +} +``` + +```python +dappName: public(string) + +@view +@public +def readName() -> string: + return dappName +``` + +Voici ce qui est considéré comme une modification d'état : + +1. Écriture dans les variables d'état +2. [Émission d'événements](https://solidity.readthedocs.io/en/v0.7.0/contracts.html#events) +3. [Création d'autres contrats](https://solidity.readthedocs.io/en/v0.7.0/control-structures.html#creating-contracts) +4. Utilisation d'`autodestruct` +5. Envoi d'ether via des appels +6. Appel d'une fonction non marquée `view` ni `pure` +7. Utilisation d'appels de bas niveau +8. Utilisation d'un assemblage en ligne conteant certains opcodes + +### Fonctions « constructor » {#constructor-functions} + +Les fonctions `constructor` ne sont exécutées qu'une seule fois lors du premier déploiement du contrat. Comme `constructor` dans de nombreux langages de programmation basés sur des classes, ces fonctions initialisent souvent les variables d'état à leurs valeurs spécifiées. + +```solidity +// Solidity example +// Initializes the contract's data, setting the `owner` +// to the address of the contract creator. +constructor() public { + // All smart contracts rely on external transactions to trigger its functions. + // `msg` is a global variable that includes relevant data on the given transaction, + // such as the address of the sender and the ETH value included in the transaction. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties + owner = msg.sender; +} +``` + +```python +# Vyper example + +@external +def __init__(_beneficiary: address, _bidding_time: uint256): + self.beneficiary = _beneficiary + self.auctionStart = block.timestamp + self.auctionEnd = self.auctionStart + _bidding_time +``` + +### Fonctions intégrées {#built-in-functions} + +En plus des variables et des fonctions que vous définissez pour votre contrat, il existe des fonctions spéciales intégrées. Exemple le plus évident : + +- `address.send()` - Solidity +- `send(address)` - Vyper + +Celles-ci permettent aux contrats d’envoyer des ETH à d’autres comptes. + +## Fonctions d'écriture {#writing-functions} + +Votre fonction a besoin des éléments suivants : + +- Paramètre variable et type (si elle accepte des paramètres) +- Déclaration de fonction internal/external +- Déclaration de fonction pure/view/payable +- Type de renvoi (si elle renvoie une valeur) + +```solidity +pragma solidity >=0.4.0 <=0.6.0; + +contract ExampleDapp { + string dapp_name; // state variable + + // Called when the contract is deployed and initializes the value + constructor() public { + dapp_name = "My Example dapp"; + } + + // Get Function + function read_name() public view returns(string) { + return dapp_name; + } + + // Set Function + function update_name(string value) public { + dapp_name = value; + } +} +``` + +Un contrat complet pourrait ressembler à cela. Ici la fonction `constructor` fournit une valeur initiale pour la variable `dapp_name`. + +## Événements et journaux {#events-and-logs} + +Les événements vous permettent de communiquer avec votre contrat intelligent depuis votre interface frontend ou d'autres applications abonnées. Lorsqu'une transaction est minée, les contrats intelligents peuvent émettre des événements et écrire des journaux sur la blockchain, que le frontend peut alors traiter. + +## Exemples annotés {#annotated-examples} + +Voici quelques exemples rédigés en Solidity. Si vous souhaitez jouer avec le code, vous pouvez interagir avec dans [Remix](http://remix.ethereum.org). + +### Hello world {#hello-world} + +```solidity +// Specifies the version of Solidity, using semantic versioning. +// Learn more: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma +pragma solidity ^0.5.10; + +// Defines a contract named `HelloWorld`. +// A contract is a collection of functions and data (its state). +// Once deployed, a contract resides at a specific address on the Ethereum blockchain. + // Declares a state variable `message` of type `string`. + // State variables are variables whose values are permanently stored in contract storage. + // The keyword `public` makes variables accessible from outside a contract + // and creates a function that other contracts or clients can call to access the value. + string public message; + + // Similar to many class-based object-oriented languages, a constructor is + // a special function that is only executed upon contract creation. + + // Constructors are used to initialize the contract's data. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constructors + constructor(string memory initMessage) public { + // Accepts a string argument `initMessage` and sets the value + // into the contract's `message` storage variable). + + message = initMessage; + } + + // A public function that accepts a string argument + // and updates the `message` storage variable. + function update(string memory newMessage) public { + message = newMessage; + } +} +``` + +### Jeton {#token} + +```solidity +pragma solidity ^0.5.10; + +contract Token { + // An `address` is comparable to an email address - it's used to identify an account on Ethereum. + // Addresses can represent a smart contract or an external (user) accounts. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#address + address public owner; + + // A `mapping` is essentially a hash table data structure. + // This `mapping` assigns an unsigned integer (the token balance) to an address (the token holder). + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#mapping-types + mapping (address => uint) public balances; + + // Events allow for logging of activity on the blockchain. + // Ethereum clients can listen for events in order to react to contract state changes. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#events + event Transfer(address from, address to, uint amount); + + // Initializes the contract's data, setting the `owner` + // to the address of the contract creator. + constructor() public { + // All smart contracts rely on external transactions to trigger its functions. + + // `msg` is a global variable that includes relevant data on the given transaction, + // such as the address of the sender and the ETH value included in the transaction. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties + owner = msg.sender; + } + + // Creates an amount of new tokens and sends them to an address. + function mint(address receiver, uint amount) public { + // `require` is a control structure used to enforce certain conditions. + // If a `require` statement evaluates to `false`, an exception is triggered, + // which reverts all changes made to the state during the current call. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions + + // Only the contract owner can call this function + require(msg.sender == owner, "You are not the owner."); + + // Enforces a maximum amount of tokens + require(amount < 1e60, "Maximum issuance exceeded"); + + // Increases the balance of `receiver` by `amount` + balances[receiver] += amount; + } + + // Sends an amount of existing tokens from any caller to an address. + function transfer(address receiver, uint amount) public { + // The sender must have enough tokens to send + require(amount <= balances[msg.sender], "Insufficient balance."); + + // Adjusts token balances of the two addresses + balances[msg.sender] -= amount; + balances[receiver] += amount; + + // Emits the event defined earlier + emit Transfer(msg.sender, receiver, amount); + } +} +``` + +### Actif numérique unique {#unique-digital-asset} + +```solidity +pragma solidity ^0.5.10; + +// Imports symbols from other files into the current contract. +// In this case, a series of helper contracts from OpenZeppelin. +// Learn more: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#importing-other-source-files + +import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; +import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; +import "../node_modules/@openzeppelin/contracts/introspection/ERC165.sol"; +import "../node_modules/@openzeppelin/contracts/math/SafeMath.sol"; + +// The `is` keyword is used to inherit functions and keywords from external contracts. +// In this case, `CryptoPizza` inherits from the `IERC721` and `ERC165` contracts. +// Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#inheritance +contract CryptoPizza is IERC721, ERC165 { + // Uses OpenZeppelin's SafeMath library to perform arithmetic operations safely. + // Learn more: https://docs.openzeppelin.com/contracts/2.x/api/math#SafeMath + using SafeMath for uint256; + + // Constant state variables in Solidity are similar to other languages + // but you must assign from an expression which is constant at compile time. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constant-state-variables + uint256 constant dnaDigits = 10; + uint256 constant dnaModulus = 10 ** dnaDigits; + bytes4 private constant _ERC721_RECEIVED = 0x150b7a02; + + // Struct types let you define your own type + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#structs + struct Pizza { + string name; + uint256 dna; + } + + // Creates an empty array of Pizza structs + Pizza[] public pizzas; + + // Mapping from pizza ID to its owner's address + mapping(uint256 => address) public pizzaToOwner; + + // Mapping from owner's address to number of owned token + mapping(address => uint256) public ownerPizzaCount; + + // Mapping from token ID to approved address + mapping(uint256 => address) pizzaApprovals; + + // You can nest mappings, this example maps owner to operator approvals + mapping(address => mapping(address => bool)) private operatorApprovals; + + // Internal function to create a random Pizza from string (name) and DNA + function _createPizza(string memory _name, uint256 _dna) + // The `internal` keyword means this function is only visible + // within this contract and contracts that derive this contract + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#visibility-and-getters + internal + // `isUnique` is a function modifier that checks if the pizza already exists + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html#function-modifiers + isUnique(_name, _dna) + { + // Adds Pizza to array of Pizzas and get id + uint256 id = SafeMath.sub(pizzas.push(Pizza(_name, _dna)), 1); + + // Checks that Pizza owner is the same as current user + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions + + // note that address(0) is the zero address, + // indicating that pizza[id] is not yet allocated to a particular user. + + assert(pizzaToOwner[id] == address(0)); + + // Maps the Pizza to the owner + pizzaToOwner[id] = msg.sender; + ownerPizzaCount[msg.sender] = SafeMath.add( + ownerPizzaCount[msg.sender], + 1 + ); + } + + // Creates a random Pizza from string (name) + function createRandomPizza(string memory _name) public { + uint256 randDna = generateRandomDna(_name, msg.sender); + _createPizza(_name, randDna); + } + + // Generates random DNA from string (name) and address of the owner (creator) + function generateRandomDna(string memory _str, address _owner) + public + // Functions marked as `pure` promise not to read from or modify the state + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#pure-functions + pure + returns (uint256) + { + // Generates random uint from string (name) + address (owner) + uint256 rand = uint256(keccak256(abi.encodePacked(_str))) + + uint256(_owner); + rand = rand % dnaModulus; + return rand; + } + + // Returns array of Pizzas found by owner + function getPizzasByOwner(address _owner) + public + // Functions marked as `view` promise not to modify state + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#view-functions + view + returns (uint256[] memory) + { + // Uses the `memory` storage location to store values only for the + // lifecycle of this function call. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/introduction-to-smart-contracts.html#storage-memory-and-the-stack + uint256[] memory result = new uint256[](ownerPizzaCount[_owner]); + uint256 counter = 0; + for (uint256 i = 0; i < pizzas.length; i++) { + if (pizzaToOwner[i] == _owner) { + result[counter] = i; + counter++; + } + } + return result; + } + + // Transfers Pizza and ownership to other address + function transferFrom(address _from, address _to, uint256 _pizzaId) public { + require(_from != address(0) && _to != address(0), "Invalid address."); + require(_exists(_pizzaId), "Pizza does not exist."); + require(_from != _to, "Cannot transfer to the same address."); + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + + ownerPizzaCount[_to] = SafeMath.add(ownerPizzaCount[_to], 1); + ownerPizzaCount[_from] = SafeMath.sub(ownerPizzaCount[_from], 1); + pizzaToOwner[_pizzaId] = _to; + + // Emits event defined in the imported IERC721 contract + emit Transfer(_from, _to, _pizzaId); + _clearApproval(_to, _pizzaId); + } + + /** + * Safely transfers the ownership of a given token ID to another address + * If the target address is a contract, it must implement `onERC721Received`, + * which is called upon a safe transfer, and return the magic value + * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; + * otherwise, the transfer is reverted. + */ + function safeTransferFrom(address from, address to, uint256 pizzaId) + public + { + // solium-disable-next-line arg-overflow + this.safeTransferFrom(from, to, pizzaId, ""); + } + + /** + * Safely transfers the ownership of a given token ID to another address + * If the target address is a contract, it must implement `onERC721Received`, + * which is called upon a safe transfer, and return the magic value + * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; + * otherwise, the transfer is reverted. + */ + function safeTransferFrom( + address from, + address to, + uint256 pizzaId, + bytes memory _data + ) public { + this.transferFrom(from, to, pizzaId); + require(_checkOnERC721Received(from, to, pizzaId, _data), "Must implement onERC721Received."); + } + + /** + * Internal function to invoke `onERC721Received` on a target address + * The call is not executed if the target address is not a contract + */ + function _checkOnERC721Received( + address from, + address to, + uint256 pizzaId, + bytes memory _data + ) internal returns (bool) { + if (!isContract(to)) { + return true; + } + + bytes4 retval = IERC721Receiver(to).onERC721Received( + msg.sender, + from, + pizzaId, + _data + ); + return (retval == _ERC721_RECEIVED); + } + + // Burns a Pizza - destroys Token completely + // The `external` function modifier means this function is + // part of the contract interface and other contracts can call it + function burn(uint256 _pizzaId) external { + require(msg.sender != address(0), "Invalid address."); + require(_exists(_pizzaId), "Pizza does not exist."); + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + + ownerPizzaCount[msg.sender] = SafeMath.sub( + ownerPizzaCount[msg.sender], + 1 + ); + pizzaToOwner[_pizzaId] = address(0); + } + + // Returns count of Pizzas by address + function balanceOf(address _owner) public view returns (uint256 _balance) { + return ownerPizzaCount[_owner]; + } + + // Returns owner of the Pizza found by id + function ownerOf(uint256 _pizzaId) public view returns (address _owner) { + address owner = pizzaToOwner[_pizzaId]; + require(owner != address(0), "Invalid Pizza ID."); + return owner; + } + + // Approves other address to transfer ownership of Pizza + function approve(address _to, uint256 _pizzaId) public { + require(msg.sender == pizzaToOwner[_pizzaId], "Must be the Pizza owner."); + pizzaApprovals[_pizzaId] = _to; + emit Approval(msg.sender, _to, _pizzaId); + } + + // Returns approved address for specific Pizza + function getApproved(uint256 _pizzaId) + public + view + returns (address operator) + { + require(_exists(_pizzaId), "Pizza does not exist."); + return pizzaApprovals[_pizzaId]; + } + + /** + * Private function to clear current approval of a given token ID + * Reverts if the given address is not indeed the owner of the token + */ + function _clearApproval(address owner, uint256 _pizzaId) private { + require(pizzaToOwner[_pizzaId] == owner, "Must be pizza owner."); + require(_exists(_pizzaId), "Pizza does not exist."); + if (pizzaApprovals[_pizzaId] != address(0)) { + pizzaApprovals[_pizzaId] = address(0); + } + } + + /* + * Sets or unsets the approval of a given operator + * An operator is allowed to transfer all tokens of the sender on their behalf + */ + function setApprovalForAll(address to, bool approved) public { + require(to != msg.sender, "Cannot approve own address"); + operatorApprovals[msg.sender][to] = approved; + emit ApprovalForAll(msg.sender, to, approved); + } + + // Tells whether an operator is approved by a given owner + function isApprovedForAll(address owner, address operator) + public + view + returns (bool) + { + return operatorApprovals[owner][operator]; + } + + // Takes ownership of Pizza - only for approved users + function takeOwnership(uint256 _pizzaId) public { + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + address owner = this.ownerOf(_pizzaId); + this.transferFrom(owner, msg.sender, _pizzaId); + } + + // Checks if Pizza exists + function _exists(uint256 pizzaId) internal view returns (bool) { + address owner = pizzaToOwner[pizzaId]; + return owner != address(0); + } + + // Checks if address is owner or is approved to transfer Pizza + function _isApprovedOrOwner(address spender, uint256 pizzaId) + internal + view + returns (bool) + { + address owner = pizzaToOwner[pizzaId]; + // Disable solium check because of + // https://github.com/duaraghav8/Solium/issues/175 + // solium-disable-next-line operator-whitespace + return (spender == owner || + this.getApproved(pizzaId) == spender || + this.isApprovedForAll(owner, spender)); + } + + // Check if Pizza is unique and doesn't exist yet + modifier isUnique(string memory _name, uint256 _dna) { + bool result = true; + for (uint256 i = 0; i < pizzas.length; i++) { + if ( + keccak256(abi.encodePacked(pizzas[i].name)) == + keccak256(abi.encodePacked(_name)) && + pizzas[i].dna == _dna + ) { + result = false; + } + } + require(result, "Pizza with such name already exists."); + _; + } + + // Returns whether the target address is a contract + function isContract(address account) internal view returns (bool) { + uint256 size; + // Currently there is no better way to check if there is a contract in an address + // than to check the size of the code at that address. + // Voir https://ethereum.stackexchange.com/a/14016/36603 + // pour plus de détails sur le fonctionnement. + // TODO Vérifiez cela à nouveau avant la version Serenity, car toutes les adresses seront alors contractuelles + // . + // solium-disable-next-line security/no-inline-assembly + assembly { + size := extcodesize(account) + } + return size > 0; + } +} +``` + +## Complément d'information {#further-reading} + +Consultez la documentation Solidity et Vyper pour une vue d'ensemble plus complète des contrats intelligents : + +- [Solidity](https://solidity.readthedocs.io/) +- [Vyper](https://vyper.readthedocs.io/) + +## Sujets connexes {#related-topics} + +- [Contrats intelligents](/developers/docs/smart-contracts/) +- [Machine virtuelle Ethereum (EVM)](/developers/docs/evm/) + +## Tutoriels connexes {#related-tutorials} + +- [Réduire les contrats pour respecter la limite de taille](/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/) _ - Quelques conseil pratiques pour réduire la taille de votre contrat intelligent_ +- [Consigner les données des contrats intelligents avec des événements](/developers/tutorials/logging-events-smart-contracts/) _- Introduction aux événements de contrats intelligents et comment vous pouvez les utiliser pour consigner les données_ +- [Interagir avec d'autres contrats Solidity](/developers/tutorials/interact-with-other-contracts-from-solidity/) _- Comment déployer et interagir avec un contrat intelligent à partir d'un contrat existant_ diff --git a/src/content/translations/fr/developers/docs/smart-contracts/compiling/index.md b/public/content/translations/fr/developers/docs/smart-contracts/compiling/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/smart-contracts/compiling/index.md rename to public/content/translations/fr/developers/docs/smart-contracts/compiling/index.md diff --git a/src/content/translations/fr/developers/docs/smart-contracts/composability/index.md b/public/content/translations/fr/developers/docs/smart-contracts/composability/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/smart-contracts/composability/index.md rename to public/content/translations/fr/developers/docs/smart-contracts/composability/index.md diff --git a/src/content/translations/fr/developers/docs/smart-contracts/deploying/index.md b/public/content/translations/fr/developers/docs/smart-contracts/deploying/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/smart-contracts/deploying/index.md rename to public/content/translations/fr/developers/docs/smart-contracts/deploying/index.md diff --git a/src/content/translations/fr/developers/docs/smart-contracts/index.md b/public/content/translations/fr/developers/docs/smart-contracts/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/smart-contracts/index.md rename to public/content/translations/fr/developers/docs/smart-contracts/index.md diff --git a/src/content/translations/fr/developers/docs/smart-contracts/languages/index.md b/public/content/translations/fr/developers/docs/smart-contracts/languages/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/smart-contracts/languages/index.md rename to public/content/translations/fr/developers/docs/smart-contracts/languages/index.md diff --git a/src/content/translations/fr/developers/docs/smart-contracts/libraries/index.md b/public/content/translations/fr/developers/docs/smart-contracts/libraries/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/smart-contracts/libraries/index.md rename to public/content/translations/fr/developers/docs/smart-contracts/libraries/index.md diff --git a/src/content/translations/fr/developers/docs/smart-contracts/security/index.md b/public/content/translations/fr/developers/docs/smart-contracts/security/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/smart-contracts/security/index.md rename to public/content/translations/fr/developers/docs/smart-contracts/security/index.md diff --git a/src/content/translations/fr/developers/docs/smart-contracts/testing/index.md b/public/content/translations/fr/developers/docs/smart-contracts/testing/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/smart-contracts/testing/index.md rename to public/content/translations/fr/developers/docs/smart-contracts/testing/index.md diff --git a/src/content/translations/fr/developers/docs/standards/index.md b/public/content/translations/fr/developers/docs/standards/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/standards/index.md rename to public/content/translations/fr/developers/docs/standards/index.md diff --git a/src/content/translations/fr/developers/docs/standards/tokens/erc-1155/index.md b/public/content/translations/fr/developers/docs/standards/tokens/erc-1155/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/standards/tokens/erc-1155/index.md rename to public/content/translations/fr/developers/docs/standards/tokens/erc-1155/index.md diff --git a/public/content/translations/fr/developers/docs/standards/tokens/erc-20/index.md b/public/content/translations/fr/developers/docs/standards/tokens/erc-20/index.md new file mode 100644 index 00000000000..fb81fbd60a8 --- /dev/null +++ b/public/content/translations/fr/developers/docs/standards/tokens/erc-20/index.md @@ -0,0 +1,149 @@ +--- +title: Norme de jeton ERC-20 +description: +lang: fr +--- + +## Introduction {#introduction} + +**Qu'est ce qu'un jeton ?** + +Un jeton peut représenter à peu près n'importe quoi sur Ethereum : + +- Des points de réputation sur une plateforme en ligne +- Les compétences d'un personnage de jeu +- Un billet de loterie +- Des actifs financiers, comme une action dans une société +- Une monnaie fiduciaire comme l'EUR +- Une once d'or +- Et plus encore... + +Un écosystème aussi puissant qu'Ethereum doit être géré selon une norme robuste, non ? C'est exactement là que l'ERC-20 joue son rôle ! Cette norme permet aux développeurs de construire des applications de jetons interopérables avec d'autres produits et services. + +**Qu'est-ce que l'ERC-20 ?** + +L'ERC-20 introduit une norme standard pour les Jetons Fongibles. En d'autres termes, ils disposent d'une propriété qui fait que chaque jeton est exactement le même (en termes de type et de valeur) qu'un autre jeton. Par exemple, un jeton ERC-20 agit exactement comme de l'ETH, ce qui signifie que 1 jeton est et sera toujours égal à tous les autres jetons. + +## Prérequis {#prerequisites} + +- [Comptes](/developers/docs/accounts) +- [Contrats intelligents](/developers/docs/smart-contracts/) +- [Normes de jetons](/developers/docs/standards/tokens/) + +## Présentation {#body} + +La demande de commentaires ERC-20, proposée par Fabian Vogelsteller en novembre 2015, est une norme de jeton qui implémente une API pour les jetons au sein des contrats intelligents. + +Exemples de fonctionnalités fournies par ERC-20 : + +- transférer des jetons d'un compte à un autre +- obtenir le solde actuel du jeton d'un compte +- obtenir la quantité totale du jeton disponible sur le réseau +- approuver si un montant de jeton d'un compte peut être dépensé par un compte tiers + +Si un contrat intelligent implémente les méthodes et les événements suivants, il peut être nommé Contrat de jeton ERC-20 et, une fois déployé, sera responsable d'effectuer un suivi des jetons créés sur Ethereum. + +De [EIP-20](https://eips.ethereum.org/EIPS/eip-20) : + +### Méthodes {#methods} + +```solidity +function name() public view returns (string) +function symbol() public view returns (string) +function decimals() public view returns (uint8) +function totalSupply() public view returns (uint256) +function balanceOf(address _owner) public view returns (uint256 balance) +function transfer(address _to, uint256 _value) public returns (bool success) +function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) +function approve(address _spender, uint256 _value) public returns (bool success) +function allowance(address _owner, address _spender) public view returns (uint256 remaining) +``` + +### Événements {#events} + +```solidity +event Transfer(address indexed _from, address indexed _to, uint256 _value) +event Approval(address indexed _owner, address indexed _spender, uint256 _value) +``` + +### Exemples {#web3py-example} + +Voyons pourquoi une norme est importante et pourquoi elle nous facilite le contrôle de tout contrat de jeton ERC-20 sur Ethereum. Nous avons juste besoin de l'interface binaire-programme (ABI) du contrat pour créer une interface à n'importe quel jeton ERC-20. Comme vous pouvez le voir ci-dessous, nous utiliserons une ABI simplifiée, pour en faire un exemple facile à comprendre. + +#### Exempl Web3.py {#web3py-example} + +Pour commencer, assurez-vous d'avoir installé la bibliothèque Python [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) : + +``` +pip install web3 +``` + +```python +from web3 import Web3 + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI +weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # Wrapped ether (WETH) + +acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11" # Uniswap V2: DAI 2 + +# This is a simplified Contract Application Binary Interface (ABI) of an ERC-20 Token Contract. +# It will expose only the methods: balanceOf(address), decimals(), symbol() and totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'decimals', + 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +dai_contract = w3.eth.contract(address=w3.to_checksum_address(dai_token_addr), abi=simplified_abi) +symbol = dai_contract.functions.symbol().call() +decimals = dai_contract.functions.decimals().call() +totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals +addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# DAI +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) + +weth_contract = w3.eth.contract(address=w3.to_checksum_address(weth_token_addr), abi=simplified_abi) +symbol = weth_contract.functions.symbol().call() +decimals = weth_contract.functions.decimals().call() +totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals +addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# WETH +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) +``` + +## Complément d'information {#further-reading} + +- [EIP-20 : ERC-20 Token Standard](https://eips.ethereum.org/EIPS/eip-20) +- [OpenZeppelin - Tokens](https://docs.openzeppelin.com/contracts/3.x/tokens#ERC20) +- [OpenZeppelin - Implémentation ERC-20](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) +- [Alchemy - Guide des jetons ERC20 Solidity](https://www.alchemy.com/overviews/erc20-solidity) diff --git a/src/content/translations/fr/developers/docs/standards/tokens/erc-4626/index.md b/public/content/translations/fr/developers/docs/standards/tokens/erc-4626/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/standards/tokens/erc-4626/index.md rename to public/content/translations/fr/developers/docs/standards/tokens/erc-4626/index.md diff --git a/public/content/translations/fr/developers/docs/standards/tokens/erc-721/index.md b/public/content/translations/fr/developers/docs/standards/tokens/erc-721/index.md new file mode 100644 index 00000000000..4c7fdeaa0dc --- /dev/null +++ b/public/content/translations/fr/developers/docs/standards/tokens/erc-721/index.md @@ -0,0 +1,244 @@ +--- +title: Norme de jeton non fongible ERC-721 +description: +lang: fr +--- + +## Introduction {#introduction} + +**Qu'est-ce qu'un jeton non fongible (NFT) ?** + +Un NFT est utilisé pour identifier quelque chose ou quelqu'un d'une façon unique. Ce type de jeton est parfait pour une utilisation sur les plateformes proposant des objets de collection, clés d'accès, billets de loterie, sièges numérotés pour concerts et matchs sportifs, etc. Ce type spécial de jeton ayant des possibilités incroyables, il mérite donc une norme adéquate, comme l'ERC-721. + +**Qu'est-ce que l'ERC-721 ?** + +L'ERC-721 introduit une norme pour les NFT. En d'autres termes, ce type de jeton est unique et peut avoir une valeur différente de celle d'un autre jeton du même contrat intelligent, peut-être en raison de son âge, de sa rareté ou du visuel qui lui est associé. Visuel ? Vous avez dit visuel ? + +Oui ! Tous les NFT ont une variable `uint256` appelée `tokenId` ainsi, pour tout contrat ERC-721, la paire `contract address, uint256 tokenId` doit être globalement unique. Cela dit, une dApp peut avoir un « convertisseur » qui utilisent le `tokenld` comme entrée et affiche une image de quelque chose de cool, comme des zombies, des armes, des compétences ou des incroyables chatons ! + +## Prérequis {#prerequisites} + +- [Comptes](/developers/docs/accounts/) +- [Contrats intelligents](/developers/docs/smart-contracts/) +- [Normes de jetons](/developers/docs/standards/tokens/) + +## Présentation {#body} + +L'ERC-721 (pour "Ethereum Request for Comments 721") proposé par William Entriken, Dieter Shirley, Jacob Evans, Nastassia Sachs en janvier 2018, est une norme de jeton non fongible qui implémente une API pour les jetons des contrats intelligents. + +Elle fournit des fonctionnalités permettant de transférer des jetons d'un compte à un autre, ou d'obtenir le solde actuel d'un compte en jetons, le nom du propriétaire d'un jeton spécifique et le nombre total de jetons disponibles sur le réseau. En plus de celles-ci, il en existe d'autres pour, par exemple, approuver que des jetons provenant d'un compte soient déplacés par un compte tiers. + +Si un contrat intelligent implémente les méthodes et les événements suivants, il peut être nommé Contrat de jeton non fongible ERC-721 et, une fois déployé, sera responsable d'effectuer un suivi des jetons créés sur Ethereum. + +De [EIP-721](https://eips.ethereum.org/EIPS/eip-721) : + +### Méthodes {#methods} + +```solidity + function balanceOf(address _owner) external view returns (uint256); + function ownerOf(uint256 _tokenId) external view returns (address); + function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; + function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; + function transferFrom(address _from, address _to, uint256 _tokenId) external payable; + function approve(address _approved, uint256 _tokenId) external payable; + function setApprovalForAll(address _operator, bool _approved) external; + function getApproved(uint256 _tokenId) external view returns (address); + function isApprovedForAll(address _owner, address _operator) external view returns (bool); +``` + +### Événements {#events} + +```solidity + event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); + event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); + event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); +``` + +### Exemples {#web3py-example} + +Voyons comment une norme peut être si importante pour nous faciliter le contrôle de tout contrat de jeton ERC-721 sur Ethereum. Nous avons juste besoin de l'interface binaire-programme (ABI) du contrat pour créer une interface à n'importe quel jeton ERC-721. Comme vous pouvez le voir ci-dessous, nous utiliserons une ABI simplifiée, pour en faire un exemple de faible friction. + +#### Exemple Web3.py {#web3py-example} + +Pour commencer, assurez-vous d'avoir installé la bibliothèque Python [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation): + +``` +pip install web3 +``` + +```python +from web3 import Web3 +from web3._utils.events import get_event_data + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # CryptoKitties Contract + +acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # CryptoKitties Sales Auction + +# This is a simplified Contract Application Binary Interface (ABI) of an ERC-721 NFT Contract. +# It will expose only the methods: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'name', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'ownerOf', + 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, +] + +ck_extra_abi = [ + { + 'inputs': [], + 'name': 'pregnantKitties', + 'outputs': [{'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'name': '_kittyId', 'type': 'uint256'}], + 'name': 'isPregnant', + 'outputs': [{'name': '', 'type': 'bool'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +ck_contract = w3.eth.contract(address=w3.to_checksum_address(ck_token_addr), abi=simplified_abi+ck_extra_abi) +name = ck_contract.functions.name().call() +symbol = ck_contract.functions.symbol().call() +kitties_auctions = ck_contract.functions.balanceOf(acc_address).call() +print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}") + +pregnant_kitties = ck_contract.functions.pregnantKitties().call() +print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}") + +# Using the Transfer Event ABI to get info about transferred Kitties. +tx_event_abi = { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'from', 'type': 'address'}, + {'indexed': False, 'name': 'to', 'type': 'address'}, + {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'Transfer', + 'type': 'event' +} + +# We need the event's signature to filter the logs +event_signature = w3.keccak(text="Transfer(address,address,uint256)").hex() + +logs = w3.eth.get_logs({ + "fromBlock": w3.eth.block_number - 120, + "address": w3.to_checksum_address(ck_token_addr), + "topics": [event_signature] +}) + +# Notes: +# - Increase the number of blocks up from 120 if no Transfer event is returned. +# - If you didn't find any Transfer event you can also try to get a tokenId at: +# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events +# Click to expand the event's logs and copy its "tokenId" argument +recent_tx = [get_event_data(w3.codec, tx_event_abi, log)["args"] for log in logs] + +if recent_tx: + kitty_id = recent_tx[0]['tokenId'] # Paste the "tokenId" here from the link above + is_pregnant = ck_contract.functions.isPregnant(kitty_id).call() + print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}") +``` + +Le contrat CryptoKitties comporte des événements intéressants en dehors des événements standards. + +Vérifions deux d'entre eux, `Pregnant` et `Birth`. + +```python +# Using the Pregnant and Birth Events ABI to get info about new Kitties. +ck_extra_events_abi = [ + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}], + 'name': 'Pregnant', + 'type': 'event' + }, + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'kittyId', 'type': 'uint256'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'genes', 'type': 'uint256'}], + 'name': 'Birth', + 'type': 'event' + }] + +# We need the event's signature to filter the logs +ck_event_signatures = [ + w3.keccak(text="Pregnant(address,uint256,uint256,uint256)").hex(), + w3.keccak(text="Birth(address,uint256,uint256,uint256,uint256)").hex(), +] + +# Here is a Pregnant Event: +# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog +pregnant_logs = w3.eth.get_logs({ + "fromBlock": w3.eth.block_number - 120, + "address": w3.to_checksum_address(ck_token_addr), + "topics": [ck_event_signatures[0]] +}) + +recent_pregnants = [get_event_data(w3.codec, ck_extra_events_abi[0], log)["args"] for log in pregnant_logs] + +# Here is a Birth Event: +# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a +birth_logs = w3.eth.get_logs({ + "fromBlock": w3.eth.block_number - 120, + "address": w3.to_checksum_address(ck_token_addr), + "topics": [ck_event_signatures[1]] +}) + +recent_births = [get_event_data(w3.codec, ck_extra_events_abi[1], log)["args"] for log in birth_logs] +``` + +## NFT populaires {#popular-nfts} + +- [Etherscan NFT Tracker](https://etherscan.io/tokens-nft) répertorie les NFT les plus importants sur Ethereum en termes de volume de transferts. +- [CryptoKitties](https://www.cryptokitties.co/) est un jeu axé sur des créatures de collection adorables dont on peut faire l'élevage et que nous appelons CryptoKitties. +- [Sorare](https://sorare.com/) est un jeu de football mondial où vous pouvez collectionner des objets en édition limitée, gérer vos équipes et concourir pour gagner des prix. +- [Ethereum Name Service (ENS)](https://ens.domains/) offre un moyen sécurisé et décentralisé d'adresser des ressources à la fois sur et hors de la blockchain en utilisant des noms simples et lisibles. +- [POAP](https://poap.xyz) fournit des NFT gratuits aux personnes qui assistent à des événements ou accomplissent des actions spécifiques. Les POAP sont libres de création et de distribution. +- [Unstoppable Domains](https://unstoppabledomains.com/) est une société basée à San Francisco, qui construit des domaines sur des blockchains. Les domaines de blockchains remplacent les adresses des cryptomonnaies par des noms lisibles et peuvent être utilisés pour activer des sites Web résistants à la censure. +- [Gods Unchained Cards](https://godsunchained.com/) est un jeu de cartes à collectionner (JCC) de la blockchain Ethereum, qui utilise des NFT pour apporter une vraie propriété aux actifs en jeu. +- [Bored Ape Yacht Club](https://boredapeyachtclub.com) est une collection de 10 000 NFT uniques qui, en plus d'être une œuvre d'art remarquablement rare, agit en tant que jeton d’adhésion au club en fournissant aux membres des atouts et des avantages qui augmentent au fil du temps grâce aux efforts de la communauté. + +## Complément d'information {#further-reading} + +- [EIP-721: ERC-721 Non-Fungible Token Standard](https://eips.ethereum.org/EIPS/eip-721) +- [OpenZeppelin - ERC-721 Docs](https://docs.openzeppelin.com/contracts/3.x/erc721) +- [OpenZeppelin - Implémentation ERC-721](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) +- [API NFT d'Alchemy](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) diff --git a/src/content/translations/fr/developers/docs/standards/tokens/erc-777/index.md b/public/content/translations/fr/developers/docs/standards/tokens/erc-777/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/standards/tokens/erc-777/index.md rename to public/content/translations/fr/developers/docs/standards/tokens/erc-777/index.md diff --git a/src/content/translations/fr/developers/docs/standards/tokens/index.md b/public/content/translations/fr/developers/docs/standards/tokens/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/standards/tokens/index.md rename to public/content/translations/fr/developers/docs/standards/tokens/index.md diff --git a/src/content/translations/fr/developers/docs/storage/index.md b/public/content/translations/fr/developers/docs/storage/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/storage/index.md rename to public/content/translations/fr/developers/docs/storage/index.md diff --git a/src/content/translations/fr/developers/docs/transactions/index.md b/public/content/translations/fr/developers/docs/transactions/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/transactions/index.md rename to public/content/translations/fr/developers/docs/transactions/index.md diff --git a/src/content/translations/fr/developers/docs/web2-vs-web3/index.md b/public/content/translations/fr/developers/docs/web2-vs-web3/index.md similarity index 100% rename from src/content/translations/fr/developers/docs/web2-vs-web3/index.md rename to public/content/translations/fr/developers/docs/web2-vs-web3/index.md diff --git a/src/content/translations/fr/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md b/public/content/translations/fr/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md rename to public/content/translations/fr/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md diff --git a/src/content/translations/fr/developers/tutorials/calling-a-smart-contract-from-javascript/index.md b/public/content/translations/fr/developers/tutorials/calling-a-smart-contract-from-javascript/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/calling-a-smart-contract-from-javascript/index.md rename to public/content/translations/fr/developers/tutorials/calling-a-smart-contract-from-javascript/index.md diff --git a/src/content/translations/fr/developers/tutorials/create-and-deploy-a-defi-app/index.md b/public/content/translations/fr/developers/tutorials/create-and-deploy-a-defi-app/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/create-and-deploy-a-defi-app/index.md rename to public/content/translations/fr/developers/tutorials/create-and-deploy-a-defi-app/index.md diff --git a/src/content/translations/fr/developers/tutorials/deploying-your-first-smart-contract/index.md b/public/content/translations/fr/developers/tutorials/deploying-your-first-smart-contract/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/deploying-your-first-smart-contract/index.md rename to public/content/translations/fr/developers/tutorials/deploying-your-first-smart-contract/index.md diff --git a/src/content/translations/fr/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md b/public/content/translations/fr/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md rename to public/content/translations/fr/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md diff --git a/src/content/translations/fr/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/fr/developers/tutorials/erc-721-vyper-annotated-code/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/erc-721-vyper-annotated-code/index.md rename to public/content/translations/fr/developers/tutorials/erc-721-vyper-annotated-code/index.md diff --git a/src/content/translations/fr/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md b/public/content/translations/fr/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md rename to public/content/translations/fr/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md diff --git a/src/content/translations/fr/developers/tutorials/guide-to-smart-contract-security-tools/index.md b/public/content/translations/fr/developers/tutorials/guide-to-smart-contract-security-tools/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/guide-to-smart-contract-security-tools/index.md rename to public/content/translations/fr/developers/tutorials/guide-to-smart-contract-security-tools/index.md diff --git a/src/content/translations/fr/developers/tutorials/hello-world-smart-contract/index.md b/public/content/translations/fr/developers/tutorials/hello-world-smart-contract/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/hello-world-smart-contract/index.md rename to public/content/translations/fr/developers/tutorials/hello-world-smart-contract/index.md diff --git a/src/content/translations/fr/developers/tutorials/how-to-implement-an-erc721-market/index.md b/public/content/translations/fr/developers/tutorials/how-to-implement-an-erc721-market/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/how-to-implement-an-erc721-market/index.md rename to public/content/translations/fr/developers/tutorials/how-to-implement-an-erc721-market/index.md diff --git a/src/content/translations/fr/developers/tutorials/how-to-mint-an-nft/index.md b/public/content/translations/fr/developers/tutorials/how-to-mint-an-nft/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/how-to-mint-an-nft/index.md rename to public/content/translations/fr/developers/tutorials/how-to-mint-an-nft/index.md diff --git a/src/content/translations/fr/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md b/public/content/translations/fr/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md rename to public/content/translations/fr/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md diff --git a/src/content/translations/fr/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md b/public/content/translations/fr/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md rename to public/content/translations/fr/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md diff --git a/src/content/translations/fr/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md b/public/content/translations/fr/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md rename to public/content/translations/fr/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md diff --git a/src/content/translations/fr/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md b/public/content/translations/fr/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md rename to public/content/translations/fr/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md diff --git a/src/content/translations/fr/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md b/public/content/translations/fr/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md rename to public/content/translations/fr/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md diff --git a/src/content/translations/fr/developers/tutorials/how-to-view-nft-in-metamask/index.md b/public/content/translations/fr/developers/tutorials/how-to-view-nft-in-metamask/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/how-to-view-nft-in-metamask/index.md rename to public/content/translations/fr/developers/tutorials/how-to-view-nft-in-metamask/index.md diff --git a/src/content/translations/fr/developers/tutorials/how-to-write-and-deploy-an-nft/index.md b/public/content/translations/fr/developers/tutorials/how-to-write-and-deploy-an-nft/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/how-to-write-and-deploy-an-nft/index.md rename to public/content/translations/fr/developers/tutorials/how-to-write-and-deploy-an-nft/index.md diff --git a/src/content/translations/fr/developers/tutorials/interact-with-other-contracts-from-solidity/index.md b/public/content/translations/fr/developers/tutorials/interact-with-other-contracts-from-solidity/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/interact-with-other-contracts-from-solidity/index.md rename to public/content/translations/fr/developers/tutorials/interact-with-other-contracts-from-solidity/index.md diff --git a/src/content/translations/fr/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md b/public/content/translations/fr/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md rename to public/content/translations/fr/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md diff --git a/src/content/translations/fr/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md b/public/content/translations/fr/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md rename to public/content/translations/fr/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md diff --git a/src/content/translations/fr/developers/tutorials/logging-events-smart-contracts/index.md b/public/content/translations/fr/developers/tutorials/logging-events-smart-contracts/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/logging-events-smart-contracts/index.md rename to public/content/translations/fr/developers/tutorials/logging-events-smart-contracts/index.md diff --git a/src/content/translations/fr/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md b/public/content/translations/fr/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md rename to public/content/translations/fr/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md diff --git a/src/content/translations/fr/developers/tutorials/nft-minter/index.md b/public/content/translations/fr/developers/tutorials/nft-minter/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/nft-minter/index.md rename to public/content/translations/fr/developers/tutorials/nft-minter/index.md diff --git a/src/content/translations/fr/developers/tutorials/optimism-std-bridge-annotated-code/index.md b/public/content/translations/fr/developers/tutorials/optimism-std-bridge-annotated-code/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/optimism-std-bridge-annotated-code/index.md rename to public/content/translations/fr/developers/tutorials/optimism-std-bridge-annotated-code/index.md diff --git a/src/content/translations/fr/developers/tutorials/reverse-engineering-a-contract/index.md b/public/content/translations/fr/developers/tutorials/reverse-engineering-a-contract/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/reverse-engineering-a-contract/index.md rename to public/content/translations/fr/developers/tutorials/reverse-engineering-a-contract/index.md diff --git a/src/content/translations/fr/developers/tutorials/run-node-raspberry-pi/index.md b/public/content/translations/fr/developers/tutorials/run-node-raspberry-pi/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/run-node-raspberry-pi/index.md rename to public/content/translations/fr/developers/tutorials/run-node-raspberry-pi/index.md diff --git a/src/content/translations/fr/developers/tutorials/secure-development-workflow/index.md b/public/content/translations/fr/developers/tutorials/secure-development-workflow/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/secure-development-workflow/index.md rename to public/content/translations/fr/developers/tutorials/secure-development-workflow/index.md diff --git a/src/content/translations/fr/developers/tutorials/send-token-ethersjs/index.md b/public/content/translations/fr/developers/tutorials/send-token-ethersjs/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/send-token-ethersjs/index.md rename to public/content/translations/fr/developers/tutorials/send-token-ethersjs/index.md diff --git a/src/content/translations/fr/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md b/public/content/translations/fr/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md rename to public/content/translations/fr/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md diff --git a/src/content/translations/fr/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md b/public/content/translations/fr/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md rename to public/content/translations/fr/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md diff --git a/src/content/translations/fr/developers/tutorials/short-abi/index.md b/public/content/translations/fr/developers/tutorials/short-abi/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/short-abi/index.md rename to public/content/translations/fr/developers/tutorials/short-abi/index.md diff --git a/src/content/translations/fr/developers/tutorials/smart-contract-security-guidelines/index.md b/public/content/translations/fr/developers/tutorials/smart-contract-security-guidelines/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/smart-contract-security-guidelines/index.md rename to public/content/translations/fr/developers/tutorials/smart-contract-security-guidelines/index.md diff --git a/src/content/translations/fr/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md b/public/content/translations/fr/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md rename to public/content/translations/fr/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md diff --git a/src/content/translations/fr/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md b/public/content/translations/fr/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md rename to public/content/translations/fr/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md diff --git a/src/content/translations/fr/developers/tutorials/the-graph-fixing-web3-data-querying/index.md b/public/content/translations/fr/developers/tutorials/the-graph-fixing-web3-data-querying/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/the-graph-fixing-web3-data-querying/index.md rename to public/content/translations/fr/developers/tutorials/the-graph-fixing-web3-data-querying/index.md diff --git a/src/content/translations/fr/developers/tutorials/token-integration-checklist/index.md b/public/content/translations/fr/developers/tutorials/token-integration-checklist/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/token-integration-checklist/index.md rename to public/content/translations/fr/developers/tutorials/token-integration-checklist/index.md diff --git a/src/content/translations/fr/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md b/public/content/translations/fr/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md rename to public/content/translations/fr/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md diff --git a/src/content/translations/fr/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md b/public/content/translations/fr/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md rename to public/content/translations/fr/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md diff --git a/src/content/translations/fr/developers/tutorials/uniswap-v2-annotated-code/index.md b/public/content/translations/fr/developers/tutorials/uniswap-v2-annotated-code/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/uniswap-v2-annotated-code/index.md rename to public/content/translations/fr/developers/tutorials/uniswap-v2-annotated-code/index.md diff --git a/src/content/translations/fr/developers/tutorials/using-websockets/index.md b/public/content/translations/fr/developers/tutorials/using-websockets/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/using-websockets/index.md rename to public/content/translations/fr/developers/tutorials/using-websockets/index.md diff --git a/public/content/translations/fr/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md b/public/content/translations/fr/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md new file mode 100644 index 00000000000..295af215f85 --- /dev/null +++ b/public/content/translations/fr/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md @@ -0,0 +1,298 @@ +--- +title: "Waffle: Bouchonnage dynamique et tests de contrats" +description: Tutoriel Waffle avancé pour utiliser le bouchonnage dynamique et tester les appels de contrat +author: "Daniel Izdebski" +tags: + - "waffle" + - "contrats intelligents" + - "solidity" + - "test" + - "bouchonnage" +skill: intermediate +lang: fr +published: 2020-11-14 +--- + +## À quoi sert ce tutoriel ? {#what-is-this-tutorial-about} + +Dans ce tutoriel, vous apprendrez comment : + +- utiliser le bouchonnage dynamique +- tester les interactions entre contrats intelligents + +Prérequis : + +- vous savez déjà écrire un simple contrat intelligent en `Solidity` +- vous vous débrouillez en `JavaScript` et en `TypeScript` +- vous avez fait d'autres tutoriels `Waffle` ou vous connaissez deux ou trois choses à ce sujet + +## Bouchonnage dynamique {#dynamic-mocking} + +Pourquoi le bouchonnage dynamique est-il utile ? Eh bien, il nous permet de rédiger des tests unitaires plutôt que des tests d'intégration. Qu'est-ce que cela signifie ? Cela signifie que nous n'avons pas à nous soucier des dépendances des contrats intelligents, donc que nous pouvons tous les tester de façon isolée. Laissez-moi vous montrer comment procéder. + +### **1. Projet** {#1-project} + +Avant de commencer, nous avons besoin de préparer un simple projet node.js : + +```bash +mkdir dynamic-mocking +cd dynamic-mocking +mkdir contracts src + +yarn init +# or if you're using npm +npm init +``` + +Commençons par ajouter typescript et les dépendances de test - mocha & chai : + +```bash +yarn add --dev @types/chai @types/mocha chai mocha ts-node typescript +# or if you're using npm +npm install @types/chai @types/mocha chai mocha ts-node typescript --save-dev +``` + +Maintenant, ajoutons `Waffle` et `ethers`: + +```bash +yarn add --dev ethereum-waffle ethers +# or if you're using npm +npm install ethereum-waffle ethers --save-dev +``` + +La structure de votre projet devrait ressembler à ceci : + +``` +. +├── contracts +├── package.json +└── test +``` + +### **2. Contrat intelligent** {#2-smart-contract} + +Pour démarrer un bouchonnage dynamique, nous avons besoin d'un contrat intelligent avec des dépendances. Ne t'inquiètes pas, nous assurons tes arrières ! + +Voici un contrat intelligent simple écrit en `Solidity` dont le seul but est de vérifier si nous sommes riches. Il utilise un jeton ERC20 pour vérifier si nous avons suffisamment de jetons. Mettez-le dans `./contracts/AmIRichAlready.sol`. + +```solidity +pragma solidity ^0.6.2; + +interface IERC20 { + function balanceOf(address account) external view returns (uint256); +} + +contract AmIRichAlready { + IERC20 private tokenContract; + uint public richness = 1000000 * 10 ** 18; + + constructor (IERC20 _tokenContract) public { + tokenContract = _tokenContract; + } + + function check() public view returns (bool) { + uint balance = tokenContract.balanceOf(msg.sender); + return balance > richness; + } +} +``` + +Comme nous voulons utiliser le bouchonnage dynamique, nous n'avons pas besoin de tout l'ERC20, c'est pourquoi nous utilisons l'interface IERC20 avec une seule fonction. + +Il est temps de créer ce contrat ! Pour cela, nous utiliserons le `Waffle`. Tout d'abord, nous allons créer un simple fichier de configuration `waffle.json` qui spécifie les options de compilation. + +```json +{ + "compilerType": "solcjs", + "compilerVersion": "0.6.2", + "sourceDirectory": "./contracts", + "outputDirectory": "./build" +} +``` + +Nous sommes désormais prêts à construire le contrat avec Waffle : + +```bash +npx waffle +``` + +Facile, n'est-ce pas? Dans le dossier `build/`, deux fichiers correspondant au contrat et à l'interface apparaissent. Nous les utiliserons plus tard pour les tests. + +### **3. Tests** {#3-testing} + +Nous allons créer un fichier appelé `AmIRichAlready.test.ts` pour le test actuel. Tout d'abord, nous devons gérer les importations. Nous en aurons besoin pour plus tard: + +```typescript +import { expect, use } from "chai" +import { Contract, utils, Wallet } from "ethers" +import { + deployContract, + deployMockContract, + MockProvider, + solidity, +} from "ethereum-waffle" +``` + +Sauf pour les dépendances JS, nous devons importer le contrat et l'interface précédemment créés : + +```typescript +import IERC20 from "../build/IERC20.json" +import AmIRichAlready from "../build/AmIRichAlready.json" +``` + +Waffle utilise `chai` pour le test. Cependant, avant de pouvoir l'utiliser, nous devons injecter les matchers de Waffle dans le chai lui-même : + +```typescript +use(solidity) +``` + +Nous devons implémenter la fonction `beforeEach()` qui réinitialisera l'état du contrat avant chaque test. Réfléchissons d'abord à ce dont nous avons besoin. Pour déployer un contrat, nous avons besoin de deux choses: un wallet et un contrat ERC20 déployé pour le passer comme argument pour le contrat `AmIRichAlready`. + +Premièrement, créons nous un portefeuille: + +```typescript +const [wallet] = new MockProvider().getWallets() +``` + +Ensuite, nous devons déployer un contrat ERC20. Voici la partie délicate - nous n'avons qu'une seule interface. C'est la partie où Waffle vient nous sauver. Waffle a une fonction magique `deployMockContract()` qui crée un contrat en utilisant uniquement le _abi_ de l'interface : + +```typescript +const mockERC20 = await deployMockContract(wallet, IERC20.abi) +``` + +Maintenant, avec le wallet et l'ERC20 déployé, nous pouvons continuer et déployer le contrat `AmIRichAlready`: + +```typescript +const contract = await deployContract(wallet, AmIRichAlready, [ + mockERC20.address, +]) +``` + +Avec tout cela, notre fonction `beforeEach()` est terminée. Pour l'instant, votre fichier `AmIRichAlready.test.ts` devrait ressembler à ceci : + +```typescript +import { expect, use } from "chai" +import { Contract, utils, Wallet } from "ethers" +import { + deployContract, + deployMockContract, + MockProvider, + solidity, +} from "ethereum-waffle" + +import IERC20 from "../build/IERC20.json" +import AmIRichAlready from "../build/AmIRichAlready.json" + +use(solidity) + +describe("Am I Rich Already", () => { + let mockERC20: Contract + let contract: Contract + let wallet: Wallet + + beforeEach(async () => { + ;[wallet] = new MockProvider().getWallets() + mockERC20 = await deployMockContract(wallet, IERC20.abi) + contract = await deployContract(wallet, AmIRichAlready, [mockERC20.address]) + }) +}) +``` + +Écrivons le premier test pour le contrat `AmIRichalready`. De quoi pensez-vous que notre test devrait traiter? Ouais, vous avez raison! Nous devrions vérifier si nous sommes déjà riches :) + +Mais attendez une seconde. Comment notre contrat fictif saura-t-il quelles valeurs retourner? Nous n'avons implémenté aucune logique pour la fonction `balanceOf()`. Là encore, Waffle peut nous aider. Notre contrat fictif a de nouveaux trucs fantaisistes maintenant : + +```typescript +await mockERC20.mock..returns() +await mockERC20.mock..withArgs().returns() +``` + +Avec cette connaissance, nous pouvons enfin écrire notre premier test : + +```typescript +it("returns false if the wallet has less than 1000000 tokens", async () => { + await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) + expect(await contract.check()).to.be.equal(false) +}) +``` + +Décomposons ce test en parties : + +1. Nous avons fixé notre contrat fictif ERC20 pour toujours retourner le solde de 999999 jetons. +2. Vérifiez si la méthode `contract.check()` retourne `false`. + +Nous sommes prêts à allumer la bête : + +![Un test réussi](./test-one.png) + +Alors le test fonctionne, mais... il y a encore des choses à améliorer. La fonction `balanceOf()` retournera toujours 99999. Nous pouvons l'améliorer en spécifiant un portefeuille pour lequel la fonction devrait retourner quelque chose - tout comme un contrat réel : + +```typescript +it("returns false if the wallet has less than 1000001 tokens", async () => { + await mockERC20.mock.balanceOf + .withArgs(wallet.address) + .returns(utils.parseEther("999999")) + expect(await contract.check()).to.be.equal(false) +}) +``` + +Jusqu'à présent, nous avons testé seulement le cas où nous ne sommes pas assez riche. Essayons l'inverse: + +```typescript +it("returns true if the wallet has at least 1000001 tokens", async () => { + await mockERC20.mock.balanceOf + .withArgs(wallet.address) + .returns(utils.parseEther("1000001")) + expect(await contract.check()).to.be.equal(true) +}) +``` + +Vous exécutez les tests... + +![Deux tests réussis](test-two.png) + +Et voici où tu en es! Notre contrat semble fonctionner comme prévu :) + +## Test des appels de contrat {#testing-contract-calls} + +Résumons ce qui a été fait jusqu'à présent. Nous avons testé la fonctionnalité de notre contrat `AmIRichalready` et il semble qu'il fonctionne correctement. Cela signifie que nous avons terminé, n'est-ce pas? Pas exactement ! Waffle nous permet de tester encore plus notre contrat. Mais comment exactement ? Eh bien, dans l'arsenal de Waffle, il y a une correspondance entre `calledOnContract()` et `calledOnContractWith()`. Cela va nous permettre de vérifier si notre contrat a appelé le contrat fictif ERC20. Voici un test de base avec l'une de ces correspondance: + +```typescript +it("checks if contract called balanceOf on the ERC20 token", async () => { + await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) + await contract.check() + expect("balanceOf").to.be.calledOnContract(mockERC20) +}) +``` + +Nous pouvons aller encore plus loin et améliorer ce test avec l'autre matcher dont nous vous avons parlé: + +```typescript +it("checks if contract called balanceOf with certain wallet on the ERC20 token", async () => { + await mockERC20.mock.balanceOf + .withArgs(wallet.address) + .returns(utils.parseEther("999999")) + await contract.check() + expect("balanceOf").to.be.calledOnContractWith(mockERC20, [wallet.address]) +}) +``` + +Vérifions si les tests sont corrects : + +![Trois tests réussis](test-three.png) + +Super, tous les tests sont verts. + +Tester des appels de contrats avec Waffle est super facile. Et voici la meilleure partie. Ces matchers fonctionnent à la fois avec des contrats normaux et fictifs ! C'est parce que Waffle enregistre et filtre les appels EVM plutôt que d'injecter du code, comme c'est le cas des bibliothèques de test populaires pour d'autres technologies. + +## La fin {#the-finish-line} + +Félicitations ! Maintenant vous savez comment utiliser Waffle pour tester dynamiquement les appels de contrats et les contrats fictifs. Il y a beaucoup plus de fonctionnalités intéressantes à découvrir. Je recommande de plonger dans la documentation de Waffle. + +La documentation Waffle est disponible [here](https://ethereum-waffle.readthedocs.io/). + +Le code source de ce tutoriel est disponible [ici](https://github.com/EthWorks/Waffle/tree/master/examples/dynamic-mocking-and-testing-calls). + +Voici d'autres tutoriels qui pourraient vous intéresser : + +- [Tester des contrats intelligents avec Waffle](/developers/tutorials/testing-smart-contract-with-waffle/) diff --git a/src/content/translations/fr/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md b/public/content/translations/fr/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md rename to public/content/translations/fr/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md diff --git a/src/content/translations/fr/developers/tutorials/waffle-test-simple-smart-contract/index.md b/public/content/translations/fr/developers/tutorials/waffle-test-simple-smart-contract/index.md similarity index 100% rename from src/content/translations/fr/developers/tutorials/waffle-test-simple-smart-contract/index.md rename to public/content/translations/fr/developers/tutorials/waffle-test-simple-smart-contract/index.md diff --git a/src/content/translations/fr/eips/index.md b/public/content/translations/fr/eips/index.md similarity index 100% rename from src/content/translations/fr/eips/index.md rename to public/content/translations/fr/eips/index.md diff --git a/src/content/translations/fr/energy-consumption/index.md b/public/content/translations/fr/energy-consumption/index.md similarity index 100% rename from src/content/translations/fr/energy-consumption/index.md rename to public/content/translations/fr/energy-consumption/index.md diff --git a/src/content/translations/fr/enterprise/index.md b/public/content/translations/fr/enterprise/index.md similarity index 100% rename from src/content/translations/fr/enterprise/index.md rename to public/content/translations/fr/enterprise/index.md diff --git a/src/content/translations/fr/enterprise/private-ethereum/index.md b/public/content/translations/fr/enterprise/private-ethereum/index.md similarity index 100% rename from src/content/translations/fr/enterprise/private-ethereum/index.md rename to public/content/translations/fr/enterprise/private-ethereum/index.md diff --git a/src/content/translations/fr/foundation/index.md b/public/content/translations/fr/foundation/index.md similarity index 100% rename from src/content/translations/fr/foundation/index.md rename to public/content/translations/fr/foundation/index.md diff --git a/src/content/translations/fr/glossary/index.md b/public/content/translations/fr/glossary/index.md similarity index 100% rename from src/content/translations/fr/glossary/index.md rename to public/content/translations/fr/glossary/index.md diff --git a/src/content/translations/fr/governance/index.md b/public/content/translations/fr/governance/index.md similarity index 100% rename from src/content/translations/fr/governance/index.md rename to public/content/translations/fr/governance/index.md diff --git a/src/content/translations/fr/guides/how-to-create-an-ethereum-account/index.md b/public/content/translations/fr/guides/how-to-create-an-ethereum-account/index.md similarity index 100% rename from src/content/translations/fr/guides/how-to-create-an-ethereum-account/index.md rename to public/content/translations/fr/guides/how-to-create-an-ethereum-account/index.md diff --git a/src/content/translations/fr/guides/how-to-id-scam-tokens/index.md b/public/content/translations/fr/guides/how-to-id-scam-tokens/index.md similarity index 100% rename from src/content/translations/fr/guides/how-to-id-scam-tokens/index.md rename to public/content/translations/fr/guides/how-to-id-scam-tokens/index.md diff --git a/src/content/translations/fr/guides/how-to-revoke-token-access/index.md b/public/content/translations/fr/guides/how-to-revoke-token-access/index.md similarity index 100% rename from src/content/translations/fr/guides/how-to-revoke-token-access/index.md rename to public/content/translations/fr/guides/how-to-revoke-token-access/index.md diff --git a/src/content/translations/fr/guides/how-to-swap-tokens/index.md b/public/content/translations/fr/guides/how-to-swap-tokens/index.md similarity index 100% rename from src/content/translations/fr/guides/how-to-swap-tokens/index.md rename to public/content/translations/fr/guides/how-to-swap-tokens/index.md diff --git a/src/content/translations/fr/guides/how-to-use-a-bridge/index.md b/public/content/translations/fr/guides/how-to-use-a-bridge/index.md similarity index 100% rename from src/content/translations/fr/guides/how-to-use-a-bridge/index.md rename to public/content/translations/fr/guides/how-to-use-a-bridge/index.md diff --git a/src/content/translations/fr/guides/how-to-use-a-wallet/index.md b/public/content/translations/fr/guides/how-to-use-a-wallet/index.md similarity index 100% rename from src/content/translations/fr/guides/how-to-use-a-wallet/index.md rename to public/content/translations/fr/guides/how-to-use-a-wallet/index.md diff --git a/src/content/translations/fr/guides/index.md b/public/content/translations/fr/guides/index.md similarity index 100% rename from src/content/translations/fr/guides/index.md rename to public/content/translations/fr/guides/index.md diff --git a/public/content/translations/fr/history/index.md b/public/content/translations/fr/history/index.md new file mode 100644 index 00000000000..814c52d8eec --- /dev/null +++ b/public/content/translations/fr/history/index.md @@ -0,0 +1,516 @@ +--- +title: Histoire et fourches d'Ethereum +description: Historique de la blockchain Ethereum, y compris les avancées majeures, les événements clés et les fourches. +lang: fr +sidebarDepth: 1 +--- + +# Historique d'Ethereum {#the-history-of-ethereum} + +Chronologie de tous les jalons, fourches et mises à jour majeures de la blockchain Ethereum. + + + +Les forks existent lorsque des mises à jour ou des changements techniques majeurs doivent être effectués sur le réseau – ils proviennent généralement des Propositions d'amélioration d'Ethereum (EIP) et modifient les « règles » du protocole. + +Lorsque des mises à niveau des logiciels traditionnels contrôlés centralement sont nécessaires, la société publie simplement une nouvelle version pour l'utilisateur final. Les blockchains fonctionnent différemment parce qu'il n'existe pas de propriété centralisée. Les clients Ethereum doivent mettre à jour leur logiciel pour implémenter les nouvelles règles de la fourche. En outre, les créateurs de blocs (les "mineurs" dans l'univers des preuves de travail, les "validateurs" dans celui des preuves d'enjeu) et les nœuds doivent créer des blocs et les valider conformément aux nouvelles règles. En savoir plus sur les mécanismes de consensus + +Ces changements de règles peuvent créer une scission temporaire dans le réseau. De nouveaux blocs peuvent être produits selon les nouvelles règles ou les anciennes. Les fourches font généralement l'objet d'un accord à l'avance afin que les clients adoptent les changements à l'unisson et que la fourche contenant les mises à niveau devienne la chaîne principale. Toutefois, dans de rares cas, les désaccords sur les forks peuvent causer une séparation permanente du réseau – plus particulièrement la création d'Ethereum Classic avec le fork DAO. + + + +Passer directement à l'information sur certaines des mises à jour passées particulièrement importantes : [La Chaîne phare](/roadmap/beacon-chain/); [La Fusion](/roadmap/merge/); et [EIP-1559](#london) + +Vous cherchez les prochaines mises à jour de protocole ? [Découvrez les mises à jour à venir sur la feuille de route Ethereum](/roadmap/). + + + +## 2023 {#2023} + +### Shanghai {#shanghai} + + + +#### Résumé {#shanghai-summary} + +La mise à jour Shanghai a ouvert la voie à des opérations de retrait et de basculement vers la couche d'exécution Couplée à la mise à jour Capella, cette mise à jour permet aux blocs d'accepter des opérations de retrait, permettant ainsi aux validateurs de retirer leur ETH de la chaîne phare et de le basculer vers la couche d'exécution. + + + +
    +
  • EIP-3651Démarre l'adresse COINBASE
  • +
  • EIP-3855Nouvelle instruction PUSH0
  • +
  • EIP-3860Limite et initcode à compteur
  • +
  • EIP-4895Retraits de la chaîne phare en tant qu'opérations
  • +
  • L'EIP-6049 - Désapprouve SELFDESTRUCT
  • +
+ +
+ +- [Lire les spécificités de la mise à jour Shanghai](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/shanghai.md) + +--- + +### Capella {#capella} + + + +#### Résumé {#capella-summary} + +La mise à jour Capella est la troisième mise à jour majeure vers la couche de consensus (Chaine phare). Elle a permis d'effectuer des retraits de mise en jeu. Capella est entrée en action en même temps que la mise à niveau de la couche d'exécution, Shanghai, et a activé la fonctionnalité de retrait de mise en jeu. + +Cette mise à jour de la couche de consensus a permis aux validateurs, qui n'avaient pas fourni de certificats de retrait lors du premier dépôt de le faire, et donc d'effectuer des retraits. + +La mise à jour a également permis la mise en place d'une fonctionnalité de balayage automatique de compte, qui traite continuellement les comptes de validateur pour tout paiement de récompenses ou retrait intégral disponible. + +- [En savoir plus sur les retraits de mise en jeu](/staking/withdrawals/). +- [Lire les spécifications de la mise à jour Capella](https://github.com/ethereum/consensus-specs/blob/dev/specs/capella/) + + + +## 2022 {#2022} + +### Paris (La Fusion) {#paris} + + + +#### Résumé {#paris-summary} + +La mise à jour de Paris a été déclenchée par le passage de la blockchain de preuve de travail à une [difficulté totale finale](/glossary/#terminal-total-difficulty) de 5875000000000000000. Cela s'est produit au bloc 15537393 le 15 septembre 2022, déclenchant la mise à jour du bloc suivant. Paris était la transition vers la [La Fusion](/roadmap/merge/) : sa principale fonctionnalité était de désactiver l'algorithme de minage [preuve de travail](/developers/docs/consensus-mechanisms/pow) et sa logique de consensus associée et d'activer la [preuve d'enjeu](/developers/docs/consensus-mechanisms/pos) à la place. Paris lui-même était une mise à jour vers les [clients d'exécution](/developers/docs/nodes-and-clients/#execution-clients) (équivalent de Bellatrix sur la couche de consensus) qui leur permettait de recevoir des instructions depuis leurs [clients de consensus](/developers/docs/nodes-and-clients/#consensus-clients) connectés. Cela nécessitait d'activer un nouvel ensemble de méthodes internes d'API, collectivement connues sous le nom d'[API Moteur](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md). C'est sans doute la mise à jour la plus significative de l'histoire d'Ethereum depuis [Homestead](#homestead) ! + +- [Lisez la spécification de la mise à jour Paris](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/paris.md) + + + +
    +
  • EIP-3675Mise à niveau du consensus vers la preuve d'enjeu
  • +
  • L'EIP-4399Supplante le code d'opération DIFFICULTY par PREVRANDAO
  • +
+ +
+ +--- + +### Bellatrix {#bellatrix} + + + +#### Résumé {#bellatrix-summary} + +La mise à jour de Bellatrix était la seconde mise à jour planifiée pour la [Chaîne Phare](/roadmap/beacon-chain), préparant la chaîne à [La Fusion](/roadmap/merge/). Elle porte les pénalités de validateur à leurs valeurs maximales en cas d'inactivité ou d'infractions sanctionnables. Bellatrix inclut également une mise à jour des règles de choix de fourche pour préparer la chaîne à La Fusion et à la transition du dernier bloc de preuve de travail vers le premier bloc de preuve d'enjeu. Cela inclut la sensibilisation des clients de consensus à la [difficulté totale du terminal](/glossary/#terminal-total-difficulty) de 5875000000000000000. + +- [Lire les spécifications de la mise à niveau Bellatrix](https://github.com/ethereum/consensus-specs/tree/dev/specs/bellatrix) + +--- + +### Gray Glacier {#gray-glacier} + + + +#### Résumé {#gray-glacier-summary} + +La mise à niveau Gray Glacier a retardé le déclenchement de la [bombe de difficulté](/glossary/#difficulty-bomb) de trois mois. Il s'agit de la seule modification apportée par cette mise à niveau. En essence, elle est donc très semblable aux mises à niveau [Arrow Glacier](#arrow-glacier) et [Muir Glacier](#muir-glacier). Des changements similaires avaient également été effectués lors des mises à niveau [Byzantium](#byzantium), [Constantinople](#constantinople) et [London](#london). + +- [Blog de l'Ethereum Foundation - Annonce de la mise à niveau Gray Glacier](https://blog.ethereum.org/2022/06/16/gray-glacier-announcement/) + + + +
    +
  • EIP-5133repousse l'explosion de la bombe de difficulté d'ici à septembre 2022
  • +
+ +
+ + + +## 2021 {#2021} + +### Arrow Glacier {#arrow-glacier} + + + +#### Résumé {#arrow-glacier-summary} + +La mise à niveau Arrow Glacier a retardé le déclenchement de la [bombe de difficulté](/glossary/#difficulty-bomb) de plusieurs mois. Il s'agit de la seule modification apportée par cette mise à niveau. En essence, elle est donc très semblable à la mise à niveau [Muir Glacier](#muir-glacier). Des changements similaires avaient également été effectués lors des mises à niveau [Byzantium](#byzantium), [Constantinople](#constantinople) et [London](#london). + +- [Blog de l'Ethereum Foundation - Annonce de la mise à niveau Arrow Glacier](https://blog.ethereum.org/2021/11/10/arrow-glacier-announcement/) +- [Ethereum Cat Herders - Mise à niveau Ethereum Arrow Glacier](https://medium.com/ethereum-cat-herders/ethereum-arrow-glacier-upgrade-e8d20fa4c002) + + + +
    +
  • EIP-4345reporte la bombe de difficulté jusqu'en juin 2022
  • +
+ +
+ +--- + +### Altair {#altair} + + + +#### Résumé {#altair-summary} + +La mise à niveau Altair était la première mise à niveau répertoriée pour la [chaîne phare](/roadmap/beacon-chain). La prise en charge des « comités de synchronisation » a été ajoutée, autorisant d'une part les clients légers et augmentant d'autre part les pénalités d'inactivité et de délestage des validateurs à mesure que le système évoluait vers la fusion. + +- [Lire les spécifications de la mise à niveau Altair](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) + +#### Anecdote ! {#altair-fun-fact} + +Altair a été la première mise à jour majeure du réseau à disposer d'un délai de mise en œuvre précis. Toutes les mises à niveau antérieures étaient basées sur un numéro de bloc déclaré sur la chaîne de preuve de travail, dans laquelle les durées de blocage varient. La chaîne phare ne nécessite pas de résoudre de preuve de travail, mais fonctionne sur la base d'un système de périodes composées de 32 créneaux de 12 secondes pendant lesquels les validateurs peuvent proposer des blocs. C'est pourquoi nous savions exactement quand nous atteindrions l'époque 74 240 et la date de sortie d'Altair ! + +- [Durée de blocage](/developers/docs/blocks/#block-time) + +--- + +### London {#london} + + + +#### Résumé {#london-summary} + +La mise à niveau London a introduit [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559), qui a réorganisé le marché des frais de transaction, ainsi que des changements dans le traitement des remboursements de gaz et le calendrier [Ice Age](/glossary/#ice-age). + +- [Êtes-vous un développeur d'applications décentralisées ? Assurez-vous de mettre à niveau vos bibliothèques et vos outils.](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/london-ecosystem-readiness.md) +- [Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2021/07/15/london-mainnet-announcement/) +- [Lire l'explication du site Ethereum Cat Herders](https://medium.com/ethereum-cat-herders/london-upgrade-overview-8eccb0041b41) + + + +
    +
  • EIP-1559améliore le marché des frais de transaction
  • +
  • EIP-3198permet le renvoi de BASEFEE depuis un bloc
  • +
  • EIP-3529 - réduit les remboursements de gas associés aux opérations de la machine virtuelle d'Ethereum (EVM)
  • +
  • EIP-3541 - empêche le déploiement de contrats commençant par 0xEF
  • +
  • EIP-3554prévoit de repousser l'Ce Age jusqu'au mois de décembre 2021
  • +
+ +
+ +--- + +### Berlin {#berlin} + + + +#### Résumé {#berlin-summary} + +La mise à niveau Berlin a optimisé le coût en gaz de certaines actions EVM et augmenté la prise en charge de plusieurs types de transactions. + +- [Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2021/03/08/ethereum-berlin-upgrade-announcement/) +- [Lire l'explication du site Ethereum Cat Herders](https://medium.com/ethereum-cat-herders/the-berlin-upgrade-overview-2f7ad710eb80) + + + +
    +
  • EIP-2565revoit à la baisse les coûts en gas ModExp
  • +
  • EIP-2718facilite la prise en charge de plusieurs types de transaction
  • +
  • L'EIP-2929revoit ses tarifs en gas à la hausse, pour les codes d'opération d'accès à l'état
  • +
  • EIP-2930ajoute des listes d'accès facultatives
  • +
+ +
+ + + +## 2020 {#2020} + +### Origine de la chaîne phare {#beacon-chain-genesis} + + + +#### Résumé {#beacon-chain-genesis-summary} + +La [chaîne phare](/roadmap/beacon-chain/) avait besoin de 16 384 dépôts de 32 ETH mis en jeu pour être déployée en toute sécurité. Cela s'est produit le 27 novembre, de sorte que la chaîne phare a commencé à produire des blocs le 1er décembre 2020. Ce fut une première étape importante dans la réalisation de la [vision Ethereum](/roadmap/vision/). + +[Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2020/11/27/eth2-quick-update-no-21/) + + + La chaîne phare + + +--- + +### Contrat de dépôt de mise en jeu déployé {#staking-deposit-contract} + + + +#### Résumé {#deposit-contract-summary} + +Le contrat de dépôt de mise en jeu a introduit la [mise en jeu](/glossary/#staking) dans l'écosystème Ethereum. Bien qu'il s'agisse d'un contrat sur le [réseau principal](/glossary/#mainnet), il a eu des conséquences directes sur le calendrier de lancement de la [chaîne phare](/roadmap/beacon-chain/), une importante [mise à niveau d'Ethereum](/roadmap/). + +[Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2020/11/04/eth2-quick-update-no-19/) + + + Mise en jeu + + +--- + +### Muir Glacier {#muir-glacier} + + + +#### Résumé {#muir-glacier-summary} + +La fourche Muir Glacier a entraîné un report de la [bombe de difficulté](/glossary/#difficulty-bomb). L'augmentation de la difficulté des blocs du mécanisme de consensus de [preuve de travail](/developers/docs/consensus-mechanisms/pow/) menaçait de dégrader l'utilisation d'Ethereum en allongeant les temps d'attente pour l'envoi de transactions et l'utilisation d'applications décentralisées. + +- [Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2019/12/23/ethereum-muir-glacier-upgrade-announcement/) +- [Lire l'explication du site Ethereum Cat Herders](https://medium.com/ethereum-cat-herders/ethereum-muir-glacier-upgrade-89b8cea5a210) + + + +
    +
  • EIP-2384retarde la bombe de difficulté pour 4 000 000 autres blocs, ou ~611 jours.
  • +
+ +
+ + + +## 2019 {#2019} + +### Istanbul {#istanbul} + + + +#### Résumé {#istanbul-summary} + +La fourche Istanbul a : + +- optimisé le coût de [gaz](/glossary/#gas) de certaines actions dans l'[EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine) ; +- amélioré la résilience face aux attaques par déni de service ; +- rendu plus performantes les solutions de [mise à l'échelle de la couche 2](/developers/docs/scaling/#layer-2-scaling) basées sur les SNARK et les STARK ; +- permis à Ethereum et Zcash d'interagir ; +- permis aux contrats d'introduire des fonctions plus créatives. + +[Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2019/11/20/ethereum-istanbul-upgrade-announcement/) + + + +
    +
  • EIP-152permet à Ethereum de travailler avec une devise préservant la vie privée comme Zcash.
  • +
  • EIP-1108cryptographie à bas coût pour l'optimisation des coûts de gas.
  • +
  • EIP-1344protège Ethereum contre les attaques replay en ajoutant le code d'opération CHAINID .
  • +
  • EIP-1884l'optimisation des prix du gaz opcode basée sur la consommation.
  • +
  • EIP-2028réduit le coût de CallData pour permettre plus de données en blocs – bon pour la mise à l'échelle de la couche 2.
  • +
  • EIP-2200autres modifications du prix du gaz opcode.
  • +
+ +
+ +--- + +### Constantinople {#constantinople} + + + +#### Résumé {#constantinople-summary} + +La fourche Constantinople a : + +- protégé la blockchain d'un blocage avant [l'implémentation de la preuve d'enjeu](#beacon-chain-genesis)  ; +- optimisé le coût de [gaz](/glossary/#gas) certaines actions dans l'[EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine) ; +- ajouté la possibilité d'interagir avec des adresses qui n'ont pas encore été créées. + +[Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2019/02/22/ethereum-constantinople-st-petersburg-upgrade-announcement/) + + + +
    +
  • EIP-145Optimise le coût de certaines actions en chaîne.
  • +
  • EIP-1014vous permet d'interagir avec des adresses qui n'ont pas encore été créées.
  • +
  • EIP-1052optimise le coût de certaines actions en chaîne.
  • +
  • EIP-1234s'assure que la blockchain ne gèle pas 'avant la preuve d'enjeu.
  • +
+ +
+ + + +## 2017 {#2017} + +### Byzantium {#byzantium} + + + +#### Résumé {#byzantium-summary} + +La fourche Byzantium a : + +- réduit les récompenses pour le [minage](/developers/docs/consensus-mechanisms/pow/mining/)des blocs de 5 à 3 ETH ; +- retardé la [bombe de difficulté](/glossary/#difficulty-bomb) d'un an ; +- ajouté la possibilité d'effectuer des appels sans changement d'état vers d'autres contrats ; +- ajouté certaines méthodes de cryptographie pour permettre la [mise à l'échelle de la couche 2](/developers/docs/scaling/#layer-2-scaling). + +[Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2017/10/12/byzantium-hf-announcement/) + + + +
    +
  • EIP-140ajoute le code d'opération REVERT.
  • +
  • EIP-658champ de statut ajouté aux reçus de transaction pour indiquer le succès ou l'échec.
  • +
  • EIP-196intègre la courbe elliptique ainsi que les algorithmes de multiplication scalaire, qui permettent d'utiliser ZK-Snarks.
  • +
  • EIP-197intègre la courbe elliptique ainsi que les algorithmes de multiplication scalaire, qui permettent d'utiliser ZK-Snarks.
  • +
  • EIP-198permet la vérification de la signature RSA.
  • +
  • EIP-211intègre le support pour les valeurs retournées de longueur variable.
  • +
  • L'EIP-214intègre le code d'opération STATICCALL, ce qui permettra aux autres contrats de ne pas changer l'état des Calls.
  • +
  • EIP-100change la formule d'ajustement de difficulté.
  • +
  • EIP-649retarde la bombe de difficulté de 1 an et réduit la récompense de bloc de 5 à 3 ETH.
  • +
+ +
+ + + +## 2016 {#2016} + +### Spurious Dragon {#spurious-dragon} + + + +#### Résumé {#spurious-dragon-summary} + +La fourche Spurious Dragon a été la deuxième réponse aux attaques par déni de service (DoS) sur le réseau (septembre/octobre 2016). Elle comprend les opérations suivantes : + +- Adaptation de la tarification du code d'opération pour éviter de futures attaques sur le réseau ; +- « Dégonflage » de l'état de la blockchain ; +- Ajout de la protection contre les attaques par rejeu. + +[Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2016/11/18/hard-fork-no-4-spurious-dragon/) + + + +
    +
  • EIP-155empêche les transactions d'une chaîne Ethereum d'être rediffusées sur une chaîne alternative, par exemple une transaction de réseau de test en cours de relecture sur la chaîne principale Ethereum.
  • +
  • EIP-160ajuste les prix de code d'opération EXP – rend plus difficile le ralentissement du réseau via des opérations de contrat coûteuses sur le plan du calcul.
  • +
  • EIP-161permet de supprimer les comptes vides ajoutés via les attaques DOS.
  • +
  • EIP-170modifie la taille de code maximale qu'un contrat sur la blockchain peut avoir – à 24576 octets.
  • +
+ +
+ +--- + +### Tangerine Whistle {#tangerine-whistle} + + + +#### Résumé {#tangerine-whistle-summary} + +La fourche Tangerine Whistle a été la première réponse aux attaques par déni de service (DoS) sur le réseau (septembre/octobre 2016). Elle comprend les opérations suivantes : + +- Résolution des problèmes urgents d'intégrité du réseau concernant les codes d'opération sous-évalués. + +[Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2016/10/18/faq-upcoming-ethereum-hard-fork/) + + + +
    +
  • EIP-150Augmente le coût en gaz des codes d'opération qui peuvent être utilisés dans les attaques anti-spam.
  • +
  • EIP-158réduit la taille de l'état en supprimant un grand nombre de comptes vides qui ont été mis dans l'état à très bas prix en raison de défauts dans les versions précédentes du protocole Ethereum.
  • +
+ +
+ +--- + +### Fourche DAO {#dao-fork} + + + +#### Résumé {#dao-fork-summary} + +La fourche DAO est la réponse à l'[attaque DAO de 2016](https://www.coindesk.com/learn/understanding-the-dao-attack/) au cours de laquelle le contrat non sécurisé d'une [DAO](/glossary/#dao) a été vidé de plus de 3,6 millions d'ETH lors d'un piratage. La fourche a déplacé les fonds du contrat défectueux vers un [nouveau contrat](https://etherscan.io/address/0xbf4ed7b27f1d666546e30d74d50d173d20bca754) avec une seule fonction : withdraw (retrait). Toute personne ayant perdu des fonds pouvait retirer 1 ETH pour chaque tranche de 100 jetons DAO dans son portefeuille. + +Ce plan d'action a été voté par la communauté Ethereum. Tout détenteur d'ETH a pu voter via une transaction sur [une plateforme de vote](https://web.archive.org/web/20170620030820/http://v1.carbonvote.com/). Plus de 85 % des votes étaient favorables à la fourche. + +Certains mineurs ont refusé la fourche car l'incident DAO ne résultait pas d'un défaut du protocole. Ils ont ensuite formé [Ethereum Classic](https://ethereumclassic.org/). + +[Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2016/07/20/hard-fork-completed/) + +--- + +### Homestead {#homestead} + + + +#### Résumé {#homestead-summary} + +La fourche Homestead qui regardait vers l'avenir. Elle comprenait plusieurs changements de protocole et un changement de réseau ayant permis à Ethereum de faire d'autres mises à niveau du réseau. + +[Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2016/02/29/homestead-release/) + + + +
    +
  • EIP-2modifie le processus de création de contrats.
  • +
  • EIP-7ajoute un nouveau code d'opération : DELEGATECALL
  • +
  • EIP-8présente DEVP2P, pour faire face aux exigences en matière de compatibilité
  • +
+ +
+ + + +## 2015 {#2015} + +### Frontier Thawing {#frontier-thawing} + + + +#### Résumé {#frontier-thawing-summary} + +La fourche Frontier Thawing a levé la [limite de gaz](/glossary/#gas) de 5 000 par [bloc](/glossary/#block) et défini le prix du gaz par défaut à 51 [gwei](/glossary/#gwei). Cela a permis de réaliser des transactions. Les transactions nécessitent 21 000 unités de gaz. La [bombe de difficulté](/glossary/#difficulty-bomb) a été introduite pour assurer une future fourche dure vers la [preuve d'enjeu](/glossary/#pos). + +- [Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2015/08/04/the-thawing-frontier/) +- [Lire la mise à jour du protocole Ethereum 1](https://blog.ethereum.org/2015/08/04/ethereum-protocol-update-1/) + +--- + +### Frontier {#frontier} + + + +#### Résumé {#frontier-summary} + +Frontier était une implémentation réelle, mais sans structure, du projet Ethereum. Elle faisait suite à la phase de tests réussie Olympic. Elle était destinée aux utilisateurs techniques, en particulier aux développeurs. Les [blocs](/glossary/#block) avaient une limite de [gaz](/glossary/#gas) de 5 000. La période « Thawing » a permis aux mineurs de démarrer leurs opérations et aux premiers adoptants d’installer leurs clients sans avoir à « se précipiter ». + +[Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2015/07/22/frontier-is-coming-what-to-expect-and-how-to-prepare/) + + + +## 2014 {#2014} + +### Vente d'ETH {#ether-sale} + + + +L'ETH a officiellement été en vente pendant 42 jours. Il était possible d'en acheter avec des BTC. + +[Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2014/07/22/launching-the-ether-sale/) + +--- + +### Publication du Livre jaune {#yellowpaper} + + + +Le Livre jaune, rédigé par le Dr Gavin Wood, est une définition technique du protocole Ethereum. + +[Voir le Livre jaune](https://github.com/ethereum/yellowpaper) + + + +## 2013 {#2013} + +### Publication du Livre blanc {#whitepaper} + + + +Document d'introduction publié en 2013 par Vitalik Buterin, fondateur d'Ethereum, précédant le lancement du projet en 2015. + + + Livre blanc + diff --git a/public/content/translations/fr/nft/index.md b/public/content/translations/fr/nft/index.md new file mode 100644 index 00000000000..3dd6d79c31f --- /dev/null +++ b/public/content/translations/fr/nft/index.md @@ -0,0 +1,94 @@ +--- +title: Jetons non fongibles (NFT) +description: Un aperçu des NFT sur Ethereum +lang: fr +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: Un logo Eth affiché par hologramme. +summaryPoint1: Un moyen de représenter toute chose unique en tant qu'actif Ethereum. +summaryPoint2: Les NFT offrent plus de possibilités que jamais aux créateurs de contenus. +summaryPoint3: Propulsés par des contrats intelligents sur la blockchain Ethereum. +--- + +## Que sont les NFT ? {#what-are-nfts} + +Les NFT sont des jetons qui sont individuellement uniques. Chaque NFT a des propriétés différentes (non fongibles) et sa rareté est prouvée. Cela diffère des jetons tels que les ERC-20, pour lesquels chaque jeton d'un ensemble est identique et possède les mêmes propriétés ("fongible"). Vous ne vous souciez pas de savoir quel billet de banque vous avez dans votre portefeuille, parce qu'ils sont tous identiques et valent tous la même chose. Cependant, vous vous souciez de savoir quel NFT spécifique vous possédez, car ils ont tous des propriétés individuelles qui les distinguent des autres ("non fongibles"). + +Le caractère unique de chaque NFT permet la tokenisation de choses telles que l'art, les objets de collection ou même l'immobilier, où un NFT unique et spécifique représente un objet numérique ou réel unique et spécifique. La propriété d'un actif est sécurisée par la blockchain Ethereum – personne ne peut modifier le dossier de propriété ou copier/coller un nouveau NFT dans l'existence. + + + +## L'internet des ressources {#internet-of-assets} + +Les NFT et Ethereum résolvent certains des problèmes qui se posent aujourd'hui sur l'internet. Comme tout se digitalise de plus en plus, il est nécessaire de reproduire les propriétés des objets physiques comme la rareté, l'unicité et la preuve de propriété. Et cela d'une manière qui n'est pas contrôlée par une organisation centrale. Par exemple, avec les NFT, vous pouvez posséder un mp3 musical qui n'est pas spécifique à l'application musicale d'une entreprise, ou vous pouvez posséder un identifiant de média social que vous pouvez vendre ou échanger, mais qui ne peut pas vous être retiré arbitrairement par un fournisseur de plateforme. + +Voici à quoi ressemble un internet de NFT par rapport à l'internet que la plupart d'entre nous utilisons aujourd'hui... + +### Une comparaison {#nft-comparison} + +| Un internet NFT | Internet aujourd'hui | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Vous êtes propriétaire de vos biens ! Vous seul pouvez les vendre ou les échanger. | Vous louez un bien à une organisation. | +| Les NFT sont uniques sur le plan numérique ; il n'y aura jamais deux NFT identiques. | Une copie d'une entité ne peut souvent pas être distinguée de l'original. | +| La propriété d'un NFT est stockée sur la blockchain et peut être vérifiée par n'importe qui. | L'historique de propriété des articles numériques sont stockés sur des serveurs contrôlés par des institutions – vous devez les croire sur parole. | +| Les NFT sont des contrats intelligents sur Ethereum. Cela signifie qu'ils peuvent facilement être utilisés dans d'autres contrats intelligents et applications sur Ethereum ! | Les entreprises qui possèdent des produits numériques ont généralement besoin de leur propre infrastructure de type "jardin fermé". | +| Les créateurs de contenu peuvent vendre leur travail n'importe où et accéder à un marché mondial. | Les créateurs dépendent de l'infrastructure et de la distribution des plates-formes qu'ils utilisent. Celles-ci sont souvent soumises à des conditions d'utilisation et à des restrictions géographiques. | +| Les créateurs de NFT peuvent conserver les droits de propriété sur leur propre travail et programmer les redevances directement dans le contrat NFT. | Les plateformes, telles que les services de diffusion de musique en streaming, conservent la majorité des bénéfices tirés des ventes. | + +## Comment fonctionnent les NFT ? {#how-nfts-work} + +Comme tout jeton émis sur Ethereum, les NFT sont émis par un contrat intelligent. Le contrat intelligent est conforme à l'une des normes NFT (généralement ERC-721 ou ERC-1155) qui définissent les fonctions du contrat. Le contrat peut créer ("frapper") des NFT et les attribuer à un propriétaire spécifique. La propriété est définie dans le contrat en associant des NFT spécifiques à des adresses spécifiques. Le NFT possède un identifiant et, généralement, des métadonnées qui lui sont associées et qui rendent le jeton spécifique unique. + +Quand quelqu'un crée ou frappe un NFT, il exécute en réalité une fonction du contrat intelligent qui attribue un NFT spécifique à son adresse. Cette information est stockée dans la mémoire du contrat, qui fait partie de la blockchain. Le créateur du contrat peut intégrer une logique supplémentaire dans le contrat, par exemple en limitant l'offre totale ou en définissant une redevance à verser au créateur chaque fois qu'un jeton est transféré. + +## Comment les NFTs sont-ils utilisés ? {#nft-use-cases} + +Les NFT sont utilisés pour de nombreuses choses, notamment : + +- prouver que vous avez assisté à un événement +- certifier que vous avez suivi un cours +- objets possédés dans des jeux +- art numérique +- tokenisation d'actifs du monde réel +- prouver votre identité en ligne +- autoriser l'accès au contenu +- billetterie +- noms de domaines Internet décentralisés +- collatéral en DeFi + +Vous êtes peut-être un artiste qui souhaite partager ses œuvres à l'aide de NFT, sans en perdre le contrôle et sans sacrifier ses bénéfices à des intermédiaires. Vous pouvez créer un nouveau contrat et spécifier le nombre de NFT, leurs propriétés et un lien vers une œuvre d'art spécifique. En tant qu'artiste, vous pouvez programmer dans le contrat intelligent les redevances qui doivent vous être versées (par exemple, transférer 5 % du prix de vente au propriétaire du contrat à chaque fois qu'un NFT est transféré). Vous pouvez également toujours prouver que vous avez créé les NFT parce que vous possédez le portefeuille qui a déployé le contrat. Vos acheteurs peuvent facilement prouver qu'ils possèdent un authentique NFT de votre collection car leur adresse de portefeuille est associée à un jeton dans votre contrat intelligent. Ils peuvent l'utiliser dans l'écosystème Ethereum en ayant confiance dans leur authenticité. + +Par exemple, pensez à un billet pour un événement sportif. Tout comme l'organisateur d'un événement peut décider du nombre de billets à vendre, le créateur d'un NFT peut décider du nombre de répliques existantes. Il s'agit parfois de répliques exactes telles que 5 000 billets d'admission générale. Parfois, plusieurs très similaires sont créés, chacun légèrement différent, comme un billet avec un siège assigné. Ils peuvent être achetés et vendus de pair à pair sans avoir à payer de frais de billetterie et l'acheteur peut toujours s'assurer de l'authenticité du billet en vérifiant l'adresse du contrat. + +Sur ethereum.org, les NFT sont utilisés pour montrer que des personnes ont contribué à notre dépôt GitHub ou assisté à des appels, et nous avons même notre propre nom de domaine NFT. Si vous contribuez à ethereum.org, vous pouvez demander un POAP NFT. Certains rassemblements crypto ont utilisé des POAP comme billets. [Plus d'infos sur la contribution](/contributing/#poap). + +![POAP ethereum.org](./poap.png) + +Ce site web dispose également d'un nom de domaine alternatif NFT, **ethereum.eth**. Notre adresse `.org` est gérée de façon centralisée par un fournisseur de noms de domaine (DNS) alors que ethereum`.eth` est enregistré sur Ethereum par le service Ethereum Name Service (ENS). Nous en sommes les propriétaires et les gestionnaires. [Consulter notre dossier ENS](https://app.ens.domains/name/ethereum.eth) + +[Plus d'infos sur le service ENS](https://app.ens.domains) + + + +### Sécurité NFT {#nft-security} + +La sécurité d'Ethereum émane de la preuve d'enjeu. Le système est conçu pour décourager économiquement les actions malveillantes, ce qui rend Ethereum infalsifiable. C'est ce qui rend les NFT possibles. Une fois le bloc contenant votre transaction NFT finalisé, un attaquant devrait dépenser des millions d'ETH pour le modifier. Quiconque exécute un logiciel Ethereum serait immédiatement capable de détecter des manipulations malhonnêtes avec un NFT, et la personne malveillante serait économiquement pénalisée et rejetée. + +Les questions de sécurité concernant les NFT sont le plus souvent liées aux escroqueries par hameçonnage, aux vulnérabilités des contrats intelligents ou aux erreurs utilisateur (comme exposer par inadvertance des clés privées), rendant la sécurité du portefeuille critique pour les propriétaires de NFT. + + + En savoir plus sur la sécurité + + +## Complément d'information {#further-reading} + +- [A beginner's guide to NFTs](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, Janvier 2020_ +- [Traqueur de NFTs de Etherscan](https://etherscan.io/nft-top-contracts) +- [Norme de jeton ERC-721](/developers/docs/standards/tokens/erc-721/) +- [Norme de jeton ERC-1155](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/public/content/translations/fr/refi/index.md b/public/content/translations/fr/refi/index.md new file mode 100644 index 00000000000..836a58e28ee --- /dev/null +++ b/public/content/translations/fr/refi/index.md @@ -0,0 +1,79 @@ +--- +title: Finance Régénérative (ReFi) +description: Une vue d'ensemble de la ReFi et de ses cas d'utilisation actuels. +lang: fr +template: use-cases +emoji: ":recycle:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Un système économique alternatif fondé sur des principes de régénération +summaryPoint2: Une tentative d'utilisation d'Ethereum pour résoudre les crises de coordination au niveau mondial, telles que le changement climatique +summaryPoint3: Un outil permettant une augmentation drastique des bénéfices écologiques tels que les crédits de carbone vérifiés +--- + +## Qu'est-ce que la ReFi ? {#what-is-refi} + +**La finance régénérative (ReFi)** est un ensemble d'outils et d'idées construits sur les blockchains, qui visent à créer des économies régénératives, plutôt qu'extractives ou exploitantes. Les systèmes extractifs finissent par épuiser les ressources disponibles et s'effondrent ; en l'absence de mécanismes de régénération, ils manquent de résilience. La ReFi part du principe que la création de valeur monétaire doit être dissociée de l'extraction non durable des ressources de notre planète et de nos communautés. + +Le ReFi vise plutôt à résoudre des problèmes environnementaux, communautaires ou sociaux en créant des cycles de régénération. Ces systèmes créent de la valeur pour les participants tout en bénéficiant aux écosystèmes et aux communautés. + +L'un des fondements de la ReFi est le concept d'économie régénératrice dont John Œilleton, du Capital Institute, a été le pionnier. Il a proposé [huit principes interconnectés](https://capitalinstitute.org/8-principles-regenerative-economy/) qui sous-tendent la santé systémique : + +![Huit principes interconnectés](refi-regenerative-economy-diagram.png) + +Les projets ReFi concrétisent ces principes en utilisant des [contrats intelligents](/developers/docs/smart-contracts/) et des [applications de finance décentralisée (DeFi)](/defi/) pour encourager les comportements régénérateurs, par exemple la restauration des écosystèmes dégradés, et faciliter la collaboration à grande échelle sur des questions mondiales telles que le changement climatique et la perte de biodiversité. + +La ReFi rejoint également le mouvement [science décentralisée (DeSci)](/desci/), qui utilise Ethereum comme plateforme pour financer, créer, réviser, créditer, stocker et diffuser des connaissances scientifiques. Les outils DeSci pourraient être utiles pour élaborer des normes et des pratiques vérifiables pour la mise en œuvre et le suivi d'activités régénératrices telles que la plantation d'arbres, l'élimination du plastique dans les océans ou la restauration d'un écosystème dégradé. + +## Tokenisation des crédits carbone {#tokenization-of-carbon-credits} + +Le **[marché volontaire du carbone (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** est un mécanisme de financement de projets qui ont un impact positif vérifié sur les émissions de carbone, soit en réduisant les émissions en cours, soit en éliminant les gaz à effet de serre déjà émis dans l'atmosphère. Après vérification, ces projets reçoivent un actif appelé "crédits carbone", qu'ils peuvent vendre à des particuliers et à des organisations désireux de soutenir l'action en faveur du climat. + +En plus du VCM, il existe également plusieurs marchés du carbone mandatés par les gouvernements ("marchés de conformité") qui visent à établir un prix du carbone par le biais de lois ou de réglementations au sein d'une juridiction particulière (par exemple, un pays ou une région), en contrôlant l'offre de permis à distribuer. Les marchés de conformité incitent les pollueurs relevant de leur juridiction à réduire leurs émissions, mais ils ne sont pas en mesure d'éliminer les gaz à effet de serre déjà émis. + +Malgré son développement au cours des dernières décennies, le VCM continue de souffrir d'une multitude de problèmes : + +1. Liquidité très fragmentée +2. Mécanismes de transaction opaques +3. Frais élevés +4. Vitesse de trading très lente +5. Manque de passage à l'échelle + +La transition du VCM vers le nouveau **marché numérique du carbone (DCM)** basé sur la blockchain pourrait être l'occasion de mettre à niveau la technologie existante pour la validation, la vente et la consommation des crédits carbone. Les blockchains permettent d'obtenir des données publiquement vérifiables, un accès pour un large éventail d'utilisateurs et une plus grande liquidité. + +Les projets utilisent la technologie de la blockchain pour atténuer de nombreux problèmes du marché traditionnel : + +- **La liquidité est concentrée sur un petit nombre de pools** où chacun peut commercer. Les grandes organisations comme les individus peuvent utiliser ces pools sans devoir rechercher manuellement des acheteurs/vendeurs, sans frais de participation ou sans enregistrement préalable. +- **Toutes les transactions sont enregistrées sur des blockchains publiques**. Le chemin que chaque crédit carbone prend en raison de l'activité de trading est retraçable à jamais dès qu'il est est rendu disponible dans le DCM. +- **La rapidité des transactions est quasiment instantanée**. Sécuriser de vastes quantités de crédits carbone via les marchés traditionnels peut prendre des jours ou des semaines, alors que ceci peut être réalisé en quelques secondes dans le DCM. +- **Les activités de trading ont lieu sans intermédiaires**, qui facturent des fortes commissions. Les crédits carbone numériques représentent une [amélioration du coût de 62% par rapport aux crédits traditionnels équivalents](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne), d'après les données d'une société d'analyse. +- **Le DCM peut passer à l'échelle** et répondre aussi bien aux attentes des individus que des entreprises multinationales. + +### Composants clés du DCM {#key-components-dcm} + +Quatre éléments majeurs composent le paysage actuel du DCM : + +1. Des registres tels que [Verra](https://verra.org/project/vcs-program/registry-system/) et [Gold Standard](https://www.goldstandard.org/) veillent à ce que les projets créant des crédits carbone soient fiables. Ils gèrent également les bases de données dans lesquelles les crédits carbone numériques sont créés, transférés ou utilisés. + +Une nouvelle vague de projets innovants est en train d'être développée sur des blockchains dans le but de bouleverser les acteurs établis de ce secteur. + +2. Ponts carbone, aussi appelées tokeniseurs, fournissent la technologie pour représenter ou transférer les crédits carbones depuis les registres traditionnels vers les DCM. [Toucan Protocol](https://toucan.earth/), [C3](https://c3.app/), and [Moss.Earth](https://moss.earth/) font partie des exemples remarquables. +3. Les services intégrés offrent des crédits d'évitement ou de suppression de carbone aux utilisateurs finaux afin qu'ils obtiennent le bénéfice environnemental de leur crédit et partagent leur soutien à l'action climatique avec le monde. + +Certains, comme [Klima Infinity](https://www.klimadao.finance/infinity) et [Senken](https://senken.io/), proposent une grande variété de projets développés par des tiers et émis conformément à des normes établies telles que Verra ; d'autres, comme [Nori](https://nori.com/), ne proposent que des projets spécifiques développés selon leur propre norme de crédit carbone, qu'ils émettent et pour laquelle ils ont leur propre marché dédié. + +4. Les rails et l'infrastructure sous-jacente qui facilitent la montée en charge de l'impact et de l'efficacité de l'ensemble de la chaîne d'approvisionnement du marché du carbone. [KlimaDAO](http://klimadao.finance/) fournit de la liquidité comme un bien public (permettant à quiconque d'acheter ou de vendre des crédits carbone à un prix transparent), stimule les flux sur les marchés carbone et les retraits via des récompenses, et fournit un outillage interopérable et convivial pour accéder aux données, acquérir et retirer, une grande variété de crédits carbone tokenisés. + +## La ReFi au-delà des marchés du carbone {#refi-beyond} + +Bien qu'il y ait actuellement une grande attention portée aux marchés du carbone en général et à la transition du VCM au DCM en particulier, le terme "ReFi" n'est pas strictement limité au carbone. D'autres actifs environnementaux en dehors des crédits carbone peuvent être développés et tokenisés, ce qui signifiera que d'autres externalités négatives pourront également être valorisées au sein des couches de base des futurs systèmes économiques. De plus, l'aspect régénératif de ce modèle économique peut être appliqué à d'autres domaines, tels que le financement des biens publics via des plateformes de financement quadratique comme [Gitcoin](https://gitcoin.co/). Les organisations qui reposent sur l'idée de participation ouverte et de distribution équitable des ressources permettent à chacun de contribuer financièrement aux projets de logiciels open-source, ainsi qu'aux projets éducatifs, environnementaux et communautaires. + +En orientant le capital loin des pratiques extractives et vers un flux régénératif, les projets et les entreprises qui fournissent des avantages sociaux, environnementaux ou communautaires - et qui pourraient échouer à obtenir un financement dans la finance traditionnelle - peuvent démarrer et générer des externalités positives pour la société beaucoup plus rapidement et facilement. La transition vers ce modèle de financement ouvre également la voie à des systèmes économiques beaucoup plus inclusifs, où les personnes de toutes les catégories démographiques peuvent devenir des participants actifs plutôt que de simples observateurs passifs. ReFi propose une vision d'Ethereum en tant que mécanisme de coordination de l'action face aux défis existentiels auxquels notre espèce et toute vie sur notre planète sont confrontées - en tant que couche de base d'un nouveau paradigme économique, permettant un avenir plus inclusif et durable pour les siècles à venir. + +## Lectures complémentaires sur la ReFi + +- [Une vue d'ensemble des monnaies carbone et de leur place dans l'économie](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) +- [The Ministry for the Future, un roman décrivant le rôle d'une monnaie adossée au carbone dans la lutte contre le changement climatique](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) +- [Un rapport détaillé du Groupe de travail pour l'expansion des marchés volontaires du carbone](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) +- [La ReFi sur le glossaire CoinMarketCap par Kevin Owocki et Evan Miyazono](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/public/content/translations/fr/roadmap/beacon-chain/index.md b/public/content/translations/fr/roadmap/beacon-chain/index.md new file mode 100644 index 00000000000..26052aa2f1a --- /dev/null +++ b/public/content/translations/fr/roadmap/beacon-chain/index.md @@ -0,0 +1,76 @@ +--- +title: La chaîne phare +description: En savoir plus sur la chaîne phare - la mise à niveau qui a introduit la preuve d'enjeu d'Ethereum. +lang: fr +template: upgrade +image: /upgrades/core.png +alt: +summaryPoint1: La Chaîne phare a introduit la preuve d'enjeu dans l'écosystème Ethereum. +summaryPoint2: Elle a été fusionnée avec la chaîne originale de preuve de travail Ethereum en septembre 2022. +summaryPoint3: La Chaîne phare a introduit la logique de consensus et le protocole de commutation de bloc qui sécurise désormais Ethereum. +--- + + + La Chaîne phare a été présentée le 1er décembre 2020 et a formalisé la preuve d'enjeu comme mécanisme de consensus d'Ethereum avec La Fusion du 15 septembre 2022. + + +## Qu'est-ce que fut la Chaîne phare ? {#what-is-the-beacon-chain} + +La Chaîne phare était le nom de la blockchain originale par preuve d'enjeu qui a été lancée en 2020. Elle a été créé pour s'assurer que la logique de consensus par preuve d'enjeu était saine et durable avant de l'activer sur le réseau principal Ethereum. Par conséquent, elle a fonctionné aux côtés de l'Ethereum original de preuve de travail. La désactivation de la preuve de travail au profit de la preuve d'enjeu sur Ethereum nécessite d'indiquer à la Chaîne phare d'accepter les transactions de la chaîne Ethereum d'origine, de les regrouper en blocs, puis les organiser en blockchain en utilisant un mécanisme de consensus basé sur la preuve d'enjeu. Au même moment, les clients originaux d'Ethereum ont arrêté leur minage, la propagation du bloc et la logique de consensus, regroupant tout ceci sur la Chaîne phare. Cet événement était connu sous le nom de [La Fusion](/roadmap/merge/). Une fois la Fusion réalisée, il n'y avait plus deux blockchains mais une chaîne unique Ethereum de preuve d'enjeu. + +## Que fait la Chaîne phare ? {#what-does-the-beacon-chain-do} + +La Chaîne phare était le nom donné à un registre de comptes qui a mené et coordonné le réseau des [validateurs Ethereum](/staking/) avant que ces mêmes validateurs ne commencent à valider de véritables transactions Ethereum. Elle ne traitait pas les transactions ou ne gérait pas les interactions entre les contrats intelligents. + +Elle a introduit le moteur de consensus (ou « couche de consensus ») qui a pris la place du minage par preuve de travail sur Ethereum et a apporté de nombreuses améliorations significatives. + +La Chaîne phare était un composant fondamental pour [la sécurisation, le respect environnemental et l'évolutivité d'Ethereum](/roadmap/vision/). + +## Impact de la Chaîne phare {#beacon-chain-features} + +### Présentation de la preuve d'enjeu {#introducing-staking} + +La Chaîne phare introduit la [preuve d'enjeu](/developers/docs/consensus-mechanisms/pos/) dans Ethereum. Cela permet de sécuriser Ethereum et pour les validateurs de gagner plus d'ETH au cours du processus. En pratique, le staking implique de miser des ETH pour activer le logiciel de validation. En tant que validateur, vous exécutez le logiciel qui créé et valide de nouveaux blocs dans la chaîne. + +La mise en jeu a un objectif similaire au [minage](/developers/docs/mining/), mais diffère à plusieurs titres. Le minage nécessitait d’importantes dépenses initiales sous la forme d’une puissante consommation en matériel et énergie, entraînant des économies d’échelle et promouvant la centralisation. Le minage n'impliquait pas non plus l'obligation de bloquer les actifs en tant que garantie, ce qui limite la capacité du protocole à punir les mauvais acteurs après une attaque. + +La transition vers la preuve d'enjeu rend Ethereum nettement plus sûr et décentralisé par comparaison. Plus le nombre de participants sera élevé sur le réseau, plus celui-ci sera décentralisé et à l'abri des attaques. + + + Si vous souhaitez devenir validateur et aider à sécuriser Ethereum, familiarisez-vous avec le concept de mise en jeu. + + +### Mise en place de la fragmentation {#setting-up-for-sharding} + +Depuis que la Chaîne phare a fusionné avec le réseau principal Ethereum d'origine, la communauté Ethereum a commencé à chercher à mettre le réseau à niveau. + +La preuve d’enjeu présente l’avantage d’avoir un registre de tous les producteurs de blocs approuvés à un moment donné, chacun avec l’ETH en jeu. Ce registre ouvre la voie à la possibilité de diviser et de conquérir mais de manière fiable et de séparer les responsabilités spécifiques des réseaux. + +Cette responsabilité contraste avec la preuve de travail, où les mineurs n'ont aucune obligation à l'égard du réseau et pourraient arrêter de miner et fermer définitivement leur logiciel de nœud en un instant et sans répercussion. Il n'y a pas non plus de registre des soumissionnaires de blocs connus et aucun moyen fiable de séparer en toute sécurité les responsabilités des réseaux. + +[En savoir plus sur la fragmentation](/roadmap/danksharding/) + +## Relation entre les mises à niveau {#relationship-between-upgrades} + +Les mises à niveau Ethereum sont plus ou moins interdépendantes. Récapitulons donc comment la chaîne phare affecte les autres mises à niveau. + +### La Chaîne phare et La Fusion {#merge-and-beacon-chain} + +Au début, La Chaîne phare existait séparément du réseau principal Ethereum, mais ils ont été fusionnés en 2022. + + + La Fusion + + +### Fragments et chaîne phare {#shards-and-beacon-chain} + +La fragmentation ne peut s'ajouter en toute sécurité dans l'écosystème Ethereum que s'il existe un mécanisme de consensus sur la preuve d'enjeu. La Chaîne phare a introduit la notion de mise en jeu qui a « fusionnée » avec le réseau principal et a ouvert la voie à la fragmentation pour favoriser une plus grande évolutivité d'Ethereum. + + + Chaînes de fragments + + +## Complément d'information + +- [En savoir plus sur les futures mises à jour d'Ethereum](/roadmap/vision) +- [En savoir plus sur la preuve d'enjeu](/developers/docs/consensus-mechanisms/pos) diff --git a/public/content/translations/fr/roadmap/merge/index.md b/public/content/translations/fr/roadmap/merge/index.md new file mode 100644 index 00000000000..c6df1da0732 --- /dev/null +++ b/public/content/translations/fr/roadmap/merge/index.md @@ -0,0 +1,225 @@ +--- +title: La Fusion +description: En savoir plus sur La Fusion - quand le réseau principal Ethereum adopte la preuve d'enjeu. +lang: fr +template: upgrade +image: /upgrades/merge.png +alt: +summaryPoint1: Le réseau principal Ethereum utilise la preuve d'enjeu, mais cela n'a pas toujours été le cas. +summaryPoint2: La mise à niveau du mécanisme original de preuve de travail à celui de la preuve d'enjeu s'appelle La Fusion. +summaryPoint3: La Fusion fait référence à la fusion du réseau principal original Ethereum avec une blockchain distincte de preuve d'enjeu appelée la Chaîne phare, qui existe maintenant sous la forme d'une chaîne unique. +summaryPoint4: La Fusion a réduit la consommation d'énergie d'Ethereum de ~99,95 %. +--- + + + La Fusion a été réalisée le 15 septembre 2022. Cette étape a permis à Ethereum de passer à un consensus de preuve d'enjeu, de rendre officiellement obsolète la preuve de travail et de réduire sa consommation d'énergie d'environ 99,95 %. + + +## Qu'est-ce que La Fusion ? {#what-is-the-merge} + +La Fusion est la réunion de la couche d'exécution originale d'Ethereum (le réseau principal qui existe depuis [genesis](/history/#frontier)) avec sa nouvelle couche de consensus de preuve d'enjeu ; la Chaîne phare. Elle a également permis d'éliminer la nécessité d'un minage gourmand en énergie et de sécuriser le réseau via la mise en jeu d'ETH. Ce fut une étape vraiment passionnante dans la réalisation de la vision Ethereum - plus d'évolutivité, de sécurité et de durabilité. + + + +Initialement, la [Chaîne phare](/roadmap/beacon-chain/) était envoyée séparément du [réseau principal](/glossary/#mainnet). Le réseau principal Ethereum - avec tous ses comptes, ses soldes, ses contrats intelligents et l'état de la blockchain - continuait d'être sécurisé par [la preuve de travail](/developers/docs/consensus-mechanisms/pow/), même si la Chaîne Phare fonctionnait en parallèle en utilisant [la preuve d'enjeu](/developers/docs/consensus-mechanisms/pos/). La Fusion a été le moment où ces deux systèmes se sont finalement combinés, et la preuve de travail a été remplacée de façon permanente par la preuve d'enjeu. + +Imaginez qu'Ethereum est un vaisseau spatial qui a été lancé avant qu'il ne soit prêt pour un voyage interstellaire. Avec la Chaîne phare, la communauté a construit un nouveau moteur et un fuselage renforcé. Après de nombreux tests, il a été temps de remplacer à chaud le nouveau moteur par l'ancien en plein vol. Cela a permis de fusionner le nouveau moteur, plus efficace, avec le vaisseau existant, prêt à franchir plusieurs années-lumière et à conquérir l'univers. + +## La fusion avec le réseau principal {#merging-with-mainnet} + +La preuve de travail a sécurisé le réseau principal Ethereum de la genèse jusqu'à La Fusion. Cela a permis à la blockchain Ethereum que nous utilisons tous de voir le jour en juillet 2015 avec toutes ses fonctionnalités familières — transactions, contrats intelligents, comptes, etc. + +Tout au long de l'histoire d'Ethereum, les développeurs se sont préparés à une éventuelle transition de la preuve de travail à la preuve d'enjeu. Le 1er décembre 2020, la Chaîne phare a été créée comme une blockchain distincte du réseau principal et fonctionnant en parallèle. + +La Chaîne phare ne traitait pas à l'origine les transactions du réseau principal. Au lieu de cela, elle atteignait le consensus sur son propre état en reconnaissant les validateurs actifs et leurs soldes de compte. Après des tests approfondis, il était temps pour la Chaîne phare de parvenir à un consensus sur les données du monde réel. Après La Fusion, la Chaîne phare est devenue le moteur de consensus pour toutes les données du réseau, y compris les transactions de la couche d'exécution et les soldes des comptes. + +La Fusion représente le passage officiel à l'utilisation de la Chaîne phare comme moteur de production de blocs. Le minage n'est plus le moyen de produire des blocs valides. À la place, les validateurs de la preuve d'enjeu assurent ce rôle et sont chargés de traiter la validité de toutes les transactions et de proposer des blocs. + +Aucun historique n'a été perdu dans la Fusion. Au fur et à mesure que le réseau principal a fusionné avec la Chaîne phare, il a également fusionné la totalité de l'historique transactionnel d'Ethereum. + + +Cette transition vers la preuve d'enjeu a modifié la façon dont l'éther est émis. En savoir plus sur l'émission d'éthers avant et après la Fusion. + + +### Utilisateurs et détenteurs {#users-holders} + +**La Fusion n'a rien changé pour les détenteurs/utilisateurs.** + +_Ceci nécessite d'être répété _: en tant qu'utilisateur ou détenteur d'ETH ou de tout autre actif numérique sur Ethereum, ainsi que pour les stakers qui n'opèrent pas sur les nœuds, **vous n'avez pas besoin de faire quoi que ce soit avec vos fonds ou votre portefeuille pour vous rendre compte de La Fusion.**. L'ETH n'est que l'ETH. Il n'existe rien de tel que « les anciens ETH »/« les nouveaux ETH » ou « ETH1 »/« ETH2 » et les portefeuilles fonctionnent exactement de la même manière après La Fusion qu'auparavant — les personnes vous disant l'inverse sont probablement des escrocs. + +Malgré le passage de la preuve de travail vers la preuve d'enjeu, tout l'historique d'Ethereum depuis sa genèse reste intact et inaltéré depuis ladite transition. Tous les fonds détenus dans votre portefeuille avant La Fusion restent accessibles après La Fusion. **Aucune action n'est requise pour mettre à jour de votre côté.** + +[En savoir plus sur la sécurité et Ethereum](/security/#eth2-token-scam) + +### Opérateurs de nœuds et développeurs de dApps {#node-operators-dapp-developers} + + + +Les principaux éléments d'action incluent : + +1. Exécutez _à la fois_ un client de consensus et un client d'exécution  ; les points de terminaison tiers pour obtenir des données d'exécution ne fonctionnent plus depuis La Fusion. +2. Authentifier à la fois les clients d'exécution et de consensus avec un secret JWT partagé pour qu'ils puissent communiquer en toute sécurité. +3. Définissez une adresse 'destinataire des frais' pour recevoir vos frais de transaction ou MEV gagnés. + +Si vous ne remplissez pas les deux premiers éléments ci-dessus, votre nœud sera considéré comme « hors ligne » jusqu'à ce que les deux couches soient synchronisées et authentifiées. + +Ne pas définir un « destinataire de frais » permettra toujours à votre validateur de se comporter comme d'habitude, mais vous n'allez pas recevoir les frais non brûlés et autres MEV que vous auriez autrement gagnés avec les blocs que votre validateur propose. + + + + +Jusqu'au moment de La Fusion, un client d'exécution (comme Geth, Erigon, Besu ou Nethermind) suffisait pour recevoir, valider correctement et diffuser les blocs créés par le réseau. Après La Fusion, la validité des transactions contenues dans un bloc d'exécution dépend désormais également de la validité du « bloc de consensus » qu'il contient. + +Par conséquent, un nœud Ethereum complet nécessite maintenant à la fois un client d'exécution et un client de consensus. Ces deux clients travaillent ensemble en utilisant une nouvelle API Moteur. L'API Moteur nécessite une authentification à l'aide d'un secret JWT, qui est fourni aux deux clients permettant ainsi une communication sécurisée. + +Les éléments clés d'action incluent le fait : + +- D'installer un client de consensus en plus d'un client d'exécution +- D'authentifier les clients d'exécution et de consensus avec un secret JWT partagé pour qu'ils puissent communiquer en toute sécurité entre eux. + +Si vous ne répondez pas aux exigences ci-dessus, votre nœud apparaîtra comme « hors ligne » jusqu'à ce que les deux couches soient synchronisées et authentifiées. + + + + + +La Fusion a été réalisée avec des changements de consensus, qui impliquent également les changements liés à : + +- La structure de bloc +- Le slot/timing de bloc +- Les changements d'opcode +- Les sources en chaîne aléatoire +- Les concepts de _tête sécurisée_ et de _blocs finalisés_ + +Pour plus d'informations, veuillez consulter cet article de blog de Tim Beiko sur [Comment la Fusion impacte la couche d'application d'Ethereum](https://blog.ethereum.org/2021/11/29/how-the-merge-impacts-app-layer/). + + +## La Fusion et la consommation énergétique {#merge-and-energy} + +La Fusion marque la fin de la preuve de travail pour Ethereum, et le début de l'ère d'un Ethereum plus durable et plus écologique. La consommation énergétique d'Ethereum a chuté d'environ 99,95 %, faisant de l'Ethereum une blockchain verte. Apprenez-en plus à propos de [la consommation énergétique d'Ethereum](/energy-consumption/). + +## La Fusion et la fragmentation {#merge-and-scaling} + +La Fusion permet également de préparer le terrain pour d'autres améliorations des mises à niveau non envisageables avec la preuve de travail, en rapprochant Ethereum d'une étape de la réalisation d'évolutivité, de sécurité et de durabilité décrite dans le [plan de développement d'Ethereum](/roadmap/vision/). + +## Les idées fausses sur La Fusion {#misconceptions} + + +Il existe deux types de nœuds sur Ethereum : ceux qui peuvent proposer de nouveaux blocs, et ceux qui ne le peuvent pas. + +Les nœuds qui peuvent proposer des blocs représentent une petite fraction du nombre total de nœuds existants. Cette catégorie inclut les nœuds de minage sous preuve de travail (PoW) et les nœuds des validateurs sous preuve d'enjeu (PoS). Cette catégorie nécessite d'engager des ressources économiques (que ce soient le pouvoir d'hachage des GPU pour la preuve de travail ou des ETH mis en jeu par les validateurs en preuve d'enjeu) afin de pouvoir, occasionnellement, proposer un nouveau bloc et gagner les récompenses offertes par le protocole. + +Les autres nœuds sur le réseau (la majorité en fait) ne nécessitent pas d'engager des ressources économiques, exception faite d'un ordinateur grand public bénéficiant d'un ou deux TO de stockage disponible et d'une connexion internet. Ces nœuds ne proposent pas de blocs mais ils jouent quand même un rôle critique dans la sécurité du réseau, en tenant tous les promoteurs responsables de l'énumération des blocs déjà existants et de la vérification de la validité des nouveaux blocs, conformément aux règles de consensus du réseau. Si le bloc est valide, le noeud permettra sa diffusion sur le réseau. Si le bloc n'est pas valable pour une raison quelconque, le logiciel ne le considérera pas valable et empêchera sa propagation. + +Exécuter un noeud ne produisant pas de bloc est possible pour quiconque et ce, quel que soit le mécanisme de consensus (preuve de travail ou preuve d'enjeu). C'est même fortement encouragé pour l'ensemble des utilisateurs qui en ont les moyens. L'exécution d'un noeud est extrêmement précieuse pour Ethereum et permet à chaque personne qui opère son propre noeud de bénéficier d'avantages supplémentaires en matière de sécurité, de vie privée, et de résistance à la censure améliorées. + +La possibilité pour quiconque de pouvoir exécuter son propre noeud est absolument essentiel afin de maintenir la décentralisation du réseau Ethereum. + +[En savoir plus sur l'exécution de votre propre noeud](/run-a-node/) + + + + +Les frais de gaz sont le produit des demandes envoyées au réseau par rapport à sa capacité. La Fusion a rendu obsolète l'utilisation de la preuve de travail pour une transition vers le consensus par la preuve d'enjeu, mais elle n'a pas modifié de manière significative les paramètres qui influencent directement la capacité ou le débit du réseau. + +Avec une feuille de route axée sur les rollups, les efforts sont concentrés sur la mise à l'échelle de l'activité des utilisateurs sur la couche 2, tout en activant le réseau principal de couche 1 en tant que couche de règlement décentralisée, sécurisée et optimisée pour le stockage de données cumulatives afin de rendre les transactions rollups exponentiellement moins chères. La transition vers la preuve d'enjeu est une étape préalable essentielle afin de réaliser cela. [En savoir plus sur le gaz et les frais.](/developers/docs/gas/) + + + +La « vitesse » d'une transaction peut être mesurée de différentes façons, y compris le délai à inclure dans un bloc et le temps pour la finalisation. Ces deux facteurs sont légèrement modifiés, mais pas dans des proportions suffisantes pour que les utilisateurs le remarquent. + +Historiquement, concernant la preuve de travail, l'objectif était de permettre la création d'un nouveau bloc toutes les 13,3 secondes. Avec la preuve d'enjeu, cette production sera effective toutes les 12 secondes, ce qui constituera à chaque fois une opportunité pour un validateur de publier un nouveau bloc. La plupart des slots ont des blocs, mais pas nécessairement tous (lorsqu'un validateur est hors ligne). Avec la preuve d'enjeu, les blocs sont produits ~10 % plus fréquemment qu'avec la preuve de travail. Il s'agit d'un changement trop insignifiant pour qu'il soit réellement perçu par les utilisateurs. + +La preuve d’enjeu a introduit le concept de finalité des transactions qui n’existait pas auparavant. Avec la de preuve de travail, la possibilité d'inverser un bloc devient exponentiellement plus difficile avec chaque nouveau bloc créé, mais elle n'atteindra jamais zéro. Avec la preuve d'enjeu, les blocs sont regroupés dans des périodes (6,4 minutes de temps contenant 32 chances pour les blocs) sur lesquelles les validateurs votent. Lorsqu'une période se termine, les validateurs se prononcent sur la question de savoir s'il faut considérer la période comme « justifiée ». Si les validateurs acceptent de justifier la période, elle sera finalisée lors de la prochaine période. L'annulation des transactions finalisées n'est pas viable économiquement, car cela nécessiterait l'obtention et la combustion de plus d'un tiers du total de l'ETH misé. + + + + +Les récompenses d'ETH et de mise en jeu continuent d'être verrouillées sans possibilité d'être retirées. Les retraits sont prévus pour la prochaine mise à niveau Shanghai. + + + +Cela peut sembler contre-intuitif, au regard des éléments ci-dessus, dans la mesure où les retraits ne sont pas activés jusqu'à la mise à niveau Shanghai, mais les validateurs DOIVENT avoir un accès immédiat aux récompenses de frais/MEV gagnés lors des propositions de bloc. + +Le protocole émet l'ETH comme récompense à destination des validateurs pour avoir contribué au consensus. La couche de consensus représente l'ETH nouvellement émis, où un validateur a une adresse unique qui contient son ETH mis en jeu ainsi que ses récompenses de protocole. Ces ETH sont bloqués jusqu'à la mise à niveau Shanghai. + +L'ETH pour la couche d'exécution est comptabilisé séparément de la couche de consensus. Lorsque les utilisateurs exécutent des transactions sur le réseau principal Ethereum, ils doivent s'acquitter des frais de gaz en ETH, y compris une commission pour le validateur. Cet ETH se trouve déjà sur la couche d'exécution, n'est PAS nouvellement émis par le protocole, et est disponible immédiatement pour le validateur (étant donné qu'une adresse appropriée de « destinataire de frais » est fournie au logiciel client). + + + +Depuis que les retraits ont été activés suite à la mise à niveau Shanghai, tous les validateurs seront incités à retirer leur solde d'ETH si celui-ci est supérieur à 32, ces fonds ne permettant pas de générer un rendement complémentaire et qu'ils seront par ailleurs, verrouillés. En fonction de l'APR (déterminé par l'ETH total mis en jeu), ils peuvent être encouragés à quitter leur(s) validateur(s) pour récupérer leur solde en entier ou potentiellement en miser encore plus en utilisant leurs récompenses pour obtenir plus de rendement. + +Une mise en garde importante et nécessaire ici, les sorties complètes de validateur sont limitées par le protocole. Ainsi, uniquement six validateurs peuvent sortir par période (chaques 6,4 minutes, et ainsi 1 350 fois par jour, ou seulement environ 43 200 ETH par jour sur plus de 10 millions d'ETH misés). Cette limite de taux s’ajuste en fonction du total d'ETH mis en jeu et empêche un exode massif des fonds. De plus, il empêche un attaquant potentiel d'utiliser ses ETH mis en jeu pour commettre une attaque normalement punissable tout en retirant sa mise avant que le protocole ne puisse appliquer la sanction. + +L'APR a été rendue dynamique intentionnellement, afin de permettre aux stakers de trouver un équilibre concernant le montant de la rémunération qu'ils souhaitent percevoir pour aider à sécuriser le réseau. Lorsque les retraits seront activés et si le taux est trop bas, les validateurs se retireront à un taux limité par le protocole. Peu à peu, cela permettra d'élever l'APR pour tous ceux qui restent, attirant encore une fois de nouveaux stakers ou en permettant le retour d'anciens validateurs. + + +## Que devient « Eth2 » ? {#eth2} + +Le terme « Eth2 » est obsolète. Après avoir fusionné « Eth1 » et « Eth2 » dans une seule chaîne, il n'est plus nécessaire de faire la distinction entre deux réseaux Ethereum ; il n'existe plus qu'Ethereum. + +Pour limiter la confusion, la communauté a mis à jour ces termes : + +- « Eth1 » est maintenant « la couche d'exécution », qui gère les transactions et les exécutions. +- « Eth2 » est maintenant la « couche de consensus », qui gère le consensus de la preuve d'enjeu. + +Ces mises à jour d'ordre terminologique ne concernent que les conventions de nommage ; les objectifs et la feuille de route d'Ethereum restent inchangés. + +[En savoir plus sur le changement de nom « Eth2 »](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) + +## Relation entre les mises à niveau {#relationship-between-upgrades} + +Les mises à niveau Ethereum sont plus ou moins interdépendantes. Alors résumons comment la fusion est liée aux autres mises à niveau. + +### La Fusion et la chaîne phare {#merge-and-beacon-chain} + +La Fusion représente l'adoption formelle de la Chaîne phare comme nouvelle couche de consensus pour la couche d'exécution sur le réseau principal d'origine. Depuis La Fusion, les validateurs sont affectés au réseau principal sécurisé d'Ethereum et le minage par [preuve de travail](/developers/docs/consensus-mechanisms/pow/) n'est plus un moyen valide de production de blocs. + +Les blocs sont dès lors proposés par validation des nœuds qui ont misés l'ETH en échange du droit de participer au consensus. Ces mises à niveau permettent de préparer le terrain pour de futures améliorations d'évolutivité, y compris la fragmentation. + + + La Chaîne phare + + +### La Fusion et la mise à niveau de Shanghai {#merge-and-shanghai} + +Afin de simplifier et de permettre une transition aussi rapide et réussie que possible vers le système de preuve d'enjeu, la mise à jour vers La Fusion n'intègre pas certaines fonctionnalités anticipées telles que, par exemple, la possibilité de retirer les ETH bloqués sur la chaîne phare. La prochaine mise à niveau de Shanghai qui suivra la Fusion intégrera la possibilité de retirer les ETH bloqués sur chaîne phare. + +Restez à jour avec [la question de la planification de la mise à jour Shanghai sur GitHub](https://github.com/ethereum/pm/issues/450) ou le [Blog EF Recherche et Développement](https://blog.ethereum.org/category/research-and-development/). Pour ceux qui sont curieux, apprenez-en plus sur [Ce qui se passe après la fusion](https://youtu.be/7ggwLccuN5s?t=101), une présentation par Vitalik lors de l'événement ETHGlobal d'avril 2021. + +### La Fusion et la fragmentation {#merge-and-data-sharding} + +Initialement, l'objectif était de travailler sur la fragmentation avant la Fusion afin d'optimiser l'évolutivité d'Ethereum. Cela dit, avec l'expansion des [solutions d'évolutivité de la couche 2](/layer-2/), la priorité a été de passer de la preuve de travail à la preuve d'enjeu. + +Les plans liés à la fragmentation évoluent rapidement, mais compte tenu du développement et du succès rencontré par les technologies de couche 2 visant à augmenter l'évolutivité de l'exécution des transactions, ces plans de fragmentation ont été modifiés afin de trouver la meilleure manière de répartir le poids lié au stockage des données d'appel comprimées émanant des contrats roll-up et de permettre la croissance exponentielle du réseau. Cela ne serait pas possible sans opérer d'abord une transition vers le système de preuve d'enjeu. + + + Fragmentation + + +## Complément d'information {#further-reading} + + + + diff --git a/src/content/translations/fr/security/index.md b/public/content/translations/fr/security/index.md similarity index 100% rename from src/content/translations/fr/security/index.md rename to public/content/translations/fr/security/index.md diff --git a/public/content/translations/fr/smart-contracts/index.md b/public/content/translations/fr/smart-contracts/index.md new file mode 100644 index 00000000000..abb6c00b245 --- /dev/null +++ b/public/content/translations/fr/smart-contracts/index.md @@ -0,0 +1,84 @@ +--- +title: Contrats intelligents +description: Une introduction non technique aux contrats intelligents +lang: fr +--- + +# Introduction aux contrats intelligents {#introduction-to-smart-contracts} + +Les contrats intelligents sont les éléments fondamentaux de la couche applicative d'Ethereum. Il s'agit de programmes informatiques stockés sur la blockchain qui suivent la logique "si ceci alors cela" et sont garantis de s'exécuter selon les règles définies par leur code, qui ne peut être modifié une fois créé. + +L'expression « contrat intelligent » a été utilisée en premier par Nick Szabo. En 1994, il a écrit [une introduction au concept](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html), et en 1996 il a écrit [une exploration à ce que les contrats intelligents pourraient faire](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). + +Szabo a imaginé un marché numérique où des processus automatiques et cryptographiquement sécurisés permettent aux transactions et aux fonctions commerciales de se dérouler sans intermédiaires de confiance. Les contrats intelligents Ethereum concrétisent cette vision. + +## La confiance dans les contrats conventionnels {#trust-and-contracts} + +L'un des problèmes majeurs d'un contrat classique est la nécessité que des personnes de confiance assurent le suivi des résultats du contrat. + +En voici un exemple : + +Alice et Bob font une course de vélo. Imaginons qu'Alice parie 10 € avec Bob qu'elle gagnera la course. Bob est sûr de gagner et accepte le pari. Finalement, Alice devance largement Bob et gagne de façon incontestable la course. Mais Bob refuse de payer le pari, prétendant qu'Alice a dû tricher. + +Cet exemple ridicule illustre le problème de tout accord non intelligent. Même si les conditions de l'accord sont remplies (ex. vous avez gagné la course), vous devez toujours faire confiance à une autre personne pour qu'elle respecte l'accord (ex. payer le pari). + +## Distributeur automatique numérique {#vending-machine} + +Nous pouvons comparer simplement un contrat intelligent à un distributeur automatique, qui fonctionne de manière assez similaire à un contrat intelligent ; des intrants spécifiques qui garantissent des résultats prédéterminés. + +- Vous choisissez un produit +- Le distributeur automatique affiche le prix +- Vous payez le prix +- Le distributeur automatique vérifie que vous avez payé le bon montant +- Le distributeur automatique vous remet votre article + +Le distributeur automatique ne distribuera le produit choisi que si toutes les conditions sont remplies. Si vous ne sélectionnez pas un produit ou que vous n'insérez pas le montant suffisant, le distributeur automatique ne distribuera pas le produit. + +## Exécution automatique {#automation} + +Le principal avantage d'un contrat intelligent est qu'il exécute de manière déterministe un code non ambigu lorsque certaines conditions sont remplies. Il n'est pas nécessaire d'attendre qu'un humain interprète ou négocie le résultat. Il n'est donc plus nécessaire de recourir à des intermédiaires de confiance. + +Par exemple, vous pouvez rédiger un contrat intelligent qui détient des fonds en fiducie pour un enfant, autorisant celui-ci à retirer des fonds seulement à partir d'une date précise. S'il essaie de se retirer avant cette date, le contrat intelligent ne s'exécutera pas. Vous pouvez également rédiger un contrat qui vous fournit automatiquement une version numérique du titre de propriété d'une voiture lorsque vous payez le concessionnaire. + +## Résultats prévisibles {#predictability} + +Les contrats traditionnels sont ambigus parce qu'ils dépendent de l'homme pour leur interprétation et leur mise en œuvre. Par exemple, deux juges peuvent interpréter un contrat différemment, ce qui peut conduire à des décisions incohérentes et à des résultats inégaux. Les contrats intelligents éliminent cette possibilité. En effet, les contrats intelligents s'exécutent précisément en fonction des conditions écrites dans le code du contrat. Cette précision signifie que, dans les mêmes circonstances, le contrat intelligent produit le même résultat. + +## Enregistrement public {#public-record} + +Les contrats intelligents sont utiles pour les audits et le suivi. Comme les contrats intelligents Ethereum sont sur une blockchain publique, tout le monde peut suivre instantanément les transferts d'actifs ainsi que toute autre information connexe. Vous pouvez par exemple vérifier si quelqu'un a envoyé de l'argent à votre adresse. + +## Protection de la vie privée {#privacy-protection} + +Les contrats intelligents protègent également votre vie privée. Ethereum étant un réseau pseudonyme (vos transactions sont liées publiquement à une adresse cryptographique unique, et non à votre identité), vous pouvez protéger votre vie privée. + +## Transparence des conditions {#visible-terms} + +Enfin, comme pour les contrats traditionnels, vous pouvez vérifier le contenu d'un contrat intelligent avant de le signer (ou d'interagir avec). La transparence d'un contrat intelligent garantit que tout le monde peut l'examiner. + +## Cas d'utilisation des contrats intelligents {#use-cases} + +Les contrats intelligents peuvent faire essentiellement tout ce que les programmes informatiques peuvent faire. + +Ils peuvent effectuer des calculs, produire de la monnaie, stocker des données, générer des NFT, envoyer des messages et même produire des visuels. Voici quelques exemples courants et concrets : + +- [Stablecoins](/stablecoins/) +- [Création et distribution d'actifs numériques uniques](/nft/) +- [Plateforme d'échange ouverte et automatisée](/get-eth/#dex) +- [Jeu décentralisé](/dapps/?category=gaming) +- [Police d'assurance qui paie automatiquement](https://etherisc.com/) +- [Norme qui permet aux gens de créer des devises personnalisées et interopérables](/developers/docs/standards/tokens/) + +## Davantage qu'un apprenant visuel ? {#visual-learner} + +Regardez Finematics expliquer les contrats intelligents : + + + +## Complément d'information {#further-reading} + +- [Comment les contrats intelligents vont changer le monde](https://www.youtube.com/watch?v=pA6CGuXEKtQ) +- [Contrats intelligents : la technologie de la blockchain qui va remplacer les juristes](https://blockgeeks.com/guides/smart-contracts/) +- [Les contrats intelligents pour les développeurs](/developers/docs/smart-contracts/) +- [Apprenez à rédiger des contrats intelligents](/developers/learning-tools/) +- [Maîtriser Ethereum - Qu'est-ce qu'un contrat intelligent ?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/fr/social-networks/index.md b/public/content/translations/fr/social-networks/index.md new file mode 100644 index 00000000000..2a7c1013007 --- /dev/null +++ b/public/content/translations/fr/social-networks/index.md @@ -0,0 +1,121 @@ +--- +title: Les réseaux sociaux décentralisés +description: Un aperçu des réseaux sociaux décentralisés sur Ethereum +lang: fr +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: /ethereum-learn.png +summaryPoint1: Plateformes basées sur la blockchain pour les interactions sociales, la création et la distribution de contenu. +summaryPoint2: Les médias décentralisés protègent la confidentialité des utilisateurs et améliorent la sécurité des données. +summaryPoint3: Les jetons et les NFT créent de nouvelles façons de monétiser le contenu. +--- + +Les réseaux sociaux jouent un rôle considérable dans nos communications et interactions quotidiennes. Cependant, le contrôle centralisé de ces plates-formes a créé de nombreux problèmes : fuites de données, pannes de serveur, censure et violations de la vie privée sont souvent des compromis que les réseaux sociaux font. Pour lutter contre ces problèmes, les développeurs construisent des réseaux sociaux sur Ethereum. Les réseaux sociaux décentralisés peuvent résoudre bon nombre des problèmes des plates-formes traditionnelles et améliorer l'expérience globale des utilisateurs. + +## Qu'est-ce qu'un réseau social décentralisé ? {#what-are-decentralized-social-networks} + +Les réseaux sociaux décentralisés sont des plateformes basées sur la blockchain qui permettent aux utilisateurs d'échanger des informations ainsi que de publier et de distribuer du contenu au public. Parce que ces applications s'exécutent sur la blockchain, elles sont capables d'être décentralisées et résistantes à la censure et au contrôle excessif. + +De nombreux réseaux sociaux décentralisés existent comme alternatives aux services de médias sociaux établis, tels que Facebook, LinkedIn, Twitter et Medium. Les réseaux sociaux basés sur la blockchain ont un certain nombre de caractéristiques qui les placent devant les plates-formes traditionnelles. + +### Comment fonctionnent les réseaux sociaux décentralisés ? {#decentralized-social-networks-overview} + +Les réseaux sociaux décentralisés sont une classe d'applications [décentralisées (dapps)](/dapps/)— des applications gérées par des [contrats intelligents](/developers/docs/smart-contracts/) déployés sur la blockchain. Le code du contrat sert de backend pour ces applications et définit leur logique commerciale. + +Les plateformes de réseaux sociaux traditionnels se fondent sur des bases de données pour stocker des informations sur l’utilisateur, le code du programme et d’autres formes de données. Mais cela crée un point de vulnérabilité et comporte des risques significatifs. Par exemple, les serveurs de Facebook [sont devenus inaccessible pendant des heures](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) l'année dernière, coupant les utilisateurs de leur plateforme. + +Les réseaux sociaux décentralisés existent sur un réseau peer-to-peer regroupant des milliers de nœuds à travers le monde. Même si certains nœuds se coupent, le réseau fonctionnera sans interruption, rendant les applications résistantes aux pannes et aux défaillances. + +En utilisant des systèmes de stockage décentralisés comme [le système de fichiers interplanétaires (IPFS)](https://ipfs.io/), les réseaux sociaux basés sur Ethereum peuvent protéger les informations des utilisateurs contre l'exploitation et l'utilisation malveillante de leurs données. Personne ne vendra vos informations personnelles à des annonceurs, et les pirates informatiques ne pourront pas non plus voler vos informations confidentielles. + +De nombreuses plateformes basées sur la blockchain ont des tokens natifs qui alimentent la monétisation en l'absence de revenus publicitaires. Les utilisateurs peuvent acheter ces tokens pour accéder à certaines fonctionnalités, effectuer des achats dans l'application ou donner des conseils à leurs créateurs de contenu préférés. + +## Les avantages des réseaux sociaux décentralisés {#benefits} + +1. Les réseaux sociaux décentralisés sont résistants à la censure et ouverts à tous. Cela signifie que les utilisateurs ne peuvent pas être bannis ou censurés de manière arbitraire. + +2. Les réseaux sociaux décentralisés sont construits en open-source et rendent le code source des applications visibles afin de le vérifier. En éliminant l'implémentation d'algorithmes opaques communs aux réseaux sociaux traditionnels, les réseaux sociaux basés sur la blockchain peuvent aligner les intérêts des utilisateurs et des créateurs de plateformes. + +3. Les réseaux sociaux décentralisés éliminent les « intermédiaires ». Les créateurs de contenu ont une propriété directe sur leur contenu et s'engagent directement auprès des abonnés, des fans, des acheteurs et les autres parties, avec un contrat intelligent entre les deux. + +4. En tant que dApps fonctionnant sur le réseau Ethereum, qui est soutenu par un réseau mondial de nœuds peer-to-peer, les réseaux sociaux décentralisés sont moins sensibles aux arrêts de serveur et aux interruptions. + +5. Les plates-formes sociales décentralisées offrent un cadre de monétisation amélioré pour les créateurs de contenu par le biais de jetons non-fongibles (NFT), des paiements en crypto-monnaies dans l'application et bien davantage. + +6. Les réseaux sociaux décentralisés offrent aux utilisateurs un niveau élevé de respect de la vie privée et d'anonymat. Par exemple, une personne peut se connecter à un réseau social basé sur Ethereum à l'aide d'un profil ou d'un portefeuille d'ENS - sans avoir à partager des informations personnelles identifiables (PII), comme les noms, les adresses e-mail, etc. + +7. Les réseaux sociaux décentralisés reposent sur un stockage décentralisé, et non sur des bases de données centralisées, ce qui est nettement mieux pour protéger les données des utilisateurs. + +## Réseaux sociaux décentralisés sur Ethereum {#ethereum-social-networks} + +Le réseau Ethereum est devenu l'outil de prédilection des développeurs qui créent des réseaux sociaux décentralisés en raison de la popularité de ses jetons (ERC-20/ERC-721) et de son énorme base d'utilisateurs. Voici quelques exemples de réseaux sociaux basés sur Ethereum : + +### Peepeth {#peepeth} + +[Peepeth](https://peepeth.com/) est une plateforme de microblog similaire à Twitter. Il fonctionne sur la blockchain Ethereum et utilise IPFS pour stocker les données des utilisateurs. + +Les utilisateurs peuvent envoyer des messages courts appelés « Peeps », qui ne peuvent pas être supprimés ou modifiés. Vous pouvez collecter des dons ou donner des dons à n'importe qui sur la plateforme en Ether (ETH) sans quitter l'application. + +### Mirror {#mirror} + +[Mirror](https://mirror.xyz/) est une plateforme de rédaction d'article compatible avec le Web3 qui vise à être décentralisée et détenue par les utilisateurs. Les utilisateurs peuvent lire et écrire gratuitement sur Mirror en connectant simplement leurs portefeuilles. Les utilisateurs peuvent également collecter des articles et s'abonner à leurs auteurs préférés. + +Les articles publiés sur Mirror sont stockés en permanence sur Arweave, une plate-forme de stockage décentralisée, et peuvent être frappés en tant que [jetons non fongibles (NFT) collectionnable](/nft/) connus sous le nom de Writing NFTs. La création des Writing NFTs est entièrement gratuite pour les auteurs, et la collection est stockée sur une couche 2 d'Ethereum — rendant les transactions peu coûteuses, rapides et écologiques. + +### MINDS {#minds} + +[MINDS](https://www.minds.com/) est l'un des réseaux sociaux décentralisés les plus utilisés. Il fonctionne comme Facebook et a déjà rassemblé des millions d’utilisateurs. + +Les utilisateurs utilisent le jeton ERC-20 natif de la plateforme $MIND pour payer des items. Les utilisateurs peuvent également gagner des jetons $MIND en publiant du contenu populaire, en contribuant à l'écosystème et en amenant d'autres personnes sur la plateforme. + +## Les réseaux sociaux Web2 sur Ethereum {#web2-social-networks-and-ethereum} + +Les plateformes Web3 natives [Web3](/web3/) ne sont pas les seules à essayer d'intégrer la technologie blockchain dans leurs réseaux sociaux. De nombreuses plates-formes centralisées prévoient également d'intégrer Ethereum dans leur infrastructure : + +### Reddit {#reddit} + +Reddit a [utilisé les Points Communautaires](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users), qui sont des jetons [ERC-20](/developers/docs/standards/tokens/erc-20/) que les utilisateurs peuvent gagner en publiant du contenu de qualité et en apportant des contributions dans les communautés en ligne (subreddits). Vous pouvez échanger ces jetons dans un subreddit pour [obtenir des privilèges et des avantages exclusifs](https://www.reddit.com/community-points/). Pour ce projet, Reddit travaille avec Arbitrum, un rollup [layer 2](/layer-2/) conçu pour mettre à l'échelle les transactions Ethereum. + +Le programme est déjà en ligne, avec le subreddit r/CryptoCurrency [exécutant sa version de Points Communautaires appelée « Moons »](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Par description officielle, Moons « récompensent les affichages, les commentaires, et les modérateurs pour leurs contributions au subreddit ». Parce que ces jetons sont sur la blockchain (les utilisateurs les reçoivent dans des portefeuilles), ils sont indépendants de Reddit et ne peuvent pas être retirés. + +Au terme d'une phase bêta sur le réseau de test Rinkeby, les Points de la Communauté Reddit sont maintenant sur [Arbitrum Nova](https://nova.arbitrum.io/), une blockchain qui combine les propriétés d'une chaine latérale [](/developers/docs/scaling/sidechains/) et d'un [Rollup optimisé](/developers/docs/scaling/optimistic-rollups/). En plus d'utiliser des Points Communautaires pour débloquer des fonctionnalités spéciales, les utilisateurs peuvent également les échanger contre des monnaies officielles. De plus, le nombre de Points Communautaires qu'un utilisateur possède détermine son influence sur le processus décisionnel au sein de la communauté. + +### Twitter {#twitter} + +En janvier 2021, Twitter Blue [a déployé la prise en charge des NFT](https://mashable.com/article/twitter-blue-nft-profile-picture), permettant aux utilisateurs de connecter leurs portefeuilles et d'afficher les NFT sous forme de photos de profil. Lors de la rédaction, l'entreprise de médias sociaux a également [annoncé des plans](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) pour créer un réseau social décentralisé à l'avenir. + +### Instagram {#instagram} + +En mai 2022, [Instagram a annoncé le support des NFT](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) sur Ethereum et Polygon. Les utilisateurs pourront publier des NFT directement sur Instagram en connectant leur portefeuille Ethereum. + +## Utiliser les réseaux sociaux décentralisés {#use-decentralized-social-networks} + +- **[Status](https://status.im/)** - _Status est une application de messagerie sécurisée qui utilise un code open source, un protocole peer-to-peer et un chiffrement de bout en bout pour protéger vos messages contre des tiers._ +- **[Mirror.xyz](https://mirror.xyz/)** - _Mirror est une plateforme de publication, détenue par les utilisateurs, décentralisée et basée sur Ethereum pour permettre aux utilisateurs de financer des projets, de monétiser du contenu et de construire des communautés de grande valeur._ +- **[Lens Protocol](https://lens.xyz/)** - _Lens Protocol est un graphe social décentralisé et modulaire qui aide les créateurs à prendre en main leur contenu où qu'ils aillent dans le jardin numérique de l'internet décentralisé._ +- **[Farcaster](https://farcaster.xyz/)** - _Farcaster est un réseau social suffisamment décentralisé. C'est un protocole ouvert qui peut supporter de nombreux clients, tout comme l'e-mail._ + +## Lectures additionnelles {#further-reading} + +### Articles {#articles} + +- [Décentralisation des réseaux sociaux : guide relatif à la pile sociale du web3](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _Coinbase Ventures_ +- [Social Networks Are the Next Big Decentralization Opportunity](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Goertzel_ +- [Web3 holds the promise of decentralized, community-powered social networks](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ +- [An Overview of the Blockchain Social Media Landscape](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ +- [How Blockchain Can Solve Social Media Privacy](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Prableen Bajpai_ +- [Social Media Networks Are Coming To The Blockchain](https://businesstechguides.co/what-are-decentralized-social-networks) — _Emmanuel Awosika_ +- [Décentralisation suffisante pour les réseaux sociaux](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Varun Srinivasan_ + +### Vidéos {#videos} + +- [Decentralized Social Media Explained](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ +- [DeSo Blockchain Wants to Decentralize Social Media](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_ + +### Communautés {#communities} + +- [Serveur Discord de Status](https://discord.com/invite/3Exux7Y) +- [Serveur Discord de Mirror](https://discord.com/invite/txuCHcE8wV) +- [r/CryptoMonnaie subreddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/fr/staking/dvt/index.md b/public/content/translations/fr/staking/dvt/index.md similarity index 100% rename from src/content/translations/fr/staking/dvt/index.md rename to public/content/translations/fr/staking/dvt/index.md diff --git a/public/content/translations/fr/staking/pools/index.md b/public/content/translations/fr/staking/pools/index.md new file mode 100644 index 00000000000..c4def9b5fe1 --- /dev/null +++ b/public/content/translations/fr/staking/pools/index.md @@ -0,0 +1,86 @@ +--- +title: Mise en jeu mutualisée +description: Un aperçu de la façon de débuter avec la mise en jeu d'ETH mutualisée +lang: fr +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-pool.png +alt: Leslie le rhinocéros nage dans la piscine. +sidebarDepth: 2 +summaryPoints: + - Misez et gagnez des récompenses avec n'importe quel montant d'ETH en joignant vos forces à celles des autres + - Laissez de côté la partie difficile et confiez la validation des opérations à une tierce partie + - Conservez vos jetons de staking dans votre propre portefeuille +--- + +## Que sont les groupes d'enjeu ? {#what-are-staking-pools} + +Les groupes d'enjeux offrent une approche collaborative permettant à de nombreuses personnes ayant de petites quantités d'ETH de rassembler les 32 ETH nécessaires pour activer un jeu de clés de validateur. Le concept de groupes d'enjeux n'est pas pris en charge de manière native par le protocole. Des solutions ont donc été élaborées séparément pour répondre à ce besoin. + +Certains pools fonctionnent à l'aide de contrats intelligents, dans lesquels les fonds peuvent être déposés. Ceux-ci gèrent et suivent votre mise en jeu sans intermédiaire de confiance, et vous remettent un jeton représentant la valeur de votre mise. D'autres pools n'utilisent pas de contrats intelligents et sont, au contraire, gérés hors chaîne. + +## Pourquoi miser via un pool ? {#why-stake-with-a-pool} + +En plus des avantages que nous avons décrits dans notre [introduction à la mise en jeu](/staking/), la mise en jeu mutualisée offre un certain nombres d'avantages spécifiques. + + + + + + + + + +## Éléments importants {#what-to-consider} + +La mise en jeu mutualisée ou déléguée n'est pas prise en charge nativement par le protocole Ethereum, mais compte tenu de la demande des utilisateurs de miser moins de 32 ETH, un nombre croissant de solutions ont été construites pour répondre à cette demande. + +Chaque pool et les outils ou contrats intelligents qu'ils utilisent ont été élaborés par différentes équipes, et chacun présente des avantages et des risques. Les pools permettent aux utilisateurs d'échanger leur ETH contre un jeton représentant l'ETH mis en jeu. Ce jeton est utile car il permet aux utilisateurs d'échanger n'importe quel montant d'ETH avec un montant équivalent d'un jeton porteur d'intérêts qui génère des rendements à partir des récompenses de staking appliqués aux ETH sous-jacents (et vice versa) sur les plateformes d'échanges décentralisées alors même que l'ETH réel reste mis en jeu sur la couche consensus. Cela signifie que les échanges entre un produit ETH mis en jeu générateur de rendement et l'« ETH brut» sont rapides, faciles et pas uniquement disponibles en multiples de 32 ETH. + +Toutefois, ces jetons d'ETH mis en jeu ont tendance à créer des comportements assimilables à des cartels où de vastes montants d'ETH mis en jeu finissent sous le contrôle de quelques organisations centralisées plutôt que réparties à travers de nombreux individus indépendants. Cela crée les conditions d'une censure ou d'une extraction de valeur. La norme d'excellence pour la mise en jeu devrait toujours porter sur des personnes individuelles qui exécutent des nœuds validateurs sur leur propre matériel, dans la mesure du possible. + +[En savoir plus sur les risques de la mise en jeu de jetons](https://notes.ethereum.org/@djrtwo/risks-of-lsd). + +Les indicateurs d'attributs sont utilisés ci-dessous pour signaler des forces ou faiblesses notables qu'un groupe de mise en jeu mutualisé peut présenter. Utilisez cette section comme référence pour savoir comment nous définissons ces attributs lorsque vous choisissez un pool à rejoindre. + + + +## Explorez les pools de mise en jeu {#explore-staking-pools} + +De nombreuses options sont disponible pour vous aider dans votre configuration. Utilisez les indicateurs ci-dessus pour vous guider à travers les outils ci-dessous. + + + + + +Veuillez noter l'importance de choisir un service qui prend au sérieux [la diversité des clients](/developers/docs/nodes-and-clients/client-diversity/) , car elle améliore la sécurité du réseau et limite vos risques. Les services prouvant que l'utilisation d'un client majoritaire est limitée sont indiqués avec "diversité des clients d'exécution" et "diversité des clients de consensus." + +Vous souhaitez suggérer un outil de mise en jeu que nous avons manqué ? Consultez notre [politique de liste de produits](/contributing/adding-staking-products/) pour voir s'il conviendrait, et le soumettre à examen. + +## Questions fréquemment posées {#faq} + + +Généralement, des jetons de mise en jeu RC-20 sont émis à destination des participants et représentent la valeur de leur ETH mis en jeu et, en sus, les récompenses. Gardez en mémoire que les différents pools distribueront des récompenses de mise en jeu à leurs utilisateurs selon des règles différentes, mais c'est un sujet général. + + + +Et c'est déjà le cas ! La mise à niveau du réseau Shanghai/Capella a eu lieu en avril 2023 et a introduit des retraits de staking. Après cette mise à niveau, les comptes de validateur soutenant les pools de mise en jeu auront la possibilité de sortir et de retirer l'ETH à leur adresse de retrait désignée. Cela permet de racheter votre part de mise en jeu pour l'ETH. Vérifiez auprès de votre fournisseur de services pour savoir comment il supporte cette fonctionnalité. + +Alternativement, les pools qui utilisent les jetons de staking ERC-20 permettent à leurs utilisateurs d'échanger ce jeton sur le marché ouvert, vous permettant de vendre votre position de mise, en retirant sans pour autant supprimer l'ETH du contrat de staking. + +En savoir plus sur les retraits de mise en jeu. + + + +Il existe de nombreuses similitudes entre ces options de mise en jeu mutualisée et les échanges centralisés, comme la capacité de mettre en jeu de petites quantités d'ETH et de les regrouper pour activer les validateurs. + +Contrairement aux plateformes d'échanges centralisés, beaucoup d'autres options de mise en jeu mutualisée utilisent des contrats intelligents et/ou des jetons de staking, qui sont habituellement des jetons ERC-20 pouvant être détenus dans votre propre portefeuille, et achetés ou vendus comme n'importe quel autre jeton. Cela vous offre une couche de souveraineté et de sécurité en vous donnant le contrôle de vos jetons, mais ne vous donne toujours pas de contrôle direct sur le client de validateur qui atteste en votre nom en arrière-plan. + +Certaines options de mise en commun sont plus décentralisées que d'autres concernant les nœuds qui les soutiennent. Pour promouvoir la santé et la décentralisation du réseau, les validateurs sont toujours encouragés à sélectionner un service de mutualisation offrant un ensemble décentralisé d'opérateurs de nœuds sans permission. + + +## Lectures complémentaires {#further-reading} + +- [L'Annuaire de la mise en jeu sur Ethereum.](https://www.staking.directory/) - _Eridian and Spacesider_ +- [Staking with Rocket Pool - Staking Overview](https://docs.rocketpool.net/guides/staking/overview.html) - _RocketPool docs_ +- [Staking Ethereum With Lido](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Aide Lido docs_ diff --git a/public/content/translations/fr/staking/saas/index.md b/public/content/translations/fr/staking/saas/index.md new file mode 100644 index 00000000000..349424d21a4 --- /dev/null +++ b/public/content/translations/fr/staking/saas/index.md @@ -0,0 +1,95 @@ +--- +title: Mise en jeu en tant que service +description: Un aperçu de la façon de débuter avec la mise en jeu ETH mutualisée +lang: fr +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-saas.png +alt: Leslie le rhinocéros flottant dans les nuages. +sidebarDepth: 2 +summaryPoints: + - Les opérateurs de nœuds tiers gèrent le fonctionnement de votre client de validateur + - Excellente option pour toute personne disposant de 32 ETH et ne se sentant pas à l'aise face à la complexité technique du fonctionnement d'un nœud + - Réduire la confiance et conserver la garde de vos clés de retrait +--- + +## Qu'est-ce que la mise en jeu en tant que service ? {#what-is-staking-as-a-service} + +Staking as a service ("la mise en jeu en tant que service, ou SaaS”) est une catégorie de services de mise en jeu au sein de laquelle vous déposez vos propres 32 ETH pour un validateur, mais déléguez les opérations de nœuds à un opérateur tiers. Ce processus implique généralement d'être guidé à travers la configuration initiale, y compris la génération de clés et le dépôt, puis de télécharger vos clés de signature à l'opérateur. Cela permet au service d'exploiter votre validateur en votre nom, généralement moyennant des frais mensuels. + +## Pourquoi miser via un service? {#why-stake-with-a-service} + +Le protocole Ethereum ne soutient pas nativement la délégation de mise en jeu. Ces services ont donc été construits pour répondre à cette demande. Si vous avez 32 ETH à miser, mais que vous ne vous sentez pas à l'aise avec le matériel, les services SaaS vous permettent de déléguer la partie complexe pendant que vous gagnez des récompenses de bloc natif. + + + + + + + + + +## Ce que vous devez prendre en compte {#what-to-consider} + +Il existe un nombre croissant de fournisseurs de services SaaS pour vous aider à miser votre ETH, mais chacun présente ses propres avantages et risques. Toutes les options SaaS requièrent des hypothèses de confiance supplémentaires par rapport à la mise en jeu individuelle depuis le domicile. Les options Saas peuvent contenir du code supplémentaire qui n'est ni ouvert ni auditable, pour les clients Ethereum. Le SaaS a également un effet préjudiciable sur la décentralisation du réseau. Selon la configuration, il se peut que vous ne contrôliez pas votre validateur - l'opérateur pourrait agir malhonnêtement en utilisant votre ETH. + +Les indicateurs sont listés ci-dessous pour signaler les forces ou faiblesses notables d'un fournisseur SaaS répertorié. Utilisez cette section comme référence pour définir ces indicateurs pendant que vous choisissez un pool à rejoindre. + + + +## Explorer les fournisseurs de services de mise en jeu {#saas-providers} + +Vous trouverez ci-dessous quelques fournisseurs SaaS disponibles. Utilisez les indicateurs ci-dessus pour vous guider à travers les outils ci-dessous + + + +### Fournisseurs SaaS + + + +Veuillez noter l'importance de choisir un service qui prend au sérieux [la diversité des clients](/developers/docs/nodes-and-clients/client-diversity/) , car elle améliore la sécurité du réseau et limite vos risques. Les services prouvant que l'utilisation d'un client majoritaire est limitée sont indiqués avec "diversité des clients d'exécution" et "diversité des clients de consensus." + +### Générateurs de clés + + + +Avez-vous une suggestion concernant un fournisseur de mise en jeu en tant que service que nous avons manqué ? Consultez notre [politique de liste de produits](/contributing/adding-staking-products/) pour voir s'il conviendrait, et le soumettre à examen. + +## Questions fréquemment posées {#faq} + + +Les dispositions varient d'un fournisseur à l'autre, mais en général, vous serez guidé à travers la configuration de toutes les clés de signature dont vous avez besoin (un par 32 ETH), afin de les télécharger à votre fournisseur et lui permettre de les valider en votre nom. Les clés de signature seules ne donnent aucune possibilité de retirer, de transférer ou de dépenser vos fonds. Cependant, elles donnent la possibilité de voter pour le consensus, ce qui, si ce n'est pas fait correctement, peut entraîner des pénalités de mise hors ligne ou de délestage. + + + +Oui. Chaque compte est composé à la fois de clés de signature BLS (Boneh-Lynn-Shachamet) et de clés de retrait BLS. Pour qu'un validateur puisse attester de l'état de la chaîne, participer à des comités de synchronisation et proposer des blocs, les clés de signature doivent être facilement accessibles par un client validateur. Celles-ci doivent être connectées à Internet sous une forme ou une autre, et sont donc par nature considérées comme des clés « chaudes ». Ceci est une exigence pour que votre validateur puisse attester. Par conséquent les clés utilisées pour transférer ou retirer des fonds sont séparées pour des raisons de sécurité. + +Les clés de retrait BLS sont utilisées pour signer un message unique qui indique à quel compte de couche d'exécution les récompenses de mise en jeu de compte et les fonds sortis doivent être envoyés. Une fois ce message diffusé, les clés de retrait BLS ne sont plus nécessaires. Au lieu de cela, le contrôle des fonds retirés est délégué de façon permanente à l'adresse que vous avez fournie. Cela vous permet de définir une adresse de retrait sécurisée via votre propre portefeuille de stockage à froid, minimisant le risque pour les fonds de votre validateur, même si quelqu'un d'autre contrôle les clés de signature de votre validateur. + +La mise à jour des identifiants de retrait est une étape nécessaire pour activer les retraits\*. Ce processus consiste à générer les clés de retrait en utilisant votre phrase de récupération mnémotechnique. + +Assurez-vous que vous que cette phrase de récupération soit sauvegardée en toute sécurité ou vous ne pourrez pas générer vos clés de retrait le moment venu. + +Les stakers qui ont fourni une adresse de retrait avec le dépôt initial n'ont pas besoin de la définir. Consultez votre fournisseur SaaS pour obtenir une assistance sur la façon de préparer votre validateur. + + + +Les retraits de prises ont été mis en œuvre lors de la mise à niveau de Shanghai/Capella en avril 2023. Après cela, les personnes qui misent doivent fournir une adresse de retrait (si elle n'est pas fournie avec le dépôt initial) et les paiements de récompense commenceront automatiquement à être distribués de façon périodique à intervalles de quelques jours. + +Les validateurs peuvent également se retirer entièrement en tant que validateur, ce qui débloquera leur solde ETH restant pour le retrait. Les comptes qui ont fourni une adresse de retrait d’exécution et terminé le processus de sortie recevront tout leur solde à l’adresse de retrait fournie lors du prochain balayage du validateur. + +En savoir plus sur les retraits de mise en jeu + + + +En utilisant un fournisseur SaaS, vous confiez l'exploitation de votre nœud à quelqu'un d'autre. Cela s'accompagne du risque de mauvaise performance du nœud, qui n'est pas sous votre contrôle. Dans le cas où votre validateur est banni, votre solde de validateur sera pénalisé et supprimé de force du groupe de validateurs. + +Une fois le processus de coupure ou de sortie terminé, ces fonds seront transférés à l'adresse de retrait assignée au validateur. Cela nécessite de fournir une adresse de retrait à activer. Il se peut que l'adresse de retrait ait été fournie sur dépôt initial. Sinon, les clés de retrait du validateur devront être utilisées pour signer un message indiquant une adresse de retrait. Si aucune adresse de retrait n'a été fournie, les fonds resteront verrouillés jusqu'à ce qu'ils soient fournis. + +Communiquez avec un fournisseur individuel de SaaS pour obtenir davantage de détails sur n'importe quelles garanties ou options d'assurance ainsi que des instructions sur la façon de fournir une adresse de retrait. Si vous préférez contrôler complètement la configuration de votre validateur, apprenez-en plus sur la façon de miser votre ETH de manière individuelle. + + +## Complément d'information {#further-reading} + +- [L'Annuaire de la mise en jeu sur Ethereum.](https://www.staking.directory/) - _Eridian and Spacesider_ +- [Helping Client Diversity](https://www.attestant.io/posts/evaluating-staking-services/) - _Jim McDonald 2020_ diff --git a/public/content/translations/fr/staking/solo/index.md b/public/content/translations/fr/staking/solo/index.md new file mode 100644 index 00000000000..1e0eb119e2a --- /dev/null +++ b/public/content/translations/fr/staking/solo/index.md @@ -0,0 +1,204 @@ +--- +title: Misez votre ETH de manière individuelle +description: Un aperçu de la façon de commencer à miser votre ETH de manière individuelle +lang: fr +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-solo.png +alt: Leslie le rhinocéros sur sa puce d'ordinateur. +sidebarDepth: 2 +summaryPoints: + - Recevoir directement du protocole un maximum de récompenses pour le maintien de votre validateur en bon état de fonctionnement et en ligne + - Faites fonctionner votre propre matériel et contribuez ainsi à la sécurité et la décentralisation du réseau Ethereum + - Supprimez le tiers de confiance et gardez en permanence le contrôle sur vos fonds +--- + +## Qu'est-ce que la mise en jeu individuelle ? {#what-is-solo-staking} + +La mise en jeu individuelle consiste à [faire fonctionner un noeud Ethereum](/run-a-node/) connecté à Internet et à déposer 32 ETH pour activer un [validateur](#faq), vous donnant la possibilité de participer directement au consensus du réseau. + +**Le staking individuel augmente la décentralisation du réseau Ethereum**, rendant Ethereum plus résistant à la censure et robuste contre les attaques. D'autres méthodes de mises en jeu peuvent ne pas aider le réseau de la même manière. La mise en jeu individuelle est la meilleure option de staking pour sécuriser Ethereum. + +Un nœud Ethereum est constitué à la fois d'un client de couche d'exécution (EL) et d'un client de consensus (CL). Ces clients sont des logiciels qui se coordonnent, avec un ensemble valide de clés de signature, pour vérifier les transactions et les blocs, attester de la tête de la chaîne, agréger les attestations et proposer des blocs. + +Les validateurs individuels sont responsables du fonctionnement du matériel nécessaire à l'exécution de ces clients. Pour cela, il est fortement recommandé d'utiliser une machine dédiée que vous opérez depuis chez vous - c'est extrêmement bénéfique pour la santé du réseau. + +Un validateur individuel reçoit des récompenses directement du protocole pour le maintien de son validateur en bon état de fonctionnement et en ligne. + +## Pourquoi miser de manière individuelle ? {#why-stake-solo} + +La mise en jeu individuelle demande plus de responsabilités, mais vous donne un contrôle maximal sur vos fonds et votre configuration de mise en jeu. + + + + + + + +## Considérations avant de miser de manière individuelle {#considerations-before-staking-solo} + +Bien que nous souhaitions que la mise en jeu individuelle soit accessible et sans risque pour tout le monde, la réalité est différente. Diverses considérations pratiques et sérieuses sont à garder à l'esprit avant de choisir de miser vos ETH de manière individuelle. + + + +Lorsque vous opérerez votre propre nœud, vous devrez passer du temps à apprendre à utiliser le logiciel que vous avez choisi. Cela implique de lire la documentation adéquate et d'être connecté aux canaux de communication de ses équipes de développeurs. + +Mieux vous comprendrez le logiciel que vous exécutez et comment la preuve d'enjeu fonctionne, moins ce sera risqué pour vous, et plus il vous sera facile de résoudre toute sorte de problèmes qui peuvent survenir en tant qu'opérateur de nœud. + + + +La configuration des nœuds nécessite un niveau d'aisance raisonnable dans le travail avec des ordinateurs, bien que de nouveaux outils apparaissent au fil du temps pour rendre cela plus facile. Comprendre l'interface de ligne commande est utile, mais n'est plus strictement nécessaire. + +Il faut également faire un petit peu de configuration matérielle et posséder une certaine compréhension des spécifications minimales recommandées. + + + +Tout comme la façon dont les clés privées sécurisent votre adresse Ethereum, vous devrez générer des clés spécifiques pour votre validateur. Vous devez comprendre comment conserver toutes vos phrases de récupération ou vos clés privées en sécurité.{' '} + +Sécurité d'Ethereum et prévention des escroqueries + + + +Le matériel tombe parfois en panne, tout comme les connexions réseau, et les logiciels client ont parfois besoin d'être mis à jour. La maintenance des nœuds est inévitable et nécessitera occasionnellement votre attention. Il est préférable de se tenir au courant de toutes les mises à niveau du réseau prévues, ou d'autres mises à jour critiques des logiciels client. + + + +Vos récompenses sont proportionnelles au temps passé par votre validateur en ligne et au fait qu'il atteste correctement. Tout temps passé hors ligne s'accompagne de pénalités proportionnelles au nombre de validateurs qui se trouvent hors ligne au même moment, mais ne donne pas lieu à des sanctions de délestage (slashing). La bande passante est également un facteur important, car les récompenses sont réduites pour les attestations qui ne sont pas reçues à temps. Les exigences varient, mais un minimum de 10 Mbit/s est recommandé (débits descendant et montant). + + + +Les sanctions de délestage (slashing) diffèrent des pénalités d'inactivité (applicables si un validateur est hors ligne). Ce sont des pénalités bien plus graves, réservées aux délits ayant un caractère malveillant. Exécuter un client minoritaire en ayant vos clés chargées sur un seul appareil à la fois permet de minimiser le risque de délestage. Cela étant dit, toute personne plaçant des ETH doit être consciente du risque de délestage. + +Plus de détails sur le slashing et le cycle de vie du validateur + + + + + +## Fonctionnement {#how-it-works} + + + +Lorsque vous êtes actif, vous gagnerez des récompenses ETH, qui seront déposées périodiquement dans votre adresse de retrait. + +Si vous le désirez, vous pouvez vous retirer en tant que validateur, ce qui élimine l'obligation d'être en ligne et met fin à toute autre récompense. Votre solde restant sera alors retiré à l'adresse de retrait que vous avez désignée lors de la configuration. + +[En savoir plus sur les retraits de mise en jeu](/staking/withdrawals/) + +## Commencer avec la plateforme de lancement de la mise en jeu {#get-started-on-the-staking-launchpad} + +La plateforme de lancement de la mise en jeu est une application open source qui vous aidera à devenir un validateur. Elle vous guidera dans le choix de vos clients, génèrera vos clés et déposera vos ETH dans le contrat de dépôt des mises en jeu. Une liste de vérification est fournie pour vous assurer que vous avez fait le tour de la question pour installer votre validateur en toute sécurité. + + + +## Éléments à prendre en compte avec les outils de configuration de nœud et de client {#node-tool-considerations} + +Un nombre croissant d'outils et de services vous aident à miser vos ETH, mais chacun comporte des risques et des avantages différents. + +Les indicateurs d'attributs sont utilisés ci-dessous pour signaler des forces ou faiblesses notables d'un outil de mise en jeu répertorié. Utilisez cette section comme référence pendant que vous choisissez les outils qui vous aideront dans votre parcours de mise en jeu. + + + +## Explorer les outils de configuration de noeud et de client {#node-and-client-tools} + +Il existe une variété d'options disponibles pour vous aider dans votre configuration. Utilisez les indicateurs ci-dessus pour vous guider à travers les outils ci-dessous. + + + +### Outils de nœud + + + +Veuillez noter l'importance de choisir un [client minoritaire](/developers/docs/nodes-and-clients/client-diversity/) , car cela améliore la sécurité du réseau et limite vos risques. Les outils qui permettent de configurer un client minoritaire sont désignés comme "multi-client." + +### Générateurs de clés + +Ces outils peuvent être utilisés en alternative à [l'interface de dépôt de mise en jeu](https://github.com/ethereum/staking-deposit-cli/) pour vous aider à générer vos clés. + + + +Vous souhaitez suggérer un outil de mise en jeu que nous avons manqué ? Consultez notre [politique de liste de produits](/contributing/adding-staking-products/) pour voir s'il conviendrait, et le soumettre à examen. + +## Explorer les guides de mise en jeu individuelle {#staking-guides} + + + +## Questions fréquemment posées {#faq} + +Voici quelques-unes des questions les plus fréquentes relatives à la mise en jeu qui valent la peine d'être connues. + + + +Un validateur est une entité virtuelle existant sur Ethereum et participant au consensus du protocole Ethereum. Les validateurs sont représentés par un solde, une clé publique et d'autres propriétés. Un client de validateur est le logiciel qui agit au nom du validateur en détenant et en utilisant sa clé privée. Un même client peut contenir plusieurs paires de clés, contrôlant de nombreux validateurs. + + + + +Chaque paire de clés associée à un validateur nécessite exactement 32 ETH pour être activée. Déposer plus d'ETH sur un même ensemble de clés n'augmente pas le potentiel de récompense, car chaque validateur est limité à un solde effectif de 32 ETH. Cela signifie que la mise en jeu se fait par tranches de 32 ETH, chacune avec son propre jeu de clés et son propre solde. + +Ne déposez pas plus de 32 ETH pour un seul validateur. Cela n'augmentera pas vos récompenses. Si une adresse de retrait a été définie pour le validateur, Les fonds excédentaires de 32 ETH seront automatiquement retirés à cette adresse lors du prochain balayage de validateur. + +Si la mise en jeu individuelle vous semble trop exigeante, envisagez d'utiliser un fournisseur de mise en jeu en tant que service, ou si vous possédez moins de 32 ETH, consultez les groupes d'enjeu. + + + +Se déconnecter pendant que le réseau se finalise correctement n'entraînera PAS de délestage. De petites pénalités d'inactivité sont encourues si votre validateur n'est pas disponible pour attester pendant une période donnée (d'une durée de 6,4 minutes chacune), mais cela reste très différent du délestage. Ces pénalités sont légèrement inférieures à la récompense que vous auriez obtenue si le validateur avait été disponible pour attester, et les pertes peuvent être récupérées avec un temps de remise en ligne à peu près équivalent. + +Notez que les pénalités d'inactivité sont proportionnelles au nombre de validateurs se trouvant hors ligne en même temps. Dans les cas où une grande partie du réseau est hors ligne en même temps, les pénalités pour chacun de ces validateurs seront plus importantes que lorsqu'un seul validateur est indisponible. + +Dans des cas extrêmes, si le réseau cesse de se finaliser parce que plus d'un tiers des valideurs sont hors ligne, ces utilisateurs subiront ce que l'on appelle une fuite d'inactivité quadratique, qui consiste en une fuite exponentielle d'ETH à partir de comptes de valideurs hors ligne. Cela permet au réseau de s'auto-régénérer en brûlant les ETH des validateurs inactifs jusqu'à ce que leur solde atteigne 16 ETH, après quoi ils seront automatiquement éjectés du pool de validateurs. Les validateurs en ligne restants comprendront finalement, à nouveau, 2/3 du réseau, satisfaisant ainsi la supermajorité nécessaire pour finaliser à nouveau la chaîne. + + + +Pour faire court, cela ne peut jamais être totalement garanti, mais si vous êtes de bonne foi, que vous utilisez un client minoritaire et que vous ne conservez vos clés de signature que sur une seule machine à la fois, le risque de subir un délestage est quasiment nul. + +Seuls quelques moyens spécifiques peuvent aboutir à ce qu'un validateur soit délesté et éjecté du réseau. À l'heure où nous écrivons ces lignes, les délestages qui se sont produits sont exclusivement le produit de configurations matérielles redondantes où les clés de signature sont stockées sur deux machines distinctes à la fois. Cela peut entraîner par inadvertance un double vote de vos clés, ce qui constitue une faute sanctionnable. + +L'exécution d'un client supermajoritaire (tout client utilisé par plus de 2/3 du réseau) comporte également le risque d'un délestage dans le cas où ce client présente un bogue qui entraîne une fouche de la chaîne. Cela peut aboutir à une fourche défectueuse qui sera finalisée. Pour revenir à la chaîne voulue, il faudrait soumettre un vote circulaire en essayant d'annuler un bloc finalisé. Il s'agit également d'une infraction passible de sanctions et peut être évité simplement, en utilisant, à la place, un client minoritaire. + +Des bogues équivalents dans un client minoritaire ne seraient jamais finalisés et ne donneraient donc jamais lieu à un vote circulaire, et entraîneraient simplement des pénalités d'inactivité, et non un délestage. + + + + + +Les clients individuels peuvent varier légèrement en termes de performances et d'interface utilisateur, car ils sont tous développés par des équipes différentes utilisant des langages de programmation variés. Ceci étant dit, aucun d'entre eux n'est "le meilleur". Tous les clients de production sont d'excellents logiciels, qui exécutent tous les mêmes fonctions de base pour se synchroniser et interagir avec la blockchain. + +Puisque tous les clients de production fournissent les mêmes fonctionnalités de base, il est en fait très important que vous choisissiez un client minoritaire, c'est-à-dire tout client qui n'est actuellement PAS utilisé par une majorité de valideurs sur le réseau. Cela peut sembler paradoxal, mais le fait d'utiliser un client majoritaire ou supermajoritaire vous expose à un risque accru de délestage en cas de bogue dans ce client. Utiliser un client minoritaire limite considérablement ces risques. + +En savoir plus sur les raisons pour lesquelles la diversité des clients est essentielle + + + +Bien qu'un serveur privé virtuel (VPS) puisse être utilisé en remplacement du matériel domestique, l'accès physique et l'emplacement de votre client validateur ont leur importance. Les solutions centralisées dans le cloud, telles que Amazon Web Services ou Digital Ocean, offrent la commodité de ne pas avoir à obtenir et à faire fonctionner du matériel, au détriment de la centralisation du réseau. + +Plus il y a de clients validateurs fonctionnant sur une seule solution de stockage en cloud centralisée, plus cela devient dangereux pour ces utilisateurs. Tout événement qui mettrait ces fournisseurs hors ligne, qu'il s'agisse d'une attaque, d'une demande réglementaire ou d'une simple panne de courant ou d'Internet, entraînera la mise hors ligne simultanée de tous les clients de validation qui dépendent de ce serveur. + +Les pénalités hors ligne sont proportionnelles au nombre de personnes se trouvant hors ligne au même moment. L'utilisation d'un VPS augmente considérablement le risque de voir les pénalités hors ligne devenir plus sévères, et accroît votre risque de fuite quadratique ou de délestage dans le cas où la panne serait suffisamment importante. Pour minimiser vos propres risques et ceux encourus par le réseau, les utilisateurs sont fortement encouragés à se procurer et à exploiter leur propre matériel. + + + + +Les retraits de quelque nature que ce soit de la Chaîne Phare (Beacon Chain) exigent que les identifiants de retrait soient définis. + +Les nouvelles personnes plaçant des ETH définissent ceci au moment de la génération et du dépôt de clés. Les stakers existants qui n'ont pas déjà défini cela peuvent mettre à jour leurs clés pour supporter cette fonctionnalité. + +Une fois que les identifiants de retrait sont définis, les paiements de récompense (ETH cumulés par rapport aux 32 initiaux) seront distribués périodiquement à l'adresse de retrait automatiquement. + +Pour déverrouiller et recevoir la totalité de votre solde, vous devez également terminer le processus de sortie de votre validateur. + +En savoir plus sur les retraits de mise en jeu + + +## Complément d'information {#further-reading} + +- [L'Annuaire de la mise en jeu sur Ethereum.](https://www.staking.directory/) - _Eridian and Spacesider_ +- [Ethereum's Client Diversity Problem](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ +- [Helping Client Diversity](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ +- [Client diversity on Ethereum's consensus layer](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ +- [How To: Shop For Ethereum Validator Hardware](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ +- [Step by Step: How to join the Ethereum 2.0 Testnet](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _Butta_ +- [Eth2 Slashing Prevention Tips](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raul Jordan 2020_ diff --git a/public/content/translations/fr/staking/withdrawals/index.md b/public/content/translations/fr/staking/withdrawals/index.md new file mode 100644 index 00000000000..24fba7e83f5 --- /dev/null +++ b/public/content/translations/fr/staking/withdrawals/index.md @@ -0,0 +1,218 @@ +--- +title: Retraits de la mise en jeu +description: Page résumant ce que sont les retraits de staking, comment ils fonctionnent et ce que les stakers doivent faire pour obtenir leurs récompenses +lang: fr +template: staking +image: /staking/leslie-withdrawal.png +alt: Leslie le rhinocéros avec ses récompenses de staking +sidebarDepth: 2 +summaryPoints: + - La mise à niveau Shanghai/Capella a permis les retraits de staking sur Ethereum + - Les opérateurs validateurs doivent fournir une adresse de retrait pour l'activer + - Les récompenses sont automatiquement distribuées tous les deux ou trois jours + - Les validateurs qui quittent complètement le staking recevront leur solde restant +--- + + +Les retraits de staking ont été activés avec la mise à niveau Shanghai/Capella, qui a eu lieu le 12 avril 2023. Plus d'informations sur Shanghai/Capella + + +**Les retraits de staking** font référence aux transferts d'ETH depuis le compte d'un validateur sur la couche de consensus d'Ethereum (la chaîne phare) vers la couche d'exécution où ils peuvent être traités. + +**Les paiements des récompenses au dessus d'un solde** de 32 ETH seront automatiquement et régulièrement envoyés à une adresse de retrait liée à chaque validateur, une fois fourni par l’utilisateur. Les utilisateurs peuvent également **quitter le staking entièrement**, débloquer leur solde de validateur complet. + +## Récompenses de staking {#staking-rewards} + +Les paiements de récompenses sont traités automatiquement pour les comptes des validateurs actifs avec un solde effectif de 32 ETH maximum. + +Tout solde supérieur à 32 ETH gagné grâce aux récompenses ne contribue pas réellement au capital, ou à augmenter le poids de ce validateur sur le réseau, et se trouve donc automatiquement renvoyé après quelques jours lors du paiement des récompenses. À part fournir une adresse de retrait une seule fois, recevoir ces récompenses ne nécessite aucune action de la part de l'opérateur du nœud validateur. Tout cela est géré depuis la couche de consensus, donc aucun gaz (frais de transaction) n'est requis à aucune étape. + +### Comment sommes-nous arrivés là ? {#how-did-we-get-here} + +Au cours des dernières années, Ethereum a subi plusieurs mises à niveau de réseau en passant à un réseau sécurisé par ETH lui-même, plutôt que par un minage coûteux en énergie auparavant. Participer au consensus sur Ethereum est maintenant connu sous le nom de « staking », les participants ayant volontairement bloqué l'ETH, le mettant « en jeu » pour pouvoir participer au réseau. Les utilisateurs qui suivent les règles seront récompensés, tandis que les tentatives de triche peuvent être pénalisées. + +Depuis le lancement du contrat de dépôt en staking en novembre 2020, certains courageux pionniers d'Ethereum ont volontairement bloqué des fonds pour activer des comptes « validateurs », spéciaux qui ont le droit d'attester formellement et de proposer des blocs, en suivant les règles du réseau. + +Avant la mise à niveau de Shanghai/Capella, vous ne pouviez pas utiliser l'ETH déposé en staking. Mais désormais vous pouvez choisir de recevoir automatiquement vos récompenses dans un compte de votre choix, et vous pouvez également retirer vos ETH mis en jeu quand vous le souhaitez. + +### Comment puis-je me préparer ? {#how-do-i-prepare} + + + +### Informations importantes {#important-notices} + +Fournir une adresse de retrait est une étape requise pour tout compte de validateur avant d'être admissible à un retrait d'ETH sur son solde. + + + Chaque compte de validateur ne peut se voir attribué qu'une seule adresse de retrait. Une fois qu'une adresse est choisie et soumise à la couche de consensus, elle ne peut pas être annulée ou modifiée à nouveau. Vérifiez la propriété et l'exactitude de l'adresse fournie avant de la soumettre. + + +Le fait de ne pas fournir cette adresse ne pose aucun danger pour vos fonds pendant ce temps, à condition que votre phrase mnémonique/de récupération soit restée en sécurité hors-ligne, et n'ait été compromise d'aucune façon. Ne pas ajouter d’identifiants de retrait laissera simplement l’ETH verrouillé sur le compte du validateur tel qu'il était jusqu'à jusqu’à ce qu’une adresse de retrait soit fournie. + +## Quitter entièrement le staking {#exiting-staking-entirely} + +Fournir une adresse de retrait est nécessaire pour que _les fonds_ puissent être transférés sur un solde de compte de validateur. + +Les utilisateurs qui cherchent à quitter entièrement le staking et à retirer leur solde complet doivent également signer et diffuser un message de « sortie volontaire » avec des clés de validateur qui lanceront le processus de sortie de la mise en jeu. Ceci est exécuté avec votre client de validateur et soumis à votre nœud de consensus, et ne nécessite pas de gaz. + +Le processus d'un validateur sortant du staking prend un temps variable, en fonction du nombre d'autres individus sortant en même temps. Une fois terminé, ce compte ne sera plus responsable de l'exécution des tâches du réseau de validateur, ne sera plus admissible aux récompenses, et n'aura plus d'ETH « en jeu ». À ce moment, le compte sera marqué comme entièrement « retirable ». + +Une fois qu'un compte est marqué comme « retirable » et que les identifiants de retrait ont été fournis, un utilisateur n'a plus rien à faire d'autre qu'attendre. Les comptes sont automatiquement et continuellement balayés par les proposeurs de blocs pour les fonds sortis qui sont admissibles, et le solde de votre compte sera transféré en entier (également connu sous le nom de « retrait complet ») au cours du prochain balayage. + +## Quand les retraits de staking sont-ils activés ? {#when} + +Les retraits de staking sont disponibles ! La fonction de retrait a été activée dans le cadre de la mise à niveau Shanghai/Capella qui a eu lieu le 12 avril 2023. + +La mise à niveau Shanghai/Capella a permis de récupérer de l'Ether précédemment mis en jeu vers un compte Ethereum standard. Cela a fermé la boucle de la liquidité mise en jeu, et a fait avancer Ethereum sur son chemin de construction d'un écosystème durable, évolutif, sûr et décentralisé. + +- [En savoir plus sur l'histoire d'Ethereum](/history/) +- [En savoir plus sur la feuille de route d'Ethereum](/roadmap/) + +## Comment fonctionnent les paiements de retraits ? {#how-do-withdrawals-work} + +Le fait qu'un validateur donné soit éligible ou non pour un retrait est déterminé par l'état du compte du validateur lui-même. Aucune intervention de l'utilisateur n'est nécessaire à un moment donné pour déterminer si un compte doit faire l'objet d'un retrait ou non - l'ensemble du processus est effectué automatiquement par la couche de consensus en boucle continue. + +### Davantage qu'un apprenant visuel ? {#visual-learner} + +Consultez cette explication de Finematics sur les retraits de staking d'Ethereum : + + + +### « Balayage » du validateur {#validator-sweeping} + +Lorsqu'un validateur doit proposer le bloc suivant, il est tenu de constituer une file d'attente de retraits, pouvant aller jusqu'à 16 retraits éligibles. Pour ce faire, on commence par l'index 0 du validateur, on détermine s'il existe un retrait éligible pour ce compte selon les règles du protocole et on l'ajoute à la file d'attente si tel est le cas. Le validateur configuré pour proposer le bloc suivant reprendra là où le précédent s'est arrêté, progressant dans l'ordre indéfiniment. + + +Pensez à une horloge analogique. L'aiguille de l’horloge pointe vers l’heure, progresse dans une direction, ne saute pas d’heures, et finit par revenir au début après que le dernier nombre est atteint.

+Maintenant au lieu de 1 à 12, imaginez que l'horloge a 0 à N (le nombre total de comptes de validateur qui ont déjà été enregistrés sur la couche de consensus, plus de 500 000 en janvier 2023).

+L'aiguille de l’horloge pointe vers le prochain validateur qui doit être vérifié pour les retraits éligibles. Il commence à 0 et progresse tout autour sans sauter de compte. Lorsque le dernier validateur est atteint, le cycle reprend au début. +
+ +#### Vérification des retraits sur un compte {#checking-an-account-for-withdrawals} + +Lorsqu'un proposant passe en revue les validateurs pour d'éventuels retraits, chaque validateur vérifié est évalué en fonction d'une courte série de questions afin de déterminer si un retrait doit être déclenché et, le cas échéant, quel montant d'ETH doit être retiré. + +1. **Une adresse de retrait a-t-elle été fournie ? ** Si aucune adresse de retrait n'a été fournie, le compte est ignoré et aucun retrait n'est effectué. +2. **Le validateur est-il sorti et peut-il être retiré ? ** Si le validateur est complètement sorti et que nous avons atteint l'époque où son compte est considéré comme « pouvant être retiré », alors un retrait complet sera effectué. Le solde total restant sera alors transféré à l'adresse de retrait. +3. **Le solde effectif est-il plafonné à 32 ? ** Si le compte dispose d'identifiants de retrait, qu'il n'est pas entièrement clôturé et que des récompenses supérieures à 32 sont en attente, un retrait partiel sera effectué et ne transférera que les récompenses supérieures à 32 à l'adresse de retrait de l'utilisateur. + +Seules deux actions entreprises par les opérateurs de validateurs au cours du cycle de vie d'un validateur influencent directement ce flux : + +- Fournir des justificatifs de retrait pour permettre toute forme de retrait +- Sortir du réseau déclenchera un retrait complet + +### Sans gaz {#gas-free} + +Cette approche des retraits de staking évite d'obliger les stakers à soumettre manuellement une transaction demandant le retrait d'une quantité particulière d'ETH. Cela signifie qu'aucun **gaz (frais de transaction)** n'est requis, et les retraits ne concurrencent pas non plus l'espace de bloc existant de la couche d'exécution. + +### À quelle fréquence recevrai-je mes récompenses de mise en jeu ? {#how-soon} + +Un maximum de 16 retraits peut être traité en un seul bloc. À ce rythme, 115 200 retraits de validateurs peuvent être traités par jour (en supposant qu'il n'y ait pas de créneaux manqués). Comme indiqué ci-dessus, les validateurs n'ayant pas effectué de retraits éligibles seront ignorés, ce qui réduira le temps nécessaire pour terminer le balayage. + +En élargissant ce calcul, nous pouvons estimer le temps nécessaire pour traiter un nombre donné de retraits : + + + +| Nombre de retraits | Délai d'exécution | +| :----------------: | :---------------: | +| 400 000 | 3,5 jours | +| 500 000 | 4,3 jours | +| 600 000 | 5,2 jours | +| 700 000 | 6,1 jours | +| 800 000 | 7,0 jours | + + + +Comme vous pouvez le constater, ce processus ralentit au fur et à mesure que le nombre de validateurs augmente sur le réseau. Une augmentation des crénaux manqués pourrait ralentir proportionnellement ce phénomène, mais cela représente généralement le côté le plus lent des résultats possibles. + +## Questions fréquemment posées {#faq} + + +Non, la procédure de fourniture des identifiants de retrait est une procédure unique, qui ne peut être modifiée une fois qu'elle a été soumise. + + + +En définissant l'adresse de retrait d'une couche d'exécution, les identifiants de retrait de ce validateur ont été modifiés de manière permanente. Cela signifie que les anciens identifiants ne fonctionneront plus et que les nouveaux identifiants renvoient à un compte de la couche d'exécution. + +Les adresses de retrait peuvent être soit un contrat intelligent (contrôlé par son code), soit un compte détenu en externe (EOA, contrôlé par sa clé privée). Actuellement, ces comptes n'ont aucun moyen de communiquer un message à la couche de consensus qui signalerait un changement d'identifiant du validateur, et l'ajout de cette fonctionnalité compliquerait inutilement le protocole. + +En guise d'alternative au changement d'adresse de retrait pour un validateur particulier, les utilisateurs peuvent choisir de définir un contrat intelligent comme adresse de retrait, qui pourrait gérer la rotation des clés, comme un coffre-fort. Les utilisateurs qui ont placé leurs fonds sur leur propre EOA peuvent effectuer une sortie complète pour retirer tous leurs fonds misés, puis effectuer une nouvelle mise en utilisant de nouveaux identifiants. + + + + +Si vous faites partie d'un groupe d'enjeux ou si vous détenez des jetons de mise en jeu, vous devez vous renseigner auprès de votre fournisseur pour savoir comment les retraits de mise en jeu sont gérés, car chaque service fonctionne différemment. + +En général, les utilisateurs sont censés être libres de récupérer leur ETH sous-jacent mis en jeu, ou de changer le fournisseur de mise en jeu qu'ils utilisent. Si un groupe particulier devient trop important, les fonds peuvent être retirés, rachetés, et remisés auprès d'un fournisseur plus petit. Ou, si vous avez accumulé suffisamment d'ETH, vous pouvez miser depuis chez vous. + + + + +Oui, à condition que votre validateur ait fourni une adresse de retrait. Elle doit être fournie une fois pour permettre tout retrait initialement, puis les paiements de récompenses seront automatiquement déclenchés tous les deux ou trois jours avec chaque balayage des validateurs. + + + + +Non, si votre validateur est toujours actif sur le réseau, un retrait total ne se fera pas automatiquement. Pour cela, il faut déclencher manuellement une sortie volontaire. + +Une fois qu'un validateur a terminé le processus de sortie, et en supposant que le compte possède des identifiants de retrait, le solde restant sera alors retiré lors du prochain balayage du validateur. + + + + +Les retraits sont conçus pour être effectués automatiquement, en transférant tous les ETH qui ne contribuent pas activement à la mise. Cela comprend le solde complet pour les comptes qui ont terminé de processus de sortie. + +Il n'est pas possible de demander manuellement le retrait de quantités spécifiques d'ETH. + + + + +Il est recommandé aux opérateurs de validateurs de consulter la page Staking Launchpad Withdrawals où vous trouverez plus de détails sur la façon de préparer votre validateur aux retraits, le calendrier des événements, et davantage d'informations sur le fonctionnement des retraits. + +Pour commencer en testant votre configuration sur un réseau de test, visitez la Platforme de lancement pour la mise en jeu sur le réseau de test Goerli. + + + + +Non. Une fois qu'un validateur est sorti et que son solde total a été retiré, tous les fonds supplémentaires déposés sur ce validateur seront automatiquement transférés à l'adresse de retrait lors du prochain balayage du validateur. Pour remettre en jeu l'ETH, un nouveau validateur doit être activé. + + +## Complément d'information {#further-reading} + +- [Retraits de la plateforme de lancement de la mise en jeu](https://launchpad.ethereum.org/withdrawals) +- [EIP-4895 : la chaîne phare signale les retraits comme des opérations](https://eips.ethereum.org/EIPS/eip-4895) +- [Ethereum Cat Herders - Shanghai](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) +- [PEEPanEIP #94 : Retrait de l'ETH misé (Testing) avec Potuz & Hsiao-Wei Wang](https://www.youtube.com/watch?v=G8UstwmGtyE) +- [PEEPanEIP#68 : EIP-4895 : Retraits de la chaîne de balises en tant qu'opérations avec Alex Stokes](https://www.youtube.com/watch?v=CcL9RJBljUs) +- [Comprendre le Solde Effectif du Validateur](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/fr/web3/index.md b/public/content/translations/fr/web3/index.md similarity index 100% rename from src/content/translations/fr/web3/index.md rename to public/content/translations/fr/web3/index.md diff --git a/src/content/translations/fr/whitepaper/index.md b/public/content/translations/fr/whitepaper/index.md similarity index 100% rename from src/content/translations/fr/whitepaper/index.md rename to public/content/translations/fr/whitepaper/index.md diff --git a/src/content/translations/fr/zero-knowledge-proofs/index.md b/public/content/translations/fr/zero-knowledge-proofs/index.md similarity index 100% rename from src/content/translations/fr/zero-knowledge-proofs/index.md rename to public/content/translations/fr/zero-knowledge-proofs/index.md diff --git a/src/content/translations/hi/bridges/index.md b/public/content/translations/hi/bridges/index.md similarity index 100% rename from src/content/translations/hi/bridges/index.md rename to public/content/translations/hi/bridges/index.md diff --git a/public/content/translations/hi/dao/index.md b/public/content/translations/hi/dao/index.md new file mode 100644 index 00000000000..d97ba9bbd41 --- /dev/null +++ b/public/content/translations/hi/dao/index.md @@ -0,0 +1,165 @@ +--- +title: विकेन्द्रीकृत स्वायत्त संगठन (DAO) +description: इथेरियम पर DAO का अवलोकन +lang: hi +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: किसी प्रस्ताव पर मतदान करने वाले DAO का प्रतिनिधित्व। +summaryPoint1: केंद्रीकृत नेतृत्व के बिना सदस्य के स्वामित्व वाले समुदाय। +summaryPoint2: इंटरनेट पर अजनबियों के साथ सहयोग करने का एक सुरक्षित तरीका। +summaryPoint3: किसी विशिष्ट उद्देश्य के लिए धन जमा करने के लिए एक सुरक्षित स्थान। +--- + +## DAO क्या होते हैं? {#what-are-daos} + +DAO एक सामूहिक स्वामित्व वाला, ब्लॉकचेन-शासित संगठन है जो एक साझा मिशन की दिशा में काम करता है। + +DAO हमें धन या संचालन के प्रबंधन के लिए किसी परोपकारी नेता पर भरोसा किए बिना दुनिया भर में समान विचारधारा वाले लोगों के साथ काम करने की अनुमति देते हैं। इनमें ऐसा कोई CEO नहीं होता जो मनमर्जी से पैसा खर्च कर सके या CFO जो बही-खातों में हेर-फेर कर सके। इसके बजाय, कोड में अंतर्निहित ब्लॉकचेन-आधारित नियम परिभाषित करते हैं कि संगठन कैसे काम करता है और धन कैसे खर्च किया जाता है। + +उनके पास बिल्ट-इन तिजोरी होते हैं जिन्हें समूह की स्वीकृति के बिना किसी को भी एक्सेस करने का अधिकार नहीं है। निर्णय प्रस्तावों और मतदान द्वारा शासित होते हैं ताकि यह सुनिश्चित किया जा सके कि संगठन में सभी के पास एक आवाज हो, और सब कुछ पारदर्शी रूप से ऑन-चेन होता है। + +## हमें DAO की जरूरत क्यों है? {#why-dao} + +किसी ऐसे व्यक्ति के साथ एक संगठन शुरू करना जिसमें फंडिंग और पैसा शामिल हो, उन लोगों पर बहुत अधिक विश्वास की आवश्यकता होती है जिनके साथ आप काम कर रहे हैं। लेकिन किसी ऐसे व्यक्ति पर भरोसा करना मुश्किल है जिसके साथ आपका परिचय केवल इंटरनेट द्वारा हुआ हो। DAO के साथ आपको समूह में किसी और पर भरोसा करने की आवश्यकता नहीं है, केवल DAO का कोड, जो कि 100% पारदर्शी और किसी के द्वारा सत्यापित किया जा सकता है। + +यह वैश्विक सहयोग और समन्वय के लिए कई नए अवसर खोलता है। + +### एक तुलना {#dao-comparison} + +| डीएओ | एक पारंपरिक संगठन | +| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | +| आम तौर पर फ्लैट, और पूरी तरह से लोकतांत्रिक। | आमतौर पर पदानुक्रमित। | +| किसी भी परिवर्तन को लागू करने के लिए सदस्यों द्वारा मतदान आवश्यक है। | संरचना के आधार पर, एक एकल पार्टी से परिवर्तन की मांग की जा सकती है, या मतदान की पेशकश की जा सकती है। | +| वोटों का मिलान किया जाता है, और परिणाम बिना किसी विश्वसनीय मध्यस्थ के स्वचालित रूप से लागू किया जाता है। | यदि मतदान की अनुमति है, तो वोटों की आंतरिक रूप से गणना की जाती है, और मतदान के परिणाम को मैन्युअल रूप से नियंत्रित किया जाता है। | +| दी जाने वाली सेवाओं को विकेन्द्रीकृत तरीके से स्वचालित रूप से नियंत्रित किया जाता है (उदाहरण के लिए परोपकारी धन का वितरण)। | मानव संचालन की आवश्यकता है, या केंद्र द्वारा नियंत्रित स्वचालन, हेरफेर की संभावना है। | +| सभी गतिविधियां पारदर्शी और पूरी तरह सार्वजनिक हैं। | गतिविधि आम तौर पर निजी होती है, और जनता तक सीमित मात्रा मे होती है। | + +### DAO के उदाहरण {#dao-examples} + +इसे और अधिक समझने में मदद करने के लिए, यहां कुछ उदाहरण दिए गए हैं कि आप DAO का उपयोग कैसे कर सकते हैं: + +- दान – आप दुनिया में किसी से भी दान स्वीकार कर सकते हैं और वोट कर सकते हैं कि किन कारणों से फंड करना है। +- सामूहिक स्वामित्व – आप भौतिक या डिजिटल संपत्ति खरीद सकते हैं और सदस्य उनका उपयोग कैसे करें, इस पर मतदान कर सकते हैं। +- उद्यम और अनुदान – आप एक उद्यम निधि बना सकते हैं जो निवेश पूंजी को जमा करती है और उपक्रमों पर वोट देती है। चुकाए गए धन को बाद में DAO-सदस्यों के बीच पुनर्वितरित किया जा सकता है। + +## DAO कैसे काम करते हैं? {#how-daos-work} + +DAO का सहारा उसका स्मार्ट अनुबंध है, जो संगठन के नियमों को परिभाषित करता है और समूह के खजाने को होल्ड करता है। एक बार इथेरियम पर अनुबंध लाइव हो जाने पर, कोई भी वोट के अलावा नियमों को बदल नहीं सकता है। अगर कोई ऐसा कुछ करने की कोशिश करता है जो कोड में नियमों और तर्क से नहीं आता है, तो वह असफल हो जाएगा। और क्योंकि ट्रेजरी को स्मार्ट अनुबंध द्वारा भी परिभाषित किया जाता है, इसका मतलब है कि कोई भी समूह की मंजूरी के बिना पैसा खर्च नहीं कर सकता है। इसका मतलब यह है कि DAO को केंद्रीय प्राधिकरण की जरूरत नहीं है। इसके बजाय समूह सामूहिक रूप से निर्णय लेते है और वोट पास होने पर भुगतान स्वचालित रूप से अधिकृत होते हैं। + +यह संभव है क्योंकि इथेरियम पर लाइव होने के बाद स्मार्ट अनुबंध टैम्पर-प्रूफ होते हैं। आप लोगों के देखे बिना कोड (DAO नियम) को संपादित नहीं कर सकते क्योंकि सब कुछ सार्वजनिक होता है। + + + स्मार्ट अनुबंध के बारे में अधिक जानकारी + + +## इथेरियम और DAO {#ethereum-and-daos} + +इथेरियम कई कारणों से DAO के लिए एकदम सही आधार है: + +- इथेरियम की अपनी सर्वसम्मति नेटवर्क पर भरोसा करने के लिए संगठनों के लिए पर्याप्त रूप से वितरित और स्थापित की गई है। +- स्मार्ट अनुबंध कोड को एक बार लाइव होने के बाद संशोधित नहीं किया जा सकता, यहां तक कि इसके मालिक भी नहीं कर सकते। यह DAO को उन नियमों के अनुसार चलने की अनुमति देता है जिनके साथ इसे प्रोग्राम किया गया था। +- स्मार्ट अनुबंध धन भेज/प्राप्त कर सकते हैं। इसके बिना आपको समूह निधियों का प्रबंधन करने के लिए एक विश्वसनीय मध्यस्थ की आवश्यकता होगी। +- इथेरियम समुदाय प्रतिस्पर्धी की तुलना में अधिक सहयोगी साबित हुआ है, जिससे सर्वोत्तम प्रथाओं और समर्थन प्रणालियों को जल्दी से उभरने की अनुमति मिलती है। + +## DAO शासन {#dao-governance} + +DAO को संचालित करते समय कई बातों पर विचार किया जाता है, जैसे कि मतदान और प्रस्ताव कैसे काम करते हैं। + +### प्रतिनिधान {#governance-delegation} + +प्रतिनिधान लोकतंत्र के DAO संस्करण की तरह है। टोकन धारक उन उपयोगकर्ताओं को वोट देते हैं जो खुद को नामांकित करते हैं और प्रोटोकॉल को चलाने और सूचित रहने के लिए प्रतिबद्ध होते हैं। + +#### एक प्रसिद्ध उदाहरण {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) – ENS धारक अपने वोट समुदाय के सदस्यों को उनका प्रतिनिधित्व करने के लिए सौंप सकते हैं। + +### स्वचालित लेनदेन शासन {#governance-example} + +कई DAO में, यदि सदस्यों का एक कोरम सकारात्मक वोट करता है तो लेन-देन स्वचालित रूप से निष्पादित हो जाएगा। + +#### एक प्रसिद्ध उदाहरण {#governance-example} + +[Nouns](https://nouns.wtf) – Nouns DAO में, एक लेन-देन स्वचालित रूप से निष्पादित किया जाता है यदि वोटों का एक कोरम पूरा हो जाता है और बहुमत के वोट सकारात्मक होते हैं, जब तक कि यह संस्थापकों द्वारा वीटो नहीं किया जाता है। + +### मल्टीसिग शासन {#governance-example} + +जबकि DAO में हजारों वोटिंग सदस्य हो सकते हैं, फंड 5-20 सक्रिय सामुदायिक सदस्यों द्वारा साझा किए गए वॉलेट में रह सकते हैं, जो भरोसेमंद होते हैं और आमतौर पर डॉक्स किए जाते हैं (सार्वजनिक पहचान समुदाय के लिए जानी जाती है)। एक वोट के बाद, मल्टीसिग साइनर्स समुदाय की इच्छा को पूरा करते हैं। + +## DAO कानून {#dao-laws} + +1977 में व्योमिंग ने LLC का आविष्कार किया, जो उद्यमियों की सुरक्षा करता है और उनके दायित्व को सीमित करता है। हाल ही में, उन्होंने DAO कानून का बीड़ा उठाया है जो DAO के लिए कानूनी स्थिति स्थापित करता है। वर्तमान में व्योमिंग, वर्मोंट और वर्जिन द्वीप समूह में किसी न किसी रूप में DAO कानून हैं। + +### एक प्रसिद्ध उदाहरण {#law-example} + +[CityDAO](https://citydao.io) – CityDAO ने येलोस्टोन नेशनल पार्क के पास 40 एकड़ जमीन खरीदने के लिए व्योमिंग के DAO कानून का इस्तेमाल किया। + +## DAO की सदस्यता {#dao-membership} + +DAO सदस्यता के लिए अलग-अलग मॉडल हैं। सदस्यता यह निर्धारित कर सकती है कि मतदान कैसे काम करता है और DAO के अन्य प्रमुख भाग क्या है। + +### टोकन आधारित सदस्यता {#token-based-membership} + +आमतौर पर पूरी तरह से बिना अनुमति के और इस्तेमाल किए गए टोकन पर निर्भर करता है। अधिकतर इन गवर्नेंस टोकन का विकेंद्रीकृत एक्सचेंज पर बिना अनुमति के कारोबार किया जा सकता है। दूसरों को तरलता प्रदान करके या किसी अन्य 'काम का प्रमाण' प्रदान करके अर्जित किया जाना चाहिए। किसी भी तरह से, केवल टोकन धारण करने से मतदान तक पहुंच प्राप्त होती है। + +_आमतौर पर व्यापक विकेन्द्रीकृत प्रोटोकॉल और/या टोकन को स्वयं नियंत्रित करने के लिए उपयोग किया जाता है।_ + +#### एक प्रसिद्ध उदाहरण {#token-example} + +[MakerDAO](https://makerdao.com) – MakerDAO का टोकन MKR विकेन्द्रीकृत एक्सचेंजों पर व्यापक रूप से उपलब्ध है और कोई भी निर्माता प्रोटोकॉल के भविष्य पर मतदान शक्ति प्राप्त कर सकता है। + +### शेयर-आधारित सदस्यता {#share-based-membership} + +शेयर-आधारित DAO अधिक अनुमति वाले हैं, लेकिन फिर भी काफी खुले हैं। कोई भी संभावित सदस्य DAO में शामिल होने के लिए एक प्रस्ताव प्रस्तुत कर सकता है, आमतौर पर टोकन या काम के रूप में कुछ मूल्य की श्रद्धांजलि अर्पित करता है। शेयर प्रत्यक्ष मतदान शक्ति और स्वामित्व को दर्शाते हैं। सदस्य ट्रेजरी के अपने आनुपातिक हिस्से के साथ किसी भी समय बाहर निकल सकते हैं। + +_आम तौर पर अधिक घनिष्ठ, मानव-केंद्रित संगठनों जैसे दान, कार्यकर्ता सामूहिक, और निवेश क्लबों के लिए उपयोग किया जाता है। प्रोटोकॉल और टोकन को भी नियंत्रित कर सकते हैं।_ + +#### एक प्रसिद्ध उदाहरण {#share-example} + +[MolochDAO](http://molochdao.com/) – MolochDAO - इथेरियम परियोजनाओं के वित्तपोषण पर केंद्रित है। उन्हें सदस्यता के लिए एक प्रस्ताव की आवश्यकता होती है ताकि समूह यह आकलन कर सके कि क्या आपके पास संभावित अनुदानकर्ताओं के बारे में सूचित निर्णय लेने के लिए आवश्यक विशेषज्ञता और पूंजी है। आप खुले बाजार में केवल DAO तक पहुंच नहीं खरीद सकते। + +### प्रतिष्ठा-आधारित सदस्यता {#reputation-based-membership} + +DAO में, प्रतिष्ठा इस बात का प्रमाण है कि आपने कुछ काम किया है और मतदान शक्ति प्रदान करता है। टोकन या शेयर-आधारित सदस्यता के विपरीत, प्रतिष्ठा-आधारित DAO योगदानकर्ताओं के स्वामित्व को स्थानांतरित नहीं करते हैं। प्रतिष्ठा को खरीदा, स्थानांतरित या प्रत्यायोजित नहीं किया जा सकता है; DAO सदस्यों को भागीदारी के माध्यम से प्रतिष्ठा अर्जित करनी चाहिए। ऑन-चेन मतदान अनुमतिहीन है और संभावित सदस्य स्वतंत्र रूप से DAO में शामिल होने के लिए प्रस्ताव प्रस्तुत कर सकते हैं और अपने योगदान के बदले में पुरस्कार के रूप में प्रतिष्ठा और टोकन प्राप्त करने का अनुरोध कर सकते हैं। + +_आम तौर पर विकेन्द्रीकृत विकास और प्रोटोकॉल और dapps के शासन के लिए इस्तेमाल किया, लेकिन यह भी अच्छी तरह से दान, कार्यकर्ता सामूहिक, निवेश क्लब, आदि जैसे संगठनों के एक विविध सेट के लिए अनुकूल।_ + +#### एक प्रसिद्ध उदाहरण {#reputation-example} + +[DXdao](https://DXdao.eth.link) – 2019 के बाद से एक वैश्विक संप्रभु सामूहिक भवन और विकेंद्रीकृत प्रोटोकॉल और अनुप्रयोगों को नियंत्रित कर रहा है। यह धन के समन्वय और प्रबंधन के लिए प्रतिष्ठा-आधारित शासन और होलोग्राफिक आम सहमति का लाभ उठाता है, जिसका अर्थ है कि कोई भी अपने भविष्य को प्रभावित करने में अपना रास्ता नहीं खरीद सकता है। + +## DAO में शामिल हों / शुरू करें {#join-start-a-dao} + +### डीएओ में शामिल हों {#join-a-dao} + +- [इथेरियम समुदाय DAO](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [DAOHaus के DAO की सूची](https://app.daohaus.club/explore) +- [DAO की Tally.xyz सूची](https://www.tally.xyz) + +### DAO शुरू करें {#start-a-dao} + +- [DAOHaus के साथ एक DAO को बुलाओ](https://app.daohaus.club/summon) +- [Tally के साथ एक गवर्नर DAO शुरू करें](https://www.tally.xyz/add-a-dao) +- [Aragon-संचालित DAO बनाएं](https://aragon.org/product) +- [कॉलोनी शुरू करो](https://colony.io/) +- [DAOstack की होलोग्राफिक आम सहमति के साथ एक DAO बनाएं](https://alchemy.daostack.io/daos/create) + +## अग्रिम पठन {#further-reading} + +### DAO आलेख {#dao-articles} + +- [DAO क्या है?](https://aragon.org/dao) – [Aragon](https://aragon.org/) +- [DAO हैंडबुक](https://daohandbook.xyz) +- [DAO का घर](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [मेटागेम](https://wiki.metagame.wtf/) +- [DAO क्या है और इसका उपयोग किसके लिए होता है?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) +- [DAO-संचालित डिजिटल समुदाय कैसे शुरू करें](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) +- [DAO क्या है?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [कॉइनमार्केटकैप](https://coinmarketcap.com) +- [क्या है होलोग्राफिक सहमति?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) +- [DAO निगम नहीं हैं: जहां विटालिक द्वारा स्वायत्त संगठनों में विकेंद्रीकरण मायने रखता है](https://vitalik.ca/general/2022/09/20/daos.html) +- [DAO, DAC, DA और बहुत कुछ: एक अधूरी शब्दावली गाइड](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [इथेरियम ब्लॉग](https://blog.ethereum.org) + +### वीडियो {#videos} + +- [क्रिप्टो में DAO क्या है?](https://youtu.be/KHm0uUPqmVE) +- [क्या कोई DAO एक शहर बना सकता है?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/public/content/translations/hi/decentralized-identity/index.md b/public/content/translations/hi/decentralized-identity/index.md new file mode 100644 index 00000000000..5a02cf0e570 --- /dev/null +++ b/public/content/translations/hi/decentralized-identity/index.md @@ -0,0 +1,185 @@ +--- +title: डिसेंट्रलाइज आइडेंटिटी +description: विकेन्द्रीकृत पहचान क्या है, और यह महत्वपूर्ण क्यों है? +lang: hi +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: /eth-gif-cat.png +summaryPoint1: पारंपरिक पहचान प्रणालियों मे आपके पहचानकर्ताओं ने इन्हें जारी करने, रखरखाव रखने और नियंत्रण करने को केंद्रीयकृत कर दिया है। +summaryPoint2: विकेन्द्रीकृत पहचान केंद्रीकृत तृतीय पक्षों पर आश्रितता को हटा देती है। +summaryPoint3: क्रिप्टो को धन्यवाद, उपयोगकर्ताओं के पास अब पुनः अपने खुद के पहचानकर्ताओं और साक्ष्य के उपकरण है, जिन्हें वे स्वयं जारी कर सकते हैं, रख सकते हैं और नियंत्रित कर सकते हैं। +--- + +आज के समय में, आपकी पहचान आपके जीवन के प्रत्येक पहलू में महत्वपूर्ण है। ऑनलाइन सेवाओं का उपयोग करना, बैंक खाता खोलना, चुनाव में वोट करना, संपत्ति खरीदना, रोजगार सुरक्षित करना—इन सभी चीजों के लिए आपको अपनी पहचान साबित करनी होती है। + +हालांकि, पारंपरिक पहचान प्रबंधन प्रणालियाँ दीर्घकाल से केंद्रीय प्रतिमंडलों पर निर्भर रही हैं, जो आपके पहचानकर्ताओं और [साक्ष्यों](#what-are-attestations) को जारी, रखरखाव और नियंत्रित करते हैं। इसका मतलब है कि आप अपनी पहचान-संबंधित जानकारी को नियंत्रित नहीं कर सकते और ना हीं तय कर सकते कि कौन व्यक्तिगत पहचान सूचना (PII) तक पहुँच सकता है, और ये पार्टियाँ कितनी पहुँच रख सकती हैं। + +इन समस्याओं को हल करने के लिए, हमारे पास विकेन्द्रीकृत पहचान प्रणालियाँ है जो कि पब्लिक ब्लॉकचेन जैसे कि इथेरियम पर आधारित है। विकेन्द्रीकृत पहचान व्यक्तियों को अपनी पहचान से संबंधित जानकारी का प्रबंधन करने की अनुमति देती है। विकेन्द्रीकृत पहचान समाधानों के साथ, _आप_ सेवा प्रदाताओं या सरकार जैसी केंद्रीय प्राधिकृतियों पर निर्भरता के बिना पहचानकर्ताओं के पहचान संकेतक बना सकते हैं और साक्ष्यों का दावा और उन्हें रख सकते हैं। + +## पहचान क्या है? {#what-is-identity} + +पहचान एक व्यक्ति की आत्म-संवेदना को दर्शाती है, जिसे विशिष्ट विशेषताओं द्वारा परिभाषित किया जाता है। पहचान _व्यक्ति_ होने को संदर्भित करती है, अर्थात एक अलग मानव इकाई का होना। पहचान किसी संगठन या प्राधिकरण जैसी अन्य अमानव इकाइयों का भी संदर्भ हो सकती है। + +## पहचानकर्ता क्या हैं? {#what-are-identifiers} + +पहचानकर्ता एक जानकारी का टुकड़ा है जो विशेष पहचान या पहचानों की ओर इंगित करता है। सामान्य पहचानकर्ता में शामिल हैं: + +- नाम +- सामाजिक सुरक्षा संख्या/कर ID संख्या +- मोबाइल नंबर +- जन्म की तारीख और जन्म स्थान +- डिजिटल पहचान प्रमाणपत्र, जैसे कि ईमेल पते, प्रयोक्ता नाम, अवतार + +ये पारंपरिक पहचानकर्ताओं के उदाहरण हैं जो केंद्रीय संघटितताओं द्वारा जारी, रखे और नियंत्रित किए जाते हैं। अपने सरकार से अपने नाम को बदलने के लिए या फिर एक सोशल मीडिया प्लेटफ़ॉर्म से अपने हैंडल को बदलने के लिए आपको अनुमति लेने की आवश्यकता होगी। + +## साक्ष्य क्या होते हैं? {#what-are-attestations} + +साक्ष्य एकत्रित किया गया दावा होता है जिसमें एक एकाधिकरण द्वारा किसी दूसरे एकाधिकरण के बारे में कहा जाता है। यदि आप संयुक्त राज्य अमेरिका में रहते हैं, तो आपको वाहन विभाग (एक एकाधिकरण) द्वारा जारी की गई ड्राइवर की लाइसेंस यह प्रमाणित करती है कि आप (दूसरे एकाधिकरण) कानूनी रूप से गाड़ी चलाने की अनुमति प्राप्त करने के योग्य हैं। + +साक्ष्य पहचानकर्ताओं से भिन्न होते हैं। किसी साक्ष्य में एक विशिष्ट पहचान को संदर्भित करने के लिए पहचानकर्ताएँ _शामिल_ होती हैं और इस पहचान से संबंधित एक गुणवत्ता के बारे में दावा करती है। इस प्रकार, आपकी ड्राइवर के लाइसेंस में पहचानकर्ताएँ (नाम, जन्म तिथि, पता) होती हैं, लेकिन यह आपकी कानूनी रूप से गाड़ी चलाने का अधिकार होने की प्रमाणिका भी होती है। + +### विकेन्द्रीकृत पहचानकर्ताएँ क्या होती हैं? {#what-are-decentralized-identifiers} + +पारंपरिक पहचानकर्ताएँ जैसे कि आपका कानूनी नाम या ईमेल पता तीसरे पक्षों—सरकार और ईमेल प्रदाताओं पर निर्भर करती हैं। विकेन्द्रीकृत पहचानकर्ताएँ (DID) अलग होती हैं—उन्हें किसी भी केंद्रीय प्राधिकृतिकों द्वारा जारी, प्रबंधित या नियंत्रित नहीं किया जाता है। + +विकेन्द्रीकृत पहचानकर्ताएँ व्यक्तियों द्वारा जारी, रखी और नियंत्रित की जाती हैं। एक [इथेरियम खाता](/developers/docs/accounts/) किसी विकेंद्रीकृत पहचानकर्ता का एक उदाहरण है। आप जितने चाहें उतने खाते बना सकते हैं, किसी से भी अनुमति के बिना और किसी केंद्रीय पंजीकरण में उन्हें संग्रहित करने की आवश्यकता भी नहीं है। + +विकेन्द्रीकृत पहचानकर्ताओं को वितरित खाता बही (ब्लॉकचेन्स) या पीयर-टू-पीयर नेटवर्कों पर संग्रहित किया जाता है। इससे DID [वैश्विक रूप से अद्वितीय बनते हैं, उच्च उपलब्धता के साथ सुलझाया जा सकता है, और क्रिप्टोग्राफिक रूप से सत्यापित किया जा सकता है](https://w3c-ccg.github.io/did-primer/)। एक विकेन्द्रीकृत पहचानकर्ता को विभिन्न प्राधिकृतियों से जोड़ा जा सकता है, जिसमें लोग, संगठन या सरकारी संस्थान शामिल हो सकते हैं। + +## विकेन्द्रीकृत पहचानकर्ताओं को संभाव बनाने वाला क्या है? {#what-makes-decentralized-identifiers-possible} + +### १ सार्वजनिक कुंजी इन्फ्रास्ट्रक्चर (PKI) {#public-key-infrastructure} + +सार्वजनिक-कुंजी इन्फ्रास्ट्रक्चर (PKI) एक जानकारी सुरक्षा उपाय है, जो किसी इकाई के लिए एक [सार्वजनिक कुंजी](/glossary/#public-key) और [निजी कुंजी](/glossary/#private-key) उत्पन्न करता है। सार्वजनिक-कुंजी क्रिप्टोग्राफी को ब्लॉकचेन नेटवर्क में उपयोग किया जाता है, ताकि उपयोगकर्ता पहचानों की पुष्टि की जा सके और डिजिटल संपत्ति के स्वामित्व को साबित किया जा सके। + +कुछ विकेन्द्रीकृत पहचानकर्ताएँ, जैसे कि किसी इथेरियम खाता, में सार्वजनिक और निजी कुंजियाँ होती हैं। सार्वजनिक कुंजी खाते के नियंत्रक की पहचान करती है, जबकि निजी कुंजियाँ इस खाते के लिए संदेशों को हस्ताक्षर कर सकती हैं और उन्हें डिक्रिप्ट कर सकती हैं। PKI प्रमाण प्रदान करता है जो इकाइयों की पुष्टि करने और झूठी और नकली पहचानों का उपयोग रोकने के लिए [क्रिप्टोग्राफिक हस्ताक्षर](https://andersbrownworth.com/blockchain/public-private-keys/) का उपयोग करता है। + +### २ विकेन्द्रीकृत डेटास्टोर्स {#decentralized-datastores} + +ब्लॉकचेन एक सत्यापन योग्य डेटा रजिस्ट्री के रूप में काम करता है: किसी खुली, आत्मविश्वासहीन और विकेन्द्रीकृत जानकारी का संग्रहण। सार्वजनिक ब्लॉकचेन की मौजूदगी से केंद्रीकृत रजिस्ट्रियों में पहचानकर्ताओं को स्टोर करने की आवश्यकता समाप्त हो जाती है। + +यदि कोई किसी विकेन्द्रीकृत पहचानकर्ता की मान्यता की पुष्टि करना चाहता है, तो वे ब्लॉकचेन पर संबंधित सार्वजनिक कुंजी की जाँच कर सकते हैं। यह पारंपरिक पहचानकर्ताओं से अलग है जिसमे प्रमाणित करने के लिए तीसरे पक्षों की आवश्यकता होती है। + +## विकेन्द्रीकृत पहचानकर्ताएँ और साक्ष्य, विकेन्द्रीकृत पहचान को कैसे संभावित करते हैं? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} + +विकेन्द्रीकृत पहचान एक ऐसा विचार है, जिसमें पहचान संबंधित जानकारी को स्वयं नियंत्रित, निजी और पोर्टेबल होना चाहिए, जिसमें विकेन्द्रीकृत पहचानकर्ताएँ और साक्ष्य प्रमुख निर्माण ब्लॉक होते हैं। + +विकेंद्रीकृत पहचान के संदर्भ में, साक्ष्य (जिसे [सत्यापन करने योग्य क्रेडेंशियल](https://www.w3.org/TR/vc-data-model/) के रूप में भी जाना जाता है) जारीकर्ता द्वारा बनाये गए छेड़छाड़-प्रूफ, क्रिप्टोग्राफ़िक रूप से सत्यापन योग्य दावे हैं। प्रत्येक साक्ष्य या सत्यापित करने योग्य क्रेडेंशियल, जिसे एक इकाई (उदाहरण के लिए, एक संगठन) जारी करता है वो उनके DID ​​से जुड़ा होता है। + +क्योंकि DID ब्लॉकचेन पर संग्रहीत होते हैं, कोई भी इथेरियम पर जारीकर्ता के DID को क्रॉस-चेक करके साक्ष्य की वैधता की पुष्टि कर सकता है। अनिवार्य रूप से, इथेरियम ब्लॉकचेन एक वैश्विक निर्देशिका की तरह कार्य करता है जो निश्चित संस्थाओं से जुड़े DID के पुष्टिकरण को सक्षम बनाता है। + +विकेंद्रीकृत पहचानकर्ता ही वे कारण हैं जिनके कारण साक्ष्य स्व-नियंत्रित और पुष्टिकरण योग्य होते हैं। भले ही जारीकर्ता अब मौजूद नहीं है, फिर भी धारक के पास हमेशा साक्ष्य की उत्पत्ति और वैधता का प्रमाण रहता है। + +विकेंद्रीकृत पहचान में व्यक्तिगत जानकारी की गोपनीयता की रक्षा करना विकेंद्रीकृत पहचानकर्ता के लिए महत्वपूर्ण हैं। उदाहरण के लिए, यदि कोई व्यक्ति साक्ष्य (ड्राइवर का लाइसेंस) का प्रमाण प्रस्तुत करता है, तो सत्यापन करने वाले पक्ष को प्रमाण में जानकारी की वैधता की जांच करने की आवश्यकता नहीं होगी। इसके बजाय, प्रमाण वैध है या नहीं यह निर्धारित करने के लिए सत्यापनकर्ता को केवल साक्ष्य की प्रामाणिकता के क्रिप्टोग्राफिक गारंटी और जारी करने वाले संगठन की पहचान की आवश्यकता होती है। + +## विकेन्द्रीकृत पहचान में साक्ष्य के प्रकार {#types-of-attestations-in-decentralized-identity} + +इथेरियम-आधारित पहचान इकोसिस्टम में साक्ष्य के जानकारी को संग्रहीत और पुनर्प्राप्त करने का तरीका पारंपरिक पहचान प्रबंधन से अलग है। यहां विकेंद्रीकृत पहचान प्रणालियों में साक्ष्य जारी करने, भंडारण और पुष्टिकरण करने के विभिन्न तरीके दिए गए है: + +### ऑफ-चेन साक्ष्य {#off-chain-attestations} + +साक्ष्यों को ऑन-चेन संग्रहीत करने की एक चिंता यह है कि उनमें ऐसी जानकारी हो सकती है जिसे व्यक्ति गुप्त रखना चाहते हैं। इथेरियम ब्लॉकचेन की सार्वजनिक प्रकृति ऐसे सत्यापनों को संग्रहीत करना अनाकर्षक बनाती है। + +इसका समाधान यह है की साक्ष्य उपयोगकर्ता द्वारा ऑफ-चेन के एक डिजिटल वॉलेट में रखा जाये, जिसमें जारीकर्ता के ऑन-चेन DID द्वारा हस्ताक्षर हों। इन साक्ष्यों को [JSON वेब टोकन](https://en.wikipedia.org/wiki/JSON_Web_Token) के रूप में एन्कोड किया गया है और इसमें जारीकर्ता के डिजिटल हस्ताक्षर शामिल हैं—जो ऑफ-चेन दावों के आसान सत्यापन की अनुमति देता है। + +ऑफ-चेन सत्यापन को समझाने के लिए यहां एक काल्पनिक परिदृश्य दिया गया है: + +1. एक विश्वविद्यालय (जारीकर्ता) एक साक्ष्य (एक डिजिटल शैक्षिक प्रमाणपत्र) उत्पन्न करता है, अपनी कुंजियों से हस्ताक्षर करता है, और इसे बॉब (पहचान मालिक) को जारी करता है। + +2. बॉब एक नौकरी के लिए आवेदन करता है और एक नियोक्ता को अपनी शैक्षिक योग्यता साबित करना चाहता है, इसलिए वह अपने मोबाइल वॉलेट से साक्ष्य साझा करता है। कंपनी (सत्यापक) फिर जारीकर्ता की DID (अर्थात, इथेरियम पर इसकी सार्वजनिक कुंजी) की जाँच करके साक्ष्य की मान्यता की पुष्टि कर सकती है। + +### स्थायी पहुंच के साथ ऑफ-चेन साक्ष्य {#offchain-attestations-with-persistent-access} + +इस व्यवस्था के तहत प्रमाणिकरण को JSON फ़ाइलों में परिवर्तित किया जाता है और ऑफ-चेन (आदर्श रूप से एक [विकेन्द्रीकृत क्लाउड स्टोरेज](/developers/docs/storage/) प्लेटफ़ॉर्म पर, जैसे कि IPFS या Swarm) पर संग्रहीत किया जाता है। हालांकि, JSON फ़ाइल का [हैश](/glossary/#hash) ऑन-चेन संग्रहीत होता है और एक ऑन-चेन रजिस्ट्री के माध्यम से एक DID से लिंक किया जाता है। संबंधित DID साक्ष्य के जारीकर्ता या प्राप्तकर्ता में से किसी का भी हो सकता है। + +इस दृष्टिकोण से साक्ष्य को ब्लॉकचेन-आधारित स्थायिता प्राप्त होती है, जबकि दावों की जानकारी को एन्क्रिप्टेड और सत्यापन योग्य रखा जाता है। यह चयनात्मक प्रकटीकरण की भी अनुमति देता है क्योंकि निजी कुंजी का धारक जानकारी को डिक्रिप्ट कर सकता है। + +### ऑन-चेन साक्ष्य {#onchain-attestations} + +ऑन-चेन साक्ष्य इथेरियम ब्लॉकचेन पर [स्मार्ट अनुबंधों](/developers/docs/smart-contracts/) में रखे जाते हैं। स्मार्ट अनुबंध (रजिस्ट्री के रूप में कार्य करता है) किसी साक्ष्य को एक संबंधित ऑन-चेन विकेन्द्रीकृत पहचानकर्ता (एक सार्वजनिक कुंजी) से मैप करेगा। + +यहाँ एक उदाहरण है जो दिखाता है कि ऑन-चेन प्रमाणिकरण व्यावासिक रूप से कैसे काम कर सकते हैं: + +1. एक कंपनी (XYZ Corp) स्मार्ट अनुबंध का उपयोग करके स्वामित्व के हिस्से बेचने की योजना बना रही है, लेकिन केवल ऐसे खरीदार चाहती है जिन्होंने पृष्ठभूमि की जांच पूरी कर ली हो। + +2. XYZ Corp पृष्ठभूमि की जाँच करने वाली कंपनी को इथेरियम पर ऑन-चेन प्रमाणिकरण जारी करने की अनुमति दे सकती है। यह प्रमाणिकरण प्रमाणित करता है कि किसी व्यक्ति ने पृष्ठभूमि की जाँच बिना किसी व्यक्तिगत जानकारी को प्रकट किए पास की है। + +3. हिस्से बेचने वाला स्मार्ट अनुबंध स्क्रीन किए गए खरीदारों की पहचान के लिए रजिस्ट्री अनुबंध की जांच कर सकता है, जिससे स्मार्ट अनुबंध के लिए यह निर्धारित करना संभव हो जाता है कि किसे शेयर खरीदने की अनुमति है और किसे नहीं। + +### आत्मा-बंधित टोकन और पहचान {#soulbound} + +[आत्मा-बंधित टोकन](https://vitalik.ca/general/2022/01/26/soulbound.html) (अस्ठांतरित NFT) विशेष वॉलेट के लिए अद्वितीय जानकारी इकट्ठा करने के लिए प्रयुक्त किए जा सकते हैं। यह प्रभावी रूप से एक विशेष इथेरियम पते से बंधी एक अद्वितीय ऑन-चेन पहचान बनाता है जिसमें उपलब्धियों का प्रतिनिधित्व करने वाले टोकन शामिल हो सकते हैं (जैसे कि किसी विशेष ऑनलाइन पाठ्यक्रम को समाप्त करना या एक खेल में एक थ्रेशोल्ड स्कोर पास करना) या समुदाय में भागीदारी। + +## विकेन्द्रीकृत पहचान के लाभ {#benefits-of-decentralized-identity} + +1. विकेन्द्रीकृत पहचान व्यक्तिगत पहचान जानकारी को नियंत्रित करने में वृद्धि करती है। विकेन्द्रीकृत पहचानकर्ता और साक्ष्य केंद्रीय प्राधिकृत और तीसरे पक्ष की सेवाओं पर निर्भर नहीं होते हैं। + +2. विकेन्द्रीकृत पहचान समाधान उपयोगकर्ता की पहचान को सत्यापित करने और प्रबंधित करने के लिए विश्वासहीन, सीमारहित, और गोपनीयता संरक्षण विधि को सुगम बनाता है। + +3. विकेन्द्रीकृत पहचान ब्लॉकचेन प्रौद्योगिकी का उपयोग करती है, जो विभिन्न पक्षों के बीच विश्वास पैदा करती है और प्रमाणपत्र की मान्यता साबित करने के लिए क्रिप्टोग्राफिक गारंटी प्रदान करती है। + +4. विकेन्द्रीकृत पहचान, पहचान डेटा को पोर्टेबल बनाती है। उपयोगकर्ता प्रमाणपत्र और पहचानकर्ता को मोबाइल वॉलेट में स्टोर करते हैं और अपनी पसंद के किसी भी पक्ष के साथ साझा कर सकते हैं। विकेन्द्रीकृत पहचानकर्ता और प्रमाणपत्र, जारीकर्ता संगठन के डेटाबेस में लॉक नहीं हैं। + +5. विकेन्द्रीकृत पहचान उभरती हुई शून्य-ज्ञान प्रौद्योगिकियों के साथ अच्छी तरह काम करनी चाहिए जो व्यक्तियों को यह साबित करने में सक्षम करेगी कि वे किसी चीज़ के मालिक हैं या उन्होंने बिना यह बताए ऐसा कुछ किया है, जिससे उस चीज़ के बारे में पता चला। यह वोटिंग जैसे अनुप्रयोगों के लिए विश्वास और गोपनीयता को जोड़ने का एक शक्तिशाली तरीका बन सकता है। + +6. विकेन्द्रीकृत पहचान एंटी-सिबिल प्रक्रियाओं को तब पहचानने में सक्षम बनाती है जब कभी भी एक व्यक्ति किसी सिस्टम को गेम या स्पैम करने के लिए कई इंसान होने का नाटक कर रहा होता है। + +## विकेंद्रीकृत पहचान उपयोग-मामले {#decentralized-identity-use-cases} + +विकेंद्रीकृत आईडेंटिटी के अनेक प्रयोग हैं: + +### १ यूनिवर्सल लॉगिन {#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} + +बहुत सारी ऑनलाइन सेवाओं का उपयोग करने के लिए व्यक्तियों को साक्ष्य और क्रेडेंशियल प्रदान करना होता है, जैसे कि ड्राइविंग लाइसेंस या राष्ट्रीय पासपोर्ट। लेकिन यह दृष्टिकोण समस्यापूर्ण है क्योंकि निजी उपयोगकर्ता की जानकारी को संकट में डाला जा सकता है और सेवा प्रदाता प्रमाण की वास्तविकता की पुष्टि नहीं कर सकते। + +विकेंद्रीकृत पहचान, कंपनियों को पारंपरिक [Know-Your-Customer (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) प्रक्रियाओं को छोड़ने और सत्यापन योग्य प्रमाणों के माध्यम से उपयोगकर्ता की पहचान को प्रमाणित करने में सक्षम बनाती है। इससे पहचान प्रबंधन की लागत कम होती है और नकली दस्तावेज़ों का उपयोग रोका जाता है। + +### ३ मतदान और ऑनलाइन समुदाय {#voting-and-online-communities} + +ऑनलाइन मतदान और सोशल मीडिया, विकेंद्रीकृत पहचान के लिए दो नवीनतम अनुप्रयोग हैं। ऑनलाइन मतदान योजनाएं हेरफेर के प्रति संवेदनशील होती हैं, विशेष रूप से अगर भ्रष्ट अभिनेता वोट देने के लिए झूठी पहचान बनाते हैं। व्यक्तियों से ऑन-चेन प्रमाण प्रस्तुत करने के लिए कहने से ऑनलाइन वोटिंग प्रक्रियाओं की अखंडता में सुधार हो सकता है। + +विकेन्द्रीकृत पहचान नकली खातों से मुक्त ऑनलाइन समुदाय बनाने में मदद कर सकती है। उदाहरण स्वरूप, प्रत्येक उपयोगकर्ता को एक ऑन-चेन पहचान प्रणाली, जैसे कि इथेरियम नामक सेवा, का उपयोग करके अपनी पहचान सत्यापित करना होगा, जिससे बोट्स की संभावना कम हो जाती है। + +### 4. एंटी-सिबिल सुरक्षा {#sybil-protection} + +सिबिल हमलों से तात्पर्य है व्यक्तिगत मनुष्य एक सिस्टम को धोखा देकर यह सोचने में मजबूर करते हैं कि वे कई लोग हैं, ताकि उनका प्रभाव बढ़ सके। जो [अनुप्रेषण देने वाले अनुप्रयोग](https://gitcoin.co/grants/) [चतुर्भुजीय मतदान](https://www.radicalxchange.org/concepts/plural-voting/) का उपयोग करते हैं, वे इन सिबिल हमलों के प्रति संवेदनशील होते हैं क्योंकि जब अधिक व्यक्तियों ने इसके लिए मतदान किया, तो एक अनुदान का मूल्य बढ़ जाता है, जिससे प्रयोक्ताओं को अपने योगदान को कई पहचानों में विभाजित करने के लिए प्रोत्साहित किया जाता है। विकेंद्रीकृत पहचान अक्सर विशिष्ट निजी जानकारी प्रकट किए बिना ही प्रत्येक प्रतिभागी पर वास्तव में मानव होना साबित करने का बोझ बढ़ाकर इसे रोकने में मदद करती है। + +## विकेन्द्रीकृत पहचान का उपयोग करें {#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 क्या है? ब्लॉकचेन पर स्व-संप्रभु पहचान प्रबंधन](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _सैम टाउन_ +- [ब्लॉकचेन कैसे डिजिटल पहचान की समस्या को हल कर सकता है](https://time.com/6142810/proof-of-humanity/) — _एंड्रू आर. चाऊ_ +- [विकेन्द्रीकृत पहचान क्या है और आपको क्यों परवाह करनी चाहिए?](https://web3.hashnode.com/what-is-decentralized-identity) — _इमानुएल आवोसिका_ + +### वीडियो {#videos} + +- [विकेन्द्रीकृत पहचान (बोनस लाइवस्ट्रीम सत्र)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _एंड्रियास एंटोनोपुलस द्वारा विकेन्द्रीकृत पहचान पर एक श्रेष्ठ स्पष्टीकरण वीडियो_ +- [इथेरियम के साथ साइन इन और विकेन्द्रीकृत पहचान: Ceramic, IDX, React, और 3ID Connect के साथ](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _नाडर दाबित द्वारा एक उपयोगकर्ता की प्रोफ़ाइल बनाने, पढ़ने और अपडेट करने के लिए उनके इथेरियम वॉलेट का उपयोग करके पहचान प्रबंधन प्रणाली का निर्माण करने पर YouTube ट्यूटोरियल_ +- [BrightID - इथेरियम पर विकेन्द्रीकृत पहचान](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _बैंकलेस पॉडकास्ट एपिसोड जो BrightID की चर्चा करता है, एक इथेरियम के लिए विकेन्द्रीकृत पहचान समाधान है_ +- [ऑफ़ चेन इंटरनेट: विकेन्द्रीकृत पहचान & सत्यापन योग्य क्रेडेंशियल](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — ईथडेनवर 2022 प्रस्तुति, एविन मैकमलन द्वारा + +### समुदाय {#communities} + +- [ERC-725 गठबंधन GitHub पर](https://github.com/erc725alliance) — _इथेरियम ब्लॉकचेन पर पहचान प्रबंधन के लिए ERC725 मानक के समर्थक_ +- [SpruceID Discord सर्वर](https://discord.com/invite/Sf9tSFzrnt) — _उत्साहित और डेवलपर्स के लिए समुदाय, जो इथेरियम के साथ साइन इन पर काम कर रहे हैं_ +- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _एप्लिकेशन के लिए सत्यापनीय डेटा के लिए एक फ्रेमवर्क बनाने में योगदान देने वाले डेवलपर्स का एक समुदाय_ diff --git a/public/content/translations/hi/defi/index.md b/public/content/translations/hi/defi/index.md new file mode 100644 index 00000000000..25bef9d2b9d --- /dev/null +++ b/public/content/translations/hi/defi/index.md @@ -0,0 +1,352 @@ +--- +title: विकेन्द्रीकृत वित्त (DeFi) +description: इथेरियम पर DeFi का अवलोकन +lang: hi +template: use-cases +emoji: ":money_with_wings:" +image: /use-cases/defi.png +alt: lego ब्रिक्स से बना Eth लोगो। +sidebarDepth: 2 +summaryPoint1: मौजूदा वित्तीय प्रणाली का एक वैश्विक, खुला विकल्प। +summaryPoint2: उत्पाद जो आपको उधार लेने, बचत करने, निवेश करने, व्यापार करने और बहुत कुछ करने देते हैं। +summaryPoint3: ओपन-सोर्स तकनीक पर आधारित, जिससे कोई भी प्रोग्राम कर सकता है। +--- + +DeFi एक खुली और वैश्विक वित्तीय प्रणाली है जिसे इंटरनेट युग के लिए बनाया गया है - एक ऐसी प्रणाली का विकल्प जो अपारदर्शी है, दृढ़तापूर्वक नियंत्रित है, और दशकों पुरानी बुनियादी सुविधाओं और प्रक्रियाओं द्वारा एक साथ रखी गई है। यह आपको आपके पैसे पर नियंत्रण और दृश्यता प्रदान करता है। यह आपको वैश्विक बाजारों और आपकी स्थानीय मुद्रा या बैंकिंग विकल्पों के विकल्प प्रदान करता है। DeFi उत्पाद इंटरनेट कनेक्शन वाले किसी भी व्यक्ति के लिए वित्तीय सेवाएं खोलते हैं और उनका स्वामित्व और रखरखाव बड़े पैमाने पर उनके उपयोगकर्ताओं द्वारा किया जाता है। अब तक अरबों डॉलर मूल्य की क्रिप्टो DeFi एप्लिकेशन के माध्यम से प्रवाहित हुई है और यह आंकड़े हर दिन बढ़ रहे हैं। + +## DeFi क्या है? {#what-is-defi} + +DeFi वित्तीय उत्पादों और सेवाओं के लिए एक सामूहिक शब्द है जो इथेरियम का उपयोग करने वाले किसी भी व्यक्ति के लिए पहुंच योग्य है – इंटरनेट कनेक्शन वाला कोई भी व्यक्ति। DeFi के साथ, बाजार हमेशा खुले रहते हैं और कोई केंद्रीकृत प्राधिकरण नहीं होता है जो भुगतान को रोक सकता है या आपको किसी भी चीज़ तक पहुंच से वंचित कर सकता है। सेवाएं जो पहले धीमी थीं और मानवीय त्रुटि के जोखिम में थीं, अब स्वचालित और सुरक्षित हैं क्योंकि उन्हें कोड द्वारा नियंत्रित किया जाता है जिसका कोई भी निरीक्षण कर सकता है और जांच कर सकता है। + +वहाँ एक तेजी से बढ़ती क्रिप्टो अर्थव्यवस्था है, जहाँ आप उधार दे सकते हैं, उधार ले सकते हैं, लंबी/छोटी, ब्याज कमा सकते हैं, और बहुत कुछ कर सकते हैं। क्रिप्टो-प्रेमी अर्जेंटीनावासियों ने बढ़ती मुद्रास्फीति से बचने के लिए DeFi का उपयोग किया है। कंपनियों ने अपने कर्मचारियों को उनके वेतन का वास्तविक समय में प्रसारण शुरू कर दिया है। कुछ लोगों ने तो बिना किसी व्यक्तिगत पहचान के ही लाखों डॉलर का कर्ज निकाल लिया और चुका दिया। + + + +## DeFi बनाम पारंपरिक वित्त {#defi-vs-tradfi} + +DeFi की क्षमता को देखने का एक सबसे अच्छा तरीका आज की समस्याओं को समझना है। + +- कुछ लोगों को बैंक खाता खोलने या वित्तीय सेवाओं का उपयोग करने की अनुमति नहीं दी जाती है। +- वित्तीय सेवाओं तक पहुंच की कमी लोगों को रोजगार पाने से रोक सकती है। +- वित्तीय सेवाएं आपको भुगतान प्राप्त करने से रोक सकती हैं। +- वित्तीय सेवाओं का छिपा हुआ शुल्क आपका व्यक्तिगत डेटा होता है। +- सरकारें और केंद्रीकृत संस्थान अपनी मर्जी से बाजारों को बंद कर सकते हैं। +- व्यापारिक घंटे अक्सर किसी विशिष्ट समय क्षेत्र के व्यवसायिक घंटों से सीमित होते हैं। +- आंतरिक मानवीय प्रक्रियाओं के कारण धन हस्तांतरण में कई दिन लग सकते हैं। +- वित्तीय सेवाओं के लिए एक प्रीमियम है क्योंकि मध्यस्थ संस्थानों को उनकी कटौती की जरूरत है। + +### एक तुलना {#defi-comparison} + +| DeFi | परंपरागत वित्त | +| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | +| आप अपना पैसा रखते हैं। | आपका पैसा कंपनियों के पास होता है। | +| आप नियंत्रित करते हैं कि आपका पैसा कहां जाता है और इसे कैसे खर्च किया जाता है। | आपको कंपनियों पर भरोसा करना होगा कि वे आपके पैसे का दुरुपयोग न करें, जैसे जोखिम भरे उधारकर्ताओं को ऋण देना। | +| फंड ट्रांसफर मिनटों में होता है। | मैन्युअल प्रक्रियाओं के कारण भुगतान में कुछ दिन लग सकते हैं। | +| लेन-देन गतिविधि छद्मनामी है। | वित्तीय गतिविधि आपकी पहचान के साथ घनिष्ठ रूप से जुड़ी हुई है। | +| DeFi सभी के लिए खुला है। | आपको वित्तीय सेवाओं का उपयोग करने के लिए आवेदन करना होगा। | +| बाजार हमेशा खुले रहते हैं। | बाजार बंद हैं क्योंकि कर्मचारियों को ब्रेक की जरूरत है। | +| यह पारदर्शिता पर आधारित है – कोई भी उत्पाद के डेटा को देख सकता है और निरीक्षण कर सकता है कि सिस्टम कैसे काम करता है। | वित्तीय संस्थान बंद किताबें हैं: आप उनके ऋण इतिहास, उनकी प्रबंधित संपत्तियों का रिकॉर्ड इत्यादि देखने के लिए नहीं कह सकते। | + + + DeFi ऐप्स खोजें + + +## यह बिटकॉइन के साथ शुरू हुआ... {#bitcoin} + +बिटकॉइन कई तरीकों से पहला DeFi एप्लिकेशन था। बिटकॉइन आपको वास्तविकता से मूल्य का स्वामित्व और नियंत्रण करने की अनुमति देता है और आप उसे दुनियाभर में कहीं भी भेज सकते हैं। यह बड़ी संख्या में लोगों को, जो एक-दूसरे पर भरोसा नहीं करते हैं, किसी विश्वसनीय मध्यस्थ की आवश्यकता के बिना खातों के बही-खाते पर सहमत होने का एक तरीका प्रदान करके ऐसा करता है। बिटकॉइन किसी भी व्यक्ति के लिए खुला है और किसी को नियमों को बदलने का अधिकार नहीं है। बिटकॉइन के नियम, जैसे कि इसकी संकीर्णता और इसका खुलापन, प्रौद्योगिकी में लिखे गए हैं। यह पारंपरिक वित्त की तरह नहीं है जहाँ सरकारें मुद्रा छाप सकती हैं जिससे आपकी बचतों की मूल्य कम हो और कंपनियाँ बाजारों को बंद कर सकती हैं। + +इथेरियम इस पर आधारित है। बिटकॉइन की तरह, नियम आपके साथ बदल नहीं सकते और सभी को पहुँच प्राप्त है। लेकिन यह [स्मार्ट अनुबंध](/glossary#smart-contract) का उपयोग करके इस डिजिटल मनी को प्रोग्राम करने योग्य भी बनाता है, ताकि आप मूल्य को संग्रहीत करने और भेजने से आगे बढ़ सकें। + + + +## प्रोग्रामयोग्य मुद्रा {#programmable-money} + +यह अजीब लग रहा है... "मैं अपने मुद्रा को प्रोग्राम क्यों करना चाहूँगा"? हालाँकि, यह इथेरियम पर टोकन्स की एक डिफ़ॉल्ट सुविधा मात्र है। कोई भी भुगतान में तर्क प्रोग्राम कर सकता है। इस तरह आप बिटकॉइन की नियंत्रण और सुरक्षा को वित्तीय संस्थानों द्वारा प्रदान की जाने वाली सेवाओं के साथ मिला सकते हैं। यह आपको क्रिप्टोकरेंसी के साथ ऐसी चीजें करने की अनुमति देता है जो आप बिटकॉइन के साथ नहीं कर सकते, जैसे कि उधार देना और उधार लेना, भुगतानों की योजना बनाना, सूची निवेश में निवेश करना और आदि। + + +
अगर आप इथेरियम में नए हैं, तो DeFi एप्लिकेशन्स के लिए हमारे सुझावों का अन्वेषण करें।
+ + DeFi ऐप्स खोजें + +
+ +## 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/) की आवश्यकता होगी। + + + भुगतान संबंधित dapps देखें + + +#### दुनियाभर में मुद्रा प्रवाहित करें... {#stream-money} + +आप इथेरियम पर भी मुद्रा प्रवाहित कर सकते हैं। यह आपको किसी का वेतन प्रति सेकंड भुगतान करने की अनुमति देता है, जिससे उन्हें उनके मुद्रा तक कभी भी पहुँचने की सुविधा होती है। या फिर किसी चीज़ को सेकंडों में किराये पर दें, जैसे कि एक स्टोरेज लॉकर या इलेक्ट्रिक स्कूटर। + +और यदि आप [ETH](/eth/) को भेजना या स्ट्रीम नहीं करना चाहते हैं क्योंकि इसका मूल्य कितना बदल सकता है, तो इथेरियम पर वैकल्पिक मुद्राएं हैं: स्थिर मुद्राएँ। + + + +### स्थिर मुद्राएँ प्राप्त करें {#stablecoins} + +क्रिप्टोकरेंसी की अस्थिरता बहुत सारे वित्तीय उत्पादों और सामान्य खर्चों के लिए एक समस्या है। DeFi समुदाय ने स्थिर मुद्राओं से इस समस्या को हल किया है। उनका मूल्य एक दूसरे संपत्ति से जुड़ा रहता है, आमतौर पर डॉलर जैसी लोकप्रिय मुद्रा के साथ। + +मुद्राएँ जैसे कि Dai या USDC का मूल्य डॉलर के कुछ सेंट के भीतर ही रहता है। यह उन्हें कमाई या खुदरा के लिए उत्तम बनाता है। लैटिन अमेरिका में कई लोगों ने अपनी सरकार द्वारा जारी मुद्राओं के साथ बड़ी अनिश्चितता के समय में अपनी बचत को सुरक्षित रखने के तरीके के रूप में स्थिर मुद्राओं का उपयोग किया है। + + + स्थिर मुद्राओं पर अधिक जानकारी + + + + +### उधार {#lending} + +विकेंद्रीकृत प्रदाताओं से पैसा उधार लेना दो मुख्य प्रकारों में आता है। + +- पीयर-टू-पीयर, यानी एक उधारकर्ता सीधे एक विशिष्ट उधारदाता से मुद्रा उधार लेगा। +- पूल-आधारित, जहां ऋणदाता पूल में निधियाँ (लिक्विडिटी) प्रदान करते हैं, जिससे उधारकर्ता उधार ले सकते हैं। + + + उधार लेने वाले dapps देखें + + +विकेंद्रीकृत ऋणदाता का उपयोग करने के कई फायदे हैं... + +#### गोपनीयता के साथ उधार लेना {#borrowing-privacy} + +आज, पैसा उधार देना और उधार लेना संबंधित व्यक्तियों के इर्द-गिर्द घूमता है। बैंकों को ऋण देने से पहले यह जानना आवश्यक है कि आपके द्वारा ऋण चुकाने की संभावना है या नहीं। + +विकेंद्रीकृत ऋण किसी भी पक्ष की पहचान बताए बिना काम करता है। इसके बजाय, उधारकर्ता को संपार्श्विक रखना होगा जो ऋणदाता को स्वचालित रूप से प्राप्त होगा यदि उनका ऋण चुकाया नहीं गया है। कुछ ऋणदाता NFT को संपार्श्विक के रूप में भी स्वीकार करते हैं। NFT एक पेंटिंग की तरह एक अद्वितीय संपत्ति का एक दस्तावेज है। [NFT पर अधिक जानकारी](/nft/) + +यह आपको क्रेडिट जांच या निजी जानकारी सौंपे बिना मुद्रा उधार लेने की अनुमति देता है। + +#### वैश्विक निधियों तक पहुंच {#access-global-funds} + +जब आप एक विकेन्द्रीकृत ऋणदाता का उपयोग करते हैं तो आपके पास दुनिया भर से जमा किए गए धन तक पहुंच होती है, न कि केवल आपके चुने हुए बैंक या संस्थान की निगरानी में मौजूद धन तक। इससे ऋण अधिक सुलभ हो जाता है और ब्याज दरों में सुधार होता है। + +#### कर-दक्षताएँ {#tax-efficiencies} + +उधार लेने से आपको अपना ETH बेचने (एक कर योग्य घटना) की आवश्यकता के बिना आवश्यक धनराशि तक पहुंच मिल सकती है। इसके बजाय, आप स्थिर मुद्रा ऋण के लिए गिरवी के रूप में ETH का उपयोग कर सकते हैं। यह आपको आवश्यक नकदी प्रवाह प्रदान करता है और आपको आपके ETH को रखने की अनुमति देता है। स्थिर मुद्राएँ टोकन होती हैं जो बहुत अधिक अच्छी होती हैं जब आपको नकदी की आवश्यकता होती है क्योंकि उनकी मूल्य में ETH की तरह परिवर्तन नहीं होता। [स्थिर मुद्राओं पर अधिक जानकारी](#stablecoins) + +#### फ़्लैश ऋण {#flash-loans} + +फ्लैश ऋण विकेन्द्रीकृत ऋण का एक अधिक प्रयोगात्मक रूप है जो आपको गिरवी या कोई व्यक्तिगत जानकारी प्रदान किए बिना उधार देता है। + +वर्तमान में ये गैर-तकनीकी लोगों के लिए व्यापक रूप से उपलब्ध नहीं हैं, लेकिन ये संकेत देते हैं कि भविष्य में हर किसी के लिए क्या संभव हो सकता है। + +यह इस आधार पर काम करता है कि ऋण लिया गया है और उसी लेनदेन के भीतर वापस भुगतान किया गया है। यदि इसे वापस भुगतान नहीं किया जा सकता है, तो लेन-देन ऐसे वापस आ जाता है जैसे कि कभी कुछ हुआ ही नहीं। + +वे निधि जो अक्सर उपयोग मे लाए जाते हैं, वे लिक्विडिटी पूल में रखे जाते हैं (बड़े पूल जिन्हें उधार लेने के लिए उपयोग किया जाता है)। अगर उन्हें किसी दिए गए समय पर उनका उपयोग नहीं किया जा रहा है, तो यह किसी के लिए एक अवसर पैदा करता है कि वे इन फंड्स को उधार ले सकते हैं, उनके साथ व्यापार कर सकते हैं और उन्हें पूरी तरह से उसी समय मे चुकाने का अवसर पैदा करता है। + +इसका मतलब है कि एक विशिष्ट लेन-देन में कई तरह के तर्क शामिल किए जाने चाहिए। एक साधारण उदाहरण यह हो सकता है कि कोई व्यक्ति एक कीमत पर अधिक से अधिक संपत्ति उधार लेने के लिए फ्लैश लोन का उपयोग कर रहा हो ताकि वे इसे एक अलग एक्सचेंज पर बेच सकें जहां कीमत अधिक हो। + +तो एक ही लेन-देन में, निम्नलिखित होता है: + +- आप $1.00 पर $asset की X राशि को एक्सचेंज A से उधार लेते हैं +- आप X $asset को $1.10 पर एक्सचेंज B पर बेचते हैं +- आप उधार की राशि को एक्सचेंज A को वापस करते हैं +- आप लाभ को लेनदेन शुल्क घटाकर रखते हैं + +अगर एक्सचेंज B की आपूर्ति अचानक घट जाती है और उपयोगकर्ता मूल ऋण को कवर करने के लिए पर्याप्त खरीदारी करने में सक्षम नहीं होता, तो लेनदेन विफल हो जाएगा। + +उपरोक्त उदाहरण को पारंपरिक वित्त दुनिया में करने के लिए, आपको बड़ी मात्रा में धन की आवश्यकता होती है। ये पैसे कमाने की रणनीतियाँ केवल उन्हीं तक पहुँचती हैं जिनके पास पहले से ही धन है। फ्लैश ऋण एक ऐसे भविष्य का उदाहरण है जहाँ पैसे कमाने के लिए पैसे होना आवश्यक नहीं है। + +[फ़्लैश ऋण पर अधिक जानकारी](https://aave.com/flash-loans/) + + + +### क्रिप्टो के साथ बचत शुरू करें {#saving} + +#### ऋण {#lending} + +आप अपने क्रिप्टो पर ब्याज कमा सकते हैं उसे उधार देकर और अपने फंड्स को वास्तविक समय में बढ़ते हुए देख सकते हैं। अभी ब्याज दरें आपके स्थानीय बैंक में मिलने वाली संभावना से कहीं अधिक हैं (यदि आप इतने भाग्यशाली हैं कि इस तक पहुंच पाने में सक्षम हैं)। यहाँ पर एक उदाहरण है: + +- आप अपने 100 Dai, एक [स्थिर मुद्रा](/stablecoins/), Aave जैसे उत्पाद को उधार देते हैं। +- आपको 100 Aave Dai (aDai) प्राप्त होता है, जो आपके उधार दिए गए Dai का प्रतिनिधित्व करने वाला एक टोकन है। +- ब्याज दरों के आधार पर आपका aDai बढ़ेगा और आप अपने वॉलेट में अपना बैलेंस बढ़ता हुआ देख सकते हैं। एपीआर पर निर्भर करते हुए, आपके वॉलेट का बैलेंस कुछ दिनों या घंटों के बाद 100.1234 ऐसा कुछ दिखाई देगा! +- आप किसी भी समय नियमित Dai की राशि निकाल सकते हैं जो आपके aDai बैलेंस के बराबर है। + + + लेनदेन वाले dapps देखें + + +#### नो-लॉस लॉटरी {#no-loss-lotteries} + +PoolTogether जैसी नो-लॉस लॉटरी पैसे बचाने का एक मज़ेदार और नया तरीका है। + +- आप 100 Dai टोकन का उपयोग करके 100 टिकट खरीदते हैं। +- आपको 100 plDai प्राप्त होते हैं जो आपके 100 टिकटों का प्रतिनिधित्व करते हैं। +- यदि आपके टिकटों में से एक को विजेता के रूप में चुना जाता है, तो आपका plDai बैलेंस पुरस्कार पूल की राशि से बढ़ जाएगा। +- यदि आप नहीं जीतते हैं, तो आपका 100 plDai अगले सप्ताह के ड्रा में चला जाएगा। +- आप किसी भी समय नियमित Dai की राशि निकाल सकते हैं जो आपके plDai बैलेंस के बराबर है। + +पुरस्कार पूल टिकट जमा को उधार देने से उत्पन्न सभी ब्याज से उत्पन्न होता है जैसे कि ऊपर दिए गए उधार के उदाहरण में। + + + PoolTogether आज़माएँ + + + + +### एक्सचेंज टोकन {#swaps} + +इथेरियम पर हजारों टोकन हैं। विकेंद्रीकृत एक्सचेंज (DEX) आपको जब चाहें विभिन्न टोकन का व्यापार करने की सुविधा देते हैं। आप कभी भी अपने संपत्तियों का नियंत्रण नहीं छोड़ते हैं। यह किसी अन्य देश की यात्रा के समय मुद्रा एक्सचेंज का उपयोग करने की तरह है। लेकिन DeFi संस्करण कभी बंद नहीं होता। बाज़ार साल के 24/7, 365 दिन खुले रहते हैं और प्रौद्योगिकी गारंटी देती है कि व्यापार स्वीकार करने के लिए हमेशा कोई न कोई होगा। + +उदाहरण के लिए, अगर आप नो-लॉस लॉटरी PoolTogether (ऊपर वर्णित) का उपयोग करना चाहते हैं, तो आपको Dai या USDC जैसे टोकन की आवश्यकता होगी। ये DEX आपको अपने ETH को उन टोकन के लिए स्वैप करने और काम पूरा होने पर फिर से वापस करने की अनुमति देते हैं। + + + टोकन एक्सचेंजेस देखें + + + + +### उन्नत व्यापार {#trading} + +उन व्यापारियों के लिए अधिक उन्नत विकल्प हैं जो थोड़ा अधिक नियंत्रण पसंद करते हैं। लिमिट आदेश, स्थायी आदेश, मार्जिन व्यापार और अन्य सभी संभावित हैं। विकेन्द्रीकृत व्यापार के साथ आपको वैश्विक तरलता तक पहुंच मिलती है, बाजार कभी बंद नहीं होता है, और आप हमेशा अपनी संपत्ति के नियंत्रण में होते हैं। + +जब आप एक केंद्रीकृत एक्सचेंज का उपयोग करते हैं तो आपको व्यापार से पहले अपनी संपत्ति जमा करनी होगी और उनकी देखभाल करने के लिए केंद्रीकृत एक्सचेंज पर भरोसा करना होगा। जब आपकी संपत्ति जमा की जाती है, वे जोखिम में हैं क्योंकि केंद्रीकृत एक्सचेंज हैकर्स के लिए आकर्षक लक्ष्य हैं। + + + ट्रेडिंग dapps देखें + + + + +### अपने पोर्टफोलियो को बढ़ाएं {#investing} + +इथेरियम पर फंड प्रबंधन उत्पाद हैं जो आपकी पसंद की रणनीति के आधार पर आपके पोर्टफोलियो को बढ़ाने की कोशिश करेंगे। यह स्वचालित है, सभी के लिए खुला है, और आपके मुनाफे में कटौती करने वाले मानव प्रबंधक की आवश्यकता नहीं है। + +एक अच्छा उदाहरण [DeFi पल्स इंडेक्स फंड (DPI) है](https://defipulse.com/blog/defi-pulse-index/)। यह एक ऐसा फंड है जो यह सुनिश्चित करने के लिए स्वचालित रूप से पुनर्संतुलन करता है कि आपके पोर्टफोलियो में हमेशा [बाजार पूंजीकरण द्वारा शीर्ष DeFi टोकन](https://www.coingecko.com/en/defi) शामिल हों। आपको कभी भी किसी भी विवरण का प्रबंधन नहीं करना पड़ता है और आप जब चाहें फंड से निकाल सकते हैं। + + + निवेश के dapps देखें। + + + + +### अपने विचारों को वित्तपोषित करें {#crowdfunding} + +इथेरियम क्राउडफंडिंग के लिए एक आदर्श मंच है: + +- संभावित फंडर कहीं से भी आ सकता है - इथेरियम और इसके टोकन दुनिया में कहीं भी, किसी के लिए भी खुले हैं। +- यह पारदर्शी है ताकि धन जुटाने वाले साबित कर सकें कि कितना धन जुटाया गया है। आप यह भी पता लगा सकते हैं कि बाद में धन कैसे खर्च किया जा रहा है। +- फंड जुटाने वाले स्वचालित रिफंड सेट कर सकते हैं, उदाहरण के लिए, एक विशिष्ट समय सीमा और न्यूनतम राशि जो पूरी नहीं होती है। + + + क्राउडफंडिंग dapps देखें + + +#### द्विघात निधिकरण {#quadratic-funding} + +इथेरियम ओपन सोर्स सॉफ्टवेयर है और अब तक के बहुत सारे काम समुदाय द्वारा वित्त पोषित किए गए हैं। इससे एक दिलचस्प नए धन उगाहने वाले मॉडल का विकास हुआ है: द्विघात निधिकरण। This has the potential to improve the way we fund all types of public goods in the future. + +Quadratic funding makes sure that the projects that receive the most funding are those with the most unique demand. In other words, projects that stand to improve the lives of the most people. यहां बताया गया है कि यह कैसे काम करता है: + +1. दान की गई निधियों का एक मिलान पूल है। +2. सार्वजनिक वित्त पोषण का एक दौर शुरू होता है। +3. लोग कुछ पैसे दान करके एक परियोजना के लिए अपनी मांग का संकेत दे सकते हैं। +4. एक बार राउंड खत्म होने के बाद, मैचिंग पूल को परियोजनाओं में वितरित किया जाता है। सबसे अनूठी मांग वाले लोगों को मैचिंग पूल से सबसे अधिक राशि मिलती है। + +इसका मतलब यह है कि प्रोजेक्ट A अपने 1 डॉलर के 100 दान के साथ, B की तुलना में जो 10,000 डॉलर (मिलान पूल के आकार पर निर्भर) के एकल दान के साथ अधिक फंडिंग के साथ समाप्त हो सकता है। + +[द्विघात निधिकरण पर अधिक जानकारी](https://wtfisqf.com) + + + +### बीमा {#insurance} + +विकेन्द्रीकृत बीमा का उद्देश्य बीमा को सस्ता, भुगतान करने में तेजी और अधिक पारदर्शी बनाना है। अधिक स्वचालन के साथ, कवरेज अधिक सस्ती है और भुगतान बहुत तेज है। आपके दावे पर निर्णय लेने के लिए उपयोग किया जाने वाला डेटा पूरी तरह से पारदर्शी है। + +इथेरियम उत्पाद, किसी भी सॉफ्टवेयर की तरह, सॉफ्टवेयर बग और शोषण से पीड़ित हो सकते हैं। इसलिए अभी इस क्षेत्र में बहुत सारे बीमा उत्पाद अपने उपयोगकर्ताओं को धन के नुकसान से बचाने पर ध्यान केंद्रित करते हैं। हालांकि, ऐसी परियोजनाएं हैं जो जीवन में सब कुछ के लिए कवरेज का निर्माण करना शुरू कर रही हैं। इसका एक अच्छा उदाहरण Etherisc का फसल कवर है जिसका उद्देश्य सूखे और बाढ़ के खिलाफ [केन्या में छोटे किसानों की रक्षा](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc) करना है। विकेन्द्रीकृत बीमा उन किसानों के लिए सस्ता कवर प्रदान कर सकता है जिनकी कीमत अक्सर बीमा से बाहर होती है। + + + dapps बीमा देखें + + + + +### एग्रीगेटर और पोर्टफोलियो प्रबंधक {#aggregators} + +इतना कुछ होने के साथ, आपको अपने सभी निवेशों, ऋणों और ट्रेडों पर नज़र रखने का एक तरीका चाहिए। ऐसे कई उत्पाद हैं जो आपको एक ही स्थान से अपनी सभी DeFi गतिविधि का समन्वय करने देते हैं। यह DeFi की खुली वास्तुकला की सुंदरता है। टीम इंटरफेस का निर्माण कर सकती है जहां आप न केवल उत्पादों में अपना संतुलन देख सकते हैं, आप उनकी सुविधाओं का भी उपयोग कर सकते हैं। जैसा कि आप DeFi के बारे में अधिक पता लगाते हैं, आपको यह उपयोगी लग सकता है। + + + पोर्टफोलियो dapps देखें + + + + +## DeFi कैसे काम करता है? {#how-defi-works} + +DeFi उन सेवाओं को प्रदान करने के लिए क्रिप्टोकरेंसी और स्मार्ट अनुबंधों का उपयोग करता है जिनमें मध्यस्थों की आवश्यकता नहीं होती है। आज की वित्तीय दुनिया में, वित्तीय संस्थान लेनदेन के गारंटर के रूप में कार्य करते हैं। इससे इन संस्थानों को अत्यधिक शक्ति मिलती है क्योंकि आपका पैसा उनके माध्यम से प्रवाहित होता है। साथ ही दुनिया भर में अरबों लोग बैंक खाते तक भी पहुंच नहीं पा सकते हैं। + +DeFi में, एक स्मार्ट अनुबंध लेनदेन में वित्तीय संस्थान की जगह लेता है। एक स्मार्ट अनुबंध एक प्रकार का इथेरियम खाता है जो धन रख सकता है और कुछ शर्तों के आधार पर उन्हें भेज/धनवापसी कर सकता है। कोई भी उस स्मार्ट अनुबंध को बदल नहीं सकता है जब यह लाइव होता है – यह हमेशा प्रोग्राम के अनुसार चलेगा। + +एक अनुबंध जो भत्ता या पॉकेट मनी देने के लिए डिज़ाइन किया गया है, उसे हर शुक्रवार को खाता A से खाता B में पैसा भेजने के लिए प्रोग्राम किया जा सकता है। और यह केवल तब तक ऐसा करेगा जब तक खाता A के पास आवश्यक धन है। कोई भी अनुबंध को बदल नहीं सकता है और धन चोरी करने के लिए प्राप्तकर्ता के रूप में खाता C जोड़ सकता है। + +किसी के निरीक्षण और लेखा परीक्षा के लिए अनुबंध भी सार्वजनिक हैं। इसका मतलब है कि खराब अनुबंध अक्सर सामुदायिक जांच के दायरे में बहुत जल्दी आएंगे। + +इसका मतलब यह है कि वर्तमान में इथेरियम समुदाय के अधिक तकनीकी सदस्यों पर भरोसा करने की आवश्यकता है जो कोड पढ़ सकते हैं। ओपन-सोर्स आधारित समुदाय डेवलपर्स को नियंत्रण में रखने में मदद करता है, लेकिन समय के साथ यह आवश्यकता कम हो जाएगी क्योंकि स्मार्ट अनुबंध पढ़ना आसान हो जाएगा और कोड की विश्वसनीयता साबित करने के अन्य तरीके विकसित हो जाएंगे। + +## इथेरियम और DeFi {#ethereum-and-defi} + +इथेरियम कई कारणों से DeFi के लिए एकदम सही नींव है: + +- कोई भी इथेरियम या उस पर आश्रित स्मार्ट अनुबंधों का मालिक नहीं है – यह हर किसी को DeFi का उपयोग करने का अवसर देता है। इसका मतलब यह भी है कि कोई भी आप पर लागू नियमों को नहीं बदल सकता है। +- DeFi उत्पाद पर्दे के पीछे एक ही भाषा बोलते हैं: इथेरियम। इसका मतलब है कि कई उत्पाद एक साथ निर्बाध रूप से काम करते हैं। आप एक प्लेटफ़ॉर्म पर टोकन उधार दे सकते हैं और ब्याज वाले टोकन को एक अलग बाज़ार में एक पूरी तरह से अलग एप्लिकेशन पर एक्सचेंज कर सकते हैं। यह आपके बैंक में लॉयल्टी पॉइंट्स को कैश करने में सक्षम होने जैसा है। +- टोकन और क्रिप्टोकरेंसी को इथेरियम में बनाया गया है, जो एक साझा बहीखाता है – लेनदेन और स्वामित्व का ट्रैक रखना इथेरियम की तरह है। +- इथेरियम पूर्ण वित्तीय स्वतंत्रता की अनुमति देता है – अधिकांश उत्पाद कभी भी आपके धन की कस्टडी नहीं लेंगे, जिससे आप नियंत्रण में रह जाएंगे। + +आप परतों में DeFi के बारे में सोच सकते हैं: + +1. ब्लॉकचेन – इथेरियम में लेनदेन इतिहास और खातों की स्थिति शामिल है। +2. संपत्ति – [ETH](/eth/) और अन्य टोकन (मुद्राएं)। +3. प्रोटोकॉल – [स्मार्ट अनुबंध](/glossary/#smart-contract) जो कार्यक्षमता प्रदान करते हैं, उदाहरण के लिए, एक सेवा जो परिसंपत्तियों के विकेन्द्रीकृत उधार की अनुमति देती है। +4. [एप्लिकेशन](/dapps/) – वे उत्पाद जिनका उपयोग हम प्रोटोकॉल को प्रबंधित करने और एक्सेस करने के लिए करते हैं। + +## DeFi का निर्माण करें {#build-defi} + +DeFi एक ओपन-सोर्स गतिविधि है। DeFi प्रोटोकॉल और एप्लिकेशन आपके लिए निरीक्षण, फोर्क और नवाचार करने के लिए खुले हैं। इस स्तरित स्टैक के कारण (वे सभी एक ही आधार ब्लॉकचेन और संपत्ति साझा करते हैं), प्रोटोकॉल को अद्वितीय कॉम्बो अवसरों को अनलॉक करने के लिए मिश्रित और मिलान किया जा सकता है। + + + dapps के निर्माण पर अधिक जानकारी + + +## अग्रिम पठन {#futher-reading} + +### DeFi डाटा {#defi-data} + +- [DeFi प्राइम](https://defiprime.com/) +- [DeFi Llama](https://defillama.com/) +- [DeFi रेट](https://defirate.com/) + +### DeFi लेख {#defi-articles} + +- [DeFi के लिए एक शुरुआती मार्गदर्शिका](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _सीड कोएल्हो-प्रभु 6 जनवरी, 2020_ + +### वीडियो {#videos} + +- [फिनेमैटिक्स - विकेन्द्रीकृत वित्त शिक्षा](https://finematics.com/) – _DeFi पर वीडियो_ +- [डेफिएंट](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _DeFi की मूल बातें: इस क्षेत्र में शुरुआत करने के लिए आपको जो कुछ जानने की जरूरत है।_ +- [व्हाइटबोर्ड क्रिप्टो](https://youtu.be/17QRFlml4pA) – _DeFi क्या है?_ + +### समुदाय {#communities} + +- [DeFi Llama Discord सर्वर](https://discord.gg/buPFYXzDDd) +- [DeFi Pulse Discord सर्वर](https://discord.gg/Gx4TCTk) diff --git a/public/content/translations/hi/desci/index.md b/public/content/translations/hi/desci/index.md new file mode 100644 index 00000000000..08918944cde --- /dev/null +++ b/public/content/translations/hi/desci/index.md @@ -0,0 +1,139 @@ +--- +title: विकेंद्रित विज्ञान (DeSci) +description: इथेरियम पर विकेन्द्रीकृत विज्ञान का अवलोकन +lang: hi +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: वर्तमान वैज्ञानिक प्रणाली के लिए एक वैश्विक, खुला विकल्प। +summaryPoint2: एक तकनीक जो वैज्ञानिकों को धन जुटाने, प्रयोग चलाने, डेटा साझा करने, अंतर्दृष्टि वितरित करने और बहुत कुछ करने में सक्षम बनाती है। +summaryPoint3: खुले विज्ञान आंदोलन पर निर्माण आधारित है। +--- + +## विकेन्द्रीकृत विज्ञान (DeSci) क्या है? {#what-is-desci} + +विकेन्द्रीकृत विज्ञान (DeSci) एक आंदोलन है जिसका उद्देश्य Web3 स्टैक का उपयोग करके वैज्ञानिक ज्ञान को निष्पक्ष और समान रूप से वित्त पोषण, निर्माण, समीक्षा, क्रेडिट, भंडारण और प्रसार के लिए सार्वजनिक बुनियादी ढांचे का निर्माण करना है। + +DeSci का उद्देश्य एक पारिस्थितिकी तंत्र बनाना है जहां वैज्ञानिकों को खुले तौर पर अपने शोध को साझा करने और अपने काम के लिए क्रेडिट प्राप्त करने के लिए प्रोत्साहित किया जाता है, जबकि किसी को भी आसानी से अनुसंधान तक पहुंचने और योगदान करने की अनुमति मिलती है। DeSci इस विचार से काम करता है कि वैज्ञानिक ज्ञान हर किसी के लिए सुलभ होना चाहिए और वैज्ञानिक अनुसंधान की प्रक्रिया पारदर्शी होनी चाहिए। DeSci एक अधिक विकेन्द्रीकृत और वितरित वैज्ञानिक अनुसंधान मॉडल बना रहा है, जिससे यह केंद्रीय अधिकारियों द्वारा सेंसरशिप और नियंत्रण के लिए अधिक प्रतिरोधी बनाया गया है। DeSci एक ऐसा वातावरण बनाने की उम्मीद करता है जहां नए और अपरंपरागत विचार वित्त पोषण, वैज्ञानिक उपकरणों और संचार चैनलों तक पहुंच को विकेंद्रीकृत करके पनप सकते हैं। + +विकेन्द्रीकृत विज्ञान अधिक विविध वित्त पोषण स्रोतों ([DAO](/dao/), [द्विघात दान](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) से क्राउडफंडिंग और अधिक) के लिए अनुमति देता है, अधिक सुलभ, डेटा और विधियों तक पहुंच, और प्रजनन क्षमता के लिए प्रोत्साहन प्रदान करता है। + +### जुआन बेनेट - DeSci गतिविधि + + + +## DeSci विज्ञान में सुधार कैसे करता है {#desci-improves-science} + +विज्ञान में प्रमुख समस्याओं की एक अधूरी सूची और कैसे विकेंद्रीकृत विज्ञान इन मुद्दों को संबोधित करने में मदद कर सकता है + +| **विकेन्द्रीकृत विज्ञान** | **पारंपरिक विज्ञान** | +| ---------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | +| धन का वितरण जनता द्वारा द्विघात दान या DAO जैसे तंत्र का उपयोग करके निर्धारित किया जाता है। | छोटे, बंद, केंद्रीकृत समूह धन के वितरण को नियंत्रित करते हैं। | +| आप गतिशील टीमों में दुनिया भर के साथियों के साथ सहयोग करते हैं। | फंडिंग संगठन और घरेलू संस्थान आपके सहयोग को सीमित करते हैं। | +| फंडिंग के फैसले ऑनलाइन और पारदर्शी तरीके से किए जाते हैं। नए वित्तपोषण तंत्र का पता लगाया जाता है। | फंडिंग के फैसले लंबे समय और सीमित पारदर्शिता के साथ किए जाते हैं। कुछ वित्त पोषण तंत्र मौजूद हैं। | +| Web3 आदिमों का उपयोग करके प्रयोगशाला सेवाओं को साझा करना आसान और अधिक पारदर्शी बनाया गया है। | प्रयोगशाला संसाधनों को साझा करना अक्सर धीमा और अपारदर्शी होता है। | +| प्रकाशन के लिए नए मॉडल विकसित किए जा सकते हैं जो विश्वास, पारदर्शिता और सार्वभौमिक पहुंच के लिए Web3 आदिम का उपयोग करते हैं। | आप स्थापित तरीकों से प्रकाशित होते हैं जिन्हें अक्सर अकुशल, पक्षपातपूर्ण और शोषणकारी माना जाता है। | +| आप पीयर-समीक्षा कार्य के लिए टोकन और प्रतिष्ठा अर्जित कर सकते हैं। | आपका पीयर-समीक्षा कार्य अवैतनिक है, जिससे लाभकारी प्रकाशकों को लाभ होता है। | +| आप उस बौद्धिक संपदा (IP) के मालिक हैं जिसे आप उत्पन्न करते हैं और इसे पारदर्शी शर्तों के अनुसार वितरित करते हैं। | आपका गृह संस्थान आपके द्वारा उत्पन्न बौद्धिक संपदा IP का मालिक है। बौद्धिक संपदा IP तक पहुँच पारदर्शी नहीं है। | +| सभी चरणों को ऑन-चेन करके, असफल प्रयासों से डेटा सहित सभी शोध को साझा करना। | प्रकाशन पूर्वाग्रह का मतलब है कि शोधकर्ताओं को उन प्रयोगों को साझा करने की अधिक संभावना है जिनके परिणाम सफल थे। | + +## इथेरियम और DeSci {#ethereum-and-desci} + +एक विकेन्द्रीकृत विज्ञान प्रणाली को मजबूत सुरक्षा, न्यूनतम मौद्रिक और लेनदेन लागत, और आवेदन विकास के लिए एक समृद्ध पारिस्थितिकी तंत्र की आवश्यकता होगी। इथेरियम एक विकेन्द्रीकृत विज्ञान स्टैक के निर्माण के लिए आवश्यक सब कुछ प्रदान करता है। + +## DeSci उपयोग के मामले {#use-cases} + +DeSci Web2 शिक्षा जगत को डिजिटल दुनिया में शामिल करने के लिए वैज्ञानिक टूलसेट का निर्माण कर रहे है। नीचे उपयोग के मामलों का एक नमूना दिया गया है जिसे Web3 वैज्ञानिक समुदाय को पेश कर सकता है। + +### प्रकाशन {#publishing} + +विज्ञान प्रकाशन प्रसिद्ध रूप से समस्याग्रस्त है क्योंकि इसका प्रबंधन ऐसे प्रकाशकों द्वारा किया जाता है जो पेपर तैयार करने के लिए वैज्ञानिकों, समीक्षकों और संपादकों के मुफ्त श्रम पर निर्भर होते हैं लेकिन फिर अत्यधिक प्रकाशन शुल्क लेते हैं। जनता, जो आम तौर पर कराधान के माध्यम से काम और प्रकाशन लागत के लिए अप्रत्यक्ष रूप से भुगतान करती है, अक्सर प्रकाशक को दोबारा भुगतान किए बिना उसी काम तक नहीं पहुंच पाती है। व्यक्तिगत विज्ञान पत्रों को प्रकाशित करने की कुल फीस अक्सर पाँच अंक ($USD) होती है, जो [सार्वजनिक हित](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 में DAO और 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 ​​स्वामित्व और विकास {#ip-ownership} + +पारंपरिक विज्ञान में बौद्धिक संपदा (IP) एक बड़ी समस्या है: विश्वविद्यालयों में अटके रहने या बायोटेक में अनुपयोगिता होने से लेकर मूल्य निर्धारण में बेहद कठिन होने तक। हालांकि, डिजिटल संपत्तियों (जैसे कि वैज्ञानिक डेटा या लेख) के स्वामित्व को Web3 ने [गैर-सघटनक टोकन (NFT)](/nft/) का उपयोग करके असाधारण रूप से अच्छी तरह से करता है। + +जिस तरह से NFT भविष्य के लेनदेन के लिए राजस्व को मूल निर्माता को वापस भेज सकता है, उसी तरह आप शोधकर्ताओं, शासी निकायों (जैसे DAO), या यहां तक ​​कि उन विषयों को पुरस्कृत करने के लिए पारदर्शी मूल्य अनुदान श्रृंखला स्थापित कर सकते हैं जिनका डेटा एकत्र किया गया है। + +[IP-NFT](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) किए जा रहे अनुसंधान प्रयोगों के विकेन्द्रीकृत डेटा भंडार की कुंजी के रूप में भी कार्य कर सकता है, और NFT और [DeFi](/defi/) वित्तीयकरण (विभाजन से ऋण पूल और मूल्य मूल्यांकन तक) में प्लग कर सकता है। यह मूल रूप से ऑन-चेन संस्थाओं जैसे DAO जैसे [VitaDAO](https://www.vitadao.com/) को सीधे ऑन-चेन अनुसंधान करने की अनुमति देता है। गैर-हस्तांतरणीय ["सोलबाउंड" टोकन](https://vitalik.ca/general/2022/01/26/soulound.html) का आगमन भी अनुमति देकर DeSci में एक महत्वपूर्ण भूमिका निभा सकता है, व्यक्तियों को अपने इथेरियम पते से जुड़े अपने अनुभव और साख को प्रमाणित करने की अनुमति मिल सकती है। + +### डेटा भंडारण, पहुंच और वास्तुकला {#data-storage} + +Web3 पैटर्न का उपयोग करके वैज्ञानिक डेटा को बहुत अधिक सुलभ बनाया जा सकता है, और वितरित भंडारण अनुसंधान को प्रलयकारी घटनाओं से बचने में सक्षम बनाता है। + +शुरुआती बिंदु एक प्रणाली होनी चाहिए जिसमें कोई भी विकेन्द्रीकृत पहचान, सही प्रमाणनीय प्रमाणपत्र रखने वाला व्यक्ति पहुँच सकता है। यह संवेदनशील डेटा को विश्वसनीय पार्टियों द्वारा सुरक्षित रूप से दोहराने की अनुमति देता है, जिससे अतिरेक और सेंसरशिप प्रतिरोध, परिणामों का पुनरुत्पादन, और यहां तक कि कई पार्टियों के लिए डेटासेट में सहयोग करने और नए डेटा को जोड़ने की क्षमता भी सक्षम होती है। [कम्प्यूट-टू-डेटा](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 डेटा समाधान उपरोक्त परिदृश्यों का समर्थन करते हैं और वास्तव में ओपन साइंस के लिए आधार प्रदान करते हैं, जहां शोधकर्ता बिना एक्सेस अनुमति या शुल्क के सार्वजनिक सामान बना सकते हैं। IPFS, Arweave और Filecoin जैसे Web3 सार्वजनिक डेटा समाधान विकेंद्रीकरण के लिए अनुकूलित हैं। उदाहरण के लिए, dClimate, वैश्विक स्तर पर जलवायु और मौसम का डाटा प्रदान करता है जिसमें मौसम केंद्र और जलवायु का अनुमान लगाने वाले मॉडल का भी डाटा शामिल है। + +## शामिल हों {#get-involved} + +परियोजनाओं का अन्वेषण करें और DeSci समुदाय में शामिल हों। + +- [DeSci.Global: वैश्विक ईवेंट और मीटअप कैलेंडर](https://desci.global) +- [साइंस 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: DeSci प्रकाशन उपकरण बिल्डर](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 या DeSci परियोजना के लिए वित्त पोषित करें](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/) +- [DeSci Labs](https://www.desci.com/) + +हम नई परियोजनाओं को सूचीबद्ध करने के लिए सुझावों का स्वागत करते हैं - कृपया शुरू करने के लिए हमारी [लिस्टिंग नीति](/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/) +- [DeSci केस](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) +- [DeSci के लिए गाइड](https://future.com/what-is-decentralized-science-aka-desci/) +- [विकेन्द्रीकृत विज्ञान संसाधन](https://www.vincentweisser.com/decentralized-science) +- [Molecule Biopharma IP-NFT - एक तकनीकी विवरण](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) +- [विज्ञान की विश्वसनीय प्रणालियों का निर्माण, जॉन स्टार द्वारा](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) +- [बायोटेक DAO का उद्भव](https://molecule.to/blog/the-emergence-of-biotech-daos) +- [पॉल कोल्हास - 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) +- [DeSci: सैमुअल अकिनोशो द्वारा द फ्यूचर ऑफ रिसर्च](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) +- [विज्ञान वित्त पोषण (उपसंहार: DeSci और नए क्रिप्टो आदिम) - लेखक नादिया द्वारा](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) +- [जुआन बेनेट - DeSci, स्वतंत्र लैब्स, & बड़े पैमाने पर डेटा साइंस](https://www.youtube.com/watch?v=zkXM9H90g_E) +- [सेबस्टियन ब्रुनेमीयर - DeSci बायोमेडिकल रिसर्च & वेंचर कैपिटल को कैसे बदल सकता है](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/hi/eips/index.md b/public/content/translations/hi/eips/index.md similarity index 100% rename from src/content/translations/hi/eips/index.md rename to public/content/translations/hi/eips/index.md diff --git a/src/content/translations/hi/energy-consumption/index.md b/public/content/translations/hi/energy-consumption/index.md similarity index 100% rename from src/content/translations/hi/energy-consumption/index.md rename to public/content/translations/hi/energy-consumption/index.md diff --git a/src/content/translations/hi/governance/index.md b/public/content/translations/hi/governance/index.md similarity index 100% rename from src/content/translations/hi/governance/index.md rename to public/content/translations/hi/governance/index.md diff --git a/src/content/translations/hi/guides/how-to-create-an-ethereum-account/index.md b/public/content/translations/hi/guides/how-to-create-an-ethereum-account/index.md similarity index 100% rename from src/content/translations/hi/guides/how-to-create-an-ethereum-account/index.md rename to public/content/translations/hi/guides/how-to-create-an-ethereum-account/index.md diff --git a/src/content/translations/hi/guides/how-to-id-scam-tokens/index.md b/public/content/translations/hi/guides/how-to-id-scam-tokens/index.md similarity index 100% rename from src/content/translations/hi/guides/how-to-id-scam-tokens/index.md rename to public/content/translations/hi/guides/how-to-id-scam-tokens/index.md diff --git a/src/content/translations/hi/guides/how-to-revoke-token-access/index.md b/public/content/translations/hi/guides/how-to-revoke-token-access/index.md similarity index 100% rename from src/content/translations/hi/guides/how-to-revoke-token-access/index.md rename to public/content/translations/hi/guides/how-to-revoke-token-access/index.md diff --git a/src/content/translations/hi/guides/how-to-swap-tokens/index.md b/public/content/translations/hi/guides/how-to-swap-tokens/index.md similarity index 100% rename from src/content/translations/hi/guides/how-to-swap-tokens/index.md rename to public/content/translations/hi/guides/how-to-swap-tokens/index.md diff --git a/src/content/translations/hi/guides/how-to-use-a-bridge/index.md b/public/content/translations/hi/guides/how-to-use-a-bridge/index.md similarity index 100% rename from src/content/translations/hi/guides/how-to-use-a-bridge/index.md rename to public/content/translations/hi/guides/how-to-use-a-bridge/index.md diff --git a/src/content/translations/hi/guides/how-to-use-a-wallet/index.md b/public/content/translations/hi/guides/how-to-use-a-wallet/index.md similarity index 100% rename from src/content/translations/hi/guides/how-to-use-a-wallet/index.md rename to public/content/translations/hi/guides/how-to-use-a-wallet/index.md diff --git a/src/content/translations/hi/guides/index.md b/public/content/translations/hi/guides/index.md similarity index 100% rename from src/content/translations/hi/guides/index.md rename to public/content/translations/hi/guides/index.md diff --git a/public/content/translations/hi/nft/index.md b/public/content/translations/hi/nft/index.md new file mode 100644 index 00000000000..2711a2696ba --- /dev/null +++ b/public/content/translations/hi/nft/index.md @@ -0,0 +1,94 @@ +--- +title: अपूरणीय टोकन (NFT) +description: एथेरियम पर NFT का अवलोकन +lang: hi +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: होलोग्राम के माध्यम से एक Eth लोगो प्रदर्शित किया जा रहा है। +summaryPoint1: किसी भी अनूठी वस्तु को एथेरियम-आधारित सम्पत्ति के रूप में प्रस्तुत करने का एक तरीका। +summaryPoint2: कंटेंट निर्माताओं को NFT पहले से कहीं ज़्यादा मज़बूत कर रहे हैं। +summaryPoint3: एथेरियम ब्लॉकचेन पर स्मार्ट अनुबंध द्वारा संचालित। +--- + +## NFTs क्या हैं? {#what-are-nfts} + +NFT वे टोकन हैं जो सब खास रूप से अलग हैं। प्रत्येक NFT में अलग-अलग गुण होते हैं (अविनिमेय) और यह साबित किया जा सकता है कि वे दुर्लभ हैं। यह ERC-20 जैसे टोकन से अलग है जहां सेट में प्रत्येक टोकन समान होता है और उसमें समान गुण होते हैं ('विनिमेय')। आपको इस बारे में फ़र्क नहीं पड़ता कि आपके बटुए में डॉलर का कौनसा नोट है, क्योंकि वे सभी एक जैसे होते हैं और उनका मूल्य समान होता है। हालांकि, आपको _यह_ फ़र्क पड़ेगा कि आपके पास कौनसा विशेष NFT है, क्योंकि उन सभी में व्यक्तिगत गुण होते हैं जो उन्हें दूसरों से अलग करते हैं ('अविनिमेय')। + +प्रत्येक NFT की खासियतों जैसे कि कला, संग्रहणीय वस्त्र या यहां तक कि संपत्ति के टोकनीकरण को सक्षम बनाती है, जहां एक विशेष अद्वितीय NFT कुछ विशेष असली दुनिया की या फिर डिजिटल वस्तु दिखाता है। किसी संपत्ति का मालिकाना हक इथेरियम ब्लॉकचेन द्वारा सुरक्षित किया जाता है - कोई भी स्वामित्व के रिकॉर्ड को संशोधित नहीं कर सकता है और ना ही एक नई NFT को कॉपी/पेस्ट कर अस्तित्व में ला सकता है। + + + +## संपत्तियों का इंटरनेट {#internet-of-assets} + +NFT और इथेरियम आज के समय में इंटरनेट पर मौजूद समस्याओं का समाधान करते हैं। जैसे-जैसे सब डिजिटल होता जा रहा है, हमें ज़रूरत है कि हम भौतिक वस्तुओं के गुणों जैसे कि कमी, विशिष्टता और स्वामित्व के प्रमाण को डिजिटल वस्तुओं के लिए हुबहू दोहरायें। एक ऐसे तरीके में जिसमें केंद्रीय संगठन द्वारा नियंत्रण नहीं होता। उदाहरण के लिए, NFT के साथ आप एक संगीत mp3 के मालिक बन सकते हैं जो किसी विशिष्ट कंपनी के स्पष्ट संगीत ऐप से संबंधित नहीं है या आप एक सोशल मीडिया हैंडल के मालिक बन सकते हैं जिसे आप बेच सकते हैं या बदल सकते हैं, लेकिन यह आपके पास से एक प्लेटफ़ॉर्म प्रदाता द्वारा अनियमित रूप से छीना नहीं जा सकता है। + +आज हम में से अधिकांश लोग जिस इंटरनेट का उपयोग करते हैं, उसकी तुलना में NFT का इंटरनेट इस प्रकार है... + +### एक तुलना {#nft-comparison} + +| एक NFT इंटरनेट | इंटरनेट आज | +| ----------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| आप अपनी संपत्ति के मालिक हैं! केवल आप ही उन्हें बेच सकते हैं या बदल सकते हैं। | आप किसी संगठन से किसी संपत्ति को किराए पर लेते हैं। | +| NFT डिजिटल रूप से अनूठे हैं, कोई भी दो NFT एक जैसे नहीं हैं। | अक्सर किसी इकाई की प्रतिलिपि और उसके मूल मे भेद पहचान नहीं की जा सकती। | +| NFT का स्वामित्व ब्लॉकचेन पर संग्रहित होता है जिसे कोई भी सत्यापित कर सकता है। | डिजिटल वस्तुओं के स्वामित्व रिकॉर्ड संस्थानों द्वारा नियंत्रित सर्वर पर संग्रहित किए जाते हैं, इसलिए – आपको उनकी बात पर विश्वास करना पड़ता है। | +| NFT इथेरियम पर मौजूद स्मार्ट अनुबंध हैं। इसका मतलब वो इथेरियम पर आसानी से दूसरे स्मार्ट अनुबंध एवं ऐप्लिकेशन में इस्तेमाल किए जा सकते है! | डिजिटल आइटम वाली कंपनियों को आमतौर पर अपने स्वयं के "दीवार वाले बगीचे" बुनियादी ढांचे की आवश्यकता होती है। | +| कंटेंट निर्माता कहीं भी अपना काम बेच सकते हैं और वैश्विक बाजार तक पहुंच सकते हैं। | निर्माता उनके द्वारा उपयोग किए जाने वाले प्लेटफ़ॉर्म के बुनियादी ढांचे और वितरण पर निर्भर करते हैं। ये अक्सर उपयोग की शर्तों और भौगोलिक प्रतिबंधों के अधीन होते हैं। | +| NFT निर्माता अपने काम पर स्वामित्व अधिकार और कार्यक्रम रॉयल्टी सीधे NFT अनुबंध में रख सकते हैं। | कुछ प्लेटफ़ॉर्म बिक्री से होने वाले अधिकांश लाभ को अपने पास रखते हैं, जैसे संगीत स्ट्रीमिंग सेवाएं। | + +## NFT कैसे काम करते हैं? {#how-nfts-work} + +इथेरियम पर जारी किए गए किसी टोकन की तरह, NFT को एक स्मार्ट अनुबंध द्वारा जारी किया जाता है। स्मार्ट अनुबंध कई NFT मानकों में से किसी एक मानक (अधिकतर ERC-721 या ERC-1155) के अनुरूप होता है जो अनुबंध के फंक्शन को परिभाषित करता है। अनुबंध NFT को बनाकर ('मिंट करके') उसे उसके मालिक को सौंप सकता है। विशिष्ट NFT को विशिष्ट पते से जोड़ कर अनुबंध में स्वामित्व दर्शाया जाता है। NFT का एक ID एवं मेटाडेटा उससे संबंधित होता है जो उस विशिष्ट टोकन को सबसे अलग बनाता है। + +जब कोई NFT बनाता है या उसे मिंट करता है, तब वो असली में स्मार्ट अनुबंध में एक फंक्शन को निष्पादित कर रहा होता है जो एक विशिष्ट NFT को अपने पते से जोड़ता है। यह जानकारी अनुबंध के भंडार में इकठ्ठा होती है जो कि ब्लॉकचेन का हिस्सा है। अनुबंध बनाने वाला अनुबंध में अतिरिक्त तर्क लिख सकता है, जैसे कि पूर्ण आपूर्ति को सीमित करना या हर स्थानांतरण पर बनाने वाले को कुछ रायल्टी देना। + +## NFT का उपयोग किसके लिए किया जाता है? {#nft-use-cases} + +NFT का इस्तेमाल कई क्षेत्रों में किया जाता है, जैसे: + +- यह पक्का करने में कि आपने आयोजन में भाग लिया +- यह प्रमाणित करने में कि आपने कोर्स पूरा किया है +- खेल के लिए स्वामित्व योग्य वस्तु के रूप में +- डिजिटल चित्र के रूप में +- असल दुनिया की संपत्ति को टोकन में बदलने में +- अपनी ऑनलाइन पहचान प्रमाणित करने में +- सामग्री तक पहुंच को रोकने में +- टिकट लेने में +- विकेंद्रीकृत इंटरनेट डोमेन नाम +- DeFi में कोलेटरल + +हो सकता है कि आप एक कलाकार हों जो बिना अपना नियंत्रण खोए और बिना किसी को अपना मुनाफा दिए, अपना काम साझा करना चाहता है। आप एक नया अनुबंध बनाकर उसमें NFT की संख्या, उसके गुण और विशिष्ट कला के लिंक का उल्लेख कर सकते है। कलाकार की तरह, आप स्मार्ट अनुबंध में आपको मिलने वाली रॉयल्टी प्रोग्राम कर सकते हैं (जैसे हर स्थानांतरण पर बिक्री मूल्य का 5 प्रतिशत अनुबंध निर्माता को मिलना)। आप यह भी साबित कर सकते है कि NFT आपने बनाया है, क्योंकि अनुबंध तैनात करने वाला वॉलेट आपका है। आपके खरीददार यह आसानी से साबित कर सकते है कि उनके पास आपके संग्रह का एक प्रमाणित NFT है, क्योंकि उनके वॉलेट का पता आपके स्मार्ट अनुबंध के टोकन से जुड़ा हुआ है। वो इसके प्रामाणिकता पर विश्वास करते हुए, इसका इस्तेमाल इथेरियम इकोसिस्टम में कहीं भी कर सकते है। + +या एक खेल की घटना के लिए टिकट को विचार करें। जिस तरह किसी कार्यक्रम का आयोजक चुन सकता है कि कितने टिकट बेचे जाएं, उसी तरह NFT का निर्माता यह तय कर सकता है कि कितनी प्रतिकृतियां मौजूद हैं। कभी-कभी यह सटीक प्रतिकृतियां होती हैं, जैसे 5000 सामान्य प्रवेश टिकट। कभी-कभी कई ऐसे खनन किए जाते हैं जो बहुत समान होते हैं, लेकिन हर एक थोड़ा अलग होता है, जैसे कि एक नियत सीट वाला टिकट। ये पीयर-टू-पीयर खरीदे और बेचे जा सकते हैं बिना टिकट हैंडलर्स को भुगतान किए और खरीदार हमेशा टिकट की मान्यता को कॉन्ट्रैक्ट पते की जांच करके टिकट की विश्वसनीयता के लिए आश्वासन दे सकता है। + +ethereum.org पर NFT का उपयोग यह दिखाने के लिए किया गया है कि लोगों ने हमारे Github रिपॉजिटरी में योगदान दिया है या कॉल में भाग लिया है और हमारे पास अपने खुद का NFT डोमेन नाम भी है। अगर आप ethereum.org में योगदान करते हैं, तो आप POAP NFT का दावा कर सकते हैं। कुछ क्रिप्टो मीटिंगों में POAP का इस्तेमाल टिकट के रूप में किया है। [योगदान पर अधिक](/contributing/#poap)। + +![ethereum.org POAP](./poap.png) + +इस वेबसाइट का एक वैकल्पिक कार्यक्षेत्र नाम है जो NFT द्वारा संचालित है, **ethereum.eth**। हमारा `.org` पता एक डोमेन नाम प्रणाली (DNS) प्रदाता द्वारा केन्द्रीय रूप से प्रबंधित किया जाता है जबकि ethereum`.eth` एथेरियम नाम सेवा (ENS) के माध्यम से एथेरियम पर पंजीकृत है। और इसका स्वामित्व और प्रबंधन हमारे द्वारा किया जाता है। [हमारे ENS रिकॉर्ड की जाँच करें](https://app.ens.domains/name/ethereum.eth) + +[ENS पर अधिक जानकारी](https://app.ens.domains) + + + +### NFT सुरक्षा {#nft-security} + +इथेरियम की सुरक्षा हिस्सेदारी के सबूत से आती है। इस प्रणाली को आर्थिक रूप से दुर्भावनापूर्ण कार्यों को प्रोत्साहित करने के लिए डिज़ाइन किया गया है, जिससे इथेरियम छेड़छाड़-सबूत बन जाता है। यही NFT को संभव बनाता है। एक बार जब आपके NFT लेनदेन वाले ब्लॉक को अंतिम रूप दिया जाता है, तो इसे बदलने के लिए एक हमलावर के लाखों ETH खर्च होंगे। इथेरियम सॉफ्टवेयर चलाने वाला कोई भी व्यक्ति तुरंत एक NFT के साथ बेईमान छेड़छाड़ का पता लगाने में सक्षम होगा और खराब अभिनेता को आर्थिक रूप से दंडित और बाहर निकाला जाएगा। + +NFT से संबंधित सुरक्षा मुद्दे अक्सर फ़िशिंग घोटालों, स्मार्ट अनुबंध कमजोरियों या उपयोगकर्ता त्रुटियों (जैसे अनजाने में निजी कुंजी को उजागर करना) से संबंधित होते हैं, जिससे NFT मालिकों के लिए अच्छी वॉलेट सुरक्षा महत्वपूर्ण हो जाती है। + + + सुरक्षा को और जानें + + +## अग्रिम पठन {#further-reading} + +- [NFT के लिए शुरुआती गाइड](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _लिंडा झी, जनवरी 2020_ +- [EtherscanNFT ट्रैकर](https://etherscan.io/nft-top-contracts) +- [ERC-721 टोकन मानक](/developers/docs/standards/tokens/erc-721/) +- [ERC-1155 टोकन मानक](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/public/content/translations/hi/refi/index.md b/public/content/translations/hi/refi/index.md new file mode 100644 index 00000000000..d1b380663dc --- /dev/null +++ b/public/content/translations/hi/refi/index.md @@ -0,0 +1,79 @@ +--- +title: पुनर्योजी वित्त (ReFi) +description: ReFi और इसके वर्तमान उपयोग मामलों का अवलोकन। +lang: hi +template: use-cases +emoji: ":recycle:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: पुनर्योजी सिद्धांतों पर निर्मित एक वैकल्पिक आर्थिक प्रणाली +summaryPoint2: इथेरियम का उपयोग करके जलवायु परिवर्तन जैसे वैश्विक स्तर के समन्वय संकटों को हल करने का प्रयास +summaryPoint3: सत्यापित कार्बन क्रेडिट जैसी पारिस्थितिक लाभ संपत्तियों को बड़े पैमाने पर बढ़ाने का एक उपकरण +--- + +## ReFi क्या है? {#what-is-refi} + +**पुनर्योजी वित्त (ReFi)** ब्लॉकचेन के शीर्ष पर निर्मित उपकरणों और विचारों का एक समूह है, जिसका उद्देश्य उन अर्थव्यवस्थाओं को बनाना है जो निष्कर्षण या शोषणकारी के बजाय पुनर्योजी हों। अंततः, निष्कर्षण प्रणालियाँ उपलब्ध संसाधनों को समाप्त कर देती हैं और ढह जाती हैं; पुनर्योजी तंत्र के बिना, उनमें लचीलेपन की कमी होती है। ReFi मानता है कि हमारे ग्रह और समुदायों से संसाधनों के अस्थायी निष्कासन से मौद्रिक मूल्य के निर्माण को अलग किया जाना चाहिए। + +इसके बजाय, ReFi पुनर्योजी चक्र बनाकर पर्यावरणीय, सांप्रदायिक या सामाजिक समस्याओं को हल करने का प्रयास करता है। ये प्रणालियां प्रतिभागियों के लिए मूल्य बनाती हैं और साथ ही समुदायों और पारिस्थितिकी तंत्र को लाभ पहुंचाती हैं। + +ReFi की नींव में से एक [कैपिटल इंस्टीट्यूट](https://capitalinstitute.org) के जॉन फुलर्टन द्वारा प्रवर्तित पुनर्योजी अर्थशास्त्र की अवधारणा है। उन्होंने आठ परस्पर जुड़े सिद्धांतों का प्रस्ताव रखा जो प्रणालीगत स्वास्थ्य का आधार हैं: + +![आठ परस्पर जुड़े सिद्धांत](./refi-regenerative-economy-diagram.png) + +ReFi परियोजनाएं पुनर्योजी व्यवहारों को प्रोत्साहित करने के लिए [स्मार्ट अनुबंधों](/developers/docs/smart-contracts/) और [विकेन्द्रीकृत वित्त (DeFi)](/defi/)अनुप्रयोगों का उपयोग करके इन सिद्धांतों को साकार करती हैं, जैसे ख़राब पारिस्थितिकी तंत्र को बहाल करना, और जलवायु परिवर्तन और जैव विविधता हानि जैसे वैश्विक मुद्दों पर बड़े पैमाने पर सहयोग की सुविधा प्रदान करना। + +ReFi [केन्द्रीकृत विज्ञान (DeSci)](/desci/) आंदोलन के साथ भी मेल खाता है, जो इथेरियम को वैज्ञानिक ज्ञान को वित्त पोषित करने, निर्माण करने, समीक्षा करने, क्रेडिट देने, स्टोर करने और प्रसार करने के लिए एक मंच के रूप में उपयोग करता है। DeSci उपकरण पेड़ लगाने, समुद्र से प्लास्टिक हटाने या एक ख़राब पारिस्थितिकी तंत्र को बहाल करने जैसी पुनर्योजी गतिविधियों के लिए सत्यापन योग्य मानकों और प्रथाओं को विकसित करने, लागू करने और निगरानी करने के लिए उपयोगी हो सकते हैं। + +## कार्बन क्रेडिट का टोकनीकरण {#tokenization-of-carbon-credits} + +**[स्वैच्छिक कार्बन बाज़ार (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** उन परियोजनाओं के वित्तपोषण के लिए एक तंत्र है जो कार्बन उत्सर्जन पर सत्यापित सकारात्मक प्रभाव डालते हैं, या तो जारी उत्सर्जन को कम करते हैं, या पहले से ही वायुमंडल से उत्सर्जित ग्रीनहाउस गैसों को हटाते हैं। इन परियोजनाओं को सत्यापित होने के बाद "कार्बन क्रेडिट" नामक संपत्ति मिलती है, जिसे वे उन व्यक्तियों और संगठनों को बेच सकते हैं जो जलवायु क्रियावली का समर्थन करना चाहते हैं। + +VCM के अलावा, कई सरकार-निर्धारित कार्बन बाजार भी हैं (‘अनुपालन बाजार’) जो एक विशेष अधिकार क्षेत्र (जैसे देश या क्षेत्र) में कानूनों या विनियमन के माध्यम से कार्बन मूल्य की स्थापना का उद्देश्य रखते हैं, जिसमें वितरित होने वाले परमिट की आपूर्ति को नियंत्रित किया जाता है। अनुपालन बाजार अपने अधिकार क्षेत्र में प्रदूषकों को उत्सर्जन कम करने के लिए प्रेरित करते हैं, लेकिन वे पहले से ही उत्सर्जित ग्रीनहाउस गैसों को हटाने में सक्षम नहीं हैं। + +अधिक दशकों के विकास के बावजूद, VCM विभिन्न समस्याओं से जूझ रहा है: + +1. अत्यधिक टुकड़ा-टुकड़ा तरलता +2. अपारदर्शी लेन-देन तंत्र +3. उच्च शुल्क +4. बहुत धीमी व्यापार गति +5. स्केलेबिलिटी का अभाव + +VCM को नए ब्लॉकचेन आधारित **डिजिटल कार्बन बाजार (DCM)** में परिवर्तित करना कार्बन क्रेडिट को मान्यता प्राप्त करने, लेन-देन करने और उपयोग करने के लिए मौजूदा प्रौद्योगिकी को अपग्रेड करने का एक अवसर हो सकता है। ब्लॉकचेन्स सार्वजनिक रूप से सत्यापन योग्य डेटा, एक विस्तृत उपयोगकर्ता श्रेणी के लिए पहुंच और अधिक तरलता की अनुमति देते हैं। + +ReFi परियोजनाएं पारंपरिक बाजार की कई समस्याओं को दूर करने के लिए ब्लॉकचेन प्रौद्योगिकी का उपयोग करती हैं: + +- **तरलता कम संख्या में तरलता पूलों में केंद्रित होती है** जिनका कोई भी व्यक्ति स्वतंत्र रूप से व्यापार कर सकता है। बड़े संगठन और व्यक्तिगत उपयोगकर्ता इन पूलों का उपयोग बिना विक्रेता/खरीददार की मैन्युअल खोज, प्रतिभाग शुल्क या पूर्व पंजीकरण के कर सकते हैं। +- **सभी लेन-देन सार्वजनिक ब्लॉकचेन्स पर दर्ज होते हैं**। हर कार्बन क्रेडिट का पथ व्यापार गतिविधि के कारण हमेशा के लिए पता चलता है जैसे ही यह DCM में उपलब्ध होता है। +- **लेन-देन की गति लगभग तात्कालिक है**। पुराने बाजारों के माध्यम से बड़ी मात्रा में कार्बन क्रेडिट्स को सुरक्षित करना दिनों या सप्ताहों ले सकता है, लेकिन यह DCM में कुछ सेकंड में प्राप्त किया जा सकता है। +- **व्यापार गतिविधि बिना मध्यस्थों के होती है**, जो उच्च शुल्क लगाते हैं। डिजिटल कार्बन क्रेडिट्स एक विश्लेषण संगठन के डेटा के अनुसार [पारंपरिक क्रेडिट्स की तुलना में 62% लागत में सुधार](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne) प्रतिनिधित्व करते हैं। +- **DCM स्केलेबल है** और व्यक्तियों और बहुराष्ट्रीय कॉर्पोरेशनों की मांगों को समान रूप से पूरा कर सकता है। + +### DCM के मुख्य घटक {#key-components-dcm} + +DCM का वर्तमान परिदृश्य चार प्रमुख घटकों से बना है: + +1. रजिस्ट्रियां जैसे कि [Verra](https://verra.org/project/vcs-program/registry-system/) और [गोल्ड स्टैंडर्ड](https://www.goldstandard.org/) सुनिश्चित करती हैं कि कार्बन क्रेडिट बनाने वाली परियोजनाएं विश्वसनीय हैं। वे उन डेटाबेस को भी संचालित करते हैं जिनमें डिजिटल कार्बन क्रेडिट उत्पन्न होते हैं और उन्हें स्थानांतरित या उपयोग (सेवानिवृत्त) किया जा सकता है। + +ब्लॉकचेन पर निर्मित हो रही अभिनव परियोजनाओं की एक नई लहर चल रही है जो इस क्षेत्र में मौजूदा प्रतिष्ठित संगठनों को विघ्नित करने का प्रयास कर रही हैं। + +2. कार्बन ब्रिजेज, उर्फ टोकनाइज़र्स, पारंपरिक रजिस्ट्रीज से DCM में कार्बन क्रेडिट्स को प्रतिनिधित्व या स्थानांतरित करने की प्रौद्योगिकी प्रदान करते हैं। प्रमुख उदाहरणों में [टूकेन प्रोटोकॉल](https://toucan.earth/), [C3](https://c3.app/) और [Moss.Earth](https://moss.earth/) शामिल हैं। +3. एकीकृत सेवाएं अंत उपयोगकर्ताओं को कार्बन टालने और/या हटाने के क्रेडिट प्रदान करती हैं ताकि वे क्रेडिट का पारिस्थितिकी लाभ दावा कर सकें और जलवायु क्रियावली का समर्थन करने के लिए दुनिया के साथ साझा कर सकें। + +[Klima Infinity](https://www.klimadao.finance/infinity) और [Senken](https://senken.io/) जैसे कुछ Verra जैसे स्थापित मानकों के तहत तीसरे पक्ष द्वारा विकसित विभिन्न परियोजनाओं की एक चौड़ी श्रृंखला प्रदान करते हैं; जबकि [Nori](https://nori.com/) जैसे अन्य केवल उनके खुद के कार्बन क्रेडिट मानक के तहत विकसित विशिष्ट परियोजनाओं की प्रस्तावना करते हैं, जिसे वे जारी करते हैं और जिसके लिए उनके पास उनका स्वयं का समर्पित बाजार है। + +4. अंतर्निहित रेल्स और बुनियादी ढांचा जो कार्बन बाजार की पूरी आपूर्ति श्रृंखला के प्रभाव और कुशलता को बढ़ावा देने की सुविधा प्रदान करता है। [KlimaDAO](http://klimadao.finance/) एक सार्वजनिक सम्पत्ति के रूप में तरलता प्रदान करता है (किसी को भी पारदर्शी मूल्य पर कार्बन क्रेडिट्स खरीदने या बेचने की अनुमति देता है), कार्बन बाजारों और सेवानिवृत्तियों के बढ़ते प्रवाह को पुरस्कृत करता है, और टोकनाइज़ड कार्बन क्रेडिट्स के बारे में डेटा तक पहुंचने, प्राप्त करने और सेवानिवृत्त करने के लिए उपयोगकर्ता-अनुकूल अंतर-संचालित उपकरण प्रदान करता है। + +## कार्बन बाज़ारों से परे ReFi {#refi-beyond} + +हालांकि इस समय आम तौर पर कार्बन बाजारों पर और विशेष रूप से अंतरिक्ष के भीतर VCM को DCM में परिवर्तित करने पर मजबूत जोर है, "ReFi" शब्द पूरी तरह से कार्बन तक ही सीमित नहीं है। कार्बन क्रेडिट के अलावा अन्य पारिस्थितिकी तंत्र संपत्तियाँ भी विकसित और टोकनीकृत की जा सकती हैं, जिसका मतलब होगा कि अन्य नकारात्मक बाह्यताओं की कीमत भी भविष्य की आर्थिक प्रणालियों की आधार परतों के भीतर रखी जा सकती है। इसके अलावा, इस आर्थिक मॉडल का पुनर्योजी पहलु को अन्य क्षेत्रों में भी लागू किया जा सकता है, जैसे कि [Gitcoin](https://gitcoin.co/) जैसे वर्गीय वित्तपोषण प्लेटफार्मों के माध्यम से सार्वजनिक वस्तुओं का वित्तपोषण। खुली भागीदारी और संसाधनों के समान वितरण के विचार पर बने संगठन सभी को ओपन-सोर्स सॉफ्टवेयर परियोजनाओं के साथ-साथ शैक्षिक, पर्यावरण और समुदाय-संचालित परियोजनाओं के लिए धन जुटाने के लिए सशक्त बनाते हैं। + +पूंजी की दिशा को निष्कर्षण प्रथाओं से दूर पुनर्योजी प्रवाह की दिशा में बदलकर, वे परियोजनाएँ और कंपनियाँ जो सामाजिक, पर्यावरणीय, या सामुदायिक लाभ प्रदान करती हैं — और जो पारंपरिक वित्त में वित्त पोषण प्राप्त करने में असफल हो सकती हैं — जमीन पर उतर सकती हैं और वे अधिक तेज़ और आसानी से समाज के लिए सकारात्मक बाह्यताएं उत्पन्न कर सकते हैं। फंडिंग के इस मॉडल में परिवर्तन से अधिक समावेशी आर्थिक प्रणालियों का द्वार भी खुलता है, जहां सभी जनसांख्यिकी के लोग सक्रिय भागीदार बन सकते हैं बजाय केवल साक्षी बने रहने के। ReFi हमारी प्रजातियों और हमारे ग्रह पर सभी जीवन के सामने आने वाली अस्तित्वगत चुनौतियों पर कार्रवाई के समन्वय के लिए एक तंत्र के रूप में इथेरियम की एक दृष्टि प्रदान करता है — एक नए आर्थिक प्रतिमान की आधार परत के रूप में, जो आने वाली शताब्दियों के लिए अधिक समावेशी और टिकाऊ भविष्य को सक्षम बनाता है। + +## ReFi पर अतिरिक्त पाठन + +- [कार्बन मुद्राओं और अर्थव्यवस्था में उनके स्थान का एक उच्च-स्तरीय अवलोकन](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) +- [भविष्य के लिए मंत्रालय, जलवायु परिवर्तन से लड़ने में कार्बन-समर्थित मुद्रा की भूमिका को दर्शाने वाला एक उपन्यास है](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) +- [स्वैच्छिक कार्बन मार्केट की स्केलिंग के लिए टास्कफोर्स की एक विस्तृत रिपोर्ट](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) +- [ReFi पर केविन ओवॉकी और इवान मियाज़ोनो की CoinMarketCap शब्दावली प्रविष्टि](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/public/content/translations/hi/roadmap/beacon-chain/index.md b/public/content/translations/hi/roadmap/beacon-chain/index.md new file mode 100644 index 00000000000..99181a16beb --- /dev/null +++ b/public/content/translations/hi/roadmap/beacon-chain/index.md @@ -0,0 +1,76 @@ +--- +title: बीकन चेन +description: बीकन चेन के बारे में जानें - अपग्रेड जिसने हिस्सेदारी का सबूत एथेरियम पेश किया। +lang: hi +template: upgrade +image: /upgrades/core.png +alt: +summaryPoint1: बीकन चेन ने एथेरियम इकोसिस्टम के लिए हिस्सेदारी का सबूत पेश किया। +summaryPoint2: इसे सितंबर 2022 में ओरिजिनल एथेरियम काम का सबूत चेन के साथ मर्ज कर दिया गया था। +summaryPoint3: बीकन चेन ने सहमति तर्क और गॉसिप प्रोटोकॉल को पेश किया जो अब एथेरियम को सुरक्षित करता है। +--- + + + बीकन चेन 1 दिसंबर, 2020 को शिप कर दिया गया, और 15 सितंबर, 2022 को मर्ज अपग्रेड के साथ एथेरियम की सहमति तंत्र के रूप में औपचारिक रूप से हिस्सेदारी का सबूत दिया गया। + + +## बीकन चेन क्या था? {#what-is-the-beacon-chain} + +बीकन चेन ओरिजिनल हिस्सेदारी के सबूत ब्लॉकचेन का नाम था जिसे 2020 में लॉन्च किया गया था। एथेरियम मेननेट पर इसे सक्षम करने से पहले हिस्सेदारी के सबूत सहमति तर्क को सुनिश्चित करने के लिए बनाया गया था। इसलिए, इसे ओरिजिनल काम का सबूत एथेरियम के साथ चलाया गया। काम के सबूत को बंद करना और एथेरियम पर हिस्सेदारी के सबूत पर स्विच करने के लिए बीकन चेन को निर्देश देना आवश्यक है कि वे मूल एथेरियम चेन से लेनदेन स्वीकार करें, उन्हें ब्लॉक में बंडल करें और फिर उन्हें एक हिस्सेदारी के सबूत आधारित सहमति तंत्र का उपयोग करके एक ब्लॉकचेन में व्यवस्थित करें। उसी समय, ओरिजिनल एथेरियम क्लाइंट ने अपने माईनिंग, ब्लॉक प्रसार और सहमति तर्क को बंद कर दिया, और वह सब बीकन चेन को सौंप दिया। इस इवेंट को [मर्ज](/roadmap/merge/) के नाम से जाना जाता है। एक बार मर्ज हो जाने के बाद, अब दो ब्लॉकचेन काम नहीं कर रहे थे; केवल एक हिस्सेदारी का सबूत एथेरियम चेन थी। + +## बीकन चेन ने क्या किया? {#what-does-the-beacon-chain-do} + +इससे पहले कि उन स्टेकर्स ने वास्तविक एथेरियम लेनदेन को वैध मानना शुरू किया, बीकन चेन उन खातों के लेजर को दिया गया नाम था जो एथेरियम [स्टेकर्स](/staking/) के नेटवर्क का संचालन और समन्वय करते थे। यह लेनदेन को प्रोसेस नहीं करता था या स्मार्ट कॉन्ट्रैक्ट इंटरैक्शन को हैंडल नहीं करता था। + +इसने आम सहमति इंजन (या "सहमति परत") की शुरुआत की जिसने एथेरियम पर काम के सबूत माईनिंग का स्थान ले लिया और इसके साथ कई महत्वपूर्ण सुधार हुए। + +बीकन चेन [सुरक्षित, पर्यावरण के अनुकूल और स्केलेबल एथेरियम का एक मूलभूत घटक था जो अब हमारे पास है](/roadmap/vision/)। + +## बीकन चेन का प्रभाव {#beacon-chain-features} + +### प्रस्तुत है स्टेकिंग {#introducing-staking} + +बीकन चेन ने एथेरियम के लिए [हिस्सेदारी का सबूत](/developers/docs/consensus-mechanisms/pos/) की शुरुआत की। यह एथेरियम को सुरक्षित रखता है और इस प्रोसेस में सत्यापनकर्ता ज़्यादा ETH अर्जित करते हैं। व्यवहार में, स्टेकिंग, सत्यापनकर्ता सॉफ़्टवेयर को सक्रिय करने के लिए स्टेकिंग ETH शामिल करता है। एक स्टेकर के तौर पर, आप उस सॉफ़्टवेयर को चलाते हैं जो चेन में नए ब्लॉक बनाता और मान्य करता है। + +स्टेकिंग उसी तरह के उद्देश्य को पूरा करता है जिसका इस्तेमाल [माईनिंग](/Developers/docs/mining/) में किया जाता है, लेकिन यह कई मायनों में अलग है। माईनिंग के लिए शक्तिशाली हार्डवेयर और ऊर्जा खपत के रूप में बड़े अग्रिम व्यय की आवश्यकता होती है, जिसके परिणामस्वरूप बड़े व्यय (बड़ी आर्थिक इकाई) और केंद्रीकरण को बढ़ावा मिलता है। माईनिंग भी एसेट को आनुषंगिक के रूप में बंद करने की आवश्यकता के साथ नहीं आया, बल्कि इसका उद्देश्य हमले के बाद बुरे लोगों को दंडित करने की प्रोटोकॉल की क्षमता को सीमित करना है। + +हिस्सेदारी के सबूत में बदलाव ने एथेरियम को काम के सबूत की तुलना में बहुत ज़्यादा सुरक्षित और विकेंद्रीकृत बना दिया। जितने अधिक लोग नेटवर्क में भाग लेंगे, हमले से यह उतना ही अधिक विकेंद्रीकृत और सुरक्षित होगा। + + + यदि आप एक सत्यापनकर्ता बनने में रुचि रखते हैं और एथेरियम को सुरक्षित करने में मदद करते हैं, तो स्टेकिंग के बारे में और जानें। + + +### शार्डिंग सेट करना {#setting-up-for-sharding} + +चूँकि बीकन चेन का ओरिजिनल एथेरियम मेननेट के साथ मर्ज हो गया, इसलिए एथेरियम समुदाय ने नेटवर्क को स्केल करना शुरू कर दिया। + +हिस्सेदारी का सबूत किसी भी समय सभी स्वीकृत ब्लॉक उत्पादकों की रजिस्ट्री करने की सुविधा है, जिनमें से प्रत्येक ETH स्टेक पर है। यह रजिस्ट्री विभाजित करने और जीतने की क्षमता के लिए चरण निर्धारित करती है लेकिन विशिष्ट नेटवर्क ज़िम्मेदारियों को विश्वसनीय ढंग से बाँटती है। + +यह ज़िम्मेदारी काम का सबूत के विपरीत है, जहाँ माइनर्स का नेटवर्क के प्रति कोई दायित्व नहीं होता है और वे माईनिंग को रोक सकते हैं और अपने नोड सॉफ़्‍टवेयर को हमेशा के लिए बिना किसी प्रतिक्रिया के तुरंत बंद कर सकते हैं। ज्ञात ब्लॉक प्रस्तावकों की कोई रजिस्ट्री भी नहीं है और नेटवर्क ज़िम्मेदारियों को सुरक्षित रूप से विभाजित करने का कोई विश्वसनीय तरीका नहीं है। + +[शार्डिंग के बारे में अधिक जानकारी](/roadmap/danksharding/) + +## अपग्रेड के बीच संबंध {#relationship-between-upgrades} + +एथेरियम अपग्रेड कुछ हद तक परस्पर जुड़े हुए हैं। तो बीकन चेन दूसरे अपग्रेड को कैसे प्रभावित करता है, इसे दोबारा से बताएं। + +### बीकन चेन और मर्ज {#merge-and-beacon-chain} + +पहले, बीकन चेन एथेरियम मेननेट से अलग से उपलब्ध थी, लेकिन 2022 में उनका मर्ज कर दिया गया। + + + मर्ज + + +### शार्ड और बीकन चेन {#shards-and-beacon-chain} + +शार्डिंग केवल एथेरियम इकोसिस्टम में सुरक्षित रूप से हिस्सेदारी का सबूत आम सहमति तंत्र के साथ हिस्सेदारी कर सकती है। बीकन चेन ने स्टेकिंग की शुरुआत की, जिसे मेननेट के साथ 'मर्ज' कर दिया गया, जिससे एथेरियम को आगे बढ़ाने में मदद करने के लिए शार्डिंग का मार्ग प्रशस्त हुआ। + + + शार्ड चेन + + +## अतिरिक्त पाठ्यसामग्री + +- [एथेरियम के आगामी अपग्रेड संबंधी और जानकारी](/roadmap/vision) +- [हिस्सेदारी का सबूत के बारे में और जानकारी](/developers/docs/consensus-mechanisms/pos) diff --git a/public/content/translations/hi/roadmap/merge/index.md b/public/content/translations/hi/roadmap/merge/index.md new file mode 100644 index 00000000000..725361016e7 --- /dev/null +++ b/public/content/translations/hi/roadmap/merge/index.md @@ -0,0 +1,225 @@ +--- +title: मर्ज +description: मर्ज के बारे में जानें - कब मेननेट एथेरियम ने हिस्सेदारी का सबूत अपनाया। +lang: hi +template: upgrade +image: /upgrades/merge.png +alt: +summaryPoint1: एथेरियम मेननेट हिस्सेदारी के सबूत का उपयोग करता है, लेकिन ऐसा हमेशा नहीं था। +summaryPoint2: ओरिजिनल काम के सबूत मैकेनिज़्म से हिस्सेदारी के सबूत में अपग्रेड को मर्ज कहा जाता था। +summaryPoint3: मर्ज का आशय है ओरिजिनल एथेरियम मेननेट को एक अलग हिस्सेदारी के सबूत ब्लॉकचेन के साथ मर्ज करना, जिसे बीकन चेन कहा जाता है, जो अब एक चेन के रूप में मौजूद है। +summaryPoint4: मर्ज ने एथेरियम की ऊर्जा खपत को ~99.95% तक कम कर दिया। +--- + + + मर्ज को 15 सितंबर, 2022 को निष्पादित किया गया था। इसने एथेरियम के हिस्सेदारी के सबूत सहमति के ट्रांजिशन को पूरा किया, आधिकारिक तौर पर काम के सबूत को हटा दिया और ऊर्जा की खपत को ~99.95% तक कम कर दिया। + + +## मर्ज क्या था? {#what-is-the-merge} + +मर्ज, एथेरियम की ओरिजिनल निष्पादन परत (मेननेट जो कि [उत्पत्ति](/history/#frontier) के बाद से मौजूद है) के साथ अपनी नई हिस्सेदारी के सबूत सहमति परत, बीकन चेन से जुड़ने की प्रक्रिया थी। इसने ऊर्जा-गहन माईनिंग की ज़रूरत को ख़त्म कर दिया और इसके बजाय नेटवर्क को स्टेक्ड ETH का उपयोग करके सुरक्षित करने में सक्षम बनाया। एथेरियम विज़न—अधिक स्केलेबिलिटी, सुरक्षा और स्थिरता को साकार करने में यह वास्तव में एक रोमांचक कदम था। + + + +प्रारंभ में, [बीकन चेन](/roadmap/beacon-chain/) को [मेननेट](/glossary/#mainnet) से अलग से भेजा जाता था। एथेरियम मेननेट को - उसके सभी खातों, बैलेंस, स्मार्ट अनुबंधों और ब्लॉकचेन स्थिति के साथ - [काम के सबूत](/developers/docs/consensus-mechanisms/pow/) के द्वारा सुरक्षित किया जाता रहेगा, भले ही [हिस्सेदारी के सबूत](/developers/docs/consensus-mechanisms/pos/) का उपयोग करके बीकन चेन समानांतर में चलती रहे। मर्ज तब हुआ जब ये दोनों सिस्टम अंत में एक साथ आए, और काम के सबूत को स्थायी रूप से हिस्सेदारी के सबूत से बदल दिया गया। + +कल्पना कीजिए कि एथेरियम एक स्पेसशिप है, जिसे तारों के बीच यात्रा करने से पहले लॉन्च किया गया था। बीकन चेन के साथ, समुदाय ने एक नया इंजन और एक कठोर पतवार बनाया है। महत्वपूर्ण परीक्षण के बाद, पुराने इंजन को मिड-फ़्लाइट के लिए नए इंजन से स्वैप करने का समय आ गया। इसने नए, ज़्यादा कुशल इंजन को मौजूदा शिप में मर्ज कर दिया जिससे यह कुछ गंभीर प्रकाश वर्ष के लिए डाला जा सके और ब्रह्मांड पर ले जाने के लिए तैयार हो सके। + +## मेननेट के साथ मर्ज करना {#merging-with-mainnet} + +काम के सबूत ने एथेरियम मेननेट को उत्पत्ति से मर्ज तक सुरक्षित रखा। इसने एथेरियम ब्लॉकचेन को अनुमति दी कि हम सभी जुलाई 2015 में इसकी सभी परिचित सुविधाओं—लेनदेन, स्मार्ट अनुबंध, खातों आदि के साथ अस्तित्व में आने के आदी हैं। + +एथेरियम के पूरे इतिहास में, डेवलपर काम के सबूत से हिस्सेदारी के सबूत तक एक अंतिम ट्रांज़िशन के लिए तैयार हैं। 1 दिसंबर, 2020 को बीकन चेन को समानांतर में चलने वाले मेननेट के लिए एक अलग ब्लॉकचेन के रूप में बनाया गया था। + +बीकन चेन मूल रूप से मेननेट लेनदेन को संसाधित नहीं कर रही थी। इसके बजाय, यह सक्रिय सत्यापनकर्ताओं और उनके खाते के बैलेंस पर सहमत होकर अपनी स्वयं की स्थिति पर आम सहमति बना रहा था। व्यापक परीक्षण के बाद, बीकन चेन के लिए वास्तविक दुनिया के डेटा पर आम सहमति तक पहुँचने का समय आ गया। मर्ज के बाद, बीकन चेन सभी नेटवर्क डेटा के लिए सहमति इंजन बन गई, जिसमें निष्पादन परत लेनदेन और खाता बैलेंस शामिल हैं। + +मर्ज ने ब्लॉक प्रोडक्शन के इंजन के रूप में बीकन चेन का उपयोग करने के लिए आधिकारिक स्विच का प्रतिनिधित्व किया। माईनिंग अब वैध ब्लॉक के उत्पादन का साधन नहीं है। इसके बजाय, हिस्सेदारी का सबूत सत्यापनकर्ताओं ने इस भूमिका को अपनाया है और अब सभी लेनदेन की वैधता को प्रोसेस करने और ब्लॉक प्रस्तावित करने के लिए ज़िम्मेदार हैं। + +मर्ज में कोई इतिहास नहीं खोया था। मेननेट का बीकन चेन के साथ मर्ज होने के बाद, इसने एथेरियम के संपूर्ण लेनदेन के इतिहास को भी मर्ज कर दिया। + + +हिस्सेदारी का सबूत के इस ट्राज़िशन से ईथर जारी करने का तरीका बदल गया। मर्ज से पहले और बाद में ईथर जारी करने के बारे में और जानें। + + +### उपयोगकर्ताओं और धारकों {#users-holders} + +**मर्ज से धारकों/उपयोगकर्ताओं के लिए कुछ भी नहीं बदला।** + +_यह दोहराया जा सकता है_: एथेरियम पर ETH या किसी अन्य डिजिटल एसेट के उपयोगकर्ता या धारक के साथ-साथ गैर-नोड-ऑपरेटिंग स्टेकर्स के रूप में, **मर्ज के लिए आपको अपने फंड या वॉलेट से कुछ भी करने की आवश्यकता नहीं है।** ETH तो ETH ही है। "पुराना ETH"/"नया ETH" या "ETH1"/"ETH2" जैसी कोई चीज़ नहीं है और वॉलेट मर्ज के बाद ठीक उसी तरह काम करते हैं जैसा वे पहले करते थे—ऐसा बताने वाले लोग संभावित स्कैमर्स हो सकते हैं। + +काम के सबूत को स्वाइप करने के बावजूद, उत्पत्ति के बाद से एथेरियम का संपूर्ण इतिहास बरकरार रहा और हिस्सेदारी के सबूत के ट्राज़िशन में कोई बदलाव नहीं हुआ। मर्ज से पहले आपके वॉलेट के फंड को मर्ज के बाद भी उपयोग किया जा सकता है। **आपकी ओर से अपग्रेड करने के लिए किसी एक्शन की ज़रूरत नहीं है।** + +[एथेरियम सुरक्षा के बारे में और जानकारी](/security/#eth2-token-scam) + +### नोड ऑपरेटर्स और डिसेंट्रलाइज़ एप्लिकेशन (dapp) डेवलपर {#node-operators-dapp-developers} + + + +मुख्य एक्शन आइटम्स में ये शामिल हैं: + +1. सहमति ग्राहक और निष्पादन ग्राहक _दोनों_ को चलाएँ; मर्ज के बाद निष्पादन डेटा प्राप्त करने के लिए थर्ड पार्टी के एंडपॉइंट अब काम नहीं करते हैं। +2. एक साझा JWT रहस्य के साथ निष्पादन और सहमति ग्राहक दोनों को प्रमाणित करें ताकि वे सुरक्षित रूप से संवाद कर सकें। +3. अपने अर्जित लेनदेन शुल्क सुझाव/MEV प्राप्त करने के लिए `शुल्क प्राप्तकर्ता` पता सेट करें। + +ऊपर दिए गए पहले दो आइटम्स पूरा न करने पर आपके नोड को "ऑफ़लाइन" के रूप में तब तक देखा जाएगा जब तक कि दोनों परतें सिंक और प्रमाणित नहीं हो जाती हैं। + +`शुल्क प्राप्तकर्ता` सेट नहीं करने पर भी आपके सत्यापनकर्ता को हमेशा की तरह व्यवहार करने की अनुमति मिलेगी, लेकिन आप असंतुलित शुल्क सुझाव और सभी MEV का लाभ नहीं ले पाएँगे जो आपने अन्यथा अपने सत्यापनकर्ता के प्रस्तावों में अर्जित किया होगा। + + + + +मर्ज होने तक, निष्पादन क्लाइंट (जैसे गेथ, एरिगॉन, बेसु या नेदरमाइंड) नेटवर्क द्वारा चर्चा किए जा रहे ब्लॉक को प्राप्त करने, ठीक से पुष्‍टि करने और प्रसारित करने के लिए पर्याप्त था। _मर्ज के बाद_, निष्पादन पेलोड के भीतर निहित लेनदेन की वैधता अब "सहमति ब्लॉक" की वैधता पर भी निर्भर करती है, जो इसमें शामिल है। + +परिणामस्वरूप, किसी पूर्ण एथेरियम नोड को अब निष्पादन क्लाइंट और सहमति ग्राहक दोनों की ज़रूरत होती है। ये दो क्लाइंट एक नए इंजन API का उपयोग करके एक साथ काम करते हैं। इंजन API को JWT रहस्य का उपयोग करके प्रमाणीकरण की आवश्यकता होती है, जो सुरक्षित संचार की अनुमति देने वाले दोनों क्लाइंट को प्रदान किया जाता है। + +मुख्य एक्शन आइटम्स में ये शामिल हैं: + +- निष्पादन क्लाइंट के अलावा एक सहमति ग्राहक इंस्टॉल करें +- एक साझा JWT रहस्य के साथ निष्पादन और सहमति ग्राहकों को प्रमाणित करें ताकि वे एक-दूसरे के साथ सुरक्षित रूप से संवाद कर सकें। + +ऊपर दिए गए आइटम्स पूरा न करने पर आपका नोड तब तक "ऑफ़लाइन" दिखाई देगा जब तक कि दोनों परतें सिंक और प्रमाणित नहीं हो जाती हैं। + + + + + +मर्ज सहमति में बदलाव के साथ आया, जिसमें निम्न से संबंधित बदलाव भी शामिल हैं: + +- ब्लॉक संरचना +- स्लॉट/ब्लॉक टाइमिंग +- ओपकोड बदलाव +- ऑन-चेन रैंडमनेस के स्रोत +- _सुरक्षित शीर्ष_ और _अंतिम रूप दिए गए ब्लॉक_ की अवधारणा + +अधिक जानकारी के लिए, टिम बीको के इस ब्लॉग पोस्ट को देखें [एथेरियम के एप्लिकेशन को मर्ज कैसे प्रभावित करता है] (https://blog.ethereum.org/2021/11/29/how-the-merge-impacts-app-layer/)। + + +## मर्ज और ऊर्जा की खपत {#merge-and-energy} + +मर्ज ने एथेरियम के लिए काम के सबूत की समाप्ति को चिह्नित किया और एक अधिक टिकाऊ, पर्यावरण के अनुकूल एथेरियम के युग की शुरुआत की। एथेरियम की ऊर्जा खपत में अनुमानित 99.95% की कमी आई है, जिससे एथेरियम एक ग्रीन ब्लॉकचेन बन गया है। [एथेरियम ऊर्जा खपत](/energy-consumption/) के बारे में और जानें। + +## मर्ज और स्केलिंग {#merge-and-scaling} + +मर्ज ने काम के सबूत के अंतर्गत संभव नहीं होने वाले अन्य स्केलेबिलिटी अपग्रेड के लिए स्टेज भी सेट किया है, जिससे एथेरियम अपने [एथेरियम विज़न](/roadmap/vision/) में बताए गए पूर्ण स्केल, सुरक्षा और स्थिरता पाने के लिए एक कदम और करीब आ गया है। + +## मर्ज के बारे में ग़लत धारणाएँ {#misconceptions} + + +एथेरियम नोड्स दो प्रकार के होते हैं: नोड्स जो ब्लॉक को प्रस्ताव दे सकते हैं और ऐसे नोड्स जो नहीं देते हैं। + +नोड्स जो ब्लॉक को प्रस्ताव देते हैं, एथेरियम पर कुल नोड्स की एक छोटी संख्या होती है। इस श्रेणी में काम का सबूत (PoW) के तहत माईनिंग नोड्स और हिस्सेदारी का सबूत (PoW) के तहत सत्यापनकर्ता नोड्स शामिल हैं। इस श्रेणी को कभी-कभी अगले ब्लॉक का प्रस्ताव देने और प्रोटोकॉल पुरस्कार अर्जित करने की क्षमता के बदले आर्थिक संसाधनों (जैसे हिस्सेदारी का सबूत में GPU हैश पावर या काम का सबूत में स्टेक्ड ETH) की आवश्यकता होती है। + +नेटवर्क पर अन्य नोड्स (अर्थात अधिकांश) को 1-2 TB के उपलब्ध स्टोरेज और इंटरनेट कनेक्शन वाले उपभोक्ता-श्रेणी के कंप्यूटर से परे किसी भी अन्य आर्थिक संसाधन को प्रतिबद्ध करने की आवश्यकता नहीं है। ये नोड्स ब्लॉक का प्रस्ताव नहीं देते हैं, लेकिन वे अभी भी सभी ब्लॉक प्रस्तावकों को नए ब्लॉक पर ध्‍यान देकर और नेटवर्क सहमति नियमों के अनुसार आगमन पर उनकी वैधता की पुष्टि करके जवाबदेह बनाकर नेटवर्क को सुरक्षित करने में महत्वपूर्ण भूमिका निभाते हैं। अगर ब्लॉक वैध है, तो नोड नेटवर्क के ज़रिए इसका प्रसार करना जारी रखता है। अगर ब्लॉक किसी भी कारण से अमान्य है, तो नोड सॉफ़्टवेयर इसे अमान्य मानकर इस पर ध्यान नहीं देगा और इसके प्रसार को रोक देगा। + +एक गैर-ब्लॉक-उत्पादक नोड चलाना किसी के लिए भी आम सहमति तंत्र (काम का सबूत या हिस्सेदारी का सबूत) के तहत संभव है; सभी उपयोगकर्ताओं के पास साधन होने पर इसे _पूरी तरह से प्रोत्साहित_ किया जाता है। कोई नोड चलाना एथेरियम के लिए बेहद महत्वपूर्ण है और इसे चलाने वाले किसी भी व्यक्ति को बेहतर सुरक्षा, गोपनीयता और सेंसरशिप प्रतिरोध जैसे अतिरिक्त लाभ मिलते हैं। + +एथेरियम नेटवर्क के विकेंद्रीकरण को बनाए रखने के लिए किसी भी व्यक्ति के लिए अपना स्वयं का नोड चलाने की क्षमता _होना आवश्यक_ है। + +[अपना खुद का नोड चलाने के बारे में और जानें](/run-a-node/) + + + + +गैस शुल्क नेटवर्क की क्षमता के सापेक्ष नेटवर्क की माँग का एक उत्पाद है। मर्ज ने काम का सबूत के उपयोग को हटा दिया, सहमति के लिए हिस्सेदारी का सबूत में बदल गया, लेकिन नेटवर्क क्षमता या थ्रूपुट को सीधे प्रभावित करने वाले किसी भी पैरामीटर को महत्वपूर्ण रूप से नहीं बदला। + +[रोलअप-केंद्रित रोडमैप](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698) के साथ, [परत 2](/परत-2/) पर उपयोगकर्ता गतिविधि को बढ़ाने पर ध्यान केंद्रित किया जा रहा है, परत 1 मेननेट को एक सुरक्षित विकेंद्रीत सेटमलमेंट परत के रूप में सक्षम करते हुए रोलअप डेटा स्टोरेज के लिए अनुकूलित किया गया है, ताकि रोलअप लेनदेन को तेज़ी से किफ़ायती बनाया जा सके। इसे समझने के लिए हिस्सेदारी के सबूत में ट्रांज़िशन की महत्वपूर्ण भूमिका होती है। [गैस और फीस के बारे में और जानकारी।](/डेवलपर/दस्तावेज़/गैस/) + + + +लेनदेन की "गति" को कुछ तरीकों से मापा जा सकता है, जिसमें ब्लॉक में शामिल होने का समय और फ़ाइनल रूप देने का समय शामिल है। ये दोनों थोड़ा बदलाव करते हैं, लेकिन इस तरह से नहीं कि उपयोगकर्ताओं का ध्यान जाए। + +ऐतिहासिक रूप से, काम के सबूत पर, हर ~13.3 सेकंड में एक नया ब्लॉक रखने का लक्ष्य था। हिस्सेदारी का सबूत के तहत, स्लॉट ठीक हर 12 सेकंड में आते हैं, जिनमें से प्रत्येक सत्यापनकर्ता के लिए एक ब्लॉक प्रकाशित करने का अवसर होता है। अधिकांश स्लॉट में ब्लॉक होते हैं, लेकिन ज़रूरी नहीं कि सभी में हों (अर्थात कोई सत्यापनकर्ता ऑफ़लाइन हो)। हिस्सेदारी के सबूत में, काम के सबूत की तुलना में ब्लॉक ~10% ज़्यादा बनते हैं। यह पूरी तरह से महत्वहीन बदलाव था और इस पर उपयोगकर्ताओं द्वारा ध्यान दिए जाने की संभावना नहीं है। + +हिस्सेदारी के सबूत ने लेनदेन की अंतिम अवधारणा पेश की जो पहले मौजूद नहीं थी। काम का सबूत में, किसी लेनदेन के शीर्ष पर माइन किए गए प्रत्येक पास होने वाले ब्लॉक के साथ ब्लॉक को वापस लाने की क्षमता तेज़ी से ज़्यादा मुश्किल होती जाती है, लेकिन यह कभी भी शून्य तक नहीं पहुँचती है। हिस्सेदारी का सबूत के तहत, ब्लॉक युग में बंडल किए जाते हैं (6.4 मिनट के समय में ब्लॉक के लिए 32 मौके होते हैं) जिस पर सत्यापनकर्ता वोट करते हैं। जब एक युग समाप्त होता है, तो सत्यापनकर्ता इस बात पर वोट करते हैं कि युग को 'सही' माना जाए या नहीं। अगर सत्यापनकर्ता युग को सही ठहराने के लिए सहमत होते हैं, तो इसे अगले युग में अंतिम रूप दिया जाता है। अंतिम लेनदेन को पूर्ववत करना आर्थिक रूप से ठीक नहीं है क्योंकि इसके लिए कुल स्टेक्ड ETH के एक तिहाई से ज़्यादा प्राप्त करने और हटाने की आवश्यकता होगी। + + + + +स्टेक्ड ETH और स्टेकिंग पुरस्कार वापस लेने की क्षमता के बिना लॉक किया जाना जारी है। आगामी शंघाई अपग्रेड के लिए निकासी का प्लान है। + + + +यह उपरोक्त नोट के विपरीत प्रतीत हो सकता है कि हटाए जाने को शंघाई अपग्रेड होने तक सक्षम नहीं किया गया है, लेकिन सत्यापनकर्ताओं के पास ब्लॉक प्रस्तावों के दौरान अर्जित शुल्क पुरस्कार/MEV तक तुरंत एक्सेस होती है। + +प्रोटोकॉल, सहमति में योगदान देने के लिए सत्यापनकर्ताओं को पुरस्कार के रूप में ETH जारी करता है। सहमति परत नए जारी किए गए ETH के लिए ज़िम्मेदार है, जहाँ एक सत्यापनकर्ता के पास एक यूनिक पता होता है जो उसके स्टेक्ड ETH और प्रोटोकॉल पुरस्कार रखता है। यह ETH शंघाई अपडेट होने तक लॉक है। + +निष्पादन परत पर ETH को सहमति परत से अलग रखा जाता है। जब उपयोगकर्ता एथेरियम मेननेट पर लेनदेन निष्पादित करते हैं, तो सत्यापनकर्ता को टिप सहित गैस को कवर करने के लिए ETH का भुगतान किया जाना चाहिए। यह ETH पहले से ही निष्पादन स्तर पर है, प्रोटोकॉल द्वारा नया जारी नहीं किया जा रहा है, और सत्यापनकर्ता के लिए तुरंत उपलब्ध है (क्लाइंट सॉफ़्टवेयर को एक उचित `शुल्क प्राप्तकर्ता` पता प्रदान किया गया है)। + + + +शंघाई अपग्रेड के बाद हटाना सक्षम करने के बाद, सभी सत्यापनकर्ताओं को 32 ETH से ऊपर के अपने स्टेकिंग बैलेंस को वापस लेने के लिए प्रोत्साहित किया जाएगा, क्योंकि ये फंड प्रोडक्शन में नहीं जुड़ते हैं और अन्यथा लॉक हो जाते हैं। APR (कुल ETH स्टेक्ड निर्धारित) के आधार पर, उन्हें अपने सत्यापनकर्ताओं से बाहर निकलने के लिए प्रोत्साहित किया जा सकता है ताकि वे अधिक उत्पादन अर्जित करने के लिए अपने पुरस्कारों का उपयोग करके अपना संपूर्ण बैलेंस या संभावित रूप से और भी अधिक स्टेक प्राप्त कर सकें। + +यहाँ एक महत्वपूर्ण चेतावनी, पूर्ण सत्यापनकर्ता निकास प्रोटोकॉल द्वारा सीमित दर हैं, इसलिए प्रति युग केवल छह सत्यापनकर्ता बाहर निकल सकते हैं (प्रत्येक 6.4 मिनट, इसलिए प्रति दिन 1350, या 10 मिलियन से अधिक ETH स्टेक्ड पर केवल ~43,200 ETH प्रति दिन)। यह दर सीमा कुल ETH स्टेक्ड आधार पर समायोजित होती है और फंड को बड़े पैमाने पर इधर से उधर जाने से रोकती है। इसके अलावा, यह एक संभावित हमलावर को एक स्लेशेबल अपराध करने के लिए अपने स्टेक का उपयोग करने से रोकता है और प्रोटोकॉल में स्लेशिंग पेनल्टी को लागू करने से पहले एक ही युग में अपने पूरे स्टेकिंग बैलेंस को बाहर कर देता है। + +APR को जानबूझकर डायनेमिक बनाया गया है, जिससे स्टेकर्स के मार्केट को बैलेंस करने की अनुमति मिलती है कि वे नेटवर्क को सुरक्षित करने में मदद के लिए कितना भुगतान करने को तैयार हैं। हटाना सक्षम होने पर, यदि दर बहुत कम है, तो सत्यापनकर्ता प्रोटोकॉल द्वारा सीमित दर पर बाहर निकल जाएँगे। धीरे-धीरे यह उन सभी के लिए APR बढ़ाएगा जो फिर से नए या लौटने वाले स्टेकर्स को आकर्षित कर रहे हैं। + + +## 'Eth2' का क्या हुआ? {#eth2} + +शब्द 'Eth2' को निकाल दिया गया है। 'Eth1' और 'Eth2' को एक ही चेन में मर्ज करने के बाद, अब दो एथेरियम नेटवर्क के बीच अंतर करने की कोई आवश्यकता नहीं है; वहाँ सिर्फ एथेरियम ही काफी है। + +भ्रम से बचने के लिए, समुदाय ने इन शर्तों को अपडेट किया है: + +- 'Eth1' अब 'निष्पादन परत' है, जो लेनदेन और निष्पादन को प्रबंधित करती है। +- 'Eth2' अब 'सहमति परत' है, जो हिस्सेदारी के सबूत को प्रबंधित करती है। + +ये शब्दावली अपडेट केवल नामकरण परंपराओं को बदलते हैं; इससे एथेरियम के लक्ष्य या रोडमैप नहीं बदलता है। + +['Eth2' का नाम बदलने के बारे में और जानें](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) + +## अपग्रेड के बीच संबंध {#relationship-between-upgrades} + +एथेरियम अपग्रेड कुछ हद तक परस्पर जुड़े हुए हैं। तो आइए दोहराते हैं कि मर्ज दूसरे अपग्रेड से कैसे संबंधित हैं। + +### मर्ज और बीकन चेन {#merge-and-beacon-chain} + +मर्ज ओरिजिनल मेननेट निष्पादन परत के लिए नई सहमति परत के रूप में बीकन चेन का औपचारिक रूप से अपनाने के बारे में बताता है। मर्ज के बाद से, एथेरियम मेननेट को सुरक्षित करने के लिए सत्यापनकर्ताओं को असाइन किया गया है, और [काम के सबूत](/developers/docs/consensus-mechanisms/pow/) पर माईनिंग अब ब्लॉक उत्पादन का वैध साधन नहीं है। + +इसके बजाय सहमति में भाग लेने के अधिकार के बदले स्टेक्ड ETH रखने वाले नोड्स को मान्य करके ब्लॉक प्रस्तावित किए जाते हैं। ये अपग्रेड भविष्य के स्केलेबिलिटी अपग्रेड के लिए स्टेज सेट करते हैं, जिसमें शार्डिंग भी शामिल है। + + + बीकन चेन + + +### मर्ज और शंघाई अपग्रेड {#merge-and-shanghai} + +हिस्सेदारी के सबूत के लिए एक सफल ट्रांज़िशन पर फ़ोकस करना आसान बनाने और अधिकतम करने के लिए, मर्ज अपग्रेड में कुछ अपेक्षित फ़ीचर शामिल नहीं थीं, जैसे कि स्टेक्ड ETH को वापस लेने की क्षमता। मर्ज को फ़ॉलो करने के लिए शंघाई अपग्रेड की योजना बनाई गई है, जो स्टेकर्स की वापस लेने की क्षमता को सक्षम करेगा। + +[GitHub पर शंघाई अपग्रेड प्लानिंग इश्यू](https://github.com/ethereum/pm/issues/450), या [EF रिसर्च एंड डेवलपमेंट ब्लॉग](https://blog.ethereum.org/category/research-and-development/) के साथ अप-टू-डेट रहें। उत्सुक लोग, [मर्ज के बाद क्या होता है](https://youtu.be/7ggwLccuN5s?t=101) के बारे में और जानें, जिसे वितालिक ने अप्रैल 2021 ETHGlobal इवेंट में प्रस्तुत किया था। + +### मर्ज और शार्डिंग {#merge-and-data-sharding} + +मूल रूप से, स्केलेबिलिटी का पता लगाने के लिए मर्ज से पहले शार्डिंग पर काम करने की योजना थी। हालाँकि, [परत 2 स्केलिंग समाधान](/layer-2/) में बढ़ोतरी के साथ, प्राथमिकता पहले काम के सबूत को हिस्सेदारी के सबूत में बदलने की हो गई है। + +शार्डिंग के लिए योजनाएँ तेज़ी से विकसित हो रही हैं, लेकिन लेनदेन निष्पादन को बढ़ाने के लिए परत 2 टेक्नोलॉजी में वृद्धि और सफलता को देखते हुए, नेटवर्क क्षमता में अत्यधिक वृद्धि की अनुमति देते हुए, रोलअप अनुबंधों से कंप्रेस कॉलडेटा को स्टोर करने की ज़िम्मेदारी को बाँटने के लिए शार्डिंग योजनाएँ सबसे बढ़िया तरीका खोजने की ओर अग्रसर हो गई हैं। यह पहले हिस्सेदारी के सबूत में बदलाव के बिना संभव नहीं होगा। + + + शार्डिंग + + +## अतिरिक्त पाठ्यसामग्री {#further-reading} + + + + diff --git a/src/content/translations/hi/roadmap/merge/issuance/index.md b/public/content/translations/hi/roadmap/merge/issuance/index.md similarity index 100% rename from src/content/translations/hi/roadmap/merge/issuance/index.md rename to public/content/translations/hi/roadmap/merge/issuance/index.md diff --git a/src/content/translations/hi/security/index.md b/public/content/translations/hi/security/index.md similarity index 100% rename from src/content/translations/hi/security/index.md rename to public/content/translations/hi/security/index.md diff --git a/public/content/translations/hi/smart-contracts/index.md b/public/content/translations/hi/smart-contracts/index.md new file mode 100644 index 00000000000..4f41d46a147 --- /dev/null +++ b/public/content/translations/hi/smart-contracts/index.md @@ -0,0 +1,84 @@ +--- +title: स्मार्ट अनुबंध +description: स्मार्ट अनुबंधों का एक गैर-तकनीकी परिचय +lang: hi +--- + +# Introduction to smart contracts {#introduction-to-smart-contracts} + +स्मार्ट अनुबंध इथेरियम की एप्लिकेशन परत के मूलभूत निर्माण खंड हैं। वे ब्लॉकचेन पर संग्रहीत कंप्यूटर प्रोग्राम हैं जो "अगर यह है तो वह" तर्क का पालन करते हैं, और इसके कोड द्वारा परिभाषित नियमों के अनुसार निष्पादित होने की गारंटी देते हैं, जिन्हें एक बार बनाए जाने के बाद बदला नहीं जा सकता है। + +निक स्जाबो ने "स्मार्ट अनुबंध" शब्द गढ़ा। 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)। + +स्ज़ाबो ने एक डिजिटल बाज़ार की कल्पना की जहां स्वचालित, क्रिप्टोग्राफ़िक रूप से सुरक्षित प्रक्रियाएं विश्वसनीय मध्यस्थों के बिना लेनदेन और व्यावसायिक कार्यों को करने में सक्षम बनाती हैं। इथेरियम पर स्मार्ट अनुबंध इस कल्पना को अभ्यास में लाते हैं। + +## पारंपरिक अनुबंधों पर विश्वास {#trust-and-contracts} + +पारंपरिक अनुबंध के साथ एक सबसे बड़ी समस्या यह है की अनुबंध के परिणामों का अनुसरण करने के लिए विश्वसनीय व्यक्तियों की आवश्यकता है। + +उदाहरण: + +ऐलिस और बॉब साइकिल रेस कर रहे हैं। मान लीजिए कि ऐलिस ने बॉब से 10 डॉलर की शर्त लगाई कि वह रेस जीत जाएगी। बॉब को विश्वास है कि वह विजेता होगा और शर्त मान जाता है। अंत में, ऐलिस बॉब से काफी पहले दौड़ पूरी करती है और जीत जाती है। लेकिन बॉब ने शर्त पर भुगतान करने से इनकार कर दिया, यह दावा करते हुए कि ऐलिस ने बेईमानी की होगी। + +यह उदाहरण किसी भी मूर्ख समझौते की समस्या को दर्शाता है। भले ही समझौते की शर्तें पूरी हो जाएं (यानी आप दौड़ के विजेता हैं), फिर भी आपको समझौते को पूरा करने के लिए किसी अन्य व्यक्ति पर भरोसा करना होगा (यानी शर्त का भुगतान करना)। + +## A digital vending machine {#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/) + +## More of a visual learner? {#visual-learner} + +फाइनमैटिक्स को स्मार्ट अनुबंधों को समझाते हुए देखें: + + + +## अग्रिम पठन {#further-reading} + +- [कैसे स्मार्ट अनुबंध दुनिया को बदलेंगे](https://www.youtube.com/watch?v=pA6CGuXEKtQ) +- [स्मार्ट अनुबंध: ब्लॉकचेन तकनीक जो वकीलों की जगह ले लेगा](https://blockgeeks.com/guides/smart-contracts/) +- [डेवलपर्स के लिए स्मार्ट अनुबंध](/developers/docs/smart-contracts/) +- [स्मार्ट-अनुबंध लिखना सीखें](/developers/learning-tools/) +- [इथेरियम में महारत हासिल करें - स्मार्ट अनुबंध क्या है?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/hi/social-networks/index.md b/public/content/translations/hi/social-networks/index.md new file mode 100644 index 00000000000..20200ea3a20 --- /dev/null +++ b/public/content/translations/hi/social-networks/index.md @@ -0,0 +1,121 @@ +--- +title: डिसेंट्रलाइज सोशल नेटवर्क्स +description: इथेरियम पर विकेंद्रीकृत सोशल नेटवर्क का अवलोकन +lang: hi +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: /ethereum-learn.png +summaryPoint1: सामाजिक संपर्क, सामग्री निर्माण और वितरण के लिए ब्लॉकचेन-आधारित प्लेटफ़ॉर्म। +summaryPoint2: विकेंद्रीकृत सोशल मीडिया नेटवर्क उपयोगकर्ता की गोपनीयता की रक्षा करते हैं और डेटा सुरक्षा बढ़ाते हैं। +summaryPoint3: टोकन और NFT सामग्री से कमाई करने के नए तरीके बनाते हैं। +--- + +सोशल नेटवर्क हमारे दैनिक संचार और इंटरैक्शन में एक अहम भूमिका निभाते हैं। हालाँकि, इन प्लेटफार्मों के केंद्रीकृत नियंत्रण ने कई समस्याएं पैदा की हैं: डेटा उल्लंघन, सर्वर आउटेज, प्लेटफॉर्म से हटाया जाना, सेंसरशिप और गोपनीयता उल्लंघन कुछ ऐसे ट्रेड-ऑफ हैं जो सोशल मीडिया अक्सर करते हैं। इन समस्याओं से निपटने के लिए, डेवलपर्स इथेरियम पर सोशल नेटवर्क बना रहे हैं। विकेंद्रीकृत सोशल नेटवर्क पारंपरिक सोशल नेटवर्किंग प्लेटफार्मों की कई समस्याओं को ठीक कर सकते हैं और उपयोगकर्ताओं के अनुभव में सुधार कर सकते हैं। + +## विकेंद्रीकृत सोशल नेटवर्क क्या हैं? {#what-are-decentralized-social-networks} + +विकेंद्रीकृत सोशल नेटवर्क ब्लॉकचेन-आधारित प्लेटफ़ॉर्म हैं जो उपयोगकर्ताओं को सूचनाओं के आदान-प्रदान के साथ-साथ दर्शकों को कंटेंट प्रकाशित और वितरित करने की अनुमति देते हैं। क्योंकि ये एप्लिकेशन ब्लॉकचेन पर चलते हैं, वे विकेंद्रीकृत होने और सेंसरशिप और अनुचित नियंत्रण का प्रतिरोध करने में सक्षम हैं। + +Facebook, LinkedIn, Twitter और Medium जैसी स्थापित सोशल मीडिया सेवाओं के विकल्प के रूप में कई विकेन्द्रीकृत सोशल नेटवर्क मौजूद हैं। लेकिन ब्लॉकचेन-संचालित सोशल नेटवर्क में कई विशेषताएं हैं जो उन्हें पारंपरिक सोशल प्लेटफार्मों से आगे रखती हैं। + +### विकेंद्रीकृत सोशल नेटवर्क कैसे काम करते हैं? {#decentralized-social-networks-overview} + +विकेंद्रीकृत सोशल नेटवर्क [विकेंद्रीकृत अनुप्रयोग (dapps)](/dapps/) का एक वर्ग है — ब्लॉकचेन पर तैनात [स्मार्ट अनुबंधों](/developers/docs/smart-contracts/) द्वारा संचालित अनुप्रयोग। अनुबंध कोड इन ऐप्स के लिए बैकएंड के रूप में कार्य करता है और उनके व्यावसायिक तर्क को परिभाषित करता है। + +पारंपरिक सोशल मीडिया प्लेटफ़ॉर्म यूज़र की जानकारी, प्रोग्राम कोड और डेटा के अन्य रूपों को संग्रहीत करने के लिए डेटाबेस पर निर्भर करते हैं। लेकिन यह एकल बिन्दु-ऑफ-फेलियर बनाता है और महत्वपूर्ण जोखिम पैदा करता है। जैसे, पिछले साल Facebook के सर्वर अज्ञात [रूप से घंटों के लिए](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) ऑफ़लाइन हो गए, जिससे उपयोगकर्ता को परेशानी हुई। + +विकेंद्रीकृत सोशल नेटवर्क एक पीयर-टू-पीयर नेटवर्क पर मौजूद हैं जिसमें दुनिया भर में हजारों नोड्स शामिल हैं। अगर कुछ नोड विफल भी हो जाएं, नेटवर्क निर्बाध रूप से चलता रहेगा, जिससे एप्लिकेशन विफलताओं और आउटेज के प्रति प्रतिरोधी रहेंगे। + +[इंटरप्लेनेटरी फाइल सिस्टम (IPFS)](https://ipfs.io/) जैसे विकेंद्रीकृत भंडारण प्रणालियों का उपयोग करके, इथेरियम पर निर्मित सामाजिक नेटवर्क यूज़र की जानकारी को शोषण और अनुचित उपयोग से बचा सकते हैं। ना कोई आपकी व्यक्तिगत जानकारी विज्ञापनदाताओं को बेचेगा, न ही हैकर्स आपकी गोपनीय जानकारी चुरा पाएंगे। + +कई ब्लॉकचेन-आधारित सोशल प्लेटफ़ॉर्म में मूल टोकन होते हैं जो विज्ञापन राजस्व के अभाव में मुद्रीकरण को शक्ति प्रदान करते हैं। यूज़र कुछ सुविधाओं का प्रयोग करने, इन-ऐप खरीदारी पूरी करने या अपने पसंदीदा कंटेंट बनाने वाले को टिप देने के लिए इन टोकन को खरीद सकते हैं। + +## विकेन्द्रीकृत सोशल नेटवर्क के लाभ {#benefits} + +1. विकेंद्रीकृत सोशल नेटवर्क सेंसरशिप-प्रतिरोधी हैं और सभी के लिए खुले हैं। इसका मतलब यह है कि यूज़र को मनमाने ढंग से प्रतिबंधित, प्लेटफॉर्म से हटाया या प्रतिबंधित नहीं किया जा सकता है। + +2. विकेंद्रीकृत सोशल नेटवर्क ओपन-सोर्स आदर्शों पर बनाए गए हैं और सार्वजनिक निरीक्षण के एप्लिकेशन के लिए स्रोत कोड उपलब्ध कराते हैं। पारंपरिक सोशल मीडिया में आम अपारदर्शी एल्गोरिथम के कार्यान्वयन को समाप्त करके, ब्लॉकचेन-आधारित सोशल नेटवर्क यूज़र और प्लेटफ़ॉर्म पे मौजूद रचनाकारों के हितों को संरेखित कर सकते हैं। + +3. विकेन्द्रीकृत सोशल नेटवर्क "बिचौलिए" को ख़त्म कर देते हैं। कंटेंट रचनाकारों का अपनी कंटेंट पर सीधा स्वामित्व होता है, और वे फॉलोवर्स, प्रशंसकों, खरीदारों और अन्य पक्षों के साथ सीधे जुड़ सकते हैं, बीच में एक स्मार्ट अनुबंध के अलावा कुछ भी नहीं होता है। + +4. चूंकि dapps इथेरियम नेटवर्क पर चल रहे हैं, जो नोड्स के वैश्विक, पीयर-टू-पीयर नेटवर्क द्वारा चलता है, विकेंद्रीकृत सोशल नेटवर्क सर्वर डाउनटाइम और आउटेज के प्रति कम संवेदनशील होते हैं। + +5. विकेंद्रीकृत सामाजिक प्लेटफ़ॉर्म्स गैर-सघटनक टोकन (NFT), ऐप में क्रिप्टो भुगतान और अन्य माध्यमों के माध्यम से सामग्री निर्माताओं के लिए सुधारित मौद्रिकीकरण ढांचा प्रदान करते हैं। + +6. विकेंद्रीकृत सोशल नेटवर्क यूज़र को उच्च स्तर की गोपनीयता और गुमनामी प्रदान करते हैं। उदाहरण के लिए, कोई व्यक्ति ENS प्रोफ़ाइल या वॉलेट का उपयोग करके इथेरियम-आधारित सोशल नेटवर्क में साइन इन कर सकता है — व्यक्तिगत पहचान योग्य जानकारी (PII), जैसे नाम, ईमेल पते आदि साझा किए बिना। + +7. विकेंद्रीकृत सोशल नेटवर्क विकेंद्रीकृत भंडारण पर भरोसा करते हैं, न कि केंद्रीकृत डेटाबेस पर, जो यूज़र के डेटा की सुरक्षा के लिए काफी बेहतर हैं। + +## इथेरियम पर विकेंद्रीकृत सोशल नेटवर्क {#ethereum-social-networks} + +इथेरियम नेटवर्क अपने टोकन (ERC-20/ERC-721) की लोकप्रियता और इसके विशाल यूजरबेस के कारण विकेन्द्रीकृत सोशल मीडिया बनाने वाले डेवलपर्स के लिए पसंदीदा उपकरण बन गया है। इथेरियम-आधारित सोशल नेटवर्क के कुछ उदाहरण: + +### Peepeth {#peepeth} + +[Peepeth](https://peepeth.com/) Twitter के समान एक माइक्रोब्लॉगिंग प्लेटफ़ॉर्म है। यह इथेरियम के ब्लॉकचेन पर चलता है और यूज़र डेटा संग्रहीत करने के लिए IPFS का उपयोग करता है। + +यूज़र "पीप्स" नामक छोटे संदेश भेज सकते हैं, जिन्हें हटाया या बदला नहीं जा सकता है। आप ऐप पर इथर (ETH) में प्लेटफॉर्म पर टिप्स एकत्र कर सकते हैं या किसी को भी टिप दे सकते हैं। + +### Mirror {#mirror} + +[Mirror](https://mirror.xyz/) एक web3-सक्षम लेखन मंच है जिसका विकेंद्रीकृत और उपयोगकर्ता-स्वामित्व वाला होना लक्ष्य है। यूज़र Mirror पर केवल अपने वॉलेट को कनेक्ट करके मुफ्त में पढ़ और लिख सकते हैं। यूज़र अपने पसंदीदा लेखक की सदस्यता ले सकते है और उनको सब्सक्राइब कर सकते हैं। + +Mirror पर प्रकाशित पोस्ट स्थायी रूप से एक विकेन्द्रीकृत भंडारण प्लेटफ़ॉर्म, Arweave पर संग्रहीत की जाती हैं, और इसे संग्रहणीय [नॉन-फंजिबल टोकन (NFT)](/nft/) के रूप में मिंट किया जा सकता है, जिसे राइटिंग NFT के रूप में जाना जाता है। NFT बनाना लेखकों के लिए पूरी तरह से मुफ़्त है, और संग्रह इथेरियम L2 पर होता है - जिससे लेनदेन सस्ता, तेज़ और पर्यावरण के अनुकूल रहता है। + +### MINDS {#minds} + +[MINDS](https://www.minds.com/) सबसे अधिक उपयोग किए जाने वाले विकेन्द्रीकृत सोशल नेटवर्क में से एक है। यह Facebook की तरह काम करता है और इसके लाखों यूज़र हैं। + +यूज़र वस्तुओं के भुगतान के लिए प्लेटफ़ॉर्म के मूल ERC-20 टोकन $MIND का उपयोग करते हैं। यूज़र लोकप्रिय कंटेंट प्रकाशित करके, इकोसिस्टम में योगदान करके और दूसरों को प्लेटफ़ॉर्म पर रेफर करके $MIND टोकन अर्जित कर सकते हैं। + +## इथेरियम पर Web2 सोशल नेटवर्क {#web2-social-networks-and-ethereum} + +[Web3](/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/) हैं जिन्हें यूज़र गुणवत्तापूर्ण सामग्री पोस्ट करके और ऑनलाइन समुदायों (सबरेडिट्स) में योगदान करके कमा सकते हैं। [विशिष्ट अधिकार और सुविधाएं प्राप्त करने के लिए](https://www.reddit.com/community-points/) आप इन टोकन को सबरेडिट के भीतर प्रयोग कर सकते हैं। इस प्रोजेक्ट के लिए, Reddit Arbitrum के साथ काम कर रहा है, जो इथेरियम लेनदेन को स्केल करने के लिए डिज़ाइन किया गया एक [परत 2](/layer-2/) रोलअप है। + +यह कार्यक्रम पहले से ही लाइव है, जिसमें r/CryptoCurrency सबरेडिट ["मून्स" नामक कम्युनिटी पॉइंट्स का अपना संस्करण चला रहा है](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki)। आधिकारिक विवरण के अनुसार, मून्स "पोस्टर, टिप्पणीकारों और मॉडरेटर को सबरेडिट में उनके योगदान के लिए पुरस्कृत करता है।" क्योंकि ये टोकन ब्लॉकचेन पर होते हैं (उपयोगकर्ता उन्हें वॉलेट में प्राप्त करते हैं), वे Reddit से स्वतंत्र हैं और उन्हें हटाया नहीं जा सकता है। + +रिंकीबी टेस्टनेट पर बीटा चरण के समापन के बाद, Reddit कम्युनिटी पॉइंट्स अब [आर्बिट्रम नोवा](https://nova.arbitrum.io/) पर हैं, एक ब्लॉकचेन जो एक [साइडचेन](/developers/docs/scaling/sidechains/) और एक [आशावादी रोलअप](/developers/docs/scaling/optimistic-rollups/) के गुणों को जोड़ता है। विशेष सुविधाओं को अनलॉक करने के लिए कम्युनिटी पॉइंट्स का उपयोग करने के अलावा, यूज़र एक्सचेंजों पर इसको फ़िएट में भी बदल सकते हैं। साथ ही, किसी यूज़र के पास मौजूद सामुदायिक अंकों की मात्रा समुदाय में निर्णय लेने की प्रक्रिया पर उनके प्रभाव को निर्धारित करती है। + +### Twiiter {#twitter} + +जनवरी 2021 में, Twitter ब्लू ने [NFT के लिए समर्थन शुरू किया](https://mashable.com/article/twitter-blue-nft-profile-picture), जिससे यूज़र अपने वॉलेट को कनेक्ट कर सकते हैं और NFT को प्रोफ़ाइल चित्र के रूप में प्रदर्शित कर सकते हैं। लेखन के समय, सोशल मीडिया कंपनी ने भविष्य में एक विकेन्द्रीकृत सोशल नेटवर्क [बनाने की योजना की भी घोषणा](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) की है। + +### Instagram {#instagram} + +मई 2022 में, [Instagram ने इथेरियम और पॉलीगॉन पर NFT के लिए समर्थन की घोषणा की](https://about.instagram.com/blog/announcements/instagram-digital-collectibles)। यूज़र अपने इथेरियम वॉलेट को कनेक्ट करके NFT को सीधे Instagram पर पोस्ट कर सकते हैं। + +## विकेंद्रीकृत सोशल नेटवर्क का उपयोग करना {#use-decentralized-social-networks} + +- **[Status.im](https://status.im/)** - _Status एक सुरक्षित मैसेजिंग ऐप है जो आपके संदेशों को तीसरे पक्षों से सुरक्षित रखने के लिए ओपन-सोर्स, पीयर-टू-पीयर प्रोटोकॉल और एंड-टू-एंड एन्क्रिप्शन का उपयोग करता है।_ +- **[Mirror.xyz](https://mirror.xyz/)** - _Mirror एक विकेन्द्रीकृत, यूज़र-स्वामित्व वाला प्रकाशन प्लेटफ़ॉर्म है जो यूज़र के विचारों को एकत्रित करने, कंटेंट का मुद्रीकरण करने और उच्च-मान वाले समुदायों का निर्माण करने के लिए इथेरियम पर बनाया गया है।_ +- **[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) - _कॉइनबेस वेंचर्स_ +- [सामाजिक नेटवर्क विकेंद्रीकरण का अगला बड़ा अवसर हैं](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _बेन गोएर्टज़ेल_ +- [Web3 विकेंद्रीकृत, समुदाय-संचालित सामाजिक नेटवर्क का वादा करता है](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _सुमित घोष_ +- [ब्लॉकचेन सोशल मीडिया लैंडस्केप का अवलोकन](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _जेमिनी क्रिप्टोपेडिया_ +- [ब्लॉकचेन सोशल मीडिया गोपनीयता को कैसे हल कर सकता है](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _प्रबलीन बाजपेयी_ +- [सोशल मीडिया नेटवर्क ब्लॉकचेन पर आ रहे हैं](https://businesstechguides.co/what-are-decentralized-social-networks) — _इमैनुएल अवोसिका_ +- [सामाजिक नेटवर्क के लिए पर्याप्त विकेंद्रीकरण](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _वरुण श्रीनिवासन_ + +### वीडियो {#videos} + +- [विकेंद्रीकृत सोशल मीडिया की व्याख्या](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ +- [DeSo ब्लॉकचेन सोशल मीडिया को विकेंद्रीकृत करना चाहता है](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ +- [विकेंद्रीकृत सोशल मीडिया का भविष्य बालाजी श्रीनिवासन, विटालिक ब्यूटिरिन, जुआन बेनेट](https://www.youtube.com/watch?v=DTxE9KV3YrE) के साथ — _ETHGlobal_ + +### समुदाय {#communities} + +- [Status Discord सर्वर](https://discord.com/invite/3Exux7Y) +- [Mirror Discord सर्वर](https://discord.com/invite/txuCHcE8wV) +- [r/CryptoCurrency सबरेडिट](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/hi/staking/dvt/index.md b/public/content/translations/hi/staking/dvt/index.md similarity index 100% rename from src/content/translations/hi/staking/dvt/index.md rename to public/content/translations/hi/staking/dvt/index.md diff --git a/public/content/translations/hi/staking/pools/index.md b/public/content/translations/hi/staking/pools/index.md new file mode 100644 index 00000000000..eaedc65d109 --- /dev/null +++ b/public/content/translations/hi/staking/pools/index.md @@ -0,0 +1,85 @@ +--- +title: जमा हुआ दाव +description: पूल किए गए ETH स्टेकिंग के साथ शुरुआत करने के तरीके का अवलोकन +lang: hi +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-pool.png +alt: लेस्ली राइनो पूल में तैर रहा है। +sidebarDepth: 2 +summaryPoints: + - दूसरों के साथ जुड़कर ETH की किसी भी राशि के साथ दांव लगाएं और पुरस्कार अर्जित करें + - कठिन भाग को छोड़ें और सत्यापनकर्ता कार्रवाई को किसी तृतीय-पक्ष को सौंपें + - अपने स्वयं के वॉलेट में स्टेकिंग टोकन रखें +--- + +## स्टेकिंग पूल क्या हैं? {#what-are-staking-pools} + +स्टेकिंग पूल एक सहयोगी दृष्टिकोण है जो कम ETH वाले लोगों को सत्यापनकर्ता कुंजी के एक सेट बनाने के लिए ज़रूरी 32 ETH प्राप्त करने की अनुमति देता है। पूलिंग कार्यक्षमता प्रोटोकॉल के भीतर मूल रूप से समर्थित नहीं है, इसलिए इस आवश्यकता को पूरा करने के लिए समाधान अलग से बनाए गए थे। + +कुछ पूल स्मार्ट अनुबंधों का उपयोग करके संचालित होते हैं, जहां धन को एक अनुबंध में जमा किया जा सकता है, जो बिना विश्वास है और आपकी हिस्सेदारी को ट्रैक करता है, और आपको एक टोकन जारी करता है जो इस मूल्य का प्रतिनिधित्व करता है। हो सकता है कि अन्य पूल में स्मार्ट अनुबंध शामिल न हों और इसके बजाय ऑफ़-चेन के माध्यम से मध्यस्थता की जाती हो। + +## पूल के माध्यम से स्टेक को लगाएं? {#why-stake-with-a-pool} + +[स्टेकिंग के लिए हमारे परिचय](/staking/) में उल्लिखित लाभों के अलावा, पूल के साथ दांव लगाना कई अलग-अलग लाभों के साथ आता है। + + + + + + + + + +## क्या विचार करना है {#what-to-consider} + +पूल या डेलिगेटेड स्टेकिंग मूल रूप से इथेरियम प्रोटोकॉल द्वारा समर्थित नहीं है, लेकिन उपयोगकर्ताओं के लिए 32 ETH से कम हिस्सेदारी की मांग को देखते हुए इस मांग को पूरा करने के लिए समाधानों की बढ़ती संख्या का निर्माण किया गया है। + +प्रत्येक पूल और उनके द्वारा उपयोग किए जाने वाले उपकरण या स्मार्ट अनुबंध विभिन्न टीमों द्वारा बनाए गए हैं, और प्रत्येक लाभ और जोखिमों के साथ आता है। पूल करने से उपयोगकर्ता अपने ETH को स्टेक किए गए ETH का प्रतिनिधित्व करने वाले टोकन के साथ अदला-बदली कर सकते है। टोकन उपयोगी है, क्योंकि यह उपयोगकर्ताओं को ETH की किसी भी राशि को उपज-असर टोकन की बराबर राशि में अदला-बदली करने की अनुमति देता है जो विकेन्द्रीकृत एक्सचेंजों पर अंतर्निहित दांव वाले ETH (और इसके विपरीत) पर लागू स्टेकिंग पुरस्कारों से वापसी उत्पन्न करता है, भले ही वास्तविक ETH आम सहमति परत पर दांव लगा रहता है। इसका मतलब है कि उपज-असर वाले स्टेक-ETH उत्पाद से आगे और पीछे अदला-बदली करें और "रॉ ETH" त्वरित, आसान है और न केवल 32 ETH के गुणकों में उपलब्ध है। + +हालाँकि, ये स्टेक किए गए ETH टोकन कार्टेल जैसे व्यवहार पैदा करते हैं जहां बड़ी मात्रा में दांव पर लगा ETH कई स्वतंत्र व्यक्तियों में फैलने के बजाय कुछ केंद्रीकृत संगठनों के नियंत्रण में समाप्त होता है। यह सेंसरशिप या मूल्य निष्कर्षण के लिए स्थितियां बनाता है। स्टेकिंग के लिए स्वर्ण मानक हमेशा उन व्यक्तियों को होना चाहिए जो जब भी संभव हो अपने स्वयं के हार्डवेयर पर सत्यापनकर्ता चला रहे हों। + +[टोकन स्टेकिंग के जोखिमों पर और जाने](https://notes.ethereum.org/@djrtwo/risks-of-lsd)। + +विशेषता संकेतकों का उपयोग नीचे सूचीबद्ध स्टॉकिंग पूल की उल्लेखनीय ताकत या कमजोरियों को इंगित करने के लिए किया जाता है। इस अनुभाग का उपयोग इस संदर्भ के रूप में करें कि जब आप शामिल होने के लिए पूल चुन रहे हों, तो हम इन विशेषताओं को कैसे परिभाषित करते हैं। + + + +## स्टेकिंग पूल को एक्सप्लोर करें {#explore-staking-pools} + +आपके सेटअप में आपकी मदद करने के लिए कई प्रकार के विकल्प उपलब्ध हैं। नीचे दिए गए उपकरणों के माध्यम से मार्गदर्शन करने में मदद करने के लिए उपरोक्त संकेतकों का इस्तेमाल करें। + + + + + +कृपया एक ऐसी सेवा चुनने के महत्व पर ध्यान दें जो [क्लाइंट विविधता](/developers/docs/nodes-and-clients/client-diversity/) को गंभीरता से लेती है, क्योंकि यह नेटवर्क की सुरक्षा में सुधार करती है और आपके जोखिम को सीमित करती है। जिन सेवाओं में बहुमत क्लाइंट उपयोग को सीमित करने के सबूत हैं, उन्हें "निष्पादन ग्राहक विविधता" और "सहमति ग्राहक विविधता" के साथ इंगित किया जाता है। + +क्या आपके पास स्टेकिंग टूल के बारे कोई सुझाव है जिसे हम भूल गए हैं? यह देखने के लिए हमारी [उत्पाद लिस्टिंग नीति](/contributing/adding-staking-products/) देखें कि क्या यह एक अच्छा फिट होगा और इसे समीक्षा के लिए सबमिट करें। + +## अक्सर पूछे जाने वाले सवाल {#faq} + + +आम तौर पर ERC -20 स्टेकिंग टोकन हितधारकों को जारी किए जाते हैं जो उनके दांव वाले ETH प्लस पुरस्कारों के मूल्य का प्रतिनिधित्व करते हैं। ध्यान रखें कि विभिन्न पूल अपने उपयोगकर्ताओं को थोड़ा अलग तरीकों से पुरस्कार वितरित करेंगे, लेकिन यह सामान्य विषय है। + + + +अभी! शंघाई/कैपेला नेटवर्क अपग्रेड अप्रैल 2023 में हुआ और स्टेकिंग निकासी की सुविधा शुरू की है। जो सत्यापनकर्ता खाते स्टेकिंग पूल का समर्थन कर रहे हैं, उनके पास अब ETH बाहर निकलने और अपने निर्दिष्ट निकासी पते पर वापस लेने की क्षमता है। यह अंतर्निहित ETH के लिए हिस्सेदारी के अपने हिस्से को स्टेक की क्षमता को सक्षम बनाता है। यह देखने के लिए अपने प्रदाता से संपर्क करें कि वे इस कार्यक्षमता का समर्थन कैसे करते हैं। + +वैकल्पिक रूप से, ERC -20 स्टेकिंग टोकन का उपयोग करने वाले पूल उपयोगकर्ताओं को खुले बाजार में इस टोकन का व्यापार करने की अनुमति देते हैं, जिससे आप अपनी स्टेकिंग स्थिति बेच सकते हैं, वास्तव में ETH को दांव अनुबंध से हटाए बिना प्रभावी रूप से "वापस" ले सकते हैं। + +स्टेकिंग निकासी पर अधिक जानकारी + + + +इन पूल किए गए स्टेकिंग विकल्पों और केंद्रीकृत एक्सचेंजों के बीच कई समानताएं हैं, जैसे कि ETH की छोटी मात्रा को दांव पर लगाने की क्षमता और सत्यापनकर्ताओं को सक्रिय करने के लिए उन्हें एक साथ बंडल करना। + +केंद्रीकृत एक्सचेंजों के विपरीत, कई अन्य पूल किए गए स्टेकिंग विकल्प स्मार्ट अनुबंध और/या स्टेकिंग टोकन का उपयोग करते हैं, जो आमतौर पर ERC -20 टोकन होते हैं जिन्हें आपके स्वयं के वॉलेट में रखा जा सकता है और किसी भी अन्य टोकन की तरह खरीदा या बेचा जा सकता है। यह आपको अपने टोकन पर नियंत्रण देकर संप्रभुता और सुरक्षा की एक लेयर प्रदान करता है, लेकिन फिर भी आपको पृष्ठभूमि में आपकी ओर से सत्यापित सत्यापनकर्ता क्लाइंट पर सीधा नियंत्रण नहीं देता है। + +कुछ पूलिंग विकल्प दूसरों की तुलना में अधिक विकेन्द्रीकृत होते हैं जब उन्हें वापस करने वाले नोड्स की बात आती है। नेटवर्क के स्वास्थ्य और विकेंद्रीकरण को बढ़ावा देने के लिए, हितधारकों को हमेशा एक पूलिंग सेवा का चयन करने के लिए प्रोत्साहित किया जाता है जो नोड ऑपरेटरों के अनुमति रहित विकेन्द्रीकृत सेट को सक्षम बनाता है। + + +## अग्रिम पठन {#further-reading} + +- [रॉकेट पूल के साथ स्टेकिंग - स्टेकिंग ओवरव्यू](https://docs.rocketpool.net/guides/staking/overview.html) - _रॉकेटपूल डॉक्स_ +- [लिडो के साथ इथेरियम स्टेक करें](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _लिडो सहायता दस्तावेज_ diff --git a/public/content/translations/hi/staking/saas/index.md b/public/content/translations/hi/staking/saas/index.md new file mode 100644 index 00000000000..8837406a208 --- /dev/null +++ b/public/content/translations/hi/staking/saas/index.md @@ -0,0 +1,94 @@ +--- +title: एक सेवा के रूप में स्टेकिंग +description: पूल किए गए ETH स्टेकिंग के साथ आरंभ करने का एक सिंहावलोकन +lang: hi +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-saas.png +alt: बादलों में तैरता हुआ राइनो लेस्ली। +sidebarDepth: 2 +summaryPoints: + - तीसरे पक्ष के नोड ऑपरेटर आपके सत्यापनकर्ता क्लाइंट के संचालन को संभालते हैं + - 32 ETH वाले किसी भी व्यक्ति के लिए बढ़िया विकल्प जो नोड चलाने की तकनीकी जटिलता से निपटने में सहज महसूस नहीं करता है + - भरोसा कम करें और अपनी निकासी कुंजियों की सुरक्षा बनाए रखें +--- + +## एक सेवा के रूप में स्टेकिंग क्या है? {#what-is-staking-as-a-service} + +स्टेकिंग एक सेवा के रूप में ("SaaS") ऐसी स्टेकिंग सेवाओं की एक श्रेणी का प्रतिनिधित्व करता है जहां आप एक सत्यापनकर्ता के लिए अपने 32 ETH जमा करते हैं, लेकिन नोड संचालन को आप तीसरे पक्ष के ऑपरेटर को सौंपते हैं। इस प्रक्रिया में आम तौर पर प्रारंभ में सेटअप के माध्यम से मार्गदर्शन किया जाता है, जिसमें कुंजी उत्पन्न करना और जमा करना, फिर ऑपरेटर को अपनी हस्ताक्षर कुंजियां अपलोड करना शामिल है। यह सेवा को आपकी ओर से आपके सत्यापनकर्ता को संचालित करने की अनुमति देती है, आमतौर पर मासिक शुल्क के लिए। + +## किसी सेवा के साथ स्टेकिंग क्यों? {#why-stake-with-a-service} + +इथेरियम प्रोटोकॉल मूल रूप से स्टेकिंग के प्रतिनिधित्व का समर्थन नहीं करता है, इसलिए इस मांग को पूरा करने के लिए इन सेवाओं का निर्माण किया गया है। अगर आपके पास 32 ETH स्टेक करने के लिए है, लेकिन आप हार्डवेयर से निपटने में सहज महसूस नहीं करते हैं, SaaS सेवाएं आपको कठिन भाग को सौंपने की अनुमति देती हैं जबकि आप मूल ब्लॉक पुरस्कार कमा रहे हैं। + + + + + + + + + +## क्या विचार करना है {#what-to-consider} + +आपके ETH को स्टेक करने में मदद करने के लिए SaaS प्रदाताओं की बढ़ती संख्या है, लेकिन उन सभी के अपने-अपने लाभ और जोखिम हैं। सभी SaaS विकल्पों में होम-स्टेकिंग की तुलना में अतिरिक्त विश्वास मान्यताओं की आवश्यकता होती है। Saas विकल्पों में इथेरियम क्लाइंटों को लपेटने वाला अतिरिक्त कोड हो सकता है जो स्वतंत्र या परीक्षण योग्य नहीं है। SaaS का नेटवर्क विकेंद्रीकरण पर भी हानिकारक प्रभाव पड़ता है। सेटअप पर निर्भर करते हुए, आप अपने सत्यापनकर्ता को नियंत्रित नहीं कर सकते - ऑपरेटर आपके ETH का उपयोग करके बेईमानी से कार्य कर सकता है। + +सूचीबद्ध SaaS प्रदाता की उल्लेखनीय शक्तियों या कमज़ोरियों का संकेत देने के लिए नीचे विशेषता संकेतकों का उपयोग किया जाता है। जब आप अपनी स्टेकिंग यात्रा में मदद के लिए कोई सेवा चुन रहे हों, तो इस अनुभाग का उपयोग संदर्भ के रूप में करें कि हम इन विशेषताओं को कैसे परिभाषित करते हैं। + + + +## स्टेकिंग सेवा प्रदाता को एक्सप्लोर करें {#saas-providers} + +नीचे कुछ उपलब्ध SaaS प्रदाता हैं। इन सेवाओं में मार्गदर्शन के लिए ऊपर दिए गए संकेतकों का उपयोग करें + + + +### SaaS प्रदाता + + + +कृपया ध्यान दें कि [क्लाइंट विविधता](/developers/docs/nodes-and-clients/client-diversity/) का समर्थन महत्वपूर्ण है, क्योंकि यह नेटवर्क की सुरक्षा में सुधार और आपके जोखिम को सीमित करता है। जिन सेवाओं में बहुमत क्लाइंट उपयोग को सीमित करने के सबूत हैं, उन्हें "निष्पादन ग्राहक विविधता" और "सहमति ग्राहक विविधता" के साथ इंगित किया जाता है। + +### कुंजी जनरेटर + + + +हमसे छूट गए किसी सेवा प्रदाता के रूप में स्टेकिंग के लिए सुझाव है? यह देखने के लिए हमारी [उत्पाद लिस्टिंग नीति](/contributing/adding-staking-products/) देखें कि क्या यह एक अच्छा फिट होगा और इसे समीक्षा के लिए सबमिट करें। + +## अक्सर पूछे जाने वाले सवाल {#faq} + + +विभिन्न प्रदाता-दर-प्रदाता की व्यवस्थाएं अलग-अलग होंगी, लेकिन आम तौर पर आपको किसी भी आवश्यक हस्ताक्षर कुंजी (प्रति 32 ETH में से एक) स्थापित करने और उन्हें आपकी ओर से मान्य करने की अनुमति देने के लिए, अपने प्रदाता पर अपलोड करने के माध्यम से निर्देशित किया जाएगा। अकेले हस्ताक्षर करने वाली कुंजियां आपके धन को निकालने, स्थानांतरित करने या खर्च करने की कोई क्षमता नहीं देती हैं। हालाँकि, वे आम सहमति के लिए मतदान डालने की क्षमता प्रदान करते हैं, जिसे अगर ठीक से नहीं किया गया तो ऑफ़लाइन दंड या कटौती हो सकती है। + + + +हां। प्रत्येक खाते में BLS हस्ताक्षर कुंजी और BLS निकासी कुंजी दोनों शामिल हैं। एक सत्यापनकर्ता के लिए श्रृंखला की स्थिति को प्रमाणित करने, सिंक समितियों में भाग लेने और ब्लॉक प्रस्तावित करने के लिए, सत्यापनकर्ता क्लाइंट द्वारा हस्ताक्षर कुंजी आसानी से पहुंच योग्य होनी चाहिए। ये किसी न किसी रूप में इंटरनेट से जुड़ा होना चाहिए और इसलिए इन्हें स्वाभाविक रूप से "हॉट" कुंजियां माना जाता है। यह आपके सत्यापनकर्ता के लिए एक आवश्यकता है ताकि प्रमाणित किया जा सके, और इस प्रकार सुरक्षा कारणों से धनराशि स्थानांतरित करने या निकालने के लिए उपयोग की जाने वाली कुंजियां अलग हो जाती हैं। + +BLS निकासी कुंजियों का उपयोग एक बार के संदेश पर हस्ताक्षर करने के लिए किया जाता है जो घोषित करता है कि निष्पादन परत खाता स्टेकिंग पुरस्कार और निकासित धनराशि को जाना चाहिए। एक बार जब यह संदेश प्रसारित हो जाता है, तो BLS निकासी कुंजियों की आवश्यकता नहीं रह जाती है। इसके बजाय, निकाली गई धनराशि पर नियंत्रण आपके द्वारा दिए गए पते पर स्थायी रूप से सौंप दिया जाता है। यह आपको अपने स्वयं के कोल्ड भंडारण के माध्यम से सुरक्षित निकासी पता सेट करने की अनुमति देता है, जिससे आपके सत्यापनकर्ता फंड के लिए जोखिम कम हो जाता है, भले ही कोई और आपके सत्यापनकर्ता हस्ताक्षर कुंजी को नियंत्रित करता हो। + +निकासी को सक्षम करने के लिए निकासी प्राधिकृतता को अपडेट करना एक आवश्यक कदम है\*। इस प्रक्रिया में निकासी कुंजियां उत्पन्न करने के लिए आपके नेमोनिक बीज वाक्यांश का उपयोग होता है। + +सुनिश्चित करें कि आप इस बीज वाक्यांश का सुरक्षित बैकअप बनाते हैं, नहीं तो आने वाले समय में आपके निकासी कुंजियां उत्पन्न करने में असमर्थ हो सकते हैं। + +\*जिन स्टेकर्स ने प्रारंभिक जमा के साथ निकासी का पता प्रदान किया है, उन्हें इसे सेट करने की आवश्यकता नहीं है। अपना सत्यापनकर्ता कैसे तैयार करें, इसके संबंध में सहायता के लिए अपने SaaS प्रदाता से संपर्क करें। + + + +अप्रैल 2023 में शंघाई/कैपेला अपग्रेड में स्टेकिंग निकासी लागू की गई थी। स्टेकर्स को एक निकासी पता प्रदान करने की आवश्यकता होती है (अगर प्रारंभिक जमा पर प्रदान नहीं किया गया है), और पुरस्कार भुगतान अपने आप नियमित अंतरालिक आधार पर कुछ दिनों में शुरू हो जाते हैं। + +सत्यापनकर्ता, सत्यापनकर्ता के रूप में भी पूरी तरह से बाहर निकल सकते हैं, जो निकासी के लिए उनके बचे हुए ETH शेष को अनलॉक कर देगा। जिन खातों ने निष्पादन निकासी पता प्रदान किया है और बाहर निकलने की प्रक्रिया पूरी कर ली है, उन्हें अगले सत्यापनकर्ता स्वीप के दौरान प्रदान किए गए निकासी पते पर उनकी पूरी शेष राशि प्राप्त होगी। + +स्टेकिंग निकासी पर अधिक जानकारी + + + +SaaS प्रदाता का उपयोग करके, आप अपने नोड का संचालन किसी और को सौंप रहे हैं। इसके साथ ही खराब नोड प्रदर्शन के जोखिम भी आता है, जो आपके नियंत्रण में नहीं होता है। अगर आपके सत्यापनकर्ता को स्लैश कर दिया जाता है, तो आपके सत्यापनकर्ता बैलेंस पर पेनल्टी लगाई जाएगी और सत्यापनकर्ता पूल से जबरन हटा दिया जाएगा। + +कटौती/बाहर निकलने की प्रक्रिया पूरी होने पर, ये धनराशि सत्यापनकर्ता को दिए गए निकासी पते पर स्थानांतरित कर दी जाएगी। इसे सक्षम करने के लिए निकासी पता प्रदान करना आवश्यक है। यह प्रारंभिक जमा पर प्रदान किया गया हो सकता है। अगर नहीं, तो निकासी पते की घोषणा करने वाले संदेश पर हस्ताक्षर करने के लिए सत्यापनकर्ता निकासी कुंजियों का इस्तेमाल करने की आवश्यकता होगी। अगर कोई निकासी पता प्रदान नहीं किया गया है, तो फंड तब तक लॉक रहेंगे, जब तक पता प्रदान नहीं किया जाता। + +सुरक्षा या बीमा विकल्पों के बारे में अधिक जानकारी और निकासी पता प्रदान करने के निर्देशों के लिए व्यक्तिगत SaaS प्रदाता से संपर्क करें। यदि आप अपने सत्यापनकर्ता सेटअप पर पूर्ण नियंत्रण रखना चाहते हैं, तो अपने ETH को अकेले दांव पर लगाने के तरीके के बारे में अधिक जानें। + + +## अग्रिम पठन {#further-reading} + +- [स्टेकिंग सेवाओं का मूल्यांकन](https://www.attestant.io/posts/evaluating-staking-services/) - _जिम मैकडॉनल्ड 2020_ diff --git a/public/content/translations/hi/staking/solo/index.md b/public/content/translations/hi/staking/solo/index.md new file mode 100644 index 00000000000..29218a14c5c --- /dev/null +++ b/public/content/translations/hi/staking/solo/index.md @@ -0,0 +1,203 @@ +--- +title: अकेले अपने ETH को दांव पर लगाएं +description: अपने ETH को अकेले दांव पर लगाना शुरू करने के तरीके का अवलोकन +lang: hi +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-solo.png +alt: लेस्ली राइनो अपने कंप्यूटर चिप पर। +sidebarDepth: 2 +summaryPoints: + - अपने सत्यापनकर्ता को ठीक से काम करने और ऑनलाइन रखने के लिए प्रोटोकॉल से सीधे अधिकतम पुरस्कार प्राप्त करें + - होम हार्डवेयर चलाएं और व्यक्तिगत रूप से इथेरियम नेटवर्क की सुरक्षा और विकेंद्रीकरण में जोड़ें + - विश्वास को हटा दें, और अपने धन की कुंजी का नियंत्रण कभी न छोड़ें +--- + +## सोलो स्टेकिंग क्या है? {#what-is-solo-staking} + +सोलो स्टेकिंग इंटरनेट से जुड़े एक [इथेरियम नोड को चलाने](/run-a-node/) और एक [सत्यापनकर्ता](#faq) को सक्रिय करने के लिए 32 ETH जमा करने का कार्य है, जिससे आपको नेटवर्क आम सहमति में सीधे भाग लेने की क्षमता मिलती है। + +**सोलो स्टेकिंग इथेरियम नेटवर्क के विकेंद्रीकरण को बढ़ाता है**, जिससे इथेरियम हमलों के खिलाफ अधिक सेंसरशिप-प्रतिरोधी और मजबूत हो जाता है। अन्य स्टेकिंग विधियां नेटवर्क को उसी तरह से मदद नहीं कर सकती हैं। इथेरियम को सुरक्षित करने के लिए सोलो स्टेकिंग सबसे अच्छा विकल्प है। + +एक इथेरियम नोड में एक निष्पादन परत (EL) क्लाइंट, साथ ही एक आम सहमति परत (CL) क्लाइंट दोनों होते हैं। ये क्लाइंट ऐसे सॉफ़्टवेयर हैं जो लेनदेन और ब्लॉक को सत्यापित करने, श्रृंखला के सही सिर को सत्यापित करने, एग्रीगेट एटेस्टेशन और ब्लॉक प्रस्तावित करने के लिए हस्ताक्षर कुंजी के एक वैध सेट के साथ एक साथ काम करते हैं। + +सोलो स्टेकर इन क्लाइंट्स को चलाने के लिए आवश्यक हार्डवेयर के संचालन के लिए जिम्मेदार हैं। इसके लिए एक समर्पित मशीन का उपयोग करने की अत्यधिक अनुशंसा की जाती है कि आप घर से काम करें-यह नेटवर्क के स्वास्थ्य के लिए बेहद फायदेमंद है। + +एक एकल हितधारक को अपने सत्यापनकर्ता को ठीक से काम करने और ऑनलाइन रखने के लिए प्रोटोकॉल से सीधे पुरस्कार प्राप्त होते हैं। + +## अकेले स्टेक क्यों करें? {#why-stake-solo} + +सोलो स्टेकिंग अधिक जिम्मेदारी के साथ आता है लेकिन आपको अपने फंड और स्टेकिंग सेटअप पर अधिकतम नियंत्रण प्रदान करता है। + + + + + + + +## सोलो स्टेकिंग से पहले विचाराधीन {#considerations-before-staking-solo} + +जितना हम चाहते हैं कि एकल सोलो स्टेकिंग सभी के लिए सुलभ और जोखिम मुक्त हो, यह वास्तविकता नहीं है। अपने ETH को अकेले दांव पर लगाने का विकल्प चुनने से पहले कुछ व्यावहारिक और गंभीर विचारों को ध्यान में रखना चाहिए। + + + +अपने स्वयं के नोड का संचालन करते समय आपको अपने द्वारा चुने गए सॉफ़्टवेयर का उपयोग करने के तरीके सीखने में कुछ समय बिताना चाहिए। इसमें प्रासंगिक दस्तावेज पढ़ना और उन डेवलपर टीमों के संचार चैनलों से अवगत होना शामिल है। + +जितना अधिक आप उस सॉफ़्टवेयर के बारे में समझते हैं जिसे आप चला रहे हैं और प्रूफ-ऑफ-स्टेक कैसे काम करता है, एक हितधारक के रूप में यह कम जोखिम भरा होगा और नोड ऑपरेटर के रूप में रास्ते में उत्पन्न होने वाली किसी भी समस्या को ठीक करना उतना ही आसान होगा। + + + +नोड सेटअप को कंप्यूटर के साथ काम करते समय एक उचित आराम स्तर की आवश्यकता होती है, हालांकि नए उपकरण समय के साथ इसे आसान बना रहे हैं। कमांड-लाइन इंटरफ़ेस की समझ सहायक है, लेकिन अब सख्ती से आवश्यक नहीं है। + +इसके लिए बहुत बुनियादी हार्डवेयर सेटअप की भी आवश्यकता होती है और न्यूनतम अनुशंसित विशिष्टताओं की कुछ समझ होती है। + + + +जैसे निजी कुंजियाँ आपके इथेरियम पते को सुरक्षित करती हैं, आपको विशेष रूप से अपने सत्यापनकर्ता के लिए कुंजियाँ उत्पन्न करने की आवश्यकता होगी। आपको यह समझना चाहिए कि किसी भी बीज वाक्यांशों या निजी कुंजियों को सुरक्षित कैसे रखा जाए।{' '} + +इथेरियम सुरक्षा और घोटाले की रोकथाम + + + +हार्डवेयर कभी-कभी विफल हो जाता है, नेटवर्क कनेक्शन त्रुटि देते हैं, और क्लाइंट सॉफ़्टवेयर को कभी-कभी अपग्रेड करने की आवश्यकता होती है। नोड रखरखाव अपरिहार्य है और कभी-कभी आपके ध्यान की आवश्यकता होगी। आप यह सुनिश्चित करना चाहेंगे कि आप किसी भी प्रत्याशित नेटवर्क अपग्रेड या अन्य महत्वपूर्ण क्लाइंट अपग्रेड से अवगत रहें। + + + +आपके पुरस्कार उस समय के समानुपाती होते हैं जब आपका सत्यापनकर्ता ऑनलाइन होता है और ठीक से सत्यापित होता है। डाउनटाइम एक ही समय में कितने अन्य सत्यापनकर्ता ऑफ़लाइन हैं, इसके अनुपात में दंड लगाता है, लेकिन इसके परिणामस्वरूप कटौती नहीं होती है। बैंडविड्थ भी मायने रखती है, क्योंकि समय पर सत्यापन नहीं मिलने पर पुरस्कार कम हो जाते हैं। आवश्यकताएं अलग-अलग होंगी, लेकिन कम से कम 10 Mb/s ऊपर और नीचे की सिफारिश की जाती है। + + + +ऑफ़लाइन होने के लिए निष्क्रियता दंड से अलग, दुर्भावनापूर्ण अपराधों के लिए कटौती एक अधिक गंभीर दंड है। एक समय में केवल एक मशीन पर अपनी कुंजियाँ लोड करके अल्पसंख्यक क्लाइंट चलाने से, कटौती का खतरा कम हो जाता है। कहा जा रहा है कि, सभी हितधारकों को कटौती के जोखिमों के बारे में पता होना चाहिए। + + सत्यापनकर्ता जीवनचक्र और कटौती कि अधिक जानकारी + + + + + +## यह कैसे काम करता है {#how-it-works} + + + +सक्रिय रहते हुए आप ETH पुरस्कार अर्जित करेंगे, जिसे समय-समय पर आपके निकासी पते में जमा किया जाएगा। + +यदि कभी वांछित हो, तो आप एक सत्यापनकर्ता के रूप में बाहर निकल सकते हैं जो ऑनलाइन होने की आवश्यकता को समाप्त करता है, और किसी भी अन्य पुरस्कार को रोकता है। फिर आपकी शेष राशि को उस निकासी पते पर वापस ले लिया जाएगा जिसे आप सेटअप के दौरान नामित करते हैं। + +[स्टेकिंग निकासी पर अधिक जानकारी](/staking/withdrawals/) + +## स्टेकिंग लॉन्चपैड पर आरंभ करें {#get-started-on-the-staking-launchpad} + +स्टेकिंग लॉन्चपैड एक ओपन सोर्स एप्लिकेशन है जो आपको एक हितधारक बनने में मदद करेगा। यह आपको अपने क्लाइंट्स को चुनने, अपनी कुंजियाँ उत्पन्न करने और अपने ETH को जमा करने के लिए मार्गदर्शन करेगा। यह सुनिश्चित करने के लिए एक चेकलिस्ट प्रदान की जाती है कि आपने अपने सत्यापनकर्ता को सुरक्षित रूप से सेट करने के लिए सब कुछ कवर किया है। + + + +## नोड और क्लाइंट सेटअप उपकरण के साथ जिसका विचार करना है {#node-tool-considerations} + +आपके ETH को एकल दांव अकेले स्टेकिंग पर लगाने में मदद करने के लिए उपकरणों और सेवाओं की बढ़ती संख्या है, लेकिन प्रत्येक अलग-अलग जोखिम और लाभ के साथ आते हैं। + +विशेषता संकेतकों का उपयोग नीचे उल्लेखनीय शक्तियों या कमजोरियों को इंगित करने के लिए किया जाता है जो एक सूचीबद्ध स्टेकिंग उपकरण में हो सकते हैं। इस अनुभाग का उपयोग एक संदर्भ के रूप में करें कि हम इन विशेषताओं को कैसे परिभाषित करते हैं, जबकि आप चुन रहे हैं कि आपकी स्टेकिंग यात्रा में मदद करने के लिए कौन से उपकरण हैं। + + + +## नोड और क्लाइंट सेटअप उपकरण का अन्वेषण करें {#node-and-client-tools} + +आपके सेटअप में आपकी मदद करने के लिए कई प्रकार के विकल्प उपलब्ध हैं। नीचे दिए गए उपकरणों के माध्यम से मार्गदर्शन करने में मदद करने के लिए उपरोक्त संकेतकों का इस्तेमाल करें। + + + +### नोड उपकरण + + + +कृपया [अल्पसंख्यक क्लाइंट](/developers/docs/nodes-and-clients/client-diversity/) चुनने के महत्व पर ध्यान दें क्योंकि यह नेटवर्क की सुरक्षा में सुधार करता है, और आपके जोखिम को सीमित करता है। उपकरण जो आपको अल्पसंख्यक क्लाइंट सेटअप करने की अनुमति देते हैं, उन्हें "बहु-क्लाइंट" के रूप में निरूपित किया जाता है। + +### कुंजी जनरेटर + +कुंजी उत्पन्न करने में मदद करने के लिए इन उपकरणों का उपयोग [स्टेकिंग डिपॉजिट CLI](https://github.com/ethereum/staking-deposit-cli/) के विकल्प के रूप में किया जा सकता है। + + + +क्या आपके पास स्टेकिंग टूल के बारे कोई सुझाव है जिसे हम भूल गए हैं? यह देखने के लिए हमारी [उत्पाद लिस्टिंग नीति](/contributing/adding-staking-products/) देखें कि क्या यह एक अच्छा फिट होगा और इसे समीक्षा के लिए सबमिट करें। + +## एकल स्टेकिंग गाइड का अन्वेषण करें {#staking-guides} + + + +## अक्सर पूछे जाने वाले सवाल {#faq} + +ये स्टेकिंग के बारे में कुछ सबसे सामान्य प्रश्न हैं जिनके बारे में जानना जरूरी है। + + + +सत्यापनकर्ता एक आभासी इकाई है जो इथेरियम पर रहता है और इथेरियम प्रोटोकॉल की आम सहमति में भाग लेता है। सत्यापनकर्ताओं को एक संतुलन, सार्वजनिक कुंजी और अन्य गुणों द्वारा दर्शाया जाता है। एक सत्यापनकर्ता क्लाइंट वह सॉफ्टवेयर है जो सत्यापनकर्ता की ओर से अपनी निजी कुंजी को पकड़कर और उपयोग करके कार्य करता है। एक एकल सत्यापनकर्ता क्लाइंट कई कुंजियों के जोड़े रख सकता है, कई सत्यापनकर्ताओं को नियंत्रित कर सकता है। + + + + +सत्यापनकर्ता से जुड़े प्रत्येक कुंजी-जोड़ी को सक्रिय होने के लिए ठीक 32 ETH की आवश्यकता होती है। कुंजियों के एक सेट में जमा अधिक ETH पुरस्कार क्षमता में वृद्धि नहीं करता है, क्योंकि प्रत्येक सत्यापनकर्ता 32 ETH के प्रभावी बैलेंस तक सीमित है। इसका मतलब यह है कि स्टेकिंग 32 ETH वृद्धि में की जाती है, प्रत्येक की कुंजी और बैलेंस का अपना सेट होता है। + +एकल सत्यापनकर्ता के लिए 32 ETH से अधिक जमा न करें। यह आपके पुरस्कारों में वृद्धि नहीं करेगा। यदि सत्यापनकर्ता के लिए निकासी पता सेट किया गया है, तो 32 ETH से अतिरिक्त धन अगले सत्यापनकर्ता स्वीप के दौरान स्वचालित रूप से इस पते पर वापस ले लिया जाएगा। + +यदि एकल स्टेकिंग आपके लिए बहुत अधिक मांग वाली लगती है, तो स्टेकिंग-सर्विस प्रदाता का उपयोग करने पर विचार करें, या यदि आप 32 ETH से कम के साथ काम कर रहे हैं, तो स्टेकिंग पूल देखें। + + + +जब नेटवर्क को ठीक से अंतिम रूप दिया जा रहा हो तो ऑफ़लाइन जाने से कटौती नहीं होगी। यदि आपका सत्यापनकर्ता किसी दिए गए युग (प्रत्येक 6.4 मिनट लंबे) के लिए सत्यापित करने के लिए उपलब्ध नहीं है, तो छोटे निष्क्रियता दंड लगाए जाते हैं, लेकिन यह कटौती से बहुत अलग है। ये दंड आपके द्वारा अर्जित पुरस्कार से थोड़ा कम हैं यदि सत्यापनकर्ता सत्यापित करने के लिए उपलब्ध था, और नुकसान को फिर से ऑनलाइन लगभग समान समय के साथ वापस अर्जित किया जा सकता है। + +ध्यान दें कि निष्क्रियता के लिए दंड इस बात के समानुपाती हैं कि एक ही समय में कितने सत्यापनकर्ता ऑफ़लाइन हैं। ऐसे मामलों में जहां नेटवर्क का एक बड़ा हिस्सा एक बार में ऑफ़लाइन है, इनमें से प्रत्येक सत्यापनकर्ता के लिए दंड एक एकल सत्यापनकर्ता अनुपलब्ध होने की तुलना में अधिक होगा। + +चरम मामलों में यदि नेटवर्क एक तिहाई से अधिक सत्यापनकर्ताओं के ऑफ़लाइन होने के परिणामस्वरूप अंतिम रूप देना बंद कर देता है, तो इन उपयोगकर्ताओं को एक द्विघात निष्क्रियता रिसाव के रूप में जाना जाता है, जो ऑफ़लाइन सत्यापनकर्ता खातों से ETH की घातीय निकासी है। यह नेटवर्क को अंततः निष्क्रिय सत्यापनकर्ताओं के ETH को जलाकर आत्म-उपचार करने में सक्षम बनाता है जब तक कि उनका बैलेंस 16 ETH तक नहीं पहुंच जाता है, जिस बिंदु पर उन्हें स्वचालित रूप से सत्यापनकर्ता पूल से निकाल दिया जाएगा। शेष ऑनलाइन सत्यापनकर्ताओं में अंततः 2/3 से अधिक नेटवर्क शामिल होगा, जो एक बार फिर श्रृंखला को अंतिम रूप देने के लिए आवश्यक सर्वोच्च बहुमत को संतुष्ट करेगा। + + + +संक्षेप में, इसकी कभी भी पूरी तरह से गारंटी नहीं दी जा सकती है, लेकिन यदि आप अच्छे विश्वास में कार्य करते हैं, एक अल्पसंख्यक क्लाइंट चलाते हैं और एक समय में केवल एक मशीन पर अपनी हस्ताक्षर कुंजी रखते हैं, तो कटौती होने का जोखिम लगभग शून्य है। + +केवल कुछ विशिष्ट तरीके हैं जिनके परिणामस्वरूप एक सत्यापनकर्ता को नेटवर्क से हटाया जा सकता है और बाहर निकाला जा सकता है। लेखन के समय, जो कटौती हुई है, वह विशेष रूप से अनावश्यक हार्डवेयर सेटअप का एक उत्पाद है जहां साइनिंग कुंजी एक बार में दो अलग-अलग मशीनों पर संग्रहीत की जाती हैं। यह अनजाने में आपकी कुंजियों से एक डबल वोट का परिणाम हो सकता है, जो एक कटौती निंदनीय अपराध है। + +एक सर्वोच्च बहुमत क्लाइंट (नेटवर्क के 2/3 से अधिक द्वारा उपयोग किए जाने वाले किसी भी क्लाइंट) को चलाने से इस क्लाइंट में बग होने की स्थिति में संभावित कटौती का जोखिम भी होता है जिसके परिणामस्वरूप चेन फोर्क होता है। इसके परिणामस्वरूप एक दोषपूर्ण फोर्क हो सकता है जिसे अंतिम रूप दिया जाता है। इच्छित श्रृंखला को वापस सही करने के लिए एक अंतिम ब्लॉक को पूर्ववत करने का प्रयास करके एक व्यापक वोट प्रस्तुत करने की आवश्यकता होगी। यह भी एक कटौती निंदनीय अपराध है और इसके बजाय अल्पसंख्यक क्लाइंट चलाकर इससे बचा जा सकता है। + +एक अल्पसंख्यक क्लाइंट में समकक्ष बग कभी भी अंतिम रूप नहीं देंगे और इस प्रकार कभी भी व्यापक वोट नहीं होगा, और इसके परिणामस्वरूप निष्क्रियता दंड होगा, कटौती नहीं। + + + + + +व्यक्तिगत क्लाइंट प्रदर्शन और यूज़र इंटरफ़ेस के संदर्भ में थोड़ा भिन्न हो सकते हैं, क्योंकि प्रत्येक को विभिन्न प्रोग्रामिंग भाषाओं का उपयोग करके विभिन्न टीमों द्वारा विकसित किया जाता है। कहा जा रहा है कि, उनमें से कोई भी "सर्वश्रेष्ठ" नहीं है। सभी उत्पादन ग्राहक सॉफ्टवेयर के उत्कृष्ट टुकड़े हैं, जो सभी ब्लॉकचेन के साथ सिंक करने और बातचीत करने के लिए एक ही मुख्य कार्य करते हैं। + +चूंकि सभी उत्पादन क्लाइंट एक ही बुनियादी कार्यक्षमता प्रदान करते हैं, इसलिए यह वास्तव में बहुत महत्वपूर्ण है कि आप एक अल्पसंख्यक क्लाइंट चुनें, जिसका अर्थ है कि कोई भी क्लाइंट जो वर्तमान में नेटवर्क पर अधिकांश सत्यापनकर्ताओं द्वारा उपयोग नहीं किया जा रहा है। यह उल्टा लग सकता है, लेकिन बहुमत या सर्वोच्च बहुमत क्लाइंट चलाने से आपको उस क्लाइंट में बग की स्थिति में कटौती का खतरा बढ़ जाता है। एक अल्पसंख्यक क्लाइंट चलाने से इन जोखिमों को काफी सीमित कर दिया जाता है। + +इस बारे में अधिक जानें कि क्लाइंट विविधता क्यों महत्वपूर्ण है + + + +यद्यपि एक वर्चुअल प्राइवेट सर्वर (VPS) का उपयोग होम हार्डवेयर के प्रतिस्थापन के रूप में किया जा सकता है, लेकिन आपके सत्यापनकर्ता क्लाइंट की भौतिक पहुंच और स्थान मायने रखता है। केंद्रीकृत क्लाउड समाधान जैसे Amazon Web Services या Digital Ocean नेटवर्क को केंद्रीकृत करने की कीमत पर हार्डवेयर प्राप्त करने और संचालित करने की सुविधा की अनुमति देते हैं। + +एकल केंद्रीकृत क्लाउड स्टोरेज समाधान पर चलने वाले अधिक सत्यापनकर्ता क्लाइंट, इन उपयोगकर्ताओं के लिए उतना ही खतरनाक हो जाता है। कोई भी घटना जो इन प्रदाताओं को ऑफ़लाइन ले जाती है, चाहे वह किसी हमले, विनियामक मांगों या सिर्फ बिजली/इंटरनेट आउटेज के कारण हो, इसके परिणामस्वरूप इस सर्वर पर निर्भर प्रत्येक सत्यापनकर्ता क्लाइंट एक ही समय में ऑफ़लाइन हो जाएगा। + +ऑफ़लाइन दंड इस बात के समानुपाती हैं कि एक ही समय में कितने अन्य ऑफ़लाइन हैं। VPS का उपयोग करने से जोखिम बढ़ जाता है कि ऑफ़लाइन दंड अधिक गंभीर होगा, और आउटेज काफी बड़ा होने की स्थिति में द्विघात लीक या कटौती का खतरा बढ़ जाता है। अपने जोखिम को कम करने के लिए, और नेटवर्क के लिए जोखिम कम करने के लिए, उपयोगकर्ताओं को अपने स्वयं के हार्डवेयर को प्राप्त करने और संचालित करने के लिए दृढ़ता से प्रोत्साहित किया जाता है। + + + + +बीकन चेन से किसी भी तरह की निकासी के लिए निकासी क्रेडेंशियल्स सेट करने की आवश्यकता होती है। + +नए हितधारकों ने इसे कुंजी-सृजन और जमा के समय निर्धारित किया। मौजूदा हितधारक जिन्होंने पहले से ही इसे सेट नहीं किया है, वे इस कार्यक्षमता का समर्थन करने के लिए अपनी कुंजियों को अपग्रेड कर सकते हैं। + +निकासी क्रेडेंशियल सेट हो जाने के बाद, इनाम भुगतान (प्रारंभिक 32 से अधिक संचित ETH) समय-समय पर निकासी पते पर स्वचालित रूप से वितरित किए जाएंगे। + +अपना पूरा बैलेंस वापस पाने और अनलॉक करने के लिए आपको अपने सत्यापनकर्ता से बाहर निकलने की प्रक्रिया भी पूरी करनी होगी। + +स्टेकिंग निकासी पर अधिक जानकारी + + +## अग्रिम पठन {#further-reading} + +- [इथेरियम की क्लाइंट विविधता समस्या](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ +- [क्लाइंट विविधता की मदद करना](https://www.attestant.io/posts/helping-client-diversity/) - _जिम मैकडॉनल्ड 2022_ +- [क्लाइंट विविधता इथेरियम की आम सहमति परत पर](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ +- [कैसे: इथेरियम सत्यापनकर्ता हार्डवेयर के लिए खरीदारी करें](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ +- [चरण दर चरण: इथेरियम 2.0 टेस्टनेट में कैसे शामिल हों](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _बुट्टा_ +- [Eth2 कटौती रोकथाम युक्तियाँ](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _रोल जॉर्डन 2020_ diff --git a/public/content/translations/hi/staking/withdrawals/index.md b/public/content/translations/hi/staking/withdrawals/index.md new file mode 100644 index 00000000000..f54beafa76c --- /dev/null +++ b/public/content/translations/hi/staking/withdrawals/index.md @@ -0,0 +1,218 @@ +--- +title: स्टेकिंग निकालना +description: पेज संक्षेप में बताता है कि पुश निकासी क्या हैं, वे कैसे काम करते हैं, और हितधारकों को अपने पुरस्कार प्राप्त करने के लिए क्या करने की आवश्यकता है +lang: hi +template: staking +image: /staking/leslie-withdrawal.png +alt: लेस्ली राइनो अपने स्टेकिंग पुरस्कारों के साथ +sidebarDepth: 2 +summaryPoints: + - शंघाई/कैपेला अपग्रेड ने इथेरियम पर स्टेकिंग निकासी को सक्षम किया + - सत्यापनकर्ता ऑपरेटरों को सक्षम करने के लिए एक निकासी पता प्रदान करना होगा + - पुरस्कार स्वचालित रूप से हर कुछ दिनों में वितरित किए जाते हैं + - सत्यापनकर्ता जो पूरी तरह से बाहर निकलते हैं, उन्हें अपना शेष बैलेंस प्राप्त होगा +--- + + +12 अप्रैल, 2023 को हुए शंघाई/कैपेला अपग्रेड के साथ निकासी को सक्षम किया गया था। शंघाई/कैपेला के बारे में अधिक जानकारी + + +**स्टेकिंग निकासी** इथेरियम की कन्सेन्सस सहमति परत (बीकन चेन) पर एक सत्यापनकर्ता खाते से ETH के हस्तांतरण का संदर्भ लें, निष्पादन परत तक जहां इसके साथ लेनदेन किया जा सकता है। + +32 ETH से अधिक की **अतिरिक्त शेष राशि का इनाम भुगतान** स्वचालित रूप से और नियमित रूप से उपयोगकर्ता द्वारा प्रदान किए जाने के बाद प्रत्येक सत्यापनकर्ता से जुड़े निकासी पते पर भेजा जाएगा। उपयोगकर्ता अपने पूर्ण सत्यापनकर्ता बैलेंस को अनलॉक करते हुए, **पूरी तरह से स्टेकिंग से बाहर निकल सकते हैं।** + +## स्टेकिंग पुरस्कार {#staking-rewards} + +इनाम भुगतान स्वचालित रूप से सक्रिय सत्यापनकर्ता खातों के लिए संसाधित होते हैं, जिसमें अधिकतम 32 ETH की प्रभावी शेष राशि होती है। + +पुरस्कारों के माध्यम से अर्जित 32 ETH से ऊपर की कोई भी शेष राशि वास्तव में मूलधन में योगदान नहीं करती है, या नेटवर्क पर इस सत्यापनकर्ता के वजन में वृद्धि नहीं करती है, और इस प्रकार हर कुछ दिनों में इनाम भुगतान के रूप में स्वचालित रूप से वापस ले ली जाती है। एक बार वापसी पता प्रदान करने के अलावा, इन पुरस्कारों को सत्यापनकर्ता ऑपरेटर से किसी भी कार्रवाई की आवश्यकता नहीं है। यह सब कन्सेन्सस सहमति परत पर शुरू किया जाता है, इस प्रकार किसी भी कदम पर कोई गैस (लेनदेन शुल्क) की आवश्यकता नहीं होती है। + +### हम यहां कैसे पहुंचे? {#how-did-we-get-here} + +पिछले कुछ वर्षों में इथेरियम ने ऊर्जा-गहन खनन के बजाय ETH द्वारा सुरक्षित नेटवर्क में संक्रमण करने वाले कई नेटवर्क उन्नयन किए हैं। इथेरियम पर आम सहमति में भाग लेना अब "स्टेकिंग" के रूप में जाना जाता है, क्योंकि प्रतिभागियों ने स्वेच्छा से ETH को लॉक कर दिया है, जिससे इसे नेटवर्क में भाग लेने की क्षमता के लिए "दांव" पर रखा गया है। नियमों का पालन करने वाले यूजर्स को पुरस्कार दिया जाएगा, जबकि ठगी की कोशिश करने वालों को दंडित किया जा सकता है। + +नवंबर 2020 में स्टेकिंग डिपॉजिट कॉन्ट्रैक्ट की शुरुआत के बाद से, कुछ बहादुर इथेरियम अग्रदूतों ने स्वेच्छा से "सत्यापनकर्ताओं" को सक्रिय करने के लिए धन को लॉक कर दिया है, विशेष खाते जिनके पास नेटवर्क नियमों का पालन करते हुए ब्लॉक को औपचारिक रूप से सत्यापित करने और प्रस्तावित करने का अधिकार है। + +शंघाई/कैपेला अपग्रेड से पहले, आप अपने दांव वाले ETH का उपयोग या एक्सेस नहीं कर सकते थे। लेकिन अब, आप अपने पुरस्कारों को स्वचालित रूप से एक चुने हुए खाते में प्राप्त करने के लिए ऑप्ट-इन कर सकते हैं, और आप जब चाहें अपने दांव वाले ETH को वापस भी ले सकते हैं। + +### मैं कैसे तैयारी करूं? {#how-do-i-prepare} + + + +### ज़रूरी सूचनाएं {#important-notices} + +निकासी पता प्रदान करना किसी भी सत्यापनकर्ता खाते के लिए एक आवश्यक कदम है, इससे पहले कि वह ETH को अपनी शेष राशि से वापस लेने के लिए पात्र हो। + + + प्रत्येक सत्यापनकर्ता खाते को केवल एक एकल निकासी पता, एक बार सौंपा जा सकता है। एक बार जब कोई पता चुना जाता है और आम सहमति परत में प्रस्तुत किया जाता है, तो इसे पूर्ववत नहीं किया जा सकता है या फिर से बदला नहीं जा सकता है। सबमिट करने से पहले प्रदान किए गए पते के स्वामित्व और सटीकता की दोबारा जांच करें। + + +इस बीच इसे प्रदान नहीं करने के लिए आपके धन को कोई खतरा नहीं है, यह मानते हुए कि आपका नेमोनिक / बीज वाक्यांश ऑफ़लाइन सुरक्षित रहा है, और किसी भी तरह से समझौता नहीं किया गया है। निकासी क्रेडेंशियल्स जोड़ने में विफलता केवल ETH को सत्यापनकर्ता खाते में लॉक कर देगी क्योंकि यह तब तक रहा है जब तक कि निकासी पता प्रदान नहीं किया जाता है। + +## स्टेकिंग से पूरी तरह से बाहर निकलना {#exiting-staking-entirely} + +_किसी भी_ धन को सत्यापनकर्ता खाते की शेष राशि से स्थानांतरित करने से पहले निकासी पता प्रदान करना आवश्यक है। + +पूरी तरह से स्टैकिंग से बाहर निकलने और अपना पूरा बैलेंस वापस लेने के इच्छुक उपयोगकर्ताओं को सत्यापनकर्ता कुंजी के साथ एक "स्वैच्छिक निकास" संदेश पर हस्ताक्षर और प्रसारण करना होगा, जो स्टैकिंग से बाहर निकलने की प्रक्रिया शुरू करेगा। यह आपके सत्यापनकर्ता क्लाइंट के साथ किया जाता है और आपके आम सहमति नोड में प्रस्तुत किया जाता है, और गैस की आवश्यकता नहीं होती है। + +एक सत्यापनकर्ता के स्टेकिंग से बाहर निकलने की प्रक्रिया में परिवर्तनीय मात्रा में समय लगता है, यह इस बात पर निर्भर करता है कि एक ही समय में कितने अन्य बाहर निकल रहे हैं। एक बार पूरा होने के बाद, यह खाता अब सत्यापनकर्ता नेटवर्क कर्तव्यों को पूरा करने के लिए जिम्मेदार नहीं होगा, अब पुरस्कारों के लिए योग्य नहीं है, और अब उनका ETH "दांव पर" नहीं है। इस समय खाते को पूरी तरह से "निकासी योग्य" के रूप में चिह्नित किया जाएगा। + +एक बार जब किसी खाते को "निकासी योग्य" के रूप में चिह्नित किया जाता है, और निकासी क्रेडेंशियल प्रदान किए जाते हैं, तो उपयोगकर्ता को प्रतीक्षा के अलावा और कुछ करने की आवश्यकता नहीं होती है। पात्र निकास निधियों के लिए ब्लॉक प्रस्तावकों द्वारा खातों को स्वचालित रूप से और लगातार स्वीप किया जाता है, और आपके खाते की शेष राशि को अगले स्वीप के दौरान पूर्ण रूप से (जिसे "पूर्ण निकासी" के रूप में भी जाना जाता है) स्थानांतरित कर दिया जाएगा। + +## स्टेकिंग निकासी कब सक्षम की जाती है? {#when} + +स्टेकिंग निकासी लाइव हैं! कैपेला अपग्रेड के हिस्से के रूप में निकासी कार्यक्षमता सक्षम की गई थी जो 12 अप्रैल, 2023 को । + +शंघाई/कैपेला अपग्रेड ने पहले से दांव पर लगाए गए ETH को नियमित इथेरियम खातों में पुनः प्राप्त करने में सक्षम बनाया। इसने स्टेकिंग लिक्विडिटी तरलता पर लूप को बंद कर दिया, और इथेरियम को एक स्थायी, स्केलेबल, सुरक्षित विकेन्द्रीकृत पारिस्थितिकी तंत्र के निर्माण की दिशा में अपनी यात्रा पर एक कदम करीब लाया। + +- [इथेरियम इतिहास के बारे में अधिक जानकारी](/history/) +- [इथेरियम रोडमैप के बारे में अधिक जानकारी](/roadmap/) + +## निकासी भुगतान कैसे काम करते हैं? {#how-do-withdrawals-work} + +दिया गया सत्यापनकर्ता निकासी के लिए पात्र है या नहीं, यह सत्यापनकर्ता खाते की स्थिति द्वारा ही निर्धारित किया जाता है। किसी भी समय यह निर्धारित करने के लिए किसी भी उपयोगकर्ता इनपुट की आवश्यकता नहीं होती है कि किसी खाते में निकासी शुरू की जानी चाहिए या नहीं - पूरी प्रक्रिया एक निरंतर लूप पर आम सहमति परत द्वारा स्वचालित रूप से की जाती है। + +### More of a visual learner? {#visual-learner} + +Finematics द्वारा स्टेकिंग निकासी करने वाले इथेरियम की इस व्याख्या को देखें: + + + +### सत्यापनकर्ता "स्वीपिंग" {#validator-sweeping} + +जब एक सत्यापनकर्ता अगले ब्लॉक का प्रस्ताव करने के लिए निर्धारित होता है, तो उसे 16 योग्य निकासी की निकासी कतार बनाने की आवश्यकता होती है। यह मूल रूप से सत्यापनकर्ता सूचकांक 0 से शुरू करके किया जाता है, यह निर्धारित करके कि प्रोटोकॉल के नियमों के अनुसार इस खाते के लिए कोई योग्य निकासी है या नहीं, और यदि है तो इसे कतार में जोड़ दिया जाता है। निम्नलिखित ब्लॉक को प्रस्तावित करने के लिए सेट किया गया सत्यापनकर्ता अनिश्चित काल तक प्रगति करते हुए वहीं से शुरू करेगा जहां आखिरी ब्लॉक छोड़ा गया था। + + +एक एनालॉग घड़ी के बारे में सोचें। घड़ी की सुई घंटे की ओर इशारा करती है, एक दिशा में आगे बढ़ती है, कोई भी घंटा नहीं छोड़ती है, और अंततः अंतिम संख्या तक पहुंचने के बाद फिर से शुरुआत में आ जाती है।

+अब 1 से 12 के बजाय, कल्पना करें कि घड़ी में 0 से N है (सत्यापनकर्ता खातों की कुल संख्या जो कभी भी आम सहमति परत पर पंजीकृत की गई है, जनवरी 2023 तक 500,000 से अधिक)।

+घड़ी की सुई अगले सत्यापनकर्ता को इंगित करती है जिसे पात्र निकासी के लिए जांचने की आवश्यकता है। यह 0 से शुरू होती है, और किसी भी खाते को छोड़े बिना चारों ओर आगे बढ़ती है। जब अंतिम सत्यापनकर्ता तक पहुंच जाता है, तो चक्र शुरुआत से फिर से जारी रहता है। +
+ +#### निकासी के लिए खाते की जाँच करना {#checking-an-account-for-withdrawals} + +जबकि एक प्रस्तावक संभावित निकासी के लिए सत्यापनकर्ताओं के माध्यम से व्यापक है, जांच किए जा रहे प्रत्येक सत्यापनकर्ता का मूल्यांकन प्रश्नों की एक छोटी श्रृंखला के साथ किया जाता है ताकि यह निर्धारित किया जा सके कि क्या वापसी शुरू की जानी चाहिए, और यदि हां, तो कितना ETH वापस लिया जाना चाहिए। + +1. **क्या निकासी पता प्रदान किया गया है?** यदि कोई निकासी पता प्रदान नहीं किया गया है, तो खाता छोड़ दिया जाता है और कोई निकासी शुरू नहीं की जाती है। +2. **क्या सत्यापनकर्ता बाहर निकल जाता है और वापस लेने योग्य होता है?** यदि सत्यापनकर्ता पूरी तरह से बाहर निकल गया है, और हम उस अवधि में पहुंच गए हैं जहां उनके खाते को "वापस लेने योग्य" माना जाता है, तो एक पूर्ण निकासी संसाधित की जाएगी। यह पूरी शेष राशि को निकासी पते पर स्थानांतरित कर देगा। +3. **क्या प्रभावी बैलेंस 32 पर अधिकतम है?** यदि खाते में निकासी क्रेडेंशियल्स हैं, पूरी तरह से बाहर नहीं निकले हैं, और 32 प्रतीक्षा से ऊपर के पुरस्कार हैं, तो आंशिक वापसी संसाधित की जाएगी जो उपयोगकर्ता के निकासी पते पर केवल 32 से ऊपर के पुरस्कारों को स्थानांतरित करती है। + +सत्यापनकर्ता के जीवन चक्र के दौरान सत्यापनकर्ता ऑपरेटरों द्वारा की जाने वाली केवल दो क्रियाएं हैं जो इस प्रवाह को सीधे प्रभावित करती हैं: + +- निकासी के किसी भी रूप को सक्षम करने के लिए निकासी क्रेडेंशियल प्रदान करें +- नेटवर्क से बाहर निकलें, जो पूर्ण वापसी को ट्रिगर करेगा + +### गैस मुक्त {#gas-free} + +निकासी करने का यह दृष्टिकोण हितधारकों को ETH की एक विशेष राशि को वापस लेने का अनुरोध करते हुए मैन्युअल रूप से लेनदेन प्रस्तुत करने की आवश्यकता से बचाता है। इसका मतलब है कि किसी **गैस (लेनदेन शुल्क) की आवश्यकता नहीं है**, और निकासी भी मौजूदा निष्पादन परत ब्लॉक स्पेस के लिए प्रतिस्पर्धा नहीं करती है। + +### मुझे कितनी बार मेरे स्टेकिंग पुरस्कार मिलेंगे? {#how-soon} + +एक एकल ब्लॉक में अधिकतम 16 निकासी की प्रक्रिया की जा सकती है। उस दर पर, प्रति दिन 115,200 सत्यापनकर्ता निकासी संसाधित की जा सकती है (यह मानते हुए कि कोई स्लॉट छूटा नहीं है)। जैसा कि ऊपर उल्लेख किया गया है, योग्य निकासी के बिना सत्यापनकर्ताओं को छोड़ दिया जाएगा, जिससे स्वीप खत्म करने का समय कम हो जाएगा। + +इस गणना का विस्तार करते हुए, हम अनुमान लगा सकते हैं कि दी गई संख्या में निकासी को संसाधित करने में कितना समय लगेगा: + + + +| निकासी की संख्या | पूरा होने का समय | +| :--------------: | :--------------: | +| 400,000 | 3.5 दिन | +| 500,000 | 4.3 दिन | +| 600,000 | 5.2 दिन | +| 700,000 | 6.1 दिन | +| 800,000 | 7.0 दिन | + + + +जैसा कि आप देखते हैं कि यह धीमा हो जाता है क्योंकि नेटवर्क पर अधिक सत्यापनकर्ता होते हैं। छूटे हुए स्लॉट में वृद्धि इसे आनुपातिक रूप से धीमा कर सकती है, लेकिन यह आम तौर पर संभावित परिणामों के धीमे पक्ष का प्रतिनिधित्व करेगा। + +## अक्सर पूछे जाने वाले सवाल {#faq} + + +नहीं, निकासी क्रेडेंशियल प्रदान करने की प्रक्रिया एक बार की प्रक्रिया है, और एक बार जमा करने के बाद इसे बदला नहीं जा सकता है। + + + +निष्पादन परत निकासी पता सेट करके उस सत्यापनकर्ता के लिए निकासी क्रेडेंशियल्स स्थायी रूप से बदल दिए गए हैं। इसका मतलब है कि पुराने क्रेडेंशियल्स अब काम नहीं करेंगे, और नए क्रेडेंशियल्स एक निष्पादन परत खाते में हैं। + +निकासी पते या तो एक स्मार्ट अनुबंध (इसके कोड द्वारा नियंत्रित), या एक बाहरी स्वामित्व वाला खाता (EOA, इसकी निजी कुंजी द्वारा नियंत्रित) हो सकते हैं। वर्तमान में इन खातों के पास आम सहमति परत पर एक संदेश को वापस संवाद करने का कोई तरीका नहीं है जो सत्यापनकर्ता क्रेडेंशियल्स के परिवर्तन का संकेत देगा, और इस कार्यक्षमता को जोड़ने से प्रोटोकॉल में अनावश्यक जटिलता जुड़ जाएगी। + +किसी विशेष सत्यापनकर्ता के लिए निकासी पते को बदलने के विकल्प के रूप में, उपयोगकर्ता अपने निकासी पते के रूप में एक स्मार्ट अनुबंध सेट करना चुन सकते हैं जो कुंजी रोटेटिंग को संभाल सकता है, जैसे कि एक सेफ। जो उपयोगकर्ता अपने स्वयं के EOA में अपने फंड सेट करते हैं, वे अपने सभी दांव लगाए गए फंडों को वापस लेने के लिए पूर्ण निकासी कर सकते हैं, और फिर नए क्रेडेंशियल्स का उपयोग करके फिर से हिस्सेदारी कर सकते हैं। + + + + +यदि आप स्टेकिंग पूल का हिस्सा हैं या स्टेकिंग टोकन रखते हैं, तो आपको स्टेकिंग निकासी को कैसे प्रबंधित किया जाता है, इसके बारे में अधिक जानकारी के लिए अपने प्रदाता से जांच करनी चाहिए, क्योंकि प्रत्येक सेवा अलग तरह से संचालित होती है। + +सामान्य तौर पर, उपयोगकर्ताओं को अपने अंतर्निहित स्टेक ETH को पुनः प्राप्त करने के लिए स्वतंत्र होना चाहिए, या यह बदलना चाहिए कि वे किस स्टेकिंग प्रदाता का उपयोग करते हैं। यदि कोई विशेष पूल बहुत बड़ा हो रहा है, तो धनराशि को बाहर निकाला जा सकता है, पुनःस्टेक किया जा सकता और एक छोटे प्रदाता के साथ फिर से दांव पर लगाया जा सकता है। या, यदि आपने पर्याप्त ETH जमा किया है तो आप घर से दांव लगा सकते हैं। + + + + +हां, जब तक आपके सत्यापनकर्ता ने निकासी पता प्रदान किया है। शुरुआत में किसी भी निकासी को सक्षम करने के लिए इसे एक बार प्रदान किया जाना चाहिए, फिर प्रत्येक सत्यापनकर्ता स्वीप के साथ हर कुछ दिनों में इनाम भुगतान स्वचालित रूप से ट्रिगर हो जाएगा। + + + + +नहीं, यदि आपका सत्यापनकर्ता अभी भी नेटवर्क पर सक्रिय है, तो पूर्ण वापसी स्वचालित रूप से नहीं होगी। इसके लिए मैन्युअल रूप से स्वैच्छिक निकास शुरू करने की आवश्यकता होती है। + +एक बार जब एक सत्यापनकर्ता ने बाहर निकलने की प्रक्रिया पूरी कर ली है, और यह मानते हुए कि खाते में निकासी क्रेडेंशियल्स हैं, तो शेष राशि अगले सत्यापनकर्ता स्वीप के दौरान वापस ले ली जाएगी। + + + + +निकासी को स्वचालित रूप से पुश के लिए डिज़ाइन किया गया है, किसी भी ETH को स्थानांतरित करना जो सक्रिय रूप से हिस्सेदारी में योगदान नहीं दे रहा है। इसमें उन खातों के लिए पूर्ण शेष राशि शामिल है जिन्होंने बाहर निकलने की प्रक्रिया पूरी कर ली है। + +ETH की विशिष्ट मात्रा को वापस लेने के लिए मैन्युअल रूप से अनुरोध करना संभव नहीं है। + + + + +सत्यापनकर्ता ऑपरेटरों को स्टेकिंग लॉन्चपैड निकासी पृष्ठ पर जाने की सिफारिश की जाती है जहां आपको निकासी के लिए अपने सत्यापनकर्ता को तैयार करने के बारे में अधिक जानकारी मिलेगी। तैयार, घटनाओं का समय, और निकासी कैसे कार्य करती है, इसके बारे में अधिक जानकारी। + +पहले टेस्टनेट पर अपने सेटअप को आज़माने के लिए, आरंभ करने के लिए Goerli टेस्टनेट स्टेकिंग लॉन्चपैड पर जाएं। + + + + +नहीं। एक बार जब एक सत्यापनकर्ता बाहर निकल जाता है और उसकी पूरी शेष राशि वापस ले ली जाती है, तो उस सत्यापनकर्ता को जमा किया गया कोई भी अतिरिक्त धन स्वचालित रूप से अगले सत्यापनकर्ता स्वीप के दौरान निकासी पते पर स्थानांतरित कर दिया जाएगा। ETH को फिर से दांव पर लगाने के लिए, एक नया सत्यापनकर्ता सक्रिय होना चाहिए। + + +## अग्रिम पठन {#further-reading} + +- [स्टेकिंग लांच पैड निकासी](https://launchpad.ethereum.org/withdrawals) +- [EIP-4895: संचालन के रूप में बीकन चेन पुश निकासी](https://eips.ethereum.org/EIPS/eip-4895) +- [इथेरियम जटिलताएं - शंघाई](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) +- [PEEPanEIP #94: पोटुज़ और हसियाओ-वेई वांग के साथ स्टेक ETH निकासी (परीक्षण)](https://www.youtube.com/watch?v=G8UstwmGtyE) +- [PEEPanEIP#68: EIP-4895: एलेक्स स्टोक्स के साथ संचालन के रूप में बीकन चेन पुश निकासी](https://www.youtube.com/watch?v=CcL9RJBljUs) +- [सत्यापनकर्ता प्रभावी शेष को समझना](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/hi/web3/index.md b/public/content/translations/hi/web3/index.md similarity index 100% rename from src/content/translations/hi/web3/index.md rename to public/content/translations/hi/web3/index.md diff --git a/src/content/translations/hi/zero-knowledge-proofs/index.md b/public/content/translations/hi/zero-knowledge-proofs/index.md similarity index 100% rename from src/content/translations/hi/zero-knowledge-proofs/index.md rename to public/content/translations/hi/zero-knowledge-proofs/index.md diff --git a/src/content/translations/hr/eips/index.md b/public/content/translations/hr/eips/index.md similarity index 100% rename from src/content/translations/hr/eips/index.md rename to public/content/translations/hr/eips/index.md diff --git a/public/content/translations/hr/roadmap/beacon-chain/index.md b/public/content/translations/hr/roadmap/beacon-chain/index.md new file mode 100644 index 00000000000..7162782b4f3 --- /dev/null +++ b/public/content/translations/hr/roadmap/beacon-chain/index.md @@ -0,0 +1,76 @@ +--- +title: Beacon Chain +description: Saznajte vieše o nadogradnji Beacon Chain kojom je implementiran dokaz uloga u Ethereumu. +lang: hr +template: upgrade +image: /upgrades/core.png +alt: +summaryPoint1: Nadogradnja Beacon Chain implementirala je dokaz uloga u ekosustav Ethereuma. +summaryPoint2: Nadogradnja je objedinjena s izvornim lancem dokaza rada Ethereuma u rujnu 2022. +summaryPoint3: Nadogradnja Beacon Chain uvela je logiku koncenzusa i protokol blokiranja nagađanja koji sada pruža Ethereum. +--- + + + Nadogradnja Beacon Chain krenula je u implementaciju 1. prosinca 2020., dok je formalizacija dokaza uloga kao Ethereumovog mehanizma konsenzusa izvršena nadogradnjom The Merge 15. rujna 2022. + + +## Što je Beacon Chain? {#what-is-the-beacon-chain} + +Beacon Chain bio je naziv izvornog lanca blokova dokaza uloga koji je pokrenut u 2020. Nadogradnja je izrađena prije implementacije glavne mreže Ethereuma kako bi osigurao da je logika konsenzusa dokaza uloga točna i održiva. Ova nadogradnja aktivna je zajedno s izvornim dokazom rada Ethereuma. Isključivanje i uključivanje dokaza rada na Ethereumu zahtijevalo je upućivanje nadogradnje Beacon Chain da prihvati transakcije iz izvornog Ethereumovog lanca, da ih objedini u blokove i organizira u lance blokova koristeći se mehanizmom konsenzusa dokaza uloga. Istodobno, izvorni korisnici Ethereuma isključili su rudarenje, propagiranje bloka i logiku konsenzusa i predali to nadogradnji Beacon Chain. Taj je događaj poznat pod nazivom [The Merge (Spajanje)](/roadmap/merge/). Nako što se spajanje dogodilo, više nisu postojala dva lanca blokova – postojao je samo jedan lanac dokaza uloga Ethereuma. + +## Što radi Beacon Chain? {#what-does-the-beacon-chain-do} + +Beacon Chain predstavlja glavnu knjigu računa koji su proveli i koordinirali mrežu Ethereumovih [dionika](/staking/) prije nogo što su ti dionici započeli provoditi prave Ethereumove transakcije. Nadogradnja nije obrađivala transakcije ili interakcije pametnog ugovora. + +Nadogradnja uvodi procesor konsenzusa (ili „sloj konsenzusa”) koji je preuzeo mjesto rudarenja dokaza rada u Ethereumu i uveo mnoge značajne promjene. + +Beacon Chain bila je temeljna komponenta [sadašnjeg sigurnog, ekološkog i prilagodljivog Ethereuma](/roadmap/vision/). + +## Utjecaj nadogradnje Beacon Chain {#beacon-chain-features} + +### Osnove ulaganja {#introducing-staking} + +Beacon Chain uveo je u Ethereum [dokaz uloga](/developers/docs/consensus-mechanisms/pos/). Tako je zaštićen Ethereum, a validatori imaju mogućnost veće zarade ETH-a. U praksi, ulaganje znači ulaganje ETH-a kako bi se aktivirao softver validatora. Kao ulagač pokrećete softver koji izrađuje i potvrđuje nove blokove u lancu. + +Ulaganje ima sličnu ulogu kao i [rudarenje](/developers/docs/mining/), ali uz mnoge razlike. Rudarenje zahtijeva veća prethodna ulaganja u obliku snažnog hardvera i potrošnje energije i rezultira proporcionalnom zaradom kroz proizvodnju i naprednom centralizacijom. Rudarenje nije imalo zahtjev da se sredstva blokiraju kao pokriće te protokol tako nije mogao kazniti loše sudionike nakon napada. + +Prijelazom na dokaz uloga Ethereum je postao sigurniji i manje centraliziran u odnosu na dokaz rada. Što više ljudi sudjeluje u mreži, to će ona biti decentraliziranija i sigurnija od napada. + + + Ako želite postati validator i pomoći u zaštiti Ethereuma, ovdje saznajte više o ulaganju. + + +### Postavljanje razdjeljivanja {#setting-up-for-sharding} + +Od trenutka kada se Beacon Chain objedinio s izvornom glavnom mrežom Ethereuma, Ethereumova zajednica počela je tražiti mogućnost prilagođavanja mreže. + +Prednost dokaza uloga predstavlja dostupnost registra svih odobrenih izdavača blokova zajedno s ETH ulogom. Registar postavlja temelj mogućnosti pouzdanog dijeljenja i osvajanja određenih mrežnih odgovornosti. + +Razlika je i u odgovornost u odnosu na dokaz rada gdje rudari nisu imali obvezu prema mreži i mogli su zaustaviti rudarenje i trajno i trenutačno isključiti svoje čvorove bez ikakvih posljedica. Također, nema registra poznatih, blokiranih predlagača te pouzdanog načina sigurne podjele mrežnih odgovornosti. + +[Više o dijeljenju](/roadmap/danksharding/) + +## Odnos između nadogradnji {#relationship-between-upgrades} + +Sve nadogradnje Ethereuma donekle su međusobno povezane. Dakle, ponovimo ukratko kako Beacon Chain utječe na ostale nadogradnje. + +### Beacon Chain i spajanje {#merge-and-beacon-chain} + +U početku je Beacon Chain postojao odvojeno od glavne mreže Ethereuma. Godine 2022. konačno su objedinjeni. + + + Spajanje + + +### Djelići i Beacon Chain {#shards-and-beacon-chain} + +Razdjeljivanje se sigurno može uvesti u Ethereumov ekosustav samo ako je uspostavljen mehanizam konsenzusa dokaza uloga. Beacon Chain uveo je ulaganje objedinjeno s glavnom mrežom i tako pripremio teren za razdjeljivanje koje će pomoći u daljnjem prilagođavanju Ethereuma. + + + Lanci djelića + + +## Daljnje čitanje + +- [Više o budućim nadogradnjama Ethereuma](/roadmap/vision) +- [Više o dokazu uloga](/developers/docs/consensus-mechanisms/pos) diff --git a/public/content/translations/hr/roadmap/merge/index.md b/public/content/translations/hr/roadmap/merge/index.md new file mode 100644 index 00000000000..b338855d4da --- /dev/null +++ b/public/content/translations/hr/roadmap/merge/index.md @@ -0,0 +1,225 @@ +--- +title: Spajanje +description: Saznajte više o spajanju – kada je glavna mreža Ethereuma usvojila dokaz uloga. +lang: hr +template: upgrade +image: /upgrades/merge.png +alt: +summaryPoint1: Glavna mreža Ethereuma upotrebljava dokaz uloga, međutim, to nije uvijek bilo tako. +summaryPoint2: Nadogradnja izvornog mehanizma dokaza rada na dokaz uloga nazvana je The Merge (Spajanje). +summaryPoint3: Spajanjem je spojena izvorna glavna mreža Ethereumu sa zasebnim lancem blokova dokaza uloga (poznat pod nazivom Beacon Chain) u jedan lanac. +summaryPoint4: Spajanjem je potrošnja energije Ethereuma smanjena za približno 99,95 %. +--- + + + Spajanje je provedeno 15. rujna 2022. Dovršeni prijelaz Ethereuma na konsenzus dokaza uloga službeno je zamijenio dokaz rada i smanjio potrošnju energije za približno 99,95 %. + + +## Što je spajanje? {#what-is-the-merge} + +Spajanje predstavlja objedinjavanje izvornog izvršnog sloja Ethereuma (glavne mreže koja je postojala još od [geneze](/history/#frontier)) s novim slojem konsenzusa dokaza uloga pod nazivom Beacon Chain. Time se uklanja potreba za energetski intenzivnim rudarenjem i umjesto toga mreža se osigurava korištenjem ulagačkog ETH-a. To je bio dosta značajan korak vizije Ethereuma kao prilagodljivijeg, sigurnijeg i održivijeg. + + + +U početku je [Beacon Chain](/roadmap/beacon-chain/) bio odvojen od [glavne mreže](/glossary/#mainnet). Glavna mreža Ethereuma, sa svim svojim računima, stanjima, pametnim ugovorima i stanjima lanaca blokova, ostaje zaštićena [dokazom rada](/developers/docs/consensus-mechanisms/pow/), čak i za vrijeme paralelnog rada značajke Beacon Chain i njegova [dokaza uloga](/developers/docs/consensus-mechanisms/pos/). Spajanjem su ta dva sustava konačno objedinjena, pri čemu je dokaz rada trajno zamijenjen dokazom uloga. + +Zamislite Ethereum kao svemirski brod koji je izbačen u orbitu prije nogo što je bio spreman za zvjezdano putovanje. Uz Beacon Chain zajednica je izgradila novi stroj i ojačala njegov trup. Nakon iscrpnog testiranja, odlučeno je da je vrijeme za zamjenu starog stroja u radu novim. Time je uveden nov i učinkovitiji motor u postojeći brod koji mu omogućuje dodatne svjetlosne godine i osvajanje novih svjetova. + +## Spajanje s Mainnetom {#merging-with-mainnet} + +Dokaz rada štitio je glavnu mrežu Ethereuma od njegove geneze sve do spajanja. Time je omogućeno da se u srpnju 2015. uvede lanac blokova Ethereuma kojim se svi mi koristimo, sa svim poznatim značajkama – transakcijama, pametnim ugovorima, računima i drugim. + +Tijekom postojanja Ethereuma programeri su se pripremali za mogući prijelaz s koncepta dokaza rada na koncept dokaza uloga. Dana 1. prosinca 2020. Beacon Chain je formiran kao lanac blokova odvojen od glavne mreže u paralelnom radu. + +Beacon Chain nije obrađivao transakcije glavne mreže. Umjesto toga konsenzus je postizao agregiranjem aktivnih validatora i njihovih stanja računa. Nakon iscrpnog testiranja postalo je izvjesno da je vrijeme da Beacon Chain postiže konsenzus temeljem stvarnih podataka. Nakon spajanja Beacon Chain postao je procesor za konsenzus svih mrežnih podataka, uključujući transakcije izvršnog sloja i bilance računa. + +Spajanje je predstavljalo službeni prijelaz na Beacon Chain kao procesor proizvodnje bloka. Rudarenje više nije predstavljalo način kako proizvoditi valjane blokove. Umjesto toga, validatori dokaza uloga preuzeli su tu ulogu i sada su odgovorni za obradu valjanosti svih transakcija i predlaganje blokova. + +Spajanjem nisu izgubljeni povijesni podaci. Kako se glavna mreža objedinila s Beacon Chainom, tako je migrirana i cjelokupna povijest transakcija Ethereuma. + + +Prijelaz na dokaz uloga promijenio je način izdavanja Ethera. Saznajte više o izdavanju Ethera prije i nakon Spajanja. + + +### Korisnici i vlasnici {#users-holders} + +**Spajanjem nije promijenjeno ništa za vlasnike ili korisnike.** + +_Ponavljamo_: kao korisnik ili vlasnik ETH-a ili bilo kojeg drugog digitalnog novčanog sredstva na Ethereumu i kao dionik koji ne radi putem čvora, **zbog spajanja ne morate poduzeti nikakve mjere sa svojim sredstvima ili novčanikom u računu.** ETH je uvijek ETH. Ne postoji „stari ETH” ili „novi ETH” ili „ETH1” ili „ETH2”. Novčanici funkcioniraju na isti način poslije spajanja kao i prije – ako vam netko kaže drugačije, to je prevarant. + +Unatoč trajne zamjene dokaza rada i prijelaza na dokaz uloga, cjelokupna povijest Ethereuma od samih početaka ostala je nepromijenjen i potpuna. Sva sredstva u novčaniku prije spajanja i dalje su dostupna i nakon spajanja. **Zbog nadogradnje vi ne morate ništa učiniti.** + +[Više o sigurnosti Ethereuma](/security/#eth2-token-scam) + +### Rukovatelji čvora i programeri decentralizirane aplikacije (dapp) {#node-operators-dapp-developers} + + + +Ključne radnje sadržavaju: + +1. Zajedničko pokretanje konsenzus klijenta i izvršnog klijenta; kranje točke treće strane za preuzimanje podataka izvršavanja više ne funkcioniraju nakon spajanja. +2. Provjerite autentičnost klijenta za izvršavanje i konsenzus klijenta dijeljenom JWR tajnom kako bi sigurno mogli komunicirati. +3. Postavite adresu „primatelja naknade” kako biste primili svoju zarađenu napojnicu/MEV za naknadu za transakciju. + +Ako ne dovršite gornje dvije radnje, vaš će se čvor vidjeti kao „izvan mreže” sve dok oba sloja nisu sinkronizirana i dok im nije potvrđena autentičnost. + +Iako nije postavljen „primatelj naknade”, validator i dalje može raditi na uobičajeni način, ali vi nećete primiti napojnice za naknade ili MEV koje biste inače zaradili u blokovima koje vaš validator predloži. + + + + +Sve do spajanja bio je dovoljan samo klijent za izvršenje (npr. Geth, Erigon, Besu ili Nethermind) za primanje, odgovarajuću potvrdu i propagiranje blokova o kojima se nagađalo u mreži. Nakon spajanja potvrđivanje transakcija koje su dio izvršnog korisnog iznosa sada ovisi o valjanosti „bloka konsenzusa” u kojem se nalaze. + +Kao rezultat, čvor Ethereum sada zahtijeva i klijent za izvršenje i klijent za konsenzus. Ta dva klijenta zajednički funkcioniraju služeći se API-jem novog procesora. API procesora zahtijeva provjeru autentičnosti JWT tajnom koja se daje oboma klijentima glede sigurne komunikacije. + +Ključne radnje sadržavaju: + +- Instalaciju klijenta za konsenzus uz klijenta za izvršenje. +- Potvrdu autentičnosti klijenta za izvršenje i klijenta za konsenzus dijeljenom JWT tajnom kako bi mogli sigurno međusobno komunicirati. + +Ako ne dovršite gornje radnje, vaš će se čvor vidjeti kao „izvan mreže” sve dok oba sloja nisu sinkronizirana i dok im nije potvrđena autentičnost. + + + + + +Spajanje je izvršilo promjene konsenzusa koje su uključivale promjene: + +- strukture bloka +- vremena utora/bloka +- operacijskog programa +- izvora slučajne izvedbe u lancu +- koncept sigurnih blokova za dodavanje (safe head) i odobrenih blokova (finalized). + +Više informacija potražite u objavi Tima Beikoa: [How The Merge Impacts Ethereum’s Application Layer](https://blog.ethereum.org/2021/11/29/how-the-merge-impacts-app-layer/). + + +## Spajanje i potrošnja energije {#merge-and-energy} + +Spajanje predstavlja kraj ere dokaza rada u Ethereumu i početak održivijeg, ekološki prikladnijeg Ethereuma. Pad potrošnje energije Ethereuma procijenjen je na 99,95 %, čime je Ethereum postao zeleni lanac čvorova. Saznajte više o [potrošnji energije Ethereuma](/energy-consumption/). + +## Spajanje i skaliranje {#merge-and-scaling} + +Spajanje je postavilo temelje za nove nadogradnje skalabilnosti koje nisu bile moguće u konceptu dokaza rada. Tako se Ethereum približio potpunoj sigurnosti i održivosti koja je opisana u [Viziji Ethereuma](/roadmap/vision/). + +## Zablude o spajanju {#misconceptions} + + +Postoje dvije vrste čvorova u Ethereumu: čvorovi koji mogu predložiti blokove i čvorovi koji to ne mogu. + +Čvorovi koji mogu predložiti blokove samo su mali dio cjelokupne količine blokova u Ethereumu. Ta kategorija uključuje čvorove za rudarenje po konceptu dokaza rada (proof-of-work – PoW) i čvorove validatora po konceptu dokaza uloga (proof-of-stake – PoS). Ta kategorija zahtijeva predaju ekonomskih resursa (kao GPU hash snaga u dokazu rada ili ulogi ETH-a u dokazu uloga) u zamjenu za mogućnost povremenih prijedloga sljedećeg bloka i zarade nagrada protokola. + +Ostali čvorovi mreže (većina) ne moraju predati ekonomske resurse veće od uobičajenog korisničkog računala s 1 do 2 TB dostupnog prostora za pohranu i internetske veze. Ti čvorovi ne predlažu blokove, ali i dalje imaju kritičnu ulogu u zaštiti mreže jer praćenjem novih blokova i provjerom njihove valjanosti u skladu s pravilma konsenzusa mreže prilikom prispjeća održavaju sve predlagače blokova odgovornim. Ako je blok valjan, čvor nastavlja propagiranje u mreži. Ako blok nije valjan zbog nekog razloga, softver čvora ga odbacuje kao nevaljanog i zaustavlja njegovo propagiranje. + +Svatko može pokrenuti proizvodnju čvora bez bloka s bilo kojim mehanizmom konsenzusa (dokaz rada ili dokaz uloga) i preporučuje se svim korisnicima ako imaju tu mogućnost. Rad čvora od velike je vrijednosti za Ethereum i donosi dodatne koristi vlasnikau čvora u vidu poboljšane sigurnosti, zaštite privatnosti i otpornosti na cenzuru. + +Mogućnost da svaka osoba pokrene vlastiti čvor temeljni je čimbenik održavanja decentralizirane mreže Ethereuma. + +[Više o pokretanju vlastitog čvora](/run-a-node/) + + + + +Troškovi goriva proizvod su mrežnog zahtjeva povezanog s kapacitetom mreže. Spajanje je zamijenilo koncept dokaza rada prijelazom na dokaz uloga za konsenzuse. Međutim, ono nije značajno promijenilo parametre koji imaju izravan utjecaj na kapacitet ili propusnost mreže. + +S [planom razvoja objedinjavanja transakcija](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698) napori su usmjereni na skaliranje aktivnosti korisnika na [sloju 2](/layer-2/), dok je sloj 1 glavne mreže omogućen kao zaštićen, decentralizirani sloj odlučivanja optimiziran za pohranu podataka objedinjavanja transakcija kako bi cijena objedinjenih transakcija eksponencijalno padala. Da bi se to moglo provesti, prijelaz na dokaz uloga kritični je preduvjet. [Više o gorivu i troškovima.](/developers/docs/gas/) + + + +Brzina transakcije može se mjeriti na nekoliko načina, uključujući vrijeme do uključivanja u blok i vrijeme do finalizacije. Oba se neznatno mijenjaju, ali ne u mjeri koju će korisnici primijetiti. + +Povijesno, u konceptu dokaza rada cilj je bio dobiti novi blok približno svakih 13,3 sekundi. U konceptu dokaza uloga utori se pojavljuju točno svakih 12 sekundi, a što predstavlja mogućnost za validatora da objavi blok. Većina utora imaju blokove, ali to ne i svi (npr. validator je van mreže). U konceptu dokaza uloga blokovi se proizvode približno 10 % češće nego u konceptu dokaza rada. To je doista mala promjena i nije vjerojatno da će je korisnici primijetiti. + +Koncept dokaza uloga uveo je potpuno novi koncept konačnosti transakcije. U konceptu dokaza rada mogućnost reverzije bloka eksponencijalno se usložnjava sa svakim rudarenim blokom u transakciji, međutim ona nikada ne nestaje. U konceptu dokaza uloga blokovi su objedinjeni u epohe (razdoblje od 6,4 minuta sadrži 32 mogućnosti za blokove) za koje glasuju validatori. Kada se epoha završi, validatori glasuju smatra li se epoha „opravdanom”. Ako se validatori slože da je epoha opravdana, epoha se finalizira u sljedećoj epohi. Poništavanje finaliziranih transakcija ekonomski je neodrživo jer bi zahtijevalo prikupljanje i spaljivanje više od trećine ukupunih uloga ETH-a. + + + + +Uloženi ETH i nagrade za ulaganje i dalje su zaključani bez mogućnosti povlačenja. Povlačenje je planirano za sljedeću šangajsku nadogradnju. + + + +To se možda čini u suprotnosti s gore navedom informacijom da povlačenje sredstava nije moguće do šangajske nadogradnje, međutim, validatori IMAJU trenutačni pristup nagradama/MEV-ovima zarađenim tijekom predlaganja bloka. + +Protokol izdaje ETH kao nagradu validatorima za njihov doprinos u konsenzusu. Sloj konsenzusa računa se kao novoizdani ETH, pri čemu validator ima jedinstvenu adresu koja čuva uložene ETH-ove i nagrade za protokole. Taj je ETH blokiran do šangajske nadogradnje. + +ETH na sloju za izvršavanje računa se odvojeno od sloja konsenzusa. Kada korisnici provode transakcije na glavnoj mreži Ethereuma, ETH-om se mora platiti gorivo, uključujući i napojnicu za validatora. ETH je već na sloju za izvršavanje. Protokol ga NIJE izdao kao novog i trenutačno je dostupan validatoru (uz pretpostavku da je registrirana adresa „primatelja naknade” u klijentskom softveru). + + + +Nakon što se šangajskom nadogradnjom omogući povlačenje sredstava, svi će se validatori potaknuti da povuku svoju bilansu ulaganja iznad 32 ETH jer su ta sredstva blokirana i ne računaju se u prihod. Ovisno o kamatnoj stopi na godišnjoj razini (APR, koja je određena ukupnim ulogom ETH-a), validatorima se može savjetovati da napuste svoje validatore i zatraže svoju cjelokupnu bilancu ili možda ulože još više, iskorištavajući svoje nagrade, kako bi više zaradili. + +Važno upozorenje, protokol ograničava stopu potpunog izlaska validatora, pa tako izaći može samo šest validatora po Epohi (svakih 6,4 min, 1350 na dan, odnosno oko 43.200 ETH dnevno na 10 milijuna uloženih ETH-ova). To se ograničenje prilagođava ovisno o ukupnom ulogu ETH-a i sprječava masovno odlivanje sredstava. Nadalje, sprječava moguće napadače koji žele iskoristiti svoj ulog za kaznene napade i izvući svoju cjelokupnu bilancu ulaganja u istoj Epohi prije nego što protokol može nametnuti kaznu. + +Kamatna stopa na godišnjoj razini namjerno je dinamična kako bi dopustila tržištu ulagača da odluče koliko žele zaraditi za pomoć u zaštiti mreže. Kada je omogućeno povlačenje sredstava, ako je stopa preniska, validatori izlaze po stopi koju je ograničio protokol. Postupno će to povećati kamatnu stopu na godišnjoj razini za sve one koji ostanu i privući će nove ulagače i one koji se žele vratiti. + + +## Što se dogodilo s „Eth2”? {#eth2} + +Pojam „Eth2” je povučen. Nakoj spajanja „Eth1” i „Eth2” u jedan lanac, više nema potrebe za razdvajanjem dviju Ethereumovih mreža – postoji samo jedan Ethereum. + +Kako bi se izbjegla zabuna, zajednica je ažurila te pojmove: + +- „Eth1” sada je „sloj za izvršavanje” koji obrađuje transakcije i izvršavanja. +- „Eth2” sada je „sloj konsenzusa” koji obrađuje konsenzuse dokaza uloga. + +Te terminološke promjene mijenjaju samo naziv i ne utječu na ciljeve i plan razvoja Ethereuma. + +[Saznajte više o promjeni naziva „Eth2”](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) + +## Odnos između nadogradnji {#relationship-between-upgrades} + +Sve nadogradnje Ethereum donekle su međusobno povezane. Ponovimo kako se spajanje odnosi na druge nadogradnje. + +### Spajanje i Beacon Chain {#merge-and-beacon-chain} + +Spajanje predstavlja formalno usvajanje nadogradnje Beacon Chain kao novog sloja konsenzusa za izvorni sloj za izvršavanje glavne mreže. Od spajanja validatori se dodjeljuju kako bi zaštitili glavnu mrežu Ethereuma, a rudarenje temeljem [dokaza rada](/developers/docs/consensus-mechanisms/pow/) više nije valjan način proizvodnje bloka. + +Blokove sada predlažu validirajući čvorovi s ulogom ETH-a u zamjenu za pravo da sudjeluju u konsenzusu. Te nadogradnje postavljaju temelj za buduće nadogradnje prilagođavanja, uključujući razdjeljivanje. + + + Beacon Chain + + +### Spajanje i šangajska nadogradnja {#merge-and-shanghai} + +Kako bi se pojednostavila i maksimizirala usredotočenost na uspješan prijelaz na koncept dokaza uloga, nadogradnja spajanja nije sadržavala određene, očekivane značajke, kao mogućnost povlačenja uloženog ETH-a. Šangajska nadogradnja planira se nakon spajanja kako bi omogućila ulagačima da povuku sredstva. + +Pratite [problem sa šangajskom nadogradnjom na GitHubu](https://github.com/ethereum/pm/issues/450) ili [blog o razvoju i istraživanju EF-a](https://blog.ethereum.org/category/research-and-development/). Za znatiželjne, pogledajte prezentaciju [Što se događa nakon spajanja](https://youtu.be/7ggwLccuN5s?t=101) koju je održao Vitalik u travnju 2021. na događaju ETHGlobal. + +### Spajanje i razdjeljivanje {#merge-and-data-sharding} + +Izvorni je plan bio razvijati razdjeljivanje prije spajanja kako bi se riješio problem prilagođavanja. Međutim, uz procvat [rješenja za skaliranje sloja 2](/layer-2/), prioritet se prebacio na zamjenu koncepta dokaza rada u dokaz uloga. + +Planovi za razdjeljivanje brzo su se razvijali. Međutim, uzimajući u obzir rast i uspjeh tehnologija sloja 2 za skaliranje izvršavanja transakcija, planovi za razdjeljivanje prešli su u traženje najoptimalnijeg načina diobe opterećenja pohrane komprimiranih podataka iz poziva svih pametnih ugovora uz mogućnost eksponencijalnog rasta mrežnog kapaciteta. To ne bi bilo moguće bez prethodnog prelaska na koncept dokaza uloga. + + + Dijeljenje + + +## Daljnje čitanje {#further-reading} + + + + diff --git a/src/content/translations/hu/about/index.md b/public/content/translations/hu/about/index.md similarity index 100% rename from src/content/translations/hu/about/index.md rename to public/content/translations/hu/about/index.md diff --git a/src/content/translations/hu/bridges/index.md b/public/content/translations/hu/bridges/index.md similarity index 100% rename from src/content/translations/hu/bridges/index.md rename to public/content/translations/hu/bridges/index.md diff --git a/src/content/translations/hu/community/code-of-conduct/index.md b/public/content/translations/hu/community/code-of-conduct/index.md similarity index 100% rename from src/content/translations/hu/community/code-of-conduct/index.md rename to public/content/translations/hu/community/code-of-conduct/index.md diff --git a/src/content/translations/hu/community/events/index.md b/public/content/translations/hu/community/events/index.md similarity index 100% rename from src/content/translations/hu/community/events/index.md rename to public/content/translations/hu/community/events/index.md diff --git a/src/content/translations/hu/community/get-involved/index.md b/public/content/translations/hu/community/get-involved/index.md similarity index 100% rename from src/content/translations/hu/community/get-involved/index.md rename to public/content/translations/hu/community/get-involved/index.md diff --git a/src/content/translations/hu/community/grants/index.md b/public/content/translations/hu/community/grants/index.md similarity index 100% rename from src/content/translations/hu/community/grants/index.md rename to public/content/translations/hu/community/grants/index.md diff --git a/src/content/translations/hu/community/language-resources/index.md b/public/content/translations/hu/community/language-resources/index.md similarity index 100% rename from src/content/translations/hu/community/language-resources/index.md rename to public/content/translations/hu/community/language-resources/index.md diff --git a/src/content/translations/hu/community/online/index.md b/public/content/translations/hu/community/online/index.md similarity index 100% rename from src/content/translations/hu/community/online/index.md rename to public/content/translations/hu/community/online/index.md diff --git a/src/content/translations/hu/community/research/index.md b/public/content/translations/hu/community/research/index.md similarity index 100% rename from src/content/translations/hu/community/research/index.md rename to public/content/translations/hu/community/research/index.md diff --git a/public/content/translations/hu/community/support/index.md b/public/content/translations/hu/community/support/index.md new file mode 100644 index 00000000000..000eb4f8bb4 --- /dev/null +++ b/public/content/translations/hu/community/support/index.md @@ -0,0 +1,116 @@ +--- +title: Ethereum támogatás +description: Kapjon támogatást az Ethereum-ökoszisztémában. +lang: hu +--- + +# Ethereum támogatás {#support} + +## Hivatalos Ethereum ügyfélszolgálat {#official-support} + +Egy hivatalos Ethereum ügyfélszolgálatot keres? Tudnia kell, hogy az Ethereum decentralizált. Nincs központi szervezet, entitás vagy ember, aki birtokolná az Ethereumot, ezért nincs hivatalos ügyfélszolgálat vagy támogatói csapat sem. + +Ezt azért is fontos megérteni, mert bárki jelentkezik Önnél, mint hivatalos ügyfélszolgálatos, az csak csaló lehet! A csalók ellen a legjobb védekezés az ismeretek szerzése és a biztonság komolyan vétele. + + + Ethereum-biztonság és átverés elleni védelem + + + + Ismerje meg az Ethereum alapjait + + +Amellett, hogy nincs hivatalos ügyfélszolgálat, számtalan csoport, közösség és projekt szeretne Önnek segíteni, illetve rengeteg hasznos információ és forrás áll rendelkezésre ezeken az oldalakon. További kérdése van? Csatlakozzon az [ethereum.org Discord](/discord/) csatornához, és megpróbálunk segíteni. + +## Tárca támogatás {#wallet-support} + +Gondjai vannak a tárcájával? A legtöbb tárcának van dedikált támogatói csapata, akik segítenek: + +- [MetaMask](https://metamask.zendesk.com/hc/) +- [Argent](https://support.argent.xyz/hc/) +- [MyEtherWallet](https://help.myetherwallet.com/) + +_Ez nem egy teljes lista. Segítségre van szüksége, hogy megtalálja az adott tárca támogatói csapatát? Csatlakozzon az [ethereum.org Discord](https://discord.gg/ethereum-org) csatornához, és megpróbálunk segíteni._ + +Ethereum-tárcát keres? [Fedezze fel az Ethereum-tárcák teljes választékát](/wallets/find-wallet/). + +## Dapp-fejlesztés {#building-support} + +A fejlesztés tele van kihívásokkal. Alább található néhány fejlesztőket támogató platform, tapasztalt Ethereum-fejlesztőkkel. + +- [Alchemy University](https://university.alchemy.com/#starter_code) +- [CryptoDevs discord](https://discord.gg/Z9TA39m8Yu) +- [Ethereum StackExchange](https://ethereum.stackexchange.com/) +- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) +- [Web3 University](https://www.web3.university/) +- [LearnWeb3](https://discord.com/invite/learnweb3) + +Emellett dokumentációkat és fejlesztői útmutatókat is talál az [Ethereum fejlesztői források](/developers/) szekcióban. + +### Eszközök {#dapp-tooling} + +A kérdése egy bizonyos eszközhöz, projekthez vagy könyvtárhoz kapcsolódik? A legtöbb projekt működtet csevegőszervereket vagy fórumokat ilyen célból. + +Néhány népszerű példa: + +- [Solidity](https://gitter.im/ethereum/solidity/) +- [ethers.js](https://discord.gg/6jyGVDK6Jx) +- [web3.js](https://discord.gg/GsABYQu4sC) +- [Hardhat](https://discord.gg/xtrMGhmbfZ) +- [Truffle](https://discord.gg/8uKcsccEYE) +- [Alchemy](http://alchemy.com/discord) +- [Tenderly](https://discord.gg/fBvDJYR) + +## Csomópontok futtatása {#node-support} + +Ha Ön csomópontot vagy validátort futtat, a következő közösségek segítenek belevágni. + +- [EthStaker discord](https://discord.io/ethstaker) +- [EthStaker reddit](https://www.reddit.com/r/ethstaker) + +Az Ethereum klienseket építő csapatok is dedikált, nyilvános fórumokkal rendelkeznek, ahol kérdezni lehet. + +### Végrehajtási kliensek {#execution-clients} + +- [Geth](https://discord.gg/FqDzupGyYf) +- [Nethermind](https://discord.gg/YJx3pm8z5C) +- [Besu](https://discord.gg/p8djYngzKN) +- [Erigon](https://github.com/ledgerwatch/erigon/issues) + +### Konszenzusos kliensek {#consensus-clients} + +- [Prysm](https://discord.gg/prysmaticlabs) +- [Nimbus](https://discord.gg/nSmEH3qgFv) +- [Lighthouse](https://discord.gg/cyAszAh) +- [Teku](https://discord.gg/7hPv2T6) +- [Lodestar](https://discord.gg/aMxzVcr) + +Tudja meg, hogy [futtathat csomópontot](/developers/docs/nodes-and-clients/run-a-node/). + +## Gyakran ismételt kérdések {#faq} + +### Rossz tárcába küldtem az ETH-t {#wrong-wallet} + +Az Ethereumon küldött tranzakció visszavonhatatlan. Sajnos, ha rossz pénztárcába küldte az ETH-t, nincs mód arra, hogy visszaszerezze ezeket az összegeket. Nincs központi szervezet, entitás vagy személy, aki birtokolja az Ethereumot, tehát nincs, aki visszafordítaná a tranzakciót. Ezért létfontosságú, hogy mindig ellenőrizze a tranzakcióit, mielőtt elküldi azokat. + +### Hogyan juthatok hozzá az Ethereum-ajándékhoz? {#giveaway-scam} + +Az Ethereum ajándékok csalások, amik el akarják lopni az Ön ETH-ját. Ne essen kísértésbe az olyan ajánlatoktól, amelyek túl szépnek tűnnek ahhoz, hogy igazak legyenek – ha az ETH-t egy ajándékcímre küldi, akkor nem kap ajándékot, és nem tudja visszaszerezni a pénzét. + +[Bővebben a csalás elkerüléséről](/security/#common-scams) + +### A tranzakcióm beragadt {#stuck-transaction} + +A tranzakciók az Ethereumon néha várakoznak, ha a tranzakciós díj alacsonyabb, mint amit épp megkíván a hálózati kereslet. Számos tárcában lehetősége van újraküldeni ugyanazt a tranzakciót egy magasabb díjjal, hogy az át tudjon menni. Alternatívaként leállíthatja a függőben lévő tételt úgy, hogy egy tranzakciót küld a címéről és ugyanazt a Nonce-t használja, mint a függőben lévő tételnél. + +[Hogyan lehet felgyorsítani vagy leállítani a függő tranzakciókat a MetaMaskon](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) + +[Hogyan lehet leállítani a függőben lévő Ethereum-tranzakciókat](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) + +### Hogyan lehet Ethereumot bányászni? {#mining-ethereum} + +Az Ethereum bányászat többé nem elérhető. Az Ethereum áttért a proof-of-work mechanizmusról a proof-of-stake-re, így a bányászat nem létezik. Ehelyett validátorok vannak. A validátorok letétbe helyeznek ETH-t és ezért jutalmakat kapnak, miközben biztosítják a hálózatot. + +### Hogyan válhat letétbe helyezővé/validátorrá? {#become-validator} + +A validátornak 32 ETH-t kell letétbe helyezni az Ethereum letéti szerződésben és fel kell állítani egy csomópontot. További információk [a letétbehelyezésről szóló oldalon](/staking) és a[letéti launchpaden](https://launchpad.ethereum.org/) érhetők el. diff --git a/public/content/translations/hu/dao/index.md b/public/content/translations/hu/dao/index.md new file mode 100644 index 00000000000..de3746f14e2 --- /dev/null +++ b/public/content/translations/hu/dao/index.md @@ -0,0 +1,165 @@ +--- +title: Decentralizált autonóm szervezetek (DAO-k) +description: Az Ethereumon működő DAO-k áttekintése +lang: hu +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: Egy javaslatra történő DAO-szavazat ábrázolása. +summaryPoint1: Tagtulajdonú közösségek központi vezetők nélkül. +summaryPoint2: Biztonságos módja az interneten történő, ismeretlenekkel való együttműködésnek. +summaryPoint3: Egy biztonságos hely, ahol pénzét adott célokra fordíthatja. +--- + +## Mik azok a DAO-k? {#what-are-daos} + +A DAO egy kollektívan tulajdonolt, blokklánc által irányított szervezet, amely egy közös cél megvalósítására törekszik. + +A DAO-k lehetőséget biztosítanak számunkra, hogy hozzánk hasonló elhivatottságú emberekkel dolgozzunk a világ minden tájáról anélkül, hogy egy központi vezetőre bíznánk a pénzügyi és operatív működtetést. Nincs olyan vezérigazgató, aki a kedve szerint költhetné el az alapokat, vagy olyan pénzügyi vezető, aki manipulálhatná a könyvelést. Helyette a kódba épített, blokkláncon alapuló szabályok határozzák meg, hogyan működik a szervezet és kerülnek elköltésre az alapok. + +Beépített pénztárakkal rendelkeznek, amelyekhez a csoport jóváhagyása nélkül senkinek sincs jogosultsága hozzáférni. A döntéseket szavazatokkal és javaslatokkal hozzák meg, így biztosítva, hogy mindenki hangot adhasson véleményének a szervezeten belül és minden nyomon követhető legyen a blokkláncon. + +## Miért van szükségünk DAO-kra? {#why-dao} + +Egy pénzügyi forrásokat és pénzt igénylő szervezet indítása nagyon sok bizalmat igényel azon emberek vonatkozásában, akikkel együtt dolgozunk. Azonban nehéz megbízni valakiben, akivel csak az interneten keresztül léptünk kapcsolatba. A DAO-k esetében nem kell megbíznia a csoport többi tagjában, kizárólag a DAO kódjában, mely 100%-ban átlátható és bárki által ellenőrizhető. + +Ennek köszönhetően rengeteg lehetőség nyílik meg a globális együttműködésre és koordinációra. + +### Összehasonlítás {#dao-comparison} + +| DAO | Egy hagyományos szervezet | +| --------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| Általában lapos és teljesen demokratizált. | Rendszerint hierarchikus. | +| Bármely változtatás végrehajtásához a tagok szavazata szükséges. | A felépítésen alapszik, egyetlen tagtól is követelhető változás, vagy szavazásra is bocsátható a kérdés. | +| A szavazatokat összeszámolják, a szavazás eredményét pedig automatikusan végrehajtják egy megbízott közvetítő nélkül. | Ha megengedett a szavazás, akkor a szavazatokat a szervezeten belül összeszámolják, a szavazás eredményét pedig manuálisan végrehajtják. | +| A szolgáltatásokat automatikusan, decentralizált módon kezelik (például a humanitárius források elosztása). | Emberi közbenjárást igényel, vagy egy központilag irányított automata mechanizmus működteti, mely visszaélésre adhat lehetőséget. | +| Minden tevékenység átlátható és teljesen nyilvános. | A tevékenység jellemzően nem nyilvános, így korlátozott betekintést ad a nyilvánosság számára. | + +### Példák a DAO-ra {#dao-examples} + +Annak érdekében, hogy még érthetőbbé tegyük a DAO-k működését, az alábbiakban néhány példán keresztül bemutatjuk, mire is használhatók: + +- Adománygyűjtés – adományokat fogadhat a világ minden tájáról, és szavazás alapján eldönthető, hogy azokat mire fordítsák. +- Közös tulajdonlás – fizikai vagy digitális eszközöket szerezhet be, melyek felhasználásáról a tagok szavaznak. +- Kockázati tőke és támogatás – létrehozhat egy kockázatitőke-alapot, mely befektetési tőkét gyűjt, és szavazással válaszhatók ki a támogatandó vállalkozások. A visszaérkező összegeket pedig később szétoszthatják a DAO tagjai között. + +## Hogyan működnek a DAO-k? {#how-daos-work} + +A DAO szíve az az okosszerződés, mely meghatározza a szervezet szabályait és kezeli a csoport vagyonát. Amint a szerződés életbe lép az Ethereumon, csakis szavazás útján lehet módosítani a szabályokat. Ha valaki olyat próbál tenni, ami nem szerepel a szabályokban és a programlogikában, az meghiúsul. Mivel a társaság pénzügyeit is az okosszerződés határozza meg, ezért a csoport jóváhagyása nélkül senki sem költheti el a pénzösszegeket. Tehát a DAO-nak nincs szüksége központi hatóságra. Ehelyett a csoport közösen hoz döntéseket, a kifizetések pedig automatikusan jóváhagyásra kerülnek a szavazás eredményeként. + +Mindez azért lehetséges, mert az okosszerződést nem lehet önkényesen megváltoztatni vagy meghamisítani, amikor már életbe lépett az Ethereumon. Senki sem tudja módosítani a programkódot (a DAO szabályait) anélkül, hogy mások azt észre ne vennék, mivel minden nyilvános. + + + Többet az okos szerződésekről + + +## Az Ethereum és a DAO-k {#ethereum-and-daos} + +Az Ethereum tökéletes alapot szolgáltat a DAO-knak számtalan okból kifolyólag: + +- Az Ethereum saját konszenzusmechanizmusa kellőképpen kiterjedt és megalapozott ahhoz, hogy a szervezetek megbízzanak a hálózatban. +- Az okosszerződés tartalmát nem lehet módosítani, miután életbe lépett, még a tulajdonosok módosíthatják azt. Ennek következtében a DAO a meghatározott szabályok alapján fog működni. +- Az okosszerződések képesek pénzeszközöket küldeni és fogadni. Enélkül szükség lenne egy megbízható közvetítőre, aki a csoport eszközeit kezelné. +- Az Ethereum közössége bizonyítottan együttműködő, nem versenyszellemű, így a bevált gyakorlatok és a támogatórendszerek gyorsan kialakulnak. + +## A DAO irányítása {#dao-governance} + +A DAO irányításakor számtalan szempontot figyelembe kell venni, mint például a szavazás menete és a javaslatok kezelése. + +### Delegáció {#governance-delegation} + +A delegáció vagy felhatalmazás a DAO verziója a képviselőalapú demokráciának. A tokenek birtokosai átadják szavazati jogaikat olyan felhasználóknak, akik vállalják, hogy felügyelik a protokollt és tájékozódnak az ügyeket illetően. + +#### Egy híres példa {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) – az ENS-szel rendelkezők delegálhatják szavazati jogaikat a közösség elkötelezett tagjainak, hogy képviseljék őket. + +### Automatikus tranzakciókon alapuló irányítás {#governance-example} + +Számos DAO-nál a tranzakciók automatikusan végrehajtódnak, ha a tagok határozatképes létszámban megszavazzák azt. + +#### Egy híres példa {#governance-example} + +[Nouns](https://nouns.wtf) – A Nouns DAO-ban a tranzakciók automatikusan végbemennek, ha határozatképes létszám van jelen, a szavazatok többsége igenlő, illetve az alapítók nem vétózzák meg. + +### Több aláírásos irányítás {#governance-example} + +Miközben a DAO-knak ezernyi szavazattal rendelkező tagja lehet, az alapítványoknál lehetséges, hogy 5–20 aktív közösségi tag tartozik egy tárcához, akik az alapítvány megbízottjai, a személyazonosságukat pedig általában ismeri a közösség (doxxed). A szavazás után a kijelölt aláírók hajtják végre a közösség akaratát. + +## A DAO törvényei {#dao-laws} + +1977-ben Wyoming megalkotta a korlátolt felelősségű társasági formát, mely megvédi a vállalkozót és behatárolja a felelősségi körüket. Nemrég elsőként hozták létre a DAO-kra vonatkozó törvényt, mely jogi státuszt ad a DAO-knak. Jelenleg Wyoming, Vermont és a Virgin-szigetek rendelkeznek DAO-törvénnyel valamilyen formában. + +### Egy híres példa {#law-example} + +[CityDAO](https://citydao.io) – A CityDAO 40 hektár földet vett a Yellowstone Nemzeti Park közelében Wyoming DAO-törvényével élve. + +## DAO-tagság {#dao-membership} + +A DAO-tagságra különféle modellek léteznek. A tagság meghatározza a szavazás menetét, illetve a DAO más kulcsfontosságú részleteit. + +### Tokenalapú tagság {#token-based-membership} + +Általában teljesen engedélymentes, a használt tokenen alapszik. Ezekkel az irányítási tokenekkel többnyire engedély nélkül lehet kereskedni a decentralizált tőzsdén. Más tokenek megszerzéséhez likviditást kell biztosítani vagy más munkaigazolás (proof-of-work) szükséges. Bármelyik módon is jut hozzá, a token maga biztosítja a szavazati jogot. + +_Főleg arra használják, hogy kiterjedt, decentralizált protokollokat és/vagy magukat a tokeneket irányítsák ezáltal._ + +#### Egy híres példa {#token-example} + +[MakerDAO](https://makerdao.com) – A MakerDAO tokenje, az MKR, széles körben elérhető a decentralizált tőzsdéken, s bárki beszerezheti azokat, hogy szavazati jogot nyerjen a Maker protokoll jövőjére vonatkozóan. + +### Részesedésalapú tagság {#share-based-membership} + +A részesedésalapú DAO-k sokkal inkább engedélyhez kötöttek, de még mindig elég nyitottak. Bármelyik leendő tag beadhat egy csatlakozási kérvényt, melyben általában felajánl valamilyen értéket tokenek vagy elvégzendő munka (például számítási kapacitás) formájában. A részesedés közvetlen szavazati és tulajdonjogot jelent. A tagok bármikor kiléphetnek az arányos részesedésükkel együtt. + +_Főleg a szorosabb szerveződésű, emberközpontú szervezetek használják, mint az adománygyűjtők, munkaközösségek és befektetési klubok. Ezt is használhatják protokollok és tokenek irányítására._ + +#### Egy híres példa {#share-example} + +[MolochDAO](http://molochdao.com/) – A MolochDAO az Ethereum-projektek támogatásával foglalkozik. A tagságot kérvényezni kell, melynek alapján a csoport eldönti, vajon az új tag rendelkezik a szükséges szakértelemmel és tőkével, hogy megfelelő döntést tudjon hozni a lehetséges támogatottakról. Nem lehetséges megvásárolni a DAO-tagságot a piacon. + +### Reputációalapú tagság {#reputation-based-membership} + +A reputáció a részvételt igazolja és szavazati jogot biztosít a DAO-ban. A token- és részesedésalapú tagsággal ellentétben a reputációalapú DAO nem ad tulajdonjogot a közreműködőknek. A reputációt nem lehet megvenni, átadni vagy delegálni; a DAO tagok a részvételükkel nyerik el azt. A láncon belüli szavazás nem engedélyhez kötött, a leendő tagok szabadon kérvényezhetik a DAO-hoz való csatlakozást, illetve azt, hogy a közreműködésükért cserébe reputációt és tokent kapjanak. + +_Főleg a protokollok és decentralizált alkalmazások (dapp) decentralizált fejlesztésére és irányítására használják, de ugyanúgy jól alkalmazható a különféle szervezeteknél, mint adománygyűjtés, munkaközösségek, befektetési klubok stb._ + +#### Egy híres példa {#reputation-example} + +[DXdao](https://DXdao.eth.link) – A DXdao egy független globális csoportosulás, amely 2019 óta épít és irányít decentralizált protokollokat és alkalmazásokat. Reputációalapú irányítást és holografikus konszenzust (szavazási módszer) használ arra, hogy forrásokat koordináljon és menedzseljen, tehát senki sem tudja megvásárolni a tagságot azért, hogy befolyásolja a DAO működését. + +## Csatlakozás DAO-hoz / DAO indítása {#join-start-a-dao} + +### DAO-hoz csatlakozás {#join-a-dao} + +- [Az Ethereum-közösséghez tartozó DAO-k](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [DAOHaus által listázott DAO-k](https://app.daohaus.club/explore) +- [Tally.xyz által listázott DAO-k](https://www.tally.xyz) + +### DAO indítása {#start-a-dao} + +- [Indítson DAO-t a DAOHaus-szal](https://app.daohaus.club/summon) +- [Indítson irányító DAO-t a Tally-vel](https://www.tally.xyz/add-a-dao) +- [Hozzon létre egy Aragon által működtetett DAO-t](https://aragon.org/product) +- [Hozzon létre csoportot a Colony-val](https://colony.io/) +- [Indítson DAO-t a DAOstack által biztosított holografikus konszenzussal](https://alchemy.daostack.io/daos/create) + +## További információ {#further-reading} + +### DAO-ról szóló cikkek {#dao-articles} + +- [Mi az a DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) +- [A DAO kézikönyv](https://daohandbook.xyz) +- [DAO-k háza](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) +- [Mi az a DAO és mire jó?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) +- [Hogyan lehet létrehozni egy DAO által működtetett digitális közösséget](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) +- [Mi az a DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) +- [Mi az a holografikus konszenzus?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) – [DAOstack](https://daostack.io/) +- [A DAO-k nem vállalatok: hol van a legnagyobb jelentősége a decentralizációnak az autonóm szervezetekben – Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) +- [DAO, DAC, DA és mások: egy nem teljes terminológiai útmutató](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) – [Ethereum Blog](https://blog.ethereum.org) + +### Videók {#videos} + +- [Mit jelent a DAO a kripto világában?](https://youtu.be/KHm0uUPqmVE) +- [Felépíthet egy várost egy DAO?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/public/content/translations/hu/decentralized-identity/index.md b/public/content/translations/hu/decentralized-identity/index.md new file mode 100644 index 00000000000..2f5e810a0df --- /dev/null +++ b/public/content/translations/hu/decentralized-identity/index.md @@ -0,0 +1,185 @@ +--- +title: Nem központilag kibocsájtott identitás +description: Mi az a nem központilag kibocsátott identitás, és miért fontos? +lang: hu +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: /eth-gif-cat.png +summaryPoint1: A hagyományos identitásrendszerek központosították az azonosítók kiadását, karbantartását és ellenőrzését. +summaryPoint2: A decentralizált identitás megszünteti a centralizált harmadik felektől való függőséget. +summaryPoint3: A kriptonak köszönhetően, a felhasználóknak újra van eszközük, hogy tárolják és kezeljék a saját azonosítójukat és tanúsítványaikat. +--- + +A virtuális identitás az életünk minden részét meghatározza napjainkban. Online szolgáltatások használata, bankszámla nyitás, szavazás a választásokon, ingatlan vásárlása, munkavállalás – mindegyikhez az identitás igazolása szükséges. + +Azonban a hagyományos azonosításkezelési rendszerek hosszú ideje központosított szereplőkre támaszkodtak, akik kibocsátják, tárolják és kezelik az azonosítóinkat és [tanúsítványainkat](#what-are-attestations). Ez azt jelenti, hogy nem tudjuk irányítani az azonosítással kapcsolatos információinkat, és nem dönthetünk arról, hogy ki férhet hozzá a személyazonosító információinkhoz (PII), valamint hogy ezek a felek milyen mértékű hozzáférést kapnak. + +Ezen problémák megoldására decentralizált azonosítási rendszerek állnak rendelkezésre, amelyeket nyilvános blokkláncokon, például az Ethereumon, építettek. A decentralizált azonosítás lehetővé teszi az egyének számára, hogy kezeljék az azonosítással kapcsolatos információikat. A decentralizált azonosítási megoldásokkal _Ön is_ létrehozhat azonosítókat, illetve anélkül igényelhet és tárolhat tanúsítványokat, hogy központi hatóságokra, mint például szolgáltatók vagy kormányok, támaszkodna. + +## Mi az az identitás? {#what-is-identity} + +Az identitás az egyén önmagához való viszonyának értelmezése, egyedi jellemzők által meghatározva. Az identitás az _egyént_ jelenti, azaz egy különálló emberi entitást. Jelenthet még nem emberi entitást is, mint például egy szervezetet vagy hatóságot is. + +## Mik az azonosítók? {#what-are-identifiers} + +Az azonosító egy olyan információ, mely sajátos identitásra vagy identitásokra mutat rá. A hétköznapi azonosítók többek között: + +- Név +- Társadalombiztosítási szám / adószám +- Mobilszám +- Születési idő és hely +- Digitális azonosítók, mint e-mail-cím, felhasználói név, avatár + +Ezeket a hagyományos azonosítókat központi hatóságok bocsátják ki, tárolják és kontrollálják. Engedélyre van szükség a kormánytól ahhoz, hogy valaki megváltoztassa a nevét, vagy a közösségi média platformtól arra, hogy megváltoztassa a profilját. + +## Mi az a tanúsítás? {#what-are-attestations} + +A tanúsítás egy olyan állítás, melyet az egyik entitás ad a másikról. Az Amerikai Egyesült Államokban a vezetői engedélyt a Gépjárművekkel foglalkozó hivatal (egyik entitás) bocsátja ki, mellyel tanúsítja, hogy az illető személy (másik entitás) autót vezethet. + +A tanúsítás nem azonos az azonosítókkal. A tanúsításhoz _szükség van_ azonosítókra, hogy egy sajátos identitásra hivatkozzanak, és az ehhez tartozó valamilyen jellemzőről adjanak egy állítást. Tehát a jogosítvány tartalmaz azonosítókat (név, születési idő, cím), ugyanakkor tanúsítja az autóvezetési jogosultságot. + +### Mik azok a decentralizált azonosítók? {#what-are-decentralized-identifiers} + +A hagyományos azonosítók, mint a hivatalos név vagy e-mail-cím, harmadik személyen múlnak – a kormányokon és az e-mail-szolgáltatókon. A decentralizált azonosítók (DID) különböznek ezektől – ezeket nem egy központi hatóság állítja ki, kezeli vagy kontrollálja. + +A decentralizált azonosítókat az egyének állítják ki, kezelik és kontrollálják. Az [Ethereum-számla](/developers/docs/accounts/) is egy decentralizált azonosító. A felhasználó annyi számlát hozhat létre, amennyit csak akar, anélkül hogy bárki engedélyére szükség lenne vagy egy központ nyilvántartásban kellene tárolni azokat. + +A decentralizált azonosítókat elosztott főkönyveken (blokklánc) vagy peer-to-peer hálózatokon tárolják. Ennek okán a DID-ekre az jellemző, hogy [globálisan egyediek, sokrétűen felhasználhatók és kriptográfiával ellenőrizhetők](https://w3c-ccg.github.io/did-primer/). A decentralizált azonosító különféle entitásokhoz kapcsolódhat, mint emberek, szervezetek vagy kormányzati szervek. + +## Mi teszi lehetővé a decentralizált azonosítók használatát? {#what-makes-decentralized-identifiers-possible} + +### 1. Nyilvánoskulcs-infrastruktúra (PKI) {#public-key-infrastructure} + +A nyilvánoskulcs-infrastruktúra (PKI) egy olyan információbiztonsági lépés, amely az entitás számára egy [nyilvános kulcsot](/glossary/#public-key) és egy [privát kulcsot](/glossary/#private-key) hoz létre. A nyilvános kulcson alapuló kriptográfiát a blokklánchálózatok arra használják, hogy igazolják a felhasználók identitását és a digitális eszközök tulajdonjogát. + +Néhány decentralizált azonosító, mint amilyen az Ethereum-számla, egyaránt rendelkezik nyilvános és privát kulccsal. A nyilvános kulcs meghatározza a számla birtokosát, miközben a privát kulcs aláírhatja az adott számlához tartozó üzeneteket, illetve feloldhatja azok titkosítását. A PKI igazolja az entitások identitását, megakadályozza, hogy valaki más felöltse azt vagy hamisat használjon – mindezt a [kriptográfiai aláírás](https://andersbrownworth.com/blockchain/public-private-keys/) révén, amely minden állítást igazol. + +### 2. Decentralizált adattárolók {#decentralized-datastores} + +A blokklánc egy igazolható adatnyilvántartásként működik: az információk nyilvános, decentralizált tárhelye, melynek használatakor nem kell megbízni egy központi szereplő (jóhiszemű) magatartásában. A nyilvános blokkláncok létezése miatt nincs többé szükség arra, hogy az azonosítókat központi nyilvántartásokban tárolják. + +Ha valaki szeretné egy decentralizált azonosító érvényességét ellenőrizni, akkor a blokkláncon megkeresheti a hozzá tartozó nyilvános kulcsot. Ez különbözik a hagyományos azonosítóktól, ahol harmadik entitás tudja csak igazolni azt. + +## A decentralizált azonosítók és a tanúsítás hogyan teszi lehetővé a decentralizált identitást? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} + +A decentralizált identitás az az elképzelés, hogy az identitáshoz kapcsolódó információkat mindenki maga kontrollálja, azok privátak és hordozhatók, átvihetők, melynek az elsődleges építőkövei a decentralizált azonosítók és a tanúsítások. + +A decentralizált identitás kontextusában a tanúsítások (más néven [Igazolható bizonyítványok vagy hitelesítő adatok / VC](https://www.w3.org/TR/vc-data-model/)) olyan hamisításmentes, kriptográfiailag igazolható állítások, melyeket a kibocsátó készít. Minden tanúsítás vagy igazolható bizonyítvány, amit egy entitás (például egy szervezet) kiállít, az kapcsolódik az ő decentralizált azonosítójukhoz (DID). + +Mivel a DID-ek a blokkláncon vannak tárolva, ezért bárki ellenőrizni tudja a tanúsítás érvényességét azáltal, hogy megnézi az Ethereumon a kiállító DID-jét. Lényegében az Ethereum-blokklánc olyan, mint egy globális könyvtár, ahol az adott entitásokhoz kapcsolódó decentralizált azonosítókat igazolni lehet. + +A decentralizált azonosítók teszik lehetővé, hogy a tanúsításokat a kiállító maga kontrollálja és azok igazolhatók legyenek. Ha a kiállító már nem is létezik, a tanúsítást kapó entitás mindig rendelkezik annak eredetének és érvényességének bizonyítékával. + +A decentralizált azonosítók elengedhetetlenek abban is, hogy megvédjék a személyes adatok magán jellegét a decentralizált identitás révén. Például, ha egy egyén beadja egy tanúsítás bizonyítékát (egy vezetői engedélyt), akkor az azt igazoló félnek nem kell ellenőrizni a bizonyítékban található adatok érvényességét. Ehelyett az ellenőrző félnek csak a tanúsítás eredetiségének kriptográfiai garanciáira, valamint a kiállító szervezet identitására van szükség ahhoz, hogy a bizonyíték érvényességét megállapítsa. + +## A tanúsítások típusai a decentralizált identitás esetében {#types-of-attestations-in-decentralized-identity} + +A tanúsítások tárolása és visszakeresése az Ethereumon alapuló, identitáshoz kötődő ökoszisztémában eltérően működik, mint a hagyományos identitáskezelés. Különféle megközelítések léteznek, hogyan állítják ki, tárolják és igazolják a tanúsításokat a decentralizált identitást biztosító rendszerekben: + +### Blokkláncon kívüli tanúsítások {#off-chain-attestations} + +A blokkláncon való tanúsítástárolással kapcsolatban felmerül az a konszern, hogy olyan információkat tartalmazhat, melyeket az egyének privát módon szeretnének kezelni. Az ilyen tanúsítások tárolása az Ethereum-blokkláncon, annak nyilvános természete miatt nem előnyös. + +Erre az a megoldás, hogy a kiállított tanúsításokat a felhasználók láncon kívül tartják digitális tárcákban, de azok alá vannak írva a kiállító decentralizált azonosítójával (DID), mely a láncon belül elérhető. Ezeket a tanúsításokat [JSON Web Tokenként](https://en.wikipedia.org/wiki/JSON_Web_Token) kódolják, és tartalmazzák a kiállító digitális aláírását – így a láncon kívüli azonosítási igényeket könnyedén igazolni tudja. + +A következő példa elmagyarázza a láncon kívüli tanúsításokat: + +1. Egy egyetem (kiállító) létrehoz egy tanúsítást (egy digitális egyetemi diplomát), aláírja azt a kulcsaival, és átadja Bobnak (az identitás tulajdonosának). + +2. Bob egy állásra jelentkezik és igazolni akarja iskolai tanulmányait a munkaadónak, ezért megosztja vele a tanúsítást a mobil tárcájából. A vállalat (ellenőrző) ekkor megbizonyosodhat a tanúsítás érvényességéről azáltal, hogy megnézi a kiállító DID-jét (pl. az Ethereumon lévő nyilvános kulcsát). + +### Blokkláncon kívüli tanúsítások állandó eléréssel {#offchain-attestations-with-persistent-access} + +Ebben az elrendezésben a tanúsításokat átalakítják JSON file-okká és a láncon kívül tárolják (ideálisan egy [decentralizált felhőben](/developers/docs/storage/), mint a IPFS vagy a Swarm). Azonban a JSON-fájl [hash-kódja](/glossary/#hash) a láncon van eltárolva és egy DID-hez kapcsolódik egy láncon belüli nyilvántartáson keresztül. A kapcsolódó DID lehet a tanúsítás kiállítójáé vagy azé, aki azt kapta. + +Ez a megközelítés lehetővé teszi, hogy a tanúsítások állandóan elérhetők legyenek a blokkláncon, miközben a kapcsolódó információk titkosítottak és igazolhatók. Mivel a privát kulcs tulajdonosa titkosítani tudja az információt, ezért képes szelektív módon nyilvánossá tenni azt. + +### Blokkláncon belüli tanúsítások {#onchain-attestations} + +A blokkláncon belüli tanúsítások [okosszerződésekben](/developers/docs/smart-contracts/) vannak tárolva az Ethereum-blokkláncon. Az okosszerződés (ami nyilvántartásként működik) hozzáköti a tanúsítást egy kapcsolódó, láncon belüli decentralizált azonosítóhoz (egy nyilvános kulcshoz). + +A következő példa bemutatja, hogyan működik a láncon belüli tanúsítás a gyakorlatban: + +1. Egy cég (XYZ vállalat) azt tervezi, hogy egy okosszerződésen keresztül tulajdonosi részvényeket ad el, de csak olyan vásárlókat fogad el, akiknek a háttere ellenőrizve lett. + +2. XYZ vállalat a háttérellenőrzéssel megbízott cégtől láncon belüli tanúsításokat kap az Ethereumon. Ez a tanúsítás igazolja, hogy az egyén megfelelt az ellenőrzés során, de nem tárja fel semmilyen személyes adatát. + +3. A részvényeket eladó okosszerződés meg tudja nézni az átvilágított vevőkre vonatkozó nyilvántartási szerződést, így meghatározhatja, hogy kik vásárolhatnak részvényt. + +### Egyénhez kötött tokenek és identitás {#soulbound} + +Az [egyénhez kötött tokeneket](https://vitalik.ca/general/2022/01/26/soulbound.html) (nem átadható NFT-k) arra lehet használni, hogy egy adott tárcához tartozó egyedi információkat gyűjtsenek. Ez gyakorlatilag létrehoz egy egyedi, láncon belüli identitást, amely egy adott Ethereum-címhez kötődik, és eredményeket (mint egy online tanfolyam elvégzése vagy egy játékban elért szint) vagy közösségi részvételt jelentő tokeneket foglal magába. + +## A decentralizált identitás előnyei {#benefits-of-decentralized-identity} + +1. A decentralizált identitás növeli az egyénnek a saját azonosítói feletti kontrollját. A decentralizált azonosítók és tanúsítások anélkül igazolhatók, hogy egy központi hatóságra vagy egy harmadik fél által nyújtott szolgáltatásra kellene támaszkodni. + +2. A decentralizáltidentitás-megoldások úgy képesek igazolni és kezelni egy felhasználó identitását, hogy nem kell megbízni egy másik félben, zökkenőmentes és védi a magán jellegű információkat. + +3. A decentralizált identitás a blokklánc-technológiát felhasználva teremt bizalmat a különböző felek között és a tanúsítások érvényességét igazolva nyújt kriptográfiai garanciát. + +4. A decentralizált identitás átvihetővé, hordozhatóvá teszi a identitáshoz kapcsolódó adatokat. A felhasználók a mobil tárcájukban tárolják a tanúsításokat és azonosítókat, és eldönthetik, hogy kivel osztják meg azokat. A decentralizált azonosítók és tanúsítások nem az azokat kibocsátó szervezet adatbázisába vannak zárva. + +5. A decentralizált identitás jól illeszkedik a most kialakuló nulla tudású (zero-knowledge) technológiákhoz, mellyel az egyének anélkül tudják igazolni tulajdonukat vagy eredményeiket, hogy feltárnák, mi is az pontosan. Ez egy hatásos módja annak, hogy a bizalmat és a magán jelleget kombinálják olyan felhasználási módoknál, mint amilyen például a szavazás. + +6. A decentralizált identitás lehetővé teszi az anti-Sybil mechanizmust, feltárva azt, amikor egyetlen ember több személynek adja ki magát egy adott játékban vagy azért, hogy teleszemetelje (spam) a rendszert. + +## A decentralizált identitás alkalmazásai {#decentralized-identity-use-cases} + +A decentralizált identitás számtalan esetben alkalmazható: + +### 1. Univerzális bejelentkezés (login) {#universal-dapp-logins} + +A decentralizált identitás segít abban, hogy a jelszóalapú bejelentkezések helyett [decentralizált azonosítás](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/) legyen használható. A szolgáltatók tanúsításokat bocsáthatnak ki a felhasználóknak, amelyet az Ethereum-tárcájukban tárolnak. Például egy olyan tanúsítvány, ami egy [NFT](/nft/), és hozzáférést biztosít egy online közösséghez. + +Az [Ethereumba való bejelentkezés](https://login.xyz/) funkció ekkor lehető tenné a szervereknek, hogy megerősítsék a felhasználó Ethereum-számláját és lekérdezzék az ehhez szükséges tanúsításokat a számlacímükről. Ezáltal a felhasználónak nem kell hosszú jelszavakat megjegyeznie ahhoz, hogy különböző platformokat és weboldalakat érjen el, és így jobb felhasználói élményben lehet része. + +### 2. Ügyfél-azonosítás (KYC) {#kyc-authentication} + +Az online szolgáltatások használatakor a felhasználóknak tanúsításokat és hitelesítő adatokat kell megadniuk, mint például vezetői engedély vagy útlevél. Ez azonban aggodalomra adhat okot, mivel a magánjellegű információkkal visszaélhetnek, a szolgáltatók pedig nem tudják ellenőrizni a tanúsítások hitelességét. + +A decentralizált identitás révén a cégek elhagyhatják a hagyományos [ügyfél-azonosítást (KYC)](https://en.wikipedia.org/wiki/Know_your_customer), és ehelyett az ügyfelek identitását az igazolható bizonyítványok (VC) révén ellenőrizhetik. Ez csökkenti az azonosítások kezelésének költségét, és kivédi a hamis iratok használatát is. + +### 3. Szavazás és online közösségek {#voting-and-online-communities} + +Az online szavazás és a közösségi média két új alkalmazási területe a decentralizált identitásnak. Az online szavazások ki vannak téve a manipulációnak, főleg ha a rosszindulatú szereplők hamis identitásokat hoznak létre, hogy azokkal szavazzanak. A szavazás folyamatának integritását nagy mértékben növelné, ha az egyének a láncon belüli tanúsításokkal igazolnák magukat. + +A decentralizált identitás segít olyan online közösségek létrehozásában, melyek mentesek a hamis profiloktól. Például minden felhasználónak igazolnia kell a kilétét egy láncon belüli azonosítási rendszerrel, mint amilyen az Ethereum Névszolgáltatás (ENS), és így kizárhatók a nem emberi résztvevők (bot). + +### 4. Anti-Sybil védelem {#sybil-protection} + +A Sybil-támadás azt jelenti, hogy bizonyos egyének kijátsszák a rendszert, hogy az több embernek vegye őket, és így nagyobb befolyást tudjanak gyakorolni. A [támogatást adó alkalmazások](https://gitcoin.co/grants/), melyek [kvadratikus szavazást](https://www.radicalxchange.org/concepts/plural-voting/) használnak, sebezhetők ezekkel a Sybil-támadásokkal szemben, mert a támogatás összege növekszik, ha több szavazat érkezik rá. Ez pedig arra ösztönzi a résztvevőket, hogy több identitással vegyenek részt a folyamatban. A decentralizált identitás megakadályozza ezt, mivel a résztvevők könnyedén igazolhatják, hogy valódi emberek, és nem kell hozzá specifikus, magán jellegű információkat feltárniuk magukról. + +## Használjon decentralizált identitást {#use-decentralized-identity} + +Számtalan ambiciózus projekt használja az Ethereumot a decentralizált identitási megoldások alapjaként: + +- **[Ethereum Névszolgáltatás (ENS)](https://ens.domains/)** – _Egy decentralizált névadó rendszer a láncon belüli, gép által kiolvasható azonosítókra, mint amilyenek az Ethereum-tárcacímek, a tartalomra vonatkozó hash-kódok és a metaadatok._ +- **[SpruceID](https://www.spruceid.com/)** – _Egy decentralizált identitási projekt, mely lehetővé teszi, hogy a felhasználók a digitális identitásukat Ethereum-számlákkal és ENS-profilokkal kontrollálják ahelyett, hogy harmadik személyre támaszkodnának._ +- **[Ethereum tanúsítási szolgáltatás (EAS)](https://attest.sh/)** – _Egy decentralizált főkönyv/protokoll láncon belüli vagy láncon kívüli tanúsítások készítésére._ +- **[Proof of Humanity](https://www.proofofhumanity.id)** – _Az emberség igazolása (PoH) egy közösségi identitás igazolására készült rendszer, mely az Ethereumra épül._ +- **[BrightID](https://www.brightid.org/)** – _Egy decentralizált, nyílt forráskódú, közösségi identitási hálózat, amely új módot keres az azonosításra egy közösségi gráf megalkotásával és elemzésével._ +- **[Proof-of-personhood Passport](https://proofofpersonhood.com/)** - _Egy decentralizált, digitális identitásgyűjtemény._ + +## További olvasnivaló {#further-reading} + +### Cikkek {#articles} + +- [Blokklánc esettanulmányok: blokklánc a digitális identitás területén](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ +- [Mi az az Ethereum ERC725? Független identitáskezelés a blokkláncon](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Sam Town_ +- [Hogyan tudja a blokklánc megoldani a digitális identitás problémáját](https://time.com/6142810/proof-of-humanity/) — _Andrew R. Chow_ +- [Mi az a decentralizált identitás és miért érdemes figyelembe venni?](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ + +### Videók {#videos} + +- [Decentralizált identitás (Bonus Livestream Session)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Kiváló magyarázó videó a decentralizált identitásról Andreas Antonopoloustól_ +- [Az Ethereumba való bejelentkezés és a decentralizált identitás témája a Ceramic, IDX, React és 3ID Connect használatával](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _YouTube útmutató a személyazonosítási rendszer kiépítéséről, mely az Ethereum-tárca alapján létrehozza, kiolvassa és frissíti a felhasználó profilját – Nader Dabit_ +- [BrightID – Decentralizált identitás az Ethereumon](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _Bankless podcast epizód a BrightID-ról, ami egy decentralizált identitási megoldás az Ethereumon_ +- [A láncon kívüli internet: decentralizált identitás és igazolható bizonyítványok (VC)](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — EthDenver 2022 Evin McMullen prezentációja + +### Közösségek {#communities} + +- [ERC-725 szövetség a GitHubon](https://github.com/erc725alliance) — _Az ERC725 szabvány támogatói, mely az Ethereum-blokkláncon való identitáskezelést célozza_ +- [SpruceID Discord-szerver](https://discord.com/invite/Sf9tSFzrnt) — _Rajongók és fejlesztők közössége, akik az Ethereumba való bejelentkezés funkcióján dolgoznak_ +- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Fejlesztői közösség, melynek célja az alkalmazásokhoz szükséges igazolható adatok keretrendszerének kidolgozása_ diff --git a/public/content/translations/hu/defi/index.md b/public/content/translations/hu/defi/index.md new file mode 100644 index 00000000000..5d1c2e5db46 --- /dev/null +++ b/public/content/translations/hu/defi/index.md @@ -0,0 +1,352 @@ +--- +title: Decentralizált pénzügy (DeFi) +description: Az Ethereumon működő decentralizált pénzügyek (DeFi) áttekintése +lang: hu +template: use-cases +emoji: ":money_with_wings:" +image: /use-cases/defi.png +alt: Egy LEGO építőkockákból készült Ethereum-logó. +sidebarDepth: 2 +summaryPoint1: Egy globális és nyitott alternatívája a jelenlegi pénzügyi rendszernek. +summaryPoint2: Olyan termékek, melyek révén kölcsönözhet, megtakaríthat, befektethet, kereskedhet és ez még nem minden. +summaryPoint3: Nyíltforráskódú technológián alapszik, melyre bárki fejleszthet megoldásokat. +--- + +A decentralizált pénzügyek (DeFi) egy nyílt és globális pénzügyi rendszer, mely az internet korához igazodik – alternatívája annak, ami alig átlátható, szorosan kontrollált és sok évtizedes infrastruktúrák és folyamatok tartják össze. A DeFi kontrollt és átláthatóságot biztosít a pénzeszközök felett. Lehetőséget ad arra, hogy a globális piacokon működjön és alternatívát biztosít a helyi valuták vagy bankolási lehetőségek helyett. A DeFi termékek mindenki számára elérhetővé teszik a pénzügyi szolgáltatásokat, aki internetkapcsolattal rendelkezik, és nagy arányban maguk a felhasználók tulajdonolják és kezelik ezeket. Eddig több tízmilliárd dollárnyi kripto áramlott keresztül a DeFi alkalmazásokon, és ez minden egyes nappal növekszik. + +## Mi az a DeFi? {#what-is-defi} + +A DeFi egy gyűjtőfogalom azokra a pénzügyi termékekre és szolgáltatásokra vonatkozóan, melyek mindenki számára elérhetők az Ethereum hálózatát használva – bárkinek, aki rendelkezik internetkapcsolattal. A DeFi révén a piacok állandóan nyitva vannak és nincs olyan központi hatóság, amely megakadályozhatna egy kifizetést vagy megtilthatná a hozzáférést valamilyen termékhez. Azok a szolgáltatások, melyek korábban lassúak voltak és az emberi hiba kockázatát hordozták magukban, most automatikusak és biztonságokat, mivel egy olyan programkód üzemelteti azokat, melyet bárki megvizsgálhat. + +Egy gyorsan fejlődő kriptogazdaság található itt, ahol Ön is adhat és vehet fel kölcsönt, kereskedhet long/short pozíciókkal, kamatoztathat stb. A kriptóhoz értő argentinok arra használták a DeFi-t, hogy kilépjenek a bénító inflációs helyzetből. Bizonyos vállalatok elkezdték a munkavállalóik fizetést valós időben átutalni (streaming). Néhány személy több millió dollárt érő hitelt vett fel és fizetett vissza anélkül, hogy bármilyen módon igazolnia kellett volna a személyazonosságát. + + + +## A DeFi és a hagyományos pénzügyek összehasonlítása {#defi-vs-tradfi} + +A DeFi-ban rejlő lehetőségeket talán úgy lehet legjobban megragadni, ha megértjük a jelenlegi problémákat. + +- Az emberek egy bizonyos rétege nem nyithat bankszámlát vagy használhat pénzügyi szolgáltatásokat. +- Ha valaki nem fér hozzá a pénzügyi szolgáltatásokhoz, akkor nem is tud munkát vállalni. +- A pénzügyi szolgáltatások megakadályozhatják, hogy Ön hozzáférjen a pénzeszközeihez. +- A pénzügyi szolgáltatások egyik rejtett ára, hogy hozzáférnek a személyes adataihoz. +- A kormányok és központi hatóságok bármikor lezárhatják a pénzügyi piacokat. +- A kereskedés időszaka gyakran egy adott időzónában meghatározott munkaidőre korlátozódik. +- Az átutalások több napig is eltarthatnak a közbenső, manuális folyamatok miatt. +- A pénzügyi szolgáltatásokért extra díjat kell fizetni, mert a közvetítő intézmények is kiveszik a részüket. + +### Összehasonlítás {#defi-comparison} + +| DeFi | Hagyományos pénzügyek | +| ------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| Ön rendelkezik a saját pénzeszközei felett. | Az Ön pénze a vállalatok kezében van. | +| Ön dönti el, hogy a pénzét hol tartja és mire költi el. | Meg kell bíznia a vállalatokban, hogy nem élnek vissza a pénzeszközeivel, például nem adják kölcsön azokat kockázatos ügyfeleknek. | +| A pénzeszközök átutalása perceken belül megtörténik. | Az átutalás napokig is eltarthat a manuális lépések miatt. | +| A tranzakciók nem közvetlen módon köthetők a személyazonossághoz. | A pénzügyi tevékenységek szorosan kapcsolódnak az identitáshoz. | +| A DeFi mindenki előtt nyitva áll. | A pénzügyi szolgáltatásokat igényelni kell. | +| A pénzpiacok mindig nyitva vannak. | A pénzpiacok bezárnak, mert az alkalmazottaknak pihenésre van szükségük. | +| Az átláthatóságra épül – bárki megtekintheti az adott termék adatait és megvizsgálhatja, hogyan működik a rendszer. | A pénzügyi intézmények zárt könyvek számunkra: nem kérheti el senki a hitelezési feljegyzéseiket, az eszközeik leltárát stb. | + + + Fedezze fel a DeFi alkalmazásokat + + +## Minden a Bitcoinnal kezdődött... {#bitcoin} + +A Bitcoin több szempontból is az első DeFi alkalmazás volt. A Bitcoin lehetővé tette, hogy a felhasználó valóban birtokolja és kontrollálja az értéket, és elküldje azt a világon bárhova. Ehhez pedig egy olyan módszert adott egy nagy létszámú, egymásban nem bízó csoport kezébe, amellyel közvetítő megbízása nélkül egyezhetnek meg a számlafőkönyv tartalmán. A Bitcoin mindenki számára nyitott és senki sem tudja megváltoztatni a szabályait. A szabályai, ahogy a végessége és a nyitottsága is bele van kódolva a technológiába. Ez teljesen eltér a hagyományos pénzügyektől, ahol a kormány pénzt nyomtathat, mely csökkenti a megtakarítások értékét, a cégek pedig lezárhatják a pénzügyi piacokat. + +Az Ethereum is erre épít. A Bitcoinhoz hasonlóan a szabályokat nem változtathatja meg senki, és mindenkinek van hozzáférése. Ezen felül a digitális pénzt programozhatóvá teszi az [okosszerződések](/glossary#smart-contract) által, így az értékek tárolásán és küldésén kívül sok másra is alkalmas. + + + +## Programozható pénz {#programmable-money} + +Ez furcsán hangzik... „miért akarnám programozni a pénzemet”? Ez azonban több, mint az Ethereum tokenjeinek alaptulajdonsága. Bárki programozhat valamilyen logikát a kifizetések kezelésébe. Így rendelkezhet a Bitcoin által nyújtott kontrollal és biztonsággal, a pénzügyi intézmények által nyújtott szolgáltatásokkal kombinálva azt. Lehetővé válik, hogy a kriptovalutával olyan műveleteket is véghezvigyen a felhasználó, amit a Bitcoin nem támogat, mint például kölcsön adás és kölcsön vétel, időzített kifizetések, indexalapokba való befektetés stb. + + +
Tekintse át azokat a DeFi alkalmazásokat, melyeket kipróbálásra javaslunk, amennyiben Ön most ismerkedik az Ethereummal.
+ + Fedezze fel a DeFi alkalmazásokat + +
+ +## Mit lehet csinálni a DeFi-ban? {#defi-use-cases} + +A legtöbb pénzügyi szolgáltatásnak létezik decentralizált alternatívája. Az Ethereum emellett olyan lehetőségeket teremt, hogy teljesen új pénzügyi termékek is létrejöhessenek. Ez egy folyamatosan bővülő lista. + +- [Pénzküldés a világ bármelyik pontjára](#send-money) +- [Pénzáramoltatás (streaming) a világon bárhova](#stream-money) +- [Stabil pénznemek használata](#stablecoins) +- [Kölcsönfelvétel fedezettel](#lending) +- [Kölcsönfelvétel fedezet nélkül](#flash-loans) +- [Megtakarítás kriptóval](#saving) +- [Kereskedés tokenekkel](#swaps) +- [Portfóliófejlesztés](#investing) +- [Közösségi elképzelések finanszírozása](#crowdfunding) +- [Biztosítás vásárlása](#insurance) +- [Portfóliókezelés](#aggregators) + + + +### Azonnali pénzküldés a világ bármelyik pontjára {#send-money} + +Az Ethereum-blokklánc úgy van kialakítva, hogy biztonságosan és globálisan kezeljen tranzakciókat. A Bitcoinhoz hasonlóan az Ethereumon is olyan könnyen lehet pénzt utalni, akár egy e-mailt elküldeni. Csak írja be a fogadó fél [ENS-nevét](/nft/#nft-domains) (például bob.eth) vagy számlacímét a tárcájában, és az utalás közvetlenül megérkezik hozzá általában percek alatt. Az utalások küldéséhez vagy fogadásához szükség van egy [tárcára](/wallets/). + + + Tovább a fizetési dappokhoz + + +#### Pénzáramoltatás (streaming) a világon bárhova... {#stream-money} + +Az Ethereumon pénzáramoltatásra is lehetőség van. Ez lehetővé teszi, hogy valós időben kapja meg valaki a fizetését, így a pénzeszközei mindig rendelkezésre állnak. Vagy kölcsönözhet is valamit addig, amíg azt használja, mint egy tárolóhely vagy elektromos robogó. + +Ha pedig nem akar [ETH-t](/eth/) küldeni vagy áramoltatni, mert annak változhat az értéke, akkor alternatív valuták is rendelkezésre állnak az Ethereumon: ezek a stabil érmék. + + + +### Stabil pénznemek használata {#stablecoins} + +A kriptovaluta változékonysága számos pénzügyi termék és általános költés esetén problémát okoz. A DeFi közösség ezt a stabil érmékkel oldotta meg. Ezek értéke hozzá van kötve egy másik eszközhöz, általában egy népszerű valutához, mint amilyen a dollár. + +Az olyan érmék értéke, mint a Dai vagy a USDC, csak néhány centtel változik. Ezért tökéletesen megfelelnek a munkabér kifizetésre vagy a kiskereskedelem számára. Dél-Amerikában számtalan ember használt stabil érméket, hogy megvédje a megtakarításait, amikor a kormányzat által kibocsátott valuták bizonytalan helyzetbe kerültek. + + + Bővebben a stabil érmékről + + + + +### Kölcsönfelvétel {#lending} + +A kölcsönfelvétel a decentralizált szolgáltatóktól kétféle módon valósulhat meg. + +- Peer-to-peer (P2P), amikor a kölcsön felvevője közvetlenül egy meghatározott kölcsönadótól kap pénzt. +- Gyűjtőszámlás (pool), amikor a kölcsönadó pénzeszközt biztosít (likviditás) a gyűjtőszámlának, amelytől a kölcsönvevők pénzt tudnak szerezni. + + + Tovább a kölcsönfelvételi dappokhoz + + +Számos előnye van annak, ha decentralizált kölcsönadót használunk... + +#### A kölcsönfelvétel magán jellegének megőrzése {#borrowing-privacy} + +Manapság a pénz kölcsönadása és -vétele az abban résztvevő egyének köré rendeződik. A bank tudni akarja, hogy vissza fogja-e fizetni a kölcsönt annak igénylője, mielőtt odaítélné neki. + +A decentralizált kölcsönzésnél a feleknek nem kell azonosítaniuk magukat. Ehelyett a kölcsönvevő fedezetet ad, melyet a kölcsönadó automatikusan megkap, ha a kölcsönt nem fizeti vissza. Néhány kölcsönadó NFT-ket is elfogad fedezet gyanánt. Az NFT-k olyan okiratok, melyek egy egyedi eszközhöz kapcsolódnak, mint például egy festmény. [Bővebben az NFT-kről](/nft/) + +Így anélkül lehet pénzt kölcsönözni, hogy hitelellenőrzést kellene végezni vagy személyes információkat átadni. + +#### Globális alapokhoz való hozzáférés {#access-global-funds} + +Amikor valaki decentralizált kölcsönadóhoz fordul, akkor az egész világon letétbe helyezett alapok válnak számára elérhetővé, nem csak azok az eszközök, melyeket a kiválasztott bankban vagy intézményben elhelyeztek. Ez sokkal elérhetőbbé teszi a kölcsönt és jobb kamatozást is biztosít. + +#### Adóhatékonyság {#tax-efficiencies} + +A kölcsönfelvétel révén hozzáférhet a szükséges eszközökhöz, így nem kell eladnia a rendelkezésére álló ETH-t (melynek adóvonzata van). Ehelyett használhatja az ETH-t fedezetként egy stabilérme-kölcsönhöz. Így a szükséges pénz is rendelkezésére áll, és az ETH-t is megtarthatja. A stabil érmék olyan tokenek, melyek előnyösebbek, ha készpénzre van szüksége, mert az értékük nem változik annyira, mint az ETH esetében. [Bővebben a stabil érmékről](#stablecoins) + +#### Villámkölcsönök {#flash-loans} + +A villámkölcsön a decentralizált kölcsönzés kísérleti jellegű formája, amikor fedezet nélkül, illetve bármiféle személyes adat átadása nélkül tud valaki kölcsönt felvenni. + +Ezek jelenleg nem érhetők el kiterjedt körben a nem technikai felhasználók között, de arrafelé mutatnak, ami a jövőben mindenki számára rendelkezésre fog állni. + +Azon az alapon működik, hogy a kölcsönt ugyanabban a tranzakcióban veszik fel és fizetik vissza. Ha nem tudják visszafizetni, akkor a tranzakció visszafordul, mintha nem is történt volna semmi. + +A kölcsönzéshez használt pénzeszközök likviditási gyűjtőszámlákon találhatók (nagy mennyiségű pénzeszközök kölcsönzési célra). Ha egy adott pillanatban nem használják azokat, akkor egy személynek lehetősége van kölcsönvenni az eszközöket, üzletet hajtani végre azokkal, és egyszerre visszafizetni azokat, szinte a kölcsönzéssel azonos időben. + +Ily módon rengeteg logikát kell belefoglalni egy ilyen magáért beszélő tranzakcióba. Erre egy egyszerű példa az lehet, hogy valaki arra használja a villámkölcsönt, hogy egy adott eszközből a lehető legtöbbet beszerezze egy adott áron, és eladja azt egy másik tőzsdén, ahol az ár magasabb. + +Így egyetlen tranzakcióban a következők történnek: + +- X összegű $asset-et kölcsönöz 1,00 $ értéken az A tőzsdén +- Az X összegű $asset-et eladja 1,10 $ értéken a B tőzsdén +- Visszafizeti a kölcsönt az A tőzsdének +- A profit mínusz a tranzakciós költség az Ön nyeresége + +Ha a B tőzsdén lévő kínálat hirtelen lezuhan, és a felhasználó nem tudott eleget vásárolni ahhoz, hogy lefedje az eredeti kölcsönt, akkor a tranzakció egyszerűen visszafordul. + +Ha a hagyományos pénzügyi világban szeretne ugyanilyen ügyletet végrehajtani, akkor hatalmas pénzösszegre van szüksége. Ezek a pénzkereső stratégiák csak azoknak elérhetők, akik már most is vagyonosak. A villámkölcsön egy olyan jövőt fest elénk, melyben a pénzcsinálásnak nem előfeltétele az, hogy az ember vagyonos legyen. + +[Bővebben a villámkölcsönökről](https://aave.com/flash-loans/) + + + +### Kezdjen el pénzt megtakarítani a kriptóval {#saving} + +#### Kölcsönadás {#lending} + +A rendelkezésére álló kriptovaluta kölcsönadásával kamatot kaphat, így pénzeszközei folyamatosan növekednek. Jelenleg a kamatráták sokkal magasabbak, mint a helyi bankokban (ha egyáltalán van elérhető bank a közelében). Itt egy példa: + +- Kölcsönadja a rendelkezésére álló 100 Dai-t, ami egy [stabil érme](/stablecoins/), egy olyan termékért, mint az Aave. +- Kap 100 Aave Dai-t (aDai), mely egy token, és a kölcsönadott Dai-t reprezentálja. +- Az aDai növekedni fog a kamatráta alapján, így Ön láthatja, ahogy az egyenlege növekszik a tárcájában. Az éves ráta (APR) függvényében az Ön tárcaegyenlege akár néhány napon vagy órán belül már 100,1234 összeget mutathat! +- Bármikor visszavonhat bármekkora Dai összeget, ami megegyezik az Ön aDai egyenlegével. + + + Tovább a kölcsönadási dappokhoz + + +#### Veszteség nélküli lottó {#no-loss-lotteries} + +A veszteség nélküli lottók, mint a PoolTogether, szórakoztató és innovatív módszerek a megtakarításokra. + +- Vásárol 100 jegyet 100 Dai tokenért. +- Kap 100 plDai-t, ami a 100 jegyet reprezentálja. +- Ha valamelyik jegyét kisorsolják, a plDai egyenlege megnövekszik a nyeremény összegével. +- Ha nem nyer, akkor a 100 plDai átgördül a következő heti sorsolásra. +- Bármikor visszavonhat bármekkora Dai összeget, ami megegyezik az Ön plDai egyenlegével. + +A rendelkezésre álló nyeremény abból a kamatból keletkezik, amit a jegyvásárláson összegyűjtött összeg kölcsönadásából szereznek, ahogy azt a fenti példa is mutatja. + + + Próbálja ki a PoolTogether lehetőséget + + + + +### Kereskedés a tokenekkel {#swaps} + +Az Ethereumon ezernyi token elérhető. A decentralizált tőzsdék (DEX) lehetővé teszik, hogy a felhasználók a különféle tokenekkel bármikor kereskedjenek. Eközben az eszközök feletti kontroll végig megmarad. Olyan, mint amikor az ember egy másik országba utazik és valutaváltót használ. Ugyanakkor a DeFi sosem zár be. A pénzpiacok folyamatosan nyitva vannak (az év 365 napján, napi 24 órában), a technológia pedig garantálja, hogy mindig van, aki elfogadja az ügyletet. + +Például, ha Ön szeretné használni a veszteség nélküli lottózást, a PoolTogether-t (ahogy fentebb írtuk), szüksége lesz Dai vagy USDC tokenre. A decentralizált tőzsdén átválthatja a kívánt ETH-összeget ezekre a tokenekre, majd vissza, amikor végzett az ügylettel. + + + Tovább a tokenes tőzsdékre + + + + +### Haladó szintű kereskedés {#trading} + +Haladóbb lehetőségek is rendelkezésre állnak azoknak a kereskedőknek, akik több kontrollt szeretnének. Lehetségesek a meghatározott áron történő vételi/eladási megbízások (limit order), határidős ügyletek, tőkeáttétes kereskedések és még sok más. A decentralizált kereskedés során Ön hozzáfér a globális likviditáshoz, a piac sosem zár be, az eszközök feletti kontroll pedig mindig az Ön kezében van. + +A centralizált tőzsdéken ehhez képest letétbe kell helyezni az eszközöket a kereskedés előtt, és meg kell bízni bennük, hogy azt megfelelően kezelik. Miközben az eszköz letétben van náluk, nincs biztonságban, mert a centralizált tőzsdék a hackerek kedvelt célpontjai. + + + Tovább a kereskedő dappokhoz + + + + +### Portfóliófejlesztés {#investing} + +Az Ethereumon találhatók olyan alapkezelő termékek, melyek az Ön által választott stratégia mentén megpróbálják megnövelni portfóliója értékét. Mindez automata, mindenki számára nyitott, és nem igényel kezelőt, aki a profitból levenné a saját részét. + +Egy jó példa erre a [DeFi Pulse Index fund (DPI)](https://defipulse.com/blog/defi-pulse-index/). Ez az alap automatikusan kiigazítja az Ön portfólióját, hogy az állandóan [a legjobb DeFi-tokeneket tartalmazza az aktuális piaci értékük alapján](https://www.coingecko.com/en/defi). Önnek nem kell foglalkoznia a részletekkel, és bármikor visszavonhatja pénzeszközeit az alapból. + + + Tovább a befektetési dappokhoz + + + + +### Közösségi elképzelések finanszírozása {#crowdfunding} + +Az Ethereum egy tökéletes platform arra, hogy a közösség segítségével finanszírozzon bizonyos elképzeléseket: + +- A lehetséges finanszírozók bárhonnan jöhetnek – az Ethereum és a tokenjei mindenkinek elérhetők, a világon bárhol. +- Átlátható, így az adománygyűjtők igazolni tudják, hogy mennyi pénz jött össze. Azt is nyomon lehet követni, hogy a pénz hogyan lett elköltve. +- Az adománygyűjtők automatikus visszatérítést is be tudnak állítani, például ha egy adott határidőre nem jön össze a minimális összeg. + + + Tovább a közösségi finanszírozás dappokhoz + + +#### Kvadratikus finanszírozás {#quadratic-funding} + +Az Ethereum egy nyílt forráskódú program, és az eddigi fejlesztések nagy részét a közösség finanszírozta. Ez vezetett el egy érdekes és új modellhez: a kvadratikus finanszírozáshoz. Ennek lehetősége van azt a módot továbbfejleszteni, ahogy a közjavak finanszírozását kezelhetjük. + +A kvadratikus finanszírozás gondoskodik arról, hogy azok a projektek kapják a finanszírozást, amelyre tényleg a legnagyobb az igény. Tehát azokat támogatjuk, amelyek a leginkább magasabb szintre emelik az emberek életét. Így működik: + +1. Az adományozott pénzösszegek egy alapba (matching pool) kerülnek. +2. Megkezdődik a nyilvános adománygyűjtés. +3. Az emberek úgy jelezhetik, hogy számukra fontos egy adott projekt, hogy pénzt adományoznak rá. +4. Az adománygyűjtés lezártával az alapot szétosztják a projektek között. Ebből az alapból az a projekt kapja a legmagasabb összeget, amelyre a leginkább igényt tartanak az adományozók. + +Eszerint az A projekt, mely 100 adományt kapott, egyenként 1 $ értékben, több finanszírozást kaphat az alapból, mint a B projekt, mely egyetlen adományt kapott 10 000 $ értékben (a kapott összeg az alap méretén múlik). + +[Bővebben a kvadratikus finanszírozásról](https://wtfisqf.com) + + + +### Biztosítások {#insurance} + +A decentralizált biztosítások célja, hogy azok olcsóbbak, sokkal átláthatóbbak legyenek, és gyorsabb legyen a kifizetés. Az automatizálásnak köszönhetően a biztosítás általi lefedettség megfizethetőbb, a kifizetések pedig gyorsabbak. Az igénybejelentéshez használt adatok teljesen transzparensek. + +Az Ethereum termékei, mint bármelyik szoftver, tartalmazhatnak hibákat és sebezhető pontokat. Emiatt jelenleg sok biztosítási megoldás a felhasználók eszközeinek elvesztése ellen ad védelmet. Ugyanakkor vannak olyan projektek, melyek elkezdtek kialakítani az élet többi eseményére vonatkozóan is biztosításokat. Egy jó példa erre az Etherisc's Crop biztosítása, melynek célja [a kisméretű, kenyai gazdálkodók védelme az aszály és az árvíz ellen](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). A decentralizált biztosítás olcsóbb megoldást tud kínálni a gazdálkodóknak, akiknek a hagyományos biztosítók általában megfizethetetlenek. + + + Tovább a biztosítási dappokhoz + + + + +### Gyűjtőhelyek és portfóliókezelők {#aggregators} + +Amikor ennyi minden zajlik, Önnek is szüksége lehet egy olyan megoldásra, mellyel a befektetéseit, kölcsöneit és kereskedéseit figyelemmel követheti. Rengeteg olyan termék elérhető, melyekkel egyetlen helyről tudja az összes DeFi tevékenységét koordinálni. Ez a DeFi nyílt architektúrájának szépsége. A csapatok olyan interface-eket építenek, melyekkel nemcsak az összes termék kapcsán láthatja az egyenlegét, hanem használhatja azok tulajdonságait is. Amint Ön is jobban elmélyül a DeFi világában, hasznosnak fogja ezt találni. + + + Tovább a portfóliós dappokhoz + + + + +## Hogyan működik a DeFi? {#how-defi-works} + +A decentralizált pénzügyek (DeFi) kriptovalutákat és okosszerződéseket használnak ahhoz, hogy közvetítő nélküli szolgáltatásokat adjanak. A mai pénzügyi világban a pénzintézetek garantálják a tranzakciókat. Ez nagy hatalmat ad az intézményeknek, mert a pénz rajtuk áramlik keresztül. Emellett emberek milliárdjai világszerte még bankszámlát sem tudnak nyitni maguknak. + +A DeFi-ban az okosszerződés helyettesíti a pénzintézetet a tranzakció során. Az okosszerződés egy olyan Ethereum-számla, mely pénzeszközöket tartalmaz és azokat elküldheti vagy visszaveheti bizonyos feltételek mentén. Miután az okosszerződés életbe lépett, már senki sem változtathatja meg – úgy fog működni, ahogy le lett programozva. + +Egy olyan szerződést, melynek lényege, hogy támogatást vagy zsebpénzt küldjön, le lehet programozni úgy, hogy A számláról B számlára rakjon pénzt minden pénteken. Ezt addig fogja csinálni, amíg az A számlán elegendő összeg található. Senki sem tudja megváltoztatni a szerződést úgy, hogy hozzáadja a C számlát és ellopja az összeget. + +A szerződések emellett teljesen nyilvánosak és bárki megvizsgálhatja azokat. Eszerint a rossz szerződések elég hamar a közösség vizsgálódása alá kerülnek. + +Ez valójában azt jelenti, hogy jelenleg az Ethereum-közösség technikailag képzettebb tagjaiban bízunk, akik el tudják olvasni a programkódot. A nyílt forráskódon alapuló közösség segít a fejlesztőket ellenőrzés alatt tartani, ami idővel szükségtelenné fog válni, ahogy az okosszerződéseket könnyebb lesz átlátni, és a programkód megbízhatóságára más igazolási módok is születnek. + +## Az Ethereum és a DeFi {#ethereum-and-defi} + +Az Ethereum tökéletes alapot biztosít a decentralizált pénzügyek (DeFi) számára: + +- Az Ethereumot és az azon működő okosszerződéseket senki sem birtokolja – tehát bárki használhatja a DeFi-t. Ebből adódik, hogy senki sem változtathatja meg a szabályokat. +- A DeFi termékek a háttérben ugyanazon a nyelven szólnak, ami az Ethereum. Emiatt a termékek nagy része zökkenőmentesen képes együttműködni. Az egyik platformon kölcsönadhat tokeneket, és kereskedhet a kamatozó tokenekkel egy teljesen másik piacon, teljesen másik alkalmazással. Ez olyan, mintha a bankjában a hűségpontokat készpénzre váltaná. +- A tokenek és kriptovaluták az Ethereum részei, mely egy megosztott főkönyv – fő jellemzője a tranzakciók és a tulajdonlás követhetősége. +- Az Ethereum tökéletes pénzügyi szabadságot ad – a legtöbb termék sosem fog felügyeletet gyakorolni az Ön eszközei felett, így a kontroll Önnél marad. + +A DeFi-t a következő rétegek szerint értelmezheti: + +1. A blokklánc – az Ethereum tartalmazza az összes tranzakciót és a számlák státuszát. +2. Az eszközök – [ETH](/eth/) és a többi token (valuták). +3. A protokollok – az [okosszerződések](/glossary/#smart-contract), melyek a műveleteket biztosítják, mint amilyen például egy szolgáltatás az eszközök decentralizált kölcsönadására. +4. [Az alkalmazások](/dapps/) – azok a termékek, melyek révén kezeljük és elérjük a protokollokat. + +## Építse Ön is a DeFi-t {#build-defi} + +A DeFi egy nyílt forráskódú kezdeményezés. A kapcsolódó protokollok és alkalmazások mind nyitottak az Ön számára, hogy megvizsgálja azokat, elágazásokat készítsen azokból vagy továbbfejlessze azokat. A rétegezett struktúra következtében (melynek részei ugyanarra az alap blokkláncra épülnek és ugyanazokat az eszközöket használják) a protokollokat össze lehet kötni, hogy egyedi lehetőségeket aknázzunk ki. + + + Bővebben a dappok építéséről + + +## További olvasnivaló {#futher-reading} + +### DeFi adatok {#defi-data} + +- [DeFi Prime](https://defiprime.com/) +- [DeFi Llama](https://defillama.com/) +- [DeFi Rate](https://defirate.com/) + +### Cikkek a DeFi-ról {#defi-articles} + +- [Útmutató kezdőknek a DeFi-ról](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, 2020. január 6._ + +### Videók {#videos} + +- [Finematics – decentralizált pénzügyi oktatás](https://finematics.com/) – _Videók a DeFi-ról_ +- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) – _A DeFi alapjai: minden, amit tudnia kell, hogy elboldoguljon ebben a néha rejtélyes világban._ +- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _Mi az a DeFi?_ + +### Közösségek {#communities} + +- [DeFi Llama Discord-szerver](https://discord.gg/buPFYXzDDd) +- [DeFi Pulse Discord-szerver](https://discord.gg/Gx4TCTk) diff --git a/public/content/translations/hu/desci/index.md b/public/content/translations/hu/desci/index.md new file mode 100644 index 00000000000..a0797e6f91d --- /dev/null +++ b/public/content/translations/hu/desci/index.md @@ -0,0 +1,139 @@ +--- +title: Nem központosított kutatás (DeSci) +description: A decentralizált tudomány áttekintése az Ethereumon +lang: hu +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Egy globális és nyitott alternatívája a jelenlegi tudományos rendszernek. +summaryPoint2: Olyan technológia, mely lehetővé teszi a tudósok számára, hogy finanszírozási alapot gyűjtsenek, kísérleteket végezzenek, megosszák az adatokat, kommunikálják elképzeléseiket stb. +summaryPoint3: A nyitott tudomány mozgalomra épül. +--- + +## Mi az a decentralizált tudomány (DeSci)? {#what-is-desci} + +A decentralizált tudomány (DeSci) egy olyan mozgalom, melynek célja a nyilvános infrastruktúra létrehozása a tudományos eredmények korrekt és egyenlő finanszírozása, létrehozása, véleményezése, hitelesítése, tárolása és terjesztése érdekében a web3-technológiára alapozva. + +A DeSci egy olyan ökoszisztémát akar megalkotni, ahol a tudósok ösztönözve vannak a kutatásaik nyilvános megosztására, munkájukért javadalmazásban részesülnek, miközben megengedik, hogy bárki könnyedén elérje és hozzájáruljon a kutatásukhoz. A DeSci azt az elképzelést váltja valósággá, hogy a tudományos ismeretek mindenkinek elérhetők, a tudományos kutatások pedig transzparensek legyenek. A DeSci egy decentralizáltabb és jobban elosztott tudományos kutatási modellt hoz létre, mely ellenállóbb a cenzúrával és a központi hatóságok irányításával szemben. A DeSci reményeink szerint egy olyan környezetet teremt, ahol az új és szokatlan elképzelések virágozni fognak azáltal, hogy a finanszírozáshoz, a tudományos eszközökhöz és a kommunikációs csatornákhoz való hozzáférést decentralizáljuk. + +A decentralizált tudomány sokrétűbb finanszírozási forrásokat (a [DAO-októl](/dao/) kezdve, [a kvadratikus adományozáson](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) keresztül a közösség általi finanszírozásig és még tovább), sokkal elérhetőbb adatokat és módszereket tesz lehetővé, miközben ösztönzi a reprodukálhatóságot is. + +### Juan Benet – A DeSci mozgalom + + + +## Hogyan fejleszti a DeSci a tudományt {#desci-improves-science} + +Következzen egy hozzávetőleges felsorolás a tudomány területén tapasztalt fő problémákról, és arról, hogy a decentralizált tudomány hogyan segíthet ezeken + +| **Decentralizált tudomány** | **Hagyományos tudomány** | +| --------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| A finanszírozási alapok elosztását a nyilvánosság határozza meg olyan módszerek alapján, mint a kvadratikus adományozás vagy a DAO-k. | Kicsi, zárt, központosított csoportok irányítják a finanszírozási források elosztását. | +| A tudósok dinamikus csapatokat alkotnak társaikkal, akik a világ bármelyik pontján lehetnek. | A finanszírozási alapok és a helyi intézmények behatárolják a kollaborációt. | +| A finanszírozási döntések online történnek és transzparensek. Új finanszírozási mechanizmusokat térképeznek fel. | A finanszírozási döntéseket hosszú átfutási idővel hozzák meg és korlátolt transzparencia jellemzi azokat. Kevés finanszírozási mechanizmus létezik. | +| A megosztott laboratóriumi szolgáltatások könnyebbek és átláthatóbbak a web3-alapok révén. | A megosztott laboratóriumi erőforrások gyakran lassúak és kevéssé átláthatók. | +| A publikálás új modelljei alakíthatók ki, amelyek a web3-alapokat használják a bizalom, átláthatóság és univerzális hozzáférés biztosítására. | Ön a meglévő publikációs utakat használja, melyekről gyakran mondják, hogy nem hatékonyak, elfogultak és kizsákmányolók. | +| Tokeneket és reputációt lehet szerezni a tudományos eredmények szakértői értékeléséért. | A szakértői értékelést nem fizetik meg, csak a profitorientált kiadók javát szolgálja. | +| A tudós birtokolja a szellemi tulajdont (IP), melyet ő hoz létre és transzparens feltételek szerint osztja meg azt. | Az intézmény birtokolja a szellemi tulajdont, amit a tudós létrehoz. Az ahhoz való hozzáférés nem egyértelmű. | +| A kutatás teljes egészét megosztják, beleértve a sikertelen erőfeszítések adatait is, mivel minden lépés a blokkláncon található. | A publikációk részrehajlók, mivel a kutatók nagyobb valószínűséggel osztják meg a sikeres eredményeket hozó kísérleteket. | + +## Az Ethereum és a DeSci {#ethereum-and-desci} + +A decentralizált tudományt kiszolgáló rendszer robosztus biztonságot, minimális pénzügyi és tranzakciós költséget, és az alkalmazásfejlesztést támogató gazdag ökoszisztémát igényel. Az Ethereum mindent megad ahhoz, hogy kialakuljon egy rendszer a decentralizált tudomány számára. + +## A DeSci alkalmazási területei {#use-cases} + +A DeSci egy olyan tudományos eszköztárat épít, amely be tudja vezetni a web2 akadémikus világát a digitális világba. Következzen néhány alkalmazási terület, amit a web3 ajánl a tudományos közösségnek. + +### Publikálás {#publishing} + +A tudományos publikálás közismerten problémás, mivel olyan kiadókon alapszik, amelyek a tudósok, szakértők és szerkesztők nem megfizetett munkájára építenek, hogy megszülessen a kézirat, utána pedig elképesztő kiadási díjakat számolnak fel érte. A nyilvánosság, aki általában közvetett módon fizet ezért a munkáért és a kiadási költségeiért az adózáson keresztül, sokszor nem éri el ugyanezt a munkát, csak ha a kiadónak újra fizet érte. Az egyéni tudományos munkák megjelentetésének teljes költsége sokszor öt számjegyű összeg (USD-ben kifejezve), amely aláássa a tudományos ismeret alapvető eszméjét, mint [közjó](https://www.econlib.org/library/Enc/PublicGoods.html), miközben hatalmas profitot generál a kiadók kis csoportjának. + +Ingyenes és nyílt hozzáférésű platformok állnak rendelkezésre pre-print szerverek (online könyvtárak) formájában, [mint amilyen az ArXiv is](https://arxiv.org/). Ugyanakkor ezek a platformok nem üzemeltetnek minőségi ellenőrzést, [anti-sybil mechanizmust](https://csrc.nist.gov/glossary/term/sybil_attack), és nem trekkelik a cikkszintű mérőszámokat, tehát csak valamilyen formában nyilvánosságra hozzák azt, amit utána átadnak a hagyományos kiadóknak. A SciHub a kiadott munkákat ingyen elérhetővé teszi, ugyanakkor nem legális módon, és csak azután, hogy a kiadók megkapták érte a fizetségüket és az adott munkát szigorú szerzői jogi szabályozásba csomagolják. Ez egy kritikus hiányosság az elérhető tudományos munkák és adatok terén, melyet egy beágyazott törvényességi mechanizmus és ösztönzési modell támaszt alá. Az ilyen rendszer megépítéséhez szükséges eszközök elérhetők a web3-ban. + +### Megismételhetőség és újbóli előállíthatóság {#reproducibility-and-replicability} + +A megismételhetőség és újbóli előállíthatóság a minőségi tudományos felfedezések alapkövei. + +- A megismételhető eredmények lényege, hogy egymás után többször elérhető ugyanaz az eredmény adott csapat által, adott módszertant használva. +- Az újbóli előállíthatóság lényege, hogy egy másik csapat is azonos eredményre jut ugyanazokat a kísérleti tényezőket használva. + +Az új web3 saját eszközei biztosítani tudják, hogy a megismételhetőség és újbóli előállíthatóság a felfedezés alapjaiként szolgálnak. Beleszőhetjük a minőségi tudományt az akadémikus világ technológiai szövetébe. A web3 képes minden egyes elemzési komponens esetében tanúsítást kreálni: a nyers adat, a számítási motor és az alkalmazás eredményei esetében. A konszenzuson alapuló rendszerek szépsége az, hogy amikor egy megbízható hálózat (trusted network) tartalmazza ezeket az összetevőket, akkor a hálózat minden egyes tagja felelős lehet azért, hogy újból előállítsa a számítást és validálja az eredményeket. + +### Finanszírozás {#funding} + +A jelenlegi elterjedt modell a tudományos tevékenységek finanszírozására az, hogy a tudósok egyénileg vagy csoportban írásos jelentkezést adnak be egy finanszírozással foglalkozó ügynökségnek. A megbízottak egy kis bizottsága pontozza a jelentkezéseket és interjút folytat a jelentkezőkkel, mielőtt finanszírozást biztosítana a jelentkezők egy kis részének. Amellett, hogy ez az eljárás szűk keresztmetszetet hoz létre, hiszen néha évekig is várni kell a jelentkezés és a támogatás elnyerése között, a módszer nagy mértékben sebezhető a részrehajlás, az önérdek és a bizottság politikai beállítottsága miatt. + +Az elemzések kimutatták, hogy ezek a bizottságok kvázi alkalmatlanok arra, hogy kiválasszák a jó minőségű jelentkezéseket, mivel ugyanazt a jelentkezést más-más bizottságok teljesen másképpen ítélik meg. Mivel a finanszírozási keretek szűkösek, ezért a tudományos tevékenység az idősebb kutatók kis csoportjára szűkül le, akik konzervatívabb projekteken dolgoznak. Ennek következtében egy szélsőségesen versenyző finanszírozási helyzet alakult ki, mely torz ösztönzésekkel és fullasztó innovációkkal jár. + +A web3 képes arra, hogy megbontsa ezt a megtört, torz finanszírozási modellt azáltal, hogy különféle ösztönzési módszereket tud alkalmazni, melyeket a DAO-k és a web3 résztvevők már széles körben alkalmaznak. [A retroaktív közjó-finanszírozás](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), [a kvadratikus finanszírozás](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), [a DAO-k általi irányítás](https://www.antler.co/blog/daos-and-web3-governance) és [a tokenizált ösztönzési struktúrák](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) csak néhány web3-eszköz, melyek forradalmasítani tudnák a tudományos finanszírozás világát. + +### A szellemi tulajdon (IP) birtoklása és fejlesztése {#ip-ownership} + +A szellemi tulajdon (IP) nagy probléma a hagyományos tudomány területén: onnantól kezdve, hogy az beragad az egyetemekre vagy nem használják a biotechnológiai tevékenységben, odáig, hogy hírhedten nehéz meghatározni annak értékét. Ugyanakkor a digitális eszközök tulajdonlására (mint amilyenek a tudományos adatok vagy cikkek) a web3 rendkívül jól használja a [nem helyettesíthető tokeneket (NFT)](/nft/). + +Ugyanazon a módon, ahogy az NFT-k képesek a jövőbeli tranzakciók után is fizetni az eredeti alkotónak, lehetséges transzparens értékteremtő láncokat meghatározni arra, hogy a kutatókat, az irányító szerveket (mint a DAO) vagy akár a kutatási adatokat biztosító személyeket díjazzák. + +[Az IP-NFT-k](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) arra is használhatók, hogy a kutatási kísérletek decentralizált adattárháza jöjjön létre, és bekerüljön az NFT- és [DeFi](/defi/)-alapú finanszírozásba (a töredékes forrásoktól a kölcsönalapok és az értékfelmérés felé mozdulva). Az eredetileg is láncon belül létező entitások, mint a DAO-k, például a [VitaDAO](https://www.vitadao.com/), végezhet kutatást közvetlenül a láncon. A nem átadható, [egyénhez kötött (soulbound) tokenek](https://vitalik.ca/general/2022/01/26/soulbound.html) kifejlődése szintén fontos lehet a DeSci számára, hogy a tudósok az Ethereum-címükhöz kapcsoltan bizonyítani tudják tapasztalataikat és hitelesítő adataikat. + +### Adattárolás, adatelérés és architektúra {#data-storage} + +A tudományos adatok sokkal hozzáférhetőbbek a web3-sémák használatával, a megosztott tárolás révén pedig a kutatások nem tudnak megsemmisülni a különféle kataklizmaesemények esetén. + +A kiindulópont egy olyan rendszer, melyet bármelyik decentralizált identitás elér, aki a szükséges igazolható bizonyítványokkal (VC) rendelkezik. Ennek következtében az bizalmas adatokat biztonságos módon tudják a megbízott felek replikálni, ellenállóbbak a duplikációval és a cenzúrával szemben, lehetséges az eredmények újbóli előállítása, ráadásul több résztvevő is kollaborálhat és új adatokat adhat a meglévőkhöz. A bizalmas adatokat kezelő számítástechnikai módszerek, mint a [compute-to-data](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol), alternatív hozzáférési lehetőséget biztosítanak a nyers adatok replikálására, illetve megbízható kutatási környezetet (TRE) alakítanak ki a legbizalmasabb adatok számára. A megbízható kutatási környezetekre (TRE) [az Országos Egészségügyi Szolgálat (NHS)](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) úgy hivatkozik, mint az adatok titkosságát figyelembe vevő és együttműködést támogató, innovatív megoldás, mivel egy olyan ökoszisztémát hoz létre, ahol a kutatók biztonságos módon dolgozhatnak az adatokkal helyben, és közben megoszthatják a programkódjaikat és gyakorlataikat. + +A rugalmas web3-adatkezelési megoldások támogatják ezeket a szcenáriókat, és egy valóban nyitott és nyilvános tudomány alapjait biztosítják, ahol a kutatók közjót hoznak létre, és nem kell hozzáférési engedélyeket vagy díjakat fizetniük. A web3 nyilvános adatmegoldásai, mint a IPFS, Arweave és Filecoin a decentralizációra vannak optimalizálva. A dClimate például univerzális hozzáférést biztosít a klíma- és időjárási adatokhoz, beleértve az időjárási állomásokat és a klíma-előrejelző modelleket. + +## Kapcsolódjon be {#get-involved} + +Fedezze fel a projekteket és csatlakozzon a DeSci közösségéhez. + +- [DeSci.Global: globális események és találkozók](https://desci.global) +- [Blockchain for Science Telegram](https://t.me/BlockchainForScience) +- [Molecule: Finanszírozás biztosítása és elnyerése a kutatási projektjére](https://discover.molecule.to/) +- [VitaDAO: hosszútávú kutatások finanszírozása a szponzorált kutatási megállapodások alapján](https://www.vitadao.com/) +- [ResearchHub: tudományos eredmények publikálása és azok megvitatása munkatársaival](https://www.researchhub.com/) +- [LabDAO: fehérjék számítógépes szimulációja](https://alphafodl.vercel.app/) +- [dClimate API: keresés a decentralizált közösség által gyűjtött klímaadatokban](https://api.dclimate.net/) +- [DeSci Foundation: DeSci publikációs eszközfejlesztés](https://descifoundation.org/) +- [DeSci.World: itt minden megtudható a decentralizált tudományról](https://desci.world) +- [Fleming Protocol: nyílt forráskódú adatgazdaság, amely fűti a kollaboratív orvosbiológiai felfedezéseket](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [OceanDAO: az adattal kapcsolatos tudományok DAO által irányított finanszírozása](https://oceanprotocol.com/dao) +- [Opscientia: nyílt, decentralizált, tudományos munkafolyamatok](https://opsci.io/research/) +- [LabDAO: fehérjék számítógépes szimulációja](https://alphafodl.vercel.app/) +- [Bio.xyz: finanszírozás szerzése a biotechnológiai DAO-jához vagy decentralizált tudományos projektjéhez](https://www.molecule.to/) +- [ResearchHub: tudományos eredmények publikálása és azok megvitatása munkatársaival](https://www.researchhub.com/) +- [VitaDAO: hosszútávú kutatások finanszírozása a szponzorált kutatási megállapodások alapján](https://www.vitadao.com/) +- [Fleming Protocol: nyílt forráskódú adatgazdaság, amely fűti a kollaboratív orvosbiológiai felfedezéseket](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [Active Inference Lab](https://www.activeinference.org/) +- [CureDAO: közösség által irányított, precíziós egészségi platform](https://docs.curedao.org/) +- [IdeaMarkets: decentralizált tudomány hitelességének támogatása](https://ideamarket.io/) +- [DeSci Labs](https://www.desci.com/) + +Örömmel vesszük, ha bárki új projektet javasol – kérjük, tekintsék meg a [listázási szabályzatot](/contributing/adding-desci-projects/)! + +## További olvasnivaló {#further-reading} + +- [DeSci Wiki Jocelynn Pearl és UltraRare által](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) +- [Útmutató a decentralizált biotechnológiához – Jocelynn Pearl (a16z future)](https://future.a16z.com/a-guide-to-decentralized-biotech/) +- [A DeSci ügye](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) +- [Útmutató a DeSci-hez](https://future.com/what-is-decentralized-science-aka-desci/) +- [A decentralizált tudomány forrásai](https://www.vincentweisser.com/decentralized-science) +- [Molecule Biopharma IP-NFT-k – technikai leírás](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) +- [Bizalom nélküli rendszer építése a tudomány számára – Jon Starr](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) +- [A biotechnológiai DAO-k megjelenése](https://molecule.to/blog/the-emergence-of-biotech-daos) +- [Paul Kohlhaas – DeSci: a decentralizált tudomány jövője (podcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) +- [Active Inference Ontology a decentralizált tudomány számára (a Situated Sensemaking-től az Epistemic Commons-ig)](https://zenodo.org/record/6320575) +- [DeSci: a kutatás jövője – Samuel Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) +- [A tudomány finanszírozása (Epilógus: a DeSci és az új kriptoalapok) – Nadia](https://nadia.xyz/science-funding) +- [A decentralizáció megbontja a gyógyszerfejlesztést](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) + +### Videók {#videos} + +- [Mi az a decentralizált tudomány?](https://www.youtube.com/watch?v=-DeMklVWNdA) +- [Beszélgetés Vitalik Buterin és a tudós Aubrey de Grey között a hosszútávú kutatás és a kripto találkozási pontjáról](https://www.youtube.com/watch?v=x9TSJK1widA) +- [A tudományos publikálás szét van szakítva. A web3 meg tudja vajon javítani?](https://www.youtube.com/watch?v=WkvzYgCvWj8) +- [Juan Benet – DeSci, független laboratóriumok és a nagy adat tudománya](https://www.youtube.com/watch?v=zkXM9H90g_E) +- [Sebastian Brunemeier – Hogyan tudja a DeSci átalakítani az orvosbiológiai kutatást és a kockázati tőkét](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/hu/developers/docs/accounts/index.md b/public/content/translations/hu/developers/docs/accounts/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/accounts/index.md rename to public/content/translations/hu/developers/docs/accounts/index.md diff --git a/src/content/translations/hu/developers/docs/apis/backend/index.md b/public/content/translations/hu/developers/docs/apis/backend/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/apis/backend/index.md rename to public/content/translations/hu/developers/docs/apis/backend/index.md diff --git a/src/content/translations/hu/developers/docs/apis/javascript/index.md b/public/content/translations/hu/developers/docs/apis/javascript/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/apis/javascript/index.md rename to public/content/translations/hu/developers/docs/apis/javascript/index.md diff --git a/public/content/translations/hu/developers/docs/blocks/index.md b/public/content/translations/hu/developers/docs/blocks/index.md new file mode 100644 index 00000000000..9aed9314fb8 --- /dev/null +++ b/public/content/translations/hu/developers/docs/blocks/index.md @@ -0,0 +1,64 @@ +--- +title: Blokkok +description: Egy áttekintő a blokkokról az Ethereum blokkláncban - az adatstruktúrájukról, miért van rájuk szükség és hogyan készülnek. +lang: hu +--- + +A blokkok tranzakciókból álló csoportosítások a láncban lévő előző blokk hash-ével ellátva. Ez összeköti a blokkokat (egy lánccá), mivel a hasheket kriptográfiailag származtatjuk a blokk adatból. Ez megelőzi a csalásokat, mivel bármely blokkon történő változtatás érvénytelenítené az összes következő blokkot, mivel az összes többi hash megváltozna és bárki aki a blokkláncot futtatja észrevenné. + +## Előfeltételek {#prerequisites} + +A blokkok könnyen feldolgozhatók még a legkezdőbb felhasználóknak is. De ennek az oldalnak a jobb megértése érdekében javasoljuk, hogy először olvasd el a [Számlák](/developers/docs/accounts/), [Tranzakciók](/developers/docs/transactions/), és a [Bevezetés az Ethereumba](/developers/docs/intro-to-ethereum/) cikkeinket. + +## Miért kellenek a blokkok? {#why-blocks} + +Hogy biztosítsuk azt, hogy az Ethereum hálózat minden résztvevője egy szinkronizált állapotot tart fenn és megegyezik a pontos tranzakciós történetben, a tranzakciókat blokkokba rendezzük. Ez azt jelenti, hogy tucatnyi (vagy több száz) tranzakció felett van elköteleződés, egyetértés és szinkronizáció egyszerre. + +![Egy diagram, mely egy tranzakciót mutat egy blokkban ahogy az állapotot változatja](./tx-block.png) _Diagram átvéve az [Ethereum EVM illusztrálva](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ anyagból + +Az elkötelezettségek elosztásával elegendő időt adunk az összes hálózati résztvevőnek konszenzusra jutni: annak ellenére, hogy a tranzakciós kérelmek másodpercenként több tucatszor fordulnak elő, az Ethereum blokkjai körülbelül tizenöt másodpercenként köteleződnek el. + +## Hogy működnek a blokkok {#how-blocks-work} + +Hogy megőrizzük a tranzakciós történetet, a blokkoknak szigorú sorrendet kell betartaniuk (minden létrejövő új blokk tartalmaz egy referenciát a szülő blokkjára), és a blokkokban lévő tranzakciók is szigorú sorrendet követnek. Ritka esetek kivételével bármikor amikor a hálózat összes résztvevője egyetért a blokkok pontos számában és előzményeiben, és azon dolgozik, hogy az aktuális élő tranzakciós kérelmeket a következő blokkba csomagolja. + +Amint egy blokk össze van állítva (ki van bányászva) egy bányász által a hálózaton, tovább terjed a hálózat többi része számára; az összes csomópont hozzáfűzi ezt a blokkot a blokkláncukra és folytatódik a bányászat. A pontos blokk összeállítási (bányászati) folyamatot és az elköteleződés/konszenzus folyamatot jelenleg az Ethereum “proof-of-work” protokollja specifikálja. + +### Egy vizuális bemutató {#a-visual-demo} + + + +## A proof-of-work protokoll {#proof-of-work-protocol} + +A proof-of-work a következőket jelenti: + +- A bányászó csomópontoknak változó, de jelentős mértékű energiát, időt és számítási kapacitást kell fordítaniuk, hogy előállítsanak egy "törvényességi igazolást" egy adott blokkra, melyet a hálózatra terjesztenek. Ez segít megvédeni a hálózatot többek között \* a spam/szolgáltatás megtagadási támadásoktól, mivel az igazolásokat drága előállítani. +- A többi bányásznak, aki hall az érvényes igazolással rendelkező új blokkról, muszáj elfogadni az új blokkot, mint egy kanonikus következő blokkot a blokkláncon. +- A pontos idő, mely egy adott bányász számára szükséges, hogy előteremtse az igazolást, egy random változó nagy varianciával. Ez biztosítja azt, hogy valószínűtlen*, hogy két bányász egyszerre teremti meg az igazolást a következő felterjesztett blokkra; amikor egy bányász elkészít és tovább terjeszt egy igazolt blokkot, szinte teljesen biztosak lehetnek abban, hogy a hálózat elfogadja ezt a blokkot, mint egy következő kanonikus blokkok a blokkláncban, konfliktus nélkül* (habár van egy protokoll a nézeteltérések megoldására, arra az esetre amikor két igazolt blokkokból álló lánc egy időben elkészül). + +[Többet a bányászatról](/developers/docs/consensus-mechanisms/pow/mining/) + +## Mi van egy blokkban? {#block-anatomy} + +- Időbélyeg – a blokk kibányászásának ideje. +- Blokkszám – blokklánc hossza blokkokban. +- Nehézség – a blokk kibányászásához szükséges erőfeszítés. +- mixHash – a blokk egyedi azonosítója. +- Egy szülő hash – az előző blokk egyedi azonosítója (így kapcsolódnak össze a blokkok egy lánccá). +- Tranzakciós lista – a blokkban lévő tranzakciók listája. +- Állapot gyökér – a rendszer teljes állapota: számla egyenlegek, szerződés tárhely, szerződés kód és számla nonce-ok vannak benne. +- Nonce – egy hash, melyet ha kombinálunk a mixHash-sel, akkor be tudjuk bizonyítani, hogy végig ment a [proof-of-work](/developers/docs/consensus-mechanisms/pow/) folyamaton. + +## Blokkméret {#block-size} + +Utolsó fontos megjegyzés, hogy a blokkok maguk is korlátozott méretűek. Minden blokknak van egy blokk gáz limite, melyet a hálózat és a bányászok állítanak be közösen: az összes tranzakció által teljesen felhasznált gáznak a blokkban kevesebbnek kell lennie, mint a gáz limitnek. Ez fontos, mert ez azt jelenti, hogy a blokkok nem lehetnek tetszőlegesen nagyok. Ha a blokkok tetszőlegesen nagyok lehetnének, akkor a kevésbé teljesítőképes teljes csomópontok egyre kevésbé tudnának lépést tartani a hálózattal a tárhely és sebesség igények miatt. A blokk gáz limit a nulladik blokkban (block 0) 5,000-ről indult; bármely új blokkot bányászó bányász módosíthatja a gáz limitet 0,1%-ig bármely irányba a szülő blokk gáz limitétől. A gáz limit jelenleg 2018 Novemberében 8,000,000 körül mozog. + +## További olvasnivaló {#further-reading} + +_Ismersz olyan közösségi anyagot, amely segített neked? Módosítsd az oldalt és add hozzá!_ + +## Kapcsolódó témák {#related-topics} + +- [Bányászat](/developers/docs/consensus-mechanisms/pow/mining/) +- [Tranzakciók](/developers/docs/transactions/) +- [Gáz](/developers/docs/gas/) diff --git a/src/content/translations/hu/developers/docs/consensus-mechanisms/index.md b/public/content/translations/hu/developers/docs/consensus-mechanisms/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/consensus-mechanisms/index.md rename to public/content/translations/hu/developers/docs/consensus-mechanisms/index.md diff --git a/src/content/translations/hu/developers/docs/consensus-mechanisms/pos/index.md b/public/content/translations/hu/developers/docs/consensus-mechanisms/pos/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/consensus-mechanisms/pos/index.md rename to public/content/translations/hu/developers/docs/consensus-mechanisms/pos/index.md diff --git a/src/content/translations/hu/developers/docs/consensus-mechanisms/pow/index.md b/public/content/translations/hu/developers/docs/consensus-mechanisms/pow/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/consensus-mechanisms/pow/index.md rename to public/content/translations/hu/developers/docs/consensus-mechanisms/pow/index.md diff --git a/src/content/translations/hu/developers/docs/consensus-mechanisms/pow/mining/index.md b/public/content/translations/hu/developers/docs/consensus-mechanisms/pow/mining/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/consensus-mechanisms/pow/mining/index.md rename to public/content/translations/hu/developers/docs/consensus-mechanisms/pow/mining/index.md diff --git a/src/content/translations/hu/developers/docs/dapps/index.md b/public/content/translations/hu/developers/docs/dapps/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/dapps/index.md rename to public/content/translations/hu/developers/docs/dapps/index.md diff --git a/src/content/translations/hu/developers/docs/data-and-analytics/block-explorers/index.md b/public/content/translations/hu/developers/docs/data-and-analytics/block-explorers/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/data-and-analytics/block-explorers/index.md rename to public/content/translations/hu/developers/docs/data-and-analytics/block-explorers/index.md diff --git a/src/content/translations/hu/developers/docs/development-networks/index.md b/public/content/translations/hu/developers/docs/development-networks/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/development-networks/index.md rename to public/content/translations/hu/developers/docs/development-networks/index.md diff --git a/src/content/translations/hu/developers/docs/ethereum-stack/index.md b/public/content/translations/hu/developers/docs/ethereum-stack/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/ethereum-stack/index.md rename to public/content/translations/hu/developers/docs/ethereum-stack/index.md diff --git a/public/content/translations/hu/developers/docs/evm/index.md b/public/content/translations/hu/developers/docs/evm/index.md new file mode 100644 index 00000000000..34c0fb98160 --- /dev/null +++ b/public/content/translations/hu/developers/docs/evm/index.md @@ -0,0 +1,76 @@ +--- +title: Ethereum virtuális gép (EVM) +description: Bevezetés az Ethereum virtuális gépbe és arról, hogy hogyan kapcsolódik az állapothoz, tranzakciókhoz és okosszerződésekhez. +lang: hu +--- + +Az EVM fizikai megtestesülését nem lehet úgy leírni, mint ahogy azt egy felhő vagy egy óceáni hullám esetében tennénk, de attól még _létezik_ egy egyedüli entitásként több ezer összekapcsolt számítógép által, melyek egy Ethereum klienst futtatnak. + +Az Ethereum protokoll létezésének kizárólagos célja, hogy ennek a speciális állapot gépnek biztosítsa a folyamatos, megszakítások nélküli és megváltoztathatatlan működését; ez az a környezet, amiben az össze Ethereum számla és okosszerződés él. A lánc bármely adott blokkján az Ethereumnak egy és csak egy 'kanonikus' állapota van, és az EVM határozza meg a szabályokat egy új érvényes állapot létrehozására blokkról blokkra. + +## Előfeltételek {#prerequisites} + +Alapvető számítástudományi fogalmak ismerete, mint például a [bájtok](https://wikipedia.org/wiki/Byte), [memória](https://wikipedia.org/wiki/Computer_memory), és a [stack]() szükségesek, hogy megértsd az EVM-et. Érdemes tisztában lenni egy pár kriptográfiai/blokklánc fogalommal úgy, mint a [hash függvények](https://wikipedia.org/wiki/Cryptographic_hash_function), [Proof-of-Work](https://wikipedia.org/wiki/Proof_of_work) és a [Merkle Fa](https://wikipedia.org/wiki/Merkle_tree). + +## Főkönyvtől az állapot gépig {#from-ledger-to-state-machine} + +Az 'elosztott főkönyv' analógiáját gyakran használjuk olyan blokkláncok jellemzésére, mint a Bitcoin, mely lehetővé egy decentralizált valuta létrehozását alapvető kriptográfiai eszközök használatával. Egy kriptovaluta úgy viselkedik, mint egy 'normál' valuta a szabályok miatt, melyek meghatározzák, hogy az adott illető mit vagy mit nem tehet, hogy megváltoztassa a főkönyvet. Például egy Bitcoin cím nem költhet el több bitcoint, mint amennyit előzőleg megkapott. Ezek a szabályok támasztják alá az összes Bitcoin tranzakciót és sok más blokkláncot is. + +Amíg az Ethereumnak megvan a saját natív kriptovalutája (Ether), mely ugyanazokat az intuitív szabályokat követi, emellett lehetőséget ad egy másik hathatós funkciónak: [az okosszerződéseknek](/developers/docs/smart-contracts/). Ehhez a bonyolultabb funkcióhoz egy szofisztikáltabb analógia szükségeltetik. Egy elosztott főkönyv helyett az Ethereum egy elosztott [állapot gép](https://wikipedia.org/wiki/Finite-state_machine). Az Ethereum állapota egy nagy adatstruktúra, mely nem csak a számlákat és az egyenlegeket tárolja, de egy _állapot gépet_ is, mely blokkról blokkra változhat egy előre meghatározott szabályrendszer szerint és tetszőleges gépi kódot tud végrehajtani. Az állatot blokkról blokkra történő megváltozásának specifikus szabályait az EVM rögzíti. + +![Egy diagram mely az EVM felépítését mutatja be](./evm.png) _Diagram átvéve az [Ethereum EVM illusztrálva](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ anyagból + +## Az Ethereum állapot átmeneti függvény {#the-ethereum-state-transition-function} + +Az EVM úgy viselkedik, mint egy matematikai függvény: Adott egy bemenet, mely egy determinisztikus kimenetet generál. Ezért nagyon hasznos, ha az Ethereumot formálisabban úgy írjuk le, mint egy **állapot átmeneti függvényt**: + +``` +Y(S, T)= S' +``` + +Adott egy régebbi érvényes állapot `(S)` és egy új érvényes tranzakciókból álló halmaz `(T)`, az Ethereum állapot átmeneti függvény `Y(S, T)` létrehoz egy új érvényes kimeneti állapotot `S'` + +### Állapot {#state} + +Az Ethereum kontextusában az állapot egy hatalmas adatstruktúra, melyet úgy hívnak, hogy [módosított Merkle Patricia-fa](https://eth.wiki/en/fundamentals/patricia-tree), mely az összes [számlát](/developers/docs/accounts/) hashekkel köti össze és redukálja egy gyökér hash-é, melyet a blokklánc tárol. + +### Tranzakciók {#transactions} + +A tranzakciók számlákból származó kriptográfiailag aláírt instrukciók. A tranzakcióknak két típusa van: azok, amelyek üzenet hívásokat eredményeznek és azok melyek szerződés létrehozásokat. + +A szerződés létrehozás egy új szerződéses számla létrehozásával jár, mely a fordított [okosszerződés](/developers/docs/smart-contracts/anatomy/) bájtkódot tartalmazza. Amikor egy másik számla egy üzenet hívást intéz ehhez a szerződéshez, végrehajtja a bájtkódját. + +## EVM Utasítások {#evm-instructions} + +Az EVM egy [verem gépként](https://wikipedia.org/wiki/Stack_machine) fut 1024 elemes mélységgel. Minden egyes elem egy 256 bites szó, melyek a maximális kompatibilitásért lettek kiválasztva az SHA-3-256 hash rendszerrel. + +A végrehajtás alatt az EVM egy tranziens _memóriát_ tart fenn (mint egy szócímzett bájttömböt), mely nem folytatólagos a tranzakciók között. + +A szerződések azonban tartalmaznak egy Merkle Patricia _tárhely_ fát (mint egy szócímezhető szó tömböt), mely hozzá van rendelve a kérdéses számlához és része a globális állapotnak. + +A befordított okosszerződés bájtkód EVM [opcode-ként](https://www.ethervm.io/) fut le, melyek standard stack műveletek, mint a `XOR`, `AND`, `ADD`, `SUB`, stb. Az EVM egy pár blokklánc specifikus stack műveletet is implementál, mint az `ADDRESS`, `BALANCE`, `SHA3`, `BLOCKHASH`, stb. + +![Egy diagram, mely azt mutatja, hogy hol van szükség gázra az EVM műveleteknél](../gas/gas.png) _Diagramok átvéve az [Ethereum EVM illusztrálva](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ anyagból + +## EVM Implementációk {#evm-implementations} + +Az összes EVM implementációnak meg kell felelnie az Ethereum sárgakönyvben megfogalmazott specifikációnak. + +Az Ethereum 5 éves története alatt az EVM több revízió alatt átesett és számos EVM implementáció létezik különböző programozási nyelveken. + +Az összes [Ethereum kliens](/developers/docs/nodes-and-clients/#execution-clients) tartalmaz egy EVM implementációt. Továbbá több önálló implementáció létezik, többek között: + +- [Py-EVM](https://github.com/ethereum/py-evm) - _Python_ +- [evmone](https://github.com/ethereum/evmone) - _C++_ +- [ethereumjs-vm](https://github.com/ethereumjs/ethereumjs-vm) - _JavaScript_ +- [eEVM](https://github.com/microsoft/eevm) - _C++_ + +## További olvasnivaló {#further-reading} + +- [Ethereum Sárgakönyv](https://ethereum.github.io/yellowpaper/paper.pdf). +- [The Beigepaper](https://github.com/chronaeon/beigepaper) +- [Ethereum Virtuális Gép Opcode-ok](https://www.ethervm.io/) + +## Kapcsolódó témák {#related-topics} + +- [Gáz](/developers/docs/gas/) diff --git a/src/content/translations/hu/developers/docs/frameworks/index.md b/public/content/translations/hu/developers/docs/frameworks/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/frameworks/index.md rename to public/content/translations/hu/developers/docs/frameworks/index.md diff --git a/public/content/translations/hu/developers/docs/gas/index.md b/public/content/translations/hu/developers/docs/gas/index.md new file mode 100644 index 00000000000..5aef192db85 --- /dev/null +++ b/public/content/translations/hu/developers/docs/gas/index.md @@ -0,0 +1,50 @@ +--- +title: Gáz és tranzakciós díjak +description: +lang: hu +incomplete: true +isOutdated: true +--- + +Az gáz (Gas) nélkülözhetetlen az Ethereum hálózaton. Ez az üzemanyag, amitől működik, ahogyan az autóknak is szükségük van benzinre, hogy menjenek. + +## Előfeltételek {#prerequisites} + +Hogy jobban megértsd ezt az oldalt, javasoljuk, hogy előbb olvasd el a [tranzakciókról](/developers/docs/transactions/) és az [EVM-ről](/developers/docs/evm/) szóló oldalakat. + +## Mi az a gáz? {#what-is-gas} + +A gáz a számítási erőfeszítés mértékegységét jelenti, mely bizonyos műveletek végrehajtásához szükséges az Ethereum hálózaton. + +Mivel minden egyes utalás az Ethereum hálózaton számítási erőforrást igényel, minden tranzakciónak van egy díja. A gáz a tranzakciós díj, ami szükséges a tranzakció sikeres lebonyolításához. + +![Egy diagram, mely azt mutatja, hogy hol van szükség gázra az EVM műveleteknél](./gas.png) _Diagram átvéve az [Ethereum EVM illusztrálva](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ anyagból + +Lényegében a gáz díjakat az Ethereum natív valutájában, Etherben (ETH) lehet kifizetni. A gáz árak Gwei-ben vannak feltüntetve, mely az ETH-nek egy egysége - minden Gwei 0.000000001 ETH-tel egyenlő (10-9 ETH). Például ahelyett, hogy azt mondanánk, hogy a gáz 0.000000001 Ether-be kerül, azt mondjuk, hogy a gáz ára 1 Gwei. + +Az alábbi videó jó áttekintés ad, hogy miért van szükségünk a gázra: + + + +## Miért létezik az gáz? {#why-do-gas-fees-exist} + +Röviden, a gáz tartja biztonságban az Ethereum hálózatot. Azzal, hogy minden hálózaton végrehajtott számítás egy díjat von maga után, megelőzzük, hogy ártó személyek túlterheljék a hálózatot. Azért, hogy megelőzzük a véletlen vagy ártó szándékú végtelen ciklusokat vagy más számítási pazarlással járó kódot, minden egyes tranzakciónak be kell állítani egy határt, hogy mennyi számítási lépést hajthat végre a kódlefutás. A számítás alap mértékegysége a "gáz". + +Annak ellenére, hogy a tranzakciós díjak limitálva vannak, a nem felhasznált üzemanyag visszajut az utaló félhez. + +![Egy diagram, mely a fel nem használt gáz visszatérítését ábrázolja](../transactions/gas-tx.png) _Diagram átvéve az [Ethereum EVM illusztrálva](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ anyagból + +## További olvasnivaló {#further-reading} + +- [Ethereum gáz, blokkok és a tranzakciós díjpiac megértése](https://medium.com/@eric.conner/understanding-ethereum-gas-blocks-and-the-fee-market-d5e268bf0a0e) +- [Ethereum gáz oktató anyag](https://defiprime.com/gas) + +## Kapcsolódó eszközök {#related-tools} + +- [ETH üzemanyag állomás](https://ethgasstation.info/) _Vevő orientált metrikák az Ethereum gáz piacáról_ +- [Etherscan gáz követő felület](https://etherscan.io/gastracker) _Tranzakciós díj becslés_ +- [Bloxy gáz analitikája](https://stat.bloxy.info/superset/dashboard/gas/?standalone=true) _Ethereum gáz statisztikák_ + +## Kapcsolódó témák {#related-topics} + +- [Bányászat](/developers/docs/consensus-mechanisms/pow/mining/) diff --git a/src/content/translations/hu/developers/docs/ides/index.md b/public/content/translations/hu/developers/docs/ides/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/ides/index.md rename to public/content/translations/hu/developers/docs/ides/index.md diff --git a/src/content/translations/hu/developers/docs/index.md b/public/content/translations/hu/developers/docs/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/index.md rename to public/content/translations/hu/developers/docs/index.md diff --git a/src/content/translations/hu/developers/docs/intro-to-ethereum/index.md b/public/content/translations/hu/developers/docs/intro-to-ethereum/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/intro-to-ethereum/index.md rename to public/content/translations/hu/developers/docs/intro-to-ethereum/index.md diff --git a/src/content/translations/hu/developers/docs/layer-2-scaling/index.md b/public/content/translations/hu/developers/docs/layer-2-scaling/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/layer-2-scaling/index.md rename to public/content/translations/hu/developers/docs/layer-2-scaling/index.md diff --git a/src/content/translations/hu/developers/docs/networks/index.md b/public/content/translations/hu/developers/docs/networks/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/networks/index.md rename to public/content/translations/hu/developers/docs/networks/index.md diff --git a/public/content/translations/hu/developers/docs/nodes-and-clients/index.md b/public/content/translations/hu/developers/docs/nodes-and-clients/index.md new file mode 100644 index 00000000000..60aadc3bb34 --- /dev/null +++ b/public/content/translations/hu/developers/docs/nodes-and-clients/index.md @@ -0,0 +1,229 @@ +--- +title: Csomópontok és kliensek +description: Egy áttekintő az Ethereum csomópontokról és kliens szoftverekről, valamint egy csomópont felállításának menetéről és hogy miért is érdemes. +lang: hu +sidebarDepth: 2 +isOutdated: true +--- + +Ahhoz, hogy az Ethereum decentralziáltan tudjon működni, egy elosztott csomópontokból álló hálózatra van szüksége, mely blokkokat és tranzakciós adatokat tud érvényesíteni. Egy kliensnek nevezett alkalmazásra van szükséged az eszközödön, hogy egy csomópontot "futtass". + +## Előfeltételek {#prerequisites} + +Érdemes tisztában lenned a decentralizált hálózat fogalmával, mielőtt belemélyednél és futtatnád a saját Ethereum kliens példányodat. Nézd meg a [bevezetés az Ethereumba](/developers/docs/intro-to-ethereum/) cikket. + +## Mik azok a csomópontok és kliensek? {#what-are-nodes-and-clients} + +A "csomópont" egy szoftverre utal, melyet kliensnek hívunk. Egy kliens egy Ethereum implementáció, mely hitelesíti az összes tranzakciót az egyes blokkokban, így a hálózat biztonságos marad az adatok pedig pontosak. + +Valós idejű látványt kaphatsz az Ethereum hálózatról, ha megnézed a [csomópontok térképét](https://etherscan.io/nodetracker). + +Valamennyi [Ethereum kliens implementáció](/developers/docs/nodes-and-clients/#execution-clients) létezik különböző nyelveken. Ami közös van ezekben az implementációkban, hogy mindegyikük egy formális specifikációt követ. Ez a specifikáció mondja ki, hogyan működik az Ethereum hálózat és a blokklánc. + +![Eth1x kliens](./client-diagram.png) Az Ethereum kliens funkciók egyszerűsített diagramja. + +## Csomópont típusok {#node-types} + +Ha saját csomópontot akarsz futtatni, akkor fontos megértened, hogy vannak különböző típusú csomópontok, amelyek eltérően fogyasztják az adatokat. Valójában a kliensek 3 különböző típusú csomópontot futtathatnak - kis méretű (light), teljes (full) és archív. Különböző szinkronizálási stratégiák is rendelkezésre állnak, amelyek gyorsabb szinkronizálási időt tesznek lehetővé. A szinkronizálás arra utal, hogy milyen gyorsan tudja elérni a legfrissebb információkat az Ethereum állapotáról. + +### Teljes csomópont {#full-node} + +- A teljes blokklánc adatot tárolja. +- Részt vesz a blokk validációban, hitelesíti az összes blokkot és állapotot. +- Az összes állapot levezethető egy teljes csomópontból. +- A hálózatot szolgálja ki, és kérésre adatot szolgáltat. + +### Kis méretű csomópont {#light-node} + +- A fejléc láncot tárolja, minden mást lekérdez. +- Hitelesíteni tudja az adat érvényességét az állapot gyökérhez képest a blokk fejlécekben. +- Hasznos alacsony kapacitású eszközök esetében, mint a beágyazott eszközök vagy mobil eszközök, amelyek nem tudnak több gigabájtnyi blokklánc adatot tárolni. + +### Archív csomópont {#archive-node} + +- Tárolja mindazt, ami a teljes csomóponton van, és archívumot épít a történelmi állapotokról. Akkor van rá szükség, ha valami olyasmit szeretnél lekérdezni, mint egy számla egyenleg a #4,000,000.-dik blokkban. +- Ezek az adatok terabájtnyi egységeket képviselnek, ami az archív csomópontokat kevésbé teszi vonzóvá az átlagos felhasználók számára, de hasznos lehet olyan szolgáltatások számára, mint a blokkfelfedezők, a pénztárca forgalmazói és a láncelemzések. + +A kliensek szinkronizálása az archívum kivételével bármilyen módban hiányos blokklánc adatokat eredményez. Ez azt jelenti, hogy a teljes történelmi állapotról nincs archívum, de a teljes csomópont igény szerint képes felépíteni őket. + +## Miért kellene egy Ethereum csomópontot futtatnom? {#why-should-i-run-an-ethereum-node} + +A csomópont futtatása lehetővé teszi az Ethereum bizalom nélküli és privát használatát, miközben támogatod az ökoszisztémát. + +### Az előnyök neked {#benefits-to-you} + +A saját csomópont futtatása lehetővé teszi az Ethereum valóban privát, önellátó és bizalom nélküli használatát. Nem kell megbíznod a hálózatban, mert az adatokat saját magad is ellenőrizheted a klienseddel. A "Ne bízz benne, hanem hitelesítsd" egy népszerű blokklánc mantra. + +- A csomópontod önállóan ellenőrzi az összes tranzakciót és blokkot, mely ellentmond a konszenzus szabályoknak. Ez azt jelenti, hogy nem kell semmilyen más csomópontra támaszkodnod a hálózatban vagy teljesen megbíznod bennük. +- Nem kell a címeidet és az egyenlegeidet véletlenszerű csomópontokra szivárogtatnod. Minden ellenőrizhető a saját klienseddel. +- A dappod biztonságosabb és privátabb lehet, ha saját csomópontot használsz. A [MetaMask](https://metamask.io), a [MyEtherWallet](https://myetherwallet.com) és néhány másik tárcát egyszerűen átirányíthatsz a helyi csomópontodra. + +![Hogyan férhetsz hozzá az Ethereumhoz az alkalmazásoddal és a csomópontoddal](./nodes.png) + +### Hálózati előnyök {#network-benefits} + +A csomópontok sokfélesége fontos az Ethereum egészsége, biztonsága és működési rugalmassága szempontjából. + +- Kis méretű csomópontok számára szolgáltatnak blokklánc adatokat, melyek tőlük függnek. Magas használati csúcsok esetén elegendő teljes csomópontnak kell lennie a kis méretű csomópontok szinkronizálásához. A kis méretű csomópontok nem tárolják az egész blokkláncot, ehelyett az adatait hitelesítik a [blokk fejlécekben lévő állapot gyökereken](/developers/docs/blocks/#block-anatomy) keresztül. További információkat kérhetnek a blokkokról, ha szükségük van rá. +- A teljes csomópontok betartatják a proof-of-work konszenzus szabályait, így nem lehet őket becsapni olyan blokkok elfogadására, amelyek nem követik őket. Ez extra biztonságot nyújt a hálózatnak, mert ha az összes csomópont kis méretű csomópont lenne, amelyek nem végeznek teljes ellenőrzést, a bányászok megtámadhatnák a hálózatot, és adott esetben magasabb jutalommal rendelkező blokkokat hozhatnának létre. + +Ha teljes csomópontot futtatsz, az egész Ethereum hálózat profitál belőle. + +## Saját csomópont üzemeltetése {#running-your-own-node} + +### Projektek {#projects} + +[**Válassz ki egy klienst, és kövesd az utasításokat**](#kliensek) + +**ethnode -** **_Üzemeltess egy Ethereum csomópontot (Geth vagy Parity) lokális fejlesztéshez._** + +- [GitHub](https://github.com/vrde/ethnode) + +**DAppNode -** **_Egy operációs rendszer web3 csomópontok futtatására egy dedikált gépen, beleértve az Ethereumot is._** + +- [dappnode.io](https://dappnode.io) + +### Erőforrások {#resources} + +- [Running Ethereum Full Nodes: A Complete Guide](https://medium.com/coinmonks/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _Nov 7, 2019 - Justin Leroux_ +- [Node Configuration Cheat Sheet](https://dev.to/5chdn/ethereum-node-configuration-modes-cheat-sheet-25l8) _Jan 5, 2019 - Afri Schoeden_ +- [How To Install & Run a Geth Node](https://www.quiknode.io/guides/infrastructure/how-to-install-and-run-a-geth-node) _Oct 4, 2020 - Sahil Sen_ +- [How To Install & Run a OpenEthereum (fka. Parity) Node](https://www.quiknode.io/guides/infrastructure/how-to-run-a-openethereum-ex-parity-client-node) _Sept 22, 2020 - Sahil Sen_ + +## Alternatívák {#alternatives} + +A saját csomópont futtatása nehéz lehet, és nem mindig kell saját példányt futtatnod. Ebben az esetben használhatod egy harmadik fél API szolgáltatását, mint az [Infura](https://infura.io), [Alchemy](https://alchemyapi.io), vagy a [QuikNode](https://www.quiknode.io). Alternatívaként használhatod az [ArchiveNode-ot](https://archivenode.io/), ami egy közösség által finanszírozott archív csomópont, mely archív adatot fog szolgáltatni az Ethereum blokkláncról független fejlesztőknek, akik egyébként nem engedhetnék meg ezt maguknak. + +Ha valaki egy Ethereum csomópontot futtat egy nyilvános API-jal a közösségedben, akkor át tudod irányítani a könnyű tárcákat (mint a MetaMask) erre a közösségi csomópontra [egy egyedi RPC-n keresztül](https://metamask.zendesk.com/hc/en-us/articles/360015290012-Using-a-Local-Node) és nagyobb fokú adatvédelemben részesülhetsz. + +Másrészt, ha klienst futtatsz, megoszthatod azokat barátaiddal, akiknek szüksége lehet rá. + +## Kliensek {#execution-clients} + +Az Ethereumot úgy tervezték, hogy különböző kliensekkel rendelkezzen, amelyeket különféle csapatok fejlesztettek ki különböző programozási nyelvek felhasználásával. Ez erősebbé és sokszínűbbé teszi a hálózatot. Az ideális cél a sokszínűség elérése anélkül, hogy egy kliens dominálna és a hiba lehetőséget a lehető legkisebbre szűkítsük. + +Ez a táblázat összegezi a különböző klienseket. Az összesen aktívan dolgoznak, karbantartják és mind átment a [kliens teszteken](https://github.com/ethereum/tests). + +| Kliens | Nyelv | Operációs rendszerek | Hálózatok | Szinkronizációs stratégiák | Állapot elhagyás | +| ------------------------------------------------------------ | -------- | --------------------- | --------------------------------------------- | -------------------------- | ------------------- | +| [Geth](https://geth.ethereum.org/) | Go | Linux, Windows, macOS | Mainnet, Görli, Rinkeby, Ropsten | Gyors, teljes | Archív, csökkentett | +| [OpenEthereum](https://github.com/openethereum/openethereum) | Rust | Linux, Windows, macOS | Mainnet, Kovan, Ropsten, és még több | Warp, teljes | Archív, csökkentett | +| [Nethermind](http://nethermind.io/) | C#, .NET | Linux, Windows, macOS | Mainnet, Görli, Ropsten, Rinkeby, és még több | Gyors, teljes | Archív, csökkentett | +| [Besu](https://besu.hyperledger.org/en/stable/) | Java | Linux, Windows, macOS | Mainnet, Rinkeby, Ropsten, és Görli | Gyors, teljes | Archív, csökkentett | +| [Trinity](https://trinity.ethereum.org/) | Python | Linux, macOS | Mainnet, Görli, Ropsten, és még több | Full, Beam, Fast/Header | Archív | + +További információkért a támogatott hálózatokról olvasd el az [Ethereum hálózatok](/developers/docs/networks/) cikket. + +### A különböző implementációk előnyei {#advantages-of-different-implementations} + +Minden kliens egyedi felhasználási esetekkel és előnyökkel rendelkezik, ezért a saját preferenciáid alapján válassz egyet. A sokféleség lehetővé teszi, hogy a megvalósítások különféle jellemzőkre és felhasználói közönségre összpontosuljanak. Előfordulhat, hogy a klienseket a szolgáltatások, a támogatás, a programozási nyelv vagy a licencek alapján választod ki. + +#### Go Ethereum {#geth} + +A Go Ethereum (röviden Geth) az egyik eredeti Ethereum protokoll implementáció. Jelenleg ez a legelterjedtebb kliens a legnagyobb felhasználói bázissal és sokféle eszközzel a felhasználók és a fejlesztők számára. Go-ban van írva, teljesen nyílt forráskódú és a GNU LGPL v3 licensz alatt fut. + +#### OpenEthereum {#openethereum} + +Az OpenEthereum egy gyors, funkcióban gazdag és fejlett CLI alapú Ethereum kliens. Úgy lett kialakítva, hogy biztosítsa a gyors és megbízható szolgáltatások alapvető infrastruktúráját, amelyek gyors szinkronizálást és maximális üzemidőt igényelnek. Az OpenEthereum célja, hogy a leggyorsabb, legkönnyebb és a legbiztonságosabb Ethereum klienssé váljon. Egy tiszta, moduláris kódbázist biztosít: + +- egyszerű módosíthatóság. +- könnyű integráció a szolgáltatásokba vagy termékekbe. +- minimális memória és tárhely lábnyom. + +Az OpenEthereumot a legmodernebb Rust programozási nyelv használatával fejlesztették ki, és a GPLv3 licenc alatt áll. + +#### Nethermind {#nethermind} + +A Nethermind egy Ethereum implementáció, amelyet a C # .NET tech stackkel hoztak létre, és amely minden nagyobb platformon fut, beleértve az ARM-et is. Magas teljesítményt nyújt: + +- egy optimizált virtuális géppel +- állapot eléréssel +- hálózati és gazdag tulajdonságokkal, mint a Prometheus/Graphana dashboard-ok, seq vállalati logolási támogatás, JSON RPC nyomon követés, és analitikai plugin-ek. + +Ezenkívül a Nethermind egy [részletes dokumentációval](https://docs.nethermind.io) rendelkezik, valamint erős fejlesztői támogatással és egy 24/7-es támogatással a prémium tagok részére. + +#### Besu {#besu} + +A Hyperledger Besu egy vállalati szintű Ethereum kliens nyilvános és engedélyhez kötött hálózatokhoz. Az Ethereum főhálózat összes funkcióját támogatja, a nyomon követéstől a GraphQL-ig, átfogó felügyelettel rendelkezik, és a ConsenSys támogatja, mind a nyílt közösségi csatornákon, mind a vállalkozások számára elérhető kereskedelmi SLA-k révén. Java nyelven íródott és az Apache 2.0 licensz alatt fut. + +### Szinkronizációs módok {#sync-modes} + +- Teljes - letölti az összes blokkot (beleértve a fejléceket, a tranzakciókat és a nyugtákat), és minden blokk végrehajtásával fokozatosan generálja a blokklánc állapotát. +- Gyors (alapértelmezett) - letölti az összes blokkot (beleértve a fejléceket, a tranzakciókat és a nyugtákat is), ellenőrzi az összes fejlécet, letölti az állapotot és ellenőrzi a fejlécekhez képest. +- Light - letölti az összes blokkfejlécet, blokk adatot, és véletlenszerűen ellenőriz néhányat. +- Warp sync - 5000 blokkonként a csomópontok konszenzuskritikus snapshotot készítenek az adott blokk állapotáról. Bármely csomópont be tudja tölteni ezeket a snapshotokat a hálózaton keresztül, lehetővé téve a gyors szinkronizálást. [Többet a Warp-ról](https://openethereum.github.io/wiki/Warp-Sync-Snapshot-Format) +- Beam sync - olyan szinkronizálási mód, amely lehetővé teszi a gyorsabb haladást. Nem igényel hosszú várakozást a szinkronizálásnál, ehelyett idővel visszatölti az adatokat. [Többet a Beam-ről](https://medium.com/@jason.carver/intro-to-beam-sync-a0fd168be14a) +- Header sync - megbízható ellenőrző ponttal kezdheted a szinkronizálást egy újabb fejlécből, majd egy háttér folyamat betölti idővel a hiányosságokat + +Te határozod meg, hogy milyen módban szinkronizáljon, amikor felállítod: + +**Light szinkronizálás beállítása a [GETH-ben](https://geth.ethereum.org/)** + +`geth --syncmode "light"` + +**Header sync beállítása Trinity-ben** + +`trinity --sync-from-checkpoint eth://block/byhash/0xa65877df954e1ff2012473efee8287252eee956c0d395a5791f1103a950a1e21?score=15,835,269,727,022,672,760,774` + +## Hardver {#hardware} + +A hardverkövetelmények kliensenként eltérőek, de általánosságban nem magasak, mivel a csomópontoknak szinkronban kell lenniük. Nem összekeverendő a bányászattal, aminek sokkal magasabb számításteljesítmény-igénye van. Ámbár a szinkronizációs idő és teljesítmény erősebb hardverrel javul. Igénynek megfelelően, Ethereum futhat saját számítógépen, otthoni szerveren, virtuális privát szervereken, vagy akár a felhőben is. + +Egy egyszerű módja a saját csomópont futtatásának például egy 'plug and play' doboz: [DAppNode](https://dappnode.io/). Ez egy hardvert biztosít hogy klienseket és alkalmazásokat futtassunk, ettől függően egy egyszerű kezelőfelülettel. + +### Követelmények {#requirements} + +Mielőtt telepítenénk egy klienst, győződjünk meg róla, hogy a számítógépünk rendelkezik elegendő erőforrással. Minimális és ajánlott követelményeket lejjeb találjuk, azonban a tárhely kulcsfontosságú. Az Ethereum blokklánc szinkronizálása nagyon input/output igényes. A legjobb, ha SSD-vel (solid-state-drive) rendelkezünk. Az Ethereum kliens futtatásához merevlemezen (HDD), legalább 8GB RAM szükséges, mint gyorsítótár. + +#### Minimális követelmények {#recommended-specifications} + +- Processzor 2+ maggal +- Minimum 4GB RAM SSD esetén, egyébként 8GB+ +- 8MBit/s sávszélesség + +#### Ajánlott követelmények {#recommended-specifications} + +- Gyors processzor 4+ maggal +- 16GB+ RAM +- Gyors SSD legalább 500GB tárhellyel +- 25+ MBit/s sávszélesség + +Attól függően hogy melyik szoftvert és szinkronizációs módot használjuk, több száz GB tárhelyre lesz szükség. Körülbelüli értékeket lásd lent. + +| Kliens | Tárhely (gyors szinkron) | Tárhely (teljes archívum) | +| ------------ | ------------------------ | ------------------------- | +| Geth | 400GB+ | 4.7TB+ | +| OpenEthereum | 280GB+ | 4.6TB+ | +| Nethermind | 200GB+ | 3TB+ | +| Besu | 750GB+ | 4TB+ | + +A fenti értékek mutatják hogy mindig változik a tárhelykövetelmény. A lehető legfrissebb adatokat a Geth-ről és a Parityről lásd itt: [Teljes szinkronizációs adat](https://etherscan.io/chartsync/chaindefault) és [Archívált szinkronizációs adat](https://etherscan.io/chartsync/chainarchive). + +### Ethereum egy egykártyás számítógépen {#ethereum-on-a-single-board-computer} + +A lehető legkényelmesebb és legegyszerűbb módja egy Ethereum csomópont futtatásának ha egykártyás számítógépet használunk ARM architektúrával, mint mondjuk egy Raspberry Pi. [Ethereum ARM-en](https://twitter.com/EthereumOnARM) találunk képeket Geth Parity, Nethermind és Besu kliensekről. Egy egyszerű leírás arról, hogy [hogyan telepítsünk egy ARM klienst](/developers/tutorials/run-node-raspberry-pi/). + +A kicsi, olcsó, és hatékony eszközök mint ezek ideálisak egy otthoni csomópont futtatására. + +## Eth2 kliensek {#consensus-clients} + +Az [Eth2 fejlesztéseket](/roadmap/beacon-chain/) új kliensek támogatják. A Beacon Chain-nen fognak futni és az új [proof-of-stake](/developers/docs/consensus-mechanisms/pos/) konszenzus mechanizmust fogják támogatni. + +## További olvasnivaló {#further-reading} + +Az interneten rengeteg utasítás és információ található az Ethereum kliensekről, itt van néhány ami hasznos lehet. + +- [Ethereum 101 - Part 2 - Understanding Nodes](https://kauri.io/ethereum-101-part-2-understanding-nodes/48d5098292fd4f11b251d1b1814f0bba/a) _– Wil Barnes, 2019 Február 13._ +- [Running Ethereum Full Nodes: A Guide for the Barely Motivated](https://medium.com/@JustinMLeroux/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _– Justin Leroux, 2019 November 7._ +- [Analyzing the hardware requirements to be an Ethereum full validated node](https://medium.com/coinmonks/analyzing-the-hardware-requirements-to-be-an-ethereum-full-validated-node-dc064f167902) _– Albert Palau, 2018 Szeptember 24._ +- [Running a Hyperledger Besu Node on the Ethereum Mainnet: Benefits, Requirements, and Setup](https://pegasys.tech/running-a-hyperledger-besu-node-on-the-ethereum-mainnet-benefits-requirements-and-setup/) _– Felipe Faraggi, 2020 Május 7._ + +## Kapcsolódó témák {#related-topics} + +- [Blokkok](/developers/docs/blocks/) +- [Hálózatok](/developers/docs/networks/) + +## Kapcsolódó útmutatók {#related-tutorials} + +- [Csomópont futtatása Geth-tel](/developers/tutorials/run-light-node-geth/) _– Hogyan lehet letölteni, telepíteni és futtatni a Geth-et. Lefedi a szinkronizációs módokat, a JavaScript konzolt és még sok mást._ +- [Alakítsd át a Raspberry Pi 4-edet egy Eth 1.0 vagy egy Eth 2.0 csomóponttá csak a MicroSD kártya flashelésével - Telepítési útmutató](/developers/tutorials/run-node-raspberry-pi/) _– Flasheld a Raspberry Pi 4-et, csatlakoztass egy ethernet kábelt, csatlakoztasd az SSD-t, és kapcsold be az eszközt, hogy a Raspberry Pi 4 teljes Ethereum 1.0 vagy Ethereum 2.0 csomópontokká (beacon chain / validátor) váljon._ diff --git a/src/content/translations/hu/developers/docs/nodes-and-clients/nodes-as-a-service/index.md b/public/content/translations/hu/developers/docs/nodes-and-clients/nodes-as-a-service/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/nodes-and-clients/nodes-as-a-service/index.md rename to public/content/translations/hu/developers/docs/nodes-and-clients/nodes-as-a-service/index.md diff --git a/src/content/translations/hu/developers/docs/oracles/index.md b/public/content/translations/hu/developers/docs/oracles/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/oracles/index.md rename to public/content/translations/hu/developers/docs/oracles/index.md diff --git a/src/content/translations/hu/developers/docs/programming-languages/delphi/index.md b/public/content/translations/hu/developers/docs/programming-languages/delphi/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/programming-languages/delphi/index.md rename to public/content/translations/hu/developers/docs/programming-languages/delphi/index.md diff --git a/src/content/translations/hu/developers/docs/programming-languages/dot-net/index.md b/public/content/translations/hu/developers/docs/programming-languages/dot-net/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/programming-languages/dot-net/index.md rename to public/content/translations/hu/developers/docs/programming-languages/dot-net/index.md diff --git a/src/content/translations/hu/developers/docs/programming-languages/golang/index.md b/public/content/translations/hu/developers/docs/programming-languages/golang/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/programming-languages/golang/index.md rename to public/content/translations/hu/developers/docs/programming-languages/golang/index.md diff --git a/src/content/translations/hu/developers/docs/programming-languages/index.md b/public/content/translations/hu/developers/docs/programming-languages/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/programming-languages/index.md rename to public/content/translations/hu/developers/docs/programming-languages/index.md diff --git a/src/content/translations/hu/developers/docs/programming-languages/java/index.md b/public/content/translations/hu/developers/docs/programming-languages/java/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/programming-languages/java/index.md rename to public/content/translations/hu/developers/docs/programming-languages/java/index.md diff --git a/src/content/translations/hu/developers/docs/programming-languages/javascript/index.md b/public/content/translations/hu/developers/docs/programming-languages/javascript/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/programming-languages/javascript/index.md rename to public/content/translations/hu/developers/docs/programming-languages/javascript/index.md diff --git a/src/content/translations/hu/developers/docs/programming-languages/python/index.md b/public/content/translations/hu/developers/docs/programming-languages/python/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/programming-languages/python/index.md rename to public/content/translations/hu/developers/docs/programming-languages/python/index.md diff --git a/src/content/translations/hu/developers/docs/programming-languages/rust/index.md b/public/content/translations/hu/developers/docs/programming-languages/rust/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/programming-languages/rust/index.md rename to public/content/translations/hu/developers/docs/programming-languages/rust/index.md diff --git a/src/content/translations/hu/developers/docs/security/index.md b/public/content/translations/hu/developers/docs/security/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/security/index.md rename to public/content/translations/hu/developers/docs/security/index.md diff --git a/src/content/translations/hu/developers/docs/smart-contracts/compiling/index.md b/public/content/translations/hu/developers/docs/smart-contracts/compiling/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/smart-contracts/compiling/index.md rename to public/content/translations/hu/developers/docs/smart-contracts/compiling/index.md diff --git a/src/content/translations/hu/developers/docs/smart-contracts/composability/index.md b/public/content/translations/hu/developers/docs/smart-contracts/composability/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/smart-contracts/composability/index.md rename to public/content/translations/hu/developers/docs/smart-contracts/composability/index.md diff --git a/src/content/translations/hu/developers/docs/smart-contracts/deploying/index.md b/public/content/translations/hu/developers/docs/smart-contracts/deploying/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/smart-contracts/deploying/index.md rename to public/content/translations/hu/developers/docs/smart-contracts/deploying/index.md diff --git a/src/content/translations/hu/developers/docs/smart-contracts/index.md b/public/content/translations/hu/developers/docs/smart-contracts/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/smart-contracts/index.md rename to public/content/translations/hu/developers/docs/smart-contracts/index.md diff --git a/src/content/translations/hu/developers/docs/smart-contracts/languages/index.md b/public/content/translations/hu/developers/docs/smart-contracts/languages/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/smart-contracts/languages/index.md rename to public/content/translations/hu/developers/docs/smart-contracts/languages/index.md diff --git a/src/content/translations/hu/developers/docs/smart-contracts/libraries/index.md b/public/content/translations/hu/developers/docs/smart-contracts/libraries/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/smart-contracts/libraries/index.md rename to public/content/translations/hu/developers/docs/smart-contracts/libraries/index.md diff --git a/src/content/translations/hu/developers/docs/smart-contracts/testing/index.md b/public/content/translations/hu/developers/docs/smart-contracts/testing/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/smart-contracts/testing/index.md rename to public/content/translations/hu/developers/docs/smart-contracts/testing/index.md diff --git a/src/content/translations/hu/developers/docs/standards/index.md b/public/content/translations/hu/developers/docs/standards/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/standards/index.md rename to public/content/translations/hu/developers/docs/standards/index.md diff --git a/public/content/translations/hu/developers/docs/standards/tokens/erc-20/index.md b/public/content/translations/hu/developers/docs/standards/tokens/erc-20/index.md new file mode 100644 index 00000000000..2bec538fbbd --- /dev/null +++ b/public/content/translations/hu/developers/docs/standards/tokens/erc-20/index.md @@ -0,0 +1,150 @@ +--- +title: ERC-20 Token Szabvány +description: +lang: hu +--- + +## Bevezetés {#introduction} + +**Mi is az a token?** + +A tokenek gyakorlatilag bármit képviselhetnek az Ethereumon: + +- reputációs pontokat egy online platformon +- egy karakter képességeit egy játékban +- lottó szelvényeket +- pénzügyi eszközöket, mint például részesedést egy cégben +- fiat valutát, mint az USD +- egy uncia aranyat +- és még sok más... + +Egy ilyen erős Ethereum tulajdonságot egy szintén erős szabványnak kell kezelnie, igaz? És pontosan itt jön képbe az ERC-20 szerepe! Ez a szabvány lehetővé teszi a fejlesztők számára, hogy olyan token alkalmazásokat fejlesszenek, amelyek együttműködnek más termékekkel és szolgáltatásokkal. + +**Mi az az ERC-20?** + +Az ERC-20 bevezeti a Felcserélhető Token szabványt, vagyis a tokeneknek meg van az a tulajdonságuk, hogy minden egyes token pontosan ugyanaz (típusban és értékben), mint egy másik token. Például egy ERC-20 token úgy viselkedik, mint az ETH, vagyis 1 token egyenlő és egyenlő is marad az összes többi tokennel. + +## Előfeltételek {#prerequisites} + +- [Számlák](/developers/docs/accounts) +- [Okosszerződések](/developers/docs/smart-contracts/) +- [Token szabványok](/developers/docs/standards/tokens/) + +## Törzs {#body} + +Az ERC-20 (Ethereum Request for Comments 20), melyet Fabian Vogelsteller javasolt 2015 novemberében, egy Token Szabvány, mely egy API-t implementál a tokenek számára az okosszerződéseken belül. + +Olyan funkcionalitásokat tartalmaz, mint a token átutalás egyik számláról a másikra vagy a token jelenlegi egyenlege az adott számlán valamint a teljes elérhető token mennyiség a hálózaton. Emellett vannak más más funkciók is, mint például annak jóváhagyása, hogy egy harmadik fél számlája elkölthessen egy bizonyos mennyiségű tokent az adott számláról. + +Ha egy okosszerződés implementálja a következő metódusokat és eseményeket, akkor egy ERC-20 token szerződésnek lehet nevezni, és a telepítés után a létrejött tokenek számontartásáért lesz felelős az Ethereumon. + +Az [EIP-20-ból](https://eips.ethereum.org/EIPS/eip-20): + +### Metódusok {#methods} + +```solidity +function name() public view returns (string) +function symbol() public view returns (string) +function decimals() public view returns (uint8) +function totalSupply() public view returns (uint256) +function balanceOf(address _owner) public view returns (uint256 balance) +function transfer(address _to, uint256 _value) public returns (bool success) +function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) +function approve(address _spender, uint256 _value) public returns (bool success) +function allowance(address _owner, address _spender) public view returns (uint256 remaining) +``` + +### Események {#events} + +```solidity +event Transfer(address indexed _from, address indexed _to, uint256 _value) +event Approval(address indexed _owner, address indexed _spender, uint256 _value) +``` + +### Példák {#web3py-example} + +Nézzük meg, miért olyan fontos egy szabvány, hogy egyszerűbbé tegye számunkra azt, hogy bármely ERC-20 token szerződést megtekinthessük az Ethereumon. Csak a szerződés Application Binary Interface-ére (ABI) lesz szükség, hogy egy felületet készítsünk bármely ERC-20 tokennek. Ahogy lentebb látni fogod, egy egyszerűsített ABI-t használunk, hogy egy egyszerűbb példával éljünk. + +#### Web3.py példa {#web3py-example} + +Először győződj meg arról, hogy a [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) Python könyvtár telepítve van: + +``` +pip install web3 +``` + +```python +from web3 import Web3 + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI +weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # Wrapped ether (WETH) + +acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11" # Uniswap V2: DAI 2 + +# Ez egy ERC-20 token szerződés egyszerűsített Application Binary Interface-e (ABI). +# Csak a következő metódusokat tartalmazza: balanceOf(address), decimals(), symbol() és totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'decimals', + 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +dai_contract = w3.eth.contract(address=w3.toChecksumAddress(dai_token_addr), abi=simplified_abi) +symbol = dai_contract.functions.symbol().call() +decimals = dai_contract.functions.decimals().call() +totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals +addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# DAI +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) + +weth_contract = w3.eth.contract(address=w3.toChecksumAddress(weth_token_addr), abi=simplified_abi) +symbol = weth_contract.functions.symbol().call() +decimals = weth_contract.functions.decimals().call() +totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals +addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# WETH +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) +``` + +## További olvasnivaló {#further-reading} + +- [EIP-20: ERC-20 Token Szabvány](https://eips.ethereum.org/EIPS/eip-20) +- [OpenZeppelin - Tokenek](https://docs.openzeppelin.com/contracts/3.x/tokens#ERC20) +- [OpenZeppelin - ERC-20 Implementáció](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) +- [ConsenSys - ERC-20 Implementáció](https://github.com/ConsenSys/Tokens/blob/master/contracts/eip20/EIP20.sol) + +## Kapcsolódó témák {#related-topics} + +- [ERC-721](/developers/docs/standards/tokens/erc-721/) +- [ERC-777](/developers/docs/standards/tokens/erc-777/) +- [ERC-1155](/developers/docs/standards/tokens/erc-1155/) diff --git a/public/content/translations/hu/developers/docs/standards/tokens/erc-721/index.md b/public/content/translations/hu/developers/docs/standards/tokens/erc-721/index.md new file mode 100644 index 00000000000..0b07557459c --- /dev/null +++ b/public/content/translations/hu/developers/docs/standards/tokens/erc-721/index.md @@ -0,0 +1,247 @@ +--- +title: ERC-721 Nem Felcserélhető Token Szabvány +description: +lang: hu +--- + +## Bevezetés {#introduction} + +**Mi az a nem felcserélhető token?** + +Egy nem felcserélhető tokent (NFT) valaki vagy valami egyedi beazonosítására lehet használni. Ezt a token típust tökéletesen lehet használni olyan platformokon, melyek gyűjthető tárgyakat, hozzáférési kulcsokat, lottó szelvényeket, sorszámozott koncert jegyeket vagy sportesemény jegyeket stb. árulnak. Ez a speciális token típus csodás lehetőségeket rejt magában, így megérdemel egy rendes szabványt, az ERC-721 szolgál megoldásul! + +**Mi az az ERC-721?** + +Az ERC-721 bevezeti az NFT szabványt, vagyis ez a token típus egyedi és különböző értékekkel rendelkezhet, mint egy másik token ugyanabból az okosszerződésből, ami esetleg a korából, ritkaságából vagy a kinézetéből származik. Egy pillanat, kinézet? + +Igen! Minden NFT-nek van egy `uint256` változója `tokenId` néven, így minden ERC-721 szerződéshez tartozó `contract address-nek és a uint256 tokenId-nek` globálisan egyedinek kell lennie. Mondjuk egy dappnak lehet egy "konvertere", mely a `tokenId` változót használja bemenetre és kimenetként valami menő dolog képét adja vissza például zombikat, fegyvereket, képességeket vagy csodálatos kiscicákat! + +## Előfeltételek {#prerequisites} + +- [Számlák](/developers/docs/accounts/) +- [Okosszerződések](/developers/docs/smart-contracts/) +- [Token szabványok](/developers/docs/standards/tokens/) + +## Törzs {#body} + +Az ERC-721 (Ethereum Request for Comments 721), melyet William Entriken, Dieter Shirley, Jacob Evans és Nastassia Sachs javasolt 2018 januárjában, egy nem felcserélhető token szabványt vezet be, mely egy token API-t implementál az okosszerződéseken belül. + +Olyan funkcionalitásokat tartalmaz, mint a token átutalás egyik számláról a másikra, a token jelenlegi egyenlege az adott számlán, az adott token jelenlegi tulajdonosa valamint a teljes elérhető tokenmennyiség a hálózaton. Emellett vannak más más funkciók is, mint például annak jóváhagyása, hogy egy harmadik fél számlája átmozgasson egy bizonyos mennyiségű tokent az adott számláról. + +Ha egy okosszerződés implementálja a következő metódusokat és eseményeket, akkor egy ERC-721 nem felcserélhető token szerződésnek lehet nevezni, és a telepítés után a létrejött tokenek számontartásáért lesz felelős az Ethereumon. + +Az [EIP-721-ből](https://eips.ethereum.org/EIPS/eip-721): + +### Metódusok {#methods} + +```solidity + function balanceOf(address _owner) external view returns (uint256); + function ownerOf(uint256 _tokenId) external view returns (address); + function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; + function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; + function transferFrom(address _from, address _to, uint256 _tokenId) external payable; + function approve(address _approved, uint256 _tokenId) external payable; + function setApprovalForAll(address _operator, bool _approved) external; + function getApproved(uint256 _tokenId) external view returns (address); + function isApprovedForAll(address _owner, address _operator) external view returns (bool); +``` + +### Események {#events} + +```solidity + event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); + event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); + event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); +``` + +### Példák {#web3py-example} + +Nézzük meg, miért olyan fontos egy szabvány, hogy egyszerűbbé tegye számunkra azt, hogy bármely ERC-721 token szerződést megtekinthessük az Ethereumon. Csak a szerződés Application Binary Interface-ére (ABI) lesz szükség, hogy egy felületet készítsünk bármely ERC-721 tokennek. Ahogy lentebb látni fogod, egy egyszerűsített ABI-t használunk, hogy egy egyszerűbb példával éljünk. + +#### Web3.py példa {#web3py-example} + +Először győződj meg arról, hogy a [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) Python könyvtár telepítve van: + +``` +pip install web3 +``` + +```python +from web3 import Web3 +from web3.utils.events import get_event_data + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # CryptoKitties Szerződés + +acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # CryptoKitties Aukció + +# Ez az ERC-721 NFT szerződésnek az egyszerűsített Contract Application Binary Interface-e (ABI). +# Csak a következő metódusokat tartalmazza: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'name', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'ownerOf', + 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, +] + +ck_extra_abi = [ + { + 'inputs': [], + 'name': 'pregnantKitties', + 'outputs': [{'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'name': '_kittyId', 'type': 'uint256'}], + 'name': 'isPregnant', + 'outputs': [{'name': '', 'type': 'bool'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +ck_contract = w3.eth.contract(address=w3.toChecksumAddress(ck_token_addr), abi=simplified_abi+ck_extra_abi) +name = ck_contract.functions.name().call() +symbol = ck_contract.functions.symbol().call() +kitties_auctions = ck_contract.functions.balanceOf(acc_address).call() +print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}") + +pregnant_kitties = ck_contract.functions.pregnantKitties().call() +print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}") + +# Using the Transfer Event ABI to get info about transferred Kitties. +tx_event_abi = { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'from', 'type': 'address'}, + {'indexed': False, 'name': 'to', 'type': 'address'}, + {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'Transfer', + 'type': 'event' +} + +# Szükségünk van az esemény szignójára, hogy kiszűrjük a logokat +event_signature = w3.sha3(text="Transfer(address,address,uint256)").hex() + +logs = w3.eth.getLogs({ + "fromBlock": w3.eth.blockNumber - 120, + "address": w3.toChecksumAddress(ck_token_addr), + "topics": [event_signature] +}) + +# Megjegyzések: +# - a Cloudflare szolgáltatónak 120 blokk a maximum hatótávja +# - Ha nem találtál semmilyen Transfer eseményt, akkor a tokenId-t megkapthatod itt is: +# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events +# Kattints az esemény logok kiterjesztésére és másold ki a "tokenId" paraméterét + +recent_tx = [get_event_data(tx_event_abi, log)["args"] for log in logs] + +kitty_id = recent_tx[0]['tokenId'] # Paste the "tokenId" here from the link above +is_pregnant = ck_contract.functions.isPregnant(kitty_id).call() +print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}") +``` + +A CryptoKitties szerződésnek van egy pár érdekes eseménye, ami nem standard. + +Nézzünk meg kettőt közülük, `Pregnant` és `Birth`. + +```python +# A Pregnant és a Birth esemény ABI-ok használata, hogy infókat kapjunk meg az új cicákról. +ck_extra_events_abi = [ + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}], + 'name': 'Pregnant', + 'type': 'event' + }, + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'kittyId', 'type': 'uint256'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'genes', 'type': 'uint256'}], + 'name': 'Birth', + 'type': 'event' + }] + +# Szükségünk van az esemény szignójára, hogy kiszűrjük a logokat +ck_event_signatures = [ + w3.sha3(text="Pregnant(address,uint256,uint256,uint256)").hex(), + w3.sha3(text="Birth(address,uint256,uint256,uint256,uint256)").hex(), +] + +# Itt a Pregnant Event: +# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog +pregnant_logs = w3.eth.getLogs({ + "fromBlock": w3.eth.blockNumber - 120, + "address": w3.toChecksumAddress(ck_token_addr), + "topics": [ck_extra_events_abi[0]] +}) + +recent_pregnants = [get_event_data(ck_extra_events_abi[0], log)["args"] for log in pregnant_logs] + +# Itt a Birth Event: +# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a +birth_logs = w3.eth.getLogs({ + "fromBlock": w3.eth.blockNumber - 120, + "address": w3.toChecksumAddress(ck_token_addr), + "topics": [ck_extra_events_abi[1]] +}) + +recent_births = [get_event_data(ck_extra_events_abi[1], log)["args"] for log in birth_logs] +``` + +## Népszerű NFT-k {#popular-nfts} + +- [Etherscan NFT Tracker](https://etherscan.io/tokens-nft) legnagyobb forgalommal rendelkező NFT-k listája az Ethereumon. +- [CryptoKitties](https://www.cryptokitties.co/) egy játék, mely pároztatható, gyűjthető és imádnivaló lényekről szól, melyeket CryptoKittinek nevezünk. +- [Sorare](https://sorare.com/) egy globális fantáziafutball-játék, ahol korlátozott példányszámú gyűjtögetni valót gyűjthetsz, irányíthatod a csapataidat, és versenyezhetsz, hogy díjakat szerezz. +- [Az Ethereum Name Service (ENS)](https://ens.domains/) egy biztonságos & decentralizált módját kínálja az erőforrások kezelésére a blokkláncon vagy azon kívül egyszerű, emberek számára is olvasható nevek használatával. +- [Unstoppable Domains](https://unstoppabledomains.com/) egy San Francisco székhelyű vállalat, mely domain neveket fejleszt a blokkláncra. A blokklánc domainek a kriptovaluta-címeket ember által is olvasható nevekre cserélik, és használhatók cenzúra-ellenálló weboldalakhoz is. +- [Gods Unchained Cards](https://godsunchained.com/) egy TCG az Ethereum blokkláncon, mely NFT-ket használ, hogy valódi tulajdonjogot biztosítson a játékon belüli eszközökre. + +## További olvasnivaló {#further-reading} + +- [ERC-721: Nem Felcserélhető Token Szabvány](https://eips.ethereum.org/EIPS/eip-721) +- [OpenZeppelin - ERC-721 Dokumentáció](https://docs.openzeppelin.com/contracts/3.x/erc721) +- [OpenZeppelin - ERC-721 Implementáció](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) + +## Kapcsolódó témák {#related-topics} + +- [ERC-20](/developers/docs/standards/tokens/erc-20/) +- [ERC-777](/developers/docs/standards/tokens/erc-777/) +- [ERC-1155](/developers/docs/standards/tokens/erc-1155/) diff --git a/src/content/translations/hu/developers/docs/standards/tokens/index.md b/public/content/translations/hu/developers/docs/standards/tokens/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/standards/tokens/index.md rename to public/content/translations/hu/developers/docs/standards/tokens/index.md diff --git a/src/content/translations/hu/developers/docs/storage/index.md b/public/content/translations/hu/developers/docs/storage/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/storage/index.md rename to public/content/translations/hu/developers/docs/storage/index.md diff --git a/public/content/translations/hu/developers/docs/transactions/index.md b/public/content/translations/hu/developers/docs/transactions/index.md new file mode 100644 index 00000000000..3bfaf25fc47 --- /dev/null +++ b/public/content/translations/hu/developers/docs/transactions/index.md @@ -0,0 +1,152 @@ +--- +title: Tranzakciók +description: Egy áttekintő az Ethereum tranzakciókról – hogyan működnek, az adatszerkezetük és hogyan lehet őket elküldeni egy alkalmazáson keresztül. +lang: hu +isOutdated: true +--- + +A tranzakciók számlákból származó kriptográfiailag aláírt instrukciók. Egy számla tranzakciót indíthat, hogy frissítse az Ethereum hálózat állapotát. A legegyszerűbb tranzakció az ETH átutalása egyik számláról a másikra. + +## Előfeltételek {#prerequisites} + +Ennek az oldalnak a jobb megértése érdekében javasoljuk, hogy először olvasd el a [Számlák](/developers/docs/accounts/) és a [bevezetés az Ethereumba](/developers/docs/intro-to-ethereum/) című cikkeinket. + +## Mi az a tranzakció? {#whats-a-transaction} + +Az Ethereum tranzakció egy külső tulajdonú számla által kezdeményezett tevékenységre utal, más szóval egy számla, melyet egy ember kezel, nem pedig egy szerződés. Például ha Bob elküld Alice-nek 1 ETH-et, akkor Bob számláját terhelni kell, Alice számlájára pedig jóvá kell írni az összeget. Ez az állapotot megváltoztató művelet egy tranzakción belül történik. + +![Egy diagram, mely egy tranzakciót ábrázol, ahogy az megváltoztatja az állapotot](./tx.png) _Diagram átvéve az [Ethereum EVM illusztrálva](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ anyagból + +A tranzakciókat, melyek megváltoztatják az EVM állapotát, a teljes hálózat számára közvetíteni kell. Bármely csomópont kérvényezheti egy tranzakció végrehajtását az EVM-en; miután ez megtörténik, egy bányász végrehajtja a tranzakciót és továbbterjeszti az eredményül kapott állapotot a hálózat többi része számára. + +A tranzakcióknak van egy díja, és ki kell bányászni őket, hogy érvényessé váljanak. Hogy egyszerűbb legyen ez az áttekintő, a gáz díjak és a bányászat témaköröket máshol taglaljuk. + +Az elküldött tranzakció a következő információkat tartalmazza: + +- `recipient` – a fogadó cím (ha egy külső tulajdonú számla, akkor a tranzakció értéket továbbít. Ha egy szerződéses számla, akkor a tranzakció szerződés kódot fog végrehajtani) +- `signature` – a küldő azonosítója. Ez akkor jön létre, amikor a feladó privát kulcsa aláírja a tranzakciót, és megerősíti, hogy a küldő engedélyezte ezt a tranzakciót +- `value` – az átküldendő ETH mennyiség a küldőtől a címzettnek (WEI-ben, az ETH egységében megadva) +- `data` – opcionális mező tetszőleges adat megadására +- `gasLimit` – a maximális gáz egység, melyet a tranzakció elfogyaszthat. A gáz egységek számítási lépéseket reprezentálnak +- `gasPrice` – a díj, melyet a küldő fizet gáz egységenként + +A gáz a bányász által a tranzakció feldolgozásához szükséges számításra utal. A felhasználóknak egy díjat kell fizetniük ezért a számításért. A `gasLimit` és a `gasPrice` meghatározza a bányásznak fizetett maximális tranzakciós díjat. [Többet a gázról](/developers/docs/gas/). + +A tranzakció objektum nagyjából így néz ki: + +```js +{ + from: "0xEA674fdDe714fd979de3EdF0F56AA9716B898ec8", + to: "0xac03bb73b6a9e108530aff4df5077c2b3d481e5a", + gasLimit: "21000", + gasPrice: "200", + nonce: "0", + value: "10000000000", +} +``` + +De a tranzakció objektumot alá kell írni a küldő privát kulcsával. Ez bizonyítja, hogy a tranzakció kizárólag a küldőtől jöhetett és nem történt csalás. + +Egy Ethereum kliens, mint a Geth, fogja kezelni az aláírási folyamatot. + +Példa [JSON-RPC](https://eth.wiki/json-rpc/API) hívás: + +```json +{ + "id": 2, + "jsonrpc": "2.0", + "method": "account_signTransaction", + "params": [ + { + "from": "0x1923f626bb8dc025849e00f99c25fe2b2f7fb0db", + "gas": "0x55555", + "gasPrice": "0x1234", + "input": "0xabcd", + "nonce": "0x0", + "to": "0x07a565b7ed7d7a678680a4c162885bedbb695fe0", + "value": "0x1234" + } + ] +} +``` + +Példa válasz: + +```json +{ + "jsonrpc": "2.0", + "id": 2, + "result": { + "raw": "0xf88380018203339407a565b7ed7d7a678680a4c162885bedbb695fe080a44401a6e4000000000000000000000000000000000000000000000000000000000000001226a0223a7c9bcf5531c99be5ea7082183816eb20cfe0bbc322e97cc5c7f71ab8b20ea02aadee6b34b45bb15bc42d9c09de4a6754e7000908da72d48cc7704971491663", + "tx": { + "nonce": "0x0", + "gasPrice": "0x1234", + "gas": "0x55555", + "to": "0x07a565b7ed7d7a678680a4c162885bedbb695fe0", + "value": "0x1234", + "input": "0xabcd", + "v": "0x26", + "r": "0x223a7c9bcf5531c99be5ea7082183816eb20cfe0bbc322e97cc5c7f71ab8b20e", + "s": "0x2aadee6b34b45bb15bc42d9c09de4a6754e7000908da72d48cc7704971491663", + "hash": "0xeba2df809e7a612a0a0d444ccfa5c839624bdc00dd29e3340d46df3870f8a30e" + } + } +} +``` + +- a `raw` az aláírt tranzakció rekurzív hosszúságú prefixumban (RLP) enkódolva +- a `tx` az aláírt tranzakció JSON-ban + +A szignatúra hash-sel a tranzakcióról kriptográfiailag be lehet bizonyítani, hogy a küldőtől jött és továbbították a hálózatra. + +### A gázról {#on-gas} + +Ahogy korábban említettük, a tranzakciók [gáz](/developers/docs/gas/) költséget igényelnek a lefutáshoz. Egy egyszerű átutalás 21000 gáz egységet igényel. + +Így ahhoz, hogy Bob 1 ETH-et küldjön Alice-nek 200 Gwei `gasPrice` értékkel, a következő díjat kell kifizetnie: + +``` +200*21000 = 4,200,000 GWEI +--vagy-- +0.0042 ETH +``` + +Bob számláját **-1.0042 ETH** terhelés éri + +Alice számlájára **+1.0 ETH**-et írnak jóvá + +A bányász, aki feldolgozta a tranzakciót **+0.0042 ETH**-et fog kapni + +Az okosszerződés interakciók is gázt igényelnek. + +![Egy diagram, mely a fel nem használt gáz visszatérítését ábrázolja](./gas-tx.png) _Diagram átvéve az [Ethereum EVM illusztrálva](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ anyagból + +Minden fel nem használt gáz visszakerül a felhasználó számlájára. + +## Tranzakció életciklus {#transaction-lifecycle} + +Amikor elküld valaki egy tranzakciót, a következő történik: + +1. Amikor elküldesz egy tranzakciót, egy kriptográfiai hash jön létre: `0x97d99bc7729211111a21b12c933c949d4f31684f1d6954ff477d0477538ff017` +2. A tranzakciót ezután közvetítik a hálózatra, és sok más tranzakcióval rendelkező készletbe foglalják. +3. Egy bányásznak ki kell választania a tranzakciódat és belefoglalnia egy blokkba, hogy hitelesítse és "sikeresnek" minősítse. + - Lehet, hogy ennél a résznél várnod kell, ha a hálózaton nagy a forgalom és a bányászok nem tudnak lépést tartani. A bányászok, mindig a nagyobb `GASPRICE` értékű tranzakciót veszik előre, mivel megtarthatják a tranzakciós díjakat. +4. A tranzakciód kap egy blokk megerősítési számot is. Ez azoknak a blokkoknak a mennyisége, melyek azután jöttek létre, miután te tranzakciódat blokkba foglalták. Minél nagyobb ez a szám, annál nagyobb bizonyossággal lehet kimondani, hogy a tranzakciót feldolgozták és a hálózat elismeri. Ez azért van, mert néha a blokk, mely befoglalja a tranzakciódat, nem mindig jut el a láncig. + - Minél nagyobb a blokk megerősítési szám, annál nehezebb megváltoztatni a tranzakciót. Így nagyobb értékű tranzakcióknál, nagyobb blokk megerősítési szám az elvárt. + +## Egy vizuális bemutató {#a-visual-demo} + +Nézd meg, ahogy Austin átvezet a tranzakciókon, a gázon és a bányászaton. + + + +## További olvasnivaló {#further-reading} + +_Ismersz olyan közösségi anyagot, amely segített neked? Módosítsd az oldalt és add hozzá!_ + +## Kapcsolódó témák {#related-topics} + +- [Számlák](/developers/docs/accounts/) +- [Ethereum virtuális gép (EVM)](/developers/docs/evm/) +- [Üzemanyag](/developers/docs/gas/) +- [Bányászat](/developers/docs/consensus-mechanisms/pow/mining/) diff --git a/src/content/translations/hu/developers/docs/web2-vs-web3/index.md b/public/content/translations/hu/developers/docs/web2-vs-web3/index.md similarity index 100% rename from src/content/translations/hu/developers/docs/web2-vs-web3/index.md rename to public/content/translations/hu/developers/docs/web2-vs-web3/index.md diff --git a/src/content/translations/hu/eips/index.md b/public/content/translations/hu/eips/index.md similarity index 100% rename from src/content/translations/hu/eips/index.md rename to public/content/translations/hu/eips/index.md diff --git a/src/content/translations/hu/energy-consumption/index.md b/public/content/translations/hu/energy-consumption/index.md similarity index 100% rename from src/content/translations/hu/energy-consumption/index.md rename to public/content/translations/hu/energy-consumption/index.md diff --git a/src/content/translations/hu/enterprise/index.md b/public/content/translations/hu/enterprise/index.md similarity index 100% rename from src/content/translations/hu/enterprise/index.md rename to public/content/translations/hu/enterprise/index.md diff --git a/src/content/translations/hu/enterprise/private-ethereum/index.md b/public/content/translations/hu/enterprise/private-ethereum/index.md similarity index 100% rename from src/content/translations/hu/enterprise/private-ethereum/index.md rename to public/content/translations/hu/enterprise/private-ethereum/index.md diff --git a/src/content/translations/hu/foundation/index.md b/public/content/translations/hu/foundation/index.md similarity index 100% rename from src/content/translations/hu/foundation/index.md rename to public/content/translations/hu/foundation/index.md diff --git a/src/content/translations/hu/glossary/index.md b/public/content/translations/hu/glossary/index.md similarity index 100% rename from src/content/translations/hu/glossary/index.md rename to public/content/translations/hu/glossary/index.md diff --git a/src/content/translations/hu/governance/index.md b/public/content/translations/hu/governance/index.md similarity index 100% rename from src/content/translations/hu/governance/index.md rename to public/content/translations/hu/governance/index.md diff --git a/src/content/translations/hu/guides/how-to-create-an-ethereum-account/index.md b/public/content/translations/hu/guides/how-to-create-an-ethereum-account/index.md similarity index 100% rename from src/content/translations/hu/guides/how-to-create-an-ethereum-account/index.md rename to public/content/translations/hu/guides/how-to-create-an-ethereum-account/index.md diff --git a/src/content/translations/hu/guides/how-to-id-scam-tokens/index.md b/public/content/translations/hu/guides/how-to-id-scam-tokens/index.md similarity index 100% rename from src/content/translations/hu/guides/how-to-id-scam-tokens/index.md rename to public/content/translations/hu/guides/how-to-id-scam-tokens/index.md diff --git a/src/content/translations/hu/guides/how-to-revoke-token-access/index.md b/public/content/translations/hu/guides/how-to-revoke-token-access/index.md similarity index 100% rename from src/content/translations/hu/guides/how-to-revoke-token-access/index.md rename to public/content/translations/hu/guides/how-to-revoke-token-access/index.md diff --git a/src/content/translations/hu/guides/how-to-swap-tokens/index.md b/public/content/translations/hu/guides/how-to-swap-tokens/index.md similarity index 100% rename from src/content/translations/hu/guides/how-to-swap-tokens/index.md rename to public/content/translations/hu/guides/how-to-swap-tokens/index.md diff --git a/src/content/translations/hu/guides/how-to-use-a-bridge/index.md b/public/content/translations/hu/guides/how-to-use-a-bridge/index.md similarity index 100% rename from src/content/translations/hu/guides/how-to-use-a-bridge/index.md rename to public/content/translations/hu/guides/how-to-use-a-bridge/index.md diff --git a/src/content/translations/hu/guides/how-to-use-a-wallet/index.md b/public/content/translations/hu/guides/how-to-use-a-wallet/index.md similarity index 100% rename from src/content/translations/hu/guides/how-to-use-a-wallet/index.md rename to public/content/translations/hu/guides/how-to-use-a-wallet/index.md diff --git a/src/content/translations/hu/guides/index.md b/public/content/translations/hu/guides/index.md similarity index 100% rename from src/content/translations/hu/guides/index.md rename to public/content/translations/hu/guides/index.md diff --git a/src/content/translations/hu/history/index.md b/public/content/translations/hu/history/index.md similarity index 100% rename from src/content/translations/hu/history/index.md rename to public/content/translations/hu/history/index.md diff --git a/public/content/translations/hu/nft/index.md b/public/content/translations/hu/nft/index.md new file mode 100644 index 00000000000..7ffb8eaec6d --- /dev/null +++ b/public/content/translations/hu/nft/index.md @@ -0,0 +1,94 @@ +--- +title: Nem helyettesíthető tokenek (NFT-k) +description: Az NFT-k áttekintése az Ethereum hálózaton +lang: hu +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: Egy Eth logó, amely hologram segítségével jelenik meg. +summaryPoint1: Egy módszer arra, hogy egyedi dolgokat Ethereum alapú javakként jelenítsünk meg. +summaryPoint2: Az NFT-k minden korábbinál nagyobb hatalmat adnak a tartalomgyártók kezébe. +summaryPoint3: Az Ethereum blokklánc okosszerződései által működtetve. +--- + +## Mik azok a nem helyettesíthető tőkenek (NFT)? {#what-are-nfts} + +Az NFT-k olyan tokenek, melyek teljesen egyediek. Minden egyes NFT más jellemzőkkel bír (nem helyettesíthető) és bizonyítottan véges. Különbözik más tokenektől, mint amilyen az ERC-20 is, ahol egy adott tokenszett minden eleme azonos és ugyanolyan jellemzőkkel bír (helyettesíthető). Nem számít, hogy az ember pénztárcájában konkrétan melyik bankjegy található, mert mindegyik azonos és ugyanolyan értékű. Az azonban _valóban_ számít, hogy Ön melyik NFT-t birtokolja, mert egyedi jellemzőik megkülönböztetik azokat egymástól (nem helyettesíthető). + +Az NFT-k egyedisége révén akár műtárgyak, gyűjthető tárgyak vagy ingatlanok is tokenné alakíthatók. Ekkor egy adott egyedi NFT egy specifikus, egyedi, valós vagy digitális tárgyat képvisel. Egy eszköz tulajdonjogát az Ethereum-blokklánc biztosítja – senki sem módosíthatja a tulajdonjog igazolását, vagy hozhat létre új NFT-t másolással és beillesztéssel. + + + +## Az eszközök internete {#internet-of-assets} + +Az NFT-k és az Ethereum megoldást jelent néhány, napjainkban az interneten jelen lévő problémára. Ahogy minden egyre digitálisabbá válik, egyre inkább szükség van a fizikai tárgyak bizonyos tulajdonságainak replikálására, mint például a ritkaság, az egyediség és a tulajdonjog bizonyítása. oly módon, hogy azt ne egy központi szervezet irányítsa. Például az NFT révén bárki birtokolhat olyan mp3 zenét, mely nem egy cég specifikus zenei alkalmazásához kötődik, illetve egy olyan oldalt a közösségi médiában, melyet eladhat vagy elcserélhet, de azt nem veheti el önkényesen a platform szolgáltatója. + +Így néz ki az NFT-k internete ahhoz az internethez képest, amelyet a többségünk minden nap használ... + +### Összehasonlítás {#nft-comparison} + +| Az NFT-k internete | Az internet ma | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Ön birtokolja az eszközeit! Egyedül Ön adhatja vagy cserélheti el azokat. | Eszközt bérel valamelyik szervezettől. | +| Az NFT-k digitálisan egyediek, nincs két azonos NFT. | Egy adott entitás másolatát gyakran nem lehet megkülönböztetni az eredetitől. | +| Az NFT tulajdonjogát a blokklánc tárolja, így bárki beazonosíthatja azt. | A digitális javak tulajdonjogi nyilvántartását intézmények által ellenőrzött szervereken tárolják – az ő szavukra kell hagyatkoznunk. | +| Az NFT-k okosszerződések az Ethereum hálózatán. Ez azt jelenti, hogy így könnyen fel lehet azokat használni más okosszerződésekben és alkalmazásokban az Ethereumon! | A digitális eszközöket birtokló vállalatoknak általában saját, falakkal védett infrastruktúrát kell kialakítaniuk. | +| A tartalomkészítők bárhol eladhatják munkáikat, és hozzáférhetnek a világpiachoz. | Az alkotók csak annak a felületnek a hálózatára és disztribúciójára támaszkodhatnak, amelyet használnak. Ezeknek gyakran felhasználási feltételei és földrajzi korlátai vannak. | +| Az NFT létrehozói megtarthatják tulajdonjogaikat saját munkájukat illetően, valamint belefoglalhatják a jogdíjfizetést az NFT szerződésbe. | Az online zeneszolgáltatók és a hasonló platformok megtartják a haszon túlnyomó részét. | + +## Hogyan működnek az NFT-k? {#how-nfts-work} + +Ahogy az Ethereumon létrehozott többi tokent, az NFT-ket is okosszerződések kreálják. Az okosszerződés a számos NFT-standard egyikét (általában ERC-721 vagy ERC-1155) alkalmazza, mely meghatározza a szerződés funkcióit. A szerződés létrehozza (minteli) az NFT-t, és egy adott tulajdonoshoz rendeli. A tulajdonjogot úgy határozza meg a szerződés, hogy az adott NFT-t adott címhez köti. Az NFT rendelkezik egy azonosítóval (ID) és jellemzően metaadatok kapcsolódnak hozzá, melyek egyedivé teszik az adott tokent. + +Amikor valaki létrehozza vagy minteli az NFT-t, akkor valójában az okosszerződés egy funkcióját indítja el, mely a címéhez rendeli az adott NFT-t. Ezt az információt a szerződés tárhelye őrzi a blokklánc részeként. A szerződés létrehozója egyéb logikát is belevehet a szerződésbe, mint például a kínálat korlátozása, illetve jogdíjfizetés az alkotónak minden alkalommal, amikor a token tulajdonost vált. + +## Mire használják az NFT-ket? {#nft-use-cases} + +Az NFT-ket számtalan esetben használják, ilyen például: + +- egy eseményen való részvétel igazolása +- egy elvégzett képzés bizonyítványa +- a játékokban birtokolható dolgok +- digitális művészet +- valós tárgyak tokenizálása +- online személyazonosság bizonyítása +- hozzáférés bizonyos tartalmakhoz +- jegyek +- decentralizált internetes domainnevek +- fedezet a decentralizált pénzügyekben (DeFi) + +Tegyük fel, hogy Ön egy művész, aki szeretné NFT-ként megosztani az alkotását, anélkül hogy elveszítené az ellenőrzést felette és közvetítőkre áldozná a profitját. Létrehozhat egy új szerződést, melyben megadja az NFT-k számát, jellemzőiket, és hozzákapcsolja az adott műalkotást. Beleírhatja az okosszerződésbe az Önnek járó jogdíjakat (pl. az eladási ár 5%-át utalják a szerződés tulajdonosának minden alkalommal, amikor az NFT gazdát cserél). Mindig képes lesz bizonyítani, hogy Ön hozta létre az NFT-ket, mert a birtokában van az a tárca, mely létrehozta a szerződést. A vásárlók is könnyedén bizonyíthatják, hogy eredeti NFT-vel rendelkeznek az Ön kollekciójából, mert a tárcáik címe hozzá van rendelve egy tokenhez az okosszerződésben. Az egész Ethereum-ökoszisztémában használhatják az NFT-t, teljes bizonyossággal az eredetiségét illetően. + +Vagy vegyünk például egy sporteseményre szóló jegyet. Ahogyan egy rendezvény szervezője eldöntheti, hogy hány jegyet ad el, úgy az NFT létrehozója is eldöntheti, hogy hány másolat létezhet. Néha ezek pontos másolatok, mint például 5000 darab nem helyre szóló belépőjegy. Néha több olyan jegyet is kiállítanak, amelyek nagyon hasonlóak, de mindegyik kissé különbözik, mint például kijelölt ülőhelyekre szóló jegyek. Ezeket vehetik és adhatják egymás között (peer-to-peer) anélkül, hogy fizetni kellene a jegyárusoknak, a vevő pedig a szerződés címét ellenőrizve mindig meggyőződhet a jegyek eredetiségéről. + +Az ethereum.org portálon NFT-t használunk arra, hogy igazoljuk a tagok közreműködését a Github gyűjteményhez (repóhoz) vagy a részvételüket bizonyos konferenciabeszélgetéseken, sőt, saját NFT domainnévvel is rendelkezünk. Ha Ön hozzájárul az ethereum.org felülethez, egy POAP NFT-t igényelhet. Bizonyos kriptotalálkozók POAP-ot (részvételt tanúsító protokollt) használnak jegy gyanánt. [Tudjon meg többet a hozzájárulásról](/contributing/#poap). + +![ethereum.org POAP](./poap.png) + +Ez a weboldal egy alternatív, NFT-k által működtetett domainnévvel is rendelkezik: **ethereum.eth**. Az `.org` címünket központilag egy domainnévrendszer (DNS) szolgáltató kezeli, míg az ethereum`.eth` cím az Ethereum Name Service (ENS) szolgáltatáson keresztül van regisztrálva az Ethereumra. Ezt a mi tulajdonunkban van, és mi kezeljük. [Tekintse meg az ENS-adatainkat](https://app.ens.domains/name/ethereum.eth) + +[Bővebben az ENS-ről](https://app.ens.domains) + + + +### Az NFT-k biztonsága {#nft-security} + +Az Ethereum biztonságát a letét bizonyítéka (vagyis a proof-of-stake) adja. A rendszert úgy tervezték, hogy gazdaságilag visszatartson a rosszindulatú cselekedetektől, így az Ethereum hamisíthatatlan. Ennek köszönhetően létezhetnek az NFT-k. Ha az NFT-tranzakciót tartalmazó blokk véglegesítetté válik, egy támadónak több millió ETH-ba kerülne megváltoztatni azt. Bárki, aki Ethereum-szoftvert futtat, azonnal képes lenne észlelni az NFT tisztességtelen manipulálását, és a csalárd szereplőt gazdaságilag megbüntetnék és kizárnák. + +Az NFT-kel kapcsolatos biztonsági problémák leggyakrabban adathalász csalásokhoz, okosszerződések sebezhetőségéhez vagy felhasználói hibákhoz (például a privát kulcsok véletlen felfedéséhez) kapcsolódnak, így a megfelelő tárcabiztonság kritikus fontosságú az NFT-tulajdonosok számára. + + + Bővebben a biztonságról + + +## További olvasnivaló {#further-reading} + +- [A beginner's guide to NFTs](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, 2020. január _ +- [EtherscanNFT trekker](https://etherscan.io/nft-top-contracts) +- [ERC-721 tokenszabvány](/developers/docs/standards/tokens/erc-721/) +- [ERC-1155 tokenszabvány](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/public/content/translations/hu/refi/index.md b/public/content/translations/hu/refi/index.md new file mode 100644 index 00000000000..dce79d906bf --- /dev/null +++ b/public/content/translations/hu/refi/index.md @@ -0,0 +1,79 @@ +--- +title: Regeneratív pénzügyek (ReFi) +description: A regeneratív pénzügyek (ReFi) áttekintése és jelenlegi használata. +lang: hu +template: use-cases +emoji: ":recycle:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Egy alternatív gazdasági rendszer, mely regeneratív elvekre épül +summaryPoint2: Az Ethereum kiaknázása a globális koordinációs krízisek megoldására, mint amilyen a klímaváltozás is +summaryPoint3: Az ökológiailag hasznos eszközök drasztikus skálázási lehetősége, mint amilyen az igazolt karbonkredit is +--- + +## Mik azok a regeneratív pénzügyek (ReFi)? {#what-is-refi} + +**A regeneratív pénzügyek (ReFi)** olyan blokkláncra épülő eszközök és eszmék összessége, melyek célja a regeneratív gazdaságok kialakítása a kitermelési vagy kizsákmányolási helyett. A kizsákmányoláson alapuló rendszerek végül felélik a rendelkezésre álló erőforrásokat és összeomlanak; a regeneratív mechanizmusok nélkül nem bírnak kellő rugalmassággal. A ReFi azon a feltételezésen alapszik, hogy a pénzügyi érték létrehozását el kell választani a bolygó és a közösségek erőforrásainak nem fenntartható kizsákmányolásától. + +Ehelyett a ReFi arra törekszik, hogy regeneratív ciklusok létrehozásával környezeti, közösségi és szociális problémákat oldjon meg. Ezek a rendszerek egyszerre teremtenek értéket a résztvevőknek, valamint az ökoszisztéma és a közösségek javait szolgálják. + +A ReFi egyik alapköve a regeneratív gazdaság koncepciója, melyet John Fullerton fogalmazott meg a [Capital Institute intézettől](https://capitalinstitute.org). Nyolc összefüggő elvet javasolt, melyek megalapozzák a rendszer egészségét: + +![A nyolc összefüggő elv](refi-regenerative-economy-diagram.png) + +A ReFi projektek ezeket az elveket valósítják meg az [okosszerződések](/developers/docs/smart-contracts/) és [a decentralizált pénzügyek (DeFi)](/defi/) alkalmazásainak segítségével, hogy ösztönözzék a regeneratív viselkedéseket, mint amilyen a lepusztult ökoszisztémák visszaállítása, illetve a nagy léptékű együttműködés elősegítése olyan globális problémák esetén, mint a klímaváltozás és a biodiverzitás-csökkenés. + +A ReFi egyúttal átfedésben van a [decentralizált tudomány (DeSci)](/desci/) mozgalommal, mely az Ethereumot használja platformként a tudományos ismeretek finanszírozása, létrehozása, értékelése, hitelesítése, tárolása és terjesztése céljából. A DeSci eszközök hasznosak lehetnek ahhoz, hogy a regeneratív tevékenységek (faültetés, a műanyagok összegyűjtése az óceánból, lepusztult ökoszisztémák visszaállítása) bevezetését és monitorozását igazolható szabványokkal és gyakorlatokkal támasszák alá. + +## A karbonkreditek tokenizálása {#tokenization-of-carbon-credits} + +Az **[önkéntes karbonpiac (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** olyan projektek finanszírozási mechanizmusa, melyek igazolhatóan pozitív hatást gyakorolnak a szén-dioxid kibocsátásra, akár az aktuális kibocsátás csökkentésével vagy a más kibocsátott üvegházhatású gázok lekötésével. Ezek a projektek egy karbonkreditnek nevezett eszközt kapnak az igazolási eljárás után, melyet olyan egyéneknek és szervezeteknek adhatnak el, akik támogatni szeretnék a klímára ható intézkedéseket. + +Az önkéntes karbonpiac (VCM) mellett számos kormányzat által kötelezővé tett karbonpiac is létezik, hogy törvényekkel vagy szabályozásokkal egy adott joghatóságon belül (pl. ország vagy régió) bevezessenek egy olyan karbonárat, mellyel kontrollálnák a kiadott karbonkibocsátási engedélyeket. Ezek a kötelező karbonpiacok arra ösztönzik a kibocsátókat az adott joghatóságon belül, hogy csökkentsék kibocsátásukat, de a már kibocsátott üvegházhatású gázok lekötésére nincs ráhatásuk. + +Az elmúlt évtizedek fejlődése ellenére a VCM továbbra is számtalan problémával küzd: + +1. A likviditás, vagyis az elérhető pénzeszközök nagyon szétdaraboltak +2. A tranzakciók működése nem átlátható +3. Magas díjak +4. A kereskedési sebesség nagyon lassú +5. A skálázhatóság nem megoldott + +A VCM átvitele az új, blokkláncalapú **digitális karbonpiacra (DCM)** egy jó lehetőség arra, hogy továbbfejlesszük a karbonkreditek validálásának, adásvételének és felhasználásának meglévő technológiáját. A blokkláncok lehetővé teszik a nyilvánosan igazolható adatokat, hozzáférést biztosítanak a felhasználók széles körének és nagyobb likviditást tudnak adni. + +A ReFi-projektek blokklánc technológiát használnak arra, hogy a hagyományos piac problémáit enyhítsék: + +- **A likviditás néhány alapban koncentrálódik,** amelyekkel bárki szabadon kereskedhet. A nagy szervezetek és az egyéni felhasználók ugyanúgy hasznosíthatják ezeket az alapokat, és nem kell hozzá kereskedőt fogadniuk, részvételi díjat fizetniük vagy regisztrálniuk. +- **Az összes tranzakció nyilvános blokkláncokon kerül rögzítésre**. Minden egyes karbonkredit mozgása nyomon követhető onnantól kezdve, hogy a DCM-en elérhetővé válik. +- **A tranzakciósebesség szinte azonnali**. A hagyományos piacokon napokig vagy hetekig tartana nagyobb mennyiségű karbonkredit beszerzése, amit a DCM-en pillanatok alatt el lehet érni. +- **A kereskedés közvetítők nélkül zajlik**, akik nagy díjakat számolnának fel ezért. A digitális karbonkreditek [62%-os költséghatékonyságot jelentenek a hagyományos kreditekhez képest](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne), derül ki egy elemzőcég adataiból. +- **A DCM skálázható** és képes egyaránt kielégíteni az egyének és a multinacionális vállalatok igényeit. + +### A digitális karbonpiac (DCM) fő komponensei {#key-components-dcm} + +A DCM jelenlegi struktúrája négy fő elemből áll: + +1. Nyilvántartások, mint a [Verra](https://verra.org/project/vcs-program/registry-system/) és a [Gold Standard](https://www.goldstandard.org/), biztosítják, hogy a projektek karbonkreditjei hitelesek legyenek. Emellett üzemeltetik az adatbázist, melyben a digitális karbonkreditek létrejönnek, és ezek átadhatók és felhasználhatók. + +A blokkláncra épülő, innovatív projektek egy újabb hulláma próbálja megbontani, újraalkotni a szektor hivatalnoki funkcióit is. + +2. Karbonhidak, vagyis tokenizálók, akik a hagyományos nyilvántartásokban tárolt karbonkrediteket megjelenítik vagy áttranszferálják a DCM-re. Ismert példa többek között a [Toucan Protocol](https://toucan.earth/), a [C3](https://c3.app/) és a [Moss.Earth](https://moss.earth/). +3. Integrált szolgáltatások, melyek karbonelkerülési és/vagy -eltávolítási krediteket ajánlanak a végfelhasználóknak, így nyilvánvaló a környezetre gyakorolt jótékony hatásuk és megoszthatják a világgal azt, hogy támogatják a klímával kapcsolatos intézkedéseket. + +Néhányan, mint amilyen a [Klima Infinity](https://www.klimadao.finance/infinity) és a [Senken](https://senken.io/), a projektek széles választékát kínálják, melyeket harmadik fél készített és olyan szabványok mentén bocsátott ki, mint a Verra. Mások, mint amilyen a [Nori](https://nori.com/) is, csak specifikus projekteket fejlesztenek a saját karbonkredit-szabványuk alapján, melyet ők bocsátanak ki és saját, erre specializált piacterükön kezelik. + +4. Infrastruktúra, amely lehetővé teszi a karbonpiac teljes ellátási láncának skálázhatóságát hatás és hatékonyság szempontjából. A [KlimaDAO](http://klimadao.finance/) likviditást biztosít közjó gyanánt (bárki vehet vagy adhat karbonkreditet transzparens áron), ösztönzi a karbonpiacok tranzakcióátvitelének növekedését és a karbonkreditek felhasználását, továbbá felhasználóbarát és interoperábilis eszközrendszert biztosít, hogy a tokenizált karbonkreditek széles választékáról elérhetők legyenek az adatok, illetve beszerzi és felhasználja azokat. + +## ReFi a karbonpiacokon túl {#refi-beyond} + +Bár jelenleg nagy hangsúlyt a karbonpiacokra általánosságban, valamint a VCM transzferálásáról a DCM-re, ugyanakkor a regeneratív pénzügyek (ReFi) nem korlátozódnak erre a területre. Más környezeti eszközöket is létre lehet hozni és tokenizálni, hogy újabb negatív externáliákat is be lehessen árazni a jövő gazdasági rendszerének részeként. Emellett e gazdasági modell regeneratív aspektusát fel lehet használni más területeken is, mint a közjavak finanszírozása kvadratikus finanszírozási platformokon, amilyen a [Gitcoin](https://gitcoin.co/) is. Azok a szervezetek, melyek a nyitott részvétel és az erőforrások egyenlő elosztásának eszméjére épültek, lehetővé teszik, hogy az emberek nyílt forráskódú szoftverprojekteknek, valamint oktatási, környezeti és közösség által irányított projekteknek juttassanak pénzt. + +Azzal, hogy a tőkét átirányítják a kizsákmányoló gyakorlatokból a regeneratív kezdeményezésekbe, elindulhatnak olyan projektek és cégek, melyek szociális, környezeti és közösségi előnyöket adnak – és valószínűleg a hagyományos pénzügyi rendszerben nem jutnának pénzhez –, így gyorsan és könnyedén pozitív externáliákat hozhatnak létre a társadalom számára. A finanszírozás ezen modelljére való átállás lehetőséget ad a sokkal befogadóbb gazdasági rendszerek számára, melyekben mindenféle demográfiai jellemzővel bíró ember aktív résztvevő lehet, nem csak passzív szemlélő. A ReFi az Ethereum vízióját kínálja arra vonatkozólag, hogy miként lehet összehangoltan cselekedni a lét kihívásait illetően, mely az emberi fajt és a bolygó minden élőlényét érinti – egy új gazdasági paradigma alaprétege, mely befogadóbb és fenntarthatóbb jövőt teremt. + +## További cikkek a ReFi-ról + +- [A karbonvaluták áttekintése és helyük a gazdaságban](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) +- [A Jövő Minisztériuma, egy regény a karbonalapú valuta szerepéről a klímaváltozás elleni harcban](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) +- [Részletes jelentés az önkéntes karbonpiacok skálázását megcélzó munkacsoporttól (TSVCM)](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) +- [Kevin Owocki és Evan Miyazono CoinMarketCap glosszáriumbejegyzése a ReFi-ről](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/public/content/translations/hu/roadmap/beacon-chain/index.md b/public/content/translations/hu/roadmap/beacon-chain/index.md new file mode 100644 index 00000000000..30673310789 --- /dev/null +++ b/public/content/translations/hu/roadmap/beacon-chain/index.md @@ -0,0 +1,64 @@ +--- +title: A Beacon Chain +description: Tudj meg többet a beacon chainről - az Ethereum első nagy Eth2 fejlesztéséről. +lang: hu +template: upgrade +image: /upgrades/core.png +alt: +summaryPoint1: A beacon chain nem változtatja meg azt, ahogy az Ethereumot ma használjuk. +summaryPoint2: A hálózatot fogja koordinálni. +summaryPoint3: Bevezeti a proof-of-stake rendszert az Ethereum ökoszisztémába. +summaryPoint4: A technikai ütemtervekben "Fázis 0"-ként is ismerheted. +--- + + + A Beacon Chain december 1.-jén központi idő szerint délben indult el. További információért nézd meg az adatokat. Ha szeretnél segíteni a lánc érvényesítésében, akkor letétbe tudod helyezni az ETH-edet. + + +## Mit csinál a Beacon Chain? {#what-does-the-beacon-chain-do} + +A Beacon Chain fogja koordinálni vagy vezetni a [shardokból](/roadmap/danksharding/) és [stakerekből](/staking/) álló kiterjesztett hálózatot. De nem olyan lesz, mint jelenleg az [Ethereum főhálózat](/glossary/#mainnet). Nem fog tudni számlákat vagy okosszerződéseket kezelni. + +A Beacon Chain szerepe meg fog változni idővel, de egy olyan alapvető összetevője [ a biztonságos, fenntartható és skálázható Ethereumnak, amiért dolgozunk](/roadmap/vision/). + +## Beacon Chain tulajdonságok {#beacon-chain-features} + +### Letétbe helyezés bevezetése {#introducing-staking} + +A Beacon Chain bevezeti [proof-of-stake-et](/developers/docs/consensus-mechanisms/pos/) az Ethereum rendszerbe. Ez egy új módja annak, hogy elősegítsd az Ethereum biztonságát. Gondolj rá úgy, mint egy közjóra, ami egészségesebbé teszi az Ethereumot és közben még több ETH-et tudsz szerezni. A gyakorlatban ez úgy néz ki, hogy ETH-ot helyezel letétbe a validátor szoftver aktiválásához. Validátorként tranzakciókat fogsz feldolgozni és új blokkokat hozol létre a láncon. + +A letétbe helyezés és a validátorrá válás egyszerűbb, mint a [bányászat](/developers/docs/mining/) (ahogy jelenleg biztosítva van a hálózat). És remélhetőleg hosszútávon még biztonságosabbá teszi majd az Ethereumot. Minél több ember vesz részt a hálózatban, annál inkább decentralizáltabb és biztonságosabb lesz a támadásokkal szemben. + + +Ha érdekel a letétbe helyezés és szeretnél segíteni a Beacon Chain biztosításában, akkor tudj meg többet a letétbe helyezésről. + + +Ez a második Eth2 fejlesztésnél is fontos változás: [a shard láncoknál](/roadmap/danksharding/). + +### Shard láncok előkészítése {#setting-up-for-shard-chains} + +A shard láncok bevezetése lesz a második nagy Eth2 fejlesztés. Növelni fogják a hálózat kapacitását és a tranzakciós sebességet úgy, hogy 64 blokklánccal terjesztik ki a hálózatot. A Beacon Chain egy fontos első lépés a shard láncok bevezetésénél, mivel biztonságos működésükhöz a letétbe helyezés működése szükséges. + +Végsősoron a Beacon Chain lesz felelős azért, hogy véletlenszerűen kijelöljön letétbe helyezőket (stakereket) a shard láncok validálására. Ez kulcsfontosságú annak érdekében, hogy a letétbe helyezők ne fogjanak össze és ne tudják átvenni a hatalmat egy shard fölött. Nos, ez azt jelenti, hogy [kevesebb, mint 1 a billióhoz az esélye, hogy ez bekövetkezzen](https://medium.com/@chihchengliang/minimum-committee-size-explained-67047111fa20). + +## A fejlesztések közötti kapcsolat {#relationship-between-upgrades} + +Az Eth2 fejlesztések némileg összefüggnek. Foglaljuk össze tehát, hogy a Beacon Chain hogyan hat a többi fejlesztésre. + +### Főhálózat és a Beacon Chain {#mainnet-and-beacon-chain} + +A Beacon Chain eleinte különállóan fog létezni az Ethereum főhálózattól, melyet ma is használunk. De végül össze lesznek kapcsolva. A terv a főhálózat “dokkolása” a proof-of-stake rendszerhez, melyet a Beacon Chain vezérel és koordinál. + +A dokkolás + +### Shardok és a Beacon Chain {#shards-and-beacon-chain} + +A shard láncokat csak a proof-of-stake konszenzus mechnanizmussal lehet biztonságosan bevezetni az Ethereum ökoszisztémába. A Beacon Chain bevezeti a letétbe helyezést (staking) ezzel lekövezve a shard láncok bevezetéséhez szükséges utat. + +Shard láncok + + + +## Beacon Chain interakció {#interact-with-beacon-chain} + + diff --git a/public/content/translations/hu/roadmap/merge/index.md b/public/content/translations/hu/roadmap/merge/index.md new file mode 100644 index 00000000000..00246164471 --- /dev/null +++ b/public/content/translations/hu/roadmap/merge/index.md @@ -0,0 +1,48 @@ +--- +title: Főhálózat dokkolása az Eth2-vel +description: Tudj meg többet a dokkolásról - amikor a főhálózati Ethereum csatlakozik a Beacon Chain által koordinált proof-of-stake rendszerhez. +lang: hu +template: upgrade +image: /upgrades/merge.png +alt: +summaryPoint1: Végül a jelenlegi Ethereum főhálózat "dokkolni" fog a többi Eth2 fejlesztéssel együtt. +summaryPoint2: A dokkolás egyesíti az "Eth1" főhálózatot a Beacon Chainnel és a sharding rendszerrel. +summaryPoint3: Ez a proof-of-work végét jeleni majd az Ethereumot tekintve, és a teljes átmenetet a proof-of-stake-be. +summaryPoint4: Úgy is ismerheted, mint a Fázis 1.5 a technikai ütemtervek szerint. +--- + + + Ezt a fejlesztést a shard láncok eljövetele fogja követni. De ez lesz az a pillanat, amikor az Eth2 vízió teljesen megvalósul – nagyobb skálázhatóság, biztonság és fenntarthatóság valamint letétbe helyezés, mely a teljes hálózatot biztosítja. + + +## Mi az a dokkolás? {#what-is-the-docking} + +Fontos megjegyezni, hogy eredetileg a többi Eth2 fejlesztés a [főhálózattól](/glossary/#mainnet) - azaz a lánctól, amit ma is használunk - külön kerül bevezetésre. Az Ethereum főhálózat biztonságát továbbra is a [proof-of-work](/developers/docs/consensus-mechanisms/pow/) szolgáltatja majd, még akkor is amikor [a Beacon Chain](/roadmap/beacon-chain/) és a [shard láncok](/roadmap/danksharding/) párhuzamosan futnak majd a [proof-of-stake](/developers/docs/consensus-mechanisms/pos/) használatával. A dokkolás az, amikor ez a két rendszer egybeolvad. + +Képzeld el, hogy az Ethereum egy űrhajó, ami még nem teljesen áll készen egy csillagközi utazásra. A Beacon Chainnel és a shard láncokkal a közösség egy új hajtóművet és egy erősebb hajótestet épített. Ha eljön az idő, a meglévő hajó dokkol ezzel az új rendszerrel, eggyé válik vele és készen áll arra, hogy néhány fényév alatt meghódítsa az univerzumot. + +## A főhálózat dokkolása {#docking-mainnet} + +Amikor minden készen áll, az Ethereum főhálózat "bedokkol" a Beacon Chainnel, a saját shardjává válik, amely proof-of-stake-et használ [proof-of-work](/developers/docs/consensus-mechanisms/pow/) helyett. + +A főhálózat lehetővé teszi majd az okosszerződések futtatását a proof-of-stake rendszeren, valamint magával hozza a jelenlegi Ethereum állapotot és történetet, ezzel biztosítva, hogy az összes ETH tulajdonos és felhasználó számára elakadásmentes legyen az átállás. + +## A dokkolás után {#after-the-docking} + +Ez a proof-of-work végét és egy fenntarthatóbb, környezetbarátabb korszak kezdetét fogja jelenteni az Ethereum számára. Ettől a ponttól kezdve az Ethereum skálázható, biztonságos és fenntartható lesz, ahogy az az [Eth2 vízió](/roadmap/vision/) szerint körvonalazódott. + +## A fejlesztések közötti kapcsolat {#relationship-between-upgrades} + +Az Eth2 fejlesztések némileg összefüggnek. Foglaljuk össze tehát, hogy a dokkolás hogyan hat a többi fejlesztésre. + +### Dokkolás és a Beacon Chain {#docking-and-beacon-chain} + +Amint megtörtént a dokkolás, a letétbe helyezőket kijelölik az Ethereum főhálózat validálására. Csakúgy, mint a shard láncoknál. [A bányászat](/developers/docs/consensus-mechanisms/pow/mining/) így feleslegessé válik, tehát a bányászok az új proof-of-stake rendszerben valószínűleg letétbe helyezésbe fektetik majd, amit kerestek. + +A Beacon Chain + +### Dokkolás és shard láncok {#docking-and-shard-chains} + +Mivel a főhálózat egy sharddá válik, a shard láncok sikeres implementációja kritikus ezen fejlesztési lépés szempontjából. Valószínű, hogy az átmenet egy fontos szerepet fog játszani, hogy a közösség eldöntse szeretne-e egy második sharding fejlesztést. Ez a fejlesztés a többi shardot is a főhálózathoz hasonlóvá teszi: képesek lesznek tranzakciókat és okosszerződéseket feldolgozni, nem csak több adatot biztosítani. + +Shard láncok diff --git a/src/content/translations/hu/security/index.md b/public/content/translations/hu/security/index.md similarity index 100% rename from src/content/translations/hu/security/index.md rename to public/content/translations/hu/security/index.md diff --git a/public/content/translations/hu/smart-contracts/index.md b/public/content/translations/hu/smart-contracts/index.md new file mode 100644 index 00000000000..1560fba6018 --- /dev/null +++ b/public/content/translations/hu/smart-contracts/index.md @@ -0,0 +1,84 @@ +--- +title: Okosszerződések +description: Egy nem technikai bevezetés az okosszerződésekbe +lang: hu +--- + +# Bevezetés az okosszerződésekbe {#introduction-to-smart-contracts} + +Az okosszerződések az Ethereum alkalmazási rétegének alapvető építőkockái. Ezek olyan számítógépes programok, melyek a blokkláncon találhatók, feltételeket követve működnek (ha ez van, akkor ezt csinálom), és garantáltan a programkódja által definiált szabályok alapján végez műveleteket. E szabályokat nem lehet megváltoztatni, miután a szerződés életbe lépett. + +Az okosszerződés kifejezést Nick Szabo alkotta meg. 1994-ben írt egy cikket a [a koncepció lényegéről](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html), majd 1996-ban tovább taglalta, hogy [mire képes az okosszerződés](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). + +Szabo egy olyan digitális piacteret képzelt el, ahol automatikus, kriptográfiailag biztosított folyamatok lehetővé teszik tranzakciók és üzleti funkciók működését megbízott közvetítők nélkül. Az okosszerződések ezt a víziót valósítják meg az Ethereumon. + +## Bizalom a hagyományos szerződésekben {#trust-and-contracts} + +A hagyományos szerződéssel az a legnagyobb gond, hogy meg kell bízni a résztvevőkben, hogy végrehajtják a szerződés tartalmát. + +Következzen egy példa: + +Alice és Bob kerékpáron versenyeznek. Tegyük fel, Alice arra fogad Bobbal 10 $-ban, hogy ő maga fog nyerni. Bob magabiztos a saját nyerését illetően, ezért belemegy a fogadásba. Végül Alice sokkal hamarabb ér célba Bobhoz képest, egyértelműen ő a győztes. Bob azonban nem fizeti ki a fogadás összegét, mert szerinte Alice csalt. + +Ez az egyszerű példa a „nem okos” megegyezések problémáját illusztrálja. Még a megegyezés feltételei teljesülnek is (tehát Ön a verseny győztese), még mindig meg kell bíznia egy másik személyben, hogy teljesítse a megállapodást (azaz kifizesse a fogadás összegét). + +## Egy digitális ételautomata {#vending-machine} + +Az okosszerződésre egy egyszerű metafora lehet az ételautomata működése, melynél bizonyos beviteli értékek előre meghatározott eredménnyel járnak. + +- Ön kiválaszt egy terméket +- Az ételautomata kiírja az árat +- Ön kifizeti az árát +- Az ételautomata ellenőrzi, hogy a megfelelő összeget kapta meg +- Majd az automata kiadja a kért árut + +Az ételautomata csak az Ön által kért terméket adja oda, miután a feltételek teljesültek. Ha Ön nem választ ki terméket vagy nem dob be elég pénzt, akkor az automata nem adja ki a terméket. + +## Automatikus végrehajtás {#automation} + +Az okosszerződés legfontosabb előnye, hogy bizonyos feltételek fennállásakor egyértelműen végrehajt egy meghatározott programkódot. Nem kell várni az emberi beavatkozásra, hogy értelmezze vagy kitalálja az eredményt. Így nincs szükség megbízott közvetítőkre. + +Például írhat egy olyan okosszerződést, mely letétben tart pénzeszközt egy gyermek számára, melyet egy bizonyos dátum után kaphat meg. Ha hamarabb akarná megkapni, akkor az okosszerződés nem hajtaná azt végre. Vagy olyan okosszerződést is írhat, mely automatikusan biztosítja egy autó forgalmi engedélyének digitális verzióját, amint Ön kifizeti azt a kereskedőnek. + +## Előre meghatározott kimenetel {#predictability} + +A hagyományos szerződések nem egyértelműek, mert emberek értelmezik és hajtják végre azokat. Például két bíró teljesen másképpen is értelmezhet egy szerződést, mely eltérő döntésekhez és egyenlőtlen kimenetelhez vezethet. Az okosszerződések kizárják ezt a lehetőséget. Ehelyett az okosszerződések a szerződés kódjában megadott feltétek mentén pontosan végrehajtásra kerülnek. A pontosság azt is jelenti, hogy ugyanolyan körülmények között az adott okosszerződés ugyanazt az eredményt adja. + +## Nyilvános dokumentálás {#public-record} + +Az okosszerződéseket könnyedén lehet auditálni és követni. Mivel az Ethereum okosszerződései egy nyilvános blokkláncon találhatók, ezért bárki azonnal megnézheti az eszközök mozgását és a kapcsolódó információkat. Például Ön megnézheti, hogy valaki pénzt utalt az Ön címére. + +## Adatvédelem {#privacy-protection} + +Az okosszerződések védik az Ön adatait. Mivel az Ethereum egy olyan hálózat, ahol a tranzakciók nem közvetlen módon köthetők az identitáshoz (nyilvánosan egy egyedi kriptográfiai címhez tartoznak), így Ön is megőrizheti valódi kilétét mások előtt. + +## Látható feltételek {#visible-terms} + +Végül a hagyományos szerződéshez hasonlóan Ön ellenőrizheti az okosszerződés tartalmát, mielőtt aláírná azt (vagy valamilyen interakcióba lépne azzal). Az okosszerződés transzparens volta biztosítja, hogy bárki megvizsgálhatja annak részleteit. + +## Az okosszerződés alkalmazási területei {#use-cases} + +Az okosszerződések lényegében mindent végre tudnak hajtani, amit egy számítógépes program tud. + +Többek között képesek számításokat végezni, valutát létrehozni, adatot tárolni, NFT-ket kreálni (minting), üzeneteket küldeni és még ábrát vagy grafikont is tudnak készíteni. Következzen néhány népszerű példa a való életből: + +- [Stablecoin-ok](/stablecoins/) +- [Egyedi digitális eszközök létrehozása és szétosztása](/nft/) +- [Automatikus, nyílt valutaátváltás](/get-eth/#dex) +- [Decentralizált játékok](/dapps/?category=gaming) +- [Biztosítási szerződés, mely automatikus kifizetést alkalmaz](https://etherisc.com/) +- [Szabvány, melyet alapul véve az emberek egyéni, interoperábilis valutákat hoznak létre](/developers/docs/standards/tokens/) + +## Ön inkább vizuális típus? {#visual-learner} + +Nézze meg a videót, melyben a Finematics elmagyarázza az okosszerződések lényegét: + + + +## További olvasnivaló {#further-reading} + +- [Hogyan fogják az okosszerződések megváltoztatni a világot](https://www.youtube.com/watch?v=pA6CGuXEKtQ) +- [Okosszerződések: a blokklánc-technológia, mely leváltja az ügyvédeket](https://blockgeeks.com/guides/smart-contracts/) +- [Okosszerződések fejlesztőknek](/developers/docs/smart-contracts/) +- [Tanulja meg, hogyan kell okosszerződéseket írni](/developers/learning-tools/) +- [Ismerje meg Ethereumot – Mi az az okosszerződés?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/hu/social-networks/index.md b/public/content/translations/hu/social-networks/index.md new file mode 100644 index 00000000000..3cfd872ce2d --- /dev/null +++ b/public/content/translations/hu/social-networks/index.md @@ -0,0 +1,121 @@ +--- +title: Nem központosított közösségi hálózatok +description: A decentralizált közösségi hálózatok áttekintése az Ethereumon +lang: hu +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: /ethereum-learn.png +summaryPoint1: Blokkláncalapú platformok a közösségi kapcsolódás, tartalom-létrehozás és -terjesztés céljából. +summaryPoint2: A decentralizált közösségimédia-hálózatok megvédik a felhasználók privát adatait és növelik az adatbiztonságot. +summaryPoint3: A tokenek és NFT-k új lehetősége adnak a tartalom fizetőeszközzé alakításához. +--- + +A közösségi hálózatok komoly szerepet töltenek be a napi kommunikációban és kapcsolódásban. Ugyanakkor ezen platformok centralizált irányítása számos problémát teremtett: adatlopás, szerverleállás, kizárás a platformról, cenzúra és a magán jelleg megsértése csak néhány kompromisszum, amit a közösségi média gyakran elszenved. E problémák megoldása érdekében a fejlesztők az Ethereumon építenek közösségi hálózatokat. A decentralizált közösségi hálózatok a hagyományos platformok számtalan problémájára megoldást nyújtanak, ás javítják a felhasználói élményt is. + +## Mik azok a decentralizált közösségi hálózatok? {#what-are-decentralized-social-networks} + +A decentralizált közösségi hálózatok olyan blokkláncalapú platformok, melyeken a felhasználók kommunikálnak egymással, illetve tartalmat publikálnak és terjesztenek. Mivel ezek az alkalmazások a blokkláncon működnek, ezért képesek decentralizáltan üzemelni, ellenállnak a cenzúrának és a jogtalan kontrollnak. + +Számos decentralizált közösségi hálózat létezik az olyan közösségimédia-szolgáltatások alternatívájaként, mint a Facebook, LinkedIn, Twitter és Medium. Ugyanakkor a blokkláncon működtetett közösségi hálózatok olyan jellemzőkkel is bírnak, melyek a hagyományos platformok fölé helyezik őket. + +### Hogyan működnek a decentralizált közösségi hálózatok? {#decentralized-social-networks-overview} + +A decentralizált közösségi hálózatok valójában [decentralizált alkalmazások (dapp)](/dapps/), melyeket a blokkláncon létrehozott [okosszerződések](/developers/docs/smart-contracts/) működtetnek. A szerződés programkódja adja ezen alkalmazások hátterét és meghatározza azok üzleti logikáját. + +A hagyományos közösségimédia-platformok adatbázisokon alapulnak, melyek tárolják a felhasználói információkat, a programkódot és egyéb adatokat. Ez azonban bármilyen leállás esetén egy sebezhető pontot jelent és komoly kockázatot hordoz magában. Például előfordult már, hogy a Facebook szerverei [több órára leálltak](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact), ezzel elvágva a felhasználókat a platformtól. + +A decentralizált közösségi hálózatok egy peer-to-peer (P2P) hálózaton működnek, mely ezernyi csomópontot (node) tartalmaz szerte az egész világon. Ha néhány csomópont le is áll, a hálózat zavartalanul működik tovább, így az alkalmazásokat nem érintik a leállások és kimaradások. + +A decentralizált tárhelyek használatával, mint amilyen az [InterPlanetary File System (IPFS)](https://ipfs.io/), az Ethereumra épített decentralizált közösségi hálózatok képesek megvédeni a felhasználók adatait azok kihasználása és rosszindulatú felhasználása ellen. Senki sem tudja eladni a felhasználók személyes adatait a reklámcégeknek, és a hackerek sem tudják ellopni a bizalmas információkat. + +Számos blokkláncalapú közösségi platform rendelkezik saját tokenekkel, hogy a reklámbevétel helyett ezzel biztosítsa a pénzforrások létrehozását. A felhasználók megvehetik ezeket a tokeneket, hogy bizonyos funkciókat használhassanak, vásárolhassanak az alkalmazáson belül, vagy akár ezzel díjazzák a kedvenc tartalomkészítőiket. + +## A decentralizált közösségi hálózatok előnyei {#benefits} + +1. A decentralizált közösségi hálózatok ellenállnak a cenzúrának és bárki számára elérhetők. Tehát a felhasználókat nem lehet letiltani, kizárni a platformról vagy önkényesen korlátozni. + +2. A decentralizált közösségi hálózatok nyílt forráskódú elképzelésekre épülnek, az alkalmazások programkódját bárki megvizsgálhatja. A hagyományos közösségi médiára jellemző, nem átlátható algoritmusokat kizárva a blokkláncalapú közösségi hálózatok képesek összehangolni a felhasználók igényeit és a platform működtetőit. + +3. A decentralizált közösségi hálózatokban nincs szükség közvetítőre. A tartalomkészítők közvetlen tulajdonjoggal bírnak a tartalom felett, és közvetlenül kapcsolódnak a követőkkel, rajongókkal, vevőkkel és más résztvevőkkel, csupán egy okosszerződés van közöttük. + +4. Mivel a decentralizált alkalmazások (dapp) az Ethereum hálózatán működnek, melyet a csomópontok egy globális, peer-to-peer hálózata tart fenn, így a decentralizált közösségi hálózatok kevésbé vannak kitéve a szerverleállásnak vagy bármilyen kiesésnek. + +5. A decentralizált közösségi platformok egy fejlett bevételszerzési keretrendszert kínálnak a tartalomkészítőknek a nem helyettesíthető tokenek (NFT), az alkalmazáson belüli kriptofizetés és más eszközök révén. + +6. A decentralizált közösségi hálózatok magas fokú adatbiztonságot és anonimitást kínálnak a felhasználóknak. Például egy személy bejelentkezhet az Ethereumon alapuló közösségi hálózatra az ENS-profilja vagy a tárcája révén – anélkül, hogy bármilyen személyazonosításra alkalmas információt (PII) megosztana, mint a neve, e-mail-címe stb. + +7. A decentralizált közösségi hálózatok decentralizált adattároláson alapulnak, nem centralizált adatbázisokon, így jobban meg tudják védeni a felhasználók adatait. + +## A decentralizált közösségi hálózatok az Ethereumon {#ethereum-social-networks} + +Az Ethereum-hálózat lett a decentralizált közösségi média fejlesztőinek kedvelt helye, mivel népszerű tokenekkel (ERC-20/ERC-721) és masszív felhasználói bázissal rendelkezik. Néhány Ethereumon alapuló közösségi hálózat: + +### Peepeth {#peepeth} + +A [Peepeth](https://peepeth.com/) egy mikroblogoló, a Twitterhez hasonló platform. Az Ethereum blokkláncon működik, és IPFS-t használ a felhasználói adatok tárolására. + +A felhasználók rövid üzeneteket tudnak küldeni, amit „peep”-nek neveznek, és nem lehet törölni vagy módosítani azokat. Az alkalmazáson belül lehetséges borravalót gyűjteni vagy adni ether (ETH) formájában. + +### Mirror {#mirror} + +A [Mirror](https://mirror.xyz/) egy web3-alapú, decentralizált és a felhasználók által üzemeltetett íróplatform. A felhasználók ingyen olvashatnak és írhatnak azáltal, hogy a saját tárcáikkal kapcsolódnak. Emellett gyűjthetnek írásokat és feliratkozhatnak a kedvenc íróikra is. + +Az itt publikált írások állandóan elérhetők az Arweave révén, ami egy decentralizált tárhely, és gyűjthető [NFT (nem helyettesíthető token)](/nft/) készíthető belőlük, más néven szöveg NFT. A szöveg NFT-t az írók teljesen ingyen hozhatják létre, a gyűjtés pedig az Ethereumra épülő második blokkláncrétegen (L2) történik, így a tranzakciók olcsók, gyorsak és környezetbarátak. + +### MINDS {#minds} + +A [MINDS](https://www.minds.com/) az egyik legnépszerűbb decentralizált közösségi hálózat. A Facebookhoz hasonlóan működik, és milliónyi felhasználója van. + +A felhasználók a platform saját ERC-20 tokenjével $MIND fizetnek a dolgokért. A felhasználók szerezhetnek azáltal is $MIND tokent, hogy népszerű tartalmat publikálnak, hozzájárulnak az ökoszisztémához és ajánlják a platformot másoknak. + +## Web2 közösségi hálózatok az Ethereumon {#web2-social-networks-and-ethereum} + +Nem csak a [web3](/web3/) közösségi platformok használják a blokklánc-technológiát a közösségi médiához. Számos centralizált platform is integrálni szeretné az Ethereumot a saját infrastruktúrájába: + +### Reddit {#reddit} + +A Reddit olyan [közösségi pontokat](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users) használ, melyek [ERC-20 tokenek](/developers/docs/standards/tokens/erc-20/), és a felhasználók a minőségi tartalmak publikálására, illetve az online közösséghez (subreddit) való hozzájárulásra kapnak belőle. Ezeket a tokeneket a felhasználó egy subreddit fórumon belül be tudja váltani, hogy [különleges jogokat vagy bevételt szerezzen](https://www.reddit.com/community-points/). A Reddit az Arbitrummal működik együtt, amely egy olyan [második blokkláncréteg (L2)](/layer-2/), ami rollup segítségével teszi skálázhatóvá az Ethereum-tranzakciókat. + +A program már elérhető, az r/CryptoCurrency subreddit [a „Moons”-nak nevezett közösségi pontokkal üzemel](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). A hivatalos leírás szerint a Moons „a posztok készítőit, kommentálóit és a moderátorokat díjazza a subreddithez való hozzájárulásukért”. Mivel ezek a tokenek a blokkláncon vannak (a felhasználók tárcákba kapják azokat), ezért függetlenek a Reddittől, és nem lehet azokat elvenni. + +Miután a bétatesztelés lezárult a Rinkeby-teszthálózaton, a Reddit közösségi pontok elérhetővé válnak az [Arbitrum Nova](https://nova.arbitrum.io/) blokkláncon, ami a [melléklánc](/developers/docs/scaling/sidechains/) és az [optimista rollup](/developers/docs/scaling/optimistic-rollups/) jellemzőit kombinálja. A felhasználók nemcsak különleges funkciókra használhatják pontjaikat, hanem eladhatják azokat hagyományos valutáért is a tőzsdéken. Emellett az adott felhasználó közösségi pontjainak összege meghatározza, hogy a közösségen belül milyen mértékben vehetnek részt a döntésekben. + +### Twitter {#twitter} + +2021. januárjában elindult a Twitter Blue, amely [ támogatja az NFT-használatot](https://mashable.com/article/twitter-blue-nft-profile-picture), így a felhasználók hozzákapcsolhatják a tárcáikat és profilképként választhatnak onnan NFT-t. Ezt követően a közösségi média tulajdonos vállalata [bejelentette tervét](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web), hogy a jövőben decentralizált közösségi hálózatot hoz létre. + +### Instagram {#instagram} + +2022. májusában az [Instagram bejelentette, hogy támogatja az NFT-k használatát](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) az Ethereum- és a Polygon-hálózatokról. A felhasználók közvetlenül az Instagramra, az Ethereum-tárcájukhoz kapcsolódva posztolhatják az NFT-ket. + +## A decentralizált közösségi hálózatok használata {#use-decentralized-social-networks} + +- **[Status.im](https://status.im/)** – _A Status egy biztonságos üzenetküldő alkalmazás, mely nyílt forráskódú, peer-to-peer protokollt használ, és elejétől a végéig titkosítva van, hogy megvédje az üzeneteket._ +- **[Mirror.xyz](https://mirror.xyz/)** – _A Mirror egy decentralizált, felhasználók által működtetett publikáló platform az Ethereumon, hogy a felhasználók finanszírozást gyűjtsenek az ötleteiknek, bevételt kapjanak a tartalom után és értékes közösségeket építsenek._ +- **[Lens Protocol](https://lens.xyz/)** – _A Lens Protocol egy decentralizált közösségi gráf, ahol a tartalomkészítők tulajdonolják az általuk létrehozott tartalmat a decentralizált internet teljes hosszában._ +- **[Farcaster](https://farcaster.xyz/)** – _A Farcaster egy kellően decentralizált közösségi hálózat. Egy nyitott protokoll, amely több klienst is támogat, mint például az e-mail-funkció._ + +## További olvasnivaló {#further-reading} + +### Cikkek {#articles} + +- [A decentralizált közösségi média: útmutató a web3 közösségi alkalmazásokhoz](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _Coinbase Ventures_ +- [A közösségi hálózatok világa a következő nagy decentralizálási lehetőség](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Goertzel_ +- [A web3 megtartja ígéretét a decentralizált, közösség által működtetett közösségi hálózatokról](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ +- [A blokklánc közösségi média alkalmazásainak áttekintése](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ +- [Hogyan tudja a blokklánc megoldani a közösségi médiához kapcsolódó adatvédelmet](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Prableen Bajpai_ +- [A közösségi média hálózatok megérkeztek a blokkláncra](https://businesstechguides.co/what-are-decentralized-social-networks) — _Emmanuel Awosika_ +- [Elégséges decentralizáció a közösségi hálózatok számára](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Varun Srinivasan_ + +### Videók {#videos} + +- [A decentralizált közösségi média bemutatása](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ +- [DeSo a blokklánc decentralizálja a közösségi médiát](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ +- [A decentralizált közösségi média jövője – Balaji Srinivasan, Vitalik Buterin, Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ + +### Közösségek {#communities} + +- [Status Discord-szerver](https://discord.com/invite/3Exux7Y) +- [Mirror Discord-szerver](https://discord.com/invite/txuCHcE8wV) +- [r/CryptoCurrency subreddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/hu/staking/dvt/index.md b/public/content/translations/hu/staking/dvt/index.md similarity index 100% rename from src/content/translations/hu/staking/dvt/index.md rename to public/content/translations/hu/staking/dvt/index.md diff --git a/public/content/translations/hu/staking/pools/index.md b/public/content/translations/hu/staking/pools/index.md new file mode 100644 index 00000000000..07cb9dd72af --- /dev/null +++ b/public/content/translations/hu/staking/pools/index.md @@ -0,0 +1,85 @@ +--- +title: Pooled staking +description: Áttekintés a letéti alapok használatáról +lang: hu +template: staking +emoji: ":money_with_wings:" +image: ..//staking/leslie-pool.png +alt: Leslie, a rinocérosz a medencében fürdik. +sidebarDepth: 2 +summaryPoints: + - Helyezzen letétbe bármennyi ETH-t és szerezzen jutalmakat másokkal együtt + - Hagyja a nehézségeket és bízza a validátor működtetését harmadik félre + - Tartsa a letétbe helyezett összegnek megfelelő tokeneket a saját tárcájában +--- + +## Mik azok a letéti alapok (staking pool)? {#what-are-staking-pools} + +A letéti alap egy olyan kollaboratív megközelítés, mely lehetővé teszi, hogy sok kis összegű ETH révén elérjék a 32 ETH küszöbértéket, ahol már fel tudnak állítani validátort. A letéti alap nem a protokoll része, más megoldások épültek ki, hogy ezt az igényt kielégítsék. + +Néhány letéti alap okosszerződéseket használ, ahol a pénzeszközöket a szerződésbe helyezik letétbe, így bizalomigény nélkül kezeli és követi a letét alakulását, és egy tokent ad, mely a letét értékét képviseli. Más alapok nem használnak okosszerződést, hanem a láncon kívül közvetítenek. + +## Miért jó a letéti alap használata? {#why-stake-with-a-pool} + +A [bevezetés a letétbe helyezésbe](/staking/) során elhangzott előnyök mellett a letéti alapok számos haszonnal járnak. + + + + + + + + + +## Mit kell figyelembe venni {#what-to-consider} + +A letéti alap vagy a delegáción alapuló letétbe helyezés nem része az Ethereum-protokollnak. Ugyanakkor a felhasználók igénye mentén, hogy 32 ETH-nál kisebb összeget adjanak letétbe, egyre több megoldás épül ki. + +Minden egyes alapot és az általuk használt eszközöket vagy okosszerződéseket különböző csapatok fejlesztik, így mind rendelkezik előnyökkel és kockázatokkal. Az alap lehetővé teszi, hogy a felhasználó egy tokent kapjon, ami a letétbe helyezett ETH-t reprezentálja. A token azért hasznos, mert a felhasználó bármennyi ETH-t átválthat egy azonos összegű, jövedelmet generáló tokenre, ami a háttérben lévő ETH letétbe helyezési jutalmaiból ad bevételt (és fordítva) a decentralizált tőzsdéken, még akkor is, ha az aktuális ETH a konszenzusrétegen van letétben. Eszerint a jövedelmet generáló, letétbe helyezett ETH-termék és az eredeti, nyers ETH között gyors és könnyű oda-vissza váltás lehetséges, és nem csak 32 ETH többszöröse érhető el. + +Ugyanakkor ezek a letétbe helyezett ETH tokenek kartellszerű viselkedésre hajlamosítanak, amikor ebből nagyobb összegek kevés centralizált szervezet kontrollja alá kerülnek, ahelyett hogy számtalan egyén között oszlanának el. Ez cenzúrára vagy értéklefölözésre ad lehetőséget. A letétbe helyezés aranyszabálya az, hogy egyének futtatják a validátorokat a saját hardverjükön. + +[A letétbe helyezést képviselő tokenek további kockázatairól](https://notes.ethereum.org/@djrtwo/risks-of-lsd). + +Alább különböző jellemzők mentén mutatjuk be a jelentős erősségeket vagy gyengeségeket, melyekkel a listázott letéti alapok rendelkezhetnek. Ez alapján Ön is megértheti, hogy e jellemzőket hogyan határoztuk meg, és így könnyebben választhat a letéti alapokból. + + + +## Fedezze fel a letéti alapokat {#explore-staking-pools} + +Számos olyan opció érhető el, amely biztosan kielégíti minden igényét. A fenti jellemzőket használva megértheti az alábbi eszközökben rejlő lehetőségeket. + + + + + +Olyan szolgáltatást válasszon, amely komolyan veszi a [kliensek diverzitását](/developers/docs/nodes-and-clients/client-diversity/), mert ez egyszerre javítja a hálózat biztonságát, és csökkenti az Ön kockázatát. Azok a szolgáltatók, akik korlátozzák a többségi klienseket használatát, a következő jellemzők alapján szűrhetők ki: sokrétű végrehajtás és sokrétű konszenzus + +Hiányolja valamelyik letétbe helyezési eszközt? Ha a [terméklistázó szabályzat](/contributing/adding-staking-products/) alapján úgy véli, hogy egy adott eszköz illeszkedne ide, akkor jelezze felénk. + +## Gyakran ismételt kérdések {#faq} + + +A letétbe helyezők ERC-20 letéti tokeneket kapnak, melyek a letétbe adott ETH-t képviselik, megnövelve azt a jutalmakkal. A különféle alapok a letéti jutalmakat különböző módon adják át a felhasználóknak, a folyamat lényege ugyanakkor közös. + + + +Most azonnal! A Shanghai/Capella-hálózatfrissítés 2023. áprilisban végbement, mely elérhetővé tette a letétek visszavonását. A letéti alapokhoz tartozó validátorszámlák ki tudnak lépni a letétbe helyezésből és vissza tudják vonni az ETH-t a megadott visszavonási címükre. Ez lehetővé teszi, hogy visszavegye a letétrészt a mögöttes ETH-ért cserébe. Ellenőrizze, hogy az adott szolgáltató hogyan támogatja ezt a funkcionalitást. + +Alternatívaként a letéti alapok ERC-20 letéti tokeneket használnak, hogy a felhasználó kereskedni tudjon azokkal a nyitott piacon. Ezzel eladhatja a letéti helyzetét, visszavonva a letétet anélkül, hogy a letéti szerződésben lévő ETH bárhova is átkerülne. + +Bővebben a letétbe helyezés visszavonásáról + + + +Számos hasonló vonás van a letéti alapok opciói és a centralizált tőzsdék között, mivel kis összeggel is részt lehet venni, melyek együtt hoznak létre egy validátort. + +A centralizált tőzsdékhez képes számos letéti alap használ okosszerződést és/vagy letéti tokeneket, olyan ERC-20 tokeneket, melyeket a felhasználó a tárcájában tarthat, és bármikor vehet vagy adhat el azokból. Ez függetlenséget és biztonságot jelent, mivel a felhasználó kontrollálja a tokenjeit, de még mindig nem tudja irányítani a validátorklienst, ami az ő nevében készít tanúsítást a háttérben. + +Néhány letéti alap sokkal decentralizáltabb, amikor az általuk használt csomópontokról van szó. A hálózat egészséges állapota és decentralizációja érdekében a letétbe helyezők olyan letéti alapokat válasszanak, amelyek engedélymentes, decentralizált csomópont-operátorokkal működnek. + + +## További olvasnivaló {#further-reading} + +- [Letétbe helyezés a Rocket Poollal – Áttekintés](https://docs.rocketpool.net/guides/staking/overview.html) – _RocketPool docs_ +- [Letétbe helyezés az Ethereumon a Lidoval](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Lido help docs_ diff --git a/public/content/translations/hu/staking/saas/index.md b/public/content/translations/hu/staking/saas/index.md new file mode 100644 index 00000000000..38aea7bfe6f --- /dev/null +++ b/public/content/translations/hu/staking/saas/index.md @@ -0,0 +1,94 @@ +--- +title: Staking, mint szolgáltatás +description: Egy áttekintő a pooled ETH staking elkezdéséről +lang: hu +template: staking +emoji: ":money_with_wings:" +image: ..//staking/leslie-saas.png +alt: Leslie, a rinocérosz a felhőkön lebeg. +sidebarDepth: 2 +summaryPoints: + - Az Ön validátorkliensét harmadik fél működteti csomópontok kezelésével + - Kiváló lehetőség bárkinek, aki rendelkezik 32 ETH összeggel, de nem szívesen bajlódna a csomópont technikai komplexitásával + - A bizalomigénye kevesebb, a visszavonási kulcsok az Ön saját felügyelete alatt állnak +--- + +## Mi az a letétbe helyezés mint szolgáltatás? {#what-is-staking-as-a-service} + +A letétbe helyezés, mint szolgáltatás (SaaS) egy olyan lehetőség, amikor a felhasználó letétbe teszi a saját 32 ETH összegét, hogy validátort működtessen, de a csomópont üzemeltetését egy harmadik félre bízza. E folyamat során a felhasználót végigvezetik a kezdeti beállításokon, beleértve a kulcs létrehozását, a letét elhelyezését, majd az aláíró kulcsok feltöltését az operátornak. A szolgáltatás így a felhasználó nevében működteti a validátort, általában egy havi díjért cserébe. + +## Miért jó a letéti szolgáltatás használata? {#why-stake-with-a-service} + +Az Ethereum-protokoll eredendően nem támogatja a letétbe helyezés delegálását, így ezek a szolgáltatások képesek ellátni ezt az igényt. Ha Ön letétbe helyezne 32 ETH-t, de nem szeretne a hardveres részével foglalkozni, az SaaS lehetővé teszi, hogy ezt a részét átadja másnak, miközben részesül a blokkjutalmakból. + + + + + + + + + +## Mit kell figyelembe venni {#what-to-consider} + +Az SaaS szolgáltatók száma egyre növekszik, ugyanakkor mind saját előnnyel és kockázattal bír. Az önálló stakinghez képest ezek az opciók mind extra bizalmat igényelnek. Az SaaS opciók rendelkezhetnek olyan hozzáadott programkóddal, melybe az Ethereum-klienst csomagolják, ami nem nyilvános vagy auditálható. Emellett negatív hatást gyakorolnak a hálózat decentralizálására. A beállítások függvényében Ön talán nem is bír kontrollal a validátora felett – az operátor rosszhiszeműen is eljárhat az Ön ETH-ját használva fel. + +Alább különböző jellemzők mentén mutatjuk be a jelentős erősségeket vagy gyengeségeket, melyekkel a listázott SaaS szolgáltatók rendelkezhetnek. Ez alapján Ön is megértheti, hogy e jellemzőket hogyan határoztuk meg, és így könnyebben választhat a szolgáltatók közül. + + + +## Fedezze fel, hogy kik nyújtanak letétbe helyezési szolgáltatást {#saas-providers} + +Néhány elérhető SaaS-szolgáltatót soroltunk fel alább. A fenti jellemzőket használva megértheti az alábbi szolgáltatásokban rejlő lehetőségeket + + + +### SaaS-szolgáltatók + + + +Olyan szolgáltatót válasszon, aki támogatja a [kisebbségi klienseket](/developers/docs/nodes-and-clients/client-diversity/), mert ez egyszerre javítja a hálózat biztonságát, és csökkenti az Ön kockázatát. Azok a szolgáltatók, akik korlátozzák a többségi klienseket használatát, a következő jellemzők alapján szűrhetők ki: sokrétű végrehajtás és sokrétű konszenzus + +### Kulcsgenerátorok + + + +Javasolna olyan SaaS-szolgáltatót, akit nem lát felsorolva? Ha a [terméklistázó szabályzat](/contributing/adding-staking-products/) alapján úgy véli, hogy egy adott eszköz illeszkedne ide, akkor jelezze felénk. + +## Gyakran ismételt kérdések {#faq} + + +Minden szolgáltatónál más elrendezés lehetséges, de általában végigvezetik a felhasználót az aláíró kulcsok létrehozásán (minden 32 ETH esetén egy kulcs), és feltöltik ezeket a szolgáltatónak, hogy a felhasználó nevében validáljon. Az aláíró kulcsok magukban nem teszik lehetővé, hogy a pénzeszközöket visszavonják, átutalják vagy elköltsék. Ugyanakkor lehetőséget adnak arra, hogy a konszenzust elősegítsék szavazással, amit ha nem végeznek megfelelően, akkor az kisebb büntetést vagy súlyos büntetéssel egybekötött kizárást von maga után. + + + +Igen. Minden számla tartalmaz BLS aláírási kulcsokat és BLS visszavonási kulcsokat. Annak érdekében, hogy egy validátor tanúsítani tudja a lánc státuszát, részt vehessen a szinkronizációs bizottságokban és blokkot javasoljon, az aláíró kulcsokat elérhetővé kell tenni a validátorkliensben. Valamilyen formában az internethez kell kapcsolódnia, ezért ezeket „forró” kulcsoknak tekinthetjük (online elérhetők). A validátor csak így tud tanúsításokat készíteni, ezért biztonsági okokból az a kulcs külön áll, amelyikkel a pénzeszközöket lehet átutalni vagy visszavonni. + +A BLS visszavonási kulcsok arra valók, hogy egy egyszeri üzenetet írjanak alá, melyik végrehajtási számlára kerüljön a letéti jutalom és a visszavont pénzeszköz. Amint ez az üzenet érvénybe lép, a BLS visszavonási kulcsokra többé nincs szükség. A kulcsok helyett a megadott cím gyakorol kontrollt a visszavont eszközök felett. Még ha valaki más is kontrollálja az aláíró kulcsokat, a visszavonási cím biztonságban van a felhasználó offline tárhelyén (cold storage), ami minimalizálja a validátor-pénzeszközök elvesztését. + +A visszavonási adatok megadása szükséges ahhoz, hogy a visszavonás lehetséges legyen\*. Ehhez létre kell hozni a visszavonási kulcsokat a felhasználó mnemonikus kulcsmondata segítségével. + +Ezt a kulcsmondatot mindig tartsa biztonságban, különben nem lesz képes létrehozni a visszavonási kulcsokat, amikor szükség lenne azokra. + +\*Azoknak a letéteseknek, akik már megadták a visszavonási címüket a folyamat kezdetén, nem kell ezt beállítani. Ellenőrizze az SaaS-szolgáltatójával, hogy hogyan kell a validátort beállítani. + + + +A letétek visszavonása a Shanghai/Capella frissítéssel vált elérhetővé 2023. áprilisban. A letéteseknek meg kell adniuk egy visszavonási címet (ha nem adták meg azt a letét kezdetekor), és a jutalmak automatikusan kiküldésre kerülnek néhány naponta. + +A validátorok ki is léphetnek a funkciójukból, ami felszabadítja a fennálló ETH-összeget a visszavonáshoz. Azok a számlák, amelyek megadták a visszavonási címet és teljesítették a kilépési folyamatot, a teljes egyenleget megkapják az adott címre a következő validátor-ellenőrzésnél. + +Bővebben a letétbe helyezés visszavonásáról + + + +Az SaaS-szolgáltatóval a felhasználó másra bízza a csomópontok üzemeltetését. Ez magába foglalja a gyenge csomópont-teljesítmény kockázatát, mivel az nem a felhasználó irányítása alá esik. Ha a validátor súlyos büntetést kap (slashing), akkor a validátor egyenlegéből elvonnak és kizárják a validálásból. + +A büntetés végrehajtása után a megmaradt pénzeszközök a validátor visszavonási címére kerülnek. Ehhez szükség van egy visszavonási címre. Előfordulhat, hogy ezt a letétbe helyezéskor már megadta. Ha nem, akkor a validátor-visszavonási kulcsokkal lehet aláírni egy üzenetet, amely közli a visszavonási címet. A pénzeszközök zárolva maradnak addig, amíg a visszavonási cím nem elérhető. + +Kérdezze meg az SaaS-szolgáltatóját a lehetséges garanciákról vagy biztosításokról, illetve arról, hogyan lehet a visszavonási címet megadni. Ha Ön szeretné teljes mértékben kontrollálni a validátor-beállításokat, akkor ismerje meg az önálló letétbe helyezést. + + +## További olvasnivaló {#further-reading} + +- [A letétbe helyezési szolgáltatások értékelése](https://www.attestant.io/posts/evaluating-staking-services/) – _Jim McDonald 2020._ diff --git a/public/content/translations/hu/staking/solo/index.md b/public/content/translations/hu/staking/solo/index.md new file mode 100644 index 00000000000..341d1bbba30 --- /dev/null +++ b/public/content/translations/hu/staking/solo/index.md @@ -0,0 +1,203 @@ +--- +title: Önálló letétbe helyezés +description: Az önálló letétbe helyezés áttekintése +lang: hu +template: staking +emoji: ":money_with_wings:" +image: ..//staking/leslie-solo.png +alt: Leslie, a rinocérosz a saját számítógépes chipjén. +sidebarDepth: 2 +summaryPoints: + - Szerezzen maximális jutalmat közvetlenül a protokolltól azért, hogy a validátorát megfelelően működteti és az folyamatosan online + - Működtessen az otthonából hardvert és támogassa személyesen az Ethereum hálózatának biztonságát és decentralizálását + - Nem kell másban megbíznia, és az eszközeihez tartozó kulcsok mindig az Ön kontrollja alatt állnak +--- + +## Mi az az önálló letétbe helyezés? {#what-is-solo-staking} + +Az önálló letétbe helyezés (solo staking) során a felhasználó egy [Ethereum csomópontot működtet](/run-a-node/) az internethez csatlakozva, letétbe helyez 32 ETH-t, hogy aktiváljon egy [validátort](#faq), így közvetlenül részt tud venni a hálózat konszenzusfolyamatában. + +**Az önálló letétbe helyezés növeli az Ethereum hálózatának decentralizációját**, így az ellenállóbb lesz a cenzúrával és a támadásokkal szemben. A többi letétbe helyezési módszer nem feltétlen segíti a hálózatot ugyanilyen módon. Az önálló letétbe helyezés a legjobb letéti opció az Ethereum biztosítására. + +Az Ethereum-csomópontot egy végrehajtási réteg (EL) klienst és egy konszenzus réteg (CL) klienst tartalmaz. Ezek a kliensek olyan szoftverek, amelyek együtt dolgoznak egy érvényes aláírókulcs-készlettel együtt, hogy érvényesítsék a tranzakciókat és a blokkokat, tanúsítsák a lánc státuszát, aggregálják a tanúsítványokat és blokkokat javasoljanak. + +Az önálló letétbe helyezők azért felelnek, hogy a kliensek futásához szükséges hardvert működtetik. Azt javasoljuk, hogy erre egy dedikált gépet használjanak, melyet otthonról üzemeltetnek, mert ez rendkívül hasznos a hálózat egészsége szempontjából. + +Az önálló letétbe helyező közvetlenül a protokolltól kap jutalmakat azért, hogy a validátora megfelelően működik és online van. + +## Miért legyek önálló letétbe helyező? {#why-stake-solo} + +Az önálló letétbe helyezés több felelősséggel jár, de teljes kontrollt biztosít a pénzeszközök és a staking felállítás felett. + + + + + + + +## Megfontolások, mielőtt belevágna az önálló stakingbe {#considerations-before-staking-solo} + +Bármennyire is szeretnénk, hogy az önálló letétbe helyezés elérhető és kockázatmentes legyen mindenkinek, ez nem a valóság. Mielőtt belevágna, komoly gyakorlati megfontolásokkal kell szembenéznie. + + + +Saját csomópont működtetéséhez meg kell tanulni a választott szoftver használatát. El kell olvasni a rendelkezésre álló dokumentációt és ráhangolni a fejlesztői csapatok kommunikációs csatornáira. + +Minél többet tud a választott szoftverről és a proof-of-stake működéséről, annál kevésbé kockázatos a letétbe helyezés, illetve a felmerülő problémák kezelése a csomópont-operátor szerepében. + + + +A csomópont beállításához egy bizonyos szintű számítógépes gyakorlat szükséges, habár az új eszközök egyre inkább megkönnyítik ezt a feladatot is. A parancssoros felhasználói felület (command-line interface) ismerete hasznos, de nem elengedhetetlen. + +Alapvető hardverösszeállításra, illetve a javasolt minimális specifikáció megértésére van szükség. + + + +Ahogy a privát kulcs biztosítja az Ethereum-címet, úgy a validátorhoz is létre kell hozni kulcsokat. Tudnia kell, hogyan tartsa a kulcsmondatokat vagy privát kulcsokat biztos helyen.{' '} + +Ethereum biztonság és csalásmegelőzés + + + +A hardver néha leáll, a hálózati kapcsolat hibára fut, a kliensszoftvert néha frissíteni kell. A csomópont karbantartása elkerülhetetlen, ezzel foglalkozni kell. Muszáj naprakésznek lennie minden várható hálózati frissítésről vagy más kritikus kliensfrissítésről. + + + +A jutalmazás annak arányában történik, hogy a validátor mennyi időt van online és megfelelő módon végzi-e a tanúsítást. A leállás miatti büntetések annak függvényében vannak megállapítva, hogy ugyanakkor hány validátor volt még offline, ez azonban nem von maga után súlyos büntetést és kizárást (slashing). A sávszélesség is számít, mert a tanúsításért járó jutalmak csökkenek, ha azok nem érkeznek meg időben. A szükséges paraméterek változhatnak, de érdemes legalább 10 Mb/s fel- és letöltési sebességgel számolni. + + + +Az inaktív állapot miatti büntetéstől különbözik a súlyos büntetéssel egybekötött kizárás (slashing), ami rosszhiszemű vétségekért jár. Ha kisebbségi klienst használ és a kulcsokat csak egy gépre tölti fel, akkor a slashing kockázata minimális. Ettől függetlenül minden letétbe helyezőnek szembe kell néznie a slashing kockázatával. + +Bővebben a slashingről és a validátor életciklusáról + + + + + +## Hogyan működik {#how-it-works} + + + +Mialatt Ön aktív, ETH jutalmakat kap, melyeket rendszeresen elhelyeznek a visszavonási számlán. + +Bármikor kiléphet a validátor szerepéből, így nem kell online lennie, és leállnak a jutalmak. Ekkor a maradék egyenlege visszatér a visszavonási címre, melyet a felállításnál adott meg. + +[Bővebben a letétbe helyezés visszavonásáról](/staking/withdrawals/) + +## Induljon el a Staking Launchpad segítségével {#get-started-on-the-staking-launchpad} + +A Staking Launchpad egy nyílt forráskódú alkalmazás, ami segít a letétbe helyezés folyamatában. Végigvezeti Önt a szükséges lépéseken, mint a kliensek kiválasztása, a kulcsok létrehozása és az ETH letétbe helyezése a letéti szerződésbe. Egy ellenőrzőlistán is végigveheti, hogy minden a rendelkezésre áll, hogy biztonsággal működjön a validátora. + + + +## Mit kell figyelembe venni a csomópont- és kliensbeállító eszközöknél {#node-tool-considerations} + +Az önálló letétbe helyezést segítő eszközök és szolgáltatások száma egyre növekszik, de mindnél áll fent kockázat, és ugyanúgy mind előnyökkel is jár. + +Alább különböző jellemzők mentén mutatjuk be a jelentős erősségeket vagy gyengeségeket, melyekkel a listázott letéti eszközök rendelkezhetnek. Ez alapján Ön is megértheti, hogy e jellemzőket hogyan határoztuk meg, és így könnyebben választhat a szükséges eszközök közül. + + + +## Fedezze fel a csomópont- és kliensbeállító eszközöket {#node-and-client-tools} + +Számos olyan opció érhető el, amely biztosan kielégíti minden igényét. A fenti jellemzőket használva megértheti az alábbi eszközökben rejlő lehetőségeket. + + + +### Csomóponteszközök + + + +Olyan szolgáltatót válasszon, aki komolyan veszi a [kliensek diverzitását](/developers/docs/nodes-and-clients/client-diversity/), mert ez egyszerre javítja a hálózat biztonságát, és csökkenti az Ön kockázatát. Azok az eszközök, melyek a kisebbségi kliens beállítást támogatják, a többklienses jellemzővel vannak jelölve + +### Kulcsgenerátorok + +Ezek alternatív eszközök a [Staking Deposit CLI](https://github.com/ethereum/staking-deposit-cli/) mellett, hogy a kulcsok le legyenek generálva. + + + +Hiányolja valamelyik letétbe helyezési eszközt? Ha a [terméklistázó szabályzat](/contributing/adding-staking-products/) alapján úgy véli, hogy egy adott eszköz illeszkedne ide, akkor jelezze felénk. + +## Nézze meg az önálló letétbe helyezés útmutatóit {#staking-guides} + + + +## Gyakran ismételt kérdések {#faq} + +Ezek a leggyakrabban felmerülő kérdések a letétbe helyezés kapcsán, melyről érdemes Önnek is tudnia. + + + +A validátor egy virtuális entitás, ami az Ethereumon működik és a protokoll konszenzusfolyamatában vesz részt. A validátort az egyenleg, a nyilvános kulcs és más tulajdonságok jellemzik. A validátorkliens az a szoftver, ami a validátor nevében működik, tárolva és felhasználva annak privát kulcsát. Egy validátorkliens több kulcspárt is tárolhat, így több validátort is üzemelhet. + + + + +A validátorhoz tartozó kulcspár pontosan 32 ETH összeget igényel ahhoz, hogy aktívvá váljon. Ha a kulcsokhoz több ETH kerül letétbe, az nem növeli meg a jutalmak lehetőségét, mert a validátor érvényes egyenlege 32 ETH. Tehát a letétbe helyezés 32 ETH összegenként történik, melyekhez saját kulcs és egyenleg tartozik. + +Egy validátorhoz ne kössön le többet, mint 32 ETH. Ez nem hoz több nyereséget. A validátor-ellenőrzés során a 32 ETH feletti rész automatikusan átkerül a visszavonási címre, ha az be van állítva a validátorhoz. + +Ha az önálló letétbe helyezés túl nagy erőfeszítést igényelne Öntől, akkor nézze meg a letétbe helyezés, mint szolgáltatás opcióit, vagy ha kevesebb mint 32 ETH összegről van szó, akkor fontolja meg a letéti alapok szolgáltatást. + + + +Nem vezet súlyos büntetéshez és kizáráshoz (slashing) az, ha a validátor offline, de a hálózat állapota megfelelő. Kis mértékű inaktivitási büntetések várhatók, ha a validátor nem elérhető a tanúsításhoz egy adott korszakban (mely 6,4 perc hosszú), ez azonban különbözik a súlyos büntetéssel járó kizárástól (slashing). A kis büntetések kicsit kevesebbek, mint az a jutalom, amit a validátor a tanúsításért kapott volna, az elvesztett pénzt pedig vissza lehet nyerni ugyanannyi online töltött idővel. + +Az inaktivitási büntetés mértéke függ attól, hogy ugyanabban az időben mennyi validátor van offline. Ha a hálózat nagy része mind egyszerre lesz offline, akkor a büntetés sokkal nagyobb ezen validátorok esetében, mintha csak egy validátor lenne elérhetetlen. + +Szélsőséges esetben, ha a hálózat nem tud állapotot frissíteni, mert a validátorok harmada offline van, akkor ezek a felhasználók a kvadratikus inaktivitási elszivárgást szenvedik el, vagyis a validátorszámlákról exponenciálisan kiáramlik az ETH. Ezzel a rendszer végül képes helyrebillenteni magát azáltal, hogy az inaktív validátorok ETH-jét elégeti, amíg az egyenlegük 16 ETH lesz és ezzel automatikusan kilökődnek a validátorok közül. A megmaradó online validátorok végül teljesítik a több mint 2/3 arányt, kielégítve a túlnyomó többség elvét, hogy a lánc állapota megint frissítve legyen. + + + +Röviden, bár nem lehet garantálni, de a slahing kockázata szinte nulla, hogy ha jóhiszeműen jár el, kisebbségi klienst használ, az aláíró kulcsokat pedig csak egy gépen tartja. + +Néhány specifikus eset van, amikor a validátor súlyos büntetést kap és kilökik a hálózatból. A korábbi eseteknél kizárólag redundáns hardver volt beállítva, és az aláíró kulcsokat két különböző gépen tárolták egyszerre. Ez akaratlanul is dupla szavazást eredményezhet a kulcsokkal, ami súlyos vétség. + +Egy többségi kliens használatával (amit a hálózat 2/3 használ) is nő a slashing kockázata, hogyha a kliensben hiba áll fenn, és emiatt egy láncelágazás jön létre. Hibás elágazást okozhat, ami a lánc állapotaként rögzítésre kerül. Ahhoz, hogy visszatérjen a valódi lánc állapotához, egy „surround” szavazatot kell leadni egy véglegesített blokk visszaállításával. Ez is egy súlyos vétség, és elkerülhető a kisebbségi kliensek használatával. + +A kisebbségi kliensben lévő hiba nem fog végleges állapotot eredményezni, így nem vezet ahhoz, hogy két különböző állapotra szavazzanak helyenként (surround szavazat), és egyszerű inaktivitási büntetéssel jár, nem slashinggel. + + + + + +Az egyéni kliensek esetében kicsit különböző a teljesítmény, a felhasználói felület, mivel mindet különböző csapatok fejlesztik, különböző programozási nyelveken. Így nincsen „legjobb” kliens. Az összes működő kliens kiváló szoftver, melyek működési elve azonos, hogy szinkronizáljanak és kapcsolódjanak a blokklánchoz. + +Mivel az összes kliens ugyanazokat az alapvető funkcionalitásokat kínálja, így fontos, hogy Ön egy kisebbségi klienst válasszon, tehát nem azokat, amelyeket a validátorok többsége használ. Ez talán ellentmond a logikus gondolkodásnak, de a többségi vagy szupertöbbségi kliensek használata miatt megnő a slaghing kockázata, ha a kliensben valamilyen hiba van. Ezt a kockázatot jelentősen lecsökkenti egy kisebbségi kliens használata. + +Tudjon meg többet arról, hogy kliensdiverzitás miért kritikus fontosságú + + + +Habár a virtuális privát szerver (VPS) használható az otthoni hardver helyett, a validátorkliens fizikai elérhetősége és helye igenis számít. A centralizált felhőszolgáltatások, mint az Amazon Web Services vagy a Digital Ocean, lehetővé teszik, hogy nem kell hardvert venni és működtetni, de ez hatással van a hálózat centralizáltságára. + +Minél több validátorkliens működik ugyanazon a centralizált felhőszolgáltatón, annál veszélyesebbé válik a felhasználóknak. Ha ezek a szolgáltatók bármilyen esemény miatt elérhetetlenné válnak, legyen akár támadás, szabályozási kötelezettség, áram- vagy internetleállás, az összes validátorkliens ugyanakkor lesz offline. + +Az offline büntetések arányosak azzal, hogy hány validátor van még offline ugyanakkor. A VPS használata megnöveli az offline büntetés várható mértékét, a kvadratikus elszivárgás vagy akár a slashing kockázatát is, ha a kimaradás kellően nagy mértékű. A saját és a hálózat kockázatát minimalizálandó a felhasználó jobban jár, ha saját hardvert szerez és üzemeltet. + + + + +A Beacon-láncról való visszavonáshoz be kell állítani a visszavonási adatokat. + +Az új letétesek ezt megtették a kulcsgenerálás és a letétbe helyezés során. A meglévő letétesek, akik még nem állították ezt be, frissíthetik a kulcsaikat ezzel a funkcióval. + +Amint a visszavonási adatok be vannak állítva, a jutalmak (a 32 ETH-en felüli rész) rendszeresen és automatikusan átkerülnek a visszavonási címre. + +A teljes egyenleg visszavonásához végig kell menni a validátorkiléptetési folyamaton. + +Bővebben a letétbe helyezés visszavonásáról + + +## További olvasnivaló {#further-reading} + +- [Az Ethereum-kliens diverzitásának problémája](https://hackernoon.com/ethereums-client-diversity-problem) – _@emmanuelawosika 2022._ +- [A kliensdiverzitás támogatása](https://www.attestant.io/posts/helping-client-diversity/) – _Jim McDonald 2022._ +- [Kliensdiverzitás az Ethereum konszenzus rétegén](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) – _jmcook.eth 2022._ +- [Hogyan kell: Ethereum validátorhardver vásárlása](https://www.youtube.com/watch?v=C2wwu1IlhDc) – _EthStaker 2022._ +- [Lépésről lépésre: hogyan kell csatlakozni az Ethereum 2.0 teszthálózathoz](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) – _Butta_ +- [Eth2 Slashing elkerülési tippek](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) – _Raul Jordan 2020._ diff --git a/public/content/translations/hu/staking/withdrawals/index.md b/public/content/translations/hu/staking/withdrawals/index.md new file mode 100644 index 00000000000..1969e879fc8 --- /dev/null +++ b/public/content/translations/hu/staking/withdrawals/index.md @@ -0,0 +1,218 @@ +--- +title: A letétbe helyezés visszavonása +description: A letétvisszavonás működésének és a jutalmak megszerzésének áttekintése +lang: hu +template: staking +image: ..//staking/leslie-withdrawal.png +alt: Leslie, a rinocérosz a letétbe helyezésből származó jutalmaival +sidebarDepth: 2 +summaryPoints: + - A Shanghai/Capella frissítés lehetővé tette a letétek visszavonását az Ethereumon + - A validátor operátorainak meg kell adni ehhez egy visszavonási címet + - A jutalmakat néhány naponta automatikusan átkerülnek + - A validátorok, akik teljesen kiszállnak a letétből, a maradék egyenleget visszakapják +--- + + +A letétek visszavonását a 2023. április 12-i Shanghai/Capella frissítés tette lehetővé. Bővebben a Shanghai/Capella frissítésről + + +**A letétek visszavonása** azt jelenti, hogy a validátorszámla ETH-egyenlege, ami az Ethereum konszenzusrétegén található (Beacon-lánc), áthelyezésre kerül a végrehajtási rétegre, ahol fel lehet használni. + +**A jutalmak kifizetése** 32 ETH felett automatikusan és rendszeresen megtörténik az egyes validátorokhoz tartozó visszavonási címre, ahogy azt a felhasználó beállította. A felhasználó **teljesen kiszállhat a letétbe helyezésből**, felszabadítva a teljes validátoregyenleget. + +## A letétbe helyezésből eredő jutalmak {#staking-rewards} + +Az aktív validátorszámlákra a jutalmak kifizetése automatikusan megtörténik, és maximum 32 ETH egyenleg marad azokon. + +A 32 ETH feletti összeg nem adódik hozzá az alaphoz, nem növeli a validátor súlyát a hálózaton, így automatikusan visszavonásra kerül jutalomként néhány naponta. A visszavonási címet rögzíteni kell, de ezen kívül a validátor működtetőjének nincs több teendője. Ez a konszenzusrétegen zajlik, ezért nincs gáz/tranzakciós díj vonzata egyik lépésnél sem. + +### Hogyan jutottunk el idáig? {#how-did-we-get-here} + +Az elmúlt években az Ethereum számos hálózati fejlesztésen esett át, hogy a hálózatot az ETH biztosítsa, és ne az erőforrás-igényes bányászás (mining). A konszenzusban való részvétel az Ethereumon a letétbe helyezés (staking), mivel a tagok önként lekötötték az ETH-t, hogy a hálózatban részt tudjanak venni. A szabályokat követő felhasználók jutalmakat nyernek, a visszaélést pedig bünteti a rendszer. + +A letétbe helyezési szerződés létrehozásával (2020. november) néhány bátor Ethereum-úttörő önként zárolta a pénzeszközeit, hogy validátorokként működjenek – ezek olyan különleges számlák, melyek hivatalosan tanúsíthatnak és javasolhatnak blokkot a hálózat szabályait követve. + +A Shanghai/Capella frissítés előtt nem lehetett használni vagy elérni ezt a lekötött ETH-t. Most azonban automatikusan áthelyeződnek a jutalmak a kiválasztott számlára, és a lekötést is bármikor fel lehet oldani. + +### Hogyan tudok erre felkészülni? {#how-do-i-prepare} + + + +### Fontos figyelmeztetések {#important-notices} + +A visszavonási cím megadása szükséges ahhoz, hogy a validátorszámla egyenlegéből ETH visszavonás történjen. + + + Minden validátorszámlához egyszer, egyetlen visszavonási cím adható meg. Amint ezt a címet kiválasztották és elküldték a konszenzus rétegnek, nem lehet visszahívni vagy megváltoztatni. Ellenőrizze le a cím tulajdonosát és pontosságát, mielőtt elküldi azt. + + +Eközben a pénzeszközöket nem fenyegeti veszély, ha nem adja meg a címet, feltéve, hogy a mnemonikus/kulcsmondat biztonságban van offline, és nincs kitéve veszélynek. Amíg nem tudja megadni a visszavonási adatokat, addig az ETH egyszerűen a validátorszámlán marad. + +## A letétbe helyezés felbontása {#exiting-staking-entirely} + +A visszavonási számlára van szükség ahhoz, _bármilyen_ pénzeszközt ki lehessen utalni a validátorszámla egyenlegéből. + +Azoknak a felhasználóknak, akik teljesen ki akarnak lépni a letétbe helyezéből és a teljes egyenleget vissza akarják vonni, a validátorkulcsokkal alá kell írniuk és ki kell adniuk egy önként kiszállok üzenetet, ezzel elindul a lezárás folyamata. Ezt a validátorkliens végzi és a konszenzus csomópontjára küldi el, így nem kell hozzá gáz/díj. + +A kilépés változó ideig tart, attól függően, hogy hányan akarnak ugyanakkor kiszállni. Amint végbemegy, ez a számla már nem végez validátori feladatokat, nem jár neki ezért jutalom, és a kapcsolódó ETH nincs letétbe helyezve. Ekkora a számla teljesen „visszavonhatóként” lesz megjelölve. + +Ha a visszavonható jelölés megtörtént és a visszavonási adatok meg lettek adva, akkor nincs több teendő. A blokkot javaslók automatikusan és folyamatosan ellenőrzik, mondhatni söprik a számlákat a kilépő pénzeszközöket vizsgálva, így a számla egyenlege teljes mértékben átvezetésre kerül a következő söprésnél. + +## Mikortól elérhető a letétek visszavonása? {#when} + +A letétek visszavonása elérhető! A funkcionalitást a Shanghai/Capella frissítés tette elérhetővé 2023. április 12-én. + +Ennek következtében a korábban letétbe helyezett ETH-t vissza lehet vonni a normális Ethereum-számlákra. Ez lezárta a letétek likviditásának témáját, és az Ethereumot egy lépéssel közelebb vitte a céljához, ami egy fenntartható, skálázható, biztonságot, decentralizált ökoszisztéma. + +- [Bővebben az Ethereum történetéről](/history/) +- [Bővebben az Ethereum fejlesztési terveiről](/roadmap/) + +## Hogyan működik a visszavonási kifizetés? {#how-do-withdrawals-work} + +A validátorszámla státusza mondja meg, hogy egy validátor jogosult-e a visszavonásra vagy sem. Nincs szükség a felhasználó közreműködésére, hogy a számla visszavonásra kerül-e vagy sem – a teljes folyamat automatikusan üzemel a konszenzus réteg által, egy állandóan működő ciklusban. + +### Ön inkább vizuális típus? {#visual-learner} + +Nézze meg az Ethereum letétvisszavonásról szóló magyarázatát a Finematics-tól: + + + +### Validátor-ellenőrzés vagy söprés {#validator-sweeping} + +Amikor egy adott validátor be van ütemezve, hogy a következő blokkot ő fogja javasolni, akkor készítenie kell egy 16 tételből álló visszavonási listát. Kezdve a 0 validátorindexel, meghatározza, hogy az adott számla a protokoll szabályai szerint visszavonásra jogosult-e, és ha igen, akkor beteszi a listába. A validátorcsoport ott száll be, ahol az előző abbahagyta és a végtelenségig folytatja. + + +Képzeljen el egy analóg módon működő órát. Az óramutató egy irányba halad és sorban végigmegy minden számon, majd miután elérte az utolsó számot, visszaér a kezdőpontra.

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

+Az óramutató a következő validátorra mutat, hogy leellenőrizze azt visszavonás szempontjából. A 0-nál kezdi és végigmegy az összes számlán. Amikor eléri az utolsó validátort, akkor a ciklus újra elindul. +
+ +#### A számlák ellenőrzése visszavonási szempontból {#checking-an-account-for-withdrawals} + +Miközben a blokk javaslója a validátorokat ellenőrzi a lehetséges visszavonások miatt, minden validátornál néhány kérdéssel ellenőrzi, hogy kell-e visszavonást indítani, és mennyi ETH-t érint ez. + +1. **Van visszavonási cím megadva?** Ha nincs, akkor kihagyja a számlát, és nem lehet visszavonást kezdeményezni. +2. **A validátor kiszállt és visszavonható a számlája?** Ha a validátor kiszállt, és a számlája „visszavonhatóvá” vált, akkor egy teljes visszavonás történik. A teljes egyenlege átkerül a visszavonási címre. +3. **Az érvényes egyenleg 32 ETH?** Ha a számla rendelkezik visszavonási adatokkal, nem lépett ki a letétbe helyezésből, de jutalmak vannak a 32 ETH összegen túl, akkor egy részleges visszavonás indul, ami a 32 ETH feletti jutalmakat áthelyezi a visszavonási címre. + +Csak két döntés vagy cselekvés van, amit a validátor üzemeltetője meglép a validátor életciklusa során, és ezt a folyamatot közvetlenül befolyásolja: + +- A visszavonási adatok biztosítása, hogy bármit át lehessen vezetni +- A hálózatból való kilépés, ami egy teljes visszavonást indít el + +### Gáz/díjmentes {#gas-free} + +A letétek visszavonása anélkül zajlik, hogy a letétesnek tranzakciót kellene indítania, amiben adott mennyiségű ETH-t von ki. Ezért **nincs gáz/tranzakciós díj**, a visszavonások pedig nem versenyeznek, hogy bekerüljenek a végrehajtási réteg blokkjába. + +### Milyen gyakran kapom meg a letéti jutalmakat? {#how-soon} + +Egy blokkban maximum 16 visszavonást lehet végrehajtani. Ez alapján 115 200 validátor-visszavonást lehet egy nap alatt teljesíteni (ha minden slot eredményes). A visszavonásra nem jogosult validátárokat átugorják, ezért a teljes ellenőrzés kevesebb ideig tart. + +Ezt a kalkulációt kiterjesztve megbecsülhetjük, hogy egy adott számú visszavonást mennyi idő alatt lehet teljesíteni: + + + +| Visszavonások száma | Időszükséglet | +| :-----------------: | :-----------: | +| 400 000 | 3,5 nap | +| 500 000 | 4,3 nap | +| 600 000 | 5,2 nap | +| 700 000 | 6,1 nap | +| 800 000 | 7,0 nap | + + + +Ahogy látható, a feldolgozás lelassul, ahogy egyre több validátor van a hálózaton. A kihagyott slotok száma arányosan le tudja lassítani a folyamatot, de ez a lassabb verzióját mutatja a lehetséges kimenetnek. + +## Gyakran ismételt kérdések {#faq} + + +Nem, a visszavonási adatok megadása egyszeri, nem lehet változtatni azokon. + + + +A végrehajtási réteg visszavonási cím megadásával a validátor visszavonási adatai örökre megváltoztak. A korábbi adatok már nem működnek, az újak pedig a végrehajtási réteg számlájára mutatnak. + +A visszavonási cím lehet okosszerződés (melyet a programkódja irányít) vagy egy külső tulajdonú számla (EOA, melyet a privát kulcsa kontrollál). Ezek a számlák jelenleg nem tudnak üzenetet küldeni a konszenzusrétegnek, amely megváltoztatná a validátor hitelesítő adatait, ez a funkció pedig egy szükségtelen komplexitást adna a protokollhoz. + +Egy másik megoldás az adott validátorhoz tartozó visszavonási cím módosítására, ha a felhasználók okosszerződést választanak visszavonási címként, amely tudja kezelni a kulcsok rotálását, mint amilyen a Safe. Azok a felhasználók, akik a saját EOA számlájukra tették a pénzeszközöket, végezhetnek teljes kilépést, visszavonva az összes lekötött eszközt, majd újra letétbe helyezhetik az új hitelesítő adatokat használatával. + + + + +Ha Ön letéti alapokat vagy letéti tokeneket használ, ellenőrizze a szolgáltatójával, hogy hogyan kezelik a letétvisszavonást, mivel minden szolgáltatás másképp működik. + +Általánosságban a felhasználók szabadon visszavehetik a letétbe helyezett ETH-t vagy lecserélhetik a letéti szolgáltatójukat. Ha egy adott letéti alap túl nagy méretű lesz, akkor a pénzeszközöket ki lehet venni belőle és újra le lehet kötni egy kisebb szolgáltatóval. Ha pedig elég ETH gyűlt össze, akkor Önotthonról is végezhet letétbe helyezést. + + + + +Igen, ha a validátora megadta a visszavonási címet. Ezt egyszer kell megtenni, hogy a visszavonások teljesíthetők legyenek, utána a jutalmak automatikusan átkerülnek néhány naponta a validátorok ellenőrzésénél. + + + + +Nem, ha a validátor aktív a hálózaton, akkor a teljes visszavonás nem történik meg automatikusan. Az önkéntes kilépést manuálisan kell kezdeményezni. + +Amint a validátor végigvitte a kilépési folyamatot, a számlán pedig ott vannak a visszavonási adatok, akkor a maradék egyenleget átteszi a következő validátor-ellenőrzés. + + + + +A visszavonásokat úgy tervezték meg, hogy automatikusan minden olyan összeget áthelyezzenek, ami aktívan nem járul hozzá a letéthez. Ez érvényes a kilépő számlák teljes egyenlegére. + +Nem lehetséges manuálisan kérvényezni bizonyos mennyiségű ETH kivételét. + + + + +A validátor működtetők látogassanak el a Staking Launchpad Withdrawals oldalra, ahol a validátorok készítéséről további információkat találhatnak. Továbbá hogyan készüljenek fel, mi az események időzítése, pontosan hogyan működik a visszavonási funkció. + +Próbálja ki először a beállításait egy teszthálózaton, látogasson el a Goerli-teszthálózat Staking Launchpad oldalára. + + + + +Nem. Miután egy validátor kilépett, és a teljes egyenlegét kivette, az adott validátorra letétbe helyezett további összegek automatikusan átutalásra kerülnek a következő validátor-ellenőrzés során a visszavonási címre. Az ETH újbóli letétbe helyezéséhez egy új validátort kell aktiválni. + + +## További olvasnivaló {#further-reading} + +- [Staking Launchpad visszavonások](https://launchpad.ethereum.org/withdrawals) +- [EIP-4895: Beacon-lánc operációs műveletként intézi a visszavonásokat](https://eips.ethereum.org/EIPS/eip-4895) +- [Ethereum Cat Herders – Shanghai](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) +- [PEEPanEIP #94: A letétbe helyezett ETH visszavonása (tesztelés) – Potuz & Hsiao-Wei Wang](https://www.youtube.com/watch?v=G8UstwmGtyE) +- [PEEPanEIP#68: EIP-4895: Beacon-lánc operációs műveletként intézi a visszavonásokat – Alex Stokes](https://www.youtube.com/watch?v=CcL9RJBljUs) +- [A validátor valós egyenlegének megértése](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/hu/web3/index.md b/public/content/translations/hu/web3/index.md similarity index 100% rename from src/content/translations/hu/web3/index.md rename to public/content/translations/hu/web3/index.md diff --git a/public/content/translations/hu/whitepaper/index.md b/public/content/translations/hu/whitepaper/index.md new file mode 100644 index 00000000000..55c4c8960a0 --- /dev/null +++ b/public/content/translations/hu/whitepaper/index.md @@ -0,0 +1,501 @@ +--- +title: Ethereum fehérkönyv +description: Az Ethereum bemutató kiadványa, melyet 2013-ban adtak ki az indulása előtt. +lang: hu +sidebarDepth: 2 +--- + +# Ethereum fehérkönyv {#ethereum-whitepaper} + +_Ezt a bemutató kiadványt eredetileg 2013-ban adta ki Vitalik Buterin, az [Ethereum](/what-is-ethereum/) alapítója, a projekt 2015-ös indulása előtt. Fontos megjegyezni, hogy az Ethereum sok másik közösség által vezetett, nyílt forráskódú szoftver projekthez hasonlóan, a kezdeti elindulás óta fejlődött._ + +_Noha több éve íródott, fenntartjuk ezt a kiadványt, mert továbbra is hasznos referenciaként szolgál és pontos ábrázolást mutat az Ethereumról és annak jövőképéről. Ha többet szeretnél megtudni az Ethereum legutóbbi fejlesztéseiről és az általunk elvégzett protokoll változtatásokról, akkor ezt az [útmutatót](/learn/) ajánljuk._ + +## Az okosszerződések és decentralizált alkalmazás platformok következő generációja {#a-next-generation-smart-contract-and-decentralized-application-platform} + +Satoshi Nakamoto 2009-ben történő Bitcoin fejlesztését gyakran a pénz és a pénznem radikális fejleményének nevezték, ez az első példa egy olyan digitális eszközre, amelynek egyszerre nincs háttér vagy [belső értéke](http://bitcoinmagazine.com/8640/an-exploration-of-intrinsic-value-what-it-is-why-bitcoin-doesnt-have-it-and-why-bitcoin-does-have-it/), valamint nincs központi kibocsájtója vagy irányítója. A Bitcoin kísérlet másik - vitathatatlanul fontosabb - része azonban az alapjául szolgáló blokklánc technológia, mint az elosztott konszenzus eszköze, és a figyelem gyorsan kezd áttérni a Bitcoin ezen másik aspektusára. A blokklánc technológia gyakran idézett alternatív alkalmazásai közé tartozik az blokkláncon lévő digitális eszközök használata az egyedi valuták és pénzügyi eszközök reprezentálására ([colored coins](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit)), a mögöttes fizikai eszköz tulajdonjoga ([smart property](https://en.bitcoin.it/wiki/Smart_Property)), nem felcserélhető eszközök, mint a domén nevek ([Namecoin](http://namecoin.org)), vagy a komplexebb alkalmazások, melyek digitális javak közvetlen irányítását vonják magukkal egy tetszőleges szabályrendszert követő kód alapján ([smart contracts](http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/idea.html)) vagy akár blokklánc alapú [decentralizált autonóm szervezetek](http://bitcoinmagazine.com/7050/bootstrapping-a-decentralized-autonomous-corporation-part-i/) (DAO-k). Az Ethereum egy olyan beépített, teljesen kidolgozott Turing-teljes programozási nyelvvel rendelkező blokkláncot szeretne nyújtani, amely használható olyan "szerződések" létrehozására, amelyek tetszőleges állapotátmeneti funkciók kódolására használhatóak, lehetővé téve a felhasználók számára a fent leírt rendszerek bármelyikének létrehozását, valamint sok olyan más dolgot is, melyre még nem gondoltunk, egyszerűen a logika pár sornyi kódként való leírásával. + +## Bevezetés a Bitcoinba és a létező fogalmakba {#introduction-to-bitcoin-and-existing-concepts} + +### Előzmények {#history} + +A decentralizált digitális valuta, valamint az alternatív alkalmazások, például az ingatlan-nyilvántartások fogalma évtizedek óta létezik. Az 1980-as és 1990-es évek anonim e-cash protokolljai, melyek főleg a Chaum féle vakításként ismert kriptográfiai primitívre támaszkodtak, egy magas fokú adatvédelemmel rendelkező valutát kínáltak, de a protokolloknak többnyire nem sikerült elterjedniük, mivel egy centralizált közvetítőre támaszkodtak. 1998-ban Wei Dai [b-money-je](http://www.weidai.com/bmoney.txt) vált az első javaslattá, mely bemutatta a pénz létrehozásának számítási kirakósok megoldásával történő ötletét, valamint a decentralizált konszenzust, de a javaslat kevés részletet tartalmazott arról, hogy hogyan lehetne megvalósítani a decentralizált konszenzust a gyakorlatban. 2005-ben Hal Finney bemutatta az [újrafelhasználható munkabizonyítékokat](http://nakamotoinstitute.org/finney/rpow/), egy olyan rendszert, amely a b-pénzből származó ötleteket és Adam Back számítási szempontból nehéz Hashcash rejtvényeit használta fel a kriptovaluta koncepciójának megalkotására, de az ideálistól ez is elmaradt azáltal, hogy egy megbízható számítási backendre támaszkodott. Először 2009-ben került bevezetésre a gyakorlatban egy decentralizált valuta Satoshi Nakamoto által, amely egyesítette az alapként szolgáló már létező primitíveket amik a tulajdonjog publikus kulcs kriptográfiával történő kezelésére szolgáltak, egy konszenzus algoritmussal, mely az érmék tulajdonosainak számontartására szolgál és amit "munkabizonyítéknak" nevezünk. + +A proof-of-work mögötti mechanizmus egy áttörés volt, mivel egyszerre két problémára is megoldást nyújtott. Egyrészt egy olyan egyszerű és mérsékelten hatékony konszenzus algoritmust biztosított, amely lehetővé teszi a hálózat csomópontjainak, vagyis a résztvevő számítógépeknek (node-ok), hogy kollektíven egyetértsenek a Bitcoin főkönyvi állapotának kanonikus frissítéseiről. Másrészt egy olyan mechanizmust biztosított, amely szabad belépést tesz lehetővé abba a konszenzus folyamatba, mely megoldja annak a politikai problémának az eldöntését, hogy ki befolyásolja a konszenzust, emellett a Sybil-támadásokat is megelőzi. Ezt úgy teszi meg, hogy a részvétel formális akadályát - mint például egy adott listán egyedi entitásként való nyilvántartásba vétel követelményét - gazdasági akadályokkal helyettesíti: egy résztvevő csomópont súlya a konszenzusos szavazási folyamatban közvetlenül arányos azzal a számítási erővel, amivel a csomópont rendelkezik. Azóta javaslattétel született egy alternatív megközelítésre, amit _letétbizonyítéknak_ hívnak, mivel a hálózaton résztvevő számítógép, vagy csomópont (node) súlyozását a valuta letétbe helyezésének arányában számítja ki, nem pedig annak számítási kapacitása alapján; a két megközelítés relatív előnyeinek megvitatása meghaladja ennek a cikknek a kereteit, de meg kell jegyezni, hogy mindkét megközelítés felhasználható egy kriptovaluta alapjaként. + +Itt egy blog bejegyzés Vitalik Buterintől, az Ethereum alapítójától az [Ethereum előtörténetéről](https://vitalik.ca/general/2017/09/14/prehistory.html). [Itt](https://blog.ethereum.org/2016/02/09/cut-and-try-building-a-dream/) egy másik blog bejegyzés további történetekkel. + +### Bitcoin, mint egy állapot átmeneti rendszer {#bitcoin-as-a-state-transition-system} + +![Ethereum állapot átmenet](./ethereum-state-transition.png) + +Technikai szempontból egy kriptovaluta, például a Bitcoin főkönyve egy állapot átmeneti rendszernek tekinthető, ahol van egy "állapot", amely számon tartja az összes létező bitcoin tulajdonosi státuszát, és egy "állapot átmeneti függvény", ami az állapothoz egy tranzakció hozzáadásával egy új állapotot eredményez. Például egy szabályos banki rendszerben az állapot a vagyonmérlegnek felel meg, a tranzakció egy kérvény $X összeg átmozgatására A-ból B-be, az állapot átmeneti függvény pedig csökkenti A számlájának értékét $X összeggel, valamint növeli B számlájának értékét $X összeggel. Ha az A számla kevesebb összeggel rendelkezik mint $X, akkor az állapot átmeneti függvény egy hiba jelzést ad vissza. Tehát így definiálható formálisan: + + APPLY(S,TX) -> S' or ERROR + +A fentiekben leírt banki rendszerben: + + APPLY({ Alice: $50, Bob: $50 },"küld $20 Alice-tól Bob-nak") = { Alice: $30, Bob: $70 } + +De: + + APPLY({ Alice: $50, Bob: $50 },"küld $70 Alice-tól Bob-nak") = ERROR + +A Bitcoin "állapota" az összes érme együttvéve (műszaki nyelven "elköltetlen tranzakciós kimenetek" vagy UTXO), amelyek ki lettek bányászva és még nem lettek elköltve. Minden UTXO-nak van egy névértéke és egy tulajdonosa (melyet egy 20 bájtos cím határoz meg, mely lényegében egy kriptográfiai publikus kulcs[fn. 1](#notes)). Egy tranzakció egy vagy több bemenetet tartalmaz, és mindegyik bemenet tartalmaz egy hivatkozást egy meglévő UTXO-ra és egy kriptográfiai aláírást, amelyet a tulajdonos címéhez társított privát kulcs hoz létre, és egy vagy több kimenetet, ahol minden egyes kimenet egy új UTXO-t tartalmaz, amik aztán hozzáadódnak az állapothoz. + +Az állapot átmeneti függvény `APPLY(S,TX) -> S'` nagyjából a következő módon definiálható: + +1. Minden egyes bemenetre a `TX-ben`: + + - Ha a hivatkozott UTXO nincs benne az `S-ben`, hiba visszaadása. + - Ha a szolgáltatott aláírás nem egyezik az UTXO tulajdonosának aláírásával, hiba visszaadása. + +2. Ha az összes bemeneti UTXO egység összege kisebb, mint az összes kimeneti UTXO egység összege, hiba visszaadása. +3. `S'` visszaadása az összes bemeneti UTXO elvételével és az összes UTXO hozzáadásával. + +Az első lépés első fele megakadályozza, hogy a tranzakciók feladói nem létező érméket költsenek el, az első lépés második fele pedig megakadályozza, hogy a tranzakciók feladói mások érméit költsék el, a második lépés pedig az érték megőrzését hajtja végre. Ahhoz, hogy ezt fizetésnél használjuk, a protokoll a következő. Tegyük fel, hogy Alice 11,7 BTC-t szeretne Bob-nak átutalni. Először Alice megkeresi az általa birtokolt elérhető UTXO-k egy olyan halmazát, melynek összege legalább 11.7 BTC. A valóságban Alice nem fog pont 11.7 BTC-t találni; mondjuk, hogy a legkisebb, amit megtalált 6+4+2=12. Ezután elkészít egy tranzakciót ezzel a három bemenettel és két kimenettel. Az első kimenet 11.7 BTC lesz, aminek Bob címe lesz a tulajdonosa, a második kimenet pedig a maradék 0.3 BTC "visszajáró", melynek maga Alice a tulajdonosa. + +### Bányászat {#mining} + +![Ethereum blokkok](./ethereum-blocks.png) + +Ha hozzáférnénk egy megbízható, központosított szolgáltatáshoz, ezt a rendszert jelentéktelen lenne megvalósítani; mivel ugyanezt pontosan a leírtak szerint lehetne kódolni, egy központosított, azaz centralizált szerver merevlemezén tárolva az állapotot. Azonban a Bitcoinnal egy decentralizált pénz rendszert próbálunk építeni, így az állapot átmeneti rendszert egy konszenzus rendszerrel kell kombinálnunk, hogy biztosítsuk, hogy mindenki egyetért a tranzakciók sorrendje felett. A Bitcoin decentralizált konszenzus folyamata elvárja a hálózat résztvevőitől, hogy folyamatosan tranzakciókból álló csomagokat próbáljanak készíteni, melyeket '"blokkoknak" hívunk. A hálózat nagyjából egy blokkot szándékozik gyártani minden tizedik percben, ahol minden egyes blokk tartalmaz egy időbélyeget, egy nonce-t, egy hivatkozást az előző blokkra (vagyis hash-t), és az összes olyan tranzakciót tartalmazó listát, melyek az előző blokk után következtek. Idővel egy tartós, folyamatosan növekvő "blokklánc" jön létre, mely folyamatosan frissül, hogy a Bitcoin főkönyv legutóbbi állapotát reprezentálja. + +A blokkok érvényességét ellenőrző algoritmust az alábbi paradigma szerint lehet kifejezni: + +1. Ellenőrizni, hogy a blokk által hivatkozott előző blokk létezik és érvényes. +2. Ellenőrizni, hogy a blokk időbélyege nagyobb-e, mint az előző blokké[fn. 2](#notes) és kevesebb mint 2 óra telt el azóta +3. Ellenőrizni, hogy a blokk munkabizonyítéka érvényes-e. +4. Legyen `S[0]` az előző blokk után lévő állapot. +5. Legyen `TX` a blokk tranzakciós listája `n` tranzakcióval. Minden `i-re` `0...n-1-ig`, `S[i+1] = APPLY(S[i],TX[i])` Ha bármely lépés hibát ad vissza, kilépni és false értéket visszaadni. +6. True visszaadása, és `S[n]` regisztrálása az állapotként a blokk végén. + +Lényegében a blokkban szereplő minden tranzakciónak érvényes állapot átmenetet kell biztosítania a tranzakció lefutása előtti kanonikus állapotból egy új állapotba. Fontos megjegyezni, hogy az állapot semmilyen módon nincs belekódolva a blokkba; pusztán absztrakció, amelyre a hálózat érvényesítő résztvevőjének emlékeznie kell, és bármely blokkra (biztonságosan) csak akkor számítható ki, ha a kezdeti állapotból indulunk ki, és minden tranzakciót egymás után lefuttatunk minden blokkban. Továbbá meg kell jegyezni, hogy az is számít, hogy a bányász a tranzakciókat milyen sorrendben helyezte el a blokkban; ha van két olyan A és B tranzakció a blokkban, ahol B az A által létrehozott UTXO-t költi el, a blokk akkor lesz érvényes, ha A előbb van mint B, fordítva nem. + +A fenti listában szereplő érvényességi feltételek közül egyedül a "munkabizonyíték" szükségessége nem található meg más rendszereknél. A pontos feltétel pedig az, hogy minden blokk dupla-SHA256 hashének, melyet egy 256 bites számként kezelünk, kisebbnek kell lennie, mint egy dinamikusan beállított célérték, mely ennek az anyagnak a megírása közben 2187. Ennek a célja, hogy a blokk létrehozása számítási szempontból "nehéz" legyen, és hogy ezáltal megakadályozza a sybil-támadókat, hogy átalakítsák a teljes blokkláncot a saját érdekükben. Mivel az SHA256-ot úgy tervezték, hogy egy teljesen megjósolhatatlan álvéletlen (pszeudo-random) függvény legyen, így a blokk létrehozásának egyetlen módja a próbaszerencse (trial and error), vagyis ismételten növelni kell a nonce-t és figyelni, hogy az új hash megfelelő-e. + +A jelenlegi 2187-es cél esetében, a hálózatnak átlagosan \~269 próbálkozást kell tennie, mielőtt valaki egy érvényes blokkot találna; általánosságban a hálózat minden 2016 blokk után újrakalibrálja a célt azért, hogy a hálózat egy résztvevője átlagosan minden tizedik percben egy új blokkot hozzon létre. Azért, hogy a bányászok kompenzálva legyenek ezért a számítási munkáért, minden blokk bányászát megilleti, hogy egy olyan tranzakciót tegyen a blokkba, amiben jóváír magának 12.5 BTC-t a semmiből. Továbbá ha bármely tranzakciónak nagyobb bemeneti egysége van, mint kimeneti, akkor a különbség a bányászokhoz került, mint egy "tranzakciós díj". Tulajdonképpen ez a BTC kibocsátásának egyetlen módja; a kezdeti állapot egyáltalán nem tartalmazott érméket. + +Hogy jobban megértsük a bányászat célját, nézzük meg, hogy mi történik egy rosszindulatú támadás esetében. Mivel a Bitcoin mögötti kriptográfia közismerten biztonságos, a támadó a rendszer azon részét fogja célba venni, melyet nem véd közvetlenül kriptográfia: a tranzakciók sorrendjét. A támadó stratégiája egyszerű: + +1. 100 BTC elküldése egy kereskedőnek valamilyen termékért cserébe (ideálisan egy digitális termék, gyors "kiszállítással") +2. Megvárni amíg megérkezik a termék +3. Egy másik tranzakció létrehozása, amiben ugyanazt a 100 BTC-t küldi el magának +4. Meggyőzni a hálózatot, hogy a saját magának intézett tranzakció volt előbb. + +Amint az (1) lépés befejeződött, pár perc múlva valamelyik bányász beteszi a tranzakciót egy blokkba, mondjuk a 270-es számúba. Nagyjából egy órával később, ezután a blokk után öt új blokk kerül hozzáadásra a lánchoz, és minden egyes blokk közvetetten hivatkozik a tranzakcióra, így "megerősítve" azt. Ezen a ponton a kereskedő elfogadja a kifizetést véglegesítettként és kiszállítja a terméket; mivel feltételezzük, hogy ez egy digitális termék, a szállítás azonnali. Ekkor a támadó egy új tranzakciót hoz létre, amiben 100 BTC-t küld magának. Ha a támadó egyszerűen elküldené a tranzakciót a világba, nem kerülne feldolgozásra; mert a bányászok megpróbálják a futtatni az `APPLY(S,TX)` függvényt és észreveszik, hogy a `TX` egy olyan UTXO-t akar felhasználni, ami már nem létezik az "állapot" szerint. Ehelyett a támadó csinál egy blokklánc "elágazást" (fork) úgy, hogy a 270-es blokknak egy új verzióját kezdi el bányászni, ami ugyanarra a 269-es "szülő" blokkra épül, de a régi helyett egy új tranzakcióval. Mivel a blokk adata különböző, így újra kell csinálni a "prrof-of-work"-öt. Továbbá a támadó 270-es számú új blokk verziója egy különböző hash-sel rendelkezik, így az eredeti blokkok 271-től 275-ig nem "hivatkoznak" rá; így az eredeti lánc és a támadó új lánca teljesen különböző. Az a szabály, hogy az elágazásban a hosszabb blokkláncot kell igaznak tekinteni, így a törvényesen bányászók a 275-ös láncon fognak tovább dolgozni, míg a támadó egyedül dolgozik a 270-es láncon. Ahhoz, hogy a támadó saját blokkláncát tehesse a leghosszabbá, több számítási kapacitással kell rendelkeznie, mint a hálózat többi résztvevőjének együttvéve, hogy utolérhesse őket (innen ered az "51%-os támadás"). + +### Merkle fák {#merkle-trees} + +![SPV Bitcoin-ban](./spv-bitcoin.png) + +_Bal: elegendő a csomópontok egy kis számát prezentálni a Merkle fában, hogy bizonyítsuk egy ág érvényességét._ + +_Jobb: bármely kísérlet, mely a Merkle fa egy részének megváltoztatására irányul, végül következetlenséghez fog vezetni valahol a láncon._ + +A Bitcoin egyik fontos skálázhatósági tulajdonsága, hogy a blokk egy több szintes adatstruktúrában van tárolva. A blokk hash valójában csak a blokk fejléc hashe, ez megközelítőleg 200 bájt adatot jelent, mely tartalmazza az időbélyeget, a nonce-t, az előző blokk hashét és a Merkle fának nevezett adat struktúra gyökér hashét, mely a blokkban lévő összes tranzakciót tárolja. A Merkle fa egyfajta bináris fa, ami csomópontokból áll; jelentős számú levél csomópontból a fa alján, amik az alapul szolgáló adatokat tartalmazzák, egy sor középső csomópontból, ahol minden csomópont két gyerekének a hashe, és végül egy gyökér csomópontból, amely szintén két gyerekének a hashéből keletkezett, és a fa "tetejét" reprezentálja. A Merkle fa célja, hogy lehetővé tegye a blokkban lévő adatok feldarabolását: egy csomópont letöltheti csak a blokk fejlécet egy forrásból; a fának számára releváns kis részét pedig egy másik forrásból, és mégis biztos lehet az adat helyességében. Az ok amiért ez működik az a hashek felfelé terjedése: ha egy rosszindulatú felhasználó megpróbál betenni egy hamis tranzakciót a Merkle fa aljára, az változást indít el az eggyel feljebb lévő csomópontban, mely megváltoztatja az afelett lévő csomópontot, végül a gyökér csomópont is megváltozik, így ezzel a blokk hash is, ebből kifolyólag a protokoll egy teljesen másik blokként regisztrálja azt (szinte biztosan érvénytelen munkabizonyítékkal). + +A Merkle fa protokoll vitathatatlanul elengedhetetlen a hosszú távú fenntarthatósághoz. Egy "teljes csomópontnak" a Bitcoin hálózatban, az amelyik az összes blokk egészét tárolja és feldolgozza, körülbelül 15 Gb lemezterülettel kell rendelkeznie a Bitcoin hálózatban 2014 áprilisában, és ez havonta 1 Gb-tal nő. Jelenleg ezt csak bizonyos asztali számítógépek tudják megvalósítani, telefonok nem, és a jövőben csak vállalkozások és hobbisták lesznek képesek részt venni. Egy "egyszerűsített fizetési hitelesítésnek (SPV)" nevezett protokoll lehetővé teszi egy másik csomópont típus létezését, melyeket "könnyű csomópontoknak" hívunk, ezek a hálózati résztvevők csak a blokk fejléceket töltik le, hitelesítik a munkabizonyítékot a blokk fejléceken és csak a számukra releváns tranzakciókhoz tartozó "ágakat" töltik le. Ez lehetővé teszi a könnyű csomópontoknak, hogy erős biztonsági garanciával meghatározhassák bármelyik Bitcoin tranzakció állapotát és aktuális egyenlegét, miközben a teljes blokklánc csak nagyon kis részét töltik le. + +### Alternatív blokklánc alkalmazások {#alternative-blockchain-applications} + +A mögöttes blokklánc másfajta koncepciókra történő alkalmazásának ötlete szintén hosszú történelemmel bír. 1998-ban Nick Szabo kiadta a [tulajdonosi jogokkal rendelkező biztonságos tulajdonok](http://nakamotoinstitute.org/secure-property-titles/) koncepciójával foglalkozó kiadványt. Ez a dokumentum leírja, hogy az "újdonságok a replikált adatbázis-technológiában" miként tesznek lehetővé egy blokklánc-alapú rendszert, mely nyilvántartja, hogy ki milyen földterülettel rendelkezik, létrehozva ezzel egy kidolgozott keretrendszert, amely magában foglalja az olyan fogalmakat, mint a homesteading, a hátrányos birtoklás és a George féle föld adó. Abban az időben sajnos nem állt rendelkezésre hatékony replikált adatbázis-rendszer, ezért a protokollt a gyakorlatban soha nem valósították meg. 2009-től azonban a Bitcoin decentralizált konszenzusának kialakulása után számos alternatív alkalmazás kezdett gyorsan megjelenni. + +- **Namecoin** - a 2010-ben létrehozott [Namecoint](https://namecoin.org/) legjobban egy decentralizált név regisztrációs adatbázisként lehet leírni. Az olyan decentralizált protokollokban, mint a Tor, a Bitcoin és a BitMessage azért, hogy más emberek kölcsönhatásba léphessenek velük a fiókok azonosítására van szükség valamilyen módon, de az összes létező megoldásban az egyetlen elérhető azonosítótípus egy pszeudorandom hash, például `1LW79wp5ZBqaHW1jL5TCiBCrhQYtHagUWy`. Ideális esetben olyan számlanevet szeretnénk használni, mint a "george". A probléma azonban az, hogy ha egy személy létrehozhat egy "george" nevű fiókot, akkor valaki más is végig mehet ugyanezen a folyamaton a "george" regisztrálásához, és annak adhatja ki magát. Az egyetlen megoldás a first-to-file paradigma, ahol az első regisztrálónak sikerül, a másodiknak pedig meghiúsul - ez a probléma tökéletesen megfelel a Bitcoin konszenzusprotokoll számára. A Namecoin a legrégebbi és a legsikeresebb név regisztrációs rendszer implementáció, mely ezen ötleten alapszik. +- **Colored coins** - a [colored coinok](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit) célja egy olyan protokoll megtestesítése, mely lehetővé teszi az emberek számára, hogy saját digitális valutát készítsenek - vagy az egy egységgel rendelkező valuták triviális és fontos esetében, digitális tokeneket a Bitcoin blokkláncon. A colored coins protokollban egy új pénznemet "bocsát ki" valaki azáltal, hogy nyilvánosan hozzárendel egy színt egy adott Bitcoin UTXO-hoz, és a protokoll rekurzív módon meghatározza a többi UTXO színét annak az inputnak a színével, amelyet az őket létrehozó tranzakció költött (néhány speciális szabály vonatkozik a vegyes színű bemenetekre). Ez lehetővé teszi a felhasználók számára, hogy csak bizonyos színű UTXO-t tartalmazó pénztárcákat tartsanak fenn, és a szokásos bitcoinokhoz hasonlóan küldjék el őket, visszakeresve a blokkláncon, hogy meghatározzák a kapott UTXO-k színét. +- **Metacoins** - a metacoin mögött az az ötlet áll, hogy legyen egy olyan protokoll, amely a Bitcoinra épült, és a Bitcoin tranzakciókat használja metacoin tranzakciók tárolására, de más állapotátmeneti függvénnyel rendelkezik, ami az `APPLY'`. Mivel a metacoin protokoll nem tudja megakadályozni, hogy érvénytelen metacoin tranzakciók jelenjenek meg a Bitcoin blokkláncon, bekerült az a szabály, hogy ha az `APPLY'(S,TX)` hibaüzenetet ad vissza, a protokoll az `APPLY'(S,TX) = S` alapértelmezett értékre áll be. Ez egy egyszerű mechanizmust biztosít egy tetszőleges kriptovaluta protokoll létrehozására, potenciálisan fejlett funkciókkal, amelyek nem valósíthatók meg a Bitcoin belsejében, de a fejlesztési költségek alacsonyak, mivel a bányászat és a hálózatépítés bonyolultságait már a Bitcoin protokoll kezeli. A metacoinokat használták már néhány pénzügyi szerződés fajtánál, név regisztrációnál és decentralizált tőzsdék esetében. + +Így általánosságban két megközelítés van egy konszenzus protokoll fejlesztésére: egy független hálózat építése és egy protokoll fejlesztése a Bitcoinra. Az előbbi megközelítést, ami bár meglehetősen sikeres a Namecoinhoz hasonló alkalmazások esetében, nehéz implementálni; minden egyedi implementációnak bootstrapelni kell egy független blokkláncot, illetve kifejleszteni és letesztelni a szükséges állapot átmenetet és a hálózati kódot. Továbbá arra számítunk, hogy a decentralizált konszenzus technológiát használó alkalmazások a hatványtörvény szerinti eloszlást fogják követni, ahol az alkalmazások túlnyomó többsége túl kicsi lesz ahhoz, hogy indokolt legyen egy saját blokkláncot fenntartaniuk, és megjegyezzük, hogy a decentralizált alkalmazásoknak nagy osztályai léteznek, különösen a decentralizált autonóm szervezetek, melyeknek interakcióba kell lépniük egymással. + +Másfelől a Bitcoin alapú megközelítésnek az a hátulütője, hogy nem örökli a a Bitcoin egyszerűsített fizetési hitelesítési tulajdonságait. Az SPV működik a Bitcoin esetében, mivel felhasználja a blokklánc mélységet, mint érvényességi proxy; egy ponton, amint a tranzakció ősei eleget mennek vissza, biztonsággal állítható, hogy érvényes részei az állapotnak. Másfelől a blokklánc alapú meta protokollok nem kényszeríthetik a blokkláncot, hogy ne tartalmazza azokat a tranzakciókat, melyek nem érvényesek a saját protokolljuk kontextusában. Ezért egy teljesen biztonságos SPV meta-protokoll megvalósításnak vissza kell hivatkoznia a Bitcoin blokklánc elejéig annak megállapítására, hogy biztos-e a tranzakciók érvényessége. Jelenleg a Bitcoin alapú meta-protokollok összes "könnyű" implementációja egy megbízott szerverre támaszkodik az adatszolgáltatásra, mely vitathatóan egy meglehetősen szuboptimális eredmény különösen akkor, amikor a kriptovaluták elsődleges célja a bizalom szükségletének megszüntetése. + +### Szkriptelés {#scripting} + +Még valamilyen kiterjesztés nélkül is a Bitcoin protokoll valóban meg tudja könnyíteni az "okosszerződések" egy gyenge változatának koncepcióját. A Bitcoinban lévő UTXO-kat nem csak publikus kulcsok birtokolhatják, hanem bonyolultabb szkriptek is, melyeket egy egyszerű stack alapú programozási nyelvvel lehet kifejezni. Ebben a paradigmában az UTXO-t elköltő tranzakcióknak adatokat kell szolgáltatni a szkriptek kielégítésére. Valójában még az alapvető publikus kulcs tulajdonjog mechanizmus is egy szkripten keresztül valósul meg: a szkript egy elliptikus görbe aláírást használ bemenetként, megerősíti a tranzakció és az UTXO-t birtokló cím szerint és 1-et ad vissza, ha az érvényesítés sikeres ellenkező esetben 0-át. Más bonyolultabb szkriptek is léteznek további különböző felhasználási esetekre. Például létre lehet hozni egy olyan szkriptet, mely három privát kulcsból kettő aláírását igényli az érvényesítéshez ("multisig"), a vállalati számlák, biztonságos megtakarítási számlák és néhány kereskedői letét számára hasznos beállítás. A szkriptek felhasználhatók a számítási problémák megoldásáért járó jutalmak kifizetésére is, sőt össze lehet állítani egy olyan szkriptet, amely valami olyasmit mond, hogy "ez a Bitcoin UTXO a tiéd, ha tudsz egy SPV bizonyítékot nyújtani arra, hogy nekem küldtél egy ilyen címletű Dogecoin tranzakciót", mely lényegében lehetővé teszi a decentralizált kereszt-kriptovaluta váltást. + +Azonban a Bitcoinban implementált szkript nyelvnek számos fontos megkötése van: + +- **Turing-teljesség hiánya** - vagyis, bár van egy nagy számítási részhalmaz, amelyet a Bitcoin szkriptnyelv támogat, közel sem támogat mindent. A fő kategória a hiányzó ciklusok. Ennek az az oka, hogy elkerüljük a végtelen ciklusokat a tranzakció ellenőrzések során; elméletileg ez egy leküzdhetetlen akadály a szkript programozók számára, mivel bármely ciklus szimulálható úgy, hogy egyszerűen megismételjük több alkalommal a mögöttes kódot egy if utasítással, de ez nagyon kis hatékonyságú szkriptekhez vezet. Például egy alternatív elliptikus görbe aláírás algoritmus implementálása valószínűleg 256 ismételt szorzási kört igényelne, mely mindegyike egyenként szerepelne a kódban. +- **Értékvakság** - nincs olyan UTXO szkript, mely képes lenne szofisztikáltan irányítani a kiutalható mennyiséget. Például egy orákulum szerződés hatékony felhasználási esete egy hedging szerződés lehetne, ahova A és B $1000 értékű BTC-t tesz be és 30 nappal később a szkript elküld $1000 értékű BTC-t A részére a maradékot pedig B részére. Ez egy orákulumot igényelne, mely meghatározná 1 BTC értékét USD-ben, de még így is hatalmas előrelépés a bizalom és infrastrukturális követelmények szempontjából a teljesen központosított megoldásokhoz képest, melyek elérhetőek jelenleg. Azonban mivel az UTXO mindent vagy semmit elven működik, ennek az egyedüli módja, ha sok UTXO-t használunk különböző egységekkel (pl.: egy 2k UTXO minden k-ra egészen 30-ig) és az O eldönti, hogy melyik UTXO-t küldi A-nak és melyiket B-nek. +- **Az állapot hiánya** - a [Egy UTXO lehet elköltött vagy elköltetlen](https://bitcoin.org/en/glossary/unspent-transaction-output); nincs lehetőség többlépcsős szerződésekre vagy szkriptekre, amelyek minden más belső állapotot ezen túl tartana. Ez megnehezíti a többlépcsős opciós szerződések, decentralizált csereajánlatok vagy kétlépcsős kriptográfiai elköteleződési protokollok létrehozását (ami szükséges a biztonságos számítási kompenzációhoz). Ez azt is jelenti, hogy az UTXO csak egyszerű, egyszeri szerződések és nem bonyolultabb "állapottal rendelkező" szerződések, például decentralizált szervezetek létrehozására használható, és a metaprotokollok megvalósítását megnehezíti. A bináris állapot az értékvaksággal kombinálva azt is jelenti, hogy egy másik fontos alkalmazás, a kiutalási limitek beállítása, sem lehetséges. +- **Blockchain-vakság** - Az UTXO nem tud az olyan blokklánc adatokról, mint a nonce, az időbélyeg vagy az előző blokk hash. Ez súlyosan korlátozza a szerencsejátékokban és számos más kategóriában történő alkalmazásokat azáltal, hogy megfosztja a szkript nyelvet a véletlenszerűség potenciálisan értékes forrásától. + +Így meglátásunk szerint háromféleképpen lehet fejlett alkalmazásokat fejleszteni egy kriptovalutára: új blokklánc indítása, a Bitcoin szkripting használata és egy meta protokoll fejlesztése Bitcoinra. Egy új blokklánc indítása lehetővé teszi a korlátlan szabadságot a funkciókészlet építésében, de a fejlesztési idő, a bootstrapping és a biztonság árán. A szkriptek használata egyszerűen megvalósítható és szabványosítható, de nagyon korlátozott a képességeiben, és a meta protokollok, míg egyszerűek, nehezen skálázhatóak. Az Ethereummal egy olyan alternatív keretrendszert szeretnénk létrehozni, mely még jobban megkönnyíti a fejlesztést, valamint erősebb könnyű kliens tulajdonságokkal rendelkezik, egyúttal az alkalmazásoknak egy közös gazdasági környezetet és blokklánc biztonságot biztosít. + +## Ethereum {#ethereum} + +Az Ethereum célja egy alternatív protokoll létrehozása decentralizált alkalmazások fejlesztésére, különböző kompromisszumokkal, amelyről úgy hisszük, hogy nagyon hasznos lesz a decentralizált alkalmazások nagy részének, különös tekintettel az olyan esetekre, ahol fontos a gyors fejlesztési idő, a biztonság a kisméretű és ritkán használt alkalmazások számára, és a különböző alkalmazások közötti nagyon hatékony együttműködés. Az Ethereum ezt úgy éri el, hogy felépíti azt, ami lényegében a végső absztrakt alapréteg: egy blokkláncot beépített Turing-teljes programozási nyelvvel, mely lehetővé teszi bárki számára az okosszerződés írást és a decentralizált alkalmazás fejlesztést, ahol létrehozhatják a saját tetszőleges tulajdonjogi szabályaikat, tranzakció formátumukat és az állapot átmeneti függvényeket. A Namecoin lecsupaszított verziója két sornyi kódból megírható, a többi protokoll, mint például a valuták és az identitás rendszerek pedig kevesebb, mint húsz sorból. Okosszerződések, olyan kriptográfiai "dobozok", melyek értéket tartalmaznak és csak akkor nyílnak ki amikor bizonyos feltételek teljesülnek, szintén építhetőek a platformra sokkal nagyobb erővel, mint amit a Bitcoin szkriptelés kínál, a Turing-teljesség, érték-tudatosság, blokklánc-tudatosság és az "állapot" hozzáadott ereje miatt. + +### Filozófia {#philosophy} + +Az Ethereum mögötti elgondolás az alábbi elveket szándékozik követni: + +1. **Egyszerűség**: az Ethereum protokollnak a lehető legegyszerűbbnek kell lennie, még az adattárolás vagy az időhatékonyság rovására is.[fn. 3](#notes) Egy átlagos programozó ideális esetben képes a teljes részletes leírást követni és implementálni,[fn. 4](#notes) annak érdekében, hogy teljes mértékben kiaknázhassuk a kriptovaluta példátlan demokratizálási potenciálját, és tovább terjesszük az Ethereum mint mindenki számára nyitott protokoll elképzelését. Az olyan optimalizálásokat, melyek a komplexitás növelésével járnak, nem szabad használni, kivéve ha az optimalizálás jelentős előnnyel jár. +2. **Univerzalitás**: az Ethereum design filozófia egyik alapvetése, hogy az Ethereumnak nincsenek "jellemző vonásai".[fn. 5](#notes) Ehelyett az Ethereum egy olyan Turing-teljes szkript nyelvet szolgáltat, mellyel a programozó bármilyen okosszerződést vagy tranzakció típust felépíthet, melyek matematikailag definiálhatóak. Szeretnéd feltalálni a saját pénzügyi származékos termékedet? Az Ethereummal megteheted. Szeretnéd létrehozni a saját valutádat? Hozd létre egy Ethereum szerződéssel. Szeretnél egy teljeskörű Daemont vagy Skynetet felállítani? Lehet, hogy szükséged lesz pár ezer összekapcsolódó szerződésre és számíts rá, hogy bőkezűen kell majd őket táplálnod, de semmi nem állíthat meg a karnyújtásnyira lévő Ethereummal. +3. **Modularitás**: az Ethereum protokoll részeit annyira modulárissá és szétválaszthatóvá kell tervezni, amennyire csak lehetséges. A fejlesztés során az a célunk, hogy egy olyan programot hozzunk létre, amiben ha valahol egy kisebb protokoll módosítást viszünk végbe, az alkalmazási verem (stack) továbbra is működni fog további módosítás nélkül. Az olyan innovációkat, mint az Ethash (lásd [Sárga Könyv Függelék](https://ethereum.github.io/yellowpaper/paper.pdf#appendix.J) vagy [wiki szócikk](https://github.com/ethereum/wiki/wiki/Ethash)), a módosított Patricia fák ([Sárga Könyv](https://ethereum.github.io/yellowpaper/paper.pdf#appendix.D), [wiki](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-Patricia-Tree)) és az RLP ([YP](https://ethereum.github.io/yellowpaper/paper.pdf#appendix.B), [wiki](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-RLP)) különálló, funkció-teljes könyvtárként kell alkalmazni, és így is vannak alkalmazva. Ennek az az oka, hogy annak ellenére, hogy az Ethereumban használjuk őket, még ha az Ethereum nem is igényli bizonyos funkcióit, ezek a funkciók más protokollok számára is hasznosak lehetnek. Az Ethereum fejlesztést úgy kell maximálisan elvégezni, hogy a teljes kriptovaluta ökoszisztéma javát szolgálja, ne csak a sajátját. +4. **Agilitás**: az Ethereum protokoll részletei nincsenek kőbe vésve. Azonban rendkívül megfontoltak leszünk a magas szintű konstrukciók megváltoztatását illetően, mint például a [sharding ütemterv](https://ethresear.ch/t/sharding-phase-1-spec/1407/) esetében a végrehajtás absztrahálása csak az adatok konszenzusos elérhetőségével fog történni. A fejlesztési folyamat során történő későbbi számítási tesztek arra a felfedezésre vezethetnek, hogy bizonyos módosítások például a protokoll felépítésében vagy az Ethereum Virtuális Gépben (EVM) jelentős mértékben növelhetik a skálázhatóságot vagy a biztonságot. Ha találunk ilyen lehetőségeket, akkor ki fogjuk használni őket. +5. **Megkülönböztetés-mentesség** és **cenzúra-mentesség**: a protokoll nem kísérelheti meg bizonyos használati kategóriák aktív betiltását vagy megelőzését. A protokoll összes szabályozási mechanizmusát arra kell tervezni, hogy közvetlenül a károkozást szabályozza nem pedig a bizonyos nemkívánatos alkalmazásokat. Egy programozó akár egy végtelen ciklusos szkriptet is futtathat az Ethereumon, amíg hajlandó fizetni a számítási lépések tranzakciós díját. + +### Ethereum számlák {#ethereum-accounts} + +Az Ethereumban az állapotot "számláknak" nevezett objektumok alkotják, ahol minden egyes számla egy 20-bájtos címmel rendelkezik és az állapot átmenetet a számlák közötti közvetlen érték és információ átutalás végzi. Az Ethereum számlák négy mezőt tartalmaznak: + +- A **nonce**, egy számláló, mely biztosítja, hogy minden tranzakció csak egyszer kerül feldolgozásra +- A számla jelenlegi **ether egyenlege** +- A számla **szerződés kódja**, ha van +- A számla **tárhelye** (alapértelmezetten üres) + +Az "Ether" az Ethereum elsődleges belső kripto-üzemanyaga és a tranzakciós díj kifizetésére lehet használni. Általánosságban kétfajta számlatípus létezik: **külső tulajdonú számlák**, melyeket privát kulcsok irányítanak és **szerződéses számlák**, melyeket a szerződés kódjuk irányít. Az külső tulajdonú számlának nincsen kódja, és az adott személy üzenetet küldhet egy külső tulajdonú számláról egy tranzakció létrehozásával és aláírásával; a szerződéses számla esetében minden esetben, amikor a szerződéses számla egy üzenetet kap aktiválódik a kódja, ennek hatására lehetővé teszi a belső tárhely írását és olvasását, új üzenetek küldését vagy szerződés létrehozást. + +Fontos megjegyezni, hogy az Ethereumban a "szerződésekre" nem úgy kell tekinteni, mint amit „teljesíteni” vagy „betartani” kell; inkább "autonóm ügynökök", akik az Ethereum végrehajtási környezetében élnek, és mindig végrehajtanak egy adott kóddarabot, amikor "megböki" őket egy a üzenet vagy tranzakció, és közvetlen ellenőrzésük alatt tartják saját Ether egyenlegüket és saját kulcsérték-adatbázisukat, a tartós változók nyomon követésére. + +### Üzenetek és tranzakciók {#messages-and-transactions} + +A "tranzakció" kifejezést az Ethereumban egy aláírt adat csomagra használjuk, ami egy külső tulajdonú számláról érkező üzenetet tartalmaz. A tranzakció a következőket tartalmazza: + +- Az üzenet címzettje +- A küldőt azonosító aláírás +- Az Ether összeg, amit a küldő át akar utalni a címzettnek +- Egy opcionális adat mező +- A `STARTGAS` érték, ami a tranzakció végrehajtás számítási lépéseinek maximális számát jelenti +- A `GASPRICE` érték, ami a számítási lépésenkénti díjat jelenti, amit a feladó fizet + +Az első három olyan alap mező, ami minden kripto valutánál megtalálható. Az adatmezőnek alapértelmezés szerint nincs funkciója, de a virtuális gép rendelkezik egy opkóddal, amelyet a szerződés használhat az adatok elérésére; mint például, amikor egy szerződés domain regisztrációs szolgáltatásként működik a blokkláncon, akkor úgy értelmezheti a hozzá érkező adatot, hogy az két "mezőt" tartalmaz, az első mező a regisztrálandó domain, a második mező pedig az IP-cím, amelyre regisztrálni kell. A szerződés elolvassa ezeket az adatokat az üzenetből, és a megfelelő helyükre helyezi el őket az adattárban. + +The `STARTGAS` és `GASPRICE` mezők kritikusak az Ethereum szolgáltatás megtagadása elleni modelljében. A véletlen vagy rosszindulatú végtelen ciklusok vagy más számítási kódveszteség megelőzésének érdekében minden tranzakciónak korlátot kell szabnia arra vonatkozóan, hogy a kódfuttatás hány számítási lépést használhat. A számítás alapvető egysége a "gas"; általában egy számítási lépés 1 gas-ba kerül, de egyes műveletek magasabb gas mennyiségbe kerülnek, mert számítási szempontból drágábbak, vagy növelik az állapot részeként tárolandó adatok mennyiségét. Továbbá minden egyes tranzakciós adatban található byte után 5 gas díj is felszámításra kerül. A díjrendszer célja, hogy megkövetelje a támadótól, hogy minden általa felhasznált erőforrásért arányosan fizessen, beleértve a számítást, a sávszélességet és a tárhelyet is; ennélfogva minden olyan tranzakció esetében, amelynek eredményeként a hálózat ezeknek az erőforrásoknak bármelyikét nagyobb mennyiségben fogyasztja, az erőforrások növekedésével nagyjából arányos gas költséggel kell számolni. + +### Üzenetek {#messages} + +A szerződéseknek meg van a lehetőségük, hogy "üzeneteket" küldjenek más szerződéseknek. Az üzenetek olyan virtuális objektumok, amik soha nincsenek szerializálva és csak az Ethereum futtatási környezetben léteznek. Az üzenet a következőket tartalmazza: + +- Az üzenet küldője (magától értetődő) +- Az üzenet címzettje +- Az üzenettel küldendő Ether összege +- Egy opcionális adat mező +- A `STARTGAS` érték + +Lényegében az üzenet olyan mint a tranzakció, kivéve, hogy nem a külső szereplő által lett létre hozva, hanem a szerződés által. Üzenet akkor jön létre, amikor a kódot jelenleg végrehajtó szerződés végrehajtja a `CALL` opkódot, amely előállítja és vére hajtja az üzenetet. Úgy mint a tranzakció, az üzenet is a kódja futtatására vezeti a címzett számlát. Ezáltal a szerződéseknek is ugyanúgy lehet kapcsolatuk másik szerződésekkel, mint a külső szereplőknek. + +Megjegyzendő, hogy a tranzakciók vagy szerződések által kiszabott gas díj vonatkozik a teljes gas összegre, amit az a tranzakció és az összes alvégrehajtási folyamat felhasznált. Például, ha egy külső szereplő A küld egy tranzakciót B-nek 1000 gas-al, és B 600 gas-t fogyaszt, mielőtt üzenetet küldene C-nek, és C belső végrehajtása 300 gas-t fogyaszt, mielőtt visszatérne, akkor B további 100 gas-t költhet, mielőtt kifogyna a gas-ból. + +### Ethereum állapotátmenet függvény {#ethereum-state-transition-function} + +![Ether állapot átmenet](./ether-state-transition.png) + +Az Ethereum állapotátmenet függvény, `APPLY(S,TX) -> S'` a következőképpen írható le: + +1. Ellenőrizni, hogy a tranzakció jól formált-e (azaz megfelelő-e az értékek száma), az aláírás érvényes-e, és a nonce megegyezik-e a feladó számláján szereplő nonce-al. Ha nem, hiba vissza adása. +2. Kiszámítani a tranzakciós díjat a következőképpen `STARTGAS * GASPRICE`, és meghatározni a küldő címet az aláírásból. Levonni a díjat a küldő fél számla egyenlegéről és növelni a küldő fél nonce-át. Ha nincs elegendő egyenleg, hiba vissza adása. +3. Beállítani a `GAS = STARTGAS` kezdőértéket és bizonyos mennyiségű, bájtonkénti gas-t elvenni a tranzakció bájtjainak kifizetéséhez. +4. Átutalni a tranzakció értékét a küldő számlájáról a fogadó számlájára. Ha a fogadó számla még nem létezik, létrehozni azt. Ha a fogadó számla egy szerződés, futtatni a szerződés kódját, addig amíg a tranzakció teljesül, vagy ameddig a végrehajtás során elfogy a gas. +5. Ha az érték átutalás azért nem sikerült, mert a feladónak nem volt elegendő pénze, vagy a kódfuttatás során elfogyott a gas, akkor minden állapotváltozást visszavonni, kivéve a díjak kifizetését, és a díjakat a bányász számlájához hozzáadni. +6. Máskülönben az összes fennmaradó gas díjat visszatéríteni a feladónak, az elfogyasztott gas-ért fizetett díjakat pedig elküldeni a bányásznak. + +Például tegyük fel, hogy a szerződés kódja: + + if !self.storage[calldataload(0)]: + self.storage[calldataload(0)] = calldataload(32) + +Megjegyzendő, hogy a valóságban a szerződés alacsony szintű EVM programozási nyelven van írva; ez a példa az érthetőség kedvéért az egyik magas szintű programozási nyelven, a Serpent-en íródott, és le lehet fordítani EVM kódra. Tegyük fel, hogy a szerződés tárhelye az elején üres, és egy 10 Ether értékű tranzakciót elküldenek 2000 gas-al, 0,001 Ether gas árral, és 64 bájtnyi adattal, ahol 0-31 bájtok a `2` számot ábrázolják, és 32-63 bájtok pedig a karakterláncot ábrázolják `CHARLIE`.[fn. 6](#notes) Az állapot átmeneti függvény folyamata ebben az esetben a következőképpen alakul: + +1. Ellenőrizni, hogy a tranzakció érvényes és jól formált. +2. Ellenőrizni, hogy a tranzakció küldőjének van legalább 2000 \* 0,001 = 2 Ethere. Ha igen, levonni 2 Ethert a küldő számlájáról. +3. A gas = 2000 kezdőérték beállítása; feltételezve, hogy a tranzakció 170 bájt hosszú és a bájtdíj 5, levonni 850-et úgy, hogy 1150 gas maradjon. +4. További 10 Ether levonása a küldő számlájáról, és annak hozzáadása a szerződés számlájához. +5. A kód futtatása. Ebben az esetben ez egyszerű: a kód ellenőrzi, hogy a szerződés tárhelye a `2` indexen van használva, ha észreveszi, hogy nem, akkor a tárhely indexet beállítja `2` az értéket pedig `CHARLIE`. Tegyük fel, hogy ez 187 gas-ba kerül, így a fennmaradó gas összeg 1150 - 187 = 963 +6. 963 \ \* 0,001 = 0,963 Ether visszaadása a feladó fiókjába, és visszatérés az eredményül kapott állapothoz. + +Ha a tranzakció fogadó oldalán nem lenne szerződés, akkor a teljes tranzakciós díj egyszerűen megegyezne a megadott `GASPRICE` szorozva a tranzakció hosszával bájtokban, és a tranzakcióval együtt elküldött adatok lényegtelenek lennének. + +Megjegyzendő, hogy az üzenetek és a tranzakciók visszafordítása ugyanúgy működik: ha az üzenet végrehajtása során elfogy a gas, akkor az üzenet végrehajtása és az összes többi végrehajtás, amelyet az a végrehajtás váltott ki, visszaáll, de a szülő végrehajtásokat nem kell visszaállítani. Ez azt jelenti, hogy egy szerződés "biztonságosan" hívhat egy másik szerződést, mivel ha A G-gas-al hívja B-t, akkor A végrehajtása garantáltan legfeljebb G-gas veszteséget okoz. Végül megjegyzendő, hogy van egy műveleti kód (opcode) `CREATE`, ami létrehozza a szerződést; aminek a végrehajtási mechanikája általában hasonló a `CALL`-hoz, azaz híváshoz, azzal a kivétellel, hogy a végrehajtás kimenete határozza meg az újonnan létrehozott szerződés kódját. + +### Kód futtatás {#code-execution} + +Az Ethereum szerződésekben szereplő kód alacsony szintű, verem-alapú bájtkód nyelven íródott, amelyet "Ethereum virtuális gép kódnak" vagy "EVM kódnak" neveznek. A kód bájtok sorozatából áll, ahol mindegyik bájt egy műveletet képvisel. A kódfuttatás általában egy végtelen ciklus, ami a művelet ismételt végrehajtásából áll az aktuális programszámlálón (amely nullától kezdődik), majd eggyel növeli a programszámlálót addig, amíg el nem éri a kód végét, vagy egy hibát, illetve `STOP` vagy `RETURN` utasítást észlel. A műveletek háromféle helyhez férnek hozzá, ahol adatokat tárolhatnak: + +- A ** verem ** egy utolsóként be, elsőként ki (LIFO) tárolóhely, ahol az értékek rárakhatóak (push) és levehetőek (pop) a verem tetejéről +- ** Memória **, egy végtelenül bővíthető bájt tömb +- A szerződés hosszú távú ** tárhelye **, egy kulcs- és értéktároló. A veremtől és a memóriától eltérően, amelyek a számítás befejezése után nullázódnak, ez a tároló hosszú ideig fennmarad. + +A kód hozzáférhet a bejövő üzenet értékéhez, feladójához és adataihoz, valamint a blokk fejlécének adataihoz, és a kód egy bájt adattömböt is visszaadhat kimenetként. + +Az EVM kód formális végrehajtási modellje meglepően egyszerű. Amíg az Ethereum virtuális gép fut, teljes számítási állapota meghatározható a következő értéksorral: `(blokk_állapot, tranzakció, üzenet, kód, memória, verem, programszámláló(pc), gas)`, ahol a `blokk_állapot` az összes számlafiókot tartalmazó globális állapot, amely magában foglalja az egyenlegeket és a tárolóhelyeket. Minden egyes végrehajtási kör elején, az aktuális utasítás megtalálható a `kód`-nak (vagy 0 ha `pc >= len(code)`) a `programszámláló` -n meghatározott bájtja által, és minden utasításnak megvan a maga meghatározása abból a szempontból, hogy milyen hatással van az értéksorra. Például, `ADD` elvesz két elemet a veremből és visszarakja az összegüket, csökkenti a `gas` -t 1-el, és növeli a `programszámláló`-t 1-el, és a `SSTORE` leveszi a verem két legfelső elemét és behelyezi a második elemet a szerződés tárhelyébe az első elem által meghatározott indexen. Bár számos módja van az Ethereum virtuális gép végrehajtás optimalizálásának, futásidejű fordítással vagy másnéven röpfordítással, az Ethereum alapvető megvalósítása néhány száz kódsorban elvégezhető. + +### Blokklánc és bányászat {#blockchain-and-mining} + +![Ethereum alkalmazás blokkdiagram](./ethereum-apply-block-diagram.png) + +Az Ethereum blokklánc sok szempontból hasonló a Bitcoin blokklánchoz, bár vannak közöttük különbségek. A fő különbség az Ethereum és a Bitcoin között a blokklánc felépítésének tekintetében az, hogy a Bitcointól eltérően (amely csak a tranzakciós lista másolatát tartalmazza) az Ethereum blokkok tartalmazzák a tranzakciós lista és a legutóbbi állapot másolatát is. Emellett két másik érték, a blokk száma és a nehézsége is tárolva van a blokkban. Az Ethereum blokk érvényesítési algoritmusa a következő: + +1. Ellenőrizni, hogy az előző blokk, amire a blokk hivatkozik létezik és érvényes. +2. Ellenőrizni, hogy a blokk időbélyege nagyobb-e, mint az előző blokké és kevesebb mint 15 perc telt el azóta +3. Ellenőrizni, hogy a blokk száma, a nehézség, a tranzakció gyökér, a nagybácsi gyökér és a gas korlát (különféle alacsony szintű Ethereum-specifikus fogalmak) érvényesek-e. +4. Ellenőrizni, hogy a blokk proof-of-work-je érvényes-e. +5. Legyen `S[0]` az előző blokk után lévő állapot. +6. Legyen `TX` a blokk tranzakciós listája `n` tranzakcióval. Minden `i`-t a `0...n-1`, -ban beállítani `S[i+1] = APPLY(S[i],TX[i])`. Ha valamelyik alkalmazás hibát ad vissza, vagy a blokkban az eddig a pontig fogyasztott gáz összmennyisége túllépi a `GASLIMIT` értéket, hibát ad vissza. +7. Legyen az `S_FINAL` `S[n]`, de hozzáadva a bányásznak fizetett blokkjutalmat. +8. Ellenőrizd, hogy az `S_FINAL` állapot Merkle-fája azonos-e a blokk fejlécben megadott végleges állapottal. Ha igen, a blokk érvényes; ellenkező esetben nem az. + +A megközelítés első pillantásra nagyon hatékonytalannak tűnhet, mert minden blokkal a teljes állapotot kell tárolni, de a valóságban a hatékonyság a Bitcoinéhoz hasonló. Ennek az oka, hogy az állapot a fa struktúrájában tárolódik, és minden blokk után a fa csak egy kis részét kell megváltoztatni. Így általában két szomszédos blokk között a fa túlnyomó részének azonosnak kell lennie, ezért az adatokat egyszer kell tárolni és kétszer lehet rájuk hivatkozni mutatók (azaz részfák hash-jeinek) használatával. Ennek megvalósításához egy speciális "Patricia-fának" nevezett fát használnak, beleértve a Merkle-fa koncepciójának módosítását, amely lehetővé teszi a csomópontok hatékony beillesztését és törlését, nem csak megváltoztatását. Ezen túlmenően, mivel az összes állapotinformáció része az utolsó blokknak, nincs szükség a teljes blokklánc előzmények tárolására - egy stratégia, amely, ha alkalmazható lenne a Bitcoin-ra, 5-20-szoros megtakarítást eredményezne a térben. + +Gyakran feltett kérdés, hogy "hol" történik a szerződés kódjának végrehajtása, a fizikai hardver szempontjából. Erre egyszerű a válasz: a szerződés kódjának végrehajtási folyamata az állapotátmeneti függvény definíciójának része, amely a blokk érvényesítési algoritmus része, tehát ha egy tranzakciót hozzáadunk a `B` blokkhoz, akkor a tranzakció által létrehozott kód végrehajtását minden csomópont végrehajtja, most és a jövőben is, amelyek letöltik és érvényesítik a `B` blokkot. + +## Alkalmazások {#applications} + +Az Ethereumon általánosságban háromféle alkalmazás létezik. Az első kategória a pénzügyi alkalmazások, amelyek hatékonyabb módszereket kínálnak a felhasználóknak a pénzük kezelésére és szerződéskötésre. Ebbe beletartoznak a devizák, a derivatív pénzügyi eszközök, a fedezeti ügyletek, a takarék pénztárcák, végrendeletek, és végül akár teljes körű munkaszerződések egyes kategóriái. A második kategória a félig pénzügyi alkalmazások, amik kapcsolatosak a pénzzel, de a tevékenységeiknek van egy súlyos, nem pénzügyi oldala is; erre tökéletes példa az önérvényesítő jutalmak, a számítási problémák megoldásért. Végül vannak olyan alkalmazások, mint az online szavazás és a decentralizált irányítás, amelyek egyáltalán nem pénzügyi vonatkozásúak. + +### Token rendszerek {#token-systems} + +A blokkláncon való token vagyis zseton rendszereknek számos alkalmazása van, kezdve az olyan alvalutáktól, amik olyan eszközöket képviselnek, mint az USA Dollár vagy az arany, egészen a vállalati részvények, az okos tulajdont képviselő egyedi zsetonok, a biztonságos, hamisíthatatlan kuponok, és még olyan zseton rendszerekig is, amik semmilyen kapcsolatban nem állnak a hagyományos értékhez, csak a jutalmazás pontrendszereiként használják őket. A zseton rendszereket meglepően egyszerű módon létre lehet hozni az Ethereumon. Kulcsfontosságú megérteni azt, hogy a pénznem vagy a zseton rendszer alapvetően egy egy műveletből álló adatbázis: vonjon le X egységet A-ból, és adjon X egységet B-nek, azzal a feltétellel, hogy (1) A-nak a tranzakció előtt legalább X egysége volt és (2) a tranzakciót A jóváhagyta. A zseton rendszer megvalósításához mindössze annyi kell, hogy ezt a logikát beépítsék egy szerződésbe. + +Az alapkód a zsetonrendszer megvalósítására Serpent programnyelven a következőképpen néz ki: + + def send(to, value): + if self.storage[msg.sender] >= value: + self.storage[msg.sender] = self.storage[msg.sender] - value + self.storage[to] = self.storage[to] + value + +Ez lényegében a "bankrendszer" állapotátmeneti függvényének szó szerinti megvalósítását jelenti, amely ebben a dokumentumban fentebb már le lett írva. Néhány extra kódsort hozzá kell adni, hogy biztosítsuk a pénzegységek elosztásának kezdeti lépését, néhány másik szélsőséges esetben is, és ideális esetben egy függvényt is hozzáadunk, ami lehetővé teszi másik szerződéseknek, hogy lekérdezzék egy cím számlaegyenlegét. De ennyi az egész. Elméletileg a pénznemként működő Ethereum-alapú zsetonrendszerek tartalmazhatnak egy másik fontos jellemzőt, ami a Bitcoin-alapú blokkláncon található pénzeszközöknél hiányzik: a tranzakciós díjak közvetlen fizetése ugyanabban a pénznemben. Ez úgy lehetne megvalósítható, hogy a szerződés fenntartana egy Ether egyenleget, amelyből visszatérítené a feladónak a díjakra használt Ethert, és ezt az egyenleget úgy töltené fel, hogy összegyűjti a díjakra beszedett belső valutaegységeket, és egy folyamatosan futó aukción továbbértékesíti azokat. A felhasználóknak tehát Etherrel kellene "aktiválniuk" a számláikat, de onnantól, hogy az Ether ott van, újrafelhasználható, mert a szerződés minden alkalommal visszatérítené. + +### Pénzügyi derivatívák és stabil értékű valuták {#financial-derivatives-and-stable-value-currencies} + +A pénzügyi derivatívák az "intelligens szerződés" leggyakoribb alkalmazásai, és az egyik legegyszerűbben megvalósítható kóddal. A pénzügyi szerződések végrehajtása során az a fő kihívás, hogy többségük külső árfolyamra való hivatkozást igényel; például nagyon kívánatos alkalmazás egy olyan okos szerződés, amely fedezetet ad az Ether (vagy más kriptovaluta) árfolyamingadozására az amerikai dollárral szemben, de ehhez a szerződésnek tudnia kell az ETH / USD értékét. Ennek legegyszerűbb módja egy adott fél (pl. NASDAQ) által fenntartott "adatcsatorna" szerződés, amelynek célja, hogy az adott fél képes legyen a szerződés szükség szerinti frissítésére, és egy olyan felület biztosítása, amely lehetővé teszi más szerződések számára, hogy üzenetet küldjenek a szerződésnek, és választ kapjanak, ami tratalmazza az árat. + +Tekintettel erre a kritikus összetevőre, a fedezeti szerződés a következőképpen nézne ki: + +1. Megvárni, amíg az A fél berak 1000 Ethert. +2. Megvárni, amíg a B fél berak 1000 Ethert. +3. Az adatcsatorna szerződés lekérdezésén keresztül kiszámított 1000 Ether USD értékének rögzítése a tárolóhelyen, mondjuk, hogy ez $x. +4. 30 nap elteltével hagyni, hogy A vagy B "újraaktiválja" a szerződést úgy, hogy $x értékű Ethert küld (amelyet úgy számol ki, hogy újból lekérdezi az adatcsatorna szerződést az új árról) A-nak, a többit pedig B-nek. + +Egy ilyen szerződés jelentős potenciállal bírna a kriptokereskedelemben. Az egyik fő probléma, amire gyakran hivatkoznak a kriptovalutával kapcsolatban, hogy ingatag az árfolyama; bár sok felhasználó és kereskedő vágyik a kriptográfiai eszközök biztonságára és kényelmére, nem biztos, hogy szembe akar nézni azzal a lehetőséggel, hogy egyetlen nap alatt elveszítheti pénzeszközei értékének 23% -át. Eddig a leggyakrabban a kibocsátó által biztosított eszközöket javasolták; annak az elképzelésnek az alapján, hogy a kibocsátó létrehoz egy pénzeszközt, ahol joga van kibocsátani és visszavonni egységeket, és mindenkinek egy egységnyi pénzeszközt ad, aki (offline) cserébe ad neki egy meghatározott, egy egységnyi alapul szolgáló eszközt (pl. arany, USA Dollár). A kibocsátó ezután megígéri, hogy az alapul szolgáló eszköz egy egységét adja annak, aki visszaküldi a kripto eszköz egy egységét. Ez a mechanizmus lehetővé teszi minden nem kriptográfiai eszköz kriptográfiai eszközzé történő emelését, feltéve, hogy a kibocsátó megbízható. + +A gyakorlatban azonban a kibocsátók nem mindig megbízhatóak, és egyes esetekben a banki infrastruktúra túl gyenge vagy túl ellenséges ahhoz, hogy ilyen szolgáltatások létezzenek. A pénzügyi derivatívák alternatívát kínálnak. Itt ahelyett, hogy egyetlen kibocsátó biztosítaná az eszközök fedezetére szolgáló alaptőkét, a spekulánsok decentralizált piacon való fogadásai arról, hogy egy kriptográfiai referencia eszköz (pl. ETH) ára emelkedni fog-e játsszák azt a szerepet. A kibocsátóktól eltérően a spekulánsoknak nincs lehetőségük az ügylettel kapcsolatos kötelezettségük elmulasztására, mert a fedezeti szerződés letétben tartja pénzeszközeiket. Fontos megjegyezni, hogy ez a megközelítés nincs teljesen decentralizálva, mert még mindig megbízható forrásra van szükség az árjegyző szerepének betöltésére, bár már ez is vitathatatlanul hatalmas előrelépés az infrastruktúra-követelmények csökkentése szempontjából (ellentétben a kibocsátóval, az árfolyam-kiadáshoz nem szükséges licenc és valószínűleg a szólásszabadság kategóriájába sorolhatók), és a csalás lehetőségét is csökkenti. + +### Identitás és Hírnév Rendszerek {#identity-and-reputation-systems} + +A legkorábbi alternatív kriptovaluta, a, [Namecoin](http://namecoin.org/), egy Bitcoinhoz hasonló blokkláncot próbált meg használni egy névregisztrációs rendszer biztosításához, ahol a felhasználók a nevüket egy nyilvános adatbázisba regisztrálhatták több más adat mellett. A leggyakrabban idézett alkalmazási eset [DNS](https://wikipedia.org/wiki/Domain_Name_System) rendszerre, a domain nevek, például "bitcoin.org" (vagy a Namecoin esetében "bitcoin.bit") leképezése egy IP címre. Egyéb alkalmazási esetek például az e-mail autentikációk és a potenciálisan haladóbb reputációs rendszerek. Nézzünk egy alap szerződést, amely Namecoin-féle név regisztrációt biztosít az Ethereumon: + + def register(name, value): + if !self.storage[name]: + self.storage[name] = value + +A szerződés nagyon egyszerű; gyakorlatilag egy adatbázis az Ethereum hálózatban, amelyhez hozzá lehet adni, de nem lehet módosítani vagy törölni belőle. Bárki regisztrálhat nevet valamilyen értékkel, majd a regisztráció örökre megmarad. Egy kifonomultabb névregisztrációs szerződésben szerepelne egy "függvény kaluzula", amely engedné a többi szerződésnek a lekérdezést, valamint a név "tulajdonosának" (azaz az első regisztrálónak) egy mechanizmust, az adat módosítására vagy a tulajdonjog átadására. Bárki hozzáadhat reputációt és web-of-trust funkcionalitást a legfelső réteghez. + +### Decentralized fájltárhely {#decentralized-file-storage} + +Az elmúlt években számos népszerű online fájltárhely startup tűnt fel, amelyek közül az egyik legkiemelkedőbb a Dropbox, akik lehetővé teszik ügyfeleiknek, hogy a merevlemezük biztonsági mentését feltöltsék, majd a szolgáltatással tároltassák azt, majd a fehasználó havidíj ellenében férhet hozzá az adataihoz. Azonban ezen a ponton a fájltárhely piac relatív nem hatékony; ha megvizsgáljuk a különböző [meglévő megoldásokat](http://online-storage-service-review.toptenreviews.com/), láthatjuk, hogy különösen a "borzongások völgye", azaz a 20-200 GB szinten, ahol sem az ingyenes kvóták, sem a vállalati szintű kedvezmények nem jelennek meg, a mainstream fájltárolási költségek havi árszintje ott tart, hogy egy hónapért többet fizet az átlag felhasználó, mint egy teljes merevlemezért. Az Ethereum szerződések lehetővé teszik egy decentralizált fájl tárolási ökoszisztéma fejlesztését, ahol az egyes felhasználók kis mennyiségű pénzt kereshetnek azzal, hogy bérbeadják saját merevlemezüket és a használaton kívüli tárhelyüket, ezzel is lefelé hajtva a tárolás költségeit. + +Az ilyen eszközök kulcsfontosságú megerősítő eleme az általunk "decentralizált Dropbox szerződésnek" elnevezett megoldás. A szerződés a következő módon működik. Először a kívánt adatokat blokkokra bontjuk, adatvédelmi okokból ezeket titkosítjuk, majd egy Merkle-fát építünk belőle. Ezután létrehozunk egy szerződést azzal a szabállyal, hogy minden N blokkban a szerződés egy véletlen indexet választ ki a Merkle-fában (az előző blokk-hash segítségével a szerződés kódjából, véletlenszerűen), majd X ethert adunk az első entitásnak, hogy egy egyszerűsített fizetés hitelesítéssel lássa el a tranzakciót, például a blokk tulajdonjogát bizonyító elemmel az adott indexen a fában. Amikor egy felhasználó újra le szeretné tölteni a fájlt, egy mikrofizetési csatorna protokollt használhat (például 1 szabo 32 kilobyte adatért) a fájl lekérésére; a leginkább költséghatékony megközelítés az, amikor a fizető félnek csak a legvégén kell publikálnia a tranzakciót, ahelyett, hogy a tranzakciót egy kissé jövedelmezőbbre cserélné le ugyanazzal a nounce-al 32 kilobytonként. + +A protokoll egyik fontos jellemzője, hogy bár úgy tűnik, hogy valaki több véletlen csomópontot bíz meg azzal, hogy ne felejtse el a fájlt, a saját kockázatát a nullához közelire csökkentheti azzal, hogy a fájlt több részre bontja titkos megosztással, majd figyeli a szerződést, hogy lássa az egyes darabok továbbra is valamelyik csomópont birtokában vannak. Ha egy szerződés továbbra is fizet, akkor kriptográfiai bizonyíték van arra, hogy valaki továbbra is tárolja a fájlt. + +### Decentralizált Autonóm Szervezetek {#decentralized-autonomous-organizations} + +A "decentralizált autonóm szervezetek" általános koncepciója, hogy egy virtuális entitásnak, amely adott számú taggal vagy "részvényessel" rendelkezik, akár esetleg 67%-os többséggel, felhatalmazása lehet arra, hogy elköltse az entitás pénzeszközeit és módosítsa a kódját. A tagok együttesen dönthetik el, hogy a szervezet hogyan allokálja a pénzeszközöket. Egy DAO pénzeszközeinek allokálásának módszerei a pénzadománytól, fizetéseken át akár még egzotikusabb mechanizmusokig terjedhet, mint például egy belső valuta a munka elismerésére. Ez gyakorlatilag replikálja a hagyományos vállalatok vagy non-profit entitások jogi csapdáit, de a végrehajtásra kizárólag kriptográfiai blokklánc technológiát használ. Eddig a DAO-kkal kapcsolatban leginkább a kapitalista "decentralizált autonóm vállalat" (DAC) modelljéről beszéltünk, ahol a részvényesek osztalékot vagy kereskedhető részvényeket kapnak; azonban van egy alternatív, talán a "decentralizált autonóm közösség" fogalommal leírható értelmezés is, ahol a tagok egyenlő mértékben vesznek részt a döntéshozatalban, és a tagok 67%-ának beleegyezése szükséges ahhoz, hogy felvegyenek egy új tagot, vagy eltávolítsanak egy tagot. Azt a követelményt, hogy egy személy csak egy tagsággal rendelkezhet a csoportnak kollektíven kell érvényre juttatnia. + +A DAO-k kódolásának általános leírása a következő. A legegyszerűbb megoldás egy önmagát módosító kódelem alkalmazása, amely változik, ha a tagok kétharmada egyetért egy módosítással. Bár a kód elméletileg állandó, bárki megkerülheti, és de-facto megváltoztathatja, ha a kód darabjait külön szerződésekbe foglalja, majd a módosítható tárhelyen menti el azt a címet, amit a szerződéseknek meg kell hívni. Egy ilyen DAO szerződés egyszerű implementációjában három tranzakció típus lenne, amelyeket a tranzakcióban megadott adatok különböztetnek meg: + +- `[0,i,K,V]` ahol a javaslatot az `i` indexxel regisztrálják, hogy módosítsa a címet a `K` tárolási indexen `V` értékre +- `[1,i]` amely egy szavazatot regisztrál az `i` javaslat előnyben részesítésére +- `[2,i]` az `i` javaslat véglegesítésére, ha elég szavazat érkezett be + +A szerződésben ezután mindegyikre szerepel egy klauzula. Ezután rögzíti az összes nyitott tárolási módosítást, és azt a listát is, hogy ki szavazott rájuk. Tartalmazza a tagok listáját is. Amikor valamelyik tárolási módosításra a tagok kétharmada szavazott, a véglegesítési tranzakció hajtja végre a módosítást. Egy kifinomultabb vázban lehet beépített szavazási lehetőség is olyan funkciókra, mint például tranzakció küldése, tagok hozzáadása vagy eltávolítása, valamint lehetővé kell tenni egy [Liquid Democracy](https://wikipedia.org/wiki/Delegative_democracy)-stílusú szavazási delegálást is (azaz egyvalaki kijelölheti, hogy ki szavazzon helyette, majd a kijelölés átadható, tehát, ha A B-t bízza meg a szavazással, majd B C-t bízza meg, C határozza meg A szavazatát). A tervezés lehetővé teszi, hogy a DAO organikusan nőjjön decentralizált közösségként, és a tagok végül delegálhassák azt a feladatot egy specialistának, hogy kiszűrjék a tagokat, szemben a specialisták "jelenlegi rendszerével" akik a közösség egyes tagjait érintő változások függvényében könnyen ki- vagy beugorhatnak. + +Alternatív mód a decentralizált vállalat modell, amikor valamelyik számlán nulla vagy több részvény van, és a döntéshozatalhoz a részvények kétharmadára van szükség. Egy teljes vázban ideális esetben van egy eszközkezelő funkció, lehetőség részvények vásárlására vagy eladására szóló ajánlattételre, valamint lehetőség az ajánlatok elfogadására (lehetőség szerint a szerződésen belül egy ajánlat-egyeztető mechanizmussal). A delegálás szintén Liquid Democracy-stílusban létezik, általánosítva az "igazgatótanács" koncepciót. + +### További alkalmazások {#further-applications} + +**1. Tárcák mentése**. Tegyük fel, hogy Alice biztonságban szeretné tudni pénzeszközeit, azonban aggódik amiatt, hogy veszteség éri, vagy valaki feltöri a privát-kulcsát. Ethert helyez el egy szerződésben Bobbal, egy bankkal a következőképpen: + +- Alice egyedül naponta legfeljebb a pénzeszközök 1%-át tudja felvenni. +- Bob egyedül naponta a pénzeszközök legfeljebb 1%-át tudja felvenni, de Alicenak lehetősége van arra, hogy tranzakciót végezzen a kulcsával és zárolja ezt a lehetőséget. +- Alice és Bob együtt bármennyit fel tud venni. + +Alicenek általában elég naponta 1%, azonban, ha Alice-nak többre van szüksége, értesítheti Bobot, és segítséget kérhet. Ha Alicet támadás éri, Bobhoz siethet, és a pénzeszközöket egy új szerződésbe tudja átmozgatni. Ha elveszíti a kulcsát, Bob tudja végül kivenni az eszközöket. Ha Bob rosszindulatúan kezd viselkedni, Alice ki tudja kapcsolni, hogy Bob pénzt vehessen fel. + +**2. Termény-biztosítás**. Bárki készíthet könnyedén származtatott szerződést, ha az ár indexek helyett az időjárási adatokról érkező adat-feedet használja. Ha egy iowai farmer olyan származtatott ügyletet vásárol, ami fordítottan fizet az Iowában esett csapadék alapján, majd, ha szárazság van, a farmer automatikusan pénzhez jut, ha pedig elég eső esik, a farmer szintén jól jár, mert jó termése lesz. Ez általánosságban kiterjeszthető természeti csapásra vonatkozó biztosítással. + +**3. Egy decentralizált adat-feed**. A pénzügyi CFD-k (nyitó és záróérték közti különbség lekereskedése) esetében gyakorlatilag lehetőség van decentralizálni az adat-feed-et a következő protokollal [SchellingCoin](http://blog.ethereum.org/2014/03/28/schellingcoin-a-minimal-trust-universal-data-feed/). A SchellingCoin gyakorlatilag a következőképpen működik: N fél beteszi a rendszerbe egy adott bázis értékét (pl. ETH/USD árfolyam), az értékeket rendezik, és mindenki, aki 25% - 75% között van egy tokent kap jutalmul. Ez a rendszer mindenkit arra ösztönöz, hogy olyan választ adjon, mint a többiek, és az egyetlen érték, amiben a játékosok nagy száma realisztikusan egyet tud érteni a nyilvánvaló alap: azaz az igazság. Ez egy decentralizált protokollt hoz létre, amely elméletileg bármilyen számú értéket adhat, ideértve az ETH/USD árát, vagy a berlini hőmérsékletet vagy egy nehéz számítási feladat eredményét. + +**4. Okos, több aláírásos escrow**. A Bitcoin többaláírásos tranzakciós szerződéseket is enged, ahol például adott öt kulcsból három tudja elkölteni a pénzeszközöket. Az Ethereum ennél részletesebb lehetőségeket is kínál; például ötből négy mindent el tud költeni, ötből három naponta 10%-ot, ötből kettő pedig csak napi 0,5%-t. Továbbá az Ethereum több aláírásos megoldás aszinkron - két fél különböző időben tudja regisztrálni az aláírását a blokkláncon, az utolsó aláírás küldi el automatikusan a tranzakciót. + +**5. Felhőben történő számítás**. Az EVM technológia szintén használható hitelesíthető számítási környezet létrehozására, ahol a felhasználók megkérhetnek másokat számítások végzésére, majd opcionálisan kérhetnek bizonyítékot arra, hogy a számítások adott, véletlenszerűen kiválasztott ellenőrzési pontokon pontosan lettek elvégezve. Így létre lehet hozni egy felhő alapú számítási piacot, amelyen bármelyik felhasználó részt vehet az asztali gépével, laptopjával, vagy speciális szerverével, és együtt ellenőrizhetik szúrópróbaszerűen, hogy mely biztonsági letétek használhatók annak biztosítására, hogy a rendszer megbízható (azaz a csomópontok nem tudnak nyereségesen csalni). Bár egy ilyen rendszer nem feltétlenül felel meg minden feladatra; például nehézkes olyan feladatokat elvégezni nagyméretű felhőalapú csomópontokon, amelyek magasszintű, folyamat közbeni kommunikációt igényelnek. Más feladatokat azonban sokkal könnyebb párhuzamosan végezni; például a SETI@home, folding@home és általános algoritmusokat könnyebben meg lehet valósítani ilyen platformokon. + +**6. Peer-to-peer szerencsejáték**. Tetszőleges számú peer-to-peer szerencsejáték protokollt, például Frank Stajano és Richard Clayton [Cyberdice](http://www.cl.cam.ac.uk/~fms27/papers/2008-StajanoCla-cyberdice.pdf) protokollját, lehet megvalósítani Ethereum blokkláncon. A legegyszerűbb szerencsejáték protokoll egyszerűen egy CFD a következő blokk-hashre, ennél bonyolultabb protokollokat is lehet építeni, például szerencsejáték szolgáltatásokat nullához közeli díjakkal, ahol ki lehet zárni a csalás lehetőségét. + +**7. Kimenetelre fogadó piacok**. Az Oracle vagy SchellingCoin környezetben futó kimenetelre fogadó piacokat könnyen meg lehet valósítani; ezek a piacok a SchellingCoin-nal együtt az első [futarchy](http://hanson.gmu.edu/futarchy.html) mainstream alkalmazássá nőhetik ki magukat a decentralizált szervezetek irányítási protokolljaként. + +**8. On-chain decentralizált piacterek**, amelyek az azonosítás és elismerés rendszert használják alapként. + +## Egyebek és aggályok {#miscellanea-and-concerns} + +### Módosított GHOST implementáció {#modified-ghost-implementation} + +A "Greedy Heaviest Observed Subtree" (GHOST) innovatív protokollt Yonatan Sompolinsky és Aviv Zohar vezette be [2013 decemberében](https://eprint.iacr.org/2013/881.pdf). A GHOST mögötti motiváció az volt, hogy azokon a blokkláncokon, ahol a megerősítési idő gyors, a magas elavulási aránynak köszönhetően csökken a biztonság - mivel a blokknak bizonyos időre van szüksége a hálózaton való terjedéshez, ha A bányász kibányász egy blokkot, majd B bányász még azelőtt kibányász egy blokkot, hogy A bányász blokkja eljutna B bányászhoz, ez utóbbi blokkja feleslegessé válik, és nem járul hozzá a hálózat biztonságához. Továbbá van egy centralizációs probléma is: ha A bányász egy 30% hash-erejű bányász-pool, és B bányásznak 10% hash-ereje van, A bányásznak megvan az a kockázata, hogy az esetek 70%-ában elavult blokkot hozzon létre (mivel a fennmaradó 30% esetben A bányász hozta létre az utolsó blokkot, így azonnal bányászati adathoz jut), míg B bányász kockázata, hogy az esetek 90%-ában fog létrehozni elavult blokkot. Ezért ha a blokk intervallum elég rövid ahhoz, hogy a lejárati arány magas legyen, A jelentősen hatékonyabb lesz pusztán a mérete miatt. A két hatás kombinálásával az a blokklánc, amely gyorsan gyárt blokkokat valószínűleg vezetni fog egy bányász poolt, és elég nagy százalékot fog elfoglalni a hálózat hash-teljesítményéből, hogy de facto átvegye az irányítást a bányászási folyamat fölött. + +Ahogy Sompolinsky és Zohar is leírta, a GHOST megoldja a hálózat biztonságának elvesztését érintő első problémát azzal, hogy lejárt blokkokat is belevesz annak kiszámításába, hogy melyik lánc a "leghosszabb"; azaz nem csak a blokk szülőit és elődeit veszi figyelembe, hanem a blokk elődeinek nem élő leszármazottait is (Ethereum kifejezéssel élve "nagybácsikat") hozzáadja ahhoz a számításhoz, hogy melyik blokkon van a legtöbb proof-of-work. A centralizációval kapcsolatos második probléma megoldására túlhaladunk a Sompolinsky és Zohar által ismertetett protokollon, és blokk jutalmakat adunk az elavult blokkokra is: egy elavult blokk az alapjutalom 87,5%-át éri, míg az elavult blokkot tartalmazó unokaöccs megkapja a fennmaradó 12,5%-ot. A tranzakciós díjakat azonban nem kapják meg a nagybácsik. + +Az Ethereum a GHOST egy egyszerűsített verzióját implementálja, amely hét szintre megy le. A részletes meghatározást lásd itt: + +- Egy blokknak meg kell határoznia egy szülőt, és 0 vagy több nagybácsit +- Egy `B` blokkban lévő nagybácsinak a következő tulajdonságokkal kell rendelkeznie: +- Közvetlen leszármazottnak kell lennie a `k`-adik generációs `B` ősnek, ahol `2 <= k <= 7`. +- Nem lehet a `B` őse +- Egy nagybácsinak érvényes blokk fejlécnek kell lennie, de nem kell korábban hitelesített vagy érvényes blokknak lennie +- A nagybácsinak különböznie kell a korábbi blokkokban szereplő nagybácsiktól, illetve az ugyanabban a blokkban lévő más nagybácsiktól (nincs-dupla-szerepeltetés) +- Minden`U` nagybácsihoz a `B` blokkban, a `B` bányász további 3,125%-ot kap a coinbase jutalmához, és az U bánász 93,75% standard coinbase jutalomban részesül. + +A GHOST limitált verzióját, ahol legfeljebb 7 generációig szerepelhet nagybácsi, két ok miatt használtuk. Először is a korlátlan GHOST túl sok komplikációval járna annak kiszámításában, hogy egy adott blokkban mely nagybácsik érvényesek. Másodsorban a korlátlan GHOST, ahogy az Ethereumban használják, nem ösztönzi a bányászt, hogy a fő láncon bányásszon a nyilvános támadó által használt lánc helyett. + +### Díjak {#fees} + +Mivel minden blokkláncban közzétett tranzakció költséget ró a hálózatra a letöltés és a hitelesítés miatt, szükség van valamilyen szabályozó mechanizmusra, általában tranzakciós díjak beiktatását, hogy meg lehessen akadályozni a rosszindulatú viselkedést. A Bitcoinban is alkalmazott alapértelmezett megközelítés szerint tisztán önkéntes díjakra van szükség, ami a bányászokra támaszkodik abban, hogy őrizzék a biztonságot és dinamikus minimumokat állítsanak be. Ezt a megközelítést nagyon kedvezően fogadták a Bitcoin közösségben, különösen azért, mert "piaci-alapú", meghagyja a keresletet és a kínálatot a bányászok és a tranzakciók küldői között, és így meghatározza az árat. A probléma ezzel az érveléssel az, hogy a tranzakciók feldolgozása nem piac; bár intuitívan vonzó a tranzakció feldolgozását olyan szolgáltatásként értelmezni, amelyet a bányász kínál küldőnek, a valóságban minden olyan tranzakció, amelyhez bányász kell a hálózat minden csomópontján fel kell dolgozni, így a tranzakció feldolgozási költségének jelentős részét külső felek fizetik, és nem a bányász hozza meg azt a döntést, hogy foglalkozik-e vele vagy sem. Így nagyon valószínű a "közlegelő tragédiája" típusú problémák előfordulása. + +Azonban úgy tűnik, hogy a piaci alapú mechanizmus ezen hibája, amikor pontatlan egyszerűsítő feltételezéssel élnek, mágikusan megszünteti saját magát. Az érvelés a következő. Tegyük fel, hogy: + +1. Egy tranzakció `k` művelethez vezet, `kR` jutalmat kínál minden olyan bányásznak, aki szerepel benne, ahol az `R` értéket a küldő állítja be, és az `k` és `R` (durván) már előre látható a bányász oldalán. +2. Egy művelet feldolgozásához szükséges költség `C` bármely csomóponton (azaz az összes csomópont hatékonysága azonos) +3. `N` bányász csomópont van, mindegyik pontosan ugyanannyi feldolgozási teljesítménnyel (azaz `1/N` az összesből) +4. Nincs nem-bányászó teljes csomópont. + +Egy bányász akkor hajlandó feldolgozni a tranzakciót, ha a várható jutalom nagyobb, mint a költség. Így a várható jutalom `kR/N` mivel a bányásznak `1/N` esélye van feldolgozni a következő blokkot, és a bányász feldolgozási költsége `kC`. Következésképpen a bányászok olyan tranzakciókban fognak részt venni, ahol `kR/N > kC`, vagy `R > NC`. Ne feledjük, hogy `R` a küldő által műveletenként biztosított díj, amely alulról korlátozza azt az előnyt, amit a küldő a tranzakcióból nyer, és az `NC` pedig a műveletet feldolgozó teljes hálózat költsége. Következésképpen a bányászok csak olyan tranzakcióban érdekeltek, amelyen a teljes haszonelvű előny nagyobb, mint a költség. + +Azonban a valóságban számos fontos eltérés mutatkozik a feltételezésektől: + +1. A bányász nagyobb költséget fizet a tranzakció feldolgozásáért mint a többi, hitelesítést végző csomópont, mivel az extra hitelesítéshez szükséges idő késlelteti a blokk terjedését, és növeli annak az esélyét, hogy a blokk elavulttá válik. +2. Így létezik nem-bányászó teljes csomópont. +3. A bányászati teljesítmény eloszlás a gyakorlatban radikálisan egyenlőtlenné válhat. +4. A spekulánsok, politikai ellenségek és őrültek, akiknek a használati függvényei a hálózatra nézve káros elemeket tartalmaznak okosan olyan szerződéseket készíthetnek, amelyekben a költségeik sokkal alacsonyabbak, mint a többi hitelesítő csomópont által fizetett költségek. + +(1) olyan tendenciát biztosít a bányásznak, hogy kevesebb tranzakcióba vonódjon bele, és (2) növeli az `NC` értékét; következésképpen ez a két hatás legalább részben kiírtja egymást.[Hogyan?](https://github.com/ethereum/wiki/issues/447#issuecomment-316972260) (3) és (4) a fő probléma; megoldásukra egy egyszerű lebegő sapkát alkalmazunk: egyetlen blokkon sem lehet több művelet mint a hosszú távú exponenciális mozgóátlag `BLK_LIMIT_FACTOR` -szorosa. Különösképpen: + + blk.oplimit = floor((blk.parent.oplimit \* (EMAFACTOR - 1) + + floor(parent.opcount \* BLK\_LIMIT\_FACTOR)) / EMA\_FACTOR) + +A `BLK_LIMIT_FACTOR` és `EMA_FACTOR` állandó, beállításuk jelenleg 65536 és 1,5, amely további elemzés után változhat. + +Van még egy faktor, ami megszünteti a nagy blokkméretek iránti elköteleződést a Bitcoinban: a nagy blokkok terjedési ideje hosszabb, és így nagyobb eséllyel válnak elavulttá. Az Ethereumban a sok gázt fogyasztó blokkoknak is több időre van szüksége a terjedéshez, mivel egyrészt fizikailag hosszabbak, másrészt több időbe telik az állapot átmenet tranzakciók feldolgozásának validálása. Ez a késleltetési negatív ösztönző jelentős a Bitcoin esetében, de kevésbé az az Ethereum világában a GHOST protokoll miatt; következésképpen a szabályozott blokk limitekre való támaszkodás stabilabb alapkonfigurációt tesz lehetővé. + +### Számítási és Turing-teljesség {#computation-and-turing-completeness} + +Fontos megjegyezni, hogy az Ethereum virtuális gép Turing-teljes; azaz az EVM kód minden olyan számítást képes titkosítani, amelyet rejtve lehet elvégezni, ideértve a végtelen hurkokat is. Az EVm kód a hurkokat kétféleképpen teszi lehetővé. Egyfelől a `JUMP` utasítás lehetővé teszi a programnak, hogy visszaugorjon egy korábbi pontra a kódban, míg a `JUMPI` utasítás feltételhez kötött ugrást hajt végre, lehetővé téve a `while x < 27: x = x * 2` típusú állításokat. Másodsorban a szerződések más szerződéseket is meghívhatnak, ami potenciálisan lehetővé teszi a rekurzión keresztül történő hurkok alkalmazását. Ez természetesen egy problémát eredményez: a kártékony felhasználók lényegében le tudják állítani a bányászokat és a teljes csomópontokat azzal, hogy végtelen hurokba lépésre kényszerítik őket? A probléma a számítástechnikában megakadás problémaként ismert jelenség miatt jelentkezik: általánosságban nem lehet megmondani, hogy egy adott program mikor akad meg. + +Mint azt az állapot átmenet részben is leírtuk, a megoldásunk úgy működik, hogy egy tranzakcióban be kell állítani a maximálisan engedélyezett számítási lépések számát, és ha a futtatás tovább tart, a számítást visszatérítik, azonban díjat is kell fizetni. Az üzenetek hasonlóképpen működnek. A megoldás mögött húzódó motiváció bemutatására nézzük az alábbi példákat: + +- Egy támadó létrehoz egy szerződést, amely végtelen hurkot futtat, majd egy tranzakciót küld a bányásznak, amely aktiválja a hurkot. A bányász feldolgozza a tranzakciót, futtatja a végtelen hurkot, majd megvárja, amíg elfogy a gáz. Bár a futtatás kifogy a gázból és félúton megáll, a tranzakció továbbra is érvényes, és a bányász bekéri a díjat a támadótól minden számítási lépésért. +- Egy támadó egy nagyon hosszú végtelen hurkot hoz létre azzal a szándékkal, hogy a bányász olyan sokáig végezze a számítást, hogy a számítás végére pár új blokk is kikerüljön, és így lehetetlenné váljon a bányásznak a tranzakció belefoglalása, hogy díjat számíthasson fel. Azonban a támadónak be kell küldenie egy `STARTGAS` értéket, amely korlátozza a futtatásban használható számítások számát, így a bányász már előre tudni fogja, hogy a számítás jelentősen több lépésből fog állni. +- Egy támadó valami ilyesmit kódot lát a szerződésben `send(A,contract.storage[A]); contract.storage[A] = 0`, és pont annyi gázzal küldi el a tranzakciót, hogy futtatni lehessen az első lépést, de a másodikat már ne (azaz meglegyen a levétel, de az egyenleg ne csökkenjen le). A szerződés létrehozójának nem kell azon aggódnia, hogy védekezzen az ilyen támadások ellen, mivel, ha a futtatás félúton megáll, azok vissza lesznek térítve. +- Egy pénzügyi szerződés úgy működik, hogy kilenc tulajdonost illető adat -feed középértékét veszi a kockáztok minimalizálása érdekében. Amikor egy támadó átvesz egy adat-feed-et, amelyet úgy tervetek, hogy módosítható legyen a DAO részben ismertetett változó-cím-meghívás mechanizmuson keresztül, és átkonvertálja úgy, hogy végtelen hurokban fusson, és így megpróbál kikényszeríteni olyan próbálkozásokat amelyek pénzeszközöket kérnek a pénzügyi szerződéstől amíg ki nem fogy a gáz. Azonban a pénzügyi szerződésekben be lehet állítani gázkorlátot az üzeneten, és így meg lehet előzni a problémát. + +A Turing-teljesség alternatívája a Turing-nem-teljesség, ahol a `JUMP` és `JUMPI` nem létezik, és egyszerre csak egy szerződéspéldány létezhet a hívás-stackben. Ezzel a rendszerrel a korábban ismertetett díjrendszer és a megoldásunk hatékonyságával kapcsolatos bizonytalanságok nem feltétlenül szükségesek, mivel a szerződés futtatásának költségét annak mérete korlátozza be. Továbbá a Turing-nem-teljesség nem túl nagy limitáció; az általunk kitalált összes szerződés példa közül csupán egyhez volt szükség hurokra, és még ez az egy hurok is eltávolítható egy egysoros kódrészlet 26 ismétlésével. A Turing-teljesség súlyos implikációi, valamint a korlátozott haszon alapján, miért nincs egyszerűen egy Turing-nem-teljesség nyelv? A valóságban azonban a Turing-nem-teljesség messze van a probléma elegáns megoldásától. Hogy megértsük miért, nézzük meg a következő szerződéseket: + + C0: call(C1); call(C1); + C1: call(C2); call(C2); + C2: call(C3); call(C3); + ... + C49: call(C50); call(C50); + C50: (futtasson egy lépést a programból, majd rögzítse a változtatást a tárhelyen) + +Most, küldjön egy tranzakciót A-nak. Így 51 tranzakcióban van egy olyan szerződésünk, amely akár 250 számítási lépést is magában foglalhat. A bányászok megpróbálhatják már jóelőre kiszűrni ezeket a logikai bombákat, ha értéket tartanak minden szerződés mellett, amely meghatározza, hogy legfeljebb mennyi számítási lépést vehet fel, és kiszámítják ezt azokhoz a szerződésekhez, amelyek rekurzívan hívnak más szerződéseket, azonban ez arra kényszerítené a bányászokat, hogy letiltsák azokat a szerződéseket, amelyek más szerződéseket hoznak létre (mivel a fenti 26 szerződés létrehozása és futtatása könnyedén egy szerződésbe gyúrható). Másik problematikus pont, hogy az üzenet címmezője egy változó, tehát általánosságban idő előtt nem lehet megmondani, hogy milyen más szerződést fog meghívni egy adott szerződés. Ezért összességében meglepő következtetésre jutottunk: A Turing-teljességet meglepően könnyű kezelni, valamint a Turing-teljesség hiányát hasonlóképpen meglepően nehéz kezelni, kivéve, ha ugyanezeket a vezérlőket alkalmazzuk - de ebben az esetben miért ne legyen a protokoll Turing-teljes? + +### Valuta és kiadás {#currency-and-issuance} + +Az Ethereum rendszerben saját beépített valuta, az ether szolgál kettős célt, egyfelől egy elsődleges likviditási réteget biztosít a különböző digitális eszközök közötti hatékony váltáshoz, másfelől pedig fontos mechanizmust biztosít a tranzakciós költségek fizetésére. Kényelmi szempontból, valamint elkerülve a későbbi vitákat (lásd a jelenlegi mBTC/uBTC/satoshi vitát a Bitcoin-ban), a névértékeket előre felcímkézzük: + +- 1: wei +- 1012: szabo +- 1015: finney +- 1018: ether + +Ez a "dollár" és "cent", illetve a "BTC" és "satoshi" koncepció kibővített változataként értelmezhető. A közeljövőben az "ether" lesz használatos a hagyományos tranzakciókra, a "finney" a mikrotranzakciókra, a "szabo" és "wei" pedig a díjak és protokoll implementációkkal kapcsolatos technikai értekezésekben; a fennmaradó címletek pedig később lehetnek hasznosak, és jelenleg nem szerepelnek a kliensekben. + +A kiadási modell a következő: + +- Az Ether mint valuta egy BTC-hez viszonyítva 1000-2000 ether árfolyamon fog forogni; ez a mechanizmus az Ethereum szervezet forrásait biztosítja, valamint ezzel lehet fizetni a fejlesztésekért, amelyet más platformon, például a Mastercoin-on és az NXT-n már sikerrel használtak. A korai vásárlók nagyobb kedvezményekben részesülnek. Az eladásból kapott BTC-ket teljes mértékben a fejlesztők fizetésére és javadalmazására fordítják, valamint különböző for-profit és non-profit projektekbe fektetik az Ethereum és kriptovaluta ökoszisztémában. +- A teljes értékesített összeg (60102216 ETH) 0.099x-át a szervezet kapja a korai hozzájárulók kompenzálására, valamint ETH-ban denominált költségekre fordítják a genesis blokk előtt. +- A teljes értékesített összeg 0,099x részét hosszú távú tartalékba helyezik. +- A teljes értékesített összeg 0,26x része a bányászokhoz kerül évente, örökre ezután a pont után. + +| Csoport | induláskor | 1 év után | 5 év után | +| ------------------------------------- | ---------- | --------- | --------- | +| Valuta egység | 1,198X | 1,458X | 2,498X | +| Vásárlók | 83,5% | 68,6% | 40,0% | +| Értékesítés előtt elköltött tartalék | 8,26% | 6,79% | 3,96% | +| Értékesítés után felhasznált tartalék | 8,26% | 6,79% | 3,96% | +| Bányászok | 0% | 17,8% | 52,0% | + +**Hosszú távú kínálati növekedési ütem (százalék)** + +![Ethereum infláció](./ethereum-inflation.png) + +_A lineáris valuta kibocsátások ellenére, hasonlóan a Bitcoin-hoz időről időre a kínálati növekedési ütem nulla felé tart_ + +A fenti modellben két választási lehetőség van (1) egy felnagyítási-pool megléte és mérete, és (2) egy állandóan növekvő lineáris kereslet, szemben a Bitcoin esetében látható felső korlátos kínálattal. A felnagyítási-pool indoklása a következő. Ha nincs felnagyítási-pool, és a lineáris kibocsátás 0,217x-re csökken az infláció biztosítására, akkor az ether teljes mennyisége 16,5%-al lesz kevesebb, és minden egység 19,8%-al értékesebb lenne. Következésképpen a 19,8%-os egyensúlyban több ethert vásárolnak az értékesítés folyamán, így minden egység megőrzi korábbi értékét. A szervezet ezután 1,198x BTC-vel rendelkezik, amit két szeletre lehet bontani: az eredeti BTC és a további 0,198x rész. Következésképpen a helyzet _pontosan megegyezik_ a nagyítással, van azonban egy fontos különbség: a szervezetnél csupán BTC van, és így nincs ösztönözve arra, hogy támogassa az ether mértékegység értékét. + +Az állandó lineáris keresletnövekedés modell csökkenti a jelentő vagyonkoncentráció kockázatát a Bitcoinban, és lehetőséget biztosít a jelen és jövő vásárlóinak, hogy reális esélyük legyen valuta egységeket venni, ugyanakkor erősen ösztönöznek arra, hogy még több ethert vegyenek és tartsanak, mivel a "kereslet növekedési üteme" százalékosan idővel a nulla felé közelít. Azt is feltételezzük, hogy mivel óvatlanság, haláleset stb. miatt mindig van, aki elveszti a coinjait, és ez százalékosan is modellezhető az éves kínálat függvényében, a teljes forgalomban lévő valutakészlet végül a veszteség arányával elosztott éves kiadás értékével azonos értéken stabilizálódik (például ha a veszteség aránya 1%, amint a kínálat 26X, 0,26X lesz bányászva és 0,26x veszik el évente, és létrejön az egyensúly). + +Ne feledjük, hogy a jövőben valószínű, hogy az Ethereum proof-of-stake modellre vált a biztonság érdekében, és évi nulla és 0,05X közé csökken a kiadásra vonatkozó követelmény. Abban az esetben, ha az Ethereum szervezet elveszíti pénzeszközeit, vagy valamilyen más okból kifolyólag eltűnik, nyitva hagyunk egy "társadalmi szerződést": mindenkinek joga van létrehozni egy jövőbeli Ethereum verziót, azzal a feltétellel, hogy az ether mennyiségének `60102216 * (1.198 + 0.26 * n)` kell lennie, ahol az `n` a z évek számát jelöli a genesis blokk után. A létrehozók szabadon értékesíthetik crowd-sell formájában, illetve meghatározhatják a PoS-által hajtott kínálat növekedés és a maximálisan engedélyezett kínálat bővülés különbségét részben vagy egészben a fejlesztés költségeinek lefedésére. Azok a frissítések, amelyek nem felelnek meg a társadalmi szerződés követelményeinek forkolhatók a követelményeknek megfelelő verziókba. + +### A bányászat centralizálása {#mining-centralization} + +A Bitcoin bányászati algoritmusa úgy működik, hogy a bányászok SHA256 számításokat végeznek a blokk fejléc kissé módosított verzióin egymás után több milliószor, amíg végül egy csomópont egy olyan verzióhoz ér, amelynek hash értéke kevesebb mint a cél (jelenleg körülbelül 2192). Azonban ez a bányászati algoritmus a centralizáció két formájára sérülékeny. Először is a bányászati ökoszisztémát az ASIC-ok (alkalmazásspecifikus integrált körök), az erre a célra tervezett számítógép chipek dominálják, és ezért ezek többezerszer hatékonyabbak a Bitcoin bányászat során. Ez azt jelenti, hogy a Bitcoin bányászat már egyáltalán nem decentralizált és az egyenlőségen alapuló tér, és több millió dolláros tőkére van szükség ahhoz, hogy hatékonyan részt lehessen venni benne. Másodsorban a legtöbb Bitcoin bányász gyakorlatilag nem lokálisan validálja a blokkokat; hanem helyette egy centralizált bányász-poolra támaszkodnak a blokk fejlécek megadásakor. Ez a probléma azonban még rosszabb: a tartalom írásakor a legjobb három bányász-pool indirekt módon a feldolgozási teljesítmény körülbelül 50%-át irányítja, bár ezt némiképp enyhíti az a tény, hogy a bányászok átválthatnak egy másik pool-ra, ha a pool vagy a koalíció 51%-os támadással próbálkozik. + +Az Ethereumban jelenleg az a szándék, hogy olyan bányászati algoritmust használjanak, ahol a bányászoknak véletlenszerűen kell adatot lekérniük az állapotról, ki kell számítaniuk néhány random kiválasztott tranzakciót a blokklánc utolsó N blokkjáról, és vissza kell adniuk az eredmény hashjét. Ennek két fontos előnye van. Először is az Ethereum szerződésekben bármilyen számítás lehet, így egy Ethereum ASIC lényegében egy általános számításra használt ASIC - azaz egy jobb CPU. Másodszor a bányászatnak hozzá kell férnie a teljes blokklánchoz, ami arra kényszeríti a bányászokat, hogy a teljes blokkláncot tárolják, és legalább képesnek kell lenniük minden tranzakció hitelesítésére. Emiatt nincs szükség centralizált bányászati-poolokra; bár a bányászati-poolok továbbra is betöltik azt a legitim szerepet, hogy kizárják a jutalom elosztás véletlenszerűségét, ezt a funkciót egyenlően el tudják látni a peer-to-peer poolok, központi irányítás nélkül. + +Ez a modell még nincs tesztelve, és szembejöhetnek még nehézségek bizonyos okos optimalizálások elkerülése terén, amikor a szerződés futtatást bányászati algoritmusként használják. Azonban ennek az algoritmusnak egyik érdekes funkciója, hogy bárki "megmérgezheti a kutat", ha nagyszámú szerződést vezet be a blokkláncra, azért, hogy megakasszon bizonyos ASIC-okat. Az ASIC gyártók számára léteznek gazdasági ösztönzők arra, hogy ezzel a trükkel megtámadják egymást. Ezért az általunk fejlesztett megoldás végeredményben egy adaptív humán gazdasági megoldás, és nem pusztán technikai. + +### Méretezhetőség {#scalability} + +Az Ethereummal kapcsolatos gyakori aggály a méretezhetőség kérdése. A Bitcoinhoz hasonlóan az Ethereumnak megvan az a hibája, hogy a hálózatban minden csomópontnak fel kell dolgoznia a tranzakciókat. A Bitcoin esetében a jelenlegi blokklánc mérete körülbelül 15 GB, ami óránként mintegy 1 MB-vel nő. Ha a Bitcoin hálózatnak másodpercenként 2000 Visa tranzakciót kellene feldolgoznia, akkor három másodpercenként nőne 1 MB-val (1 GB óránként, 8 TB évente). Az Ethereumon is hasonló növekedési tempó figyelhető meg, amelyet még rosszabbá tesz az a tény, hogy számos alkalmazást futtatnak az Ethereum blokkláncán, szemben azzal, hogy a Bitcoin csak egy valuta, azonban javít rajta az, hogy az Ethereum teljes csomópontjainak csak az állapotot és nem a teljes blokklánc előzményt kell tárolniuk. + +A nagyméretű blokklánccal a centralizáció kockázata a fő probléma. Ha a blokklánc mérete mérete mondjuk 100 TB-ra nő, a legvalószínűbb forgatókönyv szerint csak nagyon kevés nagyvállalat tud majd teljes csomópontot futtatni, az összes hagyományos felhasználó pedig könnyű SPV-csomópontokat fog használni. Egy ilyen helyzetben felmerülhet a lehetséges aggály, hogy a teljes csomópontok összefoghatnak, és megállapodnak abban, hogy profitábilis módon csaljanak (például módosítsák a blokkok után járó jutalmat, vagy BTC-t adjanak maguknak). A könnyű csomópontok nem tudják ezt azonnal felismerni. Természetesen legalább egy becsületes teljes csomópont valószínűleg létezne, és a csalás kiderülése után néhány órával már a Reddit is tele lenne a hírrel, azonban ezen a ponton ez már túl késő lenne: a normál felhasználókon múlna, hogy szervezetten tiltólistára tegyék az adott blokkokat, azonban ez a koordinációs probléma jelentős és eléggé megoldhatatlan helyzetet teremtene, hasonlóan egy sikeres 50%-os támadás indításához. A Bitcoin esetében ez jelenleg probléma, de létezik rá blokklánc módosítási [javaslat Peter Todd-tól](https://web.archive.org/web/20140623061815/http://sourceforge.net/p/bitcoin/mailman/message/31709140/) amely enyhítene a problémán. + +A közeljövőben az Ethereum két további stratégiát fog használni a probléma megoldására. Először a blokklánc alapú bányászati algoritmusok miatt legalább minden bányász rá lesz kényszerítve, hogy teljes csomópont legyen, ami alacsonyabb korlátot hoz létre a teljes csomópontok viszonylatában. Másodszor, és még fontosabb módon egy közbenső állapot fa gyökeret szerepeltetünk a blokkláncban a tranzakciók feldolgozása után. Még akkor is, ha a blokk validálása centralizált, addig, amíg van becsületes csomópont, a centralizációs probléma megkerülhető a protokoll validálásával. Ha egy bánász érvénytelen blokkot tesz közzé, vagy a blokk nincs megfelelően formázva, vagy az `S[n]` állapot pontatlan. Mivel az `S[0]` kódnak pontos, kell lennie egy első `S[i]` állapotnak, ami hibás ott, ahol az `S[i-1]` pontos. A hitelesítő csomópont megadja az `i` indexet egy "proof of invalidity" (érvénytelenségi bizonyíték) bizonyítékkal, ami olyan Patricia fa csomópontokból áll, amelyeknek fel kell dolgozniuk a `APPLY(S[i-1],TX[i]) -> S[i]` kifejezést. A csomópontok használni tudják ezeket a Patricia csomópontokat a számítás egy részének futtatásához, és látni fogják, ha a generált `S[i]` nem egyezik a megadott `S[i]` értékkel. + +Egy másik, kifinomultabb támadásban rosszindulatú bányászok félkész blokkokat publikálnak, így a teljes információ nem is létezik annak megállapítására, hogy a blokk érvényes-e. A megoldás egy kihívásra reagáló protokoll: a hitelesítő csomópont cél tranzakciós indexek formájában "kihívásokat" adnak ki, majd amikor visszakapnak egy csomópontot, egy könnyű csomópont mindaddig érvénytelennek tekinti a blokkot, amíg egy másik csomópont, egy bányász, vagy egy másik hitelesítő vissza nem ad Patricia csomópont készleteket igazolva az érvényességet. + +## Következtetés {#conclusion} + +Az Ethereum protokollt eredetileg egy frissített kriptovaluta verziónak tekintették, ami haladó funkciókat is kínált, például blokkláncon lévő escrow-t, kivételi korlátokat, pénzügyi szerződéseket, szerencsejáték piacokat és hasonlókat egy nagyon általánosított programnyelven. Az Ethereum protokoll nem "támogatja" közvetlenül az alkalmazásokat, azonban a Turin-teljesség programnyelv megléte azt jelenti, hogy tetszőleges mennyiségű szerződés hozható létre bármilyen tranzakció típushoz vagy alkalmazáshoz. Még érdekesebb az Ethereummal kapcsolatban, hogy az Ethereum protokoll sokkal több puszta valutánál. A decentralizált fájl tárolással, számításokkal és kimenetelre fogadó piacokkal kapcsolatos protokollok több tucat hasonló koncepció mellett magukban rejtik a számítási ipar hatékonyságnövelésének potenciálját, és masszív lökést adnak más peer-to-peer protokolloknak egy korábban nem látott gazdasági réteg hozzáadásával. Végezetül pedig jelentős számú alkalmazás van, amely egyáltalán nem foglalkozik pénzzel. + +Az Ethereum protokollban implementált tetszőleges állapot átmenet függvény koncepciója egyedi potenciált rejtő platformot kínál; szemben a zártvégű, egycélú protokollokkal, amelyeket egy bizonyos típusú alkalmazásra fejlesztenek az adattárolás, pénzügy vagy szerencsejáték világában, az Ethereum egy alapvetően nyílt végű koncepció, és hiszünk abban, hogy kiválóan szolgál nagyon sok pénzügyi és nem pénzügyi protokoll alapozó rétegeként az elkövetkező években. + +## Jegyzetek és további olvasnivaló {#notes-and-further-reading} + +### Jegyzetek {#notes} + +1. A kifinomult olvasó észreveheti, hogy gyakorlatilag egy Bitcoin cím az elliptikus görbe nyilvános kulcs hash-e, és nem a nyilvános kulcs maga. Azonban gyakorlatilag teljesen legitim kriptográfiai terminológia a pubkey hash nyilvános kulcsként történő hivatkozása. Ez azért van, mert a Bitcoin kriptográfiáját tekinthetjük egy egyedi digitális aláírás algoritmusnak, ahol a nyilvános kulcs az ECC pubkey hashjéből áll, az aláírás az ECC pubkey és az ECC aláírás együttesen, a hitelesítő algoritmusban pedig az aláírásban lévő ECC pubkey-t a nyilvános kulcsként rendelkezésre bocsátott ECC pubkey hashhel vetik összes, majd az ECC aláírást az ECC pubkey értékével hitelesítik. +2. Gyakorlatilag a 11 előző blokk mediánja. +3. Az Ethereum protokollnak egyszerűnek és praktikusnak kell lennie, de elképzelhető, hogy viszonylag összetettnek kell lennie, például méretezhetőnek, hogy internalizálni lehessen a tárolás költségeit, a sávszélességet és I/O-t a biztonság, adatvédelem és átláthatóság stb. érdekében. Ahol a komplexitás elengedhetetlen, a dokumentációnak a lehető legegyértelműbbnek, átfogóbbnak és naprakészebbnek kell lennie, így bárki, aki nem járatos az Ethereumban meg tudja tanulni és szakértővé válhasson. +4. Lásd az Ethereum Virtuális Gépről szóló [Sárgakönyvet](https://ethereum.github.io/yellowpaper/paper.pdf) (amely hasznos specifikációkat tartalmaz, és referenciaként szolgálhat azoknak, akik a nulláról szeretnének Ethereum klienst építeni), továbbá számos témakör ismertetése is megtalálható az [Ethereum wiki oldalán](https://github.com/ethereum/wiki/wiki), például a shard- fejlesztés, fő fejlesztés, dapp fejlesztés, kutatás, Casper K&F, és hálózati protokollok. A kutatásról és a lehetséges jövőbeli implementációkról lásd: [ethresear.ch](https://ethresear.ch). +5. Ennek egy másik kifejezési módja az absztrakció. A [legfrissebb roadmap](https://ethresear.ch/t/sharding-phase-1-spec/1407/67) az absztrakt futtatás megtervezése, ahol a futtató motoroknak nem feltétlenül kell követniük egy kanonizáló specifikációt, de például testreszabható egy adott alkalmazáshoz vagy egy shard-hoz. (A futtató motorok heterogénsége nincs explicite leírva a roadmapban. Létezik heterogén sharding, amelyet Vlad Zamfir foglalt koncepcióba.) +6. Belső értelmezésben a 2 és "CHARLIE" szám, ez utóbbi big-endian bázis 256 reprezentáció. A számok 0-tól legfeljebb 2256-1-ig terjedhetnek. + +### További olvasnivaló {#further-reading} + +1. [Valódi érték](http://bitcoinmagazine.com/8640/an-exploration-of-intrinsic-value-what-it-is-why-bitcoin-doesnt-have-it-and-why-bitcoin-does-have-it/) +2. [Okos-tulajdonság](https://en.bitcoin.it/wiki/Smart_Property) +3. [Okosszerződések](https://en.bitcoin.it/wiki/Contracts) +4. [B-pénz](http://www.weidai.com/bmoney.txt) +5. [Újrahasznosítható proof-of-work](http://www.finney.org/~hal/rpow/) +6. [Biztonságos tulajdonság címek tulajdonosi rendelkezéssel](http://szabo.best.vwh.net/securetitle.html) +7. [Bitcoin fehérkönyv](http://bitcoin.org/bitcoin.pdf) +8. [Namecoin](https://namecoin.org/) +9. [Zooko háromszög](https://wikipedia.org/wiki/Zooko's_triangle) +10. [Colored coins fehérkönyv](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit) +11. [Mastercoin fehérkönyv](https://github.com/mastercoin-MSC/spec) +12. [Decentralizált autonóm vállalatok, Bitcoin Magazine](http://bitcoinmagazine.com/7050/bootstrapping-a-decentralized-autonomous-corporation-part-i/) +13. [Egyszerűsített fizetés hitelesítés](https://en.bitcoin.it/wiki/Scalability#Simplifiedpaymentverification) +14. [Merkle fák](https://wikipedia.org/wiki/Merkle_tree) +15. [Patricia fák](https://wikipedia.org/wiki/Patricia_tree) +16. [GHOST](https://eprint.iacr.org/2013/881.pdf) +17. [StorJ és Autonóm ügynökök, Jeff Garzik](http://garzikrants.blogspot.ca/2013/01/storj-and-bitcoin-autonomous-agents.html) +18. [Mike Hearn az Okos tulajdonságokról a Turing Fesztiválon](http://www.youtube.com/watch?v=Pu4PAMFPo5Y) +19. [Ethereum RLP](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-RLP) +20. [Ethereum Merkle Patricia fák](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-Patricia-Tree) +21. [Peter Todd a Merkle összeg fákról](http://sourceforge.net/p/bitcoin/mailman/message/31709140/) + +_A fehérkönyv történetéről lásd: https://github.com/ethereum/wiki/blob/old-before-deleting-all-files-go-to-wiki-wiki-instead/old-whitepaper-for-historical-reference.md_ + +_Az Ethereum sok másik közösség által vezetett, nyílt forráskódú szoftver projekthez hasonlóan, a kezdeti elindulás óta fejlődött. Ha többet szeretnél megtudni az Ethereum legutóbbi fejlesztéseiről és az általunk elvégzett protokoll változtatásokról, akkor ezt az [útmutatót](/learn/) ajánljuk._ diff --git a/src/content/translations/hu/zero-knowledge-proofs/index.md b/public/content/translations/hu/zero-knowledge-proofs/index.md similarity index 100% rename from src/content/translations/hu/zero-knowledge-proofs/index.md rename to public/content/translations/hu/zero-knowledge-proofs/index.md diff --git a/public/content/translations/hy-am/nft/index.md b/public/content/translations/hy-am/nft/index.md new file mode 100644 index 00000000000..f73a1821d46 --- /dev/null +++ b/public/content/translations/hy-am/nft/index.md @@ -0,0 +1,94 @@ +--- +title: Անփոխարինելի տոկեններ (NFT) +description: Ակնարկ Էթերիումում գործող NFT-ների մասին +lang: hy-am +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: Eth-ի պատկերանշանը ցուցադրվաում է հոլոգրամի միջոցով։ +summaryPoint1: "Ցանկացած յուրօրինակ օբյեկտ որպես Էթերիումում գործող ակտիվ ներկայացնելու ձև:" +summaryPoint2: "NFT-ները ստեղծագործողներին նոր հնարավորություններ են ընձեռում:" +summaryPoint3: "Գործարկվում են Էթերիում բլոկչեյնի վրա գտնվող սմարթ կոնտրակտներով:" +--- + +## What are NFTs? {#what-are-nfts} + +NFT-ները ներկայումս մեծ արագությամբ նվաճում են թվային արվեստի աշխարհը: Թվային արվեստագետների կատարած վաճառքենրը մեծապես աճել են շուկայում նոր կրիպտոլսարանի հայտնվելու հաշվին: ՅՏ-երը տարբերվում են ERC-20 ստանդարտի տոկեններից նրանով, որ յուրաքանչյուր տոկեն յուրօրինակ է և չի բաժանվում մասերի: Ձեզ չի հետաքրքրում, թե կոնկրետ որ դոլլարի թղթադրամն է Ձեր դրամապանակում, քանի որ բոլորն էլ նույն արժեքն ունեն: Սակայն, Ձեզ հետաքրքրում է, թե կոնկրետ որ ՅՏ-ն եք ձեռք բերում, քանի որ դրանցից յուրաքանչյուրը յուրահատուկ է: + +Յուրաքանչյուր NFT-ի յուրահատկությունը թույլ է տալիս տոկենիզացնել այնպիսի պարագաներ, ինչպիսիք են արվեստի գործերը, հավաքածուները, կամ նույնիսկ անշարժ գույքը, որտեղ յուրաքանչյուր NFT ներկայացնում է իրական աշխարհից ինչ-որ յուրահատուկ առարկա: Ակտիվի սեփականության վկայականը պահապանվում է Էթերիում բլոկչեյնի միջոցով՝ ոչ ոք չի կարող այն փոփոխության ենթարկել, կամ արդեն եղած տոկենը պատճենել և նույն վկայականից ստանալ: + + + +## Ակտիվների ինտերնետ {#internet-of-assets} + +NFT-ներն ու Էթերիումը լուծում են համացանցում ներկայումս առկա որոշ խնդիրներ: Քանի որ ամեն ինչ գնալով տեղափոխվում է թվային հարթակ, ֆիզիկական առարկաների հատկանիշները, ինչպես օրինակ դրանց հազվագյուտությունը, սեփականության իրավունքն ու յուրօրինակությունը, թվային ձևաչափով ներկայացնել է պետք: այնպիսի ձևով, որ այն չի վերահսկվում որևէ կենտրոնական կազմակերպության կողմից: Օրինակ, NFT-ների միջոցով, Դուք կարող եք ձեռք բերել mp3 ձևաչափով երգ, որը որևէ կոնկրետ ընկերության հավելվածին յուրահատուկ չէ, կամ կարող եք ունենալ սոցիալական մեդիայի էջ, որը կարող եք փոխանակել կամ վաճառել, բայց որը չի կարող արգելափակվել հարթակը տրամադրողի կողմից: + +Ահա թե ինչ տեսք ունի NFT-ների հագեցած համացանցը, համեմատած մեծամասնության կողմից օգտագործվող համացանցի հետ... + +### A comparison {#nft-comparison} + +| NFT-ական համացանց | Համացանցն այսօր | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Դուք կառավարում եք Ձեր ակտիվներները: Միայն Դուք կարող եք դրանք փոխանակել կամ վաճառել: | Դուք որևէ կազմակերպությունից ակտիվ եք վարձում: | +| NFT-ները թվայնորեն յուրօրինակ են, գոյություն չունի իրար հետ նույնական երկու NFT: | Ցանկացած ֆայլի պատճեն օրիգինալ ֆայլի հետ նույնական է: | +| NFT-ի սեփականության վկայականը պահապանվում է բլոկչեյնում, և բոլորը կարող են հաստատել այն: | Թվային իրերի սեփականության վկայականները պահպանվում են տարբեր կառույցների կողմից վերահսկվող սերվերնում, այդպիսով Ձեր սեփականության իրավունքը վստահելով նրանց: | +| NFT-ները Էթերիումում գործող սմարթ կոնտրակներ են: Սա նշանակում է, որ դրանք հեշտությամբ կարող են օգտագործվել Էթերիումում գործող այլ սմարթ կոնտրակտների և հավելվածների կողմից: | Թվային ատկիվներով աշխատող ընկերությունները սովորաբար ունեն իրենց սեփական առանձին ենթակառուցվածքը: | +| Ստեղծագործողները կարող են ցանկացած վայրում վաճառել իրենց աշխատանքը ունենալով հասանելիություն գլոբալ շուկային: | Ստեղծագործողները ապավինում են այն ենթակառուցվածքների և վաճառքի հարթակների վրա, որոնցից օգտվում են: Դրանք երբեմն կարող են աշխարհագրական կամ օգտագործման պայմանների հետ կապված սահմանափակումների առարկա դառնալ: | +| ՅՏ Ստեղծագործողները կարող են պահպանել իրենց աշխատանքի նկատմամբ սեփականության իրավունքը և վերավաճառքից ուղղակիորեն ստանալ հոնորարներ, այդ ամեն ինչը ծրագրավորելով ՅՏ-ի կոնտրակտում: | Թվային իրերի վաճառքով զբաղվող ընկերությունները իրենց են պահում վաճառքից գոյացած եկամուտների մեծամասնությունը: | + +## Ինչպես են ՅՏ-երը աշխատում {#how-nfts-work} + +Ինչպես Էթերիումում թողարկված ցանկացած տոկեն, ՅՏ-երը նույնպես թողարկվում են սմարթ կոնտրակների միջոցով: Սմարթ կոնտրակտը համապատասխանեցվում է ՅՏ ստանդարտներից(օրինակ ERC-721 կամ ERC-1155) որևէ մեկին, որը սահմանում է թե ինչ գործառույթներ է տվյալ կոնտրակտը ունենալու: Կոնտրակտը կարող է ՅՏ թողարկել և դա սեփականաշնորհել ինչ-որ կոնկրետ անձի: Սեփականությունը սահմանվում է կոնտրակտում, որտեղ իրար հետ կապվում են ՅՏ-երը իրենց սեփականատերերի հասցեների հետ: NFT-ն ունի նույնականացման համար և մետատվյալներ, որոնք հենց դարձնում են այդ տոկենը յուրահատուկ: + +Երբ ինչ որ մեկը ՅՏ է ստեղծում կամ թողարկում, նրանք իրականում գործարկում են սմարթ կոնտրակտում առկա գործառույթ, որը այդ անձի հասցեին ինչ-որ ՅՏ է կցում: Տվյալները պահպանվում են կոնտրակտում, որը բլոկչեյնի մաս է կազմում: Կոնտրակտ ստեղծողը դրան կարող է հավելյալ հատկանիշներ ավելացնել, օրինակ ըընդհանուր պաշարները սահմանափակելու կամ ստեղծողին յուրաքանչյուր տոկենի փոխանցումից հոնորար վճարելու: + +## Ինչի համար են ՅՏ-երն օգտագործվում: {#nft-use-cases} + +ՅՏ-եևն օգտագործվում են շատ բաների համար, այդ թվում. + +- ապացույց, որ դուք ինչ-որ միջոցառման եք մասնակցել +- հավաստագիր, որ դուք տվյալ դասընթացն եք անցել +- որպես խաղերում ձեռք բերելի պարագաներ +- թվային արվեստ +- իրական աշխարհի ակտիվները տոկենիզացում +- ապացուցել ձեր օնլայն ինքնությունը +- որևէ բովանդակության հասանելություն ձեռք բերել +- որպես տոմսեր +- ապակենտրոնացված համացանցի դոմեյնային անուններ +- գրավ ապ-ֆինանսների հարթակում + +Գուցե դուք արտիստ եք, ով ցանկանում է կիսել իր աշխատանքը օգտագործելով NFT-ներ, առանց դրանց վրա վերահսկողությունը կորցնելու կամ եկամուտները միջնորդների հետ կիսելու: Դուք կարող եք նոր կոնտրակտ ստեղծել և նշել NFT-երի քանակի, դրանց հատկություններն և կցել ինչ-որ արվեստի հավաքածույի հղում: Որպես արտիստ, Դուք կարող եք սմարթ կոնտրակտում նշել հոնորարի չափը, որով պետք է վարձատրվեք(օրինակ՝ վաճառքի գնի 5 %-ը յուրաքանչյուր NFT-ի փոխանցումից): Դուք միշտ կարող եք ապացուցել, որ Դուք եք ստեղծել տրված NFT-ները, քանի որ դրամապանակը, որը տեղակայել է սմարթ կոնտրակտը բլոկչեյնում, Ձեզ է պատկանում: Ձեր գնորդները հեշտությամբ կարող են ապացուցել իրենց սեփականության իրավունքը ինչ-որ NFT-ի նկատմամբ, քանի որ նրանց դրամապանակների հասցեները կապված են այդ NFT-երի հետ կոնտրակում: Նրանք կարող են օգտագործել դա ամբողջ Էթերիում էկոհամակարգով, վստահ լինելով դրա բնօրինակության վրա: + +Կամ պատկերացրեք ինչ-որ սպորտային միջոցառման տոմս: Ինչպես որ միջոցառման կազմակերպիչը կարող է որոշել քանի տոմս պետք է վաճառել, այնպես էլ NFT-ի հեղինակը կարող է որոշել, թե քանի օրինակ է վաճառվելու: Երբեմն, դրանք իրարից չտարբերվող կրկնօրինակներ են, ինչպես օրինակ 5000 ընդհանուր ընդունելության տոմսեր: Երբեմն էլ, դրանք միանման են, բայց փոքր տարբերություններով: Օրինակ տարբեր տոմսերում տարբեր նստատեղ էր կարող են նշված լինել: Թվային իրերն ունեն տարբեր կիրառություններ: + +ethereum.org - ում, NFT-ներն օգտագործվում ցույց տալու համար, որ մարդիկ իրենց ներդրումն են ունեցել մեր GitHub պահոցում, կամ մասնակցել են մեր օնլայն հանդիպումներին: Մենք նույնիսկ մեր սեփական NFT դոմեյնի անունն ունենք: Եթե ​​դուք նպաստում եք ethereum.org-ին, կարող եք պահանջել POAP NFT: Որոշ կրիպտոմիջոցառումներ արդեն օգտագործել ՄԱԱ-երը որպես միջոցառման տոմսեր: [Ավելին նպաստելու մասին](/contributing/#poap). + +![ethereum.org POAP](./poap.png) + +Այս վեբկայքը նաև ունի այլընտրանքային դոմեյնի անուն, որն իրենից NFT է ներկայացնում՝ **ethereum.eth**: Մեր `.org` հասցեն վերահսկվում է DNS-ի կողմից, այնինչ ethereum`.eth`-ը գրանցված է Էթերիումում Էթերիումի անվանական Ծառայության(ԷԱԾ)-ի կողմից: Այն պատկանում է մեզ և վերահսկվում է մեր կողմից: [Ուսումնասիրեք մեր ԷԱԾ գրանցումները](https://app.ens.domains/name/ethereum.eth) + +[Ավելին՝ ԷԱԾ-ի (ENS) մասին](https://app.ens.domains) + + + +### NFT-ի անվտանգությունը {#nft-security} + +Էթերիումի անվտանգությունը հիմնված է Բաժնեմասային անվտանգության մեխանիզմի վրա: Համակարգը նախագծված է այնպես, որ մասնակիցների համար ֆինանսապես ձեռնտու չլինի փորձել խարդախություններ կատարել խանգարելով համակարգի բնականոն աշխատանքին, Էթերիումը դարձնելով հուսալի: Սրա շնորհիվ է, որ NFT-ները գոյություն ունեն: Հենց որ Ձեր NFT ստեղծման տրազակցիան պարունակող բլոկը հաստատվի, միլլիոնավոր Էթերներ կպահանջվնե այդ տրանզակցիան չեղարկելու կամ փոփոխելու համար: Էթերիումի ցանցի յուրաքանչյուր մասնակից ավտոմատ կերպով կհայտնաբերեր ՅՏ-ն կեղծել փորձողին, և վերջինս կտուգանվեր և կհեռացվեր ցանցից: + +NFT-ի հետ կապված անվտանգային հարցերը հիմանականում պայմանավորված են ֆիշինգներով, սմարթ կոնտրակտներում առկա թերություններով կամ օգտատերերի անզգուշությամբ, NFT սեփականատերերի համար լավ դրամապանակային անվտանգությունը օրհասական դարձնելով: + + + Ավելին՝ անվտանգության մասին + + +## Further reading {#further-reading} + +- [ՅՏ-երի ուղեցույց սկսնակների համար](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Լինդա Շի, Հունվար 2020_ +- [EtherscanNFT փնտրող](https://etherscan.io/nft-top-contracts) +- [ERC-721 տոկենի ստանդարտ](/developers/docs/standards/tokens/erc-721/) +- [ERC-1155 տոկենի ստանդարտ](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/src/content/translations/id/about/index.md b/public/content/translations/id/about/index.md similarity index 100% rename from src/content/translations/id/about/index.md rename to public/content/translations/id/about/index.md diff --git a/src/content/translations/id/community/events/index.md b/public/content/translations/id/community/events/index.md similarity index 100% rename from src/content/translations/id/community/events/index.md rename to public/content/translations/id/community/events/index.md diff --git a/src/content/translations/id/community/get-involved/index.md b/public/content/translations/id/community/get-involved/index.md similarity index 100% rename from src/content/translations/id/community/get-involved/index.md rename to public/content/translations/id/community/get-involved/index.md diff --git a/src/content/translations/id/community/grants/index.md b/public/content/translations/id/community/grants/index.md similarity index 100% rename from src/content/translations/id/community/grants/index.md rename to public/content/translations/id/community/grants/index.md diff --git a/src/content/translations/id/community/index.md b/public/content/translations/id/community/index.md similarity index 100% rename from src/content/translations/id/community/index.md rename to public/content/translations/id/community/index.md diff --git a/src/content/translations/id/community/language-resources/index.md b/public/content/translations/id/community/language-resources/index.md similarity index 100% rename from src/content/translations/id/community/language-resources/index.md rename to public/content/translations/id/community/language-resources/index.md diff --git a/public/content/translations/id/community/support/index.md b/public/content/translations/id/community/support/index.md new file mode 100644 index 00000000000..9272d3cdf3b --- /dev/null +++ b/public/content/translations/id/community/support/index.md @@ -0,0 +1,109 @@ +--- +title: Dukungan Ethereum +description: Mendapatkan dukungan di ekosistem Ethereum. +lang: id +--- + +# Dukungan Ethereum {#support} + +## Dukungan resmi Ethereum {#official-support} + +Apakah Anda sedang mencari dukungan resmi Ethereum? Hal pertama yang harus Anda ketahui adalah bahwa Ethereum bersifat terdesentralisasi. Ini berarti tidak ada organisasi, entitas, atau orang sentral yang memiliki Ethereum, dan karena ini, tidak ada kanal dukungan resmi. + +Memahami sifat terdesentralisasi Ethereum sangat penting karena siapa pun yang mengklaim sebagai pemberi dukungan resmi Ethereum mungkin sedang mencoba menipu Anda! Perlindungan terbaik terhadap para penipu adalah mengedukasi diri Anda sendiri dan memperhatikan aspek keamanan dengan serius. + + + Keamanan dan pencegahan penipuan Ethereum + + + + Pelajari tentang fundamental Ethereum + + +Sekalipun kurang adanya dukungan resmi, banyak kelompok, komunitas, dan proyek di keseluruhan ekosistem Ethereum senang memberikan bantuan. + +## Dukungan dompet {#wallet-support} + +Mengalami masalah dengan dompet Anda? Kebanyakan dompet telah mendedikasikan tim dukungan yang dapat menolong: + +- [MetaMask](https://metamask.zendesk.com/hc/) +- [Argent](https://support.argent.xyz/hc/) +- [MyEtherWallet](https://help.myetherwallet.com/) + +_Ini bukanlah daftar yang lengkap. Perlu bantuan menemukan bantuan untuk dompet yang khusus? Bergabunglah dengan [discord ethereum.org](https://discord.gg/ethereum-org) dan kami akan mencoba menolong Anda._ + +Sedang mencari dompet Ethereum? [Jelajahi daftar lengkap dompet Ethereum kami](/wallets/find-wallet/). + +## Membangun dapps {#building-support} + +Membangun dapat bisa saja sulit. Berikut adalah beberapa lingkungan yang berfokus pengembangan dengan para pengembang Ethereum berpengalaman yang senang memberikan bantuan. + +- [Discord CryptoDevs](https://discord.gg/Z9TA39m8Yu) +- [StackExchange Ethereum](https://ethereum.stackexchange.com/) +- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) +- [Universitas Web3](https://www.web3.university/) + +Anda juga dapat menemukan dokumentasi dan panduan pengembangan di bagian [Sumber pengembang Ethereum](/developers/) kami. + +### Perangkat {#dapp-tooling} + +Apakah pertanyaan Anda terkait dengan peralatan, proyek, atau pustaka tertentu? Kebanyakan proyek memiliki peladen atau forum obrolan yang dikhususkan untuk mendukung Anda. + +Berikut adalah beberapa contoh populer: + +- [Solidity](https://gitter.im/ethereum/solidity/) +- [ethers.js](https://discord.gg/6jyGVDK6Jx) +- [web3.js](https://discord.gg/GsABYQu4sC) +- [Hardhat](https://discord.gg/xtrMGhmbfZ) +- [Truffle](https://discord.gg/8uKcsccEYE) +- [Alchemy](http://alchemy.com/discord) + +## Menjalankan node {#node-support} + +Jika Anda menjalankan node atau validator, berikut adalah beberapa komunitas yang dikhususkan untuk menolong Anda memulai. + +- [Discord EthStaker](https://discord.gg/ethstaker) +- [Reddit EthStaker](https://www.reddit.com/r/ethstaker) + +Kebanyakan tim yang membangun klien Ethereum juga telah mendedikasikan lingkungan untuk publik di mana Anda dapat mendapatkan dukungan dan mengajukan pertanyaan. + +### Klien eksekusi {#execution-clients} + +- [Geth](https://discord.gg/FqDzupGyYf) +- [Nethermind](https://discord.gg/YJx3pm8z5C) +- [Besu](https://discord.gg/p8djYngzKN) +- [Erigon](https://github.com/ledgerwatch/erigon/issues) + +### Klien konsensus {#consensus-clients} + +- [Prysm](https://discord.gg/prysmaticlabs) +- [Nimbus](https://discord.gg/nSmEH3qgFv) +- [Lighthouse](https://discord.gg/cyAszAh) +- [Teku](https://discord.gg/7hPv2T6) +- [Lodestar](https://discord.gg/aMxzVcr) + +Anda juga dapat [mempelajari cara menjalankan node di sini](/developers/docs/nodes-and-clients/run-a-node/). + +## Pertanyaan yang sering diajukan {#faq} + +### Saya telah mengirim ETH ke dompet yang salah {#wrong-wallet} + +Transaksi yang dikirimkan di Ethereum tidak dapat dibalikkan. Sayangnya, jika Anda telah mengirim ETH ke dompet yang salah, tidak ada cara untuk mendapatkan kembali dana ini. Tidak ada satu organisasi, entitas, atau orang sentral yang memiliki Ethereum, yang berarti tidak ada satu pun yang dapat membalikkan transaksi. Oleh karena itu, sangat penting untuk selalu memeriksa ulang transaksi Anda sebelum mengirimkannya. + +### Bagaimana saya dapat mengklaim hadiah Ethereum? {#giveaway-scam} + +Hadiah Ethereum adalah penipuan yang dirancang untuk mencuri ETH Anda. Jangan tergoda dengan penawaran yang tampak terlalu menggiurkan — jika Anda mengirim ETH ke suatu alamat hadiah, Anda tidak akan menerima hadiah, dan Anda tidak akan dapat mendapatkan dana Anda kembali. + +[Lebih lanjut tentang pencegahan penipuan](/security/#common-scams) + +### Transaksi saya macet {#stuck-transaction} + +Transaksi di Ethereum dapat terkadang mengalami kemacetan jika Anda telah mengirimkan biaya transaksi yang lebih rendah dari yang diharuskan karena permintaan jaringan. Banyak dompet menyediakan opsi untuk mengirimkan kembali transaksi yang sama dengan biaya transaksi yang lebih tinggi untuk memungkinkan transaksi diproses. Sebagai alternatif, Anda dapat membatalkan transaksi berstatus tunggu dengan mengirimkan transaksi ke alamat Anda sendiri dan menggunakan nonce yang sama sebagai transaksi berstatus tunggu. + +[Cara mempercepat atau membatalkan transaksi berstatus tunggu di MetaMask](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) + +[Cara membatalkan transaksi Ethereum berstatus tunggu](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) + +### Bagaimana cara menambang Ethereum? {#mining-ethereum} + +Kami tidak menyarankan membeli peralatan menambang jika Anda belum menambang Ethereum. Di ~Q3/Q4 2022, [penggabungan](/roadmap/merge/) akan terjadi, yang mengalihkan Ethereum dari bukti kerja ke bukti taruhan. Perubahan ini berarti menambang Ethereum tidak akan mungkin lagi. diff --git a/src/content/translations/id/contributing/translation-program/faq/index.md b/public/content/translations/id/contributing/translation-program/faq/index.md similarity index 100% rename from src/content/translations/id/contributing/translation-program/faq/index.md rename to public/content/translations/id/contributing/translation-program/faq/index.md diff --git a/public/content/translations/id/contributing/translation-program/index.md b/public/content/translations/id/contributing/translation-program/index.md new file mode 100644 index 00000000000..832a17f0583 --- /dev/null +++ b/public/content/translations/id/contributing/translation-program/index.md @@ -0,0 +1,154 @@ +--- +title: Program Penerjemahan +lang: id +description: Bagaimana berkontribusi pada Program Terjemahan ethereum.org +--- + +# Program Penerjemahan {#translation-program} + +Program Terjemahan adalah sebuah usaha kolaboratif untuk menerjemahkan ethereum.org ke berbagai bahasa untuk membuat situs web lebih mudah diakses oleh miliaran penutur non-Inggris di seluruh dunia. + +Kemajuan kami sejauh ini: + +- [**2.500+** penerjemah](/contributing/translation-program/acknowledgements/) +- [**40** bahasa ada di situs](/languages/) +- [**2,9 juta** kata telah diterjemahkan di 2021](/contributing/translation-program/acknowledgements/) + +Jika Anda ingin terlibat dan membantu kami mengembangkan komunitas Ethereum global dengan menerjemahkan situs web ke dalam bahasa Anda, ikuti langkah-langkah di bawah ini! + + + Lihat halaman Penghargaan Penerjemah kami, dan{" "} + ambil token POAP Anda! Jika Anda menerjemahkan ethereum.org pada tahun 2021, ada POAP unik yang menunggu Anda.{" "} + Selengkapnya tentang POAP + + +## Misi dan visi {#mission-and-vision} + +Komunitas Ethereum bertujuan untuk menjadi global dan inklusif, namun sebagian besar kontennya hanya melayani penutur bahasa Inggris, meninggalkan 6 miliar pembicara non-Inggris di dunia. Agar ethereum.org bertindak sebagai portal menuju ke Ethereum untuk komunitas di seluruh dunia, kami percaya menyediakan konten Ethereum dalam bahasa ibu mereka bagi penutur non-Inggris sangat penting. + +Program Terjemahan ethereum.org bertujuan untuk membuat Ethereum dapat diakses oleh semua orang dengan menerjemahkan ethereum.org dan konten Ethereum lainnya ke dalam sebanyak mungkin bahasa. + +**Misi kami** + +- Menyediakan versi terjemahan situs web untuk memberdayakan pengujung di seluruh dunia untuk belajar mengenai Ethereum dalam bahasa ibu mereka +- Memfasilitasi penyesuaian lebih banyak anggota ke komunitas Ethereum global +- Memungkinkan informasi dan pengetahuan Ethereum yang lebih mudah diakses dan dibagikan secara inklusif +- Memberdayakan anggota komunitas untuk mengontribusikan terjemahan ke Ethereum dan membuat tanda mereka di ekosistem +- Mengidentifikasi, menghubungkan dengan, dan menyediakan panduan kepada kontributor bergairah yang ingin terlibat dalam ekosistem + +**Visi kami** + +- Menerjemahkan konten penting untuk anggota komunitas Ethereum dari negara dan belahan dunia sebanyak mungkin +- Mendukung berbagi pengetahuan antar bahasa untuk menciptakan komunitas Ethereum yang lebih terinformasi dan terdidik +- Meningkatkan inklusivitas dan aksesibilitas Ethereum dengan menghilangkan hambatan bahasa yang menghalangi penutur non-Inggris bergabung dengan ekosistem + +## Cara menerjemahkan {#how-to-translate} + + + Kami menyarankan Anda untuk melihat Panduan Gaya Penerjemahan ethereum.org. Ini berisi beberapa panduan, instruksi, dan tips yang paling penting bagi para penerjemah dan bisa menjadi rujukan saat melokalkan situs web. + {" "}Lihat Panduan Gaya Penerjemahan + + +1. **[Bergabung dengan projek kami di Crowdin](https://crowdin.com/project/ethereum-org/invite)** + Anda harus masuk ke akun Crowdin atau mendaftar jika belum memilikinya. Yang diperlukan untuk mendaftar hanyalah akun email dan kata sandi. + +2. **Buka bahasa yang ingin Anda terjemahkan dan cari dokumen yang akan dikerjakan** + Konten situs web dibagi menjadi beberapa versi dokumen dan bahasa. Anda dapat memeriksa kemajuan setiap dokumen di sebelah kanan – jika kemajuan terjemahan di bawah 100%, silakan beri kontribusi! + + Tidak melihat bahasa Anda dicantumkan? [Buat masalah](https://github.com/ethereum/ethereum-org-website/issues/new/choose) atau ajukan pertanyaan di [Discord](https://discord.gg/ethereum-org) kami + + ![File yang diterjemahkan dan tidak diterjemahkan di Crowdin](./how-to-translate/crowdin-files.png) + + Catatan tentang versi konten: kami menggunakan 'ember konten' di dalam Crowdin untuk membuat konten berprioritas tertinggi dirilis terlebih dahulu. Ketika Anda memeriksa sebuah bahasa, misalkan, [Filipina](https://crowdin.com/project/ethereum-org/fil#) Anda akan melihat folder untuk ember konten ("1. Halaman beranda", "2. Gunakan Halaman Ethereum", dll.). + + Kami mendorong Anda untuk menerjemahkan dalam urutan numerik ini (1 → 2 → 3 → ⋯) untuk memastikan halaman dengan dampak tertinggi diterjemahkan terlebih dahulu. + + [Pelajari selengkapnya tentang versi konten ethereum.org](/contributing/translation-program/content-versions/) + +3. **Terjemahkan** + Setelah memilih file yang ingin diterjemahkan, file itu akan terbuka di editor online. Jika belum pernah menggunakan Crowdin sebelumnya, Anda dapat menggunakan panduan cepat ini untuk melihat dasar-dasarnya. + + ![Editor online Crowdin](./how-to-translate/online-editor.png) + + **_1 – Sidebar kiri_** + + - Belum diterjemahkan (merah) – teks yang belum dikerjakan. Ini adalah string yang harus Anda terjemahkan. + - Diterjemahkan (hijau) – teks yang telah diterjemahkan, tetapi belum ditinjau. Anda diperbolehkan untuk menyarankan terjemahan alternatif, atau memilih yang sudah ada dengan menggunakan tombol ‘’+’’ dan ‘’-‘‘ di editor. + - Disetujui (tanda centang) – teks yang telah ditinjau dan saat ini berada di situs web. + + Anda juga dapat menggunakan tombol di atas untuk mencari string tertentu, memfilternya berdasarkan status atau mengubah tampilan. + + **_2 – Area editor_** + + Area terjemahan utama – teks sumber ditampilkan di atas, dengan konteks dan tangkapan layar tambahan, jika tersedia. Untuk menyarankan terjemahan baru, masukkan terjemahan Anda di kolom ‘’Enter translation here’’ dan klik Save. + + Anda juga dapat menemukan terjemahan string dan terjemahan yang ada ke dalam bahasa lain di bagian ini, serta kecocokan memori terjemahan dan saran terjemahan mesin. + + **_3 – Sidebar kanan_** + + Di sinilah Anda dapat menemukan komentar, memasukkan entri memori terjemahan, dan glosarium. Tampilan default menunjukkan komentar dan memungkinkan penerjemah untuk berkomunikasi, mengangkat masalah, atau melaporkan terjemahan yang salah. + + Dengan menggunakan tombol di atas, Anda juga dapat beralih ke Translation Memory, tempat Anda dapat mencari terjemahan yang ada, atau ke Glosarium, yang terdiri dari deskripsi dan terjemahan standar istilah utama. + + Ingin mempelajari selengkapnya? Jangan ragu untuk memeriksa [dokumentasi tentang menggunakan editor online Crowdin](https://support.crowdin.com/online-editor/) + +4. **Proses peninjauan** + Setelah Anda menyelesaikan terjemahan (yaitu semua file untuk tampilan versi konten sudah 100%), layanan terjemahan profesional kami akan meninjau (dan berpotensi mengedit) konten. Setelah peninjauan selesai (yaitu kemajuan peninjauan sudah 100%), kami akan menambahkannya ke situs web. + + + Harap tdak menggunakan terjemahan mesin untuk menerjemahkan proyek tersebut. Semua terjemahan akan diulas sebelum ditambahkan ke situs web. Jika terjemahan usulan Anda didapati sebagai diterjemahkan mesin, terjemahan akan ditolak dan para kontributor yang sering menggunakan terjemahan mesin akan dikeluarkan dari proyek. + + +Ada pertanyaan? Atau ingin kolaborasi dengan tim kami atau penerjemah lainnya? Silakan posting di kanal #translations dari server [Discord ethereum.org](https://discord.gg/ethereum-org) kami + +Anda juga dapat menghubungi kami ke translations@ethereum.org + +Terima kasih atas partisipasi Anda dalam Program Terjemahan ethereum.org! + +**Jam kerja untuk para penerjemah** + +Ada jam kerja bagi para penerjemah pada hari Rabu kedua setiap bulannya. Ini diadakan di kanal suara #office-hours di [Discord ethereum.org](https://discord.gg/geKhWjtF), tempat Anda juga dapat menemukan waktu yang tepat dan detail tambahannya. + +Tujuan dari jam kerja adalah untuk memungkinkan para penerjemah kami menanyakan pertanyaan tentang proses penerjemahan, memberikan umpan balik tentang program, membagikan ide-ide mereka, atau hanya sekadar mengobrol dengan kami. Para peserta juga dapat belajar lebih banyak tentang program penerjemahan dan mendapatkan beberapa informasi tentang menjadi penerjemah ethereum.org. Terakhir, kami ingin menggunakan panggilan ini untuk mengomunikasikan pengembangan terkini tentang program penerjemahan dan membagikan tips serta instruksi kunci dengan para kontributor kami. + +Jika Anda adalah seorang penerjemah ethereum.org atau ingin menjadi salah satunya, silakan bergabung dengan kami dalam salah satu sesi ini. + + + Jika Anda membantu kami dengan terjemahan, Anda mungkin menemukan beberapa informasi yang berguna dalam Pertanyaan yang Sering Diajukan tentang terjemahan kami. + {" "}Pertanyaan yang Sering Diajukan tentang menerjemahkan ethereum.org + + +## Sumber Daya {#resources} + +### Panduan {#guides} + +- [Panduan Gaya Penerjemahan](/contributing/translation-program/translators-guide/) _– Instruksi dan tips untuk penerjemah ethereum.org_ +- [Pertanyaan yang Sering Diajukan tentang penerjemahan](/contributing/translation-program/faq/) _– Pertanyaan yang paling sering diajukan dan jawabannya tentang Program Penerjemahan ethereum.org_ +- [Versi konten](/contributing/translation-program/content-versions/) _– halaman mana yang termasuk dalam setiap versi konten ethereum.org_ + +### Perangkat {#tools} + +- [Portal Bahasa Microsoft](https://www.microsoft.com/en-us/language) _– berguna untuk menemukan dan memeriksa terjemahan standar istilah_ +- [Linguee](https://www.linguee.com/) _– mesin pencarian khusus terjemahan dan kamus yang memungkinkan pencarian berdasarkan kata atau frasa_ +- [Pencarian istilah Proz](https://www.proz.com/search/) _– database kamus terjemahan dan glosarium untuk istilah khusus_ +- [Eurotermbank](https://www.eurotermbank.com/) _– koleksi terminologi Eropa dalam 42 bahasa_ + +### Komunitas {#communities} + +- [Grup penerjemahan Discord khusus bahasa](https://discord.gg/ethereum-org) _– sebuah inisiatif untuk menghubungkan para penerjemah ethereum.org ke dalam Grup Penerjemahan_ +- [Grup penerjemah bahasa Mandarin](https://www.notion.so/Ethereum-org-05375fe0a94c4214acaf90f42ba40171) _– Halaman gagasan untuk memudahkan koordinasi di antara para penerjemah bahasa Mandarin_ + +### Pembaruan terbaru {#latest-updates} + +Untuk tetap mendapatkan info terkini tentang kemajuan Program Terjemahan terbaru, Anda dapat mengikuti [blog Yayasan Ethereum](https://blog.ethereum.org/): + +- [Pembaruan tonggak pencapaian Oktober 2021](https://blog.ethereum.org/2021/10/04/translation-program-update/) +- [Pembaruan tonggak pencapaian Desember 2020](https://blog.ethereum.org/2020/12/21/translation-program-milestones-updates-20/) +- [Pembaruan tonggak pencapaian Juli 2020](https://blog.ethereum.org/2020/07/29/ethdotorg-translation-milestone/) +- [Peluncuran Program Terjemahan Agustus 2019](https://blog.ethereum.org/2019/08/20/translating-ethereum-for-our-global-community/) + +## Terjemahan Launchpad Penaruhan Ethereum {#staking-launchpad} + +Komunitas terjemahan kami juga sedang mengerjakan [Launchpad Penaruhan](https://launchpad.ethereum.org/en/). Ini memperbolehkan siapa saja untuk mengatur validator Ethereum dan membantu mengamankan jaringan Ethereum. Launchpad saat ini terdiri dari 17 bahasa. + +Jika Anda tertarik, [ikuti projek terjemahan Launchpad Penaruhan Ethereum di Crowdin](https://crowdin.com/project/ethereum-staking-launchpad). Anda dapat [membuat masalah](https://github.com/ethereum/staking-launchpad/issues/new) di GitHub untuk meminta penambahan bahasa baru, jika bahasa Anda tidak tersedia di Crowdin. diff --git a/public/content/translations/id/dao/index.md b/public/content/translations/id/dao/index.md new file mode 100644 index 00000000000..e8f6b038655 --- /dev/null +++ b/public/content/translations/id/dao/index.md @@ -0,0 +1,165 @@ +--- +title: Organisasi otonom terdesentralisasi (DAO) +description: Gambaran umum tentang DAO di Ethereum +lang: id +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: Sebuah representasi DAO yang mengambil suara untuk sebuah usulan. +summaryPoint1: Komunitas yang dimiliki anggota tanpa kepemimpinan terpusat. +summaryPoint2: Cara yang aman untuk berkolaborasi dengan orang asing di internet. +summaryPoint3: Tempat yang aman untuk menyuntikkan dana untuk tujuan tertentu. +--- + +## Apa itu DAO? {#what-are-daos} + +DAO adalah organisasi yang dimiliki bersama, dikelola dengan rantai blok yang bertujuan untuk berbagi misi. + +DAO memungkinkan kita bekerja dengan orang-orang yang sepemikiran dari seluruh dunia tanpa harus mempercayai seorang pemimpin untuk mengelola dana atau menjalankan operasinya. Tidak ada seorang CEO yang bisa menghabiskan dana sembarangan atau CFO yang memanipulasi pembukuan. Selain itu, peraturan berbasis rantai blok dibuat dalam kode yang menunjukkan bagaimana organisasi bekerja dan bagaimana dananya digunakan. + +Mereka memiliki perbendaharaan bawaan yang tidak dapat diakses oleh siapa pun tanpa persetujuan grup. Keputusan diputuskan dengan proposal dan voting untuk meyakinkan semua orang di organisasi ini punya hak suara dan semua terjadi secara transparan di dalam rantai. + +## Mengapa kita membutuhkan DAO? {#why-dao} + +Memulai sebuah organisasi dengan seseorang yang melibatkan pendanaan dan uang membutuhkan kepercayaan besar terhadap orang-orang yang bekerja sama dengan Anda. Tetapi sulit untuk mempercayai seseorang yang jarang berinteraksi dengan Anda di internet. Dengan DAO, Anda tidak perlu mempercayai siapa pun di dalam grup, cukup percaya pada kode DAO-nya, yang 100% terbuka dan dapat diverifikasi oleh siapa saja. + +Ini membuka banyak peluang baru untuk kolaborasi dan koordinasi global. + +### Perbandingan {#dao-comparison} + +| DAO | Organisasi tradisional | +| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | +| Biasanya datar, dan sepenuhnya demokratis. | Biasanya berhierarki. | +| Pengambilan suara diperlukan oleh para anggotanya untuk mengimplementasikan perubahan apa pun. | Bergantung pada struktur, perubahan dapat diminta oleh satu pihak, atau pengambilan suara dapat ditawarkan. | +| Suara dihitung, hasilnya secara otomatis diimplementasikan tanpa memerlukan perantara terpercaya. | Jika pengambilan suara memungkinkan, suara dihitung secara internal, dan hasilnya harus ditangani secara manual. | +| Layanan yang ditawarkan ditangani secara otomatis dalam cara yang terdesentralisasi (misalnya pembagian dana amal). | Memerlukan penanganan manusia, atau otomatisasi yang dikontrol secara terpusat, yang cenderung mengarah pada manipulasi. | +| Semua aktivitas bersifat transparan dan diketahui secara umum. | Aktivitas umumnya bersifat privat, dan terbatas untuk diketahui publik. | + +### Contoh DAO {#dao-examples} + +Untuk membantu memahaminya, berikut adalah beberapa contoh cara menggunakan DAO: + +- Amal - Anda dapat menerima donasi dari siapapun di dunia atau memilih isu apa yang mau Anda danai. +- Kepemilikan bersama - Anda bisa memmbeli barang digital atau fisik para dan anggotabisa menentukan bagaimana menggunakan barang tersebut. +- Perusahaan patungan dan hibah – Anda dapat membuat dana patungan yang memasukkan dana modal dalam pool dan mengambil suara untuk menarik dananya. Uang yang dibayarkan kembali dapat dibagikan kembali nantinya di antara para anggota DAO. + +## Bagaimana cara kerja DAO? {#how-daos-work} + +Penyokong utama DAO adalah kontrak pintar, yang menentukan aturan organisasi dan pengelolaan dana bersama. Setelah kontrak dijalankan di Ethereum, tidak ada seorang pun yang dapat mengubah aturannya kecuali melalui pengambilan suara. Jika siapa pun mencoba melakukan sesuatu yang tidak tercakup dalam aturan dan logika kode, ini akan gagal. Dan karena perbendaharaan ditentukan oleh kontrak pintar juga, itu berarti tidak seorang pun dapat memakai uang kas tanpa persetujuan grup. Ini berarti DAO tidak memerlukan otoritas terpusat. Selain itu, keputusan kelompok ditentukan secara bersama, dan pembayaran otomatis disahkan ketika para pemilik suara sudah menentukan. + +Ini mungkin terjadi karena kontrak pintar bersifat tahan perubahan setelah dijalankan di Ethereum. Anda tidak bisa hanya mengedit kode (aturan DAO) tanpa diketahui orang-orang karena semua hal terbuka untuk publik. + + + Lebih lanjut tentang kontrak pintar + + +## Ethereum dan DAO {#ethereum-and-daos} + +Ethereum adalah fondasi sempurna untuk DAO dikarenakan beberapa alasan: + +- Konsensus yang dimiliki Ethereum terdistribusi dan cukup mapan jaringannya untuk dipercaya oleh organisasi. +- Kode kontrak pintar tidak dapat diubah setelah dijalankan, sekalipun oleh pemiliknya. Ini memungkinkan DAO dijalankan sesuai aturan yang dirpogram dengannya. +- Kontrak pintar dapat mengirim/menerima dana. Tanpa ini, Anda akan memerlukan perantara terpercaya untuk mengelola dana grup. +- Komunitas Ethereum telah terbukti lebih kolaboratif daripada kompetitif, yang memungkinkan praktik terbaik dan sistem dukungan dengan cepat berkembang. + +## Pengelolaan DAO {#dao-governance} + +Banyak pertimbangan dalam pengelolaan DAO, misalnya seperti bagaimana pemungutan suara dan bagaimana cara kerja proposal. + +### Delegasi {#governance-delegation} + +Delegasi dalam DAO seperti demokrasi perwakilan dalam dunia nyata. Pemegang token mendelegasikan suaranya kepada pengguna yang mereka nominasikan dan berkomitmen menjaga protokol serta terus memantaunya. + +#### Contoh yang terkenal {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) – Pemegang ENS bisa mendelegasikan suaranya kepada anggota komunitas yang mewakilinya. + +### Pengelolaan Transaksi Otomatis {#governance-example} + +Dalam beberapa DAO, transaksi akan terjadi secara otomatis jika para anggota secara quorum memilihnya. + +#### Contoh yang terkenal {#governance-example} + +[Nouns](https://nouns.wtf) – Dalam DAO Nouns, transaksi otomatis terjadi jika pemilik suara secara quorum memilih dan secara mayoritas menyepakati, selama pilihan itu tidak diveto oleh pada pendiri. + +### Pengelolaan Multisig {#governance-example} + +DAO bisa memiliki anggota hingga ribuan suara, dananya bisa disimpan dalam dompet yang kelola bersama oleh 5-20 anggota komunitas yang aktif, terpecaya, dan biasanya dikenal (identitas mereka diketahui publik). Setelah dipilih, penanda multisig melaksanakan amanat komunitas. + +## Hukum DAO {#dao-laws} + +Pada tahun 1977, negara bagian Wyoming menemukan LLC, bentuk usaha yang melindungi pengusaha dan membatasi tanggung jawab mereka. Belum lama ini, mereka mempelopori hukum DAO yang mengakui legalitas hukum bagi DAO. Kini, Wyoming, Vermont dan Virgin Islands punya hukum DAO dalam beberapa bentuk. + +### Contoh yang terkenal {#law-example} + +[CityDAO](https://citydao.io) – CityDAO menggunakan hukum DAO Wyoming untuk membeli tanah seluas 40 acre di dekat Taman Nasional Yellowstone. + +## Keanggotaan DAO {#dao-membership} + +Ada berbagai model untuk keanggotaan DAO. Keanggotaan dapat menentukan cara kerja pengambilan suara dan bagian utamai DAO lainnya. + +### Keanggotaan berbasis token {#token-based-membership} + +Biasanya sepenuhnya tanpa izin, tergantung pada token yang digunakan. Biasanya, token pengelola ini bisa diperdagangkan tanpa izin di bursa terdesentralisasi. Pihak lain, bisa mendapatkan token ini dengan menyediakan likuiditas dana atau melakukan 'bukti kerja'. Dengan cara mana pun, cukup dengan memiliki token ini memberikan akses untuk mengambil suara. + +_Umumnya dipakai untuk mengatur protokol terdesentralisasi yang luas dan/atau token itu sendiri._ + +#### Contoh yang terkenal {#token-example} + +[MakerDAO](https://makerdao.com) – MKR, token MakerDAO tersedia di bursa terdesentralisasi dan bisa dibeli jika ingin punya hak suara di Protokol Maker. + +### Keanggotaan berbasis saham {#share-based-membership} + +DAO berbasis saham lebih diizinkan, tetapi masih cukup terbuka. Semua anggota bisa mengajukan usulan kepada DAO, biasanya disediakan imbalan berbentuk token atau karya. Saham mewakili hak memberikan suara secara langsung dan kepemilikan. Anggota bisa mundur kapan saja sesuai dengan porsi saham mereka. + +_Biasanya digunakan untuk organisasi yang interaksinya lebih erat dan berfokus pada manusia seperti badan amal, asosiasi pekerja, dan klub investasi. Dapat juga mengatur protokol serta token._ + +#### Contoh yang terkenal {#share-example} + +[MolochDAO](http://molochdao.com/) – MolochDAO berfokus pada pendanaan proyek Ethereum. Mereka membutuhkan proposal untuk keanggotaan, sehingga grup dapat menilai apakah Anda memiliki keahlian dan modal yang diperlukan untuk membuat penilaian yang tepat tentang calon penerima hibah. Anda tidak bisa membeli saja akses ke DAO ini di pasar terbuka. + +### Keanggotaan Berbasis Reputasi {#reputation-based-membership} + +Reputasi menunjukkan bukti partisipasi dan diganjar dengan hak suara dalam DAO. Tidak seperti token atau keanggotaan berbasis saham, DAO berbasis reputasi tidak bisa dipindahtangankan kepemilikannya kepada kontributor. Reputasi tak bisa dibeli, dipindahtangankan atau didelegasikan; anggota DAO harus memperolehnya dengan berpartisipasi. Pemungutan suara di dalam rantai itu tak perlu izin dan calon anggota bebas mengajukan usulan untuk bergabung ke dalam DAO dan mendapatkan reputasi dan token sebagai imbalan atas kontribusi mereka. + +_Umumnya digunakan untuk pengembangan dan pengelolaan protokol yang terdesentralisasi serta dapps, juga cocok untuk beragam organisasi seperti badan amal, kolektif pekerja, grup investasi dll._ + +#### Contoh yang terkenal {#reputation-example} + +[DXdao](https://DXdao.eth.link) – DXdao adalah protokol dan aplikasi terdesentralisasi yang berdaulat untuk kelompok pembuat dan pengelolaan sejak 2019. Aplikasi terdesentralisasi ini memanfaatkan pengelolaan berbasis reputasi dan konsensus holografik untuk mengoordinasi dan mengelola dana, artinya tak ada yang memengaruhi pilihan mereka di masa datang. + +## Bergabung / Mulai Buat DAO {#join-start-a-dao} + +### Bergabung dengan DAO {#join-a-dao} + +- [DAO komunitas Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [Daftar DAO DAOHaus](https://app.daohaus.club/explore) +- [Daftar DAO Tally.xyz](https://www.tally.xyz) + +### Memulai DAO {#start-a-dao} + +- [Memanggil DAO dengan DAOHaus](https://app.daohaus.club/summon) +- [Mulai Menglola DAO dengan Tally](https://www.tally.xyz/add-a-dao) +- [Membuat DAO yang didukung oleh Aragon](https://aragon.org/product) +- [Memulai koloni](https://colony.io/) +- [Membuat DAO dengan DAOstack konsensus holografik](https://alchemy.daostack.io/daos/create) + +## Bacaan lebih lanjut {#further-reading} + +### Artikel tentang DAO {#dao-articles} + +- [Apa itu DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) +- [Buku Pedoman DAO](https://daohandbook.xyz) +- [Rumah DAO](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) +- [Apa itu DAO dan apa kegunaannya?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) +- [Cara Memulai Komunitas Digital yang Didukung oleh DAO](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) +- [Apa itu DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) +- [Apa itu Konsensus Holografik?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) +- [DAO bukanlah perusahaan: desentralisasi adalah masalah organisasi terotomasi oleh Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) +- [DAO, DAC, DA dan lainnya: Panduan Terminologi Lengkap](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Ethereum Blog](https://blog.ethereum.org) + +### Video {#videos} + +- [Apa itu DAO dalam kripto?](https://youtu.be/KHm0uUPqmVE) +- [Bisakah DAO dipakai membangun sebuah kota?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/public/content/translations/id/decentralized-identity/index.md b/public/content/translations/id/decentralized-identity/index.md new file mode 100644 index 00000000000..b065a15d453 --- /dev/null +++ b/public/content/translations/id/decentralized-identity/index.md @@ -0,0 +1,185 @@ +--- +title: Identitas terdesentralisasi +description: Apa yang dimaksud dengan indentitas terdesentralisasi, dan mengapa itu penting? +lang: id +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: /eth-gif-cat.png +summaryPoint1: Sistem Identitas konvensional memiliki penerbitan, pemeliharaan, dan kontrol yang tersentralisasi dari seluruh tanda pengenal Anda. +summaryPoint2: Identitas yang terdesentralisasi menghilangkan ketergantungan pada pihak ketiga yang tersentralisasi. +summaryPoint3: Berkat crypto, para pengguna sekarang memiliki perangkat untuk mengeluarkan, menahan, dan mengontrol pengenal dan pengesahan mereka sendiri sekali lagi. +--- + +Identitas menopang hampir setiap aspek kehidupan Anda hari ini. Menggunakan layanan daring, membuka akun bank, memberikan suara dalam pemilihan umum, membeli properti, mendapatkan pekerjaan—semua ini memerlukan pembuktian identitas Anda. + +Tetapi, sistem pengelolaan identitas telah bergantung pada pihak ketiga yang menerbitkan, menyimpan, dan mengendalikan tanda pengenal dan [pengesahan](#what-are-attestations) Anda. Ini berarti Anda tidak dapat mengontrol informasi terkait identitas Anda atau memutuskan siapa yang memiliki akses ke informasi pengenal pribadi (PII) dan seberapa banyak akses yang dimiliki pihak-pihak tersebut. + +Untuk mengatasi masalah ini, kami memiliki sistem identitas terdesentralisasi yang dibangun di atas rantai blok publik seperti Ethereum. Indentitas yang terdesentralisasi memungkinkan seseorang mengatur informasi terkait identitas mereka. Dengan solusi identitas yang terdesentralisasi, _Anda_ dapat membuat tanda pengenal dan mengklaim serta menyimpan pengesahan tanpa perlu bergantung pada oknum pusat, seperti penyedia layanan atau pemerintah. + +## Apa itu identitas? {#what-is-identity} + +Identitas berarti rasa diri individu, yang ditentukan oleh karakteristik unik. Identitas mengacu pada keberadaan _individu_, yaitu entitas manusia yang berbeda. Identitas juga bisa merujuk pada entitas non-manusia lainnya, misalnya organisasi atau otoritas. + +## Apa itu tanda pengenal? {#what-are-identifiers} + +Tanda pengenal adalah sepotong informasi yang bertindak sebagai penunjuk ke identitas atau identitas tertentu. Identifikasi umum meliputi: + +- Nama +- Nomor jaminan sosial/nomor ID pajak +- Nomor handphone +- Tanggal dan tempat lahir +- Kredensial identifikasi digital, misalnya, alamat email, nama pengguna, avatar + +Contoh tanda pengenal tradisional tersebut dikeluarkan, dipegang, dan dikendalikan oleh entitas pusat. Anda memerlukan izin dari pemerintah Anda untuk mengubah nama Anda atau dari platform media sosial untuk mengubah nama Anda. + +## Apa itu pengesahan? {#what-are-attestations} + +Sebuah pengesahan adalah suatu klaim yang dibuat oleh satu entitas terhadao entitas lainnya. Jika Anda hidup di Amerika Serikat, surat izin mengemudi yang diterbitkan untuk Anda dari departemen kendaraan bermotor (sebuah entitas) membuktikan bahwa Anda (entitas lainnya) telah diizinkan mengemudikan mobil secara legal. + +Pengesahan berbeda dari tanda pengenal. Sebuah pengesahan _memiliki_ tanda pengenal yang merujuk pada identitas tertentu, dan membuat klaim mengenai sebuah atribut yang terkait dengan identitas ini. Jadi, surat izin mengemudi Anda tidak hanya memiliki tanda pengenal (nama, tanggal lahir, alamat), namun juga memiliki pengesahan mengenai hak legal Anda untuk mengemudi. + +### Apa itu identifikasi terdesentralisasi? {#what-are-decentralized-identifiers} + +Tanda pengenal konvensional seperti nama legal Anda atau alamat email yang bergantung pada pihak-pihak ketiga - pemerintah dan penyedia layanan. Berbeda dengan berbagai tanda pengenal terdesentralisasi (DID), yang tidak diterbitkan. dikelola, atau dikendalikan oleh entitas pusat mana pun. + +Tanda pengenal terdesentralisasi diterbitkan, disimpan, dan dikendalikan oleh perorangan. Suatu [akun Ethereum](/developers/docs/accounts/) adalah sebuah contoh dari tanda pengenal yang terdesentralisasi. Anda dapat membuat akun-akun sebanyak yang Anda inginkan tanpa izin dari siapa pun dan tanpa perlu menyimpannya di suatu pusat penyimpanan. + +Tanda pengenal terdesentralisasi disimpan pada buku besar yang terdistribusi (rantai blok) atau jaringan peer-to-peer. Hal ini menjadikan DID (tanda pengenal terdesentralisasi) [unik secara global, mampu menyelesaikan masalah, dan dapat diverifikasi secara kriptografi](https://w3c-ccg.github.io/did-primer/). Sebuah tanda pengenal terdesentralisasi dapat diasosiasikan dengan entitas berbeda, seperti perorangan, organisasi, atau institusi pemerintahan. + +## Apa yang menjadikan tanda pengenal terdesentralisasi mungkin? {#what-makes-decentralized-identifiers-possible} + +### 1. Infrastruktur kunci publik (PKI) {#public-key-infrastructure} + +Infrastruktur kunci publik (PKI) adalah suatu informasi pengukuran keamanan yang menciptakan sebuah [kunci publik](/glossary/#public-key) dan [kunci pribadi](/glossary/#private-key) untuk sebuah entitas. Kriptografi dari kunci publik digunakan pada jaringan rantai blok untuk mengautentikasi identitas pengguna dan membuktikan kepemilikan dari aset digital. + +Beberapa tanda pengenal terdesentralisasi, contohnya adalah akun Ethereum, mempunyai kunci publik dan kunci privat. Kunci publik mengidentifikasi pengendali akun, sedangkan kunci privat dapat menandatangani dan mendekripsikan pesan yang ditujukan pada sebuah akun. Infrastruktur kunci publik (PKI) menyediakan bukti-bukti yang diperlukan untuk mengautentikasi berbagai entitas dan mencegah peniruan dan penggunaan identitas palsu, menggunakan [tanda tangan kriptografi](https://andersbrownworth.com/blockchain/public-private-keys/) untuk memverifikasi seluruh klaim. + +### 2. Penyimpanan data terdesentralisasi {#decentralized-datastores} + +Sebuah rantai blok berperan sebagai catatan data yang dapat diverifikasi: sebuah tempat penyimpanan yang terbuka, tanpa perlu kepercayaan, dan terdesentralisasi. Adanya rantai blok publik menghapuskan kebutuhan untuk menyimpan tanda pengenal di penyimpanan yang terpusat. + +Jika siapa pun perlu untuk mengonfirmasi validitas dari sebuah tanda pengenal terdesentralisasi, mereka dapat mencari kunci publik yang berasosiasi pada rantai blok tersebut. Hal ini berbeda dari tanda pengenal yang memerlukan pihak ketiga untuk melakukan autentikasi. + +## Bagaimana tanda pengenal terdesentralisasi dan pengesahan memungkinkan identitas yang terdesentralisasi? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} + +Identitas terdesentralisasi adalah ide bahwa informasi terkait identitas sebaiknya dikontrol secara mandiri, pribadi, dan mudah diakses, dengan tanda pengenal dan pengesahan yang menjadi blok bangunan utama. + +Dalam konteks identitas terdesentralisasi, pengesahan (juga dikenal dengan [Kredensial yang dapat diverifikasi](https://www.w3.org/TR/vc-data-model/)) merupakan pencegahan penyalahgunaan dengan klaim yang dibuat oleh penerbit dapat diverifikasi secara kriptogarfi. Setiap pengesahan atau kredensial yang dapat diverifikasi dari sebuah entitas (seperti organisasi) yang diterbitkan berasosiasi dengan DIDnya (tanda pengenal terdesentralisasi). + +Karena DID disimpan dalam rantai blok, semua orang dapat memverifikasi validitas dari sebuah pengesahan dengan melakukan cross-check pada DID penerbit di Ethereum. Pada dasarnya, rantai blok Ethereum berperan seperti penyimpanan global yang memungkinkan verifikasi DID yang berasosiasi dengan entitas tertentu. + +Indentitas terdesentralisasi adalah alasan berbagai pengesahan dapat dikendalikan mandiri dan dapat diverifikasi. Bahkan jika penerbit sudah tidak ada, pemegang selalu memiliki bukti dari pembentukan pengesahan dan validitasnya. + +Tanda pengenal terdesentralisasi juga penting untuk mengamankan privasi dari informasi pribadi melalui identitas yang terdesentralisasi. Sebagai contoh, jika seseorang mengajukan bukti dari sebuah pengesahan (surat izin mengemudi), pihak yang memverifikasi tidak perlu mengecek validitas informasi dari bukti tersebut. Melainkan, pihak yang memverifikasi hanya perlu jaminan kriptografi dari keaslian pengesahan dan identitas dari organisasi untuk menentukan bukti tersebut valid. + +## Tipe-tipe pengesahan dalam identitas terdesentralisasi {#types-of-attestations-in-decentralized-identity} + +Bagaimana informasi pengesahan disimpan dan dikumpulkan dalam ekosistem identitas berbasis Ethereum berbeda dari pengelolaan identitas konvensional. Berikut adalah garis besar dari berbagai pendekatan terkait penerbitan, penyimpanan, dan verifikasi pengesahan dalam sistem identitas terdesentralisasi: + +### Pengesahan di luar rantai {#off-chain-attestations} + +Salah satu pertimbangan terhadap penyimpanan pengesahan di dalam rantai adalah terdapatnya informasi seseorang yang ingin disimpan secara pribadi. Ethereum rantai blok yang bersifat publik menjadikannya tidak menarik untuk menyimpan pengesahan. + +Solusinya adalah penerbitan pengesahan yang dipegang oleh pengguna secara di luar rantai dalam dompet digital, namun ditanda tangani dengan DID penerbit yang disimpan di dalam rantai. Pengesahan ini dikodekan sebagai [Token Web JSON](https://en.wikipedia.org/wiki/JSON_Web_Token) dan mempunyai tanda tangan digital penerbit yang memudahkan verifikasi untuk klaim off-chain. + +Berikut adalah skenario hipotesis untuk menjelaskan pengesahan di luar rantai: + +1. Sebuah universitas (penerbit) membuat sebuah pengesahan (serifikat akademi digital), ditandai dengan kunci-kuncinya, dan diterbitkan untuk Bob (pemilik identitas). + +2. Bob melamar pekerjaan dan hendak membuktikan kualifikasi akademiknya pada penyedia kerja, jadi dia membagikan pengesahan dari dompet ponselnya. Perusahaan (yang memberifikasi) berikutnya dapat mengonfirmasi validitas dari pengesahan dengan memeriksa DID penerbit (seperti kunci publiknya di Ethereum). + +### Pengesahan di luar rantai dengan akses tetap {#offchain-attestations-with-persistent-access} + +Pada persetujuan ini, pengesahan diubah menjadi file JSON dan disimpan secara di luar rantai (idealnya pada platform [penyimpanan cloud terdesentralisasi](/developers/docs/storage/), seperti IPFS atau Swarm). Namun, [hash](/glossary/#hash) dari file JSON disimpan di dalam rantai dan ditautkan ke DID melalui registri di dalam rantai. DID yang terkait dapat berupa penerbit dari pengesahan tersebut atau penerimanya. + +Pendekatan ini memungkinkan sebuah pengesahan untuk mendapatkan persistensi berbasis rantai blok, sekaligus menjaga agar informasi klaim tetap terenkripsi dan dapat diverifikasi. Hal ini juga memungkinkan pemberitahuan rahasia terbatas karena pemegang kunci pribadi dapat mendekripsi informasi. + +### Pengesahan di dalam rantai {#onchain-attestations} + +Pengesahan di dalam rantai disimpan dalam [kontrak pintar](/developers/docs/smart-contracts/) pada rantai blok Ethereum. Kontrak pintar (bertindak sebagai catatan) akan memetakan pengesahan ke tanda pengenal terdesentralisasi di dalam rantai yang sesuai (sebuah kunci publik). + +Berikut contoh bagaimana cara kerja pengesahan di dalam rantai praktiknya: + +1. Sebuah perusahaan (XYZ Corp) berencana untuk menjual saham kepemilikan menggunakan kontrak pintar, namun hanya untuk pembeli yang telah menyelesaikan pemeriksaan latar belakang saja. + +2. XYZ Corp dapat meminta perusahaan melakukan pemeriksaan latar belakang untuk menerbitkan pengesahan di dalam rantai pada Ethereum. Pengesahan ini memastikan bahwa seseorang telah lulus pemeriksaan latar belakang tanpa mengungkap informasi pribadi apa pun. + +3. Kontrak pintar yang menjual saham dapat memeriksa kontrak catatan untuk identitas para pembeli yang telah disaring, memungkinkan kontrak pintar untuk menentukan siapa yang diizinkan untuk membeli saham atau tidak. + +### Token dan identitas soulbond {#soulbound} + +[Token soulbound](https://vitalik.ca/general/2022/01/26/soulbound.html) (NFT yang tidak dapat ditransfer) dapat digunakan untuk mengumpulkan informasi khas untuk dompet tertentu. Hal ini menciptakan identitas di dalam rantai unik secara efektif yang terikat pada alamat Ethereum khusus yang dapat menyertakan token yang mewakili pencapaian (seperti menyelesaikan beberapa kursus daring tertentu atau melewati skor ambang batas dalam permainan) atau partisipasi komunitas. + +## Manfaat dari identitas yang terdesentralisasi {#benefits-of-decentralized-identity} + +1. Identitas terdesentralisasi meningkatkan kontrol individu untuk mengidentifikasi informasi. Pengidentifikasi dan pengesahan terdesentralisasi dapat diverifikasi tanpa bergantung pada otoritas terpusat dan layanan pihak ketiga. + +2. Solusi identitas yang terdesentralisasi menyediakan sebuah metode yang tidak membutuhkan kepercayaan, tanpa gangguan, dan perlindungan privasi untuk memverivikasi dan mengatur identitas pengguna. + +3. Identitas terdesentralisasi memanfaatkan teknologi rantai blok yang membangun kepercayaan antar pihak yang berbeda dan memberikan kriptografi sebagai jaminan untuk membuktikan validitas dari pengesahan. + +4. Identitas yang terdesentralisasi menjadukan data identitas portable. Pengguna menyimpan pengesahan dan tanda pengenal di dompet berjalan dan dapat dibagikan dengan berbagai pihak yang mereka pilih. Tanda pengenal dan pengesahan yang terdesentralisasi tidak terkunci dalam database organisasi penerbit. + +5. Identitas terdesentralisasi seharusnya bekerja dengan baik dengan munculnya teknologi zero-knowledge yang akan memungkinkan berbagai pihak untuk membuktikan bahwa mereka memiliki atau telah melakukan sesuatu tanpa mengungkapkan apa sesuatu yang dimaksud. Hal tersebut dapat menjadi cara yang kuat untuk mengkombinasikan kepercayaan dan privasi untuk aplikasi seperti voting. + +6. Identitas yang terdesentralisasi memungkinkan mekanisme anti-Sybil untuk mengidentifikasi kapanpun seseorang berpura-pura menjadi beberapa orang untuk mempermainkan atau melakukan spam pada sejumlah sistem. + +## Pemanfaatan Identitas terdesentralisasi {#decentralized-identity-use-cases} + +Identitas yang terdesentralisasi memiliki berbagai pontesi yang dapat dimanfaatkan: + +### 1. Login secara menyeluruh {#universal-dapp-logins} + +Identitas terdesentralisasi dapat membantu menggantikan login berdasarkan kata sandi menjadi [autentikasi terdesentralisasi](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). Penyedia layanan dapat menerbitkan pengesahan pada pengguna, yang dapat disimpan dalam dompet Ethereum. Sebuah contoh pengesahan adalah [NFT](/nft/) menyetujui akses kepemilikan pada komunitas daring. + +Sebuah fungsi [Sign-in dengan Ethereum](https://login.xyz/) akan memungkinkan server untuk mengonfirmasi akun ethereum pengguna dan mencocokkan pengesahan yang dibutuhkan dari alamat akun mereka. Ini dimaksudkan bahwa pengguna dapat mengakses banyak platform dan situs web tanpa harus mengingat kata sandi yang panjang dan meningkatkan pengalaman daring pada para pengguna. + +### 2. Autentikasi KYC {#kyc-authentication} + +Penggunaan berbagai layanan daring mengharuskan seseorang untuk menyediakan pengesahan dan kredensial, seperti surat izin mengemudai atau paspor nasional. Namun, pendekatan ini dapat menimbulkan masalah karena informasi pribadi dari pengguna dapat disusupi dan penyedia layanan tidak dapat memverifikasi keaslian dari pengesahan. + +Identitas terdesentralisasi memungkinkan perusahaan melewati berbagai proses konvensional [Kenali Pelanggan Anda (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) dan mengautentikasi identitas pengguna melalui kredensial yang dapat diverifikasi. Ini mengurangi biaya manajemen identitas dan mencegah penggunaan dokumentasi palsu. + +### 3. Pemungutan suara dan komunitas daring {#voting-and-online-communities} + +Pemungutan suara daring dan media sosial adalah dua aplikasi terkini dari identitas terdesentralisasi. Skema pemungutan suara daring rentan terhadap manipulasi, terutama jika ada oknum jahat yang membuat identitas palsu untuk memilih. Meminta individu untuk menunjukkan pengesahan di dalam rantai dapat meningkatkan integritas proses pemungutan suara daring. + +Identitas terdesentralisasi dapat membantu menciptakan komunitas daring yang bebas dari akun palsu. Misalnya, setiap pengguna mungkin harus mengautentikasi identitas mereka menggunakan sistem identitas di dalam rantai, seperti Ethereum Name Service, sehingga mengurangi kemungkinan bot. + +### 4. Perlindungan Anti-Sybil {#sybil-protection} + +Serangan Sybil mengacu pada individu manusia yang menipu suatu sistem untuk berpikir bahwa mereka adalah beberapa orang untuk meningkatkan pengaruhnya. [Aplikasi grant-giving](https://gitcoin.co/grants/) yang menggunakan [voting kuadrat](https://www.radicalxchange.org/concepts/plural-voting/) rentan terhadap serangan Sybil ini karena nilai grant meningkat ketika lebih banyak orang memilihnya, mendorong pengguna untuk membagi kontribusi mereka mewakili banyak identitas. Identitas terdesentralisasi membantu mencegah hal ini dengan meningkatkan bobot pada setiap peserta untuk membuktikan bahwa mereka benar-benar manusia, meski sering kali tanpa harus mengungkapkan informasi pribadi tertentu. + +## Identitas terdesentralisasi {#use-decentralized-identity} + +Ada banyak proyek ambisius yang menggunakan Ethereum sebagai landasan untuk solusi identitas terdesentralisasi, diantaranya: + +- **[Layanan Nama Ethereum (ENS)](https://ens.domains/)** - _Sistem penamaan terdesentralisasi untuk tanda pengenal on-chain yang dapat dibaca mesin, seperti alamat dompet Ethereum, konten hash, dan metadata._ +- **[SpruceID](https://www.spruceid.com/)** - _Proyek identitas terdesentralisasi yang memungkinkan pengguna mengontrol identitas digital dengan akun Ethereum dan profil ENS daripada mengandalkan layanan pihak ketiga._ +- **[Layanan Pengesahan Ethereum (EAS)](https://attest.sh/)** - _Buku besar/protokol terdesentralisasi untuk membuat pengesahan di dalam rantai atau di luar rantai tentang segala hal._ +- **[Proof of Humanity (PoH)](https://www.proofofhumanity.id)** - _Bukti Kemanusiaan adalah sistem verifikasi identitas sosial yang dibangun di Ethereum._ +- **[BrightID](https://www.brightid.org/)** - _Jaringan identitas sosial open source yang terdesentralisasi, berupaya mereformasi verifikasi identitas melalui pembuatan dan analisis grafik sosial._ +- **[Proof-of-personhood Passport](https://proofofpersonhood.com/)** - _Aggregator identitas digital terdesentralisasi._ + +## Bacaan lebih lanjut {#further-reading} + +### Artikel {#articles} + +- [Kasus Penggunaan Rantai Blok: Rantai Blok dalam Identitas Digital](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ +- [Apa itu Ethereum ERC725? Manajemen Identitas Mandiri di Rantai Blok](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Sam Town_ +- [Bagaimana Rantai Blok Dapat Memecahkan Masalah Identitas Digital](https://time.com/6142810/proof-of-humanity/) — _Andrew R. Chow_ +- [Apa Itu Identitas Terdesentralisasi Dan Mengapa Anda Harus Peduli?](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ + +### Video {#videos} + +- [Identitas Terdesentralisasi (Bonus Livestream Session)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Video penjelasan yang bagus tentang identitas terdesentralisasi oleh Andreas Antonopolous_ +- [Masuk dengan Ethereum dan Identitas Terdesentralisasi dengan Ceramic, IDX, React, dan 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _Tutorial YouTube tentang membangun sistem manajemen identitas untuk membuat, membaca, dan memperbarui profil pengguna menggunakan dompet Ethereum mereka oleh Nader Dabit_ +- [BrightID - Identitas Terdesentralisasi di Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _Episode podcast Bankless membahas BrightID, solusi identitas terdesentralisasi untuk Ethereum_ +- [Internet Di Luar Rantai: Identitas yang terdesentralisasi & Kredensial yang Dapat Diverifikasi](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — Presentasi EthDenver 2022 oleh Evin McMullen + +### Komunitas {#communities} + +- [Aliansi ERC-725 di GitHub](https://github.com/erc725alliance) — _Pendukung standar ERC725 untuk mengelola identitas pada rantai blok Ethereum_ +- [Server Discord SpruceID](https://discord.com/invite/Sf9tSFzrnt) — _Komunitas untuk para penggemar dan pengembang yang bekerja pada sign-in dengan Ethereum_ +- [Lab Veramo](https://discord.gg/sYBUXpACh4) — _Komunitas developer yang berkontribusi membangun kerangka kerja untuk memungkinkan verifikasi data untuk aplikasi_ diff --git a/public/content/translations/id/defi/index.md b/public/content/translations/id/defi/index.md new file mode 100644 index 00000000000..44fdaf9f2b0 --- /dev/null +++ b/public/content/translations/id/defi/index.md @@ -0,0 +1,352 @@ +--- +title: Keuangan terdesentralisasi (DeFi) +description: Gambaran umum tentang DeFi di Ethereum +lang: id +template: use-cases +emoji: ":money_with_wings:" +image: /use-cases/defi.png +alt: Logo Eth yang terbuat dari batu bata lego. +sidebarDepth: 2 +summaryPoint1: Alternatif terbuka dan global untuk sistem keuangan saat ini. +summaryPoint2: Produk yang memungkinkan Anda meminjam, menyimpan, berinvestasi, berdagang, dan banyak lagi. +summaryPoint3: Berdasarkan teknologi sumber terbuka yang dengannya siapa pun dapat memrogram. +--- + +DeFi adalah sebuah sistem keuangan terbuka dan global yang dibangun untuk zaman internet – sebuah alternatif untuk sistem yang tidak tembus pandang, dikontrol dengan ketat, dan diselenggarakan bersama oleh infrastruktur dan proses yang berusia puluhan tahun. Sistem yang memberi Anda kontrol dan visibilitas atas uang Anda. Memberi Anda paparan tentang pasar global dan alternatif untuk mata uang lokal atau opsi perbankan Anda. Produk DeFi membuka layanan keuangan bagi siapa saja yang memiliki koneksi internet dan sebagian besar dimiliki dan dikelola oleh penggunanya. Sejauh ini kripto senilai puluhan miliar dolar telah mengalir melalui aplikasi DeFi dan terus berkembang setiap hari. + +## Apa itu DeFi? {#what-is-defi} + +DeFi adalah sebuah istilah kolektif untuk produk dan layanan keuangan yang dapat diakses oleh siapa saja yang dapat menggunakan Ethereum – siapa saja yang memiliki koneksi internet. Dengan DeFi, pasar selalu terbuka dan tidak ada otoritas terpusat yang dapat memblokir pembayaran atau menolak Anda mengakses apa pun. Layanan yang sebelumnya lambat dan berisiko terjadi kesalahan manusia menjadi otomatis dan lebih aman sekarang karena ditangani oleh kode yang dapat diperiksa dan diteliti oleh siapa saja. + +Ada ekonomi kripto yang sedang booming di luar sana, di mana Anda dapat memberi pinjaman, meminjam, melakukan long/short, mendapatkan bunga, dan banyak lagi. Orang-orang Argentina yang paham kripto telah menggunakan DeFi untuk menghindari inflasi yang melumpuhkan. Perusahaan telah mulai menyalurkan gaji karyawan mereka secara waktu nyata. Beberapa orang bahkan telah mengambil dan melunasi pinjaman senilai jutaan dolar tanpa perlu menunjukkan identifikasi pribadi. + + + +## DeFi vs keuangan tradisional {#defi-vs-tradfi} + +Salah satu cara terbaik untuk melihat potensi DeFi adalah dengan memahami permasalahan yang ada saat ini. + +- Beberapa orang tidak diberikan akses untuk membuat rekening bank atau menggunakan layanan keuangan. +- Kurangnya akses ke layanan keuangan dapat menghalangi orang-orang untuk dipekerjakan. +- Layanan keuangan dapat menghalangi Anda menerima pembayaran. +- Biaya tersembunyi dari layanan keuangan adalah data pribadi Anda. +- Pemerintah dan lembaga terpusat dapat menutup pasar sesuka hati. +- Jam perdagangan sering dibatasi pada jam kerja zona waktu tertentu. +- Pengiriman uang dapat memakan waktu berhari-hari karena proses internal manusia. +- Ada premi untuk layanan keuangan karena lembaga perantara membutuhkan pembayaran untuk jasa mereka. + +### Perbandingan {#defi-comparison} + +| DeFi | Keuangan tradisional | +| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Anda memegang uang Anda. | Uang Anda dipegang oleh perusahaan. | +| Anda mengontrol ke mana uang Anda pergi dan bagaimana uang itu dipakai. | Anda harus memercayai perusahaan untuk tidak salah dalam mengelola uang Anda, seperti memberi pinjaman kepada peminjam berisiko. | +| Transfer dana terjadi dalam hitungan menit. | Pembayaran dapat memakan waktu berhari-hari karena proses manual. | +| Aktivitas transaksi menggunakan nama samaran. | Aktivitas keuangan sangat berkaitan erat dengan identitas Anda. | +| DeFi terbuka untuk siapa saja. | Anda harus mengajukan permohonan untuk menggunakan layanan keuangan. | +| Pasar selalu terbuka. | Pasar tutup karena para karyawan perlu istirahat. | +| Dibangun di atas prinsip transparansi – siapa pun dapat melihat data produk dan memeriksa cara kerja sistem. | Lembaga keuangan adalah buku tertutup: Anda tidak dapat meminta untuk melihat riwayat pinjaman mereka, catatan aset yang mereka kelola, dan sebagainya. | + + + Jelajahi aplikasi DeFi + + +## Ini dimulai dengan Bitcoin... {#bitcoin} + +Bitcoin dalam banyak hal adalah aplikasi DeFi yang pertama. Bitcoin memungkinkan Anda benar-benar memiliki dan mengontrol nilai dan mengirimkannya ke mana saja di seluruh dunia. Ini dilakukan dengan menyediakan cara bagi sejumlah besar orang, yang tidak saling percaya, untuk menyepakati isi buku besar akun tanpa memerlukan perantara terpercaya. Bitcoin terbuka untuk siapa saja dan tidak ada yang memiliki wewenang untuk mengubah aturannya. Aturan Bitcoin, seperti kelangkaan dan keterbukaannya, ditulis ke dalam teknologi. Ini berbeda dengan keuangan tradisional di mana pemerintah dapat mencetak uang yang mengurangi nilai tabungan Anda dan perusahaan dapat menutup pasar. + +Ethereum dibangun di atas ini. Seperti Bitcoin, aturannya tidak dapat berubah terhadap Anda dan siapa pun yang memiliki akses. Namun itu juga membuat uang digital ini dapat diprogram, menggunakan [kontrak pintar](/glossary#smart-contract), sehingga Anda dapat lebih dari sekadar menyimpan dan mengirim nilai. + + + +## Uang yang dapat diprogram {#programmable-money} + +Ini terdengar aneh... "mengapa saya ingin memrogram uang saya"? Namun, ini lebih dari sekadar sebuah fitur default dari token di Ethereum. Siapa pun dapat memrogram logika ke dalam proses pembayaran. Sehingga Anda dapat memiliki kontrol dan keamanan Bitcoin yang digabungkan dengan layanan yang disediakan oleh lembaga keuangan. Ini memungkinkan Anda melakukan berbagai hal dengan mata uang kripto yang tidak dapat Anda lakukan dengan Bitcoin seperti memberi pinjaman dan mendapatkan pinjaman, menjadwalkan pembayaran, berinvestasi dalam reksadana indeks, dan banyak lagi. + + +
Jelajahi saran kami untuk aplikasi DeFi yang dapat dicoba jika Anda baru mengenal Ethereum.
+ + Jelajahi aplikasi DeFi + +
+ +## Apa yang dapat Anda lakukan dengan DeFi? {#defi-use-cases} + +Ada sebuah alternatif terdesentralisasi untuk kebanyakan layanan keuangan. Tetapi Ethereum juga menciptakan peluang untuk membuat produk keuangan yang benar-benar baru. Ini adalah sebuah daftar yang akan terus bertambah. + +- [Kirim uang ke seluruh dunia](#send-money) +- [Salurkan uang ke seluruh dunia](#stream-money) +- [Akses mata uang yang stabil](#stablecoins) +- [Pinjam dana dengan jaminan](#lending) +- [Pinjam tanpa jaminan](#flash-loans) +- [Mulai tabungan kripto](#saving) +- [Berdagang token](#swaps) +- [Kembangkan portofolio Anda](#investing) +- [Danai ide Anda](#crowdfunding) +- [Beli asuransi](#insurance) +- [Kelola portofolio Anda](#aggregators) + + + +### Kirim uang ke seluruh dunia dengan cepat {#send-money} + +Sebagai sebuah blockchain, Ethereum dirancang untuk mengirim transaksi dalam cara yang aman dan global. Seperti Bitcoin, Ethereum membuat pengiriman uang ke seluruh dunia semudah mengirimkan email. Cukup masukkan [nama ENS](/nft/#nft-domains) penerima Anda (seperti bob.eth) atau alamat akun mereka dari dompet Anda dan pembayaran Anda akan berpindah langsung ke mereka dalam hitungan menit (biasanya). Untuk mengirim atau menerima pembayaran, Anda akan memerlukan sebuah [dompet](/wallets/). + + + Lihat dapp pembayaran + + +#### Salurkan uang ke seluruh dunia... {#stream-money} + +Anda juga dapat menyalurkan uang melalui Ethereum. Ini memungkinkan Anda membayar gaji seseorang gaji dalam hitungan detik, yang memberi mereka akses ke uangnya kapan pun mereka membutuhkannya. Atau sewakan sesuatu dalam hitungan detik, seperti sebuah loker penyimpanan atau skuter listrik. + +Dan jika Anda tidak ingin mengirim atau menyalurkan [ETH](/eth/) karena perubahan jumlah nilainya, ada mata uang alternatif di Ethereum: stablecoin. + + + +### Akses mata uang yang stabil {#stablecoins} + +Volatilitas mata uang kripto adalah masalah bagi banyak produk keuangan dan pengeluaran umum. Komunitas DeFi telah mengatasi hal ini dengan stablecoin. Nilainya bersifat tetap dipatok dengan aset lainnya, biasanya mata uang yang populer seperti dolar. + +Produk koin seperti Dai atau USDC memiliki nilai yang tetap dalam cakupan beberapa sen dalam satu dolar. Ini menjadikannya sempurna sebagai sumber pendapatan atau untuk bisnis eceran. Banyak orang di Amerika Latin telah menggunakan stablecoin sebagai cara untuk melindungi tabungan mereka dalam masa ketidakpastian yang besar terhadap mata uang yang diterbitkan oleh pemerintah mereka. + + + Selengkapnya tentang stablecoin + + + + +### Meminjam {#lending} + +Layanan meminjam uang dari para penyedia terdesentralisasi hadir dalam dua variasi utama. + +- Peer-to-peer, yang berarti peminjam akan meminjam secara langsung dari pemberi pinjaman tertentu. +- Berbasis pool di mana para pemberi pinjaman menyediakan dana (likuiditas) ke sebuah pool yang darinya para peminjam dapat memperoleh pinjaman. + + + Lihat dapp peminjaman + + +Ada banyak keuntungan menggunakan pemberi pinjaman terdesentralisasi... + +#### Meminjam dengan privasi {#borrowing-privacy} + +Saat ini, memberi pinjaman dan meminjam uang semuanya berpusat pada para individu yang terlibat. Bank perlu tahu apakah kemungkinan besar Anda akan membayar kembali pinjaman sebelum pemberian pinjaman dilakukan. + +Pemberian pinjaman terdesentralisasi berlangsung tanpa mengharuskan kedua pihak menunjukkan identitas mereka. Sebaliknya, peminjam harus memasang jaminan yang akan diterima pemberi pinjaman secara otomatis jika pinjaman mereka tidak dilunasi. Beberapa pemberi pinjaman bahkan menerima NFT sebagai jaminan. NFT merupakan akta dari aset unit, seperti sebuah lukisan. [Selengkapnya tentang NFT](/nft/) + +Ini memungkinkan Anda meminjam uang tanpa pemeriksaan kredit atau menyediakan informasi pribadi. + +#### Akses ke dana global {#access-global-funds} + +Ketika Anda menggunakan pemberi pinjaman terdesentralisasi, Anda memiliki akses ke dana yang didepositokan dari seluruh dunia, bukan hanya dana dalam perwalian dari bank atau lembaga yang Anda pilih. Ini membuat pinjaman lebih mudah diakses dan meningkatkan tingkat bunga. + +#### Efisiensi pajak {#tax-efficiencies} + +Meminjam dapat memberi Anda akses ke dana yang diperlukan tanpa perlu menjual ETH Anda (kegiatan yang dipungut pajak). Sebagai gantinya, Anda dapat menggunakan ETH sebagai jaminan untuk pinjaman koin stabil. Ini memberi Anda aliran dana yang dibutuhkan dan memungkinkan Anda tetap menyimpan ETH. Stablecoin merupakan token yang jauh lebih baik saat Anda membutuhkan uang tunai karena nilainya tidak berfluktuasi seperti ETH. [Selengkapnya tentang stablecoin](#stablecoins) + +#### Pinjaman flash {#flash-loans} + +Pinjaman flash merupakan bentuk yang lebih bersifat ekprerimental dari pemberian pinjaman terdesentralisasi yang memungkinkan Anda meminjam tanpa memberikan jaminan atau menyediakan informasi pribadi apa pun. + +Pinjaman ini tidak dapat diakses oleh orang-orang non-teknis untuk saat ini, tetapi mengisyaratkan sesuatu yang mungkin dapat dilakukan oleh semua orang di masa mendatang. + +Cara kerjanya didasarkan pada pinjaman dikeluarkan dan dibayarkan kembali dalam transaksi yang sama. Jika pinjaman tidak dapat dibayarkan kembali, transaksi dibalikkan seolah-olah tidak pernah terjadi apa-apa. + +Dana yang sering digunakan disimpan dalam pool likuiditas (pool besar dari dana yang digunakan untuk peminjaman). Jika dana tidak digunakan pada saat tertentu, hal ini menciptakan peluang bagi seseorang untuk meminjam dana ini, mengadakan bisnis dengannya, dan membayarkannya kembali secara penuh hampir pada saat bersamaan dengan waktu peminjaman. + +Ini berarti banyak logika harus dimasukkan ke dalam transaksi yang sangat kustom. Sebuah contoh sederhana untuk ini mungkin adalah seseorang yang menggunakan pinjaman flash untuk meminjam sebesar nilai aset pada satu harga sehingga mereka dapat menjualnya pada bursa yang berbeda di mana harga jualnya lebih tinggi. + +Jadi dalam satu transaksi, hal berikut ini terjadi: + +- Anda meminjam sejumlah X dari $asset dengan nilai $1,00 dari bursa A +- Anda menjual X $asset pada bursa B dengan nilai $1,10 +- Anda membayarkan kembali pinjaman ke bursa A +- Anda menyimpan keuntungannya yang dikurangi biaya transaksi + +Jika pasokan bursa B menurun secara tiba-tiba dan pengguna tidak dapat membeli dengan nilai yang cukup untuk menutupi pinjaman aslinya, transaksinya akan gagal. + +Agar dapat melakukan contoh di atas dalam dunia keuangan tradisional, Anda akan membutuhkan jumlah yang sangat besar. Strategi penghasil uang ini hanya dapat dijangkau oleh mereka yang memiliki kekayaan. Pinjaman flash adalah sebuah contoh dari masa depan di mana kepemilikan sejumlah uang tidak harus merupakan prasyarat untuk menghasilkan uang. + +[Lebih lanjut tentang pinjaman flash](https://aave.com/flash-loans/) + + + +### Mulai menabung dengan kripto {#saving} + +#### Pemberian pinjaman {#lending} + +Anda dapat menghasilkan bunga pada kripto Anda dengan meminjamkannya dan melihat dana Anda bertambah dalam waktu nyata. Saat ini tingkat bunga jauh lebih tinggi daripada yang mungkin Anda dapatkan di bank lokal (jika Anda cukup beruntung untuk dapat mengakses tingkat bunga ini). Berikut contohnya: + +- Anda meminjamkan 100 Dai, [stablecoin](/stablecoins/), ke produk seperti Aave. +- Anda menerima 100 Aave Dai (aDai) yang merupakan sebuah token yang mewakili Dai Anda yang dipinjamkan. +- aDai Anda akan bertambah sesuai dengan tingkat bunga dan Anda dapat melihat saldo bertambah di dompet. Tergantung pada APR, saldo dompet Anda akan membaca sesuatu seperti 100,1234 setelah beberapa hari atau bahkan beberapa jam! +- Anda dapat menarik sejumlah Dai reguler yang setara dengan salso aDai Anda kapan saja. + + + Lihat dapp pemberi pinjaman + + +#### Lotre anti kerugian {#no-loss-lotteries} + +Lotre anti kerugian seperti PoolTogether merupakan cara baru yang menyenangkan dan inovatif untuk menyimpan uang. + +- Anda membeli 100 tiket dengan menggunakan 100 token Dai. +- Anda menerima 100 plDai yang mewakili 100 tiket Anda. +- Jika salah satu tiket Anda dipilih sebagai pemenangnya, saldo plDai Anda akan bertambah sebesar jumlah hadiah pool. +- Jika Anda kalah, 100 plDai Anda akan dilanjutkan untuk undian minggu depan. +- Anda dapat menarik sejumlah Dai reguler yang setara dengan salso plDai Anda kapan saja. + +Pool hadiah dibentuk oleh semua bunga yang dihasilkan oleh pemberian pinjaman deposito tiket seperti dalam contoh pemberian pinjaman di atas. + + + Cobalah PoolTogether + + + + +### Tukar token {#swaps} + +Ada ribuan token di Ethereum. Decentralized exchange (DEX) memungkinkan Anda memperdagangkan beragam token kapan pun yang Anda inginkan. Anda tidak pernah menyerahkan kontrol atas aset Anda. Ini seperti menggunakan bursa pertukaran mata uang ketika mengunjungi sebuah negara yang berbeda. Tetapi versi DeFi tidak pernah tutup. Pasarnya buka 24/7, 365 hari dalam setahun, dan teknologinya menjamin bahwa akan selalu ada seseorang yang menerima perdagangan. + +Misalnya, jika Anda ingin menggunakan lotre anti kerugian PoolTogether (yang dideskripsikan di atas), Anda akan memerlukan token seperti Dai atau USDC. DEX ini memungkinkan Anda menukar ETH dengan token tersebut dan menukarkannya kembali bila sudah selesai. + + + Lihat penukaran token + + + + +### Perdagangan tingkat lanjut {#trading} + +Ada lebih banyak opsi tingkat lanjut bagi para pedagang yang menginginkan sedikit kontrol yang lebih banyak. Batasi pesanan, metode perpetual, perdagangan margin, dan banyak lagi, semuanya dimungkinkan. Dengan Perdagangan terdesentralisasi, Anda mendapatkan akses ke likuiditas global, pasar yang tidak pernah tutup, dan Anda selalu mengontrol aset Anda. + +Ketika Anda menggunakan bursa terpusat, Anda harus mendepositokan aset Anda sebelum perdagangannya dilakukan dan mempercayakan mereka untuk mengelolanya. Ketika aset Anda didepositokan, aset ini berisiko karena bursa terpusat adalah sasaran yang empuk bagi para peretas. + + + Lihat dapp perdagangan + + + + +### Kembangkan portofolio Anda {#investing} + +Ada produk manajemen dana di Ethereum yang akan mencoba mengembangkan portofolio Anda berdasarkan strategi pilihan Anda. Ini bersifat otomatis, terbuka untuk semua orang, dan tidak memerlukan manajer manusia yang mengambil imbalan dari keuntungan Anda. + +Sebuah contoh yang baik untuk ini adalah [dana DeFi Pulse Index (DPI)](https://defipulse.com/blog/defi-pulse-index/). Ini adalah dana yang menyeimbangkan kembali secara otomatis untuk memastikan portofolio Anda selalu menyertakan [token DeFi teratas berdasarkan kapitalisasi pasar](https://www.coingecko.com/en/defi). Anda tidak perlu mengelola detail apa pun dan Anda dapat menarik dananya kapan pun Anda menginginkannya. + + + Lihat dapp investasi + + + + +### Danai ide Anda {#crowdfunding} + +Ethereum merupakan platform yang ideal untuk penggalangan dana: + +- Calon pemberi dana bisa berasal dari mana saja – Ethereum dan tokennya terbuka untuk siapa saja, di mana saja di dunia ini. +- Bersifat transparan sehingga penggalang dana dapat membuktikan berapa banyak uang yang telah dikumpulkan. Anda bahkan dapat melacak berapa banyak dana yang dipakai nantinya. +- Penggalang dana dapat menyiapkan pengembalian dana secara otomatis, misalnya, ada tenggat waktu tertentu dan jumlah minimum yang tidak dicapai. + + + Lihat dapp penggalangan dana + + +#### Pendanaan kuadrat {#quadratic-funding} + +Ethereum merupakan perangkat lunak sumber terbuka dan banyak usaha sejauh ini telah didanai oleh komunitas. Hal ini telah menyebabkan pertumbuhan sebuah model penggalangan dana baru yang menarik: pendanaan kuadrat. Hal ini berpotensi memperbaiki cara kita mendanai semua jenis barang publik di masa depan. + +Pendanaan kuadrat memastikan bahwa proyek yang menerima pendanaan terbanyak adalah proyek dengan permintaan paling unik. Dengan kata lain, proyek yang dibuat untuk meningkatkan kehidupan kebanyakan orang. Berikut cara kerjanya: + +1. Ada pool yang sesuai dengan dana yang didonasikan. +2. Satu giliran pendanaan publik dimulai. +3. Orang-orang dapat memberi isyarat permintaan mereka untuk sebuah proyek dengan menyumbangkan sejumlah uang. +4. Setelah gilirannya selesai, pool yang sesuai didistribusikan ke proyek. Proyek dengan permintaan terunik mendapatkan jumlah tertinggi dari pool yang sesuai. + +Ini berarti Proyek A dengan 100 sumbangannya senilai 1 dolar dapat menerima lebih banyak pendanaan daripada Proyek B dengan donasi tunggal senilai 10.000 dolar (bergantung pada ukuran pool yang sesuai). + +[Selengkapnya tentang pendanaan kuadrat](https://wtfisqf.com) + + + +### Asuransi {#insurance} + +Asuransi terdesentralisasi bertujuan untuk membuat asuransi lebih murah, lebih cepat dalam pencairan dananya, dan lebih transparan. Dengan lebih banyak otomatisasi, jaminannya lebih terjangkau, dan pencairan dananya jauh lebih cepat. Data yang digunakan untuk menentukan klaim Anda benar-benar transparan. + +Produk Ethereum, seperti perangkat lunak mana pun, dapat mengalami masalah karena bug dan eksploitasi. Jadi saat ini, banyak produk asuransi yang ada berfokus untuk melindungi penggunanya dari kerugian dana. Namun, ada proyek-proyek yang mulai membangun cakupan untuk segala hal yang dapat terjadi dalam kehidupan kita. Contoh yang bagus untuk ini adalah jaminan Etherisc Crop yang bertujuan [melindungi para petani kecil di Kenya terhadap bencana kekeringan dan banjir](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Asuransi terdesentralisasi dapat menyediakan jaminan yang murah bagi para petani yang sering ditolak oleh asuransi tradisional. + + + Lihat dapp asuransi + + + + +### Manajer agregator dan portofolio {#aggregators} + +Dengan begitu banyak hal yang terjadi, Anda akan memerlukan cara untuk tetap melacak semua investasi, pinjaman, dan perdagangan Anda. Ada sebuah host produk yang memungkinkan Anda mengkoordinir semua aktivitas DeFi dari satu tempat. Inilah keindahan dari arsitektur terbuka DeFi. Tim dapat menysusun antarmuka di mana Anda tidak hanya dapat melihat saldo di seluruh produk, Anda juga dapat menggunakan fiturnya. Anda mungkin menemukan manfaatnya saat menjelajahi lebih lanjut tentang DeFi. + + + Lihat dapp portofolio + + + + +## Bagaimana cara kerja DeFi? {#how-defi-works} + +DeFi menggunakan mata uang kripto dan kontrak pintar untuk menyediakan layanan yang tidak memerlukan perantara. Dalam dunia keuangan saat ini, lembaga keuangan bertindak sebagai penjamin transaksi. Ini memberi kekuasaan yang lebih besar bagi lembaga ini karena uang Anda mengalir melalui mereka. Ditambah lagi miliaran orang di seluruh dunia bahkan tidak dapat mengakses akun bank. + +Di DeFi, kontrak pintar menggantikan lembaga keuangan dalam transaksi. Kontrak pintar merupakan jenis akun Ethereum yang dapat menampung dana dan dapat mengirim/mengembalikan dananya berdasarkan kondisi tertentu. Tidak seorang pun dapat mengubah kontrak pintar bila sudah dijalankan – kontrak pintar akan selalu beroperasi seperti yang diprogramkan. + +Sebuah kontrak yang dirancang untuk menyalurkan uang jajan atau uang saku dapat diprogram untuk mengirim uang dari Akun A ke Akun B setiap hari Jum'at. Dan hanya akan melakukan itu selama Akun A memiliki dana yang dibutuhkan. Tidak seorang pun dapat mengubah kontrak dan menambahkan Akun C sebagai penerima untuk mencuri dana. + +Kontrak juga bersifat publik bagi siapa saja untuk diperiksa dan diaudit. Ini berarti kontrak yang buruk akan sering berada di bawah pemeriksaan komunitas dengan cukup cepat. + +Ini berarti saat ini ada kebutuhan untuk mempercayai anggota yang memiliki pengetahuan teknis lebih banyak di komunitas Ethereum yang dapat membaca kode. Komunitas berbasis open-source ini membantu mengawasi pengembang, tetapi kebutuhan ini akan berkurang seiring waktu karena kontrak pintar menjadi semakin mudah untuk dibaca dan cara lain untuk membuktikan keabsahan kode sedang dikembangkan. + +## Ethereum dan DeFi {#ethereum-and-defi} + +Ethereum adalah fondasi yang sempurna untuk DeFi dikarenakan beberapa alasan: + +- Tidak ada yang memiliki Ethereum atau kontrak pintar yang berjalan di dalamnya – ini memberi peluang bagi setiap orang untuk menggunakan DeFi. Ini juga berarti tidak ada seorang pun dapat mengubah aturan yang berkaitan dengan Anda. +- Semua produk DeFi berbicara dengan bahasa yang sama di belakang layar: Ethereum. Ini berarti banyak produk bekerja bersama secara mulus. Anda dapat meminjamkan token pada satu platform dan menukarkan token yang memiliki bunga di pasar yang berbeda pada sebuah aplikasi yang sama sekali berbeda. Ini seperti kemampuan untuk mencairkan poin loyalitas di bank Anda. +- Token dan mata uang kripto dibangun ke dalam Ethereum, buku besar bersama – melacak transaksi dan kepemilikan merupakan ciri khas Ethereum. +- Ethereum memungkinkan kebebasan finansial sepenuhnya – kebanyakan produk tidak akan pernah mengambil alih dana Anda, yang membuat Anda tetap memegang kontrol. + +Anda dapat membayangkan tentang DeFi dalam lapisan: + +1. Blockchain – Ethereum berisi riwayat transaksi dan state akun. +2. Aset – [ETH](/eth/) dan token lainnya (mata uang). +3. Protokol – [kontrak pintar](/glossary/#smart-contract) yang menyediakan fungsionalitas, misalnya, layanan yang memungkinkan pemberian pinjaman aset yang terdesentralisasi. +4. [Aplikasi](/dapps/) – produk yang kita gunakan untuk mengelola dan mengakses protokol. + +## Bangun DeFi {#build-defi} + +DeFi adalah gerakan sumber terbuka. Anda bisa memeriksa, melakukan fork, dan berinovasi pada semua protokol dan aplikasi DeFi. Karena tumpukan berlapis ini (semuanya berbagi blockchain dan aset dasar yang sama), protokol dapat digabungkan dan dicocokkan untuk membuka peluang kombo yang unik. + + + Lebih lanjut tentang membangun dapp + + +## Bacaan lebih lanjut {#futher-reading} + +### Data DeFi {#defi-data} + +- [DeFi Prime](https://defiprime.com/) +- [DeFi Llama](https://defillama.com/) +- [DeFi Rate](https://defirate.com/) + +### Artikel DeFi {#defi-articles} + +- [Panduan DeFi untuk pemula](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, 6 Januari, 2020_ + +### Video {#videos} + +- [Finematics - edukasi keuangan terdesentralisasi](https://finematics.com/) – _Video tentang DeFi_ +- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _Dasar-dasar DeFi: Semua hal yang perlu Anda ketahui untuk mulai menggunakan ruang yang terkadang membingungkan ini._ +- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _Apa itu DeFi?_ + +### Komunitas {#communities} + +- [Server Discord DeFi Llama](https://discord.gg/buPFYXzDDd) +- [Server Discord DeFi Pulse](https://discord.gg/Gx4TCTk) diff --git a/public/content/translations/id/desci/index.md b/public/content/translations/id/desci/index.md new file mode 100644 index 00000000000..1f3eb002ca1 --- /dev/null +++ b/public/content/translations/id/desci/index.md @@ -0,0 +1,139 @@ +--- +title: Ilmu Pengetahuan Terdesentralisasi (DeSci) +description: Gambaran umum tentang ilmu pengetahuan terdesentralisasi di Ethereum +lang: id +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Sebuah alternatif global dan terbuka untuk sistem ilmiah saat ini. +summaryPoint2: Teknologi yang memperbolehkan ilmuwan untuk mengalangkan pendanaan, menjalankan eksperimen, membagikan data, mendistribusikan wawasan, dan lain-lain. +summaryPoint3: Membangun gerakan sains terbuka. +--- + +## Ilmu pengetahuan desentralisasi (DeSci)? {#what-is-desci} + +Ilmu pengetahuan terpusat (DeSci) adalah gerakan yang bertujuan untuk membangun infrastruktur publik untuk pendanaan, penciptaan, peninjauan, pengakuan, penyimpanan, dan penyebaran pengetahuan ilmiah secara adil dan merata menggunakan rangkaian Web3. + +DeSci bertujuan untuk menciptakan ekosistem di mana para ilmuwan mendapatkan insentif untuk berbagi penelitian mereka dan menerima pengakuan atas karya mereka, sambil memungkinkan siapa pun untuk dengan mudah mengakses dan berkontribusi pada penelitian tersebut. DeSci membuat gagasan bahwa pengetahuan ilmiah harus dapat dilihat oleh semua orang dan bahwa proses penelitian ilmiah harus transparan. DeSci menciptakan model penelitian ilmiah yang lebih terdesentralisasi dan disebarkan, sehingga lebih tahan terhadap sensor dan kontrol oleh otoritas pusat. DeSci berharap menciptakan lingkungan di mana gagasan baru dan tidak konvensional dapat berkembang dengan desentralisasi akses ke pendanaan, perangkat ilmiah, dan saluran komunikasi. + +Sains terdesentralisasi memungkinkan sumber pendanaan yang lebih beragam (dari [DAO](/dao/), [sumbangan kuadratik](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) hingga crowdfunding dan lainnya), akses data dan metode yang lebih mudah diakses, dan memberikan insentif untuk produktibilitas. + +### Juan Benet - Gerakan DeSci + + + +## Bagaimana Desentralisasi meningkatkan ilmu pengetahuan {#desci-improves-science} + +Berikut ini adalah daftar masalah utama dalam ilmu pengetahuan beserta bagaimana ilmu pengetahuan terdesentralisasi dapat membantu mengatasi masalah-masalah ini + +| **Ilmu pengetahuan tersentralisasi** | **Ilmu pengetahuan tradisional** | +| ---------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Distribusi dana ditentukan oleh masyarakat menggunakan mekanisme seperti sumbangan kuadratik atau DAO. | Distribusi pendanaan diawasi oleh grup-grup yang kecil, tertutup, dan tersentralisasi. | +| Anda dapat bergabung dengan hal-hal di seluruh dunia dalam tim yang dinamis. | Pendanaan organisasi dan institusi beranda yang membatasi kolaborasi anda. | +| Ketentuan pendanaan dibuat secara daring dan transparan. Mekanisme pendanaan baru telah tereksplorasi. | Ketentuan pendanaan dibuat dalam waktu yang lumayan lama dan keterbukaan yang terbatas. Hanya sedikit mekanisme pendanaan yang tersedia. | +| Berbagi layanan laboratorium menjadi lebih mudah dan transparan dengan menggunakan primitif Web3. | Berbagi sumber daya laboratorium seringkali lambat dan tidak transparan. | +| Model-model baru untuk penerbitan dapat dikembangkan yang menggunakan primitif Web3 untuk kepercayaan, keterbukaan, dan akses universal. | Anda mempublikasikan melalui cara yang telah ditentukan atau yang disebut sebuah hal yang tidak efisien, bias, dan eksploitasi. | +| Anda dapat mendapatkan token-token dan reputasi untuk kerja tinjauan oleh rekan sejawat. | Kerja peer-review anda tidak dibayar, untuk publikasi yang menggunakan keuntungan. | +| Anda memiliki hak kekayaan intelektual (IP) yang Anda hasilkan dan mendistribusikannya sesuai dengan ketentuan yang transparan. | Institusi asal Anda memiliki hak kepemilikan atas hak kekayaan intelektual (HKI) yang Anda hasilkan. Akses terhadap hak kekayaan intelektual (HKI) tidak transparan. | +| Berbagi seluruh penelitian, termasuk data dari upaya yang tidak berhasil, dengan menjalankan semua langkah di dalam rantai. | Pembatasan publikasi berarti para peneliti lebih cenderung berbagi eksperimen yang memiliki hasil yang sukses. | + +## Ethereum dan DeSci {#ethereum-and-desci} + +Sistem sains desentralisasi akan memerlukan keamanan yang besar, moneter yang minim dan biaya transaksi, dan sebuah ekosistem pengembangan aplikasi yang kaya. Ethereum menyediakan semua yang diperlukan untuk membangun stak sains desentralisasi. + +## Kasus penggunaan DeSci {#use-cases} + +Desentralisasi membangun peralatan sains dalam akademia Web2 menuju ke dunia digital. Berikut ini adalah contoh-contoh penggunaan yang dapat ditawarkan oleh Web3 kepada komunitas ilmiah. + +### Penerbitan {#publishing} + +Penerbitan ilmiah terkenal bermasalah karena dikelola oleh rumah penerbitan yang mengandalkan tenaga kerja gratis dari ilmuwan, para reviewer, dan editor untuk menghasilkan makalah-makalah, namun kemudian menarik biaya penerbitan yang sangat tinggi. Masyarakat umum, yang biasanya telah secara tidak langsung membayar untuk pekerjaan dan biaya penerbitan melalui pajak, sering kali tidak dapat mengakses pekerjaan yang sama tanpa membayar penerbit lagi. Total biaya penerbitan makalah ilmiah per individu seringkali mencapai angka lima digit ($USD), yang merusak konsep pengetahuan ilmiah sebagai [barang publik](https://www.econlib.org/library/Enc/PublicGoods.html) sambil menghasilkan keuntungan besar bagi sekelompok kecil penerbit. + +Platform-platform gratis dan akses terbuka ada dalam bentuk server pra-cetak, [seperti ArXiv](https://arxiv.org/). Namun, platform-platform ini kurang memiliki kontrol kualitas, [mekanisme anti-sybil](https://csrc.nist.gov/glossary/term/sybil_attack), dan umumnya tidak melacak metrik tingkat artikel, artinya biasanya hanya digunakan untuk memublikasikan karya sebelum diserahkan ke penerbit tradisional. SciHub juga membuat makalah-makalah yang telah diterbitkan dapat di akses secara gratis, namun tidak secara legal, dan hanya setelah penerbit telah menerima pembayaran mereka dan mengaplikasikan peraturan hak cipta yang ketat pada karya tersebut. Hal ini meninggalkan kesenjangan kritis terhadap makalah-makalah dan data ilmiah yang dapat diakses dengan mekanisme legitimasi dan model insentif yang tertanam. Alat-alat untuk membangun sistem seperti itu sudah ada dalam Web3. + +### Keterulangan dan replikasi {#reproducibility-and-replicability} + +Keterulangan dan replikasi adalah dasar dari penemuan ilmiah berkualitas. + +- Hasil yang dapat diulang dapat dicapai berulang kali oleh tim yang sama menggunakan metodologi yang sama. +- Hasil yang dapat direplikasi dapat dicapai oleh kelompok yang berbeda menggunakan pengaturan eksperimen yang sama. + +Perangkat baru yang berasal dari Web3 dapat memastikan bahwa keterulangan dan replikasi menjadi dasar dari penemuan. Kita dapat menyelaraskan ilmu pengetahuan berkualitas ke dalam kerangka teknologi akademis. Web3 menawarkan kemampuan untuk membuat pengesahan untuk setiap komponen analisis: data mentah, mesin komputasi, dan hasil aplikasi. Keindahan dari sistem konsensus adalah bahwa ketika jaringan tepercaya dibentuk untuk menjaga komponen-komponen ini, setiap peserta jaringan dapat bertanggung jawab untuk mereproduksi perhitungan dan memvalidasi setiap hasil. + +### Pendanaan {#funding} + +Model standar saat ini untuk pendanaan ilmu pengetahuan adalah bahwa individu atau kelompok ilmuwan membuat aplikasi tertulis kepada lembaga pendanaan. Sebuah panel kecil individu yang dipercayai menilai aplikasi-aplikasi tersebut, kemudian mewawancarai para calon sebelum memberikan dana kepada sebagian kecil dari para pelamar. Selain menciptakan hambatan yang mengakibatkan kadang-kadang tahunan waktu tunggu antara mengajukan permohonan dan menerima sumbangan, model ini dikenal rentan terhadap bias, kepentingan pribadi, dan politik dari panel peninjau. + +Studi telah menunjukkan bahwa panel peninjau hibah sering kali tidak efektif dalam memilih proposal berkualitas tinggi, karena proposal yang sama yang diberikan kepada panel-panel yang berbeda memiliki hasil yang sangat berbeda. Seiring dengan semakin langka dana pendanaan, dana tersebut telah terkonsentrasi dalam kelompok kecil peneliti senior dengan proyek-proyek yang lebih konservatif secara intelektual. Dampak ini menciptakan lanskap pendanaan yang sangat kompetitif sehingga mengakibatkan insentif yang tidak sehat dan meredam inovasi. + +Web3 memiliki potensi untuk mengganggu model pendanaan yang rusak ini dengan menguji model insentif berbeda yang dikembangkan oleh DAO dan Web3 secara luas. [Pendanaan barang publik retroaktif](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), [pendanaan kuadratik](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), [pengelolaan DAO](https://www.antler.co/blog/daos-and-web3-governance), dan [struktur insentif ter-tokenisasi](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) adalah beberapa perangkat Web3 yang dapat merevolusi pendanaan ilmiah. + +### Kepemilikan dan pengembangan Hak Kekayaan Intelektual (HKI) {#ip-ownership} + +Hak Kekayaan Intelektual (HKI) merupakan masalah besar dalam ilmu pengetahuan konvensional: mulai dari terjebak di universitas atau tidak digunakan di perusahaan bioteknologi, hingga sulitnya menilai nilai HKI dengan jelas. Namun, kepemilikan aset digital (seperti data atau artikel ilmiah) adalah sesuatu yang Web3 lakukan dengan sangat baik menggunakan [token non-fungible (NFT)](/nft/). + +Seperti halnya NFT dapat mengalirkan pendapatan dari transaksi masa depan kembali ke pembuat asli, Anda dapat membentuk rantai atribusi nilai yang transparan untuk memberikan imbalan kepada para peneliti, badan pengatur (seperti DAO), atau bahkan subjek yang datanya dikumpulkan. + +[IP-NFT](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) juga dapat berfungsi sebagai kunci untuk repositori data terdesentralisasi dari eksperimen penelitian yang sedang dilakukan, dan dapat terintegrasi dengan keuangan NFT dan [DeFi](/defi/) (dari fraksionasi hingga pool pemberian pinjaman dan penilaian nilai). Ini juga memungkinkan entitas yang ada di dalam rantai seperti DAO seperti [VitaDAO](https://www.vitadao.com/) untuk melakukan penelitian secara langsung di rantai dalam rantai. Kemunculan [token "soulbound"](https://vitalik.ca/general/2022/01/26/soulbound.html) yang tidak dapat ditransfer juga dapat berperan penting dalam DeSci dengan memungkinkan individu membuktikan pengalaman dan kredensial mereka yang terhubung dengan alamat Ethereum mereka. + +### Penyimpanan data, akses, dan arsitektur {#data-storage} + +Data ilmiah dapat diakses dengan lebih mudah menggunakan pola Web3, dan penyimpanan terdistribusi memungkinkan penelitian bertahan dari aksi-aksi krisis. + +Titik awal haruslah sebuah sistem yang dapat diakses oleh setiap identitas terdesentralisasi yang memegang kredensial yang dapat diverifikasi dengan benar. Ini memungkinkan data sensitif direplikasi secara aman oleh pihak yang tepercaya, memungkinkan redudansi dan ketahanan terhadap sensor, reproduksi hasil, bahkan kemampuan bagi beberapa pihak untuk berkolaborasi dan menambahkan data baru ke dalam dataset. Metode komputasi yang rahasia seperti [komputasi-ke-data](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol) memberikan mekanisme akses alternatif terhadap replikasi data mentah, menciptakan Lingkungan Penelitian Tepercaya untuk data yang paling sensitif. Lingkungan Penelitian Tepercaya telah dijadikan [referensi oleh NHS](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) sebagai solusi berorientasi masa depan untuk privasi data dan kolaborasi dengan menciptakan ekosistem di mana para peneliti dapat bekerja dengan data secara aman di tempat menggunakan lingkungan standar untuk berbagi kode dan praktik. + +Solusi data Web3 yang fleksibel mendukung skenario di atas dan memberikan dasar bagi Ilmu Pengetahuan yang Benar-benar Terbuka, di mana para peneliti dapat menciptakan barang-barang publik tanpa izin akses atau biaya. Solusi data publik Web3 seperti IPFS, Arweave, dan Filecoin dioptimalkan untuk desentralisasi. Contohnya, dClimate menyediakan akses universal ke data iklim dan cuaca, termasuk dari stasiun cuaca dan model iklim prediktif. + +## Ikut terlibat {#get-involved} + +Jelajahi proyek-proyek dan bergabunglah dengan komunitas DeSci. + +- [DeSci.Global: kalender acara global dan pertemuan](https://desci.global) +- [Rantai Blok untuk Ilmu Pengetahuan di Telegram](https://t.me/BlockchainForScience) +- [Molecule: Dana dan dapatkan pendanaan untuk proyek penelitian Anda](https://discover.molecule.to/) +- [VitaDAO: Terima pendanaan melalui perjanjian penelitian yang disponsori untuk penelitian kelangsungan hidup](https://www.vitadao.com/) +- [ResearchHub: Unggah hasil ilmiah dan terlibat dalam percakapan dengan rekan-rekan sejawat](https://www.researchhub.com/) +- [LabDAO: Melipat protein secara in-silico](https://alphafodl.vercel.app/) +- [dClimate API: Permintaan data iklim yang dikumpulkan oleh komunitas terdesentralisasi](https://api.dclimate.net/) +- [DeSci Foundation: Pembangun alat penerbitan DeSci](https://descifoundation.org/) +- [DeSci.World: pusat informasi untuk pengguna melihat dan terlibat dengan ilmu pengetahuan terdesentralisasi](https://desci.world) +- [Fleming Protocol: ekonomi data sumber terbuka yang mendukung penemuan biomedis kolaboratif](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [OceanDAO: Pendanaan yang diatur oleh DAO untuk ilmu pengetahuan terkait data](https://oceanprotocol.com/dao) +- [Opscientia: alur kerja ilmu pengetahuan terbuka dan terdesentralisasi](https://opsci.io/research/) +- [LabDAO: Melipat protein secara in-silico](https://alphafodl.vercel.app/) +- [Bio.xyz: dapatkan pendanaan untuk proyek bioteknologi atau proyek DeSci Anda melalui DAO](https://www.molecule.to/) +- [ResearchHub: Unggah hasil ilmiah dan terlibat dalam percakapan dengan rekan-rekan sejawat](https://www.researchhub.com/) +- [VitaDAO: Terima pendanaan melalui perjanjian penelitian yang disponsori untuk penelitian kelangsungan hidup](https://www.vitadao.com/) +- [Fleming Protocol: ekonomi data sumber terbuka yang mendukung penemuan biomedis kolaboratif](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [Lab Inferensi Aktif](https://www.activeinference.org/) +- [CureDAO: Platform Kesehatan Presisi yang Dimiliki oleh Komunitas](https://docs.curedao.org/) +- [IdeaMarkets: Memungkinkan kredibilitas ilmiah terdesentralisasi](https://ideamarket.io/) +- [Lab DeSci](https://www.desci.com/) + +Kami menyambut saran untuk proyek-proyek baru yang ingin ditampilkan - silakan lihat [kebijakan pendaftaran](/contributing/adding-desci-projects/) kami untuk memulai! + +## Bacaan lebih lanjut {#further-reading} + +- [DeSci Wiki oleh Jocelynn Pearl dan Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) +- [Panduan Bioteknologi Terdesentralisasi oleh Jocelynn Pearl untuk a16z future](https://future.a16z.com/a-guide-to-decentralized-biotech/) +- [Argumen untuk DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) +- [Panduan untuk DeSci](https://future.com/what-is-decentralized-science-aka-desci/) +- [Sumber daya ilmu pengetahuan terdesentralisasi](https://www.vincentweisser.com/decentralized-science) +- [IP-NFT Biopharma dari Molecule - Deskripsi Teknis](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) +- [Membangun Sistem Ilmu Pengetahuan yang Tidak Memerlukan Kepercayaan oleh Jon Starr](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) +- [Munculnya DAO Bioteknologi](https://molecule.to/blog/the-emergence-of-biotech-daos) +- [Paul Kohlhaas - DeSci: Masa Depan Ilmu Pengetahuan Terdesentralisasi (podcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) +- [Ontologi Inference Aktif untuk Ilmu Pengetahuan Terdesentralisasi: dari Pemahaman Situasional hingga Epistemik Bersama](https://zenodo.org/record/6320575) +- [DeSci: Masa Depan Penelitian oleh Samuel Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) +- [Pendanaan Ilmu Pengetahuan (Epilog: DeSci dan Primitif Kripto Baru) oleh Nadia](https://nadia.xyz/science-funding) +- [Desentralisasi Mengganggu Pengembangan Obat](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) + +### Video {#videos} + +- [Apa Itu Ilmu Pengetahuan Terdesentralisasi?](https://www.youtube.com/watch?v=-DeMklVWNdA) +- [Percakapan antara Vitalik Buterin dan ilmuwan Aubrey de Grey tentang persimpangan penelitian panjang umur dan kripto](https://www.youtube.com/watch?v=x9TSJK1widA) +- [Penerbitan Ilmiah Rusak. Dapatkah Web3 Memperbaikinya?](https://www.youtube.com/watch?v=WkvzYgCvWj8) +- [Juan Benet - DeSci, Laboratorium Independen, & dan Pengetahuan Data Skala Besar](https://www.youtube.com/watch?v=zkXM9H90g_E) +- [Sebastian Brunemeier - Bagaimana DeSci Dapat Mengubah Penelitian Biomedis & dan Modal Ventura](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/id/developers/docs/accounts/index.md b/public/content/translations/id/developers/docs/accounts/index.md similarity index 100% rename from src/content/translations/id/developers/docs/accounts/index.md rename to public/content/translations/id/developers/docs/accounts/index.md diff --git a/src/content/translations/id/developers/docs/apis/backend/index.md b/public/content/translations/id/developers/docs/apis/backend/index.md similarity index 100% rename from src/content/translations/id/developers/docs/apis/backend/index.md rename to public/content/translations/id/developers/docs/apis/backend/index.md diff --git a/src/content/translations/id/developers/docs/apis/javascript/index.md b/public/content/translations/id/developers/docs/apis/javascript/index.md similarity index 100% rename from src/content/translations/id/developers/docs/apis/javascript/index.md rename to public/content/translations/id/developers/docs/apis/javascript/index.md diff --git a/src/content/translations/id/developers/docs/apis/json-rpc/index.md b/public/content/translations/id/developers/docs/apis/json-rpc/index.md similarity index 100% rename from src/content/translations/id/developers/docs/apis/json-rpc/index.md rename to public/content/translations/id/developers/docs/apis/json-rpc/index.md diff --git a/src/content/translations/id/developers/docs/blocks/index.md b/public/content/translations/id/developers/docs/blocks/index.md similarity index 100% rename from src/content/translations/id/developers/docs/blocks/index.md rename to public/content/translations/id/developers/docs/blocks/index.md diff --git a/src/content/translations/id/developers/docs/consensus-mechanisms/index.md b/public/content/translations/id/developers/docs/consensus-mechanisms/index.md similarity index 100% rename from src/content/translations/id/developers/docs/consensus-mechanisms/index.md rename to public/content/translations/id/developers/docs/consensus-mechanisms/index.md diff --git a/src/content/translations/id/developers/docs/consensus-mechanisms/pos/index.md b/public/content/translations/id/developers/docs/consensus-mechanisms/pos/index.md similarity index 100% rename from src/content/translations/id/developers/docs/consensus-mechanisms/pos/index.md rename to public/content/translations/id/developers/docs/consensus-mechanisms/pos/index.md diff --git a/src/content/translations/id/developers/docs/consensus-mechanisms/pow/index.md b/public/content/translations/id/developers/docs/consensus-mechanisms/pow/index.md similarity index 100% rename from src/content/translations/id/developers/docs/consensus-mechanisms/pow/index.md rename to public/content/translations/id/developers/docs/consensus-mechanisms/pow/index.md diff --git a/src/content/translations/id/developers/docs/consensus-mechanisms/pow/mining/index.md b/public/content/translations/id/developers/docs/consensus-mechanisms/pow/mining/index.md similarity index 100% rename from src/content/translations/id/developers/docs/consensus-mechanisms/pow/mining/index.md rename to public/content/translations/id/developers/docs/consensus-mechanisms/pow/mining/index.md diff --git a/src/content/translations/id/developers/docs/dapps/index.md b/public/content/translations/id/developers/docs/dapps/index.md similarity index 100% rename from src/content/translations/id/developers/docs/dapps/index.md rename to public/content/translations/id/developers/docs/dapps/index.md diff --git a/src/content/translations/id/developers/docs/data-and-analytics/block-explorers/index.md b/public/content/translations/id/developers/docs/data-and-analytics/block-explorers/index.md similarity index 100% rename from src/content/translations/id/developers/docs/data-and-analytics/block-explorers/index.md rename to public/content/translations/id/developers/docs/data-and-analytics/block-explorers/index.md diff --git a/src/content/translations/id/developers/docs/data-and-analytics/index.md b/public/content/translations/id/developers/docs/data-and-analytics/index.md similarity index 100% rename from src/content/translations/id/developers/docs/data-and-analytics/index.md rename to public/content/translations/id/developers/docs/data-and-analytics/index.md diff --git a/src/content/translations/id/developers/docs/development-networks/index.md b/public/content/translations/id/developers/docs/development-networks/index.md similarity index 100% rename from src/content/translations/id/developers/docs/development-networks/index.md rename to public/content/translations/id/developers/docs/development-networks/index.md diff --git a/src/content/translations/id/developers/docs/ethereum-stack/index.md b/public/content/translations/id/developers/docs/ethereum-stack/index.md similarity index 100% rename from src/content/translations/id/developers/docs/ethereum-stack/index.md rename to public/content/translations/id/developers/docs/ethereum-stack/index.md diff --git a/src/content/translations/id/developers/docs/evm/index.md b/public/content/translations/id/developers/docs/evm/index.md similarity index 100% rename from src/content/translations/id/developers/docs/evm/index.md rename to public/content/translations/id/developers/docs/evm/index.md diff --git a/src/content/translations/id/developers/docs/frameworks/index.md b/public/content/translations/id/developers/docs/frameworks/index.md similarity index 100% rename from src/content/translations/id/developers/docs/frameworks/index.md rename to public/content/translations/id/developers/docs/frameworks/index.md diff --git a/src/content/translations/id/developers/docs/gas/index.md b/public/content/translations/id/developers/docs/gas/index.md similarity index 100% rename from src/content/translations/id/developers/docs/gas/index.md rename to public/content/translations/id/developers/docs/gas/index.md diff --git a/src/content/translations/id/developers/docs/ides/index.md b/public/content/translations/id/developers/docs/ides/index.md similarity index 100% rename from src/content/translations/id/developers/docs/ides/index.md rename to public/content/translations/id/developers/docs/ides/index.md diff --git a/src/content/translations/id/developers/docs/index.md b/public/content/translations/id/developers/docs/index.md similarity index 100% rename from src/content/translations/id/developers/docs/index.md rename to public/content/translations/id/developers/docs/index.md diff --git a/src/content/translations/id/developers/docs/intro-to-ether/index.md b/public/content/translations/id/developers/docs/intro-to-ether/index.md similarity index 100% rename from src/content/translations/id/developers/docs/intro-to-ether/index.md rename to public/content/translations/id/developers/docs/intro-to-ether/index.md diff --git a/src/content/translations/id/developers/docs/intro-to-ethereum/index.md b/public/content/translations/id/developers/docs/intro-to-ethereum/index.md similarity index 100% rename from src/content/translations/id/developers/docs/intro-to-ethereum/index.md rename to public/content/translations/id/developers/docs/intro-to-ethereum/index.md diff --git a/src/content/translations/id/developers/docs/mev/index.md b/public/content/translations/id/developers/docs/mev/index.md similarity index 100% rename from src/content/translations/id/developers/docs/mev/index.md rename to public/content/translations/id/developers/docs/mev/index.md diff --git a/src/content/translations/id/developers/docs/networks/index.md b/public/content/translations/id/developers/docs/networks/index.md similarity index 100% rename from src/content/translations/id/developers/docs/networks/index.md rename to public/content/translations/id/developers/docs/networks/index.md diff --git a/public/content/translations/id/developers/docs/nodes-and-clients/index.md b/public/content/translations/id/developers/docs/nodes-and-clients/index.md new file mode 100644 index 00000000000..57e12dc6333 --- /dev/null +++ b/public/content/translations/id/developers/docs/nodes-and-clients/index.md @@ -0,0 +1,314 @@ +--- +title: Node dan klien +description: Gambaran umum tentang perangkat lunak node dan klien Ethereum, juga cara menyiapkan node dan mengapa Anda harus melakukannya. +lang: id +sidebarDepth: 2 +--- + +Ethereum adalah jaringan komputer terdistribusi yang menjalankan perangkat lunak (dikenal sebagai node) yang dapat memverifikasi blok dan data transaksi. Anda memerlukan satu aplikasi, yang dikenal sebagai klien, pada perangkat Anda untuk "menjalankan" sebuah node. + +## Prasyarat {#prerequisites} + +Anda harus memahami konsep jaringan peer-to-peer dan [dasar-dasar EVM](/developers/docs/evm/) sebelum menggali lebih dalam dan menjalankan instance klien Ethereum Anda sendiri. Coba lihat [pengantar Ethereum](/developers/docs/intro-to-ethereum/) kami. + +## Apa itu node dan klien? {#what-are-nodes-and-clients} + +"Node" merujuk pada satu bagian perangkat lunak yang dikenal sebagai satu klien. Klien adalah implementasi Ethereum yang memverifikasi semua transaksi di setiap blok, menjaga jaringan tetap aman dan data tetap akurat. + +Anda bisa melihat tampilan jaringan Ethereum secara nyata dengan melihat [peta node](https://etherscan.io/nodetracker) ini. + +Ada banyak [klien Ethereum](/developers/docs/nodes-and-clients/#execution-clients), dalam berbagai bahasa pemrograman seperti Go, Rust, JavaScript, Typescript, Python, C# .NET, Nim dan Java. Persamaan dari semua implementasi ini adalah semuanya mengikuti spesifikasi formal (pada awalnya [Yellow Paper Ethereum](https://ethereum.github.io/yellowpaper/paper.pdf)). Spesifikasi ini mengatur bagaimana jaringan Ethereum dan blockchain berfungsi. + +![Klien eksekusi](./client-diagram.png) Diagram yang disederhanakan tentang apa saja fitur klien Ethereum. + +## Jenis node {#node-types} + +Jika Anda ingin [menjalankan node sendiri](/developers/docs/nodes-and-clients/run-a-node/), Anda harus mengerti bahwa ada berbagai jenis node yang mengonsumsi data secara berbeda. Bahkan, klien dapat menjalankan 3 tipe node yang berbeda - ringan, penuh, dan arsip. Ada juga opsi strategi sinkronisasi berbeda yang memungkinkan waktu sinkronisasi yang lebih cepat. Sinkronisasi merujuk pada seberapa cepat prosesnya mendapat informasi paling terbaru pada state Ethereum. + +### Node penuh {#full-node} + +- Menyimpan data blockchain penuh. +- Berpartisipasi dalam validasi blok, memverifikasi semua blok dan state. +- Semua state bisa dikembangkan dari satu node penuh. +- Melayani jaringan dan menyediakan data sesuai permintaan. + +### Node Ringan {#light-node} + +- Menyimpan rantai header dan meminta semua hal lainnya. +- Bisa memverifikasi keabsahan data yang dibandingkan dengan root state dalam header blok. +- Berguna untuk perangkat dengan kapasitas rendah, seperti perangkat bawaan atau ponsel, yang tidak sanggup menyimpan data blokchain dalam ukuran gigabyte. + +### Node arsip {#archive-node} + +- Menyimpan semua data yang tersimpan dalam node penuh dan menyusun riwayat arsip state. Diperlukan jika Anda ingin menanyakan sesuatu seperti saldo akun pada blok #4.000.000, atau secara sederhana dan andal [menguji sekumpulan transaksi Anda sendiri tanpa menambangnya dengan mengggunakan OpenEthereum](https://openethereum.github.io/JSONRPC-trace-module#trace_callmany). +- Data ini mewakilkan unit terabita yang membuat node arsip kurang menarik bagi pengguna pada umumnya, tetapi dapat menolong untuk layanan seperti penjelajah blok, vendor dompet, dan analitik rantai. + +Mensinkronisasikan klien di mode mana saja selain arsip akan menghasilkan data blockchain yang terpangkas. Ini berarti, tidak ada arsip untuk semua state riwayat, tetapi node penuh dapat menyusunnya sesuai permintaan. + +## Mengapa Anda harus menjalankan satu node Ethereum? {#why-should-i-run-an-ethereum-node} + +Menjalankan node memungkinkan Anda menggunakan Ethereum tanpa membutuhkan kepercayaan dan secara privat sekaligus Anda mendukung ekosistem. + +### Keuntungan untuk Anda {#benefits-to-you} + +Menjalankan node sendiri memungkinkan Anda menggunakan Ethereum dengan cara yang benar-benar privat, mandiri, dan tidak membutuhkan kepercayaan. Anda tidak perlu mempercayai jaringan karena Anda bisa memverifikasi data sendiri dengan klien Anda. "Jangan percaya, lakukan verifikasi" adalah mantra blockchain yang populer. + +- Node Anda memverifikasi semua transaksi dan blok dibandingkan dengan aturan konsensus itu sendiri. Ini berarti Anda tidak harus mengandalkan node lain dalam jaringan atau sepenuhnya mempercayainya. +- Anda tidak akan harus membocorkan alamat dan saldo Anda ke node acak. Semua hal bisa dicek dengan klien Anda sendiri. +- Dapp Anda bisa lebih aman dan privat jika Anda menggunakan node Anda sendiri. [MetaMask](https://metamask.io), [MyEtherWallet](https://myetherwallet.com) and some other wallets can be easily pointed to your own local node. +- Anda dapat memrogram endpoint RPC kustom Anda sendiri. +- Anda dapat menghubungkan node Anda dengan menggunakan **Komunikasi Antar Proes (IPC)** atau menulis kembali node untuk memuat program Anda sebagai plugin. Ini menghasilkan latensi yang rendah, yang diperlukan untuk menggantikan transaksi Anda secepat mungkin (maksudnya frontrunning). + +![Bagaimana Anda mengakses Ethereum lewat aplikasi dan node Anda](./nodes.png) + +### Keuntungan jaringan {#network-benefits} + +Sebuah kumpulan node beragam penting untuk kesehatan, keamanan dan ketahanan operasional Ethereum. + +- Mereka menyediakan akses ke data blockchain untuk klien lightweight yang bergantung pada data tersebut. Pada puncak tinggi penggunaan, harus ada node penuh yang cukup untuk membantu sinkronisasi node ringan. Node ringan tidak menyimpan seluruh blockchain, melainkan memverifikasi data lewat [root state dalam header blok](/developers/docs/blocks/#block-anatomy). Mereka bisa meminta lebih banyak informasi dari blok jika mereka membutuhkannya. +- Node penuh melaksanakan aturan konsensus bukti kerja sehingga mereka tidak bisa ditipu untuk menerima blok yang tidak mengikutinya. Ini menyediakan keamanan ekstra dalam jaringan karena jika semua node berjenis node ringan, yang tidak melakukan verifikasi penuh, penambang bisa menyerang jaringan dan, sebagai contoh, membuat blok dengan imbalan yang lebih tinggi. + +Jika Anda menjalankan node penuh, seluruh jaringan Ethereum mendapat keuntungan darinya. + +## Menjalankan node milik Anda sendiri {#running-your-own-node} + +Tertarik menjalankan klien Ethereum Anda sendiri? + +For a beginner-friendly introduction visit our [run a node](/run-a-node) page to learn more. + +If you're more of a technical user, learn how to [spin up your own node](/developers/docs/nodes-and-clients/run-a-node/) with the command line! + +### Proyek {#projects} + +[**Pilih klien dan ikuti petunjuknya**](#clients) + +**ethnode -** **_Jalankan node Ethereum (Geth atau OpenEthereum) untuk pengembangan lokal._** + +- [GitHub](https://github.com/vrde/ethnode) + +**DAppNode -** **_Sebuah sistem operasi GUI untuk menjalankan node Web3, yang mencakup Ethereum dan rantai suar, pada satu mesin khusus._** + +- [dappnode.io](https://dappnode.io) + +### Sumber Daya {#resources} + +- [Menjalankan Node Penuh Ethereum: Sebuah Panduan Lengkap](https://medium.com/coinmonks/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _7 November 2019 - Justin Leroux_ +- [Lembaran Cheat Konfigurasi Node](https://dev.to/5chdn/ethereum-node-configuration-modes-cheat-sheet-25l8) _5 Januari 2019 - Afri Schoeden_ +- [Cara Menginstal dan Menjalankan Node Geth](https://www.quiknode.io/guides/infrastructure/how-to-install-and-run-a-geth-node) _4 Okt 2020 - Sahil Sen_ +- [Cara Menginstal dan Menjalankan Node OpenEthereum (fka. Parity)](https://www.quiknode.io/guides/infrastructure/how-to-run-a-openethereum-ex-parity-client-node) _22 Sept 2020 - Sahil Sen_ + +## Alternatif {#alternatives} + +Menjalankan node Anda sendiri dapat menjadi sulit dan Anda tidak selalu harus menjalankan instance Anda sendiri. Dalam kasus ini, Anda bisa menggunakan satu penyedia API pihak ketiga seperti [Infura](https://infura.io), [Alchemy](https://alchemyapi.io), atau [QuikNode](https://www.quiknode.io). Sebagai alternatifnya [ArchiveNode](https://archivenode.io/) adalah satu node Arsip yang didanai komunitas yang bertujuan membawa data arsip blockchain Ethereum kepada para pengembang independen yang sebaliknya tidak bisa mendapatkannya. For an overview of using these services, check out [nodes as a service](/developers/docs/nodes-and-clients/nodes-as-a-service/). + +Jika seseorang menjalankan node Ethereum dengan API publik dalam komunitas Anda, Anda bisa merujuk dompet ringan Anda (seperti MetaMask) ke node komunitas [melalui RPC Kustom](https://metamask.zendesk.com/hc/en-us/articles/360015290012-Using-a-Local-Node) dan mendapat lebih banyak privasi dari pada menggunakan beberapa pihak ketiga terpercaya acak. + +Di sisi lain, jika Anda menjalankan satu klien, Anda bisa membagikannya dengan teman Anda yang mungkin membutuhkannya. + +## Klien eksekusi (sebelumnya 'klien Eth1') {#execution-clients} + +Komunitas Ethereum memelihara beberapa klien eksekusi sumber terbuka (sebelumnya dikenal sebagai 'klien Eth1', atau 'klien Ethereum'), yang dikembangkan oleh berbagai tim menggunakan beragam bahasa pemrograman. Ini membuat jaringan lebih kuat dan lebih beragam. Tujuan idealnya adalah untuk mencapai keberagaman tanpa dominasi klien mana pun sehingga ini menurunkan jumlah titik kegagalan mana pun. + +Tabel ini meringkaskan berbagai jenis klien. Semuanya telah lulus [pengujian klien](https://github.com/ethereum/tests) dan secara aktif dipertahankan agar tetap yang terbaru dengan peningkatan jaringan. + +| Klien | Bahasa | Sistem operasi | Jaringan | Strategi sinkronisasi | Pemotongan state | +| ------------------------------------------------------------------------- | -------- | --------------------- | -------------------------------------------------------- | --------------------- | ---------------- | +| [Geth](https://geth.ethereum.org/) | Go | Linux, Windows, macOS | Jaringan Utama, Görli, Rinkeby, Ropsten | Snap, Full | Arsip, Dipotong | +| [Nethermind](http://nethermind.io/) | C#, .NET | Linux, Windows, macOS | Jaringan Utama, Görli, Ropsten, Rinkeby, dan banyak lagi | Fast, Beam, Archive | Arsip, Dipotong | +| [Besu](https://besu.hyperledger.org/en/stable/) | Java | Linux, Windows, macOS | Mainnet, Rinkeby, Ropsten, Görli, and more | Cepat, Penuh | Arsip, Dipotong | +| [Erigon](https://github.com/ledgerwatch/erigon) | Go | Linux, Windows, macOS | Jaringan Utama, Görli, Rinkeby, Ropsten | Full | Arsip, Dipotong | +| [OpenEthereum (Deprecated)](https://github.com/openethereum/openethereum) | Rust | Linux, Windows, macOS | Jaringan Utama, Kovan, Ropsten, dan banyak lagi | Warp, Penuh | Arsip, Dipotong | + +**Perhatikan bahwa OpenEthereum [telah menjadi usang](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) dan tidak lagi dipertahankan.** Gunakan dengan hati-hati dan lebih baik beralih ke implementasi klien lainnya. + +Untuk informasi lebih lanjut tentang jaringan yang didukung, baca tentang [jaringan Ethereum](/developers/docs/networks/). + +### Manfaat dari impelementasi berbeda {#advantages-of-different-implementations} + +Setiap klien mempunyai kasus penggunaan dan keuntungan yang unik, jadi Anda harus memilih salah satu berdasarkan preferensi Anda sendiri. Keberagaman memungkinkan implementasi difokuskan pada fitur dan audiens pengguna berbeda. Anda mungkin ingin memilih satu klien berdasarkan fitur, dukungan, bahasa pemrograman, atau lisensi. + +#### Go Ethereum {#geth} + +Go Ethereum (singkatannya Geth) adalah satu dari implementasi original protokol Ethereum. Saat ini, Geth adalah klien yang paling tersebar luas dengan basis pengguna terbesar dan keberagaman perangkat untuk para pengguna dan pengembang. Geth ditulis dalam Go, yang adalah sumber terbuka penuh dan terlisensi di bawah GNU LGPL v3. + +#### OpenEthereum {#openethereum} + +OpenEthereum adalah sebuah klien Ethereum cepat, kaya akan fitur, dan berbasis CLI tingkat lanjut. Dibangun guna menyediakan infrastruktur penting untuk layanan cepat dan dapat diandalkan yang membutuhkan sinkronisasi cepat dan uptime maksimum. Tujuan OpenEthereum adalah menjadi klien Ethereum tercepat, paling ringan, dan paling aman. Menyediakan basis kode yang bersih dan modular untuk: + +- kostumisasi yang mudah. +- integrasi ringan ke dalam layanan atau produk. +- memori minimal dan jejak penyimpanan. + +OpenEthereum dikembangkan menggunakan bahasa pemrograman Rust canggih dan terlisensi di bawah GPLv3. + +**Perhatikan bahwa OpenEthereum [telah menjadi usang](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) dan tidak lagi dipertahankan.** Gunakan dengan hati-hati dan lebih baik beralih ke implementasi klien lainnya. + +#### Nethermind {#nethermind} + +Nethermind adalah satu implementasi Ethereum yang dibuat dengan tumpukan teknologi C# .NET, beroperasi pada semua platform utama termasuk ARM. Implementasi ini menawarkan kinerja luar biasa dengan: + +- mesin virtual yang dioptimalkan +- akses state +- jaringan dan fitur yang kaya seperti dasbor Prometheus/Graphana, dukungan logging perusahaan seq, pelacakan JSON RPC, dan plugin analitik. + +Nethermind juga mempunyai [dokumentasi detil](https://docs.nethermind.io), dukungan pengembang yang kuat, komunitasi daring dan dukungan 24/7 yang tersedia untuk para pengguna premium. + +#### Besu {#besu} + +Hyperledger Besu adalah klien Ethereum standar perusahaan untuk jaringan publik dan berizin. Ia menjalankan seluruh fitur Jaringan Utama Ethereum, mulai dari pelacakan hingga GraphQL, memiliki pengawasan ektensif dan didukung oleh ConsenSys, baik di kanal komunitas terbuka maupun melalui SLA komersial untuk perusahaan. Ditulis dalam Java dan berlisensi Apache 2.0. + +#### Erigon {#erigon} + +Erigon, yang sebelumnya dikenal sebagai Erigon, adalah sebuah fork Go Ethereum yang diarahkan untuk efisiensi kecepatan dan pemakaian ruangan cakram. Erigon adalah sebuah implementasi yang sepenuhnya di buat kembali di Ethereum, yang saat ini ditulis dalam Go dengan implementasi dalam bahasa pemograman lain yang direncanakan. Tujuan Erigon adalah menyediakan implementasi Ethereum yang lebih cepat, lebih modular, dan lebih teroptimisasi. Ia dapat melakukan sinkronisasi node arsip penuh dengan menggunakan kurang dari 2 TB ruangan cakram, dalam waktu kurang dari 3 hari + +### Mode sinkronisasi {#sync-modes} + +Untuk mengikuti dan memverifikasi data saat ini di jaringan, klien Ethereum perlu melakukan sinkronisasi dengan state jaringan terkini. Ini dilakukan dengan mengunduh data dari para rekan sejawat, yang secara kriptografik memverifikasi integritas mereka, dan membangun basis data blockchain lokal. + +Mode sinkronisasi mewakili pendekatan berbeda terhadap proses ini dengan berbagai pertukaran. Klien juga bervariasi dalam implementasi algoritma sinkronisasinya. Mengaculah selalu pada dokumentasi resmi dari klien pilihan Anda untuk spesifikasi tentang implementasi. + +#### Gambaran umum strategi {#overview-of-strategies} + +Tinjauan umum pendekatan sinkronisasi yang digunakan dalam klien untuk Jaringan Utama: + +##### Sinkonisasi penuh + +Sinkronisasi penuh mengunduh semua blok (termasuk header, transaksi, dan bukti pembayaran) dan menghasilkan state blockchain yang terus bertambah dengan mengeksekusi setiap blok dari blok genesis. + +- Meminimalkan kepercayaan dan menawarkan keamanan tertinggi dengan memverifikasi setiap transaksi. +- Dengan meningkatnya jumlah transaksi, butuh waktu berhari-hari hingga berminggu-minggu untuk memroses semua transaksi. + +##### Sinkronisasi cepat + +Sinkronisasi cepat mengunduh semua blok (termasuk header, transaksi dan bukti pembayaran), memverifikasi semua header, dan mengunduh state dan memverifikasinya dengan membandingkannya terhadap header. + +- Mengandalkan keamanan mekanisme konsensus. +- Sinkronisasi memakan waktu hanya beberapa jam. + +##### Sinkronisasi ringan + +Mode klien ringan mengunduh semua header blok, data blok, dan memverifikasi beberapa secara acak. Hanya menyinkronkan ujung rantai dari pos pemeriksaan terpercaya. + +- Hanya mengambil state terbaru saat mengandalkan kepercayaan pada pengembang dan mekanisme konsensus. +- Klien siap dipakai dengan state jaringan saat ini dalam beberapa menit. + +[Lebih lanjut tentang klien Ringan](https://www.parity.io/blog/what-is-a-light-client/) + +##### Sinkronisasi snap + +Diimplementasikan oleh Geth. Dengan menggunakan foto - foto dinamis yang disediakan oleh para rekan sejawat, ia mengambilkan semua data akun dan penyimpanan tanpa mengunduh node trie menengah dan kemudian menyusun ulang trie Merkle secara lokal. + +- Strategi sinkronisasi tercepat yang dikembangkan oleh Geth, yang saat ini adalah versi defaultnya +- Menghemat pemakaian ruangan cakram dan bandwidth jaringan tanpa mengorbankan aspek keamanan. + +[Lebih lanjut tentang Snap](https://github.com/ethereum/devp2p/blob/master/caps/snap.md) + +##### Sinkronisasi warp + +Diimplementasikan oleh OpenEthereum. Node secara teratur menghasilkan foto state konsensus yang penting dan rekan sejawat mana pun dapat mengambilkan foto ini di jaringan, yang memungkinkan sinkronisasi cepat dari titik ini. + +- Mode sinkronisasi OpenEthereum yang tercepat dan default mengandalkan foto statis yang disediakan oleh para rekan sejawat. +- Strategi yang mirip dengan sinkronisasi snap, tetapi tanpa manfaat keamanan tertentu. + +[Lebih lanjut tentang Warp](https://openethereum.github.io/Beginner-Introduction#warping---no-warp) + +##### Sinkronisasi beam + +Diimplementasikan oleh Nethermind dan Trinity. Berfungsi seperti sinkronisasi cepat tetapi juga mengunduh data yang diperlukan untuk mengeksekusi blok terkini, yang memungkinkan Anda membuat query terhadap rantai dalam beberapa menit pertama sejak dimulai. + +- Menyinkronkan state terlebih dahulu dan memungkinkan Anda membuat kueri terhadap RPC dalam waktu beberapa menit. +- Masih dalam tahap pengembangan dan belum sepenuhnya bisa diandalkan, sinkronisasi latar belakang diperlambat dan respons RPC mungkin gagal. + +[Lebih lanjut tentang Beam](https://medium.com/@jason.carver/intro-to-beam-sync-a0fd168be14a) + +#### Pengaturan di klien {#client-setup} + +Klien menawarkan opsi konfigurasi yang kaya untuk menyesuaikan dengan kebutuhan Anda. Pilih salah satu yang paling sesuai dengan Anda berdasarkan tingkat keamanan, data yang tersedia, dan biayanya. Selain algoritma sinkronisasi, Anda juga dapat menentukan pemangkasan berbagai jenis data lama. Pemangkasan memungkinkan penghapusan data lama, contohnya menghilangkan node trie state yang tidak dapat dicapai dari blok terkini. + +Perhatikan dokumentasi klien atau halaman bantuan untuk menemukan mode sinkronisasi mana yang merupakan opsi defaultnya. Anda dapat menentukan tipe sinkronisasi yang lebih disukai ketika Anda melakukan penyiapan, dalam cara: + +**Menyiapkan sinkronisasi ringan di [GETH](https://geth.ethereum.org/) atau [ERIGON](https://github.com/ledgerwatch/erigon)** + +`geth --syncmode "light"` + +Untuk detail lebih lanjut, lihat tutorialnya di [menjalankan node ringan Geth](/developers/tutorials/run-light-node-geth/). + +**Menyiapkan sinkronisasi penuh dengan arsip di [Besu](https://besu.hyperledger.org/)** + +`besu --sync-mode=FULL` + +Sama seperti konfigurasi lainnya, ia dapat ditentukan dengan bendera startup atau dalam berkas konfigurasi. Contoh lainnya adalah [Nethermind](https://docs.nethermind.io/nethermind/) yang mendorong Anda untuk memilih konfigurasi pada saat inisiasi pertama dan membuat berkas konfigurasi. + +## Klien konsensus (sebelumnya klien 'Eth2') {#consensus-clients} + +Ada beberapa klien konsensus (sebelumnya dikenal sebagai klien 'Eth2') untuk mendukung [peningkatan konsensus](/roadmap/beacon-chain/). They are running the Beacon Chain and will provide proof-of-stake consensus mechanism to execution clients after [The Merge](/roadmap/merge/). + +| Klien | Bahasa | Sistem operasi | Jaringan | +| ----------------------------------------------------------- | ---------- | --------------------- | ------------------------------------ | +| [Teku](https://pegasys.tech/teku) | Java | Linux, Windows, macOS | Rantai Suar, Goerli | +| [Nimbus](https://nimbus.team/) | Nim | Linux, Windows, macOS | Rantai Suar, Goerli | +| [Lighthouse](https://lighthouse-book.sigmaprime.io/) | Rust | Linux, Windows, macOS | Rantai Suar, Goerli, Pyrmont | +| [Lodestar](https://lodestar.chainsafe.io/) | TypeScript | Linux, Windows, macOS | Rantai Suar, Goerli | +| [Prysm](https://docs.prylabs.network/docs/getting-started/) | Go | Linux, Windows, macOS | Rantai Suar, Gnosis, Goerli, Pyrmont | + +## Perangkat keras {#hardware} + +Kebutuhan perangkat keras berbeda untuk tiap klien tapi secara umum tidak terlalu tinggi karena node hanya perlu terus dalam kondisi tersinkronisasi. Jangan merancukannya dengan penambangan yang memerlukan lebih banyak daya komputasi. Akan tetapi, waktu sinkronisasi dan performa memang meningkat dengan perangkat keras yang lebih kuat. Bergantung kebutuhan dan keinginan Anda, Ethereum dapat dijalankan pada komputer, server rumah, komputer papan tunggal, atau server privat virtual di cloud. + +Satu cara mudah untuk menjalankan node Anda sendiri adalah menggunakan kotak 'colokkan dan jalankan' seperti [DAppNode](https://dappnode.io/). Menyediakan perangkat keras untuk menjalankan klien dan apllikasi yang bergantung padanya dengan antar muka pengguna sederhana. + +### Persyaratan {#requirements} + +Sebelum menginstal klien apa pun, pastikan komputer Anda punya sumber daya yang cukup untuk menjalankannya. Persayaratan minimum dan disarankan bisa ditemukan di bawah, akan tetapi bagian kuncinya adalah kapasitas penyimpanan disk. Menyinkronisasikan blockchain Ethereum sangat bergantung banyak pada input/output. Sangat disarankan untuk memiliki satu solid-state drive (SSD). Untuk menjalankan satu klien Ethereum pada HDD, Anda akan membutuhkan paling sedikit 8GB RAM untuk digunakan sebagai cache. + +#### Persayaratan minimum {#recommended-specifications} + +- CPU dengan 2+ inti +- RAM dengan ukuran minimum 4GB dengan satu SSD, 8 GB+ jika Anda punya satu HDD +- Bandwidth dengan kecepatan 8 MBit/d + +#### Spesifikasi yang direkomendasikan {#recommended-specifications} + +- CPU cepat dengan 4+ inti +- RAM berukuran 16 GB+ +- SSD cepat dengan kapasitas penyimpanan paling sedikit 500 GB +- Bandwidth dengan kecepatan 25+ MBit/d + +Mode sinkronisasi yang Anda pilih akan mempengaruhi persyaratan ukuran ruangan cakram, tapi kami telah memperkirakan ruangan cakram yang akan Anda perlukan untuk setiap klien di bawah ini. + +| Klien | Ukuran disk (sinkronisasi cepat) | Ukuran disk (arsip penuh) | +| ------------ | -------------------------------- | ------------------------- | +| Geth | 400GB+ | 6TB+ | +| OpenEthereum | 280GB+ | 6TB+ | +| Nethermind | 200GB+ | 5TB+ | +| Besu | 750GB+ | 5TB+ | +| Erigon | N/A | 1TB+ | + +- Catatan: Erigon tidak melakukan Sinkronisasi Cepat, tapi Pemangkasan Penuh masih memungkinkan (~500GB) + +Bagan ini menunjukkan bagaimana persyaratan kapasitas penyimpanan selalu berubah. Untuk data Geth dan Parity yang paling terbaru, lihat [data sinkronisasi penuh](https://etherscan.io/chartsync/chaindefault) dan [ data sinkronisasi arsip](https://etherscan.io/chartsync/chainarchive). + +### Ethereum pada komputer papan tunggal {#ethereum-on-a-single-board-computer} + +Cara paling nyaman dan murah untuk menjalankan node Ethereum adalah menggunakan komputer papan tungggal dengan arstitektur ARM seperti Raspberry Pi. [Ethereum di ARM](https://twitter.com/EthereumOnARM) menyediakan gambar dari klien Geth, Parity, Nethermind, dan Besu. Ini adalah tutorial sederhana tentang [bagaimana menyusun dan menyiapkan klien ARM](/developers/tutorials/run-node-raspberry-pi/). + +Perangkat kecil, terjangkau dan efisien seperti ini, ideal untuk menjalankan node di rumah. + +## Bacaan lebih lanjut {#further-reading} + +Ada banyak informasi tentang klien Ethereum di internet. Berikut adalah beberapa sumber daya yang mungkin bisa membantu. + +- [Ethereum 101 - Bagian 2 - Memahami Node](https://kauri.io/ethereum-101-part-2-understanding-nodes/48d5098292fd4f11b251d1b1814f0bba/a) _– Wil Barnes, 13 Februari 2019_ +- [Menjalankan Node Penuh Ethereum: Panduan bagi Mereka yang Hampir Tidak Termotivasi](https://medium.com/@JustinMLeroux/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _– Justin Leroux, 7 November 2019_ +- [Menganalisis persyaratan perangkat keras untuk menjadi node tervalidasi penuh Ethereum](https://medium.com/coinmonks/analyzing-the-hardware-requirements-to-be-an-ethereum-full-validated-node-dc064f167902) _– Albert Palau, 24 September 2018_ +- [Menjalankan Node Hyperledger Besu di Jaringan Utama Ethereum: Keuntungan, Persyaratan, dan Penyiapan](https://pegasys.tech/running-a-hyperledger-besu-node-on-the-ethereum-mainnet-benefits-requirements-and-setup/) _– Felipe Faraggi, 7 Mei 2020_ + +## Topik terkait {#related-topics} + +- [Blok](/developers/docs/blocks/) +- [Jaringan](/developers/docs/networks/) + +## Tutorial terkait {#related-tutorials} + +- [Menjalankan Node dengan Geth](/developers/tutorials/run-light-node-geth/) _– Cara mengunduh, menginstal, dan menjalankan Geth. Covering syncmodes, the JavaScript console, and more._ +- [Ubah Raspberry Pi 4 Anda menjadi node validator cukup dengan mem-flash kartu MicroSD – Panduan instalasi](/developers/tutorials/run-node-raspberry-pi/) _– Flash Raspberry Pi 4, colokkan kabel ethernet, hubungkan SSD dan nyalakan perangkat untuk mengubah Raspberry Pi 4 menjadi node penuh Ethereum yang menjalankan lapisan eksekusi (Jaringan Utama) dan / atau lapisan konsensus (Rantai Suar / validator)._ diff --git a/src/content/translations/id/developers/docs/nodes-and-clients/nodes-as-a-service/index.md b/public/content/translations/id/developers/docs/nodes-and-clients/nodes-as-a-service/index.md similarity index 100% rename from src/content/translations/id/developers/docs/nodes-and-clients/nodes-as-a-service/index.md rename to public/content/translations/id/developers/docs/nodes-and-clients/nodes-as-a-service/index.md diff --git a/public/content/translations/id/developers/docs/nodes-and-clients/run-a-node/index.md b/public/content/translations/id/developers/docs/nodes-and-clients/run-a-node/index.md new file mode 100644 index 00000000000..95d4d45c56e --- /dev/null +++ b/public/content/translations/id/developers/docs/nodes-and-clients/run-a-node/index.md @@ -0,0 +1,162 @@ +--- +title: Jalankan node Ethereum Anda sendiri +description: Pengenalan umum untuk menjalankan instance klien Ethereum Anda sendiri. +lang: id +sidebarDepth: 2 +--- + +Menjalankan node Anda sendiri memberi Anda beragam manfaat, membuka peluang baru, dan membantu mendukung ekosistem. Halaman ini akan memandu Anda menjalankan node Anda sendiri dan mengambil bagian dalam memvalidasi transaksi Ethereum. + +## Prasyarat {#prerequisites} + +Anda harus mengerti apa yang dimaksud node Ethereum dan kenapa Anda ingin menjalankan kliennya. Ini dibahas di [Node dan klien](/developers/docs/nodes-and-clients/). + +If you're new to the topic of running a node, or looking for a less technical path, we recommend first checking out our user-friendly introduction on [running an Ethereum node](/run-a-node). + +## Memilih pendekatan {#choosing-approach} + +Langkah pertama dalam menjalankan node Anda adalah memilih pendekatan Anda. Anda harus memilih klien (perangkat lunaknya), lingkungan, dan parameter yang Anda inginkan untuk memulai. Lihat semua [klien Jaringan Utama](/developers/docs/nodes-and-clients/#advantages-of-different-implementations) yang tersedia. + +### Pengaturan klien {#client-settings} + +Implementasi klien memungkinkan mode sinkronisasi yang berbeda dan beragam opsi lainnya. [Mode sinkronisasi](/developers/docs/nodes-and-clients/#sync-modes) mewakili metode pengunduhan dan pengesahan data rantai blok yang berbeda. Sebelum memulai node, Anda harus memutuskan jaringan dan mode sinkronisasi apa yang akan digunakan. Yang paling penting untuk dipertimbangkan adalah ruang disk dan waktu sinkronisasi yang dibutuhkan klien. + +Semua fitur dan opsi dapat ditemukan di dokumentasi klien. Beragam konfigurasi klien dapat diatur dengan mengeksekusi klien dengan bendera yang sesuai. Untuk kebutuhan pengujian, Anda mungkin memilih menjalankan klien pada salah satu jaringan testnet. [Lihat ringkasan jaringan yang didukung](/developers/docs/nodes-and-clients/#execution-clients). + +### Lingkungan dan perangkat keras {#environment-and-hardware} + +#### Lokal atau cloud {#local-vs-cloud} + +Klien Ethereum dapat dijalankan pada komputer kelas konsumen dan tidak membutuhkan perangkat keras khusus, contohnya seperti dalam penambangan. Oleh karena itu, Anda memiliki beragam opsi untuk menyebarkan berdasarkan kebutuhan Anda. Untuk menyederhanakannya, mari pikirkan tentang menjalankan node di mesin fisik lokal dan server cloud: + +- Cloud + - Penyedia menawarkan waktu aktif server yang tinggi, alamat IP publik yang statis + - Mendapatkan server terdedikasi atau virtual dapat memberi kenyamanan lebih dari pada membangunnya sendiri + - Sebagai gantinya mempercayai penyedia server pihak ketiga + - Karena ukuran penyimpanan untuk node penuh dibutuhkan, harga server yang disewakan mungkin menjadi tinggi +- Perangkat keras milik sendiri + - Pendekatan yang lebih tepercaya dan bebas + - Investasi satu kali + - Opsi untuk membeli mesin yang sudah dikonfigurasi + - Anda harus secara fisik menyiapkan, memelihara, dan berpotensi melakukan pencarian masalah pada mesin + +Kedua opsi tersebut memiliki kelebihan berbeda yang diringkas seperti di atas. Jika Anda mencari solusi cloud, sebagai tambahan dari banyak penyedia komputasi cloud tradisional, terdapat pula layanan yang berfokus pada menyebarkan node. Sebagai contoh: + +- [QuikNode](https://www.quiknode.io/) +- [Blockdaemon](https://blockdaemon.com) +- [LunaNode](https://www.lunanode.com/) +- [Alchemy](https://www.alchemy.com/) + +#### Perangkat keras {#hardware} + +Namun, jaringan terdesentralisasi yang tahan sensor seharusnya tidak bergantung pada penyedia cloud. Lebih sehat bagi ekosistem jika Anda menjalankan node Anda sendiri pada perangkat keras. Opsi termudahnya adalah mesin yang sudah dikonfigurasi seperti: + +- [DappNode](https://dappnode.io/) +- [Avado](https://ava.do/) + +Periksa [persyaratan ruang disk untuk setiap klien dan mode sinkronisasi](/developers/docs/nodes-and-clients/#requirements) minimum dan yang direkomendasikan. Secara umum, kekuatan komputasi sederhana seharusnya sudah cukup. Masalahnya biasanya pada kecepatan drive. Selama inisiasi sinkronisasi, klien Ethereum melakukan banyak operasi baca/tulis. Oleh karena itu, SSD sangat direkomendasikan. Klien bahkan mungkin [tidak dapat menyinkronkan state terkini pada HDD](https://github.com/ethereum/go-ethereum/issues/16796#issuecomment-391649278) dan tersangkut beberapa blok di belakang Jaringan Utama. Anda dapat menjalankan sebagian besar klien di sebuah [komputer papan tunggal dengan ARM](/developers/docs/nodes-and-clients/#ethereum-on-a-single-board-computer/). Anda juga dapat menggunakan sistem operasi [Ethbian](https://ethbian.org/index.html) untuk Raspberry Pi 4. This lets you [run a client by flashing the SD card](/developers/tutorials/run-node-raspberry-pi/). Berdasarkan pilihan perangkat lunak dan keras Anda, persyaratan waktu sinkronisasi dan penyimpanan awal mungkin beragam. Pastikan untuk [memeriksa persyaratan waktu sinkronisasi dan penyimpanan](/developers/docs/nodes-and-clients/#recommended-specifications). Juga pastikan koneksi internet Anda tidak dibatasi oleh [batas bandwidth](https://wikipedia.org/wiki/Data_cap). Disarankan untuk menggunakan koneksi tidak terbatas karena sinkronisasi dan data awal yang disiarkan ke jaringan dapat melebihi batas Anda. + +#### Sistem operasi {#operating-system} + +Semua klien mendukung sistem operasi utama - Linux, MacOS, Windows. Ini berarti Anda dapat menjalankan node pada desktop reguler atau mesin server dengan sistem operasi (OS) yang paling sesuai dengan kebutuhan Anda. Pastikan OS Anda merupakan versi terkini untuk menghindari masalah dan kerentanan keamanan potensial. + +## Menjalankan node {#spinning-up-node} + +### Mendapatkan perangkat lunak klien {#getting-the-client} + +Pertama, unduh [perangkat lunak klien](/developers/docs/nodes-and-clients/#execution-clients) yang Anda inginkan + +Anda cukup mengunduh aplikasi yang dapat dieksekusi atau paket instalasi yang sesuai dengan sistem dan arsitektur operasi Anda. Selalu verifikasi tanda tangan dan checksum dari paket yang diunduh. Beberapa klien juga menawarkan repositori untuk instalasi dan pembaruan yang lebih mudah. Jika Anda mau, Anda dapat membangun dari sumber. Semua klien adalah sumber terbuka sehingga Anda dapat membangun mereka dari kode sumber dengan pengkompilasi yang sesuai. + +Biner yang dapat dieksekusi untuk implementasi klien Jaringan Utama stabil dapat diunduh dari halaman rilisnya: + +- [Geth](https://geth.ethereum.org/downloads/) +- [OpenEthereum,](https://github.com/openethereum/openethereum/releases) +- [Nethermind](https://downloads.nethermind.io/) +- [Besu](https://besu.hyperledger.org/en/stable/) +- [Erigon](https://github.com/ledgerwatch/erigon) + +**Perhatikan bahwa OpenEthereum [telah menjadi usang](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) dan tidak lagi dipertahankan.** Gunakan dengan hati-hati dan lebih baik beralih ke implementasi klien lainnya. + +### Memulai klien {#starting-the-client} + +Sebelum memulai perangkat lunak klien Ethereum, lakukan pemeriksaan terakhir bahwa lingkungan Anda telah siap. Sebagai contoh, pastikan: + +- Ada ruang disk yang cukup jika dilihat dari jaringan dan mode sikronisasi yang dipilih. +- Memori dan CPU tidak terhambat oleh program lainnya. +- Sistem operasi diperbarui ke versi terkini. +- Sistem memiliki waktu dan tanggal yang tepat. +- Router dan firewall Anda menerima koneksi pada port pendengar. Secara default, klien Ethereum menggunakan port pendengar (TCP) dan port penemuan (UDP), keduanya pada 30303 secara default. + +Jalankan klien Anda pada testnet terlebih dahulu untuk menolong memastikan semuanya bekerja dengan benar. [Menjalankan node ringan Geth](/developers/tutorials/run-light-node-geth/) seharusnya membantu. Anda perlu mendeklarasikan pengaturan klien mana pun yang bukan default pada awalnya. Anda dapat menggunakan bendera atau berkas konfigurasi untuk mendeklarasikan konfigurasi yang diinginkan. Lihat dokumentasi klien Anda untuk eksekusi Klien khusus yang akan memulai fungsi inti, titik akhir terpilihnya, dan mulai mencari peer. Setelah berhasil menemukan peer, klien memulai sinkronisasi. Data rantai blok saat ini akan tersedia setelah klien berhasil disinkronisasikan dengan state saat ini. + +### Menggunakan klien {#using-the-client} + +Klien menawarkan titik akhir API RPC yang dapat Anda gunakan untuk mengontrol klien dan berinteraksi dengan jaringan Ethereum dalam berbagai cara: + +- Secara manual memanggil mereka dengan protokol yang sesuai (contohnya menggunakan `curl`) +- Melekatkan konsol yang disediakan (misalnya `geth attach`) +- Mengimplementasikan mereka dalam aplikasi + +Klien berbeda memiliki implementasi berbeda pada titik akhir RPC. Tetapi ada JSON-RPC standar yang dapat Anda gunakan dengan setiap klien. Untuk ringkasannya, [baca dokumen JSON-RPC](https://eth.wiki/json-rpc/API). Aplikasi yang membutuhkan informasi dari jaringan Ethereum dapat menggunakan RPC ini. Sebagai contoh, dompet populer MetaMask memungkinkan Anda [menjalankan instance rantai blok lokal dan terhubung dengannya](https://metamask.zendesk.com/hc/en-us/articles/360015290012-Using-a-Local-Node). + +#### Menjangkau RPC {#reaching-rpc} + +Port default JSON-RPC adalah `8545` tetapi Anda dapat memodifikasi port titik akhir lokalnya dalam berkas konfigurasi. Secara default, antarmuka RPC hanya dapat dijangkau pada host lokal komputer Anda. Untuk membuatnya dapat diakses dari jarak jauh, Anda mungkin ingin mengeksposnya ke publik dengan mengubah alamatnya ke `0.0.0.0`. Ini akan membuatnya dapat dijangkau melalui alamat IP lokal dan publik. Dalam kebanyakan kasus, Anda juga akan perlu menyiapkan port yang meneruskan ke router Anda. + +Anda harus melakukan ini dengan hati-hati karena ini akan memungkinkan siapa pun di internet mengontrol node Anda. Pelaku kejahatan dapat mengakses node Anda untuk menghentikan sistem Anda atau mencuri dana Anda jika Anda menggunakan klien Anda sebagai dompet. + +Cara mengatasinya adalah mencegah termodifikasinya metode RPC yang berpotensi berbahaya. Sebagai contoh, dengan `geth`, Anda dapat mendeklarasikan metode yang dapat dimodifikasi dengan bendera: `--http.api web3,eth,txpool`. + +Anda juga dapat menghost akses ke antarmuka RPC Anda dengan menunjukkan layanan server web, seperti Nginx, ke alamat dan port lokal klien Anda. + +Cara paling sederhana dan paling menjaga privasi adalah mengatur titik akhir yang dapat dicapai publik, Anda dapat melakukan host di layanan onion [Tor](https://www.torproject.org/) Anda sendiri. Ini akan memungkinkan Anda mencapai RPC di luar jaringan lokal Anda tanpa alamat IP publik yang statis ataupun port yang terbuka. Untuk melakukannya: + +- Instal `tor` +- Edit konfigurasi `torrc` untuk mengaktifkan layanan tersembunyi dengan alamat dan port RPC klien Anda +- Mulai ulang layanan `tor` + +Setelah Anda memulai ulang Tor, Anda akan mendapat kunci layanan tersembunyi dan sebuah nama host di direktori yang Anda inginkan. Dari situ, RPC Anda dapat dicapai dalam nama host `.onion`. + +### Mengoperasikan node {#operating-the-node} + +Anda harus mengawasi node Anda secara berkala untuk memastikannya berjalan dengan baik. Anda sesekali mungkin perlu melakukan pemeliharaan. + +#### Menjaga node tetap daring {#keeping-node-online} + +Node Anda tidak harus daring tanpa henti tetapi Anda harus menjaganya daring sebisa mungkin untuk membuatnya tetap tersinkronisasi dengan jaringan. Anda dapat mematikannya untuk memulai ulang tetapi ingatlah bahwa: + +- Mematikan dapat memakan waktu beberapa menit jika state terkininya masih ditulis dalam diska. +- Mematikan secara paksa dapat merusak basis data. +- Klien Anda akan tidak tersinkronisasi dengan jaringan dan akan membutuhkan sinkronisasi ulang ketika Anda memulainya kembali. + +_Ini tidak berlaku pada node validator lapisan konsensus._ Menjadikan node Anda luring akan berdampak pada semua layanan yang bergantung padanya. Jika Anda menjalankan node untuk tujuan _penaruhan_ Anda seharusnya mencoba meminimalisasi waktu henti sebisa mungkin. + +#### Membuat layanan klien {#creating-client-service} + +Pertimbangkan membuat layanan untuk menjalankan klien Anda secara otomatis saat memulai. Sebagai contoh pada server Linux, praktik yang baiknya adalah membuat layanan yang mengeksekusi klien dengan konfigurasi yang sesuai, di bawah pengguna dengan hak istimewa yang terbatas dan memulai ulang secara otomatis. + +#### Memperbarui klien {#updating-client} + +Anda perlu menjaga perangkat lunak klien Anda dalam versi terkini dengan patch keamanan, fitur-fitur, dan [EIPs](/eips/) terbaru. Terutama sebelum [fork keras](/history/), pastikan Anda menjalankan versi klien yang benar. + +#### Menjalankan layanan tambahan {#running-additional-services} + +Menjalankan node Anda sendiri memungkinkan Anda menggunakan layanan yang membutuhkan akses langsung ke RPC klien Ethereum. Layanan ini dibangun di atas Ethereum seperti [solusi lapisan 2](/developers/docs/scaling/#layer-2-scaling), klien konsensus, dan infrastruktur Ethereum lainnya. + +#### Memonitor node {#monitoring-the-node} + +"Untuk memonitor node Anda dengan benar, pertimbangkan mengoleksi metrik. Klien menyediakan titik akhir metrik sehingga Anda bisa mendapatkan data komprehensif tentang node Anda. Gunakan perangkat seperti [InfluxDB](https://www.influxdata.com/get-influxdb/) atau [Prometheus](https://prometheus.io/) untuk membuat basis data yang dapat Anda ubah menjadi visualisasi dan bagan pada perangkat lunak seperti [Grafana](https://grafana.com/). Terdapat banyak pengaturan untuk menggunakan perangkat lunak ini dan dasbor Grafana yang berbeda untuk memvisualisasikan node Anda dan jaringannya secara keseluruhan. Sebagai bagian dari pengawasan Anda, pastikan untuk memperhatikan performa mesin Anda. Selama sinkronisasi awal node Anda, perangkat lunak klien mungkin membebani CPU dan RAM. Sebagai tambahan pada Grafana, Anda dapat menggunakan perangkat yang ditawarkan OS Anda seperti `htop` atau `uptime` untuk melakukannya. + +## Bacaan lebih lanjut {#further-reading} + +- [Menganalisis persayaratan perangkat keras untuk menjadi node tervalidasi penuh Ethereum](https://medium.com/coinmonks/analyzing-the-hardware-requirements-to-be-an-ethereum-full-validated-node-dc064f167902) _– Albert Palau, 24 September 2018_ +- [Menjalankan Node Penuh Ethereum: Satu Panduan untuk Anda yang Sedikit Termotivasi](https://medium.com/@JustinMLeroux/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _– Justin Leroux, 7 November 2019_ +- [Menjalankan Node Hyperledger Besu pada Jaringan Utama Ethereum: Manfaat, Persyaratan, dan Persiapannya](https://pegasys.tech/running-a-hyperledger-besu-node-on-the-ethereum-mainnet-benefits-requirements-and-setup/) _– Felipe Faraggi, 7 Mei 2020_ +- [Menyebarkan Klien Nethermind Ethereum dengan Memonitor Stack](https://medium.com/nethermind-eth/deploying-nethermind-ethereum-client-with-monitoring-stack-55ce1622edbd) _– Nethermind.eth, 8 Juli 2020_ + +## Topik terkait {#related-topics} + +- [Node dan klien](/developers/docs/nodes-and-clients/) +- [Blok](/developers/docs/blocks/) +- [Jaringan](/developers/docs/networks/) diff --git a/src/content/translations/id/developers/docs/oracles/index.md b/public/content/translations/id/developers/docs/oracles/index.md similarity index 100% rename from src/content/translations/id/developers/docs/oracles/index.md rename to public/content/translations/id/developers/docs/oracles/index.md diff --git a/src/content/translations/id/developers/docs/programming-languages/dart/index.md b/public/content/translations/id/developers/docs/programming-languages/dart/index.md similarity index 100% rename from src/content/translations/id/developers/docs/programming-languages/dart/index.md rename to public/content/translations/id/developers/docs/programming-languages/dart/index.md diff --git a/src/content/translations/id/developers/docs/programming-languages/delphi/index.md b/public/content/translations/id/developers/docs/programming-languages/delphi/index.md similarity index 100% rename from src/content/translations/id/developers/docs/programming-languages/delphi/index.md rename to public/content/translations/id/developers/docs/programming-languages/delphi/index.md diff --git a/src/content/translations/id/developers/docs/programming-languages/dot-net/index.md b/public/content/translations/id/developers/docs/programming-languages/dot-net/index.md similarity index 100% rename from src/content/translations/id/developers/docs/programming-languages/dot-net/index.md rename to public/content/translations/id/developers/docs/programming-languages/dot-net/index.md diff --git a/src/content/translations/id/developers/docs/programming-languages/golang/index.md b/public/content/translations/id/developers/docs/programming-languages/golang/index.md similarity index 100% rename from src/content/translations/id/developers/docs/programming-languages/golang/index.md rename to public/content/translations/id/developers/docs/programming-languages/golang/index.md diff --git a/src/content/translations/id/developers/docs/programming-languages/index.md b/public/content/translations/id/developers/docs/programming-languages/index.md similarity index 100% rename from src/content/translations/id/developers/docs/programming-languages/index.md rename to public/content/translations/id/developers/docs/programming-languages/index.md diff --git a/src/content/translations/id/developers/docs/programming-languages/java/index.md b/public/content/translations/id/developers/docs/programming-languages/java/index.md similarity index 100% rename from src/content/translations/id/developers/docs/programming-languages/java/index.md rename to public/content/translations/id/developers/docs/programming-languages/java/index.md diff --git a/src/content/translations/id/developers/docs/programming-languages/javascript/index.md b/public/content/translations/id/developers/docs/programming-languages/javascript/index.md similarity index 100% rename from src/content/translations/id/developers/docs/programming-languages/javascript/index.md rename to public/content/translations/id/developers/docs/programming-languages/javascript/index.md diff --git a/src/content/translations/id/developers/docs/programming-languages/python/index.md b/public/content/translations/id/developers/docs/programming-languages/python/index.md similarity index 100% rename from src/content/translations/id/developers/docs/programming-languages/python/index.md rename to public/content/translations/id/developers/docs/programming-languages/python/index.md diff --git a/src/content/translations/id/developers/docs/programming-languages/rust/index.md b/public/content/translations/id/developers/docs/programming-languages/rust/index.md similarity index 100% rename from src/content/translations/id/developers/docs/programming-languages/rust/index.md rename to public/content/translations/id/developers/docs/programming-languages/rust/index.md diff --git a/src/content/translations/id/developers/docs/scaling/index.md b/public/content/translations/id/developers/docs/scaling/index.md similarity index 100% rename from src/content/translations/id/developers/docs/scaling/index.md rename to public/content/translations/id/developers/docs/scaling/index.md diff --git a/src/content/translations/id/developers/docs/scaling/layer-2-rollups/index.md b/public/content/translations/id/developers/docs/scaling/layer-2-rollups/index.md similarity index 100% rename from src/content/translations/id/developers/docs/scaling/layer-2-rollups/index.md rename to public/content/translations/id/developers/docs/scaling/layer-2-rollups/index.md diff --git a/src/content/translations/id/developers/docs/scaling/plasma/index.md b/public/content/translations/id/developers/docs/scaling/plasma/index.md similarity index 100% rename from src/content/translations/id/developers/docs/scaling/plasma/index.md rename to public/content/translations/id/developers/docs/scaling/plasma/index.md diff --git a/src/content/translations/id/developers/docs/scaling/sidechains/index.md b/public/content/translations/id/developers/docs/scaling/sidechains/index.md similarity index 100% rename from src/content/translations/id/developers/docs/scaling/sidechains/index.md rename to public/content/translations/id/developers/docs/scaling/sidechains/index.md diff --git a/src/content/translations/id/developers/docs/scaling/state-channels/index.md b/public/content/translations/id/developers/docs/scaling/state-channels/index.md similarity index 100% rename from src/content/translations/id/developers/docs/scaling/state-channels/index.md rename to public/content/translations/id/developers/docs/scaling/state-channels/index.md diff --git a/src/content/translations/id/developers/docs/scaling/validium/index.md b/public/content/translations/id/developers/docs/scaling/validium/index.md similarity index 100% rename from src/content/translations/id/developers/docs/scaling/validium/index.md rename to public/content/translations/id/developers/docs/scaling/validium/index.md diff --git a/public/content/translations/id/developers/docs/smart-contracts/anatomy/index.md b/public/content/translations/id/developers/docs/smart-contracts/anatomy/index.md new file mode 100644 index 00000000000..aa30eb0542d --- /dev/null +++ b/public/content/translations/id/developers/docs/smart-contracts/anatomy/index.md @@ -0,0 +1,658 @@ +--- +title: Anatomi kontrak pintar +description: Penjabaran mendalam tentang anatomi kontak cerdas – fungsi, data, dan variabel. +lang: id +--- + +Kontrak pintar adalah program yang dijalankan pada sebuah alamat di Ethereum. Kontrak pintar terbuat dari data dan fungsi yang bisa dieksekusi saat menerima sebuah transaksi. Berikut adalah gambaran umum dari komponen yang menyusun sebuah kontrak pintar. + +## Prasyarat {#prerequisites} + +Pastikan Anda telah membaca tentang [kontrak pintar](/developers/docs/smart-contracts/) terlebih dahulu. Dokumen ini menganggap Anda telah terbiasa dengan bahasa pemrograman seperti JavaScript atau Python. + +## Data {#data} + +Setiap data kontrak harus ditetapkan ke suatu lokasi: baik ke `storage` atau `memory`. Untuk memodifikasi penyimpanan di sebuah kontrak pintar biayanya mahal, jadi Anda perlu mempertimbangkan tempat untuk menyimpan data Anda. + +### Penyimpanan {#storage} + +Data yang persisten dirujuk sebagai penyimpanan dan diwakilkan oleh variabel state. Nilai-nilai ini disimpan secara permanen di blockchain. Anda perlu mendeklarasikan jenisnya sehingga kontrak bisa tetap melacak kapasitas penyimpanan pada blockchain yang diperlukan kontrak ketika dikompilasi. + +```solidity +// Contoh Solidity +contract SimpleStorage { + uint storedData; // State variable + // ... +} +``` + +```python +# Vyper example +storedData: int128 +``` + +Jika Anda telah memprogram bahasa yang berorientasi objek, Anda mungkin akan lebih mengenal sebagian besar jenisnya. Namun `address` mungkin terdengar asing jika Anda seorang pengembang pemula di Ethereum. + +Suatu jenis `address` bisa menampung alamat Ethereum yang setara dengan 20 bita atau 160 bit. Alamat kembali dalam notasi heksadesimal dengan awalan 0x. + +Jenis lainnya meliputi: + +- boolean +- bilangan bulat +- angka poin tetap +- array bita berukuran tetap +- array bita berukuran dinamis +- Literal rasional dan bilangan bulat +- Literal string +- Literal heksadesimal +- Enum + +Untuk penjelasan lebih lanjut, lihat dokumen: + +- [Lihat jenis Vyper](https://vyper.readthedocs.io/en/v0.1.0-beta.6/types.html#value-types) +- [Lihat jenis Solidity](https://solidity.readthedocs.io/en/latest/types.html#value-types) + +### Memori {#memory} + +Nilai yang hanya disimpan selama masa eksekusi fungsi kontrak disebut variabel memori. Karena nilai ini tidak disimpan secara permanen di blockchain, lebih murah untuk digunakan. + +Pelajari selengkapnya tentang cara EVM menyimpan data (Penyimpanan, Memori, dan Tumpukan) di [dokumen Solidity](https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html?highlight=memory#storage-memory-and-the-stack). + +### Variabel lingkungan {#environment-variables} + +Selain variabel yang Anda tetapkan pada kontrak, ada beberapa variabel global khusus. Variabel ini terutama digunakan untuk memberikan informasi tentang blockchain atau transaksi saat ini. + +Contoh: + +| **Prop** | **Variabel state** | **Deskripsi** | +| ----------------- | ------------------ | ------------------------------------- | +| `block.timestamp` | uint256 | Stempel waktu epoch blok saat ini | +| `msg.sender` | alamat | Pengirim pesan (pemanggilan saat ini) | + +## Fungsi {#functions} + +Dalam istilah yang paling sederhana, fungsi bisa mendapatkan informasi atau mengatur informasi dalam menanggapi transaksi yang masuk. + +Ada dua jenis pemanggilan fungsi: + +- `internal` - ini tidak menghasilkan pemanggilan EVM + - Fungsi internal dan variabel state hanya bisa diakses secara internal (yaitu dari dalam kontrak saat ini atau kontrak yang diturunkan darinya) +- `external` - ini menghasilkan pemanggilan EVM + - Fungsi eksternal adalah bagian dari antarmuka kontrak, yang berarti bisa dipanggil dari kontrak lain dan melalui transaksi. Fungsi eksternal `f` tidak bisa dipanggil secara internal (yaitu `f()` tidak berfungsi, tapi `this.f()` dapat berfungsi). + +Fungsi pemanggilan juga bisa bersifat `public` atau `private` + +- Fungsi `public` bisa dipanggil secara internal dari dalam kontrak atau secara eksternal melalui message +- Fungsi `private` hanya terlihat untuk kontrak yang ditetapkan di dalam dan bukan dalam kontrak turunan + +Kedua fungsi dan variabel state ini bisa dibuat menjadi publik atau privat + +Berikut adalah fungsi untuk memperbarui variabel state dalam sebuah kontrak: + +```solidity +// Contoh Solidity +function update_name(string value) public { + dapp_name = value; +} +``` + +- `Nilai` parameter dari `string` jenis diteruskan ke dalam fungsi: `update_name` +- Fungsi dideklarasikan sebagai `public`, berarti siapa pun bisa mengaksesnya +- Fungsi tidak dideklarasikan sebagai `view`, sehingga bisa memodifikasi state kontrak + +### Fungsi view {#view-functions} + +Fungsi ini berjanji untuk tidak memodifikasi state dari data kontrak. Contoh umumnya adalah fungsi "pengambil" – Anda mungkin menggunakan ini untuk mendapatkan saldo pengguna sebagai contohnya. + +```solidity +// Contoh Solidity +function balanceOf(address _owner) public view returns (uint256 _balance) { + return ownerPizzaCount[_owner]; +} +``` + +```python +dappName: public(string) + +@view +@public +def readName() -> string: + return dappName +``` + +Apa yang dianggap sebagai memodifikasi state: + +1. Menulis ke dalam variabel state. +2. [Menerbitkan aksi](https://solidity.readthedocs.io/en/v0.7.0/contracts.html#events). +3. [Membuat kontrak lain](https://solidity.readthedocs.io/en/v0.7.0/control-structures.html#creating-contracts). +4. Menggunakan `selfdestruct`. +5. Mengirim eter melalui panggilan. +6. Memanggil fungsi apa pun yang tidak bertanda `view` atau `pure`. +7. Menggunakan pemanggilan level rendah. +8. Menggunakan perakitan sebaris yang berisi opcode tertentu. + +### Fungsi pembangun {#constructor-functions} + +Fungsi `constructor` hanya dijalankan sekali saat kontrak digunakan untuk pertama kalinya. Seperti `constructor` di banyak bahasa pemrograman berbasis kelas, fungsi ini sering menjalankan variabel state sesuai dengan nilai yang telah ditentukan. + +```solidity +// Contoh Solidity +// Jalankan data kontrak, siapkan `pemilik` +// sesuai dengan alamat dari pembuat kontrak. +constructor() public { + // Semua kontrak pintar bergantung pada transaksi eksternal untuk memicu fungsinya. + // `msg` adalah sebuah variabel global yang mencakup data relevan sesuai dengan transaksi yang telah disiapkan, + // seperti alamat dari pengirim dan nilai ETH yang termasuk dalam transaksi. + // Pelajari lebih banyak: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties + owner = msg.sender; +} +``` + +```python +# contoh Vyper + +@external +def __init__(_beneficiary: address, _bidding_time: uint256): + self.beneficiary = _beneficiary + self.auctionStart = block.timestamp + self.auctionEnd = self.auctionStart + _bidding_time +``` + +### Fungsi bawaan {#built-in-functions} + +Selain dari variabel dan fungsi yang Anda tetapkan pada kontrak Anda, ada beberapa fungsi bawaan spesial. Contoh paling jelas adalah: + +- `address.send()` – Solidity +- `send(address)` – Vyper + +Ini memungkinkan kontrak untuk mengirim ETH ke akun lain. + +## Menulis fungsi {#writing-functions} + +Fungsi Anda memerlukan: + +- variabel dan tipe parameter (jika fungsi menerima parameter) +- deklarasi internal/eksternal +- deklarasi pure/view/payable +- tipe pengembalian (jika fungsi mengembalikan nilai) + +```solidity +pragma solidity >=0.4.0 <=0.6.0; + +contract ExampleDapp { + string dapp_name; // state variable + + // Dipanggil saat kontrak disebarkan dan jalankan nilai + constructor() public { + dapp_name = "My Example dapp"; + } + + // Fungsi Get + function read_name() public view returns(string) { + return dapp_name; + } + + // Tetapkan Fungsi + function update_name(string value) public { + dapp_name = value; + } +} +``` + +Sebuah kontrak lengkap mungkin tampak seperti ini. Di sini, fungsi `constructor` menyediakan nilai awal untuk variabel `dapp_name`. + +## Aksi dan log {#events-and-logs} + +Aksi memungkinkan Anda berkomunikasi dengan kontrak pintar dari frontend Anda atau aplikasi berbayar lainnya. Ketika sebuah transaksi ditambang, kontrak pintar bisa menerbitkan aksi dan menulis log pada blockchain yang kemudian dapat diproses frontend. + +## Contoh dengan anotasi {#annotated-examples} + +Ini adalah beberapa contoh yang ditulis dalam Solidity. Jika Anda ingin bermain dengan kode tersebut, Anda dapat berinteraksi dengannya di [Remix](http://remix.ethereum.org). + +### Hello world {#hello-world} + +```solidity +// Tentukan versi Solidity, gunakan pembuatan versi semantik. +// Pelajari lebih banyak: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma +pragma solidity ^0.5.10; + +// Tentukan sebuah kontak bernama `HaloDunia`. +// Satu kontrak adalah koleksi dari fungsi dan data (statenya). +// Setelah disebarkan, sebuah kontrak tinggal di alamat spesifik pada blockchain Ethereum. +// Pelajari lebih banyak: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html +contract HelloWorld { + + // Deklarasikan `message` variabel state dari `string` tipe. + // Variabel state adalah variabel yang nilainya secara permanen disimpan dalam penyimpanan kontrak. + // Kata kunci `publik` membuat variabel dapat diakses dari luar kontrak + //dan menciptakan fungsi yang dengannya kontrak atau klien lain bisa memanggil untuk mengakses nilai. + string public message; + + // Sama seperti banyak bahasa berorientasi objek yang berbasis kelas, sebuah pembangun adalah + // sebuah fungsi spesial yang hanya dieksekusi saat pembuatan kontrak. + // Pembangun digunakan untuk menjalankan data kontrak. + // Pelajari lebih banyak: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constructors + constructor(string memory initMessage) public { + // Menerima satu argumen string `initMessage` dan tetapkan nilai + // ke dalam variabel penyimpanan `message` kontrak). + message = initMessage; + } + + // Sebuah fungsi publik yang menerima argumen string + // dan memperbarui variabel penyimpanan`message`. + function update(string memory newMessage) public { + message = newMessage; + } +} +``` + +### Token {#token} + +```solidity +pragma solidity ^0.5.10; + +contract Token { + //Sebuah `alamat` dapat disamakan dengan sebuah alamat email - ia digunakan untuk mengidentifikasi sebuah akun di Ethereum. + // Alamat bisa mewakilkan sebuah kontrak pintar atau satu akun (pengguna) eksternal. + // Pelajari lebih banyak: https://solidity.readthedocs.io/en/v0.5.10/types.html#address + address public owner; + + // Sebuah `mapping` adalah satu struktur data tabel hash. + // `mapping` ini menetapkan sebuah integer yang tidak ditentukan (saldo token) pada sebuah alamat (pemilik token). + // Pelajari lebih banyak: https://solidity.readthedocs.io/en/v0.5.10/types.html#mapping-types + mapping (address => uint) public balances; + + // Aksi memungkinkan logging aktivitas pada blockchain. + // Klien Ethereum bisa mendengarkan aksi untuk bereaksi dengan perubahan state kontrak. + // Pelajari lebih banyak: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#events + event Transfer(address from, address to, uint amount); + + // Jalankan data kontrak, siapkan `pemilik` + // di alamat dari pembuat kontrak. + constructor() public { + // Semua kontrak pintar bergantung pada transaksi eksternal untuk memicu fungsinya. + // `msg` adalah sebuah variabel global yang telah mencakup data relevan sesuai dengan transaksi yang telah disiapkan, + // seperti alamat dari pengirim dan nilai ETH yang termasuk dalam transaksi. + // Pelajari lebih banyak: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties + owner = msg.sender; + } + + // Membuat sejumlah token baru dan mengirimkan mereka ke satu alamat. + function mint(address receiver, uint amount) public { + // `require` is struktur kontrol yang digunakan untuk melaksanakan kondisi tertentu. + // Jika sebuah pernyataan `require` mengevaluasi ke `palsu`, satu pengecualian terpicu, + // yang membalikkan semua perubahan yang dibuat pada state selama pemanggilan saat ini. + //Pelajari lebih banyak: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions + + // Hanya pemilik kontrak yang bisa memanggil fungsi ini + require(msg.sender == owner, "You are not the owner."); + + // Melaksanakan sejumlah maksimum token + require(amount < 1e60, "Maximum issuance exceeded"); + + // Meningkatkan saldo dari `receiver` dalam `amount` + balances[receiver] += amount; + } + + // Mengirim sejumlah token yang ada dari pemanggil manapun ke satu alamat. + function transfer(address receiver, uint amount) public { + // Pengirim harus punya token cukup untuk mengirim + require(amount <= balances[msg.sender], "Insufficient balance."); + + // Sesuaikan saldo token dari dua alamat + balances[msg.sender] -= amount; + balances[receiver] += amount; + + // Terbitkan aksi yang telah ditentukan sebelumnya + emit Transfer(msg.sender, receiver, amount); + } +} +``` + +### Aset digital unik {#unique-digital-asset} + +```solidity +pragma solidity ^0.5.10; + +// Impor simbol dari berkas lain ke dalam kontrak saat ini. +// Dalam kasus ini, sejumlah kontrak penolong dari OpenZeppelin. +// Pelajari lebih banyak: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#importing-other-source-files + +import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; +import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; +import "../node_modules/@openzeppelin/contracts/introspection/ERC165.sol"; +import "../node_modules/@openzeppelin/contracts/math/SafeMath.sol"; + +// Kata kunci `is` digunakan untuk mewarisi fungsi dan kata kunci dari kontrak eksternal. +// Dalam kasus ini, `CryptoPizza` mewarisi dari kontrak `IERC721` dan `ERC165`. +// Pelajari lebih banyak: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#inheritance +contract CryptoPizza is IERC721, ERC165 { + // Gunakan pustaka Safe Math OpenZeppelin untuk melakukan operasi aritmatika dengan aman. + // Pelajari lebih banyak: https://docs.openzeppelin.com/contracts/2.x/api/math#SafeMath + using SafeMath for uint256; + + // Variabel state konstan di Solidity sama dengan bahasa lainnya + // tapi Anda harus menetapkan satu ekpresi yang konstan pada waktu pengompilasian. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constant-state-variables + uint256 constant dnaDigits = 10; + uint256 constant dnaModulus = 10 ** dnaDigits; + bytes4 private constant _ERC721_RECEIVED = 0x150b7a02; + + // Struct types let you define your own type + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#structs + struct Pizza { + string name; + uint256 dna; + } + + // Creates an empty array of Pizza structs + Pizza[] public pizzas; + + // Mapping from pizza ID to its owner's address + mapping(uint256 => address) public pizzaToOwner; + + // Mapping from owner's address to number of owned token + mapping(address => uint256) public ownerPizzaCount; + + // Mapping from token ID to approved address + mapping(uint256 => address) pizzaApprovals; + + // You can nest mappings, this example maps owner to operator approvals + mapping(address => mapping(address => bool)) private operatorApprovals; + + // Internal function to create a random Pizza from string (name) and DNA + function _createPizza(string memory _name, uint256 _dna) + // The `internal` keyword means this function is only visible + // within this contract and contracts that derive this contract + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#visibility-and-getters + internal + // `isUnique` is a function modifier that checks if the pizza already exists + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html#function-modifiers + isUnique(_name, _dna) + { + // Adds Pizza to array of Pizzas and get id + uint256 id = SafeMath.sub(pizzas.push(Pizza(_name, _dna)), 1); + + // Checks that Pizza owner is the same as current user + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions + + // note that address(0) is the zero address, + // indicating that pizza[id] is not yet allocated to a particular user. + + assert(pizzaToOwner[id] == address(0)); + + // Maps the Pizza to the owner + pizzaToOwner[id] = msg.sender; + ownerPizzaCount[msg.sender] = SafeMath.add( + ownerPizzaCount[msg.sender], + 1 + ); + } + + // Creates a random Pizza from string (name) + function createRandomPizza(string memory _name) public { + uint256 randDna = generateRandomDna(_name, msg.sender); + _createPizza(_name, randDna); + } + + // Generates random DNA from string (name) and address of the owner (creator) + function generateRandomDna(string memory _str, address _owner) + public + // Functions marked as `pure` promise not to read from or modify the state + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#pure-functions + pure + returns (uint256) + { + // Generates random uint from string (name) + address (owner) + uint256 rand = uint256(keccak256(abi.encodePacked(_str))) + + uint256(_owner); + rand = rand % dnaModulus; + return rand; + } + + // Returns array of Pizzas found by owner + function getPizzasByOwner(address _owner) + public + // Functions marked as `view` promise not to modify state + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#view-functions + view + returns (uint256[] memory) + { + // Uses the `memory` storage location to store values only for the + // lifecycle of this function call. + // Pelajari lebih banyak: https://solidity.readthedocs.io/en/v0.5.10/introduction-to-smart-contracts.html#storage-memory-and-the-stack + uint256[] memory result = new uint256[](ownerPizzaCount[_owner]); + uint256 counter = 0; + for (uint256 i = 0; i < pizzas.length; i++) { + if (pizzaToOwner[i] == _owner) { + result[counter] = i; + counter++; + } + } + return result; + } + + // Mentransfer Pizza dan kepemilikan ke alamat lain + function transferFrom(address _from, address _to, uint256 _pizzaId) public { + require(_from != address(0) && _to != address(0), "Invalid address."); + require(_exists(_pizzaId), "Pizza does not exist."); + require(_from != _to, "Cannot transfer to the same address."); + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + + ownerPizzaCount[_to] = SafeMath.add(ownerPizzaCount[_to], 1); + ownerPizzaCount[_from] = SafeMath.sub(ownerPizzaCount[_from], 1); + pizzaToOwner[_pizzaId] = _to; + + // Terbitkan aksi yang ditentukan di kontrak IERC721 yang diimpor + emit Transfer(_from, _to, _pizzaId); + _clearApproval(_to, _pizzaId); + } + + /** + * Transfer dengan aman kepemilikan dari ID token yang disediakan ke alamat lain + * Jika alamat target adalah sebuah kontrak, ia harus mengimplementasi ``onERC721Received`, + * yang dipanggil saat satu transfer aman, dan mengembalikan nilai ajaib + * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; + * jika tidak, transfer dibalikkan. + */ + function safeTransferFrom(address from, address to, uint256 pizzaId) + public + { + // solium-disable-next-line arg-overflow + this.safeTransferFrom(from, to, pizzaId, ""); + } + + /** + * Transfer dengan aman kepemilikan dari ID token yang disediakan ke alamat lain + * Jika alamat target adalah satu kontrak, ia harus mengimplementasi `onERC721Received`, + * yang dipanggil saat satu transfer aman, dan mengembalikan nilai ajaib + * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; + * jika tidak, transfer dibalikkan. + */ + function safeTransferFrom( + address from, + address to, + uint256 pizzaId, + bytes memory _data + ) public { + this.transferFrom(from, to, pizzaId); + require(_checkOnERC721Received(from, to, pizzaId, _data), "Must implmement onERC721Received."); + } + + /** + * Fungsi internal untuk memohon `onERC721Received` pada satu alamat target + * Pemanggilan tidak dieksekusi jika alamat target bukan sebuah kontrak + */ + function _checkOnERC721Received( + address from, + address to, + uint256 pizzaId, + bytes memory _data + ) internal returns (bool) { + if (!isContract(to)) { + return true; + } + + bytes4 retval = IERC721Receiver(to).onERC721Received( + msg.sender, + from, + pizzaId, + _data + ); + return (retval == _ERC721_RECEIVED); + } + + // Bakar satu Pizza - hancurkan Token secara total + // Modifier fungsi `external` berarti fungsi ini adalah + // bagian dari antarmuka kontrak dan kontrak lain bisa memanggilnya + function burn(uint256 _pizzaId) external { + require(msg.sender != address(0), "Invalid address."); + require(_exists(_pizzaId), "Pizza does not exist."); + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + + ownerPizzaCount[msg.sender] = SafeMath.sub( + ownerPizzaCount[msg.sender], + 1 + ); + pizzaToOwner[_pizzaId] = address(0); + } + + // Kembalikan penghitungan Pizza lewat alamat + function balanceOf(address _owner) public view returns (uint256 _balance) { + return ownerPizzaCount[_owner]; + } + + // Kembalikan pemilik Pizza yang ditemukan id + function ownerOf(uint256 _pizzaId) public view returns (address _owner) { + address owner = pizzaToOwner[_pizzaId]; + require(owner != address(0), "Invalid Pizza ID."); + return owner; + } + + // Setujui alamat lain untuk mentransfer kepemilikan Pizza + function approve(address _to, uint256 _pizzaId) public { + require(msg.sender == pizzaToOwner[_pizzaId], "Must be the Pizza owner."); + pizzaApprovals[_pizzaId] = _to; + emit Approval(msg.sender, _to, _pizzaId); + } + + // Kembalikan alamat yang disetujui untuk Pizza spesifik + function getApproved(uint256 _pizzaId) + public + view + returns (address operator) + { + require(_exists(_pizzaId), "Pizza does not exist."); + return pizzaApprovals[_pizzaId]; + } + + /** + * Fungsi privat untuk menghapus persetujuan saat ini dari ID token yang disediakan + * Balikkan jika alamat yang disediakan memang bukan pemilik token + */ + function _clearApproval(address owner, uint256 _pizzaId) private { + require(pizzaToOwner[_pizzaId] == owner, "Must be pizza owner."); + require(_exists(_pizzaId), "Pizza does not exist."); + if (pizzaApprovals[_pizzaId] != address(0)) { + pizzaApprovals[_pizzaId] = address(0); + } + } + + /* + * Siapkan atau batalkan persetujuan untuk operator yang disediakan + * Seorang operator diizinkan untuk mentransfer semua token dari pengirim atas nama mereka + */ + function setApprovalForAll(address to, bool approved) public { + require(to != msg.sender, "Cannot approve own address"); + operatorApprovals[msg.sender][to] = approved; + emit ApprovalForAll(msg.sender, to, approved); + } + + // Beritahu apakah seorang operator disetujui oleh seorang pemilik yang disediakan + function isApprovedForAll(address owner, address operator) + public + view + returns (bool) + { + return operatorApprovals[owner][operator]; + } + + // Ambil kepemilikan Pizza - hanya untuk pengguna yang disetujui + function takeOwnership(uint256 _pizzaId) public { + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + address owner = this.ownerOf(_pizzaId); + this.transferFrom(owner, msg.sender, _pizzaId); + } + + // Periksa apakah Pizza ada + function _exists(uint256 pizzaId) internal view returns (bool) { + address owner = pizzaToOwner[pizzaId]; + return owner != address(0); + } + + // Periksa apakah alamat adalah pemilik atau disetujui untuk mentransfer Pizza + function _isApprovedOrOwner(address spender, uint256 pizzaId) + internal + view + returns (bool) + { + address owner = pizzaToOwner[pizzaId]; + // Disable solium check because of + // https://github.com/duaraghav8/Solium/issues/175 + // solium-disable-next-line operator-whitespace + return (spender == owner || + this.getApproved(pizzaId) == spender || + this.isApprovedForAll(owner, spender)); + } + + // Periksa apakah Pizza unik dan belum ada sama sekali + modifier isUnique(string memory _name, uint256 _dna) { + bool result = true; + for (uint256 i = 0; i < pizzas.length; i++) { + if ( + keccak256(abi.encodePacked(pizzas[i].name)) == + keccak256(abi.encodePacked(_name)) && + pizzas[i].dna == _dna + ) { + result = false; + } + } + require(result, "Pizza with such name already exists."); + _; + } + + // Kembalikan apakah alamat target adalah sebuah kontrak + function isContract(address account) internal view returns (bool) { + uint256 size; + // Currently there is no better way to check if there is a contract in an address + // than to check the size of the code at that address. + // Kunjungi https://ethereum.stackexchange.com/a/14016/36603 + // untuk lebih banyak detail tentang bagaimana ini bekerja. + // UNTUK DILAKUKAN Periksa ini lagi sebelum pelepasan Serenity, karena semua alamat akan menjadi + // kontrak kemudian. + // solium-disable-next-line security/no-inline-assembly + assembly { + size := extcodesize(account) + } + return size > 0; + } +} +``` + +## Bacaan lebih lanjut {#further-reading} + +Lihat dokumentasi Solidity dan Vyper untuk gambaran umum yang lebih lengkap tentang kontrak pintar: + +- [Solidity](https://solidity.readthedocs.io/) +- [Vyper](https://vyper.readthedocs.io/) + +## Topik terkait {#related-topics} + +- [Kontrak pintar](/developers/docs/smart-contracts/) +- [Mesin Virtual Ethereum](/developers/docs/evm/) + +## Tutorial terkait {#related-tutorials} + +- [Memperkecil kontrak untuk mengatasi batas ukuran kontrak](/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/) _– Beberapa tips praktis untuk mengurangi ukuran kontrak pintar Anda._ +- [Pembuatan log data dari kontrak pintar dengan aksi](/developers/tutorials/logging-events-smart-contracts/) _– Pengantar aksi kontrak pintar dan cara menggunakannya untuk log data._ +- [Berinteraksi dengan kontrak lain dari Solidity](/developers/tutorials/interact-with-other-contracts-from-solidity/) _– Cara menggunakan kontrak pintar dari kontrak yang sudah ada dan berinteraksi dengan kontrak pintar tersebut._ diff --git a/src/content/translations/id/developers/docs/smart-contracts/compiling/index.md b/public/content/translations/id/developers/docs/smart-contracts/compiling/index.md similarity index 100% rename from src/content/translations/id/developers/docs/smart-contracts/compiling/index.md rename to public/content/translations/id/developers/docs/smart-contracts/compiling/index.md diff --git a/src/content/translations/id/developers/docs/smart-contracts/composability/index.md b/public/content/translations/id/developers/docs/smart-contracts/composability/index.md similarity index 100% rename from src/content/translations/id/developers/docs/smart-contracts/composability/index.md rename to public/content/translations/id/developers/docs/smart-contracts/composability/index.md diff --git a/src/content/translations/id/developers/docs/smart-contracts/deploying/index.md b/public/content/translations/id/developers/docs/smart-contracts/deploying/index.md similarity index 100% rename from src/content/translations/id/developers/docs/smart-contracts/deploying/index.md rename to public/content/translations/id/developers/docs/smart-contracts/deploying/index.md diff --git a/src/content/translations/id/developers/docs/smart-contracts/index.md b/public/content/translations/id/developers/docs/smart-contracts/index.md similarity index 100% rename from src/content/translations/id/developers/docs/smart-contracts/index.md rename to public/content/translations/id/developers/docs/smart-contracts/index.md diff --git a/src/content/translations/id/developers/docs/smart-contracts/languages/index.md b/public/content/translations/id/developers/docs/smart-contracts/languages/index.md similarity index 100% rename from src/content/translations/id/developers/docs/smart-contracts/languages/index.md rename to public/content/translations/id/developers/docs/smart-contracts/languages/index.md diff --git a/src/content/translations/id/developers/docs/smart-contracts/libraries/index.md b/public/content/translations/id/developers/docs/smart-contracts/libraries/index.md similarity index 100% rename from src/content/translations/id/developers/docs/smart-contracts/libraries/index.md rename to public/content/translations/id/developers/docs/smart-contracts/libraries/index.md diff --git a/src/content/translations/id/developers/docs/smart-contracts/security/index.md b/public/content/translations/id/developers/docs/smart-contracts/security/index.md similarity index 100% rename from src/content/translations/id/developers/docs/smart-contracts/security/index.md rename to public/content/translations/id/developers/docs/smart-contracts/security/index.md diff --git a/src/content/translations/id/developers/docs/smart-contracts/testing/index.md b/public/content/translations/id/developers/docs/smart-contracts/testing/index.md similarity index 100% rename from src/content/translations/id/developers/docs/smart-contracts/testing/index.md rename to public/content/translations/id/developers/docs/smart-contracts/testing/index.md diff --git a/src/content/translations/id/developers/docs/standards/index.md b/public/content/translations/id/developers/docs/standards/index.md similarity index 100% rename from src/content/translations/id/developers/docs/standards/index.md rename to public/content/translations/id/developers/docs/standards/index.md diff --git a/src/content/translations/id/developers/docs/standards/tokens/erc-1155/index.md b/public/content/translations/id/developers/docs/standards/tokens/erc-1155/index.md similarity index 100% rename from src/content/translations/id/developers/docs/standards/tokens/erc-1155/index.md rename to public/content/translations/id/developers/docs/standards/tokens/erc-1155/index.md diff --git a/public/content/translations/id/developers/docs/standards/tokens/erc-20/index.md b/public/content/translations/id/developers/docs/standards/tokens/erc-20/index.md new file mode 100644 index 00000000000..9284aeba89e --- /dev/null +++ b/public/content/translations/id/developers/docs/standards/tokens/erc-20/index.md @@ -0,0 +1,148 @@ +--- +title: Standar Token ERC-20 +description: +lang: id +--- + +## Pendahuluan {#introduction} + +**Apa itu Token?** + +Token bisa melambangkan hampir semua hal di Ethereum: + +- poin reputasi dalam sebuah platform online +- kemampuan suatu karakter dalam game +- tiket lotre +- aset keuangan seperti saham dalam sebuah perusahaan +- mata uang fiat seperti USD +- satu ons emas +- dan banyak lagi... + +Fitur yang begitu kuat dari Ethereum ini harus ditangani oleh standar yang juga kuat, bukan? Di situlah tepatnya ERC-20 memainkan perannya! Standar ini memungkinkan pengembang menyusun aplikasi token yang dapat bertukar informasi dengan produk dan layanan lainnya. + +**Apa itu ERC-20?** + +ERC-20 memperkenalkan sebuah standar untuk Token Fungible, dengan kata lain, mereka memiliki properti yang membuat tiap Token sama persis (dalam tipe dan nilai) dengan Token lainnya. Sebagai contoh, satu Token ERC-20 bertindak sama seperti ETH, berarti 1 Token adalah dan akan selalu sama dengan semua Token lainnya. + +## Prasyarat {#prerequisites} + +- [Akun](/developers/docs/accounts) +- [Kontrak Pintar](/developers/docs/smart-contracts/) +- [Standar token](/developers/docs/standards/tokens/) + +## Tubuh {#body} + +ERC-20 (Ethereum Request for Comments 20), yang diusulkan oleh Fabian Vogelsteller pada November 2015, adalah Standar Token yang menerapkan API untuk token dalam Kontrak Pintar. + +ERC-20 fungsionalitas percontohan menyediakan: + +- transfer token dati satu akun ke akun lainnya +- mendapatkan saldo token saat ini dari suatu akun +- mendapatkan total persediaan token yang tersedia di jaringan +- menyetujui apakah jumlah token dari suatu akun dapat dipakai oleh akun pihak ketiga + +Jika Kontrak Pintar menerapkan metode dan aksi berikut ini, kontrak tersebut dapat disebut sebagai Kontrak Token ERC-20 dan, setelah digunakan, kontrak ini akan bertanggungjawab untuk melacak token yang dibuat di Ethereum. + +Dari [EIP-20](https://eips.ethereum.org/EIPS/eip-20): + +### Metode {#methods} + +```solidity +function name() public view returns (string) +function symbol() public view returns (string) +function decimals() public view returns (uint8) +function totalSupply() public view returns (uint256) +function balanceOf(address _owner) public view returns (uint256 balance) +function transfer(address _to, uint256 _value) public returns (bool success) +function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) +function approve(address _spender, uint256 _value) public returns (bool success) +function allowance(address _owner, address _spender) public view returns (uint256 remaining) +``` + +### Aksi {#events} + +```solidity +event Transfer(address indexed _from, address indexed _to, uint256 _value) +event Approval(address indexed _owner, address indexed _spender, uint256 _value) +``` + +### Contoh {#web3py-example} + +Mari kita lihat bagaimana sebuah Standar begitu penting untuk mempermudah pemeriksaan Kontrak Token ERC-20 di Ethereum. Kita hanya memerlukan Application Binary Interface (ABI) Kontrak untuk membuat antarmuka untuk Token ERC-20 mana pun. Seperti yang dapat Anda lihat di bawah, kita akan menggunakan satu ABI yang disederhanakan, untuk membuatnya menjadi contoh bergesekan rendah. + +#### Contoh Web3.py {#web3py-example} + +Pertama-tama, pastikan Anda telah menginstal pustaka Python [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation): + +``` +pip install web3 +``` + +```python +from web3 import Web3 + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI +weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # Wrapped ether (WETH) + +acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11" # Uniswap V2: DAI 2 + +# Ini adalah sebuah Application Binary Interface (ABI) Kontrak yang disederhanakan dari sebuah Kontrak Token ERC-20. +# Kontrak hanya akan menampilkan metode: balanceOf(address), decimals(), symbol() and totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'decimals', + 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +dai_contract = w3.eth.contract(address=w3.toChecksumAddress(dai_token_addr), abi=simplified_abi) +symbol = dai_contract.functions.symbol().call() +decimals = dai_contract.functions.decimals().call() +totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals +addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# DAI +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) + +weth_contract = w3.eth.contract(address=w3.toChecksumAddress(weth_token_addr), abi=simplified_abi) +symbol = weth_contract.functions.symbol().call() +decimals = weth_contract.functions.decimals().call() +totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals +addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# WETH +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) +``` + +## Bacaan lebih lanjut {#further-reading} + +- [EIP-20: Standar Token ERC-20](https://eips.ethereum.org/EIPS/eip-20) +- [OpenZeppelin - Token](https://docs.openzeppelin.com/contracts/3.x/tokens#ERC20) +- [OpenZeppelin - Implementasi ERC-20](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) diff --git a/public/content/translations/id/developers/docs/standards/tokens/erc-721/index.md b/public/content/translations/id/developers/docs/standards/tokens/erc-721/index.md new file mode 100644 index 00000000000..7d78a746fc4 --- /dev/null +++ b/public/content/translations/id/developers/docs/standards/tokens/erc-721/index.md @@ -0,0 +1,242 @@ +--- +title: Standar Token Non-Fungible ERC-721 +description: +lang: id +--- + +## Pendahuluan {#introduction} + +**Apa itu Token Non-Fungible?** + +Token yang Tidak Dapat Dipertukarkan (NFT) digunakan untuk mengenali sesuatu atau seseorang dengan cara yang unik. Jenis Token ini tepat untuk digunakan pada platform yang menawarkan item yang dapat dikoleksi, kunci akses, tiket lotre, kursi bernomor untuk konser dan pertandingan olahraga, dll. Jenis Token spesial ini memiliki kemungkinan yang luar biasa sehingga layak mendapatkan Standar yang sesuai, ERC-721 hadir untuk memecahkannya! + +**Apa itu ERC-721?** + +ERC-721 memperkenalkan sebuah standar untuk NFT, dengan kata lain, tipe Token ini adalah unik dan bisa memiliki nilai yang berbeda dari Token lainnya yang berasal dari Kontrak Pintar yang sama, mungkin dikarenakan usia, keunikan, atau bahkan hal lain seperti visualnya. Tunggu, visualnya? + +Ya! Semua NFT memiliki variabel `uint256` yang disebut `tokenId`, sehingga untuk Kontrak ERC-721 mana pun, pasangan `contract address, uint256 tokenId` harus bersifat unik secara global. Anggap saja, dApp bisa memiliki "konverter" yang menggunakan `tokenId` sebagai input dan output gambar dari sesuatu yang keren, seperti zombi, senjata, kemampuan, atau anak kucing yang menakjubkan! + +## Prasyarat {#prerequisites} + +- [Akun](/developers/docs/accounts/) +- [Kontrak Pintar](/developers/docs/smart-contracts/) +- [Standar token](/developers/docs/standards/tokens/) + +## Tubuh {#body} + +ERC-721 (Ethereum Request for Comments 721), yang diusulkan oleh William Entriken, Dieter Shirley, Jacob Evans, Nastassia Sachs pada Januari 2018, adalah Standar Token yang Tidak Dapat Dipertukarkan yang menerapkan API untuk token di dalam Kontrak Pintar. + +ERC-721 ini menyediakan fungsionalitas seperti mentransfer token dari satu akun ke akun lainnya, mendapatkan informasi saldo token saat ini dari sebuah akun, mendapatkan pemilik token tertentu, dan juga informasi persediaan total dari token yang tersedia di jaringan. Selain itu, juga memiliki beberapa fungsionalitas lain seperti memberi persetujuan untuk pemindahan sejumlah token dari sebuah akun oleh akun pihak ketiga. + +Jika Kontrak Pintar menerapkan metode dan aksi berikut, kontrak itu dapat disebut Kontrak Token yang Tidak Dapat Dipertukarkan ERC-721 dan, setelah digunakan, akan bertanggungjawab untuk melacak token yang dibuat di Ethereum. + +Dari [EIP-721](https://eips.ethereum.org/EIPS/eip-721): + +### Metode {#methods} + +```solidity + function balanceOf(address _owner) external view returns (uint256); + function ownerOf(uint256 _tokenId) external view returns (address); + function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; + function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; + function transferFrom(address _from, address _to, uint256 _tokenId) external payable; + function approve(address _approved, uint256 _tokenId) external payable; + function setApprovalForAll(address _operator, bool _approved) external; + function getApproved(uint256 _tokenId) external view returns (address); + function isApprovedForAll(address _owner, address _operator) external view returns (bool); +``` + +### Aksi {#events} + +```solidity + event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); + event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); + event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); +``` + +### Contoh {#web3py-example} + +Mari kita lihat bagaimana sebuah Standar begitu penting untuk mempermudah pemeriksaan Kontrak Token ERC-721 di Ethereum. Kita hanya memerlukan Application Binary Interface (ABI) Kontrak untuk membuat antarmuka untuk Token ERC-721 mana pun. Seperti yang dapat Anda lihat di bawah, kita akan menggunakan satu ABI yang disederhanakan, untuk membuatnya menjadi contoh bergesekan rendah. + +#### Contoh Web3.py {#web3py-example} + +Pertama-tama, pastikan Anda telah menginstal pustaka Python [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation): + +``` +pip install web3 +``` + +```python +from web3 import Web3 +from web3._utils.events import get_event_data + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # CryptoKitties Contract + +acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # CryptoKitties Sales Auction + +# Ini adalah sebuah Kontrak Application Binary Interface (ABI) yang disederhanakan dari kontrak NFT ERC-721. +# Kontrak akan hanya menampilkan metode: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'name', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'ownerOf', + 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, +] + +ck_extra_abi = [ + { + 'inputs': [], + 'name': 'pregnantKitties', + 'outputs': [{'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'name': '_kittyId', 'type': 'uint256'}], + 'name': 'isPregnant', + 'outputs': [{'name': '', 'type': 'bool'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +ck_contract = w3.eth.contract(address=w3.toChecksumAddress(ck_token_addr), abi=simplified_abi+ck_extra_abi) +name = ck_contract.functions.name().call() +symbol = ck_contract.functions.symbol().call() +kitties_auctions = ck_contract.functions.balanceOf(acc_address).call() +print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}") + +pregnant_kitties = ck_contract.functions.pregnantKitties().call() +print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}") + +# Menggunakan ABI Aksi Transfer untuk mendapat informasi tentang Kitties yang ditransfer. +tx_event_abi = { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'from', 'type': 'address'}, + {'indexed': False, 'name': 'to', 'type': 'address'}, + {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'Transfer', + 'type': 'event' +} + +# Kita membutuhkan tanda tangan aksi untuk menyaring log +event_signature = w3.sha3(text="Transfer(address,address,uint256)").hex() + +logs = w3.eth.getLogs({ + "fromBlock": w3.eth.blockNumber - 120, + "address": w3.toChecksumAddress(ck_token_addr), + "topics": [event_signature] +}) + +# Catatan: +# - 120 blok adalah kisaran maksimum yang disediakan layanan Penyedia CloudFlare +# - Jika Anda tidak menemukan Transfer event apa pun, Anda juga dapat mendapatkan tokenId di: +# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events +# Klik untuk memperluas log aksi dan salin argumen "tokenId"nya + +recent_tx = [get_event_data(w3.codec, tx_event_abi, log)["args"] for log in logs] + +kitty_id = recent_tx[0]['tokenId'] # Paste the "tokenId" here from the link above +is_pregnant = ck_contract.functions.isPregnant(kitty_id).call() +print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}") +``` + +Kontrak CryptoKitties memiliki beberapa Aksi menarik selain dari aksi Standar. + +Mari kita lihat dua di antaranya, `Pregnant` dan `Birth`. + +```python +# Menggunakan ABI Aksi Pregnant dan Birth untuk mendapatkan informasi tentang Kitties baru. +ck_extra_events_abi = [ + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}], + 'name': 'Pregnant', + 'type': 'event' + }, + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'kittyId', 'type': 'uint256'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'genes', 'type': 'uint256'}], + 'name': 'Birth', + 'type': 'event' + }] + +# Kita membutuhkan tanda tangan aksi untuk menyaring log +ck_event_signatures = [ + w3.sha3(text="Pregnant(address,uint256,uint256,uint256)").hex(), + w3.sha3(text="Birth(address,uint256,uint256,uint256,uint256)").hex(), +] + +# Berikut adalah Aksi Pregnant: +# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog +pregnant_logs = w3.eth.getLogs({ + "fromBlock": w3.eth.blockNumber - 120, + "address": w3.toChecksumAddress(ck_token_addr), + "topics": [ck_event_signatures[0]] +}) + +recent_pregnants = [get_event_data(w3.codec, ck_extra_events_abi[0], log)["args"] for log in pregnant_logs] + +# Berikut adalah Aksi Birth: +# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a +birth_logs = w3.eth.getLogs({ + "fromBlock": w3.eth.blockNumber - 120, + "address": w3.toChecksumAddress(ck_token_addr), + "topics": [ck_event_signatures[1]] +}) + +recent_births = [get_event_data(w3.codec, ck_extra_events_abi[1], log)["args"] for log in birth_logs] +``` + +## NFT Populer {#popular-nfts} + +- [Pelacak NFT Etherscan](https://etherscan.io/tokens-nft) mendaftarkan NFT populer di Ethereum berdasarkan volume transfer. +- [CryptoKitties](https://www.cryptokitties.co/) adalah sebuah game yang berpusat pada mahluk yang dapat dikembangbiakkan, dikoleksi, dan begitu menggemaskan yang kita sebut CryptoKitties. +- [Sorare](https://sorare.com/) adalah sebuah game sepakbola fantasi global di mana Anda bisa mengumpulkan item koleksi edisi terbatas, mengatur tim Anda, dan berkompetisi untuk mendapatkah hadiah. +- [Layanan Nama Ethereum (ENS)](https://ens.domains/) menawarkan cara yang aman dan terdesentralisasi untuk mengelola sumber daya baik on dan off blockchain menggunakan nama yang sederhana dan mudah dimengerti. +- [Unstoppable Domains](https://unstoppabledomains.com/) adalah sebuah perusahaan berbasis di San Fransisco yang membangun domain di blockchain. Domain blockchain menggantikan alamat mata uang kripto dengan nama yang mudah dimengerti dan bisa digunakan untuk memungkinkan situs web yang tahan penyensoran. +- [Gods Unchained Cards](https://godsunchained.com/) adalah sebuah TCG pada blockchain Ethereum yang menggunakan NFT untuk membawa kepemilikan asli ke aset dalam game. +- [Bored Ape Yacht Club](https://boredapeyachtclub.com) adalah koleksi dari 10.000 NFT unik, yang, selain merupakan karya seni langkah yang terbukti, bertindak sebagai token keanggotaan klub, yang menyediakan fasilitas dan keuntungan yang bertambah seiring dengan waktu sebagai hasil dari usaha komunitas. + +## Bacaan lebih lanjut {#further-reading} + +- [EIP-721: Standar Token Non-Fungible ERC-721](https://eips.ethereum.org/EIPS/eip-721) +- [OpenZeppelin - Dokumen ERC-721](https://docs.openzeppelin.com/contracts/3.x/erc721) +- [OpenZeppelin - Implementasi ERC-721](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) diff --git a/src/content/translations/id/developers/docs/standards/tokens/erc-777/index.md b/public/content/translations/id/developers/docs/standards/tokens/erc-777/index.md similarity index 100% rename from src/content/translations/id/developers/docs/standards/tokens/erc-777/index.md rename to public/content/translations/id/developers/docs/standards/tokens/erc-777/index.md diff --git a/src/content/translations/id/developers/docs/standards/tokens/index.md b/public/content/translations/id/developers/docs/standards/tokens/index.md similarity index 100% rename from src/content/translations/id/developers/docs/standards/tokens/index.md rename to public/content/translations/id/developers/docs/standards/tokens/index.md diff --git a/src/content/translations/id/developers/docs/storage/index.md b/public/content/translations/id/developers/docs/storage/index.md similarity index 100% rename from src/content/translations/id/developers/docs/storage/index.md rename to public/content/translations/id/developers/docs/storage/index.md diff --git a/src/content/translations/id/developers/docs/transactions/index.md b/public/content/translations/id/developers/docs/transactions/index.md similarity index 100% rename from src/content/translations/id/developers/docs/transactions/index.md rename to public/content/translations/id/developers/docs/transactions/index.md diff --git a/src/content/translations/id/developers/docs/web2-vs-web3/index.md b/public/content/translations/id/developers/docs/web2-vs-web3/index.md similarity index 100% rename from src/content/translations/id/developers/docs/web2-vs-web3/index.md rename to public/content/translations/id/developers/docs/web2-vs-web3/index.md diff --git a/src/content/translations/id/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md b/public/content/translations/id/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md rename to public/content/translations/id/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md diff --git a/src/content/translations/id/developers/tutorials/calling-a-smart-contract-from-javascript/index.md b/public/content/translations/id/developers/tutorials/calling-a-smart-contract-from-javascript/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/calling-a-smart-contract-from-javascript/index.md rename to public/content/translations/id/developers/tutorials/calling-a-smart-contract-from-javascript/index.md diff --git a/src/content/translations/id/developers/tutorials/create-and-deploy-a-defi-app/index.md b/public/content/translations/id/developers/tutorials/create-and-deploy-a-defi-app/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/create-and-deploy-a-defi-app/index.md rename to public/content/translations/id/developers/tutorials/create-and-deploy-a-defi-app/index.md diff --git a/src/content/translations/id/developers/tutorials/deploying-your-first-smart-contract/index.md b/public/content/translations/id/developers/tutorials/deploying-your-first-smart-contract/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/deploying-your-first-smart-contract/index.md rename to public/content/translations/id/developers/tutorials/deploying-your-first-smart-contract/index.md diff --git a/src/content/translations/id/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md b/public/content/translations/id/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md rename to public/content/translations/id/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md diff --git a/src/content/translations/id/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/id/developers/tutorials/erc-721-vyper-annotated-code/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/erc-721-vyper-annotated-code/index.md rename to public/content/translations/id/developers/tutorials/erc-721-vyper-annotated-code/index.md diff --git a/src/content/translations/id/developers/tutorials/erc20-annotated-code/index.md b/public/content/translations/id/developers/tutorials/erc20-annotated-code/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/erc20-annotated-code/index.md rename to public/content/translations/id/developers/tutorials/erc20-annotated-code/index.md diff --git a/src/content/translations/id/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md b/public/content/translations/id/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md rename to public/content/translations/id/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md diff --git a/src/content/translations/id/developers/tutorials/guide-to-smart-contract-security-tools/index.md b/public/content/translations/id/developers/tutorials/guide-to-smart-contract-security-tools/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/guide-to-smart-contract-security-tools/index.md rename to public/content/translations/id/developers/tutorials/guide-to-smart-contract-security-tools/index.md diff --git a/src/content/translations/id/developers/tutorials/hello-world-smart-contract/index.md b/public/content/translations/id/developers/tutorials/hello-world-smart-contract/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/hello-world-smart-contract/index.md rename to public/content/translations/id/developers/tutorials/hello-world-smart-contract/index.md diff --git a/src/content/translations/id/developers/tutorials/how-to-implement-an-erc721-market/index.md b/public/content/translations/id/developers/tutorials/how-to-implement-an-erc721-market/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/how-to-implement-an-erc721-market/index.md rename to public/content/translations/id/developers/tutorials/how-to-implement-an-erc721-market/index.md diff --git a/src/content/translations/id/developers/tutorials/how-to-mint-an-nft/index.md b/public/content/translations/id/developers/tutorials/how-to-mint-an-nft/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/how-to-mint-an-nft/index.md rename to public/content/translations/id/developers/tutorials/how-to-mint-an-nft/index.md diff --git a/src/content/translations/id/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md b/public/content/translations/id/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md rename to public/content/translations/id/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md diff --git a/src/content/translations/id/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md b/public/content/translations/id/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md rename to public/content/translations/id/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md diff --git a/src/content/translations/id/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md b/public/content/translations/id/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md rename to public/content/translations/id/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md diff --git a/public/content/translations/id/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md b/public/content/translations/id/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md new file mode 100644 index 00000000000..4d4c86b6409 --- /dev/null +++ b/public/content/translations/id/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md @@ -0,0 +1,100 @@ +--- +title: Cara Menyiapkan Tellor sebagai Oracle Anda +description: Sebuah panduan untuk memulai mengintegrasikan oracle Tellor ke dalam protokol Anda +author: "Tellor" +lang: id +tags: + - "solidity" + - "kontrak pintar" + - "feed harga" + - "oracle" +skill: beginner +published: 2021-06-29 +source: Dokumen Tellor +sourceUrl: https://docs.tellor.io/tellor/ +--- + +Pop Quiz: Your protocol is just about finished, but it needs an oracle to get access to off chain data...What do you do? + +## Prasyarat (perangkat lunak) {#soft-prerequisites} + +Posting ini bertujuan untuk membuat akses ke feed oracle semudah dan sesederhana mungkin. Oleh karena itu, kami menggangap yang berikut ini kira - kira adalah tingkat kemahiran pengodean Anda untuk berfokus pada aspek oracle. + +Asumsi: + +- Anda dapat menavigasikan suatu terminal +- Anda memiliki npm yang telah terinstal +- Anda mengetahui cara menggunakan npm untuk mengelola dependensi + +Tellor adalah oracle sumber terbuka dan langsung yang siap untuk diimplementasikan. Panduan pemula ini ada untuk menampilkan kemudahan yang dengannya seseorang dapat memulai dan menjalankan Tellor, yang menyediakan proyek Anda dengan oracle yang sepenuhnya terdesentralisasi dan tahan penyensoran. + +## Gambaran umum {#overview} + +Tellor is an oracle system where parties can request the value of an off-chain data point (e.g. BTC/USD) and reporters compete to add this value to an on-chain data-bank, accessible by all Ethereum smart contracts. The inputs to this data-bank are secured by a network of staked reporters. Tellor utilizes crypto-economic incentive mechanisms, rewarding honest data submissions by reporters and punishing bad actors through the issuance of Tellor’s token, Tributes (TRB) and a dispute mechanism. + +Dalam tutorial ini, kita akan membahas: + +- Menyiapkan toolkit awal yang akan Anda butuhkan untuk memulai dan menjalankannya. +- Membahas suatu contoh sederhana. +- Merinci alamat testnet jaringan yang dapat Anda gunakan untuk menguji Tellor saat ini. + +## Menggunakan Tellor {#usingtellor} + +Hal pertama yang akan ingin Anda lakukan adalah menginstal perangkat dasar yang diperlukan untuk menggunakan Tellor sebagai oracle Anda. Use [this package](https://github.com/tellor-io/usingtellor) to install the Tellor User Contracts: + +`npm install usingtellor` + +Setelah diinstal, ini akan memungkinkan kontrak Anda untuk mewarisi fungsi dari kontrak 'UsingTellor'. + +Bagus! Now that you've got the tools ready, let's go through a simple exercise where we retrieve the bitcoin price: + +### Contoh BTC/USD {#btcusd-example} + +Wariskan kontrak UsingTellor, yang meneruskan alamat Tellor sebagai argumen konstruktor: + +Berikut contohnya: + +```solidity +import "usingtellor/contracts/UsingTellor.sol"; + +contract BtcPriceContract is UsingTellor { + + //This Contract now has access to all functions in UsingTellor + + bytes btcPrice; + bytes32 btcQueryId = 0x0000000000000000000000000000000000000000000000000000000000000002; + + constructor(address payable _tellorAddress) UsingTellor(_tellorAddress) public {} + + function setBtcPrice() public { + bool _didGet; + uint256 _timestamp; + + (_didGet, btcPrice, _timestamp) = getCurrentValue(btcQueryId); + } +} +``` + +**Want to try a different data feed? Check out the list of supported data feeds here: [Current Data Feeds](https://docs.tellor.io/tellor/integration/data-feed-ids)** + +## Alamat: {#addresses} + +Mainnet: [`0x88df592f8eb5d7bd38bfef7deb0fbc02cf3778a0`](https://etherscan.io/address/0x88df592f8eb5d7bd38bfef7deb0fbc02cf3778a0#code) + +### Ingin melakukan beberapa pengujian terlebih dahulu? Lihat daftar di bawah untuk alamat testnet aktif kami: {#looking-to-do-some-testing-first-see-the-list-below-for-our-active-testnet-addresses} + +Rinkeby: [`0x88df592f8eb5d7bd38bfef7deb0fbc02cf3778a0`](https://rinkeby.etherscan.io/address/0x88df592f8eb5d7bd38bfef7deb0fbc02cf3778a0#code) + +Kovan: [`0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7`](https://kovan.etherscan.io/address/0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7#code) + +Ropsten: [`0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7`](https://ropsten.etherscan.io/address/0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7#code) + +Goerli: [`0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7`](https://goerli.etherscan.io/address/0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7#code) + +BSC Testnet: [`0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7`](https://testnet.bscscan.com/address/0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7#code) + +Polygon Mumbai Testnet: [`0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7`](https://mumbai.polygonscan.com/address/0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7/contracts#code) + +Arbitrum Testnet: [`0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7`](https://rinkeby-explorer.arbitrum.io/address/0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7) + +### Untuk implementasi yang lebih kuat pada oracle Tellor, lihat daftar lengkap fungsi yang tersedia [di sini.](https://github.com/tellor-io/usingtellor/blob/master/README.md) {#for-a-more-robust-implementation-of-the-tellor-oracle-check-out-the-full-list-of-available-functions-here} diff --git a/public/content/translations/id/developers/tutorials/how-to-view-nft-in-metamask/index.md b/public/content/translations/id/developers/tutorials/how-to-view-nft-in-metamask/index.md new file mode 100644 index 00000000000..e6dd90d7514 --- /dev/null +++ b/public/content/translations/id/developers/tutorials/how-to-view-nft-in-metamask/index.md @@ -0,0 +1,38 @@ +--- +title: Cara Melihat NFT Anda di Dompet Anda (Bagian 3/3 dari Seri Tutorial NFT) +description: Tutorial ini mendeskripsikan cara melihat suatu NFT yang ada di MetaMask! +author: "Sumi Mudgil" +tags: + - "NFT" + - "ERC-721" + - "Alchemy" + - "token yang tidak dapat dipertukarkan" + - "Solidity" +skill: beginner +lang: id +published: 2021-04-22 +--- + +Tutorial ini adalah Bagian 3/3 dalam seri Tutorial NFT, di mana kita melihat NFT kita yang baru dicetak. Namun, Anda dapat menggunakan tutorial umum untuk token ERC-721 mana pun dengan menggunakan MetaMask, termasuk pada Jaringan Utama atau jaringan percobaan mana pun. Jika Anda ingin belajar cara mencetak NFT Anda sendiri di Ethereum, Anda harus melihat [Bagian 1 tentang Cara Menulis & Menyebarkan kontrak pintar NFT](/developers/tutorials/how-to-write-and-deploy-an-nft)! + +Selamat! Anda telah sampai pada bagian terpendek dan termudah dari seri tutorial NFT kami — cara melihat NFT Anda yang baru dicetak di dompet virtual. Kita akan menggunakan MetaMask untuk contoh ini karena kita menggunakannya di kedua bagian sebelumnya. + +Sebagai prasyarat, Anda seharusnya telah menginstal MetaMask di ponsel, dan program/aps itu seharusnya memasukkan akun ke mana Anda mencetak NFT Anda — Anda dapat mendapatkan aplikasinya secara gratis di [iOS](https://apps.apple.com/us/app/metamask-blockchain-wallet/id1438144202) atau [Android](https://play.google.com/store/apps/details?id=io.metamask&hl=en_US&gl=US). + +## Langkah 1: Tetapkan jaringan Anda ke Ropsten {#set-network-to-ropsten} + +Pada bagian atas aplikasi, tekan tombol "Dompet", yang setelahnya Anda akan diminta untuk memilih jaringan. Karena NFT kita dicetak di jaringan Ropsten, Anda akan ingin memilih Ropsten sebagai jaringan Anda. + +![Cara menetapkan Ropsten sebagai jaringan Anda di MetaMask Seluler](./goerliMetamask.gif) + +## Langkah 2: Tambahkan koleksi Anda ke MetaMask {#add-nft-to-metamask} + +Setelah Anda ada di jaringan Ropsten, pilih tab "Koleksi" di sebelah kanan dan tambahkan akun kontrak pintar NFT dan ID token ERC-721 NFT Anda — yang seharusnya Anda temukan di Etherscan berdasarkan hash transaksi dari NFT Anda yang disebar di Bagian II dari tutorial kami. + +![Cara menemukan hash transaksi dan ID token ERC-721 Anda](./findNFTEtherscan.png) + +Anda mungkin perlu merefresh beberapa kali untuk melihat NFT Anda — tetapi ia akan ada di sana ! + +![Cara mengunggah NFT Anda ke MetaMask](./findNFTMetamask.gif) + +Selamat! Anda telah berhasil mencetak NFT, dan Anda sekarang dapat melihatnya! Kami tidak sabar menunggu untuk melihat bagaimana Anda akan sukses di dunia NFT! diff --git a/public/content/translations/id/developers/tutorials/how-to-write-and-deploy-an-nft/index.md b/public/content/translations/id/developers/tutorials/how-to-write-and-deploy-an-nft/index.md new file mode 100644 index 00000000000..9e53a664ef3 --- /dev/null +++ b/public/content/translations/id/developers/tutorials/how-to-write-and-deploy-an-nft/index.md @@ -0,0 +1,353 @@ +--- +title: Cara Menulis & Menyebarkan NFT (Bagian 1/3 dari Seri Tutorial NFT) +description: Tutorial ini adalah Bagian 1 dari seri NFT yang akan membawa Anda selangkah demi selangkah tentang cara menulis dan menyebarkan kontrak pintar Token yang Tak Dapat Dipertukarkan (token ERC-721) dengan menggunakan Ethereum dan Sistem Berkas Antar Planet (IPFS). +author: "Sumi Mudgil" +tags: + - "NFT" + - "ERC-721" + - "Alchemy" + - "Solidity" + - "kontrak pintar" +skill: beginner +lang: id +published: 2021-04-22 +--- + +Dengan NFT yang membawa rantai blok ke perhatian publik, sekarang adalah peluang yang sangat baik untuk memahami sensasinya sendiri dengan menerbitkan NFT Anda sendiri (Token ERC-721) di rantai blok Ethereum! + +Alchemy merasa sangat bangga karena memberdayakan nama-nama terbesar dalam area NFT, termasuk Makersplace (baru saja mencetak rekor penjualan karya seni digital di Christie's sebesar $69 Juta), Dapper Labs (pembuat NBA Top Shot & Crypto Kitties), OpenSea (pasar NFT terbesar di dunia), Zora, Super Rare, NFTfi, Foundation, Enjin, Origin Protocol, Immutable, dan banyak lagi. + +Dalam tutorial ini, kami akan memberi panduan lengkap tentang membuat dan menyebarkan kontrak pintar ERC-721 pada jaringan pengujian Ropsten dengan menggunakan [MetaMask](https://metamask.io/), [Solidity](https://docs.soliditylang.org/en/v0.8.0/), [Hardhat](https://hardhat.org/), [Pinata](https://pinata.cloud/) dan [Alchemy](https://alchemy.com/signup/eth) (jangan khawatir jika Anda belum memahami apa pun arti dari ini - kami akan menjelaskannya!). + +Dalam Bagian 2 dari tutorial ini kita akan melalui panduan cara menggunakan kontrak pintar kita untuk mencetak NFT, dan dalam Bagian 3, kami akan menjelaskan cara melihat NFT Anda di MetaMask. + +And of course, if you have questions at any point, don’t hesitate to reach out in the [Alchemy Discord](https://discord.gg/gWuC7zB) or visit [Alchemy's NFT API docs](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api)! + +## Langkah 1: Hubungkan ke jaringan Ethereum {#connect-to-ethereum} + +Ada beberapa cara untuk membuat permintaan ke rantai blok Ethereum, tetapi untuk mempermudah prosesnya, kita akan menggunakan akun gratis di [Alchemy](https://alchemy.com/signup/eth), suatu platform pengembang rantai blok dan API yang memungkinkan kita berkomunikasi dengan rantai Ethereum tanpa perlu menjalankan simpul Anda sendiri. + +Dalam tutorial ini, kita juga akan memanfaatkan perangkat pengembang Alchemy untuk pengawasan dan analitik untuk memahami apa yang terjadi di bawah hood dalam penyebaran kontrak pintar kita. Jika Anda belum memiliki akun Alchemy, Anda dapat mendaftar gratis [di sini](https://alchemy.com/signup/eth). + +## Langkah 2: Buat aplikasi Anda (dan kunci API) {#make-api-key} + +Setelah Anda membuat akun Alchemy, Anda dapat membuat kunci API dengan membuat aplikasi. Ini akan memungkinkan kita untuk membuat permintaan ke jaringan pengujian Ropsten. Lihat [panduan ini](https://docs.alchemyapi.io/guides/choosing-a-network) jika Anda penasaran untuk mempelajari lebih lanjut tentang jaringan pengujian. + +1. Arahkan ke halaman "Buat Aplikasi" di Dasbor Alchemy Anda dengan mengarahkan kursor ke "Aplikasi" di bar navigasi dan mengklik "Buat Aplikasi" + +![Buat aplikasi Anda](./create-your-app.png) + +2. Namai aplikasi Anda (kami memilih "NFT Pertamaku!"), berikan deskripsi pendek, pilih "Staging" untuk Lingkungannya (yang digunakan untuk pembukuan aplikasi Anda), dan pilih "Ropsten" untuk jaringan Anda. + +![Konfigurasikan dan publikasikan aplikasi Anda](./configure-and-publish-your-app.png) + +3. Klik "Buat aplikasi" dan selesai! Aplikasi Anda seharusnya muncul dalam tabel di bawah ini. + +## Langkah 3: Buat akun Ethereum (alamat) {#create-eth-address} + +Kita memerlukan akun Ethereum untuk mengirim dan menerima transaksi. Untuk tutorial ini, kita akan menggunakan MetaMask, dompet virtual dalam peramban yang digunakan untuk mengelola alamat akun Ethereum Anda. Jika Anda ingin memahami lebih lanjut tentang cara transaksi di Ethereum bekerja, lihat [halaman ini](/developers/docs/transactions/) dari yayasan Ethereum. + +Anda dapat mengunduh dan membuat akun MetaMask secara gratis [di sini](https://metamask.io/download.html). Saat Anda membuat akun, atau jika Anda sudah memiliki akun, pastikan untuk beralih ke "Jaringan Pengujian Ropsten" di kanan atas (sehingga kita tidak berurusan dengan uang asli). + +![Tetapkan Ropsten sebagi jaringan Anda](./metamask-goerli.png) + +## Langkah 4: Tambahkan ether dari Keran {#step-4-add-ether-from-a-faucet} + +Untuk menyebarkan kontrak pintar kita ke jaringan uji, kita memerlukan beberapa ETH palsu. To get ETH you can go to the [FaucETH](https://fauceth.komputing.org) and enter your Ropsten account address, click “Request funds”, then select “Ethereum Testnet Ropsten” in the dropdown and finally click “Request funds” button again. Anda seharusnya akan melihat ETH dalam akun MetaMask Anda dengan segera! + +## Langkah 5: Periksa Saldo Anda {#check-balance} + +Untuk memeriksa ulang apakah saldo kita ada di sana, mari buat permintaan [eth_getBalance](https://docs.alchemyapi.io/alchemy/documentation/alchemy-api-reference/json-rpc#eth_getbalance) dengan menggunakan [peralatan komposer Alchemy](https://composer.alchemyapi.io?composer_state=%7B%22network%22%3A0%2C%22methodName%22%3A%22eth_getBalance%22%2C%22paramValues%22%3A%5B%22%22%2C%22latest%22%5D%7D). Ini akan mengembalikan jumlah ETH dalam dompet kita. Setelah Anda memasukkan alamat akun MetaMask Anda dan klik "Kirim Permintaan", Anda akan melihat respons seperti ini: + + `{"jsonrpc": "2.0", "id": 0, "result": "0xde0b6b3a7640000"}` + +**CATATAN: **Hasil ini dalam wei, bukan ETH. Wei digunakan sebagai denominasi terkecil dari ether. Konversi dari wei ke ETH adalah 1 eth = 1018 wei. Jadi jika kita mengonversi 0xde0b6b3a7640000 ke bentuk desimal, kita mendapatkan 1\*1018 wei, yang setara dengan 1 ETH. + +Fiuh! Uang palsu kita semuanya ada di sana. + +## Langkah 6: Inisialisasi proyek kami {#initialize-project} + +Pertama, kita perlu membuat folder untuk proyek kita. Navigasikan ke barisan perintah dan ketik: + + mkdir my-nft + cd my-nft + +Sekarang karena kita ada di dalam folder proyek kita, kita akan menggunakan npm init untuk menginisialisasi proyek. Jika Anda belum menginstal npm, ikuti [petunjuk ini](https://docs.alchemyapi.io/alchemy/guides/alchemy-for-macs#1-install-nodejs-and-npm) (kita juga memerlukan [Node.js](https://nodejs.org/en/download/), jadi unduh itu juga!). + + npm init + +Tidak jadi masalah bagaimana cara Anda menjawab pertanyaan instalasinya, berikut adalah cara kami melakukannya sebagai referensi: + + package name: (my-nft) + version: (1.0.0) + description: My first NFT! + entry point: (index.js) + test command: + git repository: + keywords: + author: + license: (ISC) + About to write to /Users/thesuperb1/Desktop/my-nft/package.json: + + { + "name": "my-nft", + "version": "1.0.0", + "description": "My first NFT!", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC" + } + +Setujui package.json, dan kita siap untuk beraksi! + +## Langkah 7: Instal [Hardhat](https://hardhat.org/getting-started/#overview) {#install-hardhat} + +Hardhat adalah lingkungan pengembangan untuk mengkompilasi, menyebarkan, menguji, dan men-debug perangkat lunak Ethereum Anda. Lingkungan ini membantu pengembang saat membangun kontrak pintar dan dApps secara lokal sebelum menyebarkannya ke rantai sebenarnya. + +Di dalam proyek nft ku jalankan: + + npm install --save-dev hardhat + +Lihat halaman ini untuk detail lebih lanjut tentang [petunjuk penginstalan](https://hardhat.org/getting-started/#overview). + +## Langkah 8: Buat proyek Hardhat {#create-hardhat-project} + +Di dalam folder proyek kita jalankan: + + npx hardhat + +Lalu Anda seharusnya melihat pesan selamat datang dan opsi untuk memilih apa yang ingin Anda lakukan. Pilih "buat hardhat.config.js kosong": + + 888 888 888 888 888 + 888 888 888 888 888 + 888 888 888 888 888 + 8888888888 8888b. 888d888 .d88888 88888b. 8888b. 888888 + 888 888 "88b 888P" d88" 888 888 "88b "88b 888 + 888 888 .d888888 888 888 888 888 888 .d888888 888 + 888 888 888 888 888 Y88b 888 888 888 888 888 Y88b. + 888 888 "Y888888 888 "Y88888 888 888 "Y888888 "Y888 + 👷 Selamat datang di HardHat v2.0.11 👷‍ + ? What do you want to do? … + Create a sample project + ❯ Create an empty hardhat.config.js + Quit + +Ini akan menghasilkan berkas hardhat.config.js untuk kita yang merupakan tempat di mana kita akan menentukan semua penyiapan untuk proyek kita (pada langkah 13). + +## Langkah 9: Tambahkan folder proyek {#add-project-folders} + +Untuk menjaga proyek kita tetap terorganisir, kita akan membuat dua folder baru. Navigasikan ke direktori akar dari proyek Anda dalam barisan perintah dan ketik: + + mkdir contracts + mkdir scripts + +- contracts/ adalah tempat di mana kita akan menyimpan kode kontrak pintar NFT kita + +- scripts/ adalah tempat di mana kita akan menyimpan skrip untuk menyebarkan dan berinteraksi dengan kontrak pintar kita + +## Langkah 10: Tulis kontrak kita {#write-contract} + +Sekarang karena lingkungan kita sudah siap, mari beralih ke hal-hal yang lebih menyenangkan: _menulis kode kontrak pintar kita!_ + +Buka proyek nft ku dalam editor favorit Anda (kami menyukai [VSCode](https://code.visualstudio.com/)). Kontrak pintar ditulis dalam bahasa yang disebut Solidity yang akan kami gunakan untuk menulis kontrak pintar MyNFT.sol kami + +1. Navigasikan ke folder `contracts` dan buat berkas baru yang disebut MyNFT.sol + +2. Di bawah ini adalah kode kontrak pintar NFT kami, yang berdasarkan pada implementasi ERC-721 pustaka [OpenZeppelin](https://docs.openzeppelin.com/contracts/3.x/erc721). Salin dan tempelkan konten di bawah ke dalam berkas MyNFT.sol Anda. + + ```solidity + //Contract based on [https://docs.openzeppelin.com/contracts/3.x/erc721](https://docs.openzeppelin.com/contracts/3.x/erc721) + // SPDX-License-Identifier: MIT + pragma solidity ^0.8.0; + + import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; + import "@openzeppelin/contracts/utils/Counters.sol"; + import "@openzeppelin/contracts/access/Ownable.sol"; + import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol"; + + contract MyNFT is ERC721URIStorage, Ownable { + using Counters for Counters.Counter; + Counters.Counter private _tokenIds; + + constructor() ERC721("MyNFT", "NFT") {} + + function mintNFT(address recipient, string memory tokenURI) + public onlyOwner + returns (uint256) + { + _tokenIds.increment(); + + uint256 newItemId = _tokenIds.current(); + _mint(recipient, newItemId); + _setTokenURI(newItemId, tokenURI); + + return newItemId; + } + } + ``` + +3. Karena kami mewarisi kelas dari pustaka kontrak OpenZeppelin, dalam baris perintah Anda jalankan `npm install @openzeppelin/contracts` untuk menginstal pustaka ke dalam folder kita. + +Jadi, apa yang sebenarnya _dilakukan_ oleh kode ini? Mari kita uraikan, baris per baris. + +Pada bagian atas kontrak pintar kami, kami mengimpor tiga kelas kontrak pintar [OpenZeppelin](https://openzeppelin.com/): + +- @openzeppelin/contracts/token/ERC721/ERC721.sol berisi implementasi standar ERC-721, yang akan diwarisi oleh kontrak pintar NFT kita. (Untuk menjadi NFT valid, kontrak pintar Anda harus mengimplementasikan semua metode standar ERC-721.) Untuk mempelajari lebih lanjut tentang fungsi ERC-721 yang diwariskan, lihat definisi antarmuka [di sini](https://eips.ethereum.org/EIPS/eip-721). + +- @openzeppelin/contracts/utils/Counters.sol menyediakan penghitung yang hanya dapat ditambah atau dikurangi sebanyak satu. Kontrak pintar kami menggunakan penghitung untuk melacak jumlah total NFT yang dicetak dan menetapkan ID unik pada NFT baru kami. (Tiap NFT yang dicetak dengan menggunakan kontrak pintar harus diberikan ID unik — di sini ID unik kita hanya ditentukan berdasarkan jumlah total NFT yang ada. Sebagai contoh, NFT pertama yang kita cetak menggunakan kontrak pintar kita memiliki ID "1", NFT kedua kita memiliki ID "2", dst.) + +- @openzeppelin/contracts/access/Ownable.sol mengatur [kontrol akses](https://docs.openzeppelin.com/contracts/3.x/access-control) pada kontrak pintar kita, sehingga hanya pemilik kontrak pintar (Anda) yang dapat mencetak NFT. (Ingatlah, menyertakan kontrol akses hanya merupakan sebuah preferensi. Jika Anda ingin siapapun dapat mencetak NFT dengan menggunakan kontrak pintar Anda, hapus kata Ownable pada baris 10 dan onlyOwner pada baris 17.) + +Setelah kita mengimpor pernyataan, kita memiliki kontrak pintar NFT kustom kita, yang ternyata sangat pendek — hanya terdiri dari sebuah penghitung, sebuah konstruktor, dan fungsi tunggal! Ini semua berkat kontrak warisan OpenZeppelin kita, yang mengimplementasikan sebagian besar metode yang kita butuhkan untuk membuat NFT, seperti `ownerOf` yang mengembalikan pemilik NFT tersebut, dan `transferFrom`, yang mentransfer kepemilikan NFT dari satu akun ke akun lainnya. + +Pada konstruktor ERC-721 kita, Anda akan melihat kita melewati 2 string, "MyNFT" dan "NFT." Variabel pertama adalah nama kontrak pintarnya, dan yang kedua adalah simbolnya. Anda dapat menamai setiap variabel tersebut sesuka Anda! + +Finally, we have our function `mintNFT(address recipient, string memory tokenURI)` that allows us to mint an NFT! Anda dapat melihat fungsi ini memiliki dua variabel: + +- `address recipient` menentukan alamat yang akan menerima NFT Anda yang baru saja dicetak + +- `string memory tokenURI` adalah string yang seharusnya memecah menjadi dokumen JSON yang menjelaskan metadata NFT tersebut. Metadata NFT-lah yang menghidupkannya, memungkinkan NFT memiliki properti yang dapat dikonfigurasi, seperti nama, deskripsi, gambar, dan atribut lainnya. Pada bagian 2 dari tutorial ini, kami akan menjelaskan cara mengkonfigurasi metadata tersebut. + +`mintNFT` memanggil beberapa metode dari pustaka ERC-721 warisan, dan pada akhirnya mengembalikan angka yang merepresentasikan ID dari NFT yang baru saja dicetak. + +## Langkah 11: Hubungkan MetaMask & Alchemy ke proyek Anda {#connect-metamask-and-alchemy} + +Kini setelah kita membuat dompet MetaMask, akun Alchemy, dan menulis kontrak pintar kita, inilah waktunya menghubungkan ketiganya. + +Setiap transaksi yang dikirim dari dompet virtual Anda memerlukan tanda tangan menggunakan kunci pribadi unik Anda. Untuk menyediakan program kita dengan izin ini, kita dapat menyimpan kunci pribadi kita (dan kunci API Alchemy) dengan aman dalam sebuah berkas lingkungan. + +Untuk mempelajari lebih lanjut tentang mengirim transaksi, lihat [tutorial ini](/developers/tutorials/sending-transactions-using-web3-and-alchemy/) tentang mengirim transaksi dengan menggunakan web3. + +Pertama-tama, instal paket dotenv ke dalam direktori proyek Anda: + + npm install dotenv --save + +Then, create a `.env` file in the root directory of our project, and add your MetaMask private key and HTTP Alchemy API URL to it. + +- Ikuti [instruksi ini](https://metamask.zendesk.com/hc/en-us/articles/360015289632-How-to-Export-an-Account-Private-Key) untuk mengekspor kunci pribadi Anda dari MetaMask + +- Lihat di bawah ini untuk mendapatkan URL API Alchemy HTTP dan menyalinnya ke papan klip Anda + +![Salin URL API Alchemy Anda](./copy-alchemy-api-url.gif) + +Your `.env` should now look like this: + + API_URL="https://eth-ropsten.alchemyapi.io/v2/your-api-key" + PRIVATE_KEY="your-metamask-private-key" + +Untuk betul-betul menghubungkannya ke kode kita, kita akan mereferensikan variabel-variabel ini dalam berkas hardhat.config.js kita pada langkah ke-13. + + +Don't commit .env! Please make sure never to share or expose your .env file with anyone, as you are compromising your secrets in doing so. If you are using version control, add your .env to a gitignore file. + + +## Langkah 12: Instal Ethers.js {#install-ethers} + +Ethers.js adalah pustaka yang mempermudah interaksi dan pembuatan permintaan ke Ethereum dengan membungkus [metode JSON-RPC standar](/developers/docs/apis/json-rpc/) dengan metode yang lebih ramah pengguna. + +Hardhat menjadikannya sangat mudah untuk mengintegrasikan [Plugin](https://hardhat.org/plugins/) untuk perangkat tambahan dan fungsionalitas yang diperluas. Kita akan mengambil manfaat dari [plugin Ethers](https://hardhat.org/plugins/nomiclabs-hardhat-ethers.html) untuk penyebaran kontrak ([Ethers.js](https://github.com/ethers-io/ethers.js/) memiliki beberapa metode penyebaran kontrak yang sangat bersih). + +Dalam direktori proyek Anda, ketik: + + npm install --save-dev @nomiclabs/hardhat-ethers ethers@^5.0.0 + +Kita juga memerlukan ethers dalam hardhat.config.js kita di langkah selanjutnya. + +## Langkah 13: Perbarui hardhat.config.js {#update-hardhat-config} + +Kita sejauh ini telah menambahkan beberapa dependensi dan plugin, kini kita perlu memperbarui hardhat.config.js agar proyek kita mengenali mereka. + +Perbarui hardhat.config.js Anda agar terlihat seperti ini: + + /** + * @type import('hardhat/config').HardhatUserConfig + */ + require('dotenv').config(); + require("@nomiclabs/hardhat-ethers"); + const { API_URL, PRIVATE_KEY } = process.env; + module.exports = { + solidity: "0.8.1", + defaultNetwork: "ropsten", + networks: { + hardhat: {}, + ropsten: { + url: API_URL, + accounts: [`0x${PRIVATE_KEY}`] + } + }, + } + +## Langkah 14: Mengkompilasi kontrak kita {#compile-contract} + +Untuk memastikan segalanya berjalan baik sejauh ini, mari kita kompilasikan kontrak kita. Tugas untuk mengompilasi merupakan salah satu tugas bawaan hardhat. + +Dari barisan perintah jalankan: + + npx hardhat compile + +Anda mungkin mendapat peringatan mengenai pengenal lisensi SPDX tidak tersedia di berkas sumber, tetapi tidak perlu mengkhawatirkannya — semoga semua yang lainnya berjalan dengan baik! Jika tidak, Anda selalu dapat mengirim pesan di [discord Alchemy](https://discord.gg/u72VCg3). + +## Langkah 15: Tulis skrip penyebaran kita {#write-deploy} + +Kini setelah kontrak kita ditulis dan berkas konfigurasi kita siap, inilah waktunya menulis skrip penyebaran kontrak kita. + +Arahkan ke folder `skrip/` dan buat berkas baru yang disebut `deploy.js`, tambahkan konten berikut ke dalamnya: + +```js +async function main() { + const MyNFT = await ethers.getContractFactory("MyNFT") + + // Start deployment, returning a promise that resolves to a contract object + const myNFT = await MyNFT.deploy() + await myNFT.deployed() + console.log("Contract deployed to address:", myNFT.address) +} + +main() + .then(() => process.exit(0)) + .catch((error) => { + console.error(error) + process.exit(1) + }) +``` + +Hardhat melakukan pekerjaan luar biasa dalam menjelaskan apa yang dilakukan masing-masing baris kode ini dalam [Tutorial kontrak](https://hardhat.org/tutorial/testing-contracts.html#writing-tests) mereka, kami telah mengadopsi penjelasan mereka di sini. + + const MyNFT = await ethers.getContractFactory("MyNFT"); + +ContractFactory di ethers.js adalah abstraksi yang digunakan untuk menyebarkan kontrak pintar baru, jadi MyNFT di sini adalah pabrik untuk instance kontrak NFT kita. Saat menggunakan plugin hardhat-ethers, instance ContractFactory dan Contract terhubung ke penandatangan pertama secara default. + + const myNFT = await MyNFT.deploy(); + +Memanggil deploy() pada ContractFactory akan memulai penyebaran, dan mengembalikan Promise yang menyelesaikan ke Contract. Ini adalah objek yang memiliki metode untuk setiap fungsi kontrak pintar kita. + +## Langkah 16: Menyebarkan kontrak kita {#deploy-contract} + +Akhirnya kita siap untuk menyebarkan kontrak pintar kita! Navigasikan kembali ke akar direktori proyek Anda, dan dalam barisan perintah jalankan: + + npx hardhat --network ropsten run scripts/deploy.js + +Lalu, Anda seharusnya melihat sesuatu seperti ini: + + Contract deployed to address: 0x81c587EB0fE773404c42c1d2666b5f557C470eED + +If we go to the [Ropsten etherscan](https://ropsten.etherscan.io/) and search for our contract address we should be able to see that it has been deployed successfully. If you can't see it immediately, please wait a while as it can take some time. Transaksi akan terlihat seperti ini: + +![Lihat alamat transaksi Anda di Etherscan](./etherscan-sepolia-tx-details.png) + +Alamat From seharusnya sesuai dengan alamat akun MetaMask Anda dan alamat To akan berkata "Pembuatan Kontrak." Jika kita mengklik transaksi, kita akan melihat akun kontrak kita dalam field To: + +![Lihat akun kontrak Anda di Etherscan](./etherscan-sepoila-contract-creation.png) + +Yesssss! Anda baru saja menyebarkan kontrak pintar NFT Anda ke rantai Ethereum! + +Untuk memahami apa yang terjadi di bawah hood, mari navigasikan ke tab Penjelajah dalam [dasbor Alchemy](https://dashboard.alchemyapi.io/explorer) kita. Jika Anda memiliki beberapa aplikasi Alchemy, pastikan memilah berdasarkan aplikasi dan pilih "MyNFT". + +![Lihat pemanggilan yang dibuat "dibawah hood" dengan Dasbor Penjelajah Alchemy](./alchemy-explorer-goerli.png) + +Di sini Anda akan melihat beberapa panggilan JSON-RPC yang dibuat Hardhat/Ethers untuk kita saat kita memanggil fungsi .deploy(). Dua fungsi penting untuk dipanggil keluar di sini adalah [eth_sendRawTransaction](/developers/docs/apis/json-rpc/#eth_sendrawtransaction), yang merupakan permintaan untuk benar-benar menulis kontrak pintar kita pada rantai Ropsten, dan [eth_getTransactionByHash](/developers/docs/apis/json-rpc/#eth_gettransactionbyhash) yang merupakan permintaan untuk membaca informasi tentang transaksi kita berdasarkan hash (pola umum ketika mengirim transaksi). Untuk mempelajari lebih lanjut tentang mengirim transaksi, lihat tutorial ini [tentang mengirim transaksi dengan menggunakan Web3](/developers/tutorials/sending-transactions-using-web3-and-alchemy/). + +Itulah Bagian 1 untuk tutorial ini. Dalam [Bagian 2, kita akan berinteraksi dengan kontrak pintar kita dengan mencetak NFT](/developers/tutorials/how-to-mint-an-nft/), dan dalam [Bagian 3 kami akan menunjukkan kepada Anda cara melihat NFT Anda dalam dompet Ethereum Anda](/developers/tutorials/how-to-view-nft-in-metamask/)! diff --git a/src/content/translations/id/developers/tutorials/interact-with-other-contracts-from-solidity/index.md b/public/content/translations/id/developers/tutorials/interact-with-other-contracts-from-solidity/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/interact-with-other-contracts-from-solidity/index.md rename to public/content/translations/id/developers/tutorials/interact-with-other-contracts-from-solidity/index.md diff --git a/src/content/translations/id/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md b/public/content/translations/id/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md rename to public/content/translations/id/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md diff --git a/src/content/translations/id/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md b/public/content/translations/id/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md rename to public/content/translations/id/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md diff --git a/src/content/translations/id/developers/tutorials/logging-events-smart-contracts/index.md b/public/content/translations/id/developers/tutorials/logging-events-smart-contracts/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/logging-events-smart-contracts/index.md rename to public/content/translations/id/developers/tutorials/logging-events-smart-contracts/index.md diff --git a/src/content/translations/id/developers/tutorials/merkle-proofs-for-offline-data-integrity/index.md b/public/content/translations/id/developers/tutorials/merkle-proofs-for-offline-data-integrity/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/merkle-proofs-for-offline-data-integrity/index.md rename to public/content/translations/id/developers/tutorials/merkle-proofs-for-offline-data-integrity/index.md diff --git a/src/content/translations/id/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md b/public/content/translations/id/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md rename to public/content/translations/id/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md diff --git a/src/content/translations/id/developers/tutorials/nft-minter/index.md b/public/content/translations/id/developers/tutorials/nft-minter/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/nft-minter/index.md rename to public/content/translations/id/developers/tutorials/nft-minter/index.md diff --git a/src/content/translations/id/developers/tutorials/optimism-std-bridge-annotated-code/index.md b/public/content/translations/id/developers/tutorials/optimism-std-bridge-annotated-code/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/optimism-std-bridge-annotated-code/index.md rename to public/content/translations/id/developers/tutorials/optimism-std-bridge-annotated-code/index.md diff --git a/src/content/translations/id/developers/tutorials/run-light-node-geth/index.md b/public/content/translations/id/developers/tutorials/run-light-node-geth/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/run-light-node-geth/index.md rename to public/content/translations/id/developers/tutorials/run-light-node-geth/index.md diff --git a/src/content/translations/id/developers/tutorials/run-node-raspberry-pi/index.md b/public/content/translations/id/developers/tutorials/run-node-raspberry-pi/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/run-node-raspberry-pi/index.md rename to public/content/translations/id/developers/tutorials/run-node-raspberry-pi/index.md diff --git a/src/content/translations/id/developers/tutorials/secure-development-workflow/index.md b/public/content/translations/id/developers/tutorials/secure-development-workflow/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/secure-development-workflow/index.md rename to public/content/translations/id/developers/tutorials/secure-development-workflow/index.md diff --git a/src/content/translations/id/developers/tutorials/send-token-ethersjs/index.md b/public/content/translations/id/developers/tutorials/send-token-ethersjs/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/send-token-ethersjs/index.md rename to public/content/translations/id/developers/tutorials/send-token-ethersjs/index.md diff --git a/src/content/translations/id/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md b/public/content/translations/id/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md rename to public/content/translations/id/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md diff --git a/src/content/translations/id/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md b/public/content/translations/id/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md rename to public/content/translations/id/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md diff --git a/src/content/translations/id/developers/tutorials/smart-contract-security-guidelines/index.md b/public/content/translations/id/developers/tutorials/smart-contract-security-guidelines/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/smart-contract-security-guidelines/index.md rename to public/content/translations/id/developers/tutorials/smart-contract-security-guidelines/index.md diff --git a/src/content/translations/id/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md b/public/content/translations/id/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md rename to public/content/translations/id/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md diff --git a/src/content/translations/id/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md b/public/content/translations/id/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md rename to public/content/translations/id/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md diff --git a/src/content/translations/id/developers/tutorials/testing-smart-contract-with-waffle/index.md b/public/content/translations/id/developers/tutorials/testing-smart-contract-with-waffle/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/testing-smart-contract-with-waffle/index.md rename to public/content/translations/id/developers/tutorials/testing-smart-contract-with-waffle/index.md diff --git a/src/content/translations/id/developers/tutorials/the-graph-fixing-web3-data-querying/index.md b/public/content/translations/id/developers/tutorials/the-graph-fixing-web3-data-querying/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/the-graph-fixing-web3-data-querying/index.md rename to public/content/translations/id/developers/tutorials/the-graph-fixing-web3-data-querying/index.md diff --git a/src/content/translations/id/developers/tutorials/token-integration-checklist/index.md b/public/content/translations/id/developers/tutorials/token-integration-checklist/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/token-integration-checklist/index.md rename to public/content/translations/id/developers/tutorials/token-integration-checklist/index.md diff --git a/src/content/translations/id/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md b/public/content/translations/id/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md rename to public/content/translations/id/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md diff --git a/src/content/translations/id/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md b/public/content/translations/id/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md rename to public/content/translations/id/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md diff --git a/src/content/translations/id/developers/tutorials/uniswap-v2-annotated-code/index.md b/public/content/translations/id/developers/tutorials/uniswap-v2-annotated-code/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/uniswap-v2-annotated-code/index.md rename to public/content/translations/id/developers/tutorials/uniswap-v2-annotated-code/index.md diff --git a/src/content/translations/id/developers/tutorials/using-websockets/index.md b/public/content/translations/id/developers/tutorials/using-websockets/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/using-websockets/index.md rename to public/content/translations/id/developers/tutorials/using-websockets/index.md diff --git a/public/content/translations/id/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md b/public/content/translations/id/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md new file mode 100644 index 00000000000..d519a35b046 --- /dev/null +++ b/public/content/translations/id/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md @@ -0,0 +1,298 @@ +--- +title: "Waffle: Mocking dinamis dan percobaan memanggil kontrak pintar" +description: Tutorial tingkat lanjut Waffle untuk menggunakan mocking dinamis dan percobaan memanggil kontrak +author: "Daniel Izdebski" +tags: + - "waffle" + - "kontrak pintar" + - "solidity" + - "pengujian" + - "mocking" +skill: intermediate +lang: id +published: 2020-11-14 +--- + +## Apa yang akan di pelajari pada tutorial ini? {#what-is-this-tutorial-about} + +Pada tutorial ini, Anda akan belajar cara: + +- menggunakan mocking dinamis +- menguji interaksi antara kontrak pintar + +Asumsi: + +- Anda telah mengetahui bagaimana cara menulis kontrak pintar sederhana dalam `Solidity` +- Anda terbiasa dengan `JavaScript` dan `TypeScript` +- Anda telah menyelesaikan tutorial `Waffle` lainnya atau mengetahui beberapa hal tentangnya + +## Mocking dinamis {#dynamic-mocking} + +Mengapa mocking dinamis sangat berguna? Baiklah, hal ini mengizinkan kita menulis tes unit ketimbang tes yang terintegrasi. Apa maksudnya? Hal ini berarti bahwa kita tidak perlu khawatir tentang dependensi kontrak pintar, sehingga kita bisa menguji semuanya secara terisolasi. Saya akan menunjukan bagaimana cara Anda melakukannya. + +### **1. Proyek** {#1-project} + +Sebelum memulai, kita perlu menyiapkan proyek node.js sederhana: + +```bash +$ mkdir dynamic-mocking +$ cd dynamic-mocking +$ mkdir contracts src + +$ yarn init +# or if you're using npm +$ npm init +``` + +Mari kita mulai dengan menambah typescript dan menguji dependensi - mocha dan chai: + +```bash +$ yarn add --dev @types/chai @types/mocha chai mocha ts-node typescript +# atau jika anda menggunakan npm +$ npm install @types/chai @types/mocha chai mocha ts-node typescript --save-dev +``` + +Sekarang mari tambahkan `Waffle` dan `ether`: + +```bash +$ yarn add --dev ethereum-waffle ethers +# atau jika anda menggunakan npm +$ npm install ethereum-waffle ethers --save-dev +``` + +Struktur proyek Anda seharusnya terlihat seperti ini: + +``` +. +├── contracts +├── package.json +└── test +``` + +### **2. Kontrak pintar** {#2-smart-contract} + +Untuk memulai mocking dinamis, kita membutuhkan kontrak pintar dengan dependensi. Tenang, saya akan membantu! + +Berikut adalah kontrak pintar sederhana yang ditulis dalam `Solidity` yang tujuannya hanya memeriksa apakah kita kaya. Kontrak pintar ini menggunakan token ERC20 untuk memeriksa apakah kita memiliki token yang cukup. Letakan pada `./contracts/AmIRichAlready.sol`. + +```solidity +pragma solidity ^0.6.2; + +interface IERC20 { + function balanceOf(address account) external view returns (uint256); +} + +contract AmIRichAlready { + IERC20 private tokenContract; + uint public richness = 1000000 * 10 ** 18; + + constructor (IERC20 _tokenContract) public { + tokenContract = _tokenContract; + } + + function check() public view returns (bool) { + uint balance = tokenContract.balanceOf(msg.sender); + return balance > richness; + } +} +``` + +Karena kita mau menggunakan mocking dinamis, kita tidak memerlukan seluruh ERC20, itulah mengapa kita menggunakan antarmuka IERC20 dengan hanya satu fungsi. + +Saatnya membuat kontrak ini! Untuk itu, kita akan menggunakan `Waffle`. Pertama, kita akan membuat file konfigurasi `waffle.json` sederhana yang menentukan pilihan kompilasi. + +```json +{ + "compilerType": "solcjs", + "compilerVersion": "0.6.2", + "sourceDirectory": "./contracts", + "outputDirectory": "./build" +} +``` + +Sekarang, kita sudah siap untuk membuat kontrak menggunakan Waffle: + +```bash +$ npx waffle +``` + +Mudah, bukan? Dalam folder `build/`, dua file sesuai dengan kontrak dan antar mukanya muncul. Kita akan menggunakannya nanti untuk percobaan. + +### **3. Pengujian** {#3-testing} + +Mari kita buat file bernama `AmIRichAlready.test.ts` untuk tes yang sebenarnya. Pertama, kita harus menangani hasil impor. Kita akan membutuhkannya nanti: + +```typescript +import { expect, use } from "chai" +import { Contract, utils, Wallet } from "ethers" +import { + deployContract, + deployMockContract, + MockProvider, + solidity, +} from "ethereum-waffle" +``` + +Kecuali untuk dependensi JS, kita harus mengimpor kontrak dan antar muka yang kita bangun: + +```typescript +import IERC20 from "../build/IERC20.json" +import AmIRichAlready from "../build/AmIRichAlready.json" +``` + +Waffle menggunakan `chai` untuk pengujian. Namun, sebelum kita menggunakannya, kita harus menginjeksi matcher Waffle kedalam chai: + +```typescript +use(solidity) +``` + +Kita harus mengimplementasikan fungsi `beforeEach()` yang akan mengatur ulang state kontrak sebelum setiap tes dimulai. Pertama-tama mari kita pikirkan apa yang kita butuhkan untuk itu. Untuk menggunakan kontrak, kita membutuhkan dua hal: dompet dan kontrak ERC20 yang digunakan untuk meneruskannya sebagai argumen kontrak `AmIRichAlready`. + +Pertama, kita buat dompetnya: + +```typescript +const [wallet] = new MockProvider().getWallets() +``` + +Selanjutnya, kita harus menggunakan kontrak ERC20. Ini bagian sulitnya - kita hanya memiliki satu antarmuka. Di sinilah peran di mana Waffle datang menyelamatkan kita. Waffle memiliki fungsi `deployMockContract()` ajaib yang membuat kontrak dengan hanya menggunakan _abi_ dari antarmuka: + +```typescript +const mockERC20 = await deployMockContract(wallet, IERC20.abi) +``` + +Sekarang dengan dompet maupun ERC20 yang digunakan, kita akan lanjutkan dan menggunakan kontrak `AmIRichAlready`: + +```typescript +const contract = await deployContract(wallet, AmIRichAlready, [ + mockERC20.address, +]) +``` + +Secara keseluruhan, fungsi `beforeEach()` kita telah selesai. Sejauh ini file `AmIRichAlready.test.ts` Anda seharusnya telihat seperti ini: + +```typescript +import { expect, use } from "chai" +import { Contract, utils, Wallet } from "ethers" +import { + deployContract, + deployMockContract, + MockProvider, + solidity, +} from "ethereum-waffle" + +import IERC20 from "../build/IERC20.json" +import AmIRichAlready from "../build/AmIRichAlready.json" + +use(solidity) + +describe("Am I Rich Already", () => { + let mockERC20: Contract + let contract: Contract + let wallet: Wallet + + beforeEach(async () => { + ;[wallet] = new MockProvider().getWallets() + mockERC20 = await deployMockContract(wallet, IERC20.abi) + contract = await deployContract(wallet, AmIRichAlready, [mockERC20.address]) + }) +}) +``` + +Mari kita tulis tes pertama ke kontrak `AmIRichAlready`. Menurut Anda, tentang apa seharusnya tes kita? Ya, Anda benar! Kita harus memeriksa apakah kita sudah kaya :) + +Tapi tunggu dulu. Bagaimana kontrak mocked kita tahu nilai apa yang dikembalikan? Kita belum mengimplementasikan logika apa pun untuk fungsi `balanceOf()`. Sekali lagi, Waffle bisa membantu kita di sini. Kontrak mocked kita memiliki hal baru yang menarik sekarang: + +```typescript +await mockERC20.mock..returns() +await mockERC20.mock..withArgs().returns() +``` + +Dengan pengetahuan ini, akhirnya kita bisa menulis tes pertama kita: + +```typescript +it("returns false if the wallet has less than 1000000 tokens", async () => { + await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) + expect(await contract.check()).to.be.equal(false) +}) +``` + +Mari kita pecahkan tes ini ke dalam bagian-bagian: + +1. Kita atur kontrak mock ERC20 kita untuk selalu mengembalikan saldo 999999 token. +2. Periksa apakah metode `contract.check()` mengembalikan nilai `false`. + +Kita siap untuk menyalakannya: + +![Satu ujian lulus](./test-one.png) + +Jadi testnya bekerja, namun... masih ada sedikit ruang untuk peningkatan. Fungsi `balanceOf()` akan selalu mengembalikan 99999. Kita bisa meningkatkannya dengan menentukan dompet yang ke mana fungsinya harus mengembalikan sesuatu - sama seperti kontrak sungguhan: + +```typescript +it("returns false if the wallet has less than 1000001 tokens", async () => { + await mockERC20.mock.balanceOf + .withArgs(wallet.address) + .returns(utils.parseEther("999999")) + expect(await contract.check()).to.be.equal(false) +}) +``` + +Sejauh ini, kita hanya mencoba kasus di mana kita tidak cukup kaya. Mari kita coba kebalikannya: + +```typescript +it("returns true if the wallet has at least 1000001 tokens", async () => { + await mockERC20.mock.balanceOf + .withArgs(wallet.address) + .returns(utils.parseEther("1000001")) + expect(await contract.check()).to.be.equal(true) +}) +``` + +Anda jalankan tesnya... + +![Dua ujian lulus](test-two.png) + +....dan ini dia! Kontrak kita tampak berjalan sebagaimana mestinya :) + +## Menguji pemanggilan kontrak {#testing-contract-calls} + +Mari kita ringkas apa yang telah kita lakukan sejauh ini. Kita telah menguji fungsionalitas kontrak `AmIRichAlready` kita dan tampaknya bekerja dengan benar. Artinya, kita telah selesai, bukan? Belum selesai! Waffle memungkinkan kita menguji kontrak bahkan lebih jauh lagi. Tapi, bagaimana persisnya? Dalam gudang senjata Waffle, ada matcher `calledOnContract()` dan `calledOnContractWith()`. Mereka akan memungkinkan kita memeriksa apakah kontrak kita memanggil kontrak mock ERC20. Berikut adalah tes dasarnya dengan salah satu matcher ini: + +```typescript +it("checks if contract called balanceOf on the ERC20 token", async () => { + await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) + await contract.check() + expect("balanceOf").to.be.calledOnContract(mockERC20) +}) +``` + +Kita bahkan bisa melangkah lebih jauh dan meningkatkan tes ini dengan matcher lain yang saya sebutkan sebelumnya: + +```typescript +it("checks if contract called balanceOf with certain wallet on the ERC20 token", async () => { + await mockERC20.mock.balanceOf + .withArgs(wallet.address) + .returns(utils.parseEther("999999")) + await contract.check() + expect("balanceOf").to.be.calledOnContractWith(mockERC20, [wallet.address]) +}) +``` + +Mari kita periksa apakah tesnya benar: + +![Tiga ujian lulus](test-three.png) + +Hebat, semua test berwarna hijau. + +Menguji pemanggilan kontrak dengan Waffle sangatlah mudah. Dan inilah bagian terbaiknya. Matcher ini bekerja baik dalam kontrak normal dan mocked! Itu karena Waffle mencatat dan menyaring pemanggilan EVM ketimbang menginjeksi kode, seperti dalam kasus pustaka pengujian populer untuk teknologi lainnya. + +## Garis Akhir {#the-finish-line} + +Selamat! Sekarang Anda tahu cara menggunakan Waffle untuk menguji pemanggilan kontrak dan kontrak mock secara dinamis. Ada fitur yang jauh lebih menarik untuk ditemukan. Saya menyarankan menyelam ke dalam dokumentasi Waffle. + +Dokumentasi Waffle tersedia [di sini](https://ethereum-waffle.readthedocs.io/). + +Sumber kode untuk tutorial ini bisa ditemukan [di sini](https://github.com/EthWorks/Waffle/tree/master/examples/dynamic-mocking-and-testing-calls). + +Tutorial yang mungkin juga Anda minati: + +- [Menguji kontrak pintar dengan Waffle](/developers/tutorials/testing-smart-contract-with-waffle/) diff --git a/src/content/translations/id/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md b/public/content/translations/id/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md similarity index 100% rename from src/content/translations/id/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md rename to public/content/translations/id/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md diff --git a/src/content/translations/id/eips/index.md b/public/content/translations/id/eips/index.md similarity index 100% rename from src/content/translations/id/eips/index.md rename to public/content/translations/id/eips/index.md diff --git a/src/content/translations/id/energy-consumption/index.md b/public/content/translations/id/energy-consumption/index.md similarity index 100% rename from src/content/translations/id/energy-consumption/index.md rename to public/content/translations/id/energy-consumption/index.md diff --git a/src/content/translations/id/enterprise/index.md b/public/content/translations/id/enterprise/index.md similarity index 100% rename from src/content/translations/id/enterprise/index.md rename to public/content/translations/id/enterprise/index.md diff --git a/src/content/translations/id/enterprise/private-ethereum/index.md b/public/content/translations/id/enterprise/private-ethereum/index.md similarity index 100% rename from src/content/translations/id/enterprise/private-ethereum/index.md rename to public/content/translations/id/enterprise/private-ethereum/index.md diff --git a/src/content/translations/id/foundation/index.md b/public/content/translations/id/foundation/index.md similarity index 100% rename from src/content/translations/id/foundation/index.md rename to public/content/translations/id/foundation/index.md diff --git a/src/content/translations/id/glossary/index.md b/public/content/translations/id/glossary/index.md similarity index 100% rename from src/content/translations/id/glossary/index.md rename to public/content/translations/id/glossary/index.md diff --git a/src/content/translations/id/governance/index.md b/public/content/translations/id/governance/index.md similarity index 100% rename from src/content/translations/id/governance/index.md rename to public/content/translations/id/governance/index.md diff --git a/src/content/translations/id/guides/how-to-create-an-ethereum-account/index.md b/public/content/translations/id/guides/how-to-create-an-ethereum-account/index.md similarity index 100% rename from src/content/translations/id/guides/how-to-create-an-ethereum-account/index.md rename to public/content/translations/id/guides/how-to-create-an-ethereum-account/index.md diff --git a/src/content/translations/id/guides/how-to-id-scam-tokens/index.md b/public/content/translations/id/guides/how-to-id-scam-tokens/index.md similarity index 100% rename from src/content/translations/id/guides/how-to-id-scam-tokens/index.md rename to public/content/translations/id/guides/how-to-id-scam-tokens/index.md diff --git a/src/content/translations/id/guides/how-to-revoke-token-access/index.md b/public/content/translations/id/guides/how-to-revoke-token-access/index.md similarity index 100% rename from src/content/translations/id/guides/how-to-revoke-token-access/index.md rename to public/content/translations/id/guides/how-to-revoke-token-access/index.md diff --git a/src/content/translations/id/guides/how-to-swap-tokens/index.md b/public/content/translations/id/guides/how-to-swap-tokens/index.md similarity index 100% rename from src/content/translations/id/guides/how-to-swap-tokens/index.md rename to public/content/translations/id/guides/how-to-swap-tokens/index.md diff --git a/src/content/translations/id/guides/how-to-use-a-bridge/index.md b/public/content/translations/id/guides/how-to-use-a-bridge/index.md similarity index 100% rename from src/content/translations/id/guides/how-to-use-a-bridge/index.md rename to public/content/translations/id/guides/how-to-use-a-bridge/index.md diff --git a/src/content/translations/id/guides/how-to-use-a-wallet/index.md b/public/content/translations/id/guides/how-to-use-a-wallet/index.md similarity index 100% rename from src/content/translations/id/guides/how-to-use-a-wallet/index.md rename to public/content/translations/id/guides/how-to-use-a-wallet/index.md diff --git a/src/content/translations/id/guides/index.md b/public/content/translations/id/guides/index.md similarity index 100% rename from src/content/translations/id/guides/index.md rename to public/content/translations/id/guides/index.md diff --git a/public/content/translations/id/history/index.md b/public/content/translations/id/history/index.md new file mode 100644 index 00000000000..43d3369792a --- /dev/null +++ b/public/content/translations/id/history/index.md @@ -0,0 +1,516 @@ +--- +title: Riwayat dan Fork Ethereum +description: Riwayat blockchain Ethereum termasuk tonggak sejarah, rilis, dan fork utama. +lang: id +sidebarDepth: 1 +--- + +# Riwayat Ethereum {#the-history-of-ethereum} + +Linimasa semua tonggak sejarah, fork, dan pembaruan utama dalam blockchain Ethereum. + + + +Garpu terjadi ketika ada perubahan atau peningkatan teknis yang signifikan yang perlu dilakukan pada jaringan - biasanya berasal dari Proposal Peningkatan Ethereum (EIP) dan mengubah "aturan" protokol. + +Ketika peningkatan diperlukan dalam perangkat lunak tradisonal yang dikontrol secara terpusat, perusahaan hanya akan menerbitkan versi terbarunya bagi pengguna akhir. Blockchain bekerja dengan cara yang berbeda karena tidak ada kepemilikan terpusat. Klien Ethereum harus memperbarui perangkat lunak mereka untuk mengimplementasikan aturan fork yang baru. Pembuat blok plus (penambang di dunia bukti kerja, validator di dunia bukti taruhan) dan node harus membuat blok dan memvalidasi aturan baru. Lebih lanjut tentang mekanisme konsensus + +Aturan-aturan ini dapat mengubah pemisahan sementara di jarinagn ini. Blok baru dapat dibuat berdasarkan peraturan baru atau lama. Fork biasanya disepakati sebelumnya sehingga klien mengadopsi perubahan secara bersamaan dan fork dengan peningkatan menjadi rantai utama. Namun, dalam kasus yang jarang terjadi, perselisihan mengenai garpu dapat menyebabkan jaringan terbagi secara permanen - yang paling terkenal adalah terciptanya Ethereum Classic dengan fork DAO. + + + +Langsung menuju informasi tentang beberapa peningkatan penting di masa lalu: [Rantai Suar](/roadmap/beacon-chain/); [Penggabungan](/roadmap/merge/); dan [EIP-1559](#london) + +Sedang mencari peningkatan protokol di masa mendatang? [Pelajari tentang upgrade mendatang pada peta perjalanan Ethereum](/roadmap/). + + + +## 2023 {#2023} + +### Shanghai {#shanghai} + + + +#### Ringkasan {#shanghai-summary} + +Peningkatan Shanghai membawa penarikan penaruhan ke Lapisan Eksekusi. Bersamaan dengan peningkatan Capella, ini memungkinkan blok menerima operasi penarikan, yang memungkinkan para staker menarik ETH mereka dari Rantai Suar ke lapisan eksekusi. + + + +
    +
  • EIP-3651Memulai alamat COINBASE menjadi hangat
  • +
  • EIP-3855Instruksi PUSH0 baru
  • +
  • EIP-3860Batasi dan ukur kode awal
  • +
  • EIP-4895Penarikan dorong rantai suar sebagai operasi
  • +
  • EIP-6049 - Hentikan SELFDESTRUCT
  • +
+ +
+ +- [Baca spesifikasi meningkatkan Shanghai](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/shanghai.md) + +--- + +### Capella {#capella} + + + +#### Ringkasan {#capella-summary} + +Peningkatan Capella adalah peningkatan utama ketiga pada lapisan konsensus (Rantai Suar) dan memungkinkan penarikan penaruhan. Capella terjadi secara bersamaan dengan upgrade lapisan eksekusi, Shanghai, dan mengaktifkan fungsionalitas penarikan penaruhan. + +Peningkatan lapisan konsensus ini membawa kemampuan bagi staker yang tidak menyediakan kredensial penarikan bersama setoran awal mereka untuk melakukannya, dengan demikian memungkinkan penarikan. + +Peningkatan ini juga menyediakan fungsionalitas pemindaian akun otomatis, yang terus-menerus memproses akun validator untuk pembayaran imbalan yang tersedia atau penarikan penuh. + +- [Lebih lanjut tentang penarikan penaruhan](/staking/withdrawals/). +- [Baca spesifikasi peningkatan Capella](https://github.com/ethereum/consensus-specs/blob/dev/specs/capella/) + + + +## 2022 {#2022} + +### Paris (Penggabungan) {#paris} + + + +#### Ringkasan {#paris-summary} + +Peningkatan Paris dipicu oleh rantai blok bukti kerja mencapai [total tingkat kesulitan terminal](/glossary/#terminal-total-difficulty) sebesar 58750000000000000000000. Hal ini terjadi pada blok 15537393 pada tanggal 15 September 2022, memicu peningkatan Paris pada blok berikutnya. Paris merupakan transisi [Penggabungan](/roadmap/merge/) fitur utamanya adalah mematikan algoritma penambangan [bukti kerja](/developers/docs/consensus-mechanisms/pow) dan logika konsensus terkait, serta sebagai gantinya mengaktifkan [bukti taruhan](/developers/docs/consensus-mechanisms/pos). Paris sendiri merupakan peningkatan untuk [klien eksekusi](/developers/docs/nodes-and-clients/#execution-clients) (setara dengan Bellatrix pada lapisan konsensus) yang memungkinkan mereka menerima instruksi dari [klien konsensus](/developers/docs/nodes-and-clients/#consensus-clients) yang terhubung. Untuk ini, diperlukan seperangkat metode API internal baru, yang secara kolektif dikenal sebagai [API Mesin](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md), untuk diaktifkan. Ini dapat dikatakan sebagai peningkatan paling signifikan dalam sejarah Ethereum sejak [Homestead](#homestead)! + +- [Baca spesifikasi peningkatan Paris](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/paris.md) + + + +
    +
  • EIP-3675Meningkatkan konsensus ke Bukti Taruhan
  • +
  • EIP-4399Ganti opcode KESULITAN dengan PREVRANDAO
  • +
+ +
+ +--- + +### Bellatrix {#bellatrix} + + + +#### Ringkasan {#bellatrix-summary} + +Peningkatan Bellatrix adalah peningkatan terjadwal kedua untuk [Rantai Suar](/roadmap/beacon-chain), mempersiapkan jaringan untuk [Penggabungan](/roadmap/merge/). Peningkatan ini membawa denda validator ke nilai penuh untuk ketidakaktifan dan pelanggaran yang dapat dipotong. Bellatrix juga mencakup pembaruan pada aturan pemilihan garpu untuk mempersiapkan jaringan untuk Penggabungan dan transisi dari blok bukti kerja terakhir ke blok bukti taruhan pertama. Hal ini mencakup membuat klien konsensus menyadari [total kesulitan terminal](/glossary/#terminal-total-difficulty) sebesar 58750000000000000000000. + +- [Baca spesifikasi peningkatan Bellatrix](https://github.com/ethereum/consensus-specs/tree/dev/specs/bellatrix) + +--- + +### Gray Glacier {#gray-glacier} + + + +#### Ringkasan {#gray-glacier-summary} + +Peningkatan jaringan Gray Glacier menunda [bomb kesulitan](/glossary/#difficulty-bomb) selama tiga bulan. Ini adalah satu-satunya perubahan yang dibolehkan dalam pembaruan ini, dan sifatnya serupa dengan pembaruan [Arrow Glacier](#arrow-glacier) dan [Muir Glacier](#muir-glacier). Perubahan serupa telah diterapkan pada peningkatan jaringan [Byzantium](#byzantium), [Konstatinopel](#constantinople) dan [London](#london). + +- [EF Blog - Pengumuman Pembaruan Gray Glacier](https://blog.ethereum.org/2022/06/16/gray-glacier-announcement/) + + + +
    +
  • EIP-5133menunda bom kesulitan hingga September 2022
  • +
+ +
+ + + +## 2021 {#2021} + +### Arrow Glacier {#arrow-glacier} + + + +#### Ringkasan {#arrow-glacier-summary} + +Peningkatan jaringan Arrow Glacier menjeda [bom kesulitan](/glossary/#difficulty-bomb) sebanyak beberapa bulan. Ini adalah satu-satunya perubahan yang diperkenalkan dalam peningkatan ini, dan sifatnya sama dengan peningkatan [Muir Glacier](#muir-glacier). Perubahan serupa telah diterapkan pada peningkatan jaringan [Byzantium](#byzantium), [Konstatinopel](#constantinople) dan [London](#london). + +- [Blog EF - Pengumuman Peningkatan Arrow Glacier](https://blog.ethereum.org/2021/11/10/arrow-glacier-announcement/) +- [Ethereum Cat Herders - Peningkatan Arrow Glacier Ethereum](https://medium.com/ethereum-cat-herders/ethereum-arrow-glacier-upgrade-e8d20fa4c002) + + + +
    +
  • EIP-4345menunda bom kesulitan hingga Juni 2022
  • +
+ +
+ +--- + +### Altair {#altair} + + + +#### Ringkasan {#altair-summary} + +Peningkatan Altair adalah peningkatan pertama yang terjadwal untuk [Rantai Suar](/roadmap/beacon-chain). Ini memberi tambahan dukungan untuk "komite sinkronisasi" — memungkinkan klien ringan, dan meningkatkan ketidakaktifan validator dan memotong hukuman saat pengembangan berkembang menuju Penggabungan. + +- [Baca spesifikasi peningkatan Altair](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) + +#### Fakta menyenangkan! {#altair-fun-fact} + +Altair adalah peningkatan besar dan pertama untuk jaringan yang memiliki waktu rollout yang pasti. Setiap peningkatan sebelumnya telah berdasarkan pada suatu nomor blok yang dideklarasikan pada rantai bukti kerja, dengan waktu blok yang bervariasi. Rantai Suar tidak mengharuskan penyelesaian bukti kerja, dan sebagai gantinya berfungsi pada sistem jangka waktu berbasis waktu yang terdiri dari 32 "slot" waktu dua belas detik di mana para validator dapat mengusulkan blok. Inilah alasan kami mengetahui secara pasti kapan kami akan mencapai jangka waktu 74.240 dan Altair mulai beroperasi! + +- [Waktu blok](/developers/docs/blocks/#block-time) + +--- + +### London {#london} + + + +#### Ringkasan {#london-summary} + +Peningkatan London memperkenalkan [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559), yang memperbarui pasar biaya transaksi, bersamaan dengan perubahan bagaimana pembayaran kembali gas ditangani dan jadwal untuk [Zaman Es](/glossary/#ice-age). + +- [Apakah Anda seorang pengembang dapp? Pastikan untuk meningkatkan pustaka dan peralatan Anda.](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/london-ecosystem-readiness.md) +- [Baca pengumuman Ethereum Foundation](https://blog.ethereum.org/2021/07/15/london-mainnet-announcement/) +- [Baca penjelasan Ethereum Cat Herder](https://medium.com/ethereum-cat-herders/london-upgrade-overview-8eccb0041b41) + + + +
    +
  • EIP-1559meningkatkan pasar biaya transaksi
  • +
  • EIP-3198mengembalikan BASEFEE dari blok
  • +
  • EIP-3529 - mengurangi pengembalian dana gas untuk pengoperasian EVM
  • +
  • EIP-3541 - mencegah penggunaan kontrak dengan 0xEF
  • +
  • EIP-3554menunda Zaman Es hingga Desember 2021
  • +
+ +
+ +--- + +### Berlin {#berlin} + + + +#### Ringkasan {#berlin-summary} + +Peningkatan Berlin mengoptimalkan harga gas untuk beberapa aksi EVM, dan meningkatkan dukungan pada beragam jenis transaksi. + +- [Baca pengumuman Yayasan Ethereum](https://blog.ethereum.org/2021/03/08/ethereum-berlin-upgrade-announcement/) +- [Baca penjelasan Ethereum Cat Herder](https://medium.com/ethereum-cat-herders/the-berlin-upgrade-overview-2f7ad710eb80) + + + +
    +
  • EIP-2565mengurangi biaya gas ModExp
  • +
  • EIP-2718memungkinkan dukungan yang lebih mudah untuk berbagai jenis transaksi
  • +
  • EIP-2929kenaikan biaya gas untuk opcode akses negara bagian
  • +
  • EIP-2930menambahkan daftar akses opsional
  • +
+ +
+ + + +## 2020 {#2020} + +### Genesis Rantai Suar {#beacon-chain-genesis} + + + +#### Ringkasan {#beacon-chain-genesis-summary} + +[Rantai Suar](/roadmap/beacon-chain/) memerlukan deposito 16384 dari 32 ETH yang ditaruhkan untuk diluncurkan secara aman. Ini terjadi pada 27 November yang berarti Rantai Suar mulai memproduksi blok pada 1 Desember 2020. Ini adalah langkah pertama yang penting untuk meraih [visi Ethereum](/roadmap/vision/). + +[Baca pengumuman Yayasan Ethereum](https://blog.ethereum.org/2020/11/27/eth2-quick-update-no-21/) + + + Rantai Suar + + +--- + +### Kontrak setoran penaruhan dibuat {#staking-deposit-contract} + + + +#### Ringkasan {#deposit-contract-summary} + +Kontrak setoran penaruhan memperkenalkan [penaruhan](/glossary/#staking) ke ekosistem Ethereum. Bahkan kontrak [Jaringan Utama](/glossary/#mainnet) memiliki dampak langsung pada linimasa peluncuran [Rantai Suar](/roadmap/beacon-chain/), yaitu [peningkatan Ethereum](/roadmap/) yang penting. + +[Baca pengumuman Yayasan Ethereum](https://blog.ethereum.org/2020/11/04/eth2-quick-update-no-19/) + + + Penaruhan + + +--- + +### Muir Glacier {#muir-glacier} + + + +#### Ringkasan {#muir-glacier-summary} + +Fork Gletser Muir memperkenalkan penundaan pada [bom kesulitan](/glossary/#difficulty-bomb). Peningkatan kesulitan blok mekanisme konsensus [bukti kerja](/developers/docs/consensus-mechanisms/pow/) mengancam akan menurunkan kegunaan Ethereum dengan meningkatkan waktu tunggu untuk mengirim transaksi dan menggunakan dapps. + +- [Baca pengumuman Yayasan Ethereum](https://blog.ethereum.org/2019/12/23/ethereum-muir-glacier-upgrade-announcement/) +- [Baca penjelasan Ethereum Cat Herder](https://medium.com/ethereum-cat-herders/ethereum-muir-glacier-upgrade-89b8cea5a210) + + + +
    +
  • EIP-2384menunda bom kesulitan selama 4.000.000 blok lagi, atau sekitar ~611 hari.
  • +
+ +
+ + + +## 2019 {#2019} + +### Istanbul {#istanbul} + + + +#### Ringkasan {#istanbul-summary} + +Garpu Istanbul: + +- Mengoptimalkan biaya [gas](/glossary/#gas) dari aksi tertentu di [EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine). +- Meningkatkan ketahanan terhadap serangan penolakan layanan. +- Membuat solusi [penskalaan Lapisan ke-2](/developers/docs/scaling/#layer-2-scaling) berdasarkan SNARK dan STARK berkinerja lebih baik. +- Memungkinkan Ethereum dan Zcash untuk saling bekerja sama. +- Kontrak yang diizinkan untuk memperkenalkan lebih banyak fungsi kreatif. + +[Baca pengumuman Yayasan Ethereum](https://blog.ethereum.org/2019/11/20/ethereum-istanbul-upgrade-announcement/) + + + +
    +
  • EIP-152memungkinkan Ethereum bekerja dengan mata uang yang menjaga privasi seperti Zcash.
  • +
  • EIP-1108kriptografi yang lebih murah untuk meningkatkan kinerja biaya gas.
  • +
  • EIP-1344melindungi Ethereum dari serangan ulang dengan menambahkan CHAINID opcode.
  • +
  • EIP-1884mengoptimalkan harga gas opcode berdasarkan konsumsi.
  • +
  • EIP-2028mengurangi biaya CallData untuk memungkinkan lebih banyak data dalam blok – baik untuk Penskalaan Lapisan ke-2.
  • +
  • EIP-2200penyesuaian harga gas opcode lainnya.
  • +
+ +
+ +--- + +### Constantinople {#constantinople} + + + +#### Ringkasan {#constantinople-summary} + +Fork Konstantinopel: + +- Memastikan rantai blok tidak membeku sebelum [bukti taruhan diimplementasikan](#beacon-chain-genesis). +- Mengoptimalkan biaya [gas](/glossary/#gas) dari aksi tertentu di [EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine). +- Menambahkan kemampuan untuk berinteraksi dengan alamat yang belum dibuat. + +[Baca pengumuman Yayasan Ethereum](https://blog.ethereum.org/2019/02/22/ethereum-constantinople-st-petersburg-upgrade-announcement/) + + + +
    +
  • EIP-145mengoptimalkan biaya tindakan di dalam rantai tertentu.
  • +
  • EIP-1014memungkinkan Anda berinteraksi dengan alamat yang belum dibuat.
  • +
  • EIP-1052mengoptimalkan biaya tindakan di dalam rantai tertentu.
  • +
  • EIP-1234memastikan rantai blok tidak membeku sebelum bukti taruhan.
  • +
+ +
+ + + +## 2017 {#2017} + +### Byzantium {#byzantium} + + + +#### Ringkasan {#byzantium-summary} + +Fork Byzantium: + +- Pengurangan imbalan [penambangan](/developers/docs/consensus-mechanisms/pow/mining/) blok dari 5 menjadi 3 ETH. +- Menunda [bom tingkat kesulitan](/glossary/#difficulty-bomb) selama satu tahun. +- Menambahkan kemampuan untuk melakukan panggilan yang tidak mengubah state ke kontrak lain. +- Menambahkan metode kriptografi tertentu untuk memungkinkan [penskalaan lapisan ke-2](/developers/docs/scaling/#layer-2-scaling). + +[Baca pengumuman Yayasan Ethereum](https://blog.ethereum.org/2017/10/12/byzantium-hf-announcement/) + + + +
    +
  • EIP-140menambahkan opcode REVERT.
  • +
  • EIP-658Bidang status ditambahkan ke tanda terima transaksi untuk menunjukkan keberhasilan atau kegagalan.
  • +
  • EIP-196menambahkan kurva elips dan perkalian skalar untuk memungkinkan ZK-Snarks.
  • +
  • EIP-197menambahkan kurva elips dan perkalian skalar untuk memungkinkan ZK-Snarks.
  • +
  • EIP-198memungkinkan verifikasi tanda tangan RSA.
  • +
  • EIP-211menambahkan dukungan untuk nilai pengembalian panjang variabel.
  • +
  • EIP-214menambahkan STATICCALL opcode, mengizinkan panggilan yang tidak mengubah status ke kontrak lain.
  • +
  • EIP-100mengubah formula penyesuaian tingkat kesulitan.
  • +
  • EIP-649penundaan bom tingkat kesulitan selama 1 tahun dan mengurangi hadiah blok dari 5 menjadi 3 ETH.
  • +
+ +
+ + + +## 2016 {#2016} + +### Spurious Dragon {#spurious-dragon} + + + +#### Ringkasan {#spurious-dragon-summary} + +Garpu Spurious Dragon adalah respons kedua terhadap serangan penolakan layanan (DoS) di jaringan (September/Oktober 2016) termasuk: + +- menyetel harga opcode untuk mencegah serangan di masa mendatang pada jaringan. +- memungkinkan "debloat" dari status rantai blok. +- menambahkan perlindungan terhadap serangan perulangan. + +[Baca pengumuman Yayasan Ethereum](https://blog.ethereum.org/2016/11/18/hard-fork-no-4-spurious-dragon/) + + + +
    +
  • EIP-155mencegah transaksi dari satu rantai Ethereum disiarkan ulang di rantai alternatif, misalnya transaksi jaringan percobaan yang diputar ulang di rantai Ethereum utama.
  • +
  • EIP-160menyesuaikan harga dari EXP opcode – mempersulit memperlambat jaringan melalui operasi kontrak yang mahal secara komputasi.
  • +
  • EIP-161memungkinkan penghapusan akun kosong yang ditambahkan melalui serangan DOS.
  • +
  • EIP-170mengubah ukuran kode maksimum yang dapat dimiliki oleh sebuah kontrak pada rantai blok – menjadi 24576 bita.
  • +
+ +
+ +--- + +### Tangerine whistle {#tangerine-whistle} + + + +#### Ringkasan {#tangerine-whistle-summary} + +Garpu Tangerine Whistle adalah respons pertama terhadap serangan denial of service (DoS) di jaringan (September/Oktober 2016) yang mencakup: + +- menangani masalah kesehatan jaringan yang mendesak mengenai kode operasi yang terlalu murah. + +[Baca pengumuman Yayasan Ethereum](https://blog.ethereum.org/2016/10/18/faq-upcoming-ethereum-hard-fork/) + + + +
    +
  • EIP-150meningkatkan biaya gas dari opcode yang dapat digunakan dalam serangan spam.
  • +
  • EIP-158mengurangi ukuran status dengan menghapus sejumlah besar akun kosong yang dimasukkan ke dalam status dengan biaya yang sangat rendah karena adanya kekurangan pada versi protokol Ethereum sebelumnya.
  • +
+ +
+ +--- + +### Garpu DAO {#dao-fork} + + + +#### Ringkasan {#dao-fork-summary} + +Garpu DAO merupakan respons terhadap [serangan DAO 2016](https://www.coindesk.com/learn/understanding-the-dao-attack/) di mana kontrak [DAO](/glossary/#dao) yang tidak aman dikuras dananya sebanyak lebih dari 3,6 juta ETH dalam peretasan saat itu. Garpu tersebut memindahkan dana dari kontrak bermasalah ke [kontrak baru](https://etherscan.io/address/0xbf4ed7b27f1d666546e30d74d50d173d20bca754) dengan satu fungsi tunggal: tarik. Siapa pun yang kehilangan dana dapat menarik 1 ETH untuk setiap 100 token DAO di dompet mereka. + +Tindakan ini dipilih oleh komunitas Ethereum. Setiap pemegang ETH dapat memilih melalui transaksi di [platform pemilihan](https://web.archive.org/web/20170620030820/http://v1.carbonvote.com/). Keputusan untuk melakukan fork mencapai lebih dari 85% suara. + +Beberapa penambang menolak melakukan garpu karena insiden DAO bukan merupakan kesalahan dalam protokol. Mereka kemudian membentuk [Ethereum Classic](https://ethereumclassic.org/). + +[Baca pengumuman Yayasan Ethereum](https://blog.ethereum.org/2016/07/20/hard-fork-completed/) + +--- + +### Homestead {#homestead} + + + +#### Ringkasan {#homestead-summary} + +Garpu Homestead yang melihat ke masa depan. Ini termasuk beberapa perubahan protokol dan perubahan jaringan yang memberi Ethereum kemampuan untuk melakukan peningkatan jaringan lebih lanjut. + +[Baca pengumuman Yayasan Ethereum](https://blog.ethereum.org/2016/02/29/homestead-release/) + + + +
    +
  • EIP-2melakukan pengeditan pada proses pembuatan kontrak.
  • +
  • EIP-7menambahkan opcode baru: DELEGATECALL
  • +
  • EIP-8memperkenalkan persyaratan kompatibilitas ke depan devp2p
  • +
+ +
+ + + +## 2015 {#2015} + +### Thawing frontier {#frontier-thawing} + + + +#### Ringkasan {#frontier-thawing-summary} + +Garpu thawing frontier mengangkat batas [gas](/glossary/#gas) 5.000 per [blok](/glossary/#block) blok dan menetapkan harga gas default menjadi 51 [gwei](/glossary/#gwei). Ini memungkinkan transaksi–transaksi membutuhkan 21.000 gas. [bom tingkat kesulitan](/glossary/#difficulty-bomb) diperkenalkan untuk memastikan garpu-tangan di masa depan untuk [bukti taruhan](/glossary/#pos). + +- [Baca pengumuman Yayasan Ethereum](https://blog.ethereum.org/2015/08/04/the-thawing-frontier/) +- [Baca Pembaruan Protokol Ethereum 1](https://blog.ethereum.org/2015/08/04/ethereum-protocol-update-1/) + +--- + +### Garis depan {#frontier} + + + +#### Ringkasan {#frontier-summary} + +Frontier adalah implementasi langsung, tetapi barebone dari proyek Ethereum. Ini mengikuti fase pengujian Olimpiade yang sukses. Ditujukan untuk pengguna teknis, khususnya pengembang. [Blok](/glossary/#block) memiliki batas [gas](/glossary/#gas) sebesar 5.000. Periode 'pencairan' ini memungkinkan penambang untuk memulai operasi mereka dan bagi pengguna awal untuk menginstal klien mereka tanpa harus 'terburu-buru'. + +[Baca pengumuman Yayasan Ethereum](https://blog.ethereum.org/2015/07/22/frontier-is-coming-what-to-expect-and-how-to-prepare/) + + + +## 2014 {#2014} + +### Penjualan Ether {#ether-sale} + + + +Ether secara resmi mulai dijual selama 42 hari. Anda dapat membelinya dengan BTC. + +[Baca pengumuman Yayasan Ethereum](https://blog.ethereum.org/2014/07/22/launching-the-ether-sale/) + +--- + +### Yellowpaper dirilis {#yellowpaper} + + + +Yellow Paper, yang ditulis oleh Dr. Gavin Wood, adalah definisi teknis dari protokol Ethereum. + +[Lihat Yellow Paper](https://github.com/ethereum/yellowpaper) + + + +## 2013 {#2013} + +### Kertas putih dirilis {#whitepaper} + + + +Makalah pengantar, diterbitkan pada tahun 2013 oleh Vitalik Buterin, pendiri Ethereum, sebelum peluncuran proyek pada tahun 2015. + + + Laporan Resmi + diff --git a/public/content/translations/id/nft/index.md b/public/content/translations/id/nft/index.md new file mode 100644 index 00000000000..c52d8c14790 --- /dev/null +++ b/public/content/translations/id/nft/index.md @@ -0,0 +1,94 @@ +--- +title: Token yang tidak dapat dipertukarkan (NFT) +description: Gambaran umum tentang NFT di Ethereum +lang: id +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: Logo Eth yang ditampilkan melalui hologram. +summaryPoint1: Cara untuk mewakili apa pun yang unik sebagai aset berbasis Ethereum. +summaryPoint2: NFT memberi lebih banyak pemberdayaan terhadap para pembuat konten daripada sebelumnya. +summaryPoint3: Digerakkan oleh kontrak pintar di rantai blok Ethereum. +--- + +## Apa itu NFT? {#what-are-nfts} + +NFT adalah token yang unik secara individual. Setiap NFT memiliki properti yang berbeda (tidak dapat dipertukarkan) dan terbukti langka. Ini berbeda dari token seperti ERC-20 di mana setiap token dalam satu set identik dan memiliki properti yang sama ('dapat dipertukarkan'). Anda tidak peduli dengan lembaran dolar kertas tertentu yang ada di dompet Anda, karena semuanya identik dan memiliki nilai yang sama. Namun, Anda _peduli_ dengan NFT tertentu yang Anda miliki, karena semuanya memiliki properti individual yang membedakan satu sama lain. + +Keunikan dari setiap NFT memungkinkan tokenisasi untuk berbagai hal seperti seni, koleksi, atau bahkan properti, yang mana satu NFT unik yang spesifik mewakili suatu item dunia nyata atau digital yang unik. Kepemilikan suatu aset diamankan oleh rantai blok Ethereum – tidak seorang pun dapat merubah catatan kepemilikan atau menyalin/menempel NFT baru untuk mengadakannya. + + + +## Internet aset {#internet-of-assets} + +NFT dan Ethereum memecahkan beberapa masalah yang ada di internet saat ini. Karena semuanya telah menjadi lebih digital, ada kebutuhan untuk meniru properti barang fisik seperti kelangkaan, keunikan, dan bukti kepemilikan. dalam cara yang tidak dikendalikan oleh organisasi pusat. Sebagai contoh, dengan NFT, Anda dapat memiliki file musik mp3 yang tidak terkait dengan aplikasi musik dari satu perusahaan tertentu, atau Anda dapat memiliki akun media sosial yang dapat Anda jual atau tukar, namun tidak dapat sembarangan diambil oleh penyedia platform. + +Inilah bagaimana teknologi yang terdiri dari NFT dibandingkan dengan teknologi yang kebanyakan dari kita gunakan saat ini... + +### Perbandingan {#nft-comparison} + +| Internet NFT | Internet saat ini | +| ----------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Aset Anda milik Anda! Hanya Anda yang dapat menjual atau menukarnya. | Anda menyewa suatu aset dari beberapa organisasi. | +| NFT secara digital unik, tidak ada dua NFT yang sama. | Salinan dari suatu entitas sering kali tidak dapat dibedakan dari aslinya. | +| Kepemilikan NFT disimpan pada rantai blok agar dapat diverifikasi oleh siapa saja. | Catatan kepemilikan barang digital disimpan di server yang dikendalikan oleh institusi – Anda harus mengikuti peraturan mereka untuk itu. | +| NFT adalah kontrak pintar di Ethereum. Ini berarti dapat digunakan dengan mudah dalam kontrak pintar dan aplikasi lain di Ethereum! | Perusahaan dengan barang digital biasanya memerlukan infrastruktur "taman tembok" sendiri. | +| Kreator konten dapat menjual karya mereka di mana saja dan dapat mengakses pasar global. | Kreator bergantung pada infrastruktur dan distribusi platform yang mereka gunakan. Tindakan ini sering kali tunduk pada ketentuan pembatasan penggunaan dan geografis. | +| Kreator NFT dapat mempertahankan hak kepemilikan atas karyanya sendiri, dan mengatur royalti secara langsung ke dalam kontrak NFT. | Platform, seperti layanan tayangan musik, mempertahankan sebagian besar keuntungan dari penjualan. | + +## Bagaimana cara kerja NFT? {#how-nfts-work} + +Seperti halnya token yang diterbitkan di Ethereum, NFT diterbitkan oleh sebuah kontrak pintar. Kontrak pintar sesuai dengan salah satu dari beberapa standar NFT (umumnya ERC-721 atau ERC-1155) yang mendefinisikan fungsi-fungsi yang dimiliki oleh kontrak tersebut. Kontrak dapat menciptakan ('mencetak') NFT dan menetapkannya kepada pemilik tertentu. Kepemilikan didefinisikan dalam kontrak dengan memetakan NFT spesifik ke alamat tertentu. NFT memiliki ID dan umumnya metadata yang terkait dengannya yang membuat token spesifik tersebut unik. + +Ketika seseorang menciptakan atau mencetak NFT, mereka sebenarnya menjalankan fungsi dalam kontrak pintar yang menetapkan NFT spesifik ke alamat mereka. Informasi ini disimpan dalam penyimpanan kontrak, yang merupakan bagian dari rantai blok. Kreator kontrak dapat menulis logika tambahan ke dalam kontrak, misalnya membatasi pasokan total atau menentukan royalti yang harus dibayarkan kepada pembuat setiap kali token ditransfer. + +## NFT digunakan untuk apa? {#nft-use-cases} + +NFT digunakan untuk banyak hal, termasuk: + +- membuktikan bahwa Anda menghadiri sebuah acara +- membuktikan bahwa Anda menyelesaikan sebuah kursus +- item yang dapat dimiliki dalam game +- seni digital +- melakukan tokenisasi aset dunia nyata +- membuktikan identitas daring Anda +- membatasi akses ke konten +- penjualan tiket +- nama domain internet terdesentralisasi +- jaminan dalam DeFi + +Mungkin Anda adalah seorang seniman yang ingin berbagi karya mereka menggunakan NFT, tanpa kehilangan kontrol dan mengorbankan keuntungan Anda kepada perantara. Anda dapat membuat kontrak baru dan menentukan jumlah NFT, propertinyaa, dan tautan ke beberapa karya seni khusus. Sebagai seniman, Anda dapat memprogram royalti yang seharusnya Anda terima ke dalam kontrak pintar (misalnya, mentransfer 5% dari harga penjualan ke pemilik kontrak setiap kali NFT ditransfer). Anda juga selalu dapat membuktikan bahwa Anda menciptakan NFT karena Anda memiliki dompet yang mendeploy kontrak tersebut. Pembeli Anda dengan mudah dapat membuktikan bahwa mereka memiliki NFT asli dari koleksi Anda karena alamat dompet mereka terkait dengan token dalam kontrak pintar Anda. Mereka dapat menggunakannya di seluruh ekosistem Ethereum, dengan keyakinan akan keasliannya. + +Atau pertimbangkan tiket untuk sebuah acara olahraga. Sama seperti penyelenggara sebuah acara dapat memilih berapa banyak tiket yang dapat dijual, pembuat NFT dapat memutuskan berapa banyak tiruan yang ada. Terkadang ini adalah tiruan yang sama persis, seperti 5000 tiket Masuk Umum. Terkadang ada beberapa dicetak sangat serupa, tetapi masing-masing sedikit berbeda, seperti tiket dengan kursi yang ditentukan. Tiket-tiket ini dapat dibeli dan dijual secara peer-to-peer tanpa membayar petugas tiket, dan pembeli selalu memiliki jaminan keaslian tiket dengan memeriksa alamat kontrak. + +Di ethereum.org, NFT digunakan untuk menunjukkan bahwa orang-orang telah berkontribusi pada repositori GitHub kami atau menghadiri panggilan, dan kami bahkan memiliki nama domain NFT kami sendiri. Jika Anda berkontribusi pada ethereum.org, Anda dapat memperoleh NFT POAP. Beberapa pertemuan kripto telah menggunakan POAP sebagai tiket. [Selengkapnya tentang berkontribusi](/contributing/#poap). + +![POAP ethereum.org](./poap.png) + +Situs web ini juga memiliki nama domain alternatif yang didukung oleh NFT, **ethereum.eth**. Alamat `.org` kami dikelola secara terpusat oleh sebuah penyedia sistem nama domain (DNS), sedangkan ethereum`.eth` terdaftar di Ethereum melalui Layanan Nama Ethereum (ENS). Dan ini dimiliki dan dikelola oleh kami. [Lihat catatan ENS kami](https://app.ens.domains/name/ethereum.eth) + +[Selengkapnya tentang ENS](https://app.ens.domains) + + + +### Keamanan NFT {#nft-security} + +Keamanan Ethereum berasal dari bukti taruhan. Sistem dirancang untuk memberikan insentif ekonomi yang mengurangi kemungkinan tindakan jahat, sehingga Ethereum menjadi tidak mungkin di palsukan. Inilah yang membuat NFT menjadi mungkin. Setelah blok yang berisi transaksi NFT Anda menjadi final, biaya yang diperlukan bagi penyerang untuk mengubahnya akan mencapai jutaan ETH. Setiap orang yang menjalankan perangkat lunak Ethereum akan segera dapat mendeteksi manipulasi yang tidak jujur terhadap NFT, dan pelaku kejahatan akan dikenakan hukuman ekonomi dan diusir. + +Masalah keamanan terkait NFT sering kali terkait dengan penipuan phishing, kerentanan kontrak pintar, atau kesalahan pengguna (seperti secara tidak sengaja mengekspos kunci pribadi), sehingga keamanan dompet yang baik menjadi sangat penting bagi pemilik NFT. + + + Lebih lanjut tentang keamanan + + +## Bacaan lebih lanjut {#further-reading} + +- [Panduan tentang NFT bagi pemula](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, Januari 2020_ +- [Pelacak NFT Etherscan](https://etherscan.io/nft-top-contracts) +- [Standar token ERC-721](/developers/docs/standards/tokens/erc-721/) +- [Token standar ERC-1155](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/public/content/translations/id/refi/index.md b/public/content/translations/id/refi/index.md new file mode 100644 index 00000000000..1a733fa04fa --- /dev/null +++ b/public/content/translations/id/refi/index.md @@ -0,0 +1,79 @@ +--- +title: Keuangan Regeneratif (ReFi) +description: Gambaran umum tentang ReFi dan kasus penggunaannya saat ini. +lang: id +template: use-cases +emoji: ":recycle:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Sistem ekonomi alternatif yang didasarkan pada prinsip regeneratif +summaryPoint2: Upaya untuk memanfaatkan Ethereum untuk memecahkan krisis-krisis koordinasi tingkat global seperti perubahan iklim +summaryPoint3: Alat untuk meningkatkan skala aset manfaat ekologi secara drastis seperti kredit karbon terverifikasi +--- + +## Apa itu ReFi? {#what-is-refi} + +**Keuangan Regeneratif (ReFi)** adalah seperangkat perangkat dan ide yang dibangun di atas rantai blok, yang bertujuan untuk menciptakan ekonomi yang regeneratif, bukan ekstraktif atau eksploitatif. Hasilnya, sistem ekstraktif menguras sumber daya yang tersedia dan runtuh; tanpa mekanisme regeneratif, sistem ini tidak memiliki ketahanan. ReFi beroperasi dengan asumsi bahwa penciptaan nilai moneter harus dipisahkan dari ekstraksi sumber daya yang tidak berkelanjutan dari planet dan masyarakat kita. + +Sebaliknya, ReFi bertujuan untuk memecahkan masalah lingkungan, komunal, atau sosial dengan menciptakan siklus regeneratif. Sistem ini menciptakan nilai bagi para partisipan-partisipan sekaligus memberi manfaat bagi ekosistem dan masyarakat. + +Salah satu dasar dari ReFi adalah konsep ekonomi regeneratif yang dipelopori oleh John Fullerton dari [Capital Institute](https://capitalinstitute.org). Dia mengusulkan delapan prinsip yang saling berhubungan yang mendasari kesehatan sistemik: + +![Delapan prinsip yang saling terhubung](./refi-regenerative-economy-diagram.png) + +Proyek ReFi merealisasikan prinsip-prinsip ini dengan menggunakan [kontrak pintar](/developers/docs/smart-contracts/) dan aplikasi [keuangan terdesentralisasi (DeFi)](/defi/) untuk mendorong perilaku regeneratif, misalnya memulihkan ekosistem yang rusak, dan memfasilitasi kolaborasi berskala besar pada isu-isu global seperti perubahan iklim dan hilangnya keanekaragaman hayati. + +ReFi juga meliputi gerakan [sains terdesentralisasi (DeSci)](/desci/), yang menggunakan Ethereum sebagai platform untuk membiayai, menciptakan, meninjau, kredit, menyimpan, dan menyebarkan pengetahuan ilmiah. Perangkat DeSci dapat berguna untuk mengembangkan standar dan praktik yang dapat diverifikasi untuk menerapkan dan memantau kegiatan regeneratif seperti menanam pohon, menghilangkan plastik dari lautan, atau memulihkan ekosistem yang rusak. + +## Tokenisasi kredit karbon {#tokenization-of-carbon-credits} + +**[Pasar Karbon Sukarela (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** adalah mekanisme untuk mendanai proyek-proyek yang memberikan dampak positif yang terverifikasi terhadap emisi karbon, baik untuk mengurangi emisi yang sedang berlangsung, maupun untuk menghilangkan gas rumah kaca yang telah dipancarkan dari atmosfer. Proyek-proyek ini menerima aset yang disebut "kredit karbon" setelah diverifikasi, yang dapat mereka jual kepada individu dan organisasi yang ingin mendukung aksi iklim. + +Selain VCM, ada juga beberapa pasar karbon yang diatur oleh pemerintah (‘pasar kepatuhan’) yang bertujuan untuk menetapkan harga karbon melalui undang-undang atau peraturan di dalam yurisdiksi tertentu (misalnya negara atau wilayah), mengendalikan pasokan izin yang akan didistribusikan. Pasar kepatuhan mendorong pencemar dalam yurisdiksi mereka untuk mengurangi emisi, tetapi mereka tidak mampu menghapus gas rumah kaca yang telah dikeluarkan. + +Terlepas dari perkembangannya selama beberapa dekade terakhir, VCM terus mengalami berbagai masalah: + +1. Likuiditas yang sangat terfragmentasi +2. Mekanisme transaksi yang tidak transparan +3. Biaya tinggi +4. Kecepatan perdagangan yang sangat lambat +5. Kurangnya skalabilitas + +Mengalihkan VCM ke **pasar karbon digital (DCM)** baru berbasis rantai blok mungkin menjadi peluang untuk meningkatkan teknologi yang ada untuk memvalidasi, melakukan transaksi, dan menggunakan kredit karbon. Rantai blok memungkinkan data yang dapat diverifikasi secara publik, akses untuk berbagai pengguna, dan likuiditas yang lebih tinggi. + +Proyek ReFi menggunakan teknologi rantai blok untuk mengatasi banyak masalah pasar tradisional: + +- **Likuiditas terkonsentrasi dalam sejumlah kecil pool likuiditas** yang dapat diperdagangkan secara bebas oleh siapa pun. Organisasi besar serta pengguna individu dapat menggunakan pool ini tanpa perlu melakukan pencarian manual untuk penjual/pembeli, biaya partisipasi, atau registrasi sebelumnya. +- **Semua transaksi dicatat di dalam rantai blok publik**. Jejak setiap kredit karbon yang dihasilkan oleh aktivitas perdagangan dapat dilacak selamanya begitu kredit tersebut tersedia dalam DCM. +- **Kecepatan transaksi hampir instan**. Mengamankan sejumlah besar kredit karbon melalui pasar-pasar tradisional bisa memakan waktu berhari-hari atau berminggu-minggu, tetapi ini dapat dicapai dalam beberapa detik di DCM. +- ** Aktivitas perdagangan terjadi tanpa perantara**, yang mengenakan biaya tinggi. Kredit karbon digital mewakili [peningkatan biaya sebesar 62% dibandingkan dengan kredit tradisional setara](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne), menurut data dari satu perusahaan analitik. +- ** DCM bersifat dapat diskalakan** dan dapat memenuhi permintaan baik dari individu maupun perusahaan multinasional. + +### Komponen kunci dari DCM {#key-components-dcm} + +Empat komponen utama membentuk lanskap saat ini dari DCM: + +1. Registri seperti [Verra](https://verra.org/project/vcs-program/registry-system/) dan [Gold Standard](https://www.goldstandard.org/) memastikan bahwa proyek-proyek yang menciptakan kredit karbon dapat diandalkan. Mereka juga mengoperasikan basis data di mana kredit karbon digital berasal dan dapat ditransfer atau digunakan (ditarik). + +Ada gelombang proyek inovatif baru yang dibangun di atas teknologi rantai blok yang berusaha mengganggu pemain utama di sektor ini. + +2. alias jembatan karbon tokenizers, atau pengolah token, menyediakan teknologi untuk mewakili atau mentransfer kredit karbon dari registri tradisional ke dalam DCM. Contoh-contoh yang mencolok termasuk [Toucan Protocol](https://toucan.earth/), [C3](https://c3.app/), dan [Moss.Earth](https://moss.earth/). +3. Layanan terintegrasi menawarkan kredit penghindaran dan/atau penghapusan karbon kepada pengguna akhir sehingga mereka dapat mengklaim manfaat lingkungan dari kredit tersebut dan berbagi dukungan terhadap tindakan iklim dengan dunia. + +Beberapa layanan seperti [Klima Infinity](https://www.klimadao.finance/infinity) dan [Senken](https://senken.io/) menawarkan berbagai proyek yang dikembangkan oleh pihak ketiga dan diterbitkan berdasarkan standar yang sudah mapan seperti Verra; sementara yang lain seperti [Nori](https://nori.com/) hanya menawarkan proyek spesifik yang dikembangkan berdasarkan standar kredit karbon mereka sendiri, yang mereka terbitkan dan untuknya mereka memiliki pasar tersendiri. + +4. Landasan dan infrastruktur dasar yang memfasilitasi peningkatan dampak dan efisiensi dari seluruh rantai pasokan pasar karbon. [KlimaDAO](http://klimadao.finance/) menyediakan likuiditas sebagai kebaikan publik (memungkinkan siapa pun untuk membeli atau menjual kredit karbon dengan harga yang transparan), memberikan insentif keluaran peningkatan pasar karbon dan penghapusan dengan imbalan, dan menyediakan perangkat yang mudah digunakan dan interoperabel untuk mengakses data tentang, serta mendapatkan dan menghapus, berbagai jenis kredit karbon yang diberikan dalam bentuk token. + +## ReFi di luar pasar karbon {#refi-beyond} + +Meskipun saat ini ada penekanan kuat pada pasar karbon secara umum dan khususnya pada peralihan dari VCM ke DCM di dalam ruang ini, istilah “ReFi” tidak secara ketat terbatas pada karbon. Aset lingkungan lainnya selain kredit karbon dapat dikembangkan dan di-tokenisasi, yang akan berarti eksternalitas negatif lainnya juga dapat dihargai dalam lapisan dasar dari sistem ekonomi di masa depan. Selain itu, aspek regeneratif dari model ekonomi ini dapat diterapkan pada bidang lain, seperti pendanaan barang publik melalui platform pendanaan kuadratik seperti [Gitcoin](https://gitcoin.co/). Organisasi yang dibangun berdasarkan gagasan partisipasi terbuka dan distribusi sumber daya yang adil memberdayakan semua orang untuk mengalirkan dana ke proyek perangkat lunak sumber terbuka, serta proyek pendidikan, lingkungan, dan berbasis komunitas. + +Dengan mengalihkan arah modal dari praktik ekstraktif ke aliran regeneratif, proyek dan perusahaan yang memberikan manfaat sosial, lingkungan, atau komunal - dan mungkin gagal mendapatkan pendanaan dalam keuangan tradisional - dapat dimulai dan menghasilkan dampak positif bagi masyarakat dengan lebih cepat dan mudah. Beralih ke model pendanaan ini juga membuka pintu menuju sistem ekonomi yang lebih inklusif, di mana orang dari berbagai latar belakang dapat menjadi peserta aktif daripada sekadar pengamat pasif. ReFi menawarkan visi tentang Ethereum sebagai mekanisme untuk mengkoordinasikan tindakan dalam menghadapi tantangan eksistensial yang dihadapi oleh spesies kita dan seluruh kehidupan di planet kita—sebagai lapisan dasar paradigma ekonomi baru, memungkinkan masa depan yang lebih inklusif dan berkelanjutan untuk berabad-abad yang akan datang. + +## Bacaan tambahan tentang ReFi + +- [Gambaran Umum Tentang Mata Uang Karbon dan Tempatnya dalam Ekonomi](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) +- [The Ministry for the Future adalah sebuah novel yang menggambarkan peran mata uang berbasis karbon dalam memerangi perubahan iklim](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) +- [Laporan rinci dari Satuan Tugas untuk Meningkatkan Pasar Karbon Sukarela](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) +- [Entri glosarium CoinMarketCap oleh Kevin Owocki dan Evan Miyazono tentang ReFi](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/id/roadmap/account-abstraction/index.md b/public/content/translations/id/roadmap/account-abstraction/index.md similarity index 100% rename from src/content/translations/id/roadmap/account-abstraction/index.md rename to public/content/translations/id/roadmap/account-abstraction/index.md diff --git a/public/content/translations/id/roadmap/beacon-chain/index.md b/public/content/translations/id/roadmap/beacon-chain/index.md new file mode 100644 index 00000000000..36aba00e25d --- /dev/null +++ b/public/content/translations/id/roadmap/beacon-chain/index.md @@ -0,0 +1,75 @@ +--- +title: Rantai Suar +description: Belajar tentang Rantai Suar - peningkatan yang memperkenalkan bukti taruhan Ethereum. +lang: id +template: upgrade +image: /upgrades/core.png +alt: +summaryPoint1: Rantai Suar memperkenalkan bukti taruhan ke dalam ekosistem Ethereum. +summaryPoint2: Rantai ini digabungkan dengan rantai bukti kerja Ethereum yang asli pada bulan September 2022. +summaryPoint3: Rantai Suar memperkenalkan logika konsensus dan protokol gosip blok yang sekarang mengamankan Ethereum. +--- + + + Rantai Suar dikirimkan pada tanggal 1 Desember 2020, dan meresmikan bukti taruhan sebagai mekanisme konsensus Ethereum dengan peningkatan Penggabungan pada tanggal 15 September 2022. + + +## Apa yang dimaksud dengan Rantai Suar? {#what-is-the-beacon-chain} + +Rantai Suar adalah nama rantai blok bukti taruhan asli yang diluncurkan pada tahun 2020. Ini dibuat untuk memastikan logika konsensus bukti taruhan yang baik dan berkelanjutan sebelum mengaktifkannya di Jaringan Utama Ethereum. Oleh karena itu, ia berjalan bersama dengan Ethereum bukti kerja yang asli. Rantai Suar adalah sebuah rantai blok 'kosong', tetapi mematikan bukti kerja dan mengaktifkan bukti taruhan pada Ethereum membutuhkan instruksi kepada Rantai Suar untuk menerima data transaksi dari klien eksekusi, menggabungkannya ke dalam blok-blok, dan kemudian mengaturnya ke dalam sebuah rantai blok dengan menggunakan sebuah mekanisme konsensus berbasis bukti taruhan. Pada saat yang sama, klien Ethereum yang asli mematikan penambangan, penyebaran blok, dan logika konsensus mereka, dan menyerahkan semuanya kepada Rantai Suar. Acara ini dikenal sebagai [Penggabungan](/roadmap/merge/). Setelah Penggabungan terjadi, tidak ada lagi dua rantai blok. Sebagai gantinya, hanya ada satu bukti taruhan Ethereum, yang sekarang membutuhkan dua klien yang berbeda per simpul. Rantai Suar sekarang menjadi lapisan konsensus, sebuah jaringan klien konsensus rekan-ke-rekan yang menangani gosip blok dan logika konsensus, sementara klien asli membentuk lapisan eksekusi, yang bertanggung jawab untuk menggosipkan dan mengeksekusi transaksi, dan mengelola status Ethereum. Kedua lapisan tersebut dapat berkomunikasi satu sama lain menggunakan API Engine. + +## Apa yang dilakukan oleh Rantai Suar? {#what-does-the-beacon-chain-do} + +Rantai Suar adalah nama yang diberikan kepada buku besar akun yang melakukan dan mengkoordinasikan jaringan [penaruh](/staking/) sebelum para penaruh tersebut mulai memvalidasi blok Ethereum yang sebenarnya. Lapisan ini tidak memproses transaksi atau menangani interaksi kontrak pintar karena hal itu dilakukan di lapisan eksekusi. Rantai Suar bertanggung jawab untuk hal-hal seperti penanganan blok dan pengesahan, menjalankan algoritma pilihan garpu, dan mengelola imbalan, dan penalti. Baca lebih lanjut di [halaman arsitektur simpul](/developers/docs/nodes-and-clients/node-architecture/#node-comparison). + +## Dampak Rantai Suar {#beacon-chain-features} + +### Memperkenalkan penaruhan {#introducing-staking} + +Rantai Suar memperkenalkan [bukti taruhan](/developers/docs/consensus-mechanisms/pos/) pada Ethereum. Hal ini membuat Ethereum tetap aman dan membuat validator mendapatkan lebih banyak ETH dalam prosesnya. Dalam praktiknya, penaruhan melibatkan penaruhan ETH untuk mengaktifkan perangkat lunak validator. Sebagai penaruh, Anda menjalankan perangkat lunak yang membuat dan memvalidasi blok baru dalam chain. + +Penaruhan memiliki tujuan yang serupa dengan [penambangan](/developers/docs/mining/), tetapi berbeda dalam banyak hal. Penambangan membutuhkan pengeluaran besar di muka dalam bentuk perangkat keras yang kuat dan konsumsi energi, yang menghasilkan skala ekonomi, dan mendorong sentralisasi. Penambangan juga tidak dilengkapi dengan persyaratan untuk mengunci aset sebagai jaminan, membatasi kemampuan protokol untuk menghukum pelaku kejahatan setelah terjadi serangan. + +Transisi ke bukti taruhan membuat Ethereum secara signifikan lebih aman dan terdesentralisasi dibandingkan dengan bukti kerja. Semakin banyak orang yang berpartisipasi dalam jaringan, semakin terdesentralisasi dan aman dari serangan. + +Dan menggunakan bukti taruhan sebagai mekanisme konsensus adalah komponen dasar untuk [Ethereum yang aman, ramah lingkungan, dan dapat diskalakan yang kita miliki saat ini](/roadmap/vision/). + + + Jika Anda tertarik untuk menjadi validator dan membantu mengamankan Ethereum, pelajari lebih lanjut tentang penaruhan. + + +### Menyiapkan untuk pecahan {#setting-up-for-sharding} + +Sejak Rantai Suar bergabung dengan Jaringan Utama Ethereum yang asli, komunitas Ethereum mulai mencari cara untuk penskalaan jaringan. + +Bukti taruhan memiliki keuntungan karena memiliki registri semua produsen blok yang disetujui pada waktu tertentu, masing-masing dengan ETH yang dipertaruhkan. Registri ini menetapkan panggung untuk kemampuan membagi dan menaklukkan, tetapi dengan andal membagi tanggung jawab jaringan tertentu. + +Tanggung jawab ini berbeda dengan bukti kerja, di mana penambang tidak memiliki kewajiban terhadap jaringan dan dapat berhenti menambang dan mematikan perangkat lunak simpul mereka secara permanen dalam sekejap tanpa ada konsekuensi. Juga tidak ada registri pengusul blok yang dikenal dan tidak ada cara yang dapat diandalkan untuk membagi tanggung jawab jaringan dengan aman. + +[Lebih lanjut tentang pecahan](/roadmap/danksharding/) + +## Hubungan antar peningkatan {#relationship-between-upgrades} + +Semua peningkatan Ethereum saling terkait. Jadi ayo kita ingat kembali bagaimana Rantai Suar memengaruhi peningkatan lainnya. + +### Rantai Suar dan Penggabungan {#merge-and-beacon-chain} + +Pada awalnya, Rantai Suar ada secara terpisah dari Jaringan Utama Ethereum, tetapi keduanya digabungkan pada tahun 2022. + + + Penggabungan + + +### Pecahan dan Rantai Suar {#shards-and-beacon-chain} + +Pecahan hanya dapat masuk ke dalam ekosistem Ethereum dengan aman dengan adanya mekanisme konsensus bukti taruhan. Rantai Suar memperkenalkan penaruhan, yang 'bergabung' dengan Jaringan Utama, membuka jalan bagi pecahan untuk membantu meningkatkan skala Ethereum. + + + Rantai shard + + +## Bacaan Lebih Lanjut + +- [Lebih lanjut tentang peningkatan Ethereum di masa depan](/roadmap/vision) +- [Lebih lanjut tentang arsitektur simpul](/developers/docs/nodes-and-clients/node-architecture) +- [Lebih lanjut tentang bukti taruhan](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/id/roadmap/danksharding/index.md b/public/content/translations/id/roadmap/danksharding/index.md similarity index 100% rename from src/content/translations/id/roadmap/danksharding/index.md rename to public/content/translations/id/roadmap/danksharding/index.md diff --git a/public/content/translations/id/roadmap/future-proofing/index.md b/public/content/translations/id/roadmap/future-proofing/index.md new file mode 100644 index 00000000000..5007f67820a --- /dev/null +++ b/public/content/translations/id/roadmap/future-proofing/index.md @@ -0,0 +1,38 @@ +--- +title: Ethereum yang siap menghadapi masa depan +description: Peningkatan ini memperkuat Ethereum sebagai lapisan dasar terdesentralisasi yang tangguh untuk masa depan, apa pun yang akan terjadi. +lang: id +image: /roadmap/roadmap-future.png +alt: "Peta Perjalanan Ethereum" +template: roadmap +--- + +Beberapa bagian dari peta perjalanann tidak selalu diperlukan untuk penskalaan atau mengamankan Ethereum dalam waktu dekat, tetapi menyiapkan Ethereum untuk stabilitas dan keandalan jauh di masa depan. + +## Resistensi kuantum {#quantum-resistance} + +Beberapa kriptografi yang mengamankan Ethereum saat ini akan dikompromikan ketika komputasi kuantum menjadi kenyataan. Meskipun komputer kuantum mungkin masih beberapa dekade lagi untuk menjadi ancaman nyata bagi kriptografi modern, Ethereum dibangun untuk menjadi aman selama berabad-abad yang akan datang. Ini berarti membuat [Ethereum tahan kuantum](https://consensys.net/blog/developers/how-will-quantum-supremacy-affect-blockchain/) sesegera mungkin. + +Tantangan yang dihadapi oleh para pengembang Ethereum adalah protokol bukti taruhan saat ini bergantung pada skema tanda tangan yang sangat efisien yang dikenal sebagai BLS untuk mengumpulkan suara pada blok yang valid. Skema tanda tangan ini dipatahkan oleh komputer kuantum, tetapi alternatif tahan kuantum tidak seefisien itu. + +[Skema komitmen "KZG"](/roadmap/danksharding/#what-is-kzg) yang digunakan di beberapa tempat di seluruh Ethereum untuk menghasilkan rahasia kriptografi dikenal rentan terhadap kuantum. Saat ini, hal ini diakali dengan menggunakan "pengaturan tepercaya" di mana banyak pengguna menghasilkan keacakan yang tidak dapat direkayasa oleh komputer kuantum. Namun, solusi yang ideal adalah dengan menggabungkan kriptografi aman kuantum. Terdapat dua pendekatan utama yang dapat menjadi pengganti yang efisien untuk skema BLS: [berbasis STARK](https://hackmd.io/@vbuterin/stark_aggregation) dan [berbasis lattice](https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-lattice-encryption-326ac66e3175) untuk penandatanganan. Ini masih dalam tahap penelitian dan pembuatan prototipe. + + Baca tentang KZG dan pengaturan tepercaya + +## Ethereum yang lebih sederhana dan lebih efisien {#simpler-more-efficient-ethereum} + +Kompleksitas menciptakan peluang untuk bug atau kerentanan yang dapat dieksploitasi oleh penyerang. Oleh karena itu, bagian dari peta perjalanan adalah menyederhanakan Ethereum dan menghapus kode yang telah bertahan melalui berbagai peningkatan tetapi tidak lagi diperlukan atau sekarang dapat ditingkatkan. Basis kode yang lebih ramping dan sederhana lebih mudah dipelihara dan dipahami oleh pengembang. + +Ada beberapa pembaruan yang akan dilakukan pada [Mesin Virtual Ethereum (EVM)](/developers/docs/evm) untuk membuatnya lebih sederhana dan efisien. Ini termasuk [menghapus opcode SELFDESTRUCT](https://hackmd.io/@vbuterin/selfdestruct) - perintah yang jarang digunakan yang tidak lagi diperlukan dan dalam beberapa situasi dapat berbahaya untuk digunakan, terutama jika digabungkan dengan peningkatan lain di masa depan pada model penyimpanan Ethereum. Klien Ethereum juga masih mendukung beberapa jenis transaksi lama yang sekarang dapat dihapus sepenuhnya. Cara penghitungan gas juga dapat ditingkatkan dan metode yang lebih efisien untuk aritmatika yang mendasari beberapa operasi kriptografi dapat digunakan. + +Demikian pula, ada pembaruan yang dapat dilakukan pada bagian lain dari klien Ethereum saat ini. Salah satu contohnya adalah klien eksekusi dan konsensus saat ini menggunakan jenis kompresi data yang berbeda. Akan jauh lebih mudah dan lebih intuitif untuk berbagi data di antara klien ketika skema kompresi disatukan di seluruh jaringan. + +## Kemajuan saat ini {#current-progress} + +Sebagian besar peningkatan yang diperlukan untuk membuktikan Ethereum di masa depan masih dalam tahap penelitian dan mungkin masih beberapa tahun lagi untuk diimplementasikan. Peningkatan seperti menghapus SELF-DESTRUCT dan menyelaraskan skema kompresi yang digunakan dalam klien eksekusi dan konsensus kemungkinan besar akan hadir lebih cepat daripada kriptografi tahan kuantum. + +**Bacaan lebih lanjut** + +- [Gas](/developers/docs/gas) +- [EVM](/developers/docs/evm) +- [Struktur data](/developers/docs/data-structures-and-encoding) diff --git a/public/content/translations/id/roadmap/index.md b/public/content/translations/id/roadmap/index.md new file mode 100644 index 00000000000..91b0879f1dd --- /dev/null +++ b/public/content/translations/id/roadmap/index.md @@ -0,0 +1,117 @@ +--- +title: Peta Perjalanan Ethereum +description: Jalan menuju peningkatan skalabilitas, keamanan, dan keberlanjutan Ethereum. +lang: id +template: roadmap +image: /roadmap/roadmap-main.png +alt: "Peta Perjalanan Ethereum" +summaryPoints: +buttons: + - label: Peningkatan lebih lanjut + toId: perubahan-apa-yang-akan-terjadi + - label: Peningkatan sebelumnya + to: /history/ + variant: ikhtisar +--- + +Ethereum sudah menjadi platform koordinasi global yang kuat, tetapi masih terus ditingkatkan. Serangkaian peningkatan yang ambisius akan meningkatkan Ethereum dari bentuknya saat ini menjadi platform yang berskala penuh dengan ketahanan maksimal. Berbagai peningkatan ini diuraikan dalam peta jalan Ethereum. + +**Untuk mempelajari tentang peningkatan Ethereum sebelumnya, harap buka halaman [Sejarah](/history/) kami** + +## Perubahan apa yang akan terjadi pada Ethereum? {#what-changes-are-coming} + +Peta jalan Ethereum menguraikan peningkatan spesifik yang akan dilakukan pada protokol di masa depan. Secara keseluruhan, peta jalan ini akan memberikan manfaat berikut kepada pengguna Ethereum: + + + + + + + + +## Mengapa Ethereum membutuhkan peta jalan? {#why-does-ethereum-need-a-roadmap} + +Ethereum ditingkatkan secara rutin untuk meningkatkan skalabilitas, keamanan, atau keberlanjutannya. Salah satu kekuatan inti Ethereum adalah menyesuaikan dengan ide-ide baru yang muncul dari penelitian dan pengembangan. Kemampuan beradaptasi memberikan fleksibilitas kepada Ethereum untuk mengatasi tantangan yang muncul dan mengikuti terobosan teknologi yang paling canggih. + + + +Peta jalan ini sebagian besar adalah hasil kerja bertahun-tahun dari para peneliti dan pengembang - karena protokol ini sangat teknis - tetapi setiap orang yang berminat boleh ikut serta. Ide-ide biasanya dimulai dari diskusi di forum seperti [ethresear.ch](https://ethresear.ch/), [Ethereum magicians](https://www.figma.com/exit?url=https%3A%2F%2Fethereum-magicians.org%2F) atau server discord Eth R&D. Ide-ide tersebut mungkin tanggapan terhadap kerentanan baru yang ditemukan, saran dari organisasi yang bekerja di lapisan aplikasi (seperti dapps dan bursa pertukaran) atau dari perselisihan yang diketahui oleh pengguna akhir (seperti biaya atau kecepatan transaksi). Ketika sudah matang, ide-ide ini dapat diusulkan sebagai [Proposal Peningkatan Ethereum](https://eips.ethereum.org/). Semua ini dilakukan di ruang publik sehingga setiap anggota komunitas dapat memberi masukan kapan saja. + +[Selengkapnya tentang tata kelola Ethereum](/governance/) + + + + +

Apa itu ETH2?

+ +

Istilah 'Eth2' sebelumnya digunakan untuk menggambarkan masa depan Ethereum sebelum beralih ke konsep bukti kepemilikan, tetapi istilah ini kemudian perlahan ditinggalkan karena ada terminologi lain yang lebih tepat. Istilah ini pada awalnya digunakan untuk membedakan jaringan Ethereum sebelum beralih ke konsep bukti kepemilikan dan jaringan setelahnya, atau terkadang digunakan untuk menyebut klien Ethereum yang lain (klien eksekusi terkadang disebut sebagai klien ETH1 dan klien konsensus terkadang disebut sebagai klien ETH2).

+ +
+ +## Apakah peta jalan Ethereum akan berubah seiring dengan waktu? {#will-ethereums-roadmap-change-over-time} + +Ya-hampir pasti. Peta jalan adalah rencana saat ini untuk meningkatkan Ethereum, yang mencakup rencana jangka pendek dan jangka panjang. Kami memperkirakan peta jalan ini akan berubah seiring dengan tersedianya informasi dan teknologi baru. + +Bayangkan peta jalan Ethereum sebagai sekelompok maksud untuk meningkatkan Ethereum; ini adalah hipotesis terbaik dari para peneliti dan pengembang inti tentang masa depan Ethereum yang paling optimal. + +## Kapan peta jalan ini akan berakhir? {#when-will-the-roadmap-be-finished} + +Ethereum akan mengimplementasikan beberapa peningkatan dalam enam bulan ke depan (misalnya, penarikan staking); peningkatan lainnya berprioritas lebih rendah dan kemungkinan besar tidak akan diimplementasikan dalam 5-10 tahun ke depan (misalnya, resistensi kuantum). Waktu yang tepat untuk setiap peningkatan sulit diprediksi karena banyak bagian dari peta jalan yang dikerjakan secara paralel dan dikembangkan dengan kecepatan yang berbeda. Urgensi peningkatan juga dapat berubah seiring waktu tergantung faktor eksternal (misalnya, lompatan mendadak kinerja dan ketersediaan komputer kuantum dapat menyebabkan lebih mendesaknya kebutuhan kriptografi quantum-resistant atau tahan terhadap serangan dari komputer kuantum). + +Salah satu cara berpikir untuk pengembangan Ethereum adalah dengan analogi evolusi biologis. Jaringan yang mampu beradaptasi dengan tantangan baru dan mempertahankan kondisinya lebih mungkin berhasil daripada jaringan yang menentang perubahan, meskipun seiring meningkatnya kinerja, skalabilitas, dan keamanan jaringan, makin sedikit perubahan protokol yang diperlukan. + +## Apakah ada yang harus saya lakukan ketika ada peningkatan? {#do-i-have-to-do-anything-when-there-is-an-upgrade} + +Peningkatan cenderung tidak berdampak pada pengguna akhir, kecuali meningkatkan pengalaman pengguna dan meningkatkan keamanan protokol serta mungkin lebih banyak opsi untuk cara berinteraksi dengan Ethereum. Pengguna akhir tidak diwajibkan untuk berpartisipasi aktif dalam peningkatan, dan juga tidak perlu melakukan apa pun untuk mengamankan aset mereka. Para operator simpul harus memperbarui klien mereka sebagai persiapan peningkatan. Beberapa peningkatan dapat menyebabkan perubahan bagi pengembang aplikasi. Misalnya, peningkatan pada masa kedaluwarsa riwayat dapat menyebabkan pengembang aplikasi mengambil data riwayat dari sumber referensi baru. + +## Bagaimana dengan The Verge, The Splurge, dll? {#what-about-the-verge-splurge-etc} + +[Vitalik Buterin mengajukan visi untuk peta jalan Ethereum](https://twitter.com/VitalikButerin/status/1588669782471368704) yang diorganisasikan dalam beberapa kategori yang dihubungkan dengan pengaruhnya terhadap arsitektur Ethereum. Termasuk di dalamnya: + +- Penggabungan: peningkatan yang terkait dengan peralihan dari konsep bukti kerja ke bukti kepemilikan +- Lonjakan: peningkatan yang terkait skalabilitas dengan rollup dan sharding pada data +- Ancaman: peningkatan yang terkait dengan resistansi terhadap sensor, desentralisasi, dan risiko protokol dari MEV +- The Verge: peningkatan yang terkait dengan mempermudah verifikasi blok +- Pembersihan: peningkatan yang terkait dengan penurunan biaya komputasi untuk menjalankan simpul dan menyederhanakan protokol +- The Splurge: peningkatan lain yang tidak cocok dengan kategori yang disebutkan sebelumnya. + +Kami memutuskan untuk tidak menggunakan terminologi ini karena kami ingin menggunakan model yang lebih sederhana dan lebih berpusat pada pengguna. Meskipun kami menggunakan istilah yang berpusat pada pengguna, visinya tetap sama dengan yang diajukan oleh Vitalik. + +## Bagaimana dengan sharding? {#what-about-sharding} + +Sharding adalah pemecahan rantai blok Ethereum agar subset validator hanya bertanggung jawab atas sebagian kecil dari total data. Metode ini awalnya dimaksudkan sebagai cara penskalaan Ethereum. Namun, rollup lapisan ke-2 telah berkembang jauh lebih cepat dari yang diperkirakan dan telah memberikan banyak penskalaan, serta akan memberikan lebih banyak lagi setelah penerapan Proto-Danksharding. Hal ini berarti "rantai pecahan" tidak diperlukan lagi dan telah dihapus dari peta jalan. + +## Mencari peningkatan teknis yang spesifik? {#looking-for-specific-technical-upgrades} + +- [Danksharding](/roadmap/danksharding) - Danksharding menyebabkan rollup lapisan ke-2 menjadi lebih murah bagi pengguna dengan menambahkan "blob" data ke blok Ethereum. +- [Penarikan staking](/staking/withdrawals) - Peningkatan Shanghai/Capella memungkinkan penarikan staking di Ethereum sehingga pengguna dapat membuka penguncian ETH yang ditaruh sebagai stake oleh mereka. +- [Finalitas ruang tunggal](/roadmap/single-slot-finality) - Daripada menunggu lima belas menit, blok bisa dipinang dan diselesaikan dalam ruang yang sama. Hal ini lebih praktis bagi aplikasi dan menjadi jauh lebih sulit untuk diserang. +- [Pemisahan pengusul-pembuat](/roadmap/pbs) - Memisahkan tugas pembuatan blok dan pengajuan blok pada berbagai validator akan menghasilkan cara yang lebih adil, lebih tahan sensor, dan efisien bagi Ethereum untuk mencapai konsensus. +- [Pemilihan pemimpin rahasia](/roadmap/secret-leader-election) - Kriptografi cerdas dapat digunakan untuk memastikan agar identitas pengusul blok terkini tidak diumumkan kepada publik sehingga melindunginya dari beberapa jenis serangan tertentu. +- [Abstraksi akun](/roadmap/account-abstraction) - Abstraksi akun adalah suatu tingkat peningkatan yang mendukung dompet kontrak pintar secara asli di Ethereum, sebagai pengganti penggunaan middleware yang rumit. +- [Pohon Verkle](/roadmap/verkle-trees) - Pohon Verkle adalah struktur data yang dapat digunakan untuk mengaktifkan klien tanpa keadaan di Ethereum. Klien "tanpa keadaan" ini hanya membutuhkan ruang penyimpanan yang sangat kecil, tetapi masih dapat memverifikasi blok baru. +- [Keadaan tanpa keadaan](/roadmap/statelessness) - klien tanpa keadaan akan dapat memverifikasi blok baru tanpa harus menyimpan data dalam jumlah besar. Hal ini akan memberikan semua manfaat menjalankan simpul dengan biaya yang sangat kecil dibandingkan dengan biaya yang berlaku saat ini. diff --git a/public/content/translations/id/roadmap/merge/index.md b/public/content/translations/id/roadmap/merge/index.md new file mode 100644 index 00000000000..bbc9147db07 --- /dev/null +++ b/public/content/translations/id/roadmap/merge/index.md @@ -0,0 +1,229 @@ +--- +title: Penggabungan +description: Pelajari tentang Penggabungan - ketika Jaringan Utama Ethereum mengadopsi bukti taruhan. +lang: id +template: upgrade +image: /upgrades/merge.png +alt: +summaryPoint1: Jaringan Utama Ethereum menggunakan bukti taruhan, tetapi tidak selalu demikian. +summaryPoint2: Peningkatan dari mekanisme bukti kerja yang asli menjadi bukti taruhan disebut Penggabungan. +summaryPoint3: Penggabungan mengacu pada penggabungan Jaringan Utama Ethereum asli dengan rantai blok bukti taruhan terpisah yang disebut Rantai Suar, yang sekarang ada sebagai satu rantai. +summaryPoint4: Penggabungan ini mengurangi konsumsi energi Ethereum sebesar ~99,95%. +--- + + + Penggabungan telah dilaksanakan pada tanggal 15 September 2022. Hal ini menyelesaikan transisi Ethereum ke konsensus bukti taruhan, yang secara resmi tidak lagi menggunakan bukti kerja dan mengurangi konsumsi energi sebesar ~99,95%. + + +## Apa itu Penggabungan? {#what-is-the-merge} + +Penggabungan adalah penyatuan lapisan eksekusi asli Ethereum (Jaringan Utama yang telah ada sejak [genesis](/history/#frontier)) dengan lapisan konsensus bukti taruhan baru, Rantai Suar. Ini menghilangkan kebutuhan akan penambangan yang boros energi dan sebagai gantinya memungkinkan jaringan untuk diamankan menggunakan ETH yang dipertaruhkan. Ini adalah langkah yang sangat menarik dalam mewujudkan visi Ethereum - skalabilitas, keamanan, dan keberlanjutan yang lebih baik. + + + +Pada awalnya, [Rantai Suar](/roadmap/beacon-chain/) dikirim secara terpisah dari [Jaringan Utama](/glossary/#mainnet). Jaringan Utama Ethereum - dengan semua akun, saldo, kontrak pintar, dan status rantai blok - tetap diamankan oleh [bukti kerja](/developers/docs/consensus-mechanisms/pow/), bahkan saat Rantai Suar berjalan paralel menggunakan [bukti taruhan](/developers/docs/consensus-mechanisms/pos/). Penggabungan adalah saat kedua sistem ini akhirnya digabungkan, dan bukti kerja digantikan secara permanen oleh bukti taruhan. + +Bayangkan Ethereum adalah sebuah pesawat luar angkasa yang diluncurkan sebelum cukup siap untuk melakukan perjalanan antarbintang. Dengan Rantai Suar, komunitas membuat mesin baru dan lambung kapal yang dikeraskan. Setelah pengujian yang signifikan, tiba saatnya untuk menukar mesin baru dengan mesin lama di tengah penerbangan. Penggabungan mesin baru yang lebih efisien ke dalam kapal yang sudah ada memungkinkannya untuk menjelajah beberapa tahun cahaya dan menjelajahi alam semesta. + +## Penggabungan dengan Jaringan Utama {#merging-with-mainnet} + +Bukti kerja mengamankan Jaringan Utama Ethereum dari awal hingga Penggabungan. Hal ini memungkinkan rantai blok Ethereum yang kita semua kenal hadir pada bulan Juli 2015 dengan semua fitur-fiturnya yang sudah tidak asing lagi - transaksi, kontrak pintar, akun, dll. + +Sepanjang sejarah Ethereum, para pengembang mempersiapkan diri untuk transisi dari bukti kerja ke bukti taruhan. Pada tanggal 1 Desember 2020, Rantai Suar dibuat sebagai rantai blok yang terpisah dari Jaringan Utama, berjalan secara paralel. + +Rantai Suar pada awalnya tidak memproses transaksi Jaringan Utama. Sebaliknya, ia mencapai konsensus tentang keadaannya sendiri dengan menyetujui validator aktif dan saldo akun mereka. Setelah pengujian ekstensif, tiba saatnya bagi Rantai Suar untuk mencapai konsensus pada data dunia nyata. Setelah Penggabungan, Rantai Suar menjadi mesin konsensus untuk semua data jaringan, termasuk transaksi lapisan eksekusi dan saldo akun. + +Penggabungan ini merupakan peralihan resmi untuk menggunakan Rantai Suar sebagai mesin produksi blok. Penambangan tidak lagi menjadi sarana untuk menghasilkan blok yang valid. Sebagai gantinya, validator bukti taruhan telah mengadopsi peran ini dan sekarang bertanggung jawab untuk memproses keabsahan semua transaksi dan mengusulkan blok. + +Tidak ada sejarah yang hilang dalam Penggabungan. Ketika Jaringan Utama bergabung dengan Rantai Suar, Jaringan Utama juga menggabungkan seluruh sejarah transaksi Ethereum. + + +Transisi ke bukti taruhan ini mengubah cara penerbitan ether. Pelajari lebih lanjut tentang pengeluaran ether sebelum dan setelah Penggabungan. + + +### Pengguna dan pemegang {#users-holders} + +**Penggabungan tidak mengubah apa pun bagi pemegang/pengguna.** + +_Ini patut diulang_: Sebagai pengguna atau pemegang ETH atau aset digital lainnya di Ethereum, serta para staker non-simpul operator, **Anda tidak perlu melakukan apa pun dengan dana atau dompet Anda untuk mempertimbangkan Penggabungan.** ETH tetaplah ETH. Tidak ada yang namanya "ETH lama"/"ETH baru" atau "ETH1"/"ETH2" dan dompet bekerja sama persis setelah Penggabungan seperti yang mereka lakukan sebelumnya - orang yang memberi tahu Anda sebaliknya kemungkinan besar adalah penipu. + +Meskipun telah menukar bukti kerja, seluruh sejarah Ethereum sejak awal tetap utuh dan tidak diubah oleh transisi ke bukti taruhan. Semua dana yang tersimpan di dompet Anda sebelum Penggabungan masih dapat diakses setelah Penggabungan. **Tidak diperlukan tindakan untuk meningkatkan dari pihak Anda.** + +[Lebih lanjut tentang keamanan Ethereum](/security/#eth2-token-scam) + +### Operator simpul dan pengembang dapp {#node-operators-dapp-developers} + + + +Item-item tindakan utama meliputi: + +1. Jalankan _kedua_ klien konsensus dan klien eksekusi; titik akhir pihak ketiga untuk mendapatkan data eksekusi tidak lagi berfungsi sejak Penggabungan. +2. Autentikasi klien eksekusi dan konsensus dengan rahasia JWT bersama sehingga mereka dapat berkomunikasi dengan aman. +3. Tetapkan alamat `penerima biaya` untuk menerima tips biaya transaksi/MEV yang Anda peroleh. + +Tidak menyelesaikan dua hal pertama di atas akan mengakibatkan simpul Anda terlihat sebagai "offline" hingga kedua lapisan disinkronkan dan diautentikasi. + +Tidak menetapkan `penerima biaya` akan tetap memungkinkan validator Anda berperilaku seperti biasa, tetapi Anda akan kehilangan tips biaya yang tidak terbakar dan MEV yang seharusnya Anda dapatkan dari blok yang diajukan oleh validator Anda. + + + + +Hingga Penggabungan, klien eksekusi (seperti Geth, Erigon, Besu, atau Nethermind) sudah cukup untuk menerima, memvalidasi dengan benar, dan menyebarkan blok yang sedang digosipkan oleh jaringan. _Setelah Penggabungan_, validitas transaksi yang terkandung dalam muatan eksekusi sekarang juga bergantung pada validitas "blok konsensus" yang terkandung di dalamnya. + +Sebagai hasilnya, sebuah simpul Ethereum penuh sekarang membutuhkan klien eksekusi dan klien konsensus. Kedua klien ini bekerja bersama menggunakan API Engine yang baru. API Engine memerlukan autentikasi menggunakan rahasia JWT, yang disediakan untuk kedua klien yang memungkinkan komunikasi yang aman. + +Item-item tindakan utama meliputi: + +- Menginstal klien konsensus selain klien eksekusi +- Autentikasi klien eksekusi dan konsensus dengan rahasia JWT bersama sehingga mereka dapat berkomunikasi dengan aman satu sama lain. + +Tidak menyelesaikan item di atas akan mengakibatkan simpul Anda tampak "offline" hingga kedua lapisan disinkronkan dan diautentikasi. + + + + + +Penggabungan disertai dengan perubahan konsensus, yang juga mencakup perubahan yang terkait dengan:< + +
    +
  • struktur blok
  • +
  • pengaturan waktu ruang/blok
  • +
  • perubahan opcode
  • +
  • sumber keacakan di dalam rantai
  • +
  • konsep dari blok aman dan blok yang telah difinalisasi
  • +
+ +Untuk informasi lebih lanjut, lihat tulisan blog ini oleh Tim Beiko tentang Bagaimana Penggabungan Memengaruhi Lapisan Aplikasi Ethereum. + +
+ +## Penggabungan dan konsumsi energi {#merge-and-energy} + +Penggabungan ini menandai berakhirnya bukti kerja untuk Ethereum dan memulai era Ethereum yang lebih berkelanjutan dan ramah lingkungan. Konsumsi energi Ethereum turun sekitar 99,95%, menjadikan Ethereum sebagai rantai blok hijau. Pelajari lebih lanjut tentang [konsumsi energi Ethereum](/energy-consumption/). + +## Penggabungan dan penskalaan {#merge-and-scaling} + +Penggabungan juga membuka jalan untuk peningkatan skalabilitas lebih lanjut yang tidak mungkin dilakukan di bawah bukti kerja, mendekatkan Ethereum satu langkah lebih dekat untuk mencapai skala penuh, keamanan, dan keberlanjutan seperti yang diuraikan dalam [visi Ethereum](/roadmap/vision/)nya. + +## Kesalahpahaman tentang Penggabungan {#misconceptions} + + + +Ada dua jenis simpul Ethereum: simpul yang dapat mengusulkan blok dan simpul yang tidak. + +Simpul yang mengusulkan blok hanya sejumlah kecil dari total simpul di Ethereum. Kategori ini mencakup simpul penambangan di bawah bukti kerja (proof-of-work/PoW) dan simpul validator di bawah bukti kepemilikan (proof-of-stake/PoS). Kategori ini membutuhkan sumber daya ekonomi (seperti kekuatan hash GPU dalam bukti kerja atau ETH yang dipertaruhkan dalam bukti taruhan) sebagai imbalan atas kemampuan untuk sesekali mengusulkan blok berikutnya dan mendapatkan imbalan protokol. + +Simpul lain dalam jaringan (yaitu mayoritas) tidak perlu menyediakan sumber daya ekonomi apa pun di luar komputer kelas konsumen dengan penyimpanan yang tersedia sebesar 1-2 TB dan koneksi internet. Simpul-simpul ini tidak mengusulkan blok, tetapi mereka masih memiliki peran penting dalam mengamankan jaringan dengan meminta pertanggungjawaban dari semua pengusul blok dengan mendengarkan blok-blok baru dan memverifikasi keabsahannya pada saat kedatangan sesuai dengan aturan konsensus jaringan. Jika blok tersebut valid, simpul akan terus menyebarkannya melalui jaringan. Jika blok tidak valid karena alasan apa pun, perangkat lunak simpul akan mengabaikannya sebagai tidak valid dan menghentikan penyebarannya. + +Menjalankan simpul yang tidak memproduksi blok memungkinkan bagi siapa pun di bawah kedua mekanisme konsensus (bukti kerja atau bukti taruhan); ini sangat dianjurkan bagi semua pengguna jika mereka memiliki kemampuan. Menjalankan sebuah simpul sangat berharga bagi Ethereum dan memberikan manfaat tambahan bagi setiap individu yang menjalankannya, seperti peningkatan keamanan, privasi, dan ketahanan terhadap sensor. + +Kemampuan bagi siapa pun untuk menjalankan simpul mereka sendiri adalah mutlak penting untuk menjaga desentralisasi jaringan Ethereum. + +Lebih lanjut tentang menjalankan simpul Anda sendiri + + + + + +Biaya gas adalah produk dari permintaan jaringan relatif terhadap kapasitas jaringan. Penggabungan tidak lagi menggunakan bukti kerja, beralih ke bukti taruhan untuk konsensus, tetapi tidak secara signifikan mengubah parameter apa pun yang secara langsung memengaruhi kapasitas atau keluaran jaringan. + +Dengan peta perjalanan berbasis rollup, upaya difokuskan pada penskalaan aktivitas pengguna di lapisan ke-2, sambil memungkinkan Jaringan Utama lapisan ke-1 sebagai lapisan penyelesaian terdesentralisasi yang aman yang dioptimalkan untuk penyimpanan data rollup untuk membantu membuat transaksi rollup menjadi jauh lebih murah secara eksponensial. Transisi ke bukti taruhan merupakan langkah awal yang penting untuk mewujudkan hal ini. Lebih lanjut tentang gas dan biaya. + + + + +"Kecepatan" transaksi dapat diukur dengan beberapa cara, termasuk waktu untuk dimasukkan ke dalam blok dan waktu finalisasi. Kedua hal ini sedikit berubah, tetapi tidak begitu kentara bagi pengguna. + +Secara historis, pada bukti kerja, targetnya adalah memiliki blok baru setiap ~13,3 detik. Pada bukti taruhan, slot terjadi tepat setiap 12 detik, yang mana setiap slot merupakan kesempatan bagi validator untuk menerbitkan blok. Sebagian besar slot memiliki blok, tetapi belum tentu semuanya (misalnya, validator sedang offline). Pada bukti taruhan, blok diproduksi ~10% lebih sering dibandingkan dengan bukti kerja. Ini merupakan perubahan yang tidak terlalu signifikan dan kemungkinan tidak akan disadari oleh pengguna. + +Bukti taruhan memperkenalkan konsep finalitas transaksi yang sebelumnya tidak ada. Dalam bukti kerja, kemampuan untuk membalikkan sebuah blok menjadi lebih sulit secara eksponensial dengan setiap blok yang ditambang di atas transaksi, tetapi tidak pernah mencapai nol. Dalam bukti taruhan, blok digabungkan ke dalam periode waktu (rentang waktu 6,4 menit yang terdiri dari 32 peluang blok) yang akan dipilih oleh para validator. Ketika jangka waktu berakhir, para validator memberikan suara untuk memutuskan apakah jangka waktu tersebut 'dibenarkan' atau tidak. Jika validator setuju untuk membenarkan jangka waktu, maka epoch tersebut akan difinalisasi di jangka waktu berikutnya. Membatalkan transaksi yang telah difinalisasi tidak ekonomis karena akan memerlukan pengambilan dan pembakaran lebih dari sepertiga total ETH yang dipertaruhkan. + + + + + +Awalnya setelah Penggabungan, para staker hanya dapat mengakses tip biaya dan MEV yang diperoleh sebagai hasil dari usulan blok. Imbalan ini dikreditkan ke akun non-penaruhan yang dikendalikan oleh validator (dikenal sebagai penerima biaya), dan tersedia segera. Imbalan ini terpisah dari imbalan protokol untuk menjalankan tugas validator. + +Sejak upgrade jaringan Shanghai/Capella, para staker sekarang dapat menunjuk alamat penarikan untuk mulai menerima pembayaran otomatis dari saldo penaruhan berlebihan (ETH di atas 32 dari imbalan protokol). Upgrade ini juga memungkinkan kemampuan bagi validator untuk membuka kunci dan mengklaim seluruh saldo saat keluar dari jaringan. + +Lebih lanjut tentang penarikan staking + + + + +Sejak meningkatkan Shanghai/Capella mengizinkan penarikan, para validator memiliki insentif untuk menarik saldo penaruhan mereka yang melebihi 32 ETH, karena dana-dana tersebut tidak meningkatkan hasil dan sebaliknya terkunci. Tergantung pada APR (ditentukan oleh total ETH yang dipertaruhkan), mungkin ada insentif untuk keluar dari validatornya untuk mengklaim seluruh saldo atau bahkan mempertaruhkan lebih lagi menggunakan imbalannya untuk mendapatkan hasil lebih banyak. + +Namun, perlu dicatat bahwa keluar penuh dari validator dibatasi oleh protokol, dan hanya sejumlah terbatas validator yang diizinkan keluar setiap jangka waktu (setiap 6,4 menit). Batas ini bervariasi tergantung pada jumlah validator aktif, tetapi berjumlah sekitar 0,33% dari total ETH yang dipertaruhkan dapat keluar dari jaringan dalam satu hari. + +Hal ini mencegah terjadinya pengeluaran dana penaruhan secara massal. Selain itu, hal ini mencegah penyerang potensial yang memiliki akses ke sebagian besar total ETH yang dipertaruhkan untuk melakukan pelanggaran yang dapat dipotong dan keluar/menarik semua saldo validator yang melanggar pada jangka waktu yang sama sebelum protokol dapat memberlakukan hukuman pemotongan. + +APR juga disengaja dinamis, memungkinkan pasar para staker untuk menyeimbangkan seberapa banyak mereka bersedia dibayar untuk membantu mengamankan jaringan. Jika tingkatnya terlalu rendah, maka validator akan keluar dengan batas kecepatan yang ditentukan oleh protokol. Secara perlahan ini akan meningkatkan APR bagi semua yang tetap tinggal, menarik staker baru atau yang kembali lagi. + + +## Apa yang akan terjadi pada 'Eth2'? {#eth2} + +Istilah 'Eth2' telah dihentikan penggunaannya. Setelah menggabungkan 'Eth1' dan 'Eth2' menjadi satu rantai tunggal, tidak ada lagi kebutuhan untuk membedakan antara dua jaringan Ethereum; hanya ada Ethereum. + +Untuk mengurangi kebingungan, komunitas telah memperbarui istilah-istilah berikut ini: + +- 'Eth1' sekarang adalah 'lapisan eksekusi', yang menangani transaksi dan eksekusi. +- 'Eth2' sekarang adalah 'lapisan konsensus', yang menangani konsensus bukti taruhan. + +Pembaruan terminologi ini hanya mengubah konvensi penamaan; ini tidak mengubah tujuan atau peta jalan Ethereum. + +[Pelajari selengkapnya tentang penamaan ulang 'Eth2'](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) + +## Hubungan antar peningkatan {#relationship-between-upgrades} + +Semua peningkatan Ethereum saling terkait. Jadi mari kita ringkas bagaimana Penggabungan ini berhubungan dengan peningkatan lain. + +### Penggabungan dan Rantai Suar {#merge-and-beacon-chain} + +Pengabungan mewakili adopsi resmi Rantai Suar sebagai lapisan konsensus baru untuk lapisan eksekusi Jaringan Utama asli. Sejak Penggabungan, para validator ditugaskan untuk mengamankan Jaringan Utama Ethereum, dan penambangan menggunakan [bukti kerja](/developers/docs/consensus-mechanisms/pow/) tidak lagi merupakan cara yang valid untuk produksi blok. + +Blok diusulkan dengan memvalidasi simpul yang telah mempertaruhkan ETH dengan imbalan hak untuk berpartisipasi dalam konsensus. Peningkatan ini menyiapkan panggung untuk peningkatan skalabilitas di masa depan, termasuk pecahan. + + + Rantai Suar + + +### Penggabungan dan peningkatan Shanghai {#merge-and-shanghai} + +Untuk menyederhanakan dan memaksimalkan fokus pada transisi yang sukses ke bukti taruhan, peningkatan Penggabungan tidak menyertakan fitur-fitur tertentu yang telah diantisipasi seperti kemampuan untuk menarik ETH yang dipertaruhkan. Fungsionalitas ini diaktifkan secara terpisah dengan peningkatan Shanghai/Capella. + +Bagi mereka yang ingin tahu, pelajari selengkapnya tentang [Apa yang Terjadi Setelah Penggabungan](https://youtu.be/7ggwLccuN5s?t=101), yang disajikan oleh Vitalik pada acara ETHGlobal April 2021. + +### Penggabungan dan pecahan {#merge-and-data-sharding} + +Awalnya, rencananya adalah mengerjakan pecahan sebelum Penggabungan untuk mengatasi skalabilitas. Namun, dengan munculnya solusi penskalaan [lapisan ke-2](/layer-2/), prioritas berubah menjadi menggantikan bukti kerja dengan bukti taruhan terlebih dahulu. + +Rencana untuk pecahan berkembang dengan cepat, tetapi dengan munculnya dan keberhasilan teknologi lapisan ke-2 untuk meningkatkan eksekusi transaksi, rencana pecahan telah bergeser untuk menemukan cara yang paling optimal untuk mendistribusikan beban penyimpanan data panggilan terkompresi dari kontrak rollup, yang memungkinkan pertumbuhan kapasitas jaringan secara eksponensial. Hal ini tidak akan mungkin terjadi tanpa terlebih dahulu beralih ke bukti taruhan. + + + Pecahan + + +## Bacaan lebih lanjut {#further-reading} + + + + diff --git a/src/content/translations/id/roadmap/merge/issuance/index.md b/public/content/translations/id/roadmap/merge/issuance/index.md similarity index 100% rename from src/content/translations/id/roadmap/merge/issuance/index.md rename to public/content/translations/id/roadmap/merge/issuance/index.md diff --git a/src/content/translations/id/roadmap/pbs/index.md b/public/content/translations/id/roadmap/pbs/index.md similarity index 100% rename from src/content/translations/id/roadmap/pbs/index.md rename to public/content/translations/id/roadmap/pbs/index.md diff --git a/public/content/translations/id/roadmap/scaling/index.md b/public/content/translations/id/roadmap/scaling/index.md new file mode 100644 index 00000000000..e0563cee8d2 --- /dev/null +++ b/public/content/translations/id/roadmap/scaling/index.md @@ -0,0 +1,47 @@ +--- +title: Penskalaan Ethereum +description: Melakukan rollup transaksi batch secara bersamaan di luar rantai, sehingga mengurangi biaya bagi pengguna. Namun, cara rollup saat ini menggunakan data saat ini terlalu mahal, sehingga membatasi seberapa murah transaksi yang bisa dilakukan. Proto-Danksharding memperbaiki hal ini. +lang: id +image: /roadmap/roadmap-transactions.png +alt: "Peta Perjalanan Ethereum" +template: roadmap +--- + +Ethereum diskalakan menggunakan [lapisan ke-2](/layer-2/#rollups) (juga dikenal sebagai rollup), yang mengumpulkan transaksi secara bersamaan dan mengirimkan hasilnya ke Ethereum. Meskipun rollup hingga delapan kali lebih murah daripada Jaringan Utama Ethereum, Anda dapat mengoptimalkan rollup lebih lanjut untuk mengurangi biaya bagi pengguna akhir. Rollup juga bergantung pada beberapa komponen terpusat yang dapat dihapus oleh pengembang saat rollup sudah matang. + + +
    +
  • Rollup hari ini ~3-8x lebih murah daripada lapisan 1 Ethereum
  • +
  • Rollup ZK akan segera menurunkan biaya sebesar ~40-100x
  • +
  • Perubahan yang akan datang pada Ethereum akan memberikan penskalaan ~100-1000x lainnya
  • +
  • Pengguna harus mendapatkan keuntungan dari transaksi berharga kurang dari $0,001
  • +
+
+ +## Membuat data lebih murah {#making-data-cheaper} + +Rollup mengumpulkan sejumlah besar transaksi, mengeksekusinya, dan mengirimkan hasilnya ke Ethereum. Hal ini menghasilkan banyak data yang harus tersedia secara terbuka sehingga siapa pun dapat melakukan transaksi untuk diri mereka sendiri dan memverifikasi bahwa operator rollup tersebut jujur. Jika seseorang menemukan ketidaksesuaian, mereka dapat mengajukan tantangan. + +### Proto-Danksharding {#proto-danksharding} + +Data rollup disimpan di Ethereum secara permanen, yang harganya mahal. Lebih dari 90% dari biaya transaksi yang dibayarkan pengguna pada rollup disebabkan oleh penyimpanan data ini. Untuk mengurangi biaya transaksi, kita dapat memindahkan data ke dalam penyimpanan 'blob' sementara yang baru. Blob lebih murah karena tidak permanen; data ini akan dihapus dari Ethereum setelah tidak lagi dibutuhkan. Menyimpan data rollup dalam jangka panjang menjadi tanggung jawab pihak-pihak yang membutuhkannya, seperti operator rollup, bursa, layanan pengindeksan, dll. Menambahkan transaksi blob ke Ethereum adalah bagian dari peningkatan yang dikenal sebagai "Proto-Danksharding". Transaksi blob diperkirakan akan dikirim dalam waktu dekat—mungkin pada akhir tahun 2023. + +Setelah transaksi blob menjadi bagian dari protokol Ethereum melalui Proto-Danksharding, maka akan dimungkinkan menambahkan banyak blob ke dalam blok Ethereum. Ini akan menjadi peningkatan substansial (>100x) pada keluaran Ethereum dan penurunan biaya transaksi. + +### Danksharding {#danksharding} + +Tahap kedua dari perluasan data blob cukup rumit karena membutuhkan metode baru untuk memeriksa data rollup yang tersedia di jaringan dan bergantung pada validator yang memisahkan tanggung jawab pembangunan blok dan proposal blok. Hal ini juga membutuhkan cara untuk membuktikan secara kriptografis bahwa validator telah memverifikasi subset data blob. + +Langkah kedua ini dikenal sebagai ["Danksharding"](/roadmap/danksharding/). Kemungkinan masih beberapa tahun lagi untuk dapat diimplementasikan secara penuh. Danksharding bergantung pada pengembangan lain seperti [pemisahan pembangunan blok dan proposal blok](/roadmap/pbs) dan desain jaringan baru yang memungkinkan jaringan secara efisien mengonfirmasi bahwa data tersedia dengan mengambil sampel beberapa kilobita secara acak dalam satu waktu, yang dikenal dengan nama [pengambilan sampel data (DAS)](/developers/docs/data-availability). + +Lebih lanjut tentang Danksharding + +## Desentralisasi rollup {#decentralizing-rollups} + +[Rollup](/layer-2) sudah menskalakan Ethereum. Ekosistem [yang kaya akan proyek rollup](https://l2beat.com/scaling/tvl) memungkinkan pengguna untuk bertransaksi dengan cepat dan murah, dengan berbagai jaminan keamanan. Namun, rollup telah di-bootstrap menggunakan sequencer terpusat (komputer yang melakukan semua pemrosesan dan agregasi transaksi sebelum mengirimkannya ke Ethereum). Hal ini rentan terhadap penyensoran, karena operator sequencer dapat dikenai sanksi, disuap, atau dikompromikan. Pada saat yang sama, [rollup bervariasi](https://l2beat.com) dalam cara mereka memvalidasi data yang masuk. Cara terbaik adalah "pemberi bukti" mengirimkan bukti kecurangan atau bukti validitas, tetapi belum semua rollup ada di sana. Bahkan rollup yang menggunakan bukti validitas/penipuan menggunakan kumpulan kecil pemberi bukti yang diketahui. Oleh karena itu, langkah penting berikutnya dalam penskalaan Ethereum adalah mendistribusikan tanggung jawab untuk menjalankan sequencer dan pembuktian kepada lebih banyak orang. + +Lebih lanjut tentang rollup + +## Kemajuan saat ini {#current-progress} + +Proto-Danksharding kemungkinan besar akan menjadi salah satu item peta perjalanan awal yang akan diimplementasikan. Langkah-langkah komputasi terdesentralisasi yang diperlukan untuk menyiapkannya sudah berjalan dan beberapa klien telah mengimplementasikan prototipe untuk menangani data blob. Danksharding penuh kemungkinan masih akan berlangsung beberapa tahun lagi, karena hal ini bergantung pada beberapa item peta perjalanan lainnya yang harus diselesaikan terlebih dahulu. Desentralisasi infrastruktur rollup kemungkinan besar akan menjadi proses yang bertahap - ada banyak rollup berbeda yang membangun sistem yang sedikit berbeda dan akan sepenuhnya terdesentralisasi dengan kecepatan yang berbeda. diff --git a/src/content/translations/id/roadmap/secret-leader-election/index.md b/public/content/translations/id/roadmap/secret-leader-election/index.md similarity index 100% rename from src/content/translations/id/roadmap/secret-leader-election/index.md rename to public/content/translations/id/roadmap/secret-leader-election/index.md diff --git a/public/content/translations/id/roadmap/security/index.md b/public/content/translations/id/roadmap/security/index.md new file mode 100644 index 00000000000..b21ec39e1d6 --- /dev/null +++ b/public/content/translations/id/roadmap/security/index.md @@ -0,0 +1,48 @@ +--- +title: Ethereum yang lebih aman +description: Ethereum merupakan platform kontrak pintar yang paling aman dan terdesentralisasi yang pernah ada. Namun, masih diperlukan perbaikan yang dapat dilakukan agar Ethereum tetap tangguh terhadap segala tingkat serangan di masa depan. +lang: id +image: /roadmap/roadmap-security.png +alt: "Peta Perjalanan Ethereum" +template: roadmap +--- + +Ethereum merupakan platform kontrak pintar yang sudah sangat aman dan terdesentralisasi. Namun, masih diperlukan perbaikan yang dapat dilakukan agar Ethereum tetap tangguh terhadap segala jenis serangan di masa depan. Ini termasuk perubahan pada cara klien Ethereum menangani blok yang bersaing, serta meningkatkan kecepatan jaringan dengan menganggap blok menjadi ["final"](/developers/docs/consensus-mechanisms/pos/#finality) (yang berarti tidak dapat diubah tanpa kerugian ekonomi yang ekstrem bagi penyerang). + +Ada juga perbaikan yang membuat sensor transaksi menjadi lebih sulit dengan membuat pengusul blok tidak dapat melihat isi sebenarnya dari blok mereka, dan cara baru untuk mengidentifikasi kapan klien melakukan sensor. Bersama-sama, perbaikan ini akan meningkatkan protokol bukti taruhan sehingga pengguna dari individu hingga korporasi memiliki kepercayaan instan pada aplikasi, data, dan aset mereka di Ethereum. + +## Penarikan penaruhan {#staking-withdrawals} + +Peningkatan dari bukti kerja ke bukti taruhan dimulai dengan para perintis Ethereum "menaruhkan" ETH mereka dalam kontrak deposit. ETH tersebut digunakan untuk melindungi jaringan. Namun, ETH tersebut belum dapat dibuka kunci dan dikembalikan kepada pengguna. Memungkinkan ETH untuk ditarik adalah bagian penting dari peningkatan bukti taruhan. Selain penarikan menjadi komponen penting dari protokol bukti taruhan yang berfungsi penuh, memungkinkan penarikan juga baik untuk keamanan Ethereum karena memungkinkan para penaruh untuk menggunakan hadiah ETH mereka untuk tujuan non-penaruhan lainnya. Ini berarti pengguna yang menginginkan likuiditas tidak harus bergantung pada derivatif penaruhan likuid (LSD) yang dapat menjadi kekuatan sentralisasi di Ethereum. Peningkatan ini dijadwalkan selesai pada 12 April 2023. + +Baca tentang penarikan + +## Bertahan dari serangan {#defending-against-attacks} + +Bahkan setelah penarikan, masih ada perbaikan yang perlu dilakukan untuk protokol [bukti taruhan](/developers/docs/consensus-mechanisms/pos/) Ethereum. Salah satunya adalah yang dikenal sebagai [lihat-gabungkan](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739) - sebuah algoritma pilihan garpu yang lebih aman dalam membuat beberapa jenis serangan yang canggih lebih sulit. + +Mengurangi waktu yang dibutuhkan Ethereum untuk menyelesaikan blok akan memberikan pengalaman pengguna yang lebih baik dan mencegah serangan "reorg" yang canggih di mana penyerang mencoba mengacak blok yang sangat baru untuk mendapatkan keuntungan atau menyensor transaksi tertentu. [**Finalitas ruang tunggal (SSF)**](/roadmap/single-slot-finality/) adalah cara untuk meminimalisir keterlambatan finalisasi. Saat ini ada 15 menit blok yang secara teoritis dapat digunakan oleh penyerang untuk mengkonfigurasi ulang validator lain. Dengan SSF, hanya ada 0. Pengguna, dari individu hingga aplikasi dan bursa, mendapat manfaat dari jaminan cepat bahwa transaksi mereka tidak akan dibatalkan, dan jaringan mendapat manfaat dengan menutup seluruh kumpulan serangan. + +Baca tentang finalitas ruang tunggal + +## Bertahan melawan sensor {#defending-against-censorship} + +Desentralisasi mencegah individu atau kelompok kecil validator menjadi terlalu berpengaruh. Teknologi penaruhan baru dapat membantu memastikan validator Ethereum tetap se-desentralisasi mungkin sekaligus melindungi mereka dari kegagalan perangkat keras, perangkat lunak, dan jaringan. Ini termasuk perangkat lunak yang membagi tanggung jawab validator di beberapa simpul. Ini dikenal sebagai **teknologi validator terdistribusi (DVT)**. Pool penaruhan mendapat insentif untuk menggunakan DVT karena memungkinkan beberapa komputer untuk berpartisipasi secara kolektif dalam validasi, menambah redundansi dan toleransi kesalahan. Ini juga membagi kunci validator di beberapa sistem, daripada memiliki operator tunggal yang menjalankan beberapa validator. Ini mempersulit operator yang tidak jujur untuk mengoordinasikan serangan terhadap Ethereum. Secara keseluruhan, ide ini adalah untuk mendapatkan manfaat keamanan dengan menjalankan validator sebagai _komunitas_ daripada sebagai individu. + +Baca tentang teknologi validator terdistribusi + +Mengimplementasikan **pemisahan pengusul-pembangun (PBS)** akan sangat meningkatkan pertahanan bawaan Ethereum terhadap sensor. PBS memungkinkan satu validator untuk membuat blok dan yang lain untuk menyiarkannya ke seluruh jaringan Ethereum. Ini memastikan bahwa keuntungan dari algoritma pembangun blok profesional yang memaksimalkan keuntungan dibagi lebih adil di seluruh jaringan, **mencegah taruhan berkonsentrasi** dengan penaruh institusional berkinerja terbaik dari waktu ke waktu. Pengusul blok dapat memilih blok paling menguntungkan yang ditawarkan oleh pasar pembangun blok. Untuk menyensor, pengusul blok harus sering memilih blok yang kurang menguntungkan, yang **tidak akan rasional secara ekonomi dan juga jelas bagi validator lain** di jaringan. + +Ada tambahan potensial untuk PBS, seperti transaksi terenkripsi dan daftar inklusi, yang dapat meningkatkan resistensi sensor Ethereum. Ini membuat pembangun blok dan pengusul tidak dapat melihat transaksi sebenarnya yang termasuk dalam blok mereka. + +Baca tentang pemisahan pengusul-pembangun + +## Melindungi validator {#protecting-validators} + +Ada kemungkinan bahwa penyerang canggih dapat mengidentifikasi validator yang akan datang dan menyerang mereka untuk mencegah mereka mengusulkan blok; ini dikenal sebagai serangan **penolakan layanan (DoS)**. Mengimplementasikan [**pemilihan pemimpin rahasia (SLE)**](/roadmap/secret-leader-election) akan melindungi dari jenis serangan ini dengan mencegah pengusul blok diketahui sebelumnya. Ini bekerja dengan terus mengacak sekumpulan komitmen kriptografi yang mewakili proposer blok kandidat dan menggunakan urutan mereka untuk menentukan validator mana yang dipilih dengan cara yang hanya diketahui oleh validator itu sendiri sebelumnya. + +Baca tentang pemilihan pemimpin rahasia + +## Kemajuan saat ini {#current-progress} + +Peningkatan keamanan di peta perjalanan berada di tahap penelitian lanjutan, tetapi tidak diharapkan akan diimplementasikan dalam waktu dekat. Langkah selanjutnya untuk view-merge, PBS, SSF, dan SLE adalah menyelesaikan spesifikasi dan mulai membangun prototipe. diff --git a/src/content/translations/id/roadmap/single-slot-finality/index.md b/public/content/translations/id/roadmap/single-slot-finality/index.md similarity index 100% rename from src/content/translations/id/roadmap/single-slot-finality/index.md rename to public/content/translations/id/roadmap/single-slot-finality/index.md diff --git a/src/content/translations/id/roadmap/statelessness/index.md b/public/content/translations/id/roadmap/statelessness/index.md similarity index 100% rename from src/content/translations/id/roadmap/statelessness/index.md rename to public/content/translations/id/roadmap/statelessness/index.md diff --git a/public/content/translations/id/roadmap/user-experience/index.md b/public/content/translations/id/roadmap/user-experience/index.md new file mode 100644 index 00000000000..62a298ab899 --- /dev/null +++ b/public/content/translations/id/roadmap/user-experience/index.md @@ -0,0 +1,36 @@ +--- +title: Meningkatkan pengalaman pengguna +description: Masih terlalu rumit untuk menggunakan Ethereum bagi kebanyakan orang. Untuk mendorong adopsi massal, Ethereum harus secara drastis menurunkan hambatan masuknya - pengguna harus mendapatkan manfaat dari akses yang terdesentralisasi, tanpa izin, dan tahan sensor ke Ethereum, tetapi harus sama mudahnya dengan menggunakan aplikasi web2 tradisional. +lang: id +image: /roadmap/roadmap-ux.png +alt: "Peta Perjalanan Ethereum" +template: roadmap +--- + +Menggunakan Ethereum perlu disederhanakan; mulai dari mengelola kunci dan dompet hingga memulai transaksi. Untuk memfasilitasi adopsi massal, Ethereum harus secara drastis meningkatkan kemudahan penggunaan, sehingga pengguna dapat merasakan akses tanpa izin dan tanpa sensor ke Ethereum dengan pengalaman tanpa gesekan dalam menggunakan aplikasi Web2. + +## Di luar frasa benih {#no-more-seed-phrases} + +Akun Ethereum dilindungi oleh sepasang kunci yang digunakan untuk mengidentifikasi akun (kunci publik) dan menandatangani pesan (kunci pribadi). Kunci pribadi seperti kata sandi utama; kunci ini memungkinkan akses penuh ke akun Ethereum. Ini adalah cara pengoperasian yang berbeda untuk orang-orang yang lebih akrab dengan bank dan aplikasi Web2 yang mengelola akun atas nama pengguna. Agar Ethereum dapat mencapai adopsi massal tanpa bergantung pada pihak ketiga yang tersentralisasi, harus ada cara yang mudah dan tanpa gesekan bagi pengguna untuk menjaga aset mereka dan tetap mengontrol data mereka tanpa harus memahami kriptografi kunci publik-pribadi dan manajemen kunci. + +Solusi untuk hal ini adalah dengan menggunakan dompet kontrak pintar untuk berinteraksi dengan Ethereum. Dompet kontrak pintar menciptakan cara untuk melindungi akun jika kuncinya hilang atau dicuri, peluang untuk deteksi dan pertahanan yang lebih baik, dan memungkinkan dompet untuk mendapatkan fungsionalitas baru. Meskipun dompet kontrak pintar sudah ada saat ini, namun masih sulit untuk dibuat karena protokol Ethereum perlu mendukungnya dengan lebih baik. Dukungan tambahan ini dikenal sebagai abstraksi akun. + +Lebih lanjut tentang abstraksi akun + +## Simpul untuk semua orang + +Pengguna yang menjalankan node tidak perlu mempercayai pihak ketiga untuk memberikan data kepada mereka, dan mereka dapat berinteraksi dengan cepat, secara pribadi, dan tanpa izin dengan rantai blok Ethereum. Namun, menjalankan simpul saat ini membutuhkan pengetahuan teknis dan ruang disk yang besar, yang berarti banyak orang harus mempercayai perantara. + +Ada beberapa peningkatan yang akan membuat menjalankan node jauh lebih mudah dan jauh lebih sedikit menggunakan sumber daya. Cara penyimpanan data akan berubah untuk menggunakan struktur yang lebih efisien dalam penggunaan ruang yang dikenal sebagai **Pohon Verkle**. Dengan [keadaan tanpa status](/roadmap/statelessness) atau [kedaluwarsa data](/roadmap/statelessness/#data-expiry), simpul Ethereum tidak perlu menyimpan salinan seluruh data keadaan Ethereum, yang secara drastis mengurangi kebutuhan ruang hard disk. [Simpul ringan](/developers/docs/nodes-and-clients/light-clients/) akan menawarkan banyak manfaat dari menjalankan simpul penuh, tetapi dapat dijalankan dengan mudah pada ponsel seluler atau dalam aplikasi browser sederhana. + +Baca tentang pohon Verkle + +Dengan peningkatan ini, hambatan untuk menjalankan sebuah simpul dikurangi menjadi nol secara efektif. Pengguna akan mendapatkan keuntungan dari akses yang aman dan tanpa izin ke Ethereum tanpa harus mengorbankan ruang disk atau CPU yang signifikan di komputer atau ponsel mereka, dan tidak perlu bergantung pada pihak ketiga untuk akses data atau jaringan ketika mereka menggunakan aplikasi. + +## Kemajuan saat ini {#current-progress} + +Dompet kontrak pintar sudah tersedia, tetapi lebih banyak peningkatan diperlukan untuk membuatnya terdesentralisasi dan tanpa izin. EIP-4337 adalah proposal matang yang tidak memerlukan perubahan apa pun pada protokol Ethereum. Kontrak pintar utama yang diperlukan untuk EIP-4337 digunakan pada bulan Maret 2023. + +Kewarganegaraan penuh masih dalam tahap penelitian dan kemungkinan masih beberapa tahun lagi untuk diimplementasikan. Ada beberapa tonggak penting dalam perjalanan menuju keadaan tanpa kewarganegaraan penuh, termasuk masa berlaku data, yang dapat diimplementasikan lebih cepat. Item-item lain dalam peta perjalanan, seperti [Pohon Verkle](/roadmap/verkle-trees/) dan [Pemisahan Pembangun Penyedia](/roadmap/pbs/), perlu diselesaikan terlebih dahulu. + +Jaringan percobaan pohon Verkle sudah aktif dan berjalan, dan fase berikutnya adalah menjalankan klien yang diaktifkan pohon Verkle pada jaringan percobaan pribadi, kemudian publik. Anda dapat membantu mempercepat kemajuan dengan menggunakan kontrak ke jaringan percobaan atau menjalankan klien jaringan percobaan. diff --git a/src/content/translations/id/roadmap/verkle-trees/index.md b/public/content/translations/id/roadmap/verkle-trees/index.md similarity index 100% rename from src/content/translations/id/roadmap/verkle-trees/index.md rename to public/content/translations/id/roadmap/verkle-trees/index.md diff --git a/src/content/translations/id/security/index.md b/public/content/translations/id/security/index.md similarity index 100% rename from src/content/translations/id/security/index.md rename to public/content/translations/id/security/index.md diff --git a/public/content/translations/id/smart-contracts/index.md b/public/content/translations/id/smart-contracts/index.md new file mode 100644 index 00000000000..2e363aa8e6b --- /dev/null +++ b/public/content/translations/id/smart-contracts/index.md @@ -0,0 +1,84 @@ +--- +title: Kontrak pintar +description: Pengantar non-teknis untuk kontrak pintar +lang: id +--- + +# Pengantar kontrak pintar {#introduction-to-smart-contracts} + +Kontrak pintar adalah blok bangunan dasar dari lapisan aplikasi Ethereum. Mereka adalah program komputer yang disimpan di rantai blok yang mengikuti logika "jika ini maka itu", dan dijamin akan dieksekusi sesuai dengan aturan yang ditentukan oleh kode-kodenya, yang tidak dapat diubah setelah dibuat. + +Nick Szabo menciptakan istilah "kontrak pintar". Pada tahun 1994, ia menulis [pengantar konsep tersebut](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html), dan pada tahun 1996 ia menulis [eksplorasi tentang apa yang bisa dilakukan oleh kontrak pintar](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). + +Szabo membayangkan pasar digital di mana proses otomatis yang aman secara kriptografis memungkinkan transaksi dan fungsi bisnis terjadi tanpa perantara yang dapat dipercaya. Kontrak pintar Ethereum membuat mimpi ini menjadi nyata. + +## Kepercayaan dalam kontrak konvensional {#trust-and-contracts} + +Salah satu masalah terbesar dengan kontrak tradisional adalah kebutuhan terhadap individu yang bertanggung jawab untuk melaksanakan hasil kontrak. + +Berikut adalah contohnya: + +Alice dan Bob sedang ikut lomba sepeda. Anggaplah Alice bertaruh $10 dengan Bob bahwa dia akan memenangkan perlombaan. Bob yakin bahwa dia akan menjadi pemenang dan setuju untuk bertaruh. Pada akhirnya, Alice menyelesaikan lomba jauh di depan Bob dan jelas menang. Tetapi Bob menolak untuk membayar taruhannya, dengan klaim bahwa Alice pasti telah berbuat kecurangan. + +Contoh konyol ini menunjukkan masalah pada kesepakatan non-pintar mana pun. Bahkan jika persyaratan dari perjanjian tersebut terpenuhi (misalnya, Anda menjadi pemenang lombanya), Anda masih harus mempercayai pihak lain untuk memenuhi perjanjian tersebut (misalnya, membayar taruhan tersebut). + +## Mesin penjual otomatis digital {#vending-machine} + +Metafora sederhana untuk kontrak pintar adalah mesin penjual, yang bekerja entah bagaimana sama dengan kontrak pintar - input yang spesifik memastikan hasil yang telah ditentukan sebelumnya. + +- Anda memilih suatu produk +- Mesin penjual menampilkan harga +- Anda membayar harganya +- Mesin penjual memverifikasi bahwa Anda membayar jumlah yang tepat +- Mesin penjual memberikan barang Anda + +Mesin penjual hanya akan mengeluarkan produk yang Anda inginkan setelah semua persyaratan dipenuhi. Jika Anda tidak memilih produk atau memasukkan uang yang cukup, mesin penjual tidak akan memberikan produk yang Anda inginkan. + +## Eksekusi otomatis {#automation} + +Manfaat utama dari kontrak pintar adalah bahwa ia menjalankan kode yang tegas dan jelas ketika kondisi tertentu terpenuhi. Tidak perlu menunggu manusia untuk menginterpretasi atau merundingkan hasilnya. Ini menghilangkan keharusan terhadap perantara yang dipercaya. + +Contohnya, Anda dapat menulis kontrak pintar yang menyimpan dana di escrow untuk seorang anak, yang memungkinkan mereka untuk menarik dana tersebut setelah tanggal tertentu. Jika mereka mencoba menarik dana sebelum tanggal tersebut, kontrak pintar tidak akan dieksekusi. Atau Anda bisa menulis kontrak yang secara otomatis memberikan Anda versi digital dari surat kepemilikan mobil ketika Anda membayar kepada dealer. + +## Hasil yang dapat diprediksi {#predictability} + +Kontrak konvensional bersifat ambigu karena mengandalkan manusia untuk mengartikan dan melaksanakannya. Sebagai contoh, dua hakim bisa saja mengartikan kontrak dengan cara yang berbeda, yang dapat menghasilkan keputusan yang inkonsisten dan hasil yang tidak adil. Kontrak pintar menghilangkan kemungkinan ini. Sebagai gantinya, kontrak pintar membuat persis dengan ketentuan yang tertulis dalam kode kontrak. Ketepatan ini berarti bahwa dengan situasi yang sama, kontrak pintar akan membuat hasil yang sama. + +## Catatan umum {#public-record} + +Kontrak pintar berguna untuk audit dan pelacakan. Karena kontrak pintar Ethereum ada di rantai blok publik, siapa pun dapat dengan cepat melacak pemindahan aset dan informasi terkait lainnya. Sebagai contoh, Anda dapat memeriksa apakah seseorang telah mengirim uang ke alamat Anda. + +## Perlindungan privasi {#privacy-protection} + +Kontrak pintar juga melindungi privasi Anda. Karena Ethereum adalah jaringan dengan nama samaran (transaksi Anda terikat secara publik ke alamat kriptografik unik, bukan identitas Anda), Anda dapat melindungi privasi Anda dari pengintai. + +## Ketentuan yang terlihat {#visible-terms} + +Akhirnya, seperti kontrak tradisional, Anda dapat memeriksa isi kontrak pintar sebelum Anda menandatanganinya (atau berinteraksi dengannya). Transparansi kontrak pintar menjamin bahwa siapa pun dapat memeriksanya secara teliti. + +## Contoh penggunaan kontrak pintar {#use-cases} + +Kontrak pintar dapat melakukan pada dasarnya segala hal yang dapat dilakukan oleh program komputer. + +Mereka dapat melakukan komputasi, membuat mata uang, menyimpan data, mencetak NFT, mengirim komunikasi dan bahkan membuat grafik. Berikut adalah beberapa contoh penggunaan populer dan nyata: + +- [Stablecoin](/stablecoins/) +- [Membuat dan mendistribusikan aset digital unik](/nft/) +- [Bursa mata uang otomatis dan terbuka](/get-eth/#dex) +- [Aktivitas game terdesentralisasi](/dapps/?category=gaming) +- [Kebijakan asuransi yang melakukan pembayaran secara otomatis](https://etherisc.com/) +- [Standar yang memungkinkan orang untuk membuat mata uang yang disesuaikan dan dapat saling beroperasi](/developers/docs/standards/tokens/) + +## Selengkapnya tentang pelajar visual? {#visual-learner} + +Tonton Finematics menjelaskan kontrak pintar: + + + +## Bacaan lebih lanjut {#further-reading} + +- [Bagaimana Kontrak Pintar Akan Mengubah Dunia](https://www.youtube.com/watch?v=pA6CGuXEKtQ) +- [Kontrak Pintar: Teknologi Rantai Blok Yang Akan Menggantikan Pengacara](https://blockgeeks.com/guides/smart-contracts/) +- [Kontrak pintar untuk pengembang](/developers/docs/smart-contracts/) +- [Belajar cara menulis kontrak pintar](/developers/learning-tools/) +- [Penguasaan Ethereum - Apa itu Kontrak Pintar?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/id/social-networks/index.md b/public/content/translations/id/social-networks/index.md new file mode 100644 index 00000000000..4f654b4d941 --- /dev/null +++ b/public/content/translations/id/social-networks/index.md @@ -0,0 +1,121 @@ +--- +title: Jaringan sosial terdesentralisasi +description: Garis besar jaringan sosial desentralisasi di Ethereum +lang: id +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: /ethereum-learn.png +summaryPoint1: Platform berbasis rantai blok untuk interaksi sosial, pembuatan konten, dan penyebaran konten. +summaryPoint2: Jaringan media sosial yang terdesentralisasi bisa melindungi privasi pengguna dan meningkatkan keamanan data. +summaryPoint3: Token dan NFT menciptakan cara baru dalam memonetisasi konten. +--- + +Jaringan sosial memainkan peran sangat penting dalam komunikasi dan interaksi kita sehari-hari. Namun, kontrol terpusat pada platform-platform ini telah menciptakan banyak masalah: pelanggaran data, gangguan server, pemblokiran, penyensoran, dan pelanggaran privasi adalah beberapa kompromi yang harus dibuat saat menggunakan media sosial. Untuk mengatasi masalah-masalah ini, para pengembang sedang membangun jaringan media sosial di Ethereum. Jaringan media sosial terdesentralisasi dapat mengatasi banyak masalah dari platform jaringan media sosial tradisional dan meningkatkan pengalaman pengguna secara keseluruhan. + +## Apa itu jaringan media sosial desentralisasi? {#what-are-decentralized-social-networks} + +Jaringan media sosial terdesentralisasi adalah platform berbasis rantai blok yang memungkinkan pengguna untuk bertukar informasi serta mempublikasikan dan mendistribusikan konten kepada audiens. Karena aplikasi-aplikasi ini berjalan di atas rantai blok, mereka mampu menjadi terdesentralisasi dan tahan terhadap sensor dan kendali yang tidak semestinya. + +Banyak jaringan media sosial terdesentralisasi ada sebagai alternatif untuk layanan media sosial yang sudah mapan, seperti Facebook, LinkedIn, Twitter, dan Medium. Namun, jaringan media sosial berbasis rantai blok memiliki sejumlah fitur yang membuatnya lebih unggul dari platform media sosial tradisional. + +### Bagaimana Jejaring Media Sosial Terdesentralisasi Bekerja? {#decentralized-social-networks-overview} + +Jaringan media sosial terdesentralisasi adalah kelas dari [aplikasi terdesentralisasi (dapps)](/dapps/)—aplikasi yang ditenagai oleh [kontrak pintar](/developers/docs/smart-contracts/) yang dideploy di rantai blok. Kode kontrak berfungsi sebagai layanan sistem pendukung jaringan untuk aplikasi-aplikasi ini dan mendefinisikan logika bisnis. + +Platform media sosial tradisional mengandalkan basis data untuk menyimpan informasi pengguna, kode program, dan bentuk data lainnya. Namun, hal ini menyebabkan satu titik kelemahan dan menciptakan risiko yang berbahaya. Sebagai contoh, server Facebook mengalami masalah dan [berhenti beroperasi selama beberapa jam](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) tahun lalu, memutus akses pengguna ke platform tersebut. + +Jaringan sosial terdesentralisasi ada di dalam jaringan peer-to-peer yang terdiri dari ribuan node di seluruh dunia. Meskipun beberapa node mengalami kegagalan, jaringan akan tetap berjalan tanpa henti, menjadikan aplikasi tahan terhadap kegagalan dan gangguan. + +Dengan menggunakan sistem penyimpanan terdesentralisasi seperti [InterPlanetary File System (IPFS)](https://ipfs.io/), jaringan sosial yang dibangun di atas Ethereum dapat melindungi informasi pengguna dari eksploitasi dan penggunaan jahat. Tidak ada yang akan menjual informasi pribadi Anda kepada pengiklan, dan peretas juga tidak akan dapat mencuri rincian rahasia Anda. + +Banyak platform sosial berbasis rantai blok memiliki token asli yang menggerakkan monetisasi dalam ketiadaan pendapatan dari iklan. Pengguna dapat membeli token ini untuk mengakses fitur-fitur tertentu, melakukan pembelian dalam aplikasi, atau memberikan tip kepada pembuat konten favorit mereka. + +## Berikut adalah beberapa manfaat dari jejaring sosial terdesentralisasi {#benefits} + +1. Jejaring sosial terdesentralisasi adalah tahan sensor dan terbuka bagi semua orang. Ini berarti pengguna tidak dapat dilarang, dihilangkan dari platform, atau dibatasi secara sewenang-wenang. + +2. Jejaring sosial terdesentralisasi dibangun dengan ideal sumber terbuka dan membuat kode sumber aplikasi tersedia untuk inspeksi publik. Dengan menghilangkan implementasi algoritma yang tidak transparan yang umumnya ada dalam media sosial tradisional, jejaring sosial berbasis rantai blok dapat menyelaraskan kepentingan pengguna dan pembuat platform. + +3. Jejaring sosial terdesentralisasi mengeliminasi peran "perantara". Para pencipta konten memiliki kepemilikan langsung atas kontennya, dan mereka berinteraksi langsung dengan pengikut, penggemar, pembeli, dan pihak lainnya, hanya melalui kontrak pintar sebagai perantara. + +4. Karena aplikasi terdesentralisasi (dapps) berjalan dalam jaringan Ethereum, yang tersedia secara global dalam jaringan simpul peer-to-peer, server jejaring sosial terdesentralisasi lebih jarang mati. + +5. Layanan jejaring media sosial terdesentralisasi menawarkan kerangka monetisasi yang lebih untuk pembuat konten, seperti token yang tidak dapat dipertukarkan (NFTs), pembayaran kripto dalam aplikasi dll. + +6. Jejaring media sosial terdesentralisasi memberi penggunanya privasi dan anonimitas yang ketat. Misalnya, seseorang bisa masuk dalam jaringan media sosial berbasis Ethereum menggunakan sebuah profil ENS atau dompet, tanpa harus menggunakan data pribadi teridentifikasi (PII), seperti nama atau alamat email dll. + +7. Jejaring media sosial terdesentralisasi menggunakan penyimpanan terdesentralisasi, bukan database terpusat, sehingga sangat bagus buat keamanan data pengguna. + +## Jaringan media sosial terdesentralisasi di Ethereum {#ethereum-social-networks} + +Jaringan Ethereum adalah jaringan yang disukai pengembang membuat media sosial terdesentralisasi karena popularitas tokennya (ERC-20/ERC-721) dan banyaknya penggunanya. Berikut contoh beberapa jejaring sosial berbasis Ethereum: + +### Peepeth {#peepeth} + +[Peepeth](https://peepeth.com/) adalah platform mikroblogging yang serupa dengan Twitter. Layanan ini berjalan di rantai blok Ethereum dan menggunakan IPFS untuk mengelola data penggunanya. + +Pengguna bisa mengirimkan pesan pendek yang disebut "Peeps", yang tidak bisa dihapus atau diubah. Anda bisa mengumpulkan tips dari siapa pun di platform dalam Ether (ETH), tanpa harus keluar dari aplikasinya. + +### Mirror {#mirror} + +[Mirror](https://mirror.xyz/) adalah layanan penulisan berbasis web3 yang ditujukan untuk terdesentralisasi dan dikelola penggunanya. Pengguna bisa membaca dan menulis dengan gratis di Mirror, hanya dengan menghubungkan dompet mereka. Pengguna juga bisa mengumpulkan tulisan dan berlangganan kepala penulis favaorit mereka. + +Tulisan yang diunggah di Mirror akan permamen dan disimpan di Arweave, layanan storage terdesentralisasi, dan bisa dicetak sebagai koleksi [token yang tidak dapat dipertukarkan (NFTs)](/nft/) yang disebut NFT berbasis Tulisan. Penulis bisa membuat NFT berbasis Tulisan dengan gratis sepenuhnya, dan koleksi akan dicetak di jaringan Ethereum L2 - yang membuat transksinya murah, cepat, dan mudah digunakan. + +### MINDS {#minds} + +[MINDS](https://www.minds.com/) adalah salah satu jejaring sosial terdesentralisasi yang paling banyak digunakan. Layanan ini seperti Facebook dan sudah meraup jutaan pengguna. + +Pengguna menggunakan token ERC-20 bawaan dari layanan ini yang disebut $MIND untuk membayar hal-hal yang diperlukan. Pengguna juga bisa mendapatkan token $MIND dengan mengunggah konten populer, berkontribusi dalam ekosistem, atau merekomendasikan layanan ini kepada temannya. + +## Jejaring Sosial Web2 di Ethereum {#web2-social-networks-and-ethereum} + +Jejaring sosial berbasis [Web3](/web3/) bukan hanya berusaha menggabungkan teknologi rantai blok ke dalam media sosial. Banyak layanan yang terpusat juga berencana menggabungkan Ethereum ke dalam infrastruktur mereka: + +### Reddit {#reddit} + +Reddit disebut [punya Community Points](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users), yang menggunakan [standar token ERC-20](/developers/docs/standards/tokens/erc-20/) dan bisa diperoleh penggunanya dengan mengunggah konten berkualitas dan berkontribusi dalam komunitas daringnya (subreddits). Anda dapat menukarkan token ini di dalam subreddit [untuk mendapatkan hak istimewa dan fasilitas eksklusif](https://www.reddit.com/community-points/). Untuk proyek ini, Reddit bekerjasama dengan Arbitrum, sebuah rollup [lapisan ke-2](/layer-2/) yang didesain untuk mengembangkan kemampuan transaksi di Ethereum. + +Proyek ini sudah berjalan, di ruang subreddit r/Mata Uang Kripto dan [token Community Points disebut dengan "Moons"](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Sesuai dengan deskripsi resminya, Moon disebut sebagai "imbalan bagi pengunggah, komentator, dan moderator untuk kontribusi mereka dalam subreddit." Karena token ini ada di rantai blok (pengguna menerimanya dalam dompet), mereka berhak dan bebas sehingga Reddit tidak bisa mengambil tokennya. + +Setelah menyelesaikan fase beta di jaringan percobaan Rinkeby, Reddit Community Points sekarang berada di [Arbitrum Nova](https://nova.arbitrum.io/), sebuah rantai blok yang menggabungkan sifat-sifat dari [rantai samping](/developers/docs/scaling/sidechains/) dan [rollup yang optimistis](/developers/docs/scaling/optimistic-rollups/). Selain menggunakan Community Points untuk mendapatkan fitur spesial, pengguna juga bisa memperjualbelikannya ke dalam mata uang fiat di bursa perdagangan. Selain itu, jumlah Community Points yang dimilik pengguna juga menunjukkan seberapa besar pengaruh mereka dalam pengambilan kebijakan di komunitas. + +### Twitter {#twitter} + +Pada Januari 2021, Twitter Blue [mulai mendukung untuk NFT](https://mashable.com/article/twitter-blue-nft-profile-picture), pengguna boleh menghubungkan dompet mereka dan memasang NFT sebagai gambar profilnya. Saat artikel ini ditulis, perusahaan media sosial ini juga sudah [mengumumkan rencana](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) mereka untuk membuat jejaring sosial yang terdesentralisasi di masa depan. + +### Instagram {#instagram} + +Pada Mei 2022, [Instagram mengumumkan mendukung NFT](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) di jaringan Ethereum dan Polygon. Pengguna bisa mengunggah NFT langsung di Instagram dengan cara menghubungkan dompet Ethereum mereka. + +## Contoh-contoh jejaring sosial terdesentralisasi {#use-decentralized-social-networks} + +- **[Status.im](https://status.im/)** - _Status adalah aplikasi pesan instan yang aman, sumber terbuka, menggunakan protokol peer-to-peer, dan enkripsi end-to-end untuk melindungi pesan dari pihak ketiga._ +- **[Mirror.xyz](https://mirror.xyz/)** - _Mirror adalah platform penerbitan terdesentralisasi milik pengguna yang dibangun di atas Ethereum bagi pengguna untuk melakukan crowdfunding ide, memonetisasi konten, dan membangun komunitas bernilai tinggi._ +- **[Lens Protocol](https://lens.xyz/)** - _Lens Protocol adalah layanan social graph yang dapat disusun dan terdesentralisasi yang membantu kreator menguasai konten mereka, di manapun mereka berada selama ada di internet yang terdesentralisasi._ +- **[Farcaster](https://farcaster.xyz/)** - _Farcaster adalah jejaring sosial yang cukup terdesentralisasi. Ini adalah protokol terbuka yang dapat mendukung banyak klien, sama seperti email._ + +## Bacaan lebih lanjut {#further-reading} + +### Artikel {#articles} + +- [Mendesentralisasi media sosial: panduan tentang kumpulan sosial web3](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _Coinbase Ventures_ +- [Jejaring Sosial Adalah Peluang Desentralisasi Besar Berikutnya](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Goertzel_ +- [Web3 menjanjikan jejaring sosial yang terdesentralisasi dan didukung komunitas](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ +- [Gambaran Lanskap Media Sosial Rantai Blok](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ +- [Bagaimana Rantai Blok Dapat Menyelesaikan Masalah Privasi Media Sosial](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Prableen Bajpai_ +- [Jaringan Media Sosial Akan Datang ke Rantai Blok](https://businesstechguides.co/what-are-decentralized-social-networks) — _Emmanuel Awosika_ +- [Desentralisasi yang Cukup untuk Jaringan Media Sosial](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Varun Srinivasan_ + +### Video {#videos} + +- [Pengertian Media Sosial Terdesentralisasi](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ +- [Rantai Blok DeSo Ingin Mendesentralisasi Media Sosial](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ +- [Masa Depan Media Sosial Terdesentralisasi dengan Balaji Srinivasan, Vitalik Buterin, Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ + +### Komunitas {#communities} + +- [Status Server Discord](https://discord.com/invite/3Exux7Y) +- [Mirror Server Discord](https://discord.com/invite/txuCHcE8wV) +- [r/Mata Uang Kripto subreddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/id/staking/dvt/index.md b/public/content/translations/id/staking/dvt/index.md similarity index 100% rename from src/content/translations/id/staking/dvt/index.md rename to public/content/translations/id/staking/dvt/index.md diff --git a/public/content/translations/id/staking/pools/index.md b/public/content/translations/id/staking/pools/index.md new file mode 100644 index 00000000000..b86804e3e87 --- /dev/null +++ b/public/content/translations/id/staking/pools/index.md @@ -0,0 +1,85 @@ +--- +title: Penaruhan dari pengumpulan +description: Gambaran umum mengenai bagaimana cara memulai penaruhan untuk ETH dikumpulkan +lang: id +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-pool.png +alt: Leslie si Badak sedang berenang di kolam. +sidebarDepth: 2 +summaryPoints: + - Pasang taruhan dan dapatkan hadiah sejumlah berapa pun ETH dengan bergabung dalam tim dengan yang lain + - Lewati bagian yang susah dan percayakan kegiatan validator pada pihak ketiga + - Pegang penaruhan token di dompet Anda sendiri +--- + +## Apa itu pool penaruhan? {#what-are-staking-pools} + +Pool penaruhan adalah pendekatan kolaboratif yang memungkinkan banyak orang dengan jumlah ETH yang lebih kecil untuk mendapatkan 32 ETH yang diperlukan untuk mengaktifkan satu set kunci validator. Fungsionalitas pooling tidak didukung secara asli dalam protokol, sehingga solusi-solusi dibangun secara terpisah untuk mengatasi kebutuhan ini. + +Beberapa pool beroperasi menggunakan kontrak pintar, di mana dana dapat disimpan ke dalam kontrak, yang mengelola dan melacak taruhan Anda dengan aman, dan mengeluarkan token yang mewakili nilai tersebut. Pool lain mungkin tidak melibatkan kontrak pintar dan justru diatasi di luar rantai. + +## Mengapa melakukan taruhan dengan pool? {#why-stake-with-a-pool} + +Selain manfaat yang kami sebutkan dalam [pengantar tentang penaruhan](/staking/), melakukan penaruhan dengan pool memiliki sejumlah manfaat yang berbeda. + + + + + + + + + +## Apa yang perlu ditentukan {#what-to-consider} + +Pooled atau penaruhan yang didelegasikan tidak didukung oleh protokol Ethereum, tetapi mengingat permintaan pengguna untuk mempertaruhkan kurang dari 32 ETH, semakin banyak solusi yang dibuat untuk melayani permintaan ini. + +Setiap pool dan pearngkat atau kontrak pintar yang mereka gunakan telah dibangun oleh tim yang berbeda, dan masing-masing memiliki keuntungan dan risiko. Pool memungkinkan pengguna menukarkan ETH mereka dengan token yang mewakili ETH yang telah ditaruhkan. Token ini berguna karena memungkinkan pengguna untuk menukar sejumlah ETH dengan jumlah yang setara dengan token hasil yang menghasilkan imbal hasil dari imbalan penaruhan yang diterapkan pada ETH yang ditaruhkan (dan sebaliknya) pada bursa terpusat meskipun ETH yang sebenarnya tetap ditaruhkan pada lapisan konsensus. Ini berarti pertukaran bolak-balik dari produk ETH yang ditaruhkan yang menghasilkan hasil dan "ETH mentah" cepat, mudah, dan tidak hanya tersedia dalam kelipatan 32 ETH. + +Namun, token ETH yang dipertaruhkan ini cenderung menciptakan perilaku seperti kartel di mana sejumlah besar ETH yang dipertaruhkan berakhir di bawah kendali beberapa organisasi terpusat daripada tersebar di banyak individu independen. Hal ini menciptakan kondisi untuk sensor atau ekstraksi nilai. Standar emas untuk penaruhan seharusnya selalu individu menjalankan validator di perangkat keras mereka sendiri jika memungkinkan. + +[Lebih lanjut tentang risiko token penaruhan](https://notes.ethereum.org/@djrtwo/risks-of-lsd). + +Indikator atribut digunakan di bawah ini untuk menandakan kekuatan atau kelemahan yang mencolok yang mungkin dimiliki oleh pool penaruhan yang terdaftar. Gunakan bagian ini sebagai referensi untuk bagaimana kami mendefinisikan atribut ini ketika Anda memilih pool untuk bergabung. + + + +## Eksplorasi pool penaruhan {#explore-staking-pools} + +Terdapat berbagai pilihan yang tersedia untuk membantu Anda dengan pengaturan Anda. Gunakan petunjuk di atas untuk membantu Anda memandu melalui perangkat di bawah ini. + + + + + +Harap perhatikan pentingnya memilih layanan yang serius mengenai [diversitas klien](/developers/docs/nodes-and-clients/client-diversity/), karena ini meningkatkan keamanan jaringan dan membatasi risiko Anda. Layanan-layanan yang memiliki bukti pembatasan penggunaan mayoritas klien ditandai dengan "diversitas klien eksekusi" dan "diversitas klien konsensus." + +Punya saran untuk alat penaruhan yang kami lewatkan? Lihat [kebijakan daftar produk](/contributing/adding-staking-products/) kami untuk melihat apakah cocok, dan untuk mengirimkannya untuk ditinjau. + +## Pertanyaan yang sering diajukan {#faq} + + +Biasanya token penaruhan ERC-20 dikeluarkan untuk para penaruh yang mewakili nilai ETH yang mereka pertaruhkan ditambah hadiah. Perlu diingat bahwa berbagai pool akan mendistribusikan imbalan penaruhan kepada pengguna mereka melalui metode yang sedikit berbeda, tetapi tema umum ini tetap sama. + + + +Sekarang juga! Peningkatan jaringan Shanghai/Capella terjadi pada April 2023 dan memperkenalkan penarikan penaruhan. Akun validator yang mendukung pool penaruhan sekarang memiliki kemampuan untuk keluar dan menarik ETH ke alamat penarikan yang ditentukan. Ini memungkinkan Anda untuk menebus bagian Anda dari taruhan menjadi ETH yang mendasarinya. Periksa dengan penyedia Anda untuk melihat bagaimana mereka mendukung fungsionalitas ini. + +Sebagai alternatif, pool yang menggunakan token penaruhan ERC-20 memungkinkan pengguna untuk memperdagangkan token ini di pasar terbuka, sehingga Anda dapat menjual posisi penaruhan Anda, secara efektif "menarik diri" tanpa benar-benar menghapus ETH dari kontrak penaruhan. + +Lebih lanjut tentang penarikan penaruhan + + + +Terdapat banyak kesamaan antara pilihan pooled penaruhan ini dengan bursa terpusat, seperti kemampuan untuk melakukan penaruhan dengan jumlah ETH yang kecil dan menggabungkannya bersama untuk mengaktifkan validator. + +Tidak seperti bursa terpusat, banyak opsi penaruhan gabungan lainnya menggunakan kontrak pintar dan/atau token penaruhan, yang biasanya berupa token ERC-20 yang dapat disimpan di dompet Anda sendiri, dan dibeli atau dijual seperti token lainnya. Hal ini memberikan lapisan kedaulatan dan keamanan dengan memberikan Anda kendali atas token Anda, tetapi tetap tidak memberikan Anda kendali langsung atas klien validator yang membuktikan tanda tangan atas nama Anda di latar belakang. + +Beberapa pilihan pooling lebih terdesentralisasi daripada yang lain dalam hal simpul yang mendukungnya. Untuk mendorong kesehatan dan desentralisasi jaringan, para penaruh selalu didorong untuk memilih layanan pooling yang memungkinkan set kelompok simpul operator yang terdesentralisasi dan tanpa izin. + + +## Bacaan lebih lanjut {#further-reading} + +- [Penruhan dengan Rocket Pool - Ikhtisar Penaruhan](https://docs.rocketpool.net/guides/staking/overview.html) - _Dokumentasi RocketPool_ +- [Penaruhan Ethereum dengan Lido](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Dokumentasi bantuan Lido_ diff --git a/public/content/translations/id/staking/saas/index.md b/public/content/translations/id/staking/saas/index.md new file mode 100644 index 00000000000..6b5087cbf88 --- /dev/null +++ b/public/content/translations/id/staking/saas/index.md @@ -0,0 +1,94 @@ +--- +title: Penaruhan sebagai layanan +description: Gambaran umum mengenai bagaimana cara memulai staking untuk pooled ETH +lang: id +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-saas.png +alt: Leslie si badak mengapung di awan. +sidebarDepth: 2 +summaryPoints: + - Operator simpul pihak ketiga menangani operasi dari klien validator Anda + - Pilihan yang bagus bagi siapa pun yang memiliki 32 ETH dan tidak merasa nyaman menghadapi kompleksitas teknis dalam menjalankan simpul + - Mengurangi kepercayaan, dan tetap memegang kendali kunci penarikan Anda +--- + +## Apa yang dimaksud dengan penaruhan sebagai layanan? {#what-is-staking-as-a-service} + +Penaruhan sebagai layanan ("SaaS") merupakan kategori layanan penguncian di mana Anda menyetor sendiri 32 ETH untuk validator, tetapi menugaskan operasi simpul kepada operator pihak ketiga. Proses ini biasanya melibatkan panduan dalam pengaturan awal, termasuk pembuatan kunci dan setoran, kemudian menampilkan kunci tanda tangan Anda ke operator. Ini memungkinkan layanan tersebut menggunakan validator Anda atas nama Anda, biasanya dengan membayar biaya bulanan. + +## Mengapa melakukan taruhan dengan layanan? {#why-stake-with-a-service} + +Protokol Ethereum tidak secara asli mendukung delegasi taruhan, sehingga layanan-layanan ini dibangun untuk memenuhi permintaan tersebut. Jika Anda memiliki 32 ETH untuk taruhan, namun tidak merasa nyaman menghadapi perangkat keras, layanan SaaS memungkinkan Anda menugaskan bagian yang sulit sementara Anda mendapatkan imbalan blok asli. + + + + + + + + + +## Apa yang perlu ditentukan {#what-to-consider} + +Ada semakin banyak penyedia SaaS yang dapat membantu Anda melakukan taruhan ETH, tetapi setiap penyedia memiliki manfaat dan risikonya sendiri. Semua pilihan layanan SaaS memerlukan keyakinan tambahan dibandingkan dengan penaruhan di beranda. Opsi Saas mungkin memiliki kode tambahan yang melingkupi klien Ethereum yang tidak terbuka atau dapat diaudit. SaaS juga berdampak buruk pada desentralisasi jaringan. Tergantung pada pengaturan, Anda mungkin tidak mengendalikan validator Anda - operator dapat bertindak tidak jujur dengan menggunakan ETH Anda. + +Indikator atribut digunakan di bawah ini untuk menandakan kekuatan atau kelemahan yang mencolok yang mungkin dimiliki oleh penyedia SaaS yang terdaftar. Gunakan bagian ini sebagai referensi untuk bagaimana kami mendefinisikan atribut-atribut ini saat Anda memilih layanan untuk membantu perjalanan penaruhan Anda. + + + +## Eksplorasi penyedia layanan penaruhan {#saas-providers} + +Berikut adalah beberapa penyedia layanan SaaS yang tersedia. Gunakan indikator-indikator di atas untuk membantu memandu Anda melalui layanan-layanan ini + + + +### Penyedia layanan SaaS + + + +Harap perhatikan pentingnya mendukung [diversitas klien](/developers/docs/nodes-and-clients/client-diversity/) karena ini meningkatkan keamanan jaringan, dan membatasi risiko Anda. Layanan-layanan yang memiliki bukti pembatasan penggunaan mayoritas klien ditandai dengan "diversitas klien eksekusi" dan "diversitas klien konsensus." + +### Pembangkit Kunci + + + +Punya saran untuk penyedia penaruhan sebagai layanan yang kami lewatkan? Lihat [kebijakan daftar produk](/contributing/adding-staking-products/) kami untuk melihat apakah cocok, dan untuk mengirimkannya untuk ditinjau. + +## Pertanyaan yang sering diajukan {#faq} + + +Perjanjian akan berbeda dari penyedia ke penyedia, tetapi umumnya Anda akan dipandu melalui pengaturan kunci tanda tangan yang Anda butuhkan (satu per 32 ETH), dan mengunggahnya ke penyedia Anda agar mereka dapat memvalidasi atas nama Anda. Kunci tanda tangan sendiri tidak memberikan kemampuan untuk menarik, mentransfer, atau menghabiskan dana Anda. Namun, kunci tanda tangan juga memberikan kemampuan untuk memberikan suara terhadap konsensus, yang jika tidak dilakukan dengan benar dapat mengakibatkan hukuman offline atau pemotongan. + + + +Ya. Setiap akun terdiri dari kunci BLS untuk tanda tangan dan kunci BLS untuk penarikan. Agar seorang validator dapat memberikan tanda tangan atas keadaan jaringan, berpartisipasi dalam komite sinkronisasi, dan mengajukan blok, kunci tanda tangan harus mudah diakses oleh klien validator. Kunci-kunci ini harus terhubung ke internet dalam bentuk tertentu, dan oleh karena itu secara inheren dianggap sebagai kunci "panas" (hot keys). Ini merupakan persyaratan agar validator Anda dapat memberikan tanda tangan, dan oleh karena itu kunci yang digunakan untuk mentransfer atau menarik dana dipisahkan karena alasan keamanan. + +Kunci penarikan BLS digunakan untuk menandatangani pesan satu kali yang menyatakan akun lapisan eksekusi mana yang harus menerima imbalan penaruhan dan dana yang ditarik. Setelah pesan ini disiarkan, kunci penarikan BLS tidak lagi diperlukan. Sebagai gantinya, kendali atas dana yang ditarik secara permanen didelegasikan ke alamat yang Anda berikan. Hal ini memungkinkan Anda untuk mengatur alamat penarikan yang diamankan melalui penyimpanan dingin (cold storage) milik Anda sendiri, meminimalkan risiko terhadap dana validator Anda, bahkan jika orang lain mengontrol kunci tanda tangan validator Anda. + +Memperbarui kredensial penarikan adalah langkah yang diperlukan untuk mengaktifkan penarikan\*. Proses ini melibatkan pembuatan kunci penarikan dengan menggunakan frase benih mnemonik Anda. + +Pastikan Anda mencadangkan frase benih ini dengan aman, jika tidak Anda tidak akan dapat menghasilkan kunci penarikan Anda saat waktunya tiba. + +\*Penaruh yang telah menyediakan alamat penarikan pada saat deposit awal tidak perlu mengatur ini. Hubungi penyedia SaaS Anda untuk mendapatkan dukungan mengenai cara menyiapkan validator Anda. + + + +Penarikan penaruhan diimplementasikan dalam peningkatan Shanghai/Capella pada April 2023. Para penaruh perlu menyediakan alamat penarikan (jika tidak disediakan saat deposit awal), dan pembayaran imbalan akan mulai didistribusikan secara otomatis secara berkala setiap beberapa hari. + +Para validator juga dapat sepenuhnya keluar sebagai validator, yang akan membuka kunci saldo ETH mereka yang tersisa untuk penarikan. Akun yang telah menyediakan alamat penarikan eksekusi dan menyelesaikan proses keluar akan menerima seluruh saldo mereka ke alamat penarikan yang disediakan selama sweep validator berikutnya. + +Lebih lanjut tentang penarikan penaruhan + + + +Dengan menggunakan penyedia SaaS, Anda mempercayakan operasi simpul Anda kepada pihak lain. Ini membawa risiko kinerja simpul yang buruk, yang tidak berada dalam kendali Anda. Jika validator Anda terkena pemotongan, saldo validator Anda akan dikenai hukuman dan secara paksa dihapus dari pool validator. + +Setelah selesai proses pemotongan hadiah/keluar, dana tersebut akan ditransfer ke alamat penarikan yang ditetapkan untuk validator tersebut. Ini memerlukan menyediakan alamat penarikan untuk diaktifkan. Alamat penarikan mungkin telah disediakan saat deposit awal. Jika tidak, kunci penarikan validator harus digunakan untuk menandatangani pesan yang menyatakan alamat penarikan. Jika tidak ada alamat penarikan yang disediakan, dana akan tetap terkunci sampai alamat penarikan diberikan. + +Hubungi penyedia SaaS secara individu untuk mendapatkan informasi lebih lanjut tentang jaminan atau opsi asuransi, dan petunjuk tentang cara menyediakan alamat penarikan. Jika Anda lebih suka memiliki kendali penuh atas pengaturan validator Anda, pelajari lebih lanjut tentang cara melakukan taruhan solo untuk ETH. + + +## Bacaan lebih lanjut {#further-reading} + +- [Menilai Layanan Penaruhan](https://www.attestant.io/posts/evaluating-staking-services/) - _Jim McDonald 2020_ diff --git a/public/content/translations/id/staking/solo/index.md b/public/content/translations/id/staking/solo/index.md new file mode 100644 index 00000000000..fe6b8596f0e --- /dev/null +++ b/public/content/translations/id/staking/solo/index.md @@ -0,0 +1,204 @@ +--- +title: Lakukan taruhan solo untuk ETH Anda +description: Berikut adalah gambaran buat kamu cara memulai solo penaruhan ETH +lang: id +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-solo.png +alt: Leslie seekor badak dengan komputer chipnya sendiri. +sidebarDepth: 2 +summaryPoints: + - Terima imbalan maksimum langsung dari protokol dengan menjaga validator Anda berfungsi dengan baik dan tetap daring + - Jalankan perangkat keras di beranda dan secara pribadi berkontribusi pada keamanan dan desentralisasi jaringan Ethereum + - Hapus kepercayaan, dan jangan pernah menyerahkan kendali atas kunci dana Anda +--- + +## Apa yang dimaksud solo penaruhan? {#what-is-solo-staking} + +Solo penaruhan adalah tindakan [menjalankan simpul Ethereum](/run-a-node/) yang terhubung ke internet dan mendepositkan 32 ETH untuk mengaktifkan [validator](#faq), memberi Anda kemampuan untuk berpartisipasi secara langsung dalam konsensus jaringan. + +**Solo penaruhan meningkatkan desentralisasi jaringan Ethereum**, menjadikan Ethereum lebih tahan sensor dan tangguh terhadap serangan. Metode penaruhan lain mungkin tidak membantu jaringan dengan cara yang sama. Penaruhan solo adalah pilihan staking terbaik untuk mengamankan Ethereum. + +Sebuah simpul Ethereum terdiri dari klien lapisan eksekusi (EL) dan juga klien lapisan konsensus (CL). Klien-klien ini adalah perangkat lunak yang bekerja bersama, bersama dengan seperangkat kunci tanda tangan yang sah, untuk memverifikasi transaksi dan blok, memberikan kesaksian terhadap kepala rantai yang benar, menggabungkan kesaksian, dan mengajukan blok. + +Para penaruh solo bertanggung jawab atas mengoperasikan perangkat keras yang diperlukan untuk menjalankan klien-klien ini. Sangat disarankan untuk menggunakan mesin khusus untuk ini yang Anda operasikan dari beranda - ini sangat bermanfaat untuk kesehatan jaringan. + +Seorang penaruh solo menerima imbalan langsung dari protokol karena menjaga validator mereka berfungsi dengan baik dan tetap daring. + +## Mengapa taruhan solo? {#why-stake-solo} + +Penaruhan solo membawa tanggung jawab lebih besar tetapi memberikan Anda kendali maksimal atas dana dan pengaturan penaruhan Anda. + + + + + + + +## Pertimbangan sebelum melakukan penaruhan solo {#considerations-before-staking-solo} + +Seberapa pun kita berharap bahwa penaruhan solo dapat diakses dan bebas risiko bagi semua orang, kenyataannya tidak demikian. Ada beberapa pertimbangan praktis dan serius yang perlu diingat sebelum memutuskan untuk melakukan taruhan solo pada ETH Anda. + + + +Ketika mengoperasikan simpul Anda sendiri, Anda sebaiknya menghabiskan waktu untuk mempelajari cara menggunakan perangkat lunak yang telah Anda pilih. Hal ini melibatkan membaca dokumentasi yang relevan dan memperhatikan saluran komunikasi tim pengembang tersebut. + +Semakin Anda memahami tentang perangkat lunak yang Anda jalankan dan bagaimana bukti penaruhan bekerja, semakin minim risikonya sebagai penaruh, dan semakin mudah memperbaiki masalah yang mungkin muncul sepanjang jalan sebagai operator simpul. + + + +Pengaturan simpul memerlukan tingkat kenyamanan yang wajar saat bekerja dengan komputer, meskipun perangkat baru membuat ini menjadi lebih mudah seiring berjalannya waktu. Memahami antarmuka baris perintah bermanfaat, tetapi tidak lagi mutlak diperlukan. + +Ini juga memerlukan pengaturan perangkat keras yang sangat dasar, dan pemahaman tentang spesifikasi minimum yang direkomendasikan. + + + +Sama seperti kunci pribadi yang mengamankan alamat Ethereum Anda, Anda perlu menghasilkan kunci-kunci khusus untuk validator Anda. Anda harus memahami bagaimana cara menjaga frasa benih atau kunci pribadi tetap aman dan terlindungi.{' '} + +Keamanan Ethereum dan pencegahan penipuan + + + +Perangkat keras kadang-kadang mengalami kegagalan, koneksi jaringan terputus, dan perangkat lunak klien kadang-kadang perlu ditingkatkan. Pemeliharaan simpul tidak terhindarkan dan kadang-kadang akan memerlukan perhatian Anda. Anda akan ingin memastikan Anda tetap sadar akan semua peningkatan jaringan yang diantisipasi, atau peningkatan klien penting lainnya. + + + +Imbalan Anda sebanding dengan waktu validator Anda daring dan memberikan pembuktian dengan benar. Waktu tidak aktif menimbulkan hukuman sebanding dengan berapa banyak validator lain yang sedang offline pada saat yang sama, tetapi tidak mengakibatkan pemotongan. Lebar pita juga penting, karena imbalan dikurangi untuk pembuktian yang tidak diterima tepat waktu. Persyaratan akan bervariasi, tetapi disarankan memiliki setidaknya kecepatan unggah dan unduh 10 Mb/dtk. + + + +Berbeda dari hukuman ketidakaktifan karena offline, pemotongan merupakan hukuman yang jauh lebih serius yang diberikan untuk pelanggaran yang bersifat jahat. Dengan menjalankan klien minoritas dengan kunci Anda dimuat hanya pada satu mesin pada satu waktu, risiko pemotongan slashed Anda diminimalkan. Dengan demikian, semua staker harus menyadari risiko pemotongan. + + Lebih lanjut tentang pemotongan dan siklus validator + + + + + +## Cara kerjanya {#how-it-works} + + + +Saat aktif, Anda akan mendapatkan rewards ETH, yang akan secara berkala disetor ke alamat penarikan Anda. + +Jika diinginkan, Anda dapat keluar sebagai validator yang menghilangkan keharusan untuk daring, dan menghentikan segala hadiah lebih lanjut. Saldo Anda yang tersisa akan ditarik ke alamat penarikan yang Anda tentukan saat pengaturan. + +[Lebih lanjut tentang penarikan penaruhan](/staking/withdrawals/) + +## Mulai di Landasan Peluncuran Penaruhan {#get-started-on-the-staking-launchpad} + +Landasan Peluncuran Penaruhan adalah aplikasi sumber terbuka yang akan membantu Anda menjadi seorang penaruh. Aplikasi ini akan membimbing Anda dalam memilih klien, menghasilkan kunci Anda, dan mendepositkan ETH Anda ke kontrak deposit penaruhan. Daftar periksa disediakan untuk memastikan Anda telah mencakup semua yang diperlukan untuk mengatur validator dengan aman. + + + +## Apa yang perlu dipertimbangkan dalam perangkat pengaturan simpul dan klien {#node-tool-considerations} + +Ada sejumlah perangkat dan layanan yang semakin banyak membantu Anda untuk melakukan taruhan solo ETH, tetapi masing-masing memiliki risiko dan manfaat yang berbeda. + +Indikator atribut digunakan di bawah ini untuk menandakan kekuatan atau kelemahan yang signifikan yang mungkin dimiliki oleh perangkat penaruhan yang terdaftar. Gunakan bagian ini sebagai referensi untuk cara kami mendefinisikan atribut-atribut ini saat Anda memilih perangkat membantu perjalanan penaruhan Anda. + + + +## Jelajahi perangkat pengaturan simpul dan klien {#node-and-client-tools} + +Terdapat berbagai pilihan yang tersedia untuk membantu Anda dengan pengaturan Anda. Gunakan petunjuk di atas untuk membantu Anda memandu melalui perangkat di bawah ini. + + + +### Perangkat simpul + + + +Harap perhatikan pentingnya memilih [klien minoritas](/developers/docs/nodes-and-clients/client-diversity/) karena ini meningkatkan keamanan jaringan dan membatasi risiko Anda. Perangkat yang memungkinkan Anda mengatur klien minoritas ditandai sebagai "multi-klien." + +### Pembangkit Kunci + +Perangkat ini dapat digunakan sebagai alternatif untuk [CLI Deposit Penaruhan](https://github.com/ethereum/staking-deposit-cli/) untuk membantu dalam pembuatan kunci. + + + +Punya saran untuk alat penaruhan yang kami lewatkan? Lihat [kebijakan daftar produk](/contributing/adding-staking-products/) kami untuk melihat apakah cocok, dan untuk mengirimkannya untuk ditinjau. + +## Jelajahi panduan penaruhan solo {#staking-guides} + + + +## Pertanyaan yang sering diajukan {#faq} + +Berikut adalah beberapa pertanyaan umum tentang penaruhan yang layak diketahui. + + + +Seorang validator adalah entitas virtual yang ada di Ethereum dan berpartisipasi dalam konsensus protokol Ethereum. Validator direpresentasikan oleh saldo, kunci publik, dan properti lainnya. Sebuah validator klien adalah perangkat lunak yang bertindak atas nama validator dengan menyimpan dan menggunakan kunci pribadinya. Satu klien validator tunggal dapat menyimpan banyak pasangan kunci, mengendalikan banyak validator. + + + + +Setiap pasangan kunci yang terkait dengan validator memerlukan persis 32 ETH untuk diaktifkan. Penambahan ETH lebih banyak ke satu set kunci tidak meningkatkan potensi imbalankarena setiap validator dibatasi oleh saldo efektif 32 ETH. Ini berarti bahwa penaruhan dilakukan dalam penambahan 32 ETH, masing-masing dengan set kunci dan saldo yang terpisah. + +Jangan meletakkan lebih dari 32 ETH untuk satu validator. Ini tidak akan meningkatkan imbalan Anda. Jika alamat penarikan telah diatur untuk validator, dana yang berlebihan di atas 32 ETH akan secara otomatis ditarik ke alamat ini selama pembersihan validator berikutnya. + +Jika penaruhan solo terlalu menantang bagi Anda, pertimbangkan untuk menggunakan penyedia staking-as-a-service, atau jika Anda memiliki kurang dari 32 ETH, lihatlah pool penaruhan. + + + +Mengalami kehilangan koneksi saat jaringan sedang berjalan dengan baik dan stabil TIDAK akan mengakibatkan pemotongan. Denda kecil akibat ketidakaktifan (inactivity penalties) dikenakan jika validator Anda tidak tersedia untuk mengesahkan dalam suatu jangka waktu tertentu (setiap 6,4 menit), namun ini sangat berbeda dengan pemotongan. Denda ini sedikit lebih rendah daripada imbalan yang akan Anda peroleh jika validator tersedia untuk mengesahkan, dan kerugian dapat dikembalikan dengan waktu daring yang sekitar sama lamanya. + +Perlu dicatat bahwa denda atas ketidakaktifan berbanding lurus dengan jumlah validator yang tidak aktif pada saat bersamaan. Dalam kasus di mana sebagian besar jaringan tidak aktif secara bersamaan, denda untuk masing-masing validator ini akan lebih besar daripada saat satu validator tidak tersedia. + +Dalam kasus ekstrem di mana jaringan berhenti untuk mengkonfirmasi hasil akhir akibat lebih dari sepertiga validator tidak aktif, pengguna ini akan mengalami apa yang dikenal sebagai kebocoran inaktivitas kuadratik, yang merupakan pengurasan eksponensial ETH dari akun validator yang tidak aktif. Ini memungkinkan jaringan untuk akhirnya pulih sendiri dengan membakar ETH dari validator yang tidak aktif hingga saldo mereka mencapai 16 ETH, pada saat itu mereka akan secara otomatis dikeluarkan dari kolam validator. Validator yang tetap daring akhirnya akan terdiri dari lebih dari 2/3 dari jaringan lagi, memenuhi supermayoritas yang diperlukan untuk sekali lagi mengesahkan rantai. + + + +Secara singkat, ini tidak dapat dijamin sepenuhnya, tetapi jika Anda bertindak dengan itikad baik, menjalankan klien minoritas, dan hanya menyimpan kunci tanda tangan Anda di satu mesin pada satu waktu, risiko terkena potongan hampir nol. + +Hanya ada beberapa cara khusus yang dapat menyebabkan seorang validator terkena potongan dan dikeluarkan dari jaringan. Pada saat penulisan ini, pemotongan yang terjadi secara eksklusif merupakan hasil dari pengaturan perangkat keras yang berlebihan di mana kunci tanda tangan disimpan di dua mesin terpisah sekaligus. Ini dapat secara tidak sengaja mengakibatkan suara ganda dari kunci Anda, yang merupakan pelanggaran yang dapat mengakibatkan pemotongan. + +Menjalankan klien supermayoritas (klien yang digunakan oleh lebih dari 2/3 jaringan) juga memiliki risiko potensial pemotongan jika klien ini memiliki bug yang mengakibatkan terjadinya garpu pada rantai. Hal ini dapat mengakibatkan garpu yang cacat dan kemudian di-finalisasi. Untuk kembali ke rantai yang dimaksud, diperlukan pengajuan surround vote dengan mencoba untuk mengembalikan blok yang telah di-finalisasi. Ini juga merupakan tindakan yang dapat menyebabkan pemotongan dan dapat dihindari dengan menjalankan klien minoritas. + +Bugs serupa dalam klien minoritas tidak akan pernah difinalisasi dan oleh karena itu tidak akan mengakibatkan suara perkeliling, dan hanya akan mengakibatkan hukuman ketidakaktifan, bukan pemotongan. + + + + + +Masing-masing klien dapat memiliki perbedaan sedikit dalam hal kinerja dan antarmuka pengguna, karena masing-masing dikembangkan oleh tim yang berbeda menggunakan berbagai bahasa pemrograman. Meskipun demikian, tidak ada yang dianggap sebagai "terbaik." Semua klien produksi adalah perangkat lunak yang sangat baik, yang semuanya melakukan fungsi inti yang sama untuk menyinkronkan dan berinteraksi dengan rantai blok. + +Karena semua klien produksi menyediakan fungsionalitas dasar yang sama, sebenarnya sangat penting bagi Anda untuk memilih klien minoritas, yang berarti klien mana pun yang TIDAK sedang digunakan oleh sebagian besar validator di jaringan. Hal ini mungkin terdengar kontraproduktif, tetapi menjalankan klien mayoritas atau supermayoritas meningkatkan risiko Anda terkena pemotongan jika terjadi bug pada klien tersebut. Menjalankan klien minoritas secara signifikan mengurangi risiko tersebut. + +Pelajari lebih lanjut mengenai mengapa keragaman klien sangat penting di sini + + + +Meskipun server pribadi virtual (VPS) dapat digunakan sebagai pengganti perangkat keras di beranda, akses fisik dan lokasi klien validator Anda memang penting. Solusi cloud terpusat seperti Amazon Web Services atau Digital Ocean memungkinkan kenyamanan tanpa harus mendapatkan dan mengoperasikan perangkat keras, dengan biaya sentralisasi jaringan. + +Semakin banyak klien validator yang berjalan pada satu solusi penyimpanan cloud terpusat, semakin berbahaya bagi pengguna-pengguna ini. Setiap kejadian yang membuat penyedia ini offline, baik itu oleh serangan, tuntutan regulasi, atau gangguan daya/internet, akan menyebabkan setiap klien validator yang bergantung pada server ini menjadi offline secara bersamaan. + +Denda ketidakhadiran secara online sebanding dengan berapa banyak orang lain yang tidak online pada saat yang sama. Menggunakan VPS secara besar-besaran meningkatkan risiko bahwa denda ketidakhadiran daring akan lebih parah, dan meningkatkan risiko bocornya kuadrat atau pemotongan jika pemadaman cukup besar. Untuk meminimalkan risiko Anda sendiri dan risiko bagi jaringan, pengguna sangat disarankan untuk mendapatkan dan mengoperasikan perangkat keras mereka sendiri. + + + + +Penarikan apa pun dari Rantai Suar memerlukan pengaturan kredensial penarikan. + +Pemegang staking baru mengatur ini pada saat pembuatan kunci dan deposit. Pemegang penaruhan yang sudah ada yang belum mengatur ini dapat meningkatkan kunci mereka untuk mendukung fungsionalitas ini. + +Setelah kredensial penarikan diatur, pembayaran imbalan (ETH yang terakumulasi di atas 32 awal) akan secara berkala didistribusikan ke alamat penarikan secara otomatis. + +Untuk membuka dan menerima seluruh saldo Anda kembali, Anda juga harus menyelesaikan proses keluar dari validator Anda. + +Lebih lanjut tentang penarikan penaruhan + + +## Bacaan lebih lanjut {#further-reading} + +- [Masalah Keragaman Klien Ethereum](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ +- [Membantu Keragaman Klien](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ +- [Klien keragaman pada Ethereum Lapisan konsensus](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ +- [Caranya: Berbelanja Untuk Ethereum Validator Perangkat Keras](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ +- [Langkah demi Langkah: Cara Bergabung dengan Jaringan Percobaan Ethereum 2.0](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _Butta_ +- [Tips Pencegahan Pemotongan Eth2](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raul Jordan 2020_ diff --git a/public/content/translations/id/staking/withdrawals/index.md b/public/content/translations/id/staking/withdrawals/index.md new file mode 100644 index 00000000000..33e9d05a171 --- /dev/null +++ b/public/content/translations/id/staking/withdrawals/index.md @@ -0,0 +1,218 @@ +--- +title: Penarikan penaruhan +description: Halaman yang merangkum tentang penarikan tekan penaruhan, bagaimana cara kerjanya, dan apa yang harus dilakukan oleh staker untuk mendapatkan imbalan mereka +lang: id +template: staking +image: /staking/leslie-withdrawal.png +alt: Leslie si badak dengan imbalan penaruhannya +sidebarDepth: 2 +summaryPoints: + - Peningkatan Shanghai/Capella memungkinkan penarikan penaruhan di Ethereum + - Operator validator harus menyediakan alamat penarikan untuk mengaktifkan + - Imbalan secara otomatis didistribusikan setiap beberapa hari + - Validator yang keluar sepenuhnya dari penaruhan akan menerima sisa saldo mereka +--- + + +Penarikan penaruhan diaktifkan dengan peningkatan Shanghai/Capella yang terjadi pada 12 April 2023. Lebih lanjut tentang Shanghai/Capella + + +**Penarikan penaruhan** mengacu pada transfer ETH dari akun validator pada lapisan konsensus Ethereum (Rantai Suar), ke lapisan eksekusi di mana itu dapat ditransaksikan. + +**Pembayaran imbalan atas saldo yang berlebih** dari 32 ETH akan otomatis dan secara teratur dikirim ke alamat penarikan yang terhubung ke setiap validator, begitu pengguna menyediakannya. Pengguna juga dapat **keluar dari penaruhan sepenuhnya**, membuka kunci saldo validator mereka secara penuh. + +## Imbalan penaruhan {#staking-rewards} + +Pembayaran imbalan secara otomatis diproses untuk akun validator yang aktif dengan saldo efektif maksimal 32 ETH. + +Saldo di atas 32 ETH yang diperoleh melalui imbalan tidak benar-benar berkontribusi pada pokok, atau meningkatkan bobot validator ini di jaringan, dan dengan demikian secara otomatis ditarik sebagai pembayaran hadiah setiap beberapa hari. Selain memberikan alamat penarikan satu kali, hadiah ini tidak memerlukan tindakan apa pun dari operator validator. Ini semua dimulai pada lapisan konsensus, sehingga tidak ada gas (biaya transaksi) yang diperlukan pada langkah apa pun. + +### Bagaimana kita sampai di sini? {#how-did-we-get-here} + +Selama beberapa tahun terakhir, Ethereum telah mengalami beberapa kali peningkatan jaringan yang beralih ke jaringan yang diamankan oleh ETH itu sendiri, alih-alih penambangan yang boros energi seperti sebelumnya. Berpartisipasi dalam konsensus di Ethereum sekarang dikenal sebagai "penaruhan", karena para peserta telah secara sukarela mengunci ETH, menempatkannya "dipertaruhkan" untuk kemampuan berpartisipasi dalam jaringan. Pengguna yang mengikuti peraturan akan diberi penghargaan, sementara upaya untuk berbuat curang dapat dikenai sanksi. + +Sejak peluncuran kontrak penaruhan deposit pada November 2020, beberapa perintis Ethereum yang berani telah secara sukarela mengunci dana untuk mengaktifkan "validator", akun khusus yang memiliki hak untuk secara resmi membuktikan dan mengusulkan blok, mengikuti aturan jaringan. + +Sebelum peningkatan Shanghai/Capella, Anda tidak dapat menggunakan atau mengakses ETH yang Anda penaruhan. Namun sekarang, Anda bisa memilih untuk menerima reward secara otomatis ke akun yang Anda pilih, dan Anda juga bisa menarik ETH yang Anda pertaruhkan kapan pun Anda mau. + +### Bagaimana saya mempersiapkan diri? {#how-do-i-prepare} + + + +### Pemberitahuan Penting {#important-notices} + +Memberikan alamat penarikan adalah langkah yang diperlukan untuk setiap akun validator sebelum akun tersebut memenuhi syarat untuk menarik ETH dari saldonya. + + + Setiap akun validator hanya dapat diberikan satu alamat penarikan, satu kali. Setelah alamat dipilih dan dikirimkan ke lapisan konsensus, alamat tersebut tidak dapat dibatalkan atau diubah lagi. Periksa kembali kepemilikan dan keakuratan alamat yang diberikan sebelum mengirim. + + +Tidak ada tidak ada ancaman terhadap dana Anda untuk sementara waktu karena tidak menyediakan ini, dengan asumsi mnemonik/frase benih Anda tetap aman secara offline, dan tidak dikompromikan dengan cara apa pun. Kegagalan untuk menambahkan kredensial penarikan hanya akan membuat ETH terkunci di akun validator seperti sebelumnya sampai alamat penarikan diberikan. + +## Keluar dari penaruhan sepenuhnya {#exiting-staking-entirely} + +Memberikan alamat penarikan diperlukan sebelum _semua_ dana dapat ditransfer dari saldo akun validator. + +Pengguna yang ingin keluar dari penaruhan sepenuhnya dan menarik seluruh saldo mereka kembali juga harus menandatangani dan menyiarkan pesan "keluar secara sukarela" dengan kunci validator yang akan memulai proses keluar dari penaruhan. Ini dilakukan dengan klien validator Anda dan dikirimkan ke simpul konsensus Anda, dan tidak memerlukan gas. + +Proses keluarnya seorang validator dari penaruhan membutuhkan waktu yang bervariasi, tergantung pada berapa banyak validator yang keluar pada waktu yang sama. Setelah selesai, akun ini tidak lagi bertanggung jawab untuk melakukan tugas jaringan validator, tidak lagi memenuhi syarat untuk mendapatkan imbalan, dan tidak lagi memiliki ETH yang "dipertaruhkan". Pada saat ini, akun akan ditandai sebagai "dapat ditarik sepenuhnya". + +Setelah akun ditandai sebagai "dapat ditarik", dan kredensial penarikan telah diberikan, tidak ada lagi yang perlu dilakukan pengguna selain menunggu. Akun secara otomatis dan terus menerus dipindai oleh pengusul blokir untuk dana keluar yang memenuhi syarat, dan saldo akun Anda akan ditransfer secara penuh (juga dikenal sebagai "penarikan penuh") selama pemindaian berikutnya. + +## Kapan penarikan penaruhan diaktifkan? {#when} + +Penarikan penaruhan sudah aktif! Fungsionalitas penarikan dana diaktifkan sebagai bagian dari peningkatan Shanghai/Capella yang terjadi pada 12 April 2023. + +Peningkatan Shanghai/Capella memungkinkan ETH yang sebelumnya dipertaruhkan untuk diklaim kembali ke akun Ethereum biasa. Hal ini menutup lingkaran pada likuiditas penaruhan, dan membawa Ethereum selangkah lebih dekat dalam perjalanannya untuk membangun ekosistem terdesentralisasi yang berkelanjutan, terukur, dan aman. + +- [Lebih lanjut tentang sejarah Ethereum](/history/) +- [Lebih lanjut tentang peta perjalanan Ethereum](/roadmap/) + +## Bagaimana cara kerja pembayaran penarikan dana? {#how-do-withdrawals-work} + +Apakah validator tertentu memenuhi syarat untuk penarikan atau tidak, ditentukan oleh status akun validator itu sendiri. Tidak ada input pengguna yang diperlukan pada waktu tertentu untuk menentukan apakah suatu akun harus melakukan penarikan atau tidak-seluruh proses dilakukan secara otomatis oleh lapisan konsensus dalam sebuah loop yang berkesinambungan. + +### Selengkapnya tentang pelajar visual? {#visual-learner} + +Simak penjelasan mengenai penarikan penaruhan Ethereum dari Finematics berikut ini: + + + +### Validator "menyapu" {#validator-sweeping} + +Ketika validator dijadwalkan untuk mengajukan blok berikutnya, diperlukan antrean penarikan hingga 16 penarikan yang memenuhi syarat. Hal ini dilakukan dengan memulai dengan indeks validator 0, menentukan apakah ada penarikan yang memenuhi syarat untuk akun ini sesuai dengan aturan protokol, dan menambahkannya ke antrean jika ada. Validator yang ditetapkan untuk mengajukan blok berikutnya akan melanjutkan blok yang terakhir ditinggalkan, dan terus maju tanpa batas waktu. + + +Pikirkan tentang jam analog. Jarum jam menunjuk ke arah jam, bergerak ke satu arah, tidak melewatkan satu jam pun, dan akhirnya berputar ke awal lagi setelah angka terakhir tercapai.

+Sekarang, alih-alih 1 hingga 12, bayangkan jam memiliki 0 hingga N (jumlah total akun validator yang pernah terdaftar di lapisan konsensus, lebih dari 500.000 per Januari 2023).

+Jarum penunjuk pada jam menunjuk ke validator berikutnya yang perlu diperiksa untuk penarikan yang memenuhi syarat. Dimulai dari 0, dan berkembang terus tanpa melewatkan satu akun pun. Ketika validator terakhir tercapai, siklus berlanjut kembali ke awal. +
+ +#### Memeriksa akun untuk penarikan dana {#checking-an-account-for-withdrawals} + +Ketika seorang pengusul menyisir validator untuk kemungkinan penarikan, setiap validator yang diperiksa akan dievaluasi berdasarkan serangkaian pertanyaan singkat untuk menentukan apakah penarikan harus dipicu, dan jika ya, berapa banyak ETH yang harus ditarik. + +1. **Apakah alamat penarikan sudah disediakan?** Jika tidak ada alamat penarikan yang disediakan, akun tersebut akan dilewati dan tidak ada penarikan yang dilakukan. +2. **Apakah validator keluar dan dapat ditarik kembali?** Jika validator telah keluar sepenuhnya, dan kami telah mencapai jangka waktu di mana akun mereka dianggap "dapat ditarik", maka penarikan penuh akan diproses. Ini akan mentransfer seluruh saldo yang tersisa ke alamat penarikan. +3. **Apakah saldo efektif telah mencapai 32?** Jika akun memiliki kredensial penarikan, belum sepenuhnya keluar, dan memiliki imbalan di atas 32 yang masih menunggu, maka penarikan sebagian akan diproses dan hanya akan mentransfer imbalan di atas 32 ke alamat penarikan pengguna. + +Hanya ada dua tindakan yang dilakukan oleh operator validator selama siklus hidup validator yang secara langsung memengaruhi alur ini: + +- Memberikan kredensial penarikan untuk memungkinkan segala bentuk penarikan +- Keluar dari jaringan, yang akan memicu penarikan penuh + +### Bebas gas {#gas-free} + +Pendekatan penarikan penaruhan ini menghindari keharusan penaruh untuk mengirimkan transaksi secara manual yang meminta penarikan ETH dalam jumlah tertentu. Ini berarti **tidak ada gas (biaya transaksi) yang diperlukan**, dan penarikan juga tidak bersaing untuk mendapatkan ruang blok lapisan eksekusi yang ada. + +### Seberapa sering saya akan mendapatkan imbalan penaruhan saya? {#how-soon} + +Maksimal 16 penarikan dapat diproses dalam satu blok. Pada tingkat tersebut, 115.200 penarikan validator dapat diproses per hari (dengan asumsi tidak ada slot yang terlewat). Seperti disebutkan di atas, validator yang tidak memenuhi syarat penarikan akan dilewati, sehingga mengurangi waktu untuk menyelesaikan penyisiran. + +Dengan memperluas perhitungan ini, kami dapat memperkirakan waktu yang dibutuhkan untuk memproses sejumlah penarikan tertentu: + + + +| Jumlah penarikan | Waktu untuk menyelesaikan | +| :--------------: | :-----------------------: | +| 400.000 | 3.5 hari | +| 500.000 | 4.3 hari | +| 600.000 | 5.2 hari | +| 700.000 | 6.1 hari | +| 800.000 | 7.0 hari | + + + +Seperti yang Anda lihat, hal ini melambat karena semakin banyak validator yang ada di jaringan. Peningkatan slot yang terlewatkan dapat memperlambat hal ini secara proporsional, tetapi ini secara umum akan mewakili sisi yang lebih lambat dari hasil yang mungkin terjadi. + +## Pertanyaan yang sering diajukan {#faq} + + +Tidak, proses untuk memberikan kredensial penarikan hanya dilakukan satu kali, dan tidak dapat diubah setelah diajukan. + + + +Dengan menetapkan alamat penarikan lapisan eksekusi, kredensial penarikan untuk validator tersebut telah diubah secara permanen. Ini berarti kredensial lama tidak akan berfungsi lagi, dan kredensial baru akan langsung menuju ke akun lapisan eksekusi. + +Alamat penarikan dapat berupa kontrak pintar (dikendalikan oleh kodenya), atau akun yang dimiliki secara eksternal (EOA, dikendalikan oleh kunci pribadinya). Saat ini akun-akun ini tidak memiliki cara untuk mengkomunikasikan pesan kembali ke lapisan konsensus yang akan menandakan perubahan kredensial validator, dan menambahkan fungsionalitas ini akan menambah kerumitan yang tidak perlu pada protokol. + +Sebagai alternatif untuk mengubah alamat penarikan untuk validator tertentu, pengguna dapat memilih untuk menetapkan kontrak pintar sebagai alamat penarikan mereka yang dapat menangani perputaran kunci, seperti Brankas. Pengguna yang menetapkan dana mereka ke EOA mereka sendiri dapat melakukan keluar sepenuhnya untuk menarik semua dana yang dipertaruhkan, dan kemudian melakukan penaruhan ulang dengan menggunakan kredensial baru. + + + + +Jika Anda merupakan bagian dari pool penaruhan atau memegang token penaruhan, Anda harus bertanya kepada penyedia Anda detail lebih lanjut tentang bagaimana penarikan penaruhan ditangani, karena setiap layanan beroperasi secara berbeda. + +Secara umum, pengguna harus bebas untuk mendapatkan kembali ETH yang mereka pertaruhkan, atau mengubah penyedia penaruhan yang mereka gunakan. Jika pool tertentu menjadi terlalu besar, dana dapat keluar, ditebus, dan dipertaruhkan kembali dengan penyedia yang lebih kecil. Atau, jika Anda telah mengumpulkan cukup banyak ETH, Anda dapat melakukan penaruhan dari beranda. + + + + +Ya, selama validator Anda telah memberikan alamat penarikan. Ini harus diberikan satu kali untuk mengaktifkan penarikan pertama kali, kemudian pembayaran imbalan akan secara otomatis dipicu setiap beberapa hari dengan setiap sapuan validator. + + + + +Tidak, jika validator Anda masih aktif di jaringan, penarikan penuh tidak akan terjadi secara otomatis. Hal ini membutuhkan proses keluar secara manual. + +Setelah validator menyelesaikan proses keluar, dan dengan asumsi akun tersebut memiliki kredensial penarikan, saldo yang tersisa kemudian akan ditarik pada saat pemindaian validator berikutnya. + + + + +Penarikan dirancang untuk didorong secara otomatis, mentransfer ETH apa pun yang tidak secara aktif berkontribusi pada taruhan. Ini termasuk saldo penuh untuk akun yang telah menyelesaikan proses keluar. + +Tidak dimungkinkan meminta ETH yang akan ditarik dengan jumlah tertentu secara manual. + + + + +Operator validator disarankan untuk mengunjungi halaman Penarikan Landasan Peluncuran Penaruhan tempat Anda akan menemukan detail lebih lanjut tentang cara mempersiapkan validator Anda untuk melakukan penarikan. yang dipersiapkan, waktu aksi, dan detail lebih lanjut tentang cara kerja penarikan. + +Untuk mencoba pengaturan Anda di jaringan percobaan terlebih dahulu, kunjungi Landasan Peluncuran Penaruhan Jaringan Percobaan Goerli untuk memulai. + + + + +Tidak. Setelah validator keluar dan saldo penuhnya telah ditarik, setiap dana tambahan yang disetorkan ke validator tersebut akan secara otomatis ditransfer ke alamat penarikan selama penyisiran validator berikutnya. Untuk taruhan ulang ETH, validator baru harus diaktifkan. + + +## Bacaan lebih lanjut {#further-reading} + +- [Penarikan Landasan Peluncuran Penaruhan](https://launchpad.ethereum.org/withdrawals) +- [EIP-4895: Rantai suar mendorong penarikan sebagai operasi](https://eips.ethereum.org/EIPS/eip-4895) +- [Penggembala Kucing Ethereum - Shanghai](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) +- [PEEPanEIP #94: Penarikan ETH yang Dipertaruhkan (Pengujian) dengan Potuz & Hsiao-Wei Wang](https://www.youtube.com/watch?v=G8UstwmGtyE) +- [PEEPanEIP#68: EIP-4895: Rantai Suar mendorong penarikan sebagai operasi bersama Alex Stokes](https://www.youtube.com/watch?v=CcL9RJBljUs) +- [Memahami Saldo Efektif Validator](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/id/whitepaper/index.md b/public/content/translations/id/whitepaper/index.md similarity index 100% rename from src/content/translations/id/whitepaper/index.md rename to public/content/translations/id/whitepaper/index.md diff --git a/public/content/translations/ig/dao/index.md b/public/content/translations/ig/dao/index.md new file mode 100644 index 00000000000..c8c0b5f5ecb --- /dev/null +++ b/public/content/translations/ig/dao/index.md @@ -0,0 +1,164 @@ +--- +title: Otu zoro ezo n'enweghi otu onye nchikwa (DAOs) +description: Nkọwa ihe mere eme nke DAO na Ethereum +lang: ig +template: use-cases +emoji: ":handshake:" +image: /use-cases/dao-2.png +alt: Nnọchite anya nke DAO na atụ vootu na amụma. +summaryPoint1: Ndị otu nwere obodo na-enweghị onye ndu etiti. +summaryPoint2: Ụzọ dị mma iji imekọ ihe ọnụ na ndị na-amabughị n'ịntanetị. +summaryPoint3: Ebe dị mma iji tinye ego maka otu ihe kpatara ya. +--- + +## Kedụ ihe bụ DAOs? {#what-are-daos} + +DAO bụ mkpokọta enwere blockchain na achị na-arụ ọrụ maka ọrụ nkekọrita. + +DAO na-enye anyị ohere ka anyị na ndị nwere otu obi na-arụkọ ọrụ gburugburu ụwa na-atụkwasịghị onye ndu nwere obi ebere ijikwa ego ma ọ bụ ọrụ. Ọ dịghị CEO nwere ike imefu ego na mkpali ma ọ bụ CFO onye nwere ike imegharia akwụkwọ. Kama, iwu dabere na blockchain tinye n'ime koodù na-akọwapụta otu nzukọ a si arụ ọrụ na otu esi emefu ego. + +Ha mere ụlọ akụ nke ọ nweghị onye nwere ikike ịnweta na-enweghị nkwado nke otu. A na-achịkwa mkpebi site na amụma na ịtụ vootu iji hụ na onye ọ bụla nọ na nzukọ a nwere olu, na ihe niile na-eme n'ụzọ doro anya n'ọnụ n'ọrụ. + +## Kedụ ihe mere anyị ji achọ DAOs? {#why-dao} + +Ịmalite nzukọ na onye na-agunye ego na ego chọrọ ntụkwasị obi dị ukwuu na ndị gị na ha na-arụkọ ọrụ. Mana ọ na-esi ike ịtụkwasị obi na onye gị na ya na-emekọrịta ihe sọ na ịntanetị naanị. Na DAO, ọ dịghị mkpa gị ịtụkwasị onye ọ bụla ọzọ obi n'ime otu ahụ, naanị Koodù DAO, nke bụ 100% na ụzọ doro anya na onye ọ bụla nwere ike ịnwaputa ya. + +Nke a na-emepe ọtụtụ ohere ọhụrụ maka mmekọ ihe ọnụ na nhazi zuru ụwa ọnụ. + +### Ntụnyere {#dao-comparison} + +| DAO | Nzukọ omenala | +| ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | +| Ọ na-adịkarị larịị, ma nwekwa ọchịchị onye kwuo uche ya nke ọma. | Ọ na-abụkarị usoro ọkwa. | +| Ntuli aka nke ndị otu chọrọ maka mgbanwe ọ bụla a ga emejuputa. | Dabere na usoro, enwere ike ịchọ mgbanwe n'aka naanị otu, ma ọ bụ nwee ike ịnye ntuli aka. | +| Vootu a chịkọtara, wee mejuputa nsonaazụ ya na-akpaghị aka na-enweghị onye nnọchi anya ntụkwasị obi. | Ọ bụrụ na anabata ịtụ vootu, a na-agbakọ votu n'ime, na a ga eji aka nwere chịkwaa nsonaazụ ntuli aka. | +| A na-edozi ọrụ ndị a na-enye na akpaghị aka n'ụzọ enweghị isi (dịka ọmụmaatụ nkesa ego enyemaka). | Na-achọ njikwa mmadụ, ma ọ bụ na-nchịkwa akpaghị aka nke ọma, na-adịkarị mfe ịghọ gbuo ya. | +| Ọrụ niile dị n'uzo doro anya na ọha nille na ahụ ya. | Ihe omume bụ nanị nke onwe, na ọha anaghị ahụ ya. | + +### Ihe atụ DAO {#dao-examples} + +Iji nyere aka mee ka nke a nwee nghọta karịa, nke a bụ ọmụmaatụ ole na ole nke otu ị ga-esi jiri DAO: + +- Ọrụ ebere - ị nwere ike ịnabata onyinye sitere n'aka onye ọ bụla nọ n'ụwa wee mee ntuli aka maka ihe kpatara itinye ego. +- Nnwekọ mkpokọta - ị nwere ike ịzụta akụ anụ ahụ ma ọ bụ dijitalụ yana ndị otu nwere ike ịtụ vootu maka otu esi eji ha. +- Ahịa na onyinye - ị nwere ike ịmepụta ego achụmnta ego nke na-etinye ego ntinye ego na ntuli aka na azụmahịa ị ga-azụ. Enwere ike mechaa kesaa ego akwụghachi n'etiti ndị otu DAO. + +## Kedu ka DAO si arụ ọrụ? {#how-daos-work} + +Ọkpụkpụ azụ nke DAO bụ smart contract ya, nke na-akọwa iwu nke nzukọ ahụ ma na-ejide akụ nke otu. Ozugbo nkwekọrịta ahụ dị na Ethereum, ọ dịghị onye nwere ike ịgbanwe iwu ma e wezụga site na votu. Ọ bụrụ na onye ọ bụla nwaa ime ihe ekpuchighi site na iwu na mgbagha dị na na koodu ya, ọ ga-ada. Na n'ihi na a na-akọwa akụ site na smart contract kwa nke pụtara na ọ dịghị onye nwere ike imefu ego na-enweghị otu nkwado. Nke a pụtara na DAO achọghị ikike etiti. Kama, otu a na-eme mkpebi n'otu oge, a na-enye ikike ịkwụ ụgwọ na-akpaghị aka mgbe ntuli aka gafere. + +Nke a ga-ekwe omume n'ihi na nkwekọrịta smart bụ ihe aghaghị emetuwu aka mgbe ha ga adị na Ethereum. Ị nweghị ike dezie Koodù ahụ (iwu DAO) na-enweghị ndị mmadụ ga achọpụta n'ihi na ọha na ahụ ihe niile. + + + Ọzọ na smart contracts + + +## Ethereum na DAO {#ethereum-and-daos} + +Ethereum bụ ntọala zuru oke maka DAO maka ọtụtụ ihe kpatara ya: + +- A na-ekesa nkwekọrịta nke Ethereum ma guzosie ike maka òtù dị iche iche ịtụkwasị obi na netwọk ahụ. +- Enweghị ike ịgbanwe Koodù nkwekọrịta smart ozugbo ọ dị ndụ, ọbụlagodi ndị nwe ya. Nke a na-enye ohere ka DAO na arụ oru site na iwu e ji mee ya. +- Nkwekọrịta smart nwere ike izipu/nata ego. Na-enweghị nke a, ị ga-achọ onye etiti ntụkwasị obi iji jikwaa ego otu. +- Obodo Ethereum egosila na ha na-emekọ ihe ọnụ karịa asọmpi, na-enye ohere maka omume kachasị mma na usoro nkwado ka ọ pụta ngwa ngwa. + +## Ọchịchị DAO {#dao-governance} + +Enwere ọtụtụ ntule mgbe ị na-achị DAO, dị ka otu ịtụ vootu na atụmatụ si arụ ọrụ. + +### Ndị nnọchi anya {#governance-delegation} + +Ndị nnọchiteanya dị ka ụdị DAO nke ọchịchị onye kwuo uche ya. Ndị na-ejide Token na-enyefe votu nye ndị na-ahọpụta onwe ha ma na-agba mbọ na-elekọta usoro na mara ihe na aga. + +#### Ihe atụ ama ama {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) –Ndị jidere ENS nwere ike inyefe ndị otu obodo tinyere aka ha ọnụ ka ha nọchite anya ha. + +### Ọchịchị azụmahịa akpaaka {#governance-example} + +N'ọtụtụ DAO, a ga-eme azụmahịa na-akpaghị aka ma ọ bụrụ na ọnụ ọgụgụ ndị otu kwesịrị kwenyere vootu. + +#### Ihe atụ ama ama {#governance-example} + +[Nouns](https://nouns.wtf) – Na Nouns DAO, a na-eme azụmahịa na-akpaghị aka ma ọ bụrụ na ezutere vootu ọnụ ọgụgụ ndị otu kwesịrị yana ekwenye na ọtụtụ vootu, ọ bụrụhaala na ndị malitere nabatara ya. + +### Ọchịchị Multisig {#governance-example} + +Mgbe DAO nwere ike ịnwe ọtụtụ puku ndị otu na-eme ntuli aka, ego nwere ike ibi na akpa ego intaneti nke ndị otu obodo 5-20 na-arụsi ọrụ ike na-ekerịta bụ ndị a tụkwasịrị obi na a na egosi njirimara ha( njirimara ọha na eze obodo mara). Mgbe ntuli aka gasịrị, ndị na-edebanye aha multisig na-emezu uche nke obodo. + +## Iwu DAO {#dao-laws} + +Na 1977, Wyoming chepụtara LLC, nke na-echebe ndị ọchụnta ego ma kpachie ụgwọ ha ji. N'oge na-adịbeghị anya, ha sụrụ ụzọ iwu DAO nke na-eguzobe ọnọdụ iwu maka DAO. Ugbu a Wyoming, Vermont, na Virgin Islands nwere iwu DAO na udị ụfọdụ. + +### Ihe atụ ama ama {#law-example} + +[CityDAO](https://citydao.io) - CityDAO jiri iwu Wyoming DAO iji zụta ala 40 dị nso na Ogige Mba Yellowstone. + +## Ndị otu DAO {#dao-membership} + +Enwere ụdị dị iche iche maka ndị otu DAO. Ndị otu nwere ike ikpebi ka ịtụ vootu si arụ ọrụ yana akụkụ ndị ọzọ dị mkpa nke DAO. + +### Otu dabere na token {#token-based-membership} + +Ọ na-abụkarị enweghị ikike, dabere na akara ejiri. Ọtụtụ n'ime akara Ọchịchị ndị a nwere ike ịre ahịa n'enweghị ikike na mgbanwe agbanweela. A ga-enweta ndị ọzọ site n'inye ego ma ọ bụ ụfọdụ 'ihe akaebe nke ọrụ' ọzọ. Ụzọ ọ bụla, nanị ijide akara ngosi na-enye ohere ịme ntuli aka. + +_A na-ejikarị chịkwaa ụkpụrụ na/ma ọ bụ akara n'onwe ha._ + +#### Ihe atụ ama ama {#token-example} + +[MakerDAO](https://makerdao.com) – token MakerDAO MKR dị ebe niile na mgbanwe ewepụghị isi nke na onye ọ bụla nwere ike zụta n'inwe ike ịtụ vootu na usoro ọdịnihu Onye kere. + +### Otu dabere na-ekekọrịta {#share-based-membership} + +DAO dabere na-ekekọrịta bụ ikike karịa, mana ka mepere emepe. Ndị otu ọ bụla na-atụ anya nwere ike ịnye atụmatụ ịbanye na DAO, na-enyekarị ụtụ nke ụfọdụ uru n'ụdị tokens ma ọ bụ ọrụ. Oke òkè na-anọchite anya ikike ịtụ vootu na onwiwe. Ndị otu nwere ike ị nwere oké nhata oké nke akụ ha pụọ n'oge ọ bụla. + +_A na-eji ya eme ihe maka njikọ chiri anya, ụlọ ọrụ na-ahụ maka mmadụ dịka ndị ọrụ ebere, mkpokọta ndị ọrụ, na klọb itinye ego. Nwere ike chịkwaa usoro na token kwa._ + +#### Ihe atụ ama ama {#share-example} + +[MolochDAO](http://molochdao.com/) – MolochDAO na-elekwasị anya na inye ego ọrụ Ethereum. Ha chọrọ atụmatụ maka ịbụ otu ka ndị otu ahụ wee nwee ike nyochaa ma ị nwere ọkachamara na isi ego dị mkpa iji mee mkpebi ziri ezi gbasara ndị nwere ike inye ego. Ịnweghị ike ịzụta ohere ịnweta DAO na ahịa mepere emepe. + +### Otu dabere na aha ọma {#reputation-based-membership} + +Aha ọma na-anọchi anya ihe akaebe nke ntinye aka ma nye ikike ịtụ vootu na DAO. N'adịghị ka token ma ọ bụ otu dabere na òkè, DAO dabere na aha ọma anaghị ebufe nwe ka ndị ntinye aka. Enweghị ike ịzụta aha ọma, bụ fere ma ọ bụ nyefee ya; Ndị òtù DAO ga-enwetari aha ọma site na ntinye aka. Ịtụ vootu na yinye bụ enweghị ikike na ndị na-atụ anya ndị otu nwere ike ịnyefe atụmatụ ịbanye na DAO ma rịọ ka ha nweta aha ọma na ego dị ka ụgwọ ọrụ maka mgbanwe maka ntinye aka ha. + +_A na-eji ya eme ihe maka mmepe enweghị isi na ọchịchị nke usoro na dapps, mana ọ dabara nke ọma na ụlọ ọrụ dị iche iche dị ka ndị ọrụ ebere, mkpokọta ndị ọrụ, klọb itinye ego, etc._ + +#### Ihe atụ ama ama {#reputation-example} + +[DXdao](https://DXdao.eth.link) – DXdao bụ ụlọ mkpokọta zuru ụwa ọnụ ma na-achịkwa ụkpụrụ na ngwa ewepụtara kemgbe 2019. Ọ na-eme ka ọchịchị dabere na aha ọma na nkwenye holographic iji chịkọta na jikwaa ego, nke pụtara na ọ nweghị onye nwere ike ịzụta ụzọ ha iji metụta ọdịnihu ya. + +## Soro / malite DAO {#join-start-a-dao} + +### Join a DAO {#join-a-dao} + +- [Obodo Ethereum DAO](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [Ndepụta DAOHaus nke DAO](https://app.daohaus.club/explore) +- [Ndepụta Tally.xyz nke DAO](https://www.tally.xyz) + +### Bido DAO {#start-a-dao} + +- [Kpọkọtanụ DAO site n'iji DAOHaus](https://app.daohaus.club/summon) +- [Jiri Tally malite Gọvanọ DAO](https://www.tally.xyz/add-a-dao) +- [Mepụta DAO Aragon kwadoro](https://aragon.org/product) +- [Malite otu obodo](https://colony.io/) +- [Mepụta DAO nwere nkwenye holographic nke DAOstack](https://alchemy.daostack.io/daos/create) + +## Further reading {#further-reading} + +### Akụkọ DAO {#dao-articles} + +- [Gịnị bụ DAO?](https://aragon.org/dao) - [Aragon](https://aragon.org/) +- [Akwụkwọ ntuziaka DAO](https://daohandbook.xyz) +- [Ụlọ nke DAO](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) - [Metagame](https://wiki.metagame.wtf/) +- [Kedu ihe bụ DAO na kedu ihe eji ya eme?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) - [DAOhaus](https://daohaus.club/) +- [Otu esi amalite Obodo Dijitalụ DAO Kwadoro](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) - [DAOhaus](https://daohaus.club/) +- [Kedu ihe bụ DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) - [Coinmarketcap](https://coinmarketcap.com) +- [Gịnị bụ Holographic Consensus?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) +- [DAO abụghị ụlọ ọrụ: ebe ntọhapụ na ụlọ ọrụ kwụụrụ onwe ya metụtara Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) +- [DAOs, DACs, DAs na Ndị Ọzọ: Ntuziaka Okwu Na-ezughị ezu](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Blọọgụ Ethereum](https://blog.ethereum.org) + +### Videos {#videos} + +- [Kedu ihe bụ DAO na crypto?](https://youtu.be/KHm0uUPqmVE) +- [DAO nwere ike wuo obodo?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) - [TED](https://www.ted.com/) diff --git a/src/content/translations/ig/guides/how-to-create-an-ethereum-account/index.md b/public/content/translations/ig/guides/how-to-create-an-ethereum-account/index.md similarity index 100% rename from src/content/translations/ig/guides/how-to-create-an-ethereum-account/index.md rename to public/content/translations/ig/guides/how-to-create-an-ethereum-account/index.md diff --git a/src/content/translations/ig/guides/how-to-id-scam-tokens/index.md b/public/content/translations/ig/guides/how-to-id-scam-tokens/index.md similarity index 100% rename from src/content/translations/ig/guides/how-to-id-scam-tokens/index.md rename to public/content/translations/ig/guides/how-to-id-scam-tokens/index.md diff --git a/src/content/translations/ig/guides/how-to-revoke-token-access/index.md b/public/content/translations/ig/guides/how-to-revoke-token-access/index.md similarity index 100% rename from src/content/translations/ig/guides/how-to-revoke-token-access/index.md rename to public/content/translations/ig/guides/how-to-revoke-token-access/index.md diff --git a/src/content/translations/ig/guides/how-to-swap-tokens/index.md b/public/content/translations/ig/guides/how-to-swap-tokens/index.md similarity index 100% rename from src/content/translations/ig/guides/how-to-swap-tokens/index.md rename to public/content/translations/ig/guides/how-to-swap-tokens/index.md diff --git a/src/content/translations/ig/guides/how-to-use-a-bridge/index.md b/public/content/translations/ig/guides/how-to-use-a-bridge/index.md similarity index 100% rename from src/content/translations/ig/guides/how-to-use-a-bridge/index.md rename to public/content/translations/ig/guides/how-to-use-a-bridge/index.md diff --git a/src/content/translations/ig/guides/how-to-use-a-wallet/index.md b/public/content/translations/ig/guides/how-to-use-a-wallet/index.md similarity index 100% rename from src/content/translations/ig/guides/how-to-use-a-wallet/index.md rename to public/content/translations/ig/guides/how-to-use-a-wallet/index.md diff --git a/src/content/translations/ig/guides/index.md b/public/content/translations/ig/guides/index.md similarity index 100% rename from src/content/translations/ig/guides/index.md rename to public/content/translations/ig/guides/index.md diff --git a/src/content/translations/ig/learn/index.md b/public/content/translations/ig/learn/index.md similarity index 100% rename from src/content/translations/ig/learn/index.md rename to public/content/translations/ig/learn/index.md diff --git a/public/content/translations/ig/nft/index.md b/public/content/translations/ig/nft/index.md new file mode 100644 index 00000000000..87c4928ad3a --- /dev/null +++ b/public/content/translations/ig/nft/index.md @@ -0,0 +1,93 @@ +--- +title: Tokin na-enweghị ike ịgbanwe (NFT) +description: Nlebaanya na NFT n'Ethereum +lang: ig +template: use-cases +emoji: ":frame_with_picture:" +image: /infrastructure_transparent.png +alt: A na-egosipụta akara Eth site na hologram. +summaryPoint1: Ụzọ e ji egosipụta ihe ọbụla pụrụ iche dị ka akụ Ethereum. +summaryPoint2: NFT na-enye ndị na-ekepụta ihe ikike karịa ka ọ dị na mbụ. +summaryPoint3: Nke usoro ngwaọrụ kọmputa kwadoro na blọkchen Ethereum. +--- + +## Kedu ihe bụ NFTs? {#what-are-nfts} + +NFT bụ tokin nke pụrụ iche n'onwe ha. NFT ọbụla nwere akụrụngwa dị iche iche (nke e ji egosipụta nnwe) ma ọ dikwa ụkọ. Nke a dị iche na tokin dị ka ERC-20s ebe tokin ọbụla yiri onwe ya ma nwee otu akụrụngwa ('nwere ike igbanwe'). Ị chọghị ịma kpọmkwem ụgwọ dọla i nwere n'akpa ego ịntanetị, n'ihi na ha niile yiri onwe ha ma bụrụ otu ọnụ ahịa. Agbanyeghị, ị _na-eme_ na-elekọta NFTnke i nwere kpọmkwem, n'ihi na ha niile nwere akụrụngwa nkeonwe nke mere ka ya na ndị ọzọ dị iche ('nke apụghị igbanwe'). + +Ọdịiche nke NFT ọbụla na-eme ka akara na apụghị igbanwe ọbụla na-enye aka ịmepụta ihe dị ka nka, mkpokọta, maọbụ ụlọ ebe obibi ndị mmadụ, ebe otu NFT pụrụ iche na-anọchite anya ọtụtụ ihe a na-ahụ anya maọbụ akụrụngwa dijitalụ. Blọkchen Ethereum - o nweghị onye nwere ike ịgbanwee ndekọ nke nnwe maọbụ ṅomịa/ma doo NFT ọhụrụ ka o bidi dịwa. + + + +## Ịntanetị nke akụrụngwa {#internet-of-assets} + +NFTna Ethereum na-edozi ụfọdụ nsogbu nke dị na ịntanetị taa. Dị ka ihe niile na-adịzị na dijitalụ, ọ dị oke mkpa imegharị akụrụngwa nke ihe ana-ahụ anya dị ka ụkọ ihe, ọpụrụiche, nakwa ihe akaebe nke nnwe. n'ụzọ na-enweghị ụlọ ọrụ etiti nke na achịkwa ya. Iji maa atu, na NFT, i nwere ike inwe egwu mp3 na-abụghị maka ngwa egwu otu ụlọ ọrụ kpọmkwem, maọbụ i nwere ike inweta njikwa mgbasa ozi nke i nwere ike ree maọbụ gbanwee, mana onye na-ahụ maka nhiwe enweghị ike ịnapụ gị ya. + +Nke a bụ etu ịntanetị NFT si dị ma a tụnyere ya na ịntanetị ọtụtụ n'ime anyị na-eji taa... + +### Ntụnyere {#nft-comparison} + +| Ịntanetị NFT | Ịntanetị ụbọchị taa | +| ---------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| Gị nwe ihe onwunwe nke gị! Naanị gị nwere ike ire maọbụ gbanwee ha. | Ị gbazitere ego n'aka ụfọdụ ndị ụlọ ọrụ. | +| NFT bụ dijitalụ pụrụ iche, o nweghị NFT abụọ bụ otu ihe. | E nweghị ike ịchọpụta nke bụ nke n'etiti nke ezigbo na nke nṅomị. | +| E chedoro nnwe NFT na blọkchen ahụ ka onye ọbụla nwee ike inyocha ya. | A na-echekwa ndekọ onwunwe na sava nke ndị ụlọ ọrụ na-achịkwa - ị ga-ewererịrị okwu ha maka ya. | +| NFT bụ ngwa kọmputa n'Ethereum. Nke a pụtara na ọ ga-adị mfe iji ha na ngwa kọmputa ndị ọzọ nakwa dị n'Ethereum! | Ndi ụlọ ọrụ nwere akụrụngwa dijitalụ na-achọkarị akụrụngwa "ihe nhiwe" nke ha. | +| Ndị nkepụta nwere ike ire ihe nkepụta ha ebe ọbụla ma nwee ikike ire ahịa n'ahịa mba. | Ndị nkepụta na-adabere n'akụrụngwa na nkesa nke nhiwe ha na-eji. Ndị a na-adịkarị n'okpuru usoro ojiji yana mgbochi mpaghara. | +| Ndị nkepụta NFT nwere ike jigide ikike onwunwe nyere ihe ha kepụtara, ma mee ka e nwee ntụkwasị obi na ngwa NFT. | Nhiwe, dị ka ọrụ ndị na-eme ka e gee egwu, na-ejigide ọtụtụ nhiwe nke sitere n'ire ahịa. | + +## Kedu ka NFT si arụ ọrụ? {#how-nfts-work} + +Dị ka tokin ọbụla e nyere n'Ethereum, ngwa kọmputa na-enye NFT. Ngwa kọmputa na-ekwekọrọ n'otu n'ime usoro NFT (na-abụkarị ERC-721 maọbụ ERC-1155) nke na-akọwapụta ọrụ ngwa ahụ nwere. Ngwa ahụ nwere ike imepụta ('mint') NFT ma kenye ha n'aka onye nwe ya. A kọwara ikike nnwe na ngwa nkwekọrịta site n'idepụta NFT gaa na adreesị nke ọ bụ. NFT ahụ nwere Njirimara nkwa data meta nke metụtara ya nke mekwara ka tokin ahụ dịrị onwe ya iche. + +Mgbe mmadụ keputa maọbụ mepụta NFT, ha na-arụ ọrụ na ngwa kọmputa na-enye NFT ọbụla adreesị. E chedoro ozi a n'ebe nchedo ngwa ahụ, nke so na blọkchen. Onye nkepụta ngwa kọmputa ahụ nwere ike ide ihe ọzọ n'ime ngwa ahụ, iji maa atụ, ibelata mkpokọta ọnụọgụ nnyefe maọbụ ịkọpụta ụgwọ a ga-akwụ onye nkepụta mgbe ọbụla e nyefere tokin. + +## Kedu ihe a na-eji NFT eme? {#nft-use-cases} + +E ji NFT eme ọtụtụ ihe, gụnyere: + +- igosi na ị gara mmemme +- gosikwa na ị gụchara akwụkwọ +- ihe onwunwe maka egwuregwu +- ihe nka dijitalụ +- iji tokin goro akụ a na-ahụ anya +- igosi njirimara ịntanetị gị +- inweta ikike maka ịhụ ihe dị na ya +- inweta tiketi +- aha ngalaba ịntanetị na-enweghị onye isi +- ihe mbinye ego na DeFi + +Eleghị anya ị bụ onye omenka chọrọ iji NFT kesaa ọrụ ha, na-emeghị ka njikwa funarịa gị ma jirikwa ihe nrita gị chụọrọ ndị ọrụ etiti aja. I nwere ike mepụtakwa ngwa ọhụrụ ma kwuo NFT ole, akụrụngwa ha nakwa akara njikọ a ga-eji nweta ha na netwọk ọ bụ. Dị ka onye mmeputa, i nwekwara ike itinye na ngwa kọmputa ahụ ụgwọ ole a ga-akwụ gị (iji maa atụ, nye onye nwe ngwa kọmputa pasent 5 nke ego ole erere mgbe ọbụla e nyefere NFT). I nwekwara ike igosi na i mepụtara NFT n'ihi na ọ bụ gị nwe akpa ego ịntanetị ahụ dị na ngwa kọmputa ahụ. Ndị na-azụ gị ahịa nwekwara ike igosipụta na ha nwere ezigbo NFT sitere na mkpokọta gị maka tokin ngwa kọmputa gị metụtara adreesị tokin ha. Ha nwere ike iji ya n'ihe metụtara Ethereum, ma nwee ntụkwasị obi n'ịdị mma ya. + +Maọbụ tụlee tiketi maka maka mmemme egwuregwu. Dị ka etu onye nhazi ihe mmemme ga-esi nwee ike ịhọrọ ọtụtụ tiketi ọ ga-ere, onye nkepụta NFT nwere ike kpebie nṅomị ole ga-adi. Oge ụfọdụ ndị a bụ nṅomị yiri ibe ya, dị ka Tiketi Nnabata Ọha 5000. Oge ụfọdụ, a na-ekepụta ọtụtụ ndị yiri onwe ha, mana nke ọbụla dịtụ iche, dị ka tiketi nwere oche e kenyere ya. E nwere ike ịzụta ihe ndị a ma rekwaa ha na-akwụghị ndị na-ahụ maka tiketi ụgwọ ma onye na-azụ ahịa ji n'aka mgbe niile na tiketi ahụ bụ nke ezigbo ya site n'inyocha adreesị ngwa kọmputa. + +N'ethereum.org, a na-eji NFT egosi na ndị mmadụ enyela aka na nzube GitHub anyị maọbụ zaa oku, ma anyị enwetala aha ngalaba NFT aha. Ọ bụrụ na i nyere aka n'ethereum.org, i nwere ikwu maka isonye gị na POAP NFT. Ụfọdụ ebe nzube kripto JIRILA tiketi POAP. [Ihe ndị ọzọ na ntinye aka](/contributing/#poap). + +![POAP ethereum.org](./poap.png) + +Webụsaịtị a nwekwara aha ngalaba ọzọ nke NFT kwadoro, **ehereum.eth**. A na-eji `.org` naanị aha ngalaba onye nweta sistemụ achịzi adreesị anyị (DNS), ebe ethereum`.eth` e debenyere Ethereum site n'Aha Ọrụ Ethereum ahụ (ENS). Ọ bụ kwa anyị nwe ma na-ejikwa ya. [Lelee ndekọ ENS anyị](https://app.ens.domains/name/ethereum.eth) + +[Ihe ndị ọzọ n'Ethereum](https://app.ens.domains) + + + +### Nchekwa NFT {#nft-security} + +Nchekwa Ethereum na-esi n'ihe akaebe-nke-itinye ego abịa. E mere sistemụ a ka o wee belata ajọ akpamagwa, wee mee ka Ethereum ghara ịna-egbanwe. Nke a bụ ihe na-eme ka NFT dị ire. Ozugbo blọk azụmahịa NFT dị na ya bịara na njedebe, ọ ga-eri onye na-ezu ohi nde kwuru nde Ethereum igbanwe ya. Onye ọbụla na-eji ngwa Ethereum nwere ike ịchọpụta na a na-achọ aka itinye aka ná NFT n'ụzọ n'ezighị ezi, ma a ga-atakwa onye ahụ ahụhụ wee chụpụkwa ya. + +Okwu nchekwa metụtara NFT na-abukari ihe gbasara ozi maka iji aghụghọ nara mmadụ ihe, wepụta ngwa kọmputa maọbụ njehie onye ojiji (dị ka iwepụta igodo nkeonwe), na-eme ezigbo nchekwa akap ego ịntanetị taa akpụ nyere ndị nwe NFT. + + + Ihe ndị i ọzọ na nchekwa + + +## Further reading {#further-reading} + +- [ Ntuziaka onye mbido na NFT ohuru](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, Jenuwari 2020_ +- [Nnyocha EtherscanNft](https://etherscan.io/nft-top-contracts) +- [Ọkọlọtọ tokin ERC-721](/developers/docs/standards/tokens/erc-721/) +- [Ọkọlọtọ tokin ERC-1155](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/src/content/translations/ig/what-is-ethereum/index.md b/public/content/translations/ig/what-is-ethereum/index.md similarity index 100% rename from src/content/translations/ig/what-is-ethereum/index.md rename to public/content/translations/ig/what-is-ethereum/index.md diff --git a/src/content/translations/it/about/index.md b/public/content/translations/it/about/index.md similarity index 100% rename from src/content/translations/it/about/index.md rename to public/content/translations/it/about/index.md diff --git a/src/content/translations/it/bridges/index.md b/public/content/translations/it/bridges/index.md similarity index 100% rename from src/content/translations/it/bridges/index.md rename to public/content/translations/it/bridges/index.md diff --git a/src/content/translations/it/community/code-of-conduct/index.md b/public/content/translations/it/community/code-of-conduct/index.md similarity index 100% rename from src/content/translations/it/community/code-of-conduct/index.md rename to public/content/translations/it/community/code-of-conduct/index.md diff --git a/src/content/translations/it/community/events/index.md b/public/content/translations/it/community/events/index.md similarity index 100% rename from src/content/translations/it/community/events/index.md rename to public/content/translations/it/community/events/index.md diff --git a/src/content/translations/it/community/get-involved/index.md b/public/content/translations/it/community/get-involved/index.md similarity index 100% rename from src/content/translations/it/community/get-involved/index.md rename to public/content/translations/it/community/get-involved/index.md diff --git a/src/content/translations/it/community/grants/index.md b/public/content/translations/it/community/grants/index.md similarity index 100% rename from src/content/translations/it/community/grants/index.md rename to public/content/translations/it/community/grants/index.md diff --git a/src/content/translations/it/community/language-resources/index.md b/public/content/translations/it/community/language-resources/index.md similarity index 100% rename from src/content/translations/it/community/language-resources/index.md rename to public/content/translations/it/community/language-resources/index.md diff --git a/src/content/translations/it/community/online/index.md b/public/content/translations/it/community/online/index.md similarity index 100% rename from src/content/translations/it/community/online/index.md rename to public/content/translations/it/community/online/index.md diff --git a/src/content/translations/it/community/page-community.json b/public/content/translations/it/community/page-community.json similarity index 100% rename from src/content/translations/it/community/page-community.json rename to public/content/translations/it/community/page-community.json diff --git a/src/content/translations/it/community/research/index.md b/public/content/translations/it/community/research/index.md similarity index 100% rename from src/content/translations/it/community/research/index.md rename to public/content/translations/it/community/research/index.md diff --git a/public/content/translations/it/community/support/index.md b/public/content/translations/it/community/support/index.md new file mode 100644 index 00000000000..c3ff577d6b1 --- /dev/null +++ b/public/content/translations/it/community/support/index.md @@ -0,0 +1,116 @@ +--- +title: Supporto Ethereum +description: Ottenere supporto nell'ecosistema Ethereum. +lang: it +--- + +# Supporto Ethereum {#support} + +## Supporto ufficiale di Ethereum {#official-support} + +Stai cercando il supporto ufficiale di Ethereum? La prima cosa che dovresti sapere è che Ethereum è decentralizzato. Questo significa che nessuna organizzazione centrale, entità o persona possiede Ethereum, e per questo non esistono canali di supporto ufficiali. + +Comprendere la natura decentralizzata di Ethereum è fondamentale perché chiunque affermi di essere il supporto ufficiale di Ethereum probabilmente sta cercando di truffarti! La migliore protezione contro i truffatori sta nell'educare sé stessi prendendo sul serio la sicurezza. + + + Sicurezza di Ethereum e prevenzione delle truffe + + + + Impara i fondamenti di Ethereum + + +Nonostante la mancanza di supporto ufficiale, molti gruppi, community e progetti nell'intero ecosistema di Ethereum sono lieti di aiutare e puoi trovare molte informazioni e risorse utili su questa pagina. Hai altre domande? Unisciti al [Discord di ethereum.org](/discord/) e faremo il possibile per aiutarti. + +## Supporto portafoglio {#wallet-support} + +Hai problemi con il tuo portafoglio? La maggior parte dei portafogli dispone di team di supporto dedicati che possono aiutare: + +- [MetaMask](https://metamask.zendesk.com/hc/) +- [Argent](https://support.argent.xyz/hc/) +- [MyEtherWallet](https://help.myetherwallet.com/) + +_Questo non è un elenco esaustivo. Hai bisogno di aiuto nel trovare il supporto per un portafoglio specifico? Unisciti a [server Discord di ethereum.org](https://discord.gg/ethereum-org) e proveremo ad aiutarti._ + +Cerchi un portafoglio Ethereum? [Esplora il nostro elenco completo di portafogli Ethereum](/wallets/find-wallet/). + +## Costruire dapps {#building-support} + +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) +- [Web3 University](https://www.web3.university/) +- [LearnWeb3](https://discord.com/invite/learnweb3) + +Puoi anche trovare la documentazione e le guide di sviluppo nella nostra sezione [risorse per sviluppatore Ethereum](/developers/). + +### Strumenti {#dapp-tooling} + +La tua domanda riguarda un particolare strumento, progetto o libreria? La maggior parte dei progetti hanno server di chat o forum dedicati al supporto. + +Ecco alcuni esempi più diffusi: + +- [Solidity](https://gitter.im/ethereum/solidity/) +- [ethers.js](https://discord.gg/6jyGVDK6Jx) +- [web3.js](https://discord.gg/GsABYQu4sC) +- [Hardhat](https://discord.gg/xtrMGhmbfZ) +- [Truffle](https://discord.gg/8uKcsccEYE) +- [Alchemy](http://alchemy.com/discord) +- [Tenderly](https://discord.gg/fBvDJYR) + +## Eseguire un nodo {#node-support} + +Se stai eseguendo un nodo o un validatore, ecco alcune community che sono dedicate ad aiutarti ad iniziare. + +- [EthStaker discord](https://discord.io/ethstaker) +- [EthStaker reddit](https://www.reddit.com/r/ethstaker) + +La maggior parte dei team che costruiscono client di Ethereum hanno anche spazi dedicati, rivolti al pubblico, dove è possibile ottenere supporto e fare domande. + +### Client di esecuzione {#execution-clients} + +- [Geth](https://discord.gg/FqDzupGyYf) +- [Nethermind](https://discord.gg/YJx3pm8z5C) +- [Besu](https://discord.gg/p8djYngzKN) +- [Erigon](https://github.com/ledgerwatch/erigon/issues) + +### Client di consenso {#consensus-clients} + +- [Prysm](https://discord.gg/prysmaticlabs) +- [Nimbus](https://discord.gg/nSmEH3qgFv) +- [Lighthouse](https://discord.gg/cyAszAh) +- [Teku](https://discord.gg/7hPv2T6) +- [Lodestar](https://discord.gg/aMxzVcr) + +Puoi anche [imparare ad eseguire un nodo qui](/developers/docs/nodes-and-clients/run-a-node/). + +## Domande frequenti {#faq} + +### Ho inviato ETH al portafoglio sbagliato {#wrong-wallet} + +Una transazione inviata in Ethereum è irreversibile. Sfortunatamente, se hai inviato ETH al portafoglio sbagliato, non c'è modo di recuperare questi fondi. Nessuna organizzazione centrale, entità o persona possiede Ethereum, il che significa che nessuno può annullare le transazioni. Pertanto, è fondamentale ricontrollare sempre le tue transazioni prima di inviarle. + +### Come posso reclamare il mio giveaway Ethereum? {#giveaway-scam} + +I giveaway Ethereum sono truffe progettate per rubare il vostro ETH. Non farti tentare da offerte che sembrano troppo belle per essere vere - se invii ETH a un indirizzo giveaway, non riceverai un giveaway e non potrai recuperare i tuoi fondi. + +[Maggiori informazioni sulla prevenzione delle truffe](/security/#common-scams) + +### La mia transazione è bloccata {#stuck-transaction} + +Le transazioni su Ethereum a volte possono bloccarsi se hai inviato una commissione sulle transazioni inferiore a quella richiesta per la domanda di rete. Molti portafogli prevedono un'opzione per reinviare la stessa transazione con una commissione sulle transazioni più elevata per consentire l'elaborazione. In alternativa, è possibile annullare una transazione in sospeso inviando una transazione al proprio indirizzo e utilizzando lo stesso nonce della transazione in sospeso. + +[Come velocizzare o annullare una transazione in sospeso su MetaMask](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) + +[Come annullare le transazioni Ethereum in sospeso](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) + +### Come posso fare mining in Ethereum? {#mining-ethereum} + +Il mining su Ethereum non è più possibile. Il mining è stato disattivato quando Ethereum è passato dal proof-of-work al proof-of-stake. Ora, invece dei miner, Ethereum ha i validatori. I validatori mettono ETH in staking e ricevono ricompense per proteggere la rete. + +### Come divento uno staker/validatore? {#become-validator} + +Per diventare un validatore, devi mettere in staking 32 ETH nel contratto di deposito di Ethereum e configurare un nodo del validatore. Ulteriori informazioni sono disponibili sulle nostre [pagine di staking](/staking) e al [launchpad di staking](https://launchpad.ethereum.org/). diff --git a/src/content/translations/it/contributing/adding-desci-projects/index.md b/public/content/translations/it/contributing/adding-desci-projects/index.md similarity index 100% rename from src/content/translations/it/contributing/adding-desci-projects/index.md rename to public/content/translations/it/contributing/adding-desci-projects/index.md diff --git a/src/content/translations/it/contributing/adding-developer-tools/index.md b/public/content/translations/it/contributing/adding-developer-tools/index.md similarity index 100% rename from src/content/translations/it/contributing/adding-developer-tools/index.md rename to public/content/translations/it/contributing/adding-developer-tools/index.md diff --git a/src/content/translations/it/contributing/adding-exchanges/index.md b/public/content/translations/it/contributing/adding-exchanges/index.md similarity index 100% rename from src/content/translations/it/contributing/adding-exchanges/index.md rename to public/content/translations/it/contributing/adding-exchanges/index.md diff --git a/src/content/translations/it/contributing/adding-glossary-terms/index.md b/public/content/translations/it/contributing/adding-glossary-terms/index.md similarity index 100% rename from src/content/translations/it/contributing/adding-glossary-terms/index.md rename to public/content/translations/it/contributing/adding-glossary-terms/index.md diff --git a/src/content/translations/it/contributing/adding-layer-2s/index.md b/public/content/translations/it/contributing/adding-layer-2s/index.md similarity index 100% rename from src/content/translations/it/contributing/adding-layer-2s/index.md rename to public/content/translations/it/contributing/adding-layer-2s/index.md diff --git a/src/content/translations/it/contributing/adding-products/index.md b/public/content/translations/it/contributing/adding-products/index.md similarity index 100% rename from src/content/translations/it/contributing/adding-products/index.md rename to public/content/translations/it/contributing/adding-products/index.md diff --git a/src/content/translations/it/contributing/adding-staking-products/index.md b/public/content/translations/it/contributing/adding-staking-products/index.md similarity index 100% rename from src/content/translations/it/contributing/adding-staking-products/index.md rename to public/content/translations/it/contributing/adding-staking-products/index.md diff --git a/src/content/translations/it/contributing/adding-wallets/index.md b/public/content/translations/it/contributing/adding-wallets/index.md similarity index 100% rename from src/content/translations/it/contributing/adding-wallets/index.md rename to public/content/translations/it/contributing/adding-wallets/index.md diff --git a/src/content/translations/it/contributing/content-resources/index.md b/public/content/translations/it/contributing/content-resources/index.md similarity index 100% rename from src/content/translations/it/contributing/content-resources/index.md rename to public/content/translations/it/contributing/content-resources/index.md diff --git a/src/content/translations/it/contributing/design-principles/index.md b/public/content/translations/it/contributing/design-principles/index.md similarity index 100% rename from src/content/translations/it/contributing/design-principles/index.md rename to public/content/translations/it/contributing/design-principles/index.md diff --git a/src/content/translations/it/contributing/design/adding-design-resources/index.md b/public/content/translations/it/contributing/design/adding-design-resources/index.md similarity index 100% rename from src/content/translations/it/contributing/design/adding-design-resources/index.md rename to public/content/translations/it/contributing/design/adding-design-resources/index.md diff --git a/src/content/translations/it/contributing/design/index.md b/public/content/translations/it/contributing/design/index.md similarity index 100% rename from src/content/translations/it/contributing/design/index.md rename to public/content/translations/it/contributing/design/index.md diff --git a/src/content/translations/it/contributing/index.md b/public/content/translations/it/contributing/index.md similarity index 100% rename from src/content/translations/it/contributing/index.md rename to public/content/translations/it/contributing/index.md diff --git a/src/content/translations/it/contributing/quizzes/index.md b/public/content/translations/it/contributing/quizzes/index.md similarity index 100% rename from src/content/translations/it/contributing/quizzes/index.md rename to public/content/translations/it/contributing/quizzes/index.md diff --git a/src/content/translations/it/contributing/translation-program/faq/index.md b/public/content/translations/it/contributing/translation-program/faq/index.md similarity index 100% rename from src/content/translations/it/contributing/translation-program/faq/index.md rename to public/content/translations/it/contributing/translation-program/faq/index.md diff --git a/src/content/translations/it/contributing/translation-program/how-to-translate/index.md b/public/content/translations/it/contributing/translation-program/how-to-translate/index.md similarity index 100% rename from src/content/translations/it/contributing/translation-program/how-to-translate/index.md rename to public/content/translations/it/contributing/translation-program/how-to-translate/index.md diff --git a/src/content/translations/it/contributing/translation-program/index.md b/public/content/translations/it/contributing/translation-program/index.md similarity index 100% rename from src/content/translations/it/contributing/translation-program/index.md rename to public/content/translations/it/contributing/translation-program/index.md diff --git a/src/content/translations/it/contributing/translation-program/mission-and-vision/index.md b/public/content/translations/it/contributing/translation-program/mission-and-vision/index.md similarity index 100% rename from src/content/translations/it/contributing/translation-program/mission-and-vision/index.md rename to public/content/translations/it/contributing/translation-program/mission-and-vision/index.md diff --git a/src/content/translations/it/contributing/translation-program/resources/index.md b/public/content/translations/it/contributing/translation-program/resources/index.md similarity index 100% rename from src/content/translations/it/contributing/translation-program/resources/index.md rename to public/content/translations/it/contributing/translation-program/resources/index.md diff --git a/public/content/translations/it/contributing/translation-program/translators-guide/index.md b/public/content/translations/it/contributing/translation-program/translators-guide/index.md new file mode 100644 index 00000000000..508547fedba --- /dev/null +++ b/public/content/translations/it/contributing/translation-program/translators-guide/index.md @@ -0,0 +1,293 @@ +--- +title: Guida per i traduttori +lang: it +description: Istruzioni e suggerimenti per i traduttori di ethereum.org +--- + +# Guida di stile per la traduzione di ethereum.org {#style-guide} + +La guida di stile per la traduzione di ethereum.org contiene alcune linee guida, istruzioni e consigli più importanti per i traduttori che ci aiutano a localizzare il sito web. + +Questo documento funge da guida generale e non è specifico per nessuna lingua. + +In caso di domande, suggerimenti o feedback, non esitare a contattarci all'indirizzo translations@ethereum.org, inviare un messaggio a @ethdotorg su Crowdin oppure [unisciti al nostro Discord](https://discord.gg/ethereum-org), dove puoi inviarci un messaggio nel canale #traduzioni o contattare un membro del team. + +## Usare Crowdin {#using-crowdin} + +Puoi trovare le istruzioni di base su come partecipare al progetto in Crowdin e su come utilizzare l'editor online di Crowdin nella pagina del [Programma di traduzione](/contributing/translation-program/#how-to-translate). + +Se vuoi saperne di più su Crowdin e utilizzare alcune delle sue funzionalità avanzate, la [knowledge base di Crowdin](https://support.crowdin.com/online-editor/) contiene molte guide approfondite e panoramiche su tutte le funzionalità di Crowdin. + +## Cogliere l'essenza del messaggio {#capturing-the-essence} + +Quando traduci contenuti per ethereum.org, evita traduzioni letterali. + +È importante che le traduzioni colgano l'essenza del messaggio. Questo potrebbe significare riformulare alcune frasi o utilizzare traduzioni descrittive, invece di tradurre parola per parola. + +Le varie lingue hanno diverse regole grammaticali, convenzioni stilistiche o sintattiche. Quando traduci, presta attenzione a come sono strutturate le frasi nella lingua di destinazione ed evita di tradurre letteralmente l'originale in inglese, poiché ciò può tradursi in una sintassi e in una leggibilità delle frasi scarse. + +Invece di tradurre il testo di partenza parola per parola, consigliamo di leggere l'intera frase e di adattarla alle convenzioni della lingua di destinazione. + +## Formale vs. informale {#formal-vs-informal} + +Usiamo la forma di cortesia, sempre educata e appropriata per tutti i visitatori. + +L'uso della forma di cortesia ci consente di evitare di sembrare non ufficiali od offensivi e funziona indipendentemente dall'età e dal sesso del visitatore. + +La maggior parte delle lingue indoeuropee e afroasiatiche utilizzan pronomi personali di seconda persona specifici in base al sesso, che distinguono tra maschio e femmina. Quando ci rivolgiamo all'utente o utilizziamo pronomi possessivi, possiamo di evitare di indovinare il sesso del visitatore, poiché la forma di cortesia è generalmente applicabile e coerente, indipendentemente dal genere dell'interlocutore. + +## Vocabolario e significato semplici e chiari {#simple-vocabulary} + +Il nostro obiettivo è quello di rendere i contenuti sul sito comprensibili a quante più persone possibile. + +Nella maggior parte dei casi, ciò può essere ottenuto efficacemente utilizzando parole semplici e brevi, di facile comprensione. Se esistono più traduzioni possibili per una certa parola nella tua lingua con lo stesso significato, l'opzione migliore è molto spesso la parola più breve che riflette chiaramente il significato. + +## Sistema di scrittura {#writing-system} + +Ethereum.org è disponibile in diverse lingue, che utilizzano sistemi di scrittura (o script di scrittura) alternativi a quello latino. + +Tutti i contenuti dovrebbero essere tradotti utilizzando il sistema di scrittura corretto per la lingua specifica e non dovrebbero includere parole scritte con caratteri latini. + +Nel tradurre i contenuti, si dovrebbe fare in modo che le traduzioni siano coerenti e non includano caratteri latini. + +Un equivoco comune è che "Ethereum" debba essere scritto sempre in caratteri latini. Questa è un'idea errata: occorre utilizzare l'ortografia di Ethereum nativa in base alla lingua (ad es. 以太坊 in cinese, إيثيريوم in arabo, ecc.). + +**Quanto sopra non si applica alle lingue in cui i nomi propri non vanno generalmente tradotti.** + +## Tradurre i metadati della pagina {#translating-metadata} + +Alcune pagine contengono metadati sulla pagina, come 'title', 'lang', 'description', 'sidebar', ecc. + +Quando carichiamo le nuove pagine su Crowdin, nascondiamo i contenuti da non tradurre. Ciò significa che tutti i metadati visibili ai traduttori su Crowdin dovrebbero essere tradotti. + +Invitiamo a prestare particolare attenzione nella traduzione di stringhe il cui testo di origine è "en". Questa sigla rappresenta la lingua in cui la pagina è disponibile e dovrebbe essere tradotta con il [codice linguistico ISO della lingua di destinazione](https://www.andiamo.co.uk/resources/iso-language-codes/). Queste stringhe dovrebbero sempre essere tradotte usando caratteri latini, non lo script di scrittura nativo della lingua di destinazione. + +Se non sei sicuro/a di quale codice linguistico usare, puoi cercare nella memoria di traduzione su Crowdin oppure individuare il codice linguistico per la tua lingua nell'URl della pagina, nell'editor online di Crowdin. + +Alcuni esempi di codici linguistici per le lingue più diffuse: + +- Arabo - ar +- Cinese Semplificato - zh +- Francese - fr +- Hindi - hi +- Spagnolo - es + +## Titoli di articoli esterni {#external-articles} + +Alcune stringhe contengono titoli di articoli esterni. Gran parte delle nostre pagine di documentazione per sviluppatori contiene link ad articoli esterni, per ulteriori letture. Le stringhe contenenti titoli di articoli devono esser tradotte, indipendentemente dalla lingua dell'articolo, per assicurare un'esperienza dell'utente più coerente per i visitatori della pagina nella propria lingua. + +Di seguito puoi trovare alcuni esempi di come queste stringhe appaiono ai traduttori e come identificarle (i link agli articoli si trovano prevalentemente in fondo a queste pagine, nella sezione "Ulteriori letture"): + +![Titoli di articoli in sidebar.png](./article-titles-in-sidebar.png) ![Titoli di articoli in editor.png](./article-titles-in-editor.png) + +## Avvisi di Crowdin {#crowdin-warnings} + +Crowdin offre una funzionalità integrata che avvisa i traduttori quando stanno per commettere un errore. Crowdin ti avviserà automaticamente di questo prima di salvare la tua traduzione se dimentichi di includere un tag dal testo sorgente, se traduci elementi che non dovrebbero essere tradotti, se inserisci più spazi consecutivi, dimentichi la punteggiatura finale, ecc. Se visualizzi un avviso simile a questo, ti invitiamo a tornare indietro e ricontrollare la traduzione inserita. + +**Non ignorare mai questi avvisi, poiché solitamente significano che c'è qualcosa che non va o che manca una parte fondamentale del testo di partenza.** + +Un esempio di avviso di Crowdin quando dimentichi di aggiungere un tag nella tua traduzione: ![Esempio di avviso di Crowdin](./crowdin-warning-example.png) + +## Gestire tag e frammenti di codice {#dealing-with-tags} + +Molti dei contenuti di origine contengono tag e variabili, evidenziati in giallo nell'editor di Crowdin. Questi svolgono diverse funzioni e dovrebbero essere trattati correttamente. + +**Impostazioni di Crowdin** + +Per semplificare la gestione dei tag e copiarli direttamente dal testo di partenza, consigliamo di modificare le tue impostazioni nell'editor di Crowdin. + +1. Apri le impostazioni ![Come aprire le impostazioni nell'editor](./editor-settings.png) + +2. Scorri verso il basso fino alla sezione "HTML tags displaying” + +3. Seleziona "Hide"![Seleziona "Hide"](./hide-tags.png) + +4. Fai clic su "Save" + +Selezionando quest'opzione, il testo del tag completo non sarà più mostrato e sarà sostituito da un numero. Durante la traduzione, facendo clic su questo tag si copierà automaticamente lo stesso tag nel campo di traduzione. + +**Link** + +Potresti notare link completi a pagine su ethereum.org o altri siti web. + +Dovrebbero essere identici a quelli originali e non essere modificati o tradotti. Se traduci un link o lo modifichi in qualche modo, anche solo rimuovendone una parte, come un backslash (/), lo renderai corrotto o inutilizzabile. + +Il modo migliore per gestire i collegamenti è copiarli direttamente dal testo di partenza, facendo clic su di essi o utilizzando il pulsante "Copy Source" (Alt+C). + +![Esempio di link.png](./example-of-link.png) + +I link appaiono nel testo di partenza anche sotto forma di tag (cioè <0> ). Se passi sul tag, l'editor ne mostrerà il contenuto completo; talvolta questi tag rappresentano dei link. + +È molto importante copiare i link dal testo di partenza senza modificarne l'ordine. + +Se l'ordine dei tag viene modificato, il link corrispondente risulterà corrotto. + +![Esempio di link all'interno di tag.png](./example-of-links-inside-tags.png) + +**Tag e variabili** + +Il testo di partenza può contenere diversi tipi di tag, che dovrebbero sempre essere copiati dalla sorgente e mai modificati. Analogamente a quanto detto sopra, anche l'ordine di questi tag nella traduzione dovrebbe rimanere identico a quello del testo originale. + +I tag contengono sempre un tag d'apertura e uno di chiusura. In gran parte dei casi, il testo tra i tag d'apertura e di chiusura va tradotto. + +Esempio: ``Decentralizzato`` + +`` - _Tag d'apertura che rende il testo in grassetto_ + +Decentralizzato - _Testo traducibile_ + +`` - _Tag di chiusura_ + +![Esempio di tag "forti".png](./example-of-strong-tags.png) + +I frammenti di codice vanno trattati in maniera leggermente diversa rispetto agli altri tag, poiché contengono codice che non va tradotto. + +Esempio: ``nonce`` + +`` - _Tag d'apertura, contenente un frammento di codice_ + +nonce - _Testo non traducibile_ + +`` - _Tag di chiusura_ + +![Esempio di frammenti di codice.png](./example-of-code-snippets.png) + +Il testo di partenza contiene anche tag abbreviati, contenenti solo numeri, il che significa che la loro funzione non è immediatamente ovvia. Puoi passare su questi tag per vedere esattamente quale scopo assolvono. + +Nell'esempio seguente, passando con il mouse sul <0> tag puoi vedere che rappresenta `` e contiene un frammento di codice, quindi il contenuto non va tradotto. + +![Esempio di tag ambigui.png](./example-of-ambiguous-tags.png) + +## Formule/abbreviazioni brevi vs. complete {#short-vs-full-forms} + +Nel sito web sono usate molte abbreviazioni, es. dapp, NFT, DAO, DeFi, ecc. Queste abbreviazioni sono comunemente usate in inglese e gran parte dei visitatori del sito web ne è a conoscenza. + +Dal momento che di solito non esistono traduzioni attestate in altre lingue, il modo migliore per trattare questi termini e altri simili è quello di fornire una traduzione descrittiva della forma estesa e aggiungere l'abbreviazione inglese tra parentesi. + +Non tradurre queste abbreviazioni, poiché la maggior parte delle persone non le conoscerebbe e le versioni localizzate non avrebbero molto senso per la maggior parte dei visitatori. + +Esempio di come tradurre le dapp: + +- Applicazioni decentralizzate (dApp) → _Tradotto integralmente (abbreviazione tra parentesi)_ + +## Termini senza traduzioni attestate {#terms-without-established-translations} + +Alcuni termini potrebbero non avere traduzioni attestate in altre lingue e sono ampiamente noti con il termine originale in inglese. Tali termini includono principalmente concetti recenti, come Proof of Work, Proof of Stake, Beacon Chain, staking, ecc. + +Sebbene la traduzione di questi termini possa sembrare innaturale, poiché la versione inglese è comunemente usata anche in altre lingue, si consiglia vivamente di tradurli. + +Traducendoli, sentiti libero di essere creativo, usa traduzioni descrittive o semplicemente traducili in maniera letterale. + +**Il motivo per cui la maggior parte dei termini dovrebbe essere tradotta, invece di lasciarne alcuni in inglese, è il fatto che questa nuova terminologia diventerà più diffusa in futuro, man mano che più persone inizieranno a utilizzare Ethereum e le relative tecnologie. Se vogliamo coinvolgere più persone da tutto il mondo in questo spazio, dobbiamo fornire una terminologia comprensibile in quante più lingue possibili, anche se dobbiamo crearla noi stessi.** + +## Pulsanti e CTA {#buttons-and-ctas} + +Il sito web contiene numerosi pulsanti, che dovrebbero essere tradotti in modo diverso dagli altri contenuti. + +Il testo del pulsante può essere identificato visualizzando gli screenshot contestuali, associati a gran parte delle stringhe, o controllando il contesto nell'editor, che include l'espressione "button". + +Le traduzioni dei pulsanti dovrebbero essere il più possibile brevi, onde evitare mancate corrispondenze di formattazione. Inoltre, le traduzioni dei pulsanti dovrebbero essere in forma imperativa, ovvero indicare un comando o una richiesta. + +![Come trovare un pulsante.png](./how-to-find-a-button.png) + +## Tradurre per l'inclusività {#translating-for-inclusivity} + +I visitatori di ethereum.org provengono da tutto il mondo e da contesti sociali diversi. La lingua sul sito web deve quindi essere neutrale, accogliente per tutti e non esclusiva. + +A tale riguardo, un aspetto importante è la neutralità di genere. Questa è facilmente ottenibile usando uno stile formale ed evitando parole specifiche per il genere nelle traduzioni. + +Un'altra forma di inclusività consiste nel tentare di tradurre per un pubblico globale, non specifico a paesi, razze o regioni. + +Infine, la lingua dovrebbe essere adatta a qualsiasi pubblico e fascia di età. + +## Traduzioni specifiche in base alla lingua {#language-specific-translations} + +Quando si traduce è importante seguire le regole grammaticali, le convenzioni e la formattazione utilizzate nella propria lingua, anziché copiare quelle del testo originale. Il testo d'origine segue le regole e convenzioni della grammatica inglese, non applicabili a molte altre lingue. + +Dovresti essere a conoscenza delle regole per la tua lingua e tradurre di conseguenza. Se ti occorre aiuto, contattaci e ti aiuteremo a trovare risorse utili su come questi elementi dovrebbero essere usati nella tua lingua. + +Alcuni esempi di aspetti a cui prestare particolare attenzione: + +### Punteggiatura, formattazione {#punctuation-and-formatting} + +**Maiuscole/minuscole** + +- Esistono notevoli differenze nell'uso delle maiuscole/minuscole nelle varie lingue. +- In inglese, è comune usare la maiuscola per tutte le parole di titoli e nomi, mesi e giorni, nomi di lingue, festività, ecc. In molte altre lingue, questo è sbagliato dal punto di vista grammaticale, in quanto vigono regole diverse sull'uso delle maiuscole/minuscole. +- Alcune lingue hanno anche regole sull'uso della maiuscola per pronomi personali, sostantivi e alcuni aggettivi, che in inglese vengono scritti con l'iniziale minuscola. + +**Spaziatura** + +- Le regole ortografiche definiscono l'uso degli spazi per ogni lingua. Poiché gli spazi sono usati ovunque, queste regole sono alcune delle più distinte e gli spazi sono alcuni degli elementi maggiormente tradotti in modo improprio. +- Alcune differenze comuni nella spaziatura tra l'inglese e altre lingue: + - Spazio prima dell'unità di misura e delle valute (es. USD, EUR, kB, MB) + - Spazio prima dei segni di grado (es. °C, ℉) + - Spazio prima di certi segni di punteggiatura, specialmente i puntini di sospensione (…) + - Spazio prima e dopo le barre (/) + +**Elenchi** + +- Ogni lingua ha una diversa e complessa serie di regole per la redazione di elenchi. Questi possono differire significativamente rispetto all'inglese. +- In alcune lingue, la prima parola di ogni nuova riga deve essere maiuscola, mentre in altre le nuove righe devono iniziare con lettere minuscole. Molte lingue hanno anche regole differenti sull'uso delle maiuscole/minuscole negli elenchi, a seconda della lunghezza di ogni riga. +- Lo stesso si applica alla punteggiatura dei vari punti dell'elenco. La punteggiatura finale negli elenchi può essere un punto (**.**), una virgola (**,**) o un punto e virgola (**;**), a seconda della lingua. + +**Virgolette** + +- Le varie lingue usano tipi diversi di virgolette. Copiare semplicemente le virgolette inglesi dal segmento originale spesso è sbagliato. +- Tra i tipi più comuni di virgolette troviamo: + - „testo di esempio“ + - ‚testo di esempio’ + - »testo di esempio« + - “testo di esempio” + - ‘testo di esempio’ + - «testo di esempio» + +**Trattini lunghi e corti** + +- In inglese si utilizza un trattino corto (-) per unire parole o parti diverse di una parola e un trattino lungo (–) per indicare un intervallo o una pausa. +- Molte lingue hanno regole diverse per l'uso di trattini corti e lunghi, che dovrebbero essere osservate. + +### Formati {#formats} + +**Numeri** + +- La differenza principale nella scrittura dei numeri nelle varie lingue riguarda il separatore usato per decimali e migliaia. Per le migliaia, può essere un punto, una virgola o uno spazio. Analogamente, alcune lingue usano un punto decimale, mentre altre usano una virgola. + - Alcuni esempi di grandi numeri: + - Inglese – **1,000.50** + - Spagnolo – **1.000,50** + - Francese – **1 000,50** +- Un'altra considerazione importante sulla traduzione dei numeri riguarda il segno percentuale. Può essere scritto in diversi modi: **100%**, **100 %** o **%100**. +- Infine, i numeri negativi possono esser scritti diversamente, a secnda della lingua: -100, 100-, (100) o [100]. + +**Date** + +- Traducendo le date, esistono numerose considerazioni e differenze basate sulla lingua. Ciò include il formato della data, il separatore, l'uso di maiuscole e minuscole e gli zeri iniziali. Esistono anche differenze tra le date scritte per esteso e le date numeriche. + - Alcuni esempi di formati di data diversi: + - Inglese UK (gg/mm/aaaa) – 1st January, 2022 + - Inglese US (mm/gg/aaaa) – January 1st, 2022 + - Cinese (aaaa-mm-gg) – 2022 年 1 月 1 日 + - Francese (gg/mm/aaaa) – 1er janvier 2022 + - Italiano (gg/mm/aaaa) – 1º gennaio 2022 + - Tedesco (gg/mm/aaaa) – 1. Januar 2022 + +**Valute** + +- Tradurre le valute può essere complicato, a causa dei diversi formati, convenzioni e conversioni. Come regola generale, consigliamo di lasciare la valuta riportata nel testo originale. Puoi aggiungere la tua valuta locale e la conversione tra parentesi, per comodità del lettore. +- Le principali differenze nella scrittura delle valute nelle varie lingue riguardano il posizionamento dei simboli, l'uso di virgole o punti decimali, la spaziatura e l'uso di abbreviazioni o simboli. + - Posizionamento del simbolo: $100 o 100$ + - Virgole vs. punti decimali: 100,50$ o 100.50$ + - Spaziatura: 100$ o 100 $ + - Abbreviazioni vs. simboli: 100 $ o 100 USD + +**Unità di misura** + +- Come regola generale, consigliamo di lasciare le unità di misura come appaiono nel testo originale. Se il tuo paese usa un sistema differente, puoi includere la conversione tra parentesi. +- Oltre alla localizzazione delle unità di misura, è importante notare anche il diverso trattamento di tali unità nelle varie lingue. La differenza principale riguarda la spaziatura tra numero e unità, che può variare in base alla lingua. Esempi di ciò includono: 100kB o 100 kB, 50°F o 50 °F. + +## Conclusioni {#conclusion} + +Tradurre ethereum.org è una grande opportunità per conoscere i diversi aspetti di Ethereum. + +Quando traduci, cerca di non andare troppo in fretta. Prendila con calma e goditi l'esperienza! + +Grazie per aver partecipato al Programma di Traduzione e per averci aiutato a rendere il sito web accessibile a un pubblico più ampio. La comunità di Ethereum è globale e siamo felici che tu ne faccia parte! diff --git a/public/content/translations/it/dao/index.md b/public/content/translations/it/dao/index.md new file mode 100644 index 00000000000..47f38166d76 --- /dev/null +++ b/public/content/translations/it/dao/index.md @@ -0,0 +1,165 @@ +--- +title: Organizzazioni autonome decentralizzate (DAO) +description: Una panoramica delle DAO su Ethereum +lang: it +template: use-cases +emoji: ":handshake:" +sidebarDepth: 3 +image: /use-cases/dao-2.png +alt: Rappresentazione di una votazione DAO su una proposta. +summaryPoint1: Community posseduta dai membri, prive di leadership centralizzata. +summaryPoint2: Un modo sicuro per collaborare con sconosciuti su Internet. +summaryPoint3: Un luogo sicuro per impegnare fondi in una causa specifica. +--- + +## Cosa sono le DAO? {#what-are-daos} + +Una DAO è un'organizzazione posseduta collettivamente e governata dalla blockchain, che opera per realizzare una missione condivisa. + +Le DAO ci consentono di lavorare con persone con la stessa mentalità provenienti da tutto il mondo, senza doversi fidare di un capo benevolo, per la gestione di fondi od operazioni. Non esiste alcun CEO che possa spendere i fondi secondo i propri capricci, o CFO che possa manipolare i libri contabili. Invece, le regole basate sulla blockchain, integrate nel codice, definiscono il funzionamento dell'organizzazione e come vengono spesi i fondi. + +Contengono delle tesoriere integrate, a cui nessuno ha l'autorità di accedere senza l'approvazione del gruppo. Le decisioni sono governate da proposte e votazioni, per assicurarsi che tutti nell'organizzazione abbiano voce in capitolo, e che tutto si verifichi in modo trasparente sulla catena. + +## Perché abbiamo bisogno delle DAO? {#why-dao} + +Per avviare un'organizzazione con altre persone quando sono in ballo finanziamenti e denaro occorre riporre molta fiducia nei propri compagni di avventura. Ma è difficile fidarsi di qualcuno con cui hai interagito solo tramite Internet. Con le DAO non occorre fidarsi di nessun altro nel gruppo, bensì solamente del codice DAO, che è al 100% trasparente e verificabile da chiunque. + +Ciò apre molte opportunità di cooperazione e coordinamento a livello globale. + +### Un confronto {#dao-comparison} + +| DAO | Organizzazione tradizionale | +| --------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| Di solito orizzontale e completamente democratizzata. | Di solito gerarchica. | +| Votazione richiesta dai membri per l'implementazione di eventuali modifiche. | A seconda della struttura, le modifiche possono essere richieste da una sola parte oppure sottoposte a votazione. | +| Conteggio dei voti e implementazione automatica del risultato senza intermediari. | Se la votazione è consentita, i voti sono conteggiati internamente e l'esito della votazione deve essere gestito manualmente. | +| I servizi offerti vengono gestiti automaticamente in modo decentralizzato (ad esempio distribuzione di fondi filantropici). | Richiede manipolazione umana o automazione controllata centralmente, suscettibile di manipolazione. | +| Tutte le attività sono trasparenti e completamente pubbliche. | L'attività è tipicamente privata e limitata al pubblico. | + +### Esempi di DAO {#dao-examples} + +Per aiutarti a comprendere meglio, ecco alcuni esempi di come potresti utilizzare una DAO: + +- Beneficenza – potresti accettare donazioni da chiunque nel mondo e votare su quali cause finanziare. +- Proprietà collettiva – potresti acquistare beni fisici o digitali e i membri possono votare su come usarli. +- Iniziative e sovvenzioni – potresti creare un fondo di rischio che riunisce capitale di investimento e vota sulle iniziative da finanziare. Il denaro rimborsato potrebbe essere successivamente ridistribuito tra i membri del DAO. + +## Come funziona la DAO? {#how-daos-work} + +La spina dorsale di una DAO è il suo contratto intelligente, che definisce le regole dell'organizzazione e detiene il patrimonio del gruppo. Una volta che il contratto è attivo su Ethereum, nessuno può modificare le regole se non tramite voto. Nessuno può fare qualcosa che non sia previsto dalle regole e dalla logica del codice. E poiché anche il patrimonio è definito dal contratto intelligente, ciò significa che nessuno può spendere il denaro senza l'approvazione del gruppo. Questo significa che le DAO non hanno bisogno di un'autorità centrale. Al contrario, il gruppo prende le decisioni collettivamente e i pagamenti sono autorizzati automaticamente quando le proposte sono approvate dal voto. + +Ciò è possibile perché i contratti intelligenti sono a prova di manomissione, una volta che sono attivi su Ethereum. Non è possibile modificare il codice (le regole della DAO) senza che gli altri lo notino, perché tutto è pubblico. + + + Di più sui contratti intelligenti + + +## Ethereum e DAO {#ethereum-and-daos} + +Ethereum è la base perfetta per le DAO per una serie di motivi: + +- Il consenso di Ethereum è sufficientemente distribuito e affermato affinché le organizzazioni possano fidarsi della rete. +- Il codice del contratto intelligente non è modificabile una volta attivato, nemmeno dai suoi proprietari. Ciò permette alla DAO di funzionare secondo le regole con cui è stata programmata. +- I contratti intelligenti possono inviare/ricevere fondi. In caso contrario occorrerebbe un intermediario fidato per gestire i fondi del gruppo. +- La community di Ethereum si è dimostrata più collaborativa che competitiva, consentendo l'emergere rapido di migliori pratiche e sistemi di supporto. + +## Governance della DAO {#dao-governance} + +Ci sono molte considerazioni da fare governando una DAO, ad esempio, come funzionano le votazioni e le proposte. + +### Delegazione {#governance-delegation} + +Una delegazione è la versione della democrazia rappresentativa della DAO. I titolari di token delegano i voti agli utenti da loro stessi nominati e si impegnano a gestire il protocollo e a rimanere informati. + +#### Un celebre esempio {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) – I titolari di ENS possono delegare i propri voti a membri impegnati della community perché li rappresentino. + +### Governance automatica delle transazioni {#governance-example} + +In molte DAO, le transazioni saranno eseguite automaticamente se un quorum dei membri vota in modo affermativo. + +#### Un celebre esempio {#governance-example} + +[Nouns](https://nouns.wtf) – Nelle DAO di Nouns, una transazione è eseguita automaticamente al raggiungimento di un quorum di voti e una maggioranza di voti affermativi, se non ha ricevuto veti dai fondatori. + +### Governance multifirma {#governance-example} + +Mentre le DAO potrebbero avere migliaia di membri votanti, i fondi possono vivere in un portafoglio condiviso da 5-20 membri attivi della community, ritenuti affidabili e solitamente doxxati (identità pubbliche note alla community). Dopo un voto, i firmatari multifirma eseguono la volontà della community. + +## Leggi sulle DAO {#dao-laws} + +Nel 1977, il Wyoming inventò la LLC, che protegge gli imprenditori e ne limita le responsabilità. Più di recente, lo Stato è stato il pioniere della legge sulle DAO, che stabilisce lo status giuridico delle DAO. Al momento, Wyoming, Vermont e le Isole Vergini hanno una qualche forma di legge sulle DAO. + +### Un celebre esempio {#law-example} + +[CityDAO](https://citydao.io) – CityDao ha utilizzato la legge sulle DAO del Wyoming per acquistare 40 acri di terreno nei pressi del Parco Nazionale di Yellowstone. + +## Aderire a una DAO {#dao-membership} + +Ci sono diversi modelli per aderire a una DAO. L'adesione può determinare come funziona il voto e altri aspetti chiave della DAO. + +### Adesione basata su token {#token-based-membership} + +In genere è completamente senza permessi, a seconda del token utilizzato. Questi token di governance possono essere per lo più scambiati senza permessi su uno scambio decentralizzato. Altri, invece, devono esser guadagnati fornendo liquidità o altri tipi di "Proof of Work". In entrambi i casi, la semplice detenzione del token garantisce l'accesso al voto. + +_Di solito usato per governare ampi protocolli decentralizzati e/o i token stessi._ + +#### Un celebre esempio {#token-example} + +[MakerDAO](https://makerdao.com) – Il token MKR di MakerDAO è ampiamente disponibile sugli scambi decentralizzati e chiunque può acquistare il potere di voto sul futuro del protocollo di Maker. + +### Adesione basata su quote {#share-based-membership} + +I DAO basati su quote sono maggiormente soggetti a permessi, ma comunque abbastanza aperti. Tutti i potenziali membri possono inviare una proposta di adesione alla DAO, solitamente offrendo un tributo di qualche valore sotto forma di token o di lavoro. Le quote rappresentano il potere di voto diretto e la proprietà. I membri possono uscire in qualsiasi momento con la propria quota proporzionale del patrimonio. + +_In genere usato per organizzazioni più compatte e incentrate sul fattore umano, come enti di beneficenza, collettivi di lavoratori e club di investimento. Può anche governare protocolli e token._ + +#### Un celebre esempio {#share-example} + +[MolochDAO](http://molochdao.com/) – MolochDAO si concentra sul finanziamento di progetti Ethereum. Richiede una proposta di adesione in modo che il gruppo possa valutare se il richiedente ha la competenza e il capitale necessari per formulare giudizi informati sui potenziali beneficiari. Non si può semplicemente acquistare l'accesso al DAO sul mercato. + +### Adesione basata sulla reputazione {#reputation-based-membership} + +La reputazione rappresenta la prova di partecipazione e conferisce potere di voto nella DAO. A differenza dell'adesione basata sui token o le quote, le DAO basate sulla reputazione non trasferiscono la proprietà ai collaboratori. La reputazione non può esser comprata, trasferita o delegata; i membri della DAO devono ottenere la reputazione tramite la loro partecipazione. Il voto su catena è privo di permessi e i potenziali membri possono inviare liberamente proposte per unirsi alla DAO e richiedere di ricevere reputazione e token come ricompensa in cambio dei loro contributi. + +_Tipicamente usati per lo sviluppo e la governance decentralizzati di protocolli e dApp, ma anche adatti a una serie eterogenea di organizzazioni, quali enti di beneficenza, collettivi di lavoratori, club d'investimento, etc._ + +#### Un celebre esempio {#reputation-example} + +[DXdao](https://DXdao.eth.link) – DXdao è un collettivo sovrano globale che dal 2019 crea e amministra protocolli e applicazioni decentralizzati. Sfrutta la governance basata sulla reputazione e il consenso olografico per coordinare e gestire i fondi, il che significa che nessuno può comprarsi il potere per influenzarne il futuro. + +## Aderisci a / Crea una DAO {#join-start-a-dao} + +### Aderisci a una DAO {#join-a-dao} + +- [Community di Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [Lista delle DAO di DAOHaus](https://app.daohaus.club/explore) +- [Elenco di DAO di Tally.xyz](https://www.tally.xyz) + +### Crea una DAO {#start-a-dao} + +- [Evoca una DAO con DAOHaus](https://app.daohaus.club/summon) +- [Crea una DAO di Governance con Tally](https://www.tally.xyz/add-a-dao) +- [Crea una DAO basata su Aragon](https://aragon.org/product) +- [Avvia una colonia](https://colony.io/) +- [Crea una DAO con il consenso olografico di DAOstack](https://alchemy.daostack.io/daos/create) + +## Letture consigliate {#further-reading} + +### Articoli sulle DAO {#dao-articles} + +- [Che cos'è una DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) +- [Il manuale delle DAO](https://daohandbook.xyz) +- [La casa delle DAO](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) +- [Che cos'è una DAO e a cosa serve?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) +- [Come avviare una comunità digitale basata su DAO](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) +- [Che cos'è una DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) +- [Cos'è il consenso olografico?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) +- [Le DAO non sono società: dove è importante la decentralizzazione nelle organizzazioni autonome, di Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) +- [DAO, DAC, DA e altro: una guida incompleta alla terminologia](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Blog di Ethereum](https://blog.ethereum.org) + +### Video {#videos} + +- [Che cos'è una DAO nel mondo delle criptovalute?](https://youtu.be/KHm0uUPqmVE) +- [Può una DAO costruire una città?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/public/content/translations/it/decentralized-identity/index.md b/public/content/translations/it/decentralized-identity/index.md new file mode 100644 index 00000000000..58111218ac8 --- /dev/null +++ b/public/content/translations/it/decentralized-identity/index.md @@ -0,0 +1,185 @@ +--- +title: Identità decentralizzata +description: Cos'è l'identità decentralizzata e perché è importante? +lang: it +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: /eth-gif-cat.png +summaryPoint1: I sistemi di identità tradizionali hanno centralizzato l'emissione, manutenzione e controllo dei tuoi identificativi. +summaryPoint2: L'identità decentralizzata rimuove la dipendenza da terze parti centralizzate. +summaryPoint3: Grazie alle cripto, gli utenti, ora, hanno nuovamente gli strumenti per emettere, detenere e controllare i propri identificativi e attestazioni. +--- + +L'identità è virtualmente alla base di ogni aspetto della tua vita quotidiana. Utilizzare servizi online, aprire un conto bancario, votare alle elezioni, acquistare proprietà, garantire l'occupazione; tutte queste cose richiedono di dimostrare la propria identità. + +Tuttavia, i sistemi tradizionali di gestione dell'identità si sono affidati a lungo a intermediari centralizzati, che emettono, detengono e controllano i tuoi identificativi e le tue [attestazioni](#what-are-attestations). Ciò significa che non puoi controllare le informazioni sulla tua identità, o decidere chi abbia accesso alle tue informazioni personalmente identificabili (PII), né quanto accesso abbiano tali parti. + +Per risolvere questi problemi, abbiamo sistemi di identità decentralizzati, integrati sulle blockchain pubbliche come Ethereum. L'identità decentralizzata consente agli individui di gestire le proprie informazioni di identità. Con le soluzioni di identità decentralizzata, _tu_ puoi creare identificativi, rivendicando e detenendo le tue attestazioni, senza affidarti ad autorità centrali, quali fornitori di servizi o governi. + +## Cos'è l'identità? {#what-is-identity} + +L'identità indica il senso di sé della persona, definito da caratteristiche uniche. L'identità si riferisce all'essere un _individuo_, cioè, un'entità umana distinta. L'identità, inoltre, potrebbe riferirsi ad altre entità non umane, come un'organizzazione o un'autorità. + +## Cosa sono gli identificativi? {#what-are-identifiers} + +Un identificativo è un'informazione che agisce da puntatore, verso una o più identità in particolare. Tra gli identificativi comuni vi sono: + +- Nome +- Codice fiscale/partita IVA +- Numero telefonico +- Data e luogo di nascita +- Credenziali identificative digitali, come indirizzi email, nomi utente, avatar + +Questi esempi di identificativi tradizionali sono emessi, detenuti e controllati da entità centrali. Necessiti di un'autorizzazione dal tuo governo per modificare il tuo nome, o da una piattaforma social, per modificare il tuo pseudonimo. + +## Cosa sono le attestazioni? {#what-are-attestations} + +Un'attestazione, è una dichiarazione effettuata da un'entità, in merito a un'altra entità. Se vivi in Italia, la patente di guida rilasciata dal Dipartimento dei Trasporti Terrestri (un'entità), attesta che tu (un'altra entità), sei legalmente autorizzato a guidare un'auto. + +Le attestazioni sono differenti dagli identificativi. Un'attestazione _contiene_ degli identificativi, riferiti a un'identità in particolare, ed effettua una dichiarazione su di un attributo, relativo a tale identità. Quindi, la tua patente di guida contiene degli identificativi (nome, data di nascita, indirizzo), ma è anche l'attestazione sul tuo diritto legale alla guida. + +### Cosa sono gli identificativi decentralizzati? {#what-are-decentralized-identifiers} + +Gli identificativi tradizionali, come il tuo nome legale o l'indirizzo email, si affidano a terze parti: governi e fornitori di email. Gli identificativi decentralizzati (DID), sono differenti: non sono emessi, gestiti o controllati da alcuna entità centrale. + +Gli identificativi decentralizzati sono emessi, detenuti e controllati dagli individui. Un [conto di Ethereum](/developers/docs/accounts/) è un esempio di identificativo decentralizzato. Puoi creare quanti conti desideri senza l'autorizzazione di nessuno e senza doverli memorizzare in un registro centrale. + +Gli identificativi decentralizzati sono memorizzati su libri mastri distribuiti (le blockchain), o su reti tra pari. Ciò rende i DID [unici a livello globale, risolvibili con elevata disponibilità e crittograficamente verificabili](https://w3c-ccg.github.io/did-primer/). Un identificativo decentralizzato può essere associato a diverse entità, tra cui persone, organizzazioni, o istituzioni governative. + +## Cosa rende possibili gli identificativi decentralizzati? {#what-makes-decentralized-identifiers-possible} + +### 1. Infrastruttura a Chiave Pubblica (PKI) {#public-key-infrastructure} + +L'infrastruttura a chiave pubblica (PKI) è una misura di sicurezza delle informazioni che genera una [chiave pubblica](/glossary/#public-key) e una [chiave privata](/glossary/#private-key), per un'entità. La criittografia della chiave pubblica è utilizzata nelle reti blockchain per autenticare le identità degli utenti e dimostrare la proprietà delle risorse digitali. + +Alcuni identificativi decentralizzati, come un conto di Ethereum, includono chiavi pubbliche e private. La chiave pubblica identifica chi controlla il conto, mentre le chiavi private possono firmare e decrittografare i messaggi per tale conto. La PKI fornisce le prove necessarie per autenticare le entità e impedisce il furto di identità e l'utilizzo di identità false, utilizzando le [firme crittografiche](https://andersbrownworth.com/blockchain/public-private-keys/) per verificare tutte le dichiarazioni. + +### 2. Datastore decentralizzati {#decentralized-datastores} + +Una blockchain funge da registro di dati verificabili: una repository di informazioni aperta, affidabile e decentralizzata. L'esistenza delle blockchain pubbliche elimina l'esigenza di memorizzare gli identificativi nei registri centralizzati. + +Se qualcuno deve confermare la validità di un identificativo decentralizzato, può consultare la chiave pubblica associata sulla blockchain. Ciò differisce dagli identificativi tradizionali, che richiedono l'autenticazione da parte di terzi. + +## Come fanno le attestazioni e gli identificativi decentralizzati a consentire l'identità decentralizzata? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} + +L'identità decentralizzata è l'idea che le informazioni sull'identità dovrebbero essere controllate dall'individuo, private e portatili, con attestazioni e identificativi decentralizzati come blocchi di costruzione principali. + +Nel contesto dell'identità decentralizzata, le attestazioni (anche note come [Credenziali Verificabili](https://www.w3.org/TR/vc-data-model/)), sono a prova di manomissione, dichiarazioni crittograficamente verificabili, create dall'emittente. Ogni attestazione, o Credenziale Verificabile, emessa da un'entità (es., un'organizzazione), è assocata al suo DID. + +Poiché i DID sono memorizzati sulla blockchain, chiunque può verificare la validità di un'attestazione, tramite la verifica incrociata del DID dell'emittente, su Ethereum. Essenzialmente, la blockchain di Ethereum agisce da cartella globale, che consente la verifica dei DID associati a certe entità. + +Gli identificativi decentralizzati sono il motivo per cui le attestazioni sono controllate dagli individui e verificabili. Anche se l'emittente non esiste più, il titolare avrà sempre la prova della provenienza e validità dell'attestazione. + +Inoltre, gli identificativi decentralizzati sono fondamentali per la protezione della privacy delle informazioni personali, tramite l'identità decentralizzata. Ad esempio, se un individuo invia la prova di un'attestazione (una patente di guida), la parte che verifica non necessita di controllare la validità delle informazioni nella prova. Invece, chi verifica necessita soltanto delle garanzie crittografiche dell'autenticità dell'attestazione, e dell'identità dell'organizzazione emittente, per determinare se la prova sia valida. + +## Tipi di attestazioni nell'identità decentralizzata {#types-of-attestations-in-decentralized-identity} + +Le modalità di memorizzazione e recupero delle informazioni sull'attestazione, nell'ecosistema delle identità basato su Ethereum, differiscono dalla gestione tradizionale delle identità. Ecco una panoramica dei vari approcci all'emissione, memorizzazione e verifica delle attestazioni, nei sistemi di identità decentralizzati: + +### Attestazioni esterne alla catena {#off-chain-attestations} + +Un timore per la memorizzazione su catena è che potrebbero contenere informazioni che gli individui desiderano mantenere private. La natura pubblica della blockchain di Ethereum, rende poco attraente la memorizzazione di tali attestazioni. + +La soluzione è l'emissione di attestazioni, possedute all'esterno della catena dagli utenti nei portafogli digitali, ma firmate con il DID dell'emittente, memorizzato sulla catena. Tali attestazioni sono codificate come [Token Web in JSON](https://en.wikipedia.org/wiki/JSON_Web_Token) e contengono la firma digitale dell'emittente, che consente la facile verifica delle dichiarazioni esterne alla catena. + +Ecco uno scenario ipotetico per spiegare le attestazioni esterne alla catena: + +1. Un'università (emittente), genera un'attestazione (un certificato accademico digitale), firma le proprie chiavi e la emette a Bob (il titolare dell'identità). + +2. Bob si candida per un lavoro e desidera dimostrare le proprie qualifiche accademiche a un datore di lavoro, quindi, condivide l'attestazione dal proprio portafoglio mobile. L'azienda (verificatore), può quindi confermare la validità dell'attestazione, verificando il DID dell'emittente (cioè, la sua chiave pubblica su Ethereum). + +### Attestazioni esterne alla catena con accesso persistente {#offchain-attestations-with-persistent-access} + +In questo modo, le attestazioni sono trasformate in file JSON e memorizzate all'esterno della catena (idealmente, su una piattaforma di [archiviazione decentralizzata su cloud](/developers/docs/storage/), come IPFS o Swarm). Tuttavia, un [hash](/glossary/#hash) del file JSON è memorizzato sulla catena e collegato a un DID, tramite il registro sulla catena. Il DID associato potrebbe essere quello dell'emittente dell'attestazione, o del destinatario. + +Tale approccio consente alle attestazioni di ottenere persistenza basata sulla blockchain, mantenendo le informazioni delle dichiarazioni, crittografate e verificabili. Inoltre, consente la divulgazione selettiva, poiché il titolare della chiave privata può decrittografare le informazioni. + +### Attestazioni sulla catena {#onchain-attestations} + +Le attestazioni sulla catena sono detenute nei [contratti intelligenti](/developers/docs/smart-contracts/), sulla blockchain di Ethereum. Il contratto intelligente (che agisce da registro), mapperà un'attestazione a un identificativo decentralizzato corrispondente sulla catena (una chiave pubblica). + +Ecco un esempio per dimostrare il funzionamento in pratica delle attestazioni sulla catena: + +1. Un'azienda (XYZ Corp), pianifica la vendita delle quote di proprietà utilizzando un contratto intelligente, ma desidera soltanto gli acquirenti che abbiano completato una verifica dei trascorsi personali. + +2. XYZ Corp può far eseguire le verifiche dei trascorsi personali dall'azienda, per emettere le attestazioni sulla catena di Ethereum. Tale attestazione certifica che un individuo ha superato la verifica dei trascorsi personali, senza esporre alcuna informazione personale. + +3. Il contratto intelligente che vende le quote, può verificare il contratto del registro per le identità degli acquirenti verificati, rendendo possibile la determinazione di chi possa acquistare le quote e chi no. + +### Token vincolati e identità {#soulbound} + +I [token vincolati](https://vitalik.ca/general/2022/01/26/soulbound.html) (NFT non trasferibili), potrebbero essere utilizzati per raccogliere informazioni univoche, relative a un portafoglio specifico. Ciò, effettivamente, crea un'identità univoca sulla catena, vincolata a un indirizzo di Ethereum in particolare, che potrebbe includere i token rappresentanti obiettivi (ad esempio, concludere un certo corso online o superare una soglia di punteggio in un gioco), o la partecipazione della community. + +## Benefici dell'identità decentralizzata {#benefits-of-decentralized-identity} + +1. L'identità decentralizzata aumenta il controllo individuale sulle informazioni identificative. Le attestazioni e gli identificativi decentralizzati sono verificabili senza affidarsi ad autorità centrali e servizi di terze parti. + +2. Le soluzioni di identità facilitano un metodo affidabile, semplice e che protegge la privacy, per verificare e gestire l'identità dell'utente. + +3. L'identità decentralizzata sfrutta la tecnologia della blockchain, che crea fiducia tra parti differenti, fornendo garanzie crittografiche, per dimostrare la validità delle attestazioni. + +4. L'identità decentralizzata rende portatili i dati d'identità. Gli utenti memorizzano gli identificativi e le attestazioni nel portafoglio mobile, e possono condividerli con qualsiasi parte di loro scelta. Le attestazioni e gli identificativi decentralizzati non sono bloccati nel database dell'organizzazione emittente. + +5. L'identità decentralizzata dovrebbe funzionare bene con le tecnologie a conoscenza zero emergenti, che consentiranno agli individui di dimostrare di possedere o aver svolto qualcosa, senza rivelare di cosa si tratti. Questo potrebbe divenire un potente metodo per combinare fiducia ee privacy per le applicazioni, ad esempio, per le votazioni. + +6. L'identità decentralizzata consente ai meccanismi anti-Sybil, di identificre quando un umano sta pretendendo di essere più umani, per spammare o prendersi gioco di qualche sistema. + +## Casi d'uso dell'identità decentralizzata {#decentralized-identity-use-cases} + +L'identità decentralizzata ha molti possibili casi d'uso: + +### 1. Accessi universali {#universal-dapp-logins} + +L'identità decentralizzata può aiutare a sostituire gli accessi basati sulle password, con l'[autenticazione decentralizzata](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). I fornitori di servizi possono emettere attestazioni agli utenti, memorizzabili in un portafoglio di Ethereum. Un esempo di attestazione potrebbe essere un [NFT](/nft/) che conceda, al ttolare, l'accesso a una community online. + +Una funzionalità "[Accedi con Ethereum](https://login.xyz/)", consentirebbe poi ai server di confermare il conto di Ethereum dell'utente, e di recuperare l'attestazione necessaria dal relativo indirizzo del conto. Ciò significa che gli utenti possono accedere a piattaforme e siti web, senza dover memorizzare lunghe password, migliorando l'esperienza online degli utenti. + +### 2. Autenticazione KYC {#kyc-authentication} + +Utilizzare molti servizi online, impone agli individui di fornire attestazioni e credenziali, come una patente di guida o un passaporto nazionale. Tuttavia, questo approccio è problematico poiché le informazioni private di un utente possono essere compromesse e, i fornitori di servizi, potrebbero non riuscire a verificare l'autenticità dell'attestazione. + +L'identità decentralizzata consente alle aziende di saltare i convenzonali processi di [KYC, ossia Know-Your-Customer (Verifica della Clientela)](https://en.wikipedia.org/wiki/Know_your_customer) e di autenticare le identtà degli utenti tramite le Credenziali Verificabili. Ciò riduce i costi di gestione dell'identità, impedendo l'utilizzo di documenti falsi. + +### 3. Voti e community online {#voting-and-online-communities} + +Il voto online e i social, sono due applicazioni innovative per l'identità decentralizzata. Gli schemi di voto online sono suscettibili alla manipolazione, specialmente se degli utenti malevoli creano delle identità false per votare. Chiedere agli individui di presentare le attestazioni sulla catena, può migliorare l'integrità dei processi di voto online. + +L'identità decentralizzata può aiutare a creare delle community online prive di conti falsi. Ad esempio, ogni utente potrebbe dover autenticare la propria identità tramite un sistema di identità sulla catena, come il Servizio del Nome di Ethereum, riducendo la possibile presenza di bot. + +### 4. Protezione Anti-Sybil {#sybil-protection} + +Gli attacchi Sybil si riferiscono a individui che ingannano un sistema nel pensare che siano più persone, per incrementare la propria influenza. Le [applicazioni che concedono sovvenzioni](https://gitcoin.co/grants/), utilzzando i [voti quadratici](https://www.radicalxchange.org/concepts/plural-voting/), sono vulnerabili a tali attacchi Sybil, poiché il valore di una sovvenzione aumenta con gli individui che la votano, incentivando gli utenti a dividere i propri contributi, tra più identità. Le identità decentralizzate aiutano a prevenirli, incrementando l'onere su ogni partecipante, per dimostrare che siano realmente umani, sebbene spesso senza dover rilevare informazioni private specifiche. + +## Utilizzare l'identità decentralizzata {#use-decentralized-identity} + +Esistono molti progetti ambiziosi che utilizzano Ethereum come base, per le soluzioni di identità decentralizzata: + +- **[Servizio del Nome di Ethereum (ENS)](https://ens.domains/)**: _Un sistema di denominazione decentralizzato per gli identificativi su catena, leggibili dalle macchine, quali, indirizzi di portafogli di Ethereum, hash dei contenuti e metadati._ +- **[SpruceID](https://www.spruceid.com/)**: _Un progetto di identità decentralizzata che consente agli utenti di controllare l'identità digitale con i conti di Ethereum e i profili di ENS, piuttosto che affidarsi a servizi di terze parti._ +- **[Servizio di Attestazione di Ethereum (EAS)](https://attest.sh/)**: _Un libro mastro e protocollo decentralizzato per effettuare attestazioni sulla catena, o all'esterno di essa, su qualsiasi cosa._ +- **[Prova di Umanità](https://www.proofofhumanity.id)**: _La Prova di Umanità (o PoH), è un sistema di verifica dell'identità sociale, basato su Ethereum._ +- **[BrightID](https://www.brightid.org/)**: _Una rete decentralizzata e open source di identità sociale, ideata per riformare la verifica dell'identità tramite la creazione e analisi di un grafico sociale._ +- **[Passaporto di Prova di Personalità](https://proofofpersonhood.com/)**: _Un aggregatore decentralizzato di identità digitali._ + +## Lettura consigliate {#further-reading} + +### Articoli {#articles} + +- [Casi d'Uso della Blockchain: La Blockchain nell'Identità Digitale](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ +- [Cos'è l'ERC-725 di Ethereum? Gestione dell'Identità Sovrana Personale sulla Blockchain](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Sam Town_ +- [Come la Blockchain potrebbe risolvere il problema dell'Identità Digitale](https://time.com/6142810/proof-of-humanity/) — _Andrew R. Chow_ +- [Cos'è l'Identità Decentralizzata e Perché Dovrebbe Interessarti?](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ + +### Video {#videos} + +- [Identità Decentralizzata (Sessione Live Bonus)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Un ottimo video esplicativo sull'identità decentralizzata, di Andreas Antonopolous_ +- [Accedi con Ethereum e l'Identità Decentralizzata con Ceramic, IDX, React e 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _Tutorial di YouTube sulla creazione di un sistema di gestione dell'identità, per creare, leggere e aggiornare il profilo di un utente, utilizzandone il portafoglio di Ethereum; di Nader Dabit_ +- [BrightID: Identità Decentralizzata su Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _Episodio del podcast "Bankless", incentrato su BrightID, una soluzione di identità decentralizzata per Ethereum_ +- [L'Internet esterno alla Catena: Identità Decentralizzata e Credenziali Verificabili](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — Presentazione dell'EthDenver del 2022, di Evin McMullen + +### Community {#communities} + +- [ERC-725 Alliance su GitHub](https://github.com/erc725alliance) — _Sostenitori dello standard ERC-725 per la gestione dell'identità sulla blockchain di Ethereum_ +- [Server Discord di SpruceID](https://discord.com/invite/Sf9tSFzrnt) — _Community per appassionati e sviluppatori, al lavoro su "Accedi con Ethereum"_ +- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Una community di sviluppatori, che contribuiscono alla creazione di un quadro per i dati verificabili per le applicazioni_ diff --git a/public/content/translations/it/defi/index.md b/public/content/translations/it/defi/index.md new file mode 100644 index 00000000000..58943a37eb2 --- /dev/null +++ b/public/content/translations/it/defi/index.md @@ -0,0 +1,352 @@ +--- +title: Finanza decentralizzata (DeFi) +description: Una panoramica sulla DeFi su Ethereum +lang: it +template: use-cases +emoji: ":money_with_wings:" +image: /use-cases/defi.png +alt: Logo di Eth, composto da mattoncini Lego. +sidebarDepth: 3 +summaryPoint1: Un'alternativa globale e aperta al sistema finanziario odierno. +summaryPoint2: Prodotti che ti consentono di prendere in prestito, risparmiare, investire, scambiare, e molto altro. +summaryPoint3: Basata sulla tecnologia open source, con cui chiunque può programmare. +--- + +La DeFi è un sistema finanziario aperto e globale, creato per l'era di Internet: un'alternativa a un sistema opaco, rigidamente controllato e tenuto insieme da infrastrutture e processi vecchi di decenni. Offre il controllo e la visibilità sul proprio denaro. Fornisce esposizione ai mercati globali e alternative alla tua valuta o alle opzioni bancarie locali. I prodotti della DeFi aprono i servizi finanziari a chiunque abbia una connessione a Internet, e sono prevalentemente posseduti e mantenuti dai loro utenti. Finora, decine di miliardi di dollari in criptovalute, sono confluiti per le applicazioni della DeFi, e crescono ogni giorno. + +## Cos'è la DeFi? {#what-is-defi} + +DeFi è un termine collettivo per i prodotti e servizi finanziari accessibili a chiunque possa utilizzare Ethereum: chiunque abbia una connessione a Internet. Con la DeFi, i mercati sono sempre aperti e non esistono autorità centralizzate, che possano bloccare i pagamenti, o negarti l'accesso a qualcosa. I servizi precedentemente lenti e soggetti a errori umani, sono ora automatici e più sicuri, venendo gestiti da codice ispezionabile ed esaminabile da chiunque. + +Là fuori c'è una criptoeconomia in forte espansione, in cui puoi assumere ed erogare prestiti, maturare interessi e molto altro. Gli esperti di criptovalute argentini hanno utilizzato la DeFi per sfuggire alla paralizzante inflazione. Le aziende hanno iniziato a trasmettere ai propri dipendenti, gli stipendi in tempo reale. Alcuni hanno persino estinto e pagato prestiti di milioni di dollari, senza necessità di alcuna informazione personale. + + + +## La DeFi e la finanza tradizionale {#defi-vs-tradfi} + +Uno dei metodi migliori per individuare il potenziale della DeFi, è comprendere i problemi odierni. + +- Alcune persone non sono autorizzate a configurare un conto bancario o utilizzare i servizi finanziari. +- La mancanza di accesso ai servizi finanziari può impedire alle persone di essere assunte. +- I servizi finanziari possono impedirti di ricevere pagamenti. +- Un pericolo nascosto dei servizi finanziari, riguarda i tuoi dati personali. +- Governi e istituzioni centralizzate possono chiudere i mercati a proprio piacimento. +- Gli orari di negoziazione sono spesso limitati alle ore lavorative di uno specifico fuso orario. +- I bonifici possono richiedere giorni, a causa dei processi umani interni. +- Esiste un sovrapprezzo sui servizi finanziari, poiché le istituzioni intermediarie hanno diritto alla propria parte. + +### Un confronto {#defi-comparison} + +| DeFi | Finanza tradizionale | +| ------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | +| Il titolare del tuo denaro, sei tu. | Il tuo denaro è detenuto dalle aziende. | +| Sei tu a controllare dove va il tuo denaro, e come viene speso. | Devi fidarti del fatto che le aziende non gestiscano male il tuo denaro, come nel caso di prestiti a soggetti a rischio. | +| I trasferimenti di fondi si verificano in pochi minuti. | I pagamenti possono richiedere giorni, a causa dei processi manuali. | +| L'attività di transazione è pseudonimizzata. | L'attività finanziaria è rigidamente associata alla tua identità. | +| La DeFi è aperta a tutti. | Devi fare richiesta per utilizzare i servizi finanziari. | +| I mercati sono sempre aperti. | I mercati chiudono, poiché i dipendenti necessitano di pause. | +| Si basa sulla trasparenza: chiunque può esaminare i dati di un prodotto e ispezionare il funzionamento del sistema. | Gli istituti finanziari sono libri chiusi: non puoi chiedere di visualizzarne lo storico dei prestiti o i registri delle risorse gestite, e così via. | + + + Esplora le app della DeFi + + +## Tutto è iniziato con Bitcoin... {#bitcoin} + +Bitcoin è considerabile, sotto molti aspetti, come la prima applicazione di DeFi. Bitcoin ti consente di possedere realmente e di controllare il valore, inviandolo in tutto il mondo. Infatti, fornisce un metodo, per grandi numeri di persone che non si fidano tra loro, di accordarsi su un libro mastro di conti, senza la necessità di un intermediario fidato. Bitcoin è aperto a tutti e nessuno ha l'autorità di modificarne le regole. Le regole di Bitcoin, come la sua scarsità e la sua apertura, sono scritte nella tecnologia. Non è come la finanza tradizionale, dove i governi possono stampare denaro che svaluta i tuoi risparmi e le aziende possono chiudere i mercati. + +Ethereum si basa su questo. Come per Bitcoin, le regole non sono modificabili e tutti vi hanno accesso. Inoltre, rende programmabile questo denaro digitale, utilizzando i [contratti intelligenti](/glossary#smart-contract), così che tu possa andare oltre l'archiviazione e l'invio di valore. + + + +## Denaro programmabile {#programmable-money} + +Sembra strano... "perché dovrei voler programmare il mio denaro"? Eppure, questa è più che altro una funzionalità predefinita dei token su Ethereum. Chiunque può programmare la logica nei pagamenti. Così, puoi ottenere il controllo e la sicurezza di Bitcoin, insieme ai servizi forniti dalle istituzioni finanziarie. Ciò consente di fare cose con le criptovalute che non potresti fare con Bitcoin, come assumere ed erogare prestiti, pianificare pagamenti, investire in fondi indicizzati, e molto altro. + + +
Esplora i nostri suggerimenti per le applicazioni della DeFi da provare, se sei nuovo su Ethereum.
+ + Esplora le app di DeFi + +
+ +## Cosa puoi fare con la DeFi? {#defi-use-cases} + +Esiste un'alternativa decentralizzata a gran parte dei servizi finanziari. Ma Ethereum, inoltre, offre l'opportunità di creare prodotti finanziari completamente nuovi. Questo è un elenco in continu espansione. + +- [Inviare denaro in tutto il mondo](#send-money) +- [Trasmettere denaro in tutto il mondo](#stream-money) +- [Accedere a valute stabili](#stablecoins) +- [Assumere fondi con garanzia](#lending) +- [Erogare fondi senza garanzia](#flash-loans) +- [Creare risparmi di criptovalute](#saving) +- [Scambiare token](#swaps) +- [Accrescere il proprio portafoglio](#investing) +- [Finanziare le proprie idee](#crowdfunding) +- [Acquistare assicurazioni](#insurance) +- [Gestire il proprio portafoglio](#aggregators) + + + +### Inviare denaro in tutto il mondo {#send-money} + +Essendo una blockchain, Ethereum è progettato per inviare le transazioni in modo sicuro e globale. Come Bitcoin, anche Ethereum rende l'invio di denaro in tutto il mondo, tanto facile quanto inviare un'email. È sufficiente inserire il [nome ENS](/nft/#nft-domains) del destinatario (come bob.eth), o l'indirizzo del suo conto, dal proprio portafoglio, e il pagamento arriverà (solitamente) in pochi minuti. Per inviare o ricevere pagamenti, necessiterai di un [portafoglio](/wallets/). + + + Visualizza le dApp di pagamento + + +#### Trasmettere denaro in tutto il mondo... {#stream-money} + +Su Ethereum, inoltre, è possibile trasmettere denaro. Ciò ti consente di pagare il salario di qualcuno in pochi secondi, consentendogli di accedere al proprio denaro quando necessario. Oppure, noleggiare qualcosa all'istante, come un magazzino o uno scooter elettrico. + +Se invece non vuoi inviare o trasmettere [ETH](/eth/) a causa della volatilità del suo valore, su Ethereum esistono delle valute alternative: le Stablecoin. + + + +### Accedere a valute stabili {#stablecoins} + +La volatilità delle criptovalute è un problema per molti prodotti finanziari e spese in generale. La community della DeFi lo ha risolto con le Stablecoin. Il loro valore resta ancorato a un'altra risorsa, solitamente, una valuta popolare come il dollaro americano. + +Monete come DAI o USDC, hanno un valore di pochi centesimi di dollaro. Ciò le rende perfette per guadagnare o per la vendita al dettaglio. In molti, in America Latina, le hanno utilizzate per proteggere i propri risparmi in periodi di grande incertezza per le valute emesse dal loro governo. + + + Altro sulle Stablecoin + + + + +### Assunzione di prestiti {#lending} + +L'assunzione di prestiti dai fornitori decentralizzati, si presenta in due varietà principali. + +- Tra pari: un debitore assume un prestito direttamente da un creditore specifico. +- In un gruppo: in cui creditori forniscono fondi (liquidità) a un gruppo, da cui i debitori possono assumere un prestito. + + + Vedi le dApp di assunzione di prestiti + + +Esistono molti vantaggi, derivati dall'utilizzo di un creditore decentralizzato... + +#### Assunzione di prestiti nell'anonimato {#borrowing-privacy} + +Oggi, assumere ed erogare prestiti, dipende esclusivamente dagli individui coinvolti. Prima di erogare un prestito, le banche devono sapere se è probabile che lo ripagherai. + +Il prestito decentraliizzato funzona senza l'identificazione di alcuna delle parti. Il debitore deve invece produrre garanzie reali, che il creditore riceverà automaticamente se il prestito non viene rimborsato. Alcuni creditori accettano persino NFT come garanzie. I NFT sono atti per risorse univoche, come un dipinto. [Di più sui NFT](/nft/) + +Questo ti consente di assumere un prestito senza controlli sul credito, o la trasmissione di informazioni private. + +#### Accedere a fondi globali {#access-global-funds} + +Ricorrendo a un creditore decentralizzato, hai accesso ai fondi depositati da tutto il mondo, non soltanto a quelli in custodia presso la banca o l'istituzione scelta. Ciò rende i prestiti più accessibili, migliorando i tassi d'interesse. + +#### Vantaggi fiscali {#tax-efficiencies} + +Assumere un prestito può concederti l'accesso ai fondi necessari, senza dover vendere i tuoi ETH (un evento imponibile). Puoi invece usare ETH come garanzia per un prestito di stablecoin. Così, benefici del flusso di cassa, pur mantenendo i tuoi ETH. Le Stablecoin sono token più adatti a quando necessiti di denaro contante, poiché non fluttuano in valore come gli ETH. [Di più sulle Stablecoin](#stablecoins) + +#### Prestiti istantanei {#flash-loans} + +I prestiti istantanei sono una forma più sperimentale di erogazione di prestiti decentralizzati, che ti consente di assumere prestiti senza garanzia, e senza fornire alcuna informazione personale. + +Al momento non sono ampiamente accessibili agli utenti non tecnici, ma danno un'idea di cosa potrebbe essere possibile per tutti, in futuro. + +Si basano sul fatto che il prestito è assunto e ripagato durante la stessa transazione. Se non può essere restituito, la transazione si ripristina, come se nulla fosse mai successo. + +Spesso, i fondi utilizzati sono mantenuti in gruppi di liquidità (grandi gruppi di fondi utilizzati per i prestiti). Se in un dato momento non sono utilizzati, ciò crea un'opportunità per qualcuno, di assumere il prestito di tali fondi, concluervi affari e ripagarli ineramente, letteralmente in contemporanea alla ricezione del prestito. + +Ciò significa che dev'essere inclusa molta logica, in una transazione ad hoc. Un semplice esempio potrebbe essere l'utilizzo di un prestito istantaneo per assumere il prestito di una risorsa a un prezzo, così da poterla rivendere su una piattaforma di scambio differente, dove il prezzo è maggiore. + +Quindi, in una singola transazione, avviene quanto segue: + +- Assumi il prestito di X $asset a $1,00 dalla piattaforma di scambio A +- Vendi X $asset sulla piattaforma di scambio B per $1,10 +- Ripaghi il prestito sulla piattaforma di scambio A +- Mantieni il profitto, a cui è sottratta la commissione sulla transazione + +Se l'offerta sulla piattaforma di scambio B cala improvvisamente, e l'utente non riesce ad acquistare abbastanza da coprire il prestito originale, la transazione non va semplicemente a buon fine. + +Per applicare l'esempio precedente nel mondo finanziario tradizionale, necessiteresti di un ingente importo di denaro. Queste strategie di guadagno sono accessibili soltanto a persone già ricche. I prestiti istantanei sono l'esempio ddi un futuro in cui possedere denaro non è necessariamente un prerequisito per guadagnare. + +[Di più sui prestiti istantanei](https://aave.com/flash-loans/) + + + +### Iniziare a risparmiare con le criptovalute {#saving} + +#### Erogare prestiti {#lending} + +Puoi maturare interessi sulle tue criptovalute, erogandole e accrescendo i tuoi fondi in tempo reale. Al momento, i tassi d'interesse sono molto superiori a quelli che potrebbero esserti offerti da una banca locale (se sei abbastanza fortunato da potervi accedere). Ecco un esempio: + +- Eroghi 100 DAI, una [Stablecoin](/stablecoins/), a un prodotto come Aave. +- Ricevi 100 Aave Dai (aDai), un token rappresentante le tue DAI erogate. +- Le tue aDai incrementerebbero a seconda dei tassi di interesse, e potresti visualizzare l'accrescimento del tuo saldo nel tuo portafoglio. A seconda dell'APR, il saldo del tuo portafoglio raggiungerebbe all'incirca 100,1234, doopo pochi giorni, o persino dopo poche ore! +- Puoi prelevare un importo di DAI regolare, pari al tuo saldo di aDai, in qualsiasi momento. + + + Consulta le dapp di erogazione di prestiti + + +#### Lotterie prive di perdita {#no-loss-lotteries} + +Le lotterie prive di perdita, come PoolTogether, sono un nuovo metodo divertente e innovativo, per risparmiare denaro. + +- Acquisti 100 biglietti, utilizzando 100 token DAI. +- Ricevi 100 plDai, rappresentanti i tuoi 100 biglietti. +- Se uno dei tuoi biglietti è estratto come vincitore, il tuo saldo di plDai incrementa, all'importo del montepremi. +- Se perdi, i tuoi 100 plDai sono aggiunti all'estrazione della settimana successiva. +- Puoi prelevare regolarmente un importo di DAI, pari al tuo saldo di plDai, in qualsiasi momento. + +Il montepremi si compone di tutti gli interessi generati dall'erogazione dei depositi dei ticket, come nel precedente esempio di erogazione dei prestiti. + + + Prova PoolTogether + + + + +### Scambiare token {#swaps} + +Esistono migliaia di token su Ethereum. Le piattaforme di scambio decentralizzate (DEX), consentono di scambiare token differenti, ogni volta che vuoi. Non rinunci mai al controllo delle tue risorse. Funzionano similmente al cambio di valuta, quando si visita un paese estero. Ma la versione della DeFi non chiude mai. I mercati sono aperti 24/7, 365 giorni l'anno e, la tecnologia, garantisce che ci sia sempre qualcuno che accetti uno scambio. + +Ad esempio, se desideri utilizzare la lotteria priva di perdite di PoolTogheter (descritta sopra), necessiterai di un token come DAI o USDC. Queste DEX ti consentono di scambiare i tuoi ETH per tali token, e viceversa quando hai finito. + + + Visualizza le piattaforme di scambio di token + + + + +### Trading avanzato {#trading} + +Esistono delle opzioni più avanzate per i trader che preferiscono avere un po' più di controllo. Ordini limitati, scambi perpetui, scambi con margine e molto altro, sono tutti possibili. Con il trading decentralizzato, hai accesso alla liquidità globale, i mercati non chiudono mai e mantieni sempre il controllo sulle tue risorse. + +Se utilizzi una piattaforma di scambio centralizzata, devi depositare le tue risorse prima di scambiarle e affidarti a essa, affinché se ne occupi. Mentre le tue risorse sono depositate, sono a rischio, poiché le piattaforme di scambio centralizzate sono bersagli attraenti per gli hacker. + + + Consulta le dapp di trading + + + + +### Fai crescere il tuo portafoglio {#investing} + +Su Ethereum, esistono dei prodotti di gestione dei fondi, che proveranno ad accrescere il tuo portafoglio, a seconda della strategia di tua scelta. Ciò è automatico, aperto a chiunque e non necessita di un responsabile umano, che riceva parte dei tuoi profitti. + +Un buon esempio è il [fondo DeFi Pulse Index (DPI)](https://defipulse.com/blog/defi-pulse-index/). Si tratta di un fondo che si ribilancia automaticamente per garantire che il tuo portafoglio includa sempre [i migliori token DeFi per capitalizzazione di mercato](https://www.coingecko.com/en/defi). Non dovrai mai gestire alcun dettaglio e potrai prelevare dai fondi, in qualsiasi momento. + + + Consulta le dapp d'investimento + + + + +### Finanzia le tue idee {#crowdfunding} + +Ethereum è una piattaforma ideale per il crowdfunding: + +- I potenziali finanziatori possono provenire da tutto il mondo: Ethereum e i suoi token sono aperti a chiunque, in tutto il mondo. +- È trasparente, così che i finanziatori possano dimostrare quanto denaro è stato raccolto. È persino possibile tracciare quanti fondi sono stati spesi in seguito. +- I finanziatori possono configurare dei rimborsi automatici se, ad esempio, ci sono scadenze specifiche o se un importo minimo non è soddisfatto. + + + Consulta le dapp di crowdfunding + + +#### Finanziamento quadratico {#quadratic-funding} + +Ethereum è un software open source e, finora, buona parte del lavoro è stata finanziata dalla community. Ciò ha comportato la crescita di un nuovo interessante modello di finanziamento: il finanziamento quadratico. Questo finanziamento ha il potenziale di migliorare il modo in cui finanzieremo tutti i tipi di beni pubblici in futuro. + +Il finanziamento quadratico assicura che i progetti che riceveranno più finanziamenti siano quelli con la domanda più unica. In sintesi, i progetti che cercano di migliorare la vita del maggior numero di persone. Ecco come funziona: + +1. È presente un gruppo corrispondente di fondi donati. +2. Una serie di finanziamenti pubblici è avviata. +3. Le persone possono segnalare la propria domanda per un progetto, donando del denaro. +4. Una volta terminata la serie, il gruppo corrisponente è distribuito ai progetti. Quelli con la domanda più unica, ricevono l'importo maggiore dal gruppo corrispondente. + +Ciò significa che il Progetto A, con le sue 100 donazioni da 1 dollaro, potrebbe ricevere maggiori finanziamenti del Progetto B, con una singola donazione da 10.000 dollari (a seconda delle dimensioni del gruppo corrispondente). + +[Di più sul finanziamento quadratico](https://wtfisqf.com) + + + +### Assicurazione {#insurance} + +Le assicurazioni decentralizzate mirano a rendere le assicurazioni più economiche, veloci da pagare e trasparenti. Con un'automazione maggiore, la copertura è più conveniente e i rimborsi sono molto più rapidi. I dati utilizzati per decidere in merito alle tue richieste, sono completamente trasparenti. + +I prodotti di Ethereum, come qualsiasi altro software, possono essere soggetti a bug ed exploit. Quindi, al momento, molti prodotti assicurativi nello spazio, si incentrano sulla protezione degli utenti dalla perdita dei fondi. Esistono però progetti che iniziano a proporre coperture contro tutti i possibili eventi che la vita può portare con sé. Un ottimo esempio è la copertura Etherisc's Corp, mirata a [proteggere i piccoli agricoltori in Kenya dalle siccità e le inondazioni](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). L'assicurazione decentralizzata può fornire coperture più economiche per gli agricoltori, spesso tagliati fuori dalle assicurazioni tradizionali. + + + Consulta le dApp assicurative + + + + +### Aggregatori e gestori di portfolio {#aggregators} + +Con così tante cose in ballo, necessiterai di un metodo per monitorare tutti i tuoi investimenti, prestiti e scambi. Esistono molti prodotti che ti consentono di coordinare tutte le tue attività di DeFi, da un singolo posto. È il bello dell'architettura aperta della DeFi. I team possono creare interfacce da cui puoi non soltanto visualizzare i tuoi saldi tra i vari prodotti, ma puoi anche utilizzarne le funzionalità. Potresti trovarlo utile, esplorando di più sulla DeFi. + + + Consulta le dapp del portfolio + + + + +## Come funziona la DeFi? {#how-defi-works} + +La DeFi utilizza le criptovalute e i contratti intelligenti per fornire servizi che non necessitano di intermediari. Nel mondo finanziario odierno, le istituzioni agiscono da garanti delle transazioni. Ciò dà alle istituzioni un immenso potere, poiché il denaro confluisce attraverso di esse. Inoltre, miliardi di persone in tutto il mondo non possono nemmeno accedere a un conto bancario. + +Nella DeFi, un contratto intelligente sostituisce l'istituzione finanziaria nella transazione. Un contratto intelligente è un tipo di conto di Ethereum, capace di detenere fondi e inviarli o rimborsarli, a seconda di certe condizioni. Nessuno può alterare tale contratto intelligente, una volta attivato: sarà eseguito per sempre così com'è stato programmato. + +Un contratto progettato per recapitare un'indennità o un salario, potrebbe essere programmato per inviare denaro dal Conto A al Conto B, ogni venerdì. E continuerà a farlo finché il Conto A conterrà i fondi necessari. Nessuno può modificare il contratto e aggiungere un Conto C come destinatario, per rubare i fondi. + +Inoltre, i contratti, sono pubblici per l'ispezione e controllo da parte di chiunque. Ciò significa che i contratti malevoli finiscono sotto esame della community, abbastanza rapidamente. + +Ciò significa che, al momento, è necessario affidarsi ai membri più tecnici della community di Ethereum, capaci di leggere il codice. La community basata sull'open source aiuta a mantenere sotto controllo gli sviluppatori, ma tale esigenza si ridurrà nel tempo, al semplificarsi della lettura dei contratti intelligenti, nonché allo sviluppo di altri metodi per dimostrare l'affidabilità del codice. + +## Ethereum e la DeFi {#ethereum-and-defi} + +Ethereum è la base perfetta per la DeFi, per diverse ragioni: + +- Nessuno possiede Ethereum o i contratti intelligenti che vi risiedono: ciò dà a tutti l'opportunità di utilizzare la DeFi. Ciò significa inoltre che nessuno può modificare le regole. +- I prodotti della DeFi parlano tutti la stessa lingua, dietro le quinte: Ethereum. Ciò significa che molti prodotti funzionano insieme, senza problemi. Puoi erogare token su una piattaforma e scambiare il token fruttifero di interessi in un altro mercato, su un'applicazione interamente differente. È esattamente come poter incassare punti fedeltà, presso la propria banca. +- I token e le criptovalute si basano su Ethereum, un libro contabile condiviso: tenere traccia delle transazioni e della proprietà è la specialità di Ethereum. +- Ethereum offre la massima libertà finanziaria: gran parte dei prodotti non assumerà mai la custodia sui tuoi fondi, lasciandoti il pieno controllo. + +Puoi pensare alla DeFi in termini di strati: + +1. La blockchain: Ethereum contiene lo storico delle transazioni e lo stato dei conti. +2. Le risorse: gli [ETH](/eth/) e gli altri token (valute). +3. I protocolli: [contratti intelligenti](/glossary/#smart-contract) che forniscono la funzionalità, ad esempio, un servizio che consente il prestito decentralizzato delle risorse. +4. [Le applicazioni](/dapps/): i prodotti che utilizziamo per gestire e accedere ai protocolli. + +## Creare DeFi {#build-defi} + +La DeFi è un movimento open source. I protocolli e le applicazioni della DeFi sono tutti aperti all'ispezione, biforcazione e innovazione, da parte di chiunque. Per questo stack stratificato (tutti condividono la stessa blockchain di base e le stesse risorse), i protocolli possono essere mescolati e abbinati, per offrire combinazioni e opportunità uniche. + + + Di più sulla creazione di dapp + + +## Ulteriori letture {#futher-reading} + +### Dati sulla DeFi {#defi-data} + +- [DeFi Prime](https://defiprime.com/) +- [DeFi Llama](https://defillama.com/) +- [DeFi Rate](https://defirate.com/) + +### Articoli sulla DeFi {#defi-articles} + +- [Una guida per principianti alla DeFi](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, 6 gennaio 2020_ + +### Video {#videos} + +- [Finematics: istruzione finanziaria decentralizzata](https://finematics.com/): _Viddeo sulla DeFi_ +- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq): _Fondamenti di DeFi: Tutto ciò che devi sapere per muovere i primi passi, in questo spazio talvolta sconcertante._ +- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _Cos'è la DeFi?_ + +### Community {#communities} + +- [Server Discord di DeFi Llama](https://discord.gg/buPFYXzDDd) +- [Server Discord di DeFi Pulse](https://discord.gg/Gx4TCTk) diff --git a/public/content/translations/it/deprecated-software/index.md b/public/content/translations/it/deprecated-software/index.md new file mode 100644 index 00000000000..32924949333 --- /dev/null +++ b/public/content/translations/it/deprecated-software/index.md @@ -0,0 +1,428 @@ +--- +title: Software obsoleto +description: Software che è stato abbandonato dai suoi manutentori +lang: it +sidebarDepth: 2 +--- + +# Software obsoleto {#summary-deprecated-software} + +Questo è un elenco dei progetti e delle risorse chiave relativi ad Ethereum che sono diventati obsoleti o che non sono più mantenuti. È importante mettere in evidenza il lavoro obsoleto così che gli utenti possano trovare alternative valide e per evitare che vengano distribuite versioni malevoli. + +Questo elenco è curato dalla nostra comunità. Se c'è qualcosa di mancante o incorretto, si prega di modificare la pagina! + +## Proof of Work {#pow} + +[Proof of work ](/developers/docs/consensus-mechanisms/pow) è il motore di consenso che è stato implementato in Ethereum fino a settembre 2022. È diventato obsoleto quando Ethereum è passato al meccanismo di consenso basato su [proof-of-stake](/developers/docs/consensus-mechanisms/pos). Questo è stato raggiunto abbandonando le parti del software del client relative al mining in proof-of-work, incluso [Ethhash](/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethhash) (l'algoritmo di mining) e tutta la logica di consenso e la funzionalità di gossip del blocco che era stata originariamente integrata nei client di esecuzione. I client stessi non sono diventati obsoleti ma lo sono molti dei loro componenti principali. Il concetto di proof-of-work è stato abbandonato come effetto globale della rimozione delle relative componenti del software del client. + +## Software {#software} + +Questa sezione è dedicata ai software per desktop, per riga di comando o per server che sono diventati obsoleti. I tipi principali sono portafogli, ambienti di sviluppo integrati, linguaggi e client Ethereum. È assolutamente necessario fare attenzione a non installare software obsoleto a meno che non si sia certi che provenga dalla fonte originale, per esempio: un repository contenuto all'interno di https://github.com/ethereum. + +### OpenEthereum {#open-ethereum} + +Obsoleto dal luglio 2021 + +**Riepilogo** + +OpenEthereum è stata la seconda implementazione principale di Ethereum per numero di nodi. OpenEthereum ha svolto un ruolo importante come infrastruttura chiave per alcuni dei maggiori utenti di Ethereum come Etherscan e Gnosis Safe. La sua capacità di tracciamento lo distinguono dagli altri client, garantendo una sincronizzazione affidabile e veloce per i fornitori di dati. + +**Archivi** + +[Repo Github archiviati](https://github.com/openethereum/openethereum) + +**Storia** + +OpenEthereum è stata costruita da miner, fornitori di servizi e borse che necessitano di una sincronizzazione veloce e un tempo di attività massimo. OpenEthereum ha fornito l'infrastruttura di base essenziale per servizi veloci ed affidabili. + +**Alternative** + +[Confronta tutte le opzioni del client di esecuzione di Ethereum](/developers/docs/nodes-and-clients/#execution-clients). + +### Grid {#grid} + +Obsoldeto dal 10 dicembre 2020 + +**Riepilogo** + +Grid era una applicazione desktop basata su JavaScript che permetteva di accedere in modo sicuro ad Ethereum, IPFS e ad altre reti decentralizzate. Ha fornito un'interfaccia intuitiva per aiutare un pubblico meno tecnico ad interagire in modo sicuro con le dapp, aumentando l'accessibilità per tutti. + +**Archivi** + +[Repo Github archiviati](https://github.com/ethereum/grid) + +**Storia** + +Grid potrebbe essere visto come il successore di Mist, anche essa un'applicazione desktop standalone basata su JavaScript che includeva un nodo Geth. Grid ha rimosso l'aspetto del portafoglio e ha aggiunto un approccio in stile plugin per l'esecuzione di diversi tipi di nodi. + +**Alternative** + +[DAppNode](https://dappnode.io/) è una piattaforma per distribuire e ospitare dapp, client P2P e nodi blockchain. + +### Ethereum Studio {#ethereum-studio} + +Obsoleto dal 7 dicembre 2020 + +**Riepilogo** + +Ethereum Studio era un IDE basato sul web che permetteva agli utenti di creare e testare contratti intelligenti, così come di costruire i front-end per essi. + +**Archivi** + +[Repo Github archiviati](https://github.com/SuperblocksHQ/ethereum-studio) + +**Storia** + +Ethereum Studio è stato sviluppato per fornire agli utenti un IDE con una blockchain Ethereum ed un compilatore Solidity integrati. In aggiunta a questo ha fornito la possibilità di modificare il codice in tempo reale e di esportare dapp complete senza bisogno di un terminale. + +**Alternative** + +[Remix](https://remix.ethereum.org/) è un IDE web alternativo per lo sviluppo in Solidity. Inoltre il [Portale per sviluppatori](/developers/) ha strumenti per lo sviluppo su web e in locale, documentazione e molto altro. + +### Portafoglio Meteor Dapp {#meteor-dapp-wallet} + +Obsoleto dal 27 marzo 2019 + +**Riepilogo** + +Il portafoglio Meteor Dapp era un componente di Mist, un portafoglio di Ethereum per gestire i conti di Ethereum ed interagire con i contratti intelligenti. Per tanti anni l'interfaccia utente web del portafoglio Mereor Dapp è stata ospitata come sottodominio, "wallet.ethereum.org". + +Era incluso anche il contratto multifirma di Mist (codice Solidity), e il portafoglio Meteor Dapp presentava un'interfaccia utente per la sua configurazione e distribuzione. + +**Non obsoleto: multifirma di Mist distribuiti** + +Il contratto multifirma di Mist - distribuito come bytecode sulla Rete Principale di Ethereum da migliaia di utenti - continua ad essere usato per memorizzare e gestire valore senza incidenti. [Come interagire con un contratto multifirma di Mist](https://support.mycrypto.com/how-to/sending/how-to-interact-with-a-multisig-contract) fornisce una buona panoramica su come usare i contratti intelligenti. + +**Archivi** + +[Repo Github archiviati](https://github.com/ethereum/meteor-dapp-wallet) + +**Storia** + +Vedi Mist qui sotto. + +**Alternative** + +Visita la pagina dei [Portafogli di Ethereum](/wallets/) su ethereum.org. + +### Mist {#mist} + +Obsoleto dal 27 marzo 2019 + +**Riepilogo** + +Mist era un browser specializzato costruito con Electron che permetteva agli utenti di gestire conti di Ethereum e di interagire con dapp ospitate nel web tradizionale. + +**Archivi** + +[Repo Github archiviati](https://github.com/ethereum/mist) + +**Storia** + +Mist è stato un importante esperimento iniziale perché ha esplorato come gestire le chiavi di Ethereum, ha fatto conoscere agli utenti gli strumenti finanziari, come i contratti multifirma, e ha dimostrato com avrebbe funzionato il Web3. Ha anche mostrato agli utenti innovazioni come i blockies, grafiche carine e memorabili in stile 8-bit che rappresentano le chiavi di Ethereum. + +**Alternative** + +[MetaMask](https://metamask.io/) è un portafoglio nel browser che permette di gestire le chiavi di Ethereum e di interagire con le dapp. È disponibile come un'estensione per Google Chrome e Firefox ed è incluso nel [Browser Brave](https://brave.com/). + +### Mix {#mix} + +Obsoleto dall'11 agosto 2016 + +**Riepilogo** + +Mix era un IDE sviluppato in C++ che permetteva agli sviluppatori di costruire e distribuire contratti intelligenti su Ethrerum. + +**Archivi** + +[Repo Github archiviati](https://github.com/ethereum/mix) + +**Storia** + +Mix è stato la prima delle applicazioni legate ad Ethereum. Guarda questa [presentazione di Gavin Wood al Devcon0](https://www.youtube.com/watch?v=hcP_z_wBlaM). + +**Alternative** + +[Remix](https://remix.ethereum.org/) è un IDE ospitato su browser per lo sviluppo, il testing e la distribuzione di contratti intelligenti in Solidity. Ha anche una soluzione desktop. + +### Minimal {#minimal} + +Obsoleto dal 2020. + +**Riepilogo** + +Minimal era un'implementazione modulare della blockchain di Ethereum scritta in Go. + +**Archivi** + +[Repo Github archiviati](https://github.com/umbracle/minimal) + +**Storia** + +Minimal è stato sostituito da [polgon-sdk](https://github.com/0xPolygon/polygon-edge) + +### Hyperledger Burrow {#hyperledger-burrow} + +Obsoleto dal 2022. + +**Riepilogo** + +Hyperledger Burrow era un nodo blockchain autorizzato di contratti intelligenti di Ethereum. Eseguiva il codice dei contratti intelligenti dell'EVM di Ethereum e di WASM su macchine virtuali autorizzate. + +**Archivi** + +[Repo Github archiviati](https://github.com/hyperledger/burrow) + +### Mana-Ethereum {#mana-ethereum} + +**Riepilogo** + +Mana-Ethereum era un client Ethereum costruito usando Elixir. + +**Archivi** + +[Repo Github archiviati](https://github.com/mana-ethereum/mana) + +**Storia** + +Il repository GitHub di Mana-Ethereum non è stato esplicitamente archiviato, ma l'ultimo commit è del 2019. + +### Aleth (cpp-ethereum) {#aleth} + +Obsoleto dal 6 ottobre 2021 + +**Riepilogo** + +Aleth (precedentemente noto come cpp-ethereum) era un client di Ethereum scritto in C++. + +**Archivi** + +[Repo Github archiviati](https://github.com/ethereum/aleth) + +**Storia** + +Aleth è stato il terzo client più popolare per Ethereum prima di essere abbandonato il 6 ottobre 2021. + +**Alternative** + +[Geth](https://geth.ethereum.org/) è un noto client Ethereum alternativo. + +### Ethereum-H {#ethereum-h} + +**Archivi** + +Gli archivi di Ethereum-H sono stati rimossi da GitHub. + +**Storia** + +Ethereum-H era un client Ethereum scritto in Haskell. È stato abbandonato intorno al 2015. + +**Alternative** + +[Geth](https://geth.ethereum.org/), [Nethermind](http://nethermind.io/), [Besu](https://besu.hyperledger.org/en/stable/) e [Erigon](https://github.com/ledgerwatch/erigon) sono valide alternative di client Ethereum - non esiste attualmente un client in Haskell. + +### ruby-ethereum {#ruby-ethereum} + +**Archivi** + +[Repo GitHib di ruby-ethereum](https://github.com/cryptape/ruby-ethereum) + +**Storia** + +ruby-ethereum era un client Ethereum scritto in Ruby. È stato abbandonato intorno al 2018. + +**Alternative** + +[Geth](https://geth.ethereum.org/), [Nethermind](http://nethermind.io/), [Besu](https://besu.hyperledger.org/en/stable/) e [Erigon](https://github.com/ledgerwatch/erigon) sono valide alternative di client Ethereum. Non esiste più un client in Ruby attivo. + +### Parity {#parity} + +Obsoleto dal 2 giugno 2020 + +**Riepilogo** + +Parity era un client Ethereum scritto in Rust. + +**Archivi** + +[Repo Github archiviati](https://github.com/openethereum/parity-ethereum) + +**Storia** + +Essendo uno dei due principali client validi nei primi anni di Ethereum (l'altro era Geth), Parity costituiva una parte fondamentale dell'ecosistema. Durante gli attacchi di Shanghai del 2016, Parity ha permesso alla rete di Ethereum di continuare a operare mentre il funzionamento di client come Geth era stato interrotto dall'attacco, dimostrando l'importanza della diverstià dei client. + +**Alternative** + +[Erigon](https://github.com/ledgerwatch/erigon) Erigon (precedentemente chiamato Turbo-Geth) è un client Ethereum di nuova generazione sulla frontiera dell'efficienza scritto in Go. + +**Nota:** _il progetto successore al client Ethereum Parity era [OpenEthereum](https://github.com/openethereum/openethereum) **che intanto diventato obsoleto.**_ + +La risorsa ["Avvia il tuo nodo di Ethereum"](/developers/docs/nodes-and-clients/run-a-node/#getting-the-client) su ethereum.org include una sezione per scaricare, installare ed eseguire un client Ethereum. + +### Trinity {#trinity} + +Obsoleto dal 1° luglio 2021 + +**Riepilogo** + +Trinity era un client Ethereum basato su python che fungeva da strumento di ricerca e di formazione per la community. Un elevato numero di moduli basati su python legati a Trinity continuano ad essere mantenuti dallo stesso team, incluso [Py-EVM](https://github.com/ethereum/py-evm). + +**Archivi** + +[Repo Github archiviati](https://github.com/ethereum/trinity) + +**Storia** + +Trinity è stato il progetto successivo a [pyethereum](https://github.com/ethereum/pyethereum/tree/b704a5c6577863edc539a1ec3d2620a443b950fb), un client Ethereum iniziale basato su python. + +**Alternative** + +La risorsa ["Avvia il tuo nodo di Ethereum"](/developers/docs/nodes-and-clients/run-a-node/#getting-the-client) su ethereum.org include una sezione per scaricare, installare ed eseguire un client Ethereum. + +Il progetto [EthereumJS](https://github.com/ethereumjs) ha uno scopo di ricerca e formazione simile a Trinity. + +## Dapp e Servizi {#dapps-and-services} + +Questa sezione riguarda i servizi distribuiti sulla Rete Principale di Ethereum e su altre reti baste sull'EVM. Si tenga presente che le dapp e i servizi qui elencati potrebbero includere applicazioni DeFi che sono state hackerate o che potrebbero soffrire di vulnerabilità di sicurezza dovute alla mancanza di manutenzione, di cambiamenti nel protocollo, ecc. + +### Protocollo Cover {#cover-protocol} + +Chiuso nell'autunno del 2021 + +**Riepilogo** + +Cover era un protocollo assicurativo Defi che funziona su Ethereum e altre reti basate sull'EVM. + +**Archivi** + +[Sito Web](https://wayback.archive-it.org/17679/20211004074635/https://www.coverprotocol.com/) + +[Articoli Medium](https://wayback.archive-it.org/17679/20211004074633/https://coverprotocol.medium.com/) + +[Repo GitHub](https://github.com/CoverProtocol/cover-core-v1) + +[Documentazione](https://wayback.archive-it.org/17679/20211004074634/https://docs.coverprotocol.com/) + +### The DAO {#the-dao} + +Hackerato e chiuso nell'estate del 2016 + +**Riepilogo** + +The DAO era un contratto intelligente, una dapp e un forum per organizzare il finanziamento di progetti. Sfruttando una vulnerabilità, è stato svuotato della maggior parte degli ETH, portando ad una biforcazione dura organizzata dalla community per restituire gli ETH a chi li aveva depositati in The DAO. Il front-end della UX e il forum sono stati dismessi. + +**Archivi** + +[Archivio internet di "daohub.org" del 14 maggio 2016](https://web.archive.org/web/20160514105232/https://daohub.org/) + +**Storia** + +Sebbene The DAO sia fallito, il concetto è sopravvissuto. L'innovativo modello tecnico, sociale e di governance di base di The DAO è ampiamente utilizzato nelle community Defi, NFT e di progetti di finanziamento. + +["Biforcazione DAO" su ethereum.org](/history/#dao-fork) + +[Voce Wikipedia per "The DAO"]() + +**Alternative** + +["DAO" su ethereum.org](/dao/) + +[MolochDAO](https://www.molochdao.com/) + +[Gitcoin Grants](https://gitcoin.co/grants/) + +### SparkPool {#sparkpool} + +Chiuso nell'autunno del 2021 + +**Riepilogo** + +Con sede a Hangzhou, il servizio e la community di SparkPool sono stati uno dei più grandi pool di mining incentrati su Ethereum al mondo. + +**Archivi** + +**Storia** + +Associato alla community EthFans, il servizio è stato lanciato nel 2015. SparkPool è stato smantellato nell'autunno del 2021 a causa di norme giuridiche più rigorose. + +**Alternative** + +[Ethermine](https://ethermine.org/) + +## Documentazione e fonti informative {#documentation-and-information-sources} + +Esistono numerose fonti di documentazione, articoli, tutorial e forum che sono stati rimossi o ancora online ma non più mantenuti. Ne abbiamo selezionati alcuni che sono significativi o il cui attuale stato di "obsoleto" potrebbe portare a confusione o tentativi di truffe. + +### Legacy Wiki ed eth.wiki {#eth-wiki} + +**Riepilogo** + +Legacy Wiki ed eth.wiki erano wiki mantenute dalla Ethereum Foundation per la community più ampia. Erano principalmente orientate ad ospitare descrizioni dettagliate degli aspetti chiave della piattaforma Ethereum e al riepilogo delle tabelle di marcia tecniche. + +**Archivi** + +[Repo Github archiviato per eth.wiki](https://github.com/ethereum/eth-wiki) + +[Repo Github archiviato per Legacy Wiki](https://github.com/ethereum/wiki/wiki) + +**Storia** + +Legacy Wiki era un wiki GitHub ed un primissimo centro di contenuti tecnici (incluso il Whitepaper originale di Ethereum). Nel corso del tempo, gli sviluppatori di Ethereum hanno migrato la loro documentazione, le specifiche e le descrizioni tecniche ad altre piattaforme quali [Leggi la documentazione](https://readthedocs.org/) e i contenuti ospitati su GitHub. + +Nel 2019 e nel 2020, eth.wiki è divenuto il successore di Legacy Wiki, ma non si è creata una community duratura di collaboratori. + +**Alternative** + +Contenuto basato sulla community: [sito web Ethereum.org](/) + +I progetti software di Ethereum spesso ospitano la loro documentazione in [Leggi la documentazione](https://readthedocs.org/) + +Specifiche tecniche ospitate su GitHub: [EIP](https://github.com/ethereum/EIPs), [Specifiche di esecuzione](https://github.com/ethereum/execution-specs), [Specifiche di consenso](https://github.com/ethereum/consensus-specs) + +### forum.ethereum.org {#forum-ethereum-org} + +**Riepilogo** + +Il Forum della Community di Ethereum era un forum di discussione mantenuto dalla Ethereum Foundation ed ospitato su forum Vanilla. Usava il sottodominio "forum.ethereum.org". + +**Archivi** + +URL dell'archivio: [https://wayback.archive-it.org/16516/20210618210825/https://forum.ethereum.org/](https://wayback.archive-it.org/16516/20210618210825/https://forum.ethereum.org/) + +**Storia** + +Questo Forum è stato il primo forum "ufficiale" di discussione per la community di Ethereum. Insieme a [/r/ethereum](https://reddit.com/r/ethereum) e ad alcuni canali Skype, è stato un importante punto di coordinamento per sviluppatori, progettisti e organizzatori. Nel corso degli anni i partecipanti al Forum si sono spostati ed è divenuto più un posto per la community dei miner. + +**Alternative** + +[/r/ethereum](https://reddit.com/r/ethereum), e un gran numero di forum di DAO e di server Discord. + +## Canali Gitter {#gitter-channels} + +### AllCoreDevs {#allcorewdevs-gitter} + +**Riepilogo** + +AllCoreDevs su Gitter era il principale canale di comunicazione pubblico di coordinamento per gli [sviluppatori del nucleo dei client Ethereum](https://github.com/ethereum/pm/). + +**Archivi** + +[Canale ethereum/AllCoreDevs su Gitter](https://gitter.im/ethereum/AllCoreDevs) + +**Alternative** + +Si prega di utilizzare il canale "allcoredevs" sul [server Discord in EthR&D](https://discord.gg/qHv7AjTDuK) + +### EthereumJS {#ethereumjs-gitter} + +**Riepilogo** + +EthereumJS su Gitter era il principale canale di comunicazione pubblico di coordinamento per il [progetto EthereumJS](https://ethereumjs.github.io/). + +**Archivi** + +[canale ethereum/EthereumJS su Gitter](https://gitter.im/ethereum/ethereumjs) + +**Alternative** + +Utilizzare il [server Discord di EthereumJS](https://discord.gg/TNwARpR) diff --git a/public/content/translations/it/desci/index.md b/public/content/translations/it/desci/index.md new file mode 100644 index 00000000000..d0f15d3e6c2 --- /dev/null +++ b/public/content/translations/it/desci/index.md @@ -0,0 +1,139 @@ +--- +title: Scienza Decentralizzata (DeSci) +description: Una panoramica della scienza decentralizzata su Ethereum +lang: it +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Un'alternativa globale e aperta al sistema scientifico corrente. +summaryPoint2: Una tecnologia che consente agli scienziati di raccogliere fondi, svolgere esperimenti, condividere dati, distribuire conoscenza, e molto altro. +summaryPoint3: Basata sul movimento della scienza aperta. +--- + +## Cos'è la scienza decentralizzata (DeSci)? {#what-is-desci} + +La scienza decentralizzata (DeSci) è un movimento che mira alla creazione di un'infrastruttura pubblica, per finanziare, creare, revisionare, accreditare, memorizzare e disseminare conoscenze scientifiche, in modo giusto ed equo, utilizzando lo stack del Web3. + +La DeSci vuole creare un ecosistema in cui gli scienziati siano incentivati alla condivisione aperta delle proprie ricerche, ricevendo credito per il proprio operato, pur consentendo a chiunque di accedere e contribuire facilmente alla ricerca. La DeSci sfrutta l'idea che la conoscenza scientifica dovrebbe essere accessibile a tutti e che il procedimento di ricerca scientifica dovrebbe essere trasparente. La DeSci punta a creare un modello di ricerca scientifica più decentralizzato e distribuito, rendendolo più resistente alla censura e al controllo delle autorità centrali. La DeSci spera di creare un ambiente in cui le idee innovative e non convenzionali, possano prosperare, decentralizzando l'accesso a finanziamenti, strumenti scientifici e canali di comunicazione. + +La scienza decentralizzata consente fonti di finanziamento più diversificate (dalle [DAO](/dao/) alle [donazioni quadratiche](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), fino al crowdfunding, e molto altro), accesso a dati e metodi più accessibile, fornendo incentivi per la riproducibilità. + +### Juan Benet: Il Movimento della DeSci + + + +## In che modo la DeSci migliora le scienze? {#desci-improves-science} + +Un elenco incompleto dei problemi chiave della scienza, e di come la scienza decentralizzata possa aiutare ad affrontarli + +| **Scienza decentralizzata** | **Scienza tradizionale** | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| La distribuzione dei fondi è determinata dal pubblico, utilizzando meccanismi quali le donazioni quadratiche o le DAO. | Piccoli gruppi chiusi e centralizzati controllano la distribuzione dei fondi. | +| Collabori con colleghi da tutto il mondo, all'interno di team dinamici. | Le organizzazioni di finanziamento e le istituzioni nazionali, limitano le tue collaborazioni. | +| Le decisioni di finanziamento sono effettuate online, e in modo trasparente. Sono esplorati nuovi meccanismi di finanziamento. | Le decisioni di finanziamento richiedono tempi lunghi e presentano una trasparenza limitata. Esistono pochi meccanismi di finanziamento. | +| La conivisione dei servizi di laboratorio è semplificata e resa più trasparente, utilizzando i primitivi del Web3. | La condivisione delle risorse di laboratorio è spesso lenta e opaca. | +| Possono essere sviluppati nuovi modelli di pubblicazione che sfruttano i primitivi del Web3, negli ambiti di fiducia, trasparenza e accesso universale. | La pubblicazione avviene tramite percorsi prestabiliti, frequentemente inefficienti, parziali e sfruttatori. | +| Puoi guadagnare token e reputazione, per la revisione del lavoro dei colleghi. | La revisione del lavoro non è pagata, a beneficio dei profitti degli editori. | +| Possiedi la proprietà intellettuale (IP) che generi, e la distribuisci secondo termini trasparenti. | L'istituzione nazionale possiede l'IP che generi. L'accesso all'IP non è trasparente. | +| L'intera ricerca è condivisa, inclusi i dati da tentativi infruttuosi, svolgendo tutti i passaggi sulla catena. | I pregiudizi di pubblicazione precludono che sia più probabile che i ricercatori condividano esperimenti dagli esiti positivi. | + +## Ethereum e la DeSci {#ethereum-and-desci} + +Un sistema di scienza decentralizzata necessiterà di una sicurezza robusta, costi finanziari e di transazione minimi, e un ricco ecosistema per lo sviluppo di applicazioni. Ethereum fornisce tutto il necessario per lo sviluppo di uno stack scientifico decentralizzato. + +## Casi d'uso della DeSci {#use-cases} + +La DeSci sta sviluppando gli strumenti scientifici per accogliere il mondo accademico del Web2, nel mondo digitale. Segue un campionamento dei casi d'uso che il Web3 può offrire alla comunità scientifica. + +### Pubblicazione {#publishing} + +La pubblicazione scientifica è notoriamente problematica, poiché è gestita da case editrici che si affidano al lavoro gratuito di scienziati, revisori ed editori, per generare i documenti, addebitando poi esorbitanti spese di pubblicazione. Il pubblico, che solitamente paga indirettamente i costi del lavoro e della pubblicazione tramite la tassazione, spesso, non può accedere allo stesso lavoro senza pagare nuovamente l'editore. Le spese totali per la pubblicazione di singoli documenti scientifici, superano spesso le cinque cifre ($USD), compromettendo l'intero concetto di conoscenza scientifica come un [bene comune](https://www.econlib.org/library/Enc/PublicGoods.html), e generando enormi profitti per un piccolo gruppo di editori. + +Esistono delle piattaforme libere e ad accesso aperto, nella forma di server pre-stampa, [come ArXiv](https://arxiv.org/). Tuttavia, tali piattaforme mancano del controllo di qualità, di [meccanismi anti-Sybil](https://csrc.nist.gov/glossary/term/sybil_attack) e, in genere, non monitorano i parametri degli articoli; ciò vuol dire che, spesso, sono utilizzate esclusivamente per pubblicizzare il lavoro, prima del suo invio all'editore tradizionale. Anche SciHub rende i documenti pubblicati liberamente accessibili, ma non legalmente, e soltanto dopo che gli editori hanno ricevuto il proprio pagamento, nonché dopo l'applicazione di rigide legislazioni sul diritto d'autore. Ciò crea un'importante lacuna per i documenti e dati scientifici accessibili, dotati di un meccanismo di legittimità e un modello d'incentivazione incorporati. Gli strumenti per creare un simile sistema, esistono nel Web3. + +### Riproducibilità e replicabilità {#reproducibility-and-replicability} + +La riproducibilità e la replicabilità sono alle basi della scoperta scientifica di qualità. + +- I risultati riproducibili possono essere ottenuti svariate volte di fila dallo stesso team, utilizzando la stessa metodologia. +- I risultati replicabili possono essere ottenuti da un gruppo differente, utilizzando le stesse attrezzature sperimentali. + +I nuovi strumenti nativi del Web3 possono assicurare che riproducibilità e replicabilità siano alla base della scoperta. Possiamo intessere la scienza di qualità nel tessuto tecnologico accademico. Il Web3 offre la capacità di creare attestazioni per ogni componente d'analisi: i dati grezzi, il motore di calcolo e il risultato dell'applicazione. La bellezza dei sistemi di consenso sta nel fatto che, quando una rete affidabile viene creata per mantenere tali componenti, ogni partecipante della rete può essere responsabile della riproduzone del calcolo e della convalida di ogni risultato. + +### Finanziamento {#funding} + +Il modello standard odierno per il finanziamento scientifico, prevede che individui o gruppi di scienziati, presentino richieste scritte a un'agenzia di finanziamento. Un piccolo comitato di individui fidati valuta le richieste e, in seguito, intervista i candidati, prima di concedere fondi a una piccola porzione di richiedenti. Oltre a creare rallentamenti che conducono, talvolta, ad anni d'attesa tra la richiesta e la ricezione della sovvenzione, questo modello è noto per essere molto vulnerabile ai pregiuizi, agli interessi personali e alle politiche del comitato di revisione. + +Degli studi hanno dimostrato che i comitati di revisione delle sovvenzioni, svolgono un lavoro mediocre nella selezione di proposte di alta qualità, poiché le stesse proposte, date a diversi comitati, producono risultati ampiamente differenti. Al ridursi dei finanziamenti, questi si concentrano su un gruppo più piccolo di ricercatori più anziani, con progetti intellettualmente più conservatori. L'effetto ha creato un panorama di finanziamento super competitivo, radicando incentivi perversi e asfissiando l'innovazione. + +Il Web3 ha il potenziale di sconvolgere tale modello corrotto di finanziamento, sperimentando con svariati modelli d'incentivazione, ampiamente sviluppati dalle DAO e dal Web3. Il [finanziamento retroattivo dei beni pubblici](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), il [finanziamento quadratico](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), la [governance delle DAO](https://www.antler.co/blog/daos-and-web3-governance) e le [strutture d'incentivazione tokenizzate](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design), sono solo alcuni degli strumenti del Web3 che potrebbero rivoluzionare il finanziamento scientifico. + +### Proprietà e sviluppo della IP {#ip-ownership} + +La proprietà intellettuale (IP), rappresenta un grosso problema per la scienza tradizionale: dall'essere bloccata nelle università o inutilizzata nelle aziende biotecnologiche, fino all'essere notoriamente difficile da valorizzare. Tuttavia, la proprietà delle risorse digitali (quali dati o articoli scientifici), è qualcosa che il Web3 gestisce eccezionalmente bene, utilizzando i [token non fungibili (NFT)](/nft/). + +Allo stesso modo in cui i NFT possono approvare entrate per le transazioni future al creatore originale, puoi stabilire catene di attribuzione del valore trasparenti, per ricompensare i ricercatori, i corpi governativi (come le DAO), o persino i soggetti di cui sono stati raccolti i dati. + +Inoltre, i [IP-NFT](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6), possono funzionare come chiavi a una repository di dati decentralizzati degli esperimenti di ricerca svolti, nonché collegarsi ai NFT e alla finanziarizzazione della [DeFi](/defi/) (dalla frazionalizzazione ai gruppi di erogazione di prestiti, fino alla perizia del valore). Inoltre, consente nativamente alle entità sulla catena, come le DAO (ad esempio, [VitaDAO](https://www.vitadao.com/)), di condurre le ricerche direttamente sulla catena. L'avvento dei [token "vincolati"](https://vitalik.ca/general/2022/01/26/soulbound.html) e non trasferibili, potrebbe ricoprire un importante ruolo anche nella DeSci, consentendo agli individui di dimostrare la propria esperienza e le proprie credenziali, collegate al proprio indirizzo di Ethereum. + +### Archiviazione, accesso e architettura dei dati {#data-storage} + +I dati scientifici possono essere resi ampiamente più accessibili, utilizzando i modelli del Web3, e l'archiviazione distribuita consente alle ricerche di sopravvivere a eventi catastrofici. + +Il punto di partenza dev'essere un sistema accessibile a qualsiasi identità che possieda delle credenziali verificabili adeguate. Ciò consente alle parti fidate di replicare in sicurezza i dati sensibili, consentendo la resistenza alla ridondanza e alla censura, la riproduzione dei risultati, e persino la capacità di numerose parti di collaborare e aggiungere nuovi dati al dataset. I metodi di calcolo confidenziali, come il "[compute-to-data](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol)" (dal calcolo ai dati), forniscono meccanismi d'accesso alternativo alla replicazione dei dati non elaborati, creando Ambienti di Ricerca Attendibili, per i dati più sensibili. Gli Ambienti di Ricerca Attendibili sono stati [citati dal NHS](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) come una soluzion rivolta al futuro, nei confronti dell'anonimato dei dati e della collaborazione, tramite la creazione di un'ecosistema in cui i ricercatori possano lavorare in sicurezza con i dati in loco, utilizzando ambienti standardizzati per la condivisione di codice e pratiche. + +Le soluzioni di dati flessibili del Web3, supportano gli scenari precedenti, fornendo le basi per una scienza realmente aperta, in cui i ricercatori possono creare beni collettivi, senza autorizzazioni o commissioni d'accesso. Le soluzioni di dati pubblici del Web3, come IPFS, Arweave e Filecoin, sono ottimizzate per la decentralizzazione. dClimate, ad esempio, fornisce l'accesso universale ai dati climatici e meteorologici, inclusi quelli provenienti da stazioni meteorologiche e da modelli climatici previsionali. + +## Partecipa {#get-involved} + +Esplora i progetti e unisciti alla community della DeSci. + +- [DeSci.Global: eventi globali e calendario di incontri](https://desci.global) +- [Telegram di "Blockchain for Science"](https://t.me/BlockchainForScience) +- [Molecule: finanzia e ricevi finanziamenti per i tuoi progetti di ricerca](https://discover.molecule.to/) +- [VitaDAO: ricevi finanziamenti tramite accordi di ricerca sponsorizzati per la ricerca sulla longevità](https://www.vitadao.com/) +- [ResearchHub: pubblica un risultato scientifico e conversa con i colleghi](https://www.researchhub.com/) +- [LabDAO: piega una proteina in-silico](https://alphafodl.vercel.app/) +- [dClimate API: interroga i dati climatici raccolti da una community decentralizzata](https://api.dclimate.net/) +- [DeSci Foundation: sviluppatore di strumenti di pubblicazione della DeSci](https://descifoundation.org/) +- [DeSci.World: negozio unico per gli utenti per visualizzare e impegnarsi con progetti di scienza decentralizzata](https://desci.world) +- [Fleming Protocol: economia dei dati open source che alimenta la scoperta biomedica collaborativa](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [OceanDAO: finanziamenti governati dalla DAO per la scienza relativa ai dati](https://oceanprotocol.com/dao) +- [Opscientia: flussi di lavoro scientifici decentralizzati e aperti](https://opsci.io/research/) +- [LabDAO: piega una proteina in silico](https://alphafodl.vercel.app/) +- [Bio.xyz: ricevi finanziamenti per la tua DAO biotecnologica o il tuo progetto di DeSci](https://www.molecule.to/) +- [ResearchHub: pubblica un risultato scientifico e conversa con i colleghi](https://www.researchhub.com/) +- [VitaDAO: ricevi finanziamenti tramite accordi di ricerca sponsorizzati per la ricerca di longevità](https://www.vitadao.com/) +- [Fleming Protocol: economia dei dati open source che alimenta la scoperta biomedica collaborativa](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [Active Inference Lab](https://www.activeinference.org/) +- [CureDAO: piattaforma sanitaria di precisione, gestita dalla community](https://docs.curedao.org/) +- [IdeaMarkets: la credibilità scientifica decentralizzata diventa realtà](https://ideamarket.io/) +- [DeSci Labs](https://www.desci.com/) + +Accogliamo suggerimenti per nuovi progetti da elencare: per iniziare, ti preghiamo di consultare la nostra [politica di inserzione](/contributing/adding-desci-projects/)! + +## Ulteriori letture {#further-reading} + +- [Wiki della DeSci, di Jocelynn Pearl e Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) +- [Una guida alle biotecnologie decentralizzate di Jocelynn Pearl, per il futuro a16z](https://future.a16z.com/a-guide-to-decentralized-biotech/) +- [Il caso della DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) +- [Guida alla DeSci](https://future.com/what-is-decentralized-science-aka-desci/) +- [Risorse scientifiche decentralizzate](https://www.vincentweisser.com/decentralized-science) +- [IP-NFT nella Biofarmaceutica di Molecule: una descrizione tecnica](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) +- [Creare sistemi scientifici attendibili, di Jon Starr](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) +- [L'Avvento delle DAO Biotecnologiche](https://molecule.to/blog/the-emergence-of-biotech-daos) +- [Paul Kohlhaas - DeSci: Il Futuro della Scienza Decentralizzata (podcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) +- [Ontologia di Inferenza Attiva per la Scienza Decentralizzata: dalla Creazione di Senso Situazionale al Populismo Epistemico](https://zenodo.org/record/6320575) +- [DeSci: Il Futuro della Ricerca, di Samuel Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) +- [Finanziamento Scientifico (Epilogo: DeSci e nuovi cripto-primitivi), di Nadia](https://nadia.xyz/science-funding) +- [La Decentralizzazione sta Sconvolgendo lo Sviluppo Farmaceutico](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) + +### Video {#videos} + +- [Cos'è la Scienza Decentralizzata?](https://www.youtube.com/watch?v=-DeMklVWNdA) +- [Conversazione tra Vitalik Buterin e lo scienziato Aubrey de Grey, sull'intersezione tra ricerca sulla longevità e le criptovalute](https://www.youtube.com/watch?v=x9TSJK1widA) +- [La Pubblicazione Scientifica È Corrotta. Il Web3 Può Correggerla?](https://www.youtube.com/watch?v=WkvzYgCvWj8) +- [Juan Benet - DeSci, Laboratori Indipenenti e Scienza dei Dati su Larga Scala](https://www.youtube.com/watch?v=zkXM9H90g_E) +- [Sebastian Brunemeier: Come la DeSci Può Trasformare la Ricerca Biomedica e il Capitale di Rischio](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/it/developers/docs/accounts/accounts.png b/public/content/translations/it/developers/docs/accounts/accounts.png similarity index 100% rename from src/content/translations/it/developers/docs/accounts/accounts.png rename to public/content/translations/it/developers/docs/accounts/accounts.png diff --git a/src/content/translations/it/developers/docs/accounts/index.md b/public/content/translations/it/developers/docs/accounts/index.md similarity index 100% rename from src/content/translations/it/developers/docs/accounts/index.md rename to public/content/translations/it/developers/docs/accounts/index.md diff --git a/src/content/translations/it/developers/docs/apis/backend/index.md b/public/content/translations/it/developers/docs/apis/backend/index.md similarity index 100% rename from src/content/translations/it/developers/docs/apis/backend/index.md rename to public/content/translations/it/developers/docs/apis/backend/index.md diff --git a/src/content/translations/it/developers/docs/apis/javascript/index.md b/public/content/translations/it/developers/docs/apis/javascript/index.md similarity index 100% rename from src/content/translations/it/developers/docs/apis/javascript/index.md rename to public/content/translations/it/developers/docs/apis/javascript/index.md diff --git a/src/content/translations/it/developers/docs/apis/json-rpc/index.md b/public/content/translations/it/developers/docs/apis/json-rpc/index.md similarity index 100% rename from src/content/translations/it/developers/docs/apis/json-rpc/index.md rename to public/content/translations/it/developers/docs/apis/json-rpc/index.md diff --git a/src/content/translations/it/developers/docs/blocks/index.md b/public/content/translations/it/developers/docs/blocks/index.md similarity index 100% rename from src/content/translations/it/developers/docs/blocks/index.md rename to public/content/translations/it/developers/docs/blocks/index.md diff --git a/src/content/translations/it/developers/docs/blocks/tx-block.png b/public/content/translations/it/developers/docs/blocks/tx-block.png similarity index 100% rename from src/content/translations/it/developers/docs/blocks/tx-block.png rename to public/content/translations/it/developers/docs/blocks/tx-block.png diff --git a/src/content/translations/it/developers/docs/bridges/index.md b/public/content/translations/it/developers/docs/bridges/index.md similarity index 100% rename from src/content/translations/it/developers/docs/bridges/index.md rename to public/content/translations/it/developers/docs/bridges/index.md diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/index.md b/public/content/translations/it/developers/docs/consensus-mechanisms/index.md similarity index 100% rename from src/content/translations/it/developers/docs/consensus-mechanisms/index.md rename to public/content/translations/it/developers/docs/consensus-mechanisms/index.md diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md b/public/content/translations/it/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md similarity index 100% rename from src/content/translations/it/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md rename to public/content/translations/it/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pos/attack-and-defense/reorg-schematic.png b/public/content/translations/it/developers/docs/consensus-mechanisms/pos/attack-and-defense/reorg-schematic.png similarity index 100% rename from src/content/translations/it/developers/docs/consensus-mechanisms/pos/attack-and-defense/reorg-schematic.png rename to public/content/translations/it/developers/docs/consensus-mechanisms/pos/attack-and-defense/reorg-schematic.png diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pos/attestations/attestation_schematic.png b/public/content/translations/it/developers/docs/consensus-mechanisms/pos/attestations/attestation_schematic.png similarity index 100% rename from src/content/translations/it/developers/docs/consensus-mechanisms/pos/attestations/attestation_schematic.png rename to public/content/translations/it/developers/docs/consensus-mechanisms/pos/attestations/attestation_schematic.png diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pos/attestations/index.md b/public/content/translations/it/developers/docs/consensus-mechanisms/pos/attestations/index.md similarity index 100% rename from src/content/translations/it/developers/docs/consensus-mechanisms/pos/attestations/index.md rename to public/content/translations/it/developers/docs/consensus-mechanisms/pos/attestations/index.md diff --git a/public/content/translations/it/developers/docs/consensus-mechanisms/pos/block-proposal/index.md b/public/content/translations/it/developers/docs/consensus-mechanisms/pos/block-proposal/index.md new file mode 100644 index 00000000000..8f6ec19d1c6 --- /dev/null +++ b/public/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 comprendere questa pagina, ti consigliamo di leggere a riguardo del [proof-of-stake](src/content/developers/docs/consensus-mechanisms/pos/) e dell'[architettura dei blocchi](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 firmando il numero dell'epoca corrente. `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](https://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/public/content/translations/it/developers/docs/consensus-mechanisms/pos/faqs/index.md similarity index 100% rename from src/content/translations/it/developers/docs/consensus-mechanisms/pos/faqs/index.md rename to public/content/translations/it/developers/docs/consensus-mechanisms/pos/faqs/index.md diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pos/gasper/index.md b/public/content/translations/it/developers/docs/consensus-mechanisms/pos/gasper/index.md similarity index 100% rename from src/content/translations/it/developers/docs/consensus-mechanisms/pos/gasper/index.md rename to public/content/translations/it/developers/docs/consensus-mechanisms/pos/gasper/index.md diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pos/index.md b/public/content/translations/it/developers/docs/consensus-mechanisms/pos/index.md similarity index 100% rename from src/content/translations/it/developers/docs/consensus-mechanisms/pos/index.md rename to public/content/translations/it/developers/docs/consensus-mechanisms/pos/index.md diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pos/keys/index.md b/public/content/translations/it/developers/docs/consensus-mechanisms/pos/keys/index.md similarity index 100% rename from src/content/translations/it/developers/docs/consensus-mechanisms/pos/keys/index.md rename to public/content/translations/it/developers/docs/consensus-mechanisms/pos/keys/index.md diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pos/keys/multiple-keys.png b/public/content/translations/it/developers/docs/consensus-mechanisms/pos/keys/multiple-keys.png similarity index 100% rename from src/content/translations/it/developers/docs/consensus-mechanisms/pos/keys/multiple-keys.png rename to public/content/translations/it/developers/docs/consensus-mechanisms/pos/keys/multiple-keys.png diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md b/public/content/translations/it/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md similarity index 100% rename from src/content/translations/it/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md rename to public/content/translations/it/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md b/public/content/translations/it/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md similarity index 100% rename from src/content/translations/it/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md rename to public/content/translations/it/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md b/public/content/translations/it/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md similarity index 100% rename from src/content/translations/it/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md rename to public/content/translations/it/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pow/index.md b/public/content/translations/it/developers/docs/consensus-mechanisms/pow/index.md similarity index 100% rename from src/content/translations/it/developers/docs/consensus-mechanisms/pow/index.md rename to public/content/translations/it/developers/docs/consensus-mechanisms/pow/index.md diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pow/mining-algorithms/dagger-hashamoto/index.md b/public/content/translations/it/developers/docs/consensus-mechanisms/pow/mining-algorithms/dagger-hashamoto/index.md similarity index 100% rename from src/content/translations/it/developers/docs/consensus-mechanisms/pow/mining-algorithms/dagger-hashamoto/index.md rename to public/content/translations/it/developers/docs/consensus-mechanisms/pow/mining-algorithms/dagger-hashamoto/index.md diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethash/index.md b/public/content/translations/it/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethash/index.md similarity index 100% rename from src/content/translations/it/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethash/index.md rename to public/content/translations/it/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethash/index.md diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pow/mining-algorithms/index.md b/public/content/translations/it/developers/docs/consensus-mechanisms/pow/mining-algorithms/index.md similarity index 100% rename from src/content/translations/it/developers/docs/consensus-mechanisms/pow/mining-algorithms/index.md rename to public/content/translations/it/developers/docs/consensus-mechanisms/pow/mining-algorithms/index.md diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/index.md b/public/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/index.md similarity index 100% rename from src/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/index.md rename to public/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/index.md diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md b/public/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md similarity index 100% rename from src/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md rename to public/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md b/public/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md similarity index 100% rename from src/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md rename to public/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md diff --git a/src/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md b/public/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md similarity index 100% rename from src/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md rename to public/content/translations/it/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md diff --git a/src/content/translations/it/developers/docs/dapps/index.md b/public/content/translations/it/developers/docs/dapps/index.md similarity index 100% rename from src/content/translations/it/developers/docs/dapps/index.md rename to public/content/translations/it/developers/docs/dapps/index.md diff --git a/src/content/translations/it/developers/docs/data-and-analytics/block-explorers/index.md b/public/content/translations/it/developers/docs/data-and-analytics/block-explorers/index.md similarity index 100% rename from src/content/translations/it/developers/docs/data-and-analytics/block-explorers/index.md rename to public/content/translations/it/developers/docs/data-and-analytics/block-explorers/index.md diff --git a/src/content/translations/it/developers/docs/data-and-analytics/index.md b/public/content/translations/it/developers/docs/data-and-analytics/index.md similarity index 100% rename from src/content/translations/it/developers/docs/data-and-analytics/index.md rename to public/content/translations/it/developers/docs/data-and-analytics/index.md diff --git a/src/content/translations/it/developers/docs/data-availability/index.md b/public/content/translations/it/developers/docs/data-availability/index.md similarity index 100% rename from src/content/translations/it/developers/docs/data-availability/index.md rename to public/content/translations/it/developers/docs/data-availability/index.md diff --git a/src/content/translations/it/developers/docs/data-structures-and-encoding/index.md b/public/content/translations/it/developers/docs/data-structures-and-encoding/index.md similarity index 100% rename from src/content/translations/it/developers/docs/data-structures-and-encoding/index.md rename to public/content/translations/it/developers/docs/data-structures-and-encoding/index.md diff --git a/src/content/translations/it/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md b/public/content/translations/it/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md similarity index 100% rename from src/content/translations/it/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md rename to public/content/translations/it/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md diff --git a/src/content/translations/it/developers/docs/data-structures-and-encoding/rlp/index.md b/public/content/translations/it/developers/docs/data-structures-and-encoding/rlp/index.md similarity index 100% rename from src/content/translations/it/developers/docs/data-structures-and-encoding/rlp/index.md rename to public/content/translations/it/developers/docs/data-structures-and-encoding/rlp/index.md diff --git a/src/content/translations/it/developers/docs/data-structures-and-encoding/ssz/index.md b/public/content/translations/it/developers/docs/data-structures-and-encoding/ssz/index.md similarity index 100% rename from src/content/translations/it/developers/docs/data-structures-and-encoding/ssz/index.md rename to public/content/translations/it/developers/docs/data-structures-and-encoding/ssz/index.md diff --git a/src/content/translations/it/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md b/public/content/translations/it/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md similarity index 100% rename from src/content/translations/it/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md rename to public/content/translations/it/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md diff --git a/src/content/translations/it/developers/docs/design-and-ux/index.md b/public/content/translations/it/developers/docs/design-and-ux/index.md similarity index 100% rename from src/content/translations/it/developers/docs/design-and-ux/index.md rename to public/content/translations/it/developers/docs/design-and-ux/index.md diff --git a/src/content/translations/it/developers/docs/development-networks/index.md b/public/content/translations/it/developers/docs/development-networks/index.md similarity index 100% rename from src/content/translations/it/developers/docs/development-networks/index.md rename to public/content/translations/it/developers/docs/development-networks/index.md diff --git a/src/content/translations/it/developers/docs/ethereum-stack/index.md b/public/content/translations/it/developers/docs/ethereum-stack/index.md similarity index 100% rename from src/content/translations/it/developers/docs/ethereum-stack/index.md rename to public/content/translations/it/developers/docs/ethereum-stack/index.md diff --git a/src/content/translations/it/developers/docs/evm/evm.png b/public/content/translations/it/developers/docs/evm/evm.png similarity index 100% rename from src/content/translations/it/developers/docs/evm/evm.png rename to public/content/translations/it/developers/docs/evm/evm.png diff --git a/src/content/translations/it/developers/docs/evm/gas.png b/public/content/translations/it/developers/docs/evm/gas.png similarity index 100% rename from src/content/translations/it/developers/docs/evm/gas.png rename to public/content/translations/it/developers/docs/evm/gas.png diff --git a/src/content/translations/it/developers/docs/evm/index.md b/public/content/translations/it/developers/docs/evm/index.md similarity index 100% rename from src/content/translations/it/developers/docs/evm/index.md rename to public/content/translations/it/developers/docs/evm/index.md diff --git a/src/content/translations/it/developers/docs/evm/opcodes/index.md b/public/content/translations/it/developers/docs/evm/opcodes/index.md similarity index 100% rename from src/content/translations/it/developers/docs/evm/opcodes/index.md rename to public/content/translations/it/developers/docs/evm/opcodes/index.md diff --git a/src/content/translations/it/developers/docs/frameworks/index.md b/public/content/translations/it/developers/docs/frameworks/index.md similarity index 100% rename from src/content/translations/it/developers/docs/frameworks/index.md rename to public/content/translations/it/developers/docs/frameworks/index.md diff --git a/src/content/translations/it/developers/docs/gas/index.md b/public/content/translations/it/developers/docs/gas/index.md similarity index 100% rename from src/content/translations/it/developers/docs/gas/index.md rename to public/content/translations/it/developers/docs/gas/index.md diff --git a/src/content/translations/it/developers/docs/ides/index.md b/public/content/translations/it/developers/docs/ides/index.md similarity index 100% rename from src/content/translations/it/developers/docs/ides/index.md rename to public/content/translations/it/developers/docs/ides/index.md diff --git a/src/content/translations/it/developers/docs/index.md b/public/content/translations/it/developers/docs/index.md similarity index 100% rename from src/content/translations/it/developers/docs/index.md rename to public/content/translations/it/developers/docs/index.md diff --git a/src/content/translations/it/developers/docs/intro-to-ether/index.md b/public/content/translations/it/developers/docs/intro-to-ether/index.md similarity index 100% rename from src/content/translations/it/developers/docs/intro-to-ether/index.md rename to public/content/translations/it/developers/docs/intro-to-ether/index.md diff --git a/src/content/translations/it/developers/docs/intro-to-ethereum/index.md b/public/content/translations/it/developers/docs/intro-to-ethereum/index.md similarity index 100% rename from src/content/translations/it/developers/docs/intro-to-ethereum/index.md rename to public/content/translations/it/developers/docs/intro-to-ethereum/index.md diff --git a/src/content/translations/it/developers/docs/layer-2-scaling/index.md b/public/content/translations/it/developers/docs/layer-2-scaling/index.md similarity index 100% rename from src/content/translations/it/developers/docs/layer-2-scaling/index.md rename to public/content/translations/it/developers/docs/layer-2-scaling/index.md diff --git a/public/content/translations/it/developers/docs/mev/index.md b/public/content/translations/it/developers/docs/mev/index.md new file mode 100644 index 00000000000..ee28bc84ebc --- /dev/null +++ b/public/content/translations/it/developers/docs/mev/index.md @@ -0,0 +1,221 @@ +--- +title: Valore estraibile massimo (MEV) +description: Un'introduzione al valore estraibile massimo (MEV) +lang: it +--- + +Il valore estraibile massimo (MEV) si riferisce al valore massimo che può esser estratto dalla produzione del blocco, oltre alla ricompensa standard del blocco e alle commissioni sul gas, includendo, escludendo e cambiando l'ordine delle transazioni in un blocco. + +## Valore estraibile dal miner {#miner-extractable-value} + +Il valore estraibile massimo fu applicato per la prima volta nel contesto del [proof-of-work](/developers/docs/consensus-mechanisms/pow/) e fu inizialmente definito come "valore estraibile dal miner". Questo perché nel Proof of Work i miner controllano l'inclusione, l'esclusione e l'ordinamento della transazione. Tuttavia, a partire dalla transizione al proof-of-stake tramite [La Fusione](/roadmap/merge), i validatori sono responsabili di tali ruoli e il mining non fa più parte del protocollo di Ethereum. I metodi d'estrazione del valore però esistono ancora, quindi il termine usato adesso è invece "Valore estraibile massimo". + +## Prerequisiti {#prerequisites} + +Assicurati di essere familiare con le [transazioni](/developers/docs/transactions/), i [blocchi](/developers/docs/blocks/), il [proof-of-stake](/developers/docs/consensus-mechanisms/pos) e il [gas](/developers/docs/gas/). Anche la familiarità con [dApp](/dapps/) e [DeFi](/defi/) è utile. + +## Estrazione del MEV {#mev-extraction} + +In teoria, il MEV proviene interamente dai validatori poiché sono l'unica parte in grado di garantire l'esecuzione di un'opportunità di MEV redditizia. Nella pratica, tuttavia, una grande porzione del MEV è estratta da partecipanti indipendenti della rete, chiamati "ricercatori". I ricercatori eseguono algoritmi complessi sui dati della blockchain per rilevare opportunità di MEV redditizie e si servono di bot per inviare automaticamente tali transazioni redditizie alla rete. + +I validatori ottengono comunque una porzione dell'intero importo del MEV, poiché i ricercatori sono disposti a pagare commissioni sul gas maggiori (che vanno al validatore), in cambio di una maggiore probabilità d'inclusione delle loro transazioni profittevoli in un blocco. Supponendo che i ricercatori siano economicamente razionari, la commissione sul gas che un ricercatore è disposto a pagare sarà un importo fino al 100% del MEV del ricercatore (poiché se la commissione sul gas fosse stata maggiore, il ricercatore avrebbe perso denaro). + +Così, per alcune opportunità di MEV molto competitive, come l'[arbitraggio della DEX](#mev-examples-dex-arbitrage), i ricercatori potrebbero dover pagare il 90%, se non più, delle loro entrate totali del MEV in commissioni sul gas al validatore, poiché così tante persone vogliono eseguire lo stesso scambio d'arbitraggio profittevole. Questo è perché il solo modo per garantire che la loro transazione d'arbitraggio sia eseguita se inviano la transazione con il prezzo sul gas maggiore. + +### Golf del gas {#mev-extraction-gas-golfing} + +Questa dinamica ha reso esser bravi al "golf del gas", la programmazione delle transazioni così che usino l'importo minimo di gas, un vantaggio competitivo, poiché consente ai ricercatori di impostare un prezzo del gas maggiore, mantenendo costanti le proprie commissioni sul gas totali (poiché, commissioni sul gas = prezzo del gas \* gas usato). + +Alcune tecniche di golf del gas ben note includono: usare indirizzi che iniziano con una lunga stringa di zeri (es. [0x0000000000C521824EaFf97Eac7B73B084ef9306](https://etherscan.io/address/0x0000000000c521824eaff97eac7b73b084ef9306)) poiché richiedono meno spazio (e quindi gas) da archiviare; e lasciando piccoli saldi del token [ERC-20](/developers/docs/standards/tokens/erc-20/) nei contratti, poiché costa più gas inizializzare uno slot d'archiviazione (se il saldo è 0), piuttosto che aggiornarne uno. Individuare altre tecniche per ridurre il consumo di gas è un'area di ricerca attiva tra i ricercatori. + +### Frontrunner generalizzati {#mev-extraction-generalized-frontrunners} + +Anziché programmare algoritmi complessi per rilevare opportunità di MEV redditizie, alcuni ricercatori eseguono frontrunner generalizzati. I frontrunner generalizzati sono bot che tengono d'occhio il mempool per individuare le transazioni redditizie. Il frontrunner copierà il codice della transazione potenzialmente redditizia, sostituirà gli indirizzi con il proprio ed eseguirà la transazione localmente per verificare due volte che la transazione modificata risulti in un profitto all'indirizzo del frontrunner. Se la transazione è effettivamente redditizia, il precursore invierà la transazione modificata con l'indirizzo sostituito e un prezzo del gas maggiore, "precorrendo" la transazione originale e ottenendo il MEV originale del ricercatore. + +### Flashbot {#mev-extraction-flashbots} + +I flashbot sono un progetto indipendente che estende i client di esecuzione con un servizio che consente ai ricercatori di inviare le transazioni del MEV ai validatori senza rivelarle al mempool pubblico. Questo impedisce ai frontrunner generalizzati di eseguire frontrun sulle transazioni. + +## Esempi di MEV {#mev-examples} + +Il MEV emerge sulla blockchain in diversi modi. + +### Arbitraggio DEX {#mev-examples-dex-arbitrage} + +L'arbitraggio dello [scambio decentralizzato](/glossary/#dex) (DEX) è l'opportunità di MEV più semplice e più diffusa. Di conseguenza è anche la più competitiva. + +Funziona come segue: se due DEX offrono un token a due prezzi diversi, qualcuno può acquistare il token sul DEX al prezzo minore e rivenderlo sul DEX al prezzo maggiore in un'unica transazione atomica. Grazie ai meccanismi della blockchain, questo è vero e proprio arbitraggio privo di rischi. + +[Ecco un esempio](https://etherscan.io/tx/0x5e1657ef0e9be9bc72efefe59a2528d0d730d478cfc9e6cdd09af9f997bb3ef4) di una transazione di arbitraggio redditizia in cui un ricercatore ha trasformato 1.000 ETH in 1.045 ETH sfruttando i diversi prezzi della coppia ETH/DAI su Uniswap vs. Sushiswap. + +### Liquidazioni {#mev-examples-liquidations} + +Le liquidazioni del protocollo di prestito presentano un'altra opportunità di MEV ben nota. + +I protocolli di prestito come Maker e Aave richiedono agli utenti di depositare un qualche tipo di garanzia (es. ETH). Questa garanzia depositata è poi usata per concedere prestiti ad altri utenti. + +Gli utenti possono quindi prendere in prestito risorse e token dagli altri, a seconda delle loro esigenze (ad es. potresti prendere in prestito MKR se desideri votare in una proposta di governance di MakerDAO), fino a una certa percentuale della loro garanzia depositata. Ad esempio, se l'importo preso in prestito è un massimo del 30%, un utente che deposita 100 DAI nel protocollo può prendere in prestito fino all'equivalente di 30 DAI di un'altra risorsa. Il protocollo determina l'esatta percentuale di potenza presa in prestito. + +Al fluttuare del valore della garanzia di un debitore, fluttua anche la capacità di prestito. Se, a causa delle fluttuazioni del mercato, il valore degli attivi presi in presi in prestito supera, ad esempio, il 30% del valore della loro garanzia (anche in questo caso l'esatta percentuale è determinata dal protocollo), il protocollo consente tipicamente a chiunque di liquidare la garanzia, pagando istantaneamente i creditori (in modo simile al funzionamento dei [margini aggiuntivi](https://www.investopedia.com/terms/m/margincall.asp) nella finanza tradizionale). In caso di liquidazione, il debitore deve solitamente pagare una cospicua commissione di liquidazione, parte della quale va al liquidatore; ed è qui che risiede l'opportunità di MEV. + +I ricercatori competono per analizzare i dati della blockchain il più velocemente possibile per determinare quali debitori sono liquidabili ed essere i primi a inviare una transazione di liquidazione e raccogliere la commissione di liquidazione per se stessi. + +### Sandwich trading {#mev-examples-sandwich-trading} + +Il sandwich trading è un altro metodo comune di estrazione del MEV. + +Per eseguirlo, un ricercatore osserverà il mempool alla ricerca di scambi di DEX di notevole entità. Per esempio, supponiamo che qualcuno voglia comprare 10.000 UNI con DAI su Uniswap. Uno scambio di tale portata avrà un effetto significativo sulla coppia UNI/DAI, aumentando in modo potenzialmente importante il prezzo di UNI rispetto al DAI. + +Un ricercatore può calcolare l'effetto approssimativo del prezzo di questo scambio di ampia portata sulla coppia UNI/DAI ed eseguire un acquisto ottimale immediatamente _prima_ di esso, acquistando UNI a basso costo per poi eseguire l'ordine di vendita immediatamente _dopo_ lo scambio, vendendolo a un prezzo superiore, causato dallo stesso ordine. + +Il sandwiching, tuttavia, è più rischioso non essendo atomico (a differenza dell'arbitraggio di DEX, come descritto sopra) ed è soggetto a un [attacco di salmonella](https://github.com/Defi-Cartel/salmonella). + +### MEV nel mondo dei NFT {#mev-examples-nfts} + +Nel mondo dei NFT, il MEV è un fenomeno emergente e non necessariamente redditizio. + +Tuttavia, poiché le transazioni di NFT hanno luogo sulla stessa blockchain condivisa da tutte le transazioni di Ethereum, i ricercatori possono usare tecniche simili a quelle usate per le opportunità di MEV tradizionali anche nel mercato dei NFT. + +Per esempio, se si verifica un calo a livello di un NFT popolare e un ricercatore vuole un certo NFT o una serie di NFT, può programmare una transazione in modo tale da essere il primo ad acquistare il NTF o l'intera serie di NTF in una sola transazione. Oppure, se un NFT viene [erroneamente elencato a un prezzo basso](https://www.theblockcrypto.com/post/113546/mistake-sees-69000-cryptopunk-sold-for-less-than-a-cent), un ricercatore può scavalcare gli altri acquirenti e ottenerlo a buon mercato. + +Un esempio eloquente di MEV nel mondo dei NFT si è verificato quando un ricercatore ha speso $7 milioni per [comprare](https://etherscan.io/address/0x650dCdEB6ecF05aE3CAF30A70966E2F395d5E9E5) ogni singolo Cryptopunk al prezzo di base. Un ricercatore della blockchain [ha spiegato su Twitter](https://twitter.com/IvanBogatyy/status/1422232184493121538) come l'acquirente avesse lavorato con un fornitore di MEV per mantenere segreto l'acquisto. + +### La lunga coda {#mev-examples-long-tail} + +L'arbitraggio di DEX, le liquidazioni e il sandwich trading sono tutte opportunità di MEV ben note e difficilmente saranno redditizie per i nuovi ricercatori. Tuttavia, esiste una lunga coda di opportunità di MEV meno note (il MEV nel mondo dei NFT è probabilmente una di esse). + +I ricercatori che stanno muovendo i primi passi potrebbero avere maggiore successo ricercando MEV in questa lunga coda. La [MEV job board](https://github.com/flashbots/mev-job-board) del flashbot elenca alcune opportunità emergenti. + +## Effetti del MEV {#effects-of-mev} + +Il MEV non è una cosa negativa: su Ethereum ci sono conseguenze sia positive che negative connesse al MEV. + +### Aspetti positivi {#effects-of-mev-the-good} + +Molti progetti di DeFi si basano su attori economicamente razionali per assicurare l'utilità e stabilità dei loro protocolli. Per esempio, l'arbitraggio di DEX assicura che gli utenti ottengano i prezzi migliori e più corretti per i loro token, mentre i protocolli di prestito si basano su liquidazioni rapide quando i debitori scendono al di sotto dei coefficienti di garanzia per garantire il rimborso dei creditori. + +Senza ricercatori razionali che cercano e correggono le inefficienze economiche e sfruttano gli incentivi economici dei protocolli, i protocolli DeFi e le dApp in generale potrebbero perdere la robustezza che esibiscono oggi. + +### Aspetti negativi {#effects-of-mev-the-bad} + +A livello di applicazione, alcune forme di MEV, come il sandwich trading, si traducono in un'esperienza inequivocabilmente peggiore per gli utenti. Gli utenti che ricevono il sandwich subiscono un maggiore slittamento e una peggiore esecuzione delle loro operazioni. + +Al livello della rete, i precursori generalizzati e le aste del prezzo del gas, che spesso intraprendono (quando due o più precursori competono perché la propria transazione sia inclusa nel blocco successivo, aumentando progressivamente il prezzo del gas della loro transazione), risultano in congestione della rete e prezzi del gas elevati per chiunque altro sia provando a eseguire transazioni regolari. + +Oltre a ciò che si verifica _all'interno_ dei blocchi, il MEV può avere effetti deleteri _tra_ i blocchi. Se il MEV disponibile in un blocco supera significativamente la ricompensa standard del blocco, i validatori potrebbero essere incentivati a riorganizzare i blocchi e catturare da soli il MEV, causando la riorganizzazione della blockchain e l'instabilità del consenso. + +Questa possibile riorganizzazione della blockchain è stata [precedentemente esplorata sulla blockchain di Bitcoin](https://dl.acm.org/doi/10.1145/2976749.2978408). Poiché le metà delle ricompense del blocco e le commissioni di transazione di Bitcoin costituiscono una porzione sempre più consistente della ricompensa del blocco, si presentano situazioni in cui diventa economicamente razionale per i miner rinunciare alla ricompensa del blocco successivo e ri-minare invece i blocchi passati con commissioni maggiori. Con la crescita del MEV, la stessa tipologia di situazione potrebbe verificarsi in Ethereum, minacciando l'integrità della blockchain. + +## Stato del MEV {#state-of-mev} + +L'estrazione del MEV è aumentata a dismisura agli inizi del 2021, risultando in prezzi del gas estremamente elevati nei primi mesi dell'anno. L'emergere della trasmissione del MEV dei Flashbot ha ridotto l'efficienza dei precursori generalizzati e ha portato le aste del prezzo del gas al di fuori della catena, riducendo i prezzi del gas per gli utenti ordinari. + +Mentre molti ricercatori guadagnano ancora molto dal MEV, con il diffondersi delle opportunità e la competizione di sempre più ricercatori per la stessa opportunità, i validatori cattureranno sempre più ricavi totali del MEV (poiché lo stesso tipo di aste del gas originariamente descritte in precedenza, si verificano anche nei Flashbot, seppur privatamente, e i validatori cattureranno i ricavi di gas risultanti). Inoltre, il MEV non è un'esclusiva di Ethereum e, man mano che le opportunità su Ethereum diventano più competitive, i ricercatori si spostano su blockchain alternative come Binance Smart Chain, dove esistono opportunità di MEV simili a quelle di Ethereum ma con minore competizione. + +D'altra parte, la transizione dal proof-of-work al proof-of-stake e lo sforzo di ridimensionamento di Ethereum in corso usando i rollup stanno modificando il panorama del MEV in modi ancora piuttosto nebulosi. Non è ancora noto come il fatto di conoscere i propositori di blocchi garantiti lievemente in anticipo modifichi le dinamiche di estrazione del MEV rispetto al modello probabilistico nel proof-of-work, o come questo sarà sconvolto quando l'[elezione segreta di un singolo capo ](https://ethresear.ch/t/secret-non-single-leader-election/11789) e la [tecnologia distribuita del validatore](/staking/dvt/) saranno implementate. Similmente, resta da vedere quali opportunità del MEV esistono quando gran parte dell'attività degli utenti è portata via da Ethereum e sui suoi rollup e shard di livello 2. + +## MEV nel proof-of-stake (PoS) di Ethereum {#mev-in-ethereum-proof-of-stake} + +Come spiegato, il MEV ha implicazioni negative per l’esperienza complessiva degli utenti e per la sicurezza al livello di consenso. Ma la transizione di Ethereum al protocollo di consenso proof-of-stake (soprannominato “La Fusione”) introduce potenzialmente nuovi rischi legati al MEV: + +### Centralizzazione dei validatori {#validator-centralization} + +Dopo La Fusione di Ethereum, i validatori (dopo aver effettuato depositi di sicurezza di 32 ETH) raggiungono il consenso sulla validità dei blocchi aggiunti alla Beacon Chain. Dal momento che 32 ETH possono essere fuori dalla portata di molti, [unirsi a un pool di staking](/staking/pools/) può essere un'opzione più fattibile. Ciò nonostante, una sana distribuzione di [staker autonomi](/staking/solo/) è ideale, in quanto attenua la centralizzazione dei validatori e migliora la sicurezza di Ethereum. + +Tuttavia, si ritiene che l'estrazione del MEV sia in grado di accelerare la centralizzazione dei validatori. Questo è in parte dovuto al fatto che, poiché i validatori [guadagnano meno per i blocchi proposti](/roadmap/merge/issuance/#how-the-merge-impacts-ETH-supply) rispetto a quanto attualmente ottenuto dai miner, l'estrazione del MEV può notevolmente [influenzare i guadagni dei validatori](https://github.com/flashbots/eth2-research/blob/main/notebooks/mev-in-eth2/eth2-mev-calc.ipynb) dopo La Fusione. + +I pool di staking più grandi avranno probabilmente più risorse da investire nelle ottimizzazioni necessarie per cogliere le opportunità del MEV. Quanto più MEV questi pool estraggono, tanto più risorse avranno per migliorare le loro capacità di estrazione del MEV (e aumentare le entrate complessive), creando essenzialmente [economie di scala](https://www.investopedia.com/terms/e/economiesofscale.asp#). + +Con un minor numero di risorse a loro disposizione, gli staker autonomi potrebbero non essere in grado di trarre profitto dalle opportunità offerte dal MEV. Questo potrebbe aumentare la pressione sui validatori autonomi per unire potenti pool di staking per aumentare i loro guadagni, riducendo la decentralizzazione in Ethereum. + +### Mempool con permessi (permissioned) {#permissioned-mempools} + +In risposta agli attacchi di sandwiching e di frontrunning, i trader possono iniziare a condurre operazioni off-chain con validatori per la privacy delle transazioni. Invece di inviare una potenziale transazione MEV al mempool pubblico, il trader la invia direttamente al validatore, che la include in un blocco e divide i profitti con il trader. + +I “dark pool” sono una versione più ampia di questo accordo e funzionano come mempool di solo accesso, con permessi, aperti agli utenti disposti a pagare determinate commissioni. Questa tendenza diminuirebbe la mancanza di permessi e la mancanza di fiducia di Ethereum e trasformerebbe potenzialmente la blockchain in un meccanismo “pay-to-play” che favorisce il miglior offerente. + +I mempool con permessi accelererebbero anche i rischi di centralizzazione descritti nella sezione precedente. I grandi pool che eseguono più validatori trarranno probabilmente vantaggio dall'offrire la privacy delle transazioni ai trader e agli utenti, aumentando i loro ricavi in MEV. + +La lotta a questi problemi legati al MEV successivamente alla Fusione di Ethereum è un ambito centrale di ricerca. Ad oggi, due soluzioni proposte per ridurre l'impatto negativo del MEV sulla decentralizzazione e la sicurezza di Ethereum dopo La Fusione sono la **Separazione propositore-costruttore (PBS)** e l'**API Builder**. + +### Separazione propositore-costruttore {#proposer-builder-separation} + +Sia nel proof-of-of-work che nel proof-of-stake, un nodo che costruisce un blocco propone di aggiungerlo alla catena ad altri nodi che partecipano al consenso. Un nuovo blocco diventa parte della catena principale dopo che un altro miner costruisce sopra di esso (nella PoW) o riceve attestazioni dalla maggior parte dei validatori (nella Pos). + +La combinazione dei ruoli del produttore di blocchi e del propositore di blocchi è ciò che introduce la maggior parte dei problemi relativi al MEV descritti in precedenza. Ad esempio, i nodi di consenso sono incentivati a innescare le riorganizzazioni della catena in attacchi di time-bandit per massimizzare i guadagni di MEV. + +La [Separazione propositore-costruttore](https://ethresear.ch/t/proposer-block-builder-separation-friendly-fee-market-designs/9725) (PBS) è concepita per mitigare l'impatto del MEV, soprattutto al livello di consenso. La caratteristica principale della PBS è la separazione dei produttori di blocchi e le regole del propositore di blocchi. I validatori sono ancora responsabili di proporre e votare i blocchi, ma una nuova classe di entità specializzate, chiamati **costruttori di blocchi**, sono incaricati di ordinare transazioni e costruire i blocchi. + +Nella PBS, un costruttore di blocchi crea un pacchetto di transazioni e mette un'offerta per la sua inclusione in un blocco della Beacon Chain (come il “payload di esecuzione”). Il validatore selezionato per proporre il blocco successivo quindi controlla le diverse offerte e sceglie il pacchetto con la commissione più alta. La PBS crea essenzialmente un mercato d'asta, dove i costruttori negoziano con validatori che vendono lo spazio del blocco. + +Gli attuali progetti PBS utilizzano uno [schema commit-reveal](https://gitcoin.co/blog/commit-reveal-scheme-on-ethereum/) in cui i costruttori pubblicano solo un impegno crittografico per i contenuti di un blocco (intestazione del blocco) insieme alle loro offerte. Dopo aver accettato l'offerta vincente, il propositore crea una proposta di blocco firmata che include l'intestazione del blocco. Il costruttore di blocchi dovrebbe pubblicare il corpo completo del blocco dopo aver visualizzato la proposta del blocco firmata e, inoltre, deve ricevere abbastanza [attestazioni](/glossary/#attestation) dai validatori prima che sia finalizzata. + +#### In che modo la separazione propositore-costruttore riduce l’impatto del MEV? {#how-does-pbs-curb-mev-impact} + +La separazione del propositore e del costruttore riduce l’effetto del MEV sul consenso eliminando l’estrazione del MEV dal campo di applicazione dei validatori. Invece, da ora in poi saranno i costruttori di blocchi che eseguono hardware specializzato a cogliere le opportunità di MEV. + +Ciò, però, non esclude del tutto i validatori dal reddito relativo al MEV, poiché i costruttori devono offrire alti pagamenti per far accettare i propri blocchi dai validatori. Tuttavia, con i validatori non più direttamente focalizzati sull'ottimizzazione del reddito da MEV, la minaccia di attacchi di time-bandit si riduce. + +La separazione propositore-costruttore riduce anche i rischi di centralizzazione del MEV. Per esempio, l'uso di uno schema commit-reveal elimina la necessità per i costruttori di fidarsi del fatto che i validatori non ruberanno l'opportunità di MEV o non la esporranno ad altri costruttori. In questo modo si riduce la barriera per gli operatori autonomi di beneficiare del MEV, altrimenti i costruttori tenderebbero a favorire grandi pool con buona reputazione off-chain e a condurre delle trattative off-chain con loro. + +Allo stesso modo, i validatori non devono fidarsi del fatto che i costruttori non tratterranno i corpi dei blocchi o non pubblicheranno blocchi non validi perché il pagamento è incondizionato. La commissione del validatore continua a essere elaborata anche se il blocco proposto non è disponibile o è dichiarato non valido da altri validatori. In quest'ultimo caso, il blocco viene semplicemente scartato, costringendo il costruttore di blocchi a perdere tutte le commissioni di transazione e i ricavi di MEV. + +### API Builder {#builder-api} + +Mentre la separazione tra propositori e creatori promette di ridurre gli effetti dell'estrazione del MEV, la sua attuazione richiede modifiche al protocollo di consenso. In particolare, la regola [scelta della diramazione](/developers/docs/consensus-mechanisms/pos/#fork-choice) sulla Beacon Chain dovrebbe essere aggiornata. L'API [Builder](https://github.com/ethereum/builder-specs) è una soluzione temporanea volta a fornire un'implementazione funzionante della separazione propositore-costruttore, anche se con presupposti di fiducia più elevati. + +L'API Builder è una versione modificata dell'[API Engine](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) utilizzata dai client del livello di consenso per richiedere payload di esecuzione dai client del livello di esecuzione. Come indicato nella [specifica del validatore onesto](https://github.com/ethereum/consensus-specs/blob/dev/specs/bellatrix/validator.md), i validatori selezionati per i compiti di proposta dei blocchi richiedono un pacchetto di transazioni da un client di esecuzione connesso, che includono nel blocco della Beacon Chain proposto. + +L'API Builder funge anche da middleware tra validatori e client al livello di esecuzione, ma è diverso perché permette ai validatori sulla Beacon Chain di procurarsi blocchi da entità esterne (invece di costruire un blocco localmente utilizzando un client di esecuzione). + +Di seguito una panoramica di come funziona l'API Builder: + +1. L'API Builder collega il validatore a una rete di costruttori di blocchi che eseguono client del livello di esecuzione. Come nella PBS, i costruttori sono parti specializzate che investono nella costruzione di blocchi ad alta intensità di risorse e utilizzano diverse strategie per massimizzare i ricavi guadagnati dai MEV + mance di priorità. + +2. Un validatore (che esegue un client del livello di consenso) richiede payload di esecuzione insieme alle offerte dalla rete di costruttori. Le offerte dei costruttori conterranno l'intestazione del payload di esecuzione – un impegno crittografico per i contenuti del payload – e una commissione da pagare al validatore. + +3. Il validatore esamina le offerte in arrivo e sceglie il payload di esecuzione con la commissione più alta. Usando l'API Builder, il validatore crea una proposta di blocco Beacon "alla cieca" che include solo la sua firma e l'intestazione del payload di esecuzione e la invia al costruttore. + +4. Il costruttore che esegue l'API Builder dovrebbe rispondere con il payload di esecuzione completo quando si vede la proposta di blocco alla cieca. Questo permette al validatore di creare un blocco Beacon "firmato", che propaga in tutta la rete. + +5. Un validatore che utilizza l'API Builder dovrebbe ancora costruire un blocco localmente nel caso in cui il costruttore del blocco non risponda tempestivamente, in modo da non perdere le ricompense della proposta di blocco. Tuttavia, il validatore non può creare un altro blocco utilizzando le transazioni ormai rivelate o un altro set, in quanto equivarrebbe a un _equivoco_ (firmare due blocchi all'interno dello stesso slot), che è un illecito tagliabile. + +Un esempio di implementazione dell'API Builder è [MEV Boost](https://github.com/flashbots/mev-boost), un miglioramento rispetto al [meccanismo di asta di Flashbots](https://docs.flashbots.net/Flashbots-auction/overview/) progettato per frenare le esternalità negative del MEV su Ethereum. L'asta di Flashbots permette ai miner in proof-of-work di esternalizzare il lavoro di costruzione di blocchi redditizi ad entità specializzate chiamate **ricercatori**. + +I ricercatori cercano opportunità di MEV redditizie e inviano pacchetti di transazioni ai miner insieme a un'[offerta in busta chiusa](https://en.wikipedia.org/wiki/First-price_sealed-bid_auction) per l'inclusione nel blocco. Il miner che esegue mev-geth, una versione diramata del client go-ethereum (Geth), deve solo scegliere il pacchetto con il maggior profitto e minarlo come parte del nuovo blocco. Per proteggere i miner dallo spam e dalle transazioni non valide, i pacchetti di transazioni passano attraverso **relayer** per la convalida prima di arrivare ai miner. + +MEV Boost mantiene lo stesso funzionamento dell’asta originale di Flashbots, anche se con nuove funzionalità progettate per il passaggio di Ethereum al proof-of-stake. I ricercatori trovano ancora transazioni MEV redditizie per l'inclusione nei blocchi, ma una nuova classe di soggetti specializzati, chiamati **costruttori**, sono responsabili dell'aggregazione delle transazioni e dei pacchetti nei blocchi. Un costruttore accetta offerte in busta chiusa dai ricercatori ed esegue ottimizzazioni per trovare l'ordine più redditizio. + +Il relayer è ancora responsabile della convalida dei pacchetti di transazioni prima di trasmetterli al propositore. Tuttavia, MEV Boost introduce **escrow ** responsabili di fornire la [disponibilità di dati](/developers/docs/data-availability/) memorizzando i corpi dei blocchi inviati dai costruttori e le intestazioni dei blocchi inviati dai validatori. Qui, un validatore collegato a un relay chiede i payload di esecuzione disponibili e utilizza l'algoritmo di ordinamento di MEV Boost per selezionare l'intestazione del payload con l'offerta più alta + mance in MEV. + +#### Come fa l'API Builder a mitigare l'impatto del MEV? {#how-does-builder-api-curb-mev-impact} + +Il vantaggio principale dell'API Builder è il suo potenziale per democratizzare l'accesso alle opportunità del MEV. Il ricorso a sistemi di commit-reveal elimina le ipotesi di fiducia e riduce le barriere all’ingresso per i validatori che cercano di trarre vantaggio dai MEV. Ciò dovrebbe ridurre la pressione sugli staker autonomi per integrarsi con grandi pool di staking al fine di aumentare i profitti in MEV. + +L'implementazione generalizzata dell'API Builder incoraggerà una maggiore concorrenza tra i costruttori di blocchi, il che aumenta la resistenza alla censura. Dato che i validatori selezionano le offerte da più costruttori, un costruttore intenzionato a censurare una o più transazioni deve superare tutti gli altri costruttori senza censura per avere successo. Ciò aumenta drasticamente il costo della censura degli utenti e ne scoraggia la pratica. + +Alcuni progetti, come MEV Boost, utilizzano l'API Builder come parte di una struttura generale progettata per fornire privacy delle transazioni a determinate parti, come i trader che cercano di evitare attacchi frontrunning/sandwiching. Questo obiettivo è conseguito fornendo un canale di comunicazione privato tra gli utenti e i costruttori di blocchi. A differenza dei mempool con permessi (permissioned) descritti in precedenza, questo approccio è vantaggioso per i seguenti motivi: + +1. L'esistenza di più costruttori sul mercato rende la censura impraticabile, il che va a vantaggio degli utenti. Al contrario, l'esistenza di pool centralizzati e basati sulla fiducia concentrerebbe il potere nelle mani di pochi costruttori di blocchi e aumenterebbe la possibilità di censura. + +2. Il software API Builder è open-source e consente a chiunque di offrire servizi di costruttore di blocchi. Ciò significa che gli utenti non sono obbligati a utilizzare un particolare costruttore di blocca, migliorando la neutralità e la mancanza di permessi di Ethereum. Inoltre, i trader in cerca di MEV non contribuiranno inavvertitamente alla centralizzazione utilizzando canali di transazione privati. + +## Risorse correlate {#related-resources} + +- [Documentazione dei Flashbot](https://docs.flashbots.net/) +- [Flashbots GitHub](https://github.com/flashbots/pm) +- [MEV-Explore](https://explore.flashbots.net/) _Pannello di controllo ed esploratore live delle transazioni per transazioni MEV_ +- [mevboost.org](https://www.mevboost.org/) - _Tracker con statistiche in tempo reale per relay e costruttori di blocchi di MEV Boost_ + +## Ulteriori letture {#further-reading} + +- [What Is Miner-Extractable Value (MEV)?](https://blog.chain.link/what-is-miner-extractable-value-mev/) +- [MEV and Me](https://www.paradigm.xyz/2021/02/mev-and-me) +- [Ethereum is a Dark Forest](https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest/) +- [Escaping the Dark Forest](https://samczsun.com/escaping-the-dark-forest/) +- [Flashbots: Frontrunning the MEV Crisis](https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752) +- [@bertcmiller's MEV Threads](https://twitter.com/bertcmiller/status/1402665992422047747) +- [MEV-Boost: architettura Flashbots pronta per la Fusione](https://ethresear.ch/t/mev-boost-merge-ready-flashbots-architecture/11177) +- [Che cos'è MEV Boost?](https://www.alchemy.com/overviews/mev-boost) +- [Perché eseguire mev-boost?](https://writings.flashbots.net/writings/why-run-mevboost/) +- [The Hitchhikers Guide To Ethereum](https://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum) diff --git a/src/content/translations/it/developers/docs/networking-layer/cons_client_net_layer.png b/public/content/translations/it/developers/docs/networking-layer/cons_client_net_layer.png similarity index 100% rename from src/content/translations/it/developers/docs/networking-layer/cons_client_net_layer.png rename to public/content/translations/it/developers/docs/networking-layer/cons_client_net_layer.png diff --git a/public/content/translations/it/developers/docs/networking-layer/index.md b/public/content/translations/it/developers/docs/networking-layer/index.md new file mode 100644 index 00000000000..8569eb7a7c9 --- /dev/null +++ b/public/content/translations/it/developers/docs/networking-layer/index.md @@ -0,0 +1,155 @@ +--- +title: Livello di rete +description: Un'introduzione al livello di rete di Ethereum. +lang: it +sidebarDepth: 2 +--- + +Ethereum è una rete in peer-to-peer con migliaia di nodi che devono poter comunicare gli uni con gli altri, usando dei protocolli standardizzati. Il "livello di rete" è lo stack di protocolli che consentono a quei nodi di trovarsi reciprocamente e scambiare informazioni. Questo comprende l'attività di "gossip” di informazioni (comunicazione da uno a molti) sulla rete, oltre alle richieste di scambio e le risposte tra nodi specifici (comunicazione uno a uno). Ogni nodo deve aderire a specifiche regole di rete per essere certo di inviare e ricevere le informazioni corrette. + +Il software del client si compone di due parti (i client d'esecuzione e di consenso), ognuna con il proprio distinto stack di rete. Oltre a comunicare con altri nodi di Ethereum, i client d'esecuzione e di consenso devono comunicare tra loro. Questa pagina presenta una spiegazione introduttiva ai protocolli che consentono questa comunicazione. + +I client d'esecuzione compiono gossip sulle transazioni sulla rete tra pari del livello d'esecuzione. Questo richiede la comunicazione crittografata tra i pari autenticati. Quando un validatore è selezionato per proporre un blocco, le transazioni dal pool di transazione locale del nodo saranno passate ai client del consenso tramite una connessione RPC locale, che sarà impacchettata in blocchi della Beacon. I client di consenso eseguiranno poi il gossip dei blocchi della Beacon Chain per la propria rete p2p. Questo richiede due reti p2p separate: una connessa ai client d'esecuzione per il gossip della transazione e una connessa ai client del consenso per il gossip del blocco. + +## Prerequisiti {#prerequisites} + +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} + +I protocolli di rete del livello d'esecuzione sono divisi in due stack: + +- lo stack di scoperta: basato su UDP, consente a un nuovo nodo di trovare i peer a cui connettersi + +- lo stack DevP2P: basato su TCP, consente ai nodi di scambiarsi informazioni + +Entrambi gli stack operano in parallelo. Lo stack di scoperta alimenta la nuova rete di partecipanti alla rete e lo stack DevP2P ne consente le interazioni. + +### Scoperta {#discovery} + +La scoperta è il processo con cui si trovano altri nodi nella rete. Questo processo è avviato usando una piccola serie di nodi d'avvio (nodi i cui indirizzi sono [codificati in modo fisso (hardcoded)](https://github.com/ethereum/go-ethereum/blob/master/params/bootnodes.go) nel client, così che siano immediatamente trovabili e connettano il client ai peer). Questi nodi di avvio esistono solo per introdurre un nuovo nodo a una serie di peer, questo è il loro solo obiettivo, non partecipano alle normali attività del client, come la sincronizzazione della catena, e sono usati solo la primissima volta in cui il client è avviato. + +Il protocollo usato per le interazioni tra nodo e nodo d'avvio è una forma modificata di [Kademlia](https://medium.com/coinmonks/a-brief-overview-of-kademlia-and-its-use-in-various-decentralized-platforms-da08a7f72b8f), che usa una [tabella di hash distribuita](https://en.wikipedia.org/wiki/Distributed_hash_table) per condividere elenchi di nodi. Ogni nodo ha una versione di questa tabella, contenente le informazioni necessarie per connettersi ai propri peer più vicini. Questa “vicinanza” non è geografica: la distanza è definita dalla somiglianza dell'ID del nodo. Come funzionalità di sicurezza, ogni tabella del nodo è aggiornata regolarmente. Ad esempio, nel [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5), i nodi del protocollo di scoperta sono anche capaci di inviare “annunci” che indicano i protocolli secondari supportati dal client, consentendo ai peer di negoziare i protocolli che usano entrambi per comunicare. + +La scoperta inizia con una partita di PING-PONG. Un PING-PONG di successo "lega" il nuovo nodo a un nodo d'avvio. Il messaggio iniziale che avvisa un nodo d'avvio dell'esistenza di un nuovo nodo che sta accedendo alla rete è un `PING`. Questo `PING` include le informazioni in hash sul nuovo nodo, il nodo d'avvio e una marca temporale di scadenza. Il nodo d'avvio riceve il PING e restituisce un `PONG` contenente l'hash del `PING`. Se gli hash del `PING` e del `PONG` corrispondono, allora la connessione tra il nuovo nodo e il nodo d'avvio è avvenuta e i due sono "legati". + +Una volta legato, il nuovo nodo può inviare una richiesta `FIND-NEIGHBOURS` al nodo d'avvio. I dati restituiti dal nodo d'avvio includono un elenco di peer a cui il nuovo nodo può connettersi. Se i nodi non sono legati, la richiesta `FIND-NEIGHBOURS` non andrà a buon fine, quindi il nuovo nodo non potrà accedere alla rete. + +Una volta che il nodo riceve un elenco di vicini dal nodo d'avvio, inizia con ognuno di essi, uno scambio di PING-PONG. I PING-PONG riusciti legano il nuovo nodo ai suoi vicini, consentendo lo scambio di messaggi. + +``` +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. + +#### Perché la scoperta è basata su UDP? {#why-udp} + +UDP non supporta le funzioni di controllo degli errori, reinvio di pacchetti non giunti a destinazione o apertura e chiusura dinamica delle connessioni, al contrario si limita a mandare un flusso continuo di informazioni a un destinatario, indipendentemente dal fatto che queste siano state correttamente ricevute. Questa funzionalità minima si traduce anche in overhead minimi, che rendono molto veloce questo tipo di connessione. Per la scoperta, in cui un nodo vuole solo comunicare la propria presenza per poter poi stabilire una connessione formale con un peer, UDP è sufficiente. Per il resto dello stack di rete, invece, UDP non è adatto. Lo scambio informativo tra nodi è abbastanza complesso e necessita dunque di un protocollo più completo di funzionalità, che possa supportare il reinvio, la verifica degli errori, etc. L’overhead aggiuntivo associato a TCP vale le maggiori funzionalità. Dunque, la maggioranza dello stack P2P opera su TCP. + +### DevP2P {#devp2p} + +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 "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: + +- versione del protocollo +- ID del client +- porta +- ID del nodo +- elenco di protocolli secondari supportati + +Queste sono le informazioni necessarie affinché l'interazione vada a buon fine, poiché definiscono quali capacità sono condivise tra entrambi i nodi e configurano la comunicazione. Esiste un processo di negoziazione secondario in cui vengono confrontati gli elenchi di protocolli secondari supportati da ogni nodo, potendo utilizzare nella sessione quelli comuni ad entrambi i nodi. + +Insieme ai messaggi di saluto, il protocollo via cavo può anche inviare un messaggio "disconnect" che avvisa un peer che la connessione sarà chiusa. Il protocollo via cavo prevede anche messaggi PING e PONG, inviati periodicamente per mantenere aperta una sessione. Gli scambi dei protocolli RLPx e via cavo stabiliscono dunque le fondamenta della comunicazione tra i nodi, fornendo l'impalcatura per le informazioni utili da scambiare secondo un protocollo secondario specifico. + +### Protocolli secondari {#sub-protocols} + +#### Protocollo via cavo {#wire-protocol} + +Una volta che i pari sono connessi e che una sessione RLPx è stata avviata, il protocollo via cavo definisce come comunicano i pari. Inizialmente, il protocollo via cavo definiva tre mansioni principali: la sincronizzazione della catena, la propagazione del blocco e lo scambio di transazioni. Tuttavia, una volta che Ethereum è passato al proof-of-stake, la propagazione dei blocchi e la sincronizzazione della catena sono divenuti parte del livello di consenso. Lo scambio di transazioni è ancora di competenza dei client d'esecuzione. Lo scambio di transazioni si riferisce allo scambio di transazioni in sospeso tra nodi, così che i miner possano selezionarne alcune da inserire nel blocco successivo. Le informazioni dettagliate su queste attività sono disponibili [qui](https://github.com/ethereum/devp2p/blob/master/caps/eth.md). I client che supportano questi protocolli secondari, li espongono tramite [JSON-RPC](/developers/docs/apis/json-rpc/). + +#### les (light ethereum subprotocol) {#les} + +Si tratta di un protocollo minimale per sincronizzare i client leggeri. Tradizionalmente, questo protocollo è stato raramente usato perché i nodi completi devono servire i dati ai client leggeri senza esser incentivati. Il comportamento predefinito dei client d'esecuzione prevede di non servire i dati al client leggero tramite les. Maggiori informazioni sono disponibili nelle [specifiche](https://github.com/ethereum/devp2p/blob/master/caps/les.md) di les. + +#### Snap {#snap} + +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} + +Il [witness protocol](https://github.com/ethereum/devp2p/blob/master/caps/wit.md#ethereum-witness-protocol-wit) è un'estensione facoltativa che consente lo scambio di testimoni di stato tra peer, aiutando a sincronizzare i client in cima alla catena. + +#### Whisper {#whisper} + +Whisper era un protocollo che mirava a consegnare messaggistica sicura tra peer senza scrivere alcuna informazione nella blockchain. Faceva parte del protocollo via cavo DevP2P, ma è ora considerato obsoleto. Esistono altri [progetti correlati](https://wakunetwork.com/) con obiettivi simili. + +## Il livello di consenso {#consensus-layer} + +I client di consenso partecipano a una rete peer-to-peer distinta, con specifiche differenti. I client di consenso devono partecipare al gossip dei blocchi, in modo da poter ricevere nuovi blocchi dai peer e trasmetterli quando tocca a loro proporre dei blocchi. Analogamente al livello d'esecuzione, questo richiede innanzitutto un protocollo di scoperta, così che un nodo possa trovare dei peer e stabilire sessioni sicure per lo scambio di blocchi, attestazioni, etc. + +### Scoperta {#consensus-discovery} + +Analogamente ai client d'esecuzione, i client di consenso usano [discv5](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-discovery-domain-discv5) su UDP per trovare i peer. L'implementazione del livello di consenso di discv5 differisce da quella dei client d'esecuzione solo perché include un adattatore che connette discv5 a uno stack [libP2P](https://libp2p.io/), deprecando DevP2P. Le sessioni di RLPx del livello d'esecuzione sono deprecate in favore dell’"handshaking" protetto del canale Noise di libP2P. + +### ENR {#consensus-enr} + +L'ENR dei nodi del consenso include la chiave pubblica del nodo, l'indirizzo IP, le porte UDP e TCP e due campi specifici per il consenso: il campo di bit della subnet d'attestazione e la chiave `eth2`. Il primo rende più semplice ai nodi trovare dei peer, partecipando a reti secondarie di gossip d'attestazione specifiche. La chiave `eth2` contiene le informazioni su quale versione della biforcazione di Ethereum il nodo sta usando, garantendo che i peer si connettano all'Ethereum giusto. + +### libP2P {#libp2p} + +Lo stack libP2P supporta tutte le comunicazioni dopo la scoperta. I client possono chiamare e ascoltare su IPv4 e/o IPv6, come definito nel loro EVR. I protocolli sul livello di libP2P sono suddivisibili nei domini di gossip e di req/resp. + +### Gossip {#gossip} + +Il dominio di gossip include tutte le informazioni che devono essere diffuse rapidamente tramite la rete. Questo include i blocchi Beacon, le prove, le attestazioni, le uscite e i tagli (slashing). La trasmissione avviene tramite libP2P gossipsub v1 e si affida a vari metadati memorizzati localmente in ogni nodo, tra cui la dimensione massima dei carichi utili di gossip da ricevere e trasmettere. Le informazioni dettagliate sul dominio del gossip sono disponibili [qui](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-gossip-domain-gossipsub). + +### Richiesta-risposta {#request-response} + +Il dominio di richiesta-risposta contiene i protocolli per i client che richiedono informazioni specifiche dai propri peer. Gli esempi includono la richiesta di blocchi Beacon specifici, corrispondenti a certi hash radice o entro un intervallo di slot. Le risposte sono sempre restituite come byte codificati SSZ con compressione Snappy. + +## Perché il client di consenso preferisce SSZ a RLP? {#ssz-vs-rlp} + +SSZ sta per simple serialization (serializzazione semplice). Usa offset fissi che semplificano la decodifica di singole parti di un messaggio codificato senza dover decodificare l'intera struttura, funzione molto utile per il client di consenso, che può quindi estrarre efficientemente specifiche informazioni dai messaggi codificati. È anche progettato specificamente per integrarsi ai protocolli di Merkle, con i relativi guadagni in termini di efficienza per la Merkle-zzazione. Poiché tutti gli hash nel livello di consenso sono radici di Merkle, si ottiene un miglioramento complessivo significativo. SSZ garantisce anche rappresentazioni univoche dei valori. + +## Connettere i client d'esecuzione e di consenso {#connecting-clients} + +I client del consenso e d'esecuzione, operano in parallelo. Devono esser connessi, così che il client del consenso possa fornire istruzioni al client d'esecuzione e che il client d'esecuzione possa passare pacchetti di transazioni al client del consenso per includerli nei blocchi della Beacon. La comunicazione tra i due client è ottenibile usando una connessione RPC locale. Un'API nota come [“Engine-API”](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) definisce le istruzioni inviate tra i due client. Poiché entrambi i client risiedono dietro un'identità di rete singola, condividono un ENR (Registro del Nodo di Ethereum), contenente una chiave separata per ogni client (chiave eth1 e chiave eth2). + +Un sommario del flusso di controllo è mostrato di seguito, con indicazione tra parentesi dello stack di rete rilevante. + +### Quando il client di consenso non è un produttore di blocchi: + +- Il client di consenso riceve un blocco tramite il protocollo di gossip dei blocchi (consenso p2p) +- Il client di consenso convalida preventivamente il blocco, ovvero si assicura che provenga da un mittente valido con i metadati corretti +- Le transazioni nel blocco sono inviate al livello d'esecuzione come un payload d'esecuzione (connessione RPC locale) +- Il livello d'esecuzione esegue le transazioni e convalida lo stato nell'intestazione del blocco (ovvero verifica la corrispondenza degli hash) +- Il livello d'esecuzione ripassa i dati di convalida al livello di consenso, blocco ora considerato da convalidare (connessione RPC locale) +- Il livello di consenso aggiunge il blocco alla testa della propria blockchain e lo attesta, trasmettendo l'attestazione via rete (consenso p2p) + +### Quando il client di consenso è un produttore di blocchi: + +- Il client di consenso riceve notifica che è il prossimo produttore di blocchi (consenso p2p) +- Il livello di consenso chiama il metodo `create block` nel client d'esecuzione (RPC locale) +- Il livello d'esecuzione accede al mempool delle transazioni, popolato dal protocollo di gossip della transazione (esecuzione p2p) +- Il client d'esecuzione impacchetta le transazioni in un blocco, esegue le transazioni e genera l'hash di un blocco +- Il client del consenso prende le transazioni e l'hash del blocco dal client d'esecuzione e li aggiunge al blocco della beacon (RPC locale) +- Il client di consenso trasmette il blocco al protocollo di gossip dei blocchi (consenso p2p) +- Gli altri client ricevono il blocco proposto tramite il protocollo di gossip dei blocchi e lo convalidano come descritto sopra (consenso p2p) + +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) + +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) + +## Letture consigliate {#further-reading} + +[DevP2P](https://github.com/ethereum/devp2p) [LibP2p](https://github.com/libp2p/specs) [Specifiche di rete del livello di consenso](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#enr-structure) [da kademlia a discv5](https://vac.dev/kademlia-to-discv5) [documentazione di kademlia](https://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf) [intro al p2p di Ethereum](https://p2p.paris/en/talks/intro-ethereum-networking/) [rapporto eth1/eth2](http://ethresear.ch/t/eth1-eth2-client-relationship/7248) [fusione e video dei dettagli del client di eth2](https://www.youtube.com/watch?v=zNIrIninMgg) diff --git a/src/content/translations/it/developers/docs/networking-layer/network-addresses/index.md b/public/content/translations/it/developers/docs/networking-layer/network-addresses/index.md similarity index 100% rename from src/content/translations/it/developers/docs/networking-layer/network-addresses/index.md rename to public/content/translations/it/developers/docs/networking-layer/network-addresses/index.md diff --git a/src/content/translations/it/developers/docs/networking-layer/portal-network/index.md b/public/content/translations/it/developers/docs/networking-layer/portal-network/index.md similarity index 100% rename from src/content/translations/it/developers/docs/networking-layer/portal-network/index.md rename to public/content/translations/it/developers/docs/networking-layer/portal-network/index.md diff --git a/src/content/translations/it/developers/docs/networks/index.md b/public/content/translations/it/developers/docs/networks/index.md similarity index 100% rename from src/content/translations/it/developers/docs/networks/index.md rename to public/content/translations/it/developers/docs/networks/index.md diff --git a/src/content/translations/it/developers/docs/nodes-and-clients/archive-nodes/index.md b/public/content/translations/it/developers/docs/nodes-and-clients/archive-nodes/index.md similarity index 100% rename from src/content/translations/it/developers/docs/nodes-and-clients/archive-nodes/index.md rename to public/content/translations/it/developers/docs/nodes-and-clients/archive-nodes/index.md diff --git a/src/content/translations/it/developers/docs/nodes-and-clients/bootnodes/index.md b/public/content/translations/it/developers/docs/nodes-and-clients/bootnodes/index.md similarity index 100% rename from src/content/translations/it/developers/docs/nodes-and-clients/bootnodes/index.md rename to public/content/translations/it/developers/docs/nodes-and-clients/bootnodes/index.md diff --git a/public/content/translations/it/developers/docs/nodes-and-clients/client-diversity/index.md b/public/content/translations/it/developers/docs/nodes-and-clients/client-diversity/index.md new file mode 100644 index 00000000000..306010bea7d --- /dev/null +++ b/public/content/translations/it/developers/docs/nodes-and-clients/client-diversity/index.md @@ -0,0 +1,109 @@ +--- +title: Diversità dei client +description: Una spiegazione generica dell'importanza della diversità di client di Ethereum. +lang: it +sidebarDepth: 2 +--- + +Il comportamento di un nodo di Ethereum è controllato dal software del client che esegue. Esistono diversi client di Ethereum di livello di produzione, ognuno sviluppato e mantenuto in diversi linguaggi da team distinti. I client sono costruiti su specifiche comuni che assicurano che i client comunichino senza problemi tra loro e abbiano le stesse funzionalità, fornendo un'esperienza utente equivalente. Tuttavia, al momento, la distribuzione dei client tra i nodi non è abbastanza equilibrata da realizzare in tutta la sua potenzialità questa fortificazione della rete. Idealmente, gli utenti dovrebbero dividersi approssimativamente in modo equo tra i vari client, per portare quanta più diversità dei client possibile alla rete. + +## Prerequisiti {#prerequisites} + +Se ancora non sai cosa sono i nodi e i client, dai un'occhiata a [nodi e client](/developers/docs/nodes-and-clients/). I livelli di [esecuzione](/glossary/#execution-layer) e [consenso](/glossary/#consensus-layer) sono definiti nel glossario. + +## Perché esistono diversi client? {#why-multiple-clients} + +Esistono diversi client sviluppati e mantenuti indipendentemente perché la diversità dei client rende la rete più resistente ad attacchi e bug. Diversi client sono una forza unica per Ethereum, mentre altre blockchain si affidano all'infallibilità di un singolo client. Tuttavia, non basta avere semplicemente diversi client disponibili, devono essere adottati dalla community e i nodi attivi totali devono essere distribuiti in modo relativamente uniforme tra loro. + +## Perché la diversità dei client è importante? {#client-diversity-importance} + +Avere molti client sviluppati e mantenuti indipendentemente è vitale per l'integrità di una rete decentralizzata. Vediamo perché. + +### Bug {#bugs} + +Un bug in un singolo client rappresenta un pericolo minore per la rete se rappresenta una minoranza di nodi di Ethereum. Con una distribuzione approssimativamente uniforme dei nodi tra molti client, la probabilità che gran parte dei client soffra di un problema comune è minima e, di conseguenza, la rete è più robusta. + +### Resistenza agli attacchi {#resilience} + +La diversità dei client offre anche resistenza agli attacchi. Ad esempio, un attacco che [inganna un client specifico](https://twitter.com/vdWijden/status/1437712249926393858) su un ramo particolare della catena, difficilmente riuscirà nel suo intento perché non è probabile che anche gli altri client siano vulnerabili allo stesso modo, e la catena canonica non viene quindi corrotta. Una bassa diversità dei client aumenta i rischi associati a un attacco sul client dominante. È stato dimostrato che la diversità dei client è una difesa importante contro gli attacchi malevoli sulla rete, ad esempio, l'attacco di denial of service di Shanghai nel 2016 è stato possibile perché gli utenti malevoli sono riusciti a ingannare il client dominante (Geth) facendogli eseguire un'operazione lenta di I/O su disco decine di migliaia di volte per blocco. Poiché online erano presenti anche altri client alternativi che non avevano la stessa vulnerabilità, Ethereum è riuscita a resistere all'attacco e a continuare a funzionare mentre veniva risolta la vulnerabilità di Geth. + +### Finalità del proof-of-stake {#finality} + +Un bug in un client di consenso con oltre il 33% dei nodi di Ethereum potrebbe impedire la finalizzazione del livello di consenso, il che significa che gli utenti non possono essere sicuri che le transazioni non vengano annullate o modificate ad un certo punto. Questo sarebbe molto problematico per molte delle app basate su Ethereum, in particolare, le DeFi. + + Ancora peggio, un bug critico in un client con una maggioranza di due terzi potrebbe causare la una divisione e finalizzazione errata della catena, bloccando un gran numero di validatori su una catena non valida. Se vogliono rientrare nella catena corretta, quei validatori devo sottoporsi a tagli (slashing) o a un prelievo volontario, costoso e lento, e alla riattivazione. L'ammontare del taglio (slashing) aumenta col numero di nodi colpevoli, potendo interessare al massimo una maggioranza di due terzi (32 ETH). + +Sebbene questi siano scenari improbabili, l'ecosistema di Ethereum può mitigarne il rischio equilibrando la distribuzione dei client tra i nodi attivi. Idealmente, nessun client del consenso dovrebbe mai raggiungere una quota del 33% dei nodi totali. + +### Responsabilità condivisa {#responsibility} + +Esiste anche un costo umano associato alla presenza di client di maggioranza. Essa comporta un eccesso di lavoro e responsabilità su un team di sviluppo di piccole dimensioni. Minore è la diversità dei client, maggiore l'onere di responsabilità per gli sviluppatori che mantengono il client di maggioranza. Distribuire la responsabilità tra diversi team è un bene sia per la salute della rete di nodi di Ethereum che per la sua rete di persone. + +## Attuale diversità dei client {#current-client-diversity} + +![Grafico a torta che mostra la diversità dei client](./client-diversity.png) _Dati del diagramma provenienti da [ethernodes.org](https://ethernodes.org) e [clientdiversity.org](https://clientdiversity.org/)_ + +I due grafici a torta di cui sopra mostrano le istantanee dell'attuale diversità dei client per i livelli d'esecuzione e del consenso (al momento della scrittura di questo testo, gennaio 2022). Il livello d'esecuzione è prevalentemente dominato da[Geth](https://geth.ethereum.org/), con distacco sul secondo, [Open Ethereum](https://openethereum.github.io/), [Erigon](https://github.com/ledgerwatch/erigon) in terza posizione e [Nethermind](https://nethermind.io/) quarto, con altri client che rappresentano meno dell'1% della rete. Il client più diffuso sul livello del consenso, [Prysm](https://prysmaticlabs.com/#projects), non è tanto dominante quanto Geth, ma rappresenta comunque oltre il 60% della rete. [Lighthouse](https://lighthouse.sigmaprime.io/) e [Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) rappresentano rispettivamente circa il 20% e circa il 14%, e gli altri client sono poco usati. + +I dati del livello di esecuzione sono stati ottenuti da [Ethernodes](https://ethernodes.org) il 23/01/2022. I dati per i client di consenso sono stati ottenuti da [Michael Sproul](https://github.com/sigp/blockprint). I dati del client di consenso sono più difficili da ottenere, perché i client del livello di consenso non sempre hanno tracce univoche che possono essere utilizzate per individuarli. I dati sono stati generati usando un algoritmo di classificazione che talvolta confonde alcuni dei client di minoranza (vedi [qui](https://twitter.com/sproulM_/status/1440512518242197516) per ulteriori dettagli). Nel diagramma precedente, queste classificazioni ambigue sono trattate classificate come alternative multiple (es. Nimbus/Teku). È comunque chiaro che la maggioranza della rete sta eseguendo Prysm. I dati sono un'istantanea su una serie fissa di blocchi (in questo caso i blocchi della Beacon Chain dallo slot 2048001 al 2164916) e in alcuni momenti la dominanza di Prysm è stata anche maggiore, superando il 68%. Nonostante siano solo istantanee, i valori nel diagramma forniscono una buona indicazione generale dello stato corrente della diversità dei client. + +I dati di diversità dei client aggiornati per il livello del consenso sono ora disponibili su [clientdiversity.org](https://clientdiversity.org/). + +## Livello di esecuzione {#execution-layer} + +Finora, la conversazione sulla diversità dei client si è concentrata sul livello del consenso. Tuttavia, il client d'esecuzione [Geth](https://geth.ethereum.org) rappresenta correntemente circa l'85% di tutti i nodi. Questa percentuale è problematica per gli stessi motivi dei client di consenso. Ad esempio, un bug su Geth che influenzi la gestione delle transazioni o la costruzione dei carichi utili d'esecuzione potrebbe condurre alla finalizzazione da parte dei client di consenso di transazioni problematiche o contenenti bug. Ethereum sarebbe più quindi più robusto con una distribuzione più equa dei client d'esecuzione, idealmente senza alcun client che rappresenti oltre il 33% della rete. + +## Usare un client di minoranza {#use-minority-client} + +Per "indirizzare" la diversità dei client non basta che i singoli utenti scelgano i client di minoranza, richiede che anche i pool di mining/validatori e le istituzioni come le dApp principali e gli scambi cambino client. Tuttavia, tutti gli utenti possono fare la propria parte nel correggere l'attuale disequilibrio e normalizzare l'uso di tutti i software di Ethereum disponibili. Dopo La Fusione, tutti gli operatori di nodi dovranno eseguire un client d'esecuzione e un client di consenso. Scegliere le combinazioni dei client suggerite di seguito aiuterà ad aumentare la diversità dei client. + +### Client di esecuzione {#execution-clients} + +[Besu](https://www.hyperledger.org/use/besu) + +[Nethermind](https://downloads.nethermind.io/) + +[Erigon](https://github.com/ledgerwatch/erigon) + +[Go-Ethereum](https://geth.ethereum.org/) + +### Client di consenso {#consensus-clients} + +[Nimbus](https://nimbus.team/) + +[Lighthouse](https://github.com/sigp/lighthouse) + +[Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) + +[Lodestar](https://github.com/ChainSafe/lodestar) + +[Prysm](https://docs.prylabs.network/docs/getting-started) + +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/). + +## Pannelli di controllo sulla diversità dei client {#client-diversity-dashboards} + +Diversi pannelli di controllo forniscono statistiche sulla diversità dei client in tempo reale per il livello d'esecuzione e di consenso. + +**Livello di consenso:** + +- [Rated.network](https://www.rated.network/) +- [clientdiversity.org](https://clientdiversity.org/) **Livello di esecuzione:** + +- [execution-diversity.info](https://execution-diversity.info/) +- [Ethernodes](https://ethernodes.org/) + +## Letture consigliate {#further-reading} + +- [Diversità dei client sul livello di consenso di Ethereum](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) +- [Fusione di Ethereum: esegui il client di maggioranza a tuo rischio!](https://dankradfeist.de/ethereum/2022/03/24/run-the-majority-client-at-your-own-peril.html) – _Dankrad Fiest, 24 marzo 2022_ +- [Importanza della diversità dei client](https://our.status.im/the-importance-of-client-diversity/) +- [Elenco di servizi di nodi Ethereum](https://ethereumnodes.com/) +- [I "Cinque Perché" del problema della diversità dei client](https://notes.ethereum.org/@afhGjrKfTKmksTOtqhB9RQ/BJGj7uh08) +- [Diversità di Ethereum e come risolverla (YouTube)](https://www.youtube.com/watch?v=1hZgCaiqwfU) +- [clientdiversity.org](https://clientdiversity.org/) + +## Argomenti correlati {#related-topics} + +- [Eseguire un nodo di Ethereum](/run-a-node/) +- [Nodi e client](/developers/docs/nodes-and-clients/) diff --git a/src/content/translations/it/developers/docs/nodes-and-clients/eth1eth2client.png b/public/content/translations/it/developers/docs/nodes-and-clients/eth1eth2client.png similarity index 100% rename from src/content/translations/it/developers/docs/nodes-and-clients/eth1eth2client.png rename to public/content/translations/it/developers/docs/nodes-and-clients/eth1eth2client.png diff --git a/src/content/translations/it/developers/docs/nodes-and-clients/index.md b/public/content/translations/it/developers/docs/nodes-and-clients/index.md similarity index 100% rename from src/content/translations/it/developers/docs/nodes-and-clients/index.md rename to public/content/translations/it/developers/docs/nodes-and-clients/index.md diff --git a/src/content/translations/it/developers/docs/nodes-and-clients/light-clients/index.md b/public/content/translations/it/developers/docs/nodes-and-clients/light-clients/index.md similarity index 100% rename from src/content/translations/it/developers/docs/nodes-and-clients/light-clients/index.md rename to public/content/translations/it/developers/docs/nodes-and-clients/light-clients/index.md diff --git a/src/content/translations/it/developers/docs/nodes-and-clients/node-architecture/index.md b/public/content/translations/it/developers/docs/nodes-and-clients/node-architecture/index.md similarity index 100% rename from src/content/translations/it/developers/docs/nodes-and-clients/node-architecture/index.md rename to public/content/translations/it/developers/docs/nodes-and-clients/node-architecture/index.md diff --git a/src/content/translations/it/developers/docs/nodes-and-clients/node-architecture/node-architecture-text-background.png b/public/content/translations/it/developers/docs/nodes-and-clients/node-architecture/node-architecture-text-background.png similarity index 100% rename from src/content/translations/it/developers/docs/nodes-and-clients/node-architecture/node-architecture-text-background.png rename to public/content/translations/it/developers/docs/nodes-and-clients/node-architecture/node-architecture-text-background.png diff --git a/src/content/translations/it/developers/docs/nodes-and-clients/nodes-as-a-service/index.md b/public/content/translations/it/developers/docs/nodes-and-clients/nodes-as-a-service/index.md similarity index 100% rename from src/content/translations/it/developers/docs/nodes-and-clients/nodes-as-a-service/index.md rename to public/content/translations/it/developers/docs/nodes-and-clients/nodes-as-a-service/index.md diff --git a/src/content/translations/it/developers/docs/nodes-and-clients/nodes.png b/public/content/translations/it/developers/docs/nodes-and-clients/nodes.png similarity index 100% rename from src/content/translations/it/developers/docs/nodes-and-clients/nodes.png rename to public/content/translations/it/developers/docs/nodes-and-clients/nodes.png diff --git a/src/content/translations/it/developers/docs/nodes-and-clients/run-a-node/diagram.png b/public/content/translations/it/developers/docs/nodes-and-clients/run-a-node/diagram.png similarity index 100% rename from src/content/translations/it/developers/docs/nodes-and-clients/run-a-node/diagram.png rename to public/content/translations/it/developers/docs/nodes-and-clients/run-a-node/diagram.png diff --git a/src/content/translations/it/developers/docs/nodes-and-clients/run-a-node/index.md b/public/content/translations/it/developers/docs/nodes-and-clients/run-a-node/index.md similarity index 100% rename from src/content/translations/it/developers/docs/nodes-and-clients/run-a-node/index.md rename to public/content/translations/it/developers/docs/nodes-and-clients/run-a-node/index.md diff --git a/src/content/translations/it/developers/docs/oracles/index.md b/public/content/translations/it/developers/docs/oracles/index.md similarity index 100% rename from src/content/translations/it/developers/docs/oracles/index.md rename to public/content/translations/it/developers/docs/oracles/index.md diff --git a/src/content/translations/it/developers/docs/programming-languages/dart/index.md b/public/content/translations/it/developers/docs/programming-languages/dart/index.md similarity index 100% rename from src/content/translations/it/developers/docs/programming-languages/dart/index.md rename to public/content/translations/it/developers/docs/programming-languages/dart/index.md diff --git a/src/content/translations/it/developers/docs/programming-languages/delphi/index.md b/public/content/translations/it/developers/docs/programming-languages/delphi/index.md similarity index 100% rename from src/content/translations/it/developers/docs/programming-languages/delphi/index.md rename to public/content/translations/it/developers/docs/programming-languages/delphi/index.md diff --git a/src/content/translations/it/developers/docs/programming-languages/dot-net/index.md b/public/content/translations/it/developers/docs/programming-languages/dot-net/index.md similarity index 100% rename from src/content/translations/it/developers/docs/programming-languages/dot-net/index.md rename to public/content/translations/it/developers/docs/programming-languages/dot-net/index.md diff --git a/src/content/translations/it/developers/docs/programming-languages/golang/index.md b/public/content/translations/it/developers/docs/programming-languages/golang/index.md similarity index 100% rename from src/content/translations/it/developers/docs/programming-languages/golang/index.md rename to public/content/translations/it/developers/docs/programming-languages/golang/index.md diff --git a/src/content/translations/it/developers/docs/programming-languages/index.md b/public/content/translations/it/developers/docs/programming-languages/index.md similarity index 100% rename from src/content/translations/it/developers/docs/programming-languages/index.md rename to public/content/translations/it/developers/docs/programming-languages/index.md diff --git a/src/content/translations/it/developers/docs/programming-languages/java/index.md b/public/content/translations/it/developers/docs/programming-languages/java/index.md similarity index 100% rename from src/content/translations/it/developers/docs/programming-languages/java/index.md rename to public/content/translations/it/developers/docs/programming-languages/java/index.md diff --git a/src/content/translations/it/developers/docs/programming-languages/javascript/index.md b/public/content/translations/it/developers/docs/programming-languages/javascript/index.md similarity index 100% rename from src/content/translations/it/developers/docs/programming-languages/javascript/index.md rename to public/content/translations/it/developers/docs/programming-languages/javascript/index.md diff --git a/src/content/translations/it/developers/docs/programming-languages/python/index.md b/public/content/translations/it/developers/docs/programming-languages/python/index.md similarity index 100% rename from src/content/translations/it/developers/docs/programming-languages/python/index.md rename to public/content/translations/it/developers/docs/programming-languages/python/index.md diff --git a/src/content/translations/it/developers/docs/programming-languages/ruby/index.md b/public/content/translations/it/developers/docs/programming-languages/ruby/index.md similarity index 100% rename from src/content/translations/it/developers/docs/programming-languages/ruby/index.md rename to public/content/translations/it/developers/docs/programming-languages/ruby/index.md diff --git a/src/content/translations/it/developers/docs/programming-languages/rust/index.md b/public/content/translations/it/developers/docs/programming-languages/rust/index.md similarity index 100% rename from src/content/translations/it/developers/docs/programming-languages/rust/index.md rename to public/content/translations/it/developers/docs/programming-languages/rust/index.md diff --git a/src/content/translations/it/developers/docs/scaling/index.md b/public/content/translations/it/developers/docs/scaling/index.md similarity index 100% rename from src/content/translations/it/developers/docs/scaling/index.md rename to public/content/translations/it/developers/docs/scaling/index.md diff --git a/src/content/translations/it/developers/docs/scaling/optimistic-rollups/index.md b/public/content/translations/it/developers/docs/scaling/optimistic-rollups/index.md similarity index 100% rename from src/content/translations/it/developers/docs/scaling/optimistic-rollups/index.md rename to public/content/translations/it/developers/docs/scaling/optimistic-rollups/index.md diff --git a/src/content/translations/it/developers/docs/scaling/plasma/index.md b/public/content/translations/it/developers/docs/scaling/plasma/index.md similarity index 100% rename from src/content/translations/it/developers/docs/scaling/plasma/index.md rename to public/content/translations/it/developers/docs/scaling/plasma/index.md diff --git a/src/content/translations/it/developers/docs/scaling/sidechains/index.md b/public/content/translations/it/developers/docs/scaling/sidechains/index.md similarity index 100% rename from src/content/translations/it/developers/docs/scaling/sidechains/index.md rename to public/content/translations/it/developers/docs/scaling/sidechains/index.md diff --git a/src/content/translations/it/developers/docs/scaling/state-channels/index.md b/public/content/translations/it/developers/docs/scaling/state-channels/index.md similarity index 100% rename from src/content/translations/it/developers/docs/scaling/state-channels/index.md rename to public/content/translations/it/developers/docs/scaling/state-channels/index.md diff --git a/src/content/translations/it/developers/docs/scaling/validium/index.md b/public/content/translations/it/developers/docs/scaling/validium/index.md similarity index 100% rename from src/content/translations/it/developers/docs/scaling/validium/index.md rename to public/content/translations/it/developers/docs/scaling/validium/index.md diff --git a/src/content/translations/it/developers/docs/scaling/zk-rollups/index.md b/public/content/translations/it/developers/docs/scaling/zk-rollups/index.md similarity index 100% rename from src/content/translations/it/developers/docs/scaling/zk-rollups/index.md rename to public/content/translations/it/developers/docs/scaling/zk-rollups/index.md diff --git a/src/content/translations/it/developers/docs/security/index.md b/public/content/translations/it/developers/docs/security/index.md similarity index 100% rename from src/content/translations/it/developers/docs/security/index.md rename to public/content/translations/it/developers/docs/security/index.md diff --git a/public/content/translations/it/developers/docs/smart-contracts/anatomy/index.md b/public/content/translations/it/developers/docs/smart-contracts/anatomy/index.md new file mode 100644 index 00000000000..1128e728733 --- /dev/null +++ b/public/content/translations/it/developers/docs/smart-contracts/anatomy/index.md @@ -0,0 +1,658 @@ +--- +title: Anatomia dei contratti intelligenti +description: "Uno sguardo approfondito all'anatomia di un contratto intelligente: le funzioni, i dati e le variabili." +lang: it +--- + +Un contratto intelligente è un programma eseguito a un indirizzo su Ethereum. È composto di dati e funzioni che entrano in esecuzione appena si riceve una transazione. Ecco una panoramica di cosa compone un contratto intelligente. + +## Prerequisiti {#prerequisites} + +Prima, assicurati di aver letto a riguardo dei [contratti intelligenti](/developers/docs/smart-contracts/). Questa pagina presuppone che si conoscano i linguaggi di programmazione come JavaScript o Python. + +## Dati {#data} + +Tutti i dati del contratto devono essere assegnati a una posizione: `storage` oppure ` memory`. Modificare l'archiviazione in un contratto intelligente è dispendioso, devi quindi considerare dove dovrebbero risiedere i tuoi dati. + +### Storage {#storage} + +I dati persistenti sono detti storage (o spazio di archiviazione) e sono rappresentati da variabili di stato. Questi valori sono memorizzati permanentemente nella blockchain. È necessario dichiarare il tipo così che il contratto possa tenere traccia di quanto storage è necessario sulla blockchain quando viene compilato. + +```solidity +// Esempio in Solidity +contract SimpleStorage { + uint storedData; // Variabile di stato + // ... +} +``` + +```python +# Esempio in Vyper +storedData: int128 +``` + +Se hai già programmato con linguaggi orientati agli oggetti, è probabile che tu abbia famigliarità con la maggior parte dei tipi, ma `address` potrebbe non essere noto se non hai mai sviluppato per Ethereum. + +Un tipo `address` può contenere un indirizzo Ethereum che equivale a 20 byte o 160 bit. Restituisce una notazione esadecimale preceduta da 0x. + +Altri tipi includono: + +- booleano +- numero intero +- numeri a virgola fissa +- array di byte a dimensione fissa +- array di byte di dimensioni dinamiche +- letterali interi e razionali +- stringhe +- letterali esadecimali +- enumerazioni + +Per ulteriori spiegazioni, consulta la documentazione: + +- [Vedi Vyper types](https://vyper.readthedocs.io/en/v0.1.0-beta.6/types.html#value-types) +- [Vedi Solidity types](https://solidity.readthedocs.io/en/latest/types.html#value-types) + +### Memory {#memory} + +I valori che vengono memorizzati solo per la durata di esecuzione di una funzione di contratto sono detti variabili di memoria. Dal momento che non sono memorizzati in modo permanente sulla blockchain, sono molto più economici da usare. + +Scopri di più su come l'EVM memorizza i dati (Archiviazione, Memoria e lo Stack), nella [documentazione di Solidity](https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html?highlight=memory#storage-memory-and-the-stack). + +### Variabili d'ambiente {#environment-variables} + +Oltre alle variabili che vengono definite nel contratto, sono presenti alcune variabili globali speciali. Vengono utilizzate principalmente per fornire informazioni sulla blockchain o sulla transazione corrente. + +Esempi: + +| **Proprietà** | **Variabile di stato** | **Descrizione** | +| ----------------- | ---------------------- | ------------------------------------------ | +| `block.timestamp` | uint256 | Data/ora dell'epoca del blocco corrente | +| `msg.sender` | address | Mittente del messaggio (chiamata corrente) | + +## Funzioni {#functions} + +In termini estremamente semplici, le funzioni possono ottenere informazioni o impostarle in risposta alle transazioni in arrivo. + +Ci sono due tipi di chiamata di funzione: + +- `internal` – non creano una chiamata all'EVM + - Le funzioni interne e le variabili di stato sono accessibili solo internamente (ovvero dall'interno del contratto corrente o dei contratti derivanti da esso). +- `external` – creano una chiamata all'EVM + - Le funzioni esterne fanno parte dell'interfaccia del contratto, quindi possono essere chiamate da altri contratti e tramite transazioni. Una funzione esterna `f` non può essere chiamata internamente (quindi `f()` non funziona, ma `this.f()` funziona). + +Possono anche essere `public` o `private` + +- Le funzioni `public` possono essere chiamate direttamente dall'interno del contratto o dall'esterno tramite messaggi +- Le funzioni `private` sono visibili solo per il contratto in cui sono definite e non da contratti derivati + +Sia le funzioni che le variabili di stato possono essere rese pubbliche o private + +Questa è una funzione per aggiornare una variabile di stato su un contratto: + +```solidity +// Esempio in Solidity +function update_name(string value) public { + dapp_name = value; +} +``` + +- Il parametro `value` di tipo `string` viene passato alla funzione: `update_name` +- È dichiarato `public` e quindi chiunque può accedervi +- Non è dichiarato `view`, quindi può modificare lo stato del contratto + +### Funzioni view {#view-functions} + +Queste funzioni promettono di non modificare lo stato dei dati del contratto. Tra gli esempi più comuni vi sono le funzioni "getter": puoi usarle ad esempio per ricevere un saldo dell'utente. + +```solidity +// Esempio in Solidity +function balanceOf(address _owner) public view returns (uint256 _balance) { + return ownerPizzaCount[_owner]; +} +``` + +```python +dappName: public(string) + +@view +@public +def readName() -> string: + return dappName +``` + +Ecco cosa è considerato modifica dello stato: + +1. Scrittura su variabili di stato. +2. [Emissione di eventi](https://solidity.readthedocs.io/en/v0.7.0/contracts.html#events). +3. [Creazione di altri contratti](https://solidity.readthedocs.io/en/v0.7.0/control-structures.html#creating-contracts). +4. Uso di `selfdestruct`. +5. Invio di ether tramite chiamate. +6. Chiamata di qualsiasi funzione non contrassegnata con `view` o `pure`. +7. Utilizzo di chiamate di basso livello. +8. Utilizzo di assembly inline contenente determinati opcode. + +### Funzioni constructor {#constructor-functions} + +Quando il contratto viene distribuito per la prima volta, le funzioni `constructor` sono eseguite solo una volta. Come accade per `constructor` in molti linguaggi di programmazione basati su classi, queste funzioni spesso inizializzano le variabili di stato ai valori specificati. + +```solidity +// Esempi in Solidity +// Inizializza i dati del contratto, impostando `owner` +// sull'indirizzo del creatore del contratto. +constructor() public { + // Tutti gli Smart Contract si basano su transazioni esterne per attivare le proprie funzioni. + // `msg` è una variabile globale che include dati sulla transazione specificata, + // come indirizzo del mittente e valore degli ETH inclusi nella transazione. + // Per saperne di più: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties + owner = msg.sender; +} +``` + +```python +# Esempio in Vyper + +@external +def __init__(_beneficiary: address, _bidding_time: uint256): + self.beneficiary = _beneficiary + self.auctionStart = block.timestamp + self.auctionEnd = self.auctionStart + _bidding_time +``` + +### Funzioni integrate {#built-in-functions} + +Oltre alle variabili che vengono definite nel contratto, sono presenti alcune funzioni speciali integrate. L'esempio più evidente è: + +- `address.send()` – Solidity +- `send(address)` – Vyper + +Queste, consentono ai contratti di inviare ETH agli altri conti. + +## Scrivere funzioni {#writing-functions} + +Una funzione ha bisogno di: + +- variabile e tipo di parametro (se accetta parametri) +- dichiarazione interna/esterna +- dichiarazione pure/view/payable +- tipo di valore restituito (se restituisce un valore) + +```solidity +pragma solidity >=0.4.0 <=0.6.0; + +contract ExampleDapp { + string dapp_name; // state variable + + // Called when the contract is deployed and initializes the value + constructor() public { + dapp_name = "My Example dapp"; + } + + // Get Function + function read_name() public view returns(string) { + return dapp_name; + } + + // Set Function + function update_name(string value) public { + dapp_name = value; + } +} +``` + +Un contratto completo potrebbe avere questa forma. Qui la funzione `constructor` fornisce un valore iniziale per la variabile `dapp_name`. + +## Eventi e log {#events-and-logs} + +Gli eventi ti consentono di comunicare con il tuo contratto intelligente dal tuo frontend o da altre applicazioni che prevedono un'iscrizione. Quando una transazione è minata, i contratti intelligenti possono emettere eventi e scrivere registri alla blockchain, che il frontend può poi elaborare. + +## Esempi commentati {#annotated-examples} + +Questi sono alcuni esempi scritti in Solidity. Se vuoi sperimentare con il codice, puoi interagire con questi esempi in [Remix](http://remix.ethereum.org). + +### Hello world {#hello-world} + +```solidity +// Specifica la versione di Solidity, utilizzando il controllo delle versioni semantico. +// Per saperne di più: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma +pragma solidity ^0.5.10; + +// Definisce un contratto chiamato `HelloWorld`. +// Un contratto è una raccolta di funzioni e dati (il suo stato). +// Una volta distribuito, un contratto risiede in un indirizzo specifico della blockchain Ethereum. +// Per saperne di più: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html +contract HelloWorld { + + // Dichiara una variabile di stato `message` di tipo `string`. + // Le variabili di stato sono variabili con valori memorizzati in modo permanente nello spazio di archiviazione (storage) del contratto. + // La parola chiave `public` rende le variabili accessibili dall'esterno di un contratto + // e crea una funzione che altri contratti o client possono chiamare per accedere al valore. + string public message; + + // Analogamente a molti linguaggi di programmazione basati su classi, un costruttore è + // una funzione speciale che viene eseguita solo al momento della creazione del contratto. + // I costruttori sono utilizzati per inizializzare i dati del contratto. + // Maggiori informazioni: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constructors + constructor(string memory initMessage) public { + // Accetta un argomento di tipo string `initMessage` e imposta il valore + // nella variabile di archiviazione `message` del contratto). + message = initMessage; + } + + // Funzione pubblica che accetta un argomento string + // e aggiorna la variabile di archiviazione `message`. + function update(string memory newMessage) public { + message = newMessage; + } +} +``` + +### Token {#token} + +```solidity +pragma solidity ^0.5.10; + +contract Token { + // Un 'address' è paragonabile a un indirizzo email. Viene usato per identificare un account su Ethereum. + // Gli indirizzi possono rappresentare uno Smart Contract o un account esterno (utente). + // Per saperne di più: https://solidity.readthedocs.io/en/v0.5.10/types.html#address + address public owner; + + // Un `mapping` è essenzialmente una struttura dati di tipo tabella hash. + // Questo `mapping` assegna un numero intero senza segno (il saldo del token) a un indirizzo (il proprietario del token). + // Per saperne di più: https://solidity.readthedocs.io/en/v0.5.10/types.html#mapping-types + mapping (address => uint) public balances; + + // Gli eventi consentono di registrare le attività sulla blockchain. + // I client Ethereum possono attendere gli eventi per reagire alle modifiche di stato del contratto. + // Ulteriori informazioni: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#events + event Transfer(address from, address to, uint amount); + + // Inizializza i dati del contratto, impostando `owner` + // sull'indirizzo del creatore del contratto. + constructor() public { + // Tutti gli Smart Contract si basano su transazioni esterne per attivare le proprie funzioni. + // `msg` è una variabile globale che include dati relativi alla transazione specificata, + // come l'indirizzo del mittente e il valore in ETH incluso nella transazione. + // Per saperne di più: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties + owner = msg.sender; + } + + // Crea una quantità di nuovi token e li invia a un indirizzo. + function mint(address receiver, uint amount) public { + // `require` è una struttura di controllo utilizzata per implementare determinate condizioni. + // Se un'istruzione `require` restituisce `false`, viene attivata un'eccezione, + // che ripristina tutte le modifiche apportate allo stato durante la chiamata corrente. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions + + // Only the contract owner can call this function + require(msg.sender == owner, "You are not the owner."); + + // Enforces a maximum amount of tokens + require(amount < 1e60, "Maximum issuance exceeded"); + + // Increases the balance of `receiver` by `amount` + balances[receiver] += amount; + } + + // Sends an amount of existing tokens from any caller to an address. + function transfer(address receiver, uint amount) public { + // Il mittente deve avere abbastanza token da inviare + require(amount <= balances[msg.sender], "Insufficient balance."); + + // Modifica i saldi di token dei due indirizzi + balances[msg.sender] -= amount; + balances[receiver] += amount; + + // Emette l'evento definito in precedenza + emit Transfer(msg.sender, receiver, amount); + } +} +``` + +### Risorsa digitale univoca {#unique-digital-asset} + +```solidity +pragma solidity ^0.5.10; + +// Importa simboli da altri file nel contratto corrente. +// In questo caso, una serie di contratti di supporto da OpenZeppelin. +// Per saperne di più: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#importing-other-source-files + +import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; +import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; +import "../node_modules/@openzeppelin/contracts/introspection/ERC165.sol"; +import "../node_modules/@openzeppelin/contracts/math/SafeMath.sol"; + +// La parola chiave `is` viene utilizzata per ereditare funzioni e parole chiave da contratti esterni. +// In questo caso, `CryptoPizza` eredita dai contratti `IERC721` e `ERC165`. +// Per saperne di più: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#inheritance +contract CryptoPizza is IERC721, ERC165 { + // Utilizza la libreria SafeMath di OpenZeppelin per eseguire operazioni aritmetiche in modo sicuro. + // Ulteriori informazioni: https://docs.openzeppelin.com/contracts/2. /api/math#SafeMath + using SafeMath for uint256; + + // Le variabili di stato costanti in Solidity sono simili ad altri linguaggi + // ma devono essere assegnate da un'espressione che è costante al momento della compilazione. + // Scopri di più: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constant-state-variables + uint256 constant dnaDigits = 10; + uint256 constant dnaModulus = 10 ** dnaDigits; + bytes4 private constant _ERC721_RECEIVED = 0x150b7a02; + + // I tipi di struttura ti fanno definire il tuo tipo + // Scopri di più: https://solidity.readthedocs.io/en/v0.5.10/types.html#structs + struct Pizza { + string name; + uint256 dna; + } + + // Crea un insieme vuoto di strutture di Pizza + Pizza[] public pizzas; + + // Mappatura dall'ID della pizza all'indirizzo del suo proprietario + mapping(uint256 => address) public pizzaToOwner; + + // Mappatura dall'indirizzo del proprietario al numero di token posseduti + mapping(address => uint256) public ownerPizzaCount; + + // Mappatura dall'ID del token all'indirizzo approvato + mapping(uint256 => address) pizzaApprovals; + + // Puoi nidificare le mappature, questo esempio mappa le approvazioni da proprietario a operatore + mapping(address => mapping(address => bool)) private operatorApprovals; + + // Funzione interna per creare una Pizza casuale dalla stringa (nome) e dal DNA + function _createPizza(string memory _name, uint256 _dna) + // La parola chiave `internal` significa che questa funzione è visibile solo + // tra questo contratto e i contratti derivati da esso + // Scopri di più: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#visibility-and-getters + internal + // `isUnique` è un modificatore della funzione che verifica se la pizza esiste già + // Scopri di più: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html#function-modifiers + isUnique(_name, _dna) + { + // Aggiunge la Pizza all'insieme di Pizze e ottiene l'id + uint256 id = SafeMath.sub(pizzas.push(Pizza(_name, _dna)), 1); + + // Verifica che il proprietario della Pizza sia l'utente corrente + // Scopri di più: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions + + // nota che address(0) è l'indirizzo zero, + // indicando che pizza[id] non è ancora allocato a un utente in particolare. + + assert(pizzaToOwner[id] == address(0)); + + // Mappa la Pizza al proprietario + pizzaToOwner[id] = msg.sender; + ownerPizzaCount[msg.sender] = SafeMath.add( + ownerPizzaCount[msg.sender], + 1 + ); + } + + // Crea una Pizza casuale dalla stringa (nome) + function createRandomPizza(string memory _name) public { + uint256 randDna = generateRandomDna(_name, msg.sender); + _createPizza(_name, randDna); + } + + // Genera DNA casuale dalla stringa (nome) e dall'indirizzo del proprietario (creatore) + function generateRandomDna(string memory _str, address _owner) + public + // Le funzioni contrassegnate come `pure` promettono di non modificare lo stato o non leggere da esso + // Scopri di più: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#pure-functions + pure + returns (uint256) + { + // Genera uint casuale dalla stringa (nome) + indirizzo (proprietario) + uint256 rand = uint256(keccak256(abi.encodePacked(_str))) + + uint256(_owner); + rand = rand % dnaModulus; + return rand; + } + + // Restituisce l'insieme di Pizze trovate dal proprietario + function getPizzasByOwner(address _owner) + public + // Le funzioni contrassegnate come `view` promettono di non modificare lo stato + // Scopri di più: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#view-functions + view + returns (uint256[] memory) + { + // Usa la posizione d'archiviazione `memory` per memorizzare i valori solo per la durata + // di questa chiamata alla funzione. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/introduction-to-smart-contracts.html#storage-memory-and-the-stack + uint256[] memory result = new uint256[](ownerPizzaCount[_owner]); + uint256 counter = 0; + for (uint256 i = 0; i < pizzas.length; i++) { + if (pizzaToOwner[i] == _owner) { + result[counter] = i; + counter++; + } + } + return result; + } + + // Transfers Pizza and ownership to other address + function transferFrom(address _from, address _to, uint256 _pizzaId) public { + require(_from != address(0) && _to != address(0), "Invalid address."); + require(_exists(_pizzaId), "Pizza does not exist."); + require(_from != _to, "Cannot transfer to the same address."); + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + + ownerPizzaCount[_to] = SafeMath.add(ownerPizzaCount[_to], 1); + ownerPizzaCount[_from] = SafeMath.sub(ownerPizzaCount[_from], 1); + pizzaToOwner[_pizzaId] = _to; + + // Emits event defined in the imported IERC721 contract + emit Transfer(_from, _to, _pizzaId); + _clearApproval(_to, _pizzaId); + } + + /** + * Safely transfers the ownership of a given token ID to another address + * If the target address is a contract, it must implement `onERC721Received`, + * which is called upon a safe transfer, and return the magic value + * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; + * otherwise, the transfer is reverted. + */ + function safeTransferFrom(address from, address to, uint256 pizzaId) + public + { + // solium-disable-next-line arg-overflow + this.safeTransferFrom(from, to, pizzaId, ""); + } + + /** + * Safely transfers the ownership of a given token ID to another address + * If the target address is a contract, it must implement `onERC721Received`, + * which is called upon a safe transfer, and return the magic value + * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; + * otherwise, the transfer is reverted. + */ + function safeTransferFrom( + address from, + address to, + uint256 pizzaId, + bytes memory _data + ) public { + this.transferFrom(from, to, pizzaId); + require(_checkOnERC721Received(from, to, pizzaId, _data), "Must implement onERC721Received."); + } + + /** + * Funzione interna per invocare `onERC721Received` su un dato indirizzo + * La chiamata non è eseguita se l'indirizzo di destinazione non è un contratto + */ + function _checkOnERC721Received( + address from, + address to, + uint256 pizzaId, + bytes memory _data + ) internal returns (bool) { + if (!isContract(to)) { + return true; + } + + bytes4 retval = IERC721Receiver(to).onERC721Received( + msg.sender, + from, + pizzaId, + _data + ); + return (retval == _ERC721_RECEIVED); + } + + // Brucia una Pizza - distrugge completamente il Token + // Il modificatore della funzione `external` significa che questa funzione fa + // parte dell'interfaccia del contratto e che gli altri contratti possono chiamarla + function burn(uint256 _pizzaId) external { + require(msg.sender != address(0), "Indirizzo non valido."); + require(_exists(_pizzaId), "La Pizza non esiste."); + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Indirizzo non approvato."); + + ownerPizzaCount[msg.sender] = SafeMath.sub( + ownerPizzaCount[msg.sender], + 1 + ); + pizzaToOwner[_pizzaId] = address(0); + } + + // Restituisce il numero di Pizze per indirizzo + function balanceOf(address _owner) public view returns (uint256 _balance) { + return ownerPizzaCount[_owner]; + } + + // Restituisce il proprietario della Pizza trovato per id + function ownerOf(uint256 _pizzaId) public view returns (address _owner) { + address owner = pizzaToOwner[_pizzaId]; + require(owner != address(0), "ID della Pizza non valido."); + return owner; + } + + // Approva altri indirizzi per trasferire la proprietà della Pizza + function approve(address _to, uint256 _pizzaId) public { + require(msg.sender == pizzaToOwner[_pizzaId], "Dev'essere il proprietario della Pizza."); + pizzaApprovals[_pizzaId] = _to; + emit Approval(msg.sender, _to, _pizzaId); + } + + // Restituisce l'indirizzo approvato per la Pizza specifica + function getApproved(uint256 _pizzaId) + public + view + returns (address operator) + { + require(_exists(_pizzaId), "La Pizza non esiste."); + return pizzaApprovals[_pizzaId]; + } + + /** + * La funzione privata per cancellare l'approvazione corrente dell'ID di un dato token + * Si ripristina se l'indirizzo dato non è il proprietario del token + */ + function _clearApproval(address owner, uint256 _pizzaId) private { + require(pizzaToOwner[_pizzaId] == owner, "Dev'essere il proprietario della pizza."); + require(_exists(_pizzaId), "La Pizza non esiste."); + if (pizzaApprovals[_pizzaId] != address(0)) { + pizzaApprovals[_pizzaId] = address(0); + } + } + + /* + * Imposta o rimuove l'approvazione di un dato operatore + * Un operatore può trasferire tutti i token del mittente per conto suo + */ + function setApprovalForAll(address to, bool approved) public { + require(to != msg.sender, "Impossibile approvare il proprio indirizzo"); + operatorApprovals[msg.sender][to] = approved; + emit ApprovalForAll(msg.sender, to, approved); + } + + // Dice se un operatore è approvato da un dato proprietario + function isApprovedForAll(address owner, address operator) + public + view + returns (bool) + { + return operatorApprovals[owner][operator]; + } + + // Prende proprietà della Pizza - solo per gli utenti approvati + function takeOwnership(uint256 _pizzaId) public { + require(_isApprovedOrOwner(msg.sender, _pizzaId), "L'indirizzo non è approvato."); + address owner = this.ownerOf(_pizzaId); + this.transferFrom(owner, msg.sender, _pizzaId); + } + + // Verifica se la Pizza esiste + function _exists(uint256 pizzaId) internal view returns (bool) { + address owner = pizzaToOwner[pizzaId]; + return owner != address(0); + } + + // Verifica se l'indirizzo è il proprietario o è approvato per trasferire la Pizza + function _isApprovedOrOwner(address spender, uint256 pizzaId) + internal + view + returns (bool) + { + address owner = pizzaToOwner[pizzaId]; + // Disabilita il controllo di solium a causa di + // https://github.com/duaraghav8/Solium/issues/175 + // solium-disable-next-line operator-whitespace + return (spender == owner || + this.getApproved(pizzaId) == spender || + this.isApprovedForAll(owner, spender)); + } + + // Verifica se la Pizza è univoca e non esiste ancora + modifier isUnique(string memory _name, uint256 _dna) { + bool result = true; + for (uint256 i = 0; i < pizzas.length; i++) { + if ( + keccak256(abi.encodePacked(pizzas[i].name)) == + keccak256(abi.encodePacked(_name)) && + pizzas[i].dna == _dna + ) { + result = false; + } + } + require(result, "Una Pizza con quel nome esiste già."); + _; + } + + // Restituisce se l'indirizzo di destinazione è un contratto + function isContract(address account) internal view returns (bool) { + uint256 size; + // Correntemente non c'è modo migliore di verificare se esiste un contratto in un indirizzo + // se non controllare la dimensione del codice a quell'indirizzo. + // Visita https://ethereum.stackexchange.com/a/14016/36603 + // per maggiori dettagli sul funzionamento. + // TODO Controllare questo codice nuovamente prima del rilascio di Serenity, perché a quel punto + // tutti gli indirizzi saranno contratti. + // solium-disable-next-line security/no-inline-assembly + assembly { + size := extcodesize(account) + } + return size > 0; + } +} +``` + +## Letture consigliate {#further-reading} + +Dai un'occhiata alla documentazione di Solidity e Vyper per una panoramica più complessa dei contratti intelligenti: + +- [Solidity](https://solidity.readthedocs.io/) +- [Vyper](https://vyper.readthedocs.io/) + +## Argomenti correlati {#related-topics} + +- [Contratti intelligenti](/developers/docs/smart-contracts/) +- [Macchina virtuale Ethereum](/developers/docs/evm/) + +## Tutorial correlati {#related-tutorials} + +- [Ridimensionare i contratti per contrastare il limite di dimensioni del contratto](/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/): _Alcuni consigli pratici per ridurre le dimensioni del tuo contratto intelligente._ +- [Registrare dati dai contratti intelligenti con gli eventi](/developers/tutorials/logging-events-smart-contracts/): _Un'introduzione agli eventi dei contratti intelligenti e a come puoi usarli per registrare i dati._ +- [Interagire con gli altri contratti da Solidity](/developers/tutorials/interact-with-other-contracts-from-solidity/): _Come distribuire un contratto intelligente da un contratto esistente e interagirvi._ diff --git a/src/content/translations/it/developers/docs/smart-contracts/compiling/index.md b/public/content/translations/it/developers/docs/smart-contracts/compiling/index.md similarity index 100% rename from src/content/translations/it/developers/docs/smart-contracts/compiling/index.md rename to public/content/translations/it/developers/docs/smart-contracts/compiling/index.md diff --git a/src/content/translations/it/developers/docs/smart-contracts/composability/index.md b/public/content/translations/it/developers/docs/smart-contracts/composability/index.md similarity index 100% rename from src/content/translations/it/developers/docs/smart-contracts/composability/index.md rename to public/content/translations/it/developers/docs/smart-contracts/composability/index.md diff --git a/src/content/translations/it/developers/docs/smart-contracts/deploying/index.md b/public/content/translations/it/developers/docs/smart-contracts/deploying/index.md similarity index 100% rename from src/content/translations/it/developers/docs/smart-contracts/deploying/index.md rename to public/content/translations/it/developers/docs/smart-contracts/deploying/index.md diff --git a/src/content/translations/it/developers/docs/smart-contracts/formal-verification/index.md b/public/content/translations/it/developers/docs/smart-contracts/formal-verification/index.md similarity index 100% rename from src/content/translations/it/developers/docs/smart-contracts/formal-verification/index.md rename to public/content/translations/it/developers/docs/smart-contracts/formal-verification/index.md diff --git a/src/content/translations/it/developers/docs/smart-contracts/index.md b/public/content/translations/it/developers/docs/smart-contracts/index.md similarity index 100% rename from src/content/translations/it/developers/docs/smart-contracts/index.md rename to public/content/translations/it/developers/docs/smart-contracts/index.md diff --git a/src/content/translations/it/developers/docs/smart-contracts/languages/index.md b/public/content/translations/it/developers/docs/smart-contracts/languages/index.md similarity index 100% rename from src/content/translations/it/developers/docs/smart-contracts/languages/index.md rename to public/content/translations/it/developers/docs/smart-contracts/languages/index.md diff --git a/src/content/translations/it/developers/docs/smart-contracts/libraries/index.md b/public/content/translations/it/developers/docs/smart-contracts/libraries/index.md similarity index 100% rename from src/content/translations/it/developers/docs/smart-contracts/libraries/index.md rename to public/content/translations/it/developers/docs/smart-contracts/libraries/index.md diff --git a/src/content/translations/it/developers/docs/smart-contracts/security/index.md b/public/content/translations/it/developers/docs/smart-contracts/security/index.md similarity index 100% rename from src/content/translations/it/developers/docs/smart-contracts/security/index.md rename to public/content/translations/it/developers/docs/smart-contracts/security/index.md diff --git a/src/content/translations/it/developers/docs/smart-contracts/testing/index.md b/public/content/translations/it/developers/docs/smart-contracts/testing/index.md similarity index 100% rename from src/content/translations/it/developers/docs/smart-contracts/testing/index.md rename to public/content/translations/it/developers/docs/smart-contracts/testing/index.md diff --git a/src/content/translations/it/developers/docs/smart-contracts/upgrading/index.md b/public/content/translations/it/developers/docs/smart-contracts/upgrading/index.md similarity index 100% rename from src/content/translations/it/developers/docs/smart-contracts/upgrading/index.md rename to public/content/translations/it/developers/docs/smart-contracts/upgrading/index.md diff --git a/src/content/translations/it/developers/docs/smart-contracts/verifying/index.md b/public/content/translations/it/developers/docs/smart-contracts/verifying/index.md similarity index 100% rename from src/content/translations/it/developers/docs/smart-contracts/verifying/index.md rename to public/content/translations/it/developers/docs/smart-contracts/verifying/index.md diff --git a/src/content/translations/it/developers/docs/smart-contracts/verifying/source-code-verification.png b/public/content/translations/it/developers/docs/smart-contracts/verifying/source-code-verification.png similarity index 100% rename from src/content/translations/it/developers/docs/smart-contracts/verifying/source-code-verification.png rename to public/content/translations/it/developers/docs/smart-contracts/verifying/source-code-verification.png diff --git a/src/content/translations/it/developers/docs/standards/index.md b/public/content/translations/it/developers/docs/standards/index.md similarity index 100% rename from src/content/translations/it/developers/docs/standards/index.md rename to public/content/translations/it/developers/docs/standards/index.md diff --git a/src/content/translations/it/developers/docs/standards/tokens/erc-1155/index.md b/public/content/translations/it/developers/docs/standards/tokens/erc-1155/index.md similarity index 100% rename from src/content/translations/it/developers/docs/standards/tokens/erc-1155/index.md rename to public/content/translations/it/developers/docs/standards/tokens/erc-1155/index.md diff --git a/public/content/translations/it/developers/docs/standards/tokens/erc-20/index.md b/public/content/translations/it/developers/docs/standards/tokens/erc-20/index.md new file mode 100644 index 00000000000..4a08d0be19c --- /dev/null +++ b/public/content/translations/it/developers/docs/standards/tokens/erc-20/index.md @@ -0,0 +1,149 @@ +--- +title: Standard token ERC-20 +description: +lang: it +--- + +## Introduzione {#introduction} + +**Cos'è un token?** + +I token possono rappresentare praticamente tutto in Ethereum: + +- punti di reputazione in piattaforme online +- abilità di un personaggio di un videogioco +- biglietti della lotteria +- strumenti finanziari come una partecipazione in una società +- una valuta legale come il dollaro statunitense +- un'oncia d'oro +- e molto altro... + +Una caratteristica così potente di Ethereum deve essere gestita da uno standard robusto. Questo è esattamente il ruolo di ERC-20! Questo standard permette agli sviluppatori di creare applicazioni token interoperabili con altri prodotti e servizi. + +**Cos'è ERC-20?** + +ERC-20 introduce uno standard per i token fungibili. In altre parole, questi token hanno una proprietà che rende ogni token esattamente uguale (per tipo e valore) a un altro token. Per esempio, un token ERC-20 funziona esattamente come ETH, ossia 1 token è e sarà sempre uguale a tutti gli altri token. + +## Prerequisiti {#prerequisites} + +- [Conti](/developers/docs/accounts) +- [Contratti Intelligenti](/developers/docs/smart-contracts/) +- [Standard per i token](/developers/docs/standards/tokens/) + +## Corpo {#body} + +L'ERC-20 (Ethereum Request for Comments 20), proposto da Fabian Vogelsteller nel novembre del 2015, è uno Standard del Token che implementa un'API per i token nei Contratti Intelligenti. + +Esempio di funzionalità fornite da ERC-20: + +- trasferire token da un conto all'altro +- ottenere il saldo corrente di token di un conto +- richiedere la quantità totale di token disponibile sulla rete +- approvare se un importo di token da un conto è spendibile da un conto di terze parti + +Se un Contratto Intelligente implementa i seguenti metodi ed eventi, può esser definito un Contratto a Token ERC-20 e, una volta distribuito, sarà responsabile di tenere traccia dei token creati su Ethereum. + +Da [EIP-20](https://eips.ethereum.org/EIPS/eip-20): + +### Metodi {#methods} + +```solidity +function name() public view returns (string) +function symbol() public view returns (string) +function decimals() public view returns (uint8) +function totalSupply() public view returns (uint256) +function balanceOf(address _owner) public view returns (uint256 balance) +function transfer(address _to, uint256 _value) public returns (bool success) +function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) +function approve(address _spender, uint256 _value) public returns (bool success) +function allowance(address _owner, address _spender) public view returns (uint256 remaining) +``` + +### Eventi {#events} + +```solidity +event Transfer(address indexed _from, address indexed _to, uint256 _value) +event Approval(address indexed _owner, address indexed _spender, uint256 _value) +``` + +### Esempi {#web3py-example} + +Vediamo perché uno standard è così importante per semplificare l'ispezione dei contratti token ERC-20 su Ethereum. Ci serve solo la Contract Application Binary Interface (ABI) per creare un'interfaccia per qualsiasi token ERC-20. Come puoi vedere di seguito, useremo un'ABI semplificata per fornire un esempio semplice da capire. + +#### Esempio Web3.py {#web3py-example} + +Prima di tutto, controlla di avere installato la libreria Python [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation): + +``` +pip install web3 +``` + +```python +from web3 import Web3 + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI +weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # Wrapped ether (WETH) + +acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11" # Uniswap V2: DAI 2 + +# questa è un'ABI (Contract Application Binary Interface) semplificata per un contratto token ERC-20. +# It will expose only the methods: balanceOf(address), decimals(), symbol() and totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'decimals', + 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +dai_contract = w3.eth.contract(address=w3.to_checksum_address(dai_token_addr), abi=simplified_abi) +symbol = dai_contract.functions.symbol().call() +decimals = dai_contract.functions.decimals().call() +totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals +addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# DAI +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) + +weth_contract = w3.eth.contract(address=w3.to_checksum_address(weth_token_addr), abi=simplified_abi) +symbol = weth_contract.functions.symbol().call() +decimals = weth_contract.functions.decimals().call() +totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals +addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# WETH +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) +``` + +## Letture consigliate {#further-reading} + +- [EIP-20: Standard dei token ERC-20](https://eips.ethereum.org/EIPS/eip-20) +- [OpenZeppelin - Token](https://docs.openzeppelin.com/contracts/3.x/tokens#ERC20) +- [OpenZeppelin - Implementazione ERC-20](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) +- [Alchemy - Guida ai token ERC20 di Solidity](https://www.alchemy.com/overviews/erc20-solidity) diff --git a/src/content/translations/it/developers/docs/standards/tokens/erc-4626/index.md b/public/content/translations/it/developers/docs/standards/tokens/erc-4626/index.md similarity index 100% rename from src/content/translations/it/developers/docs/standards/tokens/erc-4626/index.md rename to public/content/translations/it/developers/docs/standards/tokens/erc-4626/index.md diff --git a/public/content/translations/it/developers/docs/standards/tokens/erc-721/index.md b/public/content/translations/it/developers/docs/standards/tokens/erc-721/index.md new file mode 100644 index 00000000000..d64b0dc7cde --- /dev/null +++ b/public/content/translations/it/developers/docs/standards/tokens/erc-721/index.md @@ -0,0 +1,244 @@ +--- +title: Standard token non fungibile ERC-721 +description: +lang: it +--- + +## Introduzione {#introduction} + +**Cos'è un token non fungibile?** + +Un token non fungibile (NFT) è usato per identificare inequivocabilmente qualcosa o qualcuno. Questo tipo di Token è perfetto su piattaforme che offrono oggetti collezionabili, chiavi di accesso, biglietti della lotteria, posti numerati per concerti o eventi sportivi ecc. Questo particolare tipo di token offre possibilità straordinarie quindi si merita uno standard vero e proprio, ed ERC-721 serve proprio per questo! + +**Cos'è ERC-721?** + +L'ERC-721 introduce uno standard per gli NFT; in altre parole, questo tipo di Token è unico e può avere un valore differente da un altro Token dallo stesso Contratto Intelligente, forse a causa della sua età, rarità o persino ad altro, come il suo aspetto. Cosa? Aspetto? + +Sì! Tutti gli NFT hanno una variabile `uint256` chiamata `tokenId`, quindi per i contratti ERC-721 la coppia `contract address, uint256 tokenId` deve essere unica a livello globale. Detto ciò, una dapp può avere un "convertitore" che utilizza il `tokenId` come input e restituisce l'immagine di qualcosa come zombie, armi, abilità o teneri gattini! + +## Prerequisiti {#prerequisites} + +- [Conti](/developers/docs/accounts/) +- [Contratti Intelligenti](/developers/docs/smart-contracts/) +- [Standard token](/developers/docs/standards/tokens/) + +## Corpo {#body} + +L'ERC-721 (Ethereum Request for Comments 721), proposto da William Entriken, Dieter Shirely, Jacob Evans e Nastassia Sachs a gennaio 2018, è uno Standard del Token Non Fungibile che implementa un'API per i token nei Contratti Intelligenti. + +Fornisce funzionalità come il trasferimento dei token da un conto all'altro, l'ottenimento del saldo corrente del token di un conto, l'ottenimento del proprietario di un token specifico, nonché l'offerta totale del token disponibile sulla rete. Oltre a ciò, ha alcune altre funzionalità, come approvare che un importo di token da un conto possa esser spostato da un conto di terze parti. + +Se un Contratto Intelligente implementa i seguenti metodi ed eventi, può esser definito un Contratto a Token Non Fungibile ERC-721 e, una volta distribuito, sarà responsabile di tenere traccia dei token creati su Ethereum. + +Da [EIP-721](https://eips.ethereum.org/EIPS/eip-721): + +### Metodi {#methods} + +```solidity + function balanceOf(address _owner) external view returns (uint256); + function ownerOf(uint256 _tokenId) external view returns (address); + function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; + function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; + function transferFrom(address _from, address _to, uint256 _tokenId) external payable; + function approve(address _approved, uint256 _tokenId) external payable; + function setApprovalForAll(address _operator, bool _approved) external; + function getApproved(uint256 _tokenId) external view returns (address); + function isApprovedForAll(address _owner, address _operator) external view returns (bool); +``` + +### Eventi {#events} + +```solidity + event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); + event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); + event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); +``` + +### Esempi {#web3py-example} + +Vediamo perché uno standard è così importante per semplificare l'ispezione dei contratti token ERC-721 su Ethereum. Ci serve solo la Contract Application Binary Interface (ABI) per creare un'interfaccia per qualsiasi token ERC-721. Come puoi vedere di seguito, useremo un'ABI semplificata per fornire un esempio semplice da capire. + +#### Esempio Web3.py {#web3py-example} + +Prima di tutto, controlla di avere installato la libreria Python [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation): + +``` +pip install web3 +``` + +```python +from web3 import Web3 +from web3._utils.events import get_event_data + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # CryptoKitties Contract + +acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # CryptoKitties Sales Auction + +# This is a simplified Contract Application Binary Interface (ABI) of an ERC-721 NFT Contract. +# It will expose only the methods: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'name', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'ownerOf', + 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, +] + +ck_extra_abi = [ + { + 'inputs': [], + 'name': 'pregnantKitties', + 'outputs': [{'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'name': '_kittyId', 'type': 'uint256'}], + 'name': 'isPregnant', + 'outputs': [{'name': '', 'type': 'bool'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +ck_contract = w3.eth.contract(address=w3.to_checksum_address(ck_token_addr), abi=simplified_abi+ck_extra_abi) +name = ck_contract.functions.name().call() +symbol = ck_contract.functions.symbol().call() +kitties_auctions = ck_contract.functions.balanceOf(acc_address).call() +print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}") + +pregnant_kitties = ck_contract.functions.pregnantKitties().call() +print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}") + +# Using the Transfer Event ABI to get info about transferred Kitties. +tx_event_abi = { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'from', 'type': 'address'}, + {'indexed': False, 'name': 'to', 'type': 'address'}, + {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'Transfer', + 'type': 'event' +} + +# We need the event's signature to filter the logs +event_signature = w3.keccak(text="Transfer(address,address,uint256)").hex() + +logs = w3.eth.get_logs({ + "fromBlock": w3.eth.block_number - 120, + "address": w3.to_checksum_address(ck_token_addr), + "topics": [event_signature] +}) + +# Notes: +# - Increase the number of blocks up from 120 if no Transfer event is returned. +# - If you didn't find any Transfer event you can also try to get a tokenId at: +# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events +# Click to expand the event's logs and copy its "tokenId" argument +recent_tx = [get_event_data(w3.codec, tx_event_abi, log)["args"] for log in logs] + +if recent_tx: + kitty_id = recent_tx[0]['tokenId'] # Paste the "tokenId" here from the link above + is_pregnant = ck_contract.functions.isPregnant(kitty_id).call() + print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}") +``` + +Il contratto CryptoKitties contiene alcuni eventi interessanti oltre a quelli standard. + +Diamo un'occhiata a due di questi, `Pregnant` e `Birth`. + +```python +# Viene usata l'ABI Pregnant e Birth Events per ottenere informazioni sui nuovi gattini. +ck_extra_events_abi = [ + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}], + 'name': 'Pregnant', + 'type': 'event' + }, + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'kittyId', 'type': 'uint256'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'genes', 'type': 'uint256'}], + 'name': 'Birth', + 'type': 'event' + }] + +# We need the event's signature to filter the logs +ck_event_signatures = [ + w3.keccak(text="Pregnant(address,uint256,uint256,uint256)").hex(), + w3.keccak(text="Birth(address,uint256,uint256,uint256,uint256)").hex(), +] + +# Here is a Pregnant Event: +# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog +pregnant_logs = w3.eth.get_logs({ + "fromBlock": w3.eth.block_number - 120, + "address": w3.to_checksum_address(ck_token_addr), + "topics": [ck_event_signatures[0]] +}) + +recent_pregnants = [get_event_data(w3.codec, ck_extra_events_abi[0], log)["args"] for log in pregnant_logs] + +# Here is a Birth Event: +# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a +birth_logs = w3.eth.get_logs({ + "fromBlock": w3.eth.block_number - 120, + "address": w3.to_checksum_address(ck_token_addr), + "topics": [ck_event_signatures[1]] +}) + +recent_births = [get_event_data(w3.codec, ck_extra_events_abi[1], log)["args"] for log in birth_logs] +``` + +## NFT più popolari {#popular-nfts} + +- [Etherscan NFT Tracker](https://etherscan.io/tokens-nft) elenca i principali NFT su Ethereum per volume di trasferimento. +- [CryptoKitties](https://www.cryptokitties.co/) è un gioco basato su creature a cui si può dare da mangiare, collezionabili e molto tenere chiamate CryptoKitties. +- [Sorare](https://sorare.com/) è un gioco di calcio fantasy globale in cui si possono collezionare oggetti in edizione limitata e gestire squadre, gareggiando per vincere premi. +- [The Ethereum Name Service (ENS)](https://ens.domains/) offre un modo sicuro e decentralizzato per indirizzare risorse sia all'interno che all'esterno della blockchain utilizzando nomi semplici e leggibili. +- [POAP](https://poap.xyz) offre NFT gratuiti alle persone che partecipano a eventi o completano azioni specifiche. I POAP sono creabili e distribuibili gratuitamente. +- [Unstoppable Domains](https://unstoppabledomains.com/) è un'azienda di San Francisco che crea domini sulle blockchain. I domini delle blockchain sostituiscono gli indirizzi della criptovaluta con nomi leggibili dall'uomo, che possono essere usati per creare siti web resistenti alla censura. +- [Gods Unchained Cards](https://godsunchained.com/) è un gioco di carte collezionabili sulla blockchain Ethereum che usa gli NFT per dare una proprietà reale alle risorse del gioco. +- [Bored Ape Yacht Club](https://boredapeyachtclub.com) è una raccolta di 10.000 NFT unici che, oltre a essere opere d'arte la cui rarità è dimostrata, fungono da token di appartenenza al club, fornendo ai membri vantaggi e benefici che possono aumentare nel tempo come risultato degli sforzi della community. + +## Letture consigliate {#further-reading} + +- [EIP-721: ERC-721 Non-Fungible Token Standard](https://eips.ethereum.org/EIPS/eip-721) +- [OpenZeppelin - ERC-721 Docs](https://docs.openzeppelin.com/contracts/3.x/erc721) +- [OpenZeppelin - ERC-721 Implementation](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) +- [API di Alchemy NFT](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) diff --git a/src/content/translations/it/developers/docs/standards/tokens/erc-777/index.md b/public/content/translations/it/developers/docs/standards/tokens/erc-777/index.md similarity index 100% rename from src/content/translations/it/developers/docs/standards/tokens/erc-777/index.md rename to public/content/translations/it/developers/docs/standards/tokens/erc-777/index.md diff --git a/src/content/translations/it/developers/docs/standards/tokens/index.md b/public/content/translations/it/developers/docs/standards/tokens/index.md similarity index 100% rename from src/content/translations/it/developers/docs/standards/tokens/index.md rename to public/content/translations/it/developers/docs/standards/tokens/index.md diff --git a/src/content/translations/it/developers/docs/storage/index.md b/public/content/translations/it/developers/docs/storage/index.md similarity index 100% rename from src/content/translations/it/developers/docs/storage/index.md rename to public/content/translations/it/developers/docs/storage/index.md diff --git a/src/content/translations/it/developers/docs/transactions/gas-tx.png b/public/content/translations/it/developers/docs/transactions/gas-tx.png similarity index 100% rename from src/content/translations/it/developers/docs/transactions/gas-tx.png rename to public/content/translations/it/developers/docs/transactions/gas-tx.png diff --git a/src/content/translations/it/developers/docs/transactions/index.md b/public/content/translations/it/developers/docs/transactions/index.md similarity index 100% rename from src/content/translations/it/developers/docs/transactions/index.md rename to public/content/translations/it/developers/docs/transactions/index.md diff --git a/src/content/translations/it/developers/docs/transactions/tx.png b/public/content/translations/it/developers/docs/transactions/tx.png similarity index 100% rename from src/content/translations/it/developers/docs/transactions/tx.png rename to public/content/translations/it/developers/docs/transactions/tx.png diff --git a/src/content/translations/it/developers/docs/web2-vs-web3/index.md b/public/content/translations/it/developers/docs/web2-vs-web3/index.md similarity index 100% rename from src/content/translations/it/developers/docs/web2-vs-web3/index.md rename to public/content/translations/it/developers/docs/web2-vs-web3/index.md diff --git a/src/content/translations/it/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md b/public/content/translations/it/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md rename to public/content/translations/it/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md diff --git a/src/content/translations/it/developers/tutorials/all-you-can-cache/index.md b/public/content/translations/it/developers/tutorials/all-you-can-cache/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/all-you-can-cache/index.md rename to public/content/translations/it/developers/tutorials/all-you-can-cache/index.md diff --git a/src/content/translations/it/developers/tutorials/calling-a-smart-contract-from-javascript/index.md b/public/content/translations/it/developers/tutorials/calling-a-smart-contract-from-javascript/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/calling-a-smart-contract-from-javascript/index.md rename to public/content/translations/it/developers/tutorials/calling-a-smart-contract-from-javascript/index.md diff --git a/src/content/translations/it/developers/tutorials/create-and-deploy-a-defi-app/index.md b/public/content/translations/it/developers/tutorials/create-and-deploy-a-defi-app/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/create-and-deploy-a-defi-app/index.md rename to public/content/translations/it/developers/tutorials/create-and-deploy-a-defi-app/index.md diff --git a/src/content/translations/it/developers/tutorials/deploying-your-first-smart-contract/index.md b/public/content/translations/it/developers/tutorials/deploying-your-first-smart-contract/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/deploying-your-first-smart-contract/index.md rename to public/content/translations/it/developers/tutorials/deploying-your-first-smart-contract/index.md diff --git a/src/content/translations/it/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md b/public/content/translations/it/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md rename to public/content/translations/it/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md diff --git a/src/content/translations/it/developers/tutorials/eip-1271-smart-contract-signatures/index.md b/public/content/translations/it/developers/tutorials/eip-1271-smart-contract-signatures/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/eip-1271-smart-contract-signatures/index.md rename to public/content/translations/it/developers/tutorials/eip-1271-smart-contract-signatures/index.md diff --git a/src/content/translations/it/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/it/developers/tutorials/erc-721-vyper-annotated-code/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/erc-721-vyper-annotated-code/index.md rename to public/content/translations/it/developers/tutorials/erc-721-vyper-annotated-code/index.md diff --git a/src/content/translations/it/developers/tutorials/erc20-annotated-code/index.md b/public/content/translations/it/developers/tutorials/erc20-annotated-code/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/erc20-annotated-code/index.md rename to public/content/translations/it/developers/tutorials/erc20-annotated-code/index.md diff --git a/src/content/translations/it/developers/tutorials/erc20-with-safety-rails/index.md b/public/content/translations/it/developers/tutorials/erc20-with-safety-rails/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/erc20-with-safety-rails/index.md rename to public/content/translations/it/developers/tutorials/erc20-with-safety-rails/index.md diff --git a/src/content/translations/it/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md b/public/content/translations/it/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md rename to public/content/translations/it/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md diff --git a/src/content/translations/it/developers/tutorials/guide-to-smart-contract-security-tools/index.md b/public/content/translations/it/developers/tutorials/guide-to-smart-contract-security-tools/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/guide-to-smart-contract-security-tools/index.md rename to public/content/translations/it/developers/tutorials/guide-to-smart-contract-security-tools/index.md diff --git a/src/content/translations/it/developers/tutorials/hello-world-smart-contract-fullstack/index.md b/public/content/translations/it/developers/tutorials/hello-world-smart-contract-fullstack/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/hello-world-smart-contract-fullstack/index.md rename to public/content/translations/it/developers/tutorials/hello-world-smart-contract-fullstack/index.md diff --git a/src/content/translations/it/developers/tutorials/hello-world-smart-contract/index.md b/public/content/translations/it/developers/tutorials/hello-world-smart-contract/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/hello-world-smart-contract/index.md rename to public/content/translations/it/developers/tutorials/hello-world-smart-contract/index.md diff --git a/src/content/translations/it/developers/tutorials/how-to-implement-an-erc721-market/index.md b/public/content/translations/it/developers/tutorials/how-to-implement-an-erc721-market/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/how-to-implement-an-erc721-market/index.md rename to public/content/translations/it/developers/tutorials/how-to-implement-an-erc721-market/index.md diff --git a/src/content/translations/it/developers/tutorials/how-to-mint-an-nft/index.md b/public/content/translations/it/developers/tutorials/how-to-mint-an-nft/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/how-to-mint-an-nft/index.md rename to public/content/translations/it/developers/tutorials/how-to-mint-an-nft/index.md diff --git a/src/content/translations/it/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md b/public/content/translations/it/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md rename to public/content/translations/it/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md diff --git a/src/content/translations/it/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md b/public/content/translations/it/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md rename to public/content/translations/it/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md diff --git a/src/content/translations/it/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md b/public/content/translations/it/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md rename to public/content/translations/it/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md diff --git a/src/content/translations/it/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md b/public/content/translations/it/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md rename to public/content/translations/it/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md diff --git a/src/content/translations/it/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md b/public/content/translations/it/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md rename to public/content/translations/it/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md diff --git a/src/content/translations/it/developers/tutorials/how-to-view-nft-in-metamask/index.md b/public/content/translations/it/developers/tutorials/how-to-view-nft-in-metamask/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/how-to-view-nft-in-metamask/index.md rename to public/content/translations/it/developers/tutorials/how-to-view-nft-in-metamask/index.md diff --git a/src/content/translations/it/developers/tutorials/how-to-write-and-deploy-an-nft/index.md b/public/content/translations/it/developers/tutorials/how-to-write-and-deploy-an-nft/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/how-to-write-and-deploy-an-nft/index.md rename to public/content/translations/it/developers/tutorials/how-to-write-and-deploy-an-nft/index.md diff --git a/src/content/translations/it/developers/tutorials/interact-with-other-contracts-from-solidity/index.md b/public/content/translations/it/developers/tutorials/interact-with-other-contracts-from-solidity/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/interact-with-other-contracts-from-solidity/index.md rename to public/content/translations/it/developers/tutorials/interact-with-other-contracts-from-solidity/index.md diff --git a/src/content/translations/it/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md b/public/content/translations/it/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md rename to public/content/translations/it/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md diff --git a/src/content/translations/it/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md b/public/content/translations/it/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md rename to public/content/translations/it/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md diff --git a/src/content/translations/it/developers/tutorials/logging-events-smart-contracts/index.md b/public/content/translations/it/developers/tutorials/logging-events-smart-contracts/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/logging-events-smart-contracts/index.md rename to public/content/translations/it/developers/tutorials/logging-events-smart-contracts/index.md diff --git a/src/content/translations/it/developers/tutorials/merkle-proofs-for-offline-data-integrity/index.md b/public/content/translations/it/developers/tutorials/merkle-proofs-for-offline-data-integrity/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/merkle-proofs-for-offline-data-integrity/index.md rename to public/content/translations/it/developers/tutorials/merkle-proofs-for-offline-data-integrity/index.md diff --git a/src/content/translations/it/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md b/public/content/translations/it/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md rename to public/content/translations/it/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md diff --git a/src/content/translations/it/developers/tutorials/nft-minter/index.md b/public/content/translations/it/developers/tutorials/nft-minter/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/nft-minter/index.md rename to public/content/translations/it/developers/tutorials/nft-minter/index.md diff --git a/src/content/translations/it/developers/tutorials/optimism-std-bridge-annotated-code/index.md b/public/content/translations/it/developers/tutorials/optimism-std-bridge-annotated-code/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/optimism-std-bridge-annotated-code/index.md rename to public/content/translations/it/developers/tutorials/optimism-std-bridge-annotated-code/index.md diff --git a/src/content/translations/it/developers/tutorials/reverse-engineering-a-contract/index.md b/public/content/translations/it/developers/tutorials/reverse-engineering-a-contract/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/reverse-engineering-a-contract/index.md rename to public/content/translations/it/developers/tutorials/reverse-engineering-a-contract/index.md diff --git a/src/content/translations/it/developers/tutorials/run-light-node-geth/index.md b/public/content/translations/it/developers/tutorials/run-light-node-geth/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/run-light-node-geth/index.md rename to public/content/translations/it/developers/tutorials/run-light-node-geth/index.md diff --git a/src/content/translations/it/developers/tutorials/run-node-raspberry-pi/index.md b/public/content/translations/it/developers/tutorials/run-node-raspberry-pi/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/run-node-raspberry-pi/index.md rename to public/content/translations/it/developers/tutorials/run-node-raspberry-pi/index.md diff --git a/src/content/translations/it/developers/tutorials/secure-development-workflow/index.md b/public/content/translations/it/developers/tutorials/secure-development-workflow/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/secure-development-workflow/index.md rename to public/content/translations/it/developers/tutorials/secure-development-workflow/index.md diff --git a/src/content/translations/it/developers/tutorials/send-token-ethersjs/index.md b/public/content/translations/it/developers/tutorials/send-token-ethersjs/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/send-token-ethersjs/index.md rename to public/content/translations/it/developers/tutorials/send-token-ethersjs/index.md diff --git a/src/content/translations/it/developers/tutorials/sending-tokens-using-ethersjs/index.md b/public/content/translations/it/developers/tutorials/sending-tokens-using-ethersjs/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/sending-tokens-using-ethersjs/index.md rename to public/content/translations/it/developers/tutorials/sending-tokens-using-ethersjs/index.md diff --git a/src/content/translations/it/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md b/public/content/translations/it/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md rename to public/content/translations/it/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md diff --git a/src/content/translations/it/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md b/public/content/translations/it/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md rename to public/content/translations/it/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md diff --git a/src/content/translations/it/developers/tutorials/short-abi/index.md b/public/content/translations/it/developers/tutorials/short-abi/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/short-abi/index.md rename to public/content/translations/it/developers/tutorials/short-abi/index.md diff --git a/src/content/translations/it/developers/tutorials/smart-contract-security-guidelines/index.md b/public/content/translations/it/developers/tutorials/smart-contract-security-guidelines/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/smart-contract-security-guidelines/index.md rename to public/content/translations/it/developers/tutorials/smart-contract-security-guidelines/index.md diff --git a/src/content/translations/it/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md b/public/content/translations/it/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md rename to public/content/translations/it/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md diff --git a/src/content/translations/it/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md b/public/content/translations/it/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md rename to public/content/translations/it/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md diff --git a/src/content/translations/it/developers/tutorials/testing-smart-contract-with-waffle/index.md b/public/content/translations/it/developers/tutorials/testing-smart-contract-with-waffle/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/testing-smart-contract-with-waffle/index.md rename to public/content/translations/it/developers/tutorials/testing-smart-contract-with-waffle/index.md diff --git a/src/content/translations/it/developers/tutorials/the-graph-fixing-web3-data-querying/index.md b/public/content/translations/it/developers/tutorials/the-graph-fixing-web3-data-querying/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/the-graph-fixing-web3-data-querying/index.md rename to public/content/translations/it/developers/tutorials/the-graph-fixing-web3-data-querying/index.md diff --git a/src/content/translations/it/developers/tutorials/token-integration-checklist/index.md b/public/content/translations/it/developers/tutorials/token-integration-checklist/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/token-integration-checklist/index.md rename to public/content/translations/it/developers/tutorials/token-integration-checklist/index.md diff --git a/src/content/translations/it/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md b/public/content/translations/it/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md rename to public/content/translations/it/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md diff --git a/src/content/translations/it/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md b/public/content/translations/it/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md rename to public/content/translations/it/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md diff --git a/src/content/translations/it/developers/tutorials/uniswap-v2-annotated-code/index.md b/public/content/translations/it/developers/tutorials/uniswap-v2-annotated-code/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/uniswap-v2-annotated-code/index.md rename to public/content/translations/it/developers/tutorials/uniswap-v2-annotated-code/index.md diff --git a/src/content/translations/it/developers/tutorials/using-websockets/index.md b/public/content/translations/it/developers/tutorials/using-websockets/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/using-websockets/index.md rename to public/content/translations/it/developers/tutorials/using-websockets/index.md diff --git a/public/content/translations/it/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md b/public/content/translations/it/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md new file mode 100644 index 00000000000..01b9867941b --- /dev/null +++ b/public/content/translations/it/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md @@ -0,0 +1,298 @@ +--- +title: "Waffle: simulazioni dinamiche e test delle chiamate del contratto" +description: Tutorial avanzato su Waffle per usare la simulazione dinamica e testare le chiamate di contratto +author: "Daniel Izdebski" +tags: + - "waffle" + - "smart contract" + - "Solidity" + - "test" + - "simulazione" +skill: intermediate +lang: it +published: 2020-11-14 +--- + +## A cosa serve questo tutorial? {#what-is-this-tutorial-about} + +In questo tutorial imparerai come: + +- usare la simulazione dinamica +- testare interazioni tra Smart Contract + +Premesse: + +- sai già come scrivere un semplice Smart Contract in `Solidity` +- sai utilizzare `JavaScript` e `TypeScript` +- hai seguito altri tutorial di `Waffle<` o ne sai già qualcosa + +## Simulazione dinamica {#dynamic-mocking} + +Perché la simulazione dinamica è utile? Ci consente di scrivere unit test anziché test di integrazione. Cosa significa? Che non dobbiamo preoccuparci delle dipendenze tra gli Smart Contract, dunque possiamo testarli tutti in completo isolamento. Vediamo come. + +### **1. Progetto** {#1-project} + +Prima di iniziare dobbiamo preparare un semplice progetto node.js: + +```bash +mkdir dynamic-mocking +cd dynamic-mocking +mkdir contracts src + +yarn init +# or if you're using npm +npm init +``` + +Iniziamo aggiungendo dipendenze typescript e di test: mocha e chai: + +```bash +yarn add --dev @types/chai @types/mocha chai mocha ts-node typescript +# or if you're using npm +npm install @types/chai @types/mocha chai mocha ts-node typescript --save-dev +``` + +Ora aggiungiamo `Waffle` e `ethers`: + +```bash +yarn add --dev ethereum-waffle ethers +# or if you're using npm +npm install ethereum-waffle ethers --save-dev +``` + +La struttura del progetto sarà ora simile a: + +``` +. +├── contracts +├── package.json +└── test +``` + +### **2. Smart Contract** {#2-smart-contract} + +Per avviare la simulazione dinamica, serve uno Smart Contract con dipendenze. Nessun problema. + +Ecco un semplice Smart Contract scritto in `Solidity` con il solo scopo di controllare se siamo ricchi. Usa il token ERC20 per verificare se abbiamo abbastanza token. Inseriscilo in `./contracts/AmIRichAlready.sol`. + +```solidity +pragma solidity ^0.6.2; + +interface IERC20 { + function balanceOf(address account) external view returns (uint256); +} + +contract AmIRichAlready { + IERC20 private tokenContract; + uint public richness = 1000000 * 10 ** 18; + + constructor (IERC20 _tokenContract) public { + tokenContract = _tokenContract; + } + + function check() public view returns (bool) { + uint balance = tokenContract.balanceOf(msg.sender); + return balance > richness; + } +} +``` + +Poiché vogliamo usare la simulazione dinamica, non ci serve tutto ERC20, quindi usiamo l'interfaccia IERC20 con una sola funzione. + +È ora di creare questo contratto. Per questo useremo `Waffle`. Prima, creeremo un semplice file di configurazione `waffle.json` che specifichi le opzioni di compilazione. + +```json +{ + "compilerType": "solcjs", + "compilerVersion": "0.6.2", + "sourceDirectory": "./contracts", + "outputDirectory": "./build" +} +``` + +Ora siamo pronti a creare il contratto con Waffle: + +```bash +npx waffle +``` + +Facile, vero? Nella cartella `build/` sono comparsi due file corrispondenti al contratto e all'interfaccia. Li useremo dopo per i test. + +### **3. Test** {#3-testing} + +Creiamo un file chiamato `AmIRichAlready.test.ts` per il test reale. Prima di tutto, dobbiamo gestire le importazioni. Ci serviranno dopo: + +```typescript +import { expect, use } from "chai" +import { Contract, utils, Wallet } from "ethers" +import { + deployContract, + deployMockContract, + MockProvider, + solidity, +} from "ethereum-waffle" +``` + +A parte le dipendenze JS, dobbiamo importare il contratto e l'interfaccia creati: + +```typescript +import IERC20 from "../build/IERC20.json" +import AmIRichAlready from "../build/AmIRichAlready.json" +``` + +Waffle usa `chai` per il test. Tuttavia, prima di poterlo usare, dobbiamo inserire i matcher di Waffle in chai: + +```typescript +use(solidity) +``` + +Dobbiamo implementare la funzione `beforeEach()` che ripristinerà lo stato del contratto prima di ogni test. Prima pensiamo a cosa ci serve. Per distribuire un contratto servono due cose: un portafoglio e un contratto ERC20 distribuito da passare come argomento per il contratto `AmIRichAlready`. + +Prima creiamo un portafoglio: + +```typescript +const [wallet] = new MockProvider().getWallets() +``` + +Poi dobbiamo distribuire un contratto ERC20. Ecco la parte complicata: abbiamo solo un'interfaccia. Questa è la parte in cui Waffle ci viene in aiuto. Waffle ha la funzione magica `deployMockContract()` che crea un contratto usando solo l'_abi_ dell'interfaccia: + +```typescript +const mockERC20 = await deployMockContract(wallet, IERC20.abi) +``` + +Ora con il portafoglio e l'ERC20 distribuito, possiamo continuare e distribuire il contratto `AmIRichAlready`: + +```typescript +const contract = await deployContract(wallet, AmIRichAlready, [ + mockERC20.address, +]) +``` + +A questo punto, la funzione `beforeEach()` è finita. Il file `AmIRichAlready.test.ts` avrà il seguente aspetto: + +```typescript +import { expect, use } from "chai" +import { Contract, utils, Wallet } from "ethers" +import { + deployContract, + deployMockContract, + MockProvider, + solidity, +} from "ethereum-waffle" + +import IERC20 from "../build/IERC20.json" +import AmIRichAlready from "../build/AmIRichAlready.json" + +use(solidity) + +describe("Am I Rich Already", () => { + let mockERC20: Contract + let contract: Contract + let wallet: Wallet + + beforeEach(async () => { + ;[wallet] = new MockProvider().getWallets() + mockERC20 = await deployMockContract(wallet, IERC20.abi) + contract = await deployContract(wallet, AmIRichAlready, [mockERC20.address]) + }) +}) +``` + +Scriviamo il primo test per il contratto `AmIRichAlready`. Cosa pensi dovrebbe fare il test? Esatto! Dobbiamo controllare se siamo già ricchi :) + +Ma aspetta un attimo. Come farà il nostro contratto simulato a sapere che valori restituire? Non abbiamo implementato alcuna logica per la funzione `balanceOf()`. Di nuovo, Waffle ci viene in aiuto. Il nostro contratto simulato ha contenuto interessante: + +```typescript +await mockERC20.mock..returns() +await mockERC20.mock..withArgs().returns() +``` + +Con queste informazioni possiamo finalmente scrivere il primo test: + +```typescript +it("returns false if the wallet has less than 1000000 tokens", async () => { + await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) + expect(await contract.check()).to.be.equal(false) +}) +``` + +Dividiamo il test in due parti: + +1. Impostiamo il contratto ERC20 simulato per restituire il saldo di 999999 token. +2. Controlliamo se il metodo `contract.check()` restituisce `false`. + +Siamo pronti a scatenare la bestia: + +![Un test superato](./test-one.png) + +Quindi il test funziona, ma... si può ancora migliorare. La funzione `balanceOf()` restituirà sempre 99999. Possiamo migliorarla specificando un portafoglio per cui la funzione deve restituire qualcosa, proprio come un vero contratto: + +```typescript +it("returns false if the wallet has less than 1000001 tokens", async () => { + await mockERC20.mock.balanceOf + .withArgs(wallet.address) + .returns(utils.parseEther("999999")) + expect(await contract.check()).to.be.equal(false) +}) +``` + +Finora, abbiamo testato solo il caso in cui non siamo abbastanza ricchi. Testiamo invece l'opposto: + +```typescript +it("returns true if the wallet has at least 1000001 tokens", async () => { + await mockERC20.mock.balanceOf + .withArgs(wallet.address) + .returns(utils.parseEther("1000001")) + expect(await contract.check()).to.be.equal(true) +}) +``` + +Esegui i test... + +![Due test superati](test-two.png) + +...ed ecco qui! Il nostro contratto sembra funzionare come previsto :) + +## Test delle chiamate del contratto {#testing-contract-calls} + +Ricapitoliamo cosa abbiamo fatto finora. Abbiamo testato la funzionalità del contratto `AmIRichAlready` che sembra funzionare correttamente. Quindi abbiamo finito, giusto? Non proprio. Waffle ci consente di testare il nostro contratto ancora più a fondo. Ma come esattamente? Beh, nell'arsenale di Waffle ci sono i matcher `calledOnContract()` e `calledOnContractWith()`. Ci consentiranno di verificare se il contratto ha chiamato il contratto simulato ERC20. Ecco un test di base con uno di questi matcher: + +```typescript +it("checks if contract called balanceOf on the ERC20 token", async () => { + await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) + await contract.check() + expect("balanceOf").to.be.calledOnContract(mockERC20) +}) +``` + +Possiamo andare persino oltre e migliorare questo test con l'altro matcher che ho indicato: + +```typescript +it("checks if contract called balanceOf with certain wallet on the ERC20 token", async () => { + await mockERC20.mock.balanceOf + .withArgs(wallet.address) + .returns(utils.parseEther("999999")) + await contract.check() + expect("balanceOf").to.be.calledOnContractWith(mockERC20, [wallet.address]) +}) +``` + +Controlliamo se i test sono corretti: + +![Tre test superati](test-three.png) + +Ottimo, tutti i test danno luce verde. + +Testare le chiamate di contratto con Waffle è facilissimo. Ma ecco la parte migliore. Questi matcher funzionano sia con contratti normali che simulati! Questo perché Waffle registra e filtra le chiamate all'EVM piuttosto che inserire il codice, come invece fanno librerie di testing popolari di altre tecnologie. + +## Il traguardo {#the-finish-line} + +Congratulazioni! Ora sai come usare Waffle per testare le chiamate di contratto e i contratti simulati dinamicamente. Ci sono funzionalità ben più interessanti da scoprire. Ti consiglio di tuffarti nella documentazione di Waffle. + +La documentazione di Waffle è disponibile [qui](https://ethereum-waffle.readthedocs.io/). + +Il codice sorgente di questo tutorial si può trovare [qui](https://github.com/EthWorks/Waffle/tree/master/examples/dynamic-mocking-and-testing-calls). + +Altri tutorial che potrebbero interessarti: + +- [Test di Smart Contract con Waffle](/developers/tutorials/testing-smart-contract-with-waffle/) diff --git a/src/content/translations/it/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md b/public/content/translations/it/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md rename to public/content/translations/it/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md diff --git a/src/content/translations/it/developers/tutorials/waffle-test-simple-smart-contract/index.md b/public/content/translations/it/developers/tutorials/waffle-test-simple-smart-contract/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/waffle-test-simple-smart-contract/index.md rename to public/content/translations/it/developers/tutorials/waffle-test-simple-smart-contract/index.md diff --git a/src/content/translations/it/developers/tutorials/yellow-paper-evm/index.md b/public/content/translations/it/developers/tutorials/yellow-paper-evm/index.md similarity index 100% rename from src/content/translations/it/developers/tutorials/yellow-paper-evm/index.md rename to public/content/translations/it/developers/tutorials/yellow-paper-evm/index.md diff --git a/src/content/translations/it/eips/index.md b/public/content/translations/it/eips/index.md similarity index 100% rename from src/content/translations/it/eips/index.md rename to public/content/translations/it/eips/index.md diff --git a/src/content/translations/it/energy-consumption/energy_consumption_pre_post_merge.png b/public/content/translations/it/energy-consumption/energy_consumption_pre_post_merge.png similarity index 100% rename from src/content/translations/it/energy-consumption/energy_consumption_pre_post_merge.png rename to public/content/translations/it/energy-consumption/energy_consumption_pre_post_merge.png diff --git a/src/content/translations/it/energy-consumption/index.md b/public/content/translations/it/energy-consumption/index.md similarity index 100% rename from src/content/translations/it/energy-consumption/index.md rename to public/content/translations/it/energy-consumption/index.md diff --git a/src/content/translations/it/enterprise/index.md b/public/content/translations/it/enterprise/index.md similarity index 100% rename from src/content/translations/it/enterprise/index.md rename to public/content/translations/it/enterprise/index.md diff --git a/src/content/translations/it/enterprise/private-ethereum/index.md b/public/content/translations/it/enterprise/private-ethereum/index.md similarity index 100% rename from src/content/translations/it/enterprise/private-ethereum/index.md rename to public/content/translations/it/enterprise/private-ethereum/index.md diff --git a/src/content/translations/it/eth/index.md b/public/content/translations/it/eth/index.md similarity index 100% rename from src/content/translations/it/eth/index.md rename to public/content/translations/it/eth/index.md diff --git a/src/content/translations/it/foundation/index.md b/public/content/translations/it/foundation/index.md similarity index 100% rename from src/content/translations/it/foundation/index.md rename to public/content/translations/it/foundation/index.md diff --git a/src/content/translations/it/glossary/index.md b/public/content/translations/it/glossary/index.md similarity index 100% rename from src/content/translations/it/glossary/index.md rename to public/content/translations/it/glossary/index.md diff --git a/src/content/translations/it/governance/index.md b/public/content/translations/it/governance/index.md similarity index 100% rename from src/content/translations/it/governance/index.md rename to public/content/translations/it/governance/index.md diff --git a/src/content/translations/it/guides/how-to-create-an-ethereum-account/index.md b/public/content/translations/it/guides/how-to-create-an-ethereum-account/index.md similarity index 100% rename from src/content/translations/it/guides/how-to-create-an-ethereum-account/index.md rename to public/content/translations/it/guides/how-to-create-an-ethereum-account/index.md diff --git a/src/content/translations/it/guides/how-to-id-scam-tokens/index.md b/public/content/translations/it/guides/how-to-id-scam-tokens/index.md similarity index 100% rename from src/content/translations/it/guides/how-to-id-scam-tokens/index.md rename to public/content/translations/it/guides/how-to-id-scam-tokens/index.md diff --git a/src/content/translations/it/guides/how-to-revoke-token-access/index.md b/public/content/translations/it/guides/how-to-revoke-token-access/index.md similarity index 100% rename from src/content/translations/it/guides/how-to-revoke-token-access/index.md rename to public/content/translations/it/guides/how-to-revoke-token-access/index.md diff --git a/src/content/translations/it/guides/how-to-swap-tokens/index.md b/public/content/translations/it/guides/how-to-swap-tokens/index.md similarity index 100% rename from src/content/translations/it/guides/how-to-swap-tokens/index.md rename to public/content/translations/it/guides/how-to-swap-tokens/index.md diff --git a/src/content/translations/it/guides/how-to-use-a-bridge/index.md b/public/content/translations/it/guides/how-to-use-a-bridge/index.md similarity index 100% rename from src/content/translations/it/guides/how-to-use-a-bridge/index.md rename to public/content/translations/it/guides/how-to-use-a-bridge/index.md diff --git a/src/content/translations/it/guides/how-to-use-a-wallet/index.md b/public/content/translations/it/guides/how-to-use-a-wallet/index.md similarity index 100% rename from src/content/translations/it/guides/how-to-use-a-wallet/index.md rename to public/content/translations/it/guides/how-to-use-a-wallet/index.md diff --git a/src/content/translations/it/guides/index.md b/public/content/translations/it/guides/index.md similarity index 100% rename from src/content/translations/it/guides/index.md rename to public/content/translations/it/guides/index.md diff --git a/public/content/translations/it/history/index.md b/public/content/translations/it/history/index.md new file mode 100644 index 00000000000..04999c1fb7f --- /dev/null +++ b/public/content/translations/it/history/index.md @@ -0,0 +1,516 @@ +--- +title: Storia e diramazioni di Ethereum +description: Storia della blockchain Ethereum che include le principali pietre miliari, versioni e diramazioni. +lang: it +sidebarDepth: 1 +--- + +# La storia di Ethereum {#the-history-of-ethereum} + +Un viaggio nel tempo per illustrare tutte le principali pietre miliari, diramazioni e gli aggiornamenti della blockchain di Ethereum. + + + +Le diramazioni si verificano quando è necessario apportare importanti aggiornamenti tecnici o modifiche alla rete; in genere derivano da proposte di miglioramento di Ethereum (EIP) e cambiano le "regole" del protocollo. + +Quando sono necessari aggiornamenti in software tradizionali controllati centralmente, l'azienda pubblica una nuova versione per l'utente finale. Le blockchain funzionano diversamente perché non esiste una proprietà centrale. I client di Ethereum devono aggiornare il proprio software e implementare le regole della nuova diramazione. Inoltre i creatori dei blocchi (miner in contesto Proof of Work e validatori in contesto Proof of Stake) e i nodi devono creare blocchi e convalidarli in base alle nuove regole. Maggiori informazioni sui meccanismi di consenso + +Queste modifiche alle regole potrebbero creare una divisione temporanea nella rete. I nuovi blocchi potrebbero essere creati in base alle nuove regole o a quelle vecchie. Le diramazioni di solito sono concordate in anticipo in modo che i client adottino le modifiche all'unisono e la diramazione legata agli upgrade diventi la catena principale. Tuttavia, in rari casi, disaccordi sulle diramazioni possono causare una divisione permanente della rete, come è successo con la creazione di Ethereum Classic con la diramazione DAO. + + + +Salta direttamente alle informazioni su alcuni degli ultimi aggiornamenti particolarmente importanti: [La Beacon Chain](/roadmap/beacon-chain/); [La Fusione](/roadmap/merge/) ed [EIP-1559](#london) + +Stai cercando i prossimi aggiornamenti di protocollo? [Scopri di più sui prossimi aggiornamenti, nella roadmap di Ethereum](/roadmap/). + + + +## 2023 {#2023} + +### Shanghai {#shanghai} + + + +#### Riepilogo {#shanghai-summary} + +L'aggiornamento di Shanghai ha portato i prelievi di staking al livello d'esecuzione. Insieme all'aggiornamento Capella, questo abiliterà i blocchi ad accettare le operazioni di prelievo, che consentono agli staker di prelevare i propri ETH dalla Beacon Chain al livello d'esecuzione. + + + +
    +
  • EIP-3651Avvia il riscaldamento dell'indirizzo di COINBASE
  • +
  • EIP-3855Nuova istruzione PUSH0
  • +
  • EIP-3860Limita e misura initcode
  • +
  • EIP-4895La Beacon Chain lancia i prelievi come operazioni
  • +
  • EIP-6049 - Depreca SELFDESTRUCT
  • +
+ +
+ +- [Leggi le specifiche dell'aggiornamento Shanghai](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/shanghai.md) + +--- + +### Capella {#capella} + + + +#### Riepilogo {#capella-summary} + +L'aggiornamento di Capella è il terzo aggiornamento principale al livello del consenso (Beacon Chain) e ha abilitato i prelievi di staking. Capella è avvenuto contemporaneamente all'aggiornamento del livello di esecuzione di Shanghai, e ha reso disponibili le funzioni di prelievo da staking. + +Questo aggiornamento del livello del consenso ha comportato la possibilità, per gli staker che non hanno fornito le credenziali di prelievo con il loro deposito iniziale, di fornirlo, consentendo dunque i prelievi. + +L'aggiornamento, inoltre, ha fornito la funzionalità di pulizia automatica dei conti, che elabora continuamente sui conti dei validatori qualsiasi pagamento di ricompense o prelievo completo disponibile. + +- [Maggiori informazioni sui prelievi in staking](/staking/withdrawals/). +- [Leggi le specifiche dell'aggiornamento Capella](https://github.com/ethereum/consensus-specs/blob/dev/specs/capella/) + + + +## 2022 {#2022} + +### Paris (la Fusione) {#paris} + + + +#### Riepilogo {#paris-summary} + +L'aggiornamento Paris è stato attivato dal passaggio da una blockchain proof-of-work di una [difficoltà totale terminale](/glossary/#terminal-total-difficulty) di 58750000000000000000000. Questo è avvenuto al blocco 15537393 il 15 settembre 2022, innescando l'aggiornamento Paris dal blocco successivo. Paris è stata la transizione [alla Fusione](/roadmap/merge/): la sua caratteristica principale è lo spegnimento dell'algoritmo di mining [proof-of-work](/developers/docs/consensus-mechanisms/pow) e della relativa logica di consenso, e l'attivazione della [proof-of-stake](/developers/docs/consensus-mechanisms/pos). Paris è stata un aggiornamento ai [client di esecuzione](/developers/docs/nodes-and-clients/#execution-clients) (equivalente a Bellatrix a livello di consenso) che ha permesso loro di ricevere istruzioni dai loro [client di consenso](/developers/docs/nodes-and-clients/#consensus-clients) collegati. Questo ha richiesto l'attivazione di una nuova serie di metodi API interni, collettivamente noti come l'[API Engine](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md). Questo è stato probabilmente l'aggiornamento più significativo nella storia di Ethereum dopo [Homestead](#homestead)! + +- [Leggi le specifiche dell'aggiornamento Paris](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/paris.md) + + + +
    +
  • EIP-3675Aggiorna il consenso al Proof-of-Stake
  • +
  • EIP-4399Sostituisce l'opcode DIFFICULTY con PREVRANDAO
  • +
+ +
+ +--- + +### Bellatrix {#bellatrix} + + + +#### Riepilogo {#bellatrix-summary} + +L'aggiornamento Bellatrix è stato il secondo aggiornamento programmato per la [Beacon Chain](/roadmap/beacon-chain), preparando la catena per [la Fusione](/roadmap/merge/). Porta le penalità dei validatori al valore pieno per inattività e azioni sanzionabili (slashing). Bellatrix include anche un aggiornamento alle regole di scelta della diramazione per preparare la catena per la Fusione e la transizione dall'ultimo blocco di proof-of-work al primo blocco proof-of-stake. A tale scopo occorre far sì che i client di consenso siano consapevoli della [difficoltà terminale totale](/glossary/#terminal-total-difficulty) di 58750000000000000000000. + +- [Leggi le specifiche dell'aggiornamento Bellatrix](https://github.com/ethereum/consensus-specs/tree/dev/specs/bellatrix) + +--- + +### Gray Glacier {#gray-glacier} + + + +#### Riepilogo {#gray-glacier-summary} + +L'aggiornamento della rete di Gray Glacier ha rimandato di tre mesi la [bomba di difficoltà](/glossary/#difficulty-bomb). Questa è l'unica modifica introdotta in questo aggiornamento ed è simile per natura agli aggiornamenti di [Arrow Glacier](#arrow-glacier) e [Muir Glacier](#muir-glacier). Modifiche simili sono state effettuate sugli aggiornamenti di rete [Byzantium](#byzantium), [Constantinople](#constantinople) e [London](#london). + +- [Blog dell'EF - Annuncio dell'aggiornamento Gray Glacier](https://blog.ethereum.org/2022/06/16/gray-glacier-announcement/) + + + +
    +
  • EIP-5133ritarda la bomba di difficoltà fino a settembre 2022
  • +
+ +
+ + + +## 2021 {#2021} + +### Arrow Glacier {#arrow-glacier} + + + +#### Riepilogo {#arrow-glacier-summary} + +L'aggiornamento di rete Arrow Glacier ha rimandato la [bomba di difficoltà](/glossary/#difficulty-bomb) di diversi mesi. Questo è l'unico cambiamento introdotto in questo aggiornamento, ed è simile nella sostanza all'aggiornamento [Muir Glacier](#muir-glacier). Modifiche simili sono state effettuate sugli aggiornamenti di rete [Byzantium](#byzantium), [Constantinople](#constantinople) e [London](#london). + +- [Blog dell'EF - Annuncio dell'aggiornamento Arrow Glacier](https://blog.ethereum.org/2021/11/10/arrow-glacier-announcement/) +- [Ethereum Cat Herders - Aggiornamento Ethereum Arrow Glacier](https://medium.com/ethereum-cat-herders/ethereum-arrow-glacier-upgrade-e8d20fa4c002) + + + +
    +
  • EIP-4345ritarda la bomba di difficoltà fino a giugno 2022
  • +
+ +
+ +--- + +### Altair {#altair} + + + +#### Riepilogo {#altair-summary} + +L'aggiornamento Altair è stato il primo aggiornamento pianificato per la [Beacon Chain](/roadmap/beacon-chain). Ha aggiunto il supporto per le "commissioni di sincronizzazione", abilitando i "client leggeri", aumentando le penalità per inattività e slashing per i validatori man mano che lo sviluppo procedeva verso la Fusione. + +- [Leggi le specifiche dell'aggiornamento di Altair](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) + +#### Curiosità! {#altair-fun-fact} + +Altair è stato il primo importante aggiornamento di rete che ha avuto un tempo di rollout esatto. Tutti gli aggiornamenti precedenti erano basati su un numero di blocco dichiarato su una catena proof-of-work, dove i tempi del blocco variavano. La Beacon Chain non richiede la risoluzione del proof-of-work e funziona invece su un sistema di epoche basato sul tempo che consiste in 32 "slot" di dodici secondi in cui i validatori possono proporre dei blocchi. Questo è il motivo per cui sapevamo esattamente quando avremmo raggiunto l'epoca 74.240 e Altair sarebbe diventato operativo! + +- [Tempo di blocco](/developers/docs/blocks/#block-time) + +--- + +### London {#london} + + + +#### Riepilogo {#london-summary} + +L'aggiornamento London ha introdotto l'[EIP-1559](https://eips.ethereum.org/EIPS/eip-1559), che ha riformato il mercato delle commissioni sulle transazioni, oltre a modificare come sono gestiti i rimborsi di carburante e la pianificazione di [Ice Age](/glossary/#ice-age). + +- [Sei uno sviluppatore di dapp? Assicurati di aggiornare le tue librerie e i tuoi strumenti.](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/london-ecosystem-readiness.md) +- [Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2021/07/15/london-mainnet-announcement/) +- [Leggi la spiegazione del Cat Herder di Ethereum](https://medium.com/ethereum-cat-herders/london-upgrade-overview-8eccb0041b41) + + + +
    +
  • EIP-1559migliora il mercato delle commissioni sulle transazioni
  • +
  • EIP-3198restituisce la BASEFEE da un blocco
  • +
  • EIP-3529 - riduce i rimborsi di carburante per le operazioni dell'EVM
  • +
  • EIP-3541 - impedisce la distribuzione dei contratti che iniziano con 0xEF
  • +
  • EIP-3554ritarda l'Era Glaciale fino a dicembre 2021
  • +
+ +
+ +--- + +### Berlin {#berlin} + + + +#### Riepilogo {#berlin-summary} + +L'aggiornamento Berlin ha ottimizzato i costi del carburante per certe azioni dell'EVM e ha aumentato il supporto per vari tipi di transazioni. + +- [Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2021/03/08/ethereum-berlin-upgrade-announcement/) +- [Leggi la spiegazione del Cat Herder di Ethereum](https://medium.com/ethereum-cat-herders/the-berlin-upgrade-overview-2f7ad710eb80) + + + +
    +
  • EIP-2565riduce il costo del carburante di ModExp
  • +
  • EIP-2718facilita il supporto per svariati tipi di transazioni
  • +
  • EIP-2929il costo del carburante aumenta per gli opcode d'accesso allo stato
  • +
  • EIP-2930aggiunge elenchi d'accesso facoltativi
  • +
+ +
+ + + +## 2020 {#2020} + +### Genesi della Beacon Chain {#beacon-chain-genesis} + + + +#### Riepilogo {#beacon-chain-genesis-summary} + +La [Beacon Chain](/roadmap/beacon-chain/) necessita di 16384 depositi da 32 ETH di staking per poter funzionare in sicurezza. Questo è successo il 27 novembre, quindi la Beacon Chain ha iniziato a produrre blocchi il 1° dicembre 2020. Questa è una prima fase importante nel percorso per raggiungere la [visione di Ethereum](/roadmap/vision/). + +[Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2020/11/27/eth2-quick-update-no-21/) + + + La beacon chain + + +--- + +### Distribuzione del contratto di deposito in staking {#staking-deposit-contract} + + + +#### Riepilogo {#deposit-contract-summary} + +Il contratto di deposito in staking ha introdotto lo [staking](/glossary/#staking) all'ecosistema di Ethereum. Nonostante fosse un contratto della [Rete principale](/glossary/#mainnet), ha avuto un impatto diretto sulla linea temporale per il lancio della [Beacon Chain](/roadmap/beacon-chain/), un importante [aggiornamento di Ethereum](/roadmap/). + +[Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2020/11/04/eth2-quick-update-no-19/) + + + Staking + + +--- + +### Muir Glacier {#muir-glacier} + + + +#### Riepilogo {#muir-glacier-summary} + +La diramazione Muir Glacier ha introdotto un ritardo nella [bomba di difficoltà](/glossary/#difficulty-bomb). Aumenta la difficoltà del blocco del meccanismo di consenso [Proof-of-Work](/developers/docs/consensus-mechanisms/pow/), che rischiava di peggiorare l'utilizzabilità di Ethereum, aumentando i tempi d'attesa per l'invio delle transazioni e l'uso delle dapp. + +- [Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2019/12/23/ethereum-muir-glacier-upgrade-announcement/) +- [Leggi la spiegazione del Cat Herder di Ethereum](https://medium.com/ethereum-cat-herders/ethereum-muir-glacier-upgrade-89b8cea5a210) + + + +
    +
  • EIP-2384ritarda la bomba di difficoltà per altri 4.000.000 blocchi, o circa 611 giorni.
  • +
+ +
+ + + +## 2019 {#2019} + +### Istanbul {#istanbul} + + + +#### Riepilogo {#istanbul-summary} + +La diramazione Instanbul: + +- Ha ottimizzato il costo del [carburante](/glossary/#gas) di certe azioni nell'[EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine). +- Ha migliorato la resilienza agli attacchi denial-of-service. +- Ha reso più performanti le soluzioni di [scalabilità di Livello 2](/developers/docs/scaling/#layer-2-scaling) basate su SNARK e STARK. +- Ha reso possibile l'interoperabilità tra Ethereum e Zcash. +- Ha consentito ai contratti di introdurre funzioni più creative. + +[Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2019/11/20/ethereum-istanbul-upgrade-announcement/) + + + +
    +
  • EIP-152consente a Ethereum di lavorare con valute di preservazione dell'anonimato, come Zcash.
  • +
  • EIP-1108crittografia più economica per migliorare i costi del carburante.
  • +
  • EIP-1344protegge Ethereum dagli attacchi di riproduzione, aggiungendo l'opcode CHAINID.
  • +
  • EIP-1884ottimizzazione dei prezzi del carburante dell'opcode basata sul consumo.
  • +
  • EIP-2028riduce il costo di CallData per consentire più dati nei blocchi, buono per il ridimensionamento del Livello 2.
  • +
  • EIP-2200altre alterazioni del prezzo del carburante dell'opcode.
  • +
+ +
+ +--- + +### Constantinople {#constantinople} + + + +#### Riepilogo {#constantinople-summary} + +La diramazione Constantinople: + +- Ha assicurato che la blockchain non si bloccasse prima dell'[implementazione del Proof-of-Stake](#beacon-chain-genesis). +- Ha ottimizzato il costo del [carburante](/glossary/#gas) di certe azioni nell'[EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine). +- Ha aggiunto la capacità di interagire con gli indirizzi non ancora creati. + +[Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2019/02/22/ethereum-constantinople-st-petersburg-upgrade-announcement/) + + + +
    +
  • EIP-145ottimizza i costi di certe azioni su catena.
  • +
  • EIP-1014consente di interagire con gli indirizzi che devono ancora essere creati.
  • +
  • EIP-1052ottimizza i costi di certe azioni su catena.
  • +
  • EIP-1234si assicura che la blockchain non si congeli prima del proof-of-stake.
  • +
+ +
+ + + +## 2017 {#2017} + +### Byzantium {#byzantium} + + + +#### Riepilogo {#byzantium-summary} + +La diramazione Byzantium: + +- Ha ridotto le ricompense del [mining](/developers/docs/consensus-mechanisms/pow/mining/) dei blocchi da 5 a 3 ETH. +- Ha ritardato di un anno la [bomba di difficoltà](/glossary/#difficulty-bomb). +- Ha aggiunto la capacità di effettuare chiamate che non modificano lo stato ad altri contratti. +- Ha aggiunto certi metodi crittografici per consentire la [scalabilità del livello 2](/developers/docs/scaling/#layer-2-scaling). + +[Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2017/10/12/byzantium-hf-announcement/) + + + +
    +
  • EIP-140aggiunge l'opcode REVERT.
  • +
  • EIP-658campo di stato aggiunto alle ricevute di transazione per indicare successo o fallimento.
  • +
  • EIP-196aggiunge la curva ellittica e la moltiplicazione scalare per consentire i ZK-SNARK.
  • +
  • EIP-197aggiunge la curva ellittica e la moltiplicazione scalare per consentire i ZK-SNARK.
  • +
  • EIP-198consente la verifica della firma RSA.
  • +
  • EIP-211aggiunge il supporto per i valori restituiti di lunghezza variabile.
  • +
  • EIP-214aggiunge l'opcode STATICCALL, consentendo chiamate che non modificano lo stato ad altri contratti.
  • +
  • EIP-100modifica la formula di regolazione della difficoltà.
  • +
  • EIP-649ritarda la bomba di difficoltà di 1 anno e riduce la ricompensa del blocco da 5 a 3 ETH.
  • +
+ +
+ + + +## 2016 {#2016} + +### Spurious Dragon {#spurious-dragon} + + + +#### Riepilogo {#spurious-dragon-summary} + +La diramazione Spurious Dragon è stata la seconda risposta agli attacchi denial of service (DoS) sulla rete (settembre/ottobre 2016) e ha reso possibile, tra l'altro: + +- l'ottimizzazione dei prezzi dell'opcode per impedire attacchi futuri alla rete; +- l'abilitazione di "debloat" dello stato della blockchain; +- l'aggiunta della protezione contro gli attacchi replay. + +[Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2016/11/18/hard-fork-no-4-spurious-dragon/) + + + +
    +
  • EIP-155impedisce la ritrasmissione delle transazioni da una catena di Ethereum su una catena alternativa, ad esempio che la transazione su una rete di prova venga riprodotta sulla catena principale di Ethereum.
  • +
  • EIP-160regola i prezzi dell'opcode EXP: complica il rallentamento della rete tramite operazioni del contratto computazionalmente costose.
  • +
  • EIP-161consente la rimozione dei conti vuoti aggiunti tramite attacchi DoS.
  • +
  • EIP-170modifica la dimensione massima del codice che un contratto sulla blockchain può avere, a 24576 byte.
  • +
+ +
+ +--- + +### Tangerine Whistle {#tangerine-whistle} + + + +#### Riepilogo {#tangerine-whistle-summary} + +La diramazione Tangerine Whistle è stata la prima risposta agli attacchi di denial of service (DoS) alla rete (settembre/ottobre 2016) e ha incluso: + +- gestire problemi urgenti di salute della rete relativi ai codici delle operazioni con prezzi troppo bassi. + +[Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2016/10/18/faq-upcoming-ethereum-hard-fork/) + + + +
    +
  • EIP-150aumenta i costi del carburante degli opcode utilizzabili negli attacchi di spam.
  • +
  • EIP-158riduce le dimensioni di stato rimuovendo un gran numero di conti vuoti messi nello stato a costo bassissimo a causa di bug nelle versioni precedenti del protocollo di Ethereum.
  • +
+ +
+ +--- + +### Diramazione OAD {#dao-fork} + + + +#### Riepilogo {#dao-fork-summary} + +La diramazione OAD è stata pensata come risposta all'[attacco OAD del 2016](https://www.coindesk.com/learn/understanding-the-dao-attack/), durante il quale un contratto [OAD](/glossary/#dao) non sicuro fu svuotato di oltre 3,6 milioni di ETH in un solo attacco. La diramazione ha spostato i fondi dal contratto difettoso a un [nuovo contratto](https://etherscan.io/address/0xbf4ed7b27f1d666546e30d74d50d173d20bca754) con una sola funzione: il prelievo. Chi aveva perso fondi ha potuto prelevare 1 ETH per ogni 100 token OAD nel proprio portafoglio. + +Questa iniziativa è stata votata dalla community di Ethereum. Ogni titolare di ETH ha potuto votare tramite una transazione su [una piattaforma di voto](https://web.archive.org/web/20170620030820/http://v1.carbonvote.com/). La decisione di creare la diramazione ha ottenuto oltre l'85% dei voti. + +Alcuni miner rifiutarono di creare la diramazione perché l'incidente DAO non era un difetto nel protocollo. Si sono riuniti per creare [Ethereum Classic](https://ethereumclassic.org/). + +[Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2016/07/20/hard-fork-completed/) + +--- + +### Homestead {#homestead} + + + +#### Riepilogo {#homestead-summary} + +La diramazione Homestead guardava al futuro. Includeva diverse modifiche al protocollo e un cambiamento che ha dato a Ethereum la possibilità di eseguire ulteriori aggiornamenti della rete. + +[Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2016/02/29/homestead-release/) + + + +
    +
  • EIP-2effettua modifiche al processo di creazione del contratto.
  • +
  • EIP-7aggiunge il nuovo opcode: DELEGATECALL
  • +
  • EIP-8introduce i requisiti di compatibilità progressiva a devp2p
  • +
+ +
+ + + +## 2015 {#2015} + +### Frontier thawing {#frontier-thawing} + + + +#### Riepilogo {#frontier-thawing-summary} + +La diramazione Frontier Thawing ha innalzato il limite di 5.000 [gas](/glossary/#gas) per [blocco](/glossary/#block) e ha impostato il prezzo predefinito del gas a 51 [gwei](/glossary/#gwei). Ciò ha reso possibili le transazioni, che richiedono 21.000 gas. La [bomba di difficoltà](/glossary/#difficulty-bomb) è stata introdotta per assicurare una hard-fork futura verso il [proof-of-stake](/glossary/#pos). + +- [Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2015/08/04/the-thawing-frontier/) +- [Leggi l'Aggiornamento 1 del Protocollo di Ethereum](https://blog.ethereum.org/2015/08/04/ethereum-protocol-update-1/) + +--- + +### Frontier {#frontier} + + + +#### Riepilogo {#frontier-summary} + +Frontier è stata un'implementazione operativa ma rudimentale del progetto Ethereum. È seguita alla positiva fase di test Olympic. Era destinata agli utenti tecnici, in particolare gli sviluppatori. I [blocchi](/glossary/#block) avevano un limite di 5.000 [gas](/glossary/#gas). Questo periodo di "disgelo" (dall'inglese thawing) ha consentito ai miner di iniziare la propria operatività e ai primi utilizzatori di installare i client senza fretta. + +[Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2015/07/22/frontier-is-coming-what-to-expect-and-how-to-prepare/) + + + +## 2014 {#2014} + +### Vendita di Ether {#ether-sale} + + + +Ether fu ufficialmente messo in vendita per 42 giorni. Lo potresti acquistare in Bitcoin. + +[Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2014/07/22/launching-the-ether-sale/) + +--- + +### Pubblicazione dello yellowpaper {#yellowpaper} + + + +Lo Yellow Paper, redatto dal dott. Gavin Wood, è una definizione tecnica del protocollo Ethereum. + +[Consulta lo Yellow Paper](https://github.com/ethereum/yellowpaper) + + + +## 2013 {#2013} + +### Pubblicazione del whitepaper {#whitepaper} + + + +Il documento introduttivo, pubblicato nel 2013 da Vitalik Buterin, fondatore di Ethereum, prima del lancio del progetto nel 2015. + + + Whitepaper + diff --git a/public/content/translations/it/nft/index.md b/public/content/translations/it/nft/index.md new file mode 100644 index 00000000000..cf008938af2 --- /dev/null +++ b/public/content/translations/it/nft/index.md @@ -0,0 +1,94 @@ +--- +title: Token non fungibili (NFT) +description: Una panoramica dei NFT su Ethereum +lang: it +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 3 +image: /infrastructure_transparent.png +alt: Un logo Eth visualizzato tramite ologramma. +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. +--- + +## Cosa sono i NFT? {#what-are-nfts} + +Gli NFT sono token che sono singolarmente unici. Ogni NFT ha proprietà differenti (non fungibile) ed provatamente scarso. Questo è diverso dai token come gli ERC-20, dove ogni token di un insieme è identico e ha le stesse proprietà (fungibile). Tu non ti preoccupi di quale banconota da un dollaro hai nel tuo portafoglio, perché sono tutte identiche e hanno lo stesso valore. Tuttavia, tu _ti_ preoccupi di quale specifico NFT possiedi, perché ha proprietà individuali che lo distinguono dagli altri (non fungibile). + +L'unicità di ciascun NFT consente la tokenizzazione di oggetti come oggetti d'arte, oggetti da collezione, o persino beni immobili, dove un specifico NFT unico rappresenta uno specifico oggetto unico del mondo reale o digitale. La proprietà di una risorsa è protetta dalla blockchain Ethereum: nessuno può modificare il registro di proprietà o far esistere un nuovo NFT copiandolo/incollandolo. + + + +## L'Internet delle risorse {#internet-of-assets} + +Gli NFT ed Ethereum risolvono alcuni dei problemi esistenti 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à. in un modo che non sia controllato da un'organizzazione centrale. Per esempio, con gli NFT puoi possedere un mp3 di musica che non è specifico di un'app di una specifica azienda di musica, o puoi avere un handle di un social media che puoi vendere o scambiare, ma che non ti può essere tolto arbitrariamente da una piattaforma fornitrice. + +Ecco come appare un internet di NFT, rispetto all'Internet utilizzato oggi da molti di noi... + +### Un confronto {#nft-comparison} + +| Un Internet di NFT | L'internet di oggi | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Sei proprietario delle tue risorse! Solo tu puoi venderli o scambiarli. | Tu affitti una risorsa da un'organizzazione. | +| Gli NFT sono digitalmente univoci, non esistono due NFT uguali. | Una copia di un'entità spesso non può essere distinta dall'originale. | +| La proprietà di un NFT è memorizzata sulla blockchain e può essere verificata da chiunque. | I registri di proprietà degli oggetti digitali sono archiviati su server controllati da istituzioni - devi fidarti della loro parola. | +| Gli NFT sono contratti intelligenti su Ethereum. Questo significa che possono essere usati facilmente in altri contratti intelligenti e applicazioni su Ethereum! | Le aziende con articoli digitali di solito richiedono una propria infrastruttura a mo' di "giardino recintato". | +| 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 di NFT possono mantenere i diritti di proprietà sul proprio lavoro e programmare le royalty direttamente nel contratto NFT. | Le piattaforme, come i servizi di streaming musicale, mantengono la maggior parte dei profitti derivanti dalle vendite. | + +## Come funzionano gli NFT? {#how-nfts-work} + +Come qualsiasi altro token emesso su Ethereum, gli NFT sono emessi da un contratto intelligente. Il contratto intelligente è conforme a uno dei diversi standard NFT (di solito ERC-721 o ERC-1155) che definiscono le funzioni del contratto. Il contratto può creare ("coniare") NFT e assegnarli a un proprietario specifico. La proprietà è definita nel contratto mediante la mappatura di NFT specifici a indirizzi specifici. L'NFT ha un ID e tipicamente dei metadati associati che rendono unico il token specifico. + +Quando qualcuno crea o conia un NFT, in realtà sta eseguendo una funzione nel contratto intelligente che assegna uno specifico NFT al suo indirizzo. Queste informazioni vengono conservate nella memoria del contratto, che fa parte della blockchain. Il creatore del contratto può scrivere una logica aggiuntiva nel contratto, ad esempio limitando l'offerta totale o definendo delle royalty da pagare al creatore ogni volta che un token viene trasferito. + +## Per cosa sono utilizzati gli NFT? {#nft-use-cases} + +Gli NFT vengono utilizzati per molti scopi, tra cui: + +- dimostrare di aver partecipato a un evento +- certificare di aver completato un corso +- oggetti posseduti nei videogiochi +- arte digitale +- trasformare beni del mondo reale in token digitali +- dimostrare la propria identità online +- limitare l'accesso ai contenuti +- biglietti digitali +- nomi di dominio internet decentralizzati +- garanzia nella DeFi + +Forse sei un artista che vuole condividere il proprio lavoro utilizzando gli NFT, senza perdere il controllo e sacrificare i tuoi profitti agli intermediari. Puoi creare un nuovo contratto e specificare il numero di NFT, le loro proprietà e un collegamento ad alcune opere d'arte specifiche. In qualità di artista, puoi programmare nel contratto intelligente le royalty che ti devono essere pagate (ad esempio, trasferire il 5% del prezzo di vendita al proprietario del contratto ogni volta che un NFT viene trasferito). Inoltre, puoi sempre dimostrare di aver creato gli NFT perché possiedi il portafoglio che ha distribuito il contratto. I tuoi acquirenti possono facilmente dimostrare di possedere un NFT autentico della tua collezione perché l'indirizzo del loro portafoglio è associato a un token nel tuo contratto intelligente. Possono utilizzarlo in tutto l'ecosistema Ethereum, sicuri della sua autenticità. + +Oppure, 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. Questi possono essere acquistati e venduti peer-to-peer senza pagare i gestori dei biglietti e l'acquirente ha sempre la certezza dell'autenticità del biglietto controllando l'indirizzo del contratto. + +Su ethereum.org, gli NFT vengono utilizzati per dimostrare che le persone hanno contribuito al nostro archivio GitHub o hanno partecipato alle riunioni online, e abbiamo persino il nostro nome di dominio NFT. Se contribuisci a ethereum.org, puoi rivendicare un NFT POAP. Alcuni incontri nel mondo delle criptovalute hanno usato i POAP come biglietti. [Di più su come contribuire](/contributing/#poap). + +![POAP di ethereum.org](./poap.png) + +Questo sito web ha anche un nome di dominio alternativo basato sulla tecnologia 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) + +[Di più sull'ENS](https://app.ens.domains) + + + +### Sicurezza degli 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 finalizzato, modificarlo costerebbe milioni di ETH a un utente malevolo. Chiunque esegua il software di Ethereum potrebbe immediatamente rilevare la manomissione disonesta con 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. + + + Di più sulla sicurezza + + +## Letture consigliate {#further-reading} + +- [Una guida per principianti agli NFT](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, gennaio 2020_ +- [EtherscanNFT tracker](https://etherscan.io/nft-top-contracts) +- [Standard token ERC-721](/developers/docs/standards/tokens/erc-721/) +- [Standard token ERC-1155](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/public/content/translations/it/refi/index.md b/public/content/translations/it/refi/index.md new file mode 100644 index 00000000000..72a4eeac57b --- /dev/null +++ b/public/content/translations/it/refi/index.md @@ -0,0 +1,79 @@ +--- +title: Finanza Rigenerativa (ReFi) +description: Una panoramica della ReFi e dei suoi attuali casi d'uso. +lang: it +template: use-cases +emoji: ":recycle:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Un sistema economico alternativo costruito su principi rigenerativi +summaryPoint2: Un tentativo di sfruttare Ethereum per risolvere crisi di coordinamento a livello globale come il cambiamento climatico +summaryPoint3: Uno strumento per scalare drasticamente le risorse del beneficio ecologico come i crediti di carbonio verificati +--- + +## Cos'è la ReFi? {#what-is-refi} + +**La finanza rigenerativa (ReFi)** è un insieme di strumenti e idee costruite su blockchain, che mirano a creare economie che siano rigenerative, piuttosto che estrattive o di sfruttamento. Alla fine, i sistemi estrattivi esauriscono le risorse disponibili e collassano; senza meccanismi rigenerativi, essi mancano di resilienza. La ReFi opera partendo dal presupposto che la creazione del valore monetario deve essere disaccoppiato dall'estrazione insostenibile di risorse del nostro pianeta e delle nostre comunità. + +La ReFi, invece, mira a risolvere i problemi ambientali, comunitari o sociali creando cicli rigenerativi. Questi sistemi creano valore ai partecipanti e allo stesso tempo portano benefici agli ecosistemi e alle comunità. + +Uno dei fondamenti della ReFi è il concetto di economia rigenerativa di cui è stato pioniere John Fullerton del [Capital Institute](https://capitalinstitute.org). Egli ha proposto otto principi interconnessi che sono alla base della salute sistemica: + +![Otto principi interconnessi](./refi-regenerative-economy-diagram.png) + +I progetti di ReFi realizzano questi principi usando i [contratti intelligenti](/developers/docs/smart-contracts/) e le applicazioni di [finanza decentralizzata (DeFi)](/defi/) per incentivare comportamenti rigenerativi, per esempio il ripristino di ecosistemi degradati e facilitare la collaborazione su larga scala su questioni globali come il cambiamento climatico e la perdita di biodiversità. + +La ReFi si sovrappone anche al movimento della [scienza decentralizzata (DeSci)](/desci/), che usa Ethereum come una piattaforma per finanziare, creare, revisionare, accreditare, archiviare e diffondere la conoscenza scientifica. Gli strumenti DeSci potrebbero diventare utili per sviluppare standard e pratiche verificabili per mettere in atto e monitorare attività rigenerative come piantare alberi, togliere la plastica dall'oceano o ripristinare un ecosistema degradato. + +## Tokenizzazione dei crediti di carbonio {#tokenization-of-carbon-credits} + +Il **[mercato volontario del carbonio (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** è un meccanismo di finanziamento dei progetti che hanno un impatto positivo verificato sulle emissioni di carbonio, riducendo le emissioni in corso o rimuovendo i gas serra già emessi dall'atmosfera. Dopo che sono stati verificati, questi progetti ricevono una risorsa chiamata "credito di carbonio" che possono vendere a privati e organizzazioni che vogliono supportare la lotta contro il cambiamento climatico. + +Oltre al VCM, esistono anche diversi mercati del carbonio imposti dai governi ('mercati di conformità') che mirano a stabilire un prezzo del carbonio attraverso leggi o normative all'interno di particolari giurisdizioni (ad. es. paese o regione), controllando la fornitura dei permessi da distribuire. I mercati di conformità incentivano coloro che inquinano all'interno della loro giurisdizione a ridurre le emissioni, ma non sono in grado di eliminare i gas ad affetto serra che sono stati già emessi. + +Nonostante il suo sviluppo negli ultimi decenni, il VCM continua a soffrire di svariati problemi: + +1. Liquidità estremamente frammentata +2. Meccanismi di transazione opachi +3. Commissioni elevate +4. Velocità di trading molto lenta +5. Mancanza di scalabilità + +La transizione del VCM al nuovo **mercato digitale del carbonio (DCM)** basato sulla blockchain potrebbe essere un'opportunità per aggiornare la tecnologia esistente per convalidare, effettuare transazioni e consumare crediti di carbonio. Le blockchain consentono dati verificabili pubblicamente, l'accesso ad una vasta gamma di utenti e una maggiore liquidità. + +I progetti ReFi utilizzano la tecnologia blockchain per alleviare molti dei problemi del mercato tradizionale: + +- **La liquidità è concentrata in un numero ridotto di pool di liquidità** che possono essere scambiati liberamente da chiunque. Le grandi organizzazioni così come i singoli utenti possono usare questi pool senza dover fare ricerche manuali di venditori/acquirenti, senza commissioni di partecipazione o pre-registrazione. +- **Tutte le transazioni sono registrate su blockchain pubbliche**. Il percorso che ogni credito del carbonio compie grazie all'attività di trading è tracciabile per sempre non appena viene reso disponibile nel DCM. +- **La velocità della transazione è quasi istantanea**. Garantire grandi quantità di crediti di carbonio attraverso i mercati tradizionali può richiedere giorni o settimane, mentre nel DCM questo può avvenire in pochi secondi. +- **L'attività di trading avviene senza intermediari** che applicano commissioni elevate. Secondo i dati di una società di analisi, i crediti di carbonio digitale rappresentano un [miglioramento del costo di oltre il 62% rispetto agli equivalenti crediti tradizionali](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne). +- **Il DCM è scalabile** ed è in grado di soddisfare la domanda dei privati e delle multinazionali. + +### Componenti chiave del DCM {#key-components-dcm} + +Quattro componenti principali costituiscono l'attuale panorama del DCM: + +1. I registri come [Verra](https://verra.org/project/vcs-program/registry-system/) e [Gold Standard](https://www.goldstandard.org/) assicurano che i progetti che creano crediti di carbonio siano affidabili. Essi inoltre gestiscono i database nei quali i crediti di carbonio vengono creati e possono essere trasferiti o consumati (ritirati). + +C'è una nuova ondata di progetti innovativi costruiti su blockchain che stanno tentando di fermare gli operatori storici del settore. + +2. I carbon bridge, noti anche come tokenizzatori, forniscono una tecnologia per rappresentare o trasferire i crediti di carbonio dai registri tradizionali al DCM. Esempi noti includono il [Protocollo Toucan](https://toucan.earth/), [C3](https://c3.app/) e [Moss.Earth](https://moss.earth/). +3. I servizi integrati offrono agli utenti finali crediti per evitare e/o rimuovere emissioni di carbonio così che possano rivendicare il beneficio ambientale di un credito e condividere con il mondo il loro supporto alla lotta contro il cambiamento climatico. + +Alcuni, come [Klima Infinity](https://www.klimadao.finance/infinity) e [Senken](https://senken.io/), offrono un'ampia varietà di progetti sviluppati da terze parti e distribuiti secondo standard stabiliti come Verra; altri, come [Nori](https://nori.com/), offrono soltanto progetti specifici sviluppati secondo il loro standard di credito di carbonio, che sono loro ad emettere e per i quali hanno un loro mercato dedicato. + +4. I binari e le infrastrutture sottostanti che facilitano l'aumento dell'impatto e dell'efficienza dell'intera catena di approvvigionamento del mercato del carbonio. [KlimaDAO](http://klimadao.finance/) fornisce liquidità come bene pubblico (permettendo a chiunque di comprare o vendere i crediti di carbonio a un prezzo trasparente), incentiva l'aumento del volume dei mercati del carbonio e del ritiro delle ricompense, e fornisce strumenti interoperabili di facile utilizzo per accedere ai dati, nonché per acquisire e ritirare, una grande varietà di crediti di carbonio tokenizzati. + +## La ReFi oltre i mercati del carbonio {#refi-beyond} + +Sebbene al momento ci sia una forte enfasi sui mercati del carbonio in generale e sulla transizione dal VCM al DCM in particolare, il termine "ReFi" non è strettamente limitato al carbonio. Oltre ai crediti di carbonio, possono essere sviluppati e tokenizzati altre risorse ambientali, il che significa che è possibile stabilire il prezzo anche di altre esternalità negative nei livelli di base dei futuri sistemi economici. Inoltre, l'aspetto rigenerativo di questo modello economico può essere applicato ad altri settori, come il finanziamento di beni pubblici attraverso piattaforme di finanziamento quadratico come [Gitcoin](https://gitcoin.co/). Le organizzazioni che si basano sull'idea di una partecipazione aperta e di una distribuzione equa delle risorse consentono a tutti di destinare denaro a progetti di software open-source, nonché a progetti educativi, ambientali e comunitari. + +Spostando la direzione del capitale dalle pratiche estrattive verso un flusso rigenerativo, i progetti e le aziende che forniscono benefici sociali, ambientali o comunitari – e che potrebbero non ottenere finanziamenti con la finanza tradizionale – possono decollare e generare esternalità positive per la società molto più rapidamente e facilmente. Il passaggio a questo modello di finanziamento apre anche le porte a sistemi economici molto più inclusivi, in cui le persone di tutte le fasce demografiche possono diventare partecipanti attivi anziché semplici osservatori passivi. La ReFi offre una visione di Ethereum come meccanismo per coordinare l'azione sulle sfide esistenziali che la nostra specie e tutta la vita sul nostro pianeta devono affrontare, come livello di base di un nuovo paradigma economico, che consenta un futuro più inclusivo e sostenibile per i secoli a venire. + +## Letture di approfondimento sulla ReFi + +- [Una panoramica generale sulle valute di carbonio e sul loro ruolo nell'economia](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) +- [Il ministero per il futuro, un romanzo che illustra il ruolo di una moneta basata sul carbonio nella lotta al cambiamento climatico](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) +- [Un rapporto dettagliato della Taskforce per ridimensionamento dei mercati volontari del carbonio](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) +- [La voce del glossario CoinMarketCap di Kevin Owocki e Evan Miyazono sulla ReFi](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/it/roadmap/account-abstraction/index.md b/public/content/translations/it/roadmap/account-abstraction/index.md similarity index 100% rename from src/content/translations/it/roadmap/account-abstraction/index.md rename to public/content/translations/it/roadmap/account-abstraction/index.md diff --git a/public/content/translations/it/roadmap/beacon-chain/index.md b/public/content/translations/it/roadmap/beacon-chain/index.md new file mode 100644 index 00000000000..0ea7f8bdd85 --- /dev/null +++ b/public/content/translations/it/roadmap/beacon-chain/index.md @@ -0,0 +1,75 @@ +--- +title: La Beacon Chain +description: Informati rigurado alla Beacon Chain - l'aggiornamento che ha introdotto la prova-di-interesse Ethereum. +lang: it +template: upgrade +image: /upgrades/core.png +alt: +summaryPoint1: La Beacon Chain ha introdotto il proof-of-stake nell'ecosistema Ethereum. +summaryPoint2: È stata fusa con la catena di proof-of-work originale di Ethereum nel settembre 2022. +summaryPoint3: La Beacon Chain ha introdotto la logica del consenso e il protocollo di gossip del blocco, che ora protegge Ethereum. +--- + + + 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'è la Beacon Chain? {#what-is-the-beacon-chain} + +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 fa la beacon chain? {#what-does-the-beacon-chain-do} + +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. + +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. + +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. + + +### Prepararsi allo sharding {#setting-up-for-sharding} + +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. + +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 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. + +[Maggiori informazioni sullo sharding](/roadmap/danksharding/) + +## Relazione tra gli aggiornamenti {#relationship-between-upgrades} + +Gli aggiornamenti di Ethereum sono tutti in qualche modo interconnessi. Quindi ricapitoliamo per vedere come la beacon chain incide sugli altri aggiornamenti. + +### Beacon Chain e La Fusione {#merge-and-beacon-chain} + +Inizialmente la Beacon Chain esisteva separatamente dalla Rete principale di Ethereum, ma le due sono state fuse nel 2022. + + + La fusione + + +### 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. + + + Shard chain + + +## Letture consigliate + +- [Maggiori informazioni sugli aggiornamenti futuri di Ethereum](/roadmap/vision) +- [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/public/content/translations/it/roadmap/danksharding/index.md similarity index 100% rename from src/content/translations/it/roadmap/danksharding/index.md rename to public/content/translations/it/roadmap/danksharding/index.md diff --git a/public/content/translations/it/roadmap/future-proofing/index.md b/public/content/translations/it/roadmap/future-proofing/index.md new file mode 100644 index 00000000000..33166d6361f --- /dev/null +++ b/public/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: /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/public/content/translations/it/roadmap/index.md b/public/content/translations/it/roadmap/index.md new file mode 100644 index 00000000000..b427fd00185 --- /dev/null +++ b/public/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: /roadmap/roadmap-main.png +alt: "Roadmap di Ethereum" +summaryPoints: +buttons: + - label: Ulteriori aggiornamenti + toId: what-changes-are-coming + - label: Aggiornamenti precedenti + to: /history/ + variant: delineazione +--- + +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/public/content/translations/it/roadmap/merge/index.md b/public/content/translations/it/roadmap/merge/index.md new file mode 100644 index 00000000000..5be27bd18c7 --- /dev/null +++ b/public/content/translations/it/roadmap/merge/index.md @@ -0,0 +1,229 @@ +--- +title: La Fusione +description: "Scopri La Fusione: quando la Rete principale di Ethereum ha adottato il Poof of stake." +lang: it +template: upgrade +image: /upgrades/merge.png +alt: +summaryPoint1: La Rete Principale di Ethereum usa il proof-of-stake, ma non è sempre stato così. +summaryPoint2: L'aggiornamento dal meccanismo originale di proof-of-work al proof-of-stake è stato chiamato La Fusione. +summaryPoint3: La Fusione si riferisce alla fusione della Rete Principale originale di Ethereum con una blockchain di proof-of-stake separata, detta Beacon Chain, ora esistenti come un'unica catena. +summaryPoint4: La Fusione ha ridotto il consumo energetico di Ethereum di circa il 99,95%. +--- + + + La Fusione è avvenuta il 15 settembre 2022. Ciò ha portato a termine la transizione di Ethereum al consenso di proof-of-stake, deprecando ufficialmente il proof-of-work e riducendo il consumo energetico di circa il 99,95%. + + +## In cosa ha consistito la Fusione? {#what-is-the-merge} + +La Fusione è stata l'unione del livello di esecuzione originale di Ethereum (la Rete principale che esisteva dalla [genesi](/history/#frontier)) con il suo nuovo livello di consenso di Proof of stake, la Beacon Chain. Ha eliminato la necessità di grandi quantità di energia richieste dal processo di mining, consentendo invece di proteggere la rete utilizzando l'ETH in staking. È stato un passo davvero emozionante nel realizzare la visione di Ethereum: maggiori scalabilità, sicurezza e sostenibilità. + + + +Inizialmente, la [Beacon Chain](/roadmap/beacon-chain/) veniva inviata separatamente dalla [Rete principale](/glossary/#mainnet). La Rete Principale di Ethereum, con tutti i suoi conti, saldi, contratti intelligenti e stati della blockchain, ha continuato a essere protetta dal [proof-of-work](/developers/docs/consensus-mechanisms/pow/), anche mentre la Beacon Chain veniva eseguita in parallelo, utilizzando il [proof-of-stake](/developers/docs/consensus-mechanisms/pos/). La Fusione si è verificata quando, finalmente, questi due sistemi si sono uniti e il Poof of Work è stata permanentemente sostituita dal Proof of stake. + +Immagina Ethereum come una nave lanciata prima di essere pronta per un viaggio interstellare. Con la Beacon Chain, la community ha costruito un nuovo motore e uno scafo più resistente. Dopo test significativi, è arrivato il momento di scambiare il vecchio motore con quello nuovo durante il volo. Questo ha aggiunto il nuovo e più efficiente motore nella nave esistente, consentendole di percorrere diversi anni luce e conquistare l'universo. + +## La fusione con la rete principale {#merging-with-mainnet} + +La Proof of Work ha protetto la Rete rrincipale di Ethereum dalla genesi alla Fusione. Questo ha consentito alla blockchain di Ethereum a cui siamo tutti abituati di venire alla luce, a luglio 2015, con tutte le sue funzionalità familiari: transazioni, contratti intelligenti, conti, etc. + +Nella storia di Ethereum, gli sviluppatori si sono preparati per un'eventuale transizione dal Proof of Work al Proof of stake. Il 1° dicembre 2020, la Beacon Chain è stata creata come una blockchain separata dalla Rete principale, eseguita in parallelo. + +Originariamente la Beacon Chain non elaborava le transazioni della Rete principale. Invece, stava raggiungendo il consenso sul proprio stato, concordando sui validatori attivi e i saldi dei loro conti. Dopo numerose prove, è giunto il momento che la Beacon Chain raggiunga il consenso sui dati del mondo reale. Dopo La Fusione, la Beacon Chain è divenuta il motore di consenso per tutti i dati della rete, incluse le transazioni del livello d'esecuzione e i saldi dei conti. + +La Fusione ha rappresentato il passaggio ufficiale all'uso della Beacon Chain come il motore della produzione del blocco. Il mining non è più il mezzo di produzione di blocchi validi. Invece, i validatori del Proof of stake hanno adottato questo ruolo e sono ora responsabili dell'elaborazione della validità di tutte le transazioni e della proposta dei blocchi. + +Con La Fusione, la cronologia non è andata perduta. Quando la Rete principale si è fusa con la Beacon Chain, ha unito anche l'intera cronologia delle transazioni di Ethereum. + + +Questa transizione al Proof of stake ha cambiato il metodo di emissione dell'ether. Scopri di più sull'emissione di ether prima e dopo La Fusione. + + +### Utenti e detentori {#users-holders} + +**La Fusione non ha modificato nulla per i detentori/utenti.** + +_Vale la pena ripeterlo_: Come utente o detentore di ETH o di qualsiasi altra risorsa digitale su Ethereum, nonché come staker non operatore di nodo, **non devi fare nulla coi tuoi fondi o il tuo portafoglio per approcciare La Fusione.** Gli ETH sono sempre ETH. Non esiste nulla del tipo "vecchi ETH"/"nuovi ETH" o "ETH1"/"ETH2" e i portafogli funzioneranno esattamente allo stesso modo dopo La Fusione. Le persone che dicono altro sono probabilmente truffatori. + +Nonostante il passaggio dal Proof of Work, l'intera cronologia di Ethereum dalla genesi è rimasta intatta e inalterata dalla transizione al Proof of stake. Qualsiasi fondo detenuto nel tuo portafoglio prima della Fusione è ancora accessibile dopo di essa. **Non è richiesta alcuna azione di aggiornamento da parte tua.** + +[Maggiori informazioni sulla sicurezza di Ethereum](/security/#eth2-token-scam) + +### Operatori di nodi e sviluppatori di dapp {#node-operators-dapp-developers} + + + +Gli elementi dell'azione chiave includono: + +1. Esegui _sia_ un client di consenso che uno di esecuzione; gli endpoint di terze parti per ottenere i dati di esecuzione non funzioneranno successivamente alla Fusione. +2. Autentica sia il client di esecuzione che quello di consenso con un segreto JWT condiviso, così che tu possa comunicare in sicurezza. +3. Imposta un indirizzo `fee recipient` per ricevere le mance/MEV di commissioni su transazioni che hai guadagnato. + +Non completare i primi due elementi farà sì che il tuo nodo risulti "offline" finché entrambi i livelli non saranno sincronizzati e autenticati. + +Non impostare un `fee recipient` consentirà comunque al tuo validatore di comportarsi come al solito, ma perderai le mance e qualsiasi MEV di commissioni non bruciate che avresti altrimenti ottenuto nei blocchi proposti dal tuo validatore. + + + + +Fino a La Fusione, un client di esecuzione (come Geth, Erigon, Besu o Nethermind) era sufficiente per ricevere, convalidare correttamente e propagare i blocchi oggetto di gossip dalla rete. _Dopo La Fusione_, la validità delle transazioni contenute in un payload di esecuzione dipende ora dalla validità del "blocco di consenso" in cui sono contenute. + +Di conseguenza, un nodo completo di Ethereum richiede ora sia un client di esecuzione che uno di consenso. Questi due client collaborano usando una nuova API Engine. L'API Engine richiede l'autenticazione usando un segreto JWT, fornito a entrambi i client, che consente la comunicazione sicura. + +Gli elementi d'azione chiave includono: + +- Installare un client di consenso oltre a un client di esecuzione +- Autenticare i client di esecuzione e di consenso con un segreto JWT condiviso, così che possano comunicare in sicurezza tra loro. + +Non completare i suddetti elementi farà sì che il tuo nodo risulti "offline", finché entrambi i livelli non saranno sincronizzati e autenticati. + + + + + +La Fusione è stata accompagnata da modifiche al consenso, incluse anche modifiche relative a:< + +
    +
  • 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. + +
+ +## La Fusione e il consumo energetico {#merge-and-energy} + +Questa fase ha segnato la fine del Proof of Work per Ethereum e l'inizio di una rete Ethereum più sostenibile ed ecologica. Il consumo energetico di Ethereum si è ridotto di una stima del 99,95%, rendendo Ethereum una blockchain ecosostenibile. Scopri di più sul [consumo energetico di Ethereum](/energy-consumption/). + +## La Fusione e il ridimensionamento {#merge-and-scaling} + +La Fusione ha inoltre gettato le basi per ulteriori aggiornamenti di scalabilità, impossibili sotto il Poof of Work, portando Ethereum un po' più vicina al raggiungimento della completa scalabilità, sicurezza e sostenibilità delinate nella [visione di Ethereum](/roadmap/vision/). + +## Equivoci su La Fusione {#misconceptions} + + + +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); 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 gestire il proprio nodo è assolutamente essenziale per mantenere la decentralizzazione della rete di Ethereum. + +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 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. + + + + +La "velocità" di una transazione è misurabile in diversi modi, incluso il tempo di inclusione in un blocco e il tempo alla finalizzazione. Entrambi cambiano lievemente, ma non in modo apprezzabile dagli utenti. + +Storicamente, con il Poof of Work, l'obiettivo era avere un nuovo blocco ogni 13,3 secondi circa. Con il Poof of stake, gli slot si verificano precisamente ogni 12 secondi, e ciascuno rappresenta un'opportunità per un validatore di pubblicare un blocco. Gran parte degli slot contiene blocchi, ma non necessariamente tutti (cioè un validatore è offline). Nel Proof of stake, i blocchi sono prodotti a una frequenza del 10% circa maggiore che nel Proof of Work. Questo è stato un cambiamento abbastanza irrilevante ed è improbabile che sia notato dagli utenti. + +La Proof of stake ha introdotto il concetto di finalità della transazione che, precedentemente, non esisteva. Nel Proof of Work, la capacità di annullare un blocco diventa esponenzialmente più difficile all'aumentare dei blocchi minati su una transazione, ma non raggiunge mai lo zero. In modalità Proof of stake, i blocchi sono raggruppati in epoche (intervalli di 6,4 minuti contenenti 32 possibili blocchi), su cui votano i validatori. Quando termina un'epoca, i validatori votano se considerare l'epoca 'giustificata'. Se i validatori acconsentono a giustificare l'epoca, questa viene finalizzata nell'epoca successiva. Annullare le transazioni finalizzate è economicamente non redditizio, in quanto richiederebbe di ottenere e bruciare oltre un terzo dell'ETH in staking totale. + + + + + +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. + +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 + + + + +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. + +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, 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} + +Il termine 'Eth2' è stato superato. Dopo aver fuso 'Eth1' ed 'Eth2' in una singola catena, non vi è più alcun bisogno di distinguere tra le due reti di Ethereum; esiste solo Ethereum. + +Per limitare la confusione, la community ha aggiornato questi termini: + +- 'Eth1' è ora il 'livello di esecuzione' che gestisce le transazioni e l'esecuzione. +- 'Eth2' è ora il 'livello di consenso', che gestisce il consenso di Proof of stake. + +Questi aggiornamenti della terminologia cambiano solo le convenzioni di nomenclatura, senza alterare gli obiettivi né la tabella di marcia di Ethereum. + +[Scopri di più sulla rinominazione di 'Eth2'](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) + +## Relazione tra gli aggiornamenti {#relationship-between-upgrades} + +Gli aggiornamenti di Ethereum sono tutti in qualche modo interconnessi. Quindi, ricapitoliamo di come la Fusione si collega agli altri aggiornamenti. + +### La Fusione e la Beacon Chain {#merge-and-beacon-chain} + +La Fusione rappresenta l'adozione formale della Beacon Chain come nuovo livello di consenso al livello di esecuzione originale della Rete principale. A partire dalla Fusione, i validatori sono assegnati alla Rete principale sicura di Ethereum e il mining su [Proof of Work](/developers/docs/consensus-mechanisms/pow/) non è più un mezzo valido di produzione di blocchi. + +I blocchi sono invece proposti dai nodi di convalida, che ottengono ETH in staking in cambio del diritto di partecipare al consenso. Questi aggiornamenti stabiliscono le basi per gli aggiornamenti di scalabilità futuri, incluso lo sharding. + + + La beacon chain + + +### 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. Questa funzionalità è stata abilitata separatamente, con l'aggiornamento di Shanghai/Capella. + +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} + +Originariamente, il piano prevedeva di lavorare allo sharding prima della Fusione per risolvere la questione della scalabilità. Tuttavia, con il boom delle [soluzioni di ridimensionamento del livello 2](/layer-2/), la priorità si è spostata sul passaggio dal Proof of Work al Proof of stake. + +I piani per lo sharding si stanno evolvendo rapidamente, ma data la nascita e il successo delle tecnologie di livello 2 per scalare l'esecuzione delle transazioni, i piani per lo sharding hanno spostato l'attenzione sul trovare il modo ottimale per distribuire il carico per memorizzare i dati di chiamata compressi dai contratti di rollup, consentendo la crescita esponenziale della capacità di rete. Questo sarebbe impossibile senza prima passare al Proof of stake. + + + Sharding + + +## Letture consigliate {#further-reading} + + + + diff --git a/src/content/translations/it/roadmap/merge/issuance/index.md b/public/content/translations/it/roadmap/merge/issuance/index.md similarity index 100% rename from src/content/translations/it/roadmap/merge/issuance/index.md rename to public/content/translations/it/roadmap/merge/issuance/index.md diff --git a/src/content/translations/it/roadmap/pbs/index.md b/public/content/translations/it/roadmap/pbs/index.md similarity index 100% rename from src/content/translations/it/roadmap/pbs/index.md rename to public/content/translations/it/roadmap/pbs/index.md diff --git a/public/content/translations/it/roadmap/scaling/index.md b/public/content/translations/it/roadmap/scaling/index.md new file mode 100644 index 00000000000..a602134b428 --- /dev/null +++ b/public/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: /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/public/content/translations/it/roadmap/secret-leader-election/index.md similarity index 100% rename from src/content/translations/it/roadmap/secret-leader-election/index.md rename to public/content/translations/it/roadmap/secret-leader-election/index.md diff --git a/public/content/translations/it/roadmap/security/index.md b/public/content/translations/it/roadmap/security/index.md new file mode 100644 index 00000000000..dec2f0671da --- /dev/null +++ b/public/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: /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/public/content/translations/it/roadmap/single-slot-finality/index.md similarity index 100% rename from src/content/translations/it/roadmap/single-slot-finality/index.md rename to public/content/translations/it/roadmap/single-slot-finality/index.md diff --git a/src/content/translations/it/roadmap/statelessness/index.md b/public/content/translations/it/roadmap/statelessness/index.md similarity index 100% rename from src/content/translations/it/roadmap/statelessness/index.md rename to public/content/translations/it/roadmap/statelessness/index.md diff --git a/public/content/translations/it/roadmap/user-experience/index.md b/public/content/translations/it/roadmap/user-experience/index.md new file mode 100644 index 00000000000..0065b64af59 --- /dev/null +++ b/public/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: /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 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 è una 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/public/content/translations/it/roadmap/verkle-trees/index.md similarity index 100% rename from src/content/translations/it/roadmap/verkle-trees/index.md rename to public/content/translations/it/roadmap/verkle-trees/index.md diff --git a/src/content/translations/it/security/index.md b/public/content/translations/it/security/index.md similarity index 100% rename from src/content/translations/it/security/index.md rename to public/content/translations/it/security/index.md diff --git a/public/content/translations/it/smart-contracts/index.md b/public/content/translations/it/smart-contracts/index.md new file mode 100644 index 00000000000..c5e0378b98b --- /dev/null +++ b/public/content/translations/it/smart-contracts/index.md @@ -0,0 +1,84 @@ +--- +title: Contratti intelligenti +description: Un'introduzione semplificata ai contratti intelligenti +lang: it +--- + +# Introduzione ai contratti intelligenti {#introduction-to-smart-contracts} + +I contratti intelligenti sono gli elementi fondamentali che costituiscono il livello di applicazione di Ethereum. Si tratta di programmi informatici memorizzati sulla blockchain che seguono la logica "se questo, allora quello" ed è garantito che vengano eseguiti secondo le regole definite dal loro codice, che non può essere modificato una volta creato. + +Nick Szabo ha coniato il termine "smart contract" (contratto intelligente). Nel 1994 ha scritto [un'introduzione al concetto](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html) e, nel 1996, [un'esplorazione di ciò che i contratti intelligenti potrebbero fare](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). + +Szabo immaginava un marketplace digitale in cui processi automatici e crittograficamente sicuri consentissero di effettuare transazioni e funzioni commerciali senza intermediari fidati. I contratti intelligenti su Ethereum hanno messo in pratica questa visione. + +## La fiducia nei contratti tradizionali {#trust-and-contracts} + +Uno dei più grandi problemi di un contratto tradizionale è la necessità di persone fidate che portino a termine i risultati del contratto. + +Ecco un esempio: + +Alice e Bob stanno facendo una gara in bici. Diciamo che Alice scommette con Bob €10 che vincerà lei la gara. Bob è sicuro che sarà lui il vincitore, e accetta la scommessa. Alla fine, Alice finisce la gara prima di Bob ed è la vincitrice indiscussa. Ma Bob si rifiuta di pagare la scommessa, sostenendo che Alice abbia barato. + +Questo sciocco esempio illustra il problema di qualsiasi accordo “non intelligente”. Anche se le condizioni dell'accordo sono soddisfatte (quindi, hai vinto la gara), devi comunque fidarti del fatto che un'altra persona tenga fede all'accordo (ossia, pagare la scommessa). + +## Un distributore automatico digitale {#vending-machine} + +Una semplice metafora per un contratto intelligente è un distributore automatico, che funziona in modo simile a un contratto intelligente: degli input specifici garantiscono degli output predeterminati. + +- Selezioni un prodotto +- Il distributore automatico mostra il prezzo +- Tu paghi il prezzo +- Il distributore automatico verifica che tu abbia pago l'importo corretto +- Il distributore automatico ti dà il tuo articolo + +Il distributore automatico eroga il prodotto desiderato solo se sono soddisfatti tutti i requisiti. Se non selezioni un prodotto o non inserisci abbastanza denaro, il distributore automatico non ti darà il prodotto. + +## Esecuzione automatica {#automation} + +Il vantaggio principale di un contratto intelligente è che esegue in modo deterministico un codice non ambiguo quando vengono soddisfatte determinate condizioni. Non è necessario attendere che una persona interpreti o negozi il risultato. In questo modo si elimina la necessità di intermediari fidati. + +Ad esempio, potresti scrivere un contratto intelligente che detiene i fondi in custodia per un bambino, consentendogli di ritirarli dopo una data specifica. Se questi prova a prelevare i fondi prima della data specificata, il contratto intelligente non sarà eseguito. Oppure, potresti scrivere un contratto che ti consegni automaticamente una versione digitale del certificato di proprietà di un auto, al pagamento del concessionario. + +## Risultati prevedibili {#predictability} + +I contratti tradizionali sono ambigui perché si affidano all'uomo per interpretarli e attuarli. Ad esempio, due giudici potrebbero interpretare un contratto in modo diverso, il che potrebbe portare a decisioni discordanti e a risultati iniqui. I contratti intelligenti eliminano questa possibilità. Al contrario, i contratti intelligenti si eseguono precisamente secondo le condizioni scritte nel codice del contratto. Questa precisione fa sì che, date le stesse circostanze, il contratto intelligente produrrà lo stesso risultato. + +## Registro pubblico {#public-record} + +I contratti intelligenti sono utili per le verifiche e il monitoraggio. Poiché i contratti intelligenti di Ethereum si trovano su una blockchain pubblica, chiunque può monitorare istantaneamente i trasferimenti di risorse e altre informazioni correlate. Ad esempio, è possibile verificare se qualcuno ha inviato denaro al proprio indirizzo. + +## Protezione della privacy {#privacy-protection} + +I contratti intelligenti, inoltre, proteggono la tua privacy. Poiché Ethereum è una rete pseudonima (le tue transazioni sono pubblicamente legate a un indirizzo crittografico univoco, non alla tua identità), puoi proteggere la tua privacy dagli osservatori. + +## Termini visibili {#visible-terms} + +Infine, come per i contratti tradizionali, è possibile verificare il contenuto di un contratto intelligente prima di firmarlo (o d'interagire con esso in altro modo). La trasparenza di un contratto intelligente garantisce che chiunque possa esaminarlo. + +## Casi d'uso dei contratti intelligenti {#use-cases} + +I contratti intelligenti possono fare essenzialmente tutto ciò che possono fare i programmi informatici. + +Possono eseguire calcoli, creare valuta, memorizzare dati, coniare NFT, inviare comunicazioni e persino generare immagini. Ecco alcuni esempi popolari dal mondo reale: + +- [Stablecoin](/stablecoins/) +- [Creare e distribuire risorse digitali uniche](/nft/) +- [Una piattaforma di cambio di valute automatica e aperta](/get-eth/#dex) +- [Giochi decentralizzati](/dapps/?category=gaming) +- [Una polizza assicurativa che paga automaticamente](https://etherisc.com/) +- [Uno standard che consente la creazione di valute personalizzate e interoperabili](/developers/docs/standards/tokens/) + +## Preferisci un approccio visivo all'apprendimento? {#visual-learner} + +Guarda la spiegazione di Finematics sui contratti intelligenti: + + + +## Letture consigliate {#further-reading} + +- [In che modo i contratti intelligenti cambieranno il mondo](https://www.youtube.com/watch?v=pA6CGuXEKtQ) +- [Contratti Intelligenti: La Tecnologia della Blockchain Che Sostituirà gli Avvocati](https://blockgeeks.com/guides/smart-contracts/) +- [Contratti intelligenti per sviluppatori](/developers/docs/smart-contracts/) +- [Impara a scrivere i contratti intelligenti](/developers/learning-tools/) +- [Padroneggiare Ethereum: Cos'è un Contratto Intelligente?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/it/social-networks/index.md b/public/content/translations/it/social-networks/index.md new file mode 100644 index 00000000000..55fcc95a1aa --- /dev/null +++ b/public/content/translations/it/social-networks/index.md @@ -0,0 +1,121 @@ +--- +title: Social network decentralizzati +description: Una panoramica dei social decentralizzati su Ethereum +lang: it +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: /ethereum-learn.png +summaryPoint1: Piattaforme basate sulla blockchain per l'interazione sociale e la creazione e distribuzione di contenuti. +summaryPoint2: I social network decentralizzati proteggono l'anonimato degli utenti e migliorano la sicurezza dei dati. +summaryPoint3: Token e NFT creano nuovi modi per monetizzare i contenuti. +--- + +I social network rivestono un enorme ruolo nelle comunicazioni e interazioni quotidiane. Tuttavia, il loro controllo centralizzato ha creato numerosi problemi: fughe di dati, guasti dei server, de-platforming, censura e violazioni della privacy, sono solo alcuni dei compromessi intrapresi dai social. Per combattere tali problemi, gli sviluppatori stanno creando dei sociial network su Ethereum. I social decentralizzati possono risolvere molti dei problemi delle piattaforme tradizionali, migliorando l'esperienza complessiva degli utenti. + +## Cosa sono i social network decentralizzati? {#what-are-decentralized-social-networks} + +I social network decentralizzati sono piattaforme basate sulla blockchain che consentono agli utenti ddi scambiare informazioni, nonché di pubblicare e distribuire contenuti al pubblico. Poiché sono operate sulla blockchain, queste applicazioni possono essere decentralizzate e resistere alla censura, nonché al controllo indebito. + +Esistono molti social network decentralizzati alternativi ai servizi affermati, come Facebook, Linkedin, Twitter e Medium. Ma i social basati sulla blockchain presentano numerose funziionalità che li fanno preferire alle piattaforme tradizionali. + +### Come funzionano i social network decentralizzati? {#decentralized-social-networks-overview} + +I social network decentralizzati sono una classe di [applicazioni decentralizzate (dapp)](/dapps/): applicazioni basate su [contratti intelligenti](/developers/docs/smart-contracts/), e distribuite sulla blockchain. Il codice del contratto serve da interfaccia per tali app, definendone la logica aziendale. + +Le piattaforme social tradizionali si affidano ai database per memorzzare le informazioni degli utenti, il codice del programma e altre forme di dati. Ma ciò genera singoli punti di guasto, introducendo rischi significativi. Ad esempio, i server di Facebook sono tristemente [andati offline per ore](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact), l'anno scorso, impedendo agli utenti di acceddere alla piattaforma. + +I social network decentralizzati esistono su una rete tra pari, che comprende migliaia di nodi in tutto il mondo. Anche se alcuni nodi si guastano, la rete continuerà a funzionare, rendendo le applicazioni resistenti a guasti e malfunzionamenti. + +Utilizzando sistemi di archiviazione decentralizzata, come [il Sistema di File Interplanetari (IPFS)](https://ipfs.io/), i social basati su Ethereum possono proteggere le informazioni degli utenti da exploit e utilizzi malevoli. Nessuno venderà le tue informazioni personali agli inserzionisti, né gli hacker potranno rubare i tuoi dati riservati. + +Molte piattaforme social basate sulla blockchain includono dei token nativi, che alimentano la monetizzazione, in assenza di entrate pubblicitarie. Gli utenti possono acquistare tali token per accedere a certe funzionalità, completare acquisti in app o donare ai propri creatori di contenuti preferiti. + +## Benefici dei social network decentralizzati {#benefits} + +1. I social network decentralizzati sono resistenti alla censura e aperti a tutti. Ciò significa che gli utenti non possono essere bannati, cacciati o limitati arbitrariamente. + +2. I social network decentralizzati si basano su ideali open source e rendono disponibile il codice sorgente delle applicazioni, per l'ispezione pubblica. Eliminando l'implementazione di algoritmi opachi comuni nei social tradizionali, quelli basati sulla blockchain possono allinearsi agli interessi degli utenti e creatori della piattaforma. + +3. I social network ddecentralizzati eliminano l'intermediario. I creatori di contenuti hanno la proprietà diretta dei propri contenuti, impegnandosi direttamente con seguaci, fan, acquirenti e altre parti, con soltanto un contratto intelligente a separarli. + +4. Essendo dapp operate sulla rete di Ethereum, sostenuta da una rete di noti tra pari e globale, i social network decentralizzati sono meno suscettibili a inattività e malfunzionamenti dei server. + +5. Le piattaforme social offrono un quadro di monetizzazione migliorato per i creatori di contenuti, tramite token non fungibili (NFT), pagamenti in criptovalute integrati, e molto altro. + +6. I social decentralizzati permettono agli utenti livelli di privacy e anonimato elevati. Ad esempio, una persona può acceere a un social basato su Ethereum utilizzando un profilo ENS o un portafoglio, senza dover condividere informazioni personalmente identificabili (PII), quali nomi, indirizzi email, etc. + +7. I social decentralizzati si affidano all'archiviazione decentralizzata, non a database centralizzati, considderevolmente migliori per la salvaguardia dei dati degli utenti. + +## Social network decentralizzati su Ethereum {#ethereum-social-networks} + +La rete di Ethereum è diventata lo strumento preferito dagli sviluppatori, per la creazione di social decentralizzati, grazie alla popolarità dei suoi token (ERC-20/ERC-721), e la sua enorme base di utenza. Ecco alcuni esempi di social network basati su Ethereum: + +### Peepeth {#peepeth} + +[Peepeth](https://peepeth.com/) è una piattaforma di microblogging simile a Twitter. Opera sulla blockchain di Ethereum e utilizza IPFS per memorizzare i dati degli utenti. + +Gli utenti possono inviare brevi messaggi, detti "Peeps", che non possono essere eliminati o modificati. Puoi ricevere o dare mance sulla piattaforma in ether (ETH), senza abbandonare l'app. + +### Mirror {#mirror} + +[Mirror](https://mirror.xyz/) è una piattaforma di scrittura abilitata per Web3, che mira e essere decentralizzata e posseduta dagli utenti. Gli utenti possono leggere e scrivere liberamente su Mirror, semplicemente connettendo i propri portafogli. Inolte, gli utenti possono scrivere in gruppo e iscriversi ai propri scrittori preferiti. + +I post pubblicati su Mirror sono memorizzati permanentemente su Arweave, una piattaforma d'archiviazione decentralizzata, e possono essere coniati come [token non fungibili (NFT)](/nft/) collezionabili, noti come Writing NFT. I Writing NFT possono esser creati completamente gratis dagli scrittori, mentre la raccolta si verifica sun un L2 di Ethereum, rendendo le transazioni economiche, veloci ed ecosostenibili. + +### MINDS {#minds} + +[MINDS](https://www.minds.com/) è uno dei social decentralizzati più utilizzati. Funziona come Facebook e conta già di milioni di utenti. + +Gli utenti utilizzano il token ERC-20 nativo della piattaforma, $MIND, per pagare gli articoli. Inoltre, gli utenti, possono anche guadagnare token $MIND, pubblicando contenuti popolari, contribuendo all'ecosistema e riferendo altri alla piattaforma. + +## Social network Web2 su Ethereum {#web2-social-networks-and-ethereum} + +Le piattaforme social native del [Web3](/web3/) non sono le sole che stanno tentando di incorporare la tecnologia della blockchain nei social. Anche molte piattaforme centralizzate stanno pianificando di integrare Ethereum nella propria infrastruttura: + +### Reddit {#reddit} + +Reddit ha [pubblicizzato dei Punti della Community](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users): [token ERC-20](/developers/docs/standards/tokens/erc-20/) che gli utenti possono guadagnare, pubblicando contenuti di qualità e contribuendo alle community online (subreddit). Puoi riscattare tali token in una subreddit, per [ottenere privileggi e vantaggi esclusivi](https://www.reddit.com/community-points/). Per questo progetto, Reddit sta collaborando con Arbitrum, un rollup di [livello 2](/layer-2/) progettato per ridimensionare le transazioni di Ethereum. + +Il programma è già attivo: la subreddit r/CryptoCurrency [adopera la propria versione dei Punti della Community, detti "Moons"](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Secondo la descrizione ufficiale, i Moons "ricompensano pubblicatori, commentatori e moderatori, per i loro contributi alla subreddit." Poiché questi token si trovano sulla blockchain (gli utenti li ricevono nei portafogli), sono indipendenti da Reddit e non possono essere rimossi. + +Una volta conclusa la fase beta sulla rete di prova di Rinkeby, i Punti della Community di Reddit sono ora su [Arbitrum Nova](https://nova.arbitrum.io/), una blockchain che combina le proprietà di una [catena secondaria](/developers/docs/scaling/sidechains/) e di un [rollup ottimistico](/developers/docs/scaling/optimistic-rollups/). Oltre a utilizzare i Punti della Community per sbloccare funzionalità speciali, gli utenti possono anche scambiarli per valuta legale, nelle piattaforme di scambio. Inoltre, l'importo di Punti della Community posseduto da un utente, ne determina l'influenza sul processo di presa decisionale, all'interno della community. + +### Twitter {#twitter} + +A gennaio 2021, Twitter Blue [ha lanciato il supporto ai NFT](https://mashable.com/article/twitter-blue-nft-profile-picture), consentendo agli utenti di connettere i propri portafogli e di mostrare NFT come immagini di profilo. Al momento della scrittura, l'azienda che gestisce il social ha anche [annunciato piani](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) per la creazione di un social decentralizzato, in futuro. + +### Instagram {#instagram} + +A maggio 2022, [Instagram ha annunciato il supporto per i NFT](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) su Ethereum e su Polygon. Gli utenti possono pubblicare i NFT direttamente su Instagram, connettendo il proprio portafoglio di Ethereum. + +## Utilizzare i social decentralizzati {#use-decentralized-social-networks} + +- **[Status.im](https://status.im/)**: _Status è un'app di messaggistica sicura che utilizza un protocollo open source e tra pari, nonché la crittografia end-to-end per proteggere i tuoi messaggi dalle terze parti._ +- **[Mirror.xyz](https://mirror.xyz/)**: _Mirror è una piattaforma di pubblicazione decentralizzata e posseduta dagli utenti basata su Ethereum, per il crowdfunding delle idee, la monetizzazione dei contenuti e la creazione di community dal valore elevato._ +- **[Lens Protocol](https://lens.xyz/)**: _Lens Protocol è un grafico sociale componibile e decentralizzato che aiuta i creatori a prendere possesso dei propri contenuti, ovunque vadano nel proprio giardino digitale dell'Intenet decentralizzato._ +- **[Farcaster](https://farcaster.xyz/)**: _Farcaster è un social sufficientemente decentralizzato. È un protocollo aperto che supporta molti client, proprio come l'email._ + +## Lettura consigliate {#further-reading} + +### Articoli {#articles} + +- [Decentralizzare i social: una guida allo stack dei social di Web3](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _Coinbase Ventures_ +- [I social sono la prossima grande opportunità per la decentralizzazione](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) - _Ben Goertzel_ +- [Il Web3 detiene la promessa dei social decentralizzati e sostenuti dalla community](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) - _Sumit Ghosh_ +- [Una panoramica del panorama social della blockchain](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) - _Gemini Cryptopedia_ +- [In che modo la blockchain può risolvere la privacy dei social](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) - _Prableen Bajpai_ +- [I social stanno arrivando sulla blockchain](https://businesstechguides.co/what-are-decentralized-social-networks) - _Emmanuel Awosika_ +- [Decentralizzazione sufficiente per i social](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) - _Varun Srinivasan_ + +### Video {#videos} + +- [Social decentralizzati spiegati](https://www.youtube.com/watch?v=UdT2lpcGvcQ) - _Coinmarketcap_ +- [La blockchain DeSo vuole decentralizzare i social](https://www.youtube.com/watch?v=SG2HUiVp0rE) - _Bloomberg Technology_ +- [Il futuro dei social decentralizzati, con Balaji Srinivasan, Vitalik Buterin e Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) - _ETHGlobal_ + +### Community {#communities} + +- [Server Discord di Status](https://discord.com/invite/3Exux7Y) +- [Server Discord di Mirror](https://discord.com/invite/txuCHcE8wV) +- [Subreddit r/CryptoCurrency](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/it/staking/dvt/index.md b/public/content/translations/it/staking/dvt/index.md similarity index 100% rename from src/content/translations/it/staking/dvt/index.md rename to public/content/translations/it/staking/dvt/index.md diff --git a/public/content/translations/it/staking/pools/index.md b/public/content/translations/it/staking/pools/index.md new file mode 100644 index 00000000000..c984c481e83 --- /dev/null +++ b/public/content/translations/it/staking/pools/index.md @@ -0,0 +1,85 @@ +--- +title: Staking in pool +description: Una panoramica di come iniziare con lo staking in pool di ETH +lang: it +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-pool.png +alt: Leslie il rinoceronte che nuota in piscina. +sidebarDepth: 2 +summaryPoints: + - Metti in stake e guadagna ricompense con qualsiasi importo di ETH unendo le forze con gli altri + - Salta la parte dura e affida l'operazione di validatore a una terza parte + - Possiedi token di staking nel tuo portafoglio +--- + +## Cosa sono i pool di staking? {#what-are-staking-pools} + +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 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} + +Oltre ai vantaggi che abbiamo delineato nella nostra [introduzione allo staking](/staking/), lo staking mediante un pool viene fornito con una serie di vantaggi distinti. + + + + + + + + + +## Cosa considerare {#what-to-consider} + +Lo staking in pool o delegato non è supportato nativamente dal protocollo di Ethereum, ma data la domanda degli utenti di mettere meno di 32 ETH in staking, sono state costruite sempre più soluzioni per soddisfare tale richiesta. + +Ogni pool e gli strumenti o i contratti intelligenti che utilizzano sono stati creati da team differenti e ognuno presenta i propri benefici e rischi. I pool consentono agli utenti di scambiare i propri ETH per un token che rappresenta gli ETH in staking. Il token è utile perché consente agli utenti di scambiare qualsiasi importo di ETH con un importo equivalente di un token fruttifero che genera un rendimento dalle ricompense di staking applicate agli ETH sottostanti (e viceversa) sulle borse decentralizzate, anche se gli ETH veri e propri rimangono in staking sul livello del consenso. Ciò significa che lo scambio da e verso un prodotto di ETH in staking che generi una resa e gli "ETH grezzi" è rapido, facile e non solo disponibile in multipli di 32 ETH. + +Tuttavia, questi token derivanti dagli ETH in staking tendono a creare comportamenti in stile cartello, in cui una grande quantità di ETH in staking finisce sotto il controllo di alcune organizzazioni centralizzate, piuttosto che distribuirsi a molti individui indipendenti. Ciò crea condizioni di censura o di estrazione del valore. Lo standard di riferimento per lo staking dovrebbe sempre prevedere l'esecuzione di validatori da parte di individui, sul proprio hardware, quando possibile. + +[Di più sui rischi dello staking di token](https://notes.ethereum.org/@djrtwo/risks-of-lsd). + +Gli indicatori d'attributo sono usati di seguito per segnalare notevoli punti di forza o debolezze che un pool di staking elencato potrebbe avere. Usa questa sezione come un riferimento per come definire tali attributi mentre stai scegliendo un pool cui unirti. + + + +## Esplora i pool di staking {#explore-staking-pools} + +Esistono una varietà di opzioni disponibili per aiutarti con la tua configurazione. Gli indicatori di cui sopra ti guideranno per gli strumenti seguenti. + + + + + +Sei pregato di notare l'importanza di scegliere un servizio che prenda sul serio la [diversità del client](/developers/docs/nodes-and-clients/client-diversity/), poiché essa migliora la sicurezza della rete e limita i tuoi rischi. I servizi aventi prova della limitazione dell'utilizzo dei client di maggioranza sono indicati con "diversità del client d'esecuzione" e "diversità del client del consenso." + +Hai un suggerimento per uno strumento di staking che abbiamo dimenticato? Dai un'occhiata alla nostra [politica di elenco dei prodotti](/contributing/adding-staking-products/) per verificare l'idoneità e sottoporcelo. + +## Domande frequenti {#faq} + + +Tipicamente, i token di staking ERC-20 sono emessi agli staker che rappresentano il valore dei loro ETH in staking più le ricompense. Tieni a mente che diversi pool distribuiranno ricompense di staking ai loro utenti tramite metodi lievemente differenti, ma questo è il tema comune. + + + +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à. + +In alternativa, i pool che utilizzano un token di staking ERC-20 consentono agli utenti di scambiare questo token sul mercato libero, permettendo di vendere la propria posizione di staking, "prelevando" i propri fondi di fatto senza rimuovere effettivamente ETH dal contratto di staking. + +Di più sui prelievi di staking + + + +Esistono molte somiglianze tra queste opzioni di staking in pool e le borse centralizzate, come la possibilità di mettere in staking piccole quantità di ETH e farle impacchettare insieme per attivare i validatori. + +A differenza delle borse centralizzate, molte altre opzioni di staking in pool utilizzano contratti intelligenti e/o token di staking, che di solito sono token ERC-20 che possono essere conservati nel proprio portafoglio e acquistati o venduti come qualsiasi altro token. Questo offre un livello di sovranità e sicurezza, dandoti il controllo dei tuoi token, ma non ti dà ancora il controllo diretto sul client del validatore che attesta per conto tuo in background. + +Alcune opzioni di pooling sono più decentralizzate di altre quando si tratta di nodi che le sostengono. Per promuovere la salute e la decentralizzazione della rete, gli staker sono sempre incoraggiati a selezionare un servizio di pooling che consenta una serie di operatori del nodo decentralizzati e privi di permessi. + + +## Approfondimenti {#further-reading} + +- [Staking con Rocket Pool - Panoramica sullo Staking](https://docs.rocketpool.net/guides/staking/overview.html) - _RocketPool docs_ +- [Staking di Ethereum con Lido](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Documentazione di supporto di Lido_ diff --git a/public/content/translations/it/staking/saas/index.md b/public/content/translations/it/staking/saas/index.md new file mode 100644 index 00000000000..4261a19e16f --- /dev/null +++ b/public/content/translations/it/staking/saas/index.md @@ -0,0 +1,94 @@ +--- +title: Staking come servizio +description: Una panoramica di come iniziare con lo staking in pool di ETH +lang: it +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-saas.png +alt: Leslie il rinoceronte che fluttua tra le nuvole. +sidebarDepth: 2 +summaryPoints: + - Gli operatori di nodi di terze parti gestiscono l'operazione del tuo client del validatore + - Ottima opzione per chiunque abbia 32 ETH e non si senta a proprio agio nell'affrontare la complessità tecnica dell'esecuzione di un nodo + - Riduce la fiducia e mantiene la custodia delle tue chiavi di prelievo +--- + +## Cos'è lo staking come un servizio? {#what-is-staking-as-a-service} + +Lo staking come un servizio ("SaaS") rappresenta una categoria di servizi di staking in cui depositi i tuoi 32 ETH per un validatore, ma deleghi le operazioni del nodo a un operatore di terze parti. Solitamente questo processo coinvolge la guida alla configurazione iniziale, inclusa la generazione della chiave e il deposito e il successivo caricamento delle tue chiavi di firma all'operatore. Questo consente al servizio di operare il tuo validatore per tuo conto, solitamente per una commissione mensile. + +## Perché mettere in staking con un servizio? {#why-stake-with-a-service} + +Il protocollo di Ethereum non supporta nativamente la delegazione dello staking, quindi questi servizi sono stati creati per soddisfare questa domanda. Se hai 32 ETH da mettere in staking, ma non hai dimestichezza con l'hardware, i servizi di SaaS ti consentono di delegare la parte hardware e ottenere le ricompense del blocco nativo. + + + + + + + + + +## Cosa considerare {#what-to-consider} + +Esiste un numero crescente di fornitori di SaaS per aiutarti a mettere i tuoi ETH in staking, ma tutti hanno i propri vantaggi e rischi. Tutte le opzioni dei SaaS richiedono ipotesi di fiducia aggiuntive rispetto allo staking domestico. Le opzioni di SaaS potrebbero contenere del codice aggiuntivo, avvolto dai client di Ethereum, che non è aperto o verificabile. I SaaS hanno inoltre un effetto negativo sulla decentralizzazione della rete. A seconda della configurazione, potresti non controllare il tuo validatore; l'operatore potrebbe agire in modo disonesto, utilizzando i tuoi ETH. + +Gli indicatori d'attributo sono usati di seguito per segnalare notevoli punti di forza o debolezze che un fornitore di SaaS elencato potrebbe avere. Usa questa sezione come un riferimento per come definiamo questi attributi mentre stai scegliendo un servizio per aiutarti con il tuo percorso di staking. + + + +## Esplora i fornitori del servizio di staking {#saas-providers} + +Di seguito alcuni fornitori di SaaS disponibili. Usa i suddetti indicatori per orientarti tra questi servizi + + + +### Fornitori di SaaS + + + +Ricorda l'importanza di supportare la [diversità del client](/developers/docs/nodes-and-clients/client-diversity/) poiché migliora la sicurezza della rete e limita i tuoi rischi. I servizi aventi prova della limitazione dell'utilizzo dei client di maggioranza sono indicati con "diversità del client d'esecuzione" e "diversità del client del consenso." + +### Generatori di chiavi + + + +Hai un suggerimento per un fornitore di staking come servizio che abbiamo dimenticato? Dai un'occhiata alla nostra [politica di elenco dei prodotti](/contributing/adding-staking-products/) per verificare l'idoneità e sottoporcelo. + +## 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. + + + +Sì. Ogni conto si compone sia di chiavi di firma che di chiavi di prelievo BLS. Affinché un validatore possa attestare allo stato della catena, partecipare ai comitati di sincronizzazione e proporre blocchi, le chiavi di firma devono essere prontamente accessibili dal client di un validatore. Queste devono esser connesse a Internet in qualche modo e sono dunque intrinsecamente considerate chiavi "calde". Questo è un requisito affinché il tuo validatore possa attestare e, dunque, le chiavi usate per trasferire o prelevare i fondi sono separate per motivi di sicurezza. + +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 consentire i prelievi\*. Questo processo comporta la generazione delle chiavi di prelievo, utilizzando la tua frase di seed mnemonica. + +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. + + + +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. + +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. + +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. + + +## Approfondimenti {#further-reading} + +- [Valutare i servizi di Staking](https://www.attestant.io/posts/evaluating-staking-services/) - _Jim McDonald 2020_ diff --git a/public/content/translations/it/staking/solo/index.md b/public/content/translations/it/staking/solo/index.md new file mode 100644 index 00000000000..1f94c64262c --- /dev/null +++ b/public/content/translations/it/staking/solo/index.md @@ -0,0 +1,203 @@ +--- +title: Metti i tuoi ETH in staking in solo +description: Una panoramica di come iniziare a mettere in staking in solo i tuoi ETH +lang: it +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-solo.png +alt: Leslie il rinoceronte sul suo chip informatico. +sidebarDepth: 2 +summaryPoints: + - Ricevi le ricompense massime direttamente dal protocollo per mantenere il tuo validatore propriamente in funzione e online + - Opera hardware domestico e aggiungi personalmente alla sicurezza e decentralizzazione della rete di Ethereum + - Rimuovi la fiducia e non lasciar mai perdere il controllo delle chiavi dei tuoi fondi +--- + +## Cos'è lo staking in solo? {#what-is-solo-staking} + +Lo staking in solo è l'atto di [operare un nodo di Ethereum](/run-a-node/) connesso a Internet e depositare 32 ETH per attivare un [validatore](#faq), dandoti l'abilità di partecipare direttamente nel consenso della rete. + +**Lo staking in solo aumenta la decentralizzazione della rete di Ethereum**, rendendola più resistente alla censura e più robusto contro gli attacchi. Altri metodi di staking potrebbero non aiutare la rete nello stesso modo. Lo staking in solo è la migliore opzione di staking per proteggere Ethereum. + +Un nodo di Ethereum consiste sia nel client del livello di esecuzione (EL), che di un client del livello di consenso (CL). Questi client sono software che cooperano, insieme a una valida serie di chiavi di firma, per verificare le transazioni e i blocchi, attestare al capo corretto della catena, aggregare le attestazioni e proporre i blocchi. + +Gli staker in solo sono responsabili di operare l'hardware necessario a eseguire questi client. Si consiglia vivamente di usare una macchina dedicata per questo, che operi da casa, il che è estremamente vantaggioso per l'integrità della rete. + +Uno staker in solo riceve ricompense direttamente dal protocollo per mantenere il proprio validatore propriamente funzionante e online. + +## Perché mettere in staking in solitaria? {#why-stake-solo} + +Lo staking in solo richiede una maggiore responsabilità, ma fornisce il massimo controllo sui fondi e la configurazione di staking. + + + + + + + +## Considerazioni prima dello staking in solo {#considerations-before-staking-solo} + +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 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. + + Ulteriori informazioni sullo slashing e sul ciclo di vita dei validatori + + + + + +## Come funziona {#how-it-works} + + + +Quando saranno attivi, riceverai le ricompense in ETH, che saranno depositate periodicamente al tuo indirizzo di prelievo. + +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. + +[Di più sulle ricompense di staking](/staking/withdrawals/) + +## Inizia con il Launchpad di Staking {#get-started-on-the-staking-launchpad} + +Il Launchpad di Staking è un'applicazione open source che ti aiuterà a diventare uno staker. Ti guiderà per la scelta dei tuoi client, la generazione delle tue chiavi e il deposito dei tuoi ETH al contratto di deposito di staking. Una lista di controllo è fornita per assicurarsi che tu abbia coperto tutto per configurare in sicurezza il tuo validatore. + + + +## Cosa considerare con il nodo e gli strumenti di configurazione del client {#node-tool-considerations} + +Esistono sempre più strumenti e servizi per aiutarti a mettere i tuoi ETH in staking in solo, ma ognuno presenta diversi rischi e benefici. + +Gli indicatori di attributo sono usati di seguito per segnalare punti di forza e debolezze notevoli che uno strumento di staking elencato potrebbe avere. Usa questa sezione come un riferimento per come definire questi attributi mentre stai scegliendo quali strumenti usare per guidarti per il tuo percorso di staking. + + + +## Esplora gli strumenti del nodo e di configurazione del client {#node-and-client-tools} + +Esistono una varietà di opzioni disponibili per aiutarti con la tua configurazione. Gli indicatori di cui sopra ti guideranno per gli strumenti seguenti. + + + +### Strumenti del nodo + + + +Ricorda l'importanza di scegliere un [client di minoranza](/developers/docs/nodes-and-clients/client-diversity/), poiché migliora la sicurezza della rete e limita i tuoi rischi. Gli strumenti che ti consentono di configurare il client di minoranza sono denotati come "multi-client". + +### Generatori di chiavi + +Questi strumenti sono utilizzabili come un'alternativa alla [CLI di deposito di staking](https://github.com/ethereum/staking-deposit-cli/) per contribuire alla generazione di chiavi. + + + +Hai un suggerimento per uno strumento di staking che abbiamo dimenticato? Dai un'occhiata alla nostra [politica di elenco dei prodotti](/contributing/adding-staking-products/) per verificare l'idoneità e sottoporcelo. + +## Esplora le guide di staking in solo {#staking-guides} + + + +## Domande frequenti {#faq} + +Esistono alcune domande molto comuni sullo staking che meritano di essere affrontate. + + + +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 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. + + + +Andare offline quando la rete sta finalizzando correttamente NON comporterà alcun taglio. Vengono applicate piccole sanzioni di inattività se il tuo validatore non è disponibile ad attestare per una data epoca (ciascuna lunga 6,4 minuti), ma queste sono molto differenti dal taglio. Queste sanzioni sono lievemente inferiori alla ricompensa che avresti ottenuto se il validatore fosse stato disponibile ad attestare e le perdite possono esser riguadagnate approssimativamente nello stesso periodo di tempo online. + +Nota che le sanzioni per inattività sono proporzionali a quanti validatori sono offline contemporaneamente. Nei casi in cui una grande porzione della rete è offline in una volta sola, le sanzioni per ciascuno di questi validatori saranno maggiori rispetto a quando non è disponibile un singolo validatore. + +In casi estremi, se la rete interrompe la finalizzazione poiché più di un terzo dei validatori è offline, questi utenti subiranno quella che è nota come fuga d'inattività quadratica, una riduzione esponenziale di ETH dai conti offline dei validatori. Questo consente alla rete, eventualmente, di auto-curarsi bruciando gli ETH dei validatori inattivi finché il loro saldo non raggiunge i 16 ETH, e a quel punto saranno automaticamente espulsi dal pool del validatore. I validatori online rimanenti alla fine comprenderanno ancora oltre i 2/3 della rete, soddisfacendo la super maggioranza necessaria per finalizzare nuovamente la catena. + + + +In breve, non esiste una garanzia assoluta in questo senso, ma se agisci in buona fede, operi un client di maggioranza e mantieni le tue chiavi di firma solo su una macchina per volta, il rischio di esser tagliato è quasi pari a zero. + +Esistono solo alcuni modi specifici che possono risultare nel taglio e nell'espulsione di un validatore dalla rete. Al momento della scrittura, i tagli che si sono verificati sono stati esclusivamente un prodotto di configurazioni hardware ridondanti in cui le chiavi di firma erano memorizzate contemporaneamente su due macchine separate. Questo può risultare inavvertitamente in un voto doppio dalle tue chiavi, il che è un'infrazione tagliabile. + +Operare un client di super maggioranza (ogni client usato da oltre 2/3 della rete), preclude anch'esso un rischio di taglio potenziale nel caso in cui il client presenti un bug che risulti in una biforcazione della catena. Questo può risultare in una biforcazione difettosa che viene finalizzata. Correggere alla catena intesa richiederebbe l'invio di un voto di contorno, provando ad annullare un blocco finalizzato. Anche questa è un'infrazione tagliabile e può esser evitata semplicemente eseguendo invece un client di minoranza. + +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. + + + + + +I client individuali potrebbero variare lievemente in termini di prestazioni e interfaccia utente, poiché ognuno è sviluppato da team differenti che usano diversi linguaggi di programmazione. Detto ciò, nessuno di essi è il "migliore." Tutti i client di produzione sono eccellenti pezzi di software, che eseguono tutti le stesse funzioni fondamentali per sincronizzarsi e interagire con la blockchain. + +Poiché tutti i client di produzione forniscono la stessa funzionalità di base, è davvero molto importante che tu scelga un client di minoranza, vale a dire qualsiasi client che NON sia attualmente in uso da una maggioranza di validatori sulla rete. Questo potrebbe sembrare controintuitivo, ma operare un client di maggioranza o di super maggioranza espone maggiormente al rischio di tagli nel caso di un bug in quel client. Operare un client di minoranza riduce drasticamente tali rischi. + +Scopri di più sul perché la diversità dei client è fondamentale + + + +Sebbene un server privato virtuale (VPS) possa essere usato come sostitutivo dell'hardware domestico, l'accesso e la posizione fisici del client del validatore sono importanti. Le soluzioni centralizzate su cloud come Amazon Web Services o Digital Ocean offrono la convenienza di non dover ottenere e operare l'hardware, a spese della centralizzazione della rete. + +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. + + + + +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 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. + +Per sbloccare e ricevere il tuo intero saldo, devi inoltre completare il processo di uscita dal tuo validatore. + +Di più sulle ricompense di staking + + +## Approfondimenti {#further-reading} + +- [Problema di diversità dei client di Ethereum](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ +- [Aiutare la diversità dei client](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ +- [La diversità del client sul livello di consenso di Ethereum](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ +- [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_ diff --git a/public/content/translations/it/staking/withdrawals/index.md b/public/content/translations/it/staking/withdrawals/index.md new file mode 100644 index 00000000000..db1697e47f7 --- /dev/null +++ b/public/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: /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. + + + Ogni account validatore è assegnabile esclusivamente a un singolo indirizzo di prelievo, una sola volta. Una volta che un indirizzo è scelto e inviato al livello del consenso, ciò non è annullabile o nuovamente modificabile. 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 inviato al tuo nodo del consenso e non richiede gas. + +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, si muove in una direzione, non salta alcuna 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 account validatore registrati sul livello del consenso, oltre 500.000 a gennaio 2023).

+La lancetta dell'orologio punta al validatore successivo, che dev'essere controllato per verificare la presenza 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 token di staking, dovresti chiedere al tuo fornitore ulteriori dettagli su come vengono gestiti i prelievi dallo 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/content/translations/it/web3/index.md b/public/content/translations/it/web3/index.md similarity index 100% rename from src/content/translations/it/web3/index.md rename to public/content/translations/it/web3/index.md diff --git a/src/content/translations/it/web3/web1.png b/public/content/translations/it/web3/web1.png similarity index 100% rename from src/content/translations/it/web3/web1.png rename to public/content/translations/it/web3/web1.png diff --git a/src/content/translations/it/web3/web2.png b/public/content/translations/it/web3/web2.png similarity index 100% rename from src/content/translations/it/web3/web2.png rename to public/content/translations/it/web3/web2.png diff --git a/src/content/translations/it/web3/web3.png b/public/content/translations/it/web3/web3.png similarity index 100% rename from src/content/translations/it/web3/web3.png rename to public/content/translations/it/web3/web3.png diff --git a/src/content/translations/it/whitepaper/index.md b/public/content/translations/it/whitepaper/index.md similarity index 100% rename from src/content/translations/it/whitepaper/index.md rename to public/content/translations/it/whitepaper/index.md diff --git a/src/content/translations/it/zero-knowledge-proofs/index.md b/public/content/translations/it/zero-knowledge-proofs/index.md similarity index 100% rename from src/content/translations/it/zero-knowledge-proofs/index.md rename to public/content/translations/it/zero-knowledge-proofs/index.md diff --git a/src/content/translations/ja/about/index.md b/public/content/translations/ja/about/index.md similarity index 100% rename from src/content/translations/ja/about/index.md rename to public/content/translations/ja/about/index.md diff --git a/src/content/translations/ja/bridges/index.md b/public/content/translations/ja/bridges/index.md similarity index 100% rename from src/content/translations/ja/bridges/index.md rename to public/content/translations/ja/bridges/index.md diff --git a/src/content/translations/ja/community/events/index.md b/public/content/translations/ja/community/events/index.md similarity index 100% rename from src/content/translations/ja/community/events/index.md rename to public/content/translations/ja/community/events/index.md diff --git a/src/content/translations/ja/community/get-involved/index.md b/public/content/translations/ja/community/get-involved/index.md similarity index 100% rename from src/content/translations/ja/community/get-involved/index.md rename to public/content/translations/ja/community/get-involved/index.md diff --git a/src/content/translations/ja/community/grants/index.md b/public/content/translations/ja/community/grants/index.md similarity index 100% rename from src/content/translations/ja/community/grants/index.md rename to public/content/translations/ja/community/grants/index.md diff --git a/src/content/translations/ja/community/language-resources/index.md b/public/content/translations/ja/community/language-resources/index.md similarity index 100% rename from src/content/translations/ja/community/language-resources/index.md rename to public/content/translations/ja/community/language-resources/index.md diff --git a/src/content/translations/ja/community/online/index.md b/public/content/translations/ja/community/online/index.md similarity index 100% rename from src/content/translations/ja/community/online/index.md rename to public/content/translations/ja/community/online/index.md diff --git a/src/content/translations/ja/community/page-community.json b/public/content/translations/ja/community/page-community.json similarity index 100% rename from src/content/translations/ja/community/page-community.json rename to public/content/translations/ja/community/page-community.json diff --git a/public/content/translations/ja/community/support/index.md b/public/content/translations/ja/community/support/index.md new file mode 100644 index 00000000000..415fdd322d6 --- /dev/null +++ b/public/content/translations/ja/community/support/index.md @@ -0,0 +1,113 @@ +--- +title: イーサリアムサポート +description: イーサリアムエコシステムにおけるサポート +lang: ja +--- + +# イーサリアムサポート {#support} + +## イーサリアムの公式サポート {#official-support} + +イーサリアムの公式サポートをお探しの場合は、まず始めに、 イーサリアムは非集中的な分散型であるということをご理解ください。 イーサリアムは、中央組織、団体、または個人により所有されていないため、公式のサポートチャンネルはありません。 + +「イーサリアムの公式サポート」を称する人物は、詐欺であるおそれがあります。このため、イーサリアムの分散型の性質をご理解ください。 詐欺師から身を守るには、自分自身で学び、セキュリティを真剣に受け止めることが何よりも大切です。 + + + イーサリアムのセキュリティと詐欺対策 + + + + イーサリアムの基礎知識を学ぶ + + +公式サポートはありませんが、イーサリアムエコシステム全体で多くのグループ、コミュニティ、およびプロジェクトからサポートを受けることができます。このページに有用な情報やリソースを記載していますので、ご確認ください。 ご質問やご不明点がある場合は、 [ethereum.org Discord](/discord/)に参加すると、サポートできることがあると思います。 + +## ウォレットサポート {#wallet-support} + +ウォレットのことでお困りの場合は、 ほとんどのウォレットには専門のサポートチームがあり、対応してくれます。 + +- [MetaMask](https://metamask.zendesk.com/hc/) +- [Argent](https://support.argent.xyz/hc/) +- [MyEtherWallet](https://help.myetherwallet.com/) + +_このリストはすべてを網羅するものではありません。 特定のウォレットのサポートを探すのにお困りの場合は、 [ethereum.org Discord](https://discord.gg/ethereum-org)に参加すると、サポートできることがあると思います。_ + +イーサリアムウォレットをお探しの場合は、 [イーサリアムウォレットの全リスト](/wallets/find-wallet/)をご確認ください。 + +## 分散型アプリ(Dapp)の開発 {#building-support} + +開発では問題にぶち当たることもあります。 下記は、経験豊富なイーサリアムデベロッパーがいる、開発に特化したスペースです。 + +- [CryptoDevs discord](https://discord.gg/Z9TA39m8Yu) +- [Ethereum StackExchange](https://ethereum.stackexchange.com/) +- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) +- [Web3 University](https://www.web3.university/) + +また、[イーサリアムデベロッパー向けリソース](/developers/)セクションには、ドキュメントや開発ガイドが掲載されています。 + +### ツール {#dapp-tooling} + +ご質問が特定のツール、プロジェクト、ライブラリに関するものの場合は、 ほとんどのプロジェクトで、サポート専用のチャットサーバやフォーラムが用意されています。 + +下記は人気があるものの例です。 + +- [Solidity](https://gitter.im/ethereum/solidity/) +- [ethers.js](https://discord.gg/6jyGVDK6Jx) +- [web3.js](https://discord.gg/GsABYQu4sC) +- [Hardhat](https://discord.gg/xtrMGhmbfZ) +- [Truffle](https://discord.gg/8uKcsccEYE) +- [Alchemy](http://alchemy.com/discord) + +## ノードの運用 {#node-support} + +ノードを実行している場合やバリデータの方は、下記のコミュニティでサポートを受けることができます。 + +- [EthStaker discord](https://discord.gg/ethstaker) +- [EthStaker reddit](https://www.reddit.com/r/ethstaker) + +イーサリアムクライアントを構築しているチームの大半は、サポートを受けたり質問したりできる専用のパブリックスペースを持っています。 + +### 実行クライアント {#execution-clients} + +- [Geth](https://discord.gg/FqDzupGyYf) +- [Nethermind](https://discord.gg/YJx3pm8z5C) +- [Besu](https://discord.gg/p8djYngzKN) +- [Erigon](https://github.com/ledgerwatch/erigon/issues) + +### コンセンサスクライアント {#consensus-clients} + +- [Prysm](https://discord.gg/prysmaticlabs) +- [Nimbus](https://discord.gg/nSmEH3qgFv) +- [Lighthouse](https://discord.gg/cyAszAh) +- [Teku](https://discord.gg/7hPv2T6) +- [Lodestar](https://discord.gg/aMxzVcr) + +また、[ノードの運用方法についてはこちら](/developers/docs/nodes-and-clients/run-a-node/)をご覧ください。 + +## よくある質問 {#faq} + +### 間違ったウォレットに ETH を誤送信してしまいましたが、どうすれば良いですか? {#wrong-wallet} + +イーサリアムで送信されたトランザクションはもとに戻すことはできません。 間違ったウォレットに ETH を送信してしまった場合、残念ながら、これらの資金を回収する方法はありません。 イーサリアムは、中央組織、団体、個人により所有されていないため、誰もトランザクションを取り消すことができません。 そのため、必ず送信前に細心の注意を払って、ダブルチェックを行ってください。 + +### イーサリアムのプレゼントはどのように請求すれば良いですか? {#giveaway-scam} + +イーサリアムをプレゼントするというものは、ETH を盗もうと企てる詐欺です。 うま過ぎる話しには騙されないでください。プレゼントを受け取ろうと、相手先のアドレスに ETH を送金してしまった場合、プレゼントはもらえず、自分の資金を回収することもできません。 + +[詐欺防止に関する詳細](/security/#common-scams) + +### トランザクションが処理されず、止まってしまっていますがどうすれば良いですか? {#stuck-transaction} + +イーサリアムのトランザクションは、必要とされるよりも低いトランザクションフィーを提示した場合、ネットワークの需要により、トランザクションが保留になってしまうことがあります。 多くのウォレットは、トランザクションが処理されるよう、トランザクションフィーの金額を上げて、同一トランザクションを再送信するオプションがあります。 もしくは、自分のアドレスにトランザクションを送信し、保留中のトランザクションと同じノンス (nonce)を使用することで、保留中のトランザクションをキャンセルすることができます。 + +[MetaMask のトランザクションを高速化またはキャンセルする方法](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) + +[保留中のイーサリアムのトランザクションをキャンセルする方法](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) + +### イーサリアムのマイニング方法を教えてください {#mining-ethereum} + +イーサリアムのマイニングはできなくなりました。 イーサリアムのプルーフ・オブ・ワークからプルーフ・オブ・ステークへの移行に伴い、マイニングは停止されています。 現在は、マイナーの代わりとなるバリデータが活躍しており、 バリデータはネットワークの保護のため ETH をステーキングし、ステーキング報酬を受け取ります。 + +### ステーカー/バリデータになるにはどうすればいいですか? {#become-validator} + +バリデータになるには、イーサリアムのデポジットコントラクトに 32 ETH を投資し、バリデータノードを設定する必要があります。 詳細については、[ステーキングのページ](/staking)と[ステーキングランチパッド](https://launchpad.ethereum.org/)をご覧ください。 diff --git a/src/content/translations/ja/contributing/adding-developer-tools/index.md b/public/content/translations/ja/contributing/adding-developer-tools/index.md similarity index 100% rename from src/content/translations/ja/contributing/adding-developer-tools/index.md rename to public/content/translations/ja/contributing/adding-developer-tools/index.md diff --git a/src/content/translations/ja/contributing/adding-exchanges/index.md b/public/content/translations/ja/contributing/adding-exchanges/index.md similarity index 100% rename from src/content/translations/ja/contributing/adding-exchanges/index.md rename to public/content/translations/ja/contributing/adding-exchanges/index.md diff --git a/src/content/translations/ja/contributing/adding-glossary-terms/index.md b/public/content/translations/ja/contributing/adding-glossary-terms/index.md similarity index 100% rename from src/content/translations/ja/contributing/adding-glossary-terms/index.md rename to public/content/translations/ja/contributing/adding-glossary-terms/index.md diff --git a/src/content/translations/ja/contributing/adding-layer-2s/index.md b/public/content/translations/ja/contributing/adding-layer-2s/index.md similarity index 100% rename from src/content/translations/ja/contributing/adding-layer-2s/index.md rename to public/content/translations/ja/contributing/adding-layer-2s/index.md diff --git a/src/content/translations/ja/contributing/adding-products/index.md b/public/content/translations/ja/contributing/adding-products/index.md similarity index 100% rename from src/content/translations/ja/contributing/adding-products/index.md rename to public/content/translations/ja/contributing/adding-products/index.md diff --git a/src/content/translations/ja/contributing/adding-staking-products/index.md b/public/content/translations/ja/contributing/adding-staking-products/index.md similarity index 100% rename from src/content/translations/ja/contributing/adding-staking-products/index.md rename to public/content/translations/ja/contributing/adding-staking-products/index.md diff --git a/src/content/translations/ja/contributing/content-resources/index.md b/public/content/translations/ja/contributing/content-resources/index.md similarity index 100% rename from src/content/translations/ja/contributing/content-resources/index.md rename to public/content/translations/ja/contributing/content-resources/index.md diff --git a/src/content/translations/ja/contributing/design-principles/index.md b/public/content/translations/ja/contributing/design-principles/index.md similarity index 100% rename from src/content/translations/ja/contributing/design-principles/index.md rename to public/content/translations/ja/contributing/design-principles/index.md diff --git a/src/content/translations/ja/contributing/index.md b/public/content/translations/ja/contributing/index.md similarity index 100% rename from src/content/translations/ja/contributing/index.md rename to public/content/translations/ja/contributing/index.md diff --git a/src/content/translations/ja/contributing/translation-program/faq/index.md b/public/content/translations/ja/contributing/translation-program/faq/index.md similarity index 100% rename from src/content/translations/ja/contributing/translation-program/faq/index.md rename to public/content/translations/ja/contributing/translation-program/faq/index.md diff --git a/src/content/translations/ja/contributing/translation-program/index.md b/public/content/translations/ja/contributing/translation-program/index.md similarity index 100% rename from src/content/translations/ja/contributing/translation-program/index.md rename to public/content/translations/ja/contributing/translation-program/index.md diff --git a/public/content/translations/ja/contributing/translation-program/translators-guide/index.md b/public/content/translations/ja/contributing/translation-program/translators-guide/index.md new file mode 100644 index 00000000000..8adbf26bd58 --- /dev/null +++ b/public/content/translations/ja/contributing/translation-program/translators-guide/index.md @@ -0,0 +1,293 @@ +--- +title: 翻訳者ガイド +lang: ja +description: ethereum.org翻訳者向けの説明とヒント +--- + +# ethereum.org 翻訳スタイルガイド {#style-guide} + +ethereum.org 翻訳スタイルガイドには、翻訳者向けの最も重要なガイドライン、説明、ヒントを記載しています。ウェブサイトのローカライズに役立ててください。 + +本ドキュメントは一般的なガイドであり、特定の言語に固有のものではありません。 + +ご質問やご意見などございましたら、translations@ethereum までお気軽にお問い合わせください。または Crowdin で@ethdotorg にメッセージを送るか、 [Discord](https://discord.gg/ethereum-org)に参加して、#translation チャンネルでメッセージ、またはチームメンバーに直接連絡を取ることも可能です。 + +## Crowdin の使用 {#using-crowdin} + +Crowdin でプロジェクトに参加する方法と Crowdin オンラインエディタの使い方については、 [翻訳プログラムページ](/contributing/translation-program/#how-to-translate)に基本的な事項が紹介されています。 + +Crowdin の詳細とその高度な機能の一部を使用したい場合は、 [Crowdin のナレッジベース](https://support.crowdin.com/online-editor/)に Crowdin のすべての機能の詳細なガイドと概要が記載されています。 + +## メッセージの本質を捉える {#capturing-the-essence} + +ethereum.org コンテンツを翻訳するときは、直訳はしないでください。 + +翻訳がメッセージの本質を捉えていることが重要です。 特定のフレーズを言い換えたり、コンテンツを文字どおりに直訳せずに説明的な翻訳などです。 + +言語によっては、それぞれの異なる文法、規則、単語の順序があります。 翻訳の際は、翻訳文がどのように構成されているかに留意してください。 英語のソースを一語一句、直訳しないでください。文の構成が不自然になったり、読みにくくなることがあります。 + +ソースを直訳するのではなく、 一度文章全体を読んで翻訳する言語の文法に合うように変えてください。 + +## フォーマルかインフォーマルか {#formal-vs-informal} + +常に、すべての訪問者に対して、丁寧かつ適切なフォーマルな形式を使います。 + +一般的な丁寧な文章を使用することで、翻訳文が非公式なものや攻撃的に捉えられず、訪問者の年齢や性別にかかわらず適用できます。 + +ほとんどのインドヨーロッパ語とアフロアジア語は、男性と女性を区別する性別固有の二人称代名詞を使用します。 ユーザーを指す場合、または所有代名詞を使用する場合、訪問者の性別を想定しないようにします。これは、訪問者が自分のジェンダーをどのように認識するかに関わらず、フォーマルな言葉は汎用でき、一貫しているためです。 + +## シンプルで明確な語彙と意味 {#simple-vocabulary} + +目標は、ウェブサイト上のコンテンツをできるだけ多くの人に理解してもらうことです。 + +短く簡単な用語を使用することによって、この目的を容易に達成できる場合が多いです。 ある単語に対して、同じ意味を持つ複数の翻訳がある場合、 最も短い単語で、意味を明確に反映しているものを選ぶようにします。 + +## 表記方法 {#writing-system} + +ethereum.org は多くの言語で利用可能で、ラテンではない翻訳言語で表記します。 + +すべてのコンテンツは、翻訳言語の適切な表記方法を使って翻訳し、ラテン文字を使用した単語を含めないでください。 + +コンテンツを翻訳する際には、翻訳に一貫性があり、ラテン文字が含まれていないことを意識してください。 + +よくある誤解には、イーサリウムを常に「Ethereum」とラテン文字で記載しなければならないというものがあります。 これは多くの場合誤りであり、日本語の場合は「イーサリアム」(他の言語では中国語「以太坊」 、アラビア語「إيثيريوم」など)と記載します。 + +**上記は、原則として固有名詞が翻訳されるべきでない言語には該当しません。** + +## ページのメタデータの翻訳 {#translating-metadata} + +ページによっては、「title」、「lang」、「description」、「sidebar」などのメタデータを含むものもあります。 + +Crowdin に新しいページをアップロードする際、翻訳者が翻訳すべきではないコンテンツは非表示にしています。つまり、Crowdin の翻訳者に表示される、これらのメタデータはすべて翻訳する必要があります。 + +ソースが「en」の文字列を翻訳する場合は特に注意してください。 これは、ページで利用可能な言語を表し、あなたの言語の [ISO 言語コード](https://www.andiamo.co.uk/resources/iso-language-codes/)に変更する必要があります(日本語の場合は「ja」)。 これらの文字列は翻訳先の言語に固有の文字を書くのではなく、ラテン文字を使う必要があります。 + +自分の言語コードが不明な場合は、 Crowdin で翻訳メモリを確認するか、Crowdin のオンラインエディタのページの URL で言語コードを確認することができます。 + +最も広く使われている言語コードの例: + +- アラビア語- ar +- 簡体字中国語 - zh +- フランス語 - fr +- ヒンディー語 - hi +- スペイン語 - es + +## 外部記事のタイトル {#external-articles} + +外部記事のタイトルを含む文字列もあります。 デベロッパー向けドキュメントページのほとんどには、外部記事へのリンクが含まれています。 訪問者が自分の言語でページを閲覧する際、より一貫性のあるユーザーエクスペリエンスとなるよう、記事が書かれている言語に関係なく、タイトルを翻訳する必要があります。 + +これらの文字列がどのように表示されるか、またこれらの識別方法を、以下に例として記載します(外部記事へのリンクは、主にページの下部の「参考文献」にあります)。 + +![外部記事のタイトルsidebar.png](./article-titles-in-sidebar.png) ![エディタの外部記事のタイトルeditor.png](./article-titles-in-editor.png) + +## Crowdin の警告 {#crowdin-warnings} + +Crowdin には、間違いを防ぐための翻訳者に警告する機能が組み込まれています。 ソースにあるタグがターゲットに入っていない、翻訳するべきではない要素を翻訳、複数の連続したスペース、文末の句読点がない場合など、翻訳を保存する前に Crowdin が自動的に警告します。 このような警告が表示された場合は、翻訳に戻り、警告メッセージを再確認してください。 + +**これらの警告は、通常は何かが間違っている、またはソーステキストの重要な部分が欠落していることを意味するため、無視しないでください。** + +Crowdin 警告の例(タグの追加漏れ):![Crowdinの警告例](./crowdin-warning-example.png) + +## タグとコードスニペット {#dealing-with-tags} + +多くのソースコンテンツにはタグと変数が含まれており、Crowdin エディタでは黄色にハイライト表示されます。 これらは異なる機能を提供し、それぞれ正しく翻訳する必要があります。 + +**Crowdin の設定** + +タグを簡単に管理し、ソースから直接コピーできるように、Crowdin のエディタで下記のように設定を変更することをお勧めします。 + +1. 設定を開きます![エディタで設定を開く方法](./editor-settings.png) + +2. [HTML tags displaying]までスクロールします + +3. [Hide]を選択します ![[Hide]を選択](./hide-tags.png) + +4. [Save]をクリックします + +この設定を選択すると、タグがフルで表示されなくなり、番号で表示されます。 翻訳時にこのタグをクリックすると、自動で翻訳フィールドにタグをコピーできます。 + +**リンク** + +ethereum.org または他のウェブサイトのページへのフルリンクがある場合があります。 + +リンクはソースと全く同じである必要があります。変更や翻訳はしないでください。 リンクの翻訳、変更、またはバックスラッシュ(/)の削除などの一部の変更だけでも、そのリンクは壊れ、機能しなくなります。 + +リンクを処理する場合、ソースから直接コピーするのが確実です。タグをクリックするか、\[Copy Source\] (Alt+C)を使用してください。 + +![リンクの例link.png](./example-of-link.png) + +また、リンクはタグ形式でソーステキストにも表示されます(例:<0>)。 タグにカーソルを合わせると、エディタはフルコンテンツが表示されます。これらのタグはリンクを指定している場合があります。 + +ソースからリンクをコピーして、タグの順序を変更しないことが非常に重要です。 + +タグの順序が変更されると、タグが表すリンクが壊れてしまいます。 + +![タグに囲まれたリンク例tags.png](./example-of-links-inside-tags.png) + +**タグおよび変数** + +ソーステキストには多くの異なる種類のタグが含まれており、これらは必ず変更せずに、ソースからコピーしてください。 上記と同様に、翻訳文のこれらのタグの順序もソースと同じである必要があります。 + +タグは常に開始タグと終了タグのペアです。 ほとんどの場合、タグの開始と終了の間のテキストは、翻訳する必要があります。 + +例: ``Decentralized`` + +`` - _テキストを太字にする開始タグ_ + +Decentralized - _翻訳するテキスト_ + +`` - _終了タグ_ + +![strongタグの例tags.png](./example-of-strong-tags.png) + +コードスニペットには、翻訳すべきではないコードが含まれているため、他のタグとは少し違ったアプローチをとります。 + +例: ``nonce`` + +`` - _コードスニペットの開始タグく_ + +nonce - _翻訳しないテキスト_ + +`` - _終了タグ_ + +![コードスニペットの例code snippets.png](./example-of-code-snippets.png) + +ソーステキストに数値のみの短縮タグも含まれている場合があり、そのタグの意味がすぐには分からない場合があります。 これらのタグにカーソルを合わせると、タグの意味や機能を確認できます。 + +以下の例では、 <0> タグにカーソルを合わせると、 ``が表示され、コードスニペットであることが分かります。そのため、これらのタグ内のテキストは翻訳しないでください。 + +![不明なタグの例tags.png](./example-of-ambiguous-tags.png) + +## 短縮語/略語 {#short-vs-full-forms} + +本ウェブサイトでは dapp、NFT、DAO、DeFi など多くの略語が使用されています。 これらの略語は英語で一般的に使用されており、ウェブサイトの多くの訪問者はそれらが何を意味するのか知っています。 + +これらの用語は、他の言語で確立された翻訳がないことが多いため、省略していない原語をフルで翻訳し、英語の略語を括弧で追加します。 + +括弧で記載する略語は翻訳しないでください。ほとんどの人は見慣れ無いでしょうし、翻訳されると多くの訪問者にとって、逆に意味をなさなくなってしまいます。 + +「dapp」の翻訳例: + +- Decentralized application (dapp) → _非省略形の用語の翻訳(英語の略語)_ + +## 確立された翻訳のない用語 {#terms-without-established-translations} + +いくつかの用語は、他の言語では確立された用語がない場合があり、元の英語の用語の方が広く知られていることがあります。 このような用語には、主に、proof-of-work、proof-of-stake、Beacon Chain、staking などを含む比較的新しい概念のものが含まれます。 + +英語版は他の言語でも使われているため、これらの用語を翻訳すると不自然さを感じることがありますが、 翻訳することを強く推奨します。 + +それらを翻訳するときは、クリエイティブな翻訳、説明的な翻訳、もしくは単に文字通りに翻訳します。 + +**大半の用語を英語ではなく、各言語に翻訳するのは、 イーサリアムと関連技術がより多くの人々に使われるにつれて、これらの新しい用語が将来、より広く普及するであろうという考えによるものです。 世界中のより多くの人々にイーサリアムを使用してもらうため、たとえ造語であっても可能な限り多くの言語で理解できる用語を提供する必要があります。** + +## ボタンと CTA {#buttons-and-ctas} + +本ウェブサイトには多数のボタンが含まれており、他のコンテンツとは異なる翻訳が必要です。 + +ボタンのテキストは、ほとんどの文字列同様、コンテキストのスクリーンショット、またはエディタのコンテキストで確認することができます。(エディタのコンテキストに「button」と記載)。 + +ボタンの翻訳は、書式の不一致を防ぐためにできるだけ短くする必要があります。 さらに、ボタンの翻訳は、コマンドやリクエストを示すものでなければなりません。 + +![ボタンを見つける方法button.png](./how-to-find-a-button.png) + +## 包括性を踏まえた翻訳 {#translating-for-inclusivity} + +ethereum.org には、世界中から、さまざまな背景を持った訪問者が来ます。 そのため、ウェブサイトは中立的、かつ非排他的、すべての人を歓迎するものである必要があります。 + +これの重要な側面は、ジェンダーの中立性です。 フォーマルな呼称を用いること、訳語に性別を特定するような言葉の使用は、避けてください。 + +もうひとつの包括性は、国や人種、地域に特有したものではなく、グローバルな読者に向けて翻訳しようとすることです。 + +最後に、すべての訪問者と年齢層に適している必要があります。 + +## 言語別の翻訳 {#language-specific-translations} + +翻訳するときは、ソースからコピーするのではなく、翻訳言語の文法ルール、規定、書式に従うことが重要です。 ソースは英語の文法ルールと規則に従っており、他の多くの言語には当てはまりません。 + +自分の言語のルールを意識し、それに応じて翻訳する必要があります。 サポートが必要な際は、ご連絡ください。あなたの翻訳言語で、これらがどのように使われるべきかについて調べる上でサポートをします。 + +特に注意すべき事例: + +### 句読点、書式設定 {#punctuation-and-formatting} + +**大文字表記** + +- 大文字表記は、言語により大きな違いがあります。 +- 英語では、タイトルや名前、月日、言語名、休日などですべての単語を大文字にするのが一般的です。 他の多くの言語では大文字・小文字の規則が異なるため、これは必ずしも文法的に正しくありません。 +- 人称代名詞や名詞、特定の形容詞を大文字にするルールがある言語もありますが、これらは英語では必ずしも大文字になりません。 + +**スペース** + +- 各言語のスペースの使用については、正書法に従ってください。 スペースはあらゆるところで使われているため、最も目立つものであり、またスペースは最も誤りが多い点の一つです。 +- 英語と他の言語のスペースの使用の一般的な違い: + - 単位と通貨(例: USD、EUR、kB、MB)の前のスペース + - 特殊記号の前のスペース(例:°C、°F) + - 句読点の前のスペース、特にエリプシス(…)の前のスペース + - スラッシュ(/)の前後のスペース + +**箇条書き** + +- 箇条書きに関して、言語により多様で複雑な規則があります。 これらは英語とは大幅に異なる場合があります。 +- ある言語では新しい行の最初の単語を大文字、またその他の言語では新しい行は小文字で始める必要があります。 各行の長さに応じて、箇条書きの大文字に関するルールも多くあります。 +- 同様のことが行項目の句読点にも当てはまります。 箇条書きの終止符は言語により、句点(**。**)、読点(**、**)、セミコロン(**;**)である場合があります。 + +**引用符** + +- 言語により、引用符が異なります。 ソースから英語の引用符をコピーするだけでは誤りとなる場合があります。 +- 最も一般的な種類の引用符には以下のものがあります。 + - „サンプルテキスト“ + - ‚サンプルテキスト’ + - »サンプルテキスト« + - “サンプルテキスト” + - ‘サンプルテキスト’ + - «サンプルテキスト» + +**ハイフンとダッシュ** + +- 英語では、単語間や単語の異なる部分を結合するためにハイフン(-)が使用されます。対して、範囲を示したり、中断を入れるためにダッシュ(-)が使用されます。 +- 言語により、ハイフンとダッシュの使用ルールが異なります。 + +### フォーマット {#formats} + +**数字** + +- 数字の表記に関する言語による主な違いは、小数と 3 桁の区切りに使用される区切り文字です。 千の単位の場合、ピリオド、カンマ、スペースが使われることがあります。 同様に、小数点を使用する言語もあれば、小数点にコンマを使用する言語もあります。 + - 数字の表記の例: + - 英語 ー **1,000.50** + - スペイン語 ー **1.000,50** + - フランス語 ー **1,000,50** +- 数字を翻訳する際、気を付けるべきもう一つ重要な事項は、パーセント記号です。 **100%**、**100 %**または**%100**と異なる表記方法があります。 +- 最後に、マイナスの数字は言語により、 -100、100-、(100)、または[100]と表記方法が異なります。 + +**日付** + +- 日付の翻訳は、言語により、いくつかの検討事項や違いがあります。 日付のフォーマット、区切り文字、大文字、先頭のゼロなどです。 全角と半角の違いもあります。 + - 日付のフォーマット例: + - イギリス英語(dd/mm/yyyy) - 1st January, 2022 + - アメリカ英語(mm/dd/yyyy) - January 1st, 2022 + - 中国語(yyyy-mm-dd) - 2022 年 1 月 1 日 + - フランス語(dd/mm/yyyy) - 1er janvier 2022 + - イタリア語(dd/mm/yyyy) - 1o gennaio 2022 + - ドイツ語(dd/mm/yyyy) - 1. Januar 2022 + +**通貨** + +- 通貨の翻訳は、フォーマット、規則、換算により困難な場合があります。 原則として、通貨はソースと同じにしてください。 読者が分かりやすいよう、括弧でローカルの通貨と換算した金額を追加しても構いません。 +- 通貨の表記に関する言語間の主な違いは、記号の位置、小数点または小数点にコンマを使用、スペース、および記号または略語での表記があります。 + - 記号の位置: $100または100$ + - 小数点にコンマを使用、または小数点: 100,50$または100.50$ + - スペース: 100$または 100 $ + - 記号または略語: 100 $または 100 USD + +**測定単位** + +- 原則として、単位はソースと同じにします。 あなたの国が別の単位を使用している場合は、括弧内に変換した数値と単位を記載することができます。 +- 測定単位以外にも、言語によるこれらの単位の表記方法の違いについても注意することも重要です。 主には、数字と単位のスペースが言語により異なります。 例: 100kB と 100 kB、 50ºF と 50 ºF など + +## まとめ {#conclusion} + +ethereum.org を翻訳することでイーサリアムのさまざまな側面について学ぶことができます。 + +翻訳するときは、慌てないようにしてください。 また気負わず、気楽に楽しむようにしてください。 + +ウェブサイトをより多くの方にご利用いただけるよう、翻訳プログラムにご貢献いただき、ありがとうございます。 イーサリアムコミュニティはグローバルです。あなたをコミュニティの一員として迎え入れることを嬉しく思います。 diff --git a/public/content/translations/ja/dao/index.md b/public/content/translations/ja/dao/index.md new file mode 100644 index 00000000000..a3f4955b5c2 --- /dev/null +++ b/public/content/translations/ja/dao/index.md @@ -0,0 +1,165 @@ +--- +title: 分散型自律組織(DAO) +description: イーサリアムにおける分散型自律組織(DAO)の概要 +lang: ja +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: 提案に対する分散型自律組織(DAO)投票 +summaryPoint1: 中央集権的な制御がない、メンバー所有のコミュニティ +summaryPoint2: インターネットの見知らぬ人と協力する安全な方法 +summaryPoint3: 特定の目的に資金を委ねるのに安全な場所 +--- + +## 自律分散組織(DAO)とは {#what-are-daos} + +分散型自律組織(DAO)とは、共通の目的のために集団が共同で所有し、ブロックチェーンで管理された組織です。 + +分散型自律組織(DAO)は資金や運営の管理において、誰かを信用することなく、世界中の同じ志を持つ人々と共に働くことを可能します。 気まぐれに資金を使い込む CEO はいませんし、帳簿を操作できる CFO もいません。 誰かを依存・信用するのではなく、ブロックチェーンベースのルールがコード化され、組織の運営や資金の使われ方を定義しています。 + +グループの承認なしには誰もアクセスできない資金が組み込まれています。 意思決定は、提案と投票によって行われ、組織内の誰もが発言権を持つことが保障されています。また、何事においてもオンチェーン上で行われるため透明性が確保されています。 + +## 分散型自律組織(DAO)が必要な理由 {#why-dao} + +組織を誰かと一緒に組織を立ち上げるには、資金やお金が関わるため、相手との信頼関係が必要になります。 しかし、インターネット上でしか交流のない人を信用するのは難しいと思います。 分散型自律組織(DAO)では、グループ内の他の誰かを信用する必要はなく、100%透明で誰でも検証可能なコードだけを信用すれば大丈夫です。 + +これにより、グローバルなコラボレーションやコーディネーションに新たな可能性が広がりました。 + +### 比較 {#dao-comparison} + +| 分散型自律組織(DAO) | 従来の組織 | +| -------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | +| 通常はフラットな組織で、完全に民主化 | 通常は階層的 | +| 変更を実行するには、メンバーによる投票が必要 | 組織構造によっては、単独の当事者から変更が要求されることがあり、または投票が行われる場合がある | +| 投票は集計され、結果は信頼できる仲介者なしに自動的に実行される | 投票が可能な場合、投票は内部で集計され、投票結果は手動での処理が必要 | +| 提供されるサービスは、自動的に分散化された方法で処理される(例えば慈善資金の分配) | 人間による処理、または集中管理された自動化を必要とし、改ざんされるおそれがある | +| すべてのアクティビティは透明で完全に公開 | 通常、アクティビティは非公開で、一般には非公開 | + +### 分散型自律組織(DAO)の事例 {#dao-examples} + +もう少し理解を深められるように、分散型自律組織(DAO)の使用方法についていくつか例をご紹介します。 + +- 慈善事業 – 世界中の誰からでも寄付を受け付け、資金の使い道を投票にて決定可能。 +- 共同所有 – 物理的またはデジタル資産を購入し、メンバーは資産の活用方法について投票できる。 +- ベンチャーキャピタルと助成 - 投資資金をプールし、投票により支援先ベンチャーを選択、ベンチャーファンドを作成可能。 返済金は後に分散型自律組織(DAO)のメンバー間で再配分できる。 + +## 分散型自律組織(DAO)の仕組み {#how-daos-work} + +組織のルールが定義され、グループの資産を保有するスマートコントラクトが、分散型自律組織(DAO)のバックボーンです。 このスマートコントラクトがイーサリアム上で稼働し始めると、投票以外では誰もルールを変更できません。 もし誰かがコードのルールやロジックでカバーされていないことを試みても失敗に終わります。 また、資産はスマートコントラクトによって定義されているため、グループの承認なしには誰も組織の資金を使うことができません。 つまり、分散型自律組織(DAO)は中央集権を必要とせず、 グループが集合的に決定を下し、投票が可決されると支払いが自動的に承認されます。 + +これが可能なのは、スマートコントラクトがイーサリアム上で稼働すると、改ざんができないためです。 すべてが公開されているので、コード(分散型自律組織のルール)を誰にも気づかれずに、変更することはできません。 + + + スマートコントラクトの詳細 + + +## イーサリアムと分散型自律組織(DAO) {#ethereum-and-daos} + +イーサリアムは、次の理由から分散型自律組織(DAO)の完璧な基盤となります。 + +- イーサリアム独自のコンセンサス形成は分散化されており、イーサリアムネットワークは組織が信頼できるまでに確立されている。 +- スマートコントラクトのコードは、一度実行されると所有者であっても修正できないため、 分散型自律組織(DAO)はプログラムされたルールで稼働する。 +- スマートコントラクトは、資金の送受信が可能。 これができないと、グループ資金を管理する信頼できる仲介者が必要となる。 +- イーサリアムのコミュニティは、競争的なものではなく、むしろ協調的であることが証明されており、最善の方法やサポートシステムが迅速に生みだされている。 + +## 分散型自律組織(DAO)ガバナンス {#dao-governance} + +分散型自律組織(DAO)のガバナンスには、投票や提案の仕組みなど様々な考慮事項があります。 + +### デリゲーション(委任) {#governance-delegation} + +デリゲーション(委任)とは、分散型自律組織版の議会制民主主義のようなものです。 トークン保有者は、プロトコルを管理し、最新情報を入手することをコミットする立候補者に投票権を委任します。 + +#### 有名な事例 {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) – ENS 保有者は、自分たちの代表として、コミュニティメンバーに投票を委任できます。 + +### 自動トランザクションガバナンス {#governance-example} + +多くの分散型自律組織(DAO)では、メンバーの賛成票が定足数を満たせば自動的にトランザクションが実行されます。 + +#### 有名な事例 {#governance-example} + +[Nouns](https://nouns.wtf) – Nouns DAO では、定足数を満たし、過半数が賛成票であれば、創設者が拒否権を行使しない限り、トランザクションは自動的に実行されます。 + +### マルチシグガバナンス {#governance-example} + +何千人もの投票権のあるメンバーが分散型自律組織(DAO)に在籍する一方、資金は 5 ~ 20 人のアクティブなメンバーが共有するウォレットに保有されている場合があります。これらのメンバーは信用されており、通常は個人情報が公開されています(コミュニティに公的な身元が公開)。 投票の結果をもって、マルチシグの署名者はコミュニティの意思を実施します。 + +## 分散型自律組織(DAO)法 {#dao-laws} + +1977 年にワイオミング州は、起業家を保護し、責任を有限にする合同会社(LLC)を制定しました。 近年では、ワイオミング州は分散型自律組織(DAO)の法的地位を確立する法律を制定し、パイオニアとなっています。 現在、ワイオミング州、バーモント州、ヴァージン諸島が、何らかの形の分散型自律組織(DAO)法があります。 + +### 有名な事例 {#law-example} + +[CityDAO](https://citydao.io) – CityDAO は、ワイオミング州の分散型自律組織(DAO)法を利用して、イエローストーン国立公園近くの 40 エーカーの土地を購入しました。 + +## 分散型自律組織(DAO)のメンバーシップ {#dao-membership} + +分散型自律組織(DAO)のメンバーシップにはいくつかのモデルがあります。 メンバーシップにより、投票の仕組みや分散型自律組織の他の重要な部分を決定します。 + +### トークンベースのメンバーシップ {#token-based-membership} + +使用されるトークンにもよりますが、通常は完全にパーミッションレス型です。 ほとんどの場合、これらのガバナンストークンは、分散型取引所でパーミッションレスで取引できます。 それ以外のトークンは、流動性もしくはその他の「プルーフ・オブ・ワーク」を提供することで獲得する必要があります。 いずれにせよ、トークンの保持により投票権が付与されます。 + +_一般的には、広範な分散型プロトコルやトークン自体を管理するために使用されます。_ + +#### 有名な事例 {#token-example} + +[MakerDAO](https://makerdao.com) – MakerDAO のトークンである MKR は、分散型取引所で入手可能で、誰でも Maker プロトコルの将来についての投票権を購入により得ることができます。 + +### シェアベースのメンバーシップ {#share-based-membership} + +シェアベースの分散型自律組織(DAO)は、よりパーミッション型ではありますが、かなりオープンです。 分散型自律組織(DAO)への参加希望者は、トークンや作品といった何らかの価値のある物を提供することで、自分自身の参加を提案します。 シェアは、直接投票権と所有権を表します。 メンバーはいつでも、自分の保有する資産の持分を持って退会できます。 + +_一般的には、慈善団体やワーカーズ・コレクティブ、投資クラブなど、より密接な関係を持つ人間が中心となる組織に使われています。 また、プロトコルやトークンも管理できます。_ + +#### 有名な事例 {#share-example} + +[MolochDAO](http://molochdao.com/) - MolochDAO は主にイーサリアムプロジェクトの資金調達を行っています。 メンバーになるには、提案が必要となります。この提案によって、あなたが助成先候補に関して、十分な情報に基づいて判断できるだけの必要な専門知識と資本を持っているかどうかが評価されます。 オープン市場で権利を購入して、この分散型自律組織(DAO)に参加することはできません。 + +### レピュテーション(評価・評判)ベースのメンバーシップ {#reputation-based-membership} + +レピュテーション(評価・評判)とは、分散型自律組織(DAO)における参加証明と投票権の付与を表します。 トークンやシェアベースのメンバーシップとは異なり、レピュテーションベースの分散型自律組織(DAO)は所有権をコントリビューターに譲渡しません。 レピュテーションは購入、移管、または委任できず、分散型自律組織メンバーは参加を通じてレピュテーションを構築する必要があります。 オンチェーン投票はパーミッションレスで、メンバー候補は分散型自律組織(DAO)への参加を自由に提案でき、貢献の対価としてレピュテーションやトークンを受け取ることを要求することができます。 + +_主にプロトコルや分散型アプリ(Dapp)の分散型開発や分散型ガバナンスに利用されていますが、慈善団体、ワーカーズ・コレクティブ、投資クラブなど、多様な組織にも向いています。_ + +#### 有名な事例 {#reputation-example} + +[DXdao](https://DXdao.eth.link) - DXdao は、2019 年から分散型プロトコルやアプリケーションを構築し統治するグローバル・ソブリン団体です。 レピュテーションに基づくガバナンスとホログラフィック・コンセンサスを活用して資金を調整・管理しています。つまり、誰かが金銭的な手段を使って、DXdao の今後に影響をおよぼすことができません。 + +## DAO に参加する/DAO を立ち上げる {#join-start-a-dao} + +### 分散型自律組織(DAO)への参加 {#join-a-dao} + +- [イーサリアムコミュニティ分散型自律組織(DAO)](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [DAOHaus の分散型自律組織(DAO)リスト](https://app.daohaus.club/explore) +- [Tally.xyz の分散型自律組織(DAO)リスト](https://www.tally.xyz) + +### 分散型自律組織(DAO)を始める {#start-a-dao} + +- [DAOHaus で分散型自律組織(DAO)を招集](https://app.daohaus.club/summon) +- [Tally で Governor DAO を始める](https://www.tally.xyz/add-a-dao) +- [Aragon による分散型自律組織(DAO)を作成](https://aragon.org/product) +- [コロニーを始める](https://colony.io/) +- [DAOstack のホログラフィック・コンセンサスで DAO を作成](https://alchemy.daostack.io/daos/create) + +## 参考文献 {#further-reading} + +### 分散型自律組織(DAO)の関連記事 {#dao-articles} + +- [分散型自律組織(DAO)とは](https://aragon.org/dao) – [Aragon](https://aragon.org/) +- [DAO ハンドブック](https://daohandbook.xyz) +- [分散型自律組織(DAO)](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) +- [分散型自律組織(DAO)とは、およびその目的](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) +- [分散型自律組織(DAO)のデジタルコミュニティの作成方法](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) +- [分散型自律組織(DAO)とは](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) +- [ホログラフィック・コンセンサスとは](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) +- [分散型自律組織(DAO)とは企業ではなく、分散型の自律組織 – Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) +- [分散型自律組織(DAO)、分散型自律企業(DAC)、分散型アプリケーション(DA)など: 不完全な用語集](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [イーサリアムブログ](https://blog.ethereum.org) + +### 動画 {#videos} + +- [仮想通貨における分散型自律組織(DAO)とは](https://youtu.be/KHm0uUPqmVE) +- [分散型自律組織(DAO)で街はつくれるのか?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/public/content/translations/ja/decentralized-identity/index.md b/public/content/translations/ja/decentralized-identity/index.md new file mode 100644 index 00000000000..f9c609ff937 --- /dev/null +++ b/public/content/translations/ja/decentralized-identity/index.md @@ -0,0 +1,184 @@ +--- +title: 分散型アイデンティティ +description: 分散型アイデンティティとは、またこれが重要な理由 +lang: ja +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: /eth-gif-cat.png +summaryPoint1: 身元を証明するIDは中央集権的に発行、更新、管理されてきた従来のアイデンティティ制度 +summaryPoint2: 分散型アイデンティティにより、中央集権的なサードパーティへの依存から脱却 +summaryPoint3: 暗号技術により、今や再び自分自身のIDとアテステーションを発行、保持、管理することが可能 +--- + +身分を証明するアイデンティティは、今日の生活のほぼすべての側面の基盤となっています。 オンラインサービスの利用、銀行口座の開設、選挙での投票、不動産の購入、雇用の確保、これらすべてにおいて身分証明が必要です。 + +しかし、従来の身分証明書管理システムは、ID と[アテステーション](#are-attestations)を発行、保有、管理する中央管理型の仲介機関に長く依存してきました。 つまり、自分の身元証明に関する情報を自分自身で管理したり、誰が個人を特定できる情報(PII)にアクセスできるか、またこれらの機関がどのくらいアクセス権を持っているかを決めることはできないということです。 + +こうした問題を解決するために、イーサリアムのようなパブリックブロックチェーン上に分散型アイデンティティシステムを構築しています。 分散型アイデンティティでは、自分の身元証明に関する情報を管理することができます。 サービスプロバイダーや政府などの中央機関に依存することなく、*自分自身で*身分証明を作成し、本人であるというアテステーションを主張・保持することができます。 + +## アイデンティティとは? {#what-is-identity} + +アイデンティティとは、自分が自分であるという自覚で、その人が誰であるかということを表す性質や特徴により定義されます。 アイデンティティとは、*個*であること、すなわち一人の確たる人間存在であることを意味します。 またアイデンティティは、組織や行政機関などのように人間ではない存在を指すこともあります。 + +## ID とは {#what-are-identifiers} + +身分を証明する ID とは、特定のアイデンティティを指し示す情報のことです。 一般的な ID には、次のようなものがあります。 + +- 名前 +- 社会保障番号、納税者番号 +- 携帯電話番号 +- 生年月日と出生地 +- 電子メールアドレス、ユーザー名、アバターなどのデジタル身分証明書 + +上記のような例では、ID は中央機関や組織により発行、保持、管理されています。 氏名の変更には政府からの、ユーザー名の変更にはソーシャルメディアからの承認が必要です。 + +## アテステーションとは {#what-are-attestations} + +アテステーションとは、ある存在が別の存在に対して行われる証明を意味します。 例えばアメリカに住んでいる場合、車両管理局(ある存在)が、あなた(別の存在)が合法的に車の運転を許可されているということを証明するために運転免許証を発行します。 + +アテステーションは身分を証明する ID とは異なります。 アテステーションには、_特定のアイデンティティを参照するための ID を含み_、また当該アイデンティティに関連する属性についても証します。 つまり、運転免許証には身分を証明する ID(氏名、生年月日、住所)が含まれ、同時に、運転できるという法的権利(属性)に関しても証明します。 + +### 分散型 ID とは {#what-are-decentralized-identifiers} + +氏名やメールアドレスといった従来の ID は、政府やメールプロバイダーといったサードパーティに依存します。 分散型 ID (DID)は、中央集権組織により発行、管理、制御されないという点で異なります。 + +分散型 ID は、自分自身で発行、保有、管理することができます。 [イーサリアムアカウント](/developers/docs/accounts/)は、分散型 ID の一例です。 誰からの許可も不要で、また中央台帳に保存する必要もなく、好きなだけアカウントを作成することができます。 + +分散型 ID は、分散型台帳(ブロックチェーン)やピアツーピアネットワークに格納されるため、 分散型 ID は[世界的に一意で、高い可用性で解決可能で、暗号技術で検証可能](https://w3c-ccg.github.io/did-primer/)なものです。 分散型 ID は、人、組織、政府機関など、さまざまなエンティティに関連付けることができます。 + +## 分散型 ID を実現する技術 {#what-makes-decentralized-identifiers-possible} + +### 1. 公開鍵インフラストラクチャ(PKI) {#public-key-infrastructure} + +公開鍵インフラストラクチャ(PKI)とは、あるエンティティに対して[公開鍵](/glossary/#public-key)と[秘密鍵](/glossary/#private-key)を生成する情報セキュリティのことです。 公開鍵の暗号技術は、ブロックチェーンネットワークにおいて、ユーザーの身分を認証し、デジタル資産の所有権を証明するために使用されます。 + +イーサリアムアカウントなどの分散型 ID には、公開鍵と秘密鍵があるものがあります。 公開鍵はアカウントのコントローラを識別し、秘密鍵はこのアカウントのメッセージに署名および復号化します。 公開鍵インフラストラクチャ(PKI)は、[暗号署名](https://andersbrownworth.com/blockchain/public-private-keys/)を使用し、すべての主張を検証し、エンティティを認証し、なりすましや偽の ID の使用を防ぎます。 + +### 2. 分散型データストア {#decentralized-datastores} + +ブロックチェーンは、検証可能なデータレジストリとして、オープンかつ信頼性の高い、分散型の情報リポジトリとして機能します。 パブリックブロックチェーンにより、中央集権的なレジストリに ID を保存する必要がなくなります。 + +分散型 ID の正当性を確認する必要がある場合は、ブロックチェーンで関連する公開鍵を調べることができます。 ここが、サードパーティによる認証を必要とする従来の ID とは異なる点です。 + +## 分散型アイデンティティを可能にする分散型 ID とアテステーション {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} + +分散型アイデンティティとは、アイデンティティに関連する情報は自己管理され、プライベートでポータブルであるべきという考え方であり、分散型 ID とアテステーションにより成り立っています。 + +分散型アイデンティティの文脈では、アテステーション([検証可能な資格情報](https://www.w3.org/TR/vc-data-model/))とは、改ざんできず、暗号学的に検証できる発行者の主張です。 エンティティ(組織など)が発行するすべてのアテステーション、すなわち検証可能な資格情報は、その分散型 ID (DID)と紐づけられます。 + +分散型 ID (DID)はブロックチェーンに保存されるため、発行者の DID をイーサリアム上で照合すれば、誰でもアテステーションの正当性を確認することができます。 基本的に、イーサリアムのブロックチェーンは、特定のエンティティに関連する分散型 ID の検証を可能にするグローバルディレクトリのように機能します。 + +分散型 ID は、アテステーションが自己管理でき、検証可能である理由となります。 発行者が存在しなくなったとしても、ID の保有者は常にアテステーションの出所と正当性を証明することができます。 + +また、分散型 ID は個人情報のプライバシーを保護する上でも非常に重要になります。 例えば、個人がアテステーション(運転免許証)を提出する場合、検証者は証明書の情報の正当性を確認する必要はありません。 検証者は、アテステーションの正当性の暗号学的な保証と、発行組織のアイデンティティだけで証明書の正当性を判断できます。 + +## 分散型アイデンティティにおけるアテステーションの種類 {#types-of-attestations-in-decentralized-identity} + +イーサリアムベースの分散型アイデンティティにおいては、アテステーション情報をどのように保存し、取得するかは、従来のアイデンティティ管理とは異なります。 ここでは、分散型 ID システムにおけるアテステーションの発行、保管、検証のためのさまざまなアプローチの概要を説明します。 + +### オフチェーン・アテステーション {#off-chain-attestations} + +アテステーションをオンチェーンで保存する場合の懸念点として、個人が秘密にしたい情報が含まれている可能性があることが挙げられます。 イーサリアムのブロックチェーンはパブリックな性質を持っているため、個人情報が含まれるアテステーションを保存することは望ましくありません。 + +解決策としては、ユーザーがオフチェーンでデジタルウォレットに保有し、オンチェーンで保存されている発行者の分散型 ID (DID)で署名されたアテステーションを発行することです。 これらのアテステーションは[JSON ウェブトークン](https://en.wikipedia.org/wiki/JSON_Web_Token)としてエンコードされ、発行者のデジタル署名を含んでいるため、オフチェーンでの主張を簡単に検証することができます。 + +ここで、仮想シナリオを用いてオフチェーン・アテステーションの説明します。 + +1. 大学(発行者)は証明書(デジタル学術証明書)を生成し、大学の鍵で署名し、ボブ(アイデンティティ所有者)に発行します。 + +2. ボブは就職活動で、自分の学歴を雇用主に証明するため、モバイルウォレットからアテステーションを共有します。 企業(検証者)は、発行者の分散型 ID (イーサリアム上の公開鍵)を確認することで、アテステーションの正当性を確認することができます。 + +### 永続的なアクセスによるオフチェーン・アテステーション {#offchain-attestations-with-persistent-access} + +この方式のアテステーションでは、JSON ファイルに変換され、オフチェーンに保存されます(理想的には、IPFS や Swarm などの [分散型クラウドストレージ](/developers/docs/storage/) プラットフォーム上)。 ただし、JSON ファイルの[ハッシュ](/glossary/#hash)はオンチェーンに保存され、オンチェーンレジストリ経由で分散型 ID にリンクされています。 紐づけられる分散型 ID は、アテステーションの発行者または受取人のどちらかのものであることがあります。 + +このアプローチにより、アテステーションはブロックチェーンベースの永続性を得て、主張する情報を暗号化し検証可能な状態に保つことができます。 また、秘密鍵の保有者は情報を復号化できるため、選択的に開示することも可能です。 + +### オフチェーン・アテステーション {#onchain-attestations} + +オンチェーン・アテステーションは、イーサリアムのブロックチェーン上の[スマートコントラクト](/developers/docs/smart-contracts/)に保持されます。 スマートコントラクト(レジストリとして機能)は、アテステーションを該当するオンチェーン分散型 ID 公開鍵)にマッピングします。 + +ここでは、オンチェーン・アテステーションがどのように機能するか例を紹介します。 + +1. ある企業(XYZ Corp)は、スマートコントラクトを使用して所有権の株式を売却することを計画していますが、バックグラウンドチェックを通った買手のみを求めています。 + +2. XYZ Corp は、バックグラウンドチェックを行う会社に、イーサリアム上でオンチェーン・アテステーションを発行してもらうことができます。 このアテステーションは、個人情報を明かすことなくバックグラウンドチェックに通ったことを証明するものです。 + +3. 株式を売却するスマートコントラクトは、レジストリコントラクトで審査した買い手の身元を確認し、株式の買手を判断することができます。 + +### ソウルバウンド・トークンとアイデンティティ {#soulbound} + +[ソウルバウンドトークン](https://vitalik.ca/general/2022/01/26/soulbound.html)(譲渡不可の非代替性トークン)は、特定のウォレットに固有の情報の収集に使用される可能性があります。 これは、特定のイーサリアムアドレスに結びついた一意のオンチェーンアイデンティティを効果的に作成し、業績(例えば、特定のオンラインコースの修了や、ゲームで閾値のスコアの通過など)やコミュニティへの参加を表すトークンを含むことができます。 + +## 分散型アイデンティティの利点 {#benefits-of-decentralized-identity} + +1. 分散型アイデンティティは、自分自身の ID 情報をより管理することができます。 中央集権機関やサードパーティのサービスに依存することなく、分散型 ID とアテステーションを検証することができます。 + +2. 分散型アイデンティティのソリューションは、信頼性が高く、シームレスで、プライバシーを保護しつつ、ユーザーのアイデンティティの検証と管理を容易にします。 + +3. 分散型アイデンティティは、ブロックチェーン技術を活用し、異なる当事者間の信頼関係を構築し、暗号的にアテステーションの正当性を証明することができます。 + +4. 分散型アイデンティティは、アイデンティティデータのポータブル化を実現します。 ユーザーは、アテステーションと ID をモバイルウォレットに保存し、任意の相手と共有することができます。 分散型 ID とアテステーションは、発行組織のデータベースに保管されることはありません。 + +5. 分散型アイデンティティは、新しいゼロ知識証明技術とうまく機能すると考えられています。ゼロ知識証明とは、個人の所有または何かを行ったことを、それが何であるかを明かすことなく証明できるものです。 これは、投票などのアプリケーションでの応用において、信頼性とプライバシーを両立させる強力な方法となる可能性を秘めています。 + +6. 分散型アイデンティティは、一人の人間が複数の人間になりすましてゲームやスパムを行う場合、それを特定でき、シビル攻撃を防ぐことができます。 + +## 分散型アイデンティティのユースケース {#decentralized-identity-use-cases} + +分散型アイデンティティには、多くの潜在的なユースケースがあります。 + +### 1. ユニバーサルログイン {#universal-dapp-logins} + +分散型アイデンティティは、パスワードによるログインを[分散型認証](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/)に置き換えることができます。 サービスプロバイダーは、アテステーションを発行することができ、ユーザーはそれをイーサリアムのウォレットに保存できます。 アテステーションの例としては、[非代替性トークン(NFT)](/nft/)保有者にオンラインコミュニティへのアクセス許可などが挙げられます。 + +[イーサリアムでサインイン](https://login.xyz/)機能を使うと、サーバはユーザーのイーサリアムアカウントを確認し、アカウントアドレスから必要なアテステーションを取得することができます。 これにより、ユーザーは長いパスワードを記憶することなくプラットフォームやウェブサイトにアクセスでき、オンライン・エクスペリエンスを向上させることができます。 + +### 2. KYC 認証 {#kyc-authentication} + +オンラインサービスの多くを利用するには、運転免許証やパスポートなどのアテステーションを提出する必要があります。 しかし、この方法では、ユーザーの個人情報が漏洩するおそれがあり、サービスプロバイダーはアテステーションの正当性を確認できないという問題があります。 + +分散型アイデンティティにより、企業は従来の[本人確認(KYC)](https://en.wikipedia.org/wiki/Know_your_customer)プロセスを省略し、検証可能な資格情報を利用してユーザーのアイデンティティを認証することができます。 これにより、ID 管理のコストを削減し、偽造文書の使用を防ぐことができます。 + +### 3. 投票とオンラインコミュニティ {#voting-and-online-communities} + +オンライン投票とソーシャルメディアは、分散型アイデンティティの新しい適用です。 オンライン投票の仕組みでは、悪意ある者が偽の ID を作成し投票することで、改ざんされるおそれがあります。 個人に対してオンチェーン・アテステーションを求めることで、オンライン投票プロセスの信頼性を向上できます。 + +分散型アイデンティティは、偽アカウントのないオンラインコミュニティの構築に役立ちます。 例えば、ENS(イーサリアム・ネーム・サービス)のようなオンチェーンのアイデンティティシステムを使って認証させることで、ボットを減らすことができる可能性があります。 + +### 4. シビル攻撃の防御 {#sybil-protection} + +シビル攻撃とは、一人の人間が偽って複数の人間と思わせ、影響力を増大させることです。 [クアドラティック・ボーティング](https://www.radicalxchange.org/concepts/plural-voting/)を用いた[助成金授与アプリケーション](https://gitcoin.co/grants/)では、より多くの投票が集まることで助成金の価値が上がり、多くの ID を使って寄付するというインセンティブが働くため、こうしたシビル攻撃を受けやすくなっています。 分散型アイデンティティは、多くの場合、特定の個人情報を明らかにすることなく、各参加者自身が機械ではなく本当に人間であることを証明するという負担を高めることで、シビル攻撃の防止に役立ちます。 + +## 分散型アイデンティティの利用 {#use-decentralized-identity} + +分散型アイデンティティソリューションの基盤としてイーサリアムを使用する、大掛かりなプロジェクトが数多くあります。 + +- **[イーサリアム・ネーム・サービス(ENS)](https://ens.domains/)** - _イーサリアムウォレットアドレス、コンテンツハッシュ、メタデータなどのオンチェーン、機械読み取り可能な ID の分散型ネーミングシステム_ +- **[SpruceID](https://www.spruceid.com/)** - _サードパーティーのサービスに頼らず、イーサリアムアカウントと ENS プロファイルでデジタルアイデンティティを管理できるようにする分散型アイデンティティプロジェクト_ +- **[Proof of Humanity](https://www.proofofhumanity.id)** - _Proof of Humanity (PoH)は、イーサリアム上に構築されたソーシャル ID 認証システム_ +- **[BrightID](https://www.brightid.org/)** - _ソーシャルグラフの作成と分析を通じて、本人確認の改革を目指す分散型オープンソース・ソーシャルアイデンティティネットワーク_ +- **[Proof-of-personhood Passport](https://proofofpersonhood.com/)** - _分散型デジタル ID アグリゲーター_ + +## 参考文献 {#further-reading} + +### 記事 {#articles} + +- [ブロックチェーンの活用事例: デジタル ID におけるブロックチェーン](https://consensys.net/blockchain-use-cases/digital-identity/) —_ConsenSys_ +- [イーサリアム ERC725 とは ブロックチェーン上の自己主権型 ID 管理](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Sam Town_ +- [ブロックチェーンはデジタル ID 問題をどのように解決するか](https://time.com/6142810/proof-of-humanity/) — _Andrew R. Chow_ +- [分散型アイデンティティとは、注目に値する理由](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ + +### ビデオ {#videos} + +- [分散型アイデンティティ(ボーナスライブストリームセッション)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Andreas Antonopolous による分散型アイデンティティに関する秀逸な解説ビデオ_ +- [イーサリアムでサインインし、Ceramic、IDX、React、および 3ID Connect を使用した分散型 ID](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _Nader Dabit によるイーサリアムウォレットを使用したユーザープロファイルの作成、読み取り、更新の ID 管理システムの構築に関する YouTube チュートリアルビデオ_ +- [BrightID - イーサリアム上の分散型アイデンティティ](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _イーサリアムの分散型 ID ソリューション「BrightID」に関する Bankless ポッドキャスト_ +- [オフ・チェーン・インターネット: 分散型アイデンティティと検証可能な資格情報](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — Evin McMullen による EthDenver 2022 のプレゼンテーション + +### コミュニティ {#communities} + +- [GitHub 上の ERC-725 アライアンス](https://github.com/erc725alliance) — _イーサリアムのブロックチェーン上で ID を管理するための規格「ERC725」のサポーターコミュニティ_ +- [SpruceID Discord サーバ](https://discord.com/invite/Sf9tSFzrnt) — _「イーサリアムでサインイン」に取り組むファンやデベロッパーのためのコミュニティ_ +- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _アプリケーション向けの検証可能なデータのフレームワークの構築に貢献するデベロッパーのコミュニティ_ diff --git a/public/content/translations/ja/defi/index.md b/public/content/translations/ja/defi/index.md new file mode 100644 index 00000000000..f1e48de0bd4 --- /dev/null +++ b/public/content/translations/ja/defi/index.md @@ -0,0 +1,352 @@ +--- +title: 分散型金融(DeFi) +description: イーサリアムにおける分散型金融(DeFi)の概要 +lang: ja +template: use-cases +emoji: ":money_with_wings:" +image: /use-cases/defi.png +alt: レゴブロックで作られたETHのロゴ +sidebarDepth: 2 +summaryPoint1: 現在の金融システムに変わる、グローバルで開かれた分散型金融。 +summaryPoint2: 借りる、貯蓄、投資、取引などを実現する製品。 +summaryPoint3: オープンソース技術に基づき、誰でもプログラミング可能。 +--- + +分散型金融(DeFi)は、インターネット時代に対応したオープンでグローバルな金融システムであり、不透明で厳しく管理された、何十年も前のインフラやプロセスのシステムを置き換えるものです。 自分のお金をコントロールし、可視化することができます。 グローバル市場に入ることができ、自国の通貨や銀行の選択肢の代替となります。 分散型金融(DeFi)製品は、インターネットの接続がある人であれば誰でも金融サービスを受けることができ、ほとんどがユーザーによって所有・維持されています。 これまでに数百億ドル相当の暗号資産が、分散型金融(DeFi)アプリケーションを経由しており、その額は日々増加しています。 + +## 分散型金融(DeFi)とは {#what-is-defi} + +分散型金融(DeFi)とは、イーサリアムを使用するすべての人が利用できる金融商品やサービスの総称です。 分散型金融(DeFi)では、市場は常に開かれており、支払いをブロックしたり、何かへのアクセスを拒否できる一元化された権限主体はありません。 以前は遅く、人的エラーのリスクがあったサービスが、誰でも検査・精査できるコードによって処理されるようになったため、自動的に実行され、かつ安全です。 + +そこには、貸し借り、ロング/ショート、利息の受取りなどが可能な、活況を呈している暗号経済があります。 暗号資産技術に詳しいアルゼンチン人は、深刻なインフレから逃れるために分散型金融(DeFi)を利用してきました。 企業は、従業員への賃金をリアルタイムでストリーミングするようになりました。 中には、本人確認なしで数百万ドルのローンを組み、完済した人もいます。 + + + +## 分散型金融(DeFi)と従来の金融システムとの比較 {#defi-vs-tradfi} + +分散型金融(DeFi)の可能性を知るための最良の方法の一つは、現在ある問題を理解することです。 + +- 銀行口座の開設や金融サービスの利用を認められていない人もいます。 +- 金融サービスへのアクセスができないと、雇用の妨げになります。 +- 金融サービスは、あなたをブロックし、支払いを受けることができないようにすることができます。 +- 金融サービスへの隠された料金には、利用者の個人情報があります。 +- 政府や中央集権機関が自由に市場を閉鎖することができます。 +- 取引時間は、しばしば特定の時間帯の営業時間に制限されます。 +- 内部の人的なプロセスにより、送金には数日かかる場合があります。 +- 仲介機関への分け前が必要なため、金融サービスには手数料が必要です。 + +### 比較 {#defi-comparison} + +| 分散型金融(DeFi) | 従来の金融システム | +| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| 自分でお金を保有します。 | 企業があなたのお金を保有します。 | +| 自分のお金がどこに行くか、どのように使われるかをコントロールすることができます。 | あなたのお金が不正に管理されたり、危険な借り手に貸しだされないなど、その企業を信用する他ありません。 | +| 資金の移動は数分で完了します。 | 支払いには手動の作業プロセスのために数日かかることがあります。 | +| トランザクションは仮名で行われます。 | 金融活動は、利用者の個人情報と密接に結びついています。 | +| 分散型金融(DeFi)は誰でも利用できます。 | 金融サービスの利用申請が必要です。 | +| 市場は常にオープンしています。 | 従業員の休息のため、市場が閉じる時間があります。 | +| 誰もが製品データを見て、システムがどのように機能しているかを調べることができる、透明性の高いシステムです。 | 金融機関はクローズド・ブックであり、融資の履歴や運用資産の記録などを見せてもらうことはできません。 | + + + 分散型金融(DeFi)アプリを探す + + +## 始まりはビットコイン... {#bitcoin} + +ビットコインは、いろいろな意味で最初の分散型金融(DeFi)アプリケーションでした。 ビットコインは、価値を実際に所有・管理でき、世界中のどこにでも送ることができます。 これは、お互いに信頼関係のない不特定多数の人々が、信頼できる仲介者を必要とせずに、口座台帳に合意する方法を提供することで実現しています。 ビットコインは誰にでも開かれており、誰もそのルールを変えることはできません。 希少性やオープン性などビットコインのルールは、テクノロジーに書き込まれています。 政府がお金を刷り、あなたの貯蓄の価値を下げてしまったり、企業が市場を閉鎖したりできる従来の金融とは違います。 + +イーサリアムはこの考えに基づいています。 ビットコインのように、あなたに関わるルールが変えられることなく、誰もがアクセスできます。 しかし、このデジタルマネーは、[スマートコントラクト](/glossary#smart-contract)を用いてプログラム可能になっており、単に価値を保有・送信したりする以上のことができます。 + + + +## プログラム可能な通貨 {#programmable-money} + +これは一見奇妙なことのように聞こえます。「なぜ自分のお金をプログラムする必要があるのでしょうか?」 しかし、これはむしろイーサリアムのトークンのデフォルト機能に過ぎません。 誰でも支払いに論理をプログラムすることができます。 プログラミングにより、金融機関が提供するサービスに、ビットコインのコントロールとセキュリティを混在させることができます。 貸し借りや支払いのスケジューリング、インデックスファンドへの投資など、ビットコインではできないことを暗号通貨で行うことができます。 + + +
イーサリアムを初めて使う方にお勧めの分散型金融(DeFi)アプリケーション
+ + 分散型金融(DeFi)アプリを探す + +
+ +## 分散型金融(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/)が必要です。 + + + 支払いの分散型アプリ(Dapp)を見る + + +#### 世界中へのお金の流通... {#stream-money} + +また、イーサリアムでお金を流通させることもできます。 これにより、誰かに給料を秒単位で支払うことができ、受取人は必要なときにいつでもお金にアクセスすることができます。 また、コインロッカーや電動自転車など、秒単位でレンタルすることもできます。 + +また、[ETH](/eth/)の価値がどれだけ変わるかわからないので、送金や流通はしたくないという方には、イーサリアムの代替通貨であるステーブルコインがあります。 + + + +### 安定した通貨へのアクセス {#stablecoins} + +暗号通貨の変動性は、多くの金融商品や一般歳出にとっては問題となります。 分散型金融(DeFi)コミュニティはこれをステーブルコインで解決しました。 ステーブルコインの価値は、別の資産、通常はドルのような一般的な通貨を担保にしています。 + +Dai や USDC のようなコインの価値変動は、1 ドルで数セントの範囲内です。 そのため、給与や小売業に最適です。 中南米では、政府が発行する通貨に大きな不安があるため、自分の貯蓄を守る手段として、多くの人々がステーブルコインを利用しています。 + + + ステーブルコインの詳細 + + + + +### 融資 {#lending} + +分散型プロバイダーからお金を借りるには、大きく分けて 2 種類あります。 + +- ピアツーピア: 借り手が特定の貸し手から直接借りることを意味します。 +- プールベース: 借り手が借り入れることができるプールに、貸し手が資金(流動性)を提供する方法です。 + + + 融資分散型アプリ(Dapp)を見る + + +分散型貸付業者の利用には、多くの利点があります。 + +#### プライバシーを守りながらの借り入れ {#borrowing-privacy} + +現在、お金の貸し借りは、すべて個人が中心となって行われています。 銀行は融資をする前に、借り手に返済する見込みがあるかどうかを見極める必要があります。 + +分散型融資は、どちらも自分の名前を名乗る必要がありません。 その代わり、借り手は担保を提供しなければならず、貸し手は返済されなかった場合に担保を自動的に受け取ることになります。 一部の貸し手では、非代替性トークン(NFT)を担保として受け入れています。 非代替性トークン(NFT)とは、美術絵画のような唯一無二の資産に対する証明です。 [非代替性トークン(NFT)の詳細](/nft/) + +これにより、クレジットチェックや個人情報を開示せずにお金を借りることができます。 + +#### グローバル資金へのアクセス {#access-global-funds} + +分散型金融機関を利用すると、あなたが選んだ銀行や金融機関に預けている資金だけでなく、世界中から入金された資金にアクセスすることができます。 これにより、ローンがより利用しやすくなり、金利も改善されます。 + +#### 課税効率 {#tax-efficiencies} + +ETH を売却(課税対象)することなく、必要な資金を借り入れることができます。 その代わり、ETH をステーブルコイン・ローンの担保として使うことができます。 これにより、必要なキャッシュフローを得ることができ、ETH をそのまま保有しておくことができます。 ステーブルコインは、ETH のように価値が変動しないので、現金が必要な時にはより適しているトークンです。 [ステーブルコインの詳細](#stablecoins) + +#### フラッシュローン {#flash-loans} + +フラッシュローンは、より実験的な分散型融資の形態で、担保や個人情報を提供することなく借り入れをすることができます。 + +今はまだ技術者以外の人は広く利用できませんが、将来的には誰もが利用できるようになる見込みがあります。 + +フラッシュローンは、借入と返済を同一のトランザクション内で行う仕組みです。 返すことができなければ、何もなかったかのようにトランザクションが元に戻ります。 + +よく使われる資金は、流動性プール(借り入れに使われる資金の大きなプール)に保管されています。 その瞬間に使われていなければ、誰かがその資金を借りてビジネスを行い、文字通り借りた瞬間に全額を返済するという機会が生まれます。 + +これには、多くのロジックを非常にオーダーメイドのトランザクションに含める必要があります。 簡単な例をあげると、フラッシュローンを利用して、ある価格で資産を借りて、価格の高い別の取引所で売ることができます。 + +そのため、1 つのトランザクションで次のようなことが起こります。 + +- X 個の$asset を A 取引所から$1.00 で借用 +- B 取引所で X 個の$asset 資産を 1.10 ドルで売却 +- 取引所 A に借入金を返済 +- トランザクションフィーを差し引いた利益を獲得 + +もし、取引所 B の供給量が急激に減少し、ユーザーが当初のローンをカバーするのに十分な量を購入できなかった場合は、単純にそのトランザクションは失敗します。 + +従来の金融の世界で上記の例を実行するには、莫大な資金が必要になります。 これらのお金儲けの戦略は、既存の富を持っている人にしかアクセスできません。 フラッシュローンは、お金を持っていることが必ずしもお金を稼ぐための前提条件ではないという未来の一例です。 + +[フラッシュローンの詳細](https://aave.com/flash-loans/) + + + +### 暗号資産で預金を始める {#saving} + +#### 貸付 {#lending} + +暗号通貨を貸すことで利息を得ることができ、資金が増えていく様子をリアルタイムで見ることができます。 現在の利息は、地元の銀行で得られる金利よりもはるかに高いです(運良く銀行を利用できた場合)。 次に例を示します。 + +- [ステーブルコイン](/stablecoins/)である 100 Dai を Aave のようなサービスに貸し付けます。 +- 貸した Dai を表すトークンである 100 Aave Dai (aDai)を受領します。 +- aDai は金利に基づいて増加し、あなたのウォレットで残高が増えていくのを見ることができます。 年換算利回りに応じて、数日後、あるいは数時間後にウォレットの残高が 100.1234 のように表示されます。 +- aDai 残高と同額の通常の Dai をいつでも引き出すことができます。 + + + 貸付サービスの分散型アプリ(Dapp)を見る + + +#### 損失がない宝くじ {#no-loss-lotteries} + +PoolTogether のような損失のない宝くじは、楽しく革新的な新しい貯蓄方法です。 + +- 100 Dai トークンを使って 100 枚のチケットを購入します。 +- 100 枚のチケットを表す 100 plDai を受領します。 +- チケットの 1 つが当選すると、あなたの plDai の残高は賞金プールの金額分だけ増えます。 +- 当選しなかった場合、100 枚の plDa は来週の抽選に繰り越されます。 +- いつでも plDai 残高と同額の通常の Dai を引き出すことができます。 + +賞金プールは、上記の貸し出しの例のように、チケットの預金を貸し出すことで発生するすべての利息によって生み出されます。 + + + PoolTogetherを試す + + + + +### トークンの交換 {#swaps} + +イーサリアムには何千ものトークンがあります。 分散型取引所(DEX)でいつでも異なるトークンを取引できます。 ご自身の資産の管理をあきらめる必要はありません。 これは、外国に行ったときに両替所を利用するようなものです。 しかし、分散型金融(DeFi)では両替所は閉じることはありません。 市場は 365 日 24 時間体制で、テクノロジーにより、取引を受け付ける人が常にいます。 + +例えば、上述の損失のない宝くじ PoolTogether を利用したい場合、Dai や USDC などのトークンが必要になります。 これらの分散型取引所では、自分の ETH をそれらのトークンと交換し、終了後また ETH に戻すことができます。 + + + トークン交換所を見る + + + + +### 高度な取引 {#trading} + +もう少しコントロールしたいというトレーダーのために、より高度なオプションも用意されています。 リミットオーダー、パーペチュアル、マージン取引などが可能です。 分散型取引では、グローバル・リクイディティにアクセスでき、市場が閉じることはなく、常に自分の資産をコントロールすることができます。 + +中央集権的な取引所を利用する場合は、取引を行う前に資産を預けて、その資産の管理を任せなければなりません。 中央の取引所はハッカーにとって魅力的なターゲットであるため、資産が預けられている間はリスクがあります。 + + + トレード分散型アプリ(Dapp)を見る + + + + +### ポートフォリオの拡大 {#investing} + +イーサリアムには、自分が選んだ戦略に基づいてポートフォリオを拡大を図るファンドマネジメント商品があります。 これは、自動的、誰にでも開かれていて、かつ管理者に利益の一部を取られる必要はありません。 + +その良い例が、[分散型金融 Pulse インデックスファンド(DPI)](https://defipulse.com/blog/defi-pulse-index/)です。 これは、常に[時価総額上位の分散型金融(DeFi)トークン](https://www.coingecko.com/en/defi)がポートフォリオに含まれるよう、自動的に入れ替える(リバランスする)ファンドです。 細かい管理をする必要がなく、好きな時にファンドから引き出すことができます。 + + + 投資分散型アプリ(Dapp)を見る + + + + +### アイデアへの資金供給 {#crowdfunding} + +イーサリアムはクラウドファンディングに理想的なプラットフォームです。 + +- 潜在的な資金提供者はどこからでも来ることができます - イーサリアムとそのトークンは世界中のすべての人に公開されています。 +- 透明性があるため、資金調達者がどれだけの資金を調達したかを証明できます。 あとでどのように資金が使われているかを追跡することもできます。 +- 出資者は、例えば、特定の期限や最低金額が達成されなかった場合、自動的に返金されるように設定することができます。 + + + クラウドファンディング分散型アプリ(Dapp)を見る + + +#### クオドラティック・ファンディング {#quadratic-funding} + +イーサリアムはオープンソースソフトウェアであり、これまでの作業の多くはコミュニティの資金提供を受けてきました。 これにより、クオドラティック・ファンディングという興味深い新しい資金調達モデルが成長しました。 将来的に、私達が公共財のすべてのタイプに資金を供給する方法を改善する可能性があるファンディングです。 + +クオドラティック・ファンディングでは、最もユニークな必要性があるプロジェクトが、最も多くの資金を受け取るようになっています。 つまり、ほとんどの人々の生活を向上させるためのプロジェクトです。 その仕組みは次のとおりです。 + +1. 寄付を集めて供与先を決めるためのマッチングプールがあります。 +2. 資金供与のラウンドが始まります。 +3. 人々は、お金を寄付することで、あるプロジェクトに対する必要性を示すことができます。 +4. ラウンドが終了すると、マッチングプールからプロジェクトに資金が分配供与されます。 最も多くの需要を獲得した人が、マッチングプールから最高額を得ることができます。 + +つまり、1 ドルの寄付が 100 件集まったプロジェクト A の方が、1 つの 1 万ドルの寄付に支援されたプロジェクト B よりも多くの資金を得られる可能性があるということです(マッチングプールの大きさによります)。 + +[クオドラティック・ファンディングの詳細](https://wtfisqf.com) + + + +### 保険 {#insurance} + +分散型保険は、保険料をより安く、より早く、より透明にすることを目指しています。 自動化が進めば、保険料はより手頃になり、支払いもより迅速になります。 保険請求を決定するために使用されるデータには、完全に透明性があります。 + +他のソフトウェアと同様、イーサリアム製品は、バグや不正搾取の問題があります。 そのため、現在のところ、この分野の保険商品の多くは、ユーザーが資金を失うことを防ぐことに重点を置いています。 しかし、人生で起こりうるあらゆることを補償するプロジェクトが始まっています。 その良い例が、[ケニアの零細農家を干ばつや洪水から守ることを目的とした](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc)Etherisc の生産物保証です。 分散型の保険は、従来の保険では値段が高過ぎて手がでないことが多い農民に、より安価な保険を提供することができます。 + + + 保険分散型アプリ(Dapp)見る + + + + +### アグリゲーターとポートフォリオマネージャー {#aggregators} + +多くのことが行われているため、すべての投資、ローン、取引を記録する方法が必要になります。 すべての分散型金融(DeFi)アクティビティを 1 つの場所で管理できる製品が多数あります。 これが分散型金融(DeFi)のオープンアーキテクチャーの魅力です。 製品すべての残高を確認できるだけでなく、その機能を利用できるインターフェースを構築することができます。 分散型金融(DeFi)をより深く知るための参考にしてみてください。 + + + ポートフォリオ分散型アプリ(Dapp)を見る + + + + +## 分散型金融(DeFi)の仕組み {#how-defi-works} + +分散型金融(DeFi)では、暗号通貨やスマートコントラクトを用いて、仲介を必要としないサービスを提供しています。 今日の金融世界では、金融機関がトランザクションの保証人の役割を果たしています。 このようにして、これらの機関は巨大な力を持つことになります。 さらに、世界中の何十億もの人々が、銀行口座にアクセスすることさえままならない現状があります。 + +分散型金融(DeFi)では、スマートコントラクトが金融機関の代わりにトランザクションを行います。 スマートコントラクトとは、イーサリアムの口座の一種で、資金を保有し、一定の条件に基づいて資金を送金/返金することができます。 スマートコントラクトが稼働すると、誰もそのスマートコントラクトを変更することはできず、常にプログラム通りに実行されます。 + +例えば、手当やお小遣いを渡すためのコントラクトが、毎週金曜日に口座 A から口座 B にお金を送るようにプログラムされているとします。 口座 A に必要な資金がある限り、それを実行します。 誰もコントラクトを変更して、口座 C を受取人として追加し、資金を盗むことはできません。 + +また、コントラクトは公開され、誰でも閲覧や監査が可能です。 つまり、悪質なコントラクトはすぐにコミュニティの監視下に置かれることが多いのです。 + +これは、現在のところ、コードを解読できるイーサリアムコミュニティの技術的なメンバーを信頼する必要があることを意味しています。 オープンソースベースのコミュニティは、デベロッパーをチェックするのに役立っていますが、スマートコントラクトが解読しやすくなり、コードの信頼性を証明する他の方法が開発されるにつれて、この必要性は時間とともに減少していくでしょう。 + +## イーサリアムと分散型金融(DeFi) {#ethereum-and-defi} + +イーサリアムは、さまざまな理由から分散型金融(DeFi)の基盤として最適です。 + +- イーサリアムやスマートコントラクトは誰かの所有物ではないため、誰もが分散型金融(DeFi)を利用することができます。 これはまた、誰もあなたに関するルールを変更できないことを意味します。 +- 分散型金融(DeFi)製品はすべて、舞台裏で同じ言語を話しており、その言語はイーサリアムです。 このため、多くの製品がシームレスに連携します。 あるプラットフォームでトークンを貸し出し、その利息付きトークンを全く別のアプリケーションで別の市場で交換することができます。 これは、銀行でポイントを現金化できるようなものです。 +- トークンと暗号通貨は、共有台帳であるイーサリアムに組み込まれています。トランザクションや所有権を追跡することは、イーサリアムの得意とするところです。 +- イーサリアムは完全な経済的自由を可能にします。ほとんどの製品はあなたの資金を管理することはなく、自分の資金を自分でコントロールすることができます。 + +分散型金融(DeFi)をレイヤーで考えてみましょう。 + +1. ブロックチェーン - イーサリアムには、トランザクション履歴やアカウント状態が記録されています。 +2. 資産 - [ETH](/eth/)とその他のトークン(通貨) +3. プロトコル - 機能を提供する[スマートコントラクト](/glossary/#smart-contract)、例えば、資産を分散して貸すことができるサービスなど +4. [アプリ](/dapps/) - プロトコルの管理やアクセスのために使用する製品 + +## 分散型金融(DeFi)の構築 {#build-defi} + +分散型金融(DeFi)はオープンソースのムーブメントです。 分散型金融(DeFi)のプロトコルとアプリケーションはすべて公開されており、ユーザーが検査、フォーク(分岐)、改変を行うことができます。 このようにレイヤー状になっているため(ベースとなるブロックチェーンや資産はすべて共通)、プロトコルを組み合わせ、ユニークな組み合わせでのチャンスを生み出すことができます。 + + + 分散型アプリ(Dapp)構築の詳細 + + +## 参考文献 {#futher-reading} + +### 分散型金融(DeFi)データ {#defi-data} + +- [DeFi Prime](https://defiprime.com/) +- [DeFi Llama](https://defillama.com/) +- [DeFi Rate](https://defirate.com/) + +### 分散型金融(DeFi)に関する記事 {#defi-articles} + +- [分散型金融(DeFi)入門](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu、2020 年 1 月 6 日_ + +### ビデオ {#videos} + +- [Finematics - 分散型金融に関する教育](https://finematics.com/) – _分散型金融(DeFi)に関するビデオ_ +- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _分散型金融(DeFi)の基本: 時に不可解な分散型金融を始めるために学ぶべきことすべて。_ +- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _分散型金融(DeFi)とは_ + +### コミュニティ {#communities} + +- [DeFi Pulse Discord server](https://discord.gg/buPFYXzDDd) +- [DeFi Pulse Discord server](https://discord.gg/Gx4TCTk) diff --git a/public/content/translations/ja/desci/index.md b/public/content/translations/ja/desci/index.md new file mode 100644 index 00000000000..5f29b02263d --- /dev/null +++ b/public/content/translations/ja/desci/index.md @@ -0,0 +1,138 @@ +--- +title: 分散型科学 (DeSci) +description: イーサリアム上の分散型科学の概要 +lang: ja +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: 現在の科学に代わる、グローバルで開かれたシステム。 +summaryPoint2: 科学者が資金を調達し、実験を行い、データーを共有し、得られた見識を広めることなどを可能にする技術。 +summaryPoint3: オープンサイエンス運動の上に構築。 +--- + +## 分散型科学(DeSci)とは何か {#what-is-desci} + +分散型科学(DeSci)は Web3 スタックを用いることで、科学的知見に対する財政支援、そして科学的知見の創造、審査、認定、保管、普及のための、公平公正なインフラストラクチャの形成を目指す運動です。 + +DeSci は、科学者が自身の研究を公然と共有することにインセンティブを与えられ、そしてその仕事に対する名声を得られ、一方で誰もが簡単にその研究にアクセスし、さらに研究に貢献できるようなエコシステムの形成を目指しています。 DeSci は、科学的知識は誰にでもアクセス可能であり、科学研究のプロセスは透明であるべきという考えに則っています。 DeSci はより非中央集権的で分散型の科学研究モデルを形成することで、中央当局による検閲と管理に対する抵抗力を高めます。 DeSci は、資金調達、科学的ツール、コミュニケーション手段へのアクセスを分散化することによって、慣習にとらわれない新しいアイデアが繁栄する環境を作りたいと考えています。 + +分散型科学により、多様な資金調達方法([分散型自律組織](/dao/)、[クアドラティックドネーション](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531)、クラウドファンディングなど)が可能となることで、データや科学的手法へのアクセスが容易になり、さらに再現性へのインセンティブを付与することができます。 + +### Juan Benet - DeSci 運動 + + + +## いかにして DeSci が科学を向上させるのか {#desci-improves-science} + +科学の主要な問題点と、分散型科学でどのような解決が可能かをまとめた現時点におけるリストです。 + +| **分散型科学** | **従来の科学** | +| --------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | +| 資金分配は、クアドラティックドネーションや DAO などのメカニズムを用いて、大衆によって決定されます。 | 小規模で閉鎖的な中央集権化されたグループが、資金分配をコントロールします。 | +| 世界中の誰とでも、ダイナミックなチームを形成して、共同研究ができます。 | 資金提供団体や科学者の所属機関により、共同研究が制限されます。 | +| 資金調達の決定は、オンラインかつ透明性をもって実行されます。 新しい資金調達のメカニズムが検討されます。 | 資金調達の決定には長い時間がかかり、限られた透明性の中で実行しています。 資金調達のメカニズムはほぼ存在しません。 | +| Web3 のプリミティブを利用することで、研究所のサービスをより簡単かつ透過的に共有できます。 | 研究所のリソースを共有できるまでに時間がかかることが多く、その手続きも不透明です。 | +| Web3 プリミティブによって、信頼性と透明性が高く、かつ普遍的アクセスを実現する新たな出版モデルの開発が可能です。 | 非効率的でバイアスがあり、悪用されうる旧来の手続きによって研究成果が出版されます。 | +| 論文を査読することでトークンや評価を得ることができます。 | 研究者が無報酬で査読し、営利目的の出版社に利益を提供します。 | +| 科学者が自身の生み出した知的財産(IP)を所有し、透明性のある条件に従って配布します。 | 科学者が生み出した知的財産は所属機関が所有します。 知的財産へのアクセスは不透明です。 | +| 全手順をオンチェーンにすることで、失敗したデーターも含めて、すべての研究を共有できます。 | 出版バイアスとは、成功した実験ほど共有する傾向が強いというバイアスです。 | + +## イーサリアムと DeSci {#ethereum-and-desci} + +分散型科学のシステムには、堅牢なセキュリティ、最小限の金銭およびトランザクションコスト、そしてアプリケーション開発のための豊富なエコシステムが必要です。 イーサリアムは、分散型科学のスタックを構築するのに必要なものを全て備えています。 + +## DeSci のユースケース {#use-cases} + +DeSci は、Web2 アカデミアをデジタルワールドにオンボーディングさせるための科学的なツールセットを構築しています。 Web3 は、科学界にさまざまな利点を提供することができます。以下に一部のユースケースをご紹介します。 + +### 出版 {#publishing} + +科学論文の出版は顕著な問題を抱えており、その背景には、論文の作成にあたり、科学者、査読者、編集者を無報酬で働かせ、法外な出版料を請求する出版社の存在があります。 一般市民は税金という形で科学者の活動費と出版費を間接的に支払っていますが、通常は、出版社に対して追加で支払いを行わないと、出版物を閲覧することはできません。 個々の科学論文の出版にかかる総額は、通常米ドルで 5 桁に上り、[公共財](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} + +科学への資金提供における現在の標準モデルでは、個人や科学者のグループが資金配分機関に書面にて申請する手順となっています。 信頼できる少数の識者が申請書を採点し、その後候補者の面接を経て、評価の高かった一部の候補者に資金が提供されます。 助成金の申請から受領まで、時に年単位で待つことになるボトルネックを生み出すだけでなく、このモデルは、審査委員会による偏見、私欲、権力闘争に対して非常に脆弱であると言われています。 + +同じ提案であっても同委員会の担当者によって結果が大きく異なることがあり、優れた提案を選択するうえで助成金審査委員会は責務を果たしていないことが研究によって示されています。 資金調達が厳しくなる中で、資金の行く先は保守的なプロジェクトを行う少人数の上席研究者へと集中してきました。 その結果、非常に競争の激しい資金調達環境が生み出され、歪んだインセンティブを根付かせ、イノベーションを妨げることになりました。 + +DAO と 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)、[トークン化されたインセンティブ構造<0>](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design)などの Web3 ツールには、科学の資金調達に大変革をもたらす可能性があります。 + +### IP の所有権と開発 {#ip-ownership} + +従来の科学において知的財産(IP)は大きな問題となっています。大学で身動きが取れない状況に陥っていたり、バイオテクノロジー業界で応用されていなかったり、評価ができない状態になってしまっています。 しかし、Web3 が[非代替性トークン(NFT)](/nft/)を活用することで、デジタル資産(科学的データや論文など)を真に所有できるようになります。 + +NFT が将来の取引の収益を元の作成者に還元できるように、透明性のある価値の帰属チェーンを確立することができます。これにより、研究者や DAO のような管理団体、そしてデータの収集元となった被験者へも報酬を与えることができます。 + +[IP-NFT](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6)もまた研究実験の分散データレポジトリにアクセスするための鍵として機能し、NFT や[DeFi](/defi/)の金融化(資産の分散、融資プールと価値評価) へとつながります。 また、[VitaDAO](https://www.vitadao.com/)のようなネイティブにチェーン上に存在する DAO を使用することで、研究活動を直接オンチェーンで行うことができます。 譲渡不可の[「ソウルバウンド」トークン](https://vitalik.ca/general/2022/01/26/soulbound.html)の出現により、イーサリアムアドレスにリンクされた経験や経歴を個人が証明できるようになるため、DeSci で重要な役割を果たす可能性があります。 + +### データストレージ、アクセス、アーキテクチャ {#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 データソリューションは、上記のシナリオをサポートし、研究者がアクセス許可や手数料なしで公共財を作成できる真のオープンサイエンスの基盤を提供します。 IPFS、Arweave、Filecoin などの Web3 パブリックデータソリューションは、分散化のために最適化されています。 たとえば、dClimate は、気象観測所や予測気候モデルなどを含む、気候や気象データへの普遍的なアクセスを提供しています。 + +## 参加 {#get-involved} + +プロジェクトを探索し、DeSci コミュニティに参加してください。 + +- [DeSci.Global: グローバルなイベントとオフ会カレンダー](https://desci.global) +- [サイエンステレグラムのためのブロックチェーン](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 財団: DeSci 出版ツールビルダー](https://descifoundation.org/) +- [DeSci.World: ユーザーが閲覧して参加できる分散型科学のワンストップショップ](https://desci.world) +- [Fleming プロトコル: 共同のバイオメディカルの発見を促進するオープンソースのデータエコノミー](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [OceanDAO: データ関連科学のための、DAO に統制された資金調達](https://oceanprotocol.com/dao) +- [Opsciana: オープン分散型サイエンスワークフロー](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 プロトコル: 共同のバイオメディカルの発見を促進するオープンソースのデータエコノミー](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [Active Inference Lab](https://www.activeinference.org/) +- [CureDAO: コミュニティ所有のプレシジョンヘルスプラットフォーム](https://docs.curedao.org/) +- [IdeaMarkets: 分散型科学の信ぴょう性の有効化](https://ideamarket.io/) + +新しいプロジェクトを提案する際には[ポリシー一覧](/contributing/adding-desci-projects/)をご覧ください。 + +## 参考文献 {#further-reading} + +- [Jocelynn Pearl と Ultraare による DeSci Wiki](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) +- [Jocelynn Pearl による a16z の未来のための分散型バイオテックのガイド](https://future.a16z.com/a-guide-to-decentralized-biotech/) +- [DeSci のケース](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) +- [DeSci のガイド](https://future.com/what-is-decentralized-science-aka-desci/) +- [分散型科学のリソース](https://www.vincentweisser.com/decentralized-science) +- [Molecule の Biopharma IP-NFTs - 技術説明](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) +- [Jon Starr によるトラストレスな科学システムの構築](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) +- [バイオテクノロジー DAO の誕生](https://molecule.to/blog/the-emergence-of-biotech-daos) +- [Paul Kohlaas - 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) +- [DeSci: Samuel Akinosho による研究の未来](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) +- [サイエンスファンディング(エピローグ: DeSci と新しい暗号プリミティブ) by 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 - DeSci、Independent Labs、& Large Scale Data Science](https://www.youtube.com/watch?v=zkXM9H90g_E) +- [Sebastian Brunemeier - DeSci による生体医学研究 & ベンチャーキャピタルの転換](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/ja/developers/docs/accounts/index.md b/public/content/translations/ja/developers/docs/accounts/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/accounts/index.md rename to public/content/translations/ja/developers/docs/accounts/index.md diff --git a/src/content/translations/ja/developers/docs/apis/backend/index.md b/public/content/translations/ja/developers/docs/apis/backend/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/apis/backend/index.md rename to public/content/translations/ja/developers/docs/apis/backend/index.md diff --git a/src/content/translations/ja/developers/docs/apis/javascript/index.md b/public/content/translations/ja/developers/docs/apis/javascript/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/apis/javascript/index.md rename to public/content/translations/ja/developers/docs/apis/javascript/index.md diff --git a/src/content/translations/ja/developers/docs/apis/json-rpc/index.md b/public/content/translations/ja/developers/docs/apis/json-rpc/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/apis/json-rpc/index.md rename to public/content/translations/ja/developers/docs/apis/json-rpc/index.md diff --git a/src/content/translations/ja/developers/docs/blocks/index.md b/public/content/translations/ja/developers/docs/blocks/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/blocks/index.md rename to public/content/translations/ja/developers/docs/blocks/index.md diff --git a/src/content/translations/ja/developers/docs/bridges/index.md b/public/content/translations/ja/developers/docs/bridges/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/bridges/index.md rename to public/content/translations/ja/developers/docs/bridges/index.md diff --git a/src/content/translations/ja/developers/docs/consensus-mechanisms/index.md b/public/content/translations/ja/developers/docs/consensus-mechanisms/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/consensus-mechanisms/index.md rename to public/content/translations/ja/developers/docs/consensus-mechanisms/index.md diff --git a/src/content/translations/ja/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md b/public/content/translations/ja/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md rename to public/content/translations/ja/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md diff --git a/src/content/translations/ja/developers/docs/consensus-mechanisms/pos/attack-and-defense/reorg-schematic.png b/public/content/translations/ja/developers/docs/consensus-mechanisms/pos/attack-and-defense/reorg-schematic.png similarity index 100% rename from src/content/translations/ja/developers/docs/consensus-mechanisms/pos/attack-and-defense/reorg-schematic.png rename to public/content/translations/ja/developers/docs/consensus-mechanisms/pos/attack-and-defense/reorg-schematic.png diff --git a/src/content/translations/ja/developers/docs/consensus-mechanisms/pos/attestations/attestation_schematic.png b/public/content/translations/ja/developers/docs/consensus-mechanisms/pos/attestations/attestation_schematic.png similarity index 100% rename from src/content/translations/ja/developers/docs/consensus-mechanisms/pos/attestations/attestation_schematic.png rename to public/content/translations/ja/developers/docs/consensus-mechanisms/pos/attestations/attestation_schematic.png diff --git a/src/content/translations/ja/developers/docs/consensus-mechanisms/pos/attestations/index.md b/public/content/translations/ja/developers/docs/consensus-mechanisms/pos/attestations/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/consensus-mechanisms/pos/attestations/index.md rename to public/content/translations/ja/developers/docs/consensus-mechanisms/pos/attestations/index.md diff --git a/public/content/translations/ja/developers/docs/consensus-mechanisms/pos/block-proposal/index.md b/public/content/translations/ja/developers/docs/consensus-mechanisms/pos/block-proposal/index.md new file mode 100644 index 00000000000..bdbcb98e8d9 --- /dev/null +++ b/public/content/translations/ja/developers/docs/consensus-mechanisms/pos/block-proposal/index.md @@ -0,0 +1,69 @@ +--- +title: ブロック提案 +description: イーサリアムのプルーフ・オブ・ステークにおけるブロックの提案方法についての説明 +lang: ja +--- + +ブロックは、ブロックチェーンにおける基本的な単位です。 ブロックとは、各ノード間で受け渡しされ、合意され、各ノードのデータベースに追加される情報を区切った単位です。 このページでは、ブロックがどのように生成されるのかを説明します。 + +## 前提知識 {#prerequisites} + +ブロックの提案は、プルーフ・オブ・ステークのプロトコルの一部です。 このページの内容を理解するためには、[プルーフ・オブ・ステーク](public/content/developers/docs/consensus-mechanisms/pos/)および[ブロックのアーキテクチャ](public/content/developers/docs/blocks/)を読んでおくとよいでしょう。 + +## 誰がブロックを生成するのか? {#who-produces-blocks} + +ブロックは、バリデータのアカウントが提案します。 バリデータのアカウントは、実行クライアントおよびコンセンサス・クライアントの一部としてバリデータ・ソフトウェアを実行し、少なくともデポジット・コントラクトの残高が少なくとも 32 イーサ以上であるノードのオペレータが管理します。 ただし、各バリデータがすべてのブロックを提案する訳ではありません。 イーサリアムでは、時間をスロットおよびエポック単位で把握します。 1 スロットは 12 秒であり、1 エポックは 32 スロット(6.4 分)です。 各スロットは、イーサリアムに新規ブロックを追加する期間を表します。 + +### 無作為の選出 {#random-selection} + +各スロットにおいてブロックを提案するために、1 名のバリデータがほぼ無作為に選出されます。 各ノードによる番号の生成が真に無作為であればノード間においてコンセンサスを実現することが不可能になるため、ブロックチェーンにおいては真の無作為性は存在しません。 むしろ、ここでの目的は、バリデータの選出プロセスを予測不可能にすることです。 イーサリアムでは、RANDAO と呼ばれるアルゴリズムを用いてバリデータ選出の無作為性を実現します。これは、ブロック提案者のハッシュと、ブロックごとに更新されるシードと混合するアルゴリズムです。 この混合された値に基づき、バリデータの全リストから特定のバリデータを選出します。 バリデータは、シードに対する特定の種類の不正操作から保護するために、2 エポック前の時点で選出が確定します。 + +バリデータは各スロットにおいて RANDAO に追加されますが、グローバルな RANDAO 値は各エポックにつき 1 回のみ更新されます。 次のブロック提案者のインデックスを算出するために、RANDAO 値はスロット番号とミックスされ、スロットごとに固有値が得られます。 特定のバリデータが選出される確率は、単に`1/N`(`N`は、アクティブなバリデータの合計数)ではありません。 これは、各バリデータの有効なイーサ残高によって加重されるためです。 有効な残高の上限は 32 イーサです(つまり、`残高<32イーサ`の場合、`残高=32イーサ`の場合よりも加重が低くなりますが、`残高>32`でああっても`残高=32イーサ`の場合よりも加重は大きくなりません。 + +各スロットにおいて選出されるブロック提案者は 1 名のみです。 通常、1 名のブロック生成者が、専用のスロットにおいて 1 つのブロックを生成し、リリースします。 同一スロットにおいて 2 つのブロックを生成することはスラッシングの対象となる不正行為であり、これを「曖昧化」と呼びます。 + +## ブロックはどのように生成されるのか? {#how-is-a-block-created} + +ブロック提案者は、自分がローカルで実行するフォーク選択のアルゴリズムの観点に基づき、チェーンの最も最近の先頭部分に構築される署名済みのビーコンブロックを送信すると想定されています。 フォーク選択のアルゴリズムは、ひとつ前のスロットで未処理であったキュー内のアテステーションすべてに適用され、その履歴から、累積したアテステーションの加重が最も大きいブロックを特定します。 特定されたブロックは、提案者が作成する新規ブロックに対する親ブロックとなります。 + +ブロック提案者は、自分のローカルなデータベースおよびチェーンビューに基づきデータを収集して、ブロックを作成します。 ブロックの内容は、以下のコードスニペットのように表示されます。 + +```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 +``` + +ブロック提案者が現在のエポック番号に署名することによって作成する検証可能なランダム値を`randao_reveal`フィールドで受け取ります。 `eth1_data`は、ブロック提案者における入金コントラクトのビューに対する投票であり、入金コントラクトのマークルツリーにおけるルートと、新規の入金に対する検証を可能にする入金件数の総数が含まれています。 `graffiti`は、ブロックにメッセージを追加するための使用できるオプション項目です。 `proposer_slashings`および `attester_slashings`は、提案者によるチェーンビューに基づき、特定のバリデータがスラッシュ対象の違反行為を実行したことを証明する項目です。 `deposits`は、ブロック提案者が認識しているバリデータによる新規の入金リストであり、`voluntary_exits`は、ブロック提案者がコンセンサスレイヤーのゴシップネットワークにおいて、退出を希望する意向を確認したバリデータのリストです。 `sync_aggregate`は、どのバリデータが、以前に同期委員会(軽量のクライアントデータを担当するバリデータのサブセット)に指定されたことがあり、データの署名を実行したことがあるのかを示すベクトルです。 + +`execution_payload`は、トランザクションに関する情報が実行クライアントとコンセンサス・クライアントとの間で受け渡されることを可能にします。 `execution_payload`は、ビーコンブロック内にネスティングされるブロックの実行データです。 `execution_payload`内の各フィールドは、イーサリアムのイエローペーパーで概説されたブロックの構造を反映しています。ただし、オマーブロックを含まず、`難易度`の代わりに`prev_randao`を含む点が異なります。 実行クライアントは、自身のゴシップネットワークで耳にしたトランザクションのローカルプールにアクセスすることができます。 これらのトランザクションはローカルで実行され、ポストステートと呼ばれる更新後の状態ツリーを生成します。 これらのトランザクションは、`execution_payload`において`トランザクション`という名称のリストに含まれており、当該のポストステートは`state-root`フィールドに書き込まれます。 + +これらのデータはすべてビーコンブロックで収集、署名された上で、ブロック提案者のピアユーザーのブロードキャストされ、受信したピアはさらにそのピアユーザーに送信します。 + +詳細については、[ブロックの構造](/developers/docs/blocks)をご覧ください。 + +## 生成されたブロックには、何が起きるのか? {#what-happens-to-blocks} + +生成されたブロックはブロック提案者のローカルデータベースに追加され、コンセンサスレイヤーのゴシップネットワークを通じてピアユーザーにブロードキャストされます。 ブロックを受け取ったバリデータは、そのブロックに含まれるデータを検証します。具体的には、親ブロックが適切かどうか、適切なスロットに対応しているか、提案者インデックスが予期されたものであるか、RANDAO 開示が有効か、および提案者がスラッシュ対象になっていないか、について確認します。 `execution_payload`のバンドルが解除され、バリデータの実行クライアントが当該リストに含まれるトランザクションを実行して、提案される状態変更についてチェックします。 当該ブロックがこれらのチェックにすべて合格した場合、各バリデータはブロックを自身の正規チェーンに追加します。 以上のプロセスを、次のスロットでも繰り返します。 + +## ブロック報酬 {#block-rewards} + +ブロック提案者は、この作業に対する報酬を獲得します。 `base_reward` は、アクティブなバリデータの数と、それらのバリデータにおける有効な残高に基づいて計算されます。 その上で、ブロック提案者は、当該ブロックに含まれる 1 件の有効なアテステーションごとに`base_reward`の一部を受け取ります。当該ブロックをアテステーションするバリデータの数が多ければ多いほど、ブロック提案者の報酬は増えます。 スラッシングが必要なバリデータを報告したユーザーに対しても報酬が提供されます。この報酬額は、スラッシングされたバリデータにおける`有効な残高の512分の1`となります。 + +[報酬およびペナルティの詳細](/developers/docs/consensus-mechanisms/pos/rewards-and-penalties) + +## 参考文献 {#further-reading} + +- [ブロック入門](/developers/docs/blocks/) +- [プルーフ・オブ・ステーク入門](/developers/docs/consensus-mechanisms/pos/) +- [イーサリアムにおけるコンセンサスの仕様](https://github.com/ethereum/consensus-specs) +- [ガスパー入門](/developers/docs/consensus-mechanisms/pos/) +- [イーサリアムのアップグレード](https://eth2book.info/) \ No newline at end of file diff --git a/src/content/translations/ja/developers/docs/consensus-mechanisms/pos/faqs/index.md b/public/content/translations/ja/developers/docs/consensus-mechanisms/pos/faqs/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/consensus-mechanisms/pos/faqs/index.md rename to public/content/translations/ja/developers/docs/consensus-mechanisms/pos/faqs/index.md diff --git a/src/content/translations/ja/developers/docs/consensus-mechanisms/pos/gasper/index.md b/public/content/translations/ja/developers/docs/consensus-mechanisms/pos/gasper/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/consensus-mechanisms/pos/gasper/index.md rename to public/content/translations/ja/developers/docs/consensus-mechanisms/pos/gasper/index.md diff --git a/src/content/translations/ja/developers/docs/consensus-mechanisms/pos/index.md b/public/content/translations/ja/developers/docs/consensus-mechanisms/pos/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/consensus-mechanisms/pos/index.md rename to public/content/translations/ja/developers/docs/consensus-mechanisms/pos/index.md diff --git a/src/content/translations/ja/developers/docs/consensus-mechanisms/pos/keys/index.md b/public/content/translations/ja/developers/docs/consensus-mechanisms/pos/keys/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/consensus-mechanisms/pos/keys/index.md rename to public/content/translations/ja/developers/docs/consensus-mechanisms/pos/keys/index.md diff --git a/src/content/translations/ja/developers/docs/consensus-mechanisms/pos/keys/multiple-keys.png b/public/content/translations/ja/developers/docs/consensus-mechanisms/pos/keys/multiple-keys.png similarity index 100% rename from src/content/translations/ja/developers/docs/consensus-mechanisms/pos/keys/multiple-keys.png rename to public/content/translations/ja/developers/docs/consensus-mechanisms/pos/keys/multiple-keys.png diff --git a/src/content/translations/ja/developers/docs/consensus-mechanisms/pos/keys/validator-key-schematic.png b/public/content/translations/ja/developers/docs/consensus-mechanisms/pos/keys/validator-key-schematic.png similarity index 100% rename from src/content/translations/ja/developers/docs/consensus-mechanisms/pos/keys/validator-key-schematic.png rename to public/content/translations/ja/developers/docs/consensus-mechanisms/pos/keys/validator-key-schematic.png diff --git a/src/content/translations/ja/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md b/public/content/translations/ja/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md rename to public/content/translations/ja/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md diff --git a/src/content/translations/ja/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md b/public/content/translations/ja/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md rename to public/content/translations/ja/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md diff --git a/src/content/translations/ja/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md b/public/content/translations/ja/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md rename to public/content/translations/ja/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md diff --git a/src/content/translations/ja/developers/docs/consensus-mechanisms/pow/index.md b/public/content/translations/ja/developers/docs/consensus-mechanisms/pow/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/consensus-mechanisms/pow/index.md rename to public/content/translations/ja/developers/docs/consensus-mechanisms/pow/index.md diff --git a/src/content/translations/ja/developers/docs/consensus-mechanisms/pow/mining-algorithms/dagger-hashamoto/index.md b/public/content/translations/ja/developers/docs/consensus-mechanisms/pow/mining-algorithms/dagger-hashamoto/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/consensus-mechanisms/pow/mining-algorithms/dagger-hashamoto/index.md rename to public/content/translations/ja/developers/docs/consensus-mechanisms/pow/mining-algorithms/dagger-hashamoto/index.md diff --git a/src/content/translations/ja/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethash/index.md b/public/content/translations/ja/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethash/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethash/index.md rename to public/content/translations/ja/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethash/index.md diff --git a/src/content/translations/ja/developers/docs/consensus-mechanisms/pow/mining-algorithms/index.md b/public/content/translations/ja/developers/docs/consensus-mechanisms/pow/mining-algorithms/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/consensus-mechanisms/pow/mining-algorithms/index.md rename to public/content/translations/ja/developers/docs/consensus-mechanisms/pow/mining-algorithms/index.md diff --git a/src/content/translations/ja/developers/docs/consensus-mechanisms/pow/mining/index.md b/public/content/translations/ja/developers/docs/consensus-mechanisms/pow/mining/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/consensus-mechanisms/pow/mining/index.md rename to public/content/translations/ja/developers/docs/consensus-mechanisms/pow/mining/index.md diff --git a/src/content/translations/ja/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md b/public/content/translations/ja/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md rename to public/content/translations/ja/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md diff --git a/src/content/translations/ja/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md b/public/content/translations/ja/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md rename to public/content/translations/ja/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md diff --git a/src/content/translations/ja/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md b/public/content/translations/ja/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md rename to public/content/translations/ja/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md diff --git a/src/content/translations/ja/developers/docs/dapps/index.md b/public/content/translations/ja/developers/docs/dapps/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/dapps/index.md rename to public/content/translations/ja/developers/docs/dapps/index.md diff --git a/src/content/translations/ja/developers/docs/data-and-analytics/block-explorers/index.md b/public/content/translations/ja/developers/docs/data-and-analytics/block-explorers/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/data-and-analytics/block-explorers/index.md rename to public/content/translations/ja/developers/docs/data-and-analytics/block-explorers/index.md diff --git a/src/content/translations/ja/developers/docs/data-and-analytics/index.md b/public/content/translations/ja/developers/docs/data-and-analytics/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/data-and-analytics/index.md rename to public/content/translations/ja/developers/docs/data-and-analytics/index.md diff --git a/src/content/translations/ja/developers/docs/data-availability/index.md b/public/content/translations/ja/developers/docs/data-availability/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/data-availability/index.md rename to public/content/translations/ja/developers/docs/data-availability/index.md diff --git a/src/content/translations/ja/developers/docs/data-structures-and-encoding/index.md b/public/content/translations/ja/developers/docs/data-structures-and-encoding/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/data-structures-and-encoding/index.md rename to public/content/translations/ja/developers/docs/data-structures-and-encoding/index.md diff --git a/src/content/translations/ja/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md b/public/content/translations/ja/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md rename to public/content/translations/ja/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md diff --git a/src/content/translations/ja/developers/docs/data-structures-and-encoding/rlp/index.md b/public/content/translations/ja/developers/docs/data-structures-and-encoding/rlp/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/data-structures-and-encoding/rlp/index.md rename to public/content/translations/ja/developers/docs/data-structures-and-encoding/rlp/index.md diff --git a/src/content/translations/ja/developers/docs/data-structures-and-encoding/ssz/index.md b/public/content/translations/ja/developers/docs/data-structures-and-encoding/ssz/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/data-structures-and-encoding/ssz/index.md rename to public/content/translations/ja/developers/docs/data-structures-and-encoding/ssz/index.md diff --git a/src/content/translations/ja/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md b/public/content/translations/ja/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md rename to public/content/translations/ja/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md diff --git a/src/content/translations/ja/developers/docs/development-networks/index.md b/public/content/translations/ja/developers/docs/development-networks/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/development-networks/index.md rename to public/content/translations/ja/developers/docs/development-networks/index.md diff --git a/src/content/translations/ja/developers/docs/ethereum-stack/index.md b/public/content/translations/ja/developers/docs/ethereum-stack/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/ethereum-stack/index.md rename to public/content/translations/ja/developers/docs/ethereum-stack/index.md diff --git a/src/content/translations/ja/developers/docs/evm/index.md b/public/content/translations/ja/developers/docs/evm/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/evm/index.md rename to public/content/translations/ja/developers/docs/evm/index.md diff --git a/src/content/translations/ja/developers/docs/evm/opcodes/index.md b/public/content/translations/ja/developers/docs/evm/opcodes/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/evm/opcodes/index.md rename to public/content/translations/ja/developers/docs/evm/opcodes/index.md diff --git a/src/content/translations/ja/developers/docs/frameworks/index.md b/public/content/translations/ja/developers/docs/frameworks/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/frameworks/index.md rename to public/content/translations/ja/developers/docs/frameworks/index.md diff --git a/src/content/translations/ja/developers/docs/gas/index.md b/public/content/translations/ja/developers/docs/gas/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/gas/index.md rename to public/content/translations/ja/developers/docs/gas/index.md diff --git a/src/content/translations/ja/developers/docs/ides/index.md b/public/content/translations/ja/developers/docs/ides/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/ides/index.md rename to public/content/translations/ja/developers/docs/ides/index.md diff --git a/src/content/translations/ja/developers/docs/index.md b/public/content/translations/ja/developers/docs/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/index.md rename to public/content/translations/ja/developers/docs/index.md diff --git a/src/content/translations/ja/developers/docs/intro-to-ether/index.md b/public/content/translations/ja/developers/docs/intro-to-ether/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/intro-to-ether/index.md rename to public/content/translations/ja/developers/docs/intro-to-ether/index.md diff --git a/src/content/translations/ja/developers/docs/intro-to-ethereum/index.md b/public/content/translations/ja/developers/docs/intro-to-ethereum/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/intro-to-ethereum/index.md rename to public/content/translations/ja/developers/docs/intro-to-ethereum/index.md diff --git a/public/content/translations/ja/developers/docs/mev/index.md b/public/content/translations/ja/developers/docs/mev/index.md new file mode 100644 index 00000000000..3721bb6a9a2 --- /dev/null +++ b/public/content/translations/ja/developers/docs/mev/index.md @@ -0,0 +1,221 @@ +--- +title: 最大抽出可能価値(MEV) +description: 最大抽出可能価値(MEV)という概念を紹介する。 +lang: ja +--- + +最大抽出可能価値(MEV)とは、特定のブロックにおけるトランザクションの追加、削除、または順序変更により、ブロックの生成時において標準的なブロック報酬やガス代を超過して抽出できる最大の価値を指します。 + +## 採掘可能価値(MEV) {#miner-extractable-value} + +最大抽出可能価値(MEV)は、 [プルーフ・オブ・ワーク](/developers/docs/consensus-mechanisms/pow/)に基づき導入された概念であり、当初は「採掘可能価値(MEV)」と呼ばれていました。 プルーフ・オブ・ワークでは、トランザクションの追加、削除、および順序決定をマイナーが管理していたためです。 しかし、[マージ](/upgrades/merge)によるプルーフ・オブ・ステークへの移行後、バリデータがこれらの役割を担うようになり、マイニングはイーサリアムのプロトコルから削除されました。 しかし、価値採掘のための手段は依然として存在するため、現在は「最大抽出可能価値」という用語を用います。 + +## 前提知識 {#prerequisites} + +[トランザクション](/developers/docs/transactions/)、[ブロック](/developers/docs/blocks/)、[プルーフ・オブ・ステーク](/developers/docs/consensus-mechanisms/pos)、および[ガス](/developers/docs/gas/)について理解している必要があります。 また、[分散アプリケーション(Dapp)](/dapps/)や[分散型金融(DeFi)](/defi/)の知識も有用です。 + +## MEV の抽出 {#mev-extraction} + +理論的に言えば、利益を伴う MEV の抽出の実行を保証できるのはバリデータのみであるため、MEV が蓄積するのはバリデータにおいてのみです。 しかし実際には、抽出される MEV の大部分は「サーチャー」と呼ばれる独立したネットワーク参加者が獲得しています。 サーチャーは、ブロックチェーンのデータに対して複雑なアルゴリズムを実行して利益を伴う MEV の抽出機会を検出し、ボットを利用してこれらの利益を伴うトランザクションをネットワークに自動的に送信します。 + +サーチャーは、高額のガス代を(バリデータに)支払ってでも、発見した利益が期待できるトランザクションがブロックに追加される可能性を高めたいと考えるため、バリデータは発生した MEV 全体からその一部を獲得することができます。 サーチャーが経済的に合理的に行動すると仮定した場合、サーチャーが支払いたいと考えるガス代は、サーチャーが獲得できる MEV の 100%までになります(ガス代が MEV の 100%を越えれば、サーチャーは赤字になるため)。 + +ただし、[分散型取引所(DEX)の裁定取引](#mev-examples-dex-arbitrage)のように競争が激しい MEV の抽出機会の場合、非常に多くのユーザーが利益を伴う裁定取引を実行したいと考えるため、サーチャーは、この MEV における全収益の 90%あるいはそれ以上をバリデータに支払う必要がある場合があります。 裁定取引が実行できる唯一の保証は、最も高いガス代を持つトランザクションを送信することだからです。 + +### ガス・ゴルフ {#mev-extraction-gas-golfing} + +上記の力学に基づき、「ガス・ゴルフ(gas golfing)」(ガス代が最も安価になるようにトランザクションをプログラミングすること)の能力が競合上の優位性として確立されています。ガス・ゴルフにより、サーチャーはより高価なガス代を設定しつつ、ガス代の合計額を一定に抑えられるためです(ガス代=ガス価格 ÷ 使用ガス量)。 + +よく知られているガス・ゴルフのテクニックとしては、以下があります:多くのゼロを持つ文字列で始まるアドレス (例: [0x0000000000C521824EaFf97Eac7B73B084ef9306](https://etherscan.io/address/0x0000000000c521824eaff97eac7b73b084ef9306)) を使う方法では、保存スペースが小さくなるためガス代も低くなります。あるいは、少額の[ERC-20](/developers/docs/standards/tokens/erc-20/) トークン残高をコントラクトに残しておく方法もありますが、これは(残高が 0 の場合に)ストレージスロットを初期化すると、 ストレージスロットを更新する場合よりも多くのガスが消費される点を利用したものです。 サーチャーのコミュニティでは、ガスの使用量を減らすためのテクニックが活発に研究されています。 + +### 汎用フロントランナー {#mev-extraction-generalized-frontrunners} + +一部のサーチャーは、利益を伴う MEV 機会を検出するために複雑なアルゴリズムを開発する代わりに、汎用的なフロントランナーを実行します。 汎用フロントランナーとは、利益を伴うトランザクションを検出するためにメモリプールを監視するボットです。 汎用フロントランナーは、潜在的に利益を伴うトランザクションのコードをコピーし、フロントランナーのアドレスで置き換えた上でトランザクションをローカルで実行することで、修正後のトランザクションがフロントランナーのアドレスに収益をもたらすことをダブルチェックします。 このトランザクションが実際に利益をもたらすことが確認できれば、フロントランナーはアドレスを置き換えた修正後のトランザクションをより高いガス代と共に送信し、本来のトランザクションよりも「優位に立つ」ことで、本来のサーチャーが得ようとした MEV を獲得することができるのです。 + +### ブラッシュボット {#mev-extraction-flashbots} + +フラッシュボットは、実行クライアントを拡張する独立したプロジェクトであり、サーチャーに対して、パブリックのメモリプールに公開することなく、MEV トランザクションをバリデータに送信できるサービスを提供します。 このサービスを使用すれば、汎用フロントランナーを用いたトランザクションに実行を先回りされることを防ぐことができます。 + +## MEV の実例 {#mev-examples} + +ブロックチェーンにおいて MEV が発生するケースは、いくつかの種類があります。 + +### DEX における裁定取引 {#mev-examples-dex-arbitrage} + +[分散型取引所 (DEX)](/glossary/#dex)における裁定取引は、最もシンプルでよく知られている MEV の機会です。 このため、ユーザー間の競争も最も激しくなっています。 + +具体的には、以下のように発生します:2 カ所の DEX が同じトークンを異なる価格で提供している場合、より安価に設定した DEX でトークンを購入し、より高価に設定した DEX で売却すれば、1 回の不可分な取引で利益を得ることができます。 ブロックチェーンの仕組みにより、全くリスクを伴わない裁定取引が可能になります。 + +[これは](https://etherscan.io/tx/0x5e1657ef0e9be9bc72efefe59a2528d0d730d478cfc9e6cdd09af9f997bb3ef4)、Uniswap および Sushiswap における ETH/DAI ペアの価格差を利用して、サーチャーが 1,000ETH を 1,045ETH に変換して収益を得た裁定取引の例です。 + +### 清算 {#mev-examples-liquidations} + +貸出プロトコルによる精算も、よく知られた MEV 獲得機会のひとつです。 + +Maker や Aave のような貸出プロトコルでは、ユーザーは何らかの担保(例: ETH)を預入しなければなりません。 預け入れられた担保は、他のユーザーに貸し出されます。 + +ユーザーは、この仕組みを活用して、預け入れた担保に対する一定の上限額まで、自らの必要に応じて他のユーザーから資産やトークンを借り入れることができます(例: MakerDAO のガバナンス提案に投票するために、MKR を借り入れる場合)。 例えば、借入可能額が預け入れた担保の 30%までの場合、プロトコルに 100 DAI を預け入れれば、30 DAI の価値を持つ他の資産を借り入れることができます。 貸出プロトコルは、具体的な借入能力(担保に対する割合)を決定します。 + +借り手の担保価値が変動すれば、借入能力も上下します。 具体的には、市場の変動により借入資産の価値が担保価値の(例えば)30%を越えた場合(上述したように、実際の借入可能な割合は貸出プロトコルが決定します)、貸出プロトコルは通常、あらゆるユーザーに対してこの担保を精算し、瞬時に貸し手に払い戻すことを許可します(これは、伝統的な金融市場における[マージンコール](https://www.investopedia.com/terms/m/margincall.asp)の仕組みと同様です)。 一般に、担保が精算される場合に借り手は高額の精算手数料を支払う必要があり、この手数料の一部は清算人に支払われるため、MEV を獲得する機会が発生するのです。 + +サーチャーは、可能なかぎり高速にブロックチェーンのデータを分析することで、精算の対象となりうる借り手を特定し、精算トランザクションを他に先がけて送信し、精算手数料を回収するための競争を行っています。 + +### サンドイッチ取引 {#mev-examples-sandwich-trading} + +サンドイッチ取引もまた、一般的な MEV 抽出の方法です。 + +サーチャーは、サンドイッチ取引を念頭に置いて DEX における大型取引のメモリプールを監視します。 例えば、あるユーザーが Uniswap で、DAI を使って 10000 UNI を購入したい場合を考えてみましょう。 これほど大きな取引は、UNI/DAI ペアの為替レートに有意な影響を与えるものであり、対 DAI の UNI 価格を大きく上昇させる可能性があります。 + +サーチャーは、この大口取引による UNI/DAI ペアに対する大まかな価格効果を計算し、大口取引の*直前に*最適な買い注文を実行して UNI を安価で購入した上で、大口取引の*直後に* 売り注文を実行し、大口注文により値上がりした価格で売却することができます。 + +しかし、サンドイッチ取引は 1 回で完結できない取引であるため(この点が、上述の DEX における裁定取引とは異なります)よりリスクが大きく、[サルモネラ攻撃](https://github.com/Defi-Cartel/salmonella)の対象となりやすい欠点を持ちます。 + +### NFT を利用した MEV {#mev-examples-nfts} + +NFT を用いた MEV の抽出は、最近発生しつつある現象であり、必ずしも利益を伴う取引ではありません。 + +しかし、NFT のトランザクションは、その他すべてのイーサリアムのトランザクションと同一のブロックチェーン上で実行されるため、サーチャーは上記で紹介した従来の MEV 獲得のためのテクニックを NFT 市場でも応用することができます。 + +例えば、人気が高い NFT ドロップが実行され、サーチャーが特定の NFT あるいは複数の NFT を持つセットを獲得したい場合、この NFT の購入リストの先頭になるようにトランザクションをプログラミングしたり、1 回のトランザクションで当該 NFT のセット全体を購入したりすることができます。 また、NFT が [ミスにより低価格で出品](https://www.theblockcrypto.com/post/113546/mistake-sees-69000-cryptopunk-sold-for-less-than-a-cent)されている場合、サーチャーは他の購入者を先回りして取引を実行し、安価で手に入れることができます。 + +NFT を使った MEV 抽出の顕著な事例としては、あるサーチャーが 700 万ドルを投じて、Cryptopunk を底値ですべて[購入した](https://etherscan.io/address/0x650dCdEB6ecF05aE3CAF30A70966E2F395d5E9E5)ケースがあります。 この事例については、買い手が MEV プロバイダーと連携してどのようにこの購入を秘匿したかについて、あるブロックチェーン研究者が[ツイッター](https://twitter.com/IvanBogatyy/status/1422232184493121538)上で説明しています。 + +### ロングテール {#mev-examples-long-tail} + +DEX における裁定取引、精算、およびサンドイッチ取引はいずれも、よく知られた MEV の獲得機会であり、新規参入のサーチャーが利益を得られる可能性は低いです。 しかし、数は少ないものの、まだ一般的でない MEV の獲得機会も存在します(NFT による MEV 獲得も、そのひとつだと言えるかもしれません)。 + +サーチャーの分野に新たに参入したい方は、このロングテールの部分に焦点を当てることで、MEV を獲得できる可能性が高まるかもしれません。 フラッシュボットの[MEV 求人板](https://github.com/flashbots/mev-job-board)には、最近発生しつつある新たな MEV 獲得機会が掲載されています。 + +## MEV の影響 {#effects-of-mev} + +MEV は必ずしも絶対悪ではなく、イーサリアムにとってはよい影響と悪い影響の両方を持ちます。 + +### よい影響 {#effects-of-mev-the-good} + +多くの分散型金融(DeFi)プロジェクトは、プロトコルの有用性と安定性を確保するために、経済的合理性に基づいて行動するユーザーに依存しています。 DEX における裁定取引は、ユーザーが各自のトークンに対して最善かつ最も適切な価格を得られることを保証するメカニズムであり、貸出プロトコルは、借入可能な比率を超過した借り手にただちに精算を迫ることで、貸し手に対する返済を保証しています。 + +経済合理性に基づき行動するサーチャーが、経済的な非効率性を発見し、それを修正することで、当該プロトコルにおける経済的なインセンティブを獲得することができなければ、DeFi のプロトコルや Dapp は現在実現されている強じん性を維持できないでしょう。 + +### 悪い影響 {#effects-of-mev-the-bad} + +アプリケーションレイヤーにおいては、サンドイッチ取引をはじめとする一部の MEV 獲得方法はユーザーの利用体験を明らかに低下させます。 サンドイッチ取引に巻き込まれたユーザーは、スリッページの被害を受け、取引条件が悪化するでしょう。 + +ネットワークレイヤーにおいては、汎用フロントランナーやガス価格のオークションが頻繁に用いられるため(複数のフロントランナーが、次のブロックに追加されるトランザクションのガス代を吊り上げる競争を行う場合)、ネットワークの混雑が悪化するだけでなく、通常のトランザクションを実行したい他のすべてのユーザーにとってもガス代が上昇してしまいます。 + +MEV は、ブロック *内部における影響に加えて、複数のブロック*間においても悪影響をもたらす場合があります。 特定のブロック内において獲得できる MEV が標準的なブロック報酬を大きく上回る場合、バリデータにとっては、ブロックを再編成し、バリデータ自身が MEV を獲得しようというインセンティブが発生しうるため、ブロックチェーンの再編成を促し、コンセンサスの安定性が損なわれる可能性があります。 + +このブロックチェーンが再編成される可能性は、 [すでにビットコインのブロックチェーンにおいて発生しています](https://dl.acm.org/doi/10.1145/2976749.2978408)。 ビットコインのブロック報酬が半減し、ブロック報酬においてトランザクション手数料が占める割合がますます大きくなると、マイナーにとっては、次のブロックで得られる報酬よりも、より高額な手数料が期待できる過去のブロックを再採掘する方が経済的に合理的である状況が発生します。 MEV の抽出が一般化した場合、イーサリアムにおいても類似の状況が発生し、イーサリアム・ブロックチェーンの健全性が損なわれる可能性があります。 + +## MEV の現況 {#state-of-mev} + +MEV の抽出は、2021 年初頭から爆発的に増加し、同年 1 月から数ヶ月にわたりガス価格が大きく高騰しました。 しかし、フラッシュボットの MEV リレーが登場した結果、汎用フロントランナーの効果が薄れ、ガス代のオークションがオフチェーンで実行されるようになったため、通常のユーザーが支払うガス価格は低下しました。 + +現在も多くのサーチャーが MEV により充分な利益を得ているものの、MEV の抽出機会に対する認知度が高まり、同じ機会により多くのサーチャーが参加するようになるにつれ、MEV の総収益のうちバリデータの利益が占める割合はますます大きくなるでしょう(と言うのも、上記で説明したガス代のオークションと同様の状況は、非公開の取引を通じてフラッシュボットでも発生するため、その結果発生するガス収益はバリデータが獲得するためです)。 また、MEV が発生するのはイーサリアムに限りません。イーサリアムにおける MEV の獲得機会に対する競争が激化するにつれ、サーチャーは、同じような機会が存在し、より競争相手が少ないバイナンス・スマートチェーンなどの他のブロックチェーンに移行する傾向を強めています。 + +一方、プルーフ・オブ・ワークからプルーフ・オブ・ステークへの移行や、ロールアップならびにシャーディングを活用してイーサリアムのスケーリングを実現するための継続的な取り組みなどはいずれも、MEV を取り巻く環境を一変させるものですが、それらがどのような影響を及ぼすかは現時点では明確ではありません。 プルーフ・オブ・ワークの確率論的モデルとの比較において、保証済みのブロック提案者に対してやや事前に通知することが MEV 抽出の力学をどのように変化させるのか、あるいは、[1 名のシークレットリーダー選挙](https://ethresear.ch/t/secret-non-single-leader-election/11789)および[分散型バリデータ技術](https://github.com/ethereum/distributed-validator-specs)が実装された場合に、この環境がどのような影響を被るのかは、現在のところはっきりしていません。 同様に、大部分のユーザーアクティビティがイーサリアムの外部に移行し、L2 におけるロールアップやシャードで実行される場合、どのような MEV の抽出機会が残存するのかも不明です。 + +## イーサリアムのプルーフ・オブ・ステーク(PoS)における MEV {#mev-in-ethereum-proof-of-stake} + +上述したように、MEV は全般的なユーザー体験やコンセンサスレイヤーのセキュリティに悪影響を及ぼします。 しかし、イーサリアムにおけるプルーフ・オブ・ステークへの移行(「マージ」と呼ぶ)に伴い、MEV に関連して以下のような新たなリスクが発生する可能性があります: + +### バリデータの集中 {#validator-centralization} + +マージ後のイーサリアムにおいては、バリデータ(32 ETH のセキュリティ・デポジットを行ったユーザー)は、ビーコンチェーンに追加されたブロックの検証に対するコンセンサスに参加します。 多くのユーザーにとっては、32 ETH の負担は大きすぎるため、[ステーキングプールへの参加](/staking/pools/)がより現実的なオプションとなるかもしれません。 しかし、特定のユーザーのみにバリデータが集中することを回避し、イーサリアムのセキュリティを向上させるには、[ソロステーカー](/staking/solo/)の割合を健全に保つことが望ましいと言えます。 + +しかし、MEV の抽出機会により、特定のユーザーのみがバリデータとなる傾向が強まると考えられています。 この原因のひとつとして、現在のところ、バリデータはマイナーと比較すると[ブロックの提案により得られる収入が少ない](/upgrades/merge/issuance/#how-the-merge-impacts-ETH-supply)ため、MEV の抽出がマージ後における[バリデータの収益](https://github.com/flashbots/eth2-research/blob/main/notebooks/mev-in-eth2/eth2-mev-calc.ipynb)に対して大きな影響を与えると予想されるためです。 + +ステーキングプールの規模が大きくなればなるほど、MEV の抽出機会を活用するために必要な最適化に対してより多くのリソースを投じる傾向が高まるでしょう。 これらのプールから抽出できる MEV が大きくなればなるほど、バリデータは MEV の抽出能力を向上させるためにより多くのリソースを投じ、(さらに全体的な収益増を実現する)ことになるため、結果的に[規模の経済](https://www.investopedia.com/terms/e/economiesofscale.asp#)が実現されます。 + +ソロステーカーは、利用できるリソースが少ないために、MEV の機会から利益を得られなくなるかもしれません。 これにより、独立系のバリデータが収益を高めるために大規模なステーキングプールに参加する傾向が強まり、イーサリアムにおける分散化が損なわれる可能性があります。 + +### 許可済みのメモリプール {#permissioned-mempools} + +サンドイッチ取引やフロントランナー攻撃に対処するため、取引を行うユーザーは、トランザクションのプライバシーを維持するためにバリデータを伴う取引をオフチェーンで実行するようになるかもしれません。 MEV 抽出の可能性があるトランザクションを公開メモリプールに送信するのではなく、バリデータにトランザクションを直接送信する方法では、ブロックへの追加を担うバリデータと利益を共有することができます。 + +このような取り決めをより大規模にしたものが「ダークプール」であり、一定の手数料を支払う意思があるユーザーのみが参加する、許可済みでアクセスのみ可能なメモリプールとして機能します。 このようなメモリプールを活用する傾向が強まれば、イーサリアムにおけるパーミッションレス、トラストレスの特性が失われ、ブロックチェーンが最高額入札者にとって有利な「ペイ・トゥ・プレイ」のメカニズムに変質してしまう可能性があります。 + +さらに、許可済みのメモリプールは、上述したようにユーザーの集中化というリスクを強めます。 複数のバリデータが大規模なプールを実行する場合、取引者およびユーザーにとってはトランザクションのプライバシーを維持できるという利益が発生するため、MEV の収益が増加するでしょう。 + +マージ後のイーサリアムにおいては、これらの MEV 関連の問題にどう対処するかがリサーチコミュニティにおける核心的な課題となっています。 現在のところ、マージ後のイーサリアムにおいて MEV が及ぼす分散化およびセキュリティへの悪影響を軽減するためのソリューションとしては、**提案者と作成者の分離(PBS)**および**ビルダー API**が提案されています。 + +### ブロックにおける提案者と作成者の分離(PBS) {#proposer-builder-separation} + +プルーフ・オブ・ワークであれプルーフ・オブ・ステークであれ、ブロックを作成するノードは、作成したブロックをチェーンに追加することをコンセンサスに参加する他のノードに提案します。 新しいブロックは、他のマイナーがさらにその上にブロックを構築した場合(プルーフ・オブ・ワーク)、あるいは過半数のバリデータからアテステーションを受け取った場合(プルーフ・オブ・ステーク)に、正規のブロックチェーンに追加されます。 + +この記事で紹介した MEV に関する問題点の多くは、ブロックの作成者と提案者の役割が分離されていないことに由来しています。 例えば、コンセンサスに参加しているノードは、MEV による収益を最大化するために、タイムバンディット攻撃を使ってチェーンの再編成をトリガーするインセンティブを持っています。 + +[提案者と作成者の分離(PBS)](https://ethresear.ch/t/proposer-block-builder-separation-friendly-fee-market-designs/9725) は、特にコンセンサスレイヤーにおける MEV の影響を軽減するように設計されています。 PBS の主な機能は、ブロックの作成者と提案者に対するルールを分離することです。 バリデータがブロックの提案と投票に責任を負う点は変わりませんが、**ブロックビルダー**と呼ばれる専門の新たなエンティティ・クラスが導入され、トランザクションの順番付けと構築を担当することになります。 + +PBS では、ブロックビルダーがトランザクションバンドルを作成し、ビーコンチェーン・ブロックへの追加に対して(「実行ペイロード」として)入札を行います。 次のブロック提案者として選択されたバリデータは、これを受けて、様々な入札をチェックし、最も高額な手数料のバンドルを選択します。 つまり PBS は、ブロックスペースの販売価格についてビルダーとバリデーターが交渉するオークション市場を構築するものです。 + +現在の PBS の設計では、ブロックビルダーは入札において、当該ブロックのコンテンツ(ブロックヘッダー)に対する暗号コミットメントのみを公開する[コミットメント=公開スキーム](https://gitcoin.co/blog/commit-reveal-scheme-on-ethereum/)が採用されています。 提案者は、最高額の入札を受け入れた上で、ブロックヘッダーを含む署名済みのブロック提案を作成します。 ブロックビルダーは、署名済みのブロック提案を確認した後にブロック全体を公開すると想定されており、ブロック提案が最終決定される前に、バリデータから充分な数の[アテステーション](/glossary/#attestation)を得なければなりません。 + +#### 提案者と作成者の分離は、MEV の悪影響をどの程度緩和するか? {#how-does-pbs-curb-mev-impact} + +プロトコルにおいて提案者と作成者を分離することで、MEV の抽出がバリデータの作業範囲に含まれなくなるため、コンセンサスに対する MEV の影響を軽減することができます。 これにより、今後は専用のハードウェアを稼働させているブロックビルダーが MEV の抽出機会を得ることになります。 + +ただし、ブロックビルダーはバリデータによる承認を得るために入札額を高くしなければならないため、バリデータにとっても MEV に伴う収益がまったくゼロになるわけではありません。 しかし、バリデータは MEV による収益増を直接的な目標として行動しなくなるため、タイムバンディット攻撃の脅威を低下させることができます。 + +PBS はさらに、MEV による集中化のリスクを引き下げます。 例えば、コミット=公開スキームにより、ブロックビルダーは、バリデータが MEV の抽出機会を奪い取ったり、他の構築者に公開することを行わないユーザーである信頼する必要がなくなります。 これにより、ソロステーカーが MEV 抽出による利益を得る上での障壁が低くなります。そうでなければ、ブロックビルダーはオフチェーンでの評判が高い大規模なプールを選好し、オフチェーンでの取引が増加するトレンドが発生するでしょう。 + +同じように、バリデータの側も、支払いが必須であるため、ブロックビルダーがブロックボディを秘匿したり、無効なブロックを公開しないユーザーである信頼する必要がなくなります。 つまり、提案されたブロックが参照できない場合や、他のバリデータにより無効と宣言された場合でも、当初のバリデータの手数料は処理されるのです。 他のバリデータが無効と宣言した場合、当該ブロックは単に破棄され、ブロックビルダーはすべての取引手数料および MEV 収益を失うことになります。 + +### ビルダー API {#builder-api} + +PBS(提案者と作成者の分離)は、MEV の抽出に伴う悪影響を減らす効果が期待される一方で、実装にはコンセンサス・プロトコルの変更が必要です。 具体的には、ビーコンチェーンにおける[分岐の選択](/developers/docs/consensus-mechanisms/pos/#fork-choice)ルールを変更する必要があります。 [ビルダー API](https://github.com/ethereum/builder-specs)は、信頼性の前提がより高くなるものの、提案者と作成者を実務的に分離するための一時的なソリューションです。 + +ビルダー API は、コンセンサスレイヤーのクライアントが実行レイヤーのクライアントに対して実行ペイロードを請求する際に用いられる[エンジン API](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md)の修正バージョンです。 [正直なバリデータの仕様](https://github.com/ethereum/consensus-specs/blob/dev/specs/bellatrix/validator.md)に概要が記述されている通り、ブロック提案に関する職責のために選択されたバリデータは、接続された実行クライアントにトランザクションバンドルを要求し、そのバンドルを提案されたビーコンチェーンのブロックに追加します。 + +ビルダー API はさらに、バリデータと実行レイヤーのクライアントとの間のミドルウェアとして機能します。ただし、ビーコンチェーン上のバリデータが外部エンティティからブロックを調達できる(実行クライアントを用いてローカルでブロックを構築するのではない)点が異なります。 + +以下に、ビルダー API の仕組みについて簡単に説明します: + +1. ビルダー API により、バリデータは、実行レイヤーのクライアントを実行しているブロックビルダーのネットワークに接続されます。 PBS の場合と同様に、ビルダーは、リソース集約型のブロック構築への投資に特化し、MEV や優先度チップを通じた収益最大化のために様々な戦略を用いるユーザーで構成されます。 + +2. (コンセンサスレイヤーのクライアントを実行中である)バリデータは、ビルダーのネットワークからの入札と同時に、実行ペイロードを要求します。 ビルダーからの入札には、実行ペイロードヘッダー(ペイロードのコンテンツに対する暗号コミットメント)と、バリデータに支払う手数料が含まれています。 + +3. バリデータは、送信された入札をレビューした上で、最も手数料が高い実行ペイロードを選択します。 バリデータは、ビルダー API を用いて、各自の署名と実行ペイロードヘッダーのみが含まれている「ブラインド」のビーコン用ブロック提案を作成し、ビルダーに送り返します。 + +4. ビルダー API を実行しているビルダーは、ブラインドのブロック提案を確認した上で、完全な実行ペイロードで対応すると想定されています。 これにより、バリデータは「署名済み」のビーコンブロックを作成し、ネットワークに拡散することができます。 + +5. ビルダー API を使用するバリデータの場合でも、ブロックビルダーが迅速に対応しない場合にブロック提案に伴う報酬が受け取れない場合を避けるために、ローカルでブロックを構築する必要があります。 しかしバリデータは、この時点で公開されたトランザクションあるいは他のセットを用いて別のブロックを作成することはできません。これは*曖昧化*(同じスロット内の 2 つのブロックに署名すること)を発生させるため、スラッシングの対象である違反行為です。 + +ビルダー API の実装例としては、イーサリアムに対する MEV の悪影響を軽減するように[フラッシュボットのオークション機能](https://docs.flashbots.net/Flashbots-auction/overview/)を改善した[MEV Boost](https://github.com/flashbots/mev-boost)があります。 フラッシュボットのオークションでは、プルーフ・オブ・ワークを行うマイナーに対し、利益を伴うブロックを作成する作業を**サーチャー**と呼ばれる専門のユーザーに外注することが認められています。 + +サーチャーは、利益性が高い MEV の機会を発見するために、マイナーに対して[非公開の入札価格](https://en.wikipedia.org/wiki/First-price_sealed-bid_auction)と共にトランザクションバンドルを送信してブロックへの追加を求めます。 Go-Ethereum(Geth)クライアントの分岐後のバージョンである mev-geth を実行しているマイナーは、最も収益が大きいバンドルを選択し、それを新たなブロックの一部としてマイニングすればよいのです。 マイナーからスパムや無効のトランザクションから保護するため、トランザクションバンドルは、マイナーが受信する前に、**リレイヤー**による検証が行われます。 + +MEV Boost は、フラッシュボットにおける従来のオークションと同一の仕組みを採用していますが、イーサリアムにおけるプルーフ・オブ・ステークへの移行に対応した新機能が追加されています。 サーチャーが利益を伴う MEV トランザクションをブロックに追加しようとする点は同じですが、**ビルダー**と呼ばれる新たな専門ユーザーがトランザクションおよびバンドルをブロックにまとめる役割を担います。 ビルダーは、サーチャーから送信された非公開の入札価格を受け入れ、最適化を実行することで最も利益性が高い注文を決定します。 + +ここでもリレイヤーは、提案者に送信する事前にトランザクションを検証する責任を負う点は変わりません。 しかし MEV Boost では、ビルダーから送信されたブロックボディおよびバリデータから送信されたブロックヘッダーを保存することで、[データの可用性](/developers/docs/data-availability/)を提供する仕組みである**エスクロー**が導入されています。 エスクローでは、リレーに接続されたバリデータが利用可能な実行ペイロードを要求し、MEV Boost の注文アルゴリズムを用いて、入札価格および MEV チップが最も高いペイロードヘッダーを選択します。 + +#### ビルダー API は、どのように MEV の悪影響を軽減するのか? {#how-does-builder-api-curb-mev-impact} + +ビルダー API がもたらす利点の核心は、MEV の抽出機会を利用できるユーザー層を民主化しうるという点にあります。 コミット=公開スキームを採用することで、信頼性の前提が必要なくなり、MEV から利益を得たいと考えるバリデータにおける参入障壁が低くなります。 このため、ソロステーカーが MEV による収益増を目指す場合に、大規模なステーキングプールに参入しなければならないという圧力が少なくなるでしょう。 + +ビルダー API の実装が一般化すれば、ブロックビルダー間の競争が促進され、検閲耐性が高まるでしょう。 バリデータは、複数のビルダーからの入札をレビューするようになるため、1 件または複数のユーザートランザクションを検閲したいと考えるビルダーは、検閲の意図を持たないその他すべてのビルダーよりも高値を提示しなければならなくなります。 これにより、ユーザーを検閲するコストが劇的に上昇するため、検閲できるユーザーが減ると予想されます。 + +MEV Boost をはじめとするいくつかのプロジェクトでは、フロントランニングやサンドイッチ取引などを開始したいトレーダーなど、特定のユーザーにトランザクションのプライバシーを提供するという全般的な構造設計の一環としてビルダー API を採用しています。 これは、ユーザーとブロックビルダー間に非公開のコミュニケーションチャネルを提供することで達成されます。 上述の許可済みメモリプールの場合とは異なり、このアプローチは以下の点で有益だと言えます: + +1. 複数のビルダーが市場で共存することで、実務上検閲の意味がなくなるため、ユーザーにとって有益です。 反対に、集中型で信頼ベースのダークプールが存在する場合、数名のブロックビルダーに権力が集中し、検閲が発生する可能性が高まります。 + +2. ビルダー API のソフトウェアはオープンソースであるため、どのユーザーでもブロックビルダー関連のサービスを提供できます。 これにより、ユーザーは特定のブロックビルダーの使用を強制されることがないため、イーサリアムの中立性やパーミッションレス性が向上します。 さらい、MEV の獲得を目指すトレーダーが、非公開のトランザクションチャネルを利用することで意図せずに集中化を促進してしまうことがなくなります。 + +## 関連リソース {#related-resources} + +- [フラッシュボット関連文書](https://docs.flashbots.net/) +- [フラッシュボットの GitHub](https://github.com/flashbots/pm) +- [MEV-Explore](https://explore.flashbots.net/) - _MEV のトランザクションを対象とするダッシュボードおよび同時検索プログラム_ +- [mevboost.org](https://www.mevboost.org/) - _MEV-Boost リレーとブロックビルダーに関するリアルタイムの統計を提供するトラッカー_ + +## 参考文献 {#further-reading} + +- [採掘可能価値(MEV)とは何か?](https://blog.chain.link/what-is-miner-extractable-value-mev/) +- [MEV と私](https://research.paradigm.xyz/MEV) +- [イーサリアムはダークな森である](https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest/) +- [ダークな森から抜け出すには](https://samczsun.com/escaping-the-dark-forest/) +- [フラッシュボッツ: MEV 危機をフロントランニングするには](https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752) +- [@bertcmiller の MEV 関連スレッド](https://twitter.com/bertcmiller/status/1402665992422047747) +- [MEV-Boost: マージに対応した Flashbots のアーキテクチャ](https://ethresear.ch/t/mev-boost-merge-ready-flashbots-architecture/11177) +- [MEV Boost とは](https://www.alchemy.com/overviews/mev-boost) +- [mev-boost を実行する理由](https://writings.flashbots.net/writings/why-run-mevboost/) +- [イーサリアムへのヒッチハイク・ガイド](https://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum) diff --git a/public/content/translations/ja/developers/docs/networking-layer/index.md b/public/content/translations/ja/developers/docs/networking-layer/index.md new file mode 100644 index 00000000000..2e0de61d9b4 --- /dev/null +++ b/public/content/translations/ja/developers/docs/networking-layer/index.md @@ -0,0 +1,155 @@ +--- +title: ネットワークレイヤー +description: イーサリアムネットワークレイヤー入門 +lang: ja +sidebarDepth: 2 +--- + +イーサリアムは、何千ものノードからなるピアツーピアネットワークですが、標準プロトコルを使用して、複数のノード間で直接的に相互に通信できる必要があります。 「ネットワークレイヤー」とは、これらのノードが互いを見つけて情報を交換可能とする為のプロトコルが集まったものです。 イーサリアムのネットワークレイヤーには、特定のノード間でのリクエストとレスポンスの交換(1 対 1 の通信)だけでなく、ネットワーク上での情報の「ゴシップ」(1 対多の通信)も含まれます。 各ノードは、正しい情報を送受信するために、特定のネットワークルールを遵守する必要があります。 + +クライアントソフトウェアには 2 つの部分(実行クライアントとコンセンサスクライアント)があり、それぞれ独自のネットワークスタックを備えています。 他のイーサリアムノードと通信するだけでなく、実行クライアントとコンセンサスクライアントは互いに通信する必要があります。 このページでは、初心者向けに、この通信を可能にするプロトコルを説明をします。 + +実行クライアントは、実行レイヤーのピアツーピアネットワーク上でトランザクションをゴシップします。 これには、認証されたピア同士の暗号化通信が必要です。 ブロックを提案するバリデータが選ばれると、そのノードのローカルトランザクションプールからトランザクションがローカル RPC 接続を介してコンセンサスクライアントに渡され、ビーコンブロックにパッケージ化されます。 コンセンサスクライアントはその後、ピアツーピアネットワーク上でビーコンブロックをゴシップします。 これは 2 つの別々のピアツーピアネットワークを必要とします。1 つはトランザクションゴシップのための実行クライアントを接続するもので、もう 1 つはブロックゴシップのためのコンセンサスクライアントを接続するものです。 + +## 前提知識 {#prerequisites} + +このページを理解する上で、あらかじめ、イーサリアム [ノードとクライアント](/developers/docs/nodes-and-clients/) についてある程度理解を深めておくと良いでしょう。 + +## 実行レイヤー {#execution-layer} + +実行レイヤーのネットワークプロトコルは、2 つのスタックに分割されています: + +- ディスカバリースタック: UDP 上に構築され、新しいノードがピアに接続できるようにする + +- DevP2P スタック:TCP 上に構築され、ノードが情報交換できるようにする + +両スタックは、並列的に動作します。 ディスカバリースタックは新しいネットワーク参加者をネットワークに送り込み、DevP2P スタックによって相互通信が可能になります。 + +### ディスカバリー(Discovery) {#discovery} + +ディスカバリーとは、ネットワークの他のノードを見つけるプロセスです。 これは、小規模なブートノード(クライアントをすぐに見つけピアに接続できるように、アドレスがクライアントに [ハードコードされている](https://github.com/ethereum/go-ethereum/blob/master/params/bootnodes.go)ノード)を使用してブートストラップされています。 これらのブートノードは、新しいノードをピアのセットに追加するためにのみ存在します。これが唯一の目的で、チェーンの同期などの通常のクライアントタスクには参加せず、クライアントが初回起動した時にのみ使用されます。 + +ノードとブートノードとのやり取りに使用されるプロトコルは、[Kademlia](https://medium.com/coinmonks/a-brief-overview-of-kademlia-and-its-use-in-various-decentralized-platforms-da08a7f72b8f)が修正された形式です。これは、[分散ハッシュテーブル](https://en.wikipedia.org/wiki/Distributed_hash_table)を使用してノードのリストを共有します。 各ノードには、最も近いピアに接続するために必要な情報を含む、分散ハッシュテーブルのバージョンがあります。 この「近さ」とは地理的なものではありません。ここでの距離はノードの ID の類似性によって定義されるものです。 各ノードのテーブルは、セキュリティ機能として定期的に更新されます。 例えば、 [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5)では、ディスカバリープロトコルのノードは、クライアントがサポートするサブプロトコルを表示する「広告」を送信することもでき、ピアは両者が通信に使用できるプロトコルについて取り決めることができます。 + +ディスカバリーは、PING-PONG から始まります。 ピンポンが成功すると、新しいノードはブートノードに「結合」されます。 ネットワークに入る新しいノードの存在をブートノードに通知する最初のメッセージは `PING` です。 この`PING`には、新しいノード、ブートノード、および期限切れのタイムスタンプに関するハッシュ化された情報が含まれています。 ブートノードは`PING`を受信し、 `PING` のハッシュを含む`PONG`を返します。 `PING`と`PONG`のハッシュが一致すると、新しいノードとブートノードの接続が確認され、「結合」されたと言うことになります。 + +一度結合されると、新しいノードはブートノードに`FIND-NEIGHBOURS`リクエストを送信できるようになります。 ブートノードから返されるデータには、新しいノードが接続できるピアのリストが含まれています。 ノードが結合されていない場合、`FIND-NEIGHBOURS`リクエストは失敗となるため、新しいノードはネットワークに入ることができません。 + +新しいノードは、ブートノードから近隣ノードのリストを受け取ると、それぞれのノードと PING-PONG を開始します。 PING-PONG が成功すると、新しいノードとその隣接ノードが結合され、メッセージの交換が可能になります。 + +``` +start client --> connect to bootnode --> bond to bootnode --> find neighbours --> bond to neighbours +``` + +実行クライアントは、現在[Discv4](https://github.com/ethereum/devp2p/blob/master/discv4.md)ディスカバリープロトコルを使っています。[Discv5](https://github.com/ethereum/devp2p/tree/master/discv5)プロトコルに移行するための積極的に取り組んでいます。 + +#### ENR: イーサリアムノードレコード(Ethereum Node Record) {#enr} + +[イーサリアムノードレコード (ENR)](/developers/docs/networking-layer/network-addresses/) とは、署名(合意された 認証スキームに従って作成されたレコード内容のハッシュ)、レコードへの変更を追跡するシーケンス番号、およびキーと値のペアの任意のリストという 3 つの基本要素を含むオブジェクトのことです。 これは、新しいピア間で識別情報の交換を容易にする、将来性のあるフォーマットで、イーサリアムノードの[ネットワークアドレス](/developers/docs/networking-layer/network-addresses)の優先フォーマットです。 + +#### ディスカバリーが UDP で構築されている理由 {#why-udp} + +UDP はエラーチェック、失敗したパケットの再送、接続の動的な開閉をサポートしません。UDP は、受信に成功したかどうかにかかわらず、単にターゲットに対して連続的な情報ストリームを送信するだけです。 こうした最小限の機能により、オーバーヘッドも最小限に抑えられ、接続は非常に高速になります。 ノードが単に自分の存在を知らせ、相手との正式な接続を確立するためのディスカバリーにとっては、UDP で十分に要件を満たすことができます。 しかし、ディスカバリー以外の残りのネットワークスタックにとっては、UDP では目的を満たすことはできません。 ノード間の情報交換は非常に複雑であるため、再送信やエラーチェックなどに対応できる、より高機能なプロトコルが必要です。 TCP に付随する追加のオーバーヘッドは、まさにこうした追加機能として必要な要件を満たしています。 したがって、P2P スタックの大部分は TCP で動作することになります。 + +### DevP2P {#devp2p} + +DevP2P は、それ自体がピアツーピアネットワークの確立と維持するためにイーサリアムが実装しているプロトコルのスタックをすべてを包括しています。 新しいノードがネットワークに参加した後、その相互通信は[DevP2P](https://github.com/ethereum/devp2p)スタックのプロトコルによって制御されます。 これらはすべて TCP 上にあり、RLPx トランスポートプロトコル、ワイヤプロトコル、およびいくつかのサブプロトコルが含まれています。 [RLPx](https://github.com/ethereum/devp2p/blob/master/rlpx.md)は、ノード間のセッションを開始、認証、維持するためのプロトコルです。 RLPx はデータをノード間で送信するための最小限の構造にエンコードする非常にスペース効率の良い RLP (再帰的な長さのプレフィックス)を使ってメッセージをエンコードします。 + +2 つのノード間の RLPx セッションは、最初の暗号化ハンドシェイクで始まります。 このプロセスには、ノードが auth メッセージを送信し、ピアによって検証されることが含まれます。 検証に成功すると、ピアは auth-acknowledgement メッセージを生成し、イニシエーター・ノードに返します。 これは、ノードが非公開で安全に通信できるようにするための鍵交換プロセスです。 暗号化ハンドシェイクが成功すると、両ノードに「Hello」メッセージを互いに「ワイヤ上」で送信するようにトリガーします。 Hello メッセージの交換に成功すると、ワイヤプロトコルが開始されます。 + +Hello メッセージには以下が含まれます。 + +- プロトコルバージョン +- クライアント ID +- ポート +- ノード ID +- サポートされるサブプロトコルのリスト + +これらは両ノード間で相互作用を成功させるために、共有される機能を定義し、通信を構成するのに必要な情報です。 各ノードがサポートするサブプロトコルのリストを比較し、両ノードに共通するものをセッションで使用できるようにするサブプロトコルネゴシエーションというプロセスがあります。 + +ワイヤプロトコルは、Hello メッセージとともに、接続が終了することを相手に警告する「切断」メッセージも送信することができます。 ワイヤプロトコルは、セッションを開いたままにするために定期的に送信される PING と PONG メッセージも含んでいます。 したがって、RLPx とワイヤプロトコルの交換は、ノード間の通信の基礎を確立し、特定のサブプロトコルに従って交換される有用な情報のための土台を提供します。 + +### サブプロトコル {#sub-protocols} + +#### ワイヤプロトコル {#wire-protocol} + +ピアが接続され、RLPx セッションが開始されると、ワイヤプロトコルはピアがどのように通信するかを定義します。 当初、ワイヤプロトコルは、チェーンの同期、ブロックの伝搬、トランザクションの交換という 3 つの主要なタスクを定義していました。 しかし、イーサリアムがプルーフ・オブ・ステーク(PoS)に移行すると、ブロック伝搬とチェーン同期はコンセンサスレイヤーの一部となりました。 トランザクションの交換は、依然として実行クライアントの範疇にあります。 トランザクションの交換とは、保留中のトランザクションをノード間で交換し、マイナーがその一部を次のブロックに含めるために選択できるようにすることです。 これらのタスクの詳細については、[こちら](https://github.com/ethereum/devp2p/blob/master/caps/eth.md)をご覧ください。 これらのサブプロトコルをサポートするクライアントは、[JSON-RPC](/developers/docs/apis/json-rpc/)を介してそれらを公開します。 + +#### ライト・イーサリアム・サブプロトコル(les) {#les} + +これは、ライトクライアントの同期用の最小限のプロトコルです。 フルノードはインセンティブなしにライトクライアントにデータを提供する必要があるため、従来このプロトコルはほとんど使用されてきませんでした。 実行クライアントのデフォルトの動作は、les でライトクライアントのデータを提供しないようになっています。 詳細については、les [仕様](https://github.com/ethereum/devp2p/blob/master/caps/les.md)をご確認ください。 + +#### スナップ(Snap) {#snap} + +[スナッププロトコル](https://github.com/ethereum/devp2p/blob/master/caps/snap.md#ethereum-snapshot-protocol-snap)は、ピアが最近の状態のスナップショットを交換できるようにするオプションの拡張機能で、ピアがマークルツリーの中間ノードをダウンロードせずにアカウントとストレージデータを検証できるようにするものです。 + +#### ウィットネスプロトコル(Wit) {#wit} + +[ウィットネスプロトコル](https://github.com/ethereum/devp2p/blob/master/caps/wit.md#ethereum-witness-protocol-wit) は、ピア間で状態のウィットネスを交換できるようにするオプションの拡張機能で、クライアントをチェーンの先頭に同期させるのに役立ちます。 + +#### ウィスパー(Whisper) {#whisper} + +ウィスパーは、ブロックチェーンに情報を書き込むことなくピア間で安全なメッセージングを提供することを目的としたプロトコルです。 DevP2P ワイヤープロトコルの一部でしたが、現在は非推奨となっています。 他にも同様の目的を持つ[関連プロジェクト](https://wakunetwork.com/)があります。 + +## コンセンサスレイヤー(consensus layer) {#consensus-layer} + +コンセンサスクライアントは、仕様が異なる別のピアツーピアネットワークに参加します。 コンセンサスクライアントは、ピアから新しいブロックを受け取り、自分がブロックを提案する番が来たらブロードキャストできるよう、ブロック・ゴシップに参加する必要があります。 実行レイヤーと同様に、ノードがピアを見つけてブロックや認証などを取引するための安全なセッションを確立できるよう、まずディスカバリー・プロトコルが必要です。 + +### ディスカバリ {#consensus-discovery} + +実行クライアントと同様に、コンセンサスクライアントもピアを見つけるために UDP 上の [discv5](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-discovery-domain-discv5) を使用します。 コンセンサスレイヤーの discv5 の実装は、discv5 を[libP2P](https://libp2p.io/)スタックに接続するアダプターを含んでおり、DevP2P を非推奨としている点のみ、実行クライアントの実装と異なります。 実行レイヤーの RLPx セッションは廃止され、libP2P のノイズセキュアチャネル・ハンドシェイクが採用されています。 + +### ENR {#consensus-enr} + +コンセンサスノードの ENR には、ノードの公開鍵、IP アドレス、UDP および TCP ポート、コンセンサス特有の 2 つのフィールド(認証サブネットビットフィールドと`eth2`)が含まれます。 前者は、ノードが特定の認証ゴシップ・サブネットワークに参加しているピアを見つけやすくします。 `eth2`キーには、ノードが使用しているイーサリアムフォークのバージョンに関する情報が含まれており、ピアが正しいイーサリアムに接続していることを確認できます。 + +### libP2P {#libp2p} + +libP2P スタックは、ディスカバリー後のすべての通信をサポートします。 クライアントは、ENR で定義された IPv4 および/または IPv6 でダイヤルおよびリッスンできます。 libP2P レイヤーのプロトコルは、ゴシップとリクエスト/レスポンスのドメインに細分化されます。 + +### ゴシップ(Gossip) {#gossip} + +ゴシップドメインは、ネットワーク全体に直ぐに広まる必要のあるすべての情報を含みます。 これには、ビーコンブロック、証明、アテステーション、イグジット、スラッシングが含まれます。 これは libP2P ゴシップサブ v1 を使って送信され、受信・送信するゴシップペイロードの最大サイズなどの各ノードにローカルに保存されている様々なメタデータに依存します。 ゴシップドメインに関する詳細な情報は、[こちら](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-gossip-domain-gossipsub)をご覧ください。 + +### リクエスト/レスポンス(Request-response) {#request-response} + +リクエスト/レスポンス・ドメインには、クライアントがピアに特定の情報を要求するためのプロトコルが含まれます。 例えば、あるルートハッシュに一致する特定のビーコンブロックや、スロット範囲内のビーコンブロックのリクエストなどがあります。 レスポンスは常に snappy(圧縮アルゴリズムの一つ)圧縮された SSZ エンコードバイトとして返されます。 + +## コンセンサスクライアントで RLP より SSZ が好まれる理由 {#ssz-vs-rlp} + +SSZ は、シンプル・シリアライゼーションの略です。 SSZ は、固定オフセットを使うことで、構造全体をデコードすることなく、エンコードされたメッセージの個々の部分を簡単にデコードすることができます。これは、エンコードされたメッセージから特定の情報を効率的に取得できるため、コンセンサスクライアントにとって非常に便利な機能です。 また、マークルプロトコルと統合するように特別に設計されており、マークル化に関連した効率化も得られます。 コンセンサスレイヤーのハッシュはすべてマークルルートであるため、これは大きな改善となります。 また、SSZ は値の一意性も保証します。 + +## 実行クライアントとコンセンサスクライアントの接続 {#connecting-clients} + +コンセンサスクライアントと実行クライアントは、並列に動作します。 コンセンサスクライアントが実行クライアントに指示を出し、実行クライアントがコンセンサスクライアントにトランザクション・バンドルを渡してビーコンブロックに含めることができるように、両者は接続されている必要があります。 両クライアント間の通信は、ローカル RPC 接続を使用して実現することができます。 [「エンジン API」](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) と呼ばれる API が、両クライアント間で送信される命令を定義します。 両クライアントは単一のネットワーク ID の背後に位置するため、各クライアントの個別のキー(eth1 キーと eth2 キー)を含む ENR(イーサリアムノードレコード)を共有します。 + +制御フローの概要を以下に示します。括弧内は関連するネットワークスタックです。 + +### コンセンサスクライアントがブロック生成者でない場合: + +- コンセンサスクライアントがブロック・ゴシップ・プロトコル(コンセンサス p2p)を介してブロックを受信する +- コンセンサスクライアントはブロックを事前に検証し、確正しいメタデータを持つ有効な送信者からのものであることを確実にする +- ブロックのトランザクションが実行ペイロードとして実行レイヤーに送信される(ローカル RPC 接続) +- 実行レイヤーはトランザクションを実行し、ブロックヘッダーの状態を検証する(ハッシュ値の一致をチェックする) +- 実行レイヤーは検証データをコンセンサスレイヤーに返し、ブロックは検証済みとみなされる(ローカル RPC 接続) +- コンセンサスレイヤーはブロックを自分のブロックチェーンの先頭に追加して証明し、そのアテステーション(証明)をネットワーク上にブロードキャストする(コンセンサス p2p) + +### コンセンサスクライアントがブロック生成者の場合: + +- コンセンサスクライアントが次のブロック生成者であることを通知される(consensus p2p) +- コンセンサスレイヤーが実行クライアントの`create block`メソッドを呼び出す(ローカル RPC) +- 実行レイヤーは、トランザクション・ゴシップ・プロトコルによって生成されたトランザクション・メンプールにアクセスする(実行 p2p) +- 実行クライアントはトランザクションをブロックにまとめ、トランザクションを実行し、ブロックハッシュを生成する +- コンセンサスクライアントは実行クライアントからトランザクションとブロックハッシュを取得し、ビーコンブロックに追加する(ローカル RPC) +- コンセンサスクライアントは、ブロック・ゴシップ・プロトコルでブロックをブロードキャストする(コンセンサス p2p) +- 他のクライアントが、ブロック・ゴシップ・プロトコルで提案されたブロックを受信し、上記のように検証する(コンセンサス p2p) + +十分な数のバリデータによってブロックが認証されると、チェーンの先頭に追加され、正当性が確認された後、最終的に確定(ファイナライズ)される。 + +![](cons_client_net_layer.png) ![](exe_client_net_layer.png) + +コンセンサスクライアントと実行クライアントのネットワークレイヤー概略図( [ethresear.ch](https://ethresear.ch/t/eth1-eth2-client-relationship/7248) より) + +## 参考文献 {#further-reading} + +[DevP2P](https://github.com/ethereum/devp2p) [LibP2p](https://github.com/libp2p/specs) [コンセンサスレイヤーネットワークの仕様](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#enr-structure) カデムリアから discv5[discv5](https://vac.dev/kademlia-to-discv5) [カデムリアペーパー](https://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf) [Ethereum ピアツーピア入門](https://p2p.paris/en/talks/intro-ethereum-networking/) [eth1eth2 の関係](http://ethresear.ch/t/eth1-eth2-client-relationship/7248) [マージと eth2 クライアントの詳細に関するビデオ](https://www.youtube.com/watch?v=zNIrIninMgg) diff --git a/src/content/translations/ja/developers/docs/networking-layer/network-addresses/index.md b/public/content/translations/ja/developers/docs/networking-layer/network-addresses/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/networking-layer/network-addresses/index.md rename to public/content/translations/ja/developers/docs/networking-layer/network-addresses/index.md diff --git a/src/content/translations/ja/developers/docs/networks/index.md b/public/content/translations/ja/developers/docs/networks/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/networks/index.md rename to public/content/translations/ja/developers/docs/networks/index.md diff --git a/src/content/translations/ja/developers/docs/nodes-and-clients/client-diversity/index.md b/public/content/translations/ja/developers/docs/nodes-and-clients/client-diversity/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/nodes-and-clients/client-diversity/index.md rename to public/content/translations/ja/developers/docs/nodes-and-clients/client-diversity/index.md diff --git a/src/content/translations/ja/developers/docs/nodes-and-clients/index.md b/public/content/translations/ja/developers/docs/nodes-and-clients/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/nodes-and-clients/index.md rename to public/content/translations/ja/developers/docs/nodes-and-clients/index.md diff --git a/src/content/translations/ja/developers/docs/nodes-and-clients/nodes-as-a-service/index.md b/public/content/translations/ja/developers/docs/nodes-and-clients/nodes-as-a-service/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/nodes-and-clients/nodes-as-a-service/index.md rename to public/content/translations/ja/developers/docs/nodes-and-clients/nodes-as-a-service/index.md diff --git a/src/content/translations/ja/developers/docs/nodes-and-clients/run-a-node/index.md b/public/content/translations/ja/developers/docs/nodes-and-clients/run-a-node/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/nodes-and-clients/run-a-node/index.md rename to public/content/translations/ja/developers/docs/nodes-and-clients/run-a-node/index.md diff --git a/src/content/translations/ja/developers/docs/oracles/index.md b/public/content/translations/ja/developers/docs/oracles/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/oracles/index.md rename to public/content/translations/ja/developers/docs/oracles/index.md diff --git a/src/content/translations/ja/developers/docs/programming-languages/dart/index.md b/public/content/translations/ja/developers/docs/programming-languages/dart/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/programming-languages/dart/index.md rename to public/content/translations/ja/developers/docs/programming-languages/dart/index.md diff --git a/src/content/translations/ja/developers/docs/programming-languages/delphi/index.md b/public/content/translations/ja/developers/docs/programming-languages/delphi/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/programming-languages/delphi/index.md rename to public/content/translations/ja/developers/docs/programming-languages/delphi/index.md diff --git a/src/content/translations/ja/developers/docs/programming-languages/dot-net/index.md b/public/content/translations/ja/developers/docs/programming-languages/dot-net/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/programming-languages/dot-net/index.md rename to public/content/translations/ja/developers/docs/programming-languages/dot-net/index.md diff --git a/src/content/translations/ja/developers/docs/programming-languages/golang/index.md b/public/content/translations/ja/developers/docs/programming-languages/golang/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/programming-languages/golang/index.md rename to public/content/translations/ja/developers/docs/programming-languages/golang/index.md diff --git a/src/content/translations/ja/developers/docs/programming-languages/index.md b/public/content/translations/ja/developers/docs/programming-languages/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/programming-languages/index.md rename to public/content/translations/ja/developers/docs/programming-languages/index.md diff --git a/src/content/translations/ja/developers/docs/programming-languages/java/index.md b/public/content/translations/ja/developers/docs/programming-languages/java/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/programming-languages/java/index.md rename to public/content/translations/ja/developers/docs/programming-languages/java/index.md diff --git a/src/content/translations/ja/developers/docs/programming-languages/javascript/index.md b/public/content/translations/ja/developers/docs/programming-languages/javascript/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/programming-languages/javascript/index.md rename to public/content/translations/ja/developers/docs/programming-languages/javascript/index.md diff --git a/src/content/translations/ja/developers/docs/programming-languages/python/index.md b/public/content/translations/ja/developers/docs/programming-languages/python/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/programming-languages/python/index.md rename to public/content/translations/ja/developers/docs/programming-languages/python/index.md diff --git a/src/content/translations/ja/developers/docs/programming-languages/ruby/index.md b/public/content/translations/ja/developers/docs/programming-languages/ruby/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/programming-languages/ruby/index.md rename to public/content/translations/ja/developers/docs/programming-languages/ruby/index.md diff --git a/src/content/translations/ja/developers/docs/programming-languages/rust/index.md b/public/content/translations/ja/developers/docs/programming-languages/rust/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/programming-languages/rust/index.md rename to public/content/translations/ja/developers/docs/programming-languages/rust/index.md diff --git a/src/content/translations/ja/developers/docs/scaling/index.md b/public/content/translations/ja/developers/docs/scaling/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/scaling/index.md rename to public/content/translations/ja/developers/docs/scaling/index.md diff --git a/src/content/translations/ja/developers/docs/scaling/optimistic-rollups/index.md b/public/content/translations/ja/developers/docs/scaling/optimistic-rollups/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/scaling/optimistic-rollups/index.md rename to public/content/translations/ja/developers/docs/scaling/optimistic-rollups/index.md diff --git a/src/content/translations/ja/developers/docs/scaling/plasma/index.md b/public/content/translations/ja/developers/docs/scaling/plasma/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/scaling/plasma/index.md rename to public/content/translations/ja/developers/docs/scaling/plasma/index.md diff --git a/src/content/translations/ja/developers/docs/scaling/sidechains/index.md b/public/content/translations/ja/developers/docs/scaling/sidechains/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/scaling/sidechains/index.md rename to public/content/translations/ja/developers/docs/scaling/sidechains/index.md diff --git a/src/content/translations/ja/developers/docs/scaling/state-channels/index.md b/public/content/translations/ja/developers/docs/scaling/state-channels/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/scaling/state-channels/index.md rename to public/content/translations/ja/developers/docs/scaling/state-channels/index.md diff --git a/src/content/translations/ja/developers/docs/scaling/validium/index.md b/public/content/translations/ja/developers/docs/scaling/validium/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/scaling/validium/index.md rename to public/content/translations/ja/developers/docs/scaling/validium/index.md diff --git a/src/content/translations/ja/developers/docs/scaling/zk-rollups/index.md b/public/content/translations/ja/developers/docs/scaling/zk-rollups/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/scaling/zk-rollups/index.md rename to public/content/translations/ja/developers/docs/scaling/zk-rollups/index.md diff --git a/public/content/translations/ja/developers/docs/smart-contracts/anatomy/index.md b/public/content/translations/ja/developers/docs/smart-contracts/anatomy/index.md new file mode 100644 index 00000000000..81d4f8fc7fc --- /dev/null +++ b/public/content/translations/ja/developers/docs/smart-contracts/anatomy/index.md @@ -0,0 +1,658 @@ +--- +title: スマートコントラクトの解剖学 +description: スマートコンタクトの構造、すなわち機能、データ、変数について詳しく調べます。 +lang: ja +--- + +スマートコントラクトは、イーサリアム上のアドレスで実行されるプログラムです。 それらはトランザクションの受信時に実行できるデータと関数で構成されています。 ここでは、スマートコントラクトの構成要素の概要を説明します。 + +## 前提知識 {#prerequisites} + +最初に、[スマートコントラクト](/developers/docs/smart-contracts/)を必ずお読みください。 このドキュメントは、JavaScript や Python などのプログラミング言語に精通していることを前提としています。 + +## データ {#data} + +すべてのコントラクトのデータは、`storage`または`memory`のいずれかのロケーションに割り当てる必要があります。 スマートコントラクトのストレージの変更にはコストがかかりますので、データをどこに格納するかを考える必要があります。 + +### ストレージ {#storage} + +永続データはストレージと呼ばれ、状態変数で表されます。 これらの値は、ブロックチェーンに永続的に保存されます。 コントラクトがコンパイル時に必要なブロックチェーンのストレージ容量を追跡できるように、型を宣言する必要があります。 + +```solidity +// Solidity example +contract SimpleStorage { + uint storedData; // State variable + // ... +} +``` + +```python +# Vyper example +storedData: int128 +``` + +オブジェクト指向言語でのプログラミングの経験がある場合は、ほとんどの型になじみがあるでしょう。 しかし、イーサリアムの開発が初めての場合、`address`は目新しいかもしれません。 + +`address`型は、20 バイトまたは 160 ビットに相当するイーサリアムアドレスを保持します。 先頭が 0x の 16 進数を返します。 + +その他の型には次のものがあります。 + +- ブール値 +- 整数 +- 固定小数点数 +- 固定サイズのバイト配列 +- 動的サイズのバイト配列 +- 有理数リテラルと整数リテラル +- 文字列リテラル +- 16 進数リテラル +- 列挙型 + +詳細については、以下のドキュメントをご覧ください。 + +- [Vyper の型を見る](https://vyper.readthedocs.io/en/v0.1.0-beta.6/types.html#value-types) +- [Solidity の型を見る](https://solidity.readthedocs.io/en/latest/types.html#value-types) + +### メモリ {#memory} + +コントラクト関数の実行期間にのみ保存される値は、メモリ変数と呼ばれます。 これらはブロックチェーンに永続的に保存されることはないため、低コストで使用できます + +EVM がデータ(ストレージ、メモリ、スタック)を格納する方法の詳細については、[Solidity のドキュメント](https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html?highlight=memory#storage-memory-and-the-stack)をご覧ください。 + +### 環境変数 {#environment-variables} + +コントラクトで定義した変数に加え、特別なグローバル変数がいくつかあります。 これらは主にブロックチェーンや現在のトランザクションに関する情報を提供するために使用されます。 + +例: + +| **プロパティ** | **状態変数** | **説明** | +| ----------------- | ------------ | ------------------------------------ | +| `block.timestamp` | uint256 | 現在のブロックエポックタイムスタンプ | +| `msg.sender` | address | メッセージの送信者(現在の呼び出し) | + +## 関数 {#functions} + +簡単に言うと、関数は受信トランザクションに応じて情報を取得したり、情報を設定したりすることができます。 + +関数呼び出しには、以下の 2 種類があります。 + +- `internal` - これらは EVM 呼び出しを作成しません。 + - internal 関数と状態変数は、内部(つまり、現在のコントラクト内またはそれから派生したコントラクト内)からのみアクセスできます。 +- `external` - これらは EVM 呼び出しを作成します。 + - external 関数はコントラクトインターフェイスの一部であり、他のコントラクトから呼び出したり、トランザクションを介して呼び出したりすることができます。 external 関数`f`を内部で呼び出すことはできません(つまり、`f()`は動作しませんが、`this.f()`は動作します)。 + +`public`または`private`にすることもできます。 + +- `public`関数は、コントラクト内から内部で呼び出すことも、メッセージを介して外部から呼び出すこともできます。 +- `private`関数は、それらが定義されているコントラクトからのみ参照できます。派生したコントラクトからは参照できません。 + +関数と状態変数はどちらも public または private にすることができます。 + +コントラクトの状態変数を更新するための関数は次のとおりです。 + +```solidity +// Solidity example +function update_name(string value) public { + dapp_name = value; +} +``` + +- `string`型のパラメータ`value`が`update_name`関数に渡されます。 +- `public`と宣言されており、誰でもアクセスできます。 +- `view`が宣言されていないため、コントラクトの状態を変更できます。 + +### View 関数 {#view-functions} + +これらの関数によって、コントラクトのデータの状態を変更しないことを指定します。 一般的な例としては、「getter」関数があります。例えば、これを使用してユーザーの残高を受け取ることができます。 + +```solidity +// Solidity example +function balanceOf(address _owner) public view returns (uint256 _balance) { + return ownerPizzaCount[_owner]; +} +``` + +```python +dappName: public(string) + +@view +@public +def readName() -> string: + return dappName +``` + +状態の変更と見なされるものは、以下のとおりです。 + +1. 状態変数への書き込み。 +2. [イベントの発行](https://solidity.readthedocs.io/en/v0.7.0/contracts.html#events)。 +3. [他のコントラクトの作成](https://solidity.readthedocs.io/en/v0.7.0/control-structures.html#creating-contracts)。 +4. `selfdestruct`の使用。 +5. 呼び出しによるイーサ(ETH)の送信。 +6. `view`や`pure`が指定されていない関数の呼び出し。 +7. 低レベル呼び出しの使用。 +8. 特定のオペコードを含むインラインアセンブリの使用。 + +### コンストラクタ関数 {#constructor-functions} + +`constructor`関数は、コントラクトが最初にデプロイされたときに 1 回だけ実行されます。 多くのクラスベースのプログラミング言語の`constructor`と同様に、これらの関数はしばしば、指定された値に状態変数を初期化します。 + +```solidity +// Solidity example +// Initializes the contract's data, setting the `owner` +// to the address of the contract creator. +constructor() public { + // All smart contracts rely on external transactions to trigger its functions. + // `msg` is a global variable that includes relevant data on the given transaction, + // such as the address of the sender and the ETH value included in the transaction. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties + owner = msg.sender; +} +``` + +```python +# Vyper example + +@external +def __init__(_beneficiary: address, _bidding_time: uint256): + self.beneficiary = _beneficiary + self.auctionStart = block.timestamp + self.auctionEnd = self.auctionStart + _bidding_time +``` + +### 組み込み関数 {#built-in-functions} + +コントラクトで定義した変数と関数に加え、特別な組み込み関数がいくつかあります。 最もわかりやすい例は、以下のとおりです。 + +- `address.send()` – Solidity +- `send(address)` – Vyper + +これらの関数により、コントラクトは他のアカウントに ETH を送信することができます。 + +## 関数を書く {#writing-functions} + +関数には以下のものが必要です。 + +- パラメータ変数と型(パラメータを受け取る場合) +- internal/external の宣言 +- pure/view/payable の宣言 +- 戻り値の型(値を返す場合) + +```solidity +pragma solidity >=0.4.0 <=0.6.0; + +contract ExampleDapp { + string dapp_name; // state variable + + // Called when the contract is deployed and initializes the value + constructor() public { + dapp_name = "My Example dapp"; + } + + // Get Function + function read_name() public view returns(string) { + return dapp_name; + } + + // Set Function + function update_name(string value) public { + dapp_name = value; + } +} +``` + +完全なコントラクトはこのようになります。 ここで、`constructor`関数は、`dapp_name`変数の初期値を提供します。 + +## イベントとログ {#events-and-logs} + +イベント(event)を使用すると、フロントエンドやその他のサブスクライブアプリケーションからスマートコントラクトと通信できます。 トランザクションがマイニングされると、スマートコントラクトはイベントを発行し、フロントエンドが処理できるログをブロックチェーンに書き込みます。 + +## 注釈付きの例 {#annotated-examples} + +Solidity で書かれた例を以下に示します。 コードを実行したい場合は、[Remix](http://remix.ethereum.org)で操作できます。 + +### Hello World {#hello-world} + +```solidity +// Specifies the version of Solidity, using semantic versioning. +// Learn more: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma +pragma solidity ^0.5.10; + +// Defines a contract named `HelloWorld`. +// A contract is a collection of functions and data (its state). +// Once deployed, a contract resides at a specific address on the Ethereum blockchain. +// Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html +contract HelloWorld { + + // Declares a state variable `message` of type `string`. + // State variables are variables whose values are permanently stored in contract storage. + // The keyword `public` makes variables accessible from outside a contract + // and creates a function that other contracts or clients can call to access the value. + string public message; + + // Similar to many class-based object-oriented languages, a constructor is + // a special function that is only executed upon contract creation. + // Constructors are used to initialize the contract's data. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constructors + constructor(string memory initMessage) public { + // Accepts a string argument `initMessage` and sets the value + // into the contract's `message` storage variable). + message = initMessage; + } + + // A public function that accepts a string argument + // and updates the `message` storage variable. + function update(string memory newMessage) public { + message = newMessage; + } +} +``` + +### トークン {#token} + +```solidity +pragma solidity ^0.5.10; + +contract Token { + // An `address` is comparable to an email address - it's used to identify an account on Ethereum. + // Addresses can represent a smart contract or an external (user) accounts. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#address + address public owner; + + // A `mapping` is essentially a hash table data structure. + // This `mapping` assigns an unsigned integer (the token balance) to an address (the token holder). + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#mapping-types + mapping (address => uint) public balances; + + // Events allow for logging of activity on the blockchain. + // Ethereum clients can listen for events in order to react to contract state changes. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#events + event Transfer(address from, address to, uint amount); + + // Initializes the contract's data, setting the `owner` + // to the address of the contract creator. + constructor() public { + // All smart contracts rely on external transactions to trigger its functions. + // `msg` is a global variable that includes relevant data on the given transaction, + // such as the address of the sender and the ETH value included in the transaction. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties + owner = msg.sender; + } + + // Creates an amount of new tokens and sends them to an address. + function mint(address receiver, uint amount) public { + // `require` is a control structure used to enforce certain conditions. + // If a `require` statement evaluates to `false`, an exception is triggered, + // which reverts all changes made to the state during the current call. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions + + // Only the contract owner can call this function + require(msg.sender == owner, "You are not the owner."); + + // Enforces a maximum amount of tokens + require(amount < 1e60, "Maximum issuance exceeded"); + + // Increases the balance of `receiver` by `amount` + balances[receiver] += amount; + } + + // Sends an amount of existing tokens from any caller to an address. + function transfer(address receiver, uint amount) public { + // The sender must have enough tokens to send + require(amount <= balances[msg.sender], "Insufficient balance."); + + // Adjusts token balances of the two addresses + balances[msg.sender] -= amount; + balances[receiver] += amount; + + // Emits the event defined earlier + emit Transfer(msg.sender, receiver, amount); + } +} +``` + +### 固有のデジタル資産 {#unique-digital-asset} + +```solidity +pragma solidity ^0.5.10; + +// Imports symbols from other files into the current contract. +// In this case, a series of helper contracts from OpenZeppelin. +// Learn more: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#importing-other-source-files + +import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; +import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; +import "../node_modules/@openzeppelin/contracts/introspection/ERC165.sol"; +import "../node_modules/@openzeppelin/contracts/math/SafeMath.sol"; + +// The `is` keyword is used to inherit functions and keywords from external contracts. +// In this case, `CryptoPizza` inherits from the `IERC721` and `ERC165` contracts. +// Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#inheritance +contract CryptoPizza is IERC721, ERC165 { + // Uses OpenZeppelin's SafeMath library to perform arithmetic operations safely. + // Learn more: https://docs.openzeppelin.com/contracts/2.x/api/math#SafeMath + using SafeMath for uint256; + + // Constant state variables in Solidity are similar to other languages + // but you must assign from an expression which is constant at compile time. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constant-state-variables + uint256 constant dnaDigits = 10; + uint256 constant dnaModulus = 10 ** dnaDigits; + bytes4 private constant _ERC721_RECEIVED = 0x150b7a02; + + // Struct types let you define your own type + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#structs + struct Pizza { + string name; + uint256 dna; + } + + // Creates an empty array of Pizza structs + Pizza[] public pizzas; + + // Mapping from pizza ID to its owner's address + mapping(uint256 => address) public pizzaToOwner; + + // Mapping from owner's address to number of owned token + mapping(address => uint256) public ownerPizzaCount; + + // Mapping from token ID to approved address + mapping(uint256 => address) pizzaApprovals; + + // You can nest mappings, this example maps owner to operator approvals + mapping(address => mapping(address => bool)) private operatorApprovals; + + // Internal function to create a random Pizza from string (name) and DNA + function _createPizza(string memory _name, uint256 _dna) + // The `internal` keyword means this function is only visible + // within this contract and contracts that derive this contract + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#visibility-and-getters + internal + // `isUnique` is a function modifier that checks if the pizza already exists + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html#function-modifiers + isUnique(_name, _dna) + { + // Adds Pizza to array of Pizzas and get id + uint256 id = SafeMath.sub(pizzas.push(Pizza(_name, _dna)), 1); + + // Checks that Pizza owner is the same as current user + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions + + // note that address(0) is the zero address, + // indicating that pizza[id] is not yet allocated to a particular user. + + assert(pizzaToOwner[id] == address(0)); + + // Maps the Pizza to the owner + pizzaToOwner[id] = msg.sender; + ownerPizzaCount[msg.sender] = SafeMath.add( + ownerPizzaCount[msg.sender], + 1 + ); + } + + // Creates a random Pizza from string (name) + function createRandomPizza(string memory _name) public { + uint256 randDna = generateRandomDna(_name, msg.sender); + _createPizza(_name, randDna); + } + + // Generates random DNA from string (name) and address of the owner (creator) + function generateRandomDna(string memory _str, address _owner) + public + // Functions marked as `pure` promise not to read from or modify the state + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#pure-functions + pure + returns (uint256) + { + // Generates random uint from string (name) + address (owner) + uint256 rand = uint256(keccak256(abi.encodePacked(_str))) + + uint256(_owner); + rand = rand % dnaModulus; + return rand; + } + + // Returns array of Pizzas found by owner + function getPizzasByOwner(address _owner) + public + // Functions marked as `view` promise not to modify state + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#view-functions + view + returns (uint256[] memory) + { + // Uses the `memory` storage location to store values only for the + // lifecycle of this function call. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/introduction-to-smart-contracts.html#storage-memory-and-the-stack + uint256[] memory result = new uint256[](ownerPizzaCount[_owner]); + uint256 counter = 0; + for (uint256 i = 0; i < pizzas.length; i++) { + if (pizzaToOwner[i] == _owner) { + result[counter] = i; + counter++; + } + } + return result; + } + + // Transfers Pizza and ownership to other address + function transferFrom(address _from, address _to, uint256 _pizzaId) public { + require(_from != address(0) && _to != address(0), "Invalid address."); + require(_exists(_pizzaId), "Pizza does not exist."); + require(_from != _to, "Cannot transfer to the same address."); + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + + ownerPizzaCount[_to] = SafeMath.add(ownerPizzaCount[_to], 1); + ownerPizzaCount[_from] = SafeMath.sub(ownerPizzaCount[_from], 1); + pizzaToOwner[_pizzaId] = _to; + + // Emits event defined in the imported IERC721 contract + emit Transfer(_from, _to, _pizzaId); + _clearApproval(_to, _pizzaId); + } + + /** + * Safely transfers the ownership of a given token ID to another address + * If the target address is a contract, it must implement `onERC721Received`, + * which is called upon a safe transfer, and return the magic value + * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; + * otherwise, the transfer is reverted. + */ + function safeTransferFrom(address from, address to, uint256 pizzaId) + public + { + // solium-disable-next-line arg-overflow + this.safeTransferFrom(from, to, pizzaId, ""); + } + + /** + * Safely transfers the ownership of a given token ID to another address + * If the target address is a contract, it must implement `onERC721Received`, + * which is called upon a safe transfer, and return the magic value + * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; + * otherwise, the transfer is reverted. + */ + function safeTransferFrom( + address from, + address to, + uint256 pizzaId, + bytes memory _data + ) public { + this.transferFrom(from, to, pizzaId); + require(_checkOnERC721Received(from, to, pizzaId, _data), "Must implement onERC721Received."); + } + + /** + * Internal function to invoke `onERC721Received` on a target address + * The call is not executed if the target address is not a contract + */ + function _checkOnERC721Received( + address from, + address to, + uint256 pizzaId, + bytes memory _data + ) internal returns (bool) { + if (!isContract(to)) { + return true; + } + + bytes4 retval = IERC721Receiver(to).onERC721Received( + msg.sender, + from, + pizzaId, + _data + ); + return (retval == _ERC721_RECEIVED); + } + + // Burns a Pizza - destroys Token completely + // The `external` function modifier means this function is + // part of the contract interface and other contracts can call it + function burn(uint256 _pizzaId) external { + require(msg.sender != address(0), "Invalid address."); + require(_exists(_pizzaId), "Pizza does not exist."); + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + + ownerPizzaCount[msg.sender] = SafeMath.sub( + ownerPizzaCount[msg.sender], + 1 + ); + pizzaToOwner[_pizzaId] = address(0); + } + + // Returns count of Pizzas by address + function balanceOf(address _owner) public view returns (uint256 _balance) { + return ownerPizzaCount[_owner]; + } + + // Returns owner of the Pizza found by id + function ownerOf(uint256 _pizzaId) public view returns (address _owner) { + address owner = pizzaToOwner[_pizzaId]; + require(owner != address(0), "Invalid Pizza ID."); + return owner; + } + + // Approves other address to transfer ownership of Pizza + function approve(address _to, uint256 _pizzaId) public { + require(msg.sender == pizzaToOwner[_pizzaId], "Must be the Pizza owner."); + pizzaApprovals[_pizzaId] = _to; + emit Approval(msg.sender, _to, _pizzaId); + } + + // Returns approved address for specific Pizza + function getApproved(uint256 _pizzaId) + public + view + returns (address operator) + { + require(_exists(_pizzaId), "Pizza does not exist."); + return pizzaApprovals[_pizzaId]; + } + + /** + * Private function to clear current approval of a given token ID + * Reverts if the given address is not indeed the owner of the token + */ + function _clearApproval(address owner, uint256 _pizzaId) private { + require(pizzaToOwner[_pizzaId] == owner, "Must be pizza owner."); + require(_exists(_pizzaId), "Pizza does not exist."); + if (pizzaApprovals[_pizzaId] != address(0)) { + pizzaApprovals[_pizzaId] = address(0); + } + } + + /* + * Sets or unsets the approval of a given operator + * An operator is allowed to transfer all tokens of the sender on their behalf + */ + function setApprovalForAll(address to, bool approved) public { + require(to != msg.sender, "Cannot approve own address"); + operatorApprovals[msg.sender][to] = approved; + emit ApprovalForAll(msg.sender, to, approved); + } + + // Tells whether an operator is approved by a given owner + function isApprovedForAll(address owner, address operator) + public + view + returns (bool) + { + return operatorApprovals[owner][operator]; + } + + // Takes ownership of Pizza - only for approved users + function takeOwnership(uint256 _pizzaId) public { + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + address owner = this.ownerOf(_pizzaId); + this.transferFrom(owner, msg.sender, _pizzaId); + } + + // Checks if Pizza exists + function _exists(uint256 pizzaId) internal view returns (bool) { + address owner = pizzaToOwner[pizzaId]; + return owner != address(0); + } + + // Checks if address is owner or is approved to transfer Pizza + function _isApprovedOrOwner(address spender, uint256 pizzaId) + internal + view + returns (bool) + { + address owner = pizzaToOwner[pizzaId]; + // Disable solium check because of + // https://github.com/duaraghav8/Solium/issues/175 + // solium-disable-next-line operator-whitespace + return (spender == owner || + this.getApproved(pizzaId) == spender || + this.isApprovedForAll(owner, spender)); + } + + // Check if Pizza is unique and doesn't exist yet + modifier isUnique(string memory _name, uint256 _dna) { + bool result = true; + for (uint256 i = 0; i < pizzas.length; i++) { + if ( + keccak256(abi.encodePacked(pizzas[i].name)) == + keccak256(abi.encodePacked(_name)) && + pizzas[i].dna == _dna + ) { + result = false; + } + } + require(result, "Pizza with such name already exists."); + _; + } + + // Returns whether the target address is a contract + function isContract(address account) internal view returns (bool) { + uint256 size; + // Currently there is no better way to check if there is a contract in an address + // than to check the size of the code at that address. + // どのように動くかの詳細は、 + // https://ethereum.stackexchange.com/a/14016/36603 を確認する。 + // TODO すべてのアドレスが縮小されるので、 + // セレニティリリースの前に、ここをもう一度確認する。 + // solium-disable-next-line security/no-inline-assembly + assembly { + size := extcodesize(account) + } + return size > 0; + } +} +``` + +## 参考文献 {#further-reading} + +スマートコントラクトの全体的な概要については、Solidity と Vyper のドキュメントをご確認ください。 + +- [Solidity](https://solidity.readthedocs.io/) +- [Vyper](https://vyper.readthedocs.io/) + +## 関連トピック {#related-topics} + +- [スマートコントラクト](/developers/docs/smart-contracts/) +- [イーサリアム仮想マシン(EVM)](/developers/docs/evm/) + +## 関連チュートリアル {#related-tutorials} + +- [コントラクトのサイズ制限に対処するためのコントラクトのサイズ縮小](/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/) _- スマートコントラクトのサイズを小さくするための実用的なヒント_ +- [イベントを使用してスマートコントラクトからデータをログに記録](/developers/tutorials/logging-events-smart-contracts/) _- スマートコントラクトのイベントの紹介と、それを使ってデータをログに記録する方法_ +- [Solidity を使用した他のコントラクトとの連携](/developers/tutorials/interact-with-other-contracts-from-solidity/) _- 既存のコントラクトからスマートコントラクトをデプロイし、それを扱う方法_ diff --git a/src/content/translations/ja/developers/docs/smart-contracts/compiling/index.md b/public/content/translations/ja/developers/docs/smart-contracts/compiling/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/smart-contracts/compiling/index.md rename to public/content/translations/ja/developers/docs/smart-contracts/compiling/index.md diff --git a/src/content/translations/ja/developers/docs/smart-contracts/composability/index.md b/public/content/translations/ja/developers/docs/smart-contracts/composability/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/smart-contracts/composability/index.md rename to public/content/translations/ja/developers/docs/smart-contracts/composability/index.md diff --git a/src/content/translations/ja/developers/docs/smart-contracts/deploying/index.md b/public/content/translations/ja/developers/docs/smart-contracts/deploying/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/smart-contracts/deploying/index.md rename to public/content/translations/ja/developers/docs/smart-contracts/deploying/index.md diff --git a/src/content/translations/ja/developers/docs/smart-contracts/formal-verification/index.md b/public/content/translations/ja/developers/docs/smart-contracts/formal-verification/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/smart-contracts/formal-verification/index.md rename to public/content/translations/ja/developers/docs/smart-contracts/formal-verification/index.md diff --git a/src/content/translations/ja/developers/docs/smart-contracts/index.md b/public/content/translations/ja/developers/docs/smart-contracts/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/smart-contracts/index.md rename to public/content/translations/ja/developers/docs/smart-contracts/index.md diff --git a/src/content/translations/ja/developers/docs/smart-contracts/languages/index.md b/public/content/translations/ja/developers/docs/smart-contracts/languages/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/smart-contracts/languages/index.md rename to public/content/translations/ja/developers/docs/smart-contracts/languages/index.md diff --git a/src/content/translations/ja/developers/docs/smart-contracts/libraries/index.md b/public/content/translations/ja/developers/docs/smart-contracts/libraries/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/smart-contracts/libraries/index.md rename to public/content/translations/ja/developers/docs/smart-contracts/libraries/index.md diff --git a/src/content/translations/ja/developers/docs/smart-contracts/security/index.md b/public/content/translations/ja/developers/docs/smart-contracts/security/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/smart-contracts/security/index.md rename to public/content/translations/ja/developers/docs/smart-contracts/security/index.md diff --git a/src/content/translations/ja/developers/docs/smart-contracts/testing/index.md b/public/content/translations/ja/developers/docs/smart-contracts/testing/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/smart-contracts/testing/index.md rename to public/content/translations/ja/developers/docs/smart-contracts/testing/index.md diff --git a/src/content/translations/ja/developers/docs/standards/index.md b/public/content/translations/ja/developers/docs/standards/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/standards/index.md rename to public/content/translations/ja/developers/docs/standards/index.md diff --git a/src/content/translations/ja/developers/docs/standards/tokens/erc-1155/index.md b/public/content/translations/ja/developers/docs/standards/tokens/erc-1155/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/standards/tokens/erc-1155/index.md rename to public/content/translations/ja/developers/docs/standards/tokens/erc-1155/index.md diff --git a/public/content/translations/ja/developers/docs/standards/tokens/erc-20/index.md b/public/content/translations/ja/developers/docs/standards/tokens/erc-20/index.md new file mode 100644 index 00000000000..fff0108d07a --- /dev/null +++ b/public/content/translations/ja/developers/docs/standards/tokens/erc-20/index.md @@ -0,0 +1,148 @@ +--- +title: ERC-20トークン規格 +description: +lang: ja +--- + +## はじめに {#introduction} + +**トークンとは何か?** + +トークンは、イーサリアムネットワークにおいて事実上あらゆるものを表現できます。 + +- オンラインプラットフォームにおける評価ポイント。 +- ゲーム内のキャラクターにおけるスキル。 +- 宝くじの券。 +- 企業の株式などの金融資産。 +- 米ドルをはじめとする法定通貨。 +- 金(ゴールド)1 オンス。 +- 等々。 + +イーサリアムにおいてこれほどの威力を持つ機能に対しては、必然的に堅牢な規格が必要です。 これこそ、ERC-20 規格が果たすべき役割なのです! この規格を用いることで、イーサリアム外の製品やサービスと相互運用できるトークンアプリを構築することが可能になります。 + +**ERC-20 とは何か?** + +ERC-20 規格は、代替性トークンを扱うための標準規格です。つまりこの規格では、ひとつのトークンが、その種類および値において他のトークンとまったく同じであるというプロパティを持たせることができます。 例えば、ERC-20 トークンは ETH とまったく同様に動作します。つまり、1 トークンは、現在および将来において常に、他のひとつのトークンと同等になります。 + +## 前提知識 {#prerequisites} + +- [アカウント](/developers/docs/accounts) +- [スマートコントラクト](/developers/docs/smart-contracts/) +- [トークンの基準](/developers/docs/standards/tokens/) + +## 規格の概要 {#body} + +ERC-20(Ethereum Request for Comments 20)は、スマートコントラクト内にトークン API として実装できるトークン規格として、ファビアン・ヴォゲルステラー氏により 2015 年 11 月に提案されました。 + +ERC-20 は、以下のような機能を提供します: + +- トークンを、ひとつのアカウントから他のアカウントに転送する。 +- アカウントにおける現在のトークン残高を取得する。 +- ネットワーク上で利用可能なトークンの総供給量を取得する。 +- 特定のアカウントにおけるトークンにつき、一定額をサードパーティのアカウントが使用できるか否かを承認する。 + +以下のメソッドおよびイベントを実装しているスマートコントラクトは ERC-20 トークンコントラクトと呼ぶことができ、デプロイされると、イーサリアム上で発行されたトークンの状況を追跡する責任を負います。 + +[EIP-20](https://eips.ethereum.org/EIPS/eip-20)から引用: + +### メソッド {#methods} + +```solidity +function name() public view returns (string) +function symbol() public view returns (string) +function decimals() public view returns (uint8) +function totalSupply() public view returns (uint256) +function balanceOf(address _owner) public view returns (uint256 balance) +function transfer(address _to, uint256 _value) public returns (bool success) +function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) +function approve(address _spender, uint256 _value) public returns (bool success) +function allowance(address _owner, address _spender) public view returns (uint256 remaining) +``` + +### イベント {#events} + +```solidity +event Transfer(address indexed _from, address indexed _to, uint256 _value) +event Approval(address indexed _owner, address indexed _spender, uint256 _value) +``` + +### 実例: {#web3py-example} + +イーサリアムの ERC-20 トークンコントラクトのコードを詳しく見ることで、これらの規格がイーサリアムのシンプルさを保証する上でどれだけ重要なのかを理解しておきましょう。 ERC-20 トークンを扱うインターフェイスを開発するには、当該コントラクトのアプリケーション・バイナリー・インターフェイス(ABI)を用いればよいです。 理解しやすいように、以下では簡略化した ABI を用いています。 + +#### Web3.py の実例: {#web3py-example} + +まず、 Python のライブラリから[Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation)をインストール済みであることを確認してください: + +``` +pip install web3 +``` + +```python +from web3 import Web3 + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI +weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # Wrapped ether (WETH) + +acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11" # Uniswap V2: DAI 2 + +# これはERC-20トークンのコントラクトのアプリケーション・バイナリ・インターフェース(ABI)を簡略化したものです。 +# It will expose only the methods: balanceOf(address), decimals(), symbol() and totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'decimals', + 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +dai_contract = w3.eth.contract(address=w3.to_checksum_address(dai_token_addr), abi=simplified_abi) +symbol = dai_contract.functions.symbol().call() +decimals = dai_contract.functions.decimals().call() +totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals +addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# DAI +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) + +weth_contract = w3.eth.contract(address=w3.to_checksum_address(weth_token_addr), abi=simplified_abi) +symbol = weth_contract.functions.symbol().call() +decimals = weth_contract.functions.decimals().call() +totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals +addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# WETH +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) +``` + +## 参考文献 {#further-reading} + +- [EIP-20:ERC-20 トークン規格](https://eips.ethereum.org/EIPS/eip-20) +- [OpenZeppelin - トークン](https://docs.openzeppelin.com/contracts/3.x/tokens#ERC20) +- [OpenZeppelin - ERC-20 の実装](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) diff --git a/src/content/translations/ja/developers/docs/standards/tokens/erc-4626/index.md b/public/content/translations/ja/developers/docs/standards/tokens/erc-4626/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/standards/tokens/erc-4626/index.md rename to public/content/translations/ja/developers/docs/standards/tokens/erc-4626/index.md diff --git a/public/content/translations/ja/developers/docs/standards/tokens/erc-721/index.md b/public/content/translations/ja/developers/docs/standards/tokens/erc-721/index.md new file mode 100644 index 00000000000..b832109820d --- /dev/null +++ b/public/content/translations/ja/developers/docs/standards/tokens/erc-721/index.md @@ -0,0 +1,244 @@ +--- +title: ERC-721 非代替性トークン(NFT)規格 +description: +lang: ja +--- + +## はじめに {#introduction} + +**非代替性トークン(NFT)とは** + +非代替性トークン(NFT)は、固有の方法で、人や物を識別するために使われます。 この種類のトークンは、収集用のアイテム、アクセスキー、宝くじ、コンサートやスポーツ試合におけるシート番号付チケットなどを発行するプラットフォームに最も適しています。 この特殊なタイプのトークンはすばらしい可能性を秘めているため、専用の規格として ERC-721 を策定しました。 + +**ERC-721 とは何か?** + +ERC-721 は、NFT に対する標準規格です。つまり、この種類のトークンはそれぞれがユニークな存在であり、発行日、希少性、および外見などの点で、同一のスマートコントラクトで発行される他のトークンとは異なる値を持つことができます。 外見が違うとはどういう意味でしょう? + +はい! すべての NFT は、`tokenid`と呼ばれる`unit256`変数を持つため、ERC-721 を伴うコントラクトでは、`contract adress, unit 256 tokenid`のペアはグローバルに固有でなければなりません。 その上で、各 Dapp では、`tokenid`の入力から、ゾンビ、武器、スキル、あるいは可愛い子猫といったクールな画像を出力する「コンバーター」を搭載することができます。 + +## 前提知識 {#prerequisites} + +- [アカウント](/developers/docs/accounts/) +- [スマートコントラクト](/developers/docs/smart-contracts/) +- [トークン規格](/developers/docs/standards/tokens/) + +## 規格の概要 {#body} + +ERC-721(Ethereum Request for Comments 721)は、ウィリアム・エントリケン氏、ディーター・シャーリー氏、ジェイコブ・エバンス氏、ナスタシア・サックス氏により 2018 年 1 月に提案された、スマートコントラクト内で非代替性トークン(NFT)を取り扱うための API を実装するための規格です。 + +この規格により、複数アカウント間のトークンの転送、アカウントにおける現在のトークン残高の取得、トークン所有者の取得、およびネットワーク上で供給されているトークン総数の取得といった機能が提供されます。 さらに、特定のアカウントが所有するトークン残高のうち、サードパーティのアカウントが転送可能な上限の設定を承認するなど、その他の機能も提供されています。 + +以下のメソッドおよびイベントを実装したスマートコントラクトは ERC-721 非代替性トークン(NFT)コントラクトと呼ばれ、デプロイされると、イーサリアム上で作成されたトークンの状況を追跡する機能を提供します。 + +[EIP-721](https://eips.ethereum.org/EIPS/eip-721)から引用: + +### メソッド {#methods} + +```solidity + function balanceOf(address _owner) external view returns (uint256); + function ownerOf(uint256 _tokenId) external view returns (address); + function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; + function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; + function transferFrom(address _from, address _to, uint256 _tokenId) external payable; + function approve(address _approved, uint256 _tokenId) external payable; + function setApprovalForAll(address _operator, bool _approved) external; + function getApproved(uint256 _tokenId) external view returns (address); + function isApprovedForAll(address _owner, address _operator) external view returns (bool); +``` + +### イベント {#events} + +```solidity + event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); + event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); + event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); +``` + +### 例 {#web3py-example} + +イーサリアムネットワークにおける ERC-721 トークンコントラクトを詳しく検討することで、ネットワークをシンプルにする上でこれらの規格がいかに重要であるかが理解できるでしょう。 ERC-721 トークンを対象とするインターフェイスを開発するには、コントラクトのアブリケーション・バイナリ・インターフェイス(ABI)があれば十分です。 これからつまずかないように簡略化された ABI を使用した例をお見せします。 + +#### Web3.py の例 {#web3py-example} + +最初に、 Python ライブラリの[Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation)がインストールされていることを確認してください: + +``` +pip install web3 +``` + +```python +from web3 import Web3 +from web3._utils.events import get_event_data + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # CryptoKitties Contract + +acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # CryptoKitties Sales Auction + +# This is a simplified Contract Application Binary Interface (ABI) of an ERC-721 NFT Contract. +# これらのメソッドのみ提示します: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'name', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'ownerOf', + 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, +] + +ck_extra_abi = [ + { + 'inputs': [], + 'name': 'pregnantKitties', + 'outputs': [{'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'name': '_kittyId', 'type': 'uint256'}], + 'name': 'isPregnant', + 'outputs': [{'name': '', 'type': 'bool'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +ck_contract = w3.eth.contract(address=w3.toChecksumAddress(ck_token_addr), abi=simplified_abi+ck_extra_abi) +name = ck_contract.functions.name().call() +symbol = ck_contract.functions.symbol().call() +kitties_auctions = ck_contract.functions.balanceOf(acc_address).call() +print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}") + +pregnant_kitties = ck_contract.functions.pregnantKitties().call() +print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}") + +# Transfer Event ABIを使用して、転送されたKittiesの情報を取得する。 +tx_event_abi = { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'from', 'type': 'address'}, + {'indexed': False, 'name': 'to', 'type': 'address'}, + {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'Transfer', + 'type': 'event' +} + +# We need the event's signature to filter the logs +event_signature = w3.sha3(text="Transfer(address,address,uint256)").hex() + +logs = w3.eth.getLogs({ + "fromBlock": w3.eth.blockNumber - 120, + "address": w3.toChecksumAddress(ck_token_addr), + "topics": [event_signature] +}) + +# Notes: +# - 120 blocks is the max range for CloudFlare Provider +# - If you didn't find any Transfer event you can also try to get a tokenId at: +# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events +# Click to expand the event's logs and copy its "tokenId" argument + +recent_tx = [get_event_data(w3.codec, tx_event_abi, log)["args"] for log in logs] + +kitty_id = recent_tx[0]['tokenId'] # Paste the "tokenId" here from the link above +is_pregnant = ck_contract.functions.isPregnant(kitty_id).call() +print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}") +``` + +CryptoKitties のコントラクトには、標準的なイベント以外にもいくつか興味深いイベントが含まれています。 + +特に、`Pregnant`と `Birth`のイベントについて見てみましょう。 + +```python +# 妊娠・出産イベントABIを利用して、新しいキティーの情報を得る。 +ck_extra_events_abi = [ + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}], + 'name': 'Pregnant', + 'type': 'event' + }, + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'kittyId', 'type': 'uint256'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'genes', 'type': 'uint256'}], + 'name': 'Birth', + 'type': 'event' + }] + +# We need the event's signature to filter the logs +ck_event_signatures = [ + w3.sha3(text="Pregnant(address,uint256,uint256,uint256)").hex(), + w3.sha3(text="Birth(address,uint256,uint256,uint256,uint256)").hex(), +] + +# Here is a Pregnant Event: +# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog +pregnant_logs = w3.eth.getLogs({ + "fromBlock": w3.eth.blockNumber - 120, + "address": w3.toChecksumAddress(ck_token_addr), + "topics": [ck_event_signatures[0]] +}) + +recent_pregnants = [get_event_data(w3.codec, ck_extra_events_abi[0], log)["args"] for log in pregnant_logs] + +# Here is a Birth Event: +# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a +birth_logs = w3.eth.getLogs({ + "fromBlock": w3.eth.blockNumber - 120, + "address": w3.toChecksumAddress(ck_token_addr), + "topics": [ck_event_signatures[1]] +}) + +recent_births = [get_event_data(w3.codec, ck_extra_events_abi[1], log)["args"] for log in birth_logs] +``` + +## 人気が高い NFT の実例: {#popular-nfts} + +- [イーサスキャン NFT トラッカー](https://etherscan.io/tokens-nft)は、イーサリアムにおける NFT の取引量ランキングです。 +- [クリプトキティーズ](https://www.cryptokitties.co/)は、クリプトキティーと呼ばれる愛らしい生物を育て、収集するゲームです。 +- [ソラーレ](https://sorare.com/)は、グローバルなファンタジーフットボールゲームで、限定アイテムの収集、チームの管理、および試合を通じて賞品を獲得できます。 +- [ ENS(イーサリアムネームサービス)](https://ens.domains/)は、安全かつ分散型の方法により、ブロックチェーン内外のリソースにシンプルかつ人間が読み取り可能な名称を付与できるサービスです。 +- [POAP](https://poap.xyz)は、イベント参加や特定アクションの実行を行ったユーザーに対し、無料で NFT を提供できます。 POAP は自由に作成し、配布できます。 +- [アンストッパブル・ドメインズ](https://unstoppabledomains.com/)は、 サンフランシスコに本社を置く企業で、ブロックチェーン上のドメイン作成業務を行っています。 ブロックチェーン上のドメインは、暗号通貨のアドレスを人間が読み取り可能な名称に置き換えるもので、ウェブサイトに検閲耐性を持たせるために使用できます。 +- [ゴッズ・アンチェインド・カード](https://godsunchained.com/)は、イーサリアムブロックチェーン上の TCG で、NFT を使ってゲーム内アセットに真の所有権を提供しています。 +- [ボアード・エイプ・ヨット・クラブ](https://boredapeyachtclub.com)は、10,000 個の固有 NFT のコレクションであると同時にいわゆるレアな美術作品であり、同クラブの会員証であるトークンでもあります。会員は、初回特典に加えて、コミュニティ活動を行うことでより多くの特典を受け取ることができます。 + +## 参考文献 {#further-reading} + +- [EIP-721:ERC-721 非代替性トークン(NFT)規格](https://eips.ethereum.org/EIPS/eip-721) +- [OpenZeppelin - ERC-721 のドキュメンテーション](https://docs.openzeppelin.com/contracts/3.x/erc721) +- [OpenZeppelin - ERC-721 の実装](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) +- [Alchemy の NFT API](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) diff --git a/src/content/translations/ja/developers/docs/standards/tokens/erc-777/index.md b/public/content/translations/ja/developers/docs/standards/tokens/erc-777/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/standards/tokens/erc-777/index.md rename to public/content/translations/ja/developers/docs/standards/tokens/erc-777/index.md diff --git a/src/content/translations/ja/developers/docs/standards/tokens/index.md b/public/content/translations/ja/developers/docs/standards/tokens/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/standards/tokens/index.md rename to public/content/translations/ja/developers/docs/standards/tokens/index.md diff --git a/src/content/translations/ja/developers/docs/storage/index.md b/public/content/translations/ja/developers/docs/storage/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/storage/index.md rename to public/content/translations/ja/developers/docs/storage/index.md diff --git a/src/content/translations/ja/developers/docs/transactions/index.md b/public/content/translations/ja/developers/docs/transactions/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/transactions/index.md rename to public/content/translations/ja/developers/docs/transactions/index.md diff --git a/src/content/translations/ja/developers/docs/web2-vs-web3/index.md b/public/content/translations/ja/developers/docs/web2-vs-web3/index.md similarity index 100% rename from src/content/translations/ja/developers/docs/web2-vs-web3/index.md rename to public/content/translations/ja/developers/docs/web2-vs-web3/index.md diff --git a/src/content/translations/ja/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md b/public/content/translations/ja/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md rename to public/content/translations/ja/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md diff --git a/src/content/translations/ja/developers/tutorials/calling-a-smart-contract-from-javascript/index.md b/public/content/translations/ja/developers/tutorials/calling-a-smart-contract-from-javascript/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/calling-a-smart-contract-from-javascript/index.md rename to public/content/translations/ja/developers/tutorials/calling-a-smart-contract-from-javascript/index.md diff --git a/src/content/translations/ja/developers/tutorials/create-and-deploy-a-defi-app/index.md b/public/content/translations/ja/developers/tutorials/create-and-deploy-a-defi-app/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/create-and-deploy-a-defi-app/index.md rename to public/content/translations/ja/developers/tutorials/create-and-deploy-a-defi-app/index.md diff --git a/src/content/translations/ja/developers/tutorials/deploying-your-first-smart-contract/index.md b/public/content/translations/ja/developers/tutorials/deploying-your-first-smart-contract/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/deploying-your-first-smart-contract/index.md rename to public/content/translations/ja/developers/tutorials/deploying-your-first-smart-contract/index.md diff --git a/src/content/translations/ja/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md b/public/content/translations/ja/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md rename to public/content/translations/ja/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md diff --git a/src/content/translations/ja/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/ja/developers/tutorials/erc-721-vyper-annotated-code/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/erc-721-vyper-annotated-code/index.md rename to public/content/translations/ja/developers/tutorials/erc-721-vyper-annotated-code/index.md diff --git a/src/content/translations/ja/developers/tutorials/erc20-annotated-code/index.md b/public/content/translations/ja/developers/tutorials/erc20-annotated-code/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/erc20-annotated-code/index.md rename to public/content/translations/ja/developers/tutorials/erc20-annotated-code/index.md diff --git a/src/content/translations/ja/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md b/public/content/translations/ja/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md rename to public/content/translations/ja/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md diff --git a/src/content/translations/ja/developers/tutorials/guide-to-smart-contract-security-tools/index.md b/public/content/translations/ja/developers/tutorials/guide-to-smart-contract-security-tools/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/guide-to-smart-contract-security-tools/index.md rename to public/content/translations/ja/developers/tutorials/guide-to-smart-contract-security-tools/index.md diff --git a/src/content/translations/ja/developers/tutorials/hello-world-smart-contract/index.md b/public/content/translations/ja/developers/tutorials/hello-world-smart-contract/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/hello-world-smart-contract/index.md rename to public/content/translations/ja/developers/tutorials/hello-world-smart-contract/index.md diff --git a/src/content/translations/ja/developers/tutorials/how-to-implement-an-erc721-market/index.md b/public/content/translations/ja/developers/tutorials/how-to-implement-an-erc721-market/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/how-to-implement-an-erc721-market/index.md rename to public/content/translations/ja/developers/tutorials/how-to-implement-an-erc721-market/index.md diff --git a/src/content/translations/ja/developers/tutorials/how-to-mint-an-nft/index.md b/public/content/translations/ja/developers/tutorials/how-to-mint-an-nft/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/how-to-mint-an-nft/index.md rename to public/content/translations/ja/developers/tutorials/how-to-mint-an-nft/index.md diff --git a/src/content/translations/ja/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md b/public/content/translations/ja/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md rename to public/content/translations/ja/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md diff --git a/src/content/translations/ja/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md b/public/content/translations/ja/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md rename to public/content/translations/ja/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md diff --git a/src/content/translations/ja/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md b/public/content/translations/ja/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md rename to public/content/translations/ja/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md diff --git a/src/content/translations/ja/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md b/public/content/translations/ja/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md rename to public/content/translations/ja/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md diff --git a/src/content/translations/ja/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md b/public/content/translations/ja/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md rename to public/content/translations/ja/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md diff --git a/src/content/translations/ja/developers/tutorials/how-to-view-nft-in-metamask/index.md b/public/content/translations/ja/developers/tutorials/how-to-view-nft-in-metamask/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/how-to-view-nft-in-metamask/index.md rename to public/content/translations/ja/developers/tutorials/how-to-view-nft-in-metamask/index.md diff --git a/src/content/translations/ja/developers/tutorials/how-to-write-and-deploy-an-nft/index.md b/public/content/translations/ja/developers/tutorials/how-to-write-and-deploy-an-nft/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/how-to-write-and-deploy-an-nft/index.md rename to public/content/translations/ja/developers/tutorials/how-to-write-and-deploy-an-nft/index.md diff --git a/src/content/translations/ja/developers/tutorials/interact-with-other-contracts-from-solidity/index.md b/public/content/translations/ja/developers/tutorials/interact-with-other-contracts-from-solidity/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/interact-with-other-contracts-from-solidity/index.md rename to public/content/translations/ja/developers/tutorials/interact-with-other-contracts-from-solidity/index.md diff --git a/src/content/translations/ja/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md b/public/content/translations/ja/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md rename to public/content/translations/ja/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md diff --git a/src/content/translations/ja/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md b/public/content/translations/ja/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md rename to public/content/translations/ja/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md diff --git a/src/content/translations/ja/developers/tutorials/logging-events-smart-contracts/index.md b/public/content/translations/ja/developers/tutorials/logging-events-smart-contracts/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/logging-events-smart-contracts/index.md rename to public/content/translations/ja/developers/tutorials/logging-events-smart-contracts/index.md diff --git a/src/content/translations/ja/developers/tutorials/merkle-proofs-for-offline-data-integrity/index.md b/public/content/translations/ja/developers/tutorials/merkle-proofs-for-offline-data-integrity/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/merkle-proofs-for-offline-data-integrity/index.md rename to public/content/translations/ja/developers/tutorials/merkle-proofs-for-offline-data-integrity/index.md diff --git a/src/content/translations/ja/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md b/public/content/translations/ja/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md rename to public/content/translations/ja/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md diff --git a/src/content/translations/ja/developers/tutorials/nft-minter/index.md b/public/content/translations/ja/developers/tutorials/nft-minter/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/nft-minter/index.md rename to public/content/translations/ja/developers/tutorials/nft-minter/index.md diff --git a/src/content/translations/ja/developers/tutorials/optimism-std-bridge-annotated-code/index.md b/public/content/translations/ja/developers/tutorials/optimism-std-bridge-annotated-code/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/optimism-std-bridge-annotated-code/index.md rename to public/content/translations/ja/developers/tutorials/optimism-std-bridge-annotated-code/index.md diff --git a/src/content/translations/ja/developers/tutorials/reverse-engineering-a-contract/index.md b/public/content/translations/ja/developers/tutorials/reverse-engineering-a-contract/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/reverse-engineering-a-contract/index.md rename to public/content/translations/ja/developers/tutorials/reverse-engineering-a-contract/index.md diff --git a/src/content/translations/ja/developers/tutorials/run-node-raspberry-pi/index.md b/public/content/translations/ja/developers/tutorials/run-node-raspberry-pi/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/run-node-raspberry-pi/index.md rename to public/content/translations/ja/developers/tutorials/run-node-raspberry-pi/index.md diff --git a/src/content/translations/ja/developers/tutorials/secure-development-workflow/index.md b/public/content/translations/ja/developers/tutorials/secure-development-workflow/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/secure-development-workflow/index.md rename to public/content/translations/ja/developers/tutorials/secure-development-workflow/index.md diff --git a/src/content/translations/ja/developers/tutorials/send-token-ethersjs/index.md b/public/content/translations/ja/developers/tutorials/send-token-ethersjs/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/send-token-ethersjs/index.md rename to public/content/translations/ja/developers/tutorials/send-token-ethersjs/index.md diff --git a/src/content/translations/ja/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md b/public/content/translations/ja/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md rename to public/content/translations/ja/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md diff --git a/src/content/translations/ja/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md b/public/content/translations/ja/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md rename to public/content/translations/ja/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md diff --git a/src/content/translations/ja/developers/tutorials/short-abi/index.md b/public/content/translations/ja/developers/tutorials/short-abi/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/short-abi/index.md rename to public/content/translations/ja/developers/tutorials/short-abi/index.md diff --git a/src/content/translations/ja/developers/tutorials/smart-contract-security-guidelines/index.md b/public/content/translations/ja/developers/tutorials/smart-contract-security-guidelines/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/smart-contract-security-guidelines/index.md rename to public/content/translations/ja/developers/tutorials/smart-contract-security-guidelines/index.md diff --git a/src/content/translations/ja/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md b/public/content/translations/ja/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md rename to public/content/translations/ja/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md diff --git a/src/content/translations/ja/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md b/public/content/translations/ja/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md rename to public/content/translations/ja/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md diff --git a/src/content/translations/ja/developers/tutorials/testing-smart-contract-with-waffle/index.md b/public/content/translations/ja/developers/tutorials/testing-smart-contract-with-waffle/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/testing-smart-contract-with-waffle/index.md rename to public/content/translations/ja/developers/tutorials/testing-smart-contract-with-waffle/index.md diff --git a/src/content/translations/ja/developers/tutorials/the-graph-fixing-web3-data-querying/index.md b/public/content/translations/ja/developers/tutorials/the-graph-fixing-web3-data-querying/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/the-graph-fixing-web3-data-querying/index.md rename to public/content/translations/ja/developers/tutorials/the-graph-fixing-web3-data-querying/index.md diff --git a/src/content/translations/ja/developers/tutorials/token-integration-checklist/index.md b/public/content/translations/ja/developers/tutorials/token-integration-checklist/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/token-integration-checklist/index.md rename to public/content/translations/ja/developers/tutorials/token-integration-checklist/index.md diff --git a/src/content/translations/ja/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md b/public/content/translations/ja/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md rename to public/content/translations/ja/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md diff --git a/src/content/translations/ja/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md b/public/content/translations/ja/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md rename to public/content/translations/ja/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md diff --git a/src/content/translations/ja/developers/tutorials/uniswap-v2-annotated-code/index.md b/public/content/translations/ja/developers/tutorials/uniswap-v2-annotated-code/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/uniswap-v2-annotated-code/index.md rename to public/content/translations/ja/developers/tutorials/uniswap-v2-annotated-code/index.md diff --git a/src/content/translations/ja/developers/tutorials/using-websockets/index.md b/public/content/translations/ja/developers/tutorials/using-websockets/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/using-websockets/index.md rename to public/content/translations/ja/developers/tutorials/using-websockets/index.md diff --git a/public/content/translations/ja/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md b/public/content/translations/ja/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md new file mode 100644 index 00000000000..ed3239a7274 --- /dev/null +++ b/public/content/translations/ja/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md @@ -0,0 +1,298 @@ +--- +title: "Waffleを使った動的モックアップの活用およびコントラクト呼び出しのテスト" +description: 動的モックアップの活用およびコントラクト呼び出しのテストについてのWaffle上級者向けチュートリアル +author: "Daniel Izdebski" +tags: + - "Waffle" + - "スマートコントラクト" + - "Solidity" + - "テスト" + - "モックアップ作成" +skill: intermediate +lang: ja +published: 2020-11-14 +--- + +## チュートリアルの内容 {#what-is-this-tutorial-about} + +このチュートリアルでは、以下について学びます: + +- 動的モックアップの使用方法 +- スマートコントラクト間のやりとりをテストする方法 + +前提知識: + +- `Solidity`でシンプルなスマートコントラクトを書ける +- `JavaScript`と`TypeScript`が扱える +- 他の`Waffle`のチュートリアルを受講したか、ある程度知識がある + +## 動的モックアップ {#dynamic-mocking} + +動的モックアップにはどのような利点があるでしょうか? まず、統合テストではなく、単体テストを書くことができるという点が挙げられます。 どういう意味かと言うと、 スマートコントラクトの依存関係について心配する必要がないので、個々のスマートコントラクトを完全に隔離した状態でテストできるのです。 それでは、その方法を具体的に見ていきましょう。 + +### **1. プロジェクト** {#1-project} + +まずはじめに、シンプルな node.js のプロジェクトを作成します。 + +```bash +$ mkdir dynamic-mocking +$ cd dynamic-mocking +$ mkdir contracts src + +$ yarn init +# or if you're using npm +$ npm init +``` + +次に、mocha と chai の依存関係をテストする typescript を追加します。 + +```bash +$ yarn add --dev @types/chai @types/mocha chai mocha ts-node typescript +# or if you're using npm +$ npm install @types/chai @types/mocha chai mocha ts-node typescript --save-dev +``` + +さらに、`Waffle`と`ethers`も追加します。 + +```bash +$ yarn add --dev ethereum-waffle ethers +# or if you're using npm +$ npm install ethereum-waffle ethers --save-dev +``` + +これにより、プロジェクトの構造は次のようになっているはずです: + +``` +. +├── contracts +├── package.json +└── test +``` + +### **2. スマートコントラクト** {#2-smart-contract} + +動的モックアップを使用するには、依存関係を含むスマートコントラクトが必要です。 こちらで用意してありますので、ご心配なく! + +今回は`Solidity`で書かれたシンプルなスマートコントラクトを使用しますが、このコントラクトの唯一の目的は、私たちがお金持ちであるかを確認することです。 つまり、十分な ERC-20 トークンを保有しているかどうかを確認するだけのスマートコントラクトです。 このコードを、`./contracts/AmIRichAlready.sol`に追加します。 + +```solidity +pragma solidity ^0.6.2; + +interface IERC20 { + function balanceOf(address account) external view returns (uint256); +} + +contract AmIRichAlready { + IERC20 private tokenContract; + uint public richness = 1000000 * 10 ** 18; + + constructor (IERC20 _tokenContract) public { + tokenContract = _tokenContract; + } + + function check() public view returns (bool) { + uint balance = tokenContract.balanceOf(msg.sender); + return balance > richness; + } +} +``` + +動的モックアップで使用するだけなので、ERC-20 全体は必要なく、関数を 1 つだけ持つ IERC-20 インターフェイスを使います。 + +さっそく、コントラクトをビルドしましょう! ビルドには、`Waffle`を使用します。 まず、コンパイルのオプションを指定するシンプルな`waffle.json`設定ファイルを作成します。 + +```json +{ + "compilerType": "solcjs", + "compilerVersion": "0.6.2", + "sourceDirectory": "./contracts", + "outputDirectory": "./build" +} +``` + +さて、Waffle でコントラクトをビルドする準備が整いました。 + +```bash +$ npx waffle +``` + +簡単ですね。 `build/`フォルダ内に、コントラクトとインターフェイスに対応する 2 つのファイルが現れました。 これらのファイルを使ってテストを行います。 + +### **3. テストを実行する** {#3-testing} + +実際にテストするために、`AmIRichAlready.test.ts`という名前のファイルを作成します。 まずはじめに、インポートを可能にしなければなりません。 これは、後ほど必要になります: + +```typescript +import { expect, use } from "chai" +import { Contract, utils, Wallet } from "ethers" +import { + deployContract, + deployMockContract, + MockProvider, + solidity, +} from "ethereum-waffle" +``` + +JS の依存関係の他に、ビルドしたコントラクトとインターフェイスをインポートする必要があります: + +```typescript +import IERC20 from "../build/IERC20.json" +import AmIRichAlready from "../build/AmIRichAlready.json" +``` + +Waffle では、`chai`を使ってテストを実行します。 ただしその前に、Waffle のマッチャーを chai に追加する必要があります: + +```typescript +use(solidity) +``` + +各テストの実行前にコントラクトの状態をリセットするため、`beforeEach()`関数を実装する必要があります。 まず、この関数には何が必要かを考えてみましょう。 コントラクトをデプロイするには、ウォレットと、`AmIRichAlready`コントラクトに引数として渡すためのデプロイされた ERC-20 コントラクトが必要です。 + +まず、ウォレットを作成します: + +```typescript +const [wallet] = new MockProvider().getWallets() +``` + +次に、ERC-20 コントラクトをデプロイする必要があります。 今のところ、私たちはインターフェイスしか持っていないので、工夫が必要になります。 ここで、Waffle が助けてくれます。 Waffle には、インターフェイスの*ABI*だけを使用してコントラクトを作成できる、魔法のような`deployMockContract()`関数が含まれているのです。 + +```typescript +const mockERC20 = await deployMockContract(wallet, IERC20.abi) +``` + +ウォレットとデプロイされた ERC-20 コントラクトの両方が準備できたので、さっそく`AmIRichAlready`コントラクトをデプロイしましょう: + +```typescript +const contract = await deployContract(wallet, AmIRichAlready, [ + mockERC20.address, +]) +``` + +これで、`beforeEach()`関数が作成できました。 現在のところ、 `AmIRichAlready.test.ts`のファイルは以下のようになっているはずです: + +```typescript +import { expect, use } from "chai" +import { Contract, utils, Wallet } from "ethers" +import { + deployContract, + deployMockContract, + MockProvider, + solidity, +} from "ethereum-waffle" + +import IERC20 from "../build/IERC20.json" +import AmIRichAlready from "../build/AmIRichAlready.json" + +use(solidity) + +describe("Am I Rich Already", () => { + let mockERC20: Contract + let contract: Contract + let wallet: Wallet + + beforeEach(async () => { + ;[wallet] = new MockProvider().getWallets() + mockERC20 = await deployMockContract(wallet, IERC20.abi) + contract = await deployContract(wallet, AmIRichAlready, [mockERC20.address]) + }) +}) +``` + +この`AmIRichAlready`コントラクトに対する初回のテストを書きましょう。 テストの対象は何にすべきだと思いますか? 言うまでもなく、 私たちがお金持ちであるかをチェックするのですね :) + +でもちょっと待ってください。 今作成したコントラクトでは、どのような値を返すべきかを指定していませんでした。 `balanceOf()`関数のロジックが実装されていないからです。 ここでも Waffle が助けてくれます。 モックアップを作成したコントラクトには、新たに以下のような素敵なコードが付け加えられています: + +```typescript +await mockERC20.mock..returns() +await mockERC20.mock..withArgs().returns() +``` + +これを知っていれば、最初のテストを書くことができます。 + +```typescript +it("returns false if the wallet has less than 1000000 tokens", async () => { + await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) + expect(await contract.check()).to.be.equal(false) +}) +``` + +このテストを、構成要素に分解してみましょう: + +1. モックアップの ERC-20 コントラクトは、常に、999999 トークンの残高を返すように設定します。 +2. `contract.check()`メソッドが、`false`を返すか確認します。 + +ようやく、テストを実行する準備ができました。 + +![1つのテストが合格](./test-one.png) + +テストは実行されましたが・・・改善の余地がありますね。 `balanceOf()`関数は、常に 99999 を返します。 実際のコントラクトのように、関数が値を返すウォレットを指定するともっとテストらしくなるでしょう。 + +```typescript +it("returns false if the wallet has less than 1000001 tokens", async () => { + await mockERC20.mock.balanceOf + .withArgs(wallet.address) + .returns(utils.parseEther("999999")) + expect(await contract.check()).to.be.equal(false) +}) +``` + +このテストでは、今のところ、私たちが十分にお金持ちではない場合のみをチェックしています。 次に、その反対もチェックできるようにしてみましょう: + +```typescript +it("returns true if the wallet has at least 1000001 tokens", async () => { + await mockERC20.mock.balanceOf + .withArgs(wallet.address) + .returns(utils.parseEther("1000001")) + expect(await contract.check()).to.be.equal(true) +}) +``` + +テストを実行します・・・ + +![2つのテストが合格](test-two.png) + +そして・・・うまく行きました! 私たちのコントラクトは、意図したとおりに動作しているようです :) + +## コントラクトの呼び出しをテストする {#testing-contract-calls} + +これまでの進展をまとめておきましょう。 `AmIRichAlready`コントラクトの機能をテストし、正常に動作していることが確認できたようです。 これで終わりだろうって? いいえ、まだ少し残っています。 Waffe を使えば、さらに多くの事項をテストすることができます。 具体的に説明すると、 Waffle には`calledOnContract()`マッチャーと`calledOnContractWith()`マッチャーが搭載されています。 これらを使えば、作成したコントラクトがモックアップの ERC-20 コントラクトを呼び出したかどうかを確認できるのです。 いずれかのマッチャーを使用した基本的なテストは、次のようになります: + +```typescript +it("checks if contract called balanceOf on the ERC20 token", async () => { + await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) + await contract.check() + expect("balanceOf").to.be.calledOnContract(mockERC20) +}) +``` + +もう一方のマッチャーを使用することで、さらにこのテストを充実させることができます: + +```typescript +it("checks if contract called balanceOf with certain wallet on the ERC20 token", async () => { + await mockERC20.mock.balanceOf + .withArgs(wallet.address) + .returns(utils.parseEther("999999")) + await contract.check() + expect("balanceOf").to.be.calledOnContractWith(mockERC20, [wallet.address]) +}) +``` + +テストがうまく行ったか確認しましょう: + +![3つのテストが合格](test-three.png) + +幸いなことに、すべてのテストに合格しました。 + +Waffle を使えば、コントラクトの呼び出しをとても簡単にテストできます。 特にすばらしいのは、 これらのマッチャーを通常のコントラクトとモックアップのコントラクトの両方に使えることです! 他のテクノロジー向けの人気が高いテストライブラリと同じように、Waffle は、コードを挿入するのではなく、EVM 呼び出しを記録し、フィルタ処理を行うアプローチを採用しています。 + +## おわりに {#the-finish-line} + +おめでとうございます! これで、Waffle を使用して、コントラクトの呼び出しや、モックアップのコントラクトを動的にテストする方法を身に付けることができました。 この他にもたくさんの興味深い機能がありますので、 Waffle のドキュメンテーションに目を通すことをおすすめします。 + +Waffle のドキュメンテーションは、[こちら](https://ethereum-waffle.readthedocs.io/)から入手できます。 + +このチュートリアルのソースコードは、[こちら](https://github.com/EthWorks/Waffle/tree/master/examples/dynamic-mocking-and-testing-calls)からアクセスできます。 + +さらに、以下のチュートリアルをおすすめします: + +- [Waffle を使ってスマートコントラクトをテストする](/developers/tutorials/testing-smart-contract-with-waffle/) diff --git a/src/content/translations/ja/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md b/public/content/translations/ja/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md similarity index 100% rename from src/content/translations/ja/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md rename to public/content/translations/ja/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md diff --git a/src/content/translations/ja/eips/index.md b/public/content/translations/ja/eips/index.md similarity index 100% rename from src/content/translations/ja/eips/index.md rename to public/content/translations/ja/eips/index.md diff --git a/src/content/translations/ja/energy-consumption/index.md b/public/content/translations/ja/energy-consumption/index.md similarity index 100% rename from src/content/translations/ja/energy-consumption/index.md rename to public/content/translations/ja/energy-consumption/index.md diff --git a/src/content/translations/ja/enterprise/index.md b/public/content/translations/ja/enterprise/index.md similarity index 100% rename from src/content/translations/ja/enterprise/index.md rename to public/content/translations/ja/enterprise/index.md diff --git a/src/content/translations/ja/enterprise/private-ethereum/index.md b/public/content/translations/ja/enterprise/private-ethereum/index.md similarity index 100% rename from src/content/translations/ja/enterprise/private-ethereum/index.md rename to public/content/translations/ja/enterprise/private-ethereum/index.md diff --git a/src/content/translations/ja/foundation/index.md b/public/content/translations/ja/foundation/index.md similarity index 100% rename from src/content/translations/ja/foundation/index.md rename to public/content/translations/ja/foundation/index.md diff --git a/src/content/translations/ja/glossary/index.md b/public/content/translations/ja/glossary/index.md similarity index 100% rename from src/content/translations/ja/glossary/index.md rename to public/content/translations/ja/glossary/index.md diff --git a/src/content/translations/ja/governance/index.md b/public/content/translations/ja/governance/index.md similarity index 100% rename from src/content/translations/ja/governance/index.md rename to public/content/translations/ja/governance/index.md diff --git a/src/content/translations/ja/history/index.md b/public/content/translations/ja/history/index.md similarity index 100% rename from src/content/translations/ja/history/index.md rename to public/content/translations/ja/history/index.md diff --git a/public/content/translations/ja/nft/index.md b/public/content/translations/ja/nft/index.md new file mode 100644 index 00000000000..d10bb61c979 --- /dev/null +++ b/public/content/translations/ja/nft/index.md @@ -0,0 +1,94 @@ +--- +title: 非代替性トークン(NFT) +description: イーサリアムにおける非代替性トークン(NFT)の概要 +lang: ja +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: ホログラムを介して表示されているETHロゴ +summaryPoint1: イーサリアムベースのアセットとして、唯一無二なものをトークンとして表現する方法。 +summaryPoint2: NFTは、これまで以上に多くのコンテンツ・クリエイターを後押ししています。 +summaryPoint3: イーサリアムブロックチェーン上のスマートコントラクトを利用。 +--- + +## What are NFTs? {#what-are-nfts} + +NFT は、個別の固有性を持つトークンで、 それぞれ固有の特性(非代替性)があり、その希少性が証明されています。 これは、セット内のすべてのトークンが同一であり、同じ特性(代替性)を持つ ERC-20 トークンとは異なります。 例えば、財布の中にある 1 ドル札を例に考えてみましょう。1 ドル札はすべて同じであり、同一の価値を持つため、お札の種類を気にする必要はありません。 しかし、所有する NFT の種類は*重要です*。NFT にはそれぞれ固有の特性があり、他とは異なるからです(非代替性)。 + +各 NFT の一意性により、美術品、収集品、あるいは不動産などのトークン化が可能になり、NFT が現実世界やデジタル世界における固有のアイテムとなります。 NFT の所有権はイーサリアムブロックチェーンによって担保されており、誰も所有権の記録を勝手に変更したり、コピー&ペーストで NFT を複製することはできません。 + + + +## 資産のインターネット {#internet-of-assets} + +NFT とイーサリアムによって、現在のインターネットが持つ複数の課題を解決することができます。 あらゆるもののデジタル化が進むにつれて、希少性、独自性、所有権の証明などの物理的なアイテムの特性を複製する必要性が高まっており、 中央集権型の組織に管理されない形での実現を求められます。 例えば、NFT を使えば、特定の企業の音楽アプリに限定されない音楽の mp3 ファイルや、売買や交換ができるソーシャルメディア上のハンドル名を所有することができます。これらは、プラットフォーム提供者によって一方的に奪われることはありません。 + +ここで、今私たちが使用しているインターネットと、NFT のインターネットを比べてみましょう。 + +### 比較 {#nft-comparison} + +| 非代替性トークン(NFT)インターネット | 現在のインターネット | +| ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | +| 自分で資産を所有する。 売買や交換できるのは自分のみ。 | 組織から資産を賃借する。 | +| NFT は唯一無二のデジタル資産であり、全く同じ NFT は存在しない。 | コピーとオリジナルの区別が難しい。 | +| NFT の所有権はブロックチェーン上に保存され、誰でも確認できる。 | デジタルアイテムの所有権記録は、当該アイテムが属する組織のサーバに保存される。その扱いについては、属する組織の方針に従わなければならない。 | +| NFT の所有権はブロックチェーン上に保存され、誰でも確認できる。 つまり、イーサリアム上の他のスマートコントラクトやアプリで簡単に使用できる。 | 通常、デジタルアイテムを扱う企業には、独自のインフラ(「ウォールド・ガーデン」)が必要となる。 | +| コンテンツクリエイターはどこでも作品を販売し、世界市場にアクセスできる。 | クリエイターは、使用するプラットフォームのインフラと流通経路に依存する。 通常、利用規約や地理的制限に大きく影響を受ける。 | +| NFT の作成者は、自身の作品の所有権を保持し、ロイヤリティを NFT コントラクトに直接プログラムすることができる。 | 音楽ストリーミングサービスなどのプラットフォームは、売上が利益の大部分を占めている。 | + +## 非代替性トークン(NFT)の仕組み {#how-nfts-work} + +イーサリアム上で発行されるトークンと同様、NFT はスマートコントラクトによって発行されます。 スマートコントラクトは、コントラクトが持つ機能を定義した複数の NFT 規格(一般的には ERC-721 または ERC-1155)のいずれかに準拠しています。 コントラクトは NFT を作成(ミント)し、特定の所有者に割り当てることができます。 所有権は、特定の NFT を特定のアドレスにマッピングすることによってコントラクトで定義されます。 NFT には ID があり、通常は特定のトークンを一意にするメタデータが関連付けられています。 + +誰かが NFT を作成または生成する際、実際にはスマートコントラクト内の特定の関数を実行して、その NFT を自身のアドレスに割り当てています。 この情報は、ブロックチェーンの一部であるコントラクトのストレージに保存されます。 コントラクトの作成者は、コントラクト内に追加のロジックを記述することができます。例えば、総供給量の制限を設定したり、トークンが転送されるたびに作成者に支払われるロイヤリティを定義したりすることができます。 + +## 非代替性トークン(NFT)の使用方法 {#nft-use-cases} + +NFT は以下のような多数の用途に使用されます。 + +- イベントの参加証明 +- コースの修了証明 +- ゲームの所有可能アイテム +- デジタルアート +- 現実世界における資産のトークン化 +- オンライン ID の証明 +- コンテンツへのアクセス権 +- 発券 +- 分散型インターネットのドメイン名 +- DeFi の担保 + +例えばあなたが、NFT を使用して、権利を失ったり、仲介業者に利益を支払ったりすることなく、自分の作品を共有したいと考えているアーティストだとします。 新しいコントラクトを作成し、NFT の数、その特性、特定のアートワークへのリンクを指定することができます。 さらに、スマートコントラクトに、自分に支払われるべきロイヤリティをプログラムすることができます(例えば、NFT が譲渡されるたびに、販売価格の 5%をコントラクト所有者に譲渡する)。 また、コントラクトをデプロイしたウォレットを所有しているため、NFT を作成したことをいつでも証明することができます。 購入者のウォレットアドレスは、スマートコントラクト内のトークンと関連付けられているため、購入者はあなたのコレクションから本物の NFT を所有していることを簡単に証明することができます。 つまり、イーサリアムのエコシステム全体で、その信頼性を確信した上で使用できるということです。 + +あるいは、スポーツイベントのチケットを例に考えてみましょう。 イベントの主催者がチケットの販売枚数を決めるように、NFT の作成者はレプリカの数を決めることができます。 時には、5,000 枚の一般入場券のようなまったく同じレプリカも存在します。 例えば、座席指定のチケットのように、よく似ていてもそれぞれに微妙な違いがあるものが複数枚ミントされることもあります。 チケットの売買はピアツーピアで行われ、購入者はコントラクトアドレスを確認することで、常にチケットの正当性を確認することができます。 + +ethereum.org では、GitHub リポジトリへの貢献や電話会議への出席を示すために NFT が使用されており、独自の NFT ドメイン名も取得しています。 ethereum.org に貢献することで、POAP NFT(出席証明 NFT)を獲得できます。 一部のクリプトミートアップでは、チケットとして POAP が使用されています。 [貢献の詳細](/contributing/#poap) + +![ethereum.orgの出席証明プロトコル(POAP)](./poap.png) + +このウェブサイトには、NFT による代替ドメイン名**ethereum.eth**があります。 `.org`アドレスは、ドメインネームシステム(DNS)プロバイダーによって集中管理されていますが、ethereum`.eth`は、イーサリアム・ネーム・サービス(ENS)を介してイーサリアム上に登録されています。 つまり、私たち自身が所有、管理しているということです。 [ENS レコードの確認](https://app.ens.domains/name/ethereum.eth) + +[イーサリアム・ネーム・サービス(ENS)の詳細](https://app.ens.domains) + + + +### NFT のセキュリティ {#nft-security} + +イーサリアムのセキュリティは、プルーフ・オブ・ステークによって確保されています。 経済的なインセンティブによって悪意のある行為を抑止するように設計されており、その結果、改ざんを防止しています。 こうして、NFT が実現しています。 NFT のトランザクションを含むブロックが確定した後に攻撃者が変更しようとすると、数百万 ETH の費用がかかることになります。 イーサリアムのソフトウェアを実行している人なら誰でも、NFT に対する不正な改ざんを直ちに検出することができ、悪質な行為を行う者は、経済的なペナルティが課せられ、ネットワークから追放されます。 + +NFT に関連するセキュリティの問題の大半は、フィッシング詐欺、スマートコントラクトの脆弱性、ユーザーの過失(不注意で秘密鍵を公開するなど)のいずれかに関連しており、ウォレットのセキュリティが NFT 所有者にとって非常に重要になります。 + + + セキュリティの詳細 + + +## 参考文献 {#further-reading} + +- [非代替性トークン(NFT)初心者向けガイド](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, 2020 年 1 月_ +- [EtherscanNFT トラッカー](https://etherscan.io/nft-top-contracts) +- [ERC-721 トークン標準](/developers/docs/standards/tokens/erc-721/) +- [ERC-1155 トークン標準](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/src/content/translations/ja/roadmap/account-abstraction/index.md b/public/content/translations/ja/roadmap/account-abstraction/index.md similarity index 100% rename from src/content/translations/ja/roadmap/account-abstraction/index.md rename to public/content/translations/ja/roadmap/account-abstraction/index.md diff --git a/public/content/translations/ja/roadmap/beacon-chain/index.md b/public/content/translations/ja/roadmap/beacon-chain/index.md new file mode 100644 index 00000000000..8bb8abd5e29 --- /dev/null +++ b/public/content/translations/ja/roadmap/beacon-chain/index.md @@ -0,0 +1,75 @@ +--- +title: ビーコンチェーン +description: ビーコンチェーン - プルーフ・オブ・ステークのイーサリアム導入アップグレード +lang: ja +template: upgrade +image: /upgrades/core.png +alt: +summaryPoint1: イーサリアムエコシステムにプルーフ・オブ・ステークの導入を可能にしたのが、ビーコンチェーンです。 +summaryPoint2: 2022年9月にプルーフ・オブ・ワーク・チェーンのイーサリアムとマージ(統合)されました。 +summaryPoint3: ビーコンチェーンは、コンセンサスロジックとブロックゴシッププロトコルを導入し、現在はイーサリアムの安全性を保護しています。 +--- + + + ビーコンチェーンは、2020年12月にリリースされ、2022年9月15日のマージアップグレードでイーサリアムの合意メカニズムに、プルーフ・オブ・ステークとして正式に導入されました。 + + +## ビーコンチェーンとは {#what-is-the-beacon-chain} + +ビーコンチェーンは、2020 年に開始されたオリジナルのプルーフ・オブ・ステーク型ブロックチェーンの名称です。 当初は、イーサリアムメインネットに適用する前に、プルーフ・オブ・ステークのコンセンサスロジックが健全で持続可能であることを確認するために作成されました。 そのため、元来のプルーフ・オブ・ワークのイーサリアムと並行して稼働していました。 ビーコンチェーンは「空の」ブロックのチェーンだったので、イーサリアムでプルーフ・オブ・ワークを停止し、プルーフ・オブ・ステークへと切り替えるには、ビーコンチェーンで実行クライアントのトランザクションデータを受け入れ、ブロックにバンドルし、プルーフ・オブ・ステークに基づく合意メカニズムを使ってブロックチェーンに構成する必要がありました。 同時に、オリジナルのイーサリアムのクライアントは、マイニング、ブロック伝播、コンセンサスロジックを停止し、ビーコンチェーンへと継承させました。 これが[マージ](/roadmap/merge/)として知られるイベントです。 マージによって、2 つのブロックチェーンは プルーフ・オブ・ステークに統合され、現在は、ノードごとに 2 つの異なるクライアントが必要になりました。 ビーコンチェーンは現在、コンセンサスレイヤーであり、ブロックのゴシップとコンセンサスロジックを処理するコンセンサスクライアントのピアツーピアネットワークです。一方、元々のクライアントは実行レイヤーを形成し、トランザクションのゴシップと実行、そしてイーサリアムの状態を管理しています。 2 つのレイヤーは、エンジン API を使ってお互いに通信することができます。 + +## ビーコンチェーンとは {#what-does-the-beacon-chain-do} + +ビーコンチェーンは、イーサリアム [ステーカー](/staking/)のネットワークを実行、調整していたアカウントのレジャーに与えられた名前です。後に、このイーサリアム[ステーカー](/saking/)が実際のイーサリアムブロックの検証を開始しました。 ただし、ビーコンチェーンでは、トランザクションの処理やスマートコントラクトとのやりとりは行いません。代わりに、実行レイヤーがこれらの処理を行います ビーコンチェーンでは、ブロックとアテステーションの処理、フォーク選択アルゴリズムの実行、報酬とペナルティの管理などを行います。 詳細は、[ノードアーキテクチャのページ](/developers/docs/nodes-and-clients/node-architecture/#node-comparison)をご覧ください。 + +## ビーコンチェーンの影響 {#beacon-chain-features} + +### ステーキングの紹介 {#introducing-staking} + +ビーコンチェーンの稼働の伴い、 [プルーフ・オブ・ステーク](/developers/docs/consensus-mechanisms/pos/)がイーサリアムに導入されました。 イーサリアムの安全性が保たれ、バリデータはより多くの ETH を獲得することができるようになりました。 実際にバリデータソフトウェアを起動するには、ETH をステーキングすることになります。 ステーカーは、チェーンに新しいブロックを作成し、検証するバリデータソフトウェアを実行します。 + +ステーキングは、かつての[マイニング](/developers/docs/mining/)と同じ目的を果たしますが、その手法は多くの点で異なります。 マイニングには、強力なハードウェアや大量のエネルギーが必要であり、そのため、多額の先行投資が必要になります。その結果、規模の経済が生まれ、集中化が進みました マイニングにおいても、資産を担保としてロックする必要がなかったため、攻撃後に悪意のある行為者を罰するプロトコルの能力にも限界がありました。 + +プルーフ・オブ・ステークへの移行により、イーサリアムは従来のプルーフ・オブ・ワークに比べて、格段にセキュリティと分散性が向上しました。 ネットワークに参加する人が多いほど、より分散化され、攻撃の危険性が減少します。 + +また、コンセンサスメカニズムとしてプルーフ・オブ・ステークを使用することが、[安全で環境にやさしく、スケーラブルな現在のイーサリアム](/roadmap/vision/)を支える基盤となっています。 + + + バリデータになり、イーサリアムの安全性の確保にご興味がある場合は、ステーキングの詳細をご覧ください。 + + +### シャーディングの設定 {#setting-up-for-sharding} + +ビーコンチェーンが元来のイーサリアムメインネットに統合されてから、イーサリアムコミュニティはネットワークのスケーリングを模索し始めました。 + +プルーフ・オブ・ステークには、承認されたすべてのブロック作成者のレジストリを常に登録し、ETH をステーキングしているという利点があります。 このレジストリにより、特定のネットワークの責任を信頼おける方法で分割や制御することができます。 + +この責任において、プルーフ・オブ・ワークとは対照的です。プルーフ・オブ・ワークでは、マイナーはネットワークに対する義務を負わないため、ペナルティは一切なく、瞬時にマイニングを停止し、ノードソフトウエアを終了することができます。 ブロック提案者のレジストリもなく、ネットワークに関する責任を安全に分担する信頼できる方法もありません。 + +[シャーディングの詳細](/roadmap/danksharding/) + +## アップグレード間の関係 {#relationship-between-upgrades} + +イーサリアムのアップグレードはすべて、多少なりとも相互に関連しています。 ビーコンチェーンが他のアップグレードにどのように影響するか、まとめましょう。 + +### ビーコンチェーンとマージ {#merge-and-beacon-chain} + +当初、ビーコンチェーンはイーサリアムメインネットと別々に存在していましたが 2022 年に統合されました。 + + + マージ + + +### シャードとビーコンチェーン {#shards-and-beacon-chain} + +シャーディングは、プルーフ・オブ・ステークの合意メカニズムがあって、初めてイーサリアムのエコシステムに導入することができます。 ビーコンチェーンによりステーキングが可能となり、メインネットとの「マージ」により、将来イーサリアムを拡張するためのシャーディングへの布石を、ビーコンチェーンは導入しました。 + + + シャードチェーン + + +## 参考文献 + +- [イーサリアムの今後のアップグレードの詳細](/roadmap/vision) +- [ノードアーキテクチャの詳細](/developers/docs/nodes-and-clients/node-architecture) +- [プルーフ・オブ・ステークの詳細](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/ja/roadmap/danksharding/index.md b/public/content/translations/ja/roadmap/danksharding/index.md similarity index 100% rename from src/content/translations/ja/roadmap/danksharding/index.md rename to public/content/translations/ja/roadmap/danksharding/index.md diff --git a/public/content/translations/ja/roadmap/future-proofing/index.md b/public/content/translations/ja/roadmap/future-proofing/index.md new file mode 100644 index 00000000000..d05fe87c4a9 --- /dev/null +++ b/public/content/translations/ja/roadmap/future-proofing/index.md @@ -0,0 +1,38 @@ +--- +title: 将来性のあるイーサリアム +description: これらのアップグレードにより、イーサリアムは、将来何が起きようとも、回復力のある分散型のベースレイヤーとして確立されます。 +lang: ja +image: ..//roadmap/roadmap-future.png +alt: "イーサリアムロードマップ" +template: roadmap +--- + +イーサリアムのロードマップには、スケーリングやセキュリティの確保において短期的には必要のないものもありますが、長期的な視点においては、イーサリアムの安定性と信頼性を高めるために必要となるものです。 + +## 量子耐性 {#quantum-resistance} + +現在のイーサリアムを保護するの一部の暗号技術は、量子コンピューティングが実現した際に脆弱性が露呈する可能性があります。 量子コンピューターが現代の暗号技術にとって脅威となるには数十年かかると言われていますが、イーサリアムは今後何世紀にもわたって安全に運用することを目標にしています。 そのため、[イーサリアムの量子耐性](https://consensys.net/blog/developers/how-will-quantum-supremacy-affect-blockchain/)をできるだけ早く実現する必要があります。 + +イーサリアムのデベロッパーが直面している課題として、現在のプルーフ・オブ・ステークのプロトコルが、有効なブロックの投票を集約するために、非常に効率的な署名スキームである BLS に依存していることです。 この署名スキームは、量子コンピューターによって破られてしまう可能性があります。一方、量子耐性のある代替手段は、計算効率がそれほど良くありません。 + +イーサリアムでは、暗号秘密を生成するために[「KZG」コミットメントスキーム](/roadmap/danksharding/#what-is-kzg)が広く使われています。しかし、このスキームは量子コンピュータによって破られる可能性があります。 現在は、多くのユーザーが生成したランダム性を使用して「信頼できるセットアップ」として回避されており、量子コンピューターによるリバースエンジニアリングができないようになっています。 しかし、理想的には、量子安全暗号を組み込むことで、脆弱性を根本的に解決することが望まれます。 BLS スキームの効率的な代替となる可能性のある 2 つの主要なアプローチとして、[STARK ベース](https://hackmd.io/@vbuterin/stark_aggregation)と[ラティスベース](https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-lattice-encryption-326ac66e3175)の署名スキームがあります。 これらについては現在、研究および試作中です。 + + KZG と信頼できるセットアップについての詳細 + +## よりシンプルで効率的なイーサリアム {#simpler-more-efficient-ethereum} + +複雑なシステムでは、攻撃者が悪用できるバグや脆弱性が発生しやすくなります。 そのため、イーサリアムは、ロードマップの中で、不要なコードを削除したり、改善したりして、システムを簡素化することを目指しています。 無駄のないシンプルなコードベースにすることで、デベロッパーは保守、理解しやすくなります。 + +[イーサリアム仮想マシン(EVM)](/developers/docs/evm)をよりシンプルで効率的なものにするアップデートが予定されています。 その一環として、[SELFDESTRUCT オペコードが削除](https://hackmd.io/@vbuterin/selfdestruct)されます。このコマンドはめったに使用されなくなりましたが、状況によっては使用すると危険を伴う場合があります。例えば、特にイーサリアムのストレージモデルに対する将来のアップグレードと組み合わせた場合です。 イーサリアムクライアントは、現在でも完全に削除可能な古いトランザクションタイプをサポートしています。 また、ガスの計算方法も改善される予定です。暗号操作を支える算術演算に対して、より効率的な方法が導入されます。 + +同様に、現在のイーサリアムクライアントの他の部分もアップデートされる可能性があります。 一例として現在は、実行クライアントとコンセンサスクライアントが異なるデータ圧縮方式を使用しています。 この圧縮方式をネットワーク全体で統一すれば、クライアント間でのデータ共有がより簡単で直感的になります。 + +## 現在の進行状況 {#current-progress} + +イーサリアムの将来的な安全性を確保するために必要なアップグレードの多くは、まだ研究段階です。実装には数年かかると考えられており、 SELF-DESTRUCT の削除や、実行クライアントとコンセンサスクライアントで使用される圧縮方式の統一などのアップグレードは、量子耐性のある暗号よりも早く実現される可能性があります。 + +**参考文献** + +- [ガス](/developers/docs/gas) +- [EVM(イーサリアム仮想マシン)](/developers/docs/evm) +- [データ構造](/developers/docs/data-structures-and-encoding) diff --git a/public/content/translations/ja/roadmap/index.md b/public/content/translations/ja/roadmap/index.md new file mode 100644 index 00000000000..739ec407d13 --- /dev/null +++ b/public/content/translations/ja/roadmap/index.md @@ -0,0 +1,117 @@ +--- +title: イーサリアムロードマップ +description: イーサリアムのスケーラビリティ、セキュリティ、サステナビリティを改善する工程 +lang: ja +template: roadmap +image: /roadmap/roadmap-main.png +alt: "イーサリアムロードマップ" +summaryPoints: +buttons: + - label: 今後のアップグレード + toId: 予定されている変更 + - label: 過去のアップグレード + to: /history/ + variant: 概要 +--- + +イーサリアムは、すでにグローバルで協調して稼働している強力なプラットフォームですが、さらなる改善が進められています。 大胆な改善案が提案されており、イーサリアムは現在の形から、フルスケールで最大の復元力を備えたプラットフォームへとアップグレードされる予定です。 これらの一連のアップグレードは、イーサリアムのロードマップに記載されています。 + +**イーサリアムの過去のアップグレードについては、[履歴](/history/)のページをご覧ください。** + +## イーサリアムで予定されている変更点は何ですか? {#what-changes-are-coming} + +将来のプロトコルの具体的な改善案については、イーサリアムのロードマップに概要が描かれています。 このロードマップは、イーサリアムのユーザーに次のメリットをもたらします。 + + + + + + + + +## イーサリアムにロードマップが必要な理由は何ですか? {#why-does-ethereum-need-a-roadmap} + +イーサリアムは定期的にアップグレードされており、その結果、スケーラビリティ、セキュリティ、サステナビリティが向上しています。 イーサリアムの中核的な強みの 1 つとして、研究開発から生まれた新しいアイデアに適応できることです。 この適応性によって、イーサリアムは新たな課題に取り組んでおり、最先端の技術的ブレークスルーにも対応できる柔軟性を備えています。 + + + +イーサリアムのロードマップは、研究者と開発者たちが長年かけて築き上げてきたものです。このプロトコルは非常に技術的な内容ではあるものの、やる気があれば誰でも参加することができます。 新しいアイデアは、通常、[ethresear.ch](https://ethresear.ch/)、[イーサリアム・マジシャンズ](https://www.figma.com/exit?url=https%3A%2F%2Fethereum-magicians.org%2F) 、イーサリアム研究開発の Discord サーバーなどのフォーラムで議論されます。 議論の内容は、新たに見つかった脆弱性への対応、アプリケーションレイヤーで活動する組織(dApp や取引所など)からの提案、エンドユーザーにとっての既知の摩擦(コストやトランザクション速度など)への対応だったりします。 新しいアイデアが成熟すると、[イーサリアム改善提案](https://eips.ethereum.org/)として提案できます。 このアイデアの創出は、誰でも参加できるオープンなプロセスです。コミュニティのメンバーであれば、いつでも議論に参加できます。 + +[イーサリアムにおけるガバナンスの詳細](/governance/) + + + + +

ETH2とは何ですか?

+ +

「Eth2」という用語は、プルーフ・オブ・ステークへ移行する前、イーサリアムの今後を説明するために広く使用されていましたが、より正確な用語の方が好ましいということで段階的に廃止されました。元々は、プルーフ・オブ・ステークへの移行前のネットワークと移行後のネットワークを区別するために使われていました。また、異なるイーサリアムクライアントを指す場合もありました。具体的には、実行クライアントをETH1クライアント、コンセンサスクライアントをETH2クライアントと呼んでいました。

+ +
+ +## イーサリアムのロードマップは時間とともに変化しますか? {#will-ethereums-roadmap-change-over-time} + +はい、ほぼ間違いなく変化します。 ロードマップは、現在のイーサリアムをアップグレードするための計画です。短期的および将来にわたる長期的な計画の両方をカバーしています。 新しい情報技術が使えるようになると、ロードマップも変更される可能性があります。 + +イーサリアムのロードマップは、イーサリアムを改善するための目的の集合と考えてください。 いわば、コアの研究者と開発者が考えた、イーサリアムが目指すべき最適なパスの仮説です。 + +## ロードマップに終わりはありますか? {#when-will-the-roadmap-be-finished} + +イーサリアムでは、今後 6 か月の間に、ステーキングの引き出しなどのアップグレードを実装します 。一方、耐量子暗号などのアップグレードは優先度が低く、今後 5〜10 年間は実装されないかもしれません。 イーサリアムは、多数のロードマップアイテムを同時に進めており、それぞれ異なる速度で開発されています。そのため、各アップグレードの正確なタイミングを予測するのは難しくなっています。 アップグレードの緊急性は、時間の経過とともに外部要因によって変化する可能性があります。例えば、量子コンピューターの性能と普及が急速に進むにつれて、耐量子暗号の緊急性がますます高まっていくかもしれません。 + +イーサリアムの発展を考えるには、生物学的進化を参考にするのも 1 つの方法です。 新しい課題に適応し、適応度を維持できるネットワークは、より成功する可能性が高くなります。そのため、ネットワークのパフォーマンスが上がるにつれて、スケーラブルで安全なプロトコルが必要になります。またプロトコルの変更を最小限に抑え、変化に対して耐性を持つことも重要です。 + +## アップグレードをするには、何が必要ですか? {#do-i-have-to-do-anything-when-there-is-an-upgrade} + +アップグレードは、基本的にエンドユーザーに影響しません。しかし、より良いユーザーエクスペリエンス、より安全なプロトコル、イーサリアムとのやり取りにおいてより多くの選択肢などを提供することについては、影響が考えられます。 エンドユーザーは、アップグレードについて何もする必要はありません。資産を保護するためにも、特別なことをする必要はありません。 ただし、ノードオペレーターは、アップグレードの準備のためにクライアントを更新する必要があります。 一部のアップグレードは、アプリケーションデベロッパーにとって変更となる可能性があります。 例えば、履歴の有効期限におけるアップグレードでは、アプリケーションデベロッパーは、新しい情報源から履歴データを取得することになります。 + +## バージやスプラージなどは何を指していますか? {#what-about-the-verge-splurge-etc} + +[ヴィタリック・ブテリンは、イーサリアムのロードマップの構想を提案しました](https://twitter.com/VitalikButerin/status/1588669782471368704)が、その内容は、イーサリアムのアーキテクチャへの影響別に、個別のカテゴリに分類されていました。 提案内容は、以下のとおりです。 + +- マージ: プルーフ・オブ・ワークからプルーフ・オブ・ステークへの移行に関連するアップグレード +- サージ: ロールアップとデータシャーディングによるスケーラビリティ向上に関連するアップグレード +- スカージ: MEV からの検閲耐性、分散化、プロトコルのリスクに関連するアップグレード +- バージ: ブロックの検証をより簡単にするアップグレード +- パージ: ノード実行における計算コストの削減とプロトコルの簡素化に関連するアップグレード +- スプラージ: これまでのカテゴリに分類できないその他のアップグレード + +よりシンプルでよりユーザーに寄り添ったモデルを目指すため、この用語は使用しないことにしました。 ヴィタリックが提案した構想はそのままですが、用語をよりユーザーにわかりやすいものに変更します。 + +## シャーディングとは何ですか? {#what-about-sharding} + +シャーディングでは、イーサリアムのブロックチェーンを分割する技術です。バリデータのサブセットは、それぞれのチェーンでデータを検証する役割を担います。 これは、もともとイーサリアムをスケーリングする方法として開発されました。 しかし、レイヤー 2 ロールアップの開発が予想以上に進み、すでにさまざまなスケーリング機能を提供できるようになりました。また、プロトダンクシャーディングの実装後には、さらに多くの機能を提供する予定となっているため、 「シャードチェーン」は不要になり、ロードマップから削除されました。 + +## 特定の技術アップグレードについての情報 {#looking-for-specific-technical-upgrades} + +- [ダンクシャーディング](/roadmap/danksharding) - ダンクシャーディングは、イーサリアムのブロックに「ブロブ」と呼ばれるデータを追加することで、ユーザーのレイヤー 2 ロールアップ使用料を大幅に削減します。 +- [ステーキングの引き出し](/saking/withdrawals) - 上海/カペラのアップグレードにより、イーサリアム上のステーキングした ETH を引き出せるようになりました。また、ステーキングした ETH のロックを解除できるようになりました。 +- [シングルスロット・ファイナリティ](/roadmap/single-slot-finality) - 15 分待たずに、同一のスロット内でブロックが提案され、ファイナライズが可能になります。 これにより、アプリにとっては利便性が向上し、攻撃がはるかに困難になります。 +- [プロポーザー/ビルダーセパレーション](/roadmap/pbs) - ブロックを構築するタスクとブロックを提案するタスクを別々のバリデータに分割することで、イーサリアムにおけるコンセンサス合意プロセスを、より効率的で公平にし、検閲耐性のあるものにします。 +- [シークレットリーダー選出](/roadmap/secret-leader-election) - 高度な暗号化を使い、現在のブロック提案者のアイデンティティが公開されないようにします。これにより、特定の攻撃タイプから保護できます。 +- [アカウント抽象化](/roadmap/account-abstraction) - アカウント抽象化はイーサリアムのアップグレードの一種です。複雑なミドルウェアを使用することなく、イーサリアム上でスマートコントラクトウォレットをネイティブにサポートします。 +- [バークルツリー](/roadmap/verkle-trees) - バークルツリーは、イーサリアム上でステートレスクライアントを可能にするために使用されるデータ構造です。 「ステートレス」クライアントは、ストレージ容量をあまり必要とせず、新しいブロックの検証が可能です。 +- [ステートレス](/roadmap/statelessness) - ステートレスクライアントは、大量のデータを保存しなくても新しいブロックを検証できます。 これにより、現在必要とされているコストが大幅に下がりますが、ノードを実行するメリットはそのまま得られます。 diff --git a/public/content/translations/ja/roadmap/merge/index.md b/public/content/translations/ja/roadmap/merge/index.md new file mode 100644 index 00000000000..5cc17b30956 --- /dev/null +++ b/public/content/translations/ja/roadmap/merge/index.md @@ -0,0 +1,229 @@ +--- +title: マージ +description: マージについて - イーサリアムメインネットへのプルーフ・オブ・ステークの導入 +lang: ja +template: upgrade +image: /upgrades/merge.png +alt: +summaryPoint1: イーサリアムメインネットは現在プルーフ・オブ・ステークを使用していますが、これまではそうではありませんでした。 +summaryPoint2: 旧プルーフ・オブ・ワークのメカニズムからプルーフ・オブ・ステークへのアップグレードはマージと呼ばれます。 +summaryPoint3: マージとは、元のイーサリアムメインネットが、ビーコンチェーンとよばれる別のプルーフ・オブ・ステークのブロックチェーンと統合(マージ)し、1つのチェーンになったことを意味します。 +summaryPoint4: マージによりイーサリアムのエネルギー消費が最大99.95%削減されました。 +--- + + + マージは、2022年9月15日に行われました。 これにより、イーサリアムはプルーフ・オブ・ステーク・コンセンサスへの移行を完了し、公式にプルーフ・オブ・ワークは廃止されました。この移行により、エネルギー消費量が最大99.95%削減されました。 + + +## マージとは {#what-is-the-merge} + +マージとは、イーサリアムの元の実行レイヤー ([誕生](/history/#frontier)から存在するメインネット) と、新規のプルーフ・オブ・ステークのコンセンサスレイヤーであるビーコンチェーンをマージ(統合)することでした。 これにより、エネルギー集約的なマイニングが不要になり、代わりにステーキングされた ETH を利用して、ネットワークのセキュリティが確保されるようになりました。 イーサリアムのビジョンである、より高性能なスケーラビリティ、より安心なセキュリティ、より高いレベルの持続可能性を実現するための、本当にエキサイティングなステップとなりました。 + + + +当初、[メインネット](/glossary/#mainnet)とは別に[ビーコンチェーン](/roadmap/beacon-chain/)がリリースされました。 メインネットでは[プルーフ・オブ・ワーク](/developers/docs/consensus-mechanisms/pow/)によりすべてのアカウント、残高、スマートコントラクトおよびブロックチェーンの状態の安全性が保たれ、それと同時に[プルーフ・オブ・ステーク](/developers/docs/consensus-mechanisms/pos/)を活用したビーコンチェーンが並行して稼働していました。 マージでは、これらの 2 つのシステムが最終的に統合され、プルーフ・オブ・ワークが永久にプルーフ・オブ・ステークに置き換わりました。 + +イーサリアムが、恒星間航行への準備が不十分で打ち上げられた宇宙船だと想像してみてください。 ビーコンチェーンによって、新型のエンジンと強化された船体が構築されました。 大規模なテストが行われた後、旧式のエンジンと新型のエンジンを飛行中に入れ替える時期となりました。 より効率的な新型のエンジンを既存の宇宙船にマージしたことにより、何光年もの長い宇宙への旅ができるようになったのです。 + +## メインネットとのマージ {#merging-with-mainnet} + +イーサリアムメインネットは、その誕生からマージまで、プルーフ・オブ・ワークにより保護されてきました。 プルーフ・オブ・ワークのもと、トランザクション、スマートコントラクト、アカウントなど、馴染みのあるすべての機能を備えた、イーサリアムのブロックチェーンが 2015 年 7 月に実現しました。 + +イーサリアムの歴史を通して、デベロッパーはプルーフ・オブ・ワークからプルーフ・オブ・ステークへの最終的な移行の準備を行ってきました。 2020 年 12 月 1 日、メインネットとは別のブロックチェーンとして、ビーコンチェーンが誕生し、メインネットと並行して稼働しました。 + +ビーコンチェーンは、もともとはメインネットのトランザクションの処理はせず、 代わりに、アクティブなバリデータとそのアカウント残高に合意することで、独自の状態でコンセンサスに達していました。 膨大なテストを経て、ビーコンチェーンは実世界のデータでのコンセンサスに用いる時が来ました。 マージ後は、ビーコンチェーンが実行レイヤーのトランザクションやアカウント残高を含む全てのネットワークデータのコンセンサスエンジンになりまりました。 + +マージは、ブロック生成のエンジンとしてビーコンチェーンを使用するという公式な変更になり、 マイニングは有効なブロックを生成する手段ではなくなりました。 代わりに、プルーフ・オブ・ステークのバリデータが、すべてのトランザクションの有効性とブロック生成の処理を担当することになりました。 + +マージにより、履歴は失われていません。 メインネットがビーコンチェーンにマージされ、イーサリアムのすべてのトランザクション履歴もマージされました。 + + +このプルーフ・オブ・ステークへの移行により、イーサ(ETH)の発行方法も変わりました。 マージ前後におけるイーサ(ETH)発行の詳細については、こちらをご覧ください。 + + +### ユーザーと所有者 {#users-holders} + +**保有者やユーザーにとっては、マージにより何かが変わったということはありません。** + +_繰り返しになりますが_、ETH やイーサリアム上の他のデジタル資産のユーザーや保有者、またノードを運用していないステイカーは、 **マージに伴い、資金やウォレットに何かをする必要はありません**。ETH は ETH のままです。 マージ後も、「古い ETH」/「新しい ETH」や「ETH1」/「ETH2」のようなものはなく、ウォレットは以前とまったく同じように動作します。そうでないと言う人は詐欺師の可能性があります。 + +プルーフ・オブ・ワークを停止し、プルーフ・オブ・ステークに移行した後も、イーサリアムの誕生以降の全トランザクション履歴はそのままで、変更されていません。 マージ以前にウォレットに保有されていた資金は、マージ後も引き続きご利用いただけます。 **ユーザーや保有者は、何かをアップグレードする必要はありません。** + +[イーサリアムセキュリティの詳細](/security/#eth2-token-scam) + +### マージと分散型アプリ(Dapp)のデベロッパー {#node-operators-dapp-developers} + + + +主なアクション項目は次のとおりです。 + +1. コンセンサスクライアントと実行クライアントの両方を実行します。実行データを取得するためのサードパーティーエンドポイントは、マージ以降は利用できなくなっています。 +2. 実行クライアントとコンセンサスクライアントが安全に通信できるように、共有の JWT シークレットで認証します。 +3. 獲得したトランザクションフィーのチップまたは MEV を受け取るための「フィーの受取人」のアドレスを設定します。 + +上記の最初の 2 つの項目が完了していないと、両方のレイヤーが同期および認証されるまで、ノードが「オフライン」として表示されてしまいます。 + +「フィーの受取人」を設定しなくても、バリデータは通常どおり動作しますが、バリデータが提案したブロックの未焼却のフィーのチップや獲得できたはずの MEV を逃すことになります。 + + + + +マージまでは、ネットワークから送信されるブロックを受信し、適切に検証し、伝搬するには、実行クライアント(Geth、Erigon、Besu、Nethermind など)だけで十分でした。 マージ後は、実行ペイロードに含まれるトランザクションの有効性は、それ自体の「コンセンサスブロック」の有効性にも依存します。 + +そのため、マージ後のイーサリアム・フルノードでは、今は実行レイヤクライアントとコンセンサスレイヤクライアントの両方が必要になります。 これらの 2 つのクライアントは、新しいエンジン API を使用して連携します。 エンジン API では、JWT シークレットを使用した認証が必要で、JWT シークレットは両方のクライアントに提供され、安全な通信が行われます。 + +主なアクションアイテムは以下の通りです。 + +- 実行クライアントに加え、コンセンサスクライアントをインストールする +- 実行クライアントとコンセンサスクライアントが安全に通信できるように、共有 JWT シークレットで認証する + +上記の項目が完了していないと、両方のレイヤーの同期と認証が完了するまで、ノードが「オフライン」のように表示されます。 + + + + + +マージにはコンセンサスに関連する変更も含まれており、下記に関連する変更も含まれています。< + +
    +
  • ブロック構造
  • +
  • スロットとブロックのタイミング
  • +
  • オペコードの変更
  • +
  • オンチェーンのランダム性に関するソース
  • +
  • セーフヘッド確定したブロックのコンセプト
  • +
+ +詳細については、Tim Beiko によるブログ投稿マージがイーサリアムのアプリケーションレイヤーに与える影響をご覧ください。 + +
+ +## マージとエネルギー消費 {#merge-and-energy} + +マージは、イーサリアムでのプルーフ・オブ・ワークの終わりを意味し、より持続可能で環境に優しいイーサリアムの時代をスタートさせました。 イーサリアムのエネルギー消費量は推定で 99.95%減少し、環境に優しいブロックチェーンとなりました。 [イーサリアムのエネルギー消費の詳細](/energy-consumption/) + +## マージとスケーリング {#merge-and-scaling} + +マージにより、プルーフ・オブ・ワークでは不可能だったスケーラビリティのさらなる向上が可能になったことで、[イーサリアムのビジョン](/roadmap/vision/)である完全なスケーラビリティ、セキュリティ、サステナビリティの達成に一歩近づくことになります。 + +## マージに関する誤解について {#misconceptions} + + + +イーサリアムのノードには、ブロックを提案できるノードとできないノードがあります。 + +ブロックを提案するノードは、イーサリアムの全ノードのうち、ごくわずかに過ぎません。 このカテゴリには、プルーフ・オブ・ワーク(PoW) のマイニングノードとプルーフ・オブ・ステーク(PoS) のバリデータノードがあります。 このカテゴリでは、時折次のブロックを提案し、プロトコル報酬を得る能力と引き換えに、経済的リソース(プルーフ・オブ・ワークでは GPU ハッシュパワー、プルーフ・オブ・ステークでは ETH のステーキング)を必要とします。 + +ネットワーク上の他のノード (例: 大多数)は、利用可能なストレージとインターネット接続の 1〜2TB の消費者グレードのコンピュータを超えて経済的なリソースを何もコミットする必要はありません。 これらのノードはブロックを提案しませんが、新しいブロックをリスニングし、ブロックの出現時にネットワークのコンセンサスルールに従って有効性を検証し、すべてのブロック提案者に責任を持たせます。このようにネットワークを保護する重要な役割を担っています。 ブロックが有効と判断されれば、ノードはそのブロックをネットワークを通じて伝搬し続けます。 何らかの理由でブロックが無効と判断された場合、ノードソフトウェアはそのブロックを無効とみなし、伝搬を停止させます。 + +両方の合意メカニズム(プルーフ・オブ・ワークまたはプルーフ・オブ・ステーク)のもとで、誰でもブロックを生成しないノードを実行できます。可能な限り多くのユーザーにノードの実行を推奨します。 ノードの運用はイーサリアムに非常に大きな貢献となり、セキュリティやプライバシー、検閲耐性を向上させるなど、ノードを運用するすべての人もその恩恵を受けることになります。 + +また、誰もが自分自身のノードを運用できることは、イーサリアムネットワークの分散化を維持するために不可欠です。 + +自分のノードを運用することについての詳細 + + + + + +ガス代は、ネットワーク容量に対するネットワーク需要の産物です。 マージにより、コンセンサスにプルーフ・オブ・ワークからプルーフ・オブ・ステークに移行しましたが、ネットワーク容量やスループットに直接影響するパラメーターは大幅に変更されませんでした。 + +ロールアップを中心としたロードマップでは、レイヤー 2でのユーザーアクティビティのスケーリングに集中して取り組み、レイヤー 1 メインネットをロールアップのデータ保存に最適化された安全な分散型決済レイヤーとして稼働させ、ロールアップトランザクションの大幅な低コスト化を目指しています。 プルーフ・オブ・ステークへの移行は、これを実現するための重要な布石となります。 ガスとフィーについての詳細 + + + + +トランザクションの「速度」は、ブロックに含まれるまでの時間や確定までの時間など、いくつかの方法で測定することができます。 いずれも若干の違いはありますが、ユーザーが気づくようなものではありません。 + +従来、プルーフ・オブ・ワークでの目標は約 13.3 秒ごとに新しいブロックを生成することでした。 プルーフ・オブ・ステークの下では、スロットが 12 秒ごとに正確に発生し、そのたびにバリデータがブロックを公開する機会があります。 ほとんどのスロットにはブロックがありますが、必ずしもすべてのスロットにブロックがあるわけではありません (例: バリデータがオフラインの場合など) 。 プルーフ・オブ・ステークでは、プルーフ・オブ・ワークに比べてブロックの生成頻度が 10%程度高くなっています。 これはかなり些細な変更のため、ユーザーが気付くほどではありません。 + +プルーフ・オブ・ステークにより、以前は存在しなかったトランザクションのファイナリティのコンセプトが導入されました。 プルーフ・オブ・ワークでは、トランザクションが含まれるブロックの改ざんは、新たなブロックがマイニングされるたびに、指数関数的に難しくなっていきますが、可能性が完全にゼロになることはありません。 プルーフ・オブ・ステークでは、ブロックはエポック(6.4 分間、この間に 32 ブロックが生成可能)に束ねられ、バリデータが投票します。 1 つのエポックの終了時に、バリデータはそのエポックを「正当」とみなすかどうか投票します。 バリデータがエポックの正当性に同意した場合、次のエポックで確定されます。 確定したトランザクションを取り消すには、ステーキングされた全 ETH の 3 分の 1 以上を取得し、焼却する必要があるため、経済的に不可能となります。 + + + + + +マージ後の初期段階では、ステーカーはブロック提案の結果として獲得したフィーチップと MEV のみにアクセスできました。 これらの報酬は、バリデータが管理する非ステーキングアカウント (フィーの受取人と呼ばれる) に入金され、すぐに利用できます。 これらの報酬は、バリデータの職務を遂行するためのプロトコル報酬と別です。 + +上海/カペラネットワークのアップグレード以降、 ステーカーは引き出しアドレスを指定して、超過しているステーキング残高(32ETH を越えた分のプロトコル報酬)の自動支払を受け取れるようになりました。 このアップグレードにより、バリデータがネットワークから抜け出すときに、ロックを解除して残高全体を回収できるようになりました。 + +ステーキングの引き出しについての詳細 + + + + +上海/カペラアップグレードにより出金が可能になってから、バリデータは 32ETH を超えるステーキング残高を出金するよう奨励されています。これらの資金は利回りに追加されず、ロックされているためです。 年換算利回り(ステークした ETH の合計により決定)によっては、バリデータをやめて残高を引き出すか、報酬を使ってさらにステーキングして、より多くの利回りを得ることもできます。 + +ステーキングの重要な注意点として、全バリデータの退出はプロトコルによってレート制限が設定されており、エポックごとに(6.4 分ごとに)退出できるバリデータの数は限られています。 この制限はアクティブなバリデータの数に応じて変動しますが、1 日の間にネットワークから退出できるのは、ステークされた ETH の合計の約 0.33%になります。 + +これにより、ステークされた資金の大量流出を防ぎます。 さらに、プロトコルがスラッシングペナルティを執行する前に、ステークされた全ての ETH の大部分にアクセスできる攻撃者がスラッシング対象の違反をして、同じエポック内で違反しているバリデータの残高をすべて終了または引き出してしまうことを防ぎます。 + +また、年換算利回りは意図的にダイナミックに設定されており、ステーカー市場がバリデータの報酬額をバランスよく調整できるようになっています。 レートが低すぎる場合は、ステーカーはプロトコルが制限するレート範囲内で退出していきます。 その結果、残っているステーカーの年換算利回りが徐々に上昇し、新しいステーカーを引き寄せたり、ステーカーが再度戻ってくることになります。 + + +## Eth2 の名称廃止 {#eth2} + +「Eth2」という用語は廃止されました。 「Eth1」と「Eth2」が単一チェーンに統合された今では、2 つのイーサリアムネットワークを区別する必要はなくなり「イーサリアム」のみとなりました。 + +混乱をなくすため、次の名称が変更になりました。 + +- 「Eth1」は「実行レイヤー」と名称が変わり、これはトランザクションと実行を処理するレイヤーです。 +- 「Eth2」は「コンセンサスレイヤー」となり、プルーフ・オブ・ステークのコンセンサスを処理するレイヤーです。 + +これらの用語の変更は、単に名称を変更するだけのものであり、イーサリアムの目標やロードマップには影響を及ぼしません。 + +[「Eth2」名称変更の詳細](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) + +## アップグレード間の関係 {#relationship-between-upgrades} + +イーサリアムのアップグレードはすべて、多少なりとも相互に関連しています。 マージと他のアップグレードがどのように関係しているか、まとめてみましょう。 + +### マージとビーコンチェーン {#merge-and-beacon-chain} + +マージにより、元のメインネットの実行レイヤーへ、新しくコンセンサスレイヤーとしてビーコンチェーンが正式に採用されました。 マージ以降、バリデータがイーサリアムメインネットの保護にあたり、[プルーフ・オブ・ワーク](/developers/docs/consensus-mechanisms/pow/)によるマイニングはブロック生成の有効な手段ではなくなっています。 + +ブロックは、コンセンサスに参加する権利を得るために、ETH をステーキングしたノードを検証することで提案されます。 これらのアップグレードは、シャーディングを含む将来のスケーラビリティのアップグレードの準備段階となります。 + + + ビーコンチェーン + + +### マージと上海アップグレード {#merge-and-shanghai} + +プルーフ・オブ・ステークへの移行を簡略化し、移行作業に最大限の注力を注ぐため、マージでは、ステーキングした ETH の引き出し機能など、いくつかの予定されたいた機能が対象外となりました。 この機能は別途、上海/カペラアップグレードのアップグレードで有効化されました。 + +さらにご興味のある方は、ヴィタリックが 2021 年 4 月の ETHGlobal イベントで発表した[マージ後の予定](https://youtu.be/7ggwLccuN5s?t=101)をご覧ください。 + +### マージとシャーディング {#merge-and-data-sharding} + +もともとの計画では、マージ前にシャーディングに取り組み、スケーラビリティに対応する予定でした。 しかし、[レイヤー 2 スケーリングソリューション](/layer-2/)の高まりにより、まずはプルーフ・オブ・ワークからプルーフ・オブ・ステークへの移行が優先されました。 + +シャーディング計画は急速に進展していますが、トランザクションの実行をスケールリングするレイヤー 2 技術の台頭と成功により、ロールアップコントラクトからの圧縮コールデータ(calldata)の保存を負荷分散する最適な方法を見つけることにシフトしています。これにより、ネットワーク容量を指数関数的に増やすことができるようになります。 プルーフ・オブ・ステークへの移行がなければ、これは実現不可能なことでした。 + + + シャーディング画像 + + +## 参考文献 {#further-reading} + + + + diff --git a/src/content/translations/ja/roadmap/merge/issuance/index.md b/public/content/translations/ja/roadmap/merge/issuance/index.md similarity index 100% rename from src/content/translations/ja/roadmap/merge/issuance/index.md rename to public/content/translations/ja/roadmap/merge/issuance/index.md diff --git a/src/content/translations/ja/roadmap/pbs/index.md b/public/content/translations/ja/roadmap/pbs/index.md similarity index 100% rename from src/content/translations/ja/roadmap/pbs/index.md rename to public/content/translations/ja/roadmap/pbs/index.md diff --git a/public/content/translations/ja/roadmap/scaling/index.md b/public/content/translations/ja/roadmap/scaling/index.md new file mode 100644 index 00000000000..5e5ea41acc7 --- /dev/null +++ b/public/content/translations/ja/roadmap/scaling/index.md @@ -0,0 +1,47 @@ +--- +title: Scaling Ethereum +description: ロールアップでは、トランザクションをオフチェーンでまとめて処理することで、ユーザーのコスト削減を実現しています。 しかし、現在のロールアップでは、データを使用するコストが高く、トランザクションを安価にすることが難しいという課題があります。 これについては、プロトダンクシャーディングによって解決できます。 +lang: ja +image: /roadmap/roadmap-transactions.png +alt: "イーサリアムロードマップ" +template: roadmap +--- + +イーサリアムは、[レイヤー 2](/layer-2/#rollups)(ロールアップとも呼ばれます)と呼ばれるスケーリング技術で、トランザクションをまとめて処理し、出力をイーサリアムに送信します。 ロールアップでは、イーサリアムメインネットよりも最大 8 倍安価に取引を行うことができますが、ロールアップのさらなる最適化によって、さらにコストを削減できる可能性があります。 ただし、ロールアップには一部の集中化されたコンポーネントも含まれており、これはロールアップが成熟するにつれてデベロッパーによって取り除かれる予定です。 + + +
    +
  • 現在のロールアップはイーサリアムのレイヤー1よりも約3~8倍安い
  • +
  • ゼロ知識ロールアップはまもなく、約40~100倍安くなる予定
  • +
  • イーサリアムの今後の仕様変更により、さらに約100~1000倍のスケーリングが実現
  • +
  • ユーザーは、トランザクションのコストが0.001ドル未満というメリットを享受
  • +
+
+ +## データ費用の削減 {#making-data-cheaper} + +ロールアップでは、大量のトランザクションをまとめて、その結果をイーサリアムに送信します。 これにより、大量のデータが生成されます。このデータは、誰でもアクセスできるように公開する必要があります。公開されているので、誰でも自分でトランザクションを実行し、ロールアップオペレーターが正直かどうかを確認することができます。 不一致を発見した場合、異議を申し立てることができます。 + +### プロトダンクシャーディング {#proto-danksharding} + +ロールアップのデータは、イーサリアム上に永続的に保存されるため、コストがかかります。 ユーザーは、ロールアップで支払うトランザクションコストの 90%以上を、データストレージに費やしています。 トランザクションコストを削減するため、新たに「ブロブ」と呼ばれる一時ストレージ領域にデータを移動できるようになりました。 ブロブは、永続的でないため、比較的コストが安くなっており、不要になるとイーサリアムから削除されます。 ロールアップデータの長期保存は、ロールアップオペレータ、取引所、インデックスサービスなど、それを必要とする人々の役割となります。 イーサリアムへのブロブトランザクションの追加は、「プロトダンクシャーディング」と呼ばれるアップグレードの一部であり、 2023 年後半の比較的早い時期にリリースされる予定です。 + +プロトダンクシャーディングによって、イーサリアムプロトコルにブロブトランザクションが組み込まれると、イーサリアムのブロックにたくさんのブロブを追加できるようになります。 これにより、イーサリアムのスループットが大幅に向上し(100 倍以上)、トランザクションのコストも下げることができます。 + +### ダークシャーディング {#danksharding} + +ブロブデータ拡張の第 2 段階は、大変複雑です。理由は、ロールアップデータがネットワーク上で利用可能であることを確認する新しい方法が必要だからです。また、バリデータの役割を分離して、ブロック構築とブロック提案に分けることも必要です。 さらに、バリデータがブロブデータの小さなサブセットを検証したことを暗号的に証明する方法も必要になります。 + +この 2 番目のステップは、[「ダンクシャーディング」](/roadmap/danksharding/)と呼ばれます。 完全に実装されるまでには、数年かかると予想されています。 ダンクシャーディングは、[ブロック構築とブロック提案を分離する](/roadmap/pbs)などの他の開発に依存しています。また、データが利用可能であることを効率的に確認するために、[データ可用性サンプリング(DAS)](/developers/docs/data-availability)と呼ばれる、数キロバイトのデータをランダムにサンプリングする新しいネットワーク設計も採用しています。 + +ダンクシャーディングの詳細 + +## 分散型ロールアップ {#decentralizing-rollups} + +[ロールアップ](/layer-2)は、イーサリアムのスケーラビリティ問題を解決する技術として、すでに実用化されています。 [ロールアッププロジェクトの豊富なエコシステム](https://l2beat.com/scaling/tvl)は、さまざまなセキュリティ保証を備えており、ユーザーは迅速かつ安価にトランザクションを実行できます。 しかし、ロールアップは、集中型のシーケンサー(トランザクションをイーサリアムに送信する前にすべてのトランザクション処理と集約を行うコンピューター)に依存しています。 シーケンサーは、オペレーターが制裁を受けたり、賄賂を受け取ったり、その他の方法で妨害される可能性があるため、検閲に対して脆弱です。 同時に、[ロールアップでは受信データを検証する方法が異なります](https://l2beat.com)。 最善の方法としては、「証明者」が不正証明または有効性証明を提出することですが、すべてのロールアップに備わっているわけではありません。 さらに、有効性証明および不正証明を使用するロールアップであっても、既知の証明者の小さなプールを使用するものがあります。 そのため、イーサリアムをスケーリングするための次の重要なステップは、シーケンサーと証明者を実行する責任をより多くの人々に分散することです。 + +ロールアップの詳細 + +## 現在の進行状況 {#current-progress} + +プロトダンクシャーディングは、ロードマップの初期段階で実装される予定です。 セットアップに必要な分散型の計算ステップはすでに開発済みです。また、いくつかのクライアントがブロブデータを処理できるプロトタイプも実装済みです。 完全なダンクシャーディングは、他のロードマップアイテムの完了を待つ必要があるため、おそらく数年先になるでしょう。 分散型ロールアップのインフラストラクチャは、段階的なプロセスを踏みます。たくさんの異なるロールアップが存在し、各システムで小さな違いがあります。そのため、それぞれ違った速度で完全に分散化されることになるでしょう。 diff --git a/src/content/translations/ja/roadmap/secret-leader-election/index.md b/public/content/translations/ja/roadmap/secret-leader-election/index.md similarity index 100% rename from src/content/translations/ja/roadmap/secret-leader-election/index.md rename to public/content/translations/ja/roadmap/secret-leader-election/index.md diff --git a/public/content/translations/ja/roadmap/security/index.md b/public/content/translations/ja/roadmap/security/index.md new file mode 100644 index 00000000000..ada23f01ba5 --- /dev/null +++ b/public/content/translations/ja/roadmap/security/index.md @@ -0,0 +1,48 @@ +--- +title: より安全なイーサリアム +description: イーサリアムは、現存するスマートコントラクトプラットフォームの中で、最も安全かつ分散化されています。 しかし、将来にわたってあらゆるレベルの攻撃に対して耐性を維持するためには、改善すべき点がまだあります。 +lang: ja +image: ..//roadmap/roadmap-security.png +alt: "イーサリアムロードマップ" +template: roadmap +--- + +イーサリアムは、すでに非常に安全な分散型スマートコントラクトプラットフォームですが、 今後もあらゆる種類の攻撃に耐えられるように、まだまだ改善の余地があります。 具体的には、イーサリアムクライアントにおける競合ブロックの処理方法を少しだけ変更したり、ネットワークがブロックを [「確定済み」](/developers/docs/consensus-mechanisms/pos/#finality)(攻撃者が多大な経済的損失を受けないと変更できない)にする速度を上げたりするなどです。 + +また、ブロック提案者にブロックの実際の内容を見えないようにすることで、トランザクションの検閲をさらに困難にする改善策や、クライアントがいつ検閲を行ったかを識別する新しい方法もあります。 これらの改善策が合わさることで、プルーフ・オブ・ステークにおけるプロトコルがアップグレードされ、個人から企業のユーザーまで、イーサリアム上のアプリ、データ、資産から即座に信用を得ることができます。 + +## ステーキングの引き出し {#staking-withdrawals} + +イーサリアムのプルーフ・オブ・ワークからプルーフ・オブ・ステークへのアップグレードは、イーサリアムの先駆者たちが自分のイーサ(ETH)をデポジットコントラクトに「ステーキング」することで始まりました。 このステーキングに使われる ETH は、ネットワークの保護に使われます。 ただし、この ETH は、現時点ではロックされており、ユーザーに返すことはできません。 プルーフ・オブ・ステークのアップグレードでは、ステーキングした ETH の引き出しが可能になります。 これは、プルーフ・オブ・ステークのプロトコルが完全に機能するために重要な要素であり、ステーカーが ETH 報酬を自由に使えるようになることで、イーサリアムのセキュリティにも有益です。 なぜなら、ステーキングに流動性を求めるユーザーが、リキッドステーキングデリバティブ(LSD)に頼る必要がなくなるからです。LSD は、イーサリアムを集中化させる力になる可能性があります。 このアップグレードは、2023 年 4 月 12 日に完了する予定です。 + +引き出しについての詳細 + +## 攻撃からの防御 {#defending-against-attacks} + +引き出しが可能になった後にも、イーサリアムの[プルーフ・オブ・ステーク](/developers/docs/consensus-mechanisms/pos/)のプロトコルにはいくつかの改善点があります。 1 つは、[ビューマージ](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739)と呼ばれる、より安全なフォーク選択アルゴリズムです。 これにより、高度なタイプの攻撃をさらに防ぐことができます。 + +イーサリアムがブロックを確定させるまでの時間を短縮することで、ユーザーがより快適に利用できるようになります。また、攻撃者が、高度な「再編成」攻撃を行って直近のブロックの再シャッフルを試みることで、利益を得たり、特定のトランザクションを検閲しようとするのを防ぐことができます。 [**シングルスロット・ファイナリティ(SSF)**](/roadmap/single-slot-finality/)は、トランザクションが確定に至るまでの遅延時間を短縮する方法です。 現行のシステムでは、15 分以内に生成されたブロックは、理論上攻撃者が他のバリデータにブロックの再構成を誘導できます。 SSF では、この脆弱性が解消されます。 個人からアプリや取引所まで、全てのユーザーは、トランザクションが取り消されないという保証を迅速に受けられます。ネットワークでは、SSF によりあらゆる種類の攻撃を遮断することができます。 + +シングルスロット・ファイナリティの詳細 + +## 検閲からの防御 {#defending-against-censorship} + +分散化は、個人や少数のグループのバリデータが、過剰な影響力を持ってしまうことを防ぐ効果があります。 新たなステーキングの技術は、イーサリアムのバリデータを可能な限り分散化した状態に保ち、ハードウェア、ソフトウェア、ネットワークの障害から保護します。 この新たなステーキングの技術では、複数のノード間でバリデータの責任を共有するソフトウェアも対象になっています。 これを、**分散バリデータ技術(DVT)**と呼びます。 DVT により、複数のコンピュータが共同で検証を行うことで、冗長性とフォールトトレランスが向上します。そのため、ステーキングプールでは、DVT の使用が推奨されています。 DVT では、バリデータ鍵を複数のシステムに分割します。これにより、1 つのオペレータが複数のバリデータを実行できなくなり、 不正なオペレータによるイーサリアムへ攻撃が困難になります。 つまり、バリデータを個人ではなく、*コミュニティ*全体で実行することで、セキュリティを高めるというアイデアです。 + +分散バリデータ技術の詳細 + +**プロポーザー/ビルダーセパレーション(PBS)**の実装により、イーサリアムの検閲耐性が大幅に向上します。 PBS では、ブロックの作成とイーサリアムネットワーク全体へのブロードキャストを別々のバリデータが担います。 これにより、利益を最大化している専門家のブロック構築アルゴリズムによる利益の偏りを防ぎ、ネットワーク全体でより公平な利益分配を実現します。また、時間の経過とともに、最もパフォーマンスの高い機関投資家に**ステークが集中化することを防ぐ**ことができます。 ブロック提案者は、ブロックビルダーの市場から提供されたブロックの中から、最も収益性の高いものを選択できます。 しかし、検閲を行うためには、収益性の低いブロックを選択なければならない状況が頻繁に発生します。これは、**ネットワーク上の残りのバリデータにとっても利益が低く、経済的に不合理**な行為です。 + +イーサリアムの検閲耐性をさらに向上させるために、暗号化されたトランザクションや包含リストなどのアドオンが検討されています。 これらのアドオンを使うと、ブロックの構築者や提案者は、ブロックに含まれる実際のトランザクションを把握できなくなります。 + +プロポーザー/ビルダーセパレーションの詳細 + +## バリデータの保護 {#protecting-validators} + +高度な攻撃者は、次に担当するバリデータを特定して、ブロックの提案を阻止するためにスパムを送信してくる可能性があります。これは**サービス拒否(DoS)攻撃**と呼ばれるものです。 [**シークレットリーダー選出(SLE)**](/roadmap/secret-leader-election)が実装されれば、ブロック提案者を事前に知ることができなくなるため、このタイプの攻撃から保護することができます。 SLE は、候補のブロック提案者を表す暗号コミットメントのセットを、継続的にシャッフルして順番を決め、その順番でバリデータを選択します。この方法により、バリデータは自分の順番を事前に知ることができます。 + +シークレットリーダー選出の詳細 + +## 現在の進行状況 {#current-progress} + +ロードマップ上のセキュリティアップグレードの研究は進んでいますが、実装にはまだ時間がかかりそうです。 ビューマージ、PBS、SSF、SLE における次のステップは、仕様を決定し、プロトタイプの構築を開始することです。 diff --git a/src/content/translations/ja/roadmap/single-slot-finality/index.md b/public/content/translations/ja/roadmap/single-slot-finality/index.md similarity index 100% rename from src/content/translations/ja/roadmap/single-slot-finality/index.md rename to public/content/translations/ja/roadmap/single-slot-finality/index.md diff --git a/src/content/translations/ja/roadmap/statelessness/index.md b/public/content/translations/ja/roadmap/statelessness/index.md similarity index 100% rename from src/content/translations/ja/roadmap/statelessness/index.md rename to public/content/translations/ja/roadmap/statelessness/index.md diff --git a/public/content/translations/ja/roadmap/user-experience/index.md b/public/content/translations/ja/roadmap/user-experience/index.md new file mode 100644 index 00000000000..0fbc98c2e69 --- /dev/null +++ b/public/content/translations/ja/roadmap/user-experience/index.md @@ -0,0 +1,36 @@ +--- +title: ユーザーエクスペリエンスの改善 +description: イーサリアムは、ほとんどの人にとって使いこなすのが難しいものです。 そのため、一般の人にも使ってもらえるように、イーサリアムへの参入障壁を大幅に下げる必要があります。ユーザーは、イーサリアムの分散型、パーミッションレス、検閲耐性といったアクセスのメリットを享受できるだけでなく、従来のWeb2アプリと同じように簡単に使えるようにする必要があります。 +lang: ja +image: ..//roadmap/roadmap-ux.png +alt: "イーサリアムロードマップ" +template: roadmap +--- + +イーサリアムを簡単に使用するためには、鍵やウォレットの管理からトランザクションの開始まで、さまざまな手順が必要です。 一般への普及を促進するには、これらの手順を簡略化して、イーサリアムを大幅に使いやすくする必要があります。また、Web2 アプリのようなスムーズなユーザーエクスペリエンスを提供することで、パーミッションレスで検閲耐性のあるアクセスを体験できるようにしなければなりません。 + +## シードフレーズを超えて {#no-more-seed-phrases} + +イーサリアムのアカウントは、 「公開鍵」でアカウントを特定し、「秘密鍵」でメッセージに署名します。この鍵のペアを利用して、イーサリアムのアカウントは保護されています。 秘密鍵は、マスターパスワードのようなものです。この鍵があれば、イーサリアムアカウントに完全にアクセスすることができます。 イーサリアムのアカウントの操作は、銀行や Web2 アプリのように、ユーザーに代わって口座を管理する仕組みとは異なるため、戸惑う人もいるでしょう。 集中化されているサードパーティに依存することなくイーサリアムを一般に普及させるには、ユーザーが公開鍵と秘密鍵による暗号化や鍵管理を理解しなくても、自分の資産を保管し、自分のデータを管理できる簡単でスムーズな方法が必要です。 + +これに対する解決策は、スマートコントラクトウォレットを使用してイーサリアムとやり取りすることです。 スマートコントラクトウォレットは、鍵の紛失や盗難に備えたアカウント保護、より優れた不正行為の検出や防御、新しい機能の追加など、さまざまなメリットをもたらします。 スマートコントラクトウォレットはすでに存在していますが、まだ使いにくいため、イーサリアムプロトコルがそれらをより便利に使えるようにサポートする必要があります。 この追加サポートは、アカウント抽象化と呼ばれています。 + +アカウント抽象化の詳細 + +## 誰でも使えるノード + +ノードを実行しているユーザーは、データを提供するサードパーティに依存せず、イーサリアムブロックチェーンと迅速かつプライバシーを保ち、パーミッションレスにやり取りができます。 しかし、現時点では、ノードを実行するには技術的な知識とかなりのディスク容量が必要でであるため、多くの人はノードを実行する代わりに仲介者に頼らざるを得ません。 + +ノードの実行をより簡単にし、リソースの消費を大幅に削減するアップグレードを予定しています。 データの格納方法は、 スペース効率の高い**バークルツリー**と呼ばれるス構造に変更する予定です。 また、[ステートレス](/roadmap/statelessness)や[データ有効期限](/roadmap/statelessness/#data-expiry)の導入により、イーサリアム ノードはイーサリアム状態データ全体のコピーを保存する必要がなくなり、ハードディスク容量を大幅に削減できます。 [ライトノード](/developers/docs/nodes-and-clients/light-clients/)は、フルノードを実行することで得られる多くのメリットを提供しますが、携帯電話や単純なブラウザアプリ内でも簡単に実行できるようになります。 + +バークルツリーについての詳細 + +これらのアップグレードにより、ノードの実行に対する障壁が事実上無くなります。 ユーザーは、コンピューターや携帯電話のディスク容量や CPU を気にせずに、イーサリアムに安全かつパーミッションレスにアクセスできるようになります。また、アプリを使用するときに、データやネットワークへのアクセスでサードパーティに依存する必要がなくなります。 + +## 現在の進行状況 {#current-progress} + +スマートコントラクトウォレットはすでに利用可能ですが、それらをできるだけ分散化してパーミッションレスにするには、さらなるアップグレードが必要です。 EIP-4337 は、イーサリアムのプロトコルへを変更せずに導入できる成熟した提案です。 EIP-4337 で必要となる主要なスマートコントラクトは、2023 年 3 月にデプロイされました。 + +完全なステートレスはまだ研究段階にあり、実装されるのは数年先になると考えられます。 データ有効期限を含む完全にステートレスになる工程には、いくつかのマイルストーンがあり、そのうちのいくつかは、近い将来に実装される可能性がありますが、 [バークルツリー](/roadmap/verkle-trees/)や[プロポーザー/ビルダーセパレーション](/roadmap/pbs/)などの他の工程が先に完了している必要があります。 + +バークルツリーのテストネットは、すでに稼働しています。次のフェーズでは、バークルツリーを有効にしたクライアントをプライベートテストネットで実行し、次にパブリックテストネットで実行します。 コントラクトをテストネットにデプロイしたり、テストネットでクライアントを実行したりすることで、開発を進めるお手伝いができます。 diff --git a/src/content/translations/ja/roadmap/verkle-trees/index.md b/public/content/translations/ja/roadmap/verkle-trees/index.md similarity index 100% rename from src/content/translations/ja/roadmap/verkle-trees/index.md rename to public/content/translations/ja/roadmap/verkle-trees/index.md diff --git a/src/content/translations/ja/security/index.md b/public/content/translations/ja/security/index.md similarity index 100% rename from src/content/translations/ja/security/index.md rename to public/content/translations/ja/security/index.md diff --git a/public/content/translations/ja/smart-contracts/index.md b/public/content/translations/ja/smart-contracts/index.md new file mode 100644 index 00000000000..4cfcf82271d --- /dev/null +++ b/public/content/translations/ja/smart-contracts/index.md @@ -0,0 +1,94 @@ +--- +title: スマートコントラクト +description: スマートコントラクトの紹介(非テクニカル面) +lang: ja +--- + +# スマートコントラクト入門 {#introduction-to-smart-contracts} + +スマートコントラクトは、[イーサリアムアプリケーション](/dapps/) の基本的な構成要素です。 これらは、従来の契約をデジタルに変換できる、ブロックチェーンに保存されたコンピュータプログラムです。 スマートコントラクトは非常に論理的で、イフト(IF This Then That:もし「これ」ならば、「あれ」をする)の構造に従っています。 また、プログラムされた通りに正確に動作し、変更できません。 + +Nick Szabo は「スマートコントラクト」という用語を作りました。 1994 年、彼は[概念の紹介](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html)を書き、1996 年には[スマートコントラクトの可能性の探求](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html)を執筆しました。 + +Nick Szabo は、自動的で暗号的に安全なプロセスに基づいて構築されたデジタル市場を描きました。 トランザクションやビジネス機能が、仲介者なしに、管理者による承認を必要とせずに行われる世界です。 イーサリアムのスマートコントラクトは、このビジョンを実現したものです。 + +## スマートコントラクトとは {#what-are-contracts} + +*「弁護士ではないのに、 なぜコントラクト(契約)に関心を持たないといけないのか」*と思われている人もいるかもしれません。 ほとんどの人は、不必要に長い契約条件、または退屈な法的文書を念頭に置きます。 + +コントラクトとは、単なる合意です。 つまり、あらゆる形式の合意は、契約条件内に包含することができます。 多くの場合、口頭での合意や書面によるコントラクトは受け入れられますが、欠陥が含まれることがあります。 + +## 信頼とコントラクト {#trust-and-contracts} + +従来の契約における最大の問題の 1 つは、信頼できる個人が契約事項に遂行する必要があることです。 + +次に例を示します。 + +アリスとボブは自転車レースをしていると仮定します。 アリスは自分がレースに勝つと、10 ドル賭けるとします。 ボブは自分が勝者になると確信しており、賭けに同意します。 結果、アリスはボブよりも先にレースを終え、勝ちました。 しかし、ボブはアリスが不正をしたと主張して、賭けの支払いを拒否します。 + +この例は、スマートでない合意について問題を示しています。 たとえレースに勝って、契約の条件が満たされたとしても、他者が契約を履行すると(つまり、掛け金を支払う)信頼しなければなりません。 + +## スマートコントラクト {#smart-contracts} + +スマートコントラクトは、契約条件が満たされたときに自動的に実行するコンピュータコードに契約をデジタル化します。 + +## デジタル自動販売機 {#vending-machine} + +スマートコントラクトの単純なたとえとしては、特定の入力をすると所定の出力がされる自動販売機があり、これはスマートコントラクトと機能が多少似ています。 + +- 製品を選択 +- 自動販売機は製品の購入に必要な金額を表示 +- 正しい金額を挿入 +- 自動販売機は正しい金額を挿入されたことを確認 +- 自動販売機は選択された製品を出し販売 + +自動販売機は、すべての要件が満たされた後にのみ、希望の製品を出します。 商品を選択しない、または十分なお金を挿入しない場合は、自動販売機は商品を出しません。 + +## 自動実行 {#automation} + +通常の契約と比較し、スマートコントラクトの顕著なメリットの 1 つに、契約条件が満たされたときに結果が自動的に実行されることです。 誰かが実行するのを待つ必要はありません。 言い換えると、スマートコントラクトでは誰かを信頼する必要性はありません。 + +例えば、子どものためにエスクローで資金を保持し、所定の日付以降に子どもが資金を引き出すことができるスマートコントラクトを作成したとします。 所定の日付までに資金を引き出そうとしても、スマートコントラクトは実行されません。 または、車のディーラーの支払い完了時に、車両の所有権証明書のデジタル版を自動的に得るコントラクトを作ることもできます。 + +## 予測可能な結果 {#predictability} + +従来の契約における問題の最大のポイントの 1 つは、人的要因です。 例えば、2 人の裁判官は、従来の契約を異なって解釈する場合があります。 解釈の違いは、異なる判決を下し、結果が異なってしまう場合があります。 スマートコントラクトは、解釈が異なるという可能性を排除します。 スマートコントラクトは、コントラクトのコードに記載されている条件に基づいて正確に実行されるため、解釈の違いは生じません。 これは、同じ状況下ではスマートコントラクトは同じ結果を生み出すことを意味します。 + +## パブリックレコード {#public-record} + +スマートコントラクトは、監査や追跡にも役立ちます。 イーサリアムのスマートコントラクトは、パブリックブロックチェーン上にあるため、誰でも即座に資産移管やその他の関連情報を追跡することができます。 例えば、誰かがあなたのアドレスに送金したことを確認できます。 + +## プライバシーの保護 {#privacy-protection} + +スマートコントラクトはプライバシーも保護します。 イーサリアムは匿名のネットワークで、トランザクションは身元ではなく、一意の暗号アドレスが公開して紐づけられ、第三者からプライバシーを守ることができます。 + +## 契約条件の可視性 {#visible-terms} + +最後に、契約と同様、署名(またはスマートコントラクトとやり取り)する前に、スマートコントラクトの内容を確認できます。 さらに良いことに、契約条件の公の透明性により、誰でも契約条件を精査することができます。 + +## スマートコントラクトのユースケース {#use-cases} + +スマートコントラクトはブロックチェーン上にあるコンピュータプログラムです。 自動的に実行されます。 トランザクションを追跡し、それらの動きを予測し、匿名で使用することもできます。 素晴らしいですよね。 しかし、スマートコントラクトを何に使えるのでしょうか。 スマートコントラクトは、基本的に他のコンピュータプログラムと同じように何でも実行することができます。 + +計算を実行し、通貨を作成し、データを保存し、NFT をミントし、通信を送信し、画像を生成することさえできます。 以下に、よく使われているスマートコントラクトの実例を示します。 + +- [ステーブルコイン](/stablecoins/) +- [唯一無二なデジタルアセットの作成と配布](/nft/) +- [自動で開かれた為替](/get-eth/#dex) +- [分散型ゲーム](/dapps/?category=gaming) +- [自動的に支払いを行う保険契約](https://etherisc.com/) +- [カスタマイズされ、相互運用可能な通貨を作成するための標準](/developers/docs/standards/tokens/) + +## 映像で学びたい人向け {#visual-learner} + +Finematics によるスマートコントラクトの説明: + + + +## 参考文献 {#further-reading} + +- [スマートコントラクトが世界をどのように変えるか](https://www.youtube.com/watch?v=pA6CGuXEKtQ) +- [スマートコントラクト: 弁護士を不要にするブロックチェーンテクノロジー](https://blockgeeks.com/guides/smart-contracts/) +- [デベロッパー向けスマートコントラクト](/developers/docs/smart-contracts/) +- [スマートコントラクトの作成方法を学ぶ](/developers/learning-tools/) +- [イーサリアムをマスター - スマートコントラクトとは](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/ja/social-networks/index.md b/public/content/translations/ja/social-networks/index.md new file mode 100644 index 00000000000..aed1f27ba41 --- /dev/null +++ b/public/content/translations/ja/social-networks/index.md @@ -0,0 +1,121 @@ +--- +title: 分散型ソーシャルネットワーク +description: イーサリアム上の分散型ソーシャルネットワークの概要 +lang: ja +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: /ethereum-learn.png +summaryPoint1: ソーシャル・インタラクションとコンテンツの作成と配信のためのブロックチェーンベースのプラットフォーム +summaryPoint2: 分散型ソーシャル・メディア・ネットワークは、ユーザーのプライバシーを保護し、データセキュリティを強化 +summaryPoint3: トークンと非代替性トークン(NFT)により、コンテンツを収益化する新しい方法の創出 +--- + +ソーシャルネットワークは、私たちの日常的なコミュニケーションにおいて大きな役割を果たしています。 ただし、これらのプラットフォームが集中管理されると、多くの問題が発生します。データ侵害、サーバの停止、 プラットフォーム解除、検閲、プライバシー侵害は、ソーシャルメディアが度々行うことがあり、トレードオフの一部となります。 これらの問題に対抗するため、デベロッパー達は現在イーサリアム上でソーシャルネットワークを構築しています。 分散型ソーシャルネットワークは、従来のソーシャルネットワーキングのプラットフォームが持つ多くの問題を解決し、ユーザーの全般的なエクスペリエンスの向上につながります。 + +## 分散型ソーシャルネットワークとは {#what-are-decentralized-social-networks} + +分散型ソーシャルネットワークは、ブロックチェーンベースのプラットフォームであり、ユーザーは情報を交換し、またコンテンツを公開および配布することができます。 これらのアプリケーションはブロックチェーン上で実行されるため、分散化され、検閲や不当な制御を防ぐことができます。 + +多くの分散型ソーシャルネットワークは、Facebook、LinkedIn、Twitter、Medium などの確立されたソーシャルメディアサービスの代替として存在しています。 しかし、ブロックチェーンを活用したソーシャルネットワークには、従来のプラットフォームよりも秀でた多くの機能があります。 + +### 分散型ソーシャルネットワークの仕組み {#decentralized-social-networks-overview} + +分散型ソーシャルネットワークは、[分散型アプリケーション(Dapp)](/dapps/)の一種です(分散型アプリケーションとは、ブロックチェーン上にデプロイされた[スマートコントラクト](/developers/docs/smart-contracts/)を活用したアプリケーション)。 コントラクトコードは、これらのアプリのバックエンドとして機能し、ビジネスロジックを定義します。 + +従来のソーシャルメディアのプラットフォームは、データベースに依存して、ユーザー情報やプログラムコードなどのデータを保存しています。 しかし、これは単一障害点となり、大きなリスクをもたらします。 例えば、昨年、Facebook のサーバが[何時間もオフライン](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact)となり、プラットフォームが遮断されたことはよく知られています。 + +分散型ソーシャルネットワークは、世界中の数千のノードからなるピアツーピアのネットワーク上に存在します。 一部のノードに障害が発生しても、ネットワークは途切れずに稼働できるため、障害や停電に強いアプリケーションを実現することができます。 + +[The InterPlanetary File System (IPFS) ](https://ipfs.io/)のような分散型ストレージシステムを使用すれば、イーサリアム上に構築されたソーシャルネットワークは、ユーザー情報を搾取や悪意のある用途から保護することができます。 個人情報が広告主に販売されることはありませんし、ハッカーが個人情報を盗み出すこともできません。 + +多くのブロックチェーンベースのソーシャル・プラットフォームは、広告収入がなくても収益化できるネイティブトークンを持っています。 ユーザーはこのトークンを購入することで、特定の機能を利用したり、アプリ内課金を行ったり、お気に入りのコンテンツクリエイターにチップをあげることができます。 + +## 分散型ソーシャルネットワークの利点 {#benefits} + +1. 分散型ソーシャルネットワークは、誰でも利用することができ、検閲耐性を実現します。 つまり、ユーザーアカウントを恣意的に禁止、またはプラットフォームへのユーザーアクセスの遮断や制限をすることはできません。 + +2. 分散型ソーシャルネットワークは、オープンソースの理想に基づいて構築されており、アプリケーションのソースコードは誰もが検閲できるように公開されています。 従来のソーシャル・メディアによくある不透明なアルゴリズムの実装を排除することで、ブロックチェーンベースのソーシャルネットワークは、ユーザーとプラットフォーム作成者の利害を一致させることができます。 + +3. 分散型ソーシャルネットワークには「仲介者 」が存在しません。 コンテンツ制作者は、コンテンツに対する直接的な所有権を持ち、フォロワー、ファン、購入者、その他の関係者と直接関わることができ、両者間にはスマートコントラクト以外のものは存在しません。 + +4. 分散型ソーシャルネットワークは、グローバルなピアツーピアネットワークであるイーサリアムネットワークで動作する分散型アプリ(Dapp)であるため、サーバのダウンタイムや機能停止の影響を受けにくい利点があります。 + +5. 分散型ソーシャル・プラットフォームでは、コンテンツ制作者は、非代替性トークン(NFT)、アプリ内暗号支払いなどを介した、より良い収益化フレームワークを享受することができます。 + +6. 分散型ソーシャルネットワークは、高度なプライバシーと匿名性を提供します。 例えば、名前や電子メールアドレスなどの個人を特定できる情報(PII)を共有せずに、イーサリアム・ネーム・サービス(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 に永久保存され、Writing NFT と呼ばれる収集可能な[非代替性トークン(NFT)](/nft/)としてミントすることができます。 ライターは完全に無料で Writing NFT を作成でき、非代替性トークン(NFT)の収集はイーサリアム L2 上で行われるため、安価で高速、かつ環境に優しいトランザクションができます。 + +### MINDS(マインズ) {#minds} + +[MINDS](https://www.minds.com/)は、最も利用されている分散型ソーシャルネットワークの一つです。 Facebook のような仕組みで、すでに数百万人のユーザーを獲得しています。 + +このプラットフォームのネイティブ ERC-20 トークンである$MINDを使って、ユーザーはアイテムの支払いができます。 また、ユーザーは、人気のあるコンテンツの公開、エコシステムへの貢献、他の人をこのプラットフォームに紹介することで、$MIND トークンを獲得することができます。 + +## イーサリアム上の Web2 ソーシャルネットワーク {#web2-social-networks-and-ethereum} + +[Web3](/web3/)ネイティブのソーシャルプラットフォームだけが、ブロックチェーン技術をソーシャルメディアに取り入れようとしているわけではありません。 また、多くの中央集権的なプラットフォームが、イーサリアムをプラットフォームのインフラに取り入れることを計画しています。 + +### Reddit(レディット) {#reddit} + +Reddit は、ERC-20 トークンである[コミュニティポイント](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users)を使っており、これはユーザーが良質のコンテンツを投稿し、オンラインコミュニティ(subreddit)に貢献することで獲得できます。 このトークンを使って、[subreddit 内での限定特典や特権](https://www.reddit.com/community-points/)を獲得することができます。 Reddit はイーサリアムのトランザクションをスケールアップする[レイヤー 2](/layer-2/)ロールアップである Arbitrum と連携しています。 + +このプログラムはすでに稼働しており、r/CryptoCurrency subreddit が[「Moons」というバージョンのコミュニティポイント](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki)を稼働しています。 公式の説明では、Moons は「subreddits への貢献に対して、投稿者、コメント投稿者、モデレーターに報酬を与える」というものです。 これらのトークンはブロックチェーン上にあるため(ユーザーはトークンをウォレットで受領)、Reddit から独立しており、奪われることはありません。 + +Rinkeby テストネットでのベータフェーズを終え、Reddit コミュニティポイントは、[サイドチェーン](/developers/docs/scaling/sidechains/)と[オプティミスティック・ロールアップ](/developers/docs/scaling/optimistic-rollups/)の特性を兼ね備えたブロックチェーンの[Arbitrum Nova](https://nova.arbitrum.io/)に移行しています。 コミュニティポイントは、様々な特典のために使用するほかに、取引所でフィアットと交換することも可能です。 また、ユーザーが所有するコミュニティポイントの量によって、コミュニティの意思決定に影響を与えられます。 + +### Twitter(ツイッター) {#twitter} + +2021 年 1 月、 [Twitter Blue は非代替性トークン(NFT)の対応を展開](https://mashable.com/article/twitter-blue-nft-profile-picture)し、ユーザーはウォレットを接続し、プロフィール写真に NFT を設定できるようになりました。 本稿執筆時点では、Twitter Blue は将来的に分散型ソーシャルネットワークを構築する[計画を発表](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web)しています。 + +### Instagram(インスタグラム) {#instagram} + +2022 年 5 月、[Instagram はイーサリアムと Polygon の非代替性トークン(NFT)の対応をすると発表](https://about.instagram.com/blog/announcements/instagram-digital-collectibles)しました。 イーサリアムのウォレットを接続することで、Instagram に直接 NFT を投稿することができます。 + +## 分散型ソーシャルネットワークの利用 {#use-decentralized-social-networks} + +- **[Status.im](https://status.im/)** - _Status は、オープンソースのピアツーピアプロトコルを使用し、エンドツーエンドの暗号化により、サードパーティからのメッセージの検閲を保護する、安全なメッセージングアプリ_ +- **[Mirror.xyz](https://mirror.xyz/)** - _Mirror は、ユーザーがアイデアをクラウドファンディングし、コンテンツを収益化し、価値の高いコミュニティを構築するための、イーサリアム上に構築されたユーザー所有の分散型出版プラットフォーム_ +- **[Lens Protocol](https://lens.xyz/)** - _Lens Protocol は、分散型インターネットのデジタルガーデンにおいて、制作者がどこにいても自分のコンテンツの所有権を持てるように支援する、構成可能で分散型のソーシャルグラフ_ +- **[Farcaster](https://farcaster.xyz/)** - _十分に分散化されたソーシャルネットワークで、 E メールのように、多くのクライアントをサポートできるオープンプロトコル_ + +## 参考文献 {#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} + +- [分散型ソーシャルメディアの説明](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ +- [ソーシャルメディアの分散化を目指す DeSo ブロックチェーン](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ +- [分散型ソーシャルメディアの未来 Balaji Srinivasan、Vitalik Buterin、Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ + +### コミュニティ {#communities} + +- [Status Discord サーバ](https://discord.com/invite/3Exux7Y) +- [Mirror Discord サーバ](https://discord.com/invite/txuCHcE8wV) +- [r/CryptoCurrency subreddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/public/content/translations/ja/staking/pools/index.md b/public/content/translations/ja/staking/pools/index.md new file mode 100644 index 00000000000..c623477037c --- /dev/null +++ b/public/content/translations/ja/staking/pools/index.md @@ -0,0 +1,86 @@ +--- +title: ステーキングプール +description: ETHステーキングプールの始め方の概要 +lang: ja +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-pool.png +alt: プールで泳ぐサイのレスリー +sidebarDepth: 2 +summaryPoints: + - 他者と協力してETHをステーキングし、報酬を獲得 + - 難しいことは抜きにし、バリデータの運用をサードパーティに委任 + - 流動性トークンを自分のウォレットで保有 +--- + +## ステーキングプールとは {#what-are-staking-pools} + +ステーキングプールとは、少量の ETH を持つ人達が協力して、バリデータ鍵セットの有効化に必要な 32 ETH を取得する方法です。 プール機能はプロトコル上、ネイティブでサポートされていないため、別途ソリューションを構築され、需要に対応しています。 + +一部のプールはスマートコントラクトを使用して運営されており、資金をコントラクトに預けると、コントラクトは管理者による承認を必要とせず、トラストレスにステークを管理・追跡し、預け入れ資金を表すトークンを発行します。 その他のプールは、スマートコントラクトを使用せず、オフチェーンで仲介されます。 + +## ステーキングプールの利点 {#why-stake-with-a-pool} + +[ステーキング入門](/staking/)で概説したメリットに加えて、 プールへのステーキングには数多くの注目すべき利点があります。 + + + + 少額の持ち合わせしかなくても、 問題ありません。 32 ETHを必要とする単独でもステーキングとは異なり、ほとんどのステーキングプールでは他のステーカー達と協力できるので、実質的にどの額からでもステークすることができます。 + + + プールへのステーキングはトークンスワップと同じくらい簡単です。 ハードウェアのセットアップやノードのメンテナンスを心配する必要もありません。 プールはETHを預け入れると、ノードオペレータがバリデータを実行します。 そして、ノード運用の手数料を差し引いた報酬がコントリビューターに分配されます。 + + + 多くのステーキングプールは、ステーキングしたETHと報酬に対する権利を表すトークンを配布します。 これにより、分散型金融(DeFi)アプリケーションでの担保など、ステーキングしたETHを活用することができます。 + + + + + +## 考慮すべき事項 {#what-to-consider} + +ステーキングプール、または委任ステーキングは、イーサリアムプロトコルではネイティブでサポートされていませんが、32 ETH 未満のステーキングを行う需要を考慮し、ステーキングプールのソリューションの数が増えてきています。 + +各プールと使われるツールやスマートコントラクトは、異なるチームにより構築されているため、それぞれに異なるリスクと利点があります。 + +各ステーキングプールの顕著な長所や短所を示すため、下記の属性指標が使用されています。 参加するプールを選択する際に、これらの属性をどのように定義するかについての参考資料としてこのセクションをご利用ください。 + + + +## ステーキングプールを探す {#explore-staking-pools} + +セットアップにはさまざまなオプションが用意されています。 上記の指標を参考に、下記のツールをご利用ください。 + + +クライアントの多様性に真剣に取り組むサービスを選ぶことが、ネットワークのセキュリティを向上させ、ご自身のリスクを制限する上で、重要であることにご留意ください。 マジョリティを占めるクライアントを制限している証拠があるサービスは、「クライアントの多様性」として表示されます。 + + + + +ここに記載すべきステーキングツールをご存知の場合は [製品掲載ポリシー](/contributing/adding-staking-products/)を確認し、記載すべきかどうかをご確認の上、レビューに提出してください。 + +## よくある質問 {#faq} + + +通常、ステークしたETH額と報酬を表すERC-20の流動性トークンが、ステーカーに対して発行されます。 プールにより、ステーキング報酬の分配方法は多少異なりますが、ここでは共通点について話します。 + + + + +現在、イーサリアムバリデータから資金を引き出すことはできません。このため、現在のところ、流動性トークンを ETH 報酬(コンセンサスレイヤーにロックされている)に、引き換える機能が制限されています。 + +この代替方法として、ERC-20 の流動性トークンを利用するプールを使用すると、オープンマーケットでトークンを取引でき、ステーキングポジションを売却することができます。実際にステーキングコントラクトから ETH を取り除くことなく、効果的に「引き出す」ことができます。 + + + +これらのステーキングプールと、中央集権型取引所の間には多くの類似点があります。 例えば、複数の少額のステーキングをまとめて、バリデータを有効にすることなどです。 + +中央集権型取引所とは異なり、多くのステーキングプールでは、スマートコントラクトおよび/または流動性トークンを利用します。この流動性トークンは、通常は ERC-20 トークンで、他のトークンと同様に、購入・販売できます。 このトークンは自分自身で制御でき、主権とセキュリティを提供しますが、バックグラウンドで動作するバリデータクライアントを直接制御することはできません。 + +これをサポートするノードに関しては、他のものよりも分散化が進んでいるステーキングプールもあります。 ネットワークの健全化と分散化を促進するため、常にパーミッションレスかつ分散化されたノードオペレータを利用するプールサービスを選ぶことが推奨されています。 + + +## 参考文献 {#further-reading} + +- [Rocket Pool でステーキング - ステーキングの概要](https://docs.rocketpool.net/guides/staking/overview.html) - _RocketPool ドキュメント_ +- [Lido でイーサリアムをステーキング](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Lido ヘルプドキュメント_ diff --git a/public/content/translations/ja/staking/saas/index.md b/public/content/translations/ja/staking/saas/index.md new file mode 100644 index 00000000000..68935374432 --- /dev/null +++ b/public/content/translations/ja/staking/saas/index.md @@ -0,0 +1,89 @@ +--- +title: ステーキングサービス +description: ETHステーキングプールの始め方の概要 +lang: ja +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-saas.png +alt: 雲に浮かぶサイのレスリー +sidebarDepth: 2 +summaryPoints: + - サードパーティーのノードオペレータが、バリデータクライアントの運用を実施 + - 32 ETHを保有し、ノードを実行することの技術的な複雑さを回避したい方向けの選択肢 + - 信頼せず、必ず引き出し鍵を必ず保持すること +--- + +## ステーキングサービスとは {#what-is-staking-as-a-service} + +ステーキング・アズ・ア・サービス(SaaS)は、バリデータになるための 32 ETH を預け入れ、ノードの運用については、サードパーティに委任できるステーキングサービスのことです。 このプロセスでは通常、鍵の生成と預け入れを伴う初期セットアップを案内され、署名鍵をオペレータにアップロードします。 これは、通常は月額手数料で、バリデータの運用を代行するサービスです。 + +## サービスを使ってステークする利点 {#why-stake-with-a-service} + +イーサリアムのプロトコルは、ステーキングの委任をネイティブにはサポートしないため、これらのサービスは需要を満たすために作られたものです。 ステーキングする 32 ETH はあるものの、ハードウェアを扱うのが苦手な場合、ステーキング・アズ・ア・サービス(SaaS)を利用すると、難しい部分を委任しながらネイティブブロックの報酬を得ることができます。 + + + + イーサリアムコンセンサスに参加する自身の署名鍵セットを有効化するためのに、32 ETHを預け入れます。 ダッシュボードで進捗状況を監視し、ETH報酬が貯まっていくのを見ます。 + + + ハードウェア仕様、セットアップ、ノードメンテナンス、アップグレードに煩わされる必要はありません。 + 自身の署名情報をアップロードすることで、SaaSプロバイダーに難しい部分をアウトソースすることができ、わずかな手数料でバリデータを代行してもらうことができます。 + + + 多くの場合、ステークした資金の引き出しや送金を可能にする鍵へのアクセス権を手放す必要はありません。 これらは署名鍵とは異なり、別々に保管することで、ステーカーのリスクを制限することができます(ただし、完全に排除することはできません)。 + + + + + +## 考慮すべき事項 {#what-to-consider} + +ETH のステーキングを支援するステーキング・アズ・ア・サービス(SaaS)プロバイダーは増えていますが、それぞれ異なるリスクと利点があります。 + +各 SaaS プロバイダーの顕著な長所や短所を示すため、下記の属性指標が使用されています。 ステーキングに役立つサービスを選ぶ際に、これらの属性をどのように定義しているかの参考として、このセクションをご利用ください。 + + + +## ステーキングサービスプロバイダーを探す {#saas-providers} + +下記は、利用可能なステーキング・アズ・ア・サービス(SaaS)プロバイダーです。 上記の指標を参考に、これらのサービスをご利用ください。 + + +クライアントの多様性をサポートすることが、ネットワークのセキュリティを向上させ、ご自身のリスクを制限する上で、重要であることにご留意ください。 マジョリティを占めるクライアントを制限している証拠があるサービスは、「クライアントの多様性」として表示されます。 + + +### ステーキングサービスプロバイダー + + + +### キージェネレーター + + + +ここに記載すべきステーキング・アズ・ア・サービス(SaaS)プロバイダーをご存知の場合は [製品掲載ポリシー](/contributing/adding-staking-products/)を確認し、記載すべきかどうかをご確認の上、レビューに提出してください。 + +## よくある質問 {#faq} + + + 流れはプロバイダーによって異なりますが、一般的には、必要な署名鍵(32 ETHにつき1つの鍵)を設定し、プロバイダーにアップロードし、プロバイダーが代理で検証を行います。 署名鍵だけでは、あなたの資金を引き出したり、送金したり、使用することはできません。 ただし、コンセンサスのための投票はできるため、適切に行われない場合はオフラインでのペナルティやスラッシングにつながる可能性があります。 + + + + すべてのアカウントは、署名鍵引き出し鍵の両方で構成されています。 バリデータがチェーンの状態を証明し、同期し、ブロックを提案するには、バリデータクライアントが署名鍵に容易にアクセスできる必要があります。 これらは何らかの形でインターネットに接続されていなければならないため、本質的に「ホットキー」とみなされます。 署名鍵は、バリデータが証明できるようにするための必須の鍵であり、送金や引き出しに使用する鍵とは、セキュリティ上の理由から別のものになっています。 + +これらの鍵はすべて、24 語のニーモニックシードフレーズを使って、いつでも再現可能です。 必ずこのシードフレーズを安全にバックアップしておいてください。忘れてしまうと、引き出せる時が来たときに、引き出し鍵を生成することができません。 + + + + SaaSプロバイダーで32 ETHをステークした場合も、そのETHは正式なステーキングデポジットコントラクトに預け入れられます。 そのため、SaaSステーカーもソロスステーカーと同じく、現在のところ資金を引き出すことはできません。 つまり、ETHのステーキングは、現状では、一方通行の入金だけとなります。 ただし、これは上海アップグレードが行われるまでです。 + + + +SaaSプロバイダーを利用することは、ノードの運用を誰かに委ねるということです。 このため、ノードのパフォーマンスが低下するリスクが伴い、このリスクはご自身で制御することはできません。 バリデータがスラッシングされた場合は、自分のバリデータ残高にペナルティが課せられ、バリデータプールから強制的に取り上げられます。 また、これらの資金は、プロトコルレベルで引き出しが可能になるまでロックされます。 + +保証や保険のオプションの詳細については、各 SaaS プロバイダーにお問い合わせください。 バリデータのセットアップをご自身で完全に制御したい場合は、ETH のソロステークの方法についてさらに学びましょう。 + + +## 参考文献 {#further-reading} + +- [ステーキングサービスの評価](https://www.attestant.io/posts/evaluating-staking-services/) - _Jim McDonald 2020_ diff --git a/public/content/translations/ja/staking/solo/index.md b/public/content/translations/ja/staking/solo/index.md new file mode 100644 index 00000000000..572b859913b --- /dev/null +++ b/public/content/translations/ja/staking/solo/index.md @@ -0,0 +1,185 @@ +--- +title: ETHのソロステーキング +description: ETHのソロステーキングする方法の概要 +lang: ja +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-solo.png +alt: コンピュータチップ上にサイのレスリー +sidebarDepth: 2 +summaryPoints: + - バリデータをオンラインで適切に稼働させ続けることで、プロトコルから直接最大限の報酬を獲得 + - 家庭用ハードウェアを稼働させ、イーサリアムネットワークのセキュリティと分散化に個人で貢献 + - 信頼せず、必ず自分の資金の鍵を自己管理すること +--- + +## ソロステーキングとは {#what-is-solo-staking} + +ソロステーキングとは、インターネットに接続された[イーサリアムノードを稼働](/run-a-node/)させ、32 ETH を預け入れ、[バリデータ](#faq)を起動し、ネットワークのコンセンサスに直接参加できるようになることです。 + +イーサリアムのノードは、実行レイヤー(EL)クライアントとコンセンサスレイヤー(CL) クライアントの両方で構成されています。 これらの 2 つのクライアントは、有効な署名鍵とともに、トランザクションとブロックの検証、正しい先頭チェーンの証明、アテステーションの集約、ブロックの提案などを行うソフトウェアです。 + +これらのクライアントを動かすために必要なハードウェアの運用は、ソロステーカーが責任をもって行います。 自宅で専用のマシンを使用することを強くお勧めします。これは、ネットワークの健全性にとって非常に有益なことです。 + +ソロステーカーは、オンラインでバリデータを適切に稼働させ続けることで、プロトコルから直接報酬を受け取ることができます。 + +## ソロステーキングの利点 {#why-stake-solo} + +ソロステーキングはより多くの責任を伴いますが、資金とステーキングのセットアップをご自身で最大限に制御することができます。 + + + + バリデータがオンラインの際は、ETH建ての報酬が中間マージンを取られずにプロトコルから直接獲得できます。 + + + 必ず、鍵は自分で管理してください。 リスクを最小限に抑え、ネットワークの健全性とセキュリティに最も貢献できるクライアントとハードウェアの組み合わせを選択してください。 サードパーティのステーキングサービスでは、これらの決定を委任できますが、常にサードパーティが最も安全な選択をするとは限りません。 + + + ソロステーキングは、ステーキング方法の中で、最も影響力があります。 自分自身のハードウェアでバリデータを実行することで、イーサリアムのプロトコルの堅牢性、分散性、安全性を強化することができます。 + + + +## ソロステーキングを行う前に考慮すべきこと {#considerations-before-staking-solo} + +ソロステーキングが誰にでも利用しやすく、リスクが無ければ良いのですが、現実はそうではありません。 ETH のソロステーキングを選択する前に、真剣かつ実践的に考慮すべき点がいくつかあります。 + + + + ノードを運用する際、選択したソフトウェアの使い方を把握するのに時間をかける必要があります。 そのためには、関連するドキュメントを読み、開発チームのコミュニケーションチャネルにも注意を向ける必要があります。 + 実行するソフトウェアやプルーフ・オブ・ステークがどのように機能するかを理解すればするほど、ステイカーのリスクは減り、ノードオペレータとして稼働する上で発生した問題を修正するのも容易になります。 + + + 新しいツールの登場により、徐々に容易にはなってきていますが、ノードのセットアップには、コンピュータの操作にある程度慣れている必要があります。 コマンドラインインターフェイスを理解していると便利ですが、厳密にはもう必要ありません。 + また、ハードウェアの基本的なセットアップと、最低限の推奨スペックをある程度理解する必要があります。 + + + 秘密鍵がイーサリアムアドレスを保護するのと同じように、バリデータ専用の鍵を生成する必要があります。 シードフレーズや秘密鍵を安全に保管する方法を理解する必要があります。 +

イーサリアムのセキュリティと詐欺対策

+
+ + 現在のところ、ステークしたETHやバリデータ残高から、まだ報酬を引き出すことはできません。 引き出しは、次の上海アップグレードで計画されています。 ETHは少なくとも1~2年間はロックされることを想定しておく必要があります。 上海のアップグレード後は、ご希望に応じて、ステーキングの一部または全部を自由に引き出すことができます。 + + + ハードウェアが故障したり、ネットワーク接続に失敗したり、クライアントソフトウェアのアップグレードが必要になったりすることもあります。 ノードのメンテナンスは避けられないものであり、時にはあなたの注意を必要とすることがあります。 ネットワークのアップグレードや、クライアントの重要なアップグレードが予定されている場合は、常に注意しておく必要があります。 + + + 報酬は、バリデータがオンラインで適切に認証している時間に比例して支払われます。 ダウンタイムにより、同時にオフラインになった他のバリデータの数に比例したペナルティを負いますが、スラッシングは発生しません。 また、アテステーションが間に合わないと報酬が減少するため、帯域幅も重要です。 要件は様々ですが、最低でも上下10 Mb/sを推奨します。 + + + オフラインであることによる非稼働のペナルティとは異なり、スラッシングは悪質な不正にのみ適用される、より深刻なペナルティです。 鍵が読み込まれたマイノリティのクライアントを1台のマシンだけで運用する場合、スラッシングのリスクを最小限に抑えることができます。 とはいえ、すべてのステイカーはスラッシングのリスクを認識しておいてください。 + +

スラッシングとバリデータのライフサイクルの詳細

+
+
+ + + +## 仕組み {#how-it-works} + + + +望まれるのであれば、バリデータを辞めると、オンラインである必要がなくなり、それ以降の報酬も停止します。 ただし、上海アップグレードまでは、資金の*引き出し*ができませんので、ご注意ください。 + +上海アップグレード後は、ご希望であれば、報酬だけでなく、ステーキングも引き出すことができるようになります。 + +## ステーキングランチパッドを開始する {#get-started-on-the-staking-launchpad} + +ステーキングランチパッドは、ステーキングを始めるのに便利なオープンソースアプリケーションです。 クライアントの選択、鍵の生成、ステーキングデポジットのコントラクトへの ETH の預け入れを案内してくれるアプリケーションです。 バリデータを安全にセットアップするためのチェックリストが提供されています。 + + + +## ノードとクライアントのセットアップツールで考慮すべきこと {#node-tool-considerations} + +ETH のソロステーキングを支援するツールやサービスは増えていますが、それぞれに異なるリスクと利点があります。 + +各ステーキングツールの顕著な長所や短所を示すため、下記の属性指標が使用されています。 ステーキングに役立つサービスを選ぶ際に、これらの属性をどのように定義しているかの参考として、このセクションをご利用ください。 + + + +## ノードとクライアントのセットアップツールの検討 {#node-and-client-tools} + +セットアップに役立つ様々なオプションが用意されています。 上記の指標を参考に、ツールを選択してください。 + + +マイノリティのクライアントを選択することが、ネットワークのセキュリティを向上させ、ご自身のリスクを制限する上で、重要であることにご留意ください。 少数派のクライアントを設定できるツールは、「マルチクライアント」 と表記されています。 + + +### ノードツール + + + +### キージェネレーター + +これらのツールは、[ステーキングデポジット CLI](https://github.com/ethereum/staking-deposit-cli/) の代替として、鍵の生成に使用できます。 + + + +ここに記載すべきステーキングツールをご存知の場合は [製品掲載ポリシー](/contributing/adding-staking-products/)を確認し、記載すべきかどうかをご確認の上、レビューに提出してください。 + +## ソロステーキングガイドを探索 {#staking-guides} + + + +## よくある質問 {#faq} + +これらは、ステーキングについての最も一般的な質問のいくつかで、知っておく価値があるものです。 + + + +バリデータとは、イーサリアム上で稼働し、イーサリアムプロトコルのコンセンサスに参加する仮想エンティティです。 バリデータは、残高、公開鍵、およびその他のプロパティで表されます。 バリデータクライアントは、バリデータに代わって機能するソフトウェアで、バリデータの秘密鍵を保持し使用します。 1 つのバリデータクライアントが複数の鍵ペアを保持し、複数のバリデータを制御することができます。 + + + + +バリデータに関連付けられたそれぞれの鍵ペアを、バリデータとして有効化するには、ちょうど32 ETHを必要とします。 バリデータにつき、有効残高が32 ETHに制限されているため、1つの鍵セットに対して、32 ETH超の預け入れがあった場合でも、報酬が高くなることはありません。 つまり、ステーキングは32 ETH単位で行われ、それぞれに鍵と残高が設定されています。 + +1 つのバリデータに、32 ETH を超える ETH を預け入れないでください。 報酬が増えることはなく、予定されている上海アップデートまで資金がロックされてしまいます。 + +ソロステーキングが難しい場合は、ステーキング・アズ・ア・サービス(SaaS)プロバイダーの利用をご検討ください。また、32 ETH 未満でステーキングを行う場合は、ステーキングプールをチェックしてみてください。 + + + +ネットワークが正しくファイナライズされているときにオフラインになっても、スラッシングは起こりません。 あるエポック(各6.4分間)の間、バリデータがオフラインで証明できない場合、わずかな非稼働によるペナルティが発生しますが、これはスラッシングとは異なるものです。 このペナルティは、バリデータがオンラインで証明できた場合に得られる報酬よりも若干少ない額になっており、ペナルティによる損失は再びオンラインに戻ると、ほぼ同等の時間をかけて取り戻すことができます。 + +注:非稼働によるペナルティは、同時にオフラインになったバリデータの数に比例します。 ネットワークの大部分が一度にすべてオフラインになった場合、各バリデータのペナルティは、単一のバリデータがオフラインになった場合よりも高額になります。 + +極端な場合、3 分の 1 超のバリデータがオフラインになり、ネットワークのファイナライズが停止してしまうと、クアドラティック非稼働消失(quadratic inactivity leak)と呼ばれる、オフラインのバリデータアカウントから ETH が指数関数的に消失する結果に見舞われることになります。 これにより、非稼働状態にあるバリデータの ETH 残高が 16 ETH に達するまで燃焼した時、バリデータのプールから自動的に排出され、最終的にネットワークを自己回復させることができます。 残りのオンライン状態のバリデータは、最終的にネットワークの 3 分の 2 以上を構成し、再びチェーンをファイナライズするために必要なスーパーマジョリティを満たすことになります。 + + + +要するに、完全には保証することはできませんが、誠実に振る舞い、少数派のクライアントを実行し、署名鍵を一度に1台のマシンにしか格納しないようにすれば、スラッシングされるリスクはほぼゼロになります。 + +バリデータがスラッシングされ、ネットワークから追放されるような具体的な原因は、ほんの数種類しかありません。 本稿執筆時点では、2 台のマシンに署名鍵が格納され、冗長化されたハードウェアでセットアップされた場合にのみ、スラッシングが発生しています。 この場合、誤って自分の鍵から二重投票してしまうことがあり、これはスラッシングの対象となります。 + +スーパーマジョリティのクライアント(ネットワークの 3 分の 2 以上で使用されているクライアント)を実行すると、このクライアントにチェーンフォークを引き起こすバグがあった場合、スラッシングの可能性があるというリスクも伴います。 その結果、誤ったフォークがファイナライズされてしまうことがあります。 意図したチェーンへと修正するには、サラウンド投票 (surround vote)を提出し、ファイナライズさえたブロックを元に戻す必要があります。 また、これはスラッシングの対象となる違反で、マイノリティのクライアントを実行するだけでこのリスクを回避することができます。 + +マイノリティのクライアントにおける同じようなバグでは、決してファイナライズされません。そのため、サラウンド投票(surrond vote)に至ることはなく、非稼働のペナルティは課されますが、スラッシングされることはありません。 + +

マイノリティのクライアントを実行する重要性についてもっと詳しく

+

スラッシング防止についてもっと知る

+
+ + +各クライアントは、様々なプログラミング言語を用いて異なるチームにより開発されているため、パフォーマンスやユーザーインターフェースの観点で多少異なる場合があります。 とはいえ、どのクライアントが「ベスト」とは言い切れません。 リリースされているクライアントは、すべてブロックチェーンと同期し、相互作用するという同じコア機能を実行します。 + +すべてのリリースされているクライアントは同じ基本機能を提供するので、マイノリティのクライアント、つまりネットワーク上の大多数のバリデータで現在使用されていないクライアントを選ぶことが、実際のところ非常に重要です。 これは直感に反するように聞こえるかもしれませんが、マジョリティまたはスーパーマジョリティのクライアントを実行すると、そのクライアントにバグが発生した場合にスラッシングの危険性が高まります。 マイノリティのクライアントを稼働することで、こうしたリスクを大幅に軽減することができます。 + +クライアントの多様性が重要な理由についてもっと知る + + + +仮想プライベートサーバー (VPS)は自宅のハードウェアの代わりとして使用できますが、バリデータクライアントの物理的なアクセスや場所は重要です。 アマゾンウェブサービスやデジタルオーシャンなどの中央集権型のクラウドソリューションでは、ネットワークの中央集権化という犠牲のもとで、ハードウェアの入手や運用が不要となり、利便性を提供しています。 + +単一の中央集権型クラウドストレージソリューション上で動作するバリデータクライアントが多ければ多いほど、これらを使用しているユーザーにとって危険になります。 攻撃、規制要求、あるいは単なる停電/インターネットの停止にかかわらず、これらのプロバイダーがオフラインになるような障害があれば、このサーバに依存しているすべてのバリデータクライアントが同時にオフラインになることになるためです。 + +オフラインのペナルティは、同時にオフラインになった他のバリデータクライアントの数に比例します。 VPS を使用すると、オフラインのペナルティがより厳しくなり、停止が大規模になった場合にクアドラティックリークやスラッシングのリスクが大幅に高まります。 ご自身のリスク、およびネットワークへのリスクを最小限に抑えるため、ご自身でハードウェアを入手し、運用されることを強くお勧めします。 + + +## 参考文献 {#further-reading} + +- [イーサリアムのクライアント多様性問題](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ +- [クライアントの多様性の支援](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ +- [イーサリアムのコンセンサスレイヤーにおけるクライアントの多様性](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ +- [イーサリアムバリデータ用のハードウェアの購入方法](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ +- [イーサリアム 2.0 テストネットに参加するステップ・バイ・ステップ手順](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _Butta_ +- [Eth2 スラッシング防止のためのヒント](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raul Jordan 2020_ diff --git a/src/content/translations/ja/web3/index.md b/public/content/translations/ja/web3/index.md similarity index 100% rename from src/content/translations/ja/web3/index.md rename to public/content/translations/ja/web3/index.md diff --git a/src/content/translations/ja/whitepaper/index.md b/public/content/translations/ja/whitepaper/index.md similarity index 100% rename from src/content/translations/ja/whitepaper/index.md rename to public/content/translations/ja/whitepaper/index.md diff --git a/src/content/translations/ja/zero-knowledge-proofs/index.md b/public/content/translations/ja/zero-knowledge-proofs/index.md similarity index 100% rename from src/content/translations/ja/zero-knowledge-proofs/index.md rename to public/content/translations/ja/zero-knowledge-proofs/index.md diff --git a/public/content/translations/km/nft/index.md b/public/content/translations/km/nft/index.md new file mode 100644 index 00000000000..44f13a3508a --- /dev/null +++ b/public/content/translations/km/nft/index.md @@ -0,0 +1,94 @@ +--- +title: ថូខិនដែលមិនអាចផ្លាស់ប្តូរបាន (NFTs) +description: ទិដ្ឋភាពទូទៅនៃ NFTs នៅលើ Ethereum +lang: km +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: និមិត្តសញ្ញា Eth ត្រូវបានបង្ហាញតាមរយៈ hologram ។ +summaryPoint1: មធ្យោបាយដើម្បីតំណាងឱ្យអ្វីដែលប្លែកខុសគេជាទ្រព្យសកម្មដែលមានមូលដ្ឋានលើ Ethereum +summaryPoint2: NFTs នឹងផ្តល់អំណាចកាន់តែច្រើនដល់អ្នកបង្កើតមាតិកាជាងពេលមុនៗ +summaryPoint3: ដំណើរការដោយកិច្ចសន្យាឆ្លាតវៃនៅលើប្លុកឆេន Ethereum +--- + +## What are NFTs? {#what-are-nfts} + +NFT គឺជាថូខិនដែលមានលក្ខណៈខុសគ្នារៀងៗខ្លួន។ NFT នីមួយៗមានលក្ខណៈខុសៗគ្នា (មិនអាចផ្លាស់ប្តូរបាន) អាចថាកម្រក៏បាន។ វាខុសពីថូខិនដូចជា ERC-20s ដែលរាល់ថូខិននៅក្នុងសំណុំ មានលក្ខណៈសម្បត្តិដូចគ្នាបេះបិទ ('អាចផ្លាស់ប្តូរបាន')។ អ្នក​មិនដែល​ខ្វល់​ថា​លុយ​ដុល្លារមួយណា​ដែល​​នៅ​ក្នុង​កាបូប​របស់​អ្នក​ទេ ព្រោះ​វា​មានលក្ខណៈដូចគ្នា​ និង​តម្លៃ​ដូចគ្នា។ ផ្ទុយទៅវិញ អ្នក*ខ្វល់ខ្វាយ* អំពី NFT មួយណាដែលជារបស់អ្នក ពីព្រោះពួកវាទាំងអស់មានលក្ខណៈខុសៗគ្នាដែលអាចបែងចែកពីគ្នាបាន (មិនអាចផ្លាស់ប្តូរគ្នាបាន)។ + +ភាពប្លែកពីគេនៃ NFT នីមួយៗអនុញ្ញាតឱ្យមានការធ្វើថូខិនសម្រាប់របស់មួយចំនួន ដូចជាស្នាដៃសិល្បៈ វត្ថុប្រមូល ឬសូម្បីតែអចលនទ្រព្យ ដែល NFT តែមួយគត់ដែលតំណាងឱ្យវត្ថុនោះក្នុងពិភពពិត ឬឌីជីថល។ ភាពជាម្ចាស់នៃទ្រព្យសកម្មត្រូវបានធានាដោយប្លុកឆេន Ethereum - គ្មាននរណាម្នាក់អាចកែប្រែកំណត់ត្រានៃភាពជាម្ចាស់ ឬចម្លង NFT ថ្មីមួយទៀតបានទេ។ + + + +## អ៊ីនធឺណិតនៃទ្រព្យសកម្ម {#internet-of-assets} + +NFT និង Ethereum ដោះស្រាយបញ្ហាមួយចំនួនដែលមាននៅលើអ៊ីនធឺណិតសព្វថ្ងៃនេះ។ នៅពេលដែលអ្វីៗបំលែងទៅជាឌីជីថលកាន់តែច្រើន វាមានតម្រូវការក្នុងការចម្លងលក្ខណៈនៃវត្ថុនៅពិភពខាងក្រៅ ដូចជាភាពកម្រ ភាពប្លែក និងភស្តុតាងនៃភាពជាម្ចាស់។ តាមរបៀបដែលមិនគ្រប់គ្រងដោយស្ថាប័នកណ្តាលណាមួយ។ ជាឧទាហរណ៍ ជាមួយនឹង NFT អ្នកអាចក្លាយជាម្ចាស់តន្ត្រីចំរៀង mp3 មួយបទ ដែលមិនសម្រាប់តែកម្មវិធីតន្ត្រីរបស់ក្រុមហ៊ុនណាមួយទេ ឬក៏អ្នកអាចក្លាយជាម្ចាស់គណនីប្រព័ន្ធផ្សព្វផ្សាយសង្គមមួយ ដែលអ្នកអាចលក់ ឬប្តូរជាមួយអ្នកផ្សេងទៀតបាន ហើយអ្នកផ្តល់វេទិកានោះមិនអាចយកពីអ្នកតាមអំពើចិត្តបានទេ ។ + +នេះជារបៀបដែលអ៊ិនធឺណិតនៃ NFT ដំណើរការ បើប្រៀបធៀបទៅនឹងអ៊ីនធឺណិតដែលយើងប្រើសព្វថ្ងៃនេះ... + +### ការប្រៀបធៀប {#nft-comparison} + +| អ៊ីនធឺណិត NFT | អ៊ីនធឺណិតសព្វថ្ងៃ | +| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| អ្នកមានទ្រព្យសម្បត្តិរបស់អ្នក! មានតែអ្នកទេដែលអាចលក់ ឬប្តូរវាបាន។ | អ្នកជួលទ្រព្យសម្បត្តិពីស្ថាប័នមួយចំនួន។ | +| NFTs មានលក្ខណៈឌីជីថលដែលមានតែមួយគត់ ហើយគ្មាន NFTs ពីរដែលដូចគ្នានោះទេ។ | ជារឿយៗ យើងមិនអាចបែងចែកថា មួយណាជាច្បាប់ដើម មួយណាជាច្បាប់ចម្លងបានទេ។ | +| ភាពជាម្ចាស់នៃ NFT ត្រូវបានរក្សាទុកនៅលើប្លុកឆេន ដែលគ្រប់គ្នាអាចផ្ទៀងផ្ទាត់បាន។ | កំណត់ត្រាភាពជាម្ចាស់នៃវត្ថុឌីជីថលត្រូវបានរក្សាទុកនៅលើម៉ាស៊ីនមេដែលគ្រប់គ្រងដោយស្ថាប័ន – អ្នកត្រូវស្នើពួកគេដើម្បីបានវា។ | +| NFT គឺជាកិច្ចសន្យាឆ្លាតវៃនៅលើ Ethereum។ មានន័យថាពួកវាអាចប្រើជាមួយកិច្ចសន្យាឆ្លាតវៃ និងកម្មវិធីផ្សេងទៀតនៅលើ Ethereum បានយ៉ាងងាយស្រួល! | ជាធម្មតា ក្រុមហ៊ុនដែលមានវត្ថុឌីជីថលទាំងអស់នោះត្រូវការហេដ្ឋារចនាសម្ព័ន្ធ "សួនមានជញ្ជាំង" ផ្ទាល់ខ្លួនរបស់ពួកគេ។ | +| អ្នកបង្កើតមាតិកា អាចលក់ការងាររបស់ពួកគេនៅគ្រប់ទីកន្លែង និងអាចចូលទៅកាន់ទីផ្សារសកលបាន។ | អ្នកបង្កើតមាតិកាពឹងផ្អែកលើហេដ្ឋារចនាសម្ព័ន្ធ និងការចែកចាយនៃវេទិកាដែលពួកគេប្រើប្រាស់។ ទាំងនេះច្រើនតែស្ថិតនៅក្រោមលក្ខខណ្ឌនៃការប្រើប្រាស់ និងការរឹតបន្តឹងភូមិសាស្ត្រ។ | +| អ្នកបង្កើត NFT អាចរក្សាកម្មសិទ្ធិលើការងាររបស់ពួកគេ និងថ្លៃអាជ្ញាបណ្ណដោយផ្ទាល់ទៅក្នុងកិច្ចសន្យាឆ្លាតវៃ NFT នោះ។ | វេទិកាដូចជាសេវាកម្មចាក់តន្ត្រី ទទួលបានប្រាក់ចំណេញពីការលក់មួយភាគធំ។ | + +## តើ NFTs ដំណើរការយ៉ាងដូចម្តេច? {#how-nfts-work} + +ដូចថូខិនផ្សេងទៀតដែលបង្កើតនៅលើ Ethereum ដែរ NFT ត្រូវបានបង្កើតដោយកិច្ចសន្យាឆ្លាតវៃ។ កិច្ចសន្យាឆ្លាតវៃអនុលោមតាមស្តង់ដារ NFT ណាមួយក្នុងចំណោមស្តង់ដារជាច្រើន (ជាទូទៅ ERC-721 ឬ ERC-1155) ដែលកំណត់ថាកិច្ចសន្យានោះមានមុខងារអ្វីខ្លះ។ កិច្ចសន្យាអាចបង្កើត NFT ('mint') ហើយប្រគល់វាទៅម្ចាស់ណាម្នាក់។ ភាពជាម្ចាស់ត្រូវបានកំណត់នៅក្នុងកិច្ចសន្យានោះ ដោយភ្ជាប់ NFT នោះទៅកាន់អាសយដ្ឋានណាមួយ។ NFT មានលេខសម្គាល់ និងទិន្នន័យមេតាដែលភ្ជាប់ជាមួយវា ដែលធ្វើឱ្យវាមានលក្ខណៈខុសពី NFT ដទៃទៀត។ + +នៅពេលដែលមាននរណាម្នាក់បង្កើត (mints) NFT តាមពិតទៅ ពួកគេគ្រាន់តែដំណើរការមុខងារនៅក្នុងកិច្ចសន្យាឆ្លាតវៃដែលភ្ជាប់ NFT មួយនោះទៅកាន់អាសយដ្ឋានរបស់ពួកគេ។ ព័ត៌មាននេះត្រូវបានរក្សាទុកនៅក្នុងកន្លែងផ្ទុករបស់កិច្ចសន្យាឆ្លាតវៃដែលជាផ្នែកមួយនៃប្លុកឆេន ។ អ្នកបង្កើតអាចសរសេរតក្កវិជ្ជាបន្ថែមទៀតទៅក្នុងកិច្ចសន្យានោះ ឧទាហរណ៍កំណត់ចំនួនផ្គត់ផ្គង់សរុប ឬកំណត់ថ្លៃអាជ្ញាបណ្ណដែលត្រូវបង់ទៅអ្នកបង្កើតរាល់ពេលដែលថូខិនត្រូវបានផ្ទេរ។ + +## តើ NFTs ប្រើសម្រាប់អ្វី? {#nft-use-cases} + +NFT ត្រូវបានប្រើក្នុងករណីជាច្រើន រួមមាន៖ + +- បង្ហាញថាអ្នកបានចូលរួមក្នុងព្រឹត្តិការណ៍មួយ +- បញ្ជាក់ថាអ្នកបានបញ្ចប់វគ្គសិក្សា +- របស់របរប្រើប្រាស់នៅក្នុងហ្គេម +- ស្នាដៃសិល្បៈឌីជីថល +- ការធ្វើថូខិនតំណាងទ្រព្យសម្បត្តិពិភពពិត +- បញ្ជាក់អត្តសញ្ញាណអនឡាញរបស់អ្នក +- ចូលប្រើប្រាស់ទៅកាន់មាតិកា +- សំបុត្រ +- ឈ្មោះដូមែនអ៊ីនធឺណិតវិមជ្ឈការ +- ទ្រព្យបញ្ចាំនៅក្នុង DeFi + +ប្រហែល អ្នកគឺជាសិល្បករដែលចង់ចែករំលែកការងាររបស់អ្នកដោយប្រើ NFT ដោយមិនបាត់បង់ការគ្រប់គ្រង និងលះបង់ប្រាក់ចំណេញរបស់អ្នកទៅកាន់អន្តរការី។ អ្នកអាចបង្កើតកិច្ចសន្យាថ្មី និងបញ្ជាក់ពីចំនួន NFT លក្ខណៈសម្បត្តិរបស់ពួកវា និងតំណភ្ជាប់ទៅកាន់ការងារសិល្បៈជាមួយចំនួន។ ក្នុងនាមជាសិល្បករ អ្នកអាចរៀបចំកម្មវិធីទៅក្នុងកិច្ចសន្យាឆ្លាតវៃនូវថ្លៃអាជ្ញាបណ្ណដែលអ្នកគួរត្រូវបានបង់ (ឧ. ផ្ទេរ 5% នៃតម្លៃលក់ទៅឱ្យម្ចាស់កិច្ចសន្យារាល់ពេលដែល NFT ត្រូវបានផ្ទេរ)។ អ្នកក៏អាចបញ្ជាក់បានថាអ្នកបានបង្កើត NFT ណាមួយ ដោយសារតែអ្នកជាម្ចាស់កាបូបដែលបានធ្វើកិច្ចសន្យានោះ។ អ្នកទិញអាចបញ្ជាក់បានយ៉ាងងាយស្រួលថាពួកគេជាម្ចាស់ NFT ពិតប្រាកដពីក្នុងបញ្ជី NFT របស់អ្នក ពីព្រោះអាសយដ្ឋានកាបូបរបស់ពួកគេត្រូវបានភ្ជាប់ជាមួយថូខិននៅក្នុងកិច្ចសន្យាឆ្លាតវៃរបស់អ្នក។ ពួកគេអាចប្រើវានៅក្នុងប្រព័ន្ធអេកូរបស់ Ethereum ដោយជឿជាក់លើភាពត្រឹមត្រូវរបស់វា។ + +ឬពិចារណាលើសំបុត្រចូលរួមព្រឹត្តិការណ៍កីឡា។ អ្នករៀបចំព្រឹត្តិការណ៍នោះអាចកំណត់ចំនួនសំបុត្រដែលត្រូវលក់ អ្នកបង្កើត NFT អាចសម្រេចថាតើគួរមានសំបុត្រចម្លងប៉ុន្មាន។ ពេលខ្លះ ទាំងអស់នេះគឺជាការចម្លងដូចៗគ្នា ដូចជាសំបុត្រចូលរៀនទូទៅចំនួន 5000 សំបុត្រជាដើម។ ជួនកាលមានមួយចំនួនទៀតត្រូវបានបង្កើតឡើងមានភាពស្រដៀងគ្នាខ្លាំងណាស់ ប៉ុន្តែនីមួយៗមានភាពខុសគ្នាបន្តិចបន្តួច ដូចជាសំបុត្រលេខកៅអី។ អ្នកអាចទិញ និងលក់ពីមួយទៅមួយដោយមិនបង់ប្រាក់ដល់អ្នកចាត់ចែងសំបុត្រ ហើយអ្នកទិញត្រូវបានធានាពីភាពត្រឹមត្រូវនៃសំបុត្រដោយពិនិត្យមើលអាសយដ្ឋានកិច្ចសន្យានោះ។ + +នៅលើ ethereum.org, NFT ត្រូវបានប្រើដើម្បីបង្ហាញថានរណាបានចូលរួមចំណែកក្នុងឃ្លាំង GitHub របស់យើង ឬចូលរួមការជួបជុំ ហើយយើងថែមទាំងមានឈ្មោះដូមែន NFT ផ្ទាល់ខ្លួនរបស់យើងផងដែរ។ ប្រសិនបើអ្នករួមចំណែកដល់គេហទំព័រ ethereum.org អ្នកអាចទាមទារ POAP NFT ។ ការជួបជុំក្នុងសហគមន៍គ្រីបតូមួយចំនួនបានប្រើ POAP ជាសំបុត្រ។ [បន្ថែមទៀតអំពីការរួមចំណែក](/contributing/#poap) + +![ethereum.org POAP](./poap.png) + +គេហទំព័រនេះមានឈ្មោះដូមែនជំនួសដែលដំណើរការដោយ NFT **ethereum.eth** ។ អាសយដ្ឋាន `.org` របស់យើងត្រូវបានគ្រប់គ្រងដោយអ្នកផ្តល់សេវាឈ្មោះដែន (DNS) ចំណែកឯ ethereum`.eth` ត្រូវបានចុះឈ្មោះនៅលើ Ethereum តាមរយៈសេវាឈ្មោះ Ethereum (ENS)។ ហើយវាជាកម្មសិទ្ធិ និងគ្រប់គ្រងដោយពួកយើង។ [សូមពិនិត្យមើលកំណត់ត្រា ENS របស់យើង](https://app.ens.domains/name/ethereum.eth) + +[មើល​បន្ថែមទៀត​អំពី ENS](https://app.ens.domains) + + + +### សុវត្ថិភាព NFT {#nft-security} + +សុវត្ថិភាពរបស់ Ethereum កើតចេញពីភស្តុតាងនៃប្រាក់តម្កល់ (proof-of-stake)។ ប្រព័ន្ធ​នេះ​ត្រូវ​បាន​រចនា​ឡើង​ ដើម្បី​មិនលើកទឹកចិត្ត​ផ្នែក​សេដ្ឋកិច្ចចំពោះសកម្មភាព​បែបព្យាបាទដល់ប្រព័ន្ធ ដោយ​ធ្វើ​ឱ្យ Ethereum អាចការពារពីការរំខានទាំងនោះ។ នេះគឺជាអ្វីដែលធ្វើឱ្យ NFTs អាចធ្វើទៅបាន។ នៅពេលដែលប្លុកដែលផ្ទុកនូវប្រតិបត្តិការ NFT របស់អ្នកត្រូវបានបញ្ចប់សព្ធគ្រប់ អ្នកវាយប្រហារត្រូវចំណាយអស់រាប់លាន ETH ដើម្បីកែប្រែវាបាន។ នរណាម្នាក់ដែលដំណើរការកម្មវិធី Ethereum នឹងអាចរកឃើញការរំខានដោយទុច្ចរិតជាមួយ NFT ភ្លាមៗ ចំណែកឯតួអង្គអាក្រក់នឹងត្រូវទទួលពិន័យផ្នែកសេដ្ឋកិច្ច និងបណ្តេញចេញពីបណ្ដាញ។ + +បញ្ហាសុវត្ថិភាពទាក់ទងនឹង NFTs ច្រើនតែទាក់ទងនឹងការបោកប្រាស់ កំហុសកូដនៃកិច្ចសន្យាឆ្លាតវៃ ឬកំហុសរបស់អ្នកប្រើប្រាស់ (ដូចជាការលាតត្រដាងសោឯកជនដោយអចេតនា) ធ្វើឱ្យការពង្រឹងសុវត្ថិភាពកាបូបឱ្យកាន់តែប្រសើរមានសារៈសំខាន់សម្រាប់ម្ចាស់ NFT ។ + + + បន្ថែមទៀតអំពីសុវត្ថិភាព + + +## ការអានបន្ថែម {#further-reading} + +- [ការណែនាំសម្រាប់អ្នកចាប់ផ្តើមដំបូងចំពោះ NFTs](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie ខែមករា ឆ្នាំ 2020_ +- [កម្មវិធីតាមដាន EtherscanNFT](https://etherscan.io/nft-top-contracts) +- [ស្តង់ដារថូខិន ERC-721](/developers/docs/standards/tokens/erc-721/) +- [ស្តង់ដារថូខិន ERC-1155](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/public/content/translations/kn/dao/index.md b/public/content/translations/kn/dao/index.md new file mode 100644 index 00000000000..c12ab9885cb --- /dev/null +++ b/public/content/translations/kn/dao/index.md @@ -0,0 +1,165 @@ +--- +title: ಡೀಸೆಂಟ್ರಲೈಜ್ಡ್ ಆಟೊನೊಮಸ್ ಆರ್ಗನೈಸೇಶನ್ಸ್ (DAO ಗಳು) +description: ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ DAO ಗಳ ಅವಲೋಕನ +lang: kn +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: ಪ್ರಸ್ತಾವನೆಯ ಮೇಲೆ DAO ಗಳ ಮತದಾನದ ಪ್ರಾತಿನಿಧ್ಯ. +summaryPoint1: ಕೇಂದ್ರೀಕೃತ ನಾಯಕತ್ವವಿಲ್ಲದ ಸದಸ್ಯ-ಮಾಲೀಕತ್ವದ ಸಮುದಾಯಗಳು. +summaryPoint2: ಇಂಟರ್ನೆಟ್ ಅಪರಿಚಿತರೊಂದಿಗೆ ಸಹಕರಿಸಲು ಸುರಕ್ಷಿತ ಮಾರ್ಗ. +summaryPoint3: ನಿರ್ದಿಷ್ಟ ಕಾರಣಕ್ಕಾಗಿ ಹಣವನ್ನು ಬದ್ಧಗೊಳಿಸಲು ಸುರಕ್ಷಿತ ಸ್ಥಳ. +--- + +## DAO ಗಳು ಎಂದರೇನು? {#what-are-daos} + +ಒಂದು DAO ಒಂದು ಸಮೂಹದ ಮಾಲಿಕರಾದ, ಬ್ಲಾಕ್‌ಚೇನ್-ಆಧಾರಿತ ಸಂಗಡಿಗರ ಸಂಸ್ಥೆ ಸಹಯೋಗಿಸುವ ಹಂಚಿಕೊಳ್ಳುವ ಉದ್ದೇಶಕ್ಕೆ ಕೆಲಸ ನಡೆಸುವುದು. + +ನಿಧಿಗಳು ಅಥವಾ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಪರೋಪಕಾರಿ ನಾಯಕನನ್ನು ನಂಬದೆ ಜಗತ್ತಿನಾದ್ಯಂತ ಸಮಾನ ಮನಸ್ಸಿನ ಜನರೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು DAO ಗಳು ನಮಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಡುತ್ತವೆ. ಹುಚ್ಚಾಟಿಕೆಗೆ ಹಣವನ್ನು ಖರ್ಚು ಮಾಡುವ ಯಾವುದೇ CEO ಅಥವಾ ಪುಸ್ತಕಗಳನ್ನು ಕುಶಲತೆಯಿಂದ ನಿರ್ವಹಿಸುವ CFO ಇಲ್ಲ. ಬದಲಾಗಿ, ಕೋಡ್‌ನಲ್ಲಿ ಇದ್ಧ ಬ್ಲಾಕ್‌ಚೈನ್ ಆಧಾರಿತ ನಿಯಮಗಳು ಸಂಸ್ಥೆಯು ಹಾಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಹಣವನ್ನು ಹಾಗೆ ಖರ್ಚುಮಾಡುತ್ತದೆ ಎಂಬುದನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ. + +ಅವರು ಗುಂಪಿನ ಅನುಮೋದನೆಯಿಲ್ಲದೆ ಯಾರೂ ಪ್ರವೇಶಿಸಲು ಅಧಿಕಾರವಿಲ್ಲದಂತಹ ಅಂತರ್ಗತ ಖಜಾನೆಗಳನ್ನು ಹೊಂದಿದ್ದಾರೆ. ನಿರ್ಧಾರಗಳನ್ನು ಪ್ರಸ್ತಾಪಗಳು ಮತ್ತು ಮತದಾನದ ಮೂಲಕ ನಿಯಂತ್ರಿಸಲಾಗುತ್ತದೆ, ಈ ಸಂಸ್ಥೆಯಲ್ಲಿ ಎಲ್ಲರಿಗೂ ಒಂದು ಧ್ವನಿ ಇದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಮತ್ತು ಎಲ್ಲವೂ ಚೈನ್‌ನಲ್ಲಿ ಪಾರದರ್ಶಕವಾಗಿ ನಡೆಯುತ್ತದೆ. + +## ನಮಗೆ DAO ಗಳು ಏಕೆ ಬೇಕು? {#why-dao} + +ಸಂಸ್ಥೆಯೊಂದನ್ನು ಸ್ಥಾಪಿಸುವುದು ಮತ್ತು ಅದು ಹಣ ಮತ್ತು ಹಣಕಾಸು ಒಳಗೊಂಡಿರುತ್ತದೆ ಎಂದರೆ ನೀವು ಕೆಲಸ ಮಾಡುತ್ತಿರುವ ಜನರಲ್ಲಿ ನಂಬಿಕೆಯನ್ನು ಹೊಂದಿರಬೇಕು. ಆದರೆ ನೀವು ಇಂಟರ್ನೆಟ್‍ನಲ್ಲಿ ಮಾತ್ರ ಸಂವಹನ ನಡೆಸಿದ ವ್ಯಕ್ತಿಯನ್ನು ನಂಬುವುದು ಕಷ್ಟ. DAO ಗಳೊಂದಿಗೆ, ನೀವು ಗುಂಪಿನಲ್ಲಿರುವ ಯಾರನ್ನೂ ನಂಬಬೇಕಾಗಿಲ್ಲ, DAO ನ ಕೋಡ್ ಅನ್ನು ಮಾತ್ರ ನಂಬಬೇಕು, ಅದು 100% ಪಾರದರ್ಶಕವಾಗಿದೆ ಮತ್ತು ಯಾರಾದರೂ ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಖಚಿತಪಡಿಸಬಹುದು. + +ಇದು ವಿಶ್ವಮಟ್ಟದ ಸಹಕಾರ ಮತ್ತು ಸಮನ್ವಯಕ್ಕಾಗಿ ಹೊಸ ಅವಕಾಶಗಳನ್ನು ತೆರೆಯುತ್ತದೆ. + +### ಒಂದು ಹೋಲಿಕೆ {#dao-comparison} + +| DAO | ಒಂದು ಸಾಂಪ್ರದಾಯಿಕ ಸಂಸ್ಥೆ | +| ----------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | +| ಸಾಮಾನ್ಯವಾಗಿ ಸಮತಟ್ಟಾದ, ಮತ್ತು ಸಂಪೂರ್ಣವಾಗಿ ಜನಪ್ರಭುತ್ವಗೊಳಿಸಲ್ಪಟ್ಟಿದೆ. | ಸಾಮಾನ್ಯವಾಗಿ ಕ್ರಮಾನುಗತ. | +| ಯಾವುದೇ ಬದಲಾವಣೆಗಳನ್ನು ಜಾರಿಗೆ ತರಲು ಸದಸ್ಯರಿಂದ ಮತದಾನದ ಅಗತ್ಯವಿದೆ. | ರಚನೆಗೆ ಅನುಗುಣವಾಗಿ, ಬದಲಾವಣೆಗಳನ್ನು ಏಕಪಕ್ಷೀಯವಾಗಿ ಬೇಡಿಕೆಯಿಡಬಹುದು ಅಥವಾ ಮತದಾನ ನಡೆಸಬಹುದು. | +| ಮತಗಳನ್ನು ಲೆಕ್ಕ ಹಾಕಲಾಗುತ್ತದೆ ಮತ್ತು ನಂಬಲರ್ಹವಾದ ಮಧ್ಯವರ್ತಿಯಿಲ್ಲದೆ ಫಲಿತಾಂಶವನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅನುಷ್ಠಾನಗೊಳಿಸಲಾಗುತ್ತದೆ. | ಮತದಾನವನ್ನು ಅನುಮತಿಸಿದರೆ, ಮತಗಳನ್ನು ಆಂತರಿಕವಾಗಿ ಎಣಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಮತದಾನದ ಫಲಿತಾಂಶವನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ನಿರ್ವಹಿಸಬೇಕು. | +| ಒದಗಿಸಲಾದ ಸೇವೆಗಳು ಒಂದು ಗುಂಪಿನ ಸದಸ್ಯರಿಂದ (ಉದಾಹರಣೆಗೆ, ಧಾರ್ಮಿಕ ನಿಧಿಯ ವಿತರಣೆ) ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನಿರ್ವಹಿಸಲ್ಪಡುತ್ತವೆ. | ಕುಶಲತೆಗೆ ಒಳಗಾಗುವ ಮಾನವ ನಿರ್ವಹಣೆ ಅಥವಾ ಕೇಂದ್ರೀಯ ನಿಯಂತ್ರಿತ ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಅಗತ್ಯವಿರುತ್ತದೆ. | +| ಎಲ್ಲಾ ಚಟುವಟಿಕೆಗಳು ಪಾರದರ್ಶಕ ಮತ್ತು ಸಂಪೂರ್ಣ ಸಾರ್ವಜನಿಕವಾಗಿದೆ. | ಚಟುವಟಿಕೆಯು ಸಾಮಾನ್ಯವಾಗಿ ಖಾಸಗಿಯಾಗಿರುತ್ತದೆ ಮತ್ತು ಸಾರ್ವಜನಿಕರಿಗೆ ಸೀಮಿತವಾಗಿರುತ್ತದೆ. | + +### DAO ಉದಾಹರಣೆಗಳು {#dao-examples} + +ಇದನ್ನು ಹೆಚ್ಚು ಅರ್ಥಪೂರ್ಣವಾಗಿಸಲು ಸಹಾಯ ಮಾಡಲು, DAO ಅನ್ನು ನೀವು ಹೇಗೆ ಬಳಸಬಹುದು ಎಂಬ ಕೆಲವು ಉದಾಹರಣೆಗಳು ಇಲ್ಲಿವೆ: + +- ಒಂದು ಧರ್ಮಕಾರ್ಯ - ನೀವು ಜಗತ್ತಿನ ಯಾವುದೇ ಮೂಲದಿಂದ ದೇಣಿಗೆಗಳನ್ನು ಸ್ವೀಕರಿಸಬಹುದು ಮತ್ತು ಯಾವ ಕಾರಣಗಳಿಗೆ ನಿಧಿ ನೀಡಬೇಕೆಂದು ಮತ ಚಲಾಯಿಸಬಹುದು. +- ಸಾಮೂಹಿಕ ಮಾಲೀಕತ್ವ - ನೀವು ಭೌತಿಕ ಅಥವಾ ಡಿಜಿಟಲ್ ಸ್ವತ್ತುಗಳನ್ನು ಖರೀದಿಸಬಹುದು ಮತ್ತು ಸದಸ್ಯರು ಅವುಗಳನ್ನು ಹೇಗೆ ಬಳಸುವುದು ಎಂಬುದರ ಕುರಿತು ಮತ ಚಲಾಯಿಸಬಹುದು. +- ವೆಂಚರ್‌ಗಳು ಮತ್ತು ಅನುದಾನಗಳು - ನೀವು ಹೂಡಿಕೆ ಬಂಡವಾಳವನ್ನು ಪೂಲ್ ಮಾಡುವ ವೆಂಚರ್ ನಿಧಿಯನ್ನು ರಚಿಸಬಹುದು ಮತ್ತು ವೆಂಚರ್‌ಗಳಿಗೆ ಬ್ಯಾಕ್‌ಗೆ ಮತ ಹಾಕಬಹುದು. ಮರುಪಾವತಿ ಮಾಡಿದ ಹಣವನ್ನು ನಂತರ DAO-ಸದಸ್ಯರ ನಡುವೆ ಮರುಹಂಚಿಕೆ ಮಾಡಬಹುದು. + +## DAO ಗಳು ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತವೆ? {#how-daos-work} + +DAO ನ ಬೆನ್ನೆಲುಬು ಅದರ ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರ್ಯಾಕ್ಟ್ ಆಗಿದೆ, ಇದು ಸಂಸ್ಥೆಯ ನಿಯಮಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ ಮತ್ತು ಗುಂಪಿನ ಖಜಾನೆಯನ್ನು ಹೊಂದಿದೆ. ಒಮ್ಮೆ ಒಪ್ಪಂದವು ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ಲೈವ್ ಆಗಿದ್ದರೆ, ಮತವನ್ನು ಹೊರತುಪಡಿಸಿ ಯಾರೂ ನಿಯಮಗಳನ್ನು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಕೋಡ್‌ನಲ್ಲಿನ ನಿಯಮಗಳು ಮತ್ತು ತರ್ಕಕ್ಕೆ ಒಳಪಡದ ಏನಾದರೂ ಮಾಡಲು ಯಾರಾದರೂ ಪ್ರಯತ್ನಿಸಿದರೆ, ಅದು ವಿಫಲಗೊಳ್ಳುತ್ತದೆ. ಮತ್ತು ಖಜಾನೆ ಕೂಡ ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರ್ಯಾಕ್ಟ್ ನಿಂದ ನಿರ್ವಹಿಸಲ್ಪಡುವ ಕಾರಣ, ಗುಂಪಿನ ಅನುಮತಿ ಇಲ್ಲದೆ ಯಾರೂ ಹಣವನ್ನು ಖರ್ಚು ಮಾಡಲಾಗುವುದಿಲ್ಲ. ಇದರರ್ಥ DAO ಗಳಿಗೆ ಕೇಂದ್ರ ಪ್ರಾಧಿಕಾರದ ಅಗತ್ಯವಿಲ್ಲ. ಬದಲಾಗಿ, ಗುಂಪು ಒಗ್ಗೂಡಿ ನಿರ್ಧಾರಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಮತಗಳು ಯಶಸ್ವಿಯಾಗುತ್ತಿದ್ದಂತೆ ಪಾವತಿಗಳು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅನುಮತಿಸಲ್ಪಡುತ್ತವೆ. + +ಇದು ಸಾಧ್ಯ ಏಕೆಂದರೆ ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರ್ಯಾಕ್ಟ್ ಗಳು ಒಮ್ಮೆ ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ಲೈವ್‌ಗೆ ಹೋದರೆ ಅವುಗಳು ಟ್ಯಾಂಪರ್-ಪ್ರೂಫ್ ಆಗಿರುತ್ತವೆ. ಜನರು ಗಮನಿಸದೆ ನೀವು ಕೋಡ್ ಅನ್ನು (DAO ಗಳ ನಿಯಮಗಳು) ಸಂಪಾದಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ ಏಕೆಂದರೆ ಎಲ್ಲವೂ ಸಾರ್ವಜನಿಕವಾಗಿದೆ. + + + ಸ್ಮಾರ್ಟ್ ಒಪ್ಪಂದಗಳ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು + + +## ಇಥಿರಿಯಮ್ ಮತ್ತು DAO ಗಳ {#ethereum-and-daos} + +ಇಥಿರಿಯಮ್ ಹಲವಾರು ಕಾರಣಗಳಿಗಾಗಿ DAO ಗಳಿಗೆ ಪರಿಪೂರ್ಣ ಅಡಿಪಾಯವಾಗಿದೆ: + +- ಇಥಿರಿಯಮ್‍ನ ಸ್ವಂತ ಒಮ್ಮತವು ಸಂಸ್ಥೆಗಳು ನೆಟ್‌ವರ್ಕ್‌ಗೆ ನಂಬಿಕೆ ಇಡುವಷ್ಟು ವಿತರಣೆಯಾಗಿದೆ ಮತ್ತು ಸ್ಥಾಪಿತವಾಗಿದೆ. +- ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರ್ಯಾಕ್ಟ್ ಕೋಡ್ ಅನ್ನು ಅದರ ಮಾಲೀಕರಿಂದಲೂ ಒಮ್ಮೆ ಲೈವ್ ಆಗಿ ಮಾರ್ಪಡಿಸಲಾಗುವುದಿಲ್ಲ. ಇದು ಪ್ರೋಗ್ರಾಮ್ ಮಾಡಲಾದ ನಿಯಮಗಳ ಮೂಲಕ DAO ಅನ್ನು ನಡೆಸಲು ಅನುಮತಿಸುತ್ತದೆ. +- ಸ್ಮಾರ್ಟ್ ಒಪ್ಪಂದಗಳು ಹಣವನ್ನು ಕಳುಹಿಸಬಹುದು/ಸ್ವೀಕರಿಸಬಹುದು. ಇಲ್ಲದಿದ್ದರೆ, ಗುಂಪಿನ ಹಣವನ್ನು ನಿರ್ವಹಿಸಲು ನೀವು ನಂಬಲರ್ಹವಾದ ಮಧ್ಯವರ್ತಿಯ ಅಗತ್ಯವಿದೆ. +- ಇಥಿರಿಯಮ್ ಸಮುದಾಯವು ಸ್ಪರ್ಧಾತ್ಮಕಕ್ಕಿಂತ ಹೆಚ್ಚು ಸಹಕಾರಿಯಾಗಿದೆ ಎಂದು ಸಾಬೀತಾಗಿದೆ, ಇದು ಅತ್ಯುತ್ತಮ ಅಭ್ಯಾಸಗಳು ಮತ್ತು ಬೆಂಬಲ ವ್ಯವಸ್ಥೆಗಳು ತ್ವರಿತವಾಗಿ ಹೊರಹೊಮ್ಮಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. + +## DAO ಆಡಳಿತ {#dao-governance} + +DAO ಅನ್ನು ಆಡಳಿತ ಮಾಡುವಾಗ ಮತದಾನ ಮತ್ತು ಪ್ರಸ್ತಾವನೆಗಳು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ ಎಂಬಂತಹ ಹಲವು ಪರಿಗಣನೆಗಳು ಇವೆ. + +### ನಿಯೋಗ {#governance-delegation} + +ಪ್ರತಿನಿಧಿ ಪ್ರಜಾಪ್ರಭುತ್ವದ DAO ಆವೃತ್ತಿಯಂತೆ ನಿಯೋಗವು ಹೋಲುತ್ತದೆ. ಟೋಕನ್ ಹೊಂದಿರುವವರು ತಮ್ಮ ಮತಗಳನ್ನು ತಮ್ಮನ್ನು ನಾಮನಿರ್ದೇಶನ ಮಾಡಿಕೊಂಡ ಮತ್ತು ಪ್ರೋಟೋಕಾಲ್ ಅನ್ನು ನಿರ್ವಹಿಸುವ ಮತ್ತು ತಿಳಿದಿರಲು ಶ್ರಮಿಸುವ ಬಳಕೆದಾರರಿಗೆ ವಹಿಸುತ್ತಾರೆ. + +#### ಒಂದು ಪ್ರಸಿದ್ಧ ಉದಾಹರಣೆ {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) – ENS ಹೊಂದಿರುವವರು ತಮ್ಮ ಮತಗಳನ್ನು ತೊಡಗಿಸಿಕೊಂಡಿರುವ ಸಮುದಾಯದ ಸದಸ್ಯರಿಗೆ ವಹಿಸಬಹುದು ಅವರು ತಮ್ಮನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತಾರೆ. + +### ಸ್ವಯಂಚಾಲಿತ ವಹಿವಾಟು ಆಡಳಿತ {#governance-example} + +ಹಲವು DAO ಗಳಲ್ಲಿ, ಸದಸ್ಯರ ಒಂದು ನಿಗದಿತ ಗುಂಪು ಸಮ್ಮತಿಸಿದರೆ ವಹಿವಾಟುಗಳು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕಾರ್ಯಗತಗೊಳ್ಳುತ್ತವೆ. + +#### ಒಂದು ಪ್ರಸಿದ್ಧ ಉದಾಹರಣೆ {#governance-example} + +[ನೌನ್ಸ್](https://nouns.wtf) – ನೌನ್ಸ್ DAO ನಲ್ಲಿ, ವೋಟ್‌ಗಳ ಕೋರಂ ಅನ್ನು ಪೂರೈಸಿದರೆ ಮತ್ತು ಬಹುಪಾಲು ಮತಗಳು ದೃಢೀಕರಣವನ್ನು ಹೊಂದಿದ್ದರೆ, ಅದನ್ನು ಸಂಸ್ಥಾಪಕರು ವೀಟೋ ಮಾಡದಿರುವವರೆಗೆ ವಹಿವಾಟು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕಾರ್ಯಗತಗೊಳ್ಳುತ್ತದೆ. + +### ಮಲ್ಟಿಸಿಗ್ ಆಡಳಿತ {#governance-example} + +DAO ಗಳು ಸಾವಿರಾರು ಮತದಾನದ ಸದಸ್ಯರನ್ನು ಹೊಂದಿದ್ದರೂ, 5-20 ಸಕ್ರಿಯ ಸಮುದಾಯದ ಸದಸ್ಯರು ಹಂಚಿಕೊಂಡ ವಾಲೆಟ್‌ನಲ್ಲಿ ನಿಧಿಗಳು ವಾಸಿಸಬಹುದು, ಅವರು ವಿಶ್ವಾಸಾರ್ಹ ಮತ್ತು ಸಾಮಾನ್ಯವಾಗಿ ಡಾಕ್ಸ್‌ಡ್ (ಸಮುದಾಯಕ್ಕೆ ತಿಳಿದಿರುವ ಸಾರ್ವಜನಿಕ ಗುರುತುಗಳು). ಮತದ ನಂತರ, ಮಲ್ಟಿಸಿಗ್ ಸಹಿ ಮಾಡುವವರು ಸಮುದಾಯದ ಇಚ್ಛೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತಾರೆ. + +## DAO ನಿಯಮಗಳು {#dao-laws} + +1977 ರಲ್ಲಿ, ವ್ಯೋಮಿಂಗ್ LLC ಅನ್ನು ಕಂಡುಹಿಡಿದರು, ಇದು ಉದ್ಯಮಿಗಳನ್ನು ರಕ್ಷಿಸುತ್ತದೆ ಮತ್ತು ಅವರ ಹೊಣೆಗಾರಿಕೆಯನ್ನು ಮಿತಿಗೊಳಿಸುತ್ತದೆ. ತೀರಾ ಇತ್ತೀಚೆಗೆ, ಅವರು DAO ಗಳಿಗೆ ಕಾನೂನು ಸ್ಥಾನಮಾನವನ್ನು ಸ್ಥಾಪಿಸುವ DAO ಕಾನೂನಿಗೆ ಪ್ರವರ್ತಕರಾಗಿದ್ದಾರೆ. ಪ್ರಸ್ತುತ ವ್ಯೋಮಿಂಗ್, ವರ್ಮೊಂಟ್ ಮತ್ತು ವರ್ಜಿನ್ ದ್ವೀಪಗಳು ಕೆಲವು ರೂಪದಲ್ಲಿ DAO ಕಾನೂನುಗಳನ್ನು ಹೊಂದಿವೆ. + +### ಒಂದು ಪ್ರಸಿದ್ಧ ಉದಾಹರಣೆ {#law-example} + +[CityDAO](https://citydao.io)- ಯೆಲ್ಲೊಸ್ಟೋನ್ ರಾಷ್ಟ್ರೀಯ ಉದ್ಯಾನವನದ ಬಳಿ 40 ಎಕರೆ ಭೂಮಿಯನ್ನು ಖರೀದಿಸಲು CityDAO ವ್ಯೋಮಿಂಗ್‌ನ DAO ಕಾನೂನನ್ನು ಬಳಸಿಕೊಂಡಿದೆ. + +## DAO ಸದಸ್ಯತ್ವ {#dao-membership} + +DAO ಸದಸ್ಯತ್ವಕ್ಕಾಗಿ ವಿವಿಧ ಮಾದರಿಗಳಿವೆ. ಸದಸ್ಯತ್ವವು ಮತದಾನವು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು DAO ಯ ಇತರ ಪ್ರಮುಖ ಭಾಗಗಳನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ. + +### ಟೋಕನ್ ಆಧಾರಿತ ಸದಸ್ಯತ್ವ {#token-based-membership} + +ಬಳಸಿದ ಟೋಕನ್ ಅನ್ನು ಅವಲಂಬಿಸಿ ಸಾಮಾನ್ಯವಾಗಿ ಸಂಪೂರ್ಣವಾಗಿ ಅನುಮತಿಯಿಲ್ಲ. ಹೆಚ್ಚಿನ ಈ ಆಡಳಿತ ಟೋಕನ್‌ಗಳನ್ನು ಡೆಸೆಂಟ್ರಲೈಸ್ಡ್ ಎಕ್ಸ್‌ಚೇಂಜ್‌ನಲ್ಲಿ ಅನುಮತಿ ಇಲ್ಲದೆ ವಹಿವಾಟು ಮಾಡಬಹುದು. ಇತರವುಗಳನ್ನು ಲಿಕ್ವಿಡಿಟಿ ಅಥವಾ ಇತರ ಕೆಲವು 'ಕೆಲಸದ ಪುರಾವೆ' ಒದಗಿಸುವ ಮೂಲಕ ಗಳಿಸಬೇಕು. ಹೇಗಾದರೂ, ಟೋಕನ್ ಹೊಂದಿರುವುದು ಸಾಕು ಮತದಾನಕ್ಕೆ ಪ್ರವೇಶವನ್ನು ನೀಡುತ್ತದೆ. + +_ವಿಶಾಲ ವಿಕೇಂದ್ರೀಕೃತ ಪ್ರೋಟೋಕಾಲ್‌ಗಳು ಮತ್ತು/ಅಥವಾ ಟೋಕನ್‌ಗಳನ್ನು ಸ್ವತಃ ನಿಯಂತ್ರಿಸಲು ಸಾಮಾನ್ಯವಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ._ + +#### ಒಂದು ಪ್ರಸಿದ್ಧ ಉದಾಹರಣೆ {#token-example} + +[MakerDAO](https://makerdao.com) – MakerDAO ಟೋಕನ್ MKR ಅನ್ನು ಡೆಸೆಂಟ್ರಲೈಸ್ಡ್ ಎಕ್ಸ್‌ಚೇಂಜ್‌ಗಳಲ್ಲಿ ವ್ಯಾಪಕವಾಗಿ ಲಭ್ಯವಿದೆ ಮತ್ತು ಯಾರಾದರೂ ಮೇಕರ್ ಪ್ರೋಟೋಕಾಲ್‍ನ ಭವಿಷ್ಯದ ಮೇಲೆ ಮತದಾನ ಶಕ್ತಿಯನ್ನು ಖರೀದಿಸಬಹುದು. + +### ಹಂಚಿಕೆ ಆಧಾರಿತ ಸದಸ್ಯತ್ವ {#share-based-membership} + +ಹಂಚಿಕೆ-ಆಧಾರಿತ DAO ಗಳು ಹೆಚ್ಚು ಅನುಮತಿ ಪಡೆದಿವೆ, ಆದರೆ ಇನ್ನೂ ಸಾಕಷ್ಟು ತೆರೆದಿರುತ್ತವೆ. ಯಾವುದೇ ಭವಿಷ್ಯದ ಸದಸ್ಯರು DAO ಗೆ ಸೇರಲು ಪ್ರಸ್ತಾಪವನ್ನು ಸಲ್ಲಿಸಬಹುದು, ಸಾಮಾನ್ಯವಾಗಿ ಟೋಕನ್‍ಗಳು ಅಥವಾ ಕೆಲಸದ ರೂಪದಲ್ಲಿ ಕೆಲವು ಮೌಲ್ಯದ ಒಂದು ಗೌರವವನ್ನು ನೀಡುತ್ತಾರೆ. ಷೇರುಗಳು ನೇರ ಮತದಾನದ ಶಕ್ತಿ ಮತ್ತು ಮಾಲೀಕತ್ವವನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತವೆ. ಸದಸ್ಯರು ತಮ್ಮ ಖಜಾನೆಯ ಅನುಪಾತದ ಪಾಲನ್ನು ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ನಿರ್ಗಮಿಸಬಹುದು. + +_ಸಾಮಾನ್ಯವಾಗಿ ಹತ್ತಿರದ, ಮಾನವ-ಕೇಂದ್ರಿತ ಸಂಸ್ಥೆಗಳಾದ ಚಾರಿಟಿಗಳು, ಕಾರ್ಮಿಕ ಸಮುದಾಯಗಳು ಮತ್ತು ಹೂಡಿಕೆ ಕ್ಲಬ್‌ಗಳಿಗಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ. ಪ್ರೋಟೋಕಾಲ್‌ಗಳು ಮತ್ತು ಟೋಕನ್‌ಗಳನ್ನು ಸಹ ನಿಯಂತ್ರಿಸಬಹುದು._ + +#### ಒಂದು ಪ್ರಸಿದ್ಧ ಉದಾಹರಣೆ {#share-example} + +[MolochDAO](http://molochdao.com/) - MolochDAO Ethereum ಯೋಜನೆಗಳಿಗೆ ಧನಸಹಾಯ ನೀಡುವುದರ ಮೇಲೆ ಕೇಂದ್ರೀಕೃತವಾಗಿದೆ. ಅವರಿಗೆ ಸದಸ್ಯತ್ವದ ಪ್ರಸ್ತಾಪದ ಅಗತ್ಯವಿರುತ್ತದೆ ಆದ್ದರಿಂದ ಸಂಭಾವ್ಯ ಅನುದಾನ ನೀಡುವವರ ಬಗ್ಗೆ ತಿಳುವಳಿಕೆಯುಳ್ಳ ತೀರ್ಪುಗಳನ್ನು ಮಾಡಲು ನೀವು ಅಗತ್ಯವಾದ ಪರಿಣತಿ ಮತ್ತು ಬಂಡವಾಳವನ್ನು ಹೊಂದಿದ್ದೀರಾ ಎಂದು ಗುಂಪು ನಿರ್ಣಯಿಸಬಹುದು. ನೀವು ಮುಕ್ತ ಮಾರುಕಟ್ಟೆಯಲ್ಲಿ DAO ಗೆ ಪ್ರವೇಶವನ್ನು ಖರೀದಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. + +### ಖ್ಯಾತಿ ಆಧಾರಿತ ಸದಸ್ಯತ್ವ {#reputation-based-membership} + +ಖ್ಯಾತಿ ಭಾಗವಹಿಸುವಿಕೆಯ ಪುರಾವೆಯನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ ಮತ್ತು DAO ಯಲ್ಲಿ ಮತದಾನ ಶಕ್ತಿಯನ್ನು ನೀಡುತ್ತದೆ. ಟೋಕನ್ ಅಥವಾ ಷೇರು ಆಧಾರಿತ ಸದಸ್ಯತ್ವದಂತಲ್ಲದೆ, ಖ್ಯಾತಿ-ಆಧಾರಿತ DAO ಗಳು ಮಾಲೀಕತ್ವವನ್ನು ಕೊಡುಗೆದಾರರಿಗೆ ವರ್ಗಾಯಿಸುವುದಿಲ್ಲ. ಖ್ಯಾತಿ ಖರೀದಿಸಲಾಗುವುದಿಲ್ಲ, ವರ್ಗಾಯಿಸಲಾಗುವುದಿಲ್ಲ ಅಥವಾ ಒಪ್ಪಿಸಲಾಗುವುದಿಲ್ಲ; DAO ಸದಸ್ಯರು ಭಾಗವಹಿಸುವ ಮೂಲಕ ಖ್ಯಾತಿ ಗಳಿಸಬೇಕು. ಒನ್-ಚೈನ್ ಮತದಾನವು ಅನುಮತಿಯಿಲ್ಲದೆ ಇದೆ ಮತ್ತು ಭವಿಷ್ಯದ ಸದಸ್ಯರು DAO ಗೆ ಸೇರಲು ಉಚಿತವಾಗಿ ಪ್ರಸ್ತಾಪಗಳನ್ನು ಸಲ್ಲಿಸಬಹುದು ಮತ್ತು ತಮ್ಮ ಕೊಡುಗೆಗಳಿಗೆ ಪ್ರತಿಫಲವಾಗಿ ಖ್ಯಾತಿ ಮತ್ತು ಟೋಕನ್‍ಗಳನ್ನು ಪಡೆಯಲು ಕೋರಬಹುದು. + +_ಸಾಮಾನ್ಯವಾಗಿ ಪ್ರೋಟೋಕಾಲ್‍ಗಳು ಮತ್ತು ಡಾಪ್‌ಗಳ ಡೆಸೆಂಟ್ರಲೈಸ್ಡ್ ಅಭಿವೃದ್ಧಿ ಮತ್ತು ಆಡಳಿತಕ್ಕಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ, ಆದರೆ ಚಾರಿಟಿಗಳು, ಕಾರ್ಮಿಕ ಸಮುದಾಯಗಳು, ಹೂಡಿಕೆ ಕ್ಲಬ್‌ಗಳು ಮುಂತಾದ ವೈವಿಧ್ಯಮಯ ಸಂಸ್ಥೆಗಳಿಗೂ ಸೂಕ್ತವಾಗಿದೆ._ + +#### ಒಂದು ಪ್ರಸಿದ್ಧ ಉದಾಹರಣೆ {#reputation-example} + +[DXdao](https://DXdao.eth.link) - DXdao ಜಾಗತಿಕ ಸಾರ್ವಭೌಮ ಸಾಮೂಹಿಕ ಕಟ್ಟಡವಾಗಿದೆ ಮತ್ತು 2019 ರಿಂದ ವಿಕೇಂದ್ರೀಕೃತ ಪ್ರೋಟೋಕಾಲ್‌ಗಳು ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿಯಂತ್ರಿಸುತ್ತದೆ. ಇದು ಖ್ಯಾತಿ ಆಧಾರಿತ ಆಡಳಿತ ಮತ್ತು ಹೊಲೋಗ್ರಾಫಿಕ್ ಒಮ್ಮತವನ್ನು ಬಳಸಿಕೊಂಡು ನಿಧಿಗಳನ್ನು ಒಗ್ಗೂಡಿಸಲು ಮತ್ತು ನಿರ್ವಹಿಸುತ್ತದೆ, ಅಂದರೆ ಯಾರೂ ತಮ್ಮ ಭವಿಷ್ಯವನ್ನು ಖರೀದಿಸುವ ಮೂಲಕ ಪ್ರಭಾವಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. + +## DAO ಗೆ ಸೇರಿ / ಪ್ರಾರಂಭಿಸಿ {#join-start-a-dao} + +### Join a DAO {#join-a-dao} + +- [ಇಥಿರಿಯಮ್ ಸಮುದಾಯ DAO ಗಳು](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [DAOHaus ನ DAOಗಳ ಪಟ್ಟಿ](https://app.daohaus.club/explore) +- [Tally.xyz DAOಗಳ ಪಟ್ಟಿ](https://www.tally.xyz) + +### DAO ಅನ್ನು ಪ್ರಾರಂಭಿಸಿ {#start-a-dao} + +- [DAOHaus ಜೊತೆಗೆ DAO ಅನ್ನು ಕರೆಸಿ](https://app.daohaus.club/summon) +- [ಟ್ಯಾಲಿಯೊಂದಿಗೆ ಗವರ್ನರ್ DAO ಅನ್ನು ಪ್ರಾರಂಭಿಸಿ](https://www.tally.xyz/add-a-dao) +- [ಅರಾಗೊನ್-ಚಾಲಿತ DAO ಅನ್ನು ರಚಿಸಿ](https://aragon.org/product) +- [ಕಾಲೋನಿ ಆರಂಭಿಸಿ](https://colony.io/) +- [DAOstack ನ ಹೊಲೊಗ್ರಾಫಿಕ್ ಒಮ್ಮತದೊಂದಿಗೆ DAO ಅನ್ನು ರಚಿಸಿ](https://alchemy.daostack.io/daos/create) + +## Further reading {#further-reading} + +### DAO ಆರ್ಟಿಕಲ್‍ಗಳು {#dao-articles} + +- [DAO ಎಂದರೇನು?](https://aragon.org/dao) – [ಅರಾಗೊನ್](https://aragon.org/) +- [DAO ಕೈಪಿಡಿ](https://daohandbook.xyz) +- [DAOಗಳ ಹೌಸ್](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) +- [DAO ಎಂದರೇನು ಮತ್ತು ಅದು ಯಾವುದಕ್ಕಾಗಿ?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) +- [DAO-ಚಾಲಿತ ಡಿಜಿಟಲ್ ಸಮುದಾಯವನ್ನು ಹೇಗೆ ಪ್ರಾರಂಭಿಸುವುದು](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) +- [DAO ಎಂದರೇನು?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) +- [ಹೊಲೊಗ್ರಾಫಿಕ್ ಒಮ್ಮತ ಎಂದರೇನು?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) +- [DAO ಗಳು ನಿಗಮಗಳಲ್ಲ: ಅಲ್ಲಿ ಸ್ವಾಯತ್ತ ಸಂಸ್ಥೆಗಳಲ್ಲಿ ವಿಕೇಂದ್ರೀಕರಣವು ವಿಟಾಲಿಕ್‌ನಿಂದ ಮುಖ್ಯವಾಗಿದೆ](https://vitalik.ca/general/2022/09/20/daos.html) +- [ಡಿಎಒಗಳು, ಡಿಎಸಿಗಳು, ಡಿಎಗಳು ಮತ್ತು ಇನ್ನಷ್ಟು: ಅಪೂರ್ಣ ಪರಿಭಾಷೆ ಮಾರ್ಗದರ್ಶಿ](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Ethereum Blog](https://blog.ethereum.org) + +### Videos {#videos} + +- [ಕ್ರಿಪ್ಟೋದಲ್ಲಿ DAO ಎಂದರೇನು?](https://youtu.be/KHm0uUPqmVE) +- [DAO ನಗರವನ್ನು ನಿರ್ಮಿಸಬಹುದೇ?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/public/content/translations/kn/decentralized-identity/index.md b/public/content/translations/kn/decentralized-identity/index.md new file mode 100644 index 00000000000..661cc309e90 --- /dev/null +++ b/public/content/translations/kn/decentralized-identity/index.md @@ -0,0 +1,185 @@ +--- +title: ವಿಕೇಂದ್ರೀಕರಿತ ಗುರುತು +description: ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು ಎಂದರೇನು, ಮತ್ತು ಅದು ಏಕೆ ಮುಖ್ಯವಾಗಿದೆ? +lang: kn +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: /eth-gif-cat.png +summaryPoint1: ಸಾಂಪ್ರದಾಯಿಕ ಗುರುತಿನ ವ್ಯವಸ್ಥೆಗಳು ನಿಮ್ಮ ಗುರುತಿಸುವಿಕೆಗಳ ವಿತರಣೆ, ನಿರ್ವಹಣೆ ಮತ್ತು ನಿಯಂತ್ರಣವನ್ನು ಕೇಂದ್ರೀಕರಿಸಿವೆ. +summaryPoint2: ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು ಕೇಂದ್ರೀಕೃತ ಮೂರನೇ ಪಕ್ಷಗಳ ಮೇಲಿನ ಅವಲಂಬನೆಯನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ. +summaryPoint3: ಕ್ರಿಪ್ಟೋಗೆ ಧನ್ಯವಾದಗಳು, ಬಳಕೆದಾರರು ಈಗ ಮತ್ತೊಮ್ಮೆ ತಮ್ಮದೇ ಆದ ಗುರುತಿಸುವಿಕೆಗಳು ಮತ್ತು ದೃಢೀಕರಣಗಳನ್ನು ವಿತರಿಸಲು, ಹಿಡಿದಿಡಲು ಮತ್ತು ನಿಯಂತ್ರಿಸಲು ಸಾಧನಗಳನ್ನು ಹೊಂದಿದ್ದಾರೆ. +--- + +ಗುರುತು ಇಂದು ನಿಮ್ಮ ಜೀವನದ ಪ್ರತಿಯೊಂದು ಅಂಶಕ್ಕೂ ಆಧಾರವಾಗಿದೆ. ಜಾಲತಾಣ ಸೇವೆಗಳನ್ನು ಬಳಸುವುದು, ಬ್ಯಾಂಕ್ ಖಾತೆಯನ್ನು ತೆರೆಯುವುದು, ಚುನಾವಣೆಗಳಲ್ಲಿ ಮತ ಚಲಾಯಿಸುವುದು, ಆಸ್ತಿ ಖರೀದಿಸುವುದು, ಉದ್ಯೋಗ ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವುದು - ಇವೆಲ್ಲವೂ ನಿಮ್ಮ ಗುರುತಿನ ಪುರಾವೆಯನ್ನು ಸೂಚಿಸುತ್ತವೆ. + +ಆದಾಗ್ಯೂ, ಸಾಂಪ್ರದಾಯಿಕ ಗುರುತಿನ ನಿರ್ವಹಣಾ ವ್ಯವಸ್ಥೆಗಳು ನಿಮ್ಮ ಗುರುತಿಸುವಿಕೆಗಳು ಮತ್ತು [ದೃಢೀಕರಣಗಳನ್ನು](#what-are-attestations), ನೀಡುವ, ಹಿಡಿದಿಟ್ಟುಕೊಳ್ಳುವ ಮತ್ತು ನಿಯಂತ್ರಿಸುವ ಕೇಂದ್ರೀಕೃತ ಮಧ್ಯವರ್ತಿಗಳ ಮೇಲೆ ದೀರ್ಘಕಾಲ ಅವಲಂಬಿಸಿವೆ. ಇದರರ್ಥ ನೀವು ನಿಮ್ಮ ಗುರುತಿನ ಸಂಬಂಧಿತ ಮಾಹಿತಿಯನ್ನು ನಿಯಂತ್ರಿಸಲಾಗುವುದಿಲ್ಲ ಅಥವಾ ಯಾರುಪರ್ಸನಲ್ಲಿ ಐಡೆಂಟಿಫೈಅಬಲೆ ಇನ್ಫಾರ್ಮಶನ್(PII) ಗೆ ಪ್ರವೇಶವನ್ನು ನಿರ್ಧರಿಸಲು ಅಥವಾ ಈ ಪಕ್ಷಗಳಿಗೆ ಎಷ್ಟು ಪ್ರವೇಶವಿದೆ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಲಾಗುವುದಿಲ್ಲ. + +ಈ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಲು, ನಾವು ಇಥಿರಿಯಮ್ ನಂತಹ ಸಾರ್ವಜನಿಕ ಬ್ಲಾಕ್‌ಚೈನ್‌ಗಳಲ್ಲಿ ನಿರ್ಮಿಸಲಾದ ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿನ ವ್ಯವಸ್ಥೆಗಳನ್ನು ಹೊಂದಿದ್ದೇವೆ. ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು ವ್ಯಕ್ತಿಗಳು ತಮ್ಮ ಗುರುತಿನ-ಸಂಬಂಧಿತ ಮಾಹಿತಿಯನ್ನು ನಿರ್ವಹಿಸಲು ಅನುಮತಿಸುತ್ತದೆ. ಡೀಸೆಂಟ್ರಲೈಸ್ಡ್ ಐಡೆಂಟಿಟಿ ಸಲಹೆಗಳೊಂದಿಗೆ, _ನೀವು_ ಸೇವಾ ಪೂರೈಕೆದಾರರು ಅಥವಾ ಸರ್ಕಾರಗಳಂತಹ ಕೇಂದ್ರೀಯ ಅಧಿಕಾರಿಗಳ ಮೇಲೆ ಅವಲಂಬಿಸದೆ ಗುರುತುಗಳು ಮತ್ತು ದೃಢೀಕರಣಗಳನ್ನು ರಚಿಸಬಹುದು ಮತ್ತು ಹೊಂದಬಹುದು. + +## ಗುರುತು ಎಂದರೇನು? {#what-is-identity} + +ಗುರುತಿನೆಂದರೆ ವ್ಯಕ್ತಿಯ ಸ್ವಯಂ ಭಾವನೆಯಾಗಿದ್ದು, ಅದು ಅನನ್ಯ ಗುಣಲಕ್ಷಣಗಳಿಂದ ನಿರೂಪಿಸಲ್ಪಟ್ಟಿದೆ. ಐಡೆಂಟಿಟಿಯು ಒಬ್ಬ _ವ್ಯಕ್ತಿಯನ್ನುl_ ಸೂಚಿಸುತ್ತದೆ, ಅಂದರೆ, ಒಂದು ವಿಶಿಷ್ಟವಾದ ಮಾನವ ಅಸ್ತಿತ್ವ. ಗುರುತು ಸಂಸ್ಥೆ ಅಥವಾ ಅಧಿಕಾರದಂತಹ ಇತರ ಮಾನವೇತರ ಘಟಕಗಳನ್ನು ಸಹ ಉಲ್ಲೇಖಿಸಬಹುದು. + +## ಗುರುತಿಸುವಿಕೆಗಳು ಯಾವುವು? {#what-are-identifiers} + +ಗುರುತಿಸುವಿಕೆಯು ಒಂದು ನಿರ್ದಿಷ್ಟ ಗುರುತು ಅಥವಾ ಗುರುತುಗಳಿಗೆ ಸೂಚಕವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಮಾಹಿತಿಯ ತುಣುಕು. ಸಾಮಾನ್ಯ ಗುರುತಿಸುವಿಕೆಗಳಲ್ಲಿ ಇವು ಸೇರಿವೆ: + +- ಹೆಸರು +- ಸಾಮಾಜಿಕ ಭದ್ರತಾ ಸಂಖ್ಯೆ/ ತೆರಿಗೆ ಐಡಿ ಸಂಖ್ಯೆ +- ಮೊಬೈಲ್ ಸಂಖ್ಯೆ +- ಹುಟ್ಟಿದ ದಿನಾಂಕ ಮತ್ತು ಸ್ಥಳ +- ಡಿಜಿಟಲ್ ಗುರುತಿನ ರುಜುವಾತುಗಳು, ಉದಾ., ಇಮೇಲ್ ವಿಳಾಸಗಳು, ಬಳಕೆದಾರ ಹೆಸರುಗಳು, ಅವತಾರಗಳು + +ಗುರುತಿಸುವಿಕೆಗಳ ಈ ಸಾಂಪ್ರದಾಯಿಕ ಉದಾಹರಣೆಗಳನ್ನು ಕೇಂದ್ರ ಘಟಕಗಳು ನೀಡುತ್ತವೆ, ಹಿಡಿದಿಟ್ಟುಕೊಳ್ಳುತ್ತವೆ ಮತ್ತು ನಿಯಂತ್ರಿಸುತ್ತವೆ. ನಿಮ್ಮ ಹೆಸರನ್ನು ಬದಲಾಯಿಸಲು ಅಥವಾ ನಿಮ್ಮ ಹ್ಯಾಂಡಲ್ ಅನ್ನು ಬದಲಾಯಿಸಲು ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮ ವೇದಿಕೆಯಿಂದ ನಿಮಗೆ ನಿಮ್ಮ ಸರ್ಕಾರದಿಂದ ಅನುಮತಿ ಬೇಕು. + +## ದೃಢೀಕರಣಗಳು ಎಂದರೇನು? {#what-are-attestations} + +ದೃಢೀಕರಣವು ಒಂದು ಘಟಕವು ಮತ್ತೊಂದು ಘಟಕದ ಬಗ್ಗೆ ಮಾಡಿದ ಹಕ್ಕು. ನೀವು ಯುನೈಟೆಡ್ ಸ್ಟೇಟ್ಸ್ ನಲ್ಲಿ ವಾಸಿಸುತ್ತಿದ್ದರೆ, ಮೋಟಾರು ವಾಹನಗಳ ಇಲಾಖೆ (ಒಂದು ಘಟಕ) ನಿಮಗೆ ನೀಡಿದ ಚಾಲನಾ ಪರವಾನಗಿಯು ನಿಮಗೆ (ಮತ್ತೊಂದು ಘಟಕ) ಕಾರನ್ನು ಓಡಿಸಲು ಕಾನೂನುಬದ್ಧವಾಗಿ ಅನುಮತಿಸಲಾಗಿದೆ ಎಂದು ದೃಢೀಕರಿಸುತ್ತದೆ. + +ದೃಢೀಕರಣಗಳು ಗುರುತಿಸುವಿಕೆಗಳಿಗಿಂತ ಭಿನ್ನವಾಗಿವೆ. ದೃಢೀಕರಣವು ಒಂದು ನಿರ್ದಿಷ್ಟ ಗುರುತನ್ನು ಉಲ್ಲೇಖಿಸಲು ಗುರುತಿಸುವಿಕೆಗಳನ್ನು _ಒಳಗೊಂಡಿರುತ್ತದೆ_, ಮತ್ತು ಈ ಗುರುತಿಗೆ ಸಂಬಂಧಿಸಿದ ಗುಣಲಕ್ಷಣದ ಬಗ್ಗೆ ಹಕ್ಕು ಸಾಧಿಸುತ್ತದೆ. ಆದ್ದರಿಂದ, ನಿಮ್ಮ ಚಾಲನಾ ಪರವಾನಗಿಯು ಗುರುತಿಸುವಿಕೆಗಳನ್ನು (ಹೆಸರು, ಹುಟ್ಟಿದ ದಿನಾಂಕ, ವಿಳಾಸ) ಹೊಂದಿದೆ ಆದರೆ ಚಾಲನೆ ಮಾಡುವ ನಿಮ್ಮ ಕಾನೂನುಬದ್ಧ ಹಕ್ಕಿನ ಬಗ್ಗೆ ದೃಢೀಕರಣವಾಗಿದೆ. + +### ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿಸುವಿಕೆಗಳು ಎಂದರೇನು? {#what-are-decentralized-identifiers} + +ನಿಮ್ಮ ಕಾನೂನು ಹೆಸರು ಅಥವಾ ಇಮೇಲ್ ವಿಳಾಸದಂತಹ ಸಾಂಪ್ರದಾಯಿಕ ಗುರುತಿಸುವಿಕೆಗಳು ಮೂರನೇ ಪಕ್ಷಗಳು-ಸರ್ಕಾರಗಳು ಮತ್ತು ಇಮೇಲ್ ಪೂರೈಕೆದಾರರನ್ನು ಅವಲಂಬಿಸಿರುತ್ತವೆ. ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿಸುವಿಕೆಗಳು (DIDs) ವಿಭಿನ್ನವಾಗಿವೆ - ಅವುಗಳನ್ನು ಯಾವುದೇ ಕೇಂದ್ರ ಘಟಕವು ನೀಡುವುದಿಲ್ಲ, ನಿರ್ವಹಿಸುವುದಿಲ್ಲ ಅಥವಾ ನಿಯಂತ್ರಿಸುವುದಿಲ್ಲ. + +ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿಸುವಿಕೆಗಳನ್ನು ವ್ಯಕ್ತಿಗಳು ನೀಡುತ್ತಾರೆ, ಹಿಡಿದಿಡುತ್ತಾರೆ ಮತ್ತು ನಿಯಂತ್ರಿಸುತ್ತಾರೆ. [ಎಥೆರಿಯಮ್ ಖಾತೆಯು](/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) ಉತ್ಪಾದಿಸುತ್ತದೆ. ಬಳಕೆದಾರರ ಗುರುತುಗಳನ್ನು ದೃಢೀಕರಿಸಲು ಮತ್ತು ಡಿಜಿಟಲ್ ಸ್ವತ್ತುಗಳ ಮಾಲೀಕತ್ವವನ್ನು ಸಾಬೀತುಪಡಿಸಲು ಬ್ಲಾಕ್‍ಚೈನ್ ನೆಟ್‍ವರ್ಕ್‍ಗಳಲ್ಲಿ ಸಾರ್ವಜನಿಕ-ಕೀ ಕ್ರಿಪ್ಟೋಗ್ರಫಿಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. + +ಇಥಿರಿಯಮ್ ಖಾತೆಯಂತಹ ಕೆಲವು ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿಸುವಿಕೆಗಳು ಸಾರ್ವಜನಿಕ ಮತ್ತು ಖಾಸಗಿ ಕೀಲಿಗಳನ್ನು ಹೊಂದಿವೆ. ಸಾರ್ವಜನಿಕ ಕೀಯು ಖಾತೆಯ ನಿಯಂತ್ರಕವನ್ನು ಗುರುತಿಸುತ್ತದೆ, ಆದರೆ ಖಾಸಗಿ ಕೀಗಳು ಈ ಖಾತೆಗೆ ಸಂದೇಶಗಳಿಗೆ ಸಹಿ ಮಾಡಬಹುದು ಮತ್ತು ಡಿಕ್ರಿಪ್ಟ್ ಮಾಡಬಹುದು. PKI ಘಟಕಗಳನ್ನು ದೃಢೀಕರಿಸಲು ಮತ್ತು ನಕಲಿ ಗುರುತುಗಳ ಆವರ್ತನ ಮತ್ತು ಬಳಕೆಯನ್ನು ತಡೆಗಟ್ಟಲು ಅಗತ್ಯವಾದ ಪುರಾವೆಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ, ಎಲ್ಲಾ ಹಕ್ಕುಗಳನ್ನು ಪರಿಶೀಲಿಸಲು [ಕ್ರಿಪ್ಟೋಗ್ರಾಫಿಕ್ ಸಹಿಗಳನ್ನು](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 ಡಿಐಡಿಯೊಂದಿಗೆ ಸಂಬಂಧ ಹೊಂದಿವೆ. + +DIDs ಡಿಐಡಿಗಳನ್ನು ಬ್ಲಾಕ್‍ಚೈನ್‍ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗಿರುವುದರಿಂದ, ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ವಿತರಕರ DID ಯನ್ನು ಅಡ್ಡ-ಪರಿಶೀಲಿಸುವ ಮೂಲಕ ಯಾರಾದರೂ ದೃಢೀಕರಣದ ಸಿಂಧುತ್ವವನ್ನು ಪರಿಶೀಲಿಸಬಹುದು. ಮೂಲಭೂತವಾಗಿ, ಇಥಿರಿಯಮ್ ಬ್ಲಾಕ್‍ಚೈನ್ ಜಾಗತಿಕ ಡೈರೆಕ್ಟರಿಯಂತೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಅದು ಕೆಲವು ಘಟಕಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ DID ಗಳ ಪರಿಶೀಲನೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. + +ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿಸುವಿಕೆಗಳು ದೃಢೀಕರಣಗಳು ಸ್ವಯಂ-ನಿಯಂತ್ರಿತ ಮತ್ತು ಪರಿಶೀಲಿಸಬಹುದಾದವುಗಳಾಗಲು ಕಾರಣವಾಗಿವೆ. ವಿತರಕರು ಇನ್ನು ಮುಂದೆ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದಿದ್ದರೂ, ಹೋಲ್ಡರ್ ಯಾವಾಗಲೂ ದೃಢೀಕರಣದ ಮೂಲ ಮತ್ತು ಸಿಂಧುತ್ವದ ಪುರಾವೆಗಳನ್ನು ಹೊಂದಿರುತ್ತಾರೆ. + +ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿನ ಮೂಲಕ ವೈಯಕ್ತಿಕ ಮಾಹಿತಿಯ ಗೌಪ್ಯತೆಯನ್ನು ರಕ್ಷಿಸಲು ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿಸುವಿಕೆಗಳು ಸಹ ನಿರ್ಣಾಯಕವಾಗಿವೆ. ಉದಾಹರಣೆಗೆ, ಒಬ್ಬ ವ್ಯಕ್ತಿಯು ದೃಢೀಕರಣದ ಪುರಾವೆಯನ್ನು (ಡ್ರೈವಿಂಗ್ ಲೈಸೆನ್ಸ್) ಸಲ್ಲಿಸಿದರೆ, ಪರಿಶೀಲಿಸುವ ಪಕ್ಷವು ಪುರಾವೆಯಲ್ಲಿನ ಮಾಹಿತಿಯ ಸಿಂಧುತ್ವವನ್ನು ಪರಿಶೀಲಿಸುವ ಅಗತ್ಯವಿಲ್ಲ. ಬದಲಾಗಿ, ಪುರಾವೆ ಮಾನ್ಯವಾಗಿದೆಯೇ ಎಂದು ನಿರ್ಧರಿಸಲು ಪರಿಶೀಲಕನಿಗೆ ದೃಢೀಕರಣದ ಸತ್ಯಾಸತ್ಯತೆ ಮತ್ತು ನೀಡುವ ಸಂಸ್ಥೆಯ ಗುರುತಿನ ಕ್ರಿಪ್ಟೋಗ್ರಾಫಿಕ್ ಖಾತರಿಗಳು ಮಾತ್ರ ಬೇಕಾಗುತ್ತವೆ. + +## ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿನಲ್ಲಿ ದೃಢೀಕರಣಗಳ ವಿಧಗಳು {#types-of-attestations-in-decentralized-identity} + +ಇಥಿರಿಯಮ್-ಆಧಾರಿತ ಗುರುತಿನ ಪರಿಸರ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ದೃಢೀಕರಣ ಮಾಹಿತಿಯನ್ನು ಹೇಗೆ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಹಿಂಪಡೆಯಲಾಗುತ್ತದೆ ಎಂಬುದು ಸಾಂಪ್ರದಾಯಿಕ ಗುರುತಿನ ನಿರ್ವಹಣೆಗಿಂತ ಭಿನ್ನವಾಗಿದೆ. ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿನ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ದೃಢೀಕರಣಗಳನ್ನು ನೀಡುವ, ಸಂಗ್ರಹಿಸುವ ಮತ್ತು ಪರಿಶೀಲಿಸುವ ವಿವಿಧ ವಿಧಾನಗಳ ಅವಲೋಕನ ಇಲ್ಲಿದೆ: + +### ಆಫ್-ಚೈನ್ ದೃಢೀಕರಣಗಳು {#off-chain-attestations} + +ದೃಢೀಕರಣಗಳನ್ನು ಸರಪಳಿಯಲ್ಲಿ ಸಂಗ್ರಹಿಸುವ ಒಂದು ಕಾಳಜಿಯೆಂದರೆ ಅವು ವ್ಯಕ್ತಿಗಳು ಖಾಸಗಿಯಾಗಿಡಲು ಬಯಸುವ ಮಾಹಿತಿಯನ್ನು ಒಳಗೊಂಡಿರಬಹುದು. ಇಥಿರಿಯಮ್ ಬ್ಲಾಕ್‍ಚೈನ್‍ನ ಸಾರ್ವಜನಿಕ ಸ್ವರೂಪವು ಅಂತಹ ದೃಢೀಕರಣಗಳನ್ನು ಸಂಗ್ರಹಿಸಲು ಆಕರ್ಷಕವಲ್ಲ. + +ಡಿಜಿಟಲ್ ವ್ಯಾಲೆಟ‌ಗಳಲ್ಲಿ ಬಳಕೆದಾರರು ಆಫ್-ಚೈನ್ ಹೊಂದಿರುವ ಆದರೆ ವಿತರಕರ DID ಯೊಂದಿಗೆ ಸಹಿ ಮಾಡಿದ ದೃಢೀಕರಣಗಳನ್ನು ನೀಡುವುದು ಪರಿಹಾರವಾಗಿದೆ. ಈ ದೃಢೀಕರಣಗಳನ್ನು [JASON Web ಟೋಕನ್‍ಗಳಾಗಿ](https://en.wikipedia.org/wiki/JSON_Web_Token) ಎನ್‍ಕೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ ಮತ್ತು ವಿತರಕರ ಡಿಜಿಟಲ್ ಸಹಿಯನ್ನು ಹೊಂದಿರುತ್ತದೆ - ಇದು ಆಫ್-ಚೈನ್ ಕ್ಲೈಮ್‍ಗಳ ಸುಲಭ ಪರಿಶೀಲನೆಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. + +ಆಫ್-ಚೈನ್ ದೃಢೀಕರಣಗಳನ್ನು ವಿವರಿಸಲು ಒಂದು ಕಾಲ್ಪನಿಕ ಸನ್ನಿವೇಶ ಇಲ್ಲಿದೆ: + +1. ವಿಶ್ವವಿದ್ಯಾಲಯ (ವಿತರಕ) ದೃಢೀಕರಣವನ್ನು (ಡಿಜಿಟಲ್ ಶೈಕ್ಷಣಿಕ ಪ್ರಮಾಣಪತ್ರ) ರಚಿಸುತ್ತದೆ, ಅದರ ಕೀಗಳೊಂದಿಗೆ ಸಹಿ ಮಾಡುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಬಾಬ್ (ಗುರುತಿನ ಮಾಲೀಕ) ಗೆ ನೀಡುತ್ತದೆ. + +2. ಬಾಬ್ ಕೆಲಸಕ್ಕೆ ಅರ್ಜಿ ಸಲ್ಲಿಸುತ್ತಾನೆ ಮತ್ತು ತನ್ನ ಶೈಕ್ಷಣಿಕ ಅರ್ಹತೆಗಳನ್ನು ಉದ್ಯೋಗದಾತರಿಗೆ ಸಾಬೀತುಪಡಿಸಲು ಬಯಸುತ್ತಾನೆ, ಆದ್ದರಿಂದ ಅವನು ತನ್ನ ಮೊಬೈಲ್ ವ್ಯಾಲೆಟ್ ನಿಂದ ದೃಢೀಕರಣವನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತಾನೆ. ಕಂಪನಿಯು (ಪರಿಶೀಲಕ) ವಿತರಕರ DID (ಅಂದರೆ, ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ಅದರ ಸಾರ್ವಜನಿಕ ಕೀ) ಅನ್ನು ಪರಿಶೀಲಿಸುವ ಮೂಲಕ ದೃಢೀಕರಣದ ಸಿಂಧುತ್ವವನ್ನು ದೃಢೀಕರಿಸಬಹುದು. + +### ನಿರಂತರ ಪ್ರವೇಶದೊಂದಿಗೆ ಆಫ್-ಚೈನ್ ದೃಢೀಕರಣಗಳು {#offchain-attestations-with-persistent-access} + +ಈ ವ್ಯವಸ್ಥೆಯಡಿಯಲ್ಲಿ ದೃಢೀಕರಣಗಳನ್ನು JASON ಫೈಲ್‍ಗಳಾಗಿ ಪರಿವರ್ತಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಆಫ್-ಚೈನ್ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ (IPFS ಅಥವಾ ಸ್ವರ್ಮ್‍ನಂತಹ [ವಿಕೇಂದ್ರೀಕೃತ ಕ್ಲೌಡ್ ಸ್ಟೋರೇಜ್](/developers/docs/storage/) ಪ್ಲಾಟ್‍ಫಾರ್ಮ್‍ನಲ್ಲಿ). ಆದಾಗ್ಯೂ, JASON ಫೈಲ್‍ನ [ಹ್ಯಾಶ್](/glossary/#hash) ಅನ್ನು ಸರಪಳಿಯಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಆನ್-ಚೈನ್ ರಿಜಿಸ್ಟ್ರಿ ಮೂಲಕ DID ಗೆ ಲಿಂಕ್ ಮಾಡಲಾಗುತ್ತದೆ. ಸಂಬಂಧಿತ DID ದೃಢೀಕರಣದ ವಿತರಕ ಅಥವಾ ಸ್ವೀಕರಿಸುವವರಾಗಿರಬಹುದು. + +ಈ ವಿಧಾನವು ದೃಢೀಕರಣಗಳಿಗೆ ಬ್ಲಾಕ್‍ಚೈನ್ ಆಧಾರಿತ ಸ್ಥಿರತೆಯನ್ನು ಪಡೆಯಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ, ಅದೇ ಸಮಯದಲ್ಲಿ ಕ್ಲೈಮ್ ಮಾಹಿತಿಯನ್ನು ಎನ್ಕ್ರಿಪ್ಟ್ ಮತ್ತು ಪರಿಶೀಲಿಸಬಹುದು. ಖಾಸಗಿ ಕೀಯನ್ನು ಹೊಂದಿರುವವರು ಮಾಹಿತಿಯನ್ನು ಡಿಕ್ರಿಪ್ಟ್ ಮಾಡಬಹುದಾದ್ದರಿಂದ ಇದು ಆಯ್ದ ಬಹಿರಂಗಪಡಿಸುವಿಕೆಗೆ ಅನುಮತಿಸುತ್ತದೆ. + +### ಆನ್-ಚೈನ್ ದೃಢೀಕರಣಗಳು {#onchain-attestations} + +ಆನ್-ಚೈನ್ ದೃಢೀಕರಣಗಳನ್ನು ಇಥಿರಿಯಮ್ ಬ್ಲಾಕ್‍ಚೈನ್‍ನಲ್ಲಿ [ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳಲ್ಲಿ](/developers/docs/smart-contracts/) ನಡೆಸಲಾಗುತ್ತದೆ. ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ (ರಿಜಿಸ್ಟ್ರಿಯಂತೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ) ಅನುಗುಣವಾದ ಆನ್-ಚೈನ್ ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿಸುವಿಕೆಗೆ (ಸಾರ್ವಜನಿಕ ಕೀ) ದೃಢೀಕರಣವನ್ನು ನಕ್ಷೆ ಮಾಡುತ್ತದೆ. + +ಆನ್-ಚೈನ್ ದೃಢೀಕರಣಗಳು ಪ್ರಾಯೋಗಿಕವಾಗಿ ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸಬಹುದು ಎಂಬುದನ್ನು ತೋರಿಸಲು ಒಂದು ಉದಾಹರಣೆ ಇಲ್ಲಿದೆ: + +1. ಒಂದು ಕಂಪನಿ (XYZ Corp) ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಮಾಲೀಕತ್ವದ ಷೇರುಗಳನ್ನು ಮಾರಾಟ ಮಾಡಲು ಯೋಜಿಸಿದೆ ಆದರೆ ಹಿನ್ನೆಲೆ ಪರಿಶೀಲನೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಿದ ಖರೀದಿದಾರರನ್ನು ಮಾತ್ರ ಬಯಸುತ್ತದೆ. + +2. ಇಥಿರಿಯಮ್ ನಲ್ಲಿ ಆನ್-ಚೈನ್ ದೃಢೀಕರಣಗಳನ್ನು ನೀಡಲು XYZ ಕಾರ್ಪ್ ಕಂಪನಿಯು ಹಿನ್ನೆಲೆ ಪರಿಶೀಲನೆಗಳನ್ನು ನಡೆಸಬಹುದು. ಯಾವುದೇ ವೈಯಕ್ತಿಕ ಮಾಹಿತಿಯನ್ನು ಬಹಿರಂಗಪಡಿಸದೆ ವ್ಯಕ್ತಿಯು ಹಿನ್ನೆಲೆ ಪರಿಶೀಲನೆಯಲ್ಲಿ ಉತ್ತೀರ್ಣನಾಗಿದ್ದಾನೆ ಎಂದು ಈ ದೃಢೀಕರಣವು ಪ್ರಮಾಣೀಕರಿಸುತ್ತದೆ. + +3. ಷೇರುಗಳನ್ನು ಮಾರಾಟ ಮಾಡುವ ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಸ್ಕ್ರೀನಿಂಗ್ ಖರೀದಿದಾರರ ಗುರುತುಗಳಿಗಾಗಿ ರಿಜಿಸ್ಟ್ರಿ ಒಪ್ಪಂದವನ್ನು ಪರಿಶೀಲಿಸಬಹುದು, ಇದರಿಂದಾಗಿ ಷೇರುಗಳನ್ನು ಖರೀದಿಸಲು ಯಾರಿಗೆ ಅನುಮತಿ ಇದೆ ಅಥವಾ ಇಲ್ಲವೇ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಲು ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗೆ ಸಾಧ್ಯವಾಗುತ್ತದೆ. + +### ಆತ್ಮಬಂಧಿತ ಸಂಕೇತಗಳು ಮತ್ತು ಗುರುತು {#soulbound} + +ನಿರ್ದಿಷ್ಟ ವ್ಯಾಲೆಟ್‍ಗೆ ವಿಶಿಷ್ಟವಾದ ಮಾಹಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸಲು ಸೋಲ್ [ಬೌಂಡ್ ಟೋಕನ್](https://vitalik.ca/general/2022/01/26/soulbound.html) ಗಳನ್ನು (ವರ್ಗಾವಣೆ ಮಾಡಲಾಗದ NFTಗಳು) ಬಳಸಬಹುದು. ಇದು ಸಾಧನೆಗಳನ್ನು ಪ್ರತಿನಿಧಿಸುವ ಟೋಕನ್‍ಗಳನ್ನು (ಉದಾಹರಣೆಗೆ, ಕೆಲವು ನಿರ್ದಿಷ್ಟ ಆನ್‍ಲೈನ್ ಕೋರ್ಸ್ ಅನ್ನು ಪೂರ್ಣಗೊಳಿಸುವುದು ಅಥವಾ ಆಟದಲ್ಲಿ ಆರಂಭಿಕ ಸ್ಕೋರ್ ಅನ್ನು ಪಾಸ್ ಮಾಡುವುದು) ಅಥವಾ ಸಮುದಾಯದ ಭಾಗವಹಿಸುವಿಕೆಯನ್ನು ಒಳಗೊಂಡಿರುವ ನಿರ್ದಿಷ್ಟ ಇಥಿರಿಯಮ್ ವಿಳಾಸಕ್ಕೆ ಬದ್ಧವಾಗಿರುವ ವಿಶಿಷ್ಟ ಆನ್-ಚೈನ್ ಗುರುತನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಸೃಷ್ಟಿಸುತ್ತದೆ. + +## ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿನ ಪ್ರಯೋಜನಗಳು {#benefits-of-decentralized-identity} + +1. ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು ಮಾಹಿತಿಯನ್ನು ಗುರುತಿಸುವ ವೈಯಕ್ತಿಕ ನಿಯಂತ್ರಣವನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ. ಕೇಂದ್ರೀಕೃತ ಪ್ರಾಧಿಕಾರಗಳು ಮತ್ತು ಮೂರನೇ ಪಕ್ಷದ ಸೇವೆಗಳನ್ನು ಅವಲಂಬಿಸದೆ ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿಸುವಿಕೆಗಳು ಮತ್ತು ದೃಢೀಕರಣಗಳನ್ನು ಪರಿಶೀಲಿಸಬಹುದು. + +2. ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿನ ಪರಿಹಾರಗಳು ಬಳಕೆದಾರರ ಗುರುತನ್ನು ಪರಿಶೀಲಿಸಲು ಮತ್ತು ನಿರ್ವಹಿಸಲು ವಿಶ್ವಾಸಾರ್ಹ, ತಡೆರಹಿತ ಮತ್ತು ಗೌಪ್ಯತೆ-ರಕ್ಷಿಸುವ ವಿಧಾನವನ್ನು ಸುಗಮಗೊಳಿಸುತ್ತವೆ. + +3. ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು ಬ್ಲಾಕ್ಚೈನ್ ತಂತ್ರಜ್ಞಾನವನ್ನು ಬಳಸಿಕೊಳ್ಳುತ್ತದೆ, ಇದು ವಿವಿಧ ಪಕ್ಷಗಳ ನಡುವೆ ವಿಶ್ವಾಸವನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ ಮತ್ತು ದೃಢೀಕರಣಗಳ ಸಿಂಧುತ್ವವನ್ನು ಸಾಬೀತುಪಡಿಸಲು ಕ್ರಿಪ್ಟೋಗ್ರಾಫಿಕ್ ಖಾತರಿಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ. + +4. ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು ಗುರುತಿನ ಡೇಟಾವನ್ನು ಪೋರ್ಟಬಲ್ ಮಾಡುತ್ತದೆ. ಬಳಕೆದಾರರು ದೃಢೀಕರಣಗಳು ಮತ್ತು ಗುರುತಿಸುವಿಕೆಗಳನ್ನು ಮೊಬೈಲ್ ವ್ಯಾಲೆಟ್‍ನಲ್ಲಿ ಸಂಗ್ರಹಿಸುತ್ತಾರೆ ಮತ್ತು ಅವರ ಆಯ್ಕೆಯ ಯಾವುದೇ ಪಕ್ಷದೊಂದಿಗೆ ಹಂಚಿಕೊಳ್ಳಬಹುದು. ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿಸುವಿಕೆಗಳು ಮತ್ತು ದೃಢೀಕರಣಗಳನ್ನು ನೀಡುವ ಸಂಸ್ಥೆಯ ಡೇಟಾಬೇಸ್‍ನಲ್ಲಿ ಲಾಕ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ. + +5. ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು ಉದಯೋನ್ಮುಖ ಶೂನ್ಯ-ಜ್ಞಾನ ತಂತ್ರಜ್ಞಾನಗಳೊಂದಿಗೆ ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸಬೇಕು, ಅದು ವ್ಯಕ್ತಿಗಳು ಆ ವಿಷಯ ಏನೆಂದು ಬಹಿರಂಗಪಡಿಸದೆ ತಮ್ಮ ಸ್ವಂತ ಅಥವಾ ಏನನ್ನಾದರೂ ಮಾಡಿದ್ದಾರೆ ಎಂದು ಸಾಬೀತುಪಡಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಮತದಾನದಂತಹ ಅಪ್ಲಿಕೇಶನ್‍ಗಳಿಗೆ ವಿಶ್ವಾಸ ಮತ್ತು ಗೌಪ್ಯತೆಯನ್ನು ಸಂಯೋಜಿಸಲು ಇದು ಪ್ರಬಲ ಮಾರ್ಗವಾಗಬಹುದು. + +6. ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು anti-Sybil ಸಿಬಿಲ್ ವಿರೋಧಿ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಒಬ್ಬ ವ್ಯಕ್ತಿಯು ಕೆಲವು ವ್ಯವಸ್ಥೆಯನ್ನು ಆಡಲು ಅಥವಾ ಸ್ಪ್ಯಾಮ್ ಮಾಡಲು ಅನೇಕ ಮಾನವರಂತೆ ನಟಿಸುತ್ತಿರುವಾಗ ಗುರುತಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. + +## ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿನ ಬಳಕೆ-ಪ್ರಕರಣಗಳು {#decentralized-identity-use-cases} + +ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು ಅನೇಕ ಸಂಭಾವ್ಯ ಬಳಕೆ-ಪ್ರಕರಣಗಳನ್ನು ಹೊಂದಿದೆ: + +### 1. ಸಾರ್ವತ್ರಿಕ ಲಾಗಿನ್‍ಗಳು {#universal-dapp-logins} + +ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು ಪಾಸ್‍ವರ್ಡ್ ಆಧಾರಿತ ಲಾಗಿನ್‍ಗಳನ್ನು [ವಿಕೇಂದ್ರೀಕೃತ ದೃಢೀಕರಣದೊಂದಿಗೆ](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/) ಬದಲಾಯಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಸೇವಾ ಪೂರೈಕೆದಾರರು ಬಳಕೆದಾರರಿಗೆ ದೃಢೀಕರಣಗಳನ್ನು ನೀಡಬಹುದು, ಇದನ್ನು ಇಥಿರಿಯಮ್ ವ್ಯಾಲೆಟ್‍ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಬಹುದು. ಆನ್‍ಲೈನ್ ಸಮುದಾಯಕ್ಕೆ ಹೋಲ್ಡರ್ ಗೆ ಪ್ರವೇಶವನ್ನು ನೀಡುವ [NFT](/nft/) ಒಂದು ಉದಾಹರಣೆ ದೃಢೀಕರಣವಾಗಿದೆ. + +[ಇಥಿರಿಯಮ್ ಕಾರ್ಯದೊಂದಿಗೆ ಸೈನ್-ಇನ್](https://login.xyz/) ನಂತರ ಬಳಕೆದಾರರ ಇಥಿರಿಯಮ್ ಖಾತೆಯನ್ನು ದೃಢೀಕರಿಸಲು ಮತ್ತು ಅವರ ಖಾತೆ ವಿಳಾಸದಿಂದ ಅಗತ್ಯ ದೃಢೀಕರಣವನ್ನು ಪಡೆಯಲು ಸರ್ವರ್ಗಳಿಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಇದರರ್ಥ ಬಳಕೆದಾರರು ದೀರ್ಘ ಪಾಸ್‍ವರ್ಡ್‍ಗಳನ್ನು ನೆನಪಿಟ್ಟುಕೊಳ್ಳದೆ ಪ್ಲಾಟ್ಫಾರ್ಮ್‍ಗಳು ಮತ್ತು ವೆಬ್‍ಸೈಟ್‍ಗಳನ್ನು ಪ್ರವೇಶಿಸಬಹುದು ಮತ್ತು ಬಳಕೆದಾರರಿಗೆ ಆನ್‍ಲೈನ್ ಅನುಭವವನ್ನು ಸುಧಾರಿಸುತ್ತದೆ. + +### 2. KYC ದೃಢೀಕರಣ {#kyc-authentication} + +ಅನೇಕ ಆನ್‍ಲೈನ್ ಸೇವೆಗಳನ್ನು ಬಳಸಲು ವ್ಯಕ್ತಿಗಳು ಚಾಲನಾ ಪರವಾನಗಿ ಅಥವಾ ರಾಷ್ಟ್ರೀಯ ಪಾಸ್ ಪೋರ್ಟ್‍ನಂತಹ ದೃಢೀಕರಣಗಳು ಮತ್ತು ರುಜುವಾತುಗಳನ್ನು ಒದಗಿಸಬೇಕಾಗುತ್ತದೆ. ಆದರೆ ಈ ವಿಧಾನವು ಸಮಸ್ಯಾತ್ಮಕವಾಗಿದೆ ಏಕೆಂದರೆ ಖಾಸಗಿ ಬಳಕೆದಾರರ ಮಾಹಿತಿಯು ರಾಜಿಯಾಗಬಹುದು ಮತ್ತು ಸೇವಾ ಪೂರೈಕೆದಾರರು ದೃಢೀಕರಣದ ಸತ್ಯಾಸತ್ಯತೆಯನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. + +ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು ಕಂಪನಿಗಳಿಗೆ ಸಾಂಪ್ರದಾಯಿಕ [ನೋ-ಯುವರ್-ಕಸ್ಟಮರ್ (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಬಿಟ್ಟುಬಿಡಲು ಮತ್ತು ಪರಿಶೀಲಿಸಬಹುದಾದ ರುಜುವಾತುಗಳ ಮೂಲಕ ಬಳಕೆದಾರರ ಗುರುತುಗಳನ್ನು ದೃಢೀಕರಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಇದು ಗುರುತಿನ ನಿರ್ವಹಣೆಯ ವೆಚ್ಚವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ನಕಲಿ ದಾಖಲೆಗಳ ಬಳಕೆಯನ್ನು ತಡೆಯುತ್ತದೆ. + +### 3. ಮತದಾನ ಮತ್ತು ಆನ್‍ಲೈನ್ ಸಮುದಾಯಗಳು {#voting-and-online-communities} + +ಆನ್‍ಲೈನ್ ಮತದಾನ ಮತ್ತು ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮಗಳು ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿನ ಎರಡು ಹೊಸ ಅಪ್ಲಿಕೇಶನ್‍ಗಳಾಗಿವೆ. ಆನ್‍ಲೈನ್ ಮತದಾನ ಯೋಜನೆಗಳು ಕುಶಲತೆಗೆ ಒಳಗಾಗುತ್ತವೆ, ವಿಶೇಷವಾಗಿ ದುರುದ್ದೇಶಪೂರಿತ ನಟರು ಮತ ಚಲಾಯಿಸಲು ಸುಳ್ಳು ಗುರುತುಗಳನ್ನು ರಚಿಸಿದರೆ. ಆನ್-ಚೈನ್ ದೃಢೀಕರಣಗಳನ್ನು ಪ್ರಸ್ತುತಪಡಿಸಲು ವ್ಯಕ್ತಿಗಳನ್ನು ಕೇಳುವುದರಿಂದ ಆನ‌ಲೈನ್ ಮತದಾನ ಪ್ರಕ್ರಿಯೆಗಳ ಸಮಗ್ರತೆಯನ್ನು ಸುಧಾರಿಸಬಹುದು. + +ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು ನಕಲಿ ಖಾತೆಗಳಿಂದ ಮುಕ್ತವಾದ ಆನ್‍ಲೈನ್ ಸಮುದಾಯಗಳನ್ನು ರಚಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಪ್ರತಿಯೊಬ್ಬ ಬಳಕೆದಾರರು ಇಥಿರಿಯಮ್ ನೇಮ್ ಸರ್ವೀಸ್‍ನಂತಹ ಆನ್-ಚೈನ್ ಗುರುತಿನ ವ್ಯವಸ್ಥೆಯನ್ನು ಬಳಸಿಕೊಂಡು ತಮ್ಮ ಗುರುತನ್ನು ದೃಢೀಕರಿಸಬೇಕಾಗಬಹುದು, ಇದು ಬಾಟ್‍ಗಳ ಸಾಧ್ಯತೆಯನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ. + +### 4. ಸಿಬಿಲ್ ವಿರೋಧಿ ರಕ್ಷಣೆ {#sybil-protection} + +ಸಿಬಿಲ್ ದಾಳಿಗಳು ವೈಯಕ್ತಿಕ ಮಾನವರು ತಮ್ಮ ಪ್ರಭಾವವನ್ನು ಹೆಚ್ಚಿಸಲು ತಾವು ಅನೇಕ ಜನರು ಎಂದು ಭಾವಿಸಿ ವ್ಯವಸ್ಥೆಯನ್ನು ಮೋಸಗೊಳಿಸುವುದನ್ನು ಸೂಚಿಸುತ್ತದೆ. [ಕ್ವಾಡ್ರಾಟಿಕ್ ಮತದಾನವನ್ನು](https://www.radicalxchange.org/concepts/plural-voting/) ಬಳಸುವ [ಅನುದಾನ-ನೀಡುವ ಅಪ್ಲಿಕೇಶನ್ಗಳು](https://gitcoin.co/grants/) ಈ ಸಿಬಿಲ್ ದಾಳಿಗೆ ಗುರಿಯಾಗುತ್ತವೆ ಏಕೆಂದರೆ ಹೆಚ್ಚಿನ ವ್ಯಕ್ತಿಗಳು ಅದಕ್ಕೆ ಮತ ಚಲಾಯಿಸಿದಾಗ ಅನುದಾನದ ಮೌಲ್ಯವು ಹೆಚ್ಚಾಗುತ್ತದೆ, ಬಳಕೆದಾರರು ತಮ್ಮ ಕೊಡುಗೆಗಳನ್ನು ಅನೇಕ ಗುರುತುಗಳಲ್ಲಿ ವಿಭಜಿಸಲು ಪ್ರೋತ್ಸಾಹಿಸುತ್ತದೆ. ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತುಗಳು ನಿರ್ದಿಷ್ಟ ಖಾಸಗಿ ಮಾಹಿತಿಯನ್ನು ಬಹಿರಂಗಪಡಿಸದೆಯೇ ಅವರು ನಿಜವಾಗಿಯೂ ಮಾನವರು ಎಂದು ಸಾಬೀತುಪಡಿಸಲು ಪ್ರತಿಯೊಬ್ಬ ಸ್ಪರ್ಧಿಯ ಮೇಲೆ ಹೊರೆಯನ್ನು ಹೆಚ್ಚಿಸುವ ಮೂಲಕ ಇದನ್ನು ತಡೆಗಟ್ಟಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. + +## ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತನ್ನು ಬಳಸಿ {#use-decentralized-identity} + +ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿನ ಪರಿಹಾರಗಳಿಗೆ ಅಡಿಪಾಯವಾಗಿ ಇಥಿರಿಯಮ್ ಅನ್ನು ಬಳಸುವ ಅನೇಕ ಮಹತ್ವಾಕಾಂಕ್ಷೆಯ ಯೋಜನೆಗಳಿವೆ: + +- **[ಇಥಿರಿಯಮ್ ನೇಮ್ ಸರ್ವಿಸ್ (ENS)](https://ens.domains/)** - _ಇಥಿರಿಯಮ್ ವ್ಯಾಲೆಟ್ ವಿಳಾಸಗಳು, ವಿಷಯ ಹ್ಯಾಶ್‍ಗಳು ಮತ್ತು ಮೆಟಾಡೇಟಾದಂತಹ ಆನ್-ಚೈನ್, ಯಂತ್ರ-ಓದಬಹುದಾದ ಗುರುತಿಸುವಿಕೆಗಳಿಗೆ ವಿಕೇಂದ್ರೀಕೃತ ನಾಮಕರಣ ವ್ಯವಸ್ಥೆ_ +- **[SpruceID](https://www.spruceid.com/)** - _ಮೂರನೇ ಪಕ್ಷದ ಸೇವೆಗಳನ್ನು ಅವಲಂಬಿಸುವ ಬದಲು ಇಥಿರಿಯಮ್ ಖಾತೆಗಳು ಮತ್ತು ENS ಪ್ರೊಫೈಲ್‍ಗಳೊಂದಿಗೆ ಡಿಜಿಟಲ್ ಗುರುತನ್ನು ನಿಯಂತ್ರಿಸಲು ಬಳಕೆದಾರರಿಗೆ ಅನುವು ಮಾಡಿಕೊಡುವ ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿನ ಯೋಜನೆ._ +- **[ಇಥಿರಿಯಮ್ ದೃಢೀಕರಣ ಸೇವೆ (ENS)](https://attest.sh/)** - _ ಯಾವುದೇ ವಿಷಯದ ಬಗ್ಗೆ ಆನ್-ಚೈನ್ ಅಥವಾ ಆಫ್-ಚೈನ್ ದೃಢೀಕರಣಗಳನ್ನು ಮಾಡಲು ವಿಕೇಂದ್ರೀಕೃತ ಲೆಡ್ಜರ್ / ಪ್ರೋಟೋಕಾಲ್._ +- **[ಮಾನವೀಯತೆಯ ಪುರಾವೆ](https://www.proofofhumanity.id)** - _ಮಾನವೀಯತೆಯ ಪುರಾವೆ (ಅಥವಾ PoH) ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ನಿರ್ಮಿಸಲಾದ ಸಾಮಾಜಿಕ ಗುರುತಿನ ಪರಿಶೀಲನಾ ವ್ಯವಸ್ಥೆಯಾಗಿದೆ._ +- **[BrightID](https://www.brightid.org/)** - _ಸಾಮಾಜಿಕ ಗ್ರಾಫ್‍ನ ರಚನೆ ಮತ್ತು ವಿಶ್ಲೇಷಣೆಯ ಮೂಲಕ ಗುರುತಿನ ಪರಿಶೀಲನೆಯನ್ನು ಸುಧಾರಿಸಲು ಪ್ರಯತ್ನಿಸುವ ವಿಕೇಂದ್ರೀಕೃತ, ಮುಕ್ತ-ಮೂಲ ಸಾಮಾಜಿಕ ಗುರುತಿನ ನೆಟ್‍ವರ್ಕ್._ +- **[ಪ್ರೂಫ್-ಆಫ್-ಪರ್ಸನಾಲಿಟಿ ಪಾಸ್‍ಪೋರ್ಟ್](https://proofofpersonhood.com/)** - _ವಿಕೇಂದ್ರೀಕೃತ ಡಿಜಿಟಲ್ ಗುರುತಿನ ಅಗ್ರಿಗೇಟರ್._ + +## Further reading {#further-reading} + +### ಲೇಖನಗಳು {#articles} + +- [ಬ್ಲಾಕ್‍ಚೈನ್ ಬಳಕೆಯ ಪ್ರಕರಣಗಳು: ಡಿಜಿಟಲ್ ಗುರುತಿನಲ್ಲಿ ಬ್ಲಾಕ್‍ಚೈನ್](https://consensys.net/blockchain-use-cases/digital-identity/)— _ConsenSys_ +- [ಏನಿದು ಇಥಿರಿಯಮ್ ERC725? ಬ್ಲಾಕ್‍ಚೈನ್‍ನಲ್ಲಿ ಸ್ವಯಂ-ಸಾರ್ವಭೌಮ ಗುರುತಿನ ನಿರ್ವಹಣೆ](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) - _ಸ್ಯಾಮ್ ಟೌನ್_ +- [ಡಿಜಿಟಲ್ ಗುರುತಿನ ಸಮಸ್ಯೆಯನ್ನು ಬ್ಲಾಕ್‍ಚೈನ್ ಹೇಗೆ ಪರಿಹರಿಸಬಹುದು](https://time.com/6142810/proof-of-humanity/) - _ಆಂಡ್ರ್ಯೂ ಆರ್_ +- [ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು ಎಂದರೇನು ಮತ್ತು ನೀವು ಏಕೆ ಕಾಳಜಿ ವಹಿಸಬೇಕು?](https://web3.hashnode.com/what-is-decentralized-identity) - _ಎಮ್ಯಾನುಯೆಲ್ ಅವೊಸಿಕಾ_ + +### Videos {#videos} + +- [ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು (ಬೋನಸ್ ಲೈವ್ ಸ್ಟ್ರೀಮ್ ಸೆಷನ್)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) - _ಆಂಡ್ರಿಯಾಸ್ ಆಂಟೊನೊಪೊಲಸ್ ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿನ ಬಗ್ಗೆ ಉತ್ತಮ ವಿವರಿಸುವ ವೀಡಿಯೊ_ +- [Ceramic, IDX, React, ಮತ್ತು 3ID ಕನೆಕ್ಟ್ ನೊಂದಿಗೆ ಇಥಿರಿಯಮ್ ಮತ್ತು ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿನೊಂದಿಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ](https://www.youtube.com/watch?v=t9gWZYJxk7c) - _ನಾಡರ್ ಡಾಬಿಟ್ ಅವರ ಎಥೆರಿಯಮ್ ವ್ಯಾಲೆಟ್ ಬಳಸಿ ಬಳಕೆದಾರರ ಪ್ರೊಫೈಲ್ ಅನ್ನು ರಚಿಸಲು, ಓದಲು ಮತ್ತು ನವೀಕರಿಸಲು ಗುರುತಿನ ನಿರ್ವಹಣಾ ವ್ಯವಸ್ಥೆಯನ್ನು ನಿರ್ಮಿಸುವ ಬಗ್ಗೆ ಯೂಟ್ಯೂಬ್ ಟ್ಯುಟೋರಿಯಲ್_ +- [BrightID - ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು](https://www.youtube.com/watch?v=D3DbMFYGRoM) - _ಇಥಿರಿಯಮ್‍ಗೆ ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿನ ಪರಿಹಾರವಾದ BrightID ಅನ್ನು ಚರ್ಚಿಸುವ ಬ್ಯಾಂಕ್ ಲೆಸ್ ಪಾಡ್ ಕಾಸ್ಟ್ ಸಂಚಿಕೆ_ +- [ಆಫ್ ಚೈನ್ ಇಂಟರ್ನೆಟ್: ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು&; ಪರಿಶೀಲಿಸಬಹುದಾದ ರುಜುವಾತುಗಳು](https://www.youtube.com/watch?v=EZ_Bb6j87mg)— Evin McMullen ಅವರ EthDenver 2022 2022 ಪ್ರಸ್ತುತಿ + +### ಸಮುದಾಯಗಳು {#communities} + +- [GitHub ನಲ್ಲಿ ERC-725 ಮೈತ್ರಿ](https://github.com/erc725alliance) - _ ಇಥಿರಿಯಮ್ ಬ್ಲಾಕ್‍ಚೈನ್‍ನಲ್ಲಿ ಗುರುತನ್ನು ನಿರ್ವಹಿಸಲು ERC725 ಮಾನದಂಡದ ಬೆಂಬಲಿಗರು_ +- [SpruceID Discord ಸರ್ವರ್](https://discord.com/invite/Sf9tSFzrnt) - _ಇಥಿರಿಯಮ್ ನೊಂದಿಗೆ ಸೈನ್-ಇನ್ ನಲ್ಲಿ ಕೆಲಸ ಮಾಡುವ ಉತ್ಸಾಹಿಗಳು ಮತ್ತು ಡೆವಲಪರ್ ಗಳಿಗೆ ಸಮುದಾಯ_ +- [ವೆರಾಮೊ ಲ್ಯಾಬ್ಸ್](https://discord.gg/sYBUXpACh4) - _ಅಪ್ಲಿಕೇಶನ್‍ಗಳಿಗಾಗಿ ಪರಿಶೀಲಿಸಬಹುದಾದ ಡೇಟಾಕ್ಕಾಗಿ ಚೌಕಟ್ಟನ್ನು ನಿರ್ಮಿಸಲು ಕೊಡುಗೆ ನೀಡುವ ಡೆವಲಪರ್ ಗಳ ಸಮುದಾಯ_ diff --git a/public/content/translations/kn/defi/index.md b/public/content/translations/kn/defi/index.md new file mode 100644 index 00000000000..8705499cc7f --- /dev/null +++ b/public/content/translations/kn/defi/index.md @@ -0,0 +1,351 @@ +--- +title: ವಿಕೇಂದ್ರೀಕರಿತ ಹಣಕಾಸು (DeFi) +description: ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ DeFi ಯ ಅವಲೋಕನ +lang: kn +template: use-cases +emoji: ":money_with_wings:" +image: /use-cases/defi.png +alt: ಲೆಗೊ ಇಟ್ಟಿಗೆಗಳಿಂದ ಮಾಡಿದ Eth ಲೋಗೋ. +sidebarDepth: 2 +summaryPoint1: ಪ್ರಸ್ತುತ ಹಣಕಾಸು ವ್ಯವಸ್ಥೆಗೆ ಜಾಗತಿಕ, ಮುಕ್ತ ಪರ್ಯಾಯ. +summaryPoint2: ಸಾಲ ಪಡೆಯಲು, ಉಳಿಸಲು, ಹೂಡಿಕೆ ಮಾಡಲು, ವ್ಯಾಪಾರ ಮಾಡಲು ಮತ್ತು ಹೆಚ್ಚಿನದನ್ನು ನಿಮಗೆ ಅನುಮತಿಸುವ ಉತ್ಪನ್ನಗಳು. +summaryPoint3: ಯಾರು ಬೇಕಾದರೂ ಪ್ರೋಗ್ರಾಂ ಮಾಡಬಹುದಾದ ಓಪನ್ ಸೋರ್ಸ್ ತಂತ್ರಜ್ಞಾನದ ಆಧಾರದ ಮೇಲೆ. +--- + +DeFi ಎಂಬುದು ಇಂಟರ್ನೆಟ್ ಯುಗಕ್ಕಾಗಿ ನಿರ್ಮಿಸಲಾದ ಮುಕ್ತ ಮತ್ತು ಜಾಗತಿಕ ಹಣಕಾಸು ವ್ಯವಸ್ಥೆಯಾಗಿದೆ - ಅಪಾರದರ್ಶಕ, ಬಿಗಿಯಾಗಿ ನಿಯಂತ್ರಿಸಲ್ಪಟ್ಟ ಮತ್ತು ದಶಕಗಳಷ್ಟು ಹಳೆಯ ಮೂಲಸೌಕರ್ಯ ಮತ್ತು ಪ್ರಕ್ರಿಯೆಗಳಿಂದ ಒಟ್ಟಿಗೆ ಹಿಡಿದಿಡಲ್ಪಟ್ಟ ವ್ಯವಸ್ಥೆಗೆ ಪರ್ಯಾಯವಾಗಿದೆ. ಇದು ನಿಮ್ಮ ಹಣದ ಮೇಲೆ ನಿಯಂತ್ರಣ ಮತ್ತು ಗೋಚರತೆಯನ್ನು ನೀಡುತ್ತದೆ. ಇದು ಜಾಗತಿಕ ಮಾರುಕಟ್ಟೆಗಳಿಗೆ ಮತ್ತು ನಿಮ್ಮ ಸ್ಥಳೀಯ ಕರೆನ್ಸಿ ಅಥವಾ ಬ್ಯಾಂಕಿಂಗ್ ಆಯ್ಕೆಗಳಿಗೆ ಪರ್ಯಾಯಗಳಿಗೆ ನಿಮಗೆ ಮಾನ್ಯತೆ ನೀಡುತ್ತದೆ. DeFi ಉತ್ಪನ್ನಗಳು ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕ ಹೊಂದಿರುವ ಯಾರಿಗಾದರೂ ಹಣಕಾಸು ಸೇವೆಗಳನ್ನು ತೆರೆಯುತ್ತವೆ ಮತ್ತು ಅವು ಹೆಚ್ಚಾಗಿ ತಮ್ಮ ಬಳಕೆದಾರರ ಒಡೆತನದಲ್ಲಿದೆ ಮತ್ತು ನಿರ್ವಹಿಸಲ್ಪಡುತ್ತವೆ. ಇಲ್ಲಿಯವರೆಗೆ ಹತ್ತಾರು ಶತಕೋಟಿ ಡಾಲರ್ ಮೌಲ್ಯದ ಕ್ರಿಪ್ಟೋ DeFi ಅಪ್ಲಿಕೇಶನ್‍ಗಳ ಮೂಲಕ ಹರಿದಿದೆ ಮತ್ತು ಅದು ಪ್ರತಿದಿನ ಬೆಳೆಯುತ್ತಿದೆ. + +## DeFi ಎಂದರೇನು? {#what-is-defi} + +DeFi ಎಂಬುದು ಹಣಕಾಸು ಉತ್ಪನ್ನಗಳು ಮತ್ತು ಸೇವೆಗಳ ಸಾಮೂಹಿಕ ಪದವಾಗಿದ್ದು, ಇಥಿರಿಯಮ್ ಅನ್ನು ಬಳಸಬಹುದಾದ ಯಾರಿಗಾದರೂ ಪ್ರವೇಶಿಸಬಹುದು - ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕ ಹೊಂದಿರುವ ಯಾರಿಗಾದರೂ. DeFi ನೊಂದಿಗೆ, ಮಾರುಕಟ್ಟೆಗಳು ಯಾವಾಗಲೂ ತೆರೆದಿರುತ್ತವೆ ಮತ್ತು ಪಾವತಿಗಳನ್ನು ನಿರ್ಬಂಧಿಸುವ ಅಥವಾ ನಿಮಗೆ ಯಾವುದಕ್ಕೂ ಪ್ರವೇಶವನ್ನು ನಿರಾಕರಿಸುವ ಯಾವುದೇ ಕೇಂದ್ರೀಕೃತ ಪ್ರಾಧಿಕಾರಗಳಿಲ್ಲ. ಈ ಹಿಂದೆ ನಿಧಾನವಾಗಿದ್ದ ಮತ್ತು ಮಾನವ ದೋಷದ ಅಪಾಯದಲ್ಲಿದ್ದ ಸೇವೆಗಳು ಈಗ ಸ್ವಯಂಚಾಲಿತ ಮತ್ತು ಸುರಕ್ಷಿತವಾಗಿವೆ, ಏಕೆಂದರೆ ಅವುಗಳನ್ನು ಯಾರಾದರೂ ಪರಿಶೀಲಿಸಬಹುದು ಮತ್ತು ಪರಿಶೀಲಿಸಬಹುದು. + +ಅಲ್ಲಿ ಪ್ರವರ್ಧಮಾನಕ್ಕೆ ಬರುತ್ತಿರುವ ಕ್ರಿಪ್ಟೋ ಆರ್ಥಿಕತೆ ಇದೆ, ಅಲ್ಲಿ ನೀವು ಸಾಲ ನೀಡಬಹುದು, ಸಾಲ ಪಡೆಯಬಹುದು, Long / short, ಬಡ್ಡಿಯನ್ನು ಗಳಿಸಬಹುದು ಮತ್ತು ಹೆಚ್ಚಿನದನ್ನು ಮಾಡಬಹುದು. ಕ್ರಿಪ್ಟೋ-ಬುದ್ಧಿವಂತ ಅರ್ಜೆಂಟೀನಾದವರು ಹಣದುಬ್ಬರದಿಂದ ಪಾರಾಗಲು DeFi ಅನ್ನು ಬಳಸಿದ್ದಾರೆ. ಕಂಪನಿಗಳು ತಮ್ಮ ಉದ್ಯೋಗಿಗಳಿಗೆ ತಮ್ಮ ವೇತನವನ್ನು ನೈಜ ಸಮಯದಲ್ಲಿ ಸ್ಟ್ರೀಮ್ ಮಾಡಲು ಪ್ರಾರಂಭಿಸಿವೆ. ಕೆಲವು ಜನರು ಯಾವುದೇ ವೈಯಕ್ತಿಕ ಗುರುತಿನ ಅಗತ್ಯವಿಲ್ಲದೆ ಲಕ್ಷಾಂತರ ಡಾಲರ್ ಸಾಲವನ್ನು ತೆಗೆದುಕೊಂಡು ಪಾವತಿಸಿದ್ದಾರೆ. + + + +## DeFi Vs ಸಾಂಪ್ರದಾಯಿಕ ಹಣಕಾಸು {#defi-vs-tradfi} + +DeFi ನ ಸಾಮರ್ಥ್ಯವನ್ನು ನೋಡುವ ಅತ್ಯುತ್ತಮ ಮಾರ್ಗವೆಂದರೆ ಇಂದು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಸಮಸ್ಯೆಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು. + +- ಕೆಲವು ಜನರಿಗೆ ಬ್ಯಾಂಕ್ ಖಾತೆಯನ್ನು ಸ್ಥಾಪಿಸಲು ಅಥವಾ ಹಣಕಾಸು ಸೇವೆಗಳನ್ನು ಬಳಸಲು ಪ್ರವೇಶವನ್ನು ನೀಡಲಾಗುವುದಿಲ್ಲ. +- ಹಣಕಾಸು ಸೇವೆಗಳ ಲಭ್ಯತೆಯ ಕೊರತೆಯು ಜನರನ್ನು ಉದ್ಯೋಗದಿಂದ ದೂರವಿರಿಸುತ್ತದೆ. +- ಹಣಕಾಸು ಸೇವೆಗಳು ನಿಮಗೆ ಹಣ ಪಡೆಯುವುದನ್ನು ತಡೆಯಬಹುದು. +- ಹಣಕಾಸು ಸೇವೆಗಳ ಗುಪ್ತ ಶುಲ್ಕವೆಂದರೆ ನಿಮ್ಮ ವೈಯಕ್ತಿಕ ಡೇಟಾ. +- ಸರ್ಕಾರಗಳು ಮತ್ತು ಕೇಂದ್ರೀಕೃತ ಸಂಸ್ಥೆಗಳು ಇಚ್ಛಾನುಸಾರ ಮಾರುಕಟ್ಟೆಗಳನ್ನು ಮುಚ್ಚಬಹುದು. +- ವ್ಯಾಪಾರದ ಸಮಯವು ಸಾಮಾನ್ಯವಾಗಿ ನಿರ್ದಿಷ್ಟ ಸಮಯ ವಲಯದ ವ್ಯವಹಾರ ಸಮಯಕ್ಕೆ ಸೀಮಿತವಾಗಿರುತ್ತದೆ. +- ಆಂತರಿಕ ಮಾನವ ಪ್ರಕ್ರಿಯೆಗಳಿಂದಾಗಿ ಹಣ ವರ್ಗಾವಣೆಗೆ ದಿನಗಳು ತೆಗೆದುಕೊಳ್ಳಬಹುದು. +- ಹಣಕಾಸು ಸೇವೆಗಳಿಗೆ ಪ್ರೀಮಿಯಂ ಇದೆ ಏಕೆಂದರೆ ಮಧ್ಯವರ್ತಿ ಸಂಸ್ಥೆಗಳಿಗೆ ಅವುಗಳ ಕಡಿತದ ಅಗತ್ಯವಿದೆ. + +### ಒಂದು ಹೋಲಿಕೆ {#defi-comparison} + +| DeFi | ಸಾಂಪ್ರದಾಯಿಕ ಹಣಕಾಸು | +| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| ನೀವು ನಿಮ್ಮ ಹಣವನ್ನು ಹಿಡಿದಿದ್ದೀರಿ. | ನಿಮ್ಮ ಹಣವನ್ನು ಕಂಪನಿಗಳು ಹೊಂದಿವೆ. | +| ನಿಮ್ಮ ಹಣ ಎಲ್ಲಿಗೆ ಹೋಗುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಹೇಗೆ ಖರ್ಚು ಮಾಡಲಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ನೀವು ನಿಯಂತ್ರಿಸುತ್ತೀರಿ. | ಅಪಾಯಕಾರಿ ಸಾಲಗಾರರಿಗೆ ಸಾಲ ನೀಡುವಂತಹ ನಿಮ್ಮ ಹಣವನ್ನು ದುರುಪಯೋಗಪಡಿಸಿಕೊಳ್ಳದಂತೆ ನೀವು ಕಂಪನಿಗಳನ್ನು ನಂಬಬೇಕು. | +| ಹಣದ ವರ್ಗಾವಣೆ ನಿಮಿಷಗಳಲ್ಲಿ ನಡೆಯುತ್ತದೆ. | ಹಸ್ತಚಾಲಿತ ಪ್ರಕ್ರಿಯೆಗಳಿಂದಾಗಿ ಪಾವತಿಗಳು ದಿನಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು. | +| ವಹಿವಾಟು ಚಟುವಟಿಕೆಯು ಗುಪ್ತನಾಮವಾಗಿದೆ. | ಹಣಕಾಸಿನ ಚಟುವಟಿಕೆಯು ನಿಮ್ಮ ಗುರುತಿನೊಂದಿಗೆ ಬಿಗಿಯಾಗಿ ಜೋಡಿಸಲ್ಪಟ್ಟಿದೆ. | +| DeFi ಯಾರಿಗಾದರೂ ಮುಕ್ತವಾಗಿದೆ. | ಹಣಕಾಸು ಸೇವೆಗಳನ್ನು ಬಳಸಲು ನೀವು ಅರ್ಜಿ ಸಲ್ಲಿಸಬೇಕು. | +| ಮಾರುಕಟ್ಟೆಗಳು ಯಾವಾಗಲೂ ತೆರೆದಿರುತ್ತವೆ. | ಉದ್ಯೋಗಿಗಳಿಗೆ ವಿರಾಮ ಬೇಕಾಗಿರುವುದರಿಂದ ಮಾರುಕಟ್ಟೆಗಳು ಮುಚ್ಚಲ್ಪಡುತ್ತವೆ. | +| ಇದು ಪಾರದರ್ಶಕತೆಯ ಮೇಲೆ ನಿರ್ಮಿಸಲಾಗಿದೆ - ಯಾರಾದರೂ ಉತ್ಪನ್ನದ ಡೇಟಾವನ್ನು ನೋಡಬಹುದು ಮತ್ತು ಸಿಸ್ಟಮ್ ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ಪರಿಶೀಲಿಸಬಹುದು. | ಹಣಕಾಸು ಸಂಸ್ಥೆಗಳು ಮುಚ್ಚಿದ ಪುಸ್ತಕಗಳಾಗಿವೆ: ನೀವು ಅವರ ಸಾಲದ ಇತಿಹಾಸ, ಅವರ ನಿರ್ವಹಿಸಿದ ಸ್ವತ್ತುಗಳ ದಾಖಲೆ ಮತ್ತು ಇತ್ಯಾದಿಗಳನ್ನು ನೋಡಲು ಕೇಳಲು ಸಾಧ್ಯವಿಲ್ಲ. | + + + DeFi ಅಪ್ಲಿಕೇಶನ್‍ಗಳನ್ನು ಅನ್ವೇಷಿಸಿ + + +## ಇದು ಬಿಟ್‍ಕಾಯಿನ್ ನೊಂದಿಗೆ ಪ್ರಾರಂಭವಾಯಿತು... {#bitcoin} + +ಅನೇಕ ರೀತಿಯಲ್ಲಿ ಬಿಟ್‍ಕಾಯಿನ್ ಮೊದಲ DeFi ಅಪ್ಲಿಕೇಶನ್ ಆಗಿತ್ತು. ಬಿಟ್‍ಕಾಯಿನ್ ನಿಮಗೆ ನಿಜವಾಗಿಯೂ ಮೌಲ್ಯವನ್ನು ಹೊಂದಲು ಮತ್ತು ನಿಯಂತ್ರಿಸಲು ಮತ್ತು ಅದನ್ನು ಪ್ರಪಂಚದಾದ್ಯಂತ ಎಲ್ಲಿಯಾದರೂ ಕಳುಹಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಪರಸ್ಪರ ನಂಬದ ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಜನರಿಗೆ ವಿಶ್ವಾಸಾರ್ಹ ಮಧ್ಯವರ್ತಿಯ ಅಗತ್ಯವಿಲ್ಲದೆ ಖಾತೆಗಳ ಲೆಡ್ಜರ್ನಲ್ಲಿ ಒಪ್ಪಲು ಒಂದು ಮಾರ್ಗವನ್ನು ಒದಗಿಸುವ ಮೂಲಕ ಇದು ಇದನ್ನು ಮಾಡುತ್ತದೆ. ಬಿಟ್‍ಕಾಯಿನ್ ಯಾರಿಗೂ ಮುಕ್ತವಾಗಿದೆ ಮತ್ತು ಅದರ ನಿಯಮಗಳನ್ನು ಬದಲಾಯಿಸುವ ಅಧಿಕಾರ ಯಾರಿಗೂ ಇಲ್ಲ. ಬಿಟ್‍ಕಾಯಿನ್ ನ ನಿಯಮಗಳು, ಅದರ ಕೊರತೆ ಮತ್ತು ಅದರ ಮುಕ್ತತೆಯಂತೆ, ತಂತ್ರಜ್ಞಾನದಲ್ಲಿ ಬರೆಯಲ್ಪಟ್ಟಿವೆ. ಇದು ಸಾಂಪ್ರದಾಯಿಕ ಹಣಕಾಸುನಂತೆ ಅಲ್ಲ, ಅಲ್ಲಿ ಸರ್ಕಾರಗಳು ನಿಮ್ಮ ಉಳಿತಾಯವನ್ನು ಅಪಮೌಲ್ಯಗೊಳಿಸುವ ಹಣವನ್ನು ಮುದ್ರಿಸಬಹುದು ಮತ್ತು ಕಂಪನಿಗಳು ಮಾರುಕಟ್ಟೆಗಳನ್ನು ಮುಚ್ಚಬಹುದು. + +ಇಥಿರಿಯಮ್ ಇದನ್ನು ನಿರ್ಮಿಸುತ್ತದೆ. ಬಿಟ್‍ಕಾಯಿನ್ ನಂತೆ, ನಿಯಮಗಳು ನಿಮ್ಮ ಮೇಲೆ ಬದಲಾಗಲು ಸಾಧ್ಯವಿಲ್ಲ ಮತ್ತು ಎಲ್ಲರಿಗೂ ಪ್ರವೇಶವಿದೆ. ಆದರೆ ಇದು [ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳನ್ನು](/glossary#smart-contract) ಬಳಸಿಕೊಂಡು ಈ ಡಿಜಿಟಲ್ ಹಣವನ್ನು ಪ್ರೋಗ್ರಾಮ್ ಮಾಡಬಹುದು, ಆದ್ದರಿಂದ ನೀವು ಮೌಲ್ಯವನ್ನು ಸಂಗ್ರಹಿಸುವುದು ಮತ್ತು ಕಳುಹಿಸುವುದನ್ನು ಮೀರಿ ಹೋಗಬಹುದು. + + + +## ಪ್ರೋಗ್ರಾಂ ಮಾಡಬಹುದಾದ ಹಣ {#programmable-money} + +ಇದು ವಿಚಿತ್ರವಾಗಿ ತೋರುತ್ತದೆ... "ನಾನು ನನ್ನ ಹಣವನ್ನು ಏಕೆ ಪ್ರೋಗ್ರಾಂ ಮಾಡಲು ಬಯಸುತ್ತೇನೆ"? ಆದಾಗ್ಯೂ, ಇದು ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ಟೋಕನ್‍ಗಳ ಡೀಫಾಲ್ಟ್ ವೈಶಿಷ್ಟ್ಯವಾಗಿದೆ. ಪಾವತಿಗಳಲ್ಲಿ ಯಾರು ಬೇಕಾದರೂ ತರ್ಕವನ್ನು ಪ್ರೋಗ್ರಾಂ ಮಾಡಬಹುದು. ಆದ್ದರಿಂದ ನೀವು ಹಣಕಾಸು ಸಂಸ್ಥೆಗಳು ಒದಗಿಸುವ ಸೇವೆಗಳೊಂದಿಗೆ ಬೆರೆತ ಬಿಟ್‍ಕಾಯಿನ್ ನ ನಿಯಂತ್ರಣ ಮತ್ತು ಭದ್ರತೆಯನ್ನು ಪಡೆಯಬಹುದು. ಸಾಲ ನೀಡುವುದು ಮತ್ತು ಸಾಲ ಪಡೆಯುವುದು, ಪಾವತಿಗಳನ್ನು ನಿಗದಿಪಡಿಸುವುದು, ಸೂಚ್ಯಂಕ ನಿಧಿಗಳಲ್ಲಿ ಹೂಡಿಕೆ ಮಾಡುವುದು ಮತ್ತು ಹೆಚ್ಚಿನವುಗಳಂತಹ ಬಿಟ್‍ಕಾಯಿನ್ ನೊಂದಿಗೆ ನೀವು ಮಾಡಲು ಸಾಧ್ಯವಾಗದ ಕ್ರಿಪ್ಟೋಕರೆನ್ಸಿಗಳೊಂದಿಗೆ ಕೆಲಸಗಳನ್ನು ಮಾಡಲು ಇದು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. + + +
ನೀವು ಇಥಿರಿಯಮ್‍ಗೆ ಹೊಸಬರಾಗಿದ್ದೀರಾ ಎಂದು ಪ್ರಯತ್ನಿಸಲು DeFi ಅಪ್ಲಿಕೇಶನ್‍ಗಳಿಗಾಗಿ ನಮ್ಮ ಸಲಹೆಗಳನ್ನು ಅನ್ವೇಷಿಸಿ.
+ + DeFi ಅಪ್ಲಿಕೇಶನ್‍ಗಳನ್ನು ಅನ್ವೇಷಿಸಿ + +
+ +## 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/) ಅಗತ್ಯವಿದೆ. + + + ಪಾವತಿ dapps ನೋಡಿ + + +#### ಪ್ರಪಂಚದಾದ್ಯಂತ ಹಣವನ್ನು ಸ್ಟ್ರೀಮ್ ಮಾಡಿ... {#stream-money} + +ನೀವು ಇಥಿರಿಯಮ್ ಮೂಲಕವೂ ಹಣವನ್ನು ಸ್ಟ್ರೀಮ್ ಮಾಡಬಹುದು. ಇದು ಯಾರಿಗಾದರೂ ಸೆಕೆಂಡಿಗೆ ಅವರ ಸಂಬಳವನ್ನು ಪಾವತಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ, ಅವರಿಗೆ ಅಗತ್ಯವಿರುವಾಗಲೆಲ್ಲಾ ಅವರ ಹಣವನ್ನು ಪ್ರವೇಶಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಅಥವಾ ಸ್ಟೋರೇಜ್ ಲಾಕರ್ ಅಥವಾ ಎಲೆಕ್ಟ್ರಿಕ್ ಸ್ಕೂಟರ್ ನಂತಹ ಏನನ್ನಾದರೂ ಬಾಡಿಗೆಗೆ ಪಡೆಯಿರಿ. + +ಮತ್ತು ನೀವು [ETH](/eth/) ಅನ್ನು ಕಳುಹಿಸಲು ಅಥವಾ ಸ್ಟ್ರೀಮ್ ಮಾಡಲು ಬಯಸದಿದ್ದರೆ ಏಕೆಂದರೆ ಅದರ ಮೌಲ್ಯವು ಎಷ್ಟು ಬದಲಾಗಬಹುದು, ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ಪರ್ಯಾಯ ಕರೆನ್ಸಿಗಳಿವೆ: ಸ್ಟೇಬಲ್‍ಕಾಯಿನ್‍ಗಳು. + + + +### ಸ್ಥಿರ ಕರೆನ್ಸಿಗಳನ್ನು ಪ್ರವೇಶಿಸಿ {#stablecoins} + +ಕ್ರಿಪ್ಟೋಕರೆನ್ಸಿ ಚಂಚಲತೆಯು ಬಹಳಷ್ಟು ಹಣಕಾಸು ಉತ್ಪನ್ನಗಳು ಮತ್ತು ಸಾಮಾನ್ಯ ವೆಚ್ಚಗಳಿಗೆ ಸಮಸ್ಯೆಯಾಗಿದೆ. DeFi ಸಮುದಾಯವು ಇದನ್ನು ಸ್ಟೇಬಲ್‍ಕಾಯಿನ್‍ಗಳೊಂದಿಗೆ ಪರಿಹರಿಸಿದೆ. ಅವುಗಳ ಮೌಲ್ಯವು ಮತ್ತೊಂದು ಆಸ್ತಿಗೆ ಜೋಡಿಸಲ್ಪಟ್ಟಿದೆ, ಸಾಮಾನ್ಯವಾಗಿ ಡಾಲರ್ ಗಳಂತಹ ಜನಪ್ರಿಯ ಕರೆನ್ಸಿ. + +Dai ಅಥವಾ USDCಯಂತಹ ನಾಣ್ಯಗಳು ಡಾಲರ್ನ ಕೆಲವು ಸೆಂಟ್‍ಗಳ ಒಳಗೆ ಉಳಿಯುವ ಮೌಲ್ಯವನ್ನು ಹೊಂದಿವೆ. ಇದು ಅವುಗಳನ್ನು ಗಳಿಕೆ ಅಥವಾ ಚಿಲ್ಲರೆ ವ್ಯಾಪಾರಕ್ಕೆ ಸೂಕ್ತವಾಗಿಸುತ್ತದೆ. ಲ್ಯಾಟಿನ್ ಅಮೆರಿಕಾದ ಅನೇಕ ಜನರು ತಮ್ಮ ಸರ್ಕಾರ ಹೊರಡಿಸಿದ ಕರೆನ್ಸಿಗಳೊಂದಿಗೆ ಹೆಚ್ಚಿನ ಅನಿಶ್ಚಿತತೆಯ ಸಮಯದಲ್ಲಿ ತಮ್ಮ ಉಳಿತಾಯವನ್ನು ರಕ್ಷಿಸುವ ಮಾರ್ಗವಾಗಿ ಸ್ಟೇಬಲ್ ಕಾಯಿನ್‍ಗಳನ್ನು ಬಳಸಿದ್ದಾರೆ. + + + ಸ್ಟೇಬಲ್‍ಕಾಯಿನ್‍ಗಳ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು + + + + +### ಸಾಲ ಪಡೆಯುವುದು {#lending} + +ವಿಕೇಂದ್ರೀಕೃತ ಪೂರೈಕೆದಾರರಿಂದ ಹಣವನ್ನು ಎರವಲು ಪಡೆಯುವುದು ಎರಡು ಪ್ರಮುಖ ವಿಧಗಳಲ್ಲಿ ಬರುತ್ತದೆ. + +- ಪೀರ್-ಟು-ಪೀರ್, ಅಂದರೆ ಸಾಲಗಾರನು ನಿರ್ದಿಷ್ಟ ಸಾಲದಾತರಿಂದ ನೇರವಾಗಿ ಸಾಲ ಪಡೆಯುತ್ತಾನೆ. +- ಸಾಲಗಾರರು ಸಾಲ ಪಡೆಯಬಹುದಾದ ಪೂಲ್‍ಗೆ ಸಾಲದಾತರು ಹಣವನ್ನು (liquidity ದ್ರವ್ಯತೆ) ಒದಗಿಸುವ ಪೂಲ್ ಆಧಾರಿತ. + + + ಎರವಲು dapps ನೋಡಿ + + +ವಿಕೇಂದ್ರೀಕೃತ ಸಾಲದಾತನನ್ನು ಬಳಸುವುದರಿಂದ ಅನೇಕ ಅನುಕೂಲಗಳಿವೆ... + +#### ಗೌಪ್ಯತೆಯೊಂದಿಗೆ ಸಾಲ ಪಡೆಯುವುದು {#borrowing-privacy} + +ಇಂದು, ಸಾಲ ನೀಡುವುದು ಮತ್ತು ಹಣವನ್ನು ಎರವಲು ಪಡೆಯುವುದು ಎಲ್ಲವೂ ಭಾಗಿಯಾಗಿರುವ ವ್ಯಕ್ತಿಗಳ ಸುತ್ತ ಸುತ್ತುತ್ತದೆ. ಸಾಲ ನೀಡುವ ಮೊದಲು ನೀವು ಸಾಲವನ್ನು ಮರುಪಾವತಿ ಮಾಡುವ ಸಾಧ್ಯತೆಯಿದೆಯೇ ಎಂದು ಬ್ಯಾಂಕುಗಳು ತಿಳಿದುಕೊಳ್ಳಬೇಕು. + +ವಿಕೇಂದ್ರೀಕೃತ ಸಾಲವು ಯಾವುದೇ ಪಕ್ಷವು ತಮ್ಮನ್ನು ಗುರುತಿಸಿಕೊಳ್ಳದೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಬದಲಾಗಿ, ಸಾಲಗಾರನು ತನ್ನ ಸಾಲವನ್ನು ಮರುಪಾವತಿಸದಿದ್ದರೆ ಸಾಲದಾತನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಪಡೆಯುವ ಮೇಲಾಧಾರವನ್ನು ಹಾಕಬೇಕು. ಕೆಲವು ಸಾಲದಾತರು NFT ಗಳನ್ನು ಮೇಲಾಧಾರವಾಗಿ ಸ್ವೀಕರಿಸುತ್ತಾರೆ. NFT ಗಳು ಚಿತ್ರಕಲೆಯಂತಹ ವಿಶಿಷ್ಟ ಸ್ವತ್ತಿನ ಕಾರ್ಯವಾಗಿದೆ. [NFT ಗಳ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು](/nft/) + +ಕ್ರೆಡಿಟ್ ಚೆಕ್ ಇಲ್ಲದೆ ಅಥವಾ ಖಾಸಗಿ ಮಾಹಿತಿಯನ್ನು ಹಸ್ತಾಂತರಿಸದೆ ಹಣವನ್ನು ಎರವಲು ಪಡೆಯಲು ಇದು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. + +#### ಜಾಗತಿಕ ನಿಧಿಗಳಿಗೆ ಪ್ರವೇಶ {#access-global-funds} + +ನೀವು ವಿಕೇಂದ್ರೀಕೃತ ಸಾಲದಾತರನ್ನು ಬಳಸುವಾಗ, ನೀವು ಆಯ್ಕೆ ಮಾಡಿದ ಬ್ಯಾಂಕ್ ಅಥವಾ ಸಂಸ್ಥೆಯ ವಶದಲ್ಲಿರುವ ನಿಧಿಗಳಿಗೆ ಮಾತ್ರವಲ್ಲ, ಪ್ರಪಂಚದಾದ್ಯಂತದ ಹಣವನ್ನು ನೀವು ಪ್ರವೇಶಿಸುತ್ತೀರಿ. ಇದು ಸಾಲಗಳನ್ನು ಹೆಚ್ಚು ಪ್ರವೇಶಿಸುವಂತೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ಬಡ್ಡಿದರಗಳನ್ನು ಸುಧಾರಿಸುತ್ತದೆ. + +#### ತೆರಿಗೆ-ದಕ್ಷತೆಗಳು {#tax-efficiencies} + +ಸಾಲ ಪಡೆಯುವುದು ನಿಮ್ಮ ETH (ತೆರಿಗೆ ವಿಧಿಸಬಹುದಾದ ಘಟನೆ) ಅನ್ನು ಮಾರಾಟ ಮಾಡುವ ಅಗತ್ಯವಿಲ್ಲದೆ ನಿಮಗೆ ಅಗತ್ಯವಿರುವ ನಿಧಿಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ನೀಡುತ್ತದೆ. ಬದಲಿಗೆ, ನೀವು ಸ್ಟೇಬಲ್ಕಾಯಿನ್ ಸಾಲಕ್ಕಾಗಿ ETH ಅನ್ನು ಮೇಲಾಧಾರವಾಗಿ ಬಳಸಬಹುದು. ಇದು ನಿಮಗೆ ಅಗತ್ಯವಿರುವ ನಗದು ಹರಿವನ್ನು ನೀಡುತ್ತದೆ ಮತ್ತು ನಿಮ್ಮ ETH ಅನ್ನು ಉಳಿಸಿಕೊಳ್ಳಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಸ್ಟೇಬಲ್‍ಕಾಯಿನ್‍ಗಳು ಟೋಕನ್‍ಗಳಾಗಿವೆ, ಏಕೆಂದರೆ ಅವು ETH ನಂತಹ ಮೌಲ್ಯದಲ್ಲಿ ಏರಿಳಿತಗೊಳ್ಳುವುದಿಲ್ಲವಾದ್ದರಿಂದ ನಿಮಗೆ ನಗದು ಅಗತ್ಯವಿದ್ದಾಗ ಹೆಚ್ಚು ಉತ್ತಮವಾಗಿರುತ್ತದೆ. [ಸ್ಟೇಬಲ್‍ಕಾಯಿನ್‍ಗಳ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು](#stablecoins) + +#### ಫ್ಲ್ಯಾಶ್ ಸಾಲಗಳು {#flash-loans} + +ಫ್ಲ್ಯಾಶ್ ಸಾಲಗಳು ವಿಕೇಂದ್ರೀಕೃತ ಸಾಲದ ಹೆಚ್ಚು ಪ್ರಾಯೋಗಿಕ ರೂಪವಾಗಿದ್ದು, ಅದು ಮೇಲಾಧಾರವಿಲ್ಲದೆ ಅಥವಾ ಯಾವುದೇ ವೈಯಕ್ತಿಕ ಮಾಹಿತಿಯನ್ನು ಒದಗಿಸದೆ ಸಾಲ ಪಡೆಯಲು ನಿಮಗೆ ಅವಕಾಶ ನೀಡುತ್ತದೆ. + +ಅವು ಇದೀಗ ತಾಂತ್ರಿಕೇತರ ಜನರಿಗೆ ವ್ಯಾಪಕವಾಗಿ ಲಭ್ಯವಿಲ್ಲ ಆದರೆ ಭವಿಷ್ಯದಲ್ಲಿ ಎಲ್ಲರಿಗೂ ಏನು ಸಾಧ್ಯ ಎಂಬುದರ ಬಗ್ಗೆ ಅವು ಸುಳಿವು ನೀಡುತ್ತವೆ. + +ಅದೇ ವಹಿವಾಟಿನೊಳಗೆ ಸಾಲವನ್ನು ಹೊರತೆಗೆಯಲಾಗುತ್ತದೆ ಮತ್ತು ಮರುಪಾವತಿಸಲಾಗುತ್ತದೆ ಎಂಬ ಆಧಾರದ ಮೇಲೆ ಇದು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಅದನ್ನು ಮರುಪಾವತಿಸಲು ಸಾಧ್ಯವಾಗದಿದ್ದರೆ, ವ್ಯವಹಾರವು ಏನೂ ಸಂಭವಿಸಿಲ್ಲ ಎಂಬಂತೆ ಹಿಂತಿರುಗುತ್ತದೆ. + +ಆಗಾಗ್ಗೆ ಬಳಸಲಾಗುವ ನಿಧಿಗಳನ್ನು ದ್ರವ್ಯತೆ ಕೊಳಗಳಲ್ಲಿ ಇರಿಸಲಾಗುತ್ತದೆ (ಸಾಲ ಪಡೆಯಲು ಬಳಸುವ ದೊಡ್ಡ ನಿಧಿಗಳ ಕೊಳಗಳು). ಒಂದು ನಿರ್ದಿಷ್ಟ ಸಮಯದಲ್ಲಿ ಅವುಗಳನ್ನು ಬಳಸದಿದ್ದರೆ, ಇದು ಯಾರಿಗಾದರೂ ಈ ಹಣವನ್ನು ಎರವಲು ಪಡೆಯಲು, ಅವರೊಂದಿಗೆ ವ್ಯವಹಾರ ನಡೆಸಲು ಮತ್ತು ಅವರು ಎರವಲು ಪಡೆದ ಅದೇ ಸಮಯದಲ್ಲಿ ಅಕ್ಷರಶಃ ಪೂರ್ಣವಾಗಿ ಮರುಪಾವತಿಸಲು ಅವಕಾಶವನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ. + +ಇದರರ್ಥ ಬಹಳ ಬೆಸ್ಪೋಕ್ ವಹಿವಾಟಿನಲ್ಲಿ ಬಹಳಷ್ಟು ತರ್ಕವನ್ನು ಸೇರಿಸಬೇಕು. ಒಂದು ಸರಳ ಉದಾಹರಣೆಯೆಂದರೆ, ಯಾರಾದರೂ ಫ್ಲ್ಯಾಶ್ ಲೋನ್ ಬಳಸಿ ಒಂದು ಬೆಲೆಗೆ ಹೆಚ್ಚು ಆಸ್ತಿಯನ್ನು ಎರವಲು ಪಡೆಯಬಹುದು, ಆದ್ದರಿಂದ ಅವರು ಅದನ್ನು ಬೆಲೆ ಹೆಚ್ಚಿರುವ ಬೇರೆ ವಿನಿಮಯ ಕೇಂದ್ರದಲ್ಲಿ ಮಾರಾಟ ಮಾಡಬಹುದು. + +ಆದ್ದರಿಂದ ಒಂದೇ ವ್ಯವಹಾರದಲ್ಲಿ, ಈ ಕೆಳಗಿನವು ಸಂಭವಿಸುತ್ತವೆ: + +- ನೀವು $asset X ಮೊತ್ತವನ್ನು ಎಕ್ಸ್ ಚೇಂಜ್ A ನಿಂದ $ 1.00 ಕ್ಕೆ ಎರವಲು ಪಡೆಯುತ್ತೀರಿ +- ನೀವು 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 ರಷ್ಟಿದೆ! +- ನಿಮ್ಮ aDai ಬ್ಯಾಲೆನ್ಸ್ ಗೆ ಸಮನಾದ ನಿಯಮಿತ Dai ಮೊತ್ತವನ್ನು ನೀವು ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಹಿಂಪಡೆಯಬಹುದು. + + + ಸಾಲ ನೀಡುವ Dappsಗಳನ್ನು ನೋಡಿ + + +#### ನಷ್ಟವಿಲ್ಲದ ಲಾಟರಿಗಳು {#no-loss-lotteries} + +ಪೂಲ್ ಟುಗೆದರ್ ನಂತಹ ನಷ್ಟವಿಲ್ಲದ ಲಾಟರಿಗಳು ಹಣವನ್ನು ಉಳಿಸಲು ಮೋಜಿನ ಮತ್ತು ನವೀನ ಹೊಸ ಮಾರ್ಗವಾಗಿದೆ. + +- ನೀವು 100 Dai ಟೋಕನ್‍ಗಳನ್ನು ಬಳಸಿ 100 ಟಿಕೆಟ್‍ಗಳನ್ನು ಖರೀದಿಸುತ್ತೀರಿ. +- ನಿಮ್ಮ 100 ಟಿಕೆಟ್‍ಗಳನ್ನು ಪ್ರತಿನಿಧಿಸುವ 100 plDai ಅನ್ನು ನೀವು ಸ್ವೀಕರಿಸುತ್ತೀರಿ. +- ನಿಮ್ಮ ಟಿಕೆಟ್‍ಗಳಲ್ಲಿ ಒಂದನ್ನು ವಿಜೇತರಾಗಿ ಆಯ್ಕೆ ಮಾಡಿದರೆ, ಬಹುಮಾನದ ಮೊತ್ತದಿಂದ ನಿಮ್ಮ plDai ಬ್ಯಾಲೆನ್ಸ್ ಹೆಚ್ಚಾಗುತ್ತದೆ. +- ನೀವು ಗೆಲ್ಲದಿದ್ದರೆ, ನಿಮ್ಮ 100 plDai ಮುಂದಿನ ವಾರದ ಡ್ರಾಗೆ ತಿರುಗುತ್ತದೆ. +- ನಿಮ್ಮ plDai ಬ್ಯಾಲೆನ್ಸ್ ಗೆ ಸಮನಾದ ನಿಯಮಿತ Dai ಮೊತ್ತವನ್ನು ನೀವು ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಹಿಂಪಡೆಯಬಹುದು. + +ಮೇಲಿನ ಸಾಲದ ಉದಾಹರಣೆಯಂತೆ ಟಿಕೆಟ್ ಠೇವಣಿಗಳನ್ನು ಸಾಲ ನೀಡುವ ಮೂಲಕ ಉತ್ಪತ್ತಿಯಾಗುವ ಎಲ್ಲಾ ಬಡ್ಡಿಯಿಂದ ಬಹುಮಾನದ ಪೂಲ್ ಅನ್ನು ಉತ್ಪಾದಿಸಲಾಗುತ್ತದೆ. + + + PoolTogether ಪ್ರಯತ್ನಿಸಿ + + + + +### ವಿನಿಮಯ ಟೋಕನ್‍ಗಳು {#swaps} + +ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ಸಾವಿರಾರು ಟೋಕನ್‍ಗಳಿವೆ. ವಿಕೇಂದ್ರೀಕೃತ ವಿನಿಮಯ ಕೇಂದ್ರಗಳು (DEXs) ನಿಮಗೆ ಬೇಕಾದಾಗ ವಿಭಿನ್ನ ಟೋಕನ್‍ಗಳನ್ನು ವ್ಯಾಪಾರ ಮಾಡಲು ನಿಮಗೆ ಅವಕಾಶ ನೀಡುತ್ತವೆ. ನಿಮ್ಮ ಸ್ವತ್ತುಗಳ ಮೇಲಿನ ನಿಯಂತ್ರಣವನ್ನು ನೀವು ಎಂದಿಗೂ ಬಿಟ್ಟುಕೊಡುವುದಿಲ್ಲ. ಇದು ಬೇರೆ ದೇಶಕ್ಕೆ ಭೇಟಿ ನೀಡಿದಾಗ ಕರೆನ್ಸಿ ವಿನಿಮಯವನ್ನು ಬಳಸುವಂತಿದೆ. ಆದರೆ ಡಿಫೈ ಆವೃತ್ತಿ ಎಂದಿಗೂ ಮುಚ್ಚುವುದಿಲ್ಲ. ಮಾರುಕಟ್ಟೆಗಳು ವರ್ಷದಲ್ಲಿ 24/7, 365 ದಿನಗಳು ಮತ್ತು ವ್ಯಾಪಾರವನ್ನು ಸ್ವೀಕರಿಸಲು ಯಾವಾಗಲೂ ಯಾರಾದರೂ ಇರುತ್ತಾರೆ ಎಂದು ತಂತ್ರಜ್ಞಾನವು ಖಾತರಿಪಡಿಸುತ್ತದೆ. + +ಉದಾಹರಣೆಗೆ, ನೀವು ನಷ್ಟವಿಲ್ಲದ ಲಾಟರಿ ಪೂಲ್ ಟುಗೆದರ್ (ಮೇಲೆ ವಿವರಿಸಲಾಗಿದೆ) ಬಳಸಲು ಬಯಸಿದರೆ, ನಿಮಗೆ Dai ಅಥವಾ USDCಯಂತಹ ಟೋಕನ್ ಅಗತ್ಯವಿದೆ. ಈ DEX ಗಳು ಆ ಟೋಕನ್‍ಗಳಿಗಾಗಿ ನಿಮ್ಮ ETH ಅನ್ನು ಬದಲಾಯಿಸಲು ಮತ್ತು ನೀವು ಮುಗಿದ ನಂತರ ಮತ್ತೆ ಹಿಂತಿರುಗಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತವೆ. + + + ಟೋಕನ್ ವಿನಿಮಯಗಳನ್ನು ನೋಡಿ + + + + +### ಸುಧಾರಿತ ವ್ಯಾಪಾರ {#trading} + +ಸ್ವಲ್ಪ ಹೆಚ್ಚು ನಿಯಂತ್ರಣವನ್ನು ಬಯಸುವ ವ್ಯಾಪಾರಿಗಳಿಗೆ ಹೆಚ್ಚು ಸುಧಾರಿತ ಆಯ್ಕೆಗಳಿವೆ. ಮಿತಿ ಆದೇಶಗಳು, ಶಾಶ್ವತಗಳು, ಮಾರ್ಜಿನ್ ಟ್ರೇಡಿಂಗ್ ಮತ್ತು ಹೆಚ್ಚಿನವು ಸಾಧ್ಯ. ವಿಕೇಂದ್ರೀಕೃತ ವ್ಯಾಪಾರದೊಂದಿಗೆ ನೀವು ಜಾಗತಿಕ ದ್ರವ್ಯತೆಗೆ ಪ್ರವೇಶವನ್ನು ಪಡೆಯುತ್ತೀರಿ, ಮಾರುಕಟ್ಟೆ ಎಂದಿಗೂ ಮುಚ್ಚುವುದಿಲ್ಲ, ಮತ್ತು ನೀವು ಯಾವಾಗಲೂ ನಿಮ್ಮ ಸ್ವತ್ತುಗಳ ನಿಯಂತ್ರಣದಲ್ಲಿದ್ದೀರಿ. + +ನೀವು ಕೇಂದ್ರೀಕೃತ ವಿನಿಮಯ ಕೇಂದ್ರವನ್ನು ಬಳಸುವಾಗ ನೀವು ವ್ಯಾಪಾರದ ಮೊದಲು ನಿಮ್ಮ ಸ್ವತ್ತುಗಳನ್ನು ಠೇವಣಿ ಮಾಡಬೇಕು ಮತ್ತು ಅವುಗಳನ್ನು ನೋಡಿಕೊಳ್ಳಲು ಅವರನ್ನು ನಂಬಬೇಕು. ನಿಮ್ಮ ಸ್ವತ್ತುಗಳನ್ನು ಠೇವಣಿ ಮಾಡುವಾಗ, ಕೇಂದ್ರೀಕೃತ ವಿನಿಮಯಗಳು ಹ್ಯಾಕರ್ ಗಳಿಗೆ ಆಕರ್ಷಕ ಗುರಿಗಳಾಗಿರುವುದರಿಂದ ಅವು ಅಪಾಯದಲ್ಲಿವೆ. + + + ಟ್ರೇಡಿಂಗ್ dapps ನೋಡಿ + + + + +### ನಿಮ್ಮ ಪೋರ್ಟ್‍ಫೋಲಿಯೊವನ್ನು ಬೆಳೆಸಿ {#investing} + +ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ನಿಧಿ ನಿರ್ವಹಣಾ ಉತ್ಪನ್ನಗಳು ಇವೆ, ಅದು ನಿಮ್ಮ ಆಯ್ಕೆಯ ಕಾರ್ಯತಂತ್ರದ ಆಧಾರದ ಮೇಲೆ ನಿಮ್ಮ ಪೋರ್ಟ್‍ಫೋಲಿಯೋವನ್ನು ಬೆಳೆಸಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ. ಇದು ಸ್ವಯಂಚಾಲಿತವಾಗಿದೆ, ಎಲ್ಲರಿಗೂ ಮುಕ್ತವಾಗಿದೆ, ಮತ್ತು ನಿಮ್ಮ ಲಾಭವನ್ನು ಕಡಿತಗೊಳಿಸುವ ಮಾನವ ವ್ಯವಸ್ಥಾಪಕರ ಅಗತ್ಯವಿಲ್ಲ. +ಇದಕ್ಕೆ ಉತ್ತಮ ಉದಾಹರಣೆಯೆಂದರೆ [DeFi ಪಲ್ಸ್ ಇಂಡೆಕ್ಸ್ ಫಂಡ್ (DPI)](https://defipulse.com/blog/defi-pulse-index/). ಇದು ನಿಮ್ಮ ಪೋರ್ಟ್‍ಫೋಲಿಯೊ ಯಾವಾಗಲೂ [ಮಾರುಕಟ್ಟೆ ಬಂಡವಾಳೀಕರಣದ ಮೂಲಕ ಉನ್ನತ DeFi ಟೋಕನ್‍ಗಳನ್ನು](https://www.coingecko.com/en/defi)ಒಳಗೊಂಡಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮರುಸಮತೋಲನಗೊಳಿಸುವ ಫಂಡ್ ಆಗಿದೆ. ನೀವು ಎಂದಿಗೂ ಯಾವುದೇ ವಿವರಗಳನ್ನು ನಿರ್ವಹಿಸಬೇಕಾಗಿಲ್ಲ ಮತ್ತು ನೀವು ಬಯಸಿದಾಗ ನಿಧಿಯಿಂದ ಹಿಂಪಡೆಯಬಹುದು. + + + ಹೂಡಿಕೆ dapps ನೋಡಿ + + + + +### ನಿಮ್ಮ ಆಲೋಚನೆಗಳಿಗೆ ಧನಸಹಾಯ ಮಾಡಿ {#crowdfunding} + +ಕ್ರೌಡ್ ಫಂಡಿಂಗ್ ಗೆ ಇಥಿರಿಯಮ್ ಸೂಕ್ತ ವೇದಿಕೆಯಾಗಿದೆ: + +- ಸಂಭಾವ್ಯ ನಿಧಿದಾರರು ಎಲ್ಲಿಂದ ಬೇಕಾದರೂ ಬರಬಹುದು - ಇಥಿರಿಯಮ್ ಮತ್ತು ಅದರ ಟೋಕನ್ ಗಳು ಯಾರಿಗಾದರೂ, ವಿಶ್ವದ ಎಲ್ಲಿಯಾದರೂ ತೆರೆದಿರುತ್ತವೆ. +- ಇದು ಪಾರದರ್ಶಕವಾಗಿದೆ ಆದ್ದರಿಂದ ನಿಧಿಸಂಗ್ರಹಕರು ಎಷ್ಟು ಹಣವನ್ನು ಸಂಗ್ರಹಿಸಲಾಗಿದೆ ಎಂಬುದನ್ನು ಸಾಬೀತುಪಡಿಸಬಹುದು. ಹಣವನ್ನು ಹೇಗೆ ಖರ್ಚು ಮಾಡಲಾಗುತ್ತಿದೆ ಎಂಬುದನ್ನು ನೀವು ನಂತರ ಪತ್ತೆಹಚ್ಚಬಹುದು. +- ಉದಾಹರಣೆಗೆ, ನಿರ್ದಿಷ್ಟ ಗಡುವು ಮತ್ತು ಕನಿಷ್ಠ ಮೊತ್ತವನ್ನು ಪೂರೈಸದಿದ್ದರೆ ನಿಧಿಸಂಗ್ರಹಕರು ಸ್ವಯಂಚಾಲಿತ ಮರುಪಾವತಿಗಳನ್ನು ಹೊಂದಿಸಬಹುದು. + + + ಕ್ರೌಡ್ ಫಂಡಿಂಗ್ dapps ನೋಡಿ + + +#### ಕ್ವಾಡ್ರಾಟಿಕ್ ಫಂಡಿಂಗ್ {#quadratic-funding} + +ಇಥಿರಿಯಮ್ ಓಪನ್ ಸೋರ್ಸ್ ಸಾಫ್ಟ್ವೇರ್ ಆಗಿದೆ ಮತ್ತು ಇಲ್ಲಿಯವರೆಗೆ ಬಹಳಷ್ಟು ಕೆಲಸಗಳಿಗೆ ಸಮುದಾಯವು ಧನಸಹಾಯ ನೀಡಿದೆ. ಇದು ಆಸಕ್ತಿದಾಯಕ ಹೊಸ ನಿಧಿಸಂಗ್ರಹ ಮಾದರಿಯ ಬೆಳವಣಿಗೆಗೆ ಕಾರಣವಾಗಿದೆ: ಕ್ವಾಡ್ರಾಟಿಕ್ ಫಂಡಿಂಗ್. This has the potential to improve the way we fund all types of public goods in the future. + +Quadratic funding makes sure that the projects that receive the most funding are those with the most unique demand. In other words, projects that stand to improve the lives of the most people. ಇದು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದು ಇಲ್ಲಿದೆ: + +1. ದೇಣಿಗೆ ನೀಡಿದ ನಿಧಿಗಳ ಸರಿಸಮಾನವಾದ ಪೂಲ್ ಇದೆ. +2. ಒಂದು ಸುತ್ತಿನ ಸಾರ್ವಜನಿಕ ಧನಸಹಾಯ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ. +3. ಜನರು ಸ್ವಲ್ಪ ಹಣವನ್ನು ದಾನ ಮಾಡುವ ಮೂಲಕ ಯೋಜನೆಗಾಗಿ ತಮ್ಮ ಬೇಡಿಕೆಯನ್ನು ಸೂಚಿಸಬಹುದು. +4. ರೌಂಡ್ ಮುಗಿದ ನಂತರ, ಮ್ಯಾಚಿಂಗ್ ಪೂಲ್ ಅನ್ನು ಯೋಜನೆಗಳಿಗೆ ವಿತರಿಸಲಾಗುತ್ತದೆ. ಅತ್ಯಂತ ವಿಶಿಷ್ಟ ಬೇಡಿಕೆಯನ್ನು ಹೊಂದಿರುವವರು ಮ್ಯಾಚಿಂಗ್ ಪೂಲ್‍ನಿಂದ ಹೆಚ್ಚಿನ ಮೊತ್ತವನ್ನು ಪಡೆಯುತ್ತಾರೆ. + +ಇದರರ್ಥ ಪ್ರಾಜೆಕ್ಟ್ A ತನ್ನ 100 ದೇಣಿಗೆಗಳೊಂದಿಗೆ 10,000 ಡಾಲರ್ ಗಳ ಏಕೈಕ ದೇಣಿಗೆಯೊಂದಿಗೆ ಪ್ರಾಜೆಕ್ಟ್ B ಗಿಂತ ಹೆಚ್ಚಿನ ಧನಸಹಾಯವನ್ನು ಪಡೆಯಬಹುದು (ಹೊಂದಾಣಿಕೆಯ ಕೊಳದ ಗಾತ್ರವನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ). + +[ಕ್ವಾಡ್ರಾಟಿಕ್ ಫಂಡಿಂಗ್ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು](https://wtfisqf.com) + + + +### ವಿಮೆ {#insurance} + +ವಿಕೇಂದ್ರೀಕೃತ ವಿಮೆಯು ವಿಮೆಯನ್ನು ಅಗ್ಗವಾಗಿ, ಪಾವತಿಸಲು ವೇಗವಾಗಿ ಮತ್ತು ಹೆಚ್ಚು ಪಾರದರ್ಶಕವಾಗಿಸುವ ಗುರಿಯನ್ನು ಹೊಂದಿದೆ. ಹೆಚ್ಚಿನ ಯಾಂತ್ರೀಕರಣದೊಂದಿಗೆ, ವ್ಯಾಪ್ತಿ ಹೆಚ್ಚು ಕೈಗೆಟುಕುತ್ತದೆ ಮತ್ತು ಪಾವತಿಗಳು ಬಹಳ ವೇಗವಾಗಿರುತ್ತವೆ. ನಿಮ್ಮ ಕ್ಲೈಮ್ ಅನ್ನು ನಿರ್ಧರಿಸಲು ಬಳಸುವ ಡೇಟಾ ಸಂಪೂರ್ಣವಾಗಿ ಪಾರದರ್ಶಕವಾಗಿದೆ. + +ಇಥಿರಿಯಮ್ ಉತ್ಪನ್ನಗಳು, ಯಾವುದೇ ಸಾಫ್ಟ್ವೇರ್ನಂತೆ, ದೋಷಗಳು ಮತ್ತು ಶೋಷಣೆಗಳಿಂದ ಬಳಲಬಹುದು. ಆದ್ದರಿಂದ ಇದೀಗ ಬಹಳಷ್ಟು ವಿಮಾ ಉತ್ಪನ್ನಗಳು ತಮ್ಮ ಬಳಕೆದಾರರನ್ನು ಹಣದ ನಷ್ಟದಿಂದ ರಕ್ಷಿಸುವತ್ತ ಗಮನ ಹರಿಸುತ್ತವೆ. ಆದಾಗ್ಯೂ, ಜೀವನವು ನಮ್ಮ ಮೇಲೆ ಎಸೆಯಬಹುದಾದ ಎಲ್ಲದಕ್ಕೂ ವ್ಯಾಪ್ತಿಯನ್ನು ನಿರ್ಮಿಸಲು ಪ್ರಾರಂಭಿಸುವ ಯೋಜನೆಗಳಿವೆ. ಇದಕ್ಕೆ ಉತ್ತಮ ಉದಾಹರಣೆಯೆಂದರೆ Etherisc's Crop cover - ಎಥೆರಿಸ್ಕ್ ನ ಬೆಳೆ ಹೊದಿಕೆ, ಇದು ಕೀನ್ಯಾದಲ್ಲಿ [ಸಣ್ಣ ಹಿಡುವಳಿದಾರ ರೈತರನ್ನು ಬರಗಾಲ ಮತ್ತು ಪ್ರವಾಹದಿಂದ ರಕ್ಷಿಸುವ](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc) ಗುರಿಯನ್ನು ಹೊಂದಿದೆ. ವಿಕೇಂದ್ರೀಕೃತ ವಿಮೆಯು ಸಾಂಪ್ರದಾಯಿಕ ವಿಮೆಯಿಂದ ಹೊರಗುಳಿದ ರೈತರಿಗೆ ಅಗ್ಗದ ರಕ್ಷಣೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ. + + + ವಿಮಾ dapps ನೋಡಿ + + + + +### ಅಗ್ರಿಗೇಟರ್ ಗಳು ಮತ್ತು ಪೋರ್ಟ್‍ಫೋಲಿಯೊ ಮ್ಯಾನೇಜರ್ ಗಳು {#aggregators} + +ಇಷ್ಟೆಲ್ಲಾ ನಡೆಯುತ್ತಿರುವಾಗ, ನಿಮ್ಮ ಎಲ್ಲಾ ಹೂಡಿಕೆಗಳು, ಸಾಲಗಳು ಮತ್ತು ವಹಿವಾಟುಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಲು ನಿಮಗೆ ಒಂದು ಮಾರ್ಗ ಬೇಕು. ನಿಮ್ಮ ಎಲ್ಲಾ ಡಿಫೈ ಚಟುವಟಿಕೆಯನ್ನು ಒಂದೇ ಸ್ಥಳದಿಂದ ಸಮನ್ವಯಗೊಳಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುವ ಉತ್ಪನ್ನಗಳ ಇದೆ. ಇದು ಡಿಫೈನ ಮುಕ್ತ ವಾಸ್ತುಶಿಲ್ಪದ ಸೌಂದರ್ಯವಾಗಿದೆ. ತಂಡಗಳು ಇಂಟರ್ಫೇಸ್‍ಗಳನ್ನು ನಿರ್ಮಿಸಬಹುದು, ಅಲ್ಲಿ ನೀವು ಉತ್ಪನ್ನಗಳಾದ್ಯಂತ ನಿಮ್ಮ ಸಮತೋಲನವನ್ನು ನೋಡಲು ಸಾಧ್ಯವಿಲ್ಲ, ನೀವು ಅವರ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಸಹ ಬಳಸಬಹುದು. ನೀವು DeFi ಬಗ್ಗೆ ಹೆಚ್ಚು ಅನ್ವೇಷಿಸುವಾಗ ಇದು ನಿಮಗೆ ಉಪಯುಕ್ತವಾಗಬಹುದು. + + + ಪೋರ್ಟ್‍ಫೋಲಿಯೊ dapps ನೋಡಿ + + + + +## DeFi ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ? {#how-defi-works} + +ಮಧ್ಯವರ್ತಿಗಳ ಅಗತ್ಯವಿಲ್ಲದ ಸೇವೆಗಳನ್ನು ಒದಗಿಸಲು ಡಿಫೈ ಕ್ರಿಪ್ಟೋಕರೆನ್ಸಿಗಳು ಮತ್ತು ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳನ್ನು ಬಳಸುತ್ತದೆ. ಇಂದಿನ ಹಣಕಾಸು ಜಗತ್ತಿನಲ್ಲಿ, ಹಣಕಾಸು ಸಂಸ್ಥೆಗಳು ವಹಿವಾಟಿನ ಖಾತರಿದಾರರಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ. ಇದು ಈ ಸಂಸ್ಥೆಗಳಿಗೆ ಅಪಾರ ಶಕ್ತಿಯನ್ನು ನೀಡುತ್ತದೆ ಏಕೆಂದರೆ ನಿಮ್ಮ ಹಣವು ಅವುಗಳ ಮೂಲಕ ಹರಿಯುತ್ತದೆ. ಜೊತೆಗೆ ಪ್ರಪಂಚದಾದ್ಯಂತದ ಶತಕೋಟಿ ಜನರು ಬ್ಯಾಂಕ್ ಖಾತೆಯನ್ನು ಸಹ ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. + +DeFi ನಲ್ಲಿ, ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ವ್ಯವಹಾರದಲ್ಲಿ ಹಣಕಾಸು ಸಂಸ್ಥೆಯನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ. ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಒಂದು ರೀತಿಯ ಇಥಿರಿಯಮ್ ಖಾತೆಯಾಗಿದ್ದು, ಅದು ಹಣವನ್ನು ಹಿಡಿದಿಟ್ಟುಕೊಳ್ಳಬಹುದು ಮತ್ತು ಕೆಲವು ಷರತ್ತುಗಳ ಆಧಾರದ ಮೇಲೆ ಅವುಗಳನ್ನು ಕಳುಹಿಸಬಹುದು / ಮರುಪಾವತಿ ಮಾಡಬಹುದು. ಆ ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಲೈವ್ ಆಗಿರುವಾಗ ಯಾರೂ ಅದನ್ನು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ - ಅದು ಯಾವಾಗಲೂ ಪ್ರೋಗ್ರಾಮ್ ಮಾಡಿದಂತೆ ಚಲಿಸುತ್ತದೆ. + +ಭತ್ಯೆ ಅಥವಾ ಪಾಕೆಟ್ ಹಣವನ್ನು ಹಸ್ತಾಂತರಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ ಒಪ್ಪಂದವನ್ನು ಪ್ರತಿ ಶುಕ್ರವಾರ ಖಾತೆ A ಯಿಂದ ಖಾತೆ B ಗೆ ಹಣವನ್ನು ಕಳುಹಿಸಲು ಪ್ರೋಗ್ರಾಂ ಮಾಡಬಹುದು. ಮತ್ತು ಖಾತೆ A ಅಗತ್ಯವಾದ ಹಣವನ್ನು ಹೊಂದಿರುವವರೆಗೆ ಮಾತ್ರ ಅದು ಅದನ್ನು ಮಾಡುತ್ತದೆ. ಹಣವನ್ನು ಕದಿಯಲು ಯಾರೂ ಒಪ್ಪಂದವನ್ನು ಬದಲಾಯಿಸಲು ಮತ್ತು ಖಾತೆ C ಅನ್ನು ಸ್ವೀಕರಿಸುವವರಾಗಿ ಸೇರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. + +ಯಾರಾದರೂ ಪರಿಶೀಲಿಸಲು ಮತ್ತು ಲೆಕ್ಕಪರಿಶೋಧನೆ ಮಾಡಲು ಒಪ್ಪಂದಗಳು ಸಾರ್ವಜನಿಕವಾಗಿವೆ. ಇದರರ್ಥ ಕೆಟ್ಟ ಒಪ್ಪಂದಗಳು ಆಗಾಗ್ಗೆ ಸಮುದಾಯದ ಪರಿಶೀಲನೆಗೆ ಬರುತ್ತವೆ. + +ಇದರರ್ಥ ಪ್ರಸ್ತುತ ಕೋಡ್ ಓದಬಲ್ಲ ಇಥಿರಿಯಮ್ ಸಮುದಾಯದ ಹೆಚ್ಚು ತಾಂತ್ರಿಕ ಸದಸ್ಯರನ್ನು ನಂಬುವ ಅವಶ್ಯಕತೆಯಿದೆ. ಓಪನ್-ಸೋರ್ಸ್ ಆಧಾರಿತ ಸಮುದಾಯವು ಡೆವಲಪರ್ ಗಳನ್ನು ನಿಯಂತ್ರಣದಲ್ಲಿಡಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ, ಆದರೆ ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳು ಓದಲು ಸುಲಭವಾಗುವುದರಿಂದ ಮತ್ತು ಕೋಡ್‍ನ ವಿಶ್ವಾಸಾರ್ಹತೆಯನ್ನು ಸಾಬೀತುಪಡಿಸಲು ಇತರ ಮಾರ್ಗಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವುದರಿಂದ ಈ ಅಗತ್ಯವು ಕಾಲಾನಂತರದಲ್ಲಿ ಕಡಿಮೆಯಾಗುತ್ತದೆ. + +## ಇಥಿರಿಯಮ್ ಮತ್ತು DeFi {#ethereum-and-defi} + +ಇಥಿರಿಯಮ್ ಹಲವಾರು ಕಾರಣಗಳಿಗಾಗಿ DeFi ಗೆ ಪರಿಪೂರ್ಣ ಅಡಿಪಾಯವಾಗಿದೆ: + +- ಇಥಿರಿಯಮ್ ಅಥವಾ ಅದರ ಮೇಲೆ ವಾಸಿಸುವ ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳನ್ನು ಯಾರೂ ಹೊಂದಿಲ್ಲ - ಇದು ಎಲ್ಲರಿಗೂ DeFi ಬಳಸಲು ಅವಕಾಶವನ್ನು ನೀಡುತ್ತದೆ. ಇದರರ್ಥ ನಿಮ್ಮ ಮೇಲಿನ ನಿಯಮಗಳನ್ನು ಯಾರೂ ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. +- DeFi ಉತ್ಪನ್ನಗಳು ತೆರೆಮರೆಯಲ್ಲಿ ಒಂದೇ ಭಾಷೆಯನ್ನು ಮಾತನಾಡುತ್ತವೆ: ಇಥಿರಿಯಮ್. ಇದರರ್ಥ ಅನೇಕ ಉತ್ಪನ್ನಗಳು ತಡೆರಹಿತವಾಗಿ ಒಟ್ಟಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತವೆ. ನೀವು ಒಂದು ಪ್ಲಾಟ್‍ಫಾರ್ಮ್‍ನಲ್ಲಿ ಟೋಕನ್‍ಗಳನ್ನು ಸಾಲವಾಗಿ ನೀಡಬಹುದು ಮತ್ತು ಬಡ್ಡಿ ನೀಡುವ ಟೋಕನ್ ಅನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ವಿಭಿನ್ನ ಅಪ್ಲಿಕೇಶನ್‍ನಲ್ಲಿ ಬೇರೆ ಮಾರುಕಟ್ಟೆಯಲ್ಲಿ ವಿನಿಮಯ ಮಾಡಿಕೊಳ್ಳಬಹುದು. ಇದು ನಿಮ್ಮ ಬ್ಯಾಂಕಿನಲ್ಲಿ ಲಾಯಲ್ಟಿ ಪಾಯಿಂಟ್‍ಗಳನ್ನು ನಗದು ಮಾಡಲು ಸಾಧ್ಯವಾಗುವಂತೆ. +- ಟೋಕನ್‍ಗಳು ಮತ್ತು ಕ್ರಿಪ್ಟೋಕರೆನ್ಸಿಯನ್ನು ಹಂಚಿಕೆಯ ಲೆಡ್ಜರ್ ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ನಿರ್ಮಿಸಲಾಗಿದೆ - ವಹಿವಾಟುಗಳು ಮತ್ತು ಮಾಲೀಕತ್ವದ ಮೇಲೆ ನಿಗಾ ಇಡುವುದು ಇಥಿರಿಯಮ್‍ನ ವಿಷಯವಾಗಿದೆ. +- ಇಥಿರಿಯಮ್ ಸಂಪೂರ್ಣ ಆರ್ಥಿಕ ಸ್ವಾತಂತ್ರ್ಯವನ್ನು ಅನುಮತಿಸುತ್ತದೆ - ಹೆಚ್ಚಿನ ಉತ್ಪನ್ನಗಳು ಎಂದಿಗೂ ನಿಮ್ಮ ಹಣವನ್ನು ವಶಕ್ಕೆ ತೆಗೆದುಕೊಳ್ಳುವುದಿಲ್ಲ, ನಿಮ್ಮನ್ನು ನಿಯಂತ್ರಣದಲ್ಲಿ ಬಿಡುತ್ತವೆ. + +ನೀವು ಪದರಗಳಲ್ಲಿ DeFi ಬಗ್ಗೆ ಯೋಚಿಸಬಹುದು: + +1. ಬ್ಲಾಕ್‍ಚೈನ್ - ಇಥಿರಿಯಮ್ ವಹಿವಾಟು ಇತಿಹಾಸ ಮತ್ತು ಖಾತೆಗಳ ಸ್ಥಿತಿಯನ್ನು ಒಳಗೊಂಡಿದೆ. +2. ಸ್ವತ್ತುಗಳು - [ETH](/eth/) ಮತ್ತು ಇತರ ಟೋಕನ್‍ಗಳು (ಕರೆನ್ಸಿಗಳು). +3. ಪ್ರೋಟೋಕಾಲ್‍ಗಳು - ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಒದಗಿಸುವ [ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳು](/glossary/#smart-contract), ಉದಾಹರಣೆಗೆ, ಸ್ವತ್ತುಗಳ ವಿಕೇಂದ್ರೀಕೃತ ಸಾಲಕ್ಕೆ ಅನುಮತಿಸುವ ಸೇವೆ. +4. [ಅಪ್ಲಿಕೇಶನ್ ಗಳು](/dapps/) - ಪ್ರೋಟೋಕಾಲ್ ಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಮತ್ತು ಪ್ರವೇಶಿಸಲು ನಾವು ಬಳಸುವ ಉತ್ಪನ್ನಗಳು. + +## DeFi ನಿರ್ಮಿಸಿ {#build-defi} + +DeFi ಒಂದು ಓಪನ್ ಸೋರ್ಸ್ ಚಳವಳಿಯಾಗಿದೆ. DeFi ಪ್ರೋಟೋಕಾಲ್ ಗಳು ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್‍ಗಳು ನಿಮಗೆ ಪರಿಶೀಲಿಸಲು, ಫೋರ್ಕ್ ಮಾಡಲು ಮತ್ತು ಆವಿಷ್ಕಾರ ಮಾಡಲು ಮುಕ್ತವಾಗಿವೆ. ಈ ಲೇಯರ್ಡ್ ಸ್ಟ್ಯಾಕ್ ಕಾರಣದಿಂದಾಗಿ (ಅವೆಲ್ಲವೂ ಒಂದೇ ಮೂಲ ಬ್ಲಾಕ್‍ಚೈನ್ ಮತ್ತು ಸ್ವತ್ತುಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತವೆ), ಪ್ರೋಟೋಕಾಲ್‍ಗಳನ್ನು ಮಿಶ್ರಣ ಮಾಡಬಹುದು ಮತ್ತು ಅನನ್ಯ ಕಾಂಬೋ ಅವಕಾಶಗಳನ್ನು ಅನ್‍ಲಾಕ್ ಮಾಡಲು ಹೊಂದಿಸಬಹುದು. + + + dapps ಗಳನ್ನು ನಿರ್ಮಿಸುವ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು + + +## Further reading {#futher-reading} + +### DeFi ಡೇಟಾ {#defi-data} + +- [DeFi ಪ್ರೈಮ್](https://defiprime.com/) +- [DeFi Llama](https://defillama.com/) +- [DeFi ದರ](https://defirate.com/) + +### DeFi ಲೇಖನಗಳು {#defi-articles} + +- [DeFi ಗೆ ಆರಂಭಿಕ ಮಾರ್ಗದರ್ಶಿ](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) - _ಸಿಡ್ ಕೊಯೆಲ್ಹೋ-ಪ್ರಭು, ಜನವರಿ 6, 2020_ + +### Videos {#videos} + +- [ಫೈನ್ಮ್ಯಾಟಿಕ್ಸ್ - ವಿಕೇಂದ್ರೀಕೃತ ಹಣಕಾಸು ಶಿಕ್ಷಣ](https://finematics.com/) - _DeFi ಕುರಿತ ವೀಡಿಯೊಗಳು_ +- [ದಿ ಡಿಫೆಂಟ್](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _DeFi ಬೇಸಿಕ್ಸ್: ಸಾಂದರ್ಭಿಕವಾಗಿ ಗೊಂದಲಮಯವಾಗಿರುವ ಈ ಜಾಗದಲ್ಲಿ ಪ್ರಾರಂಭಿಸಲು ನೀವು ತಿಳಿದುಕೊಳ್ಳಬೇಕಾದ ಎಲ್ಲವೂ._ +- [ವೈಟ್ಬೋರ್ಡ್ ಕ್ರಿಪ್ಟೋ](https://youtu.be/17QRFlml4pA)_DeFi ಎಂದರೇನು?_ + +### ಸಮುದಾಯಗಳು {#communities} + +- [DeFi Llama ಡಿಸ್ಕಾರ್ಡ್ ಸರ್ವರ್](https://discord.gg/buPFYXzDDd) +- [DeFi Pulse ಡಿಸ್ಕಾರ್ಡ್ ಸರ್ವರ್](https://discord.gg/Gx4TCTk) diff --git a/public/content/translations/kn/desci/index.md b/public/content/translations/kn/desci/index.md new file mode 100644 index 00000000000..b6bac894860 --- /dev/null +++ b/public/content/translations/kn/desci/index.md @@ -0,0 +1,139 @@ +--- +title: ವಿಕೇಂದ್ರೀಕರಿತ ವಿಜ್ಞಾನ (ಡಿಸೈ) +description: ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ವಿಕೇಂದ್ರೀಕೃತ ವಿಜ್ಞಾನದ ಒಂದು ಅವಲೋಕನ +lang: kn +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: ಪ್ರಸ್ತುತ ವೈಜ್ಞಾನಿಕ ವ್ಯವಸ್ಥೆಗೆ ಜಾಗತಿಕ, ಮುಕ್ತ ಪರ್ಯಾಯ. +summaryPoint2: ವಿಜ್ಞಾನಿಗಳಿಗೆ ಅನ್ವಯಿಸಿಕೊಳ್ಳುವ ಹಣ ಸಂಗ್ರಹಣೆ, ಪ್ರಯೋಗಾಲೋಚನೆ ನಡೆಸುವುದು, ಡೇಟಾ ಹಂಚಿಕೆ ಮಾಡುವುದು, ಅರಿವುಗಳನ್ನು ಹರಡುವುದು, ಮತ್ತು ಇತರ ಕ್ರಿಯೆಗಳನ್ನು ಮುಗಿಸಿಕೊಳ್ಳುವ ತಂತ್ರಜ್ಞಾನ ಮತ್ತಷ್ಟು ಆಗಿದೆ. +summaryPoint3: ಮುಕ್ತ ವಿಜ್ಞಾನ ಚಳುವಳಿಗೆ ಆಧಾರವಾಗಿ ನಿರ್ಮಿಸಲಾಗುತ್ತದೆ. +--- + +## ಸ್ವತಂತ್ರ ವಿಜ್ಞಾನ (DeSci) ಎಂದರೇನು? {#what-is-desci} + +ಡಿಸೆಂಟ್ರಲೈಸ್ಡ್‌ ಸೈನ್ಸ್ (DeSci) Web3 ಸ್ಟ್ಯಾಕ್‌ನ ಬಳಕೆಯನ್ನು ಬಳಸಿ, ತರಬೇತಿಗೊಳಿಸುವ ಜನರ ಅನುಭವ ಸರಣಿ, ಸೃಷ್ಟಿಸುವ ಹಾಗೂ ಸಮೀಕ್ಷೆಯನ್ನು ಮಾಡುವುದು, ಪ್ರಶಸ್ತಿ ಪಡೆಯುವುದು, ಇಳಿಯುವುದು ಮತ್ತು ವಿಜ್ಞಾನಿಕ ಜ್ಞಾನವನ್ನು ನ್ಯಾಯವಾಗಿ ಮತ್ತು ಸಮಾನವಾಗಿ ಜನರಿಗೆ ಹಂಚಿಕೊಡುವುದು ಗುರಿಯಾಗಿದೆ. + +DeSci ವಿಜ್ಞಾನಿಗಳು ತಮ್ಮ ಸಂಶೋಧನೆಯನ್ನು ನಿಸ್ವಾರ್ಥವಾಗಿ ಪ್ರಖರವಾಗಿ ಹಂಚಿ ಅದರ ಕೃತಿಯನ್ನು ಗೌರವಿಸಲು ಪ್ರೇರಿಸುವ ಪರಿಸರವನ್ನು ಸೃಷ್ಟಿಸಲು ಉದ್ದೇಶಿಸುತ್ತಿದೆ. ಹೀಗೆಯೇ ಯಾವುದೇ ವ್ಯಕ್ತಿಗೂ ಸಂಶೋಧನೆಗೆ ಸುಲಭವಾದ ಪ್ರವೇಶವನ್ನೂ ಕೊಡುತ್ತದೆ ಮತ್ತು ಅದರಲ್ಲಿ ಭಾಗವಹಿಸುವುದೂ ಸಾಧ್ಯವಾಗುವ ಒಂದು ಪರಿಸರವನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ. ವಿಜ್ಞಾನದ ಜ್ಞಾನವು ಪ್ರತಿಯೊಬ್ಬರಿಗೂ ಸುಲಭವಾಗಿ ಹೊಂದಿಕೊಳ್ಳಬೇಕೆಂದು ಮತ್ತು ವಿಜ್ಞಾನ ಸಂಶೋಧನೆಯ ಪ್ರಕ್ರಿಯೆಯು ಪ್ರಾದೇಶಿಕವಾಗಿರಬೇಕೆಂದು ನಿರೀಕ್ಷೆಯನ್ನು ಅನುಸರಿಸುವ ವಿಚಾರದ ಆಧಾರದ ಮೇಲೆ DeSci ಕೆ ಕಾರ್ಯ ನಡೆಸುತ್ತದೆ. DeSci ಸಾಮಾಜಿಕ ಅಧ್ಯಯನ ಆಧಾರಿತ ಮತ್ತು ಪರಿಶೀಲಿಸುವ ಏಕೀಕೃತ ಮತ್ತು ವಿಸ್ತರಿಸಿದ ವಿಜ್ಞಾನಿಗೆ ಅನುಕೂಲವಾಗಿ ಹೊಸ ವಿಜ್ಞಾನ ಹಂತವನ್ನು ರೂಪಿಸುತ್ತಿದೆ, ಅದನ್ನು ಸೆಂಟ್ರಲ್ ಆಡಳಿತದ ಮೇಲೆ ನಿಗದಿಪಡಿಸುವ ಹಂತಕ್ಕಿಂತ ಹೆಚ್ಚಿನ ಹೋರಾಟ ಮಾಡಲು ಹೊಂದಿಕೊಳ್ಳುತ್ತಿದೆ. DeSci ಹೂಡಾಡುತ್ತಿರುವ ಆಶಿಸುವುದು, ಅನ್ವಯವಾದ ಹಣ ಸುಲಭವಾಗಿ ಹೊಂದಿಕೊಳ್ಳುವುದು, ವೈಜ್ಞಾನಿಕ ಉಪಕರಣಗಳನ್ನು ಮತ್ತು ಸಂಪರ್ಕ ಕೇಂದ್ರಗಳಿಗೆ ಅಪವಾದಕರ ಕಲ್ಪನೆಗಳ ಬೆಳವಣಿಗೆಗೆ ಒಂದು ಪರಿಸರ ರಚಿಸುವುದನ್ನುಕ್ಕೊಳ್ಳುವುದು. + +ವಿಕೇಂದ್ರೀಕೃತ ವಿಜ್ಞಾನವು ಹೆಚ್ಚು ವೈವಿಧ್ಯಮಯ ಧನಸಹಾಯ ಮೂಲಗಳನ್ನು ([DAOs](/dao/), [ಕ್ವಾಡ್ರಾಟಿಕ್ ದೇಣಿಗೆಗಳಿಂದ](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) ಕ್ರೌಡ್ ಫಂಡಿಂಗ್ ಮತ್ತು ಹೆಚ್ಚಿನವು), ಹೆಚ್ಚು ಪ್ರವೇಶಿಸಬಹುದಾದ ಪ್ರವೇಶ ಡೇಟಾ ಮತ್ತು ವಿಧಾನಗಳು ಮತ್ತು ಪುನರುತ್ಪಾದನೆಗೆ ಪ್ರೋತ್ಸಾಹಕಗಳನ್ನು ಒದಗಿಸುವ ಮೂಲಕ ಅನುಮತಿಸುತ್ತದೆ. + +### ಜುವಾನ್ ಬೆನೆಟ್ - ಡಿಸ್ಯೆ ಚಲನೆ + + + +## DeSci ವಿಜ್ಞಾನವನ್ನು ಹೇಗೆ ಸುಧಾರಿಸುತ್ತದೆ {#desci-improves-science} + +ವಿಜ್ಞಾನದಲ್ಲಿ ಮುಖ್ಯ ಸಮಸ್ಯೆಗಳ ಒಂದು ಅಪೂರ್ಣ ಪಟ್ಟಿ ಮತ್ತು ಈ ಸಮಸ್ಯೆಗಳನ್ನು ಸಮಾಧಾನ ಹೇಗೆ ಪಡೆಯಬೇಕೆಂದು ಸೂಕ್ತಿಸುವ ವಿಜ್ಞಾನ ವಿಕೇಂದ್ರೀಕೃತ ವಿಜ್ಞಾನ ಹೇಗೆ ಸಹಾಯ ಮಾಡಬಹುದು + +| **ವಿಕೇಂದ್ರೀಕೃತ ವಿಜ್ಞಾನ** | **ಸಾಂಪ್ರದಾಯಿಕ ವಿಜ್ಞಾನ** | +| ---------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| ಹಣದ ವಿತರಣೆಯು ಬೇರೆಯವರು ಬಳಸುವ ಕ್ವಾಡ್ರಾಟಿಕ್ ದಾನಗಳು ಅಥವಾ DAO ಗಳು ಮುಂತಾದ ಯಂತ್ರಗಳ ಮೂಲಕ ಪ್ರಜೆಗೆ ನಿರ್ಧರಿಸಲಾಗುತ್ತದೆ. | ಸಣ್ಣ, ಮುಚ್ಚಿದ, ಕೇಂದ್ರೀಕೃತ ಗುಂಪುಗಳು ನಿಧಿಯ ವಿತರಣೆಯನ್ನು ನಿಯಂತ್ರಿಸುತ್ತವೆ. | +| ನೀವು ವಿಶ್ವದ ವಿವಿಧ ದೇಶಗಳಿಂದ ಬಂದ ಸಹೋದ್ಯೋಗಿಗಳೊಂದಿಗೆ ಚಟುವಟಿಕೆಗಾಗಿ ಸೇರುತ್ತೀರಿ. | ಧನಸಹಾಯ ಸಂಸ್ಥೆಗಳು ಮತ್ತು ಗೃಹ ಸಂಸ್ಥೆಗಳು ನಿಮ್ಮ ಸಹಯೋಗವನ್ನು ಮಿತಿಗೊಳಿಸುತ್ತವೆ. | +| ನಿಧಿ ನಿರ್ಧಾರಣೆಗಳು ಆನ್‌ಲೈನ್ ಮತ್ತು ಪಾರದರ್ಶಕವಾಗಿ ಮಾಡಲ್ಪಡುತ್ತವೆ. ಹೊಸ ಹಣಕಾಸಿನ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಅನ್ವೇಷಿಸಲಾಗಿದೆ. | ನಿಧಿ ನಿರ್ಧಾರಣೆಗಳು ದೀರ್ಘ ವಿಮರ್ಶಾಕಾಲದಲ್ಲಿ ಮತ್ತು ಸೀಮಿತ ಪಾರದರ್ಶಕತೆಯಿಂದ ನಡೆದುಕೊಳ್ಳುತ್ತವೆ. ಕೆಲವು ಹಣಕಾಸಿನ ಕಾರ್ಯವಿಧಾನಗಳು ಅಸ್ತಿತ್ವದಲ್ಲಿವೆ. | +| ವೆಬ್ 3 ಮೂಲಕ ಶಾಲೆ ಸೇವೆಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳುವುದು ಹೆಚ್ಚು ಸುಲಭ ಮತ್ತು ಸ್ಪಷ್ಟವಾಗಿದೆ. | ಪ್ರಯೋಗಾಲಯ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಹಂಚುವುದು ಸುಮಾರು ನೆಟ್ಟಗಣ್ಣಿನಿಂದ ಮತ್ತು ಮಂದಬುದ್ಧಿಯಿಂದಾಗಿದೆ. | +| ಟ್ರಸ್ಟ್, ಪ್ರಕಾಶನೆಗೆ ಟ್ರಾನ್ಸ್‌ಪ್ಯಾರೆನ್ಸಿ ಮತ್ತು ವಿಶ್ವವ್ಯಾಪಿ ಪ್ರವೇಶಕ್ಕಾಗಿ ವೆಬ್ 3 ಮೂಲಭೂತ ಆಧಾರಗಳನ್ನು ಬಳಸುವ ಹೊಸ ಮಾದರಿಗಳನ್ನು ತಯಾರಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ. | ಅಸಮರ್ಥ, ಪಕ್ಷಪಾತ ಮತ್ತು ಶೋಷಣೆ ಎಂದು ಆಗಾಗ್ಗೆ ಒಪ್ಪಿಕೊಂಡಿರುವ ಸ್ಥಾಪಿತ ಮಾರ್ಗಗಳ ಮೂಲಕ ನೀವು ಪ್ರಕಟಿಸುತ್ತೀರಿ. | +| ಪೀರ್-ರಿವ್ಯೂ ಮಾಡುವ ಕೆಲಸಕ್ಕಾಗಿ ನೀವು ಟೋಕನ್‌ಗಳು ಮತ್ತು ಖ್ಯಾತಿಯನ್ನು ಗಳಿಸಬಹುದು. | ನಿಮ್ಮ ಪೀರ್-ರಿವ್ಯೂ ಕೆಲಸವು ಪಾವತಿಸದೆ, ಲಾಭದಾಯಕ ಪ್ರಕಾಶಕರಿಗೆ ಪ್ರಯೋಜನವನ್ನು ನೀಡುತ್ತದೆ. | +| ನೀವು ಬೌದ್ಧಿಕ ಆಸ್ತಿಯನ್ನು (IP) ಹೊಂದಿದ್ದೀರಿ ಮತ್ತು ಅದನ್ನು ಪಾರದರ್ಶಕ ನಿಯಮಗಳ ಪ್ರಕಾರ ವಿತರಿಸುತ್ತೀರಿ. | ನಿಮ್ಮ ಮನೆಯ ಸಂಸ್ಥೆಯು ನೀವು ಉತ್ಪಾದಿಸುವ IP ಅನ್ನು ಹೊಂದಿದೆ. IP ಗೆ ಪ್ರವೇಶವು ಪಾರದರ್ಶಕವಾಗಿಲ್ಲ. | +| ಎಲ್ಲ ಸಂಶೋಧನೆಯನ್ನು ಹಾಗೂ ಯಶಸ್ವೀಯಾಗಿರಲಿಲ್ಲದ ಪ್ರಯತ್ನಗಳ ಡೇಟಾವನ್ನು ಹೊಂದಿರುವ, ಅನ್ನುವ ಮೂಲಕವಾಗಿ ಎಲ್ಲ ಹೆಜ್ಜೆಗಳನ್ನು ಒಂದು-ಚೈನ್ ಮೇಲೆ ಹಂಚಿಕೊಳ್ಳುವುದು. | ಪಬ್ಲಿಕೇಷನ್ ಪಕ್ಷಪಾತ ಎಂದರೆ ಸಂಶೋಧಕರು ಯಶಸ್ವಿ ಫಲಿತಾಂಶಗಳನ್ನು ಹೊಂದಿರುವ ಪ್ರಯೋಗಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳುವ ಸಾಧ್ಯತೆ ಹೆಚ್ಚು. | + +## ಇಥಿರಿಯಮ್ ಮತ್ತು DeSci {#ethereum-and-desci} + +ಒಂದು ಅಕಂಪುನಿಯಂತೆಯೇ ವಿಜ್ಞಾನ ವ್ಯವಸ್ಥೆಗೆ ದೃಢವಾದ ಸುರಕ್ಷೆ, ಕನಿಷ್ಠ ಹಣ ಮತ್ತು ಲಂಚದ ಖರ್ಚುಗಳು ಮತ್ತು ಅರ್ಜನೆ ಅಭಿವೃದ್ಧಿಗಾಗಿ ಒಂದು ಸ್ಥಳೀಯವಾದ ಸರಪಡಿಯು ಅಗತ್ಯವಾಗುತ್ತದೆ. ಇಥಿರಿಯಮ್ ಒಂದು ಆಧಾರವಾದ ವಿಜ್ಞಾನ ಉಸಿರಾಟಕ್ಕೆ ಅನ್ಯತ್ರ ಬೇಕಾದ ಎಲ್ಲವನ್ನು ಒದಗಿಸುತ್ತದೆ. + +## DeSci ಬಳಕೆಯ ಪ್ರಕರಣಗಳು {#use-cases} + +DeSci Web2 ಅಕ್ಯಾಡೆಮಿಯನ್ನು ಡಿಜಿಟಲ್ ಪ್ರಪಂಚಕ್ಕೆ ಸೇರಿಸಲು ವಿಜ್ಞಾನಿಗಳ ಟೂಲ್‍ಸೆಟ್ ನಿರ್ಮಿಸುತ್ತಿದೆ. ಜ್ಞಾನಶಾಸ್ತ್ರ ಸಮುದಾಯಕ್ಕೆ Web3 ಅನ್ನು ಒದಗಿಸಬಹುದಾದ ಬಳಕೆಗಳ ಒಂದು ನಮೂದಾವಳಿ ಕೆಳಗೆ ಇದೆ. + +### ಪ್ರಕಟಿಸಲಾಗುತ್ತಿದೆ {#publishing} + +ವಿಜ್ಞಾನ ಪ್ರಕಟಣೆ ಯಜಮಾನಿಗಳ ಮೂಲಕ ನಿರ್ವಹಿಸಲ್ಪಟ್ಟ ಹಳೆಯದಾಗಿದೆ, ಯಾಕೆಂದರೆ ಅದು ವಿಜ್ಞಾನಿಗಳ, ವಿಮರ್ಶಕರ ಮತ್ತು ಸಂಪಾದಕರ ಮೂಲಕ ಉತ್ಪನ್ನಗೊಳ್ಳುವ ಪ್ರಬಂಧಗಳ ಮೇಲೆ ಮುಕ್ತಾಯವಿಲ್ಲದ ಕೆಲಸಕ್ಕೆ ನಿರರ್ಥಕಗಳನ್ನು ಆಧಾರಿಸಿರುವ ಪ್ರಕಟಣೆ ಶಿಸ್ತು ಆಯ್ಕೆಗೆ ಗೊತ್ತಾಗಿದೆ. ಪ್ರಕಟಣೆ ಹಂಚುವ ವ್ಯಯದ ಮೂಲಕ ಹಣ ಪಡೆದ ಜನರು ಸಾಮಾನ್ಯವಾಗಿ ಪ್ರಕಟಣೆಗೆ ಮತ್ತು ಪ್ರಕಟಣೆ ಖರ್ಚುಗಳಿಗೆ ನೇರವಾಗಿ ಪ್ರಮುಖವಾಗಿ ತೆರವಲ್ಲಿರುವ ಸಾರ್ವಜನಿಕರು, ಪ್ರಕಟಣೆಯನ್ನು ಮತ್ತೆ ಪ್ರಕಟಿಸುವುದಕ್ಕಾಗಿ ಪುನಃ ಪ್ರಕಟಕರಿಗೆ ಹಣ ಪಡೆದು ಪ್ರವೇಶಿಸುವುದಿಲ್ಲ. ವೈಯಕ್ತಿಕ ವಿಜ್ಞಾನ ಪತ್ರಿಕೆಗಳನ್ನು ಪ್ರಕಟಿಸುವ ಒಟ್ಟು ಶುಲ್ಕವು ಸಾಮಾನ್ಯವಾಗಿ ಐದು ಅಂಕಿಗಳು ($USD), ಇದು ವೈಜ್ಞಾನಿಕ ಜ್ಞಾನವನ್ನು [ಸಾರ್ವಜನಿಕ ಒಳಿತಾಗಿ](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-ಸ್ಥಳೀಯ ಉಪಕರಣಗಳು ಪುನರುತ್ಪಾದನೆ ಮತ್ತು ಪುನರಾವರ್ತನೆಯು ಆವಿಷ್ಕಾರದ ಆಧಾರವಾಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಬಹುದು. ನಾವು ಶೈಲಿಯನ್ನು ಅಕಡಮಿಯಾದ ವೈಜ್ಞಾನಿಕ ಸಚರಾಚರ ಕಪಡಿಗೆ ನೆಡಬಹುದು. ವೆಬ್3 ಪ್ರತಿ ವಿಶ್ಲೇಷಣಾ ಘಟಕಕ್ಕೆ ಪ್ರಮಾಣಿಕತೆಯನ್ನು ರಚಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಒದಗಿಸುತ್ತದೆ: ಅವೊಂದಕ್ಕೆ ಕ್ರಿಯಾಶೀಲಕವಾಗಿರುವ ನಿಗದಿತ ಮಾಹಿತಿ, ಗಣಕ ಇಂಜಿನ್, ಮತ್ತು ಅರ್ಜಿ ಫಲಿತಾಂಶ. ಒಪ್ಪಂದದ ವ್ಯವಸ್ಥೆಗಳ ಸೌಂದರ್ಯವೆಂದರೆ, ಈ ಘಟ್ಟಗಳನ್ನು ನಿರ್ವಹಿಸುವ ನಂತರ ನಂತರ ಯಾವುದೇ ವಿಶ್ವಸನೀಯ ನೆಟ್‍ವರ್ಕ್ ರಚನೆಗೆ ಒಂದು ನಿರ್ವಹಕರು ಪ್ರತಿಪುಷ್ಟಿಯನ್ನು ಮತ್ತು ಪ್ರತಿ ಫಲಿತಾಂಶವನ್ನು ಪರಿಶೀಲಿಸಲು ಜವಾಬ್ದಾರರಾಗಬಹುದು. + +### ಧನಸಹಾಯ {#funding} + +ಧನಸಹಾಯ ವಿಜ್ಞಾನಕ್ಕೆ ಪ್ರಸ್ತುತ ಪ್ರಮಾಣಿತ ಮಾದರಿಯೆಂದರೆ ವ್ಯಕ್ತಿಗಳು ಅಥವಾ ವಿಜ್ಞಾನಿಗಳ ಗುಂಪುಗಳು ನಿಧಿಸಂಸ್ಥೆಗೆ ಲಿಖಿತ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಮಾಡುತ್ತವೆ. ವಿಶ್ವಾಸಾರ್ಹ ವ್ಯಕ್ತಿಗಳ ಸಣ್ಣ ಸಮಿತಿಯು ಅರ್ಜಿಗಳನ್ನು ಸ್ಕೋರ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ನಂತರ ಅಭ್ಯರ್ಥಿಗಳ ಸಣ್ಣ ಭಾಗಕ್ಕೆ ಹಣವನ್ನು ನೀಡುವ ಮೊದಲು ಅಭ್ಯರ್ಥಿಗಳನ್ನು ಸಂದರ್ಶಿಸುತ್ತದೆ. ಅರ್ಜಿ ಸಲ್ಲಿಸುವುದರಲ್ಲಿ ಮತ್ತು ಅನುದಾನ ಪಡೆಯುವುದರಲ್ಲಿ ವರ್ಷಗಳವರೆಗೆ ಕಾಯುವ ವೇಳೆಗೆ ಹೇಳಿದ್ದರಿಂದ, ಈ ಮಾದರಿಯು ಪರೀಕ್ಷಾ ಪಟ್ಟಿಯ ಅಭಿರುಚಿಗಳು, ಆತ್ಮಹಿತಗಳು ಮತ್ತು ರಾಜಕೀಯಗಳಿಂದ ಉಂಟಾಗುವ ಭದ್ರತೆಗೆ ತುಂಬಾ ಕಾರಣಗಳಾಗಿವೆ ಎಂದು ತಿಳಿಯಲಾಗಿದೆ. + +ವಿವಿಧ ಪ್ಯಾನೆಲ್‌ಗಳಿಗೆ ನೀಡಿದ ಅದೇ ಪ್ರಸ್ತಾವನೆಗಳು ವಿಭಿನ್ನ ಫಲಿತಾಂಶಗಳನ್ನು ಹೊಂದಿರುವುದರಿಂದ ಅನುದಾನ ಪರಿಶೀಲನಾ ಫಲಕಗಳು ಉತ್ತಮ-ಗುಣಮಟ್ಟದ ಪ್ರಸ್ತಾವನೆಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡುವ ಕಳಪೆ ಕೆಲಸವನ್ನು ಮಾಡುತ್ತವೆ ಎಂದು ಅಧ್ಯಯನಗಳು ತೋರಿಸಿವೆ. ಧನಸಹಾಯವು ಹೆಚ್ಚು ವಿರಳವಾಗಿರುವುದರಿಂದ, ಇದು ಹೆಚ್ಚು ಬೌದ್ಧಿಕವಾಗಿ ಸಂಪ್ರದಾಯವಾದಿ ಯೋಜನೆಗಳೊಂದಿಗೆ ಹೆಚ್ಚು ಹಿರಿಯ ಸಂಶೋಧಕರ ಒಂದು ಸಣ್ಣ ಪೂಲ್ ಆಗಿ ಕೇಂದ್ರೀಕೃತವಾಗಿದೆ. ಪರಿಣಾಮವು ಹೈಪರ್-ಸ್ಪರ್ಧಾತ್ಮಕ ನಿಧಿಯ ಭೂದೃಶ್ಯವನ್ನು ಸೃಷ್ಟಿಸಿದೆ, ವಿಕೃತ ಪ್ರೋತ್ಸಾಹಗಳನ್ನು ಮತ್ತು ಹೊಸತನವನ್ನು ನಿಗ್ರಹಿಸುತ್ತದೆ. + +ವೆಬ್3 ಬ್ರಾಡ್ಲಿ ದೀರ್ಘಪ್ರಯಾಸಗಳು ಮತ್ತು 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 ಮಾಲೀಕತ್ವ ಮತ್ತು ಅಭಿವೃದ್ಧಿ {#ip-ownership} + +ಬೌದ್ಧಿಕ ಆಸ್ತಿ (IP) ಸಾಂಪ್ರದಾಯಿಕ ವಿಜ್ಞಾನದಲ್ಲಿ ಒಂದು ದೊಡ್ಡ ಸಮಸ್ಯೆಯಾಗಿದೆ: ವಿಶ್ವವಿದ್ಯಾನಿಲಯಗಳಲ್ಲಿ ಸಿಲುಕಿಕೊಳ್ಳುವುದರಿಂದ ಅಥವಾ ಬಯೋಟೆಕ್‌ಗಳಲ್ಲಿ ಬಳಕೆಯಾಗದಿರುವುದು, ಕುಖ್ಯಾತವಾಗಿ ಮೌಲ್ಯಯುತವಾಗಿ ಕಷ್ಟಕರವಾಗಿದೆ. ಆದಾಗ್ಯೂ, ಡಿಜಿಟಲ್ ಸ್ವತ್ತುಗಳ ಮಾಲೀಕತ್ವವು (ವೈಜ್ಞಾನಿಕ ಡೇಟಾ ಅಥವಾ ಲೇಖನಗಳಂತಹ) Web3 [ನಾನ್-ಫಂಜಿಬಲ್ ಟೋಕನ್‍ಗಳನ್ನು (NFTs)](/nft/) ಬಳಸಿಕೊಂಡು ಅಸಾಧಾರಣವಾಗಿ ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. + +NFT ಗಳು ಭವಿಷ್ಯದ ವಹಿವಾಟುಗಳಿಗೆ ಆದಾಯವನ್ನು ಮೂಲ ರಚನೆಕಾರರಿಗೆ ಹಿಂದಿರುಗಿಸುವ ರೀತಿಯಲ್ಲಿಯೇ, ಸಂಶೋಧಕರು, ಆಡಳಿತ ಮಂಡಳಿಗಳು (DAO ಗಳಂತಹವು) ಅಥವಾ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸಿದ ವಿಷಯಗಳಿಗೆ ಬಹುಮಾನ ನೀಡಲು ನೀವು ಪಾರದರ್ಶಕ ಮೌಲ್ಯ ಗುಣಲಕ್ಷಣ ಸರಪಳಿಗಳನ್ನು ಸ್ಥಾಪಿಸಬಹುದು. + +[IP-NFTs](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) ಕೈಗೊಳ್ಳಲಾಗುತ್ತಿರುವ ಸಂಶೋಧನಾ ಪ್ರಯೋಗಗಳ ವಿಕೇಂದ್ರೀಕೃತ ದತ್ತಾಂಶ ಭಂಡಾರಕ್ಕೆ ಕೀಲಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸಬಹುದು ಮತ್ತು NFT ಮತ್ತು [DeFi](/defi/) ವಾಣಿಜ್ಯೀಕರಣಕ್ಕೆ (ಫ್ರಾಕ್ಷನಲೈಸೇಶನ್‍ನಿಂದ ಸಾಲದ ಕೊಳಗಳು ಮತ್ತು ಮೌಲ್ಯ ಮೌಲ್ಯಮಾಪನದವರೆಗೆ) ಪ್ಲಗ್ ಮಾಡಬಹುದು. ಇದು [VitaDAO](https://www.vitadao.com/)ದಂತಹ DAOsಗಳಂತಹ ಸ್ಥಳೀಯವಾಗಿ ಆನ್-ಚೈನ್ ಘಟಕಗಳಿಗೆ ನೇರವಾಗಿ ಸರಪಳಿಯಲ್ಲಿ ಸಂಶೋಧನೆ ನಡೆಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ವರ್ಗಾವಣೆ ಮಾಡಲಾಗದ [ಸೋಲ್‌ಬೌಂಡ್" ಟೋಕನ್‌ಗಳ](https://vitalik.ca/general/2022/01/26/soulbound.html) ಆಗಮನವು ವ್ಯಕ್ತಿಗಳು ತಮ್ಮ ಅನುಭವ ಮತ್ತು ಅವರ Ethereum ವಿಳಾಸಕ್ಕೆ ಲಿಂಕ್ ಮಾಡಲಾದ ರುಜುವಾತುಗಳನ್ನು ಸಾಬೀತುಪಡಿಸಲು ಅನುಮತಿಸುವ ಮೂಲಕ DeSci ನಲ್ಲಿ ಪ್ರಮುಖ ಪಾತ್ರವನ್ನು ವಹಿಸಬಹುದು. + +### ಡೇಟಾ ಸಂಗ್ರಹಣೆ, ಪ್ರವೇಶ ಮತ್ತು ವಾಸ್ತುಶಿಲ್ಪ {#data-storage} + +ವೆಬ್3 ಮಾದರಿಗಳನ್ನು ಬಳಸಿಕೊಂಡು ವೈಜ್ಞಾನಿಕ ಡೇಟಾವನ್ನು ಹೆಚ್ಚು ಸುಲಭವಾಗಿ ಪ್ರವೇಶಿಸಬಹುದು ಮತ್ತು ವಿತರಣಾ ಸಂಗ್ರಹಣೆಯು ದುರಂತ ಘಟನೆಗಳನ್ನು ಬದುಕಲು ಸಂಶೋಧನೆಯನ್ನು ಶಕ್ತಗೊಳಿಸುತ್ತದೆ. + +ಆರಂಭಿಕ ಹಂತವು ಸರಿಯಾದ ಪರಿಶೀಲಿಸಬಹುದಾದ ರುಜುವಾತುಗಳನ್ನು ಹೊಂದಿರುವ ಯಾವುದೇ ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿನ ಮೂಲಕ ಪ್ರವೇಶಿಸಬಹುದಾದ ಸಿಸ್ಟಮ್ ಆಗಿರಬೇಕು. ಇದು ಸೂಕ್ಷ್ಮ ಡೇಟಾವನ್ನು ವಿಶ್ವಾಸಾರ್ಹ ಪಕ್ಷಗಳಿಂದ ಸುರಕ್ಷಿತವಾಗಿ ಪುನರಾವರ್ತಿಸಲು ಅನುಮತಿಸುತ್ತದೆ, ಪುನರುಕ್ತಿ ಮತ್ತು ಸೆನ್ಸಾರ್ಶಿಪ್ ಪ್ರತಿರೋಧವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ, ಫಲಿತಾಂಶಗಳ ಪುನರುತ್ಪಾದನೆ ಮತ್ತು ಡೇಟಾಸೆಟ್‌ಗೆ ಹೊಸ ಡೇಟಾವನ್ನು ಸಹಯೋಗಿಸಲು ಮತ್ತು ಸೇರಿಸಲು ಬಹು ಪಕ್ಷಗಳ ಸಾಮರ್ಥ್ಯವನ್ನು ಸಹ ಅನುಮತಿಸುತ್ತದೆ. [ಕಂಪ್ಯೂಟ್-ಟು-ಡೇಟಾದಂತಹ](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol) ಗೌಪ್ಯ ಕಂಪ್ಯೂಟಿಂಗ್ ವಿಧಾನಗಳು Raw ಡೇಟಾ ಪುನರಾವರ್ತನೆಗೆ ಪರ್ಯಾಯ ಪ್ರವೇಶ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಒದಗಿಸುತ್ತವೆ, ಅತ್ಯಂತ ಸೂಕ್ಷ್ಮ ಡೇಟಾಕ್ಕಾಗಿ ವಿಶ್ವಾಸಾರ್ಹ ಸಂಶೋಧನಾ ಪರಿಸರವನ್ನು ರಚಿಸುತ್ತವೆ. ಕೋಡ್ ಮತ್ತು ಅಭ್ಯಾಸಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಪ್ರಮಾಣೀಕೃತ ಪರಿಸರವನ್ನು ಬಳಸಿಕೊಂಡು ಸಂಶೋಧಕರು ಸೈಟ್ನಲ್ಲಿ ಡೇಟಾದೊಂದಿಗೆ ಸುರಕ್ಷಿತವಾಗಿ ಕೆಲಸ ಮಾಡುವ ಪರಿಸರ ವ್ಯವಸ್ಥೆಯನ್ನು ರಚಿಸುವ ಮೂಲಕ ಡೇಟಾ ಗೌಪ್ಯತೆ ಮತ್ತು ಸಹಯೋಗಕ್ಕೆ ಭವಿಷ್ಯದ ಪರಿಹಾರವಾಗಿ ವಿಶ್ವಾಸಾರ್ಹ ಸಂಶೋಧನಾ ಪರಿಸರಗಳನ್ನು [NHS ಉಲ್ಲೇಖಿಸಿದೆ](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb). + +ಫ್ಲೆಕ್ಸಿಬಲ್ Web3 ಡೇಟಾ ಪರಿಹಾರಗಳು ಮೇಲಿನ ಸನ್ನಿವೇಶಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತವೆ ಮತ್ತು ನಿಜವಾದ ಓಪನ್ ಸೈನ್ಸ್‌ಗೆ ಅಡಿಪಾಯವನ್ನು ಒದಗಿಸುತ್ತವೆ, ಅಲ್ಲಿ ಸಂಶೋಧಕರು ಪ್ರವೇಶ ಅನುಮತಿಗಳು ಅಥವಾ ಶುಲ್ಕಗಳಿಲ್ಲದೆ ಸಾರ್ವಜನಿಕ ಸರಕುಗಳನ್ನು ರಚಿಸಬಹುದು. IPFS, Arweave ಮತ್ತು Filecoin ನಂತಹ Web3 ಸಾರ್ವಜನಿಕ ಡೇಟಾ ಪರಿಹಾರಗಳನ್ನು ವಿಕೇಂದ್ರೀಕರಣಕ್ಕಾಗಿ ಹೊಂದುವಂತೆ ಮಾಡಲಾಗಿದೆ. dClimate, ಉದಾಹರಣೆಗೆ, ಹವಾಮಾನ ಕೇಂದ್ರಗಳು ಮತ್ತು ಮುನ್ಸೂಚನೆಯ ಹವಾಮಾನ ಮಾದರಿಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ಹವಾಮಾನ ಮತ್ತು ಹವಾಮಾನ ಡೇಟಾಗೆ ಸಾರ್ವತ್ರಿಕ ಪ್ರವೇಶವನ್ನು ಒದಗಿಸುತ್ತದೆ. + +## ತೊಡಗಿಸಿಕೊಳ್ಳಿ {#get-involved} + +ಯೋಜನೆಗಳನ್ನು ಅನ್ವೇಷಿಸಿ ಮತ್ತು DeSci ಸಮುದಾಯಕ್ಕೆ ಸೇರಿ. + +- [DeSci.Global: ಜಾಗತಿಕ ಘಟನೆಗಳು ಮತ್ತು ಮೀಟಪ್ ಕ್ಯಾಲೆಂಡರ್](https://desci.global) +- [ವಿಜ್ಞಾನ ಗಾಗಿ ಬ್ಲಾಕ್‍ಚೈನ್ ಟೆಲಿಗ್ರಾಮ್](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: DeSci ಪಬ್ಲಿಷಿಂಗ್ ಟೂಲ್ ಬಿಲ್ಡರ್](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 ಅಥವಾ DeSci ಯೋಜನೆಗೆ ಧನಸಹಾಯ ಪಡೆಯಿರಿ](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/) +- [DeSci ಲ್ಯಾಬ್ಸ್](https://www.desci.com/) + +ಪಟ್ಟಿ ಮಾಡಲು ಹೊಸ ಯೋಜನೆಗಳಿಗೆ ಸಲಹೆಗಳನ್ನು ನಾವು ಸ್ವಾಗತಿಸುತ್ತೇವೆ - ಪ್ರಾರಂಭಿಸಲು ದಯವಿಟ್ಟು ನಮ್ಮ [ಪಟ್ಟಿ ನೀತಿಯನ್ನು](/contributing/adding-desci-projects/) ನೋಡಿ! + +## Further reading {#further-reading} + +- [DeSci Wiki ಜೋಸೆಲಿನ್ ಪರ್ಲ್ ಮತ್ತು ಅಲ್ಟ್ರಾರೇರ್ ಬರೆದ](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) +- [A 16 ಝಡ್ ಭವಿಷ್ಯಕ್ಕಾಗಿ ಜೋಸೆಲಿನ್ ಪರ್ಲ್ ಅವರಿಂದ ವಿಕೇಂದ್ರೀಕೃತ ಬಯೋಟೆಕ್ ಗೆ ಮಾರ್ಗದರ್ಶಿ](https://future.a16z.com/a-guide-to-decentralized-biotech/) +- [DeSci ಪ್ರಕರಣ](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) +- [DeSci ಗೆ ಮಾರ್ಗದರ್ಶಿ](https://future.com/what-is-decentralized-science-aka-desci/) +- [ವಿಕೇಂದ್ರೀಕೃತ ವಿಜ್ಞಾನ ಸಂಪನ್ಮೂಲಗಳು](https://www.vincentweisser.com/decentralized-science) +- [ಅಣುವಿನ ಬಯೋಫಾರ್ಮಾ IP-NFTs - ತಾಂತ್ರಿಕ ವಿವರಣೆ](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) +- [ಜಾನ್ ಸ್ಟಾರ್ ಅವರ ವಿಶ್ವಾಸಾರ್ಹ ವಿಜ್ಞಾನ ವ್ಯವಸ್ಥೆಗಳನ್ನು ನಿರ್ಮಿಸುವುದು](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) +- [ಬಯೋಟೆಕ್ DAO ಗಳ ಹೊರಹೊಮ್ಮುವಿಕೆ](https://molecule.to/blog/the-emergence-of-biotech-daos) +- [ಪಾಲ್ ಕೊಹ್ಲ್ಹಾಸ್ - 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) +- [DeSci: ಸ್ಯಾಮ್ಯುಯೆಲ್ ಅಕಿನೋಶೊ ಅವರ ಸಂಶೋಧನೆಯ ಭವಿಷ್ಯ](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) +- [ನಾಡಿಯಾ ಅವರಿಂದ ಸೈನ್ಸ್ ಫಂಡಿಂಗ್ (ಎಪಿಲಾಗ್: DeSci ಮತ್ತು ನ್ಯೂ ಕ್ರಿಪ್ಟೋ ಪ್ರಿಮಿಟೀವ್ಸ್)](https://nadia.xyz/science-funding) +- [ವಿಕೇಂದ್ರೀಕರಣವು ಔಷಧ ಅಭಿವೃದ್ಧಿಗೆ ಅಡ್ಡಿಪಡಿಸಿ](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) + +### Videos {#videos} + +- [ವಿಕೇಂದ್ರೀಕೃತ ವಿಜ್ಞಾನ ಎಂದರೇನು?](https://www.youtube.com/watch?v=-DeMklVWNdA) +- [ದೀರ್ಘಾಯುಷ್ಯದ ಸಂಶೋಧನೆ ಮತ್ತು ಕ್ರಿಪ್ಟೋದ ಸಂಕ್ಷೇಪದ ಬಗ್ಗೆ ವಿಟಾಲಿಕ್ ಬುಟೆರಿನ್ ಮತ್ತು ವಿಜ್ಞಾನಿ ಆಬ್ರೆ ಡಿ ಗ್ರೇ ನಡುವಿನ ಸಂಭಾಷಣೆ](https://www.youtube.com/watch?v=x9TSJK1widA) +- [ವೈಜ್ಞಾನಿಕ ಪ್ರಕಾಶನವು ಮುರಿದುಹೋಗಿದೆ. Web3 ಇದನ್ನು ಸರಿಪಡಿಸಬಹುದೇ?](https://www.youtube.com/watch?v=WkvzYgCvWj8) +- [ಜುವಾನ್ ಬೆನೆಟ್ - DeSci, ಇಂಡಿಪೆಂಡೆಂಟ್ ಲ್ಯಾಬ್ಸ್, & ಲಾರ್ಜ್ ಸ್ಕೇಲ್ ಡೇಟಾ ಸೈನ್ಸ್](https://www.youtube.com/watch?v=zkXM9H90g_E) +- [ಸೆಬಾಸ್ಟಿಯನ್ ಬ್ರೂನೆಮಿಯರ್ - DeSci ಬಯೋಮೆಡಿಕಲ್ ಸಂಶೋಧನೆ ಮತ್ತು & ಸಾಹಸೋದ್ಯಮ ಬಂಡವಾಳವನ್ನು ಹೇಗೆ ಪರಿವರ್ತಿಸಬಹುದು](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/public/content/translations/kn/nft/index.md b/public/content/translations/kn/nft/index.md new file mode 100644 index 00000000000..324f24bd744 --- /dev/null +++ b/public/content/translations/kn/nft/index.md @@ -0,0 +1,94 @@ +--- +title: ನಾನ್-ಫಂಜಿಬಲ್ ಟೋಕನ್‍ಗಳು (NFT) +description: ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ NFT ಗಳ ಅವಲೋಕನ +lang: kn +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: ಹೊಲೊಗ್ರಾಮ್ ಮೂಲಕ ಇಥ್ ಲೋಗೋವನ್ನು ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತಿದೆ. +summaryPoint1: ಇಥಿರಿಯಮ್ ಆಧಾರಿತ ಆಸ್ತಿಯಾಗಿ ಅನನ್ಯವಾದ ಯಾವುದನ್ನಾದರೂ ಪ್ರತಿನಿಧಿಸುವ ಒಂದು ಮಾರ್ಗ. +summaryPoint2: NFT ಗಳು ವಿಷಯ ಸೃಷ್ಟಿಕರ್ತರಿಗೆ ಹಿಂದೆಂದಿಗಿಂತಲೂ ಹೆಚ್ಚಿನ ಶಕ್ತಿಯನ್ನು ನೀಡುತ್ತಿವೆ. +summaryPoint3: ಇಥಿರಿಯಮ್ ಬ್ಲಾಕ್‍ಚೈನ್ ನಲ್ಲಿ ಸ್ಮಾರ್ಟ್ ಒಪ್ಪಂದಗಳಿಂದ ಚಾಲಿತವಾಗಿದೆ. +--- + +## What are NFTs? {#what-are-nfts} + +NFT ಗಳು ವೈಯಕ್ತಿಕವಾಗಿ ಅನನ್ಯವಾದ ಟೋಕನ್‍ಗಳಾಗಿವೆ. ಪ್ರತಿ NFT ವಿಭಿನ್ನ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಹೊಂದಿದೆ (ನಾನ್-ಫಂಜಿಯೆಬಲ್) ಮತ್ತು ವಿರಳವಾಗಿದೆ. ಇದು ERC-20s ನಂತಹ ಟೋಕನ್‍ಗಳಿಗಿಂತ ಭಿನ್ನವಾಗಿದೆ, ಅಲ್ಲಿ ಒಂದು ಸೆಟ್‍ನಲ್ಲಿರುವ ಪ್ರತಿಯೊಂದು ಟೋಕನ್ ಒಂದೇ ಆಗಿರುತ್ತದೆ ಮತ್ತು ಒಂದೇ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ ('ಫಂಜಿಬಲ್'). ನಿಮ್ಮ ವ್ಯಾಲೆಟ್ ನಲ್ಲಿ ಯಾವ ನಿರ್ದಿಷ್ಟ ಡಾಲರ್ ಬಿಲ್ ಇದೆ ಎಂಬುದರ ಬಗ್ಗೆ ನೀವು ತಲೆಕೆಡಿಸಿಕೊಳ್ಳುವುದಿಲ್ಲ, ಏಕೆಂದರೆ ಅವೆಲ್ಲವೂ ಒಂದೇ ಆಗಿರುತ್ತವೆ ಮತ್ತು ಒಂದೇ ಆಗಿರುತ್ತವೆ. ಆದಾಗ್ಯೂ, ನೀವು ಯಾವ ನಿರ್ದಿಷ್ಟ NFTಯನ್ನು _ಹೊಂದಿದ್ದೀರಿ_ ಎಂಬುದರ ಬಗ್ಗೆ ನೀವು ಕಾಳಜಿ ವಹಿಸುತ್ತೀರಿ, ಏಕೆಂದರೆ ಅವೆಲ್ಲವೂ ಇತರರಿಂದ ಪ್ರತ್ಯೇಕಿಸುವ ವೈಯಕ್ತಿಕ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಹೊಂದಿವೆ ('ನಾನ್-ಫಂಜಿಬಲ್'). + +ಪ್ರತಿ NFT ಯ ಅನನ್ಯತೆಯು ಕಲೆ, ಸಂಗ್ರಹಣೆಯ ವಸ್ತುಗಳು ಅಥವಾ ನಿಜವಾದ ಆಸ್ತಿ ಮುಂತಾದವುಗಳ ಟೋಕನೀಕರಣವನ್ನು ಸಾಧ್ಯವಾಗಿಸುತ್ತದೆ, ಇಲ್ಲಿ ಒಂದು ವಿಶೇಷ ಅನನ್ಯ NFT ಕೆಲವು ವಿಶೇಷ ಅನನ್ಯ ನಿಜವಾದ ಅಥವಾ ಡಿಜಿಟಲ್ ವಸ್ತುವನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ. ಆಸ್ತಿಯ ಮಾಲೀಕತ್ವವನ್ನು ಇಥಿರಿಯಮ್ ಬ್ಲಾಕ್‍ಚೈನ್‍ನಿಂದ ಸುರಕ್ಷಿತಗೊಳಿಸಲಾಗಿದೆ - ಮಾಲೀಕತ್ವದ ದಾಖಲೆಯನ್ನು ಯಾರೂ ಮಾರ್ಪಡಿಸಲು ಅಥವಾ ಹೊಸ NFT ಅನ್ನು ಅಸ್ತಿತ್ವಕ್ಕೆ ನಕಲಿಸಲು/ಅಂಟಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. + + + +## ಸ್ವತ್ತುಗಳ ಇಂಟರ್ನೆಟ್ {#internet-of-assets} + +NFTಗಳು ಮತ್ತು ಇಥಿರಿಯಮ್ ಇಂದು ಇಂಟರ್ನೆಟ್‍ನಲ್ಲಿ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಕೆಲವು ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸುತ್ತವೆ. ಎಲ್ಲವೂ ಹೆಚ್ಚು ಡಿಜಿಟಲ್ ಆಗುತ್ತಿದ್ದಾಗ, ಕೊರತೆ, ಅನನ್ಯತೆ ಮತ್ತು ಸ್ವಾಮ್ಯತೆಯ ಪ್ರಮಾಣವನ್ನು ಪ್ರತಿಸ್ಪರ್ಧಿಸಲು ಅವಶ್ಯವಿದೆ. ಕೇಂದ್ರೀಯ ಸಂಸ್ಥೆಯಿಂದ ನಿಯಂತ್ರಿಸಲ್ಪಡದ ರೀತಿಯಲ್ಲಿ ಇಲ್ಲ. ಉದಾಹರಣೆಗೆ, NFT ಗಳೊಂದಿಗೆ, ನೀವು ಯಾವುದೇ ಕಂಪನಿಯ ನಿರ್ದಿಷ್ಟ ಸಂಗೀತ ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ನಿರ್ದಿಷ್ಟವಾಗಿರದ ಸಂಗೀತ mp3 ಅನ್ನು ಹೊಂದಬಹುದು, ಅಥವಾ ನೀವು ಮಾರಾಟ ಮಾಡಬಹುದು ಅಥವಾ ವಿನಿಮಯ ಮಾಡಬಹುದಾದ ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮ ಹ್ಯಾಂಡಲ್ ಅನ್ನು ಹೊಂದಬಹುದು, ಆದರೆ ಇದನ್ನು ಯಾವುದೇ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಪೂರೈಕೆದಾರರಿಂದ ಯಾವುದೇ ಕಾರಣವಿಲ್ಲದೆ ತೆಗೆದುಕೊಳ್ಳಲಾಗುವುದಿಲ್ಲ. + +ಇಂದು ನಮ್ಮಲ್ಲಿ ಹೆಚ್ಚಿನವರು ಬಳಸುವ ಇಂಟರ್ನೆಟ್ಗೆ ಹೋಲಿಸಿದರೆ NFTಗಳ ಇಂಟರ್ನೆಟ್ ಹೇಗೆ ಕಾಣುತ್ತದೆ ಎಂಬುದು ಇಲ್ಲಿದೆ... + +### ಒಂದು ಹೋಲಿಕೆ {#nft-comparison} + +| NFT ಇಂಟರ್ನೆಟ್ | ಇಂದು ಇಂಟರ್ನೆಟ್ | +| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ನಿಮ್ಮ ಸ್ವತ್ತುಗಳನ್ನು ನೀವು ಹೊಂದಿದ್ದೀರಿ! ನೀವು ಮಾತ್ರ ಅವುಗಳನ್ನು ಮಾರಾಟ ಮಾಡಬಹುದು ಅಥವಾ ವಿನಿಮಯ ಮಾಡಿಕೊಳ್ಳಬಹುದು. | ನೀವು ಯಾವುದೋ ಸಂಸ್ಥೆಯಿಂದ ಆಸ್ತಿಯನ್ನು ಬಾಡಿಗೆಗೆ ಪಡೆಯುತ್ತೀರಿ. | +| NFT ಗಳು ಡಿಜಿಟಲ್ ಅನನ್ಯವಾಗಿವೆ, ಯಾವುದೇ ಎರಡು NFT ಗಳು ಒಂದೇ ಆಗಿರುವುದಿಲ್ಲ. | ಒಂದು ಘಟಕದ ನಕಲನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಮೂಲದಿಂದ ಪ್ರತ್ಯೇಕಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. | +| NFTಯ ಮಾಲೀಕತ್ವವನ್ನು ಯಾರಾದರೂ ಪರಿಶೀಲಿಸಲು ಬ್ಲಾಕ್ಚೈನ್ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ. | ಡಿಜಿಟಲ್ ವಸ್ತುಗಳ ಮಾಲೀಕತ್ವದ ದಾಖಲೆಗಳನ್ನು ಸಂಸ್ಥೆಗಳು ನಿಯಂತ್ರಿಸುವ ಸರ್ವರ್ ಗಳಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ - ಅದಕ್ಕಾಗಿ ನೀವು ಅವರ ಮಾತನ್ನು ತೆಗೆದುಕೊಳ್ಳಬೇಕು. | +| NFT ಗಳು ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಆಗಿವೆ. ಇದರರ್ಥ ಅವುಗಳನ್ನು ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ಇತರ ಸ್ಮಾರ್ಟ್ ಒಪ್ಪಂದಗಳು ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್‍ಗಳಲ್ಲಿ ಸುಲಭವಾಗಿ ಬಳಸಬಹುದು! | ಡಿಜಿಟಲ್ ವಸ್ತುಗಳನ್ನು ಹೊಂದಿರುವ ಕಂಪನಿಗಳಿಗೆ ಸಾಮಾನ್ಯವಾಗಿ ತಮ್ಮದೇ ಆದ "ಗೋಡೆಯ ಉದ್ಯಾನ" ಮೂಲಸೌಕರ್ಯದ ಅಗತ್ಯವಿದೆ. | +| ವಿಷಯ ಸೃಷ್ಟಿಕರ್ತರು ತಮ್ಮ ಕೆಲಸವನ್ನು ಎಲ್ಲಿಯಾದರೂ ಮಾರಾಟ ಮಾಡಬಹುದು ಮತ್ತು ಜಾಗತಿಕ ಮಾರುಕಟ್ಟೆಯನ್ನು ಪ್ರವೇಶಿಸಬಹುದು. | ಸೃಷ್ಟಿಕರ್ತರು ಅವರು ಬಳಸುವ ಪ್ಲಾಟ್‍ಫಾರ್ಮ್‍ಗಳ ಮೂಲಸೌಕರ್ಯ ಮತ್ತು ವಿತರಣೆಯನ್ನು ಅವಲಂಬಿಸಿದ್ದಾರೆ. ಇವು ಹೆಚ್ಚಾಗಿ ಬಳಕೆಯ ನಿಯಮಗಳು ಮತ್ತು ಭೌಗೋಳಿಕ ನಿರ್ಬಂಧಗಳಿಗೆ ಒಳಪಟ್ಟಿರುತ್ತವೆ. | +| NFT ಸೃಷ್ಟಿಕರ್ತರು ತಮ್ಮ ಸ್ವಂತ ಕೆಲಸದ ಮೇಲೆ ಮಾಲೀಕತ್ವದ ಹಕ್ಕುಗಳನ್ನು ಉಳಿಸಿಕೊಳ್ಳಬಹುದು ಮತ್ತು ರಾಯಲ್ಟಿಯನ್ನು ನೇರವಾಗಿ NFT ಒಪ್ಪಂದಕ್ಕೆ ಪ್ರೋಗ್ರಾಂ ಮಾಡಬಹುದು. | ಮ್ಯೂಸಿಕ್ ಸ್ಟ್ರೀಮಿಂಗ್ ಸೇವೆಗಳಂತಹ ಪ್ಲಾಟ್‍ಫಾರ್ಮ್‍ಗಳು ಮಾರಾಟದಿಂದ ಹೆಚ್ಚಿನ ಲಾಭವನ್ನು ಉಳಿಸಿಕೊಳ್ಳುತ್ತವೆ. | + +## NFT ಗಳು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ? {#how-nfts-work} + +ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ನೀಡಲಾದ ಯಾವುದೇ ಟೋಕನ್‍ನಂತೆ, NFTs ಗಳನ್ನು ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ನಿಂದ ನೀಡಲಾಗುತ್ತದೆ. ಸ್ಮಾರ್ಟ್ ಒಪ್ಪಂದವು ಯಾವ ಕಾರ್ಯಗಳನ್ನು ಹೊಂದಿದೆ ಎಂಬುದನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವ ಹಲವಾರು NFT ಮಾನದಂಡಗಳಲ್ಲಿ (ಸಾಮಾನ್ಯವಾಗಿ ERC -721 ಅಥವಾ ERC -1155) ಒಂದಕ್ಕೆ ಅನುಗುಣವಾಗಿದೆ. ಒಪ್ಪಂದವು ('ಮಿಂಟ್') NFTಗಳನ್ನು ರಚಿಸಬಹುದು ಮತ್ತು ಅವುಗಳನ್ನು ನಿರ್ದಿಷ್ಟ ಮಾಲೀಕರಿಗೆ ನಿಯೋಜಿಸಬಹುದು. ನಿರ್ದಿಷ್ಟ NFT ಗಳನ್ನು ನಿರ್ದಿಷ್ಟ ವಿಳಾಸಗಳಿಗೆ ಮ್ಯಾಪಿಂಗ್ ಮಾಡುವ ಮೂಲಕ ಮಾಲೀಕತ್ವವನ್ನು ಒಪ್ಪಂದದಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ. NFT ID ಮತ್ತು ವಿಶಿಷ್ಟವಾಗಿ ಅದಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಮೆಟಾಡೇಟಾವನ್ನು ಹೊಂದಿದೆ, ಅದು ನಿರ್ದಿಷ್ಟ ಟೋಕನ್ ಅನ್ನು ಅನನ್ಯವಾಗಿಸುತ್ತದೆ. + +ಯಾರಾದರೂ NFTಯನ್ನು ರಚಿಸಿದಾಗ ಅಥವಾ ತಯಾರಿಸಿದಾಗ, ಅವರು ನಿಜವಾಗಿಯೂ ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ನಲ್ಲಿ ಒಂದು ಕಾರ್ಯವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತಿದ್ದಾರೆ, ಅದು ಅವರ ವಿಳಾಸಕ್ಕೆ ನಿರ್ದಿಷ್ಟ NFTಯನ್ನು ನಿಯೋಜಿಸುತ್ತದೆ. ಈ ಮಾಹಿತಿಯನ್ನು ಒಪ್ಪಂದದ ಸಂಗ್ರಹಣೆಯಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ, ಇದು ಬ್ಲಾಕ್‍ಚೈನ್ ನ ಭಾಗವಾಗಿದೆ. ಕಂಟ್ರಾಕ್ಟಿನ ಸೃಷ್ಟಿಕರ್ತನು ಕಂಟ್ರಾಕ್ಟಿನಲ್ಲಿ ಹೆಚ್ಚುವರಿ ಲೋಜಿಕ್ ಅನ್ನು ಬರೆಯಬಹುದು, ಉದಾಹರಣೆಗೆ ಒಟ್ಟು ಸರಬರಾಜನ್ನು ಸೀಮಿತಗೊಳಿಸುವುದು ಅಥವಾ ಪ್ರತಿ ಬಾರಿ ಟೋಕನ್ ವರ್ಗಾವಣೆಯಾಗುವಾಗ ಸೃಷ್ಟಿಕರ್ತರಿಗೆ ಪಾವತಿಸಬೇಕಾದ ರಾಯಲ್ಟಿಯನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವುದು. + +## NFT ಗಳನ್ನು ಯಾವುದಕ್ಕಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ? {#nft-use-cases} + +NFT ಗಳನ್ನು ಅನೇಕ ವಿಷಯಗಳಿಗೆ ಬಳಸಲಾಗುತ್ತದೆ, ಅವುಗಳೆಂದರೆ: + +- ನೀವು ಒಂದು ಕಾರ್ಯಕ್ರಮಕ್ಕೆ ಹಾಜರಾಗಿದ್ದೀರಿ ಎಂದು ಸಾಬೀತುಪಡಿಸುವುದು +- ನೀವು ಕೋರ್ಸ್ ಅನ್ನು ಪೂರ್ಣಗೊಳಿಸಿದ್ದೀರಿ ಎಂದು ಪ್ರಮಾಣೀಕರಿಸಿ +- ಆಟಗಳಿಗೆ ಮಾಲೀಕತ್ವದ ಐಟಂಗಳು +- ಡಿಜಿಟಲ್ ಕಲೆ +- ನೈಜ-ಪ್ರಪಂಚದ ಸ್ವತ್ತುಗಳನ್ನು ಟೋಕನ್ ಮಾಡುವುದು +- ನಿಮ್ಮ ಆನ್‍ಲೈನ್ ಗುರುತನ್ನು ಸಾಬೀತುಪಡಿಸುವುದು +- ವಿಷಯಕ್ಕೆ ಪ್ರವೇಶವನ್ನು ಪಡೆಯುವುದು +- ಟಿಕೆಟಿಂಗ್ +- ವಿಕೇಂದ್ರೀಕೃತ ಇಂಟರ್ನೆಟ್ ಡೊಮೇನ್ ಹೆಸರುಗಳು +- deFi ನಲ್ಲಿ ಮೇಲಾಧಾರ + +ಬಹುಶಃ ನೀವು ನಿಯಂತ್ರಣವನ್ನು ಕಳೆದುಕೊಳ್ಳದೆ ಮತ್ತು ಮಧ್ಯವರ್ತಿಗಳಿಗೆ ನಿಮ್ಮ ಲಾಭವನ್ನು ತ್ಯಾಗ ಮಾಡದೆ, NFT ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ತಮ್ಮ ಕೆಲಸವನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಬಯಸುವ ಕಲಾವಿದರಾಗಿರಬಹುದು. ನೀವು ಹೊಸ ಒಪ್ಪಂದವನ್ನು ರಚಿಸಬಹುದು ಮತ್ತು NFT ಗಳ ಸಂಖ್ಯೆ, ಅವುಗಳ ಗುಣಲಕ್ಷಣಗಳು ಮತ್ತು ಕೆಲವು ನಿರ್ದಿಷ್ಟ ಕಲೆಯ ಕೊಂಡಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು. ಕಲಾವಿದನಾಗಿ, ನೀವು ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್‌ಗೆ ನೀವು ಪಡೆಯಬೇಕಾದ ರಾಯಲ್ಟಿಗಳನ್ನು ಕಾರ್ಯನಿರ್ವಹಿಸಬಹುದು (ಉದಾಹರಣೆಗೆ, ಒಂದು NFT ಯನ್ನು ಪರಿವರ್ತಿಸಲ್ಪಟ್ಟಾಗ ಮಾರಾಟದ ಬೆಲೆಯ 5% ಅನ್ನು ಕಾಂಟ್ರಾಕ್ಟ್ ಮಾಲೀಕರಿಗೆ ವರ್ಗಾಯಿಸಿ). ಒಪ್ಪಂದವನ್ನು ನಿಯೋಜಿಸಿದ ವ್ಯಾಲೆಟ್ ಅನ್ನು ನೀವು ಹೊಂದಿರುವ ಕಾರಣ ನೀವು NFT ಗಳನ್ನು ರಚಿಸಿದ್ದೀರಿ ಎಂದು ನೀವು ಯಾವಾಗಲೂ ಸಾಬೀತುಪಡಿಸಬಹುದು. ನಿಮ್ಮ ಸಂಗ್ರಹದಿಂದ ಅವರು ಖರೀದಿಸಿದ NFT ಅಸಲಿಯಾದದ್ದು ಎಂದು ಅವರ ವಾಲೆಟ್ ವಿಳಾಸವು ನಿಮ್ಮ ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟಿನ ಟೋಕನ್‌ ಜೊತೆಗೆ ಸಂಪರ್ಕಪಟ್ಟಿದೆಯೆಂದು ಅವರು ಸುಲಭವಾಗಿ ಸಾಧಿಸಬಹುದು. ಅವರು ಅದನ್ನು ಇಥಿರಿಯಮ್ ಪರಿಸರ ವ್ಯವಸ್ಥೆಯಾದ್ಯಂತ ಬಳಸಬಹುದು, ಅದರ ದೃಢೀಕರಣದಲ್ಲಿ ವಿಶ್ವಾಸ ಹೊಂದಿದ್ದಾರೆ. + +ಅಥವಾ ಕ್ರೀಡಾಕೂಟಕ್ಕೆ ಟಿಕೆಟ್ ಅನ್ನು ಪರಿಗಣಿಸಿ. ಕಾರ್ಯಕ್ರಮದ ಸಂಘಟಕರು ಎಷ್ಟು ಟಿಕೆಟ್‌ಗಳನ್ನು ಮಾರಾಟ ಮಾಡಬೇಕೆಂದು ಆಯ್ಕೆ ಮಾಡುವಂತೆ, NFT ನ ಸೃಷ್ಟಿಕರ್ತರು ಎಷ್ಟು ಪ್ರತಿಕೃತಿಗಳು ಅಸ್ತಿತ್ವದಲ್ಲಿವೆ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಬಹುದು. ಕೆಲವೊಮ್ಮೆ ಇವು 5000 ಸಾಮಾನ್ಯ ಪ್ರವೇಶ ಟಿಕೆಟ್‌ಗಳಂತಹ ನಿಖರವಾದ ಪ್ರತಿಕೃತಿಗಳಾಗಿವೆ. ಕೆಲವೊಮ್ಮೆ ಹಲವಾರು ಹೋಲುವಂತಹವುಗಳನ್ನು ಮುದ್ರಿಸಲಾಗುತ್ತದೆ, ಆದರೆ ಪ್ರತಿಯೊಂದೂ ಸ್ವಲ್ಪ ವಿಭಿನ್ನವಾಗಿದೆ, ಉದಾಹರಣೆಗೆ ನಿಗದಿಪಡಿಸಿದ ಆಸನದೊಂದಿಗೆ ಟಿಕೆಟ್. ಇವುಗಳನ್ನು ಟಿಕೆಟ್ ನಿರ್ವಾಹಕರಿಗೆ ಹಣ ಪಾವತಿಸದೆ ಸಹಪಾಠಿಯಿಂದ ಸಹಪಾಠಿಗೆ ಖರೀದಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಖರೀದಿದವನು ಕಾಂಟ್ರಾಕ್ಟ್ ವಿಳಾಸವನ್ನು ಪರಿಶೀಲಿಸಿ ಟಿಕೆಟ್ ಅಸಲಿಯಾದದ್ದು ಎಂದು ಯಾವಾಗಲೂ ಖಾತರಿಯಾಗಿರುತ್ತದೆ. + +Ethereum.org ನಲ್ಲಿ, ಜನರು ನಮ್ಮ ಗಿಟ್‍ಹಬ್ ಭಂಡಾರಕ್ಕೆ ಕೊಡುಗೆ ನೀಡಿದ್ದಾರೆ ಅಥವಾ ಕರೆಗಳಿಗೆ ಹಾಜರಾಗಿದ್ದಾರೆ ಎಂದು ಪ್ರದರ್ಶಿಸಲು NFT ಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ, ಮತ್ತು ನಾವು ನಮ್ಮ ಸ್ವಂತ NFT ಡೊಮೇನ್ ಹೆಸರನ್ನು ಸಹ ಹೊಂದಿದ್ದೇವೆ. ನೀವು ethereum.org ಕೊಡುಗೆ ನೀಡಿದರೆ, ನೀವು POAP NFTಯನ್ನು ಕ್ಲೈಮ್ ಮಾಡಬಹುದು. ಕೆಲವು ಕ್ರಿಪ್ಟೋ ಮೀಟಪ್‍ಗಳು POAPಗಳನ್ನು ಟಿಕೆಟ್‍ಗಳಾಗಿ ಬಳಸಿವೆ. [ಕೊಡುಗೆ ನೀಡುವ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು](/contributing/#poap). + +![ethereum.org POAP](./poap.png) + +ಅವರ ವೆಬ್‍ಸೈಟ್ NFT ಗಳಿಂದ ಚಾಲಿತ ಪರ್ಯಾಯ ಡೊಮೇನ್ ಹೆಸರನ್ನು ಸಹ ಹೊಂದಿದೆ**ethereum.eth**. ನಮ್ಮ `.org` ವಿಳಾಸವನ್ನು ಡೊಮೇನ್ ನೇಮ್ ಸಿಸ್ಟಮ್ (DNS) ಪೂರೈಕೆದಾರರು ಕೇಂದ್ರೀಯವಾಗಿ ನಿರ್ವಹಿಸುತ್ತಾರೆ, ಆದರೆ ಇಥಿರಿಯಮ್`.ಇಥ್` ಅನ್ನು ಇಥಿರಿಯಮ್ ನೇಮ್ ಸರ್ವೀಸ್ (ENS) ಮೂಲಕ ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ನೋಂದಾಯಿಸಲಾಗಿದೆ. ಮತ್ತು ಇದು ನಮ್ಮ ಒಡೆತನದಲ್ಲಿದೆ ಮತ್ತು ನಿರ್ವಹಿಸಲ್ಪಡುತ್ತದೆ. [ನಮ್ಮ ENS ದಾಖಲೆಯನ್ನು ಪರಿಶೀಲಿಸಿ](https://app.ens.domains/name/ethereum.eth) + +[ENS ಬಗ್ಗೆ ಇನ್ನಷ್ಟು](https://app.ens.domains) + + + +### NFT ಭದ್ರತೆ {#nft-security} + +ಇಥಿರಿಯಮ್‍ನ ಭದ್ರತೆಯು proof-of-stake ನಿಂದ ಬರುತ್ತದೆ. ದುರುದ್ದೇಶಪೂರಿತ ಕ್ರಮಗಳನ್ನು ಆರ್ಥಿಕವಾಗಿ ಉತ್ತೇಜಿಸಲು ಈ ವ್ಯವಸ್ಥೆಯನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ, ಇದು ಇಥಿರಿಯಮ್ ಟ್ಯಾಂಪರ್-ಪ್ರೂಫ್ ಮಾಡುತ್ತದೆ. ಇದು NFT ಗಳನ್ನು ಸಾಧ್ಯವಾಗಿಸುತ್ತದೆ. ನಿಮ್ಮ NFT ವಹಿವಾಟನ್ನು ಒಳಗೊಂಡಿರುವ ಬ್ಲಾಕ್ ಅಂತಿಮಗೊಂಡ ನಂತರ ಅದನ್ನು ಬದಲಾಯಿಸಲು ಆಕ್ರಮಣಕಾರನಿಗೆ ಲಕ್ಷಾಂತರ ETH ವೆಚ್ಚವಾಗುತ್ತದೆ. ಇಥಿರಿಯಮ್ ಸಾಫ್ಟ್ ವೇರ್ ಅನ್ನು ಚಾಲನೆ ಮಾಡುವ ಯಾರಾದರೂ ತಕ್ಷಣವೇ NFTಯೊಂದಿಗೆ ಅಪ್ರಾಮಾಣಿಕ ತಿರುಚುವಿಕೆಯನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ, ಮತ್ತು ಕೆಟ್ಟ ನಟನಿಗೆ ಆರ್ಥಿಕವಾಗಿ ದಂಡ ವಿಧಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಹೊರಹಾಕಲಾಗುತ್ತದೆ. + +NFTಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ಭದ್ರತಾ ಸಮಸ್ಯೆಗಳು ಹೆಚ್ಚಾಗಿ ಫಿಶಿಂಗ್ ಹಗರಣಗಳು, ಸ್ಮಾರ್ಟ್ ಗುತ್ತಿಗೆ ದುರ್ಬಲತೆಗಳು ಅಥವಾ ಬಳಕೆದಾರ ದೋಷಗಳಿಗೆ ಸಂಬಂಧಿಸಿವೆ (ಅಜಾಗರೂಕತೆಯಿಂದ ಖಾಸಗಿ ಕೀಲಿಗಳನ್ನು ಬಹಿರಂಗಪಡಿಸುವುದು), NFT ಮಾಲೀಕರಿಗೆ ಉತ್ತಮ ವ್ಯಾಲೆಟ್ ಭದ್ರತೆಯನ್ನು ನಿರ್ಣಾಯಕವಾಗಿಸುತ್ತದೆ. + + + ಭದ್ರತೆಯ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು + + +## Further reading {#further-reading} + +- [NFT ಗಳಿಗೆ ಆರಂಭಿಕ ಮಾರ್ಗದರ್ಶಿ](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) - _ Linda Xie, January 2020_ +- [EtherscanNFT ಟ್ರ್ಯಾಕರ್](https://etherscan.io/nft-top-contracts) +- [ERC-721 ಟೋಕನ್ ಸ್ಟ್ಯಾಂಡರ್ಡ್](/developers/docs/standards/tokens/erc-721/) +- [ERC-1155 ಟೋಕನ್ ಸ್ಟ್ಯಾಂಡರ್ಡ್](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/public/content/translations/kn/refi/index.md b/public/content/translations/kn/refi/index.md new file mode 100644 index 00000000000..1b3acc45baa --- /dev/null +++ b/public/content/translations/kn/refi/index.md @@ -0,0 +1,79 @@ +--- +title: ಪುನರುತ್ಪಾದಕ ಹಣಕಾಸು (ReFi) +description: ReFi ಮತ್ತು ಅದರ ಪ್ರಸ್ತುತ ಬಳಕೆಯ ಪ್ರಕರಣಗಳ ಅವಲೋಕನ. +lang: kn +template: use-cases +emoji: ":ಮರುಬಳಕೆ:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: ಪುನರುತ್ಪಾದಕ ತತ್ವಗಳ ಮೇಲೆ ನಿರ್ಮಿಸಲಾದ ಪರ್ಯಾಯ ಆರ್ಥಿಕ ವ್ಯವಸ್ಥೆ +summaryPoint2: ಹವಾಮಾನ ಬದಲಾವಣೆಯಂತಹ ಜಾಗತಿಕ ಮಟ್ಟದ ಸಮನ್ವಯ ಬಿಕ್ಕಟ್ಟುಗಳನ್ನು ಪರಿಹರಿಸಲು ಇಥಿರಿಯಮ್ಅನ್ನು ಬಳಸಿಕೊಳ್ಳುವ ಪ್ರಯತ್ನ +summaryPoint3: ಪರಿಶೀಲಿಸಿದ ಕಾರ್ಬನ್ ಕ್ರೆಡಿಟ್‌ಗಳಂತಹ ಪರಿಸರ ಲಾಭದ ಸ್ವತ್ತುಗಳನ್ನು ತೀವ್ರವಾಗಿ ಅಳೆಯುವ ಸಾಧನ +--- + +## ReFi ಎಂದರೇನು? {#what-is-refi} + +**ಪುನರುತ್ಪಾದಕ ಹಣಕಾಸು (ReFi)** ಎಂಬುದು ಬ್ಲಾಕ್ಚೈನ್ಗಳ ಮೇಲೆ ನಿರ್ಮಿಸಲಾದ ಸಾಧನಗಳು ಮತ್ತು ಆಲೋಚನೆಗಳ ಒಂದು ಗುಂಪಾಗಿದೆ, ಇದು ಹೊರತೆಗೆಯುವ ಅಥವಾ ಶೋಷಕ ಮಾಡುವ ಬದಲು ಪುನರುತ್ಪಾದಕ ಆರ್ಥಿಕತೆಗಳನ್ನು ರಚಿಸುವ ಗುರಿಯನ್ನು ಹೊಂದಿದೆ. ಅಂತಿಮವಾಗಿ, ಹೊರತೆಗೆಯುವ ವ್ಯವಸ್ಥೆಗಳು ಲಭ್ಯವಿರುವ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಖಾಲಿ ಮಾಡುತ್ತವೆ ಮತ್ತು ಕುಸಿಯುತ್ತವೆ; ಪುನರುತ್ಪಾದಕ ಕಾರ್ಯವಿಧಾನಗಳಿಲ್ಲದೆ, ಅವು ಸ್ಥಿತಿಸ್ಥಾಪಕತ್ವವನ್ನು ಹೊಂದಿರುವುದಿಲ್ಲ. ನಮ್ಮ ಗ್ರಹ ಮತ್ತು ಸಮುದಾಯಗಳಿಂದ ಸಂಪನ್ಮೂಲಗಳ ಸಮರ್ಥನೀಯವಲ್ಲದ ಹೊರತೆಗೆಯುವಿಕೆಯಿಂದ ವಿತ್ತೀಯ ಮೌಲ್ಯದ ಸೃಷ್ಟಿಯನ್ನು ಬೇರ್ಪಡಿಸಬೇಕು ಎಂಬ ಊಹೆಯ ಮೇಲೆ ReFi ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. + +ಬದಲಿಗೆ, ReFi ಪುನರುತ್ಪಾದಕ ಚಕ್ರಗಳನ್ನು ರಚಿಸುವ ಮೂಲಕ ಪರಿಸರ, ಸಾಮುದಾಯಿಕ ಅಥವಾ ಸಾಮಾಜಿಕ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸುವ ಗುರಿಯನ್ನು ಹೊಂದಿದೆ. ಈ ವ್ಯವಸ್ಥೆಗಳು ಭಾಗವಹಿಸುವವರಿಗೆ ಮೌಲ್ಯವನ್ನು ಸೃಷ್ಟಿಸುತ್ತವೆ ಮತ್ತು ಜೀವವ್ಯವಸ್ಥೆಗಳು ಮತ್ತು ಸಮುದಾಯಗಳಿಗೆ ಪ್ರಯೋಜನವನ್ನುಂಟುಮಾಡುತ್ತವೆ. + +[ಕ್ಯಾಪಿಟಲ್ ಇನ್‍ಸ್ಟಿಟ್ಯೂಟ್‍ನ](https://capitalinstitute.org) ಜಾನ್ ಫುಲ್ಲರ್ಟನ್ ಅವರು ಪ್ರವರ್ತಕರಾದ ಪುನರುತ್ಪಾದಕ ಅರ್ಥಶಾಸ್ತ್ರದ ಪರಿಕಲ್ಪನೆಯು ReFi ನ ಅಡಿಪಾಯಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ. ಅವರು ವ್ಯವಸ್ಥಿತ ಆರೋಗ್ಯಕ್ಕೆ ಆಧಾರವಾಗಿರುವ ಎಂಟು ಅಂತರ್ಸಂಪರ್ಕಿತ ತತ್ವಗಳನ್ನು ಪ್ರಸ್ತಾಪಿಸಿದರು: + +![ಎಂಟು ಪರಸ್ಪರ ಸಂಬಂಧಿತ ತತ್ವಗಳು](refi-regenerative-economy-diagram.png) + +ಪುನರುತ್ಪಾದಕ ನಡವಳಿಕೆಗಳನ್ನು ಉತ್ತೇಜಿಸಲು [ಸ್ಮಾರ್ಟ್ ಒಪ್ಪಂದಗಳು](/developers/docs/smart-contracts/) ಮತ್ತು [ವಿಕೇಂದ್ರೀಕೃತ ಹಣಕಾಸು (ಡಿಫೈ)](/defi/) ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ReFi ರೀಫೈ ಯೋಜನೆಗಳು ಈ ತತ್ವಗಳನ್ನು ಅರಿತುಕೊಳ್ಳುತ್ತವೆ, ಉದಾಹರಣೆಗೆ ಅವನತಿ ಹೊಂದಿದ ಪರಿಸರ ವ್ಯವಸ್ಥೆಗಳನ್ನು ಪುನಃಸ್ಥಾಪಿಸುವುದು ಮತ್ತು ಹವಾಮಾನ ಬದಲಾವಣೆ ಮತ್ತು ಜೀವವೈವಿಧ್ಯತೆಯ ನಷ್ಟದಂತಹ ಜಾಗತಿಕ ವಿಷಯಗಳ ಮೇಲೆ ದೊಡ್ಡ ಪ್ರಮಾಣದ ಸಹಯೋಗವನ್ನು ಸುಗಮಗೊಳಿಸುವುದು. + +ವೈಜ್ಞಾನಿಕ ಜ್ಞಾನವನ್ನು ಹಣಕಾಸು, ರಚಿಸಲು, ಪರಿಶೀಲಿಸಲು, ಕ್ರೆಡಿಟ್ ಮಾಡಲು, ಸಂಗ್ರಹಿಸಲು ಮತ್ತು ಪ್ರಸಾರ ಮಾಡಲು ಇಥಿರಿಯಮ್ ಅನ್ನು ವೇದಿಕೆಯಾಗಿ ಬಳಸುವ [ವಿಕೇಂದ್ರೀಕೃತ ವಿಜ್ಞಾನ (DeSci)](/desci/) ಚಳವಳಿಯೊಂದಿಗೆ ರೀಫೈ ಅತಿಕ್ರಮಿಸುತ್ತದೆ. ಡಿಸ್ಯೆ ಉಪಕರಣಗಳು ಮರಗಳನ್ನು ನೆಡುವುದು, ಸಾಗರದಿಂದ ಪ್ಲಾಸ್ಟಿಕ್ ತೆಗೆಯುವುದು ಅಥವಾ ಹಾನಿಗೊಳಗಾದ ಪರಿಸರ ವ್ಯವಸ್ಥೆಯನ್ನು ಪುನಃಸ್ಥಾಪಿಸುವಂತಹ ಪುನರುತ್ಪಾದಕ ಚಟುವಟಿಕೆಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಮತ್ತು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಲು ಸಾಕ್ಷೀಕರಿಸಬಹುದಾದ ಮಾನದಂಡಗಳು ಮತ್ತು ಅಭ್ಯಾಸಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ಉಪಯುಕ್ತವಾಗಬಹುದು. + +## ಕಾರ್ಬನ್ ಕ್ರೆಡಿಟ್‌ಗಳ ಟೋಕನೈಸೇಶನ್ {#tokenization-of-carbon-credits} + +**[ಸ್ವಯಂಪ್ರೇರಿತ ಇಂಗಾಲದ ಮಾರುಕಟ್ಟೆ (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** ಇಂಗಾಲದ ಹೊರಸೂಸುವಿಕೆಯ ಮೇಲೆ ಸಕಾರಾತ್ಮಕ ಪರಿಣಾಮ ಬೀರುವ ಯೋಜನೆಗಳಿಗೆ ಧನಸಹಾಯ ನೀಡುವ ಕಾರ್ಯವಿಧಾನವಾಗಿದೆ, ನಡೆಯುತ್ತಿರುವ ಹೊರಸೂಸುವಿಕೆಯನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ ಅಥವಾ ವಾತಾವರಣದಿಂದ ಈಗಾಗಲೇ ಹೊರಸೂಸುವ ಹಸಿರುಮನೆ ಅನಿಲಗಳನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ. ಈ ಯೋಜನೆಗಳು ಪರಿಶೀಲಿಸಿದ ನಂತರ "ಕಾರ್ಬನ್ ಕ್ರೆಡಿಟ್‌ಗಳು" ಎಂಬ ಸ್ವತ್ತನ್ನು ಸ್ವೀಕರಿಸುತ್ತವೆ, ಅವರು ಹವಾಮಾನ ಕ್ರಿಯೆಯನ್ನು ಬೆಂಬಲಿಸಲು ಬಯಸುವ ವ್ಯಕ್ತಿಗಳು ಮತ್ತು ಸಂಸ್ಥೆಗಳಿಗೆ ಮಾರಾಟ ಮಾಡಬಹುದು. + +VCM ಜೊತೆಗೆ, ಹಲವಾರು ಸರ್ಕಾರಿ-ನಿರ್ದೇಶಿತ ಕಾರ್ಬನ್ ಮಾರುಕಟ್ಟೆಗಳು ('ಅನುಸರಣೆ ಮಾರುಕಟ್ಟೆಗಳು') ಸಹ ಇವೆ, ಇದು ಒಂದು ನಿರ್ದಿಷ್ಟ ನ್ಯಾಯವ್ಯಾಪ್ತಿಯೊಳಗೆ (ಉದಾ. ದೇಶ ಅಥವಾ ಪ್ರದೇಶ) ಕಾನೂನುಗಳು ಅಥವಾ ನಿಯಮಗಳ ಮೂಲಕ ಇಂಗಾಲದ ಬೆಲೆಯನ್ನು ಸ್ಥಾಪಿಸುವ ಗುರಿಯನ್ನು ಹೊಂದಿದೆ, ಇದು ಪರವಾನಗಿಗಳ ಪೂರೈಕೆಯನ್ನು ನಿಯಂತ್ರಿಸುತ್ತದೆ. ವಿತರಣೆ. ಕಾನೂನುಬದ್ಧ ಮಾರುಕಟ್ಟೆಗಳು ತಮ್ಮ ಅಧಿಕಾರ ವ್ಯಾಪ್ತಿಯಲ್ಲಿರುವ ಮಾಲಿನ್ಯಕಾರಕರಿಗೆ ಹೊರಸೂಸುವಿಕೆಯನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಪ್ರೋತ್ಸಾಹ ನೀಡುತ್ತವೆ, ಆದರೆ ಈಗಾಗಲೇ ಹೊರಸೂಸಲ್ಪಟ್ಟ ಹಸಿರುಮನೆ ಅನಿಲಗಳನ್ನು ತೆಗೆದುಹಾಕಲು ಅವು ಸಮರ್ಥವಾಗಿರುವುದಿಲ್ಲ. + +ಇತ್ತೀಚಿನ ದಶಕಗಳಲ್ಲಿ ಅದರ ಅಭಿವೃದ್ಧಿಯ ಹೊರತಾಗಿಯೂ, VCM ವಿವಿಧ ಸಮಸ್ಯೆಗಳಿಂದ ಬಳಲುತ್ತಿದೆ: + +1. ಹೆಚ್ಚು ವಿಭಜಿತ ದ್ರವ್ಯತೆ +2. ಅಪಾರದರ್ಶಕ ವಹಿವಾಟು ಕಾರ್ಯವಿಧಾನಗಳು +3. ಹೆಚ್ಚಿನ ಶುಲ್ಕ +4. ಬಹಳ ನಿಧಾನಗತಿಯ ವ್ಯಾಪಾರ ವೇಗ +5. ಸ್ಕೇಲಬಿಲಿಟಿಯ ಕೊರತೆ + +VCM ಅನ್ನು ಹೊಸ ಬ್ಲಾಕ್ಚೈನ್ ಆಧಾರಿತ **ಡಿಜಿಟಲ್ ಕಾರ್ಬನ್ ಮಾರುಕಟ್ಟೆಗೆ (DCM)** ಪರಿವರ್ತಿಸುವುದು ಇಂಗಾಲದ ಕ್ರೆಡಿಟ್ಗಳನ್ನು ಮೌಲ್ಯೀಕರಿಸಲು, ವಹಿವಾಟು ನಡೆಸಲು ಮತ್ತು ಬಳಸಲು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ತಂತ್ರಜ್ಞಾನವನ್ನು ನವೀಕರಿಸಲು ಒಂದು ಅವಕಾಶವಾಗಿದೆ. ಬ್ಲಾಕ್‌ಚೈನ್‌ಗಳು ಸಾರ್ವಜನಿಕವಾಗಿ ಪರಿಶೀಲಿಸಬಹುದಾದ ಡೇಟಾ, ವ್ಯಾಪಕ ಶ್ರೇಣಿಯ ಬಳಕೆದಾರರಿಗೆ ಪ್ರವೇಶ ಮತ್ತು ಹೆಚ್ಚಿನ ದ್ರವ್ಯತೆಗಾಗಿ ಅನುಮತಿಸುತ್ತದೆ. + +ಸಾಂಪ್ರದಾಯಿಕ ಮಾರುಕಟ್ಟೆಯ ಅನೇಕ ಸಮಸ್ಯೆಗಳನ್ನು ನಿವಾರಿಸಲು ReFi ರೀಫೈ ಯೋಜನೆಗಳು ಬ್ಲಾಕ್ ಚೈನ್ ತಂತ್ರಜ್ಞಾನವನ್ನು ಬಳಸುತ್ತವೆ: + +- **ಲಿಕ್ವಿಡಿಟಿ ಕಡಿಮೆ ಸಂಖ್ಯೆಯ liquidity pools -ದ್ರವ್ಯತೆ ಕೊಳಗಳಲ್ಲಿ ಕೇಂದ್ರೀಕೃತವಾಗಿದೆ**, ಅದನ್ನು ಯಾರು ಬೇಕಾದರೂ ಮುಕ್ತವಾಗಿ ವ್ಯಾಪಾರ ಮಾಡಬಹುದು. ದೊಡ್ಡ ಸಂಸ್ಥೆಗಳು ಹಾಗೂ ವೈಯಕ್ತಿಕ ಬಳಕೆದಾರರು ಈ ಗುಂಪುಗಳನ್ನು ಮಾರಾಟಗಾರರು/ಖರೀದಿದಾರರ ಕೈಗಾರಿಕ ಶೋಧಗಳಿಲ್ಲದೆ, ಭಾಗವಹಿಸುವಿಕೆ ಶುಲ್ಕಗಳು ಅಥವಾ ಮೊದಲಿನ ನೋಂದಣಿ ಇಲ್ಲದೆ ಬಳಸಬಹುದು. +- **ಎಲ್ಲಾ ವಹಿವಾಟುಗಳನ್ನು ಸಾರ್ವಜನಿಕ ಬ್ಲಾಕ್ ಚೈನ್ ಗಳಲ್ಲಿ ದಾಖಲಿಸಲಾಗುತ್ತದೆ**. ವ್ಯಾಪಾರ ಚಟುವಟಿಕೆಯಿಂದಾಗಿ ಪ್ರತಿ ಇಂಗಾಲದ ಕ್ರೆಡಿಟ್ ತೆಗೆದುಕೊಳ್ಳುವ ಮಾರ್ಗವನ್ನು DCMನಲ್ಲಿ ಲಭ್ಯವಾದ ಕೂಡಲೇ ಶಾಶ್ವತವಾಗಿ ಪತ್ತೆಹಚ್ಚಬಹುದು. +- **ವಹಿವಾಟಿನ ವೇಗವು ಬಹುತೇಕ ತ್ವರಿತವಾಗಿರುತ್ತದೆ**. ಪಾರಂಪರಿಕ ಮಾರುಕಟ್ಟೆಗಳ ಮೂಲಕ ದೊಡ್ಡ ಪ್ರಮಾಣದ ಇಂಗಾಲದ ಕ್ರೆಡಿಟ್ ಗಳನ್ನು ಪಡೆಯಲು ದಿನಗಳು ಅಥವಾ ವಾರಗಳು ತೆಗೆದುಕೊಳ್ಳಬಹುದು, ಆದರೆ ಇದನ್ನು DCMನಲ್ಲಿ ಕೆಲವೇ ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಸಾಧಿಸಬಹುದು. +- ಹೆಚ್ಚಿನ ಶುಲ್ಕವನ್ನು ವಿಧಿಸುವ **ಮಧ್ಯವರ್ತಿಗಳಿಲ್ಲದೆ ವ್ಯಾಪಾರ** ಚಟುವಟಿಕೆ ನಡೆಯುತ್ತದೆ. ಡಿಜಿಟಲ್ ಕಾರ್ಬನ್ ಕ್ರೆಡಿಟ್ಗಳು ಸಮಾನ ಸಾಂಪ್ರದಾಯಿಕ ಕ್ರೆಡಿಟ್ಗಳಿಗೆ ಹೋಲಿಸಿದರೆ [62% ವೆಚ್ಚ ಸುಧಾರಣೆಯನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತವೆ](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne) ಎಂದು ಒಂದು ವಿಶ್ಲೇಷಣಾತ್ಮಕ ಸಂಸ್ಥೆಯ ಡೇಟಾ ತಿಳಿಸಿದೆ. +- **DCM ಸ್ಕೇಲೆಬಲ್** ಮತ್ತು ವ್ಯಕ್ತಿಗಳು ಮತ್ತು ಬಹುರಾಷ್ಟ್ರೀಯ ನಿಗಮಗಳ ಬೇಡಿಕೆಗಳನ್ನು ಸಮಾನವಾಗಿ ಪೂರೈಸಬಹುದು. + +### DCMನ ಪ್ರಮುಖ ಅಂಶಗಳು {#key-components-dcm} + +DCMನ ಪ್ರಸ್ತುತ ಭೂದೃಶ್ಯವನ್ನು ನಾಲ್ಕು ಪ್ರಮುಖ ಅಂಶಗಳು ರೂಪಿಸುತ್ತವೆ: + +1. [Verra](https://verra.org/project/vcs-program/registry-system/) ಮತ್ತು [ಗೋಲ್ಡ್ ಸ್ಟ್ಯಾಂಡರ್ಡ್](https://www.goldstandard.org/) ನಂತಹ ರಿಜಿಸ್ಟ್ರಿಗಳು ಇಂಗಾಲದ ಕ್ರೆಡಿಟ್ ಗಳನ್ನು ರಚಿಸುವ ಯೋಜನೆಗಳು ವಿಶ್ವಾಸಾರ್ಹವಾಗಿವೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತವೆ. ಡಿಜಿಟಲ್ ಕಾರ್ಬನ್ ಕ್ರೆಡಿಟ್ ಗಳು ಹುಟ್ಟುವ ಡೇಟಾಬೇಸ್ ಗಳನ್ನು ಸಹ ಅವರು ನಿರ್ವಹಿಸುತ್ತಾರೆ ಮತ್ತು ವರ್ಗಾಯಿಸಬಹುದು ಅಥವಾ ಬಳಸಬಹುದು (ನಿವೃತ್ತ). + +ಬ್ಲಾಕ್ ಚೈನ್ ಗಳಲ್ಲಿ ನವೀನ ಯೋಜನೆಗಳ ಹೊಸ ಅಲೆಯನ್ನು ನಿರ್ಮಿಸಲಾಗುತ್ತಿದೆ, ಅದು ಈ ವಲಯದಲ್ಲಿ ಅಧಿಕಾರದಲ್ಲಿರುವವರನ್ನು ಅಡ್ಡಿಪಡಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದೆ. + +2. Carbon bridges ಕಾರ್ಬನ್ ಸೇತುವೆಗಳು, a.k.a. ಟೋಕನೈಜರ್‌ಗಳು, ಸಾಂಪ್ರದಾಯಿಕ ದಾಖಲಾತಿಗಳಿಂದ DCM ಗೆ ಕಾರ್ಬನ್ ಕ್ರೆಡಿಟ್‌ಗಳನ್ನು ಪ್ರತಿನಿಧಿಸಲು ಅಥವಾ ವರ್ಗಾಯಿಸಲು ತಂತ್ರಜ್ಞಾನವನ್ನು ಒದಗಿಸುತ್ತವೆ. ಗಮನಾರ್ಹ ಉದಾಹರಣೆಗಳಲ್ಲಿ [Toucan - ಟೌಕನ್ ಪ್ರೋಟೋಕಾಲ್](https://toucan.earth/), [C3](https://c3.app/), ಮತ್ತು [Moss.Earth](https://moss.earth/) ಸೇರಿವೆ. +3. ಸಂಯೋಜಿತ ಸೇವೆಗಳು ಅಂತ್ಯ-ಬಳಕೆದಾರರಿಗೆ ಕಾರ್ಬನ್ ತಪ್ಪಿಸುವಿಕೆ ಮತ್ತು/ಅಥವಾ ತೆಗೆಯುವಿಕೆ ಕ್ರೆಡಿಟ್‌ಗಳನ್ನು ನೀಡುತ್ತವೆ, ಅವರು ಕ್ರೆಡಿಟ್‌ನ ಪರಿಸರೀಯ ಲಾಭವನ್ನು ಹಕ್ಕು ಸ್ಥಾಪಿಸಬಹುದು ಮತ್ತು ವಿಶ್ವದೊಂದಿಗೆ ಹವಾಮಾನ ಕ್ರಮಗಳ ಬಗ್ಗೆ ತಮ್ಮ ಬೆಂಬಲವನ್ನು ಹಂಚಿಕೊಳ್ಳಬಹುದು. + +[ಕ್ಲಿಮಾ ಇನ್ಫಿನಿಟಿ](https://www.klimadao.finance/infinity) ಮತ್ತು [ಸೆಂಕೆನ್](https://senken.io/) ನಂತಹ ಕೆಲವು ಮೂರನೇ ಪಕ್ಷಗಳು ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಮತ್ತು ವೆರಾದಂತಹ ಸ್ಥಾಪಿತ ಮಾನದಂಡಗಳ ಅಡಿಯಲ್ಲಿ ನೀಡಲಾದ ವಿವಿಧ ರೀತಿಯ ಯೋಜನೆಗಳನ್ನು ನೀಡುತ್ತವೆ; [Nori](https://nori.com/) ನೋರಿಯಂತಹ ಇತರರು ತಮ್ಮದೇ ಆದ ಕಾರ್ಬನ್ ಕ್ರೆಡಿಟ್ ಮಾನದಂಡದ ಅಡಿಯಲ್ಲಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ನಿರ್ದಿಷ್ಟ ಯೋಜನೆಗಳನ್ನು ಮಾತ್ರ ನೀಡುತ್ತಾರೆ, ಅದಕ್ಕಾಗಿ ಅವರು ತಮ್ಮದೇ ಆದ ಮೀಸಲಾದ ಮಾರುಕಟ್ಟೆಯನ್ನು ಹೊಂದಿದ್ದಾರೆ. + +4. ಇಂಗಾಲದ ಮಾರುಕಟ್ಟೆಯ ಸಂಪೂರ್ಣ ಪೂರೈಕೆ ಸರಪಳಿಯ ಪ್ರಭಾವ ಮತ್ತು ದಕ್ಷತೆಯ ಸ್ಕೇಲಿಂಗ್ ಅನ್ನು ಸುಗಮಗೊಳಿಸುವ ಆಧಾರವಾಗಿರುವ ಹಳಿಗಳು ಮತ್ತು ಮೂಲಸೌಕರ್ಯಗಳು. [KlimaDAO - ಕ್ಲಿಮಾಡಾವೊ](http://klimadao.finance/) ದ್ರವ್ಯತೆಯನ್ನು ಸಾರ್ವಜನಿಕ ಸರಕಾಗಿ ಪೂರೈಸುತ್ತದೆ (ಪಾರದರ್ಶಕ ಬೆಲೆಯಲ್ಲಿ ಇಂಗಾಲದ ಕ್ರೆಡಿಟ್ ಗಳನ್ನು ಖರೀದಿಸಲು ಅಥವಾ ಮಾರಾಟ ಮಾಡಲು ಯಾರಿಗಾದರೂ ಅವಕಾಶ ನೀಡುತ್ತದೆ), ಇಂಗಾಲದ ಮಾರುಕಟ್ಟೆಗಳ ಹೆಚ್ಚಳವನ್ನು ಉತ್ತೇಜಿಸುತ್ತದೆ ಮತ್ತು ಪ್ರತಿಫಲಗಳೊಂದಿಗೆ ನಿವೃತ್ತಿಗಳನ್ನು ಉತ್ತೇಜಿಸುತ್ತದೆ ಮತ್ತು ವಿವಿಧ ರೀತಿಯ ಟೋಕನೈಸ್ಡ್ ಕಾರ್ಬನ್ ಕ್ರೆಡಿಟ್ ಗಳ ಬಗ್ಗೆ ಡೇಟಾವನ್ನು ಪ್ರವೇಶಿಸಲು ಮತ್ತು ಸ್ವಾಧೀನಪಡಿಸಿಕೊಳ್ಳಲು ಮತ್ತು ನಿವೃತ್ತರಾಗಲು ಬಳಕೆದಾರ ಸ್ನೇಹಿ ಇಂಟರ್ ಆಪರೇಬಲ್ ಟೂಲಿಂಗ್ ಅನ್ನು ಒದಗಿಸುತ್ತದೆ. + +## ಇಂಗಾಲದ ಮಾರುಕಟ್ಟೆಗಳನ್ನು ಮೀರಿ ReFi {#refi-beyond} + +ಕಾರ್ಬನ್ ಮಾರುಕಟ್ಟೆಗಳ ಮೇಲೆ ಒತ್ತು ನೀಡುವ ಪ್ರವೃತ್ತಿ ಇದ್ದರೂ ಮತ್ತು ವಿಶೇಷವಾಗಿ ವಿಶ್ವ ಕಾರ್ಬನ್ ಮಾರುಕಟ್ಟೆಯನ್ನು VCM ಡೆವಲಪಿಂಗ್ ಕೌಂಟ್ರಿ ಮಾರುಕಟ್ಟೆಗೆ DCM ಪರಿವರ್ತಿಸುತ್ತಿರುವಾಗಲೂ, “ReFi” ಪದವು ಕೇವಲ ಕಾರ್ಬನ್‌ಗೆ ಸೀಮಿತವಾಗಿಲ್ಲ. ಇತರ ಪರಿಸರೀಯ ಆಸ್ತಿಗಳನ್ನು ಕಾರ್ಬನ್ ಕ್ರೆಡಿಟ್‌ಗಳ ಜೊತೆಗೆ ಅಭಿವೃದ್ಧಿಪಡಿಸಬಹುದು ಮತ್ತು ಟೋಕೆನೈಸ್ಡ್ ಮಾಡಬಹುದು, ಇದರಿಂದಾಗಿ ಭವಿಷ್ಯದ ಆರ್ಥಿಕ ವ್ಯವಸ್ಥೆಗಳ ಮೂಲ ಸ್ತರಗಳಲ್ಲಿ ಇತರ ನಕಾರಾತ್ಮಕ ಹೊರಗಿನ ವೆಚ್ಚಗಳನ್ನು ಕೂಡ ಬೆಲೆಗೆ ಇಡಬಹುದು. ಇದಲ್ಲದೆ, ಈ ಆರ್ಥಿಕ ಮಾದರಿಯ ಪುನರುತ್ಪಾದಕ ಅಂಶವನ್ನು ಇತರ ಕ್ಷೇತ್ರಗಳಿಗೆ ಅನ್ವಯಿಸಬಹುದು, ಉದಾಹರಣೆಗೆ [Gitcoin](https://gitcoin.co/) ಗಿಟ್‍ಕಾಯಿನ್‍ನಂತಹ ಕ್ವಾಡ್ರಾಟಿಕ್ ಫಂಡಿಂಗ್ ಪ್ಲಾಟ್‍ಫಾರ್ಮ್‍ಗಳ ಮೂಲಕ ಸಾರ್ವಜನಿಕ ಸರಕುಗಳಿಗೆ ಧನಸಹಾಯ. ಮುಕ್ತ ಭಾಗವಹಿಸುವಿಕೆ ಮತ್ತು ಸಂಪನ್ಮೂಲಗಳ ಸಮಾನ ವಿತರಣೆಯ ಕಲ್ಪನೆಯ ಮೇಲೆ ನಿರ್ಮಿಸಲಾದ ಸಂಸ್ಥೆಗಳು ಮುಕ್ತ-ಮೂಲ ಸಾಫ್ಟ್‌ವೇರ್ ಯೋಜನೆಗಳಿಗೆ, ಹಾಗೆಯೇ ಶೈಕ್ಷಣಿಕ, ಪರಿಸರ ಮತ್ತು ಸಮುದಾಯ-ಚಾಲಿತ ಯೋಜನೆಗಳಿಗೆ ಹಣವನ್ನು ತುಂಬಲು ಎಲ್ಲರಿಗೂ ಅಧಿಕಾರ ನೀಡುತ್ತವೆ. + +ಬಂಡವಾಳದ ದಿಕ್ಕನ್ನು ಹೊರತೆಗೆಯುವ ಅಭ್ಯಾಸಗಳಿಂದ ಪುನರುತ್ಪಾದಕ ಹರಿವಿನ ಕಡೆಗೆ ಬದಲಾಯಿಸುವ ಮೂಲಕ, ಸಾಮಾಜಿಕ, ಪರಿಸರ ಅಥವಾ ಸಾಮುದಾಯಿಕ ಪ್ರಯೋಜನಗಳನ್ನು ಒದಗಿಸುವ ಯೋಜನೆಗಳು ಮತ್ತು ಕಂಪನಿಗಳು-ಮತ್ತು ಸಾಂಪ್ರದಾಯಿಕ ಹಣಕಾಸುದಲ್ಲಿ ಹಣವನ್ನು ಸಾಧಿಸಲು ವಿಫಲವಾಗಬಹುದು-ನೆಲದಿಂದ ಹೊರಬರಬಹುದು ಮತ್ತು ಸಮಾಜಕ್ಕೆ ಧನಾತ್ಮಕ ಬಾಹ್ಯತೆಯನ್ನು ಉಂಟುಮಾಡಬಹುದು. ಹೆಚ್ಚು ವೇಗವಾಗಿ ಮತ್ತು ಸುಲಭವಾಗಿ. ನಿಧಿಯ ಈ ಮಾದರಿಗೆ ಪರಿವರ್ತನೆಯು ಹೆಚ್ಚು ಅಂತರ್ಗತ ಆರ್ಥಿಕ ವ್ಯವಸ್ಥೆಗಳಿಗೆ ಬಾಗಿಲು ತೆರೆಯುತ್ತದೆ, ಅಲ್ಲಿ ಎಲ್ಲಾ ಜನಸಂಖ್ಯಾಶಾಸ್ತ್ರದ ಜನರು ಕೇವಲ ನಿಷ್ಕ್ರಿಯ ವೀಕ್ಷಕರ ಬದಲಿಗೆ ಸಕ್ರಿಯ ಪಾಲ್ಗೊಳ್ಳುವವರಾಗಬಹುದು. ನಮ್ಮ ಜಾತಿಗಳು ಮತ್ತು ನಮ್ಮ ಗ್ರಹದಲ್ಲಿನ ಎಲ್ಲಾ ಜೀವಗಳು ಎದುರಿಸುತ್ತಿರುವ ಅಸ್ತಿತ್ವವಾದದ ಸವಾಲುಗಳ ಮೇಲೆ ಕ್ರಿಯೆಯನ್ನು ಸಂಘಟಿಸುವ ಕಾರ್ಯವಿಧಾನವಾಗಿ ReFi ಇಥಿರಿಯಮ್‍ನ ದೃಷ್ಟಿಯನ್ನು ನೀಡುತ್ತದೆ-ಹೊಸ ಆರ್ಥಿಕ ಮಾದರಿಯ ಮೂಲ ಪದರವಾಗಿ, ಮುಂಬರುವ ಶತಮಾನಗಳವರೆಗೆ ಹೆಚ್ಚು ಅಂತರ್ಗತ ಮತ್ತು ಸಮರ್ಥನೀಯ ಭವಿಷ್ಯವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. + +## ReFi ನಲ್ಲಿ ಹೆಚ್ಚುವರಿ ಓದುವಿಕೆ + +- [ಇಂಗಾಲದ ಕರೆನ್ಸಿಗಳ ಉನ್ನತ ಮಟ್ಟದ ಅವಲೋಕನ ಮತ್ತು ಆರ್ಥಿಕತೆಯಲ್ಲಿ ಅವುಗಳ ಸ್ಥಾನ](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) +- [ದಿ ಮಿನಿಸ್ಟ್ರಿ ಫಾರ್ ದಿ ಫ್ಯೂಚರ್, ಹವಾಮಾನ ಬದಲಾವಣೆಯ ವಿರುದ್ಧ ಹೋರಾಡುವಲ್ಲಿ ಇಂಗಾಲ-ಬೆಂಬಲಿತ ಕರೆನ್ಸಿಯ ಪಾತ್ರವನ್ನು ಚಿತ್ರಿಸುವ ಕಾದಂಬರಿ](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) +- [ಸ್ವಯಂಪ್ರೇರಿತ ಇಂಗಾಲದ ಮಾರುಕಟ್ಟೆಗಳನ್ನು ಸ್ಕೇಲಿಂಗ್ ಮಾಡುವ ಕಾರ್ಯಪಡೆಯ ವಿವರವಾದ ವರದಿ](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) +- [ಕೆವಿನ್ ಒವೊಕಿ ಮತ್ತು ಇವಾನ್ ಮಿಯಾಜೋನೊ ಅವರ ReFi ನಲ್ಲಿ ಕಾಯಿನ್‍ಮಾರ್ಕೆಟ್‍ಕ್ಯಾಪ್ ಪದಕೋಶ ನಮೂದು](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/public/content/translations/kn/smart-contracts/index.md b/public/content/translations/kn/smart-contracts/index.md new file mode 100644 index 00000000000..222effa1f63 --- /dev/null +++ b/public/content/translations/kn/smart-contracts/index.md @@ -0,0 +1,84 @@ +--- +title: ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳು +description: ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳಿಗೆ ತಾಂತ್ರಿಕವಲ್ಲದ ಪರಿಚಯ +lang: kn +--- + +# Introduction to smart contracts {#introduction-to-smart-contracts} + +ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳು ಇಥಿರಿಯಮ್ ಅಪ್ಲಿಕೇಶನ್ ಪದರದ ಮೂಲಭೂತ ನಿರ್ಮಾಣ ಘಟಕಗಳಾಗಿವೆ. ಅವುಗಳು ಬ್ಲಾಕ್‌ಚೈನ್‌ನಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿರುವ ಕಂಪ್ಯೂಟರ್ ಕಾರ್ಯಕ್ರಮಗಳಾಗಿವೆ, ಅವು "ಈಗಾಗಲೇ ಇದ್ದರೆ ಆಗ ಅದು" ಎಂಬ ತರ್ಕವನ್ನು ಅನುಸರಿಸುತ್ತವೆ ಮತ್ತು ಅದರ ಕೋಡ್‌ನಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ನಿಯಮಗಳ ಪ್ರಕಾರ ಕಾರ್ಯಗತಗೊಳ್ಳುವ ಖಾತರಿ ನೀಡುತ್ತವೆ, ಅದು ರಚಿಸಿದ ನಂತರ ಬದಲಾಯಿಸಲಾಗುವುದಿಲ್ಲ. + +ನಿಕ್ ಸ್ಜಾಬೊ "ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್" ಎಂಬ ಪದವನ್ನು ರಚಿಸಿದರು. 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). + +ಸ್ಝಾಬೊ ಅವರು ನಂಬಲಾಗದ ಮಧ್ಯವರ್ತಿಗಳಿಲ್ಲದೆ ಒಟಪೋಟವಾಗಿ, ಗುಪ್ತ ಸಂಖ್ಯಾತ್ಮಕವಾಗಿ ಸುರಕ್ಷಿತ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಬಳಸಿ ವಹಿವಾಟುಗಳು ಮತ್ತು ವ್ಯವಹಾರ ಕಾರ್ಯಗಳನ್ನು ನಡೆಯುವ ಒಂದು ಡಿಜಿಟಲ್ ಮಾರುಕಟ್ಟೆಯನ್ನು ಕಲ್ಪಿಸಿಕೊಂಡರು. ಎಥೆರಿಯಮ್ನಲ್ಲಿನ ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳು ಈ ದೃಷ್ಟಿಯನ್ನು ಕಾರ್ಯರೂಪಕ್ಕೆ ತಂದವು. + +## ಸಾಂಪ್ರದಾಯಿಕ ಒಪ್ಪಂದಗಳಲ್ಲಿ ನಂಬಿಕೆ {#trust-and-contracts} + +ಸಾಂಪ್ರದಾಯಿಕ ಒಪ್ಪಂದದ ಅತಿದೊಡ್ಡ ಸಮಸ್ಯೆಯೆಂದರೆ ವಿಶ್ವಾಸಾರ್ಹ ವ್ಯಕ್ತಿಗಳು ಒಪ್ಪಂದದ ಫಲಿತಾಂಶಗಳನ್ನು ಅನುಸರಿಸುವ ಅಗತ್ಯ. + +ಒಂದು ಉದಾಹರಣೆ ಇಲ್ಲಿದೆ: + +ಆಲಿಸ್ ಮತ್ತು ಬಾಬ್ ಬೈಸಿಕಲ್ ರೇಸ್ ನಡೆಸುತ್ತಿದ್ದಾರೆ. ಆಲಿಸ್ ತಾನು ಓಟವನ್ನು ಗೆಲ್ಲುತ್ತೇನೆ ಎಂದು ಬಾಬ್‍ಗೆ $10 ಬೆಟ್ಟಿಂಗ್ ಮಾಡುತ್ತಾಳೆ ಎಂದು ಹೇಳೋಣ. ಬಾಬ್ ಅವರು ವಿಜೇತರಾಗುತ್ತಾರೆ ಎಂಬ ವಿಶ್ವಾಸವಿದೆ ಮತ್ತು ಬೆಟ್ಟಿಂಗ್ ಗೆ ಒಪ್ಪುತ್ತಾರೆ. ಕೊನೆಯಲ್ಲಿ, ಆಲಿಸ್ ಬಾಬ್‍ಗಿಂತ ಮುಂಚಿತವಾಗಿ ರೇಸ್ ಅನ್ನು ಮುಗಿಸುತ್ತಾಳೆ ಮತ್ತು ಸ್ಪಷ್ಟ ವಿಜೇತಳಾಗಿದ್ದಾಳೆ. ಆದರೆ ಆಲಿಸ್ ಮೋಸ ಮಾಡಿರಬೇಕು ಎಂದು ಹೇಳಿ ಬಾಬ್ ಬೆಟ್ಟಿಂಗ್ ಪಾವತಿಸಲು ನಿರಾಕರಿಸುತ್ತಾನೆ. + +ಈ ಸರಳ ಉದಾಹರಣೆಯು ಯಾವುದೇ ಸ್ಮಾರ್ಟ್ ಅಲ್ಲದ ಒಪ್ಪಂದದ ಸಮಸ್ಯೆಯನ್ನು ವಿವರಿಸುತ್ತದೆ. ಒಪ್ಪಂದದ ಷರತ್ತುಗಳು ಪೂರೈತಾದರೂ (ಉದಾಹರಣೆಗೆ, ನೀವು ಓಟದ ಗೆದ್ದಿದ್ದರೆ), ನೀವು ಇನ್ನೊಬ್ಬ ವ್ಯಕ್ತಿಯನ್ನು ಒಪ್ಪಂದವನ್ನು ಪೂರೈಸಲು (ಉದಾಹರಣೆಗೆ, ಜೂಜಿನ ಮೇಲಿನ ಪಾವತಿ) ನಂಬಬೇಕು. + +## A digital vending machine {#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/) + +## More of a visual learner? {#visual-learner} + +ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳನ್ನು ಫೈನ್ಮ್ಯಾಟಿಕ್ಸ್ ವಿವರಿಸುವುದನ್ನು ವೀಕ್ಷಿಸಿ: + + + +## Further reading {#further-reading} + +- [ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳು ಜಗತ್ತನ್ನು ಹೇಗೆ ಬದಲಾಯಿಸುತ್ತವೆ](https://www.youtube.com/watch?v=pA6CGuXEKtQ) +- [ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳು: ವಕೀಲರನ್ನು ಬದಲಿಸುವ ಬ್ಲಾಕ್‍ಚೈನ್ ತಂತ್ರಜ್ಞಾನ](https://blockgeeks.com/guides/smart-contracts/) +- [ಡೆವಲಪರ್ ಗಳಿಗೆ ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳು](/developers/docs/smart-contracts/) +- [ಸ್ಮಾರ್ಟ್-ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳನ್ನು ಬರೆಯಲು ಕಲಿಯಿರಿ](/developers/learning-tools/) +- [ಇಥಿರಿಯಮ್ ಅನ್ನು ಕರಗತ ಮಾಡಿಕೊಳ್ಳುವುದು - ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಎಂದರೇನು?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/kn/social-networks/index.md b/public/content/translations/kn/social-networks/index.md new file mode 100644 index 00000000000..99935e22302 --- /dev/null +++ b/public/content/translations/kn/social-networks/index.md @@ -0,0 +1,121 @@ +--- +title: ವಿಕೇಂದ್ರೀಕರಿತ ಸಾಮಾಜಿಕ ಜಾಲಗಳು +description: ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್‍ಗಳ ಅವಲೋಕನ +lang: kn +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: /ethereum-learn.png +summaryPoint1: ಸಾಮಾಜಿಕ ಸಂವಹನ ಮತ್ತು ವಿಷಯ ರಚನೆ ಮತ್ತು ವಿತರಣೆಗಾಗಿ ಬ್ಲಾಕ್‍ಚೈನ್ ಆಧಾರಿತ ವೇದಿಕೆಗಳು. +summaryPoint2: ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮ ನೆಟ್‍ವರ್ಕ್‍ಗಳು ಬಳಕೆದಾರರ ಗೌಪ್ಯತೆಯನ್ನು ರಕ್ಷಿಸುತ್ತವೆ ಮತ್ತು ಡೇಟಾ ಭದ್ರತೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತವೆ. +summaryPoint3: ಟೋಕನ್‍ಗಳು ಮತ್ತು NFTಗಳು ವಿಷಯವನ್ನು ಹಣಗಳಿಸಲು ಹೊಸ ಮಾರ್ಗಗಳನ್ನು ರಚಿಸುತ್ತವೆ. +--- + +ನಮ್ಮ ದೈನಂದಿನ ಸಂವಹನ ಮತ್ತು ಸಂವಹನಗಳಲ್ಲಿ ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್‍ಗಳು ಭಾರಿ ಪಾತ್ರ ವಹಿಸುತ್ತವೆ. ಆದರೆ, ಈ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳ ಕೇಂದ್ರೀಕೃತ ನಿಯಂತ್ರಣವು ಅನೇಕ ಸಮಸ್ಯೆಗಳನ್ನು ಉಂಟುಮಾಡಿದೆ: ಡೇಟಾ ಸೋರಿಕೆ, ಸರ್ವರ್ ಔಟ್‌ಏಜ್‌ಗಳು, ಡಿ-ಪ್ಲಾಟ್‌ಫಾರ್ಮಿಂಗ್, ಸೆನ್ಸಾರ್‌ಶಿಪ್ ಮತ್ತು ಗೌಪ್ಯತೆ ಉಲ್ಲಂಘನೆಗಳು ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮವು ಹಲವುವೇಳೆ ಮಾಡುವ ಕೆಲವು ಒಪ್ಪಂದಗಳಾಗಿವೆ. ಈ ಸಮಸ್ಯೆಗಳನ್ನು ಎದುರಿಸಲು, ಡೆವಲಪರ್ ಗಳು ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್‍ಗಳನ್ನು ನಿರ್ಮಿಸುತ್ತಿದ್ದಾರೆ. ಡೆಸೆಂಟ್ರಲೈಸ್ಡ್ ಸಾಮಾಜಿಕ ಜಾಲಗಳು ಸಾಂಪ್ರದಾಯಿಕ ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್‍ಗಳ ಸಮಸ್ಯೆಗಳಲ್ಲಿ ಹಲವನ್ನು ಸರಿಪಡಿಸಬಹುದು ಮತ್ತು ಬಳಕೆದಾರರ ಒಟ್ಟಾರೆ ಅನುಭವವನ್ನು ಸುಧಾರಿಸಬಹುದು. + +## ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್‍ಗಳು ಎಂದರೇನು? {#what-are-decentralized-social-networks} + +ಡೆಸೆಂಟ್ರಲೈಸ್ಡ್ ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್‍ಗಳು ಬ್ಲಾಕ್‌ಚೈನ್ ಆಧಾರಿತ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳಾಗಿವೆ, ಅದು ಬಳಕೆದಾರರಿಗೆ ಮಾಹಿತಿ ವಿನಿಮಯ ಮಾಡಲು ಮತ್ತು ಪ್ರೇಕ್ಷಕರಿಗೆ ವಿಷಯವನ್ನು ಪ್ರಕಟಿಸಲು ಮತ್ತು ವಿತರಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಈ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಬ್ಲಾಕ್‌ಚೈನ್‌ನಲ್ಲಿ ಚಲಿಸುವ ಕಾರಣ, ಅವು ಕೇಂದ್ರೀಕೃತಗೊಳಿಸದ ಮತ್ತು ಸೆನ್ಸಾರ್‌ಶಿಪ್ ಮತ್ತು ಅನಗತ್ಯ ನಿಯಂತ್ರಣಕ್ಕೆ ಪ್ರತಿರೋಧಕವಾಗಿರಬಲ್ಲವು. + +ಹಲವು ಡೆಸೆಂಟ್ರಲೈಸ್ಡ್ ಸಾಮಾಜಿಕ ಜಾಲಗಳು ಫೇಸ್‌ಬುಕ್, ಲಿಂಕೆಡಿನ್, ಟ್ವಿಟರ್ ಮತ್ತು ಮೀಡಿಯಂ ಮುಂತಾದ ಸ್ಥಾಪಿತ ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮ ಸೇವೆಗಳಿಗೆ ಪರ್ಯಾಯವಾಗಿ ಅಸ್ತಿತ್ವದಲ್ಲಿವೆ. ಆದರೆ ಬ್ಲಾಕ್‌ಚೈನ್-ಆಧಾರಿತ ಸಾಮಾಜಿಕ ಜಾಲಗಳು ಹಲವಾರು ಲಕ್ಷಣಗಳನ್ನು ಹೊಂದಿವೆ, ಅದು ಅವುಗಳನ್ನು ಸಾಂಪ್ರದಾಯಿಕ ಸಾಮಾಜಿಕ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳ ಮುಂದಿಡುತ್ತದೆ. + +### ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್‍ಗಳು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ? {#decentralized-social-networks-overview} + +ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್‍ಗಳು [ವಿಕೇಂದ್ರೀಕೃತ ಅಪ್ಲಿಕೇಶನ್‍ಗಳ (Dapps)](/dapps/) ಒಂದು ವರ್ಗವಾಗಿದೆ - ಬ್ಲಾಕ್‍ಚೈನ್‍ನಲ್ಲಿ ನಿಯೋಜಿಸಲಾದ [ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳಿಂದ](/developers/docs/smart-contracts/) ಚಾಲಿತ ಅಪ್ಲಿಕೇಶನ್‍ಗಳು. ಕಾಂಟ್ರಾಕ್ಟ್ ಕೋಡ್ ಈ ಅಪ್ಲಿಕೇಶನ್‍ಗಳಿಗೆ ಬ್ಯಾಕ್ ಎಂಡ್ ಆಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಅವುಗಳ ವ್ಯವಹಾರ ತರ್ಕವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ. + +ಸಾಂಪ್ರದಾಯಿಕ ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮ ಪ್ಲಾಟ್‍ಫಾರ್ಮ್‍ಗಳ ಬಳಕೆದಾರರ ಮಾಹಿತಿ, ಪ್ರೋಗ್ರಾಂ ಕೋಡ್ ಮತ್ತು ಇತರ ರೀತಿಯ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸಲು ಡೇಟಾಬೇಸ್‍ಗಳನ್ನು ಅವಲಂಬಿಸಿವೆ. ಆದರೆ ಇದು ವೈಫಲ್ಯದ ಏಕ ಬಿಂದುಗಳನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ ಮತ್ತು ಗಮನಾರ್ಹ ಅಪಾಯವನ್ನು ಪರಿಚಯಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಫೇಸ್ಬುಕ್ನ ಸರ್ವರ್ಗಳು ಕಳೆದ ವರ್ಷ [ಗಂಟೆಗಳ ಕಾಲ ಆಫ್‍ಲೈನ್‍ಗೆ ಹೋದವು](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact), ಬಳಕೆದಾರರನ್ನು ಪ್ಲಾಟ್‍ಫಾರ್ಮ್‍ನಿಂದ ಕಡಿತಗೊಳಿಸಿದವು. + +ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ನೆಟ್‌ವರ್ಕ್‌ಗಳು ಜಗತ್ತಿನಾದ್ಯಂತ ಸಾವಿರಾರು ನೋಡ್‌ಗಳನ್ನು ಒಳಗೊಂಡಿರುವ ಪೀರ್-ಟು-ಪೀರ್ ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಅಸ್ತಿತ್ವದಲ್ಲಿವೆ. ಕೆಲವು ನೋಡ್‌ಗಳು ವಿಫಲವಾದರೂ, ನೆಟ್‌ವರ್ಕ್ ಅಡೆತಡೆಯಿಲ್ಲದೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಇದು ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ವೈಫಲ್ಯಗಳು ಮತ್ತು ಸ್ಥಗಿತಗಳಿಗೆ ನಿರೋಧಕವಾಗಿಸುತ್ತದೆ. + +[ಇಂಟರ್ಪ್ಲಾನೆಟರಿ ಫೈಲ್ ಸಿಸ್ಟಮ್ (IPFS)](https://ipfs.io/) ನಂತಹ ವಿಕೇಂದ್ರೀಕೃತ ಶೇಖರಣಾ ವ್ಯವಸ್ಥೆಗಳನ್ನು ಬಳಸಿಕೊಂಡು, ಎಥೆರಿಯಮ್ನಲ್ಲಿ ನಿರ್ಮಿಸಲಾದ ಸಾಮಾಜಿಕ ನೆಟ್ವರ್ಕ್ಗಳು ಬಳಕೆದಾರರ ಮಾಹಿತಿಯನ್ನು ಶೋಷಣೆ ಮತ್ತು ದುರುದ್ದೇಶಪೂರಿತ ಬಳಕೆಯಿಂದ ರಕ್ಷಿಸಬಹುದು. ನಿಮ್ಮ ವೈಯಕ್ತಿಕ ಮಾಹಿತಿಯನ್ನು ಯಾರೂ ಜಾಹೀರಾತುದಾರರಿಗೆ ಮಾರಾಟ ಮಾಡುವುದಿಲ್ಲ, ಹ್ಯಾಕರ್‌ಗಳು ನಿಮ್ಮ ಗೌಪ್ಯ ವಿವರಗಳನ್ನು ಕದಿಯಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. + +ಹಲವು ಬ್ಲಾಕ್‌ಚೈನ್-ಆಧಾರಿತ ಸಾಮಾಜಿಕ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳು ಜಾಹೀರಾತು ಆದಾಯದ ಅನುಪಸ್ಥಿತಿಯಲ್ಲಿ ಗಳಿಕೆಯನ್ನು ಸಾಧಿಸಲು ಸ್ಥಳೀಯ ಟೋಕನ್‌ಗಳನ್ನು ಹೊಂದಿವೆ. ಕೆಲವು ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಪ್ರವೇಶಿಸಲು, ಅಪ್ಲಿಕೇಶನ್‌ನಲ್ಲಿನ ಖರೀದಿಗಳನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಅಥವಾ ಅವರ ನೆಚ್ಚಿನ ವಿಷಯ ರಚನೆಕಾರರಿಗೆ ಸಲಹೆ ನೀಡಲು ಬಳಕೆದಾರರು ಈ ಟೋಕನ್‌ಗಳನ್ನು ಖರೀದಿಸಬಹುದು. + +## ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್‍ಗಳ ಪ್ರಯೋಜನಗಳು {#benefits} + +1. ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್‍ಗಳು ಸೆನ್ಸಾರ್ಶಿಪ್-ನಿರೋಧಕ ಮತ್ತು ಎಲ್ಲರಿಗೂ ಮುಕ್ತವಾಗಿವೆ. ಇದರರ್ಥ ಬಳಕೆದಾರರನ್ನು ನಿಷೇಧಿಸಲು, ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ಅಥವಾ ಅನಿಯಂತ್ರಿತವಾಗಿ ನಿರ್ಬಂಧಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. + +2. ಡೆಸೆಂಟ್ರಲೈಸ್ಡ್ ಸಾಮಾಜಿಕ ಜಾಲಗಳು ತೆರೆದ ಮೂಲದ ಆದರ್ಶಗಳ ಮೇಲೆ ನಿರ್ಮಿಸಲ್ಪಟ್ಟಿವೆ ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಮೂಲ ಕೋಡ್ ಅನ್ನು ಸಾರ್ವಜನಿಕ ಪರಿಶೀಲನೆಗಾಗಿ ಲಭ್ಯಗೊಳಿಸುತ್ತವೆ. ಸಾಂಪ್ರದಾಯಿಕ ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮದಲ್ಲಿ ಸಾಮಾನ್ಯವಾದ ಅಪಾರದರ್ಶಕ ಅಲ್ಗಾರಿದಮ್‌ಗಳ ಅನುಷ್ಠಾನವನ್ನು ತೆಗೆದುಹಾಕುವ ಮೂಲಕ, ಬ್ಲಾಕ್‌ಚೇನ್ ಆಧಾರಿತ ಸಾಮಾಜಿಕ ನೆಟ್‌ವರ್ಕ್‌ಗಳು ಬಳಕೆದಾರರು ಮತ್ತು ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ರಚನೆಕಾರರ ಹಿತಾಸಕ್ತಿಗಳನ್ನು ಜೋಡಿಸಬಹುದು. + +3. ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್‍ಗಳು "ಮಧ್ಯವರ್ತಿ"ಯನ್ನು ತೊಡೆದುಹಾಕುತ್ತವೆ. ವಿಷಯದ ಸೃಷ್ಟಿಕರ್ತರು ತಮ್ಮ ವಿಷಯದ ಮೇಲೆ ನೇರ ಒಡೆತನ ಹೊಂದಿದ್ದಾರೆ ಮತ್ತು ಅವರು ಫಾಲೋವರ್‌ಗಳು, ಅಭಿಮಾನಿಗಳು, ಖರೀದಿದಾರರು ಮತ್ತು ಇತರ ಪಕ್ಷಗಳೊಂದಿಗೆ ನೇರವಾಗಿ ಸಂವಹನ ನಡೆಸುತ್ತಾರೆ, ಅವುಗಳ ನಡುವೆ ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಒಂದೇ ಇರುತ್ತದೆ. + +4. ಇಥಿರಿಯಮ್ ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಚಲಿಸುವ ಡ್ಯಾಪ್‌ಗಳಂತೆ, ಇದು ಜಾಗತಿಕ, ಪೀರ್-ಟು-ಪೀರ್ ನೋಡ್‌ಗಳ ಜಾಲದಿಂದ ನಡೆಸಲ್ಪಡುತ್ತದೆ, ಡೆಸೆಂಟ್ರಲೈಸ್ಡ್ ಸಾಮಾಜಿಕ ಜಾಲಗಳು ಸರ್ವರ್ ಡೌನ್‌ಟೈಮ್ ಮತ್ತು ಔಟ್‌ಏಜ್‌ಗಳಿಗೆ ಕಡಿಮೆ ಒಳಗಾಗುತ್ತವೆ. + +5. ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳು ವಿಷಯ ರಚನೆಕಾರರಿಗೆ ನಾನ್-ಫಂಜಿಬಲ್ ಟೋಕನ್‌ಗಳು (NFT ಗಳು), ಅಪ್ಲಿಕೇಶನ್‌ನಲ್ಲಿನ ಕ್ರಿಪ್ಟೋ ಪಾವತಿಗಳು ಮತ್ತು ಹೆಚ್ಚಿನವುಗಳ ಮೂಲಕ ಸುಧಾರಿತ ಹಣಗಳಿಕೆಯ ಚೌಕಟ್ಟನ್ನು ನೀಡುತ್ತವೆ. + +6. ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್‍ಗಳು ಬಳಕೆದಾರರಿಗೆ ಹೆಚ್ಚಿನ ಮಟ್ಟದ ಗೌಪ್ಯತೆ ಮತ್ತು ಅನಾಮಧೇಯತೆಯನ್ನು ನೀಡುತ್ತವೆ. ಉದಾಹರಣೆಗೆ, ಒಬ್ಬ ವ್ಯಕ್ತಿಯು ENS ಪ್ರೊಫೈಲ್ ಅಥವಾ ವ್ಯಾಲೆಟ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಇಥಿರಿಯಮ್-ಆಧಾರಿತ ಸಾಮಾಜಿಕ ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಬಹುದು-ಹೆಸರುಗಳು, ಇಮೇಲ್ ವಿಳಾಸಗಳು ಇತ್ಯಾದಿಗಳಂತಹ ವೈಯಕ್ತಿಕವಾಗಿ ಗುರುತಿಸಬಹುದಾದ ಮಾಹಿತಿಯನ್ನು (PII) ಹಂಚಿಕೊಳ್ಳದೆಯೇ. + +7. ಡೆಸೆಂಟ್ರಲೈಸ್ಡ್ ಸಾಮಾಜಿಕ ಜಾಲಗಳು ಕೇಂದ್ರೀಕೃತ ಡೇಟಾಬೇಸ್‌ಗಳಲ್ಲದೆ, ಕೇಂದ್ರೀಕೃತವಾಗಿರದ ಶೇಖರಣೆಯ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿವೆ, ಅದು ಬಳಕೆದಾರರ ಡೇಟಾವನ್ನು ರಕ್ಷಿಸಲು ಗಣನೀಯವಾಗಿ ಉತ್ತಮವಾಗಿದೆ. + +## ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ನೆಟ್ವರ್ಕ್ಗಳು {#ethereum-social-networks} + +ಇಥಿರಿಯಮ್ ನೆಟ್‍ವರ್ಕ್ ತನ್ನ ಟೋಕನ್‍ಗಳ ಜನಪ್ರಿಯತೆ (ERC -20 / ERC -721) ಜನಪ್ರಿಯತೆ ಮತ್ತು ಅದರ ಬೃಹತ್ ಬಳಕೆದಾರರ ನೆಲೆಯಿಂದಾಗಿ ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮವನ್ನು ರಚಿಸುವ ಡೆವಲಪರ್ಗಳಿಗೆ ಆದ್ಯತೆಯ ಸಾಧನವಾಗಿದೆ. ಇಥಿರಿಯಮ್ ಆಧಾರಿತ ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್‍ಗಳ ಕೆಲವು ಉದಾಹರಣೆಗಳು ಇಲ್ಲಿವೆ: + +### Peepeth {#peepeth} + +[Peepeth](https://peepeth.com/) ಟ್ವಿಟರ್ಗೆ ಹೋಲುವ ಮೈಕ್ರೋಬ್ಲಾಗಿಂಗ್ ಪ್ಲಾಟ್‍ಫಾರ್ಮ್ ಆಗಿದೆ. ಇದು ಇಥಿರಿಯಮ್ ಬ್ಲಾಕ್‍ಚೈನ್‍ನಲ್ಲಿ ಚಲಿಸುತ್ತದೆ ಮತ್ತು ಬಳಕೆದಾರರ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸಲು IPFS ಅನ್ನು ಬಳಸುತ್ತದೆ. + +ಬಳಕೆದಾರರು "ಪೀಪ್ಸ್" ಎಂದು ಕರೆಯಲ್ಪಡುವ ಸಣ್ಣ ಸಂದೇಶಗಳನ್ನು ಕಳುಹಿಸಬಹುದು, ಅದನ್ನು ಅಳಿಸಲು ಅಥವಾ ಮಾರ್ಪಡಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ತೊರೆಯದೆ ನೀವು Ether (ETH) ನಲ್ಲಿ ಪ್ಲಾಟ್‍ಫಾರ್ಮ್‍ನಲ್ಲಿ ಯಾರಿಗಾದರೂ ಸಲಹೆಯನ್ನು ಸಂಗ್ರಹಿಸಬಹುದು ಅಥವಾ ಸಲಹೆಯನ್ನು ನೀಡಬಹುದು. + +### Mirror {#mirror} + +[ Mirror](https://mirror.xyz/) ಮಿರರ್ ಎಂಬುದು Web3-ಸಕ್ರಿಯಗೊಳಿಸಿದ ಬರವಣಿಗೆ ವೇದಿಕೆಯಾಗಿದ್ದು, ಇದು ವಿಕೇಂದ್ರೀಕೃತ ಮತ್ತು ಬಳಕೆದಾರ ಮಾಲೀಕತ್ವದ ಗುರಿಯನ್ನು ಹೊಂದಿದೆ. ಬಳಕೆದಾರರು ತಮ್ಮ ವ್ಯಾಲೆಟ್‍ಗಳನ್ನು ಸಂಪರ್ಕಿಸುವ ಮೂಲಕ ಮಿರರ್ ನಲ್ಲಿ ಉಚಿತವಾಗಿ ಓದಬಹುದು ಮತ್ತು ಬರೆಯಬಹುದು. ಬಳಕೆದಾರರು ಬರವಣಿಗೆಯನ್ನು ಸಂಗ್ರಹಿಸಬಹುದು ಮತ್ತು ತಮ್ಮ ನೆಚ್ಚಿನ ಬರಹಗಾರರಿಗೆ ಚಂದಾದಾರರಾಗಬಹುದು. + +ಮಿರರ್ ನಲ್ಲಿ ಪ್ರಕಟವಾದ ಪೋಸ್ಟ್ ಗಳನ್ನು ವಿಕೇಂದ್ರೀಕೃತ ಶೇಖರಣಾ ವೇದಿಕೆಯಾದ Arweave ನಲ್ಲಿ ಶಾಶ್ವತವಾಗಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ರೈಟಿಂಗ್ NFTಗಳು ಎಂದು ಕರೆಯಲ್ಪಡುವ ಸಂಗ್ರಹಿಸಬಹುದಾದ [ನಾನಂಜಿಬಲ್ ಟೋಕನ್‍ಗಳಾಗಿ (NFTsಗಳು)](/nft/) ತಯಾರಿಸಬಹುದು. NFTಗಳನ್ನು ಬರೆಯುವುದು ಬರಹಗಾರರಿಗೆ ರಚಿಸಲು ಸಂಪೂರ್ಣವಾಗಿ ಉಚಿತವಾಗಿದೆ, ಮತ್ತು ಸಂಗ್ರಹವು ಇಥಿರಿಯಮ್ L2 ನಲ್ಲಿ ನಡೆಯುತ್ತದೆ - ವಹಿವಾಟುಗಳನ್ನು ಅಗ್ಗದ, ವೇಗದ ಮತ್ತು ಪರಿಸರ ಸ್ನೇಹಿಯನ್ನಾಗಿ ಮಾಡುತ್ತದೆ. + +### MINDS {#minds} + +[MINDS ](https://www.minds.com/)ಮೈಂಡ್ಸ್ ಹೆಚ್ಚು ಬಳಸಲಾಗುವ ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್‍ಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ. ಇದು ಫೇಸ್‍ಬುಕ್‍ನಂತೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಈಗಾಗಲೇ ಲಕ್ಷಾಂತರ ಬಳಕೆದಾರರನ್ನು ಸೆಳೆದಿದೆ. + +ಬಳಕೆದಾರರು ಐಟಂಗಳಿಗೆ ಪಾವತಿಸಲು ಪ್ಲಾಟ್‍ಫಾರ್ಮ್‍ನ ಸ್ಥಳೀಯ ERC -20 ಟೋಕನ್ $MIND ಅನ್ನು ಬಳಸುತ್ತಾರೆ. ಜನಪ್ರಿಯ ವಿಷಯವನ್ನು ಪ್ರಕಟಿಸುವ ಮೂಲಕ, ಪರಿಸರ ವ್ಯವಸ್ಥೆಗೆ ಕೊಡುಗೆ ನೀಡುವ ಮೂಲಕ ಮತ್ತು ಇತರರನ್ನು ವೇದಿಕೆಗೆ ಉಲ್ಲೇಖಿಸುವ ಮೂಲಕ ಬಳಕೆದಾರರು $MIND ಟೋಕನ್‍ಗಳನ್ನು ಗಳಿಸಬಹುದು. + +## ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ Web2 ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್‍ಗಳು {#web2-social-networks-and-ethereum} + +[Web3](/web3/) ಸ್ಥಳೀಯ ಸಾಮಾಜಿಕ ಪ್ಲಾಟ್‍ಫಾರ್ಮ್‍ಗಳು ಮಾತ್ರ ಬ್ಲಾಕ್‍ಚೈನ್ ತಂತ್ರಜ್ಞಾನವನ್ನು ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮದಲ್ಲಿ ಸಂಯೋಜಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿಲ್ಲ. ಅನೇಕ ಕೇಂದ್ರೀಕೃತ ವೇದಿಕೆಗಳು ಇಥಿರಿಯಮ್ ಅನ್ನು ತಮ್ಮ ಮೂಲಸೌಕರ್ಯದಲ್ಲಿ ಸಂಯೋಜಿಸಲು ಯೋಜಿಸುತ್ತಿವೆ: + +### ರೆಡ್ಡಿಟ್ {#reddit} + +ರೆಡ್ಡಿಟ್ [ಕಮ್ಯುನಿಟಿ ಪಾಯಿಂಟ್ಸ್](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users) ಅನ್ನು ಹೊಂದಿದೆ, ಇದು [ERC -20 ಟೋಕನ್‍ಗಳಾಗಿವೆ](/developers/docs/standards/tokens/erc-20/), ಇದು ಗುಣಮಟ್ಟದ ವಿಷಯವನ್ನು ಪೋಸ್ಟ್ ಮಾಡುವ ಮೂಲಕ ಮತ್ತು ಆನ್‍ಲೈನ್ ಸಮುದಾಯಗಳಿಗೆ (ಸಬ್ರೆಡಿಟ್ಸ್) ಕೊಡುಗೆ ನೀಡುವ ಮೂಲಕ ಬಳಕೆದಾರರು ಗಳಿಸಬಹುದು. [ವಿಶೇಷ ಸವಲತ್ತುಗಳು](https://www.reddit.com/community-points/) ಮತ್ತು ಸವಲತ್ತುಗಳನ್ನು ಪಡೆಯಲು ನೀವು ಈ ಟೋಕನ್‍ಗಳನ್ನು ಸಬ್ರೆಡಿಟ್ ಒಳಗೆ ರಿಡೀಮ್ ಮಾಡಬಹುದು. ಈ ಯೋಜನೆಗಾಗಿ, ರೆಡ್ಡಿಟ್ ಇಥಿರಿಯಮ್ ವಹಿವಾಟುಗಳನ್ನು ಅಳೆಯಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ [ಲೇಯರ್ 2](/layer-2/) L2 ರೋಲಪ್ ಅರ್ಬಿಟ್ರಮ್ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತಿದೆ. + +ಪ್ರೋಗ್ರಾಂ ಈಗಾಗಲೇ ಲೈವ್ ಆಗಿದೆ, r/CryptoCurrency ಸಬ್ರೆಡಿಟ್ ತನ್ನ [ಸಮುದಾಯ ಬಿಂದುಗಳ ಆವೃತ್ತಿಯನ್ನು "ಮೂನ್ಸ್"](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki) ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ಅಧಿಕೃತ ವಿವರಣೆಯಲ್ಲಿ, ಮೂನ್ಸ್ "ಸಬ್ರೆಡಿಟ್‍ಗೆ ನೀಡಿದ ಕೊಡುಗೆಗಳಿಗಾಗಿ ಪೋಸ್ಟರ್ ಗಳು, ಕಾಮೆಂಟ್ ಮಾಡುವವರು ಮತ್ತು ಮಾಡರೇಟರ್ ಗಳಿಗೆ ಬಹುಮಾನ ನೀಡುತ್ತಾರೆ." ಈ ಟೋಕನ್‍ಗಳು ಬ್ಲಾಕ್‍ಚೈನ್‍ನಲ್ಲಿರುವುದರಿಂದ (ಬಳಕೆದಾರರು ಅವುಗಳನ್ನು ವ್ಯಾಲೆಟ್‍ಗಳಲ್ಲಿ ಸ್ವೀಕರಿಸುತ್ತಾರೆ), ಅವು ರೆಡ್ಡಿಟ್ ನಿಂದ ಸ್ವತಂತ್ರವಾಗಿವೆ ಮತ್ತು ಅವುಗಳನ್ನು ತೆಗೆದುಹಾಕಲಾಗುವುದಿಲ್ಲ. + +ರಿಂಕೆಬಿ ಟೆಸ್ಟ್‌ನೆಟ್‌ನಲ್ಲಿ ಬೀಟಾ ಹಂತವನ್ನು ಮುಗಿಸಿದ ನಂತರ, ರೆಡ್ಡಿಟ್ ಸಮುದಾಯದ ಅಂಕಗಳು ಈಗ [ಆರ್ಬಿಟ್ರಮ್ ನೋವಾ](https://nova.arbitrum.io/) ನಲ್ಲಿದೆ, ಇದು [ಸೈಡ್‌ಚೈನ್](/developers/docs/scaling/sidechains/) ಮತ್ತು [ಆಪ್‌ಟಿಮಿಸ್ಟಿಕ್ ರೋಲ್‌ಅಪ್](/developers/docs/scaling/optimistic-rollups/) ಗುಣಲಕ್ಷಣಗಳನ್ನು ಒಳಗೊಂಡಿರುವ ಬ್ಲಾಕ್‌ಚೈನ್ ಆಗಿದೆ. ವಿಶೇಷ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಅನ್‍ಲಾಕ್ ಮಾಡಲು ಸಮುದಾಯ ಪಾಯಿಂಟ್‍ಗಳನ್ನು ಬಳಸುವುದರ ಜೊತೆಗೆ, ಬಳಕೆದಾರರು ಅವುಗಳನ್ನು ಎಕ್ಸ್ ಚೇಂಜ್‍ಗಳಲ್ಲಿ ಫಿಯೆಟ್‍ಗಾಗಿ ವ್ಯಾಪಾರ ಮಾಡಬಹುದು. ಅಲ್ಲದೆ, ಬಳಕೆದಾರರು ಹೊಂದಿರುವ ಸಮುದಾಯ ಪಾಯಿಂಟ್ ಗಳ ಪ್ರಮಾಣವು ಸಮುದಾಯದೊಳಗಿನ ನಿರ್ಧಾರ ತೆಗೆದುಕೊಳ್ಳುವ ಪ್ರಕ್ರಿಯೆಯ ಮೇಲೆ ಅವರ ಪ್ರಭಾವವನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ. + +### ಟ್ವಿಟರ್ ಈಗ X {#twitter} + +ಜನವರಿ 2021 ರಲ್ಲಿ, ಟ್ವಿಟರ್ ಬ್ಲೂ [NFT ಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಹೊರತಂದಿತು](https://mashable.com/article/twitter-blue-nft-profile-picture), ಬಳಕೆದಾರರಿಗೆ ತಮ್ಮ ವ್ಯಾಲೆಟ್‍ಗಳನ್ನು ಸಂಪರ್ಕಿಸಲು ಮತ್ತು NFT ಗಳನ್ನು ಪ್ರೊಫೈಲ್ ಚಿತ್ರಗಳಾಗಿ ಪ್ರದರ್ಶಿಸಲು ಅನುವು ಮಾಡಿಕೊಟ್ಟಿತು. ಬರೆಯುವ ಸಮಯದಲ್ಲಿ, ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮ ಕಂಪನಿ ಭವಿಷ್ಯದಲ್ಲಿ ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್ ರಚಿಸುವ [ಯೋಜನೆಗಳನ್ನು ಘೋಷಿಸಿದೆ.](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web). + +### ಇನ್ ಸ್ಟಾ ಗ್ರಾಮ್ {#instagram} + +ಮೇ 2022 ರಲ್ಲಿ, [ಇನ್ಸ್ಟಾಗ್ರಾಮ್ ಇಥಿರಿಯಮ್ ಮತ್ತು ಪಾಲಿಗಾನ್ನಲ್ಲಿ NFTಗಳಿಗೆ](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) ಬೆಂಬಲವನ್ನು ಘೋಷಿಸಿತು. ಬಳಕೆದಾರರು ತಮ್ಮ ಇಥಿರಿಯಮ್ ವ್ಯಾಲೆಟ್ ಅನ್ನು ಸಂಪರ್ಕಿಸುವ ಮೂಲಕ NFTಗಳನ್ನು ನೇರವಾಗಿ ಇನ್ಸ್ಟಾಗ್ರಾಮ್ಗೆ ಪೋಸ್ಟ್ ಮಾಡಬಹುದು. + +## ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ನೆಟ್ ವರ್ಕ್ ಗಳನ್ನು ಬಳಸಿ {#use-decentralized-social-networks} + +- **[ಸ್ಟೇಟಸ್.ಐಎಂ](https://status.im/)** - _ಸ್ಟೇಟಸ್ ಒಂದು ಸುರಕ್ಷಿತ ಸಂದೇಶ ಅಪ್ಲಿಕೇಶನ್ ಆಗಿದ್ದು, ಇದು ಮುಕ್ತ-ಮೂಲ, ಪೀರ್-ಟು-ಪೀರ್ ಪ್ರೋಟೋಕಾಲ್ ಮತ್ತು ಎಂಡ್-ಟು-ಎಂಡ್ ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ನಿಮ್ಮ ಸಂದೇಶಗಳನ್ನು ಮೂರನೇ ಪಕ್ಷಗಳಿಂದ ರಕ್ಷಿಸುತ್ತದೆ._ +- **[Mirror.xyz](https://mirror.xyz/)** - _ - ಮಿರರ್ ಎಂಬುದು ವಿಕೇಂದ್ರೀಕೃತ, ಬಳಕೆದಾರ-ಮಾಲೀಕತ್ವದ ಪ್ರಕಾಶನ ವೇದಿಕೆಯಾಗಿದ್ದು, ಬಳಕೆದಾರರಿಗೆ ಕ್ರೌಡ್ ಫಂಡ್ ಕಲ್ಪನೆಗಳನ್ನು ಕ್ರೌಡ್ ಫಂಡ್ ಮಾಡಲು, ವಿಷಯವನ್ನು ಹಣಗಳಿಸಲು ಮತ್ತು ಹೆಚ್ಚಿನ ಮೌಲ್ಯದ ಸಮುದಾಯಗಳನ್ನು ನಿರ್ಮಿಸಲು ಇಥಿರಿಯಮ್ ನಲ್ಲಿ ನಿರ್ಮಿಸಲಾಗಿದೆ._ +- **[Lens Protocol](https://lens.xyz/)** - _ಲೆನ್ಸ್ ಪ್ರೋಟೋಕಾಲ್ ಎಂಬುದು ಸಂಯೋಜಿಸಬಹುದಾದ ಮತ್ತು ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ಗ್ರಾಫ್ ಆಗಿದ್ದು, ವಿಕೇಂದ್ರೀಕೃತ ಇಂಟರ್ನೆಟ್ನ ಡಿಜಿಟಲ್ ಉದ್ಯಾನದಲ್ಲಿ ಎಲ್ಲಿ ಹೋದರೂ ಸೃಷ್ಟಿಕರ್ತರು ತಮ್ಮ ವಿಷಯದ ಮಾಲೀಕತ್ವವನ್ನು ತೆಗೆದುಕೊಳ್ಳಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ._ +- **[ Farcaster](https://farcaster.xyz/)** - _ಫಾರ್ಕಾಸ್ಟರ್ ಸಾಕಷ್ಟು ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ನೆಟ್ವರ್ಕ್ ಆಗಿದೆ. ಇದು ಇಮೇಲ್ನಂತೆಯೇ ಅನೇಕ ಗ್ರಾಹಕರನ್ನು ಬೆಂಬಲಿಸುವ ಮುಕ್ತ ಪ್ರೋಟೋಕಾಲ್ ಆಗಿದೆ._ + +## Further reading {#further-reading} + +### ಲೇಖನಗಳು {#articles} + +- [ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮದ ವಿಕೇಂದ್ರೀಕರಣ: Web 3 ಸಾಮಾಜಿಕ ಸ್ಟ್ಯಾಕ್ ಗೆ ಮಾರ್ಗದರ್ಶಿ](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _ಕಾಯಿನ್ಬೇಸ್ ವೆಂಚರ್ಸ್_ +- [ಸಾಮಾಜಿಕ ನೆಟ್ ವರ್ಕ್ ಗಳು ಮುಂದಿನ ದೊಡ್ಡ ವಿಕೇಂದ್ರೀಕರಣ ಅವಕಾಶವಾಗಿದೆ](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) - _ Ben Goertzel_ +- [ವೆಬ್ 3 ವಿಕೇಂದ್ರೀಕೃತ, ಸಮುದಾಯ-ಚಾಲಿತ ಸಾಮಾಜಿಕ ನೆಟ್ ವರ್ಕ್ ಗಳ ಭರವಸೆಯನ್ನು ಹೊಂದಿದೆ](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) - _ಸುಮಿತ್ ಘೋಷ್_ +- [ಬ್ಲಾಕ್ ಚೈನ್ ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮ ಭೂದೃಶ್ಯದ ಅವಲೋಕನ](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) - _ಜೆಮಿನಿ ಕ್ರಿಪ್ಟೋಪೀಡಿಯಾ_ +- [ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮ ಗೌಪ್ಯತೆಯನ್ನು ಬ್ಲಾಕ್ ಚೈನ್ ಹೇಗೆ ಪರಿಹರಿಸಬಹುದು](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) - _ಪ್ರಬ್ಲೀನ್ ಬಾಜಪೇಯಿ_ +- [ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮ ನೆಟ್ ವರ್ಕ್ ಗಳು ಬ್ಲಾಕ್ ಚೈನ್ ಗೆ ಬರುತ್ತಿವೆ](https://businesstechguides.co/what-are-decentralized-social-networks) - _Emmanuel Awosika_ +- [ಸಾಮಾಜಿಕ ನೆಟ್ ವರ್ಕ್ ಗಳಿಗೆ ಸಾಕಷ್ಟು ವಿಕೇಂದ್ರೀಕರಣ](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) - _ ವರುಣ್ ಶ್ರೀನಿವಾಸನ್_ + +### Videos {#videos} + +- [ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮ ವಿವರಿಸಲಾಗಿದೆ](https://www.youtube.com/watch?v=UdT2lpcGvcQ) - _Coinmarketcap_ +- [DeSo ಬ್ಲಾಕ್ಚೈನ್ ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮವನ್ನು ವಿಕೇಂದ್ರೀಕರಿಸಲು ಬಯಸುತ್ತದೆ](https://www.youtube.com/watch?v=SG2HUiVp0rE) - _ಬ್ಲೂಮ್ಬರ್ಗ್ ಟೆಕ್ನಾಲಜಿ_ +- [ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮದ ಭವಿಷ್ಯ ಬಾಲಾಜಿ ಶ್ರೀನಿವಾಸನ್, ವಿಟಾಲಿಕ್ ಬುಟೆರಿನ್, ಜುವಾನ್ ಬೆನೆಟ್](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/content/translations/ko/bridges/index.md b/public/content/translations/ko/bridges/index.md similarity index 100% rename from src/content/translations/ko/bridges/index.md rename to public/content/translations/ko/bridges/index.md diff --git a/public/content/translations/ko/dao/index.md b/public/content/translations/ko/dao/index.md new file mode 100644 index 00000000000..1a0872058a2 --- /dev/null +++ b/public/content/translations/ko/dao/index.md @@ -0,0 +1,165 @@ +--- +title: 탈중앙화 자율 조직(DAO) +description: 이더리움의 DAO 개요 +lang: ko +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: 제안에 투표하는 DAO의 표현. +summaryPoint1: 중앙화된 리더십이 없는 회원 소유 커뮤니티. +summaryPoint2: 인터넷에서 낯선 사람과 협업할 수 있는 안전한 방법. +summaryPoint3: 특정 목적을 위해 자금을 넣을 수 있는 안전한 장소. +--- + +## DAO란 무엇입니까? {#what-are-daos} + +DAO는 공동의 사명을 위해 일하는 집단 소유의, 블록체인 관리 조직입니다. + +DAO는 자금이나 운영을 관리하는 자비로운 리더를 신뢰하지 않고도, 우리가 전 세계의 비슷한 생각을 가진 사람들과 함께 일할 수 있게 해줍니다. 변덕스럽게 자금을 쓸 수 있는 CEO나 장부를 조작할 수 있는 CFO는 없습니다. 대신, 코드에 적용된 블록체인 기반 규칙은 조직의 작동 방식과 자금 사용 방식을 정의합니다. + +DAO는 그룹의 승인 없이는 누구도 접근할 수 없는 내장된 자산을 가지고 있습니다. 결정은 조직의 모든 사람이 목소리를 낼 수 있도록 하기 위해 제안과 투표를 통해 이루어지며, 모든 것이 온체인에서 투명하게 진행됩니다. + +## DAO가 필요한 이유는 무엇입니까? {#why-dao} + +누군가와 함께 자금과 돈을 포함하는 조직을 시작하려면 함께 일하는 사람들에 대한 많은 신뢰가 필요합니다. 그러나 인터넷에서만 교류한 사람을 신뢰하기는 어렵습니다. DAO를 사용하면 그룹에 있는 다른 사람을 신뢰할 필요가 없으며, 100% 투명하고 누구나 확인할 수 있는 DAO의 코드만 있으면 됩니다. + +이는 글로벌 협업 및 조정에 대해 다양한 새로운 기회를 열어줍니다. + +### 비교 {#dao-comparison} + +| 탈중앙화 자율 조직 | 기존의 조직 | +| -------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| 일반적으로 수평적이고, 완전히 민주화되어 있습니다. | 일반적으로 계층적입니다. | +| 변경 사항을 구현하려면 회원의 투표가 필요합니다. | 구조에 따라 단독 주체가 변경을 요구하거나 투표가 제안될 수 있습니다. | +| 투표가 집계되고, 결과는 신뢰할 수 있는 중개자 없이 자동으로 구현됩니다. | 투표가 시행되는 경우, 투표는 내부적으로 집계되고 투표 결과는 수동으로 처리해야 합니다. | +| 제공되는 서비스는 탈중앙화된 방식으로 자동 처리됩니다(예: 자선 기금 분배). | 사람이 직접 처리하거나 중앙에서 제어되는 자동화가 필요하며 조작하기 쉽습니다. | +| 모든 활동은 투명하고 완전히 공개됩니다. | 활동은 일반적으로 비공개로 이루어지며 공개에 제한적입니다. | + +### DAO 예시 {#dao-examples} + +이해를 더 돕기 위해 다음은 DAO를 사용하는 방법에 대한 몇 가지 예시입니다. + +- 자선 활동 – 전 세계 모든 사람의 기부를 수락하고 기금의 원천에 대해 투표할 수 있습니다. +- 집합적 소유권 – 물리적 또는 디지털 자산을 구매할 수 있으며, 회원은 사용 방법에 대해 투표할 수 있습니다. +- 벤처 및 보조금 - 투자 자본을 모으고 벤처에 대한 투표를 지원하는 벤처 펀드를 만들 수 있습니다. 상환된 금액은 나중에 DAO 회원들에게 재분배될 수 있습니다. + +## DAO는 어떻게 작동하나요? {#how-daos-work} + +DAO의 중추는 조직의 규칙을 정의하고 그룹의 자금을 보유하는 스마트 계약입니다. 이더리움에서 계약이 실행되면 투표 외에는 누구도 규칙을 변경할 수 없습니다. 코드에 있는 규칙과 논리에서 다루지 않는 작업을 누군가 실행하려고 하면 실패합니다. 재무 또한 스마트 계약에 의해 정의되기 때문에 그룹의 승인 없이는 누구도 돈을 쓸 수 없습니다. 이는 DAO가 중앙 권한을 필요로 하지 않는다는 것을 의미합니다. 대신 그룹에서 공동으로 결정을 내리며 투표에서 통과되면 결제는 자동으로 승인됩니다. + +이것은 스마트 계약이 이더리움에서 실행되면 변조가 불가능하기 때문에 가능합니다. 모든 것은 공개되어 있기 때문에 다른 사람들이 눈치채지 못하게 코드(DAO 규칙)를 편집할 수 없습니다. + + + 스마트 계약에 대한 자세한 정보 + + +## 이더리움과 DAO {#ethereum-and-daos} + +이더리움은 여러 가지 이유로 DAO의 완벽한 기반입니다. + +- 이더리움 자체의 합의는 조직이 네트워크를 신뢰할 수 있을 만큼 충분히 분산되어있고, 형성되어 있습니다. +- 스마트 계약 코드는 이더리움에서 일단 활성화되면 소유자일지라도 수정할 수 없습니다. 이는 DAO가 프로그래밍된 규칙에 따라 실행될 수 있게 합니다. +- 스마트 계약은 자금을 보내고 받을 수 있습니다. 이것이 없다면 그룹 자금을 관리하기 위해 신뢰할 수 있는 중개자가 필요합니다. +- 이더리움 커뮤니티는 경쟁보다 협력적임이 입증되었으며, 모범 사례와 지원 시스템이 빠르게 등장할 수 있게 합니다. + +## DAO 거버넌스 {#dao-governance} + +투표 및 제안이 작동하는 방식과 같이 DAO를 관리할 때 많은 고려 사항이 있습니다. + +### 위임 {#governance-delegation} + +위임은 대의민주주의의 DAO 버전과 같습니다. 토큰 보유자는 자신을 지명하고, 프로토콜을 관리하고, 정보를 유지하기로 약속한, 사용자에게 투표를 위임합니다. + +#### 유명한 예시 {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) – ENS 보유자는 그들을 대표할 참여 커뮤니티 구성원에게 투표를 위임할 수 있습니다. + +### 자동 거래 거버넌스 {#governance-example} + +많은 DAO에서는 구성원의 정족수가 찬성하면 거래가 자동으로 실행됩니다. + +#### 유명한 예시 {#governance-example} + +[Noun](https://nouns.wtf) –Noun DAO에서는 설립자가 거부하지 않는 한 투표 정족수가 충족되고 과반수가 찬성하면 트랜잭션이 자동으로 실행됩니다. + +### 다중서명 거버넌스 {#governance-example} + +DAO에는 수천 명의 의결권을 가진 회원이 있을 수 있지만, 자금은 신뢰할 수 있고 일반적으로 공개된(커뮤니티에 알려진 공개 ID) 5~20명의 활동적인 커뮤니티 회원이 공유하는 지갑에 있을 수 있습니다. 투표이후에 다중서명자가 커뮤니티의 의지를 실행하게 됩니다. + +## DAO 법 {#dao-laws} + +1977년 와이오밍 주에서 기업가를 보호하고 책임을 제한하는 유한책임회사를 고안했습니다. 더 최근에는 DAO의 법적 상태를 확립하는 DAO 법을 제정하기도 했습니다. 현재 와이오밍, 버몬트 및 버진 아일랜드에는 어떤 형태로든 DAO 법률이 존재합니다. + +### 유명한 예시 {#law-example} + +[CityDAO](https://citydao.io) - CityDAO는 와이오밍의 DAO 법을 사용하여 옐로스톤 국립공원 근처의 40에이커의 땅을 구입했습니다. + +## DAO 멤버십 {#dao-membership} + +DAO 멤버십에는 다양한 모델이 있습니다. 멤버십은 투표 방식과 DAO의 기타 주요 부분을 결정할 수 있습니다. + +### 토큰 기반 멤버십 {#token-based-membership} + +사용되는 토큰에 따라 일반적으로 완전한 권한이 없습니다. 대부분 이러한 거버넌스 토큰은 탈중앙화 거래소에서 허가 없이 거래될 수 있습니다. 나머지는 유동성 또는 기타 '작업 증명'을 제공하여 벌어야 합니다. 어느 방식이든, 단순히 토큰을 보유하면 투표에 대한 접근 권한이 부여됩니다. + +_일반적으로 광범위한 분산 프로토콜 및/또는 토큰 자체를 관리하는 데 사용됩니다._ + +#### 유명한 예시 {#token-example} + +[MakerDAO](https://makerdao.com) – MakerDAO의 토큰 MKR은 탈중앙화 거래소에서 널리 사용 가능하며, 누구나 구매하여 Maker 프로토콜의 미래에 대한 투표권을 가질 수 있습니다. + +### 주식 기반 멤버십 {#share-based-membership} + +주식 기반 DAO는 더 많은 권한이 있지만, 여전히 열려 있습니다. DAO 가입 희망자는 누구나 DAO에 가입하기 위한 제안을 제출할 수 있으며, 보통 토큰이나 작업의 형태로 어느 정도의 가치를 제공할 수 있습니다. 주식은 직접 의결권과 소유권을 나타냅니다. 회원들은 비례적 지분을 가지고 언제든지 탈퇴할 수 있습니다. + +_일반적으로 자선 단체, 근로자 집단 및 투자 클럽과 같이 보다 긴밀하고 인간 중심적인 조직에 사용됩니다. 프로토콜과 토큰도 관리할 수 있습니다._ + +#### 유명한 예시 {#share-example} + +[MolochDAO](http://molochdao.com/) - MolochDAO는 이더리움 프로젝트 펀딩에 중점을 두고 있습니다. 그룹에서는 잠재적 수혜자가 정보를 바탕으로 판단을 하는 데 필요한 전문 지식과 자본이 있는지 평가할 수 있도록 멤버십 제안을 요구합니다. 공개 시장에서 단순히 DAO에 대한 액세스 권한을 구매할 수는 없습니다. + +### 평판 기반 멤버십 {#reputation-based-membership} + +평판은 참여 사실을 나타내며 DAO에서 투표할 수 있는 권한을 제공합니다. 토큰 또는 주식 기반 멤버십과 다르게 평판 기반 DAO는 기여자에게 소유권을 이전하지 않습니다. 평판은 구매하거나 이전 또는 임의로 부여될 수 없으며 DAO 구성원이 참여를 통해 직접 획득해야 합니다. 온체인 투표에는 권한이 필요하지 않아 원하는 구성원은 자유롭게 DAO 가입 신청을 제출하고 기여에 대한 보상으로 거래소에서 평판과 토큰을 받도록 요청할 수 있습니다. + +_보통은 분산형 개발 및 프로토콜, 디앱의 운영 방식에 사용되지만, 자선 단체, 노동자 집단, 투자 동아리 등의 다양한 용도의 조직에도 적합합니다._ + +#### 유명한 예시 {#reputation-example} + +[DXdao](https://DXdao.eth.link) – DXdao는 세계적인 주권 집합체이며 2019년부터 분산형 프로토콜 및 애플리케이션을 운영해오고 있습니다. 자금을 조정하고 관리하기 위해 평판 기반 운영 방식과 홀로그래픽 합의 메커니즘을 활용하는데, 이는 그 누구도 미래에 영향을 미칠 수 없음을 의미합니다. + +## DAO 가입/시작 {#join-start-a-dao} + +### DAO 가입하기 {#join-a-dao} + +- [이더리움 커뮤니티 DAO](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [DAOHaus의 DAO 목록](https://app.daohaus.club/explore) +- [Tally.xyz DAO 명단](https://www.tally.xyz) + +### DAO 시작하기 {#start-a-dao} + +- [DAOHaus로 DAO 호출](https://app.daohaus.club/summon) +- [Tally로 거버너 DAO 시작하기](https://www.tally.xyz/add-a-dao) +- [Aragon 기반 DAO 만들기](https://aragon.org/product) +- [콜로니 시작하기](https://colony.io/) +- [DAOstack의 홀로그램 합의를 이용하여 DAO 만들기](https://alchemy.daostack.io/daos/create) + +## 더 읽을거리 {#further-reading} + +### DAO 기사 {#dao-articles} + +- [DAO란?](https://aragon.org/dao) – [Aragon](https://aragon.org/) +- [DAO 핸드북](https://daohandbook.xyz) +- [DAO의 집](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) +- [DAO란 무엇이며 무엇을 위한 것일까요?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) +- [DAO 기반 디지털 커뮤니티를 시작하는 방법](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) +- [DAO란?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) +- [홀로그램 합의란 무엇인가요?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) +- [DAO는 기업이 아닙니다: 비탈릭의 자율적 조직의 탈중앙화가 중요한 이유](https://vitalik.ca/general/2022/09/20/daos.html) +- [DAO, DAC, DA 그리고...: 완성되지 않은 용어 가이드](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [이더리움 블로그](https://blog.ethereum.org) + +### 영상 {#videos} + +- [암호화에서 DAO란 무엇입니까?](https://youtu.be/KHm0uUPqmVE) +- [DAO가 도시를 건설할 수 있을까요?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) - [TED](https://www.ted.com/) diff --git a/public/content/translations/ko/decentralized-identity/index.md b/public/content/translations/ko/decentralized-identity/index.md new file mode 100644 index 00000000000..5d523988dfc --- /dev/null +++ b/public/content/translations/ko/decentralized-identity/index.md @@ -0,0 +1,185 @@ +--- +title: 분산 신원 증명 +description: 분산 신원 증명이란 무엇이며, 왜 중요할까요? +lang: ko +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: /eth-gif-cat.png +summaryPoint1: 기존의 신원 증명 시스템은 식별자의 발급, 점검, 제어를 한 곳으로 집중시켰습니다. +summaryPoint2: 분산 신원 증명을 사용하면 더 이상 중앙화된 제3자에 의존할 필요가 없어집니다. +summaryPoint3: 암호화폐 덕분에 사용자는 다시 한 번 자신의 식별자와 증명 정보를 발급, 소유, 제어할 도구를 갖게 되었습니다. +--- + +오늘날 신원 증명은 사실상 삶의 모든 부분을 뒷받침하고 있습니다. 온라인 서비스 이용, 은행 계좌 개설, 선거 투표, 재산 구매, 고용 보장 등 이 모든 활동에는 신원 증명이 필요합니다. + +그러나 기존 신원 관리 시스템은 오랜 기간동안 중앙 집권적인 중개자에게 의존해 왔으며, 중개자가 귀하의 신원과 인증 정보를 발급, 소유 및 [증명](#what-are-attestations)했습니다. 즉, 귀하의 신원 관련 정보를 직접 관리하거나 개인 식별 정보(PII)에 누가 얼마나 접근할 수 있는지 또한 귀하가 제어할 수 없다는 것을 의미합니다. + +이 문제를 해결하기 위해 이더리움과 같은 공개 블록체인에 분산 신원 증명 시스템이 도입되었습니다. 분산 신원 증명으로 개인이 직접 자신의 신원 관련 정보를 관리할 수 있습니다. 분산 신원 증명 솔루션을 통해 서비스 제공자나 정부 등 중앙 기관에 의존하지 않고도 자신의 식별자를 *직접* 제작하고 인증 정보를 획득, 소유할 수 있습니다. + +## 신원이란 무엇인가요? {#what-is-identity} + +신원은 개인의 고유한 정보를 바탕으로 정의되는 개인 증명 수단입니다. 신원은 _개인_, 즉 구별되는 인간 개체를 의미합니다. 또한 신원은 조직이나 기관과 같은 인간이 아닌 주체를 의미할 수도 있습니다. + +## 식별자란 무엇인가요? {#what-are-identifiers} + +식별자는 특정 신원의 포인터 역할을 하는 정보입니다. 일반적인 식별자는 다음과 같습니다. + +- 이름 +- 주민등록번호 및 납세자 식별 번호 +- 휴대 전화 번호 +- 생년월일 및 출생지 +- 이메일 주소, 사용자 이름, 프로필 사진 등의 디지털 신원 정보 + +이러한 기존 식별자는 중앙 기관에 의해 발급, 소유, 관리됩니다. 이름을 바꾸기 위해서는 정부의 허가가 필요하고, 닉네임을 바꾸기 위해서는 소셜 미디어 플랫폼의 허가를 받아야 합니다. + +## 증명이란 무엇인가요? {#what-are-attestations} + +증명이란 한 개체에 의해 만들어진 다른 개체에 대한 주장입니다. 예를 들어, 미국에 거주하는 경우 미국의 도로 교통 공단(한 주체)에서 발급한 운전 면허증은 본인(다른 주체)이 법적으로 자동차를 운전할 수 있음을 증명합니다. + +증명은 식별자와 다릅니다. 증명은 특정 신원을 파악할 수 있도록 신원 정보를 *포함*하며 그 신원과 관련된 정보를 주장합니다. 즉, 운전 면허증은 식별자(성명, 생년월일, 주소)를 포함할 뿐만 아니라 운전할 수 있는 법적 권리에 대한 증명이기도 합니다. + +### 분산 식별자는 무엇인가요? {#what-are-decentralized-identifiers} + +법적 이름 또는 이메일 주소 같은 기존 식별자는 정부와 이메일 제공자 같은 제3자에 의존합니다. 분산 식별자(DID)는 다릅니다. 중앙 개체에 의해 발급, 관리, 제어되지 않습니다. + +분산 식별자는 개인이 발급, 소유, 관리합니다. [이더리움 계정](/developers/docs/accounts/)은 분산 식별자의 예시입니다. 누군가의 허락 없이 원하는 만큼 많은 계정을 만들 수 있으며, 중앙 저장소에 보관해야 할 필요도 없습니다. + +분산 식별자는 분산 원장(블록체인) 또는 P2P 네트워크에 저장됩니다. 이는 DID를 [유일하고, 높은 가용성과 활용성을 지니며, 암호화 검증이 가능](https://w3c-ccg.github.io/did-primer/)하게 만듭니다. 분산 식별자는 개인, 조직 또는 정부 등 다른 개체와 연결될 수 있습니다. + +## 분산 식별자는 어떻게 가능한가요? {#what-makes-decentralized-identifiers-possible} + +### 1. 공개 키 기반 구조(PKI) {#public-key-infrastructure} + +공개 키 기반 구조(PKI)는 특정 주체를 위해 [공개 키](/glossary/#public-key) 와 [개인 키](/glossary/#private-key)를 생성하는 정보 보안 장치입니다. 공개 키 암호화 기법은 블록체인 네트워크에서 사용자의 신원을 인증하고 디지털 자산의 소유권을 증명하는 용도로 사용됩니다. + +이더리움 계정과 같은 일부 분산 식별자에는 공개 키와 개인 키가 있습니다. 공개 키는 계정의 제어자를 식별하는 반면, 개인 키는 이 계정의 메시지에 서명하거나 메시지를 해독할 수 있습니다. PKI는 주체를 인증하는 데 필요한 증명을 제공하고, [암호화 서명](https://andersbrownworth.com/blockchain/public-private-keys/)을 통해 모든 주장을 검증함으로써 명의 도용 및 허위 신원 사용을 방지합니다. + +### 2. 분산형 데이터 보관 {#decentralized-datastores} + +블록체인은 검증 가능한 데이터 레지스트리의 역할을 합니다. 즉, 개방되어 있고, (주로 중앙 집권적인) 특정 주체를 신뢰하지 않아도 되며, 탈중앙화된 정보 저장소입니다. 공용 블록체인은 중앙 집권적인 레지스트리에 식별 정보를 저장해야 할 필요를 제거합니다. + +분산 식별자의 유효성을 확인해야 하는 경우, 블록체인에서 연관된 공개 키를 조회해 볼 수 있습니다. 이것이 인증에 제3자가 필요한 기존의 식별자와 다른 점입니다. + +## 분산 식별자와 증명이 어떻게 분산 신원 증명을 가능하게 하나요? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} + +분산형 신원 증명은 신원 관련 정보는 소유자 본인이 제어하고 보호 및 이동 가능한 형태여야 한다는 아이디어를 분산형 식별 정보와 증명을 주요 기반으로 구현한 것입니다. + +분산형 신원 증명의 관점에서 증명(= [검증 가능한 인증 정보](https://www.w3.org/TR/vc-data-model/))이란, 발행자가 만든 위조 불가능하고 암호학적으로 검증 가능한 주장을 말합니다. 한 주체(예: 조직)에서 발급하는 모든 증명 또는 검증 가능한 인증 정보는 해당하는 DID에 연계됩니다. + +DID는 블록체인에 저장되기 때문에 누구든지 이더리움에서 발급자의 DID를 대조하여 증명의 유효성을 검증할 수 있습니다. 본질적으로 이더리움 블록체인은 특정 주체에 연계된 DID를 인증할 수 있게 하는 글로벌 디렉터리와 같은 역할을 합니다. + +분산형 식별 정보는 증명이 자체적으로 제어되고 검증될 수 있기 때문에 가능한 것입니다. 발급자가 더 이상 존재하지 않더라도 소유자는 언제든지 증명의 경로와 유효성을 검증할 수 있습니다. + +분산형 식별 정보는 또한 분산형 신원 증명을 통해 개인 정보를 보호하는 데에도 중요한 역할을 합니다. 예를 들어, 개인이 증명(운전 면허증 등)을 제출하는 경우 검증하는 주체는 증명에 포함된 정보의 유효성을 확인하지 않아도 됩니다. 대신, 검증자는 증명의 진위와 발급 기관의 신원에 대한 암호화 보증만 확인하면 증명이 유효한지 판단할 수 있습니다. + +## 분산형 신원 증명에서 증명 방식의 종류 {#types-of-attestations-in-decentralized-identity} + +이더리움 기반 신원 증명 생태계에서 증명 정보가 보관되고 제공되는 방법은 기존의 신원 관리 시스템과 다릅니다. 분산형 신원 증명 시스템에서 증명을 발급, 저장 및 인증하기 위한 다양한 접근 방식은 다음과 같습니다. + +### 오프체인 증명 {#off-chain-attestations} + +온체인으로 증명을 저장할 때 발생하는 문제점 중 하나는 해당 정보에 개인이 비공개로 유지하고자 하는 정보가 포함될 수도 있다는 부분입니다. 이더리움 블록체인은 공개적이라는 특성이 있기 때문에 이러한 증명을 저장하기에 부적절해 보일 수 있습니다. + +이 문제는 사용자가 디지털 지갑에서 오프체인으로 보유하고 있지만 온체인에 저장된 발급자의 DID로 서명된 증명을 발급함으로써 해결할 수 있습니다. 해당하는 증명은 [JSON 웹 토큰](https://en.wikipedia.org/wiki/JSON_Web_Token)으로 인코딩되고 발급자의 디지털 서명을 포함하므로, 간편하게 오프체인 클레임의 인증에 사용될 수 있습니다. + +다음은 오프체인 증명을 설명하는 가상 시나리오입니다. + +1. 한 대학교(발급자)가 증명(디지털 학위 증명서)을 생성한 후 대학교의 키로 서명하고, 이를 Bob(ID의 소유자)에게 발급합니다. + +2. Bob이 회사에 지원하기 위해 학위를 증명해야 할 때 모바일 지갑에서 해당 증명을 꺼내 회사에 제출할 수 있습니다. 회사(검증자)는 발급자의 DID(예: 이더리움 상의 공개 키)를 확인하여 증명의 유효성을 검증할 수 있습니다. + +### 영구 액세스 권한이 있는 오프체인 증명 {#offchain-attestations-with-persistent-access} + +오프체인 인증 방식에서 증명은 JSON 파일로 변환된 후 오프체인(이상적으로는 IPFS 또는 Swarm과 같은 [탈중앙화된 클라우드 스토리지](/developers/docs/storage/) 플랫폼)에 저장됩니다. 한편, 해당 JSON 파일의 [해시](/glossary/#hash) 값은 온체인으로 저장되며 온체인 레지스트리를 통해 DID에 링크됩니다. 연계되는 DID는 해당 증명의 발급자의 것이거나 수신인의 것일 수도 있습니다. + +이러한 방식은 증명이 블록체인 기반으로 영구 보관되는 동시에 민감한 정보는 암호화되어 필요시 검증할 수 있게 합니다. 또한 해당 증명은 개인 키의 소유자만이 복호화하여 정보를 확인할 수 있으므로, 선택적인 공개를 가능하게 합니다. + +### 온체인 증명 {#onchain-attestations} + +온체인 증명은 이더리움 블록체인의 [스마트 계약](/developers/docs/smart-contracts/)에서 이루어집니다. 스마트 계약(레지스트리 역할)은 해당하는 온체인의 분산형 식별 정보(공개 키)에 증명을 매핑합니다. + +아래는 온체인 증명이 실제로 어떻게 작동하는지를 보여주는 예시입니다. + +1. 한 기업(XYZ 회사)이 스마트 계약을 통해 주식을 판매하고자 하며, 신원이 증명된 사람에게만 구매를 허용하려고 합니다. + +2. XYZ 회사는 이더리움의 온체인 증명을 통해 개인의 신원 조회를 진행할 수 있습니다. 이러한 증명은 개인 정보를 노출하지 않고 개인의 신원 조회가 가능하게 합니다. + +3. 주식을 판매하는 스마트 계약은 레지스트리 계약에서 선별된 구매자의 신원을 확인할 수 있으므로 스마트 계약이 누가 주식을 살 수 있는지 여부를 결정할 수 있습니다. + +### 소울바운드 토큰과 신원 증명 {#soulbound} + +[소울바운드 토큰](https://vitalik.ca/general/2022/01/26/soulbound.html)(양도 불가한 NFT)은 특정 지갑에 국한된 고유한 정보를 수집하는 데 사용될 수 있습니다. 이는 개인적인 성취(특정 온라인 강의 완료 또는 게임에서 높은 점수 획득 등)나 특정 커뮤니티에 참여 등을 증명하기 위한 토큰과 같은 온체인 신원 증명이 특정 이더리움 주소에만 고유하게 소속될 수 있게 만듭니다. + +## 분산형 신원 증명의 장점 {#benefits-of-decentralized-identity} + +1. 분산형 신원 증명은 식별하는 정보에 대한 개인의 관리 권한을 강화합니다. 분산형 식별 정보 및 증명은 중앙 집권적인 기관이나 제3자 서비스에 의존하지 않고도 확인될 수 있습니다. + +2. 분산형 신원 증명 솔루션은 사용자 신원 관리 및 검증이 더욱 원활하고, 보호적이며, 특정 기관에 대한 신뢰 없이 이루어질 수 있게 합니다. + +3. 분산형 신원 증명은 블록체인 기술을 활용함으로써, 서로 다른 주체 간에 신뢰 관계를 구축하고, 증명의 유효성을 검증할 수 있는 암호화 기법을 제공합니다. + +4. 분산형 신원 증명은 신원 데이터를 휴대 가능하도록 합니다. 사용자는 증명 및 식별 정보를 모바일 지갑에 저장하고, 필요할 때 원하는 상대방과 공유할 수 있습니다. 분산형 식별 정보와 증명은 발행 기관의 특정 데이터베이스에 고정되지 않습니다. + +5. 분산형 신원 증명은 개인이 특정 정보를 공개하지 않고도 자신이 소유하거나 실행한 작업을 증명할 수 있게 하는 새로운 영지식 기술과 원활하게 작동합니다. 이는 투표와 같은 애플리케이션에 대한 신뢰와 개인 정보를 결합하는 강력한 방법이 될 수 있습니다. + +6. 분산형 신원 증명을 통해 반시빌(anti-Sybil) 메커니즘을 사용하여 한 사람이 게임 상에서 여러 사람인 것처럼 속이거나 특정 시스템을 스팸하는 행위를 식별할 수 있습니다. + +## 분산형 신원 증명 사용 사례 {#decentralized-identity-use-cases} + +분산형 신원 증명은 다양한 곳에 사용될 수 있습니다. + +### 1. 보편적 로그인 {#universal-dapp-logins} + +분산형 신원 증명은 비밀번호 기반 로그인을 [탈중앙화 인증](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/)으로 대체할 수 있게 합니다. 서비스 제공자는 사용자에게 증명을 발행할 수 있으며, 해당 증명은 이더리움 지갑에 저장됩니다. 증명의 예시로, 소유자가 특정 온라인 커뮤니티에 액세스할 수 있게 하는 [NFT](/nft/)가 있을 수 있습니다. + +그 후 [이더리움 로그인](https://login.xyz/) 기능은 서버가 사용자의 이더리움 계정을 확인하고 해당 계정 주소로부터 필요한 증명 정보를 가져올 수 있도록 합니다. 즉, 사용자는 긴 비밀번호를 기억하지 않고도 플랫폼이나 웹사이트에 액세스할 수 있으며, 이는 사용자의 온라인 환경을 향상합니다. + +### 2. KYC 인증 {#kyc-authentication} + +다양한 온라인 서비스를 사용하려면 개인은 운전면허증이나 여권과 같은 증명을 제공해야 합니다. 이러한 방식은 사용자의 개인 정보가 노출될 수 있고, 서비스 제공 업체가 자체적으로 증명을 인증할 수 없다는 문제가 있을 수 있습니다. + +분산형 신원 증명을 통해 회사는 기존의 [KYC(Know-Your-Customer)](https://en.wikipedia.org/wiki/Know_your_customer) 절차를 건너뛰고, 이른바 "검증 가능한 인증 정보"를 통해 사용자 인증을 진행할 수 있습니다. 이는 신원 관리 비용을 절감하는 한편 허위 문서의 사용 등을 방지합니다. + +### 3. 투표 및 온라인 커뮤니티 {#voting-and-online-communities} + +온라인 투표와 소셜 미디어는 분산형 신원 증명을 사용한 가장 놀라운 예시입니다. 온라인 투표는 특히 악의적인 사용자가 허위 신원을 만들어서 투표할 수 있기 때문에 조작에 취약합니다. 이때 개인이 온체인 증명을 제공하도록 요청한다면 온라인 투표 과정의 신뢰도를 개선할 수 있을 것입니다. + +분산형 신원 증명은 허위 계정이 불가능한 온라인 커뮤니티를 만들 수 있게 지원합니다. 예를 들어, 각 사용자가 ENS(이더리움 이름 서비스) 등의 온체인 신원 증명 시스템을 사용하여 신원을 증명하게 함으로써 허위 계정을 막을 수 있습니다. + +### 4. 반시빌(Anti-Sybil) 보호 {#sybil-protection} + +시빌(Sybil) 공격은 개인이 자신의 영향력을 늘리기 위해 여러 사람인 것처럼 시스템을 속이는 행위를 말합니다. [2차 투표](https://www.radicalxchange.org/concepts/plural-voting/)를 사용하는 [보조금 제공 애플리케이션](https://gitcoin.co/grants/)은 이러한 시빌 공격에 취약합니다. 더 많은 개인이 투표할 때 보조금의 가치가 증가하므로 사용자가 기여금을 여러 ID로 분할하도록 유도하기 때문입니다. 분산형 신원 증명은 특정 개인 정보를 공개하도록 요구하지 않는 경우가 많지만, 각 참가자가 실제 사용자임을 증명해야 하는 부담을 줌으로써 이를 방지하는 데 도움이 됩니다. + +## 분산 신원 증명을 사용하세요 {#use-decentralized-identity} + +분산 신원 증명 솔루션을 위한 기반으로 이더리움을 사용하는 야심 찬 프로젝트가 많이 있습니다. + +- **[이더리움 이름 서비스(ENS)](https://ens.domains/)** - _이더리움 지갑 주소, 콘텐츠 해시, 메타데이터 등 온체인 기반 컴퓨터용 식별 정보를 위한 탈중앙화 이름 시스템입니다._ +- **[SpruceID](https://www.spruceid.com/)** - _사용자가 제3자 서비스에 의존하지 않고 이더리움 계정과 ENS 프로필을 이용하여 디지털 신원을 직접 관리할 수 있도록 하는 분산 신원 증명 프로젝트입니다._ +- **[EAS(Ethereum Attestation Service)](https://attest.sh/)** - _모든 것에 대한 온체인 또는 오프체인 증명을 만들 수 있는 탈중앙화된 장부/프로토콜입니다._ +- **[인간 증명](https://www.proofofhumanity.id)** - _인간 증명(PoH: Proof of Humanity)은 이더리움 기반의 소셜 신원 증명 시스템입니다._ +- **[BrightID](https://www.brightid.org/)** - _소셜 그래프를 만들고 분석함으로써 신원 증명을 개혁하고자 하는 탈중앙화된 오픈소스의 소셜 신원 증명 네트워크입니다._ +- **[개인 증명 여권](https://proofofpersonhood.com/)** - _탈중앙화 디지털 신원 정보 종합 플랫폼입니다._ + +## 더 읽을 거리 {#further-reading} + +### 문서 {#articles} + +- [블록체인 사용 사례: 디지털 신원 증명 블록체인](https://consensys.net/blockchain-use-cases/digital-identity/) — *ConsenSys* +- [이더리움 ERC725란 무엇인가요? 블록체인의 자기 주권 신원 관리](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — *Sam Town* +- [블록체인은 어떻게 디지털 신원 문제를 해결하는가](https://time.com/6142810/proof-of-humanity/) — _Andrew R. Chow_ +- [분산 신원이란 무엇이며, 왜 중요한가?](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ + +### 영상 {#videos} + +- [분산 신원 증명 (보너스 실시간 세션)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s): _Andreas Antonopolous의 분산 신원 증명에 대한 설명 영상_ +- [Ceramic, IDX, React, 3ID Connect를 사용하여 이더리움과 분산 신원 증명에 로그인하기](https://www.youtube.com/watch?v=t9gWZYJxk7c): *Nader Dabit의 이더리움 지갑을 사용하여 사용자 프로필을 생성, 조회, 업데이트하기 위한 신원 관리 시스템을 구축하는 유튜브 튜토리얼* +- [BrightID - 이더리움의 분산 신원 증명](https://www.youtube.com/watch?v=D3DbMFYGRoM): *이더리움을 위한 분산 신원 증명 솔루션인 BrightID에 대해 얘기하는 Bankless 팟캐스트 에피소드* +- [오프체인 인터넷: 분산 신원 증명 & 검증 가능한 증명서](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — Evin McMullen의 2022년 EthDenver 발표 + +### 커뮤니티 {#communities} + +- [GitHub의 ERC-725 연합](https://github.com/erc725alliance): *이더리움 블록체인에서 신원 관리를 위한 ERC 725 표준의 지원자* +- [SpruceID 디스코드 서버](https://discord.com/invite/Sf9tSFzrnt): *이더리움 로그인을 개발 중인 개발자와 매니아의 커뮤니티* +- [Veramo Labs](https://discord.gg/sYBUXpACh4): *애플리케이션의 검증 가능한 데이터를 위한 프레임워크 개발자의 커뮤니티* diff --git a/public/content/translations/ko/defi/index.md b/public/content/translations/ko/defi/index.md new file mode 100644 index 00000000000..a14bd281d47 --- /dev/null +++ b/public/content/translations/ko/defi/index.md @@ -0,0 +1,352 @@ +--- +title: 탈중앙화 금융(DeFi) +description: 이더리움의 디파이 개요 +lang: ko +template: use-cases +emoji: ":money_with_wings:" +image: /use-cases/defi.png +alt: 레고 블록으로 만든 이더리움 로고. +sidebarDepth: 2 +summaryPoint1: 현재 금융 시스템에 대한 글로벌하고 개방적인 대안입니다. +summaryPoint2: 대출, 저축, 투자, 거래 등을 할 수 있는 제품입니다. +summaryPoint3: 누구나 프로그래밍할 수 있는 오픈 소스 기술을 기반으로 합니다. +--- + +디파이는 인터넷 시대에 맞게 구축된 개방적이고 글로벌한 금융 시스템이며, 수십 년 된 인프라와 프로세스에 의해 불투명하며 엄격하게 통제되어 함께 유지되는 시스템의 대안입니다. 그것은 당신에게 당신의 돈에 대한 통제력과 가시성을 제공합니다. 글로벌 시장으로의 진출과 현지 통화나 은행 옵션에 대한 대안도 제공합니다. 디파이 제품은 인터넷 연결이 되는 모든 사람에게 금융 서비스를 제공하며 대체로 사용자가 소유하고 관리합니다. 지금까지 수십억 달러 가치의 암호화폐가 디파이 애플리케이션을 통해 유입되었으며 매일 성장하고 있습니다. + +## 디파이가 무엇인가요? {#what-is-defi} + +디파이는 인터넷 연결이 되고 이더리움을 사용하는 모든 사람에게 접근 가능한 금융 제품과 서비스를 이르는 총칭입니다. 디파이를 사용하면 시장은 항상 열려 있고 결제를 막거나 모든 것에 접근할 수 있는 권한을 거부할 수 있는 중앙화된 기관이 없습니다. 이전에는 느리고 인적 오류 위험이 있었던 서비스가 이제 누구나 점검하고 면밀하게 검사할 수 있는 코드로 처리되어 자동적이고 더 안전합니다. + +대부, 대출, 롱/숏, 이자를 얻는 것 등이 가능한 유행 중인 암호화폐 경제가 있습니다. 암호화폐를 잘 아는 아르헨티나인들은 치명적인 인플레이션을 피하기 위해 디파이를 사용해 왔습니다. 기업들은 직원들의 임금을 실시간으로 스트리밍하기 시작했습니다. 어떤 사람들은 심지어 개인 신분증 없이 수백만 달러 상당의 대출을 받아 갚기도 했습니다. + + + +## 디파이 대 기존 금융 {#defi-vs-tradfi} + +디파이의 잠재력을 알 수 있는 가장 좋은 방법 중 하나는 현재 존재하는 문제를 이해하는 것입니다. + +- 일부 사람들에게는 은행 계좌를 개설하거나 금융 서비스를 이용할 수 있는 액세스 권한이 부여되지 않습니다. +- 금융 서비스에 대한 접근권이 없다면 사람들이 고용되지 못할 수 있습니다. +- 금융 서비스는 당신이 급여를 받지 못하게 할 수 있습니다. +- 금융 서비스의 숨겨진 요금은 당신의 개인 데이터입니다. +- 정부와 중앙화된 기관들은 마음대로 시장을 폐쇄할 수 있습니다. +- 거래 시간은 종종 특정 시간대의 영업 시간으로 제한됩니다. +- 송금은 내부 인적 프로세스로 인해 며칠이 걸릴 수 있습니다. +- 중개 기관은 그들의 몫이 필요하기 때문에 금융 서비스에는 할증료가 붙습니다. + +### 비교 {#defi-comparison} + +| 디파이 | 기존 금융 | +| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | +| 당신이 돈을 소유합니다. | 기업이 당신의 돈을 소유합니다. | +| 당신이 돈이 어디로 송금되고 어떻게 소비되는지 통제합니다. | 미상환 위험이 있는 차용자에게 대출 등 기업이 돈을 잘못 관리하지 않으리라고 신뢰해야 합니다. | +| 자금 이체가 몇 분 내로 이루어집니다. | 결제는 수동 프로세스로 인해 며칠이 소요될 수 있습니다. | +| 트랜잭션 활동이 가명입니다. | 금융 활동은 당신의 신원과 밀접하게 연관되어 있습니다. | +| 디파이는 모두에게 열려 있습니다. | 금융 서비스를 이용하려면 신청해야 합니다. | +| 시장이 항상 열려 있습니다. | 직원들에게 휴식이 필요하기 때문에 시장이 문을 닫습니다. | +| 투명성을 기반으로 구축되었으며, 누구나 제품 데이터를 보고 시스템이 어떻게 작동하는지 검사할 수 있습니다. | 금융 기관은 알 수 없는 미스터리입니다. 대출 내역, 관리 자산에 대한 기록 등을 볼 수 없습니다. | + + + 디파이 앱 둘러보기 + + +## 그것은 비트코인으로 시작했습니다... {#bitcoin} + +여러 면에서 비트코인은 최초의 디파이 애플리케이션이었습니다. 비트코인으로 가치를 소유하고 통제하며 전 세계 어디서든 보낼 수 있습니다. 이것은 서로를 믿지 않는 많은 사람들에게 신뢰할 수 있는 중개자가 없이도 계정 장부에 합의할 수 있도록 방법을 제공하는 것으로 이뤄집니다. 비트코인은 누구에게나 열려 있으며 누구도 규칙을 변경할 권한이 없습니다. 희소성 및 개방성과 같은 비트코인의 규칙은 기술에 포함되어 있습니다. 정부가 화폐를 찍어내 개인이 저축한 돈의 가치가 낮아지고 기업이 시장을 폐쇄할 수 있는 기존 금융과는 다릅니다. + +이더리움은 이를 기반으로 합니다. 비트코인과 마찬가지로 규칙을 변경할 수 없으며 모든 사람이 액세스할 수 있습니다. 그러나 또한 [스마트 계약](/glossary#smart-contract)을 사용하여 이 디지털 화폐를 프로그래밍할 수 있게 함으로써, 가치를 저장하고 보내는 것 이상을 할 수 있습니다. + + + +## 프로그래밍 가능한 돈 {#programmable-money} + +이건 이상하게 들립니다. "왜 제가 돈을 프로그래밍하고 싶겠어요?" 그러나 이것은 이더리움 토큰의 기본 기능일 뿐입니다. 누구나 로직을 지불금으로 프로그래밍할 수 있습니다. 그래서 당신은 금융기관이 제공하는 서비스와 함께 비트코인의 통제권과 보안을 얻을 수 있습니다. 이것을 통해 비트코인으로 할 수 없는 대부와 대출, 결제 일정 수립, 인덱스 펀드에 투자하기 등과 같은 것들을 암호화폐로 할 수 있습니다. + + +
이더리움이 처음이시면 디파이 애플리케이션에 대한 제안을 살펴보세요.
+ + 디파이 앱 둘러보기 + +
+ +## 디파이로 무엇을 할 수 있나요? {#defi-use-cases} + +대부분의 금융 서비스에는 탈중앙화된 대안이 있습니다. 그러나 이더리움은 완전히 새로운 금융 상품을 만들 수 있는 기회도 제공합니다. 이 목록은 계속 늘어납니다. + +- [전 세계로 송금하기](#send-money) +- [전 세계로 돈을 스트리밍하기](#stream-money) +- [안정적인 통화에 액세스하기](#stablecoins) +- [담보로 자금 대출하기](#lending) +- [무담보 대출하기](#flash-loans) +- [암호화폐 저축 시작하기](#saving) +- [토큰 거래하기](#swaps) +- [포트폴리오 확장하기](#investing) +- [아이디어 자금 모으기](#crowdfunding) +- [보험 가입하기](#insurance) +- [포트폴리오 관리하기](#aggregators) + + + +### 전 세계로 빠르게 송금하세요 {#send-money} + +이더리움은 블록체인으로서 안전하고 글로벌하게 트랜잭션을 전송할 수 있도록 설계되었습니다. 비트코인과 마찬가지로 이더리움은 이메일을 보내는 것만큼 쉽게 전 세계로 돈을 송금할 수 있습니다. 수령인의 [ENS 이름](/nft/#nft-domains)(예: bob.eth) 또는 지갑의 계정 주소를 입력하기만 하면 몇 분 안에 수취인에게 직접 지급됩니다(보통은). 지불금을 보내거나 받으려면 [지갑](/wallets/)이 필요합니다. + + + 결제 디앱 보기 + + +#### 전 세계로 돈을 스트리밍하세요... {#stream-money} + +이더리움으로 돈을 스트리밍할 수도 있습니다. 이렇게 하면 누군가에게 초 단위로 월급을 지급하여 필요할 때마다 돈을 받을 수 있습니다. 또는 초 단위로 보관 사물함이나 전기 스쿠터를 빌릴 수 있습니다. + +그리고 가치가 변하는 정도 때문에 [ETH](/eth/)를 송금하거나 스트리밍하고 싶지 않다면, 이더리움에는 스테이블 코인이라는 대체 화폐가 있습니다. + + + +### 안정적인 화폐에 액세스하세요 {#stablecoins} + +암호 화폐 변동성은 많은 금융상품과 일반 지출에 문제가 됩니다. 디파이 커뮤니티는 스테이블 코인으로 이 문제를 해결했습니다. 그것의 가치는 보통 달러처럼 인기 있는 통화인 또 다른 자산에 고정되어 있습니다. + +다이 또는 USDC와 같은 코인의 가치는 몇 센트 이내입니다. 이런 점 때문에 스테이블 코인은 돈 버는 것 또는 소매업에 적합합니다. 라틴 아메리카의 많은 사람들은 정부가 발행한 화폐로 매우 불확실한 시기에 저축한 돈을 지키는 방법으로 스테이블 코인을 사용했습니다. + + + 스테이블 코인에 대해 더 보기 + + + + +### 대출 {#lending} + +탈중앙화된 제공자로부터 돈을 대출하는 것은 두 종류가 있습니다. + +- P2P, 대출자가 직접 특정 대출 기관에서 직접 대출하는 방식. +- 대출 기관에서 자산을 대출자가 대출할 수 있는 풀로 지급하는(유동성) 풀 기반. + + + 대출용 디앱 보기 + + +탈중앙화된 대출 기관을 사용하는 것은 이점이 많습니다. + +#### 개인 정보 보호를 통한 대출 {#borrowing-privacy} + +오늘날, 돈을 빌려주고 대출하는 것은 모두 관련된 개인들을 중심으로 돌아갑니다. 은행은 돈을 빌려주기 전에 당신이 대출을 상환할 수 있는지 알아야 합니다. + +탈중앙화 대출은 어느 당사자도 신원을 확인할 필요 없이 가능합니다. 대신 차주는 대출이 상환되지 않을 경우 대주에게 자동으로 지급되는 담보를 설정해야 합니다. 일부 대출 기관은 NFT를 담보로 받기도 합니다. NFT는 그림과 같은 고유 자산에 대한 증서입니다. [NFT에 대해 더 보기](/nft/) + +이를 통해 신용 확인이나 개인 정보 양도 없이 돈을 빌릴 수 있습니다. + +#### 글로벌 펀드에 대한 액세스 {#access-global-funds} + +탈중앙화된 대출 기관을 이용하면 선택하신 은행이나 기관에서 보관하는 자금 뿐만 아니라 전 세계에서 예치된 자산에 대한 액세스를 갖게 됩니다. 이것은 대출을 더 접근하기 쉽게 만들고 금리를 향상시킵니다. + +#### 조세 효율성 {#tax-efficiencies} + +대출을 통해 ETH(과세 대상 이벤트)를 판매하지 않고도 필요한 자금을 이용할 수 있습니다. 대신 스테이블 코인 대출을 위한 담보로 ETH를 사용할 수 있습니다. 이렇게 하면 필요한 현금 흐름이 생기고 ETH를 유지할 수 있습니다. 스테이블 코인은 ETH처럼 가치가 변동하지 않아 현금이 필요할 때 훨씬 좋은 토큰입니다. [스테이블 코인에 대해 더 보기](#stablecoins) + +#### 플래시 론 {#flash-loans} + +플래시 론은 보다 실험적인 형태의 탈중앙화 대출로, 담보나 개인 정보를 제공할 필요 없이 돈을 빌릴 수 있습니다. + +지금은 비전문가들이 쉽게 접근할 수 없지만, 모든 사람들에게 미래에 무엇이 가능한지 알려줍니다. + +동일한 트랜잭션 내에서 대출을 받고 갚는 것을 기준으로 작동합니다. 상환할 수 없는 경우 트랜잭션은 아무 일도 없었던 것처럼 되돌아갑니다. + +자주 사용되는 자금은 유동성 풀(대출에 사용되는 대규모 자금 풀)에 보관됩니다. 만약 자금이 주어진 순간에 사용되지 않는다면, 누군가 이 자금을 빌려서 자금으로 거래를 하고, 대출하는 동시에 자금으로 완전히 갚을 수 있는 기회가 생깁니다. + +맞춤형 트랜잭션에 많은 로직이 포함되어야 한다는 뜻입니다. 간단한 예로는 플래시 론을 사용하여 한 가격에 많은 자산을 대출하여 가격이 더 높은 다른 거래소에 판매할 수 있습니다. + +따라서 단일 트랜잭션에서 다음과 같은 일이 발생합니다. + +- 거래소 A에서 $1.00에 X 금액의 $asset을 대출합니다. +- 거래소 B에서 X $asset을 $1.10에 판매합니다. +- A를 교환하기 위해 대출금을 상환합니다. +- 당신은 거래 수수료를 제외한 수익을 갖게 됩니다. + +만약 B 거래소의 공급이 갑자기 감소하고 사용자가 원래 대출금을 감당할 수 있을 만큼 충분히 살 수 없다면, 트랜잭션은 간단히 실패할 것입니다. + +전형적인 금융 세계에서 위의 예시를 가능하게 하려면 엄청난 돈이 필요합니다. 이러한 돈벌이 전략은 기존의 부를 가진 사람들만이 접근할 수 있습니다. 플래시 론은 돈을 버는 것의 전제 조건이 돈을 소유하는 것이 아니라는 미래의 예시입니다. + +[플래시 론에 대해 더 보기](https://aave.com/flash-loans/) + + + +### 암호화폐로 저축을 시작하세요 {#saving} + +#### 대출 {#lending} + +빌려주는 것으로 암호화폐의 이자를 벌어 실시간으로 자산이 늘어가는 걸 볼 수 있습니다. 현재 이자율은 지역 은행에서 얻을 수 있는 것보다 훨씬 높습니다(운 좋게 은행에 갈 수 있다면). 예시는 다음과 같습니다. + +- Aave와 같은 제품에 [스테이블 코인](/stablecoins/)인 100다이를 빌려줍니다. +- 대출한 다이를 상징하는 토큰인 Aave 다이(aDai) 백 개를 받습니다. +- 이자율에 따라 aDai는 증가하고 지갑에서 잔고가 늘어가는 걸 보실 수 있습니다. 연이율에 따라 지갑 잔고는 며칠 또는 심지어 몇 시간 후에 100.1234와 같은 수치가 되어 있을 겁니다! +- 언제든지 aDai 잔액과 동일한 금액의 일반 다이를 인출할 수 있습니다. + + + 대출 디앱 보기 + + +#### 무손실 복권 {#no-loss-lotteries} + +풀투게더 같은 무손실 복권은 돈을 절약할 수 있는 재미있고 혁신적인 새로운 방법입니다. + +- 다이 토큰 100개로 티켓 100장을 구매합니다. +- 100장의 티켓과 동등한 100plDai를 받습니다. +- 당신의 티켓 중 하나가 승자로 선택되면 plDai 잔액은 상금 풀의 금액만큼 증가합니다. +- 이기지 못하면 당신의 100 plDai는 다음 주 추첨으로 넘어갑니다. +- 언제든지 plDai 잔액과 동일한 금액의 일반 다이를 인출할 수 있습니다. + +상금 풀은 위의 대출 예시와 같이 티켓 예금을 대출하여 발생하는 모든 이자로 생성됩니다. + + + 풀투게더 사용해보기 + + + + +### 토큰을 교환하세요 {#swaps} + +이더리움에는 수천 개의 토큰이 있습니다. 탈중앙화 거래소(DEX)를 사용하면 원할 때마다 다른 토큰을 거래할 수 있습니다. 자산에 대한 통제권을 포기하지 마세요. 이것은 마치 다른 나라를 방문할 때 환전소를 이용하는 것과 같습니다. 하지만 디파이 버전은 절대 문을 닫지 않습니다. 시장은 연중무휴로 365일 운영되며 기술 덕에 거래를 수락할 사람을 항상 구할 수 있습니다. + +예를 들어, 무손실 복권 풀투게더(위에서 설명함)를 사용하려면 다이 또는 USDC와 같은 토큰이 필요합니다. 이런 DEX를 사용하면 ETH를 토큰으로 교환할 수 있고 끝나면 반대로 토큰을 ETH로 교환할 수 있습니다. + + + 토큰 거래소 보기 + + + + +### 고급 거래 {#trading} + +더 많은 통제권을 원하는 거래자를 위한 고급 옵션이 있습니다. 지정가 주문, 무기한, 마진 거래 등이 모두 가능합니다. 분산 거래를 통해 글로벌 유동성에 접근할 수 있고 시장이 닫히지 않으며 항상 자산을 통제할 수 있습니다. + +중앙화 거래소를 이용하면 거래 전에 자산을 예치해야 하고, 그 자산을 책임질 거래소를 신뢰해야 합니다. 자산이 예치되어 있으면 중앙화 거래소는 해커에게 매력적인 대상이기 때문에 자산이 위험합니다. + + + 거래 디앱 보기 + + + + +### 포트폴리오를 확장하세요 {#investing} + +이더리움에는 선택한 전략에 따라 포트폴리오를 확장하는 펀드 관리 제품이 있습니다. 이것은 자동적이고 모두에게 공개되며, 수익의 일부를 가져가는 인간 관리자가 필요 없습니다. + +좋은 예가 [디파이 펄스 인덱스 펀드(DPI)](https://defipulse.com/blog/defi-pulse-index/)입니다. 이 펀드는 포트폴리오에 항상 [시가총액 기준 상위 디파이 토큰](https://www.coingecko.com/en/defi)이 포함되도록 자동으로 편입 종목을 재조정합니다. 세부 사항을 관리할 필요가 없으며 원할 때마다 펀드에서 인출할 수 있습니다. + + + 투자 디앱 보기 + + + + +### 아이디어 자금을 모으세요 {#crowdfunding} + +이더리움은 크라우드 펀딩을 위한 이상적인 플랫폼입니다. + +- 잠재적 후원자는 어디서든 나올 수 있습니다. 이더리움과 이더리움 토큰은 전 세계 어디든, 누구에게나 개방되어 있습니다. +- 투명하기 때문에 모금자가 얼마나 많은 돈이 모였는지 증명할 수 있습니다. 심지어 나중에 자금이 어떻게 사용되는지 추후에 추적할 수 있습니다. +- 예를 들면 모금자는 구체적인 기한과 최소 금액이 충족되지 않는 경우 자동 환불을 설정할 수 있습니다. + + + 크라우드 펀딩 디앱 보기 + + +#### 2차 펀딩 {#quadratic-funding} + +이더리움은 오픈 소스 소프트웨어이며 지금까지의 많은 작업물이 커뮤니티에서 자금을 지원받았습니다. 이는 2차 펀딩이라는 흥미롭고 새로운 모금 모델의 성장으로 이어졌습니다. 2차 펀딩은 미래에 모든 공공재 유형에 자금을 지원하는 방식을 개선할 잠재력이 있습니다. + +2차 펀딩은 가장 많은 자금을 받는 프로젝트가 가장 특이한 수요가 있는 프로젝트인지 확인합니다. 즉, 대부분의 사람들의 삶을 개선하기 위한 프로젝트입니다. 운영 방식은 다음과 같습니다. + +1. 기부된 자금의 매칭 풀이 있습니다. +2. 공개 펀딩이 시작됩니다. +3. 사람들은 돈을 기부하여 프로젝트에 대한 수요를 알릴 수 있습니다. +4. 펀딩 라운드가 끝나면 매칭 풀이 프로젝트에 분배됩니다. 가장 눈에 띄는 수요가 있는 프로젝트는 매칭 풀에서 가장 많은 금액을 얻습니다. + +이는 1달러의 기부를 100번 받은 프로젝트 A가 만 달러 기부를 한 번 받은 프로젝트 B보다 더 많은 펀딩을 받았다는 것을 의미합니다(매칭 풀의 크기에 따라 다름). + +[2차 펀딩에 대해 더 보기](https://wtfisqf.com) + + + +### 보험 {#insurance} + +탈중앙화 보험은 보험을 더 싸고, 더 빠르게 돈을 지불할 수 있고, 더 투명하게 하는 것을 목표로 합니다. 더 많은 자동화가 이뤄지면 보험이 더욱 저렴해지고 지불도 훨씬 빨라집니다. 당신의 청구를 결정하는 데 사용되는 데이터는 완전히 투명합니다. + +이더리움 제품은 다른 소프트웨어와 마찬가지로 버그와 악용에 시달릴 수 있습니다. 그래서 현재 이 분야의 많은 보험 상품들은 자금 손실로부터 사용자를 보호하는 데 초점을 맞추고 있습니다. 그러나 살면서 발생할 수 있는 모든 사안으로 보장 범위를 확장하는 프로젝트가 있습니다. 이것의 좋은 예는 [케냐의 소규모 농부들을 가뭄과 홍수로부터 보호하는 것](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc)을 목표로 하는 이더리스크의 농작물 보험입니다. 탈중앙화 보험은 종종 일반적인 보험에서 제외되는 농부들에게 더 저렴한 보험을 제공할 수 있습니다. + + + 보험 디앱 보기 + + + + +### 애그리게이터 및 포트폴리오 관리자 {#aggregators} + +많은 일이 진행됨에 따라 모든 투자, 대출 및 거래를 추적할 수 있는 방법이 필요할 것입니다. 한 곳에서 디파이 활동을 조율할 수 있는 여러 제품이 있습니다. 이것이 디파이의 개방형 아키텍처의 아름다움입니다. 팀에서 여러 제품 간의 잔액을 볼 수 있는 인터페이스를 구축할 수 있을 뿐만 아니라 기능을 사용할 수도 있습니다. 디파이에 대해 더 알아갈 수록 이것이 유용할 것입니다. + + + 포트폴리오 디앱 보기 + + + + +## 디파이는 어떻게 작동하나요? {#how-defi-works} + +디파이는 암호화폐와 스마트 계약으로 중개인이 필요 없는 서비스를 제공합니다. 오늘날의 금융 세계에서 금융 기관은 거래의 보증인 역할을 합니다. 돈이 금융 기관을 통해 흐르기 때문에 금융 기관이 엄청난 힘을 갖게 됩니다. 게다가 전 세계 수십억 명의 사람들은 은행 계좌에 접근할 수도 없습니다. + +디파이에서는 거래 시에 스마트 계약이 금융 기관을 대신합니다. 스마트 계약은 자금을 보유할 수 있고 특정 조건에 따라 송금/환불할 수 있는 일종의 이더리움 계정입니다. 스마트 계약이 실행 중에는 아무도 변경할 수 없습니다. 항상 프로그래밍된 대로 실행됩니다. + +용돈 혹은 주머닛돈을 나눠주도록 고안된 계약은 계정 A에서 계정 B로 매주 금요일에 송금하도록 프로그래밍될 수 있습니다. 그리고 계정 A에 필요한 자금이 있는 동안에만 그렇게 할 것입니다. 아무도 자금을 훔치기 위해 계약을 변경하고 계정 C를 수령인으로 추가할 수 없습니다. + +또한 계약을 누구나 검사하고 감사할 수 있습니다. 이는 불량 계약은 보통 매우 빠르게 커뮤니티의 면밀한 조사를 받게 된다는 의미입니다. + +이더리움 커뮤니티의 코드를 읽을 수 있는 기술자 멤버들을 더욱 신뢰해야 할 필요가 있다는 것입니다. 오픈 소스 기반 커뮤니티는 개발자들을 통제하는 데에 도움이 되지만, 스마트 계약이 읽기 쉬워지고 코드의 신뢰성을 증명할 다른 방법이 개발되어 그 필요성은 점점 줄어들 것입니다. + +## 이더리움과 디파이 {#ethereum-and-defi} + +이더리움이 디파이를 위한 완벽한 기반인 이유는 다음과 같습니다. + +- 아무도 이더리움이나 그것을 토대로 한 스마트 계약을 소유하지 않습니다. 이는 모두에게 디파이를 사용할 기회를 줍니다. 또한 아무도 규칙을 변경할 수 없습니다. +- 디파이 제품은 모두 동일하게 이더리움을 사용합니다. 이는 많은 제품이 원활하게 함께 작동한다는 것을 의미합니다. 한 플랫폼에서 토큰을 빌려주고 완전히 다른 애플리케이션에서 다른 시장의 이자가 붙는 토큰을 교환할 수 있습니다. 은행에서 로열티 포인트를 현금화할 수 있는 것과 같습니다. +- 토큰과 암호화폐는 공유된 장부인 이더리움에 내장되어 있습니다. 거래와 소유권을 추적하는 것은 이더리움의 특기입니다. +- 이더리움은 완전한 재정적 자유를 허용합니다. 대부분의 제품은 당신의 자금을 관리하지 않으므로 통제할 수 있습니다. + +디파이를 레이어 구조로 생각해 볼 수 있습니다. + +1. 블록체인 – 이더리움에 거래 내역과 계정 상태가 들어있습니다. +2. 자산 – [ETH](/eth/) 및 기타 토큰(화폐)입니다. +3. 프로토콜 – 예를 들어 자산의 탈중앙화 대출을 제공하는 서비스와 같은 기능을 제공하는 [스마트 계약](/glossary/#smart-contract)입니다. +4. [애플리케이션](/dapps/) – 프로토콜을 관리하고 액세스하는 데 사용하는 제품입니다. + +## 디파이를 구축하세요 {#build-defi} + +디파이는 오픈 소스 캠페인입니다. 디파이 프로토콜과 애플리케이션은 검사하고, 포크하고, 혁신할 수 있도록 누구에게나 열려 있습니다. 이러한 계층화된 스택(모두 동일한 베이스 블록체인과 자산을 공유함)으로 인해 프로토콜을 합치고 맞춰서 독특한 콤보 기회를 열 수 있습니다. + + + 디앱 구축에 대해 더 보기 + + +## 더 읽을 거리 {#futher-reading} + +### 디파이 데이터 {#defi-data} + +- [디파이 프라임](https://defiprime.com/) +- [디파이 라마](https://defillama.com/) +- [디파이 레이트](https://defirate.com/) + +### 디파이 기사 {#defi-articles} + +- [디파이 초보자 가이드](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _시드 코엘로-프라부, 2020년 1월 6일_ + +### 영상 {#videos} + +- [Finematics - 탈중앙화 금융 교육](https://finematics.com/) – _디파이에 대한 영상_ +- [디파이언트](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _디파이 기초: 가끔은 혼란스러운 이곳에서 시작하려면 알아야 할 모든 것._ +- [화이트보드 크립토](https://youtu.be/17QRFlml4pA) _디파이란 무엇인가요?_ + +### 커뮤니티 {#communities} + +- [디파이 라마 디스코드 서버](https://discord.gg/buPFYXzDDd) +- [디파이 펄스 디스코드 서버](https://discord.gg/Gx4TCTk) diff --git a/public/content/translations/ko/desci/index.md b/public/content/translations/ko/desci/index.md new file mode 100644 index 00000000000..42ef5d30f56 --- /dev/null +++ b/public/content/translations/ko/desci/index.md @@ -0,0 +1,139 @@ +--- +title: 탈중앙화 과학(DeSci) +description: 이더리움의 탈중앙화 과학 개요 +lang: ko +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: 현재 금융 시스템에 대한 글로벌하고 개방적인 대안입니다. +summaryPoint2: 과학자들이 자금을 모으고, 실험을 실행하고, 데이터를 공유하고, 통찰력을 배포할 수 있게 하는 기술. +summaryPoint3: 열린 과학 운동을 기반으로 합니다. +--- + +## 탈중앙화 과학(DeFi)이란 무엇인가요? {#what-is-desci} + +탈중앙화 과학(DeSci)은 Web3 스택을 사용하여 과학 지식을 공정하고 공평하게 자금 조달, 생성, 검토, 신용, 저장 및 보급하기 위한 공공 인프라를 구축하는 것을 목표로 하는 운동입니다. + +DeSci는 과학자들이 그들의 연구를 공개적으로 공유하고 그들의 작업에 대한 공로를 인정받도록 장려하는 동시에 누구나 연구에 쉽게 접근하고 기여할 수 있는 생태계를 만드는 것을 목표로 합니다. DeSci는 과학적 지식은 모든 사람이 접근할 수 있어야 하며 과학 연구 과정은 투명해야 한다는 생각을 바탕으로 합니다. DeSci는 더 탈중앙화 과학 연구 모델을 만들고 있으며, 중앙 당국의 검열과 통제에 더 저항하고 있습니다. DeSci는 자금, 과학 도구 및 통신 채널에 대한 접근을 탈중앙화 시킴으로써 새롭고 틀에 얽매이지 않는 아이디어가 번창할 수 있는 환경을 조성하기를 희망합니다. + +탈중앙화 과학은 더 다양한 자금을 허용합니다 ([다오](/dao/), [ 펀딩 등에 대한 이차 기부](https://papers.ssrn.com/sol3/papers.cfm?Abstract_id=2003531)), 더 접근 가능한 접근 데이터와 방법, 그리고 재현에 대한 보상 제공함으로써. + +### Juan Benet - DeSci 운동 + + + +## DeSci가 과학을 개선시키는 방법 {#desci-improves-science} + +과학의 주요 문제에 대한 불완전한 목록과 탈중앙화 과학이 이러한 문제를 해결하는 데 어떻게 도움이 될 수 있는지 + +| **탈중앙화된 과학** | **기존 과학** | +| --------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | +| 자금 분배는 이차 기부 또는 DAO와 같은 메커니즘을 사용하여 대중에 의해 결정됩니다. | 작고 폐쇄된 중앙 집권 그룹이 자금 분배를 통제합니다. | +| 여러분은 역동적인 팀으로 전 세계의 동료들과 협력합니다. | 자금 조달 기관과 가정 기관은 당신의 협력을 제한합니다. | +| 자금 조달 결정은 온라인에서 투명하게 이루어집니다. 새로운 자금 조달 메커니즘이 탐구되었습니다. | 자금 조달 결정은 긴 처리 시간과 제한된 투명성으로 이루어집니다. 자금 조달 메커니즘은 거의 존재하지 않습니다. | +| 실험실 서비스 공유는 Web3 기초 요소를 사용하여 더 쉽고 투명하게 만들어졌습니다. | 실험실 자원을 공유하는 것은 종종 느리고 불투명합니다. | +| 신뢰, 투명성 및 보편적 접근을 위해 Web3 기초 요소를 사용하는 새로운 출판 모델을 개발할 수 있습니다. | 여러분은 비효율적이고 편향적이고 착취적인 것으로 자주 인정되는 확립된 경로를 통해 출판합니다. | +| 동료 검토 작업으로 토큰과 명성을 얻을 수 있습니다. | 동료 검토 작업은 무급이며, 영리 출판사에 도움이 됩니다. | +| 여러분은 투명한 조건에 따라 생성하고 배포하는 지적 재산권(IP) 을 소유합니다. | 여러분의 홈 기관은 여러분이 생성한 IP를 소유합니다. IP에 대한 접근은 투명하지 않습니다. | +| 모든 단계를 체인에 연결함으로써 실패한 노력의 데이터를 포함한 모든 연구를 공유합니다. | 출판 편향은 연구자들이 성공적인 결과를 얻은 실험을 공유할 가능성이 더 높다는 것을 의미합니다. | + +## 이더리움과 DeSci {#ethereum-and-desci} + +탈중앙화 과학 시스템은 강력한 보안, 최소한의 통화 및 거래 비용, 그리고 애플리케이션 개발을 위한 풍부한 생태계를 요구할 것입니다. 이더리움은 탈중앙화 과학 스택을 구축하는 데 필요한 모든 것을 제공합니다. + +## DeSci 사용 사례 {#use-cases} + +DeSci는 Web2 학계를 디지털 세계로 전환하기 위한 과학적 도구 세트를 구축하고 있습니다. 아래는 Web3가 과학계에 제공할 수 있는 사용 사례 샘플입니다. + +### 출판 사업 {#publishing} + +과학 출판은 논문을 생성하기 위해 과학자, 평론가 및 편집자의 무료 노동에 의존하지만 엄청난 출판 비용을 부과하는 출판사에 의해 관리되기 때문에 문제가 있는 것으로 유명합니다. 보통 세금을 통해 작품과 출판 비용을 간접적으로 지불한 대중은 종종 출판사에 다시 지불하지 않고는 같은 작품에 접근할 수 없습니다. 개별 과학 논문 출판에 드는 총 비용은 종종 5자리 숫자($USD)이며, 이는 과학 지식의 전체 개념을 [ 공익](https://www.econlib.org/library/Enc/PublicGoods.html)과 동시에 소수의 출판사에게 막대한 이익을 창출합니다. + +무료 및 오픈 액세스 플랫폼은 [ArXiv와 같은](https://arxiv.org/) 사전 인쇄 서버의 형태로 존재합니다. 그러나 이러한 플랫폼은 품질 관리, [반시빌(anti-sybil) 메커니즘 mechanisms](https://csrc.nist.gov/glossary/term/sybil_attack)이 부족하며 일반적으로 기사 수준의 글을 추적하지 않습니다. 즉, 일반적으로 전통적인 출판사에 제출하기 전에 작업을 홍보하는 데만 사용됩니다. 탈중앙화 허브 는 또한 출판된 논문에 무료로 접근할 수 있도록 하지만, 법적으로는 접근하지 않으며, 출판사가 이미 지불을 받고 엄격한 저작권법으로 작품을 포장한 후에만 가능합니다. 이것은 내장된 합법 메커니즘과 보상 모델로 접근 가능한 과학 논문과 데이터에 중요한 격차를 남깁니다. 그러한 시스템을 구축하기 위한 도구는 Web3에 존재합니다. + +### 재생 가능성과 복제 가능성 {#reproducibility-and-replicability} + +재생 가능성과 복제 가능성은 양질의 과학적 발견의 기초입니다. + +- 재현 가능한 결과는 동일한 방법론을 사용하여 동일한 팀에서 연속으로 여러 번 달성할 수 있습니다. +- 동일한 실험 설정을 사용하여 다른 그룹에서 복제 가능한 결과를 얻을 수 있습니다. + +새로운 Web3 네이티브 도구는 재생 가능성과 복제 가능성이 검색의 기반이 되도록 보장할 수 있습니다. 우리는 학계의 기술 구조에 양질의 과학을 엮을 수 있습니다. Web3는 원시 데이터, 계산 엔진 및 응용 프로그램 결과와 같은 각 분석 구성 요소에 대한 증명을 만들 수 있는 기능을 제공합니다. 합의 시스템의 장점은 이러한 구성 요소를 유지하기 위해 신뢰할 수 있는 네트워크가 생성될 때, 각 네트워크 참가자는 계산을 재현하고 각 결과를 검증할 책임이 있다는 것입니다. + +### 펀딩 {#funding} + +과학 자금 조달을 위한 현재 표준 모델은 개인이나 과학자 그룹이 자금 조달 기관에 서면 신청서를 작성하는 것입니다. 신뢰할 수 있는 개인으로 구성된 소규모 패널이 응용 프로그램을 평가한 다음 지원자 중 일부에게 기금을 수여하기 전에 지원자를 인터뷰합니다. 보조금 신청과 수령 사이에 때때로 수년의 대기 시간으로 이어지는 병목 현상을 제외하고 이 모델은 검토 패널의 편견, 이기심 및 정치에 매우 취약한 것으로 알려져 있습니다. + +연구에 따르면 보조금 검토 패널은 다른 패널에 주어진 동일한 제안이 매우 다른 결과를 가지고 있기 때문에 고품질 제안을 선택하는 데 열악한 역할을 합니다. 자금이 더 부족해짐에 따라, 그것은 더 지적으로 보수적인 프로젝트를 가진 더 많은 고위 연구자들의 더 작은 풀에 집중되었습니다. 그 효과는 비뚤어진 보상을 확고히 하고 혁신을 억누르는 경쟁적인 자금 조달 환경을 조성했습니다. + +Web3는 DAO와 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)는 과학 자금에 혁명을 일으킬 수 있는 Web3 도구 중 일부입니다. + +### IP 소유권 및 개발 {#ip-ownership} + +지적 재산권(IP)은 대학에 갇히거나 생명공학에 사용되지 않는 것부터 평가하기 어려운 악명 높은 것까지 전통적인 과학에서 큰 문제입니다. 그러나 디지털 자산(과학 데이터 또는 기사와 같은) 의 소유권은 Web3가 [대체 불가능한 토큰(NFT)](/nft/)을 사용하여 예외적으로 잘 하는 것입니다. + +NFT가 향후 거래에 대한 수익을 원래 작성자에게 다시 전달할 수 있는 것과 같은 방식으로 연구자, 관리 기관(예: DAO) 또는 데이터를 수집한 주체에게 보상하기 위해 투명한 가치 귀속 체인을 설정할 수 있습니다. + +[IP-NFT](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6)는 또한 수행 중인 연구 실험의 분산된 데이터 저장소의 열쇠 역할을 할 수 있으며 NFT 및 [DeFi](/defi/) 금융화(금융에서 대출 풀 및 가치 평가까지)에 연결할 수 있습니다. 또한 [VitaDAO](https://www.vitadao.com/)와 같은 DAO와 같은 본질적으로 온체인 단체가 온 체인에서 직접 연구를 수행할 수 있습니다. 양도할 수 없는 ["soulbound" 토큰](https://vitalik.ca/general/2022/01/26/soulbound.html)의 출현은 또한 개인이 이더리움 주소와 연결된 경험과 자격 증명을 증명할 수 있도록 함으로써 DeFi 에서 중요한 역할을 할 수 있습니다. + +### 데이터 저장, 액세스 및 아키텍처 {#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 데이터 해결책은 위의 시나리오를 지원하고 연구자가 액세스 권한이나 수수료 없이 공공재 만들 수 있는 진정한 개방형 과학의 기반을 제공합니다. IPFS, Arweave 및 Filecoin과 같은 Web3 공용 데이터 해결책은 탈중앙화에 최적화되어 있습니다. 예를 들어, 기후변화는 기상 관측소와 예측 기후 모델을 포함한 기후 및 날씨 데이터에 대한 보편적인 접근을 제공합니다. + +## 참여하기 {#get-involved} + +프로젝트를 탐색하고 DeSci 커뮤니티에 가입하세요. + +- [DeSci.Global: 글로벌 이벤트 및 모임 일정](https://desci.global) +- [과학을 위한 블록체인 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/) +- [DeFi Foundation: DeFi 게시 도구 빌더](https://descifoundation.org/) +- [DeSci.World: 사용자가 보고, 탈중앙화 과학에 참여할 수 있는 원스톱 상점](https://desci.world) +- [플레밍 프로토콜: 협업 생물 의학 발견을 촉진하는 오픈 소스 데이터 경제](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 또는 desci 프로젝트에 자금을 지원받으세요](https://www.molecule.to/) +- [ResearchHub: 과학적 결과를 게시하고 동료들과 대화에 참여하세요](https://www.researchhub.com/) +- [VitaDAO: 장수 연구를 위한 후원 연구 계약을 통해 자금을 받으세요](https://www.vitadao.com/) +- [플레밍 프로토콜: 협업 생물 의학 발견을 촉진하는 오픈 소스 데이터 경제](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/) +- [DeSci Labs](https://www.desci.com/) + +우리는 새로운 프로젝트에 대한 제안을 환영합니다 - 시작하려면 [목록 정책](/contributing/adding-desci-projects/)을 보세요! + +## 더 읽을거리 {#further-reading} + +- [Jocelynn Pearl과 Ultrarare의 DeSci Wiki](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) +- [A16z 미래를 위한 Jocelynn Pearl의 분산형 생명공학 가이드](https://future.a16z.com/a-guide-to-decentralized-biotech/) +- [DeSci의 사례](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) +- [DeSci 가이드](https://future.com/what-is-decentralized-science-aka-desci/) +- [탈중앙화 과학 참고 자료](https://www.vincentweisser.com/decentralized-science) +- [분자의 바이오제약회사 IP-NFT - 기술 설명](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) +- [존 스타의 신뢰할 수 없는 과학 시스템 구축](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) +- [생명공학 DAO의 출현](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) +- [분산 과학을 위한 적극적인 추론 존재론: 위치한 감각 만들기에서 Epistemic Commons까지](https://zenodo.org/record/6320575) +- [DeSci: 사무엘 아키노쇼의 연구의 미래](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) +- [나디아의 과학 자금 조달 (끝맺음말: DeSci 및 새로운 암호화 기초 요소)](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) +- [후안 베넷 - DeSci, 독립 연구소 및 대규모 데이터 과학](https://www.youtube.com/watch?v=zkXM9H90g_E) +- [Sebastian Brunemeier - DeSci가 생물 의학 연구 및 벤처 캐피탈을 변화시킬 수 있는 방법](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/ko/energy-consumption/index.md b/public/content/translations/ko/energy-consumption/index.md similarity index 100% rename from src/content/translations/ko/energy-consumption/index.md rename to public/content/translations/ko/energy-consumption/index.md diff --git a/src/content/translations/ko/enterprise/index.md b/public/content/translations/ko/enterprise/index.md similarity index 100% rename from src/content/translations/ko/enterprise/index.md rename to public/content/translations/ko/enterprise/index.md diff --git a/src/content/translations/ko/governance/index.md b/public/content/translations/ko/governance/index.md similarity index 100% rename from src/content/translations/ko/governance/index.md rename to public/content/translations/ko/governance/index.md diff --git a/public/content/translations/ko/nft/index.md b/public/content/translations/ko/nft/index.md new file mode 100644 index 00000000000..0d547926249 --- /dev/null +++ b/public/content/translations/ko/nft/index.md @@ -0,0 +1,94 @@ +--- +title: 대체 불가 토큰(NFT) +description: 이더리움의 NFT 개요 +lang: ko +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: 홀로그램을 통해 표시되고 있는 ETH 로고. +summaryPoint1: 이더리움 기반 자산으로 고유한 모든 것을 나타내는 방법입니다. +summaryPoint2: NFT는 콘텐츠 창작자에게 그 어느 때보다도 더 많은 힘을 실어주고 있습니다. +summaryPoint3: 이더리움 블록체인의 스마트 계약을 기반으로 구동됩니다. +--- + +## NFT란 무엇인가요? {#what-are-nfts} + +NFT는 개별적으로 고유한 토큰입니다. 각 NFT에는 서로 다른 특성이 있으며(대체 불가능성) 희소성을 입증할 수 있습니다. 한 집합의 모든 토큰이 동일하며 속성이 같은('대체 가능성') ERC-20 같은 토큰과 다릅니다. 종이 지폐는 외양과 가치가 모두 동일하기 때문에 지갑에서 지폐를 꺼낼 때 어떤 달러를 꺼낼지 고민하지 않습니다. 그러나 한 NFT는 다른 NFT와 구별되는 개별 특성을 가지고 있기 때문에('대체 불가능성') 어떤 NFT를 소유하고 있는지가 *중요*합니다. + +NFT는 저마다 고유성을 가지기 때문에 미술품, 수집품, 심지어 부동산 같은 사물의 토큰화가 가능합니다. 고유한 특정 NFT가 고유한 특정 실세계 또는 디지털 아이템을 나타내는 것이죠. 자산의 소유권은 이더리움 블록체인으로 보호되며, 소유권에 대한 기록을 수정하거나 새로운 NFT를 기존의 NFT에 복사하고 붙여 넣을 수 없습니다. + + + +## 자산 인터넷 {#internet-of-assets} + +NFT와 이더리움은 오늘날 인터넷이 직면한 일부 문제를 해결합니다. 모든 것이 디지털화됨에 따라 희소성, 고유성, 소유권 증명과 같은 물리적 물품의 특성을 복제할 필요가 있습니다. 하나의 중앙 조직이 통제하지 않는 방식으로 말이죠. 예를 들어 NFT를 사용하면 한 기업의 특정 음악 앱에 한정되지 않은 mp3 음악 파일을 소유하거나 사용자가 판매 또는 스왑할 수 있지만 플랫폼 제공자가 임의로 빼앗을 수 없는 SNS 핸들을 소유할 수 있습니다. + +NFT의 인터넷은 오늘날 대부분의 사람들이 사용하는 인터넷과 비교해 보면 다음과 같습니다. + +### 비교 {#nft-comparison} + +| NFT 인터넷 | 오늘날의 인터넷 | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | +| 사용자가 자기 자산을 소유합니다! 사용자만 자산을 팔거나 스왑할 수 있습니다. | 일부 조직으로부터 자산을 대여합니다. | +| NFT는 디지털상으로 고유하며, 두 개의 동일한 NFT는 존재할 수 없습니다. | 원본과 복사본을 구별할 수 없는 경우가 많습니다. | +| NFT 소유권은 블록체인에 저장되며 누구나 이를 검증할 수 있습니다. | 디지털 물품의 소유권 기록은 기관이 관리하는 서버에 저장되므로, 기관의 말을 믿어야 합니다. | +| NFT는 이더리움에 기반한 스마트 계약입니다. 즉, 이더리움의 다른 스마트 계약과 앱에서 간편하게 사용할 수 있습니다! | 디지털 물품을 보유한 회사는 일반적으로 "벽으로 둘러싸인 정원"과 같은 자체 인프라가 필요합니다. | +| 콘텐츠 창작자는 어디에서든 작품을 판매하고 글로벌 시장에 접근할 수 있습니다. | 창작자는 자신이 사용하는 플랫폼의 인프라와 배포에 의존합니다. 여기에는 종종 이용 약관 및 지리적 제약이 따릅니다. | +| NFT 창작자는 자신의 작품에 대한 소유권을 보유할 수 있으며 로열티를 NFT 계약에 직접 프로그래밍할 수 있습니다. | 음악 스트리밍 서비스와 같은 플랫폼이 매출 수익의 대부분을 유지합니다. | + +## NFT는 어떻게 작동하나요? {#how-nfts-work} + +이더리움에서 발행된 다른 토큰과 마찬가지로 NFT도 스마트 계약에 따라 발행됩니다. 스마트 계약은 계약 기능을 정의하는 NFT 표준(예: ERC-721, ERC-1155) 중 하나를 준수합니다. 계약은 NFT를 생성('민팅')하고 특정 소유자에게 이를 할당합니다. 소유권은 특정 NFT를 특정 주소에 매핑하여 계약에 정의됩니다. NFT에는 특정 토큰을 고유하게 만드는 ID와 일반적으로 이와 관련된 메타데이터가 부여됩니다. + +사용자가 NFT를 생성(민팅)하면 특정 NFT를 해당 주소에 할당하는 스마트 계약 내 기능이 실제로 실행됩니다. 이 정보는 블록체인의 일부인 계약의 스토리지에 저장됩니다. 계약 생성자는 총 공급량을 제한하거나 토큰을 이체할 때마다 창작자에게 지급되는 로열티를 정의하는 등 계약에 추가 로직을 작성할 수 있습니다. + +## NFT는 어디에 사용되나요? {#nft-use-cases} + +NFT는 다음과 같이 다양한 항목에 사용됩니다. + +- 행사 참여 증명 +- 강의 완강 인증 +- 소유할 수 있는 게임 아이템 +- 디지털 예술품 +- 실제 세계의 자산을 토큰화 +- 온라인 신원 확인 +- 콘텐츠 액세스 +- 티켓팅 +- 탈중앙 인터넷 도메인 이름 +- 디파이 담보 + +NFT를 사용하여 통제권과 수익을 중개인에게 부여하지 않고 작품을 공유하고자 하는 예술가가 있다고 가정해 보겠습니다. 새로운 계약을 생성하고 NFT의 수, 속성, 특정 작품에 대한 링크를 지정할 수 있습니다. 예술가는 지급받을 로열티를 스마트 계약에 프로그래밍할 수 있습니다(예: NFT 이체가 이루어질 때마다 판매가의 5%를 계약 소유자에게 지급). 또한 계약을 배포한 지갑을 소유하고 있기 때문에 언제든지 본인이 해당 NFT를 만들었음을 증명할 수 있습니다. 구매자는 지갑 주소가 예술가의 스마트 계약에 있는 토큰과 연계되어 있기 때문에 컬렉션 내 진품 NFT의 소유를 간편하게 증명할 수 있습니다. 구매자는 이더리움 생태계 전반에서 이를 사용하고 진품을 확신할 수 있습니다. + +또는 스포츠 대회의 티켓을 예로 들어 봅시다. 이벤트 주최자가 판매할 티켓의 수를 선택할 수 있는 것처럼 NFT의 제작자는 복제품의 수를 결정할 수 있습니다. 가끔 이는 5000장의 일반 입장권처럼 동일한 복제품이기도 합니다. 간혹 지정 좌석 티켓처럼 매우 비슷하지만 각각 조금씩 다르게 발행되기도 합니다. 이는 매표원에게 따로 돈을 내지 않고 P2P로 사고 팔 수 있으며 구매자는 항상 계약 주소를 확인하여 티켓의 진위성을 확신합니다. + +ethereum.org에서 NFT는 공식 Github 리포지토리에 기여했거나 모임에 참석했음을 증명하는 데 사용되며 이더리움에는 자체 NFT 도메인 이름이 있습니다. ethereum.org에 기여하셨다면 POAP NFT를 획득할 수 있습니다. 일부 암호화폐 밋업에서는 POAP를 입장권으로 사용하였습니다. [기여에 대해 자세히 알아보기](/contributing/#poap). + +![ethereum.org POAP](./poap.png) + +이 웹사이트에는 NFT로 작동하는 다른 도메인 네임인 **ethereum.eth**도 있습니다. 저희 `.org` 주소는 도메인 이름 시스템(DNS) 제공자가 중앙에서 관리하지만, ethereum`.eth`는 이더리움 이름 서비스(ENS)를 통해 이더리움에 등록됩니다. 이는 저희가 소유하고 관리합니다. [ENS 기록 확인하기](https://app.ens.domains/name/ethereum.eth) + +[ENS에 대해 자세히 알아보기](https://app.ens.domains) + + + +### NFT 보안 {#nft-security} + +이더리움의 보안은 지분 증명 시스템에 기반합니다. 이 시스템은 악의적인 행동의 경제적 이익을 제거하여 이더리움이 변조로부터 안전하도록 설계되었습니다. 덕분에 NFT가 존재할 수 있습니다. 사용자의 NFT 트랜잭션을 포함하는 블록이 최종 승인되면 공격자는 수백만 ETH를 사용해야 바꿀 수 있습니다. 이더리움 소프트웨어를 실행하는 누구든지 NFT에 대한 부정 변조를 즉시 감지할 수 있으며, 악의적인 사용자는 경제적인 불이익을 받고 방출될 수 있습니다. + +NFT와 관련된 보안 문제는 대부분 피싱 사기, 스마트 계약 취약점 또는 사용자의 실수(예: 실수로 개인 키 유출)와 관련 있기 때문에 NFT 소유자는 지갑의 보안을 강력하게 유지하는 것이 중요합니다. + + + 보안에 대한 추가 정보 + + +## 부록 {#further-reading} + +- [NFT 입문자 가이드](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _린다 시에, 2020년 1월_ +- [EtherscanNFT 트래커](https://etherscan.io/nft-top-contracts) +- [ERC-721 토큰 표준](/developers/docs/standards/tokens/erc-721/) +- [ERC-1155 토큰 표준](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/public/content/translations/ko/refi/index.md b/public/content/translations/ko/refi/index.md new file mode 100644 index 00000000000..f95b8fc4857 --- /dev/null +++ b/public/content/translations/ko/refi/index.md @@ -0,0 +1,79 @@ +--- +title: 재생금융(ReFi) +description: 리파이의 개요와 현재 사용 사례. +lang: ko +template: use-cases +emoji: ":recycle:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: 재생 원칙 위에 기반한 대안 경제 시스템 +summaryPoint2: 이더리움을 활용하여 기후 변화와 같은 범세계적인 공동 위기를 해결하기 위한 시도 +summaryPoint3: 검증된 탄소 배출권과 같은 생태계 효익 자산을 대폭 확장하는 도구 +--- + +## 리파이란 무엇인가요? {#what-is-refi} + +**리파이(재생금융, ReFi)**는 자원을 추출하거나 착취하는 대신 재생시키는 경제를 창출하는 것을 목표로 하는 블록체인 기반 도구 및 아이디어의 집합체입니다. 추출 시스템은 종국에 가용 자원을 고갈시키고 붕괴합니다. 재생 메커니즘이 없으면 시스템은 회복력이 떨어집니다. 리파이는 금전적 가치를 창출하기 위해 지구와 지역사회로부터 지속 불가능한 자원 추출을 계속해서는 안 된다는 가정하에 운영됩니다. + +대신 리파이는 재생 주기를 형성하여 환경, 지역사회 또는 사회적 문제를 해결하고자 합니다. 이러한 시스템은 참여자들에게 가치를 가져다주는 동시에 생태계와 지역사회를 이롭게 합니다. + +리파이의 기초 중 하나는 [Capital Institute](https://capitalinstitute.org)의 존 플러튼이 개척한 재생경제학의 개념입니다. 플러튼은 시스템 건전성의 기초이자 상호연결된 8가지 원칙을 제시했습니다. + +![여덟 가지 상호연결 원칙](./refi-regenerative-economy-diagram.png) + +리파이는 [스마트 계약](/developers/docs/smart-contracts/)과 [탈중앙 금융(디파이, DeFi)](/defi/) 애플리케이션으로 이러한 원칙을 실현하여 저하된 생태계의 복원과 같은 재생 행동에 인센티브를 지급하고 기후 변화 및 생물다양성 유실과 같은 글로벌 문제에 대해 대규모 협업을 촉진합니다. + +또한 리파이는 과학적 지식의 자금 조달, 창출, 심사, 공적 부여, 저장, 확산을 위해 이더리움을 플랫폼으로 사용하는 [탈중앙 과학(디사이, DeSci)](/desci/) 운동과 궤를 같이합니다. 디사이 도구는 나무 심기, 바다에 버려진 플라스틱 제거하기 또는 훼손된 생태계 복원하기 같은 재생 활동을 구현하고 모니터링하기 위한 검증 가능한 표준과 관행을 개발하는 데 유용할 수 있습니다. + +## 탄소 크레딧의 토큰화 {#tokenization-of-carbon-credits} + +**[VCM(자발적 탄소 시장)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)**은 진행 중인 배출을 감축하거나 이미 배출된 온실가스를 대기에서 제거하는 등 탄소 배출과 관련해 검증된 긍정적 영향을 미치는 프로젝트에 펀딩하는 메커니즘입니다. 이러한 프로젝트는 검증 후 "탄소 크레딧"이라고 불리는 자산을 받을 수 있습니다. 크레딧은 기후 활동을 지원하려는 개인과 조직에 판매할 수 있습니다. + +VCM 외에도 국가나 지역 같은 특정 관할권 내의 법률이나 규제를 통해 탄소 가격을 책정하여 배포할 배출권의 공급을 통제하기 위한 정부 주도 의무 탄소 시장('규제 준수 시장')도 여러 개가 있습니다. 규제 준수 시장은 관할권 내 오염 유발자가 배출을 감축하도록 인센티브를 제공하지만, 이미 배출된 온실가스를 제거하지는 못합니다. + +최근 수십 년간 많이 발전했지만 VCM은 여전히 다음과 같은 문제를 겪고 있습니다. + +1. 유동성의 지나친 조각화 +2. 불투명한 거래 메커니즘 +3. 높은 수수료 +4. 매우 느린 거래 속도 +5. 부족한 확장성 + +VCM을 새로운 블록체인 기반 **DCM(디지털 탄소시장)**으로 전환하는 것은 탄소 크레딧의 검증, 거래, 사용을 위한 기존 기술을 업그레이드할 수 있는 기회일 수 있습니다. 블록체인을 이용하면 데이터를 공개적으로 검증할 수 있으며 다양한 사용자에 대한 액세스와 풍부한 유동성을 활용할 수 있습니다. + +리파이 프로젝트는 블록체인 기술을 활용하여 전통적인 시장의 수많은 문제를 완화합니다. + +- 누구나 자유롭게 거래할 수 있는 **소량의 유동성 풀로 유동성이 집중됩니다**. 개인 사용자는 물론 대형 조직도 판매자/구매자를 직접 찾는 수고나 참가비, 사전 등록 없이 이러한 풀을 이용할 수 있습니다. +- **모든 거래는 공개 블록체인에 기록됩니다**. 거래 활동에 따른 탄소 크레딧의 이전은 DCM에 등록되는 즉시 영구히 추적 가능합니다. +- **거래 속도는 거의 실시간으로 즉각적입니다**. 레거시 마켓을 통해 대량의 탄소 크레딧을 확보하려면 며칠에서 몇 주까지 소요될 수 있으나 DCM에서는 몇 초만에 가능합니다. +- **중개인 없이 거래 활동이 이루어져** 높은 수수료 부담이 없습니다. 한 분석 회사의 데이터에 따르면 디지털 탄소 크레딧은 [기존 크레딧과 비교했을 때 62% 더 비용 효율적](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne)입니다. +- **DCM은 확장 가능**하며 개인과 다국적 기업의 수요를 모두 충족할 수 있습니다. + +### DCM의 핵심 구성요소 {#key-components-dcm} + +현재 DCM은 네 가지 주요 요소로 구성됩니다. + +1. [베라(Verra)](https://verra.org/project/vcs-program/registry-system/) 및 [골드 스탠다드(Gold Standard)](https://www.goldstandard.org/) 같은 인증기관은 탄소 크레딧을 생성하는 프로젝트를 신뢰할 수 있는지 확인합니다. 또한 인증기관은 디지털 탄소 크레딧을 생성, 양도, 사용(소각)할 수 있는 데이터베이스도 운영합니다. + +이 분야에서는 기존 사업자들과 경쟁하기 위해 블록체인을 기반으로 설립된 프로젝트들이 혁신을 일으키는 새로운 물결이 일어나고 있습니다. + +2. 탄소 브릿지, 일명 토크나이저는 전통적인 인증기관의 탄소 크레딧을 나타내거나 DCM으로 전송하는 기술을 제공합니다. 대표적인 예로 [Toucan Protocol](https://toucan.earth/), [C3](https://c3.app/) 및 [Moss.Earth](https://moss.earth/)가 있습니다. +3. 통합 서비스는 최종 사용자에게 탄소 회피 및/또는 제거 크레딧을 제공하여 이들이 크레딧의 환경적 효용을 주장하고 기후 대응에 대한 자신의 지원을 전 세계에 알릴 수 있습니다. + +[Klima Infinity](https://www.klimadao.finance/infinity) 및 [Senken](https://senken.io/) 같은 일부 서비스는 제3자가 개발하고 베라(Verra) 같은 유명 탄소감축표준 기관이 발행한 다양한 프로젝트를 제공하며, [Nori](https://nori.com/) 등의 기타 서비스는 자체 탄소 크레딧 표준에 따라 개발된 특정 프로젝트만 제공합니다. 후자는 탄소 크레딧을 자체 발행하고 이를 위해 자체 전용 마켓플레이스를 운영합니다. + +4. 탄소 시장 전체 공급망의 영향과 효율성을 확장하는 기반 레일과 인프라를 들 수 있습니다. [KlimaDAO](http://klimadao.finance/)는 공공재로서 유동성을 공급하고(이에 따라 누구나 투명한 가격에 탄소 크레딧을 매매할 수 있음), 인센티브로 탄소 시장의 거래와 소각을 늘리며 다양한 토큰화 탄소 크레딧을 획득하고 소각할 수 있을 뿐만 아니라 관련 데이터에 액세스할 수 있는 사용자 친화적인 상호 운용 툴을 제공합니다. + +## 탄소 시장 너머의 리파이 {#refi-beyond} + +현재 일반적으로 탄소 시장이 주목받으며 특히 이 분야에서 VCM이 DCM으로 전환하고 있지만 "리파이"는 엄밀히 말해 탄소에만 국한되지 않습니다. 탄소 크레딧을 넘어선 다른 환경 자산이 개발 및 토큰화될 수 있습니다. 즉, 다른 부정적인 외부효과도 미래 경제 시스템의 기본 레이어 내에 가격 영향력을 가질 수 있습니다. 또한 이러한 경제 모델의 재생적인 측면은 [깃코인](https://gitcoin.co/)과 같은 제곱 펀딩(quadratic funding) 플랫폼을 통한 공공재 펀딩 등 타 영역에 적용될 수 있습니다. 문턱 없는 참여와 공평한 자원 분배에 기반한 조직은 누구든지 교육, 환경 및 지역사회 기반 프로젝트뿐만 아니라 오픈소스 소프트웨어 프로젝트에 투자할 수 있게 지원합니다. + +추출적 관행에서 재생적 흐름으로 자본의 방향을 바꿈으로써 사회, 환경 또는 공공 편익을 제공하며 전통적인 금융에서는 펀딩에 실패했을 수 있는 프로젝트와 기업이 훨씬 빠르고 수월하게 활동을 시작하고 사회를 위해 긍정적인 외부효과를 창출할 수 있습니다. 이러한 펀딩 모델로 전환하면 모든 계층의 사람들이 단순히 수동적인 관찰자에 머무는 대신 활발한 참여자가 되는 훨씬 포용적인 경제 시스템이 구현될 수 있습니다. 리파이는 새로운 경제 패러다임의 기본 계층으로서 인간과 지구상의 모든 생명체가 직면한 실존적 도전에 대한 대응을 조정하는 메커니즘이라는 이더리움의 비전을 실현하여 향후 수 세기 동안 더 포괄적이고 지속 가능한 미래를 가능하게 합니다. + +## 리파이 더 읽을거리 + +- [탄소 화폐의 개요와 경제적 지위](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) +- [The Ministry for the Future: 기후 변화에 대응하는 탄소 기반 화폐의 역할을 묘사한 소설](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) +- [자발적 탄소 시장의 확장을 위한 테스크포스 상세 보고서](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) +- [리파이에 대한 Kevin Owocki 및 Evan Miyazono의 코인마켓캡 용어집 항목](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/ko/security/index.md b/public/content/translations/ko/security/index.md similarity index 100% rename from src/content/translations/ko/security/index.md rename to public/content/translations/ko/security/index.md diff --git a/public/content/translations/ko/smart-contracts/index.md b/public/content/translations/ko/smart-contracts/index.md new file mode 100644 index 00000000000..c76db2ccab2 --- /dev/null +++ b/public/content/translations/ko/smart-contracts/index.md @@ -0,0 +1,84 @@ +--- +title: 스마트 계약 +description: 스마트 계약에 대한 비기술적 소개 +lang: ko +--- + +# 스마트 계약에 대한 소개 {#introduction-to-smart-contracts} + +스마트 계약은 이더리움 애플리케이션 레이어의 기본 구성요소입니다. 블록체인에 저장된 컴퓨터 프로그램인 스마트 계약은 "만약에 이러하면 그러하다"의 논리를 따르며 코드가 정의한 규칙을 준수하는 실행이 보장됩니다. 스마트 계약의 코드는 일단 생성되면 변경될 수 없습니다. + +닉 재보(Nick Szabo)는 "스마트 계약"이라는 용어를 만들었습니다. 1994년에 그는 [해당 개념에 대한 개요](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html)를 작성했으며 1996년에는 [스마트 계약이 무엇을 할 수 있는지 탐구](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html)했습니다. + +재보는 자동 암호화 보안 프로세스로 신뢰할 수 있는 중개인 없이 트랜잭션과 비즈니스 기능을 구현하는 디지털 마켓플레이스를 구상했습니다. 이더리움의 스마트 계약은 이러한 비전을 실행에 옮겼습니다. + +## 전통적인 계약의 신뢰 {#trust-and-contracts} + +전통적인 계약의 가장 큰 문제 중 하나는 신뢰할 수 있는 개인이 계약의 결과를 따라야 한다는 것입니다. + +다음과 같은 예제를 들어보겠습니다. + +앨리스와 밥이 자전거 경주를 하고 있습니다. 앨리스가 밥에게 그녀가 경주에서 이기는 데 10달러를 걸었다고 가정해 봅시다. 밥은 자신이 이길 것이라고 확신하고 내기에 동의합니다. 결국 앨리스는 밥보다 훨씬 앞서 경주를 마치고 확실한 승자가 됩니다. 그러나 밥은 앨리스가 속임수를 썼다고 주장하며 내기에 대한 지급을 거부합니다. + +이 간단한 예제는 스마트하지 않은 계약의 문제를 보여줍니다. 계약 조건이 충족되더라도(예: 귀하가 경주의 승자가 됨) 여전히 다른 상대방이 해당 계약을 이행할 것으로 신뢰해야 합니다(예: 내기에 대한 지급). + +## 디지털 자판기 {#vending-machine} + +스마트 계약에 대한 간단한 비유는 스마트 계약과 다소 유사하게 작동하는 자동 판매기가 될 수 있겠습니다. 즉, 특정 입력은 미리 결정된 출력을 보장합니다. + +- 직접 제품을 선택합니다. +- 자판기가 가격을 표시합니다 +- 구매자가 가격을 지불합니다 +- 구매자가 올바른 금액을 넣었는지 자판기가 확인합니다 +- 자판기가 물건을 지급합니다 + +자판기는 모든 요구 사항이 충족된 후에만 원하는 제품을 제공합니다. 상품을 선택하지 않거나 충분한 금액을 투입하지 않으면 자판기는 상품을 제공하지 않습니다. + +## 자동 실행 {#automation} + +스마트 계약의 대표적인 장점은 특정 조건이 달성되었을 때 명백한 코드를 결정론적으로 실행한다는 것입니다. 사람이 결과를 해석 또는 협상할 때까지 기다릴 필요가 없습니다. 덕분에 신뢰할 수 있는 중개인이 필요하지 않습니다. + +예를 들어, 자녀를 위해 조건부 날인 증서로 자금을 보관하는 스마트 계약서를 작성하여 특정 날짜 이후에 자금을 인출하게 할 수 있습니다. 지정된 날짜 이전에 출금하려는 경우, 스마트 계약이 실행되지 않습니다. 또는 딜러에게 차값을 지불하면 자동차 소유권의 디지털 버전이 자동으로 구매자에게 지급되는 계약서를 작성할 수도 있습니다. + +## 예측 가능한 결과 {#predictability} + +전통적인 계약은 해석과 이행에 있어 인간에 의존하기 때문에 모호합니다. 예를 들어 두 명의 판사가 계약서를 서로 다르게 해석하면 결정에 일관성이 없고 불평등한 결과를 초래할 수 있습니다. 스마트 계약은 이러한 가능성을 제거합니다. 대신 스마트 계약은 계약 코드 내에 작성된 조건에 따라 정확하게 실행됩니다. 이 정확도는 동일한 상황에서 스마트 계약이 동일한 결과를 생성한다는 것을 의미합니다. + +## 공공 기록 {#public-record} + +스마트 계약은 감사 및 추적에 용이합니다. 이더리움 스마트 계약은 공공 블록체인에 있으므로 누구든지 자산 전송 및 기타 관련 정보를 즉시 추적할 수 있습니다. 예를 들어, 누가 내 주소로 돈을 보냈는지 확인할 수 있습니다. + +## 개인 정보 보호 {#privacy-protection} + +또한 스마트 계약은 개인 정보를 보호합니다. 이더리움은 가명의 네트워크(귀하의 거래는 귀하의 신분이 아닌 고유한 암호화 주소에 공개적으로 연결됨)이기 때문에 감시자로부터 개인 정보를 보호할 수 있습니다. + +## 확인할 수 있는 용어 {#visible-terms} + +마지막으로, 전통적인 계약과 마찬가지로 스마트 계약에 서명하기 전에(또는 상호 작용하기 전에) 계약 내용을 확인할 수 있습니다. 스마트 계약은 투명성이 뛰어나 누구나 계약서를 검토할 수 있습니다. + +## 스마트 계약 사용 사례 {#use-cases} + +스마트 계약은 본질적으로 컴퓨터 프로그램이 할 수 있는 모든 작업을 수행할 수 있습니다. + +계산을 수행하고, 통화를 만들고, 데이터를 저장하고, NFT를 발행하며, 통신을 보내고, 그래픽을 생성할 수도 있습니다. 다음은 몇 가지 일반적인 실제 사례입니다. + +- [스테이블코인](/stablecoins/) +- [고유한 디지털 자산 생성 및 배포](/nft/) +- [자동 개방형 환전소](/get-eth/#dex) +- [탈중앙화 게임](/dapps/?category=gaming) +- [자동으로 지급되는 보험](https://etherisc.com/) +- [사용자가 상호 운용 가능한 맞춤형 통화를 만들 수 있게 하는 표준](/developers/docs/standards/tokens/) + +## 시각적으로 알아보고 싶습니까? {#visual-learner} + +스마트 계약에 대해 설명하는 Finematics 시청하기: + + + +## 부록 {#further-reading} + +- [스마트 계약이 세상을 바꾸는 방법](https://www.youtube.com/watch?v=pA6CGuXEKtQ) +- [스마트 계약: 변호사를 대체할 블록체인 기술](https://blockgeeks.com/guides/smart-contracts/) +- [개발자를 위한 스마트 계약](/developers/docs/smart-contracts/) +- [스마트 계약 작성 방법 배우기](/developers/learning-tools/) +- [이더리움 마스터하기 - 스마트 계약이란 무엇입니까?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/ko/social-networks/index.md b/public/content/translations/ko/social-networks/index.md new file mode 100644 index 00000000000..1c37a4d5077 --- /dev/null +++ b/public/content/translations/ko/social-networks/index.md @@ -0,0 +1,121 @@ +--- +title: 분산형 소셜 네트워크 +description: 이더리움에서의 분산형 소셜 네트워크에 대한 개요 +lang: ko +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: /ethereum-learn.png +summaryPoint1: 소셜 상호작용, 콘텐츠 창작 및 배포를 위한 블록체인 기반 플랫폼입니다. +summaryPoint2: 분산형 소셜 미디어 네트워크는 사용자의 개인 정보를 보호하고 데이터 보안을 강화합니다. +summaryPoint3: 토큰과 NFT는 콘텐츠를 통한 수익 창출의 새로운 방법을 만듭니다. +--- + +소셜 네트워크는 우리가 매일 소통하고 상호 작용하는 데 어마어마한 역할을 합니다. 하지만 중앙화된 플랫폼 제어 방식은 데이터 유출, 서버 장애, 플랫폼 불매 운동, 검열 및 개인 정보 보호 정책 위반 등의 문제를 지속적으로 야기해 왔습니다. 이러한 문제를 없애기 위해 개발자들은 이더리움에서 소셜 네트워크를 구축합니다. 분산형 소셜 네트워크는 기존 소셜 네트워크 플랫폼의 많은 문제점을 해결하고 사용자의 전체적인 환경을 개선할 수 있습니다. + +## 분산형 소셜 네트워크란 무엇인가요? {#what-are-decentralized-social-networks} + +분산형 소셜 네트워크는 사용자들이 정보를 교환할 수 있을 뿐만 아니라 콘텐츠를 게재하고 다른 사람들에게 배포할 수 있는 블록체인 기반의 플랫폼입니다. 이러한 애플리케이션은 블록체인을 기반으로 작동하기 때문에 탈중앙화 방식으로 운영되기에 적합하고 검열되지 않으며 과도한 통제에서 벗어날 수 있습니다. + +대부분의 분산형 소셜 네트워크는 Facebook, LinkedIn, Twitter 및 Medium 등 이미 서비스를 제공하고 있는 소셜 미디어 서비스의 대체적인 서비스로 활용됩니다. 하지만 블록체인 기반 소셜 네트워크에는 기존 소셜 플랫폼보다 뛰어난 많은 기능이 있습니다. + +### 분산형 소셜 네트워크는 어떻게 작동하나요? {#decentralized-social-networks-overview} + +분산형 소셜 네트워크는 블록체인 상에 배포된 [스마트 계약](/developers/docs/smart-contracts/) 기반의 애플리케이션인 [탈중앙화 애플리케이션(디앱)](/dapps/)의 일종입니다. 계약 코드는 해당 앱에 대한 백엔드로 제공되며 비즈니스 논리를 정의합니다. + +기존의 소셜 미디어 플랫폼은 사용자의 정보, 프로그램 코드 및 다른 형식의 데이터를 보관하기 위해 데이터베이스를 이용합니다. 하지만 여기에는 한 곳에서 문제가 발생하면 서비스가 중단된다는 심각한 문제가 있습니다. 예를 들어, 작년에 Facebook 서버가 [몇 시간 동안](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) 가동 중지되고 그동안 사용자들이 플랫폼을 이용할 수 없었던 사태가 발생했습니다. + +분산형 소셜 네트워크는 전 세계에 수천 개의 노드가 있는 P2P 네트워크 상에 존재합니다. 일부 노드에서 오류가 발생해도 네트워크는 중단되지 않고 작동하며, 애플리케이션이 고장과 정전에도 견뎌낼 수 있게 합니다. + +[IPFS(InterPlanetary File System)](https://ipfs.io/)와 같은 탈중앙화 스토리지 시스템을 사용하여, 이더리움상에 구축된 소셜 네트워크는 사용자 정보를 불법적이고 악의적인 이용으로부터 보호할 수 있습니다. 아무도 귀하의 개인 정보를 광고사에 판매하지 않으며, 해커 또한 비밀 정보를 훔칠 수 없습니다. + +다수의 블록체인 기반 소셜 플랫폼은 광고 매출 없이 이익 창출이 가능한 고유 토큰을 보유하고 있습니다. 사용자는 이러한 토큰을 구매하여 특정 기능에 액세스하거나, 앱 내 구매를 완료하고, 마음에 드는 콘텐츠 창작자에게 팁을 줄 수 있습니다. + +## 분산형 소셜 네트워크의 장점 {#benefits} + +1. 분산형 소셜 네트워크는 검열이 불가능하며 모두가 제약 없이 사용할 수 있습니다. 따라서 사용자는 서비스에서 차단되거나, 사용 금지 조치를 받거나, 임의로 제한받지 않습니다. + +2. 분산형 소셜 네트워크는 오픈 소스의 이상에 따라 구축되며, 애플리케이션의 소스 코드를 공개적으로 확인할 수 있게 합니다. 전통적인 소셜 미디어에 존재하는 일반적인 불투명한 알고리즘의 구현을 제거함으로써, 블록체인 기반의 소셜 네트워크는 사용자와 플랫폼 제작자의 기대에 더욱 부응할 수 있습니다. + +3. 분산형 소셜 네트워크에서는 "중개자"가 필요 없습니다. 콘텐츠 창작자는 콘텐츠에 대한 직접적인 소유권을 가지며, 팔로워, 팬, 구매자 및 다른 대상자들과 스마트 계약만을 통해 직접 관계를 맺게 됩니다. + +4. 노드의 글로벌 P2P 네트워크에서 유지되는 이더리움 네트워크에서 실행되는 디앱으로서의 분산형 소셜 네트워크는 서버 다운타임 및 중단의 영향을 적게 받습니다. + +5. 탈중앙화 소셜 플랫폼은 대체 불가능 토큰 (NFT), 앱 내 암호화폐 결제 등을 통해 컨텐츠 창작자에게 보다 나은 수익 창출 체계를 제공합니다. + +6. 분산형 소셜 네트워크는 사용자에게 높은 수준의 개인 정보 보호와 익명성을 제공합니다. 예를 들어, 한 개인은 이름, 이메일 주소 등과 같은 개인 식별 정보(PII)를 공유하지 않고 ENS 프로필이나 지갑을 사용해 이더리움 기반의 소셜 네트워크에 로그인할 수 있습니다. + +7. 분산형 소셜 네트워크는 중앙화 데이터베이스 대신 사용자의 데이터를 보다 안전하게 보호할 수 있는 탈중앙화 저장 공간을 이용합니다 + +## 이더리움 기반의 분산형 소셜 네트워크 {#ethereum-social-networks} + +이더리움 네트워크는 토큰(ERC-20/ERC-721)의 인기와 거대한 사용자 기반의 특성으로 인해 분산형 소셜 미디어를 만드는 개발자들이 선호하는 도구가 되어가고 있습니다. 이더리움을 기반으로 구축된 소셜 네트워크의 몇 가지 사례는 다음과 같습니다. + +### Peepeth {#peepeth} + +[Peepeth](https://peepeth.com/)는 Twitter와 비슷한 단편 블로그 플랫폼입니다. Peepeth는 이더리움 블록체인에서 실행되며 사용자 데이터를 저장하기 위해 IPFS를 사용합니다. + +사용자는 "Peeps"라는 짧은 메시지를 보낼 수 있으며, 이는 삭제하거나 수정할 수 없습니다. 앱에서 나가지 않고 플랫폼 상에서 이더(ETH)로 팁을 받거나 줄 수 있습니다. + +### Mirror {#mirror} + +[Mirror](https://mirror.xyz/)는 탈중앙화되고 사용자가 주인인 플랫폼이 되는 것을 목표로 하는 웹3 기반 글쓰기 플랫폼입니다. 사용자는 각자의 지갑에 연결하기만 하면 무료로 Mirror에서 메시지를 읽거나 작성할 수 있습니다. 사용자는 가장 좋아하는 작가를 구독하고 작품을 수집할 수도 있습니다. + +Mirror에 게시된 글은 탈중앙화 저장 공간 플랫폼인 Arweave에 영구적으로 저장되고, 글쓰기 NFT와 같은 수집물 [대체 불가 토큰(NFT)](/nft/)으로 발행될 수 있습니다. 글쓰기 NFT는 작가가 창작하는 작업에 대해 완전히 무료이며 수집은 이더리움 L2 상에서 일어나기 때문에 거래가 저렴하고, 빠르며, 친환경적으로 가능합니다. + +### MINDS {#minds} + +[MINDS](https://www.minds.com/)는 가장 많이 사용하는 분산형 소셜 네트워크 중 하나입니다. Facebook과 비슷한 방식으로 작동하며 이미 몇백만 명의 사용자를 보유하고 있습니다. + +사용자는 플랫폼 고유의 ERC-20 토큰 $MIND를 사용하여 아이템을 결제합니다. 사용자는 인기 콘텐츠를 게시하거나, 생태계에 기여, 다른 사용자에게 플랫폼을 추천하여 $MIND를 벌 수도 있습니다. + +## 이더리움을 사용하는 웹2 기반 소셜 네트워크 {#web2-social-networks-and-ethereum} + +블록체인 기술을 소셜 미디어에 통합하려는 시도는 [웹3](/web3/) 기반의 소셜 플랫폼이 아닌 곳에서도 이루어지고 있습니다. 다양한 중앙화 플랫폼 또한 이더리움을 해당 인프라에 통합하려는 계획을 세우고 있습니다. + +### 레딧 {#reddit} + +Reddit은 [ERC-20 토큰](/developers/docs/standards/tokens/erc-20/) 기반의 [커뮤니티 포인트](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users)를 보유하고 있으며, 사용자는 양질의 콘텐츠를 게시하거나 온라인 커뮤니티(서브레딧)에 기여함으로써 토큰을 받을 수 있습니다. 해당 토큰은 서브레딧 내에서 [특별한 혜택이나 특전](https://www.reddit.com/community-points/)을 받는 데 사용될 수 있습니다. 본 프로젝트를 위해 Reddit은 이더리움의 거래를 확장하기 위해 디자인된 [레이어 2](/layer-2/) 롤업인 Arbitrum과 협업하고 있습니다. + +해당 프로그램은 이미 ["Moons"라는 커뮤니티 포인트](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki)의 가상화폐 서브레딧에서 실제로 진행되고 있습니다. 공식 발표에 따르면, Moons는 "게시자, 코멘트 생성자, 중재자 등 서브레딧에 기여하고 있는 사람들에게 보상"을 제공하고 있습니다. 이 토큰은 블록체인 상에 존재하기 때문에(사용자는 지갑에 토큰을 받음) Reddit과는 독립적이며 제거할 수 없습니다. + +레딧 커뮤니티 포인트는 Rinkeby 테스트넷에서의 베타 테스트를 마치고, 이제 [아비트럼 노바](/developers/docs/scaling/sidechains/)와 [낙관적 롤업](/developers/docs/scaling/optimistic-rollups/)의 특성을 결합한 [Arbitrum Nova](https://nova.arbitrum.io/) 블록체인 상에서 운영되고 있습니다. 토큰은 커뮤니티 포인트에서의 특전 이외에, 실제 화폐와의 교환에도 사용될 수 있습니다. 또한 커뮤니티 포인트의 보유량이 많을수록 커뮤니티 내에서 의사결정 과정에 영향력을 키울 수 있습니다. + +### 트위터 {#twitter} + +2021년 1월, Twitter Blue는 [NFT에 대한 지원](https://mashable.com/article/twitter-blue-nft-profile-picture)을 발표했으며, 사용자가 지갑을 연결하고 NFT를 프로필 사진으로 표시할 수 있게 했습니다. 또한 최근, [분산형 소셜 네트워크 구축 계획을 발표](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web)하였습니다. + +### 인스타그램 {#instagram} + +2022년 5월, [인스타그램은 이더리움과 폴리곤의 NFT를 지원한다고 발표](https://about.instagram.com/blog/announcements/instagram-digital-collectibles)했습니다. 사용자들은 각자의 이더리움 지갑을 연결하여 인스타그램에 NFT를 직접 게시할 수 있게 되었습니다. + +## 분산형 소셜 네트워크 사용하기 {#use-decentralized-social-networks} + +- **[Status.im](https://status.im/)**: *Status는 오픈소스의 P2P 프로토콜과 종단 간 암호화 기술을 사용하여 제3자로부터 메시지를 보호하는 안전한 메시징 앱입니다.* +- **[Mirror.xyz](https://mirror.xyz/)**: *Mirror는 이더리움 기반의 탈중앙화, 사용자 소유형 퍼블리싱 앱으로, 사용자는 아이디어를 크라우드펀딩하고, 콘텐츠로 수익을 올리며, 고급 커뮤니티를 만들 수 있습니다.* +- **[Lens Protocol](https://lens.xyz/)**: *Lens Protocol은 탈중앙화된 구성 가능한 소셜 그래프로, 창작자가 탈중앙화 인터넷에 있는 디지털 가든의 어디에서든지 자신의 콘텐츠에 대한 소유권을 가질 수 있게 도와줍니다.* +- **[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} + +- [분산형 소셜 미디어 설명](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ +- [DeSo 블록체인은 소셜 미디어의 탈중앙화를 원한다](https://www.youtube.com/watch?v=SG2HUiVp0rE) — *Bloomberg 테크놀로지* +- [분산형 소셜 미디어의 미래 w/ Balaji Srinivasan, Vitalik Buterin, Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _이더리움 글로벌_ + +### 커뮤니티 {#communities} + +- [Status의 디스코드 서버](https://discord.com/invite/3Exux7Y) +- [Mirror의 디스코드 서버](https://discord.com/invite/txuCHcE8wV) +- [r/CryptoCurrency 서브 레딧](https://www.reddit.com/r/CryptoCurrency/) diff --git a/public/content/translations/ko/staking/pools/index.md b/public/content/translations/ko/staking/pools/index.md new file mode 100644 index 00000000000..166a10bd970 --- /dev/null +++ b/public/content/translations/ko/staking/pools/index.md @@ -0,0 +1,85 @@ +--- +title: 풀 스테이킹 +description: 풀 ETH 스테이킹을 시작하는 방법에 대한 개요 +lang: ko +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-pool.png +alt: 수영장에서 수영하는 코뿔소 레슬리. +summaryPoints: + - 다른 사용자와 함께 ETH의 양과 관계없이 스테이킹하고 보상을 받으세요. + - 어려운 부분은 건너뛰고 검증자 작업은 제3자에게 맡기세요. + - 자신의 지갑에 유동성 토큰을 보관하세요. +--- + +## 스테이킹 풀이란 무엇인가요? {#what-are-staking-pools} + +스테이킹 풀은 적은 양의 ETH를 가진 많은 사람이 검증자 키의 세트를 활성화하기 위해 필요한 32 ETH를 얻을 수 있게 하는 협업 방식입니다. 풀링 기능은 프로토콜 내에서 기본적으로 지원되지 않으므로 솔루션은 이러한 요구 사항을 해결하기 위해 별도로 구축되었습니다. + +일부 풀은 자금을 계약에 예치할 수 있는 스마트 계약을 사용하여 운영되며, 이 계약은 귀하의 스테이킹을 신뢰 없이 관리 및 추적하고 이 가치를 나타내는 토큰을 발행합니다. 다른 풀에는 스마트 계약이 포함되지 않을 수 있으며 대신 오프체인에서 중개됩니다. + +## 풀로 스테이킹하는 이유는 무엇인가요? {#why-stake-with-a-pool} + +풀을 통한 스테이킹에는 [스테이킹 소개](/staking/)에서 설명한 이점 외에도 뚜렷한 장점이 많습니다. + + + + 돈이 많지 않다고요? 괜찮습니다. 대부분의 스테이킹 풀에서는 32 ETH가 필요한 솔로 스테이킹과 달리, 다른 스테이커와 협동하여 양에 상관없이 ETH를 가상으로 스테이킹할 수 있습니다. + + + 풀로 스테이킹하는 것은 토큰 교환만큼 쉽습니다. 하드웨어 설치와 노드 유지 작업에 대해 고려할 필요가 없습니다. 풀을 사용하여 노드 운영자가 검증자를 실행할 수 있도록 ETH를 예치할 수 있습니다. 그 후 노드 운영 수수료를 제외한 보상이 참여자에게 분배됩니다. + + + 대부분의 스테이킹 풀에서는 스테이킹한 ETH와 이에 대한 보상의 소유권을 주장할 수 있는 토큰을 제공합니다. 이를 통해 스테이킹한 ETH는 디파이 애플리케이션의 담보 등으로 사용할 수 있습니다. + + + + + +## 고려 사항 {#what-to-consider} + +풀 스테이킹 또는 대리 스테이킹은 이더리움 프로토콜이 기본적으로 지원하는 기능은 아니지만, 32 ETH보다 적은 금액을 스테이킹하는 사람들의 수요에 따라 점점 더 많은 솔루션이 구축되었습니다. + +사용되는 각 풀과 도구 또는 스마트 계약은 서로 다른 팀이 개발하였으며, 각각의 위험성과 장점이 따릅니다. + +아래의 속성 지표는 현재 목록에 있는 스테이킹 풀의 대표적인 강점 및 약점을 나타내기 위해 사용되었습니다. 참여할 풀을 선택할 때 이 섹션을 참고하여 이러한 속성이 정의되는 방법을 알아보세요. + + + +## 스테이킹 풀 살펴보기 {#explore-staking-pools} + +설정에 도움이 되는 다양한 옵션이 있습니다. 위의 지표를 사용하여 아래 도구에 대한 안내를 받으세요. + + +참고로, 클라이언트 다양성을 고려한 서비스의 선택은 네트워크의 보안을 강화하고 위험성을 최소화할 수 있으므로 매우 중요합니다. 대부분 클라이언트의 사용을 제한하는 것으로 밝혀진 서비스는 "다양한 클라이언트"로 표시됩니다. + + + + +저희가 놓친 스테이킹 풀을 제안하고 싶으신가요? 이더리움 [제품 나열 정책](/contributing/adding-staking-products/)을 확인하고 정책에 맞는 제품인 경우 검토를 위해 제출해 주세요. + +## 자주 묻는 질문 {#faq} + + +일반적으로 ERC-20 유동성 토큰은 스테이킹된 ETH와 보상의 가치를 나타내는 스테이커에게 발행됩니다. 각 풀마다 조금씩 다른 방식으로 스테이킹 보상을 사용자에게 분배하지만, 보통 앞서 말한 경우가 일반적입니다. + + + + +현재 이더리움 검증자로부터 자금을 인출할 수 없으며, 이로 인해 합의 계층에 고정된 ETH 보상에 대한 유동성 토큰을 실제로 상환할 수 있는 기능이 제한됩니다. + +그 대안으로, ERC-20 유동성 토큰을 사용하는 풀은 사용자가 오픈 마켓에서 이 토큰을 거래할 수 있게 허용하여 스테이킹 포지션을 판매함으로써 스테이킹 계약에서 ETH를 실제로 제거하지 않고도 실질적인 "출금"이 가능합니다. + + + +이러한 풀 스테이킹 옵션과 중앙화 거래소 간에는 다양한 유사점이 있으며, 적은 양의 ETH를 스테이킹하고 합쳐 검증자 역할을 활성화할 수 있도록 하는 것이 한 예시입니다. + +중앙화 거래소와는 달리, 다양한 스테이킹 풀 옵션에서 스마트 계약 및/또는 ERC-20 토큰의 일종으로 일반 토큰처럼 매매가 가능하며 지갑에 보관될 수 있는 유동성 토큰을 활용하고 있습니다. 이는 자신의 토큰에 대한 제어권을 제공하여 주도성과 보안성을 지닐 수 있게 하지만, 배경에서 귀하를 대신하여 증명하는 검증자 클라이언트에 대한 직접적인 제어권은 제공하지 않습니다. + +일부 풀링 옵션은 지원하는 노드에 관해 다른 풀보다 더욱 탈중앙화되어 있습니다. 네트워크의 양호한 상태와 탈중앙화를 장려하기 위해 스테이커는 항상 노드 운영자에게 권한이 집중되지 않는 탈중앙화 체계를 마련할 수 있는 풀링 서비스를 선택하는 것이 좋습니다. + + +## 더 읽을거리 {#further-reading} + +- [Rocket Pool을 통한 스테이킹 - 스테이킹 개요](https://docs.rocketpool.net/guides/staking/overview.html) - _RocketPool 문서_ +- [Lido를 통한 이더리움 스테이킹](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Lido 도움말 문서_ diff --git a/public/content/translations/ko/staking/saas/index.md b/public/content/translations/ko/staking/saas/index.md new file mode 100644 index 00000000000..e15eaaf210b --- /dev/null +++ b/public/content/translations/ko/staking/saas/index.md @@ -0,0 +1,88 @@ +--- +title: 서비스로서의 스테이킹 +description: 풀링된 ETH 스테이킹을 시작하는 방법에 대한 개요 +lang: ko +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-saas.png +alt: 구름 위에 떠 있는 코뿔소 레슬리 +summaryPoints: + - 제3자 노드 운영자가 검증자 클라이언트의 운영을 처리함 + - 32 ETH를 보유하고 있으며 노드를 실행하는 데 필요한 복잡한 기술에 친숙하지 않은 사용자에게 탁월한 옵션 + - 신뢰를 줄이고 출금 키에 대한 보관 유지 +--- + +## 서비스로서 스테이킹이란? {#what-is-staking-as-a-service} + +서비스로서 스테이킹(SaaS)은 귀하가 검증자를 위해 32 ETH를 예치하지만 노드 운영은 제3자 운영자에게 지정하는 스테이킹 서비스의 카테고리를 나타냅니다. 일반적으로 이 과정에는 키 생성 및 예치, 운영 업체에 서명 키 업로드와 같은 초기 설정에 대한 안내가 포함됩니다. 이를 통해 서비스가 귀하를 대신하여 검증자를 실행할 수 있으며, 일반적으로 매월 수수료가 부과됩니다. + +## 스테이킹을 서비스로 제공하는 이유 {#why-stake-with-a-service} + +이더리움 프로토콜 자체는 스테이크의 위임을 지원하지 않기 때문에 이러한 수요를 충족시키기 위해 스테이킹 서비스가 구축되었습니다. 스테이킹할 32 ETH가 있지만 하드웨어를 다루는 데 능숙하지 않은 경우, SaaS 서비스를 통해 어려운 부분은 맡기고 기존의 블록 보상은 계속해서 받을 수 있습니다. + + + + 소유하고 있는 32 ETH를 예치하여 이더리움 합의 메커니즘에 참여할 수 있는 서명 키 세트를 활성화하세요. 대시보드를 통해 ETH 보상이 적립되는 과정을 모니터링합니다. + + + 하드웨어 사양, 설치, 노드 점검 및 업그레이드는 더 이상 생각하지 않아도 됩니다. + SaaS 제공자의 서비스를 사용하면 자신의 서명 자격 증명을 업로드하여 어려운 부분을 외부에 대신 맡기고 적은 비용으로 귀하를 대신하여 검증자를 실행할 수 있게 합니다. + + + 대부분의 경우에 사용자는 스테이킹된 자금을 출금하거나 이전할 수 있게 하는 키에 대한 접근 권한을 포기하지 않아도 됩니다. 앞서 말한 키는 서명 키와는 다르며, 스테이커의 위험성을 최소화(제거하지는 않음)하도록 분리하여 저장할 수 있습니다. + + + + + +## 고려 사항 {#what-to-consider} + +ETH를 스테이킹할 수 있도록 도와주는 서비스형 스테이킹 제공 업체의 수는 점점 증가하고 있지만 각 업체마다 서로 다른 장점과 위험성이 있습니다. + +아래의 속성 지표는 현재 목록에 있는 SaaS 제공 업체의 대표적인 강점 및 약점을 나타내기 위해 사용되었습니다. 스테이킹 여정을 도와 줄 서비스를 선택할 때 이 섹션을 참고하여 이러한 속성이 정의되는 방법을 알아보세요. + + + +## 스테이킹 서비스 제공 업체 찾기 {#saas-providers} + +다음은 사용 가능한 SaaS 공급자입니다. 상단의 지표를 사용하면 해당 서비스를 둘러보는 데 도움이 됩니다. + + +참고로, 클라이언트 다양성에 대한 지원은 네트워크의 보안을 강화하고 위험성을 최소화할 수 있으므로 매우 중요합니다. 대부분 클라이언트의 사용을 제한하는 것으로 밝혀진 서비스는 "다양한 클라이언트"로 표시됩니다. + + +### SaaS 제공업체 + + + +### 키 생성기 + + + +저희가 놓친 서비스로서 스테이킹 제공 업체를 제안하고 싶으신가요? 이더리움 [제품 나열 정책](/contributing/adding-staking-products/)을 확인하고 정책에 맞는 제품인 경우 검토를 위해 제출해 주세요. + +## 자주 묻는 질문 {#faq} + + + 진행 방식은 업체별로 다를 수 있지만 일반적으로 필요한 서명 키(32 ETH 당 1개)를 설정하고 본인을 대신하여 검증자를 실행할 수 있게 제공 업체에 키를 업로드하도록 안내받게 됩니다. 서명 키만으로는 자금을 인출하거나 이체 또는 소비할 수 없습니다. 다만, 업체는 합의를 위한 투표에 참여할 수 있게 되며, 이는 적절하게 이루어지지 않는 경우에 오프라인에서 벌금 및 슬래싱을 받게 될 수 있습니다. + + + +네. 각 계정은 서명 키와 인출 키를 모두 포함하여 구성됩니다. 검증자가 체인의 상태를 증명하고, 그룹 동기화, 블록 제안 등을 용이하게 하기 위해서는 검증자 클라이언트가 서명 키에 쉽게 접근할 수 있어야 합니다. 이는 어떠한 형태로든 반드시 인터넷에 연결되어 있어야 하므로, 본질적으로 "핫(hot)"키로 고려됩니다. 이는 검증자가 증명되기 위해 필요한 구성 요소이며, 보안을 위해 자금 인출이나 이체를 위해 사용되는 키와 분리되어 있습니다. + +이 모든 키는 24개 단어로 구성된 시드 문구를 사용하여 언제든지 재생성될 수 있습니다. 이 시드 문구를 안전한 곳에 백업해 두십시오. 그렇지 않으면 필요할 때 인출 키를 생성할 수 없게 됩니다. + + + + SaaS 공급 업체를 통해 32 ETH를 스테이킹할 경우, 해당하는 ETH는 여전히 공식 스테이킹 예치 계약 상에 예치됩니다. 따라서 현재 SaaS 스테이커는 솔로 스테이커와 동일하게 인출이 제한됩니다. 이는 현재 ETH 스테이킹이 단방향 입금이라는 것을 의미합니다. 이는 상하이 업그레이드 이전까지 지속될 예정입니다. + + + +SaaS 공급 업체를 사용하면 노드의 운영을 타인에게 맡기게 됩니다. 이는 노드 성능이 양호하지 않을 수도 있는 리스크를 동반하며, 귀하가 제어할 수 없습니다. 검증자가 제거되는 경우, 검증자의 잔액에 불이익이 적용되고 강제적으로 검증자 풀에서 제외됩니다. 해당하는 자금은 프로토콜 수준에서 인출이 가능하게 될 때까지 잠기게 됩니다. + +각 SaaS 업체에 연락하여 보증이나 보험 옵션에 대한 자세한 내용을 안내 받으십시오. 검증자 설정을 완전히 제어하고자 하는 경우, ETH를 솔로 스테이킹하는 방법에 대해 자세히 알아보세요. + + +## 더 읽을거리 {#further-reading} + +- [스테이킹 서비스 평가하기](https://www.attestant.io/posts/evaluating-staking-services/) - _짐 맥도널드 2020_ diff --git a/public/content/translations/ko/staking/solo/index.md b/public/content/translations/ko/staking/solo/index.md new file mode 100644 index 00000000000..2d9ef9a7c3e --- /dev/null +++ b/public/content/translations/ko/staking/solo/index.md @@ -0,0 +1,184 @@ +--- +title: ETH를 솔로 스테이킹하기 +description: ETH 솔로 스테이킹을 시작하는 방법에 대한 개요 +lang: ko +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-solo.png +alt: 컴퓨터 칩 위의 코뿔쏘 레슬리 +summaryPoints: + - 검증자가 온라인에서 올바르게 작동하도록 유지하여 프로토콜에서 직접 최대 보상을 받으세요. + - 가정용 컴퓨터를 실행하고 이더리움 네트워크의 보안과 탈중앙화에 기여해 보세요. + - 특정 주체를 신뢰하지 않고 자금에 대한 제어권을 유지하세요. +--- + +## 솔로 스테이킹이란 무엇인가요? {#what-is-solo-staking} + +솔로 스테이킹은 인터넷에 연결된 [이더리움 노드를 실행](/run-a-node/)하고 32 ETH를 예치하여 [검증자](#faq)를 활성화하며, 네트워크 합의에 직접 참여할 수 있게 하는 기능입니다. + +이더리움 노드는 실행 계층(EL) 클라이언트와 합의 계층(CL) 클라이언트로 이루어져 있습니다. 해당하는 클라이언트는 유효한 서명 키와 함께 작동하는 소프트웨어이며, 블록과 거래를 확인하고, 올바른 체인의 헤드를 증명, 증명을 관리하거나 블록을 제안합니다. + +솔로 스테이커는 이러한 클라이언트를 실행하기 위해 필요한 하드웨어를 운영하는 역할을 맞습니다. 이 작업을 위해 집에서 작동하는 전용 컴퓨터를 사용할 것을 강력하게 추천합니다. 네트워크 상태에 큰 도움이 되기 때문입니다. + +솔로 스테이커는 검증자가 온라인에서 올바르게 작동하도록 유지하여 프로토콜에서 직접 보상을 받을 수 있습니다. + +## 솔로 스테이킹이 왜 필요한가요? {#why-stake-solo} + +솔로 스테이킹에는 더 많은 책임이 따르지만, 자금 및 스테이킹 설정에 대한 가장 많은 관리 권한을 제공합니다. + + + + 검증자가 온라인일 때 중간의 제3자에게 수수료를 떼어 주지 않고 프로토콜에서 직접 ETH 보상을 받을 수 있습니다. + + + 자신의 키를 직접 지키십시오. 리스크를 최소화하고 네트워크의 상태와 보안에 가장 크게 기여하는 클라이언트와 하드웨어 조합을 선택할 수 있습니다. 제3자 스테이킹 서비스는 귀하를 대신하여 이러한 결정을 내리지만, 가장 안전한 결정이 아닐 수도 있습니다. + + + 솔로 스테이킹은 가장 효과적인 스테이킹 방법입니다. 집에서 직접 검증자를 실행함으로써, 이더리움 프토토콜의 견고함, 탈중앙화 및 보안을 강화할 수 있습니다. + + + +## 솔로 스테이킹 전에 고려할 사항 {#considerations-before-staking-solo} + +솔로 스테이킹에 모두 접근할 수 있고 위험 부담이 없기를 바라지만, 현실은 이와 다릅니다. ETH를 솔로 스테이킹하기 전에 염두에 두어야 할 실용적이고 중요한 고려 사항이 있습니다. + + + + 자신의 노드를 직접 운영할 때 선택한 소프트웨어를 사용하는 방법에 대해 알아봐야 합니다. 여기에는 관련 문서를 읽거나 해당하는 개발 팀의 통신 채널에 주목하는 것도 포함됩니다. + 실행하는 소프트웨어와 지분 증명 작동의 원리를 잘 이해할수록 스테이커로서의 위험 부담이 낮아지며 노드 운영자로서 도중에 발생할 수 있는 문제를 더 쉽게 해결할 수 있습니다. + + + 새로운 도구를 통해 작업이 더 쉬워지더라도 노드를 설치하려면 컴퓨터를 사용하는 작업에 어느 정도 친숙해야 합니다. 명령줄 인터페이스를 이해하는 것이 도움은 되지만 더 이상 반드시 필요한 것은 아닙니다. + 또한 매우 기초적인 하드웨어 설치 및 최소 권장 사양에 대해 어느 정도 이해하고 있어야 합니다. + + + 개인 키가 이더리움 주소를 보호하는 방법처럼 검증자를 위한 특별한 키를 생성해야 합니다. 시드 문구 또는 개인 키를 안전하게 보호하는 방법을 반드시 이해해야 합니다. +

이더리움 보안 및 사기 방지

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

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

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

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

+

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

+
+ + +개별 클라이언트는 다양한 팀들이 다양한 언어로 개발한 것이므로 성능과 사용성 면에서 차이를 보일 수 있습니다. 즉, "최고"의 클라이언트는 존재하지 않습니다. 모든 프로덕션 클라이언트는 우수한 소프트웨어이며 블록체인을 활용하고 동기화하기 위한 동일한 핵심 기능을 제공합니다. + +모든 프로덕션 클라이언트에서 동일한 기본 기능을 제공하기 때문에 소수 클라이언트를 선택하는 것이 매우 중요합니다. 즉, 현재 네트워크 상에서 아직 검증자들이 많이 사용하고 있지 않은 클라이언트를 선택하는 것이 중요합니다. 처음에는 와닿지 않을 수 있지만, 대다수 혹은 대규모 클라이언트를 실행하면 해당 클라이언트에 버그가 있는 경우에 슬래싱될 가능성이 높아집니다. 소수 클라이언트를 실행하면 이 리스크를 크게 줄입니다. + +클라이언트 다양성이 중요한 이유에 대해 자세히 알아보기 + + + +가상 사설 서버(VPS: Virtual Private Server)가 가정용 하드웨어 대신 사용될 수는 있지만, 검증자 클라이언트의 물리적인 액세스 및 위치가 실제로 중요합니다. 아마존 웹 서비스나 디지털 오션과 같은 중앙화된 클라우드 솔루션은 하드웨어를 직접 소유하고 운영하지 않아도 된다는 편리함을 제공하지만, 네트워크를 중앙화한다는 단점이 있습니다. + +하나의 중앙화된 클라우드 스토리지 솔루션에서 더 많은 검증자 클라이언트가 실행될수록 해당 사용자들은 위험해집니다. 해킹, 규제 또는 단순한 정전/인터넷 오류에 의해 해당 서비스가 오프라인이 되는 경우, 이 서버를 사용하는 모든 검증자 클라이언트도 동시에 오프라인이 됩니다. + +오프라인 패널티의 정도는 동시에 오프라인 상태에 있는 클라이언트 수에 비례합니다. 따라서 VPS를 사용하면 오프라인 패널티에 대한 리스크를 현저히 증가시키며, 고장이 대규모인 경우에 2차적 누출이나 슬래싱을 당할 리스크 또한 키웁니다. 귀하의 리스크와 네트워크의 리스크를 최소화하기 위해 사용자는 자신의 하드웨어를 확보하고 운영할 것을 강력히 권장합니다. + + +## 더 읽을거리 {#further-reading} + +- [이더리움의 클라이언트 다양성 문제](https://hackernoon.com/ethereums-client-diversity-problem) - *@emmanuelawosika 2022* +- [클라이언트 다양성 개선](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ +- [이더리움 합의 계층에서의 클라이언트 다양성](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ +- [사용법: 이더리움 검증자용 하드웨어 구매하기](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ +- [단계별: 이더리움 2.0 테스트넷에 참여하는 방법](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _Butta_ +- [Eth2 슬래싱 방지 팁](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raul Jordan 2020_ diff --git a/src/content/translations/ko/web3/index.md b/public/content/translations/ko/web3/index.md similarity index 100% rename from src/content/translations/ko/web3/index.md rename to public/content/translations/ko/web3/index.md diff --git a/src/content/translations/ko/whitepaper/index.md b/public/content/translations/ko/whitepaper/index.md similarity index 100% rename from src/content/translations/ko/whitepaper/index.md rename to public/content/translations/ko/whitepaper/index.md diff --git a/src/content/translations/lt/dapps/index.md b/public/content/translations/lt/dapps/index.md similarity index 100% rename from src/content/translations/lt/dapps/index.md rename to public/content/translations/lt/dapps/index.md diff --git a/src/content/translations/lt/enterprise/index.md b/public/content/translations/lt/enterprise/index.md similarity index 100% rename from src/content/translations/lt/enterprise/index.md rename to public/content/translations/lt/enterprise/index.md diff --git a/src/content/translations/lt/eth/index.md b/public/content/translations/lt/eth/index.md similarity index 100% rename from src/content/translations/lt/eth/index.md rename to public/content/translations/lt/eth/index.md diff --git a/src/content/translations/lt/wallets/index.md b/public/content/translations/lt/wallets/index.md similarity index 100% rename from src/content/translations/lt/wallets/index.md rename to public/content/translations/lt/wallets/index.md diff --git a/src/content/translations/lt/what-is-ethereum/index.md b/public/content/translations/lt/what-is-ethereum/index.md similarity index 100% rename from src/content/translations/lt/what-is-ethereum/index.md rename to public/content/translations/lt/what-is-ethereum/index.md diff --git a/src/content/translations/ml/eips/index.md b/public/content/translations/ml/eips/index.md similarity index 100% rename from src/content/translations/ml/eips/index.md rename to public/content/translations/ml/eips/index.md diff --git a/src/content/translations/ml/enterprise/index.md b/public/content/translations/ml/enterprise/index.md similarity index 100% rename from src/content/translations/ml/enterprise/index.md rename to public/content/translations/ml/enterprise/index.md diff --git a/public/content/translations/ml/roadmap/beacon-chain/index.md b/public/content/translations/ml/roadmap/beacon-chain/index.md new file mode 100644 index 00000000000..669f4091ab2 --- /dev/null +++ b/public/content/translations/ml/roadmap/beacon-chain/index.md @@ -0,0 +1,76 @@ +--- +title: ബീക്കൺ ചെയിൻ +description: പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് Ethereum അവതരിപ്പിച്ചിട്ടുള്ള അപ്‌ഗ്രേഡായ ബീക്കൺ ചെയിൻ സംബന്ധിച്ച് കൂടുതലറിയുക. +lang: ml +template: upgrade +image: /upgrades/core.png +alt: +summaryPoint1: ബീക്കൺ ചെയിൻ, Ethereum ഇക്കോസിസ്റ്റത്തിലേക്ക് പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് അവതരിപ്പിച്ചു. +summaryPoint2: ഇത് ഒറിജിനൽ Ethereum പ്രൂഫ് ഓഫ് വർക്ക് ശൃംഖലയുമായി 2022 സെപ്റ്റംബറിൽ ലയിപ്പിച്ചു. +summaryPoint3: ബീക്കൺ ചെയിൻ പൊതു യുക്തിയും Ethereum-ത്തെ ഇപ്പോൾ സുരക്ഷിതമാക്കുന്ന ബ്ലോക്ക് ഗോസിപ്പ് പ്രോട്ടോക്കോളും അവതരിപ്പിച്ചു. +--- + + + ബീക്കൺ ചെയിൻ 2020 ഡിസംബർ 1-ന് ഷിപ്പ് ചെയ്യുകയും 2022 സെപ്‌റ്റംബർ 15-ലെ ലയന അപ്‌ഗ്രേഡുമൊത്ത് Ethereum-ന്റെ പൊതു രീതിയായി പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് ഔദ്യോഗികമാക്കുകയും ചെയ്തു. + + +## ബീക്കൺ ചെയിൻ എന്തായിരുന്നു? {#what-is-the-beacon-chain} + +2020-ൽ സമാരംഭിച്ച യഥാർത്ഥ പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് ബ്ലോക്ക്‌ചെയിനിന്റെ പേരാണ് ബീക്കൺ ചെയിൻ. Ethereum മെയിൻനെറ്റിൽ പ്രവർത്തനസജ്ജമാക്കുന്നതിന് മുമ്പ്, പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് പൊതു യുക്തി മികച്ചതും സുസ്ഥിരവുമാണെന്ന് ഉറപ്പാക്കുന്നതിനാണ് ഇത് സൃഷ്ടിച്ചത്. അതിനാൽ തന്നെ, ഇത് ഒറിജിനൽ പ്രൂഫ് ഓഫ് വർക്ക് Ethereum-നൊപ്പം പ്രവർത്തിച്ചു. Ethereum-ൽ പ്രൂഫ് ഓഫ് വർക്ക് സ്വിച്ച് ഓഫ് ചെയ്യുന്നതിനും പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് ഓൺ ചെയ്യുന്നതിനും, ഒറിജിനൽ Ethereum ശൃംഖലയിൽ നിന്നുള്ള ഇടപാടുകൾ സ്വീകരിക്കാൻ ബീക്കൺ ചെയിനിന് നിർദ്ദേശം നൽകുകയും അവയെ ബ്ലോക്കുകളായി ബണ്ടിൽ ചെയ്യുകയും തുടർന്ന് ഒരു പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് അടിസ്ഥാനമാക്കിയുള്ള പൊതു രീതി ഉപയോഗിച്ച് ഒരു ബ്ലോക്ക്‌ചെയിനിൽ ക്രമീകരിക്കുകയും ചെയ്യേണ്ടതുണ്ട്. അതേ സമയം, ഒറിജിനൽ Ethereum കക്ഷികൾ അവയുടെ മൈനിംഗ്, ബ്ലോക്ക് പ്രൊപ്പഗേഷൻ, പൊതു യുക്തി എന്നിവ ഓഫാക്കി, അതെല്ലാം ബീക്കൺ ചെയിനിന് കൈമാറി. ഈ ഇവന്റ് [ലയനം](/roadmap/merge/) എന്ന് അറിയപ്പെട്ടു. ലയനം നടന്ന ശേഷം രണ്ട് ബ്ലോക്ക്‌ചെയിനുകൾ ഉണ്ടായിരുന്നില്ല; ഒരു പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് Ethereum ചെയിൻ മാത്രമാണ് ഉണ്ടായിരുന്നത്. + +## ബീക്കൺ ചെയിൻ എന്താണ് ചെയ്തത്? {#what-does-the-beacon-chain-do} + +യഥാർത്ഥ Ethereum ഇടപാടുകൾ സ്റ്റേക്കർമാർ ആധികാരികമാക്കാൻ തുടങ്ങുന്നതിന് മുമ്പ് Ethereum [സ്റ്റേക്കർമാരുടെ](/staking/) നെറ്റ്‌വർക്ക് നിർവഹിക്കുകയും ഏകോപിപ്പിക്കുകയും ചെയ്ത അക്കൗണ്ടുകളുടെ ഒരു ലെഡ്‌ജറിന് നൽകിയ പേരാണ് ബീക്കൺ ചെയിൻ. ഇത് ഇടപാടുകൾ പ്രോസസ്സ് ചെയ്യുകയോ മികച്ച കരാർ ഇടപെടലുകൾ കൈകാര്യം ചെയ്യുകയോ ചെയ്തില്ല. + +ഇത് Ethereum-ലെ പ്രൂഫ് ഓഫ് വർക്ക് മൈനിംഗിന്റെ സ്ഥാനത്ത് പൊതു എഞ്ചിൻ (അല്ലെങ്കിൽ "പൊതു വരി") അവതരിപ്പിക്കുകയും അതിൽ നിരവധി പ്രധാനപ്പെട്ട മെച്ചപ്പെടുത്തലുകൾ കൊണ്ടുവരികയും ചെയ്തു. + +[ഇപ്പോഴുള്ള സുരക്ഷിതവും പരിസ്ഥിതി സൗഹൃദപരവും വിപുലീകരിക്കാവുന്നതുമായ Ethereum](/roadmap/vision/) എന്നതിനുള്ള ഒരു അടിസ്ഥാന ഘടകമായിരുന്നു ബീക്കൺ ചെയിൻ. + +## ബീക്കൺ ചെയിൻ സ്വാധീനം {#beacon-chain-features} + +### സ്റ്റേക്കിംഗ് അവതരിപ്പിക്കുന്നു {#introducing-staking} + +ബീക്കൺ ചെയിൻ Ethereum-ന് [പ്രൂഫ് ഓഫ് സ്റ്റേക്ക്](/developers/docs/consensus-mechanisms/pos/) അവതരിപ്പിച്ചിരിക്കുന്നു. ഇത് Ethereum-ത്തെ സുരക്ഷിതമായി നിലനിർത്തുകയും വാലിഡേറ്റർമാർ പ്രക്രിയയിൽ കൂടുതൽ ETH നേടുകയും ചെയ്യുന്നു. പ്രായോഗികമായി, വാലിഡേറ്റർ സോഫ്റ്റ്‌വെയർ സജീവമാക്കുന്നതിന് സ്റ്റെയ്ക്കിങിൽ സ്റ്റെയ്ക്കിങ് ETH ഉൾപ്പെടുന്നു. ഒരു സ്റ്റേക്കർ എന്ന നിലയിൽ, ചെയിനിലെ പുതിയ ബ്ലോക്കുകൾ സൃഷ്ടിക്കുകയും സാധൂകരിക്കുകയും ചെയ്യുന്ന സോഫ്റ്റ്‌വെയർ നിങ്ങൾ പ്രവർത്തിപ്പിക്കും. + +വ്യത്യസ്‌തമായ രീതികളിൽ [മൈനിംഗ്](/developers/docs/mining/) ഉപയോഗിച്ചിരുന്ന സമാനമായ ഉദ്ദേശ്യമാണ് സ്റ്റേക്കിംഗ് നിർവഹിക്കുന്നത്. ഇക്കണോമീസ് ഓഫ് സ്‌കെയിലിംഗിന്റെ ഫലമുണ്ടാക്കുകയും കേന്ദ്രീകരണം പ്രോത്സാഹിപ്പിക്കുകയും ചെയ്തുകൊണ്ട് മൈനിംഗ് ശക്തമായ ഹാർഡ്‌വെയറിന്റെയും ഊർജ്ജ ഉപഭോഗത്തിന്റെയും രൂപത്തിൽ വലിയ മുൻകൂർ അടച്ചുതീർക്കേണ്ട ചെലവുകൾ ആവശ്യപ്പെടുന്നു. ഒരു ആക്രമണത്തിന് ശേഷം മോശം ആക്റ്റർമാരെ ശിക്ഷിക്കുന്നതിനുള്ള പ്രോട്ടോക്കോളിന്റെ കഴിവ് പരിമിതപ്പെടുത്തിക്കൊണ്ട്, ഈടായി ആസ്തികൾ ലോക്ക് ചെയ്യേണ്ട യാതൊരു ആവശ്യവും മൈനിംഗിൽ ഉണ്ടായിരുന്നുമില്ല. + +പ്രൂഫ് ഓഫ് സ്റ്റേക്കിലേക്കുള്ള മാറ്റം Ethereum-ത്തെ പ്രൂഫ് ഓഫ് വർക്കുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ കൂടുതൽ സുരക്ഷിതവും വികേന്ദ്രീകൃതവുമാക്കി. നെറ്റ്‌വർക്കിൽ കൂടുതൽ ആളുകൾ പങ്കെടുക്കുമ്പോൾ, അത് കൂടുതൽ വികേന്ദ്രീകൃതവും ആക്രമണങ്ങളിൽ നിന്ന് സുരക്ഷിതവുമാകും. + + + ഒരു വാലിഡേറ്ററാകാനും Ethereum സുരക്ഷിതമാക്കാൻ സഹായിക്കാനും നിങ്ങൾക്ക് താൽപ്പര്യമുണ്ടെങ്കിൽ, സ്റ്റെയ്ക്കിങ് എന്നതിനെക്കുറിച്ച് കൂടുതലറിയുക. + + +### ഷാർഡിംഗിനായി സജ്ജമാക്കുന്നു {#setting-up-for-sharding} + +ഒറിജിനൽ Ethereum മെയിൻനെറ്റുമായി ബീക്കൺ ചെയിൻ ലയിച്ചതിനാൽ, നെറ്റ്‌വർക്ക് സ്കെയിലിംഗ് ചെയ്യുന്നതിന് Ethereum കമ്മ്യൂണിറ്റി അന്വേഷിക്കാൻ തുടങ്ങി. + +സ്റ്റേക്കിൽ ETH ഉള്ള ഓരോന്നിലും ഏത് സമയത്തും അംഗീകൃത ബ്ലോക്ക് പ്രൊഡ്യൂസർമാരുടെ ഒരു രജിസ്‌ട്രി ഉണ്ടായിരിക്കുക എന്നതിന്റെ നേട്ടം പ്രൂഫ് ഓഫ് സ്റ്റേക്കിനുണ്ട്. ഈ രജിസ്‌ട്രി വിഭജിക്കാനും തരണം ചെയ്യാനുമുള്ള കഴിവിന് വേദിയൊരുക്കുന്നു, എന്നാൽ പ്രത്യേക നെറ്റ്‌വർക്ക് ഉത്തരവാദിത്തങ്ങളെ വിശ്വസനീയമായി വിഭജിക്കുന്നു. + +ഈ ഉത്തരവാദിത്തം പ്രൂഫ് ഓഫ് വർക്കിൽ നിന്ന് വ്യത്യാസപ്പെട്ടിരിക്കുന്നു, ഇവിടെ മൈനർമാർക്ക് നെറ്റ്‌വർക്കിനോട് ഒരുവിധ ബാധ്യതയുമില്ല, മാത്രമല്ല അനന്തരഫലം ഒന്നുമില്ലാതെ തൽക്ഷണം മൈനിംഗ് നിർത്താനും അവരുടെ നോഡ് സോഫ്റ്റ്‌വെയർ ശാശ്വതമായി ഓഫാക്കാനും കഴിയും. അറിയപ്പെടുന്ന ബ്ലോക്ക് നിർദ്ദേശകരുടെ രജിസ്ട്രിയും നെറ്റ്‌വർക്ക് ഉത്തരവാദിത്തങ്ങൾ സുരക്ഷിതമായി വിഭജിക്കാനുള്ള മാർഗ്ഗവുമില്ല. + +[ഷാർഡിംഗിനെക്കുറിച്ച് കൂടുതൽ](/roadmap/danksharding/) + +## നവീകരണങ്ങൾ തമ്മിലുള്ള ബന്ധം {#relationship-between-upgrades} + +Ethereum അപ്‌ഗ്രേഡുകളെല്ലാം ഏതാണ്ട് പരസ്പരബന്ധിതമാണ്. അതിനാൽ ബീക്കൺ ചെയിൻ മറ്റ് അപ്‌ഗ്രേഡുകളെ എങ്ങനെ ബാധിക്കുന്നുവെന്ന് നമുക്ക് വീണ്ടും നോക്കാം. + +### ബീക്കൺ ചെയിനും ലയനവും {#merge-and-beacon-chain} + +ആദ്യം, Ethereum മെയിൻനെറ്റിൽ നിന്ന് വേറിട്ടായിരുന്നു ബീക്കൺ ചെയിൻ ഉണ്ടായിരുന്നത്, എന്നാൽ അവ 2022-ൽ ലയിച്ചു. + + + ലയനം + + +### ഷാർഡുകളും ബീക്കൺ ചെയിനും {#shards-and-beacon-chain} + +ഒരു പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് പൊതു രീതി ഉണ്ടെങ്കില്‍ മാത്രമേ ഷാർഡിംഗിന് സുരക്ഷിതമായി Ethereum ഇക്കോസിസ്റ്റത്തിലേക്ക് പ്രവേശിക്കാൻ കഴിയൂ. ബീക്കൺ ചെയിൻ സ്റ്റെയ്ക്കിങ് അവതരിപ്പിച്ചു, Ethereum-ത്തെ കൂടുതൽ വിപുലമാക്കാൻ സഹായിക്കുന്നതിന് ഷാർഡിംഗിന് വഴിയൊരുക്കിക്കൊണ്ട് അത് മെയിൻനെറ്റിൽ 'ലയിച്ചു'. + + + ഷാർഡ് ചെയിനുകള്‍ + + +## കൂടുതൽ വായനയ്ക്ക് + +- [Ethereum-ന്റെ ഭാവി അപ്‌ഗ്രേഡുകൾ സംബന്ധിച്ച് കൂടുതൽ](/roadmap/vision) +- [പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് സംബന്ധിച്ച് കൂടുതൽ](/developers/docs/consensus-mechanisms/pos) diff --git a/public/content/translations/ml/roadmap/merge/index.md b/public/content/translations/ml/roadmap/merge/index.md new file mode 100644 index 00000000000..af4bd58d1ad --- /dev/null +++ b/public/content/translations/ml/roadmap/merge/index.md @@ -0,0 +1,225 @@ +--- +title: ലയനം +description: മെയിൻനെറ്റ് Ethereum പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് സ്വീകരിച്ചപ്പോഴുള്ള ലയനം സംബന്ധിച്ച് അറിയുക. +lang: ml +template: upgrade +image: /upgrades/merge.png +alt: +summaryPoint1: Ethereum മെയിൻനെറ്റ് പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് ഉപയോഗിക്കുന്നു, എന്നാൽ ഇത് എല്ലായ്പ്പോഴും അങ്ങനെയായിരുന്നില്ല. +summaryPoint2: ഒറിജിനൽ പ്രൂഫ് ഓഫ് വർക്ക് രീതിയിൽ നിന്ന് പ്രൂഫ് ഓഫ് സ്റ്റേക്കിലേക്കുള്ള അപ്‌ഗ്രേഡിനെ ലയനം എന്ന് വിളിക്കപ്പെടുന്നു. +summaryPoint3: ഇപ്പോൾ ഒറ്റ ചെയിനായി നിലവിലുള്ള, ബീക്കൺ ചെയിൻ എന്നുവിളിക്കുന്ന ഒരു പ്രത്യേക പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് ബ്ലോക്ക്‌ചെയിനുമായി ലയിക്കുന്ന ഒറിജിനൽ Ethereum മെയിൻനെറ്റിനെ ആണ് ലയനം പരാമർശിക്കുന്നത്. +summaryPoint4: ലയനം Ethereum-ന്റെ ഊർജ്ജ ഉപഭോഗം ~99.95% കുറച്ചു. +--- + + + 2022 സെപ്റ്റംബർ 15-ന് ലയനം നടപ്പിലാക്കി. ഇത് ഔദ്യോഗികമായി പ്രൂഫ് ഓഫ് വർക്ക് ഒഴിവാക്കുകയും ഊർജ്ജ ഉപഭോഗം ~99.95% കുറയ്ക്കുകയും ചെയ്ത് Ethereum-ന്റെ പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് പൊതു രീതിയിലേക്കുള്ള മാറ്റം പൂർത്തിയാക്കി. + + +## എന്തായിരുന്നു ലയനം? {#what-is-the-merge} + +പുതിയ പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് പൊതു വരിയായ ബീക്കൺ ചെയിനുമായി Ethereum-ന്റെ ഒറിജിനൽ പ്രയോഗ വരിയുടെ ([ജെനിസിസ്](/history/#frontier) മുതൽ നിലനിന്നിരുന്ന മെയിൻനെറ്റ്) കൂടിച്ചേരലായിരുന്നു ലയനം. ഊർജ്ജ തീവ്ര മൈനിംഗിനുള്ള ആവശ്യകത ഇത് ഇല്ലാതാക്കുകയും, പകരം സ്റ്റേക്ക് ചെയ്ത ETH ഉപയോഗിച്ച് നെറ്റ്‌വർക്കിനെ സുരക്ഷിതമാക്കാൻ പ്രാപ്തമാക്കുകയും ചെയ്തു. Ethereum വീക്ഷണമായ കൂടുതൽ വിപുകരണം, സുരക്ഷ, സുസ്ഥിരത എന്നിവ സാക്ഷാത്കരിക്കുന്നതിനുള്ള ഒരു ശരിക്കും ആവേശകരമായ ചുവടുവെപ്പായിരുന്നു അത്. + + + +തുടക്കത്തിൽ, [ബീക്കൺ ചെയിൻ](/roadmap/beacon-chain/) എന്നതിനെ [മെയിൻനെറ്റിൽ](/glossary/#mainnet) നിന്ന് പ്രത്യേകം ഷിപ്പ് ചെയ്തു. [പ്രൂഫ് ഓഫ് സ്റ്റേക്ക്](/developers/docs/consensus-mechanisms/pos/) ഉപയോഗിച്ച് സമാന്തരമായി ബീക്കൺ ചെയിൻ പ്രവർത്തിപ്പിക്കുമ്പോൾ കൂടിയും [പ്രൂഫ് ഓഫ് വർക്ക്](/developers/docs/consensus-mechanisms/pow/) മുഖേന Ethereum മെയിൻനെറ്റ് - അതിന്റെ അക്കൗണ്ടുകളും ബാലൻസുകളും സ്‌മാർട്ട് കരാറുകളും ബ്ലോക്ക്‌ചെയിൻ നിലയും സഹിതം - സുരക്ഷിതമായി തുടരും. ഈ രണ്ട് സംവിധാനങ്ങളും അവസാനം ഒരുമിച്ചപ്പോൾ ആയിരുന്നു ലയനം, പ്രൂഫ് ഓഫ് വർക്ക് എന്നതിന്റെ സ്ഥാനത്ത് ശാശ്വതമായി പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് സ്ഥാപിക്കപ്പെട്ടു. + +ഒരു ഇന്റർസ്റ്റെല്ലാർ യാത്രയ്ക്ക് തികച്ചും തയ്യാറാകുന്നതിന് മുമ്പ് ലോഞ്ച് ചെയ്ത ഒരു ബഹിരാകാശ കപ്പലാണ് Ethereum എന്ന് സങ്കൽപ്പിക്കുക. ബീക്കൺ ചെയിൻ ഉപയോഗിച്ച് കമ്മ്യൂണിറ്റി ഒരു പുതിയ എഞ്ചിനും കഠിനമാക്കിയ ഹലും നിർമ്മിച്ചു. ഗൗരവതരമായ പരിശോധനയ്ക്ക് ശേഷം, പഴയ ഒരു മിഡ്-ഫ്ലൈറ്റിനായി പുതിയ എഞ്ചിൻ ഹോട്ട്-സ്വാപ്പ് ചെയ്യാനുള്ള സമയമായിരുന്നു ഇത്. ഇത് കുറച്ച് പ്രധാനമായ പ്രകാശവർഷങ്ങൾ സ്ഥാപിക്കലും സമ്പൂർണ്ണമായ പരിഗണനയും പ്രാപ്തമാക്കിക്കൊണ്ട് പുതിയതും കൂടുതൽ കാര്യക്ഷമവുമായ എഞ്ചിനെ നിലവിലുള്ള ഷിപ്പിലേക്ക് ലയിപ്പിച്ചു. + +## മെയിൻനെറ്റുമായുള്ള ലയനം {#merging-with-mainnet} + +ലയനം വരെ ജെനിസിസിൽ നിന്ന് പ്രൂഫ് ഓഫ് വർക്ക് Ethereum മെയിൻനെറ്റിനെ സുരക്ഷിതമാക്കി. നമ്മളെല്ലാം ഉപയോഗിക്കുന്നതും പരിചിതവുമായ ഇടപാടുകൾ, സ്‌മാർട്ട് കരാറുകൾ, അക്കൗണ്ടുകൾ മുതലായ സവിശേഷതകൾ സഹിതം Ethereum ബ്ലോക്ക്‌ചെയിൻ 2015 ജൂലൈയിൽ നിലവിൽ വരാൻ ഇത് ഇടയാക്കി. + +Ethereum-ന്റെ ചരിത്രത്തിൽ ഉടനീളം, പ്രൂഫ് ഓഫ് വർക്കിൽ നിന്ന് പ്രൂഫ് ഓഫ് സ്റ്റേക്കിലേക്കുള്ള ഒരു അന്തിമമായ മാറ്റത്തിന് ഡെവലപ്പർമാർ തയ്യാറെടുത്തു. 2020 ഡിസംബർ 1-ന്, സമാന്തരമായി പ്രവർത്തിക്കുന്ന മെയിൻനെറ്റിന് പ്രത്യേകമായിട്ടുള്ള ഒരു ബ്ലോക്ക്‌ചെയിൻ ആയി ബീക്കൺ ചെയിൻ സൃഷ്ടിക്കപ്പെട്ടു. + +ബീക്കൺ ചെയിൻ യഥാർത്ഥത്തിൽ മെയിൻനെറ്റ് ഇടപാടുകൾ പ്രോസസ്സ് ചെയ്തിരുന്നില്ല. പകരം, സജീവ വാലിഡേറ്റർമാരെയും അവരുടെ അക്കൗണ്ട് ബാലൻസുകളേയും അംഗീകരിച്ചുകൊണ്ട് സ്വന്തം നിലയിൽ അത് ഒരു പൊതു രീതിയിൽ എത്തുകയായിരുന്നു. വിപുലമായ പരിശോധനയ്ക്ക് ശേഷം, യഥാർത്ഥ സാഹചര്യങ്ങളിലുള്ള ഡാറ്റയിലെ പൊതു രീതിയിലേക്ക് ബീക്കൺ ചെയിൻ എത്താനുള്ള സമയമായി. ലയനത്തിന് ശേഷം, പ്രയോഗ വരി ഇടപാടുകളും അക്കൗണ്ട് ബാലൻസുകളും ഉൾപ്പെടെ എല്ലാ നെറ്റ്‌വർക്ക് ഡാറ്റയുടെയും പൊതു എഞ്ചിനായി ബീക്കൺ ചെയിൻ മാറി. + +ബ്ലോക്ക് പ്രൊഡക്ഷന്റെ എഞ്ചിനായി ബീക്കൺ ചെയിൻ ഉപയോഗിക്കാനുള്ള ഔദ്യോഗിക സ്വിച്ചിനെയാണ് ലയനം പ്രതിനിധീകരിക്കുന്നത്. മൈനിംഗ് എന്നത് ഇനി സാധുവായ ബ്ലോക്കുകൾ ഉൽപ്പാദിപ്പിക്കുന്നതിനുള്ള മാർഗ്ഗമല്ല. പകരം, പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് വാലിഡേറ്റർമാർ ഈ ചുമതല സ്വീകരിച്ചുവെന്ന് മാത്രമല്ല ഇപ്പോൾ എല്ലാ ഇടപാടുകളുടെയും സാധുത പ്രോസസ്സ് ചെയ്യുന്നതിനും ബ്ലോക്കുകൾ നിർദ്ദേശിക്കുന്നതിനും ഉത്തരവാദിത്തവുമുണ്ട്. + +ലയനത്തിൽ ചരിത്രപരമായത് ഒന്നും നഷ്ടപ്പെട്ടില്ല. ബീക്കൺ ചെയിനുമായി മെയിൻനെറ്റ് ലയിച്ചതിനാൽ, Ethereum-ന്റെ മുഴുവൻ ഇടപാട് ചരിത്രവും ലയിപ്പിക്കപ്പെട്ടു. + + +പ്രൂഫ് ഓഫ് സ്റ്റേക്കിലേക്കുള്ള ഈ മാറ്റം ഈതർ ഇഷ്യൂ ചെയ്യുന്ന രീതി മാറ്റി. ലയനത്തിന് മുമ്പും ശേഷവുമുള്ള ഈതർ ഇഷ്യു ചെയ്യൽ സംബന്ധിച്ച് കൂടുതലറിയുക. + + +### ഉപയോക്താക്കളും ഹോൾഡർമാരും {#users-holders} + +**ഹോൾഡർമാർക്കും/ഉപയോക്താക്കക്കും ലയനം എന്തെങ്കിലും മാറ്റമുണ്ടാക്കില്ല.** + +_ഇക്കാര്യം ആവർത്തിക്കുന്നു_: ETH-ന്റെ അല്ലെങ്കിൽ Ethereum-ലെ മറ്റേതെങ്കിലും ഡിജിറ്റൽ ആസ്ഥിയുടെ ഉപയോക്താവ് അല്ലെങ്കിൽ ഹോൾഡർ അതുപോലെ നോൺ-നോഡ് ഓപ്പറേറ്റിംഗ് സ്റ്റേക്കർമാർ എന്ന നിലയിൽ, **ലയത്തിനായി അക്കൗണ്ടിലേക്ക് നിങ്ങളുടെ ഫണ്ടുകൾ അല്ലെങ്കിൽ വാലറ്റ് ഉപയോഗിച്ച് നിങ്ങൾ ഒന്നും ചെയ്യേണ്ടതില്ല.** ETH എന്നത് ETH മാത്രമാണ്. "പഴയ ETH"/"പുതിയ ETH" അല്ലെങ്കിൽ "ETH1"/"ETH2" എന്നിങ്ങനെയൊന്നുമില്ല, ലയനത്തിന് ശേഷം വാലറ്റുകൾ മുമ്പത്തേത് പോലെ തന്നെ പ്രവർത്തിക്കും—മറ്റുവിധത്തിൽ നിങ്ങളോട് പറയുന്ന ആളുകൾ തട്ടിപ്പുകാർ ആയിരിക്കാൻ സാധ്യതയുണ്ട്. + +പ്രൂഫ് ഓഫ് വർക്ക് ഒഴിവാക്കിയാൽ കൂടിയും, പ്രൂഫ് ഓഫ് സ്റ്റേക്കിലേക്കുള്ള മാറ്റത്തിലൂടെ തുടക്കം മുതലുള്ള Ethereum-ന്റെ മുഴുവൻ ചരിത്രവും മാറ്റമില്ലാതെ തുടരും. ലയനത്തിന് മുമ്പ് നിങ്ങളുടെ വാലറ്റിൽ സൂക്ഷിച്ചിരിക്കുന്ന എല്ലാ ഫണ്ടുകളും തുടർന്നും ആക്‌സസ് ചെയ്യാൻ കഴിയും. **അപ്‌ഗ്രേഡ് ചെയ്യുന്നതിന് നിങ്ങളുടെ ഭാഗത്തുനിന്ന് ഒരു നടപടിയും ആവശ്യമില്ല.** + +[Ethereum സുരക്ഷ സംബന്ധിച്ച് കൂടുതൽ](/security/#eth2-token-scam) + +### നോഡ് ഓപ്പറേറ്റർമാരും വികേന്ദ്രീകൃത ആപ്ലിക്കേഷൻ (dapp) ഡെവലപ്പർമാരും {#node-operators-dapp-developers} + + + +പ്രധാന പ്രവർത്തന ഇനങ്ങളിൽ ഉൾപ്പെടുന്നവ: + +1. ഒരു പൊതു കക്ഷിയും പ്രയോഗ കക്ഷിയും പ്രവർത്തിപ്പിക്കുക; പ്രയോഗ ഡാറ്റ കരസ്ഥമാക്കുന്നതിനുള്ള മൂന്നാം കക്ഷി എൻഡ്‌പോയിന്റുകൾ ലയനം മുതൽ ഇനി പ്രവർത്തിക്കില്ല. +2. സുരക്ഷിതമായി ആശയവിനിമയം നടത്താൻ സാധിക്കുന്നതിന് ഒരു പങ്കിട്ട JWT രഹസ്യം ഉപയോഗിച്ച് പ്രയോഗ, പൊതു കക്ഷികളെ ആധികാരികമാക്കുക. +3. നിങ്ങളുടെ സമ്പാദിച്ച ഇടപാട് ഫീസ് ടിപ്പുകൾ/MEV ലഭിക്കുന്നതിന് ഒരു `ഫീ സ്വീകർത്താവ്` വിലാസം സജ്ജമാക്കുക. + +മേൽപ്പറഞ്ഞ ആദ്യത്തെ രണ്ട് ഇനങ്ങൾ പൂർത്തിയാകാതിരിക്കുന്നത് രണ്ട് വരികളും സമന്വയിപ്പിക്കുകയും ആധികാരികമാക്കുകയും ചെയ്യുന്നതുവരെ നിങ്ങളുടെ നോഡ് "ഓഫ്‌ലൈൻ" ആയി കാണുന്നതിന് ഇടയാക്കും. + +ഒരു `ഫീ സ്വീകർത്താവ്` സജ്ജമാക്കാതിരിക്കുന്നത്, നിങ്ങളുടെ വാലിഡേറ്ററെ തുടർന്നും സാധാരണ പോലെ പ്രതികരിക്കാൻ അനുവദിക്കും, എന്നാൽ അൺബേൺഡ് ടിപ്പുകളും ബ്ലോക്കുകളിൽ നിങ്ങൾക്ക് മറ്റുവിധത്തിൽ സമ്പാദിക്കാൻ കഴിയുന്ന, നിങ്ങളുടെ വാലിഡേറ്റർ നിർദ്ദേശിക്കുന്ന ഏതൊരു MEV-കളും നഷ്ടമാകും. + + + + +ലയനം വരെ, നെറ്റ്‌വർക്ക് ഗോസിപ്പ് ചെയ്യുന്ന ബ്ലോക്കുകൾ സ്വീകരിക്കാനും ശരിയായി സാധൂകരിക്കാനും പ്രചരിപ്പിക്കാനും ഒരു പ്രയോഗ കക്ഷി (Geth, Erigon, Besu അല്ലെങ്കിൽ Nethermind പോലുള്ളവ) മാത്രം മതിയായിരുന്നു. _ലയനത്തിന് ശേഷം_, ഒരു പ്രയോഗ പേലോഡിൽ അടങ്ങിയിരിക്കുന്ന ഇടപാടുകളുടെ സാധുത ഇപ്പോൾ അതിൽ അടങ്ങിയിരിക്കുന്ന "പൊതു ബ്ലോക്കിന്റെ" സാധുതയെ ആശ്രയിച്ചിരിക്കുന്നു. + +തൽഫലമായി, ഒരു പൂർണ്ണ Ethereum നോഡിന് ഇപ്പോൾ ഒരു പ്രയോഗ കക്ഷിയും ഒരു പൊതു കക്ഷിയും ആവശ്യമാണ്. ഈ രണ്ട് ക്ലയന്റുകളും ഒരു പുതിയ എഞ്ചിൻ API ഉപയോഗിച്ച് ഒരുമിച്ച് പ്രവർത്തിക്കുന്നു. എഞ്ചിൻ API-യ്ക്ക് ഒരു JWT രഹസ്യം ഉപയോഗിച്ചുള്ള ആധികാരികമാക്കൽ ആവശ്യമാണ്, അത് സുരക്ഷിത ആശയവിനിമയം അനുവദിച്ചുകൊണ്ട് രണ്ട് ക്ലയന്റുകൾക്കും നൽകിയിരിക്കുന്നു. + +പ്രധാന പ്രവർത്തന ഇനങ്ങളിൽ ഉൾപ്പെടുന്നവ: + +- ഒരു പൊതു കക്ഷിക്ക് പുറമേ ഒരു പ്രയോഗ കക്ഷിയും ഇൻസ്റ്റാൾ ചെയ്യുക +- പരസ്‌പരം സുരക്ഷിതമായി ആശയവിനിമയം നടത്താൻ സാധിക്കുന്നതിന് ഒരു പങ്കിട്ട JWT രഹസ്യം ഉപയോഗിച്ച് പ്രയോഗ, പൊതു കക്ഷികൾ ആധികാരികമാക്കുക. + +മേൽപ്പറഞ്ഞ ഇനങ്ങൾ പൂർത്തിയാകാതിരിക്കുന്നത് രണ്ട് വരികളും സമന്വയിപ്പിക്കുകയും ആധികാരികമാക്കുകയും ചെയ്യുന്നതുവരെ നിങ്ങളുടെ നോഡ് "ഓഫ്‌ലൈൻ" ആയി കാണുന്നതിന് ഇടയാക്കും. + + + + + +പൊതു രീതിയിലെ മാറ്റങ്ങളോടെയാണ് ലയനം, ഇതിൽ ഇനിപ്പറയുന്നമായി ബന്ധപ്പെട്ട മാറ്റങ്ങളും ഉൾപ്പെടുന്നു: + +- ബ്ലോക്ക് ഘടന +- സ്ലോട്ട്/ബ്ലോക്ക് ടൈമിംഗ് +- ഓപ്‌കോഡ് മാറ്റങ്ങൾ +- ഓൺ-ചെയിൻ ക്രമരഹിതത്തിന്റെ ഉറവിടങ്ങൾ +- _സേഫ് ഹെഡ്_, _ഫൈനലൈസ്ഡ് ബ്ലോക്കുകൾ_ എന്ന ആശയം + +കൂടുതൽ വിവരങ്ങൾക്ക്, ടിം ബെയ്‌ക്കോയുടെ ഈ ബ്ലോഗ് പോസ്റ്റ് പരിശോധിക്കുക [Ethereum-ന്റെ ആപ്ലിക്കേഷൻ വരിയിൽ ലയനം ഉണ്ടാക്കിയ സ്വാധീനം](https://blog.ethereum.org/2021/11/29/how-the-merge-impacts-app-layer/). + + +## ലയനവും ഊർജ്ജ ഉപഭോഗവും {#merge-and-energy} + +ലയനം Ethereum-നുള്ള പ്രൂഫ് ഓഫ് വർക്കിന്റെ അവസാനത്തെ സൂചിപ്പിക്കുകയും, കൂടുതൽ സുസ്ഥിരവും പരിസ്ഥിതി സൗഹൃദവുമായ Ethereum-ത്തിനുള്ള യുഗം ആരംഭിക്കുകയും ചെയ്യും. Ethereum-ത്തെ ഒരു ഗ്രീൻ ബ്ലോക്ക്‌ചെയിനാക്കി മാറ്റിക്കൊണ്ട് Ethereum-ന്റെ ഊർജ്ജ ഉപഭോഗം ഏകദേശം 99.95% കുറഞ്ഞു. [Ethereum ഊർജ്ജ ഉപഭോഗം](/energy-consumption/) സംബന്ധിച്ച് കൂടുതലറിയുക. + +## ലയനവും സ്കെയിലിംഗും {#merge-and-scaling} + +[Ethereum വീക്ഷണത്തിൽ](/roadmap/vision/) വ്യക്തമാക്കിയിട്ടുള്ള മുഴുവൻ സ്കെയിലും സുരക്ഷയും സുസ്ഥിരതയും കൈവരിക്കുന്നതിന് ഒരു പടി കൂടി Ethereum-ത്തെ അടുപ്പിച്ചുകൊണ്ട് പ്രൂഫ് ഓഫ് വർക്കിന് കീഴിൽ സാധ്യമാകാത്ത കൂടുതൽ വിപുലീകൃത അപ്‌ഗ്രേഡുകൾ ലയനം സാധ്യമാക്കി. + +## ലയനം സംബന്ധിച്ച തെറ്റിദ്ധാരണകൾ {#misconceptions} + + +രണ്ട് തരം Ethereum നോഡുകൾ ഉണ്ട്: ബ്ലോക്കുകൾ നിർദ്ദേശിക്കാൻ കഴിയുന്ന നോഡുകളും അങ്ങനെയല്ലാത്ത നോഡുകളും. + +Ethereum-ലെ ആകെ നോഡുകളുടെ ഒരു ചെറിയ എണ്ണം മാത്രമാണ് ബ്ലോക്കുകൾ നിർദ്ദേശിക്കുന്ന നോഡുകൾ. ഈ വിഭാഗത്തിൽ പ്രൂഫ് ഓഫ് വർക്കിന് (PoW) കീഴിലുള്ള മൈനിംഗ് നോഡുകളും പ്രൂഫ് ഓഫ് സ്റ്റേക്കിന് (PoS) കീഴിലുള്ള വാലിഡേറ്റർ നോഡുകളും ഉൾപ്പെടുന്നു. ഈ വിഭാഗത്തിന് അടുത്ത ബ്ലോക്ക് ഇടയ്‌ക്കിടെ നിർദ്ദേശിക്കാനും പ്രോട്ടോക്കോൾ റിവാർഡുകൾ നേടാനുമുള്ള കഴിവിന് പകരമായി സാമ്പത്തിക റിസോഴ്‌സുകൾ (പ്രൂഫ് ഓഫ് വർക്കിൽ GPU ഹാഷ് പവർ അല്ലെങ്കിൽ പ്രൂഫ് ഓഫ് സ്റ്റേക്കിൽ സ്റ്റേക്ക്ഡ് ETH പോലുള്ളവ) ചുമതപ്പെടുത്തേണ്ടത് ആവശ്യമാണ്. + +നെറ്റ്‌വർക്കിലെ മറ്റ് നോഡുകൾ (അതായത്, ഭൂരിപക്ഷം) 1-2 TB ലഭ്യമായ സ്റ്റോറേജും ഇന്റർനെറ്റ് കണക്ഷനും ഉള്ള ഒരു ഉപഭോക്തൃ-ഗ്രേഡ് കമ്പ്യൂട്ടറിനപ്പുറം സാമ്പത്തിക റിസോഴ്‌സുകളൊന്നും ചുമതപ്പെടുത്തേണ്ട ആവശ്യമില്ല. ഈ നോഡുകൾ ബ്ലോക്കുകൾ നിർദ്ദേശിക്കുന്നില്ല, എന്നാൽ നെറ്റ്‌വർക്ക് പൊതു നിയമങ്ങൾ അനുസരിച്ച് പുതിയ ബ്ലോക്കുകൾക്കായി ശ്രദ്ധിക്കുകയും എത്തിച്ചേരുമ്പോൾ അവയുടെ സാധുത പരിശോധിച്ചുറപ്പിക്കുകയും ചെയ്തുകൊണ്ട് എല്ലാ ബ്ലോക്ക് പ്രൊപ്പോസർമാരെയും ഉത്തരവാദിത്തപ്പെടുത്തി നെറ്റ്‌വർക്ക് സുരക്ഷിതമാക്കുന്നതിൽ അവ ഇപ്പോഴും നിർണ്ണായകമായ പങ്ക് വഹിക്കുന്നു. ബ്ലോക്ക് സാധുവാണെങ്കിൽ, നോഡ് അത് നെറ്റ്‌വർക്കിലൂടെ വ്യാപിക്കുന്നത് തുടരുന്നു. ഏതെങ്കിലും കാരണത്താൽ ബ്ലോക്ക് അസാധുവാണെങ്കിൽ, നോഡ് സോഫ്‌റ്റ്‌വെയർ അതിനെ അസാധുവായി അവഗണിക്കുകയും അതിന്റെ വ്യാപനം നിർത്തുകയും ചെയ്യും. + +ഒരു നോൺ-ബ്ലോക്ക്-പ്രൊഡ്യൂസിംഗ് നോഡ് പ്രവർത്തിപ്പിക്കുന്നത് ഏതൊരു പൊതു രീതിക്ക് കീഴിലും ആർക്കും സാധ്യമാണ് (പ്രൂഫ് ഓഫ് വർക്ക് അല്ലെങ്കിൽ പ്രൂഫ് ഓഫ് സ്റ്റേക്ക്); അനുവദിക്കപ്പെടുന്നെങ്കിൽ എല്ലാ ഉപയോക്താക്കൾക്കായും ഇത് _ശക്തമായി പ്രോത്സാഹിപ്പിക്കുന്നു_. ഒരു നോഡ് പ്രവർത്തിപ്പിക്കുന്നത് Ethereum-ന് വളരെ വിലപ്പെട്ടതാണ്, കൂടാതെ മെച്ചപ്പെടുത്തിയ സുരക്ഷയും സ്വകാര്യതയും സെൻസർഷിപ്പ് പ്രതിരോധവും പോലെ അത് പ്രവർത്തിപ്പിക്കുന്ന ഏതൊരു വ്യക്തിക്കും അധിക ആനുകൂല്യങ്ങൾ നൽകുന്നു. + +Ethereum നെറ്റ്‌വർക്കിന്റെ വികേന്ദ്രീകരണം പരിപാലിക്കാൻ സ്വന്തം നോഡ് പ്രവർത്തിപ്പിക്കാനുള്ള കഴിവ് ഏതൊരാൾക്കും _തികച്ചും അത്യാവശ്യമാണ്_. + +[നിങ്ങളുടെ സ്വന്തം നോഡ് പ്രവർത്തിപ്പിക്കുന്നത് സംബന്ധിച്ച് കൂടുതൽ](/run-a-node/) + + + + +നെറ്റ്‌വർക്കിന്റെ ശേഷിയുമായി ബന്ധപ്പെട്ട നെറ്റ്‌വർക്ക് ഡിമാൻഡിന്റെ ഫലമാണ് ഗ്യാസ് ഫീസ്. പൊതു രീതിക്കുള്ള പ്രൂഫ് ഓഫ് സ്റ്റേക്കിലേക്ക് മാറിക്കൊണ്ട് ലയനം പ്രൂഫ് ഓഫ് വർക്കിന്റെ ഉപയോഗം ഒഴിവാക്കി, എന്നാൽ നെറ്റ്‌വർക്ക് ശേഷിയെയോ ത്രൂപുട്ടിനെയോ നേരിട്ട് സ്വാധീനിക്കുന്ന പാരാമീറ്ററുളെയൊന്നും കാര്യമായി മാറ്റിയില്ല. + +ഒരു [റോളപ്പ്-കേന്ദ്രീകൃത റോഡ്മാപ്പ്](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698) ഉപയോഗിച്ച്, [വരി-2](/വരി-2/)-ൽ ഉപയോക്തൃ ആക്റ്റിവിറ്റി അളക്കുന്നതിലാണ് ശ്രമങ്ങൾ കേന്ദ്രീകരിക്കുന്നത്, അതേസമയം റോളപ്പ് ഇടപാടുകൾ വളരെ ചെലവ് കുറഞ്ഞതാക്കാൻ സഹായിക്കുന്നതിന് റോളപ്പ് ഡാറ്റ സംഭരണത്തിനായി ഒപ്റ്റിമൈസ് ചെയ്‌ത ഒരു സുരക്ഷിത വികേന്ദ്രീകൃത സെറ്റിൽമെന്റ് വരിയായി വരി 1 മെയിൻനെറ്റ് പ്രാപ്‌തമാക്കുന്നു. ഇത് പൂർത്തീകരിക്കുന്നതിനുള്ള ഒരു നിർണ്ണായക സൂചനയാണ് പ്രൂഫ് ഓഫ് സ്റ്റേക്കിലേക്കുള്ള മാറ്റം. [ഗ്യാസിനെയും ഫീസിനെയും കുറിച്ച് കൂടുതൽ.](/developers/docs/gas/) + + + +ഒരു ഇടപാടിന്റെ "വേഗത" ഒരു ബ്ലോക്കിൽ ഉൾപ്പെടുത്തേണ്ട സമയവും അന്തിമമാക്കാനുള്ള സമയവും ഉൾപ്പെടെ ഏതാനും മാർഗ്ഗങ്ങളിലൂടെ അളക്കാൻ കഴിയും. ഇവ രണ്ടും ചെറുതായി മാറുന്നു, എന്നാൽ ഉപയോക്താക്കൾ ശ്രദ്ധിക്കുന്ന ഒരു രീതിയിലല്ല. + +ചരിത്രപരമായി, പ്രൂഫ് ഓഫ് വർക്കിൽ, ഓരോ ~13.3 സെക്കൻഡിലും ഒരു പുതിയ ബ്ലോക്ക് എന്നതായിരുന്നു ലക്ഷ്യം. പ്രൂഫ് ഓഫ് സ്റ്റേക്കിൽ, ഓരോ 12 സെക്കൻഡിലും കൃത്യമായി സ്ലോട്ടുകൾ സംഭവിക്കും, അതിൽ ഓരോന്നും ഒരു ബ്ലോക്ക് പ്രസിദ്ധീകരിക്കാൻ വാലിഡേറ്റർക്കുള്ള അവസരമാണ്. മിക്ക സ്ലോട്ടുകളിലും ബ്ലോക്കുകളുണ്ട്, എന്നാൽ എല്ലാം അനിവാര്യമല്ല (അതായത്, ഒരു വാലിഡേറ്റർ ഓഫ്‌ലൈനാണ്). പ്രൂഫ് ഓഫ് സ്റ്റേക്കിൽ, പ്രൂഫ് ഓഫ് വർക്കിനേക്കാൾ ~10% കൂടുതൽ ഇടവിട്ട് ബ്ലോക്കുകൾ നിർമ്മിക്കപ്പെടുന്നു. ഇത് ഉപയോക്താക്കൾ ശ്രദ്ധിക്കാൻ ഇടയില്ലാത്ത വളരെ നിസാരമായ ഒരു മാറ്റമായിരുന്നു. + +പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് മുമ്പ് ഇല്ലാതിരുന്ന ഇടപാട് അന്തിമനില ആശയം അവതരിപ്പിച്ചു. പ്രൂഫ് ഓഫ് വർക്കിൽ, ഒരു ഇടപാടിന് മുകളിൽ മൈൻ ചെയ്യുന്ന ഓരോ പാസിംഗ് ബ്ലോക്കിലും ഒരു ബ്ലോക്ക് റിവേഴ്‌സ് ചെയ്യാനുള്ള കഴിവ് തീർത്തും ബുദ്ധിമുട്ടായിരുന്നു, എന്നാൽ അത് ഒരിക്കലും പൂജ്യത്തിൽ എത്തുന്നില്ല. പ്രൂഫ് ഓഫ് സ്റ്റേക്കിൽ, വാലിഡേറ്റർമാർ വോട്ട് ചെയ്യുന്ന ഈപോച്ചുകളിലേക്ക് (ബ്ലോക്കുകൾക്കുള്ള 32 അവസരങ്ങൾ അടങ്ങിയ 6.4 മിനിറ്റ് സമയം) ബ്ലോക്കുകൾ ബണ്ടിൽ ചെയ്യുന്നു. ഒരു കാലം അവസാനിക്കുമ്പോൾ, വാലിഡേറ്റർമാർ കാലം 'ന്യായീകരിക്കത്തക്കത്' ആയി പരിഗണിക്കണോ എന്ന് വോട്ട് ചെയ്യുന്നു. വാലിഡേറ്റർമാർ കാലത്തിനെ ന്യായീകരിക്കാൻ സമ്മതിക്കുകയാണെങ്കിൽ, അത് അടുത്ത കാലത്തിൽ അന്തിമമാക്കപ്പെടും. ആകെ സ്റ്റേക്ക് ചെയ്ത ETH-ന്റെ മൂന്നിലൊന്ന് കരസ്ഥമാക്കുകയും ബേൺ ചെയ്യുകയും ചെയ്യുന്നതിനാൽ അന്തിമമാക്കിയ ഇടപാടുകൾ പഴയപടിയാക്കുന്നത് സാമ്പത്തികമായി ലാഭകരമല്ല. + + + + +സ്റ്റേക്ക് ചെയ്ത ETH-ഉം സ്റ്റെയ്ക്കിങ് റിവാർഡുകളും പിൻവലിക്കുന്നത് അസാധ്യമാക്കി ലോക്ക് ചെയ്തതായി തുടരും. വരാനിരിക്കുന്ന ഷാങ്‌ഹായ് അപ്‌ഗ്രേഡിനായി പിൻവലിക്കലുകൾ ആസൂത്രണം ചെയ്തിട്ടുണ്ട്. + + + +ഷാങ്ഹായ് അപ്‌ഗ്രേഡ് വരെ പിൻവലിക്കലുകൾ പ്രാപ്‌തമാക്കിയിട്ടില്ലെന്ന മേൽപ്പറഞ്ഞ കുറിപ്പിന് ഇത് വിരുദ്ധമായി തോന്നാം, എന്നാൽ ബ്ലോക്ക് പ്രൊപ്പോസലുകളുടെ സമയത്ത് നേടിയ ഫീസ് റിവാർഡുകൾ/MEV എന്നിവയിലേക്ക് വാലിഡേറ്ററുകൾക്ക് ഉടനടി ആക്‌സസ് ഉണ്ട്. + +പൊതു രീതിയിലേക്ക് സംഭാവന നൽകാൻ വാലിഡേറ്റർമാർക്ക് ഒരു റിവാർഡായി പ്രോട്ടോക്കോൾ ETH ഇഷ്യൂ ചെയ്യുന്നു. പുതുതായി ഇഷ്യൂ ചെയ്ത ETH-നായി വാലിഡേറ്റർക്ക് സ്റ്റേക്ക് ചെയ്ത ETH-ഉം പ്രോട്ടോക്കോൾ റിവാർഡുകളും ഉള്ള ഒരു സവിശേഷമായ വിലാസമുള്ള പൊതു വരി അക്കൗണ്ടുകൾ. ഷാങ്ഹായ് വരെ ഈ ETH ലോക്ക് ചെയ്തിരിക്കുന്നു. + +പ്രയോഗ വരിയിലെ ETH പൊതു വരിയിൽ നിന്ന് പ്രത്യേകമായി കണക്കാക്കുന്നു. Ethereum മെയിൻനെറ്റിൽ ഉപയോക്താക്കൾ ഇടപാടുകൾ നടത്തുമ്പോൾ, വാലിഡേറ്റർക്കുള്ള ടിപ്പ് ഉൾപ്പെടെ, ഗ്യാസ് കവർ ചെയ്യുന്നതിന് ETH നൽകണം. ഈ ETH ഇതിനകം തന്നെ പ്രയോഗ വരിയിലാണ്, പ്രോട്ടോക്കോൾ വഴി പുതുതായി നൽകുന്നതല്ല, വാലിഡേറ്ററിന് ഉടനടി ലഭ്യവുമാണ് (ക്ലയന്റ് സോഫ്‌റ്റ്‌വെയറിൽ ശരിയായ `ഫീ സ്വീകർത്താവ്` വിലാസം നൽകുന്ന സാഹചര്യത്തിൽ). + + + +ഷാങ്ഹായ് അപ്‌ഗ്രേഡ് പിൻവലിക്കലുകൾ പ്രാപ്‌തമാക്കിയ ശേഷം, 32 ETH-ന് മുകളിലുള്ള സ്റ്റെയ്ക്കിങ് ബാലൻസ് പിൻവലിക്കാൻ എല്ലാ വാലിഡേറ്റർമാരെയും പ്രേരിപ്പിക്കും, കാരണം ഈ ഫണ്ടുകൾ ആദായത്തിലേക്ക് ചേർക്കുന്നില്ല, മറ്റുവിധത്തിൽ ലോക്ക് ചെയ്യുന്നുമില്ല. APR-നെ ആശ്രയിച്ച് (സ്റ്റേക്ക് ചെയ്ത ആകെ ETH വഴി നിർണ്ണയിച്ചത്) അനുസരിച്ച്, അവരുടെ മുഴുവൻ ബാലൻസും വീണ്ടും ക്ലെയിം ചെയ്യുന്നതിന് അല്ലെങ്കിൽ കൂടുതൽ ആദായത്തിന് അവരുടെ റിവാർഡുകൾ ഉപയോഗിച്ച് സംഭവ്യമായി കൂടുതൽ സ്റ്റേക്ക് ചെയ്യാൻ വാലിഡേറ്ററിൽ(കൾ) നിന്ന് പുറത്തുകടക്കാൻ അവരെ പ്രേരിപ്പിച്ചേക്കാം. + +ഇവിടെ ശ്രദ്ധിക്കേണ്ട ഒരു പ്രധാന കാര്യം, പൂർണ്ണ വാലിഡേറ്റർ എക്‌സിറ്റുകൾ പ്രോട്ടോക്കോൾ വഴി പരിമിതപ്പെടുത്തിയിരിക്കുന്നു എന്നതാണ്, അതിനാൽ ഓരോ കാലവും ആറ് വാലിഡേറ്റർമാർ മാത്രമേ ഉണ്ടാകൂ (ഓരോ 6.4 മിനിറ്റിലും, അതിനാൽ പ്രതിദിനം 1350, അല്ലെങ്കിൽ സ്റ്റേക്ക് ചെയ്ത 10 ദശലക്ഷത്തിലധികം ETH-ൽ പ്രതിദിനം ~43,200 ETH മാത്രം). സ്റ്റേക്ക് ചെയ്ത ആകെ ETH-നെ ആശ്രയിച്ച് ഈ നിരക്ക് പരിധി ക്രമീകരിക്കുകയും ഫണ്ടുകളുടെ കൂട്ട പ്രയാണം തടയുകയും ചെയ്യുന്നു. കൂടാതെ, പ്രോട്ടോക്കോൾ സ്ലാഷിംഗ് പെനാൽറ്റി നടപ്പിലാക്കുന്നതിന് മുമ്പ് ഒരു സാധ്യതയുള്ള അറ്റാക്കർ ഒരു കുറവുവരുത്തൽ കുറ്റം ചെയ്യാനും സമാന കാലത്തിലെ ഒരു മുഴുവൻ സ്റ്റെയ്ക്കിംങിൽ നിന്ന് പുറത്തുകടക്കാനും അവരുടെ സ്റ്റേക്ക് ഉയോഗിക്കുന്നത് തടയുന്നു. + +നെറ്റ്‌വർക്ക് സുരക്ഷിതമാക്കാൻ സഹായിക്കുന്നതിന് അവർ എത്ര പണം നൽകാൻ തയ്യാറാണ് എന്നതിനെ സന്തുലിതമാക്കാൻ സ്റ്റേക്കർമാരുടെ ഒരു വിപണിയെ അനുവദിച്ചുകൊണ്ട് APR ഉദ്ദേശപരമായി തന്നെ ചലനാത്മകമാണ്. പിൻവലിക്കൽ പ്രാപ്‌തമാക്കുമ്പോൾ, നിരക്ക് വളരെ കുറവാണെങ്കിൽ, പ്രോട്ടോക്കോൾ മുഖേന പരിമിതപ്പെടുത്തിയ ഒരു നിരക്കിൽ വാലിഡേറ്റർമാർ പുറത്തുകടക്കും. ക്രമേണ, പുതിയ അല്ലെങ്കിൽ തിരികെ വരുന്ന സ്റ്റേക്കർമാരെ വീണ്ടും ആകർഷിച്ചുകൊണ്ട് ഇത് ശേഷിക്കുന്ന എല്ലാവർക്കുമായി APR സൃഷ്ടിക്കും. + + +## 'Eth2' എന്നതിന് എന്ത് സംഭവിച്ചു? {#eth2} + +'Eth2' എന്ന പദം ഒഴിവാക്കി. 'Eth1', 'Eth2' എന്നിവയെ ഒരൊറ്റ ശൃംഖലയിലേക്ക് ലയിപ്പിച്ച ശേഷം, ഇനിമേൽ രണ്ട് Ethereum നെറ്റ്‌വർക്കുകൾ തമ്മിൽ വേർതിരിക്കേണ്ട ആവശ്യമില്ല; Ethereum മാത്രമാണ് ഉള്ളത്. + +ആശയക്കുഴപ്പം കുറയ്ക്കാൻ, കമ്മ്യൂണിറ്റി ഈ പദങ്ങൾ അപ്ഡേറ്റ് ചെയ്തിട്ടുണ്ട്: + +- ഇടപാടുകളും പ്രയോഗവും കൈകാര്യം ചെയ്യുന്ന 'പ്രയോഗ വരി' ആണ് 'Eth1' ഇപ്പോൾ. +- പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് കൺസെൻസസ് കൈകാര്യം ചെയ്യുന്ന 'പൊതു വരി' ആണ് 'Eth2' ഇപ്പോൾ. + +ഈ പദാവലി അപ്‌ഡേറ്റുകൾ പേരുനൽകൽ സമ്പ്രദായങ്ങളെ മാത്രമാണ് മാറ്റുന്നത്; ഇത് Ethereum-ന്റെ ലക്ഷ്യങ്ങളെയോ റോഡ്‌മാപ്പിനെയോ മാറ്റുന്നില്ല. + +['Eth2' പുനർനാമകരണം സംബന്ധിച്ച് കൂടുതലറിയുക](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) + +## നവീകരണങ്ങൾ തമ്മിലുള്ള ബന്ധം {#relationship-between-upgrades} + +Ethereum അപ്‌ഗ്രേഡുകളെല്ലാം ഏതാണ്ട് പരസ്പരബന്ധിതമാണ്. അതിനാൽ ലയനം മറ്റ് അപ്‌ഗ്രേഡുകളുമായി എങ്ങനെ ബന്ധപ്പെട്ടിരിക്കുന്നു എന്ന് വീണ്ടും നോക്കാം. + +### ലയനവും ബീക്കൺ ചെയിനും {#merge-and-beacon-chain} + +ഒറിജിനൽ മെയിൻനെറ്റ് പ്രയോഗ വരിയിലേക്ക് പുതിയ പൊതു വരിയായി ബീക്കൺ ചെയിൻ ഔപചാരികമായി സ്വീകരിക്കുന്നതിനെ ലയനം സൂചിപ്പിക്കുന്നു. ലയനം മുതൽ, Ethereum മെയിൻനെറ്റ് സുരക്ഷിതമാക്കുന്നതിലേക്ക് വാലിഡേറ്റർമാരെ നിയോഗിക്കുന്നു, [പ്രൂഫ് ഓഫ് വർക്കിലെ](/developers/docs/consensus-mechanisms/pow/) മൈനിംഗ് ഇനിമേൽ ഒരു സാധുതയുള്ള ബ്ലോക്ക് പ്രൊഡക്ഷൻ അർത്ഥമാക്കുന്നില്ല. + +പൊതുവായതിൽ പങ്കെടുക്കാനുള്ള അവകാശത്തിന് പകരമായി സ്റ്റേക്ക് ചെയ്ത ETH ഉള്ള നോഡുകൾ വാലിഡേറ്റ് ചെയ്തുകൊണ്ട് ബ്ലോക്കുകൾ നിർദ്ദേശിക്കപ്പെടുന്നു. ഈ അപ്‌ഗ്രേഡുകൾ ഷാർഡിംഗ് ഉൾപ്പെടെയുള്ള ഭാവിയിലെ വിപുലീകരണ അപ്‌ഗ്രേഡുകൾക്ക് വേദിയൊരുക്കുന്നു. + + + ബീക്കൺ ചെയിൻ + + +### ലയനവും ഷാങ്‌ഹായ് അപ്‌ഗ്രേഡും {#merge-and-shanghai} + +പ്രൂഫ് ഓഫ് സ്റ്റേക്കിലേക്കുള്ള വിജയകരമായ മാറ്റത്തിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നത് ലളിതമാക്കാനും പരമാവധിയാക്കാനും, ലയന അപ്‌ഗ്രേഡിൽ സ്റ്റേക്ക് ചെയ്ത ETH പിൻവലിക്കാനുള്ള കഴിവ് പോലുള്ള ചില പ്രതീക്ഷിച്ച സവിശേഷതകൾ ഉൾപ്പെടുത്തിയിട്ടില്ല. ഷാങ്ഹായ് അപ്‌ഗ്രേഡ് ലയനത്തെ പിന്തുടരാൻ ആസൂത്രണം ചെയ്തിരിക്കുന്നു, ഇത് സ്റ്റേക്കർമാർക്ക് പിൻവലിക്കാനുള്ള കഴിവ് പ്രാപ്‌തമാക്കും. + +[GitHub-ലെ ഷാങ്ഹായ് അപ്‌ഗ്രേഡ് പ്ലാനിംഗ് പ്രശ്‌നം](https://github.com/ethereum/pm/issues/450) അല്ലെങ്കിൽ [EF ഗവേഷണ, വികസന ബ്ലോഗ്](https://blog.ethereum.org/category/research-and-development/) വഴി വിവരങ്ങൾ അറിഞ്ഞിരിക്കുക. അറിയാൻ താൽപ്പര്യമുള്ളവർ, 2021 ഏപ്രിലിലെ ETHGlobal ഇവന്റിൽ വിറ്റാലിക് അവതരിപ്പിച്ച [ലയന ശേഷം എന്ത് സംഭവിക്കും](https://youtu.be/7ggwLccuN5s?t=101) എന്നത് സംബന്ധിച്ച് കൂടുതലൽ മനസ്സിലാക്കുക. + +### ലയനവും ഷാർഡിംഗും {#merge-and-data-sharding} + +പ്രാഥമികമായി, സ്കെയിലബിളിറ്റി പരിഹരിക്കുന്നതിന് ലയനത്തിന് മുമ്പ് ഷാർഡിംഗിൽ പ്രവർത്തിക്കാനായിരുന്നു പദ്ധതി. എന്നിരുന്നാലും, [വരി 2 സ്‌കെയിലിംഗ് സൊല്യൂഷനുകളുടെ](/layer-2/) മുന്നേറ്റത്തിൽ, പ്രൂഫ് ഓഫ് വർക്കിനെ ആദ്യം പ്രൂഫ് ഓഫ് സ്റ്റേക്കിലേക്ക് മാറ്റുന്നതിലേക്ക് മുൻഗണന മാറി. + +ഷാർഡിംഗിനുള്ള പദ്ധതികൾ അതിവേഗം വികസിച്ചുകൊണ്ടിരിക്കുന്നു, എന്നാൽ ഇടപാട് നിർവഹണം അളക്കുന്നതിനുള്ള വരി 2 സാങ്കേതികവിദ്യകളുടെ മുന്നേറ്റവും വിജയവും കണക്കിലെടുത്ത്, നെറ്റ്‌വർക്കിൽ ക്രമാതീതമായ വളർച്ച അനുവദിക്കുന്ന റോളപ്പ് കരാറുകളിൽ നിന്ന് കംപ്രസ് ചെയ്‌ത കോൾഡാറ്റ സൂക്ഷിക്കുന്നതിന്റെ ബുദ്ധിമുട്ട് ഒഴിവാക്കനുള്ള ഏറ്റവും മികച്ച മാർഗം കണ്ടെത്തുന്നതിലേക്ക് ഷാർഡിംഗ് പ്ലാനുകൾ മാറി. പ്രൂഫ് ഓഫ് സ്റ്റേക്കിലേക്ക് ആദ്യം മാറാതെ ഇത് സാധ്യമാകില്ല. + + + ഷാർഡിംഗ് + + +## കൂടുതൽ വായനയ്ക്ക് {#further-reading} + + + + diff --git a/public/content/translations/mr/dao/index.md b/public/content/translations/mr/dao/index.md new file mode 100644 index 00000000000..d5c0667b21a --- /dev/null +++ b/public/content/translations/mr/dao/index.md @@ -0,0 +1,165 @@ +--- +title: विकेंद्रीकृत स्वायत्त संगठन (DAO) +description: Ethereum वर DAO चे विहंगावलोकन +lang: mr +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: प्रस्तावावर मतदान करणाऱ्या DAO चे प्रतिनिधित्व. +summaryPoint1: केंद्रीकृत नेतृत्वाशिवाय सदस्यांच्या मालकीचे समुदाय. +summaryPoint2: इंटरनेट अनोळखी लोकांसह सहयोग करण्याचा एक सुरक्षित मार्ग. +summaryPoint3: विशिष्ट कारणासाठी निधी कमिट करण्यासाठी सुरक्षित ठिकाण. +--- + +## DAO म्हणजे काय? {#what-are-daos} + +DAO ही एक सामूहिक मालकीची, ब्लॉकचेन-शासित संस्था आहे जी सामायिक मिशनसाठी काम करते. + +DAO आम्हाला निधी किंवा ऑपरेशन्स व्यवस्थापित करण्यासाठी परोपकारी नेत्यावर विश्वास न ठेवता जगभरातील समविचारी लोकांसोबत काम करण्याची परवानगी देतात. एकही CEO नाही जो फुशारकीवर निधी खर्च करू शकेल किंवा पुस्तकांमध्ये फेरफार करू शकेल असा CFO नाही. त्याऐवजी, कोडमध्ये बेक केलेले ब्लॉकचेन-आधारित नियम संस्था कशी कार्य करते आणि निधी कसा खर्च केला जातो हे परिभाषित करतात. + +त्यांच्याकडे अंगभूत कोषागार आहेत ज्यात गटाच्या मान्यतेशिवाय प्रवेश करण्याचा अधिकार कोणालाही नाही. संस्थेतील प्रत्येकाचा आवाज आहे आणि सर्व काही पारदर्शकपणे ऑन-चेन होते हे सुनिश्चित करण्यासाठी प्रस्ताव आणि मतदानाद्वारे निर्णय नियंत्रित केले जातात. + +## आम्हाला DAO ची गरज का आहे? {#why-dao} + +निधी आणि पैशांचा समावेश असलेल्या एखाद्या व्यक्तीसह संस्था सुरू करण्यासाठी तुम्ही ज्या लोकांसह काम करत आहात त्यांच्यावर खूप विश्वास असणे आवश्यक आहे. परंतु तुम्ही ज्याच्याशी इंटरनेटवर संवाद साधला आहे अशा व्यक्तीवर विश्वास ठेवणे कठीण आहे. DAO सह तुम्हाला गटातील इतर कोणावरही विश्वास ठेवण्याची गरज नाही, फक्त DAO च्या कोडवर, जो 100% पारदर्शक आणि कोणाकडूनही पडताळण्यायोग्य आहे. + +हे जागतिक सहकार्य आणि समन्वयासाठी अनेक नवीन संधी उघडते. + +### एक तुलना {#dao-comparison} + +| DAO | पारंपारिक संघटना | +| ------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------- | +| सहसा सपाट, आणि पूर्णपणे लोकशाही. | सहसा श्रेणीबद्ध. | +| कोणतेही बदल अंमलात आणण्यासाठी सदस्यांना मतदान करणे आवश्यक आहे. | संरचनेनुसार, बदलांची मागणी एकमेव पक्षाकडून केली जाऊ शकते किंवा मतदानाची ऑफर दिली जाऊ शकते. | +| मते मोजली जातात आणि विश्वसनीय मध्यस्थाशिवाय निकाल आपोआप लागू होतो. | मतदानास परवानगी असल्यास, मतांची गणना अंतर्गत केली जाते आणि मतदानाचा निकाल स्वतः हाताळला जाणे आवश्यक आहे. | +| ऑफर केलेल्या सेवा विकेंद्रित पद्धतीने स्वयंचलितपणे हाताळल्या जातात (उदाहरणार्थ परोपकारी निधीचे वितरण). | मानवी हाताळणी, किंवा केंद्रीय नियंत्रित ऑटोमेशन आवश्यक आहे, हाताळणीसाठी प्रवण. | +| सर्व क्रियाकलाप पारदर्शक आणि पूर्णपणे सार्वजनिक आहेत. | अ‍ॅक्टिव्हिटी सामान्यत: खाजगी असते आणि लोकांपर्यंत मर्यादित असते. | + +### DAO उदाहरणे {#dao-examples} + +हे अधिक अर्थपूर्ण होण्यासाठी, तुम्ही DAO कसे वापरू शकता याची काही उदाहरणे येथे आहेत: + +- एक धर्मादाय - तुम्ही जगातील कोणाकडूनही देणगी स्वीकारू शकता आणि कोणत्या कारणासाठी निधी देऊ शकता यावर मत देऊ शकता. +- सामूहिक मालकी - तुम्ही भौतिक किंवा डिजिटल मालमत्ता खरेदी करू शकता आणि सदस्य त्यांचा वापर कसा करायचा यावर मत देऊ शकतात. +- उपक्रम आणि अनुदान - तुम्ही एक उपक्रम फंड तयार करू शकता जो गुंतवणूक भांडवल जमा करतो आणि उपक्रमांना परत मत देतो. परत केलेले पैसे नंतर DAO-सदस्यांमध्ये पुन्हा वितरित केले जाऊ शकतात. + +## DAO कसे काम करतात? {#how-daos-work} + +DAO चा कणा हा त्याचा स्मार्ट करार असतो, जो संस्थेचे नियम परिभाषित करतो आणि समूहाचा खजिना धारण करतो. एकदा करार Ethereum वर लाइव्ह झाल्यानंतर, मतदानाशिवाय कोणीही नियम बदलू शकत नाही. जर कोणी असे काहीतरी करण्याचा प्रयत्न केला ज्यामध्ये नियम आणि तर्कशास्त्राचा समावेश नाही, तो अयशस्वी होईल. आणि तिजोरीची व्याख्या स्मार्ट कॉन्ट्रॅक्टद्वारे देखील केली जाते याचा अर्थ असा आहे की गटाच्या मंजुरीशिवाय कोणीही पैसे खर्च करू शकत नाही. याचा अर्थ DAO ला केंद्रीय प्राधिकरणाची गरज नाही. त्याऐवजी, गट एकत्रितपणे निर्णय घेतो आणि जेव्हा मते पास होतात तेव्हा देयके आपोआप अधिकृत होतात. + +हे शक्य आहे कारण स्मार्ट कॉन्ट्रॅक्ट एकदा Ethereum वर लाइव्ह झाल्यावर ते छेडछाड-प्रूफ असतात. तुम्ही फक्त कोड (DAO नियम) संपादित करू शकत नाही कारण सर्व काही सार्वजनिक आहे. + + + हुशार करारांवर अधिक + + +## Ethereum आणि DAO {#ethereum-and-daos} + +अनेक कारणांमुळे DAO साठी Ethereum हा परिपूर्ण पाया आहे: + +- Ethereum चे स्वतःचे एकमत वितरित केले जाते आणि संस्थांना नेटवर्कवर विश्वास ठेवण्यासाठी पुरेसे स्थापित केले जाते. +- स्मार्ट कॉन्ट्रॅक्ट कोड लाइव्ह एकदा बदलला जाऊ शकत नाही, अगदी त्याच्या मालकांद्वारे. हे DAO ला प्रोग्राम केलेल्या नियमांनुसार चालवण्यास अनुमती देते. +- स्मार्ट कॉन्ट्रॅक्ट निधी पाठवू/प्राप्त करू शकतात. याशिवाय ग्रुप फंड व्यवस्थापित करण्यासाठी तुम्हाला एका विश्वासू मध्यस्थीची आवश्यकता असेल. +- Ethereum समुदायाने स्पर्धात्मकतेपेक्षा अधिक सहयोगी असल्याचे सिद्ध केले आहे, ज्यामुळे सर्वोत्तम पद्धती आणि समर्थन प्रणाली लवकर उदयास येऊ शकतात. + +## DAO शासन {#dao-governance} + +DAO ला चालवताना अनेक बाबी विचारात घेतल्या जातात, जसे की मतदान आणि प्रस्ताव कसे कार्य करतात. + +### शिष्टमंडळ {#governance-delegation} + +प्रतिनिधी मंडळ हे प्रातिनिधिक लोकशाहीच्या DAO आवृत्तीसारखे आहे. टोकन धारक स्वतःला नामनिर्देशित करणार्‍या वापरकर्त्यांना मते देतात आणि प्रोटोकॉलचे स्टीवर्डिंग आणि माहिती ठेवण्यासाठी वचनबद्ध असतात. + +#### एक प्रसिद्ध उदाहरण {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) – ENS धारक त्यांचे प्रतिनिधित्व करण्यासाठी गुंतलेल्या समुदाय सदस्यांना त्यांची मते देऊ शकतात. + +### स्वयंचलित व्यवहार शासन {#governance-example} + +अनेक DAO मध्ये, सदस्यांच्या कोरमने होकारार्थी मते दिल्यास व्यवहार आपोआप अंमलात येतील. + +#### एक प्रसिद्ध उदाहरण {#governance-example} + +[नावा](https://nouns.wtf) – नाव DAO मध्ये, मतांचा कोरम पूर्ण झाल्यास आणि बहुसंख्य मते होकारार्थी असल्यास व्यवहार आपोआप अंमलात आणला जातो, जोपर्यंत त्यावर व्हेटो केला जात नाही. संस्थापक. + +### मल्टीसिग गव्हर्नन्स {#governance-example} + +DAO मध्ये हजारो मतदान सदस्य असू शकतात, तरीही निधी 5-20 सक्रिय समुदाय सदस्यांद्वारे सामायिक केलेल्या वॉलेटमध्ये राहू शकतो जे विश्वासू आणि सहसा डॉक्स केलेले असतात (समुदायाला ज्ञात सार्वजनिक ओळख). मतदानानंतर, मल्टीसिग स्वाक्षरी करणारे समुदायाच्या इच्छेची अंमलबजावणी करतात. + +## DAO नियम {#dao-laws} + +1977 मध्ये, वायोमिंगने LLC चा शोध लावला, जे उद्योजकांचे संरक्षण करते आणि त्यांचे दायित्व मर्यादित करते. अगदी अलीकडे, त्यांनी DAO कायद्याचा पुढाकार घेतला जो DAO साठी कायदेशीर स्थिती स्थापित करतो. सध्या वायोमिंग, व्हरमाँट आणि व्हर्जिन बेटांवर काही स्वरूपात DAO कायदे आहेत. + +### एक प्रसिद्ध उदाहरण {#law-example} + +[CityDAO](https://citydao.io) – CityDAO ने यलोस्टोन नॅशनल पार्कजवळ 40 एकर जमीन खरेदी करण्यासाठी वायोमिंगच्या DAO कायद्याचा वापर केला. + +## DAO सदस्यत्व {#dao-membership} + +DAO सदस्यत्वासाठी विविध मॉडेल्स आहेत. सदस्यत्व मतदान कसे कार्य करते आणि DAO चे इतर महत्त्वाचे भाग ठरवू शकते. + +### टोकन-आधारित सदस्यत्व {#token-based-membership} + +वापरलेल्या टोकनवर अवलंबून, सहसा पूर्णपणे परवानगी नसलेले. बहुतेक या गव्हर्नन्स टोकन्सचा विकेंद्रीकृत एक्सचेंजवर परवानगीशिवाय व्यापार केला जाऊ शकतो. इतरांना तरलता किंवा इतर काही ‘प्रूफ-ऑफ-वर्क’ प्रदान करून कमावले पाहिजे. कोणत्याही प्रकारे, फक्त टोकन धारण केल्याने मतदानासाठी प्रवेश मिळतो. + +_सामान्यत: व्यापक विकेंद्रित प्रोटोकॉल आणि/किंवा टोकन स्वतः नियंत्रित करण्यासाठी वापरले जाते._ + +#### एक प्रसिद्ध उदाहरण {#token-example} + +[MakerDAO](https://makerdao.com) – MakerDAO चे टोकन MKR विकेंद्रित एक्सचेंजेसवर मोठ्या प्रमाणावर उपलब्ध आहे आणि कोणीही मेकर प्रोटोकॉलच्या भविष्यावर मतदानाचा अधिकार विकत घेऊ शकतो. + +### शेअर-आधारित सदस्यत्व {#share-based-membership} + +शेअर-आधारित DAO ला अधिक परवानगी आहे, परंतु तरीही ते खुले आहेत. कोणतेही संभाव्य सदस्य DAO मध्ये सामील होण्यासाठी प्रस्ताव सादर करू शकतात, सामान्यतः टोकन किंवा कामाच्या स्वरूपात काही मूल्याची श्रद्धांजली देतात. शेअर्स थेट मतदानाची शक्ती आणि मालकी दर्शवतात. सभासद खजिन्यातील त्यांच्या प्रमाणानुसार वाटा घेऊन कधीही बाहेर पडू शकतात. + +_सामान्यतः धर्मादाय संस्था, कामगार समूह आणि गुंतवणूक क्लब यासारख्या अधिक जवळच्या, मानव-केंद्रित संस्थांसाठी वापरले जाते. प्रोटोकॉल आणि टोकन्स देखील नियंत्रित करू शकतात._ + +#### एक प्रसिद्ध उदाहरण {#share-example} + +[MolochDAO](http://molochdao.com/) – MolochDAO Ethereum प्रकल्पांना निधी देण्यावर लक्ष केंद्रित करते. त्यांना सदस्यत्वासाठी प्रस्तावाची आवश्यकता आहे जेणेकरुन संभाव्य अनुदान देणाऱ्यांबद्दल माहितीपूर्ण निर्णय घेण्यासाठी तुमच्याकडे आवश्यक कौशल्य आणि भांडवल आहे की नाही हे गट मूल्यांकन करू शकेल. तुम्ही फक्त खुल्या बाजारात DAO मध्ये प्रवेश खरेदी करू शकत नाही. + +### प्रतिष्ठा-आधारित सदस्यत्व {#reputation-based-membership} + +प्रतिष्ठा सहभागाचा पुरावा दर्शवते आणि DAO मध्ये मतदानाची शक्ती देते. प्रतिक किंवा शेअर-आधारित सदस्यत्वाच्या विपरीत, प्रतिष्ठा-आधारित DAO योगदानकर्त्यांना मालकी हस्तांतरित करत नाहीत. प्रतिष्ठा विकत घेतली जाऊ शकत नाही, हस्तांतरित केली जाऊ शकत नाही किंवा नियुक्त केली जाऊ शकत नाही; DAO सदस्यांनी सहभागातून प्रतिष्ठा मिळवली पाहिजे. ऑन-चेन मतदान अनुज्ञेय आहे आणि संभाव्य सदस्य मुक्तपणे DAO मध्ये सामील होण्यासाठी प्रस्ताव सबमिट करू शकतात आणि त्यांच्या योगदानाच्या बदल्यात प्रतिष्ठा आणि टोकन प्राप्त करण्याची विनंती करू शकतात. + +_सामान्यत: प्रोटोकॉल आणि dapps च्या विकेंद्रित विकासासाठी आणि प्रशासनासाठी वापरला जातो, परंतु धर्मादाय संस्था, कामगार समूह, गुंतवणूक क्लब इ. सारख्या विविध संस्थांसाठी देखील योग्य आहे._ + +#### एक प्रसिद्ध उदाहरण {#reputation-example} + +[DXdao](https://DXdao.eth.link) – DXdao ही एक जागतिक सार्वभौम सामूहिक इमारत आहे आणि 2019 पासून विकेंद्रित प्रोटोकॉल आणि अनुप्रयोग नियंत्रित करते. हे निधीचे समन्वय आणि व्यवस्थापन करण्यासाठी प्रतिष्ठा-आधारित प्रशासन आणि होलोग्राफिक सहमतीचा लाभ घेते, याचा अर्थ कोणीही त्याच्या भविष्यावर प्रभाव टाकण्याचा मार्ग विकत घेऊ शकत नाही. + +## DAO मध्ये सामील व्हा / सुरू करा {#join-start-a-dao} + +### Join a DAO {#join-a-dao} + +- [Ethereum समुदाय DAO](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [DAOHaus ची DAO ची यादी](https://app.daohaus.club/explore) +- [DAO ची Tally.xyz यादी](https://www.tally.xyz) + +### DAO सुरू करा {#start-a-dao} + +- [DAOHaus सह DAO ला बोलावा](https://app.daohaus.club/summon) +- [Tally सह गव्हर्नर DAO सुरू करा](https://www.tally.xyz/add-a-dao) +- [Aragon-सक्षम DAO तयार करा](https://aragon.org/product) +- [वसाहत सुरू करा](https://colony.io/) +- [DAOstack च्या होलोग्राफिक एकमताने DAO तयार करा](https://alchemy.daostack.io/daos/create) + +## Further reading {#further-reading} + +### DAO लेख {#dao-articles} + +- [DAO म्हणजे काय?](https://aragon.org/dao) – [Aragon](https://aragon.org/) +- [DAO पुस्तिका](https://daohandbook.xyz) +- [हाउस ऑफ DAO](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [मेटागेम](https://wiki.metagame.wtf/) +- [DAO म्हणजे काय आणि ते कशासाठी आहे?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) +- [DAO-सक्षम डिजिटल समुदाय कसा सुरू करावा](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) +- [DAO म्हणजे काय?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) +- [होलोग्राफिक कॉन्सेन्सस म्हणजे काय?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) +- [DAO कॉर्पोरेशन नाहीत: जेथे विटालिकद्वारे स्वायत्त संस्थांमध्ये विकेंद्रीकरण महत्त्वाचे आहे](https://vitalik.ca/general/2022/09/20/daos.html) +- [DAO, DAC, DA आणि बरेच काही: एक अपूर्ण शब्दावली मार्गदर्शक](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Ethereum ब्लॉग](https://blog.ethereum.org) + +### Videos {#videos} + +- [क्रिप्टोमध्ये DAO म्हणजे काय?](https://youtu.be/KHm0uUPqmVE) +- [DAO शहर तयार करू शकतो का?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/public/content/translations/mr/decentralized-identity/index.md b/public/content/translations/mr/decentralized-identity/index.md new file mode 100644 index 00000000000..98e6792fe95 --- /dev/null +++ b/public/content/translations/mr/decentralized-identity/index.md @@ -0,0 +1,185 @@ +--- +title: विकेंद्रित ओळख +description: विकेंद्रित ओळख म्हणजे काय आणि ते का महत्त्वाचे आहे? +lang: mr +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: /eth-gif-cat.png +summaryPoint1: पारंपारिक ओळख प्रणालींनी आपल्या अभिज्ञापकांचे जारी करणे, देखभाल आणि नियंत्रण केंद्रीकृत केले आहे. +summaryPoint2: विकेंद्रित ओळख केंद्रीकृत तृतीय पक्षावरील अवलंबित्व काढून टाकते. +summaryPoint3: क्रिप्टोचे आभार, वापरकर्त्यांकडे आता पुन्हा एकदा त्यांचे स्वतःचे अभिज्ञापक आणि साक्ष्यीकरण जारी करण्यासाठी, धरून ठेवण्यासाठी आणि नियंत्रित करण्यासाठी साधने आहेत. +--- + +ओळख आज तुमच्या जीवनातील अक्षरशः प्रत्येक पैलूवर आधारित आहे. ऑनलाइन सेवा वापरणे, बँक खाते उघडणे, निवडणुकीत मतदान करणे, मालमत्ता खरेदी करणे, रोजगार सुरक्षित करणे—या सर्व गोष्टींसाठी तुमची ओळख सिद्ध करणे आवश्यक आहे. + +तथापि, पारंपारिक ओळख व्यवस्थापन प्रणाली दीर्घकाळापासून केंद्रीकृत मध्यस्थांवर अवलंबून आहेत जे तुमचे अभिज्ञापक आणि [प्रमाणीकरण](#what-are-attestations) जारी करतात, ठेवतात आणि नियंत्रित करतात. याचा अर्थ तुम्ही तुमची ओळख-संबंधित माहिती नियंत्रित करू शकत नाही किंवा वैयक्तिकरित्या ओळखण्यायोग्य माहिती (PII) मध्ये कोणाचा प्रवेश आहे आणि या पक्षांना किती प्रवेश आहे हे तुम्ही ठरवू शकत नाही. + +या समस्यांचे निराकरण करण्यासाठी, आम्ही Ethereum सारख्या सार्वजनिक ब्लॉकचेनवर विकेंद्रित ओळख प्रणाली तयार केली आहे. विकेंद्रित ओळख व्यक्तींना त्यांची ओळख-संबंधित माहिती व्यवस्थापित करण्यास अनुमती देते. विकेंद्रित ओळख समाधानांसह, _आपण_ आयडेंटिफायर तयार करू शकता आणि सेवा प्रदाते किंवा सरकार यांसारख्या केंद्रीय प्राधिकरणांवर विसंबून न राहता तुमच्या साक्ष्यांवर दावा करू शकता. + +## ओळख म्हणजे काय? {#what-is-identity} + +ओळख म्हणजे एखाद्या व्यक्तीची स्वतःची भावना, अद्वितीय वैशिष्ट्यांद्वारे परिभाषित. ओळख म्हणजे एक _व्यक्ती_, म्हणजे, एक विशिष्ट मानवी अस्तित्व होय. ओळख इतर गैर-मानवी घटकांना देखील संदर्भित करू शकते, जसे की संस्था किंवा प्राधिकरण. + +## अभिज्ञापक काय आहेत? {#what-are-identifiers} + +आयडेंटिफायर हा माहितीचा एक तुकडा आहे जो विशिष्ट ओळख किंवा ओळख दर्शवण्यासाठी सूचक म्हणून कार्य करतो. सामान्य अभिज्ञापकांमध्ये हे समाविष्ट आहे: + +- नाव +- सामाजिक सुरक्षा क्रमांक/कर ID क्रमांक +- मोबाईल नंबर +- जन्मतारीख आणि ठिकाण +- डिजिटल ओळख ओळखपत्रे, उदा., ईमेल पत्ते, वापरकर्तानावे, अवतार + +आयडेंटिफायरची ही पारंपारिक उदाहरणे केंद्रीय संस्थांद्वारे जारी केली जातात, ठेवली जातात आणि नियंत्रित केली जातात. तुमचे नाव बदलण्यासाठी तुम्हाला तुमच्या सरकारकडून किंवा तुमचे हँडल बदलण्यासाठी सोशल मीडिया प्लॅटफॉर्मची परवानगी आवश्यक आहे. + +## प्रमाणीकरणे म्हणजे काय? {#what-are-attestations} + +प्रमाणीकरण म्हणजे एका घटकाने दुसर्‍या संस्थेबद्दल केलेला दावा. तुम्ही युनायटेड स्टेट्समध्ये रहात असल्यास, मोटार वाहन विभाग (एक संस्था) द्वारे तुम्हाला जारी केलेला चालक परवाना तुम्हाला (दुसऱ्या संस्थेला) कायदेशीररित्या कार चालवण्याची परवानगी आहे याची साक्ष देतो. + +साक्षांकन ओळखकर्त्यांपेक्षा भिन्न आहेत. एखाद्या प्रमाणिकरणामध्ये विशिष्ट ओळखीचा संदर्भ देण्यासाठी अभिज्ञापक _असतात_ आणि या ओळखीशी संबंधित विशेषताबद्दल दावा करते. त्यामुळे, तुमच्या ड्रायव्हिंग लायसन्समध्ये आयडेंटिफायर आहेत (नाव, जन्मतारीख, पत्ता) पण ते तुमच्या वाहन चालवण्याच्या कायदेशीर अधिकाराचे प्रमाणीकरण देखील आहे. + +### विकेंद्रीकृत अभिज्ञापक काय आहेत? {#what-are-decentralized-identifiers} + +तुमचे कायदेशीर नाव किंवा ईमेल पत्ता यांसारखे पारंपारिक अभिज्ञापक तृतीय पक्षांवर-सरकार आणि ईमेल प्रदात्यांवर अवलंबून असतात. विकेंद्रित अभिज्ञापक (DID) भिन्न आहेत - ते कोणत्याही केंद्रीय घटकाद्वारे जारी, व्यवस्थापित किंवा नियंत्रित केले जात नाहीत. + +विकेंद्रित अभिज्ञापक जारी केले जातात, आयोजित केले जातात आणि व्यक्तीद्वारे नियंत्रित केले जातात. [Ethereum खाते](/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) व्युत्पन्न करते. वापरकर्ता ओळख प्रमाणित करण्यासाठी आणि डिजिटल मालमत्तेची मालकी सिद्ध करण्यासाठी ब्लॉकचेन नेटवर्कमध्ये सार्वजनिक-की क्रिप्टोग्राफी वापरली जाते. + +काही विकेंद्रीकृत अभिज्ञापक, जसे की Ethereum खाते, सार्वजनिक आणि खाजगी की असतात. सार्वजनिक की खात्याच्या नियंत्रकाला ओळखते, तर खाजगी की या खात्यासाठी संदेश साइन आणि डिक्रिप्ट करू शकतात. PKI सर्व दाव्यांची पडताळणी करण्यासाठी [क्रिप्टोग्राफिक स्वाक्षरी](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 संग्रहित केल्यामुळे, कोणीही Ethereum वर जारीकर्त्याच्या DID ची क्रॉस-तपासणी करून अॅटेस्टेशनची वैधता सत्यापित करू शकतो. मूलत:, Ethereum ब्लॉकचेन जागतिक निर्देशिकेप्रमाणे कार्य करते जे विशिष्ट घटकांशी संबंधित DID चे सत्यापन सक्षम करते. + +विकेंद्रीकृत अभिज्ञापक हे प्रमाणीकरण स्वयं-नियंत्रित आणि सत्यापित करण्यायोग्य असण्याचे कारण आहेत. जरी जारीकर्ता यापुढे अस्तित्वात नसला तरीही, धारकाकडे नेहमी प्रमाणीकरणाच्या मूळ आणि वैधतेचा पुरावा असतो. + +विकेंद्रित ओळखीद्वारे वैयक्तिक माहितीच्या गोपनीयतेचे संरक्षण करण्यासाठी विकेंद्रीकृत अभिज्ञापक देखील महत्त्वपूर्ण आहेत. उदाहरणार्थ, एखाद्या व्यक्तीने साक्षांकनाचा पुरावा (ड्रायव्हिंग लायसन्स) सबमिट केल्यास, पडताळणी करणाऱ्या पक्षाला पुराव्यातील माहितीची वैधता तपासण्याची आवश्यकता नाही. त्याऐवजी, पडताळकाला पुरावा वैध आहे की नाही हे निर्धारित करण्यासाठी प्रमाणीकरणाची सत्यता आणि जारी करणाऱ्या संस्थेच्या ओळखीची क्रिप्टोग्राफिक हमी आवश्यक असते. + +## विकेंद्रित ओळख मध्ये प्रमाणीकरणाचे प्रकार {#types-of-attestations-in-decentralized-identity} + +Ethereum-आधारित ओळख इकोसिस्टममध्ये प्रमाणीकरण माहिती कशी संग्रहित आणि पुनर्प्राप्त केली जाते हे पारंपारिक ओळख व्यवस्थापनापेक्षा वेगळे आहे. विकेंद्रित ओळख प्रणालींमध्ये साक्ष्यीकरण जारी करणे, संचयित करणे आणि सत्यापित करणे यासाठी विविध दृष्टिकोनांचे विहंगावलोकन येथे आहे: + +### ऑफ-चेन प्रमाणपत्रे {#off-chain-attestations} + +ऑन-चेन साक्ष्यीकरण संचयित करण्याबाबत एक चिंतेची बाब म्हणजे त्यामध्ये व्यक्ती खाजगी ठेवू इच्छित असलेली माहिती असू शकते. Ethereum ब्लॉकचेनच्या सार्वजनिक स्वरूपामुळे अशी साक्ष्यीकरणे संग्रहित करणे अनाकर्षक बनते. + +डिजिटल वॉलेटमध्ये ऑफ-चेन वापरकर्त्यांद्वारे साक्षांकन जारी करणे हा उपाय आहे, परंतु जारीकर्त्याच्या DID ऑन-चेनमध्ये संग्रहित आहे. ही साक्षांकने [JSON वेब टोकन](https://en.wikipedia.org/wiki/JSON_Web_Token) म्हणून एन्कोड केलेली आहेत आणि त्यात जारीकर्त्याची डिजिटल स्वाक्षरी असते—ज्यामुळे ऑफ-चेन दाव्यांची सहज पडताळणी करता येते. + +ऑफ-चेन साक्ष्यीकरण स्पष्ट करण्यासाठी येथे एक काल्पनिक परिस्थिती आहे: + +1. विद्यापीठ (जारीकर्ता) एक प्रमाणीकरण (डिजिटल शैक्षणिक प्रमाणपत्र) व्युत्पन्न करते, त्याच्या की सह स्वाक्षरी करते आणि बॉब (ओळख मालक) यांना जारी करते. + +2. बॉब नोकरीसाठी अर्ज करतो आणि त्याला त्याची शैक्षणिक पात्रता नियोक्त्याला सिद्ध करायची आहे, म्हणून तो त्याच्या मोबाइल वॉलेटमधून साक्षांकन शेअर करतो. कंपनी (पडताळणीकर्ता) नंतर जारीकर्त्याचा DID (म्हणजे, Ethereum वरील सार्वजनिक की) तपासून साक्षांकनाच्या वैधतेची पुष्टी करू शकते. + +### सतत प्रवेशासह ऑफ-चेन साक्ष्यीकरण {#offchain-attestations-with-persistent-access} + +या व्यवस्थेअंतर्गत साक्ष्यीकरणे JSON फायलींमध्ये रूपांतरित केली जातात आणि ऑफ-चेन संग्रहित केली जातात (आदर्शपणे [विकेंद्रित क्लाउड स्टोरेज](/developers/docs/storage/) प्लॅटफॉर्मवर, जसे की IPFS किंवा Swarm). तथापि, JSON फाइलचा [हॅश](/glossary/#hash) ऑन-चेन संग्रहित केला जातो आणि ऑन-चेन रेजिस्ट्रीद्वारे DID शी लिंक केला जातो. संबंधित DID एकतर प्रमाणीकरण जारीकर्ता किंवा प्राप्तकर्त्याचा असू शकतो. + +हा दृष्टिकोन दाव्यांची माहिती एनक्रिप्टेड आणि सत्यापित करण्यायोग्य ठेवताना, ब्लॉकचेन-आधारित चिकाटी मिळविण्यासाठी साक्ष्यीकरणांना सक्षम करतो. हे निवडक प्रकटीकरणास देखील अनुमती देते कारण खाजगी की धारक माहिती डिक्रिप्ट करू शकतो. + +### ऑन-चेन प्रमाणपत्रे {#onchain-attestations} + +Ethereum ब्लॉकचेनवरील [स्मार्ट कॉन्ट्रॅक्ट](/developers/docs/smart-contracts/) मध्ये ऑन-चेन साक्ष्यीकरणे आयोजित केली जातात. स्मार्ट कॉन्ट्रॅक्ट (रेजिस्ट्री म्हणून काम करणे) संबंधित ऑन-चेन विकेंद्रीकृत अभिज्ञापक (सार्वजनिक की) चे प्रमाणीकरण मॅप करेल. + +ऑन-चेन साक्ष्यीकरण व्यवहारात कसे कार्य करू शकते हे दर्शवण्यासाठी येथे एक उदाहरण आहे: + +1. एक कंपनी (XYZ कॉर्प) स्मार्ट कराराचा वापर करून मालकीचे शेअर्स विकण्याची योजना आखत आहे परंतु केवळ पार्श्वभूमी तपासणी पूर्ण केलेल्या खरेदीदारांनाच हवे आहे. + +2. XYZ Corp कडे Ethereum वर ऑन-चेन अटेस्टेशन जारी करण्यासाठी पार्श्वभूमी तपासणी करणारी कंपनी असू शकते. हे प्रमाणीकरण प्रमाणित करते की एखाद्या व्यक्तीने कोणतीही वैयक्तिक माहिती उघड न करता पार्श्वभूमी तपासणी उत्तीर्ण केली आहे. + +3. समभाग विक्री करणारे स्मार्ट कॉन्ट्रॅक्ट स्क्रीन केलेल्या खरेदीदारांच्या ओळखीसाठी रेजिस्ट्री करार तपासू शकतात, ज्यामुळे कोणाला शेअर्स खरेदी करण्याची परवानगी आहे किंवा नाही हे स्मार्ट कॉन्ट्रॅक्टला निर्धारित करणे शक्य होते. + +### सोलबाउंड टोकन आणि ओळख {#soulbound} + +[सोलबाउंड टोकन](https://vitalik.ca/general/2022/01/26/soulbound.html) (नॉन-हस्तांतरणीय NFT) विशिष्ट वॉलेटसाठी अद्वितीय माहिती गोळा करण्यासाठी वापरली जाऊ शकतात. हे प्रभावीपणे विशिष्ट Ethereum पत्त्याशी बांधील एक अनन्य ऑन-चेन ओळख तयार करते ज्यामध्ये उपलब्धी दर्शविणारे टोकन समाविष्ट असू शकतात (उदा. काही विशिष्ट ऑनलाइन कोर्स पूर्ण करणे किंवा गेममध्ये थ्रेशोल्ड स्कोअर उत्तीर्ण करणे) किंवा समुदाय सहभाग. + +## विकेंद्रित ओळखीचे फायदे {#benefits-of-decentralized-identity} + +1. विकेंद्रित ओळख माहिती ओळखण्याचे वैयक्तिक नियंत्रण वाढवते. विकेंद्रित अभिज्ञापक आणि प्रमाणीकरण केंद्रीकृत प्राधिकरणे आणि तृतीय-पक्ष सेवांवर अवलंबून न राहता सत्यापित केले जाऊ शकतात. + +2. विकेंद्रित ओळख समाधाने वापरकर्ता ओळख सत्यापित आणि व्यवस्थापित करण्यासाठी विश्वासहीन, अखंड आणि गोपनीयता-संरक्षण पद्धती सुलभ करतात. + +3. विकेंद्रित ओळख ब्लॉकचेन तंत्रज्ञानाचा उपयोग करते, जे विविध पक्षांमध्ये विश्वास निर्माण करते आणि साक्ष्यीकरणांची वैधता सिद्ध करण्यासाठी क्रिप्टोग्राफिक हमी प्रदान करते. + +4. विकेंद्रित ओळख ओळख डेटा पोर्टेबल बनवते. वापरकर्ते मोबाइल वॉलेटमध्ये साक्ष्यीकरणे आणि अभिज्ञापक संग्रहित करतात आणि त्यांच्या आवडीच्या कोणत्याही पक्षासह सामायिक करू शकतात. विकेंद्रीकृत अभिज्ञापक आणि प्रमाणीकरण जारी करणार्‍या संस्थेच्या डेटाबेसमध्ये लॉक केलेले नाहीत. + +5. विकेंद्रित ओळख उदयोन्मुख शून्य-ज्ञान तंत्रज्ञानासह चांगले कार्य करते जे व्यक्तींना ती गोष्ट काय आहे हे उघड न करता स्वतःची मालकी किंवा काहीतरी केले आहे हे सिद्ध करण्यास सक्षम करेल. मतदानासारख्या अनुप्रयोगांसाठी विश्वास आणि गोपनीयता एकत्र करण्याचा हा एक शक्तिशाली मार्ग बनू शकतो. + +6. विकेंद्रीकृत ओळख सिबिल-विरोधी यंत्रणांना ओळखण्यासाठी सक्षम करते जेव्हा एक व्यक्ती अनेक मानव असल्याचे भासवत असते तेव्हा एखाद्या प्रणालीशी गेम किंवा स्पॅम करतात. + +## विकेंद्रित ओळख वापर प्रकरणे {#decentralized-identity-use-cases} + +विकेंद्रित ओळख अनेक संभाव्य वापर-केस आहेत: + +### 1. युनिव्हर्सल लॉगिन {#universal-dapp-logins} + +विकेंद्रीकृत ओळख पासवर्ड-आधारित लॉगिन [विकेंद्रित प्रमाणीकरण](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/) सह बदलण्यात मदत करू शकते. सेवा प्रदाते वापरकर्त्यांना साक्ष्यीकरण देऊ शकतात, जे Ethereum वॉलेटमध्ये संग्रहित केले जाऊ शकतात. धारकास ऑनलाइन समुदायामध्ये प्रवेश प्रदान करणारे एक उदाहरण प्रमाणीकरण हे [NFT](/nft/) असेल. + +[Ethereum सह साइन-इन](https://login.xyz/) फंक्शन नंतर सर्व्हरला वापरकर्त्याच्या Ethereum खात्याची पुष्टी करण्यास आणि त्यांच्या खात्याच्या पत्त्यावरून आवश्यक प्रमाणीकरण आणण्यास सक्षम करेल. याचा अर्थ वापरकर्ते लांब पासवर्ड लक्षात ठेवल्याशिवाय प्लॅटफॉर्म आणि वेबसाइट्समध्ये प्रवेश करू शकतात आणि वापरकर्त्यांसाठी ऑनलाइन अनुभव सुधारतात. + +### 2. KYC प्रमाणीकरण {#kyc-authentication} + +अनेक ऑनलाइन सेवा वापरण्यासाठी व्यक्तींना ड्रायव्हिंग लायसन्स किंवा राष्ट्रीय पासपोर्ट यांसारखी साक्षांकन आणि क्रेडेन्शियल प्रदान करणे आवश्यक आहे. परंतु हा दृष्टीकोन समस्याप्रधान आहे कारण खाजगी वापरकर्ता माहितीशी तडजोड केली जाऊ शकते आणि सेवा प्रदाते प्रमाणीकरणाची सत्यता सत्यापित करू शकत नाहीत. + +विकेंद्रित ओळख कंपन्यांना पारंपारिक [तुमचा-ग्राहक जाणून घ्या (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) प्रक्रिया वगळण्याची आणि पडताळणीयोग्य क्रेडेन्शियल्सद्वारे वापरकर्ता ओळख प्रमाणित करण्यास अनुमती देते. हे ओळख व्यवस्थापनाची किंमत कमी करते आणि बनावट कागदपत्रांचा वापर प्रतिबंधित करते. + +### 3. मतदान आणि ऑनलाइन समुदाय {#voting-and-online-communities} + +ऑनलाइन मतदान आणि सोशल मीडिया विकेंद्रित ओळखीसाठी दोन नवीन अनुप्रयोग आहेत. ऑनलाइन मतदान योजना हेराफेरीसाठी संवेदनाक्षम असतात, विशेषतः जर दुर्भावनापूर्ण अभिनेते मतदान करण्यासाठी खोटी ओळख निर्माण करतात. व्यक्तींना ऑन-चेन साक्षांकन सादर करण्यास सांगणे ऑनलाइन मतदान प्रक्रियेची अखंडता सुधारू शकते. + +विकेंद्रित ओळख ऑनलाइन समुदाय तयार करण्यात मदत करू शकते जे बनावट खात्यांपासून मुक्त आहेत. उदाहरणार्थ, प्रत्येक वापरकर्त्याला ऑन-चेन ओळख प्रणाली वापरून त्यांची ओळख प्रमाणित करावी लागेल, जसे की Ethereum नेम सेवा, बॉट्सची शक्यता कमी करते. + +### 4. अँटी-सिबिल संरक्षण {#sybil-protection} + +सिबिल हल्ल्यांचा संदर्भ आहे की वैयक्तिक मानव आपला प्रभाव वाढवण्यासाठी एकापेक्षा जास्त लोक आहेत असा विचार करून प्रणालीला फसवतात. [अनुदान देणारे अनुप्रयोग](https://gitcoin.co/grants/) जे [वापरतात चतुर्भुज मतदान](https://www.radicalxchange.org/concepts/plural-voting/) या सिबिल हल्ल्यांसाठी असुरक्षित आहेत कारण जेव्हा अधिक लोक त्यास मतदान करतात तेव्हा अनुदानाचे मूल्य वाढते, वापरकर्त्यांना त्यांचे योगदान अनेक ओळखींमध्ये विभाजित करण्यास प्रोत्साहन देते. विकेंद्रीकृत ओळख प्रत्येक सहभागीवर भार वाढवून ते खरोखरच मानव आहेत हे सिद्ध करण्यासाठी हे रोखण्यात मदत करतात, जरी अनेकदा विशिष्ट खाजगी माहिती उघड न करता. + +## विकेंद्रित ओळख वापरा {#use-decentralized-identity} + +विकेंद्रित ओळख सोल्यूशन्सचा पाया म्हणून Ethereum वापरणारे अनेक महत्त्वाकांक्षी प्रकल्प आहेत: + +- **[Ethereum नेम सेवा (ENS)](https://ens.domains/)** - _ऑन-चेन, मशीन-वाचनीय अभिज्ञापकांसाठी विकेंद्रित नामकरण प्रणाली, जसे की, Ethereum वॉलेट पत्ते, सामग्री हॅश आणि मेटाडेटा._ +- **[SpruceID](https://www.spruceid.com/)** - _एक विकेंद्रित ओळख प्रकल्प जे वापरकर्त्यांना तृतीय-पक्ष सेवांवर अवलंबून न राहता Ethereum खाती आणि ENS प्रोफाइलसह डिजिटल ओळख नियंत्रित करण्यास अनुमती देते._ +- **[Ethereum प्रमाणीकरण सेवा (EAS)](https://attest.sh/)** - _कोणत्याही गोष्टीबद्दल ऑन-चेन किंवा ऑफ-चेन साक्ष्यीकरण करण्यासाठी विकेंद्रीकृत लेजर/प्रोटोकॉल._ +- **[मानवतेचा पुरावा](https://www.proofofhumanity.id)** - _पुरावा मानवता (किंवा PoH) ही Ethereum वर तयार केलेली सामाजिक ओळख पडताळणी प्रणाली आहे._ +- **[BrightID](https://www.brightid.org/)** - _एक विकेंद्रित, ओपन-सोर्स सोशल आयडेंटिटी नेटवर्क सामाजिक आलेख निर्मिती आणि विश्लेषणाद्वारे ओळख पडताळणीमध्ये सुधारणा करू इच्छित आहे._ +- **[प्रुफ-ऑफ-पर्सनहुड पासपोर्ट](https://proofofpersonhood.com/)** - _विकेंद्रित डिजिटल ओळख एकत्रित करणारा._ + +## Further reading {#further-reading} + +### लेख {#articles} + +- [ब्लॉकचेन वापर प्रकरणे: डिजिटल आयडेंटिटीमध्ये ब्लॉकचेन](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ +- [Ethereum ERC725 म्हणजे काय? ब्लॉकचेनवर स्व-सार्वभौम ओळख व्यवस्थापन](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _सॅम टाउन_ +- [ब्लॉकचेन डिजिटल आयडेंटिटीची समस्या कशी सोडवू शकते](https://time.com/6142810/proof-of-humanity/) — _अँड्र्यू आर. चाऊ_ +- [विकेंद्रित ओळख म्हणजे काय आणि आपण काळजी का घ्यावी?](https://web3.hashnode.com/what-is-decentralized-identity) — _इमॅन्युएल अवोसिका_ + +### Videos {#videos} + +- [विकेंद्रित ओळख (बोनस लाइव्हस्ट्रीम सत्र)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _एक उत्तम एंड्रियास अँटोनोपोलस द्वारे विकेंद्रित ओळखीवरील स्पष्टीकरण व्हिडिओ_ +- [सिरेमिक, IDX, प्रतिक्रिया आणि 3ID कनेक्टसह Ethereum आणि विकेंद्रीकृत ओळख सह साइन इन करा](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _Nader Dabit द्वारे Ethereum वॉलेट वापरून वापरकर्त्याचे प्रोफाइल तयार करण्यासाठी, वाचण्यासाठी आणि अपडेट करण्यासाठी ओळख व्यवस्थापन प्रणाली तयार करण्यावर YouTube ट्यूटोरियल_ +- [BrightID - Ethereum वर विकेंद्रित ओळख](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _बँकलेस पॉडकास्ट भाग BrightID वर चर्चा करतो, a Ethereum साठी विकेंद्रित ओळख समाधान_ +- [द ऑफ चेन इंटरनेट: विकेंद्रीकृत ओळख आणि पडताळणीयोग्य क्रेडेन्शियल्स](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — एव्हिन मॅकमुलेन द्वारे EthDenver 2022 सादरीकरण + +### समुदाय {#communities} + +- [ERC-725 GitHub वर अलायन्स](https://github.com/erc725alliance) — _Ethereum ब्लॉकचेन वर ओळख व्यवस्थापित करण्यासाठी ERC725 मानकांचे समर्थक_ +- [SpruceID Discord सर्व्हर](https://discord.com/invite/Sf9tSFzrnt) — _Ethereum सह साइन-इनवर काम करणाऱ्या उत्साही आणि विकासकांसाठी समुदाय_ +- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _अनुप्रयोगांसाठी पडताळणी करण्यायोग्य डेटासाठी फ्रेमवर्क तयार करण्यात योगदान देणारा विकासकांचा समुदाय_ diff --git a/public/content/translations/mr/defi/index.md b/public/content/translations/mr/defi/index.md new file mode 100644 index 00000000000..464b9f8e289 --- /dev/null +++ b/public/content/translations/mr/defi/index.md @@ -0,0 +1,352 @@ +--- +title: विकेंद्रीत अर्थव्यवस्था (DeFi) +description: Ethereum वर DeFi चे विहंगावलोकन +lang: mr +template: use-cases +emoji: ":money_with_wings:" +image: /use-cases/defi.png +alt: लेगो विटांनी बनवलेला Eth लोगो. +sidebarDepth: 2 +summaryPoint1: सध्याच्या आर्थिक व्यवस्थेसाठी जागतिक, खुला पर्याय. +summaryPoint2: अशी उत्पादने जी तुम्हाला कर्ज घेऊ देतात, बचत करू देतात, गुंतवणूक करू शकतात, व्यापार करू शकतात आणि बरेच काही करू शकतात. +summaryPoint3: मुक्त-स्रोत तंत्रज्ञानावर आधारित ज्यासह कोणीही प्रोग्राम करू शकतो. +--- + +DeFi ही इंटरनेट युगासाठी तयार केलेली एक खुली आणि जागतिक आर्थिक प्रणाली आहे – अपारदर्शक, घट्टपणे नियंत्रित आणि दशकानुशतके जुन्या पायाभूत सुविधा आणि प्रक्रियांनी एकत्र ठेवलेल्या प्रणालीचा पर्याय. हे तुम्हाला तुमच्या पैशांवर नियंत्रण आणि दृश्यमानता देते. हे तुम्हाला जागतिक बाजारपेठा आणि तुमच्या स्थानिक चलन किंवा बँकिंग पर्यायांना एक्सपोजर देते. DeFi उत्पादने इंटरनेट कनेक्शन असलेल्या प्रत्येकासाठी आर्थिक सेवा उघडतात आणि त्या मोठ्या प्रमाणात त्यांच्या वापरकर्त्यांच्या मालकीच्या आणि देखरेखीच्या असतात. आतापर्यंत कोट्यवधी डॉलर्स किमतीचे क्रिप्टो DeFi ऍप्लिकेशन्समधून आले आहे आणि ते दररोज वाढत आहे. + +## DeFi म्हणजे काय? {#what-is-defi} + +DeFi ही आर्थिक उत्पादने आणि सेवांसाठी एक सामूहिक संज्ञा आहे जी Ethereum वापरू शकणार्‍या प्रत्येकासाठी प्रवेशयोग्य आहे – इंटरनेट कनेक्शन असलेले कोणीही. DeFi सह, बाजारपेठे नेहमी खुली असतात आणि कोणतेही केंद्रीकृत अधिकारी नाहीत जे पेमेंट ब्लॉक करू शकतात किंवा तुम्हाला कोणत्याही गोष्टीत प्रवेश नाकारू शकतात. पूर्वी धीमे आणि मानवी चुकांचा धोका असलेल्या सेवा आता स्वयंचलित आणि सुरक्षित आहेत कारण त्या कोडद्वारे हाताळल्या जातात ज्याची कोणीही तपासणी आणि छाननी करू शकते. + +तेथे एक भरभराट होत असलेली क्रिप्टो अर्थव्यवस्था आहे, जिथे तुम्ही कर्ज देऊ शकता, कर्ज घेऊ शकता, दीर्घ/लहान, व्याज मिळवू शकता आणि बरेच काही करू शकता. क्रिप्टो-जाणकार अर्जेंटिन्यांनी अपंग महागाईपासून बचाव करण्यासाठी DeFi चा वापर केला आहे. कंपन्यांनी त्यांच्या कर्मचार्‍यांना त्यांचे वेतन रिअल टाइममध्ये प्रवाहित करण्यास सुरुवात केली आहे. काही लोकांनी कोणत्याही वैयक्तिक ओळखीची गरज नसताना लाखो डॉलर्सची कर्जे काढली आणि फेडली. + + + +## DeFi वि पारंपारिक वित्त {#defi-vs-tradfi} + +DeFi ची क्षमता पाहण्याचा एक उत्तम मार्ग म्हणजे आज अस्तित्वात असलेल्या समस्या समजून घेणे. + +- काही लोकांना बँक खाते सेट करण्यासाठी किंवा आर्थिक सेवा वापरण्यासाठी प्रवेश दिला जात नाही. +- आर्थिक सेवांमध्ये प्रवेश नसल्यामुळे लोकांना नोकरी करण्यापासून रोखता येते. +- आर्थिक सेवा तुम्हाला पैसे मिळण्यापासून रोखू शकतात. +- आर्थिक सेवांचे छुपे शुल्क म्हणजे तुमचा वैयक्तिक डेटा. +- सरकार आणि केंद्रीकृत संस्था इच्छेनुसार बाजार बंद करू शकतात. +- व्यापाराचे तास अनेकदा विशिष्ट टाइम झोनच्या व्यावसायिक तासांपुरते मर्यादित असतात. +- मानवी अंतर्गत प्रक्रियेमुळे पैसे हस्तांतरित होण्यास काही दिवस लागू शकतात. +- आर्थिक सेवांसाठी प्रीमियम आहे कारण मध्यस्थ संस्थांना त्यांच्या कपातीची आवश्यकता आहे. + +### एक तुलना {#defi-comparison} + +| DeFi | पारंपारिक वित्त | +| ------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | +| तुम्ही तुमचे पैसे धरा. | तुमचे पैसे कंपन्यांकडे आहेत. | +| तुमचा पैसा कुठे जातो आणि तो कसा खर्च होतो हे तुम्ही नियंत्रित करता. | जोखमीच्या कर्जदारांना कर्ज देण्यासारख्या तुमच्या पैशांचे गैरव्यवस्थापन न करण्यासाठी तुम्हाला कंपन्यांवर विश्वास ठेवावा लागेल. | +| निधीचे हस्तांतरण काही मिनिटांत होते. | मॅन्युअल प्रक्रियांमुळे पेमेंटला दिवस लागू शकतात. | +| व्यवहार क्रियाकलाप छद्मनाम आहे. | आर्थिक क्रियाकलाप आपल्या ओळखीशी घट्ट जोडलेले आहेत. | +| DeFi कोणासाठीही खुले आहे. | तुम्ही आर्थिक सेवा वापरण्यासाठी अर्ज करणे आवश्यक आहे. | +| बाजारपेठा नेहमी खुल्या असतात. | कर्मचार्‍यांना विश्रांतीची गरज असल्याने बाजारपेठा बंद होतात. | +| हे पारदर्शकतेवर आधारित आहे – कोणीही उत्पादनाचा डेटा पाहू शकतो आणि सिस्टम कसे कार्य करते याची तपासणी करू शकतो. | वित्तीय संस्था ही बंद पुस्तके आहेत: तुम्ही त्यांचा कर्जाचा इतिहास, त्यांच्या व्यवस्थापित मालमत्तेचा रेकॉर्ड इत्यादी पाहण्यास सांगू शकत नाही. | + + + DeFi अॅप्स एक्सप्लोर करा + + +## याची सुरुवात Bitcoin पासून झाली... {#bitcoin} + +Bitcoin हे अनेक प्रकारे पहिले DeFi ऍप्लिकेशन होते. Bitcoin तुम्हाला खरच स्वतःचे आणि मूल्य नियंत्रित करू देते आणि जगभरात कुठेही पाठवू देते. विश्वासू मध्यस्थाच्या गरजेशिवाय, मोठ्या संख्येने लोकांना, जे एकमेकांवर विश्वास ठेवत नाहीत, खात्यांच्या लेजरवर सहमत होण्यासाठी एक मार्ग प्रदान करून हे करते. Bitcoin कोणासाठीही खुले आहे आणि त्याचे नियम बदलण्याचा अधिकार कोणालाही नाही. Bitcoin चे नियम, जसे की त्याची कमतरता आणि त्याचे मोकळेपणा, तंत्रज्ञानामध्ये लिहिलेले आहेत. हे पारंपारिक फायनान्ससारखे नाही जिथे सरकार पैसे छापू शकतात जे तुमच्या बचतीचे अवमूल्यन करतात आणि कंपन्या बाजार बंद करू शकतात. + +यावर Ethereum तयार होतो. Bitcoin प्रमाणे, नियम तुमच्यावर बदलू शकत नाहीत आणि प्रत्येकाला प्रवेश आहे. परंतु ते [स्मार्ट कॉन्ट्रॅक्ट](/glossary#smart-contract) वापरून हे डिजिटल मनी प्रोग्राम करण्यायोग्य देखील बनवते, जेणेकरून तुम्ही मूल्य संचयित आणि पाठवण्यापलीकडे जाऊ शकता. + + + +## प्रोग्राम करण्यायोग्य पैसा {#programmable-money} + +हे विचित्र वाटते... "मला माझे पैसे का प्रोग्राम करायचे आहेत"? तथापि, Ethereum वरील टोकनचे हे फक्त एक डीफॉल्ट वैशिष्ट्य आहे. कोणीही पेमेंटमध्ये लॉजिक प्रोग्राम करू शकतो. त्यामुळे तुम्हाला Bitcoin चे नियंत्रण आणि सुरक्षा वित्तीय संस्थांद्वारे पुरवल्या जाणाऱ्या सेवांमध्ये मिसळून मिळू शकते. हे तुम्हाला क्रिप्टोकरन्सीसह अशा गोष्टी करू देते जे तुम्ही Bitcoin सह करू शकत नाही जसे की कर्ज देणे आणि कर्ज घेणे, पेमेंट शेड्यूल करणे, इंडेक्स फंडांमध्ये गुंतवणूक करणे आणि बरेच काही. + + +
तुम्ही Ethereum वर नवीन असाल तर वापरून पाहण्यासाठी DeFi ऍप्लिकेशन्ससाठी आमच्या सूचना एक्सप्लोर करा.
+ + DeFi अॅप्स एक्सप्लोर करा + +
+ +## आपण DeFi सह काय करू शकता? {#defi-use-cases} + +बहुतांश वित्तीय सेवांसाठी विकेंद्रित पर्याय आहे. परंतु Ethereum पूर्णपणे नवीन आर्थिक उत्पादने तयार करण्यासाठी संधी देखील निर्माण करते. ही एक सतत वाढत जाणारी यादी आहे. + +- [जगभर पैसे पाठवा](#send-money) +- [जगभरात पैसा प्रवाहित करा](#stream-money) +- [स्थिर चलनांमध्ये प्रवेश करा](#stablecoins) +- [संपार्श्विक सह निधी उधार घ्या](#lending) +- [तारण न घेता कर्ज घ्या](#flash-loans) +- [क्रिप्टो बचत सुरू करा](#saving) +- [व्यापार टोकन](#swaps) +- [तुमचा पोर्टफोलिओ वाढवा](#investing) +- [तुमच्या कल्पनांना निधी द्या](#crowdfunding) +- [विमा खरेदी करा](#insurance) +- [तुमचा पोर्टफोलिओ व्यवस्थापित करा](#aggregators) + + + +### जगभरात त्वरीत पैसे पाठवा {#send-money} + +ब्लॉकचेन म्हणून, Ethereum सुरक्षित आणि जागतिक मार्गाने व्यवहार पाठवण्यासाठी डिझाइन केलेले आहे. Bitcoin प्रमाणे, Ethereum जगभरात पैसे पाठवणे ईमेल पाठवण्याइतके सोपे करते. तुमच्या वॉलेटमधून फक्त तुमच्या प्राप्तकर्त्याचे [ENS नाव](/nft/#nft-domains) (जसे bob.eth) किंवा त्यांचा खाते पत्ता प्रविष्ट करा आणि तुमचे पेमेंट थेट त्यांच्याकडे काही मिनिटांत जाईल (सामान्यतः). पेमेंट पाठवण्यासाठी किंवा प्राप्त करण्यासाठी, तुम्हाला [वॉलेट](/wallets/) आवश्यक असेल. + + + पेमेंट dapps पहा + + +#### जगभरात पैसा प्रवाहित करा... {#stream-money} + +तुम्ही Ethereum वर पैसे देखील प्रवाहित करू शकता. हे तुम्हाला एखाद्याला त्यांचा पगार दुसऱ्याने अदा करू देते, त्यांना जेव्हा गरज असेल तेव्हा त्यांच्या पैशात प्रवेश मिळवून देते. किंवा स्टोरेज लॉकर किंवा इलेक्ट्रिक स्कूटरसारखे दुसरे काहीतरी भाड्याने घ्या. + +आणि जर तुम्ही [ETH](/eth/) पाठवू इच्छित नसाल किंवा प्रवाहित करू इच्छित नसाल कारण त्याचे मूल्य किती बदलू शकते, Ethereum वर पर्यायी चलने आहेत: स्टेबलकॉइन्स. + + + +### स्थिर चलनांमध्ये प्रवेश करा {#stablecoins} + +क्रिप्टोकरन्सीची अस्थिरता ही अनेक आर्थिक उत्पादने आणि सामान्य खर्चासाठी एक समस्या आहे. DeFi समुदायाने स्टेबलकॉइन्स सह याचे निराकरण केले आहे. त्यांचे मूल्य दुसर्‍या मालमत्तेवर टिकून राहते, सहसा डॉलर सारखे लोकप्रिय चलन. + +Dai किंवा USDC सारख्या नाण्यांचे मूल्य डॉलरच्या काही सेंट्समध्ये असते. हे त्यांना कमाई किंवा किरकोळ विक्रीसाठी योग्य बनवते. लॅटिन अमेरिकेतील बर्‍याच लोकांनी त्यांच्या सरकारने जारी केलेल्या चलनांसह मोठ्या अनिश्चिततेच्या काळात त्यांच्या बचतीचे संरक्षण करण्याचा एक मार्ग म्हणून स्टेबलकॉइन्सचा वापर केला आहे. + + + स्टेबलकॉइन्स वर अधिक + + + + +### कर्ज घेणे {#lending} + +विकेंद्रित प्रदात्यांकडून पैसे उधार घेणे दोन मुख्य प्रकारांमध्ये येते. + +- पीअर-टू-पीअर, म्हणजे कर्जदार विशिष्ट सावकाराकडून थेट कर्ज घेईल. +- पूल-आधारित जेथे कर्जदार कर्ज घेऊ शकतात अशा पूलला निधी (तरलता) प्रदान करतात. + + + उधारी dapps पहा + + +विकेंद्रित कर्जदार वापरण्याचे अनेक फायदे आहेत... + +#### गोपनीयतेसह कर्ज घेणे {#borrowing-privacy} + +आज, पैसे देणे आणि कर्ज घेणे हे सर्व गुंतलेल्या व्यक्तींभोवती फिरते. कर्ज देण्यापूर्वी तुम्ही कर्जाची परतफेड करण्याची शक्यता आहे की नाही हे बँकांना माहित असणे आवश्यक आहे. + +विकेंद्रित कर्ज देणे कोणत्याही पक्षाला स्वतःची ओळख न करता कार्य करते. त्याऐवजी, कर्जदाराने त्याच्या कर्जाची परतफेड न केल्यास कर्जदाराला आपोआप प्राप्त होणारी संपार्श्विकता ठेवली पाहिजे. काही सावकार संपार्श्विक म्हणून NFT देखील स्वीकारतात. NFT हे चित्रकलेप्रमाणे एका अनन्य मालमत्तेसाठी एक डीड आहे. [NFT वर अधिक](/nft/) + +हे तुम्हाला क्रेडिट चेकशिवाय किंवा खाजगी माहिती न देता पैसे उधार घेण्यास अनुमती देते. + +#### जागतिक निधीमध्ये प्रवेश {#access-global-funds} + +जेव्हा तुम्ही विकेंद्रित सावकार वापरता तेव्हा तुम्हाला तुमच्या निवडलेल्या बँकेच्या किंवा संस्थेच्या ताब्यातील निधीच नव्हे तर जगभरातून जमा केलेल्या निधीमध्ये प्रवेश असतो. यामुळे कर्जे अधिक सुलभ होतात आणि व्याजदर सुधारतात. + +#### कर-कार्यक्षमता {#tax-efficiencies} + +कर्ज घेतल्याने तुमचा ETH (करपात्र कार्यक्रम) विकल्याशिवाय तुम्हाला आवश्यक असलेल्या निधीमध्ये प्रवेश मिळू शकतो. त्याऐवजी, तुम्ही स्टेबलकॉइन कर्जासाठी संपार्श्विक म्हणून ETH वापरू शकता. हे तुम्हाला आवश्यक असलेला रोख प्रवाह देते आणि तुम्हाला तुमचा ETH ठेवू देते. स्टेबलकॉइन्स हे टोकन आहेत जे तुम्हाला जेव्हा रोखीची गरज असते तेव्हा ते जास्त चांगले असतात कारण ते ETH सारख्या मूल्यात चढ-उतार होत नाहीत. [स्टेबलकॉइन्स वर अधिक](#stablecoins) + +#### फ्लॅश कर्ज {#flash-loans} + +फ्लॅश कर्ज हे विकेंद्रित कर्जाचे अधिक प्रायोगिक स्वरूप आहे जे तुम्हाला संपार्श्विक किंवा कोणतीही वैयक्तिक माहिती प्रदान न करता कर्ज घेऊ देते. + +ते सध्या गैर-तांत्रिक लोकांसाठी मोठ्या प्रमाणावर प्रवेश करण्यायोग्य नाहीत परंतु ते भविष्यात प्रत्येकासाठी काय शक्य आहे याचा इशारा देतात. + +कर्ज काढले जाते आणि त्याच व्यवहारात परतफेड केले जाते या आधारावर ते कार्य करते. जर ते परत केले जाऊ शकले नाही, तर व्यवहार पूर्ववत होतो जणू काही घडलेच नाही. + +अनेकदा वापरले जाणारे निधी लिक्विडिटी पूलमध्ये (कर्ज घेण्यासाठी वापरले जाणारे निधीचे मोठे पूल) मध्ये ठेवले जातात. दिलेल्या क्षणी त्यांचा वापर केला जात नसल्यास, यामुळे एखाद्याला हे निधी उधार घेण्याची, त्यांच्यासोबत व्यवसाय करण्याची आणि कर्ज घेतलेल्या त्याच वेळी त्यांची अक्षरशः पूर्ण परतफेड करण्याची संधी निर्माण होते. + +याचा अर्थ असा आहे की अगदी योग्य व्यवहारात बरेच तर्क समाविष्ट केले पाहिजेत. एक साधे उदाहरण असे असू शकते की एखादी व्यक्ती फ्लॅश लोनचा वापर करून एका किमतीत जास्तीत जास्त मालमत्तेसाठी कर्ज घेते जेणेकरून ते ती वेगळ्या एक्सचेंजवर विकू शकतील जिथे किंमत जास्त असेल. + +त्यामुळे एकाच व्यवहारात पुढील गोष्टी घडतात: + +- तुम्ही एक्सचेंज A कडून $1.00 वर $asset X रक्कम कर्ज घेता +- तुम्ही X $asset एक्सचेंज B वर $1.10 मध्ये विकता +- तुम्ही A एक्सचेंज करण्यासाठी कर्जाची परतफेड करता +- तुम्ही व्यवहार शुल्क वजा नफा ठेवा + +जर एक्सचेंज B चा पुरवठा अचानक कमी झाला आणि वापरकर्ता मूळ कर्ज भरण्यासाठी पुरेशी खरेदी करू शकला नाही, तर व्यवहार अयशस्वी होईल. + +पारंपारिक वित्त जगात वरील उदाहरण करण्यास सक्षम होण्यासाठी, तुम्हाला खूप मोठ्या रकमेची आवश्यकता असेल. पैसे कमावण्याच्या या रणनीती केवळ विद्यमान संपत्ती असलेल्यांनाच उपलब्ध आहेत. फ्लॅश लोन हे भविष्याचे एक उदाहरण आहे जिथे पैसे कमावण्‍यासाठी पैसे असणे ही एक पूर्व शर्त नाही. + +[फ्लॅश कर्जावर अधिक](https://aave.com/flash-loans/) + + + +### क्रिप्टोसह बचत सुरू करा {#saving} + +#### कर्ज देणे {#lending} + +तुम्ही तुमच्या क्रिप्टोला कर्ज देऊन त्यावर व्याज मिळवू शकता आणि तुमचे फंड रिअल टाइममध्ये वाढताना पाहू शकता. सध्या तुम्हाला तुमच्या स्थानिक बँकेत मिळू शकणार्‍या व्याजदरापेक्षा कितीतरी जास्त व्याजदर आहेत (जर तुम्‍ही नशीबवान असल्‍यास ते अ‍ॅक्सेस करण्‍यास सक्षम असाल). येथे एक उदाहरण आहे: + +- तुम्ही Aave सारख्या उत्पादनाला तुमचे 100 Dai, [स्टेबलकॉइन](/stablecoins/) उधार देता. +- तुम्हाला 100 Aave Dai (aDai) मिळतात जे तुमच्या कर्ज घेतलेल्या दैचे प्रतिनिधित्व करणारे टोकन आहे. +- तुमची aDai व्याजदरांच्या आधारे वाढेल आणि तुम्ही तुमच्या वॉलेटमध्ये तुमची शिल्लक वाढताना पाहू शकता. APR वर अवलंबून, तुमचे वॉलेट शिल्लक काही दिवसांनी किंवा काही तासांनंतर 100.1234 सारखे वाचेल! +- तुम्ही कधीही नियमित Dai ची रक्कम काढू शकता जी तुमच्या aDai शिल्लक असेल. + + + कर्ज देणे dapps पहा + + +#### नो-तोटा लॉटरी {#no-loss-lotteries} + +PoolTogether सारख्या नो-लॉस लॉटरी पैसे वाचवण्याचा एक मजेदार आणि नाविन्यपूर्ण मार्ग आहे. + +- तुम्ही 100 Dai टोकन वापरून 100 तिकिटे खरेदी करता. +- तुम्हाला तुमच्या 100 तिकिटांचे प्रतिनिधित्व करणारे 100 plDai मिळतात. +- तुमच्या तिकिटांपैकी एक विजेते म्हणून निवडले गेल्यास, तुमची plDai शिल्लक बक्षीस पूलच्या रकमेने वाढेल. +- तुम्ही जिंकले नाही तर, तुमचे 100 जुने पुढील आठवड्याच्या ड्रॉवर रोल ओव्हर होतील. +- तुम्ही कधीही नियमित Dai ची रक्कम काढू शकता जी तुमच्या plDai शिल्लक असेल. + +बक्षीस पूल वरील कर्ज उदाहरणाप्रमाणे तिकीट ठेवींवर कर्ज देऊन व्युत्पन्न केलेल्या सर्व व्याजाने व्युत्पन्न केला जातो. + + + PoolTogether वापरून पहा + + + + +### टोकन एक्सचेंज करा {#swaps} + +Ethereum वर हजारो टोकन आहेत. विकेंद्रित एक्सचेंज (DEXs) तुम्हाला हवे तेव्हा भिन्न टोकन्सचा व्यापार करू देतात. तुम्ही तुमच्या मालमत्तेचे नियंत्रण कधीही सोडत नाही. हे वेगळ्या देशाला भेट देताना चलन विनिमय वापरण्यासारखे आहे. परंतु DeFi आवृत्ती कधीही बंद होत नाही. बाजार वर्षातील 24/7, 365 दिवस असतात आणि तंत्रज्ञान हमी देते की व्यापार स्वीकारण्यासाठी नेहमीच कोणीतरी असेल. + +उदाहरणार्थ, तुम्हाला नो-लॉस लॉटरी PoolTogether (वर वर्णन केलेले) वापरायचे असल्यास, तुम्हाला Dai किंवा USDC सारखे टोकन आवश्यक असेल. हे DEX तुम्हाला त्या टोकन्ससाठी तुमचा ETH स्वॅप करू देतात आणि तुमचे काम पूर्ण झाल्यावर पुन्हा परत येतात. + + + प्रतिक एक्सचेंज पहा + + + + +### प्रगत व्यापार {#trading} + +ज्या व्यापाऱ्यांना थोडे अधिक नियंत्रण आवडते त्यांच्यासाठी अधिक प्रगत पर्याय आहेत. मर्यादा ऑर्डर, शाश्वत, मार्जिन ट्रेडिंग आणि बरेच काही शक्य आहे. विकेंद्रित व्यापारामुळे तुम्हाला जागतिक तरलतेमध्ये प्रवेश मिळतो, बाजार कधीही बंद होत नाही आणि तुम्ही तुमच्या मालमत्तेवर नेहमी नियंत्रण ठेवता. + +जेव्हा तुम्ही केंद्रीकृत एक्सचेंज वापरता तेव्हा तुम्हाला तुमची मालमत्ता व्यापारापूर्वी जमा करावी लागते आणि त्यांची काळजी घेण्यासाठी त्यांच्यावर विश्वास ठेवावा लागतो. तुमची मालमत्ता जमा केली जात असताना, त्यांना धोका असतो कारण केंद्रीकृत एक्सचेंज हॅकर्ससाठी आकर्षक लक्ष्य असतात. + + + ट्रेडिंग dapps पहा + + + + +### तुमचा पोर्टफोलिओ वाढवा {#investing} + +Ethereum वर फंड मॅनेजमेंट उत्पादने आहेत जी तुमच्या पसंतीच्या धोरणावर आधारित तुमचा पोर्टफोलिओ वाढवण्याचा प्रयत्न करतील. हे आपोआप आहे, प्रत्येकासाठी खुले आहे आणि तुमच्या नफ्यातील एक मानवी व्यवस्थापकाची गरज नाही. + +याचे उत्तम उदाहरण म्हणजे [DeFi Pulse इंडेक्स फंड (DPI)](https://defipulse.com/blog/defi-pulse-index/). हा असा फंड आहे जो तुमच्या पोर्टफोलिओमध्ये नेहमी [मार्केट कॅपिटलायझेशननुसार शीर्ष DeFi टोकन्स](https://www.coingecko.com/en/defi) समाविष्ट असल्याची खात्री करण्यासाठी आपोआप पुनर्संतुलित होतो. तुम्हाला कधीही कोणताही तपशील व्यवस्थापित करण्याची गरज नाही आणि तुम्हाला पाहिजे तेव्हा तुम्ही फंडातून पैसे काढू शकता. + + + गुंतवणूक dapps पहा + + + + +### तुमच्या कल्पनांना निधी द्या {#crowdfunding} + +Ethereum हे क्राउडफंडिंगसाठी एक आदर्श व्यासपीठ आहे: + +- संभाव्य निधी कोठूनही येऊ शकतात - Ethereum आणि त्याचे टोकन जगात कोठेही, कोणासाठीही खुले आहेत. +- हे पारदर्शक आहे त्यामुळे निधी उभारणारे किती पैसे उभे केले आहेत हे सिद्ध करू शकतात. आपण नंतर ओळीच्या खाली निधी कसा खर्च केला जातो हे देखील शोधू शकता. +- उदाहरणार्थ, एखादी विशिष्ट अंतिम मुदत आणि किमान रक्कम पूर्ण न झाल्यास, निधी उभारणारे स्वयंचलित परतावा सेट करू शकतात. + + + क्राउडफंडिंग dapps पहा + + +#### चतुर्भुज निधी {#quadratic-funding} + +Ethereum हे ओपन सोर्स सॉफ्टवेअर आहे आणि आत्तापर्यंतच्या बर्‍याच कामांना समुदायाने निधी दिला आहे. यामुळे एक मनोरंजक नवीन निधी उभारणी मॉडेलची वाढ झाली आहे: चतुर्भुज निधी. This has the potential to improve the way we fund all types of public goods in the future. + +Quadratic funding makes sure that the projects that receive the most funding are those with the most unique demand. In other words, projects that stand to improve the lives of the most people. ते कसे कार्य करते ते येथे आहे: + +1. दान केलेल्या निधीचा एक जुळणारा पूल आहे. +2. सार्वजनिक निधीची फेरी सुरू होते. +3. लोक काही पैसे देऊन एखाद्या प्रकल्पाची मागणी दर्शवू शकतात. +4. फेरी संपल्यानंतर, जुळणारे पूल प्रकल्पांना वितरित केले जातात. सर्वात अनोखी मागणी असलेल्यांना मॅचिंग पूलमधून सर्वाधिक रक्कम मिळते. + +याचा अर्थ 1 डॉलरच्या 100 देणग्यांसह प्रोजेक्ट A ला 10,000 डॉलर्स (जुळणार्‍या पूलच्या आकारावर अवलंबून) एका देणगीसह प्रोजेक्ट B पेक्षा जास्त निधी मिळू शकतो. + +[चतुर्भुज निधीवर अधिक](https://wtfisqf.com) + + + +### विमा {#insurance} + +विकेंद्रित विम्याचे उद्दिष्ट विमा स्वस्त करणे, भरणे जलद करणे आणि अधिक पारदर्शक करणे आहे. अधिक ऑटोमेशनसह, अधिक कव्हरेज हे परवडणारे आहे आणि पे-आउट खूप जलद आहेत. तुमच्या दाव्यावर निर्णय घेण्यासाठी वापरलेला डेटा पूर्णपणे पारदर्शक आहे. + +Ethereum उत्पादने, कोणत्याही सॉफ्टवेअरप्रमाणे, दोष आणि शोषणांमुळे ग्रस्त होऊ शकतात. त्यामुळे सध्या अवकाशातील बरीच विमा उत्पादने त्यांच्या वापरकर्त्यांना निधीच्या नुकसानापासून संरक्षण देण्यावर लक्ष केंद्रित करतात. तथापि, जीवन आपल्यावर टाकू शकेल अशा प्रत्येक गोष्टीसाठी कव्हरेज तयार करण्यासाठी प्रकल्प सुरू होत आहेत. याचे उत्तम उदाहरण म्हणजे Etherisc चे क्रॉप कव्हर ज्याचा उद्देश [केनियामधील अल्पभूधारक शेतकऱ्यांना दुष्काळ आणि पुरापासून संरक्षण करणे](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc) आहे. विकेंद्रित विमा शेतकर्‍यांना स्वस्त कवच देऊ शकतो ज्यांची किंमत पारंपारिक विम्यापेक्षा जास्त आहे. + + + विमा dapps पहा + + + + +### एग्रीगेटर आणि पोर्टफोलिओ व्यवस्थापक {#aggregators} + +खूप काही चालू असताना, तुम्हाला तुमच्या सर्व गुंतवणुकीचा, कर्जाचा आणि व्यवहारांचा मागोवा ठेवण्याचा मार्ग आवश्यक आहे. अशी अनेक उत्पादने आहेत जी तुम्हाला तुमच्या सर्व DeFi क्रियाकलाप एकाच ठिकाणाहून समन्वयित करू देतात. हे DeFi च्या ओपन आर्किटेक्चरचे सौंदर्य आहे. कार्यसंघ असे इंटरफेस तयार करू शकतात जिथे तुम्ही केवळ उत्पादनांमध्ये तुमची शिल्लक पाहू शकत नाही, तुम्ही त्यांची वैशिष्ट्ये देखील वापरू शकता. तुम्ही DeFi चे अधिक एक्सप्लोर करत असताना तुम्हाला हे उपयुक्त वाटेल. + + + पोर्टफोलिओ dapps पहा + + + + +## DeFi कसे कार्य करते? {#how-defi-works} + +मध्यस्थांची गरज नसलेल्या सेवा प्रदान करण्यासाठी DeFi क्रिप्टोकरन्सी आणि स्मार्ट करार वापरते. आजच्या आर्थिक जगात, वित्तीय संस्था व्यवहारांचे हमीदार म्हणून काम करतात. यामुळे या संस्थांना प्रचंड शक्ती मिळते कारण तुमचा पैसा त्यांच्यामार्फत वाहतो. शिवाय जगभरातील अब्जावधी लोकांकडे बँक खाते देखील नाही. + +DeFi मध्ये, एक स्मार्ट करार व्यवहारात वित्तीय संस्थेची जागा घेते. स्मार्ट कॉन्ट्रॅक्ट हा Ethereum खात्याचा एक प्रकार आहे ज्यामध्ये फंड्स ठेवता येतात आणि काही अटींवर आधारित ते पाठवू/परतावा देऊ शकतो. लाइव्ह असताना ते स्मार्ट कॉन्ट्रॅक्ट कोणीही बदलू शकत नाही – ते नेहमी प्रोग्राम केलेले असते. + +भत्ता किंवा पॉकेटमनी देण्यासाठी डिझाइन केलेले करार प्रत्येक शुक्रवारी खाते A मधून खाते B मध्ये पैसे पाठवण्यासाठी प्रोग्राम केले जाऊ शकतात. आणि जोपर्यंत खाते A मध्ये आवश्यक फंड्स असेल तोपर्यंतच हे असे होईल. फंड्स चोरण्यासाठी कोणीही कॉन्ट्रॅक्ट बदलू शकत नाही आणि प्राप्तकर्ता म्हणून खाते C जोडू शकत नाही. + +कोणालाही तपासणी आणि ऑडिट करण्यासाठी करार देखील सार्वजनिक आहेत. याचा अर्थ असा होतो की खराब करार बर्‍याचदा सामुदायिक पडताळणीखाली येतात. + +याचा अर्थ असा आहे की सध्या कोड वाचू शकणार्‍या Ethereum समुदायाच्या अधिक तांत्रिक सदस्यांवर विश्वास ठेवण्याची गरज आहे. मुक्त-स्रोत आधारित समुदाय विकासकांवर नियंत्रण ठेवण्यास मदत करतो, परंतु ही गरज कालांतराने कमी होईल कारण स्मार्ट करार वाचणे सोपे होईल आणि कोडची विश्वासार्हता सिद्ध करण्याचे इतर मार्ग विकसित केले जातील. + +## Ethereum आणि DeFi {#ethereum-and-defi} + +Ethereum अनेक कारणांमुळे DeFi साठी परिपूर्ण पाया आहे: + +- Ethereum किंवा त्यावर चालणारे स्मार्ट कॉन्ट्रॅक्ट कोणाचेही नाही – यामुळे प्रत्येकाला DeFi वापरण्याची संधी मिळते. याचा अर्थ असा आहे की तुमच्यावरील नियम कोणीही बदलू शकत नाही. +- DeFi उत्पादने पडद्यामागील सर्व समान भाषा बोलतात: Ethereum. याचा अर्थ अनेक उत्पादने अखंडपणे एकत्र काम करतात. तुम्ही एका प्लॅटफॉर्मवर टोकन्स उधार देऊ शकता आणि पूर्णपणे वेगळ्या ऍप्लिकेशनवर वेगळ्या मार्केटमध्ये व्याज देणारे टोकन एक्सचेंज करू शकता. हे तुमच्या बँकेत लॉयल्टी पॉइंट्स कॅश करण्यास सक्षम असण्यासारखे आहे. +- टोकन आणि क्रिप्टोकरन्सी Ethereum मध्ये तयार केली जाते, एक सामायिक खाते – व्यवहार आणि मालकीचा मागोवा ठेवणे ही Ethereum ची गोष्ट आहे. +- Ethereum संपूर्ण आर्थिक स्वातंत्र्यास अनुमती देते - बहुतेक उत्पादने कधीही तुमच्या निधीची कस्टडी घेणार नाहीत, तुमच्यावर नियंत्रण ठेवून. + +तुम्ही लेयर्समध्ये DeFi चा विचार करू शकता: + +1. ब्लॉकचेन – Ethereumमध्ये व्यवहाराचा इतिहास आणि खात्यांची स्थिती असते. +2. मालमत्ता – [ETH](/eth/) आणि इतर टोकन (चलने). +3. प्रोटोकॉल – [स्मार्ट कॉन्ट्रॅक्ट्स](/glossary/#smart-contract) जे कार्यक्षमता प्रदान करतात, उदाहरणार्थ, एक सेवा जी मालमत्तेचे विकेंद्रित कर्ज देण्यास परवानगी देते. +4. [अनुप्रयोग](/dapps/) – आम्ही प्रोटोकॉल व्यवस्थापित करण्यासाठी आणि प्रवेश करण्यासाठी वापरतो ती उत्पादने. + +## DeFi तयार करणे {#build-defi} + +DeFi एक मुक्त-स्रोत चळवळ आहे. DeFi प्रोटोकॉल आणि ऍप्लिकेशन्स तुमच्यासाठी तपासणी, काटा आणि नवीन शोध घेण्यासाठी खुले आहेत. या स्तरित स्टॅकमुळे (ते सर्व समान बेस ब्लॉकचेन आणि मालमत्ता सामायिक करतात), अद्वितीय कॉम्बो संधी अनलॉक करण्यासाठी प्रोटोकॉल मिश्रित आणि जुळवले जाऊ शकतात. + + + Dapps तयार करण्याबद्दल अधिक + + +## Further reading {#futher-reading} + +### DeFi डेटा {#defi-data} + +- [DeFi प्राइम](https://defiprime.com/) +- [DeFi Llama](https://defillama.com/) +- [DeFi रेट](https://defirate.com/) + +### DeFi आर्टिकल्स {#defi-articles} + +- [DeFi साठी नवशिक्यांसाठी मार्गदर्शक](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _सिड कोएल्हो-प्रभू, 6 जानेवारी 2020_ + +### Videos {#videos} + +- [फाइनेमॅटिक्स - विकेंद्रित वित्त शिक्षण](https://finematics.com/) – _DeFi वर व्हिडिओ_ +- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _DeFi मूलभूत गोष्टी: या अधूनमधून गोंधळात टाकणाऱ्या जागेत प्रारंभ करण्यासाठी तुम्हाला जे काही माहित असणे आवश्यक आहे._ +- [व्हाइटबोर्ड क्रिप्टो](https://youtu.be/17QRFlml4pA) _DeFi म्हणजे काय?_ + +### समुदाय {#communities} + +- [DeFi Llama Discord सर्व्हर](https://discord.gg/buPFYXzDDd) +- [DeFi Pulse Discord सर्व्हर](https://discord.gg/Gx4TCTk) diff --git a/public/content/translations/mr/desci/index.md b/public/content/translations/mr/desci/index.md new file mode 100644 index 00000000000..f785e63b170 --- /dev/null +++ b/public/content/translations/mr/desci/index.md @@ -0,0 +1,139 @@ +--- +title: विकेंद्रित विज्ञान (DeSci) +description: Ethereum वर विकेंद्रित विज्ञानाचे विहंगावलोकन +lang: mr +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: सध्याच्या वैज्ञानिक प्रणालीसाठी जागतिक, खुला पर्याय. +summaryPoint2: तंत्रज्ञान जे शास्त्रज्ञांना निधी उभारण्यास, प्रयोग चालविण्यास, डेटा सामायिक करण्यास, अंतर्दृष्टी वितरित करण्यास आणि बरेच काही करण्यास सक्षम करते. +summaryPoint3: मुक्त विज्ञान चळवळीवर तयार होते. +--- + +## विकेंद्रित विज्ञान (DeSci) म्हणजे काय? {#what-is-desci} + +विकेंद्रित विज्ञान (DeSci) ही एक चळवळ आहे ज्याचा उद्देश Web3 स्टॅकचा वापर करून वैज्ञानिक ज्ञानाचा न्याय्य आणि समानतेने निधी, निर्मिती, पुनरावलोकन, क्रेडिट, संग्रहण आणि प्रसार करण्यासाठी सार्वजनिक पायाभूत सुविधा निर्माण करणे आहे. + +DeSci चे उद्दिष्ट एक अशी परिसंस्था निर्माण करणे आहे जिथे शास्त्रज्ञांना त्यांचे संशोधन उघडपणे सामायिक करण्यासाठी आणि त्यांच्या कार्याचे श्रेय प्राप्त करण्यासाठी प्रोत्साहन दिले जाते आणि कोणालाही संशोधनात सहज प्रवेश आणि योगदान देण्याची परवानगी दिली जाते. DeSci वैज्ञानिक ज्ञान प्रत्येकासाठी प्रवेशयोग्य असावे आणि वैज्ञानिक संशोधनाची प्रक्रिया पारदर्शक असावी या कल्पनेवर कार्य करते. DeSci अधिक विकेंद्रित आणि वितरित वैज्ञानिक संशोधन मॉडेल तयार करत आहे, जे सेन्सॉरशिप आणि केंद्रीय प्राधिकरणांच्या नियंत्रणास अधिक प्रतिरोधक बनवत आहे. DeSci ला असे वातावरण निर्माण करण्याची आशा आहे जिथे नवीन आणि अपारंपरिक कल्पना निधी, वैज्ञानिक साधने आणि संप्रेषण चॅनेलच्या प्रवेशाचे विकेंद्रीकरण करून भरभराट करू शकतात. + +विकेंद्रित विज्ञान अधिक वैविध्यपूर्ण निधी स्रोतांना अनुमती देते ([DAO](/dao/) कडून, [चतुर्भुज देणग्या](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) क्राउडफंडिंग आणि अधिक), अधिक प्रवेशयोग्य प्रवेश डेटा आणि पद्धती आणि पुनरुत्पादनासाठी प्रोत्साहन प्रदान करून. + +### जुआन बेनेट - DeSci चळवळ + + + +## DeSci विज्ञान कसे सुधारते {#desci-improves-science} + +विज्ञानातील प्रमुख समस्यांची अपूर्ण यादी आणि विकेंद्रित विज्ञान या समस्यांचे निराकरण करण्यात कशी मदत करू शकते + +| **विकेंद्रित विज्ञान** | **पारंपारिक विज्ञान** | +| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------- | +| चतुर्भुज देणग्या किंवा DAO सारख्या यंत्रणेचा वापर करून निधीचे वितरण जनतेद्वारे निश्चित केले जाते. | लहान, बंद, केंद्रीकृत गट निधीचे वितरण नियंत्रित करतात. | +| तुम्ही डायनॅमिक संघांमध्ये जगभरातील समवयस्कांसह सहयोग करता. | निधी देणार्‍या संस्था आणि गृहसंस्था तुमचे सहकार्य मर्यादित करतात. | +| निधीचे निर्णय ऑनलाइन आणि पारदर्शकपणे घेतले जातात. नवीन निधीची यंत्रणा शोधली जाते. | निधीचे निर्णय दीर्घ टर्नअराउंड वेळ आणि मर्यादित पारदर्शकतेसह घेतले जातात. काही निधीची यंत्रणा अस्तित्वात आहे. | +| Web3 प्रिमिटिव्ह वापरून प्रयोगशाळा सेवा सामायिक करणे सोपे आणि अधिक पारदर्शक केले आहे. | प्रयोगशाळेतील संसाधने सामायिक करणे अनेकदा धीमे आणि अपारदर्शक असते. | +| प्रकाशनासाठी नवीन मॉडेल विकसित केले जाऊ शकतात जे विश्वास, पारदर्शकता आणि सार्वत्रिक प्रवेशासाठी Web3 आदिम वापरतात. | तुम्ही वारंवार अकार्यक्षम, पक्षपाती आणि शोषक म्हणून मान्य केलेल्या स्थापित मार्गांद्वारे प्रकाशित करता. | +| तुम्ही पीअर-पुनरावलोकन कार्यासाठी टोकन आणि प्रतिष्ठा मिळवू शकता. | तुमचे पीअर-पुनरावलोकन कार्य न भरलेले आहे, फायद्यासाठी प्रकाशकांना लाभदायक आहे. | +| तुम्ही व्युत्पन्न करत असलेल्या बौद्धिक संपत्तीचे (IP) मालक आहात आणि ते पारदर्शक अटींनुसार वितरित करता. | तुम्ही व्युत्पन्न केलेला IP तुमच्या गृहसंस्थेच्या मालकीचा आहे. IP वर एक्सेस पारदर्शक नाही. | +| अयशस्वी प्रयत्नांच्या डेटासह सर्व संशोधन सामायिक करणे, सर्व पायऱ्या ऑन-चेन करून. | प्रकाशन पूर्वाग्रह म्हणजे संशोधक यशस्वी परिणाम देणारे प्रयोग सामायिक करण्याची अधिक शक्यता असते. | + +## Ethereum आणि DeSci {#ethereum-and-desci} + +विकेंद्रित विज्ञान प्रणालीसाठी मजबूत सुरक्षा, किमान आर्थिक आणि व्यवहार खर्च आणि अनुप्रयोग विकासासाठी समृद्ध परिसंस्था आवश्यक असेल. विकेंद्रित विज्ञान स्टॅक तयार करण्यासाठी आवश्यक असलेली प्रत्येक गोष्ट Ethereum पुरवते. + +## DeSci वापर प्रकरणे {#use-cases} + +DeSci डिजिटल जगामध्ये Web2 अकादमीला ऑनबोर्ड करण्यासाठी वैज्ञानिक टूलसेट तयार करत आहे. खाली Web3 वैज्ञानिक समुदायाला ऑफर करू शकणार्‍या वापराच्या प्रकरणांचा नमुना आहे. + +### प्रकाशन {#publishing} + +विज्ञान प्रकाशन हे प्रसिद्धपणे समस्याप्रधान आहे कारण ते प्रकाशन संस्थांद्वारे व्यवस्थापित केले जाते जे शोधनिबंध तयार करण्यासाठी वैज्ञानिक, समीक्षक आणि संपादक यांच्या मोफत श्रमांवर अवलंबून असतात परंतु नंतर अत्याधिक प्रकाशन शुल्क आकारतात. ज्या लोकांनी सहसा अप्रत्यक्षपणे कामासाठी आणि प्रकाशनाच्या खर्चासाठी कर आकारणीद्वारे पैसे दिले आहेत, ते प्रकाशकाला पुन्हा पैसे दिल्याशिवाय त्याच कामात प्रवेश करू शकत नाहीत. वैयक्तिक विज्ञान पेपर प्रकाशित करण्यासाठी एकूण फी बहुतेकदा पाच आकडे ($USD) असते, जी म्हणून वैज्ञानिक ज्ञानाची संपूर्ण संकल्पना [सार्वजनिक हित](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 मध्ये DAO आणि 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 मालकी आणि विकास {#ip-ownership} + +बौद्धिक संपदा (IP) ही पारंपारिक विज्ञानातील एक मोठी समस्या आहे: विद्यापीठांमध्ये अडकून राहण्यापासून किंवा बायोटेकमध्ये न वापरल्या जाण्यापासून, कुप्रसिद्धपणे मूल्य देणे कठीण आहे. तथापि, डिजिटल मालमत्तेची मालकी (जसे की वैज्ञानिक डेटा किंवा लेख) ही Web3 [नॉन-फंगीबल टोकन्स (NFT)](/nft/) वापरून अपवादात्मकपणे चांगली कामगिरी करते. + +ज्या प्रकारे NFT भविष्यातील व्यवहारांसाठी महसूल मूळ निर्मात्याकडे पाठवू शकतात, त्याच प्रकारे तुम्ही संशोधक, प्रशासकीय संस्था (DAO सारख्या) किंवा ज्यांचा डेटा संकलित केला आहे अशा विषयांना पुरस्कृत करण्यासाठी पारदर्शक मूल्य विशेषता साखळी स्थापन करू शकता. + +[IP-NFT](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) देखील एक म्हणून कार्य करू शकतात हाती घेतलेल्या संशोधन प्रयोगांच्या विकेंद्रित डेटा भांडाराची गुरुकिल्ली, आणि NFT आणि [DeFi](/defi/) आर्थिककरण (फ्रॅक्शनलायझेशनपासून कर्ज पूल आणि मूल्य मूल्यांकनापर्यंत) प्लग इन करा. हे थेट ऑन-चेन संशोधन करण्यासाठी DAO सारख्या DAO जसे की [VitaDAO](https://www.vitadao.com/) ला देखील अनुमती देते. नॉन-हस्तांतरणीय ["सोलबाउंड" टोकन्स](https://vitalik.ca/general/2022/01/26/soulbound.html)चे आगमन देखील DeSci मध्ये महत्त्वपूर्ण भूमिका बजावू शकते आणि व्यक्तींना त्यांचे अनुभव आणि त्यांच्या Ethereum पत्त्याशी जोडलेले क्रेडेन्शियल्स सिद्ध करू शकतात. + +### डेटा स्टोरेज, ऍक्सेस आणि आर्किटेक्चर {#data-storage} + +Web3 पॅटर्नचा वापर करून वैज्ञानिक डेटा मोठ्या प्रमाणात प्रवेशयोग्य बनविला जाऊ शकतो आणि वितरीत स्टोरेज संशोधनास आपत्तीजनक घटनांमध्ये टिकून राहण्यास सक्षम करते. + +प्रारंभ बिंदू योग्य सत्यापित करण्यायोग्य क्रेडेन्शियल्स असलेल्या कोणत्याही विकेंद्रीकृत ओळखीद्वारे प्रवेशयोग्य प्रणाली असणे आवश्यक आहे. हे विश्वसनीय पक्षांद्वारे संवेदनशील डेटाची सुरक्षितपणे प्रतिकृती बनवण्याची अनुमती देते, रिडंडंसी आणि सेन्सॉरशिप प्रतिकार सक्षम करते, परिणामांचे पुनरुत्पादन आणि एकाधिक पक्षांना सहयोग करण्याची आणि डेटासेटमध्ये नवीन डेटा जोडण्याची क्षमता देखील सक्षम करते. सारख्या गोपनीय संगणकीय पद्धती [कम्प्युट-टू-डेटा](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 डेटा सोल्यूशन्स वरील परिस्थितींना समर्थन देतात आणि खरोखर मुक्त विज्ञानासाठी पाया प्रदान करतात, जेथे संशोधक प्रवेश परवानगी किंवा शुल्काशिवाय सार्वजनिक वस्तू तयार करू शकतात. Web3 सार्वजनिक डेटा सोल्यूशन्स जसे की IPFS, Arweave आणि Filecoin विकेंद्रीकरणासाठी ऑप्टिमाइझ केले आहेत. dClimate, उदाहरणार्थ, हवामान आणि हवामान डेटावर सार्वत्रिक प्रवेश प्रदान करते, ज्यामध्ये हवामान केंद्रे आणि हवामानाच्या अंदाज मॉडेल्सचा समावेश आहे. + +## यात सामील व्हा {#get-involved} + +प्रकल्प एक्सप्लोर करा आणि DeSci समुदायात सामील व्हा. + +- [DeSci.Global: जागतिक कार्यक्रम आणि भेटीचे कॅलेंडर](https://desci.global) +- [विज्ञान टेलिग्रामसाठी ब्लॉकचेन](https://t.me/BlockchainForScience) +- [रेणू: तुमच्या संशोधन प्रकल्पांसाठी निधी द्या आणि निधी मिळवा](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 फाउंडेशन: DeSci प्रकाशन साधन बिल्डर](https://descifoundation.org/) +- [DeSci.World: वापरकर्त्यांना विकेंद्रित विज्ञान पाहण्यासाठी, व्यस्त ठेवण्यासाठी वन-स्टॉप शॉप](https://desci.world) +- [फ्लेमिंग प्रोटोकॉल: ओपन-सोर्स डेटा इकॉनॉमी जी सहयोगात्मक बायोमेडिकल शोधांना चालना देते](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [OceanDAO: DAO डेटा-संबंधित विज्ञानासाठी निधी नियंत्रित करते](https://oceanprotocol.com/dao) +- [जाणीव: खुले विकेंद्रित विज्ञान कार्यप्रवाह](https://opsci.io/research/) +- [LabDAO: सिलिकोमध्ये प्रोटीन फोल्ड करा](https://alphafodl.vercel.app/) +- [Bio.xyz: तुमच्या बायोटेक DAO किंवा desci प्रकल्पासाठी निधी मिळवा](https://www.molecule.to/) +- [ResearchHub: वैज्ञानिक परिणाम पोस्ट करा आणि समवयस्कांशी संभाषण करा](https://www.researchhub.com/) +- [VitaDAO: दीर्घायुषी संशोधनासाठी प्रायोजित संशोधन कराराद्वारे निधी प्राप्त करा](https://www.vitadao.com/) +- [फ्लेमिंग प्रोटोकॉल: ओपन-सोर्स डेटा इकॉनॉमी जी सहयोगात्मक बायोमेडिकल शोधांना चालना देते](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/) +- [DeSci लॅब](https://www.desci.com/) + +आम्ही नवीन प्रकल्पांच्या सूचीसाठी सूचनांचे स्वागत करतो - कृपया प्रारंभ करण्यासाठी आमचे [सूची धोरण](/contributing/adding-desci-projects/) पहा! + +## Further reading {#further-reading} + +- [DeSci Wiki Jocelyn Pearl आणि Ultrarare द्वारे](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) +- [a16z भविष्यासाठी जोसेलिन पर्लद्वारे विकेंद्रित बायोटेकसाठी मार्गदर्शक](https://future.a16z.com/a-guide-to-decentralized-biotech/) +- [DeSci साठी केस](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) +- [DeSci साठी मार्गदर्शक](https://future.com/what-is-decentralized-science-aka-desci/) +- [विकेंद्रित विज्ञान संसाधने](https://www.vincentweisser.com/decentralized-science) +- [रेणूचे बायोफार्मा IP-NFT - एक तांत्रिक वर्णन](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) +- [जॉन स्टारद्वारे विश्वासार्ह विज्ञान प्रणाली तयार करणे](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) +- [बायोटेक DAO चा उदय](https://molecule.to/blog/the-emergence-of-biotech-daos) +- [पॉल कोल्हास - 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) +- [DeSci: सॅम्युअल अकिनोशो द्वारे संशोधनाचे भविष्य](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) +- [नादिया द्वारे विज्ञान निधी (उपसंहार: DeSci आणि नवीन क्रिप्टो प्रिमिटिव्स)](https://nadia.xyz/science-funding) +- [विकेंद्रीकरण औषधांच्या विकासात व्यत्यय आणत आहे](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) + +### Videos {#videos} + +- [विकेंद्रित विज्ञान म्हणजे काय?](https://www.youtube.com/watch?v=-DeMklVWNdA) +- [दीर्घायुष्य संशोधन आणि क्रिप्टोच्या छेदनबिंदूबद्दल विटालिक बुटेरिन आणि वैज्ञानिक ऑब्रे डी ग्रे यांच्यातील संभाषण](https://www.youtube.com/watch?v=x9TSJK1widA) +- [वैज्ञानिक प्रकाशन तुटलेले आहे. Web3 याचे निराकरण करू शकते?](https://www.youtube.com/watch?v=WkvzYgCvWj8) +- [जॉन बेनेट - DeSci, स्वतंत्र प्रयोगशाळा आणि लार्ज स्केल डेटा सायन्स](https://www.youtube.com/watch?v=zkXM9H90g_E) +- [सेबॅस्टियन ब्रुनेमेयर - DeSci बायोमेडिकल संशोधन कसे बदलू शकते आणि व्हेंचर कॅपिटल](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/public/content/translations/mr/nft/index.md b/public/content/translations/mr/nft/index.md new file mode 100644 index 00000000000..18de455fa66 --- /dev/null +++ b/public/content/translations/mr/nft/index.md @@ -0,0 +1,94 @@ +--- +title: नॉन-फंगीबल टोकन (NFT) +description: Ethereum वर NFT चे विहंगावलोकन +lang: mr +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: होलोग्रामद्वारे Ethचा लोगो प्रदर्शित केले जात आहे. +summaryPoint1: Ethereum-आधारित मालमत्ता म्हणून अद्वितीय कोणत्याही गोष्टीचे प्रतिनिधित्व करण्याचा एक मार्ग. +summaryPoint2: NFT सामग्री निर्मात्यांना पूर्वीपेक्षा अधिक शक्ती देत ​​आहेत. +summaryPoint3: Ethereum ब्लॉकचेनवर स्मार्ट कॉन्ट्रॅक्टद्वारे समर्थित. +--- + +## What are NFTs? {#what-are-nfts} + +NFT हे प्रतिक आहेत जे वैयक्तिकरित्या अद्वितीय आहेत. प्रत्येक NFT वेगवेगळे गुणधर्म (बुरशी नसलेले) असतात आणि ते दुर्मिळ असतात. हे ERC-20 सारख्या टोकनपेक्षा वेगळे आहे जेथे सेटमधील प्रत्येक टोकन एकसारखे असते आणि त्याचे गुणधर्म समान असतात ('फंगीबल'). तुमच्या वॉलेटमध्ये कोणते विशिष्ट डॉलरचे बिल आहे याची तुम्हाला पर्वा नाही, कारण ते सर्व एकसारखे आणि समान आहेत. तथापि, तुमच्या मालकीच्या कोणत्या विशिष्ट NFT ची काळजी तुम्ही _करता_, कारण त्या सर्वांकडे वैयक्तिक गुणधर्म आहेत जे त्यांना इतरांपेक्षा वेगळे करतात ('नॉन-फंजिबल'). + +प्रत्येक NFT ची विशिष्टता कला, संग्रहणीय वस्तू किंवा अगदी रिअल इस्टेट सारख्या गोष्टींचे टोकनीकरण सक्षम करते, जेथे एक विशिष्ट अद्वितीय NFT काही विशिष्ट अद्वितीय वास्तविक जग किंवा डिजिटल आयटमचे प्रतिनिधित्व करते. Ethereum ब्लॉकचेनद्वारे मालमत्तेची मालकी सुरक्षित केली जाते - कोणीही मालकीच्या रेकॉर्डमध्ये बदल करू शकत नाही किंवा नवीन NFT अस्तित्वात कॉपी/पेस्ट करू शकत नाही. + + + +## मालमत्तेचे इंटरनेट {#internet-of-assets} + +NFT आणि Ethereum आज इंटरनेटवर अस्तित्वात असलेल्या काही समस्यांचे निराकरण करतात. सर्व काही अधिक डिजिटल होत असताना, भौतिक वस्तूंचे गुणधर्म जसे की टंचाई, विशिष्टता आणि मालकीचा पुरावा यांची प्रतिकृती तयार करण्याची आवश्यकता आहे. केंद्रीय संस्थेद्वारे नियंत्रित नसलेल्या मार्गाने. उदाहरणार्थ, NFT सह, तुम्ही एका कंपनीच्या विशिष्ट संगीत अॅपसाठी विशिष्ट नसलेल्या संगीत mp3 चे मालक असू शकता किंवा तुम्ही एक सोशल मीडिया हँडल घेऊ शकता जे तुम्ही विकू शकता किंवा स्वॅप करू शकता, परंतु तुमच्याकडून अनियंत्रितपणे काढून घेतले जाऊ शकत नाही प्लॅटफॉर्म प्रदाता. + +आज आपल्यापैकी बरेच जण वापरत असलेल्या इंटरनेटच्या तुलनेत NFT चे इंटरनेट कसे दिसते ते येथे आहे... + +### एक तुलना {#nft-comparison} + +| एक NFT इंटरनेट | आज इंटरनेट | +| ----------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| तुम्ही तुमच्या मालमत्तेचे मालक आहात! फक्त तुम्ही ते विकू किंवा स्वॅप करू शकता. | तुम्ही एखाद्या संस्थेकडून मालमत्ता भाड्याने घेता. | +| NFT डिजिटली अद्वितीय आहेत, कोणतेही दोन NFT समान नाहीत. | खाद्या घटकाची प्रत सहसा मूळपासून वेगळी करता येत नाही. | +| NFT ची मालकी कोणीही सत्यापित करण्यासाठी ब्लॉकचेनवर संग्रहित केली आहे. | डिजिटल वस्तूंच्या मालकीचे रेकॉर्ड संस्थांद्वारे नियंत्रित सर्व्हरवर संग्रहित केले जातात - तुम्ही त्यासाठी त्यांचे शब्द घेणे आवश्यक आहे. | +| NFT हे Ethereum वरील स्मार्ट कॉन्ट्रॅक्ट आहेत. याचा अर्थ ते Ethereum वरील इतर स्मार्ट कॉन्ट्रॅक्ट आणि अॅप्समध्ये सहजपणे वापरले जाऊ शकतात! | डिजिटल वस्तू असलेल्या कंपन्यांना सहसा त्यांच्या स्वतःच्या "भिंतीच्या बाग" पायाभूत सुविधांची आवश्यकता असते. | +| सामग्री निर्माते त्यांचे कार्य कोठेही विकू शकतात आणि जागतिक बाजारपेठेत प्रवेश करू शकतात. | निर्माते ते वापरत असलेल्या प्लॅटफॉर्मच्या पायाभूत सुविधा आणि वितरणावर अवलंबून असतात. हे सहसा वापराच्या अटी आणि भौगोलिक निर्बंधांच्या अधीन असतात. | +| NFT निर्माते त्यांच्या स्वतःच्या कामावर मालकी हक्क राखू शकतात आणि थेट NFT करारामध्ये प्रोग्राम रॉयल्टी ठेवू शकतात. | प्लॅटफॉर्म, जसे की संगीत प्रवाह सेवा, विक्रीतून मिळालेला बहुतांश नफा राखून ठेवतात. | + +## NFT कसे कार्य करतात? {#how-nfts-work} + +Ethereum वर जारी केलेल्या कोणत्याही टोकनप्रमाणे, NFT स्मार्ट कॉन्ट्रॅक्टद्वारे जारी केले जातात. स्मार्ट कॉन्ट्रॅक्ट अनेक NFT मानकांपैकी (सामान्यत: ERC-721 किंवा ERC-1155) एकाशी सुसंगत आहे जे कराराची कार्ये परिभाषित करतात. करार ('मिंट') NFT तयार करू शकतो आणि त्यांना विशिष्ट मालकास नियुक्त करू शकतो. विशिष्ट पत्त्यांवर विशिष्ट NFT मॅप करून करारामध्ये मालकीची व्याख्या केली जाते. NFT मध्ये एक ID आहे आणि सामान्यत: त्याच्याशी संबंधित मेटाडेटा आहे जो विशिष्ट टोकन अद्वितीय बनवतो. + +जेव्हा एखादी व्यक्ती NFT तयार करते किंवा मिंट करते, तेव्हा ते त्यांच्या पत्त्यावर विशिष्ट NFT नियुक्त करणारे स्मार्ट करारातील फंक्शन खरोखर कार्यान्वित करत असतात. ही माहिती कॉन्ट्रॅक्टच्या स्टोरेजमध्ये साठवली जाते, जो ब्लॉकचेनचा भाग आहे. कराराचा निर्माता करारामध्ये अतिरिक्त तर्क लिहू शकतो, उदाहरणार्थ एकूण पुरवठा मर्यादित करणे किंवा प्रत्येक वेळी टोकन हस्तांतरित केल्यावर निर्मात्याला देय असलेली रॉयल्टी परिभाषित करणे. + +## NFT कशासाठी वापरतात? {#nft-use-cases} + +NFT चा वापर अनेक गोष्टींसाठी केला जातो, यासह: + +- आपण कार्यक्रमास उपस्थित राहिल्याचे सिद्ध करणे +- तुम्ही कोर्स पूर्ण केल्याचे प्रमाणित करा +- खेळांसाठी मालकीच्या वस्तू +- डिजिटल कला +- वास्तविक-जगातील मालमत्ता टोकन करणे +- आपली ऑनलाइन ओळख सिद्ध करणे +- सामग्रीमध्ये प्रवेश करणे +- तिकीट +- विकेंद्रित इंटरनेट डोमेन नावे +- DeFi मध्ये संपार्श्विक + +कदाचित तुम्ही असे कलाकार आहात ज्यांना NFT वापरून त्यांचे कार्य सामायिक करायचे आहे, नियंत्रण न गमावता आणि मध्यस्थांना तुमचा नफा बलिदान न देता. तुम्ही एक नवीन करार तयार करू शकता आणि NFT ची संख्या, त्यांचे गुणधर्म आणि काही विशिष्ट कलाकृतीची लिंक निर्दिष्ट करू शकता. कलाकार या नात्याने, तुम्ही स्मार्ट कॉन्ट्रॅक्टमध्ये तुम्हाला देय असलेली रॉयल्टी प्रोग्राम करू शकता (उदा. प्रत्येक वेळी NFT हस्तांतरित केल्यावर विक्री किमतीच्या 5% रक्कम करार मालकाला हस्तांतरित करा). तुम्ही नेहमी हे देखील सिद्ध करू शकता की तुम्ही NFT तयार केले आहे कारण तुमच्या मालकीचे वॉलेट आहे ज्याने करार तैनात केला आहे. तुमचे खरेदीदार सहजपणे सिद्ध करू शकतात की त्यांच्याकडे तुमच्या संग्रहातील एक प्रामाणिक NFT आहे कारण त्यांचा वॉलेट पत्ता तुमच्या स्मार्ट करारातील टोकनशी संबंधित आहे. ते Ethereum इकोसिस्टममध्ये त्याचा वापर करू शकतात, त्याच्या सत्यतेवर विश्वास ठेवतात. + +किंवा एखाद्या क्रीडा स्पर्धेसाठी तिकीट विचारात घ्या. ज्याप्रमाणे एखाद्या कार्यक्रमाचा आयोजक किती तिकिटे विकायची हे निवडू शकतो, त्याचप्रमाणे NFT चा निर्माता किती प्रतिकृती अस्तित्वात आहे हे ठरवू शकतो. काहीवेळा या अचूक प्रतिकृती असतात, जसे की 5000 सामान्य प्रवेश तिकिटे. काहीवेळा पुष्कळ टकसाळ असतात जे अगदी सारखे असतात, परंतु प्रत्येक थोडे वेगळे असते, जसे की नियुक्त केलेल्या सीटसह तिकीट. हे तिकिट हाताळणाऱ्यांना पैसे न देता पीअर-टू-पीअर खरेदी आणि विक्री करता येतात आणि खरेदीदार नेहमी कराराचा पत्ता तपासून तिकिटाच्या सत्यतेची खात्री देतो. + +ethereum.org वर, लोकांनी आमच्या GitHub रेपॉजिटरीमध्ये योगदान दिले आहे किंवा कॉल अटेंड केले आहेत हे दाखवण्यासाठी NFT चा वापर केला जातो आणि आम्हाला आमचे स्वतःचे NFT डोमेन नाव देखील मिळाले आहे. तुम्ही ethereum.org मध्ये योगदान दिल्यास, तुम्ही POAP NFT चा दावा करू शकता. काही क्रिप्टो मीटअप्सनी POAP चा तिकीट म्हणून वापर केला आहे. [योगदानाबद्दल अधिक](/contributing/#poap). + +![ethereum.org POAP](./poap.png) + +या वेबसाइटवर NFT, **ethereum.eth** द्वारे समर्थित पर्यायी डोमेन नाव देखील आहे. आमचा `.org` पत्ता डोमेन नेम सिस्टम (DNS) प्रदात्याद्वारे मध्यवर्तीरित्या व्यवस्थापित केला जातो, तर ethereum`.eth` Ethereum वर Ethereum नेम सेवेद्वारे (ENS) नोंदणीकृत आहे. आणि ते आमच्या मालकीचे आणि व्यवस्थापित केले आहे. [आमचे ENS रेकॉर्ड तपासा](https://app.ens.domains/name/ethereum.eth) + +[ENS वर अधिक](https://app.ens.domains) + + + +### NFT सुरक्षा {#nft-security} + +Ethereum ची सुरक्षितता प्रूफ-ऑफ-स्टेकमधून येते. सिस्टम दुर्भावनापूर्ण क्रियांना आर्थिकदृष्ट्या परावृत्त करण्यासाठी, Ethereum छेडछाड-प्रूफ बनवण्यासाठी डिझाइन केले आहे. हेच NFT शक्य करते. एकदा तुमचा NFT व्यवहार असलेला ब्लॉक अंतिम झाला की तो बदलण्यासाठी आक्रमणकर्त्याला लाखो ETH खर्च करावे लागतील. Ethereum सॉफ्टवेअर चालवणारा कोणीही NFT सह अप्रामाणिक छेडछाड शोधण्यात तत्काळ सक्षम असेल आणि वाईट अभिनेत्याला आर्थिक दंड आकारला जाईल आणि बाहेर काढले जाईल. + +NFT शी संबंधित सुरक्षा समस्या बहुतेकदा फिशिंग घोटाळे, स्मार्ट कॉन्ट्रॅक्ट भेद्यता किंवा वापरकर्ता त्रुटींशी संबंधित असतात (जसे की अनवधानाने खाजगी की उघड करणे), NFT मालकांसाठी चांगली वॉलेट सुरक्षा गंभीर बनवते. + + + सुरक्षिततेबद्दल अधिक + + +## Further reading {#further-reading} + +- [NFT साठी एक नवशिक्या मार्गदर्शक](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _लिंडा झी, जानेवारी 2020_ +- [EtherscanNFT ट्रॅकर](https://etherscan.io/nft-top-contracts) +- [ERC-721 टोकन मानक](/developers/docs/standards/tokens/erc-721/) +- [ERC-1155 टोकन मानक](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/public/content/translations/mr/refi/index.md b/public/content/translations/mr/refi/index.md new file mode 100644 index 00000000000..50e10a72637 --- /dev/null +++ b/public/content/translations/mr/refi/index.md @@ -0,0 +1,79 @@ +--- +title: रीजनरेटिव्ह फायनान्स (ReFi) +description: ReFi आणि त्याच्या वर्तमान वापर प्रकरणांचे विहंगावलोकन. +lang: mr +template: use-cases +emoji: ":recycle:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: पुनरुत्पादक तत्त्वांवर आधारित पर्यायी आर्थिक व्यवस्था +summaryPoint2: हवामान बदलासारख्या जागतिक स्तरावरील समन्वय संकटांचे निराकरण करण्यासाठी Ethereum चा वापर करण्याचा प्रयत्न +summaryPoint3: सत्यापित कार्बन क्रेडिट्स सारख्या पर्यावरणीय फायद्याच्या मालमत्तेचे मोठ्या प्रमाणात स्केल करण्याचे साधन +--- + +## ReFi म्हणजे काय? {#what-is-refi} + +**रिजनरेटिव्ह फायनान्स (ReFi)** हा ब्लॉकचेनच्या शीर्षस्थानी तयार केलेल्या साधनांचा आणि कल्पनांचा एक संच आहे, ज्याचा उद्देश एक्सट्रॅक्टिव्ह किंवा शोषण करण्याऐवजी पुनरुत्पादक अर्थव्यवस्था निर्माण करणे आहे. अखेरीस, एक्सट्रॅक्टिव्ह सिस्टम उपलब्ध संसाधने कमी करतात आणि कोलमडतात; पुनरुत्पादक यंत्रणेशिवाय, त्यांच्यात लवचिकता नाही. ReFi आपल्या ग्रहातून आणि समुदायांमधुन संसाधनांच्या अनिश्चित उत्खननापासून आर्थिक मूल्याची निर्मिती करणे आवश्यक आहे या गृहीतकावर कार्य करते. + +त्याऐवजी, ReFi चे उद्दिष्ट पुनर्जन्म चक्र तयार करून पर्यावरणीय, सांप्रदायिक किंवा सामाजिक समस्या सोडवणे आहे. या प्रणाली एकाच वेळी इकोसिस्टम आणि समुदायांना लाभ देत असताना सहभागींसाठी मूल्य निर्माण करतात. + +[Capital Institute](https://capitalinstitute.org) च्या जॉन फुलरटन यांनी प्रवर्तित केलेली पुनर्निर्मिती अर्थशास्त्राची संकल्पना ReFi च्या पायांपैकी एक आहे. त्यांनी आठ परस्परसंबंधित तत्त्वे प्रस्तावित केली जी प्रणालीगत आरोग्यावर आधारित आहेत: + +![आठ परस्पर जोडलेली तत्त्वे](./refi-regenerative-economy-diagram.png) + +[स्मार्ट कॉन्ट्रॅक्ट्स](/developers/docs/smart-contracts/) आणि [विकेंद्रित वित्त (DeFi)](/defi/) अनुप्रयोग वापरून ReFi प्रकल्प ही तत्त्वे ओळखतात पुनरुत्पादक वर्तनांना प्रोत्साहन द्या, उदा. बिघडलेली परिसंस्था पुनर्संचयित करणे आणि हवामान बदल आणि जैवविविधता नष्ट होणे यासारख्या जागतिक समस्यांवर मोठ्या प्रमाणावर सहकार्य करणे. + +ReFi [विकेंद्रित विज्ञान (DeSci)](/desci/) चळवळीला देखील ओव्हरलॅप करते, जे Ethereumचा वापर वित्तपुरवठा, निर्मिती, पुनरावलोकन, क्रेडिट, संग्रह आणि वैज्ञानिक ज्ञानाचा प्रसार करण्यासाठी व्यासपीठ म्हणून करते. DeSci साधने वृक्षारोपण, महासागरातून प्लास्टिक काढून टाकणे किंवा खराब झालेले पर्यावरण पुनर्संचयित करणे यासारख्या पुनरुत्पादक क्रियाकलापांची अंमलबजावणी आणि निरीक्षण करण्यासाठी पडताळणीयोग्य मानके आणि पद्धती विकसित करण्यासाठी उपयुक्त ठरू शकतात. + +## कार्बन क्रेडिटचे टोकनीकरण {#tokenization-of-carbon-credits} + +**[स्वैच्छिक कार्बन बाजार (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** ही कार्बन उत्सर्जनावर सत्यापित सकारात्मक प्रभाव पाडणारी, एकतर चालू उत्सर्जन कमी करते किंवा वातावरणातून आधीच उत्सर्जित होणारे हरितगृह वायू काढून टाकणारी प्रकल्पांना निधी पुरवणारी यंत्रणा आहे. या प्रकल्पांना त्यांची पडताळणी केल्यानंतर "कार्बन क्रेडिट्स" नावाची मालमत्ता मिळते, जी ते अशा व्यक्ती आणि संस्थांना विकू शकतात ज्यांना हवामान कृतीचे समर्थन करायचे आहे. + +VCM व्यतिरिक्त, अनेक सरकारी-अनिदेशित कार्बन मार्केट्स ('अनुपालन बाजार') देखील आहेत ज्यांचे उद्दिष्ट कायदे किंवा नियमांद्वारे एखाद्या विशिष्ट अधिकारक्षेत्रात (उदा. देश किंवा प्रदेश) द्वारे कार्बनची किंमत स्थापित करणे आहे, परवानग्यांचा पुरवठा नियंत्रित करणे वितरित केले. अनुपालन बाजार उत्सर्जन कमी करण्यासाठी त्यांच्या अधिकारक्षेत्रातील प्रदूषकांना प्रोत्साहन देतात, परंतु ते आधीच उत्सर्जित झालेले हरितगृह वायू काढून टाकण्यास सक्षम नाहीत. + +अलिकडच्या दशकात त्याचा विकास असूनही, VCM विविध समस्यांनी ग्रस्त आहे: + +1. उच्च खंडित तरलता +2. अपारदर्शक व्यवहार यंत्रणा +3. उच्च फी +4. खूप मंद ट्रेडिंग गती +5. स्केलेबिलिटीचा अभाव + +VCM ला नवीन ब्लॉकचेन-आधारित **डिजिटल कार्बन मार्केट (DCM)** मध्ये बदलणे ही कार्बन क्रेडिटचे प्रमाणीकरण, व्यवहार आणि वापरासाठी विद्यमान तंत्रज्ञान अपग्रेड करण्याची संधी असू शकते. ब्लॉकचेन सार्वजनिकरित्या पडताळण्यायोग्य डेटा, वापरकर्त्यांच्या विस्तृत श्रेणीसाठी प्रवेश आणि अधिक तरलतेसाठी परवानगी देतात. + +पारंपारिक बाजारातील अनेक समस्या दूर करण्यासाठी ReFi प्रकल्प ब्लॉकचेन तंत्रज्ञान वापरतात: + +- **लिक्विडिटी थोड्या संख्येने लिक्विडिटी पूलमध्ये केंद्रित आहे** ज्याचा कोणीही मुक्तपणे व्यापार करू शकतो. मोठ्या संस्था तसेच वैयक्तिक वापरकर्ते विक्रेते/खरेदीदार, सहभाग शुल्क किंवा पूर्व नोंदणीसाठी मॅन्युअल शोध न घेता हे पूल वापरू शकतात. +- **सर्व व्यवहार सार्वजनिक ब्लॉकचेनवर रेकॉर्ड केले जातात**. ट्रेडिंग अॅक्टिव्हिटीमुळे प्रत्येक कार्बन क्रेडिटचा मार्ग DCM मध्ये उपलब्ध होताच कायमचा शोधता येतो. +- **व्यवहाराची गती जवळजवळ त्वरित आहे**. लेगसी मार्केटद्वारे मोठ्या प्रमाणात कार्बन क्रेडिट्स सुरक्षित करण्यासाठी काही दिवस किंवा आठवडे लागू शकतात, परंतु हे DCM मध्ये काही सेकंदात साध्य केले जाऊ शकते. +- **व्यापार क्रियाकलाप मध्यस्थांशिवाय होतो**, जे जास्त शुल्क आकारतात. एका विश्लेषण फर्मच्या डेटानुसार डिजिटल कार्बन क्रेडिट्स [समान पारंपारिक क्रेडिटच्या तुलनेत 62% किमतीत सुधारणा](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne) दर्शवतात. +- **DCM स्केलेबल आहे** आणि व्यक्ती आणि बहुराष्ट्रीय कंपन्यांच्या मागण्या सारख्याच पूर्ण करू शकतात. + +### DCM चे प्रमुख घटक {#key-components-dcm} + +चार प्रमुख घटक DCM चे वर्तमान लँडस्केप बनवतात: + +1. [Verra](https://verra.org/project/vcs-program/registry-system/) आणि [गोल्ड स्टँडर्ड](https://www.goldstandard.org/) सारख्या नोंदणी कार्बन क्रेडिट्स तयार करणारे प्रकल्प विश्वसनीय आहेत याची खात्री करा. ते डेटाबेस देखील ऑपरेट करतात ज्यामध्ये डिजिटल कार्बन क्रेडिट्स उद्भवतात आणि हस्तांतरित किंवा वापरल्या जाऊ शकतात (निवृत्त). + +ब्लॉकचेनवर नाविन्यपूर्ण प्रकल्पांची एक नवीन लाट तयार केली जात आहे जी या क्षेत्रातील पदावर व्यत्यय आणण्याचा प्रयत्न करीत आहेत. + +2. कार्बन पूल, a.k.a. टोकनायझर्स, पारंपारिक रजिस्ट्रीमधून DCM मध्ये कार्बन क्रेडिट्सचे प्रतिनिधित्व किंवा हस्तांतरण करण्यासाठी तंत्रज्ञान प्रदान करतात. उल्लेखनीय उदाहरणांमध्ये [टूकन प्रोटोकॉल](https://toucan.earth/), [C3](https://c3.app/) आणि [Moss.Earth](https://moss.earth/) यांचा समावेश आहे. +3. एकात्मिक सेवा अंतिम वापरकर्त्यांना कार्बन टाळणे आणि/किंवा काढण्याचे क्रेडिट देतात जेणेकरुन ते क्रेडिटच्या पर्यावरणीय फायद्याचा दावा करू शकतील आणि त्यांचे हवामान कृतीचे समर्थन जगासोबत शेअर करू शकतील. + +काही जसे की [Klima Infinity](https://www.klimadao.finance/infinity) आणि [Senken](https://senken.io/) ऑफर करतात जे तृतीय पक्षांद्वारे विकसित केलेले आणि Verra सारख्या स्थापित मानकांनुसार जारी केलेले विविध प्रकारचे प्रकल्प; [Nori](https://nori.com/) सारखे इतर केवळ त्यांच्या स्वतःच्या कार्बन क्रेडिट मानकांनुसार विकसित केलेले विशिष्ट प्रकल्प ऑफर करतात, जे ते जारी करतात आणि ज्यासाठी त्यांचे स्वतःचे समर्पित मार्केटप्लेस आहे. + +4. अंतर्निहित रेल आणि पायाभूत सुविधा जे कार्बन मार्केटच्या संपूर्ण पुरवठा साखळीचा प्रभाव आणि कार्यक्षमता वाढवण्यास मदत करतात. [KlimaDAO](http://klimadao.finance/) सार्वजनिक हित म्हणून तरलतेचा पुरवठा करते (कोणालाही पारदर्शक किमतीवर कार्बन क्रेडिट्स खरेदी किंवा विकण्याची परवानगी देते), कार्बन मार्केटच्या वाढीव थ्रूपुटला प्रोत्साहन देते आणि यासह सेवानिवृत्ती बक्षिसे, आणि विविध प्रकारच्या टोकनाइज्ड कार्बन क्रेडिट्स बद्दल डेटा ऍक्सेस करण्यासाठी, तसेच प्राप्त आणि निवृत्त करण्यासाठी वापरकर्ता-अनुकूल इंटरऑपरेबल टूलिंग प्रदान करते. + +## कार्बन मार्केटच्या पलीकडे ReFi {#refi-beyond} + +जरी सध्या सर्वसाधारणपणे कार्बन मार्केट्सवर आणि विशेषत: अंतराळात VCM चे DCM मध्ये संक्रमण करण्यावर जोरदार जोर दिला जात असला तरी, “ReFi” हा शब्द काटेकोरपणे कार्बनपुरता मर्यादित नाही. कार्बन क्रेडिट्सच्या पलीकडे इतर पर्यावरणीय मालमत्ता विकसित आणि टोकनीकृत केल्या जाऊ शकतात, ज्याचा अर्थ भविष्यातील आर्थिक प्रणालींच्या मूलभूत स्तरांमध्ये इतर नकारात्मक बाह्यतेची किंमत देखील असू शकते. शिवाय, या आर्थिक मॉडेलचे पुनरुत्पादक पैलू इतर क्षेत्रांवर लागू केले जाऊ शकतात, जसे की [Gitcoin](https://gitcoin.co/) सारख्या चतुर्भुज निधी प्लॅटफॉर्मद्वारे सार्वजनिक वस्तूंचा निधी. खुल्या सहभागाच्या आणि संसाधनांच्या न्याय्य वितरणाच्या कल्पनेवर बांधलेल्या संस्था प्रत्येकाला मुक्त-स्रोत सॉफ्टवेअर प्रकल्प, तसेच शैक्षणिक, पर्यावरणीय आणि समुदाय-चालित प्रकल्पांसाठी पैसे खर्च करण्यास सक्षम करतात. + +भांडवलाची दिशा उत्खनन पद्धतींपासून दूर पुनर्जन्म प्रवाहाकडे वळवून, सामाजिक, पर्यावरणीय किंवा सांप्रदायिक फायदे प्रदान करणारे प्रकल्प आणि कंपन्या — आणि जे पारंपारिक वित्तपुरवठ्यात निधी मिळवण्यात अयशस्वी होऊ शकतात — जमिनीवरून उतरू शकतात आणि बरेच जलद आणि सहज समाजासाठी सकारात्मक बाह्यता निर्माण करू शकतात. निधीच्या या मॉडेलमध्ये संक्रमण केल्याने अधिक सर्वसमावेशक आर्थिक प्रणालींचे दरवाजे देखील खुले होतात, जेथे सर्व लोकसंख्याशास्त्रातील लोक केवळ निष्क्रिय निरीक्षकांऐवजी सक्रिय सहभागी होऊ शकतात. ReFi आपल्या प्रजातींना आणि आपल्या ग्रहावरील सर्व जीवसृष्टीसमोरील अस्तित्त्वात्मक आव्हानांवर समन्वय साधण्याची यंत्रणा म्हणून Ethereum चे दर्शन देते - नवीन आर्थिक प्रतिमानाचा आधारभूत स्तर म्हणून, येणाऱ्या शतकांसाठी अधिक समावेशक आणि टिकाऊ भविष्य सक्षम करते. + +## ReFi वर अतिरिक्त वाचन + +- [कार्बन चलने आणि अर्थव्यवस्थेतील त्यांचे स्थान यांचे उच्च-स्तरीय विहंगावलोकन](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) +- [द मिनिस्ट्री फॉर फ्युचर, हवामान बदलाशी लढण्यासाठी कार्बन-समर्थित चलनाची भूमिका दर्शविणारी कादंबरी](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) +- [स्केलिंग स्वैच्छिक कार्बन मार्केटसाठी टास्कफोर्सचा तपशीलवार अहवाल](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) +- [केविन ओवोकी आणि इव्हान मियाझोनोची ReFi वर CoinMarketCap शब्दावली एंट्री](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/public/content/translations/mr/smart-contracts/index.md b/public/content/translations/mr/smart-contracts/index.md new file mode 100644 index 00000000000..50914e35b2e --- /dev/null +++ b/public/content/translations/mr/smart-contracts/index.md @@ -0,0 +1,84 @@ +--- +title: स्मार्ट कॉन्ट्रॅक्ट +description: स्मार्ट कॉन्ट्रॅक्टचा एक गैर-तांत्रिक परिचय +lang: mr +--- + +# Introduction to smart contracts {#introduction-to-smart-contracts} + +स्मार्ट कॉन्ट्रॅक्ट्स हे Ethereum च्या ऍप्लिकेशन लेयरचे मूलभूत बिल्डिंग ब्लॉक्स आहेत. ते ब्लॉकचेनवर संग्रहित केलेले संगणक प्रोग्राम आहेत जे "जर हे तर ते" तर्काचे पालन करतात आणि त्यांच्या कोडद्वारे परिभाषित केलेल्या नियमांनुसार कार्यान्वित करण्याची हमी दिली जाते, जे एकदा तयार केल्यावर बदलता येत नाही. + +निक साबो यांनी "स्मार्ट कॉन्ट्रॅक्ट" हा शब्द तयार केला. 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). + +साबो ने एका डिजिटल मार्केटप्लेसची कल्पना केली जिथे स्वयंचलित, क्रिप्टोग्राफिकली-सुरक्षित प्रक्रिया विश्वसनीय मध्यस्थांशिवाय व्यवहार आणि व्यवसाय कार्ये करण्यास सक्षम करतात. Ethereumवरील स्मार्ट कॉन्ट्रॅक्ट्सने ही दृष्टी प्रत्यक्षात आणली. + +## पारंपारिक करारांवर विश्वास ठेवा {#trust-and-contracts} + +पारंपारिक करारातील सर्वात मोठी समस्या म्हणजे विश्वासार्ह व्यक्तींनी कराराच्या परिणामांचे पालन करणे आवश्यक आहे. + +येथे एक उदाहरण आहे: + +अॅलिस आणि बॉबची सायकल शर्यत आहे. एलिसने बॉबसोबत $10 ची पैज लावली की ती शर्यत जिंकेल. बॉबला खात्री आहे की तो जिंकेल आणि पैजेसाठी तयार होतो. शेवटी, अॅलिसने बॉबच्या पुढे शर्यत पूर्ण केली आणि ती स्पष्ट विजेता ठरली. परंतु अॅलिसने फसवणूक केली असावी असा दावा करून बॉबने पैज देण्यास नकार दिला. + +हे मूर्ख उदाहरण कोणत्याही गैर-स्मार्ट करारातील समस्या स्पष्ट करते. जरी कराराच्या अटींची पूर्तता झाली (म्हणजे तुम्ही शर्यतीतील विजेते असाल), तरीही तुम्ही करार पूर्ण करण्यासाठी दुसर्‍या व्यक्तीवर विश्वास ठेवला पाहिजे (म्हणजे पैजवर पेआउट). + +## A digital vending machine {#vending-machine} + +स्मार्ट कॉन्ट्रॅक्टसाठी एक साधे रूपक म्हणजे व्हेंडिंग मशीन, जे काहीसे स्मार्ट कॉन्ट्रॅक्टसारखेच कार्य करते - विशिष्ट इनपुट्स पूर्वनिर्धारित आउटपुटची हमी देतात. + +- तुम्ही उत्पादन निवडा +- व्हेंडिंग मशीन किंमत दाखवते +- तुम्ही किंमत द्या +- व्हेंडिंग मशीन तुम्ही योग्य रक्कम भरली आहे याची पडताळणी करते +- व्हेंडिंग मशीन तुम्हाला तुमची वस्तू देते + +व्हेंडिंग मशीन सर्व आवश्यकता पूर्ण झाल्यानंतरच तुमचे इच्छित उत्पादन वितरित करेल. तुम्ही एखादे उत्पादन न निवडल्यास किंवा पुरेसे पैसे न टाकल्यास, व्हेंडिंग मशीन तुमचे उत्पादन देणार नाही. + +## स्वयंचलित अंमलबजावणी {#automation} + +स्मार्ट कॉन्ट्रॅक्टचा मुख्य फायदा असा आहे की जेव्हा काही अटी पूर्ण केल्या जातात तेव्हा तो निश्चितपणे अस्पष्ट कोडची अंमलबजावणी करतो. परिणामाचा अर्थ लावण्यासाठी किंवा वाटाघाटी करण्यासाठी माणसाची वाट पाहण्याची गरज नाही. हे विश्वसनीय मध्यस्थांची गरज काढून टाकते. + +उदाहरणार्थ, तुम्ही एखाद्या मुलासाठी एस्क्रोमध्ये निधी ठेवणारा स्मार्ट करार लिहू शकता, ज्यामुळे त्यांना विशिष्ट तारखेनंतर पैसे काढता येतील. त्यांनी त्या तारखेपूर्वी पैसे काढण्याचा प्रयत्न केल्यास, स्मार्ट कराराची अंमलबजावणी होणार नाही. किंवा तुम्ही असा करार लिहू शकता जे तुम्ही डीलरला पैसे देता तेव्हा आपोआप तुम्हाला कारच्या शीर्षकाची डिजिटल आवृत्ती देते. + +## अंदाजे परिणाम {#predictability} + +पारंपारिक करार संदिग्ध आहेत कारण ते त्यांचा अर्थ लावण्यासाठी आणि अंमलात आणण्यासाठी मानवांवर अवलंबून असतात. उदाहरणार्थ, दोन न्यायाधीश एखाद्या कराराचा वेगळा अर्थ लावू शकतात, ज्यामुळे विसंगत निर्णय आणि असमान परिणाम होऊ शकतात. स्मार्ट कॉन्ट्रॅक्ट ही शक्यता काढून टाकतात. त्याऐवजी, स्मार्ट कॉन्ट्रॅक्ट्स कॉन्ट्रॅक्टच्या कोडमध्ये लिहिलेल्या अटींवर आधारित अचूकपणे अंमलात आणतात. या अचूकतेचा अर्थ असा आहे की समान परिस्थिती लक्षात घेता, स्मार्ट करार समान परिणाम देईल. + +## सार्वजनिक रेकॉर्ड {#public-record} + +स्मार्ट कॉन्ट्रॅक्ट ऑडिट आणि ट्रॅकिंगसाठी उपयुक्त आहेत. Ethereum स्मार्ट कॉन्ट्रॅक्ट सार्वजनिक ब्लॉकचेनवर असल्याने, कोणीही मालमत्ता हस्तांतरण आणि इतर संबंधित माहिती त्वरित ट्रॅक करू शकतो. उदाहरणार्थ, तुमच्या पत्त्यावर कोणीतरी पैसे पाठवले आहेत हे पाहण्यासाठी तुम्ही तपासू शकता. + +## गोपनीयता संरक्षण {#privacy-protection} + +स्मार्ट कॉन्ट्रॅक्ट तुमच्या गोपनीयतेचेही संरक्षण करतात. Ethereum हे एक छद्मनावी नेटवर्क असल्याने (तुमचे व्यवहार सार्वजनिकपणे एका अनन्य क्रिप्टोग्राफिक पत्त्याशी जोडलेले आहेत, तुमची ओळख नाही), तुम्ही तुमच्या गोपनीयतेचे निरीक्षकांपासून संरक्षण करू शकता. + +## दृश्यमान अटी {#visible-terms} + +शेवटी, पारंपारिक करारांप्रमाणे, तुम्ही स्वाक्षरी करण्यापूर्वी (किंवा अन्यथा त्याच्याशी संवाद साधण्यापूर्वी) स्मार्ट करारामध्ये काय आहे ते तपासू शकता. स्मार्ट कराराची पारदर्शकता हमी देते की कोणीही त्याची छाननी करू शकेल. + +## स्मार्ट करार वापर प्रकरणे {#use-cases} + +स्मार्ट कॉन्ट्रॅक्ट मूलत: संगणक प्रोग्राम करू शकतील असे काहीही करू शकतात. + +ते गणना करू शकतात, चलन तयार करू शकतात, डेटा संग्रहित करू शकतात, मिंट NFT, संप्रेषणे पाठवू शकतात आणि ग्राफिक्स तयार करू शकतात. येथे काही लोकप्रिय, वास्तविक-जगाची उदाहरणे आहेत: + +- [स्टेबलकॉइन्स](/stablecoins/) +- [अद्वितीय डिजिटल मालमत्ता तयार करणे आणि वितरित करणे](/nft/) +- [एक स्वयंचलित, खुले चलन विनिमय](/get-eth/#dex) +- [विकेंद्रित गेमिंग](/dapps/?category=gaming) +- [विमा पॉलिसी जी आपोआप भरली जाते](https://etherisc.com/) +- [एक मानक जे लोकांना सानुकूलित, इंटरऑपरेबल चलने तयार करू देते](/developers/docs/standards/tokens/) + +## More of a visual learner? {#visual-learner} + +फाइनेमॅटिक्स स्मार्ट कॉन्ट्रॅक्टचे स्पष्टीकरण पहा: + + + +## Further reading {#further-reading} + +- [स्मार्ट कॉन्ट्रॅक्ट जग कसे बदलतील](https://www.youtube.com/watch?v=pA6CGuXEKtQ) +- [स्मार्ट कॉन्ट्रॅक्ट: ब्लॉकचेन तंत्रज्ञान जे वकीलांची जागा घेईल](https://blockgeeks.com/guides/smart-contracts/) +- [विकसकांसाठी स्मार्ट कॉन्ट्रॅक्ट](/developers/docs/smart-contracts/) +- [स्मार्ट-कॉन्ट्रॅक्ट लिहायला शिका](/developers/learning-tools/) +- [मास्टरिंग Ethereum - स्मार्ट ककॉन्ट्रॅक्ट म्हणजे काय?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/mr/social-networks/index.md b/public/content/translations/mr/social-networks/index.md new file mode 100644 index 00000000000..1f30495833d --- /dev/null +++ b/public/content/translations/mr/social-networks/index.md @@ -0,0 +1,121 @@ +--- +title: विकेंद्रित सामाजिक जाळे +description: Ethereum वर विकेंद्रित सोशल नेटवर्कचे विहंगावलोकन +lang: mr +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: /ethereum-learn.png +summaryPoint1: सामाजिक संवाद आणि सामग्री निर्मिती आणि वितरणासाठी ब्लॉकचेन-आधारित प्लॅटफॉर्म. +summaryPoint2: विकेंद्रित सोशल मीडिया नेटवर्क वापरकर्त्याच्या गोपनीयतेचे संरक्षण करतात आणि डेटा सुरक्षितता वाढवतात. +summaryPoint3: टोकन आणि NFT सामग्रीची कमाई करण्याचे नवीन मार्ग तयार करतात. +--- + +सोशल नेटवर्क्स आपल्या दैनंदिन संप्रेषणांमध्ये आणि परस्परसंवादांमध्ये मोठी भूमिका बजावतात. तथापि, या प्लॅटफॉर्मच्या केंद्रीकृत नियंत्रणाने अनेक समस्या निर्माण केल्या आहेत: डेटाचे उल्लंघन, सर्व्हर आऊटेजेस, डी-प्लॅटफॉर्मिंग, सेन्सॉरशिप आणि गोपनीयतेचे उल्लंघन हे काही ट्रेड-ऑफ आहेत जे सोशल मीडिया अनेकदा करतात. या समस्यांचा सामना करण्यासाठी, विकसक Ethereum वर सोशल नेटवर्क तयार करत आहेत. विकेंद्रित सोशल नेटवर्क्स पारंपारिक सोशल नेटवर्किंग प्लॅटफॉर्मच्या अनेक समस्यांचे निराकरण करू शकतात आणि वापरकर्त्यांचा एकूण अनुभव सुधारू शकतात. + +## विकेंद्रित सामाजिक नेटवर्क म्हणजे काय? {#what-are-decentralized-social-networks} + +विकेंद्रित सामाजिक नेटवर्क हे ब्लॉकचेन-आधारित प्लॅटफॉर्म आहेत जे वापरकर्त्यांना माहितीची देवाणघेवाण करण्यास तसेच प्रेक्षकांना सामग्री प्रकाशित आणि वितरित करण्यास अनुमती देतात. हे ऍप्लिकेशन्स ब्लॉकचेनवर चालत असल्यामुळे ते विकेंद्रित आणि सेन्सॉरशिप आणि अवाजवी नियंत्रणास प्रतिरोधक असण्यास सक्षम आहेत. + +अनेक विकेंद्रित सोशल नेटवर्क्स Facebook, LinkedIn, Twitter आणि Medium सारख्या प्रस्थापित सोशल मीडिया सेवांना पर्याय म्हणून अस्तित्वात आहेत. परंतु ब्लॉकचेन-संचालित सोशल नेटवर्क्समध्ये अनेक वैशिष्ट्ये आहेत जी त्यांना पारंपारिक सामाजिक प्लॅटफॉर्मच्या पुढे ठेवतात. + +### विकेंद्रित सामाजिक नेटवर्क कसे कार्य करतात? {#decentralized-social-networks-overview} + +विकेंद्रित सोशल नेटवर्क्स हे [विकेंद्रित अॅप्लिकेशन्स (dapps)](/dapps/)—[स्मार्ट कॉन्ट्रॅक्ट्स](/developers/docs/smart-contracts/) द्वारे समर्थित अॅप्लिकेशन्सचा एक वर्ग ब्लॉकचेनवर तैनात आहे. कॉन्ट्रॅक्ट कोड या अॅप्ससाठी बॅकएंड म्हणून काम करतो आणि त्यांचे व्यवसाय तर्क परिभाषित करतो. + +पारंपारिक सोशल मीडिया प्लॅटफॉर्म वापरकर्ता माहिती, प्रोग्राम कोड आणि डेटाचे इतर प्रकार संग्रहित करण्यासाठी डेटाबेसवर अवलंबून असतात. परंतु यामुळे एकल पॉइंट-ऑफ-अपयश निर्माण होते आणि लक्षणीय धोका निर्माण होतो. उदाहरणार्थ, Facebook चे सर्व्हर बदनामपणे [तास ऑफलाइन गेले](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) गेल्या वर्षी, प्लॅटफॉर्मवरून वापरकर्त्यांना कापले. + +विकेंद्रित सोशल नेटवर्क्स पीअर-टू-पीअर नेटवर्कवर अस्तित्वात आहेत ज्यात जगभरातील हजारो नोड्स आहेत. जरी काही नोड्स अयशस्वी झाले तरीही, नेटवर्क अखंडपणे चालेल, अनुप्रयोगांना अपयश आणि आउटेजला प्रतिरोधक बनवेल. + +[InterPlanetary File System (IPFS)](https://ipfs.io/) सारख्या विकेंद्रित स्टोरेज सिस्टमचा वापर करून, Ethereum वर तयार केलेली सोशल नेटवर्क वापरकर्त्याच्या माहितीचे शोषण आणि दुर्भावनापूर्ण वापरापासून संरक्षण करू शकते. कोणीही तुमची वैयक्तिक माहिती जाहिरातदारांना विकणार नाही, किंवा हॅकर्स तुमचे गोपनीय तपशील चोरू शकणार नाहीत. + +अनेक ब्लॉकचेन-आधारित सोशल प्लॅटफॉर्मवर नेटिव्ह टोकन्स आहेत जे जाहिरातींच्या कमाईच्या अनुपस्थितीत कमाई करतात. वापरकर्ते विशिष्ट वैशिष्ट्यांमध्ये प्रवेश करण्यासाठी, अॅप-मधील खरेदी पूर्ण करण्यासाठी किंवा त्यांच्या आवडत्या सामग्री निर्मात्यांना टिप देण्यासाठी ही टोकन खरेदी करू शकतात. + +## विकेंद्रित सामाजिक नेटवर्कचे फायदे {#benefits} + +1. विकेंद्रित सामाजिक नेटवर्क सेन्सॉरशिप-प्रतिरोधक आणि प्रत्येकासाठी खुले आहेत. याचा अर्थ वापरकर्त्यांना प्रतिबंधित, डिप्लॅटफॉर्म किंवा अनियंत्रितपणे प्रतिबंधित केले जाऊ शकत नाही. + +2. विकेंद्रित सामाजिक नेटवर्क मुक्त-स्रोत आदर्शांवर तयार केले जातात आणि सार्वजनिक तपासणीसाठी अनुप्रयोगांसाठी स्त्रोत कोड उपलब्ध करतात. पारंपारिक सोशल मीडियामध्ये सामान्य असलेल्या अपारदर्शक अल्गोरिदमची अंमलबजावणी काढून टाकून, ब्लॉकचेन-आधारित सोशल नेटवर्क वापरकर्ते आणि प्लॅटफॉर्म निर्मात्यांच्या हितसंबंधांना संरेखित करू शकतात. + +3. विकेंद्रित सामाजिक नेटवर्क "मध्यम-पुरुष" दूर करतात. सामग्री निर्मात्यांची त्यांच्या सामग्रीवर थेट मालकी असते आणि ते अनुयायी, चाहते, खरेदीदार आणि इतर पक्षांशी थेट गुंततात, त्यामध्ये स्मार्ट कराराशिवाय काहीही नसते. + +4. नोड्सच्या जागतिक, पीअर-टू-पीअर नेटवर्कद्वारे टिकून राहिलेल्या Ethereum नेटवर्कवर चालणारे dapps, विकेंद्रित सोशल नेटवर्क्स सर्व्हर डाउनटाइम आणि आउटेजसाठी कमी संवेदनशील असतात. + +5. विकेंद्रित सामाजिक प्लॅटफॉर्म सामग्री निर्मात्यांसाठी नॉन-फंगीबल टोकन्स (NFT), अॅप-मधील क्रिप्टो पेमेंट आणि बरेच काही द्वारे सुधारित कमाई फ्रेमवर्क ऑफर करतात. + +6. विकेंद्रित सामाजिक नेटवर्क वापरकर्त्यांना उच्च पातळीची गोपनीयता आणि निनावीपणा देतात. उदाहरणार्थ, एखादी व्यक्ती ENS प्रोफाईल किंवा वॉलेट वापरून Ethereum-आधारित सोशल नेटवर्कमध्ये साइन इन करू शकते — वैयक्तिकरित्या ओळखण्यायोग्य माहिती (PII), जसे की नावे, ईमेल पत्ते इत्यादी शेअर न करता. + +7. विकेंद्रित सामाजिक नेटवर्क विकेंद्रित स्टोरेजवर अवलंबून असतात, केंद्रीकृत डेटाबेसवर नाही, जे वापरकर्त्याच्या डेटाचे संरक्षण करण्यासाठी बरेच चांगले आहेत. + +## Ethereum वर विकेंद्रित सामाजिक नेटवर्क {#ethereum-social-networks} + +Ethereum नेटवर्क विकेंद्रित सोशल मीडिया तयार करणार्‍या डेव्हलपर्ससाठी त्याच्या टोकन्सच्या लोकप्रियतेमुळे (ERC-20/ERC-721) आणि त्याच्या प्रचंड वापरकर्ता आधारामुळे पसंतीचे साधन बनले आहे. Ethereum-आधारित सामाजिक नेटवर्कची काही उदाहरणे येथे आहेत: + +### Peepeth {#peepeth} + +[Peepeth](https://peepeth.com/) हे Twitter सारखेच मायक्रोब्लॉगिंग प्लॅटफॉर्म आहे. हे Ethereum ब्लॉकचेनवर चालते आणि वापरकर्ता डेटा संचयित करण्यासाठी IPFS वापरते. + +वापरकर्ते "पीप्स" नावाचे लघु संदेश पाठवू शकतात, जे हटविले किंवा सुधारित केले जाऊ शकत नाहीत. तुम्ही अॅप न सोडता इथर (ETH) मध्ये प्लॅटफॉर्मवर टिपा गोळा करू शकता किंवा कोणालाही टिप देऊ शकता. + +### Mirror {#mirror} + +[Mirror](https://mirror.xyz/) हे web3-सक्षम लेखन प्लॅटफॉर्म आहे ज्याचे उद्दिष्ट विकेंद्रित आणि वापरकर्त्याच्या मालकीचे आहे. वापरकर्ते त्यांचे वॉलेट कनेक्ट करून Mirror वर विनामूल्य वाचू आणि लिहू शकतात. वापरकर्ते लेखन गोळा करू शकतात आणि त्यांच्या आवडत्या लेखकांचे सदस्यत्व घेऊ शकतात. + +"Mirror" वर प्रकाशित केलेल्या पोस्ट्स विकेंद्रित स्टोरेज "Arweave" प्लॅटफॉर्मवर कायमस्वरूपी संग्रहित केल्या जातात, आणि संग्रह करण्यायोग्य [नॉन-फंजिबल टोकन (NFT)](/nft/) म्हणून लिहिल्या जाऊ शकतात. NFT लिहिणे लेखकांसाठी तयार करण्यासाठी पूर्णपणे विनामूल्य आहे, आणि संग्रह Ethereum L2 वर होतो — व्यवहार स्वस्त, जलद आणि पर्यावरणास अनुकूल बनवतात. + +### MINDS {#minds} + +[MINDS](https://www.minds.com/) हे सर्वाधिक वापरल्या जाणार्‍या विकेंद्रित सामाजिक नेटवर्कपैकी एक आहे. हे Facebook सारखे कार्य करते आणि आधीच लाखो वापरकर्ते मिळवले आहेत. + +वापरकर्ते आयटमसाठी देय देण्यासाठी प्लॅटफॉर्मचे मूळ ERC-20 टोकन $MIND वापरतात. वापरकर्ते लोकप्रिय सामग्री प्रकाशित करून, इकोसिस्टममध्ये योगदान देऊन आणि इतरांना प्लॅटफॉर्मवर संदर्भ देऊन $MIND टोकन देखील मिळवू शकतात. + +## Ethereum वर Web2 सामाजिक नेटवर्क {#web2-social-networks-and-ethereum} + +[Web3](/web3/) नेटिव्ह सोशल प्लॅटफॉर्म फक्त सोशल मीडियामध्ये ब्लॉकचेन तंत्रज्ञानाचा समावेश करण्याचा प्रयत्न करत नाहीत. अनेक केंद्रीकृत प्लॅटफॉर्म देखील त्यांच्या पायाभूत सुविधांमध्ये Ethereum समाकलित करण्याची योजना आखत आहेत: + +### 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/) जे वापरकर्ते दर्जेदार सामग्री पोस्ट करून आणि ऑनलाइन समुदायांमध्ये (सबरेडीट्स) योगदान देऊन कमवू शकतात. तुम्ही [अनन्य विशेषाधिकार आणि भत्ते मिळवण्यासाठी](https://www.reddit.com/community-points/) सबरेडीटमध्ये हे टोकन रिडीम करू शकता. या प्रकल्पासाठी, Reddit Arbitrum सोबत काम करत आहे, एक [लेयर 2](/layer-2/) रोलअप Ethereum व्यवहार मोजण्यासाठी डिझाइन केलेले आहे. + +r/क्रिप्टोकरंसी सबरेडिट ["मून" नावाच्या कम्युनिटी पॉइंट्सची आवृत्ती चालवत](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki) सह, कार्यक्रम आधीच लाइव्ह आहे. अधिकृत वर्णनानुसार, मून "पोस्टर, टिप्पणीकार आणि नियंत्रकांना त्यांच्या सबरेडीटमधील योगदानाबद्दल बक्षीस देतात." कारण हे टोकन ब्लॉकचेनवर आहेत (वापरकर्ते ते वॉलेटमध्ये प्राप्त करतात), ते Reddit पासून स्वतंत्र आहेत आणि काढून घेतले जाऊ शकत नाहीत. + +रिंकेबी टेस्टनेट वर बीटा फेज पूर्ण केल्यानंतर, Reddit समुदाय पॉइंट्स आता [Arbitrum Nova](https://nova.arbitrum.io/) वर आहेत, एक ब्लॉकचेन जे चे गुणधर्म एकत्र करते [साइडचेन](/developers/docs/scaling/sidechains/) आणि [आशावादी रोलअप](/developers/docs/scaling/optimistic-rollups/). विशेष वैशिष्‍ट्ये अनलॉक करण्‍यासाठी कम्युनिटी पॉइंट वापरण्‍यासोबतच, वापरकर्ते त्‍यांना एक्सचेंजेसवर फिएटसाठी ट्रेड देखील करू शकतात. तसेच, वापरकर्त्याच्या मालकीच्या कम्युनिटी पॉइंट्सचे प्रमाण समुदायातील निर्णय प्रक्रियेवर त्यांचा प्रभाव निर्धारित करते. + +### Twitter {#twitter} + +जानेवारी 2021 मध्ये, Twitter Blue ने [NFT साठी सपोर्ट रोलआउट केला](https://mashable.com/article/twitter-blue-nft-profile-picture), ज्यामुळे वापरकर्त्यांना त्यांचे वॉलेट आणि डिस्प्ले कनेक्ट करता येतात प्रोफाइल चित्रे म्हणून NFT. लेखनाच्या वेळी, सोशल मीडिया कंपनीने देखील आहे भविष्यात विकेंद्रित सामाजिक नेटवर्क तयार करण्यासाठी [योजना जाहीर केल्या](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web). + +### Instagram {#instagram} + +मे 2022 मध्ये, [Instagram ने Ethereum आणि बहुभुज वर NFT साठी समर्थन जाहीर केले](https://about.instagram.com/blog/announcements/instagram-digital-collectibles). वापरकर्ते त्यांचे Ethereum वॉलेट कनेक्ट करून थेट Instagram वर NFT पोस्ट करू शकतात. + +## विकेंद्रित सामाजिक नेटवर्क वापरा {#use-decentralized-social-networks} + +- **[Status.im](https://status.im/)** - _Status आहे सुरक्षित मेसेजिंग अॅप जे ओपन-सोर्स, पीअर-टू-पीअर प्रोटोकॉल आणि एंड-टू-एंड एन्क्रिप्शन वापरते जे तृतीय पक्षांकडून तुमचे संदेश सुरक्षित ठेवते._ +- **[Mirror.xyz](https://mirror.xyz/)** - _मिरर एक आहे विकेंद्रित, वापरकर्त्याच्या मालकीचे प्रकाशन प्लॅटफॉर्म Ethereum वर वापरकर्त्यांसाठी क्राउडफंड कल्पना, सामग्रीची कमाई आणि उच्च-मूल्य समुदाय तयार करण्यासाठी तयार केले आहे._ +- **[लेन्स प्रोटोकॉल](https://lens.xyz/)** - _लेन्स प्रोटोकॉल आहे विकेंद्रित इंटरनेटच्या डिजिटल बागेत निर्मात्यांना त्यांच्या सामग्रीची मालकी घेण्यास मदत करणारा आणि विकेंद्रित सामाजिक आलेख._ +- **[Farcaster](https://farcaster.xyz/)** - _Farcaster पुरेसे विकेंद्रित आहे सामाजिक नेटवर्क. हा एक खुला प्रोटोकॉल आहे जो ईमेल प्रमाणेच अनेक क्लायंटना समर्थन देऊ शकतो._ + +## Further reading {#further-reading} + +### लेख {#articles} + +- [सोशल मीडियाचे विकेंद्रीकरण: web3 सोशल स्टॅकसाठी मार्गदर्शक](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _कॉइनबेस व्हेंचर्स_ +- [सोशल नेटवर्क ही विकेंद्रीकरणाची पुढील मोठी संधी आहे](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _बेन गोर्टझेल_ +- [Web3 विकेंद्रित, समुदाय- समर्थित सोशल नेटवर्क्स](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _सुमित घोष_ +- [ब्लॉकचेन सोशल मीडिया लँडस्केपचे विहंगावलोकन](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _जेमिनी क्रिप्टोपीडिया_ +- [ब्लॉकचेन सोशल मीडिया गोपनीयता कशी सोडवू शकते](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _प्रबलेन बाजपेयी_ +- [सोशल मीडिया नेटवर्क्स ब्लॉकचेनवर येत आहेत](https://businesstechguides.co/what-are-decentralized-social-networks) — _इमॅन्युएल अवोसिका_ +- [सामाजिक नेटवर्कसाठी पुरेसे विकेंद्रीकरण](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _वरुण श्रीनिवासन_ + +### Videos {#videos} + +- [विकेंद्रित सोशल मीडियाचे स्पष्टीकरण](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ +- [DeSo ब्लॉकचेन सोशल मीडियाचे विकेंद्रीकरण करू इच्छिते](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _ब्लूमबर्ग तंत्रज्ञान_ +- [बालाजी श्रीनिवासन, व्हिटालिक बुटेरिन, जुआन बेनेट विरुद्ध विकेंद्रित सोशल मीडियाचे भविष्य](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ + +### समुदाय {#communities} + +- [Status Discord सर्व्हर](https://discord.com/invite/3Exux7Y) +- [Mirror Discord सर्व्हर](https://discord.com/invite/txuCHcE8wV) +- [r/CryptoCurrency subreddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/public/content/translations/ms/dao/index.md b/public/content/translations/ms/dao/index.md new file mode 100644 index 00000000000..25424b3502c --- /dev/null +++ b/public/content/translations/ms/dao/index.md @@ -0,0 +1,165 @@ +--- +title: Organisasi autonomi terdesentralisasi (DAO) +description: Gambaran keseluruhan DAO pada Ethereum +lang: ms +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: Perwakilan pengundian DAO pada cadangan. +summaryPoint1: Komuniti milik ahli tanpa kepimpinan berpusat. +summaryPoint2: Cara selamat untuk bekerjasama dengan orang asing internet. +summaryPoint3: Tempat selamat untuk menjanjikan dana ke arah sebab tertentu. +--- + +## Apakah DAO? {#what-are-daos} + +DAO ialah sebuah organisasi yang ditadbir oleh blok rantai milik kolektif yang berusaha ke arah misi bersama. + +DAO membolehkan kami bekerja dengan individu yang sehaluan di seluruh dunia tanpa mempercayai pemimpin yang baik hati untuk menguruskan dana atau operasi. Tiada CEO yang boleh membelanjakan dana sesuka hati atau CFO yang boleh memanipulasi buku. Sebaliknya, peraturan berasaskan blok rantai yang tertulis dalam kod menentukan cara organisasi berfungsi dan cara dana dibelanjakan. + +Mereka mempunyai tabung terbina dalam yang tiada sesiapa yang mempunyai kuasa untuk mengakses tanpa kelulusan kumpulan. Keputusan ditadbir oleh cadangan dan pengundian untuk memastikan semua orang dalam organisasi mempunyai suara, dan segala-galanya berlaku secara telus dalam rantaian. + +## Mengapa kita memerlukan DAO? {#why-dao} + +Memulakan organisasi dengan seseorang yang melibatkan pembiayaan dan wang memerlukan banyak kepercayaan terhadap orang yang bekerjasama dengan anda. Tetapi sukar untuk mempercayai seseorang yang anda hanya pernah berinteraksi di internet. Dengan DAO anda tidak perlu mempercayai orang lain dalam kumpulan, hanya kod DAO, yang 100% telus dan boleh disahkan oleh sesiapa sahaja. + +Ini membuka begitu banyak peluang baharu untuk kerjasama dan penyelarasan global. + +### Satu perbandingan {#dao-comparison} + +| DAO | Sebuah organisasi tradisional | +| ------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------- | +| Biasanya rata, dan demokratik sepenuhnya. | Biasanya berhierarki. | +| Undian diperlukan oleh ahli untuk sebarang perubahan dilaksanakan. | Bergantung kepada struktur, perubahan boleh dituntut daripada parti tunggal, atau undian boleh ditawarkan. | +| Undi dikira, dan hasil dilaksanakan secara automatik tanpa perantara yang dipercayai. | Jika undi dibenarkan, undian akan dikira secara dalaman, dan hasil undian mesti dikendalikan secara manual. | +| Perkhidmatan yang ditawarkan dikendalikan secara automatik dengan cara terdesentralisasi (contohnya pengedaran dana dermawan). | Memerlukan pengendalian manusia, atau automasi terkawal secara pusat, terdedah pada manipulasi. | +| Semua aktiviti iadalah telus dan umum sepenuhnya. | Aktiviti biasanya peribadi, dan terhad kepada orang ramai. | + +### Contoh DAO {#dao-examples} + +Untuk membantu menjelaskan perkara ini, berikut adalah beberapa contoh cara anda boleh menggunakan DAO: + +- Kebajikan – anda boleh menerima sumbangan daripada sesiapa sahaja di dunia dan mengundi badan kebajikan yang ingin dibiayai. +- Pemilikan kolektif – anda boleh membeli aset fizikal atau digital dan ahli boleh mengundi untuk cara menggunakannya. +- Usaha niaga dan sumbangan – anda boleh membuat dana usaha niaga yang mengumpul modal pelaburan dan mengundi usaha niaga yang ingin dibiayai. Wang yang dibayar kemudian boleh diedarkan semula di kalangan ahli DAO. + +## Bagaimana DAO berfungsi? {#how-daos-work} + +Tulang belakang DAO ialah kontrak pintarnya, yang menentukan peraturan organisasi dan memegang perbendaharaan kumpulan. Sebaik sahaja kontrak bermula di Ethereum, tiada sesiapa yang boleh mengubah peraturan kecuali dengan undian. Jika sesiapa cuba melakukan sesuatu yang tidak dilindungi oleh peraturan dan logik dalam kod, tindakan ini akan gagal. Dan oleh kerana perbendaharaan juga ditakrifkan oleh kontrak pintar ini bermakna tiada sesiapa yang boleh membelanjakan wang tanpa kelulusan kumpulan. Ini bermakna bahawa DAO tidak memerlukan pihak berkuasa pusat. Sebaliknya, kumpulan membuat keputusan secara kolektif, dan pembayaran diluluskan secara automatik apabila undian lulus. + +Ini boleh dilakukan kerana kontrak pintar tidak boleh diubah sebaik sahaja kontrak dimulakan di Ethereum. Anda tidak boleh mengedit kod (peraturan DAO) tanpa diketahui oleh orang lain kerana semua tindakan adalah umum. + + + Lebih lanjut tentang kontrak pintar + + +## Ethereum dan DAO {#ethereum-and-daos} + +Ethereum merupakan asas yang sempurna untuk DAO atas beberapa sebab: + +- Konsensus Ethereum sendiri diedarkan dan ditubuhkan cukup untuk organisasi mempercayai rangkaian. +- Kod kontrak pintar tidak boleh diubah sebaik sahaja kontrak dimulakan, walaupun oleh pemiliknya. Ini membolehkan DAO dijalankan mengikut peraturan yang telah diprogramkan. +- Kontrak pintar boleh menghantar/menerima dana. Tanpa ini, anda memerlukan perantara yang dipercayai untuk menguruskan dana kumpulan. +- Komuniti Ethereum terbukti lebih bekerjasama dan tidak kompetitif, membolehkan amalan terbaik dan sistem sokongan dicapai dengan cepat. + +## Tadbir urus DAO {#dao-governance} + +Terdapat banyak pertimbangan apabila mentadbir urus DAO, contohnya cara mengundi dan cadangan berfungsi. + +### Delegasi {#governance-delegation} + +Delegasi adalah seperti demokrasi perwakilan versi DAO. Pemegang token mewakilkan undi kepada pengguna yang mencalonkan diri mereka dan komited untuk menguruskan protokol dan sedia termaklum. + +#### Contoh yang terkenal {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) – Pemegang ENS boleh mewakilkan undi mereka kepada ahli komuniti yang terlibat untuk mewakili mereka. + +### Tadbir urus transaksi automatik {#governance-example} + +Dalam banyak DAO, transaksi akan dilaksanakan secara automatik jika satu korum ahli mengundi bersetuju. + +#### Contoh yang terkenal {#governance-example} + +[Nouns](https://nouns.wtf) – Dalam DAO Nouns, transaksi dilaksanakan secara automatik jika satu korum undian dipenuhi dan majoriti mengundi untuk bersetuju, selagi ini tidak diveto oleh pengasas. + +### Tadbir urus multisig {#governance-example} + +Walaupun DAO mungkin mempunyai beribu-ribu ahli mengundi, dana boleh hidup dalam dompet yang dikongsi oleh 5-20 ahli komuniti aktif yang dipercayai dan biasanya identiti peribadi mereka dibuat umum. Selepas undian, penandatangan multisig melaksanakan kehendak masyarakat. + +## Undang-undang DAO {#dao-laws} + +Pada tahun 1977, Wyoming mencipta LLC, yang melindungi usahawan dan mengehadkan liabiliti mereka. Baru-baru ini, mereka merintis undang-undang DAO yang menubuhkan status undang-undang untuk DAO. Pada masa ini Wyoming, Vermont, dan Kepulauan Virgin mempunyai undang-undang DAO dalam beberapa bentuk. + +### Contoh yang terkenal {#law-example} + +[CityDAO](https://citydao.io) – CityDAO menggunakan undang-undang DAO Wyoming untuk membeli 40 ekar tanah berhampiran Taman Negara Yellowstone. + +## Keahlian DAO {#dao-membership} + +Terdapat model yang berbeza untuk keahlian DAO. Keahlian boleh menentukan cara mengundi berfungsi dan bahagian utama DAO yang lain. + +### Keahlian berasaskan token {#token-based-membership} + +Biasanya tanpa izin sepenuhnya, bergantung kepada token yang digunakan. Kebanyakannya token tadbir urus ini boleh didagangkan tanpa izin pada pertukaran terdesentralisasi. Lain-lain mesti diperolehi dengan menyediakan mudah tunai atau 'bukti kerja'. Walau bagaimanapun, dengan hanya mempunyai token akan memberikan akses kepada pengundian. + +_Biasanya digunakan untuk mentadbir urus protokol dan/atau token yang terdesentralisasi secara luas._ + +#### Contoh yang terkenal {#token-example} + +[ MakerDAO](https://makerdao.com) – MKR token MakerDAO boleh didapati secara meluas di bursa tukaran berpusat dan sesiapa sahaja boleh membeli untuk mempunyai kuasa mengundi pada masa depan protokol Maker. + +### Keahlian berasaskan saham {#share-based-membership} + +DAO berasaskan saham lebih dibenarkan, tetapi masih agak terbuka. Mana-mana bakal ahli boleh mengemukakan cadangan untuk menyertai DAO, biasanya dengan menawarkan penghargaan yang bernilai dalam bentuk token atau kerja. Saham mewakili kuasa mengundi langsung dan pemilikan. Ahli boleh keluar pada bila-bila masa dengan bahagian saham perbendaharaan mereka. + +_Biasanya digunakan untuk organisasi yang ahlinya akrab dan berpusatkan manusia seperti badan amal, kolektif pekerja, dan kelab pelaburan. Juga boleh mentadbir protokol dan token._ + +#### Contoh yang terkenal {#share-example} + +[MolochDAO](http://molochdao.com/) – MolochDAO memberi tumpuan kepada pembiayaan protokol Ethereum. Mereka memerlukan cadangan untuk keahlian supaya kumpulan boleh menilai sama ada anda mempunyai kepakaran dan modal yang diperlukan untuk membuat penilaian termaklum mengenai pemberi berpotensi. Anda tidak boleh hanya membeli akses kepada DAO di pasaran terbuka. + +### Keahlian berasaskan reputasi {#reputation-based-membership} + +Reputasi mewakili bukti penyertaan dan memberikan kuasa mengundi dalam DAO. Tidak seperti token atau keahlian berasaskan saham, DAO berasaskan reputasi tidak memindahkan pemilikan kepada penyumbang. Reputasi tidak boleh dibeli, dipindahkan atau diwakilkan; ahli DAO mesti mendapat reputasi melalui penyertaan. Pengundian di rantaian tidak memerlukan keizinan dan bakal ahli bebas mengemukakan cadangan untuk menyertai DAO dan meminta untuk menerima reputasi dan token sebagai ganjaran atas sumbangan mereka. + +_Biasanya digunakan untuk pembangunan dan tadbir urus protokol dan dapp yang ternyahpusat, tetapi juga sesuai untuk pelbagai jenis organisasi seperti pertubuhan amal, kesatuan kolektif pekerja, kelab pelaburan, dan lain-lain._ + +#### Contoh yang terkenal {#reputation-example} + +[DXdao](https://DXdao.eth.link) – DXdao ialah sebuah kesatuan kolektif berdaulat global yang membina dan mentadbir urus protokol dan aplikasi ternyahpusat sejak 2019. Ia memanfaatkan tadbir urus berasaskan reputasi dan konsensus holografi untuk menyelaras dan menguruskan dana, bermakna tiada siapa yang boleh mempengaruhi masa depannya dengan menggunakan wang. + +## Sertai / mulakan DAO {#join-start-a-dao} + +### Sertai DAO {#join-a-dao} + +- [DAO komuniti Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [Senarai DAO oleh DAOHaus](https://app.daohaus.club/explore) +- [Senarai DAO oleh Tally.xyz](https://www.tally.xyz) + +### Mulakan DAO {#start-a-dao} + +- [Jelmakan DAO dengan DAOHaus](https://app.daohaus.club/summon) +- [Mulakan Governor DAO dengan Tally](https://www.tally.xyz/add-a-dao) +- [Cipta DAO yang didayakan Aragon](https://aragon.org/product) +- [Mulakan sebuah koloni](https://colony.io/) +- [Cipta DAO dengan konsensus holografi DAOstack](https://alchemy.daostack.io/daos/create) + +## Bacaan lanjut {#further-reading} + +### Artikel DAO {#dao-articles} + +- [Apakah itu DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) +- [Buku Panduan DAO](https://daohandbook.xyz) +- [Rumah DAO](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) +- [Apakah itu DAO dan apakah tujuannya?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) +- [Cara Memulakan Komuniti Digital Didayakan DAO](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) +- [Apakah itu DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) +- [Apakah itu Konsensus Holografi?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) +- [DAO bukan syarikat: penyahpusatan adalah penting dalam organisasi autonomi oleh Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) +- [DAO, DAC, DA dan Lebih Lagi: Panduan Terminologi Tidak Lengkap](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Blog Ethereum](https://blog.ethereum.org) + +### Videos {#videos} + +- [Apakah itu DAO dalam kripto?](https://youtu.be/KHm0uUPqmVE) +- [Bolehkah DAO Membina Bandar?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) - [TED](https://www.ted.com/) diff --git a/src/content/translations/ms/guides/how-to-create-an-ethereum-account/index.md b/public/content/translations/ms/guides/how-to-create-an-ethereum-account/index.md similarity index 100% rename from src/content/translations/ms/guides/how-to-create-an-ethereum-account/index.md rename to public/content/translations/ms/guides/how-to-create-an-ethereum-account/index.md diff --git a/src/content/translations/ms/guides/how-to-id-scam-tokens/index.md b/public/content/translations/ms/guides/how-to-id-scam-tokens/index.md similarity index 100% rename from src/content/translations/ms/guides/how-to-id-scam-tokens/index.md rename to public/content/translations/ms/guides/how-to-id-scam-tokens/index.md diff --git a/src/content/translations/ms/guides/how-to-revoke-token-access/index.md b/public/content/translations/ms/guides/how-to-revoke-token-access/index.md similarity index 100% rename from src/content/translations/ms/guides/how-to-revoke-token-access/index.md rename to public/content/translations/ms/guides/how-to-revoke-token-access/index.md diff --git a/src/content/translations/ms/guides/how-to-swap-tokens/index.md b/public/content/translations/ms/guides/how-to-swap-tokens/index.md similarity index 100% rename from src/content/translations/ms/guides/how-to-swap-tokens/index.md rename to public/content/translations/ms/guides/how-to-swap-tokens/index.md diff --git a/src/content/translations/ms/guides/how-to-use-a-bridge/index.md b/public/content/translations/ms/guides/how-to-use-a-bridge/index.md similarity index 100% rename from src/content/translations/ms/guides/how-to-use-a-bridge/index.md rename to public/content/translations/ms/guides/how-to-use-a-bridge/index.md diff --git a/src/content/translations/ms/guides/how-to-use-a-wallet/index.md b/public/content/translations/ms/guides/how-to-use-a-wallet/index.md similarity index 100% rename from src/content/translations/ms/guides/how-to-use-a-wallet/index.md rename to public/content/translations/ms/guides/how-to-use-a-wallet/index.md diff --git a/src/content/translations/ms/guides/index.md b/public/content/translations/ms/guides/index.md similarity index 100% rename from src/content/translations/ms/guides/index.md rename to public/content/translations/ms/guides/index.md diff --git a/public/content/translations/ms/nft/index.md b/public/content/translations/ms/nft/index.md new file mode 100644 index 00000000000..bd51d93050f --- /dev/null +++ b/public/content/translations/ms/nft/index.md @@ -0,0 +1,94 @@ +--- +title: Token tidak sepiawai (NFT) +description: Gambaran umum mengenai NFT di Ethereum +lang: ms +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: Logo Eth dipaparkan menerusi hologram. +summaryPoint1: Satu cara untuk mewakili apa sahaja yang unik sebagai aset berasaskan Ethereum. +summaryPoint2: NFT memberi lebih banyak kuasa kepada pencipta kandungan dari sebelum ini. +summaryPoint3: Didayakan oleh kontrak pintar pada blok rantai Ethereum. +--- + +## Apakah itu NFT? {#what-are-nfts} + +NFT ialah token yang unik dari segi tersendiri. Setiap NFT mempunyai sifat berbeza (tidak sepiawai) dan terbukti terhad. Ini berbeza daripada token lain seperti ERC-20 iaitu setiap token dalam set adalah sama dan serupa sifatnya ('sepiawai'). Kita tidak kisah tentang wang kertas yang spesifik di dalam dompet fizikal kita, kerana semuanya serupa dan sama nilainya. Bagaimanapun, kita _tentu_ akan kisah tentang NFT spesifik yang dimiliki, kerana kesemua aset mempunyai sifat tersendiri yang membezakan satu NFT dari yang lain ('tidak sepiawai'). + +Keunikan setiap NFT membolehkan benda seperti karya seni, item koleksi ataupun hartanah ditukar menjadi token, iaitu satu NFT unik yang khusus mewakili item dunia nyata atau item digital yang unik. Pemilikan sesuatu aset dijamin oleh blok rantai Ethereum – tiada siapa dapat mengubah rekod pemilikan atau menyalin/menampal sesuatu NFT baharu sehingga wujud. + + + +## Aset Internet {#internet-of-assets} + +NFT dan Ethereum menyelesaikan beberapa masalah yang wujud dalam internet hari ini. Apabila segala-galanya menghampiri digitalisasi, terdapat keperluan untuk meniru sifat item fizikal seperti kekurangan, keunikan dan bukti pemilikan. dengan cara yang tidak dikawal oleh satu organisasi pusat. Sebagai contoh, dengan NFT, anda boleh memiliki muzik mp3 yang tidak spesifik hanya kepada aplikasi muzik milik sebuah syarikat, atau anda boleh memiliki nama pengguna di media sosial yang anda boleh tukarkan atau jual, tetapi penyedia platform tidak boleh merampasnya daripada anda. + +Beginilah rupa internet NFT jika dibandingkan dengan internet yang kita guna masa kini... + +### Satu perbandingan {#nft-comparison} + +| Internet NFT | Internet masa kini | +| -------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Aset anda adalah milik anda! Hanya anda yang boleh menjual atau menukarkannya. | Anda menyewa aset daripada organisasi tertentu. | +| Setiap NFT adalah unik dari segi digital, tidak ada dua NFT yang sama. | Salinan suatu entiti selalunya tidak dapat dibezakan daripada yang asal. | +| Pemilikan sesuatu NFT disimpan di dalam blok rantai untuk disahkan oleh sesiapa. | Rekod pemilikan barangan digital disimpan pada pelayan yang dikawal oleh institusi tertentu – anda terpaksa mempercayai mereka. | +| NFT ialah kontrak pintar di Ethereum. Ini bermakna ia boleh digunakan dalam kontrak pintar dan aplikasi lain di Ethereum dengan mudah! | Syarikat dengan item digital biasanya memerlukan infrastruktur "taman terkawal" sendiri. | +| Pencipta kandungan boleh menjual karya mereka di mana-mana dan boleh mengakses pasaran global. | Pencipta kandungan bergantung kepada pengagihan dan infrastruktur platform yang mereka guna. Semua ini seringkali tertakluk pada terma dan syarat juga batasan geografi. | +| Pencipta NFT boleh mengekalkan hak pemilikan ke atas hasil kerja mereka, dan boleh menetapkan royalti terus dalam kontrak NFT mereka. | Platform seperti perkhidmatan penstriman muzik mengekalkan sebahagian besar keuntungan daripada penjualan. | + +## Bagaimana NFT berfungsi? {#how-nfts-work} + +Seperti mana-mana token yang dikeluarkan di Ethereum, NFT juga dikeluarkan melalui kontrak pintar. Kontrak pintar ini mematuhi satu daripada beberapa piawai NFT (Biasanya ERC-721 atau ERC-1155) yang mentakrifkan fungsi kontrak itu. Kontrak itu boleh mencipta ('menempa') NFT dan memperuntukkan NFT itu kepada pemilik tertentu. Pemilikan ditakrifkan dalam kontrak dengan memetakan NFT tertentu kepada alamat tertentu. Setiap NFT mempunyai ID dan biasanya metadata yang dikaitkan dengannya menjadikan token itu unik. + +Apabila seseorang mencipta atau menempa NFT, mereka sebenarnya melaksanakan fungsi didalam kontrak pintar yang menetapkan sesuatu NFT kepada alamat spesifik. Maklumat ini disimpan dalam storan kontrak, iaitu sebahagian daripada blok rantai. Pencipta kontrak boleh menetapkan logik tambahan ke dalam kontrak, contohnya mengehadkan jumlah bekalan atau menentukan royalti untuk dibayar kepada pencipta setiap kali token itu dipindahkan. + +## Apakah kegunaan NFT? {#nft-use-cases} + +NFT digunakan untuk banyak perkara, termasuk: + +- membuktikan bahawa anda menghadiri acara +- mengesahkan bahawa anda telah menamatkan kursus +- barangan yang boleh dimiliki untuk permainan +- karya seni digital +- menjana token untuk aset dunia nyata +- membuktikan identiti dalam talian anda +- mengehadkan akses kepada kandungan +- pembelian tiket +- nama untuk domain internet ternyahpusat +- cagaran dalam DeFi + +Mungkin anda seorang artis yang ingin berkongsi hasil kerja menggunakan NFT, tanpa hilang kawalan atau mengorbankan keuntungan kepada orang tengah. Anda boleh mencipta kontrak baharu dan menentukan bilangan NFT, sifat NFT itu dan pautan kepada karya seni tertentu. Sebagai artis, anda boleh memprogramkan royalti yang sepatutnya dibayar ke dalam kontrak pintar (memindah 5% daripada harga jualan kepada pemilik kontrak cerdas setiap kali NFT itu dipindahkan). Anda juga boleh sentiasa membuktikan bahawa anda mencipta NFT itu kerana anda memiliki dompet yang mencipta kontrak tersebut. Pembeli anda boleh mengesahkan bahawa mereka memiliki NFT yang asli daripada koleksi anda dengan mudah kerana alamat dompet mereka dikaitkan dengan token dalam kontrak pintar anda. Mereka boleh menggunakannya dalam ekosistem Ethereum, yakin dengan keasliannya. + +Atau bayangkan tiket ke acara sukan. Sepertimana penganjur acara boleh memilih bilangan tiket untuk dijual, pencipta sesuatu NFT juga boleh memilih bilangan replika yang boleh wujud. Kadangkala ini merupakan replika yang tepat, seperti 5000 tiket Kemasukan Am. Kadangkala beberapa akan ditempa kelihatan serupa, tetapi setiap satu berbeza sedikit, seperti tiket dengan tempat duduk yang ditetapkan. Ia boleh dibeli dan dijual secara perangkai padan tanpa membayar pengendali tiket dan pembeli juga sentiasa mempunyai jaminan keaslian tiket dengan menyemak alamat kontrak. + +Di ethereum.org, NFT digunakan untuk menunjukkan bahawa orang telah menyumbang kepada repositori GitHub kami atau memenuhi panggilan, dan kami juga mempunyai nama domain NFT kami sendiri. Jika anda menyumbang kepada ethereum.org, anda boleh menuntut NFT POAP. Beberapa perjumpaan kripto telah menggunakan POAP sebagai tiket. [Maklumat lanjut tentang penyumbangan.](/contributing/#poap). + +![POAP ethereum.org](./poap.png) + +Laman web ini juga mempunyai nama domain alternatif yang didayakan oleh NFT, **ethereum.eth**. Alamat `.org` kami diuruskan secara berpusat oleh penyedia sistem nama domain (DNS), manakala ethereum`.eth` eth didaftarkan di Ethereum melalui Perkhidmatan Nama Ethereum (ENS). Ia dimiliki dan diurus oleh kami. [Semak rekod ENS kami](https://app.ens.domains/name/ethereum.eth) + +[Lebih lanjut mengenai ENS](https://app.ens.domains) + + + +### Keselamatan NFT {#nft-security} + +Keselamatan Ethereum adalah berasaskan bukti penaruhan. Sistem ini direka untuk menghalang tindakan berniat jahat secara ekonomi, menjadikan Ethereum kalis usikan. Ini yang membolehkan NFT wujud. Setelah blok yang mengandungi transaksi NFT anda dimuktamadkan, penyerang memerlukan berjuta-juta ETH untuk mengubahnya. Sesiapa yang menjalankan perisian Ethereum akan dapat mengesan usikan yang tidak jujur pada NFT secara serta-merta, dan pelaku jahat itu akan dihukum dari segi ekonomi dan dibuang. + +Isu keselamatan berhubung dengan NFT paling kerap berkaitan dengan penipuan pancingan data, kelemahan kontrak pintar atau kesilapan pengguna (seperti mendedahkan kunci persendirian secara tidak sengaja), oleh itu keselamatan dompet yang mantap adalah amat penting bagi pemilik NFT. + + + Maklumat lanjut tentang keselamatan + + +## Bacaan lanjut {#further-reading} + +- [Panduan pengguna baharu untuk NFT](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, Januari 2020_ +- [Penjejak NFT Etherscan](https://etherscan.io/nft-top-contracts) +- [Piawai token ERC-721](/developers/docs/standards/tokens/erc-721/) +- [Piawai token ERC-1155](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/src/content/translations/ms/whitepaper/index.md b/public/content/translations/ms/whitepaper/index.md similarity index 100% rename from src/content/translations/ms/whitepaper/index.md rename to public/content/translations/ms/whitepaper/index.md diff --git a/src/content/translations/nb/dapps/index.md b/public/content/translations/nb/dapps/index.md similarity index 100% rename from src/content/translations/nb/dapps/index.md rename to public/content/translations/nb/dapps/index.md diff --git a/src/content/translations/nb/enterprise/index.md b/public/content/translations/nb/enterprise/index.md similarity index 100% rename from src/content/translations/nb/enterprise/index.md rename to public/content/translations/nb/enterprise/index.md diff --git a/src/content/translations/nb/eth/index.md b/public/content/translations/nb/eth/index.md similarity index 100% rename from src/content/translations/nb/eth/index.md rename to public/content/translations/nb/eth/index.md diff --git a/src/content/translations/nb/wallets/index.md b/public/content/translations/nb/wallets/index.md similarity index 100% rename from src/content/translations/nb/wallets/index.md rename to public/content/translations/nb/wallets/index.md diff --git a/src/content/translations/nb/what-is-ethereum/index.md b/public/content/translations/nb/what-is-ethereum/index.md similarity index 100% rename from src/content/translations/nb/what-is-ethereum/index.md rename to public/content/translations/nb/what-is-ethereum/index.md diff --git a/src/content/translations/nl/community/events/index.md b/public/content/translations/nl/community/events/index.md similarity index 100% rename from src/content/translations/nl/community/events/index.md rename to public/content/translations/nl/community/events/index.md diff --git a/src/content/translations/nl/community/get-involved/index.md b/public/content/translations/nl/community/get-involved/index.md similarity index 100% rename from src/content/translations/nl/community/get-involved/index.md rename to public/content/translations/nl/community/get-involved/index.md diff --git a/src/content/translations/nl/community/grants/index.md b/public/content/translations/nl/community/grants/index.md similarity index 100% rename from src/content/translations/nl/community/grants/index.md rename to public/content/translations/nl/community/grants/index.md diff --git a/src/content/translations/nl/community/language-resources/index.md b/public/content/translations/nl/community/language-resources/index.md similarity index 100% rename from src/content/translations/nl/community/language-resources/index.md rename to public/content/translations/nl/community/language-resources/index.md diff --git a/src/content/translations/nl/community/online/index.md b/public/content/translations/nl/community/online/index.md similarity index 100% rename from src/content/translations/nl/community/online/index.md rename to public/content/translations/nl/community/online/index.md diff --git a/public/content/translations/nl/community/support/index.md b/public/content/translations/nl/community/support/index.md new file mode 100644 index 00000000000..ab1c9d275eb --- /dev/null +++ b/public/content/translations/nl/community/support/index.md @@ -0,0 +1,114 @@ +--- +title: Ethereum-ondersteuning +description: Krijg ondersteuning in het Ethereum-ecosysteem. +lang: nl +--- + +# Ethereum-ondersteuning {#support} + +## Officiële Ethereum-ondersteuning {#official-support} + +Zoekt u de officiële Ethereum-ondersteuning? Het eerste wat u moet weten is dat Ethereum gedecentraliseerd is. Dit betekent dat er geen centrale organisatie, entiteit of persoon eigenaar is van Ethereum, en daarom bestaan er geen officiële ondersteuningskanalen. + +Begrijpen van de gedecentraliseerde aard van Ethereum is van vitaal belang, omdat iedereen die beweert officiële steun voor Ethereum te zijn, waarschijnlijk probeert om u te bezwendelen! De beste bescherming tegen scammers is uzelf voor te lichten en veiligheid serieus te nemen. + + + Ethereum-beveiliging en -scampreventie + + + + Leer de Ethereum-basisprincipes + + +Ondanks het gebrek aan officiële ondersteuning, helpen veel groepen, gemeenschappen en projecten in het Ethereum-ecosysteem, waardoor u veel nuttige informatie en bronnen kunt vinden op deze pagina. Heeft u nog vragen? Neem deel aan de [ethereum.org Discord](/discord/) en we zullen proberen te helpen. + +## Ondersteuning voor portemonnee {#wallet-support} + +Een probleem met uw portemonnee? De meeste portemonnees hebben speciale ondersteuningsteams die kunnen helpen: + +- [MetaMask](https://metamask.zendesk.com/hc/) +- [Argent](https://support.argent.xyz/hc/) +- [MyEtherWallet](https://help.myetherwallet.com/) + +_Dit is geen uitputtende lijst. Hulp nodig bij het vinden van ondersteuning voor een specifieke portemonnee? Doe mee met de [ethereum.org discord](https://discord.gg/ethereum-org) en we zullen proberen te helpen._ + +Op zoek naar een Ethereum-portemonnee? [Ontdek onze volledige lijst van Ethereum-portemonnees](/wallets/find-wallet/). + +## Dapps maken {#building-support} + +Bouwen kan moeilijk zijn. Hier zijn enkele ontwikkelingsgerichte ruimtes met ervaren Ethereum-ontwikkelaars die graag helpen. + +- [CryptoDevs discord](https://discord.gg/Z9TA39m8Yu) +- [Ethereum StackExchange](https://ethereum.stackexchange.com/) +- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) +- [Web3 University](https://www.web3.university/) + +U kunt ook documentatie en ontwikkelgidsen vinden in onze sectie met [bronnen voor Ethereum-ontwikkelaars](/developers/). + +### Tools {#dapp-tooling} + +Heeft uw vraag betrekking op een specifieke tool, project of bibliotheek? De meeste projecten hebben chatservers of forums die u kunnen ondersteunen. + +Hier zijn enkele populaire voorbeelden: + +- [Solidity](https://gitter.im/ethereum/solidity/) +- [ethers.js](https://discord.gg/6jyGVDK6Jx) +- [web3.js](https://discord.gg/GsABYQu4sC) +- [Hardhat](https://discord.gg/xtrMGhmbfZ) +- [Truffle](https://discord.gg/8uKcsccEYE) +- [Alchemy](http://alchemy.com/discord) +- [Tenderly](https://discord.gg/fBvDJYR) + +## Een node uitvoeren {#node-support} + +Als u een node of validator uitvoert, zijn hier enkele gemeenschappen die u kunnen helpen om aan de slag te gaan. + +- [EthStaker discord](https://discord.gg/ethstaker) +- [EthStaker reddit](https://www.reddit.com/r/ethstaker) + +De meeste teams die Ethereum clients bouwen, hebben ook speciale op het publiek gerichte ruimtes waar u ondersteuning kunt krijgen en vragen kunt stellen. + +### Clients voor uitvoering {#execution-clients} + +- [Geth](https://discord.gg/FqDzupGyYf) +- [Nethermind](https://discord.gg/YJx3pm8z5C) +- [Besu](https://discord.gg/p8djYngzKN) +- [Erigon](https://github.com/ledgerwatch/erigon/issues) + +### Consensus clients {#consensus-clients} + +- [Prysm](https://discord.gg/prysmaticlabs) +- [Nimbus](https://discord.gg/nSmEH3qgFv) +- [Lighthouse](https://discord.gg/cyAszAh) +- [Teku](https://discord.gg/7hPv2T6) +- [Lodestar](https://discord.gg/aMxzVcr) + +U kunt hier ook [leren hoe u een node uitvoert](/developers/docs/nodes-and-clients/run-a-node/). + +## Veelgestelde vragen {#faq} + +### Ik heb ETH naar de verkeerde portemonnee gestuurd {#wrong-wallet} + +Een transactie verzonden op Ethereum is onomkeerbaar. Helaas, als u ETH naar de verkeerde portemonnee heeft gestuurd, is er geen manier om deze fondsen terug te krijgen. Geen enkele centrale organisatie, entiteit of persoon bezit Ethereum, wat betekent dat niemand transacties kan omkeren. Daarom is het essentieel om uw transacties altijd opnieuw te controleren alvorens ze te verzenden. + +### Hoe kan ik mijn Ethereum-giveaway claimen? {#giveaway-scam} + +Ethereum-giveaways zijn scams ontworpen om uw ETH te stelen. Word niet in de verleiding gebracht door aanbiedingen die te goed lijken om waar te zijn - als u ETH naar een giveaway-adres stuurt, ontvangt u geen giveaway en kunt u uw fondsen niet terugkrijgen. + +[Meer over scampreventie](/security/#common-scams) + +### Mijn transactie is vastgelopen {#stuck-transaction} + +Transacties op Ethereum kunnen soms vast komen te zitten als u een lagere transactietarief heeft ingediend dan vereist is vanwege de netwerkvraag. Veel portemonnees bieden een optie om dezelfde transactie opnieuw in te dienen met een hoger transactietarief om de transactie te kunnen verwerken. Of u kunt een lopende transactie annuleren door een transactie naar uw eigen adres te sturen en dezelfde nonce te gebruiken als de lopende transactie. + +[Hoe een lopende transactie op MetaMask te versnellen of te annuleren](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) + +[Hoe lopende Ethereum transacties annuleren](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) + +### Hoe kan ik Ethereum minen? {#mining-ethereum} + +Ethereum-mining is niet langer mogelijk. Mining werd uitgeschakeld toen Ethereum overschakelde van proof-of-work naar proof-of-stake. Nu heeft Ethereum validators in plaats van miners. Validators staken ETH en ontvangen staking-beloningen voor het beveiligen van het netwerk. + +### Hoe word ik een staker/validator? {#become-validator} + +Om een validator te worden moet u 32 ETH staken in het Ethereum-stortingscontract en een validator-node instellen. Er is meer informatie beschikbaar op onze [staking-pagina's](/staking) en op [het staking launchpad](https://launchpad.ethereum.org/). diff --git a/public/content/translations/nl/dao/index.md b/public/content/translations/nl/dao/index.md new file mode 100644 index 00000000000..64151be1f92 --- /dev/null +++ b/public/content/translations/nl/dao/index.md @@ -0,0 +1,165 @@ +--- +title: Gedecentraliseerde autonome organisaties (DAO's) +description: Een overzicht van DAO's op Ethereum +lang: nl +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: Een vertegenwoordiging van een DAO die over een voorstel stemt. +summaryPoint1: Gemeenschappen waarvan de leden eigenaar zijn en zonder gecentraliseerd leiderschap. +summaryPoint2: Een veilige manier om samen te werken met vreemdelingen op het internet. +summaryPoint3: Een veilige plek om fondsen aan te wenden voor een specifieke zaak. +--- + +## Wat zijn DAO's? {#what-are-daos} + +Een DAO is een collectieve, blockchain-gestuurde organisatie die werkt ten behoeve van een gedeelde missie. + +Met DAO's kunnen we met gelijkgestemde mensen over de hele wereld werken zonder dat we een leider hoeven te vertrouwen om de fondsen of activiteiten te beheren. Er is geen CEO die zelf zomaar geld kan uitgeven of een CFO die de boeken kan manipuleren. In plaats daarvan zijn er op blockchain-gebaseerde regels in de code opgenomen die definiëren hoe de organisatie werkt en hoe fondsen worden besteed. + +Ze hebben ingebouwde schatkisten die enkel toegankelijk zijn met toesteming van de groep. Besluiten worden bepaald door voorstellen en verkiezingen om ervoor te zorgen dat iedereen in de organisatie een stem heeft; dit alles gebeurt op transparante wijze on-chain. + +## Waarom hebben we DAO's nodig? {#why-dao} + +Het starten van een organisatie met iemand waarbij financiering en geld betrokken zijn, vereist veel vertrouwen in de mensen waarmee je werkt. Maar het is moeilijk om iemand te vertrouwen waar je enkel online contact mee hebt gehad. Met DAO's hoef je niemand anders in de groep te vertrouwen, alleen de DAO-code, die 100% transparant en controleerbaar is voor iedereen. + +Dit opent zoveel nieuwe mogelijkheden voor wereldwijde samenwerking en coördinatie. + +### Een vergelijking {#dao-comparison} + +| DAO | Een traditionele organisatie | +| ---------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | +| Meestal geen hiërarchie en volledig gedemocratiseerd. | Meestal met hiërarchie. | +| Er moet gestemd worden door de leden voor eventuele wijzigingen. | Afhankelijk van de hiërarchie kunnen veranderingen worden geëist door een enkele partij of persoon. | +| Stemmen worden automatisch geteld en het besluit wordt automatisch geïmplementeerd, zonder vertrouwde tussenpersoon. | Als stemming is toegestaan, worden stemmen intern geteld en moeten de stemresultaten handmatig worden afgehandeld. | +| Aangeboden diensten worden automatisch op een gedecentraliseerde manier behandeld (bijvoorbeeld distributie van filantropische fondsen). | Vereist menselijke afhandeling, of centraal gecontroleerde automatisering, vatbaar voor manipulatie. | +| Alle activiteiten zijn transparant en volledig open voor iedereen. | Activiteit is meestal privé en beperkt tot het publiek. | + +### Voorbeelden van DAO's {#dao-examples} + +Om dit zinvoller te maken, geven we hier een paar voorbeelden van hoe u een DAO zou kunnen gebruiken: + +- Een goed doel – je kunt donaties accepteren van wie dan ook ter wereld en stemmen op waar het geld voor gebruikt kan worden. +- Collectief eigendom - je zou fysieke of digitale activa kunnen kopen en leden kunnen stemmen over het gebruik ervan. +- Ondernemingen en subsidies – u zou een risicofonds kunnen creëren dat beleggingskapitaal poolt en stemt op ondernemingen om financieel te ondersteunen. Terugbetaald geld kan later opnieuw worden verdeeld onder DAO-leden. + +## Hoe werken DAO's? {#how-daos-work} + +De backbone van een DAO is de smart contract ervan die de regels van de organisatie definieert en de schatkist van de groep houdt. Zodra het contract live is op Ethereum, kan niemand meer de regels veranderen. De regels kunnen enkel veranderd worden door een stemming. Als iemand iets probeert te doen dat niet valt onder de regels en logica in de code, zal het mislukken. En omdat de schatkist ook in het slimme contract wordt gedefinieerd, betekent dat niemand het geld kan uitgeven zonder toestemming van de groep. Dit betekent dat DAO's geen centrale autoriteit nodig hebben. In plaats daarvan neemt de groep collectief besluiten en worden betalingen automatisch toegestaan wanneer er wordt ingestemd. + +Dit is mogelijk omdat smart contracts fraudebestendig zijn zodra ze live op Ethereum gaan. U kunt de code (de regels van DAO's) niet gewoon bewerken zonder dat mensen dat merken, omdat alles openbaar is. + + + Meer over slimme contracten + + +## Ethereum en DAO's {#ethereum-and-daos} + +Ethereum is de perfecte basis voor DAO's om een aantal redenen: + +- De eigen consensus van Ethereum is zo verdeeld en voldoende vastgesteld dat organisaties het netwerk kunnen vertrouwen. +- De code van een slim contract kan niet aangepast worden zodra deze live is, zelfs niet door de eigenaren. Hierdoor kan de DAO functioneren volgens de regels waarmee ze oorspronkelijk was geprogrammeerd. +- Slimme contracten kunnen geld verzenden en ontvangen. Zonder dit zou u een vertrouwde tussenpersoon nodig hebben om groepsfondsen te beheren. +- De Ethereum-gemeenschap heeft bewezen meer samen te werken dan concurrerend te zijn, waardoor beste praktijken en ondersteuningssystemen snel tot stand kunnen komen. + +## DAO-governance {#dao-governance} + +Bij het besturen van een DAO zijn veel overwegingen aan de orde, zoals hoe stemmen en voorstellen werken. + +### Delegatie {#governance-delegation} + +Delegatie is als de DAO-versie van representatieve democratie. Tokenhouders delegeren stemmen aan gebruikers die zichzelf nomineren en zich ertoe verbinden het protocol te beheren en op de hoogte te blijven. + +#### Een goed voorbeeld {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) – ENS-houders kunnen hun stemmen delegeren aan betrokken leden van de gemeenschap om ze te vertegenwoordigen. + +### Automatisch transactiebeheer {#governance-example} + +In veel DAO's worden transacties automatisch uitgevoerd als een quorum van de leden positief stemt. + +#### Een goed voorbeeld {#governance-example} + +[Nouns](https://nouns.wtf) - In Nouns DAO wordt een transactie automatisch uitgevoerd wanneer er een quorum van stemmen wordt behaald en een meerderheid positief stemt, zolang er geen veto wordt uitgesproken door de stichters. + +### Multisig bestuur {#governance-example} + +Hoewel DAO's mogelijk duizenden stemmende leden hebben, worden fondsen vaak bewaard in een portemonnee die gedeeld wordt door 5-20 actieve leden die vertrouwd worden door de gemeenschap. Deze leden zijn vaak ook gedoxxed (d.w.z. hun publieke identiteit is bekend bij de gemeenschap). Na een stemming voeren de multisig-signers de wil van de gemeenschap uit. + +## DAO-wetten {#dao-laws} + +In 1977 heeft Wyoming het LLC uitgevonden, dat ondernemers beschermt en hun aansprakelijkheid beperkt. Meer recentelijk hebben ze het voortouw genomen in de DAO-wetgeving die de juridische status van DAO's vaststelt. Op dit moment hebben Wyoming, Vermont en de Maagdeneilanden een of andere vorm van DAO-wetgeving. + +### Een goed voorbeeld {#law-example} + +[CityDAO](https://citydao.io) – CityDAO gebruikte de DAO-wetgeving van Wyoming om 40 hectare land in de buurt van het Yellowstone nationaal park te kopen. + +## DAO-lidmaatschap {#dao-membership} + +Er zijn verschillende modellen voor een DAO-lidmaatschap. Lidmaatschap kan bepalen hoe stemmen en andere belangrijke delen van de DAO werken. + +### Op token gebaseerd lidmaatschap {#token-based-membership} + +Meestal volledig toestemmingsloos, afhankelijk van de gebruikte token. Meestal kunnen deze governance-tokens op een gedecentraliseerde exchange zonder toestemming worden verhandeld. Anderen moeten verdiend worden door middel van liquiditeit of een ander 'proof of work'. Hoe dan ook, alleen al het hebben van een token geeft toegang tot stemmen. + +_Meestal gebruikt om brede gedecentraliseerde protocollen en/of tokens zelf te besturen._ + +#### Een bekend voorbeeld {#token-example} + +[MakerDAO](https://makerdao.com) – De token MKR van MakerDAO is breed beschikbaar op gedecentraliseerde exchanges en iedereen kan hem kopen om een stem te hebben in de toekomst van het Maker-protocol. + +### Op aandelen gebaseerd lidmaatschap {#share-based-membership} + +Op aandelen gebaseerde DAO's vereisen meer toestemming, maar zijn nog steeds behoorlijk open. Elk toekomstig lid kan een voorstel indienen om zich bij de DAO aan te sluiten, meestal door waarde aan te bieden in de vorm van tokens of werk. Aandelen vertegenwoordigen directe stemkracht en eigendom. Leden kunnen op elk moment vertrekken met hun proportionele aandeel van de schatkist. + +_Meestal gebruikt voor hechtere, mensgerichtere organisaties zoals liefdadigheidsinstellingen, arbeiderscollectieven en beleggingsclubs. Kunnen ook protocollen en tokens regelen._ + +#### Een bekend voorbeeld {#share-example} + +[MolochDAO](http://molochdao.com/) – MolochDAO is gericht op het financieren van Ethereum-projecten. Zij vereisen een voorstel voor lidmaatschap, zodat de groep kan beoordelen of u over de nodige expertise en het nodige kapitaal beschikt om weloverwogen beslissingen te nemen over potentiële begunstigden. U kunt niet zomaar toegang tot de DAO op de open markt kopen. + +### Op reputatie gebaseerd lidmaatschap {#reputation-based-membership} + +Reputatie is een bewijs van deelname en geeft stemrecht in de DAO. Anders dan een op tokens of aandelen gebaseerd lidmaatschap, dragen op reputatie gebaseerde DAO's geen eigendomsrechten over aan de bijdragers. Reputatie kan niet worden gekocht, overgedragen of gedelegeerd; DAO-leden moeten reputatie verdienen door deelname. On-chain stemmen is vrij voor iedereen en toekomstige leden kunnen vrij voorstellen indienen om toe te treden tot de DAO en verzoeken om reputatie en tokens te ontvangen als beloning voor hun bijdragen. + +_Meestal gebruikt voor gedecentraliseerde ontwikkeling en governance van protocollen en dapps, maar ook goed geschikt voor een veelzijdige groep organisaties zoals liefdadigheidsinstellingen, arbeiderscollectieven, investeringsclubs, enz._ + +#### Een bekend voorbeeld {#reputation-example} + +[DXdao](https://DXdao.eth.link) – DXdao is een wereldwijd soeverein collectief dat sinds 2019 gedecentraliseerde protocollen en toepassingen bouwt en beheert. Het maakt gebruik van op reputatie gebaseerde governance en holografische consensus om fondsen te coördineren en te beheren, wat betekent dat niemand zomaar de toekomst ervan kan beïnvloeden door aankopen te doen. + +## Doe mee aan / start een DAO {#join-start-a-dao} + +### Doe mee aan een DAO {#join-a-dao} + +- [DAO's van de Ethereum-gemeenschap](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [Lijst van DAO's van DAOHaus](https://app.daohaus.club/explore) +- [Tally.xyz-lijst van DAO's](https://www.tally.xyz) + +### Start een DAO {#start-a-dao} + +- [Roep een DAO op met DAOHaus](https://app.daohaus.club/summon) +- [Start een Governor DAO met Tally](https://www.tally.xyz/add-a-dao) +- [Creëer een door Aragon mogelijk gemaakte DAO](https://aragon.org/product) +- [Start een kolonie](https://colony.io/) +- [Maak een DAO met de holografische consensus van DAOstack](https://alchemy.daostack.io/daos/create) + +## Verder lezen {#further-reading} + +### DAO-artikelen {#dao-articles} + +- [Wat is een DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) +- [Het DAO-handboek](https://daohandbook.xyz) +- [House of DAOs](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) +- [Wat is een DAO en waar is het voor?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) +- [Hoe een door een DAO mogelijk gemaakte digitale gemeenschap te starten](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) - [DAOhaus](https://daohaus.club/) +- [Wat is een DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) +- [Wat is holografische consensus?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) +- [DAOs are not corporations: where decentralization in autonomous organizations matters, van Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) +- [DAO's, DAC's, DA's en meer: een onvolledige terminologiegids](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Ethereum Blog](https://blog.ethereum.org) + +### Video's {#videos} + +- [Wat is een DAO in crypto?](https://youtu.be/KHm0uUPqmVE) +- [Kan een DOA een stad bouwen?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/public/content/translations/nl/decentralized-identity/index.md b/public/content/translations/nl/decentralized-identity/index.md new file mode 100644 index 00000000000..450a111c4eb --- /dev/null +++ b/public/content/translations/nl/decentralized-identity/index.md @@ -0,0 +1,185 @@ +--- +title: Gedecentraliseerde identiteit +description: Wat is gedecentraliseerde identiteit, en waarom is het belangrijk? +lang: nl +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: /eth-gif-cat.png +summaryPoint1: Traditionele identiteitssystemen hebben de uitgifte, het onderhoud en de controle van uw identificatiemiddelen gecentraliseerd. +summaryPoint2: Gedecentraliseerde identiteit verwijdert vertrouwen op gecentraliseerde derden. +summaryPoint3: Dankzij crypto hebben gebruikers nu de tools om hun eigen identificaties en attestaties uit te geven, bij te houden en te beheren. +--- + +Identiteit vormt vandaag de dag de basis van vrijwel elk aspect in uw leven. Gebruik maken van online diensten, een bankrekening openen, stemmen bij verkiezingen, onroerend goed kopen, een baan zekerstellen - al deze zaken vereisen uw identiteit. + +Traditionele identiteitsbeheersystemen hebben echter lang vertrouwd op gecentraliseerde tussenpersonen die uw identificatiegegevens en [attestaties](#what-are-attestations) uitgeven, bewaren en controleren. Dit betekent dat u uw identiteitsgerelateerde informatie niet kunt controleren of beslissen wie toegang heeft tot persoonlijke informatie (PII) en hoeveel toegang deze partijen precies hebben. + +Om deze problemen op te lossen, hebben we gedecentraliseerde identiteitssystemen gebouwd op openbare blockchains zoals Ethereum. Gedecentraliseerde identiteit stelt individuen in staat hun identiteitsgerelateerde informatie te beheren. Met gedecentraliseerde identiteitsoplossingen kunt _u_ zelf uw identificatiekenmerken creëren en houdt u zelf uw certificaten bij, zonder te vertrouwen op centrale autoriteiten, zoals dienstverleners of overheden. + +## Wat is identiteit? {#what-is-identity} + +Identiteit betekent iemands gevoel voor zichzelf, gedefinieerd door zijn unieke kenmerken. Identiteit verwijst naar het zijn van een _individu_, d.w.z. een afzonderlijke menselijke entiteit. Identiteit zou ook kunnen verwijzen naar andere niet-menselijke entiteiten, zoals een organisatie of autoriteit. + +## Wat zijn identicatiekenmerken? {#what-are-identifiers} + +Een identicatiekenmerk is een stuk informatie dat als aanwijzing dient voor een bepaalde identiteit of bepaalde identiteiten. Algemene identificatiekenmerken omvatten: + +- Naam +- Sociale-zekerheidsnummer/BTW-nummer +- Mobiel (telefoon)nummer +- Datum en plaats van geboorte +- Digitale identificatiegegevens, bijv. e-mailadressen, gebruikersnamen, avatars + +Deze traditionele identificatiekenmerken worden uitgegeven, beheerd en gecontroleerd door centrale entiteiten. U heeft toestemming nodig van uw regering om uw naam te veranderen of van een social media platform om uw gebruikersnaam te veranderen. + +## Wat zijn attesten? {#what-are-attestations} + +Een attest is een claim gedaan door een entiteit over een andere entiteit. Als u in de Verenigde Staten woont, dan attesteert het door de afdeling Motorvoertuigen (een entiteit) verstrekte rijbewijs dat u (een andere entiteit) legale toestemming heeft om in een auto te rijden. + +Attesten verschillen van identificatiekenmerken. Een attest _bevat_ identificatiekenmerken om te verwijzen naar een bepaalde identiteit en maakt een claim over een kenmerk dat gerelateerd is aan deze identiteit. Dus uw rijbewijs bevat identificatiekenmerken (naam, geboortedatum, adres), maar is ook het attest van uw wettelijke recht om te rijden. + +### Wat zijn gedecentraliseerde identificatiekenmerken? {#what-are-decentralized-identifiers} + +Traditionele identificatiekenmerken zoals uw wettelijke naam of e-mailadres vertrouwen op derde partijen — overheden en e-mailproviders. Gedecentraliseerde kenmerken (DID's) zijn anders — ze worden niet uitgegeven, beheerd of gecontroleerd door een centrale entiteit. + +Gedecentraliseerde identificatiekenmerken worden uitgegeven, beheerd en gecontroleerd door personen. Een [Ethereum-account](/developers/docs/accounts/) is een voorbeeld van een gedecentraliseerd identificatiekenmerk. U kunt zoveel accounts aanmaken als u wilt zonder enige toestemming van wie ook en zonder dat u ze hoeft op te slaan in een centraal register. + +Gedecentraliseerde identificatiekenmerken worden opgeslagen op gedistribueerde ledgers (blockchains) of peer-to-peer netwerken. Dit maakt DID's [wereldwijd uniek, oplosbaar met een hoge beschikbaarheid en cryptografisch verifieerbaar](https://w3c-ccg.github.io/did-primer/). Een gedecentraliseerd identificatiekenmerk kan worden geassocieerd met verschillende entiteiten, waaronder mensen, organisaties of overheidsinstellingen. + +## Wat maakt gedecentraliseerde identificatiekenmerken mogelijk? {#what-makes-decentralized-identifiers-possible} + +### 1. Publieke sleutel-infrastructuur (PKI) {#public-key-infrastructure} + +Publieke sleutel-infrastructuur (PKI) is een informatiebeveiligingsmaatregel die een [publieke sleutel](/glossary/#public-key) en [privé-sleutel](/glossary/#private-key) voor een entiteit genereert. Publieke sleutel-cryptografie wordt gebruikt in blockchain-netwerken om gebruikersidentiteiten te verifiëren en eigendom van digitale activa te bewijzen. + +Sommige gedecentraliseerde identificatiekenmerken, zoals een Ethereum-account, hebben publieke en privé-sleutels. De publieke sleutel identificeert de account-controller, terwijl de privé-sleutels berichten kunnen ondertekenen en decrypteren voor dit account. PKI biedt bewijzen die nodig zijn om entiteiten te verifiëren en impersonatie en het gebruik van valse identiteiten te voorkomen, met behulp van [cryptografische handtekeningen](https://andersbrownworth.com/blockchain/public-private-keys/) om alle claims te verifiëren. + +### 2. Gedecentraliseerde datastores {#decentralized-datastores} + +Een blockchain dient als een verifieerbaar dataregister: een open, betrouwbare en gedecentraliseerde opslagplaats van informatie. Het bestaan van openbare blockchains voorkomt de noodzaak om identificatiekenmerken op te slaan in gecentraliseerde registers. + +Als iemand de geldigheid van een gedecentraliseerd identificatiekenmerk moet bevestigen, kan hij de bijbehorende publieke sleutel op de blockchain zoeken. Dit is anders dan de traditionele identificatiekenmerken die door derden geauthenticeerd moeten worden. + +## Hoe maken gedecentraliseerde kenmerken en attesten gedecentraliseerde identiteit mogelijk? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} + +Gedecentraliseerde identiteit is het idee dat identiteitsgerelateerde informatie zelfbediend, privé en draagbaar moet zijn, waarbij gedecentraliseerde kenmerken en attesten de primaire bouwstenen zijn. + +In de context van een gedecentraliseerde identiteit zijn attesten (ook bekend als [Verifiable Credentials](https://www.w3.org/TR/vc-data-model/)) manipulatiebestendige, cryptografisch verifieerbare claims gemaakt door de uitgever. Elke bevestiging of Verifieerbare Legitimatie (Verifiable Credential) die entiteiten (bijv. een organisatie) uitgeven, is gekoppeld aan hun DID. + +Omdat DID's op de blockchain zijn opgeslagen, kan iedereen de geldigheid van een attest verifiëren door de DID van de uitgever op Ethereum te controleren. De Ethereum-blockchain gedraagt zich in wezen als een wereldwijde directory die de verificatie van DID's die gekoppeld zijn aan bepaalde entiteiten mogelijk maakt. + +Gedecentraliseerde identificatiekenmerken zijn de reden dat attesten zelfcontrolerend en verifieerbaar zijn. Zelfs als de uitgevende instelling niet meer bestaat, heeft de houder altijd bewijs van de herkomst en geldigheid van het attest. + +Gedecentraliseerde kenmerken zijn ook van cruciaal belang voor de bescherming van de privacy van persoonlijke informatie door middel van gedecentraliseerde identiteit. Als een persoon bijvoorbeeld een bewijs van een attest (een rijbewijs) indient, hoeft de verifiërende partij de geldigheid van informatie in het bewijs niet te controleren. In plaats daarvan heeft de verifiërende partij alleen cryptografische garanties nodig voor de authenticiteit van het attest en de identiteit van de uitgevende organisatie om te bepalen of het bewijs geldig is. + +## Soorten attesten in gedecentraliseerde identiteit {#types-of-attestations-in-decentralized-identity} + +Hoe attestinformatie wordt opgeslagen en opgehaald in een Ethereum-identiteitsecosysteem is anders dan bij traditioneel identiteitsbeheer. Hier is een overzicht van de verschillende benaderingen om attesten uit te geven, op te slaan en te verifiëren in gedecentraliseerde identiteitssystemen: + +### Off-chain attesten {#off-chain-attestations} + +Een nadeel van opslag van attesten on-chain is dat ze informatie kunnen bevatten die personen liever privé willen houden. De publieke aard van de Ethereum-blockchain maakt het onaantrekkelijk om dergelijke attesten bij te houden. + +De oplossing is het uitgeven van attesten, die worden bijgehouden door de gebruikers zelf (off-chain in digitale portemonnees), maar ondertekend met de DID van de uitgever, die on-chain is opgeslagen. Deze attesten worden versleuteld als [JSON Web Tokens](https://en.wikipedia.org/wiki/JSON_Web_Token) en bevatten de digitale handtekening van de uitgever — wat eenvoudige verificatie van off-chain claims mogelijk maakt. + +Hier is een hypothetisch scenario om off-chain attesten uit te leggen: + +1. Een universiteit (de uitgever) genereert een attest (een digitaal academisch certificaat), ondertekent het met zijn sleutels en geeft het uit aan Bob (de identiteitseigenaar). + +2. Bob solliciteert op een baan en wil zijn academische kwalificaties bewijzen aan een werkgever, dus deelt hij het attest vanuit zijn mobiele portemonnee. Het bedrijf (de verifiërende partij) kan dan de geldigheid van het attest bevestigen door de DID van de uitgever te controleren (d.w.z. de publieke sleutel ervan op Ethereum). + +### Off-chain attesten met persistente toegang {#offchain-attestations-with-persistent-access} + +Onder deze regeling worden attesten omgezet in JSON-bestanden en off-chain opgeslagen (in het ideale geval in een [gedecentraliseerde cloudopslagplatform](/developers/docs/storage/), zoals IPFS of Swarm). Een [hash](/glossary/#hash) van het JSON-bestand wordt echter on-chain opgeslagen en gekoppeld aan een DID via een on-chain register. De bijbehorende DID kan van de uitgever van het attest of van de ontvanger zijn. + +Deze aanpak maakt het mogelijk om voor attesten blockchain-gebaseerde persistentie te verkrijgen, terwijl informatie over claims versleuteld en verifieerbaar blijft. Het maakt ook een selectieve openbaarmaking mogelijk, aangezien de houder van de privé-sleutel de informatie kan decoderen. + +### On-chain attesten {#onchain-attestations} + +On-chain attesten worden bijgehouden in [smart contracts](/developers/docs/smart-contracts/) op de Ethereum-blockchain. Het smart contract (dat handelt als een register) zal een attest toewijzen aan een bijbehorend on-chain gedecentraliseerd identificatiekenmerk (een publieke sleutel). + +Hier is een voorbeeld om te laten zien hoe on-chain attesten in de praktijk zouden kunnen werken: + +1. Een bedrijf (XYZ Corp) is van plan eigendomsaandelen te verkopen met behulp van een smart contract, maar wil alleen kopers die een achtergrondcontrole hebben voltooid. + +2. XYZ Corp kan het bedrijf achtergrondcontroles laten uitvoeren om on-chain attesten op Ethereum uit te geven. Dit attest verklaart dat een persoon de achtergrondcontrole heeft doorstaan zonder dat enige persoonlijke gegevens zijn openbaargemaakt. + +3. Het smart contract dat de aandelen verkoopt kan het registercontract controleren voor de identiteit van gescreende kopers; dit maakt het mogelijk voor het smart contract om te bepalen wie de aandelen mag kopen en wie niet. + +### Zielsgebonden tokens en identiteit {#soulbound} + +[Zielsgebonden tokens](https://vitalik.ca/general/2022/01/26/soulbound.html) (niet-overdraagbare NFT's) kunnen worden gebruikt om informatie te verzamelen die uniek is voor een specifieke portemonnee. Dit creëert in feite een unieke on-chain identiteit gekoppeld aan een bepaald Ethereum-adres, dat tokens kan bevatten die prestaties (bijv. het voltooien van een specifieke online cursus of het verbreken van een score in een game) of deelname aan een gemeenschap vertegenwoordigen. + +## Voordelen van gedecentraliseerde identiteit {#benefits-of-decentralized-identity} + +1. Gedecentraliseerde identiteit verhoogt de individuele controle op identificatie-informatie. Gedecentraliseerde identificatiekenmerken en attesten kunnen worden geverifieerd zonder te vertrouwen op gecentraliseerde autoriteiten en diensten van derden. + +2. Gedecentraliseerde identiteitsoplossingen maken een betrouwbare, naadloze en privacy-beschermingsmethode mogelijk voor het verifiëren en beheren van de gebruikersidentiteit. + +3. Gedecentraliseerde identiteit benut blockchain-technologie, wat voor vertrouwen tussen verschillende partijen zorgt en cryptografische garanties biedt om de geldigheid van attesten te bewijzen. + +4. Gedecentraliseerde identiteit maakt identiteitsgegevens draagbaar. Gebruikers bewaren attesten en identificatiekenmerken in een mobiele portemonnee en kunnen deze delen met een partij van keuze. Gedecentraliseerde identificatiekenmerken en attesten zijn niet vergrendeld in de database van de uitgevende organisatie. + +5. Gedecentraliseerde identiteit moet goed werken met opkomende zero-knowledge-technologieën, die mensen in staat stellen om te bewijzen dat ze iets in bezit hebben of gedaan hebben zonder te onthullen wat het precies is. Dit zou een krachtige manier kunnen zijn om vertrouwen en privacy te combineren voor toepassingen zoals stemmen. + +6. Gedecentraliseerde identiteit maakt het voor het anti-Sybil-mechanisme mogelijk om te identificeren wanneer een individu zich voordoet als meerdere individuen om te gamen of om een systeem te spammen. + +## Use-cases voor gedecentraliseerde identiteit {#decentralized-identity-use-cases} + +Gedecentraliseerde identiteit heeft vele potentiële use-cases: + +### 1. Universele logins {#universal-dapp-logins} + +Gedecentraliseerde identiteit kan wachtwoordgebaseerde logins vervangen door [gedecentraliseerde authenticatie](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). Dienstverleners kunnen attesten uitgeven aan gebruikers, die kunnen worden opgeslagen in een Ethereum-portemonnee. Een voorbeeld hiervan is: een [NFT](/nft/) die de houder toegang geeft tot een online community. + +Een functie [Aanmelden met Ethereum](https://login.xyz/) zou dan de servers in staat stellen om het Ethereum-account van de gebruiker te bevestigen en het vereiste attest op te halen van zijn/haar accountadres. Dit betekent dat gebruikers toegang hebben tot platformen en websites zonder lange wachtwoorden te hoeven onthouden, en het verbetert de online ervaring voor gebruikers. + +### 2. KYC-verificatie {#kyc-authentication} + +Het gebruik van online diensten vereist dat personen attesten en andere gegevens moeten voorleggen, zoals een rijbewijs of een nationaal paspoort. Deze benadering is echter problematisch, omdat particuliere gebruikersinformatie in gevaar kan worden gebracht en dienstverleners de geldigheid van het attest niet kunnen verifiëren. + +Gedecentraliseerde identiteit staat bedrijven toe om de conventionele [Know-Your-Customer (KYC)](https://en.wikipedia.org/wiki/Know_your_customer)-processen over te slaan en gebruikersidentiteiten te verifiëren via Verifiable Credentials. Dit vermindert de kosten van identiteitsbeheer en voorkomt het gebruik van valse documenten. + +### 3. Stemmen en online gemeenschappen {#voting-and-online-communities} + +Online stemmen en sociale media zijn twee nieuwe toepassingen van gedecentraliseerde identiteit. Online verkiezingen zijn vatbaar voor manipulatie, vooral als kwaadwillige spelers valse identiteiten creëren om te kunnen stemmen. Mensen vragen om on-chain attesten te presenteren kan de integriteit van online stemprocessen verbeteren. + +Gedecentraliseerde identiteit kan helpen online gemeenschappen te creëren zonder valse accounts. Elke gebruiker zou bijvoorbeeld zijn/haar identiteit moeten verifiëren met behulp van een on-chain identiteitssysteem, zoals de Ethereum Name Service, waardoor de mogelijkheid van bots wordt verkleind. + +### 4. Anti-Sybil-bescherming {#sybil-protection} + +Sybil-aanvallen verwijzen naar individuele mensen die een systeem valselijk doen denken dat het om meerdere mensen gaat, om zo hun invloed te vergroten. [Subsidies toekennende applicaties](https://gitcoin.co/grants/) die gebruik maken van [kwadratisch stemmen](https://www.radicalxchange.org/concepts/plural-voting/) zijn kwetsbaar voor deze Sybil-aanvallen, omdat de waarde van een subsidie wordt verhoogd wanneer meer personen erop stemmen, wat gebruikers ertoe aanzet om hun bijdragen te verdelen over meerdere identiteiten. Gedecentraliseerde identiteiten helpen dit te voorkomen door de last voor elke deelnemer om te bewijzen dat hij of zij echt een mens is, te verhogen, vaak zonder dat het nodig is om specifieke privé-informatie te onthullen. + +## Gebruik gedecentraliseerde identiteit {#use-decentralized-identity} + +Er zijn veel ambitieuze projecten die Ethereum als basis voor gedecentraliseerde identiteitsoplossingen gebruiken: + +- **[Ethereum Name Service (ENS)](https://ens.domains/)** - _Een gedecentraliseerd benamingssysteem voor on-chain, machine-leesbare identificatiekenmerken, zoals Ethereum-portemonnee-adressen, content hashes en metadata._ +- **[SpruceID](https://www.spruceid.com/)** - _Een gedecentraliseerd identiteitsproject dat gebruikers in staat stelt om hun digitale identiteit te beheren met Ethereum-accounts en ENS-profielen, in plaats van te vertrouwen op diensten van derden._ +- **[Ethereum Attestation Service (EAS)](https://attest.sh/)** - _Een gedecentraliseerd grootboek/protocol voor het maken van on-chain of off-chain attestaties over wat dan ook._ +- **[Bewijs van Menselijkheid (PoH)](https://www.proofofhumanity.id)** - _Bewijs van Menselijkheid (of Proof of Humanity, PoH) is een sociaal identiteitsverificatiesysteem gebouwd op Ethereum._ +- **[BrightID](https://www.brightid.org/)** - _Een gedecentraliseerd, open-source sociaal identiteitsnetwerk dat probeert de identiteitsverificatie te hervormen door het creëren en analyseren van een sociale grafiek._ +- **[Proof-of-personhood-paspoort](https://proofofpersonhood.com/)** - _Een gedecentraliseerde digitale identiteitsaggregator._ + +## Verder lezen {#further-reading} + +### Artikels {#articles} + +- [Blockchain Use Cases: blockchain in digitale identiteit](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ +- [Wat is Ethereum ERC725? Zelf-soeverein identiteitsbeheer op de 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) — _Emmanuel Awosika_ + +### Video's {#videos} + +- [Gedecentraliseerde identiteit (Bonus Livestream Sessie)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) - _Een geweldige uitleg over gedecentraliseerde identiteit van Andreas Antonopolous_ +- [Aanmelden met Ethereum en gedecentraliseerde identiteit met Ceramic, IDX, React en 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) - _YouTube-tutorial over het opbouwen van een identiteitsbeheersysteem voor het creëren, lezen en bijwerken van gebruikersprofielen met behulp van Ethereum-portemonnees door Nader Dabit_ +- [BrightID - Gedecentraliseerde identiteit op Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _Bankless podcast over BrightID, een gedecentralisserde identiteitsoplossing voor Ethereum_ +- [The Off Chain Internet: Decentralized Identity & Verifiable Credentials](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — Presentatie op EthDenver 2022 door Evin McMullen + +### Gemeenschappen {#communities} + +- [ERC-725-alliantie op GitHub](https://github.com/erc725alliance) — _Voorstanders van de ERC725-standaard voor het beheer van identiteit op de Ethereum-blockchain_ +- [SpruceID Discord-server](https://discord.com/invite/Sf9tSFzrnt) — _Gemeenschap voor enthousiastelingen en ontwikkelaars die werken aan Aanmelden met Ethereum_ +- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Een gemeenschap van ontwikkelaars die bijdraagt aan het bouwen van een kader om gegevens te verifieren voor applicaties_ diff --git a/public/content/translations/nl/defi/index.md b/public/content/translations/nl/defi/index.md new file mode 100644 index 00000000000..f3eafe6c48d --- /dev/null +++ b/public/content/translations/nl/defi/index.md @@ -0,0 +1,352 @@ +--- +title: Gedecentraliseerde financiën (DeFi) +description: Een overzicht van DeFi op Ethereum +lang: nl +template: use-cases +emoji: ":money_with_wings:" +image: /use-cases/defi.png +alt: Een Eth-logo gemaakt van legostenen. +sidebarDepth: 2 +summaryPoint1: Een wereldwijd, open alternatief voor ons huidige financiële systeem. +summaryPoint2: Producten waarmee u kunt lenen, sparen, investeren, handelen en meer. +summaryPoint3: Gebaseerd op open-source-technologieën die iedereen kan gebruiken. +--- + +DeFi is een open en globaal financieel systeem gemaakt voor het internettijdperk. Het is een alternatief voor het huidige financiële systeem dat streng gecontrolleerd is en dat op een oude infrastructuur gebouwd is. Het geeft u volledige controlle en inzicht in uw geld. Het geeft u blootstelling aan de mondiale markten en alternatieven voor uw lokale valuta of bankopties. DeFi-producten stellen diensten open voor iedereen met een internetverbinding en zijn grotendeels het eigendom van en worden onderhouden door de gebruikers. Tot dusver zijn er al miljarden dollars aan crypto door DeFi-applicaties gestroomd en dit groeit nog elke dag. + +## Wat is DeFi? {#what-is-defi} + +DeFi is een collectieve term voor financiële producten en diensten die toegankelijk zijn voor iedereen die Ethereum kan gebruiken - iedereen met een internetverbinding. Met DeFi zijn de markten altijd open en is er geen gecentraliseerde autoriteit die betalingen kan blokkeren of de toegang van gebruikers kan weigeren. Diensten die voorheen traag waren en die het risico liepen op menselijke fouten, zijn automatisch en veiliger nu ze worden beheerd door middel van code die iedereen online kan bekijken. + +Er is een bloeiende cryptomarkt waar u kunt lenen, long/short kunt gaan, rente kunt verdienen, en meer. In crypto onderlegde Argentiniërs hebben DeFi gebruikt om te ontsnappen aan verlammende inflatie. Bedrijven zijn begonnen met het streamen van loon van hun werknemers in realtime. Sommige mensen zijn leningen ter waarde van miljoenen dollars aangegaan en hebben deze afbetaald, zonder dat daar enige persoonlijke identificatie voor nodig was. + + + +## Defi vs traditionele financiën {#defi-vs-tradfi} + +Een van de beste manieren om het potentieel van DeFi in te zien is het begrijpen van de problemen die vandaag de dag bestaan. + +- Er zijn mensen die geen toegang krijgen om een bankrekening te openen of gebruik te maken van andere financiële diensten. +- Het gebrek aan toegang tot financiële diensten kan mensen verhinderen om een baan te vinden. +- Financiële diensten kunnen u ervan weerhouden uitbetaald te worden. +- Verborgen kosten van financiële diensten hebben te maken met uw eigen persoonlijke data. +- Overheden en gecentraliseerde instellingen kunnen markten naar eigen wens doen sluiten. +- Handelstijden op de beurs zijn vaak beperkt tot de kantooruren van een bepaalde tijdszone. +- Als gevolg van interne menselijke processen kunnen geldoverdrachten dagen duren. +- Er is een premie voor financiële diensten, omdat intermediaire instellingen hun deel vereisen. + +### Een vergelijking {#defi-comparison} + +| DeFi | Traditionele financiën | +| ----------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| U heeft uw geld in bezit. | Uw geld wordt beheerd door bedrijven. | +| U controleert waar uw geld naartoe gaat en hoe het wordt uitgegeven. | Je moet erop vertrouwen dat bedrijven je geld niet verkeerd beheren, zoals het uitlenen aan risicovolle leners. | +| Geldoverboekingen vinden in enkele minuten plaats. | Betalingen kunnen dagen duren vanwege handmatige processen. | +| Transactieactiviteit is pseudoniem. | Financiële activiteit is nauw verbonden met uw identiteit. | +| Defi staat voor iedereen open. | U moet een aanvraag indienen om gebruik te maken van financiële diensten. | +| De markten zijn altijd open. | De markten sluiten omdat werknemers ook pauze's nodig hebben. | +| Het is gebaseerd op transparantie – iedereen kan de gegevens van een product bekijken en inspecteren hoe het systeem in elkaar zit. | Financiële instellingen zijn gesloten boeken: je kunt ze niet vragen om de geschiedenis van hun leningen, om een overzicht van hun beheerde activa, enzovoort. | + + + Verken DeFi apps + + +## Het begon allemaal met Bitcoin... {#bitcoin} + +Bitcoin was in vele opzichten de eerste DeFi-applicatie. Bitcoin laat u echt waarde bezitten en beheren en u kunt het overal ter wereld heen sturen. Het doet dit door een manier te bieden voor een groot aantal mensen die elkaar niet vertrouwen, om akkoord te gaan met een grootboekrekening zonder dat een vertrouwde tussenpersoon nodig is. Bitcoin is toegankelijk voor iedereen en niemand heeft de bevoegdheid om de regels te wijzigen. De regels van Bitcoin, zoals de schaarste en de openheid ervan, zijn in de technologie verwerkt. Het is niet zoals traditionele financiën waar regeringen geld kunnen bijprinten zodat jouw spaargeld devalueert, en waar bedrijven de markten zomaar kunnen sluiten. + +Ethereum bouwt hierop voort. Net als Bitcoin, kunnen de regels niet veranderen en heeft iedereen toegang. Maar het maakt dit digitale geld ook programmeerbaar met behulp van [slimme contracten](/glossary#smart-contract), zodat u veel meer kunt doen dan enkel het opslaan en verzenden van waarde. + + + +## Programmeerbaar geld {#programmable-money} + +Dit klinkt vreemd... "Waarom zou ik mijn geld willen programmeren"? Dit is echter meer dan een standaardkenmerk van tokens op Ethereum. Iedereen kan logica programmeren in betalingen. Zodat u de controle en veiligheid van Bitcoin kunt krijgen gemengd met de diensten die door financiële instellingen worden aangeboden. Dit laat u dingen doen met cryptocurrencies die u niet kunt doen met Bitcoin, zoals leningen geven en nemen, betalingen plannen, investeren in indexfondsen en veel meer. + + +
Verken onze suggesties voor DeFi-applicaties om uit te proberen als u nieuw bent bij Ethereum.
+ + Verken DeFi-apps + +
+ +## Wat kunt u doen met DeFi? {#defi-use-cases} + +Er is een gedecentraliseerd alternatief voor de meeste financiële diensten. Maar Ethereum creëert ook mogelijkheden om financiële producten te maken die volledig nieuw zijn. Dit is een steeds groter wordende lijst. + +- [Stuur geld over de hele wereld](#send-money) +- [Stream geld over de hele wereld](#stream-money) +- [Krijg toegang tot stabiele valuta](#stablecoins) +- [Leen geld met onderpand](#lending) +- [Leen geld zonder onderpand](#flash-loans) +- [Start met crypto sparen](#saving) +- [Handel in tokens](#swaps) +- [Maak uw portfolio groter](#investing) +- [Financier uw ideeën](#crowdfunding) +- [Koop verzekering](#insurance) +- [Beheer uw portfolio](#aggregators) + + + +### Stuur snel geld over de hele wereld {#send-money} + +Als blockchain is Ethereum ontworpen voor het op veilige en mondiale manier verzenden van transacties. Net als Bitcoin, maakt Ethereum het verzenden van geld over de hele wereld zo eenvoudig als het verzenden van een e-mail. Voer gewoon de [ENS-naam](/nft/#nft-domains) (zoals bob.eth) van uw ontvanger in of het accountadres van hun portemonnee, en uw betaling zal (doorgaans) direct in minuten naar hen gaan. Om betalingen te kunnen verzenden en/of ontvangen, heeft u een [portemonnee](/wallets/) nodig. + + + Zie betaling-dapps + + +#### Stream geld over de hele wereld... {#stream-money} + +U kunt ook geld over Ethereum streamen. Hiermee kunt u iemands salaris per seconde betalen, waardoor hij/zij toegang krijgt tot zijn/haar geld waar en wanneer hij/zij dat nodig heeft. Of iets huren per seconde, zoals een opslagplaats of een elektrische scooter. + +En als u niet [ETH](/eth/) wilt verzenden of streamen vanwege het feit dat de waarde kan veranderen, zijn er alternatieve valuta op Ethereum: stablecoins. + + + +### Krijg toegang tot stabiele valuta {#stablecoins} + +Volatiliteit van cryptocurrencies is een probleem voor veel financiële producten en algemene uitgaven. De DeFi-gemeenschap heeft dit opgelost met stalecoins. Hun waarde blijft gekoppeld aan een ander activum, meestal een populaire valuta zoals dollars. + +Munten als Dai of USDC hebben een waarde die binnen een paar cent van een dollar blijft. Dit maakt ze perfect voor verdienen of retail. Veel mensen in Latijns-Amerika hebben stablecoins gebruikt om hun spaargeld te beschermen in een tijd van grote onzekerheid met de door de overheid uitgegeven valuta. + + + Meer over stablecoins + + + + +### Lenen {#lending} + +Het lenen van geld van gedecentraliseerde aanbieders komt in twee hoofdvarianten. + +- Peer-to-peer, wat betekent dat een lener direct van een specifieke kredietgever zal lenen. +- Poolgebaseerd, waarbij kredietgevers fondsen (liquiditeit) aan een pool verstrekken waar leners van kunnen lenen. + + + Zie dapps voor lenen + + +Er zijn vele voordelen voor het gebruik van een gedecentraliseerd grootboek... + +#### Lenen met privacy {#borrowing-privacy} + +Vandaag gaat het bij het lenen en krediet verstrekken van geld allemaal om de personen die betrokken zijn. Banken moeten weten of u een lening kunt terugbetalen voordat u de lening krijgt. + +Gedecentraliseerde leningen werken zonder dat een van beide partijen zich hoeft te identificeren. In plaats daarvan moet de lener een onderpand stellen die de kredietverstrekker automatisch krijgt als de lening niet wordt terugbetaald. Sommige kredietverstrekkers accepteren zelfs NFT's als onderpand. NFT's zijn een akte voor een uniek goed, zoals een schilderij. [Meer over NFT's](/nft/) + +Dit stelt u in staat om geld te lenen zonder kredietcontroles of het geven van privé-gegevens. + +#### Toegang tot globale fondsen {#access-global-funds} + +Wanneer u een gedecentraliseerde kredietgever gebruikt, heeft u toegang tot fondsen die van over de hele wereld worden gestort, dus niet enkel de fondsen in de bewaring van uw gekozen bank of instelling. Dit maakt leningen toegankelijker en verbetert de rentevoet. + +#### Belastingefficiëntie {#tax-efficiencies} + +Lenen kan u toegang geven tot de fondsen die u nodig heeft zonder dat u ETH hoeft te verkopen (een belastbare gebeurtenis). In plaats daarvan kun je ETH gebruiken als onderpand voor een lening in stablecoins. Dit geeft u de cash-flow die u nodig heeft en laat u uw ETH behouden. Stablecoins zijn tokens die veel beter zijn voor wanneer u geld nodig heeft omdat ze niet fluctueren in waarde zoals ETH. [Meer over stablecoins](#stablecoins) + +#### Flash-leningen {#flash-loans} + +Flash-leningen zijn een experimentele vorm van gedecentraliseerde leningen, die u zonder onderpand laten lenen en waarbij u geen persoonlijke informatie hoeft te verstrekken. + +Ze zijn momenteel niet breed toegankelijk voor niet-technische mensen, maar ze laten zien wat er in de toekomst voor iedereen mogelijk is. + +Het is gebaseerd op het feit dat de lening in het kader van dezelfde transactie wordt aangegaan en terugbetaald. Als het niet kan worden terugbetaald, wordt de transactie teruggedraaid alsof er nooit iets is gebeurd. + +De fondsen die vaak worden gebruikt, worden gehouden in liquiditeitspools (grote pools van fondsen die worden gebruikt om te lenen). Als ze op een bepaald moment niet worden gebruikt, schept dit een kans voor iemand om dit geld te lenen. Deze persoon kan hier zijn zaken mee doen en de lening letterlijk terugbetalen op het moment dat de lening gedaan wordt. + +Dit betekent dat er veel logica in een op maat gemaakt transactie moet worden opgenomen. Een eenvoudig voorbeeld is iemand die een flash-lening gebruikt om veel van een activum te lenen tegen één prijs, zodat hij/zij dit kan verkopen op een andere exchange waar de prijs hoger is. + +Dus in één enkele transactie gebeurt het volgende: + +- U leent een X bedrag van $activum tegen $ 1,00 van exchange A +- U verkoopt X $activum op exchange B voor $ 1,10 +- U betaalt de lening terug aan exchange A +- U houdt de winst minus het transactietarief. + +Als het aanbod van exchange B plotseling afnam en de gebruiker niet genoeg kon kopen om de oorspronkelijke lening te dekken, zou de transactie gewoon mislukken. + +Om het bovenstaande voorbeeld in de traditionele financiële wereld te kunnen doen, zou u een enorme hoeveelheid geld nodig hebben. Deze strategieën voor het verdienen van geld zijn alleen toegankelijk voor mensen met bestaande rijkdom. Flash-leningen zijn een voorbeeld van een toekomst waarin het hebben van geld niet noodzakelijkerwijs een voorwaarde is voor het verdienen van geld. + +[Meer over flash-leningen](https://aave.com/flash-loans/) + + + +### Begin met het sparen van crypto {#saving} + +#### Uitlenen {#lending} + +U kunt rente verdienen op uw crypto door het uit te lenen en uw geld in realtime te laten groeien. Op dit moment liggen de rentetarieven veel hoger dan wat u waarschijnlijk bij uw lokale bank krijgt (als u geluk genoeg hebt om er toegang toe te hebben). Hier is een voorbeeld: + +- U leent uw 100 dai uit, een [stablecoin](/stablecoins/), voor een product als Aave. +- U ontvangt 100 Aave Dai (aDai), wat een token is dat uw uitgeleende Dai vertegenwoordigt. +- Uw aDai zal toenemen op basis van de rente en u zult uw saldo zien groeien in uw portemonnee. Afhankelijk van de APR, zal uw portemonneesaldo na een paar dagen of zelfs uren veranderen in iets als 100,1234! +- U kunt op elk gewenst moment een hoeveelheid normale Dai opnemen die gelijk is aan uw aDai-saldo. + + + Bekijk uitleen-dapps + + +#### Loterijen zonder verlies {#no-loss-lotteries} + +No-loss loterijen zoals PoolTogether zijn een leuke en innovatieve nieuwe manier om geld te besparen. + +- Je koopt 100 tickets met 100 Dai-tokens. +- Je ontvangt 100 plDai die je 100 tickets vertegenwoordigen. +- Als een van uw tickets als winnaar wordt gekozen, wordt uw plDai-saldo verhoogd met het bedrag van de prijzenpool. +- Als u niet wint, gaat uw 100 plDai over naar de loting van de volgende week. +- U kunt een hoeveelheid normale Dai opnemen die gelijk is aan uw plDai-saldo op elk moment. + +De prijzenpool wordt gegenereerd door alle rente die gegenereerd wordt door het lenen van ticketdeposito's, zoals in het bovenstaande leningvoorbeeld. + + + Probeer PoolTogether + + + + +### Exchange tokens {#swaps} + +Er zijn duizenden tokens op Ethereum. Gedecentraliseerde exchanges (DEX's) laten u verschillende tokens verhandelen wanneer u dat wilt. U geeft de controle over uw activa nooit op. Dit is net zoiets als het gebruik van een wisselkantoor bij een bezoek aan een ander land. Maar de DeFi-versie sluit nooit. De markten zijn 24/7, 365 dagen per jaar open en de technologie garandeert dat er altijd iemand is die een handel accepteert. + +Als u bijvoorbeeld de no-loss loterij PoolTogether wilt gebruiken (hierboven beschreven), heeft u een token nodig zoals Dai of USDC. Met deze DEX's kunt u uw ETH wisselen voor deze tokens en weer terug wanneer u klaar bent. + + + Bekijk token exchanges + + + + +### Geavanceerd handelen {#trading} + +Er zijn meer geavanceerde opties voor handelaren die van een beetje meer controle houden. Limietorders, perpetuals, margehandel en meer zijn allemaal mogelijk. Met gedecentraliseerd handelen krijgt u toegang tot wereldwijde liquiditeit, de markt sluit nooit af, en u heeft altijd de controle over uw geld. + +Wanneer u een gecentraliseerde exchange gebruikt, moet u uw geld storten vóór de transactie en erop vertrouwen dat de instelling goed voor het geld zal zorgen. Terwijl uw activa gestort worden, lopen ze risico omdat gecentraliseerde beurzen aantrekkelijke doelwitten zijn voor hackers. + + + Bekijk trading dapps + + + + +### Breid uw portfolio uit {#investing} + +Er zijn producten voor fondsbeheer op Ethereum die zullen proberen uw portefeuille te laten groeien op basis van een strategie naar eigen keuze. Dit is automatisch, open voor iedereen, en heeft geen menselijke manager nodig die een deel van uw winst afneemt. + +Een goed voorbeeld is het [DeFi Pulse Index-fonds (DPI)](https://defipulse.com/blog/defi-pulse-index/). Dit is een fonds dat automatisch in evenwicht blijft om ervoor te zorgen dat je portfolio altijd [de beste DeFi-tokens volgens marktkapitalisatie bevat](https://www.coingecko.com/en/defi). U hoeft nooit enige gegevens te beheren en u kunt zich uit het fonds terugtrekken wanneer u dat maar wilt. + + + Bekijk investering-dapps + + + + +### Financier uw ideeën {#crowdfunding} + +Ethereum is een ideaal platform voor crowdfunding: + +- Potentiële financierders kunnen overal vandaan komen - Ethereum en de bijbehorende tokens staan open voor iedereen, waar ook ter wereld. +- Het is transparant zodat fondsenwervers kunnen aantonen hoeveel geld er is bijeengebracht. U kunt zelfs achterhalen hoe het geld later wordt uitgegeven. +- Fundraisers kunnen automatische restituties instellen als er bijvoorbeeld een specifieke deadline en minimumbedrag is waar niet aan voldaan wordt. + + + Zie crowdfunding dapps + + +#### Kwadratische financiering {#quadratic-funding} + +Ethereum is open-source software en veel van het werk tot nu toe is gefinancierd door de gemeenschap. Dit heeft geleid tot de groei van een interessant nieuw fondsenwervingsmodel: kwadratische financiering. Dit heeft het potentieel om de toekomstige financiering van alle soorten collectieve goederen te verbeteren. + +Kwadratische financiering zorgt ervoor dat de projecten die het meeste worden gefinancierd, de projecten zijn met de meest unieke vraag. Met andere woorden, projecten die het leven van de meeste mensen zullen verbeteren. Zo werkt het: + +1. Er wordt een overeenkomende pool van geld gedoneerd. +2. Er begint een ronde van publieke financiering. +3. Mensen kunnen door geld te doneren een signaal afgeven dat ze een project willen. +4. Zodra de ronde voorbij is, wordt de overeenkomende pool onder alle projecten verdeeld. De projecten met de meest unieke vraag krijgen het hoogste bedrag uit de overeenkomende pool. + +Dit betekent dat Project A met zijn 100 donaties van 1 dollar uiteindelijk meer geld zou kunnen krijgen dan Project B met één donatie van 10, 00 dollar (afhankelijk van de grootte van de overeenkomende pool). + +[Meer over kwadratische financiering](https://wtfisqf.com) + + + +### Verzekering {#insurance} + +Gedecentraliseerde verzekeringen zijn bedoeld om verzekering goedkoper en sneller en transparanter te maken. Met meer automatisering is de dekking betaalbaarder en zijn de uitbetalingen veel sneller. De gegevens die gebruikt worden om uw claim te bepalen zijn volledig transparant. + +Ethereum-producten, zoals elke software, kunnen lijden onder bugs en exploits. Op dit moment zijn veel verzekeringsproducten op het netwerk dus gericht op de bescherming van hun gebruikers tegen geldverliezen. Er zijn echter projecten die dekking beginnen op te bouwen voor alles wat het leven ons aan moeilijkheden kan geven. Een goed voorbeeld hiervan is de dekking Etherisc voor gewassen die erop gericht is [kleine boeren in Kenia te beschermen tegen droogte en overstromingen](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Gedecentraliseerde verzekeringen kunnen boeren die vaak uit de traditionele verzekering worden geprijsd, goedkopere dekking aanbieden. + + + Zie verzekering-dapps + + + + +### Aggregators en portfoliobeheerders {#aggregators} + +Met alle drukte die u heeft, heeft u een manier nodig om al uw investeringen, leningen en transacties bij te houden. Er zijn een heleboel producten waarmee u al uw DeFi-activiteiten vanaf één plaats kunt coördineren. Dit is het mooie van de open architectuur van DeFi. Teams kunnen interfaces bouwen waar u uw saldo voor alle producten niet alleen kunt zien, u kunt hun functies ook nog eens gebruiken. U vindt dit misschien nuttig terwijl u meer kennis over Defi opbouwt. + + + Bekijk portfolio-dapps + + + + +## Hoe werkt DeFi? {#how-defi-works} + +DeFi gebruikt cryptocurrencies en slimme contracten om diensten te bieden waarbij geen tussenpersonen nodig zijn. In de financiële wereld van vandaag de dag staan financiële instellingen garant voor transacties. Dit geeft deze instellingen een enorme macht, omdat uw geld via hen gaat. Plus miljarden mensen over de hele wereld hebben geen toegang tot een bankrekening. + +In Defi vervangt een slim contract de financiële instelling in de transactie. Een slim contract is een type Ethereum-account dat fondsen kan bewaren en deze op basis van bepaalde voorwaarden kan versturen/terugbetalen. Niemand kan dat slimme contract veranderen - het zal altijd worden uitgevoerd zoals geprogrammeerd. + +Een contract dat ontworpen is om elke vrijdag een toelage of zakgeld uit te delen kan worden geprogrammeerd om geld over te maken van account A naar account B. En dat zal alleen gebeuren zolang de vereiste bedragen op account A beschikbaar zijn. Niemand kan het contract wijzigen en account C als ontvanger toevoegen om geld te stelen. + +Contracten zijn ook openbaar zodat iedereen ze kan inzien en controleren. Dit betekent dat slechte contracten vaak vrij snel onder gemeenschapstoezicht zullen komen te staan. + +Dit betekent dat er momenteel een noodzaak bestaat om de meer technische leden van de Ethereum-gemeenschap die code kunnen lezen, te vertrouwen. De open-source gebaseerde gemeenschap helpt ontwikkelaars in toom te houden, maar deze noodzaak zal afnemen in de loop van de tijd, aangezien slimme contracten gemakkelijker te lezen worden en er andere manieren worden ontwikkeld om de betrouwbaarheid van code te bewijzen. + +## Ethereum en DeFi {#ethereum-and-defi} + +Ethereum is de perfecte basis voor DeFi om een aantal redenen: + +- Niemand bezit Ethereum of de slimme contracten die erop bestaan – dit geeft iedereen de mogelijkheid om Defi te gebruiken. Dit betekent ook dat niemand de regels voor u kan wijzigen. +- DeFi-producten spreken allemaal dezelfde taal achter de schermen: Ethereum. Dit betekent dat veel van de producten naadloos kunnen samenwerken. U kunt tokens uitlenen op één platform en het rentedragende token in een andere markt uitwisselen op een heel andere applicatie. Dit lijkt op het in contanten opnemen van loyaliteitspunten bij uw bank. +- Tokens en cryptocurrency zijn ingebouwd in Ethereum, een gedeeld grootboek – het bijhouden van transacties is wat Ethereum uiteindelijk doet. +- Ethereum staat volledige financiële vrijheid toe – de meeste producten zullen nooit uw geld in bewaring nemen, zodat u de controle houdt. + +U kunt DeFi zien als verschillende lagen: + +1. De blockchain – Ethereum bevat de transactiegeschiedenis en staat van accounts. +2. De activa – [ETH](/eth/) en de andere tokens (valuta). +3. De protocollen – [slimme contracten](/glossary/#smart-contract) die de functionaliteit leveren, bijvoorbeeld een service die het mogelijk maakt om activa gedecentraliseerd uit te lenen. +4. [De applicaties](/dapps/) – de producten die we gebruiken om de protocollen te beheren en te raadplegen. + +## DeFi opbouwen {#build-defi} + +DeFi is een open-source beweging. De DeFi-protocollen en -applicaties staan allemaal open voor u om te inspecteren, te forken en te vernieuwen. Vanwege deze gelaagde stack (ze delen allemaal dezelfde basis-blockchain en activa), kunnen protocollen worden gemengd en gematched om unieke combo mogelijkheden te ontgrendelen. + + + Meer over het bouwen van dapps + + +## Verder lezen {#futher-reading} + +### DeFi-data {#defi-data} + +- [DeFi Prime](https://defiprime.com/) +- [DeFi Llama](https://defillama.com/) +- [DeFi Rate](https://defirate.com/) + +### DeFi-artikelen {#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_ + +### Video's {#videos} + +- [Finematics - voorlichting over gedecentraliseerde financiën](https://finematics.com/) - _Video's over Defi_ +- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _DeFi basics: Everything you need to know to get started in this occasionally baffling space._ +- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _Wat is DeFi?_ + +### Gemeenschappen {#communities} + +- [DeFi Llama Discord server](https://discord.gg/buPFYXzDDd) +- [DeFi Pulse Discord server](https://discord.gg/Gx4TCTk) diff --git a/public/content/translations/nl/desci/index.md b/public/content/translations/nl/desci/index.md new file mode 100644 index 00000000000..35e786885fc --- /dev/null +++ b/public/content/translations/nl/desci/index.md @@ -0,0 +1,139 @@ +--- +title: Gedecentraliseerde wetenschap (DeSci) +description: Een overzicht van gedecentraliseerde wetenschap op Ethereum +lang: nl +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Een wereldwijd, open alternatief voor het huidige wetenschappelijke systeem. +summaryPoint2: Technologie die wetenschappers in staat stelt om financiering te verwerven, experimenten uit te voeren, gegevens te delen, inzichten te verdelen en meer. +summaryPoint3: Bouwt op de open wetenschap-beweging. +--- + +## Wat is gedecentraliseerde wetenschap (DeSci)? {#what-is-desci} + +Gedecentraliseerde wetenschap (DeSci) is een beweging die als doel heeft om op eerlijke en rechtvaardige manier publieke infrastructuur op te bouwen voor financiering, creatie, beoordeling, erkenning, opslag en verspreiding van wetenschappelijke kennis door gebruik te maken van de Web3-stack. + +DeSci is gericht op het creëren van een ecosysteem waar wetenschappers worden aangemoedigd om openlijk hun onderzoek te delen en erkenning te ontvangen voor hun werk, terwijl iedereen makkelijk toegang kan krijgen tot en bijdragen aan het onderzoek. DeSci is bedoeld om ervoor te zorgen dat wetenschappelijke kennis voor iedereen toegankelijk moet zijn en dat het proces van wetenschappelijk onderzoek transparant moet zijn. DeSci creëert een meer gedecentraliseerd en verspreid wetenschappelijk onderzoeksmodel, waardoor het beter bestand is tegen censuur en controle door centrale autoriteiten. DeSci hoopt een omgeving te creëren waarin nieuwe en onconventionele ideeën tot bloei kunnen komen door de toegang tot financiering, wetenschappelijke hulpmiddelen en communicatiekanalen te decentraliseren. + +Gedecentraliseerde wetenschap voorziet in nieuwe soorten financieringsbronnen (van [DAOs](/dao/), [kwadratische donaties](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) tot crowdfunding en meer), toegankelijkere toegangsgegevens en methoden, en biedt stimulansen voor herproduceerbaarheid. + +### Juan Benet - De DeSci-beweging + + + +## Hoe DeSci de wetenschap verbetert {#desci-improves-science} + +Een onvolledige lijst van belangrijke problemen in de wetenschap en hoe gedecentraliseerde wetenschap kan helpen bij het aanpakken van deze kwesties + +| **Gedecentraliseerde wetenschap** | **Traditionele wetenschap** | +| ----------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | +| De verdeling van fondsen wordt bepaald door het publiek via het gebruik van mechanismen zoals kwadratische donaties of DAO's. | Kleine, gesloten, gecentraliseerde groepen controleren de verdeling van fondsen. | +| Je werkt samen met collega's van over de hele wereld in dynamische teams. | Financieringsorganisaties en instituten beperken je samenwerkingen. | +| Financieringsbesluiten worden online en op transparante manier genomen. Nieuwe financieringsmechanismen worden onderzocht. | Financieringsbesluiten gaan gepaard met een lange wachttijd en beperkte transparantie. Er bestaan maar weinig financieringsmechanismen. | +| Het delen van laboratoriumdiensten wordt gemakkelijker en transparanter gemaakt met behulp van Web3-primitieven. | Het delen van laboratoriumbronnen is vaak traag en ondoorzichtig. | +| Nieuwe publicatiemodellen kunnen ontwikkeld worden die gebruik maken van Web3-primitieven voor vertrouwen, transparantie en universele toegang. | Je publiceert via gevestigde routes die vaak erkend worden als inefficiënt, bevooroordeeld en uitbuitend. | +| Je kunt tokens en reputatie verdienen voor controle van het werk van collega's. | Je collegiale toetsingswerk is onbetaald, in het voordeel van winstmakende uitgevers. | +| Je bezit het intellectuele eigendom (IP) dat je genereert en verspreidt het volgens transparante voorwaarden. | Je thuisinstituut is eigenaar van het IP-adres dat je genereert. Toegang tot het IP is niet transparant. | +| Deling van al het onderzoek, met inbegrip van de gegevens uit mislukte inspanningen, door alle stappen in de keten te zetten. | Publicatiebias betekent dat onderzoekers meer de neiging hebben om experimenten te delen die succesvolle resultaten hebben opgeleverd. | + +## Ethereum en DeSci {#ethereum-and-desci} + +Een gedecentraliseerd wetenschappelijk systeem vereist robuuste beveiliging, minimale monetaire en transactiekosten en een breed ecosysteem voor aanvraagontwikkeling. Ethereum biedt alles aan wat nodig is om een gedecentraliseerde wetenschappelijke stack te bouwen. + +## DeSci-toepassingsscenario's {#use-cases} + +DeSci bouwt de wetenschappelijke toolset voor het onboarden van Web2-academica naar de digitale wereld. Hieronder staat een lijst van toepassingen die Web3 kan bieden aan de wetenschappelijke gemeenschap. + +### Publicatie {#publishing} + +Publicatie van wetenschap is befaamd problematisch omdat het wordt beheerd door uitgeverijen die afhankelijk zijn van onbetaald werk van wetenschappers, beoordelaars en redacteuren om de documenten te genereren, maar daarvoor vervolgens buitensporige publicatiekosten berekenen. Het publiek, dat meestal indirect voor het werk en de publicatiekosten heeft betaald door middel van belastingen, heeft vaak geen toegang tot datzelfde werk zonder de uitgever opnieuw te betalen. De totale kosten voor het publiceren van individuele wetenschappelijke documenten zijn vaak vijfcijferig ($ USD), wat het hele concept van wetenschappelijke kennis als [publiek goed](https://www.econlib.org/library/Enc/PublicGoods.html) ondermijnt, terwijl er door een kleine groep uitgevers enorme winsten gemaakt worden. + +Gratis en vrij toegankelijke platformen bestaan in de vorm van proefdrukservers, [zoals ArXiv](https://arxiv.org/). Deze platformen hebben echter geen kwaliteitscontrole, [anti-sybil mechanismen](https://csrc.nist.gov/glossary/term/sybil_attack), en volgen in het algemeen geen maatstaven op artikelniveau, wat betekent dat ze meestal alleen worden gebruikt om werk te publiceren voordat ze worden ingediend bij een traditionele uitgever. SciHub maakt gepubliceerde documenten ook gratis toegankelijk, maar niet legaal, en alleen nadat de uitgevers hun betaling al hebben gekregen en het werk hebben beschermd via strenge auteursrechtenwetgeving. Hierdoor resteert een belangrijke kloof voor toegankelijke wetenschappelijke documenten en gegevens met een geïntegreerd legitimatiemechanisme en stimulansenmodel. De hulpmiddelen voor het bouwen van een dergelijk systeem bestaan in Web3. + +### Reproduceerbaarheid en herhaalbaarheid {#reproducibility-and-replicability} + +Reproduceerbaarheid en herhaalbaarheid vormen de basis voor kwalitatieve wetenschappelijke ontdekkingen. + +- Reproduceerbare resultaten kunnen meerdere keren achter elkaar herhaald worden door hetzelfde team met gebruik van dezelfde methodiek. +- Herhaalbare resultaten kunnen behaald worden door verschillende groepen met gebruik van dezelfde experimentele opstelling. + +Nieuwe op Web3 gebaseerde tools kunnen ervoor zorgen dat reproduceerbaarheid en herhaalbaarheid de basis vormen van ontdekkingen. We kunnen hoogwaardige wetenschap verweven in de technologische structuur van de academische wereld. Web3 biedt de mogelijkheid om attesten af te geven voor elke analysecomponent: de onverwerkte gegevens, de berekeningskracht en het toepassingsresultaat. Het mooie van consensussystemen is, dat wanneer er een vertrouwd netwerk gemaakt wordt voor het onderhouden van deze componenten, elke deelnemer van dit netwerk verantwoordelijk gehouden kan worden voor het reproduceren van de berekening en het valideren van elk resultaat. + +### Financiering {#funding} + +Het huidige standaard model voor het financieren van wetenschap is dat personen of groepen van wetenschappers schriftelijke aanvragen indienen bij een financieringsinstantie. Een kleine groep van vertrouwde personen rangschikken de aanvragen en interviewen de kandidaten voordat er financiering toegewezen word aan een klein deel van de aanvragers. Afgezien nog van de creatie van knelpunten die leiden tot wel jaren van wachttijd tussen het moment van aanvraag en ontvangst van een subsidie, staat dit model bekend om de hoge kwetsbaarheid in termen van bevooroordeling, zelfinteresse en de politieke inslag van het evaluatiepanel. + +Onderzoek heeft uitgewezen dat evaluatiepanels voor subsidies hun taak van selectie van kwaliteitsvoorstellen slecht uitvoeren, omdat diezelfde voorstellen, voorgelegd aan verschillende panels, erg uiteenlopende uitkomsten hebben. Aangezien financiering steeds minder vaak voorkomt, wordt dit geconcentreerd in een kleinere groep van meer ervaren onderzoekers met in intellectueel opzicht conservatievere projecten. Het effect hiervan is het ontstaan van een extreem competitief financieringslandschap, met als gevolg het verankeren van perverse stimulansen en het verstikken van innovatie. + +Web3 heeft het potentieel dit gebroken financieringsmodel te doorbreken via experimentatie met verschillende stimulansenmodellen, grotendeels ontwikkeld door DAO's en Web3. [Retroactieve financiering van publieke goederen](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), [kwadratische financiering](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), [DAO bestuur](https://www.antler.co/blog/daos-and-web3-governance) en [getokeniseerde stimulansstructuren](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) zijn enkele van de Web3-tools die de wetenschappelijke financiering zouden kunnen revolutioniseren. + +### IP-eigendom en -ontwikkeling {#ip-ownership} + +Intellectueel eigendom (IP) is een groot probleem in traditionele wetenschap: van vastzitten in universiteiten of ongebruikt blijven in biotechs, tot het feit dat het heel moeilijk is om het de juiste waarde te geven. Eigendom van digitale activa (zoals wetenschappelijke gegevens of artikelen) is echter iets wat Web3 bijzonder goed doet met het gebruik van [niet-fungibele tokens (NFT)](/nft/). + +Net zoals NFT's de inkomsten van toekomstige transacties terug kunnen doorgeven aan de originele maker, kun je een transparante waardetoekenningsketen vaststellen voor het belonen van onderzoekers, bestuursorganen (zoals DAOs) of zelfs de personen wiens data verzameld worden. + +[IP-NFT's](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) kunnen ook dienst doen als de sleutel voor een gedecentraliseerde databank van de onderzoeksexperimenten die worden ondernomen, en aansluiten bij NFT en [DeFi](/defi/) financialisering (van fractionalisatie tot kredietpools en waardebepaling). Het maakt het ook mogelijk voor on-chain entiteiten zoals DAO's, bijvoorbeeld [VitaDAO](https://www.vitadao.com/), om onderzoek direct on-chain uit te voeren. De komst van niet-overdraagbare ["soulbound" tokens](https://vitalik.ca/general/2022/01/26/soulbound.html) speelt mogelijk ook een belangrijke rol in DeSci door personen de kans te geven hun ervaringen en de aan hun Ethereum-adres gekoppelde toegangsgegevens te bewijzen. + +### Gegevensopslag, toegang en architectuur {#data-storage} + +Wetenschappelijke gegevens kunnen veel toegankelijker worden gemaakt met het gebruik van Web3-patronen, en gedistribueerde gegevensopslag zorgt ervoor dat onderzoek catastrofale gebeurtenissen kan overleven. + +Het uitgangspunt moet een systeem zijn dat toegankelijk is voor eender welke gedecentraliseerde identiteit die de correcte verifieerbare toegangsgegevens heeft. Hiermee kunnen gevoelige gegevens op veilige manier gerepliceerd worden door betrouwbare partijen, wat redundantie en censuurbestendigheid, reproductie van resultaten, en zelfs de capaciteit voor meerdere partijen om samen te werken en nieuwe data toe te voegen aan de dataset mogelijk maakt. Vertrouwelijke berekeningsmethoden zoals [compute-to-data](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol) bieden alternatieve toegangsmechismen voor het repliceren van onbewerkte data, en creëren zo Trusted Research Environments voor de meest gevoelige data. Trusted Research Environments zijn [geciteerd door de NHS](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) als een toekomstgerichte oplossing voor gegevensprivacy en samenwerking door de creatie van een ecosysteem waarbij onderzoekers veilig met data kunnen werken op locatie met behulp van gestandaardiseerde omgevingen voor het delen van code en praktijken. + +Flexibele Web3-dataoplossingen ondersteunen de hierboven vermelde scenario's en vormen de basis voor daadwerkelijk Open Wetenschap, waarbij wetenschappers publieke goederen kunnen creëren zonder toegangsrechten of -kosten. Openbare Web3-dataoplossingen zoals IPFS, Arweave en Filecoin zijn geoptimaliseerd voor decentralisatie. dClimate biedt bijvoorbeeld universele toegang tot klimaat- en weergegevens, inclusief van weerstations en voorspellende klimaatmodellen. + +## Doe mee {#get-involved} + +Verken projecten en word lid van de DeSci-gemeenschap. + +- [DeSci.Global: kalender met wereldwijde evenementen en ontmoetingen](https://desci.global) +- [Blockchain voor Science Telegram](https://t.me/BlockchainForScience) +- [Molecule: financier en krijg financiering voor je onderzoeksprojecten](https://discover.molecule.to/) +- [VitaDAO: krijg financiering via gesponsorde onderzoeksovereenkomsten voor onderzoek naar lange levensduur](https://www.vitadao.com/) +- [ResearchHub: publiceer een wetenschappelijk resultaat en neem deel aan een gesprek met collega's](https://www.researchhub.com/) +- [LabDAO: vouw een eiwit in-silico](https://alphafodl.vercel.app/) +- [dClimate API: vraag klimaatgegevens op verzameld door een gedecentraliseerde gemeenschap](https://api.dclimate.net/) +- [DeSci Foundation: bouwer van tools voor het publiceren van DeSci](https://descifoundation.org/) +- [DeSci.World: one-stop shop voor gebruikers om te kijken naar en deel te nemen aan gedecentraliseerde wetenschap](https://desci.world) +- [Fleming Protocol: open-source data-economie die collaboratieve biomedische ontdekking stimuleert](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [OceanDAO: door DAO beheerde financiering voor datagerelateerde wetenschap](https://oceanprotocol.com/dao) +- [Opscientia: open gedecentraliseerde wetenschappelijke workflows](https://opsci.io/research/) +- [LabDAO: vouw een eiwit in-silico](https://alphafodl.vercel.app/) +- [Bio.xyz: krijg financiering voor jouw biotech-DAO of desci-project](https://www.molecule.to/) +- [ResearchHub: publiceer een wetenschappelijk resultaat en neem deel aan een gesprek met collega's](https://www.researchhub.com/) +- [VitaDAO: krijg financiering via gesponsorde onderzoeksovereenkomsten voor onderzoek naar lange levensduur](https://www.vitadao.com/) +- [Fleming Protocol: open-source data-economie die collaboratieve biomedische ontdekking stimuleert](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [Active Inference Lab](https://www.activeinference.org/) +- [CureDAO: precisiegezondheidsplatform in handen van de gemeenschap](https://docs.curedao.org/) +- [IdeaMarkets: maakt gedecentraliseerde wetenschappelijke geloofwaardigheid mogelijk](https://ideamarket.io/) +- [DeSci Labs](https://www.desci.com/) + +We verwelkomen suggesties voor nieuwe projecten om op de lijst te zetten - bekijk ons [lijstopnamebeleid](/contributing/adding-desci-projects/) om te beginnen! + +## Lees verder {#further-reading} + +- [DeSci Wiki van Jocelynn Pearl en Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) +- ['A guide to decentralized biotech' van Jocelynn Pearl voor a16z Future](https://future.a16z.com/a-guide-to-decentralized-biotech/) +- [Het belang van DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) +- [Handleiding voor DeSci](https://future.com/what-is-decentralized-science-aka-desci/) +- [Gedecentraliseerde wetenschapsbronnen](https://www.vincentweisser.com/decentralized-science) +- [Molecule’s Biopharma IP-NFTs - A Technical Description](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) +- ['Building Trustless Systems of Science' van Jon Starr](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) +- [The Emergence of Biotech DAOs](https://molecule.to/blog/the-emergence-of-biotech-daos) +- [Paul Kohlhaas - DeSci: The Future of Decentralized Science (podcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) +- [An Active Inference Ontology for Decentralized Science: from Situated Sensemaking to the Epistemic Commons](https://zenodo.org/record/6320575) +- ['DeSci: The Future of Research' van Samuel Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) +- ['Science Funding (Epilogue: DeSci and new crypto primitives)' van Nadia](https://nadia.xyz/science-funding) +- [Decentralisation is Disrupting Drug Development](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) + +### Video's {#videos} + +- [Wat is gedecentraliseerde wetenschap?](https://www.youtube.com/watch?v=-DeMklVWNdA) +- [Gesprek tussen Vitalik Buterin en wetenschapper Aubrey de Gray over het snijvlak van langlevenonderzoek en crypto](https://www.youtube.com/watch?v=x9TSJK1widA) +- [Wetenschappelijke publicaties zijn stukgelopen. Kan Web3 dit herstellen?](https://www.youtube.com/watch?v=WkvzYgCvWj8) +- [Juan Benet - DeSci, Independent Labs, & Large Scale Data Science](https://www.youtube.com/watch?v=zkXM9H90g_E) +- [Sebastian Brunemeier - How DeSci Can Transform Biomedical Research & Venture Capital](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/nl/eips/index.md b/public/content/translations/nl/eips/index.md similarity index 100% rename from src/content/translations/nl/eips/index.md rename to public/content/translations/nl/eips/index.md diff --git a/src/content/translations/nl/energy-consumption/index.md b/public/content/translations/nl/energy-consumption/index.md similarity index 100% rename from src/content/translations/nl/energy-consumption/index.md rename to public/content/translations/nl/energy-consumption/index.md diff --git a/src/content/translations/nl/governance/index.md b/public/content/translations/nl/governance/index.md similarity index 100% rename from src/content/translations/nl/governance/index.md rename to public/content/translations/nl/governance/index.md diff --git a/src/content/translations/nl/learn/index.md b/public/content/translations/nl/learn/index.md similarity index 100% rename from src/content/translations/nl/learn/index.md rename to public/content/translations/nl/learn/index.md diff --git a/public/content/translations/nl/nft/index.md b/public/content/translations/nl/nft/index.md new file mode 100644 index 00000000000..e6ba8dcad70 --- /dev/null +++ b/public/content/translations/nl/nft/index.md @@ -0,0 +1,94 @@ +--- +title: Niet-vervangbare tokens (NFT's) +description: Een overzicht van NFT's op Ethereum +lang: nl +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: Een Eth-logo dat via een hologram wordt weergegeven. +summaryPoint1: Een manier om iets unieks te vertegenwoordigen als een op Ethereum gebaseerd activum. +summaryPoint2: NFT's geven meer macht aan contentmakers dan ooit tevoren. +summaryPoint3: Mogelijk gemaakt door slimme contracten op de Ethereum-blockchain. +--- + +## What are NFTs? {#what-are-nfts} + +NFT's zijn tokens die elk uniek zijn. Elke NFT heeft verschillende eigenschappen (niet-fungibel) en is bewijsbaar schaars. Dit is anders dan tokens zoals bij ERC-20's, waarbij elk token in een set identiek is en dezelfde eigenschappen heeft ('fungibel'). Het maakt je niet uit welk specifiek dollarbiljet je in je portemonnee hebt, want ze zijn allemaal identiek en evenveel waard. Het maakt je echter _wel_ uit welke specifieke NFT je bezit, omdat ze allemaal individuele eigenschappen hebben die ze onderscheiden van andere ('niet-fungibel'). + +De uniciteit van elke NFT maakt tokenisering van zaken zoals kunst, verzamelobjecten, of zelfs vastgoed mogelijk, waarbij één unieke NFT een specifiek uniek item in de echte wereld of een specifiek uniek digitaal item vertegenwoordigt. Het eigendom van een asset wordt beveiligd door de Ethereum-blockchain – niemand kan het eigendomsverleden ervan aanpassen of een nieuw NFT in het leven roepen via kopiëren/plakken. + + + +## Het internet van activa {#internet-of-assets} + +NFT's en Ethereum lossen een aantal van de problemen op die op dit moment op het internet voorkomen. Naarmate alles digitaler wordt, is er een noodzaak om de eigenschappen van fysieke voorwerpen zoals schaarste, uniekheid en bewijs van eigendom te herhalen. op een manier die niet wordt gecontroleerd door een centrale organisatie. Bijvoorbeeld, met NFT's kun je een mp3-muzieknummer bezitten die niet eigen is aan de specifieke muziek-app van een bepaald bedrijf, of je kunt in het bezit zijn van een social media handle die je kunt verkopen of inwisselen, maar die niet willekeurig van je kan worden afgenomen door de provider van het platform. + +Dit is hoe het internet van NFT's eruitziet in vergelijking met het internet dat de meesten van ons tegenwoordig gebruiken... + +### Een vergelijking {#nft-comparison} + +| Het NFT-internet | Het internet vandaag | +| ----------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Je bezit je eigen assets! Enkel jij kunt ze verkopen of inwisselen. | Je huurt een asset van een bepaalde organisatie. | +| NFT's zijn digitaal uniek, geen twee NFT's zijn hetzelfde. | Een kopie van een entiteit kan doorgaans niet onderscheiden worden van het origineel. | +| Eigendom van een NFT is geregistreerd op de blockchain en kan door iedereen geverifieerd worden. | Eigendomsgegevens van digitale items worden opgeslagen op servers die worden beheerd door instellingen – die meestal gesloten zijn voor het publiek en die je dus maar moet vertrouwen. | +| NFT's zijn slimme contracten op Ethereum. Dit betekent dat ze eenvoudig gebruikt kunnen worden in andere slimme contracten en apps op Ethereum! | Bedrijven met digitale items hebben doorgaans hun eigen "walled garden"-infrastructuur nodig. | +| Content-makers kunnen hun werk overal verkopen en hebben toegang tot een wereldwijde markt. | Makers zijn afhankelijk van de infrastructuur en distributie van de platforms die ze gebruiken. Hiervoor zijn vaak voorwaarden en geografische beperkingen van kracht. | +| Makers van NFT's kunnen eigendomsrechten over hun eigen werk behouden, en royalties rechtstreeks in het NFT-contract programmeren. | Platforms, zoals muziekstreamingservices, behouden het grootste deel van de winst uit de verkoop. | + +## Hoe werken NFT's? {#how-nfts-work} + +Zoals alle tokens op Ethereum, worden NFT's verstrekt via een slim contract. Het slimme contract voldoet aan één of meerdere NFT-standaarden (doorgaans ERC-721 of ERC-1155) die bepalen welke functionaliteiten het contract heeft. Het contract kan NFT's creëren ('minten') en ze toewijzen aan een specifieke eigenaar. Eigendom is vastgelegd in het contract via het koppelen van een NFT aan een specifiek adres. De NFT heeft een ID en is doorgaans geassocieerd met metadata die dit specifieke token uniek maken. + +Wanneer iemand een NFT creëert of 'mint', voert hij/zij in werkelijkheid een functie uit in het slimme contract dat een specifiek NFT toewijst aan zijn/haar adres. Deze informatie is opgeslagen in het geheugen van het contract, dat deel uitmaakt van de blockchain. De maker van het contract kan extra logica in het contract schrijven, zoals bijvoorbeeld het limiteren van het totale aanbod of het definiëren van een royalty dat wordt betaald aan de maker elke keer dat het token wordt overgedragen. + +## Waar worden NFT's voor gebruikt? {#nft-use-cases} + +NFT's worden voor veel dingen gebruikt, waaronder: + +- aantonen dat je een evenement hebt bijgewoond +- certificeren dat je een cursus hebt afgerond +- bezitten van items voor games +- digitale kunst +- het tokeniseren van echte activa +- bewijzen van je online identiteit +- blokkeren van toegang tot inhoud +- ticketverkoop +- gedecentraliseerde (internet)domeinnamen +- onderpand in DeFi + +Misschien ben je een artiest die zijn werk wil delen via NFT's, zonder de controle te verliezen en inkomsten op te offeren aan tussenpersonen. Je kunt een nieuw contract aanmaken en het aantal NFT's, hun eigenschappen en een koppeling naar een uniek kunstwerk specifiëren. Als artiest kun je de royalty's waar je recht op hebt programmeren in het slimme contract (bijv. 5% van de verkoopprijs naar het contract van de eigenaar overmaken elke keer dat een NFT wordt overgedragen). Je kunt ook altijd bewijzen dat je de NFT's hebt gemaakt, want je bent in het bezit van de portemonnee via welke het contract is geïmplementeerd. Je kopers kunnen eenvoudig bewijzen dat ze een authentieke NFT uit jouw collectie bezitten, omdat het adres van hun portemonnee geassocieerd is met een token in jouw slimme contract. Ze kunnen het gebruiken in het hele Ethereum-ecosysteem en vertrouwen hebben in de authenticiteit ervan. + +Of neem bijvoorbeeld een kaartje voor een sportevenement. Net zoals een organisator van een evenement kan kiezen hoeveel tickets hij wil verkopen, kan de maker van een NFT beslissen hoeveel replica's er bestaan. Soms gaat het om exacte replica's, zoals 5000 algemene toelatingskaartjes. Soms worden er replica's gemaakt die zeer vergelijkbaar zijn, maar elk lichtjes verschillend van elkaar, zoals een ticket met een toegewezen zitplaats. Deze kunnen peer-to-peer worden gekocht en verkocht zonder ticketbeheerders te betalen, en de koper kan altijd de authenticiteit van het ticket garanderen door het controleren van het contractadres. + +Op ethereum.org worden NFT's gebruikt om te laten zien dat mensen hebben bijgedragen aan ons Github-archief of hebben deelgenomen aan gesprekken, en we hebben zelfs onze eigen NFT-domeinnaam. Als je een bijdrage levert aan ethereum.org, kun je een POAP-NFT claimen. Sommige crypto-bijeenkomsten hebben POAP's gebruikt als tickets. [Meer over bijdragen](/contributing/#poap). + +![ethereum.org POAP](./poap.png) + +Deze website heeft een alternatieve domeinnaam, mogelijk gemaakt door NFT's, **ethereum.eth**. Ons `.org`-adres wordt centraal beheerd door een aanbieder van domeinnaamsystemen (DNS), terwijl ethereum`.eth` is geregistreerd op Ethereum via de Ethereum Name Service (ENS). En het is eigendom van en wordt beheerd door ons. [Bekijk ons ENS-record](https://app.ens.domains/name/ethereum.eth) + +[Meer over ENS](https://app.ens.domains) + + + +### NFT-beveiliging {#nft-security} + +De veiligheid van Ethereum komt van proof-of-stake. Het systeem is ontworpen om kwaadaardige acties economisch te ontmoedigen, waardoor Ethereum manipulatiebestendig is. Dit is wat NFT's mogelijk maakt. Zodra het blok met jouw NFT-transactie wordt afgerond, zou het een aanvaller miljoenen ETH kosten om het te veranderen. Iedereen die Ethereum-software gebruikt, zou onmiddellijk in staat zijn om oneerlijke manipulatie met een NFT te detecteren, en de slechte speler wordt dan economisch gestraft en verwijderd. + +Beveiligingskwesties met betrekking tot NFT's hebben meestal te maken met phishing-scams, kwetsbaarheden van slimme contracten of gebruikersfouten (zoals het per ongeluk blootgeven van privésleutels), waardoor goede portemonneebeveiliging van cruciaal belang is voor NFT-eigenaren. + + + Meer over beveiliging + + +## Verder lezen {#further-reading} + +- [A beginner's guide to NFTs](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, januari 2020_ +- [EtherscanNFT tracker](https://etherscan.io/nft-top-contracts) +- [ERC-721-tokenstandaard](/developers/docs/standards/tokens/erc-721/) +- [ERC-1155-tokenstandaard](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/public/content/translations/nl/refi/index.md b/public/content/translations/nl/refi/index.md new file mode 100644 index 00000000000..f3525f70e79 --- /dev/null +++ b/public/content/translations/nl/refi/index.md @@ -0,0 +1,79 @@ +--- +title: Regeneratieve Financiën (ReFi) +description: Een overzicht van ReFi en zijn huidige toepassingen. +lang: nl +template: use-cases +emoji: ":recycle:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Een alternatief economisch systeem gebouwd op regeneratieve principes +summaryPoint2: Een poging om Ethereum te benutten voor het oplossen van wereldwijde coördinatiecrisissen zoals de klimaatverandering +summaryPoint3: Een middel om activa met ecologisch voordeel, zoals geverifieerde koolstofkredieten, drastisch op te schalen +--- + +## Wat is ReFi? {#what-is-refi} + +**Regeneratieve financiën (ReFi)** is een set hulpmiddelen en ideeën gebouwd bovenop blockchains, met als doel het creëren van economieën die regeneratief zijn in plaats van extractief of exploitatief. Op termijn putten extractieve systemen de beschikbare bronnen uit en storten ze in elkaar; zonder regeneratieve mechanismen ontbreekt het hen aan veerkracht. ReFi steunt op het principe dat de creatie van geldwaarde losgekoppeld moet worden van de onduurzame extractie van grondstoffen van onze planeet en samenleving. + +In plaats daarvan tracht ReFi milieu-, samenlevings- en sociale problemen op te lossen door het creëren van regeneratieve cycli. Deze systemen creëren waarde voor deelnemers en bieden tegelijkertijd voordelen voor ecosystemen en gemeenschappen. + +Een van de grondbeginselen van ReFi is het concept van de regeneratieve economie gepionierd door John Fullerton van het [Capital Institute](https://capitalinstitute.org). Hij stelde acht onderling verbonden principes voor die aan de basis liggen van systemische gezondheid: + +![Acht onderling verbonden principes](refi-regenerative-economy-diagram.png) + +ReFi-projecten realiseren deze principes door gebruik te maken van [slimme contracten](/developers/docs/smart-contracts/) en [gedecentraliseerde financiën (DeFi)](/defi/)-applicaties om regeneratieve gedragingen te stimuleren, bijv. herstellen van gedegradeerde ecosystemen, en om grootschalige samenwerking te faciliteren voor wereldwijde problemen zoals klimaatverandering en biodiversiteitsverlies. + +ReFi overlapt ook met de [gedecentraliseerde wetenschap (DeSci)](/desci/)-beweging, die Ethereum gebruikt als platform om wetenschappelijke kennis te financieren, creëren, evalueren, erkennen, bewaren en verspreiden. DeSci-tools kunnen nuttig worden voor de ontwikkeling van verifieerbare standaarden en werkwijzen voor het implementeren en monitoren van regeneratieve activiteiten, zoals bomen planten, verwijderen van plastic uit de oceaan of herstellen van een gedegradeerd ecosysteem. + +## Tokenisatie van koolstofkredieten {#tokenization-of-carbon-credits} + +De **[vrijwillige koolstofmarkt (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** is een mechanisme voor het financieren van projecten die een verifieerbare, positieve impact hebben op koolstofuitstoot, hetzij door huidige emissies te reduceren, of door broeikasgassen die al werden uitgestoten uit de atmosfeer te verwijderen. Deze projecten krijgen een activum genaamd "koolstofkrediet" nadat ze geverifieerd zijn, dat ze kunnen verkopen aan personen en organisaties die klimaatactie willen steunen. + +In aanvulling op de VCM zijn er ook verschillende door de overheid opgelegde koolstofmarkten ('nalevingsmarkten') die als doel hebben om een prijs voor koolstof vast te leggen via wetten of reglementen in een bepaalde jurisdictie (bijv. een land of regio), om zo het aanbod van te verstrekken vergunningen te controleren. Nalevingsmarkten stimuleren vervuilers binnen hun jurisdictie om de uitstoot te verminderen, maar zijn niet in staat om broeikasgassen die al werden uitgestoten te verwijderen. + +Ondanks hun ontwikkeling in afgelopen decennia blijft de VCM onderhevig aan verschillende problemen: + +1. Zeer gefragmenteerde liquiditeit +2. Ondoorzichtige transactiemechanismen +3. Hoge tarieven +4. Zeer trage handelssnelheid +5. Gebrek aan schaalbaarheid + +Een transitie van de VCM naar de nieuwe op blockchain gebaseerde **digitale koolstofmarkt (DCM)** biedt een mogelijkheid om de bestaande technologie voor het controleren, verhandelen en opgebruiken van koolstofkredieten te verbeteren. Blockchains maken openbaar verifieerbare data, toegang voor een groot aantal gebruikers en meer liquiditeit mogelijk. + +ReFi-projecten gebruiken blockchaintechnologie om veel van de problemen in de traditionele markt te verlichten: + +- **Liquiditeit is geconcentreerd in een klein aantal liquiditeitspools** die door iedereen vrij verhandeld kunnen worden. Zowel grote organisaties als individuele gebruikers kunnen deze pools gebruiken zonder zelf te zoeken naar verkopers/kopers, deelnamekosten of registratie vooraf. +- **Alle transacties worden geregistreerd op openbare blockchains**. Het traject dat elk koolstofkrediet aflegt vanwege handelsactiviteiten blijft voor altijd traceerbaar zodra het beschikbaar wordt gemaakt in de DCM. +- **Transactiesnelheid is bijna ogenblikkelijk**. Het verzamelen van grote hoeveelheden koolstofkredieten via gevestigde markten kan dagen of zelfs weken duren, maar in de DCM kan dit in enkele seconden. +- **Handelsactiviteit vindt plaats zonder tussenpersonen**, die hoge kosten aanrekenen. Digitale koolstofkredieten vertegenwoordigen een [kostenreductie van 62% in vergelijking met traditionele kredieten](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne), volgens de gegevens van een analysebureau. +- **De DCM is schaalbaar** en kan tegemoetkomen aan de vraag van zowel personen als multinationals. + +### Belangrijkste onderdelen van de DCM {#key-components-dcm} + +Vier hoofdcomponenten vormen het huidige landschap van de DCM: + +1. Registers zoals [Verra](https://verra.org/project/vcs-program/registry-system/) en [Gold Standard](https://www.goldstandard.org/) verzekeren dat projecten die koolstofkredieten creëren betrouwbaar zijn. Ze beheren ook de databases waar digitale koolstofkredieten ontstaan en kunnen worden verhandeld of opgebruikt (afgeboekt). + +Er is een nieuwe golf van innovatieve projecten die worden gebouwd op blockchains en die proberen om de bestaande bedrijven in deze sector te ontwrichten. + +2. Koolstofbruggen, ook bekend als tokenisers, bieden technologie aan om koolstofkredieten te vertegenwoordgen of te verhandelen van traditionele registers naar de DCM. Noemenswaardige voorbeelden zijn [Toucan Protocol](https://toucan.earth/), [C3](https://c3.app/) en [Moss.Earth](https://moss.earth/). +3. Geïntegreerde diensten bieden eindgebruikers koolstofvermijdings- en/of -verwijderingskredieten aan zodat ze het milieuvoordeel van een krediet kunnen opeisen en hun steun aan klimaatactie kunnen delen met de wereld. + +Sommige, zoals [Klima Infinity](https://www.klimadao.finance/infinity) en [Senken](https://senken.io/), bieden een breed scala aan projecten aan die ontwikkeld zijn door externe partijen en uitgegeven worden door erkende standaarden zoals Verra; andere zoals [Nori](https://nori.com/) bieden enkel specifieke projecten aan die ontwikkeld zijn volgens hun eigen koolstofkredietstandaard, die ze uitgeven en waarvoor ze hun eigen specifieke marktplaats hebben. + +4. De onderliggende rails en infrastructuur die het opschalen van de impact en de efficiëntie van de hele aanvoerketen van de koolstofmarkt mogelijk maken. [KlimaDAO](http://klimadao.finance/) levert liquiditeit als een publiek goed (door iedereen toe te laten om koolstofkredieten te kopen of te verkopen tegen een transparante prijs), stimuleert een verhoogde capaciteit van koolstofmarkten en afboekingen via beloningen, en levert klantvriendelijke, interoperationele tools om toegang te krijgen tot gegevens over, en voor het verwerven en afboeken van, een breed scala aan getokeniseerde koolstofkredieten. + +## ReFi voorbij koolstofmarkten {#refi-beyond} + +Hoewel er momenteel een grote nadruk ligt op koolstofmarkten in het algemeen, en met name op de transitie van de VCM naar de DCM in dit veld, is de term "ReFi" niet strikt beperkt tot koolstof. Naast koolstofkredieten kunnen andere milieuactiva worden ontwikkeld en getokeniseerd, wat betekent dat andere negatieve externaliteiten ook in de basislagen van toekomstige economische systemen ingeprijst kunnen worden. Bovendien kan het regeneratieve aspect van dit economische model worden toegepast op andere domeinen, zoals het financieren van publieke goederen via kwadratische financieringsplatformen zoals [Gitcoin](https://gitcoin.co/). Organisaties die gebouwd zijn op het principe van open participatie en eerlijke verdeling van hulpbronnen, geven iedereen de macht om geld door te sluizen naar zowel open-source softwareprojecten, als educatieve, milieu-, en gemeenschapsgedreven projecten. + +Door de richting van kapitaal te verschuiven weg van extractieve praktijken naar een regeneratieve stroom, kunnen projecten en bedrijven die sociale, milieu- en gemeenschapsvoordelen leveren - en die er mogelijk niet in slagen om fondsen te verkrijgen via traditionele financiering - een realiteit worden en sneller en op eenvoudigere wijze positieve externaliteiten voor de samenleving verwezelijken. Overgaan op dit model van financiering opent ook de deur naar meer inclusieve economische systemen, waarin mensen uit alle demografische lagen actieve deelnemers kunnen worden en niet enkel passieve waarnemers hoeven te blijven. ReFi biedt een visie van Ethereum als een mechanisme voor het coördineren van actie op existentiële uitdagingen waarmee onze soort en al het leven op aarde mee geconfronteerd worden - als het grondbeginsel van een nieuw economisch paradigme dat een meer inclusieve en duurzame toekomst voor de komende eeuwen mogelijk maakt. + +## Aanvullende informatie over ReFi + +- [Een hoogwaardig overzicht van koolstofvaluta en hun plaats in de economie](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) +- [The Ministry for the Future, een roman die de rol van een koolstofgebaseerde valuta in de strijd tegen klimaatverandering beschrijft](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) +- [Een gedetailleerd rapport opgesteld door de Taskforce on Scaling Voluntary Carbon Markets](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) +- [CoinMarketCap-woordenlijstvermelding over ReFi van Kevin Owocki en Evan Miyazono](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/public/content/translations/nl/roadmap/beacon-chain/index.md b/public/content/translations/nl/roadmap/beacon-chain/index.md new file mode 100644 index 00000000000..cfd87143a50 --- /dev/null +++ b/public/content/translations/nl/roadmap/beacon-chain/index.md @@ -0,0 +1,68 @@ +--- +title: De Beacon Chain +description: Leer meer over de Beacon Chain - de upgrade die proof-of-stake Ethereum introduceerde. +lang: nl +template: upgrade +image: /upgrades/core.png +alt: +summaryPoint1: De Beacon Chain verandert niks aan de Ethereum die we nu gebruiken. +summaryPoint2: Het zal het netwerk coördineren en als consensuslaag fungeren. +summaryPoint3: Het introduceerde Proof-of-Stake in het Ethereum-ecosysteem. +summaryPoint4: U kent dit wellicht als "Fase 0" op technische routekaarten. +--- + + + De Beacon Chain werd op 1 december 2020 om 12:00 uur UTC verzonden. Bekijk de gegevens voor meer informatie. Als u wilt helpen met het valideren van de keten, kunt u uw ETH staken. + + +## Wat doet de Beacon Chain? {#what-does-the-beacon-chain-do} + +De Beacon Chain zal het uitgebreide netwerk leiden of coördineren tussen [shards](/roadmap/danksharding/) en [stakers](/staking/). Maar het zal niet zijn zoals het [Ethereum-hoofdnet](/glossary/#mainnet) dat we nu gebruiken. Het kan geen accounts of slimme contracten aan. + +Het doel van de Beacon Chain zal in de loop van de tijd veranderen, maar het is een fundamenteel onderdeel voor [het veilige, duurzame en haalbare Ethereum waar we naartoe werken.](/roadmap/vision/). + +## Beacon Chain-kenmerken {#beacon-chain-features} + +### Introductie van staken {#introducing-staking} + +De Beacon Chain zal [Proof-of-Stake](/developers/docs/consensus-mechanisms/pos/) introduceren bij Ethereum. Dit is een nieuwe manier waarbij u kunt helpen om Ethereum veilig te houden. Zie het als iets dat voor iedereen toegankelijk is en wat Ethereum beter maakt en waarmee je tegelijk meer ETH verdiend. In de praktijk betekent het dat het uw betrokkenheid vergt door het staken van ETH om zo de validatorsoftware te activeren. Als validator verwerkt u transacties en creëert u nieuwe blokken in de keten. + +Sstaken en een validator worden is makkelijker dan [mining](/developers/docs/mining/) (hoe het huidige netwerk nu beveiligd wordt). Hopelijk zal dit helpen om Ethereum op langere termijn veilig te maken. Hoe meer mensen meewerken aan het netwerk, hoe meer het zal decentraliseren en hoe veiliger het zal worden. + + +Als u geïnteresseerd bent om een validator te worden en de Beacon Chain te beveiligen, hier vindt u meer informatie over staken. + + +Dit is ook een belangrijke verandering voor een andere upgrade: [shardketens](/roadmap/danksharding/). + +### Opzetten van shardketens {#setting-up-for-shard-chains} + +Nadat het hoofdnet is samengevoegd met de Beacon Chain, zal de volgende upgrade shardketens introduceren in het proof-of-stake netwerk. Deze "shards" verhogen de capaciteit van het netwerk en verbeteren de transactiesnelheid door het netwerk uit te breiden naar 64 blockchains. De Beacon Chain is een belangrijke eerste stap voor het introduceren van shardketens, dit komt omdat staken noodzakelijk is voor de beveiliging. + +Uiteindelijk zal de Beacon Chain verantwoordelijk zijn voor het willekeurig selecteren van stakers om de shardketens te valideren. Dit is van essentieel belang om het voor stakers moeilijk te maken om te bedriegen en zich een shard toe te eigenen. Dit betekent eigenlijk dat ze [een kans hebben van minder dan 1 op een triljoen](https://medium.com/@chihchengliang/minimum-committee-size-explained-67047111fa20). + +## Relatie tussen upgrades {#relationship-between-upgrades} + +Alle Ethereum-upgrades zijn ietwat met elkaar verbonden. Laten we nu samenvatten hoe de Beacon Chain de andere upgrades beïnvloedt. + +### Het hoofdnet en de Beacon Chain {#mainnet-and-beacon-chain} + +In het begin zal de Beacon Chain apart bestaan van het Ethereum-hoofdnet dat we dagelijks gebruiken. Maar uiteindelijke zullen ze verbonden worden. Het plan is om het hoofdnet "samen te voegen" met het proof-of-stake systeem dat gecontroleerd en gecoördineerd wordt door de Beacon Chain. + + + De Merge + + +### Shards en de Beacon Chain {#shards-and-beacon-chain} + +Shardketens kunnen alleen op een veilige manier in het Ethereum-netwerk komen als er een proof-of-stake consensusmechanisme geïmplementeerd is. De Beacon Chain zal het staken introduceren en de weg vrijmaken voor de upgrade van de shardketen die zal volgen. + + + Shardketens + + + + +## Heb interactie met de Beacon Chain {#interact-with-beacon-chain} + + diff --git a/public/content/translations/nl/roadmap/merge/index.md b/public/content/translations/nl/roadmap/merge/index.md new file mode 100644 index 00000000000..5ee3d97ff71 --- /dev/null +++ b/public/content/translations/nl/roadmap/merge/index.md @@ -0,0 +1,68 @@ +--- +title: De merge +description: Lees meer over de merge - wanneer het hoofdnet van Ethereum wordt gevoegd bij het gecoördineerde proof-of-stake systeem Beacon Chain. +lang: nl +template: upgrade +image: /upgrades/merge.png +alt: +summaryPoint1: Uiteindelijk zal het huidige Ethereum-hoofdnet "fuseren" met het Beacon Chain proof-of-stake systeem. +summaryPoint2: Dit markeert het einde van proof-of-work voor Ethereum, en de volledige overgang naar proof-of-stake. +summaryPoint3: Het is de bedoeling dat dit voorafgaat aan de uitrol van shardketens. +summaryPoint4: Vroeger noemden we dit "de docking." +--- + + + Deze upgrade bevat de officiële overschakeling naar proof-of-stake consensus. Dit elimineert de noodzaak van energie-intensieve mining en in plaats daarvan beveiligt het het netwerk met gestakete ether. Een waarlijk opwindende stap in het realiseren van de Ethereum-visie - schaalbaarder, veiliger en duurzamer. + + +## Wat is de merge? {#what-is-the-docking} + +Het is belangrijk om te onthouden dat aanvankelijk de [Beacon Chain](/roadmap/beacon-chain/) apart werd verzonden van het [hoofdnet](/glossary/#mainnet) - de keten die we vandaag gebruiken. Het Ethereum-hoofdnet blijft beveiligd door [proof-of-work](/ontwikkelaars/docs/consensus-mechanismen/pow/), zelfs terwijl de Beacon Chain parallel draait met [proof-of-stake](/ontwikkelaars/docs/consensus-mechanisms/pos/). De merge is het moment wanneer beide systemen eindelijk samenkomen. + +Stel je voor dat Ethereum een ruimteschip is dat nog niet helemaal klaar is voor een interstellaire reis. Met de Beacon Chain heeft de gemeenschap een nieuwe motor en een geharde romp gebouwd. Als het zover is, zal het huidige schip aan dit nieuwe systeem koppelen en samensmelten tot één schip, klaar om serieuze lichtjaren te overbruggen en het heelal in te gaan. + +## Samenvoegen met het hoofdnet {#docking-mainnet} + +Als het klaar is, zal het Ethereum-hoofdnet "fuseren" met de Beacon Chain en zijn eigen shard worden die proof-of-stake gebruikt in plaats van [proof-of-work](/ontwikkelaars/docs/consensus-mechanismen/pow/). + +Het hoofdnet zal de mogelijkheid om slimme contracten uit te voeren in het proof-of-stake systeem brengen, plus de volledige geschiedenis en huidige staat van Ethereum, om ervoor te zorgen dat de overgang soepel verloopt voor alle ETH-houders en -gebruikers. + +## Na de merge {#after-the-merge} + +Dit zal het einde betekenen van proof-of-work voor Ethereum en het tijdperk beginnen van een duurzamer, milieuvriendelijker Ethereum. Op dit punt zal Ethereum een stap dichter zijn bij het bereiken van de volledige schaalgrootte, veiligheid en duurzaamheid zoals geschetst in de [Ethereum-visie](/roadmap/vision/). + +Het is belangrijk op te merken dat een implementatiedoel van de merge eenvoud is, om zo de overgang van proof-of-work naar proof-of-stake te versnellen. De ontwikkelaars richten hun inspanningen op deze overgang en minimaliseren extra functies die dit doel kunnen vertragen. + +**Dit betekent dat een paar functies, zoals de mogelijkheid om gestakete ETH terug te trekken, iets langer zullen moeten wachten nadat de merge is voltooid.**De plannen omvatten een "opschoning"-upgrade om deze functies aan te pakken, die naar verwachting zeer snel zal gebeuren nadat de merge is voltooid. + +## Relatie tussen upgrades {#relationship-between-upgrades} + +Alle Ethereum-upgrades zijn ietwat met elkaar verbonden. Laten we daarom samenvatten hoe de merge zich verhoudt tot de andere upgrades. + +### De merge en de Beacon Chain {#docking-and-beacon-chain} + +Zodra de merge plaatsvindt, zullen stakers worden toegewezen om het Ethereum-hoofdnet te valideren. [Mining](/ontwikkelaars/docs/consensus-mechanismen/pow/mining/) zal niet langer nodig zijn, dus miners zullen waarschijnlijk hun inkomsten investeren in het staken in het nieuwe proof-of-stake systeem. + + + De Baken Ketting + + +### De merge en de opschoning na de merge {#merge-and-post-merge-cleanup} + +Onmiddellijk na de merge zullen sommige functies, zoals het terugtrekken van gestakete ETH, nog niet ondersteund worden. Deze zijn gepland voor een latere upgrade die kort na de merge zal volgen. + +Blijf op de hoogte met de [EF-blog voor onderzoek en ontwikkeling](https://blog.ethereum.org/category/research-and-development/). Voor degenen die nieuwsgierig zijn, lees meer over [What Happens After the Merge](https://youtu.be/7ggwLccuN5s?t=101), gepresenteerd door Vitalik op het ETHGlobal-evenement in april 2021. + +### De merge en shardketens {#docking-and-shard-chains} + +Oorspronkelijk was het plan om aan shardketens te werken voor de merge, om de schaalbaarheid aan te pakken. Maar met de opkomst van [laag 2-schalingsoplossingen](/developers/docs/scaling/#layer-2-scaling) is de prioriteit verschoven naar het omwisselen van proof-of-work naar proof-of-stake via de merge. + +Dit zal een voortdurende beoordeling zijn van de gemeenschap over de noodzaak van mogelijk meerdere rondes van shardketens om eindeloze schaalbaarheid mogelijk te maken. + + + Shardketens + + +## Meer informatie {#read-more} + + diff --git a/src/content/translations/nl/security/index.md b/public/content/translations/nl/security/index.md similarity index 100% rename from src/content/translations/nl/security/index.md rename to public/content/translations/nl/security/index.md diff --git a/public/content/translations/nl/smart-contracts/index.md b/public/content/translations/nl/smart-contracts/index.md new file mode 100644 index 00000000000..3ba750b909f --- /dev/null +++ b/public/content/translations/nl/smart-contracts/index.md @@ -0,0 +1,84 @@ +--- +title: Smart contracts +description: Een niet-technische introductie tot smart contracts +lang: nl +--- + +# Inleiding tot smart contracts {#introduction-to-smart-contracts} + +Slimme contracten zijn de fundamentele bouwstenen van de applicatielaag van Ethereum. Het zijn computerprogramma's die zijn opgeslagen op de blockchain en die "als dit dan dat"-logica volgen en gegarandeerd worden uitgevoerd volgens de regels die zijn gedefinieerd in de code, die niet kan worden gewijzigd zodra deze is aangemaakt. + +Nick Szabo heeft de term "smart contract" bedacht. In 1994 schreef hij [een inleiding tot het concept](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html), en in 1996 schreef hij [een onderzoek van wat slimme contracten zouden kunnen doen](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). + +Szabo had een digitale marktplaats voor ogen waar automatische, cryptografisch beveiligde processen transacties en bedrijfsfuncties mogelijk maken zonder vertrouwde tussenpersonen. Slimme contracten op Ethereum brengen deze visie in de praktijk. + +## Vertrouwen in traditionele contracten {#trust-and-contracts} + +Een van de grootste problemen met een traditioneel contract is de noodzaak dat vertrouwde personen zich houden aan de resultaten van het contract. + +Hier is een voorbeeld: + +Alice en Bob houden een fietsrace. Laten we zeggen dat Alice $ 10 wed dat ze de race zal winnen. Bob heeft er alle vertrouwen in dat hij de winnaar zal zijn en gaat akkoord met de weddenschap. Uiteindelijk beëindigt Alice de race eerder dan Bob en is zij de duidelijke winnaar. Maar Bob weigert de weddenschap uit te betalen en beweert dat Alice heeft gesjoemeld. + +Dit dwaze voorbeeld illustreert het probleem van een niet-slimme overeenkomst. Zelfs als aan de voorwaarden van de overeenkomst wordt voldaan (d.w.z. je bent de winnaar van de race), moet je nog steeds een ander persoon vertrouwen om de overeenkomst uit te voeren (d.w.z. de uitbetaling van de weddenschap). + +## Een digitale verkoopautomaat {#vending-machine} + +Een eenvoudige metafoor voor een slim contract is een verkoopautomaat die op ongeveer dezelfde manier werkt als een slim contract: specifieke inputs garanderen een vooraf bepaalde output. + +- Je selecteert een product +- De verkoopautomaat toont de prijs +- Je betaalt de prijs +- De verkoopautomaat controleert of je het juiste bedrag hebt betaald +- De verkoopautomaat geeft je je item + +De verkoopautomaat zal het gewenste product pas afgeven als aan alle vereisten is voldaan. Als je geen product selecteert of niet genoeg geld invoert, zal de automaat het product niet afgeven. + +## Automatische uitvoering {#automation} + +Het belangrijkste voordeel van een slim contract is dat het deterministisch duidelijke code uitvoert wanneer aan bepaalde voorwaarden is voldaan. Het is niet nodig om te wachten tot een mens het resultaat interpreteert. Hierdoor zijn er geen vertrouwde tussenpersonen meer nodig. + +Je kunt bijvoorbeeld een slim contract opstellen dat fondsen in escrow houdt voor een kind, waarna het kind het geld kan opnemen na een bepaalde datum. Als het kind probeert om het geld op te nemen vóór de opgegeven datum, wordt het slimme contract simpelweg niet uitgevoerd. Of je kunt een contract opstellen waarbij je automatisch een digitale versie van het eigendomsbewijs van een auto krijgt wanneer je de dealer betaalt. + +## Voorspelbare resultaten {#predictability} + +Traditionele contracten zijn meerduidig omdat ze afhankelijk zijn van mensen om ze te interpreteren en uit te voeren. Twee rechters kunnen een contract bijvoorbeeld anders interpreteren, wat kan leiden tot inconsistente beslissingen en ongelijke uitkomsten. Slimme contracten nemen deze mogelijkheid weg. Slimme contracten worden in plaats daarvan precies uitgevoerd op basis van de voorwaarden die zijn geschreven in de code van het contract. Deze precisie betekent dat het slimme contract onder dezelfde omstandigheden, altijd hetzelfde resultaat zal opleveren. + +## Openbaar register {#public-record} + +Slimme contracten zijn ook nuttig voor audits en tracking. Omdat de slimme contracten van Ethereum op een openbare blockchain staan, kan iedereen informatie over activaoverdrachten en andere gerelateerde informatie direct bijhouden. Zo kun je bijvoorbeeld controleren of iemand geld naar jouw adres heeft gestuurd. + +## Privacybescherming {#privacy-protection} + +Slimme contracten beschermen ook je privacy. Omdat Ethereum een pseudonymeus netwerk is (een netwerk waar je transacties publiekelijk verbonden zijn aan een uniek cryptografisch adres, en niet aan je identiteit), kun je je privacy beschermen tegen observeerders. + +## Zichtbare voorwaarden {#visible-terms} + +Tot slot kun je, net als bij traditionele contracten, controleren wat er in een slim contract staat voordat je het ondertekent (of er anderszins mee interageert). De transparantie van een slim contract garandeert dat iedereen het kan onderzoeken. + +## Toepassingsscenario's voor slimme contracten {#use-cases} + +Slimme contracten kunnen in wezen alles doen wat computerprogramma's kunnen doen. + +Ze kunnen berekeningen uitvoeren, valuta creëren, gegevens opslaan, NFT's minten, communicatie uitzenden en zelfs afbeeldingen genereren. Hier zijn enkele populaire praktijkvoorbeelden: + +- [Stablecoins](/stablecoins/) +- [Creëren en distribueren van unieke digitale activa](/nft/) +- [Een automatische, open wisselkoers](/get-eth/#dex) +- [Gedecentraliseerde gaming](/dapps/?category=gaming) +- [Een verzekeringsbeleid dat automatisch uitbetaalt](https://etherisc.com/) +- [Een standaard waarmee mensen aangepaste, interoperabele valuta's kunnen maken](/developers/docs/standards/tokens/) + +## Leer je liever visueel? {#visual-learner} + +Bekijk slimme contracten uitgelegd door Finematics: + + + +## Verder lezen {#further-reading} + +- [Hoe smart contracts de wereld zullen veranderen](https://www.youtube.com/watch?v=pA6CGuXEKtQ) +- [Smart contracts: de blockchain-technologie die advocaten zal vervangen](https://blockgeeks.com/guides/smart-contracts/) +- [Smart contracts voor ontwikkelaars](/developers/docs/smart-contracts/) +- [Leer smart contracts te schrijven](/developers/learning-tools/) +- [Ethereum begrijpen - Wat is een smart contract?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/nl/social-networks/index.md b/public/content/translations/nl/social-networks/index.md new file mode 100644 index 00000000000..ebc29f1735c --- /dev/null +++ b/public/content/translations/nl/social-networks/index.md @@ -0,0 +1,121 @@ +--- +title: Gedecentraliseerde sociale netwerken +description: Een overzicht van gedecentraliseerde sociale netwerken op Ethereum +lang: nl +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: /ethereum-learn.png +summaryPoint1: Blockchain-gebaseerde platformen voor sociale interactie en het creëren en verspreiden van content. +summaryPoint2: Gedecentraliseerde sociale medianetwerken beschermen de privacy van gebruikers en verbeteren de gegevensbeveiliging. +summaryPoint3: Tokens en NFT's creëren nieuwe manieren om content te monetariseren. +--- + +Sociale netwerken spelen een grote rol in ons dagelijks leven. Een gecentraliseerde controle van deze platformen levert echter veel problemen op: gegevensinbreuken, serverstoringen, deplatforming, censuur en privacyschendingen zijn enkele van de nadelen van sociale media. Om deze zaken te bestrijden bouwen ontwikkelaars sociale netwerken op Ethereum. Gedecentraliseerde sociale netwerken kunnen veel van de problemen van traditionele sociale netwerken oplossen en de algehele ervaring van gebruikers verbeteren. + +## Wat zijn gedecentraliseerde sociale netwerken? {#what-are-decentralized-social-networks} + +Gedecentraliseerde sociale netwerken zijn op blockchain gebaseerde platformen die gebruikers in staat stellen informatie uit te wisselen en inhoud te publiceren/verspreiden naar doelgroepen. Omdat deze toepasingen op de blockchain draaien, kunnen ze gedecentraliseerd zijn en resistent tegen censuur en ongepaste controle. + +Veel gedecentraliseerde sociale netwerken bestaan als alternatieven voor populaire sociale mediadiensten, zoals Facebook, LinkedIn, Twitter en Medium. Maar de door blockchain aangedreven sociale netwerken hebben een aantal kenmerken die ze voorrang geven op traditionele sociale mediaplatformen. + +### Hoe werken gedecentraliseerde sociale netwerken? {#decentralized-social-networks-overview} + +Gedecentraliseerde sociale netwerken zijn een klasse van [gedecentraliseerde applicaties (dapps)](/dapps/) - applicaties aangedreven door [smart contracts](/developers/docs/smart-contracts/) geïmplementeerd op de blockchain. De contractcode dient als de backend voor deze apps en definieert hun bedrijfslogica. + +Traditionele sociale mediaplatformen vertrouwen op databases voor het opslaan van gebruikersinformatie, programmacode en andere vormen van gegevens. Dit creëert echter enkele punten van mislukking (single points-of-failure) en brengt een aanzienlijk risico met zich mee. Een berucht voorbeeld hiervan was [vorig jaar het uren offline gaan](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) van de servers van Facebook, wat verhinderde dat de gebruikers het platform konden gebruiken. + +Gedecentraliseerde sociale netwerken bestaan op een peer-to-peer netwerk bestaande uit duizenden nodes over de hele wereld. Zelfs als sommige nodes falen, functioneert het netwerk ononderbroken, waardoor toepassingen resistent blijven tegen fouten en storingen. + +Gebruik van gedecentraliseerde opslagsystemen zoals [het InterPlanetary File System (IPFS)](https://ipfs.io/), sociale netwerken die op Ethereum zijn gebouwd, kunnen gebruikersinformatie beschermen tegen uitbuiting en kwaadaardig gebruik. Niemand zal uw persoonlijke informatie aan adverteerders verkopen, noch zullen hackers uw vertrouwelijke gegevens kunnen stelen. + +Veel op blockchain gebaseerde sociale platformen hebben eigen tokens die inkomsten genereren zonder het gebruik van advertenties. Gebruikers kunnen deze tokens kopen om toegang te krijgen tot bepaalde functies, in-app aankopen te doen of hun favoriete content creators te steunen. + +## Voordelen van gedecentraliseerde sociale netwerken {#benefits} + +1. Gedecentraliseerde sociale netwerken zijn censuurbestendig en toegankelijk voor iedereen. Dit betekent dat gebruikers niet willekeurig kunnen worden verbannen, gedeplatformeerd of beperkt. + +2. Gedecentraliseerde sociale netwerken zijn gebouwd op open-source idealen en maken broncode voor applicaties beschikbaar voor publieke inspectie. Door de implementatie van ondoorzichtige algoritmen te elimineren die gebruikelijk zijn in traditionele sociale media, kunnen op blockchain-gebaseerde sociale netwerken de belangen van gebruikers en platformmakers op elkaar afstemmen. + +3. Gedecentraliseerde sociale netwerken elimineren de "tussenpersoon". Content creators zijn de directe eigenaars van hun content en hebben direct contact met hun volgers, fans, kopers en andere partijen, met niets anders dan een smart contract tussen hen. + +4. Zoals dapps die op het Ethereum-netwerk draaien, dat wordt ondersteund door een wereldwijd peer-to-peer netwerk van nodes, zijn gedecentraliseerde sociale netwerken minder gevoelig voor downtime en uitval van servers. + +5. Gedecentraliseerde sociale platformen bieden een verbeterd monetariseringskader voor creators via niet-vervangbare tokens (NFT's), in-app cryptobetalingen en meer. + +6. Gedecentraliseerde sociale netwerken bieden gebruikers een hoog niveau van privacy en anonimiteit. Een persoon kan zich bijvoorbeeld aanmelden bij een op Ethereum gebaseerd sociaal netwerk met behulp van een ENS-profiel of portemonnee - zonder andere persoonlijk identificeerbare informatie (PII), zoals namen, e-mailadressen, enz., te hoeven delen. + +7. Gedecentraliseerde sociale netwerken zijn afhankelijk van gedecentraliseerde opslag, niet van gecentraliseerde databases, en zijn dus aanzienlijk beter voor het beschermen van gebruikersgegevens. + +## Gedecentraliseerde sociale netwerken op Ethereum {#ethereum-social-networks} + +Het Ethereum-netwerk is de voorkeurstool geworden voor ontwikkelaars die gedecentraliseerde sociale media maken vanwege de populariteit van de tokens (ERC-20/ERC-721) en de massale gebruikersbasis. Hier zijn enkele voorbeelden van op Ethereum gebaseerde sociale netwerken: + +### Peepeth {#peepeth} + +[Peepeth](https://peepeth.com/) is een microbloggingplatform vergelijkbaar met Twitter. Het werkt op de Ethereum-blockchain en gebruikt IPFS om gebruikersgegevens op te slaan. + +Gebruikers kunnen korte berichten verzenden, ook wel "Peeps" genoemd, die niet kunnen worden verwijderd of gewijzigd. Je kunt tips vezamelen of versturen naar iedereen op het platform in ether (ETH) zonder de app te verlaten. + +### Mirror {#mirror} + +[Mirror](https://mirror.xyz/) is een web3-compatibel schrijfplatform dat streeft naar decentralisatie en eigenaarschap van gebruikers. Gebruikers kunnen op Mirror gratis lezen en schrijven door simpelweg hun portemonnee te verbinden. Gebruikers kunnen ook geschreven materiaal verzamelen en zich abonneren op hun favoriete schrijvers. + +Berichten op Mirror worden permanent opgeslagen op Arweave, een gedecentraliseerd opslagplatform, en kunnen worden gemint als verzamelbare [niet-vervangbare tokens (NFT's)](/nft/), ook wel bekend als Writing NFT's. Writing NFT's kunnen helemaal gratis door schrijvers gemaakt worden, en het verzamelen ervan gebeurt op een Ethereum L2 — waardoor transacties goedkoop, snel en milieuvriendelijk worden gemaakt. + +### MINDS {#minds} + +[MINDS](https://www.minds.com/) is een van de meest gebruikte gedecentraliseerde sociale netwerken. Het werkt als Facebook en heeft al miljoenen gebruikers bereikt. + +Gebruikers gebruiken het eigen ERC-20 token $MIND van het platform om voor items te betalen. Gebruikers kunnen ook $MIND-tokens verdienen door populaire content te publiceren, bij te dragen aan het ecosysteem en anderen naar het platform te verwijzen. + +## Web2 sociale netwerken op Ethereum {#web2-social-networks-and-ethereum} + +[Web3](/web3/) eigen sociale platformen zijn niet de enige die proberen de blockchain-technologie te integreren in sociale media. Veel gecentraliseerde platformen zijn ook van plan Ethereum te integreren in hun infrastructuur: + +### Reddit {#reddit} + +Reddit heeft [Community Points](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users) geïntroduceerd, wat [ERC-20-tokens](/developers/docs/standards/tokens/erc-20/) zijn die gebruikers kunnen verdienen door kwalitatieve inhoud te posten en bij te dragen aan online gemeenschappen (subreddits). Deze tokens kunt u binnen een subreddit inwisselen om [exclusieve privileges en voordelen](https://www.reddit.com/community-points/) te krijgen. Voor dit project werkt Reddit met Arbitrum, een [laag 2](/layer-2/) rollup die is ontworpen om Ethereum-transacties te schalen. + +Het programma is al live, met de r/CryptoCurrency subreddit [die zijn versie van gemeenschapspunten genaamd "Moons" draait](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Volgens de officiële beschrijving beloont Moons "posters, commentators en moderators voor hun bijdragen aan de subreddit." Omdat deze tokens op de blockchain staan (gebruikers ontvangen ze in hun portemonnee), zijn ze onafhankelijk van Reddit en kunnen ze niet worden weggenomen. + +Na het afsluiten van een bètafase op het Rinkeby-testnet, staan Reddit Community Points nu op [Arbitrum Nova](https://nova.arbitrum.io/), een blockchain die eigenschappen combineert van een [sidechain](/developers/docs/scaling/sidechains/) en een [optimistic rollup](/developers/docs/scaling/optimistic-rollups/). Naast het gebruik van gemeenschapspunten om speciale functies te ontgrendelen, kunnen gebruikers ze ook verhandelen op exchanges in ruil voor fiat. Ook bepaalt de hoeveelheid gemeenschapspunten die een gebruiker bezit diens invloed op het besluitvormingsproces binnen de gemeenschap. + +### Twitter {#twitter} + +In januari 2021 heeft Twitter Blue [ondersteuning voor NFT's](https://mashable.com/article/twitter-blue-nft-profile-picture) geïmplementeerd, waardoor gebruikers hun portemonnee kunnen verbinden en NFT's als profielfoto's kunnen gebruiken. Op het moment van dit schrijven heeft het socialemediabedrijf ook [plannen aangekondigd](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) om in de toekomst een gedecentraliseerd sociaal netwerk te creëren. + +### Instagram {#instagram} + +In mei 2022 [kondigde Instagram ondersteuning aan voor NFT's](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) op Ethereum en Polygon. Gebruikers kunnen NFT's direct op Instagram posten door hun Ethereum-portemonnee te verbinden. + +## Gebruik gedecentraliseerde sociale netwerken {#use-decentralized-social-networks} + +- **[Status.im](https://status.im/)** - _Status is een beveiligde communicatie-app die gebruik maakt van een open-source, peer-to-peer protocol en end-to-end versleuteling om uw berichten te beschermen tegen derden._ +- **[Mirror.xyz](https://mirror.xyz/)** - _Mirror is een gedecentraliseerd publicatieplatform in handen van gebruikers dat gebouwd is op Ethereum. Het is bedoeld voor gebruikers om ideeën te crowdfunden, content te verkopen en hoogwaardige gemeenschappen op te bouwen._ +- **[Lens Protocol](https://lens.xyz/)** - _Lens Protocol is een samen te stellen gedecentraliseerde sociale grafiek die creators helpt met hun eigendomsrecht op hun content, waar ze ook maar heen gaan in het digitale landschap van het gedecentraliseerde internet._ +- **[Farcaster](https://farcaster.xyz/)** - _Farcaster is een gedecentraliseerd sociaal netwerk. Het is een open protocol dat veel clients kan ondersteunen, net als e-mail._ + +## Lees verder {#further-reading} + +### Artikelen {#articles} + +- [Decentralizing social media: a guide to the web3 social stack](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _Coinbase Ventures_ +- [Social Networks Are the Next Big Decentralization Opportunity](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Goertzel_ +- [Web3 holds the promise of decentralized, community-powered social networks](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ +- [An Overview of the Blockchain Social Media Landscape](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ +- [How Blockchain Can Solve Social Media Privacy](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Prableen Bajpai_ +- [Social Media Networks Are Coming To The Blockchain](https://businesstechguides.co/what-are-decentralized-social-networks) — _Emmanuel Awosika_ +- [Sufficient Decentralization for Social Networks](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Varun Srinivasan_ + +### Video's {#videos} + +- [Decentralized Social Media Explained](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ +- [DeSo Blockchain Wants to Decentralize Social Media](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_ + +### Gemeenschappen {#communities} + +- [Status Discord Server](https://discord.com/invite/3Exux7Y) +- [Mirror Discord Server](https://discord.com/invite/txuCHcE8wV) +- [r/CryptoCurrency subreddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/public/content/translations/nl/staking/pools/index.md b/public/content/translations/nl/staking/pools/index.md new file mode 100644 index 00000000000..b7ccc367d5f --- /dev/null +++ b/public/content/translations/nl/staking/pools/index.md @@ -0,0 +1,86 @@ +--- +title: Gepoolde staking +description: Een overzicht van hoe u aan de slag kunt met gepoolde ETH-staking +lang: nl +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-pool.png +alt: Leslie de neushoorn die in het zwembad zwemt. +sidebarDepth: 2 +summaryPoints: + - Stake en verdien beloningen met een willekeurig aantal ETH, door samen te werken met anderen + - Sla het moeilijke deel over en vertrouw validatoractiviteiten aan een derde toe + - Bewaar liquiditeitstokens in uw eigen portemonnee +--- + +## Wat zijn staking-pools? {#what-are-staking-pools} + +Staking-pools zijn een gezamenlijke aanpak om veel gebruikers met kleinere hoeveelheden ETH de mogelijkheid te bieden de 32 ETH te verkrijgen die nodig zijn om een set validatorsleutels te activeren. De pooling-functionaliteit wordt oorspronkelijk niet ondersteund binnen het protocol, dus er zijn oplossingen ontwikkeld om aan deze behoefte te voldoen. + +Sommige pools werken met smart contracts, waar fondsen kunnen worden gestort op een contract dat uw stake beheert en volgt zonder vertrouwenskwestie en u een token geeft die deze waarde vertegenwoordigt. Andere pools hebben mogelijk geen smart contracts en worden in plaats daarvan via de off-chain beheerd. + +## Waarom staken met een pool? {#why-stake-with-a-pool} + +Naast de voordelen die we hebben behandeld in onze [inleiding tot staking](/staking/), komt staking met een pool met nog een aantal andere duidelijke voordelen. + + + + Bent u geen whale? Geen probleem. De meeste staking-pools laten u vrijwel elke hoeveelheid ETH staken door samen te werken met andere stakers, in tegenstelling tot solo staking waar u 32 ETH voor nodig heeft. + + + Staken met een pool is net zo makkelijk als een token swap. U hoeft zich geen zorgen te maken over hardware-installatie en node-onderhoud. Pools maken het mogelijk voor u om uw ETH te storten, waardoor node-operators validators kunnen uitvoeren. Beloningen worden vervolgens verdeeld over alle bijdragers, minus een vergoeding voor de node-activiteiten. + + + Veel staking-pools geven een token dat een claim op uw gestakete ETH en de beloningen die het genereert, vertegenwoordigt. Dit stelt u in staat om gebruik te maken van uw gestakete ETH, bijvoorbeeld als onderpand in DeFi-applicaties. + + + + + +## Wat te overwegen {#what-to-consider} + +Gepoolde of gedelegeerde staking wordt oorspronkelijk niet door het Ethereum-protocol ondersteund, maar gezien de vraag die er bestaat van gebruikers die minder dan 32 ETH willen staken, is er een groeiend aantal oplossingen gebouwd om aan deze vraag te voldoen. + +Elke pool en de tools of smart contracts die ervoor gebruikt worden, zijn door verschillende teams opgebouwd, en elke pool heeft zijn eigen risico's en voordelen. + +Hieronder zijn attribuutindicatoren gebruikt om opmerkelijke sterke of zwakke punten te signaleren die een genoemde staking-pool kan hebben. Gebruik deze sectie als referentie voor hoe we deze attributen definiëren terwijl u een pool kiest om u bij aan te sluiten. + + + +## Onderzoek staking-pools {#explore-staking-pools} + +Er zijn verschillende opties beschikbaar om u te helpen met uw installatie. Gebruik de bovenstaande indicatoren om u te helpen de onderstaande tools door te nemen. + + +Houd rekening met het belang van het kiezen van een service die de diversiteit van clients serieus neemt, omdat dit de veiligheid van het netwerk verbetert en uw risico's beperkt. Services die bewijs hebben van het beperken van het gebruik van meerderheid-clients, zijn gemarkeerd als "diverse clients." + + + + +Heeft u een suggestie voor een staking-tool die we hebben gemist? Bekijk ons [productlijstbeleid](/contributing/adding-staking-products/) om te zien of het een goede fit is en om het ter beoordeling in te dienen. + +## Veelgestelde vragen {#faq} + + +Meestal worden ERC-20-liquiditeitstokens uitgegeven aan stakers die de waarde van hun gestakete ETH plus beloningen vertegenwoordigen. Houd in uw achterhoofd dat verschillende pools hun staking-beloningen verdelen onder hun gebruikers via ietwat verschillende methoden, maar dit is wat gebruikelijk is. + + + + +Fondsen opnemen van een Ethereum-validator is momenteel niet mogelijk, wat de mogelijkheid beperkt om uw liquiditeitstokens in te wisselen voor de ETH-beloningen die in de consensuslaag vergrendeld zitten. + +Of pools die gebruik maken van een ERC-20-liquiditeitstoken kunnen gebruikers dit token in de open markt laten verhandelen, waardoor u uw staking-positie kunt verkopen zonder daadwerkelijk ETH te verwijderen uit het staking-contract. + + + +Er zijn veel overeenkomsten tussen deze gepoolde staking-opties en gecentraliseerde exchanges, zoals de mogelijkheid om kleine hoeveelheden ETH te staken en deze te bundelen om validators te activeren. + +In tegenstelling tot gecentraliseerde exchanges gebruiken veel andere gepoolde staking-opties smart contracts en/of liquiditeitstokens, die meestal ERC-20-tokens zijn die in uw eigen portemonnee kunnen worden bewaard en net als elke andere token kunnen worden gekocht of verkocht. Dit biedt een laag van soevereiniteit en veiligheid door u de controle te geven over uw tokens, maar het geeft u nog steeds geen directe controle over de validator-client die namens u attesteert op de achtergrond. + +Sommige pooling-opties zijn meer gedecentraliseerd dan andere als het gaat om de nodes waarmee ze ondersteund worden. Om de gezondheid en decentralisatie van het netwerk te bevorderen, worden stakers altijd aangemoedigd om een poolingservice te selecteren die een gedecentraliseerde set node-operators zonder toestemming mogelijk maakt. + + +## Verder lezen {#further-reading} + +- [Staking met Rocket Pool - Staking Overview](https://docs.rocketpool.net/guides/staking/overview.html) - _RocketPool docs_ +- [Staking Ethereum With Lido](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Lido help docs_ diff --git a/public/content/translations/nl/staking/saas/index.md b/public/content/translations/nl/staking/saas/index.md new file mode 100644 index 00000000000..b9182fc8d7a --- /dev/null +++ b/public/content/translations/nl/staking/saas/index.md @@ -0,0 +1,89 @@ +--- +title: Staking-as-a-service +description: Een overzicht van hoe u aan de slag kunt met gepoolde ETH-staking +lang: nl +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-saas.png +alt: Leslie de neushoorn zweeft in de wolken. +sidebarDepth: 2 +summaryPoints: + - Node operators van derden beheren de werking van uw validator-client + - Geweldige optie voor iedereen met 32 ETH, die zich niet comfortabel voelt met de technische complexiteit van het draaien van een node + - Verminder het vertrouwen en bewaar zelf uw opnamesleutels +--- + +## Wat is staking-as-a-service? {#what-is-staking-as-a-service} + +Staking-as-a-service ("SaaS") is een categorie van stakingdiensten waarbij u uw eigen 32 ETH stort voor een validator, maar node-activiteiten naar een externe operator worden gedelegeerd. Dit proces omvat meestal een begeleiding door de initiële set-up, inclusief sleutelgeneratie en storting, met daarna het uploaden van uw ondertekeningssleutels naar de operator. Hiermee kan de service uw validator namens u beheren, meestal tegen een maandelijkse vergoeding. + +## Waarom staken met een service? {#why-stake-with-a-service} + +Het Ethereum-protocol ondersteunt zelf geen stake-delegering, daarom zijn deze diensten gebouwd om aan deze vraag te voldoen. Als u 32 ETH hebt om te staken, maar u zich niet op uw gemak voelt om met hardware om te gaan, kunt u met SaaS-diensten het moeilijke deel delegeren terwijl u eigen blokbeloningen verdient. + + + + Stort uw eigen 32 ETH om uw eigen set ondertekeningssleutels te activeren die zullen deelnemen aan de Ethereum-consensus. Volg uw voortgang met dashboards om de ETH-beloningen te zien accumuleren. + + + Vergeet hardwarespecificaties, installatie, node-onderhoud en upgrades. + Met SaaS-providers kunt u het moeilijke deel uitbesteden door uw eigen ondertekeningsgegevens te uploaden, waardoor namens u een validator kan worden uitgevoerd tegen een kleine vergoeding. + + + In veel gevallen hoeven gebruikers de toegang tot de sleutels voor het opnemen of overschrijven van gestakete fondsen niet op te geven. Deze zijn anders dan de ondertekeningssleutels en kunnen apart worden opgeslagen om uw risico als staker te beperken (maar niet te verwijderen). + + + + + +## Wat te overwegen {#what-to-consider} + +Er is een groeiend aantal staking-as-a-service providers om u te helpen uw ETH te staken, maar elk met verschillende risico's en voordelen. + +Attribuutindicatoren worden hieronder gebruikt om opmerkelijke of zwakke punten te signaleren die een genoemde SaaS-provider kan hebben. Gebruik deze sectie als referentie voor hoe we deze attributen definiëren, wanneer u een service kiest om u te helpen met uw staking-traject. + + + +## Verken staking-serviceproviders {#saas-providers} + +Hieronder staat een aantal beschikbare SaaS-providers. Gebruik bovenstaande indicatoren om u te helpen door de onderstaande services te gaan + + +Houd rekening met het belang van het ondersteunen van diversiteit van clients, omdat dit de veiligheid van het netwerk verbetert en uw risico's beperkt. Services die bewijs hebben van het beperken van het gebruik van meerderheid-clients zijn gemarkeerd als "diverse clients." + + +### SaaS-providers + + + +### Sleutelgenerators + + + +Heeft u een suggestie voor een staking-as-a-service provider die we gemist hebben? Bekijk ons [productlijstbeleid](/contributing/adding-staking-products/) om te zien of het een goede fit is en om het ter beoordeling in te dienen. + +## Veelgestelde vragen {#faq} + + + Regelingen zullen verschillen van provider tot provider, maar gewoonlijk wordt u begeleid bij het instellen van de benodigde ondertekeningssleutels (één per 32 ETH) en het uploaden ervan naar uw provider zodat ze namens u kunnen valideren. De ondertekeningssleutels alleen bieden geen mogelijkheid om uw geld op te nemen, over te schrijven of uit te geven. Ze bieden echter wel de mogelijkheid om op consensus te stemmen, wat kan leiden tot offline boetes of slashing als het niet juist wordt gedaan. + + + +Ja. Elk account bestaat uit sleutels voor ondertekening en opname. Om een validator de status van de chain te laten bevestigen, deel te laten nemen aan sync-comités en blokken te laten voorstellen, moeten de ondertekeningssleutels gemakkelijk toegankelijk zijn door een validator-client. Deze moeten op een of andere manier met het internet worden verbonden en worden dus per definitie beschouwd als "hot" keys. Dit is een vereiste voor uw validator om te kunnen attesteren, en dus zijn de sleutels die worden gebruikt om fondsen over te schrijven of op te nemen om veiligheidsredenen gescheiden. + +Al deze sleutels kunnen altijd op een reproduceerbare manier worden gegenereerd met behulp van uw uit 24 woorden bestaande mnemonische herstelzin. Zorg ervoor dat u uw herstelzin veilig bewaard, anders kunt u uw opnamesleutels niet genereren wanneer dat nodig is. + + + + Wanneer u 32 ETH staket met een SaaS-provider, wordt die ETH nog steeds gestort op het officiële staking-stortingscontract. Als zodaning zijn SaaS-stakers momenteel beperkt door dezelfde opnamebeperkingen als solo stakers. Dit betekent dat het staken van uw ETH momenteel een eenrichtings storting is. Dit zal het geval zijn tot aan de Shanghai upgrade. + + + +Door een SaaS-provider te gebruiken, vertrouwt u de werking van uw node toe aan iemand anders. Dit brengt het risico van slechte node-prestaties met zich mee, wat u niet kunt controleren. In het geval dat uw validator wordt geslashed, wordt uw validatorsaldo bestraft en onder dwang verwijderd uit de validator-pool. Deze fondsen wordt vergrendeld totdat opnames op protocolniveau worden ingeschakeld. + +Neem contact op met de individuele SaaS-providers voor meer informatie over garanties of verzekeringsopties. Als u liever de volledige controle over uw validatorinstallatie heeft, leer dan meer over hoe u uw ETH solo kunt staken. + + +## Verder lezen {#further-reading} + +- [Evaluating Staking Services](https://www.attestant.io/posts/evaluating-staking-services/) - _Jim McDonald 2020_ diff --git a/public/content/translations/nl/staking/solo/index.md b/public/content/translations/nl/staking/solo/index.md new file mode 100644 index 00000000000..8393ad4448b --- /dev/null +++ b/public/content/translations/nl/staking/solo/index.md @@ -0,0 +1,185 @@ +--- +title: Solo stake uw ETH +description: Een overzicht van hoe u moet beginnen met solo staking van uw ETH +lang: nl +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-solo.png +alt: Leslie de neushoorn op haar eigen computerchip. +sidebarDepth: 2 +summaryPoints: + - Ontvang maximale beloningen rechtstreeks uit het protocol voor het goed en online laten functioneren van uw validator + - Voer home-hardware uit en voeg persoonlijk toe aan de beveiliging en decentralisatie van het Ethereum-netwerk + - Verwijder vertrouwen en geef nooit de controle over de sleutels tot uw geld op +--- + +## Wat is solo staking? {#what-is-solo-staking} + +Solo staking is de handeling van het [uitvoeren van een Ethereum-node](/run-a-node/) aangesloten op het internet en het storten van 32 ETH om een [validator](#faq)te activeren, wat u de mogelijkheid geeft om rechtstreeks deel te nemen aan netwerkconsensus. + +Een Ethereum-node bestaat uit zowel een uitvoeringslaag (EL)-client, als een consensuslaag (CL)-client. Deze clients zijn software die naast elkaar werken, samen met een geldige set ondertekeningssleutels, om transacties en blokken te verifiëren, het juiste hoofd van de chain te attesteren en blokken voor te stellen. + +Solo stakers zijn verantwoordelijk voor het bedienen van de hardware die nodig is om deze clients uit te voeren. Het is ten zeerste aangeraden om hiervoor een speciale machine te gebruiken die u thuis bedient. Dit is zeer nuttig voor de gezondheid van het netwerk. + +Een solo staker ontvangt beloningen rechtstreeks uit het protocol voor het goed en online laten functioneren van zijn/haar validator. + +## Waarom solo staken? {#why-stake-solo} + +Solo staking brengt meer verantwoordelijkheid met zich mee, maar geeft u maximale controle over uw geld en staking-installatie. + + + + Verdien in ETH omgezette beloningen direct uit het protocol wanneer uw validator online is, zonder dat tussenpersonen een deel afpakken. + + + Bewaar je eigen sleutels. Kies de combinatie van clients en hardware waarmee u uw risico kunt minimaliseren en het best kunt bijdragen aan de gezondheid en beveiliging van het netwerk. Staking-diensten van derden nemen deze beslissingen voor u, en deze maken niet altijd de beste keuzes. + + + Solo staking is de meest impactvolle manier om te staken. Door thuis een validator op uw eigen hardware uit te voeren, versterkt u de robuustheid, decentralisatie en veiligheid van het Ethereum-protocol. + + + +## Overwegingen voordat u begint met solo staking {#considerations-before-staking-solo} + +We zouden heel graag willen dat solo staking toegankelijk en risicovrij zou zijn voor iedereen, maar dit is niet de realiteit. Er zijn enkele praktische en serieuze overwegingen om in gedachten te houden voordat u kiest voor het solo staken van uw ETH. + + + + Bij het beheren van uw eigen node moet u wat tijd besteden om te leren hoe u de software gebruikt die u heeft gekozen. Dit heeft betrekking op het lezen van relevante documentatie en letten op communicatiekanalen van die dev-teams. + Hoe meer u begrijpt van de software die u gebruikt en hoe proof-of-stake werkt, hoe minder risico's er zullen zijn als staker, en hoe makkelijker het zal zijn om problemen op te lossen die zich kunnen voordoen. + + + Node setup vereist een redelijk comfortniveau bij het werken met computers, hoewel nieuwe tools dit makkelijker maken na verloop van tijd. Het begrijpen van de opdrachtregelinterface is nuttig, maar niet langer strikt nodig. + Het vereist ook een zeer elementaire hardwareinstallatie en enig begrip van de aanbevolen minimum specificaties. + + + Net als hoe privé-sleutels uw Ethereum-adres beveiligen, moet u specifieke sleutels genereren voor uw validator. U moet begrijpen hoe u uw herstelzinnen en privé-sleutels veilig moet houden. +

Ethereum-beveiliging en -scampreventie

+
+ + Het opnemen van gestakete ETH of beloningen van een validatorsaldo wordt nog niet ondersteund. Ondersteuning voor opnames is gepland voor de aankomende Shanghai upgrade. U moet er rekening mee houden dat uw ETH ten minste één tot twee jaar vergrendeld blijft. Na de Shanghai upgrade bent u vrij om delen of uw hele stake op te nemen, als u dat wenst. + + + Hardware faalt af en toe, netwerkverbindingen geven soms fouten en client-software moet soms bijgewerkt worden. Node-onderhoud is onvermijdelijk en vereist af en toe uw aandacht. U moet er zeker van zijn dat u op de hoogte blijft van alle verwachte netwerkupgrades of andere kritische client-upgrades. + + + Uw beloningen zijn in verhouding tot de tijd die uw validator online is en juist attesteert. Downtime leidt tot boetes in verhouding tot hoeveel andere andere validators offline zijn op hetzelfde moment, maar leidt niet tot slashing. Bandbreedte is ook van belang, omdat de beloningen verminderen voor attesten die niet op tijd worden ontvangen. De vereisten zullen verschillen, maar een minimum van +/- 10 MB/s wordt aanbevolen. + + + Anders dan inactiviteitsboetes voor offline zijn, is er ook slashing. Dit is een veel serieuzere boete gereserveerd voor kwaadwillige misdrijven. Door een minderheid-client met sleutels enkel op één machine tegelijk te gebruiken, wordt het risico op slashing geminimaliseerd. Toch moeten alle stakers zich bewust zijn van de risico's van slashing. + +

Meer over slashing en validatorlevenscyclus

+
+
+ + + +## Hoe het werkt {#how-it-works} + + + +Indien ooit gewenst, kunt u stoppen als validator; hiermee hoeft u niet meer online te blijven, wat wel het verkrijgen van verdere beloningen stopt. Wees ervan bewust dat _opname_ van deze fondsen niet mogelijk zal zijn tot de geplande Shanghai upgrade. + +Na de Shanghai upgrade kunnen gebruikers zowel hun beloningen als hun stake opnemen als ze dat willen. + +## Aan de slag met het Staking Launchpad {#get-started-on-the-staking-launchpad} + +Het Staking Launchpad is een open-source applicatie die u helpt om een staker te worden. Het begeleidt u bij het kiezen van uw clients, het genereren van uw sleutels en het storten van uw ETH op het staking-stortingscontract. Er is een checklist beschikbaar om er zeker van te zijn dat u alles heeft ingevuld om uw validator veilig in te stellen. + + + +## Wat te overwegen met tools voor nodes en client-instelling {#node-tool-considerations} + +Er is een groeiend aantal tools en services om u te helpen als solo staker van uw ETH, maar elk heeft verschillende risico's en voordelen. + +Attribuutindicatoren worden hieronder gebruikt om opmerkelijke sterke of zwakke punten aan te geven die een genoemde staking tool kan hebben. Gebruik deze sectie als referentie voor hoe we deze attributen definiëren wanneer u een tool kiest om u te helpen op uw staking-traject. + + + +## Onderzoek tools voor nodes en de instelling van clients {#node-and-client-tools} + +Er zijn verschillende opties beschikbaar om u te helpen met uw installatie. Gebruik bovenstaande indicatoren om u door de onderstaande tools heen te leiden. + + +Houd rekening met het belang van het kiezen van een minoriteit-client, aangezien dit de veiligheid van het netwerk verbetert en uw risico beperkt. Tools die u in staat stellen om een minoriteit-client in te stellen worden aangeduid als "multi-client." + + +### Node tools + + + +### Sleutelgenerators + +Deze tools worden gebruikt als een alternatief voor de [Staking Deposit CLI](https://github.com/ethereum/staking-deposit-cli/), om u te helpen met het genereren van sleutels. + + + +Heeft u een voorstel voor een staking tool die we hebben gemist? Bekijk ons [productlijstbeleid](/contributing/adding-staking-products/) om te zien of het een goede fit zou zijn en om het ter beoordeling in te dienen. + +## Bekijk solo staking-handleidingen {#staking-guides} + + + +## Veelgestelde vragen {#faq} + +Dit zijn enkele van de meest voorkomende vragen over staking die de moeite waard zijn om te weten. + + + +Een _validator_ is een virtuele entiteit die op Ethereum bestaat en deelneemt aan de consensus van het Ethereum-protocol. Validators worden vertegenwoordigd door een saldo, een publieke sleutel en andere eigenschappen. Een _validator client_ is de software die namens de validator handelt door de privé-sleutel te bewaren en te gebruiken. Een enkele validator-client kan verschillende sleutelparen hebben die verschillende validators kunnen controleren. + + + + +Voor elk sleutelpaar gekoppeld aan een validator moet precies 32 ETH geactiveerd worden. Meer ETH gestort op een enkele set sleutels verhoogt het beloningspotentieel niet, aangezien elke validator is beperkt tot een effectief saldo van 32 ETH. Dit betekent dat staking wordt uitgevoerd in 32 ETH-incrementen, elk met zijn eigen set sleutels en saldo. + +Stort niet meer dan 32 ETH voor één enkele validator. Het zal je beloningen niet verhogen, en het wordt vergrendeld tot de geplande Shanghai update. + +Als solo staking u te veeleisend lijkt, overweeg dan om een staking-as-a-service provider te gebruiken, of als je met minder dan 32 ETH werkt, bekijk dan de staking pools. + + + +Offline gaan wanneer het netwerk correct wordt afgesloten, zal NIET resulteren in slashing. Kleine inactiviteitsboetes worden opgelopen als uw validator niet beschikbaar is gedurende een bepaalde tijdsperiode (elk 6,4 minuten lang), maar dit is heel anders dan slashing. Deze boetes zijn iets minder dan de beloning die u zou hebben verdiend als de validator beschikbaar was om te attesteren, en deze verliezen kunnen worden terugverdiend door ongeveer evenveel tijd weer online te blijven. + +Merk op dat boetes voor inactiviteit proportioneel zijn aan hoeveel validators tegelijkertijd offline zijn. In gevallen waarbij een groot deel van het netwerk tegelijk geheel offline is, zullen de boetes voor elk van deze validators groter zijn dan wanneer er een enkele validator niet beschikbaar is. + +In extreme gevallen, als het netwerk stopt met werken doordat meer dan een derde van de validators offline is, zullen deze gebruikers ondervinden wat bekend staat als een kwadratisch inactiviteitslek, wat een exponentiële afvoer van ETH van offline validator-accounts is. Dit stelt het netwerk in staat om zichzelf uiteindelijk te genezen door het verbranden van ETH van inactieve validators totdat hun saldo 16 ETH bereikt, op welk moment ze automatisch zullen worden verwijderd uit de validator-pool. De resterende online validators zullen uiteindelijk weer meer dan 2/3 van het netwerk omvatten, waarmee voldaan wordt aan de supermeerderheid die nodig is om de chain opnieuw te voltooien. + + + +Kort samengevat kan dit nooit volledig worden gegarandeerd, maar als u te goeder trouw handelt, een minderheid-client uitvoert en uw ondertekeningssleutels op slechts één machine tegelijk houdt, is het risico om geslashed te worden bijna nul. + +Er zijn slechts enkele specifieke manieren die ertoe kunnen leiden dat een validator geslashed en uit het netwerk verwijderd wordt. Op het moment van schrijven, zijn de slashings die zich hebben voorgedaan uitsluitend het resultaat geweest van overbodige hardware-instellingen waarbij ondertekeningssleutels op twee aparte machines tegelijk werden opgeslagen. Dit kan per ongeluk resulteren in een dubbele stem van uw sleutels, wat een overtreding is die tot slashing kan leiden. + +Het uitvoeren van een supermeerderheid-client (elke client die gebruikt wordt door meer dan 2/3 van het netwerk) houdt ook het risico in van een mogelijke slashing in het geval dat deze client een bug heeft die resulteert in een chain fork. Dit kan leiden tot een onjuiste fork die afgerond wordt. Om terug te corrigeren naar de beoogde chain moet u een surround vote indienen door te proberen een afgerond blok ongedaan te maken. Dit is ook een overtreding die tot slashing kan leiden; dit kan worden vermeden door simpelweg een minderheid-client te gebruiken. + +Gelijkwaardige bugs in een minderheid-client zouden nooit afgerond worden en zouden dus nooit resulteren in een surround vote; het zou simpelweg leiden tot inactiviteitsboetes, niet tot slashing. + +

Meer informatie over het belang van het uitvoeren van een minderheid-client.

+

Meer informatie over slashing-preventie

+
+ + +Individuele clients kunnen wat betreft prestatie en gebruikersinterface lichtjes variëren, omdat ze elk ontwikkeld zijn door verschillende teams die verschillende programmeertalen gebruiken. Dat gezegd hebbende, is geen enkele de "beste" client. Alle productie-clients zijn uitstekende stukken software, die allemaal dezelfde kernfuncties uitvoeren om te synchroniseren en te communiceren met de blockchain. + +Aangezien alle productie-clients dezelfde basisfunctionaliteit bieden, is het in feite erg belangrijk dat u kiest voor een minderheid-client - dit betekent een client die op dit moment NIET wordt gebruikt door de meerderheid van de validators op het netwerk. Dit kan contraproductief klinken, maar met een meerderheid- of supermeerderheid-client heeft u een verhoogd risico op slashing in het geval van een bug in die client. Het uitvoeren van een minderheid-client beperkt deze risico's aanzienlijk. + +Meer informatie over de reden waarom client-diversiteit cruciaal is + + + +Hoewel een virtuele privé-server (VPS) kan worden gebruikt als vervanging voor thuishardware, zijn de fysieke toegang en locatie van uw validator-client ook van belang. Gecentraliseerde cloudoplossingen zoals Amazon Web Services of Digital Ocean maken het mogelijk om hardware niet zelf te hoeven verkrijgen en bedienen, ten koste van het centraliseren van het netwerk. + +Hoe meer validator-clients draaien op een enkele gecentraliseerde cloud-opslagoplossing, hoe gevaarlijker het wordt voor deze gebruikers. Elke gebeurtenis die deze providers offline haalt, of dat nu het geval is door aanvallen, regelgevingseisen of gewoon door stroom- en internetproblemen, zorgt ervoor dat elke validator-client die van deze server afhankelijk is tegelijkertijd offline gaat. + +Offline boetes zijn evenredig aan hoeveel andere validators er tegelijkertijd offline zijn. Het gebruik van een VPS verhoogt het risico dat offline boetes zwaarder zullen zijn, en verhoogt uw risico op kwadratische lekkage of slashing in het geval dat de uitval groot genoeg is. Om uw eigen risico en het risico voor het netwerk te minimaliseren, worden gebruikers sterk aangemoedigd om hun eigen hardware te verkrijgen en gebruiken. + + +## Verder lezen {#further-reading} + +- [Ethereum's Client Diversity Problem](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ +- [Helping Client Diversity](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ +- [Client diversity on Ethereum's consensus layer](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ +- [How To: Shop For Ethereum Validator Hardware](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ +- [Step by Step: How to join the Ethereum 2.0 Testnet](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _Butta_ +- [Eth2 Slashing Prevention Tips](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raul Jordan 2020_ diff --git a/public/content/translations/pcm/dao/index.md b/public/content/translations/pcm/dao/index.md new file mode 100644 index 00000000000..0ea87a0b53e --- /dev/null +++ b/public/content/translations/pcm/dao/index.md @@ -0,0 +1,165 @@ +--- +title: Decentralized autonomous organisations (DAOs) +description: One kain yan about DAOs wey dey on top Ethereum +lang: pcm +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao.png +alt: One show of hau one DAO dey vote on top one proposal. +summaryPoint1: Kommunitis wey membas own and nor get one pesin wey dey kontrol evrytin. +summaryPoint2: One way wey bam wey u fit join pipol wey yu nor sabi for intanet witout wahala. +summaryPoint3: One ogbonge place wey bam yu fit put yor moni for somtin wey make sense. +--- + +## Wetin bi DAOs? {#what-are-daos} + +DAo na place wey evryon own, organizashon wey blockchain dey control wey dey work towads one shia mishon. + +Omo dis DAOs go helep us link one work wit dem wey get di same vibes wey wi get and wi nor go dey look pesin to bag awa moni abi tins wey wi dey run. Dey nor get pesin wey go run us street wit awa moni abi pesin wey go shange de book. Insted, na rules wey dey based on blockchain wey don enta di kode dey yan di way di organizashon dey work and hau dem dey spend moni. + +Dey don build dia treasuris in one kain way wey pesin nor fit enta dia moni if dem nor gri yu make yu do am. Desishons dey kontrolled based on proposals an voting make evrybody for the organizashon fit yan, and evrytin dey hapun openly for di chain. + +## Why e bi say wi nid DAOs? {#why-dao} + +Omo to bigin organisashon join pipol yu nor sabi nor bi play bikos moni dey involved and yu nor too sabi who all dis pipol sha bi an e go rikwaya trust die. E nor izy to biliv pesin wey yu and am just dey yarn for intanet wey yu nor even sabi wella. Wit DAOs yu nor nid sabi who dem bi, bikos all man go dey run on one kain ethical kode wey evrybody sabi and all man go dey si am and e dey 100% legit and verified. + +And e go mek say you fit synergize wit pipol ovaboard and all tins go dey run wella. + +### One kain komparison {#dao-comparison} + +| DAO | One normal organizashon | +| ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | +| E dey komon say e dey flat, and evrybody get di same pawa. | E dey waka sey na for up, down levels dem dey arrange am. | +| Voting dey important bcus say members suppose vote before any change fit happen. | Based on how e dey set, dem fit demand changes from one person alone, or dem fit offer voting" for Nigerian. | +| Dem kount di votes and di rizut dey waka automatically witout any pesin wey evrybody trust. | If dem alow make wi vote, dem go kount di votes inside, and di outcome of di voting go nid to dey handol manually. | +| Sarvis wey dem offa dey handol automatik, nor bi pesin dey kontrol-am, na so-so desentralizashon (like hau dem dey shia fri money). | If e require pesin to handle am or if e dey controlled by one central system wey fit dey manipulate am. | +| All activity na open book, evrybody fit si am. | Activity na usually private, and e no too dey reach public. | + +### DAO sample {#dao-examples} + +To make you understand the matter, si smoll way wey yu fit take yus DAO: + +- Charity - yu fit accept money from pesin wey dey anywia for dis world and vote wetin una go yus di money do. +- Na we get am - you fit buy things wey we si and di ones wey wi nor si and evrybody fit vote wetin wi go yus am do. +- Fri money - yu fit start associashon wey go gada money and pipol go vote wich biznes dem wan put di money. Wi fit give awa membas di money wey dem pay back. + +## Hau dis DAOs dey work? {#how-daos-work} + +Di tori of any DAO na hin contract wey sharp. na him go tell us the matter wey guide the organization and our money. Once our contract don dey live on Ethereum, nobody fit change am again except say we vote. If anybody try do something wey no dey inside our matter and the code, e go fail. Bikos say the matter sef dey inside the contract too e mean say norbody fit spend money if evrybody nor gri on top. E mean say DAOs no need one single oga. Instead na evrybody for the group dey make the decision and payment dey automatic wen di vote pass. + +This one possible becasue of say our smart contract no fit shake once they don dey live on Ethereum. Yu nor fit edit di kode (DAO matter) make anybody nor sabi bikos na evrythin wi go dey si. + + + More on smart kontracts + + +## Ethereum and DAOs {#ethereum-and-daos} + +Ethereum na di pafet foundashon for DAOs for diferen rizin: + +- Ethereum consensus dey distributed and them establish am for organization to trust the network. +- Person no fit change smart contract code once e don go live, even the owners no fit change the codes. Dis one deu alow DAO make dem run wit di rule wey dem don set. +- Smart contracts fit send and e fit risiv money. Without dis yu go nid person wey we trust to dey manage group money. +- The Ethereum komunity don show say na team work and no be competition and e don allow different support systems dey quickly. + +## DAO governance {#dao-governance} + +So many matter dey wey we go consider when you wan govern DAO, matter like voting and proposals work. + +### Delegashons {#governance-delegation} + +Delegashon be like the diferen pipol dey represent the DAO. People wey get token go allo others vote and choose theirself make everything dey move forward. + +#### Popula eksampol {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) - pipol wey get ENS fit allow pesin wey dey active for di komunity vote for dem. + +### Automatic transaction governance {#governance-example} + +For plenty DAOs, transakshon go do well if plenty pipol vote for am. + +#### Popula eksampol {#governance-example} + +[Nouns](https://nouns.wtf) - for Noun DAO, transakshon dey automatik if e don reach one kain numba of vote and na positive, as far as say di foundas nor yus veto pawa. + +### Multisig governance {#governance-example} + +DAO fit get plenty plenty people wey fit vote, e fit be say na 5-20 people wey dey active dey share the money wey dey the wallet(people wey dem know for public). After we vote na the multisig signers go execute wetin we don vote for. + +## DAO laws {#dao-laws} + +In 1977, Wyoming na hin invent the LLC wey dey protect entrepreneurs and e dey limit their liability. Na recently them push the DAO law wey establish legal status for DAOs. Nau na Wyoming, Vermont, and di Virgin Islands get DAO laws. + +### Popula eksampol {#law-example} + +[CityDAO](https://citydao.io) – dem use Wyoming's DAO law take buy 40 acres of land near Yellowstone National Park. + +## DAO membership {#dao-membership} + +Difre models for DAO membership na im dey. Membership fit ditamin hau pipol go vote and some oda important part of di DAO. + +### Token-based membership {#token-based-membership} + +Dis one nor get pamishon, evrytin dipend on di token wey wi dey yus. We fit trade most of these token for decentralized exchange. You fit win oda tokens from liquidity abi anoda pruf of work. At all at all if you get the token, you go fit vote. + +_Dem dey use am govern big decentralized protocols or tokens._ + +#### Popula eksampol {#token-example} + +[MakerDAO](https://makerdao.com) – MakerDAO's token MKR dey available for decentralized exchanges and anyone fit buy am and e go get voting power for maker protocol future. + +### Share-based membership {#share-based-membership} + +Share based DAOs dey more permissioned but dem dey open. Anybody fit submit proposal say e wan join the DAO, dem fit offer different thing whether na work abi token. Shares reprisent voting pawa and membership. Membas fit komot at any taim wit dia own shia of di treasury. + +_Dem dey use am for more organization like charities, worker collective and investment club wey dey human focused. You fit govern protocols and tokens too._ + +#### Popula eksampol {#share-example} + +[MolochDAO](http://molochdao.com/) – MolochDAO dey focused on giving Ethereum projects money. Dem go ask for proposal to join so them fit evaluate if you get the kapital and expertise to make good decisions about dia grantees. Yu nor fit just but enta to di DAO for open market. + +### Reputashon-based membership {#reputation-based-membership} + +Reputashon show proof of participation and give voting power in the DAO. Inlike token or share based membership, reputation based DAOs no dey transfer ownership or contributors. You no fit buy reputation, you no fit transfer am and dem no fit give you so you gats work for the reputaion when you participate. Onchain voting na permissionless and people wey wan join fit submit proposals to join the DAO and dem fit ask to receive reputations and tokens as a reward in exchange for their contributions. + +_Dem dey use am for decentralized development and governance of protocols and dapps, but organization like charities, clubs dey use am too._ + +#### Popula eksampol {#reputation-example} + +[DXdao](https://DXdao.eth.link) - DXdao na global sovereign collective building and governing decentralized protocols and application since 2019. Dem dey leverage reputation based governance and holographic consensus to coordinate and manage funds, e mean say person no fit buy their way into influencing its future. + +## Join abi start DAO {#join-start-a-dao} + +### Join a DAO {#join-a-dao} + +- [Ethereum community DAOs](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [DAOhaus's list of DAOs](https://app.daohaus.club/explore) +- [Tallt.xyz list of DAOs](https://www.tally.xyz) + +### Start DAO {#start-a-dao} + +- [Summon DAO with DAOhaus](https://app.daohaus.club/summon) +- [Start Governor DAO with Tally](https://www.tally.xyz/add-a-dao) +- [Create Aragon powered DAO](https://aragon.org/product) +- [Start colony](https://colony.io/) +- [Create DAO with DAOstack holographic consensus](https://alchemy.daostack.io/daos/create) + +## Further reading {#further-reading} + +### DAO artikols {#dao-articles} + +- [Wetin be DAO](https://aragon.org/dao) - [ Aragon](https://aragon.org/) +- [DAO handbook](https://daohandbook.xyz) +- [ House of DAOs](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) - [ Metagame](https://wiki.metagame.wtf/) +- [ Wetin be DAO and wetin dem dey use am for?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) - [DAOhaus](https://daohaus.club/) +- [ Hau yu fit start DAO-powered Digital Komunity](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) - [DAOhaus](https://daohaus.club/) +- [ Wetin be DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) - [Coinmarketcap](https://coinmarketcap.com) +- [Wetin be Holographic Consensus?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [ DAOstack](https://daostack.io/) +- [DAOs no be corporations: where decentralization in autonomous organizations matter by vitalik](https://vitalik.ca/general/2022/09/20/daos.html) +- [DAOs, DACs, DAs and More: terminology guide wey no complete](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [ Ethereum Blog](https://blog.ethereum.org) + +### Videos {#videos} + +- [Wetin be DAO inside crypto?](https://youtu.be/KHm0uUPqmVE) +- [ Shey DAO fit build city?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) - [ TED](https://www.ted.com/) diff --git a/public/content/translations/pcm/nft/index.md b/public/content/translations/pcm/nft/index.md new file mode 100644 index 00000000000..b2701efff4c --- /dev/null +++ b/public/content/translations/pcm/nft/index.md @@ -0,0 +1,94 @@ +--- +title: Non-fungibol tokens(NFT) +description: Ovaview of NFTs for inside Ethereum +lang: pcm +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: Eth logo wey wi dey yus hologram show. +summaryPoint1: Na one way wey yu fit reprisent anytin wey dey unik as Ethereum-based asset. +summaryPoint2: NFTs dey give more pawa to kontent kreators pass any taim bifor. +summaryPoint3: Na smart contracts on top of Ethereum blockchain dey give di pawa. +--- + +## What are NFTs? {#what-are-nfts} + +NFTs na tokens wey ish dey unik on im own. Ish NFT get im own difren propatis (non-fungibol) and e dey very skarse. E dey difren from tokens such as ERC-20s wey be say evry token wey dey one set dey look di same den kom folow get di same propatis ('fungibol'). Yu nor dey kare for wich partikular dollar bill yu get for yor wallet, bikos dem bi di same tin and dem get di same worth. Anyhow e bi, yu*dey* kare for wich spesifik NFT yu get, bikos dem bi pesina propatis wey make dem fit stand out from odas (''non-fungibol). + +Di unikness wey ish NFT karry dey enabol make dem fit get yus token do tins like art, kollectibols, abi even real estate, wia one spesifik unik NFT reprisent some spesifik unik real world abi digital item. Ownaship of tins dey sekure by di Ethereum blockchain - norbody fit shange di rekord of ownaship abi kopy/paste a new NFT to existens. + + + +## Intanet wit difren assets {#internet-of-assets} + +NFTs and Ethereum dey solve some palava wey dey di intanet today. As evrytin dey turn digital di more, e dey impotant to replikate di propatis of fisika items like skarsity, unikness, and pruf of ownaship. for way wey one sentral organizashon nor fit kontrol. For eksampol, wit NFTs, yu fit own muzik mp3 wey nor dey spesifik to one kompany's spesifik muzik app, abi yu fit own soshial media handol wey yu fit sell abi swap, but nor fit dey komot from yu by platform provida. + +Si as intanet of NFTs dey compia to di intanet wey plenti of us dey yus today... + +### One kain komparison {#nft-comparison} + +| One NFT intanet | Di intanet tuday | +| --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Na yu get yor own assests! Na only yu fit sell abi swap dem. | Yu go rent asset from one organizashon. | +| NFTs dey digitally unik, nor two NFTs dey di same. | Yu nor fit distinguish one kopy of entity from di original. | +| Ownaship of NFT dey store for di blockchain for anyone to verify. | Ownaship rekords of digital items dey store for servers wey institushons dey kontrol - yu supose biliv dia word for am. | +| NFTs na smart contracts on Ethereum. E mean say wi fit yu dem izy for oda smart contracts and apps on Ethereum! | Companis wey get digital items usually rikwaya dem own "walled garden" infrastructure. | +| Kontent kreators fit sell dem work anywia and dem fit enta one global market. | Kreators dey dipend on di infrastructure and distribushon wey di platfoms wey dem yus provide for dem. Dis platfoms dey always subjet to terms of yus and geographical restricshons. | +| NFT kreators fit retain ownaship rite ova dem own work, and program royaltis directly into di NFT contract. | Platforms, like muzik streaming savis, dey kip di majority of profits from sales wey dem make. | + +## Hau NFTs dey work? {#how-nfts-work} + +Like any token issue on Ethereum, NFTs dey issue by smart contract. Di smart contract dey folow one of several NFT standads (normally ERC-721 abi ERC-1155) wey define di funshon wey di contract get. Di contract fit make ('mint') NFTs and give dem to one spesifik owna. Ownaship dey define for di contract by mappin spesifik NFTs to spesifik address. Di NFT get one ID and metadata normally wey join wit am, and dis one make Di spesifik token dey konfam. + +Wen pesin kreate abi mint one NFT, e mean say dem dey do one funshon inside di smart contract wey go assign one spesifik NFT to dia address. Dis informashon dey store inside di contract's storaj, wey bi part of di blockchain. Di pesin wey kreate di contract fit add extra logik for di contract, for eksampol dem fit limit di total supply abi define royalty wey dem go pay di kreator anytaim pesin dey transfa di token. + +## Wetin NFT dey for? {#nft-use-cases} + +Dem fit yus NFTs for plenti tins like: + +- pruf say yu go event +- proof say pesin finish a kourse +- ownabol items for games +- art wey dey digital +- tokenizin asset wey dey real-world +- pruf of identity for online +- e dey kontrol asess to kontent +- e good for ticketin +- e dey for desentralize intanet domain names +- e dey for kolateral for DeFi + +E fit bi say yu bi artist wey wont shia yor work yusing NFTs, witout luzin kontrol and sakrifisin yor profits to intamediaris. Yu fit kreate one new contrat and specify di nomba of NFTs, dia propatis, and one link to some spesifik artwork. As di artist, yu fit program inside di smart contract di royaltis wey yu supose dey paid (for eksampol, transfa 5% of di sale price give di contract owna anytaim pesin transfa di NFT). Yu fit always pruf say yu kreate di NFTs bikos yu get di wallet wey dey diploy di contract. Yor buyas fit izily pruf say dem get audintik NFT from yor koleshon bikos dem wallet address join wit one token for yor smart contract. Dem fit yus am akross di Ethereum ecosystem, and dem go get konfidens for di audinticity. + +Abi tink about one ticket for sporting event. Just like hau di organizer of one event fit shuse hau many tickets dem wan sell, di kreator of one NFT fit deside hau many replicas wont dey exist. Somtaims dem fit be exact replicas, like 5000 General Admishon ticket. Somtaims e dey mint several wey dey similar wella, but ish one difren smoll, like one ticket wit one assigned seat. Pipol fit buy and sell dem peer-to-peer witout paying ticket handlas and di pesin wey buy go always get asurans for di ticket audinticity as dem shek di contract address. + +For ethereum.org, dem dey yus NFTs to show say pipol don kontribute to awa GitHub repository abi attend kolls, and dem even get awa own NFT domain name. If yu kontribute to ethereum.org, yu fit klaim one POAP NFT. Some crypto meetups don yus POAPs as tickets. [More to dey kontribute](/contributing/#poap). + +![ethereum.org POAP](./poap.png) + +Dis website folow get alternative domain name powered by NFTs, **ethereum.eth**. Our`.org`address dey sentraly manaj by one domain name system (DNS) provida, but ethereum`.eth` don regista on Ethereum via di Ethereum Name Servis (ENS). And na wi own and dey manaj am. [Yu fit shek awa ENS rekord](https://app.ens.domains/name/ethereum.eth) + +[More on ENS](https://app.ens.domains) + + + +### NFT sekurity {#nft-security} + +Ethereum's Sikurity dey kome from Proof-of-stake. Di system dey design to ekonomikally komot bad akshon, e dey make Ethereum tamper-proof. Dis na wetin wey dey make NFTs possibol. Wons di block wey dey kontain yor NFT transakshon don finalize e go kost attacka millions of ETH to shange am. Anyone wey dey run Ethereum software immediately fit sabi dishonest tamperin wey dey wit one NFT, and dis bad pesin go ekonomikally dey penalize and eject. + +Sikurity issues wey rilate to NFTs dey often rilate to phishin skams, vulnerabilitis wey dey smart contracts abi user errors ( such as private key to dey ekspose), wey dey make good wallet sikurity kritical for NFT ownas dem. + + + More on sikurity + + +## Further reading {#further-reading} + +- [One biginna guide to NFTs](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) - _Linda Xiet, January 2020_ +- [EtherscanNFT tracker](https://etherscan.io/nft-top-contracts) +- [ERC-721 token standard](/developers/docs/standards/tokens/erc-721/) +- [ERC-1155 token standard](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/src/content/translations/pl/about/index.md b/public/content/translations/pl/about/index.md similarity index 100% rename from src/content/translations/pl/about/index.md rename to public/content/translations/pl/about/index.md diff --git a/src/content/translations/pl/bridges/index.md b/public/content/translations/pl/bridges/index.md similarity index 100% rename from src/content/translations/pl/bridges/index.md rename to public/content/translations/pl/bridges/index.md diff --git a/src/content/translations/pl/community/code-of-conduct/index.md b/public/content/translations/pl/community/code-of-conduct/index.md similarity index 100% rename from src/content/translations/pl/community/code-of-conduct/index.md rename to public/content/translations/pl/community/code-of-conduct/index.md diff --git a/src/content/translations/pl/community/events/index.md b/public/content/translations/pl/community/events/index.md similarity index 100% rename from src/content/translations/pl/community/events/index.md rename to public/content/translations/pl/community/events/index.md diff --git a/src/content/translations/pl/community/get-involved/index.md b/public/content/translations/pl/community/get-involved/index.md similarity index 100% rename from src/content/translations/pl/community/get-involved/index.md rename to public/content/translations/pl/community/get-involved/index.md diff --git a/src/content/translations/pl/community/grants/index.md b/public/content/translations/pl/community/grants/index.md similarity index 100% rename from src/content/translations/pl/community/grants/index.md rename to public/content/translations/pl/community/grants/index.md diff --git a/src/content/translations/pl/community/language-resources/index.md b/public/content/translations/pl/community/language-resources/index.md similarity index 100% rename from src/content/translations/pl/community/language-resources/index.md rename to public/content/translations/pl/community/language-resources/index.md diff --git a/src/content/translations/pl/community/online/index.md b/public/content/translations/pl/community/online/index.md similarity index 100% rename from src/content/translations/pl/community/online/index.md rename to public/content/translations/pl/community/online/index.md diff --git a/src/content/translations/pl/community/research/index.md b/public/content/translations/pl/community/research/index.md similarity index 100% rename from src/content/translations/pl/community/research/index.md rename to public/content/translations/pl/community/research/index.md diff --git a/public/content/translations/pl/community/support/index.md b/public/content/translations/pl/community/support/index.md new file mode 100644 index 00000000000..cb893dc08be --- /dev/null +++ b/public/content/translations/pl/community/support/index.md @@ -0,0 +1,116 @@ +--- +title: Wsparcie Ethereum +description: Uzyskaj wsparcie w ekosystemie Ethereum. +lang: pl +--- + +# Wsparcie Ethereum {#support} + +## Oficjalne wsparcie Ethereum {#official-support} + +Szukasz oficjalnego wsparcia Ethereum? Pierwszą rzeczą, którą powinieneś wiedzieć, jest to, że Ethereum jest zdecentralizowane. Oznacza to, że żadna centralna organizacja, podmiot lub osoba nie jest właścicielem Ethereum i z tego powodu nie istnieją żadne oficjalne kanały wsparcia. + +Zrozumienie zdecentralizowanej natury Ethereum jest kluczowe, ponieważ każdy, kto twierdzi, że jest oficjalnym wsparciem Ethereum, prawdopodobnie próbuje cię oszukać! Najlepszą ochroną przed oszustami jest edukacja i poważne podejście do kwestii bezpieczeństwa. + + + Bezpieczeństwo Ethereum i zapobieganie oszustwom + + + + Poznaj podstawy Ethereum + + +Pomimo braku oficjalnego wsparcia, wiele grup, społeczności i projektów w całym ekosystemie Ethereum chętnie pomaga, a na tej stronie można znaleźć wiele przydatnych informacji i zasobów. Nadal masz pytania? Dołącz do [Discorda ethereum.org](/discord/), a my postaramy się pomóc. + +## Wsparcie portfela {#wallet-support} + +Masz problemy z portfelem? Większość portfeli ma dedykowane zespoły wsparcia, które mogą pomóc: + +- [MetaMask](https://metamask.zendesk.com/hc/) +- [Argent](https://support.argent.xyz/hc/) +- [MyEtherWallet](https://help.myetherwallet.com/) + +_Nie jest to pełna lista. Potrzebujesz pomocy w znalezieniu wsparcia konkretnego portfela? Dołącz do [Discorda ethereum.org](https://discord.gg/ethereum-org), a my postaramy się pomóc._ + +Szukasz portfela Ethereum? [ Zapoznaj się z naszą pełną listą portfeli Ethereum](/wallets/find-wallet/). + +## Budowanie zdecentralizowanych aplikacji {#building-support} + +Budowanie może być trudne. Oto kilka miejsc skoncentrowanych na rozwoju z doświadczonymi deweloperami Ethereum, którzy chętnie pomogą. + +- [Alchemy University](https://university.alchemy.com/#starter_code) +- [Discord CryptoDevs](https://discord.gg/Z9TA39m8Yu) +- [Ethereum StackExchange](https://ethereum.stackexchange.com/) +- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) +- [Web3 University](https://www.web3.university/) +- [LearnWeb3](https://discord.com/invite/learnweb3) + +Dokumentację i przewodniki dla deweloperów można również znaleźć w naszej sekcji [ Zasoby dla deweloperów Ethereum](/developers/). + +### Narzędzia {#dapp-tooling} + +Czy twoje pytanie dotyczy konkretnego narzędzia, projektu lub biblioteki? Większość projektów posiada serwery czatu lub fora poświęcone wsparciu. + +Oto kilka popularnych przykładów: + +- [Solidity](https://gitter.im/ethereum/solidity/) +- [ethers.js](https://discord.gg/6jyGVDK6Jx) +- [web3.js](https://discord.gg/GsABYQu4sC) +- [Hardhat](https://discord.gg/xtrMGhmbfZ) +- [Truffle](https://discord.gg/8uKcsccEYE) +- [Alchemy](http://alchemy.com/discord) +- [Tenderly](https://discord.gg/fBvDJYR) + +## Uruchamianie węzła {#node-support} + +Jeśli uruchamiasz węzeł lub walidator, oto kilka społeczności, które pomogą Ci zacząć. + +- [Discord EthStaker](https://discord.io/ethstaker) +- [Reddit EthStaker](https://www.reddit.com/r/ethstaker) + +Większość zespołów tworzących klienty Ethereum ma również dedykowane, publiczne przestrzenie, w których można uzyskać wsparcie i zadawać pytania. + +### Klienty wykonawcze {#execution-clients} + +- [Geth](https://discord.gg/FqDzupGyYf) +- [Nethermind](https://discord.gg/YJx3pm8z5C) +- [Besu](https://discord.gg/p8djYngzKN) +- [Erigon](https://github.com/ledgerwatch/erigon/issues) + +### Klienty konsensusu {#consensus-clients} + +- [Prysm](https://discord.gg/prysmaticlabs) +- [Nimbus](https://discord.gg/nSmEH3qgFv) +- [Lighthouse](https://discord.gg/cyAszAh) +- [Teku](https://discord.gg/7hPv2T6) +- [Lodestar](https://discord.gg/aMxzVcr) + +Możesz także [ dowiedzieć się, jak uruchomić węzeł tutaj](/developers/docs/nodes-and-clients/run-a-node/). + +## Najczęściej zadawane pytania (FAQ) {#faq} + +### Wysłałem ETH do niewłaściwego portfela {#wrong-wallet} + +Transakcja wysłana na Ethereum jest nieodwracalna. Niestety, jeśli wysłałeś ETH do niewłaściwego portfela, nie ma sposobu na odzyskanie tych środków. Żadna centralna organizacja, podmiot ani osoba nie jest właścicielem Ethereum, co oznacza, że nikt nie może cofnąć transakcji. Dlatego ważne jest, aby zawsze dokładnie sprawdzać transakcje przed ich wysłaniem. + +### Jak mogę odebrać wygraną w konkursie Ethereum? {#giveaway-scam} + +Konkursy z nagrodami Ethereum to oszustwa mające na celu kradzież twojego ETH. Nie daj się skusić ofertom, które wydają się zbyt piękne, aby były prawdziwe — jeśli wyślesz ETH na adres konkursowy, nie otrzymasz nagrody i nie będziesz w stanie odzyskać swoich środków. + +[Więcej informacji na temat zapobiegania oszustwom](/security/#common-scams) + +### Moja transakcja utknęła {#stuck-transaction} + +Transakcje na Ethereum mogą czasami utknąć, jeśli złożyłeś niższą opłatę transakcyjną niż jest to wymagane ze względu na zapotrzebowanie sieci. Wiele portfeli oferuje opcję ponownego przesłania tej samej transakcji z wyższą opłatą transakcyjną, aby umożliwić przetworzenie transakcji. Alternatywnie możesz anulować oczekującą transakcję, wysyłając transakcję na swój własny adres i używając tego samego nonce, co oczekująca transakcja. + +[Jak przyspieszyć lub anulować oczekującą transakcję w MetaMask](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) + +[Jak anulować oczekujące transakcje Ethereum](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) + +### Jak wydobywać Ethereum? {#mining-ethereum} + +Kopanie Ethereum nie jest już dłużej możliwe. Wydobywanie zostało wyłączone, gdy Ethereum przeszło z proof-of-work na proof-of-stake. Teraz, zamiast górników, Ethereum ma walidatorów. Walidatorzy stakują ETH i otrzymują nagrody za zabezpieczenie sieci. + +### Jak zostać stakerem/walidatorem? {#become-validator} + +Aby zostać walidatorem, musisz zestakować 32 ETH w kontrakcie depozytowym Ethereum i skonfigurować węzeł walidatora. Więcej informacji można znaleźć na naszych[ stronach poświęconych stakingowi](/staking) oraz na[ launchpadzie stakingu](https://launchpad.ethereum.org/). diff --git a/public/content/translations/pl/dao/index.md b/public/content/translations/pl/dao/index.md new file mode 100644 index 00000000000..24a28c8c6d8 --- /dev/null +++ b/public/content/translations/pl/dao/index.md @@ -0,0 +1,165 @@ +--- +title: Zdecentralizowane autonomiczne organizacje (DAO) +description: Przegląd DAO na Ethereum +lang: pl +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: Reprezentacja DAO głosującego nad wnioskiem. +summaryPoint1: Społeczności należące do członków bez scentralizowanego przywództwa. +summaryPoint2: Bezpieczny sposób współpracy z nieznajomymi w internecie. +summaryPoint3: Bezpieczne miejsce, w którym można przeznaczyć środki na określoną sprawę. +--- + +## Czym są DAO? {#what-are-daos} + +DAO to kolektywnie zarządzana organizacja blockchain działająca na rzecz wspólnej misji. + +DAO pozwalają nam pracować z podobnie myślącymi ludźmi na całym świecie bez ufania życzliwemu liderowi, który zarządza funduszami lub operacjami. Nie ma dyrektora generalnego, który mógłby wydawać fundusze według kaprysu, ani dyrektora finansowego, który mógłby manipulować księgami. Zamiast tego zasady oparte na łańcuchu bloków wpisane w kod określają sposób działania organizacji i sposób wydawania funduszy. + +Mają wbudowane skarbce, do których nikt nie ma prawa dostępu bez zgody grupy. Decyzje opierają się na propozycjach i głosowaniu, zapewniając, że każdy w organizacji ma głos, a wszystko odbywa się w sposób przejrzysty w łańcuchu. + +## Dlaczego potrzebujemy DAO? {#why-dao} + +Założenie organizacji z kimś, kto obejmuje fundusze i pieniądze, wymaga dużego zaufania do ludzi, z którymi pracujesz. Jednak trudno jest zaufać komuś, z kim miało się kontakt tylko przez Internet. Z DAO nie musisz ufać nikomu innemu w grupie, tylko kodowi DAO, który jest w 100% przejrzysty i weryfikowalny przez każdego. + +To otwiera tak wiele nowych możliwości globalnej współpracy i koordynacji. + +### Porównanie {#dao-comparison} + +| DAO | Tradycyjna organizacja | +| -------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | +| Zwykle równa i w pełni zdemokratyzowana. | Zwykle hierarchiczna. | +| Wymagane głosowanie zespołu, by wprowadzić zmianę. | W zależności od struktury można jedynie zażądać zmian od stronnictwa lub zaproponować głosowanie. | +| Głosy zostały podliczone, a wynik wdrożony automatycznie, bez zaufanego pośrednika. | Jeśli głosowanie jest ważne, głosy są podliczane wewnętrznie, a wyniki głosowania muszą być obsługiwane ręcznie. | +| Oferowane usługi są obsługiwane automatycznie w sposób zdecentralizowany (np. dystrybucja funduszy filantropijnych). | Wymaga obsługi przez człowieka lub centralnie sterowanej automatyki, podatnej na manipulację. | +| Wszystkie działania są przejrzyste i w pełni publiczne. | Aktywność jest zazwyczaj niepubliczna. | + +### Przykłady DAO {#dao-examples} + +W celu rozwiania niepewności poniżej podano kilka przykładów użycia DAO: + +- Organizacja charytatywna – możesz przyjmować datki od kogokolwiek na świecie i głosować na cele, które chcesz sfinansować. +- Zbiorowa własność – możesz kupić aktywa fizyczne lub cyfrowe, a członkowie mogą głosować nad tym, jak je wykorzystać. +- Przedsięwzięcia i granty – można utworzyć fundusz typu venture capital, który gromadzi kapitał inwestycyjny i głosuje nad przedsięwzięciami, które wesprzeć. Zwrócone pieniądze mogłyby następnie zostać rozdzielone między członków DAO. + +## Jak działa DAO? {#how-daos-work} + +Podstawą DAO jest inteligentny kontrakt, który określa zasady organizacji i kontroluje skarbiec grupy. Gdy kontrakt zostanie wdrożony na Ethereum, nikt nie może zmienić zasad bez wcześniejszego głosowania. Jeśli ktoś spróbuje zrobić coś niezgodnego z zasadami i logiką kodu, to się nie uda. Dlatego, że skarbiec jest zdefiniowany przez inteligentny kontrakt, nikt nie może też wydać pieniędzy bez zgody grupy. Oznacza to, że DAO nie potrzebują organu centralnego. Zamiast tego to grupa podejmuje wspólne decyzje, a wydatki są automatycznie autoryzowane w momencie przejścia głosowania. + +Jest to możliwe, ponieważ inteligentne kontrakty są zabezpieczone przed ingerencją osób niepowołanych po ich wdrożeniu na Ethereum. Nie możesz po prostu edytować kodu (zasad DAO) niepostrzeżenie, ponieważ wszystko jest publiczne. + + + Więcej na temat inteligentnych kontraktów + + +## Ethereum i DAO {#ethereum-and-daos} + +Ethereum jest idealną podstawą dla DAO z wielu powodów: + +- Konsensus własny Ethereum jest rozproszony i ustalony na tyle dla organizacji, aby mogły zaufać sieci. +- Inteligentny kod kontraktu nie może być modyfikowany, kiedy już został wdrożony, nawet przez jego właścicieli. Pozwala to DAO na stosowanie zasad, z którymi został zaprogramowany. +- Inteligentne kontrakty mogą wysyłać/odbierać środki. Bez tego byłby ci potrzebny zaufany pośrednik do zarządzania funduszami grupy (DAO). +- Społeczność Ethereum okazała się bardziej oparta na współpracy niż na konkurencyjności, co pozwoliło na szybkie pojawienie się najlepszych praktyk i systemów wsparcia. + +## Zarządzanie DAO {#dao-governance} + +Istnieje wiele czynników związanych z zarządzaniem DAO, takich jak sposób głosowania i składania wniosków. + +### Oddelegowywanie {#governance-delegation} + +Oddelegowywanie w DAO jest wersją demokracji przedstawicielskiej. Posiadacze tokenów delegują głosy użytkownikom, którzy się nominują i zobowiązują do kierowania protokołem i pozostawania na bieżąco z informacjami. + +#### Znany przykład {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) – posiadacze tokenów ENS mogą delegować swoje głosy zaangażowanym członkom społeczności, aby ich reprezentowali. + +### Automatyczne zarządzanie transakcjami {#governance-example} + +W wielu DAO transakcje będą automatycznie wykonywane, jeśli kworum członków zagłosuje za potwierdzeniem. + +#### Znany przykład {#governance-example} + +[Nouns](https://nouns.wtf) – w Nouns DAO transakcja jest automatycznie realizowana, jeżeli kworum głosów zostanie osiągnięte i większość głosów zostanie przyjęta, o ile nie zostanie wetowana przez założycieli. + +### Wielostronne zarządzanie {#governance-example} + +Podczas gdy DAO mogą mieć tysiące członków posiadających prawo głosu, fundusze mogą żyć w portfelu udostępnianym przez 5–20 aktywnych członków społeczności, którzy są zaufani i zazwyczaj doxxed (publiczne tożsamości znane społeczności). Po głosowaniu sygnatariusze multisig wykonują wolę społeczności. + +## Prawa DAO {#dao-laws} + +W 1977 r. w Wyoming powstały pierwsze spółki z ograniczoną odpowiedzialnością (LLC), które chronią przedsiębiorców i ograniczają ich odpowiedzialność. Ostatnio wprowadziły one ustawę DAO, która ustanawia status prawny DAO. Obecnie w Wyoming, Vermont i na Wyspach Dziewiczych obowiązuje w pewnej formie prawo DAO. + +### Znany przykład {#law-example} + +[CityDAO](https://citydao.io) – CityDAO użył prawa DAO Wyoming, aby kupić 40 hektarów ziemi w pobliżu Parku Narodowego Yellowstone. + +## Członkostwo DAO {#dao-membership} + +Istnieją różne modele członkostwa w DAO. Członkostwo może decydować o tym, w jaki sposób działa głosowanie i inne kluczowe części DAO. + +### Członkostwo oparte na tokenach {#token-based-membership} + +Zazwyczaj w pełni bezpodstawne, w zależności od użytego tokena. W większości te tokeny zarządzania mogą być przedmiotem handlu bez pozwolenia na zdecentralizowaną wymianę. Inne muszą być zdobywane poprzez zapewnienie płynności lub innego proof of work. Tak czy inaczej, posiadanie tokena zapewnia dostęp do głosowania. + +_Zwykle używane do zarządzania szerokimi zdecentralizowanymi protokołami i/lub tokenami._ + +#### Znany przykład {#token-example} + +[MakerDAO](https://makerdao.com) – token MakerDAO-a jest powszechnie dostępny na zdecentralizowanych giełdach i każdy może kupić siłę głosu w przyszłości protokołu Makera. + +### Członkostwo oparte na akcjach {#share-based-membership} + +DAO oparte na akcjach są bardziej dozwolone, ale nadal dość otwarte. Każdy przyszły członek może złożyć wniosek o przystąpienie do DAO, oferując zwykle hołd pewnej wartości w postaci tokenów lub pracy. Akcje reprezentują bezpośrednie prawo głosu i własność. Członkowie mogą w każdej chwili zrezygnować, zabierając ze sobą swój proporcjonalny udział w majątku. + +_Zwykle używane w przypadku bardziej zbliżonych organizacji, takich jak organizacje charytatywne, spółdzielnie pracy i kluby inwestycyjne. Może również zarządzać protokołami i tokenami._ + +#### Znany przykład {#share-example} + +[MolochDAO](http://molochdao.com/) – MolochDAO koncentruje się na finansowaniu projektów Ethereum. Wymagają one wniosku o członkostwo, tak aby grupa mogła ocenić, czy ma Pan/Pani kapitał i wiedzę specjalistyczną niezbędną do dokonania świadomych ocen dotyczących potencjalnych grantów. Nie można kupić dostępu do DAO na otwartym rynku. + +### Członkostwo oparte na reputacji {#reputation-based-membership} + +Reputacja stanowi dowód udziału i przyznania uprawnień głosu w DAO. W przeciwieństwie do tokena lub członkostwa opartego na współdzieleniu, DAO oparte na reputacji nie przenoszą własności na współtwórców. Reputacja nie może być kupowana, przekazywana lub delegowana; członkowie DAO muszą zdobywać reputację poprzez uczestnictwo. Głosowanie w łańcuchu jest bezpodstawne, a przyszli członkowie mogą swobodnie zgłaszać propozycje przystąpienia do DAO i prosić o uzyskanie reputacji i żetonów jako nagrody w zamian za ich wkład. + +_Zwykle używane do zdecentralizowanego rozwoju protokołów i aplikacji oraz zarządzania nimi, ale również dobrze dostosowane do różnych organizacji takich jak organizacje charytatywne, spółdzielnie pracy, kluby inwestycyjne itp._ + +#### Znany przykład {#reputation-example} + +[DXdao](https://DXdao.eth.link) – DXdao jest niezależną globalną zbiorowością społeczną, od 2019 r. tworzącą zdecentralizowane protokoły i aplikacje i zarządzającą nimi. Umożliwia ona koordynację i zarządzanie środkami finansowymi, opierając się na reputacji oraz holograficznym konsensusie, co oznacza, że nikt nie może wkupić się we wpływanie na ich przyszłość. + +## Dołącz / rozpocznij DAO {#join-start-a-dao} + +### Dołącz do DAO {#join-a-dao} + +- [Ethereum Społeczność DAOs](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [Lista DAOHaus z DAOs](https://app.daohaus.club/explore) +- [Tally.xyz lista DAOs](https://www.tally.xyz) + +### Rozpocznij DAO {#start-a-dao} + +- [Przywołaj DAO z DAOHaus](https://app.daohaus.club/summon) +- [Uruchom gubernatora DAO z Tally](https://www.tally.xyz/add-a-dao) +- [Utwórz DAO napędzane Aragonem](https://aragon.org/product) +- [Rozpocznij kolonię](https://colony.io/) +- [Utwórz DAO z holograficznym konsensusem DAO-stack](https://alchemy.daostack.io/daos/create) + +## Przeczytaj także {#further-reading} + +### Artykuły DAO {#dao-articles} + +- [Co to jest DAO?](https://aragon.org/dao) - [Aragon](https://aragon.org/) +- [Podręcznik DAO](https://daohandbook.xyz) +- [House of DAOs](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) +- [Co to jest DAO i co to jest?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) +- [Jak założyć społeczność cyfrową w oparciu o DAO?](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) +- [Co to jest DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) +- [Co to jest konsensus holograficzny?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) +- [DAO nie są przedsiębiorstwami, w których decentralizacja w organizacjach autonomicznych ma znaczenie dla Vitalik.](https://vitalik.ca/general/2022/09/20/daos.html) +- [DAO, DAC, DA i więcej: Niekompletny przewodnik po terminologii](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Ethereum Blog](https://blog.ethereum.org) + +### Materiały wideo {#videos} + +- [Czym jest DAO w kryptowalutach?](https://youtu.be/KHm0uUPqmVE) +- [Czy DAO może zbudować miasto?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/public/content/translations/pl/decentralized-identity/index.md b/public/content/translations/pl/decentralized-identity/index.md new file mode 100644 index 00000000000..17739bd2286 --- /dev/null +++ b/public/content/translations/pl/decentralized-identity/index.md @@ -0,0 +1,185 @@ +--- +title: Zdecentralizowana tożsamość +description: Czym jest zdecentralizowana tożsamość i dlaczego jest ważna? +lang: pl +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: /eth-gif-cat.png +summaryPoint1: W tradycyjnych systemach tożsamościwydawanie, utrzymywanie i kontrola identyfikatorów są scentralizowane. +summaryPoint2: Tożsamość zdecentralizowana usuwa zależność od scentralizowanych podmiotów trzecich. +summaryPoint3: Dzięki crypto użytkownicy, po raz kolejny, mają teraz narzędzia do wydawania i kontrolowania własnych identyfikatorów i zaświadczeń. +--- + +Tożsamość stanowi dzisiaj podstawę praktycznie każdego aspektu życia. Korzystając z usług internetowych, otwierając konto bankowe, głosując w wyborach, kupując nieruchomości, zatrudniając się — zawsze musisz udowodnić swoją tożsamość. + +Jednak tradycyjne systemy zarządzania tożsamością od dawna polegają na scentralizowanych pośrednikach, którzy wydają, przechowują i kontrolują Twoje identyfikatory oraz [poświadczenia](#what-are-attestations). Oznacza to, że nie możesz kontrolować informacji związanych z tożsamością ani decydować, kto ma dostęp do informacji umożliwiających identyfikację osoby (PII) i jak duży jest ten dostęp. + +Te problemy rozwiązują zdecentralizowane systemy tożsamości oparte na publicznych łańcuchach bloków, takie jak Ethereum. Tożsamość zdecentralizowana umożliwia jednostkom zarządzanie informacjami związanymi z ich tożsamością. Dzięki zdecentralizowanym rozwiązaniom w zakresie tożsamości możesz _samodzielnie_ tworzyć identyfikatory oraz żądać swoich poświadczeń i przechowywać je bez polegania na organach centralnych, takich jak dostawcy usług lub rządy. + +## Co to jest tożsamość? {#what-is-identity} + +Tożsamość oznacza odczuwanie przez jednostkę własnego „ja”, określonego przez unikalne cechy. Tożsamość odnosi się do bytu, _odrębnej_ istoty ludzkiej. Tożsamość może odnosić się również do innych podmiotów, takich jak organizacja czy władza. + +## Co to są identyfikatory? {#what-are-identifiers} + +Identyfikator jest informacją, która wskazuje określoną lub określone tożsamości. Najczęstsze identyfikatory to: + +- Nazwa +- Numer ubezpieczenia społecznego/numer identyfikacji podatkowej (NIP) +- Numer telefonu komórkowego +- Data i miejsce urodzenia +- Cyfrowe dane identyfikacyjne, np. adresy e-mail, nazwy użytkowników, awatary + +Te tradycyjne przykłady identyfikatorów są wydawane, przechowywane i kontrolowane przez jednostki centralne. Potrzebujesz pozwolenia od swojego rządu, aby zmienić swoje imię i nazwisko, a od platformy mediów społecznościowych, aby zmienić swój identyfikator. + +## Co to są atesty? {#what-are-attestations} + +Poświadczenie jest oświadczeniem złożonym przez jeden podmiot na temat innego podmiotu. Jeśli mieszkasz w Stanach Zjednoczonych, prawo jazdy wydane przez departament pojazdów mechanicznych (jeden podmiot) potwierdza, że inny podmiot (Ty) jest uprawniony do prowadzenia samochodu. + +Poświadczenia to nie to samo, co identyfikatory. Poświadczenia _zawierają_ identyfikatory odnoszące się do określonej tożsamości oraz oświadczenie dotyczące atrybutu związanego z tą tożsamością. Tak więc prawo jazdy zawiera identyfikatory (nazwisko, data urodzenia, adres), ale jest również poświadczeniem o prawie do prowadzenia pojazdu. + +### Co to są zdecentralizowane identyfikatory? {#what-are-decentralized-identifiers} + +Tradycyjne identyfikatory, takie jak nazwa prawna lub adres e-mail, zależą od osób trzecich – rządów czy dostawców poczty elektronicznej. Decentralizowane identyfikatory (DID) są inne — nie są wydawane, zarządzane ani kontrolowane przez jakikolwiek podmiot centralny. + +Zdecentralizowane identyfikatory są wydawane, przechowywane i kontrolowane przez jednostki. [Konto Ethereum](/developers/docs/accounts/) jest przykładem zdecentralizowanego identyfikatora. Możesz utworzyć tyle kont, ile chcesz, nie pytając nikogo o zgodę i bez konieczności przechowywania ich w centralnym rejestrze. + +Zdecentralizowane identyfikatory są przechowywane w rozproszonych księgach (łańcuchach bloków) lub sieciach peer-to-peer. Dzięki temu DID-y są [globalnie unikalne, rozwiązywalne z wysoką dostępnością i kryptograficznie weryfikowalne](https://w3c-ccg.github.io/did-primer/). Zdecentralizowany identyfikator może być powiązany z różnymi podmiotami: z pojedynczymi osobami, organizacjami lub instytucjami rządowymi. + +## Co sprawia, że zdecentralizowane identyfikatory są możliwe? {#what-makes-decentralized-identifiers-possible} + +### 1. Infrastruktura klucza publicznego (PKI) {#public-key-infrastructure} + +Infrastruktura klucza publicznego (PKI) to środek bezpieczeństwa informacji, który generuje dla podmiotu [klucz publiczny](/glossary/#public-key) i [klucz prywatny](/glossary/#private-key). Kryptografia klucza publicznego jest wykorzystywana w sieciach łańcuchów bloków do uwierzytelniania tożsamości użytkowników i udawadniania własności zasobów cyfrowych. + +Niektóre zdecentralizowane identyfikatory, takie jak konto Ethereum, mają klucze publiczne i prywatne. Klucz publiczny identyfikuje kontrolera konta, a klucze prywatne mogą podpisywać i odszyfrowywać wiadomości dla tego konta. PKI zapewnia dowody potrzebne do uwierzytelniania podmiotów i zapobiegania podszywaniu się i używaniu fałszywych tożsamości, wykorzystując [podpisy kryptograficzne](https://andersbrownworth.com/blockchain/public-private-keys/) do weryfikacji wszystkich twierdzeń. + +### 2. Zdecentralizowane magazyny danych {#decentralized-datastores} + +Łańcuch bloków służy jako weryfikowalny rejestr danych: otwarte, niezaufane i zdecentralizowane repozytorium informacji. Istnienie publicznych łańcuchów bloków eliminuje potrzebę przechowywania identyfikatorów w scentralizowanych rejestrach. + +Aby potwierdzić ważność zdecentralizowanego identyfikatora, można wyszukać w łańcuchu bloków powiązany klucz publiczny. Jest to istotna różnica w porównaniu do tradycyjnych identyfikatorów, które wymagają uwierzytelniania stron trzecich. + +## W jaki sposób zdecentralizowane identyfikatory i poświadczenia umożliwiają zdecentralizowaną tożsamość? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} + +Zdecentralizowana tożsamość zakłada, że informacje związane z tożsamością powinny być samodzielnie kontrolowane, prywatne i przenośne, a zdecentralizowane identyfikatory i poświadczenia są podstawowymi elementami składowymi. + +W kontekście zdecentralizowanej tożsamości poświadczenia (znane również jako [weryfikowalne dane uwierzytelniające](https://www.w3.org/TR/vc-data-model/)) to odporne na manipulacje, możliwe do zweryfikowania kryptograficzne oświadczenia wydawcy. Każde poświadczenie lub możliwe do zweryfikowania dane uwierzytelniające podmiot (np. organizację) jest powiązane z odpowiednim identyfikatorem DID. + +Ponieważ identyfikatory DID są przechowywane w łańcuchu bloków, każdy może zweryfikować prawidłowość poświadczenia poprzez porównanie z DID wystawcy na Ethereum. Zasadniczo łańcuch bloków Ethereum działa jak globalny katalog umożliwiający weryfikację identyfikatorów DID powiązanych z określonymi podmiotami. + +Dzięki zdecentralizowanym identyfikatorom poświadczenia są niezależne i weryfikowalne. Nawet jeśli wydawca już nie istnieje, posiadacz zawsze ma dowód pochodzenia i prawidłowości poświadczenia. + +Zdecentralizowane identyfikatory mają również kluczowe znaczenie dla ochrony prywatności danych osobowych, z względu na zdecentralizowaną tożsamość. Jeśli na przykład osoba fizyczna przedstawia dowód poświadczenia (prawo jazdy), strona weryfikująca nie musi sprawdzać prawidłowości informacji w dowodzie. Zamiast tego weryfikator potrzebuje jedynie gwarancji kryptograficznych autentyczności poświadczenia i tożsamości organizacji, która je wydała, aby ustalić, czy dowód jest prawidłowy. + +## Rodzaje poświadczeń w zdecentralizowanej tożsamości {#types-of-attestations-in-decentralized-identity} + +Sposób, w jaki informacje o poświadczeniach są przechowywane i pobierane w ekosystemie tożsamości opartym na Ethereum, różni się od tradycyjnego zarządzania tożsamościami. Oto przegląd różnych podejść do wydawania, przechowywania i weryfikacji poświadczeń w zdecentralizowanych systemach tożsamości: + +### Poświadczenia poza łańcuchem {#off-chain-attestations} + +Jedną z obaw związanych z przechowywaniem poświadczeń w łańcuchu jest to, że mogą one zawierać informacje, które osoby fizyczne chcą zachować w tajemnicy. Publiczny charakter łańcucha bloków Ethereum sprawia, że jest on nieprzydatny do przechowywania takich poświadczeń. + +Rozwiązaniem jest wydawanie poświadczeń przechowywanych przez użytkowników poza łańcuchem, w portfelach cyfrowych, ale podpisanych identyfikatorem DID wydawcy przechowywanym w łańcuchu. Te poświadczenia są zakodowane jako [tokeny sieciowe JSON](https://en.wikipedia.org/wiki/JSON_Web_Token) i zawierają cyfrowy podpis wystawcy, co umożliwia łatwą weryfikację oświadczeń poza łańcuchem. + +Oto hipotetyczny scenariusz opisujący, jak działają poświadczenia poza łańcuchem: + +1. Uniwersytet (wydawca) generuje poświadczenie (cyfrowy certyfikat akademicki), podpisuje je swoimi kluczami i wydaje Bobowi (właścicielowi tożsamości). + +2. Bob ubiega się o pracę i chce udowodnić swoje kwalifikacje akademickie pracodawcy, dlatego udostępnia poświadczenie z mobilnego portfela. Przedsiębiorstwo (weryfikator) może następnie potwierdzić prawidłowość poświadczenia poprzez sprawdzenie DID wystawcy (tj. jego klucza publicznego na Ethereum). + +### Poświadczenia poza łańcuchem, z trwałym dostępem {#offchain-attestations-with-persistent-access} + +W takim układzie poświadczenia są przekształcane w pliki JSON i przechowywane poza łańcuchem (najlepiej na platformie [zdecentralizowanej pamięci masowej w chmurze](/developers/docs/storage/), takiej jak IPFS lub Swarm). Jednak plik JSON jest przechowywany w łańcuchu i powiązany z DID za pośrednictwem rejestru w łańcuchu. Powiązanym DID może być albo wystawca poświadczenia, albo odbiorca. + +Takie podejście umożliwia uzyskiwanie przez poświadczenia trwałości opartej na łańcuchu bloków, przy jednoczesnym zachowaniu zaszyfrowanych i weryfikowalnych informacji o oświadczeniach. Umożliwia to również selektywne ujawnienie, ponieważ posiadacz klucza prywatnego może odszyfrować informacje. + +### Poświadczenia w łańcuchu {#onchain-attestations} + +Poświadczenia w łańcuchu są przechowywane w [inteligentnych kontraktach](/developers/docs/smart-contracts/) w łańcuchu bloków Ethereum. Inteligentny kontrakt (działający jako rejestr) mapuje poświadczenie do odpowiedniego zdecentralizowanego identyfikatora w łańcuchu (klucza publicznego). + +Oto przykład pokazujący, w jaki sposób poświadczenia mogą działać w praktyce: + +1. Firma (XYZ Corp) planuje sprzedać akcje własnościowe za pomocą inteligentnego kontraktu, ale szuka tylko nabywców, którzy przeszli podstawową weryfikację. + +2. XYZ Corp może zlecić firmie wykonującej podstawowe weryfikacje wystawianie poświadczeń w łańcuchu na Ethereum. To poświadczenie potwierdza, że dana osoba przeszła podstawową weryfikację, ale bez ujawniania jakichkolwiek danych osobowych. + +3. Inteligentny kontrakt sprzedaży akcji może sprawdzić kontrakt rejestracji dla tożsamości sprawdzanych nabywców i określić, kto jest uprawniony do zakupu akcji. + +### Tokeny Soulbound i tożsamość {#soulbound} + +[Tokeny Soulbound](https://vitalik.ca/general/2022/01/26/soulbound.html) (niezbywalne NFT) mogą być używane do zbierania informacji unikatowych dla określonego portfela. W ten sposób tworzy się unikatową w łańcuchu tożsamość związaną z określonym adresem Ethereum, która może obejmować tokeny reprezentujące osiągnięcia (np. ukończenie określonego kursu online lub przekroczenie progowego wyniku w grze) albo zaangażowanie w działania społeczności. + +## Zalety zdecentralizowanej tożsamości {#benefits-of-decentralized-identity} + +1. Zdecentralizowana tożsamość zwiększa indywidualną kontrolę nad informacjami identyfikacyjnymi. Zdecentralizowane identyfikatory i poświadczenia można weryfikować bez polegania na scentralizowanych organach i usługach osób trzecich. + +2. Rozwiązania zdecentralizowanej tożsamości ułatwiają niezawodną, bezproblemową i chroniącą prywatność metodę weryfikacji i zarządzania tożsamością użytkownika. + +3. Zdecentralizowana tożsamość wykorzystuje technologię łańcucha bloków, która tworzy zaufanie między różnymi stronami i zapewnia gwarancje kryptograficzne potwierdzające prawidłowość poświadczeń. + +4. Zdecentralizowana tożsamość sprawia, że dane identyfikacyjne są przenośne. Użytkownicy przechowują poświadczenia i identyfikatory w portfelu mobilnym i mogą dzielić się z wybraną przez siebie stroną. Zdecentralizowane identyfikatory i poświadczenia nie są zablokowane w bazie danych organizacji wydającej. + +5. Zdecentralizowana tożsamość powinna dobrze funkcjonować z powstającymi technologiami o zerowej wiedzy, które umożliwią jednostkom udowodnienie, że są właścicielami lub zrobiły coś, nie ujawniając, co to jest. Mógłby to być znakomity sposób na połączenie zaufania i prywatności w takich zastosowaniach jak głosowanie. + +6. Zdecentralizowana tożsamość umożliwia mechanizmom obrony przed atakami typu Sybil identyfikację, kiedy jeden człowiek udaje wielu ludzi, aby grać lub spamować jakiś system. + +## Sposoby wykorzystywania zdecentralizowanej tożsamości {#decentralized-identity-use-cases} + +Zdecentralizowana tożsamość ma wiele potencjalnych zastosowań: + +### 1. Uniwersalne logowania {#universal-dapp-logins} + +Zdecentralizowana tożsamość może pomóc w zastąpieniu logowania opartego na hasłach [zdecentralizowanym uwierzytelnianiem](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). Dostawcy usług mogą wydawać użytkownikom poświadczenia, które można przechowywać w portfelu Ethereum. Przykładowym poświadczeniem może być token [NFT](/nft/) przyznający posiadaczowi dostęp do społeczności internetowej. + +Funkcja [logowania z Ethereum](https://login.xyz/) umożliwiłaby wtedy serwerom potwierdzenie konta Ethereum użytkownika i pobranie wymaganego poświadczenia z adresu jego konta. Oznacza to, że użytkownicy mogą uzyskać dostęp do platform i stron internetowych bez konieczności zapamiętywania długich haseł, co znacząco poprawia komfort działania w Internecie. + +### 2. Uwierzytelnianie KYC {#kyc-authentication} + +Korzystanie z wielu usług online wymaga od osób fizycznych dostarczenia poświadczeń i uwierzytelnień, takich jak prawo jazdy lub dowód osobisty. Podejście to jest jednak problematyczne, ponieważ informacje o użytkownikach prywatnych mogą być zagrożone, a usługodawcy nie mogą zweryfikować autentyczności poświadczenia. + +Zdecentralizowana tożsamość umożliwia firmom pominięcie konwencjonalnych procesów [KYC (Know-Your-Customer)](https://en.wikipedia.org/wiki/Know_your_customer) i uwierzytelnianie tożsamości użytkowników za pomocą weryfikowalnych poświadczeń. Zmniejsza to koszty zarządzania tożsamością i zapobiega stosowaniu fałszywej dokumentacji. + +### 3. Głosowanie i społeczności internetowe {#voting-and-online-communities} + +Głosowanie online i media społecznościowe to dwie nowatorskie aplikacje z wykorzystaniem zdecentralizowanej tożsamości. Systemy głosowania on-line są podatne na manipulacje, zwłaszcza jeśli złośliwe podmioty tworzą fałszywe tożsamości w celu oddania głosu. Zwracanie się do osób fizycznych o przedstawienie poświadczeń w łańcuchu może poprawić integralność procesów głosowania online. + +Zdecentralizowana tożsamość może pomóc w tworzeniu społeczności internetowych, które są wolne od fałszywych kont. Na przykład każdy użytkownik może być zmuszony do uwierzytelniania swojej tożsamości za pomocą systemu identyfikacji w łańcuchu, takiego jak usługa Ethereum Name Service, zmniejszając możliwość tworzenia botów. + +### 4. Ochrona przed atakami typu Sybil {#sybil-protection} + +Ataki typu Sybil polegają na tym, że pojedynczy człowiek oszukuje system, aby ten mylnie uznał, że jest wieloma osobami, w celu zwiększenia swoich wpływów. [Aplikacje przyznające dotacje](https://gitcoin.co/grants/), które używają [głosowania kwadratowego](https://www.radicalxchange.org/concepts/plural-voting/), są podatne na ataki typu Sybil, ponieważ wartość dotacji wzrasta, gdy więcej osób na nią głosuje, zachęcając użytkowników do podzielenia swojego wkładu na wiele tożsamości. Zdecentralizowane tożsamości pomagają temu zapobiec, zwiększając obciążenie każdego uczestnika, aby udowodnić, że naprawdę jest człowiekiem, choć często bez konieczności ujawniania konkretnych informacji prywatnych. + +## Zastosowania zdecentralizowanej tożsamości {#use-decentralized-identity} + +Istnieje wiele ambitnych projektów wykorzystujących Ethereum jako podstawę zdecentralizowanych rozwiązań w zakresie tożsamości: + +- **[Ethereum Name Service (ENS)](https://ens.domains/)** — _zdecentralizowany system nazewnictwa w łańcuchu, odczytywalnych maszynowo, takich jak adresy portfeli Ethereum, skróty treści i metadane._ +- **[SpruceID](https://www.spruceid.com/)** — _zdecentralizowany projekt tożsamości, który pozwala użytkownikom kontrolować tożsamość cyfrową za pomocą kont Ethereum i profili ENS, zamiast polegać na usługach stron trzecich._ +- **[Ethereum Attestation Service (EAS)](https://attest.sh/)** — _ Zdecentralizowany ledger/protokół umożliwiający tworzenie poświadczeń o dowolnym elemencie w łańcuchu lub poza nim._ +- **[Proof of Humanity (lub PoH)](https://www.proofofhumanity.id)** — _ system weryfikacji tożsamości społecznościowej oparty na Ethereum._ +- **[BrightID](https://www.brightid.org/)** — _sieć zdecentralizowanych tożsamości społecznościowych typu open source. Jej celem jest zreformowanie weryfikacji tożsamości poprzez tworzenie i analizę wykresu społecznego._ +- **[Proof-of-personhood Passport](https://proofofpersonhood.com/)** — _zdecentralizowany agregator tożsamości cyfrowych._ + +## Dalsza lektura {#further-reading} + +### Artykuły {#articles} + +- [Wykorzystanie łańcucha bloków: łańcuch bloków w tożsamości cyfrowej](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ +- [Co to jest Ethereum ERC725? Samodzielne zarządzanie tożsamością w łańcuchu bloków](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Sam Town_ +- [Jak łańcuch bloków może rozwiązać problem cyfrowej tożsamości](https://time.com/6142810/proof-of-humanity/) — _Andrew R. Chow_ +- [Co to jest zdecentralizowana tożsamość i dlaczego warto się nią zajmować?](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ + +### Materiały wideo {#videos} + +- [Zdecentralizowana tożsamość (oraz dodatkowa sesja transmisji na żywo)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _świetny film szkoleniowy na temat zdecentralizowanej tożsamości autorstwa Andreasa Antonopoulosa._ +- [Logowanie za pomocą Ethereum i zdecentralizowanej tożsamości za pomocą Ceramic, IDX, React i 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _samouczek YouTube pokazujący, jak zbudować system zarządzania tożsamością do tworzenia, odczytywania i aktualizowania profilu użytkownika przy użyciu portfela Ethereum autorstwa Nadera Dabita._ +- [BrightID — zdecentralizowana tożsamość w Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _odcinek podcastu Bankless omawiający BrightID, zdecentralizowane rozwiązanie tożsamości dla Ethereum._ +- [Internet poza łańcuchem: zdecentralizowana tożsamość i weryfikowalne dane uwierzytelniające](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — prezentacja EthDenver 2022 autorstwa Evina McMullena. + +### Społeczności {#communities} + +- [Sojusz ERC-725 na GitHub](https://github.com/erc725alliance) — _zwolennicy standardu ERC725 do zarządzania tożsamością w łańcuchu bloków Ethereum._ +- [Serwer Discord SpruceID](https://discord.com/invite/Sf9tSFzrnt) — _społeczność dla entuzjastów i programistów pracujących nad logowaniem za pomocą Ethereum._ +- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _społeczność programistów uczestniczących w budowaniu struktury weryfikowalnych danych dla aplikacji._ diff --git a/public/content/translations/pl/defi/index.md b/public/content/translations/pl/defi/index.md new file mode 100644 index 00000000000..3ed5cad1322 --- /dev/null +++ b/public/content/translations/pl/defi/index.md @@ -0,0 +1,352 @@ +--- +title: Zdecentralizowane finanse (DeFi) +description: Przegląd DeFi na Ethereum +lang: pl +template: use-cases +emoji: ":money_with_wings:" +image: /use-cases/defi.png +alt: Logo ETH wykonane z klocków lego. +sidebarDepth: 2 +summaryPoint1: Globalna, otwarta alternatywa dla obecnego systemu finansowego. +summaryPoint2: Produkty, które umożliwiają pożyczanie, oszczędzanie, inwestowanie, handlowanie i nie tylko. +summaryPoint3: Technologia oparta na open source, przy pomocy której każdy może programować. +--- + +DeFi jest otwartym globalnym systemem finansowym stworzonym dla ery Internetu — alternatywą dla obecnego systemu, który jest nieprzejrzysty, ściśle kontrolowany oraz utrzymywany przez dziesięciolecia z wykorzystaniem przestarzałej infrastruktury i procesów. DeFi umożliwia użytkownikom kontrolę i śledzenie swoich pieniędzy. Zapewnia dostęp do globalnych rynków i alternatywę dla lokalnej waluty i opcji bankowych. Produkty DeFi udostępniają usługi finansowe każdemu, kto ma dostęp do Internetu. W dużej mierze należą do swoich użytkowników i są przez nich utrzymywane. Do tej pory przez aplikacje DeFi przepłynęły kryptowaluty o wartości kilkudziesięciu miliardów dolarów i ta kwota rośnie z każdym dniem. + +## Co to jest DeFi? {#what-is-defi} + +DeFi to określenie zestawu finansowych produktów i usług, które są otwarte dla każdego, kto ma dostęp do Ethereum — wystarczy połączenie z Internetem. Dzięki DeFi rynki są zawsze otwarte i nie ma scentralizowanych władz, które mogłyby zablokować płatności lub odmówić dostępu do czegokolwiek. Usługi, które wcześniej były powolne i narażone na ryzyko błędu ludzkiego, teraz są automatyczne i bezpieczniejsze, ponieważ są obsługiwane przez kod, który każdy może sprawdzić i przeanalizować. + +Jest tam kwitnąca gospodarka kryptowalutowa oSearch TMut, gdzie można pożyczać, kredytować, stosować długo- i krótkoterminowo, zarabiać na odsetkach i nie tylko. Argentyńczycy posługujący się kryptowalutami wykorzystali DeFi, aby uciec przed paraliżującą inflacją. Firmy zaczęły płacić swoim pracownikom wynagrodzenie, obliczając je w czasie rzeczywistym. Niektórzy ludzie biorą oraz spłacają pożyczki warte nawet miliony dolarów bez konieczności osobistej identyfikacji. + + + +## DeFi a tradycyjne finanse {#defi-vs-tradfi} + +Jednym z najlepszych sposobów na dostrzeżenie potencjału DeFi jest zrozumienie istniejących dziś problemów. + +- Wielu ludzi nie ma możliwości korzystania z bankowości i co za tym idzie — z usług finansowych. +- Brak dostępu do usług finansowych może uniemożliwić znalezienie zatrudnienia. +- Usługodawcy finansowi mogą zablokować Twoje wynagrodzenie. +- Ukrytą opłatą za usługi finansowe są Twoje dane osobowe. +- Rządy i scentralizowane instytucje mogą zamknąć rynki finansowe w dowolnym momencie. +- Godziny handlu są często ograniczone do godzin pracy poszczególnych stref czasowych. +- Przelewy pieniężne mogą trwać nawet kilka dni z powodu procesów zatwierdzania przez pracowników danej instytucji. +- Za korzystanie z usług finansowych płacimy prowizję, którą instytucje pobierają na potrzeby swojego funkcjonowania. + +### Porównanie {#defi-comparison} + +| DeFi | Tradycyjne finanse | +| -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | +| Twoje pieniądze rzeczywiście należą do Ciebie. | Twoje pieniądze są przetrzymywane przez korporacje. | +| Kontrolujesz, gdzie trafiają Twoje pieniądze i jak je wydajesz. | Musisz ufać firmom, że rozsądnie zarządzają Twoimi pieniędzmi i np. nie pożyczają ich ryzykownym kredytobiorcom. | +| Przelewy środków trwają kilka minut. | Płatności mogą trwać kilka dni z powodu czynnika ludzkiego. | +| Transakcje są pseudoanonimowe. | Cała aktywność finansowa jest ściśle związana z Twoją tożsamością. | +| Usługi DeFi są dostępne dla każdego. | Musisz złożyć wniosek o korzystanie z usług finansowych. | +| Rynki są zawsze otwarte. | Rynki zamykają się, gdyż do ich obsługi potrzebni są ludzi, a oni potrzebują przerw. | +| Wszystko opiera się na transparentności — każdy ma wgląd do kodu źródłowego i może sprawdzić, jak dokładnie działa system. | Instytucje finansowe utajniają historie swojej działalności: nie możesz sprawdzić, komu pożyczają, ile, kiedy, jak zarządzają aktywami itp. | + + + Odkryj aplikacje DeFi + + +## Wszystko zaczęło się od bitcoina... {#bitcoin} + +Bitcoin był pod wieloma względami pierwszą aplikacją DeFi. Bitcoin pozwala naprawdę posiadać i kontrolować wartość oraz wysyłać ją w dowolne miejsce na świecie. Jest to możliwe dzięki temu, że duża liczba osób, które sobie nie ufają, może uzgodnić księgę rachunkową bez potrzeby korzystania z zaufanego pośrednika. Bitcoin jest otwarty dla każdego i nikt nie ma prawa zmienić zasad jego działania. Zasady funkcjonowania bitcoinów, takie jak otwartość i transparentność, są wpisane do kodu źródłowego. Inaczej jest w przypadku tradycyjnych finansów, gdzie rządy mogą dodrukowywać pieniądze, co dewaluuje Twoje oszczędności, a instytucje mogą zamknąć rynki. + +Ethereum opiera się na tych zasadach. Podobnie jak w przypadku Bitcoin, są one ściśle określone i każdy może się z nimi zapoznać. Ale powoduje to również, że te cyfrowe pieniądze można programować za pomocą [inteligentnych kontraktów](/glossary#smart-contract), dzięki czemu można robić z nimi znacznie więcej niż tylko je przechowywać i wysyłać wartości. + + + +## Programowalne pieniądze {#programmable-money} + +To brzmi dziwnie... „Dlaczego mam programować moje pieniądze?” W ekosystemie Ethereum jest to jednak domyślna cecha wszystkich tokenów. Każdy może wprowadzić do systemu płatności dowolną logikę. Takie rozwiązanie nie tylko zapewnia bezpieczeństwo środków i ich kontrolę, jak w przypadku Bitcoin, ale także dostęp do usług finansowych. Umożliwia również używanie kryptowalut do działań niemożliwych w przypadku Bitcoin: pożyczania i bycia pożyczkodawcą, planowania płatności w czasie, inwestowania w fundusze i znacznie więcej. + + +
Zobacz nasze sugerowane aplikacje DeFi i przetestuj je, jeśli nie znasz jeszcze ekosystemu Ethereum.
+ + Eksploruj aplikacje DeFi + +
+ +## Co mogę robić w DeFi? {#defi-use-cases} + +Istnieje zdecentralizowana alternatywa dla większości usług finansowych. Ethereum oferuje również możliwość tworzenia całkowicie nowych produktów finansowych. Lista stale się powiększa. + +- [Wysyłanie pieniędzy do każdego zakątka świata](#send-money) +- [Udostępnianie środków na całym świecie](#stream-money) +- [Dostęp do stabilnych walut](#stablecoins) +- [Pożyczanie środków z zabezpieczeniem](#lending) +- [Pożyczanie bez zabezpieczenia](#flash-loans) +- [Zarabianie odsetek w kryptowalutach](#saving) +- [Handlowanie tokenami](#swaps) +- [Rozszerzenie portfolio inwestycyjnego](#investing) +- [Finansowanie swoich pomysłów](#crowdfunding) +- [Kupowanie ubezpieczenia](#insurance) +- [Zarządzanie swoim portfolio](#aggregators) + + + +### Wysyłaj pieniądze na drugi koniec świata niemal natychmiast {#send-money} + +Jako łańcuch bloków, platforma Ethereum jest stworzona do bezpiecznego przesyłania transakcji o globalnym zasięgu. Podobnie jak Bitcoin, Ethereum ułatwia wysyłanie pieniędzy na całym świecie, podobnie jak wysyłanie wiadomości e-mail. Wystarczy podać tylko nazwę odbiorcy w systemie [ENS](/nft/#nft-domains) (np. bob.eth) lub adres konta i zatwierdzić transakcję w swoim portfelu, a środki po kilku minutach (zazwyczaj) będą zaksięgowane u odbiorcy. Do wysyłania i odbierania płatności, potrzebny jest [portfel](/wallets/). + + + Zobacz d-aplikacje do płatności + + +#### Wysyłaj pieniądze do każdego zakątka świata... {#stream-money} + +Wysyłaj pieniądze na platformie Ethereum. Możesz zapłacić komuś w ciągu kilku sekund, dając mu dostęp do swoich pieniędzy, kiedy tylko będzie potrzebować. Albo wypożyczyć np. schowek lub skuter elektryczny niemal natychmiast. + +A jeśli nie chcesz używać do tego [ETH](/eth/), z uwagi na jego wartość bądź wahania kursowe, możesz użyć walut alternatywnych, nazywanych stabilnymi kryptowalutami. + + + +### Dostęp do stabilnych walut {#stablecoins} + +Zmienność kryptowalut jest problemem dla wielu produktów finansowych i ogólnych wydatków. W społeczności DeFi rozwiązaniem tego problemu są stabilne kryptowaluty. Ich wartość jest powiązana z innym aktywem, zazwyczaj z popularną walutą, taką jak dolar. + +Kryptowaluty takie jak Dai lub USDC mają wartość, której wahania pozostają w granicach kilku centów. To sprawia, że są idealne do zarabiania lub handlu detalicznego. Wiele osób w Ameryce Łacińskiej wykorzystywało monety stabilne jako sposób ochrony swoich oszczędności w czasach wielkiej niepewności w walutach emitowanych przez rząd. + + + Więcej o stabilnych kryptowalutach + + + + +### Pożyczanie {#lending} + +Pożyczanie pieniędzy od zdecentralizowanych pożyczkodawców odbywa się w dwóch głównych wariantach. + +- Peer-to-peer, co oznacza, że kredytobiorca będzie pożyczał bezpośrednio od konkretnego kredytodawcy. +- Na podstawie grupy, w której kredytodawcy przekazują środki (płynność) do puli kredytobiorców, od której kredytobiorcy mogą pożyczyć. + + + Sprawdź d-apliakcje pożyczkowe + + +Korzystanie ze zdecentralizowanego pożyczkodawcy ma wiele zalet... + +#### Pożyczki z ochroną prywatności {#borrowing-privacy} + +Dzisiaj udzielanie i pożyczanie pieniędzy opiera się na poznaniu interesantów. Zanim banki udzielą pożyczki, muszą wiedzieć, czy kredytobiorca będzie w stanie ją spłacić. + +Decentralizacja kredytów nie wymaga identyfikacji żadnej ze stron. Zamiast tego kredytobiorca musi zastawić zabezpieczenie, które pożyczkodawca otrzyma automatycznie, jeżeli pożyczka nie zostanie spłacona. Niektórzy kredytodawcy akceptują nawet NFT jako zabezpieczenie. Tokeny NFT są aktem własności unikatowego składnika majątku, takiego jak obraz. [Więcej o NFT](/nft/) + +Umożliwia to pożyczanie pieniędzy bez procedur bankowych ani przekazywania prywatnych danych. + +#### Dostęp do globalnych funduszy {#access-global-funds} + +Korzystanie ze zdecentralizowanego pożyczkodawcy umożliwia dostęp do funduszy zdeponowanych w dowolnym miejscu na świecie, nie tylko do lokalnych środków z wybranego banku czy instytucji. Dzięki temu pożyczki są łatwiej dostępne i lepiej oprocentowane. + +#### Efektywność podatkowa {#tax-efficiencies} + +Pożyczki mogą dać Ci dostęp do potrzebnych środków bez konieczności sprzedaży ETH (zdarzenie podlegające opodatkowaniu). Zamiast tego możesz użyć ETH jako zabezpieczenia kredytu na stablecoiny. Pozwala to utrzymać płynność finansową i zachować ETH. Stabilne kryptowaluty to tokeny, które są znacznie lepsze, kiedy potrzebujesz gotówki, ponieważ nie zmieniają wartości jak np. ETH. [Więcej o stabilnych kryptowalutach](#stablecoins) + +#### Pożyczki błyskawiczne {#flash-loans} + +Pożyczki błyskawiczne to bardziej eksperymentalna forma zdecentralizowanego kredytu, która umożliwia pożyczanie bez zabezpieczenia ani dostarczania jakichkolwiek danych osobowych. + +Obecnie ta forma pożyczek nie jest szeroko dostępna dla osób bez przygotowania technicznego, ale być może forma ta będzie w przyszłości dostępna dla wszystkich. + +Pożyczki błyskawiczne działają na zasadzie zaciągnięcia i spłaty w tej samej, jednej transakcji. Jeżeli spłata będzie niemożliwa, transakcja zostanie wycofana i stan portfeli będzie taki, jakby jej w ogóle nie było. + +Fundusze, które są często wykorzystywane, znajdują się w pulach płynności (duże pule funduszy wykorzystywane do zaciągania pożyczek). Jeżeli w danym momencie nie są używane, ktoś może je pożyczyć, wykorzystać i spłacić zobowiązania dosłownie w tym samym czasie. + +Oznacza to wiele logiki biznesowej, która musi być zawarta w pojedynczej transakcji. Prostym przykładem może być ktoś, kto używa pożyczki błyskawicznej, aby pożyczyć jak najwięcej aktywów po jednej cenie, i sprzedać je na innej giełdzie, gdzie cena jest wyższa. + +Tak więc w ramach jednej transakcji dzieje się to: + +- Pożyczasz ilość X zasobu $asset w cenie 1,00 USD na giełdzie A. +- Sprzedajesz ilość X zasobu $asset na giełdzie B po 1,10 USD. +- Spłacasz zobowiązanie na giełdzie A. +- Zatrzymujesz zysk dla siebie, opłacając koszty transakcyjne. + +Gdyby podaż na giełdzie B nagle spadła i użytkownik nie byłby w stanie kupić wystarczająco dużo, aby pokryć pierwotną pożyczkę, transakcja po prostu zakończyłaby się niepowodzeniem. + +Aby móc dokonać transakcji z powyższego przykładu to w tradycyjnym świecie finansowym, potrzebna jest ogromna kwota pieniędzy. Takie strategie finansowe są dostępne tylko dla posiadaczy ogromnego majątku. Pożyczki błyskawiczne pokazują, że w przyszłości takie strategie będą dostępne nie tylko dla najbogatszych uczestników rynku. + +[Więcej o pożyczkach błyskawicznych](https://aave.com/flash-loans/) + + + +### Zacznij oszczędzać za pomocą kryptowalut {#saving} + +#### Pożyczanie innym {#lending} + +Możesz zacząć zarabiać od swoich kryptowalut odsetki, które są naliczane w czasie rzeczywistym. Stopy zwrotu z kryptowalut są znacznie wyższe, niż te, które oferuje bank (jeżeli masz tyle szczęścia, by mieć do nich dostęp). Spójrz na poniższy przykład: + +- Możesz zdeponować swoje 100 Dai, [stabilną kryptowalutę](/stablecoins/), do produktu takiego jak Aave. +- W zamian otrzymujesz 100 Aave Dai (aDai), tokeny reprezentujące Twoje zdeponowane Dai. +- Ilość twoich aDai będzie się powiększać w zależności od stóp procentowych w produkcie, a Ty masz do nich wgląd w każdej chwili w swoim portfelu. W zależności od oprocentowania saldo Twojego portfela może wskazywać np. 100,1234 aDai już po paru dniach, a nawet godzinach! +- W każdej chwili możesz wymienić tokeny produktu z powrotem na oryginalne Dai. + + + Zobacz d-aplikacje pożyczkowe + + +#### Loterie bez przegranych {#no-loss-lotteries} + +Loterie bez przegranych, takie jak np. PoolTohether, są zabawną i innowacyjną metodą oszczędzania pieniędzy. + +- Kupujesz 100 biletów używając 100 tokenów Dai. +- Otrzymujesz 100 plDai, które reprezentują 100 biletów. +- Jeżeli jeden z Twoich biletów zostanie wylosowany jako zwycięski, Twoje saldo plDai zostanie powiększone o wartość puli nagród. +- Jeżeli nie wygrasz, Twoje 100 plDai przechodzi do następnej cotygodniowej loterii. +- W każdej chwili możesz wypłacić kwotę zwykłych Dai, która jest równa Twojemu saldu plDai. + +Pula nagród to suma wszystkich odsetek uzyskanych dzięki pożyczaniu biletów loteryjnych, tak samo jak w przykładzie z pożyczkami. + + + Wypróbuj PoolTogether + + + + +### Handel tokenami {#swaps} + +Na Ethereum są tysiące tokenów. Zdecentralizowane giełdy (DEX) umożliwiają handel różnymi tokenami, kiedy tylko chcesz. Nigdy nie rezygnujesz z kontroli nad swoimi zasobami. To tak jak korzystanie z kantoru podczas wizyty w innym kraju. Ale DeFi nigdy się nie zamyka. Rynki działają 24 godziny na dobę, 365 dni w roku, a technologia gwarantuje, że zawsze znajdzie się ktoś, kto zaakceptuje transakcję. + +Na przykład, jeśli chcesz skorzystać z loterii bez przegranych PoolTogether (opisanej powyżej), będziesz potrzebować tokena takiego jak Dai lub USDC. Zdecentralizowane giełdy dają Ci możliwość wymiany ETH na te tokeny i zamianę z powrotem, kiedy będziesz potrzebować. + + + Zobacz handel tokenami + + + + +### Handel dla zaawansowanych {#trading} + +Dla inwestorów, którzy lubią mieć nieco więcej kontroli, istnieją bardziej zaawansowane opcje. Zlecenia z limitem ceny, bezterminowe, transakcje z depozytem zabezpieczającym i inne — wszystko jest możliwe. Dzięki zdecentralizowanemu handlowi masz dostęp do globalnej płynności, rynki nigdy się nie zamykają i do tego zawsze to Ty kontrolujesz swoje środki. + +Na scentralizowanych giełdach musisz najpierw zdeponować swoje środki, a potem na czas obrotu zaufać danej platformie. Gdy Twoje środki są zdeponowane na scentralizowanej giełdzie, stają się atrakcyjnym celem dla hakerów, a Ty ponosisz ryzyko. + + + Zobacz d-aplikacje pożyczkowe + + + + +### Powiększ swoje portfolio {#investing} + +Na Ethereum są dostępne produkty do zarządzania funduszami, które będą próbować powiększać Twoje portfolio na podstawie wybranej strategii. To automatyczne, dostępne dla wszystkich rozwiązanie, które nie potrzebuje ludzkiego menedżera przejmującego część Twoich zysków. + +Dobrym przykładem jest [fundusz DeFi Pulse Index (DPI)](https://defipulse.com/blog/defi-pulse-index/). Jest to fundusz, który automatycznie przelicza saldo, aby Twoje portfolio zawsze zawierało [najlepsze tokeny DeFi według kapitalizacji rynkowej](https://www.coingecko.com/en/defi). Nigdy nie musisz zarządzać żadnymi szczegółami i możesz wycofać się z funduszu, kiedy tylko chcesz. + + + Zobacz d-aplikacje do obsługi inwestycji + + + + +### Sfinansuj swój pomysł {#crowdfunding} + +Ethereum jest idealną platformą do finansowania społecznościowego: + +- Potencjalni inwestorzy mogą pochodzić z dowolnego miejsca – Ethereum i jego tokeny są otwarte dla każdego, na całym świecie. +- Zbiórki są transparentne, nie ma możliwości utajnienia zebranej kwoty. Po zakończeniu zbiórki możesz nawet śledzić sposób wydatkowania zebranych pieniędzy. +- Podmioty dokonujące zbiórki mogą ustawić automatyczne refundacje, jeżeli na przykład w określonym terminie nie zostanie zebrana ustalona kwota. + + + Sprawdź d-aplikacje do finansowania społecznościowego + + +#### Finansowanie kwadratowe {#quadratic-funding} + +Ethereum jest oprogramowaniem open source i wiele działań zostało sfinansowanych przez społeczność. Zaowocowało to zwiększonym zainteresowaniem nowym kwadratowym modelem finansowania. Rozwiązanie to ma potencjał do zmiany sposobu, jak finansowane są projekty użyteczności publicznej. + +Dzięki quadratic funding, projekty z najbardziej unikalnym popytem, otrzymują najwyższe dotacje. Innymi słowy, są to projekty, które mają na celu poprawienie jakości życia największej liczby osób. Dowiedz się, jak to działa: + +1. Jest pewna pula dopasowana do przekazanych środków. +2. Rozpoczyna się runda finansowania publicznego. +3. Ludzie mogą sygnalizować swoje zainteresowanie projektem, przekazując pewną kwotę pieniędzy. +4. Po zakończeniu rundy następuje podział puli na projekty. Te, którymi interesowała się największa liczba osób, otrzymują z puli najwyższą kwotę. + +Oznacza to, że projekt A, który otrzymał 100 darowizn w wysokości 1 dolara, mógłby otrzymać więcej środków niż projekt B z pojedynczym darowizną 10 000 dolarów (w zależności od wielkości puli). + +[Więcej na temat finansowania kwadratowego](https://wtfisqf.com) + + + +### Ubezpieczenie {#insurance} + +Zdecentralizowane ubezpieczenia mają na celu obniżenie kosztów ubezpieczenia, szybsze wypłacanie odszkodowań i zwiększenie przejrzystości. Dzięki większej automatyzacji zakres jest znacznie większy, a wypłaty — znacznie szybsze. Dane wykorzystane do podjęcia decyzji w sprawie odszkodowania są całkowicie przejrzyste. + +Produkty Ethereum, podobnie jak każde oprogramowanie, mogą zawierać błędy i są narażone na oprogramowanie wykorzystujące luki. Dlatego obecnie wiele dostępnych produktów ubezpieczeniowych koncentruje się na ochronie użytkowników przed utratą środków. Jednak pojawiają się projekty, które zaczynają obejmować swoim zasięgiem wszystko, czym może nas zaskoczyć życie. Dobrym tego przykładem jest program Crop firmy Etherisc, którego celem jest [ochrona drobnych rolników w Kenii przed suszami i powodziami](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Zdecentralizowane ubezpieczenie może zapewnić tańszą ochronę ubezpieczeniową dla rolników, którzy często nie są uwzględniani przez tradycyjnych ubezpieczycieli. + + + Zobacz d-aplikacje ubezpieczeniowe + + + + +### Agregatory i zarządzanie portfelami {#aggregators} + +W wielu przypadkach będziesz potrzebować sposobu, aby śledzić wszystkie swoje inwestycje, pożyczki i transakcje. Istnieje mnóstwo produktów, które służą do koordynowania całej aktywności DeFi z jednego miejsca. Na tym polega piękno otwartej architektury DeFi. Zespoły mogą budować interfejsy, w których nie tylko widzisz swoje salda w różnych produktach, ale możesz również korzystać z ich funkcji. Może ci się to przydać, gdy będziesz poznawać kolejne części DeFi. + + + Zobacz portfolio d-aplikacji + + + + +## Jak działa DeFi? {#how-defi-works} + +DeFi wykorzystuje kryptowaluty i inteligentne kontrakty do świadczenia usług, które nie wymagają pośredników. W dzisiejszym świecie finansowym instytucje finansowe pełnią rolę gwarantów transakcji. Daje to tym instytucjom ogromną władzę, ponieważ przepływają przez nie Twoje pieniądze. Jednak miliardy ludzi na świecie nie mają dostępu do kont bankowych. + +W DeFi inteligentny kontrakt zastępuje instytucję finansową uczestniczącą w transakcji. Inteligentny kontrakt jest rodzajem konta Ethereum, na którym można przechowywać środki oraz wysyłać je i zwracać, gdy są spełnione określone warunki. Nikt nie może zmienić tego inteligentnego kontraktu, gdy jest aktywny — zawsze będzie działał zgodnie z programem. + +Kontrakt przeznaczony do wypłacania zasiłku lub kieszonkowego mógłby być zaprogramowany tak, aby w każdy piątek wysyłać pieniądze z konta A na konto B. Będzie to robić tylko wtedy, gdy na rachunku A będą wystarczające środki. Nikt nie może zmienić kontraktu i dodać konta C jako odbiorcy, aby wykraść środki. + +Poza tym kontrakty są publicznie dostępne — każdy może przeprowadzić kontrolę i audyt. Dlatego złe kontrakty będą często sprawdzane przez członków wspólnoty. + +Oznacza to, że obecnie trzeba zaufać członkom społeczności Ethereum, którzy mają wystaczającą wiedzę techniczną, aby czytać kod. Społeczność oparta na open-source pomaga programistom, sprawdzając ich pracę. Jednak z czasem potrzeba ta zmniejszy się: czytanie inteligentnych kontraktów będzie łatwiejsze i rozwiną się inne sposoby potwierdzenia wiarygodności kodu. + +## Ethereum i DeFi {#ethereum-and-defi} + +Ethereum jest doskonałym fundamentem dla DeFi z wielu powodów: + +- Nikt nie jest właścicielem Ethereum ani inteligentnych kontraktów, które są aktywne na platformie, dlatego każdy może korzystać z DeFi. Oznacza to również, że nikt nie może zmienić obowiązujących zasad. +- Wszystkie produkty DeFi mówią za kulisami tym samym językiem: Ethereum. Oznacza to, że wiele produktów ze sobą współpracuje. Możesz pożyczać tokeny na jednej platformie i wymieniać oprocentowany token na innym rynku w zupełnie innej aplikacji. To tak, jakby by można było wymieniać na gotówkę punkty lojalnościowe w konkretnym banku. +- Tokeny i kryptowaluty są wbudowane w Ethereum. Wspólna księga rachunkowa — śledzenie transakcji i własności — jest jedną z istotnych cech Ethereum. +- Ethereum pozwala na pełną wolność finansową — większość produktów nigdy nie będzie przejmować środków finansowych, pozostawiając Ci kontrolę nad nimi. + +Możesz myśleć o DeFi jak o systemie wielowarstwowym: + +1. Łańcuch bloków — Ethereum zawiera historię transakcji i stany kont. +2. Aktywa — [ETH](/eth/) i inne tokeny (waluty). +3. Protokoły — [inteligentne kontrakty](/glossary/#smart-contract), które zapewniają funkcjonalność, na przykład usługę pozwalającą na zdecentralizowane pożyczanie aktywów. +4. [Aplikacje](/dapps/) — produkty, których używamy do zarządzania protokołami i uzyskiwania dostępu do nich. + +## Pomóż nam budować DeFi {#build-defi} + +DeFi to ruch open-source. Protokoły i aplikacje DeFi są dla Ciebie otwarte: możesz je przeglądać, tworzyć i wprowadzać innowacje. Dzięki warstwowej konstrukcji (wszyscy mają ten sam podstawowy łańcuch bloków i zasoby), protokoły moża mieszać i dopasowywać, aby odblokować unikalne możliwości połączeń. + + + Więcej o tworzeniu d-aplikacji + + +## Dalsza lektura {#futher-reading} + +### Dane DeFi {#defi-data} + +- [DeFi Prime](https://defiprime.com/) +- [DeFi Llama](https://defillama.com/) +- [DeFi Rate](https://defirate.com/) + +### Artykuły o DeFi {#defi-articles} + +- [Przewodnik po DeFi dla początkujących](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) — _Sid Coelho-Prabhu, 6 stycznia 2020_ + +### Materiały wideo {#videos} + +- [Finematics — zdecentralizowana edukacja finansowa](https://finematics.com/) — _filmy wideo o DeFi_ +- [Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _Podstawy DeFi: wszystko, co musisz wiedzieć, aby zacząć korzystać z tej czasami zaskakującej przestrzeni._ +- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _Co to jest DeFi?_ + +### Społeczności {#communities} + +- [Serwer Discord DeFi Llama](https://discord.gg/buPFYXzDDd) +- [Serwer Discord DeFi Pulse](https://discord.gg/Gx4TCTk) diff --git a/public/content/translations/pl/desci/index.md b/public/content/translations/pl/desci/index.md new file mode 100644 index 00000000000..ee01b6381cb --- /dev/null +++ b/public/content/translations/pl/desci/index.md @@ -0,0 +1,139 @@ +--- +title: Zdecentralizowana nauka (DeSci) +description: Przegląd zdecentralizowanej nauki na Ethereum +lang: pl +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Globalna, otwarta alternatywa dla obecnego systemu naukowego. +summaryPoint2: Technologia, która umożliwia naukowcom pozyskiwanie funduszy, prowadzenie eksperymentów, udostępnianie danych, rozpowszechnianie wniosków i wiele innych. +summaryPoint3: Opiera się na otwartych inicjatywach naukowych. +--- + +## Czym jest zdecentralizowana nauka (DeSci)? {#what-is-desci} + +Zdecentralizowana nauka (DeSci) jest ruchem, który ma na celu zbudowanie publicznej infrastruktury do finansowania, tworzenia, recenzowania, kredytowania, przechowywania i rozpowszechniania wiedzy naukowej w sposób uczciwy i sprawiedliwy przy użyciu stosu Web3. + +DeSci ma na celu stworzenie ekosystemu, w którym naukowcy są zachęcani do otwartego dzielenia się swoimi badaniami i otrzymują uznanie za swoją pracę, jednocześnie umożliwiając każdemu łatwy dostęp do badań i uczestniczenie w nich. DeSci działa w oparciu o ideę, że wiedza naukowa powinna być dostępna dla każdego, a proces badań naukowych powinien być przejrzysty. DeSci tworzy bardziej zdecentralizowany i rozproszony model badań naukowych, dzięki czemu są one bardziej odporne na cenzurę i kontrolę ze strony władz centralnych. DeSci to środowisko, w którym nowe i niekonwencjonalne pomysły mogą się rozwijać poprzez decentralizację dostępu do finansowania, narzędzi naukowych i kanałów komunikacji. + +Zdecentralizowana nauka umożliwia bardziej zróżnicowane źródła finansowania (od [DAO](/dao/), [kwadratowych darowizn](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) do finansowania społecznościowego i innych form), łatwiejszy dostęp do danych i metod, a także poprzez zapewnienie zachęt do odtwarzalności. + +### Juan Benet — ruch DeSci + + + +## Jak DeSci poprawia jakość nauki {#desci-improves-science} + +Lista wybranych kluczowych problemów naukowych oraz sposób, w jaki zdecentralizowana nauka może pomóc w ich rozwiązaniu + +| **Zdecentralizowana nauka** | **Tradycyjna nauka** | +| ---------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| Podział środków jest określany przez opinię publiczną za pomocą takich mechanizmów jak kwadratowe darowizny lub DAO. | Małe, zamknięte, scentralizowane grupy kontrolują podział funduszy. | +| Współpraca z partnerami z całego świata w dynamicznych zespołach. | Organizacje finansujące i instytucje domowe ograniczają możliwości współpracy. | +| Decyzje dotyczące finansowania podejmowane są w Internecie i w przejrzysty sposób. Wykorzystywane są nowe mechanizmy finansowania. | Decyzje o finansowaniu zapadają po długim czasie i są mało przejrzyste. Istnieje niewiele mechanizmów finansowania. | +| Udostępnianie usług laboratoryjnych jest łatwiejsze i bardziej przejrzyste dzięki podstawowym usługom Web3. | Udostępnianie zasobów laboratoryjnych jest często powolne i nieprzejrzyste. | +| Można opracować nowe modele publikacji, w których wykorzystuje się podstawowe funkcje Web3 zapewniające zaufanie, przejrzystość i powszechny dostęp. | Publikowanie odbywa się w ramach ustalonych ścieżek, często uznawanych za nieefektywne, stronnicze i wyzyskujące. | +| Za recenzowanie prac można zdobyć tokeny i reputację. | Praca recenzencka jest nieodpłatna i przynosi korzyści wydawcom nastawionym na zysk. | +| Użytkownik jest właścicielem wygenerowanej przez siebie własności intelektualnej (IP) i rozpowszechnia ją na przejrzystych zasadach. | Właścicielem IP wygenerowanej przez użytkownika jest jego macierzysta instytucja. Dostęp do IP nie jest przejrzysty. | +| Dzielenie się wszystkimi badaniami, w tym danymi z nieudanych prób, poprzez udostępnianie wszystkich etapów w łańcuchu. | Tendencyjność publikacji oznacza, że badacze chętniej dzielą się eksperymentami, które przyniosły dobre wyniki. | + +## Ethereum i DeSci {#ethereum-and-desci} + +Zdecentralizowany system naukowy będzie wymagał solidnego bezpieczeństwa, minimalnych kosztów pieniężnych i transakcyjnych oraz bogatego ekosystemu do tworzenia zastosowań. Ethereum zapewnia wszystko, co jest potrzebne do stworzenia zdecentralizowanego systemu naukowego. + +## Przykłady zastosowań DeSci {#use-cases} + +DeSci buduje zestaw narzędzi naukowych, aby wprowadzić środowisko akademickie Web2 do świata cyfrowego. Poniżej przedstawiono przykłady zastosowań, jakie Web3 może zaoferować społeczności naukowej. + +### Publikowanie {#publishing} + +Publikacje naukowe są szczególnie problematyczne, ponieważ są zarządzane przez wydawnictwa, które polegają na darmowej pracy naukowców, recenzentów i redaktorów, aby stworzyć prace, ale następnie pobierają za nie wygórowane opłaty. Obywatele, którzy zwykle pośrednio zapłacili za dzieło i koszty publikacji poprzez podatki, często nie mogą uzyskać dostępu do tego samego dzieła bez ponownego zapłacenia wydawcy. Łączne opłaty za publikację poszczególnych prac naukowych są często pięciocyfrowe ($USD), podważając całą koncepcję wiedzy naukowej jako [dobra publicznego](https://www.econlib.org/library/Enc/PublicGoods.html), jednocześnie generując ogromne zyski dla małej grupy wydawców. + +Istnieją platformy wolnego i otwartego dostępu w postaci serwerów preprintów, [takich jak ArXiv](https://arxiv.org/). Jednak na takich platformach brakuje kontroli jakości, [mechanizmów antysybilistycznych](https://csrc.nist.gov/glossary/term/sybil_attack), a także nie śledzi się na ogół metryk poziomu artykułu. Oznacza to, że są one zwykle używane tylko do upublicznienia pracy przed jej złożeniem u tradycyjnego wydawcy. SciHub również udostępnia opublikowane prace za darmo, ale nie legalnie, i dopiero po tym, jak wydawcy pobiorą już zapłatę i obwarują pracę ścisłymi prawami autorskimi. Jest to istotna luka w przypadku dostępnych dokumentów i danych naukowych z wbudowanym mechanizmem legitymizacji i modelem zachęt. Narzędzia do budowy takiego systemu istnieją w Web3. + +### Odtwarzalność i powtarzalność {#reproducibility-and-replicability} + +Powtarzalność i odtwarzalność są podstawą odkryć naukowych wysokiej jakości. + +- Odtwarzalne wyniki mogą być wielokrotnie osiągane przez ten sam zespół przy użyciu tej samej metodologii. +- Powtarzalne wyniki może osiągnąć inna grupa stosująca ten sam układ eksperymentalny. + +Nowe narzędzia Web3 mogą zagwarantować, że powtarzalność i odtwarzalność są podstawą odkrycia. Można wpleść wysokiej jakości naukę w technologiczną tkankę środowiska akademickiego. Web3 oferuje możliwość tworzenia poświadczeń dla każdego składnika analizy: danych nieprzetworzonych, silnika przetwarzania i wyników aplikacji. Piękno systemów konsensualnych polega na tym, że w przypadku utworzenia zaufanej sieci w celu utrzymania tych komponentów, każdy uczestnik sieci może być odpowiedzialny za odtwarzanie obliczeń i walidację każdego wyniku. + +### Finansowanie {#funding} + +Obecny standardowy model finansowania nauki polega na tym, że osoby fizyczne lub grupy naukowców składają pisemne wnioski do agencji finansującej. Niewielki panel zaufanych osób ocenia wnioski, a następnie przeprowadza rozmowy z kandydatami przed przyznaniem środków finansowych niewielkiej części wnioskodawców. Oprócz tworzenia wąskich gardeł, które czasem prowadzą do wieloletniego oczekiwania między ubieganiem się o dotację a jej otrzymaniem, model ten jest znany jako wysoce podatny na stronniczość, interesy własne i politykę panelu weryfikacyjnego. + +Badania wykazały, że zespoły ds. przeglądu dotacji nie wykonują dobrej pracy w zakresie wyboru wniosków wysokiej jakości, ponieważ te same wnioski przekazane różnym zespołom przynoszą diametralnie różne wyniki. W miarę jak środki finansowe stają się coraz bardziej ograniczone, koncentrują się na mniejszej puli starszych naukowców proponujących projekty bardziej konserwatywne pod względem intelektualnym. Efektem tego jest powstanie hiperkonkurencyjnego systemu finansowania, który utrwala niepożądane zachęty i tłumi innowacje. + +Web3 ma potencjał, aby zakłócić ten wadliwy model finansowania poprzez eksperymentowanie z różnymi modelami motywacyjnymi opracowanymi przez DAO i Web3 w szerokim zakresie. [Finansowanie ze środków publicznych obowiązujące wstecz](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), [finansowanie kwadratowe](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), [zarządzanie DAO](https://www.antler.co/blog/daos-and-web3-governance) i [struktury motywacyjne oparte na tokenach](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) to przykłady narzędzi Web3, które mogą zrewolucjonizować finansowanie nauki. + +### Własność i rozwój własności intelektualnej (IP) {#ip-ownership} + +Własność intelektualna (IP) stanowi duży problem w tradycyjnej nauce: od utknięcia na uniwersytetach lub niewykorzystania w biotechnologii, po notoryczne trudności w wycenie. Jednak obsługa własności aktywów cyfrowych (takich jak dane naukowe lub artykuły) jest czymś, co Web3 robi wyjątkowo dobrze, używając [niezbywalnych tokenów (NFT)](/nft/). + +W ten sam sposób, w jaki NFT mogą przekazywać przychody z przyszłych transakcji z powrotem do pierwotnego twórcy, można ustanowić przejrzyste łańcuchy przypisywania wartości, aby nagradzać badaczy, organy zarządzające (jak DAO), a nawet podmioty, których dane są gromadzone. + +[IP-NFT](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) mogą również funkcjonować jako klucz do zdecentralizowanego repozytorium danych o podejmowanych eksperymentach badawczych, a także podłączać się do NFT i [DeFi](/defi/) finansjeryzacji (od frakcjonalizacji po pule pożyczkowe i wycenę wartości). Umożliwia również podmiotom działającym natywnie w łańcuchu, takim jak DAO [VitaDAO](https://www.vitadao.com/), prowadzenie badań bezpośrednio w łańcuchu. Pojawienie się niezbywalnych [tokenów „soulbound”](https://vitalik.ca/general/2022/01/26/soulbound.html) może również odgrywać ważną rolę w DeSci, umożliwiając jednostkom udowodnienie swojego doświadczenia i poświadczeń powiązanych z ich adresem Ethereum. + +### Przechowywanie danych, dostęp do nich i ich architektura {#data-storage} + +Dane naukowe mogą być znacznie bardziej dostępne dzięki wzorcom Web3, a rozproszona pamięć masowa umożliwia badaniom przetrwanie kataklizmów. + +Punktem wyjścia musi być system dostępny dla każdej zdecentralizowanej tożsamości, posiadający odpowiednie możliwe do zweryfikowania dane uwierzytelniające. Pozwala to na bezpieczne powielanie danych szczególnie chronionych przez zaufane strony, co umożliwia odporność na redundancję i cenzurę, powielanie wyników, a nawet zdolność wielu stron do współpracy i dodawania nowych danych do zbioru danych. Poufne metody obliczeniowe, takie jak [przetwarzanie do danych](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol), zapewniają alternatywne mechanizmy dostępu do replikacji surowych danych, tworząc zaufane środowiska badawcze dla najbardziej wrażliwych danych. [NHS uznało](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) Trusted Research Environments za przyszłościowe rozwiązanie w zakresie prywatności danych i współpracy poprzez stworzenie ekosystemu, w którym naukowcy mogą bezpiecznie pracować z danymi na miejscu przy użyciu standardowych środowisk do udostępniania kodu i praktyk. + +Elastyczne rozwiązania danych Web3 wspierają powyższe scenariusze i stanowią podstawę dla prawdziwie otwartej nauki, gdzie naukowcy mogą tworzyć dobra publiczne bez uprawnień dostępu lub opłat. Publiczne rozwiązania danych Web3, takie jak IPFS, Arweave i Filecoin, są zoptymalizowane do celów decentralizacji. Na przykład dClimate zapewnia powszechny dostęp do danych dotyczących klimatu i pogody, w tym danych pochodzących ze stacji meteorologicznych i modeli prognozowania klimatu. + +## Włącz się {#get-involved} + +Przeglądaj projekty i dołącz do społeczności DeSci. + +- [DeSci.Global: globalne wydarzenia i kalendarz spotkań](https://desci.global) +- [Łańcuch bloków dla Science Telegram](https://t.me/BlockchainForScience) +- [Molecule: finansuj i zdobywaj fundusze na swoje projekty badawcze](https://discover.molecule.to/) +- [VitaDAO: uzyskuj środki finansowe w ramach sponsorowanych umów badawczych na długotrwałe badania](https://www.vitadao.com/) +- [Research Hub: wysyłaj wyniki naukowe i angażuj się w rozmowy z partnerami](https://www.researchhub.com/) +- [LabDAO: projektuj białka in-silico (za pomocą komputera)](https://alphafodl.vercel.app/) +- [dClimate API: przeszukuj dane klimatyczne zebrane przez zdecentralizowaną społeczność](https://api.dclimate.net/) +- [Fundacja DeSci: konstruktor narzędzi do publikowania DeSci](https://descifoundation.org/) +- [DeSci.World: jedno miejsce dla użytkowników do przeglądania i angażowania się w zdecentralizowaną naukę](https://desci.world) +- [Protokół Fleminga: gospodarka danymi typu open-source, która wspiera wspólne odkrycia biomedyczne](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [OceanDAO: DAO finansuje naukę związaną z danymi](https://oceanprotocol.com/dao) +- [Opscientia: otwarty, zdecentralizowany przepływ prac naukowych](https://opsci.io/research/) +- [LabDAO: projektuj białka in-silico (za pomocą komputera)](https://alphafodl.vercel.app/) +- [Bio.xyz: zdobądź fundusze na swój biotechnologiczny projekt DAO lub desci](https://www.molecule.to/) +- [Research Hub: wysyłaj wyniki naukowe i angażuj się w rozmowy z partnerami](https://www.researchhub.com/) +- [VitaDAO: uzyskuj środki finansowe w ramach sponsorowanych umów badawczych na długotrwałe badania](https://www.vitadao.com/) +- [Protokół Fleminga: gospodarka danymi typu open-source, która wspiera wspólne odkrycia biomedyczne](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [Laboratorium aktywnego wnioskowania](https://www.activeinference.org/) +- [CureDAO: wspólnotowa platforma ds. zdrowia precyzyjnego](https://docs.curedao.org/) +- [IdeaMarkets: umożliwia zapewnienie zdecentralizowanej wiarygodności naukowej](https://ideamarket.io/) +- [Laboratoria DeSci](https://www.desci.com/) + +Mile widziane są propozycje nowych projektów do umieszczenia na liście — zapoznaj się z naszymi [zasadami umieszczania na liście](/contributing/adding-desci-projects/) i zaczynaj! + +## Przeczytaj także {#further-reading} + +- [Wiki DeSci opracowana przez Jocelynn Pearl i Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) +- [Przewodnik po zdecentralizowanej biotechnologii autorstwa Jocelynn Pearl dla 16z future](https://future.a16z.com/a-guide-to-decentralized-biotech/) +- [Problem dla DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) +- [Przewodnik po DeSci](https://future.com/what-is-decentralized-science-aka-desci/) +- [Zdecentralizowane zasoby naukowe](https://www.vincentweisser.com/decentralized-science) +- [IP-NFT Biopharma firmy Molecule — opis techniczny](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) +- [Budowanie Trustless Systems of Science autorstwa Jon Starr](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) +- [Pojawienie się organizacji DAO Biotech](https://molecule.to/blog/the-emergence-of-biotech-daos) +- [Paul Kohlhaas — DeSci: Przyszłość zdecentralizowanej nauki (podcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) +- [Ontologia aktywnego wnioskowania dla zdecentralizowanej nauki: od sytuacyjnego wyczuwania do wspólnoty epistemicznej](https://zenodo.org/record/6320575) +- [DeSci: Przyszłość badań naukowych autorstwa Samuela Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) +- [Finansowanie nauki (Epilog: DeSci i nowe pierwotne kryptowaluty) autorstwa Nadii](https://nadia.xyz/science-funding) +- [Decentralizacja zakłóca rozwój leków](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) + +### Materiały wideo {#videos} + +- [Co to jest zdecentralizowana nauka?](https://www.youtube.com/watch?v=-DeMklVWNdA) +- [Rozmowa Vitalika Buterina z naukowcem Aubreyem de Greyem o przenikaniu się długotrwałych badań i kryptowalut](https://www.youtube.com/watch?v=x9TSJK1widA) +- [Publikowanie tekstów naukowych nie działa prawidłowo. Czy można je naprawić za pomocą Web3?](https://www.youtube.com/watch?v=WkvzYgCvWj8) +- [Juan Benet - DeSci, Niezależne laboratoria i nauka o danych na wielką skalę](https://www.youtube.com/watch?v=zkXM9H90g_E) +- [Sebastian Brunemeier — Jak DeSci może przekształcać badania biomedyczne i kapitał podwyższonego ryzyka](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/public/content/translations/pl/developers/docs/accounts/index.md b/public/content/translations/pl/developers/docs/accounts/index.md new file mode 100644 index 00000000000..cddddd482ac --- /dev/null +++ b/public/content/translations/pl/developers/docs/accounts/index.md @@ -0,0 +1,110 @@ +--- +title: Konta Ethereum +description: Wyjaśnienie kont Ethereum – ich struktury danych i powiązania z kryptografią kluczy. +lang: pl +isOutdated: true +--- + +Konto Ethereum jest jednostką z saldem etheru (ETH), która może wysyłać transakcje na Ethereum. Konta mogą być kontrolowane przez użytkownika lub wdrażane jako inteligentne kontrakty. + +## Warunki wstępne {#prerequisites} + +Konta to bardzo przyjazny dla początkujących temat. Ale aby pomóc Ci lepiej zrozumieć tę stronę, zalecamy przeczytanie naszego [wprowadzenia do Ethereum](/developers/docs/intro-to-ethereum/). + +## Rodzaje kont {#types-of-account} + +Ethereum ma dwa typy kont: + +- Zewnętrznie posiadane – kontrolowane przez każdego, kto ma klucze prywatne +- Kontrakt – inteligentny kontrakt realizowany w sieci, kontrolowany kodem. Dowiedz się więcej o [inteligentnych kontraktach](/developers/docs/smart-contracts/) + +Oba typy kont mają możliwość: + +- Odbierania, przechowywania i wysyłania ETH i tokenów +- Interakcji z wdrożonymi inteligentnymi kontraktami + +### Kluczowe różnice {#key-differences} + +**Zewnętrznie posiadane** + +- Tworzenie konta nic nie kosztuje +- Może inicjować transakcje +- Transakcje pomiędzy kontami zewnętrznymi mogą być tylko przelewem ETH + +**Kontrakt** + +- Tworzenie konta wiąże się z kosztami, ponieważ korzystasz z pamięci sieciowej +- Może wysyłać transakcje tylko w odpowiedzi na otrzymanie transakcji +- Transakcje z konta zewnętrznie posiadanego na konto kontraktu mogą wyzwalać kod, który może wykonywać wiele różnych działań, takich jak przenoszenie tokenów lub nawet tworzenie nowego kontraktu + +## Konto – analiza {#an-account-examined} + +Konta Ethereum mają cztery pola: + +- `nonce` – licznik, który wskazuje liczbę transakcji wysłanych z konta. Pole to gwarantuje, że transakcje są przetwarzane tylko raz. Dla konta kontraktu pole to oznacza liczbę kontraktów utworzonych przez konto. +- `balance` – ilość Wei należących do tego adresu. Wei to najmniejszy nominał ETH; 1e+18 Wei przypada na jeden ETH. +- `codeHash` – wszystkie tego rodzaju fragmenty kodu zawarte są w bazie danych stanu do późniejszego pobrania. Dla kont kontraktów pole to jest kodem, który jest haszowany i przechowywany jako codeHash. Dla kont posiadanych zewnętrznie pole codeHash jest haszem pustego ciągu znaków (ang. string). +- `storageRoot` – jest znany także jako hasz pamięci. 256-bitowy skrót węzła głównego drzewa Merkle Patricia, który koduje zawartość pamięci konta (mapowanie między 256-bitowymi wartościami całkowitymi), zakodowany w trie jako mapowanie z 256-bitowego skrótu Keccak 256 -bitowe klucze liczb całkowitych do 256-bitowych wartości liczb całkowitych zakodowanych w RLP. To drzewo koduje hasz zawartości pamięci masowej tego konta i jest domyślnie puste. + +![Schemat przedstawiający skład konta](./accounts.png) _Schemat zaadaptowany z [Ilustracja Ethereum EVM](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ + +## Konta zewnętrzne i kluczowe pary {#externally-owned-accounts-and-key-pairs} + +Konto składa się z pary kluczy kryptograficznych: publicznego i prywatnego. Pomogą one udowodnić, że transakcja została faktycznie podpisana przez nadawcę i zapobiec fałszerstwom. Twój klucz prywatny jest tym, czego używasz do podpisywania transakcji, więc zapewnia Ci opiekę nad środkami powiązanymi z Twoim kontem. Tak naprawdę nigdy nie trzymasz kryptowaluty, trzymasz klucze prywatne – środki są zawsze w księdze Ethereum. + +Zapobiega to nadawaniu fałszywych transakcji przez złośliwe podmioty, ponieważ zawsze możesz zweryfikować nadawcę transakcji. + +Jeśli Alice chce wysłać ether ze swojego konta na konto Boba, Alice musi utworzyć prośbę o transakcję i wysłać ją do sieci w celu weryfikacji. Wykorzystanie kryptografii klucza publicznego przez Ethereum zapewnia, że ​​Alice może udowodnić, że pierwotnie zainicjowała żądanie transakcji. Bez mechanizmów kryptograficznych złośliwa Eve mogłaby po prostu publicznie rozesłać zapytanie, które wygląda jak „Wyślij 5 ETH z konta Alice na konto Eve”, i nikt nie byłby w stanie sprawdzić, czy nie pochodziło od Alice. + +## Tworzenie konta {#account-creation} + +Kiedy chcesz utworzyć konto, większość bibliotek wygeneruje losowy klucz prywatny. + +Klucz prywatny składa się z 64 znaków szesnastkowych i może być zaszyfrowany hasłem. + +Przykład: + +`fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036415f` + +Klucz publiczny jest generowany z klucza prywatnego przy użyciu algorytmu cyfrowego z krzywą eliptyczną. Otrzymujesz publiczny adres na swoje konto, biorąc ostatnie 20 bajtów klucza publicznego i dodając `0x` na początek. + +Oto przykład utworzenia konta w konsoli za pomocą `personal_newAccount` + +```go +> personal.newAccount() +Passphrase: +Repeat passphrase: +"0x5e97870f263700f46aa00d967821199b9bc5a120" + +> personal.newAccount("h4ck3r") +"0x3d80b31a78c30fc628f20b2c89d7ddbf6e53cedc" +``` + +[Dokumentacja GETH](https://geth.ethereum.org/docs) + +Możliwe jest pozyskanie nowych kluczy publicznych z Twojego klucza prywatnego, ale nie możesz uzyskać klucza prywatnego z kluczy publicznych. Oznacza to, że ważne jest, aby klucz prywatny był bezpieczny i, jak sugeruje nazwa, **PRYWATNE**. + +Potrzebujesz prywatnego klucza do podpisywania wiadomości i transakcji, które wygenerują podpis. Inni mogą wtedy wziąć podpis, aby uzyskać klucz publiczny, potwierdzając autora wiadomości. W swojej aplikacji możesz użyć biblioteki javascript do wysyłania transakcji do sieci. + +## Konto kontraktowe {#contract-accounts} + +Konta umowne mają również 42 znaki w układzie szesnastkowym: + +Przykład: + +`0x06012c8cf97bead5deae237070f9587f8e7a266d` + +Adres kontraktu jest zazwyczaj podany w momencie realizacji zamówienia do Ethereum Blockchain. Adres pochodzi z adresu twórcy i liczby transakcji wysłanych z tego adresu („nonce”). + +## Więcej o portfelach {#a-note-on-wallets} + +Konto nie jest portfelem. Portfel jest parą kluczy powiązaną z kontem będącym własnością użytkownika, która pozwala użytkownikowi na dokonywanie transakcji z konta lub zarządzanie nim. + +## Dodatkowo przeczytaj {#further-reading} + +_Wiesz o zasobach społecznościowych, które Ci pomogły? Wyedytuj tę stronę i dodaj je!_ + +## Powiązane tematy {#related-topics} + +- [Inteligentne kontrakty](/developers/docs/smart-contracts/) +- [Transakcje](/developers/docs/transactions/) diff --git a/src/content/translations/pl/developers/docs/apis/backend/index.md b/public/content/translations/pl/developers/docs/apis/backend/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/apis/backend/index.md rename to public/content/translations/pl/developers/docs/apis/backend/index.md diff --git a/src/content/translations/pl/developers/docs/apis/javascript/index.md b/public/content/translations/pl/developers/docs/apis/javascript/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/apis/javascript/index.md rename to public/content/translations/pl/developers/docs/apis/javascript/index.md diff --git a/public/content/translations/pl/developers/docs/blocks/index.md b/public/content/translations/pl/developers/docs/blocks/index.md new file mode 100644 index 00000000000..f29f39eb253 --- /dev/null +++ b/public/content/translations/pl/developers/docs/blocks/index.md @@ -0,0 +1,64 @@ +--- +title: Bloki +description: Przegląd bloków w blockchainie Ethereum – ich struktura danych, dlaczego są potrzebne i jak są wytwarzane. +lang: pl +--- + +Bloki są zestawami transakcji z kryptograficznym skrótem poprzedniego bloku w łańcuchu. Łączy to bloki (w łańcuch), ponieważ skróty są kryptograficznymi pochodnymi danych umieszczanych w blokach. Zapobiega to nadużyciom, ponieważ pojedyncza zmiana w dowolnym, historycznym bloku unieważniłaby wszystkie bloki następujące po nim, gdyż zmianie uległyby kolejne kryptograficzne skróty, co wychwyciłby każdy, kto korzysta z blokchaina. + +## Wymagania wstępne {#prerequisites} + +Bloki to temat przyjazny dla nowicjuszy. Jednak, aby pomóc ci w lepszym zrozumieniu tej strony, zalecamy najpierw przeczytać o [kontach](/developers/docs/accounts/), [transakcjach](/developers/docs/transactions/), a także nasze [Wprowadzenie do Ethereum](/developers/docs/intro-to-ethereum/). + +## Dlaczego bloki? {#why-blocks} + +Aby zagwarantować, że wszyscy uczestnicy sieci Ethereum pozostają w zsynchronizowanym stanie i zgadzają się odnośnie do dokładnej historii transakcji, grupujemy transakcje w blokach. Oznacza to, że dziesiątki (lub setki) transakcji są zatwierdzane, uzgadniane i synchronizowane jednocześnie. + +![Diagram przedstawiający transakcję w bloku, która powoduje zmiany stanu](./tx-block.png) _Diagram zaadaptowany z [Ilustrowanego Ethereum EVM](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ + +Dzięki rozgraniczaniu zatwierdzeń (transakcji zatwierdzeniowych) dajemy wszystkim uczestnikom sieci wystarczający zapas czasu, aby osiągnęli konsensus: nawet jeżeli żądania transakcyjne nadchodzą z częstotliwością kilku na sekundę, każdy jeden blok Ethereum jest zatwierdzany co około piętnaście sekund. + +## Jak działają bloki {#how-blocks-work} + +Aby zachować historię transakcji, bloki są ściśle uporządkowane (każdy nowy blok zawiera odniesienie do bloku nadrzędnego), podobnie ściśle uporządkowane są transakcje wewnątrz bloków. Poza rzadkimi przypadkami w każdym dowolnym momencie wszyscy uczestnicy sieci uzgadniają dokładną liczbę i historię bloków, pracują również nad tym, aby grupować bieżące żądania transakcji w następnym bloku. + +Gdy dany blok jest już złożony (wydobyty) przez jakiegoś górnika w sieci, jest rozprowadzany do reszty sieci; wszystkie węzły dodają ten blok na koniec swojego blockchaina, a wydobywanie trwa nadal. Dokładny proces składania (wydobywania) bloków, jak i proces zatwierdzania/konsensusu, są obecnie określone protokołem "proof-of-work" sieci Ethereum. + +### Demo wizualne {#a-visual-demo} + + + +## Protokół proof-of-work (dowodu wykonanej pracy) {#proof-of-work-protocol} + +Proof-of-work oznacza, że: + +- Węzły wydobywcze muszą zużyć zmienne acz znaczne ilości energii, czasu i mocy obliczeniowej, aby wyprodukować „certyfikat legalności” dla bloku, który proponują sieci. Pomaga to w ochronie sieci m.in. przed spamem/atakami typu denial-of-service, ponieważ produkcja certyfikatów obarczona jest dużym kosztem. +- Inni górnicy, którzy dowiadują się o nowym bloku z ważnym certyfikatem legalności, muszą go zaakceptować jako kolejny, obowiązujący blok w blockchainie. +- Dokładna ilość czasu potrzebnego każdemu górnikowi, aby wytworzył certyfikat, jest zmienną losową o dużej wariancji. Gwarantuje to, że będzie mało prawdopodobne, aby dwaj górnicy równocześnie dokonali walidacji zaproponowanych, kolejnych bloków; gdy górnik produkuje i rozprowadza nowy, certyfikowany blok, może być pewien, że zostanie on zaakceptowany przez sieć jako następny, obowiązujący blok w łańcuchu, bez konfliktu (chociaż istnieje protokół służący do radzenia sobie z konfliktami, podobnie jak z sytuacjami, gdy dwa łańcuchy certyfikowanych bloków powstaną niemal w tym samym czasie). + +[Więcej o wydobywaniu](/developers/docs/consensus-mechanisms/pow/mining/) + +## Co znajduje się w bloku? {#block-anatomy} + +- znacznik czasowy – czas wydobycia bloku; +- numer bloku – długość łańcucha bloków wyrażona w blokach; +- trudność – wysiłek potrzebny do wydobycia bloku; +- mixHash – unikatowy identyfikator bloku; +- nadrzędny skrót kryptograficzny (ang. hash) – unikatowy identyfikator bloku poprzedzającego bieżący (w ten sposób bloki są łączone w łańcuch); +- lista transakcji – transakcje umieszczone w bloku; +- źródło stanu – stan całego systemu zawierającego: salda kont, magazyn kontraktów, kod kontraktów i jednokrotki (ang. nonces) kont; +- jednokrotka – kryptograficzny skrót, który – gdy zespolimy go z wartością mixHash – jest dowodem na fakt przejścia przez blok procesu [proof-of-work](/developers/docs/consensus-mechanisms/pow/). + +## Rozmiar bloku {#block-size} + +Ważna uwaga na zakończenie jest taka, że same bloki są ograniczone pod względem rozmiaru. Każdy blok wyposażony jest w limit paliwa, który ustalany jest wspólnie przez górników i sieć: całkowita ilość paliwa zużyta przez wszystkie transakcje w bloku musi być mniejsza od tego limitu. Jest to o tyle ważne, że gwarantuje, iż bloki nie mogą być dowolnie duże. Gdyby bloki mogły mieć dowolną wielkość, wtedy mniej wydajne, pełne węzły stopniowo przestawałyby nadążać za siecią z powodu wymogów odnośnie do przestrzeni i prędkości. Limit paliwowy bloku 0 został zainicjowany wartością 5000; każdy górnik, który wydobywa nowy blok może zmienić limit paliwowy względem limitu w bloku nadrzędnym do około 0,1% w każdą ze stron. Od listopada 2018 do dziś limit paliwowy wynosi około 8 000 000. + +## Dalsza lektura {#further-reading} + +_Znasz jakiś zasób społecznościowy, który ci pomógł? Wyedytuj tę stronę i dodaj go!_ + +## Powiązane tematy {#related-topics} + +- [Wydobywanie](/developers/docs/consensus-mechanisms/pow/mining/) +- [Transakcje](/developers/docs/transactions/) +- [Paliwo](/developers/docs/gas/) diff --git a/src/content/translations/pl/developers/docs/consensus-mechanisms/index.md b/public/content/translations/pl/developers/docs/consensus-mechanisms/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/consensus-mechanisms/index.md rename to public/content/translations/pl/developers/docs/consensus-mechanisms/index.md diff --git a/src/content/translations/pl/developers/docs/consensus-mechanisms/pos/index.md b/public/content/translations/pl/developers/docs/consensus-mechanisms/pos/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/consensus-mechanisms/pos/index.md rename to public/content/translations/pl/developers/docs/consensus-mechanisms/pos/index.md diff --git a/src/content/translations/pl/developers/docs/consensus-mechanisms/pow/index.md b/public/content/translations/pl/developers/docs/consensus-mechanisms/pow/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/consensus-mechanisms/pow/index.md rename to public/content/translations/pl/developers/docs/consensus-mechanisms/pow/index.md diff --git a/src/content/translations/pl/developers/docs/consensus-mechanisms/pow/mining/index.md b/public/content/translations/pl/developers/docs/consensus-mechanisms/pow/mining/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/consensus-mechanisms/pow/mining/index.md rename to public/content/translations/pl/developers/docs/consensus-mechanisms/pow/mining/index.md diff --git a/src/content/translations/pl/developers/docs/dapps/index.md b/public/content/translations/pl/developers/docs/dapps/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/dapps/index.md rename to public/content/translations/pl/developers/docs/dapps/index.md diff --git a/src/content/translations/pl/developers/docs/data-and-analytics/block-explorers/index.md b/public/content/translations/pl/developers/docs/data-and-analytics/block-explorers/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/data-and-analytics/block-explorers/index.md rename to public/content/translations/pl/developers/docs/data-and-analytics/block-explorers/index.md diff --git a/src/content/translations/pl/developers/docs/data-and-analytics/index.md b/public/content/translations/pl/developers/docs/data-and-analytics/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/data-and-analytics/index.md rename to public/content/translations/pl/developers/docs/data-and-analytics/index.md diff --git a/src/content/translations/pl/developers/docs/development-networks/index.md b/public/content/translations/pl/developers/docs/development-networks/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/development-networks/index.md rename to public/content/translations/pl/developers/docs/development-networks/index.md diff --git a/src/content/translations/pl/developers/docs/ethereum-stack/index.md b/public/content/translations/pl/developers/docs/ethereum-stack/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/ethereum-stack/index.md rename to public/content/translations/pl/developers/docs/ethereum-stack/index.md diff --git a/public/content/translations/pl/developers/docs/evm/index.md b/public/content/translations/pl/developers/docs/evm/index.md new file mode 100644 index 00000000000..fdc3483b86a --- /dev/null +++ b/public/content/translations/pl/developers/docs/evm/index.md @@ -0,0 +1,81 @@ +--- +title: Maszyna Wirtualna Ethereum (EVM) +description: Wprowadzenie do maszyny wirtualnej Ethereum i jej powiązania ze stanem, transakcjami i inteligentnymi kontraktami. +lang: pl +--- + +Maszyna Wirtualna Ethereum (EVM) jest fizyczną instancją, która nie może być opisana w taki sam sposób, jak moglibyśmy wskazać na chmurę lub fale oceanu, ale _istnieje_ jako pojedynczy byt utrzymywany przez miliony połączonych komputerów, na których działa klient Ethereum. + +Protokół Ethereum istnieje wyłącznie w celu utrzymania niezakłóconej ciągłości i niezmienności operacji tej specjalnej maszyny stanów; jest to środowisko, w którym działają wszystkie konta oraz inteligentne kontrakty Ethereum. Każdy blok łańcucha Ethereum posiada jeden i tylko jeden stan „kanoniczny”, a EVM jest tym co definiuje zasady obliczeń nowego poprawnego stanu dla kolejnych bloków. + +## Wymagania wstępne {#prerequisites} + +Do zrozumienia EVM konieczna jest znajomość podstawowej terminologii informatycznej, takiej jak [bajty](https://wikipedia.org/wiki/Byte), [pamięć](https://wikipedia.org/wiki/Computer_memory) i [stos](). Równie pomocne może się okazać zaznajomienie się z takimi pojęciami, jak kryptografia, blockchain [funkcja haszująca](https://pl.wikipedia.org/wiki/Funkcja_skr%C3%B3tu), [Proof-of-Work](https://www.gpwinfostrefa.pl/czym-jest-proof-of-work/), [drzewo Merkle](https://pl.wikipedia.org/wiki/Drzewo_hash). + +## Od księgi głównej do maszyny stanowej {#from-ledger-to-state-machine} + +Analogia „księgi głównej” jest często używana w celu opisania blockchainów np. takich jak Bitcoin, które umożliwiają zdecentralizowanym walutom używanie fundamentalnych narzędzi kryptograficznych. Kryptowaluta zachowuje się, jak „normalna“ waluta poprzez zasady jakimi jest zarządzana, co ktoś może, a czego nie może robić, aby zmodyfikować księgę główną. Dla przykładu, adres Bitcoina nie może wydać więcej Bitcoinów, niż wcześniej otrzymał. Zasady te są podstawą wszystkich transakcji na Bitcoinie i wielu innych blockchainach. + +Choć Ethereum ma swoją własną kryptowalutę (Ether), która działa niemal dokładnie według tych samych intuicyjnych zasad, pozwala również stosować znacznie bardziej rozbudowaną funkcję: [inteligentne kontrakty](/developers/docs/smart-contracts/). Dla tej skomplikowanej funkcji wymagana jest bardziej wyszukana analogia. W odróżnieniu od rozproszonej księgi główne, Ethereum jest rozproszoną [maszyną stanową](https://pl.wikipedia.org/wiki/Automat_sko%C5%84czony). Stany Ethereum są wielkimi strukturami danych, które przechowują nie tylko wszystkie konta i ich salda, ale też _stan maszyny_, który może zmieniać się od bloku do bloku zgodnie z predefiniowanymi zasadami, i który może wykonywać dowolny kod maszynowy. Konkretne zasady zmiany stanu od bloku do bloku są zdefiniowane przez EVM. + +![Schemat przedstawiający strukturę EVM](./evm.png) _Schemat zaadaptowany z [Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ + +## Funkcja przejścia stanów Ethereum {#the-ethereum-state-transition-function} + +EVM zachowuje się jak funkcja matematyczna: biorąc pod uwagę dane wejściowe, wytwarza deterministyczne dane wyjściowe. Dlatego bardziej pomocne jest bardziej formalne opisanie Ethereum jako posiadającego **funkcję zmiany stanu**: + +``` +Y(S, T)= S' +``` + +Uwzględniając stary ważny stan `(S)` oraz nowy zestaw ważnych transakcji `(T)`, funkcja zmiany stanu Ethereum `Y(S, T)` tworzy nowy prawidłowy stan wyjściowy `S'` + +### Stan {#state} + +W odniesieniu do Ethereum, stan jest olbrzymią strukturą danych nazywaną zmodyfikowanym [drzewem Merkle Patricia](https://eth.wiki/en/fundamentals/patricia-tree), która zachowuje wszystkie [konta](/developers/docs/accounts/) połączone haszami i zredukowane do pojedynczego haszu źródłowego przechowywanego na blockchainie. + +### Transakcje {#transactions} + +Transakcje są to pojedyncze kryptograficznie podpisane instrukcję pochodzące z kont użytkowników. Możemy wyróżnić dwa typy transakcji: te, których wynikiem są wywołania komunikatów, oraz te, których wynikiem jest utworzenie kontraktu. + +Rezultatem stworzenia nowego kontraktu jest stworzenie nowego konta kontaktu zawierającego skompilowany kod bitowy [inteligentnego kontraktu](/developers/docs/smart-contracts/anatomy/). Ilekroć inne konto wysyła wywołania komunikatów do tego kontraktu, wykonuje on kod bitowy. + +## Instrukcje EVM {#evm-instructions} + +EVM działa jako [maszyna stosu](https://pl.wikipedia.org/wiki/Automat_sko%C5%84czony), która posiada 1024 elementy. Każdy element jest 256-bitowym słowem, które zostało wybrane dla zmaksymalizowania kompatybilności z algorytmem SHA-3-256. + +![A diagram showing the make up of the stack](./evm-stack.png) +_Diagram adapted from [Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ + +Removed as we should probably show memory and account storage too if showing stack--> + +Podczas wykonywania EVM przechowuje _pamięć_ przejściową (w postaci tablicy bajtów z adresami słów), która jednak nie jest trwała między transakcjami. + +Kontrakty jednak zawierają drzewo _pamięciowe_ Merkle Patricia (jako adresowalną tablicę słów), powiązane w wiadomości z odpowiednim kontem i częścią stanu globalnego. + +Skompilowany kod bitowy inteligentnego kontraktu wykonywany jest jako szereg [kodów operacyjnych](https://www.ethervm.io/) EVM, które przeprowadzają standardowe operacje na stosie, takie jak `XOR`, `AND`, `ADD`, `SUB` itp. EVM implementuje również szereg operacji stosu specyficznych dla blockchaina, takich jak `ADDRESS`, `BALANDCE`, `SHA3`, `BLOCKHASH` itp. + +![Schemat pokazujący, gdzie potrzebny jest gaz dla operacji EVM](../gas/gas.png) _Schemat zaadaptowany z [Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ + +## Implementacja EVM {#evm-implementations} + +Wszystkie implementacje EVM muszą być zgodne ze specyfikacją opisaną w Yellowpaper Ethereum. + +W ponad pięcioletniej historii Ethereum, EVM przeszło kilka gruntownych weryfikacji, w ciągu tego czasu znajdziemy również kilka implementacji EVM w różnych językach programowania. + +Wszyscy [klienci Ethereum](/developers/docs/nodes-and-clients/#execution-clients) posiadają implementacje EVM. Dodatkowo jest tu kilka samodzielnych implementacji, włącznie z: + +- [Py-EVM](https://github.com/ethereum/py-evm) - _Python_ +- [evmone](https://github.com/ethereum/evmone) - _C++_ +- [ethereumjs-vm](https://github.com/ethereumjs/ethereumjs-vm) - _JavaScript_ +- [eEVM](https://github.com/microsoft/eevm) - _C++_ + +## Dalsza lektura {#further-reading} + +- [Ethereum Yellowpaper](https://ethereum.github.io/yellowpaper/paper.pdf). +- [The Beigepaper](https://github.com/chronaeon/beigepaper) +- [Maszyna Wirtualna Ethereum (EVM) – kody operacyjne](https://www.ethervm.io/) + +## Tematy powiązane {#related-topics} + +- [Gaz](/developers/docs/gas/) diff --git a/src/content/translations/pl/developers/docs/frameworks/index.md b/public/content/translations/pl/developers/docs/frameworks/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/frameworks/index.md rename to public/content/translations/pl/developers/docs/frameworks/index.md diff --git a/public/content/translations/pl/developers/docs/gas/index.md b/public/content/translations/pl/developers/docs/gas/index.md new file mode 100644 index 00000000000..b8290c93ccc --- /dev/null +++ b/public/content/translations/pl/developers/docs/gas/index.md @@ -0,0 +1,50 @@ +--- +title: Gaz i opłaty +description: +lang: pl +incomplete: true +isOutdated: true +--- + +Gaz ma kluczowe znaczenie dla sieci Ethereum. To jest paliwo, które pozwala mu działać w taki sam sposób, jak samochód potrzebuje benzyny. + +## Warunki wstępne {#prerequisites} + +Aby lepiej zrozumieć tę stronę, zalecamy przeczytanie informacji na temat [transakcji](/developers/docs/transactions/) i [EVM](/developers/docs/evm/). + +## Co to jest gaz? {#what-is-gas} + +Gaz odnosi się do jednostki, która mierzy ilość wysiłku obliczeniowego wymaganego do wykonania określonych operacji w sieci Ethereum. + +Ponieważ każda transakcja Ethereum wymaga zasobów obliczeniowych do wykonania, każda transakcja wymaga opłaty. Gaz odnosi się do opłaty wymaganej do pomyślnego przeprowadzenia transakcji na Ethereum. + +![Schemat pokazujący, gdzie potrzebny jest nam gaz dla operacji EVM](./gas.png) _Schemat zaadaptowany z [Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ + +Zasadniczo opłaty za gaz są uiszczane w walucie ojczystej Ethereum, eterze (ETH). Ceny gazu są oznaczane w Gwei, który sam jest nominałem ETH — każdy Gwei jest równy 0,00000001 ETH (10-9 ETH). Na przykład, zamiast mówić, że Twój gaz kosztuje 0,000000001 Ethera, możesz powiedzieć, że gaz kosztuje 1 Gwei. + +Film ten oferuje zwięzłe omówienie gazu i powodów jego istnienia: + + + +## Dlaczego istnieją opłaty za gaz? {#why-do-gas-fees-exist} + +Krótko mówiąc, opłaty za gaz pomagają utrzymać bezpieczeństwo sieci Ethereum. Wymagając opłaty za każde obliczenie wykonane w sieci, zapobiegamy spamowaniu sieci. Aby zapobiec przypadkowym lub wrogim nieskończonym pętlom lub innym stratom obliczeniowym w kodzie, każda transakcja musi ustawić limit kroków obliczeniowych wykonania kodu, których może użyć. Podstawową jednostką obliczeniową jest „gaz”. + +Chociaż transakcja zawiera limit, każdy gaz niewykorzystany w transakcji jest zwracany użytkownikowi. + +![Schemat pokazujący, w jaki sposób niewykorzystany gaz jest zwracany](../transactions/gas-tx.png) _Schemat zaadaptowany z [Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ + +## Dalsza lektura {#further-reading} + +- [Zrozumienie gazu Ethereum, bloków i rynku opłat](https://medium.com/@eric.conner/understanding-ethereum-gas-blocks-and-the-fee-market-d5e268bf0a0e) +- [Objaśnienia dotyczące gazu Ethereum](https://defiprime.com/gas) + +## Powiązane narzędzia {#related-tools} + +- [ETH Gas Station](https://ethgasstation.info/) _Sektory zorientowane na konsumentów dla rynku gazu Ethereum_ +- [Etherscan Gas Tracker](https://etherscan.io/gastracker) _Oszacowanie ceny gazu transakcji_ +- [Bloxy Gas Analytics](https://stat.bloxy.info/superset/dashboard/gas/?standalone=true) _Statystyki Gazu Ethereum_ + +## Tematy powiązane {#related-topics} + +- [Wydobywanie](/developers/docs/consensus-mechanisms/pow/mining/) diff --git a/src/content/translations/pl/developers/docs/ides/index.md b/public/content/translations/pl/developers/docs/ides/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/ides/index.md rename to public/content/translations/pl/developers/docs/ides/index.md diff --git a/src/content/translations/pl/developers/docs/index.md b/public/content/translations/pl/developers/docs/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/index.md rename to public/content/translations/pl/developers/docs/index.md diff --git a/src/content/translations/pl/developers/docs/intro-to-ethereum/index.md b/public/content/translations/pl/developers/docs/intro-to-ethereum/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/intro-to-ethereum/index.md rename to public/content/translations/pl/developers/docs/intro-to-ethereum/index.md diff --git a/src/content/translations/pl/developers/docs/networks/index.md b/public/content/translations/pl/developers/docs/networks/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/networks/index.md rename to public/content/translations/pl/developers/docs/networks/index.md diff --git a/public/content/translations/pl/developers/docs/nodes-and-clients/index.md b/public/content/translations/pl/developers/docs/nodes-and-clients/index.md new file mode 100644 index 00000000000..1bb4b2615b9 --- /dev/null +++ b/public/content/translations/pl/developers/docs/nodes-and-clients/index.md @@ -0,0 +1,229 @@ +--- +title: Węzły i klienci +description: Przegląd węzłów Ethereum i oprogramowania klienta, a także jak skonfigurować węzeł i dlaczego powinieneś to zrobić. +lang: pl +sidebarDepth: 2 +isOutdated: true +--- + +Aby Ethereum działało w sposób zdecentralizowany, potrzebuje rozproszonej sieci węzłów, która może weryfikować bloki i dane transakcji. Potrzebujesz aplikacji znanej jako klient, aby „uruchomić węzeł”. + +## Wymagania wstępne {#prerequisites} + +Powinieneś zrozumieć koncepcję zdecentralizowanej sieci, zanim zagłębisz się w nią i uruchomisz własną instancję klienta Ethereum. Spójrz na nasze [wprowadzenie do Ethereum](/developers/docs/intro-to-ethereum/). + +## Czym są węzły i klienci? {#what-are-nodes-and-clients} + +„Węzeł” odnosi się do oprogramowania znanego jako klient. Klient jest implementacją Ethereum, która za zadanie ma weryfikację wszystkich transakcji w kolejnych blokach, utrzymywać bezpieczeństwo sieci i poprawność danych. + +Możesz zobaczyć widok sieci Ethereum w czasie rzeczywistym, patrząc na [mapę węzłów](https://etherscan.io/nodetracker). + +Wiele [implementacji klientów Ethereum](/developers/docs/nodes-and-clients/#execution-clients) istnieje w wielu językach. Cechą wspólną tych implementacji klienckich jest to, że wszystkie są zgodne z formalną specyfikacją. Ta specyfikacja określa, jak działa sieć Ethereum i blockchain. + +![Klient Eth1x](./client-diagram.png) Uproszczony schemat funkcji klienta Ethereum. + +## Typy węzłów {#node-types} + +Jeśli chcesz uruchomić swój własny węzeł, powinieneś zrozumieć, że istnieją różne typy węzłów, które zużywają dane w inny sposób. W rzeczywistości klienci mogą uruchamiać 3 różne typy węzłów — lekki, pełny i archiwalny. Istnieją również opcje różnych strategii synchronizacji, które umożliwiają szybszą synchronizację. Synchronizacja odnosi się do tego, jak szybko może uzyskać najbardziej aktualne informacje o stanie Ethereum. + +### Pełny węzeł {#full-node} + +- Przechowuje pełne dane blockchainu. +- Uczestniczy w walidacji bloków, weryfikuje wszystkie bloki i stany. +- Wszystkie stany mogą pochodzić z pełnego węzła. +- Obsługuje sieć i dostarcza dane na żądanie. + +### Lekki węzeł {#light-node} + +- Przechowuje łańcuch nagłówków i żąda wszystkiego innego. +- Potrafi zweryfikować poprawność danych względem korzeni stanu w nagłówkach bloków. +- Przydatne dla urządzeń o niskiej przepustowości, takich jak urządzenia wbudowane lub telefony komórkowe, które nie stać na przechowywanie gigabajtów danych blockchainu. + +### Węzeł archiwum {#archive-node} + +- Przechowuje wszystko w pełnym węźle i buduje archiwum stanów historycznych. Potrzebne, jeśli chcesz zapytać o coś takiego jak saldo konta w bloku #4 000,000. +- Dane te reprezentują jednostki terabajtów, co sprawia, że ​​węzły archiwów są mniej atrakcyjne dla przeciętnych użytkowników, ale mogą być przydatne w przypadku usług takich jak eksploratory bloków, dostawcy portfeli i analizy łańcuchów. + +Synchronizowanie klientów w dowolnym trybie innym niż archiwum spowoduje wyczyszczenie danych łańcucha bloków. Oznacza to, że nie ma archiwum wszystkich stanów historycznych, ale cały węzeł jest w stanie budować je na żądanie. + +## Dlaczego należy uruchomić węzeł Ethereum? {#why-should-i-run-an-ethereum-node} + +Uruchomienie węzła pozwala Ci bezspornie i prywatnie korzystać z Ethereum podczas wspierania ekosystemu. + +### Korzyści dla Ciebie {#benefits-to-you} + +Prowadzenie własnego węzła umożliwia korzystanie z Ethereum w sposób naprawdę prywatny, samowystarczalny i pozbawiony zaufania. Nie musisz ufać sieci, ponieważ możesz samodzielnie zweryfikować dane ze swoim klientem. „Nie ufaj, sprawdź” jest popularną mantrą blockchainu. + +- Twój węzeł samodzielnie weryfikuje wszystkie transakcje i bloki pod kątem zasad konsensusu. Oznacza to, że nie musisz polegać na żadnych innych węzłach w sieci ani w pełni im zaufać. +- Nie będziesz musiał ujawniać swoich adresów i sald do przypadkowych węzłów. Wszystko można sprawdzić z własnym klientem. +- Twoja zdecentralizowana aplikacja może być bezpieczniejsza i bardziej prywatna, jeśli używasz własnego węzła. [MetaMask](https://metamask.io), [MyEtherWallet](https://myetherwallet.com) i kilka innych portfeli można łatwo skierować na swój własny lokalny węzeł. + +![Jak uzyskać dostęp do Ethereum za pośrednictwem aplikacji i węzłów](./nodes.png) + +### Korzyści dla sieci {#network-benefits} + +Różnorodny zestaw węzłów jest ważny dla zdrowia, bezpieczeństwa i odporności operacyjnej Ethereum. + +- Zapewniają one dostęp do danych blockchainu dla niewielkich klientów, którzy od niego zależą. W szczytowych okresach użytkowania musi być wystarczająca liczba pełnych węzłów, aby ułatwić synchronizację lekkich węzłów. Lekkie węzły nie przechowują całego łańcucha bloków, zamiast tego weryfikują dane za pomocą [głównych stanów w nagłówkach bloków](/developers/docs/blocks/#block-anatomy). Mogą żądać więcej informacji od bloków, jeśli ich potrzebują. +- Pełne węzły wymuszają reguły konsensusu proof-of-work, więc nie można ich oszukać w celu zaakceptowania bloków, które ich nie przestrzegają. Zapewnia to dodatkowe bezpieczeństwo w sieci, ponieważ jeśli wszystkie węzły były lekkimi węzłami, które nie przeprowadzają pełnej weryfikacji, górnicy mogą zaatakować sieć i na przykład tworzyć bloki z wyższymi nagrodami. + +Jeśli uruchomisz pełny węzeł, korzysta z niego cała sieć Ethereum. + +## Uruchamianie własnego węzła {#running-your-own-node} + +### Projekty {#projects} + +[**Wybierz klienta i postępuj zgodnie z jego instrukcjami**](#clients) + +**ethnode —** **_uruchom węzeł Ethereum (Geth lub Parity) do celów rozwoju lokalnego._** + +- [GitHub](https://github.com/vrde/ethnode) + +**DAppNode —** **_system operacyjny do uruchamiania węzłów Web3, w tym Ethereum, na dedykowanym komputerze._** + +- [dappnode.io](https://dappnode.io) + +### Źródła {#resources} + +- [Uruchamianie pełnych węzłów Ethereum: kompletny przewodnik](https://medium.com/coinmonks/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _7 listopada 2019 r. – Justin Leroux_ +- [Schemat konfiguracji węzła](https://dev.to/5chdn/ethereum-node-configuration-modes-cheat-sheet-25l8) _5 stycznia, 2019 – Afryka Schoeden_ +- [Jak zainstalować i uruchomić węzeł Geth](https://www.quiknode.io/guides/infrastructure/how-to-install-and-run-a-geth-node) _4 października 2020 r. – Sahil Sen_ +- [Jak zainstalować i uruchomić węzeł OpenEthereum (poprzednio węzeł parzystości)](https://www.quiknode.io/guides/infrastructure/how-to-run-a-openethereum-ex-parity-client-node) _22 września 2020 r. – Sahil Sen_ + +## Alternatywy {#alternatives} + +Uruchamianie własnego węzła może być trudne i nie zawsze musisz uruchamiać własną instancję. W tym przypadku możesz użyć zewnętrznego dostawcy API, takiego jak [Infura](https://infura.io), [Alchemia](https://alchemyapi.io) lub [QuikNode](https://www.quiknode.io). Alternatywnie [ArchiveNode](https://archivenode.io/) to wspierany przez społeczność węzeł archiwizacji, który ma nadzieję na przekazanie danych archiwalnych w blockchain Ethereum niezależnym programistom, którzy w przeciwnym razie nie mogli sobie na nie pozwolić. + +Jeśli ktoś uruchamia węzeł Ethereum z publicznym API w Twojej społeczności, możesz wskazać swoje lekkie portfele (takie jak MetaMask) do węzła społeczności [za pośrednictwem niestandardowego RPC](https://metamask.zendesk.com/hc/en-us/articles/360015290012-Using-a-Local-Node) i zyskać większą prywatność niż korzystając z zaufanej trzeciej strony. + +Z drugiej strony, jeśli uruchamiasz klienta, możesz podzielić się nim ze znajomymi, którzy mogą tego potrzebować. + +## Klienci {#execution-clients} + +Ethereum jest zaprojektowany do oferowania różnych klientów, stworzonych przez różne zespoły przy użyciu różnych języków programowania. Dzięki temu sieć jest silniejsza i bardziej zróżnicowana. Idealnym celem jest osiągnięcie różnorodności bez zdominowania przez żadnego klienta w celu zmniejszenia pojedynczych punktów niepowodzenia. + +W tabeli przedstawiono podsumowanie poszczególnych klientów. Wszystkie z nich są aktywnie opracowywane, utrzymywane i przechodzą [testy klienckie](https://github.com/ethereum/tests). + +| Klient | Język | Systemy operacyjne | Sieci | Strategie synchronizacji | Wycinanie stanu | +| ------------------------------------------------------------ | -------- | --------------------- | ----------------------------------------- | ------------------------------ | --------------- | +| [Geth](https://geth.ethereum.org/) | Go | Linux, Windows, macOS | Mainnet, Görli, Rinkeby, Ropsten | Szybka, pełna | Archive, Pruned | +| [OpenEthereum](https://github.com/openethereum/openethereum) | Rust | Linux, Windows, macOS | Mainnet, Kovan, Ropsten i więcej | Warp, pełna | Archive, Pruned | +| [Nethermind](http://nethermind.io/) | C#, .NET | Linux, Windows, macOS | Mainnet, Görli, Ropsten, Rinkeby I więcej | Szybka, pełna | Archive, Pruned | +| [Besu](https://besu.hyperledger.org/en/stable/) | Java | Linux, Windows, macOS | Mainnet, Rinkeby, Ropsten, i Görli | Szybka, pełna | Archive, Pruned | +| [Trinity](https://trinity.ethereum.org/) | Python | Linux, macOS | Mainnet, Görli, Ropsten, Rinkeby i więcej | Pełna, wiązka, szybka/nagłówek | Archive | + +Więcej informacji o obsługiwanych sieciach znajdziesz w rozdziale [Sieci Ethereum](/developers/docs/networks/). + +### Zalety różnych implementacji {#advantages-of-different-implementations} + +Każdy klient ma unikalne przypadki i zalety, więc powinieneś wybrać jeden na podstawie własnych preferencji. Różnorodność pozwala implementacjom skupić się na różnych funkcjach i odbiorcach. Możesz wybrać klienta na podstawie funkcji, wsparcia, języka programowania lub licencji. + +#### Go Ethereum {#geth} + +Go Ethereum (w skrócie Geth) jest jedną z oryginalnych implementacji protokołu Ethereum. Obecnie jest to najbardziej rozpowszechniony klient z największą bazą użytkowników i różnorodnością narzędzi dla użytkowników i programistów. Jest napisany w Go, w pełni open source i licencjonowany na mocy GNU LGPL v3. + +#### OpenEthereum {#openethereum} + +OpenEthereum jest szybkim, bogatym w funkcje i zaawansowanym klientem Ethereum opartym na CLI. Został zbudowany w celu zapewnienia niezbędnej infrastruktury dla szybkich i niezawodnych usług, które wymagają szybkiej synchronizacji i maksymalnego czasu pracy. Celem OpenEthereum jest być najszybszy, najlżejszy i najbezpieczniejszy klient Ethereum. Zapewnia czystą, modułową bazę kodową pozwalającą na: + +- łatwe dostosowywanie. +- łatwą integrację z usługami lub produktami. +- minimalną ilość pamięci i miejsca przechowywania. + +OpenEthereum jest rozwijany przy użyciu najnowocześniejszego języka programowania Rust i licencjonowanego na licencji GPLv3. + +#### Nethermind {#nethermind} + +Nethermind to implementacja Ethereum stworzona za pomocą stosu technologicznego C# .NET, działająca na wszystkich głównych platformach, w tym ARM. Oferuje ona wspaniałe wyniki dzięki: + +- zoptymalizowanej maszynie wirtualnej +- dostępowi do stanu +- funkcjom sieciowym i bogatym funkcjom, takim jak pulpity nawigacyjne Prometheus/Graphana, obsługa rejestrowania sekwencyjnego dla przedsiębiorstw, śledzenie RPC JSON i wtyczki analityczne. + +Nethermind ma również [dokładną dokumentację](https://docs.nethermind.io), silne wsparcie dla programistów, społeczność online i wsparcie 24/7 dostępne dla użytkowników premium. + +#### Besu {#besu} + +Hyperledger Besu to klient Ethereum klasy korporacyjnej dla sieci publicznych i autoryzowanych. Obsługuje wszystkie funkcje sieci głównej Ethereum, od śledzenia do GraphQL, ma rozbudowany monitoring i jest obsługiwany przez ConsenSys, zarówno w otwartych kanałach społecznościowych, jak i poprzez komercyjne umowy SLA dla przedsiębiorstw. Jest napisany w Java i jest licencjonowany Apache 2.0. + +### Tryb synchronizacji {#sync-modes} + +- Pełna – pobiera wszystkie bloki (w tym nagłówki, transakcje i paragony) i generuje stan łańcucha bloków stopniowo poprzez wykonanie każdego bloku. +- Szybka (domyślna) – pobiera wszystkie bloki (w tym nagłówki, transakcje i paragony), weryfikuje wszystkie nagłówki i pobiera stan i weryfikuje go w nagłówkach. +- Lekki – pobiera wszystkie nagłówki bloków, dane bloków i weryfikuje niektóre losowo. +- Synchronizacja warp – co 5000 bloków, węzły wykonają migawkę o krytycznym znaczeniu dla konsensusu. Każdy węzeł może pobrać te zrzuty w sieci, umożliwiając szybką synchronizację. [Więcej o warp](https://openethereum.github.io/wiki/Warp-Sync-Snapshot-Format) +- Synchronizacja beam – tryb synchronizacji, który umożliwia szybsze działanie. Nie wymaga długich oczekiwań na synchronizację, zamiast tego wypełnia dane z upływem czasu. [Więcej o beam](https://medium.com/@jason.carver/intro-to-beam-sync-a0fd168be14a) +- Synchronizacja nagłówka – możesz użyć zaufanego punktu kontrolnego, aby rozpocząć synchronizację od nowszego nagłówka, a następnie pozostawić to procesowi w tle, aby ostatecznie wypełnić luki + +Typ synchronizacji określasz podczas konfiguracji, na przykład: + +**Konfigurowanie synchronizacji lekkiej w [GETH](https://geth.ethereum.org/)** + +`geth --syncmode "light"` + +**Konfigurowanie synchronizacji nagłówka w Trinity** + +`trinity --sync-from-checkpoint eth://block/byhash/0xa65877df954e1ff2012473efee8287252eee956c0d395a5791f1103a950a1e21?score=15,835,269,727,022,672,760,774` + +## Sprzęt {#hardware} + +Wymagania sprzętowe różnią się w zależności od klienta, ale zazwyczaj nie są wysokie, ponieważ węzeł musi po prostu pozostać zsynchronizowany. Nie należy mylić tego z wydobywaniem, które wymaga dużo większej mocy obliczeniowej. Jednak czas synchronizacji i wydajność poprawiają się dzięki mocniejszemu sprzętowi. W zależności od Twoich potrzeb i pragnień, Ethereum można uruchomić na Twoim komputerze, serwerze domowym, komputerach jednopłytowych lub wirtualnych serwerach prywatnych w chmurze. + +Prostym sposobem na uruchomienie własnego węzła jest użycie wtyczek „plug and play”, takich jak [DAppNode](https://dappnode.io/). Zapewnia sprzęt do uruchamiania klientów i aplikacji od nich zależnych z prostym interfejsem użytkownika. + +### Wymagania {#requirements} + +Przed zainstalowaniem klienta upewnij się, że komputer ma wystarczającą ilość zasobów, aby go uruchomić. Poniżej znajdują się minimalne i zalecane wymagania, jednak kluczowym elementem jest przestrzeń dyskowa. Synchronizacja blockchainu Ethereum jest bardzo intensywna pod kątem wejścia/wyjścia. Najlepiej mieć dysk półprzewodnikowy (SSD). Aby uruchomić klienta Ethereum na dysku twardym, potrzebujesz co najmniej 8 GB pamięci RAM jako pamięci podręcznej. + +#### Minimalne wymagania {#recommended-specifications} + +- Procesor z 2+ rdzeniami +- Minimum 4 GB RAM z SSD, 8 GB+ jeśli masz HDD +- Przepustowość 8 Mbit/s + +#### Zalecane specyfikacje {#recommended-specifications} + +- Szybki procesor z ponad 4 rdzeniami +- 16 GB+ RAM +- Szybki SSD z co najmniej 500 GB wolnego miejsca +- 25+ Mbit/s przepustowość + +W zależności od tego, które oprogramowanie i tryb synchronizacji mają być używane, potrzebne są setki GB przestrzeni dyskowej. Przybliżone wartości i wzrost można znaleźć poniżej. + +| Klient | Rozmiar dysku (szybka synchronizacja) | Rozmiar dysku (pełne archiwum) | +| --------------- | ------------------------------------- | ------------------------------ | +| Klient Ethereum | 400 GB+ | 4,7 TB+ | +| OpenEthereum | 280 GB+ | 4,6 TB+ | +| Nethermind | 200 GB+ | 3 TB+ | +| Besu | 750 GB+ | 4 TB+ | + +Te wykresy pokazują, jak zawsze zmieniają się wymagania dotyczące przechowywania. Aby uzyskać najbardziej aktualne dane dla Geth i Parity, zobacz [pełną synchronizację danych](https://etherscan.io/chartsync/chaindefault) i [archiwum danych synchronizacji](https://etherscan.io/chartsync/chainarchive). + +### Ethereum na komputerze jednopłytowym {#ethereum-on-a-single-board-computer} + +Najbardziej wygodnym i tanim sposobem uruchomienia węzła Ethereum jest korzystanie z jednego komputera z architekturą ARM jak Raspberry Pi. [Ethereum na ARM](https://twitter.com/EthereumOnARM) dostarcza obrazy klientów Geth, Parity, Nethereumd i Besu. Oto prosty samouczek [jak zbudować i skonfigurować klienta ARM](/developers/tutorials/run-node-raspberry-pi/). + +Małe, niedrogie i wydajne urządzenia, takie jak te, są idealne do uruchomienia węzła w domu. + +## Klienci Eth2 {#consensus-clients} + +Pojawili się nowi klienci obsługujący [aktualizacje Eth2](/roadmap/beacon-chain/). Będą obsługiwać łańcuch śledzący i wspierać nowy mechanizm konsensusu [proof-of-stake](/developers/docs/consensus-mechanisms/pos/). + +## Dalsza lektura {#further-reading} + +W Internecie jest wiele instrukcji i informacji o klientach Ethereum, tutaj jest kilka, które mogą być pomocne. + +- [Ethereum 101 – Część 2 – Zrozumienie węzłów](https://kauri.io/ethereum-101-part-2-understanding-nodes/48d5098292fd4f11b251d1b1814f0bba/a) _–Wil Barnes, 13 lutego 2019_ +- [Uruchamianie pełnych węzłów Ethereum: kompletny przewodnik](https://medium.com/@JustinMLeroux/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _7 listopada 2019 r. – Justin Leroux_ +- [Analizowanie wymagań sprzętowych dla Ethereum w pełni zweryfikowany węzeł](https://medium.com/coinmonks/analyzing-the-hardware-requirements-to-be-an-ethereum-full-validated-node-dc064f167902) _– Albert Palau, 24 września 2018 r._ +- [Uruchomienie węzła Besu na Ethereum Mainnet: Korzyści, Wymagania i Ustawienia](https://pegasys.tech/running-a-hyperledger-besu-node-on-the-ethereum-mainnet-benefits-requirements-and-setup/) _– Felipe Faraggi, 7 maja 2020_ + +## Powiązane tematy {#related-topics} + +- [Bloki](/developers/docs/blocks/) +- [Sieci](/developers/docs/networks/) + +## Powiązane samouczki {#related-tutorials} + +- [Uruchamianie węzła za pomocą Geth](/developers/tutorials/run-light-node-geth/) _– Jak pobrać, zainstalować i uruchomić Geth. Omówienie trybów synchronizacji, konsoli JavaScript i więcej._ +- [Turn your Raspberry Pi 4 into an Eth 1.0 or Eth 2.0 node just by flashing the MicroSD card – Installation guide](/developers/tutorials/run-node-raspberry-pi/) _– Flash your Raspberry Pi 4, plug in an ethernet cable, connect the SSD disk and power up the device to turn the Raspberry Pi 4 into a full Ethereum 1.0 node or an Ethereum 2.0 node (beacon chain / validator)._ diff --git a/src/content/translations/pl/developers/docs/nodes-and-clients/nodes-as-a-service/index.md b/public/content/translations/pl/developers/docs/nodes-and-clients/nodes-as-a-service/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/nodes-and-clients/nodes-as-a-service/index.md rename to public/content/translations/pl/developers/docs/nodes-and-clients/nodes-as-a-service/index.md diff --git a/src/content/translations/pl/developers/docs/oracles/index.md b/public/content/translations/pl/developers/docs/oracles/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/oracles/index.md rename to public/content/translations/pl/developers/docs/oracles/index.md diff --git a/src/content/translations/pl/developers/docs/programming-languages/delphi/index.md b/public/content/translations/pl/developers/docs/programming-languages/delphi/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/programming-languages/delphi/index.md rename to public/content/translations/pl/developers/docs/programming-languages/delphi/index.md diff --git a/src/content/translations/pl/developers/docs/programming-languages/dot-net/index.md b/public/content/translations/pl/developers/docs/programming-languages/dot-net/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/programming-languages/dot-net/index.md rename to public/content/translations/pl/developers/docs/programming-languages/dot-net/index.md diff --git a/src/content/translations/pl/developers/docs/programming-languages/golang/index.md b/public/content/translations/pl/developers/docs/programming-languages/golang/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/programming-languages/golang/index.md rename to public/content/translations/pl/developers/docs/programming-languages/golang/index.md diff --git a/src/content/translations/pl/developers/docs/programming-languages/index.md b/public/content/translations/pl/developers/docs/programming-languages/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/programming-languages/index.md rename to public/content/translations/pl/developers/docs/programming-languages/index.md diff --git a/src/content/translations/pl/developers/docs/programming-languages/java/index.md b/public/content/translations/pl/developers/docs/programming-languages/java/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/programming-languages/java/index.md rename to public/content/translations/pl/developers/docs/programming-languages/java/index.md diff --git a/src/content/translations/pl/developers/docs/programming-languages/javascript/index.md b/public/content/translations/pl/developers/docs/programming-languages/javascript/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/programming-languages/javascript/index.md rename to public/content/translations/pl/developers/docs/programming-languages/javascript/index.md diff --git a/src/content/translations/pl/developers/docs/programming-languages/python/index.md b/public/content/translations/pl/developers/docs/programming-languages/python/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/programming-languages/python/index.md rename to public/content/translations/pl/developers/docs/programming-languages/python/index.md diff --git a/src/content/translations/pl/developers/docs/programming-languages/rust/index.md b/public/content/translations/pl/developers/docs/programming-languages/rust/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/programming-languages/rust/index.md rename to public/content/translations/pl/developers/docs/programming-languages/rust/index.md diff --git a/src/content/translations/pl/developers/docs/scaling/index.md b/public/content/translations/pl/developers/docs/scaling/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/scaling/index.md rename to public/content/translations/pl/developers/docs/scaling/index.md diff --git a/public/content/translations/pl/developers/docs/scaling/layer-2-rollups/index.md b/public/content/translations/pl/developers/docs/scaling/layer-2-rollups/index.md new file mode 100644 index 00000000000..71ac1a6784d --- /dev/null +++ b/public/content/translations/pl/developers/docs/scaling/layer-2-rollups/index.md @@ -0,0 +1,135 @@ +--- +title: Pakiety zbiorcze warstwy 2 +description: Wprowadzenie do różnych rozwiązania skalowania warstwy 2 opracowywanych obecnie przez społeczność Ethereum. +lang: pl +incomplete: true +sidebarDepth: 3 +--- + +Warstwa 2 to zbiorczy termin dla rozwiązań zaprojektowanych, aby pomóc w skalowaniu aplikacji poprzez obsługę transakcji poza siecią główną Ethereum (warstwa 1), jednocześnie korzystając z solidnego zdecentralizowanego modelu bezpieczeństwa sieci głównej. Szybkość transakcji pogarsza się, gdy sieć jest zajęta, co może pogorszyć wrażenia użytkownika w przypadku niektórych rodzajów aplikacji zdecentralizowanych. A gdy sieć staje się coraz bardziej zajęta, ceny gazu rosną, ponieważ nadawcy transakcji starają się przelicytować się nawzajem. To może sprawić, że korzystanie z Ethereum będzie bardzo kosztowne. + +## Warunki wstępne {#prerequisites} + +Musisz dobrze się orientować we wszystkich podstawowych tematach i mieć zaawansowaną wiedzę na temat [skalowania Ethereum](/developers/docs/scaling/). Wdrażanie rozwiązań skalujących takich jak pakiety zbiorcze jest trudnym tematem, ponieważ technologia nie jest jeszcze sprawdzona w boju i nadal jest badana i rozwijana. + +## Dlaczego warstwa 2 jest potrzebna? {#why-is-layer-2-needed} + +- Niektóre przypadki użytkowania, takie jak gry blockchain, nie mają sensu z bieżącymi czasami transakcji +- Korzystanie z aplikacji blockchain może być niepotrzebnie kosztowne +- Żadne aktualizacje skalowalności nie powinny odbywać się kosztem decentralizacji ani bezpieczeństwa — warstwa 2 wykorzystuje Ethereum. + +## Pakiety zbiorcze {#rollups} + +Pakiety zbiorcze to rozwiązania, które wykonują transakcje poza głównym łańcuchem Ethereum (warstwa 1), ale publikują dane transakcji w warstwie 1. Ponieważ dane transakcji znajdują się w warstwie 1, możliwe jest zabezpieczenie pakietów zbiorczych przez warstwę 1. Dziedziczenie właściwości bezpieczeństwa warstwy 1, przy jednoczesnym wykonywaniu operacji poza warstwą 1, jest cechą definiującą pakiety zbiorcze. + +Trzy uproszczone właściwości pakietów zbiorczych: + +1. wykonanie transakcji poza warstwą 1 +2. data lub dowód transakcji znajduje się w warstwie 1 +3. kontrakt inteligentny pakietu zbiorczego w warstwie 1, który może wymusić wykonanie w warstwie 2 poprzez użycie danych transakcji w warstwie 1 + +Pakiety zbiorcze wymagają od „operatorów” wniesienia kaucji w kontrakcie pakiety zbiorczego. Zachęca to operatorów do weryfikowania i prawidłowego przeprowadzania transakcji. + +**Użyteczne ze względu na:** + +- obniżenie opłat dla użytkowników +- otwarte uczestnictwo +- szybką przepustowość transakcji + +Istnieją dwa typy pakietów zbiorczych z różnymi modelami zabezpieczeń: + +- **Pakiety zbiorcze o wiedzy zerowej**: uruchamiają obliczenia off-chain i przesyłają do łańcucha [**dowód ważności**](/glossary/#validity-proof) +- **Optymistyczne pakiety zbiorcze**: zakładają, że transakcje są domyślnie ważne i w razie problemów uruchamiają jedynie obliczenia za pośrednictwem [**dowodu oszustwa**](/glossary/#fraud-proof) + +### Pakiety zbiorcze o wiedzy zerowej {#zk-rollups} + +Pakiety zbiorcze o wiedzy zerowej, znane również jako pakiety zbiorcze, łączą setki transferów off-chain i generują dowód kryptograficzny, znany jako SNARK (succinct non-interactive argument of knowledge). Określa się to jako dowód ważności, który jest publikowany w warstwie 1. + +Inteligentny kontrakt pakietu zbiorczego ZK utrzymuje stan wszystkich transferów w warstwie 2, a stan ten może być aktualizowany tylko za pomocą dowodu ważności. To znaczy, że pakiety zbiorcze ZK potrzebują jedynie dowodu ważności, a nie wszystkich danych transakcji. W przypadku pakietu zbiorczego ZK walidacja bloku jest szybsza i tańsza, ponieważ zawiera mniej danych. + +W przypadku pakietu zbiorczego ZK nie ma opóźnień przy przenoszeniu środków z warstwy 2 do warstwy 1, ponieważ dowód ważności zaakceptowany przez kontrakt pakietu zbiorczego ZK już zweryfikował środki. + +Ponieważ pakiety zbiorcze ZK znajdują się w warstwie 2, mogą być zoptymalizowane w celu dalszego zmniejszenia rozmiaru transakcji. Na przykład konto jest reprezentowane przez indeks zamiast adres, co zmniejsza transakcję z 32 bajtów do zaledwie 4 bajtów. Transakcje są także zapisywane w Ethereum jako `calldata`, co ogranicza gaz. + +#### Zalety i wady {#zk-pros-and-cons} + +| Zalety | Wady | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| Szybszy czas osiągnięcia nieodwołalności, ponieważ stan jest natychmiast weryfikowany po przesłaniu dowodów do głównego łańcucha. | Niektóre nie obsługują EVM. | +| Niepodatne na ataki ekonomiczne, na które mogą być podatne [optymistyczne pakiety zbiorcze](#optimistic-pros-and-cons). | Obliczenia dowodu ważności są intensywne – nie warto ich przeprowadzać w przypadku aplikacji o niewielkiej aktywności w łańcuchu. | +| Są bezpieczne i zdecentralizowane, ponieważ dane, które są potrzebne do odzyskania stanu, są przechowywane w łańcuchu warstwy 1. | Operator może wpływać na zamawianie transakcji | + +#### Użycie pakietów zbiorczych ZK {#use-zk-rollups} + +Istnieje wiele implementacji pakietów zbiorczych ZK, które można zintegrować z własnymi aplikacjami zdecentralizowanymi: + +- [Loopring](https://loopring.org/#/) +- [Starkware](https://starkware.co/) +- [Matter Labs zkSync](https://zksync.io/) +- [Aztec 2.0](https://aztec.network/) +- [Sieć Hermez](https://hermez.io/) +- [zkTube](https://zktube.io/) + +### Optymistyczne pakiety zbiorcze {#optimistic-rollups} + +Optymistyczne pakiety zbiorcze są umieszczone równolegle do głównego łańcucha Ethereum w warstwie 2. Mogą one oferować ulepszenia skalowalności, ponieważ domyślnie nie dokonują żadnych obliczeń. Zamiast tego, po dokonaniu transakcji proponują nowy stan do sieci głównej, czyli „notarialnie” potwierdzają transakcję. + +W przypadku optymistycznych pakietów zbiorczych transakcje są zapisywane w łańcuchu Ethereum jako `calldata`, co optymalizuje je jeszcze bardziej dzięki ograniczeniu kosztów gazu. + +Ponieważ obliczanie to powolna, droga część korzystania z Ethereum, optymistyczne pakiety zbiorcze mogą przynieść nawet 10-100-krotną poprawę skalowalności zależną od transakcji. Ta liczba zwiększy się jeszcze bardziej wraz z wprowadzeniem [łańcuchów odłamkowych](/roadmap/danksharding). Wynika to z faktu, że w przypadku zakwestionowania transakcji dostępnych będzie więcej danych. + +#### Transakcje sporne {#disputing-transactions} + +Optymistyczne pakiety zbiorcze nie obliczają transakcji, więc potrzebny jest mechanizm zapewniający, że transakcje są legalne, a nie oszukańcze. W tym miejscu pojawiają się dowody oszustwa. Jeśli ktoś powiadomi o oszukańczej transakcji, pakiet zbiorczy wykryje oszustwo i uruchomi obliczenie transakcji przy użyciu dostępnych danych o stanie. Oznacza to, że możesz mieć dłuższy czas oczekiwania na potwierdzenie transakcji niż w przypadku pakietu zbiorczego ZK, ponieważ może być zakwestionowana. + +![Schemat pokazujący, co się dzieje, gdy dochodzi do oszukańczej transakcji w optymistycznym pakiecie zbiorczym w Ethereum](../optimistic-rollups/optimistic-rollups.png) + +Gaz potrzebny do obliczenia dowodu oszustwa jest nawet refundowany. Ben Jones z Optimism opisuje istniejący system zabezpieczeń: + +"_każdy, kto mógłby podjąć działania, które trzeba by udowodnić jako nieuczciwe, aby zabezpieczyć swoje fundusze, wymaga złożenia kaucji. Zasadniczo bierzesz trochę ETH, blokujesz go i mówisz „Hej, obiecuję powiedzieć prawdę”... Jeśli nie powiem prawdy, a oszustwa zostaną udowodnione, pieniądze te zostaną odcięte. Niektóre z tych pieniędzy nie tylko zostaną odcięte, ale część z nich będzie zapłatą za gaz, który ludzie wydali, przeprowadzając dowód oszustwa_" + +Widać więc zachęty: uczestnicy są karani za prowadzenie oszustw i otrzymują zwrot kosztów za ich udowodnienie. + +#### Zalety i wady {#optimistic-pros-and-cons} + +| Zalety | Wady | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | +| Wszystko, co możesz zrobić na warstwie 1 Ethereum, możesz zrobić za pomocą optymistycznych pakietów zbiorczych ze względu na kompatybilność z EVM i Solidity. | Długi czas oczekiwania na transakcję on-chain ze względu na potencjalne kwestionowanie oszustwa. | +| Wszystkie dane transakcji są przechowywane w łańcuchu warstwy 1, co oznacza, że są bezpieczne i zdecentralizowane. | Operator może wpływać na zamawianie transakcji | + +#### Stosowanie optymistycznych pakietów zbiorczych {#use-optimistic-rollups} + +Istnieje wiele implementacji optymistycznych pakietów zbiorczych, które można zintegrować z własnymi aplikacjami zdecentralizowanymi: + +- [Optimism](https://optimism.io/) +- [Offchain Labs Arbitrum Rollup](https://offchainlabs.com/) +- [Sieć paliwowa](https://fuel.sh/) +- [Cartesi](https://cartesi.io) +- [Boba](https://boba.network/) + +## Rozwiązania hybrydowe {#hybrid-solutions} + +Istnieją rozwiązania hybrydowe, które łączą w sobie najlepsze elementy wielu technologii warstwy 2 i mogą oferować konfigurowalne kompromisy. + +### Używanie rozwiązań hybrydowych {#use-hybrid-solutions} + +- [Celer](https://www.celer.network/) + +## Dalsza lektura {#further-reading} + +- [Niekompletny przewodnik po pakietach zbiorczych](https://vitalik.ca/general/2021/01/05/rollup.html) +- [Zero-Knowledge Blockchain Scalability](https://ethworks.io/assets/download/zero-knowledge-blockchain-scaling-ethworks.pdf) + +**Pakiety zbiorcze ZK** + +**Optymistyczne pakiety zbiorcze** + +- [Wszystko, co musisz wiedzieć o optymistycznym pakiecie zbiorczym](https://research.paradigm.xyz/rollups) +- [OVM Deep Dive](https://medium.com/ethereum-optimism/ovm-deep-dive-a300d1085f52) +- [Jak faktycznie działa pakiet zbiorczy Optimism?](https://www.paradigm.xyz/2021/01/how-does-optimisms-rollup-really-work) + +**Rozwiązania hybrydowe** + +- [Adding Hybrid PoS-Rollup Sidechain to Celer’s Coherent Layer-2 Platform on Ethereum](https://medium.com/celer-network/adding-hybrid-pos-rollup-sidechain-to-celers-coherent-layer-2-platform-d1d3067fe593) + +_Znasz jakieś zasoby społeczności, które Ci pomogły? Wyedytuj tę stronę i dodaj je!_ diff --git a/src/content/translations/pl/developers/docs/scaling/plasma/index.md b/public/content/translations/pl/developers/docs/scaling/plasma/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/scaling/plasma/index.md rename to public/content/translations/pl/developers/docs/scaling/plasma/index.md diff --git a/src/content/translations/pl/developers/docs/scaling/sidechains/index.md b/public/content/translations/pl/developers/docs/scaling/sidechains/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/scaling/sidechains/index.md rename to public/content/translations/pl/developers/docs/scaling/sidechains/index.md diff --git a/src/content/translations/pl/developers/docs/scaling/state-channels/index.md b/public/content/translations/pl/developers/docs/scaling/state-channels/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/scaling/state-channels/index.md rename to public/content/translations/pl/developers/docs/scaling/state-channels/index.md diff --git a/src/content/translations/pl/developers/docs/scaling/validium/index.md b/public/content/translations/pl/developers/docs/scaling/validium/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/scaling/validium/index.md rename to public/content/translations/pl/developers/docs/scaling/validium/index.md diff --git a/src/content/translations/pl/developers/docs/security/index.md b/public/content/translations/pl/developers/docs/security/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/security/index.md rename to public/content/translations/pl/developers/docs/security/index.md diff --git a/public/content/translations/pl/developers/docs/smart-contracts/anatomy/index.md b/public/content/translations/pl/developers/docs/smart-contracts/anatomy/index.md new file mode 100644 index 00000000000..21640c0184b --- /dev/null +++ b/public/content/translations/pl/developers/docs/smart-contracts/anatomy/index.md @@ -0,0 +1,662 @@ +--- +title: Anatomia inteligentnych kontraktów +description: Szczegółowa analiza anatomii inteligentnego kontaktu – funkcji, danych i zmiennych. +lang: pl +--- + +Inteligentny kontrakt to program, który działa pod adresem Ethereum. Składają się z danych i funkcji, które można wykonać po otrzymaniu transakcji. Oto przegląd tego, co stanowi inteligentny kontrakt. + +## Warunki wstępne {#prerequisites} + +Upewnij się, że najpierw przeczytałeś o [inteligentnych kontraktach](/developers/docs/smart-contracts/). Ten dokument zakłada, że znasz już języki programowania, takie jak JavaScript lub Python. + +## Dane {#data} + +Wszelkie dane kontraktu muszą być przypisane do lokalizacji: do `storage ` lub `memory`. Modyfikacja pamięci masowej w inteligentnym kontrakcie jest kosztowna, więc musisz zastanowić się, gdzie powinny znajdować się Twoje dane. + +### Pamięć {#storage} + +Trwałe dane są nazywane pamięcią masową i są reprezentowane przez zmienne stanu. Te wartości są przechowywane na stałe w blockchain. Musisz zadeklarować typ, aby kontrakt mógł śledzić, ile pamięci w blockchainie potrzebuje podczas kompilacji. + +```solidity +// Przykład Solidity +contract SimpleStorage { + uint storedData; // Zmienna stanu + // ... +} +``` + +```python +# Przykład Vyper +storedData: int128 +``` + +Jeśli programowałeś już w językach obiektowych, prawdopodobnie znasz większość typów. Jednak `address` powinien być dla Ciebie nowy, jeśli dopiero zaczynasz programować w Ethereum. + +Typ `address` może zawierać adres Ethereum, który odpowiada 20 bajtom lub 160 bitom. Jest zwracany w zapisach szesnastkowych z wiodącym 0x. + +Inne typy: + +- boolean +- liczba całkowita +- fixed point numbers +- fixed-size byte arrays +- dynamically-sized byte arrays +- Rational and integer literals +- String literals +- Hexadecimal literals +- Enums + +Aby uzyskać więcej wyjaśnień, zapoznaj się z dokumentami: + +- [Zobacz typy Vyper](https://vyper.readthedocs.io/en/v0.1.0-beta.6/types.html#value-types) +- [Zobacz typy Solidity](https://solidity.readthedocs.io/en/latest/types.html#value-types) + +### Pamięć {#memory} + +Wartości przechowywane tylko przez cały okres wykonywania funkcji kontraktowej nazywane są zmiennymi pamięci. Ponieważ nie są one przechowywane na stałe w blockchain, są znacznie tańsze w użyciu. + +Dowiedz się więcej o tym, jak EVM przechowuje dane (magazyn, pamięć i stos) w [Dokumenty Solidity](https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html?highlight=memory#storage-memory-and-the-stack). + +### Zmienne środowiskowe {#environment-variables} + +Oprócz zmiennych, które definiujesz w kontrakcie, istnieją pewne specjalne zmienne globalne. Są one wykorzystywane głównie do dostarczania informacji na temat łańcucha bloków lub bieżącej transakcji. + +Przykłady: + +| **Prop** | **Zmienna stanu** | **Opis** | +| ----------------- | ----------------- | -------------------------------------- | +| `block.timestamp` | uint256 | Aktualny blok — znacznik czasu epoki | +| `msg.sender` | address | Nadawca wiadomości (bieżące wywołanie) | + +## Funkcje {#functions} + +W najbardziej uproszczonym ujęciu, funkcje mogą pobierać informacje lub ustawiać informacje w odpowiedzi na przychodzące transakcje. + +Istnieją dwa rodzaje wywołań funkcji: + +- `internal` – nie tworzą one wywołania EVM + - Do funkcji i zmiennych stanu internal można uzyskać dostęp wyłącznie wewnętrznie (tzn. z bieżącego kontraktu lub pochodzących od niego kontraktów) +- `external` – tworzą one wywołanie EVM + - Funkcje zewnętrzne są częścią interfejsu kontraktu, co oznacza, że mogą być wywoływane z innych kontraktów oraz poprzez transakcje. Funkcja zewnętrzna `f` nie może być wywołana wewnętrznie (tj. `f()` nie działa, ale `this.f()` działa). + +Mogą być także `public` lub `private` + +- Funkcje `public` mogą być wywoływane wewnętrznie w ramach kontraktu lub zewnętrznie za pośrednictwem wiadomości +- Funkcje `private` są widoczne tylko dla kontraktu, w którym są zdefiniowane, a nie w kontraktach zależnych + +Zarówno funkcje, jak i zmienne stanu mogą być publiczne lub prywatne + +Oto funkcja aktualizacji zmiennej stanu w kontrakcie: + +```solidity +// Przykład Solidity +function update_name(string value) public { + dapp_name = value; +} +``` + +- Parametr `value` typu `string` jest przekazywany do funkcji: `update_name` +- Jest zadeklarowany jako `public`, co oznacza, że każdy może uzyskać do niego dostęp +- Nie jest zadeklarowany `view`, więc może modyfikować stan kontraktu + +### Funkcje view {#view-functions} + +Funkcje te obiecują nie zmieniać stanu danych kontraktu. Typowe przykłady to funkcje „getter”, które można wykorzystać na przykład do uzyskania salda użytkownika. + +```solidity +// Przykład Solidity +function balanceOf(address _owner) public view returns (uint256 _balance) { + return ownerPizzaCount[_owner]; +} +``` + +```python +dappName: public(string) + +@view +@public +def readName() -> string: + return dappName +``` + +Co jest uważane za modyfikację stanu: + +1. Zapis do zmiennych stanu. +2. [Emisja zdarzeń](https://solidity.readthedocs.io/en/v0.7.0/contracts.html#events). +3. [Tworzenie innych kontraktów](https://solidity.readthedocs.io/en/v0.7.0/control-structures.html#creating-contracts). +4. Używanie `selfdestruct`. +5. Wysyłanie etheru za pomocą wywołań. +6. Wywołanie dowolnej funkcji nieoznaczonej `view` lub `pure`. +7. Używanie wywołań niskiego poziomu. +8. Korzystanie z asemblera wbudowanego, który zawiera określone kody operacji. + +### Funkcje constructor {#constructor-functions} + +`konstruktor` funkcje są wykonywane tylko raz w momencie pierwszego wdrożenia kontraktu. Podobnie jak `konstruktor` w wielu językach programowania opartych na klasie, funkcje te często inicjują zmienne stanu do ich określonych wartości. + +```solidity +// Przykład Solidity +// Inicjuje dane umowy, ustawia `właściciela` +// na adres twórcy kontraktu. +constructor() public { + // Wszystkie inteligentne kontrakty opierają się na transakcjach zewnętrznych, aby wyzwolić swoje funkcje. + // `msg` to zmienna globalna zawierająca odpowiednie dane dotyczące danej transakcji, + // takie jak adres nadawcy i wartość ETH zawarta w transakcji. + // Dowiedz się więcej: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties + owner = msg.sender; +} +``` + +```python +# Przykład Vyper + +@external +def __init__(_beneficiary: address, _bidding_time: uint256): + self.beneficiary = _beneficiary + self.auctionStart = block.timestamp + self.auctionEnd = self.auctionStart + _bidding_time +``` + +### Wbudowane funkcje {#built-in-functions} + +Oprócz zmiennych i funkcji, które definiujesz w kontrakcie, istnieje kilka specjalnych wbudowanych funkcji. Najbardziej oczywistym przykładem jest: + +- `address.send()` – Solidity +- `send(address)` – Vyper + +Pozwalają one na wysyłanie ETH do innych kont. + +## Pisanie funkcji {#writing-functions} + +Twoja funkcja wymaga: + +- zmiennej i typu parametru (jeżeli akceptuje parametry) +- deklaracji wewnętrznej/zewnętrznej +- deklaracji pure/view/payable +- typu zwrotów (jeśli zwraca wartość) + +```solidity +pragma solidity >=0.4.0 <=0.6.0; + +contract ExampleDapp { + string dapp_name; // state variable + + // Called when the contract is deployed and initializes the value + constructor() public { + dapp_name = "My Example dapp"; + } + + // Get Function + function read_name() public view returns(string) { + return dapp_name; + } + + // Set Function + function update_name(string value) public { + dapp_name = value; + } +} +``` + +Pełny kontrakt może wyglądać w ten sposób. Tutaj funkcja `constructor` zapewnia początkową wartość zmiennej `dapp_name`. + +## Zdarzenia i dzienniki {#events-and-logs} + +Zdarzenia pozwalają Ci komunikować się z inteligentnym kontraktem z Twojego frontendu lub innych aplikacji subskrybujących. Gdy transakcja zostanie wykopana, inteligentne kontrakty mogą emitować zdarzenia i zapisywać do blockchainu dzienniki, które frontend może następnie przetworzyć. + +## Przykłady z komentarzami {#annotated-examples} + +Są to niektóre przykłady napisane w Solidity. Jeśli chcesz pobawić się kodem, możesz wchodzić z nimi w interakcję w [Remix](http://remix.ethereum.org). + +### Witaj świecie {#hello-world} + +```solidity +// Określa wersję Solidity przy użyciu wersji semantycznej. +// Więcej informacji: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma +pragma solidity ^0.5.10; + +// Definiuje kontrakt o nazwie `HelloWorld`. +// Kontrakt jest zbiorem funkcji i danych (jego stanu). +// Po wdrożeniu kontrakt znajduje się pod określonym adresem w blockchainie Ethereum. +// Dowiedz się więcej: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html +contract HelloWorld { + + // Deklaruje zmienną stanu `message` typu `string`. + // zmienne stanu to zmienne, których wartości są stale przechowywane w pamięci kontraktów. + // Słowo kluczowe `public` udostępnia zmienne spoza kontraktu + // i tworzy funkcję, którą inne kontrakty lub klienci mogą wywołać, aby uzyskać dostęp do tej wartości. + ciąg wiadomości publicznych; + + // Podobne do wielu języków obiektowych opartych na klasie, konstruktorem jest + // specjalna funkcja, która jest wykonywana tylko w momencie tworzenia kontraktu. + // Konstruktory są używane do inicjowania danych kontraktu. + // Dowiedz się więcej: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constructors + constructor(string memory initMessage) public { + //Akceptuje argument ciągu `initMessage` i ustawia wartość + // na zmienną pamięci kontraktu `message`). + wiadomość = initMessage; + } + + // funkcja publiczna, która akceptuje argument ciągu + // i aktualizuje zmienną pamięci `message`. + function update(string memory newMessage) public { + message = newMessage; + } +} +``` + +### Token {#token} + +```solidity +pragma solidity ^0.5.10; + +contract Token { + // Adres porównywalny z adresem e-mail - jest używany do indentyfikacji konta w Ethereum. + // Adresy mogą reprezentować inteligentne kontrakty lub konta zewnętrzne (użytkowników). + // Dowiedz się więcej: https://solidity.readthedocs.io/en/v0.5.10/types.html#address + address public owner; + + // Mapowanie jest zasadniczo strukturą danych o postaci tablicy skrótów. + // To mapowanie przypisuje niepodpisaną liczbę całkowitą (saldo tokena) do adresu (posiadacza tokenu). + // Dowiedz się więcej: https://solidity.readthedocs.io/en/v0.5.10/types.html#mapping-types + mapowanie (adres => uint) publiczne saldo; + + // Wydarzenia pozwalają na rejestrowanie aktywności w blockchain. + // Klienci Ethereum mogą słuchać zdarzeń, aby reagować na zmiany stanu kontraktu. + // Dowiedz się więcej: https://solidity.readthedocs.io/en/v0.5.10/contracty. tml#events + Transferu zdarzeń (adres od, adres do kwoty uint); + + // inicjuje dane umowy, ustawienie `właściciela` + // na adres twórcy kontraktu. + constructor() public { + // Wszystkie inteligentne kontrakty opierają się na transakcjach zewnętrznych, aby wyzwolić swoje funkcje. + // `msg` to zmienna globalna zawierająca odpowiednie dane dotyczące danej transakcji, + // takie jak adres nadawcy i wartość ETH zawarta w transakcji. + // Dowiedz się więcej: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties + owner = msg.sender; + } + + // Tworzy liczbę nowych tokenów i wysyła je na adres. + function mint(address receiver, uint amount) public { + // `require` jest strukturą kontroli używaną do wymuszania pewnych warunków. + // Jeśli wyrażenie `require` oceni na `false`, wyzwalany jest wyjątek, + // który cofa wszystkie zmiany w stanie podczas bieżącego wywołąnia. + // Więcej informacji: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions + + // Tylko właściciel kontraktu może wywołać tę funkcję + require(msg.sender == owner, "You are not the owner."); + + // Wymusza maksymalną kwotę tokenów + require(amount < 1e60, "Maximum issuance exceeded"); + + // Zwiększa saldo `receiver` o `amount` + balances[receiver] += amount; + } + + // Wysyła kwotę istniejących tokenów od dowolnego wywołującego na adres. + function transfer(address receiver, uint amount) public { + // Nadawca musi mieć wystarczającą ilość tokenów, aby wysłać + require(amount <= balances[msg.sender], "Insufficient balance."); + + // Dostosowuje salda tokenów z dwóch adresów + balances[msg.sender] -= amount; + balances[receiver] += amount; + + // Emituje wydarzenie zdefiniowane wcześniej + emit Transfer(msg.sender, receiver, amount); + } +} +``` + +### Unikalne zasoby cyfrowe {#unique-digital-asset} + +```solidity +pragma solidity ^0.5.10; + +// Imports symbols from other files into the current contract. +// In this case, a series of helper contracts from OpenZeppelin. + + +// Learn more: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#importing-other-source-files + +import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; +import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; +import "../node_modules/@openzeppelin/contracts/introspection/ERC165.sol"; +import "../node_modules/@openzeppelin/contracts/math/SafeMath.sol"; + +// The `is` keyword is used to inherit functions and keywords from external contracts. +// In this case, `CryptoPizza` inherits from the `IERC721` and `ERC165` contracts. + + +// Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#inheritance +contract CryptoPizza is IERC721, ERC165 { + // Uses OpenZeppelin's SafeMath library to perform arithmetic operations safely. + // Learn more: https://docs.openzeppelin.com/contracts/2.x/api/math#SafeMath + using SafeMath for uint256; + + // Constant state variables in Solidity are similar to other languages + // but you must assign from an expression which is constant at compile time. + + + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constant-state-variables + uint256 constant dnaDigits = 10; + uint256 constant dnaModulus = 10 ** dnaDigits; + bytes4 private constant _ERC721_RECEIVED = 0x150b7a02; + + // Struct types let you define your own type + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#structs + struct Pizza { + string name; + uint256 dna; + } + + // Creates an empty array of Pizza structs + Pizza[] public pizzas; + + // Mapping from pizza ID to its owner's address + mapping(uint256 => address) public pizzaToOwner; + + // Mapping from owner's address to number of owned token + mapping(address => uint256) public ownerPizzaCount; + + // Mapping from token ID to approved address + mapping(uint256 => address) pizzaApprovals; + + // You can nest mappings, this example maps owner to operator approvals + mapping(address => mapping(address => bool)) private operatorApprovals; + + // Internal function to create a random Pizza from string (name) and DNA + function _createPizza(string memory _name, uint256 _dna) + // The `internal` keyword means this function is only visible + // within this contract and contracts that derive this contract + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#visibility-and-getters + internal + // `isUnique` is a function modifier that checks if the pizza already exists + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html#function-modifiers + isUnique(_name, _dna) + { + // Adds Pizza to array of Pizzas and get id + uint256 id = SafeMath.sub(pizzas.push(Pizza(_name, _dna)), 1); + + // Checks that Pizza owner is the same as current user + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions + assert(pizzaToOwner[id] == address(0)); + + // Maps the Pizza to the owner + pizzaToOwner[id] = msg.sender; + ownerPizzaCount[msg.sender] = SafeMath.add( + ownerPizzaCount[msg.sender], + 1 + ); + } + + // Creates a random Pizza from string (name) + function createRandomPizza(string memory _name) public { + uint256 randDna = generateRandomDna(_name, msg.sender); + _createPizza(_name, randDna); + } + + // Generates random DNA from string (name) and address of the owner (creator) + function generateRandomDna(string memory _str, address _owner) + public + // Functions marked as `pure` promise not to read from or modify the state + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#pure-functions + pure + returns (uint256) + { + // Generates random uint from string (name) + address (owner) + uint256 rand = uint256(keccak256(abi.encodePacked(_str))) + + uint256(_owner); + rand = rand % dnaModulus; + return rand; + } + + // Returns array of Pizzas found by owner + function getPizzasByOwner(address _owner) + public + // Functions marked as `view` promise not to modify state + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#view-functions + view + returns (uint256[] memory) + { + // Uses the `memory` storage location to store values only for the + // lifecycle of this function call. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/introduction-to-smart-contracts.html#storage-memory-and-the-stack + uint256[] memory result = new uint256[](ownerPizzaCount[_owner]); + uint256 counter = 0; + for (uint256 i = 0; i < pizzas.length; i++) { + if (pizzaToOwner[i] == _owner) { + result[counter] = i; + counter++; + } + } + return result; + } + + // Transfers Pizza and ownership to other address + function transferFrom(address _from, address _to, uint256 _pizzaId) public { + require(_from != address(0) && _to != address(0), "Invalid address."); + require(_exists(_pizzaId), "Pizza does not exist."); + require(_from != _to, "Cannot transfer to the same address."); + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + + ownerPizzaCount[_to] = SafeMath.add(ownerPizzaCount[_to], 1); + ownerPizzaCount[_from] = SafeMath.sub(ownerPizzaCount[_from], 1); + pizzaToOwner[_pizzaId] = _to; + + // Emits event defined in the imported IERC721 contract + emit Transfer(_from, _to, _pizzaId); + _clearApproval(_to, _pizzaId); + } + + /** + * Safely transfers the ownership of a given token ID to another address + * If the target address is a contract, it must implement `onERC721Received`, + * which is called upon a safe transfer, and return the magic value + * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; + * otherwise, the transfer is reverted. + */ + function safeTransferFrom(address from, address to, uint256 pizzaId) + public + { + // solium-disable-next-line arg-overflow + this.safeTransferFrom(from, to, pizzaId, ""); + } + + /** + * Safely transfers the ownership of a given token ID to another address + * If the target address is a contract, it must implement `onERC721Received`, + * which is called upon a safe transfer, and return the magic value + * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; + * otherwise, the transfer is reverted. + */ + function safeTransferFrom( + address from, + address to, + uint256 pizzaId, + bytes memory _data + ) public { + this.transferFrom(from, to, pizzaId); + require(_checkOnERC721Received(from, to, pizzaId, _data), "Must implmement onERC721Received."); + } + + /** + * Internal function to invoke `onERC721Received` on a target address + * The call is not executed if the target address is not a contract + */ + function _checkOnERC721Received( + address from, + address to, + uint256 pizzaId, + bytes memory _data + ) internal returns (bool) { + if (!isContract(to)) { + return true; + } + + bytes4 retval = IERC721Receiver(to).onERC721Received( + msg.sender, + from, + pizzaId, + _data + ); + return (retval == _ERC721_RECEIVED); + } + + // Burns a Pizza - destroys Token completely + // The `external` function modifier means this function is + // part of the contract interface and other contracts can call it + function burn(uint256 _pizzaId) external { + require(msg.sender != address(0), "Invalid address."); + require(_exists(_pizzaId), "Pizza does not exist."); + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + + ownerPizzaCount[msg.sender] = SafeMath.sub( + ownerPizzaCount[msg.sender], + 1 + ); + pizzaToOwner[_pizzaId] = address(0); + } + + // Returns count of Pizzas by address + function balanceOf(address _owner) public view returns (uint256 _balance) { + return ownerPizzaCount[_owner]; + } + + // Returns owner of the Pizza found by id + function ownerOf(uint256 _pizzaId) public view returns (address _owner) { + address owner = pizzaToOwner[_pizzaId]; + require(owner != address(0), "Invalid Pizza ID."); + return owner; + } + + // Approves other address to transfer ownership of Pizza + function approve(address _to, uint256 _pizzaId) public { + require(msg.sender == pizzaToOwner[_pizzaId], "Must be the Pizza owner."); + pizzaApprovals[_pizzaId] = _to; + emit Approval(msg.sender, _to, _pizzaId); + } + + // Returns approved address for specific Pizza + function getApproved(uint256 _pizzaId) + public + view + returns (address operator) + { + require(_exists(_pizzaId), "Pizza does not exist."); + return pizzaApprovals[_pizzaId]; + } + + /** + * Private function to clear current approval of a given token ID + * Reverts if the given address is not indeed the owner of the token + */ + function _clearApproval(address owner, uint256 _pizzaId) private { + require(pizzaToOwner[_pizzaId] == owner, "Must be pizza owner."); + require(_exists(_pizzaId), "Pizza does not exist."); + if (pizzaApprovals[_pizzaId] != address(0)) { + pizzaApprovals[_pizzaId] = address(0); + } + } + + /* + * Sets or unsets the approval of a given operator + * An operator is allowed to transfer all tokens of the sender on their behalf + */ + function setApprovalForAll(address to, bool approved) public { + require(to != msg.sender, "Cannot approve own address"); + operatorApprovals[msg.sender][to] = approved; + emit ApprovalForAll(msg.sender, to, approved); + } + + // Tells whether an operator is approved by a given owner + function isApprovedForAll(address owner, address operator) + public + view + returns (bool) + { + return operatorApprovals[owner][operator]; + } + + // Takes ownership of Pizza - only for approved users + function takeOwnership(uint256 _pizzaId) public { + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + address owner = this.ownerOf(_pizzaId); + this.transferFrom(owner, msg.sender, _pizzaId); + } + + // Checks if Pizza exists + function _exists(uint256 pizzaId) internal view returns (bool) { + address owner = pizzaToOwner[pizzaId]; + return owner != address(0); + } + + // Checks if address is owner or is approved to transfer Pizza + function _isApprovedOrOwner(address spender, uint256 pizzaId) + internal + view + returns (bool) + { + address owner = pizzaToOwner[pizzaId]; + // Disable solium check because of + // https://github.com/duaraghav8/Solium/issues/175 + // solium-disable-next-line operator-whitespace + return (spender == owner || + this.getApproved(pizzaId) == spender || + this.isApprovedForAll(owner, spender)); + } + + // Check if Pizza is unique and doesn't exist yet + modifier isUnique(string memory _name, uint256 _dna) { + bool result = true; + for (uint256 i = 0; i < pizzas.length; i++) { + if ( + keccak256(abi.encodePacked(pizzas[i].name)) == + keccak256(abi.encodePacked(_name)) && + pizzas[i].dna == _dna + ) { + result = false; + } + } + require(result, "Pizza with such name already exists."); + _; + } + + // Returns whether the target address is a contract + function isContract(address account) internal view returns (bool) { + uint256 size; + // Currently there is no better way to check if there is a contract in an address + // than to check the size of the code at that address. + // See https://ethereum.stackexchange.com/a/14016/36603 + // for more details about how this works. + // TODO Check this again before the Serenity release, because all addresses will be + // contracts then. + + + // solium-disable-next-line security/no-inline-assembly + assembly { + size := extcodesize(account) + } + return size > 0; + } +} +``` + +## Dodatkowo przeczytaj {#further-reading} + +Sprawdź dokumentację Solidity i Vyper, aby uzyskać pełniejszy przegląd inteligentnych kontraktów: + +- [Solidity](https://solidity.readthedocs.io/) +- [Vyper](https://vyper.readthedocs.io/) + +## Powiązane tematy {#related-topics} + +- [Inteligentne kontrakty](/developers/docs/smart-contracts/) +- [Maszyna Wirtualna Ethereum](/developers/docs/evm/) + +## Powiązane samouczki {#related-tutorials} + +- [Zmniejszenie kontraktów w celu walki z limitem wielkości kontraktu](/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/) _ – kilka praktycznych wskazówek, jak zmniejszyć rozmiar inteligentnego kontraktu._ +- [Rejestrowanie danych z inteligentnych kontraktów za pomocą zdarzeń](/developers/tutorials/logging-events-smart-contracts/) _– wprowadzenie do zdarzeń inteligentnych kontraktów i jak możesz ich używać do rejestrowania danych._ +- [Interakcja z innymi umowami z Solidity](/developers/tutorials/interact-with-other-contracts-from-solidity/) _– jak wdrożyć inteligentny kontrakt z istniejącego kontraktu i wchodzić z nim w interakcje._ diff --git a/src/content/translations/pl/developers/docs/smart-contracts/compiling/index.md b/public/content/translations/pl/developers/docs/smart-contracts/compiling/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/smart-contracts/compiling/index.md rename to public/content/translations/pl/developers/docs/smart-contracts/compiling/index.md diff --git a/src/content/translations/pl/developers/docs/smart-contracts/composability/index.md b/public/content/translations/pl/developers/docs/smart-contracts/composability/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/smart-contracts/composability/index.md rename to public/content/translations/pl/developers/docs/smart-contracts/composability/index.md diff --git a/src/content/translations/pl/developers/docs/smart-contracts/deploying/index.md b/public/content/translations/pl/developers/docs/smart-contracts/deploying/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/smart-contracts/deploying/index.md rename to public/content/translations/pl/developers/docs/smart-contracts/deploying/index.md diff --git a/src/content/translations/pl/developers/docs/smart-contracts/index.md b/public/content/translations/pl/developers/docs/smart-contracts/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/smart-contracts/index.md rename to public/content/translations/pl/developers/docs/smart-contracts/index.md diff --git a/src/content/translations/pl/developers/docs/smart-contracts/languages/index.md b/public/content/translations/pl/developers/docs/smart-contracts/languages/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/smart-contracts/languages/index.md rename to public/content/translations/pl/developers/docs/smart-contracts/languages/index.md diff --git a/src/content/translations/pl/developers/docs/smart-contracts/libraries/index.md b/public/content/translations/pl/developers/docs/smart-contracts/libraries/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/smart-contracts/libraries/index.md rename to public/content/translations/pl/developers/docs/smart-contracts/libraries/index.md diff --git a/src/content/translations/pl/developers/docs/smart-contracts/testing/index.md b/public/content/translations/pl/developers/docs/smart-contracts/testing/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/smart-contracts/testing/index.md rename to public/content/translations/pl/developers/docs/smart-contracts/testing/index.md diff --git a/src/content/translations/pl/developers/docs/standards/index.md b/public/content/translations/pl/developers/docs/standards/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/standards/index.md rename to public/content/translations/pl/developers/docs/standards/index.md diff --git a/public/content/translations/pl/developers/docs/standards/tokens/erc-20/index.md b/public/content/translations/pl/developers/docs/standards/tokens/erc-20/index.md new file mode 100644 index 00000000000..c08028e58bc --- /dev/null +++ b/public/content/translations/pl/developers/docs/standards/tokens/erc-20/index.md @@ -0,0 +1,152 @@ +--- +title: Standard tokena ERC-20 +description: +lang: pl +--- + +## Wprowadzenie {#introduction} + +**Czym jest token?** + +Tokeny mogą reprezentować praktycznie wszystko w Ethereum: + +- punkty reputacji na platformie internetowej +- umiejętności postaci w grze +- bilety na loterię +- aktywa finansowe, takie jak udział w spółce +- walutę fiducjarną, taką jak USD +- uncję złota +- i więcej... + +Tak potężna funkcja Ethereum musi być obsługiwana przez solidny standard, prawda? To jest dokładnie to, gdzie ERC-20 odgrywa rolę! Te standardy umożliwiają programistom tworzenie aplikacji tokenów, które mogą współpracować z innymi produktami i usługami. + +**Co to jest ERC-20?** + +ERC-20 wprowadza standard dla tokenów wymiennych, innymi słowy mają one właściwość, która sprawia, że każdy token jest dokładnie taki sam (pod względem typu i wartości) jak inny token. Na przykład token ERC-20 działa podobnie jak ETH, oznacza, że 1 token jest i będzie zawsze równy wszystkim pozostałym tokenom. + +## Warunki wstępne {#prerequisites} + +- [Konta](/developers/docs/accounts) +- [Inteligentne kontrakty](/developers/docs/smart-contracts/) +- [Standardy tokenów](/developers/docs/standards/tokens/) + +## Treść {#body} + +ERC-20 (Ethereum Request for Comments 20) zaproponowany przez Fabiana Vogelstellera w listopadzie 2015 r. jest standardem tokenów, który implementuje API dla tokenów w inteligentnych kontraktach. + +Zapewnia funkcje takie jak przesyłanie tokenów z jednego konta na drugie, uzyskanie aktualnego salda tokenów na koncie oraz całkowitą podaż tokenów dostępnych w sieci. Poza tym ma również kilka innych funkcji , takich jak zatwierdzanie, że ilość tokenów z konta może być wydana przez konto osoby trzeciej. + +Jeśli inteligentny kontrakt implementuje następujące metody i zdarzenia, można go nazwać kontraktem tokena ERC-20, a po wdrożeniu będzie odpowiedzialny za śledzenie utworzonych tokenów w Ethereum. + +Od [EIP-20](https://eips.ethereum.org/EIPS/eip-20): + +### Metody {#methods} + +```solidity +function name() public view returns (string) +function symbol() public view returns (string) +function decimals() public view returns (uint8) +function totalSupply() public view returns (uint256) +function balanceOf(address _owner) public view returns (uint256 balance) +function transfer(address _to, uint256 _value) public returns (bool success) +function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) +function approve(address _spender, uint256 _value) public returns (bool success) +function allowance(address _owner, address _spender) public view returns (uint256 remaining) +``` + +### Wydarzenia {#events} + +```solidity +event Transfer(address indexed _from, address indexed _to, uint256 _value) +event Approval(address indexed _owner, address indexed _spender, uint256 _value) + +``` + +### Przykłady {#web3py-example} + +Zobaczmy, dlaczego standard jest tak ważny, aby ułatwić nam sprawdza kontraktów z tokenami ERC-20 na Ethereum. Potrzebujemy tylko interfejsu binarnego Umowy (ABI), aby utworzyć interfejs dla każdego tokenu ERC-20. Jak możesz zobaczyć poniżej, użyjemy uproszczonego ABI, aby zmniejszyć złożoność przykładu. + +#### Przykład Web3.py {#web3py-example} + +Najpierw upewnij się, że zainstalowałeś [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) bibliotekę Pythona: + +``` +pip install web3 +``` + +```python +from web3 import Web3 + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI +weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # Wrapped ether (WETH) + +acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11" # Uniswap V2: DAI 2 + +# This is a simplified Contract Application Binary Interface (ABI) of an ERC-20 Token Contract. + +# It will expose only the methods: balanceOf(address), decimals(), symbol() and totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'decimals', + 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +dai_contract = w3.eth.contract(address=w3.toChecksumAddress(dai_token_addr), abi=simplified_abi) +symbol = dai_contract.functions.symbol().call() +decimals = dai_contract.functions.decimals().call() +totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals +addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# DAI +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) + +weth_contract = w3.eth.contract(address=w3.toChecksumAddress(weth_token_addr), abi=simplified_abi) +symbol = weth_contract.functions.symbol().call() +decimals = weth_contract.functions.decimals().call() +totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals +addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# WETH +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) +``` + +## Dalsza lektura {#further-reading} + +- [EIP-20: standard tokena ERC-20](https://eips.ethereum.org/EIPS/eip-20) +- [OpenZeppelin – tokeny](https://docs.openzeppelin.com/contracts/3.x/tokens#ERC20) +- [OpenZeppelin – implementacja ERC-20](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) +- [ConsenSys – wdrożenie ERC-20](https://github.com/ConsenSys/Tokens/blob/master/contracts/eip20/EIP20.sol) + +## Powiązane tematy {#related-topics} + +- [ERC-721](/developers/docs/standards/tokens/erc-721/) +- [ERC-777](/developers/docs/standards/tokens/erc-777/) +- [ERC-1155](/developers/docs/standards/tokens/erc-1155/) diff --git a/public/content/translations/pl/developers/docs/standards/tokens/erc-721/index.md b/public/content/translations/pl/developers/docs/standards/tokens/erc-721/index.md new file mode 100644 index 00000000000..fbee5905d4e --- /dev/null +++ b/public/content/translations/pl/developers/docs/standards/tokens/erc-721/index.md @@ -0,0 +1,248 @@ +--- +title: ERC-721 – standard tokenów niewymiennych +description: +lang: pl +--- + +## Wprowadzenie {#introduction} + +**Czym jest niewymienny token (NFT)?** + +Niewymienne tokeny (NFT) służą do identyfikacji czegoś lub kogoś w unikalny sposób. Ten typ tokenu jest idealny do użycia na platformach, które oferują przedmioty kolekcjonerskie, klucze dostępu, bilety loteryjne, numerowane miejsca na koncerty i mecze sportowe itp. Ten specjalny rodzaj tokena ma niesamowite możliwości, dlatego zasługuje na odpowiedni standard, ERC-721 pojawił się, aby to rozwiązać! + +**Co to jest ERC-721?** + +ERC-721 wprowadza standard dla NFT, innymi słowy ten typ tokena jest unikalny i może mieć różną wartość niż inny token z tego samego inteligentnego kontraktu, być może ze względu na jego wiek, rzadkość, a nawet coś innego, jak jego wygląd. Czekaj, wizualnie? + +Tak! Wszystkie NFT mają zmienną `uint256` o nazwie `tokenId`, więc dla każdego kontraktu ERC-721, para `contract address, uint256 tokenId` musi być unikatowa globalnie. Dzięki temu zdecentralizowana aplikacja może mieć „konwerter”, który używa `tokenId` jako danych wejściowych i wyświetla obraz czegoś fajnego, takiego jak zombie, broń, umiejętności lub niesamowite kociaki! + +## Warunki wstępne {#prerequisites} + +- [Konta](/developers/docs/accounts/) +- [Inteligentne kontrakty](/developers/docs/smart-contracts/) +- [Standardy tokenów](/developers/docs/standards/tokens/) + +## Treść {#body} + +ERC-721 (Ethereum Request for Comments 721), zaproponowany przez Williama Entrikena, Dietera Shirleya, Jacoba Evansa, Nastassia Sachs w styczniu 2018 r. to standard tokenów niewymiennych, który implementuje interfejs API dla tokenów w ramach inteligentnych kontraktów. + +Zapewnia funkcje, takie jak transfer tokenów z jednego konta na drugie, uzyskanie aktualnego salda tokenów na koncie, uzyskanie informacji o właścicielu określonego tokena, a także o całkowitej podaży tokena dostępnej w sieci. Poza tym ma również kilka innych funkcji, takich jak zatwierdzanie, że ilość tokenu z konta może być wydana przez konto osób trzecich. + +Jeśli inteligentny kontrakt implementuje następujące metody i zdarzenia, można go nazwać kontraktem tokenów niewymiennych ERC-721 , a po wdrożeniu będzie odpowiedzialny za śledzenie utworzonych tokenów w Ethereum. + +Od [EIP-721](https://eips.ethereum.org/EIPS/eip-721): + +### Metody {#methods} + +```solidity + function balanceOf(address _owner) external view returns (uint256); + function ownerOf(uint256 _tokenId) external view returns (address); + function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; + function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; + function transferFrom(address _from, address _to, uint256 _tokenId) external payable; + function approve(address _approved, uint256 _tokenId) external payable; + function setApprovalForAll(address _operator, bool _approved) external; + function getApproved(uint256 _tokenId) external view returns (address); + function isApprovedForAll(address _owner, address _operator) external view returns (bool); +``` + +### Wydarzenia {#events} + +```solidity + event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); + event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); + event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); +``` + +### Przykłady {#web3py-example} + +Zobaczmy, dlaczego standard jest tak ważny, aby ułatwić nam sprawdza kontraktów z tokenami ERC-721 na Ethereum. Potrzebujemy tylko interfejsu binarnego Umowy (ABI), aby utworzyć interfejs dla każdego tokenu ERC-721. Jak możesz zobaczyć poniżej, użyjemy uproszczonego ABI, aby zmniejszyć złożoność przykładu. + +#### Przykład Web3.py {#web3py-example} + +Najpierw upewnij się, że zainstalowałeś [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) bibliotekę Pythona: + +``` +pip install web3 +``` + +```python +from web3 import Web3 +from web3.utils.events import get_event_data + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # CryptoKitties Contract + +acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # CryptoKitties Sales Auction + +# To jest uproszczony interfejs ABI kontraktu ERC-721 NFT. +# It will expose only the methods: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'name', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'ownerOf', + 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, +] + +ck_extra_abi = [ + { + 'inputs': [], + 'name': 'pregnantKitties', + 'outputs': [{'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'name': '_kittyId', 'type': 'uint256'}], + 'name': 'isPregnant', + 'outputs': [{'name': '', 'type': 'bool'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +ck_contract = w3.eth.contract(address=w3.toChecksumAddress(ck_token_addr), abi=simplified_abi+ck_extra_abi) +name = ck_contract.functions.name().call() +symbol = ck_contract.functions.symbol().call() +kitties_auctions = ck_contract.functions.balanceOf(acc_address).call() +print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}") + +pregnant_kitties = ck_contract.functions.pregnantKitties().call() +print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}") + +# Using the Transfer Event ABI to get info about transferred Kitties. +tx_event_abi = { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'from', 'type': 'address'}, + {'indexed': False, 'name': 'to', 'type': 'address'}, + {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'Transfer', + 'type': 'event' +} + +# We need the event's signature to filter the logs +event_signature = w3.sha3(text="Transfer(address,address,uint256)").hex() + +logs = w3.eth.getLogs({ + "fromBlock": w3.eth.blockNumber - 120, + "address": w3.toChecksumAddress(ck_token_addr), + "topics": [event_signature] +}) + +# Notes: +# - 120 blocks is the max range for CloudFlare Provider +# - If you didn't find any Transfer event you can also try to get a tokenId at: +# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events +# Click to expand the event's logs and copy its "tokenId" argument + +recent_tx = [get_event_data(tx_event_abi, log)["args"] for log in logs] + +kitty_id = recent_tx[0]['tokenId'] # Paste the "tokenId" here from the link above +is_pregnant = ck_contract.functions.isPregnant(kitty_id).call() +print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}") +``` + +Kontrakt CryptoKitties zawiera kilka ciekawych wydarzeń poza standardowymi. + +Sprawdźmy dwa z nich, `Pregnant ` i `Birth`. + +```python +# Używanie ABI zdarzeń Pregnant i Birth w celu uzyskania informacji o nowych kociakach. + +ck_extra_events_abi = [ + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}], + 'name': 'Pregnant', + 'type': 'event' + }, + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'kittyId', 'type': 'uint256'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'genes', 'type': 'uint256'}], + 'name': 'Birth', + 'type': 'event' + }] + +# We need the event's signature to filter the logs +ck_event_signatures = [ + w3.sha3(text="Pregnant(address,uint256,uint256,uint256)").hex(), + w3.sha3(text="Birth(address,uint256,uint256,uint256,uint256)").hex(), +] + +# Here is a Pregnant Event: +# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog +pregnant_logs = w3.eth.getLogs({ + "fromBlock": w3.eth.blockNumber - 120, + "address": w3.toChecksumAddress(ck_token_addr), + "topics": [ck_extra_events_abi[0]] +}) + +recent_pregnants = [get_event_data(ck_extra_events_abi[0], log)["args"] for log in pregnant_logs] + +# Here is a Birth Event: +# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a +birth_logs = w3.eth.getLogs({ + "fromBlock": w3.eth.blockNumber - 120, + "address": w3.toChecksumAddress(ck_token_addr), + "topics": [ck_extra_events_abi[1]] +}) + +recent_births = [get_event_data(ck_extra_events_abi[1], log)["args"] for log in birth_logs] +``` + +## Popularne NFT {#popular-nfts} + +- [Etherscan NFT Tracker](https://etherscan.io/tokens-nft) wyświetla listę najpopularniejszych NFT na Ethereum według wielkości transferów. +- [CryptoKitties](https://www.cryptokitties.co/) to gra skoncentrowana wokół rozmnażania, kolekcjonerskiego i słodkich stworzonek – CryptoKitties. +- [Sorare](https://sorare.com/) to globalna gra piłkarska fantasy, w której możesz zbierać limitowane edycje przedmiotów kolekcjonerskich, zarządzać swoimi zespołami i konkurować o zdobycie nagród. +- [Usługa Nazw Ethereum (ENS)](https://ens.domains/) oferuje bezpieczny i zdecentralizowany sposób na zajęcie się zasobami w i poza łańcuchem bloków przy użyciu prostych imiona czytelne dla człowieka. +- [Unstoppable Domains](https://unstoppabledomains.com/) jest to firma z San Francisco budująca domeny w blockchainach. Domeny blockchainu zastępują adresy kryptowalut nazwami czytelnymi dla człowieka i mogą być używane do włączenia stron odpornych na cenzurę. +- [Gods Unchained Cards](https://godsunchained.com/) to TCG w blockchainie Ethereum, który używa NFT do zapewnienia rzeczywistego prawa własności w grze. + +## Dalsza lektura {#further-reading} + +- [EIP-721: ERC-721 – standard tokenów niewymiennych](https://eips.ethereum.org/EIPS/eip-721) +- [OpenZeppelin – dokumentacja ERC-721](https://docs.openzeppelin.com/contracts/3.x/erc721) +- [OpenZeppelin – implementacja ERC-721](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) + +## Powiązane tematy {#related-topics} + +- [ERC-20](/developers/docs/standards/tokens/erc-20/) +- [ERC-777](/developers/docs/standards/tokens/erc-777/) +- [ERC-1155](/developers/docs/standards/tokens/erc-1155/) diff --git a/src/content/translations/pl/developers/docs/standards/tokens/index.md b/public/content/translations/pl/developers/docs/standards/tokens/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/standards/tokens/index.md rename to public/content/translations/pl/developers/docs/standards/tokens/index.md diff --git a/src/content/translations/pl/developers/docs/storage/index.md b/public/content/translations/pl/developers/docs/storage/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/storage/index.md rename to public/content/translations/pl/developers/docs/storage/index.md diff --git a/public/content/translations/pl/developers/docs/transactions/index.md b/public/content/translations/pl/developers/docs/transactions/index.md new file mode 100644 index 00000000000..bf20e07fc54 --- /dev/null +++ b/public/content/translations/pl/developers/docs/transactions/index.md @@ -0,0 +1,152 @@ +--- +title: Transakcje +description: Przegląd transakcji Ethereum – sposób działania, struktury danych i metody wysyłania za pośrednictwem aplikacji. +lang: pl +isOutdated: true +--- + +Transakcje to podpisane kryptograficznie instrukcje od kont. Konto inicjuje transakcję, aby zaktualizować stan sieci Ethereum. Najprostszą transakcją jest przeniesienie ETH z jednego konta na drugie. + +## Warunki wstępne {#prerequisites} + +Aby lepiej zrozumieć tę stronę, zalecamy najpierw przeczytanie rozdziału Konta i naszego [Wprowadzenia do Ethereum](/developers/docs/intro-to-ethereum/). + +## Czym jest transakcja? {#whats-a-transaction} + +Transakcja Ethereum odnosi się do działania zainicjowanego przez konto będące własnością zewnętrzną, innymi słowy konto zarządzane przez człowieka, a nie przez kontrakt. Na przykład, jeśli Bob wysyła Alice 1 ETH, na koncie Boba musi się pojawić obciążenie, a na koncie Alice uznanie. Ta zmiana stanu ma miejsce w ramach transakcji. + +![Schemat pokazujący transakcję powodującą zmianę stanu](./tx.png) _Schemat zaadaptowany z [Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ + +Transakcje, które zmieniają stan EVM, muszą być transmitowane na całą sieć. Każdy węzeł może rozesłać prośbę o wykonanie transakcji na EVM; po tym wydarzeniu górnik wykona transakcję i roześle powstałą zmianę stanu do reszty sieci. + +Transakcje wymagają opłaty i muszą być wydobyte, aby stały się ważne. Aby uprościć ten przegląd, omówimy opłaty za gaz i wydobycie w innym miejscu. + +Przedłożona transakcja zawiera następujące informacje: + +- `recipient` – adres odbiorcy (w przypadku konta z właścicielem zewnętrznym transakcja przekaże wartość. W przypadku konta kontraktu transakcja wykona kod konta) +- `signature` – identyfikator nadawcy. Jest generowany, gdy klucz prywatny nadawcy podpisuje transakcję i potwierdza, że nadawca autoryzował tę transakcję +- `value` – kwota ETH do przelania od nadawcy do odbiorcy (w WEI, wartość nominalna ETH) +- `data` – opcjonalne pole do umieszczenia dowolnych danych +- `gasLimit` – maksymalna ilość jednostek gazu, które mogą zostać zużyte w trakcie transakcji. Jednostki gazu reprezentują kroki obliczeniowe +- `gasPrice` – opłata wnoszona przez nadawcę za jednostkę gazu + +Gaz jest odniesieniem do obliczeń wymaganych do przetworzenia transakcji przez górnika. Użytkownicy muszą wnieść opłatę za to obliczenie. `gasLimit` i `gasPrice` określają maksymalną opłatę transakcyjną na rzecz górnika. [Więcej o gazie](/developers/docs/gas/). + +Obiekt transakcji będzie wyglądał mniej więcej w ten sposób: + +```js +{ + from: "0xEA674fdDe714fd979de3EdF0F56AA9716B898ec8", + to: "0xac03bb73b6a9e108530aff4df5077c2b3d481e5a", + gasLimit: "21000", + gasPrice: "200", + nonce: "0", + value: "10000000000", +} +``` + +Obiekt transakcji musi być podpisany przy użyciu klucza prywatnego nadawcy. Dowodzi to, że transakcja mogła pochodzić jedynie od nadawcy i nie została wysłana w sposób oszukańczy. + +Klient Ethereum, taki jak Geth obsługuje ten proces podpisywania. + +Przykład wywołania [JSON-RPC](https://eth.wiki/json-rpc/API): + +```json +{ + "id": 2, + "jsonrpc": "2.0", + "method": "account_signTransaction", + "params": [ + { + "from": "0x1923f626bb8dc025849e00f99c25fe2b2f7fb0db", + "gas": "0x55555", + "gasPrice": "0x1234", + "input": "0xabcd", + "nonce": "0x0", + "to": "0x07a565b7ed7d7a678680a4c162885bedbb695fe0", + "value": "0x1234" + } + ] +} +``` + +Przykład odpowiedzi: + +```json +{ + "jsonrpc": "2.0", + "id": 2, + "result": { + "raw": "0xf88380018203339407a565b7ed7d7a678680a4c162885bedbb695fe080a44401a6e4000000000000000000000000000000000000000000000000000000000000001226a0223a7c9bcf5531c99be5ea7082183816eb20cfe0bbc322e97cc5c7f71ab8b20ea02aadee6b34b45bb15bc42d9c09de4a6754e7000908da72d48cc7704971491663", + "tx": { + "nonce": "0x0", + "gasPrice": "0x1234", + "gas": "0x55555", + "to": "0x07a565b7ed7d7a678680a4c162885bedbb695fe0", + "value": "0x1234", + "input": "0xabcd", + "v": "0x26", + "r": "0x223a7c9bcf5531c99be5ea7082183816eb20cfe0bbc322e97cc5c7f71ab8b20e", + "s": "0x2aadee6b34b45bb15bc42d9c09de4a6754e7000908da72d48cc7704971491663", + "hash": "0xeba2df809e7a612a0a0d444ccfa5c839624bdc00dd29e3340d46df3870f8a30e" + } + } +} +``` + +- `raw` to podpisana transakcja w kodowanym formacie RLP +- `tx` jest podpisaną transakcją w formacie JSON + +Dzięki skrótowi podpisu można udowodnić kryptograficznie, że transakcja pochodzi od nadawcy i została przesłana do sieci. + +### Gaz {#on-gas} + +Jak już wspomniano, wykonanie transakcji kosztuje [gaz](/developers/docs/gas/). Proste transakcje transferu wymagają 21 000 jednostek gazu. + +Więc aby Bob wysłał Alice 1 ETH przy `gasPrice` 200 Gwei, będzie musiał wnieść następującą opłatę: + +``` +200*21000 = 4 200 000 GWEI +--lub-- +0,0042 ETH +``` + +Konto Boba zostanie obciążone **-1,0042 ETH** + +Konto Alicji zostanie zasilone **+1,0 ETH** + +Górnik przetwarzający transakcję otrzyma **+0,0042 ETH** + +Gaz jest również potrzebny do każdej interakcji kontraktów inteligentnych. + +![Schemat przedstawiający sposób zwrotu kosztów niewykorzystanego gazu](./gas-tx.png) _Schemat zaadaptowany z [Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ + +Gaz niewykorzystany w transakcji jest zwracany na konto użytkownika. + +## Cykl życiowy transakcji {#transaction-lifecycle} + +Po przesłaniu transakcji nastąpią następujące wydarzenia: + +1. Po wysłaniu transakcji kryptografia generuje hash: `0x97d99bc7729211111a21b12c933c949d4f31684f1d6954ff477d0477538ff017` +2. Transakcja jest następnie rozsyłana w sieci i włączana do puli obejmującej wiele innych transakcji. +3. Górnik musi wybrać transakcję i umieścić w bloku, aby ją zweryfikować transakcję i uznać za „udaną”. + - Możesz skończyć, oczekując na tym etapie, jeśli sieć jest zajęta i górnicy nie są w stanie nadążyć. Górnicy zawsze będą traktować priorytetowo transakcje z wyższą `GASPRICE`, ponieważ będą mogli zatrzymać opłaty. +4. Twoja transakcja otrzyma również numer potwierdzenia bloku. Jest to liczba bloków utworzonych od bloku, w którym Twoja transakcja została uwzględniona. Im większa liczba, tym większa pewność, że transakcja została przetworzona i rozpoznana przez sieć. Dzieje się tak dlatego, że czasami blok, w którym zawarta była Twoja transakcja, mógł nie trafić do łańcucha. + - Im większy numer potwierdzenia bloku, tym bardziej niezmienna jest transakcja. Tak więc w przypadku transakcji o wyższej wartości pożądane może być więcej potwierdzeń bloków. + +## Demo wizualne {#a-visual-demo} + +Zobacz, jak Austin przeprowadzi Cię przez transakcje, gaz i wydobycie. + + + +## Dalsza lektura {#further-reading} + +_Znasz jakieś zasoby społeczności, które Ci pomogły? Wyedytuj tę stronę i dodaj je!_ + +## Powiązane tematy {#related-topics} + +- [Konta](/developers/docs/accounts/) +- [Maszyna wirtualna Ethereum (EVM)](/developers/docs/evm/) +- [Paliwo](/developers/docs/gas/) +- [Wydobycie](/developers/docs/consensus-mechanisms/pow/mining/) diff --git a/src/content/translations/pl/developers/docs/web2-vs-web3/index.md b/public/content/translations/pl/developers/docs/web2-vs-web3/index.md similarity index 100% rename from src/content/translations/pl/developers/docs/web2-vs-web3/index.md rename to public/content/translations/pl/developers/docs/web2-vs-web3/index.md diff --git a/src/content/translations/pl/developers/tutorials/Waffle-hello-world-with-buidler-tutorial/index.md b/public/content/translations/pl/developers/tutorials/Waffle-hello-world-with-buidler-tutorial/index.md similarity index 100% rename from src/content/translations/pl/developers/tutorials/Waffle-hello-world-with-buidler-tutorial/index.md rename to public/content/translations/pl/developers/tutorials/Waffle-hello-world-with-buidler-tutorial/index.md diff --git a/src/content/translations/pl/developers/tutorials/calling-a-smart-contract-from-javascript/index.md b/public/content/translations/pl/developers/tutorials/calling-a-smart-contract-from-javascript/index.md similarity index 100% rename from src/content/translations/pl/developers/tutorials/calling-a-smart-contract-from-javascript/index.md rename to public/content/translations/pl/developers/tutorials/calling-a-smart-contract-from-javascript/index.md diff --git a/public/content/translations/pl/developers/tutorials/deploying-your-first-smart-contract/index.md b/public/content/translations/pl/developers/tutorials/deploying-your-first-smart-contract/index.md new file mode 100644 index 00000000000..b87270a560b --- /dev/null +++ b/public/content/translations/pl/developers/tutorials/deploying-your-first-smart-contract/index.md @@ -0,0 +1,99 @@ +--- +title: Wdrożenie pierwszego inteligentnego kontraktu +description: Wprowadzenie do wdrożenia pierwszego inteligentnego kontraktu w sieci testowej Ethereum +author: "jdourlens" +tags: + - "inteligentne kontrakty" + - "remix" + - "solidity" + - "pierwsze kroki" + - "wdrożenie" +skill: beginner +lang: pl +published: 2020-04-03 +source: EthereumDev +sourceUrl: https://ethereumdev.io/deploying-your-first-smart-contract/ +address: "0x19dE91Af973F404EDF5B4c093983a7c6E3EC8ccE" +--- + +Chyba jesteś tak samo podekscytowany jak my [wdrażaniem](/developers/docs/smart-contracts/deploying/) i interakcją z pierwszym [inteligentnym kontraktem](/developers/docs/smart-contracts/) na blockchainie Ethereum. + +Nie martw się, ponieważ jest to nasz pierwszy inteligentny kontrakt, wdrożymy go w [lokalnej sieci testowej](/developers/docs/networks/), więc wdrożenie nic nie kosztuje i możesz bawić się nim tyle, ile chcesz. + +## Pisanie kontraktu {#writing-our-contract} + +Pierwszym krokiem jest [odwiedzenie Remix](https://remix.ethereum.org/) i utworzenie nowego pliku. W lewej górnej części interfejsu Remix dodaj nowy plik i wprowadź żądaną nazwę pliku. + +![Dodawanie nowego pliku do interfejsu Remix](./remix.png) + +W nowym pliku wkleimy następujący kod. + +```solidity +pragma solidity 0.5.17; + +contract Counter { + + // Public variable of type unsigned int to keep the number of counts + uint256 public count = 0; + + // Function that increments our counter + function increment() public { + count += 1; + } + + // Not necessary getter to get the count value + function getCount() public view returns (uint256) { + return count; + } + +} +``` + +Jeśli masz doświadczenie w programowaniu, możesz łatwo odgadnąć, co robi ten program. Oto wyjaśnienie kolejnych wierszy: + +- Wiersz 3: Określamy kontrakt nazwą `Counter`. +- Wiersz 6: Nasz kontrakt przechowuje jedną niepodpisaną liczbę całkowitą o nazwie `count` zaczynając od 0. +- Wiersz 9: Pierwsza funkcja zmieni stan kontraktu i zwiększy `increment()` zmienną `count`>. +- Wiersz 14: Druga funkcja to tylko getter, który może odczytywać wartość zmiennej `count` poza inteligentnym kontraktem. Zauważ, że ponieważ zdefiniowaliśmy zmienną `count` jako publiczną, to nie jest konieczne, ale jest to przykład. + +To wszystko dotyczy naszego pierwszego prostego inteligentnego kontraktu. Jak możesz wiedzieć, wygląda to na klasę z języków programowania obiektowego takich jak Java lub C++. Nadszedł czas, aby pobawić się naszym kontraktem. + +## Wdrażanie kontraktu {#deploying-our-contract} + +Ponieważ napisaliśmy pierwszy inteligentny kontrakt, teraz wdrożymy go w blockchainie, aby móc się nim bawić. + +[Wdrażanie inteligentnego kontraktu w blockchainie](/developers/docs/smart-contracts/deploying/) to w rzeczywistości tylko wysłanie transakcji zawierającej kod skompilowanego inteligentnego kontraktu bez określania odbiorców. + +Najpierw [skompilujemy kontrakt](/developers/docs/smart-contracts/compiling/), klikając ikonę kompilacji po lewej stronie: + +![Ikona kompilacji na pasku narzędzi Remix](./remix-compile-button.png) + +Następnie kliknij przycisk kompilacji: + +![Przycisk kompilacji w Remix Solidity](./remix-compile.png) + +Możesz wybrać opcję „Automatyczna kompilacja”, aby umowa była zawsze kompilowana po zapisaniu zawartości w edytorze tekstowym. + +Następnie przejdź do ekranu wdrażania i uruchamiania transakcji: + +![Ikona wdrażania na pasku narzędzi Remix](./remix-deploy.png) + +Po przejściu do ekranu „wdróż i uruchom” transakcje sprawdź dokładnie, czy pojawia się nazwa Twojego kontraktu i kliknij Wdróż. Jak widać na górze strony, obecne środowisko to „Maszyna wirtualna JavaScript”, co oznacza, że ​​wdrożymy inteligentny kontrakt i będziemy nad nim pracować w lokalnym testowym blockchainie, aby móc testować szybciej i bez żadnych opłat. + +![Przycisk wdrażania w kompilatorze Remix Solidity](./remix-deploy.png) + +Po kliknięciu przycisku „Wdróż” na dole pojawi się Twój kontrakt. Kliknij strzałkę po lewej stronie, aby ją rozwinąć i wyświetlić zawartość kontraktu. To jest utworzona zmienna `counter`, funkcja `increment()` i getter `getCounter()`. + +Jeśli klikniesz przycisk `count` lub `getCount`, zostanie pobrana i wyświetlona zmienna `count`. Ponieważ funkcja `increment` nie została jeszcze wywołana, wyświetli 0. + +![Przycisk funkcji w kompilatorze Remix Solidity](./remix-function-button.png) + +Wywołajmy funkcję `increment`, klikając przycisk. Zobaczysz dzienniki transakcji, wyświetlone na dole okna. Zobaczysz, że dzienniki są inne, gdy naciśniesz przycisk pobierania danych zamiast przycisku `increment`. To dlatego, że odczyt danych w blockchainie nie wymaga żadnych transakcji (pisanie) ani opłat. Ponieważ tylko modyfikacja stanu łańcucha bloków wymaga dokonania transakcji: + +![Dziennik transakcji](./transaction-log.png) + +Po naciśnięciu przycisku inkrement, który wygeneruje transakcję, aby wywołać naszą funkcję `increment()`, jeśli ponownie klikniemy przycisk count lub getCount, odczytamy nowo zaktualizowany stan naszego inteligentnego kontraktu ze zmienną count większą niż 0. + +![Nowo zaktualizowany stan inteligentnego kontraktu](./updated-state.png) + +W następnym samouczku omówimy [jak dodawać zdarzenia do inteligentnych kontraktów](/developers/tutorials/logging-events-smart-contracts/). Rejestrowanie zdarzeń jest wygodnym sposobem debugowania inteligentnego kontraktu i zrozumienia, co się dzieje podczas wywoływania funkcji. diff --git a/public/content/translations/pl/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md b/public/content/translations/pl/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md new file mode 100644 index 00000000000..cf2a15cfcc5 --- /dev/null +++ b/public/content/translations/pl/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md @@ -0,0 +1,154 @@ +--- +title: Pierwsze kroki programowania w Ethereum za pomocą Alchemy +description: "To jest przewodnik dla początkujących, jak rozpocząć programowanie w Ethereum za pomocą Alchemy. Przeprowadzimy Cię od rejestracji w Alchemy, przez wysłanie żądania w wierszu poleceń, do napisania pierwszego skryptu web3! Nie jest wymagane doświadczenie w programowaniu blockchain!" +author: "Elan Halpern" +tags: + - "pierwsze kroki" + - "javascript" + - "ethers.js" + - "węzły" + - "zapytania" + - "alchemy" +skill: beginner +lang: pl +published: 2020-10-30 +source: Średni +sourceUrl: https://medium.com/alchemy-api/getting-started-with-ethereum-development-using-alchemy-c3d6a45c567f +--- + +![Logo Ethereum i Alchemy](./ethereum-alchemy.png) + +To jest przewodnik dla początkujących po rozpoczęciu programowania w Ethereum przy użyciu [Alchemy](https://alchemyapi.io/), wiodącej platformy dla twórców blockchainów wykorzystywanej przez miliony użytkowników z 70% najlepszych aplikacji blockchain, w tym Maker, 0x, MyEtherWallet, Dharma i Kyber. + +Zarejestruj się w Alchemy, aby napisać swój pierwszy skrypt web3! Nie jest wymagane doświadczenie w programowaniu blockchain! + +## 1\. Zarejestruj się na darmowym koncie Alchemy {#sign-up-for-a-free-alchemy-account} + +Tworzenie konta z Alchemy jest łatwe, [zarejestruj się za darmo tutaj](https://auth.alchemyapi.io/signup). + +## 2\. Utwórz aplikację Alchemy {#create-an-alchemy-app} + +Aby korzystać z produktów Alchemy, potrzebujesz klucza API do uwierzytelnienia swoich żądań. + +Możesz [tworzyć klucze API z panelu](http://dashboard.alchemyapi.io/). Aby utworzyć nowy klucz, przejdź do „Utwórz aplikację”, jak pokazano poniżej: + +Specjalne podziękowania dla [_ShapeShift_](https://shapeshift.com/) _za umożliwienie nam pokazania ich panelu!_ + +![Pulpit Alchemy](./alchemy-dashboard.png) + +Wypełnij szczegóły w sekcji „Utwórz aplikację”, aby uzyskać swój nowy klucz. Możesz również zobaczyć aplikacje, które wcześniej stworzyłeś i aplikacje wykonane przez swój zespół tutaj. Pociągnij istniejące klucze, klikając „Wyświetl klucz” dla dowolnej aplikacji. + +![Utwórz aplikację za pomocą zrzutu ekranu Alchemy](./create-app.png) + +Możesz również ściągnąć istniejące klucze API, umieszczając kursor myszy nad „Aplikacje” i wybierając jeden. Możesz tutaj „Wyświetlić klucz”, a także „Edytować aplikację”, aby dodać określone domeny do białej listy, zobaczyć kilka narzędzi dla programistów i wyświetlić dane analityczne. + +![Gif pokazuje użytkownikowi jak ściągnąć klucze API](./pull-api-keys.gif) + +## 3\. Zgłoś żądanie z wiersza poleceń {#make-a-request-from-the-command-line} + +Współpracuj z blockchainem Ethereum przez Alchemy, używając JSON-RPC i curl. + +Dla żądań ręcznych, zalecamy zastosowanie `JSON-RPC` poprzez `POST`. Wystarczy przekazać nagłówek `Content-Type: application/json` i zapytanie jako treść `POST` z następującymi polami: + +- `jsonrpc`: wersja JSON-RPC - obecnie obsługiwana jest tylko `2.0`. +- `method`: metoda ETH API. [Zobacz materiały dot. API.](https://docs.alchemyapi.io/documentation/alchemy-api-reference/json-rpc) +- `params`: lista parametrów do przekazania do metody. +- `id`: identyfikator Twojego żądania. Zostanie zwrócony wraz z odpowiedzią, dzięki czemu można śledzić, do którego żądania należy odpowiedź. + +Poniżej znajduje się przykład, który można uruchomić z wiersza poleceń, aby uzyskać aktualną cenę gazu: + +```bash +curl [https://eth-mainnet.alchemyapi.io/v2/demo](https://eth-mainnet.alchemyapi.io/v2/demo) \ +-X POST \ +-H "Content-Type: application/json" \ +-d '{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":73}' +``` + +**_UWAGA:_** _Zamień_ [_https://eth-mainnet.alchemyapi. o/v2/demo_](https://eth-mainnet.alchemyapi.io/jsonrpc/demo) _z własnym kluczem API_ [_https://eth-mainnet.alchemyapi.io/v2/your-api-key_](https://eth-mainnet.alchemyapi.io/jsonrpc/your-api-key)_._ + +**Wynik:** + +```json +{ "id": 73,"jsonrpc": "2.0","result": "0x09184e72a000" // 100000000000000000 } +``` + +## 4\. Skonfiguruj swojego klienta Web3 {#set-up-your-web3-client} + +**Jeśli masz istniejącego klienta,** zmień adres URL aktualnego dostawcy węzła na adres URL Alchemy z kluczem API: `"https://eth-mainnet.alchemyapi.io/v2/your-api-key"` + +**_UWAGA:_** Skrypty poniżej muszą być uruchomione w **kontekście węzłów** lub **zapisane w pliku**, nie uruchamiaj z wiersza poleceń. Jeśli nie masz jeszcze zainstalowanego węzła lub npm, sprawdź ten [przewodnik konfiguracji macs](https://app.gitbook.com/@alchemyapi/s/alchemy/guides/alchemy-for-macs). + +Istnieją tony [bibliotek Web3](https://docs.alchemyapi.io/guides/getting-started#other-web3-libraries) które możesz zintegrować z alchemy. zalecamy użycie [Alchemy Web3](https://docs.alchemy.com/reference/api-overview), upuszczonego zamiennika dla web3., zbudowany i skonfigurowany do bezproblemowej pracy z Alchemy. Zapewnia to wiele zalet, takich jak automatyczne próby i solidne wsparcie WebSocket. + +Aby zainstalować AlchemyWeb3.js, **przejdź do katalogu projektu** i uruchom: + +**Z Yarn:** + +``` +yarn dodaj @alch/alchemy-web3 +``` + +**Z NPM:** + +``` +npm install @alch/alchemy-web3 +``` + +Aby wejść w interakcję z infrastrukturą węzła Alchemy, uruchom w NodeJS lub dodaj to do pliku JavaScript: + +```js +const { createAlchemyWeb3 } = require("@alch/alchemy-web3") +const web3 = createAlchemyWeb3( + "https://eth-mainnet.alchemyapi.io/v2/your-api-key" +) +``` + +## 5\. Napisz swój pierwszy skrypt Web3! {#write-your-first-web3-script} + +Teraz, aby ubrudzić sobie ręce odrobiną programowania web3, napiszemy prosty skrypt, który wypisuje najnowszy numer bloku z sieci głównej Ethereum. + +1. **Jeśli jeszcze tego nie zrobiłeś, w swoim terminalu utwórz nowy katalog projektów i przejdź do niego:** + +``` +mkdir web3-examplecd web3-example +``` + +**2\. Zainstaluj zależność Alchemy web3 (lub dowolny web3) w swoim projekcie, jeśli jeszcze tego nie zrobiłeś:** + +``` +npm install @alch/alchemy-web3 +``` + +**3. Utwórz plik o nazwie** `index.js` **i dodaj następujące treści:** + +> Ostatecznie powinieneś zastąpić `demo` kluczem API Alchemy. + +```js +async function main() { + const { createAlchemyWeb3 } = require("@alch/alchemy-web3") + const web3 = createAlchemyWeb3("https://eth- mainnet.alchemyapi.io/v2/demo") + const blockNumber = await web3.eth.getBlockNumber() + console.log("The latest block number is " + blockNumber) +} +main() +``` + +Nie znasz rozwiązań asynchronicznych? Sprawdź to [Medium post](https://medium.com/better-programming/understanding-async-await-in-javascript-1d81bb079b2c). + +**4\. Uruchom go w swoim terminalu, używając węzła** + +``` +node index.js +``` + +**5. Powinieneś teraz zobaczyć najnowszy numer bloku w konsoli!** + +``` +The latest block number is 11043912 +``` + +**Woo! Gratulacje! Właśnie napisałeś swój pierwszy skrypt web3 używając Alchemy 🎉** + +Nie jesteś pewien, co zrobić dalej? Spróbuj wdrożyć pierwszy kontrakt inteligentny i popracuj, programując w Solidity [_Hello World Smart_](https://docs.alchemyapi.io/tutorials/hello-world-smart-contract) _Contract Guide, lub sprawdź, co wiesz o pulpicie nawigacyjnym za pomocą_ [_Dashboard Demo App_](https://docs.alchemyapi.io/tutorials/demo-app)_!_ + +_[Zarejestruj się przy użyciu Alchemy za darmo](https://auth.alchemyapi.io/signup), sprawdź naszą [dokumentację](https://docs.alchemyapi.io/), oraz najnowsze wiadomości, obserwuj nas na [Twitterze](https://twitter.com/AlchemyPlatform)_. diff --git a/src/content/translations/pl/developers/tutorials/how-to-implement-an-erc721-market/index.md b/public/content/translations/pl/developers/tutorials/how-to-implement-an-erc721-market/index.md similarity index 100% rename from src/content/translations/pl/developers/tutorials/how-to-implement-an-erc721-market/index.md rename to public/content/translations/pl/developers/tutorials/how-to-implement-an-erc721-market/index.md diff --git a/src/content/translations/pl/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md b/public/content/translations/pl/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md similarity index 100% rename from src/content/translations/pl/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md rename to public/content/translations/pl/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md diff --git a/public/content/translations/pl/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md b/public/content/translations/pl/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md new file mode 100644 index 00000000000..51172ae8164 --- /dev/null +++ b/public/content/translations/pl/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md @@ -0,0 +1,236 @@ +--- +title: Slither – narzędzie do znajdowania błędów w inteligentnych kontraktach +description: Jak używać Slither do automatycznego wyszukiwania błędów w inteligentnych kontraktach +author: Trailofbits +lang: pl +tags: + - "solidity" + - "inteligentne kontrakty" + - "ochrona" + - "testing" + - "analiza statyczna" +skill: advanced +published: 2020-06-09 +source: Tworzenie bezpiecznych kontraktów +sourceUrl: https://github.com/crytic/building-secure-contracts/tree/master/program-analysis/slither +--- + +## Jak używać Slither {#how-to-use-slither} + +Celem tego samouczka jest pokazanie, jak używać Slither do automatycznego wyszukiwania błędów w inteligentnych kontraktach. + +- [Instalacja](#installation) +- [Użycie wiersza poleceń](#command-line) +- [Wprowadzenie do analizy statycznej](#static-analysis): krótkie wprowadzenie do analizy statycznej +- [API](#api-basics): Opis API Pythona + +## Instalacja {#installation} + +Slither wymaga Pythona >= 3.6. Można go zainstalować za pomocą pip lub dockera. + +Slither przez pip: + +```bash +pip3 install --user slither-analyzer +``` + +Slither przez dockera: + +```bash +docker pull trailofbits/eth-security-toolbox docker run -it -v "$PWD":/home/trufflecon trailofbits/eth-security-toolbox +``` + +_Ostatnie polecenie uruchamia eth-security-toolbox w dockerze, który ma dostęp do bieżącego katalogu. Możesz zmienić pliki z hosta i uruchomić narzędzia na plikach z dockera_ + +Wewnątrz dockera uruchom: + +```bash +solc-select 0.5.11 cd /home/trufflecon/ +``` + +### Uruchom skrypt {#running-a-script} + +Aby uruchomić skrypt Pythona za pomocą Pythona 3: + +```bash +python3 script.py +``` + +### Wiersz poleceń {#command-line} + +**Skrypty wiersza poleceń a zdefiniowane przez użytkownika.** Slither jest wyposażony w zestaw predefiniowanych detektorów, które znajdują wiele częstych błędów. Wywołanie Slither z wiersza poleceń uruchomi wszystkie detektory, nie jest potrzebna szczegółowa wiedza na temat analizy statycznej: + +```bash +slither project_paths +``` + +Oprócz detektorów, Slither ma możliwości przeglądania kodu poprzez swoje narzędzia [drukarki](https://github.com/crytic/slither#printers) i [](https://github.com/crytic/slither#tools). + +Użyj [crytic.io](https://crytic.io), aby uzyskać dostęp do prywatnych detektorów i integracji GitHub. + +## Analiza statyczna {#static-analysis} + +Możliwości i projekt struktury analizy statycznej Slither zostały opisane w postach na blogu ([1](https://blog.trailofbits.com/2018/10/19/slither-a-solidity-static-analysis-framework/), [2](https://blog.trailofbits.com/2019/05/27/slither-the-leading-static-analyzer-for-smart-contracts/)) oraz w [dokumencie akademickim](https://github.com/trailofbits/publications/blob/master/papers/wetseb19.pdf). + +Istnieją różne postacie analizy statycznej Najprawdopodobniej zdajesz sobie sprawę, że kompilatory takie jak [clang](https://clang-analyzer.llvm.org/) i [gcc](https://lwn.net/Articles/806099/) zależą od tych technik badawczych, ale również stanowią one podstawę ([Infer](https://fbinfer.com/), [CodeClimate](https://codeclimate.com/), [FindBugs](http://findbugs.sourceforge.net/) i narzędzi opartych na formalnych metodach, takich jak [Frama-C](https://frama-c.com/) i [Polyspace](https://www.mathworks.com/products/polyspace.html). + +Nie dokonamy wyczerpującego przeglądu technik analizy statycznej. Zamiast tego skoncentrujemy się na tym, co jest potrzebne, aby zrozumieć, jak działa Slither tak, abyś mógł go skuteczniej używać, aby znaleźć błędy i zrozumieć kod. + +- [Reprezentacja kodu](#code-representation) +- [Analiza kodu](#analysis) +- [Reprezentacja pośrednia](#intermediate-representation) + +### Reprezentacja kodu {#code-representation} + +W przeciwieństwie do analizy dynamicznej, która rozważa pojedynczą ścieżkę wykonania, analiza statyczna rozważa wszystkie ścieżki naraz. W tym celu opiera się na innej reprezentacji kodu. Dwa najczęściej spotykane to abstrakcyjne drzewo składni (AST) i graf przepływu sterowania (CFG). + +### Abstrakcyjne drzewa składniowe (AST) {#abstract-syntax-trees-ast} + +AST są używane za każdym razem, gdy kompilator analizuje kod. Jest to prawdopodobnie najbardziej podstawowa struktura, na podstawie której można przeprowadzić analizę statyczną. + +Krótko mówiąc, AST jest ustrukturyzowanym drzewem, w którym zwyczajowo, każdy liść zawiera zmienną lub stałą, a węzły wewnętrzne są operandami lub operacjami przepływu sterowania. Rozważmy następujący kod: + +```solidity +function safeAdd(uint a, uint b) pure internal returns(uint){ + if(a + b <= a){ + revert(); + } + return a + b; +} +``` + +Odpowiedni AST jest pokazany w: + +![AST](./ast.png) + +Slither używa AST eksportowanego przez solc. + +Choć prosty w budowie, AST jest strukturą zagnieżdżoną. Czasem jego przeanalizowanie nie jest proste. Na przykład, aby zidentyfikować operacje używane przez wyrażenie `a + b <= a`, musisz najpierw przeanalizować `<=`, a następnie `+`. Wspólnym podejściem jest stosowanie tak zwanego wzoru odwiedzającego, który rekursywnie przechodzi przez drzewo. Slither zawiera ogólnego odwiedzającego w [`ExpressionVisitor`](https://github.com/crytic/slither/blob/master/slither/visitors/expression/expression.py). + +Następujący kod używa `ExpressionVisitor` aby wykryć, czy wyrażenie zawiera dodatek: + +```python +from slither.visitors.expression.expression import ExpressionVisitor +from slither.core.expressions.binary_operation import BinaryOperationType + +class HasAddition(ExpressionVisitor): + + def result(self): + return self._result + + def _post_binary_operation(self, expression): + if expression.type == BinaryOperationType.ADDITION: + self._result = True + +visitor = HasAddition(expression) # expression is the expression to be tested +print(f'The expression {expression} has a addition: {visitor.result()}') +``` + +### Graf przepływu sterowania (CFG) {#control-flow-graph-cfg} + +Drugą najbardziej powszechną reprezentacją kodu jest graf przepływu sterowania. Jak sugeruje jego nazwa, jest to przedstawienie oparte na wykresie, które ujawnia wszystkie ścieżki wykonania. Każdy węzeł zawiera jedną lub wiele instrukcji. Krawędzie na wykresie reprezentują operacje przepływu sterowania (if/then/else, loop itp.). CFG naszego poprzedniego przykładu to: + +![CFG](./cfg.png) + +CFG jest reprezentacją, na której opiera się większość analiz. + +Istnieje wiele innych reprezentacji kodów. Każda reprezentacja ma zalety i wady zgodnie z analizą, którą chcesz przeprowadzić. + +### Analiza {#analysis} + +Najprostszym rodzajem analiz, które możesz wykonać za pomocą Slither, są analizy składni. + +### Analiza składni {#syntax-analysis} + +Slither może nawigować przez różne elementy kodu i ich reprezentacje, aby znaleźć niespójności i wady za pomocą podejścia podobnego do dopasowania do wzorca. + +Na przykład następujące detektory szukają problemów związanych z składnią: + +- [Zastępowanie zmiennych stanu](https://github.com/crytic/slither/wiki/Detector-Documentation#state-variable-shadowing): porusza się iteracyjnie po wszystkich zmiennych stanu i sprawdza, czy któryś zastępuje zmienną z dziedziczonego kontraktu ([state.py#L51-L62](https://github.com/crytic/slither/blob/0441338e055ab7151b30ca69258561a5a793f8ba/slither/detectors/shadowing/state.py#L51-L62)) + +- [Nieprawidłowy interfejs ERC20](https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-erc20-interface): szukka nieprawidłowych sygnatur funkcji ERC20 ([incorrect_erc20_interface.py#L34-L55](https://github.com/crytic/slither/blob/0441338e055ab7151b30ca69258561a5a793f8ba/slither/detectors/erc/incorrect_erc20_interface.py#L34-L55)) + +### Analiza semantyczna {#semantic-analysis} + +W przeciwieństwie do analizy składni, analiza semantyczna sięga głębiej i analizuje „znaczenie” kodu. Rodzina ta obejmuje kilka szerokich rodzajów analiz. Prowadzą one do bardziej skutecznych i pożytecznych wyników, ale także są bardziej skomplikowane. + +Analizy semantyczne są wykorzystywane do najbardziej zaawansowanego wykrywania podatności na zagrożenia. + +#### Analiza zależności danych {#fixed-point-computation} + +Zmienna `variable_a` jest zależna od danych `variable_b`, jeśli istnieje ścieżka, dla której wartość `variable_a` jest zależna od `variable_b`. + +W poniższym kodzie zmienna `_a` jest zależna od `variable_b`: + +```solidity +// ... +variable_a = variable_b + 1; +``` + +Slither posiada wbudowane funkcje [zależności danych](https://github.com/crytic/slither/wiki/data-dependency) dzięki jego pośredniej reprezentacji (omówionej w dalszej części). + +Przykład użycia zależności od danych można znaleźć w [niebezpiecznym ścisłym detektorze równości](https://github.com/crytic/slither/wiki/Detector-Documentation#dangerous-strict-equalities). Tutaj Slither będzie szukał ścisłego porównania równości z niebezpieczną wartością ([wronct_strict_equality. y#L86-L87](https://github.com/crytic/slither/blob/6d86220a53603476f9567c3358524ea4db07fb25/slither/detectors/statements/incorrect_strict_equality.py#L86-L87)), i poinformuje użytkownika, że powinien użyć `>=` lub `<=` zamiast `==`, aby uniemożliwić atakującemu przechwycenie kontraktu. Spośród innych detektor uzna za niebezpieczną wartość zwrotną wywołania do `balanceOf(address)` ([invalid \_strict_equality. y#L63-L64](https://github.com/crytic/slither/blob/6d86220a53603476f9567c3358524ea4db07fb25/slither/detectors/statements/incorrect_strict_equality.py#L63-L64)) i użyje silnika zależności od danych, aby śledzić jego użycie. + +#### Obliczenia stałoprzecinkowe {#fixed-point-computation} + +Jeśli Twoja analiza nawiguje przez CFG i porusza się wzdłuż krawędzi, prawdopodobnie zobaczysz już odwiedzone węzły. Na przykład, jeśli pętla jest przedstawiona w poniższy sposób: + +```solidity +for(uint i; i < zakres; ++){ + variable_a += 1 +} +``` + +Twoja analiza będzie musiała wiedzieć, kiedy się zatrzymać. Tutaj są dwie główne strategie: (1) powtórzyć na każdym węźle skończoną liczbę razy, (2) obliczyć tak zwany punkt stały. Punkt stały zasadniczo oznacza, że analiza tego węzła nie dostarcza żadnych istotnych informacji. + +Przykład użytego puntu stałego można znaleźć w detektorach wielobieżności: Slither eksploruje węzły i szuka wywołań zewnętrznych, zapisuje i odczytuje w pamięci. Po osiągnięciu punktu stałego ([reentrancy.py#L125-L131](https://github.com/crytic/slither/blob/master/slither/detectors/reentrancy/reentrancy.py#L125-L131)), zatrzymuje eksplorację i analizuje wyniki, aby sprawdzić, czy występuje wielobieżność, sprawdzając różne jej wzorce ([reentrancy_benign. y](https://github.com/crytic/slither/blob/b275bcc824b1b932310cf03b6bfb1a1fef0ebae1/slither/detectors/reentrancy/reentrancy_benign.py), [reentrancy_read_before_write.py](https://github.com/crytic/slither/blob/b275bcc824b1b932310cf03b6bfb1a1fef0ebae1/slither/detectors/reentrancy/reentrancy_read_before_write.py), [reentrancy_eth.py](https://github.com/crytic/slither/blob/b275bcc824b1b932310cf03b6bfb1a1fef0ebae1/slither/detectors/reentrancy/reentrancy_eth.py)). + +Analizy pisania z wykorzystaniem efektywnego obliczania punktów stałych wymagają dobrego zrozumienia sposobu, w jaki analiza propaguje jej informacje. + +### Reprezentacja pośrednia {#intermediate-representation} + +Pośrednia reprezentacja (IR) to język mający być bardziej dostosowany do analizy statycznej niż oryginalny. Slither tłumaczy Solidity na własną IR: [SlithIR](https://github.com/crytic/slither/wiki/SlithIR). + +Zrozumienie SlithIR nie jest konieczne, jeśli chcesz tylko zapisać podstawowe kontrole. Jeśli jednak planuje się napisać zaawansowane analizy semantyczne, będzie to pomocne. Drukarki [SlithIR](https://github.com/crytic/slither/wiki/Printer-documentation#slithir) i [SSA](https://github.com/crytic/slither/wiki/Printer-documentation#slithir-ssa) pomogą Ci zrozumieć, jak kod jest przetłumaczony. + +## Podstawowe informacje o API {#api-basics} + +Slither ma interfejs API, który pozwala odkrywać podstawowe atrybuty kontraktu i jego funkcje. + +Aby załadować bazę kodu: + +```python +from slither import Slither +slither = Slither('/path/to/project') + +``` + +### Odkrywanie kontraktów i funkcji {#exploring-contracts-and-functions} + +Obiekt `Slither` zawiera: + +- `contracts (list(Contract)`: lista kontraktów +- `contracts_derived (list(Contract)`: lista kontraktów, które nie są dziedziczone przez inny kontrakt (podzbiór kontraktów) +- `get_contract_from_name (str)`: zwraca kontrakt z jego nazwy + +Obiekt `Contract` ma: + +- `name (str)`: nazwa kontraktu +- `functions (list(Function))`: lista funkcji +- `modifiers (list(Modifier))`: lista funkcji +- `all_functions_lated (list(Function/Modifier))`: lista wszystkich funkcji wewnętrznych osiągalnych przez kontrakt +- `inheritance (list(Contract))`: lista dziedziczonych kontraktów +- `get_function_from_signature (str)`: zwraca funkcję z jej podpisu +- `get_modifier_from_signature (str)`: zwraca modyfikator z jego podpisu +- `get_state_variable_from_name (str)`: zwraca zmienną stanową z jej nazwy + +Obiekt `Function` lub `Modifier` ma: + +- `name (str)`: nazwa funkcji +- `contract (contract)`: kontrakt, w którym zadeklarowana jest funkcja +- `nodes (list(Node))`: lista węzłów tworzących CFG funkcji/modyfikatora +- `entry_point (Node)`: punkt wejścia CFG +- `variables_read (list(Variable))`: lista odczytanych zmiennych +- `variables_written (list(Variable))`: lista zapisanych zmiennych +- `state_variables_read (list(StateVariable))`: lista odczytanych zmiennych stanu (podzbiór zmiennych`read) +- `state_variables_written (list(StateVariable))`: lista zapisanych zmiennych stanu (podzbiór zmiennych`written) diff --git a/public/content/translations/pl/developers/tutorials/interact-with-other-contracts-from-solidity/index.md b/public/content/translations/pl/developers/tutorials/interact-with-other-contracts-from-solidity/index.md new file mode 100644 index 00000000000..a10463d95df --- /dev/null +++ b/public/content/translations/pl/developers/tutorials/interact-with-other-contracts-from-solidity/index.md @@ -0,0 +1,178 @@ +--- +title: Interakcje z innymi kontraktami od Solidity +description: Jak wdrożyć inteligentny kontrakt z istniejącego kontraktu i pracować na nim +author: "jdourlens" +tags: + - "inteligentne kontrakty" + - "solidity" + - "remix" + - "fabryki" + - "wdrożenie" + - "kompozycyjność" +skill: advanced +lang: pl +published: 2020-04-05 +source: EthereumDev +sourceUrl: https://ethereumdev.io/interact-with-other-contracts-from-solidity/ +address: "0x19dE91Af973F404EDF5B4c093983a7c6E3EC8ccE" +--- + +Z poprzednich samouczków dowiedzieliśmy się [jak wdrożyć swój pierwszy inteligentny kontrakt](/developers/tutorials/deploying-your-first-smart-contract/) i dodać do niego kilka funkcji, takich jak kontrola dostępu za pomocą modyfikatorów lub [obsługa błędów w Solidity](https://ethereumdev.io/handle-errors-in-solidity-with-require-and-revert/). Z tego samouczka dowiemy się, jak wdrożyć inteligentny kontrakt z istniejącego kontraktu i pracować na nim. + +Stworzymy kontrakt, który umożliwi każdemu posiadanie własnego inteligentnego kontraktu `Counter`, tworząc dla niego fabrykę o nazwie `CounterFactory`. Pierwszy jest kod naszego początkowego inteligentnego kontraktu `Counter`: + +```solidity +pragma solidity 0.5.17; + +contract Counter { + + uint256 private _count; + address private _owner; + address private _factory; + + + modifier onlyOwner(address caller) { + require(caller == _owner, "You're not the owner of the contract"); + _; + } + + modifier onlyFactory() { + require(msg.sender == _factory, "You need to use the factory"); + _; + } + + constructor(address owner) public { + _owner = owner; + _factory = msg.sender; + } + + function getCount() public view returns (uint256) { + return _count; + } + + function increment(address caller) public onlyFactory onlyOwner(caller) { + _count++; + } + +} +``` + +Zwróć uwagę, że nieznacznie zmodyfikowaliśmy kod kontraktu, aby śledzić adres fabryki i adres właściciela umowy. Gdy wywołasz kod kontraktu z innego kontraktu, msg.sender odniesie się do adresu naszej fabryki kontraktowej. Jest to **bardzo ważny punkt do zrozumienia**, ponieważ używanie kontraktu do interakcji z innymi kontraktami jest powszechną praktyką. Dlatego w skomplikowanych przypadkach należy zadbać o to, kto jest nadawcą. + +W tym celu dodaliśmy również modyfikator `onlyFactory`, który zapewnia, że ​​funkcja zmiany stanu może być wywołana tylko przez fabrykę, która przekaże oryginalny obiekt wywołujący jako parametr. + +W naszej nowej `CounterFactory`, która będzie zarządzać wszystkimi innymi licznikami, dodamy mapowanie, które skojarzy właściciela z adresem jego kontraktu counter: + +```solidity +mapping(address => Counter) _counters; +``` + +W Ethereum mapowanie jest równoważne obiektom w javascript, umożliwiają one mapowanie klucza typu A do wartości typu B. W tym przypadku mapujemy adres właściciela z instancją jego kontraktu counter. + +Utworzenie nowego kontraktu Counter dla kogoś będzie wyglądać tak: + +```solidity + function createCounter() public { + require (_counters[msg.sender] == Counter(0)); + _counters[msg.sender] = new Counter(msg.sender); + } +``` + +Najpierw sprawdzamy, czy osoba jest już właścicielem Counter. Jeśli nie jest właścicielem counter, natychmiastowo przekazujemy jego adres do konstruktora `Counter` i przypisujemy nowo utworzoną instancję do mapowania. + +Aby uzyskać liczbę konkretnego Counter, powinno to wyglądać tak: + +```solidity +function getCount(address account) public view returns (uint256) { + require (_counters[account] != Counter(0)); + return (_counters[account].getCount()); +} + +function getMyCount() public view returns (uint256) { + return (getCount(msg.sender)); +} +``` + +Pierwsza funkcja sprawdza, czy kontrakt Counter istnieje dla danego adresu, a następnie wywołuje metodę `getCount` z instancji. Druga funkcja: `getMyCount` to tylko krótki koniec do przekazania msg.sender bezpośrednio do funkcji `getCount`. + +Funkcja `increment` jest dość podobna, ale przekazuje oryginalnego nadawcę transakcji do kontraktu `Counter`: + +```solidity +function increment() public { + require (_counters[msg.sender] != Counter(0)); + Counter(_counters[msg.sender]).increment(msg.sender); + } +``` + +Zauważ, że jeśli zostaniesz wywołany wiele razy, nasz counter może paść ofiarą przepełnienia. Powinieneś użyć [biblioteki SafeMath](https://ethereumdev.io/using-safe-math-library-to-prevent-from-overflows/) w możliwie największym stopniu, aby chronić przed tym przypadkiem. + +Aby wdrożyć nasz kontrakt, musisz podać zarówno kod `CounterFactory`, jak i `Counter`. Podczas wdrażania na przykład w Remix musisz wybrać CounterFactory. + +Oto pełny kod: + +```solidity +pragma solidity 0.5.17; + +contract Counter { + + uint256 private _count; + address private _owner; + address private _factory; + + + modifier onlyOwner(address caller) { + require(caller == _owner, "You're not the owner of the contract"); + _; + } + + modifier onlyFactory() { + require(msg.sender == _factory, "You need to use the factory"); + _; + } + + constructor(address owner) public { + _owner = owner; + _factory = msg.sender; + } + + function getCount() public view returns (uint256) { + return _count; + } + + function increment(address caller) public onlyFactory onlyOwner(caller) { + _count++; + } + +} + +contract CounterFactory { + + mapping(address => Counter) _counters; + + function createCounter() public { + require (_counters[msg.sender] == Counter(0)); + _counters[msg.sender] = new Counter(msg.sender); + } + + function increment() public { + require (_counters[msg.sender] != Counter(0)); + Counter(_counters[msg.sender]).increment(msg.sender); + } + + function getCount(address account) public view returns (uint256) { + require (_counters[account] != Counter(0)); + return (_counters[account].getCount()); + } + + function getMyCount() public view returns (uint256) { + return (getCount(msg.sender)); + } + +} +``` + +Po skompilowaniu wybierz w sekcji wdrażanie Remix fabrykę do wdrożenia: + +![Wybór fabryki do wdrożenia w Remix](./counterfactory-deploy.png) + +Następnie możesz pobawić się swoją fabryką kontraktową i sprawdzić, jak zmienia się wartość. Jeśli chcesz wywołać inteligentny kontrakt z innego adresu, musisz zmienić adres w wyborze konta w Remix. diff --git a/public/content/translations/pl/developers/tutorials/logging-events-smart-contracts/index.md b/public/content/translations/pl/developers/tutorials/logging-events-smart-contracts/index.md new file mode 100644 index 00000000000..af0aba8bf15 --- /dev/null +++ b/public/content/translations/pl/developers/tutorials/logging-events-smart-contracts/index.md @@ -0,0 +1,48 @@ +--- +title: Rejestrowanie danych z inteligentnych kontraktów ze zdarzeniami +description: Wprowadzenie do zdarzeń kontraktów inteligentnych i sposobów używania ich rejestrowania danych +author: "jdourlens" +tags: + - "inteligentne kontrakty" + - "remix" + - "solidity" + - "zdarzenia" +skill: intermediate +lang: pl +published: 2020-04-03 +source: EthereumDev +sourceUrl: https://ethereumdev.io/logging-data-with-events/ +address: "0x19dE91Af973F404EDF5B4c093983a7c6E3EC8ccE" +--- + +W Solidity [zdarzenia](/developers/docs/smart-contracts/anatomy/#events-and-logs) to wysyłane sygnały, które mogą uruchamiać inteligentne kontrakty. Aplikacje zdecentralizowane lub wszystko, co jest połączone z interfejsem API Ethereum JSON-RPC, może nasłuchiwać tych zdarzeń i odpowiednio działać. Zdarzenie można również zindeksować, aby później można było przeszukiwać historię zdarzeń. + +## Zdarzeniami {#events} + +Najczęstszym zdarzeniem na blockchainie Ethereum w momencie pisania tego artykułu jest zdarzenie Transfer, które jest emitowane przez tokeny ERC20, gdy ktoś przenosi tokeny. + +```solidity +event Transfer(address indexed from, address indexed to, uint256 value); +``` + +Sygnatura zdarzenia jest deklarowana w kodzie kontraktu i może być emitowana za pomocą słowa kluczowego emit. Na przykład dzienniki zdarzeń transferu, nadawca transferu (od), odbiorca transferu (_do_) i ilość przeniesionych tokenów (_wartość_). + +Jeśli wrócimy do naszego inteligentnego kontraktu Counter i zdecydujemy się rejestrować za każdym razem, gdy wartość się zmieni. Ponieważ kontrakt ten nie jest przeznaczony do wdrożenia, ale służy jako podstawa do zbudowania kolejnego kontraktu poprzez jego rozszerzenie: nazywa się to kontraktem abstrakcyjnym. W przypadku naszego przykładu counter wyglądałoby to tak: + +```solidity +pragma solidity 0.5.17;contract Counter { event ValueChanged(uint oldValue, uint256 newValue); // Zmienna prywatna typu unsigned int przechowywania liczby zliczeń uint256 private count = 0; // Funkcja zwiększająca licznik function increment() public { count += 1; emit ValueChanged(count - 1, count); } + + // Getter w celu uzyskania wartości zliczeń function getCount() public view returns (uint256) { return count; }} +``` + +Zauważ, że: + +- **Wiersz 5**: deklarujemy nasze wydarzenie i jego zawartość, starą wartość i nową wartość. + +- **Wiersz 13**: Kiedy zwiększamy naszą zmienną count, emitujemy zdarzenie. + +Jeżeli teraz wdrożymy umowę i wywołamy funkcję inkrementacji, zobaczymy, że Remix automatycznie ją wyświetli, jeśli zostanie kliknięta nowa transakcja w tablicy nazwanych rejestrów. + +![Zrzut ekranu Remix](./remix-screenshot.png) + +Dzienniki są naprawdę przydatne do debugowania inteligentnych kontraktów, ale są również ważne, jeśli tworzysz aplikacje używane przez różne osoby i ułatwiają analizę w celu śledzenia i zrozumienia, w jaki sposób jest używany inteligentny kontrakt. Logi generowane przez transakcje są wyświetlane w popularnych eksploratorach bloków i można je również wykorzystać np. do tworzenia skryptów off-chain do nasłuchiwania określonych zdarzeń i podejmowania działań w momencie ich wystąpienia. diff --git a/src/content/translations/pl/developers/tutorials/run-light-node-geth/index.md b/public/content/translations/pl/developers/tutorials/run-light-node-geth/index.md similarity index 100% rename from src/content/translations/pl/developers/tutorials/run-light-node-geth/index.md rename to public/content/translations/pl/developers/tutorials/run-light-node-geth/index.md diff --git a/public/content/translations/pl/developers/tutorials/run-node-raspberry-pi/index.md b/public/content/translations/pl/developers/tutorials/run-node-raspberry-pi/index.md new file mode 100644 index 00000000000..9ef9bf664c3 --- /dev/null +++ b/public/content/translations/pl/developers/tutorials/run-node-raspberry-pi/index.md @@ -0,0 +1,260 @@ +--- +title: Jak zmienić Raspberry Pi 4 w węzeł, po prostu flashując kartę MicroSD +description: Flash Raspberry Pi 4, podłącz kabel Ethernet, podłącz dysk SSD i włącz urządzenie, aby zmienić Raspberry Pi 4 w pełny węzeł Ethereum 1.0 lub Ethereum 2.0 (łańcuch śledzący / walidator) +author: "EthereumOnArm" +tags: + - "klienty" + - "eth2" + - "węzły" +lang: pl +skill: intermediate +published: 2020-05-07 +source: r/ethereum +sourceUrl: https://www.reddit.com/r/ethereum/comments/gf3nhg/ethereum_on_arm_raspberry_pi_4_images_release/ +--- + +**TL;DR**: Flashuj Raspberry Pi 4, podłącz kabel Ethernet, podłącz dysk SSD i włącz urządzenie, aby zmienić Raspberry Pi 4 w pełne Ethereum 1.0 węzeł lub węzeł Ethereum 2.0 (łańcuch śledzący/ walidator) + +[Dowiedz się więcej o Ethereum 2.0 (Eth2)](/roadmap/) + +Najpierw trochę tła. Jak wiesz, napotkaliśmy pewne problemy z pamięcią [[1]](/developers/tutorials/run-node-raspberry-pi/#references) związane z obrazem Raspberry Pi 4 ponieważ Raspbian OS jest nadal 32-bitowy [[2]](/developers/tutorials/run-node-raspberry-pi/#references) (przynajmniej w przestrzeni użytkownika). Chociaż wolimy pozostać przy oficjalnym systemie operacyjnym, doszliśmy do wniosku, że aby rozwiązać te problemy, musimy przeprowadzić migrację do natywnego 64-bitowego systemu operacyjnego + +Poza tym klienty Eth 2.0 nie obsługują 32-bitowych plików binarnych, więc użycie Raspbian wykluczyłoby Raspberry Pi 4 z uruchamiania węzła Eth 2.0 (oraz możliwość stakingu). + +Po kilku testach wydajemy teraz 2 różne obrazy oparte na 64-bitowym Ubuntu 20.04 [[3]](/developers/tutorials/run-node-raspberry-pi/#references): Edycje Eth 1.0 i Eth 2.0. + +Zasadniczo oba są tym samym obrazem i zawierają te same cechy obrazów opartych na Raspbian. Ale są one domyślnie skonfigurowane do uruchamiania oprogramowania Eth 1.0 lub Eth 2.0. + +**Obrazy wykonują wszystkie niezbędne kroki**, od konfiguracji środowiska i formatowania dysku SSD po instalację i uruchomienie oprogramowania Ethereum, a także uruchomienie synchronizacji łańcucha bloków. + +## Główne funkcje {#main-features} + +- Na podstawie Ubuntu 20.04 64bit +- Automatyczna partycja i formatowanie dysku USB +- Dodaje pamięć wymiany (moduł jądra ZRAM + plik wymiany) na podstawie pracy Armbiana [[7]](/developers/tutorials/run-node-raspberry-pi/#references) +- Zmienia nazwę hosta na coś w rodzaju „ethnode-e2a3e6fe” w oparciu o hash MAC +- Uruchamia oprogramowanie jako usługę systemową i rozpoczyna synchronizację Blockchain +- Zawiera repozytorium APT do instalacji i aktualizacji oprogramowania Ethereum +- Zawiera panel monitorowania oparty na Grafana / Prometheus + +## Dołączone oprogramowanie {#software-included} + +Oba obrazy zawierają te same pakiety, jedyną różnicą między nimi jest to, że Eth 1.0 domyślnie uruchamia Geth, a Eth 2.0 domyślnie uruchamia łańcuch śledzący Prysm. + +### Klienty Ethereum 1.0 {#execution-clients} + +- Geth [[8]](/developers/tutorials/run-node-raspberry-pi/#references): 1.9.13 (oficjalny plik binarny) +- Parity [[9]](/developers/tutorials/run-node-raspberry-pi/#references): 2.7.2 (kompilacja krzyżowa) +- Nethermind [[10]](/developers/tutorials/run-node-raspberry-pi/#references): 1.8.28 (kompilacja krzyżowa) +- Hyperledger Besu [[11]](/developers/tutorials/run-node-raspberry-pi/#references): 1.4.4 (skompilowane) + +### Klienty Ethereum 2.0 {#consensus-clients} + +- Prysm [[12]](/developers/tutorials/run-node-raspberry-pi/#references): 1.0.0-alpha6 (oficjalny plik binarny) +- Lighthouse [[13]](/developers/tutorials/run-node-raspberry-pi/#references): 0.1.1 (kompilacja) + +### Framework Ethereum {#ethereum-framework} + +- Swarm [[14]](/developers/tutorials/run-node-raspberry-pi/#references): 0.5.7 (oficjalny plik binarny) +- Raiden Network [[15]](/developers/tutorials/run-node-raspberry-pi/#references): 0.200.0~rc1 (oficjalny plik binarny) +- IPFS [[16]](/developers/tutorials/run-node-raspberry-pi/#references): 0.5.0 (oficjalny plik binarny) +- Statusd [[17]](/developers/tutorials/run-node-raspberry-pi/#references): 0.52.3 (skompilowany) +- Vipnode [[18]](/developers/tutorials/run-node-raspberry-pi/#references): 2.3.3 (oficjalny plik binarny) + +## Instrukcja instalacji i użytkowania {#installation-guide-and-usage} + +### Zalecany sprzęt i konfiguracja {#recommended-hardware-and-setup} + +- Raspberry 4 (model B) - 4GB +- Karta MicroSD (16 GB klasy 10 minimum) +- SSD USB 3.0 (zob. sekcja pamięci) +- Zasilacz +- Kabel Ethernet +- 30303 Przekierowanie portów (Eth 1.0) i 13000 przekierowanie portów (Eth 2.0) [[4]](/developers/tutorials/run-node-raspberry-pi/#references) +- Obudowa z radiatorem i wentylatorem (opcjonalna, ale zdecydowanie zalecana) +- Klawiatura USB, monitor i kabel HDMI (micro-HDMI) (opcjonalnie) + +## Pamięć {#storage} + +Będziesz potrzebować dysku SSD, aby uruchomić klientów Ethereum (bez dysku SSD nie ma absolutnie żadnej szansy na zsynchronizowanie łańcucha bloków Ethereum). Istnieją dwie opcje: + +- Użyj przenośnego dysku SSD USB, takiego jak przenośny dysk SSD Samsung T5. +- Użyj etui na zewnętrzny dysk twardy USB 3.0 z dyskiem SSD. W naszym przypadku zastosowaliśmy obudowę dysku twardego Inateck 2.5 FE2011. Upewnij się, że kupujesz obudowę z chipem zgodnym z UAS, w szczególności jedną z nich: JMicron (JMS567 lub JMS578) lub ASMedia (ASM1153E). + +W obu przypadkach unikaj uzyskiwania dysków SSD niskiej jakości, ponieważ jest to kluczowy element węzła i może drastycznie wpłynąć na wydajność (i czasy synchronizacji). + +Pamiętaj, że musisz podłączyć dysk do portu USB 3.0 (niebieski) + +## Pobieranie i instalacja obrazu {#image-download-and-installation} + +### 1. Pobierz obrazy Eth 1.0 lub Eth 2.0 {#1-download-execution-or-consensus-images} + +Pobierz obraz Eth 1.0 + +sha256 7fa9370d13857dd6abcc8fde637c7a9a7e3a66b307d5c28b0c0d29a09c73c55cPobierz obraz Eth2 + +sha256 74c0c15b708720e5ae5cac324f1afded6316537fb17166109326755232cd316e + +### 2. Wgraj obraz {#2-flash-the-image} + +Włóż kartę microSD do komputera stacjonarnego / laptopa i pobierz plik (na przykład Eth 1.0): + +```bash +wget https://ethraspbian.com/downloads/ubuntu-20.04-preinstalled-server-arm64+raspi-eth1.img.zip +``` + +Uwaga: jeśli nie czujesz się dobrze z wierszem poleceń lub jeśli używasz systemu Windows, możesz użyć [Etcher](https://etcher.io) + +Otwórz terminal i sprawdź nazwę swojego urządzenia MicroSD, które działa: + +```bash +sudo fdisk -l +``` + +Powinieneś zobaczyć urządzenie o nazwie mmcblk0 lub sdd. Rozpakuj i wgraj obraz: + +```bash +unzip ubuntu-20.04-preinstalled-server-arm64+raspi-eth1.img.zip +sudo dd bs=1M if=ubuntu-20.04-preinstalled-server-arm64+raspi-eth1.img of=/dev/mmcblk0 && sync +``` + +### 3. Włóż microSD do Raspberry Pi 4. Podłącz kabel Ethernet i podłącz dysk USB SSD (upewnij się, że używasz niebieskiego portu). {#3-insert-the-microsd-into-the-raspberry-pi-4-connect-an-ethernet-cable-and-attach-the-usb-ssd-disk-make-sure-you-are-using-a-blue-port} + +### 4. Włącz urządzenie {#4-power-on-the-device} + +System operacyjny Ubuntu uruchomi się za mniej niż minutę, ale **trzeba poczekać około 10 minut**, aby skrypt mógł wykonać niezbędne zadania, aby zmienić urządzenie w węzeł Ethereum i zrestartuj Raspberry. + +W zależności od obrazu uruchomisz: + +- Eth 1.0: Geth jako domyślny klient synchronizujący łańcuch bloków +- Eth2: Prysm jako domyślny klient synchronizujący łańcuch śledzący (sieć testowa Topaz) + +### 5. Zaloguj się {#5-log-in} + +Możesz zalogować się przez SSH lub za pomocą konsoli (jeśli masz podłączony monitor i klawiaturę) + +```bash +User: ethereum +Password: ethereum +``` + +Zostaniesz poproszony o zmianę hasła przy pierwszym logowaniu, więc będziesz musiał zalogować się dwukrotnie. + +### 6. Otwórz port 30303 dla Getha i 13000, jeśli używasz łańcucha śledzącego Prysm. Jeśli nie wiesz, jak to zrobić, wygoogluj „przekierowanie portów”, a następnie model routera. {#6-open-30303-port-for-geth-and-13000-if-you-are-running-prysm-beacon-chain-if-you-dont-know-how-to-do-this-google-port-forwarding-followed-by-your-router-model} + +### 7. Uzyskaj dane wyjściowe konsoli {#7-get-console-output} + +Możesz zobaczyć, co dzieje się w tle, wpisując: + +```bash +sudo tail -f /var/log/syslog +``` + +**Gratulacje. Korzystasz teraz z pełnego węzła Ethereum na swoim Raspberry Pi 4.** + +## Synchronizowanie łańcucha bloków {#syncing-the-blockchain} + +Teraz musisz poczekać na synchronizację łańcucha bloków. W przypadku Eth 1.0 zajmie to kilka dni w zależności od kilku czynników, ale możesz spodziewać się do około 5-7 dni. + +Jeśli korzystasz z tesnetu Eth2 Topaz, możesz spodziewać się 1-2 dni czasu synchronizacji łańcucha śledzącego. Pamiętaj, że będziesz musiał ustawić walidator później, aby rozpocząć proces stakingu. [Jak uruchomić walidator Eth 2.0](/developers/tutorials/run-node-raspberry-pi/#validator) + +## Pulpity kontrolne {#monitoring-dashboards} + +W tej pierwszej wersji dołączyliśmy 3 panele monitorowania oparte na Prometheus [[5]](/developers/tutorials/run-node-raspberry-pi/#references) /Grafana [[6]](/developers/tutorials/run-node-raspberry-pi/#references) w celu monitorowania danych węzła i klientów (Geth i Besu). Możesz uzyskać dostęp przez przeglądarkę internetową: + +```bash +URL: http://your_raspberrypi_IP:3000 +User: admin +Password: ethereum +``` + +## Przełączanie klientów {#switching-clients} + +Wszyscy klienci działają jako usługa systemowa. Jest to ważne, ponieważ jeśli pojawi się problem, system automatycznie odrodzi proces. + +Łańcuch śledzący Geth i Prysm jest uruchamiany domyślnie (w zależności od tego, co synchronizujesz, Eth 1.0 lub Eth2), więc jeśli chcesz przełączyć się na innych klientów (na przykład z Geth na Nethermind), musisz najpierw zatrzymać i wyłączyć Geth, oraz włącz i uruchom drugiego klienta: + +```bash +sudo systemctl stop geth && sudo systemctl disable geth +``` + +Polecenia włączania i uruchamiania każdego klienta Eth 1.0: + +```bash +sudo systemctl enable besu && sudo systemctl start besu +sudo systemctl enable nethermind && sudo systemctl start nethermind +sudo systemctl enable parity && sudo systemctl start parity +``` + +Eth2: + +```bash +sudo systemctl stop prysm-beacon && sudo systemctl disable prysm-beacon +sudo systemctl start lighthouse && sudo systemctl enable lighthouse +``` + +## Zmiana parametrów {#changing-parameters} + +Pliki konfiguracyjne klientów znajdują się w katalogu /etc/ethereum/. Możesz edytować te pliki i ponownie uruchomić usługę systemd, aby zmiany zaczęły obowiązywać. Jedynym wyjątkiem jest Nethermind, który dodatkowo posiada plik konfiguracyjny sieci głównej, który znajduje się tutaj: + +```bash +/etc/nethermind/configs/mainnet.cfg +``` + +Dane klientów Blockchain są przechowywane na koncie domowym Ethereum w następujący sposób (zwróć uwagę na kropkę przed nazwą katalogu): + +### Eth 1.0 {#execution-layer} + +```bash +/home/ethereum/.geth +/home/ethereum/.parity +/home/ethereum/.besu +/home/ethereum/.nethermind +``` + +### Eth2 {#consensus-layer} + +```bash +/home/ethereum/.eth2 +/home/ethereum/.eth2validators +/home/ethereum/.lighthouse +``` + +## Nethermind i Hyperledger Besu {#nethermind-and-hyperledger-besu} + +Te 2 wspaniałe klienty Eth 1.0 stały się świetną alternatywą dla Geth and Parity. Im większa różnorodność w sieci, tym lepiej, więc możesz spróbować i przyczynić się do poprawy stanu sieci. + +Oba wymagają dalszych testów, więc wypróbuj je i zgłoś swoją opinię. + +## Jak uruchomić walidator Eth 2.0 (staking) {#validator} + +Gdy łańcuch śledzący sieci testowej Topaz zostanie zsynchronizowany, można uruchomić walidator na tym samym urządzeniu. Będziesz musiał postępować według [tych etapów uczestnictwa](https://prylabs.net/participate). + +Po raz pierwszy, musisz utworzyć ręcznie konto, uruchamiając plik binarny „validator” i skonfigurować hasło. Po zakończeniu tego kroku możesz dodać hasło do `/etc/ethereum/prysm-validator.conf` i uruchomić walidator jako usługę systemową. + +## Opinie są mile widziane! {#feedback-appreciated} + +Włożyliśmy dużo pracy, próbując skonfigurować Raspberry Pi 4 jako pełny węzeł Ethereum, ponieważ wiemy, że ogromna baza użytkowników tego urządzenia może mieć bardzo pozytywny wpływ na sieć. + +Proszę wziąć pod uwagę, że jest to pierwszy obraz oparty na Ubuntu 20.04, więc może być kilka błędów. Jeśli tak, otwórz zgłoszenie na [GitHub](https://github.com/diglos/ethereumonarm) lub skontaktuj się z nami na [Twitter](https://twitter.com/EthereumOnARM). + +## Odniesienia {#references} + +1. [geth repeatedly crashes with SIGSEGV](https://github.com/ethereum/go-ethereum/issues/20190) +2. [https://github.com/diglos/ethereumonarm](https://github.com/diglos/ethereumonarm) +3. https://ubuntu.com/download/raspberry-pi +4. https://wikipedia.org/wiki/Port_forwarding +5. https://prometheus.io +6. https://grafana.com +7. https://forum.armbian.com/topic/5565-zram-vs-swap/ +8. https://geth.ethereum.org +9. https://github.com/openethereum/openethereum +10. https://nethermind.io +11. https://www.hyperledger.org/projects/besu +12. https://github.com/prysmaticlabs/prysm +13. https://lighthouse.sigmaprime.io +14. https://ethersphere.github.io/swarm-home +15. https://raiden.network +16. https://ipfs.io +17. https://status.im +18. https://vipnode.org diff --git a/src/content/translations/pl/developers/tutorials/smart-contract-security-guidelines/index.md b/public/content/translations/pl/developers/tutorials/smart-contract-security-guidelines/index.md similarity index 100% rename from src/content/translations/pl/developers/tutorials/smart-contract-security-guidelines/index.md rename to public/content/translations/pl/developers/tutorials/smart-contract-security-guidelines/index.md diff --git a/public/content/translations/pl/developers/tutorials/the-graph-fixing-web3-data-querying/index.md b/public/content/translations/pl/developers/tutorials/the-graph-fixing-web3-data-querying/index.md new file mode 100644 index 00000000000..72f162948d6 --- /dev/null +++ b/public/content/translations/pl/developers/tutorials/the-graph-fixing-web3-data-querying/index.md @@ -0,0 +1,316 @@ +--- +title: "The Graph: zapytania o dane Web3" +description: Blockchain jest jak baza danych, ale bez SQL. Wszystkie dane tam są, ale nie ma do nich dostępu. Pokażę ci, jak to naprawić za pomocą The Graph i GraphQL. +author: Markus Waas +lang: pl +tags: + - "solidity" + - "inteligentne kontrakty" + - "zapytania" + - "the graph" + - "create-eth-app" + - "reakcja" +skill: intermediate +published: 2020-09-06 +source: soliditydeveloper.com +sourceUrl: https://soliditydeveloper.com/thegraph +--- + +Tym razem przyjrzymy się bliżej protokołowi The Graph, który zasadniczo stał się częścią standardowego stosu do tworzenia aplikacji dapps w zeszłym roku. Zobaczmy najpierw, jak zrobilibyśmy rzeczy w tradycyjny sposób... + +## Bez The Graph... {#without-the-graph} + +Przejdźmy więc do prostego przykładu w celach ilustracyjnych. Wszyscy lubimy gry, więc wyobraźmy sobie prostą grę z użytkownikami zakładów: + +```solidity +pragma solidity 0.7.1; + +contract Game { + uint256 totalGamesPlayerWon = 0; + uint256 totalGamesPlayerLost = 0; + event BetPlaced(address player, uint256 value, bool hasWon); + + function placeBet() external payable { + bool hasWon = evaluateBetForPlayer(msg.sender); + + if (hasWon) { + (bool success, ) = msg.sender.call{ value: msg.value * 2 }(''); + require(success, "Transfer failed"); + totalGamesPlayerWon++; + } else { + totalGamesPlayerLost++; + } + + emit BetPlaced(msg.sender, msg.value, hasWon); + } +} +``` + +Załóżmy teraz, że w naszej aplikacji dapp chcemy wyświetlić całkowitą liczbę przegranych/wygranych gier, a także aktualizować ją za każdym razem, gdy ktoś gra ponownie. Podejście byłoby następujące: + +1. Pobierz `totalGamesPlayerWon`. +2. Pobierz `totalGamesPlayerlost`. +3. Subskrybuj zdarzenia `BetPlaceed`. + +Możemy nasłuchiwać zdarzeń [w sieci Web3](https://docs.web3js.org/api/web3/class/Contract#events), jak widać po prawej stronie, ale wymaga to obsługi kilku przypadków. + +```solidity +GameContract.events.BetPlaced({ + fromBlock: 0 +}, function(error, event) { console.log(event); }) +.on('data', function(event) { + // event fired +}) +.on('changed', function(event) { + // event was removed again +}) +.on('error', function(error, receipt) { + // tx rejected +}); +``` + +W naszym prostym przykładzie jest to nadal poniekąd w porządku. Ale powiedzmy, że chcemy teraz wyświetlać kwoty przegranych/wygranych zakładów tylko dla aktualnego gracza. Cóż, nie mamy szczęścia, lepiej wdrożyć nowy kontrakt, który przechowuje te wartości i je pobiera. A teraz wyobraź sobie znacznie bardziej skomplikowany inteligentny kontrakt i dapp, rzeczy mogą szybko się popsuć. + +![Nie wystarczy po prostu zapytać](./one-does-not-simply-query.jpg) + +Możesz zobaczyć, że to nieoptymalne: + +- Nie działa dla już wdrożonych kontraktów. +- Dodatkowe koszty gazu za przechowywanie tych wartości. +- Wymaga kolejnego wywołania w celu pobrania danych dla węzła Ethereum. + +![To nie jest wystarczająco dobre](./not-good-enough.jpg) + +Spójrzmy teraz na lepsze rozwiązanie. + +## Pozwól, że przedstawię Ci GraphQL {#let-me-introduce-to-you-graphql} + +Najpierw porozmawiajmy o GraphQL, pierwotnie zaprojektowanym i zaimplementowanym przez Facebooka. Być może znasz tradycyjny model Rest API. Teraz wyobraź sobie, że zamiast tego możesz napisać zapytanie dla dokładnie tych danych, które chciałeś: + +![GraphQL API vs. REST API](./graphql.jpg) + + + +Te dwa obrazy w dużym stopniu oddają istotę GraphQL. Za pomocą zapytania po prawej stronie możemy zdefiniować dokładnie, jakich danych chcemy, dzięki czemu otrzymujemy wszystko w jednym żądaniu i nic więcej niż dokładnie to, czego potrzebujemy. Serwer GraphQL obsługuje pobieranie wszystkich wymaganych danych, dzięki czemu jest niezwykle łatwy w użyciu dla użytkownika frontendu. [To dobre wyjaśnienie](https://www.apollographql.com/blog/graphql-explained-5844742f195e/), jak dokładnie serwer obsługuje zapytanie, jeśli jesteś zainteresowany. + +Teraz, mając tę ​​wiedzę, w końcu wskoczmy w przestrzeń blockchain i The Graph. + +## Co to jest The Graph? {#what-is-the-graph} + +Blockchain to zdecentralizowana baza danych, ale w przeciwieństwie do tego, co zwykle ma miejsce, nie mamy języka zapytań dla tej bazy danych. Rozwiązania do odzyskiwania danych są bolesne lub całkowicie niemożliwe. The Graph to zdecentralizowany protokół do indeksowania i odpytywania danych blockchain. I mogłeś się domyślić, że używa GraphQL jako języka zapytań. + +![The Graph](./thegraph.png) + +Przykłady są zawsze najlepsze, aby coś zrozumieć, więc użyjmy The Graph dla naszego przykładu GameContract. + +## Jak stworzyć Subgraph {#how-to-create-a-subgraph} + +Definicja sposobu indeksowania danych nazywana jest subgraph. Wymaga trzech komponentów: + +1. Manifest (subgraf.yaml) +2. Schemat (schema.graphql) +3. Mapping (mapping.ts) + +### Manifest (subgraf.yaml) {#manifest} + +Manifest jest naszym plikiem konfiguracyjnym i definiuje: + +- które inteligentne kontrakty indeksować (adres, sieć, ABI...) +- jakich zdarzeń nasłuchiwać +- inne rzeczy do słuchania, takie jak wywołania funkcji lub bloki +- wywoływane funkcje mapujące (zobacz mapping.ts poniżej) + +Tutaj możesz zdefiniować wiele kontraktów i programów obsługi. Typowa konfiguracja miałaby folder podrzędny wewnątrz projektu Truffle/Hardhat z własnym repozytorium. Wtedy możesz łatwo odwołać się do ABI. + +Dla wygody możesz również użyć narzędzia szablonu, takiego jak wąsy. Następnie tworzysz subgraph.template.yaml i wstawiasz adresy oparte na najnowszych wdrożeniach. Aby zapoznać się z bardziej zaawansowaną przykładową konfiguracją, zobacz na przykład [Repozytorium subgrafów Aave](https://github.com/aave/aave-protocol/tree/master/thegraph). + +A pełną dokumentację można zobaczyć tutaj: https://thegraph.com/docs/define-a-subgraph#the-subgraph-manifest. + +```yaml +specVersion: 0.0.1 +description: Placing Bets on Ethereum +repository: - GitHub link - +schema: + file: ./schema.graphql +dataSources: + - kind: ethereum/contract + name: GameContract + network: mainnet + source: + address: '0x2E6454...cf77eC' + abi: GameContract + startBlock: 6175244 + mapping: + kind: ethereum/events + apiVersion: 0.0.1 + language: wasm/assemblyscript + entities: + - GameContract + abis: + - name: GameContract + file: ../build/contracts/GameContract.json + eventHandlers: + - event: PlacedBet(address,uint256,bool) + handler: handleNewBet + file: ./src/mapping.ts +``` + +### Schemat (schema.graphql) {#schema} + +Schematem jest definicja danych GraphQL. Pozwoli to na zdefiniowanie istniejących obiektów i ich typów. Obsługiwane typy z wykresu to + +- Bajty +- ID +- Tekst +- Boolean +- Wewnątrz +- BigInt +- BigDecimal + +Możesz również używać obiektów jako typu do definiowania relacji. W naszym przykładzie definiujemy relacje od gracza do zakładów. ! oznacza, że ​​wartość nie może być pusta. Pełną dokumentację można zobaczyć tutaj: https://thegraph.com/docs/define-a-subgraph#the-graphql-schema. + +```graphql +type Bet @entity { + id: ID! + player: Player! + playerHasWon: Boolean! + time: Int! +} + +type Player @entity { + id: ID! + totalPlayedCount: Int + hasWonCount: Int + hasLostCount: Int + bets: [Bet]! +} +``` + +### Mapping (mapping.ts) {#mapping} + +Plik mapowania na wykresie definiuje nasze funkcje, które przekształcają przychodzące zdarzenia w podmioty. Jest napisany w AssemblyScript, podzbiorze Typescript. Oznacza to, że może być skompilowany w WASM (WebAssembly) dla bardziej wydajnego i przenośnego wykonywania mapowania. + +Musisz zdefiniować każdą funkcję nazwaną w pliku subgraph.yaml, więc w naszym przypadku potrzebujemy tylko jednego: handleNewBet. Najpierw próbujemy załadować obiekt Gracza z adresu nadawcy w postaci identyfikatora. Jeśli nie istnieje, tworzymy nową jednostkę i wypełniamy ją wartościami początkowymi. + +Następnie tworzymy nową jednostkę zakładu. Identyfikatorem dla tego będzie event.transaction.hash.toHex() + "-" + event.logIndex.toString() zapewniający zawsze unikalną wartość. Używanie samego skrótu nie wystarczy, ponieważ ktoś może kilkakrotnie wywoływać funkcję placeBet w jednej transakcji za pośrednictwem inteligentnej umowy. + +Na koniec możemy zaktualizować podmiot Player, który będzie zawierał wszystkie dane. Tablice nie mogą być wypychane bezpośrednio, ale muszą zostać zaktualizowane, jak pokazano tutaj. Używamy identyfikatora, aby odnieść się do zakładu. A .save() jest wymagane na końcu do przechowywania obiektu. + +Pełną dokumentację można zobaczyć tutaj: https://thegraph.com/docs/define-a-subgraph#writing-mappings. Możesz także dodać dane wyjściowe rejestrowania do pliku mapowania, zobacz [tutaj](https://thegraph.com/docs/assemblyscript-api#api-reference). + +```typescript +import { Bet, Player } from "../generated/schema" +import { PlacedBet } from "../generated/GameContract/GameContract" + +export function handleNewBet(event: PlacedBet): void { + let player = Player.load(event.transaction.from.toHex()) + + if (player == null) { + // create if doesn't exist yet + player = new Player(event.transaction.from.toHex()) + player.bets = new Array(0) + player.totalPlayedCount = 0 + player.hasWonCount = 0 + player.hasLostCount = 0 + } + + let bet = new Bet( + event.transaction.hash.toHex() + "-" + event.logIndex.toString() + ) + bet.player = player.id + bet.playerHasWon = event.params.hasWon + bet.time = event.block.timestamp + bet.save() + + player.totalPlayedCount++ + if (event.params.hasWon) { + player.hasWonCount++ + } else { + player.hasLostCount++ + } + + // update array like this + let bets = player.bets + bets.push(bet.id) + player.bets = bets + + player.save() +} +``` + +## Używanie go w frontendzie {#using-it-in-the-frontend} + +Używając czegoś takiego jak Apollo Boost, możesz łatwo zintegrować The Graph z React Dapp (lub Apollo-Vue). Zwłaszcza gdy używasz hooków React i Apollo, pobieranie danych jest tak proste, jak napisanie pojedynczego zapytania GraphQl w twoim komponencie. Typowa konfiguracja może wyglądać tak: + +```javascript +// See all subgraphs: https://thegraph.com/explorer/ +const client = new ApolloClient({ + uri: "{{ subgraphUrl }}", +}) + +ReactDOM.render( + + + , + document.getElementById("root") +) +``` + +A teraz możemy napisać na przykład takie zapytanie. Spowoduje to pobranie + +- ile razy obecny użytkownik wygrał +- ile razy aktualny użytkownik przegrał +- listę sygnatur czasowych ze wszystkimi jego poprzednimi zakładami + +Wszystko w jednym żądaniu do serwera GraphQL. + +```javascript +const myGraphQlQuery = gql` + players(where: { id: $currentUser }) { + totalPlayedCount + hasWonCount + hasLostCount + bets { + time + } + } +` + +const { loading, error, data } = useQuery(myGraphQlQuery) + +React.useEffect(() => { + if (!loading && !error && data) { + console.log({ data }) + } +}, [loading, error, data]) +``` + +![Magic](./magic.jpg) + +Ale brakuje nam ostatniego elementu układanki, a jest nim serwer. Możesz uruchomić go samodzielnie lub skorzystać z usługi hostowanej. + +## Serwer The Graph {#the-graph-server} + +### Graph Explorer: usługa hostowana {#graph-explorer-the-hosted-service} + +Najprostszym sposobem jest skorzystanie z usługi hostowanej. Postępuj zgodnie z instrukcjami [tutaj](https://thegraph.com/docs/deploy-a-subgraph), aby wdrożyć subgraf. W przypadku wielu projektów można znaleźć istniejące podgrafy w eksploratorze pod adresem https://thegraph.com/explorer/. + +![The Graph-Explorer](./thegraph-explorer.png) + +### Uruchamianie własnego węzła {#running-your-own-node} + +Alternatywnie możesz uruchomić własny węzeł: https://github.com/graphprotocol/graph-node#quick-start. Jednym z powodów, aby to zrobić, może być korzystanie z sieci, która nie jest obsługiwana przez hostowaną usługę. Obecnie obsługiwane są sieć główna, Kovan, Rinkeby, Ropsten, Goerli, PoA-Core, xDAI i Sokol. + +## Zdecentralizowana przyszłość {#the-decentralized-future} + +GraphQL obsługuje również strumienie dla nowo przychodzących zdarzeń. Nie jest to jeszcze w pełni obsługiwane przez The Graph, ale zostanie wkrótce wydane. + +Brakującym aspektem jest jednak wciąż decentralizacja. The Graph w przyszłości ma ostatecznie stać się w pełni zdecentralizowanym protokołem. Oto dwa świetne artykuły, które bardziej szczegółowo wyjaśniają plan: + +- https://thegraph.com/blog/the-graph-network-in-depth-part-1 +- https://thegraph.com/blog/the-graph-network-in-depth-part-2 + +Dwa kluczowe aspekty to: + +1. Użytkownicy będą płacić indeksatorom za zapytania. +2. Indeksatorzy będą stakować tokeny Graph (GRT). diff --git a/src/content/translations/pl/developers/tutorials/token-integration-checklist/index.md b/public/content/translations/pl/developers/tutorials/token-integration-checklist/index.md similarity index 100% rename from src/content/translations/pl/developers/tutorials/token-integration-checklist/index.md rename to public/content/translations/pl/developers/tutorials/token-integration-checklist/index.md diff --git a/public/content/translations/pl/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md b/public/content/translations/pl/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md new file mode 100644 index 00000000000..fbf2125a81b --- /dev/null +++ b/public/content/translations/pl/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md @@ -0,0 +1,328 @@ +--- +title: Transfery i zatwierdzenie tokenów ERC-20 z inteligentnego kontraktu Solidity +description: Jak używać inteligentnego kontraktu do interakcji z tokenem przy użyciu języka Solidity +author: "jdourlens" +tags: + - "inteligentne kontrakty" + - "tokeny" + - "solidity" + - "pierwsze kroki" + - "erc-20" +skill: intermediate +lang: pl +published: 2020-04-07 +source: EthereumDev +sourceUrl: https://ethereumdev.io/transfers-and-approval-or-erc20-tokens-from-a-solidity-smart-contract/ +address: "0x19dE91Af973F404EDF5B4c093983a7c6E3EC8ccE" +--- + +W poprzednim samouczku zbadaliśmy [anatomię tokena ERC-20 w Solidity](/developers/tutorials/understand-the-erc-20-token-smart-contract/) w blockchainie Ethereum. W tym artykule zobaczymy, jak możemy użyć inteligentnego kontraktu do interakcji z tokenem, używając języka Solidity. + +Dla tego inteligentnego kontraktu stworzymy naprawdę fikcyjną zdecentralizowaną giełdę, na której użytkownik może wymieniać ether na nasze nowo wdrożone [tokeny ERC-20](/developers/docs/standards/tokens/erc-20/). + +W tym samouczku użyjemy kodu, który napisaliśmy w poprzednim samouczku jako podstawy. Nasz DEX utworzy instancjr kontraktu w konstruktorze i wykona operacje: + +- wymiana tokenów na ether +- wymiana etheru na tokeny + +Rozpoczniemy nasz zdecentralizowany kod wymiany poprzez dodanie naszej prostej bazy kodowej ERC20: + +```solidity +pragma solidity ^0.6.0; + +interface IERC20 { + + function totalSupply() external view returns (uint256); + function balanceOf(address account) external view returns (uint256); + function allowance(address owner, address spender) external view returns (uint256); + + function transfer(address recipient, uint256 amount) external returns (bool); + function approve(address spender, uint256 amount) external returns (bool); + function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); + + + event Transfer(address indexed from, address indexed to, uint256 value); + event Approval(address indexed owner, address indexed spender, uint256 value); +} + + +contract ERC20Basic is IERC20 { + + string public constant name = "ERC20Basic"; + string public constant symbol = "ERC"; + uint8 public constant decimals = 18; + + + event Approval(address indexed tokenOwner, address indexed spender, uint tokens); + event Transfer(address indexed from, address indexed to, uint tokens); + + + mapping(address => uint256) balances; + + mapping(address => mapping (address => uint256)) allowed; + + uint256 totalSupply_ = 100 ether; + + using SafeMath for uint256; + + constructor(uint256 total) public { + balances[msg.sender] = totalSupply_; + } + + function totalSupply() public override view returns (uint256) { + return totalSupply_; + } + + function balanceOf(address tokenOwner) public override view returns (uint256) { + return balances[tokenOwner]; + } + + function transfer(address receiver, uint256 numTokens) public override returns (bool) { + require(numTokens <= balances[msg.sender]); + balances[msg.sender] = balances[msg.sender].sub(numTokens); + balances[receiver] = balances[receiver].add(numTokens); + emit Transfer(msg.sender, receiver, numTokens); + return true; + } + + function approve(address delegate, uint256 numTokens) public override returns (bool) { + allowed[msg.sender][delegate] = numTokens; + emit Approval(msg.sender, delegate, numTokens); + return true; + } + + function allowance(address owner, address delegate) public override view returns (uint) { + return allowed[owner][delegate]; + } + + function transferFrom(address owner, address buyer, uint256 numTokens) public override returns (bool) { + require(numTokens <= balances[owner]); + require(numTokens <= allowed[owner][msg.sender]); + + balances[owner] = balances[owner].sub(numTokens); + allowed[owner][msg.sender] = allowed[owner][msg.sender].sub(numTokens); + balances[buyer] = balances[buyer].add(numTokens); + emit Transfer(owner, buyer, numTokens); + return true; + } +} + +library SafeMath { + function sub(uint256 a, uint256 b) internal pure returns (uint256) { + assert(b <= a); + return a - b; + } + + function add(uint256 a, uint256 b) internal pure returns (uint256) { + uint256 c = a + b; + assert(c >= a); + return c; + } +} +``` + +Nasz nowy inteligentny kontrakt DEX wdroży ERC-20 i otrzyma wszystkie dostarczone: + +```solidity +contract DEX { + + IERC20 public token; + + event Bought(uint256 amount); + event Sold(uint256 amount); + + constructor() public { + token = new ERC20Basic(); + } + + function buy() payable public { + // TODO + } + + function sell(uint256 amount) public { + // TODO + } + +} +``` + +Więc wiemy, że mamy nasz DEX i ma całą dostępną rezerwę tokenów. Kontrakt spełnia dwie funkcje: + +- `buy`: użytkownik może wysyłać ether i otrzymywać tokeny w zamian +- `sell`: użytkownik może zdecydować się na wysłanie tokenów, aby odzyskać ether + +## Funkcja kupna {#the-buy-function} + +Zakodujmy funkcję kup. Najpierw będziemy musieli sprawdzić ilość etheru w wiadomości i sprawdzić, czy kontrakty posiadają wystarczającą ilość tokenów i czy wiadomość ma w niej jakiś eter. cJeśli kontrakt posiada wystarczającą ilość tokenów, wyśle liczbę tokenów do użytkownika i wyemituje zdarzenie `Bought`. + +Zauważ, że jeśli wywołamy wymagającą funkcję w przypadku błędu, ether wysłany zostanie bezpośrednio przywrócony i odesłany do użytkownika. + +Aby uprościć sprawę, po prostu wymieniamy 1 token na 1 eter. + +```solidity +function buy() payable public { + uint256 amountTobuy = msg.value; + uint256 dexBalance = token.balanceOf(address(this)); + require(amountTobuy > 0, "You need to send some ether"); + require(amountTobuy <= dexBalance, "Not enough tokens in the reserve"); + token.transfer(msg.sender, amountTobuy); + emit Bought(amountTobuy); +} +``` + +Jeśli zakup zakończył się sukcesem, powinniśmy zobaczyć dwa zdarzenia w transakcji: Token `Transfer` i `Bought` wydarzenie. + +![Dwa zdarzenia w transakcji: Transfer i Bought](./transfer-and-bought-events.png) + +## Funkcja kupna {#the-sell-function} + +Funkcja odpowiedzialna za sprzedaż będzie najpierw wymagała od użytkownika zatwierdzenia kwoty poprzez uprzednie wywołanie zatwierdzonej funkcji. Następnie, gdy funkcja sprzedaży jest uruchomiona, sprawdzimy, czy przelew z adresu dzwoniącego na adres umowy zakończył się sukcesem, a następnie wyślemy Ethers z powrotem na adres dzwoniącego. + +```solidity +function sell(uint256 amount) public { + require(amount > 0, "You need to sell at least some tokens"); + uint256 allowance = token.allowance(msg.sender, address(this)); + require(allowance >= amount, "Check the token allowance"); + token.transferFrom(msg.sender, address(this), amount); + msg.sender.transfer(amount); + emit Sold(amount); +} +``` + +Jeśli wszystko działa, powinieneś zobaczyć 2 zdarzenia w transakcji (a `Transfer` i `Sold`) i Twoje saldo tokenu i saldo Ethereum zaktualizowane. + +![Dwa zdarzenia w transakcji: Transfer i Sold](./transfer-and-bought-events.png) + + + +Z tego samouczka zobaczyliśmy, jak sprawdzić saldo i przydział tokena ERC-20, a także jak wywołać `Transfer` i `TransferFrom` inteligentnego kontraktu ERC20 przy użyciu interfejsu. + +Po dokonaniu transakcji mamy samouczek JavaScript, aby [poczekać i uzyskać szczegółowe informacje o transakcjach](https://ethereumdev.io/waiting-for-a-transaction-to-be-mined-on-ethereum-with-js/), które zostały wykonane w ramach Twojego kontraktu oraz [samouczek dekodowania zdarzeń generowanych przez transfery tokenów lub inne zdarzenia](https://ethereumdev.io/how-to-decode-event-logs-in-javascript-using-abi-decoder/), o ile masz ABI. + +Oto kompletny kod do samouczka: + +```solidity +pragma solidity ^0.6.0; + +interface IERC20 { + + function totalSupply() external view returns (uint256); + function balanceOf(address account) external view returns (uint256); + function allowance(address owner, address spender) external view returns (uint256); + + function transfer(address recipient, uint256 amount) external returns (bool); + function approve(address spender, uint256 amount) external returns (bool); + function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); + + + event Transfer(address indexed from, address indexed to, uint256 value); + event Approval(address indexed owner, address indexed spender, uint256 value); +} + + +contract ERC20Basic is IERC20 { + + string public constant name = "ERC20Basic"; + string public constant symbol = "ERC"; + uint8 public constant decimals = 18; + + + event Approval(address indexed tokenOwner, address indexed spender, uint tokens); + event Transfer(address indexed from, address indexed to, uint tokens); + + + mapping(address => uint256) balances; + + mapping(address => mapping (address => uint256)) allowed; + + uint256 totalSupply_ = 10 ether; + + using SafeMath for uint256; + + constructor() public { + balances[msg.sender] = totalSupply_; + } + + function totalSupply() public override view returns (uint256) { + return totalSupply_; + } + + function balanceOf(address tokenOwner) public override view returns (uint256) { + return balances[tokenOwner]; + } + + function transfer(address receiver, uint256 numTokens) public override returns (bool) { + require(numTokens <= balances[msg.sender]); + balances[msg.sender] = balances[msg.sender].sub(numTokens); + balances[receiver] = balances[receiver].add(numTokens); + emit Transfer(msg.sender, receiver, numTokens); + return true; + } + + function approve(address delegate, uint256 numTokens) public override returns (bool) { + allowed[msg.sender][delegate] = numTokens; + emit Approval(msg.sender, delegate, numTokens); + return true; + } + + function allowance(address owner, address delegate) public override view returns (uint) { + return allowed[owner][delegate]; + } + + function transferFrom(address owner, address buyer, uint256 numTokens) public override returns (bool) { + require(numTokens <= balances[owner]); + require(numTokens <= allowed[owner][msg.sender]); + + balances[owner] = balances[owner].sub(numTokens); + allowed[owner][msg.sender] = allowed[owner][msg.sender].sub(numTokens); + balances[buyer] = balances[buyer].add(numTokens); + emit Transfer(owner, buyer, numTokens); + return true; + } +} + +library SafeMath { + function sub(uint256 a, uint256 b) internal pure returns (uint256) { + assert(b <= a); + return a - b; + } + + function add(uint256 a, uint256 b) internal pure returns (uint256) { + uint256 c = a + b; + assert(c >= a); + return c; + } +} + +contract DEX { + + event Bought(uint256 amount); + event Sold(uint256 amount); + + + IERC20 public token; + + constructor() public { + token = new ERC20Basic(); + } + + function buy() payable public { + uint256 amountTobuy = msg.value; + uint256 dexBalance = token.balanceOf(address(this)); + require(amountTobuy > 0, "You need to send some Ether"); + require(amountTobuy <= dexBalance, "Not enough tokens in the reserve"); + token.transfer(msg.sender, amountTobuy); + emit Bought(amountTobuy); + } + + function sell(uint256 amount) public { + require(amount > 0, "You need to sell at least some tokens"); + uint256 allowance = token.allowance(msg.sender, address(this)); + require(allowance >= amount, "Check the token allowance"); + token.transferFrom(msg.sender, address(this), amount); + msg.sender.transfer(amount); + emit Sold(amount); + } + +} +``` diff --git a/src/content/translations/pl/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md b/public/content/translations/pl/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md similarity index 100% rename from src/content/translations/pl/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md rename to public/content/translations/pl/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md diff --git a/public/content/translations/pl/developers/tutorials/using-websockets/index.md b/public/content/translations/pl/developers/tutorials/using-websockets/index.md new file mode 100644 index 00000000000..92894584e01 --- /dev/null +++ b/public/content/translations/pl/developers/tutorials/using-websockets/index.md @@ -0,0 +1,251 @@ +--- +title: Używanie WebSockets +description: Przewodnik korzystania z WebSockets i Alchemy do wysyłania żądań JSON-RPC i subskrybowania zdarzeń. +author: "Elan Halpern" +lang: pl +tags: + - "alchemy" + - "websockets" + - "zapytania" + - "pierwsze kroki" + - "subskrypcja" + - "JavaScript" +skill: beginner +source: Dokumentacja Alchemy +sourceUrl: https://docs.alchemyapi.io/guides/using-websockets +published: 2020-12-01 +--- + +Jest to przewodnik na poziomie podstawowym do korzystania z WebSockets i Alchemy do wykonywania żądań do blockchainu Ethereum. + +## WebSockets vs. HTTP {#websockets-vs-http} + +W odróżnieniu od HTTP, z WebSockets, nie musisz ciągle wysyłać żądań, gdy chcesz uzyskać konkretne informacje. WebSockets utrzymuje dla Ciebie połączenie sieciowe (jeżeli zostało nawiązane) i nasłuchuje zmian. + +Podobnie jak w przypadku jakiegokolwiek połączenia sieciowego, nie należy zakładać, że WebSocket pozostanie otwarty na zawsze bez przerwy, ale właściwa obsługa zerwanego połączenia i ponowne nawiązanie połączenie może zapewnić ciągłość jego prawidłowego działania. Następną niedogodnością WebSocketów jest to, że nie otrzymujesz kodów statusu HTTP w odpowiedzi, ale tylko komunikat o błędzie. + +​[Alchemy Web3](https://docs.alchemy.com/reference/api-overview) automatycznie dodaje obsługę awarii WebSocket i ponawiania prób bez konieczności konfiguracji. + +## Wypróbuj {#try-it-out} + +Najprostszym sposobem na przetestowanie WebSockets jest zainstalowanie narzędzia wiersza poleceń do tworzenia żądań WebSocket, takich jak [wscat](https://github.com/websockets/wscat). Używając wscat, możesz wysyłać następujące żądania: + +_Uwaga: jeśli posiadasz konto Alchemy, możesz zastąpić `demo` własnym kluczem API. [Sign up for a free Alchemy account here!](https://auth.alchemyapi.io/signup)_ + +``` +wscat -c wss://eth-mainnet.ws.alchemyapi.io/ws/demo +> {"jsonrpc": "2.0", "id": 0, "method": "eth_gasPrice"} +< {"jsonrpc": "2.0", "result": "0xb2d05e00", "id": 0} + +``` + +## Jak korzystać z WebSockets {#how-to-use-websockets} + +Aby rozpocząć, otwórz WebSocket za pomocą adresu URL WebSocket dla swojej aplikacji. Możesz znaleźć adres URL swojej aplikacji WebSocket, otwierając stronę aplikacji w [pulpicie nawigacyjnym](https://dashboard.alchemyapi.io/) i klikając przycisk „Wyświetl klucz”. Pamiętaj, że adres URL Twojej aplikacji dla WebSocketów różni się od adresu URL dla żądań HTTP, ale oba można znaleźć klikając „Wyświetl klucz”. + +![Gdzie znaleźć twój adres URL WebSocket w panelu Alchemy](./use-websockets.gif) + +Każdy z API wymienionych w [alchemy API](https://docs.alchemyapi.io/documentation/alchemy-api-reference/) może być używany przez WebSocket. Aby to zrobić, użyj tego samego ładunku, który zostałby wysłany jako treść żądania HTTP POST, ale zamiast tego wyślij ten ładunek za pośrednictwem protokołu WebSocket. + +## Z Web3 {#with-web3} + +Przejście na WebSockets podczas korzystania z biblioteki klienckiej, takiej jak Web3, jest proste. Po prostu przekaż adres URL WebSocket zamiast HTTP podczas tworzenia instancji klienta Web3. Na przykład: + +```js +const web3 = new Web3("wss://eth-mainnet.ws.alchemyapi.io/ws/your-api-key") + +web3.eth.getBlockNumber().then(console.log) // -> 7946893 +``` + +## Subskrypcja API {#subscription-api} + +Po połączeniu przez WebSocket, możesz użyć dwóch dodatkowych metod: `eth_subscribe` i `eth_unsubscribe`. Te metody pozwolą Ci na wysłuchanie konkretnych wydarzeń i natychmiastowe powiadomienie. + +### `eth_subscribe` {#eth-subscribe} + +Tworzy nową subskrypcję dla określonych zdarzeń. [Dowiedz się więcej o `eth_subscribe`](https://docs.alchemyapi.io/documentation/alchemy-api-reference/json-rpc#eth_subscribe). + +#### Parametry {#parameters} + +1. Rodzaj subskrypcji +2. Parametry opcjonalne + +Pierwszy argument określa rodzaj wydarzenia, którego należy nasłuchiwać. Drugi argument zawiera dodatkowe opcje, które zależą od pierwszego argumentu. Poniżej opisano różne rodzaje opisów, ich opcje i obciążenia zdarzeniami. + +#### Zwraca {#returns} + +ID subskrypcji: Ten identyfikator zostanie dołączony do wszystkich otrzymanych wydarzeń, i może być również używany do anulowania subskrypcji za pomocą `eth_unsubscribe`. + +#### Zdarzenia subskrypcji {#subscription-events} + +Podczas gdy subskrypcja jest aktywna, otrzymasz zdarzenia, które są obiektami z następującymi polami: + +- `jsonrpc`: Zawsze "2.0" +- `method`: Zawsze "eth_subscription" +- `params`: Obiekt z następującymi polami: + - `subscription`: ID subskrypcji zwrócony przez połączenie `eth_subscription`, które utworzyło tę subskrypcję. + - `result`: Obiekt, którego zawartość różni się w zależności od rodzaju subskrypcji. + +#### Rodzaj subskrypcji {#subscription-types} + +1. `alchemy_newFullPendingTransactions` + +Zwraca informacje o transakcji dla wszystkich transakcji, które są dodane do stanu oczekującego. Ten typ subskrypcji subskrybuje oczekujące transakcje, podobne do standardowego połączenia Web3 `web3.eth. ubscribe("oczekujące transakcje")`, ale różni się w tym, że emituje _pełnych informacji o transakcjach_ zamiast tylko hashów transakcji. + +Przykład: + +```json +> {"jsonrpc": "2.0", "id": 1, "method": "eth_subscribe", "params": ["alchemy_newFullPendingTransactions"]} + +< {"id":1,"result":"0x9a52eeddc2b289f985c0e23a7d8427c8","jsonrpc":"2.0"} +< { + "jsonrpc":"2.0", + "method":"eth_subscription", + "params":{ + "result":{ + "blockHash":null, + "blockNumber":null, + "from":"0xa36452fc31f6f482ad823cd1cf5515177d57667f", + "gas":"0x1adb0", + "gasPrice":"0x7735c4d40", + "hash":"0x50bff0736c713458c92dd1848d12f3354149be1363123dae35e94e0f2a9d56bf", +"input":"0xa9059cbb0000000000000000000000000d0707963952f2fba59dd06f2b425ace40b492fe0000000000000000000000000000000000000000000015b1111266cfca100000", + "nonce":"0x0", + "to":"0xea38eaa3c86c8f9b751533ba2e562deb9acded40", + "transactionIndex":null, + "value":"0x0", + "v":"0x26", + "r":"0x195c2c1ed126088e12d290aa93541677d3e3b1d10f137e11f86b1b9227f01e3b", + "s":"0x60fc4edbf1527832a2a36dbc1e63ed6193a6eee654472fbebbf88ef1750b5344"}, + "subscription":"0x9a52eeddc2b289f985c0e23a7d8427c8" + } + } + +``` + +2. `newHeads` + +Emituje wydarzenie w dowolnym momencie, gdy nowy nagłówek zostanie dodany do łańcucha, w tym podczas reorganizacji łańcucha. + +Gdy nastąpi reorganizacja łańcucha, ta subskrypcja będzie emitować wydarzenie zawierające wszystkie nowe nagłówki dla nowego łańcucha. Oznacza to w szczególności, że można widzieć wiele emitowanych nagłówków z tą samą wysokością, i kiedy to nastąpi, późniejszy nagłówek powinien być uznany za prawidłowy po reorganizacji. + +Przykład: + +```json +> {"jsonrpc": "2.0", "id": 1, "method": "eth_subscribe", "params": ["newHeads"]} + +< {"jsonrpc":"2.0","id":2,"result":"0x9ce59a13059e417087c02d3236a0b1cc"} +< { + "jsonrpc": "2.0", + "method": "eth_subscription", + "params": { + "result": { + "difficulty": "0x15d9223a23aa", + "extraData": "0xd983010305844765746887676f312e342e328777696e646f7773", + "gasLimit": "0x47e7c4", + "gasUsed": "0x38658", + "logsBloom": +"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "miner": "0xf8b483dba2c3b7176a3da549ad41a48bb3121069", + "nonce": "0x084149998194cc5f", + "number": "0x1348c9", + "parentHash": "0x7736fab79e05dc611604d22470dadad26f56fe494421b5b333de816ce1f25701", + "receiptRoot": "0x2fab35823ad00c7bb388595cb46652fe7886e00660a01e867824d3dceb1c8d36", + "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "stateRoot": "0xb3346685172db67de536d8765c43c31009d0eb3bd9c501c9be3229203f15f378", + "timestamp": "0x56ffeff8", + "transactionsRoot": "0x0167ffa60e3ebc0b080cdb95f7c0087dd6c0e61413140e39d94d3468d7c9689f" + }, + "subscription": "0x9ce59a13059e417087c02d3236a0b1cc" + } +} + +``` + +3. `logs` + +Emituje logi będące częścią nowo dodanych bloków, które spełniają określone kryteria filtrów. + +Gdy nastąpi reorganizacja łańcucha, logi będące częścią bloków starego łańcucha będą ponownie emitowane z właściwością `removed` ustawioną na `true`. Ponadto emitowane są dzienniki będące częścią bloków w nowym łańcuchu, co oznacza, że ​​w przypadku reorganizacji możliwe jest wielokrotne wyświetlanie dzienników dla tej samej transakcji. + +Parametry + +1. Obiekt z następującymi opcjonalnymi kluczami: + - `adddress` (opcjonalnie): ciąg znaków reprezentujący adres lub tablica takich ciągów. + - Tylko logi utworzone z jednego z tych adresów zostaną wysłane. + - `topics`: tablica specyfikatorów tematów. + - Każdy specyfikator tematu jest albo `null`, ciągiem reprezentującym temat, albo tablicą ciągów. + - Każda pozycja w tablicy, która nie jest `null` ogranicza emitowane logi tylko do tych, którzy mają jeden z podanych tematów w tej pozycji. + +Przykłady specyfikacji tematu: + +- `[]`: Wszystkie dozwolone tematy. +- `[A]`: Pierwsza pozycja (i cokolwiek po). +- `[null, B]`: wszystko w pierwszej pozycji i B w drugiej pozycji (i cokolwiek po). +- `[null, B]`: wszystko w pierwszej pozycji i B w drugiej pozycji (i cokolwiek po). +- `[[A, B], [A, B]]`: (A lub B) w pierwszej pozycji i (A lub B) w drugiej pozycji (i cokolwiek po). + +Przykład: + +```json +> {"jsonrpc": "2.0", "id": 1, "method": "eth_subscribe", "params": ["logs", {"address": "0x8320fe7702b96808f7bbc0d4a888ed1468216cfd", "topics": ["0xd78a0cb8bb633d06981248b816e7bd33c2a35a6089241d099fa519e361cab902"]}]} + +< {"jsonrpc":"2.0","id":2,"result":"0x4a8a4c0517381924f9838102c5a4dcb7"} +< { + "jsonrpc": "2.0", + "method": "eth_subscription", + "params": { + "subscription": "0x4a8a4c0517381924f9838102c5a4dcb7", + "result": { + "address": "0x8320fe7702b96808f7bbc0d4a888ed1468216cfd", + "blockHash": "0x61cdb2a09ab99abf791d474f20c2ea89bf8de2923a2d42bb49944c8c993cbf04", + "blockNumber": "0x29e87", + "data": "0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003", + "logIndex":"0x0", + "topics":["0xd78a0cb8bb633d06981248b816e7bd33c2a35a6089241d099fa519e361cab902"], + "transactionHash": "0xe044554a0a55067caafd07f8020ab9f2af60bdfe337e395ecd84b4877a3d1ab4", + "transactionIndex": "0x0" + } + } +} + +``` + +### `eth_unsubscribe` {#eth-unsubscribe} + +Anuluje istniejącą subskrypcję, aby nie wysyłano żadnych kolejnych wydarzeń. + +Parametry + +1. ID subskrypcji, jakie zostało wcześniej zwrócone z połączenia `eth_subscribe`. + +Zwraca + +`true` jeśli subskrypcja została pomyślnie anulowana lub `false` jeśli nie istnieje subskrypcja z podanym identyfikatorem. + +Przykład: + +**Zapytanie** + +``` +curl https://eth-mainnet.alchemyapi.io/v2/your-api-key +-X POST +-H "Content-Type: application/json" +-d '{"id": 1, "method": "eth_unsubscribe", "params": ["0x9cef478923ff08bf67fde6c64013158d"]}' + + +``` + +**Wynik** + +```json +{ + "jsonrpc": "2.0", + "id": 1, + "result": true +} +``` + +--- + +[Zarejestruj się w Alchemy](https://auth.alchemyapi.io/signup) za darmo, sprawdź [naszą dokumentację](https://docs.alchemyapi.io/) aby uzyskać najnowsze wiadomości, obserwuj nas na [Twitterze](https://twitter.com/AlchemyPlatform). diff --git a/public/content/translations/pl/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md b/public/content/translations/pl/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md new file mode 100644 index 00000000000..01f72c61d62 --- /dev/null +++ b/public/content/translations/pl/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md @@ -0,0 +1,297 @@ +--- +title: "Waffle: Dynamiczne tworzenie atrap i testowanie wywołań kontraktów" +description: Zaawansowany samouczek Waffle do używania dynamicznego tworzenia atrap i testowania wywołań kontraktów +author: "Daniel Izdebski" +tags: + - "waffle" + - "inteligentne kontrakty" + - "solidity" + - "testowanie" + - "tworzenie atrap" +skill: intermediate +lang: pl +published: 2020-11-14 +--- + +## O czym jest ten samouczek? {#what-is-this-tutorial-about} + +Z tego samouczka dowiesz się, jak: + +- uużywać dynamicznego tworzenia atrap +- testować interakcje między inteligentnymi kontraktami + +Założenia: + +- wiesz już, jak napisać prosty inteligentny kontrakt w `Solidity ` +- znasz się na `JavaScript` i `TypeScript` +- zapoznałeś się z innymi samouczkami `Waffle` lub wiesz coś na ten temat + +## Dynamiczne tworzenie atrap {#dynamic-mocking} + +Dlaczego dynamiczne tworzenie atrap jest przydatne? No cóż, pozwala nam pisać testy jednostkowe zamiast testów integracyjnych. Co to oznacza? Oznacza to, że nie musimy martwić się zależnościami inteligentnych kontraktów, dlatego możemy je przetestować w całkowicie izolacji. Pozwolę sobie pokazać, jak dokładnie możesz to zrobić. + +### **1. Projekt** {#1-project} + +Zanim zaczniemy musimy przygotować prosty projekt node.js: + +```bash +$ mkdir dynamic-mocking +$ cd dynamic-mocking +$ mkdir contracts src + +$ yarn init +# or if you're using npm +$ npm init +``` + +Zacznijmy od dodania zależności typescript i test — mokka i chai: + +```bash +$ yarn add --dev @types/chai @types/mocha chai mocha ts-node typescript +# lub jeśli używasz npm $ npm install @types/chai @types/mocha chai mocha ts-node typescript --save-dev +``` + +Teraz dodajmy `Waffle` i `ethers`: + +```bash +$ yarn add --dev ethereum-waffle ethers +# or if you're using npm +$ npm install ethereum-waffle ethers --save-dev +``` + +Twoja struktura projektu powinna teraz wyglądać tak: + +``` +. +├── contracts +├── package.json +└── test +``` + +### **2. Inteligentny kontrakt** {#2-smart-contract} + +Aby rozpocząć dynamiczne tworzenie atrapy, potrzebujemy inteligentnego kontraktu z zależnościami. Nie martw się, pomyślałem o tym! + +Oto prosty inteligentny kontrakt napisany w `Solidity`, którego jedynym celem jest sprawdzenie, czy jesteśmy bogaci. Używa tokena ERC20 do sprawdzenia, czy mamy wystarczającą ilość tokenów. Umieść go w `./contracts/AmIRichAlready.sol`. + +```solidity +pragma solidity ^0.6.2; + +interface IERC20 { + function balanceOf(address account) external view returns (uint256); +} + +contract AmIRichAlready { + IERC20 private tokenContract; + uint public richness = 1000000 * 10 ** 18; + + constructor (IERC20 _tokenContract) public { + tokenContract = _tokenContract; + } + + function check() public view returns (bool) { + uint balance = tokenContract.balanceOf(msg.sender); + return balance > richness; + } +} +``` + +Ponieważ chcemy używać dynamicznego tworzenia atrap, nie potrzebujemy całego ERC20, dlatego używamy interfejsu IERC20 z tylko jedną funkcją. + +Nadszedł czas, aby zbudować ten kontrakt! W tym celu użyjemy `Waffle`. Najpierw stworzymy prosty plik konfiguracyjny `waffle.json`, który określa opcje kompilacji. + +```json +{ + "compilerType": "solcjs", + "compilerVersion": "0.6.2", + "sourceDirectory": "./contracts", + "outputDirectory": "./build" +} +``` + +Teraz jesteśmy gotowi zbudować kontrakt z Waffle: + +```bash +$ npx waffle +``` + +Łatwe, prawda? W folderze `build/` pojawiły się dwa pliki odpowiadające umowie i interfejsowi. Wykorzystamy je później do testowania. + +### **3. Testowanie** {#3-testing} + +Utwórzmy plik o nazwie `AmIRichAlready.test.ts` dla bieżącego testu. Przede wszystkim musimy poradzić sobie z importem. Będziemy ich potrzebować na później: + +```typescript +import { expect, use } from "chai" +import { Contract, utils, Wallet } from "ethers" +import { + deployContract, + deployMockContract, + MockProvider, + solidity, +} from "ethereum-waffle" +``` + +Z wyjątkiem zależności JS, musimy zaimportować naszą wbudowaną umowę i interfejs: + +```typescript +import IERC20 from "../build/IERC20.json" +import AmIRichAlready from "../build/AmIRichAlready.json" +``` + +Waffle używa `chai` do testowania. Zanim jednak będziemy mogli go użyć, musimy wstrzyknąć wyrażenie matcher Waffle do samego chai: + +```typescript +use(solidity) +``` + +Musimy zaimplementować funkcję `beforeEach()`, która zresetuje stan kontraktu przed każdym testem. Zastanówmy się najpierw nad tym, czego tam potrzebujemy. Aby wdrożyć umowę, potrzebujemy dwóch rzeczy: portfela i wdrożonego kontraktu ERC20, aby przekazać go jako argument dla kontraktu `AmIRichAlready`. + +Po pierwsze, tworzymy portfel: + +```typescript +const [wallet] = new MockProvider().getWallets() +``` + +Następnie musimy wdrożyć umowę ERC20. Oto trudna część - mamy tylko interfejs. Jest to ta część, w której Waffle nas ratuje. Waffle posiada magiczną funkcję `wdrożenieMockContract()`, która tworzy kontrakt wykorzystujący tylko _abi_ interfejsu: + +```typescript +const mockERC20 = await deployMockContract(wallet, IERC20.abi) +``` + +Teraz, zarówno z portfelem, jak i z ERC20, możemy kontynuować i wdrożyć kontrakt `AmIRichAlready`: + +```typescript +const contract = await deployContract(wallet, AmIRichAlready, [ + mockERC20.address, +]) +``` + +Po tym wszystkim nasza funkcja `beforeEach()` została zakończona. Jak dotąd plik `AmIRichAlready.test.ts` powinien wyglądać tak: + +```typescript +import { expect, use } from "chai" +import { Contract, utils, Wallet } from "ethers" +import { + deployContract, + deployMockContract, + MockProvider, + solidity, +} from "ethereum-waffle" + +import IERC20 from "../build/IERC20.json" +import AmIRichAlready from "../build/AmIRichAlready.json" + +use(solidity) + +describe("Am I Rich Already", () => { + let mockERC20: Contract + let contract: Contract + let wallet: Wallet + + beforeEach(async () => { + ;[wallet] = new MockProvider().getWallets() + mockERC20 = await deployMockContract(wallet, IERC20.abi) + contract = await deployContract(wallet, AmIRichAlready, [mockERC20.address]) + }) +}) +``` + +Zapiszmy pierwszy test do kontraktu `AmIRichAlready`. Czy uważasz, że powinniśmy mieć na uwadze nasz test? Tak, masz rację! Powinniśmy sprawdzić, czy już jesteśmy bogaci :) + +Ale poczekaj sekundę. Jak nasz pozorowany kontrakt będzie wiedział, jakie wartości należy zwrócić? Nie zaimplementowaliśmy żadnej logiki dla funkcji `balanceOf()`. Jeszcze raz Waffle może tu pomóc. Nasz pozorowany kontrakt ma teraz kilka nowych, fantazyjnych rzeczy: + +```typescript +await mockERC20.mock..returns() +await mockERC20.mock..withArgs().returns() +``` + +Dzięki tej wiedzy możemy wreszcie napisać nasz pierwszy test: + +```typescript +it("returns false if the wallet has less than 1000000 tokens", async () => { + await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) + expect(await contract.check()).to.be.equal(false) +}) +``` + +Podzielmy ten test na części: + +1. Ustawiliśmy naszą próbną umowę ERC20 tak, aby zawsze zwracała saldo 999999 tokenów. +2. Sprawdź, czy metoda `contract.check()` zwraca `false`. + +Jesteśmy gotowi wystrzelić z grubej rury: + +![Jeden test zaliczony](./test-one.png) + +Tak więc test działa, ale... wciąż jest trochę miejsca na ulepszenia. Funkcja `balanceOf()` zawsze zwróci 99999. Możemy ją ulepszyć poprzez określenie portfela, dla którego funkcja powinna zwracać coś — tak jak prawdziwy kontrakt: + +```typescript +it("returns false if the wallet has less than 1000001 tokens", async () => { + await mockERC20.mock.balanceOf + .withArgs(wallet.address) + .returns(utils.parseEther("999999")) + expect(await contract.check()).to.be.equal(false) +}) +``` + +Jak dotąd przetestowaliśmy tylko przypadek, w którym nie jesteśmy wystarczająco bogaci. Przetestujmy przeciwnie: + +```typescript +it("returns true if the wallet has at least 1000001 tokens", async () => { + await mockERC20.mock.balanceOf + .withArgs(wallet.address) + .returns(utils.parseEther("1000001")) + expect(await contract.check()).to.be.equal(true) +}) +``` + +Uruchomiłeś testy... + +![Zaliczenie dwóch testów](./test-two.png) + +...i tu jesteś! Nasza umowa wydaje się działać zgodnie z zamierzeniem :) + +## Testowanie wywołań kontraktów {#testing-contract-calls} + +Podsumujmy dotychczasowe osiągnięcia. Przetestowaliśmy funkcjonalność naszego kontraktu `AmIRichAlready` i wygląda na to, że działa poprawnie. To znaczy, że skończyliśmy, prawda? Nie całkiem! Waffle pozwala nam jeszcze bardziej przetestować nasz kontrakt. Ale jak dokładnie? No cóż, w arsenale Waffle'a znajduje się `calledOnContract()` i wyrażenia matcher `calledOnContractWith()`. Umożliwią nam one sprawdzenie, czy nasz kontrakt wywołał pozorowany kontrakt ERC20. Oto podstawowy test z jednym z tych wyrażeń: + +```typescript +it("checks if contract called balanceOf on the ERC20 token", async () => { + await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) + await contract.check() + expect("balanceOf").to.be.calledOnContract(mockERC20) +}) +``` + +Możemy pójść jeszcze dalej i ulepszyć ten test za pomocą innego wyrażenia matcher, o którym wam mówiłem: + +```typescript +it("checks if contract called balanceOf with certain wallet on the ERC20 token", async () => { + await mockERC20.mock.balanceOf + .withArgs(wallet.address) + .returns(utils.parseEther("999999")) + await contract.check() + expect("balanceOf").to.be.calledOnContractWith(mockERC20, [wallet.address]) +}) +``` + +Sprawdźmy, czy testy są poprawne: + +![Zaliczenie trzech testów](./test-three.png) + +Świetnie, wszystkie testy są zielone. + +Testowanie połączeń kontraktowych z Waffle jest bardzo łatwe. I oto najlepsza część. Te wyrażenia matcher działają zarówno z normalnymi, jak i próbnymi kontraktami! Wynika to z tego, że Waffle rejestruje i filtruje połączenia EVM zamiast wstrzykiwać kod, tak jak w przypadku popularnych bibliotek testowych dla innych technologii. + +## Meta {#the-finish-line} + +Gratulacje! Teraz wiesz jak korzystać z Waffle do dynamicznego testowania połączeń i modelowania kontraktów. Istnieją o wiele bardziej interesujące funkcje, które należy odkryć. Zalecam nurkowanie w dokumentacji Waffle. + +Dokumentacja Waffle'a jest dostępna [tutaj](https://ethereum-waffle.readthedocs.io/). + +Kod źródłowy dla tego samouczka można znaleźć [tutaj](https://github.com/EthWorks/Waffle/tree/master/examples/dynamic-mocking-and-testing-calls). + +Samouczki mogą być interesujące: + +- [Testowanie inteligentnych kontraktów z Waffle](/developers/tutorials/testing-smart-contract-with-waffle/) diff --git a/src/content/translations/pl/eips/index.md b/public/content/translations/pl/eips/index.md similarity index 100% rename from src/content/translations/pl/eips/index.md rename to public/content/translations/pl/eips/index.md diff --git a/src/content/translations/pl/energy-consumption/index.md b/public/content/translations/pl/energy-consumption/index.md similarity index 100% rename from src/content/translations/pl/energy-consumption/index.md rename to public/content/translations/pl/energy-consumption/index.md diff --git a/src/content/translations/pl/enterprise/index.md b/public/content/translations/pl/enterprise/index.md similarity index 100% rename from src/content/translations/pl/enterprise/index.md rename to public/content/translations/pl/enterprise/index.md diff --git a/src/content/translations/pl/enterprise/private-ethereum/index.md b/public/content/translations/pl/enterprise/private-ethereum/index.md similarity index 100% rename from src/content/translations/pl/enterprise/private-ethereum/index.md rename to public/content/translations/pl/enterprise/private-ethereum/index.md diff --git a/src/content/translations/pl/foundation/index.md b/public/content/translations/pl/foundation/index.md similarity index 100% rename from src/content/translations/pl/foundation/index.md rename to public/content/translations/pl/foundation/index.md diff --git a/src/content/translations/pl/glossary/index.md b/public/content/translations/pl/glossary/index.md similarity index 100% rename from src/content/translations/pl/glossary/index.md rename to public/content/translations/pl/glossary/index.md diff --git a/src/content/translations/pl/governance/index.md b/public/content/translations/pl/governance/index.md similarity index 100% rename from src/content/translations/pl/governance/index.md rename to public/content/translations/pl/governance/index.md diff --git a/src/content/translations/pl/guides/how-to-create-an-ethereum-account/index.md b/public/content/translations/pl/guides/how-to-create-an-ethereum-account/index.md similarity index 100% rename from src/content/translations/pl/guides/how-to-create-an-ethereum-account/index.md rename to public/content/translations/pl/guides/how-to-create-an-ethereum-account/index.md diff --git a/src/content/translations/pl/guides/how-to-id-scam-tokens/index.md b/public/content/translations/pl/guides/how-to-id-scam-tokens/index.md similarity index 100% rename from src/content/translations/pl/guides/how-to-id-scam-tokens/index.md rename to public/content/translations/pl/guides/how-to-id-scam-tokens/index.md diff --git a/src/content/translations/pl/guides/how-to-revoke-token-access/index.md b/public/content/translations/pl/guides/how-to-revoke-token-access/index.md similarity index 100% rename from src/content/translations/pl/guides/how-to-revoke-token-access/index.md rename to public/content/translations/pl/guides/how-to-revoke-token-access/index.md diff --git a/src/content/translations/pl/guides/how-to-swap-tokens/index.md b/public/content/translations/pl/guides/how-to-swap-tokens/index.md similarity index 100% rename from src/content/translations/pl/guides/how-to-swap-tokens/index.md rename to public/content/translations/pl/guides/how-to-swap-tokens/index.md diff --git a/src/content/translations/pl/guides/how-to-use-a-bridge/index.md b/public/content/translations/pl/guides/how-to-use-a-bridge/index.md similarity index 100% rename from src/content/translations/pl/guides/how-to-use-a-bridge/index.md rename to public/content/translations/pl/guides/how-to-use-a-bridge/index.md diff --git a/src/content/translations/pl/guides/how-to-use-a-wallet/index.md b/public/content/translations/pl/guides/how-to-use-a-wallet/index.md similarity index 100% rename from src/content/translations/pl/guides/how-to-use-a-wallet/index.md rename to public/content/translations/pl/guides/how-to-use-a-wallet/index.md diff --git a/src/content/translations/pl/guides/index.md b/public/content/translations/pl/guides/index.md similarity index 100% rename from src/content/translations/pl/guides/index.md rename to public/content/translations/pl/guides/index.md diff --git a/src/content/translations/pl/history/index.md b/public/content/translations/pl/history/index.md similarity index 100% rename from src/content/translations/pl/history/index.md rename to public/content/translations/pl/history/index.md diff --git a/src/content/translations/pl/learn/index.md b/public/content/translations/pl/learn/index.md similarity index 100% rename from src/content/translations/pl/learn/index.md rename to public/content/translations/pl/learn/index.md diff --git a/public/content/translations/pl/nft/index.md b/public/content/translations/pl/nft/index.md new file mode 100644 index 00000000000..2258f8e89e1 --- /dev/null +++ b/public/content/translations/pl/nft/index.md @@ -0,0 +1,94 @@ +--- +title: Tokeny niezamienne (NFT) +description: Przedstawienie NFT na Ethereum +lang: pl +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: Logo Ethereum wyświetlane jako hologram. +summaryPoint1: Sposób reprezentowania czegoś wyjątkowego jako aktywu na blockchainie Ethereum. +summaryPoint2: NFT dają ich twórcom możliwości, których nigdy wcześniej nie mieli. +summaryPoint3: Wspierane przez inteligentne kontrakty na blockchainie Ethereum. +--- + +## Czym są NFT? {#what-are-nfts} + +NFT to tokeny, które są unikalne. Każdy NFT ma inne właściwości (niezamienne) i można udowodnić, że jest rzadki. Różni się to od tokenów takich jak ERC-20, gdzie każdy token w zestawie jest identyczny i ma te same właściwości („zamienne”). Nie obchodzi cię, który konkretnie banknot masz w portfelu, ponieważ wszystkie są identyczne i warte tyle samo. Jednakże _ma_ znaczenie, który konkretnie NFT posiadasz, ponieważ wszystkie mają indywidualne właściwości, które odróżniają je od innych („niezamienne”). + +Unikalność każdego NFT umożliwia tokenizację rzeczy takich jak dzieła artystyczne, przedmioty kolekcjonerskie, a nawet nieruchomości, gdzie jeden konkretny unikalny NFT reprezentuje konkretny unikalny prawdziwy lub cyfrowy przedmiot. Własność aktywa zabezpieczona jest przez blockchain Ethereum — nikt nie może zmodyfikować rejestrów własności ani skopiować/wkleić nowego NFT. + + + +## Internet rzeczy {#internet-of-assets} + +NFT i Ethereum rozwiązują niektóre z problemów występujących w dzisiejszym internecie. Ponieważ wszystko staje się coraz bardziej cyfrowe, istnieje potrzeba odtworzenia właściwości przedmiotów fizycznych, takich jak rzadkość, unikalność i dowód własności w sposób, który nie jest kontrolowany przez centralną organizację. Na przykład, dzięki NFT możesz posiadać muzykę mp3, która nie jest specyficzna dla konkretnej aplikacji muzycznej jednej firmy, lub możesz mieć nazwę konta w mediach społecznościowych, którą możesz sprzedać lub wymienić, ale nie może ona zostać samowolnie odebrana przez dostawcę platformy. + +Oto jak wygląda porównanie Internetu NFT z Internetem, z którego korzysta większość z nas... + +### Porównanie {#nft-comparison} + +| Internet NFT | Internet dzisiaj | +| --------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Ty jesteś właścicielem swoich aktywów! Tylko Ty możesz je sprzedać lub wymienić. | Wynajmujesz aktywa od jakiejś organizacji. | +| NFT są cyfrowo unikalne, nie istnieją dwa takie same NFT. | Kopia jakiejś jednostki często nie może być odróżniona od oryginału. | +| Własność NFT jest przechowywana w blockchainie tak, aby każdy mógł ją zweryfikować. | Rejestry własności przedmiotów cyfrowych są przechowywane na serwerach kontrolowanych przez instytucje — musisz im wierzyć na słowo. | +| NFT to inteligentne kontrakty na Ethereum. Oznacza to, że można je łatwo wykorzystać w innych inteligentnych kontraktach i aplikacjach na Ethereum! | Firmy posiadające elementy cyfrowe zazwyczaj wymagają własnej infrastruktury typu „ogrodzony ogród” („walled garden”). | +| Twórcy mogą sprzedawać swoje prace w dowolnym miejscu i mają dostęp do globalnego rynku. | Twórcy opierają się na infrastrukturze i systemie dystrybucji platform, z których korzystają. Są one często objęte określonymi warunkami użytkowania i ograniczeniami geograficznymi. | +| Twórcy NFT mogą zachować prawa własności do własnej pracy i zaprogramować tantiemy bezpośrednio w kontrakcie NFT. | Platformy, takie jak serwisy streamingu muzyki, zachowują większość zysków ze sprzedaży. | + +## Jak działają NFT? {#how-nfts-work} + +Podobnie jak każdy token wydany na Ethereum, NFT są wydawane przez inteligentny kontrakt. Inteligentny kontrakt jest zgodny z jednym z kilku standardów NFT (najczęściej ERC-721 lub ERC-1155), które określają funkcje, jakie posiada kontrakt. Kontrakt może tworzyć („wybijać”) NFT i przypisywać je do określonego właściciela. Własność jest określona w kontrakcie poprzez mapowanie określonych NFT na określone adresy. NFT ma ID i zazwyczaj powiązane z nim metadane, które sprawiają, że konkretny token jest unikalny. + +Kiedy ktoś tworzy lub wybija NFT, tak naprawdę wykonuje funkcję w inteligentnym kontrakcie, która przypisuje określony NFT do jego adresu. Informacja ta jest przechowywana w pamięci kontraktu, która jest częścią blochainu. Twórca kontraktu może zapisać w niej dodatkową logikę, na przykład ograniczając całkowitą ilość lub określając tantiemę, która ma być wypłacana twórcy za każdym razem, gdy token zostanie przeniesiony. + +## W jakim celu używa się NFT? {#nft-use-cases} + +NFT są używane do wielu rzeczy, w tym: + +- do udowadniania udziału w wydarzeniu +- do zaświadczania o ukończeniu kursu +- jako posiadalne przedmioty dla graczy +- cyfrowa sztuka +- tokenizacja prawdziwych aktywów +- do potwierdzania tożsamości w sieci +- do ograniczania dostępu do treści +- do wystawiania biletów +- zdecentralizowane nazwy domen internetowych +- jako zabezpieczenie w DeFi + +Być może jesteś artystą, który chce udostępniać swoje prace za pomocą NFT, bez utraty kontroli i poświęcania zysków na rzecz pośredników. Możesz utworzyć nowy kontrakt i określić liczbę NFT, ich właściwości oraz link do określonego dzieła sztuki. Jako artysta możesz zaprogramować w inteligentnym kontrakcie tantiemy, które powinny zostać Ci zapłacone (np. przekazać 5% ceny sprzedaży właścicielowi kontraktu za każdym razem, gdy NFT zostanie przeniesione). Zawsze możesz również udowodnić, że NFT został stworzony przez Ciebie, ponieważ jesteś właścicielem portfela, który wdrożył kontrakt. Kupujący mogą łatwo udowodnić, że posiadają autentyczny NFT z Twojej kolekcji, ponieważ ich adres portfela jest powiązany z tokenem w Twoim inteligentnym kontrakcie. Mogą go używać w całym ekosystemie Ethereum, mając pewność co do jego autentyczności. + +To tak jak bilet na wydarzenie sportowe. Podobnie jak organizator wydarzenia może wybrać, ile biletów chce sprzedać, twórca NFT może zdecydować, ile istnieje replik. Czasami są to dokładne repliki, takie jak 5000 takich samych biletów wstępu. Czasami wybijanych jest kilka bardzo podobnych, ale każdy z nich nieco się różni, np. bilet z przypisanym miejscem. Można je kupować i sprzedawać peer-to-peer bez płacenia osobie obsługującej bilety, a kupujący zawsze ma pewność co do autentyczności biletu, sprawdzając adres kontraktu. + +Na ethereum.org NFT są używane do pokazania, że ludzie wnieśli swój wkład do naszego repozytorium GitHub lub uczestniczyli w rozmowach, a nawet mamy własną nazwę domeny NFT. Jeśli przyczynisz się do rozwoju ethereum.org, możesz otrzymać NFT w formie POAPu. Niektóre spotkania kryptowalutowe wykorzystywały tokeny POAP jako bilety. [Więcej na temat przyczyniania się do rozwoju Ethereum](/contributing/#poap). + +![ethereum.org POAP](./poap.png) + +Ta strona ma alternatywną domenę obsługiwaną przez NFT, **ethereum.eth**. Nasz adres `.org` jest zarządzany centralnie przez DNS, podczas gdy ethereum`.eth` jest zarejestrowany na Ethereum za pośrednictwem Ethereum Name Service (ENS). Jest ona naszą własnością i jest zarządzana przez nas. [Sprawdź nasz wpis do ENS](https://app.ens.domains/name/ethereum.eth) + +[Więcej o ENS](https://app.ens.domains) + + + +### Bezpieczeństwo NFT {#nft-security} + +Bezpieczeństwo Ethereum wynika z algorytmu proof-of-stake. System został zaprojektowany w celu ekonomicznego zniechęcenia do złośliwych działań, dzięki czemu Ethereum jest odporne na manipulacje. To właśnie umożliwia działanie NFT. Gdy blok zawierający Twoją transakcję NFT zostanie sfinalizowany, zmiana go kosztowałaby atakującego miliony ETH. Każdy, kto korzysta z oprogramowania Ethereum, byłby w stanie natychmiast wykryć nieuczciwe manipulacje w NFT, a przestępca zostałby ekonomicznie ukarany i wyrzucony. + +Kwestie bezpieczeństwa związane z NFT są najczęściej związane z oszustwami typu phishing, lukami w inteligentnych kontraktach lub błędami użytkownika (takimi jak nieumyślne ujawnienie kluczy prywatnych), co sprawia, że dbanie o bezpieczeństwo portfela ma kluczowe znaczenie dla właścicieli NFT. + + + Więcej o bezpieczeństwie + + +## Dalsza lektura {#further-reading} + +- [Przewodnik po NFT dla początkujących](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) — _Linda Xie, styczeń 2020 r._ +- [Moduł śledzący EtherscanNFT](https://etherscan.io/nft-top-contracts) +- [Standard tokenów ERC-721](/developers/docs/standards/tokens/erc-721/) +- [Standard tokenów ERC-1155](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/public/content/translations/pl/refi/index.md b/public/content/translations/pl/refi/index.md new file mode 100644 index 00000000000..384f88abaed --- /dev/null +++ b/public/content/translations/pl/refi/index.md @@ -0,0 +1,79 @@ +--- +title: Finanse regeneracyjne (ReFi) +description: Przegląd ReFi i jego obecnych zastosowań. +lang: pl +template: use-cases +emoji: ":recycle:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Alternatywny system ekonomiczny oparty na zasadach regeneracji +summaryPoint2: Próba wykorzystania Ethereum do rozwiązania globalnych kryzysów koordynacyjnych, takich jak zmiany klimatu +summaryPoint3: Narzędzie do drastycznego skalowania aktywów przynoszących korzyści ekologiczne, takich jak zweryfikowane kredyty węglowe (carbon credits) +--- + +## Czym jest ReFi? {#what-is-refi} + +**Finanse regeneracyjne (ReFi)** to zestaw narzędzi i pomysłów opartych na blockchainach, których celem jest tworzenie gospodarek, które są regeneracyjne, a nie wydobywcze lub eksploatacyjne. Ostatecznie systemy wydobywcze wyczerpią dostępne zasoby i upadną; bez mechanizmów regeneracyjnych brakuje im odporności. ReFi działa w oparciu o założenie, że tworzenie wartości pieniężnej musi być oddzielone od niezrównoważonego wydobycia zasobów z naszej planety i społeczności. + +Zamiast tego ReFi ma na celu rozwiązywanie problemów środowiskowych, komunalnych lub społecznych poprzez tworzenie cykli regeneracyjnych. Systemy te tworzą wartość dla uczestników, jednocześnie przynosząc korzyści ekosystemom i społecznościom. + +Jednym z fundamentów ReFi jest koncepcja ekonomii regeneracyjnej, której pionierem jest John Fullerton z [Capital Institute](https://capitalinstitute.org). Zaproponował osiem powiązanych ze sobą zasad, które leżą u podstaw zdrowia systemowego: + +![Osiem połączonych ze sobą zasad](refi-regenerative-economy-diagram.png) + +Projekty ReFi realizują te zasady przy użyciu [inteligentnych kontraktów](/developers/docs/smart-contracts/) i aplikacji [zdecentralizowanych finansów (DeFi)](/defi/) w celu zachęcania do zachowań regeneracyjnych, np. przywracania zdegradowanych ekosystemów i ułatwiania współpracy na dużą skalę w kwestii globalnych problemów, takich jak zmiany klimatu i utrata różnorodności biologicznej. + +ReFi nakłada się również z ruchem [zdecentralizowanej nauki (DeSci)](/desci/), który wykorzystuje Ethereum jako platformę do finansowania, tworzenia, recenzowania, kredytowania, przechowywania i rozpowszechniania wiedzy naukowej. Narzędzia DeSci mogą stać się przydatne do opracowywania weryfikowalnych standardów i praktyk realizacji i monitorowania działań regeneracyjnych, takich jak sadzenie drzew, usuwanie plastiku z oceanu lub przywracanie zdegradowanego ekosystemu. + +## Tokenizacja kredytów węglowych {#tokenization-of-carbon-credits} + +**[Dobrowolny rynek emisji dwutlenku węgla (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** to mechanizm finansowania projektów, które mają zweryfikowany pozytywny wpływ na emisję dwutlenku węgla, zmniejszając bieżące emisje, albo usuwając gazy cieplarniane już wyemitowane z atmosfery. Projekty te po weryfikacji otrzymują aktywa zwane „kredytami węglowymi”, które mogą sprzedawać osobom i organizacjom, które chcą wspierać działania na rzecz klimatu. + +Oprócz VCM istnieje również kilka rynków emisji dwutlenku węgla zarządzanych przez rząd („rynki zgodności”), które mają na celu ustalenie ceny emisji dwutlenku węgla za pomocą przepisów ustawowych lub wykonawczych w ramach określonej jurysdykcji (np. kraju lub regionu), kontrolując podaż pozwoleń do dystrybucji. Rynki zgodności zachęcają zanieczyszczających w ramach ich jurysdykcji do ograniczenia emisji, ale nie są w stanie usunąć gazów cieplarnianych, które zostały już wyemitowane. + +Pomimo rozwoju w ostatnich dekadach, VCM nadal boryka się z wieloma problemami: + +1. Bardzo rozdrobniona płynność +2. Nieprzejrzyste mechanizmy transakcyjne +3. Wysokie opłaty +4. Bardzo wolna prędkość handlu +5. Brak skalowalności + +Przejście VCM do nowego, opartego na blockchainie **cyfrowego rynku emisji (DCM)** może być okazją do ulepszenia istniejącej technologii walidacji, transakcji i konsumpcji kredytów węglowych. Blockchainy umożliwiają publiczną weryfikację danych, dostęp dla szerokiego grona użytkowników i większą płynność. + +Projekty ReFi wykorzystują technologię blockchain do złagodzenia wielu problemów tradycyjnego rynku: + +- **Płynność jest skoncentrowana w niewielkiej liczbie pul płynności**, którymi każdy może swobodnie handlować. Duże organizacje, a także indywidualni użytkownicy mogą korzystać z tych pul bez ręcznego wyszukiwania sprzedawców/kupujących, opłat za uczestnictwo lub wcześniejszej rejestracji. +- **Wszystkie transakcje są rejestrowane na publicznych blockchainach**. Ścieżka, którą podąża każdy kredyt węglowy w związku z aktywnością handlową, jest zawsze wykrywalna, gdy tylko zostanie udostępniona w DCM. +- **Prędkość transakcji jest niemal natychmiastowa**. Zabezpieczenie dużych ilości kredytów węglowych za pośrednictwem dotychczasowych rynków może zająć dni lub tygodnie, ale można to osiągnąć w ciągu kilku sekund na DCM. +- **Działalność handlowa odbywa się bez pośredników**, którzy pobierają wysokie opłaty. Według danych jednej z firm analitycznych cyfrowe kredyty węglowe tworzą [poprawę kosztów o 62% w porównaniu z równoważnymi tradycyjnymi kredytami](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne). +- **DCM jest skalowalny** i może sprostać wymaganiom zarówno osób fizycznych, jak i międzynarodowych korporacji. + +### Kluczowe elementy DCM {#key-components-dcm} + +Cztery główne elementy składają się na obecny wizerunek DCM: + +1. Rejestry takie jak [Verra](https://verra.org/project/vcs-program/registry-system/) i [Gold Standard](https://www.goldstandard.org/) zapewniają, że projekty tworzące kredyty węglowe są rzetelne. Obsługują również bazy danych, w których powstają cyfrowe kredyty węglowe i mogą być przenoszone lub wykorzystywane (wycofywane). + +Istnieje nowa fala innowacyjnych projektów budowanych na blockchainach, które próbują zakłócić działalność operatorów istniejących w tym sektorze. + +2. Mosty węglowe, zwane również tokenizatorami, dostarczają technologię reprezentowania lub przenoszenia kredytów węglowych z tradycyjnych rejestrów do DCM. Godnymi uwagi przykładami są [Toucan Protocol](https://toucan.earth/), [C3](https://c3.app/) i [Moss.Earth](https://moss.earth/). +3. Zintegrowane usługi oferują użytkownikom końcowym kredyty na unikanie i/lub usuwanie emisji dwutlenku węgla, dzięki czemu mogą oni ubiegać się o korzyści środowiskowe wynikające z kredytu i dzielić się ze światem swoim wsparciem dla działań na rzecz klimatu. + +Niektóre z nich, takie jak [Klima Infinity](https://www.klimadao.finance/infinity) i [Senken](https://senken.io/), oferują szeroki wybór projektów opracowanych przez strony trzecie i wydanych zgodnie z ustalonymi standardami, takimi jak Verra; inne, takie jak [Nori](https://nori.com/), oferują tylko określone projekty opracowane zgodnie z ich własnym standardem kredytów węglowych, które wydają i dla których mają własny dedykowany rynek. + +4. Podstawowe szyny i infrastruktura, które ułatwiają zwiększenie wpływu i wydajności całego łańcucha dostaw na rynku emisji dwutlenku węgla. [KlimaDAO](http://klimadao.finance/) zapewnia płynność jako dobro publiczne (umożliwiając każdemu kupno lub sprzedaż kredytów węglowych w przejrzystej cenie), zachęca do zwiększonej przepustowości rynków emisji dwutlenku węgla i wycofywania z nich za pomocą nagród oraz zapewnia przyjazne dla użytkownika interoperacyjne narzędzia umożliwiające dostęp do danych, a także nabywanie i wycofywanie szerokiego wyboru tokenizowanych kredytów emisji dwutlenku węgla. + +## ReFi poza rynkami emisji dwutlenku węgla {#refi-beyond} + +Chociaż obecnie kładzie się duży nacisk na rynki emisji dwutlenku węgla w ogóle, a w szczególności na przejście z VCM na DCM, termin „ReFi” nie ogranicza się ściśle do emisji dwutlenku węgla. Inne aktywa środowiskowe poza kredytami węglowymi mogą być rozwijane i tokenizowane, co będzie oznaczać, że inne negatywne efekty zewnętrzne mogą być również wyceniane w podstawowych warstwach przyszłych systemów ekonomicznych. Co więcej, regeneracyjny aspekt tego modelu ekonomicznego można zastosować w innych obszarach, takich jak finansowanie dóbr publicznych za pośrednictwem platform finansowania kwadratowego, takich jak [Gitcoin](https://gitcoin.co/). Organizacje, które opierają się na idei otwartego uczestnictwa i sprawiedliwej dystrybucji zasobów, umożliwiają każdemu przekazywanie pieniędzy na projekty oprogramowania open-source, a także projekty edukacyjne, środowiskowe i społecznościowe. + +Zmieniając kierunek kapitału z praktyk wydobywczych na regeneracyjne, projekty i firmy, które zapewniają korzyści społeczne, środowiskowe lub komunalne — i które mogą nie uzyskać finansowania w tradycyjnych finansach — mogą rozpocząć działalność i generować pozytywne efekty zewnętrzne dla społeczeństwa znacznie szybciej i łatwiej. Przejście na ten model finansowania otwiera również drzwi do znacznie bardziej inkluzywnych systemów ekonomicznych, w których ludzie ze wszystkich grup demograficznych mogą stać się aktywnymi uczestnikami, a nie tylko biernymi obserwatorami. ReFi oferuje wizję Ethereum jako mechanizmu koordynującego działania w zakresie egzystencjalnych wyzwań stojących przed naszym gatunkiem i całym życiem na naszej planecie — jako podstawowej warstwy nowego paradygmatu ekonomicznego, umożliwiającego bardziej inkluzywną i zrównoważoną przyszłość na nadchodzące stulecia. + +## Dodatkowe informacje na temat ReFi + +- [Ogólny przegląd walut węglowych i ich miejsca w gospodarce](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) +- [The Ministry for the Future, powieść przedstawiająca rolę waluty opartej na węglu w walce ze zmianami klimatu](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) +- [Szczegółowy raport grupy zadaniowej ds. dobrowolnego skalowania rynków emisji dwutlenku węgla](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) +- [Wpis Kevina Owockiego i Evana Miyazono w glosariuszu CoinMarketCap o ReFi](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/public/content/translations/pl/roadmap/beacon-chain/index.md b/public/content/translations/pl/roadmap/beacon-chain/index.md new file mode 100644 index 00000000000..8ced95ba2b5 --- /dev/null +++ b/public/content/translations/pl/roadmap/beacon-chain/index.md @@ -0,0 +1,76 @@ +--- +title: Łańcuch śledzący +description: Dowiedz się więcej o łańcuchu śledzącym — uaktualnieniu, które wprowadziło mechanizm proof-of-stake w sieci Ethereum. +lang: pl +template: upgrade +image: /upgrades/core.png +alt: +summaryPoint1: Łańcuch śledzący wprowadził mechanizm proof-of-stake do ekosystemu Ethereum. +summaryPoint2: Został on połączony z pierwotnym łańcuchem proof-of-work Ethereum we wrześniu 2022 roku. +summaryPoint3: Łańcuch śledzący wprowadził logikę konsensusu i protokół uzgadniania bloków, które obecnie zabezpieczają Ethereum. +--- + + + Łańcuch śledzący wdrożono 1 grudnia 2020 roku, a 15 września 2022 roku uaktualniono Połączenie i sformalizowano proof-of-stake jako mechanizm konsensusu Ethereum. + + +## Czym był łańcuch śledzący? {#what-is-the-beacon-chain} + +Łańcuch śledzący to nazwa pierwotnego łańcucha bloków proof-of-stake, który został uruchomiony w 2020 r. Został on stworzony w celu zapewnienia, że logika konsensusu proof-of-stake jest solidna i zrównoważona, zanim zostanie uruchomiona w sieci głównej Ethereum. W związku z tym działał on równolegle z pierwotnym mechanizmem proof-of-work Ethereum. Wyłączenie mechanizmu proof-of-work i włączenie mechanizmu proof-of-stake w sieci Ethereum wymagało poinstruowania łańcucha śledzącego, aby akceptował transakcje z pierwotnego łańcucha Ethereum, łączył je w bloki, a następnie organizował je w łańcuch bloków przy użyciu mechanizmu konsensusu opartego na proof-of-stake. W tym samym momencie pierwotni klienci Ethereum wyłączyli wydobywanie, propagację bloków i logikę konsensusu, przekazując je w całości łańcuchowi śledzącemu. Wydarzenie to było określane jako [Połączenie](/roadmap/merge/). Po Połączeniu nie było już dwóch sieci blockchain; istniał tylko jeden łańcuch proof-of-stake Ethereum. + +## Co robił łańcuch śledzący? {#what-does-the-beacon-chain-do} + +Łańcuch śledzący to nazwa nadana księdze głównej kont, która prowadziła i koordynowała sieć [stakerów](/staking/) Ethereum, zanim stakerzy ci zaczęli zatwierdzać rzeczywiste transakcje Ethereum. Nie przetwarzał on transakcji ani nie obsługiwał interakcji inteligentnych kontraktów. + +Wprowadził on mechanizm konsensusu (lub „warstwę konsensusu”), który zajął miejsce wydobywania z mechanizmem proof-of-work w sieci Ethereum i przyniósł wiele znaczących ulepszeń. + +Łańcuch śledzący był podstawowym elementem [bezpiecznego, przyjaznego środowisku i skalowalnego Ethereum, które mamy teraz](/roadmap/vision/). + +## Wpływ łańcucha śledzącego {#beacon-chain-features} + +### Wprowadzenie do zastawiania {#introducing-staking} + +Łańcuch śledzący wprowadził do Ethereum mechanizm [proof-of-stake](/developers/docs/consensus-mechanisms/pos/). Zapewnia to bezpieczeństwo Ethereum i daje walidatorom więcej ETH w tym procesie. W praktyce staking polega na stakowaniu ETH w celu aktywowania oprogramowania walidatora. Jako staker używasz oprogramowania, które tworzy i waliduje nowe bloki w łańcuchu. + +Staking służy podobnym celom, co kiedyś [wydobywanie](/developers/docs/mining/), ale różni się pod wieloma względami. Wydobywanie wymagało dużych nakładów początkowych w postaci potężnego sprzętu i zużycia energii, co skutkowało ekonomią skali i sprzyjało centralizacji. Wydobywanie nie wiązało się również z wymogiem blokowania aktywów jako zabezpieczenia, co ograniczało możliwości protokołu w zakresie karania wrogich podmiotów po ataku. + +Przejście na proof-of-stake sprawiło, że sieć Ethereum stała się znacznie bezpieczniejsza i zdecentralizowana w porównaniu z proof-of-work. Im więcej osób uczestniczy w sieci, tym staje się ona bardziej zdecentralizowana i lepiej zabezpieczona przed atakami. + + + Jeśli chcesz zostać walidatorem i pomóc w zabezpieczaniu Ethereum, dowiedz się więcej o stakingu. + + +### Przygotowanie do shardingu {#setting-up-for-sharding} + +Odkąd łańcuch śledzący połączył się z pierwotną siecią główną Ethereum, społeczność Ethereum zaczęła myśleć o skalowaniu sieci. + +Zaletą proof-of-stake jest posiadanie rejestru wszystkich zatwierdzonych producentów bloków w danym czasie, z których każdy stakuje ETH. Rejestr ten stwarza możliwość dzielenia i zdobywania, a także niezawodnego rozdzielania określonych obowiązków w sieci. + +Ta odpowiedzialność jest przeciwieństwem proof-of-work, gdzie górnicy nie mają żadnych zobowiązań wobec sieci i mogą w jednej chwili zaprzestać wydobycia i wyłączyć oprogramowanie swojego węzła bez żadnych konsekwencji. Nie ma też rejestru znanych proponentów bloków ani niezawodnego sposobu na bezpieczny podział obowiązków sieciowych. + +[Więcej o shardingu](/roadmap/danksharding/) + +## Relacje między uaktualnieniami {#relationship-between-upgrades} + +Wszystkie uaktualnienia Ethereum są poniekąd wzajemnie powiązane. Podsumujmy zatem, jak łańcuch śledzący wpływa na inne uaktualnienia. + +### Łańcuch śledzący i Połączenie {#merge-and-beacon-chain} + +Na początku łańcuch śledzący istniał oddzielnie od sieci głównej Ethereum, ale zostały one połączone w 2022 r. + + + Połączenie + + +### Shardy i łańcuch śledzący {#shards-and-beacon-chain} + +Sharding może bezpiecznie wejść do ekosystemu Ethereum tylko z mechanizmem konsensusu proof-of-stake. W łańcuchu śledzącym wprowadzono staking, który „połączył się” z siecią główną, torując drogę shardingowi, który pomoże w dalszym skalowaniu Ethereum. + + + Łańcuchy odłamkowe + + +## Dalsza lektura + +- [Więcej na temat przyszłych uaktualnień Ethereum](/roadmap/vision) +- [Więcej o proof-of-stake](/developers/docs/consensus-mechanisms/pos) diff --git a/public/content/translations/pl/roadmap/merge/index.md b/public/content/translations/pl/roadmap/merge/index.md new file mode 100644 index 00000000000..fa1a0f771c9 --- /dev/null +++ b/public/content/translations/pl/roadmap/merge/index.md @@ -0,0 +1,225 @@ +--- +title: Połączenie +description: Dowiedz się więcej o Połączeniu — kiedy w sieci głównej Ethereum przyjęto dowód stawki (proof-of-stake). +lang: pl +template: upgrade +image: /upgrades/merge.png +alt: +summaryPoint1: Sieć główna Ethereum wykorzystuje mechanizm proof-of-stake, ale nie zawsze tak było. +summaryPoint2: Przejście z oryginalnego mechanizmu proof-of-work na proof-of-stake zostało nazwane Połączeniem. +summaryPoint3: Połączenie odnosi się do połączenia pierwotnej sieci głównej Ethereum z oddzielną siecią blockchain proof-of-stake nazywaną łańcuchem śledzącym, które teraz istnieją jako jeden łańcuch. +summaryPoint4: Połączenie zmniejszyło zużycie energii przez Ethereum o około 99,95%. +--- + + + Połączenie zostało przeprowadzone w dniu 15 września 2022 r. Zakończyło to przejście Ethereum na konsensus proof-of-stake i oficjalną rezygnację z mechanizmu proof-of-work, skutkujące zmniejszeniem zużycia energii o około 99,95%. + + +## Czym było Połączenie? {#what-is-the-merge} + +Połączenie to scalenie pierwotnej warstwy wykonania Ethereum (sieci głównej, która istnieje od [genezy](/history/#frontier)) z nową warstwą konsensusu proof-of-stake, łańcuchem śledzącym. Wyeliminowało to potrzebę energochłonnego wydobycia, a zamiast tego umożliwiło zabezpieczenie sieci za pomocą stakowanych ETH. To był naprawdę ekscytujący krok w realizacji wizji Ethereum — większej skalowalności, bezpieczeństwa i zrównoważenia ekologicznego. + + + +Początkowo [łańcuch śledzący](/roadmap/beacon-chain/) wdrażano oddzielnie od [sieci głównej](/glossary/#mainnet). Sieć główna Ethereum — wraz ze wszystkimi jej kontami, saldami, inteligentnymi kontraktami i stanem sieci blockchain — nadal była zabezpieczana przez mechanizm [proof-of-work](/developers/docs/consensus-mechanisms/pow/), nawet gdy łańcuch śledzący działał równolegle, używając [proof-of-stake](/developers/docs/consensus-mechanisms/pos/). Połączenie to moment, w którym te dwa systemy w końcu się połączyły, a mechanizm proof-of-work został na stałe zastąpiony przez mechanizm proof-of-stake. + +Wyobraź sobie, że Ethereum to statek kosmiczny, który wystartował, zanim był gotowy do podróży międzygwiezdnej. Dzięki łańcuchowi śledzącemu społeczność zbudowała nowy silnik i wzmocniony kadłub. Po intensywnych testach nadszedł czas, aby w czasie jazdy zamienić stary silnik na nowy. W ten sposób nowy, wydajniejszy silnik został zainstalowany w działającej maszynie, która dzięki temu nabrała kosmicznej prędkości. + +## Łączenie z siecią główną {#merging-with-mainnet} + +Mechanizm proof-of-work zabezpieczał sieć główną Ethereum od chwili jej genezy aż do Połączenia. Dzięki temu w lipcu 2015 roku powstała sieć blockchain Ethereum, do której wszyscy przywykliśmy, ze wszystkimi znanymi nam funkcjami — transakcjami, inteligentnymi kontraktami, kontami itd. + +Deweloperzy przygotowywali się do ostatecznego przejścia z proof-of-work na proof-of-stake przez całą historię Ethereum. 1 grudnia 2020 roku łańcuch śledzący utworzono jako działającą równolegle sieć blockchain oddzielną od sieci głównej. + +Początkowo łańcuch śledzący nie przetwarzał transakcji w sieci głównej. Zamiast tego osiągał konsensus co do swojego stanu, uzgadniając aktywnych walidatorów i salda ich kont. Po intensywnych testach nadszedł czas, aby łańcuch śledzący osiągnął konsensus na rzeczywistych danych. Po Połączeniu łańcuch śledzący stał się mechanizmem konsensusu dla wszystkich danych sieci, w tym transakcji w warstwie wykonania i sald kont. + +Połączenie oznaczało oficjalne przejście na używanie łańcucha śledzącego jako silnika produkcji bloków. Wydobywanie nie jest już środkiem do produkcji ważnych bloków. Zamiast tego rolę tę przejęli walidatorzy proof-of-stake, którzy są teraz odpowiedzialni za przetwarzanie ważności wszystkich transakcji i proponowanie bloków. + +Podczas Połączenia nie została utracona żadna historia. Gdy sieć główna połączyła się z łańcuchem śledzącym, połączona została również cała historia transakcyjna Ethereum. + + +Przejście na proof-of-stake zmieniło sposób emisji etheru. Dowiedz się więcej o emisji etheru przed i po Połączeniu. + + +### Użytkownicy i posiadacze {#users-holders} + +**Połączenie nie zmieniło niczego dla posiadaczy/użytkowników.** + +_Trzeba to powtórzyć_: jako użytkownik lub posiadacz ETH lub dowolnego innego zasobu cyfrowego w Ethereum, a także jako staker nie obsługujący węzła, **nie musisz robić niczego ze swoimi środkami lub portfelem po Połączeniu.** ETH to po prostu ETH. Nie ma czegoś takiego jak „stare ETH” / „nowe ETH” ani „ETH1”/„ETH2”, a portfele po Połączeniu działają dokładnie tak samo jak przed połączeniem — osoby, które mówią Ci, że jest inaczej, to prawdopodobnie oszuści. + +Mimo przejścia z proof-of-work cała historia Ethereum od genezy pozostała nienaruszona i niezmieniona przez przejście na proof-of-stake. Wszelkie środki znajdujące się w Twoim portfelu przed Połączeniem są nadal dostępne po Połączeniu. **Nie jest wymagane żadne działanie z Twojej strony, aby dokonać uaktualnienia.** + +[Więcej o zabezpieczeniach Ethereum](/security/#eth2-token-scam) + +### Operatorzy węzłów i deweloperzy aplikacji {#node-operators-dapp-developers} + + + +Kluczowe działania obejmują: + +1. Uruchomienie _zarówno_ klienta konsensusu, jak i klienta wykonania; punkty końcowe stron trzecich, które otrzymują dane wykonania, nie działają już od czasu Połączenia. +2. Uwierzytelnienie zarówno klienta wykonania, jak i klienta konsensusu za pomocą wspólnego klucza tajnego JWT, aby mogli się bezpiecznie komunikować. +3. Ustawienie adresu „odbiorcy opłat”, na który będziesz otrzymywać swoje zarobione napiwki z tytułu opłat transakcyjnych/MEV. + +Niewykonanie dwóch pierwszych punktów spowoduje, że węzeł będzie widoczny jako „offline”, dopóki obie warstwy nie zostaną zsynchronizowane i uwierzytelnione. + +Nieustawienie „odbiorcy opłat” sprawi, że walidator będzie zachowywać się jak zwykle, ale utracisz niespalone napiwki z tytułu opłat i wszystkie MEV, które w przeciwnym razie zarobił(a)byś w blokach proponowanych przez walidatora. + + + + +Do czasu Połączenia klient wykonania (taki jak Geth, Erigon, Besu czy Nethermind) wystarczał, aby odbierać, odpowiednio walidować i propagować bloki przekazywane przez sieć. _Po Połączeniu_ ważność transakcji zawartych w ładunku wykonania zależy teraz również od ważności „bloku konsensusu”, w którym jest on zawarty. + +W rezultacie pełny węzeł Ethereum wymaga teraz zarówno klienta wykonania, jak i klienta konsensusu. Ci dwaj klienci współpracują ze sobą za pomocą nowego interfejsu API mechanizmu. Interfejs API mechanizmu wymaga uwierzytelnienia za pomocą tajnego klucza JWT, który jest przekazywany obu klientom, co umożliwia bezpieczną komunikację. + +Kluczowe działania obejmują: + +- Instalację klienta konsensusu oprócz klienta wykonania +- Uwierzytelnienie klientów wykonania i konsensusu za pomocą wspólnego tajnego klucza JWT, aby mogli bezpiecznie komunikować się ze sobą. + +Niewykonanie powyższych działań spowoduje, że węzeł będzie wyświetlany jako „offline”, dopóki obie warstwy nie zostaną zsynchronizowane i uwierzytelnione. + + + + + +Połączenie wdrożono wraz ze zmianami w konsensusie, co obejmuje również zmiany dotyczące: + +- struktury bloku, +- synchronizacji slotów/bloków, +- zmian kodu operacyjnego, +- źródeł losowości w łańcuchu, +- koncepcji _bezpiecznej głowy_ i _sfinalizowanych bloków_. + +Więcej informacji znajdziesz w tym wpisie Tima Beiko [Jak Połączenie wpływa na warstwę aplikacji Ethereum](https://blog.ethereum.org/2021/11/29/how-the-merge-impacts-app-layer/). + + +## Połączenie i zużycie energii {#merge-and-energy} + +Połączenie stanowi koniec stosowania mechanizmu proof-of-work w sieci Ethereum i rozpoczęcie ery bardziej zrównoważonego ekologicznie Ethereum. Zużycie energii przez sieć Ethereum spadło o około 99,95%, dzięki czemu Ethereum stało się ekologiczną siecią blockchain. Dowiedz się więcej o [zużyciu energii przez Ethereum](/energy-consumption/). + +## Połączenie i skalowanie {#merge-and-scaling} + +Połączenie stwarza również miejsce dla dalszych uaktualnień skalowalności, które nie są możliwe w ramach mechanizmu proof-of-work, co przybliży Ethereum o krok do osiągnięcia pełnej skali, bezpieczeństwa i zrównoważenia ekologicznego, o których mowa w [wizji Ethereum](/roadmap/vision/). + +## Błędne przekonania o Połączeniu {#misconceptions} + + +Są dwa typy węzłów Ethereum: węzły, które mogą proponować bloki, i węzły, które tego nie mogą. + +Węzły proponujące bloki stanowią jedynie niewielką część wszystkich węzłów w sieci Ethereum. Kategoria ta obejmuje węzły wydobycia w ramach mechanizmu proof-of-work (PoW) oraz węzły walidatorów w ramach mechanizmu proof-of-stake (PoS). Ta kategoria wymaga zaangażowania zasobów ekonomicznych (takich jak moc obliczeniowa GPU w sieci proof-of-work lub stakowanych ETH w sieci proof-of-stake) w zamian za możliwość okazjonalnego proponowania następnego bloku i zdobywania nagród protokołu. + +Pozostałe węzły w sieci (czyli większość) nie muszą angażować żadnych zasobów ekonomicznych poza komputerem klasy konsumenckiej z 1–2 TB dostępnej pamięci masowej i połączeniem internetowym. Węzły te nie proponują bloków, ale nadal pełnią kluczową rolę w zabezpieczaniu sieci, gdyż rozliczają wszystkich proponujących bloki, nasłuchując nowych bloków i weryfikując ich ważność po przybyciu zgodnie z zasadami konsensusu sieci. Jeśli blok jest ważny, węzeł nadal propaguje go przez sieć. Jeśli blok jest nieważny z jakiegokolwiek powodu, oprogramowanie węzła odrzuci go jako nieważny i zatrzyma jego propagację. + +Prowadzenie węzła, który nie wytwarza bloków, jest możliwe dla każdego, niezależnie od mechanizmu konsensusu (proof-of-work lub proof-of-stake). Prowadzenie węzła jest niezwykle cenne dla Ethereum i daje dodatkowe korzyści każdej osobie, która go prowadzi, takie jak zwiększone bezpieczeństwo, prywatność i odporność na cenzurę. + +Możliwość uruchomienia przez każdego własnego węzła jest _absolutnie niezbędna_ do utrzymania decentralizacji sieci Ethereum. + +[Więcej o uruchamianiu własnego węzła](/run-a-node/) + + + + +Opłaty za gaz są wypadkową zapotrzebowania na sieć i jej przepustowości. W wyniku Połączenia zrezygnowano z mechanizmu proof-of-work, przechodząc na mechanizm konsensusu proof-of-stake, ale nie zmieniono znacząco żadnych parametrów, które bezpośrednio wpływają na przepustowość sieci. + +W ramach [planu działania skoncentrowanego na pakietach zbiorczych](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698) wysiłki koncentrują się na zwiększeniu aktywności użytkowników w [warstwie 2](/warstwa-2/), przy jednoczesnym umożliwieniu działania sieci głównej w warstwie 1 jako bezpiecznej, zdecentralizowanej warstwy rozliczenia, zoptymalizowanej do przechowywania danych pakietów zbiorczych, co pomoże uczynić transakcje na pakietach zbiorczych wykładniczo tańszymi. Przejście na proof-of-stake jest kluczowym prekursorem realizacji tego celu. [Więcej o gazie i opłatach](/developers/docs/gas/) + + + +„Szybkość” transakcji można mierzyć na kilka sposobów, m.in. jako czas dołączenia do bloku i czas do finalizacji. Oba te czasy uległy niewielkiej zmianie, ale nie w taki sposób, aby użytkownicy je zauważyli. + +Historycznie, w przypadku mechanizmu proof-of-work, celem było generowanie nowego bloku co około 13,3 sekundy. W przypadku mechanizmu proof-of-stake sloty pojawiają się dokładnie co 12 sekund, a każdy z nich stanowi dla walidatora okazję do opublikowania bloku. Większość slotów ma bloki, ale nie wszystkie (np. walidator jest offline). W przypadku mechanizmu proof-of-stake bloki są produkowane około 10% częściej niż w przypadku mechanizmu proof-of-work. To była dość mało znacząca zmiana i raczej nie zostanie zauważona przez użytkowników. + +Mechanizm proof-of-stake wprowadził nieistniejące wcześniej pojęcie nieodwołalności transakcji. W przypadku mechanizmu proof-of-work możliwość odwrócenia bloku staje się wykładniczo trudniejsza z każdym kolejnym blokiem wydobytym na podstawie transakcji, ale nigdy nie osiąga zera. W przypadku mechanizmu proof-of-stake bloki są łączone w epoki (6,4-minutowe odcinki czasu zawierające 32 szanse dla bloków), na które głosują walidatorzy. Gdy epoka się kończy, walidatorzy głosują, czy uznać ją za „uzasadnioną”. Jeśli walidatorzy zgodzą się na uzasadnienie epoki, zostanie ona sfinalizowana w następnej epoce. Cofnięcie sfinalizowanych transakcji jest ekonomicznie nieopłacalne, ponieważ wymagałoby uzyskania i spalenia ponad jednej trzeciej wszystkich stakowanych ETH. + + + + +Stakowane ETH i nagrody za stakowanie są nadal blokowane bez możliwości wypłaty. Wypłaty są planowane w najbliższym uaktualnieniu Shanghai. + + + +Może się to wydawać sprzeczne z powyższą informacją, że wypłaty nie są możliwe do uaktualnienia Shanghai, ale walidatorzy MAJĄ natychmiastowy dostęp do nagród za opłaty/MEV, zarobionych podczas propozycji bloków. + +Protokół wydaje ETH jako nagrodę dla walidatorów za przyczynianie się do konsensusu. Warstwa konsensusu rejestruje nowo wyemitowane ETH, a walidator ma unikalny adres, pod którym przechowuje swoje stakowane ETH i nagrody protokołu. Te ETH są blokowane aż do uaktualnienia Shanghai. + +ETH w warstwie wykonawczej są rejestrowane oddzielnie od warstwy konsensusu. Gdy użytkownicy wykonują transakcje w sieci głównej Ethereum, muszą zapłacić w ETH za pokrycie kosztów gazu, w tym napiwku dla walidatora. Te ETH znajdują się już w warstwie wykonania, NIE są nowo wydawane przez protokół i są dostępne dla walidatora natychmiast (pod warunkiem, że odpowiedni adres „odbiorcy opłaty” został podany w oprogramowaniu klienckim). + + + +Gdy uaktualnienie Shanghai umożliwi wypłaty, wszyscy walidatorzy będą zachęcani do wypłaty salda stakingu powyżej 32 ETH, ponieważ środki te nie zwiększają zysku, a są zablokowane. W zależności od APR (ustalanej na podstawie całkowitej ilości stakowanych ETH) użytkownicy mogą być zachęcani do wyjścia z walidatorów w celu odzyskania całego salda lub zestakowania jeszcze więcej i wykorzystania nagród do uzyskania większego zysku. + +Ważne zastrzeżenie: pełne wyjścia walidatorów są ograniczone przez protokół, więc wyjść może tylko sześciu walidatorów na epokę (co 6,4 minuty, czyli 1350 dziennie, lub tylko około 43 200 ETH dziennie z ponad 10 milionów stakowanych ETH). Limit ten dostosowuje się w zależności od sumy stakowanych ETH i zapobiega on masowemu odpływowi środków. Ponadto zapobiega to sytuacji, w której potencjalny atakujący wykorzysta swoje stakowane środki do popełnienia wykroczenia podlegającego cięciu i wycofa całe saldo stakingu w tej samej epoce, nim protokół będzie mógł wymusić karę za cięcie. + +APR jest celowo dynamiczna, co pozwala rynkowi stakerów wyważyć, jakiej zapłaty sobie życzą za pomoc w zabezpieczeniu sieci. Gdy wypłaty są włączone, jeśli szybkość jest za mała, walidatorzy będą wychodzić z szybkością ograniczoną przez protokół. Stopniowo podniesie to APR dla wszystkich, którzy pozostaną, przyciągając nowych lub powracających stakerów. + + +## Co się stało z „Eth2”? {#eth2} + +Termin „Eth2” został odrzucony. Po połączeniu „Eth1” i „Eth2” w jeden łańcuch nie trzeba już rozróżniać dwóch sieci Ethereum — jest tylko jedna sieć Ethereum. + +Aby ograniczyć zamieszanie, społeczność zaktualizowała te warunki: + +- „Eth1” jest teraz „warstwą wykonania”, która obsługuje transakcje i wykonanie. +- „Eth2” jest teraz „warstwą konsensusu”, która obsługuje konsensus dowodu stawki (proof-of-stake). + +Ta terminologia aktualizuje tylko konwencje nazewnictwa; nie zmienia celów ani planu działania Ethereum. + +[Dowiedz się więcej o zmianie nazwy „Eth2”](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) + +## Relacje między uaktualnieniami {#relationship-between-upgrades} + +Wszystkie uaktualnienia Ethereum są poniekąd wzajemnie powiązane. Podsumujmy więc, jak Połączenie ma się do innych uaktualnień. + +### Połączenie i łańcuch śledzący {#merge-and-beacon-chain} + +Połączenie reprezentuje formalne przyjęcie łańcucha śledzącego jako nowej warstwy konsensusu w stosunku do pierwotnej warstwy wykonania sieci głównej. Od czasu Połączenia walidatorzy są przypisani do bezpiecznej sieci głównej Ethereum, a wydobywanie na [proof-of-work](/developers/docs/consensus-mechanisms/pow/) nie jest już prawidłowym sposobem produkcji bloków. + +Bloki są natomiast proponowane przez węzły walidujące, które stakują ETH w zamian za prawo do udziału w konsensusie. Te uaktualnienia stanowią podstawę dla przyszłych uaktualnień skalowalności, w tym shardingu. + + + Łańcuch śledzący + + +### Połączenie i uaktualnienie Shanghai {#merge-and-shanghai} + +W celu zapewnienia uproszczenia i maksymalnego skupienia się na udanym przejściu na proof-of-stake uaktualnienie Połączenie nie zawierało pewnych oczekiwanych funkcji, takich jak możliwość wypłaty stakowanych ETH. Planuje się, że wdrożenie uaktualnienia Shanghai nastąpi po Połączeniu i umożliwi wypłaty stakerom. + +Bądź na bieżąco dzięki [zagadnieniu planowania uaktualnienia Shanghai w serwisie GitHub](https://github.com/ethereum/pm/issues/450) lub [blogowi poświęconemu badaniom i rozwojowi EF](https://blog.ethereum.org/category/research-and-development/). Można też dowiedzieć się więcej o tym, [Co się dzieje po Połączeniu](https://youtu.be/7ggwLccuN5s?t=101), z prezentacji Vitalika podczas wydarzenia ETHGlobal w kwietniu 2021 roku. + +### Połączenie i sharding {#merge-and-data-sharding} + +Pierwotnie planowano prace nad shardingiem przed Połączeniem, aby rozwiązać problem skalowalności. Jednak wraz z rozwojem [rozwiązań skalujących warstwę 2](/warstwa-2/) priorytet przesunął się na zamianę mechanizmu proof-of-work na proof-of-stake. + +Plany dotyczące shardingu szybko ewoluują, ale ze względu na rozwój i sukces technologii warstwy 2 do skalowania wykonania transakcji plany shardingu przesunęły się w kierunku znalezienia optymalnego sposobu rozłożenia ciężaru przechowywania skompresowanych calldata z kontraktów pakietów zbiorczych, co pozwala na wykładniczy wzrost przepustowości sieci. Nie byłoby to możliwe bez wcześniejszego przejścia na proof-of-stake. + + + Sharding + + +## Dalsza lektura {#further-reading} + + + + diff --git a/src/content/translations/pl/security/index.md b/public/content/translations/pl/security/index.md similarity index 100% rename from src/content/translations/pl/security/index.md rename to public/content/translations/pl/security/index.md diff --git a/public/content/translations/pl/smart-contracts/index.md b/public/content/translations/pl/smart-contracts/index.md new file mode 100644 index 00000000000..be2e32b4919 --- /dev/null +++ b/public/content/translations/pl/smart-contracts/index.md @@ -0,0 +1,88 @@ +--- +title: Inteligentne kontrakty +description: Wprowadzenie do inteligentnych kontraktów w wersji nietechnicznej +lang: pl +--- + +# Wprowadzenie do inteligentnych kontraktów {#introduction-to-smart-contracts} + +Inteligentne kontrakty są podstawowymi elementami składowymi warstwy aplikacji Ethereum. Są to programy komputerowe przechowywane na blockchainie, które działają zgodnie z logiką „jeśli to, to tamto” i mają gwarancję działania zgodnie z zasadami określonymi przez ich kod, którego nie można zmienić po utworzeniu. + +Termin „inteligentny kontrakt” stworzył Nick Szabo. W 1994 r. napisał [wprowadzenie do tej koncepcji](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html), a w 1996 r. opisał [badania na temat możliwości inteligentnych kontraktów i tego co mogą zrobić](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). + +Szabo wyobraził sobie cyfrowy rynek, na którym automatyczne, kryptograficznie bezpieczne procesy umożliwiają przeprowadzanie transakcji i funkcji biznesowych bez zaufanych pośredników. Inteligentne kontrakty na Ethereum wprowadzają tę wizję w życie. + +## Zaufanie do konwencjonalnych kontraktów {#trust-and-contracts} + +Jednym z największych problemów związanych z tradycyjnym kontraktem jest konieczność przestrzegania jego postanowień przez zaufane osoby. + +Oto przykład: + +Alicja i Bob urządzają sobie wyścig rowerowy. Załóżmy, że Alice założyła się z Bobem o 10 dolarów, że wygra wyścig. Bob jest przekonany, że to on będzie zwycięzcą, i przyjmuje zakład. Jednak Alice kończy wyścig znacznie przed Bobem i zdecydowanie wygrywa. Bob jednak odmawia wypłacenia pieniędzy z zakładu, twierdząc, że Alicja musiała oszukiwać. + +Ten jaskrawy przykład ilustruje problem z dowolną umową nieinteligentną. Nawet jeśli warunki umowy zostaną spełnione (np. Ty jesteś zwycięzcą wyścigu), nadal musisz ufać innej osobie, że wywiąże się z umowy (np. wypłaci zakład). + +## Inteligentne kontrakty {#smart-contracts} + +Inteligentne kontrakty digitalizują umowy, przekształcając warunki umowy w kod komputerowy, który automatycznie wykonuje się, gdy warunki kontraktu są spełnione. + +## Cyfrowy automat do sprzedaży {#vending-machine} + +Prostą metaforą inteligentnego kontraktu jest automat sprzedający, który działa nieco podobnie do inteligentnego kontraktu — określone wejścia gwarantują z góry określone wyjścia. + +- Wybierasz produkt. +- Automat sprzedający wyświetla cenę +- Płacisz cenę +- Automat weryfikuje, czy osoba zapłaciła odpowiednią kwotę +- Automat daje ci twój przedmiot + +Automat wyda żądany produkt dopiero po spełnieniu wszystkich wymagań. Jeśli nie wybierzesz produktu lub nie umieścisz wystarczającej ilości pieniędzy, automat sprzedający nie wyda produktu. + +## Automatyczne wykonanie {#automation} + +Główną zaletą inteligentnego kontraktu jest to, że deterministycznie wykonuje on jednoznaczny kod po spełnieniu określonych warunków. Nie ma potrzeby czekania, aż człowiek zinterpretuje lub wynegocjuje wynik. Eliminuje to potrzebę korzystania z zaufanych pośredników. + +Można na przykład napisać inteligentny kontrakt, który przechowuje środki finansowe na rzecz dziecka, umożliwiając mu wypłatę środków po określonej dacie. Jeśli spróbują wypłacić przed tą datą, inteligentny kontrakt nie zostanie wykonany. Możesz też napisać kontrakt, który automatycznie udostępni Ci cyfrową wersję tytułu własności samochodu, gdy zapłacisz sprzedawcy. + +## Przewidywalne wyniki {#predictability} + +Tradycyjne kontrakty są niejednoznaczne, ponieważ polegają na interpretacji i realizacji zależnej od człowieka. Na przykład, dwóch sędziów może różnie interpretować kontrakt, co może prowadzić do niespójnych decyzji i niejednakowych wyników. Inteligentne kontrakty usuwają tę możliwość. Zamiast tego, inteligentne kontrakty wykonują dokładnie to, co zostało zapisane w kodzie kontraktu. Dokładność ta oznacza, że w takich samych okolicznościach inteligentny kontrakt wygeneruje taki sam wynik. + +## Rekord publiczny {#public-record} + +Inteligentne kontrakty są przydatne do celów kontroli i śledzenia. Ponieważ inteligentne kontrakty Ethereum znajdują się w publicznym blockchainie, każdy może natychmiast śledzić transfery aktywów i inne powiązane informacje. Możesz na przykład sprawdzić, czy ktoś wysłał pieniądze na Twój adres. + +## Ochrona prywatności {#privacy-protection} + +Inteligentne kontrakty chronią również Twoją prywatność. Ponieważ Ethereum jest siecią pseudonimową (Twoje transakcje są związane publicznie z unikalnym adresem kryptograficznym, a nie z Twoją tożsamością), możesz chronić swoją prywatność przed obserwatorami. + +## Widoczne terminy {#visible-terms} + +Wreszcie, podobnie jak w przypadku tradycyjnych kontraktów, możesz sprawdzić, co jest w inteligentnym kontrakcie, zanim go podpiszesz (lub wejdziesz z nim w interakcje w inny sposób). Przejrzystość inteligentnego kontraktu gwarantuje, że każdy może go przeanalizować. + +## Przykłady wykorzystania inteligentnych kontraktów {#use-cases} + +Inteligentne kontrakty mogą robić zasadniczo wszystko, co robią programy komputerowe. + +Mogą wykonywać obliczenia, tworzyć walutę, przechowywać dane, wybijać NFT, wysyłać komunikaty, a nawet generować grafikę. Oto kilka popularnych, rzeczywistych przykładów: + +- [Stablecoiny](/stablecoins/) +- [Tworzenie i dystrybucja unikalnych zasobów cyfrowych](/nft/) +- [Automatyczna otwarta wymiana walut](/get-eth/#dex) +- [Zdecentralizowane gry](/dapps/?category=gaming) +- [Polisa ubezpieczeniowa automatycznie wypłacająca odszkodowanie](https://etherisc.com/) +- [Standard umożliwiający tworzenie niestandardowych, interoperacyjnych walut](/developers/docs/standards/tokens/) + +## Jesteś raczej wzrokowcem? {#visual-learner} + +Zobacz, jak Finematics tłumaczy inteligentne kontrakty: + + + +## Dalsza lektura {#further-reading} + +- [Jak inteligentne kontrakty zmienią świat](https://www.youtube.com/watch?v=pA6CGuXEKtQ) +- [Inteligentne kontrakty: Technologia łańcucha bloków, która zastąpi prawników](https://blockgeeks.com/guides/smart-contracts/) +- [Inteligentne kontrakty dla programistów](/developers/docs/smart-contracts/) +- [Naucz się pisać inteligentne kontrakty](/developers/learning-tools/) +- [Mastering Ethereum - Co to jest inteligentny kontrakt?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/pl/social-networks/index.md b/public/content/translations/pl/social-networks/index.md new file mode 100644 index 00000000000..4addefe5015 --- /dev/null +++ b/public/content/translations/pl/social-networks/index.md @@ -0,0 +1,121 @@ +--- +title: Zdecentralizowane sieci społecznościowe +description: Przegląd zdecentralizowanych serwisów społecznościowych w Ethereum +lang: pl +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: /ethereum-learn.png +summaryPoint1: Oparte na łańcuchu bloków platformy umożliwiające interakcje społeczne oraz tworzenie i rozpowszechnianie treści. +summaryPoint2: Zdecentralizowane sieci mediów społecznościowych zapewniają ochronę prywatności użytkowników i większe bezpieczeństwo danych. +summaryPoint3: Tokeny i NFT otwierają nowe możliwości monetyzacji treści. +--- + +Serwisy społecznościowe odgrywają ogromną rolę w naszej codziennej komunikacji i wzajemnych interakcjach. Scentralizowana kontrola takich serwisów jest jednak źródłem wielu problemów. Wycieki danych, przestoje serwerów, cenzurowanie treści czy naruszenia prywatności to tylko niektóre z nich. Aby stawić czoła tym wyzwaniom, deweloperzy tworzą serwisy społecznościowe, jako podstawę wykorzystując platformę Ethereum. Zdecentralizowane serwisy społecznościowe pozwalają wykluczyć większość problemów platform tradycyjnych, a przy tym zapewniają użytkownikom lepsze ogólne doświadczenia. + +## Czym są zdecentralizowane serwisy społecznościowe? {#what-are-decentralized-social-networks} + +Zdecentralizowane serwisy społecznościowe to oparte na łańcuchu bloków platformy umożliwiające użytkownikom wymianę informacji oraz publikowanie treści i udostępnianie ich grupom odbiorców. Ponieważ aplikacje te oparte są na łańcuchu bloków, można je zdecentralizować, uodparniając je na próby cenzurowania treści i nadmierną kontrolę. + +Wiele zdecentralizowanych serwisów społecznościowych funkcjonuje jako alternatywy dla platform konwencjonalnych, takich jak Facebook, LikedIn, Twitter i Medium. Serwisy społecznościowe oparte na łańcuchu bloków mają jednak wiele właściwości, które dają im przewagę nad platformami konwencjonalnymi. + +### Jak działają zdecentralizowane serwisy społecznościowe? {#decentralized-social-networks-overview} + +Zdecentralizowane serwisy społecznościowe reprezentują klasę [aplikacji zdecentralizowanych (d-aplikacji)](/dapps/), czyli aplikacji opartych na [inteligentnych kontraktach](/developers/docs/smart-contracts/) wdrożonych w łańcuchu bloków. Kod kontraktu służy jako backend tych aplikacji i określa ich logikę biznesową. + +Konwencjonalne serwisy społecznościowe polegają na bazach danych, w których przechowywane są dane użytkowników, kod programu i inne rodzaje informacji. Tworzy to jednak pojedyncze punkty awarii i wprowadza znaczne ryzyko. Za przykład może posłużyć głośny incydent z zeszłego roku, kiedy to ze względu na [wielogodzinny przestój](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) serwerów Facebooka użytkownicy zostali odcięci od platformy. + +Zdecentralizowane serwisy społecznościowe typu peer-to-peer obejmują tysiące węzłów na całym świecie. Nawet jeśli niektóre węzły ulegną awarii, sieć będzie działać nieprzerwanie, dzięki czemu aplikacje są odporne na awarie i przestoje. + +Zdecentralizowane systemy pamięci, takie jak [InterPlanetary File System (IPFS)](https://ipfs.io/), sieci społecznościowe zbudowane na Ethereum chronią dane użytkowników przed nadużyciem. Tu nikt nie sprzedaje danych osobowych reklamodawcom a hakerzy nie są w stanie ich wykraść. + +Wiele sieci społecznościowych opartych na łańcuchu bloków ma natywne tokeny, które je zasilają, bez potrzeby dochodu z reklam. Użytkownicy mogą kupić te tokeny, aby uzyskać dostęp do określonych funkcji, zrealizować zakupy w aplikacji lub dać napiwek swoim ulubionym twórcom treści. + +## Zalety zdecentralizowanych mediów społecznościowych {#benefits} + +1. Zdecentralizowane media społecznościowe są odporne na cenzurę i otwarte dla wszystkich. Oznacza to, że użytkownicy nie mogą być blokowani, usuwani z platformy ani ograniczani. + +2. Zdecentralizowane sieci społecznościowe są oparte na zasadach open source. Oznacza to, że ich kod źródłowy jest ogólnie dostępny. Eliminując wdrażanie nieprzejrzystych algorytmów powszechnych w tradycyjnych mediach społecznościowych, sieci społecznościowe oparte na łańcuchu bloków mogą pogodzić interesy użytkowników i twórców platformy. + +3. Zdecentralizowane sieci społecznościowe eliminują „pośrednika”. Twórcy treści są bezpośrednimi właścicielami swoich treści i angażują się bezpośrednio z osobami śledzącymi, fanami, kupującymi i innymi stronami, przy czym pomiędzy nimi nie ma nic poza inteligentnym kontraktem. + +4. Jako d-aplikacje działające w sieci Ethereum, która jest wspierana przez globalną sieć węzłów typu peer-to-peer, zdecentralizowane media społecznościowe są mniej podatne na przestoje i przerwy w pracy serwerów. + +5. Zdecentralizowane platformy społecznościowe oferują ulepszone ramy monetyzacji dla twórców treści poprzez tokeny niezbywalne (NFT), płatności kryptowalutowe w aplikacji i inne. + +6. Zdecentralizowane sieci społecznościowe zapewniają użytkownikom wysoki poziom prywatności i anonimowości. Na przykład każdy może się zalogować do sieci społecznościowej w Ethereum, korzystając z profilu lub portfela ENS — bez konieczności dzielenia się swoimi wrażliwymi danymi (PII), takimi jak nazwy, adresy e-mail itp. + +7. Zdecentralizowane sieci społecznościowe nie opierają sie na scentralizowanych bazach danych. Dane są przechowywane w sposób rozproszony, który lepiej je zabezpiecza. + +## Zdecentralizowane sieci społecznościowe w Ethereum {#ethereum-social-networks} + +Sieć Ethereum jest doskonałym narzędziem dla programistów, którzy tworzą zdecentralizowane media społecznościowe, ze względu na popularność jej tokenów (ERC-20/ERC-721) i ogromną bazę użytkowników. Oto kilka przykładów sieci społecznościowych opartych na Ethereum: + +### Peepeth {#peepeth} + +[Peepeth](https://peepeth.com/) to platforma mikroblogowa podobna do Twittera. Działa w oparciu o łańcuch bloków Ethereum i wykorzystuje IPFS do przechowywania danych użytkowników. + +Użytkownicy mogą wysyłać krótkie wiadomości, Peeps, których nie można usunąć ani zmodyfikować. Możesz otrzymywać napiwki lub dawać je każdemu na platformie, w etherach (ETH), nie opuszczając aplikacji. + +### Mirror {#mirror} + +[Mirror](https://mirror.xyz/) to oparta na web3 platforma do tworzenia treści, która ma być zdecentralizowana i należeć do użytkowników. Użytkownicy mogą czytać i pisać na platformie Mirror za darmo, po prostu podłączając swoje portfele. Mogą również zapisywać i subskrybować treści innych autorów. + +Posty opublikowane na platformie Mirror są trwale przechowywane na Arweave, zdecentralizowanej platformie do przechowywania, i można je wybić jako kolekcjonerskie [niewymienialne tokeny (NFT)](/nft/) znane jako Writing NFT. Wybicie Writing NFT jest całkowicie darmowe dla twórców treści i odbywa się w warstwie L2 Ethereum. Dzięki temu transakcje są niedrogie i szybkie oraz przyjazne dla środowiska. + +### MINDS {#minds} + +[MINDS](https://www.minds.com/) jest jedną z najczęściej używanych zdecentralizowanych sieci społecznościowych. Działa podobnie jak Facebook i już zyskała miliony użytkowników. + +Użytkownicy używają natywnego tokena ERC-20 platformy $MIND, aby zapłacić za produkty. Użytkownicy mogą także zarabiać tokeny $MIND, publikując popularne treści, mając swój udział w ekosystemie i kierując innych na platformę. + +## Zdecentralizowane media społecznościowe Ethereum w web2 {#web2-social-networks-and-ethereum} + +Natywne platformy społecznościowe [Web3](/web3/) nie są jedynymi, które używają technologii łańcucha bloków. Wiele scentralizowanych platform także planuje zintegrować swoją infrastrukturę z Ethereum: + +### Reddit {#reddit} + +Reddit ma tak zwane [punkty społeczności](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users). Są to [tokeny ERC-20](/developers/docs/standards/tokens/erc-20/), które użytkownicy mogą zdobywać, publikując wysokiej jakości treści i przyczyniając się do rozwoju społeczności internetowych (subreddity). Możesz wymienić te tokeny w subreddicie, aby [uzyskać ekskluzywne przywileje i korzyści](https://www.reddit.com/community-points/). W tym projekcie Reddit współpracuje z Arbitrum, [warstwą L2](/layer-2/)zaprojektowaną do skalowania transakcji w Ethereum. + +Program już działa, a subreddit r/CryptoCurrency [uruchamia swoją wersję punktów społeczności o nazwie „Moons”](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Według oficjalnego opisu, Moons „nagradzają posterów, komentatorów i moderatorów za ich wkład w subreddit”. Ponieważ tokeny te są w łańcuchu bloków (użytkownicy otrzymują je w portfelach), są niezależne od Reddit i nie mogą być odebrane. + +Teraz, po zakończeniu fazy beta w sieci testowej Rinkeby, punkty społeczności Reddit znajdują się w [Arbitrum Nova](https://nova.arbitrum.io/), łańcuchu bloków, który łączy w sobie właściwości [łańcucha bocznego](/developers/docs/scaling/sidechains/) i [optymistycznego pakietu zbiorczego](/developers/docs/scaling/optimistic-rollups/). Oprócz korzystania z punktów społeczności, aby odblokować specjalne funkcje, użytkownicy mogą je również wymieniać na giełdach na walutę. Ponadto liczba punktów społeczności, które ma użytkownik, decyduje o jego wpływie na proces decyzyjny w obrębie społeczności. + +### Twitter {#twitter} + +W styczniu 2021 r. Twitter Blue [uruchomił obsługę NFT](https://mashable.com/article/twitter-blue-nft-profile-picture), umożliwiając użytkownikom połączenie portfela i wyświetlanie NFT jako zdjęć profilowych. W czasie pisania tego tekstu firma ogłosiła również [plany](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) utworzenia w przyszłości zdecentralizowanej sieci społecznościowej. + +### Instagram {#instagram} + +W maju 2022 r. [Instagram ogłosił wsparcie dla NFT](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) w ekosystemach Ethereum i Polygon. Użytkownicy mogą publikować NFT bezpośrednio na Instagramie, podłączając swój portfel Ethereum. + +## Użytkowanie zdecentralizowanych sieci społecznościowych {#use-decentralized-social-networks} + +- **[Status.im](https://status.im/)** — _Status jest bezpieczną aplikacją typu open source do wysyłania wiadomości, z wykorzystaniem protokołu peer-to-peer i szyfrowania typu end-to-end w celu ochrony wiadomości przed stronami trzecimi._ +- **[Mirror.xyz](https://mirror.xyz/)** — _Mirror jest zdecentralizowaną platformą wydawniczą opartą na sieci Ethereum, która umożliwia użytkownikom finansowanie idei społecznościowych, monetyzowanie treści i budowanie społeczności o wysokiej wartości._ +- **[Lens Protocol](https://lens.xyz/)** — _Lens Protocol jest złożonym i zdecentralizowanym wykresem społecznym, pomagającym twórcom uwiarygodnić własność ich treści, niezależnie od miejsca ich pobytu w cyfrowym ogrodzie zdecentralizowanego internetu._ +- **[Farcaster](https://farcaster.xyz/)** — _Farcaster to wystarczająco zdecentralizowana sieć społeczna. Jest to protokół otwarty, który umożliwia obsługę wielu klientów — podobnie jak poczta e-mail._ + +## Dodatkowo przeczytaj {#further-reading} + +### Artykuły {#articles} + +- [Decentralizacja mediów społecznościowych: przewodnik po warstwach społecznych Web3](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) — _Coinbase Ventures_ +- [Media społecznościowe kolejną platformą z możliwością decentralizacji](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Goertzel_ +- [Web3 obietnicą zdecentralizowanych, kontrolowanych przez społeczność serwisów społecznościowych](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ +- [Przegląd mediów społecznościowych opartych na łańcuchu bloków](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ +- [Jak łańcuch bloków może rozwiązać problem z prywatnością w mediach społecznościowych](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Prableen Bajpai_ +- [Sieci mediów społecznościowych wprowadzają łańcuchy bloków](https://businesstechguides.co/what-are-decentralized-social-networks) — _Emmanuel Awosika_ +- [Dostateczna decentralizacja serwisów społecznościowych](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Varun Srinivasan_ + +### Materiały wideo {#videos} + +- [Jak działają zdecentralizowane media społecznościowe](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _CoinmarketCap_ +- [Dążenie do decentralizacji mediów społecznościowych: łańcuch bloków DeSo](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ +- [Przyszłość zdecentralizowanych mediów społecznościowych — Balaji Srinivasan, Vitalik Buterin, Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ + +### Społeczności {#communities} + +- [Status (serwer Discord)](https://discord.com/invite/3Exux7Y) +- [Mirror (serwer Discord)](https://discord.com/invite/txuCHcE8wV) +- [Wątek r/CryptoCurrency w serwisie Reddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/pl/staking/dvt/index.md b/public/content/translations/pl/staking/dvt/index.md similarity index 100% rename from src/content/translations/pl/staking/dvt/index.md rename to public/content/translations/pl/staking/dvt/index.md diff --git a/public/content/translations/pl/staking/pools/index.md b/public/content/translations/pl/staking/pools/index.md new file mode 100644 index 00000000000..4234aaba88c --- /dev/null +++ b/public/content/translations/pl/staking/pools/index.md @@ -0,0 +1,85 @@ +--- +title: Staking łączony +description: Przegląd tego, jak rozpocząć korzystanie ze stakowania ETH w puli +lang: pl +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-pool.png +alt: Nosorożec Leslie pływający w basenie. +sidebarDepth: 2 +summaryPoints: + - Stakuj i zdobywaj nagrody z dowolną ilością ETH, łącząc siły z innymi + - Pomiń trudną część i powierz operacje walidatora osobie trzeciej + - Przechowuj tokeny stakingu we własnym portfelu +--- + +## Czym jest stakowanie w puli? {#what-are-staking-pools} + +Stakowanie w puli to podejście oparte na współpracy, które pozwala wielu osobom posiadającym mniejsze ilości ETH uzyskać 32 ETH wymagane do aktywacji zestawu kluczy walidatora. Funkcja poolingu (w puli) nie jest natywnie obsługiwana w ramach protokołu, więc rozwiązania zostały stworzone osobno, aby zaspokoić tę potrzebę. + +Niektóre pule działają w oparciu o inteligentne kontrakty, w których środki można zdeponować do kontraktu, który bez zaufania zarządza i śledzi udziały użytkownika oraz wydaje token reprezentujący tę wartość. Inne pule mogą nie obejmować inteligentnych kontraktów i zamiast tego są pośredniczone poza łańcuchem. + +## Dlaczego stakować w puli? {#why-stake-with-a-pool} + +Oprócz korzyści, które opisaliśmy w naszym [wprowadzeniu do stakingu](/staking/), stakowanie w puli wiąże się z szeregiem wyraźnych korzyści. + + + + + + + + + +## Co wziąć pod uwagę {#what-to-consider} + +Stakowanie w puli lub delegowane nie jest natywnie obsługiwane przez protokół Ethereum, ale biorąc pod uwagę zapotrzebowanie użytkowników na stakowanie mniej niż 32 ETH, powstała rosnąca liczba rozwiązań, które zaspokajają to zapotrzebowanie. + +Każda pula i narzędzia lub inteligentne kontrakty, z których korzystają, zostały opracowane przez różne zespoły, a każdy z nich wiąże się z korzyściami i ryzykiem. Pule umożliwiają użytkownikom wymianę ETH na token reprezentujący zestakowane ETH. Token ten jest przydatny, ponieważ pozwala użytkownikom na zamianę dowolnej ilości ETH na równoważną ilość tokena przynoszącego zyski, który generuje zwrot z nagród za stakowanie zastosowanych do bazowego stakowanego ETH (i odwrotnie) na zdecentralizowanych giełdach, mimo że rzeczywiste ETH pozostaje stakowane w warstwie konsensusu. Oznacza to, że zamiany tam i z powrotem z przynoszącego zyski zestakowanego ETH i „surowego ETH” są szybkie, łatwe i dostępne nie tylko w wielokrotnościach 32 ETH. + +Jednak te zestakowane tokeny ETH mają tendencję do tworzenia zachowań kartelowych, w których duża ilość stakowanego ETH trafia pod kontrolę kilku scentralizowanych organizacji, zamiast rozprzestrzeniać się na wiele niezależnych osób. Stwarza to warunki do cenzury lub ekstrakcji wartości. Złotym standardem dla stakingu powinny być zawsze osoby uruchamiające walidatory na własnym sprzęcie, jeśli tylko jest to możliwe. + +[Więcej o ryzyku związanym ze stakowaniem tokenów](https://notes.ethereum.org/@djrtwo/risks-of-lsd). + +Wskaźniki atrybutów są używane poniżej, aby zasygnalizować godne uwagi mocne lub słabe strony, jakie może mieć wymieniona usługa stakowania w puli. Użyj tej sekcji jako odniesienia do sposobu definiowania tych atrybutów podczas wybierania puli, do której chcesz dołączyć. + + + +## Odkryj usługi stakowania w puli {#explore-staking-pools} + +Dostępnych jest wiele opcji ułatwiających konfigurację. Skorzystaj z powyższych wskaźników, które oprowadzą cię z poniższymi narzędziami. + + + + + +Należy pamiętać, że ważne jest, aby wybrać usługę, która poważnie traktuje [różnorodność klientów](/developers/docs/nodes-and-clients/client-diversity/), ponieważ zwiększa to bezpieczeństwo sieci i ogranicza ryzyko. Usługi, które mają dowody na ograniczanie korzystania z większości klientów, są oznaczone „różnorodność klientów wykonawczych” i „różnorodność klientów konsensusu.” + +Masz sugestię dotyczącą narzędzia do stakingu, które pominęliśmy? Zapoznaj się z naszymi [zasadami umieszczania produktów na liście](/contributing/adding-staking-products/), aby sprawdzić, czy są one odpowiednie i przesłać je do recenzji. + +## Często zadawane pytania {#faq} + + +Zazwyczaj tokeny stakingu ERC-20 są wydawane stakerom, które reprezentują wartość zestakowanego przez nich ETH plus nagrody. Należy pamiętać, że różne pule będą dystrybuować nagrody ze stakowania do swoich użytkowników za pomocą nieco innych metod, ale jest to częste. + + + +Już teraz! Aktualizacja sieci Shanghai/Capella miała miejsce w kwietniu 2023 r. i wprowadziła wypłaty ze stakingu. Konta walidatorów, które wspierają stakowanie w puli mają teraz możliwość wyjścia i wypłaty ETH na wyznaczony adres wypłaty. Daje to możliwość zdobycia swojej części swojej stawki za bazowe ETH. Sprawdź u swojego dostawcy, aby sprawdzić, w jaki sposób obsługuje tę funkcję. + +Alternatywnie, pule wykorzystujące token stakingowy ERC-20 pozwalają użytkownikom handlować tym tokenem na otwartym rynku, umożliwiając sprzedaż pozycji stakingowej, skutecznie „wypłacając” bez faktycznego usuwania ETH z kontraktu stakingowego. + +Więcej o wypłatach ze stakingu + + + +Jest wiele podobieństw między tymi opcjami stakowania w puli a scentralizowanymi giełdami, takimi jak możliwość stakowania niewielkich ilości ETH i łączenia ich w celu aktywacji walidatorów. + +W przeciwieństwie do scentralizowanych giełd wiele innych opcji stakowania w puli wykorzystuje inteligentne kontrakty i/lub tokeny stakingu, które zazwyczaj są tokenami ERC-20, które można przechowywać we własnym portfelu i kupować lub sprzedawać tak jak każdy inny token. Zapewnia to warstwę niezależności i bezpieczeństwa, dając ci kontrolę nad tokenami, ale nadal nie daje ci bezpośredniej kontroli nad klientem walidatora poświadczającym w twoim imieniu w tle. + +Niektóre opcje puli są bardziej zdecentralizowane niż inne, jeśli chodzi o węzły, które je obsługują. Aby promować zdrowie i decentralizację sieci, stakerzy są zawsze zachęcani do wyboru usługi w puli, która umożliwia zdecentralizowany zestaw operatorów węzłów bez zezwoleń. + + +## Dodatkowo przeczytaj {#further-reading} + +- [Staking z Rocket Pool - Przegląd stakingu](https://docs.rocketpool.net/guides/staking/overview.html) — _Dokumenty RocketPool_ +- [Staking Ethereum z Lido](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) — _dokumenty pomocy Lido_ diff --git a/public/content/translations/pl/staking/saas/index.md b/public/content/translations/pl/staking/saas/index.md new file mode 100644 index 00000000000..8203a0bb034 --- /dev/null +++ b/public/content/translations/pl/staking/saas/index.md @@ -0,0 +1,94 @@ +--- +title: Usługi stakingowe +description: Przegląd tego, jak rozpocząć korzystanie ze stakowania ETH w puli +lang: pl +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-saas.png +alt: Nosorożec Leslie unoszący się w chmurach. +sidebarDepth: 2 +summaryPoints: + - Działanie Twojego walidatora zapewniają zewnętrzni operatorzy węzłów + - Świetna opcja dla każdego, kto ma 32 ETH i nie czuje się komfortowo mając do czynienia z techniczną złożonością uruchamiania węzła + - Zredukuj zakres koniecznego zaufania i zachowaj kontrolę nad swoimi kluczami +--- + +## Czym są usługi stakingowe? {#what-is-staking-as-a-service} + +Usługi stakingowe („SaaS”) reprezentują kategorię usług stakingowych, w których użytkownik deponuje własne 32 ETH dla walidatora, ale deleguje operacje węzła do zewnętrznego operatora. Proces ten zwykle wymaga bycia przeprowadzonym przez początkową konfigurację, w tym generowanie kluczy i depozyt, a następnie przesłanie kluczy podpisujących do operatora. Dzięki temu usługa może obsługiwać Twój walidator w Twoim imieniu, zwykle za miesięczną opłatą. + +## Dlaczego warto postawić na usługę? {#why-stake-with-a-service} + +Protokół Ethereum nie wspiera natywnie delegowania stawek, więc stworzone zostały te usługi, aby zaspokoić zapotrzebowanie. Jeśli masz dostępne na poczet stakingu 32 ETH, ale nie czujesz się komfortowo z obsługą sprzętu, usługi SaaS pozwalają Ci na zdelegowanie tych czynności, podczas gdy Ty nadal możesz uzyskiwać natywne nagrody za blok. + + + + + + + + + +## Co wziąć pod uwagę {#what-to-consider} + +Powstaje coraz więcej dostawców SaaS, którzy pomogą Ci stakować Twoje ETH, ale każdy z nich ma swoje własne korzyści i ryzyka. Wszystkie opcje SaaS wymagają dodatkowych założeń dotyczących zaufania w porównaniu do domowego stakingu. Opcje SaaS mogą zawierać dodatkowy kod opakowujący klienta Ethereum, który nie będzie otwarty lub skontrolowany. SaaS ma również niekorzystny wpływ na decentralizację sieci. W zależności od konfiguracji możesz nie mieć możliwości kontrolowania swojego walidatora — operator może działać nieuczciwie, używając twojego ETH. + +Wskaźniki atrybutów są użyte poniżej, aby zasygnalizować godne uwagi mocne lub słabe strony, jakie może mieć wymieniony dostawca SaaS. Użyj tej sekcji jako odniesienia do sposobu definiowania tych atrybutów podczas wybierania usługi, która pomoże Ci w Twojej przygodzie ze stakingiem. + + + +## Poznaj dostawców usług stakingowych {#saas-providers} + +Poniżej znajduje się paru dostępnych dostawców SaaS. Skorzystaj z powyższych wskaźników, które oprowadzą cię z tymi usługami + + + +### Dostawcy SaaS + + + +Należy pamiętać o znaczeniu wspierania [różnorodności klientów](/developers/docs/nodes-and-clients/client-diversity/), ponieważ poprawia to bezpieczeństwo sieci i ogranicza ryzyko. Usługi, które mają dowody na ograniczanie korzystania z większości klientów, są oznaczone „różnorodność klientów wykonawczych” i „różnorodność klientów konsensusu.” + +### Generatory kluczy + + + +Masz sugestię dostawcy usług stakingowych, którego pominęliśmy? Zapoznaj się z naszymi [zasadami umieszczania produktów na liście](/contributing/adding-staking-products/), aby sprawdzić, czy są one odpowiednie i przesłać je do recenzji. + +## Często zadawane pytania {#faq} + + +Rozwiązania będą się różnić w zależności od dostawcy, ale zazwyczaj zostaniesz poprowadzony przez konfigurację wszystkich potrzebnych kluczy podpisywania (jeden na 32 ETH) i przesłanie ich do dostawcy, aby umożliwić mu walidację w Twoim imieniu. Same klucze podpisywania nie dają żadnej możliwości wypłaty, transferu ani wydawania środków. Zapewniają jednak możliwość oddawania głosów w celu osiągnięcia konsensusu, co w przypadku niewłaściwego wykonania może skutkować karami offline lub cięciem. + + + +Tak. Każde konto składa się zarówno z kluczy podpisujących BLS, jak i kluczy wypłat BLS. Aby walidator mógł poświadczyć stan łańcucha, uczestniczyć w komitetach synchronizacji i proponować bloki, klucze podpisujące muszą być łatwo dostępne dla klienta walidatora. Muszą one być połączone z Internetem w jakiś sposób, a zatem są z natury uważane za klucze „gorące”. Jest to wymagane, aby walidator mógł poświadczyć, a zatem klucze używane do przesyłania lub wypłacania środków są oddzielone ze względów bezpieczeństwa. + +Klucze wypłaty BLS są używane do podpisywania jednorazowej wiadomości, która deklaruje, na które konto warstwy wykonawczej powinny trafić nagrody za stakowanie i wycofane środki. Po nadaniu tej wiadomości klucze wypłat BLS nie są już potrzebne. Zamiast tego kontrola nad wypłaconymi środkami jest na stałe przekazywana na podany adres. Umożliwia to ustawienie adresu wypłaty zabezpieczonego za pomocą własnych zimnych danych, minimalizując ryzyko środków walidatora, nawet jeśli ktoś inny kontroluje klucze podpisywania walidatora. + +Aktualizowanie danych uwierzytelniających wypłaty jest wymagane, aby umożliwić wypłaty\*. Proces ten obejmuje generowanie kluczy wypłat przy użyciu mnemonicznej frazy odzyskiwania. + +Upewnij się, że bezpiecznie zapisałeś tę frazę odzyskiwania, w przeciwnym razie nie będziesz w stanie wygenerować kluczy wypłaty, gdy nadejdzie czas. + +\*Stakerzy, którzy podali adres wypłaty przy pierwszej wpłacie, nie muszą tego ustawiać. Skontaktuj się ze swoim dostawcą SaaS, aby uzyskać pomoc dotyczącą przygotowania walidatora. + + + +W kwietniu 2023 r. w ramach aktualizacji Shanghai/Capella wprowadzono wypłaty ze stakingu. Stakerzy muszą podać adres do wypłaty (jeśli nie podano go przy pierwszej wpłacie), a wypłaty nagród zaczną być wypłacane automatycznie co kilka dni. + +Walidatorzy mogą również w pełni wyjść jako walidator, co odblokuje ich pozostałe saldo ETH do wypłaty. Konta, które podały adres wypłaty i zakończyły proces wyjścia, otrzymają całe saldo na adres wypłaty podany podczas następnego przeglądu walidatora. + +Więcej o wypłatach ze stakingu + + + +Korzystając z usług dostawcy SaaS, powierzasz obsługę swojego węzła komuś innemu. Wiąże się to z ryzykiem niskiej wydajności węzła, na którą nie masz wpływu. W przypadku, gdy Twój walidator zostanie odcięty, saldo walidatora zostanie ukarane i przymusowo usunięte z puli walidatorów. + +Po zakończeniu procesu cięcia/wyjścia środki te zostaną przelane na adres wypłaty przypisany do walidatora. Wymaga to podania adresu wypłaty w celu włączenia. Mogło to zostać dostarczone przy pierwszej wpłacie. Jeśli nie, klucze wypłaty walidatora będą musiały zostać użyte do podpisania wiadomości deklarującej adres wypłaty. Jeśli nie podano adresu wypłaty, środki pozostaną zablokowane do czasu jego podania. + +Skontaktuj się z indywidualnym dostawcą SaaS, aby uzyskać więcej informacji na temat wszelkich gwarancji lub opcji ubezpieczenia, a także instrukcjami dotyczącymi sposobu podania adresu wypłaty. Jeśli wolisz mieć pełną kontrolę nad konfiguracją walidatora, dowiedz się więcej o solo stakingu ETH. + + +## Dodatkowo przeczytaj {#further-reading} + +- [Ocena usług stakingu](https://www.attestant.io/posts/evaluating-staking-services/) — _Jim McDonald 2020 r._ diff --git a/public/content/translations/pl/staking/solo/index.md b/public/content/translations/pl/staking/solo/index.md new file mode 100644 index 00000000000..811d8a2116f --- /dev/null +++ b/public/content/translations/pl/staking/solo/index.md @@ -0,0 +1,203 @@ +--- +title: Stakuj solo swoje ETH +description: Przegląd tego, jak rozpocząć samodzielne stakowanie ETH +lang: pl +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-solo.png +alt: Nosorożec Leslie na własnym chipie komputerowym. +sidebarDepth: 2 +summaryPoints: + - Otrzymuj maksymalne nagrody bezpośrednio z protokołu za utrzymywanie prawidłowego działania walidatora w trybie online + - Uruchamiaj sprzęt domowy i osobiście zwiększaj bezpieczeństwo i decentralizację sieci Ethereum + - Wyeliminuj potrzebę zaufania i nigdy nie rezygnuj z kontroli nad kluczami do swoich funduszy +--- + +## Czym jest solo staking? {#what-is-solo-staking} + +Solo staking polega na [uruchomieniu węzła Ethereum](/run-a-node/) podłączonego do Internetu i zdeponowaniu 32 ETH w celu aktywacji [walidatora](#faq), co daje możliwość bezpośredniego uczestniczenia w konsensusie sieci. + +**Solo staking zwiększa decentralizację sieci Ethereum**, dzięki czemu Ethereum jest bardziej odporne na cenzurę i ataki. Inne metody stakowania mogą nie pomóc sieci w ten sam sposób. Solo staking jest najlepszą opcją stakingu do zabezpieczania Ethereum. + +Węzeł Ethereum składa się zarówno z klienta warstwy wykonawczej (EL), jak i klienta warstwy konsensusu (CL). Ci klienci są oprogramowaniem, które współpracuje, wraz z prawidłowym zestawem kluczy podpisujących, w celu weryfikacji transakcji i bloków, poświadczania prawidłowej pozycji łańcucha, agregowania poświadczeń i proponowania bloków. + +Solo stakerzy są odpowiedzialni za obsługę sprzętu potrzebnego do uruchomienia tych klientów. Zaleca się używanie do tego celu dedykowanej maszyny obsługiwanej z domu — jest to niezwykle korzystne dla zdrowia sieci. + +Solo staker otrzymuje nagrody bezpośrednio z protokołu za utrzymywanie swojego walidatora prawidłowo działającego i online. + +## Dlaczego stakować solo? {#why-stake-solo} + +Staking solo wiąże się z większą odpowiedzialnością, ale zapewnia maksymalną kontrolę nad środkami i konfiguracją stakingu. + + + + + + + +## Rozważania przed solo stakingiem {#considerations-before-staking-solo} + +Chociaż chcielibyśmy, aby staking solo był dostępny i wolny od ryzyka dla każdego, nie jest to jednak rzeczywistością. Istnieje kilka praktycznych i poważnych kwestii, o których należy pamiętać przed podjęciem decyzji o samodzielnym stakowaniu ETH. + + + +Podczas obsługi własnego węzła należy poświęcić trochę czasu na naukę obsługi wybranego oprogramowania. Obejmuje to czytanie odpowiedniej dokumentacji i bycie na bieżąco z kanałami komunikacji tych zespołów programistów. + +Im więcej wiesz o oprogramowaniu, które uruchamiasz i jak działa dowód stawki (proof-of-stake), tym mniej ryzykowne będzie to jako staker i tym łatwiej będzie naprawić wszelkie problemy, które mogą pojawić się po drodze jako operator węzła. + + + +Konfiguracja węzła wymaga rozsądnego poziomu komfortu podczas pracy z komputerami, chociaż nowe narzędzia z czasem to ułatwiają. Zrozumienie interfejsu wiersza poleceń jest pomocne, ale nie jest już wymagane. + +Wymaga również bardzo podstawowej konfiguracji sprzętu i pewnego zrozumienia minimalnych zalecanych specyfikacji. + + + +Podobnie jak w przypadku kluczy prywatnych zabezpieczających adres Ethereum, konieczne będzie wygenerowanie kluczy specjalnie dla walidatora. Musisz wiedzieć, jak bezpiecznie przechowywać wszelkie frazy odzyskiwania lub klucze prywatne.{' '} + +Bezpieczeństwo Ethereum i zapobieganie oszustwom + + + +Sprzęt czasami zawodzi, połączenia sieciowe ulegają awarii, a oprogramowanie klienta czasami wymaga aktualizacji. Konserwacja węzła jest nieunikniona i od czasu do czasu będzie wymagać uwagi użytkownika. Musisz mieć pewność, że będziesz na bieżąco z wszelkimi przewidywanymi aktualizacjami sieci lub innymi krytycznymi aktualizacjami klienta. + + + +Nagrody są proporcjonalne do czasu, w którym walidator jest online i prawidłowo poświadcza. Przestój wiąże się z karami proporcjonalnymi do tego, ile innych walidatorów jest offline w tym samym czasie, ale nie powoduje cięcia. Przepustowość również ma znaczenie, ponieważ nagrody są zmniejszane za zaświadczenia, które nie są otrzymywane na czas. Wymagania będą się różnić, ale zalecane jest co najmniej 10 Mb/s wysyłania i pobierania. + + + +W odróżnieniu od kar za bycie offline, cięcie jest znacznie poważniejszą karą zarezerwowaną dla złośliwych wykroczeń. Uruchamiając klienta mniejszościowego z kluczami załadowanymi tylko na jednej maszynie w danym czasie, ryzyko odcięcia jest zminimalizowane. Biorąc to pod uwagę, wszyscy stakerzy muszą być świadomi ryzyka związanego z odcięciem. + +Więcej o cięciu i cyklu życia walidatora + + + + + +## Jak to działa {#how-it-works} + + + +Podczas aktywności będziesz zdobywać nagrody ETH, które będą okresowo wpłacane na Twój adres wypłaty. + +Jeśli chcesz, możesz wyjść jako walidator, co eliminuje wymóg bycia online i zatrzymuje wszelkie dalsze nagrody. Pozostałe saldo zostanie następnie wypłacone na adres wypłaty wskazany podczas konfiguracji. + +[Więcej o wypłatach ze stakingu](/staking/withdrawals/) + +## Rozpocznij na Staking Launchpad {#get-started-on-the-staking-launchpad} + +Staking Launchpad to aplikacja open source, która pomoże ci zostać stakerem. Poprowadzi cię przez wybór klientów, wygenerowanie kluczy i zdeponowanie ETH w kontrakcie depozytu na staking. Lista kontrolna jest dostęna, aby upewnić się, że wszystko zostało uwzględnione w celu bezpiecznego skonfigurowania walidatora. + + + +## Co wziąć pod uwagę w przypadku narzędzi do konfiguracji węzłów i klientów {#node-tool-considerations} + +Powstaje coraz więcej narzędzi i usług, które pomagają w samodzielnym stakowaniu ETH, ale każde z nich wiąże się z innym ryzykiem i korzyściami. + +Wskaźniki atrybutów są używane poniżej, aby zasygnalizować godne uwagi mocne lub słabe strony, jakie może mieć wymienione narzędzie do stakowania. Użyj tej sekcji jako odniesienia do sposobu definiowania tych atrybutów podczas wybierania narzędzi, które pomogą Ci w Twojej przygodzie ze stakingiem. + + + +## Poznaj narzędzia konfiguracji węzła i klienta {#node-and-client-tools} + +Dostępnych jest wiele opcji ułatwiających konfigurację. Skorzystaj z powyższych wskaźników, które oprowadzą cię z poniższymi narzędziami. + + + +### Narzędzia węzła + + + +Należy pamiętać o znaczeniu wybrania [klienta mniejszościowego](/developers/docs/nodes-and-clients/client-diversity/), ponieważ poprawia to bezpieczeństwo sieci i ogranicza ryzyko. Narzędzia, które pozwalają na konfigurację klienta mniejszościowego są oznaczone jako „multi-klient”. + +### Generatory kluczy + +Narzędzia te mogą być używane jako alternatywa dla [CLI depozytu stakingu](https://github.com/ethereum/staking-deposit-cli/), aby pomóc w generowaniu kluczy. + + + +Masz sugestię dotyczącą narzędzia do stakingu, które pominęliśmy? Zapoznaj się z naszymi [zasadami umieszczania produktów na liście](/contributing/adding-staking-products/), aby sprawdzić, czy są one odpowiednie i przesłać je do recenzji. + +## Zapoznaj się z przewodnikami solo stakingu {#staking-guides} + + + +## Często zadawane pytania {#faq} + +Oto kilka najczęściej zadawanych pytań dotyczących stakingu, o których warto wiedzieć. + + + +Walidator to wirtualny podmiot, który żyje w Ethereum i uczestniczy w konsensusie protokołu Ethereum. Walidatory są reprezentowane przez saldo, klucz publiczny i inne właściwości. Klient walidatora to oprogramowanie, które działa w imieniu walidatora, przechowując i używając jego klucza prywatnego. Pojedynczy klient walidatora może przechowywać wiele par kluczy, kontrolując wiele walidatorów. + + + + +Każda para kluczy powiązana z walidatorem wymaga dokładnie 32 ETH do aktywacji. Więcej ETH zdeponowanych w jednym zestawie kluczy nie zwiększa potencjału nagród, ponieważ każdy walidator jest ograniczony do efektywnego salda 32 ETH. Oznacza to, że staking odbywa się w przyrostach 32 ETH, każdy z własnym zestawem kluczy i saldem. + +Nie należy deponować więcej niż 32 ETH dla jednego walidatora. Nie zwiększy to twoich nagród. Jeśli dla walidatora ustawiono adres wypłaty, nadwyżka środków powyżej 32 ETH zostanie automatycznie wypłacona na ten adres podczas następnego przeniesienia walidatora. + +Jeśli solo staking wydaje ci się zbyt wymagający, rozważ skorzystanie z usług stakingowych lub jeśli masz mniej niż 32 ETH, sprawdź stakowanie w puli. + + + +Przejście w tryb offline, podczas poprawnej finalizacji sieci, NIE spowoduje odcięcia. Niewielkie kary za brak aktywności są naliczane, jeśli walidator nie jest dostępny do poświadczania w danej epoce (każda o długości 6,4 minuty), ale różni się to znacznie od cięcia. Kary te są nieco niższe niż nagroda, którą można by uzyskać, gdyby walidator był dostępny do poświadczenia, a straty można odzyskać w przybliżeniu w takim samym czasie, jak w przypadku powrotu do trybu online. + +Należy pamiętać, że kary za brak aktywności są proporcjonalne do liczby walidatorów znajdujących się w trybie offline w tym samym czasie. W przypadkach, gdy duża część sieci jest jednocześnie offline, kary dla każdego z tych walidatorów będą większe niż w przypadku niedostępności pojedynczego walidatora. + +W skrajnych przypadkach, jeśli sieć przestanie finalizować w wyniku tego, że ponad jedna trzecia walidatorów jest offline, użytkownicy ci ucierpią z powodu tak zwanego kwadratowego wycieku nieaktywności, który jest wykładniczym odpływem ETH z kont walidatorów offline. Pozwala to sieci na samoleczenie poprzez spalanie ETH nieaktywnych walidatorów, aż ich saldo osiągnie 16 ETH, w którym to momencie zostaną oni automatycznie usunięci z puli walidatorów. Pozostałe walidatory online ostatecznie ponownie obejmą ponad 2/3 sieci, spełniając większość potrzebną do ponownego sfinalizowania łańcucha. + + + +W skrócie mówiąc, nigdy nie można tego w pełni zagwarantować, ale jeśli działasz w dobrej wierze, uruchamiasz klienta mniejszościowego i przechowujesz klucze podpisujące tylko na jednym komputerze naraz, ryzyko odcięcia jest prawie zerowe. + +Istnieje tylko kilka konkretnych sposobów, które mogą spowodować, że walidator zostanie odcięty i wyrzucony z sieci. W chwili pisania tego tekstu, cięcia, które miały miejsce, były wyłącznie wynikiem zbędnych konfiguracji sprzętowych, w których klucze podpisujące były przechowywane na dwóch oddzielnych komputerach jednocześnie. Może to nieumyślnie spowodować podwójne głosowanie z Twoich kluczy, co jest wykroczeniem podlegającym odcięciu. + +Uruchomienie klienta superwiększościowego (dowolnego klienta używanego przez ponad 2/3 sieci) wiąże się również z ryzykiem potencjalnego odcięcia w przypadku, gdy klient ten ma błąd, który skutkuje rozwidleniem łańcucha. Może to skutkować błędnym forkiem, który zostanie sfinalizowany. Korekta z powrotem do zamierzonego łańcucha wymagałaby przesłania głosowania zaokrąglonego poprzez próbę cofnięcia sfinalizowanego bloku. Jest to również wykroczenie, za które można zostać odciętym, którego można uniknąć, po prostu uruchamiając klienta mniejszościowego. + +Równoważne błędy w kliencie mniejszościowym nigdy nie zostałyby sfinalizowane, a zatem nigdy nie skutkowałyby głosowaniem zaokrąglonym i po prostu skutkowałyby karami za brak aktywności, a nie cięciem. + + + + + +Poszczególne klienty mogą nieznacznie różnić się pod względem wydajności i interfejsu użytkownika, ponieważ każdy z nich jest opracowywany przez różne zespoły przy użyciu różnych języków programowania. To powiedziawszy, żaden z nich nie jest „najlepszy”. Wszyscy klienci produkcyjni są doskonałymi oprogramowaniami, które wykonuje te same podstawowe funkcje synchronizacji i interakcji z blockchainem. + +Ponieważ wszyscy klienci produkcyjni zapewniają tę samą podstawową funkcjonalność, bardzo ważne jest, aby wybrać klienta mniejszościowego, czyli dowolnego klienta, który NIE jest obecnie używany przez większość walidatorów w sieci. Może to zabrzmieć nieintuicyjnie, ale uruchomienie klienta większościowego lub superwiększościowego zwiększa ryzyko cięcia w przypadku błędu w tym kliencie. Korzystanie z klienta mniejszościowego drastycznie ogranicza to ryzyko. + +Dowiedz się więcej, dlaczego różnorodność klientów ma kluczowe znaczenie + + + +Chociaż wirtualny serwer prywatny (VPS) może być używany jako zamiennik sprzętu domowego, fizyczny dostęp i lokalizacja klienta walidatora ma znaczenie. Scentralizowane rozwiązania chmurowe, takie jak Amazon Web Services lub Digital Ocean, zapewniają wygodę polegającą na braku konieczności pozyskiwania i obsługi sprzętu kosztem centralizacji sieci. + +Im więcej klientów walidatora działa na jednym scentralizowanym rozwiązaniu pamięci w chmurze, tym bardziej niebezpieczne staje się to dla tych użytkowników. Każde zdarzenie, które spowoduje przejście w tryb offline tych dostawców, czy to przez atak, wymogi regulacyjne, czy po prostu przerwy w dostawie prądu/internetu, spowoduje, że każdy klient walidatora, który polega na tym serwerze, zostanie wyłączony w tym samym czasie. + +Kary za bycie offline są proporcjonalne do tego, ile innych osób jest offline w tym samym czasie. Korzystanie z VPS znacznie zwiększa ryzyko, że kary za bycie offline będą bardziej dotkliwe, a także zwiększa ryzyko kwadratowego wycieku lub cięcia w przypadku, gdy przerwa jest wystarczająco duża. Aby zminimalizować własne ryzyko i ryzyko dla sieci, użytkownicy są zdecydowanie zachęcani do uzyskania i obsługi własnego sprzętu. + + + + +Wypłaty wszelkiego rodzaju z łańcucha śledzącego wymagają ustawienia poświadczeń wypłaty. + +Nowi stakerzy ustawiają to w czasie generowania klucza i deponowania. Obecni stakerzy, którzy jeszcze tego nie ustawili, mogą zaktualizować swoje klucze, aby obsługiwały tę funkcję. + +Po ustawieniu poświadczeń wypłaty, płatności nagród (skumulowane ETH przez początkowe 32) będą okresowo automatycznie dystrybuowane na adres wypłaty. + +Aby odblokować i otrzymać całe saldo z powrotem, należy również zakończyć proces zamykania walidatora. + +Więcej o wypłatach ze stakingu + + +## Dalsza lektura {#further-reading} + +- [Problem różnorodności klientów Ethereum](https://hackernoon.com/ethereums-client-diversity-problem) — _@emmanuelawosika 2022 r._ +- [Wspieranie różnorodności klientów](https://www.attestant.io/posts/helping-client-diversity/) — _Jim McDonald 2022 r._ +- [Różnorodność klientów w warstwie konsensusu Ethereum](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) — _jmcook.eth 2022 r._ +- [Zakup sprzętu do walidacji Ethereum](https://www.youtube.com/watch?v=C2wwu1IlhDc) — _EthStaker 2022 r._ +- [Krok po kroku: jak dołączyć do sieci testowej Ethereum 2.0](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) — _Butta_ +- [Wskazówki dotyczące zapobieganiu cięciu Eth2](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) — _Raul Jordan 2020 r._ diff --git a/public/content/translations/pl/staking/withdrawals/index.md b/public/content/translations/pl/staking/withdrawals/index.md new file mode 100644 index 00000000000..e9f76d356ca --- /dev/null +++ b/public/content/translations/pl/staking/withdrawals/index.md @@ -0,0 +1,218 @@ +--- +title: Wypłaty ze stakingu +description: Strona podsumowująca, czym są wypłaty ze stakingu i jak działają, a także co muszą zrobić stakerzy, aby otrzymać nagrody +lang: pl +template: staking +image: /staking/leslie-withdrawal.png +alt: Nosorożec Leslie z nagrodami ze stakingu +sidebarDepth: 2 +summaryPoints: + - Aktualizacja Shanghai/Capella pozwoliła na wypłaty ze stakingu na Ethereum + - Operatorzy walidatorów muszą podać adres wypłaty, aby umożliwić + - Nagrody są przyznawane automatycznie co kilka dni + - Walidatory, które w pełni opuszczą staking, otrzymają swoje pozostałe saldo +--- + + +Wypłaty ze stakingu zostały włączone wraz z aktualizacją Shanghai/Capella, która miała miejsce 12 kwietnia 2023 r. Więcej informacji o Shanghai/Capella + + +**Wypłaty ze stakingu** odnoszą się do transferów ETH z konta walidatora w warstwie konsensusu Ethereum (łańcuch śledzący) do warstwy wykonawczej, w której można dokonywać transakcji. + +**Wypłaty nagród za nadwyżkę salda** powyżej 32 ETH będą automatycznie i regularnie wysyłane na adres wypłaty powiązany z każdym walidatorem, po podaniu go przez użytkownika. Użytkownicy mogą również **całkowicie opuścić stakowanie**, odblokowując prz tym ich pełne saldo walidatora. + +## Nagrody ze stakingu {#staking-rewards} + +Wypłaty nagród są automatycznie przetwarzane dla aktywnych kont walidatorów z maksymalnym efektywnym saldem 32 ETH. + +Każde saldo powyżej 32 ETH zarobione dzięki nagrodom w rzeczywistości nie przyczynia się do kapitału ani nie zwiększa wagi tego walidatora w sieci, a zatem jest automatycznie wypłacane jako nagroda co kilka dni. Poza jednorazowym podaniem adresu wypłaty, nagrody te nie wymagają żadnych działań ze strony operatora walidatora. Wszystko to jest inicjowane w warstwie konsensusu, więc na żadnym etapie nie jest wymagany gaz (opłata transakcyjna). + +### Jak się tutaj znaleźliśmy? {#how-did-we-get-here} + +W ciągu ostatnich kilku lat Ethereum przeszło kilka modernizacji sieci, przechodząc na sieć zabezpieczoną przez samo ETH, zamiast energochłonnego wydobycia, jak to było kiedyś. Uczestnictwo w konsensusie Ethereum jest obecnie znane jako „staking”, ponieważ uczestnicy dobrowolnie zablokowali ETH, stawiając je „na szali” w zamian za możliwość uczestnictwa w sieci. Użytkownicy, którzy przestrzegają zasad, zostaną nagrodzeni, podczas gdy próby oszukiwania mogą zostać ukarane. + +Od czasu uruchomienia kontraktu depozytowego stakingowego w listopadzie 2020 r. niektórzy odważni pionierzy Ethereum dobrowolnie zablokowali środki, aby aktywować „walidatory”, specjalne konta, które mają prawo do formalnego poświadczania i proponowania bloków, zgodnie z zasadami sieci. + +Przed aktualizacją Shanghai/Capella nie można było używać ani uzyskiwać dostępu do zestakowanego ETH. Jednakże teraz możesz zdecydować się na automatyczne otrzymywanie nagród na wybrane konto, a także możesz wypłacić zestakowane ETH, kiedy tylko chcesz. + +### Jak się przygotować? {#how-do-i-prepare} + + + +### Ważne informacje {#important-notices} + +Podanie adresu wypłaty jest wymaganym krokiem dla każdego konta walidatora, zanim będzie ono uprawnione do wypłaty ETH ze swojego salda. + + + Każde konto walidatora może mieć przypisany tylko jeden adres wypłaty, jeden raz. Po wybraniu adresu i przesłaniu go do warstwy konsensusu nie można tego cofnąć ani zmienić ponownie. Przed wysłaniem sprawdź dwukrotnie własność i poprawność podanego adresu. + + +Nie ma żadnego zagrożenia dla twoich funduszy w międzyczasie za niedostarczenie tego, zakładając, że twoja fraza mnemoniczna/odzyskiwania pozostała bezpieczna offline i nie została w żaden sposób naruszona. Brak dodania danych uwierzytelniających do wypłaty spowoduje po prostu zablokowanie ETH na koncie walidatora do czasu podania adresu do wypłaty. + +## Całkowite wyjście ze stakingu {#exiting-staking-entirely} + +Podanie adresu wypłaty jest wymagane, zanim _jakiekolwiek_ środki będą mogły zostać przelane z salda konta walidatora. + +Użytkownicy, którzy chcą całkowicie zrezygnować ze stakingu i wypłacić pełne saldo, muszą również podpisać i wysłać wiadomość o „dobrowolnym wyjściu” za pomocą kluczy walidatora, co rozpocznie proces wychodzenia ze stakingu. Odbywa się to za pomocą klienta walidatora i jest przesyłane do węzła konsensusu i nie wymaga gazu. + +Proces wychodzenia walidatora ze stakingu zajmuje różną ilość czasu, w zależności od tego, ile innych osób wychodzi w tym samym czasie. Po zakończeniu, konto to nie będzie już odpowiedzialne za wykonywanie obowiązków walidatorów sieci, nie będzie już kwalifikować się do nagród i nie będzie już mieć swojego ETH „na szali”. W tym momencie konto zostanie oznaczone jako w pełni „wypłacalne”. + +Po oznaczeniu konta jako „wypłacalne” i podaniu danych uwierzytelniających do wypłaty użytkownik nie musi nic więcej robić poza czekaniem. Konta są automatycznie i stale przenoszone przez wnioskodawców bloków pod kątem kwalifikujących się wycofanych środków, a saldo konta zostanie przelane w całości (znane również jako „pełna wypłata”) podczas następnej sesji przeniesienia. + +## Kiedy wypłaty ze stakingu są możliwe? {#when} + +Wypłaty ze stakingu są już dostępne! Funkcja wypłat została włączona w ramach aktualizacji Shanghai/Capella, która miała miejsce 12 kwietnia 2023 r. + +Aktualizacja Shanghai/Capella umożliwiła odzyskanie wcześniej zestakowanych ETH na zwykłych kontach Ethereum. Zamknęło to pętlę płynności stakingu i przybliżyło Ethereum o krok na drodze do zbudowania zrównoważonego, skalowalnego i bezpiecznego zdecentralizowanego ekosystemu. + +- [Więcej o historii Ethereum](/history/) +- [Więcej o planie działania Ethereum](/roadmap/) + +## Jak działają wypłaty środków? {#how-do-withdrawals-work} + +To, czy dany walidator kwalifikuje się do wypłaty, czy nie, zależy od stanu samego konta walidatora. Żadne dane wejściowe użytkownika nie są potrzebne w żadnym momencie, aby określić, czy konto powinno mieć zainicjowaną wypłatę, czy nie — cały proces jest wykonywany automatycznie przez warstwę konsensusu w ciągłej pętli. + +### Jesteś raczej wzrokowcem? {#visual-learner} + +Sprawdź to wyjaśnienie dotyczące wypłat ze stakingu Ethereum przez Finematics: + + + +### Walidator „przesunięcia” {#validator-sweeping} + +Gdy walidator ma zaproponować następny blok, musi utworzyć kolejkę wypłat, składającą się z maksymalnie 16 kwalifikujących się wypłat. Odbywa się to poprzez pierwotne rozpoczęcie od indeksu walidatora 0, określając, czy istnieje kwalifikująca się wypłata dla tego konta zgodnie z zasadami protokołu i dodanie jej do kolejki, jeśli tak. Walidator ustawiony na proponowanie następnego bloku będzie kontynuował w miejscu, w którym poprzedni został pozostawiony, postępując w kolejności w nieskończoność. + + +Pomyśl o zegarku analogowym. Wskazówka na zegarze wskazuje godzinę, przesuwa się w jednym kierunku, nie pomija żadnych godzin i ostatecznie zawija się do początku po osiągnięciu ostatniej liczby.

+Teraz zamiast od 1 do 12, wyobraź sobie, że zegar ma od 0 do N (całkowita liczba kont walidatorów, które kiedykolwiek zostały zarejestrowane w warstwie konsensusu, ponad 500 000 — stan na styczeń 2023 r.).

+Wskazówka na zegarze wskazuje następny walidator, który należy sprawdzić pod kątem kwalifikujących się wypłat. Zaczyna od 0 i postępuje dookoła, nie pomijając żadnego konta. Po osiągnięciu ostatniego walidatora cykl jest kontynuowany od początku. +
+ +#### Sprawdzanie konta pod kątem wypłat {#checking-an-account-for-withdrawals} + +Podczas gdy wnioskodawca przegląda walidatory pod kątem możliwych wypłat, każdy sprawdzany walidator jest oceniany pod kątem krótkiej serii pytań w celu ustalenia, czy należy uruchomić wypłatę, a jeśli tak, to ile ETH należy wypłacić. + +1. **Czy został podany adres do wypłaty?** Jeśli nie podano adresu do wypłaty, konto zostanie pominięte i wypłata nie zostanie zainicjowana. +2. **Czy walidator wyszedł i jest wypłacalny?** Jeśli walidator całkowicie wyszedł, a my osiągnęliśmy epokę, w której jego konto jest uważane za „wypłacalne”, wówczas zostanie przetworzona pełna wypłata. Spowoduje to przeniesienie całego pozostałego salda na adres wypłaty. +3. **Czy efektywne saldo wynosi maksymalnie 32?** Jeśli konto ma dane uwierzytelniające do wypłaty, nie opuściło w pełni i ma oczekujące nagrody powyżej 32, zostanie przetworzona częściowa wypłata, która przeleje tylko nagrody powyżej 32 na adres wypłaty użytkownika. + +Istnieją tylko dwa działania podejmowane przez operatorów walidatorów w trakcie cyklu życia walidatora, które bezpośrednio wpływają na ten przepływ: + +- Podanie danych uwierzytelniających do wypłaty, aby umożliwić dowolną formę wypłaty +- Wyjście z sieci, które spowoduje całkowitą wypłatę + +### Bez gazu {#gas-free} + +Takie podejście do wypłat ze stakingu pozwala uniknąć konieczności ręcznego przesyłania transakcji z żądaniem wypłaty określonej kwoty ETH. Oznacza to, że **nie jest wymagany gaz (opłata transakcyjna)**, a wypłaty również nie konkurują o istniejącą przestrzeń blokową warstwy wykonawczej. + +### Jak często będę otrzymywać nagrody ze stakingu? {#how-soon} + +W jednym bloku może zostać przetworzonych maksymalnie 16 wypłat. W tym tempie można przetworzyć 115200 wypłat z walidatora dziennie (zakładając, że nie zostaną pominięte żadne sloty). Jak wspomniano powyżej, walidatory bez kwalifikujących się wypłat zostaną pominięte, skracając czas do zakończenia przesunięcia. + +Rozszerzając te obliczenia, możemy oszacować czas potrzebny na przetworzenie danej liczby wypłat: + + + +| Liczba wypłat | Czas realizacji | +| :-----------: | :-------------: | +| 400,000 | 3,5 dnia | +| 500,000 | 4,3 dnia | +| 600,000 | 5,2 dnia | +| 700,000 | 6,1 dnia | +| 800,000 | 7,0 dni | + + + +Jak widać, spowalnia to wraz ze wzrostem liczby walidatorów w sieci. Wzrost liczby pominiętych slotów może proporcjonalnie spowolnić ten proces, ale generalnie będzie to wolniejsza strona możliwych wyników. + +## Najczęściej zadawane pytania (FAQ) {#faq} + + +Nie, proces dostarczania danych uwierzytelniających do wypłaty jest jednorazowy i nie można go zmienić po przesłaniu. + + + +Ustawiając adres wypłat warstwy wykonawczej, dane uwierzytelniające wypłat dla tego walidatora zostały trwale zmienione. Oznacza to, że stare poświadczenia nie będą już działać, a nowe poświadczenia będą kierować do konta warstwy wykonawczej. + +Adresy wypłat mogą być albo inteligentnym kontraktem (kontrolowanym przez jego kod), albo zewnętrznym kontem (EOA, kontrolowanym przez jego klucz prywatny). Obecnie konta te nie mają sposobu na przekazanie wiadomości z powrotem do warstwy konsensusu, która sygnalizowałaby zmianę poświadczeń walidatora, a dodanie tej funkcji dodałoby niepotrzebnej złożoności protokołu. + +Jako alternatywę dla zmiany adresu wypłaty dla konkretnego walidatora, użytkownicy mogą zdecydować się na ustawienie inteligentnego kontraktu jako adresu wypłaty, który może obsługiwać obroty klucza, tak jak sejf. Użytkownicy, którzy ustawili swoje środki na własne EOA, mogą wykonać pełne wyjście, aby wypłacić wszystkie zestakowane środki, a następnie ponownie zestakować je przy użyciu nowych danych uwierzytelniających. + + + + +Jeśli jesteś częścią puli stakingowej lub posiadasz tokeny stakingowe, powinieneś skontaktować się ze swoim dostawcą, aby uzyskać więcej informacji na temat sposobu obsługi wypłat ze stakingu, ponieważ każda usługa działa inaczej. + +Ogólnie rzecz biorąc, użytkownicy powinni mieć możliwość odzyskania swoich bazowych stakowanych ETH lub zmiany dostawcy stakingu, z którego korzystają. Jeśli dana pula staje się zbyt duża, środki mogą zostać wycofane, wypłacone i ponownie zestakowane u mniejszego dostawcy. Lub, jeśli zgromadziłeś wystarczającą ilość ETH, możesz stakować z domu. + + + + +Tak, o ile weryfikator podał adres do wypłaty. Należy to podać raz, aby początkowo umożliwić jakiekolwiek wypłaty, a następnie wypłaty nagród będą automatycznie wykonywane co kilka dni przy każdym przesunięciu walidatora. + + + + +Nie, jeśli Twój walidator jest nadal aktywny w sieci, pełna wypłata nie nastąpi automatycznie. Wymaga to ręcznego zainicjowania dobrowolnego wyjścia. + +Gdy walidator zakończy proces wychodzenia i zakładając, że konto ma dane uwierzytelniające do wypłaty, wtedy pozostanie wypłacone pozostałe saldo podczas następnego przesunięcia walidatora. + + + + +Wypłaty są zaprojektowane tak, aby były realizowane automatycznie, przenosząc wszelkie ETH, które nie wnoszą aktywnego wkładu do stawki. Obejmuje to pełne salda dla kont, które zakończyły proces wyjścia. + +Nie jest możliwe ręczne żądanie wypłaty określonych kwot ETH. + + + + +Operatorom walidatorów zaleca się odwiedzenie strony wypłaty Staking Launchpad, gdzie można znaleźć więcej szczegółów na temat przygotowania walidatora do wypłat. przygotowane, czas zdarzeń i więcej szczegółów na temat funkcjonowania wypłat. + +Aby najpierw wypróbować swoją konfigurację w sieci testowej, odwiedź Goerli Testnet Staking Launchpad, aby rozpocząć. + + + + +Nie. Po wyjściu walidatora i wypłaceniu jego pełnego salda wszelkie dodatkowe środki wpłacone na jego rzecz zostaną automatycznie przesłane na adres wypłat środków podczas następnego przesunięcia walidatorów. Aby ponownie zestakować ETH, należy aktywować nowy walidator. + + +## Dalsza lektura {#further-reading} + +- [Wypłaty Staking Launchpad](https://launchpad.ethereum.org/withdrawals) +- [EIP-4895: Wypłaty z łańcucha śledzącego jako operacje](https://eips.ethereum.org/EIPS/eip-4895) +- [Ethereum Cat Herders — Szanghaj](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) +- [PEEPanEIP #94: Wypłata zestakowanego ETH (testowanie) z Potuz & Hsiao-Wei Wang](https://www.youtube.com/watch?v=G8UstwmGtyE) +- [PEEPanEIP#68: EIP-4895: Łańcuch śledzący wywiera wypłaty jako operacje z Alexem Stokesem](https://www.youtube.com/watch?v=CcL9RJBljUs) +- [Zrozumienie efektywnego bilansu walidatora](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/pl/web3/index.md b/public/content/translations/pl/web3/index.md similarity index 100% rename from src/content/translations/pl/web3/index.md rename to public/content/translations/pl/web3/index.md diff --git a/public/content/translations/pl/whitepaper/index.md b/public/content/translations/pl/whitepaper/index.md new file mode 100644 index 00000000000..576deb422b3 --- /dev/null +++ b/public/content/translations/pl/whitepaper/index.md @@ -0,0 +1,501 @@ +--- +title: Biała księga Ethereum +description: Dokument wprowadzający do Ethereum, opublikowany w 2013 r. przed jego uruchomieniem. +lang: pl +sidebarDepth: 2 +--- + +# Biała księga Ethereum {#ethereum-whitepaper} + +_Ten dokument wprowadzający został pierwotnie opublikowany w 2013 r. przez Vitalika Buterina, założyciela [Ethereum](/what-is-ethereum/), przed uruchomieniem projektu w 2015 r. Warto zauważyć, że Ethereum, podobnie jak wiele projektów oprogramowania opartych na społecznościach, rozwija się od czasu jego początkowego powstania._ + +_Przez okres kilkunastu lat, utrzymujemy ten dokument, ponieważ nadal służy on jako użyteczny punkt odniesienia i dokładna reprezentacja Ethereum i jego wizji. Aby dowiedzieć się o najnowszych zmianach w Ethereum i jak wprowadzone są zmiany w protokole, zalecamy [ten przewodnik](/learn/)._ + +## Inteligentny kontrakt nowej generacji i zdecentralizowana platforma aplikacji {#a-next-generation-smart-contract-and-decentralized-application-platform} + +Rozwój Bitcoina przez Satoshi Nakamoto w 2009 roku był często chwalony jako radykalny rozwój pieniądza i waluty, będący pierwszym przykładem zasobu cyfrowego, który jednocześnie nie ma wsparcia lub [wartości](http://bitcoinmagazine.com/8640/an-exploration-of-intrinsic-value-what-it-is-why-bitcoin-doesnt-have-it-and-why-bitcoin-does-have-it/) i brak scentralizowanego emitenta lub kontrolera. Jednak kolejna - prawdopodobnie ważniejsza - część eksperymentu Bitcoin to podstawowa technologia blockchain jako narzędzie rozproszonego konsensusu i uwaga szybko zaczyna się przechodzić na ten inny aspekt Bitcoina. Często cytowane alternatywne zastosowania technologii blockchain obejmują użycie zasobów cyfrowych w blockchain do reprezentowania niestandardowych walut oraz instrumentów finansowych ([kolorowych monet](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit)), własność podstawowego urządzenia fizycznego ([smart property](https://en.bitcoin.it/wiki/Smart_Property)), aktywów niezamiennych takich jak nazwy domen ([Namecoin](http://namecoin.org)), dodatkowo jako bardziej złożone aplikacje polegające na tym, że aktywa cyfrowe są kontrolowane bezpośrednio przez element kodu, wdrażający arbitralne reguły ([inteligentnych kontraktów](http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/idea.html)) lub nawet blockchain [zdecentralizowanych autonomicznych organizacji](http://bitcoinmagazine.com/7050/bootstrapping-a-decentralized-autonomous-corporation-part-i/) (DAO). To, co zamierza zapewnić Ethereum, to blockchain z wbudowanym w pełni rozwiniętym językiem programowania Turinga, którego można użyć, by tworzyć „kontrakty”, które mogą być użyte do zakodowania dowolnej zmiany stanu funkcji, pozwalającej użytkownikom na tworzenie dowolnych z opisanych powyżej systemów, a także wiele innych, których jeszcze nie wyobrażaliśmy sobie, po prostu pisząc logikę w kilku linijkach kodu. + +## Wprowadzenie do Bitcoina i istniejących koncepcji {#introduction-to-bitcoin-and-existing-concepts} + +### Historia {#history} + +Koncepcja zdecentralizowanej waluty cyfrowej, a także alternatywnych aplikacji, takich jak rejestry nieruchomości, istnieje od dziesięcioleci. Anonimowe protokoły e-gotówki z lat 80. i 90., oparte głównie na prymitywie kryptografii znanym jako oślepienie Chaumiana, głównym założeniem było że będzie to waluta o wysokim stopniu prywatności, ale protokoły w dużej mierze zawiodły. zyskały przyczepność ze względu na ich zależność od scentralizowanego pośrednika. W 1998 r. Wei Dai's [b-money](http://www.weidai.com/bmoney.txt) stał się pierwszą propozycją wprowadzenia pomysłu tworzenia pieniędzy poprzez rozwiązywanie zadań obliczeniowych oraz zdecentralizowanego konsensusu, jednak wniosek nie zawierał szczegółowych informacji na temat tego, w jaki sposób zdecentralizowany konsensus mógłby zostać faktycznie wdrożony. W 2005 roku Hal Finney wprowadził koncepcję [nadającego się do wielokrotnego użytku dowody pracy](http://nakamotoinstitute.org/finney/rpow/), system który wykorzystuje pomysły z b-money wraz z obliczeniami Adama Backa trudne zagadki Hashcash do stworzenia koncepcji kryptowaluty, ale po raz kolejny nie spełnił ideału, opierając się na zaufanych komputerach jako zaplecza. W 2009 r. zdecentralizowana waluta została po raz pierwszy wdrożona w praktyce przez Satoshi Nakamoto, połączenie ustanowionych prymitywów do zarządzania własnością za pomocą kryptografii klucza publicznego z algorytmem konsensusu do śledzenia tego, kto jest właścicielem monet, znany jako „dowód pracy”. + +Mechanizm dowodu pracy był przełomem w przestrzeni ponieważ jednocześnie rozwiązał dwa problemy. Po pierwsze, zapewnił prosty i umiarkowanie skuteczny algorytm konsensusu, umożliwiający węzłom w sieci do wspólnego uzgodnienia zestawu kanonicznych aktualizacji do to stanu księgi Bitcoin. Po drugie, zapewnił mechanizm pozwalający na swobodne wejście do procesu konsensusu, rozwiązanie politycznego problemu decydowania o tym, kto ma wpływ na konsensus, przy czym jednocześnie zapobiega atakom sybili. Czyni to, zastępując formalną barierę dla uczestnictwa, np. wymóg rejestracji jako niepowtarzalny podmiot w określonym wykazie, z ekonomiczną barierą - waga pojedynczego węzła w procesie głosowania konsensualnego jest wprost proporcjonalna do mocy obliczeniowej, którą tworzy węzeł. Od tamego czasu zaproponowano alternatywne podejście zwane _dowodem stawki_, obliczanie wagi węzła jako proporcjonalnej do jego waluty i zasobów obliczeniowych; dyskusja nad względnymi zaletami tych dwóch podejść wykracza poza zakres niniejszego dokumentu, ale należy zauważyć, że oba podejścia mogą służyć jako szkielet kryptowaluty. + +Oto wpis na blogu od Vitalika Buterina, założyciela Ethereum, na temat [prehistorii Ethereum](https://vitalik.ca/general/2017/09/14/prehistory.html). [Tutaj](https://blog.ethereum.org/2016/02/09/cut-and-try-building-a-dream/) jest kolejny post przedstawiający więcej informacji o historii. + +### Bitcoin jako system przejścia między stanami {#bitcoin-as-a-state-transition-system} + +![Zmiana stanu Ethereum](./ethereum-state-transition.png) + +Z technicznego punktu widzenia księga kryptowalut takich jak Bitcoin może być uważana za system transformacji stanu, gdzie jest "stan" składający się ze statusu własności wszystkich istniejących bitcoinów i "funkcja transformacji stanu", która przyjmuje stan i transakcję oraz wygeneruje nowy stan, który jest rezultatem. Przykładowo w standardowym systemie bankowym stan jest bilansem, transakcja jest prośbą o przeniesienie $X z A do B, a funkcja przejścia stanu zmniejsza wartość na koncie A o $X i zwiększa wartość na koncie B o $X. Jeśli konto A ma w pierwszej kolejności mniej niż X Usd, to stan funkcja przejścia zwraca błąd. Można zatem formalnie zdefiniować: + + ZASTOSUJ(S,TX) —>> S' lub BŁĄD + +W systemie bankowym zdefiniowanym powyżej: + + Zastosuj ({ Alice: $50, Bob: $50 },"wyślij $20 z Alice do Bob") = { Alice: $30, Bob: $70 } + +Ale: + + ZASTOSUJ({ Alice: $50, Bob: $50 }:,"wyślij 70 USD od Alicji do Roberta") = BŁĄD + +"Stan" w Bitcoinach to kolekcja wszystkich monet (technicznie, "niewykorzystane wyniki transakcji" lub UTXO, które zostały wydobyte i jeszcze nie zostały wydane, z każdym UTXO o nazwie i właścicielu (określonym przez 20-bajtowy adres, który zasadniczo jest publicznym kluczem kryptograficznym[fn. 1](#notes)). Transakcja zawiera jedno lub więcej danych wejściowych, przy każdym wejściu zawierającym odniesienie do istniejącego UTXO i podpisu kryptograficznego wygenerowanego przez prywatny klucz powiązany z adresem właściciela, i jedno lub więcej wyjść z każdym wyjściem zawierającym nowe UTXO dodawane do stanu. + +Funkcja przejścia stanu `APPLY(S,TX) -> S'` może być zdefiniowana w przybliżeniu w następujący sposób: + +1. Dla każdego wejścia w `TX`: + + - Jeśli odniesienie UTXO nie jest w `S`, zwraca błąd. + - Jeśli podany podpis nie pasuje do właściciela UTXO, zwraca błąd. + +2. Jeśli suma nominałów wszystkich wejściowych UTXO jest mniejsza niż suma nominałów wszystkich wyjściowych UTXO, zwraca błąd. +3. Zwraca `S'` z usuniętymi wszystkimi wprowadzonymi wartościami UTXO i wszystkimi dodanymi wartościami UTXO. + +Pierwsza połowa pierwszego kroku uniemożliwia nadawcom transakcji wydawanie monet, które nie istnieją, druga połowa pierwszego kroku uniemożliwia nadawcom transakcji wydawanie monet innych ludzi, a drugi wymusza zachowanie wartości. Aby użyć tego do płatności, protokół jest następujący. Załóżmy, że Alice chce wysłać 11,7 BTC do pracy. Najpierw Alice będzie szukać zestawu dostępnych UTXO które posiada w sumie do co najmniej 11.7 BTC. Realistycznie rzecz biorąc, Alice nie będzie w stanie uzyskać dokładnie 11,7 BTC; powiedzmy, że najmniejsza z nich to 6+4+2=12. Następnie tworzy transakcję z tymi trzema wejściami i dwoma wyjściami. Pierwsze wejście będzie miało wartość 11.7 BTC z adresem Boba jako jego właścicielem, a drugie będzie wartością 0. BTC "change",, a właścicielem jest Alice. + +### Wydobycie {#mining} + +![Bloki Ethereum](./ethereum-blocks.png) + +Gdybyśmy mieli dostęp do godnej zaufania usługi scentralizowanej, ten system byłby błahy do wdrożenia; można je po prostu zakodować dokładnie tak, jak to opisano, za pomocą scentralizowanego dysku twardy serwera, aby śledzić stan serwera. Jednak za pomocą Bitcoina próbujemy zbudować zdecentralizowaną walutę systemu, więc będziemy musieli połączyć system przejścia stanów z system konsensusu w celu zapewnienia, że ​​wszyscy zgadzają się na kolejność transakcji. Zdecentralizowany proces konsensusu Bitcoina wymaga węzłów w sieci, aby nieustannie próbować tworzyć pakiety transakcji zwanych "blokami". Sieć ma produkować z grubsza jeden blok co dziesięć minut, z każdym blokiem zawierającym znacznik czasu, a nonce, odwołanie do (tj. hash of) poprzedniego bloku i lista wszystkich transakcji, które miały miejsce od poprzedniego bloku. Z czasem tworzy to trwały, ciągle rozwijający się "blockchain", który stale aktualizuje, aby reprezentować najnowszy stan księgi Bitcoin. + +Algorytm sprawdzający, czy blok jest prawidłowy, wyrażony w tym paradygmatze, jest następujący: + +1. Sprawdź, czy poprzedni blok odwołany przez blok istnieje i jest ważny. +2. Sprawdź, czy znacznik czasu bloku jest większy niż w poprzednim bloku[fn. 2](#notes) i niecałe 2 godziny w przyszłość +3. Sprawdź, czy dowód pracy na bloku jest ważny. +4. Niech `S[0]` będzie stanem na końcu poprzedniego bloku. +5. Załóżmy, że `TX` jest listą transakcji z `n` transakcji. Za wszystkie `i` w `0... -1`, ustaw `S[i+1] = APPLY(S[i], X[i])` Jeśli jakakolwiek aplikacja zwróci błąd, wyjdź i zwróć fałsz. +6. Zwróć true i zarejestruj `S[n]` jako stan na końcu tego bloku. + +Zasadniczo, każda transakcja w bloku musi zapewniać prawidłowy stan przejścia od stanu kanonicznego przed wykonaniem transakcji do nowego stanu. Należy zauważyć, że stan nie jest zakodowany w bloku. jest to wyłącznie abstrakcja, która ma być zapamiętana przez węzeł walidacyjny i może być (bezpiecznie) obliczona tylko dla każdego bloku przez zaczynając od stanu genezy i sekwencyjnie stosując każdą transakcję w każdym bloku. Ponadto należy zwrócić uwagę, że kolejność, w której górnik zawiera transakcje w bloku ma znaczenie; jeżeli w bloku są dwie transakcje A i B takie, że B wydaje UTXO stworzone przez A, wtedy blok będzie prawidłowy, jeśli A pojawi się przed B, ale nie w przeciwnym wypadku. + +Jednym z warunków ważności obecnych na powyższej liście, który nie jest znaleziony w innych systemach, jest wymóg „dowodu pracy”. Dokładny warunek polega na tym, że podwójny skrót SHA256 każdego bloku, traktowany jako liczba 256-bitowa, musi być mniejsza niż dynamicznie dostosowany cel, który od czasu pisania wynosi około 2187. Ma to na celu spowodowanie tworzenia bloków w sposób obliczeniowy "utwardzony", uniemożliwiając tym samym atakującym sybil retworzenie całego łańcucha bloków na ich korzyść. Ponieważ SHA256 jest zaprojektowany jako funkcja całkowicie nieprzewidywalna, jedynym sposobem na stworzenie poprawnego bloku jest po prostu próba i błąd, wielokrotne zwiększanie liczby nonce i patrząc, czy nowy skrót pasuje. + +Przy obecnym celu \~2187 sieć musi wykonać średnia z \~269 prób przed znalezieniem prawidłowego bloku; w ogólnie, cel jest rekalibrowany przez sieć co 2016 bloki, więc że średnio nowy blok jest tworzony przez jakiś węzeł w sieci co dziesięć minut. Aby zrekompensować górnikom to obliczenie pracy, górnik każdego bloku ma prawo do zawarcia transakcji dając sobie 12,5 BTC znikąd. Dodatkowo, jeśli jakakolwiek transakcja ma wyższy nominał całkowity na wejściu niż na wyjściach, różnica trafia również do górnika jako „opłata transakcyjna”. Nawiasem mówiąc, jest to jedyny mechanizm, za pomocą którego BTC są emitowane; stan genetyczny nie zawierał żadnych monet. + +Aby lepiej zrozumieć cel górnictwa, zbadajmy co dzieje się w przypadku złośliwego atakującego. Ponieważ kryptografia bazowa Bitcoina jest znana jako bezpieczna, atakujący będzie kierował do jednej części systemu Bitcoin, która nie jest chroniona przez kryptografię bezpośrednio: kolejność transakcji. Strategia atakującego jest prosta: + +1. Wyślij 100 BTC do sprzedawcy w zamian za jakiś produkt (najlepiej szybką dostawę cyfrową) +2. Poczekaj na dostawę produktu +3. Wyprodukuj inną transakcję wysyłającą te same 100 BTC do siebie +4. Staraj się przekonać sieć, że jego transakcja dla siebie to taka, która pojawiła się pierwszy. + +Po wykonaniu kroku (1) po kilku minutach jakiś górnik uwzględni transakcję w bloku, powiedzmy numer bloku 270. Po około jednej godziny, pięć kolejnych bloków zostanie dodanych do łańcucha po tym bloku, z każdym z bloków pośrednio wskazującym transakcję, a tym samym „potwierdzającą”. W tym momencie sprzedawca zaakceptuje płatności w sfinalizowanej wersji i dostarczy produkt; ponieważ zakładamy, że to dobro cyfrowe, dostawa jest natychmiastowa. Teraz atakujący tworzy kolejną transakcję wysyłającą 100 BTC do siebie. Jeśli napastnik po prostu uwolni go do środowiska naturalnego, transakcja nie zostanie przetworzona; górnicy będą próbowali uruchomić `APPLY(S, X)` i zauważą, że `TX` zużywa UTXO, który już nie jest w stanie. Zamiast tego, napastnik tworzy "widek" blockchain, rozpoczynając od wydobycia innej wersji bloku 270 wskazującej na ten sam blok 269 jako element nadrzędny, ale z nową transakcją zamiast starej. Ponieważ dane bloku są różne, wymaga to ponownego potwierdzenia pracy. Ponadto nowa wersja bloku 270 atakującego ma inny hash, tak aby oryginalne bloki od 271 do 275 nie wskazywały na nią; w ten sposób oryginalny łańcuch i nowy łańcuch atakującego są całkowicie oddzielone. Reguła jest, że w forku najdłuższy blockchain jest prawdą, i tak legalni górnicy będą pracować w łańcuchu 275, podczas gdy sam atakujący pracuje w łańcuchu 270. Aby jego blockchain stał się najdłuższy, musiałby mieć więcej mocy obliczeniowej niż pozostała część sieci połączona w celu nadrabiania zaległości (tj. "51% ataku"). + +### Drzewa Merkle {#merkle-trees} + +![SPV w Bitcoinie](./spv-bitcoin.png) + +_Po lewej: wystarczy przedstawić tylko niewielką liczbę węzłów w drzewie Merkle, aby przedstawić dowód ważności gałęzi._ + +_Prawo: każda próba zmiany dowolnej części drzewa Merkle ostatecznie doprowadzi do niespójności w górę łańcucha._ + +Ważną funkcją skalowalności Bitcoina jest to, że blok jest przechowywany w wielopoziomowej strukturze danych. "hash" bloku to w rzeczywistości tylko skrót nagłówka bloku, około 200 bajtowych danych, które zawierają znacznik czasu, non, poprzedni skrót bloku i główny skrót struktury danych zwanej drzewem Merkle przechowującym wszystkie transakcje w bloku. Drzewo Merkle jest typem drzewa binarnego, złożony z węzłów z dużą liczbą węzłów liściowych u dołu drzewa zawierających podstawowe dane, zbiór węzłów pośrednich, w których każdy węzeł jest skrótem jego dwóch podrzędnych, a w końcu pojedynczym węzłem głównym, utworzono również z hashu jego dwóch dzieci, reprezentując "góra" drzewa. Drzewo Merkle ma na celu umożliwienie dostarczenia danych w bloku w części – węzeł może pobrać tylko nagłówek bloku z jednego źródła, niewielka część drzewa odnosząca się do nich z innego źródła i nadal musi być zapewniona, że wszystkie dane są poprawne. Powodem tego działania jest to, że hashuje szerzenie się w górę: jeśli złośliwy użytkownik próbuje zamienić fałszywą transakcję na dole drzewa Merkle, ta zmiana spowoduje zmianę w węźle powyżej, a, a następnie zmianę w węźle powyżej w końcu zmienia korzenie drzewa i tym samym skrót bloku, spowodowanie, że protokół zarejestruje go jako zupełnie inny blok (prawie na pewno z niepoprawnym dowodem pracy). + +Protokół drzewa Merkle jest niewątpliwie niezbędny do zapewnienia stabilności w dłuższej perspektywie. „Pełny węzeł” w sieci Bitcoin, który przechowuje i przetwarza cały każdy blok, zajmuje od kwietnia 2014 r. około 15 GB dysku w sieci Bitcoin, i rośnie o ponad gigabajt miesięcznie. Obecnie jest to opłacalne dla niektórych komputerów stacjonarnych, a nie telefonów, a później w przyszłości tylko przedsiębiorstwa i hobbyści będą mogli wziąć w nim udział. Protokół znany jako "uproszczona weryfikacja płatności (SPV) pozwala na istnienie innej klasy węzłów, zwana "lekkie węzły", które pobierają nagłówki bloków, sprawdź dowód pracy na nagłówkach bloku, a następnie pobierz tylko "branches" związane z transakcjami, które są dla nich istotne. Pozwala to węzłom świetlnych określić ich mocną gwarancję bezpieczeństwa, jaki jest status każdej transakcji Bitcoin, i ich obecne saldo jest podczas pobierających tylko bardzo małą część całego łańcucha bloków. + +### Alternatywne aplikacje Blockchain {#alternative-blockchain-applications} + +Pomysł przejęcia podstawowej idei blockchain i zastosowania go do innych pojęć ma również długą historię. W 1998 roku pojawił się Nick Szabo z koncepcją [bezpiecznych tytułów własności z właścicielem autorytet](http://nakamotoinstitute.org/secure-property-titles/), a dokument opisujący „nowe postępy w technologii replikowanych baz danych” pozwoli na system oparty na blockchain do przechowywania rejestru osób posiada jaką ziemię, tworząc rozbudowane ramy zawierające koncepcje takie jak jako gospodarstwo rolne, zawłaszczenie i kastralny podatek gruntowy. Niestety nie był dostępny w tym czasie skuteczny system baz danych i dlatego protokół nigdy nie był wdrażany w praktyce. Jednak po 2009 roku, kiedy zdecentralizowany konsensus Bitcoina został opracowany szereg alternatywnych aplikacji, które szybko zaczęły się pojawić się. + +- **Namecoin** - stworzony w 2010 roku, [Namecoin](https://namecoin.org/) jest go najlepiej opisać jako zdecentralizowaną bazę danych rejestracji nazw. W zdecentralizowanych protokołach, takich jak Tor, Bitcoin i BitMessage, musi być jakiś sposób identyfikacji kont, aby inni ludzie mogli z nimi współdziałać, ale we wszystkich istniejących rozwiązaniach jedynym dostępnym identyfikatorem jest pseudorandom hash, taki jak `1LW79wp5ZBqaHW1jL5TCiBCrhQYtHagUWy`. Najlepiej byłoby, gdyby było w stanie posiadać konto o nazwie takiej jak "george". Jednak problem polega na tym, że jeśli jedna osoba może utworzyć konto o nazwie "george", ktoś inny może użyć tego samego procesu do rejestracji "george" również dla siebie i podszywać się pod nie. Jedynym rozwiązaniem jest pierwszy do pliku, gdzie pierwszy rejestrator zakończył się sukcesem, a drugi porażka - problem doskonale pasujący do protokołu konsensusu Bitcoin. Naamecoin jest najstarszym i najbardziej udanym wdrożeniem systemu rejestracji nazw za pomocą takiego pomysłu. +- **Kolorowe monety** - celem [kolorowych monet](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit) jest służyć jako protokół umożliwiający ludziom tworzenie własnych walut cyfrowych - lub w ważnym trywialnym przypadku waluty z jedną jednostką, tokenami cyfrowymi, na blockchainie Bitcoin. W protokole z kolorowych monet, jeden „wydaje” nową walutę publicznie przypisanie koloru do konkretnego Bitcoin UTXO i protokołu rekursywnie definiuje kolor innego UTXO tak, aby był taki sam jak kolor danych wejściowych, które wydała transakcja je tworząca (niektóre specjalne zasady obowiązują w przypadku wejść mieszanych kolorów). Pozwala użytkownikom na utrzymywanie portfeli zawierających tylko UTXO o określonym kolorze i wysyłanie ich w pobliżu podobnych do zwykłych bitcoinów, śledzenie wsteczne przez łańcuch bloków, aby określić kolor każdego UTXO, który otrzymuje. +- **Metacoiny** – ideą stojącą za metacoinem jest posiadanie protokołu który żyje na szczycie Bitcoina, używając transakcji Bitcoin do przechowywania transakcje metacoin, ale z innym przejściem stanu funkcja, `ZASTOSUJ'`. Ponieważ protokół metacoin nie może zapobiec nieprawidłowym transakcjom metacoin pojawiającym się w blockchain Bitcoina, dodawana jest reguła, że ​​jeśli `ZASTOSUJ'(S,TX)` zwraca błąd, protokół domyślnie to `ZASTOSUJ'(S,TX) = S`. Zapewnia to łatwy mechanizm tworzenia arbitralnego protokołu kryptowalutowego, potencjalnie z zaawansowanymi funkcjami, które nie mogą być zaimplementowane wewnątrz samego Bitcoina, ale przy bardzo niskich kosztach rozwoju od czasu złożoności wydobycia i tworzenia sieci są już przedmiotem protokołu Bitcoin. Metacoins zostały użyte do implementacji niektórych klas umów finansowych, rejestracji nazw i zdecentralizowanej wymiany. + +Tak więc, ogólnie rzecz biorąc, istnieją dwa podejścia do budowania protokołu konsensusu: budowanie niezależnej sieci, i zbudowanie protokołu na górze Bitcoin. Trudno jest wdrożyć pierwsze podejście, choć w przypadku aplikacji takich jak Namecoin; każda indywidualna implementacja wymaga bootstrap niezależnego łańcucha bloków, oraz budowy i testowanie wszystkich niezbędnych zmian stanu i kodeksu tworzenia sieci. Dodatkowo, przewidujemy, że zestaw aplikacji dla zdecentralizowanej technologii konsensualnej będzie przebiegał zgodnie z rozdziałem prawa w którym zdecydowana większość aplikacji byłaby zbyt mała, aby uzasadnić ich własny blockchain, i zwracamy uwagę, że istnieją duże klasy zdecentralizowanych aplikacji, w szczególności autonomiczne organizacje, które muszą ze sobą współpracować. + +Z drugiej strony podejście oparte na Bitcoinach ma wadę, że nie dziedziczy uproszczonych funkcji weryfikacji płatności Bitcoina. SPV działa dla Bitcoina, ponieważ może użyć głębokości blockchain jako proxy dla ważności; w pewnym momencie, gdy przodkowie transakcji pójdą wystarczająco daleko wstecz, można bezpiecznie powiedzieć, że byli oni legalnie częścią stanu. Z drugiej strony, metaprotokoły oparte na technologii blockchain nie można zmusić blockchain do nieuwzględniania transakcji, które nie są ważne w kontekście ich własnych protokołów. Stąd w pełni bezpieczna implementacja meta-protokołu SPV musiałaby zeskanować wstecz na początek blockchaina Bitcoin, aby ustalić, czy określone transakcje są prawidłowe. Obecnie wszystkie "lekkie" implementacje meta-protokołów bazujących na Bitcoinach opierają się na zaufanym serwerze, aby dostarczyć dane, Prawdopodobnie wysoce nieoptymalny wynik, zwłaszcza gdy jednym z podstawowych celów kryptowaluty jest wyeliminowanie konieczności zaufania. + +### Skrypty {#scripting} + +Nawet bez żadnych rozszerzeń, protokół Bitcoin w rzeczywistości ułatwia słabą wersję pojęcia "inteligentnych umów". UTXO in Bitcoin może być własnością nie tylko klucza publicznego; ale także bardziej skomplikowanym skryptem wyrażonym w prostym języku programowania. W tym paradygmacie wydatki transakcyjne, które UTXO musi podać dane, które spełniają wymagania skryptu. Nawet podstawowy mechanizm własności klucza publicznego jest wdrażany za pomocą skryptu: skrypt przyjmuje eliptyczny podpis krzywej jako dane wejściowe, weryfikuje ją w odniesieniu do transakcji i adresu będącego właścicielem UTXO i zwraca 1 jeśli weryfikacja jest udana i 0 w innym przypadku. Inne, bardziej skomplikowane skrypty istnieją dla różnych dodatkowych przypadków użycia. Na przykład można zbudować skrypt wymagający podpisów z dwóch z trzech wybranych kluczy prywatnych do walidacji ("multisig"), konfiguracja przydatna dla kont korporacyjnych, zabezpiecz konta oszczędnościowe i niektóre sytuacje powiernika. Skrypty mogą również być używane do płacenia nagród za rozwiązania problemów obliczeniowych i jeden może nawet skonstruować skrypt, który mówi coś w stylu „ten Bitcoin UTXO jest twój, jeśli możesz dostarczyć dowód SPV, że wysłałeś Dogecoin transakcja tego nominału do mnie”, zasadniczo pozwalająca na zdecentralizowaną wymianę między kryptowalutami. + +Jednak język skryptu zaimplementowany w Bitcoinach ma kilka ważnych ograniczeń: + +- **Brak kompletności w sensie Turinga ** - to znaczy, że choć istnieje duży podzbiór obliczeń, które obsługuje język skryptowy Bitcoin, nie obsługuje on jednak wszystkiego. Główna kategoria, której brakuje, to pętle. Wykonuje się to w celu uniknięcia nieskończonych pętli podczas weryfikacji transakcji; teoretycznie jest to przeszkoda dla programistów skryptów, ponieważ dowolna pętla może być symulowana przez po prostu wielokrotne powtarzanie kodu bazowego z instrukcją, ale prowadzi to do bardzo nieefektywnych w przestrzeni skryptów. Na przykład implementacja alternatywnego algorytmu podpisu eliptycznego prawdopodobnie wymagałaby 256 powtarzanych mnożeń zaokrągla wszystkie osobno zawarte w kodzie. +- **Ślepota na wartości** - nie ma sposobu, aby skrypt UTXO zapewniał szczegółową kontrolę kwoty, która może zostać pobrana. Na przykład jednym potężnym przypadkiem wykorzystania kontraktu wyroczni byłby kontrakt zabezpieczający, gdzie A i B umieściły BTC o wartości 1000 USD i po 30 dniach, skrypt wysyła BTC o wartości 1000 USD do A, a resztę do B. Wymagałoby to wyroczni do określenia wartości 1 BTC w USD, ale nawet wtedy jest to ogromna poprawa pod względem zaufania i potrzeba infrastruktury nad w pełni scentralizowanymi rozwiązaniami, które są obecnie dostępne. Jednakże, ponieważ UTXO są typu "wszystko albo nic", jedynym sposobem, aby to osiągnąć jest bardzo nieefektywny hacking polegający na posiadaniu wielu UTXO o różnych nominałach (np. jedno UTXO o wartości 2k na każde k do 30) i posiadaniu O wyboru, które UTXO wysłać do A, a które do B. +- **Brak stanu** – [UTXO można wydać lub zostawić niewykorzystane](https://bitcoin.org/en/glossary/unspent-transaction-output); nie ma możliwości na wieloetapowe kontrakty czy skrypty, które utrzymują jakikolwiek inny wewnętrzny stan poza tym. To sprawia, że trudno jest tworzyć wieloetapowe kontrakty opcji, zdecentralizowane oferty wymiany lub dwuetapowe protokoły zobowiązań kryptograficznych (niezbędne do zabezpieczenia pól obliczeniowych). Oznacza to również, że UTXO może być używany tylko do: buduj proste, jednorazowe kontrakty i nie bardziej złożone „stanowe” kontrakty, takie jak zdecentralizowane organizacje i sprawia, meta-protokoły trudne do wdrożenia. Stan binarny w połączeniu z ślepotą wartości oznacza również, że inna ważna aplikacja, limity wypłaty jest niemożliwa. +- **Blockchain-blindness** - UTXO są ślepe na dane blockchain, takie jak nonce znacznik czasu i poprzedni hash bloku. To bardzo ogranicza zastosowania w grach i kilku innych kategoriach, przez pozbawienie języka skryptowego potencjalnie cennego źródła losowości. + +Widzimy zatem trzy podejścia do budowania zaawansowanych aplikacji bazujących na kryptowalucie: budowanie nowego blockchaina, używanie skryptów bazujących na Bitcoin i budowanie metaprotokołu opartego na Bitcoin. Budowanie nowego blockchainu pozwala na nieograniczoną swobodę w budowaniu zestawu funkcji, ale kosztem czasu rozwoju, wysiłku przy uruchamianiu i bezpieczeństwa. Korzystanie ze skryptów jest łatwe do wdrożenia i standaryzacji, ale jest bardzo ograniczone w swoich możliwościach, a metaprotokoły, choć łatwe, cierpią z powodu błędów w skalowalności. Dzięki Ethereum zamierzamy zbudować alternatywny framework, który zapewnia jeszcze większe korzyści w łatwości rozwoju, jak również jak również jeszcze silniejsze właściwości lekkiego klienta, a jednocześnie pozwala aplikacjom na współdzielenie środowiska ekonomicznego i bezpieczeństwa blockchainu. + +## Ethereum {#ethereum} + +Celem Ethereum jest stworzenie alternatywnego protokołu do budowy zdecentralizowanych aplikacji, zapewnienie innego zestawu kompromisów, które uważamy za bardzo przydatne dla dużej klasy zdecentralizowanych aplikacji, ze szczególnym naciskiem na sytuacje, w których szybki czas rozwoju, bezpieczeństwo dla małych i rzadkich zastosowań i zdolność różnych aplikacji do bardzo efektywnej interakcji jest istotna. Ethereum robi to budując to, co zasadniczo jest najlepszą abstrakcyjną warstwą podstawową: blockchain z wbudowanym językiem programowania, umożliwienie każdemu pisania inteligentnych kontraktów i zdecentralizowanych aplikacji, w których mogą tworzyć własne arbitralne zasady własności, formaty transakcji i funkcje przemiany stanu. Wersję „gołej kości” Namecoina można zapisać w dwóch linijkach kodu, a inne protokoły, takie jak waluty i systemy reputacji, mogą być zbudowany w czasie poniżej dwudziestu lat. Inteligentne kontrakty, „skrzynki” kryptograficzne, które zawierają wartość i odblokowują je tylko wtedy, gdy spełnione są określone warunki, można również budować na platformie z znacznie większą mocą niż oferowaną przez skryptowanie Bitcoina z powodu dodatkowych potęg Trójkompletność, świadomość wartości, świadomość blockchain-a i stan. + +### Filozofia {#philosophy} + +Ethereum ma być zaprojektowane zgodnie z następującymi zasadami: + +1. **Prostota**: protokół Ethereum powinien być jak najprostszy. Nawet kosztem mniejszej efektywności przechowywania danych lub czasu [fd. 3](#notes) Średni programista powinien być w stanie śledzić i implementować całą specyfikację,[fn. 4](#notes) tak, aby w pełni wykorzystać bezprecedensowy potencjał demokratyzacji, który kryptowaluta wnosi i rozwija wizję Ethereum jako protokół, który jest otwarty dla wszystkich. Żadna optymalizacja która zwiększa złożoność nie powinna być uwzględniona, chyba że optymalizacja ta zapewnia znaczną korzyść. +2. **Uniwersalność**: zasadnicza część filozofii projektowej Ethereum jest taka, że Ethereum nie posiada "funkcji".[fn. 5](#notes) Zamiast tego Ethereum zapewnia wewnętrzny Skrypt Turing-complete język, który programista może użyć do budowy inteligentnej umowy lub typu transakcji, które mogą być zdefiniowane matematycznie. Chcesz wynaleźć własną finansową pochodną? Z Ethereum, możesz. Chcesz stworzyć własną walutę? Skonfiguruj jako kontrakt Ethereum. Chcesz skonfigurować całą skalę Daemona lub Skynet? Być może będziesz potrzebować kilku tysiący powiązanych umów i pamiętaj, aby je nakarmić hojnie, ale nic Cię nie powstrzymuje z Ethereum i Twoimi opuszkami palców. +3. **Modularność**: części protokołu Ethereum powinny być zaprojektowane tak, aby były tak modułowe i możliwe do oddzielenia. W trakcie rozwoju, naszym celem jest stworzenie programu, w którym gdybyś miał wykonać małą modyfikację protokołu w jednym miejscu, stos aplikacji nadal funkcjonowałby bez żadnych dalszych modyfikacji. Innowacje takie jak Ethash (patrz [Żółty papier załącznik](https://ethereum.github.io/yellowpaper/paper.pdf#appendix.J) lub [artykuł wiki](https://github.com/ethereum/wiki/wiki/Ethash)), zmodyfikowanych drzew Patricia ([Żółty papier](https://ethereum.github.io/yellowpaper/paper.pdf#appendix.D), [wiki](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-Patricia-Tree)) i RLP ([YP](https://ethereum.github.io/yellowpaper/paper.pdf#appendix.B) [wiki](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-RLP)) powinien być i jest wdrożony jako oddzielna, funkcjonalnie wypełniona biblioteka. Jest to takie, że nawet jeśli są używane w Ethereum, nawet jeśli Ethereum nie wymaga pewnych funkcji, takie funkcje są nadal przydatne również w innych protokołach. Rozwój Ethereum powinien być maksymalnie wykonany, aby przynieść korzyści całemu ekosystemowi kryptowalut, a nie tylko samemu. +4. **Zdolność**: szczegóły protokołu Ethereum nie są ustawione w kamieniach. Chociaż będziemy bardzo roztropni w zakresie wprowadzania zmian do konstrukcji wysokiego szczebla, na przykład z [odcięciem mapy drogowej](https://ethresear.ch/t/sharding-phase-1-spec/1407/), abstrakcyjnym wykonaniem, przy czym tylko dostępność danych zapisana jest w konsensusie. Testy obliczeniowe później w procesie opracowywania mogą prowadzić do odkrycia, że niektóre modyfikacje, np. do architektury protokołu lub do maszyny wirtualnej Ethereum (EVM) znacząco zwiększą skalowalność lub bezpieczeństwo. Jeśli znajdziemy takie możliwości, wykorzystamy je. +5. **Niedyskryminacja** i **niecenzura**: protokół powinien nie próbować aktywnie ograniczać lub zapobiegać określonym kategoriom stosowania. Wszystkie mechanizmy regulacyjne zawarte w protokole powinny być zaprojektowane w taki sposób, aby bezpośrednio regulować szkody i nie próbować sprzeciwiać się określonym niepożądanym aplikacjom. Programista może nawet uruchomić nieskończoną pętlę na szczycie Ethereum tak długo, jak długo będą chciały utrzymać płacenie opłaty transakcyjnej. + +### Konta Ethereum {#ethereum-accounts} + +W Ethereum stan składa się z obiektów zwanych "kontami", z każdym kontem o 20-bajtowym adresie i przejściach stanu są bezpośrednie transfery wartości i informacji pomiędzy kontami. Konta Ethereum mają cztery pola: + +- **nonce**, licznik używany do upewnienia się, że każda transakcja może być przetworzona tylko raz +- Bieżące saldo **etheru konta** +- **kod umowy konta**, jeśli jest obecny +- Pamięć **konta** (pusta domyślnie) + +„Ether” jest główną wewnętrzną kryptowalutą Ethereum używaną do uiszczania opłat transakcyjnych. Ogólnie rzecz biorąc, istnieją dwa rodzaje kont: **rachunki zewnętrzne**, kontrolowane przez klucze prywatne oraz **konta kont kontraktowych**, kontrolowane przez ich kod kontraktu. Zewnętrznie posiadane konto nie posiada kodu i można wysyłać wiadomości z zewnętrznego konta poprzez tworzenie i podpisywanie transakcji; w koncie, za każdym razem, gdy konto kontraktowe otrzymuje komunikat o kodzie aktywuje, pozwala na odczytywanie i zapisywanie do pamięci wewnętrznej i wysyłanie innych wiadomości lub tworzenie kontraktów z kolei. + +Należy zauważyć, że „kontraktów” w Ethereum nie należy postrzegać jako czegoś, co powinno być „spełniane” lub „przestrzegane”; są raczej takie jak „czynniki autonomiczne”, które żyją w środowisku Ethereum execution, zawsze wykonując określony fragment kodu, gdy jest "poked" przez wiadomość lub transakcję, i sprawowanie bezpośredniej kontroli nad własnym eterem oraz ich własnym sklepem kluczowy/wartości w celu śledzenia trwałych zmiennych. + +### Wiadomości i Transakcje {#messages-and-transactions} + +Termin "transakcja" jest używany w Ethereum do odwoływania się do podpisanego pakietu danych, który przechowuje wiadomość, która ma być wysłana z zewnętrznego konta. Transakcje zawierają: + +- Odbiorca wiadomości +- Podpis identyfikujący nadawcę +- Ilość etheru do przeniesienia od nadawcy do odbiorcy +- Opcjonalne pole danych +- Wartość `STARTGAS` przedstawiająca maksymalną liczbę kroków do wykonania transakcji +- Wartość `GASPRICE`, przedstawiająca opłatę, którą nadawca płaci za krok obliczeniowy + +Pierwsze trzy pola to pola standardowe w każdej kryptowalucie. Pole danych nie posiada domyślnie żadnej funkcji, ale maszyna wirtualna posiada opcode, które kontrakt może wykorzystać do uzyskania dostępu do danych; jako przykład użyj, jeśli kontrakt działa jako usługa rejestracyjna domeny blockchain, następnie może zinterpretować dane przekazane do niego jako zawierające dwa "pola", pierwsze pole jest domeną do rejestracji, a drugie pole jest adresem IP do rejestracji. Umowa odczytałaby te wartości z danych wiadomości i odpowiednio umieściłaby je w pamięci. + +Pola `STARTGAS` i `GASPRICE` są kluczowe dla antynegowania modelu serwisowego. Aby zapobiec przypadkowemu lub wrogim nieskończonym pętlom lub innym stratom obliczeniowym w kodzie, każda transakcja jest wymagana, aby ustawić limit do ile kroków obliczeniowych wykonania kodu, które może użyć. Podstawową jednostką obliczeniową jest „gaz”; Zazwyczaj krok obliczeniowy kosztuje 1 gaz, ale niektóre operacje kosztują więcej gazu, ponieważ są bardziej kosztowne, lub zwiększyć ilość danych, które muszą być przechowywane jako część stanu. Za każdy bajt danych transakcji pobiera się również opłatę w wysokości 5 gazów. Zamiarem systemu opłat jest wymaganie od atakującego zapłaty proporcjonalnie za każdy zasób, który konsumowają, w tym obliczenia, szerokość pasma i przechowywanie; stąd jakakolwiek transakcja, która powoduje, że sieć zużywająca większą ilość dowolnego z tych zasobów musi mieć opłatę gazową w przybliżeniu proporcjonalną do przyrostu ilości. + +### Wiadomości {#messages} + +Umowy mają możliwość wysyłania „wiadomości” do innych umów. Wiadomości są obiektami wirtualnymi, które nigdy nie są serializowane i istnieją tylko w środowisku wykonania Ethereum. Wiadomość zawiera: + +- Nadawca wiadomości (niejawny) +- Odbiorca wiadomości +- Ilość etheru do przeniesienia wraz z wiadomością +- Opcjonalne pole danych +- Wartość `STARTGAS` + +Wiadomość jest zasadniczo jak transakcja, z wyjątkiem tego, że jest generowana przez kontrakt, a nie przez podmiot zewnętrzny. Wiadomość jest generowana, gdy kontrakt aktualnie wykonujący kod wykonuje kod `CALL` opcode, który tworzy i wykonuje wiadomość. Podobnie jak transakcja, wiadomość prowadzi do konta odbiorcy z jego kodem. Tak więc kontrakty mogą mieć relacje z innymi kontraktami w dokładnie taki sam sposób, jak podmioty zewnętrzne. + +Zauważ, że przydział gazu przydzielony przez transakcję lub umowę ma zastosowanie do całkowitej ilości gazu zużywanego przez tę transakcję i do wszystkich zleceń. Na przykład, jeśli zewnętrzny podmiot A wysyła transakcję do B z 1000 gazów, i B zużywa 600 gazu przed wysłaniem wiadomości do C, a wewnętrzna realizacja C zużywa 300 gazu przed powrotem, następnie B może wydać kolejne 100 gazu przed wyczerpaniem gazu. + +### Funkcja Przejścia Stanów Ethereum {#ethereum-state-transition-function} + +![Zmiana stanu etheru](./ether-state-transition.png) + +Funkcja zmiany stanu Ethereum, `ZASTOSUJ-(S,TX) -> S'` może być zdefiniowane w następujący sposób: + +1. Sprawdź, czy transakcja jest dobrze sformułowana (tj. ma prawą liczbę wartości), podpis jest prawidłowy, a nonce odpowiada nonce na koncie nadawcy. Jeśli nie, zwracaj błąd. +2. Oblicz opłatę transakcyjną jako `STARTGAS * GASPRICE`, i ustaw adres wysyłający na podstawie podpisu. Odejmij opłatę z salda konta nadawcy i pomnóż wartość jednorazową nadawcy. Jeśli nie ma wystarczającego salda do wydania, zwróć błąd. +3. Inicjalizacja `GAS = STARTGAS`, i odebrać pewną ilość gazu na bajt, aby zapłacić za bajty w transakcji. +4. Przenieś wartość transakcji z konta nadawcy na konto odbiorcze. Jeśli konto odbierające jeszcze nie istnieje, utwórz je. Jeśli konto otrzymujące jest umową, uruchom kod kontraktu albo w celu dokończenia lub do czasu wygaśnięcia wykonania gazu. +5. Jeśli transfer wartości nie powiódł się, ponieważ nadawca nie miał wystarczającej ilości pieniędzy lub podczas wykonanie kodu skończył się gaz, przywróć wszystkie zmiany stanu z wyjątkiem płatności opłat i dodać opłaty do konta kopalni. +6. W przeciwnym razie zwrot opłat za cały pozostały gaz nadawcy i wyślij opłaty zapłacone za gaz zużywany górnikowi. + +Na przykład należy przyjąć, że kod kontraktu jest: + + if !self.storage[calldataload(0)]: + self.storage[calldataload(0)] = calldataload(32) + +Zauważ, że w rzeczywistości kod umowy jest zapisany w kodzie EVM o niskim poziomie; ten przykład jest napisany w Serpent, jednym z naszych języków wysokiego szczebla, dla jasności i może być skompilowany do kodu EVM. Załóżmy, że magazyn umowy zaczyna się od pustego, a transakcja jest wysyłana o wartości 10 eterów, 2000 gazu, 0. 01 cena gazu dla eteru i 64 bajty danych, z bajtami 0-31 reprezentującymi liczbę `2` i bajty 32-63 reprezentujące ciąg `CHARLIE`.[fn. 6](#notes) Proces dla funkcji przejścia stanu w tym przypadku jest następujący: + +1. Sprawdź, czy transakcja jest prawidłowa i dobrze sformowana. +2. Sprawdź, czy nadawca transakcji ma co najmniej 2000 \* 0.001 = 2 każdego z nich. Jeśli tak, wówczas odjąć 2 ether od konta nadawcy. +3. Rozpoczęcie gazu = 2000; zakładając, że transakcja ma 170 bajtów a opłata bajtowa wynosi 5, odjąć 850 tak, że pozostało 1150 gazów. +4. Odejmij więcej 10 etherów od konta nadawcy i dodaj je do konta kontraktu. +5. Uruchom kod. W tym przypadku jest to proste: sprawdza, czy użyto magazynu w kontrakcie `2`, zauważa, że nie jest, i, aby ustawić pamięć w indeksie `2` na wartość `CHARLIE`. Załóżmy, że to zajmuje 187 gazu, więc pozostała ilość gazu wynosi 1150 - 187 = 963 +6. Dodaj 963 \* 0.001 = 0.963 ether z powrotem na konto nadawcy i zwróć otrzymany stan. + +W przypadku braku kontraktu na dzień otrzymania transakcji, następnie całkowita opłata transakcyjna byłaby po prostu równa dostarczonej `GASPRICE` pomnożonej przez długość transakcji wyrażonej w bajtach, i dane przesyłane wraz z transakcją byłyby nieistotne. + +Zauważ, że wiadomości działają równorzędnie do transakcji pod względem powracają: jeśli wykonanie wiadomości kończy się gazem, następnie tego komunikatu wykonania i wszystkich innych egzekucji wyzwalanych przez to wykonanie, cofnięcie,, ale wykonania nadrzędne nie muszą być przywrócone. Oznacza to, że "bezpiecznie" kontraktu na inną umowę, tak jak w przypadku połączeń B z gazem G, wówczas realizacja A jest gwarantowana utratą co najwyżej gazu G. Na koniec, weź pod uwagę, że istnieje opcode, `STWÓRZ`, który tworzy umowę; jego mechaniki wykonania są na ogół podobne do `CALL`, z wyjątkiem, że wyjście wykonania określa kod nowo utworzonej umowy. + +### Wykonanie kodu {#code-execution} + +Kod w kontraktach Ethereum jest napisany w niskopoziomowym, opartym na stosie języku kodowym bytecode, zwanym "Ethereum virtual machincode" lub "EVM code". Kod składa się z serii bajtów, gdzie każdy bajt reprezentuje operację. Zasadniczo wykonanie kodu jest nieskończoną pętlą polegającą na wielokrotnym przeprowadzaniu operacji w bieżącym liczniku programu (co rozpoczyna się od zera), a następnie zwiększaniu licznika programu o jeden, do momentu osiągnięcia końca kodu lub wykrycia błędu lub `STOP` lub `RETURN`. Operacje mają dostęp do trzech typów przestrzeni do przechowywania danych: + +- **stos**, kontener ostatniej w pierwszej kolejności, do którego wartości można wcisnąć i wyciąć +- **Pamięć**, nieskończenie rozszerzalna tablica bajtów +- Długoterminowa pamięć **kontraktu**, sklep klucz/wartość. W odróżnieniu od stosu i pamięci, które resetują się po zakończeniu obliczeń, pamięć utrzymuje się przez długi czas. + +Kod może również uzyskać dostęp do wartości, nadawcy i danych przychodzących wiadomości, jak również dane nagłówka bloku, a kod może również zwracać bajt tablicy danych jako dane wyjściowe. + +Formalny model realizacji kodu EVM jest zaskakująco prosty. Podczas gdy maszyna wirtualna Ethereum jest uruchomiona, jej pełny stan obliczeniowy może być zdefiniowany przez kropkę `(block_state, transakcja, wiadomość, kod, pamięć, stack, pc, gaz)`, gdzie `block_state` jest stanem globalnym zawierającym wszystkie konta, także zawiera salda i pamięć. Na początku każdej rundy egzekucji bieżąca instrukcja jest odnajdywana przez pobranie `pc`-tego bajtu `code` (lub 0, jeśli `pc >= len(kod)`), a każda instrukcja ma własną definicję pod względem tego, jak wpływa na krotkę. Na przykład `ADD` wyświetla dwa elementy poza stos i pycha ich sumę, zmniejsza `gaz` o 1 i przyrosty `pc` o 1, i `PRZECHOWYWANIE` wyświetla dwa najlepsze elementy poza stosem i wstawia drugą pozycję do magazynu kontraktu w indeksie określonym przez pierwszą pozycję. Chociaż istnieje wiele sposobów optymalizacji Ethereum wykonywania maszyny wirtualnej poprzez kompilację just-in-time podstawowa implementacja Ethereum może być wykonana za kilkaset linii kodu. + +### Łańcuch bloków i górnictwo {#blockchain-and-mining} + +![Schemat blokowy zastosowania Ethereum](./ethereum-apply-block-diagram.png) + +Blockchain Ethereum jest pod wieloma względami podobny do łańcucha bloków Bitcoin, choć ma pewne różnice. Główna różnica między Ethereum i Bitcoinem w odniesieniu do architektury blockchain polega na tym, że w odróżnieniu od Bitcoin(który zawiera tylko kopię listy transakcji), Bloki Ethereum zawierają kopię zarówno listy transakcji, jak i najnowszego stanu. Oprócz tego, dwie inne wartości, liczba bloku i trudności, są również przechowywane w bloku. Podstawowy blok algorytm walidacji w Ethereum jest następujący: + +1. Sprawdź, czy poprzedni blok odwołany przez blok istnieje i jest ważny. +2. Sprawdź, czy znacznik czasu bloku jest większy niż w poprzedni blok i mniej niż 15 minut w przyszłości +3. Sprawdź, czy numer bloku, poziom trudności, korzeń transakcji, wujek limit root i gazu (różne koncepcje specyficzne dla Ethereum niskiego poziomu) są ważne. +4. Sprawdź, czy dowód pracy na bloku jest ważny. +5. Niech `S[0]` będzie stanem na końcu poprzedniego bloku. +6. Załóżmy, że `TX` jest listą transakcji z `n` transakcji. Dla wszystkich `i` w `0...n-1`, ustaw `S[i+1] = APPLY(S[i],TX[i])`. Jeśli którakolwiek z aplikacji zwraca błąd, lub jeśli całkowity gaz zużywany w bloku w górę aż do momentu, gdy ten punkt przekroczy `GASLIMIT`, zwróć błąd. +7. Pozwól `S_FINAL` być `S[n]`, ale dodaj nagrodę za blok zapłaconą górnikowi. +8. Sprawdź, czy pierwiastek drzewa Merkle stanu `S_FINAL` jest równy końcowemu pierwiastkowi stanu podanemu w nagłówku bloku. Jeśli tak, blok jest ważny; w przeciwnym razie jest nieprawidłowy. + +Podejście na pierwszy rzut oka może wydawać się wysoce nieskuteczne, ponieważ musi przechowywać cały stan z każdym blokiem, ale w rzeczywistości wydajność powinna być porównywalna do wydajności Bitcoin. Powodem jest to, że stan jest przechowywany w strukturze drzewa, i po każdym bloku tylko mała część drzewa musi zostać zmieniona. Tak więc ogólnie pomiędzy dwoma sąsiadującymi blokami zdecydowana większość drzewa powinna być taka sama, i dlatego dane mogą być przechowywane raz i odsyłane dwukrotnie za pomocą wskaźników (tj. hashy subdrzewa). Aby to osiągnąć, użyto specjalnego rodzaju drzewa znanego jako "drzewo Patricia". łącznie z modyfikacją pojęcia drzewa Merkle, która pozwala na wstawienie węzłów i usunięcie, a nie tylko na sprawne zmiany. Dodatkowo, ponieważ wszystkie informacje o stanie są częścią ostatniego bloku, nie ma potrzeby przechowywania całej historii blockchain - strategii, która jeśli może być zastosowany do Bitcoina, można obliczyć aby zapewnić 5-20x oszczędności w przestrzeni. + +Często zadawane pytanie brzmi: "gdzie" kod kontraktu w kategoriach fizycznego sprzętu. Ma to prostą odpowiedź: proces wykonywania kodu kontraktu jest częścią definicji funkcji przejścia stanu, który jest częścią algorytmu walidacji bloku, więc jeśli transakcja jest dodana do bloku `B` kod wygenerowany przez tę transakcję zostanie wykonany przez wszystkie węzły, teraz i w przyszłości, ten pobierz i zweryfikuj blok `B`. + +## Aplikacje {#applications} + +Ogólnie rzecz biorąc, oprócz Ethereum istnieją trzy rodzaje zastosowań. Pierwsza kategoria to aplikacje finansowe, dające użytkownikom potężniejsze sposoby zarządzania i zawierania umów przy użyciu pieniędzy. Obejmuje to podzlecenia, pochodne instrumenty finansowe, kontrakty zabezpieczające, portfele oszczędnościowe, testamenty, a ostatecznie nawet niektóre klasy umów o pracę. Druga kategoria to aplikacje półfinansowe, w których zaangażowane są pieniądze, ale istnieje również ciężka strona niepieniężna tego, co się dzieje; Doskonałym przykładem jest samowymuszanie odbić się na rozwiązaniach problemów obliczeniowych. Wreszcie istnieją takie aplikacje, jak głosowanie online i zdecentralizowane zarządzanie które w ogóle nie są finansowe. + +### Systemy tokenów {#token-systems} + +Systemy tokenów blockchain mają wiele zastosowań, począwszy od podwalut reprezentujących aktywa takie jak USD lub złoto po firmę, indywidualne tokeny reprezentujące inteligentną nieruchomość, zabezpiecz nieprzerobione kupony, a nawet systemy tokenów bez powiązań z konwencjonalną wartością w ogóle używane jako systemy motywacyjne. Systemy tokenów są zaskakująco łatwe do wdrożenia w Ethereum. Kluczowym punktem do jest to, że waluta lub system tokenów, zasadniczo jest bazą danych z jedną operacją: odjąć X jednostki od A i dać X jednostkom B, z przepisem, że (1) A posiadała co najmniej X jednostek przed transakcją oraz (2) transakcja jest zatwierdzona przez A. Wszystko, czego potrzebuje do wdrożenia systemu tokenów to wdrożenie tej logiki do umowy. + +Podstawowy kod do implementacji systemu tokenów w Serpent wygląda tak: następuje: + + def wyślij (do, wartość): + jeśli siebie. torage[msg.sender] >= wartość: + siebie. torage[msg.sender] = self.storage[msg.sender] - wartość + samo. torage[to] = samodzielny.magazyn[to] + wartość + +Jest to zasadniczo dosłowne wdrożenie „systemu bankowego” funkcji transformacji stanu, opisanej powyżej w niniejszym dokumencie. Kilka dodatkowych linii kodu, aby zapewnić początkowy etap dystrybucji jednostek waluty w pierwszym miejscu i kilka innych skrzynek krawędziowych, i idealnie funkcja zostałaby dodana, aby umożliwić innym umowom zapytanie o saldo adresu. Ale to wszystko jest w porządku. Teoretycznie Systemy tokenów ethereum, działające jako subwaluty, mogą potencjalnie zawierać inną ważną funkcję, której w łańcuchu meta-waluty bazujące na Bitcoinach brakuje: możliwość uiszczania opłat za transakcje bezpośrednio w tej walucie. Sposób, w jaki miałaby być wdrożony, jest taki, że kontrakt utrzymałby saldo eteru, z którym zwrócił ether użyty do uiszczenia opłat na rzecz nadawcy, i napełniłby saldo pobierając wewnętrzne jednostki walutowe, które pobiera, i odsprzedając je na ciągłej aukcji. Użytkownicy musieliby zatem "aktywować" swoje konta z eterem, ale kiedy ether będzie tam taki, będzie mógł zostać ponownie użyty, ponieważ kontrakt będzie go zwracał za każdym razem. + +### Instrumenty pochodne i waluty o stabilnej wartości {#financial-derivatives-and-stable-value-currencies} + +Finansowe instrumenty pochodne są najczęstszym zastosowaniem „inteligentnego kontraktu ” i jednym z najprostszych do wdrożenia w kodzie. Głównym wyzwaniem dla realizacji umów finansowych jest to, że większość z nich wymaga odniesienia do zewnętrznego wskaźnika ceny; Na przykład bardzo pożądane zastosowanie jest inteligentnym kontraktem, który zabezpiecza się przed zmiennością eteru (lub innej kryptowaluty) w stosunku do amerykańskiego dolara, ale wykonanie tego wymaga od kontraktu wiedzieć, jaka jest wartość ETH/USD. Najprostszym sposobem na to jest kontrakt "kanał danych" utrzymywany przez konkretną stronę (np. NASDAQ) zaprojektowany tak, aby strona miała możliwość aktualizowania kontraktu w razie potrzeby, i udostępnienie interfejsu umożliwiającego innym kontraktom wysłanie wiadomości do tego kontraktu i odzyskanie odpowiedzi podającej cenę. + +Biorąc pod uwagę ten krytyczny składnik, kontrakt hedgingowy wyglądałby tak: następuje: + +1. Poczekaj, aż strona A wprowadzi 1000 etherów. +2. Poczekaj, aż strona B wprowadzi 1000 etherów. +3. Nagrywaj wartość USD 1000 eterów, obliczoną przez zapytanie o kontraktu na kanał w pamięci, powiedzmy, że to jest $x. +4. Po 30 dniach, zezwól A lub B na "reaktywację" kontraktu, aby wysłać $x wartość etheru (obliczoną przez ponowne zapytanie kontraktu w celu uzyskania nowej ceny) do A i reszty do B. + +Taka umowa miałaby znaczny potencjał w handlu kryptowalutami. Jeden z głównych wymienionych problemów dotyczących kryptowaluty jest fakt, że jest lotny; chociaż wielu użytkowników i sprzedawców może chcieć bezpieczeństwa i wygoda obchodzenia się z zasobami kryptograficznymi, mogą nie chcieć zmierzyć się z perspektywą utraty 23% wartości swoich środków w jednym dzień. Do tej pory najczęściej proponowanym rozwiązaniem było aktywów zabezpieczonych emitentami; emitent tworzy subwalutę, w której ma prawo do emisji i cofania jednostek uczestnictwa, i podaj jedną jednostkę waluty każdemu, kto dostarcza ją (offline) jedną jednostkę określonego składnika aktywów bazowych (np. Złoto, USD). Emitent obiecuje dostarczyć jedną jednostkę bazowego składnika aktywów każdemu, kto odsyła z powrotem jedną jednostkę kryptowaluty. Mechanizm ten pozwala każdemu niekryptograficznemu aktywowi "przekształcić go w aktywa kryptograficzne, pod warunkiem że emitent może być zaufany. + +W praktyce jednak emitenci nie zawsze są wiarygodni, a w niektórych przypadkach infrastruktura bankowa jest zbyt słaba lub zbyt wroga, aby takie usługi mogły istnieć. Alternatywnym rozwiązaniem są finansowe instrumenty pochodne. Tutaj, zamiast jednego emitenta dostarczającego środki do wykonania kopii zapasowej, zdecentralizowany rynek spekulantów, zakładający cenę kryptograficznego referencyjnego składnika aktywów (np. ETH) przejdzie do przodu, odgrywając tę rolę. W odróżnieniu od emitentów, spekulanci nie mają możliwości niewywiązania się ze zobowiązań z umowy, ponieważ kontrakt zabezpieczający przechowuje swoje środki w escrow. Zauważ, że to podejście nie jest w pełni zdecentralizowane, ponieważ zaufane źródło jest nadal potrzebne do zapewnienia znacznika ceny, chociaż jest to nawet nadal ogromna poprawa pod względem zmniejszenia wymogów w zakresie infrastruktury (w przeciwieństwie do emitenta, wystawienie ceny kanału nie wymaga żadnych licencji i może być sklasyfikowane jako swoboda wypowiedzi) i ograniczenie możliwości oszustw. + +### Systemy identyfikacji i reputacji {#identity-and-reputation-systems} + +Najwcześniejsza alternatywna kryptowaluta, [Namecoin](http://namecoin.org/), próbowała użyć blockchain podobny do Bitcoina, aby zapewnić system rejestracji nazwy, gdzie użytkownicy mogą rejestrować swoje nazwy w publicznej bazie danych wraz z innymi danymi. Główny cytowany przypadek użycia dotyczy a System [DNS](https://wikipedia.org/wiki/Domain_Name_System), mapowanie nazwy domen, takie jak „bitcoin.org” (lub, w przypadku Namecoin, „bitcoin.bit”) na adres IP. Inne przypadki użycia obejmują uwierzytelnianie poczty elektronicznej i potencjalnie bardziej zaawansowane systemy reputacji. Oto podstawowa umowa, aby dostarczyć system rejestracji nazw podobnych do Namecoin na Ethereum: + + def register(nazwa, wartość): + if !self.storage[name]: + self.storage[name] = wartość + +Umowa jest bardzo prosta; wszystko to jest baza danych wewnątrz sieci Ethereum, która może być dodawana do sieci ale nie modyfikowana ani usuwana. Każdy może zarejestrować nazwę z pewną wartością, a ta rejestracja zostanie zachowana na zawsze. Bardziej zaawansowana umowa rejestracji nazw będzie również zawierać "klauzulę funkcji" umożliwiającą innym umowom zapytanie o nie, jak również mechanizm dla "właściciela" (tj. pierwszy rejestrujący) nazwy mającej na celu zmianę danych lub przeniesienie własności. Można nawet dodać reputację i funkcji sieciowej zaufania. + +### Zdecentralizowane przechowywanie plików {#decentralized-file-storage} + +W ciągu ostatnich kilku lat pojawiło się wiele popularnych startów przechowywania plików online, z których najważniejszym jest Dropbox, szukanie pozwolenia użytkownikom na przesłanie kopii zapasowej dysku twardego i przechowywanie kopii zapasowej i umożliwienie użytkownikowi dostępu do niej w zamian za miesięczną opłatę. Jednak w tym momencie rynek przechowywania plików jest stosunkowo nieefektywny; kursory spojrzą na różne [istniejące rozwiązania](http://online-storage-service-review.toptenreviews.com/) pokazuje, że: w szczególności na poziomie 20–200 GB na poziomie, w którym nie pojawiają się żadne wolne kwoty ani rabaty na poziomie przedsiębiorstwa, miesięczne ceny głównego przechowywania plików są takie, że płacisz za więcej niż koszt całego dysku twardego w jednym miesiącu. Kontrakty Ethereum mogą umożliwić opracowanie zdecentralizowanego ekosystemu przechowywania plików, gdzie indywidualni użytkownicy mogą zarobić małe ilości pieniędzy poprzez wynajem własnych twardych dysków, a niewykorzystane miejsce może zostać wykorzystane do dalszego obniżenia kosztów przechowywania plików. + +Kluczowym elementem takiego urządzenia byłoby to, co nazwaliśmy "zdecentralizowanym kontraktem Dropbox". Umowa ta działa w następujący sposób. Najpierw dzieli żądane dane na bloki, szyfrując każdy blok dla prywatności i buduje z tego drzewo Merkle. Jeden z nich tworzy kontraktu z regułą, że każdy N bloków, kontrakt wybierze losowy indeks w drzewie Merkle (używając poprzedniego skrótu bloku, dostępny z kodu kontraktu, jako źródło losowania), i dać X eterowi pierwszemu podmiotowi, który dostarczył transakcję z uproszczonym dowodem posiadania tego bloku w tym określonym indeksie drzewa. Gdy użytkownik chce ponownie pobrać swój plik, może użyć protokołu kanału mikropłatności (np. zapłać 1 szabo per 32 kilobajtów) za odzyskanie pliku; najbardziej opłacalnym podejściem jest dla zleceniodawcy, aby nie publikować transakcji do końca, zamiast zastąpienie transakcji nieco bardziej dochodową transakcją tą samą nraz po 32 kilobajtach. + +Ważną cechą protokołu jest to, że: chociaż może wydawać się, że jeden ufa wielu losowym węzłom, aby nie zdecydowały się zapomnieć o pliku, jeden może zmniejszyć to ryzyko do niemal zera dzieląc plik na wiele kawałków poprzez tajne udostępnianie, i oglądanie kontraktów, aby zobaczyć każdy element jest nadal w posiadaniu jakiegoś węzła. Jeśli kontrakt nadal płaci pieniędze, to stanowi dowód kryptograficzny, że ktoś tam nadal przechowuje plik. + +### Zdecentralizowana Organizacja Autonomiczna {#decentralized-autonomous-organizations} + +Ogólna koncepcja „zdecentralizowanej organizacji autonomicznej” jest taka: wirtualnego podmiotu, który ma określony zestaw członków lub udziałowców które, być może z większością 67%, mają prawo do wydawania środków finansowych podmiotu funduszy i modyfikować jego kod. Członkowie wspólnie decydują, w jaki sposób organizacja powinna przydzielić swoje środki. Metody przydzielania a Fundusze DAO mogą obejmować nagrody, pensje, a nawet bardziej egzotyczne mechanizmy, takie jak wewnętrzna waluta, aby nagradzać pracę. Zasadniczo replikuje legalne obrazy tradycyjnej firmy lub non-profit, ale przy użyciu wyłącznie kryptograficznej technologii blockchain. Jak dotąd wiele rozmów o DAO-ach dotyczyło modelu „kapitalistycznego” „zdecentralizowanej autonomicznej korporacji” (DAC) z dywidendą otrzymującą udziałowców i zbywalnymi akcjami; alternatywę opisaną być może jako „zdecentralizowana społeczność autonomiczna”, gdyby wszyscy członkowie mieli równy udział w procesie podejmowania decyzji i wymagali, aby 67% istniejących członków wyraziło zgodę na dodanie lub usunięcie członka. Wymaganie, że jedna osoba może mieć tylko jedno członkostwo, musiałoby być wtedy wyegzekwowane wspólnie przez grupę. + +Ogólny zarys kodowania DAO przedstawia się następująco. Najprostszy projekt to po prostu fragment samomodyfikującego się kodu, który zmienia się, jeśli dwie trzecie członków zgadza się na zmianę. Chociaż kod teoretycznie jest niezmienny, można łatwo dotrzeć do tego i mieć faktyczną zmienność poprzez posiadanie fragmentów kodu w osobnych kontraktach, oraz posiadanie adresów, z których kontrakty na wezwanie do przechowywania przechowywane w zmodyfikowanym magazynie. W prostej realizacji takiej umowy DAO będą trzy typy transakcji, wyróżnione danymi dostarczonymi w transakcji: + +- `Struktura danych]` aby zarejestrować propozycję z indeksem `i` aby zmienić adres w indeksie magazynu `K` na wartość `V` +- `[1,i]` aby zarejestrować głos za wnioskiem `i` +- `[2,i]` aby sfinalizować propozycję `i` jeśli została złożona wystarczająca ilość głosów + +Umowa zawierałaby wówczas klauzule dla każdego z nich. Przechowuje zapis wszystkich otwartych zmian pamięci, wraz z listą osób, na które zagłosowały. Miałaby również listę wszystkich członków. Gdy jakakolwiek zmiana pamięci dostanie się do dwóch trzecich głosujących na nią członków, finalizacja transakcji może wykonać zmianę. Bardziej zaawansowany szkielet miałby również wbudowaną możliwość głosowania na funkcje takie jak wysyłanie transakcji, dodawanie członków i usuwanie członków, a nawet może przewidywać dla [Płynnej Demokracji](https://wikipedia.org/wiki/Delegative_democracy)- delegacji (np. każdy może przypisać kogoś do głosowania, i przypisanie jest translityczne, więc jeśli A przypisuje B i B przypisuje C wtedy C określa głos A). Ten projekt pozwoliłby DAO na rozwój organiczny jako społeczności zdecentralizowanej, umożliwienie ludziom w końcu delegowania zadania filtrowania, kto jest członkiem specjalistów, chociaż w odróżnieniu od „obecnego systemu” specjaliści mogą z łatwością wyskakać i z czasem przebywać w sytuacji, gdy indywidualni członkowie społeczności zmieniają swoje dostosowania. + +Alternatywnym modelem jest zdecentralizowana korporacja, gdzie każdy rachunek może mieć zero lub więcej akcji, a dwie trzecie akcji jest zobowiązane do podjęcia decyzji. Kompletny szkielet obejmowałby funkcje zarządzania aktywami, możliwość złożenia oferty kupna lub sprzedaży akcji, oraz zdolność przyjmowania ofert (najlepiej z mechanizmem dopasowania zleceń w ramach umowy). Delegacja istniałaby również w stylu płynnej demokracji, generalizując koncepcję rady dyrektorów. + +### Dalsze zastosowania {#further-applications} + +**1. Portfele oszczędzające**. Załóżmy, że Alice chce zabezpieczyć swoje fundusze, ale obawia się, że straci lub ktoś zhakuje swój klucz prywatny. Wstawia ether w kontrakt z Bob, bankiem, w następujący sposób: + +- Sama Alice może wypłacić maksymalnie 1% środków dziennie. +- Tylko Bob może wypłacić maksymalnie 1% środków dziennie, ale Alice ma możliwość dokonania transakcji z jej kluczem wyłączającym tę zdolność. +- Alice i Bob razem mogą wycofać wszystko. + +Zwykle 1% dziennie jest wystarczające dla Alice i jeśli Alice chce wycofać więcej może skontaktować się z Bobem w celu uzyskania pomocy. Jeśli klucz Alice zostanie zhakowany, biegnie do Boba, aby przenieść środki do nowego kontraktu. Jeśli straci swój klucz, Bob otrzyma ostatecznie środki. Jeśli Bob okaże się złośliwy, Alice może utracić możliwość wypłacenia środków. + +**2. Ubezpieczenie upraw**. Można łatwo stworzyć kontrakt pochodny poprzez wykorzystanie źródła danych pogodowych zamiast indeksu ceny. Jeśli rolnik z Iowa kupi instrument pochodny, który się opłaca odwrotnie w oparciu o opady w stanie Iowa, to jeśli jest susza, rolnik automatycznie otrzyma pieniądze, a jeśli będzie wystarczająco dużo deszczu, rolnik będzie szczęśliwy, ponieważ ich plony będą dobrze sobie radzić. Można go rozszerzyć na ogólne ubezpieczenie od klęsk żywiołowych. + +**3. Zdecentralizowany kanał danych**. W przypadku umów finansowych na różnica, faktycznie może być możliwa decentralizacja strumienia danych za pośrednictwem protokołu o nazwie [SchellingCoin](http://blog.ethereum.org/2014/03/28/schellingcoin-a-minimal-trust-universal-data-feed/). SchellingCoin działa zasadniczo w następujący sposób: N stron wstawionych do systemu wartości danego odniesienia (np. cena ETH/USD), wartości są sortowane, a każdy między 25. a 75. percentylem otrzymuje jeden token jako nagrodę. Każdy ma motywację do udzielenia odpowiedzi, która wszyscy inni zapewnią, i jedyną wartością, na którą wiele graczy może realistycznie się zgodzić, jest oczywisty domyślny: prawda. Tworzy to zdecentralizowany protokół, który teoretycznie może dostarczyć dowolną liczbę wartości, włączając w to cenę ETH/USD, temperaturę w Berlinie lub nawet wynik konkretnego twardego obliczenia. + +**4. Inteligentna escrow z multipodpisem**. Bitcoin pozwala na podpisywanie umów transakcji, na które na przykład trzy z pięciu kluczy mogą wydać środki. Ethereum pozwala na bardziej szczegółowość; na przykład czterech na pięć może wydawać wszystko, trzy na pięć mogą wydać do 10% na dobę, a dwa na pięć mogą wydać do 0. % dziennie. Dodatkowo, Ethereum multisig jest asynchroniczny - dwie strony mogą zarejestrować swoje podpisy w blockchain w różnych momentach, a ostatni podpis automatycznie wyśle transakcję. + +**5. Chmura obliczeniowa**. Technologia EVM może być również używana do tworzenia weryfikowalnego środowiska obliczeniowego, pozwalając użytkownikom na zwrócenie się do innych o przeprowadzenie obliczeń, a następnie opcjonalnie poproś o dowody na to, że obliczenia w wybranych losowo punktach kontrolnych zostały wykonane poprawnie. Pozwala to na stworzenie rynku przetwarzania w chmurze, na którym każdy użytkownik może uczestniczyć za pomocą komputera stacjonarnego, laptopa lub specjalnego serwera, i kontrola punktowa wraz z depozytami zabezpieczającymi może być wykorzystana w celu upewnienia się, że system jest wiarygodny (tj. węzły nie mogą dochodowo oszukiwać). Chociaż taki system może nie być odpowiedni dla wszystkich zadań; zadań, które wymagają wysokiego poziomu komunikacji międzyprocesowej, na przykład nie można łatwo wykonać na dużej chmurze węzłów. Inne zadania są jednak znacznie łatwiejsze do równoległe; projekty takie jak SETI@home, folding@home i genetyczne algorytmy mogą być z łatwością zaimplementowane na tej platformie. + +**6. Gry typu peer-to-peer**. Dowolna liczba protokołów gier hazardowych typu peer-to-peer, takich jak Frank Stajano i Richard Clayton [Cyberdice](http://www.cl.cam.ac.uk/~fms27/papers/2008-StajanoCla-cyberdice.pdf), może być zaimplementowane w blockchainu Ethereum. Najprostszy protokół gier to po prostu kontrakt na różnicę w następnym bloku hash, i bardziej zaawansowane protokoły można z nich opracować, tworząc usługi w zakresie gier hazardowych z opłatami niemal zerowymi, które nie mają możliwości oszukania. + +**7. Rynki prognostyczne**. Pod warunkiem, że wyścig lub SchellingCoin, rynki prognoz są również łatwe do wdrożenia, rynki prognozowania wraz z SchellingCoin mogą okazać się pierwszym głównym punktem zastosowania [futarchii](http://hanson.gmu.edu/futarchy.html) jako protokołu zarządzania zdecentralizowanymi organizacjami. + +**8. Zdecentralizowane rynki**w łańcuchu przy użyciu systemu tożsamości i reputacji jako bazy. + +## Różne obszary i obawy {#miscellanea-and-concerns} + +### Zmodyfikowane wdrożenie GHOST {#modified-ghost-implementation} + +Protokół GHOST to innowacja po raz pierwszy wprowadzony przez Yonatana Sompolinsky'ego i Aviva Zohara w [grudniu 2013](https://eprint.iacr.org/2013/881.pdf). Motywacja uzasadniająca wprowadzenie GHOST polega na tym, że blockchain z szybkim czasem potwierdzania cierpi z powodu zmniejszonego bezpieczeństwa ze względu na wysoką przeżywalność - ponieważ bloki potrzebują czasu pewien czas rozesłanie w sieci. Jeśli górnik A wydobywa blok, a następnie zdarzy się, że górnik B wydobędzie kolejny blok, zanim blok wydobycia A rozpropaguje się na B, blok górnika B zmarnuje się i nie przyczyni się do bezpieczeństwa sieci. Ponadto istnieje problem centralizacji: jeśli górnik A stanowi pulę wydobycia o 30% mocy hash, a B ma 10% mocy hash, Istnieje ryzyko wytworzenia przestarzałego bloku przez 70% czasu (ponieważ pozostałe 30% czasu A wyprodukował ostatni blok, a więc natychmiast uzyska dane kopalniane), podczas gdy B będzie ryzykował wytworzenia przestarzałego bloku przez 90% czasu. Zatem, jeśli interwał bloku jest wystarczająco krótki, aby przestarzała szybkość była wysoka, Będzie znacznie bardziej efektywny ze względu na jego wielkość. Z tymi dwoma objawami łącznie. blockchain, które szybko produkują bloki, bardzo prawdopodobne jest, że doprowadzi do jednej puli wydobywczej posiadającej wystarczająco dużo energii sieciowej, aby faktycznie sprawować kontrolę nad procesem wydobywania. + +Jak opisali Sompolinsky i Zohar, GHOST rozwiązuje pierwszy problem traty bezpieczeństwa sieci poprzez uwzględnienie przestarzałych bloków w obliczeniach , który łańcuch jest „najdłuższy”; to znaczy nie tylko rodzici kolejni przodkowie bloku, ale także starsi potomkowie bloku (w żargonie Ethereum „wujkowie”) zostają dodani do wyliczenia, który blok jest zabezpieczony nawiększą łączną liczbą proof of work. Aby rozwiązać drugą kwestię błędu centralizacji, wychodzimy poza protokół opisany przez Sompolinskiego i Zohara oraz zapewniamy nagrody za przestarzałe bloki: przestarzały blok otrzymuje 87,5 % nagrody bazowej nagród, a siostrzeniec, który zawiera przestarzały blok, otrzymuje pozostałe 12,5%. Opłaty transakcyjne nie są jednak przyznawane wujom. + +Ethereum wdraża uproszczoną wersję GHOST, która obniża się tylko o 7 poziomów. W szczególności definiuje się je w następujący sposób: + +- Blok musi określać nadrzędny i musi określać 0 lub więcej wujków +- Wujek zawarty w bloku `B` musi mieć następujące właściwości: +- Musi być bezpośrednim dzieckiem `k`-th generator `B`, gdzie `2 <= k <= 7`. +- Nie może być przodkiem `B` +- Wujek musi być prawidłowym nagłówkiem bloku, ale nie musi być wcześniej zweryfikowanym lub nawet poprawnym blokiem +- Wujek musi różnić się od wszystkich wujków zawartych w poprzednich blokach i wszystkich innych wujków zawartych w tym samym bloku (brak podwójnego włączenia) +- Za każdego wujka `U` w bloku `B`, górnik `B` otrzymuje dodatkowe 3,125% dodanych do swojej nagrody z bazy monet, a górnik z U otrzymuje 93,75% standardowej nagrody z bazy monet. + +Ta ograniczona wersja GHOST, z wujkami włączanymi tylko do 7 generacji, była używana z dwóch powodów. Po pierwsze, nieograniczony GHOSTmógłby uwzględnić zbyt wiele komplikacji w obliczeniach, którzy wujkowie dla danego bloku są ważni. Po drugie, nieograniczony GHOST z rekompensatą używaną w Ethereum usuwa zachętę dla górnika do wydobywania w głównym łańcuchu, a nie w łańcuchu publicznego atakującego. + +### Opłaty {#fees} + +Ponieważ każda transakcja publikowana w blockchain nakłada na sieć koszt pobrania i zweryfikowania, istnieje potrzeba mechanizmu regulacyjnego, zazwyczaj obejmującego opłaty transakcyjne, aby zapobiec nadużyciom. Domyślnym podejściem, stosowanym w Bitcoini, jest wprowadzenie czysto dobrowolnych opłat, polegając na tym, że górnicy będą działać jako strażnicy i ustalać dynamiczne minima. Ta metoda została przyjęta bardzo pozytywnie w społeczności Bitcoin, w szczególności dlatego, że jest ona „oparta na rynku”, umożliwiając, by podaż i popyu między górnikami a nadawcami transakcji określała ceny. Problem z tym rozumowaniem polega jednak na tym, że przetwarzanie transakcji nie jest rynkiem; chociaż intuicyjnie atrakcyjne jest konstruowanie przetwarzania transakcji jako usługi, którą górnik oferuje nadawcy, w rzeczywistości każda transakcja, którą górnik uwzględnia, będzie musiała być przetwarzana przez każdy węzeł w sieci, więc ogromną większość kosztów przetwarzania transakcji ponosi strona trzecia, a nie górnik, który podejmuje decyzję o uwzględnieniu. Dlatego bardzo prawdopodobne jest wystąpienie problemów typu „tragedia wspólnego pastwiska”. + +Jak się jednak okazuje, ta wada mechanizmu rynkowego, po przyjęciu konkretnego, nieprecyzyjnego założenia upraszczającego, magicznie się usuwa. Argumentacja jest następująca. Załóżmy, że: + +1. Transakcja prowadzi do operacji `k`, oferującej nagrodę `kR` każdemu górnikowi, który tę transakcję uwzględnia, gdzie `R` jest ustawiony przez nadawcę, a `k` i `R` są (z grubsza) wcześniej widoczne dla górnika. +2. Operacja ma koszt przetwarzania `C` dla każdego węzła (tj. wszystkie węzły mają taką samą wydajność) +3. Jest `N` węzłów kopalnych, każdy z nich ma dokładnie taką samą moc przetwarzania (tj. `1/N` razem) +4. Nie ma żadnych pełnych węzłów niekopalnych. + +Górnik byłby skłonny przetworzyć transakcję, jeśli oczekiwana nagroda jest wyższa niż koszt. Tak więc oczekiwana nagroda to `kR/N`, ponieważ górnik ma `1/N` szans na przetworzenie następnego bloku, a koszt przetwarzania dla górnika wynosi po prostu `kC`. A zatem górnicy będą uwzględniać transakcje, w których `kR/N > kC` lub `R > NC`. Zauważ, że `R` jest opłatą na operację dostarczoną przez nadawcę, a zatem jest niższą wartością korzyści, jakie nadawca uzyskuje transakcji, i `NC` to koszt dla całej sieci razem z przetwarzaniem operacji. W związku z tym górnicy mają motywację do uwzględniania tylko tych transakcji, dla których całkowita korzyść użytkowa przewyższa koszt. + +Istnieje jednak kilka istotnych odstępstw od tych założeń w rzeczywistości: + +1. Górnik ponosi wyższe koszty przetwarzania transakcji niż innych weryfikujących węzłów, ponieważ dodatkowy czas weryfikacji opóźnia propagację bloku i tym samym zwiększa szansę, że blok stanie się przestarzały. +2. Istnieją pełne węzły niekopalne. +3. Dystrybucja energii wydobywczeh może w praktyce stać się radykalnie nieegalitarna. +4. Spekulanci, wrogowie polityczni i maszyny, których funkcja użyteczności obejmuje wyrządzanie szkód w sieci, już istnieją, i mogą sprytnie tworzyć kontrakty, w których ich koszt jest znacznie niższy niż koszt zapłacony przez inne weryfikujące węzły. + +(1) daje górnikowi tendencję do uwzględniania mniejszej liczby transakcji, a (2) wzrasta `NC`; w związku z tym te dwa efekty co najmniej częściowo znoszą się nawzajem [Jak?](https://github.com/ethereum/wiki/issues/447#issuecomment-316972260) (3) i (4) są głównymi problemami; aby je rozwiązać, tworzymy zmienną pokrywę: żaden blok nie może mieć więcej operacji niż `BLK_LIMIT_FACTOR` razy długoterminowa wykładnicza średnia ruchoma. Konkretnie: + + blk.oplimit = floor((blk.parent.oplimit \* (EMAFACTOR - 1) + + floor(parent.opcount \* BLK\_LIMIT\_FACTOR)) / EMA\_FACTOR) + +`BLK_LIMIT_FACTOR` i `EMA_FACTOR` to stałe, które zostaną na razie ustawione na 65536 i 1,5, ale prawdopodobnie zostaną zmienione po dalszej analizie. + +Istnieje kolejny czynnik zniechęcający do dużych rozmiarów bloków w Bitcoin: propagacja dużych bloków trwa dłużej i dlatego występuje większe prawdopodobieństwo, że staną się przestarzałe. W Ethereum bloki o wysokim zużyciu gazu mogą również wymagać więcej czasu na propagację, zarówno dlatego, że są fizycznie większe, jak i dlatego, że przetwarzanie przejścia stanu transakcji do walidacji trwa dłużej. Ten czynnik zniechęcający do opóźnień jest istotnym czynnikiem w Bitcoinie, ale mniej istotnym w Ethereum ze względu na protokół GHOST; dlatego poleganie na regulowanych limitach bloków zapewnia bardziej stabilną podstawę. + +### Obliczanie i kompletność w sensie Turinga {#computation-and-turing-completeness} + +Ważną informacją jest to, że maszyna wirtualna Ethereum jest kompletna w sensie Turinga; oznacza to, że kod EVM może kodować każde obliczenie które może zostać przeprowadzone, w tym nieskończone pętle. Kod EVM umożliwia zapętlenie na dwa sposoby. Po pierwsze, istnieje instrukcja `JUMP`, która pozwala programowi wrócić do poprzedniego miejsca w kodzie, i instrukcje `JUMPI` przeskoku warunkowego, dopuszczanie wyrażeń takich jak `while x < 27: x = x * 2`. Po drugie, kontrakty mogą wywoływać inne kontrakty, potencjalnie umożliwiając zapętlenie poprzez rekurencję. To naturalnie prowadzi do problemu: czy złośliwi użytkownicy mogą zasadniczo wyłączyć górników i pełne węzły, zmuszając ich do wejścia w nieskończoną pętlę? Kwestia ta pojawia się z powodu problemu w informatyce znanego jako problem zatrzymania: nie ma sposobu, aby powiedzieć, w ogólnym przypadku, czy dany program kiedykolwiek się zatrzyma. + +Jak opisano w sekcji dotyczącej zmiany stanu, nasze rozwiązanie działa w ten sposób, że wymagamy od transakcji określenia maksymalnej liczby kroków obliczeniowych, które może ona wykonać, a jeśli wykonanie trwa dłużej, obliczenia są przerywane, ale opłaty są nadal uiszczane. Komunikaty działają w ten sam sposób. Aby pokazać motywację uzasadniającą nasze rozwiązanie, weźmy pod uwagę następujące przykłady: + +- Atakujący tworzy kontrakt, który uruchamia nieskończoną pętlę, a następnie wysyła transakcję aktywującą tę pętlę do górnika. Górnik przetwarza transakcję, uruchamia nieskończoną pętlę i czeka, aż skończy się gaz. Nawet jeśli w trakcie wykonywania transakcji zabraknie paliwa i zatrzyma się ona w połowie, transakcja jest nadal ważna, a górnik nadal żąda od atakującego opłaty za każdy krok obliczeniowy. +- Atakujący tworzy bardzo długą nieskończoną pętlę z zamiarem zmuszenia górnika do kontynuowania obliczeń przez tak długi czas, że do czasu zakończenia obliczeń pojawi się jeszcze kilka bloków i nie będzie możliwe, aby górnik uwzględnił transakcję, aby zażądać opłaty. Niemniej jednak napastnik będzie musiał przesłać wartość `STARTGAS`, ograniczając liczbę kroków obliczeniowych wykonania, więc górnik dowie się wcześniej, że obliczenie będzie wymagać zbyt dużej liczby kroków. +- Atakujący widzi kontrakt z kodem w jakiejś formie jak `send(A,contract.storage[A]); contract.storage[A] = 0`, i wysyła transakcję z wystarczającą ilością gazu, aby wykonać pierwszy krok, ale nie drugi (tzn. dokonać wypłaty, ale nie pozwolić na zmniejszenie salda). Autor kontraktu nie musi się martwić o ochronę przed takimi atakami, ponieważ jeśli wykonanie kontraktu zatrzyma się w połowie zmian, zostaną one cofnięte. +- Kontrakt finansowy działa poprzez przyjęcie mediany dziewięciu zastrzeżonych kanałów danych w celu zminimalizowania ryzyka. Atakujący przejmuje jeden z kanałów danych, który jest zaprojektowany do modyfikowania za pomocą mechanizmu wywołania zmiennego adresu opisanego w sekcji dotyczącej DAO i konwertuje go do uruchomienia nieskończonej pętli, próbując w ten sposób wymusić wszelkie próby odzyskania środków z kontraktu finansowego do wyczerpania gazu. Jednak umowa finansowa może ustalić limit gazu na komunikacie, aby zapobiec temu problemowi. + +Alternatywą dla kompletności transakcji jest niekompletność, gdzie `JUMP` i `JUMPI` nie istnieją i tylko jedna kopia każdego kontraktu może istnieć w danym momencie. W tym systemie opisany system opłat i niepewność dotycząca skuteczności naszego rozwiązania mogą nie być konieczne, ponieważ koszt wykonania kontraktu byłby ograniczony wielkością kontraktu. Ponadto, niekompletność w sensie Turinga nie jest nawet tak dużym ograniczeniem; ze wszystkich przykładów kontraktów, które wymyśliliśmy wewnętrznie, jak dotąd tylko jeden wymagał pętli, a nawet ta pętla mogła być usunięta przez wykonanie 26 powtórzeń jednowierszowego fragmentu kodu. Biorąc pod uwagę poważne następstwa kompletności w sensie Turinga i ograniczone korzyści, dlaczego nie ma po prostu języka Turinga niekompletnego w sensie Turinga? W rzeczywistości jednak niekompletność jest daleka od czystego rozwiązania problemu. Aby zobaczyć dlaczego, zastanów się nad następującymi kontraktami: + + C0: call(C1); call(C1); + C1: call(C2); call(C2); + C2: call(C3); call(C3); + ... + C49: call(C50); call(C50); + C50: (uruchom jeden krok programu i zapisz zmianę w pamięci) + +Teraz wyślij transakcję do A. Zatem w 51 transakcjach mamy kontrakt, który zajmuje 250 kroków obliczeniowych. Górnicy mogliby spróbować wykryć takie bomby logiczne z wyprzedzeniem, utrzymując przy każdym kontrakcie wartość określającą maksymalną liczbę kroków obliczeniowych, jakie może on wykonać, i obliczając ją dla kontraktów wywołujących rekurencyjnie inne kontrakty, ale wymagałoby to od górników zakazania kontraktów, które tworzą inne kontrakty (ponieważ tworzenie i wykonywanie wszystkich 26 powyższych kontraktów można by łatwo połączyć w jeden kontrakt). Innym problematycznym punktem jest to, że pole adresowe komunikatu jest zmienne, więc w zasadzie nie można nawet powiedzieć, które inne kontrakty będą wywoływane przez dany kontrakt z wyprzedzeniem. W związku z tym mamy zaskakujący wniosek: kompletność w sensie Turinga jest zaskakująco łatwa do opanowania, a jej brak kompletności jest równie zaskakująco trudny do opanowania, chyba że zastosuje się dokładnie takie same kontrole – ale w takim przypadku dlaczego nie pozwolić, by protokół był kompletny w sensie Turinga? + +### Waluta i emisja {#currency-and-issuance} + +Sieć Ethereum zawiera własną, wbudowaną walutę, ether, która służy podwójnemu celowi: zapewnia podstawową warstwę płynności, umożliwiając efektywną wymianę między różnymi rodzajami aktywów cyfrowych oraz, co ważniejsze, zapewniając mechanizm uiszczania opłat za transakcje. Dla wygody i w celu uniknięcia przyszłych sporów (patrz obecna debata mBTC/uBTC/satoshi w Bitcoin), nominały będą wstępnie oznaczone: + +- 1: wei +- 1012: szabo +- 1015: finney +- 1018: ether + +Należy to traktować jako rozszerzoną wersję pojęcia „dolarów” i „centów” lub „BTC” i „satoshi”. W najbliższej przyszłości oczekujemy, że „ether” będzie używany do zwykłych transakcji, „finney” do mikrotransakcji, a „szabo” i „wei” do dyskusji technicznych na temat opłat i implementacji protokołu; pozostałe nominały mogą stać się użyteczne później i nie powinny być w tym momencie włączane do klientów. + +Model emisji będzie następujący: + +- Ether zostanie opublikowany w sprzedaży walutowej po cenie 1000-2000 etheru na BTC, mechanizm służący finansowaniu organizacji Ethereum i opłacie za rozwój, który został wykorzystany z powodzeniem przez inne platformy, takie jak Mastercoin i NXT. Wcześni nabywcy odniosą korzyści z większych rabatów. BTC otrzymany ze sprzedaży zostanie całkowicie wykorzystany do wypłacania wynagrodzenia programistom i zainwestowanyc w różne projekty for-profit i non-profit w ekosystemu Ethereum i kryptowaluty. +- 0.099x całkowita kwota sprzedana (60102216 ETH) zostanie przeznaczona dla organizacji w celu wynagrodzenia wczesnych uczestników i zapłacenia wydatków denominowanych w ETH przed blokiem genezy. +- 0,099x łączna ilość sprzedanych produktów będzie utrzymana jako długoterminowa rezerwa. +- 0,26x łączna sprzedana ilość zostanie przydzielona górnikom na rok na zawsze po tym punkcie. + +| Grupa | Przy wprowadzeniu | Po 1 roku | Po 5 latach | +| --------------------------------- | ----------------- | --------- | ----------- | +| Jednostki waluty | 1,198X | 1,458X | 2,498X | +| Kupujący | 83,5% | 68,6% | 40,0% | +| Rezerwa wydana przed sprzedażą | 8,26% | 6,79% | 3,96% | +| Rezerwa wykorzystana po sprzedaży | 8,26% | 6,79% | 3,96% | +| Górnicy | 0% | 17,8% | 52,0% | + +**Długoterminowy wzrost podaży (w procentach)** + +![Inflacja w Ethereum](./ethereum-inflation.png) + +_Pomimo liniowej emisji waluty, podobnie jak w przypadku Bitcoina z czasem stopa wzrostu podaży dąży jednak do zera_ + +Dwa główne wybory w powyższym modelu to (1) istnienie i wielkość puli zasobów oraz (2) istnienie stale rosnącej liniowej podaży, w przeciwieństwie do ograniczonej podaży, jak w przypadku Bitcoina. Uzasadnienie puli zasobów jest następujące. Jeśli by pula zasobów nie istniała, a liniowa emisja zmniejszyła się do 0. 17x dla zapewnienia tej samej stopy inflacji, a następnie całkowita ilość eteru wynosiłaby 16,5% mniej, więc każda jednostka byłaby warta o 19,8% więcej. Tak więc w równowadze 19,8% więcej etheru zostałoby zakupione w sprzedaży, więc każda jednostka byłaby znów tak samo cenna jak poprzednio. Organizacja miałaby wtedy również 1,198x więcej BTC, które można uznać za podzielone na dwie części: oryginalny BTC i dodatkowe 0,198x. W związku z tym ta sytuacja jest _dokładnie równoważna_ z zaopatrzeniem, ale przy jednej istotnej różnicy: organizacja posiada wyłącznie BTC, a więc nie jest zachęcana do wspierania wartości jednostki etheru. + +Stały model liniowego wzrostu podaży zmniejsza ryzyko tego, co niektórzy postrzegają jako nadmierne stężenie bogactwa w Bitcoin, i daje osobom jednostek waluty, jednocześnie zachowując silną zachętę do uzyskania i wstrzymania eteru, ponieważ „stopa wzrostu podaży” wyrażona jako procent nadal wynosi w miarę upływu czasu. Teoretyzujemy również, że ponieważ monety są zawsze tracone z czasem z powodu nieostrożności, śmierci, itp., a utrata monet może być modelowana jako procent całkowitej podaży na rok, że całkowita podaż waluty w obiegu w rzeczywistości ostatecznie ustabilizuje się na wartości równej rocznej emisji podzielonej przez wskaźnik utraty (np. przy stopie strat 1%, gdy podaż osiągnie 26X, 0,26X będzie wydobywane i 0,26X tracone każdego roku, tworząc równowagę). + +Zauważ, że w przyszłości Ethereum przełączy się na model proof-of-stake dla bezpieczeństwa, ograniczając wymaganie emisji do jakiejś wartości między zerem a 0,05X rocznie. W przypadku, gdy organizacja Ethereum straci fundusze lub z jakiegokolwiek innego powodu zniknie, pozostawiamy otwartą „umowę społeczną”: każdy ma prawo do stworzenia przyszłej wersji kandydata Ethereum, pod jedynym warunkiem, że ilość eteru musi być co najwyżej równa `60102216 * (1. 198 + 0.26 * n)` gdzie `n` jest liczbą lat po bloku genezy. Twórcy mogą swobodnie sprzedać lub w inny sposób przypisać część lub całość różnicy między zwiększeniem podaży napędzanym przez PoS a maksymalnym dopuszczalnym zwiększeniem podaży do zapłaty za rozwój. Aktualizacje kandydujące, które nie są zgodne z umową społeczną, mogą być w uzasadniony sposób rozwidlone na wersje zgodne. + +### Centralizacja wydobycia {#mining-centralization} + +Algorytm wydobywczy Bitcoin działa w ten sposób, że górnicy obliczają SHA256 na lekko zmodyfikowanych wersjach nagłówka bloku miliony razy w kółko, aż w końcu jeden z węzłów znajdzie wersję, której hash jest mniejszy niż docelowy (obecnie około 2192). Ten algorytm wydobywania jest jednak podatny na dwie formy centralizacji. Po pierwsze, ekosystem górniczy został zdominowany przez ASIC (układy scalone specyficzne dla zastosowań), chipy komputerowe zaprojektowane dla konkretnego zadania wydobycia Bitcoina, a zatem tysiące razy bardziej wydajne. Oznacza to, że wydobycie bitcoinów nie jest już wysoce zdecentralizowanym i egalitarnym przedsięwzięciem, wymagającym milionów dolarów kapitału, aby efektywnie w nim uczestniczyć. Po drugie, większość górników Bitcoin nie wykonuje walidacji bloków lokalnie; zamiast tego polegają na scentralizowanej puli wydobywczej, która dostarcza nagłówki bloków. Ten problem jest prawdopodobnie poważniejszy: w czasie pisania tego tekstu trzy największe pule górnicze pośrednio kontrolują około 50% mocy obliczeniowej w sieci Bitcoin, chociaż jest to złagodzone przez fakt, że górnicy mogą przejść do innych pul górniczych, jeśli jakaś pula lub koalicja próbuje ataku 51%. + +Obecnym zamiarem w Ethereum jest wykorzystanie algorytmu wydobywczego, w którym górnicy są zobowiązani do pobierania losowych danych ze stanu, obliczania kilku losowo wybranych transakcji z ostatnich N bloków w blockchainie i zwracania skrótu wyniku. Ma to dwie ważne korzyści. Po pierwsze, kontrakty Ethereum mogą zawierać wszelkiego rodzaju obliczenia, więc Ethereum ASIC byłby zasadniczo ASIC do obliczeń ogólnych – np. lepszy CPU. Po drugie, wydobywanie wymaga dostępu do całego łańcucha bloków, co zmusza górników do przechowywania całego łańcucha bloków i przynajmniej weryfikowania każdej transakcji. Eliminuje to potrzebę istnienia scentralizowanych pul wydobywczych; chociaż pule wydobywcze mogą nadal pełnić uzasadnioną rolę wyrównywania losowości dystrybucji nagród, funkcja ta może być równie dobrze pełniona przez pule peer-to-peer bez centralnej kontroli. + +Niniejszy model nie jest testowany, i mogą pojawić się trudności w unikaniu pewnych inteligentnych optymalizacji podczas korzystania z wykonania kontraktu jako algorytmu górniczego. Jednak szczególnie interesującą cechą tego algorytmu jest to, że pozwala on każdemu na „zatrucie studni”, poprzez wprowadzenie do blockchainu dużej liczby kontraktów zaprojektowanych specjalnie po to, by powstrzymać pewne układy ASIC. Dla producentów ASIC istnieją zachęty ekonomiczne, aby używali tego rodzaju sztuczki do wzajemnego atakowania. Zatem rozwiązaniem, które opracowujemy, jest ostatecznie adaptacyjne rozwiązanie ekonomiczne, a nie czysto techniczne. + +### Skalowalność {#scalability} + +Jedną z powszechnych obaw związanych z Ethereum jest kwestia skalowalności. Podobnie jak w przypadku Bitcoina, wada Ethereum polega na tym, że każda transakcja musi być przetwarzana przez każdy węzeł w sieci. W przypadku Bitcoina, rozmiar obecnego łańcucha bloków wynosi około 15 GB, wzrastając o około 1 MB na godzinę. Jeśli sieć Bitcoin miała przetwarzać 2000 transakcji Visa na sekundę, rosłaby o 1 MB na trzy sekundy (1 GB na godzinę, 8 TB na rok). Ethereum prawdopodobnie doświadczy podobnego wzorca wzrostu, pogorszonego przez to, że na górze blockchainu Ethereum będzie wiele aplikacji zamiast tylko waluty, jak ma to miejsce w przypadku Bitcoina, ale złagodzi to fakt, że pełne węzły Ethereum muszą przechowywać tylko stan zamiast całej historii blockchainu. + +Problem z tak dużą wielkością blockchainu to ryzyko centralizacji. Jeśli rozmiar łańcucha bloków wzrasta na przykład do 100 TB, wtedy prawdopodobnym scenariuszem byłby fakt, że tylko bardzo mała liczba dużych przedsiębiorstw prowadziłaby pełnych węzłów, ze wszystkimi regularnymi użytkownikami używającymi lekkich węzłów SPV. W takiej sytuacji pojawia się potencjalna obawa, że wszystkie węzły mogłyby wspólnie i wszyscy zgadzają się na oszukiwanie w sposób przynoszący zyski (np. zmień nagrodę bloku, daj sobie BTC). Lekkie węzły nie miałyby sposobu na natychmiastowe wykrycie. Oczywiście przynajmniej jeden uczciwy pełny węzeł prawdopodobnie istniałby, a po kilku godzinach informacje o oszustwo wyciekłyby kanałami takimi jak Reddit, ale w tym momencie byłoby już za późno: zwykli użytkownicy zajmą się organizacją próby umieszczenia na czarnej liście podanych bloków, ogromnym i prawdopodobnie niewykonalnym problem koordynacji o podobnej skali, jak próba poderwania się na udany atak 51%. W przypadku Bitcoina, jest to obecnie problem, ale istnieje modyfikacja blockchain [zasugerowana przez Petera Todda](https://web.archive.org/web/20140623061815/http://sourceforge.net/p/bitcoin/mailman/message/31709140/), która poprawi ten problem. + +W najbliższym czasie Ethereum wykorzysta dwie dodatkowe strategie w celu rozwiązania tego problemu. Po pierwsze, z powodu algorytmów kopania opartych na blockchain, co najmniej każdy górnik będzie zmuszony do bycia pełnym węzłem, tworząc dolną granicę liczby pełnych węzłów. Drugie i więcej ważne jest jednak, że po przetworzeniu każdej transakcji znajdziemy pośrednie drzewo stanowe w łańcuchu bloków. Nawet jeśli blok jest scentralizowany, dopóki istnieje jeden uczciwy węzeł, problem centralizacji można obejść za pomocą protokołu weryfikacji. Jeśli górnik publikuje nieprawidłowy blok, ten blok musi być albo źle sformatowany, albo stan `S[n]` jest nieprawidłowy. Skoro `S[0]` jest znany jako poprawny, musi być jakiś pierwszy stan `S[i]` niepoprawny gdzie `S[i-1]` jest poprawny. Serwer weryfikujący dostarczy indeks `i`, wraz z „dowodem inwalidztwa” składającym się z podzbioru węzłów drzew Patricia, które muszą przetworzyć `APPLY(S[i-1], X[i]) -> S[i]`. Węzły będą mogły używać węzłów Patricia do uruchomienia tej części obliczeń, i zobacz, że wygenerowany `S[i]` nie pasuje do podanego `S[i]`. + +Inny, bardziej zaawansowany atak obejmowałby złośliwych górników publikowania niekompletnych bloków, więc pełna informacja nawet nie istnieje, aby określić, czy bloki są poprawne. Rozwiązaniem tego jest protokół wyzwania-odpowiedzi: węzły weryfikacyjne problem "wyzwania" w postaci docelowych wskaźników transakcji, i po otrzymaniu węzła węzeł świetlny traktuje blok jako niezaufany do czasu, aż inny węzeł, czy górnik lub inny weryfikator dostarcza podzbiór węzłów Patricia jako dowód ważności. + +## Podsumowanie {#conclusion} + +Protokół Ethereum został pierwotnie zaprojektowany jako zaktualizowana wersja kryptowaluty, zapewniająca zaawansowane funkcje, takie jak escrow- w blockchain, limity odstąpienia, umowy finansowe, rynki gier hazardowych i, np. poprzez wysoce uogólniony język programowania. Protokół Ethereum nie będzie "wspierał" żadnej aplikacji bezpośrednio, ale istnienie kompletnego języka programowania oznacza, że dowolny kontrakty można teoretycznie utworzyć dla każdego rodzaju transakcji lub aplikacji. Bardziej interesujące jest jednak to, że protokół Ethereum przesuwa się daleko poza samą walutę. Protokoły wokół zdecentralizowanego przechowywania plików, zdecentralizowanych obliczeń i zdecentralizowanych rynków przewidywania wśród dziesiątków innych takich koncepcji, mają potencjał znacznego zwiększenia wydajności przemysłu obliczeniowego, i stanowi ogromny bodziec dla innych protokołów peer-to-peer przez dodanie warstwy ekonomicznej. Wreszcie, istnieje również znaczna gama aplikacji, które w ogóle nie mają nic wspólnego z pieniędzmi. + +Koncepcja arbitralnej funkcji przejściowej państwa wdrożonej przez protokołu Ethereum zapewnia platformę o unikalnym potencjale; zamiast być zamkniętym, jednofunkcyjnym protokołem przeznaczonym do konkretnych zastosowań w przechowywaniu danych, gra hazardowa lub finansowa, Ethereum jest otwarte przez projekt, i uważamy, że w nadchodzących latach jest on niezwykle dobrze przygotowany do pełnienia funkcji podstawy dla bardzo dużej liczby protokołów finansowych i niefinansowych. + +## Uwagi i dalsze lektury {#notes-and-further-reading} + +### Uwagi {#notes} + +1. Czytelnik może zauważyć, że w rzeczywistości adres Bitcoin jest skrótem klucza publicznego krzywej eliptycznej, a nie klucz publiczny. Jednak w rzeczywistości całkowicie uzasadniona jest terminologia kryptograficzna określająca hash pubkey jako sam klucz publiczny. , ponieważ kryptografię Bitcoina można uznać za niestandardową algorytm podpisu cyfrowego, w przypadku gdy klucz publiczny składa się z skrótu pubke'a ECC, podpis składa się z pubkey ECC połączony z podpisem ECC, i algorytm weryfikacji obejmuje sprawdzanie pubkey ECC w podpisze za pomocą skrótu pubkey ECC dostarczonego jako klucz publiczny, a następnie weryfikację podpisu ECC za pomocą pubkey ECC. +2. Technicznie mediana 11 poprzednich bloków. +3. Protokół Ethereum powinien być tak prosty, jak to możliwe, ale może być konieczne do uzyskania dość wysokiego stopnia złożoności, na przykład do skali, do internalizacji kosztów przechowywania, szerokości pasma i I/O, dla bezpieczeństwa, prywatności, przejrzystości itp. W przypadku gdy złożoność jest konieczna, dokumentacja powinna być możliwie jak najwyraźniejsza, zwięzła i aktualna, aby ktoś całkowicie nieszkolony w Ethereum mógł nauczyć się tego i stać się ekspertem. +4. Zobacz [Yellow Paper](https://ethereum.github.io/yellowpaper/paper.pdf) dla maszyny wirtualnej Ethereum (która jest przydatna jako specyfikacja i punkt odniesienia dla budowania klienta Ethereum od podstaw), podczas gdy jest również wiele tematów w [Ethereum wiki](https://github.com/ethereum/wiki/wiki), takich jak rozwój, Podstawowy rozwój, rozwój aplikacji, badania, Casper R&D i protokoły sieciowe. Do badań i możliwej przyszłości implementacja istnieje [ethresear.ch](https://ethresear.ch). +5. Innym sposobem wyrażania tego jest abstrakcja. [najnowsza mapa drogowa](https://ethresear.ch/t/sharding-phase-1-spec/1407/67) planuje abstrakcję wykonania, zezwalanie na nie silnikom wykonującym musi być zgodne z jedną specyfikacją kanoniczną, ale na przykład może być dostosowany do konkretnej aplikacji, a do fragmentu. (Ta heterogeniczność silników egzekucyjnych nie jest wyraźnie podana w mapie drogowej. Istnieje również niejednorodny sharding, który Konceptualizuje Vlada Zamfira.) +6. Wewnętrznie 2 i „CHARLIE” to liczby, przy czym ta ostatnia to w reprezentacji big-endian base 256. Liczby mogą wynosić co najmniej 0 i co najwyżej 2256-1. + +### Czytaj Dalej {#further-reading} + +1. [Wartość wewnętrzna](http://bitcoinmagazine.com/8640/an-exploration-of-intrinsic-value-what-it-is-why-bitcoin-doesnt-have-it-and-why-bitcoin-does-have-it/) +2. [Inteligentna własność](https://en.bitcoin.it/wiki/Smart_Property) +3. [Inteligentne kontrakty](https://en.bitcoin.it/wiki/Contracts) +4. [B- pieniądze](http://www.weidai.com/bmoney.txt) +5. [Dowody pracy wielokrotnego użytku](https://nakamotoinstitute.org/finney/rpow/) +6. [Zabezpieczenie tytułów własności na podstawie uprawnień właściciela](https://nakamotoinstitute.org/secure-property-titles/) +7. [Biała księga Bitcoin](http://bitcoin.org/bitcoin.pdf) +8. [Namecoin](https://namecoin.org/) +9. [Trójkąt Zooko's](https://wikipedia.org/wiki/Zooko's_triangle) +10. [Biała księga kolorowych monet](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit) +11. [Biała księga Mastercoina](https://github.com/mastercoin-MSC/spec) +12. [Zdecentralizowane autonomiczne korporacje, Bitcoin Magazine](http://bitcoinmagazine.com/7050/bootstrapping-a-decentralized-autonomous-corporation-part-i/) +13. [Uproszczona weryfikacja płatności](https://en.bitcoin.it/wiki/Scalability#Simplifiedpaymentverification) +14. [Drzewa Merkle](https://wikipedia.org/wiki/Merkle_tree) +15. [Drzewa Patricia](https://wikipedia.org/wiki/Patricia_tree) +16. [GHOST](https://eprint.iacr.org/2013/881.pdf) +17. [StorJ i agenci autonomiczni, Jeff Garzik](http://garzikrants.blogspot.ca/2013/01/storj-and-bitcoin-autonomous-agents.html) +18. [Mike Hearn na temat Inteligentnej Własności podczas Festiwalu Turinga](http://www.youtube.com/watch?v=Pu4PAMFPo5Y) +19. [Ethereum RLP](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-RLP) +20. [Drzewa Patricia Merkle w Ethereum](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-Patricia-Tree) +21. [Peter Todd na temat sumy drzew Merkle](http://sourceforge.net/p/bitcoin/mailman/message/31709140/) + +_Historia białej księgi znajduje się na stronie https://github.com/ethereum/wiki/blob/old-before-deleting-all-files-go-to-wiki-wiki-instead/old-whitepaper-for-historical-reference.md_ + +_Warto zauważyć, że Ethereum, podobnie jak wiele projektów oprogramowania opartych na społecznościach, rozwija się od czasu jego początkowego powstania. Aby dowiedzieć się o najnowszych zmianach w Ethereum i jak wprowadzone są zmiany w protokole, zalecamy [ten przewodnik](/learn/)._ diff --git a/src/content/translations/pl/zero-knowledge-proofs/index.md b/public/content/translations/pl/zero-knowledge-proofs/index.md similarity index 100% rename from src/content/translations/pl/zero-knowledge-proofs/index.md rename to public/content/translations/pl/zero-knowledge-proofs/index.md diff --git a/src/content/translations/pt-br/about/index.md b/public/content/translations/pt-br/about/index.md similarity index 100% rename from src/content/translations/pt-br/about/index.md rename to public/content/translations/pt-br/about/index.md diff --git a/src/content/translations/pt-br/bridges/index.md b/public/content/translations/pt-br/bridges/index.md similarity index 100% rename from src/content/translations/pt-br/bridges/index.md rename to public/content/translations/pt-br/bridges/index.md diff --git a/src/content/translations/pt-br/community/code-of-conduct/index.md b/public/content/translations/pt-br/community/code-of-conduct/index.md similarity index 100% rename from src/content/translations/pt-br/community/code-of-conduct/index.md rename to public/content/translations/pt-br/community/code-of-conduct/index.md diff --git a/src/content/translations/pt-br/community/events/index.md b/public/content/translations/pt-br/community/events/index.md similarity index 100% rename from src/content/translations/pt-br/community/events/index.md rename to public/content/translations/pt-br/community/events/index.md diff --git a/src/content/translations/pt-br/community/get-involved/index.md b/public/content/translations/pt-br/community/get-involved/index.md similarity index 100% rename from src/content/translations/pt-br/community/get-involved/index.md rename to public/content/translations/pt-br/community/get-involved/index.md diff --git a/src/content/translations/pt-br/community/grants/index.md b/public/content/translations/pt-br/community/grants/index.md similarity index 100% rename from src/content/translations/pt-br/community/grants/index.md rename to public/content/translations/pt-br/community/grants/index.md diff --git a/src/content/translations/pt-br/community/language-resources/index.md b/public/content/translations/pt-br/community/language-resources/index.md similarity index 100% rename from src/content/translations/pt-br/community/language-resources/index.md rename to public/content/translations/pt-br/community/language-resources/index.md diff --git a/src/content/translations/pt-br/community/online/index.md b/public/content/translations/pt-br/community/online/index.md similarity index 100% rename from src/content/translations/pt-br/community/online/index.md rename to public/content/translations/pt-br/community/online/index.md diff --git a/src/content/translations/pt-br/community/page-community.json b/public/content/translations/pt-br/community/page-community.json similarity index 100% rename from src/content/translations/pt-br/community/page-community.json rename to public/content/translations/pt-br/community/page-community.json diff --git a/src/content/translations/pt-br/community/research/index.md b/public/content/translations/pt-br/community/research/index.md similarity index 100% rename from src/content/translations/pt-br/community/research/index.md rename to public/content/translations/pt-br/community/research/index.md diff --git a/public/content/translations/pt-br/community/support/index.md b/public/content/translations/pt-br/community/support/index.md new file mode 100644 index 00000000000..771ef744666 --- /dev/null +++ b/public/content/translations/pt-br/community/support/index.md @@ -0,0 +1,116 @@ +--- +title: Suporte Ethereum +description: Obtenha suporte no ecossistema Ethereum. +lang: pt-br +--- + +# Suporte Ethereum {#support} + +## Suporte oficial do Ethereum {#official-support} + +Você está procurando pelo suporte oficial do Ethereum? A primeira coisa que você deve saber é que o Ethereum é descentralizado. Isso significa que nenhuma organização central, entidade ou pessoa é proprietária do Ethereum, e, por isso, não existem canais de suporte oficiais. + +Compreender a natureza descentralizada do Ethereum é vital porque qualquer pessoa que afirme ser um suporte oficial para o Ethereum está provavelmente tentando enganar você! A melhor proteção contra os golpistas é educar-se e levar a segurança a sério. + + + Segurança e prevenção de fraude do Ethereum + + + + Aprenda os conceitos básicos do Ethereum + + +Apesar da falta de suporte oficial, muitos grupos, comunidades e projetos em todo o ecossistema Ethereum estão felizes em ajudar, e você pode encontrar muitas informações e recursos úteis nesta página. Ainda tem dúvidas? Junte-se ao [Discord ethereum.org](/discord/) e tentaremos ajudar. + +## Suporte a carteiras {#wallet-support} + +Está tendo problemas com sua carteira? A maioria das carteiras tem equipes de suporte dedicadas que podem ajudar: + +- [MetaMask](https://metamask.zendesk.com/hc/) +- [Argent](https://support.argent.xyz/hc/) +- [MyEtherWallet](https://help.myetherwallet.com/) + +_Esta não é uma lista exaustiva. Precisa de ajuda para encontrar suporte para uma carteira específica? Una-se ao [Discord da ethereum.org](https://discord.gg/ethereum-org) e tentaremos ajudar._ + +Procurando uma carteira Ethereum? [Veja a nossa lista completa de carteiras Ethereum](/wallets/find-wallet/). + +## Criando dapps {#building-support} + +Desevolver um dapp pode ser difícil. Aqui estão alguns espaços voltados ao desenvolvimento com desenvolvedores Ethereum experientes dispostos a ajudar. + +- [Universidade Alchemy](https://university.alchemy.com/#starter_code) +- [Discord CryptoDevs](https://discord.gg/Z9TA39m8Yu) +- [Stackexchange do Ethereum](https://ethereum.stackexchange.com/) +- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) +- [Universidade Web3](https://www.web3.university/) +- [LearnWeb3](https://discord.com/invite/learnweb3) + +Você também pode encontrar documentação e guias de desenvolvimento em nossa seção [Recursos de desenvolvedor Ethereum](/developers/). + +### Ferramentas {#dapp-tooling} + +Sua pergunta está relacionada a uma ferramenta, projeto ou biblioteca em particular? A maioria dos projetos tem servidores de bate-papo ou fóruns dedicados a apoiar você. + +Aqui estão alguns exemplos populares: + +- [Solidity](https://gitter.im/ethereum/solidity/) +- [ethers.js](https://discord.gg/6jyGVDK6Jx) +- [web3.js](https://discord.gg/GsABYQu4sC) +- [Hardhat](https://discord.gg/xtrMGhmbfZ) +- [Truffle](https://discord.gg/8uKcsccEYE) +- [Alchemy](http://alchemy.com/discord) +- [Tenderly](https://discord.gg/fBvDJYR) + +## Executando um nó {#node-support} + +Se você estiver executando um nó ou validador, aqui estão algumas comunidades que se dedicam a ajudá-lo a começar. + +- [Discord EthStaker](https://discord.io/ethstaker) +- [Reddit EthStaker](https://www.reddit.com/r/ethstaker) + +A maioria das equipes que estão construindo clientes Ethereum também tem espaços dedicados ao público, onde você pode obter suporte e fazer perguntas. + +### Clientes de execução {#execution-clients} + +- [Geth](https://discord.gg/FqDzupGyYf) +- [Nethermind](https://discord.gg/YJx3pm8z5C) +- [Besu](https://discord.gg/p8djYngzKN) +- [Erigon](https://github.com/ledgerwatch/erigon/issues) + +### Clientes de consenso {#consensus-clients} + +- [Prysm](https://discord.gg/prysmaticlabs) +- [Nimbus](https://discord.gg/nSmEH3qgFv) +- [Lighthouse](https://discord.gg/cyAszAh) +- [Teku](https://discord.gg/7hPv2T6) +- [Lodestar](https://discord.gg/aMxzVcr) + +Você também pode [aprender a executar um nó aqui](/developers/docs/nodes-and-clients/run-a-node/). + +## Perguntas frequentes {#faq} + +### Enviei ETH para a carteira errada {#wrong-wallet} + +Uma transação enviada em Ethereum é irreversível. Infelizmente, se você enviou ETH para a carteira errada, não há como recuperar esses fundos. Nenhuma organização central, entidade ou pessoa é proprietária do Ethereum, o que significa que ninguém pode reverter transações. Portanto, é vital verificar sempre as suas transações antes de enviá-las. + +### Como eu posso solicitar minha doação de Ethereum? {#giveaway-scam} + +Doações/airdrops de Ethereum são golpes criados para roubar o seu ETH. Não se sinta tentado por ofertas que parecem boas demais para serem verdadeiras — se você enviar ETH para um endereço de doação, não receberá nenhuma doação/airdrop e não poderá recuperar seus fundos. + +[Mais sobre prevenção de fraudes](/security/#common-scams) + +### Minha transação está bloqueada {#stuck-transaction} + +Transações em Ethereum podem algumas vezes ficar bloqueadas se você tiver enviado uma taxa de transação menor do que a necessária devido à demanda na rede. Muitas carteiras oferecem uma opção para reenviar a mesma transação com uma taxa de transação maior para permitir que a transação seja processada. Como alternativa, você pode cancelar uma transação pendente enviando uma transação para seu próprio endereço e usando o mesmo nonce que a transação pendente. + +[Como acelerar ou cancelar uma transação pendente no MetaMask](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) + +[Como cancelar transações pendentes no Ethereum](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) + +### Como minero Ethereum? {#mining-ethereum} + +A mineração do Ethereum não é mais possível. A mineração foi desativada quando o Ethereum passou de prova de trabalho para prova de participação. Agora, em vez de mineradores, o Ethereum tem validadores. Os validadores participam com ETH e recebem recompensas de aposta para proteger a rede. + +### Como me torno um participante/validador? {#become-validator} + +Para se tornar um validador, você deve participar com 32 ETH no contrato de depósito do Ethereum e configurar um nó validador. Mais informações estão disponíveis em nossas [páginas de participação](/staking) e na [plataforma de lançamento de participação](https://launchpad.ethereum.org/). diff --git a/src/content/translations/pt-br/contributing/adding-desci-projects/index.md b/public/content/translations/pt-br/contributing/adding-desci-projects/index.md similarity index 100% rename from src/content/translations/pt-br/contributing/adding-desci-projects/index.md rename to public/content/translations/pt-br/contributing/adding-desci-projects/index.md diff --git a/src/content/translations/pt-br/contributing/adding-developer-tools/index.md b/public/content/translations/pt-br/contributing/adding-developer-tools/index.md similarity index 100% rename from src/content/translations/pt-br/contributing/adding-developer-tools/index.md rename to public/content/translations/pt-br/contributing/adding-developer-tools/index.md diff --git a/src/content/translations/pt-br/contributing/adding-exchanges/index.md b/public/content/translations/pt-br/contributing/adding-exchanges/index.md similarity index 100% rename from src/content/translations/pt-br/contributing/adding-exchanges/index.md rename to public/content/translations/pt-br/contributing/adding-exchanges/index.md diff --git a/src/content/translations/pt-br/contributing/adding-glossary-terms/index.md b/public/content/translations/pt-br/contributing/adding-glossary-terms/index.md similarity index 100% rename from src/content/translations/pt-br/contributing/adding-glossary-terms/index.md rename to public/content/translations/pt-br/contributing/adding-glossary-terms/index.md diff --git a/src/content/translations/pt-br/contributing/adding-layer-2s/index.md b/public/content/translations/pt-br/contributing/adding-layer-2s/index.md similarity index 100% rename from src/content/translations/pt-br/contributing/adding-layer-2s/index.md rename to public/content/translations/pt-br/contributing/adding-layer-2s/index.md diff --git a/src/content/translations/pt-br/contributing/adding-products/index.md b/public/content/translations/pt-br/contributing/adding-products/index.md similarity index 100% rename from src/content/translations/pt-br/contributing/adding-products/index.md rename to public/content/translations/pt-br/contributing/adding-products/index.md diff --git a/src/content/translations/pt-br/contributing/adding-staking-products/index.md b/public/content/translations/pt-br/contributing/adding-staking-products/index.md similarity index 100% rename from src/content/translations/pt-br/contributing/adding-staking-products/index.md rename to public/content/translations/pt-br/contributing/adding-staking-products/index.md diff --git a/src/content/translations/pt-br/contributing/adding-wallets/index.md b/public/content/translations/pt-br/contributing/adding-wallets/index.md similarity index 100% rename from src/content/translations/pt-br/contributing/adding-wallets/index.md rename to public/content/translations/pt-br/contributing/adding-wallets/index.md diff --git a/src/content/translations/pt-br/contributing/content-resources/index.md b/public/content/translations/pt-br/contributing/content-resources/index.md similarity index 100% rename from src/content/translations/pt-br/contributing/content-resources/index.md rename to public/content/translations/pt-br/contributing/content-resources/index.md diff --git a/src/content/translations/pt-br/contributing/design-principles/index.md b/public/content/translations/pt-br/contributing/design-principles/index.md similarity index 100% rename from src/content/translations/pt-br/contributing/design-principles/index.md rename to public/content/translations/pt-br/contributing/design-principles/index.md diff --git a/src/content/translations/pt-br/contributing/index.md b/public/content/translations/pt-br/contributing/index.md similarity index 100% rename from src/content/translations/pt-br/contributing/index.md rename to public/content/translations/pt-br/contributing/index.md diff --git a/src/content/translations/pt-br/contributing/translation-program/faq/index.md b/public/content/translations/pt-br/contributing/translation-program/faq/index.md similarity index 100% rename from src/content/translations/pt-br/contributing/translation-program/faq/index.md rename to public/content/translations/pt-br/contributing/translation-program/faq/index.md diff --git a/src/content/translations/pt-br/contributing/translation-program/how-to-translate/index.md b/public/content/translations/pt-br/contributing/translation-program/how-to-translate/index.md similarity index 100% rename from src/content/translations/pt-br/contributing/translation-program/how-to-translate/index.md rename to public/content/translations/pt-br/contributing/translation-program/how-to-translate/index.md diff --git a/src/content/translations/pt-br/contributing/translation-program/index.md b/public/content/translations/pt-br/contributing/translation-program/index.md similarity index 100% rename from src/content/translations/pt-br/contributing/translation-program/index.md rename to public/content/translations/pt-br/contributing/translation-program/index.md diff --git a/src/content/translations/pt-br/contributing/translation-program/mission-and-vision/index.md b/public/content/translations/pt-br/contributing/translation-program/mission-and-vision/index.md similarity index 100% rename from src/content/translations/pt-br/contributing/translation-program/mission-and-vision/index.md rename to public/content/translations/pt-br/contributing/translation-program/mission-and-vision/index.md diff --git a/src/content/translations/pt-br/contributing/translation-program/resources/index.md b/public/content/translations/pt-br/contributing/translation-program/resources/index.md similarity index 100% rename from src/content/translations/pt-br/contributing/translation-program/resources/index.md rename to public/content/translations/pt-br/contributing/translation-program/resources/index.md diff --git a/public/content/translations/pt-br/contributing/translation-program/translators-guide/index.md b/public/content/translations/pt-br/contributing/translation-program/translators-guide/index.md new file mode 100644 index 00000000000..79cfe10415a --- /dev/null +++ b/public/content/translations/pt-br/contributing/translation-program/translators-guide/index.md @@ -0,0 +1,293 @@ +--- +title: Guia para tradutores +lang: pt-br +description: Instruções e dicas para os tradutores do ethereum.org +--- + +# Guia de Estilo de Tradução do Ethereum.org {#style-guide} + +O Guia de Estilo de Tradução do ethereum.org contém algumas das diretrizes, instruções e dicas mais importantes para os tradutores, que nos ajudam a traduzir o site. + +Este documento serve como um guia geral e não é específico para nenhum idioma. + +Se você tiver alguma dúvida, sugestão ou feedback, entre em contato conosco em translations@ethereum.org, envie uma mensagem para @ethdotorg no Crowdin, ou [inscreva-se no nosso Discord](https://discord.gg/ethereum-org), onde você poderá nos enviar mensagens no canal #translations ou entrar em contato com qualquer um dos membros da equipe. + +## Como usar o Crowdin {#using-crowdin} + +Você pode encontrar instruções básicas sobre como participar do projeto no Crowdin e como usar o editor online do Crowdin na [página do Programa de Tradução](/contributing/translation-program/#how-to-translate). + +Se você quiser saber mais sobre o Crowdin e usar alguns dos seus recursos avançados, a [Base de conhecimento do Crowdin](https://support.crowdin.com/online-editor/) contém vários de guias detalhados e resumos de todas as funcionalidades do Crowdin. + +## Captando a essência da mensagem {#capturing-the-essence} + +Ao traduzir o conteúdo do ethereum.org, evite traduções literais. + +É importante que as traduções captem a essência da mensagem. Isso pode significar reformular certas frases ou usar traduções descritivas em vez de traduzir o conteúdo palavra por palavra. + +Idiomas diferentes têm diferentes regras gramaticais, convenções e ordem de palavras. Ao traduzir, tenha em mente como as frases são estruturadas no idioma de destino e evite traduzir literalmente do inglês, pois isso pode resultar em um texto mal estruturado e difícil de compreender. + +Em vez de traduzir o texto de origem palavra por palavra, é recomendado ler toda a frase e adaptá-la para que ela se adapte às convenções do idioma de destino. + +## Formal ou informal {#formal-vs-informal} + +Utilizamos linguagem formal, que é sempre mais educada e apropriada a todos os visitantes. + +O uso do estilo formal nos permite evitar soarmos ofensivos ou inapropriados, e funciona independentemente da idade e sexo do visitante. + +A maioria dos idiomas indo-europeus e afro-asiáticos utiliza pronomes pessoais em segunda pessoa específicos de gênero, que fazem a distinção entre masculino e feminino. Quando nos dirigimos ao usuário ou usamos pronomes possessivos, podemos evitar supor o sexo do visitante, uma vez que a maneira formal de tratamento é geralmente aplicável e consistente, independentemente da forma como se identificam. + +## Vocabulário simples e claro {#simple-vocabulary} + +Nosso objetivo é tornar o conteúdo do site compreensível para o maior número de pessoas possível. + +Na maioria dos casos, isso pode ser facilmente alcançado através da utilização de palavras curtas e simples, que sejam facilmente compreensíveis. Se existirem várias traduções possíveis para uma determinada palavra no seu idioma com o mesmo significado, a melhor opção é, na maioria das vezes, a palavra mais curta que reflita claramente o significado. + +## Sistema de escrita {#writing-system} + +O ethereum.org está disponível em vários idiomas, utilizando sistemas de escrita (ou scripts de escrita) diferentes do sistema latino. + +Todo o conteúdo deve ser traduzido usando a norma padrão de seu idioma, e não deve incluir nenhuma palavra em caracteres latinos. + +Ao traduzir o conteúdo, você deve garantir que a tradução está correta. + +Um engano comum é o de que Ethereum deve ser escrito sempre em caracteres latinos. Essa é uma ideia incorreta, por isso, use a grafia do Ethereum de acordo com seu idioma nativo (por exemplo, 以太坊 em chinês, إيثيريوم em árabe, etc.). + +**O mencionado acima não se aplica a idiomas em que nomes próprios não devem ser traduzidos como regra geral.** + +## Traduzindo metadados da página {#translating-metadata} + +Algumas páginas contêm metadados, como "title", "lang", "description", "sidebar", etc. + +Ocultamos o conteúdo que os tradutores nunca devem traduzir ao carregar novas páginas no Crowdin, ou seja, todos os metadados visíveis aos tradutores no Crowdin devem ser traduzidos. + +Esteja atento ao traduzir quaisquer frases em que o texto de origem seja "en". Isso representa o idioma no qual a página está disponível e deve ser traduzida para o [código de idioma ISO para o seu idioma.](https://www.andiamo.co.uk/resources/iso-language-codes/). Essas frases devem sempre ser traduzidas usando caracteres latinos, e não o script de escrita nativo do idioma de destino. + +Se você não tem certeza de qual código de idioma usar, você pode verificar a memória de tradução no Crowdin ou encontrar o código de idioma para o seu idioma na URL da página no editor online do Crowdin. + +Alguns exemplos de códigos para os idiomas mais falados: + +- Árabe - ar +- Chinês Simplificado - zh +- Francês - fr +- Híndi - hi +- Espanhol - es + +## Títulos de artigos externos {#external-articles} + +Algumas frases contêm títulos de artigos externos. A maioria das nossas páginas de desenvolvedor contém links para artigos externos para uma leitura mais aprofundada. As frases que contêm títulos de artigos precisam ser traduzidas, independentemente do idioma do artigo, para garantir uma experiência de usuário mais eficiente para quem quiser acessar a página em seu idioma. + +Você pode encontrar alguns exemplos de como essas frases aparecem para os tradutores e como identificá-las abaixo (os links para artigos podem ser encontrados na parte inferior destas páginas, na seção "Leitura adicional"): + +![Títulos de artigos no sidebar.png](./article-titles-in-sidebar.png) ![Títulos de artigos no editor.png](./article-titles-in-editor.png) + +## Alertas do Crowdin {#crowdin-warnings} + +O Crowdin tem um recurso integrado que alerta os tradutores quando eles estão prestes a cometer um erro. O Crowdin avisará automaticamente antes de salvar sua tradução, caso você se esqueça de incluir uma tag da fonte, traduzir elementos que não devem ser traduzidos, adicionar espaços adicionais ou se esqueça da pontuação final, etc. Se você vir um aviso como este, verifique novamente a tradução sugerida. + +**Nunca ignore esses avisos, pois significa que algo está errado, ou está faltando uma parte importante do texto original.** + +Um exemplo de alerta do Crowdin quando você se esquece de adicionar uma tag à sua tradução: ![Exemplo de um aviso do Crowdin](./crowdin-warning-example.png) + +## Lidando com tags e trechos de código {#dealing-with-tags} + +Grande parte do conteúdo fonte contém tags e variáveis, que são destacadas em amarelo no editor do Crowdin. Elas desempenham funções diferentes e devem ser abordadas corretamente. + +**Configurações do Crowdin** + +Para tornar mais fácil gerenciar tags e copiá-las diretamente da fonte, recomendamos alterar as suas configurações no editor do Crowdin. + +1. Abra as configurações ![Como abrir as configurações no editor](./editor-settings.png) + +2. Role para baixo até a seção "Exibição de tags HTML" + +3. Selecione "Ocultar" ![Selecione "Ocultar"](./hide-tags.png) + +4. Clique em "Salvar" + +Ao selecionar esta opção, o texto completo da tag não será mais exibido e será substituído por um número. Ao traduzir, clicar nesta tag copiará automaticamente a tag exata para o campo de tradução. + +**Links** + +Você verá os links completos para páginas no ethereum.org ou em outros sites. + +Eles devem ser idênticos ao texto de origem e não devem ser alterados ou traduzidos. Se você traduzir um link ou mudá-lo de alguma forma, mesmo removendo apenas uma parte dele, como uma barra (/), isso corromperá os links e os inutilizará. + +A melhor maneira de lidar com links é copiá-los diretamente da fonte, clicando sobre eles ou usando o botão "Copiar texto" (Alt+C). + +![Exemplo de link.png](./example-of-link.png) + +Os links também aparecem no texto de origem na forma de tags (por exemplo, <0> ). Se você passar o mouse por cima da tag, o editor exibirá seu conteúdo completo. Às vezes, essas tags representarão links. + +É muito importante copiar os links da origem e não mudar a sua ordem. + +Se a ordem das tags for alterada, o link que elas representam será desfeito. + +![Exemplo de links dentro de tags.png](./example-of-links-inside-tags.png) + +**Tags e variáveis** + +O texto original contém diversos tipos de tags, que devem sempre ser copiadas da fonte e nunca alteradas. Como explicado acima, a ordem dessas tags na tradução também deve permanecer a mesma da origem. + +As tags sempre contêm uma identificação de abertura e fechamento. Geralmente, o texto entre as tags de abertura e fechamento deve ser traduzido. + +Exemplo: ``Descentralizado`` + +`` — _Tag de abertura que deixa o texto em negrito_ + +Descentralizado — _Texto traduzível_ + +`` — _Tag de fechamento_ + +![Exemplo de tags.png ''fortes"](./example-of-strong-tags.png) + +Os trechos de código (snippets) devem ser abordados de maneira ligeiramente diferente das outras tags por conterem código que não deveria ser traduzido. + +Exemplo: ``nonce`` + +`` — _Tag de abertura, que contém um trecho de código_ + +nonce — _Texto não traduzível_ + +`` — _Tag de fechamento_ + +![Exemplo de código snippets.png](./example-of-code-snippets.png) + +O texto original também contém tags abreviadas, que contêm apenas números, o que significa que sua função não é imediatamente óbvia. Você pode passar o mouse sobre essas tags para ver exatamente para qual função elas servem. + +No exemplo abaixo, ao passar o mouse sobre a <0> tag mostra que ela representa `` e contém um trecho de código. Portanto, o conteúdo dentro dessas tags não deve ser traduzido. + +![Exemplo de tags.png ambíguas](./example-of-ambiguous-tags.png) + +## Formas/abreviaturas curtas vs. completas {#short-vs-full-forms} + +Existem muitas abreviações usadas no site, por exemplo, dapps, NFT, DAO, DeFi, etc. Essas abreviações são comumente usadas em inglês e a maioria dos visitantes do site estão familiarizados com elas. + +Como elas geralmente não têm traduções estabelecidas em outros idiomas, a melhor maneira de abordar esses e outros termos semelhantes é fornecer uma tradução descritiva do formulário completo e adicionar a abreviação inglesa em parênteses. + +Não traduza essas abreviaturas, já que a maioria das pessoas não estaria familiarizada com elas e as versões localizadas não fariam muito sentido para a maioria dos visitantes. + +Exemplo de como traduzir dapps: + +- Aplicativos descentralizados (dapps) → _Formulário completo traduzido (abreviação em inglês entre parênteses)_ + +## Termos sem traduções estabelecidas {#terms-without-established-translations} + +Alguns termos podem não ter traduções estabelecidas em outros idiomas e são mais conhecidos pelo termo original em inglês. Esses termos incluem principalmente conceitos novos, como proof-of-work, proof-of-stake, Beacon Chain, staking, etc. + +Embora traduzir esses termos possa parecer não natural, já que a versão em inglês é comumente usada também em outros idiomas, é altamente recomendado que eles sejam traduzidos. + +Ao traduzi-los, sinta-se livre para ser criativo, use traduções descritivas ou simplesmente traduza-os literalmente. + +**A razão pela qual a maioria dos termos deveria ser traduzida, em vez ser deixada em inglês, é que essa nova terminologia se tornará mais difundida no futuro, à medida que mais pessoas começarem a usar o Ethereum e tecnologias relacionadas. Se queremos envolver mais pessoas de todo o mundo nesse espaço, precisamos fornecer uma terminologia compreensível no maior número possível de idiomas, mesmo que precisemos criá-la nós mesmos.** + +## Botões e chamadas para a ação (CTAs) {#buttons-and-ctas} + +O site contém vários botões, que devem ser traduzidos de forma diferente dos outros tipos de conteúdo. + +O texto do botão pode ser identificado visualizando o contexto das telas capturadas, conectadas com a maioria das frases, ou verificando o contexto no editor, que inclui a frase 'botão'. + +As traduções dos botões devem ser o mais curtas possível, para evitar incompatibilidade de formatação. Além disso, as traduções dos botões devem ter o verbo no imperativo, ou seja, apresentar um comando ou solicitação. + +![Como encontrar um botão.png](./how-to-find-a-button.png) + +## Traduzindo de forma inclusiva {#translating-for-inclusivity} + +Os visitantes do ethereum.org vêm de todo o mundo e de diferentes origens. Por conseguinte, a linguagem utilizada no site deve ser neutra, acolhedora para todos e inclusiva. + +Um aspecto importante dessa questão é a neutralidade de gênero. Isso é fácil de se obter com o uso de linguagem de tratamento formal e evitando quaisquer palavras específicas de gênero nas traduções. + +Outra forma de inclusão é tentar traduzir para um público global, sem especificidades de país, raça ou região. + +Por último, a língua deve ser adequada para todos os públicos e todas as idades. + +## Traduções específicas de um idioma {#language-specific-translations} + +Ao traduzir, é importante seguir as regras gramaticais, convenções e formatação usadas em seu idioma, em vez de copiá-las do idioma de origem. O texto de origem segue as regras e convenções gramaticais do inglês, o que não é aplicável a muitos outros idiomas. + +Você deve estar ciente das regras do seu idioma e traduzir de acordo com elas. Se precisar de ajuda, entre em contato conosco e ajudaremos você a encontrar alguns recursos sobre como esses elementos devem ser utilizados no seu idioma. + +Aqui estão alguns exemplos a que você deve ter atenção: + +### Pontuação, formatação {#punctuation-and-formatting} + +**Regras de uso de maiúsculas e minúsculas** + +- Há grandes diferenças de uso de maiúsculas e minúsculas em diferentes idiomas. +- Em inglês, é comum colocar a primeira letra de todas as palavras em títulos e nomes, meses e dias, nomes de idiomas, feriados, etc. em maiúsculas. Em muitas outras línguas, isso é gramaticalmente incorreto, já que elas têm diferentes regras de uso de maiúsculas e minúsculas. +- Alguns idiomas também têm regras de uso de maiúsculas de pronomes pessoais, substantivos e alguns adjetivos, diferentes do inglês. + +**Espaçamento** + +- As regras da ortografia definem o uso de espaços para cada língua. Como os espaços são usados em toda a parte, essas regras são frequentemente bem específicas e estão entre os elementos mais mal traduzidos. +- Algumas diferenças comuns de espaçamento entre inglês e outras línguas: + - Espaço antes das unidades de medida e moedas (por exemplo: USD, EUR, kB, MB) + - Espaço antes dos sinais de graus (ex.: °C, °F) + - Espaço antes de algumas marcas de pontuação, especialmente as reticências (…) + - Espaço antes e após barras (/) + +**Listas** + +- Toda língua tem um conjunto diversificado e complexo de regras para escrever listas. Elas podem ser significativamente diferentes do inglês. +- Em algumas línguas, a primeira palavra de cada nova linha precisa ser colocada em maiúscula, enquanto em outras, novas linhas devem começar com letras minúsculas. Muitas línguas também têm regras diferentes sobre o uso de maiúsculas em listas, dependendo do tamanho de cada linha. +- O mesmo se aplica à pontuação de itens de linha. A pontuação final em listas pode ser um ponto (**.**), vírgula (**,**), ou ponto e vírgula (**;**), dependendo do idioma. + +**Aspas** + +- Os idiomas usam muitas aspas diferentes. Frequentemente, é incorreto simplesmente copiar as aspas do inglês. +- Alguns dos tipos mais comuns de aspas são: + - „texto de exemplo“ + - ‚texto de exemplo’ + - »texto de exemplo« + - “texto de exemplo” + - ‘texto de exemplo’ + - «texto de exemplo» + +**Hifens e traços** + +- Em inglês, um hífen (-) é usado para juntar palavras ou diferentes partes de uma palavra, enquanto um traço (–) é usado para indicar intervalo ou pausa. +- Muitas línguas têm regras diferentes para o uso de hifens e traços que devem ser respeitadas. + +### Formatos {#formats} + +**Números** + +- A principal diferença entre is idiomas em relação à escrita de números é o separador usado para números decimais e milhares. Para milhares, isso pode ser um ponto, vírgula ou espaço. Da mesma forma, alguns idiomas usam um ponto decimal, enquanto outros usam uma vírgula decimal. + - Alguns exemplos de números grandes: + - Inglês — **1,000.50** + - Espanhol — **1.000,50** + - Francês — **1 000,50** +- Outra consideração importante ao traduzir números é o sinal de percentagem. Ele pode ser escrito de diferentes formas: **100%**, **100 %** ou **%100**. +- Por fim, números negativos podem ser exibidos de formas diferentes, dependendo do idioma: -100, 100-, (100) ou [100]. + +**Datas** + +- Ao traduzir datas, há várias considerações e diferenças dependendo do idioma. Eles incluem o formato de data, separador, uso de maiúsculas e minúsculas e zeros à esquerda. Também existem diferenças entre datas completas e datas numéricas. + - Alguns exemplos de diferentes formatos de data: + - Inglês britânico (dd/mm/yyyy) — 1st January, 2022 + - Inglês americano (dd/mm/yyyy) — January 1st, 2022 + - Chinês (yyyy-mm-dd) — 2022 年 1 月 1 日 + - Francês (dd/mm/yyyy) — 1er janvier 2022 + - Italiano (dd/mm/yyyy) — 1º gennaio 2022 + - Alemão (dd/mm/yyyy) — 1. Januar 2022 + +**Moedas** + +- A tradução de moedas pode ser desafiadora, devido aos diferentes formatos, convenções e conversões. Como regra geral, mantenha as moedas iguais à fonte. Você pode adicionar sua moeda local e conversão entre colchetes, para ajudar a compreensão do leitor. +- As principais diferenças na escrita das moedas em diferentes idiomas incluem posicionamento de símbolos, vírgulas decimais versus pontos decimais, espaçamento e abreviações versus símbolos. + - Posicionamento do símbolo: $100 ou 100$ + - Vírgulas decimais versus pontos decimais: 100,50$ ou 100.50$ + - Espaçamento: 100$ ou 100 $ + - Abreviações versus símbolos: 100 $ ou 100 USD + +**Unidades de medida** + +- Como regra geral, mantenha as unidades de medida iguais ao texto original. Se o seu país usa um sistema diferente, você pode incluir a conversão entre parênteses. +- Além da localização das unidades de medida, também é importante observar as diferenças na forma como as línguas abordam essas unidades. A principal diferença é o espaçamento entre o número e a unidade, que pode diferir dependendo da língua. Por exemplo: 100kB versus 100 kB ou 50ºF versus 50 ºF. + +## Conclusão {#conclusion} + +A tradução do ethereum.org é uma ótima oportunidade para aprender sobre os diferentes aspectos do Ethereum. + +Procure não ter pressa ao traduzir. Vá com calma e divirta-se! + +Agradecemos sua participação no Programa de Tradução e sua ajuda para tornar o site acessível a um público maior. A comunidade Ethereum é global e estamos felizes por você fazer parte dela! diff --git a/public/content/translations/pt-br/dao/index.md b/public/content/translations/pt-br/dao/index.md new file mode 100644 index 00000000000..8f693649395 --- /dev/null +++ b/public/content/translations/pt-br/dao/index.md @@ -0,0 +1,165 @@ +--- +title: Organizações autônomas descentralizadas (DAOs) +description: Uma visão geral de DAOs no Ethereum +lang: pt-br +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: Uma representação de uma votação DAO em uma proposta. +summaryPoint1: Comunidades de membros sem liderança centralizada. +summaryPoint2: Uma maneira segura de colaborar com desconhecidos na Internet. +summaryPoint3: Um local seguro para destinar fundos para uma causa específica. +--- + +## O que são DAOs? {#what-are-daos} + +Uma DAO é uma organização de propriedade coletiva governada por blockchain que trabalha para uma missão compartilhada. + +As DAOs permitem-nos trabalhar com pessoas que pensam da mesma maneira em todo o mundo sem confiar em um líder benevolente para gerenciar os fundos ou as operações. Não há CEO que possa gastar fundos por impulso ou CFO que capaz de manipular as contas. Em vez disso, as regras baseadas em blockchain incorporadas ao código definem como a organização funciona e como os fundos são gastos. + +Elas possuem receitas integradas que não podem ser acessadas por ninguém sem a aprovação do grupo. As decisões são regidas por propostas e votações para garantir que todos na organização tenham voz e tudo aconteça de forma transparente na cadeia. + +## Por que precisamos de DAOs? {#why-dao} + +Começar uma organização com alguém que envolva financiamento e dinheiro requer muita confiança nas pessoas com as quais você está trabalhando. Mas é difícil confiar em alguém que você só interagiu pela Internet. Com DAOs você não precisa confiar em mais ninguém no grupo, apenas no código da DAO, que é 100% transparente e verificável por todos. + +Isto abre muitas novas oportunidades para a colaboração e coordenação globais. + +### Uma comparação {#dao-comparison} + +| DAO | Uma empresa tradicional | +| --------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | +| Hierarquia horizontal e totalmente democratizada. | Hierarquia vertical. | +| Votação exigida pelos membros para que quaisquer alterações sejam implementadas. | Dependendo da estrutura, as mudanças podem ser requeridas por uma única parte, ou ter opção de voto. | +| Votos conhecidos e resultados implementados automaticamente sem intermediário confiável. | Se a votação é permitida, os votos são homologados internamente e o resultado da votação tem de ser tratado manualmente. | +| Os serviços oferecidos são tratados automaticamente de forma descentralizada (por exemplo, distribuição de fundos filantrópicos). | Requer manipulação humana, ou automação controlada centralmente, propensa a manipulação. | +| Toda a atividade é transparente e totalmente pública. | A atividade é tipicamente privada e limitada ao público. | + +### Exemplos de DAOs {#dao-examples} + +Para dar um pouco de contexto, veja alguns exemplos de como você poderia usar uma DAO: + +- Uma instituição de caridade – você pode aceitar doações de qualquer pessoa no mundo e votar em quais causas financiar. +- Propriedade coletiva – você pode comprar ativos físicos ou digitais e os membros podem votar sobre como usá-los. +- Venture de capital e recompensas: você pode criar um fundo de investimento capitalizado que reúne e vota em quais ventures apoiar. O rendimento do dinheiro aplicado poderia mais tarde ser redistribuído entre os membros da DAO. + +## Como funcionam as DAOs? {#how-daos-work} + +A espinha dorsal de uma DAO é seu contrato inteligente, que define as regras da organização e mantém a tesouraria do grupo. Quando o contrato for publicado no Ethereum, ninguém poderá alterar as regras, exceto por votação. Se alguém tentar fazer algo que não esteja coberto pelas regras e lógica do código, não terá sucesso. E como a tesouraria é definida pelo contrato inteligente, também significa que ninguém pode gastar o dinheiro sem a aprovação do grupo. Isso significa que as DAOs não precisam de uma autoridade central. Em vez disso, o grupo toma decisões coletivas e os pagamentos são autorizados automaticamente quando os votos são aprovados. + +Isso é possível porque os contratos inteligentes são imunes a adulterações quando são implementados no Ethereum. Você não pode simplesmente editar o código (as regras das DAOs) sem que as pessoas percebam porque tudo é público. + + + Mais sobre contratos inteligentes + + +## Ethereum e DAOs {#ethereum-and-daos} + +O Ethereum é a base perfeita para DAOs por várias razões: + +- O próprio consenso do Ethereum é distribuído e estabelecido o suficiente para que as organizações confiem na rede. +- O código do contrato inteligente não pode ser modificado uma vez lançado, nem mesmo por seus proprietários. Isto permite que a DAO funcione segundo as regras com que foi programada. +- Os contratos inteligentes podem enviar/receber fundos. Sem isso, você precisaria de um intermediário confiável para gerenciar os fundos do grupo. +- A comunidade Ethereum provou ser mais colaborativa do que competitiva, permitindo que as melhores práticas e sistemas de suporte surjam rapidamente. + +## Governança DAO {#dao-governance} + +Há muitas considerações ao governar um DAO, como o funcionamento da votação e das propostas. + +### Delegação {#governance-delegation} + +A delegação é como a versão DAO da democracia representativa. Os detentores de tokens delegam votos a usuários que se autonomeiam e se comprometem a administrar o protocolo e permanecer informados. + +#### Um exemplo famoso {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) – Os titulares de ENS (Ethereum Name Service) podem delegar seus votos a membros da comunidade engajados para representá-los. + +### Governança automática de transações {#governance-example} + +Em muitas DAOs, as transações serão executadas automaticamente se um quórum de membros votar afirmativamente. + +#### Um exemplo famoso {#governance-example} + +[Nouns](https://nouns.wtf) – No Nouns DAO, uma transação é executada automaticamente se o quórum de votos for satisfeito e a maioria dos votos for afirmativa, desde que não seja vetada pelos fundadores. + +### Governança Multisig {#governance-example} + +Embora as DAOs possam ter milhares de membros votantes, os fundos podem ficar em uma carteira compartilhada por 5 a 20 membros ativos da comunidade que são confiáveis e geralmente conhecidos publicamente (identidades públicas conhecidas pela comunidade). Após uma votação, os assinantes multisig executam a vontade da comunidade. + +## Leis DAO {#dao-laws} + +Em 1977, Wyoming inventou a LLC, que protege os empreendedores e limita a responsabilidade deles. Mais recentemente, eles foram pioneiros na lei DAO que estabelece o status legal para DAOs. Atualmente Wyoming, Vermont e as Ilhas Virgens têm leis DAO de alguma forma. + +### Um exemplo famoso {#law-example} + +[CityDAO](https://citydao.io) – CityDAO usou a lei DAO do Wyoming para comprar 40 acres de terra perto do Parque Nacional de Yellowstone. + +## Adesão à DAO {#dao-membership} + +Existem diferentes modelos para a adesão à DAO. A adesão pode determinar como funciona a votação e outras partes fundamentais da DAO. + +### Adesão baseada em token {#token-based-membership} + +Normalmente, sem necessidade de permissão para utilizar, dependendo do token usado. Principalmente esses tokens de governança podem ser negociados sem permissão em uma corretora descentralizada. Outros devem ser obtidos através do fornecimento de liquidez ou alguma outra “prova de trabalho”. De qualquer forma, a simples detenção do token permite o acesso à votação. + +_Normalmente usado para governar amplos protocolos descentralizados e/ou tokens._ + +#### Um exemplo famoso {#token-example} + +[MakerDAO](https://makerdao.com) – O token MKR do MakerDAO está amplamente disponível em corretoras descentralizadas e qualquer pessoa pode comprar o poder de voto no futuro do protocolo Maker. + +### Adesão compartilhada {#share-based-membership} + +As DAOs compartilhadas são mais restritas, mas ainda bem abertas. Qualquer membro potencial pode apresentar uma proposta para participar da DAO, geralmente com uma contribuição sob a forma de tokens ou trabalho. Cotas representam o poder de voto e a propriedade. Os membros podem sair a qualquer momento, com a sua tesouraria proporcional. + +_Normalmente utilizado em organizações mais coesas e com abordagem humanitária, como instituições de caridade, cooperativas e clubes de investimento. Também podem controlar protocolos e tokens._ + +#### Um exemplo famoso {#share-example} + +[MolochDAO](http://molochdao.com/) – MolochDAO foca no financiamento dos projetos Ethereum. Exigem uma proposta de adesão para que o grupo possa avaliar se você dispõe dos conhecimentos especializados e do capital necessários para fazer considerações fundamentadas sobre potenciais donatários. Você não pode simplesmente comprar acesso à DAO no mercado aberto. + +### Adesão baseada em reputação {#reputation-based-membership} + +A reputação representa a prova de participação e concede poder de voto na DAO. Diferentemente de adesões baseadas em ações ou tokens, as DAOs baseadas em reputação não transferem a propriedade para seus colaboradores. Reputação não pode ser comprada, transferida ou delegada; os membros da DAO devem ganhar reputação por meio de participação. A votação em cadeia não requer permissão e os potenciais membros podem apresentar propostas livremente para ingressar na DAO e solicitar o recebimento de reputação e tokens como recompensa em troca de suas contribuições. + +_Normalmente usado para desenvolvimento descentralizado e governança de protocolos e dApps, mas também adequado para um conjunto diversificado de organizações como instituições de caridade, coletivos de trabalhadores, clubes de investimento etc._ + +#### Um exemplo famoso {#reputation-example} + +[DXdao](https://DXdao.eth.link) – O DXdao é um coletivo soberano global que cria e governa protocolos e aplicativos descentralizados desde 2019. Ele alavanca a governança baseada na reputação e o consenso holográfico para coordenar e gerenciar fundos, o que significa que ninguém pode comprar seu caminho para influenciar seu futuro. + +## Iniciar/participar de uma DAO {#join-start-a-dao} + +### Participe de uma DAO {#join-a-dao} + +- [DAOs da comunidade Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [Lista DAOHaus's de DAOs](https://app.daohaus.club/explore) +- [Lista Tally.xyz de DAOs](https://www.tally.xyz) + +### Inicie uma DAO {#start-a-dao} + +- [Comece uma DAO com DAOHaus](https://app.daohaus.club/summon) +- [Inicie uma DAO de Governança com sistema de contagem](https://www.tally.xyz/add-a-dao) +- [Criar uma DAO suportada por Aragon](https://aragon.org/product) +- [Inicie uma colônia](https://colony.io/) +- [Crie uma DAO com o consenso holográfico de DAOstack](https://alchemy.daostack.io/daos/create) + +## Leitura adicional {#further-reading} + +### Artigos sobre DAOs {#dao-articles} + +- [O que é uma DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) +- [O Manual da DAO](https://daohandbook.xyz) +- [Casa das DAOs](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) +- [O que é uma DAO e para que serve?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) +- [Como começar uma comunidade digital alimentada por DAO](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) +- [O que é uma DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) +- [O que é Consenso Holográfico?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) +- [DAOs não são corporações: onde a descentralização em organizações autônomas é importante para Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) +- [DAOs, DACs, DAs e mais: Um Guia Terminológico Incompleto](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Blog Ethereum](https://blog.ethereum.org) + +### Vídeos {#videos} + +- [O que é uma DAO em cripto?](https://youtu.be/KHm0uUPqmVE) +- [Uma DAO pode construir uma cidade?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/public/content/translations/pt-br/decentralized-identity/index.md b/public/content/translations/pt-br/decentralized-identity/index.md new file mode 100644 index 00000000000..546c2733601 --- /dev/null +++ b/public/content/translations/pt-br/decentralized-identity/index.md @@ -0,0 +1,185 @@ +--- +title: Identidade descentralizada +description: O que é uma identidade descentralizada e por que isso importa? +lang: pt-br +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: /eth-gif-cat.png +summaryPoint1: Os sistemas de identidade tradicionais centralizaram a emissão, manutenção e controle de seus identificadores. +summaryPoint2: A identidade descentralizada elimina a dependência de terceiros centralizados. +summaryPoint3: Graças à criptografia, os usuários agora têm as ferramentas para emitir, manter e controlar seus próprios identificadores e atestações novamente. +--- + +A identidade sustenta virtualmente todos os aspectos da sua vida hoje. Usar serviços on-line, abrir uma conta bancária, votar em eleições, comprar propriedades, garantir um emprego – todas essas coisas exigem que você prove sua identidade. + +Entretanto, os sistemas tradicionais de gerenciamento de identidade há muito tempo dependem de intermediários centralizados que emitem, mantêm e controlam seus identificadores e [atestados](#what-are-attestations). Isso significa que você não pode controlar as informações relacionadas à sua identidade ou decidir quem tem acesso às informações de identificação pessoal (PII) e quanto acesso essas partes têm. + +Para resolver esses problemas, temos sistemas de identidade descentralizados construídos em blockchains públicos como o Ethereum. A identidade descentralizada permite que indivíduos gerenciem informações relacionadas à sua identidade. Com soluções de identidade descentralizadas, _você_ pode criar identificadores e reivindicar e manter seus atestados sem depender de autoridades centrais, como provedores de serviços ou governos. + +## O que é identidade? {#what-is-identity} + +Identidade significa o sentido de si próprio de um indivíduo, definido por características únicas. Identidade refere-se a ser um _indivíduo_, ou seja, uma entidade humana distinta. A identidade também pode se referir a outras entidades não humanas, como uma organização ou autoridade. + +## O que são identificadores? {#what-are-identifiers} + +Um identificador é uma informação que atua como um ponteiro para uma identidade ou identidades específicas. Identificadores comuns incluem: + +- Nome +- Número da seguro social/número de identificação fiscal +- Número de celular +- Data e local de nascimento +- Credenciais de identificação digital, por exemplo, endereços de e-mail, nomes de usuário, avatares + +Esses exemplos tradicionais de identificadores são emitidos, mantidos e controlados por entidades centrais. Você precisa de permissão do seu governo para alterar seu nome ou de uma plataforma de mídia social para alterar seu nome. + +## O que são atestados? {#what-are-attestations} + +Um atestado é uma reivindicação feita por uma entidade sobre outra entidade. Se você mora nos Estados Unidos, a carteira de motorista emitida a você pelo Departamento de Veículos Motorizados (uma entidade) atesta que você (outra entidade) tem permissão legal para dirigir um carro. + +Atestados são diferentes de identificadores. Um atestado _contém_ identificadores para referir-se a uma identidade específica e faz uma declaração sobre um atributo relacionado a essa identidade. Portanto, sua carteira de motorista possui identificadores (nome, data de nascimento, endereço), mas também é o atestado sobre seu direito legal de dirigir. + +### O que são identificadores descentralizados? {#what-are-decentralized-identifiers} + +Identificadores tradicionais como seu nome legal ou endereço de e-mail dependem de terceiros – governos e provedores de e-mail. Os identificadores descentralizados (DIDs) são diferentes — eles não são emitidos, gerenciados ou controlados por qualquer entidade central. + +Os identificadores descentralizados são emitidos, mantidos e controlados por indivíduos. Uma [conta Ethereum](/developers/docs/accounts/) é um exemplo de identificador descentralizado. Você pode criar quantas contas quiser sem permissão de ninguém e sem a necessidade de armazená-las em um registro central. + +Os identificadores descentralizados são armazenados em livros-razões distribuídos (blockchains) ou redes ponto a ponto. Isso torna os DIDs [globalmente exclusivos, solucionáveis com alta disponibilidade e verificáveis criptograficamente](https://w3c-ccg.github.io/did-primer/). Um identificador descentralizado pode ser associado a diferentes entidades, incluindo pessoas, organizações ou instituições governamentais. + +## O que torna os identificadores descentralizados possíveis? {#what-makes-decentralized-identifiers-possible} + +### 1. Infraestrutura de chave pública (PKI) {#public-key-infrastructure} + +A infraestrutura de chave pública (PKI) é uma medida de segurança da informação que gera uma [chave pública](/glossary/#public-key) e uma [ chave privada](/glossary/#private-key) para uma entidade. A criptografia de chave pública é usada em redes blockchain para autenticar identidades de usuários e provar a propriedade de ativos digitais. + +Alguns identificadores descentralizados, como uma conta Ethereum, possuem chaves públicas e privadas. A chave pública identifica o controlador da conta, enquanto as chaves privadas podem assinar e descriptografar mensagens para essa conta. A PKI fornece as provas necessárias para autenticar entidades e evitar falsificação e uso de identidades falsas, usando [assinaturas criptográficas](https://andersbrownworth.com/blockchain/public-private-keys/) para verificar todas as reivindicações. + +### 2. Armazenamentos de dados descentralizados {#decentralized-datastores} + +Um blockchain serve como um registro de dados verificável: um repositório de informações aberto, com necessidade mínima de confiança e descentralizado. A existência de blockchains públicos elimina a necessidade de armazenar identificadores em registros centralizados. + +Se alguém precisar confirmar a validade de um identificador descentralizado, ele poderá procurar a chave pública associada no blockchain. Isso difere dos identificadores tradicionais que exigem autenticação de terceiros. + +## Como os identificadores e atestados descentralizados permitem a identidade descentralizada? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} + +A identidade descentralizada é a ideia de que as informações relacionadas à identidade devem ser autocontroladas, privadas e portáteis, com identificadores descentralizados e atestações sendo os principais blocos de construção. + +No contexto da identidade descentralizada, os atestados (também conhecidos como [Credenciais verificáveis](https://www.w3.org/TR/vc-data-model/)) são declarações à prova de adulteração e criptograficamente verificáveis feitas pelo emissor. Cada atestado ou credencial verificável de uma entidade (por exemplo, uma organização) está associada ao seu DID. + +Como os DIDs são armazenados no blockchain, qualquer pessoa pode verificar a validade de um atestado verificando o DID do emissor no Ethereum. Essencialmente, o blockchain Ethereum atua como um diretório global que permite a verificação de DIDs associados a determinadas entidades. + +Os identificadores descentralizados são o motivo de os atestados serem autocontrolados e verificáveis. Mesmo que o emissor não exista mais, o titular sempre tem a comprovação da procedência e validade do atestado. + +Os identificadores descentralizados também são cruciais para proteger a privacidade das informações pessoais por meio da identidade descentralizada. Por exemplo, se um indivíduo apresentar prova de um atestado (carteira de motorista), a parte verificadora não precisa verificar a validade das informações na prova. Em vez disso, o verificador precisa apenas de garantias criptográficas da autenticidade do atestado e da identidade da organização emissora para determinar se a prova é válida. + +## Categorias de atestados na identidade descentralizada {#types-of-attestations-in-decentralized-identity} + +Como as informações de atestado são armazenadas e recuperadas em um ecossistema de identidade baseado em Ethereum difere do gerenciamento de identidade tradicional. Aqui está uma visão geral das várias abordagens para emitir, armazenar e verificar atestados em sistemas de identidade descentralizados: + +### Atestados Off-Chain {#off-chain-attestations} + +Uma das preocupações com o armazenamento de certificados na cadeia é que eles podem conter informações que os usuários queiram manter privadas. A natureza pública da blockchain Ethereum a torna não atraente armazenar tais atestações. + +A solução é emitir atestados, mantidos por usuários off-chain em carteiras digitais, mas assinados com o DID do emissor armazenado on-chain. Esses atestados são codificados como [JSON Web Tokens](https://en.wikipedia.org/wiki/JSON_Web_Token) e contêm a assinatura digital do emissor, que permite a verificação fácil de reivindicações off-chain. + +Aqui está um cenário hipotético para explicar os atestados off-chain: + +1. Uma universidade (o emissor) gera um atestado (um certificado acadêmico digital), assina com suas chaves e o emite para Bob (o proprietário da identidade). + +2. Bob se candidata a um emprego e quer provar suas qualificações acadêmicas a um empregador, então ele compartilha o atestado de sua carteira móvel. A empresa (o verificador) pode então confirmar a validade do atestado verificando o DID do emissor (ou seja, sua chave pública no Ethereum). + +### Atestados off-chain com acesso persistente {#offchain-attestations-with-persistent-access} + +Sob esse arranjo, os atestados são transformados em arquivos JSON e armazenados off-chain (idealmente em uma plataforma de [armazenamento em nuvem descentralizado](/developers/docs/storage/), como IPFS ou Swarm). Entretanto, um [hash](/glossary/#hash) do arquivo JSON é armazenado on-chain e vinculado a um DID por meio de um registro on-chain. O DID associado pode ser o do emissor do atestado ou o do destinatário. + +Essa abordagem permite que os atestados obtenham persistência baseada em blockchain, mantendo as informações de declarações criptografadas e verificáveis. Ele também permite a divulgação seletiva, visto que o titular da chave privada pode descriptografar as informações. + +### Atestados on-chain {#onchain-attestations} + +Os atestados on-chain são mantidos em [contratos inteligentes](/developers/docs/smart-contracts/) no blockchain Ethereum. O contrato inteligente (agindo como um registro) mapeará um atestado para um identificador descentralizado on-chain correspondente (uma chave pública). + +Aqui está um exemplo para mostrar como os atestados on-chain podem funcionar na prática: + +1. Uma empresa (XYZ Corp) planeja vender ações de propriedade usando um contrato inteligente, mas quer apenas compradores que concluíram uma verificação de fundo. + +2. A empresa XYZ pode fazer com que a empresa realize verificações de fundo para emitir atestados on-chain no Ethereum. Este atestado certifica que um indivíduo passou na verificação de fundo sem expor nenhuma informação pessoal. + +3. O contrato inteligente de venda de ações pode verificar no contrato de registro as identidades dos compradores selecionados, possibilitando que o contrato inteligente determine quem tem permissão para comprar ações ou não. + +### Tokens Soulbound e identidade {#soulbound} + +[Tokens Soulbound](https://vitalik.ca/general/2022/01/26/soulbound.html) (NFTs não transferíveis) podem ser usados para coletar informações exclusivas de uma carteira específica. Isso cria efetivamente uma identidade única on-chain vinculada a um endereço Ethereum específico que pode incluir tokens que representam conquistas (por exemplo, terminar algum curso on-line específico ou passar uma pontuação mínima em um jogo) ou participação da comunidade. + +## Benefícios da identidade descentralizada {#benefits-of-decentralized-identity} + +1. A identidade descentralizada aumenta o controle individual de identificação da informação. Identificadores e atestados descentralizados podem ser verificados sem depender de autoridades centralizadas e serviços de terceiros. + +2. As soluções de identidade descentralizadas facilitam um método com necessidade mínima de confiança, sem interrupções e de proteção de privacidade para verificar e gerenciar a identidade do usuário. + +3. A identidade descentralizada aproveita a tecnologia blockchain, que cria confiança entre diferentes partes e fornece garantias criptográficas para provar a validade dos atestados. + +4. A identidade descentralizada torna os dados de identidade portáteis. Os usuários armazenam atestados e identificadores na carteira móvel e podem compartilhar com qualquer parte de sua escolha. Identificadores e atestados descentralizados não são bloqueados no banco de dados da organização emissora. + +5. A identidade descentralizada deve funcionar bem com tecnologias emergentes de conhecimento zero o qual permitirão que indivíduos provem que possuem ou fizeram algo sem revelar o que é essa coisa. Isso pode se tornar uma maneira poderosa de combinar confiança e privacidade para aplicações como votação. + +6. A identidade descentralizada permite que mecanismos anti-Sybil identifiquem quando um humano individual está fingindo ser vários humanos para jogar ou enviar spam a algum sistema. + +## Casos de uso de identidade descentralizadas {#decentralized-identity-use-cases} + +A identidade descentralizada tem muitos casos de uso em potencial: + +### 1. Logins universais {#universal-dapp-logins} + +A identidade descentralizada pode ajudar a substituir os logins baseados em senha por [autenticação descentralizada](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). Os provedores de serviços podem emitir atestados aos usuários, aos que podem ser armazenados em uma carteira Ethereum. Um exemplo de atestado seria uma [NFT](/nft/) concedendo ao titular acesso a uma comunidade on-line. + +Uma função [Entrar com Ethereum](https://login.xyz/) permitiria que os servidores confirmassem a conta Ethereum do usuário e buscassem o atestado necessário de seu endereço de conta. Isso significa que os usuários podem acessar plataformas e sites sem precisar memorizar senhas longas e melhorar a experiência on-line dos usuários. + +### 2. Autenticação KYC {#kyc-authentication} + +O uso de muitos serviços on-line exige que os indivíduos forneçam atestados e credenciais, como carteira de motorista ou passaporte nacional. Mas essa abordagem é problemática porque as informações privadas do usuário podem ser comprometidas e os provedores de serviços não podem verificar a autenticidade do atestado. + +A identidade descentralizada permite que as empresas ignorem os processos convencionais de [Conheça seu Cliente (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) e autentiquem identidades de usuários por meio de credenciais verificáveis. Isso reduz o custo de gerenciamento de identidade e previne o uso de documentação falsa. + +### 3. Votação e comunidades on-line {#voting-and-online-communities} + +A votação on-line e as mídias sociais são duas novas aplicações para a identidade descentralizada. Esquemas de votação on-line são suscetíveis à manipulação, especialmente se atores mal-intencionados criarem identidades falsas para votar. Pedir a indivíduos que apresentem atestados on-chain pode melhorar a integridade dos processos de votação on-line. + +A identidade descentralizada pode ajudar a criar comunidades on-line livres de contas falsas. Por exemplo, cada usuário pode ter que autenticar sua identidade usando um sistema de identidade on-chain, como o Nomes de Serviço Ethereum, reduzindo a possibilidade de bots. + +### 4. Proteção Anti-Sybil {#sybil-protection} + +Os ataques Sybil referem-se a humanos individuais enganando um sistema para pensar que são várias pessoas para aumentar sua influência. [Aplicativos de concessão](https://gitcoin.co/grants/) que usam [ votação quadrática](https://www.radicalxchange.org/concepts/plural-voting/) são vulneráveis a esses ataques Sybil porque o valor de uma concessão aumenta quando mais indivíduos votam nela, incentivando os usuários a dividir suas contribuições por meio de várias identidades. As identidades descentralizadas ajudam a evitar isso, aumentando o ônus de cada participante para provar que eles são realmente humanos, embora muitas vezes sem ter que revelar informações particulares específicas. + +## Use identidade descentralizada {#use-decentralized-identity} + +Existem muitos projetos ambiciosos usando Ethereum como base para soluções de identidade descentralizadas: + +- **[Nomes de Serviço Ethereum (ENS)](https://ens.domains/)** - _ Um sistema de nomes descentralizado para identificadores legíveis por máquina on-chain, como endereços de carteira Ethereum, hashes de conteúdo e metadados._ +- **[SpruceID](https://www.spruceid.com/)** - _Um projeto de identidade descentralizada que permite aos usuários controlar a identidade digital com contas Ethereum e perfis ENS em vez de depender de serviços de terceiros._ +- **[Serviço de Atestação do Ethereum (EAS)](https://attest.sh/)** - _ Um ledger/protocolo descentralizado para fazer atestações on-chain ou off-chain sobre qualquer coisa._ +- **[Prova de Humanidade](https://www.proofofhumanity.id)** - _Prova de Humanidade (ou PoH) é um sistema de verificação de identidade social construído no Ethereum._ +- **[BrightID](https://www.brightid.org/)** - _Uma descentralizada, rede de identidade social de código aberto que busca reformar a verificação de identidade por meio da criação e análise de um grafo social._ +- **[Passaporte de prova de personalidade](https://proofofpersonhood.com/)** - _ Um agregador de identidade digital descentralizado._ + +## Leitura adicional {#further-reading} + +### Artigos {#articles} + +- [Casos de uso de blockchain: Blockchain em identidade digital](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ +- [O que é Ethereum ERC725? Gerenciamento de identidade autossoberana no Blockchain](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Sam Town_ +- [Como o Blockchain pode resolver o problema da identidade digital](https://time.com/6142810/proof-of-humanity/) — _Andrew R. Comida_ +- [O que é identidade descentralizada e por que você deve se importar?](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ + +### Vídeos {#videos} + +- [Identidade descentralizada (bônus sessão de transmissão ao vivo)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Um ótimo vídeo explicativo sobre identidade descentralizada por Andreas Antoniopolitas_ +- [Faça login com o Ethereum e identidade descentralizada com Ceramic, IDX, React e 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _Tutorial do YouTube sobre como criar um sistema de gerenciamento de identidade para criar, ler e atualizar o perfil de um usuário usando sua carteira Ethereum por Nader Dabit_ +- [BrightID - Identidade descentralizada no Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _Episódio de podcast sem banco discutindo o BrightID, uma solução de identidade descentralizada para Ethereum_ +- [A Internet off-chain: identidade descentralizada & Credenciais verificáveis](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — apresentação EthDenver 2022 por Evin McMullen + +### Comunidades {#communities} + +- [Aliança ERC-725 no GitHub](https://github.com/erc725alliance) — _Apoiadores do padrão ERC725 para gerenciamento de identidade no blockchain Ethereum_ +- [Servidor do Discord do SpruceID](https://discord.com/invite/Sf9tSFzrnt) — _Comunidade para entusiastas e desenvolvedores que trabalham no Entrar com Ethereum_ +- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Uma comunidade de desenvolvedores contribuindo para criar um framework de dados verificáveis para aplicativos_ diff --git a/public/content/translations/pt-br/defi/index.md b/public/content/translations/pt-br/defi/index.md new file mode 100644 index 00000000000..f774fb1297f --- /dev/null +++ b/public/content/translations/pt-br/defi/index.md @@ -0,0 +1,352 @@ +--- +title: Finanças descentralizadas (DeFi) +description: Uma visão geral do DeFi na Ethereum +lang: pt-br +template: use-cases +emoji: ":money_with_wings:" +image: /use-cases/defi.png +alt: Um logotipo Eth feito de blocos de lego. +sidebarDepth: 2 +summaryPoint1: Uma alternativa global e aberta ao sistema financeiro atual. +summaryPoint2: Produtos que deixam você pedir emprestado, economizar, investir, comercializar e muito mais. +summaryPoint3: Com base na tecnologia de código aberto com a qual qualquer pessoa pode programar. +--- + +A DeFi é um sistema financeiro aberto e global criado para a era da Internet – uma alternativa a um sistema que não é transparente, controlado rigorosamente e mantido por infraestruturas e processos com décadas de existência. Oferece controle e visibilidade sobre o seu dinheiro. Ela fornece exposição aos mercados globais e alternativas a sua moeda local ou opções bancárias. Os produtos DeFi oferecem serviços financeiros a qualquer pessoa com uma conexão com a Internet e são em grande parte de propriedade e mantidos por seus usuários. Até agora, dezenas de bilhões de dólares de criptos foram transacionados através de aplicativos DeFi e seguem crescendo todos os dias. + +## O que é DeFi? {#what-is-defi} + +DeFi é um termo coletivo para produtos e serviços financeiros que são acessíveis a qualquer um que possa usar Ethereum – qualquer pessoa com uma conexão com a Internet. Com as DeFi, os mercados estão sempre abertos e não há autoridades centralizadas que possam bloquear pagamentos ou negar o seu acesso a qualquer coisa. Serviços que eram anteriormente lentos e com risco de falha humana se tornam automáticos e mais seguros, agora que são processados por código que qualquer um pode inspecionar e auditar. + +Há uma economia cripto em expansão, na qual você pode emprestar, operar long/short, ganhar juros e muito mais. Os argentinos experientes em criptomoedas usaram as DeFi para escapar da inflação devastadora. Empresas começaram a transferir os salários de seus colaboradores em tempo real. Algumas pessoas contrataram e pagaram empréstimos, na casa dos milhões de dólares, sem necessidade de qualquer identificação pessoal. + + + +## DeFi vs. finanças tradicionais {#defi-vs-tradfi} + +Uma das melhores maneiras de avaliar o potencial das DeFi é compreender os problemas que existem hoje. + +- Algumas pessoas não têm acesso para abrir uma conta bancária ou usar serviços financeiros. +- A falta de acesso a serviços financeiros pode comprometer a empregabilidade das pessoas. +- A falta de acesso a serviços financeiros pode impedir que você seja pago. +- Uma cobrança oculta dos serviços financeiros são os seus dados pessoais. +- Os governos e as instituições centralizadas podem fechar os mercados de forma arbitrária. +- Os horários de negociação geralmente são limitados ao horário comercial de um fuso horário específico. +- Transferências de dinheiro podem levar dias devido a processos humanos internos. +- Há um prêmio para operar os serviços financeiros porque as instituições intermediárias cobram a parte delas. + +### Uma comparação {#defi-comparison} + +| DeFi | Finanças tradicionais | +| ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Você detém seu dinheiro. | Seu dinheiro é controlado por empresas. | +| Você controla a destinação de seu dinheiro e como será gasto. | Você precisa confiar que as empresas não administrarão os seus fundos indevidamente, como, por exemplo, fazer empréstimos a tomadores de risco. | +| Transferências de dinheiro acontecem em minutos. | Os pagamentos podem levar dias devido a processos manuais. | +| A transação é anônima. | A operação financeira é fortemente ligada à sua identidade. | +| A DeFi é aberta a qualquer pessoa. | Você deve se cadastrar para usar os serviços financeiros. | +| Os mercados estão sempre abertos. | Mercados fecham porque os empregados cumprem horários. | +| Construído com base na transparência – qualquer pessoa pode ver os dados de um produto e inspecionar como o sistema funciona. | As instituições financeiras são livros fechados: não se pode pedir para ver o histórico de empréstimos, um registro dos seus ativos gerenciados, e assim por diante. | + + + Ver aplicativos DeFi + + +## Tudo começou com o Bitcoin... {#bitcoin} + +O Bitcoin, de muitas maneiras, foi a primeira aplicação DeFi. O Bitcoin permite que você realmente tenha e controle valores e os envie para qualquer lugar ao redor do mundo. Isso é feito oferecendo uma maneira para que um grande número de pessoas, que não confiam umas nas outras, concordem com um livro de contas sem a necessidade de um intermediário confiável. O Bitcoin é aberto a qualquer um e ninguém tem autoridade para alterar suas regras. As regras do Bitcoin, como sua escassez e acessibilidade, estão incorporadas na tecnologia. Não funciona como nas finanças tradicionais, em que os governos podem imprimir moeda que desvaloriza as suas economias e as empresas podem fechar os mercados. + +Ethereum baseia-se nisso. Como o Bitcoin, as regras não mudam por você, e todos têm acesso. Mas ele também torna esse dinheiro digital programável, usando [contratos inteligentes](/glossary#smart-contract). Então você pode fazer mais do que guardar e enviar valores. + + + +## Dinheiro programável {#programmable-money} + +Isso soa estranho... "Por que eu gostaria de programar meu dinheiro"? No entanto, esta é mais uma característica padrão dos tokens no Ethereum. Qualquer um pode programar a lógica em pagamentos. Assim, você pode ter o controle e a segurança do Bitcoin somados aos serviços fornecidos por instituições financeiras. Isso permite fazer coisas com criptomoedas que você não poderia fazer com o Bitcoin, tais como emprestar e tomar empréstimos, agendar pagamentos, investir em fundos de índices e mais. + + +
Explore nossas sugestões de aplicativos DeFi para iniciar se você é novo no Ethereum.
+ + Ver aplicativos DeFi + +
+ +## O que você pode fazer com DeFi? {#defi-use-cases} + +Há uma alternativa descentralizada para a maioria dos serviços financeiros. Mas o Ethereum também cria oportunidades para a criação de produtos financeiros completamente novos. Esta lista está em constante crescimento. + +- [Envie dinheiro para qualquer lugar do mundo](#send-money) +- [Pagamentos em tempo real ao redor do mundo](#stream-money) +- [Acesso a moedas estáveis](#stablecoins) +- [Empréstimos com garantia](#lending) +- [Empréstimos sem garantias](#flash-loans) +- [Poupança com criptomoedas](#saving) +- [Negociar tokens](#swaps) +- [Aumente seu portfólio](#investing) +- [Financie seus projetos](#crowdfunding) +- [Compra de seguros](#insurance) +- [Gerenciamento de portfolio](#aggregators) + + + +### Envie dinheiro ao redor do mundo rapidamente {#send-money} + +Como um blockchain, o Ethereum foi concebido para o envio de transações de forma segura e de modo global. Assim como o Bitcoin, o Ethereum torna o envio de dinheiro ao redor do mundo tão fácil quanto enviar um e-mail. Basta digitar o nome do seu beneficiário [nome ENS](/nft/#nft-domains) (como bob.eth) ou o endereço de conta da respectiva carteira e seu pagamento será enviado em minutos (normalmente). Para enviar ou receber pagamentos, você precisará de uma [carteira](/wallets/). + + + Ver dapps de pagamento + + +#### Pagamentos em tempo real ao redor do mundo... {#stream-money} + +Você também pode transferir dinheiro através da Ethereum. Isso permite que você pague imediatamente o salário de alguém, dando a essa pessoa acesso ao valor devido sempre que preciso. Ou alugue algo de forma imediata, como um guarda-volume ou uma moto elétrica. + +E se você não quiser enviar ou pagar via [ETH](/eth/) devido à variação no valor, existem moedas alternativas na Ethereum: stablecoins. + + + +### Acesso a moedas estáveis {#stablecoins} + +A volatilidade das criptomoedas é um problema para muitos produtos financeiros e gastos em geral. A comunidade DeFi resolveu isso por meio das stablecoins. O valor delas permanece vinculado a outro ativo, geralmente uma moeda popular como o dólar. + +Moedas como Dai ou USDC têm um valor que não superam alguns centavos de dólar. Isso as torna perfeitas para rendimentos ou varejo. Muitas pessoas na América Latina utilizaram as stablecoins como forma de proteger suas poupanças, em tempos de grande incerteza com as moedas emitidas pelos governos. + + + Mais sobre moedas estáveis + + + + +### Empréstimos {#lending} + +Empréstimos de recursos de fornecedores descentralizados se dão de duas formas principais. + +- Ponto a ponto, quando um mutuário pede emprestado diretamente de um mutuante específico. +- Pool de fundos, onde credores fornecem fundos (liquidez) a um pool do qual os mutuários podem tomar empréstimo. + + + Ver dapps de empréstimos + + +Há diversas vantagens em usar um financiador descentralizado... + +#### Empréstimos com privacidade {#borrowing-privacy} + +Hoje, pegar dinheiro emprestado ou emprestar gira em torno dos indivíduos envolvidos. Os bancos precisam saber se você terá condições de pagar um empréstimo antes de concedê-lo. + +Os empréstimos descentralizados funcionam sem que as partes tenham que se identificar. Em vez disso, o mutuário deve oferecer uma garantia colateral que o credor receberá automaticamente se o empréstimo não for pago. Alguns credores aceitam NFTs como garantia. Os NFTs são escrituras de ativos únicos, como uma pintura. [Mais sobre NFTs](/nft/) + +Isso permite que você tome empréstimo de dinheiro sem checagem de crédito ou fornecimento de dados pessoais. + +#### Acesso a fundos globais {#access-global-funds} + +Quando você usa um mutuante descentralizado, você tem acesso a fundos depositados de todo o mundo, não apenas os fundos em custódia de seu banco ou instituição escolhida. Isto torna os empréstimos mais acessíveis e melhora as taxas de juro. + +#### Eficiência tributária {#tax-efficiencies} + +Pedir empréstimo pode dar a você acesso aos fundos de que você precisa sem precisar vender seus ETHs (um evento tributável). Em vez disso, você pode usar ETH como garantia colateral de um empréstimo em stablecoin. Isso dá a você acesso ao fluxo de caixa de que você precisa sem abrir mão de seus ETHs. Stablecoins são tokens muito melhores quando você precisa de dinheiro, já que elas não oscilam tanto quanto o ETH. [Mais sobre stablecoins](#stablecoins) + +#### Empréstimos rápidos {#flash-loans} + +Empréstimos rápidos são uma forma mais experimental de empréstimos descentralizados que permite que você peça empréstimo sem garantia ou sem fornecer qualquer informação pessoal. + +Neste momento, não estão amplamente acessíveis a pessoas não técnicas, mas dão uma ideia do que poderá ser possível a todos no futuro. + +Funciona com base no princípio de que o empréstimo é tomado e pago na mesma transação. Se não puder ser pago, a transação retroage como se nada tivesse acontecido. + +Os fundos que são mais frequentemente utilizados são mantidos em pools de liquidez (grandes pools de fundos utilizados para empréstimos). Se não estiverem sendo utilizados em um dado momento, isso cria uma oportunidade para alguém pedir esses fundos emprestados, fazer negócio com eles e devolver o valor integral literalmente no mesmo momento em que se toma emprestado. + +Isto significa que muita lógica tem de ser incluída em uma transação sob medida. Um exemplo simples pode ser alguém pedir um empréstimo rápido para adquirir um ativo a um preço para vendê-lo em outra exchange (corretora) onde o preço seja mais alto. + +Portanto, em uma única transação, ocorre o seguinte: + +- Você pega emprestado a quantia X de um ativo $asset por $ 1,00 de uma exchange A +- Você vende X do $asset na exchange B por $ 1,10 +- Então, você paga o empréstimo na exchange A +- Você embolsa o lucro menos a taxa de transação + +Se o estoque da exchange B cair de repente e o usuário não conseguir comprar o suficiente para cobrir o empréstimo original, a transação simplesmente não acontecerá. + +Para ser capaz de fazer o exemplo acima no mundo financeiro tradicional, você precisaria de uma quantidade enorme de dinheiro. Estas estratégias de fazer dinheiro só são acessíveis aos que já possuem economias. Os empréstimos rápidos são um exemplo do futuro em que possuir dinheiro não é necessariamente uma condição prévia para se fazer dinheiro. + +[Mais sobre empréstimos rápidos](https://aave.com/flash-loans/) + + + +### Comece a poupar com criptomoedas {#saving} + +#### Empréstimos {#lending} + +Você pode ganhar juros sobre suas criptomoedas emprestando-as e vendo seus fundos crescerem em tempo real. No momento, as taxas de juros são muito mais altas do que as que você pode obter no seu banco local (se você tiver sorte o suficiente para ter acesso a um). Aqui está um exemplo: + +- Você empresta 100 Dai, uma [stablecoin](/stablecoins/), a um produto como Aave. +- Você recebe 100 Aave Dai (aDai) que é um token que representa seus Dai emprestados. +- Seu aDai aumentará com base nas taxas de juros e você poderá ver o saldo crescendo na sua carteira. Dependendo da APR (taxa percentual anual), seu saldo em carteira irá mostrar algo como 100.1234 após alguns dias ou até mesmo horas! +- Você pode retirar uma quantidade de Dai regular, igual ao seu saldo em aDai, a qualquer momento. + + + Ver dapps de empréstimos + + +#### Loterias sem perda {#no-loss-lotteries} + +Loterias sem perda como a PoolTogether são uma divertida e inovadora maneira de economizar dinheiro. + +- Você compra 100 bilhetes usando 100 tokens Dai. +- Você recebe 100 plDai representando os seus 100 bilhetes. +- Se um de seus bilhetes for escolhido como vencedor, seu saldo plDai aumentará na proporção do dinheiro acumulado para premiação. +- Se você não vencer, os seus 100 plDai vão para o sorteio da próxima semana. +- Você pode retirar uma quantidade de Dai regular, que é igual ao seu saldo plDai, a qualquer momento. + +O dinheiro acumulado para premiação é gerado por todos os juros gerados pelo empréstimo dos bilhetes depositados, como no exemplo de empréstimo acima. + + + Experimente o PoolTogether + + + + +### Negociar tokens {#swaps} + +Existem milhares de tokens no Ethereum. Exchanges descentralizadas (DEXs) permitem que você opere diferentes tokens sempre que quiser. Você nunca entrega o controle de seus ativos. Isso é como usar uma exchange quando você visita um país diferente. Mas a versão de DeFi nunca fecha. Os mercados funcionam de maneira ininterrupta e a tecnologia garante que sempre haverá alguém disposto a fazer negociações. + +Por exemplo, se você quiser usar a loteria sem perda PoolTogether (descrita acima), você precisará de um token como Dai ou USDC. Estas DEXs permitem que você troque seus ETH por esses tokens e reverta novamente quando terminar. + + + Exibir exchanges de token + + + + +### Negociações avançadas {#trading} + +Existem opções mais avançadas para traders que gostam de um pouco mais de controle. Limitar ordens, contratos futuros sem vencimento, trading alavancado e muito mais é possível. Com negociações descentralizadas você obtém acesso à liquidez global, o mercado nunca fecha e você está sempre no controle de seus ativos. + +Quando você usa uma exchange centralizada, tem que depositar seus ativos antes da negociação e confiar a ela o cuidado dos ativos. Embora seus ativos estejam depositados, eles estão em risco, uma vez que as exchanges centralizadas são alvos atraentes para os hackers. + + + Ver dapps de trading + + + + +### Aumente seu portfolio {#investing} + +Existem produtos de gestão de fundos na Ethereum que tentarão aumentar a sua carteira com base em uma estratégia à sua escolha. Isto é automático, aberto a todos, e não precisa de um gerente humano pegando uma fatia de seus lucros. + +Um bom exemplo é o [fundo DeFi Pulse Index (DPI)](https://defipulse.com/blog/defi-pulse-index/). Esse é um fundo com balanceamento automático, de forma a garantir que o seu portfólio sempre inclua [os principais tokens de DeFi por capitalização de mercado](https://www.coingecko.com/en/defi). Nunca é necessário gerenciar nenhum dos detalhes e é possível sacar do fundo sempre que quiser. + + + Ver dapps de investimento + + + + +### Financie suas ideias {#crowdfunding} + +Ethereum é uma plataforma ideal para financiamento colaborativo: + +- Potenciais financiadores podem vir de qualquer lugar – a Ethereum e seus tokens estão abertos a qualquer pessoa, em qualquer lugar do mundo. +- É transparente para que os captadores de recursos possam provar quanto dinheiro foi levantado. Você pode até rastrear como os fundos estão sendo gastos posteriormente. +- Os captadores de recursos podem criar reembolsos automáticos se, por exemplo, houver um prazo específico e um montante mínimo que não seja cumprido. + + + Ver dapps de captação de recursos + + +#### Financiamento quadrático {#quadratic-funding} + +O Ethereum é um software de código aberto, e muito do trabalho até agora tem sido financiado pela comunidade. A essência do código aberto do Ethereum levou ao crescimento de um modelo interessante de captação de recursos: financiamento quadrático. Isto tem o potencial de melhorar a forma como financiamos todos os tipos de bens públicos no futuro. + +O financiamento quadrático assegura que os projetos que recebem mais recursos sejam aqueles com a maior procura. Em outras palavras, projetos que contribuem para melhorar a vida da maioria das pessoas. Funciona assim: + +1. Há um pool correspondente de fundos doados. +2. Começa uma rodada de financiamento público. +3. As pessoas podem sinalizar a demanda por um projeto através da doação de dinheiro. +4. Uma vez terminada a rodada, a reserva de fundos correspondente será distribuída aos projetos. Aqueles com a demanda mais alta obtêm o maior valor da reserva de fundos correspondente. + +Isso significa que o Projeto A com suas 100 doações de 1 dólar poderia acabar com mais financiamento que o Projeto B com uma única doação de 10.000 dólares (sujeito ao tamanho do pool correspondente). + +[Mais sobre financiamento quadrático](https://wtfisqf.com) + + + +### Seguros {#insurance} + +Seguros descentralizados visam tornar o seguro mais barato, mais rápido para pagar e mais transparente. Com mais automação, a cobertura é mais acessível e os pagamentos são muito mais rápidos. Os dados utilizados para decidir sobre a sua reivindicação são completamente transparentes. + +Os produtos Ethereum, como qualquer software, estão propensos a bugs e exploits. Então, atualmente, muitos produtos na área de seguros visam proteger seus usuários contra a perda de fundos. Entretanto, há projetos que estão começando a criar cobertura para tudo o que a vida pode nos oferecer. Um bom exemplo disto é a cobertura para o cultivo do Etherisc, que visa [proteger os pequenos agricultores do Quênia contra secas e inundações](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Um seguro descentralizado pode proporcionar cobertura mais barata aos agricultores que são frequentemente deixados de fora do seguro tradicional. + + + Ver dapps de seguros + + + + +### Agregadores e gerenciadores de portfolio {#aggregators} + +Com tanta coisa acontecendo, você precisará de uma maneira de acompanhar todos os seus investimentos, empréstimos e operações. Há uma série de produtos que permitem coordenar todas as atividades DeFi de um só lugar. Esta é a beleza da arquitetura aberta do DeFi. Equipes podem construir interfaces onde você não somente vê os saldos entre produtos, mas também pode usar os recursos correspondentes. Você vai achar isso útil enquanto aprende mais sobre DeFi. + + + Ver dapps de portfolio + + + + +## Como o funciona Defi? {#how-defi-works} + +O DeFi usa criptomoedas e contratos inteligentes para fornecer serviços que não precisam de intermediários. No mundo financeiro de hoje, as instituições financeiras atuam como garantidoras das transações. Isto confere a essas instituições um poder enorme, porque seu dinheiro flui por elas. Além disso, bilhões de pessoas ao redor do mundo não têm acesso a uma conta bancária. + +No DeFi, um contrato inteligente substitui a instituição financeira na transação. Um contrato inteligente é um tipo de conta Ethereum que pode ter fundos e enviá-los/reembolsá-los com base em certas condições. Ninguém pode alterar esse contrato inteligente quando estiver ativo – ele sempre será executado conforme o programado. + +Um contrato que foi concebido para distribuir um subsídio ou mesada poderia ser programado para enviar dinheiro da Conta A para Conta B todas as sextas-feiras. E isso só poderá acontecer enquanto a Conta A tiver os fundos necessários. Ninguém pode alterar o contrato e adicionar Conta C como beneficiário para roubar fundos. + +Os contratos também são públicos para qualquer pessoa inspecionar e auditar. Isto significa que os contratos pouco confiáveis passarão frequentemente a estar sob escrutínio comunitário muito rapidamente. + +Isto significa que atualmente há uma necessidade de confiar nos membros mais técnicos da comunidade Ethereum, que podem ler códigos. A comunidade baseada em código aberto ajuda a manter os desenvolvedores sob controle, mas esta necessidade diminuirá ao longo do tempo, à medida que os contratos inteligentes se tornem mais fáceis de ler e que se desenvolvam outras formas de provar a confiança no código. + +## Ethereum e DeFi {#ethereum-and-defi} + +O Ethereum é a base perfeita para DeFi por várias razões: + +- Ninguém é proprietário do Ethereum ou dos contratos inteligentes que existem nele – isso dá a todos uma oportunidade de usar o DeFi. Isto também significa que ninguém pode alterar as regras que são aplicadas a ele. +- Os produtos de DeFi falam todos o mesmo idioma nos bastidores: Ethereum. Isto significa que muitos dos produtos funcionam muito bem em conjunto. Você pode emprestar tokens em uma plataforma e negociar os juros do token em um mercado diferente através de uma aplicação totalmente distinta. Isso é como juntar pontos de fidelidade em seu banco. +- Tokens e criptomoedas estão integrados no Ethereum, um registro compartilhado – manter o controle das transações e a propriedade são a área de domínio do Ethereum. +- O Ethereum permite a liberdade financeira total – a maioria dos produtos nunca terá a custódia dos seus fundos, deixando você no controle. + +Pense no DeFi como camadas: + +1. O blockchain: Ethereum contém o histórico das transações e o estado das contas. +2. Os ativos: [ETH](/eth/) e outros tokens (moedas). +3. Os protocolos, [contratos inteligentes](/glossary/#smart-contract) que oferecem a funcionalidade, por exemplo, um serviço que permite o empréstimo descentralizado de ativos. +4. [As aplicações](/dapps/): os produtos que usamos para gerenciar e acessar os protocolos. + +## Criar Defi {#build-defi} + +DeFi é um movimento de código aberto. Os protocolos e aplicações DeFi são todos abertos, para você inspecionar, fazer updates e inovar. Por causa dessa pilha em camadas (todos compartilham o mesmo blockchain e ativos base), os protocolos podem ser combinados para proporcionar oportunidades únicas. + + + Mais sobre como criar Dapps + + +## Leitura adicional {#futher-reading} + +### Dados DeFi {#defi-data} + +- [DeFi Prime](https://defiprime.com/) +- [DeFi Llama](https://defillama.com/) +- [DeFi Rate](https://defirate.com/) + +### Artigos sobre DeFi {#defi-articles} + +- [Um guia de DeFi para iniciantes](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, 6 de janeiro de 2020_ + +### Vídeos {#videos} + +- [Finematics - Informações sobre finanças descentralizadas](https://finematics.com/) – _Vídeos sobre DeFi_ +- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _Fundamentos DeFi: Tudo o que você precisa saber para começar neste espaço às vezes desconcertante._ +- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _O que é DeFi?_ + +### Comunidades {#communities} + +- [Servidor DeFi Llama no Discord](https://discord.gg/buPFYXzDDd) +- [Servidor DeFi Pulse no Discord](https://discord.gg/Gx4TCTk) diff --git a/public/content/translations/pt-br/desci/index.md b/public/content/translations/pt-br/desci/index.md new file mode 100644 index 00000000000..a731f4b2302 --- /dev/null +++ b/public/content/translations/pt-br/desci/index.md @@ -0,0 +1,139 @@ +--- +title: Ciência descentralizada (DeSci) +description: Uma visão geral da ciência descentralizada no Ethereum +lang: pt-br +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Uma alternativa global e aberta ao sistema científico atual. +summaryPoint2: Tecnologia que permite aos cientistas levantar fundos, realizar experimentos, compartilhar dados, distribuir informações e muito mais. +summaryPoint3: Constrói o movimento de ciência aberta. +--- + +## O que é ciência descentralizada (DeSci)? {#what-is-desci} + +A ciência descentralizada (DeSci) é um movimento que visa construir a infraestrutura pública para financiar, criar, revisar, creditar, armazenar e disseminar conhecimento científico de forma justa e equitativa usando a pilha Web3. + +A DeSci visa criar um ecossistema em que os cientistas sejam incentivados a partilhar abertamente a sua pesquisa e a receber crédito pelo seu trabalho, enquanto permite a qualquer pessoa acessar e contribuir para a pesquisa com facilidade. A DeSci parte da ideia de que o conhecimento científico deve ser acessível a todos e de que o processo de pesquisa científica deve ser transparente. A DeSci está criando um modelo de pesquisa científica mais descentralizado e distribuído, tornando-o mais resistente à censura e ao controle das autoridades centrais. A DeSci espera criar um ambiente no qual possam florescer novas ideias não convencionais por meio da descentralização do acesso ao financiamento, ferramentas científicas e canais de comunicação. + +A ciência descentralizada permite o acesso a fontes de financiamento mais diversificadas (de [DAOs](/dao/), [doações quadráticas](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) a financiamento coletivo, entre outros), dados de acesso e métodos mais acessíveis, assim como incentiva a reprodutibilidade. + +### Juan Benet — O Movimento DeSci + + + +## Como a DeSci melhora a ciência {#desci-improves-science} + +Uma lista incompleta dos principais problemas encontrados pela ciência e como a ciência descentralizada pode ajudar a resolver esses problemas + +| **Ciência descentralizada** | **Ciência tradicional** | +| ---------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| A distribuição dos fundos é determinada pelo público por meio de mecanismos como doações quadráticas ou DAOs. | Grupos pequenos, fechados e centralizados controlam a distribuição de fundos. | +| Você colabora com pares de todo o mundo em equipes dinâmicas. | As organizações financiadoras e instituições domésticas limitam suas colaborações. | +| As decisões de financiamento são tomadas online e de forma transparente. São explorados novos mecanismos de financiamento. | As decisões de financiamento levam muito tempo e sua transparência é limitada. Existem poucos mecanismos de financiamento. | +| O compartilhamento de serviços de laboratório são mais fáceis e transparentes com os primitivos Web3. | O compartilhamento de recursos de laboratório é frequentemente lento e pouco transparente. | +| É possível desenvolver novos modelos para publicação que usam primitivos Web3 para garantir confiança, transparência e acesso universal. | Você publica por meio de caminhos estabelecidos, frequentemente reconhecidos como ineficientes, tendenciosos e exploradores. | +| Você pode ganhar tokens e reputação pelo trabalho de revisão por pares. | Sua tarefa de revisão por pares não é paga, o que beneficia editores com fins lucrativos. | +| Você possui a propriedade intelectual (IP) que gera e distribui de acordo com termos transparentes. | A sua instituição doméstica é dona do IP que você gera. O acesso ao IP não é transparente. | +| Compartilhar toda a pesquisa, incluindo dados de tentativas mal-sucedidas, por meio de todas as etapas na cadeia. | Viés de publicação significa que os pesquisadores são mais propensos a compartilhar experimentos que tiveram resultados bem sucedidos. | + +## Ethereum e DeSci {#ethereum-and-desci} + +Um sistema de ciência descentralizada exigirá segurança sólida, custos monetários e de transações mínimos, e um rico ecossistema para o desenvolvimento de aplicativos. O Ethereum fornece tudo o que é necessário para construir uma pilha científica descentralizada. + +## Casos de uso da DeSci {#use-cases} + +A DeSci está desenvolvendo um conjunto de ferramentas científicas para integrar a academia Web2 no mundo digital. Veja abaixo uma amostra de casos de uso que a Web3 pode oferecer à comunidade científica. + +### Publicação {#publishing} + +A publicação científica é notoriamente problemática por ser gerida por editoras que dependem do trabalho gratuito de cientistas, revisores e editores para produzir os artigos, mas, em seguida, cobram taxas de publicação exorbitantes. O público, que geralmente pagou indiretamente pelo trabalho e os custos de publicação por meio de impostos, muitas vezes, não conseguem acessar esse mesmo trabalho sem pagar novamente ao editor. As taxas totais para a publicação de artigos científicos individuais frequentemente somam dezenas de milhares de dólares, minando todo o conceito de conhecimento científico como um [bem público](https://www.econlib.org/library/Enc/PublicGoods.html), enquanto gera enormes lucros para um pequeno grupo de editoras. + +Plataformas de acesso aberto e gratuito existem na forma de servidores de pré-impressão, [como o ArXiv](https://arxiv.org/). No entanto, essas plataformas carecem de controle de qualidade, [mecanismos anti-sybil](https://csrc.nist.gov/glossary/term/sybil_attack) e geralmente não rastreiam métricas de nível de artigo, ou seja, geralmente são usadas apenas para divulgar o trabalho antes do envio a uma editora tradicional. O SciHub também disponibiliza os artigos publicados gratuitamente, mas não de forma legal, e apenas após os editores já terem pago e protegido o trabalho a uma rigorosa legislação de direitos autorais. Isso deixa uma lacuna grave nos artigos científicos e dados acessíveis com um mecanismo de legitimidade e um modelo de incentivos. As ferramentas para a construção desse sistema existem na Web3. + +### Reprodutibilidade e replicabilidade {#reproducibility-and-replicability} + +Reprodutibilidade e replicabilidade são os fundamentos da descoberta científica de qualidade. + +- Resultados reprodutíveis podem ser alcançados várias vezes seguidas pela mesma equipe usando a mesma metodologia. +- Resultados replicáveis podem ser alcançados por um grupo diferente usando a mesma configuração experimental. + +As novas ferramentas nativas da Web3 podem garantir que a reprodutibilidade e a replicabilidade sejam a base da descoberta. Dessa forma, é possível tecer ciência de qualidade no tecido tecnológico do mundo acadêmico. A Web3 oferece a capacidade de criar atestações para cada componente de análise: os dados brutos, o motor computacional e o resultado do aplicativo. A beleza dos sistemas de consenso é que quando uma rede confiável é criada para manter esses componentes, cada participante da rede pode ser responsável por reproduzir o cálculo e validar cada resultado. + +### Financiamento {#funding} + +O modelo padrão atual para o financiamento da ciência é que indivíduos ou grupos de cientistas façam solicitações por escrito a uma agência de financiamento. Um pequeno painel de indivíduos de confiança avaliam as inscrições e, em seguida, entrevistam os candidatos antes de conceder fundos a uma pequena porção de candidatos. Além de criar gargalos que às vezes levam a anos de espera entre a candidatura e o recebimento de uma bolsa, esse modelo é conhecido por ser altamente vulnerável a preconceitos, interesses próprios e políticas do painel de revisão. + +Estudos mostraram que os painéis de revisão de bolsas fazem um trabalho ruim na seleção de propostas de alta qualidade, pois as mesmas propostas apresentadas a diferentes painéis têm resultados totalmente diferentes. Como o financiamento se tornou mais escasso, ele se concentrou em um grupo menor de pesquisadores mais experientes com projetos mais intelectualmente conservadores. O efeito criou um cenário de financiamento hipercompetitivo, entrincheirando incentivos perversos e asfixiando a inovação. + +A Web3 tem o potencial de interromper este modelo de financiamento quebrado, experimentando diferentes modelos de incentivo desenvolvidos pelos DAOs e Web3 mais amplos. [Financiamento retroativo de bens públicos](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), [financiamento quadrático](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), [governança DAO](https://www.antler.co/blog/daos-and-web3-governance) e [estruturas de incentivo tokenizadas](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) são algumas das ferramentas Web3 que podem revolucionar o financiamento da ciência. + +### Propriedade e desenvolvimento de IP {#ip-ownership} + +A propriedade intelectual (IP) é um grande problema na ciência tradicional: de ficar presa em universidades ou não utilizada em biotecnologia, a ser notoriamente difícil de avaliar. No entanto, a propriedade de ativos digitais (como dados ou artigos científicos) é algo que a Web3 faz excepcionalmente bem usando [tokens não fungíveis (NFTs)](/nft/). + +Da mesma forma que os NFTs podem repassar receitas para transações futuras de volta ao criador original, você pode estabelecer cadeias de atribuição de valor transparentes para recompensar pesquisadores, órgãos governamentais (como DAOs) ou até mesmo as pessoas de cujos dados são coletados. + +[IP-NFTs](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) também podem funcionar como uma chave para um repositório descentralizado de dados, de experimentos de pesquisa que estão sendo realizados para conectar o NFT ao financiamento [DeFi](/defi/) (de fracionamento a fundos de empréstimos e avaliação de valor). Ele também permite que entidades nativamente em cadeia, como DAOs do tipo [VitaDAO](https://www.vitadao.com/), conduzam pesquisas diretamente em cadeia. O advento de [tokens "soulbound" intransferíveis](https://vitalik.ca/general/2022/01/26/soulbound.html) também pode desempenhar um papel importante no DeSci, permitindo que indivíduos provem sua experiência e credenciais vinculadas ao seu endereço Ethereum. + +### Armazenamento de dados, acesso e arquitetura {#data-storage} + +Os dados científicos podem se tornar muito mais acessíveis usando padrões Web3, e o armazenamento distribuído permite que a pesquisa sobreviva a eventos cataclísmicos. + +O ponto de partida deve ser um sistema acessível por qualquer identidade descentralizada que possua as credenciais verificáveis adequadas. Isso permite que dados confidenciais sejam replicados com segurança por partes confiáveis, permitindo redundância e resistência à censura, reprodução de resultados e até mesmo a capacidade de várias partes colaborarem e adicionarem novos dados ao conjunto de dados. Métodos de computação confidenciais como [compute-to-data](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol) fornecem mecanismos alternativos de acesso à replicação de dados brutos, criando ambientes de pesquisa confiáveis para os dados mais confidenciais. Ambientes de pesquisa confiáveis foram [citados pelo NHS](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) como uma solução voltada para o futuro para privacidade e colaboração de dados, criando um ecossistema no qual os pesquisadores podem trabalhar em segurança com dados no local usando ambientes padronizados para compartilhamento de código e práticas. + +As soluções flexíveis de dados Web3 suportam os cenários acima e fornecem a base para a verdadeira Ciência Aberta, na qual os pesquisadores podem criar bens públicos sem permissões ou taxas. Soluções de dados públicos da Web3 como IPFS, Arweave e Filecoin são otimizadas para descentralização. O dClimate, por exemplo, fornece acesso universal a dados climáticos e meteorológicos, inclusive de estações meteorológicas e modelos climáticos preditivos. + +## Participe {#get-involved} + +Explore projetos e junte-se à comunidade DeSci. + +- [DeSci.Global: eventos globais e calendário de encontros](https://desci.global) +- [Cadeia de blocos para o Science Telegram](https://t.me/BlockchainForScience) +- [Molecule: financie e obtenha financiamento para seus projetos de pesquisa](https://discover.molecule.to/) +- [Virotada: receba financiamento por meio de acordos de pesquisa patrocinados para pesquisas sobre longevidade](https://www.vitadao.com/) +- [ResearchHub: publique um resultado científico e converse com colegas](https://www.researchhub.com/) +- [LabDAO: dobre uma proteína in-silico](https://alphafodl.vercel.app/) +- [dClimate API: consulte dados climáticos coletados por uma comunidade descentralizada](https://api.dclimate.net/) +- [DeSci Foundation: construtor de ferramentas de publicação DeSci](https://descifoundation.org/) +- [DeSci.World: balcão único para os usuários visualizarem e interagirem com a ciência descentralizada](https://desci.world) +- [Fleming Protocol: economia de dados de código aberto que alimenta a descoberta biomédica colaborativa](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [OceanDAO: financiamento governado pela DAO para ciência relacionada a dados](https://oceanprotocol.com/dao) +- [Opscientia: fluxos de trabalho de ciência descentralizados abertos](https://opsci.io/research/) +- [LabDAO: dobre uma proteína in-silico](https://alphafodl.vercel.app/) +- [Bio.xyz: obtenha financiamento para sua DAO de biotecnologia ou projeto desci](https://www.molecule.to/) +- [ResearchHub: publique um resultado científico e converse com colegas](https://www.researchhub.com/) +- [Virotada: receba financiamento por meio de acordos de pesquisa patrocinados para pesquisas sobre longevidade](https://www.vitadao.com/) +- [Fleming Protocol: economia de dados de código aberto que alimenta a descoberta biomédica colaborativa](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [Active Inference Lab](https://www.activeinference.org/) +- [CureDAO: plataforma de saúde de precisão de propriedade da comunidade](https://docs.curedao.org/) +- [IdeaMarkets: para uma credibilidade científica descentralizada](https://ideamarket.io/) +- [DeSci Labs](https://www.desci.com/) + +Agradecemos o envio de sugestões para novos projetos a serem listados — veja nossa [política de listagem](/contributing/adding-desci-projects/) para começar! + +## Leitura adicional {#further-reading} + +- [DeSci Wiki por Jocelynn Pearl e Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) +- [Um guia sobre biotecnologia descentralizada por Jocelynn Pearl para o futuro a16z](https://future.a16z.com/a-guide-to-decentralized-biotech/) +- [O caso da DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) +- [Guia para a DeSci](https://future.com/what-is-decentralized-science-aka-desci/) +- [Recursos científicos descentralizados](https://www.vincentweisser.com/decentralized-science) +- [IP-NFTs Bio-Farmacêuticas da Molecule — Uma descrição técnica](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) +- [Construindo sistemas de ciência sem confiança, de Jon Arrastar](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) +- [O surgimento de DAOs biotecnológicas](https://molecule.to/blog/the-emergence-of-biotech-daos) +- [Paul Kohlhaas — DeSci: O Futuro da ciência descentralizada (podcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) +- [Uma ontologia de inferência ativa para a ciência descentralizada: da criação de sentido situada aos comuns epistêmicos](https://zenodo.org/record/6320575) +- [DeSci: O futuro da pesquisa por Samuel Azinhoso](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) +- [Financiamento de ciência (Epílogo: DeSci e novas criptoprimitivas) por Nadia](https://nadia.xyz/science-funding) +- [A descentralização está perturbando o desenvolvimento de medicamentos](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) + +### Vídeos {#videos} + +- [O que é ciência descentralizada?](https://www.youtube.com/watch?v=-DeMklVWNdA) +- [Conversa entre Vitalik Buterin e o cientista Aubrey de Gray sobre a interseção de pesquisas de longevidade e criptomoedas](https://www.youtube.com/watch?v=x9TSJK1widA) +- [A publicação científica está em pane. A Web3 pode resolver isso?](https://www.youtube.com/watch?v=WkvzYgCvWj8) +- [Juan Benet - DeSci, Laboratórios Independentes, & Ciência de Dados em Grande Escala](https://www.youtube.com/watch?v=zkXM9H90g_E) +- [Sebastian Brunemeier — Como a DeSci pode transformar a Pesquisa Biomédica e o Capital de Risco](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/pt-br/developers/docs/accounts/accounts.png b/public/content/translations/pt-br/developers/docs/accounts/accounts.png similarity index 100% rename from src/content/translations/pt-br/developers/docs/accounts/accounts.png rename to public/content/translations/pt-br/developers/docs/accounts/accounts.png diff --git a/src/content/translations/pt-br/developers/docs/accounts/index.md b/public/content/translations/pt-br/developers/docs/accounts/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/accounts/index.md rename to public/content/translations/pt-br/developers/docs/accounts/index.md diff --git a/src/content/translations/pt-br/developers/docs/apis/backend/index.md b/public/content/translations/pt-br/developers/docs/apis/backend/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/apis/backend/index.md rename to public/content/translations/pt-br/developers/docs/apis/backend/index.md diff --git a/src/content/translations/pt-br/developers/docs/apis/javascript/index.md b/public/content/translations/pt-br/developers/docs/apis/javascript/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/apis/javascript/index.md rename to public/content/translations/pt-br/developers/docs/apis/javascript/index.md diff --git a/src/content/translations/pt-br/developers/docs/apis/json-rpc/index.md b/public/content/translations/pt-br/developers/docs/apis/json-rpc/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/apis/json-rpc/index.md rename to public/content/translations/pt-br/developers/docs/apis/json-rpc/index.md diff --git a/src/content/translations/pt-br/developers/docs/blocks/index.md b/public/content/translations/pt-br/developers/docs/blocks/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/blocks/index.md rename to public/content/translations/pt-br/developers/docs/blocks/index.md diff --git a/src/content/translations/pt-br/developers/docs/blocks/tx-block.png b/public/content/translations/pt-br/developers/docs/blocks/tx-block.png similarity index 100% rename from src/content/translations/pt-br/developers/docs/blocks/tx-block.png rename to public/content/translations/pt-br/developers/docs/blocks/tx-block.png diff --git a/src/content/translations/pt-br/developers/docs/bridges/index.md b/public/content/translations/pt-br/developers/docs/bridges/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/bridges/index.md rename to public/content/translations/pt-br/developers/docs/bridges/index.md diff --git a/src/content/translations/pt-br/developers/docs/consensus-mechanisms/index.md b/public/content/translations/pt-br/developers/docs/consensus-mechanisms/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/consensus-mechanisms/index.md rename to public/content/translations/pt-br/developers/docs/consensus-mechanisms/index.md diff --git a/src/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md b/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md rename to public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md diff --git a/src/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/attestations/index.md b/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/attestations/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/attestations/index.md rename to public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/attestations/index.md diff --git a/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/block-proposal/index.md b/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/block-proposal/index.md new file mode 100644 index 00000000000..e774b6184f7 --- /dev/null +++ b/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/block-proposal/index.md @@ -0,0 +1,69 @@ +--- +title: Proposta de bloqueio +description: Explicação de como os blocos são propostos na prova de participação do Ethereum. +lang: pt-br +--- + +Os blocos são as unidades fundamentais da blockchain. Blocos são unidades discretas de informação passadas entre os nós, acordadas e adicionadas ao banco de dados de cada nó. Esta página explica como elas são produzidas. + +## Pré-requisitos {#prerequisites} + +A proposta de bloco faz parte do protocolo de prova de participação. Para ajudar a entender esta página, recomendamos que você leia sobre a [prova de participação](public/content/developers/docs/consensus-mechanisms/pos/) e a [arquitetura de bloco](public/content/developers/docs/blocks/). + +## Quem produz os blocos? {#who-produces-blocks} + +Contas validadoras propõem blocos. Contas validadoras são gerenciadas por operadores de nós que executam um software validador como parte de seus clientes de consenso e execução e que depositaram pelo menos 32 ETH no contrato de depósito. No entanto, cada validador é apenas ocasionalmente responsável por propor um bloco. O Ethereum mede o tempo em slots e épocas. Cada slot é de doze segundos, sendo que 32 slots (6,4 minutos) formam uma época. Cada slot é uma oportunidade de adicionar um novo bloco ao Ethereum. + +### Seleção aleatória {#random-selection} + +Um único validador é pseudo-aleatoriamente escolhido para propor um bloco em cada slot. Não existe algo realmente aleatório em uma blockchain, porque se cada nó gerou números genuinamente aleatórios, não há como chegar a um consenso. Em vez disso, o objetivo é tornar o processo de seleção do validador imprevisível. A aleatoriedade é alcançada no Ethereum usando um algoritmo chamado RANDAO, que mistura um hash do proponente do bloco com uma semente que é atualizada em todos os blocos. Esse valor é usado para selecionar um validador específico do validador total definido. A seleção do validador é fixa em duas épocas de antecedência como uma forma de proteção contra certos tipos de manipulação de sementes. + +Embora os validadores se adicionem ao RANDAO em cada slot, o valor global do RANDAO só é atualizado uma vez por época. Para calcular o índice do próximo proponente de bloco, o valor de RANDAO é misturado com o número do slot para dar um valor único a cada slot. A probabilidade de um validador individual ser selecionado não é simplesmente `1/N` (em que `N` = total de validadores ativos). Em vez disso, ele é ponderado pelo saldo de ETH efetivo de cada validador. O saldo máximo efetivo é de 32 ETH (isso significa que o `saldo < 32 ETH` leva a um peso menor do que o `saldo == 32 ETH`, mas `saldo > 32 ETH` não leva a uma ponderação maior que o saldo de `== 32 ETH`). + +Somente um proponente de blocos é selecionado em cada slot. Em condições normais, um único produtor de blocos cria e libera um único bloco no seu slot dedicado. A criação de dois blocos para o mesmo slot é uma ofensiva removível, geralmente conhecida como “ambiguidade”. + +## Como o bloco é criado? {#how-is-a-block-created} + +Espera-se que o proponente de blocos transmita um bloco beacon assinado que se baseia no cabeçalho mais recente da cadeia, de acordo com a visualização de seu próprio algoritmo de escolha de bifurcação (fork choice) local. O algoritmo de escolha de bifurcação (fork) aplica todas as atestações na fila deixadas no slot anterior e, em seguida, encontra o bloco com o maior peso acumulado de atestações em seu histórico. Esse bloco é o pai do novo bloco criado pelo proponente. + +O proponente de blocos cria um bloco coletando dados de seu próprio banco de dados local e visualização da cadeia. O conteúdo do bloco é mostrado no trecho de código abaixo: + +```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 +``` + +O campo `randao_reveal` leva um valor aleatório verificável que o proponente do bloco cria assinando o número da época atual. `eth1_data` é uma votação para a visualização do proponente do bloco no contrato de depósito, incluindo a raiz do depósito da árvore Merkle de depósito e o número total de depósitos que permitem a verificação de novos depósitos. `graffiti` é um campo opcional que pode ser usado para adicionar uma mensagem ao bloco. `proposer_slashings` e `attester_slashings` são campos que contêm provas de que alguns validadores cometeram ofensivas sujeitas a remoção segundo a visualização do proponente da cadeia. `depósitos` é uma lista de novos depósitos do validador dos quais o proponente de bloco está ciente, e `voluntary_exits` é uma lista de validadores que desejam sair, segundo o que o proponente de blocos ouviu falar na rede de fofocas da camada de consenso. O `sync_aggregate` é um vetor que mostra quais validadores foram previamente atribuídos a um comitê de sincronização (um subconjunto de validadores que atendem dados de cliente leve) e participaram da assinatura de dados. + +O `execution_payload` permite que informações sobre transações sejam passadas entre clientes de execução e clientes de consenso. O `execution_payload` é um bloco de dados de execução que fica aninhado em um bloco de sinal (beacon). Os campos dentro de `execution_payload` refletem a estrutura do bloco delineada nas especificações formais (Yellow Paper) do Ethereum, exceto pelo fato de não haver ommers e `prev_randao` existe no lugar de `difficulty`. O cliente de execução tem acesso a um conjunto de operações locais de que ouviu falar na sua própria rede de fofocas. Essas transações são executadas localmente para gerar uma árvore de estado atualizada, conhecida como pós-estado. As transações são incluídas no `execution_payload` como uma lista chamada `transactions` e o pós-estado é fornecido no campo `state-root`. + +Todos esses dados são coletados em um bloco de sinal, assinado e transmitido para os pares do proponente de blocos, que o propagam para seus pares, etc. + +Leia mais sobre a [anatomia dos blocos](/developers/docs/blocks). + +## O que acontece com os blocos? {#what-happens-to-blocks} + +O bloco é adicionado ao banco de dados local do proponente do bloco e transmitido aos pares pela rede de fofocas da camada de consenso. Quando um validador recebe o bloco, ele verifica os dados dentro dele, inclusive se o bloco tem o pai correto, corresponde ao pacote correto, se o índice do proponente é o esperado, se a revelação RANDAO é válida e se o proponente não foi removido. O `execution_payload` é descompactado e o cliente de execução do validador reexecuta as transações na lista para verificar a proposta de mudança de estado. Supondo que o bloco passe em todas essas verificações, cada validador adiciona o bloco à sua própria cadeia padronizada. O processo recomeça no próximo slot. + +## Recompensas do bloco {#block-rewards} + +O proponente de blocos recebe pagamento pelo seu trabalho. Há uma `base_reward` calculada como uma função do número de validadores ativos e seus saldos efetivos. O proponente de blocos recebe uma fração de `base_reward` por cada certificado válido incluído no bloco; quanto mais validadores atestarem o bloco, maior será a recompensa do seu proponente. Há também uma recompensa por reportar validadores que devem ser removidos, igual a `1/512 * saldo efetivo` para cada validador removido. + +[Recompensas e penalidades da PoS](/developers/docs/consensus-mechanisms/pos/rewards-and-penalties) + +## Leitura adicional {#further-reading} + +- [Introdução aos blocos](/developers/docs/blocks/) +- [Introdução à prova de participação](/developers/docs/consensus-mechanisms/pos/) +- [Especificações do consenso do Ethereum](https://www.github.com/ethereum/consensus-specs) +- [Introdução ao Gasper](/developers/docs/consensus-mechanisms/pos/) +- [Atualizando o Ethereum](https://eth2book.info/) diff --git a/src/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/faqs/index.md b/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/faqs/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/faqs/index.md rename to public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/faqs/index.md diff --git a/src/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/gasper/index.md b/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/gasper/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/gasper/index.md rename to public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/gasper/index.md diff --git a/src/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/index.md b/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/index.md rename to public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/index.md diff --git a/src/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/keys/index.md b/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/keys/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/keys/index.md rename to public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/keys/index.md diff --git a/src/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md b/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md rename to public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md diff --git a/src/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md b/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md rename to public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md diff --git a/src/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md b/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md rename to public/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md diff --git a/src/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/index.md b/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/index.md rename to public/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/index.md diff --git a/src/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining-algorithms/dagger-hashamoto/index.md b/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining-algorithms/dagger-hashamoto/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining-algorithms/dagger-hashamoto/index.md rename to public/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining-algorithms/dagger-hashamoto/index.md diff --git a/src/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethash/index.md b/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethash/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethash/index.md rename to public/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethash/index.md diff --git a/src/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining-algorithms/index.md b/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining-algorithms/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining-algorithms/index.md rename to public/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining-algorithms/index.md diff --git a/src/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining/index.md b/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining/index.md rename to public/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining/index.md diff --git a/src/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md b/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md rename to public/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md diff --git a/src/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md b/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md rename to public/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md diff --git a/src/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md b/public/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md rename to public/content/translations/pt-br/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md diff --git a/src/content/translations/pt-br/developers/docs/dapps/index.md b/public/content/translations/pt-br/developers/docs/dapps/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/dapps/index.md rename to public/content/translations/pt-br/developers/docs/dapps/index.md diff --git a/src/content/translations/pt-br/developers/docs/data-and-analytics/block-explorers/index.md b/public/content/translations/pt-br/developers/docs/data-and-analytics/block-explorers/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/data-and-analytics/block-explorers/index.md rename to public/content/translations/pt-br/developers/docs/data-and-analytics/block-explorers/index.md diff --git a/src/content/translations/pt-br/developers/docs/data-and-analytics/index.md b/public/content/translations/pt-br/developers/docs/data-and-analytics/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/data-and-analytics/index.md rename to public/content/translations/pt-br/developers/docs/data-and-analytics/index.md diff --git a/src/content/translations/pt-br/developers/docs/data-availability/index.md b/public/content/translations/pt-br/developers/docs/data-availability/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/data-availability/index.md rename to public/content/translations/pt-br/developers/docs/data-availability/index.md diff --git a/src/content/translations/pt-br/developers/docs/data-structures-and-encoding/index.md b/public/content/translations/pt-br/developers/docs/data-structures-and-encoding/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/data-structures-and-encoding/index.md rename to public/content/translations/pt-br/developers/docs/data-structures-and-encoding/index.md diff --git a/src/content/translations/pt-br/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md b/public/content/translations/pt-br/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md rename to public/content/translations/pt-br/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md diff --git a/src/content/translations/pt-br/developers/docs/data-structures-and-encoding/rlp/index.md b/public/content/translations/pt-br/developers/docs/data-structures-and-encoding/rlp/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/data-structures-and-encoding/rlp/index.md rename to public/content/translations/pt-br/developers/docs/data-structures-and-encoding/rlp/index.md diff --git a/src/content/translations/pt-br/developers/docs/data-structures-and-encoding/ssz/index.md b/public/content/translations/pt-br/developers/docs/data-structures-and-encoding/ssz/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/data-structures-and-encoding/ssz/index.md rename to public/content/translations/pt-br/developers/docs/data-structures-and-encoding/ssz/index.md diff --git a/src/content/translations/pt-br/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md b/public/content/translations/pt-br/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md rename to public/content/translations/pt-br/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md diff --git a/src/content/translations/pt-br/developers/docs/development-networks/index.md b/public/content/translations/pt-br/developers/docs/development-networks/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/development-networks/index.md rename to public/content/translations/pt-br/developers/docs/development-networks/index.md diff --git a/src/content/translations/pt-br/developers/docs/ethereum-stack/index.md b/public/content/translations/pt-br/developers/docs/ethereum-stack/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/ethereum-stack/index.md rename to public/content/translations/pt-br/developers/docs/ethereum-stack/index.md diff --git a/src/content/translations/pt-br/developers/docs/evm/evm.png b/public/content/translations/pt-br/developers/docs/evm/evm.png similarity index 100% rename from src/content/translations/pt-br/developers/docs/evm/evm.png rename to public/content/translations/pt-br/developers/docs/evm/evm.png diff --git a/src/content/translations/pt-br/developers/docs/evm/gas.png b/public/content/translations/pt-br/developers/docs/evm/gas.png similarity index 100% rename from src/content/translations/pt-br/developers/docs/evm/gas.png rename to public/content/translations/pt-br/developers/docs/evm/gas.png diff --git a/src/content/translations/pt-br/developers/docs/evm/index.md b/public/content/translations/pt-br/developers/docs/evm/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/evm/index.md rename to public/content/translations/pt-br/developers/docs/evm/index.md diff --git a/src/content/translations/pt-br/developers/docs/evm/opcodes/index.md b/public/content/translations/pt-br/developers/docs/evm/opcodes/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/evm/opcodes/index.md rename to public/content/translations/pt-br/developers/docs/evm/opcodes/index.md diff --git a/src/content/translations/pt-br/developers/docs/frameworks/index.md b/public/content/translations/pt-br/developers/docs/frameworks/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/frameworks/index.md rename to public/content/translations/pt-br/developers/docs/frameworks/index.md diff --git a/src/content/translations/pt-br/developers/docs/gas/index.md b/public/content/translations/pt-br/developers/docs/gas/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/gas/index.md rename to public/content/translations/pt-br/developers/docs/gas/index.md diff --git a/src/content/translations/pt-br/developers/docs/ides/index.md b/public/content/translations/pt-br/developers/docs/ides/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/ides/index.md rename to public/content/translations/pt-br/developers/docs/ides/index.md diff --git a/src/content/translations/pt-br/developers/docs/index.md b/public/content/translations/pt-br/developers/docs/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/index.md rename to public/content/translations/pt-br/developers/docs/index.md diff --git a/src/content/translations/pt-br/developers/docs/intro-to-ether/index.md b/public/content/translations/pt-br/developers/docs/intro-to-ether/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/intro-to-ether/index.md rename to public/content/translations/pt-br/developers/docs/intro-to-ether/index.md diff --git a/src/content/translations/pt-br/developers/docs/intro-to-ethereum/index.md b/public/content/translations/pt-br/developers/docs/intro-to-ethereum/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/intro-to-ethereum/index.md rename to public/content/translations/pt-br/developers/docs/intro-to-ethereum/index.md diff --git a/public/content/translations/pt-br/developers/docs/mev/index.md b/public/content/translations/pt-br/developers/docs/mev/index.md new file mode 100644 index 00000000000..695ef1f764a --- /dev/null +++ b/public/content/translations/pt-br/developers/docs/mev/index.md @@ -0,0 +1,221 @@ +--- +title: Valor máximo extraível (MEV) +description: Uma introdução ao valor máximo extraível (MEV) +lang: pt-br +--- + +Valor Máximo Extraível (MEV, na sigla em inglês) expressa o valor máximo que pode ser extraído da produção de blocos que excede a recompensa padrão do bloco e sua taxa de gás através da inclusão, exclusão e alteração da ordem de transações em um determinado bloco. + +## Valor máximo extraível {#miner-extractable-value} + +O valor máximo extraível foi aplicado pela primeira vez no contexto de [prova de trabalho](/developers/docs/consensus-mechanisms/pow/) e inicialmente referido como "valor extraível do minerador". Isto porque na prova de trabalho, os mineradores controlam a inclusão, exclusão e ordenação das transações. No entanto, desde a transição para a prova de participação por meio do [The Merge (A Fusão)](/roadmap/merge), os validadores têm sido responsáveis por essas funções, e a mineração não faz mais parte do protocolo Ethereum. Como os métodos de extração de valor ainda existem, o termo "valor máximo extraível" agora é usado. + +## Pré-Requisitos {#prerequisites} + +Certifique-se de estar familiarizado com [transações](/developers/docs/transactions/), [blocos](/developers/docs/blocks/), [prova de participação](/developers/docs/consensus-mechanisms/pos) e [gás](/developers/docs/gas/). Conhecer outros detalhes como [dapps](/dapps/) ou [DeFi](/defi/) também seria útil. + +## Extração via MEV {#mev-extraction} + +Em teoria, o MEV é revertido inteiramente para os validadores porque eles são a única parte que pode garantir a execução de uma oportunidade lucrativa de MEV. Na prática, porém, uma grande parte do MEV é extraída por participantes independentes da rede chamados "buscadores". Os buscadores executam algoritmos complexos nos dados da blockchain para detectar oportunidades de MEV lucrativas e usam bots para enviar automaticamente essas transações rentáveis para a rede. + +Os validadores recebem uma parte do valor total do MEV de qualquer maneira, porque os pesquisadores estão dispostos a pagar altas taxas de gás (que vão para o validador) em troca de maior probabilidade de inclusão de suas transações lucrativas em um bloco. Assumindo que os buscadores são economicamente racionais, a taxa de gás que um buscador está disposto a pagar será uma quantia de até 100% do MEV do buscador (porque se a taxa de gás fosse maior, o buscador perderia dinheiro). + +Com isso, para algumas oportunidades de MEV altamente competitivas, como [arbitragem DEX](#mev-examples-dex-arbitrage), os buscadores podem ter que pagar 90% ou até mais de sua receita total de MEV, em taxas de gás para o validador, porque muitas pessoas querem executar a mesma operação de arbitragem lucrativa. Isto porque a única maneira de garantir que a sua transação de arbitragem seja executada é submetendo a transação com o preço de gás mais elevado. + +### Redução do consumo de gás dos contratos (gas golfing) {#mev-extraction-gas-golfing} + +Esta dinâmica fez do "gas-golfing" — o fato de programar as transações para que elas usem a menor quantidade de gás possível — una vantagem competitiva, porque ela permite que os buscadores fixem um preço de gás superior sem deixar de manter as taxas de gás constantes (já que as taxas de gás = preço do gás \* gás usado). + +Algumas técnicas de "gas-golfing" conhecidas incluem: o uso de endereços que começam com uma longa série de zeros (por exemplo, [0x0000000000C521824EaFf97Eac7B73B084ef9306](https://etherscan.io/address/0x0000000000c521824eaff97eac7b73b084ef9306)), já que consomem menos espaço (e, portanto, gás); e deixar pequenos saldos de token de [ERC-20](/developers/docs/standards/tokens/erc-20/) em contratos, já que é mais caro inicializar um slot de armazenamento (o que acontece se o saldo for 0) que atualizá-lo. Encontrar mais técnicas para reduzir o uso de gás é uma área ativa de pesquisa entre pesquisadores. + +### Frontrunners generalizados {#mev-extraction-generalized-frontrunners} + +Em vez de programar algoritmos complexos para detectar oportunidades de MEV rentáveis, alguns buscadores executam frontrunners generalizados. Frontrunners generalizados são bots que assistem o mempool para detectar transações rentáveis. O frontrunner copiará o código da transação potencialmente rentável, substituirá os endereços pelo endereço do frontrunner, e executará a transação localmente para corroborar se a transação modificada resulta em lucro para o endereço do frontrunner. Se a transação for de fato rentável, o frontrunner enviará a transação modificada com o endereço substituído e um preço de gás mais alto, escolhendo a transação original (frontrunning) e obtendo a MEV do buscador original. + +### Flashbots {#mev-extraction-flashbots} + +Flashbots é um projeto independente que estende clientes de execução com um serviço que permite aos buscadores submeterem transações MEV aos validadores sem revelá-las ao mempool público. Isto evita que transações sejam executadas por frontrunners generalizados. + +## Exemplos de MEV {#mev-examples} + +O MEV surge na blockchain de diferentes maneiras. + +### Arbitragem DEX {#mev-examples-dex-arbitrage} + +A arbitragem em [exchanges descentralizadas](/glossary/#dex) (DEX) é a oportunidade mais simples e mais conhecida de MEV. Por conseguinte, é também a mais competitiva. + +Isso funciona assim: se dois DEXes estão oferecendo um token a dois preços diferentes, alguém pode comprar o token na DEX com preços mais baixos e vendê-lo nas DEX com preços mais altos em uma única transação atômica. Graças ao mecanismo da blockchain, está é sem dúvidas uma arbitragem sem risco. + +[Aqui está um exemplo](https://etherscan.io/tx/0x5e1657ef0e9be9bc72efefe59a2528d0d730d478cfc9e6cdd09af9f997bb3ef4) de uma transação de arbitragem lucrativa onde um buscador transformou 1.00 ETH em 1.045 ETH aproveitando os diferentes preços do par ETH/DAI no Uniswap vs. Sushiswap. + +### Liquidações {#mev-examples-liquidations} + +As liquidações do protocolo de empréstimo oferecem outra oportunidade conhecida de MEV. + +Protocolos de empréstimo como Maker e Aave exigem que os usuários depositem algumas garantias (por exemplo, ETH). Essa garantia depositada é então usada para emprestar a outros usuários. + +Os usuários podem então pedir emprestado ativos e tokens de outros, dependendo do que eles precisarem (por exemplo, você pode pedir emprestado MKR, se quiser votar em uma proposta de governança do MakerDAO) até um certo percentual de suas garantias depositadas. Por exemplo, se a quantia emprestada for um máximo de 30%, um usuário que depositar 100 DAI no protocolo poderá emprestar até 30 DAI de outro ativo. O protocolo determina a porcentagem exata do poder de empréstimo. + +O valor das garantias de quem pede o emprestado flutua, assim como sua capacidade de pedir empréstimo. Se, por causa das flutuações de mercado, o valor dos ativos emprestados excede, por exemplo, 30% do valor de suas garantias (novamente, a porcentagem exata é determinada pelo protocolo), o protocolo normalmente permite que qualquer pessoa liquide a garantia, pagando imediatamente os mutuantes (isso é semelhante a como [chamada de margem](https://www.investopedia.com/terms/m/margincall.asp) funciona nas finanças tradicionais). Se liquidado, o mutuário geralmente tem de pagar uma taxa de liquidação elevada, parte da qual vai para o liquidador. É aí que se encontra a oportunidade de MEV. + +Os buscadores competem para analisar os dados da blockchain o mais rápido possível para determinar quais mutuários podem ser liquidados e ser o primeiro a enviar uma transação de liquidação e coletar a taxa de liquidação para si mesmos. + +### Sandwich trading {#mev-examples-sandwich-trading} + +Sandwich trading é outro método comum de extração MEV. + +Para usar o método sandwich, um buscador observará o mempool para encontrar grandes negociações DEX. Por exemplo, suponha que alguém queira comprar 10.000 UNI com DAI na Uniswap. Uma transação desta magnitude causará um impacto significativo no par UNI/DAI, ocasionando aumento significativo no preço da UNI em relação ao DAI. + +Um buscador pode calcular o efeito de preço aproximado desta grande negociação no par UNI/DAI e executar uma ordem de compra ideal imediatamente _antes_ da grande negociação, comprando UNI mais barato e, em seguida, executar uma ordem de venda imediatamente _após_ a grande negociação, vendendo-a pelo preço mais alto causado pelo grande pedido. + +No entanto, o método sandwich é mais arriscado, pois não é atômico (ao contrário da arbitragem DEX, como descrito acima) e é propenso a um [ataque "salmonela"](https://github.com/Defi-Cartel/salmonella). + +### MEV com NFT {#mev-examples-nfts} + +O MEV no espaço de NFT é um fenômeno emergente e não é necessariamente lucrativo. + +No entanto, uma vez que as transações NFT acontecem na mesma blockchain compartilhada por todas as outras transações Ethereum, buscadores podem usar técnicas similares como as usadas em oportunidades de MEV tradicionais também no mercado NFT. + +Por exemplo, se há o lançamento de um NFT popular e um buscador quer um determinado NFT ou um determinado conjunto de NFTs, ele pode programar uma transação de tal forma a ser o primeiro a comprar a NFT ou ele pode comprar todo o conjunto de NFTs em uma única transação. Ou se um NFT estiver [listado por um preço baixo de maneira equivocada](https://www.theblockcrypto.com/post/113546/mistake-sees-69000-cryptopunk-sold-for-less-than-a-cent), um buscador pode se adiantar por meio de frontrun a outros compradores e adquiri-lo por baixo custo. + +Um exemplo proeminente de NFT com MEV ocorreu quando um buscador gastou US$ 7 milhões para [comprar](https://etherscan.io/address/0x650dCdEB6ecF05aE3CAF30A70966E2F395d5E9E5) cada Cryptopunk ao preço mínimo. Um pesquisador de blockchain [explicou no Twitter](https://twitter.com/IvanBogatyy/status/1422232184493121538) como o comprador trabalhou com um provedor de MEV para manter a compra em segredo. + +### A cauda longa {#mev-examples-long-tail} + +Arbitragem DEX, liquidações e o método sandwich trading são todos oportunidades de MEV muito conhecidas e são improváveis de serem lucrativas para novos buscadores. No entanto, há uma longa cauda de oportunidades de MEV menos conhecidas. MEV com NFT é, indiscutivelmente, uma dessas oportunidades. + +Os buscadores que estão apenas começando talvez consigam ter mais sucesso procurando MEV nesta cauda mais longa. O [quadro de trabalhos MEV](https://github.com/flashbots/mev-job-board) do Flashbot enumera algumas oportunidades emergentes. + +## Efeitos do MEV {#effects-of-mev} + +Nem tudo sobre o MEV é negativo. Há consequências positivas e negativas com respeito ao MEV no Ethereum. + +### As vantagens {#effects-of-mev-the-good} + +Muitos projetos DeFi dependem de atores economicamente racionais para assegurar a utilidade e a estabilidade dos seus protocolos. Por exemplo, a arbitragem DEX garante que os usuários obtenham os melhores preços corretos por seus totens, e os protocolos de empréstimo dependem de liquidações rápidas quando os mutuários caem abaixo das proporções de garantia para garantir que os mutuários recebam de volta. + +Sem buscadores racionais procurando e corrigindo as ineficiências econômicas e aproveitando os incentivos econômicos dos protocolos, os protocolos de DeFI e dApps podem, em geral, não ser tão robustos como são hoje. + +### As desvantagens {#effects-of-mev-the-bad} + +Na camada de aplicativo, algumas formas de MEV, como o método "sandwich trading", resultam em uma experiência inequivocamente pior para os usuários. Usuários que sofrem o método "sandwich trading" enfrentam maior slippage (derrapagem) e uma pior execução nas suas transações. + +Na camada de rede, os frontrunners generalizados e os leilões de preço do gás nos quais eles costumam participar (quando dois ou mais frontrunners competem para que sua transação seja incluída no bloco seguinte, aumentando progressivamente o preço do gás das suas próprias transações) resultam em congestionamento da rede e em elevados preços do gás para todos os outros que tentam realizar transações regulares. + +Além do que está acontecendo _nos_ blocos, o MEV pode ter efeitos prejudiciais _entre_ os blocos. Se o MEV disponível em um bloco excede significativamente a recompensa do bloco padrão, os validadores podem ser incentivados a reorganizar os blocos e capturar o MEV para si mesmos, causando reorganização da blockchain e instabilidade do consenso. + +Essa possibilidade de reorganização da blockchain foi [previamente explorada na blockchain Bitcoin](https://dl.acm.org/doi/10.1145/2976749.2978408). Como a recompensa de bloco do Bitcoin é reduzida pela metade e as recompensas de transação representam uma parte cada vez maior da recompensa do bloco, surgem situações nas quais é mais economicamente racional para os mineradores desistirem da recompensa do próximo bloco e, em vez disso, minarem novamente blocos passados com taxas mais elevadas. Com o crescimento do MEV, o mesmo tipo de situação poderia ocorrer com o Ethereum, ameaçando a integridade da blockchain. + +## Estado do MEV {#state-of-mev} + +A extração MEV teve um grande crescimento no início de 2021, o que resultou em preços de gás extremamente elevados nos primeiros meses do ano. O surgimento do relé MEV de Flashbots reduziu a efetividade dos frontrunners generalizados e tirou os leilões de preço de gás da cadeia, baixando os preços do gás para os utilizadores comuns. + +Enquanto muitos buscadores ainda estão ganhando um bom dinheiro com o MEV, à medida que as oportunidades se tornam mais conhecidas e mais e mais buscadores competem pela mesma oportunidade, os validadores irão capturar cada vez mais receita total do MEV (porque o mesmo tipo de leilão de gás descrito originalmente acima também ocorre em Flashbots, embora de forma particular, e os validadores irão capturar a receita de gás resultante). O MEV também não é exclusivo da Ethereum, e conforme as oportunidades se tornam mais competitivas no Ethereum, os buscadores estão migrando para blockchains alternativas, como a Binance Smart Chain, onde oportunidades de MEV semelhantes às que estão na Ethereum existem com menos concorrência. + +Por outro lado, a transição da prova de trabalho para prova de participação e o esforço contínuo para escalar o Ethereum usando rollups mudam todo o panorama do MEV de maneiras que ainda não estão claras. Ainda não se sabe bem de que maneira ter proponentes de bloco garantidos conhecidos com pouca antecedência altera a dinâmica da extração de MEV em comparação com o modelo probabilístico na prova de trabalho ou como isso será interrompido quando [a eleição de líder secreto único](https://ethresear.ch/t/secret-non-single-leader-election/11789) e [a tecnologia de validador distribuído](/staking/dvt/) forem implementados. Da mesma forma, resta saber quais são as oportunidades de MEV existentes quando a maioria das atividades do usuário é transferida do Ethereum para seus rollups e fragmentos de camada 2. + +## MEV na prova de participação (PoS) do Ethereum {#mev-in-ethereum-proof-of-stake} + +Conforme explicado, o MEV tem implicações negativas para a experiência geral do usuário e para a segurança da camada de consenso. Mas a transição do Ethereum para um consenso de prova de participação (denominado "A Fusão") introduz potencialmente novos riscos relacionados ao MEV: + +### Centralização do validador {#validator-centralization} + +No Ethereum pós-fusão, os validadores (tendo feito depósitos de segurança de 32 ETH) chegam a um consenso sobre a validade dos blocos adicionados à Beacon Chain. Como 32 ETH podem estar fora do alcance de muitos, [entrar em um staking pool](/staking/pools/) pode ser uma opção mais viável. No entanto, uma distribuição saudável de [stakers individuais](/staking/solo/) é ideal, pois mitiga a centralização dos validadores e melhora a segurança do Ethereum. + +No entanto, acredita-se que a extração MEV seja capaz de acelerar a centralização de validadores. Isso se deve em parte porque, como os validadores [ganham menos por propor blocos](/roadmap/merge/issuance/#how-the-merge-impacts-ETH-supply) do que os mineradores atualmente, a extração de MEV pode em muito [influenciar os ganhos do validador](https://github.com/flashbots/eth2-research/blob/main/notebooks/mev-in-eth2/eth2-mev-calc.ipynb) após o The Merge (A Fusão). + +Staking pools maiores provavelmente terão mais recursos para investir em otimizações necessárias para capturar oportunidades de MEV. Quanto mais MEV essas pools extraem, mais recursos eles têm para melhorar suas capacidades de extração MEV (e aumentar a receita geral), criando essencialmente [economias de escala](https://www.investopedia.com/terms/e/economiesofscale.asp#). + +Com menos recursos à sua disposição, os stakers individuais podem ser incapazes de lucrar com oportunidades de MEV. Isso pode aumentar a pressão sobre validadores independentes para se unirem a staking pools poderosas para aumentar os ganhos, reduzindo a descentralização no Ethereum. + +### Mempools autorizados {#permissioned-mempools} + +Em resposta aos ataques "sandwiching" e "frontrunning", os traders podem começar a realizar negócios off-chain com validadores para privacidade de transação. Em vez de enviar uma potencial transação MEV para o mempool público, o trader a envia diretamente ao validador, que a inclui em um bloco e divide os lucros com o trader. + +"Dark pools" são uma versão maior deste arranjo e funcionam como mempools autorizados só de acesso, abertas para usuários dispostos a pagar determinadas taxas. Esta tendência diminuiria a ausência de permissão e falta de confiança no Ethereum, e potencialmente transformaria a blockchain em um mecanismo "pay-to-play" que favorece a maior oferta. + +Mempools autorizados também acelerariam os riscos de centralização descritos na seção anterior. Grandes pools que executam vários validadores provavelmente se beneficiarão ao oferecer privacidade de transação a traders e usuários, aumentando as receitas MEV deles. + +A luta contra esses problemas relacionados ao MEV no Ethereum pós-Fusão é uma área central de pesquisa. Até hoje, duas soluções propostas para reduzir o impacto negativo do MEV na descentralização e na segurança do Ethereum, depois da Fusão são **Separação Proponente-Construtor (PBS)** e **Builder API**. + +### Separação Proponente/Construtor {#proposer-builder-separation} + +Em ambas prova de trabalho e prova de participação, um nó que cria um bloco o propõe para ser adicionado à cadeia para outros nós que participam do consenso. Um novo bloco se torna parte da cadeia canônica depois que outro minerador constrói com base nele (na prova de trabalho) ou recebe atestados da maioria dos validadores (na prova de participação). + +A combinação de funções de produtor de bloco e de proponente de bloco é o que introduz a maioria dos problemas relacionados com o MEV descritos anteriormente. Por exemplo, nós de consenso são incentivados a desencadear reorganizações da cadeia em ataques time-bandit para maximizar os ganhos MEV. + +A [Separação Proponente/Construtor](https://ethresear.ch/t/proposer-block-builder-separation-friendly-fee-market-designs/9725) (PBS) foi criada para mitigar o impacto do MEV, especialmente na camada de consenso. A principal característica do PBS é a separação entre o produtor de bloco e as regras do proponente de bloco. Os validadores ainda são responsáveis por propor e votar nos blocos, mas uma nova classe de entidades especializadas, chamada de **construtores de blocos**, é encarregada de ordenar transações e construir blocos. + +Em PBS, um construtor de blocos cria um pacote de transações e faz um lance para sua inclusão em um bloco da Beacon Chain (como o “payload de execução”). O validador selecionado para propor o próximo bloco verifica então os diferentes lances e escolhe o pacote com a taxa mais alta. O PBS cria essencialmente um mercado de leilão, no qual os construtores negociam com os validadores vendendo o espaço no bloco. + +O design de PBS atual usa um [esquema commit-reveal](https://gitcoin.co/blog/commit-reveal-scheme-on-ethereum/) no qual os construtores só publicam um compromisso criptográfico com o conteúdo de um bloco (header do bloco), juntamente com seus lances. Após aceitar o lance vencedor, o proponente cria uma proposta de bloco assinado que inclui o cabeçalho do bloco. O construtor do bloco deve publicar o corpo completo do bloco após ver a proposta do bloco assinado, e também deve receber [atestações](/glossary/#attestation) suficientes dos validadores antes de ser finalizado. + +#### Como a separação proponente-construtor atenua o impacto do MEV? {#how-does-pbs-curb-mev-impact} + +O protocolo de separação proponente-construtor reduz o efeito do MEV sobre o consenso removendo a extração MEV da alçada dos validadores. Em vez disso, são os construtores de blocos que executam hardware especializado que irão capturar oportunidades MEV no futuro. + +Isso não exclui totalmente os validadores das receitas relacionadas ao MEV, já que os construtores devem dar lances altos para conseguir que seus blocos sejam aceitos pelos validadores. No entanto, com validadores não mais focados diretamente na otimização de renda MEV, a ameaça de ataques time-bandit diminui. + +A separação proponente-construtor também reduz os riscos de centralização do MEV. Por exemplo, o uso de um esquema commit-reveal remove a necessidade de os construtores confiarem nos validadores para não roubarem a oportunidade MEV ou expô-la a outros construtores. Isso reduz a barreira para os stakers individuais se beneficiarem do MEV, caso contrário os construtores tenderiam a favorecer grandes pools com reputação off-chain e a conduzir acordos off-chain com eles. + +De forma similar, os validadores não têm que confiar que os construtores não vão reter os corpos de blocos ou publicar blocos inválidos porque o pagamento é incondicional. A taxa do validador ainda processa mesmo que o bloco proposto esteja indisponível ou seja declarado inválido por outros validadores. No último caso, o bloco é simplesmente descartado, forçando o construtor de blocos a perder todas as taxas de transação e a receita MEV. + +### Builder API {#builder-api} + +Embora a separação proponente-construtor prometa reduzir os efeitos da extração do MEV, a sua implementação requer alterações no protocolo de consenso. Especificamente, a regra de [escolha de fork](/developers/docs/consensus-mechanisms/pos/#fork-choice) na Beacon Chain precisaria ser atualizada. A [Builder API](https://github.com/ethereum/builder-specs) é uma solução temporária destinada a fornecer uma implementação funcional da separação proponente-construtor, embora com hipóteses mais confiáveis. + +A Builder API é uma versão modificada da [Engine API](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) usada por clientes da camada de consenso para solicitar payloads de execução de clientes da camada de execução. Conforme descrito na [especificação do validador honesto](https://github.com/ethereum/consensus-specs/blob/dev/specs/bellatrix/validator.md), validadores selecionados para funções de proposta de bloco solicitam um pacote de transação de um cliente de execução conectado, que eles incluem no bloco proposto da Beacon Chain. + +A Builder API também atua como um middleware entre validadores e clientes da camada de execução; mas é diferente porque permite aos validadores na Beacon Chain originar blocos de entidades externas (em vez de construir um bloco localmente usando um cliente de execução). + +Veja abaixo uma resumo geral de como a Builder API funciona: + +1. A Builder API conecta o validador a uma rede de construtores de blocos executando clientes de camada de execução. Como no PBS, construtores são grupos especializados que investem em construção de blocos com uso intensivo de recursos e usam diferentes estratégias para maximizar a receita obtida a partir de MEV + dicas prioritárias. + +2. Um validador (executando um cliente de camada de consenso) solicita payloads de execução juntamente com lances da rede de construtores. Os lances dos construtores conterão o cabeçalho do payload de execução, um compromisso criptográfico com o conteúdo do payload, e uma taxa a ser paga ao validador. + +3. O validador analisa os lances recebidos e escolhe o payload de execução com a taxa mais alta. Usando a Builder API, o validador cria uma proposta de bloco Beacon "cega" que inclui apenas a assinatura dele e o cabeçalho de payload de execução e o envia para o construtor. + +4. O construtor que executa a Builder API deverá responder com a carga completa de execução após ver a proposta de bloco cega. Isso permite que o validador crie um bloco Beacon "assinado" que eles propagam por toda a rede. + +5. Ainda é esperado que um validador usando a Builder API construa um bloco localmente caso o construtor de blocos não responda prontamente, para que não percam as recompensas de proposta de bloco. No entanto, o validador não pode criar outro bloco usando as transações agora reveladas ou outro conjunto, pois equivaleria a _equívoco_ (assinar dois blocos dentro do mesmo slot), o que é uma infração passível de advertência. + +Uma implementação de exemplo da Builder API é [MEV Boost](https://github.com/flashbots/mev-boost), uma melhoria no mecanismo de leilão [Flashbots](https://docs.flashbots.net/Flashbots-auction/overview/) projetada para limitar as externalidades negativas de MEV no Ethereum. O leilão Flashbots permite que os mineradores em prova de trabalho externalizem o trabalho de construção de blocos lucrativos a partes especializadas chamadas de **buscadores**. + +Os buscadores procuram oportunidades de MEV lucrativas e enviam pacotes de transação para os mineradores, juntamente com uma [oferta de preço selada](https://en.wikipedia.org/wiki/First-price_sealed-bid_auction) para inclusão no bloco. O minerador executando mev-geth, uma versão bifurcada do cliente go-ethereum (Geth) só precisa escolher o pacote com mais lucro e minerá-lo como parte do novo bloco. Para proteger os mineradores de transações de spam e inválidas, os pacotes de transações passam por **retransmissores** (relayers) para validação antes de chegar aos mineradores. + +O MEV Boost mantém o mesmo funcionamento do leilão original de Flashbots, embora com novos recursos projetados para a mudança à prova de participação do Ethereum. Os buscadores ainda consideram transações MEV lucrativas para inclusão em blocos, mas uma nova classe de partes especializadas, chamada de **construtores**, é responsável pela agregação de transações e pacotes em blocos. Um construtor aceita ofertas de preço seladas pelos buscadores e executa otimizações para encontrar o pedido mais lucrativo. + +O retransmissor ainda é responsável por validar pacotes de transações antes de passá-los para o proponente. No entanto, o MEV Boost introduz **escrows** responsáveis por fornecer [disponibilidade de dados](/developers/docs/data-availability/) ao armazenar corpos de blocos enviados por construtores e cabeçalhos de bloco enviados por validadores. Aqui, um validador conectado a um relay pede por payloads de execução disponíveis e usa o algoritmo de ordenação MEV Boost para selecionar o cabeçalho de payload com as maiores ofertas + valores MEV. + +#### Como a Builder API atenua o impacto do MEV? {#how-does-builder-api-curb-mev-impact} + +O principal benefício da Builder API é o seu potencial de democratizar o acesso a oportunidades de MEV. O uso de esquemas commit-revel elimina suposições de confiança e reduz as barreiras de entrada para os validadores que procuram se beneficiar com o MEV. Isso deve reduzir a pressão sobre os participantes individuais para se integrarem com grandes staking pools a fim de aumentar os lucros MEV. + +A vasta implementação da Builder API incentivará uma maior concorrência entre os construtores de blocos, o que aumentará a resistência à censura. Como os validadores revisam lances de vários construtores, a intenção de um construtor de censurar uma ou mais transações de usuários deve superar todos os outros construtores que não censuram para ter sucesso. Isto aumenta consideravelmente o custo da censura de usuários e desencoraja a prática. + +Alguns projetos, como MEV Boost, usam a Builder API como parte de uma estrutura global projetada para oferecer privacidade de transação a certas partes, tais como os traders que tentam evitar ataques frontrunning/sandwiching. Para isso, se proporciona um canal de comunicação particular entre usuários e construtores de blocos. Ao contrário dos mempools autorizados descritos anteriormente, esta abordagem é vantajosa pelas seguintes razões: + +1. A existência de múltiplos construtores no mercado torna a censura impraticável, o que beneficia os usuários. Em contrapartida, a existência de dark pools centralizadas e baseadas em confiança concentraria o poder nas mãos de poucos construtores de blocos e aumentaria a possibilidade de censura. + +2. O software da Builder API é de código aberto, o que permite que qualquer pessoa ofereça serviços de construtor de bloco. Isso significa que os usuários não são forçados a usar nenhum construtor de blocos em particular e melhora a neutralidade e a ausência de permissão do Ethereum. Além disso, os traders em busca de MEV não contribuirão inadvertidamente para a centralização por usar canais de transação particulares. + +## Recursos relacionados {#related-resources} + +- [Documentação sobre Flashbots (links em inglês)](https://docs.flashbots.net/) +- [Flashbots GitHub](https://github.com/flashbots/pm) +- [MEV-Explore](https://explore.flashbots.net/) _Painéis e explorador de transações ao vivo de transações MEV_ +- [mevboost.org](https://www.mevboost.org/) - _Rastreador com estatísticas em tempo real para relays MEV-Boost e construtores de blocos_ + +## Leitura adicional {#further-reading} + +- [Valor extraível da mineração (MEV)?](https://blog.chain.link/what-is-miner-extractable-value-mev/) +- [MEV e Mim](https://www.paradigm.xyz/2021/02/mev-and-me) +- [O Ethereum é uma Floresta Sombria](https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest/) +- [Escapando da Floresta Sombria](https://samczsun.com/escaping-the-dark-forest/) +- [Flashbots: Superando a crise MEV](https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752) +- [Tópicos sobre MEV de @bertcmiller](https://twitter.com/bertcmiller/status/1402665992422047747) +- [MEV-Boost: Arquitetura Flashbots pronta para a Fusão](https://ethresear.ch/t/mev-boost-merge-ready-flashbots-architecture/11177) +- [O que é MEV Boost](https://www.alchemy.com/overviews/mev-boost) +- [Por que executar mev-boost?](https://writings.flashbots.net/writings/why-run-mevboost/) +- [O Guia do Mochileiro sobre o Ethereum](https://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum) diff --git a/public/content/translations/pt-br/developers/docs/networking-layer/index.md b/public/content/translations/pt-br/developers/docs/networking-layer/index.md new file mode 100644 index 00000000000..7d6728e0d35 --- /dev/null +++ b/public/content/translations/pt-br/developers/docs/networking-layer/index.md @@ -0,0 +1,155 @@ +--- +title: Camada da Rede +description: Introdução à camada de rede Ethereum +lang: pt-br +sidebarDepth: 2 +--- + +Ethereum é uma rede ponto a ponto com milhares de nós que devem ser capazes de se comunicar uns com os outros usando protocolos padronizados. A "camada de rede" é a pilha de protocolos que permite que esses nós se encontrem e troquem informações. Isso inclui "propagar" informações (comunicação um-para-muitos) na rede, bem como trocar solicitações e respostas entre nós específicos (comunicação um-para-um). Cada nó deve aderir a regras de rede específicas para garantir que eles estejam enviando e recebendo as informações corretas. + +Existem duas partes no software cliente (clientes de execução e clientes de consenso), cada uma com sua própria pilha de rede distinta. Além de se comunicar com outros nós Ethereum, a execução e o consenso de clientes têm de se comunicar entre si. Esta página fornece uma explicação introdutória dos protocolos que permitem essa comunicação. + +Clientes de execução transmitem transações na rede ponto a ponto na camada de execução. Isso requer comunicação criptografada entre pares autenticados. Quando um validador é selecionado para propor um bloco, as transações do pool de transações locais do nó são passadas para clientes de consenso através de uma conexão RPC local, que será empacotada em blocos Beacon. Os clientes de consenso irão, então, propagar blocos Beacon em sua rede p2p. Isso requer duas redes p2p separadas: uma conectando clientes de execução para propagação de transação e outra conectando clientes de consenso para propagação de bloco. + +## Pré-requisitos {#prerequisites} + +Alguns conhecimentos dos [nós e clientes](/developers/docs/nodes-and-clients/) do Ethereum serão úteis para entender esta página. + +## A camada de execução {#execution-layer} + +Os protocolos de rede da camada de execução são divididos em duas pilhas: + +- a pilha de descoberta: criada em cima do UDP e que permite que um novo nó encontre pares para se conectar + +- a pilha DevP2P: fica no topo do TCP e permite que os nós troquem informações + +Ambas as pilhas funcionam em paralelo. A pilha de descoberta alimenta novos participantes da rede e a pilha DevP2P permite suas interações. + +### Descoberta {#discovery} + +Descoberta é o processo de encontrar outros nós na rede. Isso é inicializado usando um pequeno conjunto de bootnodes (nós cujos endereços são [hardcoded](https://github.com/ethereum/go-ethereum/blob/master/params/bootnodes.go) dentro do cliente para que possam ser encontrados imediatamente e conectar o cliente aos pares). Estes bootnodes (nós de inicialização) existem apenas para introduzir um novo nó a um conjunto de pares. Esse é o único objetivo deles; eles não participam de tarefas normais do cliente como sincronizar a cadeia e são usados somente na primeira vez que um cliente é ativado. + +O protocolo usado para as interações de node-bootnode (nós de inicialização) é uma forma modificada de [Kademlia](https://medium.com/coinmonks/a-brief-overview-of-kademlia-and-its-use-in-various-decentralized-platforms-da08a7f72b8f) que usa uma [tabela de hash distribuída](https://en.wikipedia.org/wiki/Distributed_hash_table) para compartilhar listas de nós. Cada nó tem uma versão desta tabela contendo as informações necessárias para se conectar aos seus pares mais próximos. Essa 'proximidade' não é geográfica. A distância é definida pela semelhança do ID de nós. A tabela de cada nó é atualizada regularmente como um recurso de segurança. Por exemplo, no [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5), os nós do protocolo de descoberta também podem enviar 'anúncios' que exibem os subprotocolos que o cliente suporta, permitindo que os pares negociem sobre os protocolos que ambos podem usar para se comunicar. + +A descoberta começa com um jogo de PING-PONG. Um PING-PONG bem-sucedido "liga" o novo nó a um bootnode (nó de inicialização). A mensagem inicial que alerta um bootnode sobre a existência de um novo nó entrando na rede é um `PING`. Este `PING` inclui informações em hash sobre o novo nó, o bootnode e um carimbo de data/hora de expiração. O bootnode recebe o `PING` e retorna um `PONG` contendo o hash `PING`. Se os hashes `PING` e `PONG` corresponderem, então a conexão entre o novo nó e o bootnode será verificada e diz-se que eles têm "vínculo". + +Uma vez vinculado, o novo nó pode enviar uma solicitação `FIND-NEIGHBOURS` para o bootnode. Os dados retornados pelo bootnode incluem uma lista de peers aos quais o novo nó pode se conectar. Se os nós não estiverem vinculados, a solicitação `FIND-NEIGHBOURS` falhará, então o novo nó não poderá entrar na rede. + +Uma vez que o novo nó recebe uma lista de vizinhos do bootnode, ele inicia uma troca de PING-PONG com cada um deles. PING-PONGs bem-sucedidos unem o novo nó com seus vizinhos, permitindo a troca de mensagens. + +``` +start client --> connect to bootnode --> bond to bootnode --> find neighbours --> bond to neighbours +``` + +Os clientes de execução estão usando atualmente o protocolo de descoberta [Discv4](https://github.com/ethereum/devp2p/blob/master/discv4.md) e há um esforço ativo para migrar para o protocolo [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5). + +#### ENR: Registros de Nó Ethereum {#enr} + +O [Registro de Nó Ethereum (ENR)](/developers/docs/networking-layer/network-addresses/) é um objeto que contém três elementos básicos: uma assinatura (hash do conteúdo do registro feito de acordo com algum esquema de identidade acordado), um número de sequência que rastreia as alterações no registro e uma lista arbitrária de pares chave:valor. Este é um formato moderno que permite uma troca mais fácil de informações de identificação entre novos pares e é o formato de [endereço de rede](/developers/docs/networking-layer/network-addresses) preferido dos nós Ethereum. + +#### Por que a descoberta é construída no UDP? {#why-udp} + +O UDP não suporta nenhuma verificação de erros, reenvio de pacotes com falha ou abertura e fechamento de conexões dinamicamente. Em vez disso, ele apenas dispara um fluxo contínuo de informações em um destino, independentemente de ter sido recebido com sucesso. Essa funcionalidade mínima também se traduz em sobrecarga mínima, tornando esse tipo de conexão muito rápida. Para descoberta, onde um nó simplesmente quer tornar sua presença conhecida, para depois estabelecer uma conexão formal com um par, o UDP é suficiente. No entanto, para o restante da pilha de rede, o UDP não é adequado. A troca de informações entre nós é bastante complexa e, portanto, precisa de um protocolo mais completo que possa suportar reenvio, verificação de erros etc. A sobrecarga adicional associada ao TCP vale a funcionalidade adicional. Portanto, a maioria da pilha P2P opera sobre TCP. + +### DevP2P {#devp2p} + +O DevP2P é em si uma pilha inteira de protocolos que o Ethereum implementa para estabelecer e manter a rede ponto a ponto. Depois que novos nós entram na rede, suas interações são regidas por protocolos na pilha [DevP2P](https://github.com/ethereum/devp2p). Todos eles ficam em cima do TCP e incluem o protocolo de transporte RLPx, o protocolo de fio e vários subprotocolos. [RLPx](https://github.com/ethereum/devp2p/blob/master/rlpx.md) é o protocolo que controla o início, a autenticação e a manutenção de sessões entre nós. O RLPx codifica mensagens usando RLP (Prefixo de Comprimento Recursivo), que é um método muito eficiente de codificação de dados em uma estrutura mínima para envio entre nós. + +Uma sessão RLPx entre dois nós começa com um acerto criptográfico inicial. Isso envolve o nó enviando uma mensagem de autenticação que é então verificada pelo par. Na verificação bem-sucedida, o para gera uma mensagem de confirmação de autenticação para retornar ao nó inicializador. Este é um processo de troca de chaves que permite que os nós se comuniquem de forma privada e segura. Um aperto de mão criptográfico bem-sucedido aciona ambos os nós para enviar uma mensagem "hello" um ao outro "na rede". O protocolo de transmissão é iniciado por uma troca bem-sucedida de mensagens de saudação. + +A mensagem "hello" contém: + +- versão do protocolo +- ID do cliente +- porta +- ID do nó +- lista de subprotocolos suportados + +Essa é a informação necessária para uma interação bem-sucedida, pois define quais recursos são compartilhados entre ambos os nós e configura a comunicação. Existe um processo de negociação de subprotocolos em que as listas de subprotocolos suportados por cada nó são comparadas e aqueles que são comuns a ambos os nós podem ser utilizados na sessão. + +Junto com as mensagens de saudação, o protocolo de transmissão também pode enviar uma mensagem de "desconexão" que avisa a um par que a conexão será fechada. O protocolo de transmissão também inclui mensagens PING e PONG que são enviadas periodicamente para manter uma sessão aberta. As trocas de protocolo RLPx e de transmissão, portanto, estabelecem as bases da comunicação entre os nós, fornecendo o scaffolding para que informações úteis sejam trocadas de acordo com um subprotocolo específico. + +### Subprotocolos {#sub-protocols} + +#### Protocolo de transmissão {#wire-protocol} + +Uma vez que os pares estão conectados e uma sessão RLPx foi iniciada, o protocolo de transmissão define como os pares se comunicam. Inicialmente, o protocolo de transmissão definiu três tarefas principais: sincronização de cadeia, propagação de bloco e troca de transação. No entanto, uma vez que o Ethereum mudou para a prova de participação, a propagação do bloco e a sincronização da cadeia tornaram-se parte da camada de consenso. A troca de transações ainda é da responsabilidade dos clientes de execução. Troca de transações refere-se à troca de transações pendentes entre nós para que os mineradores possam selecionar algumas delas para inclusão no próximo bloco. Informações detalhadas sobre essas tarefas estão disponíveis [aqui](https://github.com/ethereum/devp2p/blob/master/caps/eth.md). Os clientes que oferecem suporte a esses subprotocolos os expõem por meio do [JSON-RPC](/developers/docs/apis/json-rpc/). + +#### les (subprotocolo ethereum leve) {#les} + +Este é um protocolo mínimo para sincronizar clientes leves. Esse protocolo raramente é usado porque são necessários nós completos para fornecer dados a clientes leves sem serem incentivados. O comportamento padrão dos clientes de execução é não transmitir dados de clientes leves sobre subprotocolos ethereum leve (les). Mais informações estão disponíveis nas [especificações](https://github.com/ethereum/devp2p/blob/master/caps/les.md). + +#### Captura {#snap} + +O [protocolo de captura](https://github.com/ethereum/devp2p/blob/master/caps/snap.md#ethereum-snapshot-protocol-snap) é uma extensão opcional que permite que pares troquem instantâneos de estados recentes, permitindo que os pares verifiquem dados de conta e armazenamento sem precisar baixar nós intermediários da árvore Merkle. + +#### Wit (protocolo de testemunha) {#wit} + +O [protocolo de testemunha](https://github.com/ethereum/devp2p/blob/master/caps/wit.md#ethereum-witness-protocol-wit) é uma extensão opcional que permite a troca de testemunhas de estado entre os pares, ajudando a sincronizar os clientes com a ponta da cadeia. + +#### Whisper {#whisper} + +Whisper era um protocolo que visava entregar mensagens seguras entre pares sem escrever qualquer informação na blockchain. Fazia parte do protocolo de transmissão DevP2P, mas agora está obsoleto. Existem outros [projetos relacionados](https://wakunetwork.com/) com objetivos semelhantes. + +## A camada de consenso {#consensus-layer} + +Os clientes de consenso participam de uma rede ponto a ponto separada com uma especificação diferente. Os clientes de consenso precisam participar de gossip (comunicação de um para muitos) do bloco para que possam receber novos blocos de pares e transmiti-los quando for sua vez de propor blocos. Semelhante à camada de execução, isto requer primeiro um protocolo de descoberta para que um nó possa encontrar pares e estabelecer sessões seguras para a troca de blocos, atestados etc. + +### Descoberta {#consensus-discovery} + +Semelhante aos clientes de execução, os clientes de consenso usam [discv5](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-discovery-domain-discv5) sobre UDP para encontrar pares. A implementação da camada de consenso do discv5 difere daquela dos clientes de execução apenas porque inclui um adaptador conectando o discv5 em uma pilha [libP2P](https://libp2p.io/), descontinuando o DevP2P. As sessões RLPx da camada de execução foram descontinuadas a favor do handshake (acerto) de canal seguro de ruído da libP2P. + +### ENRs {#consensus-enr} + +O ENR para nós de consenso inclui a chave pública do nó, endereço IP, portas UDP e TCP e dois campos específicos de consenso: o campo de bits (bitfield) da sub-rede de atestado e a chave `eth2`. O primeiro torna mais fácil para os nós encontrarem pares que participam de sub-redes de gossip de atestado específicas. A chave `eth2` contém informações sobre qual versão do fork Ethereum o nó está usando, garantindo que os pares estejam se conectando ao Ethereum correto. + +### libP2P {#libp2p} + +A pilha libP2P suporta todas as comunicações após a descoberta. Os clientes podem discar e escutar em IPv4 e/ou IPv6 conforme definido em seu ENR. Os protocolos na camada libP2P podem ser subdivididos nos domínios gossip e req/resp (envio/resposta). + +### Gossip {#gossip} + +O domínio gossip inclui todas as informações que precisam se espalhar rapidamente pela rede. Isso inclui blocos de sinalização, provas, atestados, saídas e cortes. Isso é transmitido usando libP2P gossipsub v1 e depende de vários metadados armazenados localmente em cada nó, incluindo o tamanho máximo de cargas de gossip para receber e transmitir. Informações detalhadas sobre o domínio gossip estão disponíveis [aqui](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-gossip-domain-gossipsub). + +### Pedido-Resposta {#request-response} + +O domínio de pedido-resposta contém protocolos para clientes que solicitam informações específicas de seus pares. Os exemplos incluem pedidos de blocos Beacon específicos que correspondam a determinados hashes raiz ou dentro de um intervalo de slots. As respostas são sempre retornadas como bytes codificados em SSZ compactados rapidamente. + +## Por que o cliente de consenso prefere SSZ a RLP? {#ssz-vs-rlp} + +SSZ significa serialização simples. Ela usa deslocamentos fixos que facilitam a decodificação de partes individuais de uma mensagem codificada sem ter que decodificar toda a estrutura, o que é muito útil para o cliente de consenso, pois pode capturar com eficiência informações específicas de mensagens codificadas. Ele também é projetado especificamente para integração com protocolos Merkle, com ganhos de eficiência relacionados para Merkleization (transformação resultante de árvores de Merkle). Como todos os hashes na camada de consenso são raízes de Merkle, isso resulta em uma melhoria significativa. A SSZ também garante representações únicas de valores. + +## Conexão a execução e consensos de clientes {#connecting-clients} + +Ambos os clientes de consenso e execução executam em paralelo. Eles precisam estar conectados para que o cliente de consenso possa fornecer instruções ao cliente de execução, e o cliente de execução possa passar pacotes de transações para o cliente de consenso para incluir nos blocos Beacon. A comunicação entre os dois clientes pode ser realizada usando uma conexão RPC local. Uma API conhecida como ['Engine-API'](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) define as instruções enviadas entre os dois clientes. Como ambos os clientes estão atrás de uma única identidade de rede, eles compartilham um ENR (registro de nó Ethereum) que contém uma chave separada para cada cliente (chave eth1 e chave eth2). + +Um resumo do fluxo de controle é mostrado abaixo, com a pilha de rede relevante entre colchetes. + +### Quando o cliente de consenso não é produtor de bloco: + +- O cliente de consenso recebe um bloco através do protocolo gossip do bloco (consenso p2p) +- O cliente de consenso pré-valida o bloco, ou seja, garante que chegou de um remetente válido com metadados corretos +- As transações no bloco são enviadas para a camada de execução como um payload (carga de dados) de execução (conexão RPC local) +- A camada de execução executa as transações e valida o estado no cabeçalho do bloco (ou seja, verifica a correspondência de hashes) +- A camada de execução passa os dados de validação de volta para a camada de consenso, bloco agora considerado validado (conexão RPC local) +- A camada de consenso adiciona bloco no nício de sua própria blockchain e o atesta, transmitindo o atestado pela rede (consenso p2p) + +### Quando o cliente de consenso é produtor de blocos: + +- O cliente de consenso recebe o aviso de que é o próximo produtor de bloco (consenso p2p) +- A camada de consenso chama o método `create block` no cliente de execução (RPC local) +- A camada de execução acessa o mempool da transação que foi preenchido pelo protocolo gossip de transação (execução p2p) +- O cliente de execução agrupa as transações em um bloco, executa as transações e gera um hash de bloco +- O cliente de consenso pega as transações e bloqueia o hash do cliente de execução e o adiciona ao bloco beacon (RPC local) +- O cliente de consenso transmite o bloco pelo protocolo gossip do bloco (consenso p2p) +- Outros clientes recebem o bloco proposto através do bloco do protocolo gossip e validam conforme descrito acima (consenso p2p) + +Uma vez que o bloco tenha sido atestado por validadores suficientes, ele é adicionado ao cabeçalho da cadeia, justificado e finalmente finalizado. + +![](cons_client_net_layer.png) ![](exe_client_net_layer.png) + +Esquema da camada de rede para clientes de consenso e execução, de [ethresear.ch](https://ethresear.ch/t/eth1-eth2-client-relationship/7248) + +## Leitura Adicional {#further-reading} + +[DevP2P](https://github.com/ethereum/devp2p) [LibP2p](https://github.com/libp2p/specs) [Especificações de rede da camada de consenso](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#enr-structure) [Kademlia para Discv5](https://vac.dev/kademlia-to-discv5) [Paper Kademlia](https://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf) [Introdução ao Ethereum p2p](https://p2p.paris/en/talks/intro-ethereum-networking/) [Relacionamento eth1/eth2](http://ethresear.ch/t/eth1-eth2-client-relationship/7248) [Fusão e vídeo com detalhes do cliente eth2](https://www.youtube.com/watch?v=zNIrIninMgg) diff --git a/src/content/translations/pt-br/developers/docs/networking-layer/network-addresses/index.md b/public/content/translations/pt-br/developers/docs/networking-layer/network-addresses/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/networking-layer/network-addresses/index.md rename to public/content/translations/pt-br/developers/docs/networking-layer/network-addresses/index.md diff --git a/src/content/translations/pt-br/developers/docs/networks/index.md b/public/content/translations/pt-br/developers/docs/networks/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/networks/index.md rename to public/content/translations/pt-br/developers/docs/networks/index.md diff --git a/src/content/translations/pt-br/developers/docs/nodes-and-clients/archive-nodes/index.md b/public/content/translations/pt-br/developers/docs/nodes-and-clients/archive-nodes/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/nodes-and-clients/archive-nodes/index.md rename to public/content/translations/pt-br/developers/docs/nodes-and-clients/archive-nodes/index.md diff --git a/src/content/translations/pt-br/developers/docs/nodes-and-clients/bootnodes/index.md b/public/content/translations/pt-br/developers/docs/nodes-and-clients/bootnodes/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/nodes-and-clients/bootnodes/index.md rename to public/content/translations/pt-br/developers/docs/nodes-and-clients/bootnodes/index.md diff --git a/public/content/translations/pt-br/developers/docs/nodes-and-clients/client-diversity/index.md b/public/content/translations/pt-br/developers/docs/nodes-and-clients/client-diversity/index.md new file mode 100644 index 00000000000..18bad4e622a --- /dev/null +++ b/public/content/translations/pt-br/developers/docs/nodes-and-clients/client-diversity/index.md @@ -0,0 +1,109 @@ +--- +title: Diversidade dos clientes +description: Uma explicação de alto nível sobre a importância da diversidade de clientes do Ethereum. +lang: pt-br +sidebarDepth: 2 +--- + +O comportamento de um nó Ethereum é controlado pelo software do cliente que ele executa. Existem vários clientes Ethereum em nível de produção, cada um desenvolvido e mantido em diferentes idiomas por equipes separadas. Os clientes são construídos para uma especificação comum que garante que os clientes se comuniquem perfeitamente entre si e tenham a mesma funcionalidade e forneçam uma experiência de usuário equivalente. No entanto, no momento, a distribuição de clientes entre os nós não é igual o suficiente para realizar essa fortificação de rede em todo o seu potencial. O ideal é que os usuários se dividam de forma aproximadamente igualitária entre os vários clientes para trazer o máximo de diversidade de clientes possível para a rede. + +## Pré-requisitos {#prerequisites} + +Se você ainda não entende o que são nós e clientes, confira [nós e clientes](/developers/docs/nodes-and-clients/). As camadas de [execução](/glossary/#execution-layer) e [consenso](/glossary/#consensus-layer) estão definidas no glossário. + +## Por que existem vários clientes? {#why-multiple-clients} + +Vários clientes desenvolvidos e mantidos de forma independente existem porque a diversidade do cliente torna a rede mais resiliente a ataques e bugs. Vários clientes são uma força única para o Ethereum – outras cadeias de blocos dependem da infalibilidade de um único cliente. No entanto, não basta simplesmente ter vários clientes disponíveis, eles têm que ser adotados pela comunidade e o total de nós ativos distribuídos de forma relativamente uniforme entre eles. + +## Por que a diversidade de clientes é importante? {#client-diversity-importance} + +Ter muitos clientes desenvolvidos e mantidos de forma independente é vital para a saúde de uma rede descentralizada. Vamos explorar as razões do porquê. + +### Bugs {#bugs} + +Um bug em um cliente individual é um risco menor para a rede ao representar uma minoria de nós Ethereum. Com uma distribuição aproximadamente uniforme de nós entre muitos clientes, a probabilidade de a maioria dos clientes sofrer de um problema compartilhado é pequena e, como resultado, a rede é mais robusta. + +### Resiliência a ataques {#resilience} + +A diversidade de clientes também oferece resiliência a ataques. Por exemplo, um ataque que [engana um determinado cliente](https://twitter.com/vdWijden/status/1437712249926393858) em um determinado ramo da cadeia, provavelmente não será bem-sucedido porque é improvável que outros clientes sejam explorados da mesma forma e a cadeia canônica permanece incorruptível. A baixa diversidade de clientes aumenta o risco associado a um hack no cliente dominante. A diversidade de clientes já provou ser uma defesa importante contra ataques maliciosos na rede, por exemplo, o ataque de negação de serviço do Shanghai em 2016 foi possível porque os invasores foram capazes de enganar o cliente dominante (Geth) para executar uma operação lenta de E/S de disco dezenas de milhares de vezes por bloco. Como clientes alternativos também estavam online e não compartilharam a vulnerabilidade, o Ethereum foi capaz de resistir ao ataque e continuar operando enquanto a vulnerabilidade no Geth foi corrigida. + +### Finalidade da prova de participação {#finality} + +Um erro em um cliente de consenso com mais de 33% dos nós Ethereum poderia impedir a finalização da camada de consenso, e isso deixaria os utilizadores em dúvida com respeito à probabilidade de as transações não serem revertidas ou alteradas em algum momento. Isso seria muito problemático para muitos dos aplicativos construídos em cima do Ethereum, particularmente o DeFi. + + Pior ainda, um bug crítico em um cliente com uma maioria de dois terços poderia fazer com que a cadeia se dividisse e finalizasse incorretamente, gerando um grande conjunto de validadores que ficam presos em uma cadeia inválida. Se quiserem voltar a integrar à cadeia correta, esses validadores enfrentam cortes ou uma lenta e cara retirada e reativação voluntária. A magnitude de uma escala de remoção com o número de nós culpáveis com uma maioria de dois terços reduzido ao máximo (32 ETH). + +Embora estes sejam cenários improváveis, o ecossistema Ethereum pode mitigar seus riscos nivelando a distribuição de clientes entre os nós ativos. Idealmente, nenhum cliente de consenso chegaria a uma participação de 33% dos nós totais. + +### Responsabilidade compartilhada {#responsibility} + +Há também um custo humano para ter a maioria dos clientes. Isso coloca excesso de tensão e responsabilidade em uma pequena equipe de desenvolvimento. Quanto menor a diversidade de clientes, maior a carga de responsabilidade para os desenvolvedores que mantêm a maioria dos clientes. Promover essa responsabilidade em várias equipes é bom tanto para a saúde da rede de nós do Ethereum quanto para sua rede de pessoas. + +## Diversidade do cliente atual {#current-client-diversity} + +![Gráfico de pizza mostrando a diversidade do cliente](./client-diversity.png) _Dados do diagrama de [ethernodes.org](https://ethernodes.org) e [clientdiversity.org](https://clientdiversity.org/)_ + +Os dois gráficos de pizza acima mostram imagens da diversidade atual do cliente para as camadas de execução e consenso (no momento da escrita em janeiro de 2022). A camada de execução é dominada esmagadoramente por [Geth](https://geth.ethereum.org/), com [Open Ethereum](https://openethereum.github.io/) a um segundo de distância, [Erigon](https://github.com/ledgerwatch/erigon) em terceiro e [Nethermind](https://nethermind.io/) em quarto, com outros clientes compostos por menos de 1% da rede. O cliente mais comumente usado na camada de consenso – [Prysm](https://prysmaticlabs.com/#projects) – não é tão dominante quanto o Geth, mas ainda representa mais de 60% da rede. [Lighthouse](https://lighthouse.sigmaprime.io/) e [Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) compõem ~20% e ~14% respectivamente, e outros clientes são raramente usados. + +Os dados da camada de execução foram obtidos da [Ethernodes](https://ethernodes.org) em 23/01/2022. Os dados para clientes de consenso foram obtidos de [Michael Sproul](https://github.com/sigp/blockprint). Os dados dos clientes de consenso são mais difíceis de obter porque os clientes da camada de consenso nem sempre têm traços inequívocos que possam ser utilizados para identificá-los. Os dados foram gerados usando um algoritmo de classificação que confunde às vezes alguns dos clientes minoritários (consulte [aqui](https://twitter.com/sproulM_/status/1440512518242197516) para obter mais detalhes). No diagrama acima, essas classificações ambíguas são tratadas com um rótulo (por exemplo, Nimbus/Teku). No entanto, é claro que a maior parte da rede está executando o Prysm. Os dados são um retrato sobre um conjunto fixo de blocos (neste caso, blocos Beacon nos espaços 2048001 a 2164916) e o domínio do Prysm às vezes foi maior, excedendo 68%. Apesar de serem apenas capturas, os valores no diagrama fornecem uma boa noção geral do estado atual da diversidade do cliente. + +Os dados da diversidade do cliente atualizados para a camada de consenso agora estão disponíveis em [clientdiversity.org](https://clientdiversity.org/). + +## Camada de execução {#execution-layer} + +Até agora, a conversação em torno da diversidade do cliente tem se concentrado principalmente na camada de consenso. No entanto, o cliente de execução [Geth](https://geth.ethereum.org) atualmente representa cerca de 85% de todos os nós. Essa porcentagem é problemática pelos mesmos motivos dos clientes de consenso. Por exemplo, um bug no Geth afetando a manipulação de transações ou a construção de cargas de execução pode fazer com que clientes de consenso finalizem transações problemáticas ou com bugs. Portanto, o Ethereum seria mais saudável com uma distribuição mais uniforme dos clientes de execução, idealmente sem nenhum cliente representando mais de 33% da rede. + +## Use um cliente minoritário {#use-minority-client} + +Endereçar a diversidade do cliente requer mais do que usuários individuais para escolher clientes minoritários – requer pools de mineração/validadores e instituições como os principais dapps e exchanges para mudar também os clientes. No entanto, todos os usuários podem fazer sua parte para reparar o desequilíbrio atual e normalizar o uso de todo o software Ethereum disponível. Após A Fusão, todos os operadores de nó serão obrigados a executar um cliente de execução e um cliente de consenso. Escolher combinações dos clientes sugeridos abaixo ajudará a aumentar a diversidade do cliente. + +### Clientes de execução {#execution-clients} + +[Besu](https://www.hyperledger.org/use/besu) + +[Nethermind](https://downloads.nethermind.io/) + +[Erigon](https://github.com/ledgerwatch/erigon) + +[Go-Ethereum](https://geth.ethereum.org/) + +### Clientes de consenso {#consensus-clients} + +[Nimbus](https://nimbus.team/) + +[Lighthouse](https://github.com/sigp/lighthouse) + +[Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) + +[Lodestar](https://github.com/ChainSafe/lodestar) + +[Prysm](https://docs.prylabs.network/docs/getting-started) + +Os usuários técnicos podem ajudar a acelerar esse processo escrevendo mais tutoriais e documentações para clientes minoritários e encorajando seus pares operacionais de nó a migrar para longe dos clientes dominantes. Guias para mudar para um cliente de consenso minoritário estão disponíveis em [clientdiversity.org](https://clientdiversity.org/). + +## Painéis de diversidade de clientes {#client-diversity-dashboards} + +Vários painéis fornecem estatísticas de diversidade de cliente em tempo real para a camada de execução e consenso. + +**Camada de consenso:** + +- [Rated.network](https://www.rated.network/) +- [clientdiversity.org](https://clientdiversity.org/) **Camada de execução:** + +- [execution-diversity.info](https://execution-diversity.info/) +- [Ethernodes](https://ethernodes.org/) + +## Leitura adicional {#further-reading} + +- [Diversidade de clientes na camada de consenso do Ethereum](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) +- [A Fusão do Ethereume: execute o cliente majoritário por sua conta e risco!](https://dankradfeist.de/ethereum/2022/03/24/run-the-majority-client-at-your-own-peril.html) – _Dankrad Fest, 24 de março de 2022_ +- [Importância da diversidade de cliente](https://our.status.im/the-importance-of-client-diversity/) +- [Lista dos serviços de nós Ethereum](https://ethereumnodes.com/) +- ["Cinco porquês" do problema da diversidade de clientes](https://notes.ethereum.org/@afhGjrKfTKmksTOtqhB9RQ/BJGj7uh08) +- [Diversidade do Ethereum e como resolvê-la (YouTube)](https://www.youtube.com/watch?v=1hZgCaiqwfU) +- [clientdiversity.org](https://clientdiversity.org/) + +## Tópicos relacionados {#related-topics} + +- [Executando um nó Ethereum](/run-a-node/) +- [Nós e clientes](/developers/docs/nodes-and-clients/) diff --git a/src/content/translations/pt-br/developers/docs/nodes-and-clients/eth1eth2client.png b/public/content/translations/pt-br/developers/docs/nodes-and-clients/eth1eth2client.png similarity index 100% rename from src/content/translations/pt-br/developers/docs/nodes-and-clients/eth1eth2client.png rename to public/content/translations/pt-br/developers/docs/nodes-and-clients/eth1eth2client.png diff --git a/src/content/translations/pt-br/developers/docs/nodes-and-clients/index.md b/public/content/translations/pt-br/developers/docs/nodes-and-clients/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/nodes-and-clients/index.md rename to public/content/translations/pt-br/developers/docs/nodes-and-clients/index.md diff --git a/src/content/translations/pt-br/developers/docs/nodes-and-clients/light-clients/index.md b/public/content/translations/pt-br/developers/docs/nodes-and-clients/light-clients/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/nodes-and-clients/light-clients/index.md rename to public/content/translations/pt-br/developers/docs/nodes-and-clients/light-clients/index.md diff --git a/src/content/translations/pt-br/developers/docs/nodes-and-clients/node-architecture/index.md b/public/content/translations/pt-br/developers/docs/nodes-and-clients/node-architecture/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/nodes-and-clients/node-architecture/index.md rename to public/content/translations/pt-br/developers/docs/nodes-and-clients/node-architecture/index.md diff --git a/src/content/translations/pt-br/developers/docs/nodes-and-clients/node-architecture/node-architecture-text-background.png b/public/content/translations/pt-br/developers/docs/nodes-and-clients/node-architecture/node-architecture-text-background.png similarity index 100% rename from src/content/translations/pt-br/developers/docs/nodes-and-clients/node-architecture/node-architecture-text-background.png rename to public/content/translations/pt-br/developers/docs/nodes-and-clients/node-architecture/node-architecture-text-background.png diff --git a/src/content/translations/pt-br/developers/docs/nodes-and-clients/nodes-as-a-service/index.md b/public/content/translations/pt-br/developers/docs/nodes-and-clients/nodes-as-a-service/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/nodes-and-clients/nodes-as-a-service/index.md rename to public/content/translations/pt-br/developers/docs/nodes-and-clients/nodes-as-a-service/index.md diff --git a/src/content/translations/pt-br/developers/docs/nodes-and-clients/nodes.png b/public/content/translations/pt-br/developers/docs/nodes-and-clients/nodes.png similarity index 100% rename from src/content/translations/pt-br/developers/docs/nodes-and-clients/nodes.png rename to public/content/translations/pt-br/developers/docs/nodes-and-clients/nodes.png diff --git a/src/content/translations/pt-br/developers/docs/nodes-and-clients/run-a-node/diagram.png b/public/content/translations/pt-br/developers/docs/nodes-and-clients/run-a-node/diagram.png similarity index 100% rename from src/content/translations/pt-br/developers/docs/nodes-and-clients/run-a-node/diagram.png rename to public/content/translations/pt-br/developers/docs/nodes-and-clients/run-a-node/diagram.png diff --git a/src/content/translations/pt-br/developers/docs/nodes-and-clients/run-a-node/index.md b/public/content/translations/pt-br/developers/docs/nodes-and-clients/run-a-node/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/nodes-and-clients/run-a-node/index.md rename to public/content/translations/pt-br/developers/docs/nodes-and-clients/run-a-node/index.md diff --git a/src/content/translations/pt-br/developers/docs/oracles/index.md b/public/content/translations/pt-br/developers/docs/oracles/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/oracles/index.md rename to public/content/translations/pt-br/developers/docs/oracles/index.md diff --git a/src/content/translations/pt-br/developers/docs/programming-languages/dart/index.md b/public/content/translations/pt-br/developers/docs/programming-languages/dart/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/programming-languages/dart/index.md rename to public/content/translations/pt-br/developers/docs/programming-languages/dart/index.md diff --git a/src/content/translations/pt-br/developers/docs/programming-languages/delphi/index.md b/public/content/translations/pt-br/developers/docs/programming-languages/delphi/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/programming-languages/delphi/index.md rename to public/content/translations/pt-br/developers/docs/programming-languages/delphi/index.md diff --git a/src/content/translations/pt-br/developers/docs/programming-languages/dot-net/index.md b/public/content/translations/pt-br/developers/docs/programming-languages/dot-net/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/programming-languages/dot-net/index.md rename to public/content/translations/pt-br/developers/docs/programming-languages/dot-net/index.md diff --git a/src/content/translations/pt-br/developers/docs/programming-languages/golang/index.md b/public/content/translations/pt-br/developers/docs/programming-languages/golang/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/programming-languages/golang/index.md rename to public/content/translations/pt-br/developers/docs/programming-languages/golang/index.md diff --git a/src/content/translations/pt-br/developers/docs/programming-languages/index.md b/public/content/translations/pt-br/developers/docs/programming-languages/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/programming-languages/index.md rename to public/content/translations/pt-br/developers/docs/programming-languages/index.md diff --git a/src/content/translations/pt-br/developers/docs/programming-languages/java/index.md b/public/content/translations/pt-br/developers/docs/programming-languages/java/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/programming-languages/java/index.md rename to public/content/translations/pt-br/developers/docs/programming-languages/java/index.md diff --git a/src/content/translations/pt-br/developers/docs/programming-languages/javascript/index.md b/public/content/translations/pt-br/developers/docs/programming-languages/javascript/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/programming-languages/javascript/index.md rename to public/content/translations/pt-br/developers/docs/programming-languages/javascript/index.md diff --git a/src/content/translations/pt-br/developers/docs/programming-languages/python/index.md b/public/content/translations/pt-br/developers/docs/programming-languages/python/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/programming-languages/python/index.md rename to public/content/translations/pt-br/developers/docs/programming-languages/python/index.md diff --git a/src/content/translations/pt-br/developers/docs/programming-languages/ruby/index.md b/public/content/translations/pt-br/developers/docs/programming-languages/ruby/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/programming-languages/ruby/index.md rename to public/content/translations/pt-br/developers/docs/programming-languages/ruby/index.md diff --git a/src/content/translations/pt-br/developers/docs/programming-languages/rust/index.md b/public/content/translations/pt-br/developers/docs/programming-languages/rust/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/programming-languages/rust/index.md rename to public/content/translations/pt-br/developers/docs/programming-languages/rust/index.md diff --git a/src/content/translations/pt-br/developers/docs/scaling/index.md b/public/content/translations/pt-br/developers/docs/scaling/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/scaling/index.md rename to public/content/translations/pt-br/developers/docs/scaling/index.md diff --git a/src/content/translations/pt-br/developers/docs/scaling/optimistic-rollups/index.md b/public/content/translations/pt-br/developers/docs/scaling/optimistic-rollups/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/scaling/optimistic-rollups/index.md rename to public/content/translations/pt-br/developers/docs/scaling/optimistic-rollups/index.md diff --git a/src/content/translations/pt-br/developers/docs/scaling/plasma/index.md b/public/content/translations/pt-br/developers/docs/scaling/plasma/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/scaling/plasma/index.md rename to public/content/translations/pt-br/developers/docs/scaling/plasma/index.md diff --git a/src/content/translations/pt-br/developers/docs/scaling/sidechains/index.md b/public/content/translations/pt-br/developers/docs/scaling/sidechains/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/scaling/sidechains/index.md rename to public/content/translations/pt-br/developers/docs/scaling/sidechains/index.md diff --git a/src/content/translations/pt-br/developers/docs/scaling/state-channels/index.md b/public/content/translations/pt-br/developers/docs/scaling/state-channels/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/scaling/state-channels/index.md rename to public/content/translations/pt-br/developers/docs/scaling/state-channels/index.md diff --git a/src/content/translations/pt-br/developers/docs/scaling/validium/index.md b/public/content/translations/pt-br/developers/docs/scaling/validium/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/scaling/validium/index.md rename to public/content/translations/pt-br/developers/docs/scaling/validium/index.md diff --git a/src/content/translations/pt-br/developers/docs/scaling/zk-rollups/index.md b/public/content/translations/pt-br/developers/docs/scaling/zk-rollups/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/scaling/zk-rollups/index.md rename to public/content/translations/pt-br/developers/docs/scaling/zk-rollups/index.md diff --git a/public/content/translations/pt-br/developers/docs/smart-contracts/anatomy/index.md b/public/content/translations/pt-br/developers/docs/smart-contracts/anatomy/index.md new file mode 100644 index 00000000000..a90ea39c778 --- /dev/null +++ b/public/content/translations/pt-br/developers/docs/smart-contracts/anatomy/index.md @@ -0,0 +1,656 @@ +--- +title: Anatomia dos contratos inteligentes +description: Uma análise aprofundada na anatomia de um contrato inteligente - funções, dados e variáveis. +lang: pt-br +--- + +Um contrato inteligente (smart contract) é um programa executado em um endereço na Ethereum. Eles são compostos por dados e funções que podem ser executadas ao receber uma transação. Veja aqui uma visão geral do que compõe um contrato inteligente. + +## Pré-requisitos {#prerequisites} + +Não deixe de ler sobre [contratos inteligentes](/developers/docs/smart-contracts/). Este documento presume que você já está familiarizado com linguagens de programação como JavaScript ou Python. + +## Dados {#data} + +Quaisquer dados de contrato devem ser atribuídos a um local: seja para `armazenamento` ou `memória`. É caro modificar o armazenamento em um contrato inteligente, então você precisa considerar onde seus dados devem estar no ar. + +### Armazenamento {#storage} + +Dados persistentes são referidos como armazenamento e são representados por variáveis de estado. Esses valores são armazenados permanentemente na blockchain. É necessário declarar o tipo para que o contrato possa manter um registro de quanto espaço na blockchain será necessário quando ele compilar. + +```solidity +// Exemplo Solidity +contract SimpleStorage { + uint storedData; // State variable + // ... +} +``` + +```python +# Exemplo Vyper +storedData: int128 +``` + +Se você já programou linguagens orientadas a objetos, provavelmente você estará familiarizado com a maioria dos tipos. Entretanto, `address` (endereço) deve ser novo para você se você for novo no desenvolvimento com Ethereum. + +Um tipo `address` pode conter um endereço Ethereum que equivale a 20 bytes ou 160 bits. Ele retorna em hexadecimal com um 0 à frente. + +Outros tipos incluem: + +- booleano +- inteiro +- números de ponto fixo +- arrays de bytes de tamanho fixo +- arrays de bytes de tamanho dinâmico +- Literais racionais e inteiros +- Literais de strings +- Literais hexadecimais +- Enumeradores + +Para mais explicação, dê uma olhada na documentação: + +- [Veja tipos de Vyper](https://vyper.readthedocs.io/en/v0.1.0-beta.6/types.html#value-types) +- [Veja tipos de Solidity](https://solidity.readthedocs.io/en/latest/types.html#value-types) + +### Memória {#memory} + +Valores que são armazenados apenas para a duração da execução da função de contratos são chamadas de variáveis de memória. Como estes não são armazenados permanentemente na blockchain, são muito mais baratos de usar. + +Saiba mais sobre como a EVM armazena dados (Storage, Memória e Stack) em [Solidity docs](https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html?highlight=memory#storage-memory-and-the-stack). + +### Variáveis de ambiente {#environment-variables} + +Além das variáveis definidas no seu contrato, existem algumas variáveis globais especiais. Elas são usadas principalmente para fornecer informações sobre a blockchain (cadeia de blocos) ou transação atual. + +Exemplos: + +| **Prop** | **Variável de estado** | **Descrição** | +| ----------------- | ---------------------- | ------------------------------------- | +| `block.timestamp` | uint256 | Data/hora de início do bloco atual | +| `msg.sender` | endereço | Remetente da mensagem (chamada atual) | + +## Funções {#functions} + +Da forma mais simplista, funções podem obter informação ou um conjunto de informações em resposta a entrada de transações. + +Existem dois tipos de chamadas de função: + +- `internal` - estas não criam uma chamada EVM + - Funções internas e variáveis de estado só podem ser acessadas internamente (ou seja, de dentro do contrato atual ou de contratos derivados do mesmo) +- `external` - estas criam uma chamada EVM + - Funções externas fazem parte da interface do contrato, o que significa que elas podem ser chamadas a partir de outros contratos e através de transações. Uma função externa `f` não pode ser chamada internamente (ou seja, `f()` não funciona, mas `this.f()` funciona). + +Também podem ser `públicas` ou `privadas` + +- `funções públicas` podem ser chamadas internamente a partir de dentro do contrato ou externamente por meio de mensagens +- `funções privadas` são visíveis apenas para o contrato no qual elas estão definidas e não nos contratos derivados + +Tanto funções quanto variáveis de estado podem ser tornadas públicas ou privadas + +Aqui está uma função para atualizar uma variável de estado em um contrato: + +```solidity +// Exemplo de Solidity +function update_name(string value) public { + dapp_name = value; +} +``` + +- O parâmetro `valor` do tipo `string` é passado para a função: `update_name` +- É declarado `público`, o que significa que qualquer um pode acessá-lo +- Não é declarada a `visão`, então ela pode modificar o estado do contrato + +### Ver funções {#view-functions} + +Essas funções prometem não modificar o estado dos dados do contrato. Exemplos comuns são funções "obter" – você pode usar isso para receber o saldo de um usuário, por exemplo. + +```solidity +// Exemplo +function balanceOf(address _owner) public view return (uint256 _balance) { + return ownerPizzaCount[_owner]; +} +``` + +```python +dappName: public(string) + +@view +@public +def readName() -> string: + return dappName +``` + +O que é considerado como modificar estado: + +1. Escrevendo variáveis de estado. +2. [Emitir eventos](https://solidity.readthedocs.io/en/v0.7.0/contracts.html#events). +3. [Criação de outros contratos](https://solidity.readthedocs.io/en/v0.7.0/control-structures.html#creating-contracts). +4. Usando `autodestruct`. +5. Enviando ether por chamadas. +6. Chamar qualquer função não marcada como`view`ou`puro`. +7. Usando chamadas de baixo nível. +8. Usando montagem em linha que contém certos códigos. + +### Funções construtor {#constructor-functions} + +`construtor` funções são executadas apenas uma vez quando o contrato é implantado pela primeira vez. Como o `construtor` em muitas linguagens de programação baseadas em classe, essas funções geralmente inicializam variáveis de estado para seus valores especificados. + +```solidity +// Exemplo Solidity +// Inicializa os dados do contrato, definindo o `owner` +// como endereço do criador do contrato. +constructor() public { + // Todos os contratos inteligentes dependem de transações externas para acionar suas funções. + // `msg` é uma variável global que inclui dados relevantes sobre a transação em questão, + // como o endereço do remetente e o valor ETH incluído na transação. + // Saiba mais: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties + owner = msg.sender; +} +``` + +```python +# Exemplo Vyper + +@external +def __init__(_beneficiary: endereço, _bidding_time: uint256): + mesmo. eneficiário = _beneficiário + self.auctionStart = block.timestamp + self.auctionEnd = self.auctionStart + _bidding_time +``` + +### Funções integradas {#built-in-functions} + +Além das variáveis definidas no seu contrato, existem algumas variáveis globais especiais. O exemplo mais óbvio é: + +- `address.send()` – Solidity +- `Enviar(endereço)` – Vyper + +Estes permitem contratos para enviar ETH para outras contas. + +## Funções utilitárias {#writing-functions} + +Sua função precisa: + +- variável e tipo de parâmetro (se aceitar parâmetros) +- declaração de interno/externo +- declaração de puro/visualização/pagável +- tipo de retorno (se ele retornar um valor) + +```solidity +pragma solidity >=0.4.0 <=0.6.0; + +contract ExampleDapp { + string dapp_name; // state variable + + // Called when the contract is deployed and initializes the value + constructor() public { + dapp_name = "My Example dapp"; + } + + // Get Function + function read_name() public view returns(string) { + return dapp_name; + } + + // Set Function + function update_name(string value) public { + dapp_name = value; + } +} +``` + +Um contrato completo pode parecer algo assim. Aqui a função `construtor` fornece um valor inicial para a variável `dapp_name`. + +## Eventos e registros {#events-and-logs} + +Eventos permitem que você se comunique com seu contrato inteligente na interface do seu site ou de outros aplicativos de assinatura. Quando uma transação é minerada, os contratos inteligentes podem emitir eventos e escrever registros na blockchain que o frontend pode então processar. + +## Exemplos anotados {#annotated-examples} + +Estes são alguns exemplos escritos em Solidity. Se você quiser brincar com o código, pode interagir com eles no [Remix](http://remix.ethereum.org). + +### Olá, mundo {#hello-world} + +```solidity +// Especifica a versão do Solidity usando a versão semântica. +// Saiba mais: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma +pragma solidity ^0.5.10; + +// Define um contrato chamado `HelloWorld`. +// Um contrato é uma coleção de funções e dados (seu estado). +// Uma vez implantado, um contrato reside em um endereço específico na blockchain Ethereum. +// Saiba mais: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html +contract HelloWorld { + + // Declita uma variável `message` de tipo `string`. + // Variáveis de estado são variáveis cujos valores são permanentemente armazenados no armazenamento do contrato. + // A palavra-chave 'público' torna variáveis acessíveis fora de um contrato + // e cria uma função que outros contratos ou clientes podem chamar para acessar o valor. + mensagem pública de cadeia; + + // Semelhante a muitas linguagens de objeto, baseadas em classes, um construtor é + // uma função especial que é executada somente após a criação do contrato. + // Os construtores são usados para inicializar os dados do contrato. + // Saiba mais: https://solidity.readthedocs.io/en/v0.5.10/contracts. tml#constructors + constructor(string memory initMessage) public { + // Aceita um argumento de string `initMessage` e define o valor + // na variável de armazenamento `message` do contrato). + message = initMessage; + } + + // Uma função pública que aceita um argumento de string + // e atualiza a variável de armazenamento `message`. + function update(string memory newMessage) public { + message = newMessage; + } +} +``` + +### Token {#token} + +```solidity +pragma solidity ^0.5.10; + +contract Token { + // Um "endereço" é comparável a um endereço de e-mail - é usado para comparar uma conta no Ethereum. + // Endereços podem representar uma conta de contrato inteligente ou uma conta externa (usuário). + // Saiba mais: https://solidity.readthedocs.io/en/v0.5.10/types.html#address + address public owner; + + // Um `mapping` é essencialmente uma estrutura de dados de tabela de hash. + // Este `mapeamento` atribui um inteiro não assinado (o saldo do token) a um endereço (o titular do token). + // Saiba mais: https://solidity.readthedocs.io/en/v0.5.10/types.html#mapping-types + mapping (address => uint) public balances; + + // Eventos permitem registro de atividade no blockchain. + // Clientes Ethereum podem ouvir eventos para reagir às alterações do estado do contrato. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#events + event Transfer(address from, address to, uint amount); + + // Initializes the contract's data, setting the `owner` + // to the address of the contract creator. + constructor() public { + // Todos os contratos inteligentes dependem de transações externas para acionar suas funções. + // `msg` é uma variável global que inclui dados relevantes sobre a transação em questão, + // como o endereço do remetente e o valor ETH incluído na transação. + // Saiba mais: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties + owner = msg.sender; + } + + // Cria uma quantidade de novos tokens e os envia para um endereço. + function mint(address receiver, uint amount) public { + // `require` é uma estrutura de controle usada para aplicar certas condições. + // Se um comando `require` for avaliado como `false`, uma exceção é acionada, + // que reverte todas as alterações feitas ao estado durante a chamada atual. + // Saiba mais: https://solidity.readthedocs.io/en/v0.5.10/control-structures. tml#error-handling-assert-require-revert-and-exceptions + + // Somente o proprietário do contrato pode chamar esta função + require(msg. remetente == dono, "Você não é o dono. ); + + // Reforça uma quantidade máxima de tokens + require(amount < 1e60, "Emissão máxima excedida"); + + // Aumenta o saldo de `receiver` em `amount` + saldos[receiver] += amount; + } + + // Envia uma quantidade de tokens existentes de qualquer chamada para um endereço. + function transfer(address receiver, uint amount) public { + // O remetente deve ter tokens suficientes para enviar + require(amount <= balances[msg.sender], "Insufficient balance."); + + // Ajusta os saldos do token dos dois endereços + balances[msg.sender] -= quantidade; + balances[receiver] += quantidade; + + // Emite um evendo definido anteriormente + emite Transfer(msg.sender, receiver, amount); + } +} +``` + +### Asset digital único {#unique-digital-asset} + +```solidity +pragma solidity ^0.5.10. +// Neste caso, uma série de contratos auxiliares de OpenZeppelin. +// Saiba mais: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#importing-other-source-files + +import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; +import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver. ol"; +import "../node_modules/@openzeppelin/contracts/introspection/ERC165.sol"; +import "../node_modules/@openzeppelin/contracts/math/SafeMath.sol"; + +// A palavra-chave `is` é usada para herdar funções e palavras-chave de contratos externos. +// Neste caso, o `CryptoPizza` herda dos contratos `IERC721` e `ERC165`. +// Saiba mais: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#inheritance +contract CryptoPizza is IERC721, ERC165 { + // Usa a biblioteca OpenZeppelin para executar operações aritméticas de forma segura. + // Saiba mais: https://docs.openzeppelin.com/contracts/2. /api/math#SafeMath + usando SafeMath para uint256; + + // Variáveis de estado constantes em Solidity são semelhantes a outros idiomas + // mas você deve atribuir a partir de uma expressão que é constante na hora de compilação. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constant-state-variables + uint256 constant dnaDigits = 10; + uint256 constant dnaModulus = 10 ** dnaDigits; + bytes4 private constant _ERC721_RECEIVED = 0x150b7a02; + + // Struct types let you define your own type + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#structs + struct Pizza { + string name; + uint256 dna; + } + + // Creates an empty array of Pizza structs + Pizza[] public pizzas; + + // Mapping from pizza ID to its owner's address + mapping(uint256 => address) public pizzaToOwner; + + // Mapping from owner's address to number of owned token + mapping(address => uint256) public ownerPizzaCount; + + // Mapping from token ID to approved address + mapping(uint256 => address) pizzaApprovals; + + // You can nest mappings, this example maps owner to operator approvals + mapping(address => mapping(address => bool)) private operatorApprovals; + + // Internal function to create a random Pizza from string (name) and DNA + function _createPizza(string memory _name, uint256 _dna) + // The `internal` keyword means this function is only visible + // within this contract and contracts that derive this contract + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#visibility-and-getters + internal + // `isUnique` is a function modifier that checks if the pizza already exists + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html#function-modifiers + isUnique(_name, _dna) + { + // Adds Pizza to array of Pizzas and get id + uint256 id = SafeMath.sub(pizzas.push(Pizza(_name, _dna)), 1); + + // Checks that Pizza owner is the same as current user + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions + + // note that address(0) is the zero address, + // indicating that pizza[id] is not yet allocated to a particular user. + + assert(pizzaToOwner[id] == address(0)); + + // Maps the Pizza to the owner + pizzaToOwner[id] = msg.sender; + ownerPizzaCount[msg.sender] = SafeMath.add( + ownerPizzaCount[msg.sender], + 1 + ); + } + + // Creates a random Pizza from string (name) + function createRandomPizza(string memory _name) public { + uint256 randDna = generateRandomDna(_name, msg.sender); + _createPizza(_name, randDna); + } + + // Generates random DNA from string (name) and address of the owner (creator) + function generateRandomDna(string memory _str, address _owner) + public + // Functions marked as `pure` promise not to read from or modify the state + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#pure-functions + pure + returns (uint256) + { + // Generates random uint from string (name) + address (owner) + uint256 rand = uint256(keccak256(abi.encodePacked(_str))) + + uint256(_owner); + rand = rand % dnaModulus; + return rand; + } + + // Returns array of Pizzas found by owner + function getPizzasByOwner(address _owner) + public + // Functions marked as `view` promise not to modify state + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#view-functions + view + returns (uint256[] memory) + { + // Uses the `memory` storage location to store values only for the + // lifecycle of this function call. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/introduction-to-smart-contracts.html#storage-memory-and-the-stack + uint256[] memory result = new uint256[](ownerPizzaCount[_owner]); + uint256 counter = 0; + for (uint256 i = 0; i < pizzas.length; i++) { + if (pizzaToOwner[i] == _owner) { + result[counter] = i; + counter++; + } + } + return result; + } + + // Transfers Pizza and ownership to other address + function transferFrom(address _from, address _to, uint256 _pizzaId) public { + require(_from != address(0) && _to != address(0), "Invalid address."); + require(_exists(_pizzaId), "Pizza does not exist."); + require(_from != _to, "Cannot transfer to the same address."); + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + + ownerPizzaCount[_to] = SafeMath.add(ownerPizzaCount[_to], 1); + ownerPizzaCount[_from] = SafeMath.sub(ownerPizzaCount[_from], 1); + pizzaToOwner[_pizzaId] = _to; + + // Emits event defined in the imported IERC721 contract + emit Transfer(_from, _to, _pizzaId); + _clearApproval(_to, _pizzaId); + } + + /** + * Safely transfers the ownership of a given token ID to another address + * If the target address is a contract, it must implement `onERC721Received`, + * which is called upon a safe transfer, and return the magic value + * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; + * otherwise, the transfer is reverted. + */ + function safeTransferFrom(address from, address to, uint256 pizzaId) + public + { + // solium-disable-next-line arg-overflow + this.safeTransferFrom(from, to, pizzaId, ""); + } + + /** + * Safely transfers the ownership of a given token ID to another address + * If the target address is a contract, it must implement `onERC721Received`, + * which is called upon a safe transfer, and return the magic value + * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; + * otherwise, the transfer is reverted. + */ + function safeTransferFrom( + address from, + address to, + uint256 pizzaId, + bytes memory _data + ) public { + this.transferFrom(from, to, pizzaId); + require(_checkOnERC721Received(from, to, pizzaId, _data), "Must implement onERC721Received."); + } + + /** + * Internal function to invoke `onERC721Received` on a target address + * The call is not executed if the target address is not a contract + */ + function _checkOnERC721Received( + address from, + address to, + uint256 pizzaId, + bytes memory _data + ) internal returns (bool) { + if (!isContract(to)) { + return true; + } + + bytes4 retval = IERC721Receiver(to).onERC721Received( + msg.sender, + from, + pizzaId, + _data + ); + return (retval == _ERC721_RECEIVED); + } + + // Burns a Pizza - destroys Token completely + // The `external` function modifier means this function is + // part of the contract interface and other contracts can call it + function burn(uint256 _pizzaId) external { + require(msg.sender != address(0), "Invalid address."); + require(_exists(_pizzaId), "Pizza does not exist."); + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + + ownerPizzaCount[msg.sender] = SafeMath.sub( + ownerPizzaCount[msg.sender], + 1 + ); + pizzaToOwner[_pizzaId] = address(0); + } + + // Returns count of Pizzas by address + function balanceOf(address _owner) public view returns (uint256 _balance) { + return ownerPizzaCount[_owner]; + } + + // Returns owner of the Pizza found by id + function ownerOf(uint256 _pizzaId) public view returns (address _owner) { + address owner = pizzaToOwner[_pizzaId]; + require(owner != address(0), "Invalid Pizza ID."); + return owner; + } + + // Approves other address to transfer ownership of Pizza + function approve(address _to, uint256 _pizzaId) public { + require(msg.sender == pizzaToOwner[_pizzaId], "Must be the Pizza owner."); + pizzaApprovals[_pizzaId] = _to; + emit Approval(msg.sender, _to, _pizzaId); + } + + // Returns approved address for specific Pizza + function getApproved(uint256 _pizzaId) + public + view + returns (address operator) + { + require(_exists(_pizzaId), "Pizza does not exist."); + return pizzaApprovals[_pizzaId]; + } + + /** + * Private function to clear current approval of a given token ID + * Reverts if the given address is not indeed the owner of the token + */ + function _clearApproval(address owner, uint256 _pizzaId) private { + require(pizzaToOwner[_pizzaId] == owner, "Must be pizza owner."); + require(_exists(_pizzaId), "Pizza does not exist."); + if (pizzaApprovals[_pizzaId] != address(0)) { + pizzaApprovals[_pizzaId] = address(0); + } + } + + /* + * Sets or unsets the approval of a given operator + * An operator is allowed to transfer all tokens of the sender on their behalf + */ + function setApprovalForAll(address to, bool approved) public { + require(to != msg.sender, "Cannot approve own address"); + operatorApprovals[msg.sender][to] = approved; + emit ApprovalForAll(msg.sender, to, approved); + } + + // Tells whether an operator is approved by a given owner + function isApprovedForAll(address owner, address operator) + public + view + returns (bool) + { + return operatorApprovals[owner][operator]; + } + + // Takes ownership of Pizza - only for approved users + function takeOwnership(uint256 _pizzaId) public { + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + address owner = this.ownerOf(_pizzaId); + this.transferFrom(owner, msg.sender, _pizzaId); + } + + // Checks if Pizza exists + function _exists(uint256 pizzaId) internal view returns (bool) { + address owner = pizzaToOwner[pizzaId]; + return owner != address(0); + } + + // Checks if address is owner or is approved to transfer Pizza + function _isApprovedOrOwner(address spender, uint256 pizzaId) + internal + view + returns (bool) + { + address owner = pizzaToOwner[pizzaId]; + // Disable solium check because of + // https://github.com/duaraghav8/Solium/issues/175 + // solium-disable-next-line operator-whitespace + return (spender == owner || + this.getApproved(pizzaId) == spender || + this.isApprovedForAll(owner, spender)); + } + + // Check if Pizza is unique and doesn't exist yet + modifier isUnique(string memory _name, uint256 _dna) { + bool result = true; + for (uint256 i = 0; i < pizzas.length; i++) { + if ( + keccak256(abi.encodePacked(pizzas[i].name)) == + keccak256(abi.encodePacked(_name)) && + pizzas[i].dna == _dna + ) { + result = false; + } + } + require(result, "Pizza with such name already exists."); + _; + } + + // Returns whether the target address is a contract + function isContract(address account) internal view returns (bool) { + uint256 size; + // Currently there is no better way to check if there is a contract in an address + // than to check the size of the code at that address. + // See https://ethereum.stackexchange.com/a/14016/36603 + // for more details about how this works. + // TODO Check this again before the Serenity release, because all addresses will be + // contracts then. + // solium-disable-next-line security/no-inline-assembly + assembly { + size := extcodesize(account) + } + return size > 0; + } +} +``` + +## Leitura adicional {#further-reading} + +Confira a documentação do Solidity e do Vyper para uma visão geral mais completa dos contratos inteligentes: + +- [Solidity](https://solidity.readthedocs.io/) +- [Vyper](https://vyper.readthedocs.io/) + +## Tópicos relacionados {#related-topics} + +- [Smart Contracts](/developers/docs/smart-contracts/) +- [Máquina Virtual Ethereum](/developers/docs/evm/) + +## Tutoriais relacionados {#related-tutorials} + +- [Diminuir contratos para enfrentar o limite de tamanho do contrato](/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/) _– Algumas dicas práticas para reduzir o tamanho de seu contrato inteligente._ +- [Registrando dados de contratos inteligentes com eventos](/developers/tutorials/logging-events-smart-contracts/) _– Uma introdução aos eventos de contratos inteligentes e como você pode usá-los para registrar dados._ +- [Interaja com outros contratos da Solidity](/developers/tutorials/interact-with-other-contracts-from-solidity/) _– Como implantar um contrato inteligente a partir de um contrato existente e interagir com ele._ diff --git a/src/content/translations/pt-br/developers/docs/smart-contracts/compiling/index.md b/public/content/translations/pt-br/developers/docs/smart-contracts/compiling/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/smart-contracts/compiling/index.md rename to public/content/translations/pt-br/developers/docs/smart-contracts/compiling/index.md diff --git a/src/content/translations/pt-br/developers/docs/smart-contracts/composability/index.md b/public/content/translations/pt-br/developers/docs/smart-contracts/composability/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/smart-contracts/composability/index.md rename to public/content/translations/pt-br/developers/docs/smart-contracts/composability/index.md diff --git a/src/content/translations/pt-br/developers/docs/smart-contracts/deploying/index.md b/public/content/translations/pt-br/developers/docs/smart-contracts/deploying/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/smart-contracts/deploying/index.md rename to public/content/translations/pt-br/developers/docs/smart-contracts/deploying/index.md diff --git a/src/content/translations/pt-br/developers/docs/smart-contracts/formal-verification/index.md b/public/content/translations/pt-br/developers/docs/smart-contracts/formal-verification/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/smart-contracts/formal-verification/index.md rename to public/content/translations/pt-br/developers/docs/smart-contracts/formal-verification/index.md diff --git a/src/content/translations/pt-br/developers/docs/smart-contracts/index.md b/public/content/translations/pt-br/developers/docs/smart-contracts/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/smart-contracts/index.md rename to public/content/translations/pt-br/developers/docs/smart-contracts/index.md diff --git a/src/content/translations/pt-br/developers/docs/smart-contracts/languages/index.md b/public/content/translations/pt-br/developers/docs/smart-contracts/languages/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/smart-contracts/languages/index.md rename to public/content/translations/pt-br/developers/docs/smart-contracts/languages/index.md diff --git a/src/content/translations/pt-br/developers/docs/smart-contracts/libraries/index.md b/public/content/translations/pt-br/developers/docs/smart-contracts/libraries/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/smart-contracts/libraries/index.md rename to public/content/translations/pt-br/developers/docs/smart-contracts/libraries/index.md diff --git a/src/content/translations/pt-br/developers/docs/smart-contracts/security/index.md b/public/content/translations/pt-br/developers/docs/smart-contracts/security/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/smart-contracts/security/index.md rename to public/content/translations/pt-br/developers/docs/smart-contracts/security/index.md diff --git a/src/content/translations/pt-br/developers/docs/smart-contracts/testing/index.md b/public/content/translations/pt-br/developers/docs/smart-contracts/testing/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/smart-contracts/testing/index.md rename to public/content/translations/pt-br/developers/docs/smart-contracts/testing/index.md diff --git a/src/content/translations/pt-br/developers/docs/standards/index.md b/public/content/translations/pt-br/developers/docs/standards/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/standards/index.md rename to public/content/translations/pt-br/developers/docs/standards/index.md diff --git a/src/content/translations/pt-br/developers/docs/standards/tokens/erc-1155/index.md b/public/content/translations/pt-br/developers/docs/standards/tokens/erc-1155/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/standards/tokens/erc-1155/index.md rename to public/content/translations/pt-br/developers/docs/standards/tokens/erc-1155/index.md diff --git a/public/content/translations/pt-br/developers/docs/standards/tokens/erc-20/index.md b/public/content/translations/pt-br/developers/docs/standards/tokens/erc-20/index.md new file mode 100644 index 00000000000..a48379944e5 --- /dev/null +++ b/public/content/translations/pt-br/developers/docs/standards/tokens/erc-20/index.md @@ -0,0 +1,149 @@ +--- +title: Padrão de token ERC-20 +description: Token +lang: pt-br +--- + +## Introdução {#introduction} + +**O que é um token?** + +Um token podem representar praticamente qualquer coisa em Ethereum: + +- pontos de reputação em uma plataforma online +- habilidades de um personagem em um jogo +- bilhetes de loteria +- ativos financeiros, como a ação em uma empresa +- uma moeda fiduciária, como USD +- 28,3 gr de ouro +- e mais... + +Uma característica tão poderosa do Ethereum deve ser tratada por um padrão robusto, certo? É aí que o ERC-20 entra! Este padrão permite que desenvolvedores criem aplicativos de token que são interoperáveis com outros produtos e serviços. + +**O que é ERC-20?** + +O ERC-20 introduz um padrão para os tokens fungíveis, ou seja, eles têm uma propriedade que faz com que cada token tenha exatamente o mesmo de outro token (em termos de tipo e valor). Por exemplo, um token ERC-20 age como o ETH, significando que 1 token é e será sempre igual a todos os outros tokens. + +## Pré-requisitos {#prerequisites} + +- [Contas](/developers/docs/accounts) +- [Contratos Inteligentes](/developers/docs/smart-contracts/) +- [Padrões de token](/developers/docs/standards/tokens/) + +## Apresentação {#body} + +O ERC-20 (Ethereum Request for Comments 20), proposto por Fabian Vogelsteller em novembro de 2015, é um padrão de token que implementa uma API para tokens em contratos inteligentes. + +Exemplo de funcionalidades que o ERC-20 fornece: + +- transferir tokens de uma conta a outra +- obter o saldo atual de tokens de uma conta +- obter a oferta total do token disponível na rede +- aprovar se uma quantidade de token de uma conta pode ser gasta por uma conta de terceiros + +Se um contrato inteligente implementa os métodos e eventos a seguir, ele pode ser chamado de Contrato de token ERC-20 e, uma vez implantado, é responsável por fazer um acompanhamento dos tokens criados no Ethereum. + +De [EIP-20](https://eips.ethereum.org/EIPS/eip-20): + +### Métodos {#methods} + +```solidity +function name() public view returns (string) +function symbol() public view returns (string) +function decimals() public view returns (uint8) +function totalSupply() public view returns (uint256) +function balanceOf(address _owner) public view returns (uint256 balance) +function transfer(address _to, uint256 _value) public returns (bool success) +function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) +function approve(address _spender, uint256 _value) public returns (bool success) +function allowance(address _owner, address _spender) public view returns (uint256 remaining) +``` + +### Eventos {#events} + +```solidity +event Transfer(address indexed _from, address indexed _to, uint256 _value) +event Approval(address indexed _owner, address indexed _spender, uint256 _value) +``` + +### Exemplos {#web3py-example} + +Vejamos por que um padrão é importante e como ele simplifica o controle de qualquer contrato de token ERC-20 no Ethereum. Só precisamos da Interface Binária de Aplicativos (ABI, pela sigla em inglês) do contrato para criar uma interface com qualquer token ERC-20. Como você pode ver abaixo, usaremos uma ABI simplificada, para torná-la um exemplo de fácil compreensão. + +#### Exemplo para a Web3.py {#web3py-example} + +Primeiro, certifique-se de que você instalou a biblioteca [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) do Python: + +``` +pip install web3 +``` + +```python +from web3 import Web3 + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI +weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # Wrapped ether (WETH) + +acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11" # Uniswap V2: DAI 2 + +# This is a simplified Contract Application Binary Interface (ABI) of an ERC-20 Token Contract. +# It will expose only the methods: balanceOf(address), decimals(), symbol() and totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'decimals', + 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +dai_contract = w3.eth.contract(address=w3.to_checksum_address(dai_token_addr), abi=simplified_abi) +symbol = dai_contract.functions.symbol().call() +decimals = dai_contract.functions.decimals().call() +totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals +addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# DAI +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) + +weth_contract = w3.eth.contract(address=w3.to_checksum_address(weth_token_addr), abi=simplified_abi) +symbol = weth_contract.functions.symbol().call() +decimals = weth_contract.functions.decimals().call() +totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals +addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# WETH +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) +``` + +## Leitura adicional {#further-reading} + +- [EIP-20: Padrão de token ERC-20](https://eips.ethereum.org/EIPS/eip-20) +- [OpenZeppelin: Tokens](https://docs.openzeppelin.com/contracts/3.x/tokens#ERC20) +- [OpenZeppelin: Implementação ERC-20](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) +- [Alchemy — Guia para os Tokens ERC20 do Solidity](https://www.alchemy.com/overviews/erc20-solidity) diff --git a/src/content/translations/pt-br/developers/docs/standards/tokens/erc-4626/index.md b/public/content/translations/pt-br/developers/docs/standards/tokens/erc-4626/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/standards/tokens/erc-4626/index.md rename to public/content/translations/pt-br/developers/docs/standards/tokens/erc-4626/index.md diff --git a/public/content/translations/pt-br/developers/docs/standards/tokens/erc-721/index.md b/public/content/translations/pt-br/developers/docs/standards/tokens/erc-721/index.md new file mode 100644 index 00000000000..57648ada626 --- /dev/null +++ b/public/content/translations/pt-br/developers/docs/standards/tokens/erc-721/index.md @@ -0,0 +1,244 @@ +--- +title: ERC-721 Padrão de token não-fungível +description: Token +lang: pt-br +--- + +## Introdução {#introduction} + +**O que é um token não fungível (NFT)?** + +Um token não fungível (NFT) é utilizado para identificar algo ou alguém de uma forma única. Este tipo de token é perfeito para ser usado em plataformas que oferecem itens colecionáveis, acessar chaves, bilhetes de loteria, assentos numerados para concertos, jogos esportivos etc. Este tipo especial de token tem possibilidades incríveis, então merece um padrão adequado, o ERC-721! + +**O que é ERC-721?** + +O ERC-721 apresenta um padrão para NFT. Em outras palavras, este tipo de token é único e pode ter um valor diferente do que outro token do mesmo contrato inteligente, talvez devido a sua validade, raridade ou mesmo sua aparência. Um momento, aparência? + +Sim! Todos os NFTs têm uma variável `uint256` chamada `tokenId`, então para qualquer contrato ERC-721, o par `contract address, uint256 tokenId` deve ser globalmente único. Dito isso, um dApp pode ter um "conversor" que usa o `tokenId` como entrada e retorna uma imagem de algo legal, como zumbis, armas, habilidades ou gatinhos incríveis! + +## Pré-requisitos {#prerequisites} + +- [Contas](/developers/docs/accounts/) +- [Contratos Inteligentes](/developers/docs/smart-contracts/) +- [Padrões de token](/developers/docs/standards/tokens/) + +## Apresentação {#body} + +O ERC-721(Ethereum Request for Comments 721), proposto por William Entriken, Dieter Shirley, Jacob Evans e Nastassia Sachs em janeiro de 2018, é um padrão de token não-fungível que implementa uma API para tokens em contratos inteligentes. + +Oferece funcionalidades, como transferir tokens de uma conta para outra, para obter o saldo atual do token de uma conta e também a oferta total do token disponível na rede. Além disso, ele também tem algumas outras funcionalidades como aprovar que uma quantidade de token de uma conta pode ser gasta por uma conta de terceiros. + +Se um contrato inteligente implementa os métodos e eventos a seguir, ele pode ser chamado de Contrato de token ERC-721 e, uma vez implantado, é responsável por fazer um acompanhamento dos tokens criados no Ethereum. + +De [EIP-721](https://eips.ethereum.org/EIPS/eip-721): + +### Métodos {#methods} + +```solidity + function balanceOf(address _owner) external view returns (uint256); + function ownerOf(uint256 _tokenId) external view returns (address); + function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; + function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; + function transferFrom(address _from, address _to, uint256 _tokenId) external payable; + function approve(address _approved, uint256 _tokenId) external payable; + function setApprovalForAll(address _operator, bool _approved) external; + function getApproved(uint256 _tokenId) external view returns (address); + function isApprovedForAll(address _owner, address _operator) external view returns (bool); +``` + +### Eventos {#events} + +```solidity + event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); + event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); + event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); +``` + +### Exemplos {#web3py-example} + +Vejamos por que um padrão é importante e como ele simplifica o controle de qualquer contrato de token ERC-721 no Ethereum. Só precisamos da Interface Binária de Aplicativos (ABI, pela sigla em inglês) do contrato para criar uma interface com qualquer token ERC-721. Como você pode ver abaixo, usaremos uma ABI simplificada, para torná-la um exemplo de fácil compreensão. + +#### Exemplo Web3.py {#web3py-example} + +Primeiro, certifique-se de que você instalou a [biblioteca Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) do Python: + +``` +pip install web3 +``` + +```python +from web3 import Web3 +from web3._utils.events import get_event_data + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # CryptoKitties Contract + +acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # CryptoKitties Sales Auction + +# This is a simplified Contract Application Binary Interface (ABI) of an ERC-721 NFT Contract. +# Serão expostos apenas os métodos: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'name', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'ownerOf', + 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, +] + +ck_extra_abi = [ + { + 'inputs': [], + 'name': 'pregnantKitties', + 'outputs': [{'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'name': '_kittyId', 'type': 'uint256'}], + 'name': 'isPregnant', + 'outputs': [{'name': '', 'type': 'bool'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +ck_contract = w3.eth.contract(address=w3.toChecksumAddress(ck_token_addr), abi=simplified_abi+ck_extra_abi) +name = ck_contract.functions.name().call() +symbol = ck_contract.functions.symbol().call() +kitties_auctions = ck_contract.functions.balanceOf(acc_address).call() +print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}") + +pregnant_kitties = ck_contract.functions.pregnantKitties().call() +print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}") + +# Usando o Evento de Transferência ABI para obter informações sobre os Kitties transferidos. +tx_event_abi = { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'from', 'type': 'address'}, + {'indexed': False, 'name': 'to', 'type': 'address'}, + {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'Transfer', + 'type': 'event' +} + +# We need the event's signature to filter the logs +event_signature = w3.sha3(text="Transfer(address,address,uint256)").hex() + +logs = w3.eth.getLogs({ + "fromBlock": w3.eth.blockNumber - 120, + "address": w3.toChecksumAddress(ck_token_addr), + "topics": [event_signature] +}) + +# Notes: +# - 120 blocks is the max range for CloudFlare Provider +# - If you didn't find any Transfer event you can also try to get a tokenId at: +# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events +# Click to expand the event's logs and copy its "tokenId" argument + +recent_tx = [get_event_data(w3.codec, tx_event_abi, log)["args"] for log in logs] + +kitty_id = recent_tx[0]['tokenId'] # Paste the "tokenId" here from the link above +is_pregnant = ck_contract.functions.isPregnant(kitty_id).call() +print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}") +``` + +Contrato de CriptoKitties tem alguns eventos interessantes além dos padrões. + +Vamos ver dois deles, `Pregnant` e `Birth`. + +```python +# Usando o Evento ABI "Gravidez e Nascimento" para obter informações sobre os novos Kitties. +ck_extra_events_abi = [ + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}], + 'name': 'Pregnant', + 'type': 'event' + }, + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'kittyId', 'type': 'uint256'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'genes', 'type': 'uint256'}], + 'name': 'Birth', + 'type': 'event' + }] + +# We need the event's signature to filter the logs +ck_event_signatures = [ + w3.sha3(text="Pregnant(address,uint256,uint256,uint256)").hex(), + w3.sha3(text="Birth(address,uint256,uint256,uint256,uint256)").hex(), +] + +# Here is a Pregnant Event: +# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog +pregnant_logs = w3.eth.getLogs({ + "fromBlock": w3.eth.blockNumber - 120, + "address": w3.toChecksumAddress(ck_token_addr), + "topics": [ck_event_signatures[0]] +}) + +recent_pregnants = [get_event_data(w3.codec, ck_extra_events_abi[0], log)["args"] for log in pregnant_logs] + +# Here is a Birth Event: +# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a +birth_logs = w3.eth.getLogs({ + "fromBlock": w3.eth.blockNumber - 120, + "address": w3.toChecksumAddress(ck_token_addr), + "topics": [ck_event_signatures[1]] +}) + +recent_births = [get_event_data(w3.codec, ck_extra_events_abi[1], log)["args"] for log in birth_logs] +``` + +## NFTs populares {#popular-nfts} + +- [Etherscan NFT Tracker](https://etherscan.io/tokens-nft) lista o maior NFT no Ethereum por volume de transferências. +- [CryptoKitties](https://www.cryptokitties.co/) é um jogo centrado em criaturas de coleção adoráveis que chamamos de CryptoKitties. +- [Sorare](https://sorare.com/) é um jogo global de fantasia em que você pode coletar edições limitadas, gerenciar suas equipes e concorrer para ganhar prêmios. +- [Ethereum Name Service (ENS)](https://ens.domains/) oferece uma forma segura e descentralizada de endereçar os recursos dentro e fora da blockchain usando nomes legíveis simples. +- [POAP](https://poap.xyz) oferece NFTs grátis para pessoas que participam de eventos ou realizam ações específicas. Os POAPs são livres para criar e distribuir. +- [Unstoppable Domains](https://unstoppabledomains.com/) é uma empresa com sede em São Francisco que cria domínios em blockchains. Os domínios de blockchain substituem endereços de criptomoeda por nomes legíveis e podem ser usados para habilitar sites resistentes à censura. +- [Gods Unchained Cards](https://godsunchained.com/) é uma TCG na blockchain Ethereum que usa NFT para representar a propriedade real nos ativos do jogo. +- [Bored Ape Yacht Club](https://boredapeyachtclub.com) é uma coleção de 10.000 NFT exclusivos que, além de ser uma peça de arte comprovadamente eclética, atua como um token de adesão ao clube, oferecendo vantagens e benefícios aos membros, que aumentam ao longo do tempo como resultado dos esforços da comunidade. + +## Leia mais {#further-reading} + +- [EIP-721: ERC-721 Padrão de token não-fungível](https://eips.ethereum.org/EIPS/eip-721) +- [OpenZeppelin: Documentação ERC-721](https://docs.openzeppelin.com/contracts/3.x/erc721) +- [OpenZeppelin: Implementação ERC-721](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) +- [API do NFT da Alchemy](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) diff --git a/src/content/translations/pt-br/developers/docs/standards/tokens/erc-777/index.md b/public/content/translations/pt-br/developers/docs/standards/tokens/erc-777/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/standards/tokens/erc-777/index.md rename to public/content/translations/pt-br/developers/docs/standards/tokens/erc-777/index.md diff --git a/src/content/translations/pt-br/developers/docs/standards/tokens/index.md b/public/content/translations/pt-br/developers/docs/standards/tokens/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/standards/tokens/index.md rename to public/content/translations/pt-br/developers/docs/standards/tokens/index.md diff --git a/src/content/translations/pt-br/developers/docs/storage/index.md b/public/content/translations/pt-br/developers/docs/storage/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/storage/index.md rename to public/content/translations/pt-br/developers/docs/storage/index.md diff --git a/src/content/translations/pt-br/developers/docs/transactions/gas-tx.png b/public/content/translations/pt-br/developers/docs/transactions/gas-tx.png similarity index 100% rename from src/content/translations/pt-br/developers/docs/transactions/gas-tx.png rename to public/content/translations/pt-br/developers/docs/transactions/gas-tx.png diff --git a/src/content/translations/pt-br/developers/docs/transactions/index.md b/public/content/translations/pt-br/developers/docs/transactions/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/transactions/index.md rename to public/content/translations/pt-br/developers/docs/transactions/index.md diff --git a/src/content/translations/pt-br/developers/docs/transactions/tx.png b/public/content/translations/pt-br/developers/docs/transactions/tx.png similarity index 100% rename from src/content/translations/pt-br/developers/docs/transactions/tx.png rename to public/content/translations/pt-br/developers/docs/transactions/tx.png diff --git a/src/content/translations/pt-br/developers/docs/web2-vs-web3/index.md b/public/content/translations/pt-br/developers/docs/web2-vs-web3/index.md similarity index 100% rename from src/content/translations/pt-br/developers/docs/web2-vs-web3/index.md rename to public/content/translations/pt-br/developers/docs/web2-vs-web3/index.md diff --git a/src/content/translations/pt-br/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md b/public/content/translations/pt-br/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md similarity index 100% rename from src/content/translations/pt-br/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md rename to public/content/translations/pt-br/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md diff --git a/src/content/translations/pt-br/developers/tutorials/calling-a-smart-contract-from-javascript/index.md b/public/content/translations/pt-br/developers/tutorials/calling-a-smart-contract-from-javascript/index.md similarity index 100% rename from src/content/translations/pt-br/developers/tutorials/calling-a-smart-contract-from-javascript/index.md rename to public/content/translations/pt-br/developers/tutorials/calling-a-smart-contract-from-javascript/index.md diff --git a/src/content/translations/pt-br/developers/tutorials/hello-world-smart-contract/index.md b/public/content/translations/pt-br/developers/tutorials/hello-world-smart-contract/index.md similarity index 100% rename from src/content/translations/pt-br/developers/tutorials/hello-world-smart-contract/index.md rename to public/content/translations/pt-br/developers/tutorials/hello-world-smart-contract/index.md diff --git a/src/content/translations/pt-br/developers/tutorials/how-to-mint-an-nft/index.md b/public/content/translations/pt-br/developers/tutorials/how-to-mint-an-nft/index.md similarity index 100% rename from src/content/translations/pt-br/developers/tutorials/how-to-mint-an-nft/index.md rename to public/content/translations/pt-br/developers/tutorials/how-to-mint-an-nft/index.md diff --git a/src/content/translations/pt-br/developers/tutorials/how-to-view-nft-in-metamask/index.md b/public/content/translations/pt-br/developers/tutorials/how-to-view-nft-in-metamask/index.md similarity index 100% rename from src/content/translations/pt-br/developers/tutorials/how-to-view-nft-in-metamask/index.md rename to public/content/translations/pt-br/developers/tutorials/how-to-view-nft-in-metamask/index.md diff --git a/src/content/translations/pt-br/developers/tutorials/how-to-write-and-deploy-an-nft/index.md b/public/content/translations/pt-br/developers/tutorials/how-to-write-and-deploy-an-nft/index.md similarity index 100% rename from src/content/translations/pt-br/developers/tutorials/how-to-write-and-deploy-an-nft/index.md rename to public/content/translations/pt-br/developers/tutorials/how-to-write-and-deploy-an-nft/index.md diff --git a/src/content/translations/pt-br/developers/tutorials/run-node-raspberry-pi/index.md b/public/content/translations/pt-br/developers/tutorials/run-node-raspberry-pi/index.md similarity index 100% rename from src/content/translations/pt-br/developers/tutorials/run-node-raspberry-pi/index.md rename to public/content/translations/pt-br/developers/tutorials/run-node-raspberry-pi/index.md diff --git a/src/content/translations/pt-br/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md b/public/content/translations/pt-br/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md similarity index 100% rename from src/content/translations/pt-br/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md rename to public/content/translations/pt-br/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md diff --git a/src/content/translations/pt-br/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md b/public/content/translations/pt-br/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md similarity index 100% rename from src/content/translations/pt-br/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md rename to public/content/translations/pt-br/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md diff --git a/src/content/translations/pt-br/developers/tutorials/uniswap-v2-annotated-code/index.md b/public/content/translations/pt-br/developers/tutorials/uniswap-v2-annotated-code/index.md similarity index 100% rename from src/content/translations/pt-br/developers/tutorials/uniswap-v2-annotated-code/index.md rename to public/content/translations/pt-br/developers/tutorials/uniswap-v2-annotated-code/index.md diff --git a/src/content/translations/pt-br/eips/index.md b/public/content/translations/pt-br/eips/index.md similarity index 100% rename from src/content/translations/pt-br/eips/index.md rename to public/content/translations/pt-br/eips/index.md diff --git a/src/content/translations/pt-br/energy-consumption/energy_consumption_pre_post_merge.png b/public/content/translations/pt-br/energy-consumption/energy_consumption_pre_post_merge.png similarity index 100% rename from src/content/translations/pt-br/energy-consumption/energy_consumption_pre_post_merge.png rename to public/content/translations/pt-br/energy-consumption/energy_consumption_pre_post_merge.png diff --git a/src/content/translations/pt-br/energy-consumption/index.md b/public/content/translations/pt-br/energy-consumption/index.md similarity index 100% rename from src/content/translations/pt-br/energy-consumption/index.md rename to public/content/translations/pt-br/energy-consumption/index.md diff --git a/src/content/translations/pt-br/enterprise/index.md b/public/content/translations/pt-br/enterprise/index.md similarity index 100% rename from src/content/translations/pt-br/enterprise/index.md rename to public/content/translations/pt-br/enterprise/index.md diff --git a/src/content/translations/pt-br/enterprise/private-ethereum/index.md b/public/content/translations/pt-br/enterprise/private-ethereum/index.md similarity index 100% rename from src/content/translations/pt-br/enterprise/private-ethereum/index.md rename to public/content/translations/pt-br/enterprise/private-ethereum/index.md diff --git a/src/content/translations/pt-br/foundation/index.md b/public/content/translations/pt-br/foundation/index.md similarity index 100% rename from src/content/translations/pt-br/foundation/index.md rename to public/content/translations/pt-br/foundation/index.md diff --git a/src/content/translations/pt-br/glossary/index.md b/public/content/translations/pt-br/glossary/index.md similarity index 100% rename from src/content/translations/pt-br/glossary/index.md rename to public/content/translations/pt-br/glossary/index.md diff --git a/src/content/translations/pt-br/governance/index.md b/public/content/translations/pt-br/governance/index.md similarity index 100% rename from src/content/translations/pt-br/governance/index.md rename to public/content/translations/pt-br/governance/index.md diff --git a/src/content/translations/pt-br/guides/how-to-create-an-ethereum-account/index.md b/public/content/translations/pt-br/guides/how-to-create-an-ethereum-account/index.md similarity index 100% rename from src/content/translations/pt-br/guides/how-to-create-an-ethereum-account/index.md rename to public/content/translations/pt-br/guides/how-to-create-an-ethereum-account/index.md diff --git a/src/content/translations/pt-br/guides/how-to-id-scam-tokens/index.md b/public/content/translations/pt-br/guides/how-to-id-scam-tokens/index.md similarity index 100% rename from src/content/translations/pt-br/guides/how-to-id-scam-tokens/index.md rename to public/content/translations/pt-br/guides/how-to-id-scam-tokens/index.md diff --git a/src/content/translations/pt-br/guides/how-to-register-an-ethereum-account/index.md b/public/content/translations/pt-br/guides/how-to-register-an-ethereum-account/index.md similarity index 100% rename from src/content/translations/pt-br/guides/how-to-register-an-ethereum-account/index.md rename to public/content/translations/pt-br/guides/how-to-register-an-ethereum-account/index.md diff --git a/src/content/translations/pt-br/guides/how-to-revoke-token-access/index.md b/public/content/translations/pt-br/guides/how-to-revoke-token-access/index.md similarity index 100% rename from src/content/translations/pt-br/guides/how-to-revoke-token-access/index.md rename to public/content/translations/pt-br/guides/how-to-revoke-token-access/index.md diff --git a/src/content/translations/pt-br/guides/how-to-swap-tokens/index.md b/public/content/translations/pt-br/guides/how-to-swap-tokens/index.md similarity index 100% rename from src/content/translations/pt-br/guides/how-to-swap-tokens/index.md rename to public/content/translations/pt-br/guides/how-to-swap-tokens/index.md diff --git a/src/content/translations/pt-br/guides/how-to-use-a-bridge/index.md b/public/content/translations/pt-br/guides/how-to-use-a-bridge/index.md similarity index 100% rename from src/content/translations/pt-br/guides/how-to-use-a-bridge/index.md rename to public/content/translations/pt-br/guides/how-to-use-a-bridge/index.md diff --git a/src/content/translations/pt-br/guides/how-to-use-a-wallet/index.md b/public/content/translations/pt-br/guides/how-to-use-a-wallet/index.md similarity index 100% rename from src/content/translations/pt-br/guides/how-to-use-a-wallet/index.md rename to public/content/translations/pt-br/guides/how-to-use-a-wallet/index.md diff --git a/src/content/translations/pt-br/guides/index.md b/public/content/translations/pt-br/guides/index.md similarity index 100% rename from src/content/translations/pt-br/guides/index.md rename to public/content/translations/pt-br/guides/index.md diff --git a/public/content/translations/pt-br/history/index.md b/public/content/translations/pt-br/history/index.md new file mode 100644 index 00000000000..d6cf941a0cd --- /dev/null +++ b/public/content/translations/pt-br/history/index.md @@ -0,0 +1,489 @@ +--- +title: Histórico e bifurcações do Ethereum +description: Uma história da blockchain Ethereum, incluindo marcos importantes, versões e bifurcações. +lang: pt-br +sidebarDepth: 1 +--- + +# A história do Ethereum {#the-history-of-ethereum} + +Uma linha do tempo dos principais marcos, bifurcações e atualizações da blockchain Ethereum. + + + +Bifurcações ocorrem quando grandes atualizações ou alterações técnicas precisam ser feitas na rede, que geralmente são decorrentes de [Propostas de Melhoria do Ethereum (EIPs)] (/ eips /) e alteram as "regras" do protocolo. + +Quando é necessário atualizar um software tradicional, com controle centralizado, a empresa apenas publica uma nova versão para o usuário final. Blockchains funcionam de maneira diferente porque não há propriedade centralizada. [Clientes Ethereum](/developers/docs/nodes-and-clients/) devem atualizar seu software para implementar as novas regras da bifurcação. Além disso, os criadores de bloco (mineradores em um mundo com prova de trabalho, validadores em um mundo com prova de participação) e nós devem criar blocos e validá-los conforme as novas regras. [Mais sobre mecanismos de consenso](/developers/docs/consenus-mechanisms/) + +Essas mudanças de regra podem criar uma divisão temporária na rede. Novos blocos podem ser produzidos conforme as novas regras ou as antigas. Geralmente, as bifurcações são acordadas antes do tempo, para que os clientes adotem as mudanças de uníssono e para que a bifurcação com as melhorias se torne a cadeia principal. No entanto, em casos raros, desacordos sobre as bifurcações podem fazer com que a rede seja dividida permanentemente. Esse foi notadamente o caso para a criação do Ethereum Classic com a [bifurcação DAO] (#dao-fork). + + +Vá direto para informações sobre algumas das atualizações anteriores particularmente importantes: [The Beacon Chain](/roadmap/beacon-chain/), [The Merge](/roadmap/merge/) e [EIP-1559](#london) + +Procurando por futuras melhorias de protocolo? [Saiba mais sobre as próximas atualizações no roteiro do Ethereum](/roadmap/). + + + +## 2023 {#2023} + +### Shanghai {#shanghai} + + + +#### Resumo {#shanghai-summary} + +A atualização Shanghai trouxe saques de stake para a camada de execução. Em conjunto com a atualização Capella, isso permitiu que os blocos aceitassem operações de saque, o que permite que os stakers saquem seu ETH da Beacon Chain para a camada de execução. + + + +- [EIP-3651](https://eips.ethereum.org/EIPS/eip-3651) – _Inicia o endereço `COINBASE` warm_ +- [EIP-3855](https://eips.ethereum.org/EIPS/eip-3855) – _Nova instrução `PUSH0`_ +- [EIP-3860](https://eips.ethereum.org/EIPS/eip-3860) – _Limita e mede o initcode_ +- [EIP-4895](https://eips.ethereum.org/EIPS/eip-4895) – _Envio de retiradas na Beacon Chain como operações_ +- [EIP-6049](https://eips.ethereum.org/EIPS/eip-6049) – _Substituir `SELFDESTRUCT`_ + + + +- [Leia a especificação de atualização Shangai](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/shanghai.md) + +--- + +### Capella {#capella} + + + +#### Resumo {#capella-summary} + +A atualização Capella foi a terceira maior atualização para a camada de consenso (Beacon Chain) e permitiu saques de stake. Capella ocorreu em sincronia com a atualização da camada de execução, Shanghai, e ativou a funcionalidade de saque de stake. + +Essa atualização da camada de consenso trouxe a capacidade para os stakers que não forneceram credenciais de saque com seu depósito inicial de fazê-lo, permitindo assim os saques. + +A atualização também forneceu a funcionalidade de varredura automática de contas, que processa continuamente as contas do validador para todos os pagamentos de recompensas disponíveis ou saques totais. + +- [Mais sobre saques de staking](/staking/withdrawals/). +- [Leia a especificação da atualização Capella](https://github.com/ethereum/consensus-specs/blob/dev/specs/capella/) + + + +## 2022 {#2022} + +### Paris (A Fusão) {#paris} + + + +#### Resumo {#paris-summary} + +A atualização Paris foi desencadeada pela cadeia de blocos de prova de trabalho com uma [dificuldade total final](/glossary/#terminal-total-difficulty) de 58750000000000000000000. Isso aconteceu no bloco 15537393, em 15 de setembro de 2022, iniciando a atualização Paris para o próximo bloco. Paris foi a transição para o [The Merge](/roadmap/merge/) — seu maior recurso era desativar o algoritmo de mineração da [prova de trabalho](/developers/docs/consensus-mechanisms/pow) e a lógica de consenso associada e ativar a [prova de participação](/developers/docs/consensus-mechanisms/pos) no lugar dela. Paris em si foi uma atualização para os [clientes de execução](/developers/docs/nodes-and-clients/#execution-clients) (equivalente à Bellatrix na camada de consenso) que permitiu que eles recebessem instruções de seus [clientes de consenso](/developers/docs/nodes-and-clients/#consensus-clients) conectados. Isso exigiu um novo conjunto de métodos internos da API, coletivamente conhecido como [API do mecanismo](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md), a ser ativado. Esta foi, indiscutivelmente, a atualização mais significativa na história do Ethereum desde o [Homestead](#homestead)! + +- [Leia a especificação de atualização Paris](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/paris.md) + + + +– [EIP-3675](https://eips.ethereum.org/EIPS/eip-3675) – _Atualização do consenso para prova de participação_ +– [EIP-4399](https://eips.ethereum.org/EIPS/eip-4399) – _Substituir o opcode DIFFICULTY por PREVRANDAO_ + + + +--- + +### Bellatrix {#bellatrix} + + + +#### Resumo {#bellatrix-summary} + +A atualização Bellatrix foi a segunda atualização agendada para a [Beacon Chain](/roadmap/beacon-chain), preparando a cadeia para o [The Merge](/roadmap/merge/). Ela traz penalidades ao validador para seus valores totais por inatividade e ofensas sancionáveis. Bellatrix também inclui uma atualização nas regras de escolha de bifurcações para preparar a cadeia para o The Merge e a transição do último bloco de prova de trabalho para o primeiro bloco de prova de participação. Isso inclui informar os clientes de consenso sobre a [dificuldade total do terminal](/glossary/#terminal-total-difficulty) de 58750000000000000000000. + +- [Leia a especificação da atualização Bellatrix](https://github.com/ethereum/consensus-specs/tree/dev/specs/bellatrix) + +--- + +### Gray Glacier {#gray-glacier} + + + +#### Resumo {#gray-glacier-summary} + +A atualização Gray Glacier atrasou a [bomba de dificuldade](/glossary/#difficulty-bomb) por 3 meses. Esta é a única mudança introduzida nessa atualização, e é parecida com a natureza das atualizações [Arrow Glacier](#arrow-glacier) e [Muir Glacier](#muir-glacier). Mudanças semelhantes foram realizadas nas atualizações de rede [Byzantium](#byzantium), [Constantinople](#constantinople) e [London](#london). + +- [Blog da EF – Comunicado da atualização Gray Glacier](https://blog.ethereum.org/2022/06/16/gray-glacier-announcement/) + + + +– [EIP-5133](https://eips.ethereum.org/EIPS/eip-5133) – _atrasa a bomba de dificuldade até setembro de 2022_ + + + + + +## 2021 {#2021} + +### Arrow Glacier {#arrow-glacier} + + + +#### Resumo {#arrow-glacier-summary} + +A implementação de rede Arrow Glacier atrasou a [bomba de dificuldade](/glossary/#difficulty-bomb) por vários meses. Essa é a única mudança introduzida nesta implementação, e é de natureza similar à atualização [Muir Glacier](#muir-glacier). Mudanças semelhantes foram realizadas nas implementações de rede [Byzantium](#byzantium), [Constantinople](#constantinople) e [London](#london). + +- [Blog da EF – Comunicado da atualização Arrow Glacier](https://blog.ethereum.org/2021/11/10/arrow-glacier-announcement/) +- [Ethereum Cat Herders – Atualização Ethereum Arrow Glacier](https://medium.com/ethereum-cat-herders/ethereum-arrow-glacier-upgrade-e8d20fa4c002) + + + +– [EIP-4345](https://eips.ethereum.org/EIPS/eip-4345) – _atrasa a bomba de dificuldade até junho 2022_ + + + +--- + +### Altair {#altair} + + + +#### Resumo {#altair-summary} + +A Altair foi a primeira implementação programada para a [Beacon Chain](/roadmap/beacon-chain). Foi adicionado suporte para “comitês de sincronização”, permitindo clientes leves, aumentando a inatividade do validador e removendo penalidades à medida que o desenvolvimento avançava para o The Merge. + +- [Leia a especificação de melhoria da Altair](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) + +#### Fato engraçado! {#altair-fun-fact} + +Altair foi a primeira grande atualização de rede que teve um tempo exato de implantação. Todas as atualizações anteriores eram baseadas em um número de bloco declarado na cadeia de prova de trabalho, na qual o tempo de mineração de cada bloco varia. A Beacon Chain não requer resolver a prova de trabalho, em vez disso, ela funciona segundo um sistema de tempo em épocas, composto de 32 “intervalos” de 12 segundos cada, durante os quais os validadores podem propor blocos. É por isso que sabíamos exatamente quando atingiríamos a época 74.240 e a data de lançamento da Altair! + +- [Tempo do bloco](/developers/docs/blocks/#block-time) + +--- + +### London {#london} + + + +#### Resumo {#london-summary} + +A atualização London introduziu a [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559), que reformou o mercado de taxas de transação, além de implementar mudanças na forma como os reembolsos de gás são realizados e no cronograma da [Ice Age](/glossary/#ice-age). + +- [Você é um desenvolvedor de dapp? Certifique-se de atualizar suas bibliotecas e ferramentas.](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/london-ecosystem-readiness.md) +- [Leia o comunicado da Ethereum Foundation](https://blog.ethereum.org/2021/07/15/london-mainnet-announcement/) +- [Leia a explicação do Ethereum Cat Herder](https://medium.com/ethereum-cat-herders/london-upgrade-overview-8eccb0041b41) + + + +– [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) – _melhora a taxa de transação do mercado_ +– [EIP-3198](https://eips.ethereum.org/EIPS/eip-3198) – _retorna o "BASEFEE" de um bloco_ +– [EIP-3529](https://eips.ethereum.org/EIPS/eip-3529) – _reduz os reembolsos de gás para operações de EVM_ +– [EIP-3541](https://eips.ethereum.org/EIPS/eip-3541) – _evita a implantação de contratos que iniciam com "0xEF"_ +– [EIP-3554](https://eips.ethereum.org/EIPS/eip-3554) – _atrasa a Ice Age até 2021_ + + + +--- + +### Berlin {#berlin} + + + +#### Resumo {#berlin-summary} + +A atualização Berlim otimizou o custo de gás para certas ações de EVM e aumenta o suporte para vários tipos de transação. + +- [Leia o anúncio da Fundação Ethereum](https://blog.ethereum.org/2021/03/08/ethereum-berlin-upgrade-announcement/) +- [Leia a explicação do Ethereum Cat Herder](https://medium.com/ethereum-cat-herders/the-berlin-upgrade-overview-2f7ad710eb80) + + + +– [EIP-2565](https://eips.ethereum.org/EIPS/eip-2565) - _reduz o custo de gás para ModExp_ +– [EIP-2718](https://eips.ethereum.org/EIPS/eip-2718) – _permite suporte mais fácil para vários tipos de transação_ +– [EIP-2929](https://eips.ethereum.org/EIPS/eip-2929) – _o custo de gás aumenta para os opcodes de acesso ao estado_ +– [EIP-2930](https://eips.ethereum.org/EIPS/eip-2930) – _adiciona listas de acesso opcionais_ + + + + + +## 2020 {#2020} + +### Origem da Beacon Chain {#beacon-chain-genesis} + + + +#### Resumo {#beacon-chain-genesis-summary} + +A [Beacon Chain](/roadmap/beacon-chain/) precisava de 16.384 depósitos de 32 ETH em stake (participação) para ser transferida com segurança. Isso aconteceu em 27 de novembro, ou seja, a Beacon Chain começou a produzir blocos em 1 de dezembro de 2020. Este é um primeiro passo importante para alcançar a [Visão Ethereum](/roadmap/vision/). + +[Leia o comunicado da Ethereum Foundation](https://blog.ethereum.org/2020/11/27/eth2-quick-update-no-21/) + + + A Beacon Chain + + +--- + +### Contrato de depósito de participação implantado {#staking-deposit-contract} + + + +#### Resumo {#deposit-contract-summary} + +O contrato de depósito fixo introduziu [staking](/glossary/#staking) (participação) no ecossistema Ethereum. Embora fosse um contrato da [Mainnet](/glossary/#mainnet), ela teve um impacto direto na linha do tempo para o lançamento da [Beacon Chain](/roadmap/beacon-chain/), uma importante [atualização do Ethereum](/roadmap/). + +[Leia o comunicado da Ethereum Foundation](https://blog.ethereum.org/2020/11/04/eth2-quick-update-no-19/) + + + Participação + + +--- + +### Muir Glacier {#muir-glacier} + + + +#### Resumo {#muir-glacier-summary} + +O fork (bifurcação) Muir Glacier introduziu um atraso na [bomba de dificuldade](/glossary/#difficulty-bomb). O aumento da dificuldade dos blocos do mecanismo de consenso da [prova de trabalho](/developers/docs/consensus-mechanisms/pow/) ameaçava degradar a usabilidade do Ethereum, aumentando os tempos de espera para o envio de transações e usando dapps. + +- [Leia o comunicado da Ethereum Foundation](https://blog.ethereum.org/2019/12/23/ethereum-muir-glacier-upgrade-announcement/) +- [Leia a explicação do Ethereum Cat Herder](https://medium.com/ethereum-cat-herders/ethereum-muir-glacier-upgrade-89b8cea5a210) + + + +– [EIP-2384](https://eips.ethereum.org/EIPS/eip-2384) – _atrasa a bomba de dificuldade por mais 4.000.000 blocos, ou ~611 dias._ + + + + + +## 2019 {#2019} + +### Istambul {#istanbul} + + + +#### Resumo {#istanbul-summary} + +O fork (bifurcação) Istanbul: + +- Otimizado o custo de [gás](/glossary/#gas) de certas ações no [EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine). +- Melhoria na resiliência a ataques de negação de serviço. +- Criou soluções de [escalonamento da Camada 2](/developers/docs/scaling/#layer-2-scaling)com soluções baseadas em SNARKs e STARKs de melhor desempenho. +- Interoperação entre Ethereum e Zcash habilitada. +- Contratos permitidos para introduzir funções mais criativas. + +[Leia o comunicado da Ethereum Foundation](https://blog.ethereum.org/2019/11/20/ethereum-istanbul-upgrade-announcement/) + + + +– [EIP-152](https://eips.ethereum.org/EIPS/eip-152) – _permite que o Ethereum trabalhe com moedas que preservam a privacidade, como o Zcash._ +– [EIP-1108](https://eips.ethereum.org/EIPS/eip-1108) – _criptografia mais barata para melhorar os custos de [gas](/glossary/#gas)._ +– [EIP-1344](https://eips.ethereum.org/EIPS/eip-1344) – _protege o Ethereum contra ataques de reprodução adicionando "CHAINID" [opcode](/developers/docs/ethereum-stack/#ethereum-virtual-machine)._ +– [EIP-1884](https://eips.ethereum.org/EIPS/eip-1884) – _otimização dos preços do gás dos códigos de operação baseados em consumo._ +– [EIP-2028](https://eips.ethereum.org/EIPS/eip-2028) – _reduz o custo dos dados de chamada para permitir mais dados nos blocos – bom para [escalonamento de Camada 2](/developers/docs/scaling/#layer-2-scaling)._ +– [EIP-2200](https://eips.ethereum.org/EIPS/eip-2200) – _outras alterações do preço do gás dos códigos de operação._ + + + +--- + +### Constantinopla {#constantinople} + + + +#### Resumo {#constantinople-summary} + +O fork (bifurcação) Constantinople: + +- Assegurou que a cadeia de blocos não congelasse antes de a [prova de participação ser implementada](#beacon-chain-genesis). +- Otimizado o custo de [gás](/glossary/#gas) de certas ações no [EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine). +- Adicionada a capacidade de interagir com endereços que ainda não foram criados. + +[Leia o comunicado da Ethereum Foundation](https://blog.ethereum.org/2019/02/22/ethereum-constantinople-st-petersburg-upgrade-announcement/) + + + +– [EIP-145](https://eips.ethereum.org/EIPS/eip-145) – _otimiza o custo de certas ações em cadeia. +– [EIP-1014](https://eips.ethereum.org/EIPS/eip-1014) – \_permite que você interaja com endereços que ainda não foram criados. +– [EIP-1052](https://eips.ethereum.org/EIPS/eip-1052) – \_otimiza o custo de certas ações em cadeia. +– [EIP-1234](https://eips.ethereum.org/EIPS/eip-1234) – \_verifica se a cadeia de blocos não congela antes da prova de participação._ + + + + + +## 2017 {#2017} + +### Byzantium {#byzantium} + + + +#### Resumo {#byzantium-summary} + +O fork (bifurcação) Byzantium: + +- Reduziu as recompensas de [mineração](/developers/docs/consensus-mechanisms/pow/mining/) de bloco de 5 para 3 ETH. +- A [bomba de dificuldade](/glossary/#difficulty-bomb) foi atrasada por um ano. +- Adicionada a capacidade de fazer chamadas sem alteração de estado para outros contratos. +- Adicionados alguns métodos de criptografia para permitir o [escalonamento da Camada 2](/developers/docs/scaling/#layer-2-scaling). + +[Leia o comunicado da Ethereum Foundation](https://blog.ethereum.org/2017/10/12/byzantium-hf-announcement/) + + + +– [EIP-140](https://eips.ethereum.org/EIPS/eip-140) – _adiciona o código de operação "REVERT"._ +– [EIP-658](https://eips.ethereum.org/EIPS/eip-658) – _campo de status adicionado aos recibos de transação para indicar êxito ou falha._ +– [EIP-196](https://eips.ethereum.org/EIPS/eip-196) – _adiciona curva elíptica e multiplicação escalar para permitir [ZK-Snarks](/developers/docs/scaling/zk-rollups/)._ +– [EIP-197](https://eips.ethereum.org/EIPS/eip-197) – _adiciona curva elíptica e multiplicação escalar permitir [ZK-Snarks](/developers/docs/scaling/zk-rollups/)._ +– [EIP-198](https://eips.ethereum.org/EIPS/eip-198) – _habilita a verificação de assinatura RSA._ +– [EIP-211](https://eips.ethereum.org/EIPS/eip-211) – _adiciona suporte para valores de retorno de tamanho variável._ +– [EIP-214](https://eips.ethereum.org/EIPS/eip-214) – _adiciona o código de operação "STATICCALL", permitindo chamadas sem alteração sem estado para outros contratos._ +– [EIP-100](https://eips.ethereum.org/EIPS/eip-100) – _altera a fórmula de ajuste de dificuldade._ +– [EIP-649](https://eips.ethereum.org/EIPS/eip-649) – _atrasa a [difficulty bomb](/glossary/#difficulty-bomb) em um ano e reduz a recompensa de bloco de 5 para 3 ETH._ + + + + + +## 2016 {#2016} + +### Spurious Dragon {#spurious-dragon} + + + +#### Resumo {#spurious-dragon-summary} + +O fork (bifurcação) Spurious Dragon foi a segunda resposta aos ataques de negação de serviço (DoS) na rede (setembro / outubro de 2016), incluindo: + +- ajustar preços do código de operação para evitar ataques futuros à rede. +- permitindo "desinchar" do estado da cadeia de blocos. +- adicionando proteção contra ataques de repetição. + +[Leia o comunicado da Ethereum Foundation](https://blog.ethereum.org/2016/11/18/hard-fork-no-4-spurious-dragon/) + + + +– [EIP-155](https://eips.ethereum.org/EIPS/eip-155) – _evita que as transações de uma cadeia Ethereum sejam retransmitidas em uma cadeia alternativa, por exemplo, uma transação de rede de testes sendo reproduzida na cadeia principal Ethereum._ +– [EIP-160](https://eips.ethereum.org/EIPS/eip-160) – _ajusta os preços do código de operação "EXP" – dificulta a desaceleração da rede pode meio de operações contratuais computacionalmente caras._ +– [EIP-161](https://eips.ethereum.org/EIPS/eip-161) – _permite a remoção de contas vazias adicionadas por meio dos ataques DOS (DOS)._ +– [EIP-170](https://eips.ethereum.org/EIPS/eip-170) – _muda o tamanho máximo de código que um contrato na cadeia de blocos pode ter – para 24576 bytes._ + + + +--- + +### Tangerine Whistle {#tangerine-whistle} + + + +#### Resumo {#tangerine-whistle-summary} + +O fork (bifurcação) Whistle Tangerine foi a primeira resposta aos ataques de negação de serviço (DoS) na rede (setembro / outubro de 2016), incluindo: + +- resolução de problemas urgentes de integridade da rede relacionados a códigos de operação com preços reduzidos. + +[Leia o comunicado da Ethereum Foundation](https://blog.ethereum.org/2016/10/18/faq-upcoming-ethereum-hard-fork/) + + + +– [EIP-150](https://eips.ethereum.org/EIPS/eip-150) – _aumenta os custos de gás de códigos de operação que podem ser usados em ataques de spam._ +– [EIP-158](https://eips.ethereum.org/EIPS/eip-158) – _reduz o tamanho do estado removendo muitas contas vazias que foram colocadas no estado a um custo muito baixo, devido a falhas em versões anteriores do protocolo Ethereum._ + + + +--- + +### Bifurcação DAO {#dao-fork} + + + +#### Resumo {#dao-fork-summary} + +O fork (bifurcação) DAO foi em resposta ao [ataque DAO de 2016](https://www.coindesk.com/markets/2016/06/25/understanding-the-dao-attack/), duranto o qual um contrato inseguro de [DAO](/glossary/#dao) foi esvaziado em mais de 3 milhões de ETH em um hack. O fork (bifurcação) moveu os fundos do contrato defeituoso para um [novo contrato](https://etherscan.io/address/0xbf4ed7b27f1d666546e30d74d50d173d20bca754) com uma única função: fazer saque. Qualquer pessoa que tenha perdido fundos poderia sacar 1 ETH para cada 100 tokens DAO em suas carteiras. + +Esse curso de ação foi votado pela comunidade Ethereum. Qualquer titular de ETH pôde votar por meio de uma transação em [uma plataforma de votação](http://v1.carbonvote.com/). A decisão de fazer a bifurcação ultrapassou 85% dos votos. + +Alguns mineradores recusaram a bifurcação porque o incidente da DAO não era um defeito do protocolo. Eles começaram a formar a [Ethereum Classic](https://ethereumclassic.org/). + +[Leia o comunicado da Ethereum Foundation](https://blog.ethereum.org/2016/07/20/hard-fork-completed/) + +--- + +### Homestead {#homestead} + + + +#### Resumo {#homestead-summary} + +O fork (bifurcação) Homestead que olhou para o futuro. Incluiu várias alterações no protocolo e uma alteração na rede que deu ao Ethereum a capacidade de fazer mais atualizações na rede. + +[Leia o comunicado da Ethereum Foundation](https://blog.ethereum.org/2016/02/29/homestead-release/) + + + +– [EIP-2](https://eips.ethereum.org/EIPS/eip-2) – _faz edições no processo de criação do contrato._ +– [EIP-7](https://eips.ethereum.org/EIPS/eip-7) – _adiciona um novo código de operação: `DELEGATECALL`_ +– [EIP-8](https://eips.ethereum.org/EIPS/eip-8) – _introduz os requisitos de compatibilidade devp2p_ + + + + + +## 2015 {#2015} + +### Frontier thawing {#frontier-thawing} + + + +#### Resumo {#frontier-thawing-summary} + +O fork (bifurcação) Frontier Thawing aumentou o limite de [gás](/glossary/#gas) de 5.000 por [bloco](/glossary/#block) e definiu o preço padrão do gás para 51 [gwei](/glossary/#gwei). Isso é permitido para transações – as transações requerem 21.000 em gás. A bomba de dificuldade [](/glossary/#difficulty-bomb) foi introduzida para garantir uma futura bifurcação fixa para a [prova de participação](/glossary/#pos). + +- [Leia o comunicado da Ethereum Foundation](https://blog.ethereum.org/2015/08/04/the-thawing-frontier/) +- [Leia a atualização do protocolo Ethereum 1](https://blog.ethereum.org/2015/08/04/ethereum-protocol-update-1/) + +--- + +### Frontier {#frontier} + + + +#### Resumo {#frontier-summary} + +Frontier era a implementação mais simples do projeto Ethereum. Ela veio após a fase de testes bem-sucedida da Olympic. Ela era destinada a usuários técnicos, especificamente a desenvolvedores. [Blocos](/glossary/#block) tiveram um limite de [gás](/glossary/#gas) de 5.000. Esse período de “escavação” permitiu que os mineradores iniciassem as suas operações e que os primeiros adotantes instalassem os seus clientes sem “pressa”. + +[Leia o comunicado da Ethereum Foundation](https://blog.ethereum.org/2015/07/22/frontier-is-coming-what-to-expect-and-how-to-prepare/) + + + +## 2014 {#2014} + +### Venda de Ether {#ether-sale} + + + +O Ether permaneceu à venda oficialmente por 42 dias. Era possível comprá-lo com BTC. + +[Leia o comunicado da Ethereum Foundation](https://blog.ethereum.org/2014/07/22/launching-the-ether-sale/) + +--- + +### Lançamento do Yellow Paper {#yellowpaper} + + + +O Yellow Paper, de autoria do Dr. Gavin Wood, é uma definição técnica do protocolo Ethereum. + +[Ver o Yellow Paper](https://github.com/ethereum/yellowpaper) + + + +## 2013 {#2013} + +### Lançamento do Whitepaper {#whitepaper} + + + +Este artigo introdutório foi originalmente publicado em 2013 por Vitalik Buterin, fundador da Ethereum, antes do lançamento do projeto em 2015. + + + Whitepaper + diff --git a/public/content/translations/pt-br/nft/index.md b/public/content/translations/pt-br/nft/index.md new file mode 100644 index 00000000000..de263719736 --- /dev/null +++ b/public/content/translations/pt-br/nft/index.md @@ -0,0 +1,94 @@ +--- +title: Tokens não fungíveis (NFT) +description: Uma visão geral de NFTs na Ethereum +lang: pt-br +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: Um logotipo Eth sendo exibido via holograma. +summaryPoint1: Uma forma de representar qualquer coisa única como um ativo baseado no Ethereum. +summaryPoint2: Os NFTs estão dando mais poder do que nunca aos criadores de conteúdo. +summaryPoint3: Desenvolvido por contratos inteligentes na blockchain Ethereum. +--- + +## O que são NFTs? {#what-are-nfts} + +NFTs são tokens que são individualmente exclusivos. Cada NFT contém diferentes propriedades (não-fungíveis) e é comprovadamente escasso. Isto é diferente de tokens como ERC-20, em que cada token em um conjunto é idêntico e tem as mesmas propriedades ('fungível'). Você não se importa com a nota de dólar específica que tem em sua carteira, porque todas são idênticas e têm o mesmo valor. Entretanto, você _se importa_ com o NFT específico que tem, porque todos têm propriedades individuais que os distinguem dos demais ("não fungíveis"). + +A exclusividade de cada NFT permite a tokenização de itens como arte, colecionáveis ou inclusive imóveis, em que um NFT exclusivo específico representa um item real ou digital único específico. A propriedade de um ativo é garantida pelo blockchain Ethereum – ninguém pode alterar o registro de propriedade ou copiar/colar um novo NFT. + + + +## A Internet de ativos {#internet-of-assets} + +Os NFTs e Ethereum resolvem alguns dos problemas que existem na internet atualmente. À medida que tudo se torna mais digital, há uma necessidade de replicar as propriedades de itens físicos, como escassez, exclusividade e prova de propriedade. de uma maneira não controlada por uma organização central. Por exemplo, com os NFTs, você pode ser titular de um mp3 de música que não é específico do aplicativo de música de uma empresa, ou pode ter um identificador de rede social que pode ser vendido ou trocado, mas que não pode ser arbitrariamente retirado de você por um provedor de plataforma. + +Veja como é uma Internet de NFTs comparada à Internet que a maioria de nós usa atualmente... + +### Uma comparação {#nft-comparison} + +| Uma Internet NFT | A Internet hoje | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Você é proprietário dos seus ativos! Apenas você pode vender ou trocá-los. | Você aluga um ativo de uma organização. | +| Os NFTs são digitalmente exclusivos e não há dois NFTs idênticos. | A cópia de uma entidade geralmente não pode ser distinguida da original. | +| A propriedade de um NFT é armazenada no blockchain e qualquer pessoa pode verificar. | Os registros de propriedade de itens digitais são armazenados em servidores controlados por instituições, e você precisa confiar nelas. | +| NFTs são contratos inteligentes no Ethereum. Isso significa que eles podem facilmente ser utilizados em outros contratos inteligentes e aplicativos no Ethereum! | As empresas com itens digitais geralmente exigem uma infraestrutura exclusiva de "jardim murado". | +| Os criadores de conteúdo podem vender o trabalho deles em qualquer lugar e acessar um mercado global. | Os criadores dependem da infraestrutura e da distribuição das plataformas que utilizam. Essas normalmente estão sujeitas a termos de utilização e a restrições geográficas. | +| Os criadores de NFT podem manter os direitos de propriedade sobre seu próprio trabalho e programar os royalties diretamente no contrato do NFT. | As plataformas, como os serviços de streaming de música, retêm a maior parte dos lucros das vendas. | + +## Como funcionam os NFTs? {#how-nfts-work} + +Como qualquer token emitido no Ethereum, NFTs são emitidos por um contrato inteligente. O contrato inteligente está em conformidade com uma das diversas normas NFT (geralmente ERC-721 ou ERC-1155) que definem as funções do contrato. O contrato pode criar ("mintar") NFTs e atribuí-los a um proprietário específico. A propriedade é definida no contrato por meio do mapeamento de NFTs específicos a endereços específicos. O NFT tem um identificador (ID) e normalmente metadados associados que fazem com que o token específico seja exclusivo. + +Quando alguém cria ou minta um NFT, o que a pessoa está fazendo é executar uma função do contrato inteligente que atribui um NFT específico ao respectivo endereço. Essas informações são armazenadas no armazenamento do contrato, que faz parte do blockchain. O criador do contrato pode escrever lógica adicional no contrato, por exemplo, para limitar o fornecimento total ou definir um royalty a ser pago ao criador sempre que um token é transferido. + +## Para que servem os NFTs? {#nft-use-cases} + +NFTs são utilizados para diversos fins, inclusive: + +- comprovar que você participou de um evento +- certificar que você concluiu um curso +- itens que podem ser adquiridos em jogos +- arte digital +- tokenização de ativos reais +- comprovar a sua identidade online +- obter acesso a conteúdo +- emissão de ingressos +- nomes de domínios de internet descentralizados +- garantia colateral em DeFi + +Você pode ser um artista que quer compartilhar o seu trabalho utilizando NFTs, sem perder o controle ou sacrificar os seus lucros porque precisa pagar intermediários. Você pode criar um novo contrato e especificar o número de NFTs, as propriedades e um link para um trabalho artístico específico. Como artista, você pode programar, no contrato inteligente, os royalties que deverá receber (por exemplo, transferir 5% do preço de venda ao proprietário do contrato sempre que um NFT é transferido). Além disso, você pode sempre comprovar que criou os NFTs, pois é o titular da carteira que implantou o contrato. Os seus compradores podem facilmente comprovar que são titulares de um NFT autêntico da sua coleção porque o endereço da carteira deles está associado a um token no seu contrato inteligente. Eles podem usá-lo em todo o ecossistema Ethereum, com certeza da autenticidade. + +Ou, por exemplo, considere um ingresso para um evento esportivo. Assim como o organizador de um evento pode escolher quantos ingressos vender, o criador de um NFT pode decidir quantas réplicas existem. Às vezes, são réplicas exatas, como 5 mil ingressos de acesso geral. Por vezes, são mintados diversos ingressos muito semelhantes, mas cada um ligeiramente diferente, como um ingresso com um assento designado. Eles podem ser comprados e vendidos ponto a ponto, sem precisar pagar processadores de ingressos, e o comprador tem sempre a garantia da autenticidade do ingresso ao verificar o endereço do contrato. + +No site ethereum.org, os NFTs são utilizados para demonstrar que as pessoas contribuíram com o nosso repositório Github ou participaram de reuniões, e temos inclusive o nosso próprio nome de domínio NFT. Se você contribuir no ethereum.org, poderá reivindicar um NFT tipo POAP, protocolo de comprovação de presença. Alguns meetups de cripto usam POAPs como ingresso. [Mais sobre contribuição](/contributing/#poap). + +![blog ethereum.org](./poap.png) + +Este site também tem um nome de domínio alternativo fornecido por NFTs, **ethereum.eth**. Nosso endereço `.org` é gerenciado centralmente por um provedor de nomes de domínio (DNS), enquanto ethereum`. eth` está registrado na Ethereum por meio do Serviço de Nome Ethereum (ENS). Nós somos os titulares e responsáveis pela administração do site. [Confira nosso registro ENS](https://app.ens.domains/name/ethereum.eth) + +[Mais sobre ENS](https://app.ens.domains) + + + +### Segurança do NFT {#nft-security} + +A segurança do Ethereum vem da prova de participação. O sistema foi projetado para desincentivar economicamente ações maliciosas, o que faz com que o Ethereum seja à prova de adulteração. É isso que possibilita a existência dos NFTs. Assim que o bloco que contém a sua transação de NFT é finalizado, um invasor teria que gastar milhões de ETH para alterá-lo. Qualquer pessoa que execute o software Ethereum poderá detectar imediatamente a adulteração desonesta de um NFT, e o agente mal-intencionado será penalizado economicamente e expulso. + +Os problemas de segurança relacionados aos NFTs são, na maioria das vezes, relacionados a golpes de phishing, vulnerabilidades de contratos inteligentes ou erros do usuário (como a exposição inadvertida de chaves privadas), o que faz com que a segurança adequada da carteira seja essencial para os proprietários de NFTs. + + + Mais sobre segurança + + +## Leitura adicional {#further-reading} + +- [Um guia sobre NFTs para iniciantes](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, janeiro de 2020_ +- [Rastreador de NFT Etherscan](https://etherscan.io/nft-top-contracts) +- [Padrão de token ERC-721](/developers/docs/standards/tokens/erc-721/) +- [Padrão de token ERC-1155](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/public/content/translations/pt-br/refi/index.md b/public/content/translations/pt-br/refi/index.md new file mode 100644 index 00000000000..4db9f5c0b7b --- /dev/null +++ b/public/content/translations/pt-br/refi/index.md @@ -0,0 +1,79 @@ +--- +title: Finanças regenerativas (ReFi) +description: Uma visão geral de ReFi e casos de uso atuais. +lang: pt-br +template: use-cases +emoji: ":recycle:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Um sistema econômico alternativo desenvolvido com base em princípios regenerativos +summaryPoint2: Uma tentativa de aproveitar o Ethereum para resolver crises de coordenação em nível global, como, por exemplo, a mudança climática +summaryPoint3: Uma ferramenta para dimensionar drasticamente ativos de benefícios ecológicos, como créditos de carbono verificados +--- + +## O que é ReFi? {#what-is-refi} + +**Finanças regenerativas (ReFi)** é um conjunto de ferramentas e ideias desenvolvidas com base em blockchains, com o objetivo de criar economias regenerativas, em vez de extrativistas ou exploratórias. No final das contas, os sistemas extrativistas esgotam os recursos disponíveis e entram em colapso; sem mecanismos regenerativos, eles não têm resiliência. O sistema ReFi opera com base no pressuposto de que a criação de valor monetário deve ser dissociada da extração insustentável dos recursos do nosso planeta e das nossas comunidades. + +Em vez disso, o ReFi tem como objetivo solucionar problemas ambientais, comunitários ou sociais por meio da criação de ciclos regenerativos. Esses sistemas criam valor para os participantes e, ao mesmo tempo, beneficiam os ecossistemas e as comunidades. + +Um dos fundamentos do sistema ReFi é o conceito de economia regenerativa, criado por John Fullerton do [Capital Institute](https://capitalinstitute.org). Ele propôs oito princípios interconectados que fundamentam a integridade sistêmica: + +![Oito princípios interconectados](refi-regenerative-economy-diagram.png) + +Os projetos ReFi cumprem esses princípios por meio de [contratos inteligentes](/developers/docs/smart-contracts/) e aplicativos de [finanças descentralizadas (DeFi)](/defi/) para incentivar comportamentos regenerativos, como, por exemplo, a recuperação de ecossistemas degradados, e facilitar a colaboração em larga escala em relação a problemas globais, como a mudança climática e a perda de biodiversidade. + +O sistema ReFi também se sobrepõe ao movimento [ciência descentralizada (DeSci)](/desci/), que utiliza Ethereum como plataforma para financiar, criar, revisar, prestar crédito, armazenar e disseminar o conhecimento científico. As ferramentas DeSci podem ser úteis no desenvolvimento de padrões e práticas verificáveis para a implementação e o monitoramento de atividades regenerativas, como o plantio de árvores, a remoção de plástico dos oceanos ou a recuperação de um ecossistema degradado. + +## Tokenização de créditos de carbono {#tokenization-of-carbon-credits} + +O **[mercado voluntário de carbono (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** é um mecanismo para financiar projetos que comprovadamente afetam de maneira positiva as emissões de carbono atuais, seja por meio da redução de emissões ou da remoção da atmosfera de gases de efeito estufa já emitidos. Esses projetos recebem um ativo denominado "créditos de carbono" após serem verificados, que podem ser vendidos para pessoas físicas e jurídicas que querem apoiar a ação climática. + +Além do VCM, há também diversos mercados de carbono exigidos pelo governo ("mercados de conformidade") que visam estabelecer um preço de carbono por meio de leis ou regulamentos em uma jurisdição específica (por exemplo, país ou região), por meio do controle do fornecimento das permissões que são distribuídas. Os mercados de conformidade incentivam os poluidores na respectiva jurisdição a reduzir as emissões, mas não têm a capacidade de remover gases de efeito estufa que já foram emitidos. + +Apesar do respectivo desenvolvimento ao longo das últimas décadas, o VCM continua a enfrentar diversos problemas: + +1. Liquidez altamente fragmentada +2. Mecanismos de transação obscuros +3. Altas taxas +4. Velocidade de negociação muito baixa +5. Falta de escalabilidade + +A transição do VCM para o novo **mercado digital de carbono (DCM)** com base em blockchain pode ser uma oportunidade para melhoria da tecnologia existente para validação, transação e consumo de créditos de carbono. Os blockchains permitem dados publicamente verificáveis, acesso a uma ampla variedade de usuários e mais liquidez. + +Os projetos ReFi utilizam tecnologia blockchain para mitigar muitos dos problemas do mercado tradicional: + +- **A liquidez está concentrada em um pequeno número de pools de liquidez** que podem ser negociados livremente por qualquer pessoa. As grandes organizações, assim como usuários individuais, podem utilizar essas pools sem pesquisas manuais de vendedores/compradores, taxas de participação ou registro prévio. +- **Todas as transações são registradas em blockchains públicos**. Assim que o crédito é disponibilizado no DCM, será sempre possível rastrear o caminho que cada crédito de carbono percorre devido à atividade de negociação. +- **A velocidade da transação é quase instantânea**. A obtenção de grandes quantidades de créditos de carbono por meio dos mercados tradicionais pode demorar dias ou semanas, mas isso pode ser feito no DCM em poucos segundos. +- **A atividade de negociação ocorre sem intermediários**, que cobram altas taxas. Os créditos de carbono digitais representam uma [melhoria de custo de 62% em comparação com créditos tradicionais equivalentes](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne), de acordo com dados de uma empresa de análise. +- **O DCM é dimensionável** e pode atender às demandas de indivíduos e de sociedades multinacionais. + +### Os principais componentes do DCM {#key-components-dcm} + +Quatro principais componentes compõem o cenário atual do DCM: + +1. Registros como [Verra](https://verra.org/project/vcs-program/registry-system/) e [Gold Standard](https://www.goldstandard.org/) garantem que os projetos que criam créditos de carbono são confiáveis. Eles também podem operar os bancos de dados nos quias os créditos de carbono digitais se originam e podem ser transferidos ou utilizados (desativados). + +Uma nova onda de projetos inovadores estão sendo criados com base em blockchains que estão tentando desestabilizar os operadores históricos desse setor. + +2. As carbon bridges ("pontes de carbono"), também conhecidas como tokenizadoras, oferecem tecnologia para representar ou transferir créditos de carbono de registros tradicionais para o DCM. Alguns exemplos importantes incluem [Toucan Protocol](https://toucan.earth/), [C3](https://c3.app/) e [Moss.Earth](https://moss.earth/). +3. Os serviços integrados oferecem créditos de prevenção e/ou remoção de carbono aos usuários finais para que possam reivindicar o benefício ambiental de um crédito e compartilhar seu apoio à ação climática com o mundo. + +Alguns, como [Klima Infinity](https://www.klimadao.finance/infinity) e [Senken](https://senken.io/), oferecem uma ampla variedade de projetos desenvolvidos por terceiros e emitidos de acordo com padrões estabelecidos, como o Verra; outros, como [Nori](https://nori.com/), oferecem apenas projetos específicos, desenvolvidos de acordo com o respectivo padrão de crédito de carbono, que eles emitem e para os quais têm seu próprio mercado exclusivo. + +4. Os trilhos e a infraestrutura subjacentes que facilitam a escalabilidade dos impactos e da eficiência de toda a cadeia de suprimentos do mercado de carbono. A [KlimaDAO](http://klimadao.finance/) oferece liquidez como um bem público (o que permite que qualquer pessoa compre ou venda créditos de carbono a um preço transparente), incentiva o aumento do rendimento dos mercados de carbono e retiradas com recompensas, oferece ferramentas interoperáveis e fáceis de usar para acessar dados, bem como adquirir e retirar uma ampla variedade de créditos de carbono tokenizados. + +## O sistema ReFi além dos mercados de carbono {#refi-beyond} + +Embora atualmente haja uma forte ênfase nos mercados de carbono em geral e na transição do VCM para o DCM especificamente nesse espaço, o termo "ReFi" não se limita estritamente ao carbono. É possível desenvolver e tokenizar outros ativos ambientais, além dos créditos de carbono, o que significa que outras externalidades negativas também podem ser precificadas nas camadas básicas de futuros sistemas econômicos. Além disso, o aspecto regenerativo desse modelo econômico pode ser aplicado a outras áreas, como o financiamento de bens públicos por meio de plataformas de financiamento quadrático, como a [Gitcoin](https://gitcoin.co/). As organizações desenvolvidas com base na ideia de participação aberta e distribuição equitativa de recursos capacitam qualquer pessoa a canalizar fundos para projetos de software de código aberto, bem como projetos educacionais, ambientais e voltados à comunidade. + +Ao desviar a direção do capital das práticas extrativistas para um fluxo regenerativo, os projetos e as empresas que proporcionam benefícios sociais, ambientais ou comunitários - e que talvez não consigam obter financiamentos tradicionais - podem sair do papel e gerar externalidades positivas para a sociedade com muito mais rapidez e facilidade. A transição para esse modelo de financiamento também abre as portas para sistemas econômicos muito mais inclusivos, em que pessoas de todos os grupos demográficos podem se tornar participantes ativos em vez de observadores passivos. O sistema ReFi oferece uma visão do Ethereum como um mecanismo para coordenar ações em relação aos desafios existenciais enfrentados pela nossa espécie e por toda a vida no nosso planeta, como a camada de base de um novo paradigma econômico, possibilitando um futuro mais inclusivo e sustentável nos próximos séculos. + +## Leitura adicional sobre ReFi + +- [Uma visão geral detalhada de moedas de carbono e seu lugar na economia](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) +- [O livro “The Ministry for the Future“ (O Ministério do Futuro) é um romance que retrata o papel de moedas com base em carbono no combate às mudanças climáticas](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) +- [Um relatório detalhado do Taskforce for Scaling Voluntary Carbon Markets](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) +- [A entrada sobre Refi de Kevin Owocki e Evan Miyazono no CoinMarketCap Glossary](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/pt-br/roadmap/account-abstraction/index.md b/public/content/translations/pt-br/roadmap/account-abstraction/index.md similarity index 100% rename from src/content/translations/pt-br/roadmap/account-abstraction/index.md rename to public/content/translations/pt-br/roadmap/account-abstraction/index.md diff --git a/public/content/translations/pt-br/roadmap/beacon-chain/index.md b/public/content/translations/pt-br/roadmap/beacon-chain/index.md new file mode 100644 index 00000000000..1b334ff6b1e --- /dev/null +++ b/public/content/translations/pt-br/roadmap/beacon-chain/index.md @@ -0,0 +1,75 @@ +--- +title: A Beacon Chain +description: Saiba mais sobre a Beacon Chain — a melhoria que introduziu a prova de participação no Ethereum. +lang: pt-br +template: upgrade +image: /upgrades/core.png +alt: +summaryPoint1: A Beacon Chain introduziu a prova de participação no ecossistema Ethereum. +summaryPoint2: Ela foi integrada à cadeia de prova de trabalho da Ethereum original em setembro de 2022. +summaryPoint3: A Beacon Chain introduziu a lógica de consenso e o protocolo de propagação de boatos de bloco que agora protege a Ethereum. +--- + + + A Beacon Chain foi lançada em 1º de Dezembro de 2020 e formalizou a prova de participação como mecanismo de consenso da Ethereum, com a atualização da Fusão em 15 de setembro de 2022. + + +## O que é a Beacon Chain? {#what-is-the-beacon-chain} + +Beacon Chain é o nome do blockchain de prova de participação original que foi lançado em 2020. Ela foi criada para garantir que a lógica de consenso de prova de participação era sólida e sustentável antes de implementá-la na rede principal do Ethereum. Portanto, ela existia paralelamente à prova de trabalho do Ethereum. Beacon Chain era uma cadeia de blocos '"vazios", mas para desativar a prova de trabalho e ativar a prova de participação no Ethereum era necessário instruir a Beacon Chain a aceitar dados de transação de clientes de execução, agrupá-los em blocos e depois organizá-los em um blockchain usando um mecanismo de consenso com base em prova de participação. Ao mesmo tempo, os nós da rede original do Ethereum desligaram sua lógica de consenso, propagação de blocos e mineração, passando essas funções para a Beacon Chain. Este evento ficou conhecido como [The Merge](/roadmap/merge/). Após a Fusão, não havia mais dois blockchains. Em vez disso, havia apenas um Ethereum de prova de participação, que agora exige dois clientes diferentes por nó. Agora, a Beacon Chain é a camada de consenso, uma rede ponto a ponto de clientes de consenso que processa a lógica de consenso e transmissão de blocos, enquanto os clientes originais formam a camada de execução, responsável pela transmissão e execução de transações e pelo gerenciamento do estado do Ethereum. As duas camadas podem se comunicar mutuamente por meio da Engine API. + +## O que a Beacon Chain faz? {#what-does-the-beacon-chain-do} + +Beacon Chain é o nome dado a um registro de contas que orientava e coordenava a rede de [stakers](/participantes/) do Ethereum antes que começassem a validar blocos reais do Ethereum. Entretanto, não processa transações nem interações de contratos inteligentes, pois isso é feito na camada de execução. A Beacon Chain é responsável por atividades como processamento de blocos e atestações, executação do algoritmo de escolha de bifurcação e gerenciamento de recompensas e penalidades. Leia mais em nossa [página de arquitetura de nós](/developers/docs/nodes-and-clients/node-architecture/#node-comparison). + +## O impacto da Beacon Chain {#beacon-chain-features} + +### Participação (staking) {#introducing-staking} + +A Beacon Chain introduziu a [prova de participação](/developers/docs/consensus-mechanisms/pos/) no Ethereum. Isso mantém o Ethereum protegido e os validadores recebem mais ETH no processo. Na prática, você precisará participar com os seus ETH para ativar o software de validador. Como participante, você executa o software que cria e valida novos blocos na cadeia. + +O processo de participação tem um objetivo semelhante ao da [mineração](/developers/docs/mining/), mas tem muitas diferenças. A mineração exigia grandes investimentos iniciais na forma de um hardware potente e consumo de energia, o que resultava em economias de escala e promovia a centralização. A mineração também não tem como garantia uma exigência de bloqueio de ativos, o que limita a capacidade do protocolo de punir os malfeitores após um ataque. + +A transição para a prova de participação tornou o Ethereum consideravelmente mais seguro e descentralizado, em comparação com a prova de trabalho. Quanto mais pessoas participarem da rede, mais descentralizada e segura contra ataques ela será. + +E utilizar a prova de participação como mecanismo de consenso é um componente fundamental para [o Ethereum seguro, ecológico e dimensionável que temos agora](/roadmap/vision/). + + + Se você estiver interessado em se tornar um validador e ajudar a manter o Ethereum seguro, saiba mais sobre o conceito de participação. + + +### Preparação para a fragmentação {#setting-up-for-sharding} + +Desde que a Beacon Chain se fundiu à rede principal original do Ethereum, a comunidade Ethereum começou tentar dimensionar a rede. + +A prova de participação tem a vantagem de manter um registro de todos os produtores de blocos aprovados a qualquer momento, cada um com ETH participado. Esse registro prepara o cenário para a capacidade de dividir e conquistar, mas dividir de forma confiável as responsabilidades específicas da rede. + +Essa responsabilidade contrasta com a prova de trabalho, em que os mineradores não têm nenhuma obrigação com a rede e podem interromper a mineração e desligar o software do nó permanentemente, em um instante, sem repercussão. Também não há registro de proponentes de blocos conhecidos e nenhuma maneira confiável de dividir as responsabilidades da rede com segurança. + +[Mais sobre fragmentação](/roadmap/danksharding/) + +## Relação entre as melhorias {#relationship-between-upgrades} + +As melhorias do Ethereum estão, de certa forma, relacionadas. Vamos recapitular como a Beacon Chain afeta as outras melhorias. + +### Beacon Chain e A Fusão {#merge-and-beacon-chain} + +No começo, a Beacon Chain existia separadamente da rede principal do Ethereum, mas ocorreu uma fusão em 2022. + + + A integração + + +### Fragmentos e a Beacon Chain {#shards-and-beacon-chain} + +As cadeias de fragmentação apenas podem ser introduzidas no ecossistema Ethereum por meio do estabelecimento de um mecanismo de consenso de prova de participação. A Beacon Chain introduziu a participação, que se "fundiu" com a rede principal, abrindo caminho para a fragmentação, de forma a ajudar a dimensionar ainda mais o Ethereum. + + + Cadeias de fragmentos + + +## Leituras adicionais + +- [Mais informações sobre as futuras atualizações do Ethereum](/roadmap/vision) +- [Mais sobre arquitetura de nós](/developers/docs/nodes-and-clients/node-architecture) +- [Mais sobre prova de participação](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/pt-br/roadmap/danksharding/index.md b/public/content/translations/pt-br/roadmap/danksharding/index.md similarity index 100% rename from src/content/translations/pt-br/roadmap/danksharding/index.md rename to public/content/translations/pt-br/roadmap/danksharding/index.md diff --git a/public/content/translations/pt-br/roadmap/future-proofing/index.md b/public/content/translations/pt-br/roadmap/future-proofing/index.md new file mode 100644 index 00000000000..b9ae7f44ea3 --- /dev/null +++ b/public/content/translations/pt-br/roadmap/future-proofing/index.md @@ -0,0 +1,38 @@ +--- +title: Preparação do Ethereum para o futuro +description: Essas melhorias consolidam o Ethereum como a camada de base resiliente e descentralizada para o futuro, seja ele qual for. +lang: pt-br +image: ..//roadmap/roadmap-future.png +alt: "Planejamento Ethereum" +template: roadmap +--- + +Algumas partes do planejamento não são necessariamente obrigatórias para dimensionar ou proteger o Ethereum no curto prazo, mas preparam o Ethereum para a estabilidade e a confiabilidade no futuro. + +## Resistência quântica {#quantum-resistance} + +Parte da criptografia que protege o Ethereum atual será comprometida quando a computação quântica se tornar uma realidade. Embora os computadores quânticos estejam provavelmente a décadas de se tornarem uma ameaça genuína à criptografia moderna, o Ethereum tem sido desenvolvido para ser seguro nos próximos séculos. Isso significa tornar o [Ethereum resistente ao quântico](https://consensys.net/blog/developers/how-will-quantum-supremacy-affect-blockchain/) o mais rápido possível. + +O desafio enfrentado pelos desenvolvedores do Ethereum é que o protocolo atual de prova de participação depende de um esquema de assinatura muito eficiente, conhecido como BLS, para agregar votos em blocos válidos. Esse esquema de assinatura é quebrado por computadores quânticos, mas as alternativas quânticas resistentes não são tão eficientes. + +Os [esquemas de compromisso "KZG"](/roadmap/danksharding/#what-is-kzg) utilizados em diversos lugares no Ethereum para gerar segredos criptográficos são conhecidos por serem vulneráveis ao quântico. Atualmente, isso é contornado por meio da utilização de "configurações confiáveis", em que muitos usuários geram uma aleatoriedade que não pode ser revertida por um computador quântico. Entretanto, a solução ideal seria simplesmente incorporar a criptografia quântica segura. Há duas abordagens principais que poderiam se tornar substitutos eficientes para o esquema BLS: assinatura [com base em STARK](https://hackmd.io/@vbuterin/stark_aggregation) e [em malha](https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-lattice-encryption-326ac66e3175). Essas abordagens ainda estão sendo pesquisadas e desenvolvidas. + + Leia sobre o KZG e as configurações confiáveis + +## Ethereum mais simples e mais eficiente {#simpler-more-efficient-ethereum} + +A complexidade cria oportunidades para bugs ou vulnerabilidades que podem ser explorados por invasores. Portanto, parte do planejamento é simplificar o Ethereum e remover códigos que permaneceram ao longo de diversas melhorias, mas que não são mais necessários ou podem ser aprimorados. Os desenvolvedores conseguem manter e aplicar lógica de uma maneira mais fácil com uma base de código mais enxuta e simples. + +Diversas atualizações serão feitas na [Máquina Virtual do Ethereum (EVM)](/developers/docs/evm) para torná-la mais simples e eficiente. Isso inclui a [remoção do código de operação SELFDESTRUCT](https://hackmd.io/@vbuterin/selfdestruct), um comando raramente utilizado que não é mais necessário e, em algumas circunstâncias, pode ser perigoso de usar, especialmente quando combinado com outras melhorias futuras do modelo de armazenamento do Ethereum. Os clientes Ethereum também ainda são compatíveis com alguns tipos de transações antigas que agora podem ser completamente removidas. A maneira como o gás é calculado também pode ser aprimorada e podem ser introduzidos métodos mais eficientes para a aritmética que serve como base para algumas operações criptográficas. + +Da mesma forma, há atualizações que podem ser feitas em outras partes dos clientes atuais do Ethereum. Um exemplo é que os clientes atuais de execução e consenso utilizam um tipo diferente de compactação de dados. Quando o esquema de compactação for unificado em toda a rede, será muito mais fácil e intuitivo compartilhar dados entre clientes. + +## Progresso atual {#current-progress} + +A maioria das melhorias necessárias para preparar o Ethereum para o futuro ainda está em fase de pesquisa e poderá demorar diversos anos para implementação. Melhorias como a remoção do SELF-DESTRUCT e a harmonização do esquema de compactação utilizado na execução e nos clientes de consenso provavelmente ocorrerão antes da criptografia quântica resistente. + +**Leitura adicional** + +- [Gás](/developers/docs/gas) +- [EVM](/developers/docs/evm) +- [Estruturas de dados](/developers/docs/data-structures-and-encoding) diff --git a/public/content/translations/pt-br/roadmap/index.md b/public/content/translations/pt-br/roadmap/index.md new file mode 100644 index 00000000000..22cdf38bada --- /dev/null +++ b/public/content/translations/pt-br/roadmap/index.md @@ -0,0 +1,117 @@ +--- +title: Planejamento Ethereum +description: O caminho para mais escalabilidade, segurança e sustentabilidade no Ethereum. +lang: pt-br +template: roadmap +image: /roadmap/roadmap-main.png +alt: "Planejamento Ethereum" +summaryPoints: +buttons: + - label: Melhorias adicionais + toId: próximas-alterações + - label: Melhorias anteriores + to: /history/ + variant: descrição +--- + +O Ethereum já é uma plataforma poderosa para a coordenação global, mas ainda está sendo aprimorado. Um conjunto ambicioso de melhorias atualizará o Ethereum da forma atual em uma plataforma totalmente dimensionada e com a máxima resiliência. Essas melhorias estão definidas no planejamento do Ethereum. + +**Para saber mais sobre as melhorias anteriores do Ethereum, acesse a nossa página [Histórico](/history/)** + +## Quais serão as próximas alterações no Ethereum? {#what-changes-are-coming} + +O planejamento do Ethereum descreve as melhorias específicas que serão feitas no protocolo no futuro. Em geral, o planejamento oferecerá os benefícios descritos a seguir aos usuários do Ethereum: + + + + + + + + +## Por que o Ethereum precisa de um planejamento? {#why-does-ethereum-need-a-roadmap} + +O Ethereum recebe melhorias regulares que aprimoram a escalabilidade, a segurança ou a sustentabilidade. Um dos principais pontos fortes do Ethereum é a adaptação à medida que novas ideias surgem a partir de pesquisa e desenvolvimento. A adaptabilidade confere ao Ethereum a flexibilidade para enfrentar os desafios emergentes e acompanhar os avanços tecnológicos mais revolucionários. + + + +O planejamento é, em grande parte, o resultado de anos de trabalho de pesquisadores e desenvolvedores, pois o protocolo é muito técnico, mas qualquer pessoa motivada pode participar. As ideias geralmente começam como discussões em um fórum, como [ethresear.ch](https://ethresear.ch/), [Ethereum magicians](https://www.figma.com/exit?url=https%3A%2F%2Fethereum-magicians.org%2F) ou no servidor Eth R&D no Discord. Elas podem ser respostas a novas vulnerabilidades constatadas, sugestões de organizações que trabalham na camada de aplicativos (como dApps e corretoras) ou de atritos conhecidos junto a usuários finais (como custos ou velocidades de transação). Quando essas ideias amadurecem, elas podem ser apresentadas como [Propostas de melhorias do Ethereum] (https://eips.ethereum.org/). Tudo isso é feito abertamente, e qualquer pessoa da comunidade pode dar sua opinião, a qualquer momento. + +[Mais sobre a governança do Ethereum](/governance/) + + + + +

O que era ETH2?

+ +

O termo "Eth2" era normalmente usado para descrever o futuro do Ethereum antes da mudança para a prova de participação, mas foi eliminado em favor de uma terminologia mais exata. Originalmente, era utilizado para diferenciar a rede Ethereum antes da mudança para a prova de participação e a rede depois, ou às vezes para se referir aos diferentes clientes Ethereum (os clientes de execução eram às vezes chamados de clientes ETH1 e os clientes de consenso eram às vezes chamados de clientes ETH2).

+ +
+ +## O planejamento do Ethereum mudará ao longo do tempo? {#will-ethereums-roadmap-change-over-time} + +Sim, quase certamente. O planejamento é o plano atual de atualização do Ethereum, abrangendo planos futuros e de curto prazo. Esperamos que o planejamento mude à medida que novas informações e tecnologias sejam disponibilizadas. + +Pense no planejamento do Ethereum como um conjunto de intenções para aprimorar o Ethereum. É a melhor hipótese dos principais pesquisadores e desenvolvedores sobre o melhor caminho a seguir no Ethereum. + +## Quando o planejamento será finalizado? {#when-will-the-roadmap-be-finished} + +A Ethereum implementará algumas melhorias nos próximos seis meses (por exemplo, saques de participação); outras são de menos prioridade e provavelmente não serão implementadas nos próximos 5 a 10 anos (por exemplo, resistência à tecnologia quântica). É difícil prever o momento exato de cada melhoria, pois muitos itens do planejamento são trabalhados em paralelo e desenvolvidos em velocidades diferentes. A urgência de uma melhoria também pode mudar ao longo do tempo, dependendo de fatores externos (por exemplo, um avanço repentino no desempenho e na disponibilidade de computadores quânticos pode tornar a criptografia resistente a quânticos mais urgente). + +Uma maneira de pensar sobre o desenvolvimento do Ethereum é por analogia à evolução biológica. É mais provável que uma rede capaz de se adaptar a novos desafios e manter a adequação seja bem-sucedida do que uma resistente a mudanças, embora, à medida que a rede se torne cada vez mais eficiente, dimensionável e segura, sejam necessárias menos alterações no protocolo. + +## Preciso fazer algo quando uma melhoria é implementada? {#do-i-have-to-do-anything-when-there-is-an-upgrade} + +As melhorias normalmente não afetam os usuários finais, exceto ao proporcionar melhores experiências de usuário e um protocolo mais seguro e talvez mais opções de como interagir com o Ethereum. Os usuários finais não são obrigados a participar ativamente de uma melhoria, nem a fazer nada para proteger seus ativos. Os operadores de nós precisarão atualizar seus clientes para se prepararem para uma melhoria. Algumas melhorias podem gerar mudanças para os desenvolvedores de aplicativos. Por exemplo, as melhorias de expiração do histórico podem fazer com que os desenvolvedores de aplicativos obtenham dados históricos de novas fontes. + +## E quanto ao Verge, Splurge etc? {#what-about-the-verge-splurge-etc} + +[Vitalik Buterin propôs uma visão para o planejamento do Ethereum](https://twitter.com/VitalikButerin/status/1588669782471368704) que foi organizada em diversas categorias vinculadas pelos efeitos na arquitetura do Ethereum. Ela inclui: + +- A Fusão: melhorias relacionadas à mudança de prova de trabalho para prova de participação +- A Surge: melhorias relacionadas à escalabilidade por meio de rollups e fragmentação de dados +- A Scourge: melhorias relacionadas à resistência à censura, riscos de protocolo e descentralização do MEV +- A Verge: melhorias relacionadas à verificação de blocos com mais facilidade +- A Purge: melhorias relacionadas à redução dos custos computacionais dos nós em execução e à simplificação do protocolo +- A Splurge: outras melhorias que não se enquadram nas categorias anteriores. + +Decidimos não usar essa terminologia porque queríamos usar um modelo mais simples e mais centrado no usuário. Embora usemos uma linguagem centrada no usuário, a visão permanece idêntica à proposta por Vitalik. + +## E quanto à fragmentação? {#what-about-sharding} + +A fragmentação divide o blockchain do Ethereum de modo que subconjuntos de validadores sejam responsáveis apenas por uma fração do total de dados. Originalmente, essa era a forma de escalabilidade do Ethereum. Entretanto, os rollups da camada 2 se desenvolveram muito mais rápido do que o esperado e já proporcionaram um grande aumento de escala, e proporcionarão muito mais após a implementação do Proto-Danksharding. Isso significa que as "cadeias de fragmentos" não são mais necessárias e foram retiradas do planejamento. + +## Procurando por melhorias técnicas específicas? {#looking-for-specific-technical-upgrades} + +- [Danksharding](/roadmap/danksharding) - o Danksharding torna os rollups da camada 2 muito mais baratos para os usuários ao adicionar "blobs" de dados aos blocos Ethereum. +- [Saques de participação](/staking/withdrawals) - a melhoria Shanghai/Capella habilitou saques de participação no Ethereum, permitindo que as pessoas desbloqueassem seus ETHs participados. +- [Finalidade de um único espaço](/roadmap/single-slot-finality) - em vez de esperar quinze minutos, os blocos poderiam ser propostos e finalizados no mesmo espaço. Isso é mais conveniente para os aplicativos e muito mais difícil de atacar. +- [Separação entre proponente e construtor](/roadmap/pbs) - a divisão das tarefas de construção e proposta de blocos em validadores separados cria uma maneira mais justa, mais resistente à censura e mais eficiente para que o Ethereum chegue a um consenso. +- [Eleição de líder secreto](/roadmap/secret-leader-election) - a criptografia inteligente pode ser utilizada para garantir que a identidade do proponente do bloco atual não seja tornada pública, protegendo-o de determinados tipos de ataque. +- [Abstração da conta](/roadmap/account-abstraction) - a abstração da conta é uma classe de melhorias que oferece suporte a carteiras de contratos inteligentes nativamente no Ethereum, em vez de precisar usar um middleware complexo. +- [Verkle Trees](/roadmap/verkle-trees) - As Verkle Trees são uma estrutura de dados que pode ser utilizada para habilitar clientes sem estado no Ethereum. Esses clientes "sem estado" exigirão uma quantidade mínima de espaço de armazenamento, mas ainda poderão verificar novos blocos. +- [Sem estado](/roadmap/statelessness) - os clientes sem estado poderão verificar novos blocos sem precisar armazenar grandes quantidades de dados. Isso proporcionará todos os benefícios da execução de um nó a apenas uma pequena fração dos custos atuais. diff --git a/public/content/translations/pt-br/roadmap/merge/index.md b/public/content/translations/pt-br/roadmap/merge/index.md new file mode 100644 index 00000000000..a0490f48968 --- /dev/null +++ b/public/content/translations/pt-br/roadmap/merge/index.md @@ -0,0 +1,229 @@ +--- +title: A Fusão +description: Aprenda sobre A Fusão — quando a Rede principal do Ethereum adotou a prova de participação. +lang: pt-br +template: upgrade +image: /upgrades/merge.png +alt: +summaryPoint1: A Rede principal do Ethereum usa prova de participação, mas nem sempre foi esse o caso. +summaryPoint2: A melhoria do mecanismo original de prova de trabalho para prova de participação foi chamada de The Merge, ou seja, A Fusão. +summaryPoint3: A Fusão se refere à fusão original da Rede Principal do Ethereum, com uma cadeia de blocos de prova de participação separada chamada Beacon Chain, agora existente como uma cadeia. +summaryPoint4: A Fusão reduziu o consumo de energia do Ethereum em ~99,95%. +--- + + + A Fusão foi executada em 15 de setembro de 2022. Isto completou a transição do Ethereum para o consenso de prova de participação, depreciando oficialmente a prova de trabalho, e reduzindo o consumo de energia em ~99,95%. + + +## O que foi A Fusão? {#what-is-the-merge} + +A Fusão foi a junção da camada de execução original do Ethereum (a Rede principal que existe desde a [origem](/history/#frontier)) com a sua nova camada de consenso de prova de participação, a Beacon Chain. Ele eliminou a necessidade de mineração que faz uso intensivo de energia e, em vez disso, permitiu que a rede fosse protegida usando participação de ETH. Foi uma etapa realmente emocionante para a realização da visão do Ethereum — mais escalabilidade, segurança e sustentabilidade. + + + +Inicialmente, a [Beacon Chain](/roadmap/beacon-chain/) foi enviada separadamente da [Mainnet](/glossary/#mainnet). A rede principal da Ethereum - com todas as suas contas, saldos, contratos inteligentes e estado da cadeia de blocos - continuou a ser protegida pela [prova de trabalho](/developers/docs/consensus-mechanisms/pow/), mesmo enquanto a Beacon Chain funcionava em paralelo usando a [prova de participação](/developers/docs/consensus-mechanisms/pos/). A Fusão foi quando esses dois sistemas finalmente se uniram, e a prova de trabalho foi permanentemente substituída pela prova de participação. + +Imagine que o Ethereum é uma espaçonave que foi lançada antes que estivesse pronta para uma viagem interestelar. Com a Beacon Chain, a comunidade construiu um novo motor e um casco reforçado. Após muitos testes, chegou a hora de trocar o novo motor a quente pelo antigo em pleno voo. Isso integrou o novo e mais eficiente motor à nave existente, o que lhe permitiu cruzar anos-luz e conquistar o universo. + +## Fusão com a Rede principal {#merging-with-mainnet} + +A prova de trabalho protegeu a rede principal do Ethereum desde sua origem até A Fusão. Isso permitiu que a cadeia de blocos do Ethereum com a qual todos estamos acostumados surgisse em julho de 2015 com todos os seus recursos familiares — transações, contratos inteligentes, contas, etc. + +Ao longo da história do Ethereum, os desenvolvedores se prepararam para uma eventual transição da prova de trabalho para a prova de participação. Em 1 de dezembro de 2020, a Beacon Chain foi criada como uma cadeia de blocos separada da Rede principal, rodando em paralelo. + +A Beacon Chain não estava processando originalmente as transações da Rede principal. Em vez disso, ela estava chegando ao consenso sobre seu próprio estado ao concordar com validadores ativos e seus saldos de conta. Após extensos testes, chegou a hora da Beacon Chain chegar a um consenso sobre os dados do mundo real. Após A Fusão, a Beacon Chain tornou-se o mecanismo de consenso para todos os dados da rede, incluindo transações da camada de execução e saldos de contas. + +A integração representou a mudança oficial para o uso da Beacon Chain como o motor de produção de blocos. A mineração não é mais o meio de produzir blocos válidos. Em vez disso, os validadores da prova de participação adotaram esse papel e agora são responsáveis por processar a validade de todas as transações e propor blocos. + +Nenhuma história foi perdida na Fusão. À medida que a Rede principal se uniu com a Beacon Chain, ela também integrou todo o histórico transacional do Ethereum. + + +Essa transição para a prova de participação mudou o modo como o ether é emitido. Saiba mais sobre Emissão de ether antes de depois do The Merge. + + +### Usuários e titulares {#users-holders} + +**A Fusão não mudou nada para titulares/usuários.** + +_Vale a pena repetir_: como usuário ou titular de ETH, ou qualquer outro ativo digital no Ethereum, bem como participantes não operantes dos nós, **você não precisa fazer nada com seus fundos ou carteira para dar conta da Fusão.** ETH é apenas ETH. Não existe algo como "ETH antigo"/"ETH novo" ou "ETH1"/"ETH2" e as carteiras funcionam exatamente da mesma forma após A Fusão como antes — pessoas dizendo a você o contrário provavelmente são golpistas. + +Apesar de trocar a prova de trabalho, toda a história do Ethereum desde a origem permaneceu intacta e inalterada com a transição para a prova de participação. Quaisquer fundos mantidos em sua carteira antes da Fusão ainda estarão acessíveis após A Fusão. **Nenhuma ação é necessária da sua parte para fazer parte dessa atualização revolucionária.** + +[Mais sobre segurança no Ethereum](/security/#eth2-token-scam) + +### Operadores de nós e desenvolvedores de dapps {#node-operators-dapp-developers} + + + +As principais ações incluem: + +1. Execute ao mesmo tempo um cliente de consenso e um cliente de execução; pontos de extremidade de terceiros para obter dados de execução não funcionam mais desde A Fusão. +2. Autentique os clientes de execução e de consenso com um segredo JWT compartilhado para que eles possam se comunicar com segurança. +3. Defina um endereço de "destinatário das taxas" para receber dicas sobre suas taxas de transação ganhas / MEV. + +Não completar os dois primeiros itens acima fará com que seu nó seja visto como "offline" até que ambas as camadas sejam sincronizadas e autenticadas. + +Não definir um "destinatário de taxa" ainda permitirá que seu validador se comporte como de costume, mas você perderá comissões de taxas não queimadas e qualquer MEV que você teria ganhado em blocos que seu validador propõe. + + + + +Até a integração, um cliente de execução (como Geth, Erigon, Besu ou Nethermind) era suficiente para receber, validar devidamente e propagar blocos sendo transmitidos pela rede. _Após A Fusão_, a validade das transações contidas em uma carga de execução agora também depende da validade do "bloco de consenso" que ele contém. + +Como resultado, um nó completo do Ethereum agora requer um cliente de execução e um cliente de consenso. Esses dois clientes trabalham juntos usando uma nova API do mecanismo. A API do mecanismo requer autenticação usando um segredo JTW, que é fornecido a ambos os clientes, permitindo uma comunicação segura. + +Os principais itens de ação incluem: + +- Instalar um cliente de consenso além de um cliente de execução +- Autenticar clientes de execução e de consenso com um segredo JWT compartilhado para que eles possam se comunicar com segurança uns com os outros. + +Não completar os itens acima resultará com que seu nó pareça estar "offline" até que ambas as camadas sejam sincronizadas e autenticadas. + + + + + +A Fusão veio com alterações no consenso, que também inclui alterações relacionadas a:< + +
    +
  • estrutura de bloco
  • +
  • timing de espaço/bloco
  • +
  • alterações de opcode
  • +
  • fontes de aleatoriedade em cadeia
  • +
  • conceito de cabeçalho seguro e blocos finalizados
  • +
+ +Para obter mais informações, leia esta publicação de Tim Beiko sobre How The Merge Impacts Ethereum’s Application Layer (Como a Fusão afeta a camada de aplicação do Ethereum). + +
+ +## A Fusão e o consumo de energia {#merge-and-energy} + +A Fusão marcou o fim da prova de trabalho para o Ethereum e iniciou a era do Ethereum mais sustentável e ecológico. O consumo de energia do Ethereum reduziu cerca de 99,95%, tornando o Ethereum uma blockchain verde. Descubra mais sobre [Consumo de energia na rede Ethereum](/energy-consumption/). + +## A Fusão e a escalabilidade {#merge-and-scaling} + +The Merge também preparou o terreno para futuras atualizações de escalabilidade que não eram possíveis na prova de trabalho, deixando o Ethereum mais próximo de alcançar a escalabilidade, segurança e sustentabilidade descritas na [Visão do Ethereum](/roadmap/vision/). + +## Concepções erradas sobre A Fusão {#misconceptions} + + + +Existem dois tipos de nós no Ethereum: nós que podem propor blocos e nós que não podem. + +Os nós que propõem blocos são apenas um pequeno número dos nós totais no Ethereum. Esta categoria inclui nós de mineração sob a prova de trabalho (PoW) e nós validadores sobre a prova de participação (PoS). Esta categoria requer comprometer recursos econômicos (como o poder de hash da GPU em prova de trabalho ou ETH em prova de participação) em troca da capacidade de propor, ocasionalmente, o próximo bloco e ganhar recompensas de protocolo. + +Os outros nós na rede (por exemplo, a maioria) não é obrigada a comprometer quaisquer recursos econômicos para além de um computador com 1 a 2 TB de armazenamento disponível e uma conexão com a internet. Esses nós não propõem blocos, mas eles ainda desempenham um papel crítico na segurança da rede, mantendo todos os proponentes de bloco responsáveis, ouvindo novos blocos e verificando sua validade na chegada de acordo com as regras de consenso da rede. Se o bloco for válido, o nó continua a propagá-lo pela rede. Se o bloco é inválido por qualquer motivo, o software do nó irá ignorá-lo como inválido e irá parar sua propagação. + +Qualquer pessoa pode executar um nó que não produz blocos, em qualquer mecanismo de consenso (prova de trabalho ou prova de participação); isso é amplamente incentivado para todos os usuários, se tiverem os meios. A execução de um nó é imensamente valiosa para o Ethereum e oferece benefícios adicionais a qualquer indivíduo executando um, como maior segurança, privacidade e resistência à censura. + +A capacidade de qualquer pessoa de executar seu próprio nó é absolutamente essencial para manter a descentralização da rede Ethereum. + +Mais detalhes sobre como executar seu próprio nó + + + + + +Taxas de gás são um produto da demanda de rede relativa à capacidade da rede. A Fusão depreciou o uso da prova de trabalho, passando para a prova de participação por consenso, mas não alterou significativamente nenhum parâmetro que influencie diretamente a capacidade da rede ou a taxa de transferência. + +Com um planejamento centrado em rollup, os esforços se concentram em dimensionar a atividade do usuário na camada 2 ao habilitar a rede principal da camada 1 como uma camada de estabelecimento descentralizada e segura, otimizada para o armazenamento de dados de rollup para ajudar a fazer com que as transações de rollup sejam exponencialmente mais acessíveis. A transição para a prova de participação é um precursor crítico para a realização desse objetivo. Mais informações sobre gás e taxas. + + + + +A "velocidade" da transação pode ser medida de poucas maneiras, incluindo o tempo para ser incluída em um bloco e o tempo para finalização. Esses dois fatores mudam ligeiramente, mas não de uma forma que os usuários perceberão. + +Historicamente, na prova de trabalho, o objetivo era ter um bloco novo a cada ~13,3 segundos. Já na prova de participação, os espaços ocorrem precisamente a cada 12 segundos, e cada um deles é uma oportunidade para um validador publicar um bloco. A maioria dos espaços tem blocos, mas não necessariamente todos (isto é, um validador está offline). Na prova de participação, os blocos são produzidos ~10% mais frequentemente do que na prova de trabalho. Essa foi uma mudança bastante insignificante e é pouco provável que seja notada pelos usuários. + +A prova de participação introduziu o conceito de finalidade da transação que não existia anteriormente. Na prova de trabalho, a capacidade de reverter um bloco fica exponencialmente mais difícil com cada bloco de passagem minerado em cima de uma transação, mas nunca chega a zero. Sob a prova de participação, os blocos são agrupados em épocas (períodos de tempo de 6,4 minutos contendo 32 chances de blocos) que os validadores votam. Quando uma época termina, os validadores votam se devem considerar a época "justificada". Se os validadores concordarem em justificar a época, ela será finalizada na próxima época. Desfazer transações finalizadas é economicamente inviável, pois exigiria obter e queimar mais de um terço do total de ETH colocado. + + + + + +Inicialmente, após a Fusão, os participantes podiam acessar apenas as comissões de taxas e o MEV obtidos como resultado de propostas de bloco. Essas recompensas são creditadas em uma conta de não participação controlada pelo validador (conhecido como destinatário da taxa), e ficam disponíveis imediatamente. Essas recompensas são separadas das recompensas do protocolo pela execução das obrigações do validador. + +Desde a melhoria da rede Shanghai/Capella, os participantes agora podem designar um endereço de saque para começar a receber pagamentos automáticos de qualquer saldo de participação excedente (ETH superior a 32 de recompensas do protocolo). Essa melhoria também permitiu que um validador desbloqueasse e recuperasse todo o saldo ao sair da rede. + +Mais sobre saques de participação + + + + +Como a melhoria do Shanghai/Capella permitiu saques, os validadores são incentivados a sacar o saldo de participação superior a 32 ETH, já que esses fundos não aumentam o rendimento e são bloqueados. Dependendo da APR (determinada pelo total de ETH participado), eles podem ser incentivados a sair de seus validadores para recuperar todo o saldo ou potencialmente participar ainda mais utilizando as recompensas, de forma a obter mais rendimento. + +Uma advertência importante aqui é que as saídas completas do validador são limitadas pelo protocolo, e apenas um número específico de validadores pode sair por época (a cada 6,4 minutos). Esse limite varia de acordo com o número de validadores ativos, mas chega a aproximadamente 0,33% do total de ETH participado que pode ser sacado da rede em um único dia. + +Isso evita um êxodo em massa dos fundos participados. Além disso, impede que um possível invasor com acesso a uma grande parte do total de ETH participado cometa uma ofensa passível de corte e saia/saque todos os saldos do validador infrator na mesma época, antes que o protocolo possa aplicar a penalidade de corte. + +A APR também é intencionalmente dinâmica, o que permite que um mercado de participantes equilibre o quanto estão dispostos a receber para ajudar a proteger a rede. Se a taxa for muito baixa, os validadores sairão a uma taxa limitada pelo protocolo. Gradualmente, isso aumentará a APR para todos os que permanecerem, atraindo participantes novos ou antigos novamente. + + +## O que aconteceu com o "Eth2"? {#eth2} + +O termo "Eth2" foi descontinuado. Após unir "Eth1" e "Eth2" em uma única cadeia, não há mais necessidade de distinguir entre duas redes Ethereum; agora existe apenas o Ethereum. + +Para diminuir a confusão, a comunidade atualizou estes termos: + +- O "Eth1" agora é a "camada de execução", que lida com transações e execução. +- O "Eth2" é agora a "camada de consenso", que lida com o consenso da prova de participação. + +Estas atualizações de terminologia apenas alteram as convenções de nomenclatura; isso não altera os objetivos ou o roteiro do Ethereum. + +[Saiba mais sobre a renomeação "Eth2"](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) + +## Relação entre as melhorias {#relationship-between-upgrades} + +Todas as melhorias do Ethereum estão, de alguma forma, interrelacionadas. Vamos então recapitular como a fusão se relaciona com as outras melhorias. + +### A Fusão e a Beacon Chain {#merge-and-beacon-chain} + +A Fusão representa a adoção formal do Beacon Chain como a nova camada de consenso para a camada de execução da Rede principal original. Desde A Fusão, os validadores são designados a proteger a Rede principal do Ethereum, e a mineração na [prova de trabalho](/developers/docs/consensus-mechanisms/pow/) não é mais um meio válido de produção em bloco. + +Em vez disso, os blocos são propostos validando nós que colocaram o ETH em troca do direito de participar do consenso. Essas atualizações preparam o cenário para futuras atualizações de escalabilidade, incluindo fragmentação. + + + A Beacon Chain + + +### A Fusão e a atualização do Shanghai {#merge-and-shanghai} + +Para simplificar e maximizar o foco em uma transição bem-sucedida para a prova de participação, a atualização da Fusão não incluiu certos recursos previstos, como a possibilidade de retirar o ETH colocado. Essa funcionalidade foi habilitada separadamente com a melhoria Shanghai/Capella. + +Se tiver curiosidade, assista ao vídeo [What Happens After The Merge](https://youtu.be/7ggwLccuN5s?t=101) (O que ocorre após a Fusão), apresentado por Vitalik no evento ETHGlobal de abril de 2021. + +### A Fusão e a fragmentação {#merge-and-data-sharding} + +Originalmente, o plano era trabalhar na fragmentação antes da Fusão para atender a escalabilidade. No entanto, com a expansão das [soluções de escalabilidade da camada 2](/layer-2/), a prioridade passou a ser a troca da prova de trabalho pela prova de participação. + +Os planos para fragmentação estão evoluindo rapidamente, mas dado o surgimento e o sucesso das tecnologias de camada 2 para escalar a execução de transação, os planos de fragmentação mudaram para encontrar a maneira mais otimizada de distribuir a carga de armazenamento dos dados de chamadas compactadas em contratos rollup, permitindo um crescimento exponencial da capacidade da rede. Isso não seria possível sem uma primeira transição para a prova de participação. + + + Fragmentação + + +## Leitura adicional {#further-reading} + + + + diff --git a/src/content/translations/pt-br/roadmap/merge/issuance/index.md b/public/content/translations/pt-br/roadmap/merge/issuance/index.md similarity index 100% rename from src/content/translations/pt-br/roadmap/merge/issuance/index.md rename to public/content/translations/pt-br/roadmap/merge/issuance/index.md diff --git a/src/content/translations/pt-br/roadmap/pbs/index.md b/public/content/translations/pt-br/roadmap/pbs/index.md similarity index 100% rename from src/content/translations/pt-br/roadmap/pbs/index.md rename to public/content/translations/pt-br/roadmap/pbs/index.md diff --git a/public/content/translations/pt-br/roadmap/scaling/index.md b/public/content/translations/pt-br/roadmap/scaling/index.md new file mode 100644 index 00000000000..9034521319f --- /dev/null +++ b/public/content/translations/pt-br/roadmap/scaling/index.md @@ -0,0 +1,47 @@ +--- +title: Escalar o Ethereum +description: Rollups agrupam transações fora da cadeia, o que reduz os custos para o usuário. Entretanto, a maneira como rollups usam os dados atualmente é muito cara, o que limita a acessibilidade das transações. Proto-Danksharding corrige isso. +lang: pt-br +image: /roadmap/roadmap-transactions.png +alt: "Planejamento Ethereum" +template: roadmap +--- + +A escalabilidade do Ethereum é feita por meio de [camadas 2s](/layer-2/#rollups) (também conhecidas como rollups), que agrupam transações em lote e enviam o resultado para o Ethereum. Embora os rollups sejam até oito vezes mais baratos do que a rede principal do Ethereum, é possível otimizar ainda mais os rollups de forma a reduzir os custos para os usuários finais. Os rollups também dependem de alguns componentes centralizados que os desenvolvedores podem remover à medida que os rollups se desenvolvem. + + +
    +
  • Os rollups atuais são ~3-8x mais baratos do que a camada 1 da Ethereum
  • +
  • ZK-rollups em breve reduzirão as taxas em ~40-100x
  • +
  • As próximas alterações no Ethereum oferecerão ~100-1000x a mais de escalabilidade
  • +
  • Os usuários devem se beneficiar com transações que custam menos do que $0,001
  • +
+
+ +## Tornar os dados mais baratos {#making-data-cheaper} + +Os rollups coletam um grande número de transações, executam elas e enviam os resultados ao Ethereum. Isso gera muitos dados que precisam estar disponíveis abertamente para que qualquer pessoa possa executar as transações por conta própria e verificar se o operador de rollup foi honesto. Se alguém encontrar uma discrepância, pode abrir uma contestação. + +### Proto-Danksharding {#proto-danksharding} + +Os dados de rollup são armazenados no Ethereum permanentemente, o que é caro. Mais de 90% do custo de transação que os usuários pagam em rollups se deve a esse armazenamento de dados. Para reduzir os custos de transação, podemos mover os dados para um novo armazenamento "blob" temporário. Os blobs são mais baratos porque não são permanentes; eles são excluídos do Ethereum assim que não são mais necessários. O armazenamento de dados de rollup no longo prazo passa a ser responsabilidade das pessoas que precisam deles, como operadores de rollup, corretoras, serviços de indexação etc. A adição de transações de blob ao Ethereum faz parte de uma melhoria conhecida como "Proto-Danksharding". Espera-se que seja implementada relativamente em breve, talvez no final de 2023. + +Depois que as transações de blob se tornarem parte do protocolo Ethereum por meio do Proto-Danksharding, será possível adicionar muitos blobs aos blocos Ethereum. Esse será outro aumento substancial (>100x) da taxa de transferência da Ethereum e uma redução dos custos de transação. + +### Danksharding {#danksharding} + +O segundo estágio da expansão dos dados de blob é complicado, porque exige novos métodos para verificar se os dados de rollup estão disponíveis na rede e depende de validadores que realizem a separação das responsabilidades de construção e proposição de blocos. Isso também exige uma maneira de provar criptograficamente que os validadores verificaram pequenos subconjuntos dos dados do blob. + +Essa segunda etapa é conhecida como [“Danksharding”](/roadmap/danksharding/). É provável que a implementação total disso ainda demore muitos anos. O Danksharding depende de outros desenvolvimentos, como a [separação da construção e da proposta de bloco](/roadmap/pbs), e novos designs de rede que permitem que a rede confirme, de maneira eficaz, que os dados estão disponíveis por meio de uma amostragem aleatória de alguns kilobytes por vez, conhecida como [amostragem de disponibilidade de dados (DAS)](/developers/docs/data-availability). + +Mais sobre Danksharding + +## Descentralização de rollups {#decentralizing-rollups} + +[Os rollups](/layer-2) já estão dimensionando o Ethereum. Um [ecossistema sofisticado de projetos de rollup](https://l2beat.com/scaling/tvl) está permitindo que os usuários façam transações de forma rápida e barata, com diversas garantias de segurança. Entretanto, os rollups foram inicializados usando sequenciadores centralizados (computadores que fazem todo o processamento e a agregação das transações antes de enviá-las ao Ethereum). Isso é vulnerável à censura, pois os operadores do sequenciador podem ser sancionados, subornados ou comprometidos de qualquer outra forma. Ao mesmo tempo, os [rollups variam](https://l2beat.com) na maneira como validam os dados recebidos. A melhor maneira é os "provadores" enviarem provas de fraude ou de validação, mas nem todos os rollups estão disponíveis ainda. Mesmo os rollups que usam provas de validação/fraude utilizam um pequeno grupo de provadores conhecidos. Portanto, a próxima etapa essencial na escalabilidade do Ethereum é distribuir a responsabilidade pela execução de sequenciadores e provadores entre mais pessoas. + +Mais sobre rollups + +## Progresso atual {#current-progress} + +É provável que o Proto-Danksharding seja um dos primeiros itens do planejamento a ser implementado. As etapas de computação descentralizada necessárias para configurá-lo já estão em andamento e vários clientes implementaram protótipos para processa os dados do blob. É provável que o Danksharding completo esteja a vários anos de distância, pois depende da conclusão de diversos outros itens do planejamento. É provável que a descentralização da infraestrutura de rollup seja um processo gradual. Há muitos rollups diferentes que estão criando sistemas ligeiramente diferentes e que se descentralizarão totalmente a velocidades diferentes. diff --git a/src/content/translations/pt-br/roadmap/secret-leader-election/index.md b/public/content/translations/pt-br/roadmap/secret-leader-election/index.md similarity index 100% rename from src/content/translations/pt-br/roadmap/secret-leader-election/index.md rename to public/content/translations/pt-br/roadmap/secret-leader-election/index.md diff --git a/public/content/translations/pt-br/roadmap/security/index.md b/public/content/translations/pt-br/roadmap/security/index.md new file mode 100644 index 00000000000..b173e420788 --- /dev/null +++ b/public/content/translations/pt-br/roadmap/security/index.md @@ -0,0 +1,48 @@ +--- +title: Um Ethereum mais seguro +description: O Ethereum é a plataforma de contrato inteligente mais segura e descentralizada que existe. Entretanto, ainda existem melhorias que podem ser feitas para que o Ethereum permaneça resiliente a qualquer nível de ataque no futuro. +lang: pt-br +image: ..//roadmap/roadmap-security.png +alt: "Planejamento Ethereum" +template: roadmap +--- + +Ethereum já é uma plataforma muito segura e descentralizada de contrato inteligente. Entretanto, ainda há melhorias que podem ser feitas para que o Ethereum permaneça resiliente a todos os tipos de ataque no futuro. Isso inclui alterações sutis na maneira como os clientes Ethereum lidam com blocos concorrentes, bem como o aumento da velocidade com que a rede considera os blocos como ["finalizados"](/developers/docs/consensus-mechanisms/pos/#finality) (o que significa que não podem ser alterados sem perdas econômicas extremas para um invasor). + +Há também melhorias que tornam as transações de censura muito mais difíceis, fazendo com que os proponentes de blocos não consigam ver o conteúdo real de seus blocos e novas maneiras de identificar quando um cliente está censurando. Juntas, essas melhorias atualizarão o protocolo de prova de participação para que os usuários, de indivíduos a corporações, confiem imediatamente em seus aplicativos, dados e ativos no Ethereum. + +## Saque de staking {#staking-withdrawals} + +A melhoria da prova de trabalho para a prova de participação começou com a "participação" de ETHs dos pioneiros do Ethereum em um contrato de depósito. Esse ETH é utilizado para proteger a rede. Entretanto, esse ETH ainda não pode ser desbloqueado e devolvido aos usuários. Permitir o saque do ETH é uma parte essencial da melhoria da prova de participação. Além de os saques serem um componente essencial de um protocolo de prova de participação totalmente funcional, permitir saques também é apropriado para a segurança do Ethereum, pois permite que os participantes usem suas recompensas de ETH para outros fins que não sejam de participação. Isso significa que os usuários que querem liquidez não precisam depender de derivativos de participação líquida (LSDs), que podem ser uma força centralizadora no Ethereum. Essa melhoria está programada para ser concluída em 12 de abril de 2023. + +Leia sobre saques + +## Defesa contra ataques {#defending-against-attacks} + +Mesmo após os saques, há melhorias que podem ser feitas no protocolo de [prova de participação](/developers/docs/consensus-mechanisms/pos/) do Ethereum. Uma delas é conhecida como [view-merge](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739), um algoritmo de escolha de bifurcação mais seguro que dificulta certos tipos sofisticados de ataque. + +Reduzir o tempo que o Ethereum leva para finalizar os blocos proporcionaria uma melhor experiência ao usuário e evitaria ataques sofisticados de "reorganização", em que os invasores tentam reorganizar blocos muito recentes para obter lucro ou censurar transações específicas. [**Finalidade de espaço único (SSF)**](/roadmap/single-slot-finality/) é uma maneira de minimizar o atraso na finalização. No momento, há 15 minutos de blocos que um invasor poderia, teoricamente, convencer outros validadores a reconfigurar. Com a SSF, há 0. Os usuários, de indivíduos a aplicativos e corretoras, beneficiam-se da garantia rápida de que as transações não serão revertidas, e a rede se beneficia ao desativar toda uma classe de ataques. + +Leia sobre a finalidade de espaço único + +## Defesa contra a censura {#defending-against-censorship} + +A descentralização evita que indivíduos ou pequenos grupos de validadores se tornem muito influentes. Novas tecnologias de participação podem ajudar a garantir que os validadores do Ethereum permaneçam o mais descentralizados possível e, ao mesmo tempo, defendê-los contra falhas de hardware, software e rede. Isso inclui software que compartilha as responsabilidades do validador entre diversos nós. Isso é conhecido como **tecnologia de validador distribuído (DVT)**. Os pools de participação são incentivados a usar a DVT porque ela permite que diversos computadores participem coletivamente da validação, agregando redundância e tolerância a falhas. Ela também divide as chaves do validador entre diversos sistemas, em vez de ter um único operador executando vários validadores. Isso torna mais difícil para os operadores desonestos coordenarem ataques ao Ethereum. Em geral, a ideia é obter benefícios de segurança ao executar validadores como _comunidades_, em vez de indivíduos. + +Leia sobre a tecnologia de validador distribuído + +A implementação da **separação entre proponente e construtor (PBS)** melhorará drasticamente as defesas internas do Ethereum contra a censura. A PBS permite que um validador crie um bloco e outro o transmita pela rede Ethereum. Isso garante que os ganhos dos algoritmos profissionais de construção de blocos que maximizam o lucro sejam compartilhados de forma mais justa em toda a rede, **impedindo que a participação se concentre** nos participantes institucionais de melhor desempenho ao longo do tempo. O proponente do bloco pode selecionar o bloco mais lucrativo oferecido por um mercado de construtores de blocos. Para censurar, um proponente de bloco geralmente teria que escolher um bloco menos lucrativo, o que seria **economicamente irracional e também óbvio para o restante dos validadores** na rede. + +Há potenciais complementos para a PBS, como transações criptografadas e listas de inclusão, que poderiam melhorar ainda mais a resistência do Ethereum à censura. Isso faz com que o construtor e o proponente do bloco não saibam quais são as transações reais incluídas nos respectivos blocos. + +Leia sobre a separação entre proponente e construtor + +## Proteção dos validadores {#protecting-validators} + +É possível que um invasor experiente identifique os próximos validadores e envie spam para impedi-los de propor blocos. Isso é conhecido como um ataque de **negação de serviço (DoS)**. A implementação da [**eleição de líder secreto (SLE)**](/roadmap/secret-leader-election) protegerá contra esse tipo de ataque ao impedir que os proponentes de blocos possam ser conhecidos antecipadamente. Isso funciona ao embaralhar continuamente um conjunto de compromissos criptográficos que representam os proponentes de blocos candidatos e utilizar a ordem deles para determinar qual validador é selecionado, de forma que apenas os validadores saibam a ordem com antecedência. + +Leia sobre a eleição do líder secreto + +## Progresso atual {#current-progress} + +As melhorias de segurança no planejamento estão em estágios avançados de pesquisa, e a implementação ainda vai demorar. As próximas etapas para view-merge, PBS, SSF e SLE são finalizar uma especificação e começar a criação de protótipos. diff --git a/src/content/translations/pt-br/roadmap/single-slot-finality/index.md b/public/content/translations/pt-br/roadmap/single-slot-finality/index.md similarity index 100% rename from src/content/translations/pt-br/roadmap/single-slot-finality/index.md rename to public/content/translations/pt-br/roadmap/single-slot-finality/index.md diff --git a/src/content/translations/pt-br/roadmap/statelessness/index.md b/public/content/translations/pt-br/roadmap/statelessness/index.md similarity index 100% rename from src/content/translations/pt-br/roadmap/statelessness/index.md rename to public/content/translations/pt-br/roadmap/statelessness/index.md diff --git a/public/content/translations/pt-br/roadmap/user-experience/index.md b/public/content/translations/pt-br/roadmap/user-experience/index.md new file mode 100644 index 00000000000..c252b6ad6f7 --- /dev/null +++ b/public/content/translations/pt-br/roadmap/user-experience/index.md @@ -0,0 +1,36 @@ +--- +title: Melhoria da experiência do usuário +description: Para a maioria das pessoas, ainda é complicado usar o Ethereum. Para incentivar a adoção em massa, o Ethereum precisa reduzir drasticamente as barreiras de entrada. Os usuários devem obter os benefícios do acesso descentralizado, sem permissão e resistente à censura ao Ethereum, mas isso precisa ser tão simples quanto usar um aplicativo web2 tradicional. +lang: pt-br +image: ..//roadmap/roadmap-ux.png +alt: "Planejamento Ethereum" +template: roadmap +--- + +É necessário simplificar o uso do Ethereum, desde o gerenciamento de chaves e carteiras até o início das transações. Para facilitar a adoção em massa, o Ethereum precisa aumentar drasticamente a facilidade de uso, permitindo que os usuários tenham acesso ao Ethereum sem permissão e com resistência à censura, com a experiência sem atrito que ocorre ao utilizar aplicativos Web2. + +## Além das frases sementes {#no-more-seed-phrases} + +As contas Ethereum são protegidas por um par de chaves utilizadas para identificar contas (chave pública) e assinar mensagens (chave privada). Uma chave privada é como uma senha mestra, ela permite acesso completo a uma conta Ethereum. Essa é uma maneira diferente de operar para pessoas que têm mais experiência com bancos e aplicativos Web2 e que gerenciam contas em nome de um usuário. Para que o Ethereum alcance a adoção em massa sem depender de terceiros centralizados, deve haver uma maneira direta e sem atritos para que um usuário assuma a custódia de seus ativos e mantenha o controle dos dados sem precisar compreender criptografia de chave pública-privada e gerenciamento de chaves. + +A solução para isso é usar carteiras de contratos inteligentes para interagir com o Ethereum. As carteiras de contratos inteligentes criam maneiras de proteger as contas em caso de perda ou roubo de chaves oportunidades para uma melhor detecção e defesa contra fraudes e permitem que as carteiras obtenham novas funcionalidades. Embora existam carteiras de contratos inteligentes atualmente, elas são difíceis de desenvolver porque o protocolo Ethereum precisa oferecer um melhor suporte. Esse suporte adicional é conhecido como abstração de conta. + +Mais sobre abstração de contas + +## Nós para todos + +Os usuários que executam nós não precisam confiar em terceiros que forneçam dados, e podem interagir de uma maneira rápida, privada e sem permissão com o blockchain do Ethereum. Entretanto, a execução de um nó atualmente exige conhecimento técnico e espaço considerável em disco, o que significa que muitas pessoas precisam confiar em intermediários. + +Há várias melhorias que tornarão a execução dos nós muito mais fácil e sem a necessidade de muitos recursos. A forma como os dados são armazenados será alterada para usar uma estrutura mais eficiente em termos de espaço, conhecida como **Verkle Tree**. Além disso, com [statelessness](/roadmap/statelessness) (sem estado) ou [expiração de dados](/roadmap/statelessness/#data-expiry), os nós do Ethereum não precisarão armazenar uma cópia de todos os dados de estado do Ethereum, o que reduz drasticamente os requisitos de espaço em disco rígido. [Os nós leves](/developers/docs/nodes-and-clients/light-clients/) oferecerão muitos benefícios da execução de um nó completo, mas podem ser executados facilmente em celulares ou em aplicativos simples de navegador. + +Leia sobre Verkle Trees + +Com essas melhorias, as barreiras à execução de um nó são erradicadas de maneira eficaz. Os usuários se beneficiarão do acesso seguro e sem permissão ao Ethereum sem precisar sacrificar espaço perceptível em disco ou CPU no computador ou celular e, ao usarem aplicativos, não precisarão depender de terceiros para obter acesso a dados ou à rede. + +## Progresso atual {#current-progress} + +As carteiras de contratos inteligentes já estão disponíveis, mas são necessárias mais melhorias para torná-las o mais descentralizadas e sem permissão possível. A EIP-4337 é uma proposta desenvolvida, que não exige alteração no protocolo do Ethereum. O principal contrato inteligente necessário para a EIP-4337 foi implementado em março de 2023. + +A ausência completa de estado ainda está em fase de pesquisa e provavelmente levará vários anos para ser implementada. Há vários marcos no caminho para uma condição total sem estado, incluindo a expiração de dados, que podem ser implementados mais cedo. Outros itens do planejamento, como [Verkle Trees](/roadmap/verkle-trees/) e a [separação entre proponente e construtor](/roadmap/pbs/), precisam ser concluídas primeiro. + +As redes de testes de Verkle Trees já estão em funcionamento, e a próxima fase é a execução de clientes habilitados para Verkle Trees em redes de testes privadas e, em seguida, públicas. Você pode ajudar a acelerar o progresso por meio da implantação de contratos nas redes de testes ou da execução de clientes de rede de testes. diff --git a/src/content/translations/pt-br/roadmap/verkle-trees/index.md b/public/content/translations/pt-br/roadmap/verkle-trees/index.md similarity index 100% rename from src/content/translations/pt-br/roadmap/verkle-trees/index.md rename to public/content/translations/pt-br/roadmap/verkle-trees/index.md diff --git a/src/content/translations/pt-br/security/index.md b/public/content/translations/pt-br/security/index.md similarity index 100% rename from src/content/translations/pt-br/security/index.md rename to public/content/translations/pt-br/security/index.md diff --git a/public/content/translations/pt-br/smart-contracts/index.md b/public/content/translations/pt-br/smart-contracts/index.md new file mode 100644 index 00000000000..97afe344015 --- /dev/null +++ b/public/content/translations/pt-br/smart-contracts/index.md @@ -0,0 +1,84 @@ +--- +title: Contratos inteligentes +description: Uma introdução não técnica aos contratos inteligentes +lang: pt-br +--- + +# Introdução aos contratos inteligentes {#introduction-to-smart-contracts} + +Os contratos inteligentes são os elementos fundamentais da camada de aplicativos Ethereum. Eles são programas informáticos armazenados no blockchain que seguem a lógica "se isso, então aquilo" e têm a garantia de serem executados de acordo com as regras definidas pelo respectivo código, que não pode ser alterado depois de criado. + +Nick Szabo cunhou o termo "contrato inteligente". Em 1994, ele escreveu [uma introdução ao conceito](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html) e, em 1996, [uma análise sobre o que os contratos inteligentes poderiam fazer](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). + +Szabo imaginou um mercado digital em que processos automáticos e criptograficamente seguros permitiriam a ocorrência de funções de negócio e transações sem intermediários confiáveis. Os contratos inteligentes no Ethereum colocam em prática essa visão. + +## Confiança em contratos convencionais {#trust-and-contracts} + +Um dos maiores problemas de um contrato tradicional é a necessidade de se ter indivíduos confiáveis para acompanhar os resultados do contrato. + +Exemplo: + +Alice e Bob estão fazendo uma corrida de bicicleta. Digamos que Alice aposte R$ 10 com Bob que ela vencerá corrida. Bob está confiante que será o vencedor e aceita a aposta. No final, Alice termina a corrida bem à frente de Bob e vence. Mas Bob se recusa a pagar a aposta, alegando que Alice deve ter trapaceado. + +Esse exemplo ilustra o problema com qualquer contrato não inteligente. Mesmo que as condições do contrato sejam cumpridas (ou seja, você é o vencedor da corrida), você ainda precisa confiar que a outra pessoa cumprirá o contrato (ou seja, pagar a aposta). + +## Uma máquina de vendas digitais {#vending-machine} + +Uma metáfora simples de um contrato inteligente é como se fosse uma máquina de venda automática, que funciona de forma semelhante a um contrato inteligente – você insere algo específico e isso garante um produto predeterminado. + +- Você seleciona um produto +- A máquina de venda automática mostra o preço +- Você paga o preço +- A máquina de venda automática confirma que você pagou o valor correto +- A máquina de venda automática entrega o item comprado + +A máquina de venda automática só entregará o produto após o cumprimento de todas as exigências. Se você não selecionar um produto ou não inserir dinheiro suficiente, a máquina de venda automática não entrega o produto. + +## Execução automática {#automation} + +O principal benefício de um contrato inteligente é que ele executa, de maneira determinística, um código inequívoco quando determinadas condições são atendidas. Não há necessidade de esperar que um ser humano interprete ou negocie o resultado. Isso elimina a necessidade de intermediários confiáveis. + +Por exemplo, você pode redigir um contrato inteligente que mantenha fundos em depósito para uma criança e que permitirá que ela retire os fundos após uma data específica. Se a criança tentar retirar os fundos antes dessa data, o contrato inteligente não permitirá. Ou você pode redigir um contrato que entrega automaticamente uma versão digital do documento de propriedade de um carro assim que você pagar o valor à concessionária. + +## Resultados previsíveis {#predictability} + +Os contratos tradicionais são ambíguos porque dependem de seres humanos para interpretá-los e implementá-los. Por exemplo, dois juízes podem interpretar um contrato de forma diferente, o que pode resultar na tomada de decisões incoerentes e resultados desproporcionais. Os contratos inteligentes eliminar essa possibilidade. Em vez disso, os contratos inteligentes são executados precisamente com base nas condições escritas no código do contrato. Essa exatidão significa que, se as circunstâncias forem idênticas, o contrato inteligente produzirá o mesmo resultado. + +## Registro público {#public-record} + +Os contratos inteligentes são úteis para auditorias e rastreamento. Como os contratos inteligentes do Ethereum estão em um blockchain público, qualquer pessoa pode rastrear instantaneamente as transferências de ativos e outras informações relacionadas. Por exemplo, você pode verificar se alguém enviou fundos para o seu endereço. + +## Proteção de privacidade {#privacy-protection} + +Os contratos inteligentes também protegem a sua privacidade. Como o Ethereum é uma rede pseudônima (as suas transações são vinculadas publicamente a um único endereço criptográfico, não à sua identidade), você pode proteger a sua privacidade de observadores. + +## Termos visíveis {#visible-terms} + +Por último, como os contratos tradicionais, você pode verificar o conteúdo de um contrato inteligente antes de assiná-lo (ou interagir com ele de outra forma). A transparência de um contrato inteligente garante que qualquer pessoa pode analisar o conteúdo. + +## Casos de uso de contrato inteligente {#use-cases} + +Os contratos inteligentes podem fazer essencialmente qualquer coisa que os programas informáticos podem fazer. + +Eles podem realizar cálculos, criar moeda, armazenar dados, mintar NFTs, enviar comunicações e inclusive gerar gráficos. Apresentamos alguns exemplos reais e populares: + +- [Stablecoins](/stablecoins/) +- [Criação e distribuição de ativos digitais únicos](/nft/) +- [Uma negociação de moeda automática e aberta](/get-eth/#dex) +- [Jogos descentralizados](/dapps/?category=gaming) +- [Uma apólice de seguro que paga automaticamente](https://etherisc.com/) +- [Um padrão que permite que pessoas criem moedas personalizadas e interoperáveis](/developers/docs/standards/tokens/) + +## Você é o tipo de pessoa que aprende mais com recursos visuais? {#visual-learner} + +Assista à explicação de contratos inteligentes disponibilizada pelo canal Finematics: + + + +## Leitura adicional {#further-reading} + +- [Como os Contratos Inteligentes irão mudar o mundo](https://www.youtube.com/watch?v=pA6CGuXEKtQ) +- [Contratos Inteligentes: A Tecnologia Blockchain que substituirá os Advogados](https://blockgeeks.com/guides/smart-contracts/) +- [Contratos inteligentes para desenvolvedores](/developers/docs/smart-contracts/) +- [Aprenda a escrever contratos inteligentes](/developers/learning-tools/) +- [Dominando o Ethereum – O que é um Contrato Inteligente?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/pt-br/social-networks/index.md b/public/content/translations/pt-br/social-networks/index.md new file mode 100644 index 00000000000..0731931fc16 --- /dev/null +++ b/public/content/translations/pt-br/social-networks/index.md @@ -0,0 +1,120 @@ +--- +title: Redes sociais descentralizadas +description: Uma visão geral das redes sociais descentralizadas no Ethereum +lang: pt-br +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: /ethereum-learn.png +summaryPoint1: Plataformas baseadas em blockchain para interação social, criação e distribuição de conteúdo. +summaryPoint2: As redes de mídia social descentralizadas protegem a privacidade do usuário e aumentam a segurança dos dados. +summaryPoint3: Tokens e NFTs criam formas de monetizar conteúdo. +--- + +As redes sociais desempenham um papel enorme em nossas comunicações e interações diárias. Entretanto, o controle centralizado dessas plataformas criou muitos problemas: violações de dados, interrupções de servidores, "desplataformalizações", censuras e violações de privacidade são algumas das ações negativas que as mídias sociais costumam executar. Para combater esses problemas, os desenvolvedores estão construindo redes sociais no Ethereum. As redes sociais descentralizadas podem resolver muitos dos problemas das plataformas de redes sociais tradicionais e melhorar a experiência geral dos usuários. + +## O que são as redes sociais descentralizadas? {#what-are-decentralized-social-networks} + +As redes sociais descentralizadas são plataformas baseadas em blockchain que permitem que os usuários troquem informações, assim como publicar e distribuir conteúdo para o público. Como esses aplicativos são executados no blockchain, eles são capazes de ser descentralizados e resistentes à censura e controle indevido. + +Muitas redes sociais descentralizadas existem como alternativas aos serviços já estabelecidos de mídia social, como Facebook, LinkedIn, Twitter e Medium. Mas as redes sociais baseadas em blockchain têm vários recursos que as colocam à frente das plataformas sociais tradicionais. + +### Como funcionam as redes sociais descentralizadas? {#decentralized-social-networks-overview} + +As redes sociais descentralizadas são uma classe de [aplicativos descentralizados (dapps)](/dapps/)—aplicativos sustentados por [contratos inteligentes](/developers/docs/smart-contracts/) a> implantados no blockchain. O código do contrato serve como back-end para esses aplicativos e define sua lógica de negócios. + +As plataformas tradicionais de mídia social dependem de bancos de dados para armazenar informações do usuário, códigos do programa e outras formas de dados. Mas isso cria pontos únicos de falha e introduz um risco significativo. Por exemplo, os servidores do Facebook inacreditavelmente [ficaram off-line por horas](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) no ano passado, impedindo o acesso dos usuários na plataforma. + +As redes sociais descentralizadas existem em uma rede ponto a ponto que compreende milhares de nós em todo o mundo. Mesmo que alguns nós falhem, a rede funcionará ininterruptamente, tornando os aplicativos resistentes a falhas e interrupções. + +Usando sistemas de armazenamento descentralizados como o [ Sistema Interplanetário de Arquivos (IPFS)](https://ipfs.io/), as redes sociais criadas no Ethereum podem proteger as informações do usuário contra exploração e uso malicioso. Ninguém venderá suas informações pessoais para anunciantes, nem mesmo os hackers poderão roubar seus dados confidenciais. + +Muitas plataformas sociais baseadas em blockchain possuem tokens nativos que potencializam a monetização na ausência de receita de publicidade. Os usuários podem comprar esses tokens para acessar determinados recursos, concluir compras no aplicativo ou dar gorjetas a seus criadores de conteúdo favoritos. + +## Benefícios das redes sociais descentralizadas {#benefits} + +1. As redes sociais descentralizadas são resistentes à censura e abertas a todos. Isso significa que os usuários não podem ser banidos, '"desplataformados" ou restritos arbitrariamente. + +2. As redes sociais descentralizadas são construídas em ideais de código aberto e disponibilizam, para inspeção pública, o código-fonte para aplicativos. Ao eliminar a implementação de algoritmos opacos comuns nas mídias sociais tradicionais, as redes sociais baseadas em blockchain podem alinhar os interesses de usuários e criadores de plataformas. + +3. As redes sociais descentralizadas eliminam o “intermediário”. Os criadores de conteúdo têm propriedade direta sobre seu conteúdo e se envolvem diretamente com seguidores, fãs, compradores e outras partes, com nada além de um contrato inteligente entre eles. + +4. Como os dapps executados na rede Ethereum, que é sustentada por uma rede global de nós ponto a ponto, as redes sociais descentralizadas são menos suscetíveis ao tempo de inatividade e interrupções do servidor. + +5. As plataformas sociais descentralizadas oferecem uma estrutura de monetização aprimorada para criadores de conteúdo por meio de tokens não fungíveis (NFTs), pagamentos de criptomoedas pelo aplicativo e muito mais. + +6. As redes sociais descentralizadas proporcionam aos usuários um alto nível de privacidade e anonimato. Por exemplo, um indivíduo pode entrar em uma rede social baseada em Ethereum usando um perfil ou carteira ENS – sem ter que compartilhar informações de identificação pessoal (PII), como nomes, endereços de e-mail etc. + +7. As redes sociais descentralizadas contam com armazenamento descentralizado, e não com bancos de dados centralizados, sendo consideravelmente melhores para proteger os dados do usuário. + +## Redes sociais descentralizadas no Ethereum {#ethereum-social-networks} + +A rede Ethereum se tornou a ferramenta preferida para desenvolvedores que criam mídias sociais descentralizadas devido à popularidade de seus tokens (ERC-20/ERC-721) e sua enorme base de usuários. Veja alguns exemplos de redes sociais baseadas no Ethereum: + +### Peepeth {#peepeth} + +[Peepeth](https://peepeth.com/) é uma plataforma de microblogs semelhante ao Twitter. Ela é executada no blockchain Ethereum e usa IPFS para armazenar dados do usuário. + +Os usuários podem enviar mensagens curtas chamadas "Peeps", que não podem ser excluídas ou modificadas. Você pode coletar dicas ou dar dicas a qualquer pessoa na plataforma em ether (ETH) sem sair do aplicativo. + +### Mirror {#mirror} + +[Mirror](https://mirror.xyz/) é uma plataforma de escrita habilitada para web3 que visa ser descentralizada e de propriedade do usuário. Os usuários podem ler e escrever gratuitamente na Mirror simplesmente conectando suas carteiras. Os usuários também podem coletar textos e assinar seus escritores favoritos. + +As postagens publicadas na Mirror são armazenadas permanentemente no Arweave, uma plataforma de armazenamento descentralizada, e podem ser cunhadas como [tokens não fungíveis (NFTs)](/nft/) colecionáveis, conhecidos como NFTs de Escrita. NFTs de Escrita são totalmente gratuitos para os escritores criarem, e a coleta acontece em uma camada 2 da Ethereum – tornando as transações baratas, rápidas e ecologicamente corretas. + +### MINDS {#minds} + +[MINDS](https://www.minds.com/) é uma das redes sociais descentralizadas mais utilizadas. Funciona como o Facebook e já conseguiu milhões de usuários. + +Os usuários usam o token ERC-20 nativo $MIND da plataforma para pagar por itens. Os usuários também podem ganhar tokens $MIND publicando conteúdo popular, contribuindo para o ecossistema e indicando outras pessoas para a plataforma. + +## Redes sociais Web2 no Ethereum {#web2-social-networks-and-ethereum} + +As plataformas sociais nativas [Web3](/web3/) não são as únicas que tentam incorporar a tecnologia blockchain nas mídias sociais. Muitas plataformas centralizadas também planejam integrar o Ethereum em sua infraestrutura: + +### Reddit {#reddit} + +O Reddit tem [pontos de comunidade divulgados](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users), que são [tokens ERC-20](/developers/docs/standards/tokens/erc-20/) que os usuários podem ganhar postando conteúdo de qualidade e contribuindo para comunidades on-line (subreddits). Você pode resgatar esses tokens em um subreddit para [obter privilégios e vantagens exclusivos](https://www.reddit.com/community-points/). Para este projeto, o Reddit está trabalhando com o Arbitrum, um rollup de [camada 2](/layer-2/) projetado para dimensionar transações Ethereum. + +O programa já está ativo, com o subreddit r/CryptoCurrency [executando sua versão de pontuações comunitária chamada "Moons"](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Segundo a descrição oficial, Moons “recompensa pôsteres, comentaristas e moderadores por suas contribuições ao subreddit” Como esses tokens estão no blockchain (usuários os recebem em carteiras), eles são independentes do Reddit e não podem ser retirados. + +Depois de concluir uma fase beta na rede de testes Rinkeby, os Pontos da Comunidade Reddit agora estão no [Arbitrum Nova](https://nova.arbitrum.io/), uma cadeia de blocos que combina propriedades de um [cadeia lateral](/developers/docs/scaling/sidechains/) e um [rollup otimista](/developers/docs/scaling/optimistic-rollups/). Além de usar os pontos comunitários para desbloquear recursos especiais, os usuários também podem trocá-los por moeda fiduciária em trocas. Além disso, a quantidade de pontuações comunitárias que um usuário possui determina sua influência no processo de tomada de decisão na comunidade. + +### Twitter {#twitter} + +Em janeiro de 2021, o Twitter Blue [lançou suporte para NFTs](https://mashable.com/article/twitter-blue-nft-profile-picture), permitindo que os usuários conectem suas carteiras e exibam NFTs como fotos de perfil. No momento da redação deste texto, a empresa de mídia social também [anunciou planos](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) para criar uma rede social descentralizada no futuro. + +### Instagram {#instagram} + +Em maio de 2022, o [Instagram anunciou suporte para NFTs](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) no Ethereum e Polygon. Os usuários podem publicar NFTs diretamente no Instagram conectando sua carteira Ethereum. + +## Utilize redes sociais descentralizadas {#use-decentralized-social-networks} + +- **[Status.im](https://status.im/)** - _Status é um aplicativo de mensagens seguro que usa um protocolo ponto a ponto de código aberto e criptografia de ponta a ponta para proteger suas mensagens de terceiros._ +- **[Mirror.xyz](https://mirror.xyz/)** - _Mirror é uma plataforma de publicação descentralizada e de propriedade do usuário, construída no Ethereum para que os usuários financiem ideias, monetizem conteúdo e construam comunidades de alto valor._ +- **[Protocolo Lens](https://lens.xyz/)** - _Protocolo Lens é um gráfico social combinável e descentralizado que ajuda os criadores a se apropriarem de seu conteúdo onde quer que estejam no ambiente digital da internet descentralizada._ +- **[Farcaster](https://farcaster.xyz/)** — _Farcaster é uma rede social suficientemente descentralizada. É um protocolo aberto que pode oferecer suporte a muitos clientes, como o e-mail._ + +## Leitura adicional {#further-reading} + +### Artigos {#articles} + +- [Descentralizando mídias sociais: um guia para a pilha social da Web3](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) — _Coinbase Ventures _ +- [A Web3 mantém a promessa de redes sociais descentralizadas e sustentadas pela comunidade.](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ +- [Uma visão geral do cenário de mídia social do Blockchain](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ +- [Como o Blockchain pode resolver a privacidade das mídias sociais](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Prableen Bajpai_ +- [As redes de mídia social estão chegando ao Blockchain](https://businesstechguides.co/what-are-decentralized-social-networks) — \_Emmanuel Awosika< /em> +- [Descentralização suficiente para as redes sociais](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Varun Srinivasan_ + +### Vídeos {#videos} + +- [Mídia social descentralizada explicada](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ +- [DeSo Blockchain quer descentralizar as mídias sociais](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ +- [O futuro das mídias sociais descentralizadas com Balaji Srinivasan, Vitalik Buterin, Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ + +### Comunidades {#communities} + +- [Servidor do Discord da Status](https://discord.com/invite/3Exux7Y) +- [Servidor do Discord da Mirror](https://discord.com/invite/txuCHcE8wV) +- [Subreddit r/CryptoCurrency](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/pt-br/staking/dvt/index.md b/public/content/translations/pt-br/staking/dvt/index.md similarity index 100% rename from src/content/translations/pt-br/staking/dvt/index.md rename to public/content/translations/pt-br/staking/dvt/index.md diff --git a/public/content/translations/pt-br/staking/pools/index.md b/public/content/translations/pt-br/staking/pools/index.md new file mode 100644 index 00000000000..ec4ae2e94f1 --- /dev/null +++ b/public/content/translations/pt-br/staking/pools/index.md @@ -0,0 +1,85 @@ +--- +title: Staking em pool (combinado) +description: Uma visão geral de como começar com pools de staking de ETH +lang: pt-br +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-pool.png +alt: Leslie, o rinoceronte, nadando na piscina +sidebarDepth: 2 +summaryPoints: + - Faça staking e ganhe recompensas com qualquer quantia de ETH unindo forças com outros + - Pule a parte difícil e delegue a operação de validação a terceiros + - Mantenha os tokens participados na sua carteira +--- + +## O que são pools de participação? {#what-are-staking-pools} + +Os pools de participação são uma abordagem colaborativa para permitir que muitos com quantidades menores de ETH obtenham os 32 ETH necessários para ativar um conjunto de chaves de validador. A funcionalidade de pooling não é nativamente suportada no protocolo, então soluções foram construídas separadamente para resolver essa necessidade. + +Alguns pools operam usando contratos inteligentes, onde os fundos podem ser depositados em um contrato, que gerencia e controla com necessidade mínima de confiança seu stake, e lhe emite um token que representa esse valor. Outros pools podem não envolver contratos inteligentes e, em vez disso, são mediadas fora da cadeia. + +## Por que fazer participação com um pool? {#why-stake-with-a-pool} + +Além dos benefícios delineados em nossa [introdução ao staking](/staking/), fazer stake em um pool traz alguns benefícios distintos. + + + + + + + + + +## O que considerar {#what-to-consider} + +Staking delegado ou em pools não é nativamente suportado pelo protocolo Ethereum, mas dada a demanda para que os usuários façam staking com menos de 32 ETH, um número crescente de soluções para servir esta demanda foram construídas. + +Cada pool, assim como as ferramentas ou contratos inteligentes que eles usam, foram construídos por diferentes times, e cada um tem seus benefícios e riscos. Os pools permitem que os usuários troquem ETH por um token representativo do ETH em depósito. O token é útil porque permite que os usuários troquem qualquer quantidade de ETH por uma quantidade equivalente de um token com rendimento que gera um retorno das recompensas de staking (participação) aplicadas ao ETH subjacente participado (e vice-versa) em corretoras descentralizadas, embora o ETH real permaneça em staking na camada de consenso. Isso significa que a troca de um produto ETH com rendimento em participação e “ETH bruto” é rápido, fácil e não apenas disponível em múltiplos de 32 ETH. + +Entretanto, esses tokens de ETH participado tendem a criar comportamentos semelhantes a cartéis, em que uma grande quantidade de ETH participado acaba sob o controle de algumas organizações centralizadas, em vez de ser distribuída entre diversos indivíduos independentes. Isso cria condições para censura ou extração de valor. O padrão ouro para participação deveria sempre ser indivíduos executando validadores em seu próprio hardware sempre que possível. + +[Mais sobre os riscos de tokens em participação](https://notes.ethereum.org/@djrtwo/risks-of-lsd). + +Os indicadores de atributo são usados abaixo para sinalizar notáveis pontos fortes ou fracos que um staking pool listado pode ter. Utilize esta seção como referência de como definimos estes atributos enquanto você está escolhendo participar de um pool. + + + +## Explore pools de participação {#explore-staking-pools} + +Há uma variedade de opções disponíveis para ajudá-lo na sua configuração. Use os indicadores acima para guiá-lo pelas ferramentas abaixo. + + + + + +Observe a importância de escolher um serviço que leve a sério a [diversidade de clientes](/developers/docs/nodes-and-clients/client-diversity/), pois isso aumenta a segurança da rede e limita seu risco. Os serviços que têm evidências de limitação do uso do cliente majoritário são indicados com "diversidade do cliente de execução" e "diversidade do cliente de consenso". + +Alguma sugestão de ferramenta de participação que não mencionamos? Leia a nossa [política de listagem de produtos](/contributing/adding-staking-products/) para ver se a sugestão é pertinente e para enviá-la para análise. + +## Perguntas frequentes {#faq} + + +Normalmente, os tokens de participação ERC-20 são emitidos para participantes (stakers) e representam o valor de ETH participado, mais as recompensas. Lembre-se de que diferentes pools distribuirão recompensas de staking para seus usuários por meio de métodos minimamente diferentes, mas esse é o assunto comum. + + + +Agora mesmo! A atualização da rede Shanghai/Capella ocorreu em abril de 2023 e introduziu saques de staking. As contas dos validadores que dão suporte aos pools de staking agora têm a capacidade de sair e sacar ETH para o endereço de saque designado. Isso permite resgatar sua parte do stake para o ETH subjacente. Verifique com o seu provedor para ver como eles dão suporte a essa funcionalidade. + +Como alternativa, os pools que utilizam um token de participação ERC-20 permitem que os usuários negociem esse token no mercado aberto, o que possibilita a venda da posição de participação, com "saque" sem realmente remover o ETH do contrato de participação. + +Mais sobre retirada de participação + + + +Existem muitas semelhanças entre essas opções de staking em pools agrupadas e trocas centralizadas, como a capacidade de fazer entrega de pequenas quantidades de ETH e fazê-los juntar para ativar validadores. + +Ao contrário das corretoras centralizadas, muitas outras opções de participação em pool utilizam contratos inteligentes e/ou tokens em participação, que normalmente são tokens ERC-20 que podem ser mantidos na sua carteira, e comprados ou vendidos como qualquer outro token. Isso oferece uma camada de soberania e segurança, dando-lhe controle sobre seus tokens, mas ainda não lhe dá controle direto sobre o cliente validador atestando em seu nome em segundo plano. + +Algumas opções de pooling são mais descentralizadas do que outras quando se trata dos nós que os sustentam. Para promover a saúde e a descentralização da rede, os participantes são sempre encorajados a selecionar um serviço de pooling (compartilhamento) que ofereça um conjunto descentralizado de operadores de nós sem permissão. + + +## Leitura adicional {#further-reading} + +- [Fazendo stake com a Rocket Pool – Visão global de staking](https://docs.rocketpool.net/guides/staking/overview.html) - _Documentação do Rocket Pool_ +- [Staking Ethereum com Lido](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Documentação de ajuda Lido_ diff --git a/public/content/translations/pt-br/staking/saas/index.md b/public/content/translations/pt-br/staking/saas/index.md new file mode 100644 index 00000000000..850b1d78d0c --- /dev/null +++ b/public/content/translations/pt-br/staking/saas/index.md @@ -0,0 +1,94 @@ +--- +title: Staking como um serviço +description: Uma visão geral de como começar com os pools de staking de ETH +lang: pt-br +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-saas.png +alt: Leslie, o rinoceronte, flutuando nas nuvens +sidebarDepth: 2 +summaryPoints: + - Operadores de nó terceirizados lidam com a operação de seu cliente validador + - Uma ótima opção para qualquer pessoa com 32 ETH que não se sinta confortável em lidar com a complexidade técnica da execução de um nó + - Reduza a confiança, e mantenha a posse de suas chaves de saque +--- + +## O que é staking como um serviço? {#what-is-staking-as-a-service} + +Staking como um serviço ("SaaS") representa uma categoria de serviços de staking onde você deposita seus próprios 32 ETH para um validador, mas delega operações de nó para um operador terceirizado. Este processo geralmente envolve ser guiado pela configuração inicial, incluindo a geração de chaves e depósito, e depois enviar suas chaves de assinatura para o operador. Isso permite que o serviço opere seu validador em seu nome, geralmente com uma taxa mensal. + +## Por que fazer staking com um serviço? {#why-stake-with-a-service} + +O protocolo Ethereum não suporta nativamente a delegação de stake, portanto esses serviços foram construídos para cumprir esta demanda. Se você tem 32 ETH para stake, mas não se sente à vontade para lidar com hardware, os serviços SaaS permitem que você delegue a parte difícil enquanto ganha recompensas nativas do bloco. + + + + + + + + + +## O que considerar {#what-to-consider} + +Há um número cada vez maior de provedores de SaaS para ajudar você a fazer participação com os seus ETH, mas todos têm benefícios e riscos. Todas as opções de SaaS exigem uma confiança adicional em comparação a fazer staking internamente. As opções SaaS podem ter código adicional envolvendo os clientes Ethereum que não são abertos ou auditáveis. O SaaS também tem um efeito prejudicial na descentralização da rede. Dependendo da configuração, você pode não controlar seu validador — o operador pode agir de forma desonesta usando seu ETH. + +Os indicadores de atributo são usados abaixo para sinalizar os pontos fortes ou fracos notáveis que um pool de staking pode ter. Utilize esta seção como referência de como definimos estes atributos enquanto você está escolhendo um serviço para auxiliar em sua jornada de staking. + + + +## Explore provedores de serviços de staking {#saas-providers} + +Abaixo estão alguns provedores SaaS disponíveis. Use os indicadores acima para guiá-lo pelos serviços abaixo + + + +### Provedores SaaS + + + +Observe a importância de escolher um serviço que leve a [diversidade de cliente](/developers/docs/nodes-and-clients/client-diversity/) a sério, à medida que melhora a segurança da rede e limita o seu risco. Os serviços que têm evidências de limitação do uso do cliente majoritário são indicados com "diversidade do cliente de execução" e "diversidade do cliente de consenso". + +### Geradores de chaves + + + +Alguma sugestão de um provedor de SaaS que não foi mencionado? Leia a nossa [política de listagem de produtos](/contributing/adding-staking-products/) para ver se a sugestão é pertinente e para enviá-la para análise. + +## Perguntas frequentes {#faq} + + +As disposições diferem de provedor para provedor, mas geralmente você será guiado pela configuração de quaisquer chaves de assinatura que você precise (uma a cada 32 ETH), e terá que enviar estas para o seu provedor para permitir que validem em seu nome. Só as chaves de assinatura não oferecem nenhuma possibilidade de saque, transferência ou gasto dos seus fundos. Entretanto, elas proporcionam a capacidade de votar em consensos, o que, se não for feito adequadamente, pode resultar em sanções ou em cortes off-line. + + + +Sim. Cada conta é composta por ambas chaves de assinatura BLS, e as chaves de saque BLS. Para que um validador ateste o estado da cadeia, participe de comitês de sincronização e proponha blocos, as chaves de assinatura devem estar prontamente acessíveis por um cliente validador. Elas devem estar conectadas à internet de alguma forma, portanto, são inerentemente consideradas chaves "quentes". Este é um requisito para as confirmações do seu validador, portanto, as chaves usadas para transferir ou sacar fundos são separadas por razões de segurança. + +As chaves de retirada BLS são usadas para assinar uma mensagem de uso único que declara para qual conta de execução de uma conta de recompensas de participação e fundos sacados elas devem ir. Uma vez que essa mensagem é transmitida, as chaves de saque de BLS não são mais necessárias. Em vez disso, o controle sobre os fundos retirados é permanentemente delegado ao endereço que você forneceu. Isso permite que você defina um endereço de retirada protegido por meio do seu próprio armazenamento frio, minimizando o risco para seus fundos de validador, mesmo se outra pessoa controlarem suas chaves de assinatura de validador. + +A atualização das credenciais de saque é uma etapa necessária para habilitar saques\*. Esse processo envolve gerar as chaves de retirada usando sua frase semente mnemônica. + +Certifique-se de fazer backup dessa frase de recuperação com segurança ou você não conseguirá gerar suas chaves de saque quando precisar. + +\*Os stakers que forneceram um endereço de saque com depósito inicial não precisam definir isso. Consulte com seu provedor SaaS para obter suporte sobre como preparar seu validador. + + + +Os saques de staking foram implementados na atualização Shanghai/Capella em abril de 2023. Os stakers precisam fornecer um endereço de saque (se não tiver sido fornecido no depósito inicial) e os pagamentos de recompensa começarão a ser distribuídos de forma automática periodicamente em intervalos de alguns dias. + +Os validadores também podem sair totalmente como validadores, o que desbloqueará seus saldos de ETH restantes para saque. As contas que forneceram um endereço de saque para execução e concluíram o processo de saída receberão todo o seu saldo no endereço de saque fornecido durante a próxima varredura do validador. + +Mais sobre saques de participação + + + +Usando um provedor SaaS, você está confiando a operação do seu nó a um terceiro. Isto implica o risco de um desempenho deficiente, que não está sob o seu controle. Caso seu validador seja cortado, seu saldo do validador será penalizado e removido à força da pool do validador. + +Após a conclusão do processo de remoção/saída, esses fundos serão transferidos para o endereço de saque atribuído ao validador. Para isso, é necessário habilitar um endereço de saque. Ela pode ter sido fornecida no depósito inicial. Caso contrário, será necessário usar as chaves de saque do validador para assinar uma mensagem declarando um endereço de saque. Os fundos permanecerão bloqueados até um endereço de saque ser fornecido. + +Entre em contato com o provedor de SaaS para obter mais detalhes sobre quaisquer garantias ou opções de seguro e instruções sobre como fornecer um endereço de saque. Se você preferir estar no controle total da sua configuração do validador, saiba mais sobre como fazer staking individual de seu ETH. + + +## Leitura adicional {#further-reading} + +- [Avaliando os Serviços de Staking](https://www.attestant.io/posts/evaluating-staking-services/) - _Jim McDonald 2020_ diff --git a/public/content/translations/pt-br/staking/solo/index.md b/public/content/translations/pt-br/staking/solo/index.md new file mode 100644 index 00000000000..f536a5b362e --- /dev/null +++ b/public/content/translations/pt-br/staking/solo/index.md @@ -0,0 +1,203 @@ +--- +title: Faça staking indivual com seu ETH +description: Uma visão geral de como começar a fazer staking individual com seu ETH +lang: pt-br +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-solo.png +alt: Leslie, o rinoceronte, em seu próprio chip de computador +sidebarDepth: 2 +summaryPoints: + - Receba recompensas máximas diretamente do protocolo para manter seu validador funcionando corretamente e on-line + - Execute o hardware local e adicione pessoalmente à segurança e descentralização da rede Ethereum + - Remova a confiança e nunca desista do controle das chaves dos seus fundos +--- + +## O que é staking individual? {#what-is-solo-staking} + +O staking individual é o ato de [executar um nó Ethereum](/run-a-node/) conectado à Internet e depositar 32 ETH para ativar um [validador](#faq), dando a você a capacidade de participar diretamente do consenso da rede. + +**A participação individual aumenta a descentralização da rede Ethereum**, tornando o Ethereum mais resistente a censura e ataques. Outros métodos de participação podem não ajudar a rede da mesma maneira. A participação individual é a melhor opção de participação para proteger o Ethereum. + +Um nó Ethereum consiste em um cliente de camada de execução (EL) e em um cliente de camada de consenso (CL). Esses clientes são softwares que trabalham em conjunto, juntamente com um conjunto válido de chaves de assinatura, para verificar transações e blocos, atestar o bloco correto no topo da cadeia, agregar atestações e propor blocos. + +Os stakers individuais são responsáveis por operar o hardware necessário para executar esses clientes. É altamente recomendável usar uma máquina dedicada para isso, que você opera em casa – isso é extremamente benéfico para a saúde da rede. + +Um staker individual recebe recompensas diretamente do protocolo por manter seu validador funcionando corretamente e on-line. + +## Por que fazer staking individual? {#why-stake-solo} + +A participação individual vem com mais responsabilidades, mas fornece o máximo de controle sobre seus fundos e configuração de participação. + + + + + + + +## Considerações antes de fazer staking individual {#considerations-before-staking-solo} + +Por mais que desejemos que o staking individual fosse acessível e sem riscos para todos, isso não é a realidade. Existem algumas considerações práticas e sérias a serem lembradas antes de optar por fazer staking individual de seu ETH. + + + +Ao operar seu próprio nó, você deve gastar algum tempo aprendendo a usar o software que escolheu. Isso envolve ler a documentação relevante e estar em sintonia com os canais de comunicação dessas equipes de desenvolvimento. + +Quanto mais você entender sobre o software que está executando e como funciona a prova de participação (proof of sake), menos arriscado será como um staker e mais fácil será corrigir quaisquer problemas que possam surgir ao longo do caminho como operador de nó. + + + +A configuração do nó requer um nível de conforto razoável ao trabalhar com computadores, embora novas ferramentas estejam tornando isso mais fácil com o tempo. A compreensão da interface de linha de comando é útil, mas não é mais estritamente necessária. + +Também requer uma configuração de hardware muito básica e alguma compreensão das especificações mínimas recomendadas. + + + +Assim como as chaves privadas protegem seu endereço Ethereum, você precisará gerar chaves especificamente para seu validador. Você precisa compreender como manter qualquer frase semente ou chave privada protegida e segura.{' '} + +Segurança Ethereum e prevenção à fraude + + + +O hardware falha ocasionalmente, as conexões de rede falham e o software cliente ocasionalmente precisa ser atualizado. A manutenção do nó é inevitável e ocasionalmente exigirá sua atenção. Você deve estar ciente de quaisquer informações de atualizações de rede ou outras atualizações críticas de clientes. + + + +Suas recompensas são proporcionais ao tempo que seu validador está on-line e atestando corretamente. O tempo de inatividade incorre em penalidades proporcionais a quantos outros validadores estão off-line ao mesmo tempo, mas não resulta em cortes. A largura de banda também é importante, pois as recompensas são reduzidas para declarações que não são recebidos a tempo. Os requisitos variam, mas é recomendado um mínimo de 10 Mb/s de upload e download. + + + +Diferente das penalidades de inatividade por estar off-line, o corte é uma penalidade muito mais séria reservada para infrações maliciosas. Ao executar um cliente minoritário com suas chaves carregadas em apenas uma máquina por vez, o risco de ser cortado é minimizado. Dito isto, todos os stakers devem estar cientes dos riscos de serem cortados. + + Mais informações sobre o ciclo de vida do validador e remoção + + + + + +## Como funciona {#how-it-works} + + + +Enquanto ativo, você ganhará recompensas ETH, que serão depositadas periodicamente no seu endereço de saque. + +Se desejar, você pode parar suas atividades como um validador, o que elimina a necessidade de estar on-line e interrompe outras recompensas. O seu saldo restante será sacado para o endereço de saque que você indicou durante a configuração. + +[Mais sobre saques de participação](/staking/withdrawals/) + +## Comece a usar o Staking Launchpad {#get-started-on-the-staking-launchpad} + +O Staking Launchpad é um aplicativo de código aberto que o ajudará a se tornar um staker. Ele o guiará na escolha de seus clientes, gerará suas chaves e depositará seu ETH no contrato de depósito de staking. Uma lista de verificação é fornecida para garantir que você cobriu tudo para configurar seu validador com segurança. + + + +## O que considerar com ferramentas de configuração de nó e cliente {#node-tool-considerations} + +Há um número crescente de ferramentas e serviços para ajudá-lo a fazer staking individualmente de seu ETH, mas cada um vem com diferentes riscos e benefícios. + +Os indicadores de atributo são usados abaixo para sinalizar pontos fortes ou fracos notáveis que uma ferramenta de staking listada pode ter. Use esta seção como referência de como definimos esses atributos enquanto você escolhe quais ferramentas ajudarão em sua jornada de staking. + + + +## Explore as ferramentas de configuração de nós e clientes {#node-and-client-tools} + +Há uma variedade de opções disponíveis para ajudá-lo na sua configuração. Use os indicadores acima para guiá-lo pelas ferramentas abaixo. + + + +### Ferramentas do nó + + + +Observe a importância de escolher um [cliente minoritário](/developers/docs/nodes-and-clients/client-diversity/), pois melhora a segurança da rede e limita seu risco. As ferramentas que permitem configurar um cliente minoritário são indicadas como "multicliente." + +### Geradores de chaves + +Essas ferramentas podem ser utilizadas como uma alternativa à [Staking Deposit CLI](https://github.com/ethereum/staking-deposit-cli/) para ajudar na geração de chaves. + + + +Alguma sugestão de ferramenta de participação que não mencionamos? Leia a nossa [política de listagem de produtos](/contributing/adding-staking-products/) para ver se a sugestão é pertinente e para enviá-la para análise. + +## Explore os guias de staking individual {#staking-guides} + + + +## Perguntas frequentes {#faq} + +Apresentamos algumas das perguntas mais comuns sobre staking (participação) que vale a pena saber. + + + +Um validador é uma entidade virtual que vive no Ethereum e participa no consenso do protocolo Ethereum. Os validadores são representados por um saldo, chave pública e outras propriedades. Um cliente validador é o software que atua em nome do validador mantendo e usando sua chave privada. Um único cliente validador pode conter muitos pares de chaves, controlando muitos validadores. + + + + +Cada par de chaves associado a um validador requer exatamente 32 ETH para ser ativado. Mais ETH depositado em um único conjunto de chaves não aumenta o potencial de recompensas, pois cada validador está limitado a um saldo efetivo de 32 ETH. Isso significa que o staking é feito em 32 incrementos de ETH, cada um com seu próprio conjunto de chaves e saldo. + +Não deposite mais de 32 ETH para um único validador. Isso não aumentará suas recompensas. Se um endereço de saque tiver sido definido para o validador, os fundos excedentes acima de 32 ETH serão automaticamente sacados para esse endereço durante a próxima varredura do validador. + +Se o staking individual demandar muito de você, considere usar um provedor de staking-as-a-service (staking como um serviço) ou, se estiver trabalhando com menos de 32 ETH, verifique as staking pools (pools de staking). + + + +Ficar off-line quando a rede estiver finalizando corretamente NÃO resultará em cortes. Pequenas penalidades por inatividade são incorridas se o seu validador não estiver disponível para atestar determinado período (cada um com 6,4 minutos de duração), mas isso é muito diferente de um corte. Essas penalidades são um pouco menores do que a recompensa que você ganharia se o validador estivesse disponível para atestar, e as perdas podem ser recuperadas com aproximadamente a mesma quantidade de tempo novamente on-line. + +Observe que as penalidades por inatividade são proporcionais a quantos validadores estão off-line ao mesmo tempo. Nos casos em que uma grande parte da rede estiver toda off-line ao mesmo tempo, as penalidades para cada um desses validadores serão maiores que quando um único validador estiver indisponível. + +Em casos extremos, se a rede parar de finalizar como resultado de mais de um terço dos validadores estarem off-line, esses usuários sofrerão o sendo conhecido como vazamento de inatividade quadrática, sendo um dreno exponencial de ETH de contas de validador off-line. Isso permite que a rede se recupere eventualmente queimando o ETH de validadores inativos até que seu saldo atinja 16 ETH, momento em que eles serão automaticamente ejetados da pool de validadores. Os validadores on-line restantes acabarão por abranger mais de 2/3 da rede novamente, satisfazendo a maioria qualificada necessária para finalizar mais uma vez a cadeia. + + + +Em resumo, isso nunca pode ser totalmente garantido, mas se você agir de boa-fé, executar um cliente minoritário e manter suas chaves de assinatura em apenas uma máquina por vez, o risco de ser cortado é quase zero. + +Existem apenas algumas maneiras específicas que podem resultar em um corte e expulsão de um validador da rede. No momento da redação deste texto, os cortes que ocorreram foram exclusivamente um produto de configurações de hardware redundantes onde as chaves de assinatura são armazenadas em duas máquinas separadas ao mesmo tempo. Isso pode resultar inadvertidamente em um voto duplo de suas chaves, o que é uma infração passível de corte. + +A execução de um cliente supermajoritário (qualquer cliente usado por mais de 2/3 da rede) também apresenta o risco de cortes em potencial caso esse cliente tenha uma falha que resulte em uma bifurcação da cadeia. Isso pode resultar em uma bifurcação com falha que será finalizada. Para corrigir de volta para a cadeia pretendida, seria necessário enviar um voto cercado (surround vote), na tentativa de desfazer um bloco finalizado. Essa também é uma infração que pode incorrer em um corte e pode ser evitada simplesmente por executar um cliente minoritário. + +Falhas equivalentes em um cliente minoritário jamais seriam finalizadas, portanto, nunca resultariam em um voto cercado, e simplesmente resultariam em penalidades de inatividade, não em cortes. + + + + + +Os clientes individuais podem variar um pouco em desempenho e interface do usuário, pois cada um é desenvolvido por equipes diferentes usando uma variedade de linguagens de programação. Assim sendo, nenhum deles é "melhor". Todos os clientes de implantação são excelentes softwares, que executam as mesmas funções principais para sincronizar e interagir com o blockchain. + +Como todos os clientes de implantação fornecem a mesma funcionalidade básica, é muito importante que você escolha um cliente minoritário, ou seja, qualquer cliente que NÃO esteja sendo usado pela maioria dos validadores na rede. Isso pode parecer contraintuitivo, mas executar um cliente majoritário ou supermajoritário aumenta o risco de cortes no caso de uma falha nesse cliente. A execução de um cliente minoritário limita drasticamente esses riscos. + +Saiba mais sobre a razão de a diversidade de clientes ser fundamental + + + +Embora um servidor virtual privado (VPS) possa ser usado como substituto do hardware doméstico, o acesso físico e a localização do seu cliente validador importam. Soluções em nuvem centralizadas como Amazon Web Services ou Digital Ocean permitem a conveniência de não ter que obter e operar hardware, à custa da centralização da rede. + +Quanto mais clientes validadores forem executados em uma única solução centralizada de armazenamento em nuvem, mais perigoso se torna para esses usuários. Qualquer evento que coloque esses provedores off-line, seja por um ataque, demandas regulatórias ou apenas quedas de energia/internet, fará com que todos os clientes validadores que dependem desse servidor fiquem off-line ao mesmo tempo. + +As penalidades por ficar off-line são proporcionais a quantos outros estão off-line ao mesmo tempo. O uso de um VPS aumenta muito o risco de que as penalidades por ficar offl-ine sejam mais severas e aumenta o risco de vazamento ou corte quadrático no caso de a interrupção ser grande o suficiente. Para minimizar seu próprio risco e o risco para a rede, os usuários são fortemente encorajados a obter e operar seu próprio hardware. + + + + +Saques de qualquer tipo da Beacon Chain exigem que sejam definidas credenciais de retirada. + +Os novos participantes estabeleceram isso no momento da geração da chave e do depósito. Os stakers existentes que ainda não definiram isso podem atualizar suas chaves para dar suporte a essa funcionalidade. + +Depois que as credenciais de saque estiverem definidas, os pagamentos de recompensa (ETH acumulado sobre os 32 iniciais) serão periodicamente distribuídos para o endereço de saque automaticamente. + +Para desbloquear e receber todo o seu saldo de volta, você deve concluir o processo de saída de seu validador. + +Mais sobre saques de participação + + +## Leitura adicional {#further-reading} + +- [Problema de diversidade de clientes da Ethereum](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ +- [Ajudando a diversidade dos clientes](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ +- [Diversidade de clientes na camada de consenso do Ethereum](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ +- [Como comprar o hardware validador do Ethereum](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ +- [Passo a passo: Como ingressar na rede de testes da Ethereum 2.0](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _ Butta_ +- [Dicas de prevenção de cortes Eth2](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raul Jordan 2020 _ diff --git a/public/content/translations/pt-br/staking/withdrawals/index.md b/public/content/translations/pt-br/staking/withdrawals/index.md new file mode 100644 index 00000000000..683c6e6186c --- /dev/null +++ b/public/content/translations/pt-br/staking/withdrawals/index.md @@ -0,0 +1,218 @@ +--- +title: Saque de staking +description: Página que resume o que são os saques por staking, como eles funcionam e o que os stakers (participantes) precisam fazer para obter suas recompensas +lang: pt-br +template: staking +image: /staking/leslie-withdrawal.png +alt: Leslie, o rinoceronte, com suas recompensas de staking +sidebarDepth: 2 +summaryPoints: + - A atualização Shanghai/Capella permitiu saques de stake no Ethereum + - Os operadores validadores devem fornecer um endereço de saque para ativá-los + - As recompensas são distribuídas automaticamente a cada dois ou três dias + - Validadores que saírem por completo do staking receberão o seu saldo restante +--- + + +Os saques de stake foram ativados com a atualização Shanghai/Capella, que ocorreu em 12 de abril de 2023. Mais sobre Shanghai/Capella + + +**Saques de stake** referem-se a transferências de ETH de uma conta do validador na camada de consenso do Ethereum (a Beacon Chain) para a camada de execução na qual ela pode efetuar a transação. + +**Pagamentos de recompensas de saldo excedente** acima de 32 ETH serão enviados de forma automática e regular para um endereço de saque vinculado a cada validador, uma vez fornecido pelo usuário. Usuários também podem **sair totalmente do staking**, desbloqueando seu saldo total do validador. + +## Recompensas de staking {#staking-rewards} + +Os pagamentos de recompensa são processados automaticamente para contas validadoras ativas, com um saldo efetivo máximo de 32 ETH. + +Qualquer saldo acima de 32 ETH ganho por meio de recompensas, não contribui realmente para o principal, ou aumenta o peso desse validador na rede e, portanto, é retirado automaticamente como pagamento de recompensa a cada dois ou três dias. Além de fornecer um endereço de saque uma vez, essas recompensas não exigem nenhuma ação do operador validador. Tudo isso é iniciado na camada de consenso, portanto, nenhum gás (taxa de transação) é necessário em nenhuma etapa. + +### Como chegamos aqui? {#how-did-we-get-here} + +Nos últimos anos, o Ethereum passou por várias atualizações de rede, fazendo a transição para uma rede protegida pelo próprio ETH, em vez da mineração intensiva de energia, como era antes. A participação em consenso no Ethereum agora é conhecida como "staking", pois os participantes têm bloqueado voluntariamente o ETH, colocando-o "em stake" para poder participar da rede. Os usuários que seguem as regras serão recompensados, enquanto as tentativas de trapaça podem ser penalizadas. + +Desde o lançamento do contrato de depósito de staking em novembro de 2020, alguns corajosos pioneiros do Ethereum bloquearam voluntariamente fundos para ativar “validadores”, contas especiais que têm o direito de atestar formalmente e propor blocos, seguindo as regras da rede. + +Antes da atualização Shanghai/Capella, não era possível usar ou acessar seu ETH em stake. Mas agora, você pode optar por receber automaticamente suas recompensas em uma conta escolhida, e também pode sacar seu ETH em stake sempre que quiser. + +### Como me preparo? {#how-do-i-prepare} + + + +### Avisos importantes {#important-notices} + +Fornecer um endereço de saque é uma etapa necessária para qualquer conta de validador, antes que ele seja elegível para sacar ETH de seu saldo. + + + Cada conta de validador pode ser atribuída a um único endereço de saque, uma única vez. Após a seleção e envio do endereço à camada de consenso, isso não pode ser desfeito ou alterado novamente. Verifique a propriedade e a precisão do endereço fornecido antes de enviar. + + +Não há nenhuma ameaça aos seus fundos enquanto não fornecer essa conta, contanto que sua frase mnemônica/de recuperação tenha permanecido segura offline e não tenha sido comprometida de nenhuma forma. A falha em adicionar credenciais de saque simplesmente deixará o ETH bloqueado na conta do validador como tem estado até que um endereço de saque seja fornecido. + +## Saindo do staking por completo {#exiting-staking-entirely} + +Fornecer um endereço de saque é necessário antes que _quaisquer_ fundos possam ser transferidos de um saldo de uma conta do validador. + +Os usuários que procuram sair totalmente do staking e sacar seu saldo total de volta, também devem assinar e transmitir uma mensagem de "saída voluntária", com as chaves do validador que iniciarão o processo de saída do staking. Isso é feito com o seu cliente validador e enviado ao seu nó de consenso, e não exige gás. + +O processo de saída de um validador do staking leva uma quantidade variável de tempo, dependendo de quantos outros estão saindo ao mesmo tempo. Uma vez concluída, esta conta não será mais responsável por executar as obrigações de rede do validador, não será mais elegível para recompensas e não terá mais seu ETH "em stake". Nesse momento, a conta será marcada como totalmente “sacável”. + +Uma vez que uma conta é marcada como "sacável" e as credenciais de saque são fornecidas, não há mais nada que o usuário precise fazer além de esperar. As contas são automática e continuamente varridas por proponentes de bloco para fundos elegíveis de saída, e o saldo da sua conta será transferido integralmente (também conhecido como "saque total") durante a próxima varredura. + +## Quando os saques de staking são ativados? {#when} + +Os saques de stake já estão disponíveis! A funcionalidade de saque foi habilitada como parte da atualização Shanghai/Capella que ocorreu em 12 de abril de 2023. + +A atualização Shanghai/Capella permitiu que o ETH previamente em stake fosse recuperado em contas normais do Ethereum. Isso fechou o ciclo de liquidez de stake e trouxe o Ethereum a um passo mais perto de sua jornada para a construção de um ecossistema descentralizado sustentável, dimensionável e seguro. + +- [Mais sobre a história do Ethereum](/history/) +- [Mais sobre o roteiro do Ethereum](/roadmap/) + +## Como funcionam os pagamentos de saque? {#how-do-withdrawals-work} + +Se um determinado validador é elegível para um saque ou não é determinado pelo estado da própria conta do validador. Nenhuma entrada de usuário é necessária a um dado momento para determinar se uma conta deveria ter um saque iniciado ou não — todo o processo é realizado automaticamente pela camada de consenso em um loop contínuo. + +### Você é o tipo de pessoa que aprende mais com recursos visuais? {#visual-learner} + +Confira esta explicação sobre saques de staking do Ethereum pela Finematics: + + + +### Validador de "varredura" {#validator-sweeping} + +Quando um validador está agendado para propor o próximo bloco, ele é necessário para construir uma fila de saque de até 16 saques elegíveis. Isso é feito originalmente começando com o validador de índice 0, determinando se há um saque elegível para essa conta, conforme as regras do protocolo, e adicionando-o à fila, se houver. O validador definido para propor o bloco seguinte continuará de onde o último parou, progredindo em ordem indefinidamente. + + +Pense em um relógio analógico. O ponteiro no relógio aponta para a hora, avança em uma direção, não pula nenhuma hora e, por fim, volta ao início após alcançar o último número.

+Agora, em vez de 1 a 12, imagine que o relógio é de 0 a N (o total de números de contas de validador que foram registradas na camada de consenso, mais de 500 mil em janeiro de 2023).

+O ponteiro do relógio aponta para o próximo validador que precisa ser verificado quanto a saques elegíveis. Começa em 0 e avança ao longo de todo o caminho sem pular nenhuma conta. Quando o último validador é alcançado, o ciclo continua de volta ao início. +
+ +#### Verificando os saques de uma conta {#checking-an-account-for-withdrawals} + +Enquanto um proponente está verificando os validadores para possíveis saques, cada validador que está sendo verificado é avaliado em relação a uma pequena série de perguntas para determinar se um saque deve ser acionado e, em caso afirmativo, o quanto de ETH deve ser sacado. + +1. **Foi fornecido um endereço para saque?** Se nenhum endereço para saque foi fornecido, a conta é ignorada e nenhum saque é iniciado. +2. **O validador saiu e pode ser sacado?** Se o validador saiu completamente, e chegamos à época em que sua conta é considerada "sacável", então um saque total será processado. Isso transferirá todo o saldo restante para o endereço de saque. +3. **O saldo efetivo é maximizado em 32?** Se a conta que tiver credenciais de saque não for completamente encerrada e tiver recompensas acima de 32 em espera, um saque parcial será processado, o qual transfere apenas as recompensas acima de 32 para o endereço de saque do usuário. + +Existem apenas duas ações tomadas pelos operadores do validador ao longo do seu ciclo de vida que influenciam diretamente esse fluxo: + +- Fornecer credenciais de saque para habilitar qualquer forma de saque +- Sair da rede, o que desencadeará um saque total + +### Gás gratuito {#gas-free} + +Essa abordagem para saques de staking evita exigir que os stakers (participantes) enviem manualmente uma transação solicitando que uma quantia específica de ETH seja sacada. Isso significa que **nenhum gás (taxa de transação) é necessário** e os saques também não competem pelo espaço do bloco da camada de execução existente. + +### Com que frequência receberei minhas recompensas de staking? {#how-soon} + +Um máximo de 16 saques pode ser processado em um único bloco. A esse ritmo, 115.200 saques de validadores podem ser processados por dia (supondo que não haja slots perdidos). Conforme observado acima, os validadores sem saques elegíveis serão ignorados, diminuindo o tempo para concluir a varredura. + +Expandindo esse cálculo, podemos estimar o tempo que levará para processar um determinado número de saques: + + + +| Número de saques | Tempo de execução | +| :--------------: | :---------------: | +| 400.000 | 3,5 dias | +| 500.000 | 4,3 dias | +| 600.000 | 5,2 dias | +| 700.000 | 6,1 dias | +| 800.000 | 7,0 dias | + + + +Como você poder ver, isso fica lento à medida que mais validadores estão na rede. Um aumento nos slots perdidos poderia diminuir proporcionalmente, mas isso geralmente representará o lado mais lento dos resultados possíveis. + +## Perguntas frequentes {#faq} + + +Não, o processo para fornecer credenciais de saque é um processo único e não pode ser modificado após o envio. + + + +Ao definir um endereço de saque da camada de execução, as credenciais de saque para esse validador foram permanentemente alteradas. Isso significa que as credenciais antigas não funcionarão mais, e as novas credenciais serão direcionadas para uma conta de camada de execução. + +Os endereços de saque podem ser ou um contrato inteligente (controlado por seu código), ou uma conta de propriedade externa (EOA, controlada por sua chave privada). Atualmente, essas contas não têm como comunicar uma mensagem de volta para a camada de consenso, que sinalizaria uma mudança nas credenciais do validador, e adicionar essa funcionalidade aumentaria a complexidade do protocolo desnecessariamente. + +Uma alternativa para mudar o endereço de saque de um validador específico implicaria os usuários poderem optar por definir um contrato inteligente como seu endereço de saque, o que permitiria lidar com a rotação de chaves, como um cofre. Os usuários que definem seus fundos para seu próprio EOA podem realizar uma saída completa para sacar todos os seus fundos em stake e, em seguida, refazer o stake usando novas credenciais. + + + + +Se você faz parte de uma participação combinada (participação em pool) ou mantém tokens participados, deve solicitar ao seu provedor mais detalhes sobre o processamento de saques de participação, pois cada serviço funciona de maneira diferente. + +Em geral, os usuários podem recuperar seu ETH subjacente em stake ou alterar o provedor de stake que utilizam quando quiserem. Se um pool em particular estiver ficando muito grande, os fundos podem ser encerrados, resgatados e reinvestidos com um provedor menor. Ou então, se você acumulou ETH suficiente, pode fazer stake em casa. + + + + +Sim, desde que seu validador forneça um endereço de saque. Isso deve ser fornecido uma vez para permitir, inicialmente, quaisquer saques. Em seguida, os pagamentos de recompensa serão acionados automaticamente em poucos dias a cada varredura do validador. + + + + +Não, se o seu validador ainda estiver ativo na rede, um saque total não acontecerá automaticamente. Isso exige iniciar manualmente uma saída voluntária. + +Após um validador ter concluído o processo de saída, e presumindo que a conta tenha credenciais de saque, o saldo restante será então sacado durante a próxima varredura do validador. + + + + +Os saques foram projetados para serem enviados automaticamente, transferindo qualquer ETH que não esteja contribuindo ativamente para o stake. Isso inclui saldos completos das contas que completaram o processo de saída. + +Não é possível solicitar manualmente o saque de quantidades específicas de ETH. + + + + +Recomenda-se que os operadores do validador visitem a página Plataforma de Saque de Stake, na qual você encontrará mais detalhes sobre como preparar seu validador para saques. preparado, tempo de eventos e mais detalhes sobre como funcionam os saques. + +Para testar a sua configuração numa rede de testes, primeiro visite o Goerli Testnet Staking Launchpad para começar. + + + + +Não. Uma vez que um validador tenha saído e seu saldo completo tenha sido sacado, quaisquer fundos adicionais depositados nesse validador serão automaticamente transferidos para o endereço de saque durante a próxima varredura do validador. Para recolocar o ETH em stake, um novo validador deve ser ativado. + + +## Leitura adicional {#further-reading} + +- [Saques da plataforma de staking](https://launchpad.ethereum.org/withdrawals) +- [EIP-4895: Saques por push da Beacon chain como operações](https://eips.ethereum.org/EIPS/eip-4895) +- [Ethereum Cat Herders - Shanghai](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) +- [PEEPanEIP #94: Saque de ETH em skate (teste) com Potus e Hsiao-Wei Wang](https://www.youtube.com/watch?v=G8UstwmGtyE) +- [PEEPanEIP#68: EIP-4895: Beacon chain envia por push saques como operações com Alex Stokes](https://www.youtube.com/watch?v=CcL9RJBljUs) +- [Compreendendo como o Saldo Efetivo do Validador funciona](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/pt-br/web3/index.md b/public/content/translations/pt-br/web3/index.md similarity index 100% rename from src/content/translations/pt-br/web3/index.md rename to public/content/translations/pt-br/web3/index.md diff --git a/src/content/translations/pt-br/web3/web2.png b/public/content/translations/pt-br/web3/web2.png similarity index 100% rename from src/content/translations/pt-br/web3/web2.png rename to public/content/translations/pt-br/web3/web2.png diff --git a/src/content/translations/pt-br/web3/web3.png b/public/content/translations/pt-br/web3/web3.png similarity index 100% rename from src/content/translations/pt-br/web3/web3.png rename to public/content/translations/pt-br/web3/web3.png diff --git a/src/content/translations/pt-br/whitepaper/index.md b/public/content/translations/pt-br/whitepaper/index.md similarity index 100% rename from src/content/translations/pt-br/whitepaper/index.md rename to public/content/translations/pt-br/whitepaper/index.md diff --git a/src/content/translations/pt-br/zero-knowledge-proofs/index.md b/public/content/translations/pt-br/zero-knowledge-proofs/index.md similarity index 100% rename from src/content/translations/pt-br/zero-knowledge-proofs/index.md rename to public/content/translations/pt-br/zero-knowledge-proofs/index.md diff --git a/public/content/translations/pt/dao/index.md b/public/content/translations/pt/dao/index.md new file mode 100644 index 00000000000..437cf930fbd --- /dev/null +++ b/public/content/translations/pt/dao/index.md @@ -0,0 +1,165 @@ +--- +title: Organizações Autónomas Descentralizadas (DAO) +description: Uma visão geral de DAO na Ethereum +lang: pt +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: Representação da votação de uma proposta numa DAO. +summaryPoint1: Comunidades pertencentes aos membros, sem liderança centralizada. +summaryPoint2: Uma forma segura de colaborar com desconhecidos na internet. +summaryPoint3: Um local seguro para afetar fundos a uma causa específica. +--- + +## O que são DAO? {#what-are-daos} + +Uma DAO é uma organização de propriedade coletiva, governada por uma blockchain (cadeia de blocos), que trabalha para uma missão partilhada. + +As DAO permitem-nos trabalhar com pessoas que pensam da mesma forma em todo o mundo sem confiar num líder benevolente para gerir os fundos ou as operações. Não existe um Diretor Executivo (CEO) que possa gastar fundos por capricho ou um Diretor Financeiro que possa manipular os livros de contas. Em vez disso, as regras baseadas em blockchain inscritas no código definem como a organização funciona e como os fundos são gastos. + +Têm tesourarias incorporadas às quais ninguém tem autoridade para aceder sem a aprovação do grupo. As decisões são regidas por propostas e votações para garantir que todos na organização têm voz ativa e tudo acontece de forma transparente na cadeia. + +## Porque é que precisamos de DAO? {#why-dao} + +Criar uma organização com alguém que envolve financiamento e dinheiro requer muita confiança nas pessoas com quem se está a trabalhar. Mas é complicado confiar em alguém com quem só interagimos na Internet. Com as DAO não é necessário confiar em mais ninguém do grupo, apenas no código da DAO, que é 100% transparente e verificável por qualquer um. + +Isto abre muitas novas oportunidades de colaboração e coordenação a nível global. + +### Uma comparação {#dao-comparison} + +| DAO | Uma organização tradicional | +| -------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | +| Geralmente plana e totalmente democratizada. | Normalmente hierárquica. | +| É necessária a votação dos seus membros para que quaisquer alterações sejam implementadas. | Dependendo da estrutura, podem ser exigidas alterações a uma única parte ou pode ser proposto um voto. | +| Os votos são contados e o resultado é aplicado automaticamente sem a intervenção de qualquer intermediário de confiança. | Se a votação for permitida, os votos são contabilizados internamente e o resultado da votação deve ser tratado manualmente. | +| Os serviços oferecidos são geridos automaticamente de forma descentralizada (por exemplo, distribuição de fundos filantrópicos). | Requer manuseamento humano ou automatização controlada centralmente, propensos a manipulação. | +| Toda a atividade é transparente e totalmente pública. | A atividade é tipicamente privada e limitada ao público. | + +### Exemplos DAO {#dao-examples} + +Para que isto faça mais sentido, eis alguns exemplos de como se pode utilizar uma DAO: + +- Uma instituição de caridade - pode aceitar donativos de qualquer pessoa no mundo e votar em que causas financiar. +- Propriedade coletiva - pode adquirir ativos físicos ou digitais e os membros podem votar sobre a forma de os utilizar. +- Empreendimentos e subvenções - pode criar um fundo de risco que reúna capital de investimento e vote em que empreendimentos apoiar. O dinheiro reembolsado pode mais tarde ser redistribuído entre os membros da DAO. + +## Como funcionam as DAO? {#how-daos-work} + +A espinha dorsal de uma DAO é o seu contrato inteligente, que define as regras da organização e detém a tesouraria do grupo. Assim que o contrato estiver ativo na Ethereum, ninguém pode alterar as suas regras, exceto através de uma votação. Se alguém tentar fazer algo que não esteja abrangido pelas regras e pela lógica do código, falhará. E como a tesouraria também é definida pelo contrato inteligente, isso significa que ninguém pode gastar dinheiro sem a aprovação do grupo. Isto significa que as DAO não precisam de uma autoridade central. Em vez disso, o grupo toma decisões coletivamente e os pagamentos são automaticamente autorizados quando as propostas são aprovadas. + +Isto é possível porque os contratos inteligentes são à prova de adulteração quando entram em funcionamento na Ethereum. Não se pode simplesmente editar o código (as regras das DAO) sem que as pessoas se apercebam, porque tudo é público. + + + Mais sobre contratos inteligentes + + +## Ethereum e DAO {#ethereum-and-daos} + +A Ethereum é a base perfeita para DAO por uma série de razões: + +- O próprio consenso da Ethereum é distribuído e estabelecido o suficiente para que as organizações confiem na rede. +- O código do contrato inteligente não pode ser modificado uma vez ativo, nem mesmo pelos seus proprietários. Isto permite que a DAO funcione de acordo com as regras com que foi programado. +- Os contratos inteligentes podem enviar e receber fundos. Sem isso, seria necessário um intermediário de confiança para gerir os fundos do grupo. +- A comunidade Ethereum provou ser mais colaborativa do que competitiva, permitindo que as melhores práticas e sistemas de apoio surjam rapidamente. + +## Governança DAO {#dao-governance} + +Há muitas considerações a ter em conta quando se governa uma DAO, tais como o modo de funcionamento da votação e das propostas. + +### Delegação {#governance-delegation} + +A delegação é a versão DAO da democracia representativa. Os detentores de tokens delegam os votos em utilizadores que se nomeiam a si próprios e se comprometem a gerir o protocolo e a manterem-se informados. + +#### Um exemplo famoso {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) - Os titulares de ENS podem delegar os seus votos em membros da comunidade empenhados em representá-los. + +### Governação automática de transações {#governance-example} + +Em muitas DAO, as transações serão automaticamente executadas se um quórum de membros votar favoravelmente. + +#### Um exemplo famoso {#governance-example} + +[Nouns](https://nouns.wtf) - Na Nouns DAO, uma transação é automaticamente executada se houver quórum de votos e a maioria votar afirmativamente, desde que não seja vetada pelos fundadores. + +### Governança Multisig {#governance-example} + +Enquanto as DAO podem ter milhares de membros votantes, os fundos podem viver numa carteira partilhada por 5 a 20 membros ativos da comunidade que são de confiança e geralmente doxxed (identidades públicas conhecidas pela comunidade). Após uma votação, os signatários multisig executam a vontade da comunidade. + +## Leis DAO {#dao-laws} + +Em 1977, o estado Americano de Wyoming inventou a LLC, que protege os empresários e limita a sua responsabilidade. Mais recentemente, foram os pioneiros da lei DAO, que estabelece o estatuto jurídico das DAO. Atualmente, os estados Americanos do Wyoming, Vermont e as Ilhas Virgens têm leis equivalentes à lei DAO. + +### Um exemplo famoso {#law-example} + +[CityDAO](https://citydao.io) - A CityDAO utilizou a lei DAO do Wyoming para comprar 40 acres de terreno perto do Parque Nacional de Yellowstone. + +## Adesão à DAO {#dao-membership} + +Existem diferentes modelos de adesão à DAO. Os membros podem determinar como funciona a votação e outras áreas importantes do DAO. + +### Adesão baseada em tokens {#token-based-membership} + +Normalmente sem permissões, dependendo do token utilizado. Na sua maioria, estes tokens de governação podem ser negociados sem autorização, numa bolsa descentralizada. Outros devem ser ganhos através do fornecimento de liquidez ou de alguma outra "prova de trabalho". De qualquer forma, a simples posse do token dá acesso às votações. + +_Tipicamente utilizado para gerir protocolos descentralizados alargados e/ou os próprios tokens._ + +#### Um exemplo famoso {#token-example} + +[MakerDAO](https://makerdao.com) - O token MKR da MakerDAO está amplamente disponível em bolsas descentralizadas e qualquer pessoa pode comprar para ter poder de voto no futuro do protocolo Maker. + +### Participação com base em ações {#share-based-membership} + +As DAO baseadas em ações são mais controladas, mas ainda assim bastante abertas. Todos os potenciais membros podem apresentar uma proposta de adesão à DAO, oferecendo normalmente um tributo de algum valor sob a forma de tokens ou trabalho. As ações representam o poder de voto direto e a propriedade. Os membros podem sair a qualquer momento com a sua parte proporcional da tesouraria. + +_Tipicamente utilizado para organizações mais unidas e centradas no ser humano, como instituições de caridade, coletivos de trabalhadores e clubes de investimento. Podem também gerir protocolos e tokens._ + +#### Um exemplo famoso {#share-example} + +[MolochDAO](http://molochdao.com/) - A MolochDAO está focada no financiamento de projetos Ethereum. É necessária uma proposta de adesão para que o grupo possa avaliar se o proponente tem os conhecimentos e o capital necessários para fazer juízos informados sobre potenciais beneficiários. Não se pode simplesmente comprar o acesso ao DAO no mercado aberto. + +### Adesão com base na reputação {#reputation-based-membership} + +A reputação representa uma prova de participação e concede poder de voto na DAO. Ao contrário da adesão baseada em tokens ou acções, as DAO baseadas na reputação não transferem a propriedade para os seus contribuintes. A reputação não pode ser comprada, transferida ou delegada; os membros da DAO devem ganhar reputação através da sua participação. A votação em cadeia não tem permissões e os potenciais membros podem apresentar livremente propostas de adesão à DAO e pedir para receber reputação e tokens como recompensa em troca das suas contribuições. + +_Tipicamente utilizado para o desenvolvimento descentralizado e governação de protocolos e dapps, mas também adequado a um conjunto diversificado de organizações como instituições de caridade, coletivos de trabalhadores, clubes de investimento, etc._ + +#### Um exemplo famoso {#reputation-example} + +[DXdao](https://DXdao.eth.link) - DXdao é um coletivo soberano global que constrói e governa protocolos e aplicações descentralizadas desde 2019. Utiliza a governação baseada na reputação e o consenso holográfico para coordenar e gerir fundos, o que significa que ninguém pode comprar o seu caminho para influenciar o seu futuro. + +## Aderir / criar uma DAO {#join-start-a-dao} + +### Join a DAO {#join-a-dao} + +- [DAO da comunidade Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [Lista DAOHaus de DAO](https://app.daohaus.club/explore) +- [Lista de DAO da Tally.xyz](https://www.tally.xyz) + +### Criar uma DAO {#start-a-dao} + +- [Invocar uma DAO com DAOHaus](https://app.daohaus.club/summon) +- [Iniciar uma DAO governamental com o Tally](https://www.tally.xyz/add-a-dao) +- [Criar uma DAO com tecnologia Aragon](https://aragon.org/product) +- [Criar uma colónia](https://colony.io/) +- [Criar uma DAO com o consenso holográfico da DAOstack](https://alchemy.daostack.io/daos/create) + +## Leitura adicional {#further-reading} + +### Artigos DAO {#dao-articles} + +- [O que é uma DAO?](https://aragon.org/dao) - [Aragon](https://aragon.org/) +- [O manual da DAO](https://daohandbook.xyz) +- [A Casa das DAO](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) - [Metagame](https://wiki.metagame.wtf/) +- [O que é e para que serve uma DAO?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) - [DAOhaus](https://daohaus.club/) +- [Como iniciar uma comunidade digital potenciada por DAO](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) - [DAOhaus](https://daohaus.club/) +- [O que é uma DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) - [Coinmarketcap](https://coinmarketcap.com) +- [O que é o Consenso Holográfico?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) +- [As DAO não são empresas: onde é importante a descentralização em organizações autónomas, por Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) +- [DAO, DAC, DA e mais: Um Guia de Terminologia Incompleto](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Blog do Ethereum](https://blog.ethereum.org) + +### Vídeos {#videos} + +- [O que é uma DAO em criptografia?](https://youtu.be/KHm0uUPqmVE) +- [Uma DAO pode construir uma cidade?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) - [TED](https://www.ted.com/) diff --git a/public/content/translations/pt/decentralized-identity/index.md b/public/content/translations/pt/decentralized-identity/index.md new file mode 100644 index 00000000000..2feee6de53f --- /dev/null +++ b/public/content/translations/pt/decentralized-identity/index.md @@ -0,0 +1,185 @@ +--- +title: Identidade descentralizada +description: O que é a identidade descentralizada, e porque é importante? +lang: pt +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: /eth-gif-cat.png +summaryPoint1: Nos sistemas de identidade tradicionais, a emissão, manutenção e controlo da identificação dos utilizadores são centralizados. +summaryPoint2: Um sistema de identidade descentralizada deixa de depender de terceiros centralizados. +summaryPoint3: Graças à criptografia, os utilizadores possuem agora as ferramentas para conseguir emitir, manter e controlar a sua identificação e a respetiva prova da mesma. +--- + +Atualmente, a identidade está subjacente a praticamente todos os aspectos das nossas vidas. Utilizar serviços online, abrir uma conta bancária, votar em eleições, comprar um imóvel, garantir um emprego - tudo isto requer a prova da sua identidade. + +No entanto, os sistemas tradicionais de gestão de identidades há muito que dependem de intermediários centralizados que emitem, detêm e controlam os identificadores e [sua validação](#what-are-attestations). Isto significa que não pode controlar as informações relacionadas com a sua identidade ou decidir quem tem acesso a informações pessoalmente identificáveis (IPI) e qual o grau de acesso que essas entidades têm. + +Para resolver estes problemas, temos sistemas de identidade descentralizados construídos em blockchains públicos como o Ethereum. A identidade descentralizada permite aos indivíduos gerir a informação relacionada com a sua identidade. Com soluções de identidade descentralizadas, _podemos_ criar identificadores e reivindicar e manter as nossas certificações sem depender de autoridades centrais, como fornecedores de serviços ou governos. + +## O que é a identidade? {#what-is-identity} + +Identidade significa o sentido de individualidade de um indivíduo, definido por caraterísticas únicas. A identidade refere-se a ser um _indivíduo_, ou seja, uma entidade humana distintiva. A identidade pode também referir-se a outras entidades não humanas, como uma organização ou autoridade. + +## O que são identificadores? {#what-are-identifiers} + +Um identificador é um tipo de informação que funciona como um identificador para uma identidade ou identidades específicas. Os identificadores mais comuns incluem: + +- Nome +- Número da segurança social/número de identificação fiscal +- Número de telemóvel +- Data e local de nascimento +- Credenciais de identificação digital, por exemplo, endereços de correio eletrónico, nomes de utilizador, avatares + +Estes exemplos convencionais de identificadores são emitidos, detidos e controlados por entidades centrais. É necessária uma autorização do governo para alterar o nosso nome ou de uma plataforma de rede social para alterar o nosso nome de utilizador. + +## O que são certificações? {#what-are-attestations} + +Uma certificação é uma afirmação feita por uma entidade sobre outra entidade. Se vive nos Estados Unidos, a carta de condução que lhe é emitida pelo Department of Motor Vehicles (uma entidade) atesta que você (outra entidade) está legalmente autorizado a conduzir um determinado tipo de veículo. + +As certificações são diferentes dos identificadores. Uma certificação _contém_ identificadores que fazem referência a uma determinada identidade e faz uma declaração sobre um atributo relacionado com essa identidade. Assim, a sua carta de condução tem identificadores (nome, data de nascimento, morada) mas é também a certificação do seu direito legal de conduzir. + +### O que são identificadores descentralizados? {#what-are-decentralized-identifiers} + +Os identificadores tradicionais, como o seu nome jurídico ou endereço de correio eletrónico, dependem de terceiros - governos e fornecedores de correio eletrónico. Os identificadores descentralizados (DIDs) são diferentes - não são emitidos, geridos ou controlados por uma entidade central. + +Os identificadores descentralizados são emitidos, detidos e controlados por pessoas singulares. Uma [conta Ethereum](/developers/docs/accounts/) é um exemplo de um identificador descentralizado. Pode criar tantas contas quantas quiser sem a permissão de terceiros e sem a necessidade de as armazenar num registo central. + +Os identificadores descentralizados são armazenados em registos distribuídos ("blockchains") ou em redes peer-to-peer. Isto torna os DIDs [únicos a nível mundial, resolúveis com elevada disponibilidade e criptograficamente verificáveis](https://w3c-ccg.github.io/did-primer/). Um identificador descentralizado pode ser associado a diferentes entidades, incluindo indivíduos, organizações ou instituições governamentais. + +## O que torna possíveis os identificadores descentralizados? {#what-makes-decentralized-identifiers-possible} + +### 1. Infraestrutura de chave pública (PKI) {#public-key-infrastructure} + +A infraestrutura de chave pública (PKI) é uma medida de segurança da informação que gera uma [chave pública](/glossary/#public-key) e uma [chave privada](/glossary/#private-key) para uma entidade. A criptografia de chave pública é utilizada nas redes de blockchain para autenticar as identidades dos utilizadores e provar a propriedade de ativos digitais. + +Alguns identificadores descentralizados, como uma conta Ethereum, têm chaves públicas e privadas. A chave pública identifica o responsável pelo controlo da conta, enquanto as chaves privadas podem assinar e desencriptar mensagens para esta conta. A PKI fornece as provas necessárias para autenticar entidades e impedir a falsificação de identidade e a utilização de identidades falsas, utilizando [assinaturas criptográficas](https://andersbrownworth.com/blockchain/public-private-keys/) para verificar todas as declarações. + +### 2. Datastores descentralizados {#decentralized-datastores} + +Um blockchain funciona como um registo de dados verificável: um repositório de informação aberto, isento e descentralizado. A existência de blockchains públicas elimina a necessidade de armazenar identificadores em registos centralizados. + +Se alguém precisar de confirmar a validade de um identificador descentralizado, pode procurar a chave pública associada no blockchain. Isto é diferente dos identificadores tradicionais que exigem a autenticação de terceiros. + +## Como é que os identificadores e as certificações descentralizadas permitem a identidade descentralizada? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} + +A identidade descentralizada é a noção de que as informações relacionadas com a identidade devem ser autocontroladas, privadas e portáteis, sendo os identificadores e as certificações descentralizadas os principais blocos de construção. + +No contexto da identidade descentralizada, as certificações (também conhecidas como [Verifiable Credentials](https://www.w3.org/TR/vc-data-model/)) são afirmações à prova de adulteração e criptograficamente verificáveis efetuadas pelo emissor. Cada atestado ou Credencial Verificável que uma entidade (por exemplo, uma organização) emite está associado ao seu DID. + +Uma vez que os DIDs são armazenados no blockchain, qualquer um pode verificar a validade de um atestado através da verificação cruzada do DID do emissor no Ethereum. Basicamente, a blockchain Ethereum funciona como um diretório global que permite a verificação de DIDs associados a determinadas entidades. + +Os identificadores descentralizados são a razão pela qual os certificados são autocontrolados e verificáveis. Mesmo que o emissor já não exista, o titular tem sempre uma prova da proveniência e validade do certificado. + +Os identificadores descentralizados são também cruciais para proteger a privacidade das informações pessoais através da identidade descentralizada. Por exemplo, se alguém apresentar um comprovativo de um certificado (uma carta de condução), a parte verificadora não precisa de verificar a validade das informações contidas no comprovativo. Neste caso, o verificador só precisa de garantias criptográficas da autenticidade do certificado e da identidade da organização emissora para determinar se a prova é válida. + +## Tipos de certificados na identidade descentralizada {#types-of-attestations-in-decentralized-identity} + +A forma como as informações de certificação são armazenadas e recuperadas num ecossistema de identidade baseado no Ethereum é diferente da gestão de identidade tradicional. Segue-se uma visão geral das várias abordagens à emissão, armazenamento e verificação de certificados em sistemas de identidade descentralizados: + +### Certificados Off-chain {#off-chain-attestations} + +Uma preocupação com o armazenamento de certificados na cadeia é o facto de poderem conter informações que as pessoas pretendem manter privadas. A natureza pública da blockchain Ethereum torna pouco atrativo o armazenamento de tais certificados. + +A solução consiste em emitir certificados, detidos pelos utilizadores fora da cadeia em carteiras digitais, mas assinados com o DID do emissor armazenado na cadeia. Estes certificados são codificados como [JSON Web Tokens](https://en.wikipedia.org/wiki/JSON_Web_Token) e contêm a assinatura digital do emissor, o que permite uma fácil verificação de declarações fora da cadeia. + +Apresentamos aqui um cenário hipotético para explicar os certificados fora da cadeia: + +1. Uma universidade (o emissor) gera um certificado (um diploma académico digital), assina com as suas chaves e emite-o para Bob (o proprietário da identidade). + +2. Bob candidata-se a um emprego e quer provar as suas habilitações académicas a um empregador, pelo que partilha o certificado na sua carteira móvel. A empresa (o verificador) pode então confirmar a validade do certificado verificando o DID do emissor (ou seja, a sua chave pública no Ethereum). + +### Certificados fora da cadeia com acesso persistente {#offchain-attestations-with-persistent-access} + +De acordo com esse esquema, os certificados são transformados em ficheiros JSON e armazenados fora da cadeia (idealmente numa plataforma de [armazenamento descentralizado na nuvem](/developers/docs/storage/), como IPFS ou Swarm). No entanto, um [hash](/glossary/#hash) do ficheiro JSON é armazenado na cadeia e ligado a um DID através de um registo na cadeia. A DID associada pode ser a do emissor do certificado ou a do destinatário. + +Esta abordagem permite que os certificados ganhem persistência com base na blockchain, mantendo a informação dos pedidos encriptada e verificável. Permite também a divulgação seletiva, uma vez que o detentor da chave privada pode decifrar a informação. + +### Certificados Off-chain {#onchain-attestations} + +Os certificados na cadeia são mantidos em [smart contracts](/developers/docs/smart-contracts/) na blockchain Ethereum. O contrato inteligente (agindo como um registo) mapeará um certificado para um identificador descentralizado correspondente na cadeia (uma chave pública). + +Segue-se um exemplo para mostrar como os certificados na cadeia podem funcionar na prática: + +1. Uma empresa (XYZ Corp) pretende vender ações de propriedade usando um contrato inteligente, mas só quer compradores que tenham concluído uma verificação do seu historial. + +2. A XYZ Corp pode fazer com que a empresa que efetua verificações de historiais emita certificados na cadeia no Ethereum. Este certificado comprova que uma pessoa passou o inquérito pessoal sem expor qualquer informação pessoal. + +3. O contrato inteligente que efetua a venda de ações pode verificar no contrato de registo as identidades dos compradores selecionados, o que permite ao contrato inteligente determinar quem está autorizado a comprar ou não ações. + +### Tokens Soulbound (de alma) e identidade {#soulbound} + +[Tokens Soulbound](https://vitalik.ca/general/2022/01/26/soulbound.html) (NFTs não transferíveis) podem ser utilizados para recolher informações exclusivas de uma carteira específica. Isto cria efetivamente uma identidade única na cadeia ligada a um endereço Ethereum específico que pode incluir tokens que representam realizações (por exemplo, terminar um curso online específico ou passar uma pontuação limite num jogo) ou participação na comunidade. + +## Benefícios da identidade descentralizada {#benefits-of-decentralized-identity} + +1. A identidade descentralizada reforça o controlo individual das informações de identificação. Os identificadores e certificados descentralizados podem ser verificados sem depender de autoridades centralizadas ou serviços de terceiros. + +2. As soluções de identidade descentralizadas facilitam um método sem necessidade de confiança, sem falhas e com proteção da privacidade para verificar e gerir a identidade do utilizador. + +3. A identidade descentralizada aproveita a tecnologia blockchain, que cria relações de confiança entre diferentes partes e fornece garantias criptográficas para provar a validade dos certificados. + +4. A Identidade descentralizada torna portáteis os dados de identidade. Os utilizadores armazenam certificados e identificadores na carteira móvel e podem partilhá-los com qualquer entidade à sua escolha. Os identificadores e certificados descentralizados não ficam bloqueados na base de dados da organização emissora. + +5. A identidade descentralizada deve funcionar perfeitamente com as tecnologias emergentes de conhecimento zero que permitirão aos indivíduos provar que possuem ou realizaram algo sem revelar o que é esse algo. Esta pode tornar-se uma forma poderosa de combinar confiança e privacidade em aplicações como votações. + +6. A identidade descentralizada permite que os mecanismos anti-Sybil identifiquem quando um indivíduo humano está a fingir ser vários humanos para jogar ou enviar spam para um sistema. + +## Casos de utilização de identidade descentralizada {#decentralized-identity-use-cases} + +A identidade descentralizada tem muitos exemplos potenciais de utilização: + +### 1. Logins universais {#universal-dapp-logins} + +A identidade descentralizada pode ajudar a substituir os logins baseados em palavra-passe por [autenticação descentralizada](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). Os prestadores de serviços podem emitir certificados para os utilizadores, que podem ser armazenados numa carteira Ethereum. Um exemplo de certificado seria um [NFT](/nft/) que concede ao titular acesso a uma comunidade online. + +Uma função [Sign-In com Ethereum](https://login.xyz/) permitiria então aos servidores confirmar a conta Ethereum do utilizador e obter o atestado necessário a partir do endereço da sua conta. Isto significa que os utilizadores podem aceder a plataformas e websites sem terem de memorizar palavras-passe longas e permite melhorar a experiência online dos utilizadores. + +### 2. Autenticação KYC {#kyc-authentication} + +A utilização de muitos serviços online exige que as pessoas forneçam certificados e credenciais, como a carta de condução ou o passaporte emitido pelo Estado. Mas esta abordagem é problemática porque as informações privadas do utilizador podem ser comprometidas e os prestadores de serviços não podem verificar a autenticidade do certificado. + +A identidade descentralizada permite que as empresas ignorem os processos [Conheça o seu cliente (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) convencionais e autentiquem as identidades dos utilizadores através de credenciais verificáveis. Isto reduz o custo de gestão da identidade e previne a utilização de documentação falsa. + +### 3. As votações e as comunidades online {#voting-and-online-communities} + +A votação online e as redes sociais são duas novas aplicações que permitem a descentralização da identidade. Os sistemas de votação online são suscetíveis à manipulação, especialmente se atores criminosos criarem identidades falsas para votar. Pedir às pessoas que apresentem certificados na cadeia pode melhorar a integridade dos processos de votação online. + +A identidade descentralizada pode contribuir para a criação de comunidades online livres de contas falsas. Por exemplo, cada utilizador pode ter que autenticar a sua identidade usando um sistema de identidade na cadeia, como o Ethereum Name Service, limitando a possibilidade de bots. + +### 4. Proteção anti-Sybil {#sybil-protection} + +Os ataques Sybil referem-se a pessoas individuais que iludem um sistema, fazendo-o pensar que são várias pessoas para aumentar a sua influência. [Aplicações de atribuição de subsídios](https://gitcoin.co/grants/) que utilizam [votação quadrática](https://www.radicalxchange.org/concepts/plural-voting/) são vulneráveis a estes ataques Sybil porque o valor de um subsídio aumenta quando mais indivíduos votam nele, incentivando os utilizadores a dividir as suas contribuições por muitas identidades. As identidades descentralizadas ajudam a evitar esta situação, colocando sobre cada participante o ónus de provar que é realmente humano, embora muitas vezes sem ter de revelar informações privadas concretas. + +## Usar identidade descentralizada {#use-decentralized-identity} + +Existem muitos projetos ambiciosos que utilizam o Ethereum como base para soluções de identidade descentralizadas: + +- **[Ethereum Name Service (ENS)](https://ens.domains/)** - _ Um sistema de nomenclatura descentralizado para identificadores legíveis por computadores on-chain, como endereços de carteira Ethereum, hashes de conteúdo e metadados._ +- **[SpruceID](https://www.spruceid.com/)** - _Um projeto de identidade descentralizado que permite aos utilizadores controlar a identidade digital com contas Ethereum e perfis ENS em vez de dependerem de serviços de terceiros._ +- **[Ethereum Attestation Service (EAS)](https://attest.sh/)** - _Um livro-razão/protocolo descentralizado para fazer certificações na cadeia ou fora da cadeia sobre qualquer coisa._ +- **[Proof of Humanity](https://www.proofofhumanity.id)** - _Proof of Humanity (ou PoH) é um sistema de verificação de identidade social desenvolvido em Ethereum._ +- **[BrightID](https://www.brightid.org/)** - _Uma rede de identidade social descentralizada e de código aberto que procura reformular a verificação de identidade através da criação e análise de um diagrama social._ +- **[Proof-of-personhood Passport (Passaporte de prova de identidade)](https://proofofpersonhood.com/)** - _Um agregador de identidade digital descentralizado._ + +## Leitura adicional {#further-reading} + +### Artigos {#articles} + +- [Exemplos de uso de blockchain: Blockchain na Identidade Digital](https://consensys.net/blockchain-use-cases/digital-identity/) - _ConsenSys_ +- [O que é o Ethereum ERC725? Gestão da identidade auto-soberana na Blockchain](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) - _Sam Town_ +- [Como a blockchain pode resolver o problema da identidade digital](https://time.com/6142810/proof-of-humanity/) - _Andrew R. Chow_ +- [O que é identidade descentralizada e por que motivo nos devemos interessar?](https://web3.hashnode.com/what-is-decentralized-identity) - _Emmanuel Awosika_ + +### Vídeos {#videos} + +- [Identidade descentralizada (sessão de transmissão ao vivo como bónus)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) - _Um excelente vídeo explicativo sobre identidade descentralizada por Andreas Antonopolous_ +- [Sign-in com Ethereum e identidade descentralizada com Ceramic, IDX, React e 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) - _Tutorial no YouTube sobre a elaboração de um sistema de gestão de identidade para criar, ler e atualizar o perfil de um indivíduo usando a carteira Ethereum por Nader Dabit_ +- [BrightID - Identidade descentralizada no Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM) - _Episódio de podcast sobre o BrightID, uma solução de identidade descentralizada para o Ethereum_ +- [A Internet fora da cadeia: Identidade Descentralizada & Credenciais Verificáveis](https://www.youtube.com/watch?v=EZ_Bb6j87mg) - EthDenver 2022 apresentação feita por Evin McMullen + +### Comunidades {#communities} + +- [Aliança ERC-725 no GitHub](https://github.com/erc725alliance) - _Apoiantes da norma ERC725 para a gestão da identidade na blockchain Ethereum_ +- [Servidor Discord do SpruceID](https://discord.com/invite/Sf9tSFzrnt) - _Comunidade para entusiastas e programadores que trabalham no Sign-in com Ethereum_ +- [Veramo Labs](https://discord.gg/sYBUXpACh4) - _Uma comunidade de programadores que contribui para a criação de uma estrutura de dados verificáveis para aplicações_ diff --git a/public/content/translations/pt/defi/index.md b/public/content/translations/pt/defi/index.md new file mode 100644 index 00000000000..76fc07aa663 --- /dev/null +++ b/public/content/translations/pt/defi/index.md @@ -0,0 +1,352 @@ +--- +title: Finanças descentralizadas (DeFi) +description: Uma visão geral da DeFi na Ethereum +lang: pt +template: use-cases +emoji: ":money_with_wings:" +image: /use-cases/defi.png +alt: Um logótipo da Eth feito de peças de lego. +sidebarDepth: 2 +summaryPoint1: Uma alternativa global e aberta ao sistema financeiro atual. +summaryPoint2: Produtos que lhe permitem emprestar, economizar, investir, negociar e muito mais. +summaryPoint3: Com base em tecnologia de código aberto com a qual qualquer pessoa pode programar. +--- + +DeFi é um sistema financeiro aberto e global criado para a era da internet, uma alternativa a um sistema que é opaco, rigorosamente controlado e mantido por infraestruturas e processos que existem há décadas. Proporciona-lhe controlo e transparência no que respeita ao seu dinheiro. Permite-lhe ter acesso a mercados globais e a alternativas à sua moeda local ou opções bancárias. Os produtos DeFi disponibilizam serviços financeiros a qualquer pessoa com uma ligação à Internet e são, em grande medida, detidos e mantidos pelos seus utilizadores. Até à data, dezenas de milhares de milhões de dólares em criptomoedas passaram pelas aplicações DeFi e esta tendência aumenta diariamente. + +## O que é DeFi? {#what-is-defi} + +DeFi é um termo coletivo para produtos e serviços financeiros que são acessíveis a qualquer pessoa que possa usar a Ethereum - qualquer pessoa com uma ligação à Internet. Com a DeFi, os mercados estão sempre abertos e não existem autoridades centralizadas que possam bloquear pagamentos ou negar-lhe acesso ao que quer que seja. Os serviços que anteriormente eram lentos e sujeitos ao risco de erro humano são agora automáticos e mais seguros, uma vez que são geridos por um código que qualquer pessoa pode inspecionar e examinar. + +Existe uma economia de criptomoedas em expansão, onde é possível emprestar, pedir emprestado, fazer long/short, ganhar juros e muito mais. Argentinos experientes em criptomoedas utilizaram DeFi para escapar à inflação incapacitante. As empresas começaram a transmitir os salários aos seus colaboradores em tempo real. Algumas pessoas contraíram e pagaram empréstimos no valor de milhões de dólares sem a necessidade de qualquer identificação pessoal. + + + +## DeFi vs Finanças tradicionais {#defi-vs-tradfi} + +Uma das melhores maneiras de conhecer o potencial das DeFi é compreender os problemas que existem atualmente. + +- Algumas pessoas não obtêm acesso à abertura de uma conta bancária ou à utilização de serviços financeiros. +- A falta de acesso a serviços financeiros pode impedir a empregabilidade das pessoas. +- Os serviços financeiros podem impedi-lo de receber pagamentos. +- Um custo oculto dos serviços financeiros são os seus dados pessoais. +- Os governos e as instituições centralizadas podem encerrar os mercados conforme entenderem. +- Os horários de negociação estão frequentemente limitados ao horário comercial de um determinado fuso horário. +- As transferências monetárias podem demorar dias devido a processos humanos internos. +- Existe um prémio para os serviços financeiros porque as instituições intermediárias requerem a sua parte. + +### Uma comparação {#defi-comparison} + +| DeFi | Finanças Tradicionais | +| ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| O seu dinheiro está nas suas mãos. | O seu dinheiro é detido por empresas. | +| Você controla o destino do seu dinheiro e a forma como é gasto. | É necessário confiar nas empresas para que não façam uma má gestão do seu dinheiro, como conceder empréstimos a mutuários de risco. | +| As transferências de fundos são efetuadas em minutos. | Os pagamentos podem demorar dias devido a processos manuais. | +| A atividade de transação é pseudónima. | A atividade financeira está intimamente ligada à sua identidade. | +| As DeFi estão abertas a todos. | Para utilizar os serviços financeiros, é necessário candidatar-se. | +| Os mercados estão sempre abertos. | Os mercados encerram porque os funcionários precisam de pausas. | +| O sistema baseia-se na transparência: qualquer pessoa pode consultar os dados de um produto e verificar o funcionamento do sistema. | As instituições financeiras são livros fechados: não é possível pedir para consultar o seu historial de empréstimos, um registo dos seus ativos geridos, etc. | + + + Explore as aplicações DeFi + + +## Começou com a Bitcoin... {#bitcoin} + +A Bitcoin foi, em muitos aspetos, a primeira aplicação DeFi. A Bitcoin permite-lhe possuir e controlar realmente o valor e enviá-lo para qualquer parte do mundo. Para tal, proporciona uma forma de um grande número de pessoas, que não confiam umas nas outras, chegarem a acordo sobre um registo de contas sem necessidade de um intermediário de confiança. A Bitcoin está aberta a qualquer pessoa e ninguém tem autoridade para alterar as suas regras. As regras da Bitcoin, como a sua escassez e abertura, estão escritas na tecnologia. Não acontece como nas finanças tradicionais, onde os governos podem imprimir dinheiro que desvaloriza as suas poupanças e as empresas podem encerrar os mercados. + +A Ethereum baseia-se neste princípio. À semelhança da Bitcoin, as regras não podem mudar e toda a gente tem acesso. Mas também torna este dinheiro digital programável, utilizando [contratos inteligentes](/glossary#smart-contract), para que se possa ir além do armazenamento e envio de valor. + + + +## Dinheiro programável {#programmable-money} + +Isto parece estranho... "por que razão quereria eu programar o meu dinheiro"? No entanto, trata-se apenas de uma caraterística padrão dos tokens na Ethereum. Qualquer pessoa pode programar uma lógica nos pagamentos. Assim, é possível obter o controlo e a segurança da Bitcoin em combinação com os serviços prestados pelas instituições financeiras. Isso permite-lhe fazer coisas com criptomoedas que não pode fazer com a Bitcoin, como emprestar e pedir emprestado, agendar pagamentos, investir em fundos indexados e muito mais. + + +
Explore as nossas sugestões de aplicações DeFi para experimentar se é novo na Ethereum.
+ + Explore as aplicações DeFi + +
+ +## O que pode fazer com as DeFi? {#defi-use-cases} + +Existe uma alternativa descentralizada para a maioria dos serviços financeiros. Mas a Ethereum também cria oportunidades para a criação de produtos financeiros completamente novos. Esta é uma lista em constante crescimento. + +- [Envie dinheiro para todo o mundo](#send-money) +- [Transmita dinheiro em todo o mundo](#stream-money) +- [Aceda a moedas estáveis](#stablecoins) +- [Contraia empréstimos com garantias](#lending) +- [Contraia um empréstimo sem garantias](#flash-loans) +- [Inicie uma poupança em criptomoedas](#saving) +- [Negoceie tokens](#swaps) +- [Aumente o seu portfolio](#investing) +- [Financie as suas ideias](#crowdfunding) +- [Adquira seguros](#insurance) +- [Gira o seu portfolio](#aggregators) + + + +### Envie rapidamente dinheiro para todo o mundo {#send-money} + +Enquanto blockchain, a Ethereum foi concebida para enviar transações de forma segura e global. Tal como a Bitcoin, a Ethereum torna o envio de dinheiro para todo o mundo tão simples como enviar um e-mail. Basta digitar o nome [ENS do destinatário](/nft/#nft-domains) (como bob.eth) ou o endereço da carteira correspondente e o seu pagamento será enviado para o destinatário em minutos (normalmente). Para enviar ou receber pagamentos, é necessário ter uma [carteira](/wallets/). + + + Ver dapps de pagamento + + +#### Transmitir dinheiro para todo o mundo... {#stream-money} + +Também é possível transmitir dinheiro através da Ethereum. Isto permite-lhe pagar a alguém o seu salário em segundos, dando-lhe acesso ao seu dinheiro sempre que precisar dele. Ou alugue algo instantaneamente, como um cacifo ou uma scooter elétrica. + +E se não quiser enviar ou transmitir [ETH](/eth/) devido ao facto de o seu valor poder mudar, existem moedas alternativas na Ethereum: stablecoins. + + + +### Aceda a moedas estáveis {#stablecoins} + +A volatilidade das criptomoedas é um problema para muitos produtos financeiros e despesas gerais. A comunidade DeFi resolveu este problema com as stablecoins. O seu valor permanece indexado a um outro ativo, normalmente uma moeda popular como o dólar. + +Criptomoedas como o Dai ou o USDC têm um valor que se mantém a poucos cêntimos de um dólar. Isto torna-os perfeitos para ser utilizados como ganhos ou para venda a retalho. Muitas pessoas na América Latina utilizaram as stablecoins como uma forma de proteger as suas poupanças numa altura de grande incerteza em relação às moedas emitidas pelos seus governos. + + + Mais informações sobre stablecoins + + + + +### Contrair um empréstimo {#lending} + +O empréstimo de dinheiro a fornecedores descentralizados pode ser efetuado de duas formas principais. + +- Peer-to-peer, o que significa que o mutuário pedirá um empréstimo diretamente a um mutuante específico. +- Baseado num fundo comum, em que os mutuantes fornecem fundos (liquidez) a um fundo comum a partir do qual os mutuários podem contrair empréstimos. + + + Ver dapps de empréstimos + + +Existem muitas vantagens em utilizar um mutuante descentralizado... + +#### Contrair empréstimos com privacidade {#borrowing-privacy} + +Atualmente, a concessão e a obtenção de empréstimos dependem das pessoas envolvidas. Os bancos necessitam de saber se é expectável que pague um empréstimo antes de o concederem. + +Os empréstimos descentralizados funcionam sem que qualquer das partes tenha de se identificar. Em vez disso, o mutuário deve constituir uma garantia que o mutuante receberá automaticamente se o empréstimo não for reembolsado. Alguns credores aceitam até NFTs como garantia. Os NFTs são uma prova de propriedade de um ativo único, como um quadro. [Saber mais sobre NFTs](/nft/) + +Isto permite-lhe pedir um empréstimo sem ter de verificar o seu crédito ou fornecer qualquer informação privada. + +#### Acesso a fundos globais {#access-global-funds} + +Quando utiliza um mutuante descentralizado, tem acesso a fundos depositados em todo o mundo e não apenas aos fundos sob custódia do banco ou instituição que escolheu. Isto torna os empréstimos mais acessíveis e melhora as taxas de juro. + +#### Eficácias fiscais {#tax-efficiencies} + +Um empréstimo pode dar-lhe acesso aos fundos de que necessita sem ter de vender o seu ETH (um evento tributável). Em vez disso, pode utilizar ETH como garantia para um empréstimo em stablecoin. Isto dá-lhe o fluxo de caixa de que necessita e permite-lhe manter o seu ETH. Stablecoins são tokens que são muito melhores para quando precisar de dinheiro, pois não flutuam no seu valor como a ETH. [Mais informações sobre stablecoins](#stablecoins) + +#### Empréstimos flash {#flash-loans} + +Os empréstimos flash são uma forma experimental de empréstimo descentralizado que permite pedir um empréstimo sem garantias ou fornecer qualquer informação pessoal. + +Atualmente, não são muito acessíveis a pessoas não técnicas, mas dão uma ideia do que poderá estar ao alcance de todos futuramente. + +Funciona com base no facto de o empréstimo ser contraído e reembolsado na mesma transação. Se não puder ser reembolsada, a transação é anulada como se nada tivesse acontecido. + +Os fundos frequentemente utilizados são detidos em pools de liquidez (grandes pools de fundos utilizados para a contração de empréstimos). Se não estiverem a ser usados num determinado momento, cria-se uma oportunidade para alguém contrair um empréstimo desses fundos, fazer negócios com eles e reembolsá-los na totalidade, literalmente ao mesmo tempo que são emprestados. + +Tal significa que é preciso incluir muita lógica numa transação muito personalizada. Um exemplo comum é o de alguém que utiliza um empréstimo rápido para pedir emprestado o máximo de um ativo a um determinado preço para o poder vender numa bolsa diferente onde o preço é mais elevado. + +Assim, numa única transação, ocorre o seguinte: + +- É pedido um empréstimo de X montante de $asset a $1,00 do exchange A +- Vende X $asset no exchange B por $1,10 +- O empréstimo é reembolsado ao exchange A +- Fica com o lucro menos a taxa de transação + +Se a oferta do exchange B caísse subitamente e o utilizador não conseguisse comprar o suficiente para cobrir o empréstimo original, a transação simplesmente falharia. + +Para poder aplicar o exemplo anterior no mundo financeiro tradicional, seria necessária uma enorme quantidade de dinheiro. Estas estratégias para ganhar dinheiro só são acessíveis a quem já tem património. Os empréstimos instantâneos são um exemplo de um futuro em que ter dinheiro não é necessariamente um pré-requisito para ganhar dinheiro. + +[Mais informações sobre empréstimos instantâneos](https://aave.com/flash-loans/) + + + +### Comece a poupar com criptomoedas {#saving} + +#### Empréstimos {#lending} + +Pode ganhar juros sobre as suas criptomoedas emprestando-as e ver os seus fundos crescerem em tempo real. Atualmente, as taxas de juro são muito mais elevadas do que as que pode obter no seu banco tradicional (se tiver a sorte de poder aceder a um). Eis um exemplo: + +- Empresta-se 100 Dai, uma [stablecoin](/stablecoins/), a um produto como o Aave. +- Recebe 100 Aave Dai (aDai) que é um token que representa o seu Dai emprestado. +- O seu aDai aumentará com base nas taxas de juro e poderá ver o seu saldo crescer na sua carteira. Dependendo da TAEG, o saldo da sua carteira será algo como 100,1234 após alguns dias ou mesmo horas! +- Pode levantar um montante de Dai igual ao seu saldo de aDai a qualquer altura. + + + Mais sobre dapps de empréstimo + + +#### Lotarias sem perdas {#no-loss-lotteries} + +As lotarias sem perdas como a PoolTogether são uma forma divertida e inovadora de poupar dinheiro. + +- Compra-se 100 bilhetes com 100 tokens Dai. +- O utilizador recebe 100 plDai que representam os respetivos 100 bilhetes. +- Se um dos bilhetes for escolhido como vencedor, o saldo do plDai aumentará no valor do prémio. +- Se não ganhou, os 100 plDai que recebeu passam para o sorteio da semana seguinte. +- Pode levantar um montante de Dai igual ao seu saldo de plDai em qualquer altura. + +O prémio total é gerado por todos os juros gerados pelo empréstimo dos depósitos de bilhetes, como no exemplo de empréstimo acima. + + + Experimente PoolTogether + + + + +### Trocar tokens {#swaps} + +Há milhares de tokens no Ethereum. As trocas descentralizadas (DEXs) possibilitam a troca de diferentes tokens sempre que quiser. Nunca abdica do controlo dos seus ativos. É como utilizar uma agência de câmbios quando se visita um país estrangeiro. Mas a versão DeFi nunca encerra. Os mercados funcionam 24 horas por dia, 7 dias por semana, 365 dias por ano e a tecnologia garante que haverá sempre quem aceite uma transação. + +Por exemplo, se quiser usar a lotaria sem risco PoolTogether (descrita acima), precisará de um token como o Dai ou o USDC. Estas DEXs permitem-lhe trocar o seu ETH por tokens e vice-versa quando tiver terminado. + + + Ver exchanges de tokens + + + + +### Operações avançadas {#trading} + +Existem opções mais avançadas para os operadores que gostam de ter um pouco mais de controlo. São permitidas ordens limitadas, perpétuas, negociação de margem e muito mais. Com a negociação descentralizada, tem acesso à liquidez global, o mercado nunca fecha e tem sempre o controlo dos seus ativos. + +Quando utiliza um câmbiio centralizado, tem de depositar os seus ativos antes da transação e confiar que eles tomam conta deles. Enquanto os seus ativos são depositados, eles estão em risco, pois os câmbios centralizados são alvos apetecíveis para os hackers. + + + Ver dapps de negociação + + + + +### Aumente o seu portfolio {#investing} + +Existem produtos de gestão de fundos no Ethereum que tentarão fazer aumentar os seus ativos com base numa estratégia à sua escolha. É automático, aberto a todos e não necessita de um gestor humano que fique com uma parte dos lucros. + +Um bom exemplo é o [DeFi Pulse Index fund (DPI)](https://defipulse.com/blog/defi-pulse-index/). Este é um fundo que se reequilibra automaticamente para garantir que o seu portfólio sempre inclua [os principais tokens DeFi por capitalização de mercado](https://www.coingecko.com/en/defi). Não tem de gerir qualquer detalhe e pode levantar qualquer montante do fundo sempre que quiser. + + + Consultar dapps de investimento + + + + +### Financie as suas ideias {#crowdfunding} + +O Ethereum é uma plataforma ideal para o crowdfunding (financiamento coletivo): + +- Os potenciais financiadores podem vir de qualquer lado - o Ethereum e os seus tokens estão abertos a qualquer indivíduo, em qualquer parte do mundo. +- É transparente, pelo que os promotores da angariação de fundos podem provar o montante angariado. É até possível acompanhar a forma como os fundos estão a ser gastos ao longo do processo. +- Os promotores de campanhas podem configurar reembolsos automáticos se, por exemplo, houver um prazo específico e um montante mínimo que não seja cumprido. + + + Ver dapps de crowdfunding + + +#### Financiamento quadrático {#quadratic-funding} + +O Ethereum é um software de código aberto e uma grande parte do trabalho desenvolvido até à data foi financiado pela comunidade. Este cenário levou ao crescimento de um novo e interessante modelo de angariação de fundos: o financiamento quadrático. This has the potential to improve the way we fund all types of public goods in the future. + +Quadratic funding makes sure that the projects that receive the most funding are those with the most unique demand. In other words, projects that stand to improve the lives of the most people. Funciona da seguinte forma: + +1. Existe um fundo solidário para os fundos doados. +2. Inicia-se uma ronda de financiamento público. +3. Qualquer pessoa pode manifestar a sua preferência por um projeto doando algum montante. +4. Uma vez terminada a ronda, o conjunto de contribuições correspondentes é distribuído pelos projetos. Os que tiverem o pedido mais exclusivo recebem o montante mais elevado do conjunto de contribuições. + +Isto significa que o Projeto A, com os seus 100 donativos de 1 dólar, pode acabar por receber mais fundos do que o Projeto B, com um único donativo de 10.000 dólares (dependendo da dimensão da reserva de contrapartidas). + +[Mais sobre financiamento quadrático](https://wtfisqf.com) + + + +### Seguros {#insurance} + +Os seguros descentralizados têm como objetivo tornar os seguros mais baratos, mais rápidos de reembolsar e mais transparentes. Com mais automação, as coberturas são mais económicas e os pagamentos são muito mais rápidos. Os dados utilizados para decidir sobre cada reclamação são totalmente transparentes. + +Os sistemas Ethereum, como qualquer software, podem ser alvo de bugs e exploits. Por isso, atualmente, muitos produtos de seguros no mercado centram-se na proteção dos seus utilizadores contra a perda de fundos. No entanto, há projetos que começam a desenvolver uma cobertura para tudo o que a vida nos pode reservar. Um bom exemplo disto é a cobertura agrícola da Etherisc, que visa [proteger os pequenos agricultores do Quénia contra as secas e inundações](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Os seguros descentralizados podem proporcionar uma cobertura mais barata aos agricultores que, muitas vezes, não têm acesso aos seguros tradicionais. + + + Ver dapps de seguros + + + + +### Agregadores e gestores de portfólios {#aggregators} + +Com tanta iniciativa, precisará de uma forma de acompanhar todos os seus investimentos, empréstimos e negócios. Há uma série de produtos que permitem coordenar toda a atividade DeFi a partir de um único ponto. É a beleza da arquitetura aberta da DeFi. As equipas podem criar interfaces que permitam não só ver os saldos dos diferentes produtos, mas também utilizar as suas funcionalidades. Poderá ser útil para explorar melhor a DeFi. + + + Ver dapps de portefólio + + + + +## Como funciona a DeFi? {#how-defi-works} + +A DeFi usa criptomoedas e contratos inteligentes para fornecer serviços que não precisam de intermediários. No mundo atual dos negócios, as instituições financeiras atuam como avalistas das transações. Isto dá a estas instituições um poder imenso porque o nosso dinheiro é canalizado através delas. Além disso, milhares de milhões de pessoas em todo o mundo nem sequer têm acesso a uma conta bancária. + +Na DeFi, um contrato inteligente substitui a instituição financeira na transação. Um contrato inteligente é um tipo de conta Ethereum que pode reter fundos e enviá-los/reembolsá-los com base em determinadas condições. Ninguém pode alterar esse contrato inteligente quando ele está ativo - será sempre executado conforme programado. + +Um contrato concebido para distribuir uma mesada ou fundos para despesas pessoais pode ser programado para enviar dinheiro da conta A para a conta B todas as sextas-feiras. E só o fará enquanto a conta A tiver os fundos necessários. Ninguém pode alterar o contrato e acrescentar a conta C como destinatária para desviar fundos. + +Os contratos também são públicos, podendo ser fiscalizados e auditados por qualquer pessoa. Isto significa que os falsos contratos são frequentemente objeto de escrutínio comunitário muito rapidamente. + +Isto significa que atualmente é necessário confiar nos membros mais técnicos da comunidade Ethereum que sabem ler código. A comunidade baseada em código aberto ajuda a manter os programadores sob controlo, mas esta necessidade diminuirá com o tempo, à medida que os contratos inteligentes se tornarem mais fáceis de ler e forem desenvolvidas outras formas de provar a fiabilidade do código. + +## Ethereum e DeFi {#ethereum-and-defi} + +O Ethereum é a base perfeita para a DeFi por diversas razões: + +- Ninguém é proprietário da Ethereum ou dos contratos inteligentes que nela vivem, o que dá a todos a oportunidade de utilizar a DeFi. Isto também significa que ninguém pode alterar as regras que lhe são aplicadas. +- Todos os produtos DeFi falam a mesma linguagem nos bastidores: Ethereum. Isto significa que muitos dos produtos funcionam em perfeita sintonia. É possível emprestar tokens numa plataforma e trocar o token que rende juros num mercado diferente, numa aplicação totalmente diferente. É como poder trocar pontos de fidelidade no seu banco. +- Os tokens e as criptomoedas estão integrados no Ethereum, um livro-razão partilhado - manter o registo das transações e da propriedade é algo que faz naturalmente parte do Ethereum. +- O Ethereum permite uma liberdade financeira total - a maioria dos produtos nunca assumirá a custódia dos seus fundos, deixando-o com o controlo. + +Pode pensar-se na DeFi por camadas: + +1. A blockchain - Ethereum contém o histórico das transações e o estado das contas. +2. Ativos - [ETH](/eth/) e outros tokens (cripto moedas). +3. Os protocolos - [contratos inteligentes](/glossary/#smart-contract) que fornecem a funcionalidade, por exemplo, um serviço que permite o empréstimo descentralizado de ativos. +4. [As aplicações](/dapps/) - os produtos que usamos para gerir e aceder aos protocolos. + +## Criar DeFi {#build-defi} + +DeFi é um projeto de código aberto. Os protocolos e as aplicações DeFi estão todos abertos para que possa inspecionar, fazer fork e inovar. Devido a esta estrutura em camadas (todos partilham os mesmos ativos e a mesma blockchain de base), os protocolos podem ser misturados e combinados para desbloquear oportunidades de combinação únicas. + + + Mais informações sobre a criação de dapps + + +## Leitura adicional {#futher-reading} + +### Dados DeFi {#defi-data} + +- [DeFi Prime](https://defiprime.com/) +- [DeFi Llama](https://defillama.com/) +- [Taxa DeFi](https://defirate.com/) + +### Artigos DeFi {#defi-articles} + +- [Um guia para iniciados em DeFi](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) - _Sid Coelho-Prabhu, 6 de janeiro de 2020_ + +### Vídeos {#videos} + +- [Finematics - educação financeira descentralizada](https://finematics.com/) - _Vídeos sobre DeFi_ +- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _Noções básicas de DeFi: Tudo o que precisa saber para se iniciar neste cenário ocasionalmente desconcertante._ +- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _O que é DeFi?_ + +### Comunidades {#communities} + +- [Servidor Discord de DeFi Llama](https://discord.gg/buPFYXzDDd) +- [Servidor Discord DeFi Pulse](https://discord.gg/Gx4TCTk) diff --git a/public/content/translations/pt/desci/index.md b/public/content/translations/pt/desci/index.md new file mode 100644 index 00000000000..1e8a0f5f8bb --- /dev/null +++ b/public/content/translations/pt/desci/index.md @@ -0,0 +1,139 @@ +--- +title: Ciência Descentralizada (DeSci) +description: Uma visão geral da filosofia descentralizada no Ethereum +lang: pt +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Uma alternativa global e aberta ao atual sistema científico. +summaryPoint2: Tecnologia que permite aos cientistas angariar fundos, realizar experiências, partilhar dados, distribuir conhecimento e muito mais. +summaryPoint3: Baseia-se no movimento da ciência aberta. +--- + +## O que é a ciência descentralizada (DeSci)? {#what-is-desci} + +A ciência descentralizada (DeSci) é um movimento que tem como objetivo desenvolver uma infraestrutura pública para financiar, criar, rever, creditar, armazenar e disseminar o conhecimento científico de forma justa e equitativa usando a pilha Web3. + +O DeSci pretende criar um ecossistema em que os cientistas sejam incentivados a partilhar abertamente a sua investigação e a receber crédito pelo seu trabalho, permitindo simultaneamente que qualquer um aceda e contribua de forma simples para a investigação. O DeSci parte do princípio de que o conhecimento científico deve ser acessível a todos e que o processo de investigação científica deve ser transparente. O DeSci está a criar um modelo de investigação científica mais descentralizado e distribuído, tornando-o mais resistente à sua censura e ao controlo das autoridades centrais. DeSci espera criar um ambiente onde ideias novas e não convencionais possam florescer, descentralizando o acesso ao financiamento, às ferramentas científicas e aos canais de comunicação. + +A ciência descentralizada permite fontes de financiamento mais diversificadas (desde [DAOs](/dao/), [doações quadráticas](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) a crowdfunding e outras), dados e métodos de acesso mais fáceis e incentivos à reprodutibilidade. + +### Juan Benet - O Movimento DeSci + + + +## Como DeSci está a melhorar a ciência {#desci-improves-science} + +Uma lista não exaustiva dos principais problemas da ciência e da forma como a ciência descentralizada pode ajudar a resolvê-los + +| **Ciência descentralizada** | **Ciência tradicional** | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | +| A distribuição dos fundos é determinada pelo público através de mecanismos como as doações quadráticas ou as DAO. | Grupos pequenos, fechados e centralizados controlam a distribuição dos fundos. | +| Colaboramos com pares de todo o mundo em equipas dinâmicas. | As organizações de financiamento e as instituições domésticas limitam as suas colaborações. | +| As decisões de financiamento são tomadas online e de forma transparente. São explorados novos mecanismos de financiamento. | As decisões de financiamento são tomadas num longo período de tempo e com pouca transparência. Os mecanismos de financiamento são escassos. | +| A partilha de serviços laboratoriais é facilitada e mais transparente utilizando as primitivas da Web3. | A partilha de recursos laboratoriais é frequentemente lenta e opaca. | +| Podem ser desenvolvidos novos modelos de publicação que utilizem as primitivas da Web3 para garantir a confiança, a transparência e o acesso universal. | Publica através de vias estabelecidas, frequentemente reconhecidas como ineficazes, tendenciosas e exploradoras. | +| Pode ganhar tokens e reputação por rever um trabalho. | O trabalho de revisão por pares não é remunerado, beneficiando as editoras comerciais. | +| O utilizador detém a propriedade intelectual (PI) que gera e distribui de acordo com condições transparentes. | A sua instituição local é proprietária do PI que gera. O acesso ao PI não é transparente. | +| Partilha de toda a investigação, incluindo os dados de esforços mal sucedidos, através da inclusão de todas as etapas na cadeia. | O preconceito de publicação significa que é mais provável que os investigadores partilhem experiências que tiveram resultados positivos. | + +## Ethereum e DeSci {#ethereum-and-desci} + +Um sistema científico descentralizado exigirá uma segurança robusta, custos monetários e de transação mínimos e um ecossistema rico para o desenvolvimento de aplicações. O Ethereum fornece tudo o que é necessário para construir uma plataforma científica descentralizada. + +## Casos de utilização DeSci {#use-cases} + +O DeSci está a criar o conjunto de ferramentas científicas para integrar o mundo académico da Web2 no mundo digital. Apresenta-se de seguida uma amostra de casos de utilização que a Web3 pode oferecer à comunidade científica. + +### Publicações {#publishing} + +A publicação científica é notoriamente problemática porque é gerida por editoras que dependem do trabalho gratuito de cientistas, revisores e editores para gerar os artigos, mas depois cobram taxas de publicação exorbitantes. O público, que normalmente pagou indiretamente a obra e os custos de publicação através dos impostos, não pode muitas vezes aceder a essa mesma obra sem pagar novamente ao editor. As taxas totais para a publicação de artigos científicos individuais são muitas vezes de cinco dígitos ($USD), comprometendo todo o conceito de conhecimento científico como um [bem público](https://www.econlib.org/library/Enc/PublicGoods.html), ao mesmo tempo que gera enormes lucros para um pequeno grupo de editores. + +Existem plataformas de acesso livre e aberto sob a forma de servidores de pré-impressão, [como o ArXiv](https://arxiv.org/). No entanto, estas plataformas carecem de controlo de qualidade, [mecanismos anti-sybil](https://csrc.nist.gov/glossary/term/sybil_attack), e geralmente não acompanham as métricas ao nível do artigo, o que significa que normalmente só são utilizadas para divulgar trabalhos antes da sua submissão a uma editora tradicional. O SciHub também torna os artigos publicados de acesso livre, mas não legalmente, e apenas após os editores terem recebido o seu pagamento e terem enquadrado o trabalho numa legislação rigorosa de direitos de autor. Isto abre uma lacuna crítica no que respeita a documentos e dados científicos acessíveis com um mecanismo de legitimidade e um modelo de incentivos integrados. As ferramentas para construir um sistema deste género estão disponíveis na Web3. + +### Reprodutibilidade e replicabilidade {#reproducibility-and-replicability} + +A reprodutibilidade e a replicabilidade são os fundamentos de uma descoberta científica de qualidade. + +- Podem ser obtidos resultados reproduzíveis múltiplas vezes pela mesma equipa, utilizando a mesma metodologia. +- Podem ser obtidos resultados replicáveis por um grupo diferente utilizando a mesma configuração experimental. + +As novas ferramentas nativas da Web3 podem garantir que a reprodutibilidade e a replicabilidade sejam a base da pesquisa. Podemos integrar a ciência de qualidade no tecido tecnológico do mundo académico. Web3 oferece a possibilidade de criar certificações para cada componente de análise: os dados brutos, o motor computacional e o resultado da aplicação. A vantagem dos sistemas de consenso é que, quando é criada uma rede de confiança para manter estes componentes, cada participante da rede pode ser responsável por replicar o cálculo e validar cada resultado. + +### Financiamento {#funding} + +O modelo padrão atual para o financiamento da ciência é que indivíduos ou grupos de cientistas apresentem pedidos escritos a uma entidade financiadora. Um pequeno painel de pessoas de confiança avalia as candidaturas e entrevista os candidatos antes de atribuir fundos a uma parte reduzida dos candidatos. Para além de criar estrangulamentos que levam, por vezes, a anos de espera entre a candidatura e a receção de uma subvenção, este modelo é conhecido por ser altamente vulnerável aos preconceitos, interesses individuais e políticas do painel de avaliação. + +Os estudos demonstraram que os painéis de avaliação das subvenções não selecionam corretamente as propostas de elevada qualidade, uma vez que as mesmas propostas apresentadas a diferentes painéis têm resultados muito distintos. À medida que o financiamento se tornou mais escasso, concentrou-se num grupo mais pequeno de investigadores seniores com projectos intelectualmente mais conservadores. O efeito criou um cenário de financiamento hipercompetitivo, consolidando incentivos perversos e sufocando a inovação. + +A Web3 tem o potencial de romper com este modelo de financiamento obsoleto, experimentando diferentes modelos de incentivo desenvolvidos pelas DAOs e pela Web3 em geral. [Financiamento retroativo de bens públicos](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), [financiamento quadrático](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), [governança DAO](https://www.antler.co/blog/daos-and-web3-governance) e [estruturas de incentivo tokenizadas](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) são algumas das Ferramentas Web3 que podem revolucionar o financiamento da ciência. + +### Propriedade intelectual e desenvolvimento {#ip-ownership} + +A propriedade intelectual (PI) é um enorme problema na ciência tradicional: desde estar retida nas universidades ou não ser utilizada nas biotecnologias, até ser notoriamente difícil de valorizar. No entanto, a propriedade de ativos digitais (como dados ou artigos científicos) é algo que a Web3 desempenha excecionalmente bem, utilizando [tokens não fungíveis (NFTs)](/nft/). + +Da mesma forma que os NFTs podem transferir as receitas de transações futuras para o criador original, é possível estabelecer cadeias de atribuição de valor transparente para recompensar investigadores, organismos governamentais (como os DAOs) ou mesmo os participantes cujos dados são recolhidos. + +[IP-NFTs](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) também podem funcionar como uma chave para um repositório de dados descentralizado das experiências de pesquisa que estão a ser realizadas, e ligar-se à NFT e à financiarização [DeFi](/defi/) (desde a fraccionalização a pools de empréstimos e avaliação de valor). Também permite que entidades nativamente on-chain, como DAOs como [VitaDAO](https://www.vitadao.com/), conduzam pesquisas diretamente on-chain. O surgimento de tokens não transferíveis ["soulbound" tokens](https://vitalik.ca/general/2022/01/26/soulbound.html) também pode desempenhar um papel importante no DeSci, permitindo que os indivíduos comprovem a sua experiência e as credenciais ligadas ao seu endereço Ethereum. + +### Armazenamento de dados, acesso e arquitetura {#data-storage} + +Os dados científicos podem tornar-se muito mais acessíveis utilizando padrões Web3 e o armazenamento distribuído permite que a investigação sobreviva a eventos catastróficos. + +O ponto de partida deve ser um sistema acessível a qualquer identidade descentralizada que possua as credenciais verificáveis adequadas. Isto permite que os dados sensíveis sejam replicados de forma segura por entidades de confiança, possibilitando a redundância e a resistência à censura, a reprodução de resultados e até a capacidade de várias entidades colaborarem e acrescentarem novos dados ao conjunto existente. Métodos de computação confidenciais como [compute-to-data](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol) fornecem mecanismos de acesso alternativos à replicação de dados em bruto, criando Ambientes de Investigação de Confiança para os dados mais sensíveis. Os Ambientes de Investigação Confiáveis foram [citados pelo NHS](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) como uma solução para o futuro em matéria de privacidade e colaboração de dados, através da criação de um ecossistema em que os investigadores podem trabalhar em segurança com dados no local, utilizando ambientes normalizados para a partilha de códigos e práticas. + +As soluções flexíveis de dados Web3 suportam os cenários acima referidos e constituem a base para uma verdadeira Ciência Aberta, em que os investigadores podem criar bens públicos sem permissões de acesso ou taxas. As soluções de dados públicos da Web3, como IPFS, Arweave e Filecoin, são otimizadas para a descentralização. O dClimate, por exemplo, fornece acesso universal a dados climáticos e meteorológicos, incluindo de estações meteorológicas e modelos climáticos preditivos. + +## Envolva-se {#get-involved} + +Explore projetos e junte-se à comunidade DeSci. + +- [DeSci.Global: calendário de eventos e encontros a nível mundial](https://desci.global) +- [Blockchain para a ciência na rede social Telegram](https://t.me/BlockchainForScience) +- [Molecule: Financie e obtenha financiamento para os seus projetos de investigação](https://discover.molecule.to/) +- [VitaDAO: receba financiamento através de acordos de investigação patrocinados para a investigação sobre a longevidade](https://www.vitadao.com/) +- [ResearchHub: publique um resultado científico e participe numa conversa com os seus pares](https://www.researchhub.com/) +- [LabDAO: dobre uma proteína in-silico](https://alphafodl.vercel.app/) +- [API dClimate: consulte os dados climáticos recolhidos por uma comunidade descentralizada](https://api.dclimate.net/) +- [Fundação DeSci: Criação da ferramentas de publicação DeSci](https://descifoundation.org/) +- [DeSci.World: um balcão único para visualização e envolvimento dos utilizadores com a ciência descentralizada](https://desci.world) +- [Protocolo Fleming: economia de dados de fonte aberta que alimenta a descoberta biomédica participativa](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [OceanDAO: financiamento gerido por uma DAO para a ciência relacionada com os dados](https://oceanprotocol.com/dao) +- [Opscientia: fluxos científicos abertos e descentralizados](https://opsci.io/research/) +- [LabDAO: dobre uma proteína in-silico](https://alphafodl.vercel.app/) +- [Bio.xyz: obter financiamento para o seu projeto biotecnológico DAO ou DeSci](https://www.molecule.to/) +- [ResearchHub: publique um resultado científico e participe numa conversa com os seus pares](https://www.researchhub.com/) +- [VitaDAO: receba financiamento através de acordos de investigação patrocinados para a investigação sobre a longevidade](https://www.vitadao.com/) +- [Protocolo Fleming: economia de dados de fonte aberta que alimenta a descoberta biomédica participativa](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [Laboratório de Inferência Ativa](https://www.activeinference.org/) +- [CureDAO: Plataforma de saúde de precisão detida pela comunidade](https://docs.curedao.org/) +- [IdeaMarkets: possibilitando a credibilidade científica descentralizada](https://ideamarket.io/) +- [Laboratórios DeSci](https://www.desci.com/) + +Aceitamos sugestões para novos projetos a serem incluídos na lista - consulte a nossa [política de publicação na lista](/contributing/adding-desci-projects/) para começar! + +## Leitura adicional {#further-reading} + +- [DeSci Wiki por Jocelynn Pearl e Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) +- [Um guia para a biotecnologia descentralizada por Jocelynn Pearl para a16z future](https://future.a16z.com/a-guide-to-decentralized-biotech/) +- [O caso DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) +- [Guia do DeSci](https://future.com/what-is-decentralized-science-aka-desci/) +- [Recursos científicos descentralizados](https://www.vincentweisser.com/decentralized-science) +- [IP-NFTs biofarmacêuticos da Molecule - Uma descrição técnica](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) +- [Construir sistemas de ciência isentos de confiança por Jon Starr](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) +- [O surgimento de DAOs biotecnológicas](https://molecule.to/blog/the-emergence-of-biotech-daos) +- [Paul Kohlhaas - DeSci: O futuro da ciência descentralizada (podcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) +- [Uma Ontologia de Inferência Ativa para a Ciência Descentralizada: do Sensemaking Situado aos Comuns Epistémicos](https://zenodo.org/record/6320575) +- [DeSci: O Futuro da Investigação por Samuel Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) +- [Financiamento da ciência (Epílogo: DeSci e novos primitivos criptográficos) por Nadia](https://nadia.xyz/science-funding) +- [A descentralização está a desestabilizar o desenvolvimento de medicamentos](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) + +### Vídeos {#videos} + +- [O que é ciência descentralizada?](https://www.youtube.com/watch?v=-DeMklVWNdA) +- [Conversa entre Vitalik Buterin e o cientista Aubrey de Grey sobre a interseção entre a investigação da longevidade e as criptomoedas](https://www.youtube.com/watch?v=x9TSJK1widA) +- [A publicação científica está corrompida. A Web3 pode resolver este problema?](https://www.youtube.com/watch?v=WkvzYgCvWj8) +- [Juan Benet - DeSci, Independent Labs, & Ciência de dados em grande escala](https://www.youtube.com/watch?v=zkXM9H90g_E) +- [Sebastian Brunemeier - Como o DeSci pode transformar a investigação biomédica & Venture Capital](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/public/content/translations/pt/nft/index.md b/public/content/translations/pt/nft/index.md new file mode 100644 index 00000000000..1d530c0454b --- /dev/null +++ b/public/content/translations/pt/nft/index.md @@ -0,0 +1,94 @@ +--- +title: Tokens não fungíveis (NFT) +description: Uma visão geral sobre NFTs na Ethereum +lang: pt +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: Um logótipo Eth exibido através de um holograma. +summaryPoint1: Uma forma de representar algo único como um ativo baseado na Ethereum. +summaryPoint2: Os NFT estão a dar mais poder do que nunca aos criadores de conteúdo. +summaryPoint3: Desenvolvido por contratos inteligentes na blockchain Ethereum. +--- + +## What are NFTs? {#what-are-nfts} + +Os NFTs são tokens individualmente únicos. Cada NFT tem propriedades diferentes (não fungíveis) e é comprovadamente raro. Isto é diferente de tokens como os ERC-20, em que todos os tokens de um conjunto são idênticos e têm as mesmas propriedades ("fungíveis"). Não interessa que nota específica de dólar tem na sua carteira, porque são todas idênticas e valem o mesmo. No entanto, _não_ importa qual o NFT específico que possui, porque todos eles têm propriedades individuais que os distinguem uns dos outros ("não fungíveis"). + +A particularidade de cada NFT permite a tokenização de coisas como arte, objetos de coleção ou mesmo bens imobiliários, em que um NFT específico e único representa um item específico e único do mundo real ou digital. A propriedade de um ativo é garantida pela blockchain Ethereum – ninguém pode modificar o registo de propriedade ou copiar/colar um novo NFT. + + + +## A internet dos ativos {#internet-of-assets} + +Os NFT e a Ethereum resolvem alguns dos problemas que existem atualmente na Internet. À medida que tudo se torna mais digital, existe a necessidade de replicar as propriedades dos itens físicos como escassez, singularidade, e prova de propriedade. De uma forma que não seja controlada por uma organização central. Por exemplo, com os NFT, pode ser proprietário de um mp3 de música que não seja específico da aplicação de música de uma empresa, ou pode ser proprietário de um identificador de rede social que pode vender ou trocar, mas que não lhe pode ser retirado arbitrariamente por um fornecedor de plataformas. + +Veja como se parece uma internet de NFTs em comparação com a internet que a maioria usa hoje em dia... + +### Uma comparação {#nft-comparison} + +| Uma internet de NFT | A internet atual | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Os ativos são seus! Só você pode vendê-los ou trocá-los. | Aluga um ativo a uma organização. | +| Os NFT são digitalmente únicos, não existem dois NFT iguais. | Uma cópia de uma determinada entidade muitas vezes não pode ser diferenciada do original. | +| A propriedade de um NFT é registada no blockchain para que qualquer pessoa possa verificar. | Os registos de propriedade de itens digitais são armazenados em servidores controlados por instituições – devemos acreditar na palavra deles. | +| Os NFTs são contratos inteligentes na Ethereum. Isto significa que podem ser facilmente usados noutros contratos inteligentes e aplicações na Ethereum! | Geralmente, as empresas com objetos digitais necessitam da sua própria infraestrutura de "jardim amuralhado". | +| Os criadores de conteúdos podem vender o seu trabalho em qualquer lugar e aceder a um mercado global. | Os criadores dependem da infraestrutura e distribuição das plataformas que utilizam. Estes estão frequentemente sujeitos aos termos de utilização e restrições geográficas. | +| Os criadores de NFTs podem manter os direitos de propriedade sobre o seu próprio trabalho e programar os direitos de autor diretamente no contrato NFT. | As plataformas, como os serviços de streaming de música, mantêm a maioria dos lucros das vendas. | + +## Como funcionam os NFT? {#how-nfts-work} + +Como qualquer token emitido no Ethereum, os NFTs são gerados por um contrato inteligente. O contrato inteligente está em conformidade com uma das várias normas NFT (geralmente ERC-721 ou ERC-1155) que definem as funções do contrato. O contrato pode criar ("cunhar") NFTs e atribuí-los a um proprietário específico. A propriedade é definida no contrato através do mapeamento de NFTs específicos para endereços específicos. O NFT tem um ID e, normalmente, metadados associados que tornam único o token específico. + +Quando alguém cria ou cunha um NFT, está na realidade a executar uma função no contrato inteligente que atribui um NFT específico ao seu endereço. Esta informação é guardada no registo do contrato, que faz parte do blockchain. O criador do contrato pode introduzir lógica adicional no contrato, por exemplo, limitando o fornecimento total ou definindo um royalty a ser pago ao criador sempre que um token é transferido. + +## Para que servem os NFT? {#nft-use-cases} + +Os NFTs são utilizados para muitas coisas, incluindo: + +- prova de que participou num evento +- certificação da conclusão de um curso +- objetos que podem ser adquiridos para jogos +- arte digital +- tokenização de ativos do mundo real +- comprovação da sua identidade online +- acesso condicionado a conteúdos +- bilhete de acesso +- nomes de domínio de internet descentralizados +- garantia em DeFi + +Talvez seja um artista que queira partilhar o seu trabalho usando NFTs, sem perder o controlo nem dividir os lucros com intermediários. Pode criar um novo contrato e especificar o número de NFTs, as suas propriedades e uma associação a um trabalho artístico específico. Como artista, pode programar no contrato inteligente os royalties que lhe devem ser pagos (por exemplo, transferir 5% do preço de venda para o proprietário do contrato sempre que um NFT é transferido). Também pode sempre provar que criou os NFTs porque é o proprietário da carteira que desenvolveu o contrato. Os seus clientes podem facilmente provar que possuem um NFT autêntico da sua coleção porque o endereço da sua carteira está associado a um token no seu contrato inteligente. Podem utilizá-lo em todo o ecossistema Ethereum, confiantes na sua autenticidade. + +Ou considere um bilhete para um evento desportivo. Tal como o organizador do evento escolhe quantos bilhetes existem para venda, o criador de um NFT pode decidir quantas réplicas existem. Por vezes, tratam-se de réplicas exatas, tal como 5000 bilhetes de acesso geral ao evento. Outras vezes, vários bilhetes cunhados são muito semelhantes, mas com ligeiras diferenças, tal como um bilhete com lugar marcado. Estes bilhetes podem ser comprados e vendidos entre pares sem pagar a quem os distribui e o comprador tem sempre a garantia da autenticidade do bilhete, verificando o endereço do contrato. + +Em ethereum.org, os NFTs são usados para demonstrar que as pessoas contribuíram para o nosso repositório GitHub ou participaram em reuniões, e até temos o nosso próprio nome de domínio em NFT. Se é um colaborador de ethereum.org, pode pedir um NFT POAP. Alguns encontros relacionados com as criptomoedas utilizaram POAPs como bilhetes. [Saiba mais sobre como contribuir](/contributing/#poap). + +![POAP ethereum.org](./poap.png) + +Este site também tem um nome de domínio alternativo alimentado por NFTs, **ethereum.eth**. O nosso endereço `.org` é gerido centralmente por um fornecedor de nomes de domínio (DNS), ao passo que o ethereum`.eth` está registado na Ethereum através do Serviço de Nome Ethereum (ENS). E pertence-nos e é gerido por nós. [Consulte o nosso registo ENS](https://app.ens.domains/name/ethereum.eth) + +[Mais sobre ENS](https://app.ens.domains) + + + +### Segurança de NFT {#nft-security} + +A segurança da Ethereum provém da prova de participação. O sistema foi concebido para desincentivar economicamente as ações maliciosas, tornando a Ethereum à prova de adulteração. É isto que torna possível a existência dos NFT. Assim que o bloco contendo a sua transação NFT estiver finalizado, custará a um invasor milhões de ETH para o alterar. Qualquer pessoa que execute o software Ethereum seria imediatamente capaz de detetar adulteração desonesta de um NFT e o autor desse feito seria economicamente penalizado e expulso. + +As questões de segurança relacionadas com os NFT estão mais frequentemente relacionadas com esquemas de phishing, vulnerabilidades de contratos inteligentes ou erros do utilizador (como a exposição inadvertida de chaves privadas), o que torna a boa segurança da carteira crítica para os proprietários de NFT. + + + Mais informações sobre segurança + + +## Leitura adicional {#further-reading} + +- [Guia para principiantes sobre NFT](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) - _Linda Xie, janeiro de 2020_ +- [Analisador EtherscanNFT](https://etherscan.io/nft-top-contracts) +- [Norma ERC-721 para tokens](/developers/docs/standards/tokens/erc-721/) +- [Norma ERC-1155 para tokens](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/public/content/translations/pt/refi/index.md b/public/content/translations/pt/refi/index.md new file mode 100644 index 00000000000..b020a5a3d31 --- /dev/null +++ b/public/content/translations/pt/refi/index.md @@ -0,0 +1,79 @@ +--- +title: Finanças regenerativas (ReFi) +description: Uma panorâmica da ReFi e dos seus atuais casos de utilização. +lang: pt +template: use-cases +emoji: ":recycle:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Um sistema económico alternativo baseado em princípios regenerativos +summaryPoint2: Uma tentativa de aproveitar o Ethereum para resolver crises de coordenação a nível mundial, como as alterações climáticas +summaryPoint3: Uma ferramenta para aumentar drasticamente a escala dos ativos de benefícios ecológicos, como créditos de carbono verificados +--- + +## O que é DeFi? {#what-is-refi} + +**Finanças regenerativas (ReFi)** é um conjunto de ferramentas e ideias construidas sobre "blockchains", cujo objetivo é criar economias que são regenerativas, em vez de economias extrativas ou exploradoras. Eventualmente, sistemas extrativos esgotam os recursos e entram colapso, sem mecanismos regenerativos, não são sustentáveis. ReFi operam sob o pressuposto de que a criação de valor monetário deve ser desassociada da extração insustentável de recursos do nosso planeta e comunidades. + +Em vez de isso, ReFi visa resolver problemas ambientais, comunitários ou sociais ao criar ciclos regenerativos. Estes sistemas criam valor para os participantes enquanto beneficiam simultaneamente ecossistemas e comunidades. + +Um dos princípios de ReFi é o conceito de economia regenerativa criada por John Fullerton do [Capital Institute](https://capitalinstitute.org). Ele propôs oito princípios ligados entre si que criam a base para saúde sistemática: + +![Oito princípios interligados](./refi-regenerative-economy-diagram.png) + +ReFi espera aplicar estes princípios usando [contratos inteligentes](/developers/docs/smart-contracts/) e aplicações baseadas em [finanças descentralizadas (DeFi)](/defi/) para incentivar comportamentos regenerativos, e.g. restaurar ecossistemas degradados e facilitar colaboração a larga escala em problemas globais como alterações climáticas ou perda de biodiversidade. + +ReFi também se intersecta com o movimento de [ciência descentralizada (DeSci)](/desci/), que usa Ethereum como plataforma para financiar, criar, armazenar e divulgar conhecimento cientifico. Ferramentas DeSci podem eventualmente ser úteis para desenvolver normas e práticas verificáveis para implementar e monitorizar atividades regenerativas como, plantação de árvores, remoção de plástico do oceano ou o restauro de uma ecossistema degradado. + +## "Tokenization" de créditos de carbono {#tokenization-of-carbon-credits} + +O **[ mercado voluntário de carbono (MVC)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** é um mecanismo para financiar projetos que têm um impacto positivo verificado nas emissões de carbono, seja reduzindo a quantidade atual de emissões, ou removendo gases responsáveis pelo efeito estufa da atmosfera. Estes projetos recebem um ativo chamado "crédito de carbono" após serem verificados, que podem vender a individuos e organizações que querem apoiar ações contra as alterações climáticas. + +Além do VCM, existem também vários mercados de carbono governamentais ("mercados regulados") que visam estabelecer um preço ao carbono mediante leis ou regulações com uma jurisdição específica (e.g. pais ou região), controlando a emissão de licenças a serem distribuídas. Os mercados regulados incentivam os poluidores sob a sua jurisdição a reduzir emissões, mas não conseguem remover os gases responsáveis pelo efeito de estufa que já foram emitidos. + +Apesar do seu desenvolvimento ao longo das mais recentes décadas, o VCM continua a sofrer com vários problemas: + +1. Liquidez altamente fragmentada +2. Mecanismos de transação opacos +3. Taxas elevadas +4. Baixa velocidade de negociação +5. Falta de escalabilidade + +A transição do VCM para o novo **mercado digital de carbono (DCM)** baseado em “blockchain” talvez seja uma oportunidade para melhorar a tecnologia atual para validar, negociar e consumir créditos de carbono. “Blockchains” permitem verificar dados publicamente, acesso a um amplo número de utilizadores e mais liquidez. + +Projetos ReFi utilizam a tecnologia “blockchain” para aliviar muitos dos problemas do mercado tradicional: + +- **A liquidez está concentrada num pequeno número de pools de liquidez** que podem ser transacionados livremente por qualquer pessoa. As grandes organizações, bem como os utilizadores individuais, podem utilizar estes pools sem necessidade de pesquisas manuais de vendedores/compradores, taxas de participação ou registo prévio. +- **Todas as transações são registadas em blockchains públicas**. O trajeto que cada crédito de carbono percorre devido à atividade de comercialização é rastreável para sempre, assim que é disponibilizado no DCM. +- **A velocidade das transações é quase instantânea**. Garantir grandes quantidades de créditos de carbono através dos mercados tradicionais pode levar dias ou semanas, mas isso pode ser conseguido em poucos segundos no DCM. +- **A atividade comercial ocorre sem intermediários**, que praticam taxas elevadas. Os créditos de carbono digitais representam uma [melhoria de 62% nos custos em comparação com os créditos tradicionais equivalentes](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne), de acordo com dados de uma empresa de análise. +- **O DCM é expansível** e pode satisfazer as exigências tanto de particulares como de empresas multinacionais. + +### Componentes-chave do DCM {#key-components-dcm} + +Quatro componentes principais constituem o panorama atual do DCM: + +1. Registos como [Verra](https://verra.org/project/vcs-program/registry-system/) e [Gold Standard](https://www.goldstandard.org/) garantem que os projectos que criam créditos de carbono são fiáveis. Também operam as bases de dados em que os créditos de carbono digitais têm origem e podem ser transferidos ou utilizados (retirados). + +Há uma nova vaga de projetos inovadores construídos com base em blockchain que estão a tentar romper com os operadores históricos deste setor. + +2. Pontes de carbono, ou seja tokenizadores, fornecem tecnologia para representar ou transferir créditos de carbono de registos tradicionais para o DCM. Exemplos famosos incluem [Protocolo Tucano](https://toucan.earth/), [C3](https://c3.app/) e [Moss.Earth](https://moss.earth/). +3. Os serviços integrados oferecem aos utilizadores finais créditos para evitar e/ou eliminar o carbono, para que possam reclamar o benefício ambiental de um crédito e partilhar com o mundo o seu apoio à ação climática. + +Alguns como [Klima Infinity](https://www.klimadao.finance/infinity) e [Senken](https://senken.io/) oferecem uma grande variedade de projetos desenvolvidos por terceiros e emitidos sob padrões estabelecidos como Verra; outros como [Nori](https://nori.com/) oferecem apenas projetos específicos desenvolvidos sob o seu próprio padrão de crédito de carbono, que eles emitem e para o qual possuem o seu próprio mercado dedicado. + +4. As vias e infra-estruturas subjacentes que facilitam o aumento do impacto e da eficiência de toda a cadeia de abastecimento do mercado do carbono. A [KlimaDAO](http://klimadao.finance/) fornece liquidez como um bem público (permitindo a qualquer um comprar ou vender créditos de carbono a um preço transparente), incentiva o aumento do rendimento dos mercados de carbono e as retiradas com recompensas, e fornece ferramentas interoperáveis de fácil utilização para aceder a dados sobre, bem como adquirir e retirar, uma grande variedade de créditos de carbono tokenizados. + +## A ReFi para além dos mercados de carbono {#refi-beyond} + +Embora atualmente se dê uma grande ênfase aos mercados de carbono em geral e à transição do VCM para o DCM em particular, o termo "ReFi" não se limita estritamente ao carbono. Outros ativos ambientais, para além dos créditos de carbono, podem ser desenvolvidos e tokenizados, o que significa que outras externalidades negativas também podem ser precificadas nas camadas de base dos futuros sistemas económicos. Além disso, o aspeto regenerativo deste modelo económico pode ser aplicado a outras áreas, como o financiamento de bens públicos através de plataformas de financiamento quadráticas como [Gitcoin](https://gitcoin.co/). As organizações que se baseiam na ideia de participação aberta e distribuição equitativa de recursos permitem que todos canalizem dinheiro para projetos de software de código aberto, bem como para projetos educativos, ambientais e comunitários. + +Ao desviar a direção do capital das práticas extrativas para um fluxo regenerativo, os projetos e as empresas que proporcionam benefícios sociais, ambientais ou comunitários - e que poderiam não conseguir obter financiamento nas finanças tradicionais - podem sair do papel e gerar externalidades positivas para a sociedade com muito mais rapidez e facilidade. A transição para este modelo de financiamento também abre a porta a sistemas económicos muito mais inclusivos, em que a população de todos os grupos demográficos pode tornar-se participante ativa em vez de mera observadora passiva. A ReFi oferece uma visão do Ethereum como um mecanismo para coordenar a ação em relação aos desafios existenciais que a nossa espécie e toda a vida no nosso planeta enfrentam - como a camada de base de um novo paradigma económico, permitindo um futuro mais inclusivo e sustentável para os séculos vindouros. + +## Leitura adicional sobre a ReFi + +- [Uma visão geral de alto nível das divisas de carbono e do seu lugar na economia](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) +- [O Ministério do Futuro, um romance que descreve o papel de uma divisa garantida pelo carbono na luta contra as alterações climáticas](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) +- [Um relatório pormenorizado da Taskforce for Scaling Voluntary Carbon Markets](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) +- [Página de Kevin Owocki e Evan Miyazono no Glossário CoinMarketCap sobre ReFi](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/public/content/translations/pt/smart-contracts/index.md b/public/content/translations/pt/smart-contracts/index.md new file mode 100644 index 00000000000..d0a4d97136d --- /dev/null +++ b/public/content/translations/pt/smart-contracts/index.md @@ -0,0 +1,84 @@ +--- +title: Contratos inteligentes +description: Uma introdução não técnica aos contratos inteligentes +lang: pt +--- + +# Introduction to smart contracts {#introduction-to-smart-contracts} + +Os Contratos inteligentes são os blocos fundamentais na construção da camada aplicacional de Ethereum. São programas de computador gravados no “blockchain” que segue a lógica "se isto, então aquilo", e é garantido que executem conforme as regras definidas no seu código, que não podem ser alteradas, uma vez que o programa tenha sido criado. + +Nick Szabo criou o termo "contrato inteligente". Em 1994, ele escreveu [, uma introdução ao conceito](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html), e em 1996 escreveu [, uma reflexão do que os contratos inteligentes conseguiam fazer](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). + +Szabo imaginou um mercado digital onde os processos automáticos e criptograficamente seguros permitem que as transações e as funções comerciais ocorram sem intermediários de confiança. Os contratos inteligentes no Ethereum põem em prática esta visão. + +## Confiança em contratos convencionais {#trust-and-contracts} + +Um dos principais problemas de um contrato tradicional é a necessidade de indivíduos de confiança cumprirem os requisitos do contrato. + +Eis um exemplo: + +A Alice e o Bob irão participar numa corrida de bicicletas. Digamos que a Alice aposta com o Bob €10 que vai ganhar a corrida. Bob está confiante de que será o vencedor e aceita a aposta. No final, Alice termina a corrida bem à frente de Bob e é a clara vencedora. Mas Bob recusa-se a pagar a aposta, alegando que Alice deve ter feito batota. + +Este exemplo absurdo ilustra o problema de qualquer acordo não inteligente. Mesmo que as condições do acordo sejam cumpridas (ou seja, se for o vencedor da corrida), tem de confiar na outra pessoa para cumprir o acordo (ou seja, pagar a aposta). + +## A digital vending machine {#vending-machine} + +Uma metáfora simples para um contrato inteligente é uma máquina de venda automática, que funciona de forma semelhante a um contrato inteligente - entradas específicas garantem saídas pré-determinadas. + +- Seleciona um produto +- A máquina de venda automática apresenta o preço +- Você paga o montante +- A máquina de venda automática verifica se introduziu a quantidade certa +- A maquina de venda automática entrega o seu artigo + +A máquina de venda automática só distribuirá o produto desejado após cumpridos todos os requisitos. Se não selecionar um produto ou se não inserir dinheiro suficiente, a máquina de venda automática não lhe fornecerá o produto. + +## Execução automática {#automation} + +A principal vantagem de um contrato inteligente é o facto de executar de forma determinística um código inequívoco quando determinadas condições são cumpridas. Não é necessário esperar que um humano avalie ou negoceie o resultado pretendido. Isto remove a necessidade de intermediários de confiança. + +Por exemplo, pode criar um contrato inteligente que mantenha fundos em depósito para uma criança, permitindo-lhe levantar os fundos após uma data específica. Se tentarem levantar os fundos antes da data, o contrato inteligente não será executado. Ou então, poderia criar um contrato que lhe desse automaticamente uma versão digital do registo de propriedade automóvel, após pagar ao vendedor. + +## Resultados previsíveis {#predictability} + +Os Contratos tradicionais são ambíguos porque eles dependem de humanos para interpretá-los e implementá-los. Por exemplo, dois juízes podem interpretar um contrato de forma diferente, o que poderia levar a decisões inconsistentes e resultados diferentes. Os contratos inteligentes removem esta possibilidade. Em vez disso, os contratos inteligentes são executados precisamente com base nas condições escritas no código do contrato. Esta precisão significa que, dadas as mesmas circunstâncias, o contrato inteligente produzirá sempre o mesmo resultado. + +## Registo público {#public-record} + +Os contratos inteligentes são úteis para auditorias e monitorização. Uma vez que os contratos inteligentes Ethereum estão numa blockchain pública, qualquer pessoa pode acompanhar instantaneamente as transferências de ativos e outras informações relacionadas. Por exemplo, pode verificar se alguém enviou dinheiro para o seu endereço. + +## Proteção da privacidade {#privacy-protection} + +Os contratos inteligentes também protegem a sua privacidade. Uma vez que o Ethereum é uma rede pseudónima (as suas transações estão ligadas publicamente a um endereço criptográfico único, não à sua identidade), pode proteger a sua privacidade dos curiosos. + +## Condições visíveis {#visible-terms} + +Por último, tal como nos contratos tradicionais, é possível verificar o conteúdo de um contrato inteligente antes de o assinar (ou de interagir com ele). A transparência de um contrato inteligente garante que qualquer pessoa o pode examinar. + +## Exemplos de utilização de contratos inteligentes {#use-cases} + +Os contratos inteligentes podem fazer, essencialmente, tudo o que os programas informáticos fazem. + +Podem efetuar cálculos, criar divisas, armazenar dados, cunhar NFTs, enviar comunicações e até gerar gráficos. Seguem-se alguns exemplos populares e reais: + +- [Stablecoins](/stablecoins/) +- [Criar e distribuir ativos digitais únicos](/nft/) +- [Um câmbio de moeda aberto e automático](/get-eth/#dex) +- [Jogos descentralizados](/dapps/?category=gaming) +- [Uma apólice de seguro que reembolsa automaticamente](https://etherisc.com/) +- [Uma norma que permite criar divisas personalizadas e interoperáveis](/developers/docs/standards/tokens/) + +## More of a visual learner? {#visual-learner} + +Veja a Finematics a explicar os contratos inteligentes: + + + +## Leitura adicional {#further-reading} + +- [Como os contratos inteligentes vão mudar o mundo](https://www.youtube.com/watch?v=pA6CGuXEKtQ) +- [Contratos inteligentes: A tecnologia Blockchain que vai substituir os advogados](https://blockgeeks.com/guides/smart-contracts/) +- [Contratos inteligentes para programadores](/developers/docs/smart-contracts/) +- [Aprenda a criar contratos inteligentes](/developers/learning-tools/) +- [Dominar o Ethereum - O que é um contrato inteligente?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/pt/social-networks/index.md b/public/content/translations/pt/social-networks/index.md new file mode 100644 index 00000000000..295405adf61 --- /dev/null +++ b/public/content/translations/pt/social-networks/index.md @@ -0,0 +1,121 @@ +--- +title: Redes sociais descentralizadas +description: Uma visão global das redes sociais descentralizadas no Ethereum +lang: pt +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: /ethereum-learn.png +summaryPoint1: Plataformas baseadas em blockchain para interação social, criação e distribuição de conteúdo. +summaryPoint2: As redes sociais descentralizadas protegem a privacidade dos utilizadores e reforçam a segurança dos dados. +summaryPoint3: Os Tokens e NFTs criam novas formas de rentabilizar os conteúdos. +--- + +As redes sociais desempenham um papel fundamental nas nossas comunicações e interações diárias. No entanto, o controlo centralizado destas plataformas tem criado muitos problemas: violações de dados, falhas de servidores, retirada de plataformas, censura e violações de privacidade são algumas das cedências que as redes sociais fazem frequentemente. Para combater estes problemas, os programadores estão a criar redes sociais no Ethereum. As redes sociais descentralizadas podem colmatar muitos dos problemas das plataformas de redes sociais tradicionais e melhorar a experiência geral dos utilizadores. + +## O que são redes sociais descentralizadas? {#what-are-decentralized-social-networks} + +As redes sociais descentralizadas são plataformas baseadas em blockchain que permitem aos utilizadores trocar informações, bem como publicar e distribuir conteúdos a potenciais audiências. Como estas aplicações são executadas na blockchain, podem ser descentralizadas e resistentes à censura e ao controlo indevido. + +Existem muitas redes sociais descentralizadas como alternativas aos serviços de redes sociais estabelecidos, como o Facebook, o LinkedIn, o Twitter e o Medium. Mas as redes sociais com base em blockchain têm uma série de caraterísticas que as colocam à frente das plataformas sociais tradicionais. + +### Como é que as redes sociais descentralizadas funcionam? {#decentralized-social-networks-overview} + +As redes sociais descentralizadas são uma classe de [aplicações descentralizadas (dapps)](/dapps)-aplicações alimentadas por [contratos inteligentes](/developers/docs/smart-contracts/) implementados na blockchain. O código do contrato funciona como suporte para estas aplicações e define a sua lógica empresarial. + +As plataformas tradicionais de redes sociais dependem de bases de dados para armazenar informações do utilizador, código de programas e outras formas de dados. Mas isto cria pontos de falha pontuais e introduz um risco significativo. Por exemplo, os servidores do Facebook ficaram dramaticamente [offline durante horas](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) no ano passado, impedindo os utilizadores de aceder à plataforma. + +As redes sociais descentralizadas existem numa rede peer-to-peer composta por milhares de nós espalhados pelo mundo. Mesmo que alguns nós falhem, a rede funcionará sem interrupções, tornando as aplicações imunes a falhas e interrupções. + +Utilizando sistemas de armazenamento descentralizados como [o InterPlanetary File System (IPFS)](https://ipfs.io/), as redes sociais baseadas no Ethereum podem proteger as informações dos utilizadores contra utilização maliciosa e não autorizada. Ninguém conseguirá vender as suas informações pessoais a anunciantes, nem os piratas informáticos conseguirão roubar os seus dados confidenciais. + +Muitas plataformas sociais baseadas em blockchain têm tokens nativos que permitem a monetização na ausência de receitas de publicidade. Os utilizadores podem comprar estes tokens para aceder a determinadas funcionalidades, efetuar compras na aplicação ou dar gratificações aos seus criadores de conteúdos favoritos. + +## Benefícios das redes sociais descentralizadas {#benefits} + +1. As redes sociais descentralizadas são imunes à censura e estão abertas a toda a gente. Isto significa que os utilizadores não podem ser banidos, retirados da plataforma ou restringidos arbitrariamente. + +2. As redes sociais descentralizadas são baseadas em princípios de código aberto e disponibilizam o código-fonte das aplicações para inspeção pública. Ao eliminar a implementação de algoritmos pouco transparentes, comuns nas redes sociais tradicionais, as redes sociais baseadas em blockchain podem alinhar os interesses dos utilizadores e dos criadores de plataformas. + +3. As redes sociais descentralizadas eliminam o "intermediário". Os criadores de conteúdos têm propriedade direta sobre os seus conteúdos e interagem diretamente com seguidores, fãs, compradores e outros intervenientes, sem nada mais do que um contrato inteligente pelo meio. + +4. Como dapps em execução na rede Ethereum, que é sustentada por uma rede global de nós ponto a ponto, as redes sociais descentralizadas são menos suscetíveis a paralisações e interrupções de servidores. + +5. As plataformas sociais descentralizadas oferecem uma estrutura de monetização aprimorada para criadores de conteúdo por meio de tokens não fungíveis (NFTs), pagamentos criptográficos integrados nas aplicações e muito mais. + +6. As redes sociais descentralizadas proporcionam aos utilizadores um elevado nível de privacidade e anonimato. Por exemplo, um indivíduo pode iniciar sessão numa rede social baseada no Ethereum utilizando um perfil ou carteira ENS - sem ter de partilhar informações pessoalmente identificáveis (PII), tais como nomes, endereços de correio eletrónico, etc. + +7. As redes sociais descentralizadas dependem do armazenamento descentralizado e não de bases de dados centralizadas, sendo consideravelmente melhores para salvaguardar os dados dos utilizadores. + +## Redes sociais descentralizadas no Ethereum {#ethereum-social-networks} + +A rede Ethereum tornou-se a ferramenta preferida dos informáticos que criam redes sociais descentralizadas devido à popularidade dos seus tokens (ERC-20/ERC-721) e à sua imensa comunidade de utilizadores. Eis alguns exemplos de redes sociais baseadas no Ethereum: + +### Peepeth {#peepeth} + +[Peepeth](https://peepeth.com/) é uma plataforma de microblogging semelhante ao Twitter. É executado na blockchain Ethereum e utiliza o IPFS para armazenar os dados do utilizador. + +Os utilizadores podem enviar mensagens curtas chamadas "Peeps", que não podem ser apagadas ou modificadas. Pode receber ou dar gratificações a qualquer pessoa na plataforma em ether (ETH) sem sair da aplicação. + +### Mirror {#mirror} + +[Mirror](https://mirror.xyz/) é uma plataforma de texto habilitada para web3 que pretende ser descentralizada e de propriedade do utilizador. Os utilizadores podem ler e escrever gratuitamente no Mirror ligando simplesmente as suas carteiras. Os utilizadores podem também colecionar textos e subscrever os seus escritores favoritos. + +As mensagens publicadas no Mirror são permanentemente armazenadas no Arweave, uma plataforma descentralizada e podem ser cunhadas como tokens coleccionáveis [não fungíveis (NFTs)](/nft/) conhecidos como Writing NFTs. Os NFTs de escrita são totalmente gratuitos para os escritores e a recolha ocorre num Ethereum L2 - tornando as transações baratas, rápidas e amigas do ambiente. + +### MINDS {#minds} + +[MINDS](https://www.minds.com/) é uma das redes sociais descentralizadas mais utilizadas. Funciona como o Facebook e já reuniu milhões de utilizadores. + +Os utilizadores recorrem ao token ERC-20 nativo da plataforma $MIND para pagar os artigos. Os utilizadores também podem ganhar tokens $MIND publicando conteúdo interessante, contribuindo para o ecossistema e recomendando a plataforma a outras pessoas. + +## Redes sociais Web2 no Ethereum {#web2-social-networks-and-ethereum} + +As plataformas sociais nativas [Web3](/web3/) não são as únicas a tentar incorporar a tecnologia blockchain nas redes sociais. Muitas plataformas centralizadas estão também a planear integrar o Ethereum nas suas infra-estruturas: + +### Reddit {#reddit} + +O Reddit tem [propagado Community Points](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users), que são [ERC-20 tokens](/developers/docs/standards/tokens/erc-20/) que os utilizadores podem ganhar publicando conteúdo de qualidade e contribuindo para as comunidades online (subreddits). Pode resgatar estes tokens num subreddit para [obter privilégios e regalias exclusivos](https://www.reddit.com/community-points/). Para este projeto, a Reddit está a trabalhar com a Arbitrum, um rollup [layer 2](/layer-2/) concebido para colocar transações Ethereum. + +O programa já está em funcionamento, com o subreddit r / CryptoCurrency [executando a sua versão de Community Points chamada "Moons"](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). De acordo com a descrição oficial, os Moons "recompensam os autores de posts, comentários e moderadores pelas suas contribuições para o subreddit" Como estes tokens estão na blockchain (os utilizadores recebem-nos em carteiras), são independentes do Reddit e não podem ser retirados. + +Depois de concluir uma fase beta na rede de testes Rinkeby, os Reddit Community Points estão agora no [Arbitrum Nova](https://nova.arbitrum.io/), um blockchain que combina propriedades de um [sidechain](/developers/docs/scaling/sidechains/) e um [rollup otimista](/developers/docs/scaling/optimistic-rollups/). Para além de utilizarem os Community Points para desbloquear funcionalidades especiais, os utilizadores também podem trocá-los por moeda fiduciária nas bolsas de valores. Além disso, a quantidade de pontos comunitários que um utilizador possui determina a sua influência no processo de tomada de decisões na comunidade. + +### Twitter {#twitter} + +Em janeiro de 2021, o Twitter Blue [lançou o suporte para NFTs](https://mashable.com/article/twitter-blue-nft-profile-picture), permitindo que os utilizadores liguem as suas carteiras e exibam NFTs como imagens de perfil. No momento em que este artigo foi escrito, a empresa de redes sociais também [anunciou planos](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) para criar uma rede social descentralizada no futuro. + +### Instagram {#instagram} + +Em maio de 2022, [Instagram anunciou suporte para NFTs](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) no Ethereum e Polygon (entratanto revogado). Os utilizadores podem publicar NFTs diretamente no Instagram, ligando a sua carteira Ethereum. + +## Utilize redes sociais descentralizadas {#use-decentralized-social-networks} + +- **[Status.im](https://status.im/)** - _Status é uma aplicação de mensagens segura que usa um protocolo ponto a ponto de código aberto e criptografia de ponta a ponta para proteger as suas mensagens de terceiros._ +- **[Mirror.xyz](https://mirror.xyz/)** - _Mirror é uma plataforma de publicação descentralizada e de propriedade dos utilizadores, programada no Ethereum para que os utilizadores financiem ideias, monetizem conteúdo e criem comunidades de alto valor._ +- **[Lens Protocol](https://lens.xyz/)** - _O Lens Protocol é um sistema gráfico social integrado e descentralizado que ajuda os criadores a apropriarem-se do seu conteúdo onde quer que estejam no jardim digital da Internet descentralizada._ +- **[Farcaster](https://farcaster.xyz/)** - _Farcaster é uma rede social suficientemente descentralizada. É um protocolo aberto que pode suportar muitos clientes, tal como o correio eletrónico._ + +## Leitura adicional {#further-reading} + +### Artigos {#articles} + +- [Descentralizando as redes sociais: um guia para a pilha social web3](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _Coinbase Ventures_ +- [As redes sociais são a próxima grande oportunidade de descentralização](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) - _Ben Goertzel_ +- [A Web3 promete redes sociais descentralizadas e orientadas para a comunidade](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) - _Sumit Ghosh_ +- [Uma visão geral do cenário das redes sociais de blockchain](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) - _Gemini Cryptopedia_ +- [Como a Blockchain pode resolver a privacidade nas redes sociais](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) - _Prableen Bajpai_ +- [As redes de média social estão a chegar ao Blockchain](https://businesstechguides.co/what-are-decentralized-social-networks) - _Emmanuel Awosika_ +- [Descentralização suficiente para redes sociais](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) - _Varun Srinivasan_ + +### Vídeos {#videos} + +- [Média Sociais Descentralizados Explicados](https://www.youtube.com/watch?v=UdT2lpcGvcQ) - _Coinmarketcap_ +- [DeSo Blockchain quer descentralizar as redes sociais](https://www.youtube.com/watch?v=SG2HUiVp0rE) - _Bloomberg Technology_ +- [O futuro das redes sociais descentralizadas com Balaji Srinivasan, Vitalik Buterin, Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) - _ETHGlobal_ + +### Comunidades {#communities} + +- [Servidor do Discord Status](https://discord.com/invite/3Exux7Y) +- [Servidor do Discord Mirror](https://discord.com/invite/txuCHcE8wV) +- [subreddit r/CryptoCurrency](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/ro/about/index.md b/public/content/translations/ro/about/index.md similarity index 100% rename from src/content/translations/ro/about/index.md rename to public/content/translations/ro/about/index.md diff --git a/src/content/translations/ro/community/events/index.md b/public/content/translations/ro/community/events/index.md similarity index 100% rename from src/content/translations/ro/community/events/index.md rename to public/content/translations/ro/community/events/index.md diff --git a/src/content/translations/ro/community/get-involved/index.md b/public/content/translations/ro/community/get-involved/index.md similarity index 100% rename from src/content/translations/ro/community/get-involved/index.md rename to public/content/translations/ro/community/get-involved/index.md diff --git a/src/content/translations/ro/community/grants/index.md b/public/content/translations/ro/community/grants/index.md similarity index 100% rename from src/content/translations/ro/community/grants/index.md rename to public/content/translations/ro/community/grants/index.md diff --git a/src/content/translations/ro/community/language-resources/index.md b/public/content/translations/ro/community/language-resources/index.md similarity index 100% rename from src/content/translations/ro/community/language-resources/index.md rename to public/content/translations/ro/community/language-resources/index.md diff --git a/public/content/translations/ro/community/support/index.md b/public/content/translations/ro/community/support/index.md new file mode 100644 index 00000000000..82a2708b81c --- /dev/null +++ b/public/content/translations/ro/community/support/index.md @@ -0,0 +1,109 @@ +--- +title: Asistență pentru Ethereum +description: Obțineți asistență în ecosistemul Ethereum. +lang: ro +--- + +# Asistență pentru Ethereum {#support} + +## Asistența oficială pentru Ethereum {#official-support} + +Căutați asistența oficială pentru Ethereum? Primul lucru pe care trebuie să îl știți este că Ethereum este descentralizat. Acest lucru înseamnă că nicio organizație, entitate sau persoană nu deține Ethereum și din acest motiv nu există canale oficiale de asistență. + +Înțelegerea naturii descentralizate a lui Ethereum este vitală, deoarece oricine pretinde a reprezenta asistența oficială pentru Ethereum încearcă probabil să vă escrocheze! Cea mai bună protecție împotriva escrocilor este să vă educați și să luați în serios securitatea. + + + Securitatea și prevenirea fraudelor la Ethereum + + + + Învățați noțiunile de bază ale lui Ethereum + + +În ciuda lipsei de asistență oficială, multe grupuri, comunități și proiecte din ecosistemul Ethereum vă ajută bucuros. + +## Asistență pentru portofele {#wallet-support} + +Aveți probleme cu portofelul dvs.? Majoritatea portofelelor au echipe de asistență dedicate, care vă pot ajuta: + +- [MetaMask](https://metamask.zendesk.com/hc/) +- [Argent](https://support.argent.xyz/hc/) +- [MyEtherWallet](https://help.myetherwallet.com/) + +_Aceasta nu este o listă exhaustivă. Aveți nevoie de ajutor ca să găsiți asistență pentru un anumit portofel? Alăturați-vă la [ethereum.org discord](https://discord.gg/ethereum-org) și vom încerca să vă ajutăm._ + +Căutați un portofel Ethereum? [Explorați lista noastră completă de portofele Ethereum](/wallets/find-wallet/). + +## Construirea aplicațiilor dapp {#building-support} + +Poate fi dificil de construit. Iată câteva spații de dezvoltare cu dezvoltatori Ethereum experimentați care sunt bucuroși să vă ajute. + +- [CryptoDevs discord](https://discord.gg/Z9TA39m8Yu) +- [Ethereum StackExchange](https://ethereum.stackexchange.com/) +- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) +- [Web3 University](https://www.web3.university/) + +Puteți să găsiți documentație și ghiduri de dezvoltare și în secțiunea noastră [Resurse pentru dezvoltatorii Ethereum](/developers/). + +### Instrumente {#dapp-tooling} + +Întrebarea dvs. se referă la un anumit instrument, proiect sau bibliotecă? Cele mai multe proiecte au servere de chat sau forumuri consacrate pentru a vă sprijini. + +Iată doar câteva exemple populare: + +- [Solidity](https://gitter.im/ethereum/solidity/) +- [ethers.js](https://discord.gg/6jyGVDK6Jx) +- [web3.js](https://discord.gg/GsABYQu4sC) +- [Hardhat](https://discord.gg/xtrMGhmbfZ) +- [Truffle](https://discord.gg/8uKcsccEYE) +- [Alchemy](http://alchemy.com/discord) + +## Rularea unui nod {#node-support} + +Dacă rulați un nod sau un validator, iată câteva comunități dedicate să vă ofere ajutor să începeți. + +- [EthStaker discord](https://discord.gg/ethstaker) +- [EthStaker reddit](https://www.reddit.com/r/ethstaker) + +Cele mai multe dintre echipele care construiesc clienți Ethereum au de asemenea spații dedicate, cu caracter public, unde puteți obține asistență și pune întrebări. + +### Clienți de execuție {#execution-clients} + +- [Geth](https://discord.gg/FqDzupGyYf) +- [Nethermind](https://discord.gg/YJx3pm8z5C) +- [Besu](https://discord.gg/p8djYngzKN) +- [Erigon](https://github.com/ledgerwatch/erigon/issues) + +### Clienți de consens {#consensus-clients} + +- [Prysm](https://discord.gg/prysmaticlabs) +- [Nimbus](https://discord.gg/nSmEH3qgFv) +- [Lighthouse](https://discord.gg/cyAszAh) +- [Teku](https://discord.gg/7hPv2T6) +- [Lodestar](https://discord.gg/aMxzVcr) + +De asemenea, puteți [învăța cum să executați un nod aici](/developers/docs/nodes-and-clients/run-a-node/). + +## Întrebări frecvente {#faq} + +### Am trimis ETH către un portofel greșit {#wrong-wallet} + +O tranzacție trimisă pe Ethereum este ireversibilă. Din nefericire, dacă ați trimis ETH către un portofel greșit, nu există nicio posibilitate de a recupera aceste fonduri. Nicio organizație centrală, entitate sau persoană nu deține Ethereum, ceea ce înseamnă că nimeni nu poate anula tranzacțiile. De aceea, este vital să vă verificați întotdeauna de două ori tranzacțiile înainte de a le trimite. + +### Cum pot să îmi revendic giveaway-ul (cadoul) Ethereum? {#giveaway-scam} + +Cadourile Ethereum sunt escrocherii concepute pentru a vă fura ETH-ul. Nu vă lăsați tentat de oferte care par prea bune pentru a fi adevărate — dacă trimiteți ETH la o adresă de giveaway, nu veți primi un cadou și nu veți putea să vă recuperați fondurile. + +[Mai multe despre prevenirea fraudelor](/security/#common-scams) + +### Tranzacția mea este blocată {#stuck-transaction} + +Tranzacțiile pe Ethereum pot rămâne uneori blocate dacă ați trimis un comision de tranzacție mai mic decât cel cerut din cauza cererii din rețea. Multe portofele oferă opțiunea de a retrimite aceeași tranzacție cu un comision de tranzacție mai mare, pentru a permite ca tranzacția să fie procesată. În mod alternativ, puteți anula o tranzacție în așteptare, trimițând o tranzacție la propria dvs. adresă și utilizând același nonce ca și tranzacția în așteptare. + +[Cum să accelerați sau să anulați o tranzacție în așteptare pe MetaMask](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) + +[Cum să anulați tranzacțiile în așteptare pe Ethereum](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) + +### Cum pot să minez pe Ethereum? {#mining-ethereum} + +Nu vă recomandăm să cumpărați echipament de minare dacă nu ați minat deja pe Ethereum. În -T2 2022 va avea loc [fuziunea](/roadmap/merge/), prin care Ethereum va trece de la dovada-muncii la dovada-mizei. Această schimbare înseamnă că minarea pe Ethereum nu va mai fi posibilă. diff --git a/public/content/translations/ro/dao/index.md b/public/content/translations/ro/dao/index.md new file mode 100644 index 00000000000..86cd829b4ca --- /dev/null +++ b/public/content/translations/ro/dao/index.md @@ -0,0 +1,116 @@ +--- +title: Organizațiile autonome descentralizate (DAO) +description: Prezentare generală a organizațiilor DAO de pe Ethereum +lang: ro +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: O reprezentare a votului unui DAO în favoarea unei propuneri. +summaryPoint1: Comunități deținute de membri, fără o conducere centralizată. +summaryPoint2: Un mod sigur de a colabora cu persoane necunoscute pe internet. +summaryPoint3: Un loc sigur unde se pot aloca fonduri pentru o cauză anume. +--- + +## Ce sunt organizațiile DAO? {#what-are-daos} + +Organizațiile DAO constituie o modalitate eficientă și sigură de a lucra cu oameni care împărtășesc aceleași idei din întreaga lume. + +Considerați-le o afacere pe internet care este deținută și administrată colectiv de membrii săi. Ele au trezorerii încorporate pe care nimeni nu are autoritatea de a le accesa fără aprobarea grupului. Deciziile sunt luate prin propuneri și prin vot, pentru a garata ca fiecare din cadrul organizației să aibă un cuvânt de spus. + +Nu există niciun CEO care să autorizeze cheltuieli pe baza propriilor capricii, și nicio șansă ca un CFO dubios să manipuleze registrele contabile. Totul se petrece în mod deschis și regulile pentru cheltuieli sunt integrate în DAO prin codul acesteia. + +## De ce avem nevoie de organizații DAO? {#why-dao} + +Ca să puneți bazele unei organizații împreună cu cineva printr-un proces care implică finanțare și bani, aveți nevoie de multă încredere în oamenii cu care lucrați. Dar este greu să aveți încredere în cineva cu care nu ați interacționat decât pe internet. În cazul organizațiilor DAO, nu trebuie să aveți încredere în nimeni altcineva din grup, ci doar să vă bazați pe codul DAO, care este 100% transparent și oricine îl poate verifica. + +Acest lucru deschide atât de multe oportunități noi de colaborare și coordonare la nivel mondial. + +### O comparație {#dao-comparison} + +| DAO | O organizație tradițională | +| -------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | +| De obicei are structură pe orizontală și este complet democratizată. | De obicei are structură ierarhică. | +| Este necesar votul membrilor pentru implementarea oricărei modificări. | În funcție de structură, modificările pot fi solicitate de o singură parte sau se poate propune votul. | +| Se numără voturile și rezultatul este pus în aplicare în mod automat, fără intermediar fiabil. | Dacă votul este permis, voturile sunt numărate pe plan intern, iar rezultatul votului trebuie gestionat manual. | +| Serviciile oferite sunt gestionate automat în mod descentralizat (de exemplu, distribuirea fondurilor filantropice). | Necesită manipulare umană sau automatizare controlată centralizat, expusă manipulării. | +| Toată activitatea este transparentă și pe deplin publică. | Activitatea este în general privată și limitată publicului. | + +### Exemple de organizaţii DAO {#dao-examples} + +Ca să înțelegeți mai bine, iată câteva exemple despre cum ați putea utiliza o organizație DAO: + +- O organizație caritabilă – puteți accepta calitatea de membru și donațiile de la oricine din lume, iar grupul poate decide cum dorește să cheltuiască donațiile. +- O rețea de liber-profesioniști – ați putea crea o rețea de contractanți care să își pună în comun fondurile pentru spații de birou și abonamente de software. +- Parteneriate și subvenții – ați putea crea un fond de investiții care să colecteze capital de investiții și să voteze cu privire la proiectele pe care să le sprijine. Banii rambursați ar putea fi redistribuiți ulterior între membrii DAO. + +## Membrii DAO {#dao-membership} + +Există diferite modele pentru membrii DAO. Membrii pot determina modul în care funcționează votul și alte aspecte cheie ale organizaţiei DAO. + +### Membru pe baza tokenurilor {#token-based-membership} + +De obicei nu necesită permisiuni, este în funcție de tokenul utilizat. Cele mai multe dintre aceste tokenuri de guvernare pot fi tranzacționate fără permisiune, prin schimb descentralizat. Altele trebuie să fie câștigate prin furnizarea de lichidități sau alte „dovezi de muncă”. În orice caz, simplul fapt de a deține tokenul acordă accesul la vot. + +_De obicei guvernează protocoalele descentralizate ample și/sau tokenurile înseși._ + +#### Un exemplu celebru {#token-example} + +[MakerDAO](https://makerdao.com) - Token-ul MakerDAO, MKR, este disponibil pe scară largă în schimburile descentralizate. Așa că oricine poate să cumpere, pentru a avea putere de vot pe viitorul protocol Maker. + +### Calitatea de membru bazată pe acțiuni {#share-based-membership} + +Organizaţiile DAO bazate pe acțiuni sunt mai permisive, dar încă destul de deschise. Orice potențiali membri pot prezenta o propunere de aderare la organizaţia DAO, oferind de obicei tribut de o anumită valoare sub formă de token-uri sau de muncă. Acțiunile reprezintă puterea de vot direct și titlul de proprietate. Membrii pot ieși oricând cu partea lor proporțională din trezorerie. + +_De obicei sunt folosite pentru organizații umanitare cu rânduri strânse, precum organizaţiile caritabile, colectivitățile de muncitori și cluburile de investiții. De asemenea, pot guverna protocoalele și token-urile._ + +#### Un exemplu celebru {#share-example} + +[MolochDAO](http://molochdao.com/) – MolochDAO se axează pe finanțarea proiectelor Ethereum. Acestea necesită o propunere de aderare, astfel încât grupul să poată evalua dacă aveţi experienţa și capitalul necesar pentru a-i evalua în cunoștință de cauză pe potențiali beneficiari. Nu puteți pur și simplu să cumpărați accesul la organizaţia DAO pe piața deschisă. + +## Cum funcționează organizaţiile DAO? {#how-daos-work} + +Temelia unei organizaţii DAO este reprezentată de contractul său inteligent. Contractul definește regulile organizației și deține trezoreria grupului. Odată ce contractul este live pe Ethereum, nimeni nu poate modifica regulile decât prin vot. Dacă cineva încearcă să facă ceva ce nu corespunde regulilor și logicii din cod, nu va reuşi. Iar pentru că și trezoreria este definită prin contractul inteligent, nimeni nu poate nici cheltui banii fără aprobarea grupului. Asta înseamnă că organizaţiile DAO nu au nevoie de o autoritate centrală. În schimb, grupul ia decizii în mod colectiv, iar plățile sunt autorizate automat la câştigarea voturilor. + +Acest lucru este posibil deoarece contractele inteligente nu pot fi falsificate odată ce ajung live pe Ethereum. Nu puteţi pur și simplu să modificaţi codul (regulile organizaţiei DAO) fără ca lumea să observe, pentru că totul este public. + + + Mai multe despre contractele inteligente + + +## Ethereum și organizaţiile DAO {#ethereum-and-daos} + +Ethereum este fundația perfectă pentru organizaţiile DAO din mai multe motive: + +- Consensul lui Ethereum este distribuit și stabilit suficient pentru ca organizațiile să aibă încredere în rețea. +- Codul contractului inteligent nu poate fi modificat odată ce este live, nici chiar de către proprietarii săi. Acest lucru permite organizaţiei DAO să funcționeze după regulile cu care a fost programată. +- Contractele inteligente pot trimite/primi fonduri. În caz contrar, aţi avea nevoie de un intermediar de încredere ca să gestioneze fondurile grupului. +- Comunitatea Ethereum s-a dovedit a fi mai mult colaborativă decât competitivă, permițând apariția rapidă a celor mai bune practici și a sistemelor de asistenţă. + +## Intraţi într-o organizaţie DAO sau creaţi-o {#join-start-a-dao} + +### Intraţi într-o organizaţie DAO {#join-a-dao} + +- [Organizaţiile DAO din comunitatea Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [Lista de organizaţii DAO din DAOHaus](https://app.daohaus.club/explore) + +### Puneți bazele unei organizații DAO {#start-a-dao} + +- [Creați o organizație DAO cu DAOHaus](https://app.daohaus.club/summon) +- [Creați o organizație DAO acționată prin Aragon](https://aragon.org/product) +- [Puneți bazele unei colonii](https://colony.io/) +- [Construiți o organizație DAO cu DAOstack](https://daostack.io/) + +## Referințe suplimentare {#further-reading} + +### Articole despre DAO {#dao-articles} + +- [Ce este o organizaţie DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) +- [House of DAOs](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) +- [Ce este o organizaţie DAO și la ce folosește?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) +- [Cum să puneți bazele unei comunități digitale acționate prin DAO](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) +- [Ce este o organizație DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) + +### Videoclipuri {#videos} + +- [Ce înseamnă DAO în cripto?](https://youtu.be/KHm0uUPqmVE) diff --git a/public/content/translations/ro/defi/index.md b/public/content/translations/ro/defi/index.md new file mode 100644 index 00000000000..ebeb3a848d9 --- /dev/null +++ b/public/content/translations/ro/defi/index.md @@ -0,0 +1,351 @@ +--- +title: Finanțe descentralizate (DeFi) +description: Prezentare generală a DeFi de pe Ethereum +lang: ro +template: use-cases +emoji: ":money_with_wings:" +image: /use-cases/defi.png +alt: Sigla Eth alcătuită din piese lego. +sidebarDepth: 2 +summaryPoint1: O alternativă la actualul sistem financiar, mondială și deschisă. +summaryPoint2: Instrumente care vă permit efectuarea de împrumuturi, economii, investiții, comerț etc. +summaryPoint3: Pe baza tehnologiei open-source cu care poate programa oricine. +--- + +DeFi este un sistem financiar deschis și mondial conceput pentru era internetului – o alternativă la un sistem opac, controlat îndeaproape și menținut în funcțiune prin infrastructuri și procese vechi de zeci de ani. Acesta vă oferă controlul și vizibilitatea asupra banilor dvs. Vă oferă vizibilitate pe piețele mondiale și alternative la moneda dvs. locală sau la opțiunile bancare. Produsele DeFi dau acces la servicii financiare oricui are o conexiune la internet și sunt în mare parte deținute și întreținute de utilizatorii lor. Cripto în valoare de zeci de miliarde de dolari a circulat prin aplicațiile DeFi până acum și această sumă crește pe zi ce trece. + +## Ce este DeFi? {#what-is-defi} + +DeFi este un termen colectiv pentru produsele și serviciile financiare care sunt accesibile oricui poate utiliza Ethereum – oricui are o conexiune la internet. Cu DeFi, piețele sunt întotdeauna deschise și nu există autorități centralizate care să vă blocheze plățile sau să vă interzică accesul la ceva. Serviciile care înainte erau lente și riscau să fie afectate de erori umane sunt automate și mai sigure acum, când sunt gestionate de coduri pe care oricine le poate inspecta și verifica. + +Există o economie cripto în plină expansiune, în care puteți să dați cu împrumut, să luați cu împrumut, să investiți pe termen lung sau scurt, să câștigați dobândă și multe altele. Argentinienii experți în domeniul cripto, au folosit DeFi pentru a scăpa de inflația paralizantă. Companiile au început să transmită prin internet salariile propriilor angajați în timp real. Unii oameni chiar au contractat și plătit împrumuturi în valoare de milioane de dolari fără a fi nevoie de vreo identificare personală. + + + +## DeFi în comparație cu finanțele tradiționale {#defi-vs-tradfi} + +Unul dintre cele mai bune moduri de a ne da seama de potențialul DeFi este prin înțelegerea problemelor actuale. + +- Unele persoane nu beneficiază de dreptul de a deschide un cont bancar sau de a folosi servicii financiare. +- Dacă nu au acces la servicii financiare, este posibil ca oamenii să nu se poată angaja. +- Serviciile financiare vă pot bloca plățile. +- Serviciile financiare vă costă datele personale, un cost ascuns. +- Guvernele și instituțiile centralizate pot să închidă piețele după bunul plac. +- Orele de tranzacționare se limitează adesea la orele de lucru pe anumite fusuri orare. +- Transferurile de bani pot dura zile întregi datorită unor procese umane interne. +- Serviciile financiare vă costă în plus, pentru că instituțiile intermediare își cer partea lor. + +### O comparație {#defi-comparison} + +| DeFi | Finanțele tradiționale | +| ------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Dvs. vă țineți banii. | Companiile vă țin banii. | +| Dvs. controlați unde vă merg banii și cum sunt cheltuiți. | Trebuie să vă bazați pe companii că nu vă gestionează prost banii, ca de exemplu acordând împrumuturi unor debitori riscanți. | +| Transferurile de fonduri se efectuează în câteva minute. | Plățile pot să dureze zile întregi din cauza proceselor manuale. | +| Activitatea de tranzacționare are loc sub pseudonim. | Activitatea financiară are o legătură strânsă cu identitatea dvs. | +| DeFi este deschis tuturor. | Trebuie să depuneți o cerere pentru a putea folosi serviciile financiare. | +| Piețele sunt întotdeauna deschise. | Piețele se închid pentru că angajații trebuie să ia pauze. | +| Este construită pe transparență – oricine se poate uita la datele unui produs și poate inspecta modul în care funcționează sistemul. | Instituțiile financiare sunt registre închise: nu puteți solicita să le vedeți istoricul de împrumuturi, o evidență a activelor pe care le gestionează și altele. | + + + Explorați aplicațiile DeFi + + +## A început cu Bitcoin... {#bitcoin} + +Bitcoin a fost, în multe privințe, prima aplicație DeFi. Bitcoin vă permite să dețineți și să controlați valori cu adevărat și să le trimiteți în întreaga lume. Face aceasta oferind o cale prin care un număr mare de oameni care nu au încredere între ei să se pună de acord asupra unui registru de conturi fără a fi nevoie de un intermediar de încredere. Bitcoin este deschis oricui și nimeni nu are autoritatea de a-i schimba regulile. Regulile Bitcoin, cum ar fi raritatea și deschiderea sa, sunt înscrise în tehnologie. Nu este ca finanțele tradiționale, în care guvernele pot tipări bani care vă devalorizează economiile şi companiile pot închide piețele. + +Ethereum construieşte pe aceste baze. La fel ca în cazul Bitcoin, regulile nu se pot schimba fără să fiţi consultat și oricine deţine accesul. Dar aceasta face şi ca acești bani digitali să fie programabili, folosind [contractele inteligente](/glossary#smart-contract), astfel încât să puteți ajunge mai departe de stocarea și trimiterea de valori. + + + +## Bani programabili {#programmable-money} + +Asta sună ciudat... „De ce aș vrea să-mi programez banii”? Cu toate acestea, este mai degrabă o funcţionalitate implicită a tokenurilor de pe Ethereum. Oricine poate programa logica în plăți. Așa că puteți obține controlul și securitatea Bitcoin îmbinate cu serviciile oferite de instituțiile financiare. Aceasta vă permite să faceți cu criptomonedele lucruri pe care nu le puteți face cu Bitcoin, cum ar fi a lua şi a da cu împrumut, a planifica plăţile, a investi în fonduri de indexare și multe altele. + + +
Explorați sugestiile noastre de aplicațiile DeFi pe care să le testaţi dacă nu aţi mai folosit Ethereum.
+ + Explorați aplicațiile DeFi + +
+ +## Ce puteți face cu DeFi? {#defi-use-cases} + +Există o alternativă descentralizată la majoritatea serviciilor financiare. Dar Ethereum oferă de asemenea oportunități pentru crearea de produse financiare complet noi. Aceasta este o listă în permanentă creștere. + +- [Trimiteți bani în întreaga lume](#send-money) +- [Trimiteți bani în flux în întreaga lume](#stream-money) +- [Aveți acces la monedele stabile](#stablecoins) +- [Luați cu împrumut fonduri cu garanții](#lending) +- [Luați cu împrumut fără garanții](#flash-loans) +- [Începeți să economisiți cripto](#saving) +- [Tranzacționați tokenuri](#swaps) +- [Vă măriți propriul portofoliu](#investing) +- [Vă finanțați propriile idei](#crowdfunding) +- [Cumpărați asigurări](#insurance) +- [Vă gestionați propriul portofoliu](#aggregators) + + + +### Trimiteți rapid bani în întreaga lume {#send-money} + +Ca blockchain, Ethereum este destinat tranzacțiilor în mod securizat și la nivel mondial. Ca și Bitcoin, Ethereum trimite bani în întreaga lume tot atât de ușor cum s-ar trimite un e-mail. Introduceți [numele ENS](/nft/#nft-Domains) al destinatarului (precum bob.eth) sau adresa contului acestuia din portofel și plata va fi efectuată direct către acesta în câteva minute (de obicei). Pentru a trimite sau a primi plăți, aveți nevoie de un [portofel](/wallets/). + + + Vedeți aplicațiile dapp de plată + + +#### Trimiteți bani în flux în întreaga lume... {#stream-money} + +Puteți să trimiteți bani în flux și prin Ethereum. Acest lucru vă permite să plătiți cuiva salariul la secundă, oferindu-i acestuia acces la bani oricând are nevoie de ei. Sau să închiriați ceva la secundă, cum ar fi un spațiu de depozitare sau un scuter electric. + +Și dacă nu doriți să trimiteți sau să transmiteți în flux [ETH](/eth/) din cauză că se modifică mult valoarea acestuia, există monede alternative pe Ethereum: stablecoins. + + + +### Accesați monedele stabile {#stablecoins} + +Volatilitatea criptomonedelor reprezintă o problemă pentru o mulțime de produse financiare și pentru cheltuielile generale. Comunitatea DeFi a rezolvat această problemă cu ajutorul stablecoin-urilor. Valoarea lor rămâne legată de un alt activ, de obicei o monedă populară, cum ar fi dolarul. + +Monede precum Dai sau USDC au o valoare care se menține la câțiva cenți de un dolar. Acest lucru le face perfecte pentru câștiguri sau pentru vânzarea cu amănuntul. Mulți oameni din America Latină au folosit stablecoin-urile ca o modalitate de a-și proteja economiile într-o perioadă de mare incertitudine pentru monedele emise de guvernele lor. + + + Mai multe despre stablecoins + + + + +### Împrumuturile {#lending} + +Împrumuturile de la furnizorii descentralizați se prezintă în două varietăți principale. + +- Direct între participanți (peer-to-peer), adică un debitor va împrumuta direct de la un anume creditor. +- Pe bază de fonduri comune (pool-based), în care creditorii pun la dispoziție fonduri (lichidități) într-o rezervă comună din care debitorii pot împrumuta. + + + Vedeți dapp-urile de împrumut + + +Există multe avantaje la utilizarea unui creditor descentralizat... + +#### Împrumut în condiții de confidențialitate {#borrowing-privacy} + +În prezent, creditarea de bani și luarea cu împrumut a acestora se petrece între persoanele implicate. Băncile trebuie să știe care este probabilitatea să rambursați un împrumut înainte de a-l acorda. + +Împrumuturile descentralizate funcționează fără ca vreuna dintre părți să fie nevoită să se identifice. În schimb, debitorul trebuie să depună o garanție pe care creditorul o va primi automat dacă împrumutul nu este rambursat. Unii creditori acceptă chiar și NFT-uri ca garanție. NFT-ul este un act de proprietate asupra unui bun unic, cum ar fi o pictură. [Mai multe despre NFT-uri](/nft/) + +Acest lucru vă permite să împrumutați bani fără verificări de credit sau comunicarea de informații private. + +#### Acces la fonduri mondiale {#access-global-funds} + +Când folosiți un creditor descentralizat, aveți acces la fonduri depuse din întreaga lume, nu doar la fondurile aflate în custodia băncii sau instituției pe care o alegeți. Acest lucru face împrumuturile mai accesibile și îmbunătățește ratele dobânzilor. + +#### Eficiențe fiscale {#tax-efficiencies} + +Împrumuturile vă pot oferi acces la fondurile de care aveți nevoie fără a fi nevoie să vă vindeți ETH-ul (un eveniment impozabil). În schimb, puteți să folosiți ETH ca garanție pentru un împrumut în stablecoin. Acest lucru vă oferă fluxul de numerar de care aveți nevoie și vă permite să vă păstraţi ETH-ul. Stablecoin-urile sunt tokenuri mult mai adecvate atunci când aveți nevoie de numerar, deoarece nu fluctuează ca valoare precum ETH-ul. [Mai multe despre stablecoin-uri](#stablecoins) + +#### Împrumuturi flash {#flash-loans} + +Împrumuturile flash sunt o formă mai experimentală de împrumut descentralizat care vă permit să luaţi cu împrumut fără să oferiți garanții sau să furnizați informații personale. + +În acest moment nu sunt accesibile pe scară largă pentru persoanele fără cunoștințe tehnice, dar ele sugerează ce ar fi posibil pentru toată lumea în viitor. + +Funcționează pe baza faptului că împrumutul este contractat și rambursat în cadrul aceleiași tranzacții. Dacă nu poate fi rambursat, tranzacția se anulează ca și cum nu ar fi avut loc nimic. + +Fondurile care sunt adesea utilizate sunt deținute în fonduri de lichiditate (fonduri comune mari utilizate pentru împrumuturi). Dacă nu sunt utilizate la un moment dat, acest lucru creează o oportunitate ca cineva să împrumute aceste fonduri, să facă afaceri cu ele și să le ramburseze integral literalmente la momentul în care sunt împrumutate. + +Acest lucru înseamnă că trebuie inclusă logică într-o tranzacție foarte personalizată. Un exemplu simplu ar putea fi când cineva utilizează un împrumut flash pentru a lua cu împrumut cât mai multe active la un anumit preț, ca să le poată vinde în cadrul unui alt schimb la care prețul este mai mare. + +Așadar, într-o singură tranzacție au loc următoarele: + +- Împrumutaţi o cantitate X de $asset la 1,00 $ de la schimbul A +- Vindeți X $asset pe schimbul B la 1,10 $ +- Plătiți împrumutul înapoi la schimbul A +- Păstrați profitul minus comisionul de tranzacție + +Dacă oferta schimbului B ar scădea brusc și utilizatorul nu ar fi putut cumpăra suficient pentru a acoperi împrumutul inițial, tranzacția ar eșua pur și simplu. + +Pentru a putea realiza cele din exemplul de mai sus în lumea financiară tradițională, ați avea nevoie de o sumă enormă de bani. Aceste strategii producătoare de bani sunt accesibile doar celor care au deja o avere. Împrumuturile flash sunt un exemplu al unui viitor în care nu este o condiție prealabilă să aveți bani pentru a produce bani. + +[Mai multe despre împrumuturile flash](https://aave.com/flash-loans/) + + + +### Începeți să economisiți cu cripto {#saving} + +#### Creditarea {#lending} + +Puteți să câștigați dobândă creditând cripto și să vedeți cum vă cresc fondurile în timp real. În acest moment, ratele dobânzilor sunt mult mai mari decât cele pe care le-ați putea obține la banca dvs. locală (dacă aveți norocul să puteți accesa vreuna). Iată un exemplu: + +- Creditați 100 Dai, o monedă [stablecoin](/stablecoins/), unui produs precum Aave. +- Primiți 100 Aave Dai (aDai), care este un token ce reprezintă Dai-ul creditat. +- Valoarea aDai va crește în funcție de ratele dobânzilor și puteți vedea cum vă crește soldul în portofel. În funcție de APR, soldul portofelului va deveni ceva de genul 100,1234 după câteva zile sau chiar ore! +- Puteți retrage în orice moment o cantitate de Dai obișnuită, egală cu soldul dvs. aDai. + + + Vedeți dapp-uri de creditare + + +#### Loterii fără pierderi {#no-loss-lotteries} + +Loteriile fără pierdere, precum PoolTogether, sunt un nou mod distractiv și inovator de a economisi bani. + +- Cumpărați 100 de bilete folosind 100 de tokenuri Dai. +- Primiți 100 de plDai care reprezintă cele 100 de bilete. +- Dacă unul dintre biletele dvs. este ales câștigător, soldul dvs. plDai va crește cu valoarea fondului de premii. +- Dacă nu câștigați, cei 100 de plDai se reportează la extragerea de săptămâna următoare. +- Puteți retrage oricând o cantitate de Dai obișnuită egală cu soldul plDai. + +Fondul de premii este generat de toate dobânzile generate de creditarea biletelor depuse, ca cele din exemplul de creditare de mai sus. + + + Testați PoolTogether + + + + +### Schimbați tokenuri {#swaps} + +Există mii de tokenuri pe Ethereum. Schimburile descentralizate (DEX) vă permit să tranzacționați tokenuri diferite oricând doriți. Nu renunțați niciodată la controlul activelor dvs. Acest lucru este ca și cum ați folosi un schimb valutar atunci când vizitați o altă țară. Dar versiunea DeFi nu se închide niciodată. Piețele sunt deschise 24/7, 365 de zile pe an, iar tehnologia garantează că va exista întotdeauna cineva care să accepte o tranzacție. + +De exemplu, dacă doriți să folosiți loteria fără pierderi PoolTogether (descrisă mai sus), veți avea nevoie de un token precum Dai sau USDC. DEX-urile vă permit să efectuați schimburi de ETH pentru aceste token-uri și invers în momentul în care ați terminat. + + + Vedeți schimburile de tokenuri + + + + +### Tranzacționare avansată {#trading} + +Există opțiuni mai avansate pentru cei ce doresc să tranzacționeze deținând ceva mai mult control. Ordinele cu limită, perpetue, tranzacționarea în marjă și multe altele sunt toate posibile. Cu tranzacționarea descentralizată aveți acces la lichidități mondiale, piața nu se închide niciodată și dețineți mereu controlul asupra activelor dvs. + +Atunci când folosiți un schimb centralizat, trebuie să vă depuneți activele înainte de tranzacție și să vă bazați că sunt pe mâini bune. Cât timp activele sunt depuse, acestea sunt în pericol, deoarece schimburile centralizate sunt ținte atractive pentru hackeri. + + + Vedeți dapp-urile de tranzacționare + + + + +### Măriți-vă portofoliul {#investing} + +Există produse de gestionare a fondurilor pe Ethereum care vor încerca să vă crească portofoliul utilizând o strategie la alegerea dvs. Acest lucru este automat, deschis tuturor și nu are nevoie de un manager uman care să vă reducă profiturile. + +Un bun exemplu este [fondul DeFi Pulse Index (DPI)](https://defipulse.com/blog/defi-pulse-index/). Acesta este un fond care se reechilibrează automat pentru a vă asigura că portofoliul dvs. include întotdeauna [tokenurile de top în funcție de capitalizarea de piață](https://www.coingecko.com/en/defi). Nu trebuie niciodată să gestionați vreun detaliu și puteți retrage din fond oricând doriți. + + + Vedeți aplicațiile dapp de investiţii + + + + +### Finanțați-vă ideile {#crowdfunding} + +Ethereum este o platformă ideală pentru finanțarea participativă: + +- Potențialii finanțatori pot veni de oriunde – Ethereum și tokenurile sale sunt deschise oricui, oriunde în lume. +- Este transparentă, deci colectorii de fonduri pot dovedi câți bani au fost strânși. Puteți urmări chiar și modul în care fondurile sunt cheltuite ulterior, pe parcurs. +- Finanțatorii pot configura rambursări automate dacă, de exemplu, nu s-a respectat un anumit termen limită și nu s-a întrunit o sumă minimă. + + + Vedeți aplicațiile dapp de finanțare participativă + + +#### Finanțare cuadratică {#quadratic-funding} + +Ethereum este un software open source și o mare parte din munca de până acum a fost finanțată de comunitate. Aceasta a dus la creșterea unui model nou și interesant de finanțare: finanțarea cuadratică. Acesta are potențialul de a îmbunătăți modul în care finanțăm toate tipurile de bunuri publice în viitor. + +Finanțarea cuadratică face în așa fel încât proiectele care primesc cea mai mare finanțare să fie cele cu cererea cât mai unică. Cu alte cuvinte, proiectele care vor îmbunătăți viaţa celor mai mulți oameni. Iată cum funcționează: + +1. Există un fond corespunzător de fonduri donate. +2. Începe o rundă de finanțare publică. +3. Puteți semnala că solicitați un proiect donând ceva bani. +4. Odată ce runda s-a încheiat, fondul comun este distribuit proiectelor. Cele cu cea mai mare cerere de câte unu primesc cea mai mare sumă din fondul comun. + +Aceasta înseamnă că Proiectul A cu cele 100 de donații de 1 dolar ar putea primi mai multe fonduri decât Proiectul B, cu o singură donație de 10.000 de dolari (în funcție de mărimea fondului comun). + +[Mai multe despre finanțarea cuadratică](https://wtfisqf.com) + + + +### Asigurările {#insurance} + +Asigurările descentralizate urmăresc reducerea costurilor de asigurare, fiind mai rapide și mai transparente. Fiind mai automatizată, acoperirea este mai accesibilă și plățile sunt mult mai rapide. Datele utilizate pentru decizia cu privire la solicitarea dvs. sunt complet transparente. + +Produsele Ethereum, ca orice software, pot fi afectate de bug-uri și alte moduri de a profita. Deci o mulțime de produse de asigurare din acest spațiu se concentrează acum pe protejarea utilizatorilor acestora de pierderile de fonduri. Cu toate acestea, există proiecte care încep să creeze o acoperire pentru tot ceea ce ni se poate întâmpla. Un bun exemplu în acest sens este asigurarea Etherisc's Crop, care are ca scop [protejarea micilor fermieri din Kenya de secetă și inundații](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Asigurarea descentralizată poate oferi o acoperire mai ieftină pentru fermierii care adesea nu își pot permite asigurarea tradițională. + + + Vedeți dapp-urile de asigurare + + + + +### Agregatorii și managerii de portofoliu {#aggregators} + +Având în vedere ceea ce se întâmplă, veți avea nevoie de o modalitate de a ține evidența tuturor investițiilor, împrumuturilor și tranzacțiilor. Există o multitudine de produse care vă permit să vă coordonați întreaga activitate DeFi dintr-un singur loc. Aceasta este splendoarea arhitecturii DeFi deschise. Echipele pot construi interfețe în care nu puteți doar vedea soldurile din toate produsele, ci puteți folosi și funcțiile acestora. Puteți descoperi utilitatea acestui fapt pe măsură ce continuați explorarea DeFi. + + + Vedeți dapp-urile portofoliului + + + + +## Cum funcționează DeFi? {#how-defi-works} + +DeFi utilizează criptomonede și contracte inteligente pentru a furniza servicii care nu au nevoie de intermediari. În lumea financiară de astăzi, instituțiile financiare acționează ca garanți ai tranzacțiilor. Acest lucru oferă acestor instituții o putere imensă, deoarece banii dvs. circulă prin ele. În plus, miliarde de oameni din întreaga lume nici măcar nu pot accesa un cont bancar. + +În DeFi, un contract inteligent înlocuiește instituția financiară în cadrul tranzacției. Un contract inteligent este un tip de cont Ethereum care poate deține fonduri și le poate trimite/rambursa în funcție de anumite condiții. Nimeni nu poate modifica acel contract inteligent atunci când este live – va funcționa întotdeauna așa cum este programat. + +Un contract care este conceput pentru a preda o indemnizație sau bani de buzunar ar putea fi programat să trimită bani din Contul A în Contul B în fiecare vineri. Și va face acest lucru doar atât timp cât Contul A are fondurile necesare. Nimeni nu poate să modifice contractul și să adauge Contul C ca beneficiar pentru a fura fonduri. + +Contractele sunt și publice, putând fi inspectate și auditate de oricine. Acest lucru înseamnă că, de multe ori, contractele proaste vor fi supuse destul de repede controlului comunității. + +Acest lucru înseamnă că trebuie actualmente să avem încredere în membrii cu mai multe abilități tehnice ai comunității Ethereum, care pot citi codul. Comunitatea bazată pe open-source ajută la menținerea dezvoltatorilor sub control, dar această necesitate se va diminua în timp, pe măsură ce contractele inteligente devin mai ușor de citit și sunt elaborate alte modalități pentru a dovedi fiabilitatea codului. + +## Ethereum și DeFi {#ethereum-and-defi} + +Ethereum este fundația perfectă pentru DeFi din mai multe motive: + +- Nimeni nu deține Ethereum sau contractele inteligente care îi sunt asociate – acest lucru oferă tuturor posibilitatea de a utiliza DeFi. Totodată, acest lucru înseamnă că nimeni nu poate schimba regulile ce vă privesc. +- Toate produsele DeFi vorbesc aceeași limbă în culise: Ethereum. Acest lucru înseamnă că multe dintre produse lucrează împreună impecabil. Puteți să împrumutați tokenuri pe o platformă și să schimbați tokenul purtător de dobândă pe o piață diferită sau pe o aplicație complet diferită. Este ca și cum ați fi în măsură să încasați puncte de loialitate la bancă. +- Tokenurile și criptomonedele sunt încorporate în Ethereum, un registru comun – urmărirea tranzacțiilor și a proprietății este ceea ce face Ethereum. +- Ethereum permite libertate financiară completă – majoritatea produselor nu vor prelua niciodată custodia fondurilor dvs., permițându-vă să vă păstrați controlul. + +Puteți să vă imaginați DeFi în niveluri: + +1. Blockchain – Ethereum conține istoricul tranzacțiilor și situația conturilor. +2. Activele – [ETH](/eth/) și celelalte tokenuri (monede). +3. Protocoalele – [contracte inteligente](/glossary/#smart-contract) care oferă funcționalitatea, de exemplu un serviciu care permite a da împrumuturi descentralizat de active. +4. [Aplicațiile](/dapps/) – produsele pe care le folosim pentru a gestiona și a accesa protocoalele. + +## Construiţi DeFi {#build-defi} + +DeFi este o mișcare open-source. Protocoalele și aplicațiile DeFi sunt dtoate eschise pentru ca dvs. să le puteţi inspecta, să puteţi crea fork-uri și inova. Din cauza acestei stive pe niveluri (toate împart același blockchain de bază și aceleași active), protocoalele pot fi combinate şi asortate pentru a debloca oportunități combo unice. + + + Mai multe despre construirea de aplicaţii dapp + + +## Referințe suplimentare {#futher-reading} + +### Date despre DeFi {#defi-data} + +- [DeFi Prime](https://defiprime.com/) +- [DeFi Llama](https://defillama.com/) + +### Articole despre DeFi {#defi-articles} + +- [Ghidul începătorului pentru DeFi](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, 6 ianuarie 2020_ + +### Videoclipuri {#videos} + +- [Finematks - educație financiară descentralizată](https://finematics.com/) – _Videoclipuri despre DeFi_ +- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _Bazele DeFi: Tot ce trebuie să știți pentru a porni în acest spațiu uneori derutant._ +- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _Ce este DeFi?_ + +### Comunități {#communities} + +- [Serverul Discord DeFi Llama](https://discord.gg/buPFYXzDDd) +- [Serverul Discord DeFi Pulse](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/ro/developers/docs/accounts/index.md b/public/content/translations/ro/developers/docs/accounts/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/accounts/index.md rename to public/content/translations/ro/developers/docs/accounts/index.md diff --git a/src/content/translations/ro/developers/docs/apis/backend/index.md b/public/content/translations/ro/developers/docs/apis/backend/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/apis/backend/index.md rename to public/content/translations/ro/developers/docs/apis/backend/index.md diff --git a/src/content/translations/ro/developers/docs/apis/javascript/index.md b/public/content/translations/ro/developers/docs/apis/javascript/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/apis/javascript/index.md rename to public/content/translations/ro/developers/docs/apis/javascript/index.md diff --git a/src/content/translations/ro/developers/docs/apis/json-rpc/index.md b/public/content/translations/ro/developers/docs/apis/json-rpc/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/apis/json-rpc/index.md rename to public/content/translations/ro/developers/docs/apis/json-rpc/index.md diff --git a/src/content/translations/ro/developers/docs/blocks/index.md b/public/content/translations/ro/developers/docs/blocks/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/blocks/index.md rename to public/content/translations/ro/developers/docs/blocks/index.md diff --git a/src/content/translations/ro/developers/docs/consensus-mechanisms/index.md b/public/content/translations/ro/developers/docs/consensus-mechanisms/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/consensus-mechanisms/index.md rename to public/content/translations/ro/developers/docs/consensus-mechanisms/index.md diff --git a/src/content/translations/ro/developers/docs/consensus-mechanisms/pos/index.md b/public/content/translations/ro/developers/docs/consensus-mechanisms/pos/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/consensus-mechanisms/pos/index.md rename to public/content/translations/ro/developers/docs/consensus-mechanisms/pos/index.md diff --git a/src/content/translations/ro/developers/docs/consensus-mechanisms/pow/index.md b/public/content/translations/ro/developers/docs/consensus-mechanisms/pow/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/consensus-mechanisms/pow/index.md rename to public/content/translations/ro/developers/docs/consensus-mechanisms/pow/index.md diff --git a/src/content/translations/ro/developers/docs/consensus-mechanisms/pow/mining/index.md b/public/content/translations/ro/developers/docs/consensus-mechanisms/pow/mining/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/consensus-mechanisms/pow/mining/index.md rename to public/content/translations/ro/developers/docs/consensus-mechanisms/pow/mining/index.md diff --git a/src/content/translations/ro/developers/docs/dapps/index.md b/public/content/translations/ro/developers/docs/dapps/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/dapps/index.md rename to public/content/translations/ro/developers/docs/dapps/index.md diff --git a/src/content/translations/ro/developers/docs/data-and-analytics/block-explorers/index.md b/public/content/translations/ro/developers/docs/data-and-analytics/block-explorers/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/data-and-analytics/block-explorers/index.md rename to public/content/translations/ro/developers/docs/data-and-analytics/block-explorers/index.md diff --git a/src/content/translations/ro/developers/docs/data-and-analytics/index.md b/public/content/translations/ro/developers/docs/data-and-analytics/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/data-and-analytics/index.md rename to public/content/translations/ro/developers/docs/data-and-analytics/index.md diff --git a/src/content/translations/ro/developers/docs/development-networks/index.md b/public/content/translations/ro/developers/docs/development-networks/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/development-networks/index.md rename to public/content/translations/ro/developers/docs/development-networks/index.md diff --git a/src/content/translations/ro/developers/docs/ethereum-stack/index.md b/public/content/translations/ro/developers/docs/ethereum-stack/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/ethereum-stack/index.md rename to public/content/translations/ro/developers/docs/ethereum-stack/index.md diff --git a/src/content/translations/ro/developers/docs/evm/index.md b/public/content/translations/ro/developers/docs/evm/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/evm/index.md rename to public/content/translations/ro/developers/docs/evm/index.md diff --git a/src/content/translations/ro/developers/docs/frameworks/index.md b/public/content/translations/ro/developers/docs/frameworks/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/frameworks/index.md rename to public/content/translations/ro/developers/docs/frameworks/index.md diff --git a/src/content/translations/ro/developers/docs/gas/index.md b/public/content/translations/ro/developers/docs/gas/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/gas/index.md rename to public/content/translations/ro/developers/docs/gas/index.md diff --git a/src/content/translations/ro/developers/docs/ides/index.md b/public/content/translations/ro/developers/docs/ides/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/ides/index.md rename to public/content/translations/ro/developers/docs/ides/index.md diff --git a/src/content/translations/ro/developers/docs/index.md b/public/content/translations/ro/developers/docs/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/index.md rename to public/content/translations/ro/developers/docs/index.md diff --git a/src/content/translations/ro/developers/docs/intro-to-ether/index.md b/public/content/translations/ro/developers/docs/intro-to-ether/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/intro-to-ether/index.md rename to public/content/translations/ro/developers/docs/intro-to-ether/index.md diff --git a/src/content/translations/ro/developers/docs/intro-to-ethereum/index.md b/public/content/translations/ro/developers/docs/intro-to-ethereum/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/intro-to-ethereum/index.md rename to public/content/translations/ro/developers/docs/intro-to-ethereum/index.md diff --git a/public/content/translations/ro/developers/docs/layer-2-scaling/index.md b/public/content/translations/ro/developers/docs/layer-2-scaling/index.md new file mode 100644 index 00000000000..062f1cdd131 --- /dev/null +++ b/public/content/translations/ro/developers/docs/layer-2-scaling/index.md @@ -0,0 +1,239 @@ +--- +title: Scalare Nivel 2 +description: Prezentarea diferitelor opțiuni de scalare care sunt dezvoltate în prezent de comunitatea Ethereum. +lang: ro +incomplete: true +sidebarDepth: 3 +isOutdated: true +--- + +Nivelul 2 este un termen colectiv pentru soluții concepute pentru a te ajuta la scalarea aplicației prin gestionarea tranzacțiilor din lanțul principal Ethereum (nivelul 1). Viteza de tranzacție suferă atunci când rețeaua este ocupată, ceea ce poate face experiența utilizatorului slabă pentru anumite tipuri de aplicații dapp. Și pe măsură ce rețeaua devine mai aglomerată, prețurile gazului cresc, pe măsură ce expeditorii de tranzacții își propun să se supraliciteze reciproc. Aceasta poate face ca utilizarea Ethereum să fie foarte costisitoare. + +## Condiții prealabile {#prerequisites} + +Ar trebui să înțelegi bine toate subiectele fundamentale. Implementarea soluțiilor de nivel 2 este avansată, deoarece tehnologia este mai puțin testată în domeniu. + +## De ce este necesar nivelul 2? {#why-is-layer-2-needed} + +- Unele cazuri de utilizare, cum ar fi jocurile blockchain, nu au sens cu timpul curent de tranzacție +- Utilizarea aplicațiilor blockchain poate fi inutil de costisitoare +- Nicio actualizare a scalabilității nu ar trebui să fie în detrimentul descentralizării securității – nivelul 2 se bazează pe Ethereum. + +## Tipuri de soluții pentru Nivelul 2 {#types} + +- [Rollup-uri](#rollups) + - [Rollup-uri ZK](#zk-rollups) + - [Rollup-uri Optimistic](#optimistic-rollups) +- [Canale de stare](#channels) +- [Plasma](#plasma) +- [Validium](#validium) +- [Sidechain-uri](#sidechains) +- [Soluții hibride](#hybrid-solutions) + +Cele mai multe soluții de nivel 2 sunt centrate în jurul unui server sau cluster de servere, fiecare dintre acestea putând fi denumite nod, validator, operator, ordonator, producător de blocuri sau un termen similar. În funcție de implementare, aceste noduri de nivel 2, pot fi rulate de întreprinderi sau entități care le utilizează sau de un operator terț sau de un grup mare de persoane (similar cu rețeaua principală). În general, tranzacțiile sunt transmise la aceste noduri nivel 2 în loc să fie transmise direct la nivelul 1 ([rețeaua principală](/glossary/#mainnet)); instanța nivelului 2 le organizează apoi în grupuri înainte de a le ancora în nivelul 1, după care sunt securizate de nivelul 1 și nu mai pot fi modificate. Detaliile despre modul în care se face acest lucru variază semnificativ între diferite tehnologii de nivel 2 și implementări. + +O instanță specifică de nivel 2 poate fi deschisă și partajată de mai multe aplicații sau poate fi implementată de o singură companie și dedicată doar sprijinirii aplicației lor. + +## Rollup-uri {#rollups} + +Rollup-urile sunt soluții care grupează sau „roll-up” tranzacțiile sidechain într-o singură tranzacție și generează o dovadă criptografică, cunoscută sub numele de SNARK (Succinct Non-Interactive Argument of Knowledge). Numai această dovadă este prezentată lanțului principal. + +_Sidechain-urile sunt blockchain-uri independente compatibile cu Ethereum._ + +Cu alte cuvinte, rollup-urile înseamnă că toate stările și execuția sunt gestionate în sidechain-uri – verificarea semnăturii, executarea contractului etc. Lanțul principal Ethereum (nivelul 1) stochează doar datele despre tranzacții. + +Soluțiile rollup necesită resurse-releu care au mizat o obligațiune în contractul rollup. Aceasta îi stimulează să transmită rollup-urile cu exactitate. + +**Util pentru:** + +- reducerea taxelor pentru utilizatori +- participarea deschisă +- transferarea rapidă al tranzacției + +Există două tipuri de pachete cu modele de securitate diferite: + +- Cunoștințe zero: rulează calcule în afara lanțului și prezintă o [**dovadă de valabilitate**](/glossary/#validity-proof) lanțului +- Optimist: presupune că tranzacțiile sunt valabile în mod implicit și rulează doar calculul, printr-o [**dovadă de fraudă**](/glossary/#fraud-proof), în cazul unei contestații + +### Rollup-uri de „Cunoștințe zero” {#zk-rollups} + +Rollup-urile de cunoștințe zero, cunoscute și sub numele de ZK-Rollup-uri, grupează sute de transferuri în afara lanțului într-o singură tranzacție printr-un contract inteligent. Din datele transmise, contractul inteligent poate verifica toate transferurile incluse. Aceasta este cunoscut ca o dovadă de validitate. + +Cu un rollup ZK, validarea unui bloc este mai rapidă și mai ieftină, deoarece sunt incluse mai puține date. Nu ai nevoie de toate datele tranzacției pentru a o verifica, ci doar dovada. + +Sidechain-ul în care se întâmplă rollup-urile ZK poate fi optimizat pentru a reduce dimensiunea tranzacției. De exemplu, un cont este reprezentat mai degrabă de un index decât de o adresă, care reduce o tranzacție de la 32 de octeți la doar 4 octeți. Tranzacțiile sunt, de asemenea, scrise în Ethereum ca date de apel, reducând gazul. + +#### Avantaje și dezavantaje {#zk-pros-and-cons} + +| Avantaje | Dezavantaje | +| ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Nicio întârziere, deoarece dovezile sunt deja considerate valide atunci când sunt trimise lanțului principal. | Limitat la transferuri simple, nu este compatibil cu EVM. | +| Mai puțin vulnerabile la atacurile economice la care [Rollup-urile Optimistic](#optimistic-pros-and-cons) pot fi vulnerabile. | Dovezile de validitate necesită un mare număr de calcule – nu merită să fie folosite pentru aplicații cu activitate redusă pe lanț. | +| | Timp de [finalitate](/glossary/#finality) mai lent (10-30 min pentru a genera o dovada ZK) (dar mai rapide la finalitate completă, deoarece nu există întârzieri de dispută ca în [rollup-urile Optimistic](#optimistic-rollups)). | + +#### Folosește Rollup-uri ZK {#use-zk-rollups} + +- [Loopring](https://loopring.org/#/) +- [Starkware](https://starkware.co/) +- [Matter Labs zkSync](https://matter-labs.io/) +- [Aztec 2.0](https://aztec.network/) + +### Rollup-uri Optimistic {#optimistic-rollups} + +Rollup-urile Optimistic utilizează un sidechain care se află în paralel cu lanțul principal Ethereum. Ele pot oferi îmbunătățiri în scalabilitate, deoarece nu fac niciun calcul în mod implicit. În schimb, după o tranzacție, ele propun noua stare rețelei principale. Sau „legalizează” tranzacția. + +Cu rollup-urile Optimistic, tranzacțiile sunt scrise în lanțul principal Ethereum ca date de apel, optimizându-le în continuare prin reducerea costului gazului. + +Deoarece calculul este partea lentă și costisitoare a utilizării Ethereum, rollup-urilor Optimistic pot oferi până la 10-100 de ori îmbunătățiri ale scalabilității în funcție de tranzacție. Acest număr va crește și mai mult odată cu introducerea upgrade-ului Eth2: [lanțurile de fragmente](/roadmap/danksharding). Aceasta se datorează faptului că vor exista mai multe date disponibile în cazul în care o tranzacție este contestată. + +#### Contestarea tranzacțiilor {#disputing-transactions} + +Rollup-urile Optimistic nu calculează de fapt tranzacția, deci trebuie să existe un mecanism care să asigure că tranzacțiile sunt legitime și nu frauduloase. Aici intervin dovezile de fraudă. Dacă cineva observă o tranzacție frauduloasă, rollup-ul va executa o dovadă de fraudă și va rula calculul tranzacției, utilizând datele de stare disponibile. Aceasta înseamnă că este posibil să ai timpi de așteptare mai lungi pentru confirmarea tranzacției decât un rollup-ZK, deoarece ar putea fi contestat. + +![Diagramă care arată ce se întâmplă atunci când are loc o tranzacție frauduloasă într-un rollup Optimist pe Ethereum](../optimistic-rollups/optimistic-rollups.png) + +Gazul de care ai nevoie pentru a calcula dovada fraudelor este chiar rambursat. Ben Jones, de la Optimism, descrie sistemul de legături în loc: + +_„toți cei care ar putea fi în măsură să ia o măsură pe care tu ar trebui să o dovedești că este frauduloasă pentru a-ți asigura fondurile, trebuie să posteze o garanție. Practic, iei niște ETH și îl blochezi și spui „Hei, promit să spun adevărul”... Dacă nu spun adevărul și se dovedește că am comis fraudă, voi fi penalizat din acești bani. Nu numai că voi fi penalizat din acești bani, dar o parte din ei vor plăti pentru gazul celor care l-au cheltuit făcând dovada fraudei mele_" + +Deci, vei fi rambursat pentru dovedirea fraudei. + +#### Avantaje și dezavantaje {#optimistic-pros-and-cons} + +| Avantaje | Dezavantaje | +| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | +| Orice poți face pe nivelul 1 Ethereum, poți face cu rollup-ul Optimistic, deoarece este compatibil EVM și Solidity. | Perioade lungi de așteptare pentru tranzacțiile în lanț datorită potențialelor provocări legate de fraudă. | +| Toate datele tranzacțiilor sunt stocate pe nivelul 1 al lanțului, ceea ce înseamnă că este sigur și descentralizat. | Potențial vulnerabil la atacuri dacă valoarea într-un rollup Optimist depășește suma garanției unui operator. | + +#### Folosește rollup-uri Optimistic {#use-optimistic-rollups} + +- [Optimism](https://optimism.io/) +- [Offchain Labs Arbitrum Rollup](https://offchainlabs.com/) +- [Fuel Network](https://fuel.sh/) + +## Canale {#channels} + +Canalele permit participanților să tranzacționeze de `x` ori în afara lanțului, trimițând doar două tranzacții către rețeaua din lanț. Aceasta permite un transfer de tranzacții extrem de ridicat + +**Util pentru**: + +- o mulțime de actualizări de stare +- atunci când numărul de participanți este cunoscut în avans +- atunci când participanții sunt întotdeauna disponibili + +Participanții trebuie să blocheze o parte din starea Ethereum, ca un depozit ETH, într-un contract multisig. Un contract multisig este un tip de contract care necesită semnarea (și prin urmare, acordul) mai multor chei private pentru executare. + +Blocarea stării în acest mod este prima tranzacție și deschide canalul. Participanții pot tranzacționa rapid și liber în afara lanțului. Când interacțiunea este finalizată, este trimisă o tranzacție finală în lanț, care deblochează starea. + +### Canale de stare {#state-channels} + +Canal de stare tic tac toe: + +1. Creează un contract inteligent multisig „Judecător” pe lanțul principal Ethereum care înțelege regulile tic-tac-toe și poate identifica Alice și Bob ca fiind cei doi jucători din jocul nostru. Acest contract deține un premiu de 1 ETH. + +2. Apoi, Alice și Bob încep să joace, deschizând canalul de stare. Fiecare mișcare creează o tranzacție în afara lanțului care conține un „nonce”, ceea ce înseamnă că putem spune întotdeauna mai târziu în ce ordine s-au întâmplat mișcările. + +3. Când există un câștigător, acesta închid canalul prin trimiterea stării finale (de exemplu, o listă de tranzacții) la contractul Judecător, plătind doar o singură taxă de tranzacție. Judecătorul se asigură că această „stare finală” este semnată de ambele părți și așteaptă un timp pentru a se asigura că nimeni nu poate contesta în mod legitim rezultatul, apoi plătește premiul de 1 ETH lui Alice. + +În prezent există două tipuri de canale: + +- Canale de stare – așa cum am descris mai sus +- Canale de plată – canale de stare simplificate care se ocupă doar de plăți. Permit transferuri în afara lanțului între doi participanți, atâta timp cât suma netă a transferurilor lor nu depășește tokenurile depuse. + +#### Avantaje și dezavantaje {#channels-pros-and-cons} + +| Avantaje | Dezavantaje | +| --------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Retragere/soluționare instantanee pe lanțul principal (dacă ambele părți ale unui canal cooperează) | Timp și costuri pentru a configura și stabili un canal - nu sunt atât de bune pentru tranzacțiile ocazionale unice între utilizatori arbitrari. | +| Este posibil un debit extrem de ridicat | Trebuie să urmărești periodic rețeaua (cerința „liveness”) sau să delegi această responsabilitate altcuiva pentru a-ți asigura securitatea fondurilor. | +| Cel mai mic cost pe tranzacție - bun pentru microplăți în flux | Trebuie să blochezi fonduri în canale de plată deschise | +| | Nu acceptă participarea deschisă | + +#### Folosește canale de Stare {#use-state-channels} + +- [Connext](https://connext.network/) +- [Raiden](https://raiden.network/) +- [Perun](https://perun.network/) +- [Statechannels.org](https://statechannels.org/) + +## Plasma {#plasma} + +Un lanț „plasma” este un blockchain separat care este ancorat pe lanțul principal Ethereum și utilizează dovezi de fraudă (cum ar fi rollup-urile [Optimistic](#optimistic-rollups)) pentru a arbitra disputele. + +| Avantaje | Dezavantaje | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Randament ridicat, cost redus pe tranzacție. | Nu acceptă calculul general. Numai transferurile de bază, swap-urile și alte câteva tipuri de tranzacții sunt acceptate prin logica predicată. | +| Bun pentru tranzacțiile între utilizatori arbitrari (fără cheltuieli indirecte pentru fiecare pereche de utilizatori dacă ambele sunt stabilite pe lanțul de plasmă) | Trebuie să urmărești periodic rețeaua (cerința „liveness”) sau să delegi această responsabilitate altcuiva pentru a-ți asigura securitatea fondurilor. | +| | Se bazează pe unul sau mai mulți operatori pentru a stoca date și a le furniza la cerere. | +| | Retragerile sunt întârziate cu câteva zile pentru a permite provocări. Pentru activele fungibile acest lucru poate fi atenuat de furnizorii de lichidități, dar există un cost de capital asociat. | + +### Folosește Plasma {#use-plasma} + +- [OMG Network](https://omg.network/) +- [Matic Network](https://matic.network/) +- [Gluon](https://gluon.network/) +- [LeapDAO](https://ipfs.leapdao.org/) + +## Validium {#validium} + +Folosește dovezi de validitate, cum ar fi [rollup-ZK,](#zk-rollups) dar datele nu sunt stocate pe nivelul 1 al lanțului principal al Ethereum. Aceasta poate duce la 10k tranzacții pe secundă pe lanțul validium și lanțuri multiple pot fi rulate în paralel. + +| Avantaje | Dezavantaje | +| ------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Fără întârziere de retragere (fără latență tx în-lanț/între-lanțuri); în consecință, o mai mare eficiență a capitalului. | Suport limitat pentru calcule generale/contracte inteligente; necesită limbaje specializate. | +| Nu este vulnerabil la anumite atacuri economice cu care se confruntă sistemele bazate pe dovada fraudei în aplicații de mare valoare. | Putere de calcul ridicată necesară pentru a genera probe ZK; nu sunt eficiente din punct de vedere al costurilor pentru aplicațiile cu debit redus. | +| | Timp de finalitate subiectivă mai lent (10-30 min pentru a genera o dovadă ZK) (dar mai rapid la finalitate completă, deoarece nu există întârziere în dispută). | + +### Folosește Validium {#use-validium} + +- [Starkware](https://starkware.co/) +- [Matter Labs zkPorter](https://matter-labs.io/) +- [Loopring](https://loopring.org/#/) + +## Sidechain-uri {#sidechains} + +Un sidechain este un blockchain separat care rulează în paralel cu rețeaua principală și funcționează independent. Are propriul algoritm de consens ([Proba autorității](https://wikipedia.org/wiki/Proof_of_authority), [Dovada mizei delegată](https://en.bitcoinwiki.org/wiki/DPoS), [Toleranță la erori Byzantine](https://decrypt.co/resources/byzantine-fault-tolerance-what-is-it-explained) și așa mai departe). Este conectat la lanțul principal printr-un pod bidirecțional. + +| Avantaje | Dezavantaje | +| ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | +| Tehnologie stabilită. | Mai puțin descentralizate. | +| Acceptă calculul general, compatibilitatea EVM. | Utilizează un mecanism de consens separat. Nu este asigurat de nivelul1 (deci punct de vedere tehnic nu este nivelul 2). | +| | Un minim de validatori sidechain pot comite fraudă. | + +### Folosește Sidechain-uri {#use-sidechains} + +- [Skale](https://skale.network/) +- [POA Network](https://www.poa.network/) + +## Soluții hibride {#hybrid-solutions} + +Combină cele mai bune părți ale mai multor tehnologii de nivel 2 și pot oferi compromisuri configurabile. + +### Folosește soluții Hybrid {#use-hybrid-solutions} + +- [Celer](https://www.celer.network/) + +## Referințe suplimentare {#further-reading} + +- [Validium And The Layer 2 Two-By-Two — Issue No. 99](https://www.buildblockchain.tech/newsletter/issues/no-99-validium-and-the-layer-2-two-by-two) +- [Evaluating Ethereum layer 2 Scaling Solutions: A Comparison Framework](https://blog.matter-labs.io/evaluating-ethereum-l2-scaling-solutions-a-comparison-framework-b6b2f410f955) +- [Adding Hybrid PoS-Rollup Sidechain to Celer’s Coherent Layer-2 Platform on Ethereum](https://medium.com/celer-network/adding-hybrid-pos-rollup-sidechain-to-celers-coherent-layer-2-platform-d1d3067fe593) +- [Zero-Knowledge Blockchain Scalability](https://ethworks.io/assets/download/zero-knowledge-blockchain-scaling-ethworks.pdf) + +**Canale de stare** + +- [Making Sense of Ethereum’s Layer 2 Scaling Solutions: State Channels, Plasma, and Truebit](https://medium.com/l4-media/making-sense-of-ethereums-layer-2-scaling-solutions-state-channels-plasma-and-truebit-22cb40dcc2f4) _– Josh Stark, 12 februarie 2018_ +- [State Channels - an explanation](https://www.jeffcoleman.ca/state-channels/) _5 noiembrie 2015 - Jeff Coleman_ +- [Basics of State Channels](https://education.district0x.io/general-topics/understanding-ethereum/basics-state-channels/) _District0x_ + +**Canale de plată** + +**Rollup-uri ZK** + +**Rollup-uri Optimistic** + +- [OVM Deep Dive](https://medium.com/ethereum-optimism/ovm-deep-dive-a300d1085f52) + +**Sidechain-uri** + +- [Scaling Ethereum Dapps through Sidechains](https://medium.com/loom-network/dappchains-scaling-ethereum-dapps-through-sidechains-f99e51fff447) _8 februarie 2018 - Georgios Konstantopoulos_ diff --git a/public/content/translations/ro/developers/docs/mev/index.md b/public/content/translations/ro/developers/docs/mev/index.md new file mode 100644 index 00000000000..896b1f00315 --- /dev/null +++ b/public/content/translations/ro/developers/docs/mev/index.md @@ -0,0 +1,129 @@ +--- +title: Maximal extractable value (MEV) +description: An introduction to maximal extractable value (MEV) +lang: ro +--- + +Maximal extractable value (MEV) refers to the maximum value that can be extracted from block production in excess of the standard block reward and gas fees by including, excluding, and changing the order of transactions in a block. + +## Miner extractable value + +This concept was first applied under the context of [proof-of-work](/developers/docs/consensus-mechanisms/pow/), and was initially referred to as "miner extractable value." Aceasta deoarece în dovada-muncii (PoW), miner-ii controlează includerea, excluderea și ordonarea tranzacțiilor. However, after the transition to proof-of-stake via [The Merge](/updates/merge) validators will be responsible for these roles, and mining will no longer be applicable. The value extraction methods here will still persist after this transition, and thus a name change was needed. To keep the same acronym for continuity while maintaining the same fundamental meaning, "maximal extractable value" is now used as a more inclusive replacement. + +## Condiții prealabile {#prerequisites} + +Aveţi grijă să vă familiarizaţi cu [tranzacțiile](/developers/docs/transactions/), [blocurile](/developers/docs/blocks/), [gazul](/developers/docs/gas/) și [minarea](/developers/docs/consensus-mechanisms/pow/mining/). Familiarizarea cu [aplicațiile dapp](/dapps/) și [DeFi](/defi/) este de asemenea utilă. + +## Extragerea MEV {#mev-extraction} + +In theory MEV accrues entirely to miners because miners are the only party that can guarantee the execution of a profitable MEV opportunity (at least on the current proof-of-work chain — this will change after [The Merge](/roadmap/merge/)). Cu toate acestea, în practică, o mare parte din MEV este extrasă de participanții independenți din rețea, denumiți „căutători” Căutătorii rulează algoritmi complecși pe datele blockchain pentru a detecta oportunitățile MEV profitabile și au roboți care să transmită automat aceste tranzacții profitabile în rețea. + +Miner-ii primesc oricum o parte din întreaga sumă MEV, deoarece căutătorii sunt dispuși să plătească taxe mari pe gaz (care ajung la miner) în schimbul unei probabilități mai mari de includere a tranzacțiilor lor profitabile într-un bloc. Dacă presupunem că acești căutători sunt raționali din punct de vedere economic, taxa pe gaz pe care un căutător este dispus să o plătească va fi o sumă de până la 100% din MEV-ul căutătorului (deoarece dacă taxa pe gaz ar fi mai mare, căutătorul ar pierde bani). + +Cu aceasta, pentru unele oportunități MEV foarte competitive, cum ar fi arbitrajul [DEX](#mev-examples-dex-arbitrage), căutătorii ar putea fi nevoiți să plătească 90% sau chiar mai mult din venitul lor MEV total pentru taxele pe gaz către miner, deoarece foarte mulți oameni doresc să efectueze aceeași tranzacție de arbitraj profitabilă. Acest lucru se datorează faptului că singura modalitate de a garanta că tranzacția lor de arbitraj se execută este dacă trimit tranzacția cu cel mai mare preț al gazului. + +### Gas golfing {#mev-extraction-gas-golfing} + +Această dinamică a făcut ca un bun jucător de „golf pe gaz” — care programează tranzacțiile astfel încât acestea să utilizeze cantitatea de gaz cea mai mică — să aibă astfel un avantaj competitiv, deoarece permite căutătorilor să stabilească un preț mai mare al gazului, menținând în același timp constante taxele totale pe gaz (deoarece taxele pe gaz = prețul gazului \* gazul utilizat). + +Câteva tehnici binecunoscute de „golf pe gaz” includ: utilizarea de adrese care încep cu un șir lung de zerouri (de exemplu, [0x0000000000C521824EaFf97Eac7B73B084ef9306](https://etherscan.io/address/0x0000000000c521824eaff97eac7b73b084ef9306)), deoarece acestea necesită mai puțin spațiu (și, prin urmare, gaz) pentru a fi stocate; și lăsarea unor solduri mici de tokenuri [ERC-20](/developers/docs/standards/tokens/erc-20/) în contracte, deoarece costă mai mult gaz pentru a inițializa un slot de stocare (cazul în care soldul este 0) decât pentru a actualiza un slot de stocare. Găsirea mai multor tehnici de reducere a consumului de gaz este un domeniu activ de studiu în rândul cercetătorilor. + +### Generalized frontrunners {#mev-extraction-generalized-frontrunners} + +În loc să programeze algoritmi complecși pentru a detecta oportunitățile MEV profitabile, unii căutători rulează frontrunneri generalizați. Frontrunnerii generalizați sunt roboți care supraveghează mempool pentru a detecta tranzacțiile profitabile. Frontrunner-ul va copia codul tranzacției potențial profitabile, va înlocui adresele cu adresa frontrunner-ului și va rula tranzacția la nivel local pentru a verifica dacă tranzacția modificată aduce un profit la adresa frontrunner-ului. În cazul în care tranzacția este într-adevăr profitabilă, frontrunner-ul va trimite tranzacția modificată cu adresa înlocuită și cu un preț mai mare al gazului, „devansând” tranzacția originală și obținând MEV-ul căutătorului inițial. + +### Flashbots {#mev-extraction-flashbots} + +Flashbots este un proiect independent care extinde clientul go-ethereum cu un serviciu care permite căutătorilor să trimită tranzacțiile MEV către miner-i fără a le dezvălui în mempool-ul public. Acest lucru previne ca tranzacțiile să nu fie rulate în față de către frontrunner-i generalizaţi. + +În momentul scrierii acestui articol, o parte semnificativă a tranzacțiilor MEV este direcționată prin Flashbots, ceea ce înseamnă că frontrunner-ii generalizați nu mai sunt la fel de eficienți ca înainte. + +## Exemple de MEV {#mev-examples} + +MEV apare pe blockchain în câteva moduri. + +### DEX arbitrage {#mev-examples-dex-arbitrage} + +[Arbitrajul de schimb descentralizat](/glossary/#dex) (DEX) este cea mai simplă și cea mai cunoscută oportunitate MEV. Ca urmare, este și cea mai competitivă. + +Funcționează astfel: dacă două DEX-uri oferă un token la două prețuri diferite, cineva poate cumpăra tokenul de pe DEX-ul cu prețul cel mai mic și îl poate vinde pe DEX-ul cu prețul cel mai mare într-o singură tranzacție atomică. Datorită mecanicii blockchain, acesta este un arbitraj adevărat, fără riscuri. + +[Iată un exemplu](https://etherscan.io/tx/0x5e1657ef0e9be9bc72efefe59a2528d0d730d478cfc9e6cdd09af9f997bb3ef4) de tranzacție de arbitraj profitabilă în care un căutător a transformat 1.000 ETH în 1.045 ETH profitând de prețurile diferite ale perechii ETH/DAI pe Uniswap față de Sushiswap. + +### Liquidations {#mev-examples-liquidations} + +Lichidările protocolului de împrumut prezintă o altă oportunitate MEV binecunoscută. + +Protocoalele de împrumut precum Maker și Aave funcționează prin faptul că le cer utilizatorilor să depună un fel de garanție (de exemplu, ETH). Utilizatorii pot împrumuta apoi diferite active și tokenuri de la alții, în funcție de ceea ce au nevoie (de exemplu, pot împrumuta MKR dacă doresc să voteze o propunere de guvernanță MakerDAO sau SUSHI dacă doresc să câștige o parte din taxele de tranzacționare pe Sushiswap) până la o anumită sumă din garanția depusă – de exemplu, 30% (procentul exact al puterii de împrumut este determinat de protocol). Utilizatorii de la care împrumută celelalte tokenuri funcționează ca împrumutători în acest caz. + +Pe măsură ce valoarea garanției unui împrumutat fluctuează, la fel și puterea de împrumut a acestuia. Dacă, din cauza fluctuațiilor pieței, valoarea activelor împrumutate depășește, să zicem, 30% din valoarea garanției lor (din nou, procentul exact este determinat de protocol); protocolul permite de obicei oricui să lichideze garanția, plătind instantaneu creditorii (acest lucru este similar cu modul în care funcționează [apelurile în marjă (margin call)](https://www.investopedia.com/terms/m/margincall.asp) în finanțele tradiționale). În cazul în care este lichidat, împrumutatul trebuie să plătească de obicei o taxă de lichidare considerabilă, din care o parte merge la lichidator — și aici intervine oportunitatea MEV. + +Căutătorii concurează pentru a analiza datele blockchain-ului cât mai repede posibil pentru a determina ce împrumutați pot fi lichidați și pentru a fi primii care trimit o tranzacție de lichidare și colectează taxa de lichidare pentru ei înșiși. + +### Sandwich trading {#mev-examples-sandwich-trading} + +Tranzacționarea Sandwich este o altă metodă comună de extragere a MEV. + +Pentru a face Sandwich, un căutător va căuta în mempool tranzacții DEX mari. De exemplu, să presupunem că cineva vrea să cumpere 10.000 UNI cu DAI pe Uniswap. A trade of this magnitude will have a meaningful effect on the UNI/DAI pair, potentially significantly raising the price of UNI relative to DAI. + +A searcher can calculate the approximate price effect of this large trade on the UNI/DAI pair and execute an optimal buy order immediately _before_ the large trade, buying UNI cheaply, then execute a sell order immediately _after_ the large trade, selling it for the higher price caused by the large order. + +Cu toate acestea, Sandwiching-ul este mai riscant, deoarece nu este atomic (spre deosebire de arbitrajul DEX, așa cum a fost descris mai sus) și este predispus la un [atac Salmonella](https://github.com/Defi-Cartel/salmonella). + +### NFT MEV {#mev-examples-nfts} + +MEV în spațiul NFT este un fenomen emergent și nu este neapărat profitabil. + +Cu toate acestea, deoarece tranzacțiile NFT au loc pe același blockchain partajat de toate celelalte tranzacții Ethereum, căutătorii pot folosi tehnici similare cu cele utilizate în oportunitățile MEV tradiționale și pe piața NFT-urilor. + +De exemplu, dacă există o scădere populară a NFT-ului și un căutător dorește un anumit NFT sau un set de NFT-uri, acesta poate programa o tranzacție astfel încât să fie primul la rând pentru a cumpăra NFT-ul sau poate cumpăra întregul set de NFT-uri într-o singură tranzacție. Sau, dacă un NFT este listat [din greșeală la un preț scăzut](https://www.theblockcrypto.com/post/113546/mistake-sees-69000-cryptopunk-sold-for-less-than-a-cent), un căutător poate să devanseze alți cumpărători și să îl achiziționeze la preț redus. + +Un exemplu proeminent de NFT MEV a avut loc atunci când un căutător a cheltuit 7 milioane USD pentru a [cumpăra](https://etherscan.io/address/0x650dCdEB6ecF05aE3CAF30A70966E2F395d5E9E5) fiecare Cryptopunk la prețul minim. Un cercetător blockchain [a explicat pe Twitter](https://twitter.com/IvanBogatyy/status/1422232184493121538) cum cumpărătorul a lucrat cu un furnizor MEV pentru a-și păstra secretă achiziția. + +### The long tail {#mev-examples-long-tail} + +Arbitrajul DEX, lichidările și tranzacțiile Sandwich sunt oportunități MEV foarte bine cunoscute și este puțin probabil să fie profitabile pentru noii căutători. Cu toate acestea, există o coadă lungă de oportunități MEV mai puțin cunoscute (NFT-ul MEV este, fără îndoială, o astfel de oportunitate). + +Căutătorii care sunt la început de drum ar putea avea mai mult succes căutând MEV în această coadă mai lungă. [Panoul cu locuri de muncă MEV](https://github.com/flashbots/mev-job-board) al Flashbot enumeră câteva oportunități emergente. + +## Consecințele MEV {#effects-of-mev} + +MEV nu face numai rău — există atât consecințe pozitive, cât și negative ale MEV pe Ethereum. + +### The good {#effects-of-mev-the-good} + +Multe proiecte DeFi se bazează pe actori raționali din punct de vedere economic pentru a asigura utilitatea și stabilitatea protocoalelor lor. De exemplu, arbitrajul DEX garantează că utilizatorii obțin cele mai bune prețuri, cele mai corecte, pentru tokenurile lor, iar protocoalele de creditare se bazează pe lichidări rapide atunci când debitorii scad sub ratele de colateralizare pentru a se asigura că sunt rambursaţi creditorii. + +Fără căutători raționali care caută și repară ineficiențele economice și care profită de stimulentele economice ale protocoalelor, protocoalele DeFi și aplicațiile dapp în general ar putea să nu fie la fel de solide ca în prezent. + +### Aspectele rele {#effects-of-mev-the-bad} + +La nivelul aplicației, unele forme de MEV, cum ar fi tranzacționarea Sandwich, au ca rezultat o experiență fără echivoc mai proastă pentru utilizatori. Utilizatorii care participă la tranzacții Sandwich se confruntă cu o creștere a derapajelor și o execuție mai slabă a tranzacțiilor. + +La nivel de rețea, frontrunner-ii generalizați și licitațiile de preț al gazului în care aceștia se angajează adesea (când doi sau mai mulți frontrunner-i concurează pentru ca tranzacția lor să fie inclusă în blocul următor prin creșterea progresivă a prețului gazului pentru propriile tranzacții) conduc la congestia rețelei și prețuri ridicate ale gazului pentru toți ceilalți care încearcă să efectueze tranzacții obișnuite. + +Dincolo de ceea ce se întâmplă _în interiorul_ blocurilor, MEV poate avea efecte dăunătoare _între_ blocuri. Dacă MEV-ul disponibil într-un bloc depășește în mod semnificativ recompensa standard a blocului, miner-ii pot fi stimulați să refacă blocurile și să captureze MEV-ul pentru ei înșiși, provocând reorganizarea blockchain-ului și instabilitatea consensului. + +Această posibilitate de reorganizare a blockchain-ului a fost [explorată anterior pe blockchain-ul Bitcoin](https://dl.acm.org/doi/10.1145/2976749.2978408). Pe măsură ce recompensa blocului Bitcoin se înjumătățește, iar comisioanele de tranzacție reprezintă o parte din ce în ce mai mare din recompensa blocului, apar situații în care devine rațional din punct de vedere economic ca miner-ii să renunțe la recompensa blocului următor și să remineze în schimb blocurile anterioare cu taxe mai mari. Odată cu creșterea MEV-ului, același tip de situație ar putea apărea în Ethereum, amenințând integritatea blockchain-ului. + +## Starea MEV {#state-of-mev} + +Extracția de MEV a explodat la începutul anului 2021, ceea ce a dus la prețuri extrem de ridicate ale gazului în primele câteva luni ale anului. Apariția releului MEV de la Flashbots a redus eficiența frontrunner-ilor generalizați și a scos licitațiile pentru prețul gazului în afara lanțului, reducând prețurile la gaz pentru utilizatorii obișnuiți. + +În timp ce mulți căutători încă fac bani buni din MEV, pe măsură ce oportunitățile devin mai cunoscute și tot mai mulți căutători concurează pentru aceeași oportunitate, miner-ii vor capta din ce în ce mai multe venituri totale din MEV (deoarece același tip de licitații de gaz descrise inițial mai sus au loc și în Flashbots, deși în mod privat, iar miner-ii vor capta veniturile rezultate din gaz). MEV nu este nici unic pentru Ethereum și, pe măsură ce oportunitățile devin mai competitive pe Ethereum, căutătorii se mută pe blockchain-uri alternative, cum ar fi Binance Smart Chain, unde există oportunități MEV similare cu cele de pe Ethereum, dar cu mai puțină concurență. + +Pe măsură ce DeFi se dezvoltă și cresc în popularitate, MEV ar putea în curând să depășească în mod semnificativ recompensa de bază a blocului Ethereum. Odată cu aceasta, apare o posibilitate din ce în ce mai mare de reminare egoistă a blocurilor și de instabilitate a consensului. Unii consideră că aceasta este o amenințare existențială pentru Ethereum, iar inhibarea mineritului egoist este un domeniu activ de cercetare în teoria protocolului Ethereum. O soluție explorată în prezent este [uniformizarea recompenselor MEV](https://ethresear.ch/t/committee-driven-mev-smoothing/10408). + +## Resurse conexe {#related-resources} + +- [Flashbots GitHub](https://github.com/flashbots/pm) +- [MEV-Explore](https://explore.flashbots.net/) _Tablou de bord și explorator de tranzacții live pentru tranzacțiile MEV_ + +## Referințe suplimentare {#further-reading} + +- [Ce este Valoarea extractibilă prin minare (MEV)?](https://blog.chain.link/what-is-miner-extractable-value-mev/) +- [MEV și cu mine](https://research.paradigm.xyz/MEV) +- [Ethereum este o pădure întunecată](https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest/) +- [Evadarea din pădurea întunecată](https://samczsun.com/escaping-the-dark-forest/) +- [Flashbots: Frontrunning-ul crizei MEV](https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752) +- [@bertcmiller's MEV Threads](https://twitter.com/bertcmiller/status/1402665992422047747) diff --git a/src/content/translations/ro/developers/docs/networks/index.md b/public/content/translations/ro/developers/docs/networks/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/networks/index.md rename to public/content/translations/ro/developers/docs/networks/index.md diff --git a/public/content/translations/ro/developers/docs/nodes-and-clients/index.md b/public/content/translations/ro/developers/docs/nodes-and-clients/index.md new file mode 100644 index 00000000000..23cec983ff8 --- /dev/null +++ b/public/content/translations/ro/developers/docs/nodes-and-clients/index.md @@ -0,0 +1,316 @@ +--- +title: Noduri și clienți +description: O prezentare generală a nodurilor Ethereum și a software-ului client plus cum să configurați un nod și de ce ar trebui să faceți acest lucru. +lang: ro +sidebarDepth: 2 +--- + +Ethereum este o rețea distribuită de computere pe care rulează un software (cunoscute sub numele de noduri) care poate verifica blocurile și datele tranzacțiilor. Pentru a „rula” un nod aveți nevoie pe computer de o aplicație cunoscută sub numele de client. + +## Condiții prealabile {#prerequisites} + +Ar trebui să înțelegeți conceptul de rețea peer-to-peer și [principiile de bază ale EVM](/developers/docs/evm/) înainte de a vă implica mai îndeaproape și de a rula propria instanță a unui client Ethereum. Aruncați o privire la [introducerea despre Ethereum](/developers/docs/intro-to-ethereum/). + +If you're new to the topic of nodes, we recommend first checking out our user-friendly introduction on [running an Ethereum node](/run-a-node). + +## Ce sunt nodurile și clienții? {#what-are-nodes-and-clients} + +„Nodul” se referă la un software cunoscut sub numele de client. Un client este o implementare a lui Ethereum care verifică toate tranzacțiile din fiecare bloc, păstrând rețeaua securizată şi datele corecte. + +Puteți vizualiza în timp real rețeaua Ethereum uitându-vă pe această [hartă a nodurilor](https://etherscan.io/nodetracker). + +Există numeroși [clienți Ethereum](/developers/docs/nodes-and-clients/#execution-clients), într-o varietate de limbaje de programare, cum ar fi Go, Rust, JavaScript, Typescript, Python, C# .NET, Nim și Java. Punctul comun al acestor implementări este că toate respectă o specificație formală (inițial denumită [Cartea galbenă Ethereum](https://ethereum.github.io/yellowpaper/paper.pdf)). This specification dictates how the Ethereum network and blockchain functions. + +![Execution client](./client-diagram.png) Diagramă simplificată a funcţionalităţilor clientului Ethereum. + +## Tipuri de noduri {#node-types} + +If you want to [run your own node](/developers/docs/nodes-and-clients/run-a-node/), you should understand that there are different types of node that consume data differently. In fact, clients can run 3 different types of node - light, full and archive. Există de asemenea opţiunea de a aplica diverse strategii de sincronizare, care scurtează timpul de sincronizare. Sincronizarea se referă la viteza cu care poate obține cele mai actualizate informații despre starea lui Ethereum. + +### Nod complet {#full-node} + +- Stochează date complete despre blockchain. +- Participă la validarea blocurilor, verifică toate blocurile și stările. +- Se pot obţine toate stările dintr-un nod complet. +- Deservește rețeaua și oferă date la cerere. + +### Nod ușor {#light-node} + +- Stochează lanțul de anteturi și solicită tot restul. +- Poate verifica validitatea datelor în raport cu rădăcinile de stare din anteturile blocului. +- Este util pentru dispozitivele de capacitate redusă, cum ar fi dispozitivele încorporate sau telefoanele mobile, care nu își permit să stocheze gigaocteţi de date blockchain. + +### Nod de arhivă {#archive-node} + +- Stochează tot ce este păstrat în nodul complet și construiește o arhivă de stări istorice. Este necesar atunci când doriți să interogați ceva precum soldul unui cont la blocul #4.000.000 sau [să vă testați propriul set de tranzacții fără a le mina folosind OpenEthereum](https://openethereum.github.io/JSONRPC-trace-module#trace_callmany), în mod simplu şi fiabil. +- Aceste date reprezintă unități de teraocteţi, ceea ce face ca nodurile de arhivă să fie mai puțin atractive pentru utilizatorii obișnuiți, dar pot fi utile pentru servicii precum exploratorii de blocuri, furnizorii de portofele și analiza lanțului. + +Sincronizarea clienților în orice alt mod decât arhiva va duce la pierderea de date din blockchain. This means, there is no archive of all historical states but the full node is able to build them on demand. + +## De ce trebuie să rulez un nod Ethereum? {#why-should-i-run-an-ethereum-node} + +Rularea unui nod vă permite să utilizați Ethereum fără necesitatea acordării încrederii și în mod privat, susţinând în acelaşi timp ecosistemul. + +### Avantajele pentru dvs. {#benefits-to-you} + +Dacă rulaţi propriul nod, aceasta vă permite să utilizaţi Ethereum într-un mod cu adevărat privat, auto-suficient și fără a fi necesară acordarea încrederii. Nu aveţi nevoie să vă încredeţi e în rețea, deoarece puteţi verifica singur datele cu clientul. „Nu acordaţi încredere, verificaţi” este o mantra populară pe blockchain. + +- Nodul dvs. verifică toate tranzacțiile și blochează conform regulilor e de consens. Aceasta înseamnă că nu trebuie să vă bazaţi pe alte noduri din rețea, şi nici să le acordaţi încredere deplină. +- Nu va trebui să vă dezvăluiţi adresele și soldurile către noduri aleatorii. Totul poate fi verificat cu propriul dvs. client. +- Aplicația dvs. dapp poate fi mai securizată și mai privată dacă vă folosiţi propriul nod. [MetaMask](https://metamask.io), [MyEtherWallet](https://myetherwallet.com) and some other wallets can be easily pointed to your own local node. +- Puteți să vă programați propriile endpoint-uri RPC personalizate. +- Vă puteți conecta la nodul dvs. folosind **Comunicațiile între procese (IPC)** sau puteți rescrie nodul pentru a vă încărca programul ca plugin. Aceasta vă garantează o latență scăzută, necesară pentru a vă înlocui tranzacțiile cât mai repede posibil (adică frontrunning). + +![Cum puteți accesa Ethereum prin intermediul aplicației și al nodurilor](./nodes.png) + +### Avantajele rețelei {#network-benefits} + +Este important să existe o diversitate a seturilor de noduri pentru sănătatea, securitatea și rezilienţa operațională a lui Ethereum. + +- Acestea oferă acces la datele blockchain-ului pentru clienții ușori care depind de acestea. În perioadele de vârf ale utilizării trebuie să existe suficiente noduri complete pentru a ajuta la sincronizarea nodurilor ușoare. Nodurile ușoare nu stochează întregul blockchain, ci verifică datele prin [rădăcinile stării din anteturile blocurilor](/developers/docs/blocks/#block-anatomy). Ele pot solicita şi alte informații de la blocuri dacă le sunt necesare. +- Nodurile complete aplică regulile de consens pentru dovada-muncii, deci nu pot fi păcălite să accepte blocuri care nu urmează aceste reguli. Acest lucru oferă o securitate suplimentară în rețea, deoarece dacă toate nodurile ar fi noduri ușoare, care nu fac verificarea completă, miner-ii ar putea ataca rețeaua, creând, de exemplu, blocuri cu recompense mai mari. + +Dacă rulați un nod complet, întreaga rețea Ethereum beneficiază de acesta. + +## Rularea propriului dvs. nod {#running-your-own-node} + +Sunteți interesat să vă rulați propriul client Ethereum? + +For a beginner-friendly introduction visit our [run a node](/run-a-node) page to learn more. + +If you're more of a technical user, learn how to [spin up your own node](/developers/docs/nodes-and-clients/run-a-node/) with the command line! + +### Proiecte {#projects} + +[**Selectează un client și urmează instrucțiunile acestuia**](#clients) + +**ethnode -** **_Run an Ethereum node (Geth or OpenEthereum) for local development._** + +- [GitHub](https://github.com/vrde/ethnode) + +**DAppNode -** **_O interfață grafică a sistemului de operare pentru rularea nodurilor Web3, inclusiv Ethereum și lanțul beacon, pe o mașină dedicată._** + +- [dappnode.io](https://dappnode.io) + +### Resurse {#resources} + +- [Executarea nodurilor complete Ethereum: Ghid integral](https://medium.com/coinmonks/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _7 noiembrie 2019 - Justin Leroux_ +- [Listă de ponturi pentru configurarea nodurilor](https://dev.to/5chdn/ethereum-node-configuration-modes-cheat-sheet-25l8) _5 ianuarie 2019 - Afri Schoeden_ +- [Cum se instalează & Rularea unui nod Geth](https://www.quiknode.io/guides/infrastructure/how-to-install-and-run-a-geth-node) _4 octombrie 2020 - Sahil Sen_ +- [Cum se instalează & Rularea unui nod OpenEthereum (fka. Parity) Node](https://www.quiknode.io/guides/infrastructure/how-to-run-a-openethereum-ex-parity-client-node) _22 septembrie 2020 - Sahil Sen_ + +## Alternative {#alternatives} + +Rularea propriului nod poate fi dificilă și nu este nevoie să rulezi întotdeauna propria instanță. În acest caz, puteți utiliza un furnizor de API de la un terţ, cum ar fi [Infura](https://infura.io), [Alchemy](https://alchemyapi.io) sau [QuikNode](https://www.quiknode.io). Alternativ, [ArchiveNode](https://archivenode.io/) este un nod de tip „Archive” finanțat de comunitate, care se speră că va aduce date de arhivă pe blockchain-ul Ethereum pentru dezvoltatorii independenți, care altfel nu și-ar putea permite acest lucru. For an overview of using these services, check out [nodes as a service](/developers/docs/nodes-and-clients/nodes-as-a-service/). + +Dacă cineva rulează un nod Ethereum cu un API public în comunitatea dvs., vă puteți direcționa portofelele ușoare (cum ar fi MetaMask) către un nod al comunității [printr-un RPC personalizat](https://metamask.zendesk.com/hc/en-us/articles/360015290012-Using-a-Local-Node) și puteți obține mai multă confidențialitate decât cu un terţ de încredere aleatoriu. + +Pe de altă parte, dacă rulezi un client, îl poți partaja cu prietenii tăi care ar putea avea nevoie de el. + +## Clienți de execuție (anterior „clienți Eth1”) {#execution-clients} + +The Ethereum community maintains multiple open-source execution clients (previously known as 'Eth1 clients', or just 'Ethereum clients'), developed by different teams using different programming languages. Acest lucru face ca rețeaua să fie mai puternică și de mai mare diversitate. Obiectivul optim este de a realiza diversitatea fără ca vreun client să domine, pentru a reduce orice punct unic de eșec. + +Acest tabel prezintă o sinteză a diferiților clienți. Toţi aceştia trec nişte [teste pentru clienţi](https://github.com/ethereum/tests) și sunt menținuţi în mod activ pentru a rămâne la zi cu actualizările rețelei. + +| Client | Limbaj | Sisteme de operare | Rețele | Strategii de sincronizare | Starea curățării | +| ------------------------------------------------------------------------- | -------- | --------------------- | ------------------------------------------ | ------------------------- | ---------------- | +| [Geth](https://geth.ethereum.org/) | Go | Linux, Windows, macOS | Mainnet, Görli, Rinkeby, Ropsten | Snap, Full | Arhivă, Curățată | +| [Nethermind](http://nethermind.io/) | C#, .NET | Linux, Windows, macOS | Mainnet, Görli, Ropsten, Rinkeby și altele | Fast, Beam, Archive | Arhivă, Curățată | +| [Besu](https://besu.hyperledger.org/en/stable/) | Java | Linux, Windows, macOS | Mainnet, Rinkeby, Ropsten, Görli, and more | Rapidă, Completă | Arhivă, Curățată | +| [Erigon](https://github.com/ledgerwatch/erigon) | Începe | Linux, Windows, macOS | Rețea principală, Görli, Rinkeby, Ropsten | Full | Arhivă, Curățată | +| [OpenEthereum (Deprecated)](https://github.com/openethereum/openethereum) | Rust | Linux, Windows, macOS | Mainnet, Kovan, Ropsten și altele | Warp, Completă | Arhivă, Curățată | + +**Rețineți că OpenEthereum [a fost dezaprobat](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) și nu mai este întreținut.** Folosiți-l cu precauție și este preferabil să treceți la o altă implementare de client. + +Pentru a afla mai multe informații despre rețelele acceptate, citiți [rețelele Ethereum](/developers/docs/networks/). + +### Avantajele diferitelor implementări {#advantages-of-different-implementations} + +Fiecare client are cazuri de utilizare și avantaje unice, deci ar trebui să alegi unul pe baza propriilor preferințe. Diversitatea permite implementărilor să se concentreze pe diferite funcţionalităţi și categorii de utilizatori. Poate că doriți să alegeți un client în funcție de funcţionalităţi, acceptări, limbajul de programare sau licențe. + +#### Go Ethereum {#geth} + +Go Ethereum (pe scurt, Geth) este una dintre implementările originale ale protocolului Ethereum. Este actualmente cel mai răspândit client, cu cea mai mare bază de utilizatori și o varietate de instrumente pentru utilizatori și dezvoltatori. Este scris în Go, complet open source și licențiat sub GNU LGPL v3. + +#### OpenEthereum {#openethereum} + +OpenEthereum este un client Ethereum rapid, bogat în funcții şi avansat, bazat pe CLI. Este construit pentru a oferi infrastructura esențială pentru servicii rapide și fiabile, care necesită sincronizare rapidă și timp maxim de funcționare. Obiectivul OpenEthereum este de a fi cel mai rapid, mai ușor și mai securizat client Ethereum. Oferă o bază de cod modulară curată pentru: + +- personalizare ușoară. +- integrarea ușoară în servicii sau produse. +- consum minim de memorie și de stocare. + +OpenEthereum este dezvoltat folosind limbajul de programare Rust de ultimă oră și licențiat sub GPLv3. + +**Rețineți că OpenEthereum [a fost dezaprobat](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) și nu mai este întreținut.** Folosiți-l cu precauție și este preferabil să treceți la o altă implementare de client. + +#### Nethermind {#nethermind} + +Nethermind este o implementare Ethereum creată cu stiva de tehnologie C# .NET, care rulează pe toate platformele majore, inclusiv ARM. Acesta oferă o mare performanță cu: + +- o mașină virtuală optimizată +- acces la stare +- rețele și funcţionalităţi bogate, cum ar fi tablouri de bord Prometheus/Grafana, acceptarea logării seq enterprise, urmărire JSON RPC și plugin-uri analitice. + +Nethermind are o [documentație detaliată](https://docs.nethermind.io), asistenţă foarte bună pentru dezvoltatori, o comunitate online și asistenţă non-stop pentru utilizatorii premium. + +#### Besu {#besu} + +Hyperledger Besu este un client Ethereum de nivel de întreprindere pentru rețele publice și autorizate. Rulează toate funcţionalităţile Mainnet-ului Ethereum, de la urmărire la GraphQL, are o monitorizare extinsă și este sprijinită de ConsenSys, atât în canalele deschise ale comunității, cât și prin acordurile de servicii comerciale pentru întreprinderi. Este scris în Java și are licență Apache 2.0. + +#### Erigon {#erigon} + +Erigon, cunoscut anterior sub denumirea de Erigon, este un fork Go Ethereum ce vizează creşterea vitezei şi a eficienţei spaţiului pe disc. Erigon este o implementare complet reproiectată a lui Ethereum, actualmente scrisă în Go, dar care urmează să fie implementată și în alte limbaje. Scopul Erigon este de a oferi o implementare mai rapidă, mai modulară și mai optimizată a lui Ethereum. It can perform a full archive node sync using less than 2TB of disk space, in under 3 days + +### Moduri de sincronizare {#sync-modes} + +To follow and verify current data in the network, the Ethereum client needs to sync with the latest network state. Aceasta se realizează prin descărcarea datelor de la omologi și verificarea integrității lor prin criptografie, precum și prin construirea unei baze de date blockchain locale. + +Synchronization modes represent different approaches to this process with various trade-offs. Clienții diferă şi prin implementarea algoritmilor de sincronizare. Consultați întotdeauna documentația oficială a clientului pe care l-ați ales pentru a afla detalii privind implementarea. + +#### Prezentare generală a strategiilor {#overview-of-strategies} + +Prezentare generală a metodelor de sincronizare utilizate în cazul clienților pregătiți pentru Mainnet: + +##### Sincronizare completă + +Sincronizarea completă descarcă toate blocurile (inclusiv anteturile, tranzacțiile și chitanțele) și generează incremental starea blockchain-ului, executând fiecare bloc de la geneză. + +- Minimizează încrederea și oferă cea mai mare securitate prin verificarea fiecărei tranzacții. +- Odată cu creșterea numărului de tranzacții, procesarea tuturor tranzacțiilor poate dura câteva zile până la câteva săptămâni. + +##### Sincronizare rapidă + +Fast sync downloads all blocks (including headers, transactions, and receipts), verifies all headers, downloads the state and verifies it against the headers. + +- Se bazează pe securitatea mecanismului de consens. +- Sincronizarea durează doar câteva ore. + +##### Sincronizare ușoară + +Modul client ușor descarcă toate anteturile de bloc, datele de bloc și le verifică pe unele în mod aleatoriu. Only syncs tip of the chain from the trusted checkpoint. + +- Obține doar cea mai recentă stare, bazându-se în același timp pe încrederea în dezvoltatori și pe mecanismul de consens. +- Clientul este pregătit pentru utilizare cu starea curentă a rețelei în câteva minute. + +[More on Light clients](https://www.parity.io/blog/what-is-a-light-client/) + +##### Sincronizare instantanee + +Implemented by Geth. Prin utilizarea instantaneelor dinamice servite de omologi, se recuperează toate datele de cont și de stocare fără să se descarce noduri trie intermediare și apoi se reconstruiește Merkle trie la nivel local. + +- Este cea mai rapidă strategie de sincronizare dezvoltată de Geth, actualmente opţiunea sa implicită +- Economisește mult din spațiul de utilizare a discului și din lățimea de bandă a rețelei, fără a sacrifica securitatea. + +[More on Snap](https://github.com/ethereum/devp2p/blob/master/caps/snap.md) + +##### Sincronizare Warp + +Implementată de OpenEthereum. Nodes regularly generate a consensus-critical state snapshot and any peer can fetch these snapshots over the network, enabling a fast sync from this point. + +- Este modul de sincronizare implicit și cel mai rapid din OpenEthereum, care se bazează pe instantanee statice servite de omologi. +- Este o strategie similară cu sincronizarea instantanee „snap sync”, dar fără anumite beneficii de securitate. + +[More on Warp](https://openethereum.github.io/Beginner-Introduction#warping---no-warp) + +##### Sincronizare Beam + +Implementată de Nethermind și Trinity. Works like fast sync but also downloads the data needed to execute latest blocks, which allows you to query the chain within the first few minutes from starting. + +- Sincronizează mai întâi starea și vă permite să interogați RPC în câteva minute. +- Sincronizarea în fundal „background sync” este încetinită deoarece este încă în curs de dezvoltare și nu este complet fiabilă, iar răspunsurile RPC pot eșua. + +[More on Beam](https://medium.com/@jason.carver/intro-to-beam-sync-a0fd168be14a) + +#### Configurare în client {#client-setup} + +Clienții vă oferă opțiuni de configurare variate care să se conformeze necesităţilor dvs. Alegeți-o pe cea care vă convine cel mai mult, în funcție de nivelul de securitate, de datele disponibile și de costuri. În afară de algoritmul de sincronizare, puteți configura şi eliminarea diverselor tipuri de date vechi. Pruning-ul (curățarea) permite ștergerea datelor ieşite din uz, de exemplu, eliminarea nodurilor trie de stare care sunt inaccesibile din blocurile recente. + +Verificați cu atenţie documentația sau pagina de ajutor a clientului pentru a afla care este modul de sincronizare implicit. Vă puteți defini tipul preferat de sincronizare atunci când vă configurați în modul următor: + +**Setting up light sync in [GETH](https://geth.ethereum.org/) or [ERIGON](https://github.com/ledgerwatch/erigon)** + +`geth --syncmode "light"` + +For further details, check out the tutorial on [running Geth light node](/developers/tutorials/run-light-node-geth/). + +**Setting up full sync with archive in [Besu](https://besu.hyperledger.org/)** + +`besu --sync-mode=FULL` + +Ca orice altă configurație, aceasta poate fi definită cu ajutorul steguleţului de pornire sau în fișierul de configurare. Un alt exemplu este [Nethermind](https://docs.nethermind.io/nethermind/), care vă solicită să alegeți o configurație la prima inițializare și creează un fișier de configurare. + +## Clienți de consens (anterior clienți „Eth2”) {#consensus-clients} + +There are multiple consensus clients (previously known as 'Eth2' clients) to support the [consensus upgrades](/roadmap/beacon-chain/). They are running the Beacon Chain and will provide proof-of-stake consensus mechanism to execution clients after [The Merge](/roadmap/merge/). + +| Client | Limbaj | Sisteme de operare | Rețele | +| ----------------------------------------------------------- | ---------- | --------------------- | -------------------------------------- | +| [Teku](https://pegasys.tech/teku) | Java | Linux, Windows, macOS | Lanţul Beacon, Goerli | +| [Nimbus](https://nimbus.team/) | Nim | Linux, Windows, macOS | Lanţul Beacon, Goerli | +| [Lighthouse](https://lighthouse-book.sigmaprime.io/) | Rust | Linux, Windows, macOS | Lanţul Beacon, Goerli, Pyrmont | +| [Lodestar](https://lodestar.chainsafe.io/) | TypeScript | Linux, Windows, macOS | Lanţul Beacon, Goerli | +| [Prysm](https://docs.prylabs.network/docs/getting-started/) | Go | Linux, Windows, macOS | Lanţul Beacon, Gnosis, Goerli, Pyrmont | + +## Hardware {#hardware} + +Cerințele hardware diferă în funcție de client, dar în general nu sunt atât de mari, deoarece nodul trebuie doar să rămână sincronizat. Nu-l confunda cu mineritul care necesită mult mai multă putere de calcul. Cu toate acestea, timpul de sincronizare și performanța se îmbunătățesc cu un hardware mai puternic. În funcție de nevoile și dorințele dvs., Ethereum poate fi rulat pe computerul dvs., pe serverul de acasă, pe computere cu o singură placă (SBC) sau pe servere virtuale private în cloud. + +O modalitate ușoară de a rula propriul nod este utilizarea casetelor „plug and play”, cum ar fi [DAppNode](https://dappnode.io/). Oferă hardware pentru rularea clienților și a aplicațiilor care depind de aceștia, cu o interfață de utilizator simplă. + +### Cerințe {#requirements} + +Înainte de a instala orice client, asigurați-vă că aveți suficiente resurse pe computerul dvs. pentru a-l rula. Cerințele minime și recomandate pot fi găsite mai jos, totuși partea cheie este spațiul pe disc. Sincronizarea blockchain-ului Ethereum presupune o utilizare intensivă a intrărilor/ieșirilor. Cel mai bine este să aveți un solid-state drive (SSD). Pentru a rula un client Ethereum pe HDD, veți avea nevoie de cel puțin 8GB de memorie RAM pentru a o folosi ca memorie cache. + +#### Cerințe minime {#recommended-specifications} + +- Procesor cu cel puțin 2 nuclee +- 4 GB RAM minimum cu un SSD, 8 GB minimum, dacă aveți un HDD +- Lățime de bandă de 8 MBit/s + +#### Specificații recomandate {#recommended-specifications} + +- Procesor rapid cu cel puțin 4 nuclee +- Minimum 16 GB RAM +- SSD rapid cu cel puțin 500 GB spațiu liber +- Lățime de bandă de cel puțin 25 MBit/s + +Modul de sincronizare pe care îl alegeți va afecta spațiul necesar, dar am estimat mai jos spațiul pe disc de care veți avea nevoie pentru fiecare client. + +| Client | Mărimea discului (sinc. rapidă) | Mărimea discului (arhivă completă) | +| ------------ | ------------------------------- | ---------------------------------- | +| Geth | Minimum 400 GB | Minimum 6TB | +| OpenEthereum | Minimum 280 GB | Minimum 6TB | +| Nethermind | Minimum 200 GB | Minimum 5TB | +| Besu | Minimum 750 GB | Minimum 5TB | +| Erigon | Nu este cazul | Minimum 1TB | + +- Observaţie: Erigon nu oferă sincronizarea rapidă, însă permite curățarea completă (~500 GB) + +Aceste diagrame arată cum cerințele de stocare sunt mereu în schimbare. Pentru cele mai recente date referitoare la Geth și OpenEthereum, consultați [date complete de sincronizare](https://etherscan.io/chartsync/chaindefault) și [date arhivate de sincronizare](https://etherscan.io/chartsync/chainarchive). + +### Ethereum pe un computer cu o singură placă (SBC) {#ethereum-on-a-single-board-computer} + +Cel mai convenabil și mai ieftin mod de a rula nodul Ethereum este de a utiliza un computer cu o singură placă bazată pe arhitectură ARM precum Raspberry Pi. [Ethereum pe ARM](https://twitter.com/EthereumOnARM) oferă imagini ale clienților Geth, OpenEthereum, Nethermind și Besu. Iată un tutorial simplu despre modul [cum se construiește și se configurează un client ARM](/developers/tutorials/run-node-raspberry-pi/). + +Astfel de dispozitive mici, accesibile și eficiente sunt ideale pentru rularea unui nod la domiciliu. + +## Referințe suplimentare {#further-reading} + +There is a lot of information about Ethereum clients on the internet. Here are few resources that might be helpful. + +- [Ethereum 101 - Partea 2 - Înțelegerea nodurilor](https://kauri.io/ethereum-101-part-2-understanding-nodes/48d5098292fd4f11b251d1b1814f0bba/a) _– Wil Barnes, 13 februarie 2019_ +- [Rularea de noduri Ethereum complete: Un ghid pentru cei nu prea motivați](https://medium.com/@JustinMLeroux/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _– Justin Leroux, 7 noiembrie 2019_ +- [Analiza cerințelor de hardware pentru a fi un nod Ethereum validat complet](https://medium.com/coinmonks/analyzing-the-hardware-requirements-to-be-an-ethereum-full-validated-node-dc064f167902) _– Albert Palau, 24 septembrie 2018_ +- [Rularea unui nod Hyperledger Besu pe Mainnet-ul Ethereum: avantaje, cerințe și configurare](https://pegasys.tech/running-a-hyperledger-besu-node-on-the-ethereum-mainnet-benefits-requirements-and-setup/) _– Felipe Faraggi, 7 mai 2020_ + +## Subiecte corelate {#related-topics} + +- [Blocuri](/developers/docs/blocks/) +- [Rețele](/developers/docs/networks/) + +## Tutoriale corelate {#related-tutorials} + +- [Rularea unui nod cu Geth](/developers/tutorials/run-light-node-geth/) _ – Cum se descarcă, se instalează şi se rulează Geth. Covering syncmodes, the JavaScript console, and more._ +- [Transformați Raspberry Pi 4 într-un nod validator doar prin flash-area cardului MicroSD – Ghidul de instalare](/developers/tutorials/run-node-raspberry-pi/) _– Flash-ați Raspberry Pi 4, conectați un cablu ethernet, conectați discul SSD și porniți dispozitivul pentru a transforma Raspberry Pi 4 într-un nod Ethereum complet care rulează nivelul de execuție (Mainnet) și / sau nivelul de consens (Lanțul Beacon / validatorul)._ diff --git a/src/content/translations/ro/developers/docs/nodes-and-clients/nodes-as-a-service/index.md b/public/content/translations/ro/developers/docs/nodes-and-clients/nodes-as-a-service/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/nodes-and-clients/nodes-as-a-service/index.md rename to public/content/translations/ro/developers/docs/nodes-and-clients/nodes-as-a-service/index.md diff --git a/public/content/translations/ro/developers/docs/nodes-and-clients/run-a-node/index.md b/public/content/translations/ro/developers/docs/nodes-and-clients/run-a-node/index.md new file mode 100644 index 00000000000..1704805c918 --- /dev/null +++ b/public/content/translations/ro/developers/docs/nodes-and-clients/run-a-node/index.md @@ -0,0 +1,162 @@ +--- +title: Creați-vă propriul nod Ethereum +description: Introducere generală despre rularea propriei instanțe a unui client Ethereum. +lang: ro +sidebarDepth: 2 +--- + +Rularea propriului nod vă oferă diverse beneficii, deschide noi posibilități și ajută la susținerea ecosistemului. Această pagină vă va îndruma prin procesul de creare a propriului nod și de participare la validarea tranzacțiilor Ethereum. + +## Condiții prealabile {#prerequisites} + +Ar trebui să înțelegeți ce este un nod Ethereum și de ce este de dorit să rulați un client. Acest aspect este tratat în secțiunea [Noduri și clienți](/developers/docs/nodes-and-clients/). + +If you're new to the topic of running a node, or looking for a less technical path, we recommend first checking out our user-friendly introduction on [running an Ethereum node](/run-a-node). + +## Alegerea unei metode de abordare {#choosing-approach} + +Primul pas în crearea nodului dvs. este să vă alegeţi un mod de abordare. You have to choose the client (the software), the environment, and the parameters you want to start with. Vizualizați toți [clienţii din Mainnet](/developers/docs/nodes-and-clients/#advantages-of-different-implementations) disponibili. + +### Setările pentru client {#client-settings} + +Implementările clienţilor activează diferite moduri de sincronizare și diverse alte opțiuni. [Modurile de sincronizare](/developers/docs/nodes-and-clients/#sync-modes) reprezintă diferite metode de descărcare și validare a datelor din blockchain. Before starting the node, you should decide what network and sync mode to use. Cele mai importante lucruril de luat în considerare sunt spațiul pe disc și timpul de sincronizare de care va avea nevoie clientul. + +Puteţi afla toate funcţionalităţile și opțiunile în documentația clientului. Se pot seta diverse configurații ale clientului prin executarea clientului cu flagurile corespunzătoare. În scopul testării, este preferabil să executați un client pe una dintre rețelele testnet. [Vedeți o prezentare generală a rețelelor acceptate](/developers/docs/nodes-and-clients/#execution-clients). + +### Mediu și hardware {#environment-and-hardware} + +#### Local sau în cloud {#local-vs-cloud} + +Clienții Ethereum pot rula pe computerele obişnuite ale consumatorilor și nu necesită un hardware special, cum ar fi, de exemplu, cel de minare. Prin urmare, aveți diverse opțiuni pentru implementare în funcţie de necesităţile dvs. Pentru a simplifica, să ne gândim să rulăm un nod atât pe un computer fizic local, cât și pe un server în cloud: + +- Cloud + - Furnizorii oferă o disponibilitate ridicată a timpului de server, adrese IP publice statice + - Să obţineţi un server dedicat sau virtual poate fi mai comodă decât să vă construiţi un server propriu + - Compromisul este de a vă încrede într-un terţ - furnizorul serverului + - Din cauza dimensiunii de stocare necesare pentru un nod complet, prețul unui server închiriat ar putea să crească +- Hardware propriu + - O abordare ce nu necesită să vă bizuiţi pe încredere și care este mai independentă + - O investiție unică + - O opțiune de a cumpăra un computere preconfigurate + - Trebuie să întrețineți, să mențineți și eventual să depanați computerul, în mod fizic + +Ambele opțiuni au diverse avantaje, rezumate mai sus. Dacă sunteți interesat de o soluție în cloud, pe lângă numeroșii furnizori tradiționali de cloud computing, există și servicii axate pe implementarea de noduri. De exemplu: + +- [QuikNode](https://www.quiknode.io/) +- [Blockdaemon](https://blockdaemon.com) +- [LunaNode](https://www.lunanode.com/) +- [Alchemy](https://www.alchemy.com/) + +#### Hardware {#hardware} + +Cu toate acestea, o rețea rezistentă la cenzură, descentralizată nu ar trebui să se bazeze pe furnizorii de servicii în cloud. Este mai sănătos pentru ecosistem dacă vă rulaţi propriul nod pe hardware. Cele mai simple opțiuni sunt constituite de computerele preconfigurate, cum ar fi: + +- [DappNode](https://dappnode.io/) +- [Avado](https://ava.do/) + +Verificați [cerinţele de spațiu pe disc ale fiecărui client și mod de sincronizare](/developers/docs/nodes-and-clients/#requirements) minime şi recomandate. Generally, modest computing power should be enough. De obicei problema este reprezentată de viteza unității. During initial sync, Ethereum clients perform a lot of read/write operations. De aceea se recomandă insistent un SSD. S-ar putea ca un client să nu [poată nici măcar să sincronizeze starea curentă pe HDD](https://github.com/ethereum/go-ethereum/issues/16796#issuecomment-391649278) și să rămână blocat la câteva blocuri în spatele Mainnet-ului. Puteți rula cei mai mulți clienți pe un [computer cu o singură placă pe procesoare cu arhitectură ARM](/developers/docs/nodes-and-clients/#ethereum-on-a-single-board-computer/). You can also use the [Ethbian](https://ethbian.org/index.html) operating system for Raspberry Pi 4. This lets you [run a client by flashing the SD card](/developers/tutorials/run-node-raspberry-pi/). Pe baza opțiunilor dvs. de software și hardware, timpul pentru sincronizarea inițială și cerințele de stocare pot varia. Aveţi grijă să [verificaţi timpii de sincronizare și cerințele de stocare](/developers/docs/nodes-and-clients/#recommended-specifications). Totodată, verificați că nu aveți o conexiune la internet limitată de un [plafon de lățime de bandă](https://wikipedia.org/wiki/Data_cap). Este recomandat să utilizați o conexiune nelimitată, deoarece sincronizarea inițială și datele difuzate în rețea ar putea depăși limita dvs. + +#### Sistemul de operare {#operating-system} + +All clients support major operating systems - Linux, MacOS, Windows. Aceasta înseamnă că puteți rula nodurile pe computere desktop obișnuite sau pe servere cu sistemul de operare (SO) preferat. Asigurați-vă că sistemul dvs. de operare este actualizat, pentru a evita eventualele probleme și vulnerabilități de securitate. + +## Crearea nodului {#spinning-up-node} + +### Procurarea software-ului client {#getting-the-client} + +Mai întâi descărcați [software-ul client](/developers/docs/nodes-and-clients/#execution-clients) preferat + +Nu trebuie decât să descărcați o aplicație executabilă sau un pachet de instalare adaptat sistemului dvs. de operare și arhitecturii dvs. Always verify signatures and checksums of downloaded packages. Anumiți clienți oferă şi depozitare pentru a facilita instalarea și actualizările. If you prefer, you can build from source. All of the clients are open source so you can build them from source code with the proper compiler. + +Fișierele binare executabile destinate implementărilor clienților Mainnet stabili se pot descărca de pe paginile lor de lansare: + +- [Geth](https://geth.ethereum.org/downloads/) +- [OpenEthereum,](https://github.com/openethereum/openethereum/releases) +- [Nethermind](https://downloads.nethermind.io/) +- [Besu](https://besu.hyperledger.org/en/stable/) +- [Erigon](https://github.com/ledgerwatch/erigon) + +**Rețineți că OpenEthereum [a fost dezaprobat](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) și nu mai este întreținut.** Folosiți-l cu precauție și este preferabil să treceți la o altă implementare de client. + +### Lansarea clientului {#starting-the-client} + +Este bine ca, înainte de a porni software-ul client Ethereum, să efectuați o ultimă verificare că mediul dvs. este pregătit. For example, make sure: + +- Aveți suficient spațiu pe disc, în funcție de rețeaua aleasă și de modul de sincronizare. +- Memoria și CPU-ul nu sunt oprite de alte programe. +- Sistemul de operare este actualizat la ultima versiune. +- Data și ora sistemului sunt corecte. +- Routerul și firewall-ul acceptă conexiuni pe porturile de ascultare. Clienții Ethereum utilizează în mod implicit un port de ascultare (TCP) și un port de descoperire (UDP), ambele pe 30303 în mod implicit. + +Rulaţi mai întâi clientul pe un testnet, pentru a vă asigura că totul funcționează corect. [Dacă rulaţi un nod ușor Geth](/developers/tutorials/run-light-node-geth/), aceasta ar trebui să vă ajute. Toate setările de client ce nu sunt cele implicite trebuie să fie declarate de la început. You can use flags or the config file to declare your preferred configuration. Consultați documentația clientului dvs. pentru detalii Execuția clientului va iniția funcțiile sale de bază, endpoint-urile alese și va începe să caute partenerii. După ce a reuşit să descopere partenerii, clientul începe sincronizarea. Datele actualizate ale blockchain-ului vor fi disponibile după sincronizarea cu succes a clientului cu starea actuală. + +### Utilizarea clientului {#using-the-client} + +Clienții oferă endpoint-uri API RPC pe care le puteți utiliza pentru a controla clientul și a interacționa cu rețeaua Ethereum în diverse moduri: + +- Apelându-i manual cu un protocol adecvat (de exemplu, folosind `curl`) +- Atașându-le o consolă furnizată (de exemplu, `geth attach`) +- Implementându-i în aplicații + +Diverși clienți au implementări diferite ale endpoint-urilor RPC. Există însă un JSON-RPC standard pe care îl puteţi utiliza cu orice client. Ca să aflaţi o prezentare generală, [citiți documentația JSON-RPC](https://eth.wiki/json-rpc/API). Aplicațiile care au nevoie de informații din rețeaua Ethereum pot folosi acest RPC. For example, popular wallet MetaMask lets you [run a local blockchain instance and connect to it](https://metamask.zendesk.com/hc/en-us/articles/360015290012-Using-a-Local-Node). + +#### Atingerea RPC-ului {#reaching-rpc} + +Portul implicit al JSON-RPC este `8545`, dar puteţi modifica porturile endpoint-urilor locale în fișierul de configurare. By default, the RPC interface is only reachable on the localhost of your computer. To make it remotely accessible, you might want to expose it to the public by changing the address to `0.0.0.0`. This will make it reachable over local and public IP addresses. De cele mai multe ori va trebui să configurați și redirecționarea porturilor pe router. + +Trebuie să faceți aceasta cu multă precauție, deoarece astfel oricine de pe internet va putea să vă controleze nodul. Actorii rău intenționați ar putea să vă acceseze nodul, fie pentru a vă distruge sistemul, fie pentru a vă fura fondurile, dacă vă folosiți clientul ca portofel. + +O metodă de evitare a acestui lucru este de a nu permite ca unele metode RPC potențial dăunătoare să poată fi modificabile. For example, with `geth`, you can declare modifiable methods with a flag: `--http.api web3,eth,txpool`. + +You can also host access to your RPC interface by pointing service of web server, like Nginx, to your client's local address and port. + +The most privacy-preserving and simple way to set up a publicly reachable endpoint, you can host it on your own [Tor](https://www.torproject.org/) onion service. This will let you reach the RPC outside your local network without a static public IP address or opened ports. To do this: + +- Instalați `tor` +- Editați configurația `torrc` pentru a activa serviciul ascuns cu adresa și portul RPC al clientului dvs. +- Reporniți serviciul `tor` + +Once you restart Tor, you'll get hidden service keys and a hostname in your desired directory. From then, your RPC will be reachable on a `.onion` hostname. + +### Exploatarea nodului {#operating-the-node} + +You should regularly monitor your node to make sure it's running properly. You may need to do occasional maintenance. + +#### Păstrarea online a nodului {#keeping-node-online} + +Your node doesn't have to be online nonstop but you should keep it online as much as possible to keep it in sync with the network. You can shut it down to restart it but keep in mind that: + +- Închiderea poate dura câteva minute dacă starea actuală este încă scrisă pe disc. +- Închiderile forțate pot deteriora baza de date. +- Clientul dvs. se va desincroniza de la rețea și va trebui să se resincronizeze atunci când îl reporniți. + +_This doesn't apply on consensus layer validator nodes._ Taking your node offline will affect all services dependent on it. If you are running a node for _staking_ purposes you should try to minimize downtime as much as possible. + +#### Crearea unui serviciu client {#creating-client-service} + +Consider creating a service to run your client automatically on startup. For example on Linux servers, good practice would be creating a service that executes the client with proper config, under user with limited privileges and automatically restarts. + +#### Actualizarea clientului {#updating-client} + +You need to keep your client software up-to-date with the latest security patches, features, and [EIPs](/eips/). Especially before [hard forks](/history/), make sure you are running the correct client version. + +#### Rularea de servicii suplimentare {#running-additional-services} + +Running your own node lets you use services that require direct access to Ethereum client RPC. These are services built on top of Ethereum like [layer 2 solutions](/developers/docs/scaling/#layer-2-scaling), [consensus clients](/developers/docs/nodes-and-clients/#consensus-clients), and other Ethereum infrastructure. + +#### Monitorizarea nodului {#monitoring-the-node} + +"To properly monitor your node, consider collecting metrics. Clients provide metrics endpoints so you can get comprehensive data about your node. Use tools like [InfluxDB](https://www.influxdata.com/get-influxdb/) or [Prometheus](https://prometheus.io/) to create databases which you can turn into visualizations and charts in software like [Grafana](https://grafana.com/). There are many setups for using this software and different Grafana dashboards for you to visualise your node and the network as a whole. As part of your monitoring, make sure to keep an eye on your machine's performance. During your node's initial sync, the client software may be very heavy on CPU and RAM. In addition to Grafana, you can use the tools your OS offers like `htop` or `uptime` to do this. + +## Referințe suplimentare {#further-reading} + +- [Analizarea cerințelor hardware pentru a fi un nod Ethereum validat complet](https://medium.com/coinmonks/analyzing-the-hardware-requirements-to-be-an-ethereum-full-validated-node-dc064f167902) _– Albert Palau, 24 septembrie 2018_ +- [Rularea de Noduri Ethereum complete: Un ghid pentru cei abia motivați](https://medium.com/@JustinMLeroux/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _– Justin Leroux, 7 noiembrie 2019_ +- [Rularea unui nod Besu Hyperledder pe Mainnet Ethereum: Beneficii, cerințe și instalare](https://pegasys.tech/running-a-hyperledger-besu-node-on-the-ethereum-mainnet-benefits-requirements-and-setup/) _– Felipe Faraggi, 7 mai 2020_ +- [Implementarea Clientului Nethermind Ethereum cu stiva de monitorizare](https://medium.com/nethermind-eth/deploying-nethermind-ethereum-client-with-monitoring-stack-55ce1622edbd) _– Nethermind.eth, 8 iulie 2020_ + +## Subiecte corelate {#related-topics} + +- [Noduri și clienți](/developers/docs/nodes-and-clients/) +- [Blocuri](/developers/docs/blocks/) +- [Rețele](/developers/docs/networks/) diff --git a/src/content/translations/ro/developers/docs/oracles/index.md b/public/content/translations/ro/developers/docs/oracles/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/oracles/index.md rename to public/content/translations/ro/developers/docs/oracles/index.md diff --git a/src/content/translations/ro/developers/docs/programming-languages/dart/index.md b/public/content/translations/ro/developers/docs/programming-languages/dart/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/programming-languages/dart/index.md rename to public/content/translations/ro/developers/docs/programming-languages/dart/index.md diff --git a/src/content/translations/ro/developers/docs/programming-languages/delphi/index.md b/public/content/translations/ro/developers/docs/programming-languages/delphi/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/programming-languages/delphi/index.md rename to public/content/translations/ro/developers/docs/programming-languages/delphi/index.md diff --git a/public/content/translations/ro/developers/docs/programming-languages/dot-net/index.md b/public/content/translations/ro/developers/docs/programming-languages/dot-net/index.md new file mode 100644 index 00000000000..a81ab2e148f --- /dev/null +++ b/public/content/translations/ro/developers/docs/programming-languages/dot-net/index.md @@ -0,0 +1,86 @@ +--- +title: Ethereum pentru dezvoltatorii .NET +description: Învăţaţi să faceţi dezvoltare pentru Ethereum folosind proiecte și instrumente .NET +lang: ro +incomplete: true +--- + + + +Folosiţi Ethereum pentru a crea aplicații descentralizate („dapp-uri”) care valorifică avantajele criptomonedelor și ale tehnologiei blockchain. Aceste aplicații descentralizate pot fi de încredere, întrucât, odată implementate pe Ethereum, vor rula întotdeauna așa cum au fost programate. Pot controla active digitale pentru a crea noi tipuri de aplicații financiare. Pot fi descentralizate, adică nicio entitate sau persoană nu le poate controla și sunt aproape imposibil de cenzurat. + +Dezvoltaţi aplicații descentralizate pe Ethereum și interacționaţi cu contractele inteligente folosind instrumente și limbaje de programare din stiva de tehnologie Microsoft - acceptă C#, # Visual Basic .NET, F#, pe instrumente ca VSCode și Visual Studio, în .NET Framework/.NET Core/.NET Standard. Implementaţi în câteva minute un blockchain Ethereum pe Azure folosind Microsoft Azure Blockchain. Aduceţi pasiunea pentru .NET pe Ethereum! + +## Primii pași în contractele inteligente și limbajul Solidity {#getting-started-with-smart-contracts-and-the-solidity-language} + +**Faceţi primii pași în integrarea .NET cu Ethereum** + +Aveţi nevoie de o scurtă introducere? Accesaţi [ethereum.org/learn](/learn/) sau [ethereum.org/developers](/developers/). + +- [Blockchain-ul explicat](https://kauri.io/article/d55684513211466da7f8cc03987607d5/blockchain-explained) +- [Înţelegerea noţiunii de contracte inteligente](https://kauri.io/article/e4f66c6079e74a4a9b532148d3158188/ethereum-101-part-5-the-smart-contract) +- [Scrieţi primul dvs. contract inteligent](https://kauri.io/article/124b7db1d0cf4f47b414f8b13c9d66e2/remix-ide-your-first-smart-contract) +- [Învăţaţi cum să compilaţi și să implementaţi Solidity](https://kauri.io/article/973c5f54c4434bb1b0160cff8c695369/understanding-smart-contract-compilation-and-deployment) + +## Resurse și linkuri pentru începători {#beginner-references-and-links} + +**Introducere despre biblioteca Nethereum și VS Code Solidity** + +- [Nethereum, Noțiuni introductive](https://docs.nethereum.com/en/latest/getting-started/) +- [Instalarea VS Code Solidity](https://marketplace.visualstudio.com/items?itemName=JuanBlanco.solidity) +- [Un flux de lucru al dezvoltatorului NET pentru crearea și apelarea contractelor inteligente Ethereum](https://medium.com/coinmonks/a-net-developers-workflow-for-creating-and-calling-ethereum-smart-contracts-44714f191db2) +- [Integrarea contractelor inteligente cu Nethereum](https://kauri.io/#collections/Getting%20Started/smart-contracts-integration-with-nethereum/#smart-contracts-integration-with-nethereumm) +- [Interfațarea .NET și contractelor inteligente Ethereum cu Nethereum](https://medium.com/my-blockchain-development-daily-journey/interfacing-net-and-ethereum-blockchain-smart-contracts-with-nethereum-2fa3729ac933), și în [中文版](https://medium.com/my-blockchain-development-daily-journey/%E4%BD%BF%E7%94%A8nethereum%E9%80%A3%E6%8E%A5-net%E5%92%8C%E4%BB%A5%E5%A4%AA%E7%B6%B2%E5%8D%80%E5%A1%8A%E9%8F%88%E6%99%BA%E8%83%BD%E5%90%88%E7%B4%84-4a96d35ad1e1) +- [Nethereum - O bibliotecă open source .NET pentru integrare cu blockchain](https://kauri.io/#collections/a%20hackathon%20survival%20guide/nethereum-an-open-source-.net-integration-library/) +- [Scrierea tranzacțiilor Ethereum în baza de date SQL folosind Nethereum](https://medium.com/coinmonks/writing-ethereum-transactions-to-sql-database-using-nethereum-fd94e0e4fa36) +- [Vedeţi cum să implementaţi cu ușurință contracte inteligente Ethereum utilizând C# și VisualStudio](https://koukia.ca/deploy-ethereum-smart-contracts-using-c-and-visualstudio-5be188ae928c) + +**Doriţi să treceţi peste etapele iniţiale acum și să ajungeţi direct la exemplele concrete?** + +- [Playground](http://playground.nethereum.com/) - Interacționaţi cu Ethereum și învăţaţi să folosiţi Nethereum prin browser. + - Interogarea soldului unui cont în [C#](http://playground.nethereum.com/csharp/id/1001) [VB.NET](http://playground.nethereum.com/vb/id/2001) + - Interogarea soldului unui contract smart ERC20 în [C#](http://playground.nethereum.com/csharp/id/1005) [VB.NET](http://playground.nethereum.com/vb/id/2004) + - Transferă ether către un cont [C#](http://playground.nethereum.com/csharp/id/1003) [VB.NET](http://playground.nethereum.com/vb/id/2003) + - ... Și altele! + +## Articole de nivel intermediar {#intermediate-articles} + +- [Registru de lucru Nethereum/listă de exemple](http://docs.nethereum.com/en/latest/Nethereum.Workbooks/docs/) +- [Implementaţi-vă propriile testchain-uri de dezvoltare](https://github.com/Nethereum/Testchains) +- [Plugin-ul VSCode Codegen pentru Solidity](https://docs.nethereum.com/en/latest/nethereum-codegen-vscodesolidity/) +- [Unity și Ethereum: De ce și cum](https://www.raywenderlich.com/5509-unity-and-ethereum-why-and-how) +- [Creaţi API ASP.NET Core Web pentru dapps Ethereum](https://tech-mint.com/blockchain/create-asp-net-core-web-api-for-ethereum-dapps/) +- [Utilizarea Nethereum Web3 pentru implementarea unui sistem de urmărire a lanțului de aprovizionare](http://blog.pomiager.com/post/using-nethereum-web3-to-implement-a-supply-chain-traking-system4) +- [Procesarea blocurilor Nethereum](https://nethereum.readthedocs.io/en/latest/nethereum-block-processing-detail/), cu [un exemplu C# Playground](http://playground.nethereum.com/csharp/id/1025) +- [Nethereum Websocket Streaming](https://nethereum.readthedocs.io/en/latest/nethereum-subscriptions-streaming/) +- [Kaleido și Nethereum](https://kaleido.io/kaleido-and-nethereum/) +- [Quorum și Nethereum](https://github.com/Nethereum/Nethereum/blob/master/src/Nethereum.Quorum/README.md) + +## Modele avansate de utilizare {#advanced-use-patterns} + +- [Azure Key Vault și Nethereum](https://github.com/Azure-Samples/bc-community-samples/tree/master/akv-nethereum) +- [Nethereum.DappHybrid](https://github.com/Nethereum/Nethereum.DappHybrid) +- [Arhitectura backend de referință pentru Ujo Nethereum](https://docs.nethereum.com/en/latest/nethereum-ujo-backend-sample/) + +## Proiecte .NET, instrumente și alte lucruri distractive {#dot-net-projects-tools-and-other-fun-stuff} + +- [Nethereum Playground](http://playground.nethereum.com/) - _Compilează, creează și rulează secvențe de cod Nethereum în browser_ +- [Nethereum Codegen Blazor](https://github.com/Nethereum/Nethereum.CodeGen.Blazor) - _Generator de cod Nethereum cu UI în Blazor_ +- [Nethereum Blazor](https://github.com/Nethereum/NethereumBlazor) - _Un explorer de blockchain în .NET Wasm SPA și un portofel simplu_ +- [Wonka Business Rules Engine](https://docs.nethereum.com/en/latest/wonka/) - _Un motor de reguli business (pentru platformele .NET și Ethereum) bazat inerent pe metadate_ +- [Nethermind](https://github.com/NethermindEth/nethermind) - _Un client esențial Ethereum.NET pentru Linux, Windows, MacOs_ +- [eth-utils](https://github.com/ethereum/eth-utils/) - _funcții utilitare pentru a lucra cu baze de cod Ethereum_ +- [TestChains](https://github.com/Nethereum/TestChains) - _Devchain-uri .NET preconfigurate pentru viteze mari de răspuns (PoA)_ + +Căutaţi şi alte resurse? Accesează [ethereum.org/developers](/developers/). + +## Colaboratori ai comunității .NET {#dot-net-community-contributors} + +Pe noi, cei de la Nethereum, ne puteţi găsi pe [Gitter](https://gitter.im/Nethereum/Nethereum), unde toată lumea poate să pună întrebări și să dea răspunsuri, să primească ajutor sau pur și simplu să se relaxeze. Puteţi crea un PR sau ridica o problemă în [Repo-ul GitHub Nethereum](https://github.com/Nethereum) sau puteţi descoperi numeroasele noastre proiecte secundare/de exemplificare. Ne puteţi găsi și pe [Discord](https://discord.gg/jQPrR58FxX)! + +La Nethermind, vă invităm să ne contactaţi prin [Gitter](https://gitter.im/nethermindeth/nethermind). Pentru PR sau probleme, accesaţi [Repo-ul GitHub Nethermind](https://github.com/NethermindEth/nethermind). + +## Alte liste agregate {#other-aggregated-lists} + +[Site-ul oficial Nethereum](https://nethereum.com/) +[Site-ul oficial Nethermind](https://nethermind.io/) diff --git a/src/content/translations/ro/developers/docs/programming-languages/golang/index.md b/public/content/translations/ro/developers/docs/programming-languages/golang/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/programming-languages/golang/index.md rename to public/content/translations/ro/developers/docs/programming-languages/golang/index.md diff --git a/src/content/translations/ro/developers/docs/programming-languages/index.md b/public/content/translations/ro/developers/docs/programming-languages/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/programming-languages/index.md rename to public/content/translations/ro/developers/docs/programming-languages/index.md diff --git a/src/content/translations/ro/developers/docs/programming-languages/java/index.md b/public/content/translations/ro/developers/docs/programming-languages/java/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/programming-languages/java/index.md rename to public/content/translations/ro/developers/docs/programming-languages/java/index.md diff --git a/src/content/translations/ro/developers/docs/programming-languages/javascript/index.md b/public/content/translations/ro/developers/docs/programming-languages/javascript/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/programming-languages/javascript/index.md rename to public/content/translations/ro/developers/docs/programming-languages/javascript/index.md diff --git a/src/content/translations/ro/developers/docs/programming-languages/python/index.md b/public/content/translations/ro/developers/docs/programming-languages/python/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/programming-languages/python/index.md rename to public/content/translations/ro/developers/docs/programming-languages/python/index.md diff --git a/src/content/translations/ro/developers/docs/programming-languages/ruby/index.md b/public/content/translations/ro/developers/docs/programming-languages/ruby/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/programming-languages/ruby/index.md rename to public/content/translations/ro/developers/docs/programming-languages/ruby/index.md diff --git a/src/content/translations/ro/developers/docs/programming-languages/rust/index.md b/public/content/translations/ro/developers/docs/programming-languages/rust/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/programming-languages/rust/index.md rename to public/content/translations/ro/developers/docs/programming-languages/rust/index.md diff --git a/src/content/translations/ro/developers/docs/scaling/index.md b/public/content/translations/ro/developers/docs/scaling/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/scaling/index.md rename to public/content/translations/ro/developers/docs/scaling/index.md diff --git a/src/content/translations/ro/developers/docs/scaling/optimistic-rollups/index.md b/public/content/translations/ro/developers/docs/scaling/optimistic-rollups/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/scaling/optimistic-rollups/index.md rename to public/content/translations/ro/developers/docs/scaling/optimistic-rollups/index.md diff --git a/src/content/translations/ro/developers/docs/scaling/plasma/index.md b/public/content/translations/ro/developers/docs/scaling/plasma/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/scaling/plasma/index.md rename to public/content/translations/ro/developers/docs/scaling/plasma/index.md diff --git a/src/content/translations/ro/developers/docs/scaling/sidechains/index.md b/public/content/translations/ro/developers/docs/scaling/sidechains/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/scaling/sidechains/index.md rename to public/content/translations/ro/developers/docs/scaling/sidechains/index.md diff --git a/src/content/translations/ro/developers/docs/scaling/state-channels/index.md b/public/content/translations/ro/developers/docs/scaling/state-channels/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/scaling/state-channels/index.md rename to public/content/translations/ro/developers/docs/scaling/state-channels/index.md diff --git a/src/content/translations/ro/developers/docs/scaling/validium/index.md b/public/content/translations/ro/developers/docs/scaling/validium/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/scaling/validium/index.md rename to public/content/translations/ro/developers/docs/scaling/validium/index.md diff --git a/src/content/translations/ro/developers/docs/scaling/zk-rollups/index.md b/public/content/translations/ro/developers/docs/scaling/zk-rollups/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/scaling/zk-rollups/index.md rename to public/content/translations/ro/developers/docs/scaling/zk-rollups/index.md diff --git a/src/content/translations/ro/developers/docs/security/index.md b/public/content/translations/ro/developers/docs/security/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/security/index.md rename to public/content/translations/ro/developers/docs/security/index.md diff --git a/public/content/translations/ro/developers/docs/smart-contracts/anatomy/index.md b/public/content/translations/ro/developers/docs/smart-contracts/anatomy/index.md new file mode 100644 index 00000000000..b509b66c524 --- /dev/null +++ b/public/content/translations/ro/developers/docs/smart-contracts/anatomy/index.md @@ -0,0 +1,658 @@ +--- +title: Anatomia contractelor inteligente +description: O analiză aprofundată a anatomiei unui contact inteligent – funcțiile, datele și variabilele. +lang: ro +--- + +Un contract inteligent este un program care rulează la o adresă pe Ethereum. Este alcătuit din date și funcții care pot fi executate la primirea unei tranzacții. Iată o imagine de ansamblu a ceea ce constituie un contract inteligent. + +## Condiții prealabile {#prerequisites} + +Aveţi grijă să citiţi mai întâi despre [contractele inteligente](/developers/docs/smart-contracts/). Acest document presupune că sunteţi deja familiarizat cu limbaje de programarea precum JavaScript sau Python. + +## Datele {#data} + +Toate datele dintr-un contract trebuie alocate unei locații: fie de `stocare`, fie de `memorie`. Este costisitor de modificat locul de stocare într-un contract inteligent, deci trebuie să hotărâţi unde să vă plasaţi datele. + +### Stocare {#storage} + +Datele persistente sunt denumite stocare și sunt reprezentate de variabilele de stare. Aceste valori sunt stocate permanent pe blockchain. Trebuie să declaraţi de ce tip sunt, astfel încât contractul să poată ţine socoteala spaţiului de stocare de care are nevoie pe blockchain atunci când compilează. + +```solidity +// Exemplu Solidity +contract SimpleStorage { + uint storedData; // Stare variabilă + // ... +} +``` + +```python +# Exemplu Vyper +storedData: int128 +``` + +Dacă aţi programat deja în limbaje orientate pe obiecte, probabil că știţi deja majoritatea tipurilor. Cu toate acestea, `address` (adresa) ar trebui să fie nouă pentru dvs. dacă nu aţi mai dezvoltat pe Ethereum. + +Un tip de `address` poate conține o adresă Ethereum care echivalează cu 20 de octeţi sau 160 de biți. Acesta răspunde în notație hexazecimală cu un 0x la început. + +Alte tipuri includ: + +- boolean +- întreg +- numere în virgulă fixă +- matrice de octeți de dimensiuni fixe +- matrice de octeți de dimensiuni dinamice +- literale raționale și întregi +- literale de tip string +- literale hexazecimale +- enum-uri + +Pentru mai multe explicații, consultaţi documentele: + +- [Vedeţi tipurile Vyper](https://vyper.readthedocs.io/en/v0.1.0-beta.6/types.html#value-types) +- [Vedeţi tipurile Solidity](https://solidity.readthedocs.io/en/latest/types.html#value-types) + +### Memorie {#memory} + +Valorile care sunt stocate numai pe durata de viață a executării unei funcții contractuale se numesc variabile de memorie. Deoarece acestea nu sunt stocate permanent pe blockchain, sunt mult mai ieftin de utilizat. + +Aflaţi mai multe informații despre modul în care EVM stochează datele (stocare, memorie și stivă) în [documentația Solidity](https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html?highlight=memory#storage-memory-and-the-stack). + +### Variabile de mediu {#environment-variables} + +În plus față de variabilele pe care le definiţi în contract, există câteva variabile globale speciale. Acestea sunt utilizate în principal pentru a furniza informații despre blockchain sau tranzacția curentă. + +Exemple: + +| **Prop** | **Variabilă de stare** | **Descriere** | +| ----------------- | ---------------------- | ----------------------------------------- | +| `block.timestamp` | uint256 | Marca temporală actuală a epocii blocului | +| `msg.sender` | address | Expeditorul mesajului (apel curent) | + +## Funcții {#functions} + +În exprimare simplistă, funcțiile pot obține informații sau pot seta informații ca răspuns la tranzacțiile primite. + +Există două tipuri de apeluri funcționale: + +- `internal` – acestea nu creează un apel EVM + - Funcțiile interne și variabilele de stare pot fi accesate numai intern (adică din contractul actual sau contractele care derivă din acesta) +- `external` – acestea creează un apel EVM + - Funcțiile externe fac parte din interfața contractului, ceea ce înseamnă că pot fi apelate din alte contracte și prin tranzacții. O funcție externă `f` nu poate fi apelată intern (adică `f()` nu funcționează, dar `this.f()` funcționează). + +De asemenea, pot fi de tip `public` sau `private` + +- funcțiile de tip `public` pot fi apelate intern din cadrul contractului sau extern prin mesaje +- funcțiile `private` sunt vizibile numai pentru contractul în care sunt definite și nu sunt vizibile în contractele derivate + +Atât funcțiile, cât și variabilele de stare pot fi făcute publice sau private + +Iată o funcție pentru actualizarea unei variabile de stare pe un contract: + +```solidity +// Exemplu Solidity +function update_name(string value) public { + dapp_name = value; +} +``` + +- Parametrul `value` de tip `string` este trecut în funcția: `update_name` +- Este declarat `public`, ceea ce înseamnă că oricine îl poate accesa +- Nu este declarat `view`, astfel încât să poată modifica starea contractului + +### Funcții de vizualizare {#view-functions} + +Aceste funcții promit să nu modifice starea datelor contractului. Exemplele obişnuite sunt funcțiile „getter” (de obținere) – s-ar putea să utilizaţi acest lucru pentru a primi soldul unui utilizator, de exemplu. + +```solidity +// Exemplu Solidity +function balanceOf(address _owner) public view returns (uint256 _balance) { + return ownerPizzaCount[_owner]; +} +``` + +```python +dappName: public(string) + +@view +@public +def readName() -> string: + return dappName +``` + +Ce se consideră ca modificator de stare: + +1. Scrierea în variabilele de stare. +2. [Emiterea de evenimente](https://solidity.readthedocs.io/en/v0.7.0/contracts.html#events). +3. [Crearea altor contracte](https://solidity.readthedocs.io/en/v0.7.0/control-structures.html#creating-contracts). +4. Folosirea `selfdestruct`. +5. Trimiterea de ether prin apeluri. +6. Apelarea oricărei funcții care nu este marcată `view` sau `pure`. +7. Folosirea de apeluri de nivel inferior. +8. Utilizarea ansamblului în linie care conține anumite opcoduri. + +### Funcții constructor {#constructor-functions} + +Funcțiile `constructor` sunt executate o singură dată, la prima implementare a contractului. Precum `constructor`-ul din multe limbaje de programare bazate pe clase, aceste funcții inițializează adesea variabilele de stare la valorile lor specificate. + +```solidity +// Exemplu Solidity +// Inițializează datele contractului, setând `proprietarul` +// la adresa creatorului contractului. +constructor() public { + // Toate contractele inteligente se bazează pe tranzacții externe pentru a le declanșa funcțiile. + // `msg`este o variabilă globală care include date relevante privind tranzacția dată, + // cum ar fi adresa expeditorului și valoarea ETH inclusă în tranzacție. + // Află mai multe: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties + owner = msg.sender; +} +``` + +```python +# exemplu Vyper + +@external +def __init__(_beneficiary: address, _bidding_time: uint256): + self.beneficiary = _beneficiary + self.auctionStart = block.timestamp + self.auctionEnd = self.auctionStart + _bidding_time +``` + +### Funcții încorporate {#built-in-functions} + +În plus față de variabilele și funcțiile pe care le definiţi în contract, există câteva funcții speciale încorporate. Cel mai evident exemplu este: + +- `address.send()` – Solidity +- `send(address)` – Vyper + +Acestea permit contractelor să trimită ETH către alte conturi. + +## Scrierea de funcții {#writing-functions} + +Funcția dvs. are nevoie de: + +- parametru variabil și tipul acestuia (dacă acceptă parametri) +- declararea dacă este internal/external +- declararea dacă este pure/view/payable +- tipul de răspuns (dacă răspunde printr-o valoare) + +```solidity +pragma solidity >=0.4.0 <=0.6.0; + +contract ExampleDapp { + string dapp_name; // state variable + + // Called when the contract is deployed and initializes the value + constructor() public { + dapp_name = "My Example dapp"; + } + + // Get Function + function read_name() public view returns(string) { + return dapp_name; + } + + // Set Function + function update_name(string value) public { + dapp_name = value; + } +} +``` + +Un contract complet ar putea arăta astfel. Aici funcția `constructor` furnizează o valoare inițială pentru variabila `dapp_name`. + +## Evenimente și jurnale {#events-and-logs} + +Evenimentele vă permit să comunicaţi cu contractul dvs. inteligent din frontend sau din alte aplicații cu abonare. Când o tranzacție este minată, contractele inteligente pot emite evenimente și pot scrie jurnale în blockchain, pe care frontend-ul le poate procesa. + +## Exemple adnotate {#annotated-examples} + +Acestea sunt câteva exemple scrise în Solidity. Dacă doriţi să vă jucaţi cu codul, puteţi interacționa cu el în [Remix](http://remix.ethereum.org). + +### Hello world {#hello-world} + +```solidity +// Specifică versiunea Solidity, utilizând versiuni semantice. +// Află mai multe: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma +pragma solidity ^0.5.10; + +// Definește un contract numit `HelloWorld`. +// Un contract este o colecție de funcții și date - (starea sa). +// Odată implementat, un contract se află la o anumită adresă din blockchain-ul Ethereum. +// Află mai multe: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html +contract HelloWorld { + + // Declară o variabilă de stare `message` de tip `string`. + // Variabilele de stare sunt variabile ale căror valori sunt stocate permanent în stocarea contractului. + // Cuvântul cheie `public` face variabile accesibile din afara unui contract + // și creează o funcție pe care alte contracte sau clienți o pot apela pentru a accesa valoarea. + string public message; + + // Similar cu multe limbaje orientate pe obiecte bazate pe clase, un constructor este + // o funcție specială care se execută numai la crearea contractului. + // Funcțiile constructor sunt utilizate pentru a inițializa datele contractului. + // Află mai multe: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constructors + constructor(string memory initMessage) public { + // Acceptă un argument de string `initMessage` și setează valoarea + // în variabila de stocare `message` a contractului). + message = initMessage; + } + + // O funcție publică care acceptă un argument string + // și actualizează variabila de stocare `message`. + function update(string memory newMessage) public { + message = newMessage; + } +} +``` + +### Token {#token} + +```solidity +pragma solidity ^0.5.10; + +contract Token { + // `address` este comparabilă cu o adresă de e-mail - este utilizată pentru a identifica un cont pe Ethereum. + // Adresele pot reprezenta un contract inteligent sau un cont extern (utilizator). + // Află mai multe: https://solidity.readthedocs.io/en/v0.5.10/types.html#address + address public owner; + + // `mapping` este în esență o structură de date de tabel hash. + // Acest `mapping` atribuie un număr întreg nesemnat (echilibrul tokenului) unei adrese (deținătorul tokenului). + // Află mai multe: https://solidity.readthedocs.io/en/v0.5.10/types.html#mapping-types + mapping (address => uint) public balances; + + // Evenimentele permit înregistrarea activității pe blockchain. + // Clienții Ethereum pot asculta evenimente pentru a reacționa la modificările stării contractului. + // Află mai multe: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#events + event Transfer(address from, address to, uint amount); + + // Inițializează datele contractului, setând `owner` + // la adresa creatorului contractului. + constructor() public { + // Toate contractele inteligente se bazează pe tranzacții externe pentru a declanșa funcțiile sale. + // `msg` este o variabilă globală care include date relevante despre tranzacția dată, + // cum ar fi adresa expeditorului și valoarea ETH inclusă în tranzacție. + // Află mai multe: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties + owner = msg.sender; + } + + // Creează o cantitate de tokenuri noi și le trimite la o adresă. + function mint(address receiver, uint amount) public { + // `require` este o structură de control utilizată pentru a impune anumite condiții. + // Dacă o declarație `require` este evaluată ca `false`, se declanșează o excepție, + // care întoarce toate modificările aduse stării în timpul apelului curent. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions + + // Only the contract owner can call this function + require(msg.sender == owner, "You are not the owner."); + + // Enforces a maximum amount of tokens + require(amount < 1e60, "Maximum issuance exceeded"); + + // Increases the balance of `receiver` by `amount` + balances[receiver] += amount; + } + + // Sends an amount of existing tokens from any caller to an address. + function transfer(address receiver, uint amount) public { + // Expeditorul trebuie să aibă suficiente tokenuri pentru a le trimite + require(amount <= balances[msg.sender], "Insufficient balance."); + + // Reglează soldurile token ale celor două adrese + balances[msg.sender] -= amount; + balances[receiver] += amount; + + // Emite evenimentul definit anterior + emit Transfer(msg.sender, receiver, amount); + } +} +``` + +### Activ digital unic {#unique-digital-asset} + +```solidity +pragma solidity ^0.5.10; + +// Importă simboluri din alte fișiere în contractul curent. +// În acest caz, o serie de contracte de ajutor de la OpenZeppelin. +//Află mai multe: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#importing-other-source-files + +import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; +import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; +import "../node_modules/@openzeppelin/contracts/introspection/ERC165.sol"; +import "../node_modules/@openzeppelin/contracts/math/SafeMath.sol"; + +// Cuvântul cheie `is` este folosit pentru a moșteni funcții și cuvinte cheie din contracte externe. +// În acest caz, `CryptoPizza` moștenește din contractele `IERC721` și `ERC165`. +// Află mai multe: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#inheritance +contract CryptoPizza is IERC721, ERC165 { + // Folosește biblioteca OpenZeppelin's SafeMath ca să efectuezi operațiuni aritmetice în siguranță. + // Află mai multe: https://docs.openzeppelin.com/contracts/2.x/api/math#SafeMath + using SafeMath for uint256; + + // Variabilele de stare constantă din Solidity sunt similare cu alte limbaje + // dar trebuie să atribui dintr-o expresie care este constantă în timpul compilării. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constant-state-variables + uint256 constant dnaDigits = 10; + uint256 constant dnaModulus = 10 ** dnaDigits; + bytes4 private constant _ERC721_RECEIVED = 0x150b7a02; + + // Struct types let you define your own type + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#structs + struct Pizza { + string name; + uint256 dna; + } + + // Creates an empty array of Pizza structs + Pizza[] public pizzas; + + // Mapping from pizza ID to its owner's address + mapping(uint256 => address) public pizzaToOwner; + + // Mapping from owner's address to number of owned token + mapping(address => uint256) public ownerPizzaCount; + + // Mapping from token ID to approved address + mapping(uint256 => address) pizzaApprovals; + + // You can nest mappings, this example maps owner to operator approvals + mapping(address => mapping(address => bool)) private operatorApprovals; + + // Internal function to create a random Pizza from string (name) and DNA + function _createPizza(string memory _name, uint256 _dna) + // The `internal` keyword means this function is only visible + // within this contract and contracts that derive this contract + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#visibility-and-getters + internal + // `isUnique` is a function modifier that checks if the pizza already exists + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html#function-modifiers + isUnique(_name, _dna) + { + // Adds Pizza to array of Pizzas and get id + uint256 id = SafeMath.sub(pizzas.push(Pizza(_name, _dna)), 1); + + // Checks that Pizza owner is the same as current user + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions + + // note that address(0) is the zero address, + // indicating that pizza[id] is not yet allocated to a particular user. + + assert(pizzaToOwner[id] == address(0)); + + // Maps the Pizza to the owner + pizzaToOwner[id] = msg.sender; + ownerPizzaCount[msg.sender] = SafeMath.add( + ownerPizzaCount[msg.sender], + 1 + ); + } + + // Creates a random Pizza from string (name) + function createRandomPizza(string memory _name) public { + uint256 randDna = generateRandomDna(_name, msg.sender); + _createPizza(_name, randDna); + } + + // Generates random DNA from string (name) and address of the owner (creator) + function generateRandomDna(string memory _str, address _owner) + public + // Functions marked as `pure` promise not to read from or modify the state + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#pure-functions + pure + returns (uint256) + { + // Generates random uint from string (name) + address (owner) + uint256 rand = uint256(keccak256(abi.encodePacked(_str))) + + uint256(_owner); + rand = rand % dnaModulus; + return rand; + } + + // Returns array of Pizzas found by owner + function getPizzasByOwner(address _owner) + public + // Functions marked as `view` promise not to modify state + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#view-functions + view + returns (uint256[] memory) + { + // Uses the `memory` storage location to store values only for the + // lifecycle of this function call. + // Află mai multe: https://solidity.readthedocs.io/en/v0.5.10/introduction-to-smart-contracts.html#storage-memory-and-the-stack + uint256[] memory result = new uint256[](ownerPizzaCount[_owner]); + uint256 counter = 0; + for (uint256 i = 0; i < pizzas.length; i++) { + if (pizzaToOwner[i] == _owner) { + result[counter] = i; + counter++; + } + } + return result; + } + + // Transferă Pizza și proprietatea asupra altei adrese + function transferFrom(address _from, address _to, uint256 _pizzaId) public { + require(_from != address(0) && _to != address(0), "Adresă invalidă."); + require(_exists(_pizzaId), "Pizza nu există."); + require(_from != _to, "Nu se poate transfera la aceeași adresă."); + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Adresa nu este aprobată."); + + ownerPizzaCount[_to] = SafeMath.add(ownerPizzaCount[_to], 1); + ownerPizzaCount[_from] = SafeMath.sub(ownerPizzaCount[_from], 1); + pizzaToOwner[_pizzaId] = _to; + + //Emite eveniment definit în contractul IERC721 importat + emit Transfer(_from, _to, _pizzaId); + _clearApproval(_to, _pizzaId); + } + + /** + * Transferă în siguranță dreptul de proprietate asupra unui ID de token dat la o altă adresă + * Dacă adresa țintă este un contract, aceasta trebuie să implementeze `onERC721Received`, + * care este apelat la un transfer sigur și returnează valoarea magică + * `bytes4 (keccak256 (" onERC721Received(address,address,uint256, bytes)"))`; + * în caz contrar, transferul este anulat. + */ + function safeTransferFrom(address from, address to, uint256 pizzaId) + public + { + // solium-disable-next-line arg-overflow + this.safeTransferFrom(from, to, pizzaId, ""); + } + + /** + * Transferă în siguranță dreptul de proprietate asupra unui ID de token dat la o altă adresă + * Dacă adresa țintă este un contract, aceasta trebuie să implementeze `onERC721Received`, + * care este apelat la un transfer sigur și returnează valoarea magică + * `bytes4 (keccak256 (" onERC721Received (address, address, uint256, bytes) "))`; + * în caz contrar, transferul este anulat. + */ + function safeTransferFrom( + address from, + address to, + uint256 pizzaId, + bytes memory _data + ) public { + this.transferFrom(from, to, pizzaId); + require(_checkOnERC721Received(from, to, pizzaId, _data), "Must implement onERC721Received."); + } + + /** + * Internal function to invoke `onERC721Received` on a target address + * The call is not executed if the target address is not a contract + */ + function _checkOnERC721Received( + address from, + address to, + uint256 pizzaId, + bytes memory _data + ) internal returns (bool) { + if (!isContract(to)) { + return true; + } + + bytes4 retval = IERC721Receiver(to).onERC721Received( + msg.sender, + from, + pizzaId, + _data + ); + return (retval == _ERC721_RECEIVED); + } + + // Burns a Pizza - destroys Token completely + // The `external` function modifier means this function is + // part of the contract interface and other contracts can call it + function burn(uint256 _pizzaId) external { + require(msg.sender != address(0), "Invalid address."); + require(_exists(_pizzaId), "Pizza does not exist."); + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + + ownerPizzaCount[msg.sender] = SafeMath.sub( + ownerPizzaCount[msg.sender], + 1 + ); + pizzaToOwner[_pizzaId] = address(0); + } + + // Returns count of Pizzas by address + function balanceOf(address _owner) public view returns (uint256 _balance) { + return ownerPizzaCount[_owner]; + } + + // Returns owner of the Pizza found by id + function ownerOf(uint256 _pizzaId) public view returns (address _owner) { + address owner = pizzaToOwner[_pizzaId]; + require(owner != address(0), "Invalid Pizza ID."); + return owner; + } + + // Approves other address to transfer ownership of Pizza + function approve(address _to, uint256 _pizzaId) public { + require(msg.sender == pizzaToOwner[_pizzaId], "Must be the Pizza owner."); + pizzaApprovals[_pizzaId] = _to; + emit Approval(msg.sender, _to, _pizzaId); + } + + // Returns approved address for specific Pizza + function getApproved(uint256 _pizzaId) + public + view + returns (address operator) + { + require(_exists(_pizzaId), "Pizza does not exist."); + return pizzaApprovals[_pizzaId]; + } + + /** + * Private function to clear current approval of a given token ID + * Reverts if the given address is not indeed the owner of the token + */ + function _clearApproval(address owner, uint256 _pizzaId) private { + require(pizzaToOwner[_pizzaId] == owner, "Must be pizza owner."); + require(_exists(_pizzaId), "Pizza does not exist."); + if (pizzaApprovals[_pizzaId] != address(0)) { + pizzaApprovals[_pizzaId] = address(0); + } + } + + /* + * Sets or unsets the approval of a given operator + * An operator is allowed to transfer all tokens of the sender on their behalf + */ + function setApprovalForAll(address to, bool approved) public { + require(to != msg.sender, "Cannot approve own address"); + operatorApprovals[msg.sender][to] = approved; + emit ApprovalForAll(msg.sender, to, approved); + } + + // Tells whether an operator is approved by a given owner + function isApprovedForAll(address owner, address operator) + public + view + returns (bool) + { + return operatorApprovals[owner][operator]; + } + + // Takes ownership of Pizza - only for approved users + function takeOwnership(uint256 _pizzaId) public { + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + address owner = this.ownerOf(_pizzaId); + this.transferFrom(owner, msg.sender, _pizzaId); + } + + // Checks if Pizza exists + function _exists(uint256 pizzaId) internal view returns (bool) { + address owner = pizzaToOwner[pizzaId]; + return owner != address(0); + } + + // Checks if address is owner or is approved to transfer Pizza + function _isApprovedOrOwner(address spender, uint256 pizzaId) + internal + view + returns (bool) + { + address owner = pizzaToOwner[pizzaId]; + // Disable solium check because of + // https://github.com/duaraghav8/Solium/issues/175 + // solium-disable-next-line operator-whitespace + return (spender == owner || + this.getApproved(pizzaId) == spender || + this.isApprovedForAll(owner, spender)); + } + + // Check if Pizza is unique and doesn't exist yet + modifier isUnique(string memory _name, uint256 _dna) { + bool result = true; + for (uint256 i = 0; i < pizzas.length; i++) { + if ( + keccak256(abi.encodePacked(pizzas[i].name)) == + keccak256(abi.encodePacked(_name)) && + pizzas[i].dna == _dna + ) { + result = false; + } + } + require(result, "Pizza with such name already exists."); + _; + } + + // Returns whether the target address is a contract + function isContract(address account) internal view returns (bool) { + uint256 size; + // Currently there is no better way to check if there is a contract in an address + // than to check the size of the code at that address. + // Consultă https://ethereum.stackexchange.com/a/14016/36603 + // pentru mai multe detalii despre cum funcționează acest lucru. + // DE_FĂCUT Verifică din nou acest lucru înainte de lansarea Serenity, deoarece toate adresele vor fi + // contracte atunci. + // solium-disable-next-line security/no-inline-assembly + assembly { + size := extcodesize(account) + } + return size > 0; + } +} +``` + +## Referințe suplimentare {#further-reading} + +Consultaţi documentația Solidity și Vyper pentru a vedea o prezentare mai completă a contractelor inteligente: + +- [Solidity](https://solidity.readthedocs.io/) +- [Vyper](https://vyper.readthedocs.io/) + +## Subiecte corelate {#related-topics} + +- [Contracte inteligente](/developers/docs/smart-contracts/) +- [Mașina Virtuală Ethereum](/developers/docs/evm/) + +## Tutoriale corelate {#related-tutorials} + +- [Reducerea contractelor pentru a contracara limita de mărime a contractului](/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/) _– Câteva sfaturi practice pentru reducerea dimensiunii contractului dvs. inteligent._ +- [Înregistrarea datelor din contracte inteligente cu evenimente](/developers/tutorials/logging-events-smart-contracts/) _– O introducere despre evenimentele contractelor inteligente și cum le puteţi utiliza pentru a înregistra date._ +- [Interacționaţi cu alte contracte din Solidity](/developers/tutorials/interact-with-other-contracts-from-solidity/) _– Cum să implementaţi un contract inteligent dintr-un contract existent și să interacționaţi cu acesta._ diff --git a/src/content/translations/ro/developers/docs/smart-contracts/compiling/index.md b/public/content/translations/ro/developers/docs/smart-contracts/compiling/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/smart-contracts/compiling/index.md rename to public/content/translations/ro/developers/docs/smart-contracts/compiling/index.md diff --git a/src/content/translations/ro/developers/docs/smart-contracts/composability/index.md b/public/content/translations/ro/developers/docs/smart-contracts/composability/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/smart-contracts/composability/index.md rename to public/content/translations/ro/developers/docs/smart-contracts/composability/index.md diff --git a/src/content/translations/ro/developers/docs/smart-contracts/deploying/index.md b/public/content/translations/ro/developers/docs/smart-contracts/deploying/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/smart-contracts/deploying/index.md rename to public/content/translations/ro/developers/docs/smart-contracts/deploying/index.md diff --git a/src/content/translations/ro/developers/docs/smart-contracts/index.md b/public/content/translations/ro/developers/docs/smart-contracts/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/smart-contracts/index.md rename to public/content/translations/ro/developers/docs/smart-contracts/index.md diff --git a/src/content/translations/ro/developers/docs/smart-contracts/languages/index.md b/public/content/translations/ro/developers/docs/smart-contracts/languages/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/smart-contracts/languages/index.md rename to public/content/translations/ro/developers/docs/smart-contracts/languages/index.md diff --git a/src/content/translations/ro/developers/docs/smart-contracts/libraries/index.md b/public/content/translations/ro/developers/docs/smart-contracts/libraries/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/smart-contracts/libraries/index.md rename to public/content/translations/ro/developers/docs/smart-contracts/libraries/index.md diff --git a/src/content/translations/ro/developers/docs/smart-contracts/security/index.md b/public/content/translations/ro/developers/docs/smart-contracts/security/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/smart-contracts/security/index.md rename to public/content/translations/ro/developers/docs/smart-contracts/security/index.md diff --git a/src/content/translations/ro/developers/docs/smart-contracts/testing/index.md b/public/content/translations/ro/developers/docs/smart-contracts/testing/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/smart-contracts/testing/index.md rename to public/content/translations/ro/developers/docs/smart-contracts/testing/index.md diff --git a/src/content/translations/ro/developers/docs/standards/index.md b/public/content/translations/ro/developers/docs/standards/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/standards/index.md rename to public/content/translations/ro/developers/docs/standards/index.md diff --git a/src/content/translations/ro/developers/docs/standards/tokens/erc-1155/index.md b/public/content/translations/ro/developers/docs/standards/tokens/erc-1155/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/standards/tokens/erc-1155/index.md rename to public/content/translations/ro/developers/docs/standards/tokens/erc-1155/index.md diff --git a/public/content/translations/ro/developers/docs/standards/tokens/erc-20/index.md b/public/content/translations/ro/developers/docs/standards/tokens/erc-20/index.md new file mode 100644 index 00000000000..a57611b1a47 --- /dev/null +++ b/public/content/translations/ro/developers/docs/standards/tokens/erc-20/index.md @@ -0,0 +1,148 @@ +--- +title: Standardul de token ERC-20 +description: +lang: ro +--- + +## Introducere {#introduction} + +**Ce este un token?** + +Tokenurile pot reprezenta practic orice în Ethereum: + +- puncte de reputație într-o platformă online +- abilități ale unui personaj într-un joc +- bilete de loterie +- active financiare cum ar fi o acțiune într-o întreprindere +- o monedă fiat precum USD +- o uncie de aur +- și altele... + +O funcţionalitate atât de puternică a lui Ethereum trebuie gestionată printr-un standard robust, nu? Exact aici își joacă rolul ERC-20! Aceste standarde permit dezvoltatorilor să construiască aplicații pentru tokenuri care sunt interoperabile cu alte produse și servicii. + +**Ce este ERC-20?** + +ERC-20 introduce un standard pentru Tokenurile Fungibile, cu alte cuvinte, acestea au o proprietate care face ca fiecare Token să fie exact la fel (ca tip și valoare) cu alt Token. De exemplu, un token ERC-20 acționează exact ca ETH-ul, însemnând că 1 token este și va fi întotdeauna egal cu toate celelalte tokenuri. + +## Condiții prealabile {#prerequisites} + +- [Conturi](/developers/docs/accounts) +- [Contracte inteligente](/developers/docs/smart-contracts/) +- [Standarde de tokenuri](/developers/docs/standards/tokens/) + +## Conținut {#body} + +ERC-20 (Cerere de comentarii Ethereum 20), propus de Fabian Vogelsteller în noiembrie 2015, este un standard de tokenuri care implementează un API pentru tokenuri în cadrul contractelor inteligente. + +Exemple de funcționalități pe care le oferă ERC-20: + +- transferă tokenuri de la un cont la altul +- obține soldul curent de tokenuri al unui cont +- obține numărul total de tokenuri disponibile în rețea +- aprobă dacă o sumă de tokenuri dintr-un cont poate fi cheltuită de un cont terț + +Dacă un contract inteligent implementează următoarele metode și evenimente, poate fi numit contract de tokenuri ERC-20 și, odată implementat, va avea responsabilitatea de a ţine evidența tokenurilor create pe Ethereum. + +De la [EIP-20](https://eips.ethereum.org/EIPS/eip-20): + +### Metode {#methods} + +```solidity +function name() public view returns (string) +function symbol() public view returns (string) +function decimals() public view returns (uint8) +function totalSupply() public view returns (uint256) +function balanceOf(address _owner) public view returns (uint256 balance) +function transfer(address _to, uint256 _value) public returns (bool success) +function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) +function approve(address _spender, uint256 _value) public returns (bool success) +function allowance(address _owner, address _spender) public view returns (uint256 remaining) +``` + +### Evenimente {#events} + +```solidity +event Transfer(address indexed _from, address indexed _to, uint256 _value) +event Approval(address indexed _owner, address indexed _spender, uint256 _value) +``` + +### Exemple {#web3py-example} + +Să vedem cât de important este un standard pentru a ne simplifica lucrurile când inspectăm orice contract de tokenuri ERC-20 pe Ethereum. Avem nevoie doar de Interfața binară cu aplicaţia (ABI) a contractului pentru a crea o interfață pentru orice token ERC-20. După cum puteţi vedea mai jos, vom folosi un ABI simplificat, pentru a facilita înţelegerea exemplului. + +#### Exemplu Web3.py {#web3py-example} + +În primul rând aveţi grijă să instalaţi librăria Python [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation): + +``` +pip install web3 +``` + +```python +from web3 import Web3 + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI +weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # Wrapped eter (WETH) + +acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11" # Uniswap V2: DAI 2 + +# Aceasta este o interfață binară simplificată pentru aplicația contractuală (ABI) a unui token Contract ERC-20. +# Va expune doar metodele: balanceOf(address), decimals(), symbol() and totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'decimals', + 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +dai_contract = w3.eth.contract(address=w3.toChecksumAddress(dai_token_addr), abi=simplified_abi) +symbol = dai_contract.functions.symbol().call() +decimals = dai_contract.functions.decimals().call() +totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals +addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# DAI +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) + +weth_contract = w3.eth.contract(address=w3.toChecksumAddress(weth_token_addr), abi=simplified_abi) +symbol = weth_contract.functions.symbol().call() +decimals = weth_contract.functions.decimals().call() +totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals +addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# WETH +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) +``` + +## Referințe suplimentare {#further-reading} + +- [EIP-20: Standard de tokenuri ERC-20](https://eips.ethereum.org/EIPS/eip-20) +- [OpenZeppelin - Tokenuri](https://docs.openzeppelin.com/contracts/3.x/tokens#ERC20) +- [OpenZeppelin - Implementare ERC-20](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) diff --git a/public/content/translations/ro/developers/docs/standards/tokens/erc-721/index.md b/public/content/translations/ro/developers/docs/standards/tokens/erc-721/index.md new file mode 100644 index 00000000000..a7bcbff73ef --- /dev/null +++ b/public/content/translations/ro/developers/docs/standards/tokens/erc-721/index.md @@ -0,0 +1,243 @@ +--- +title: Standardul de tokenuri nefungibile ERC-721 +description: +lang: ro +--- + +## Introducere {#introduction} + +**Ce este un token nefungibil?** + +Tokenurile nefungibile (NFT) sunt folosite pentru a identifica ceva sau pe cineva într-un mod unic. Acest tip de token este perfect pentru a fi utilizat pe platforme care oferă articole de colecții, chei de acces, bilete la loterie, locuri numerotate pentru concerte și meciuri sportive etc. Acest tip special de Token are posibilități uimitoare, așa că merită un Standard adecvat, iar ERC-721 a apărut ca soluţie! + +**Ce este ERC-721?** + +ERC-721 introduce un standard pentru NFT-uri, cu alte cuvinte, acest tip de Token este unic și poate avea o valoare diferită de un alt Token din același Contract inteligent, poate din cauza vârstei, a rarității sau chiar din alt motiv, cum ar fi reprezentarea sa vizuală. Ia staţi, vizuală? + +Da! Toate NFT-urile au o variabilă `uint256` numită `tokenId`, astfel încât pentru orice contract ERC-721, perechea `contract address, uint256 tokenId` trebuie să fie unică la nivel global. Acestea fiind spuse, o aplicaţie dApp poate avea un „convertor” care folosește `tokenId` ca date de intrare și produce la ieşire ceva grozav, cum ar fi o imagine cu zombi, arme, abilități sau pisicuțe uimitoare! + +## Condiții prealabile {#prerequisites} + +- [Conturi](/developers/docs/accounts/) +- [Contracte inteligente](/developers/docs/smart-contracts/) +- [Standarde de tokenuri](/developers/docs/standards/tokens/) + +## Conținut {#body} + +ERC-721 (Cerere de comentarii Ethereum), propus de William Entriken, Dieter Shirley, Jacob Evans, Nastassia Sachs în ianuarie 2018, este un Standard de tokenuri nefungibile care implementează un API pentru tokenuri în cadrul Contractelor inteligente. + +Acesta oferă funcționalități cum ar fi transferul de tokenuri dintr-un cont în altul, obținerea soldului actual al tokenurilor unui cont, obținerea proprietarului unui token specific și de asemenea a totalului de tokenuri disponibile în rețea. Pe lângă acestea, are și alte funcționalități, cum ar fi aceea de a aproba ca o cantitate de tokenuri dintr-un cont să poată fi mutată de către un cont terț. + +În cazul în care un Contract inteligent implementează următoarele metode și evenimente, acesta poate fi numit un contract de tokenuri nefungibile ERC-721 și, odată implementat, va avea responsabilitatea de a ține evidența tokenurilor create pe Ethereum. + +De la [EIP-721](https://eips.ethereum.org/EIPS/eip-721): + +### Metode {#methods} + +```solidity + function balanceOf(address _owner) external view returns (uint256); + function ownerOf(uint256 _tokenId) external view returns (address); + function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; + function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; + function transferFrom(address _from, address _to, uint256 _tokenId) external payable; + function approve(address _approved, uint256 _tokenId) external payable; + function setApprovalForAll(address _operator, bool _approved) external; + function getApproved(uint256 _tokenId) external view returns (address); + function isApprovedForAll(address _owner, address _operator) external view returns (bool); +``` + +### Evenimente {#events} + +```solidity + event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); + event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); + event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); +``` + +### Exemple {#web3py-example} + +Să vedem cât de important este un standard pentru a ne simplifica lucrurile când inspectăm orice contract de tokenuri ERC-721 pe Ethereum. Avem nevoie doar de interfața binară cu aplicația (ABI) a contractului pentru a crea o interfață pentru orice token ERC-721. După cum puteţi vedea mai jos, vom folosi un ABI simplificat, pentru a facilita înţelegerea exemplului. + +#### Exemplu Web3.py {#web3py-example} + +În primul rând aveţi grijă să instalaţi librăria Python [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation): + +``` +pip install web3 +``` + +```python +from web3 import Web3 +from web3._utils.events import get_event_data + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # CryptoKitties Contract + +acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # CryptoKitties Sales Auction + +# This is a simplified Contract Application Binary Interface (ABI) of an ERC-721 NFT Contract. +# Va expune numai metodele: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'name', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'ownerOf', + 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, +] + +ck_extra_abi = [ + { + 'inputs': [], + 'name': 'pregnantKitties', + 'outputs': [{'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'name': '_kittyId', 'type': 'uint256'}], + 'name': 'isPregnant', + 'outputs': [{'name': '', 'type': 'bool'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +ck_contract = w3.eth.contract(address=w3.toChecksumAddress(ck_token_addr), abi=simplified_abi+ck_extra_abi) +name = ck_contract.functions.name().call() +symbol = ck_contract.functions.symbol().call() +kitties_auctions = ck_contract.functions.balanceOf(acc_address).call() +print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}") + +pregnant_kitties = ck_contract.functions.pregnantKitties().call() +print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}") + +# Folosind evenimentul ABI „transfer” pentru a obține informații despre „Pisicile” transferate. +tx_event_abi = { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'from', 'type': 'address'}, + {'indexed': False, 'name': 'to', 'type': 'address'}, + {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'Transfer', + 'type': 'event' +} + +# We need the event's signature to filter the logs +event_signature = w3.sha3(text="Transfer(address,address,uint256)").hex() + +logs = w3.eth.getLogs({ + "fromBlock": w3.eth.blockNumber - 120, + "address": w3.toChecksumAddress(ck_token_addr), + "topics": [event_signature] +}) + +# Notes: +# - 120 blocks is the max range for CloudFlare Provider +# - If you didn't find any Transfer event you can also try to get a tokenId at: +# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events +# Click to expand the event's logs and copy its "tokenId" argument + +recent_tx = [get_event_data(w3.codec, tx_event_abi, log)["args"] for log in logs] + +kitty_id = recent_tx[0]['tokenId'] # Paste the "tokenId" here from the link above +is_pregnant = ck_contract.functions.isPregnant(kitty_id).call() +print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}") +``` + +Contractul CryptoKitties are câteva Evenimente interesante, altele decât cele standard. + +Să verificăm două dintre ele, `Pregnant` și `Birth`. + +```python +# Utilizarea evenimentelor ABI „Pregnant” și „Birth” pentru a obține informații despre noile pisici. +ck_extra_events_abi = [ + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}], + 'name': 'Pregnant', + 'type': 'event' + }, + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'kittyId', 'type': 'uint256'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'genes', 'type': 'uint256'}], + 'name': 'Birth', + 'type': 'event' + }] + +# We need the event's signature to filter the logs +ck_event_signatures = [ + w3.sha3(text="Pregnant(address,uint256,uint256,uint256)").hex(), + w3.sha3(text="Birth(address,uint256,uint256,uint256,uint256)").hex(), +] + +# Here is a Pregnant Event: +# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog +pregnant_logs = w3.eth.getLogs({ + "fromBlock": w3.eth.blockNumber - 120, + "address": w3.toChecksumAddress(ck_token_addr), + "topics": [ck_event_signatures[0]] +}) + +recent_pregnants = [get_event_data(w3.codec, ck_extra_events_abi[0], log)["args"] for log in pregnant_logs] + +# Here is a Birth Event: +# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a +birth_logs = w3.eth.getLogs({ + "fromBlock": w3.eth.blockNumber - 120, + "address": w3.toChecksumAddress(ck_token_addr), + "topics": [ck_event_signatures[1]] +}) + +recent_births = [get_event_data(w3.codec, ck_extra_events_abi[1], log)["args"] for log in birth_logs] +``` + +## NFT-uri populare {#popular-nfts} + +- [Etherscan NFT Tracker](https://etherscan.io/tokens-nft) listează NFT-urile de top pe Ethereum după volumul transferurilor. +- [CryptoKitties](https://www.cryptokitties.co/) este un joc centrat pe creaturile care pot fi crescute, colecționate și sunt atât de adorabile pe care le numim CryptoKitties. +- [Sorare](https://sorare.com/) este un joc global de fotbal fantezie unde puteţi colecta obiecte de colecţie de ediție limitată, vă puteţi gestiona echipele și puteţi concura pentru a câștiga premii. +- [Serviciul de nume Ethereum (ENS)](https://ens.domains/) oferă o modalitate securizată & și descentralizată de a aborda resursele, atât în ​​cadrul blockchain-ului, cât și în afara acestuia, folosind nume simple, care pot fi citite de oameni. +- [Unstoppable Domains](https://unstoppabledomains.com/) este o companie din San Francisco care construiește domenii pe blockchain-uri. Domeniile blockchain înlocuiesc adresele criptomonedei cu nume care pot fi citite de oameni și pot fi folosite pentru activarea de site-uri web rezistente la cenzură. +- [Gods Unchained Cards](https://godsunchained.com/) este un TCG (joc de cărți de tranzacționare) pe blockchain-ul Ethereum care folosește NFT-uri pentru a aduce proprietate reală activelor din joc. +- [Bored Ape Yacht Club](https://boredapeyachtclub.com) este o colecție de 10.000 de NFT-uri unice, care, în afară de a fi o piesă artistică cu adevărat rară, funcționează ca token de membru al clubului, oferind membrilor avantaje și beneficii care cresc în timp, ca rezultat al eforturilor comunității. + +## Referințe suplimentare {#further-reading} + +- [EIP-721: Standardul de tokenuri nefungibile ERC-721](https://eips.ethereum.org/EIPS/eip-721) +- [OpenZeppelin - Documentație ERC-721](https://docs.openzeppelin.com/contracts/3.x/erc721) +- [OpenZeppelin - Implementare ERC-721](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) +- [Alchemy NFT API](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) diff --git a/src/content/translations/ro/developers/docs/standards/tokens/erc-777/index.md b/public/content/translations/ro/developers/docs/standards/tokens/erc-777/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/standards/tokens/erc-777/index.md rename to public/content/translations/ro/developers/docs/standards/tokens/erc-777/index.md diff --git a/src/content/translations/ro/developers/docs/standards/tokens/index.md b/public/content/translations/ro/developers/docs/standards/tokens/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/standards/tokens/index.md rename to public/content/translations/ro/developers/docs/standards/tokens/index.md diff --git a/src/content/translations/ro/developers/docs/storage/index.md b/public/content/translations/ro/developers/docs/storage/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/storage/index.md rename to public/content/translations/ro/developers/docs/storage/index.md diff --git a/src/content/translations/ro/developers/docs/transactions/index.md b/public/content/translations/ro/developers/docs/transactions/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/transactions/index.md rename to public/content/translations/ro/developers/docs/transactions/index.md diff --git a/src/content/translations/ro/developers/docs/web2-vs-web3/index.md b/public/content/translations/ro/developers/docs/web2-vs-web3/index.md similarity index 100% rename from src/content/translations/ro/developers/docs/web2-vs-web3/index.md rename to public/content/translations/ro/developers/docs/web2-vs-web3/index.md diff --git a/src/content/translations/ro/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md b/public/content/translations/ro/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md rename to public/content/translations/ro/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md diff --git a/src/content/translations/ro/developers/tutorials/calling-a-smart-contract-from-javascript/index.md b/public/content/translations/ro/developers/tutorials/calling-a-smart-contract-from-javascript/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/calling-a-smart-contract-from-javascript/index.md rename to public/content/translations/ro/developers/tutorials/calling-a-smart-contract-from-javascript/index.md diff --git a/src/content/translations/ro/developers/tutorials/create-and-deploy-a-defi-app/index.md b/public/content/translations/ro/developers/tutorials/create-and-deploy-a-defi-app/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/create-and-deploy-a-defi-app/index.md rename to public/content/translations/ro/developers/tutorials/create-and-deploy-a-defi-app/index.md diff --git a/src/content/translations/ro/developers/tutorials/deploying-your-first-smart-contract/index.md b/public/content/translations/ro/developers/tutorials/deploying-your-first-smart-contract/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/deploying-your-first-smart-contract/index.md rename to public/content/translations/ro/developers/tutorials/deploying-your-first-smart-contract/index.md diff --git a/src/content/translations/ro/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md b/public/content/translations/ro/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md rename to public/content/translations/ro/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md diff --git a/src/content/translations/ro/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/ro/developers/tutorials/erc-721-vyper-annotated-code/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/erc-721-vyper-annotated-code/index.md rename to public/content/translations/ro/developers/tutorials/erc-721-vyper-annotated-code/index.md diff --git a/src/content/translations/ro/developers/tutorials/erc20-annotated-code/index.md b/public/content/translations/ro/developers/tutorials/erc20-annotated-code/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/erc20-annotated-code/index.md rename to public/content/translations/ro/developers/tutorials/erc20-annotated-code/index.md diff --git a/src/content/translations/ro/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md b/public/content/translations/ro/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md rename to public/content/translations/ro/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md diff --git a/src/content/translations/ro/developers/tutorials/guide-to-smart-contract-security-tools/index.md b/public/content/translations/ro/developers/tutorials/guide-to-smart-contract-security-tools/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/guide-to-smart-contract-security-tools/index.md rename to public/content/translations/ro/developers/tutorials/guide-to-smart-contract-security-tools/index.md diff --git a/src/content/translations/ro/developers/tutorials/hello-world-smart-contract/index.md b/public/content/translations/ro/developers/tutorials/hello-world-smart-contract/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/hello-world-smart-contract/index.md rename to public/content/translations/ro/developers/tutorials/hello-world-smart-contract/index.md diff --git a/src/content/translations/ro/developers/tutorials/how-to-implement-an-erc721-market/index.md b/public/content/translations/ro/developers/tutorials/how-to-implement-an-erc721-market/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/how-to-implement-an-erc721-market/index.md rename to public/content/translations/ro/developers/tutorials/how-to-implement-an-erc721-market/index.md diff --git a/src/content/translations/ro/developers/tutorials/how-to-mint-an-nft/index.md b/public/content/translations/ro/developers/tutorials/how-to-mint-an-nft/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/how-to-mint-an-nft/index.md rename to public/content/translations/ro/developers/tutorials/how-to-mint-an-nft/index.md diff --git a/src/content/translations/ro/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md b/public/content/translations/ro/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md rename to public/content/translations/ro/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md diff --git a/src/content/translations/ro/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md b/public/content/translations/ro/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md rename to public/content/translations/ro/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md diff --git a/src/content/translations/ro/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md b/public/content/translations/ro/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md rename to public/content/translations/ro/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md diff --git a/public/content/translations/ro/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md b/public/content/translations/ro/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md new file mode 100644 index 00000000000..774f51a395f --- /dev/null +++ b/public/content/translations/ro/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md @@ -0,0 +1,100 @@ +--- +title: Cum să configurați Tellor ca oracol personal +description: Un ghid pentru a începe integrarea oracolului Tellor în protocolul dvs. +author: "Tellor" +lang: ro +tags: + - "solidity" + - "contracte inteligente" + - "fluxuri de prețuri" + - "oracole" +skill: beginner +published: 2021-06-29 +source: Documentație Tellor +sourceUrl: https://docs.tellor.io/tellor/ +--- + +Pop Quiz: Your protocol is just about finished, but it needs an oracle to get access to off chain data...What do you do? + +## (Soft) Condiții prealabile {#soft-prerequisites} + +Această postare își propune să faciliteze și să simplifice pe cât posibil accesarea unui flux de oracol. Acestea fiind spuse, vom presupune următoarele despre nivelul dvs. de cunoștințe de programare pentru a ne putea axa pe partea de oracol. + +Ipoteze: + +- știți să navigați într-un terminal +- aveți npm instalat +- știți cum să folosiți npm pentru a gestiona dependențele + +Tellor este un Oracol live și open-source gata de implementare. Acest ghid pentru începători are rolul de a prezenta cât este de ușor să puneți în funcțiune Tellor, oferind astfel proiectului dvs. un oracol complet descentralizat și rezistent la cenzură. + +## Prezentare generală {#overview} + +Tellor is an oracle system where parties can request the value of an off-chain data point (e.g. BTC/USD) and reporters compete to add this value to an on-chain data-bank, accessible by all Ethereum smart contracts. The inputs to this data-bank are secured by a network of staked reporters. Tellor utilizes crypto-economic incentive mechanisms, rewarding honest data submissions by reporters and punishing bad actors through the issuance of Tellor’s token, Tributes (TRB) and a dispute mechanism. + +În acest tutorial vom trece în revistă: + +- Configurarea unui set inițial de instrumente necesare pentru punerea în funcțiune. +- Consultarea unui exemplu simplu. +- Consultarea unei liste de adrese testnet ale rețelelor pe care puteți actualmente testa Tellor. + +## FolosireaTellor {#usingtellor} + +Primul lucru pe care îl aveți de făcut este să instalați instrumentele de bază necesare pentru a utiliza Tellor ca oracol. Use [this package](https://github.com/tellor-io/usingtellor) to install the Tellor User Contracts: + +`npm install usingtellor` + +Odată instalat, acesta va permite contractelor dvs. să moștenească funcții din contractul „UsingTellor”. + +Super! Now that you've got the tools ready, let's go through a simple exercise where we retrieve the bitcoin price: + +### Exemplu BTC/USD {#btcusd-example} + +Moșteniți contractul „UsingTellor”, trecând adresa Tellor ca argument pentru constructor: + +Iată un exemplu: + +```solidity +import "usingtellor/contracts/UsingTellor.sol"; + +contract BtcPriceContract is UsingTellor { + + //This Contract now has access to all functions in UsingTellor + + bytes btcPrice; + bytes32 btcQueryId = 0x0000000000000000000000000000000000000000000000000000000000000002; + + constructor(address payable _tellorAddress) UsingTellor(_tellorAddress) public {} + + function setBtcPrice() public { + bool _didGet; + uint256 _timestamp; + + (_didGet, btcPrice, _timestamp) = getCurrentValue(btcQueryId); + } +} +``` + +**Want to try a different data feed? Check out the list of supported data feeds here: [Current Data Feeds](https://docs.tellor.io/tellor/integration/data-feed-ids)** + +## Addresses: {#addresses} + +Mainnet: [`0x88df592f8eb5d7bd38bfef7deb0fbc02cf3778a0`](https://etherscan.io/address/0x88df592f8eb5d7bd38bfef7deb0fbc02cf3778a0#code) + +### Looking to do some testing first? See the list below for our active testnet addresses: {#looking-to-do-some-testing-first-see-the-list-below-for-our-active-testnet-addresses} + +Rinkeby: [`0x88df592f8eb5d7bd38bfef7deb0fbc02cf3778a0`](https://rinkeby.etherscan.io/address/0x88df592f8eb5d7bd38bfef7deb0fbc02cf3778a0#code) + +Kovan: [`0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7`](https://kovan.etherscan.io/address/0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7#code) + +Ropsten: [`0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7`](https://ropsten.etherscan.io/address/0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7#code) + +Goerli: [`0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7`](https://goerli.etherscan.io/address/0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7#code) + +BSC Testnet: [`0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7`](https://testnet.bscscan.com/address/0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7#code) + +Polygon Mumbai Testnet: [`0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7`](https://mumbai.polygonscan.com/address/0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7/contracts#code) + +Arbitrum Testnet: [`0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7`](https://rinkeby-explorer.arbitrum.io/address/0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7) + +### Pentru o implementare mai robustă a oracolului Tellor, consultați lista completă de funcții disponibile [aici.](https://github.com/tellor-io/usingtellor/blob/master/README.md) {#for-a-more-robust-implementation-of-the-tellor-oracle-check-out-the-full-list-of-available-functions-here} diff --git a/public/content/translations/ro/developers/tutorials/how-to-view-nft-in-metamask/index.md b/public/content/translations/ro/developers/tutorials/how-to-view-nft-in-metamask/index.md new file mode 100644 index 00000000000..90f325cdf6e --- /dev/null +++ b/public/content/translations/ro/developers/tutorials/how-to-view-nft-in-metamask/index.md @@ -0,0 +1,38 @@ +--- +title: Cum să vă vizualizați NFT-ul în portofel (Partea 3/3 din seria de tutoriale NFT) +description: Tutorialul acesta descrie cum se poate vizualiza un NFT existent pe MetaMask! +author: "Sumi Mudgil" +tags: + - "NFT-uri" + - "ERC-721" + - "Alchemy" + - "tokenuri nefungibile" + - "Solidity" +skill: beginner +lang: ro +published: 2021-04-22 +--- + +Acest tutorial este Partea 3 din seria de trei părți a tutorialului despre NFT-uri în care vom vizualiza NFT-ul nostru proaspăt emis. Totodată, puteți utiliza tutorialul general pentru orice token ERC-721 folosind MetaMask, inclusiv pe Mainnet sau pe orice testnet. Dacă doriți să învățați cum să vă emiteţi propriul NFT pe Ethereum, ar trebui să consultați [Partea 1 despre Cum să scrieți & să implementați un contract inteligent NFT](/developers/tutorials/how-to-write-and-deploy-an-nft)! + +Felicitări! Ați ajuns la cea mai scurtă și mai simplă parte a seriei noastre de tutoriale despre NFT -uri — cum să vizualizați NFT-ul proaspăt emis într-un portofel virtual. Vom folosi de asemenea MetaMask pentru acest exemplu, deoarece l-am folosit în cele două părți anterioare. + +Ca şi condiţie prealabilă, ar trebui să aveți deja instalat MetaMask pe mobil, care să includă și contul în care v-ați emis NFT-ul — puteți obține aplicația gratuit pe [iOS](https://apps.apple.com/us/app/metamask-blockchain-wallet/id1438144202) sau [Android](https://play.google.com/store/apps/details?id=io.metamask&hl=en_US&gl=US). + +## Etapa 1: Configurați rețeaua pe Ropsten {#set-network-to-ropsten} + +În partea superioară a aplicației, apăsați butonul „Wallet” („Portofel”), după care vi se va cere să selectați o rețea. Deoarece NFT-ul nostru a fost emis în rețeaua Ropsten, va trebui să selectați Ropsten ca rețea. + +![Cum să setați Ropsten ca rețeaua dvs. pe MetaMask Mobile](./goerliMetamask.gif) + +## Etapa 2: Adăugarea obiectului de colecție la MetaMask {#add-nft-to-metamask} + +Odată ce vă aflați în rețeaua Ropsten, selectați fila „Collectibles” („Obiecte de colecție”) din dreapta și adăugați adresa contractului inteligent NFT și ID-ul jetonului ERC-721 al NFT-ului dvs. — pe care ar trebui să le găsiți pe Etherscan pe baza hash-ului tranzacției din NFT-ul dvs. implementat în Partea 2 a tutorialului nostru. + +![Cum să găsiţi hash-ul tranzacției și ID-ul tokenului ERC-721](./findNFTEtherscan.png) + +Ar putea fi necesar să reîncărcaţi de câteva ori pentru a vă vedea NFT-ul — dar va fi acolo ! + +![Cum să vă încărcați NFT-ul pe MetaMask](./findNFTMetamask.gif) + +Felicitări! Ați emis cu succes un NFT și acum îl puteți vizualiza! Așteptăm cu nerăbdare să vedem cum luaţi cu asalt lumea NFT-urilor! diff --git a/public/content/translations/ro/developers/tutorials/how-to-write-and-deploy-an-nft/index.md b/public/content/translations/ro/developers/tutorials/how-to-write-and-deploy-an-nft/index.md new file mode 100644 index 00000000000..023a4fb55d8 --- /dev/null +++ b/public/content/translations/ro/developers/tutorials/how-to-write-and-deploy-an-nft/index.md @@ -0,0 +1,349 @@ +--- +title: Cum să scrieți și să implementați un NFT (Partea 1/3 din seria de tutoriale NFT) +description: Acesta este primul tutorial al unei serii despre NFT-uri care vă va arăta pas cu pas cum să scrieți și să implementați un contract inteligent de token nefungibil (token ERC-721) folosind Ethereum și Inter Planetary File System (IPFS). +author: "Sumi Mudgil" +tags: + - "NFT-uri" + - "ERC-721" + - "Alchemy" + - "Solidity" + - "contractele inteligente" +skill: beginner +lang: ro +published: 2021-04-22 +--- + +Având în vedere că NFT-urile aduc blockchain-ul în atenția publicului, acum aveți o ocazie excelentă de a trăi acest entuziasm, prin publicarea propriul NFT (tokenul ERC-721) pe blockchain-ul Ethereum! + +Alchemy se mândreşte mult că susține cele mai mari nume din spațiul NFT, printre care Makersplace (a atins recent un record de vânzare de opere de artă digitală la Christie's pentru 69 de milioane de dolari), Dapper Labs (creatorii NBA Top Shot & Crypto Kitties), OpenSea (cea mai mare piață de NFT -uri din lume), Zora, Super Rare, NFTfi, Foundation, Enjin, Origin Protocol, Immutable și multe altele. + +În acest tutorial vă vom îndruma pentru crearea și implementarea unui contract inteligent ERC-721 pe rețeaua de testare Ropsten folosind [MetaMask](https://metamask.io/), [Solidity](https://docs.soliditylang.org/en/v0.8.0/), [Hardhat](https://hardhat.org/), [Pinata](https://pinata.cloud/) și [Alchemy](https://dashboard.alchemyapi.io/signup) (nu vă faceți griji dacă nu înțelegeți încă ce înseamnă toate acestea — vă vom explica!). + +În Partea 2 a acestui tutorial vom examina cum putem utiliza contractul nostru inteligent pentru a emite un NFT, iar în Partea 3, vom explica în ce mod putem vizualiza NFT-ul pe MetaMask. + +Desigur, dacă aveți oricând întrebări, nu ezitați să ne contactați pe [Alchemy Discord](https://discord.gg/gWuC7zB)! + +## Etapa 1: Conectarea la rețeaua Ethereum {#connect-to-ethereum} + +Sunt o mulțime de modalități de a face cereri către blockchain-ul Ethereum, dar pentru a simplifica lucrurile vom folosi un cont gratuit pe [Alchemy](https://dashboard.alchemyapi.io/signup), o platformă de dezvoltare blockchain și un API care ne permite să comunicăm cu lanțul Ethereum fără a fi necesar să ne rulăm propriile noduri. + +În acest tutorial vom profita şi de instrumentele de dezvoltare Alchemy pentru monitorizare și analiză și pentru a înțelege ce se întâmplă în culise în timpul implementării contractului nostru inteligent. Dacă nu aveți deja un cont Alchemy, vă puteți înregistra gratuit [aici](https://dashboard.alchemyapi.io/signup). + +## Etapa 2: Crearea aplicației (și a cheii API) {#make-api-key} + +Odată ce v-ați creat un cont Alchemy, puteți să generați o cheie API creând o aplicație. Aceasta ne va permite să facem solicitări către rețeaua de testare Ropsten. Consultați [acest ghid](https://docs.alchemyapi.io/guides/choosing-a-network) dacă sunteți curios să aflați mai multe despre rețelele de testare. + +1. Navigați la pagina „Create App” (Creați o aplicație) din tabloul de bord Alchemy, trecând peste „Apps” (Aplicații) din bara de navigare și dați clic pe „Create App” (Creați o aplicație) + +![Creaţi-vă propria aplicație](./create-your-app.png) + +2. Numiți-vă aplicația „My First NFT!”, dați-i o scurtă descriere, selectați „Staging” pentru Mediu (folosit pentru contabilizarea aplicației) și alegeți „Ropsten” pentru rețea. + +![Configurați-vă și publicați-vă aplicația](./configure-and-publish-your-app.png) + +3. Dați clic pe „Create app” (Creați aplicația) și asta e tot! Aplicația dvs. ar trebui să apară în tabelul de mai jos. + +## Etapa 3: Crearea unui cont Ethereum (adresă) {#create-eth-address} + +Avem nevoie de un cont Ethereum pentru a trimite și primi tranzacții. În acest tutorial vom folosi un portofel virtual în browser, MetaMask, pentru a gestiona adresa contului Ethereum. Dacă doriți să înțelegeți mai multe despre cum funcționează tranzacțiile pe Ethereum, consultaţi [această pagină](/developers/docs/transactions/) de la fundația Ethereum. + +Puteți descărca și crea un cont MetaMask pe gratis [aici](https://metamask.io/download.html). Atunci când vă creați un cont sau dacă aveți deja unul, aveţi grijă să comutaţi pe „Ropsten Test Network” („Rețeaua de testare Ropsten”) în dreapta sus (pentru a nu avea de-a face cu bani reali). + +![Setați Ropsten ca rețeaua dvs.](./metamask-goerli.png) + +## Etapa 4: Adăugarea de ether de la un faucet {#step-4-add-ether-from-a-faucet} + +Pentru implementarea contractului nostru inteligent în rețeaua de testare, vom avea nevoie de niște ETH fals. Pentru a-l obține, mergeți la [faucetul Ropsten](https://faucet.ropsten.be/), introduceți-vă adresa contului, apoi dați click pe „Trimiteți ETH Ropsten.” În scurt timp ar trebui să vă vedeți ETH-ul în contul dvs. MetaMask! + +## Etapa 5: Verificarea soldului {#check-balance} + +Pentru a ne verifica soldul de două ori, să facem o solicitare [eth_getBalance](https://docs.alchemyapi.io/alchemy/documentation/alchemy-api-reference/json-rpc#eth_getbalance) folosind [instrumentul compozitor al Alchemy](https://composer.alchemyapi.io?composer_state=%7B%22network%22%3A0%2C%22methodName%22%3A%22eth_getBalance%22%2C%22paramValues%22%3A%5B%22%22%2C%22latest%22%5D%7D). Aceasta va returna suma de ETH în portofelul nostru. După introducerea adresei contului MetaMask și după ce ați dat click pe „Send Request” („Trimiteți solicitarea”), ar trebui să vedeți un răspuns ca acesta: + + `{"jsonrpc": "2.0", "id": 0, "result": "0xde0b6b3a7640000"}` + +**OBSERVAŢIE:** Rezultatul este în wei, nu în ETH. Wei este folosit ca cea mai mică denominație de ether. Conversia din wei în ETH este: 1 eth = 1018 wei. Deci, convertind 0xde0b6b3a7640000 în zecimal, obținem 1\*1018 wei, ceea ce înseamnă 1 ETH. + +Pfiu! Banii noștri falși sunt toți acolo. + +## Etapa 6: Inițializarea proiectului {#initialize-project} + +Mai întâi va trebui să creem un dosar pentru proiectul nostru. Navigați la linia de comandă și tastați: + + mkdir my-nft + cd my-nft + +Odată ce suntem în dosarul proiectului nostru, vom folosi npm init pentru a inițializa proiectul. Dacă nu aveți deja instalat „npm”, urmați [aceste instrucțiuni](https://docs.alchemyapi.io/alchemy/guides/alchemy-for-macs#1-install-nodejs-and-npm) (vom avea nevoie și de [Node.js](https://nodejs.org/en/download/), așadar descărcați-l și pe acela!). + + npm init + +Nu este prea important cum răspundeți la întrebările de instalare; iată cum am făcut-o noi, ca referință: + + package name: (my-nft) + version: (1.0.0) + description: My first NFT! + entry point: (index.js) + test command: + git repository: + keywords: + author: + license: (ISC) + About to write to /Users/thesuperb1/Desktop/my-nft/package.json: + + { + "name": "my-nft", + "version": "1.0.0", + "description": "My first NFT!", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC" + } + +Aprobați package.json și suntem gata să începem! + +## Etapa 7: Instalarea [Hardhat](https://hardhat.org/getting-started/#overview) {#install-hardhat} + +Hardhat este un mediu de dezvoltare pentru compilarea, implementarea, testarea și depanarea de software Ethereum. Acesta ajută dezvoltatorii la construirea de contracte inteligente și aplicații dapp la nivel local, înainte de a le implementa în lanțul real. + +În cadrul proiectului nostru my-nft, rulați: + + npm install --save-dev hardhat + +Consultați această pagină pentru mai multe [informații de instalare](https://hardhat.org/getting-started/#overview). + +## Etapa 8: Crearea proiectului Hardhat {#create-hardhat-project} + +În dosarul proiectului nostru, executați: + + npx hardhat + +În acel moment ar trebui să vedeți un mesaj de bun venit și opțiunea de a selecționa ceea ce doriți să faceți. Selectați „create an empty hardhat.config.js” („creați un hardhat.config.js gol”): + + 888 888 888 888 888 + 888 888 888 888 888 + 888 888 888 888 888 + 8888888888 8888b. 888d888 .d88888 88888b. 8888b. 888888 + 888 888 "88b 888P" d88" 888 888 "88b "88b 888 + 888 888 .d888888 888 888 888 888 888 .d888888 888 + 888 888 888 888 888 Y88b 888 888 888 888 888 Y88b. + 888 888 "Y888888 888 "Y88888 888 888 "Y888888 "Y888 + 👷 Welcome to Hardhat v2.0.11 👷‍ + ? What do you want to do? … + Create a sample project + ❯ Create an empty hardhat.config.js + Quit + +Aceasta ne va genera un fișier hardhat.config.js, în care vom specifica toate setările proiectului nostru (în etapa 13). + +## Etapa 9: Adăugarea dosarelor proiectului {#add-project-folders} + +Pentru ne menţine proiectul organizat, vom crea două dosare noi. Mergeți în directorul rădăcină al proiectului dvs. și tastaţi în linia de comandă: + + mkdir contracts + mkdir scripts + +- contracts/ este locul în care vom păstra codul contractului nostru inteligent NFT + +- scripts/ este locul unde vom păstra scripturile pentru implementarea și interacțiunea cu contractul nostru inteligent + +## Etapa 10: Scrierea contractului nostru {#write-contract} + +Acum, că mediul nostru este configurat, să trecem la lucruri mai entuziasmante: _scrierea codului contractului nostru inteligent!_ + +Deschideți proiectul „my-nft” în editorul dvs. preferat (noi preferăm [VSCode](https://code.visualstudio.com/)). Contractele inteligente sunt scrise într-un limbaj numit Solidity, pe care îl vom folosi pentru a scrie contractul nostru inteligent „MyNFT.sol”. + +1. Navigați în dosarul `contracts` și creați un nou fișier numit „MyNFT.sol” + +2. Mai jos este codul contractului nostru inteligent NFT, cod pentru care ne-am bazat pe implementarea ERC-721 a bibliotecii [OpenZeppelin](https://docs.openzeppelin.com/contracts/3.x/erc721). Copiați și inseraţi conținutul de mai jos în fișierul MyNFT.sol. + + ```solidity + //Contract based on [https://docs.openzeppelin.com/contracts/3.x/erc721](https://docs.openzeppelin.com/contracts/3.x/erc721) + // SPDX-License-Identifier: MIT + pragma solidity ^0.8.0; + + import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; + import "@openzeppelin/contracts/utils/Counters.sol"; + import "@openzeppelin/contracts/access/Ownable.sol"; + import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol"; + + contract MyNFT is ERC721URIStorage, Ownable { + using Counters for Counters.Counter; + Counters.Counter private _tokenIds; + + constructor() public ERC721("MyNFT", "NFT") {} + + function mintNFT(address recipient, string memory tokenURI) + public onlyOwner + returns (uint256) + { + _tokenIds.increment(); + + uint256 newItemId = _tokenIds.current(); + _mint(recipient, newItemId); + _setTokenURI(newItemId, tokenURI); + + return newItemId; + } + } + ``` + +3. Deoarece moștenim clase din biblioteca de contracte OpenZeppelin, rulaţi în linia de comandă `npm install @openzeppelin/contractscontracte` pentru a instala biblioteca în folderul nostru. + +Deci ce _face_ acest cod mai exact? Să îl analizăm, linie cu linie. + +La începutul contractului nostru inteligent, importăm trei clase de contracte inteligente [OpenZeppelin](https://openzeppelin.com/): + +- @openzeppelin/contracts/token/ERC721/ERC721.sol conține implementarea standardului ERC-721, pe care îl va moşteni contractul nostru inteligent NFT. (Pentru a fi un NFT valid, contractul inteligent trebuie să implementeze toate metodele standardului ERC-721). Pentru a afla mai multe despre funcțiile ERC-721 moștenite, consultați definiția interfeței [aici](https://eips.ethereum.org/EIPS/eip-721). + +- @openzeppelin/contracts/utils/Counters.sol oferă contoare care pot fi incrementate sau decrementate doar cu unu. Contractul nostru inteligent utilizează acest contor pentru a ține evidența numărului total de NFT-uri emise și pentru a seta ID-ul unic pe noul nostru NFT. (Fiecărui NFT emis cu ajutorul unui contract inteligent trebuie să i se atribuie un ID unic—aici ID-ul nostru unic este doar determinat de numărul total de NFT-uri existente. De exemplu, primul NFT pe care îl emitem cu contractul nostru inteligent are un ID de „1”, al doilea NFT are un ID de „2” etc.) + +- @openzeppelin/contracts/access/Ownable.sol stabilește [controlul accesului](https://docs.openzeppelin.com/contracts/3.x/access-control) la contractul nostru inteligent, pentru ca numai proprietarul contractului inteligent (dvs.) să poată emite NFT-uri. (Observaţie: includerea controlului accesului este doar o preferință. Dacă preferați ca oricine să poată emite un NFT folosind contractul dvs. inteligent, eliminați cuvântul „Ownable” de la linia 10 și „onlyOwner„ de la linia 17.) + +După declarațiile de import, avem contractul nostru inteligent NFT personalizat, surprinzător de scurt — conține doar un contor, un constructor și o singură funcție! Aceasta datorită contractelor noastre moștenite din OpenZeppelin, care implementează majoritatea metodelor de care avem nevoie pentru a crea un NFT, cum ar fi `ownerOf`, care răspunde cine este proprietarul NFT-ului, și `transferFrom`, care transferă proprietatea NFT-ului de la un cont la altul. + +În constructorul nostru ERC-721, veți vedea că trecem două șiruri de caractere, „MyNFT” și „NFT.” Prima variabilă este numele contractului inteligent, iar cea de-a doua este simbolul acestuia. Puteți să numiți fiecare dintre aceste variabile cum doriți! + +În cele din urmă, avem funcția noastră `mintNFT(address recipient, string memory uri)` care ne permite să emitem un NFT! Veți observa că această funcție primește două variabile: + +- `adresa destinatarului` specifică adresa care va primi NFT-ul proaspăt emis + +- `string memory tokenURI` este un șir de caractere care ar trebui să rezolve la un document JSON care descrie metadatele NFT-ului. Metadatele unui NFT sunt într-adevăr ceea ce îi dă viață, permițându-i să aibă proprietăți configurabile, cum ar fi un nume, o descriere, o imagine și alte atribute. În partea a 2-a a acestui tutorial vom descrie cum să configurăm aceste metadate. + +`mintNFT` apelează câteva metode din biblioteca ERC-721 moștenită și, în cele din urmă, răspunde printr-un număr care reprezintă ID-ul NFT-ului proaspăt emis. + +## Etapa 11: Conectarea MetaMask & Alchemy la proiect {#connect-metamask-and-alchemy} + +Acum, că am creat un portofel MetaMask, un cont Alchemy și am scris contractul nostru inteligent, este timpul să le conectăm pe cele trei. + +Pentru fiecare tranzacție trimisă din portofelul dvs. virtual este necesară o semnătură cu ajutorul cheii private unice. Pentru a oferi programului nostru această permisiune, putem stoca în siguranță cheia noastră privată (și cheia API Alchemy) într-un fișier de mediu. + +Dacă doriți să aflați mai multe despre trimiterea de tranzacții, consultați [acest tutorial](/developers/tutorials/sending-transactions-using-web3-and-alchemy/) despre trimiterea de tranzacții utilizând Web3. + +Mai întâi instalați pachetul „dotenv” în dosarul proiectului dumneavoastră: + + npm install dotenv --save + +Apoi creați un fișier „.env” în directorul rădăcină al proiectului nostru și adăugați-vă cheia privată MetaMask și URL-ul HTTP al API-ului Alchemy în acesta. + +- Urmați [aceste instrucțiuni](https://metamask.zendesk.com/hc/en-us/articles/360015289632-How-to-Export-an-Account-Private-Key) pentru a exporta cheia dvs. privată din MetaMask + +- Vedeți mai jos cum să obţineţi URL-ul HTTP Alchemy API și copiați-l pe clipboard + +![Copiați URL-ul API-ului Alchemy](./copy-alchemy-api-url.gif) + +Fișierul dvs. „.env” ar trebui să arate acum așa: + + API_URL="https://eth-ropsten.alchemyapi.io/v2/your-api-key" + PRIVATE_KEY="your-metamask-private-key" + +Pentru a le conecta cu adevărat la codul nostru, vom face referire la aceste variabile în fișierul nostru hardhat.config.js în etapa 13. + +## Etapa 12: Instalarea Ethers.js {#install-ethers} + +„Ethers.js” este o bibliotecă ce facilitează interacțiunea cu Ethereum și solicitările către acesta, învelind („wrapping”) [metodele JSON-RPC standard](/developers/docs/apis/json-rpc/) cu metode mai ușor de utilizat. + +Hardhat simplifică foarte mult integrarea de [Plugin-uri](https://hardhat.org/plugins/) pentru instrumente suplimentare și funcționalități extinse. Vom profita de [plugin-ul Ethers](https://hardhat.org/plugins/nomiclabs-hardhat-ethers.html) pentru a implementa contractul ([Ethers.js](https://github.com/ethers-io/ethers.js/) are niște metode foarte simple de implementare a contractelor). + +În directorul de proiect, tastați: + + npm install --save-dev @nomiclabs/hardhat-ethers ethers@^5.0.0 + +De asemenea, vom solicita ether în fișierul nostru hardhat.config.js în etapa următoare. + +## Etapa 13: Actualizarea hardhat.config.js {#update-hardhat-config} + +Până acum am adăugat mai multe dependențe și plugin-uri, acum trebuie să actualizăm hardhat.config.js pentru ca proiectul nostru să știe despre toate acestea. + +Actualizați hardhat.config.js pentru a arăta astfel: + + /** + * @type import('hardhat/config').HardhatUserConfig + */ + require('dotenv').config(); + require("@nomiclabs/hardhat-ethers"); + const { API_URL, PRIVATE_KEY } = process.env; + module.exports = { + solidity: "0.8.0", + defaultNetwork: "ropsten", + networks: { + hardhat: {}, + ropsten: { + url: API_URL, + accounts: [`0x${PRIVATE_KEY}`] + } + }, + } + +## Etapa 14: Compilarea contractului nostru {#compile-contract} + +Pentru a fi siguri că totul funcționează până acum, să compilăm contractul nostru. Funcția „compile” este una dintre sarcinile încorporate în „hardhat”. + +Din linia de comandă, rulați: + + npx hardhat compile + +Dacă primiți un mesaj cu privire la indicatorul de licență SPDX care nu este furnizat în fișierul sursă, nu trebuie să vă îngrijorați — sperăm că tot restul arată bine! Dacă nu, puteți oricând să trimiteți un mesaj pe canalul [Discord Alchemy](https://discord.gg/u72VCg3). + +## Etapa 15: Scrierea scriptului nostru de implementare {#write-deploy} + +Odată ce avem contractul nostru scris și fișierul de configurare gata, putem să scriem scriptul de implementare al contractului. + +Navigați în dosarul `scripts/` și creați un nou fișier numit `deploy.js`, adăugându-i următorul conținut: + +```js +async function main() { + const MyNFT = await ethers.getContractFactory("MyNFT") + + // Start deployment, returning a promise that resolves to a contract object + const myNFT = await MyNFT.deploy() + await myNFT.deployed() + console.log("Contract deployed to address:", myNFT.address) +} + +main() + .then(() => process.exit(0)) + .catch((error) => { + console.error(error) + process.exit(1) + }) +``` + +[Tutorialul despre contracte](https://hardhat.org/tutorial/testing-contracts.html#writing-tests) al Hardhat explică foarte bine ce face fiecare dintre aceste linii de cod, iar noi am adoptat explicațiile acestuia aici. + + const MyNFT = await ethers.getContractFactory("MyNFT"); + +Un ContractFactory este o abstracție utilizată în „ethers.js” pentru a implementa noi contracte inteligente, deci „MyNTF” aici este o fabrică pentru instanțele contractului nostru NFT. Când utilizați plugin-ul „hardhat-ethers”, instanțele ContractFactory și Contract sunt conectate în mod implicit la primul semnatar. + + const myNFT = await MyNFT.deploy(); + +Apelarea „deploy()” pe un „ContractFactory” va începe implementarea și va răspunde printr-un „Promise” care va rezolva pe un „Contract”. Acesta este obiectul care are o metodă pentru fiecare dintre funcțiile noastre de contract inteligent. + +## Etapa 16: Implementarea contractului nostru {#deploy-contract} + +În sfârșit, suntem gata să implementăm contractul nostru inteligent! Navigați înapoi la rădăcina directorului proiectului dvs. și rulaţi în linia de comandă: + + npx hardhat --network ropsten run scripts/deploy.js + +Ar trebui să vedeți ceva de genul: + + Contract deployed to address: 0x81c587EB0fE773404c42c1d2666b5f557C470eED + +Dacă mergem pe [„Ropsten etherscan”](https://ropsten.etherscan.io/) și căutăm adresa contractului nostru, ar trebui să vedem că acesta a fost implementat cu succes. Tranzacția va arăta cam așa: + +![Vizualizați adresa tranzacției dvs. pe Etherscan](./etherscan-sepolia-tx-details.png) + +Adresa „From” (De la) ar trebui să corespundă cu adresa contului MetaMask, iar adresa „To” (Către) va preciza „Contract Creation” (Crearea contractului). Dacă facem clic pe tranzacție, vom vedea adresa contractului nostru în câmpul „To”: + +![Vizualizați adresa contractului dvs. pe Etherscan](./etherscan-sepoila-contract-creation.png) + +Yasssss! Tocmai v-ați implementat contractul inteligent NFT în lanțul Ethereum! + +Pentru a înțelege ce se întâmplă în culise, să navigăm la fila Explorer din [tabloul de bord Alchemy](https://dashboard.alchemyapi.io/explorer). Dacă aveți mai multe aplicații Alchimy, asigurați-vă că filtrați după aplicație și selectați „MyNFT”. + +![Vizualizați apelurile efectuate „în culise” cu Tabloul de bord al exploratorului Alchemy](./alchemy-explorer-goerli.png) + +Aici veți vedea o serie de apeluri JSON-RPC pe care Hardhat/Ethers le-a făcut în culise pentru noi atunci când am apelat funcția .deploy(). Este important de menţionat două dintre acestea aici: [eth_sendRawTransaction](/developers/docs/apis/json-rpc/#eth_sendrawtransaction), care este solicitarea de a scrie efectiv contractul nostru în lanțul Ropsten, și [eth_getTransactionByHash](/developers/docs/apis/json-rpc/#eth_gettransactionbyhash), care este o solicitare de a citi informații despre tranzacția noastră având în vedere hash-ul (un model tipic în cazul tranzacțiilor). Dacă doriți să aflați mai multe despre trimiterea de tranzacții, consultați acest tutorial despre [trimiterea de tranzacții utilizând Web3](/developers/tutorials/sending-transactions-using-web3-and-alchemy/). + +Asta e tot pentru partea 1 a acestui tutorial. În [Partea a 2-a vom interacționa efectiv cu contractul nostru inteligent prin emiterea unui NFT](/developers/tutorials/how-to-mint-an-nft/), iar în [Partea a 3-a vă vom arăta cum să vă vizualizați NFT-ul în portofelul Ethereum](/developers/tutorials/how-to-view-nft-in-metamask/)! diff --git a/src/content/translations/ro/developers/tutorials/interact-with-other-contracts-from-solidity/index.md b/public/content/translations/ro/developers/tutorials/interact-with-other-contracts-from-solidity/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/interact-with-other-contracts-from-solidity/index.md rename to public/content/translations/ro/developers/tutorials/interact-with-other-contracts-from-solidity/index.md diff --git a/src/content/translations/ro/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md b/public/content/translations/ro/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md rename to public/content/translations/ro/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md diff --git a/src/content/translations/ro/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md b/public/content/translations/ro/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md rename to public/content/translations/ro/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md diff --git a/src/content/translations/ro/developers/tutorials/logging-events-smart-contracts/index.md b/public/content/translations/ro/developers/tutorials/logging-events-smart-contracts/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/logging-events-smart-contracts/index.md rename to public/content/translations/ro/developers/tutorials/logging-events-smart-contracts/index.md diff --git a/src/content/translations/ro/developers/tutorials/merkle-proofs-for-offline-data-integrity/index.md b/public/content/translations/ro/developers/tutorials/merkle-proofs-for-offline-data-integrity/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/merkle-proofs-for-offline-data-integrity/index.md rename to public/content/translations/ro/developers/tutorials/merkle-proofs-for-offline-data-integrity/index.md diff --git a/src/content/translations/ro/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md b/public/content/translations/ro/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md rename to public/content/translations/ro/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md diff --git a/src/content/translations/ro/developers/tutorials/nft-minter/index.md b/public/content/translations/ro/developers/tutorials/nft-minter/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/nft-minter/index.md rename to public/content/translations/ro/developers/tutorials/nft-minter/index.md diff --git a/src/content/translations/ro/developers/tutorials/optimism-std-bridge-annotated-code/index.md b/public/content/translations/ro/developers/tutorials/optimism-std-bridge-annotated-code/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/optimism-std-bridge-annotated-code/index.md rename to public/content/translations/ro/developers/tutorials/optimism-std-bridge-annotated-code/index.md diff --git a/src/content/translations/ro/developers/tutorials/run-light-node-geth/index.md b/public/content/translations/ro/developers/tutorials/run-light-node-geth/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/run-light-node-geth/index.md rename to public/content/translations/ro/developers/tutorials/run-light-node-geth/index.md diff --git a/src/content/translations/ro/developers/tutorials/run-node-raspberry-pi/index.md b/public/content/translations/ro/developers/tutorials/run-node-raspberry-pi/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/run-node-raspberry-pi/index.md rename to public/content/translations/ro/developers/tutorials/run-node-raspberry-pi/index.md diff --git a/src/content/translations/ro/developers/tutorials/secure-development-workflow/index.md b/public/content/translations/ro/developers/tutorials/secure-development-workflow/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/secure-development-workflow/index.md rename to public/content/translations/ro/developers/tutorials/secure-development-workflow/index.md diff --git a/src/content/translations/ro/developers/tutorials/send-token-ethersjs/index.md b/public/content/translations/ro/developers/tutorials/send-token-ethersjs/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/send-token-ethersjs/index.md rename to public/content/translations/ro/developers/tutorials/send-token-ethersjs/index.md diff --git a/src/content/translations/ro/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md b/public/content/translations/ro/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md rename to public/content/translations/ro/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md diff --git a/src/content/translations/ro/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md b/public/content/translations/ro/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md rename to public/content/translations/ro/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md diff --git a/src/content/translations/ro/developers/tutorials/smart-contract-security-guidelines/index.md b/public/content/translations/ro/developers/tutorials/smart-contract-security-guidelines/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/smart-contract-security-guidelines/index.md rename to public/content/translations/ro/developers/tutorials/smart-contract-security-guidelines/index.md diff --git a/src/content/translations/ro/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md b/public/content/translations/ro/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md rename to public/content/translations/ro/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md diff --git a/src/content/translations/ro/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md b/public/content/translations/ro/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md rename to public/content/translations/ro/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md diff --git a/src/content/translations/ro/developers/tutorials/testing-smart-contract-with-waffle/index.md b/public/content/translations/ro/developers/tutorials/testing-smart-contract-with-waffle/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/testing-smart-contract-with-waffle/index.md rename to public/content/translations/ro/developers/tutorials/testing-smart-contract-with-waffle/index.md diff --git a/src/content/translations/ro/developers/tutorials/the-graph-fixing-web3-data-querying/index.md b/public/content/translations/ro/developers/tutorials/the-graph-fixing-web3-data-querying/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/the-graph-fixing-web3-data-querying/index.md rename to public/content/translations/ro/developers/tutorials/the-graph-fixing-web3-data-querying/index.md diff --git a/src/content/translations/ro/developers/tutorials/token-integration-checklist/index.md b/public/content/translations/ro/developers/tutorials/token-integration-checklist/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/token-integration-checklist/index.md rename to public/content/translations/ro/developers/tutorials/token-integration-checklist/index.md diff --git a/src/content/translations/ro/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md b/public/content/translations/ro/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md rename to public/content/translations/ro/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md diff --git a/src/content/translations/ro/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md b/public/content/translations/ro/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md rename to public/content/translations/ro/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md diff --git a/src/content/translations/ro/developers/tutorials/uniswap-v2-annotated-code/index.md b/public/content/translations/ro/developers/tutorials/uniswap-v2-annotated-code/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/uniswap-v2-annotated-code/index.md rename to public/content/translations/ro/developers/tutorials/uniswap-v2-annotated-code/index.md diff --git a/src/content/translations/ro/developers/tutorials/using-websockets/index.md b/public/content/translations/ro/developers/tutorials/using-websockets/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/using-websockets/index.md rename to public/content/translations/ro/developers/tutorials/using-websockets/index.md diff --git a/public/content/translations/ro/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md b/public/content/translations/ro/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md new file mode 100644 index 00000000000..7dfe1274a9e --- /dev/null +++ b/public/content/translations/ro/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md @@ -0,0 +1,298 @@ +--- +title: "Waffle: Simularea dinamică și testarea apelurilor de contracte" +description: Tutorial Waffle avansat de folosire a simulării dinamice și testarea apelurilor de contracte +author: "Daniel Izdebski" +tags: + - "waffle" + - "contracte inteligente" + - "solidity" + - "testare" + - "simulare" +skill: intermediate +lang: ro +published: 2020-11-14 +--- + +## Care este obiectul acestui tutorial? {#what-is-this-tutorial-about} + +În acest tutorial veți învăța: + +- cum să utilizați simularea dinamică +- cum să testați interacțiunile dintre contractele inteligente + +Ipoteze: + +- știți deja cum să scrieți un contract inteligent simplu în `Solidity` +- știți cum să utilizați `JavaScript` și `TypeScript` +- ați parcurs alte tutoriale `Waffle` sau știți câte ceva despre acesta + +## Simulare dinamică {#dynamic-mocking} + +De ce este utilă simularea dinamică? Ei bine, ne permite să scriem teste unitare în loc de teste de integrare. Ce înseamnă aceasta? Înseamnă că nu trebuie să ne preocupăm de dependențele dintre contractele inteligente, astfel că le putem testa pe fiecare separat de celelalte. Permiteți-mi să vă arăt cum anume puteți face acest lucru. + +### **1. Proiect** {#1-project} + +Înainte de a începe, trebuie să pregătim un proiect simplu node.js: + +```bash +$ mkdir dynamic-mocking +$ cd dynamic-mocking +$ mkdir contracts src + +$ yarn init +# sau dacă utilizezi npm +$ npm init +``` + +Să începem adăugând typescript și testând dependențele - mocha & chai: + +```bash +$ yarn add --dev @types/chai @types/mocha chai mocha ts-node typescript +# sau dacă utilizezi npm +$ npm install @types/chai @types/mocha chai mocha ts-node typescript --save-dev +``` + +Acum să adăugăm `Waffle` și `ether`-ul: + +```bash +$ yarn add --dev ethereum-waffle ethers +# sau dacă utilizezi npm +$ npm install ethereum-waffle ethers --save-dev +``` + +Acum structura proiectului dvs. ar trebui să fie: + +``` +. +├── contracts +├── package.json +└── test +``` + +### **2. Contracte inteligente** {#2-smart-contract} + +Pentru a începe simularea dinamică, avem nevoie de un contract inteligent cu dependențe. Nu vă faceți griji, vă ajutăm noi! + +Iată un contract inteligent simplu scris în `Solidity` al cărui unic scop este să verificăm dacă suntem bogați. Acesta folosește tokenul ERC20 pentru a verifica dacă avem suficiente tokenuri. Să spunem că avem `./contracts/AmIRichAlready.sol`. + +```solidity +pragma solidity ^0.6.2; + +interface IERC20 { + function balanceOf(address account) external view returns (uint256); +} + +contract AmIRichAlready { + IERC20 private tokenContract; + uint public richness = 1000000 * 10 ** 18; + + constructor (IERC20 _tokenContract) public { + tokenContract = _tokenContract; + } + + function check() public view returns (bool) { + uint balance = tokenContract.balanceOf(msg.sender); + return balance > richness; + } +} +``` + +Deoarece vrem să folosim simularea dinamică, nu avem nevoie de întregul ERC20, de aceea folosim interfața IERC20 cu o singură funcție. + +A venit momentul să construim acest contract! Pentru aceasta vom folosi `Waffle`. În primul rând, vom crea un fișier simplu de configurare `Waffle.json` care specifică opțiunile de compilare. + +```json +{ + "compilerType": "solcjs", + "compilerVersion": "0.6.2", + "sourceDirectory": "./contracts", + "outputDirectory": "./build" +} +``` + +Acum suntem gata să construim contractul cu Waffle: + +```bash +$ npx waffle +``` + +E simplu, nu? În directorul `build/` au apărut două fișiere corespunzătoare contractului și interfeței. Le vom folosi mai târziu pentru testare. + +### **3. Testare** {#3-testing} + +Să creăm un fișier numit `AmIRichAlready.test.ts` pentru a testa ca atare. În primul rând, trebuie să ne ocupăm de importuri. Vom avea nevoie de ele pentru mai târziu: + +```typescript +import { expect, use } from "chai" +import { Contract, utils, Wallet } from "ethers" +import { + deployContract, + deployMockContract, + MockProvider, + solidity, +} from "ethereum-waffle" +``` + +Cu excepția dependențelor JS, trebuie să importăm contractul și interfața pe are le-am construit: + +```typescript +import IERC20 from "../build/IERC20.json" +import AmIRichAlready from "../build/AmIRichAlready.json" +``` + +Waffle folosește `chai` pentru testare. Cu toate acestea, înainte de a-l putea folosi, trebuie să injectăm validatori-matcher Waffle chiar în chai: + +```typescript +use(solidity) +``` + +Trebuie să implementăm funcția `beforeEach()`, care va reseta starea contractului înainte de fiecare test. Să ne gândim mai întâi la ce ne trebuie acolo. Pentru a implementa un contract avem nevoie de două lucruri: (1) un portofel și (2) un contract ERC20 implementat pe care să îl transmitem ca argument pentru contractul `AmIRichAlready`. + +În primul rând creăm un portofel: + +```typescript +const [wallet] = new MockProvider().getWallets() +``` + +Apoi trebuie să implementăm un contract ERC20. Partea dificilă este că avem doar o interfață. Aici apare Waffle să ne salveze. Waffle are o funcție magică `deployMockContract ()` care creează un contract folosind doar _abi_-ul interfeței: + +```typescript +const mockERC20 = await deployMockContract(wallet, IERC20.abi) +``` + +Acum, având portofelul și ERC20 implementate, putem continua implementând contractul ` AmIRichAlready`: + +```typescript +const contract = await deployContract(wallet, AmIRichAlready, [ + mockERC20.address, +]) +``` + +După toate acestea, am terminat cu funcția noastră `beforeEach()`. La acest moment fișierul dvs. `AmIRichAlready.test.ts` se prezintă astfel: + +```typescript +import { expect, use } from "chai" +import { Contract, utils, Wallet } from "ethers" +import { + deployContract, + deployMockContract, + MockProvider, + solidity, +} from "ethereum-waffle" + +import IERC20 from "../build/IERC20.json" +import AmIRichAlready from "../build/AmIRichAlready.json" + +use(solidity) + +describe("Am I Rich Already", () => { + let mockERC20: Contract + let contract: Contract + let wallet: Wallet + + beforeEach(async () => { + ;[wallet] = new MockProvider().getWallets() + mockERC20 = await deployMockContract(wallet, IERC20.abi) + contract = await deployContract(wallet, AmIRichAlready, [mockERC20.address]) + }) +}) +``` + +Să scriem primul test al contractului `AmIRichAlready`. Ce credeți că trebuie să testăm? Da, așa este! Trebuie să verificăm dacă ne-am îmbogățit :) + +Dar stați puțin. Cum va ști contractul nostru simulat prin ce valori să răspundă? Nu am implementat nicio logică pentru funcția `balanceOf()`. Dar Waffle ne ajută din nou. Contractul nostru simulat comportă acum niște șmecherii: + +```typescript +await mockERC20.mock..returns() +await mockERC20.mock..withArgs().returns() +``` + +Cunoscând acestea, ne putem scrie în sfârșit primul test: + +```typescript +it("returnează fals dacă portofelul are mai puțin de 1000000 tokenuri", async () => { + await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) + expect(await contract.check()).to.be.equal(false) +}) +``` + +Să descompunem acest test în mai multe părți: + +1. Ne-am configurat contractul simulat ERC20 ca să răspundă întotdeauna prin soldul de 999999 de tokenuri. +2. Verificați dacă prin metoda `contract.check()` obțineți răspunsul `false`. + +Suntem gata să dăm drumul fiarei: + +![A trecut un test](./test-one.png) + +Deci a trecut cu bine testul, dar... mai sunt necesare ameliorări. Funcția `balanceOf()` va răspunde întotdeauna prin 99999. Se poate evita acest lucru dacă indicăm un portofel pentru care funcția trebuie să dea un răspuns - la fel ca un contract real: + +```typescript +it("returnează fals dacă portofelul are mai puțin de 1000001 tokenuri", async () => { + await mockERC20.mock.balanceOf + .withArgs(wallet.address) + .returns(utils.parseEther("999999")) + expect(await contract.check()).to.be.equal(false) +}) +``` + +Până acum am testat doar cazul în care nu suntem suficient de bogați. Să testăm și contrariul: + +```typescript +it("returnează true dacă portofelul are cel puțin 1000001 tokenuri", async () => { + await mockERC20.mock.balanceOf + .withArgs(wallet.address) + .returns(utils.parseEther("1000001")) + expect(await contract.check()).to.be.equal(true) +}) +``` + +Rulați testele... + +![A trecut două teste](test-two.png) + +...și iată! Contractul nostru pare să funcționeze cum trebuie :) + +## Testarea apelurilor de contracte {#testing-contract-calls} + +Să rezumăm ce am făcut până acum. Am testat funcționalitatea contractului nostru `AmIRichAlready` și se pare că funcționează corect. Asta înseamnă că am terminat, nu? Nu chiar! Waffle ne permite să mai testăm contractul. Dar cum anume? Ei bine, în arsenalul Waffle există doi validatori-matcher, `calledOnContract()` și `calledOnContractWith()`. Ei ne vor permite să verificăm dacă nu cumva contractul nostru a apelat contractul simulat ERC20. Iată un test simplu cu unul dintre acești validatori-matcher: + +```typescript +it("contractul nostru este verificat dacă a apelat balanceOf pe tokenul ERC20", async () => { + await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) + await contract.check() + expect("balanceOf").to.be.calledOnContract(mockERC20) +}) +``` + +Putem merge chiar mai departe pentru a ameliora acest test cu celălalt validator-matcher despre care v-am vorbit: + +```typescript +it("contractul nostru este verificat dacă a apelat balanceOf cu un anumit portofel pe tokenul ERC20", async () => { + await mockERC20.mock.balanceOf + .withArgs(wallet.address) + .returns(utils.parseEther("999999")) + await contract.check() + expect("balanceOf").to.be.calledOnContractWith(mockERC20, [wallet.address]) +}) +``` + +Să verificăm dacă testele sunt corecte: + +![A trecut trei teste](test-three.png) + +Super, a trecut cu verde toate testele. + +Testarea apelurilor de contracte cu Waffle este foarte ușoară. Și iată ce este grozav în această privință. Acești validatori-matcher funcționează și cu contracte normale, și cu cele simulate! Aceasta deoarece Waffle înregistrează și filtrează apelurile EVM în loc să injecteze cod, ca în cazul bibliotecilor populare de testare pentru alte tehnologii. + +## Linia de sosire {#the-finish-line} + +Felicitări! Acum știți cum să folosiți Waffle pentru a testa în mod dinamic apelurile de contracte și contractele simulate. Există mult mai multe funcționalități interesante de descoperit. Vă recomandăm să studiați în profunzime documentația Waffle. + +Documentația Waffle este disponibilă [aici](https://ethereum-waffle.readthedocs.io/). + +Codul sursă pentru acest tutorial se află [aici](https://github.com/EthWorks/Waffle/tree/master/examples/dynamic-mocking-and-testing-calls). + +Alte tutoriale care vă pot interesa: + +- [Testarea contractelor inteligente cu Waffle](/developers/tutorials/testing-smart-contract-with-waffle/) diff --git a/src/content/translations/ro/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md b/public/content/translations/ro/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md similarity index 100% rename from src/content/translations/ro/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md rename to public/content/translations/ro/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md diff --git a/src/content/translations/ro/eips/index.md b/public/content/translations/ro/eips/index.md similarity index 100% rename from src/content/translations/ro/eips/index.md rename to public/content/translations/ro/eips/index.md diff --git a/src/content/translations/ro/energy-consumption/index.md b/public/content/translations/ro/energy-consumption/index.md similarity index 100% rename from src/content/translations/ro/energy-consumption/index.md rename to public/content/translations/ro/energy-consumption/index.md diff --git a/src/content/translations/ro/enterprise/index.md b/public/content/translations/ro/enterprise/index.md similarity index 100% rename from src/content/translations/ro/enterprise/index.md rename to public/content/translations/ro/enterprise/index.md diff --git a/src/content/translations/ro/enterprise/private-ethereum/index.md b/public/content/translations/ro/enterprise/private-ethereum/index.md similarity index 100% rename from src/content/translations/ro/enterprise/private-ethereum/index.md rename to public/content/translations/ro/enterprise/private-ethereum/index.md diff --git a/src/content/translations/ro/foundation/index.md b/public/content/translations/ro/foundation/index.md similarity index 100% rename from src/content/translations/ro/foundation/index.md rename to public/content/translations/ro/foundation/index.md diff --git a/src/content/translations/ro/glossary/index.md b/public/content/translations/ro/glossary/index.md similarity index 100% rename from src/content/translations/ro/glossary/index.md rename to public/content/translations/ro/glossary/index.md diff --git a/src/content/translations/ro/governance/index.md b/public/content/translations/ro/governance/index.md similarity index 100% rename from src/content/translations/ro/governance/index.md rename to public/content/translations/ro/governance/index.md diff --git a/public/content/translations/ro/history/index.md b/public/content/translations/ro/history/index.md new file mode 100644 index 00000000000..ccdd92cc304 --- /dev/null +++ b/public/content/translations/ro/history/index.md @@ -0,0 +1,399 @@ +--- +title: Istoricul şi fork-urile lui Ethereum +description: Un istoric al blockchain-ului Ethereum care cuprinde repere majore, lansări și fork-uri. +lang: ro +sidebarDepth: 1 +--- + +# Istoricul lui Ethereum {#the-history-of-ethereum} + +O cronologie a tuturor reperelor majore, a fork-urilor și actualizărilor blockchain-ului Ethereum. + + + +Fork-urile apar atunci când trebuie făcute actualizări tehnice sau modificări majore în rețea – acestea provin de obicei din [Propunerile de îmbunătățire pentru Ethereum (EIP)](/eips/) și modifică „regulile” protocolului. + +Atunci când sunt necesare actualizări în software-ul tradițional, controlat central, compania doar va publica o nouă versiune pentru utilizatorul final. Blockchain-ul funcționează diferit, deoarece nu există proprietate centrală. [Clienții Ethereum](/developer/docs/nodes-and-clients/) trebuie să își actualizeze software-ul pentru a implementa noile reguli de fork-uri. În plus, creatorii de blocuri (miner-ii într-o lume a dovezii-muncii, validatorii într-o lume a dovezii-mizei) și nodurile trebuie să creeze blocuri și să valideze conform noilor reguli. [Mai multe despre mecanismele de consesn]/(developers/docs/consensus-mechanisms/) + +Aceste schimbări de reguli pot crea o separare temporară în rețea. Pot fi produse blocuri noi conform regulilor noi sau celor vechi. Se convine în avans asupra creării fork-urilor, astfel încât clienții să adopte schimbările la unison și fork-ul cu actualizările să devină lanțul principal. Cu toate acestea, în cazuri rare, dezacordurile asupra fork-urilor pot determina divizarea permanentă a rețelei – cea mai cunoscută fiind crearea lui Ethereum Classic cu [fork-ul DAO](#dao-fork). + + + +Sunteți în căutarea unor viitoare actualizări ale protocolului? [Aflați despre viitoarele actualizări ale lui Ethereum](/roadmap/). + + + +## 2021 {#2021} + +### Arrow Glacier {#arrow-glacier} + + + +#### Rezumat {#arrow-glacier-summary} + +Actualizarea Arrow Glacier a amânat [bomba de dificultate](/glossary/#difficulty-bomb) cu câteva luni. Aceasta este singura modificare introdusă în această actualizare și este similară ca natură cu actualizarea [Muir Glacier](#muir-glacier). Modificări similare au fost efectuate cu actualizările [Byzantium](#byzantium), [Constantinople](#constantinople) și [Londra](#london) ale reţelei. + +- [Blogul EF - Anunțul actualizării Arrow Glacier](https://blog.ethereum.org/2021/11/10/arrow-glacier-announcement/) +- [Ethereum Cat Herders - Actualizarea Ethereum Arrow Glacier](https://medium.com/ethereum-cat-herders/ethereum-arrow-glacier-upgrade-e8d20fa4c002) + + + +- [EIP-4345](https://eips.ethereum.org/EIPS/eip-4345) – _amână bomba de dificultate până în iunie 2022_ + + + +#### Operatorii de noduri {#arrow-glacier-node-operators} + +Aveţi grijă să vă actualizați software-ul client la versiunea cea mai recentă înainte de 5 decembrie 2021, pentru a justifica timpii de bloc variabili. Aceasta va evita sincronizarea clientului dvs. cu un lanț pre-fork, care va avea ca rezultat imposibilitatea de a trimite fonduri sau de a verifica în mod corect tranzacțiile. + +--- + +### Altair {#altair} + + + +#### Rezumat {#altair-summary} + +Actualizarea Altair a fost prima actualizare programată pentru [Lanțul Beacon](/roadmap/beacon-chain). A adăugat acceptarea „comitetelor de sincronizare”—prin activarea clienților light (ușori) și aducând penalităţi pentru inactivitatea și slashing-ul validatorului la valorile lor maxime. + +- [Citiţi specificaţiile actualizărilor Altair](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) + +#### Un fapt amuzant! {#altair-fun-fact} + +Altair a fost prima actualizare majoră a rețelei care a avut o dată exactă de lansare. Toate actualizările anterioare s-au bazat pe un număr de bloc declarat pe lanțul dovezii-muncii (PoW), unde timpii de bloc variază. Lanțul Beacon nu necesită rezolvarea de calcule ca dovadă-a-muncii (PoW), ci funcționează pe un sistem de epoci bazate pe timp, sistem care constă din 32 de „sloturi” de timp de 12 secunde în care validatorii pot propune blocuri. Acesta este motivul pentru care am știut exact când vom atinge epoca 74.240 și Altair va deveni funcțional! + +- [Beaconcha.in Glosar - Sloturi](https://kb.beaconcha.in/glossary#slots) + +--- + +### Londra {#london} + + + +#### Rezumat {#london-summary} + +Actualizarea Londra a introdus [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559), care a reformat piața de taxe de tranzacționare, precum și schimbările modului de gestionare a rambursărilor de gaz și ale programării [Erei glaciare](/glossary/#ice-age). + +- [Sunteți dezvoltator de aplicații dApp? Aveţi grijă să vă actualizați bibliotecile și instrumentele.](https://github.com/ethereum/eth1.0-specs/blob/master/network-upgrades/ecosystem-readiness.md) +- [Citiţi anunțul Fundației Ethereum](https://blog.ethereum.org/2021/07/15/london-mainnet-announcement/) +- [Citiţi explicatorul Ethereum Cat Herder](https://medium.com/ethereum-cat-herders/london-upgrade-overview-8eccb0041b41) + + + +- [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) – _îmbunătățește piața taxelor de tranzacționare_. +- [EIP-3198](https://eips.ethereum.org/EIPS/eip-3198) – _returnează `BASEFEE` de la un bloc_. +- [EIP-3529](https://eips.ethereum.org/EIPS/eip-3529) – _reduce rambursările de gaz pentru operațiunile EVM_. +- [EIP-3541](https://eips.ethereum.org/EIPS/eip-3541) – _împiedică implementarea contractelor care încep cu `0xEF`_ +- [EIP-3554](https://eips.ethereum.org/EIPS/eip-3554) – _întârzie Era glaciară până în decembrie 2021_ + + + +--- + +### Berlin {#berlin} + + + +#### Rezumat {#berlin-summary} + +Actualizarea Berlin a optimizat costul gazului pentru anumite acțiuni EVM și crește acceptarea mai multor tipuri de tranzacții. + +- [Citiţi anunțul Fundației Ethereum](https://blog.ethereum.org/2021/03/08/ethereum-berlin-upgrade-announcement/) +- [Citiţi explicatorul Ethereum Cat Herder](https://medium.com/ethereum-cat-herders/the-berlin-upgrade-overview-2f7ad710eb80) + + + +- [EIP-2565](https://eips.ethereum.org/EIPS/eip-2565) – _reduce costul gazului ModExp_. +- [EIP-2718](https://eips.ethereum.org/EIPS/eip-2718) – _permite acceptarea mai ușoară a mai multor tipuri de tranzacții_. +- [EIP-2929](https://eips.ethereum.org/EIPS/eip-2929) – _crește costul gazului pentru opcodurile accesului la stare_. +- [EIP-2930](https://eips.ethereum.org/EIPS/eip-2930) – _adăugă liste de acces opționale_ + + + + + +## 2020 {#2020} + +### Geneza Lanțului Beacon {#beacon-chain-genesis} + + + +#### Rezumat {#beacon-chain-genesis-summary} + +[Lanțul Beacon](/roadmap/beacon-chain/) avea nevoie de 16384 de depozite de 32 de ETH mizați pentru a transfera în siguranță. Acest lucru se întâmpla pe 27 noiembrie, ceea ce înseamnă că Lanțul Beacon a început să producă blocuri pe 1 decembrie 2020. Acesta este primul pas important în realizarea [viziunii Ethereum](/roadmap/vision/). + +[Citiţi anunțul Fundației Ethereum](https://blog.ethereum.org/2020/11/27/eth2-quick-update-no-21/) + + + Lanțul Beacon + + +--- + +### S-a implementat contractul de depunere a mizei {#staking-deposit-contract} + + + +#### Rezumat {#deposit-contract-summary} + +Contractul de depunere a mizei a introdus [mizarea](/glossary/#staking) în ecosistemul Ethereum. Cu toate că este un contract pe [Mainnet](/glossary/#mainnet), acesta a avut un impact direct asupra termenului de lansare a [Lanțului Beacon](/roadmap/beacon-chain/), o importantă [actualizare Ethereum](/roadmap/). + +[Citiţi anunțul Fundației Ethereum](https://blog.ethereum.org/2020/11/04/eth2-quick-update-no-19/) + + + Mizarea + + +--- + +### Muir Glacier {#muir-glacier} + + + +#### Rezumat {#muir-glacier-summary} + +Fork-ul Muir Glacier a introdus o întârziere a [bombei de dificultate](/glossary/#difficulty-bomb). Creșterea dificultăţii blocului în mecanismul de consens bazat pe [dovada-muncii](/developers/docs/consensus-mechanisms/pow/) ameninţa să degradeze calitățile funcționale ale lui Ethereum prin creșterea timpului de așteptare pentru trimiterea tranzacțiilor și folosirea aplicațiilor dapp. + +- [Citiţi anunțul Fundației Ethereum](https://blog.ethereum.org/2019/12/23/ethereum-muir-glacier-upgrade-announcement/) +- [Citiţi explicatorul Ethereum Cat Herder](https://medium.com/ethereum-cat-herders/ethereum-muir-glacier-upgrade-89b8cea5a210) + + + +- [EIP-2384](https://eips.ethereum.org/EIPS/eip-2384) – _întârzie bomba de dificultate cu încă 4.000.000 de blocuri sau ~611 zile._ + + + + + +## 2019 {#2019} + +### Istanbul {#istanbul} + + + +#### Rezumat {#istanbul-summary} + +Fork-ul Istanbul: + +- A optimizat costul [gazului](/glossary/#gas) pentru anumite acțiuni din [EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine). +- A îmbunătățit rezistența la atacul prin refuzul-serviciului. +- Made [Layer 2 scaling](/developers/docs/scaling/#layer-2-scaling) solutions based on SNARKs and STARKs more performant. +- A permis interoperabilitatea dintre Ethereum și Zcash. +- A permis contractelor să introducă funcții mai ingenioase. + +[Citiţi anunțul Fundației Ethereum](https://blog.ethereum.org/2019/11/20/ethereum-istanbul-upgrade-announcement/) + + + +- [EIP-152](https://eips.ethereum.org/EIPS/eip-152) – _allow Ethereum to work with privacy-preserving currency like Zcash._ +- [EIP-1108](https://eips.ethereum.org/EIPS/eip-1108) – _cheaper cryptography to improve [gas](/glossary/#gas) costs._ +- [EIP-1344](https://eips.ethereum.org/EIPS/eip-1344) – _protects Ethereum against replay attacks by adding `CHAINID` [opcode](/developers/docs/ethereum-stack/#ethereum-virtual-machine)._ +- [EIP-1884](https://eips.ethereum.org/EIPS/eip-1884) – _optimising opcode gas prices based on consumption._ +- [EIP-2028](https://eips.ethereum.org/EIPS/eip-2028) – _reduces the cost of CallData to allow more data in blocks – good for [Layer 2 scaling](/developers/docs/scaling/#layer-2-scaling)._ +- [EIP-2200](https://eips.ethereum.org/EIPS/eip-2200) – _other opcode gas price alterations._ + + + +--- + +### Constantinopol {#constantinople} + + + +#### Rezumat {#constantinople-summary} + +Fork-ul Constantinopol: + +- A asigurat ca blockchain-ul să nu înghețe înainte de [implementarea dovezii-mizei](#beacon-chain-genesis). +- A optimizat costul [gazului](/glossary/#gas) anumitor acțiuni din [EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine). +- A adăugat capacitatea de a interacționa cu adrese care nu au fost create încă. + +[Citiţi anunțul Fundației Ethereum](https://blog.ethereum.org/2019/02/22/ethereum-constantinople-st-petersburg-upgrade-announcement/) + + + +- [EIP-145](https://eips.ethereum.org/EIPS/eip-145) – _optimizează costul anumitor acțiuni on-chain._ +- [EIP-1014](https://eips.ethereum.org/EIPS/eip-1014) – _vă permite să interacționaţi cu adrese care nu au fost create încă._ +- [EIP-1052](https://eips.ethereum.org/EIPS/eip-1052) – _optimizează costul anumitor acțiuni on-chain._ +- [EIP-1234](https://eips.ethereum.org/EIPS/eip-1234) – _garantează că blockchain-ul nu îngheață înainte de a se implementa dovada-mizei._ + + + + + +## 2017 {#2017} + +### Byzantium {#byzantium} + + + +#### Rezumat {#byzantium-summary} + +Fork-ul Byzantium: + +- A redus recompensele pentru [minarea](/developers/docs/consensus-mechanisms/pow/mining/) pe bloc de la 5 la 3 ETH. +- A amânat [bomba de dificultate](/glossary/#difficulty-bomb) cu un an. +- A adăugat capacitatea de a efectua apeluri care nu modifică starea către alte contracte. +- Added certain cryptography methods to allow for [layer 2 scaling](/developers/docs/scaling/#layer-2-scaling). + +[Citiţi anunțul Fundației Ethereum](https://blog.ethereum.org/2017/10/12/byzantium-hf-announcement/) + + + +- [EIP-140](https://eips.ethereum.org/EIPS/eip-140) – _adds `REVERT` opcode._ +- [EIP-658](https://eips.ethereum.org/EIPS/eip-658) – _status field added to transaction receipts to indicate success or failure._ +- [EIP-196](https://eips.ethereum.org/EIPS/eip-196) – _adds elliptic curve and scalar multiplication to allow for [ZK-Snarks](/developers/docs/scaling/zk-rollups/)._ +- [EIP-197](https://eips.ethereum.org/EIPS/eip-197) – _adds elliptic curve and scalar multiplication to allow for [ZK-Snarks](/developers/docs/scaling/zk-rollups/)._ +- [EIP-198](https://eips.ethereum.org/EIPS/eip-198) – _enables RSA signature verification._ +- [EIP-211](https://eips.ethereum.org/EIPS/eip-211) – _adds support for variable length return values._ +- [EIP-214](https://eips.ethereum.org/EIPS/eip-214) – _adds `STATICCALL` opcode, allowing non-state-changing calls to other contracts._ +- [EIP-100](https://eips.ethereum.org/EIPS/eip-100) – _changes difficulty adjustment formula._ +- [EIP-649](https://eips.ethereum.org/EIPS/eip-649) – _delays [difficulty bomb](/glossary/#difficulty-bomb) by 1 year and reduces block reward from 5 to 3 ETH._ + + + + + +## 2016 {#2016} + +### Spurious Dragon {#spurious-dragon} + + + +#### Rezumat {#spurious-dragon-summary} + +Fork-ul Spurious Dragon a fost al doilea răspuns la atacurile prin refuzul-serviciului (DoS) din rețea (septembrie/octombrie 2016), incluzând: + +- reglarea prețurilor de opcode pentru a preveni atacurile viitoare asupra rețelei. +- permiterea „reducerii” stării blockchain-ului. +- adăugarea protecției împotriva atacurilor de reluare. + +[Citiţi anunțul Fundației Ethereum](https://blog.ethereum.org/2016/11/18/hard-fork-no-4-spurious-dragon/) + + + +- [EIP-155](https://eips.ethereum.org/EIPS/eip-155) – _împiedică tranzacțiile dintr-un lanț Ethereum să fie retransmise pe un lanț alternativ, de exemplu o tranzacție testnet care este retransmisă pe lanțul principal Ethereum._ +- [EIP-160](https://eips.ethereum.org/EIPS/eip-160) – _ajustează prețurile opcode-ului `EXP` – face mai dificilă încetinirea rețelei prin intermediul unor operațiuni contractuale costisitoare din punct de vedere al calculelor_ +- [EIP-161](https://eips.ethereum.org/EIPS/eip-161) – _permite eliminarea conturilor goale adăugate prin atacurile DOS._ +- [EIP-170](https://eips.ethereum.org/EIPS/eip-170) – _modifică dimensiunea maximă a codului pe care îl poate avea un contract pe blockchain – la 24576 octeți._ + + + +--- + +### Tangerine whistle {#tangerine-whistle} + + + +#### Rezumat {#tangerine-whistle-summary} + +Fork-ul Tangerine Whistle a fost primul răspuns la atacurile prin refuzul-serviciului (DoS) din rețea (septembrie/octombrie 2016), incluzând: + +- abordarea problemelor urgente de sănătate ale rețelei referitoare la codurile de funcționare subevaluate. + +[Citiţi anunțul Fundației Ethereum](https://blog.ethereum.org/2016/10/18/faq-upcoming-ethereum-hard-fork/) + + + +- [EIP-150](https://eips.ethereum.org/EIPS/eip-150) – _crește costurile gazului opcode-urilor care pot fi utilizate în atacurile spam._ +- [EIP-158](https://eips.ethereum.org/EIPS/eip-158) – _reduce dimensiunea stării prin eliminarea unui număr mare de conturi goale care au fost plasate în stare la un cost foarte scăzut din cauza erorilor din versiunile anterioare ale protocolului Ethereum._ + + + +--- + +### Fork-ul DAO {#dao-fork} + + + +#### Rezumat {#dao-fork-summary} + +Fork-ul DAO a fost un răspuns la [atacul DAO din 2016](https://www.coindesk.com/markets/2016/06/25/understanding-the-dao-attack/), în care un contract [DAO](/glossary/#dao) nesecurizat a fost golit de peste 3,6 milioane de ETH prin piratare. Fork-ul a mutat fondurile de pe contractul defectuos pe un [contract nou](https://etherscan.io/address/0xbf4ed7b27f1d666546e30d74d50d173d20bca754) cu o singură funcție: „withdraw” (retragere). Oricine a pierdut fonduri a putut retrage 1 ETH pentru fiecare 100 de tokenuri DAO din portofel. + +Această măsură a fost votată de comunitatea Ethereum. Orice deținător de ETH a putut vota printr-o tranzacție pe [o platformă de vot](http://v1.carbonvote.com/). Decizia de creare a fork-ului a întrunit peste 85% din voturi. + +Unii miner-i au refuzat să creeze fork-ul pentru că incidentul DAO nu a fost o deficienţă a protocolului. Ei au continuat să formeze [Ethereum Clasic](https://ethereumclassic.org/). + +[Citiţi anunțul Fundației Ethereum](https://blog.ethereum.org/2016/07/20/hard-fork-completed/) + +--- + +### Homestead {#homestead} + + + +#### Rezumat {#homestead-summary} + +Fork-ul Homestead care privea spre viitor. Acesta a inclus mai multe modificări ale protocolului și o schimbare de relaţionare care i-a permis lui Ethereum să efectueze noi actualizări ale reţelei. + +[Citiţi anunțul Fundației Ethereum](https://blog.ethereum.org/2016/02/29/homestead-release/) + + + +- [EIP-2](https://eips.ethereum.org/EIPS/eip-2) – _face modificări la procesul de creare a contractului._ +- [EIP-7](https://eips.ethereum.org/EIPS/eip-7) – _adaugă un nou opcode: „DELEGATECALL”_ +- [EIP-8](https://eips.ethereum.org/EIPS/eip-8) – _introduce cerințele de compatibilitate „devp2p forward”_ + + + + + +## 2015 {#2015} + +### Frontier thawing {#frontier-thawing} + + + +#### Rezumat {#frontier-thawing-summary} + +Fork-ul frontier thawing a ridicat limita de [gaz](/glossary/#gas) de 5.000 per [bloc](/glossary/#block) și a stabilit prețul implicit al gazului la 51 [gwei](/glossary/#gwei). Acest lucru a permis tranzacțiile – tranzacțiile necesită 21.000 de gaz. + +[Citiţi anunțul Fundației Ethereum](https://blog.ethereum.org/2015/08/04/the-thawing-frontier/) + +--- + +### Frontier {#frontier} + + + +#### Rezumat {#frontier-summary} + +Frontier a fost o implementare în direct, dar absolut esenţială pentru proiectul Ethereum. A urmat fazei de testare de succes Olympic. A fost destinat utilizatorilor tehnici, în special dezvoltatorilor. [Blocurile](/glossary/#block) aveau o limită de [gaz](/glossary/#gas) de 5.000. Această perioadă de „spargere a gheţii” le-a permis miner-ilor să-și înceapă operațiunile și celor care au adoptat din timp sistemul să-și instaleze clienții fără a avea nevoie să se „grăbească”. + +[Citiţi anunțul Fundației Ethereum](https://blog.ethereum.org/2015/07/22/frontier-is-coming-what-to-expect-and-how-to-prepare/) + + + +## 2014 {#2014} + +### Vânzarea de ether {#ether-sale} + + + +Ether-ul a fost pus în vânzare oficial timp de 42 de zile. Se putea cumpăra cu BTC. + +[Citiţi anunțul Fundației Ethereum](https://blog.ethereum.org/2014/07/22/launching-the-ether-sale/) + +--- + +### A fost lansată Cartea galbenă {#yellowpaper} + + + +Cartea galbenă, scrisă de Dr. Gavin Wood, este o definiție tehnică a protocolului Ethereum. + +[Vedeți Cartea galbenă](https://github.com/ethereum/yellowpaper) + + + +## 2013 {#2013} + +### A fost lansată Cartea albă {#whitepaper} + + + +Lucrarea introductivă, publicată în 2013 de Vitalik Buterin, fondatorul lui Ethereum, înainte de lansarea proiectului în 2015. + + + Cartea albă + diff --git a/public/content/translations/ro/nft/index.md b/public/content/translations/ro/nft/index.md new file mode 100644 index 00000000000..359b8fdb14c --- /dev/null +++ b/public/content/translations/ro/nft/index.md @@ -0,0 +1,433 @@ +--- +title: Tokenuri nefungibile (NFT-uri) +description: Prezentare generală a NFT-urilor pe Ethereum +lang: ro +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: Sigla Eth-ului afișată printr-o hologramă. +summaryPoint1: O manieră de reprezenta ceva unic ca un activ bazat pe Ethereum. +summaryPoint2: NTF-urile oferă putere mai multă creatorilor de conținut decât oricând. +summaryPoint3: Sunt acționate de contractele inteligente pe blockchain-ul Ethereum. +--- + +În prezent, NFT-urile iau cu asalt lumea artei digitale și a obiectelor de colecție. Artiștii din domeniul digital constată cum li se schimbă viața datorită vânzărilor enorme către o nouă cripto-audiență. Iar celebritățile se alătură, deoarece observă o nouă oportunitate de a se conecta cu fanii. Dar arta digitală este doar un singur mod de a utiliza NFT-urile. În realitate, ele pot fi folosite pentru a reprezenta proprietatea asupra oricărui bun unic, cum ar fi un act de proprietate pentru un obiect din domeniul digital sau fizic. + +Dacă Andy Warhol s-ar fi născut la sfârșitul anilor '90, probabil că ar fi bătut Campbell's Soup ca NFT. Este doar o chestiune de timp până când Kanye va pune o pereche de Yeezys pe Ethereum. Și într-o bună zi, v-ați putea dovedi proprietatea asupra mașinii cu un NFT. + +## Ce este un NFT? {#what-are-nfts} + +NFT-urile sunt tokenuri pe care le putem folosi pentru a reprezenta proprietatea asupra unor elemente unice. Acestea ne permit să tokenizăm lucruri precum arta, obiectele de colecție și chiar bunurile imobiliare. Ele pot avea doar un singur proprietar oficial și sunt protejate de blockchain-ul Ethereum – nimeni nu poate să modifice înregistrarea proprietății sau să copieze/insereze un nou NFT. + +NFT reprezintă un token nefungibil. Nefungibil este un termen economic pe care l-ați putea folosi pentru a descrie lucruri cum ar fi mobila, un fișier de muzică sau computerul dvs. Aceste lucruri nu sunt interschimbabile cu alte elemente, deoarece au proprietăți unice. + +Elementele fungibile, pe de altă parte, pot fi schimbate, pentru că ceea ce le definește este valoarea lor, și nu proprietățile lor unice. De exemplu, ETH-ul sau dolarii sunt fungibili, deoarece 1 ETH / 1 USD poate fi schimbat pentru un alt 1 ETH / 1 USD. + + + +## Internetul activelor {#internet-of-assets} + +NFT-urile și Ethereum rezolvă unele dintre problemele care există în prezent pe internet. Pe măsură ce totul devine mai digital, este necesar să se reproducă proprietățile obiectelor fizice, precum raritatea, unicitatea și dovada proprietății. Ca să nu mai vorbim de faptul că produsele digitale funcționează adesea numai în contextul produsului lor. De exemplu, nu puteți revinde un mp3 iTunes pe care l-ați achiziționat sau nu puteți schimba punctele de loialitate ale unei companii pe creditul altei platforme, chiar dacă există o piață pentru aceasta. + +Iată cum arată un internet al NFT-urilor în comparație cu internetul pe care majoritatea dintre noi îl folosim astăzi... + +### O comparație {#nft-comparison} + +| Un internet NFT | Internetul de astăzi | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| NFT-urile sunt unice din punct de vedere digital, nu există două NFT-uri identice. | O copie a unui fișier, cum ar fi un .mp3 sau un .jpg, este la fel cu originalul. | +| Fiecare NFT trebuie să aibă un proprietar, iar acest lucru constituie o înregistrare publică și ușor de verificat de oricine. | Înregistrările privind proprietatea elementelor digitale sunt stocate pe servere controlate de instituții – trebuie să le credeți pe cuvânt. | +| NFT-urile sunt compatibile cu orice a fost construit folosind Ethereum. Un bilet NFT pentru un eveniment poate fi tranzacționat pe orice piață Ethereum, pentru un NFT complet diferit. Ați putea tranzacționa o operă de artă pentru un bilet! | Companiile care dispun de produse digitale trebuie să își construiască propria infrastructură. De exemplu, o aplicație care emite bilete digitale pentru evenimente ar trebui să construiască propriul său sistem de schimb de bilete. | +| Creatorii de conținut își pot vinde lucrările oriunde și pot accesa o piață mondială. | Creatorii se bazează pe infrastructura și distribuția platformelor pe care le utilizează. Acestea fac adesea obiectul unor condiții de utilizare și al unor restricții geografice. | +| Creatorii își pot păstra drepturile de proprietate asupra propriei opere și pot solicita redevențe în mod direct. | Platformele, cum ar fi serviciile de streaming muzical, rețin majoritatea profiturilor din vânzări. | +| Elementele pot fi utilizate în moduri surprinzătoare. De exemplu, puteți utiliza arta digitală ca garanție într-un împrumut descentralizat. | | + +### Exemple de NFT-uri {#nft-examples} + +Lumea NFT-urilor este relativ nouă. Teoretic, domeniul de aplicare a NFT-urilor este tot ceea ce este unic și necesită o proprietate demonstrabilă. Iată câteva exemple de NFT-uri care există astăzi, ca să vă faceți o idee: + +- [O operă de artă digitală unică](https://foundation.app/artworks) +- [O pereche de adidași unică într-o ediție limitată a liniei de modă](https://www.metagrail.co/auctions/91cf83fb-3477-4155-aae8-6dcb9b853397) +- [Un obiect din joc](https://market.decentraland.org/) +- [Un eseu](https://zora.co/0x517bab7661C315C63C6465EEd1b4248e6f7FE183/145) +- [O piesă de colecție digitală](https://www.larvalabs.com/cryptopunks/details/1) +- [Un nume de domeniu](https://app.ens.domains/name/ethereum.eth) +- [Un bilet care vă oferă acces la un eveniment sau un cupon](https://www.yellowheart.io/) + +### exemple ethereum.org {#ethereum-org-examples} + +Folosim NFT-uri pentru a ne răsplăti colaboratorii și avem chiar propriul nostru nume de domeniu NFT. + +#### POAP-uri (Protocol de dovadă a prezenței) {#poaps} + +În cazul în care contribuiți la ethereum.org, puteți revendica un POAP NFT. Acestea sunt obiecte de colecție care dovedesc că ați participat la un eveniment. Unele reuniuni crypto au folosit POAP-urile ca un fel de bilet de intrare la evenimentele lor. [Mai multe despre modurile de a contribui](/contributing/#poap). + +![ethereum.org POAP](./poap.png) + +#### ethereum.eth {#ethereum-dot-eth} + +Acest site are un nume de domeniu alternativ acţionat de NFT-uri **ethereum.eth**. Adresa noastră `.org` este gestionată la nivel central de un furnizor de sistem de nume de domeniu (DNS), în timp ce ethereum`.eth` este înregistrată pe Ethereum prin intermediul Ethereum Name Service (ENS). Și este deținută și administrată de noi. [Verificați dosarul nostru ENS](https://app.ens.domains/name/ethereum.eth) + +[Mai multe despre ENS](https://app.ens.domains) + +## Cum funcționează NFT-urile? {#how-nfts-work} + +NFT-urile sunt diferite de tokenurile ERC-20, cum ar fi DAI sau LINK, prin faptul că fiecare token individual este complet unic și nu este divizibil. NFT-urile oferă posibilitatea de a atribui sau de a revendica dreptul de proprietate asupra oricărui set unic de date digitale ce poate fi urmărit prin utilizarea blockchain-ului Ethereum ca registru public. Un NFT este emis din obiecte digitale ca o reprezentare a activelor digitale sau non-digitale. De exemplu, un NFT ar putea reprezenta: + +- Artă digitală: + - GIF-uri + - Articole de colecție + - Muzică + - Videoclipuri +- Articole din lumea reală: + - Actele unei mașini + - Bilete la un eveniment din lumea reală + - Facturi tokenizate + - Documente juridice + - Semnături +- O mulțime de alte opțiuni prin care să deveniți creativi! + +Un NFT nu poate să aibă decât câte un singur proprietar. Proprietatea se gestionează cu ajutorul unui uniquelD și al metadatelor pe care niciun alt token nu poate să le reproducă. NFT-urile sunt emise cu ajutorul unor contracte inteligente care atribuie proprietatea și gestionează capacitatea de transfer a NFT-urilor. În momentul în care o persoană creează sau emite un NFT, aceasta execută codul stocat în contracte inteligente care respectă diferite standarde, cum ar fi ERC-721. Această informație este adăugată la blockchain-ul pe care este gestionat NFT-ul. Procesul de emitere, privit în ansamblu, trece prin următoarele etape: + +- Crearea unui bloc nou +- Validarea informațiilor +- Înregistrarea informațiilor în blockchain + +NFT-ul are niște proprietăți speciale: + +- Fiecare token emis are un identificator unic legat în mod direct de o adresă Ethereum. +- Acestea nu pot fi schimbate în mod direct cu alte tokenuri 1:1. De exemplu, 1 ETH este identic cu un alt ETH. Acesta nu este cazul NFT-urilor. +- Fiecare token are un proprietar și această informație se poate verifica ușor. +- Acestea există pe Ethereum și se pot cumpăra și vinde pe oricare din piețele NFT din Ethereum. + +Cu alte cuvinte, putem spune că, dacă _dețineți_ un NFT: + +- Puteți dovedi cu ușurință că este proprietatea dvs. + - Dovedirea proprietății unui NFT este foarte asemănătoare cu dovedirea faptului că dețineți ETH în contul dvs. + - Să spunem, de exemplu, că achiziționați un NFT, iar proprietatea tokenului unic este transferată în portofelul dvs. cu ajutorul adresei dvs. publice. + - Tokenul dovedește faptul că exemplarul de fișier digital pe care îl dețineți este cel original. + - Cheia dvs. privată dovedește că sunteți proprietarul originalului. + - Cheia publică a creatorului de conținut are valoare de certificat de autenticitate pentru acel artefact digital. + - Cheia publică a creatorilor face parte practic permanent din istoria tokenului. Cheia publică a creatorului poate demonstra că tokenul pe care îl dețineți a fost creat de o anumită persoană, contribuind astfel la valoarea sa de piață (în comparație cu un fals). + - Alt mod de a dovedi că dețineți un NFT este prin semnarea mesajelor care să dovedească faptul că dețineți cheia privată pe care se bazează adresa. + - Așa cum am menționat mai sus, cheia privată este dovada că sunteți proprietarul originalului. Aceasta ne spune că acele chei private pe care se bazează adresa respectivă controlează NFT-ul. + - Puteți utiliza un mesaj semnat ca dovadă că sunteți proprietarul cheilor dvs. private, fără să le dezvăluiți nimănui, dovedind în acest fel că sunteți și proprietarul NFT-ului! +- Nimeni nu îl poate manipula în niciun fel. +- Îl puteți vinde și, în unele cazuri, aceasta îi va aduce creatorului original redevențe de revânzare. +- Sau puteți să-l păstrați pentru totdeauna, știind că activul dvs. este asigurat de portofelul dvs. pe Ethereum. + +Și dacă vă _creați_ un NFT: + +- Puteți să dovediți cu ușurința ca sunteți creatorul. +- Dvs. determinați cât este de rar. +- Puteți să câștigați redevențe de fiecare dată când este vândut. +- Îl puteți vinde pe orice piață de NFT-uri sau direct între participanți (peer-to-peer). Nu sunteți blocat pe nicio platformă și nu vă trebuie niciun intermediar. + +### Raritatea {#scarcity} + +Cel care a creat un NFT decide cât de rar este activul său. + +Să luăm ca exemplu un bilet la un eveniment sportiv. Tot aşa cum organizatorul unui eveniment poate decide câte bilete să vândă, creatorul unui NFT poate decide câte duplicate pot exista. Uneori aceste duplicate sunt identice, cum ar fi 5000 de bilete de intrare generală. În alte cazuri sunt emise mai multe care se aseamănă foarte mult, însă fiecare este ușor diferit, precum un bilet cu loc rezervat. Alteori creatorul poate dori să creeze un NFT în care se emite un singur bilet ca piesă de colecție rară și specială. + +În astfel de cazuri fiecare NFT tot va avea un identificator unic (în genul unui cod de bare pe un „bilet” tradițional), cu un singur proprietar. Caracterul intenţionat limitat al NFT-ului contează și este la discreția creatorului său. Creatorul ar putea să facă unic fiecare NFT în mod intenţionat pentru a crea o penurie sau să aibă alte motive ca să creeze câteva mii de duplicate. Nu trebuie să uităm că toate acestea sunt informații publice. + +### Redevențe {#royalties} + +Unele NFT-uri vor plăti în mod automat redevențe creatorilor lor atunci când sunt vândute. Conceptul este încă în curs de dezvoltare, însă este unul dintre cele mai puternice. De exemplu, proprietarii originali ai [EulerBeats Originals](https://eulerbeats.com/) câștigă o redevență de 8% la fiecare vânzare a unui NFT. Iar o serie de platforme, cum ar fi [Foundation](https://foundation.app) și [Zora](https://zora.co/), oferă redevențe pentru artiștii lor. + +Aceasta se petrece complet automat, deci creatorii nu au decât să stea liniștiți și să câştige redevențe în momentul în care opera lor este vândută de la o persoană la alta. În momentul de față, calculul redevențelor se face de manieră foarte manuală și nu are precizia necesară – mulți creatori nu sunt plătiți așa cum merită. Atunci când NTF-ul dvs. este programat pentru redevențe, nu veți pierde niciodată nimic. + +## La ce se utilizează NFT-urile? {#nft-use-cases} + +Uitaţi câteva informații suplimentare despre unele cazuri de utilizare și viziuni mai bine dezvoltate pentru utilizarea NTF-urilor pe Ethereum. + +- [Conținut digital](#nfts-for-creators) +- [Articole de joc](#nft-gaming) +- [Nume de domenii](#nft-domains) +- [Articole fizice](#nft-physical-items) +- [Investiții și garanții](#nfts-and-defi) + + + +### Maximizarea veniturilor creatorilor {#nfts-for-creators} + +NFT-urile sunt utilizate cel mai mult în ziua de azi în lumea conținutului digital. Aceasta se întâmplă deoarece industria de azi este falimentară. Creatorii de conținut privesc cum le dispar profiturile şi potenţialul de câştig înghiţite de platformele care le publică acel conținut. + +Atunci când un artist publică o lucrare pe o rețea socială, aceasta câștigă bani prin vinderea de publicitate fanilor artiștilor. Acesta obține vizibilitate, dar vizibilitatea nu îi plătește facturile. + +NFT-urile acționează o nouă economie, în care creatorii nu cedează proprietatea asupra conținutului lor platformelor care le publică acel conținut. Dreptul de proprietate este incorporat în conținutul însuși. + +Odată ce conținutul este vândut, fondurile le revin în mod direct. Și chiar atunci când noul proprietar ar revinde NTF-urile, creatorul original poate primi în mod automat redevențe. Garanția acestui lucru este asigurată prin faptul că, la orice vânzare a sa, adresa creatorului este integrată în metadatele tokenului – iar metadatele nu pot fi modificate. + + +
Explorați, cumpărați sau creați-vă propriile NFT-uri de artă/de colecție...
+ + Explorați arta NFT + +
+ +#### Problema copierii/inserării {#nfts-copy-paste} + +Pesimiștii aduc în discuție faptul că NFT-urile sunt „o stupiditate”, de obicei alături de o imagine care îi arată făcând o captură de ecran a unui NFT de artă. „Iată, acum am această imagine pe gratis!” spun ei cu aroganță. + +Ei bine, da. Dar oare căutarea unei imagini cu Guenica lui Picasso pe Google vă face să deveniți mândrul nou proprietar al unei piese de istorie a artei de mai multe milioane de dolari? + +La urma urmei, valoarea unui lucru pe care îl posedați în mod real este determinată de valoarea sa de piață. Cu cât un anumit conținut este captat de pe ecran mai mult, este distribuit și folosit în general, cu atât câștigă o valoare mai mare. + +Proprietatea asupra lucrului real verificabil are o valoare mai mare decât dacă nu o dețineți. + + + +### Stimularea potențialului de joc {#nft-gaming} + +NFT-urile au stârnit un mare interes din partea dezvoltatorilor de jocuri. NFT-urile pot să ofere dovezi de proprietate asupra elementelor din jocuri, să alimenteze economiile în jocuri și să aducă numeroase beneficii jucătorilor. + +Multe jocuri obișnuite vă permit să cumpărați articole pe care puteți să le folosiți în jocul dvs. Dar dacă elementul respectiv este un NFT, după terminarea jocului puteți să vă recuperați banii vânzându-l. Ați putea chiar să realizați un profit dacă cererea crește pentru acel element. + +În cazul dezvoltatorilor de jocuri – ca emitenți de NFT-uri –, aceștia pot să cumpere o redevență ori de câte ori un articol este revândut pe piețele libere. Aceasta creează un model de afaceri reciproc mai avantajos, în care atât jucătorii, cât și dezvoltatorii câștigă de pe piața secundară de NFT-uri. + +Acest lucru mai înseamnă că atunci când un joc nu mai este întreținut de dezvoltatori, elementele colectate rămân proprietatea dvs. + +În cele din urmă, elementele pentru câștigarea cărora ați muncit în joc pot supraviețui jocurilor înseși. Și chiar dacă un joc nu mai este întreținut, elementele pe care le dețineți vor rămâne mereu sub controlul dumneavoastră. Acest lucru înseamnă că elementele din joc devin mementouri digitale și au o valoare în afara jocului. + +Jocul de realitate virtuală Decentraland vă oferă chiar posibilitatea să cumpărați NFT-uri care reprezintă parcele virtuale de teren pe care le puteți folosi după bunul plac. + + +
Aruncați o privire asupra jocurilor Ethereum, alimentate de NFT-uri...
+ + Explorați jocurile NFT + +
+ + + +### Cum se realizează adrese Ethereum mai ușor de reținut {#nft-domains} + +Serviciul de nume din Ethereum folosește NFT-uri pentru a vă crea o adresă Ethereum cu un nume mai ușor de reținut, precum `mywallet.eth`. Aceasta înseamnă că puteți cere cuiva să vă trimită ETH prin `mywallet.eth` în loc de `0x123456789.....`. + +Funcționează în mod asemănător cu numele de domeniu al unui site web, ceea ce face ca adresa IP să fie mai ușor de reținut. Și asemenea domeniilor, numele ENS au o valoare, bazată de obicei pe lungime și relevanță. Cu ENS nu aveți nevoie de un registru de domenii pentru a facilita transferul proprietății. În schimb, puteți să vă comercializați numele dvs. ENS pe o piață NFT. + +Numele dvs. ENS poate: + +- Să primească criptomonede și alte NFT-uri. +- Să indice un site web descentralizat, cum ar fi [ethereum.eth](https://ethereum.eth.link). [Mai multe despre descentralizarea site-ului dvs. web](https://docs.ipfs.io/how-to/websites-on-ipfs/link-a-domain/#domain-name-service-dns) +- Să stocheze orice informații arbitrare, inclusiv informații de profil, cum ar fi adrese de e-mail și numele de utilizator Twitter. + + + +### Elemente fizice {#nft-physical-items} + +Tokenizarea elementelor fizice nu este încă tot la fel de dezvoltată ca și cea a omologilor lor digitali. Însă există o mulțime de proiecte care explorează tokenizarea bunurilor imobiliare, a articolelor de modă unicat și altele. + +Deoarece NFT-urile sunt în esență acte de proprietate, într-o zi ați putea să cumpărați o mașină sau o casă cu ETH și să primiți în schimb actul de proprietate ca un NFT (în aceeași tranzacție). Pe măsură ce lucrurile devin din ce în ce mai performante din punct de vedere tehnologic, nu este greu de imaginat o lume în care portofelul Ethereum devine cheia mașinii sau a casei dvs. - ușa dvs. fiind descuiată de dovada criptografică a proprietății. + +Cu active valoroase ca mașinile și proprietățile care pot fi reprezentate pe Ethereum, puteți folosi NFT-urile ca garanție în cadrul unor împrumuturi descentralizate. Acest lucru este de mare ajutor în special dacă nu posedaţi bani sau criptomonede, dar dețineți obiecte fizice de valoare. [Mai multe despre DeFi](/defi/) + + + +### NFT-uri și DeFi {#nfts-and-defi} + +Lumea NFT-ului și cea a [finanțelor descentralizate (DeFi)](/defi/) încep să colaboreze într-o serie de moduri interesante. + +#### Împrumuturi garantate de NFT-uri {#nft-backed-loans} + +Există aplicații DeFi care vă permit să luaţi bani cu împrumut bani folosind garanții. De exemplu, garantați 10 ETH pentru a putea împrumuta 5000 DAI ([un stablecoin](/stablecoins/)). Acest lucru garantează că împrumutătorul îşi va primi banii înapoi – dacă împrumutatul nu rambursează DAI, garanția este trimisă împrumutătorului. Totuși, nu oricine are suficiente cripto pe care să le folosească drept garanție. + +În schimb, proiectele încep să exploreze posibilitatea de a folosi NFT-urile ca garanție. Imaginați-vă că ați cumpărat un NFT CryptoPunk rar în trecut – acesta poate ajunge la 1000 de dolari la prețurile de astăzi. Dacă garantaţi cu acesta, puteți să accesați un împrumut care se supune aceloraşi reguli. Dacă nu rambursați DAI, CryptoPunk-ul dvs. va fi trimis la împrumutător ca garanție. Acest lucru ar putea funcționa în cele din urmă cu orice ați tokeniza ca NFT. + +Iar această modalitate nu este greu de realizat pe Ethereum, pentru că ambele lumi (NFT-urile și DeFi) împart aceeași infrastructură. + +#### Proprietatea fracționată {#fractional-ownership} + +Creatorii de NFT-uri pot de asemenea să creeze „acțiuni” pentru NFT-ul lor. Acest lucru oferă investitorilor și fanilor posibilitatea să dețină o parte dintr-un NFT fără a fi nevoie să îl cumpere în întregime. Acest lucru deschide și mai multe oportunități, atât pentru creatorii de NFT-uri, cât și pentru colecționari. + +- NFT-urile fracționate se pot tranzacționa și pe [DEX-uri](/defi/#dex) precum Uniswap, nu doar pe [piețele de NFT-uri](/dapps?category=collectibles). Aceasta înseamnă mai mulți cumpărători și vânzători. +- Prețul global al unui NFT poate fi definit prin prețul fracțiunilor sale. +- Aveți mai multe posibilități să dețineți și să profitați de obiectele la care țineți. Este mai greu să vi se interzică să dețineți NFT-uri. + +Acest lucru este încă în faza experimentală, însă puteți afla mai multe despre posesia fracționară de NFT din următoarele sisteme de schimburi: + +- [NIFTEX](https://landing.niftex.com/) +- [NFTX](https://gallery.nftx.org/) + +Teoretic, aceasta ar debloca posibilitatea de a deține, de exemplu, o parte dintr-un Picasso. Ați deveni acționar al unui NFT Picasso, adică veți avea un cuvânt de spus cu privire, de exemplu, la împărțirea veniturilor. Este foarte probabil ca, în curând, deținerea unei fracțiuni dintr-un NFT să vă facă să intrați într-o organizație autonomă descentralizată (DAO) pentru gestionarea acelui activ. + +Acestea sunt organizații bazate pe Ethereum, care le permit străinilor, ca și acționarilor globali ai unui activ, să se coordoneze în siguranță fără a trebui neapărat să aibă încredere în ceilalți oameni. Aceasta deoarece nimeni nu poate cheltui un singur bănuț fără aprobarea grupului. + +Așa cum am menționat, acesta este un domeniu în creștere. NFT-urile, organizațiile DAO, tokenurile fracționate evoluează în ritmuri diferite. Însă toate infrastructurile lor există și pot colabora cu ușurință, deoarece toate vorbesc aceeași limbă: Ethereum. Așadar, urmăriți acest spațiu. + +[Mai multe despre organizațiile DAO](/dao/) + + + +## Ethereum și NFT-urile {#ethereum-and-nfts} + +Ethereum face posibilă funcționarea NFT-urilor din mai multe motive: + +- Istoricul tranzacțiilor și metadatele tokenurilor sunt verificabile public – este simplu să dovediți istoricul proprietății. +- Odată ce o tranzacție este confirmată, este aproape imposibil de manipulat aceste date pentru a „fura” proprietatea. +- Tranzacționarea NFT-urilor poate avea loc direct între participanți (peer-to-peer), fără a fi nevoie de platforme care pot percepe cote mari drept compensație. +- Toate produsele Ethereum au în comun același „backend”. Cu alte cuvinte, toate produsele Ethereum pot să se înțeleagă cu ușurință între ele – acest lucru face ca NFT-urile să fie portabile între produse. Puteți cumpăra un NFT pentru un produs și îl puteți vinde cu ușurință pentru un alt produs. În calitate de creator, puteți să vă listați NFT-urile simultan pe mai multe produse – fiecare produs va avea cele mai recente informații privind proprietatea. +- Ethereum nu se prăbușește niciodată, ceea ce înseamnă că tokenurile dvs. vor fi întotdeauna disponibile pentru vânzare. + +## Impactul NFT-urilor asupra mediului {#environmental-impact-nfts} + +NFT-urile cresc în popularitate, ceea ce înseamnă că sunt de asemenea supuse unei analize tot mai riguroase – în special asupra amprentei lor de carbon. + +Pentru a clarifica mai multe lucruri: + +- NFT-urile nu contribuie direct la creșterea amprentei de carbon a lui Ethereum. +- Modul în care Ethereum vă păstrează fondurile și activele în siguranță este în prezent mare consumator de energie, dar este pe cale de a fi îmbunătățit. +- Odată îmbunătățit, amprenta de carbon a lui Ethereum va fi cu 99,95 % mai bună, făcând-o mai eficientă din punct de vedere energetic decât multe industrii existente. + +Pentru a explica mai departe, va trebui să intrăm în aspecte mai tehnice, așa că aveți răbdare cu noi... + +### Nu dați vina pe NFT-uri {#nft-qualities} + +Întregul ecosistem NFT funcționează pentru că Ethereum este descentralizat și sigur. + +Descentralizat, însemnând că dvs. și toți ceilalți puteți verifica dacă dețineți ceva. Toate acestea fără a vă încrede sau a acorda custodia unui terț, care poate impune propriile reguli după bunul plac. De asemenea, înseamnă că NFT-ul dvs. este portabil pe mai multe produse și piețe diferite. + +Securizat, însemnând că nimeni nu poate să vă copieze/insereze NFT-ul sau să îl fure. + +Aceste calități ale lui Ethereum vă permit să posedați digital elemente unice și să obțineți un preț corect pentru conținutul dvs. Dar aceasta implică un cost. Blockchain-urile precum Bitcoin și Ethereum, sunt mari consumatoare de energie chiar acum, deoarece este nevoie de multă energie pentru a păstra aceste calități. Dacă era ușor ca istoria Ethereum să fie rescrisă pentru a fura NFT-uri sau criptomonede, sistemul s-ar prăbuși. + +#### Munca depusă pentru emiterea unui NFT {#minting-nfts} + +Atunci când emiteți un NFT, trebuie să aibă loc următoarele: + +- Trebuie să fie confirmat ca activ pe blockchain. +- Soldul contului proprietarului trebuie să fie actualizat pentru a include acest activ. Acest lucru îi permite apoi să fie tranzacționat sau să fie „deținut” în mod verificabil. +- Tranzacțiile care confirmă cele menționate mai sus trebuie adăugate unui bloc și „imortalizate” în lanț. +- Blocul trebuie confirmat de toți membrii rețelei ca fiind „corect”. Acest consens elimină nevoia de intermediari, întrucât rețeaua este de acord că NFT-ul dvs. există și vă aparține. Și se află în lanț, astfel încât oricine să poată verifica acest lucru. Acesta este unul din modurile în care Ethereum îi ajută pe creatorii de NFT-uri să își maximizeze câștigurile. + +Toate aceste sarcini sunt efectuate de miner-i. Și aceștia informează restul rețelei despre NFT-ul dvs. și cine îl deține. Aceasta înseamnă că minarea trebuie să fie suficient de dificilă, altfel oricine ar putea pretinde că deține NFT-ul pe care tocmai l-ați emis transferându-şi în mod fraudulos proprietatea. Sunt funcţionale o mulțime de stimulente care să asigure că miner-ii acționează în mod cinstit. + +[Aflați mai multe despre minare](/developers/docs/consensus-mechanisms/pow/) + +#### Securizarea NFT-ului prin minare {#securing-nfts} + +Dificultatea minării provine din faptul că este necesară multă putere de calcul pentru a crea noi blocuri în lanț. Important este faptul că blocurile sunt create în mod constant, nu numai atunci când sunt necesare. Acestea sunt create la un interval de aproximativ 12 secunde. + +Acesta este un lucru important pentru a face Ethereum imposibil de falsificat, una din calitățile care fac posibile NFT-urile. Cu cât sunt mai multe blocuri, cu atât mai securizat este lanțul. Dacă NFT-ul dvs. a fost creat în blocul #600 și un hacker ar încerca să vă fure NFT-ul modificându-i datele, amprenta digitală a tuturor blocurilor ulterioare s-ar schimba. Aceasta înseamnă că oricine rulează software-ul Ethereum ar putea imediat să detecteze și să împiedice producerea acestui lucru. + +Totuși, acest lucru înseamnă că puterea de calcul trebuie să fie folosită în mod constant. Aceasta mai înseamnă că un bloc care conține 0 tranzacții NFT va continua să aibă aproape aceeași amprentă de carbon, pentru că tot va fi consumată puterea de calcul pentru a-l crea. Alte tranzacții non-NFT vor umple blocurile. + +#### În acest moment blockchain-urile consumă multă energie {#blockchains-intensive} + +Deci da, există o amprentă de carbon asociată cu crearea de blocuri prin minare – și aceasta este o problemă şi pentru lanțuri cum ar fi Bitcoin – dar nu este direct generată de NFT-uri. + +O mare parte din minerit utilizează surse regenerabile de energie sau energie neexploatată în locații îndepărtate. Mai există și argumentul că sectoarele pe care le perturbă NFT-urile și criptomonedele au și ele amprente de carbon uriașe. Însă faptul că sectoarele industriale existente sunt dăunătoare nu înseamnă că nu ar trebui să ne străduim să facem lucrurile mai bine. + +Și noi facem asta. Ethereum evoluează pentru eficientiza din punct de vedere energetic utilizarea lui Ethereum (și, în consecință, a NFT-urilor). Și am avut întotdeauna în vedere acest lucru. + +Rolul nostru nu este de a pleda pentru amprenta de mediu a minării, ci vrem să explicăm în ce fel lucrurile se schimbă în bine. + +### Un viitor mai ecologic... {#a-greener-future} + +De când există Ethereum, consumul de energie pentru minare a fost în centrul atenției dezvoltatorilor și cercetătorilor. Și viziunea consta în înlocuirea acestuia cât mai curând posibil. [Mai multe despre viziunea Ethereum](/roadmap/vision/) + +Viziunea se concretizează chiar acum. + +#### Un Ethereum mai ecologic {#greener-ethereum} + +Ethereum parcurge în prezent o serie de actualizări care vor înlocui minarea cu [mizarea](/staking/). Aceasta va elimina puterea de calcul ca mecanism de securitate și va reduce amprenta de carbon a lui Ethereum cu ~99,95%[^1]. În această lume, staker-ii alocă fonduri în locul puterii de calcul pentru securizarea rețelei. + +Costul energetic al lui Ethereum va ajunge să fie egal cu costul de funcționare a unui computer personal înmulțit cu numărul de noduri din rețea. Dacă în rețea există 10.000 de noduri, iar costul de funcționare a unui computer personal este de aproximativ 525 KWh pe an. Aceasta înseamnă 5.250.000.000 kWh[^1] pe an pentru întreaga rețea. + +Putem folosi aceasta pentru a compara viitorul lui Ethereum cu cel al unui serviciu mondial precum Visa. 100.000 de tranzacții Visa consumă energie de 149 kWh[^2]. Într-un Ethereum bazat pe dovada-mizei, același număr de tranzacții ar costa cât 17,4kWh de energie sau ~11% din energia totală[^3]. Și aceasta fără a lua în considerare numeroasele optimizări la care se lucrează la nivelul consensului și în paralel la lanțurile de fragmente, cum ar fi [rollup-urile](/glossary/#rollups). Ar putea fi vorba de doar 0,166666666667 kWh de energie pentru 100.000 de tranzacții. + +Important este că aceasta crește eficiența energetică, păstrând în același timp descentralizarea și securitatea lui Ethereum. Multe alte blockchain-uri ar putea să folosească deja o anumită formă de mizare, dar acestea sunt securizate de câțiva staker-i selectați, nu de miile pe care îi va avea Ethereum. Cu cât sistemul este mai descentralizat, cu atât este mai sigur. + +[Aflați mai multe despre estimările energetice](#footnotes-and-sources) + +_V-am oferit o comparație elementară cu Visa pentru a vă ajuta să înțelegeți care este consumul de energie al unui Ethereum bazat pe dovada-mizei față de un nume cunoscut. În practică nu este însă absolut corectă comparația pe baza numărului de tranzacții. Randamentul energetic al lui Ethereum este în funcție de timp. Fie că Ethereum efectuează mai multe tranzacții de la un minut la altul, fie mai puține, randamentul energetic rămâne același._ + +_Este important să ne amintim că Ethereum nu doar efectuează tranzacții financiare, ci este o platformă pentru aplicații, așa că o comparație mai corectă ar fi cu mai multe companii/industrii, inclusiv Visa, AWS și multe altele!_ + +#### Desfășurarea în timp {#timelines} + +Procesul a început deja. [Lanțul Beacon](/roadmap/beacon-chain/), prima actualizare a fost lansată în decembrie 2020. Acesta oferă fundamentul pentru mizare, permițând stakerilor să intre în sistem. Pasul următor, important pentru eficiența energetică, este fuzionarea lanțului actual, cel securizat de miner-i, cu Lanțul Beacon, unde nu mai este nevoie de minare. Deocamdată, termenele de implementare nu pot fi exacte, dar se estimează că acest lucru se va întâmpla la un moment dat în 2022. Procesul este cunoscut sub numele de fuziune (cunoscut anterior sub numele de andocare). [Aflați mai multe despre fuziune](/roadmap/merge/). + + + Mai multe despre actualizările Ethereum + + +## Construiți cu NFT-uri {#build-with-nfts} + +Cele mai multe NFT-uri sunt construite cu ajutorul unui standard coerent cunoscut sub numele de [ERC-721](/developers/docs/standards/tokens/erc-721/). Totuși, există și alte standarde pe care ați putea dori să le analizați. Standardul [ERC-1155](https://blog.enjincoin.io/erc-1155-the-crypto-item-standard-ac9cf1c5a226) permite tokenurile semi-fungibile, care sunt deosebit de utile în lumea jocurilor. Mai recent, [EIP-2309](https://eips.ethereum.org/EIPS/eip-2309) a fost propus pentru a crește mult eficiența emiterii NFT-urilor. Acest standard vă permite să creați cât de multe tokenuri doriți într-o singură tranzacție! + +## Referințe suplimentare {#further-reading} + +- [Date legate de arta cripto](https://cryptoart.io/data) – Richard Chen, actualizate automat +- [OpenSea: Biblia NFT](https://opensea.io/blog/guides/non-fungible-tokens/) – _Devin Fizner, 10 ianuarie 2020_ +- [Ghidul începătorului în NFT-uri](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, ianuarie 2020_ +- [Tot ce trebuie să știți despre metavers](https://foundation.app/blog/enter-the-metaverse) – _Echipa Foundation, foundation.app_ +- [Nu, cripto-artiștii nu fac rău planetei](https://medium.com/superrare/no-cryptoartists-arent-harming-the-planet-43182f72fc61) +- [Consum de energie cât o țară, niciodată](https://blog.ethereum.org/2021/05/18/country-power-no-more/) – _Cart Beekhuizen, 18 mai 2021_ + + + +### Note de subsol și surse {#footnotes-and-sources} + +Aceasta explică felul în care am ajuns la estimările noastre energetice de mai sus. Aceste estimări se aplică rețelei ca întreg și nu se rezumă doar la procesul de creare, cumpărare sau vânzare de NFT-uri. + +#### 1. 99,95% de reducere a energiei pentru minare {#fn-1} + +Această reducere de 99,95% a consumului de energie de la un sistem securizat prin minare la un sistem securizat prin mizare se calculează folosind următoarele surse de date: + +- 44,49 TWh de energie electrică pe an este consumată prin minarea pe Ethereum - [Digiconomist](https://digiconomist.net/ethereum-energy-consumption) + +- Un computer desktop mediu, singurul lucru necesar pentru a rula dovada-mizei (proof-of-stake), consumă 0,06 KWh de energie pe oră – [Silicon Valley power chart](https://www.siliconvalleypower.com/residents/save-energy/appliance-energy-use-chart) (Unele estimări sunt puțin mai mari, de 0,15 KWh) + +La momentul când scriem acest articol există 140.592 de validatori de la 16.405 de adrese unice. Dintre aceștia, se presupune că 87.897 de validatori mizează de acasă. + +Se presupune că o persoană obişnuită care mizează de acasă folosește un computer personal desktop de 100 de wați pentru a rula în medie 5,4 clienți validatori. + +Cei 87.897 de validatori care rulează de acasă execută 16.300 de utilizatori care consumă ~1,64 megawatt de energie. + +Restul validatorilor sunt gestionați de către staker-i de custodie, cum ar fi schimburile și serviciile de mizare. Putem presupune că aceștia consumă 100 W la fiecare 5,5 validatori. Facem o supraestimare brută, doar ca să ne asigurăm că nu greşim. + +În total, Ethereum-ul pe sistemul dovezii-mizei (proof-of-stake) consumă în jur de 2,62 megawați, adică aproape cât un mic oraș american. + +Aceasta este o reducere de cel puțin 99,95% a consumului total de energie din estimarea Digiconomist de 44,94 TWh pe an pe care miner-ii Ethereum o consumă actualmente. + +#### 2. Consumul de energie al Visa {#fn-2} + +Costul a 100.000 de tranzacții Visa este de 149 kWh - [Consumul mediu de energie pe tranzacție al rețelei Bitcoin în comparație cu rețeaua VISA în 2020, Statista](https://www.statista.com/statistics/881541/bitcoin-energy-consumption-transaction-comparison-visa/) + +La sfârșitul anului încheiat în septembrie 2020 au procesat 140.839.000.000 de tranzacții – [Raportul financiar Visa pentru trimestrul IV 2020](https://s1.q4cdn.com/050606653/files/doc_financials/2020/q4/Visa-Inc.-Q4-2020-Operational-Performance-Data.pdf) + +#### 3. Consumul de energie pentru 100.000 de tranzacții pe o rețea de fragmente de dovada-mizei. {#fn-3} + +Se estimează că actualizările de scalabilitate vor permite rețelei să proceseze între 25.000 și 100.000 de tranzacții pe secundă, [,100.000 fiind maximul teoretic în acest moment](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698). + +[Vitalik Buterin despre potențialul tranzacțiilor pe secundă cu sistemul de fragmentare](https://twitter.com/VitalikButerin/status/1312905884549300224) + +Fragmentarea va permite cel puțin un număr de tranzacții de 64 de ori mai mare decât numărul actual, care este de aproximativ 15 tranzacții. Este cantitatea de lanțuri de fragmente (date și capacitate în plus) care va fi introdusă. [Mai multe informații despre lanțurile de fragmente](/roadmap/danksharding/) + +Asta înseamnă că putem estima cât timp va dura procesarea a 100.000 de tranzacții, astfel încât să putem compara cu exemplul Visa de mai sus. + +- `15 * 64 = 960` de tranzacții pe secundă. +- `100.000 / 960 = 104,2` secunde pentru a procesa 100.000 de tranzacții. + +În 104,2 secunde, rețeaua Ethereum utilizează următoarea cantitate de energie: + +`1,44 kWh utilizați zilnic * 10.000 de noduri de rețea = 14.400 kWh` pe zi. + +Într-o zi sunt 86.400 de secunde, deci `14.400 / 86.400 = 0,166666666667kWh` pe secundă. + +Prin înmulțirea acestui număr cu timpul necesar pentru a procesa 100.000 de tranzacții: `0,16666666666667 * 104,2 = 17,366666666701 kWh`. + +Aceasta înseamnă **11,655480989866%** din energia consumată de un număr similar de tranzacții pe Visa. + +Rețineți că acest lucru se bazează pe cantitatea minimă de tranzacții pe care Ethereum le va putea gestiona pe secundă. Dacă Ethereum atinge potențialul său de 100 000 de tranzacții pe secundă, aceste 100.000 de tranzacții ar consuma 0,166666666667kWh. + +Cu alte cuvinte, dacă Visa procesează 140.839.000.000 de tranzacții ce costă cât 149 kWh la 100.000 de tranzacții, înseamnă că se consumă 209.850.110 kWh de energie pe an. + +Într-un singur an, Ethereum va consuma 5.256.000 kWh. Cu un potențial de 788.940.000.000.000 - 3.153.600.000.000.000 de tranzacții procesate în această perioadă. + + + În cazul în care considerați că aceste statistici sunt incorecte sau se poate crește precizia lor, vă rugăm să semnalați o problemă sau să creați un PR. Acestea sunt estimări făcute de echipa ethereum.org utilizând informații accesibile publicului și ce este în faza de proiect pentru Ethereum. Aceasta nu reprezintă o promisiune oficială din partea Fundației Ethereum. + diff --git a/public/content/translations/ro/roadmap/beacon-chain/index.md b/public/content/translations/ro/roadmap/beacon-chain/index.md new file mode 100644 index 00000000000..02813bd268d --- /dev/null +++ b/public/content/translations/ro/roadmap/beacon-chain/index.md @@ -0,0 +1,76 @@ +--- +title: Lanțul Beacon +description: Aflați despre Lanțul Beacon - actualizarea care a introdus în Ethereum dovada-mizei. +lang: ro +template: upgrade +image: /upgrades/core.png +alt: +summaryPoint1: Lanțul Beacon a introdus dovada mizei în ecosistemul Ethereum. +summaryPoint2: Acesta a fost fuzionat cu lanțul dovadă a muncii Ethereum original în septembrie 2022. +summaryPoint3: Lanțul Beacon a introdus logica consensului și protocolul de bârfă al blocului care protejează Ethereum în acest moment. +--- + + + Lanțul Beacon a fost lansat pe 1 decembrie 2020 și a formalizat dovada mizei ca mecanism de consens al Ethereum prin modernizarea Fuziunii în 15 septembrie 2022. + + +## Ce este lanțul Beacon? {#what-is-the-beacon-chain} + +Lanțul Beacon a fost numele blockchain-ului dovada mizei original, lansat în 2020. A fost creat pentru a ne asigura că logica de consens cu dovada mizei este sănătoasă și durabilă înainte de a o activa în Rețeaua principală Ethernet. Prin urmare, a funcționat împreună cu dovada muncii Ethereum originală. Dezactivarea și activarea dovezii muncii în Ethereum a necesitat o instrucțiune prin care Lanțul Beacon să accepte tranzacții din lanțul Ethereum original, să le regrupeze în blocuri și să le organizeze într-un blockchain folosind un mecanism de consens bazat pe dovada mizei. În același moment, clienții originali Ethereum au oprit minarea, propagarea blocului și logica consensului, transferând toate acestea în Lanțul Beacon. Acest eveniment a fost cunoscut sub numele de [Fuziunea](/roadmap/merge/). Odată ce Fuziunea a avut loc, nu au mai existat două blockchain-uri, ci doar un singur lanț dovada mizei Ethereum. + +## Care a fost rolul Lanțului Beacon? {#what-does-the-beacon-chain-do} + +Lanțul Beacon a fost numele dat unui registru al conturilor care a condus și coordonat rețeaua de [stakeri](/staking/) Ethereum înainte ca stakerii să înceapă validarea tranzacțiilor Ethereum reale. Nu a procesat tranzacții și nu a gestionat interacțiunile contractului inteligent. + +A introdus motorul pentru consens (sau „stratul de consens”) care a luat locul minării prin dovada muncii în Ethereum și a adus îmbunătățiri majore. + +Lanțul Beacon a fost o componentă fundamentală pentru [securitatea, respectul pentru mediu și scalabilitatea Ethereum de care ne bucurăm acum](/roadmap/vision/). + +## Impactul Lanțului Beacon {#beacon-chain-features} + +### Introducere despre mizare {#introducing-staking} + +Lanțul Beacon a introdus [dovada mizei](/developers/docs/consensus-mechanisms/pos/) în Ethereum. Aceasta asigură securitatea Ethereum și generează mai mult ETH pentru validatori în cadrul procesului. În practică, mizarea implică mizarea ETH pentru activarea software-ului validatorului. În calitate de staker, rulați software-ul care creează și validează noile blocuri din lanț. + +Mizarea joacă același rol avut înainte de [minare](/developers/docs/mining/), dar diferă în multe moduri. Minarea necesita cheltuieli inițiale mari, sub forma unor echipamente hardware puternice și a unui consum mare de energie, ceea ce duce la economii de scalare și promovarea centralizării. De asemenea, minarea nu implica cerințe pentru blocarea activelor drept garanție, limitând capacitatea protocolului de a pedepsi actorii răi după un atac. + +Tranziția la dovada mizei a făcut ca Ethereum să fie mult mai sigur și mai descentralizat în comparație cu dovada muncii. Cu cât numărul de oameni din rețea este mai mare, cu atât mai descentralizată și mai sigură în caz de atacuri devine aceasta. + + + Dacă dorești să devii un validator și să contribui la securitatea Ethereum, află mai multe despre mizare. + + +### Configurarea pentru fragmentare {#setting-up-for-sharding} + +De la momentul în care Lanțul Beacon a fuzionat cu Rețeaua principală Ethereum, comunitatea Ethereum a început să caute să scaleze rețeaua. + +Dovada mizei are avantajul de a deține un registru cu toți producătorii aprobați în orice moment, fiecare având în joc ETH. Acest registru creează condițiile pentru capacitatea de a diviza și de a cuceri, dar separă în mod fiabil responsabilitățile specifice rețelei. + +Această responsabilitate contrastează cu dovada muncii, unde minerii nu au nicio obligație față de rețea și ar putea opri minarea și ar putea dezactiva permanent software-ul nodului într-o clipă, fără repercusiuni. De asemenea, nu există niciun registru al promotorilor de blocuri cunoscuți și nicio modalitate fiabilă de a împărți responsabilitățile din rețea în siguranță. + +[Aflați mai multe despre fragmentare](/roadmap/danksharding/) + +## Relațiile dintre actualizări {#relationship-between-upgrades} + +Toate actualizările Ethereum se află într-o anumită corelație. Deci, să recapitulăm cum afectează Lanțul Beacon celelalte actualizări. + +### Lanțul Beacon și Fuziunea {#merge-and-beacon-chain} + +La început, Lanțul Beacon a existat separat de Rețeaua principală Ethereum, dar au fuzionat în 2022. + + + Fuziunea + + +### Fragmentele și Lanțul Beacon {#shards-and-beacon-chain} + +Fragmentarea poate intra în ecosistemul Ethereum în siguranță doar cu un mecanism de consens în vigoare, dovada mizei. Lanțul Beacon a introdus mizarea, care a „fuzionat” cu Rețeaua principală, deschizând calea pentru fragmentare, pentru o scalare și mai mare a Ethereum. + + + Lanțurile de fragmente + + +## Referințe suplimentare + +- [Mai multe despre viitoarele modernizări ale Ethereum](/roadmap/vision) +- [Mai multe despre dovada mizei](/developers/docs/consensus-mechanisms/pos) diff --git a/public/content/translations/ro/roadmap/merge/index.md b/public/content/translations/ro/roadmap/merge/index.md new file mode 100644 index 00000000000..2b676d210d9 --- /dev/null +++ b/public/content/translations/ro/roadmap/merge/index.md @@ -0,0 +1,221 @@ +--- +title: Fuziunea +description: Aflați mai multe despre Fuziune, când Rețeaua principală Ethereum a adoptat dovada mizei. +lang: ro +template: upgrade +image: /upgrades/merge.png +alt: +summaryPoint1: Rețeaua principală Ethereum folosește dovada mizei, dar nu a fost întotdeauna așa. +summaryPoint2: Modernizarea de la mecanismul original al dovezii muncii la dovada mizei a purtat numele de Fuziune. +summaryPoint3: Fuziunea se referă la fuziunea dintre Rețeaua principală Ethernet și un blockchain dovada mizei separat, numit Lanțul Beacon, ceea ce acum funcționează ca un singur lanț. +summaryPoint4: Fuziunea a redus consumul de energie al Ethereum cu aproximativ 99,95%. +--- + + + Fuziunea a avut loc în 15 septembrie 2022. Aceasta a finalizat tranziția Ethereum la consensul cu dovada mizei, scoțând din uz oficial dovada muncii și reducând consumul de energie cu aproximativ 99,95%. + + +## Ce este Fuziunea? {#what-is-the-merge} + +Fuziunea a reprezentat combinarea stratului de execuție original al Ethereum (Rețeaua principală care a existat încă de la [geneză](/history/#frontier)) cu noul strat de consens cu dovada mizei, Lanțul Beacon. Acesta a eliminat nevoie de minare cu un consum mare de energie și, în schimb, a permis ca rețeaua să fie securizată folosind miza ETH. Realizarea viziunii Ethereum a fost un pas cu adevărat extraordinar: mai multă scalabilitate, mai multă securitate și mai multă durabilitate. + + + +Inițial, [Lanțul Beacon](/roadmap/beacon-chain/) a fost lansat separat de [Rețeaua principală](/glossary/#mainnet). Rețeaua principală Ethereum - cu toate conturile, soldurile, contractele inteligente și starea blockchainului - a continuat să fie securizată prin [dovada muncii](/developers/docs/consensus-mechanisms/pow/), chiar și atunci când Lanțul Beacon funcționa în paralel folosind [dovada mizei](/developers/docs/consensus-mechanisms/pos/). Fuziunea a avut loc când acest două sisteme s-au reunit în cele din urmă și dovada muncii a fost înlocuită permanent de dovada mizei. + +Imaginează-ți Ethereum ca o navă spațială care a fost lansată înainte de a fi fost foarte bine pregătită pentru o călătorie interstelară. Prin Lanțul Beacon, comunitatea a construit un motor nou și o carenă întărită. După efectuarea unor teste majore, a venit timpul pentru schimbarea motorului vechi cu cel nou în timpul călătoriei. Aceasta e permis fuziunea motorului nou, mai eficient în nava existentă, ceea ce a dus la câștigarea unui număr mare de ani lumină și la cucerirea universului. + +## Fuzionarea cu Mainnet {#merging-with-mainnet} + +Dovada muncii a securizat Rețeaua principală Ethereum de la geneză până la Fuziune. Aceasta a permis blockchainului Ethereum pe care îl cunoaștem cu toții să vadă lumina zilei în iulie 2015, cu toate funcțiile sale familiare: tranzacții, contracte inteligente, conturi etc. + +De-a lungul istoriei Ethereum, dezvoltatorii s-au pregătit pentru o eventuală tranziție de la dovada muncii la dovada mizei. La 1 decembrie 2020, Lanțul Beacon a fost creat ca un blockchain separat de Rețeaua principală, funcționând în paralel. + +Lanțul Beacon nu a prelucrat inițial tranzacții din Rețeaua principală. În schimb, obținea consensul pe cont propriu, punând de acord validatorii activi și soldurile conturilor. După teste ample, a venit momentul în care Lanțul Beacon să ajungă la consens cu privire la datele din lumea reală. După Fuziune, Lanțul Beacon a devenit motorul pentru consens pentru toate datele rețelei, inclusiv tranzacțiile din stratul de execuție și soldurile conturilor. + +Fuziunea a reprezentat trecerea oficială la folosirea Lanțului Beacon drept motor al producției de blocuri. Minarea nu mai este mijlocul de producere a blocurilor valide. În schimb, validatorii care utilizează dovada mizei au adoptat acest rol și sunt responsabili acum de prelucrarea validității tuturor tranzacțiilor și de propunerea de blocuri. + +Niciun istoric nu a fost pierdut în Fuziune. Când Rețeaua principală a fuzionat cu Lanțul Beacon, a fuzionat cu întregul istoric al tranzacțiilor Ethereum. + + +Această tranziție la dovada mizei a schimbat felul în care este emis eterul. Aflați mai multe despre emiterea de eter înainte și după Fuziune. + + +### Utilizatori și deținători {#users-holders} + +**Fuziunea nu a schimbat nimic pentru deținători/uilizatori.** + +_Acest lucru trebuie repetat_: în calitate de utilizator sau deținător de ETH sau de orice alt activ digital în Ethereum, precum și în calitate de staker care nu operează pe noduri, **nu trebuie să faceți ceva în legătură cu fondurile sau portofelul dumneavoastră în urma Fuziunii.** ETH este pur și simplu ETH. Nu există un „ETH vechi”/„ETH nou” sau „ETH1”/„ETH2”, iar portofelele funcționează după Fuziune exact la fel ca înainte. Cel mai probabil, cei care îți spun altceva sunt escroci. + +În ciuda înlocuirii dovezii muncii, întregul istoric al Ethereum de la geneză a rămas intact și nemodificat de trecerea la dovada mizei. Toate fondurile deținute în portofel înainte de Fuziune pot fi accesate în continuare după Fuziune. **Nu trebuie să faci nimic pentru modernizare.** + +[Mai multe despre securitatea Ethereum](/security/#eth2-token-scam) + +### Operatorii de noduri și dezvoltatorii de aplicații {#node-operators-dapp-developers} + + + +Principalele elemente de acțiune includ: Execută _atât_ un client de consens, cât și un client de execuție; punctele finale terțe pentru obținerea datelor de execuție nu mai funcționează de la Fuziune. 2. Autentifică atât clientul de execuție, cât și cel de consens cu un secret JWT partajat, astfel încât să poată comunica în siguranță. 3. Setează o adresă „destinatar taxă” pentru a primi bacșișuri pentru comisioanele de tranzacție/MEV câștigate. + +Dacă nu efectuezi primele două elemente de mai sus, nodul va fi considerat „offline” până când ambele straturi sunt sincronizate și autentificate. + +Dacă nu definești un „destinatar pentru taxă”, validatorul va putea acționa în continuare ca de obicei, dar vei rata bacșișurile pentru taxele de tranzacție nearse și MEV pe care le-ai fi câștigat în blocurile propuse de validatorul tău. + + + + +Până la momentul Fuziunii, un client de execuție (precum Geth, Erigon, Besu sau Nethermind) a fost suficient pentru a primi, valida corect și propaga blocuri bârfite de rețea. _După Fuziune_, validitatea tranzacțiilor conținute în blocul de execuție depinde și de validitatea „blocului de consens” conținut. + +Ca urmare, un nod Ethereum complet necesită atât un client de execuție, cât și un client de consens. Acești doi clienți funcționează împreună folosind un nou API motor. API-ul motor necesită autentificare folosind un secret JWT, oferit pentru ambii clienți pentru a permite comunicații securizate. + +Principalele elemente de acțiune includ: + +- Instalarea unui client de consens pe lângă un client de execuție +- Autentificarea clientului de execuție și consens cu un secret JWT partajat, astfel încât să poată comunica între ele în siguranță. + +Dacă nu efectuezi elementele de mai sus, nodul tău va fi considerat „offline” până când ambele straturi sunt sincronizate și autentificate. + + + + + +Fuziunea a venit cu modificări ale consensului, care includ și modificări legate de: + +- structura blocului +- sincronizare fantă/bloc +- modificări de opcoduri +- surse de randomizare în lanț +- conceptul de _cap sigur_ și _blocuri finalizate_ + +Pentru mai multe informații, consultați această postare a lui Tim Beiko despre [Impactul Fuziunii asupra Stratului aplicației Ethereum](https://blog.ethereum.org/2021/11/29/how-the-merge-impacts-app-layer/). + + +## Fuziunea și consumul de energie {#merge-and-energy} + +Fuziunea a marcat finalul dovezii muncii pentru Ethereum și începutul unei ere Ethereum mai durabile, mai favorabile pentru mediu. Consumul de energie al Ethereum a scăzut cu aproximativ 99,95%, transformând Ethereum într-un blockchain verde. Află mai multe despre [Consumul de energie al Ethereum](/energy-consumption/). + +## Fuziunea și scalarea {#merge-and-scaling} + +De asemenea, Fuziunea a creat posibilitatea pentru și mai multe modernizări de scalabilitate care nu erau posibile în sistemul cu dovada muncii, aducând Ethereum cu un pas mai aproape de a atinge amploarea, securitatea și durabilitatea descrise în [Viziunea Ethereum](/roadmap/vision/). + +## Neînțelegeri despre Fuziune {#misconceptions} + + +Există două tipuri de noduri Ethereum: noduri care pot propune blocuri și noduri care nu pot propune blocuri. + +Nodurile care propun blocuri sunt doar un număr mic din numărul total de noduri pe Ethereum. Această categorie include noduri de minare în dovada muncii (PoW) și noduri de validator în dovada mizei (PoS). Această categorie necesită angajarea de resurse economice (precum puterea hashului pentru GPU în dovada muncii sau ETH mizat în dovada mizei) în schimbul posibilității de a propune ocazional următorul bloc și de a câștiga recompense acordate de protocol. + +Celelalte noduri ale rețelei (adică majoritatea) nu necesită angajarea de resurse economice mai mari în plus față de un computer de uz general cu o capacitate de stocare liberă de 1-2 TB și o conexiune la internet. Aceste noduri nu propun blocuri, dar continuă să joace un rol esențial în asigurarea securității rețelei prin tragerea la răspundere a tuturor inițiatorilor de blocuri, prin detectarea noilor blocuri și verificarea validității acestora la sosire, în conformitate cu regulile de consens ale rețelei. Dacă blocul este valid, nodul continuă propagarea acestuia prin rețea. Dacă blocul nu este valid indiferent de motiv, software-ul nod îl va ignora ca nefiind valid și va opri propagarea. + +Execuția unui nod care nu produce blocuri este posibilă pentru oricine, indiferent de mecanismul de consens (dovada muncii sau dovada mizei); acest lucru este _puternic încurajat_ pentru toți utilizatorii care au mijloacele necesare. Rularea unui nod este extrem de valoroasă pentru Ethereum și oferă beneficii suplimentare oricărei persoane care operează propriul nod, precum securitate, confidențialitate îmbunătățite și rezistență la cenzură. + +Capacitatea oricui de a rula propriul nod este _absolut esențială_ pentru păstrarea unei rețele Ethereum descentralizate. + +[Mai multe despre rularea propriului nod](/run-a-node/) + + + + +Taxele pentru gaz sunt produsul cererii rețelei în funcție de capacitatea rețelei. Fuziunea a scos din uz dovada muncii, realizând tranziția la dovada mizei pentru consens, dar nu a modificat în mod semnificativ parametrii care influențează direct capacitatea rețelei sau debitul. + +Cu o [foaie de parcurs centrată pe regrupare](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698), eforturile sunt concentrate pe scalarea activității utilizatorului la [stratul 2](/layer-2/), în timp ce se activează stratul 1 al Rețelei principale ca un strat de soluționare descentralizat, securizat și optimizat pentru stocarea datelor de rollup pentru a face tranzacțiile rollup exponențial mai ieftine. Tranziția la dovada mizei este un precursor esențial pentru acest lucru. [Mai multe despre gaz și taxe.](/developers/docs/gas/) + + + +„Viteza” unei tranzacții poate fi măsurată în câteva moduri, inclusiv timpul care trebuie inclus într-un bloc și timpul până la finalizare. Ambele se modifică puțin, dar nu într-un mod pe care utilizatorii îl vor observa. + +Din punct de vedere istoric, în ceea ce privește dovada muncii, obiectivul a fost crearea unui bloc nou la fiecare ~13,3 secunde. În cazul dovezii mizei, fantele apar precis la fiecare 12 secunde, fiecare dintre acestea fiind o oportunitate pentru ca un validator să publice un bloc. Cele mai multe fante au blocuri, dar nu neapărat toate (adică un validator este offline). În cazul dovezii mizei, blocurile sunt generate cu ~10% mai frecvent decât în cazul dovezii muncii. Această schimbare este destul de nesemnificativă și este puțin probabil să fie observată de utilizatori. + +Dovada mizei a introdus conceptul de finalitate a tranzacției, care nu exista anterior. În cazul dovezii muncii, capacitatea de a inversa un bloc devine exponențial mai dificilă cu fiecare bloc creat peste o tranzacție, dar nu ajunge niciodată la zero. În cazul dovezii mizei, blocurile sunt grupate în epoci (perioade de timp de 6,4 minute, cu 32 de șanse pentru blocuri), pe care validatorii le votează. Când o epocă se încheie, validatorii votează dacă epoca este „justificată”. Dacă validatorii sunt de acord să justifice epoca, aceasta se finalizează în următoarea epocă. Anularea tranzacțiilor finalizate nu este viabilă economic, deoarece ar necesita obținerea și arderea a mai mult de o treime din ETH mizat total. + + + + +ETH mizat și recompensele pentru mizare continuă să fie blocate fără posibilitatea de retragere. Retragerile sunt planificate pentru viitoarea actualizare Shanghai. + + + +Acest lucru poate părea contraintuitiv față de nota de mai sus, conform căreia retragerile nu sunt activate până la actualizarea Shanghai, dar validatorii AU acces imediat la recompensele pentru taxe/MEV dobândite în timpul propunerilor de bloc. + +Protocolul emite ETH drept recompensă validatorilor pentru contribuția la consens. Stratul de consens reprezintă noul ETH emis, unde un validator are o adresă unică ce conține ETH mizat și recompensele pentru protocol. Acest ETH este blocat până la actualizarea Shanghai. + +ETH de pe stratul de execuție este contabilizat separat de stratul de consens. Când utilizatorii execută tranzacții în Rețeaua principală Ethereum, ETH trebuie plătit pentru achitarea costului gazului, inclusiv un comision pentru validator. Acest ETH se află deja pe stratul de execuție, NU este nou emis de protocol și este disponibil pentru validator imediat (cu condiția furnizării unei adrese corecte a „destinatarului taxei” în software-ul client). + + + +După ce actualizarea Shanghai permite retragerile, toți validatorii vor fi stimulați să retragă soldul mizei peste 32 ETH, deoarece aceste fonduri nu se adaugă la randament și, în caz contrar, vor fi blocate. În funcție de APR (stabilit de ETH total mizat), aceștia ar putea fi stimulați să abandoneze validatorul(ii) pentru a-și recupera întregul sold sau, poate, pentru a miza și mai mult recompensele, pentru a obține un randament și mai bun. + +O precizare importantă și necesară aici, ieșirile complete ale validatorului sunt limitate de protocol, prin urmare doar șase validatori pot ieși pentru fiecare epocă (la fiecare 6,4 minute, prin urmare 1350 pe zi sau doar aproximativ 43.200 ETH pe zi din 10 milioane ETH mizate). Această limită a ratei se ajustează în funcție de ETH total mizat și împiedică un exod de fonduri în masă. În plus, împiedică un potențial atacator să folosească miza pentru a comite un atacat penalizabil și să retragă tot soldul mizat în aceeași epocă înainte ca protocolul să poată aplica penalitatea. + +APR este dinamic în mod intenționat, permițând stakerilor să găsească un echilibru pentru cât de mult sunt dispuși să fie plătiți pentru a ajuta la securizarea rețelei. Când retragerile sunt activate, dacă rata este prea mică, validatorii se vor retrage la o rată limitată de protocol. Treptat, acest lucru crește APR pentru toți cei care rămân, atrăgând stakeri noi sau care revin. + + +## Ce s-a întâmplat cu „Eth2”? {#eth2} + +Termenul „Eth” a devenit perimat. După fuzionarea „Eth1” și „Eth2” într-un singur lanț, nu mai există nevoia de a distinge între două rețele Ethereum. Există doar Ethereum. + +Pentru a limita confuziile, comunitatea a actualizat acești termeni: + +- „Eth1” este acum „stratul de execuție”, care gestionează tranzacțiile și execuția. +- „Eth2” este acum „stratul de consens”, care gestionează consensul pentru dovada mizei. + +Aceste actualizări ale terminologiei modifică numai convențiile pentru denumiri, și nu obiectivele sau foaia de parcurs a lui Ethereum. + +[Aflați mai multe despre noua denumire 'Eth2'](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) + +## Relațiile dintre actualizări {#relationship-between-upgrades} + +Toate actualizările Ethereum se află într-o anumită corelație. Să recapitulăm cum este corelată Fuziunea cu celelalte actualizări. + +### Fuziunea și Lanțul Beacon {#merge-and-beacon-chain} + +Fuziunea reprezintă adoptarea formală a Lanțului Beacon ca noul strat de consens pentru stratul de execuție original al Rețelei principale. De la Fuziune, validatorii sunt alocați pentru a securiza Rețeaua principală Ethereum, iar minarea pe [dovada muncii](/developers/docs/consensus-mechanisms/pow/) nu mai este un mijloc valid de producere a blocurilor. + +În schimb, blocurile sunt propuse prin validarea nodurilor care dețin ETH mizat în schimbul dreptului de a participa la consens. Aceste modernizări au deschis drumul pentru viitoarele modernizări de scalabilitate, inclusiv pentru fragmentare. + + + Lanțul Beacon + + +### Fuziunea și actualizarea Shanghai {#merge-and-shanghai} + +Pentru a simplifica și maximiza o tranziție rapidă și de succes la dovada mizei, modernizarea Fuziune nu a inclus anumite funcții anticipate, precum posibilitatea de a retrage ETH mizat. Actualizarea Shanghai este planificată să urmeze Fuziunii, ceea ce va permite stakerilor să efectueze retragerea. + +Rămâi la curent cu [planificarea actualizării Shanghai pe GitHub](https://github.com/ethereum/pm/issues/450) sau pe [Blogul pentru cercetare și dezvoltare al Fundației Ethereum](https://blog.ethereum.org/category/research-and-development/). Curioșii pot afla mai multe despre [Ce se întâmplă după Fuziune](https://youtu.be/7ggwLccuN5s?t=101), o prezentare efectuată de Vitalik la evenimentul ETHGlobal din aprilie 2021. + +### Fuziunea și fragmentarea {#merge-and-data-sharding} + +Inițial, se prevedea ca fragmentarea să fie implementată înainte ca Fuziunea să rezolve problema scalabilității. Cu toate acestea, odată cu avântul [nivelului 2 al soluțiilor de scalare](/layer-2/), prioritatea s-a mutat pe schimbarea dovezii muncii cu dovada mizei. + +Planurile pentru fragmentare evoluează rapid, dar, având în vedere apariția și succesul tehnologiilor de nivelul 2 pentru scalarea executării tranzacției, planurile pentru fragmentare au fost reorientate către găsirea modalității optime de distribuire a problemei de stocare a datelor de apel comprimate din contractele rollup, permițând creșterea exponențială a capacității rețelei. Acest lucru nu ar fi posibil fără a se trece mai întâi la dovada mizei. + + + Fragmentarea + + +## Referințe suplimentare {#further-reading} + + + + diff --git a/src/content/translations/ro/security/index.md b/public/content/translations/ro/security/index.md similarity index 100% rename from src/content/translations/ro/security/index.md rename to public/content/translations/ro/security/index.md diff --git a/public/content/translations/ro/whitepaper/index.md b/public/content/translations/ro/whitepaper/index.md new file mode 100644 index 00000000000..b66ffa436fe --- /dev/null +++ b/public/content/translations/ro/whitepaper/index.md @@ -0,0 +1,501 @@ +--- +title: Ethereum Whitepaper +description: O lucrare introductivă la Ethereum, publicată în 2013 înainte de lansare. +lang: ro +sidebarDepth: 2 +--- + +# Ethereum Whitepaper {#ethereum-whitepaper} + +_Această lucrare introductivă a fost publicată inițial în 2013 de Vitalik Buterin, fondatorul [Ethereum](/what-is-ethereum/), înainte de lansarea proiectului în 2015. Este demn de remarcat faptul că Ethereum, ca multe proiecte software open-source bazate pe comunitate, a evoluat de la începuturile sale inițiale._ + +_Deși are câțiva ani de când a fost creat, menținem această lucrare, deoarece continuă să servească drept referință utilă și o reprezentare exactă a Ethereum și a viziunii sale. Pentru a afla despre cele mai recente evoluții ale Ethereum și despre modul în care se fac modificări ale protocolului, recomandăm acest [ghid](/learn/)._ + +## O nouă generație de contracte inteligente și o platformă de aplicații descentralizată {#a-next-generation-smart-contract-and-decentralized-application-platform} + +Dezvoltarea Bitcoin de către Satoshi Nakamoto în 2009 a fost adesea apreciată ca o dezvoltare radicală în bani și monedă, fiind primul exemplu a unui activ digital care simultan nu are niciun suport sau [valoare intrinsecă](http://bitcoinmagazine.com/8640/an-exploration-of-intrinsic-value-what-it-is-why-bitcoin-doesnt-have-it-and-why-bitcoin-does-have-it/) și niciun emitent sau controlor centralizat". Cu toate acestea, o altă parte - probabil mai importantă - a experimentului Bitcoin este tehnologia blockchain care stă la bază ca instrument de consens distribuit, iar atenția începe rapid să se deplaseze către acest alt aspect al Bitcoin. În mod obișnuit aplicațiile alternative citate ale tehnologiei blockchain includ utilizarea activelor digitale în-blockchain pentru a reprezenta monede personalizate și instrumente financiare ([monede colorate](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit)), proprietatea unui dispozitiv fizic subiacent ([proprietate inteligentă](https://en.bitcoin.it/wiki/Smart_Property)), active non-fungibile precum nume de domenii [(Namecoin](http://namecoin.org)), precum și aplicații mai complexe care implică existența de active digitale controlate direct de o bucată de cod care implementează reguli arbitrare ([contracte inteligente](http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/idea.html)) sau chiar [organizații autonome descentralizate](http://bitcoinmagazine.com/7050/bootstrapping-a-decentralized-autonomous-corporation-part-i/) bazate pe blockchain (DAO). Ce intenționează să ofere Ethereum este un blockchain cu un limbaj de programare Turing-complet încorporat, care poate fi folosit pentru a crea „contracte” care pot fi utilizate pentru a codifica funcții de tranziția de stare arbitrară, permițând utilizatorilor să creeze oricare dintre sistemele descrise mai sus, precum și multe altele pe care nu le-am imaginat încă, pur și simplu scriind logica în câteva linii de cod. + +## Introducere în Bitcoin și concepte existente {#introduction-to-bitcoin-and-existing-concepts} + +### Istoric {#history} + +Conceptul de monedă digitală descentralizată, precum și aplicațiile alternative, precum registrele de proprietate, există de zeci de ani. Protocoalele anonime de numerar electronic din anii 1980 și 1990, bazate în cea mai mare parte pe o primitivă criptografică, cunoscută sub numele de Chaumian Blinding, au furnizat o monedă cu un grad ridicat de confidențialitate, dar nu au reușit să câștige tracțiune din cauza dependenței lor de un sistem centralizat intermediar. În 1998, [b-money](http://www.weidai.com/bmoney.txt) ai lui Wei Dai au devenit prima propunere de a introduce ideea de a crea bani prin rezolvarea puzzle-urilor computaționale, precum și a consensului descentralizat, dar propunerea a avut puține detalii cu privire la modul în care consensul descentralizat ar putea fi implementat. În 2005, Hal Finney a introdus un concept al [dovezilor de muncă reutilizabile](http://nakamotoinstitute.org/finney/rpow/) (rpow), un sistem care folosește ideile de b-money și cele de puzzle-uri Hashcash dificile din punct de vedere al calculului ale lui Adam Back, pentru a crea un concept pentru o criptomonedă, dar din nou, nu a reușit să-și atingă idealul, bazându-se pe computerul de încredere ca back-end. În 2009, o monedă descentralizată a fost implementată pentru prima dată în practică de Satoshi Nakamoto, combinând primitive stabilite pentru gestionarea proprietății prin criptografie cu cheie publică cu un algoritm de consens pentru a urmări cine deține monede, cunoscut sub numele de „dovada muncii”. + +Mecanismul din spatele dovezii muncii a fost un progres astronomic, deoarece a rezolvat simultan două probleme. În primul rând, a furnizat un algoritm de consens simplu și moderat eficient, permițând nodurilor din rețea să convină în mod colectiv asupra unui set de actualizări canonice ale statului registrului Bitcoin. În al doilea rând, a oferit un mecanism pentru a permite intrarea liberă în procesul de consens, rezolvând problema politică de a decide cine ajunge să influențeze consensul, prevenind simultan atacurile de tip „sybil”. Face acest lucru prin substituirea unei bariere formale în calea participării, cum ar fi cerința de a fi înregistrată ca entitate unică pe o anumită listă, cu o barieră economică - greutatea unui singur nod în procesul de votare consens este direct proporțională cu puterea de calcul pe care o aduce nodul. De atunci, a fost propusă o abordare alternativă numită _dovada mizei_ (PoS), calculând greutatea unui nod ca fiind proporțională cu deținerile sale valutare și nu cu resursele de calcul; discutarea meritelor relative ale celor două abordări depășește scopul lucrării acesteia, dar trebuie remarcat faptul că ambele abordări pot fi utilizate pentru a servi drept coloana vertebrală a unei criptomonede. + +Iată o postare de pe blogul lui Vitalik Buterin, fondatorul Ethereum, despre [Preistoria Ethereum](https://vitalik.ca/general/2017/09/14/prehistory.html). [Aici](https://blog.ethereum.org/2016/02/09/cut-and-try-building-a-dream/) este o altă postare de pe blog cu mai multă istorie. + +### Bitcoin ca un sistem de tranziție de stare {#bitcoin-as-a-state-transition-system} + +![Tranziția de stare Ethereum](./ethereum-state-transition.png) + +Din punct de vedere tehnic, registrul unei criptomonede precum Bitcoin poate fi considerat un sistem de tranziție de stare, acolo unde există o „stare” constând din starea de proprietate a tuturor bitcoin-urilor existente și o „funcție de tranziție de stare” care ia o stare și o tranzacție și generează o nouă stare care este rezultatul. Într-un sistem bancar standard, de exemplu, starea este un bilanț, o tranzacție este o cerere să muți $X de la A la B, iar funcția de tranziție a stării reduce valoarea valoarea contului lui A cu $X și crește valoarea contului lui B cu $X. Când contul lui A are mai puțin de $X, în primul rând, starea funcției de tranziție returnează o eroare. Prin urmare, se pot defini formal: + + APPLY(S,TX) -> S' sau ERROR + +În sistemul bancar definit mai sus: + + APPLY({ Alice: $50, Bob: $50 },"trimite $20 de la Alice la Bob") = { Alice: $30, Bob: $70 } + +Dar: + + APPLY({ Alice: $50, Bob: $50 },"trimite $70 de la Alice la Bob") = ERROR + +„Starea” din Bitcoin este colecția tuturor monedelor (din punct de vedere tehnic, „ieșiri de tranzacție necheltuite” sau UTXO) care au fost exploatate dau nu au fost încă cheltuite, fiecare UTXO având o denumire și un proprietar (definit de o adresă de 20 de byți, care este în esență o cheie publică criptografică[fn. 1](#notes)). A tranzacția conține una sau mai multe intrări, fiecare intrare conținând o referință la un UTXO existent și la o semnătură criptografică produsă de cheia privată asociată cu adresa proprietarului și una sau mai multe ieșiri, fiecare ieșire conținând un nou UTXO care va fi adăugat la stare. + +Funcția de tranziție de stare `APPLY(S,TX) -> S'`se poate defini aproximativ după cum urmează: + +1. Pentru fiecare intrare în `TX`: + + - Dacă UTXO la care se face referire nu este în `S`, returnează o eroare. + - În cazul în care semnătura furnizată nu se potrivește cu proprietarul UTXO, returnează o eroare. + +2. În cazul în care suma valorilor tuturor intrărilor UTXO este mai mică decât suma nominală a tuturor ieșirilor UTXO, returnează o eroare. +3. Returnează `S'` cu toate intrările UTXO eliminate și toate ieșirile UTXO adăugate. + +Prima jumătate a primului pas împiedică tranzacțiile să cheltuiască monede care nu există, a doua jumătate a primului pas împiedică tranzacțiile să nu cheltuiască monedele altor persoane, iar a doua etapă impune conservarea valorii. Pentru a utiliza acest lucru pentru plată, protocolul este după urmează. Să presupunem că Alice vrea să trimită 11,7 BTC lui Bob. În primul rând, Alice va căuta un set de UTXO disponibile pe care le deține, care totalizează până la cel puțin 11,7 BTC. În mod realist, Alice nu va va putea obține exact 11,7 BTC; să spunem că minimul pe care îl poate obține este 6+4+2=12. Ea creează apoi o tranzacție cu aceste trei intrări și două ieșiri. Prima ieșire va fi 11,7 BTC cu adresa lui Bob ca proprietar, iar a doua ieșire va fi restul de 0,3 BTC „rest”, proprietarul fiind Alice însăși. + +### Minarea {#mining} + +![Blocuri Ethereum](./ethereum-blocks.png) + +Dacă am avea acces la un serviciu centralizat de încredere, implementarea acestui sistem ar fi banală; ar putea fi pur și simplu codificat exact cum am descris, utilizând discul dur al unui server centralizat pentru a ține evidența stării. Cu toate acestea, cu Bitcoin încercăm să construim un sistem valutar descentralizat, așa că va trebui să combinăm sistemul de tranziție de stare cu unul de consens, pentru a ne asigura că toată lumea este de acord cu ordinea tranzacțiilor. Procesul de consens descentralizat al Bitcoin necesită noduri în rețea pentru a încerca în mod continuu să producă pachete de tranzacții numite „blocuri”. Rețeaua este destinată să producă aproximativ un bloc la fiecare zece minute, fiecare bloc conținând un marcaj temporal, un nonce, o referință (adică hash) a blocului anterior și o listă a tuturor tranzacțiilor care au avut loc de la blocul anterior. În timp, acest lucru creează un „blockchain” persistent, în continuă creștere, care se actualizează constant pentru a reprezenta cea mai recentă stare a registrului Bitcoin. + +Algoritmul de verificare a validării unui bloc, exprimat în acest model, este după urmează: + +1. Verifică dacă blocul anterior la care face referire blocul există și este valid. +2. Verifică dacă marcajul temporal al blocului este mai mare decât cel al blocul anterior[fn. 2](#note) și mai puțin de 2 ore în viitor +3. Verifică dacă dovada muncii pe bloc este valabilă. +4. Să spunem că `S[0]` este starea de la sfârșitul blocului anterior. +5. Să presupunem că `TX` este lista de tranzacții a blocului cu `n` tranzacții. Pentru orice `i` din `0...n-1`, alege `S[i+1] = APPLY(S[i],TX[i])` Dacă vreo aplicație returnează o eroare, ieși și returnează fals. +6. Returnează true și înregistrează `S[n]` ca stare la sfârșitul acestui bloc. + +În esență, fiecare tranzacție în bloc trebuie să furnizeze o stare validă de trecere de la ceea ce a fost starea canonică înainte ca tranzacția să fie executată la noua stare. Reține că starea nu este codificată în bloc în niciun fel; este pur și simplu o abstractizare care să fie ținută minte de nodul de validare și poate fi calculată (în siguranță) pentru orice bloc numai pornind de la starea de geneză și aplicând secvențial fiecare tranzacție în fiecare bloc. În plus, reține că ordinea în care minerul include tranzacțiile în bloc contează; dacă sunt două tranzacții A și B într-un bloc, astfel încât B să cheltuiască UTXO creat de A, atunci blocul va fi valabil dacă A vine înainte de B, dar nu altfel. + +Singura condiție de valabilitate prezentă în lista de mai sus care nu se găsește în alte sisteme este cerința pentru „dovada muncii”. Condiția precisă este ca hash-ul dublu-SHA256 al fiecărui bloc, tratat ca un număr de 256 de biți, trebuie să fie mai mic decât o țintă ajustată dinamic, care din momentul acestei scrieri este de aproximativ 2187. Scopul acestui lucru este de a face crearea blocului „dificilă” din punct de vedere computațional, împiedicând astfel atacatorii „sybil” să refacă întregul blockchain în favoarea lor. Deoarece SHA256 este conceput pentru a fi o funcție de pseudorandom complet imprevizibilă, singura modalitate de a crea un bloc valid este pur și simplu prin încercare și eroare, crescând în mod repetat nonce-ul și verificând dacă noul hash se potrivește. + +La ținta curentă de \~2187, rețeaua trebuie să facă în medie \~269 încercări înainte de a găsi un bloc valid; în general, ținta este recalibrată de rețea la fiecare 2016 blocuri, astfel încât, în medie, un bloc nou este produs de unele noduri din rețea la fiecare zece minute. Pentru a compensa minerii pentru această lucrare de calcul, minerul fiecărui bloc are dreptul de a include o tranzacție oferindu-și 12,5 BTC de nicăieri. În plus, dacă orice tranzacție are o valoare nominală totală mai mare în intrări decât în ​​ieșiri ca rezultat, diferența, de asemenea, merge la miner ca o „taxă de tranzacție”. De altfel, acesta este singurul mecanism prin care este emis BTC; starea genezei nu conținea nicio monedă. + +Pentru a înțelege mai bine scopul mineritului, să examinăm ce se întâmplă în cazul unui atacator rău intenționat. Deoarece criptografia care stă la baza Bitcoin este cunoscută ca fiind sigură, atacatorul va viza o parte a sistemului Bitcoin care nu este protejată de criptografie direct: ordinea tranzacțiilor. Strategia atacatorului este simplă: + +1. Trimite 100 BTC unui comerciant în schimbul unui anumit produs (de preferință un bun digital cu livrare rapidă) +2. Așteaptă livrarea produsului +3. Produce o altă tranzacție trimițând aceleași 100 BTC lui însuși +4. Încercă să convingă rețeaua că tranzacția sa pentru el însuși a fost cea care a venit prima. + +Odată ce pasul (1) a avut loc, după câteva minute un miner va include tranzacția într-un bloc, să zicem blocul numărul 270. După aproximativ o oră, alte cinci blocuri vor fi adăugate lanțului după acel bloc, cu fiecare dintre aceste blocuri indicând indirect tranzacția și astfel, „confirmând-o". În acest moment, comerciantul va accepta plata ca fiind finalizată și va livra produsul; din moment ce presupunem că acesta este un bun digital, livrarea este instantanee. Acum, atacatorul creează o altă tranzacție, trimițând 100 de BTC către el însuși. În cazul în care atacatorul pur și simplu eliberează tranzacția la întâmplare, aceasta nu va fi procesată; minerii vor încerca să ruleze `APPLY(S,TX)` și să observe că `TX` consumă un UTXO care nu mai este în stare. Deci, în schimb, atacatorul creează o „furculiță” a blockchain-ului, începând prin exploatarea unei alte versiuni de bloc 270 indicând spre același bloc 269 ca fiind părinte, dar cu noua tranzacție în locul celei vechi. Pentru că datele blocului sunt diferite, acest lucru necesită refacerea dovezii de muncă. Mai mult decât atât, noua versiune a blocului 270 a atacatorului are un hash diferit, astfel încât blocurile originale de la 271 la 275 nu „indică” spre el; astfel, lanțul original și noul lanț al atacatorului sunt complet separate. Regula este că într-o furculiță cel mai lung blockchain este considerat a fi adevărat, astfel încât minerii legitimi vor lucra pe lanțul 275 în timp ce atacatorul singur lucrează pe lanțul 270. Pentru ca atacatorul să-și facă blockchain-ul lui ca cel mai lung, el ar trebui să aibă mai multă putere de calcul decât restul rețelei combinate pentru a ajunge din urmă (prin urmare, „51% atac”). + +### Arbori Merkle {#merkle-trees} + +![SPV în Bitcoin](./spv-bitcoin.png) + +_Stânga: este suficient să se prezinte doar un număr mic de noduri într-un arbore Merkle pentru a da o dovadă a valabilității unei ramuri._ + +_Dreapta: orice încercare de a schimba orice parte a arborelui Merkle va duce în cele din urmă la o inconsistență undeva în lanț._ + +O caracteristică importantă de scalabilitate a Bitcoin este că blocul este stocat într-o structură de date pe mai multe niveluri. „Hash”-ul unui bloc este de fapt numai hash-ul antetului blocului, o bucată de aproximativ 200 de byți de date care conține marcajul temporal, nonce, hash-ul blocului anterior și hash-ul rădăcină al unei structuri de date numită arborele Merkle care stochează toate tranzacțiile în bloc. Un arbore Merkle este un tip de arbore binar, compus dintr-un set de noduri cu un număr mare de noduri de frunze în partea de jos a arborelui care conțin datele subiacente (plasate dedesubt), un set de noduri intermediare în care fiecare nod este hash-ul celor doi copii ai săi, și în cele din urmă un singur nod rădăcină, format, de asemenea, din hash-ul celor doi copii ai săi, reprezentând „partea de sus” a arborelui. Scopului arborelui Merkle este să permită ca datele dintr-un bloc să fie livrate bucată cu bucată: un nod poate descărca numai antetul unui bloc dintr-o singură sursă, partea mică a arborelui relevantă pentru el de la o altă sursă, și încă să fie siguri că toate datele sunt corecte. Motivul pentru care funcționează este că hash-urile se propagă în sus: dacă un utilizator rău intenționat încearcă să schimbe o tranzacție cu una falsă în partea de jos a unui arbore Merkle, această modificare va provoca o modificare a nodului de mai sus și apoi o modificare a nodului de deasupra aceluia, schimbând în cele din urmă rădăcina arborelui și, prin urmare, hash-ul blocului, determinând protocolul să îl înregistreze ca un bloc complet diferit (aproape sigur cu o dovadă nevalidă de lucru). + +Protocolul arborelui Merkle este, fără îndoială, esențial pentru durabilitatea pe termen lung. Un „nod complet” în rețeaua Bitcoin, unul care stochează și procesează toate elementele fiecărui bloc, ocupă aproximativ 15 GB de spațiu pe disc în rețeaua Bitcoin începând cu aprilie 2014 și crește cu peste un gigabyte pe lună. În prezent, acest lucru este viabil pentru unele calculatoare desktop și nu pentru telefoane, și mai târziu, în viitor, numai întreprinderile și pasionații vor putea participa. Un protocol cunoscut sub numele de „verificare simplificată a plăților” (SPV) permite existența unei alte clase de noduri, numite „noduri ușoare”, care descarcă anteturile de bloc, verifică dovada muncii pe anteturile de bloc și apoi descarcă numai „ramurile” asociate cu tranzacțiile care sunt relevante pentru acestea. Acest lucru permite nodurilor ușoare să determine cu o garanție puternică a securității care este starea oricărei tranzacții Bitcoin, și echilibrul lor actual, doar descărcând o parte foarte mică a întregului blockchain. + +### Aplicații Alternative Blockchain {#alternative-blockchain-applications} + +Ideea de a lua ideea blockchain de bază și de a o aplica altor concepte are, de asemenea, o istorie lungă. În 1998, Nick Szabo a venit cu conceptul de [titluri de proprietate sigure cu autoritatea proprietarului](http://nakamotoinstitute.org/secure-property-titles/), un document care descrie modul în care „noi progrese în tehnologia de baze de date replicate” va permite un sistem bazat pe blockchain pentru stocarea unui registru al celor care dețin un anumit teren, creând un cadru elaborat, care să includă concepte precum exploatarea fermieră, posesia adversă și impozitul pe teren georgian. Cu toate acestea, la momentul respectiv nu a existat, din păcate, niciun sistem eficient de baze de date replicate disponibil, și astfel protocolul nu a fost niciodată pus în aplicare în practică. După 2009 însă, odată ce consensul descentralizat al Bitcoin a fost dezvoltat, o serie de aplicații alternative au început să apară rapid. + +- **Namecoin** - creat în 2010, [Namecoin](https://namecoin.org/) este cel mai bine descris ca o bază de date descentralizată de înregistrare a numelui. În protocoalele descentralizate, cum ar fi Tor, Bitcoin și BitMessage, trebuie să existe o modalitate de identificare a conturilor, astfel încât alte persoane să poată interacționa cu ele, dar în toate soluțiile existente, singurul tip de identificator disponibil este un hash pseudo-aleatoriu ca `1LW79wp5ZBqaHW1jL5TCiBCQYtHagUWy`. În mod ideal, cineva ar dori să poată avea un cont cu un nume ca „george”. Cu toate acestea, problema este că, dacă o persoană poate crea un cont numit „george”, atunci altcineva poate folosi același proces pentru a înregistra „george” pentru ei înșiși, precum și să le impersonalizeze. Singura soluție este modelul „first-to-file”, unde primul care înregistrează reușește și al doilea eșuează - o problemă perfect potrivită pentru protocolul de consens Bitcoin. Namecoin este cea mai veche și cea mai de succes implementare a unui sistem de înregistrare a numelui folosind o astfel de idee. +- **Monede colorate** - scopul [monedelor colorate](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit) este de a servi ca protocol pentru a permite oamenilor să-și creeze propriile monede digitale - sau, în cazul banal important al unei monede cu o unitate, tokenuri digitale, pe blockchain-ul Bitcoin. În protocolul de monede colorate, cineva „emite” o nouă monedă prin atribuirea publică a unei culori la un anumit Bitcoin UTXO, iar protocolul definește în mod recursiv (repetitiv), culoarea altor UTXO pentru a fi aceeași cu culoarea intrării pe care tranzacția care le-a creat o folosește (se aplică unele reguli speciale în cazul intrărilor de culori mixte). Acest lucru permite utilizatorilor să mențină portofele care conțin numai UTXO de o anumită culoare și le folosesc în operațiunile lor ca bitcoin-uri obișnuite, urmărind înapoi prin blockchain pentru a determina culoarea oricărui UTXO pe care îl primesc. +- **Metacoins** - ideea din spatele unei metacoin este de a avea un protocol bazat pe Bitcoin, folosind tranzacții Bitcoin pentru a stoca tranzacții cu metacoin, dar având o funcție de tranziție de stare diferită, `APLPPLY'`. Deoarece protocolul metacoin nu poate împiedica apariția tranzacțiilor metacoin nevalide în blockchain-ul Bitcoin, se adaugă o regulă conform căreia dacă `APPLY'(S,TX)` returnează o eroare, protocolul implicit este `APPLY'(S,TX) = S`. Aceasta oferă un mecanism ușor pentru crearea unui protocol arbitrar de criptomonedă, potențial cu funcții avansate care nu pot fi implementate în interiorul Bitcoin în sine, dar cu un cost de dezvoltare foarte scăzut, odată ce complexitatea mineritului și a rețelelor este deja gestionată de protocolul Bitcoin. Cripomonedele metacoin au fost utilizate pentru implementarea unor clase de contracte financiare, înregistrarea numelor și schimbul descentralizat. + +Astfel, în general, există două abordări către construirea unui protocol de consens: construirea unei rețele independente și construirea unui protocol bazat pe Bitcoin. Fosta abordare, deși are un succes rezonabil în cazul aplicațiilor precum Namecoin, este dificil de implementat; fiecare implementare individuală trebuie să acroșeze (bootstrap) un blockchain independent, precum și construirea și testarea tuturor tranzițiilor de stare necesară și codurilor de rețea. În plus, anticipăm că setul de aplicații pentru tehnologia consensului descentralizat va urma o distribuție a legii puterii în care marea majoritate a aplicațiilor ar fi prea mici pentru a-și justifica propriul blockchain și observăm că există clase mari de aplicații descentralizate, în special organizații autonome descentralizate, care trebuie să interacționeze între ele. + +Abordarea bazată pe Bitcoin, pe de altă parte, are defectul că nu moștenește caracteristicile simplificate ale Bitcoin de verificare a plăților. SPV funcționează pentru Bitcoin, deoarece poate utiliza adâncimea blockchain-ului ca un proxy pentru valabilitate; la un moment dat, odată ce strămoșii unei tranzacții merg destul de departe înapoi, este sigur să spunem că au fost în mod legitim parte a stării. Pe de altă parte, metaprotocoalele bazate pe blockchain nu pot forța blockchain-ul să nu includă tranzacții care nu sunt valabile în contextul propriilor protocoale. Prin urmare, o implementare pe deplin securizată de metaprotocol SPV, ar trebui să scaneze înapoi tot drumul până la începutul blockchain-ului Bitcoin pentru a determina dacă anumite tranzacții sunt sau nu valabile. În prezent, toate implementările „ușoare” de Bitcoin pe bază de metaprotocoale se bazează pe un server de încredere pentru a furniza date, fără îndoială, un rezultat extrem de suboptim mai ales atunci când unul dintre scopurile primare ale unei criptomonede este de a elimina nevoia de încredere. + +### Scripturi {#scripting} + +Chiar și fără extensii, protocolul Bitcoin facilitează de fapt o versiune slabă a unui concept de „contracte inteligente”. UTXO în Bitcoin poate fi deținut nu doar de o cheie publică, ci și de un script mai complicat exprimat într-un limbaj de programare simplu bazat pe stivă. În această paradigmă, o tranzacție care cheltuiește acest UTXO trebuie să furnizeze date care satisfac scriptul. Într-adevăr, chiar și mecanismul de bază de proprietate a unei chei publice este implementat printr-un script: scriptul ia ca intrare o semnătură curbă eliptică, o verifică în raport cu tranzacția și adresa care deține UTXO și returnează 1 dacă verificarea are succes sau 0 în caz contrar. Alte, scripturi mai complicate, există pentru diferite cazuri de utilizare suplimentare. De exemplu, se poate construi un script care necesită semnături din două dintre trei anumite chei private pentru a valida („multisig”), o configurare utilă pentru conturile corporative, conturile de economii sigure și unele situații de comerț fiduciar. Scripturile pot fi, de asemenea, folosite pentru plata de recompense pentru soluționarea de probleme de calcul, și se poate construi chiar și un script care spune ceva de genul „acest Bitcoin UTXO este al tău, dacă poți oferi o dovadă SPV că mi-ai trimis o tranzacție Dogecoin de această denumire”, permițând, în esență, schimbul încrucișat descentralizat de criptomonede. + +Cu toate acestea, limbajul de scripturi implementat în Bitcoin are mai multe limitări importante: + +- **Lipsa exhaustivității Turing** - adică, în timp ce există un subset mare de calcule pe care limbajul de script Bitcoin le acceptă, acesta nu suportă totul. Principala categorie care lipsește este funcția de bucle. Acest lucru se face pentru a evita bucle infinite în timpul verificării tranzacției; teoretic este un obstacol de depășit pentru programatorii de scripturi, deoarece orice buclă poate fi simulată prin simpla repetare a codului de bază de multe ori cu o instrucțiune if, dar conduce la scripturi care sunt foarte ineficiente în spațiu. De exemplu, implementarea unui algoritm alternativ de semnare a curbei eliptice ar necesita probabil 256 de runde de multiplicare repetate, toate incluse individual în cod. +- **Orbire-Valorică** - nu există nicio modalitate pentru ca un script UTXO să ofere un control fin asupra cantității care poate fi retrasă. De exemplu, un caz puternic de utilizare al unui contract oracol ar fi un contract de asigurare hedge, în care A și B introduc BTC în valoare de $1.000 USD, iar după 30 de zile scriptul trimite BTC în valoare de 1.000 USD către A, iar restul către B. Acest lucru ar necesita un oracol pentru a determina valoarea unui BTC în USD, dar chiar și atunci este o îmbunătățire masivă în ceea ce privește încrederea și cerințele de infrastructură față de soluțiile complet centralizate care sunt disponibile acum. Cu toate acestea, deoarece UTXO sunt totul-sau-nimic, singura modalitate de a realiza acest lucru este prin hack-ul foarte ineficient de a avea mai multe UTXO de diferite denominații (de exemplu, un UTXO de 2k pentru fiecare k până la 30) și de a alege O care UTXO îl trimite la A și care la B. +- **Lipsa stării** - [UTXO poate fi cheltuit sau necheltuit](https://bitcoin.org/en/glossary/unspent-transaction-output); nu există nicio oportunitate pentru contracte în mai multe etape sau scripturi care să mențină orice altă stare internă dincolo de aceasta. Acest lucru face dificilă încheierea de contracte de opțiuni în mai multe etape, oferte de schimb descentralizate sau protocoale de angajament criptografice în două etape (necesare pentru recompense de calcul sigure). De asemenea, înseamnă că UTXO poate fi utilizat doar pentru a construi contracte simple, unice și nu contracte mai complexe „fără stare”, cum ar fi organizațiile descentralizate și face dificilă implementarea metaprotocoalelor. Starea binară combinată cu orbirea valorică înseamnă, de asemenea, că o altă aplicație importantă, limitele de retragere, este imposibilă. +- **Orbire-Blockchain** - UTXO sunt oarbe la date blockchain, cum ar fi nonce, marca temporală și hash-ul blocului anterior. Acest lucru limitează sever aplicații cum ar fi jocurile de noroc și alte câteva categorii, privând limbajul de script de o sursă potențială de elemente aleatorii. + +Astfel, vedem trei abordări pentru construirea de aplicații avansate pe bază de criptomonedă: construirea unui nou blockchain, utilizarea scripturilor bazate pe Bitcoin și construirea unui metaprotocol bazat pe Bitcoin. Construirea unui nou blockchain permite libertatea nelimitată în construirea unui set de caracteristici, dar cu prețul timpului de dezvoltare, a efortului de bootstrap și a securității. Utilizarea scripturilor este ușor de implementat și standardizat, dar este foarte limitată în ceea ce privește capacitățile sale, iar metaprotocoalele, deși sunt ușoare, suferă de defecte în scalabilitate. Cu Ethereum, intenționăm să construim un cadru alternativ care să ofere câștiguri și mai mari în ceea ce privește ușurința dezvoltării, precum și proprietăți și mai puternice ale clientului ușor, permițând în același timp aplicațiilor să partajeze un mediu economic și de securitate blockchain. + +## Ethereum {#ethereum} + +Intenția Ethereum este de a crea un protocol alternativ pentru construirea de aplicații descentralizate, oferind un set diferit de compromisuri care credem că va fi foarte util pentru o mare clasă de aplicații descentralizate, cu un accent deosebit pe situații în care timpul de dezvoltare rapidă, securitatea pentru aplicațiile mici și rar utilizate, precum și capacitatea diferitelor aplicații de a interacționa foarte eficient sunt importante. Ethereum face acest lucru prin construirea a ceea ce este, în esență, nivelul fundamental abstract final: un blockchain cu un limbaj de programare built-in Turing-complet, care permite oricui să scrie contracte inteligente și aplicații descentralizate în care ei pot crea propriile reguli arbitrare pentru proprietate, formatele de tranzacție și funcțiile de tranziție de stare. O versiune de bază a Namecoin poate fi scrisă în două linii de cod, iar alte protocoale, cum ar fi monedele și sistemele de reputație pot fi construite în mai puțin de douăzeci de minute. Contracte inteligente, „cutii” criptografice care conțin valoare și o deblochează numai dacă sunt îndeplinite anumite condiții, pot fi, de asemenea, construite pe această platformă, cu mult mai multă putere decât cea oferită de scriptul Bitcoin din cauza puterilor adăugate de exhaustivitatea-Turing, valoarea-conștientizată, blockchain-conștientizat și starea. + +### Filozofie {#philosophy} + +Designul din spatele Ethereum este destinat să urmeze următoarele principii: + +1. **Simplitate**: protocolul Ethereum ar trebui să fie cât mai simplu posibil, chiar și cu prețul unor stocări de date sau ineficiență de timp.[fn. 3](#notes) În mod ideal, un programator mediu ar trebui să poată urmări și implementa întreaga specificație, [fn. 4](#notes) astfel încât să realizăm pe deplin potențialul de democratizare fără precedent pe care îl aduce criptomoneda și să promoveze viziunea Ethereum ca protocol deschis tuturor. Orice optimizare care adaugă complexitate nu ar trebui inclusă decât dacă oferă beneficii foarte substanțiale. +2. **Universalitatea**: o parte fundamentală a filozofiei de proiectare a Ethereum este că Ethereum nu are „caracteristici”.[fn. 5](#notes) În schimb, Ethereum oferă un limbaj de script intern Turing-complet, pe care un programator îl poate folosi pentru a construi orice tip de contract inteligent sau tranzacție care poate fi definit matematic. Dorești să inventezi propriul tău instrument financiar derivat? Cu Ethereum, poți. Vrei să-ți faci propria monedă? Configureaz-o ca un contract Ethereum. Dorești să configurezi un Daemon sau Skynet la scară largă? Este posibil să trebuiască să ai câteva mii de contracte și să te asiguri că le hrănești cu generozitate, pentru a face acest lucru, dar nimic nu te oprește cu Ethereum la îndemână. +3. **Modularitate**: părțile protocolului Ethereum ar trebui să fie proiectate astfel încât să fie cât mai modulare și separabile. Pe parcursul dezvoltării, obiectivul nostru este să creăm un program în care, dacă se va face o mică modificare de protocol într-un singur loc, stiva de aplicații ar continua să funcționeze fără alte modificări. Inovații precum Ethash (vezi [Anexa la Yellow Paper](https://ethereum.github.io/yellowpaper/paper.pdf#appendix.J) sau [articolul wiki](https://github.com/ethereum/wiki/wiki/Ethash)), arborii Patricia modificați ([Yellow Paper](https://ethereum.github.io/yellowpaper/paper.pdf#appendix.D), [wiki](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-Patricia-Tree)) și RLP ([YP](https://ethereum.github.io/yellowpaper/paper.pdf#appendix.B), [wiki](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-RLP)) ar trebui să fie și sunt implementate ca biblioteci separate, complete cu caracteristici. Acest lucru se întâmplă astfel încât, deși sunt utilizate în Ethereum, chiar dacă Ethereum nu necesită anumite caracteristici, astfel de caracteristici sunt încă utilizabile și în alte protocoale. Dezvoltarea Ethereum ar trebui realizată la maximum, astfel încât să beneficieze întregul ecosistem al criptomonedelor, nu doar tu însuți. +4. **Agilitate**: detaliile protocolului Ethereum nu sunt bătute în piatră. Deși vom fi extrem de prudenți în ceea ce privește modificările la construcțiile de nivel înalt, de exemplu, cu [foaia de parcurs a fragmentelor](https://ethresear.ch/t/sharding-phase-1-spec/1407/), abstractizarea executării, cu disponibilitatea datelor doar consacrată în consens. Testele de calcul ulterioare în procesul de dezvoltare ne pot determina să descoperim că anumite modificări, de exemplu, la arhitectura protocolului sau la Mașina Virtuală Ethereum (EVM), vor îmbunătăți în mod substanțial scalabilitatea sau securitatea. Dacă se găsesc astfel de oportunități, le vom exploata. +5. **Fără discriminare** și **fără cenzură**: protocolul nu ar trebui să încerce să restricționeze în mod activ sau să prevină anumite categorii de utilizare. Toate mecanismele de reglementare din protocol ar trebui să fie concepute pentru a reglementa direct prejudiciul și să nu încerce să se opună unor aplicații nedorite specifice. Un programator poate rula chiar și un script cu buclă infinită în Ethereum atâta timp cât este dispus să plătească în continuare taxa de tranzacție per pas de calcul. + +### Conturile Ethereum {#ethereum-accounts} + +În Ethereum, starea este alcătuită din obiecte numite „conturi”, fiecare cont având o adresă de 20 de byți, iar tranzițiile de stare sunt transferuri directe de valoare și informații între conturi. Un cont Ethereum conține patru câmpuri: + +- **Nonce**, un contor utilizat pentru a asigura că fiecare tranzacție poate fi procesată o singură dată +- **Soldul de eter** actual al contului curent +- **Codul contractului** contului, dacă este prezent +- **Stocarea** contului (gol implicit) + +Eter este principalul cripto-combustibil intern al Ethereum și este utilizat pentru plata taxelor de tranzacție. În general, există două tipuri de conturi: **conturi deținute extern**, controlate de chei private și **conturi de contract**, controlate de codul lor de contract. Un cont deținut extern nu are cod și cineva poate trimite mesaje dintr-un cont deținut extern prin crearea și semnarea unei tranzacții; într-un cont de contract, de fiecare dată când contul de contract primește un mesaj, codul său se activează, permițându-i să citească și să scrie în stocarea internă și să trimită alte mesaje sau să creeze contracte la rândul său. + +Reține că aceste „contracte” din Ethereum nu trebuie văzute ca ceva care ar trebui „îndeplinit” sau „respectat”; mai degrabă seamănă cu „agenți autonomi” care trăiesc în interiorul mediului de execuție Ethereum, executând întotdeauna o anumită bucată de cod atunci când sunt „împinși” de un mesaj sau tranzacție și având controlul direct asupra propriului echilibru de eter și propriul depozit de chei/valori pentru a urmări variabilele persistente. + +### Mesaje și tranzacții {#messages-and-transactions} + +Termenul „tranzacție” este utilizat în Ethereum pentru a se referi la pachetul de date semnat care stochează un mesaj care trebuie trimis dintr-un cont deținut extern. Tranzacțiile conțin: + +- Destinatarul mesajului +- Semnătura care identifică expeditorul +- Cantitatea de eter de transferat de la expeditor la destinatar +- Un câmp de date opțional +- Valoarea `STARTGAS`, reprezentând numărul maxim de pași de calcul pe care tranzacția este permisă să-i execute +- Valoare `GASPRICE`, reprezentând comisionul pe care expeditorul îl plătește pe fiecare pas de calcul + +Primele trei sunt câmpuri standard așteptate în orice criptomonedă. Câmpul de date nu are nicio funcție în mod implicit, dar mașina virtuală are un cod de operare pe care un contract îl poate utiliza pentru a accesa datele; un exemplu de utilizare este când un contract funcționează ca un serviciu de înregistrare a domeniului pe blockchain, atunci poate dori să interpreteze datele care i-au fost transmise ca și cum ar conține două „câmpuri”, primul câmp fiind un domeniu de înregistrat și al doilea câmpul fiind adresa IP la care să-l înregistreze. Contractul ar citi aceste valori din datele mesajului și le va pune în mod corespunzător în stocare. + +Câmpurile `STARTGAS` și `GASPRICE` sunt cruciale pentru modelul antinegare a serviciului Ethereum. Pentru a preveni buclele infinite accidentale sau ostile sau alte pierderi de calcul din cod, fiecare tranzacție trebuie să stabilească o limită a numărului de pași de calcul de execuție a codului pe care îi poate folosi. Unitatea fundamentală de calcul este „gazul”; de obicei, un pas de calcul costă 1 gaz, dar unele operațiuni costă cantități mai mari de gaz, deoarece sunt mai scumpe din punct de vedere al calculului sau măresc cantitatea de date care trebuie stocate ca parte a stării. Există, de asemenea, o taxă de 5 gaz pentru fiecare byte în datele tranzacției. Intenția sistemului de taxare este de a cere unui atacator să plătească proporțional pentru fiecare resursă pe care o consumă, inclusiv calculul, lățimea de bandă și stocarea; prin urmare, orice tranzacție care face ca rețeaua să consume o cantitate mai mare din oricare dintre aceste resurse trebuie să aibă o taxă de gaz aproximativ proporțională cu creșterea. + +### Mesaje {#messages} + +Contractele au capacitatea de a trimite „mesaje” către alte contracte. Mesajele sunt obiecte virtuale care nu sunt niciodată serializate și există doar în mediul de execuție Ethereum. Un mesaj conține: + +- Expeditorul mesajului (implicit) +- Destinatarul mesajului +- Cantitatea de eter de transferată cu mesajul +- Un câmp de date opțional +- O valoare `STARTGAS` + +În esență, un mesaj este ca o tranzacție, cu excepția faptului că este produs de un contract și nu de un actor extern. Un mesaj este produs atunci când un contract care execută codul execută opcodul `CALL`, care produce și execută un mesaj. Asemenea unei tranzacții, un mesaj duce la contul destinatarului care își execută codul. Astfel, contractele pot avea relații cu alte contracte exact în același mod în care pot avea actorii externi. + +A se reține că alocația de gaz atribuită unei tranzacții sau contract se aplică gazului total consumat de acea tranzacție și tuturor sub-execuțiilor. De exemplu, dacă un actor extern A trimite o tranzacție către B cu 1.000 de gaz, iar B consumă 600 de gaz înainte de a trimite un mesaj către C, iar executarea internă a lui C consumă 300 de gaz înainte de întoarcere, atunci B poate cheltui încă 100 de gaz înainte de a rula fără combustibil. + +### Funcția de tranziție a stării Ethereum {#ethereum-state-transition-function} + +![Tranziția stării eterului](./ether-state-transition.png) + +Funcția de tranziție a stării Ethereum, `APPLY(S,TX) -> S'` poate fi definită după urmează: + +1. Verifică dacă tranzacția este bine formată (de exemplu, are numărul corect de valori), semnătura este valabilă, iar nonce-ul se potrivește cu nonce-ul din contul expeditorului. Dacă nu, întoarce o eroare. +2. Calculează taxa de tranzacție ca `STARTGAS * GASPRICE` și determină adresa de trimitere din semnătură. Scade taxa din soldul contului expeditorului și incrementează nonce-ul expeditorului. Dacă nu există un sold suficient pentru a cheltui, întoarce o eroare. +3. Inițializează `GAS = STARTGAS` și scoate o anumită cantitate de gaz pe byte pentru a plăti pentru byți din tranzacție. +4. Transferă valoarea tranzacției din contul expeditorului în contul de primire. În cazul în care contul de primire nu există încă, îl creează. În cazul în care contul de primire este un contract, execută codul contractului, fie până la finalizarea contractului, fie până când execuția rămâne fără gaz. +5. Dacă transferul de valori nu a reușit, deoarece expeditorul nu a avut suficienți bani sau executarea codului a rămas fără gaz, anulează toate schimbările de stare, cu excepția plății taxelor, și adaugă taxele în contul minerului. +6. În caz contrar, rambursează expeditorului taxele pentru toate gazele rămase și trimite taxele plătite pentru gazul consumat minerului. + +Să presupunem că avem un contract cu acest cod: + + if !self.storage[calldataload(0)]: + self.storage[calldataload(0)] = calldataload(32) + +Reține că, în realitate, codul contractului este scris în cod EVM de nivel scăzut; acest exemplu este scris în Serpent, unul dintre limbajele noastre de nivel înalt, pentru claritate, și poate fi compilat în codul EVM. Să presupunem că stocarea contractului începe goală și că o tranzacție este trimisă cu o valoare de 10 eter, 2.000 gaz, 0,001 gasprice de eter și 64 de byți de date, cu byți 0-31 reprezentând numărul `2` și byți 32-63 care reprezintă șirul `CHARLIE`. [fn. 6](#notes) Procesul pentru funcția de tranziție de stare în acest caz este după urmează: + +1. Verifică dacă tranzacția este validă și bine formată. +2. Verifică dacă expeditorul tranzacției are cel puțin 2.000 \* 0,001 = 2 eter. Dacă este, atunci scade 2 eter din contul expeditorului. +3. Gazul inițial = 2.000; dacă presupunem că tranzacția are o lungime de 170 byți și taxa pe byte este de 5, scade 850, astfel încât să rămână 1.150 de gaz. +4. Scade încă 10 eter din contul expeditorului și îi adaugă în contul contractului. +5. Rulează codul. În acest caz, acest lucru este simplu: se verifică dacă se utilizează stocarea contractului la indexul `2`, observă că nu este, și astfel se setează stocarea la indexul `2` la valoarea `CHARLIE`. Să presupunem că acest lucru ia 187 de gaz, astfel încât cantitatea rămasă de gaz este de 1.150 - 187 = 963 +6. Adăugă 963 \* 0,001 = 0,963 eter înapoi în contul expeditorului și returnează starea rezultată. + +Dacă nu a existat niciun contract la finalul tranzacției, atunci taxa totală de tranzacție ar fi pur și simplu egală cu valoarea `GASPRICE` înmulțită cu durata tranzacției în byți, iar datele trimise împreună cu tranzacția ar fi irelevante. + +Reține că mesajele funcționează similar cu tranzacțiile în ceea ce privește revenirile: dacă o execuție de mesaj rămâne fără gaz, atunci execuția acelui mesaj și toate celelalte execuții declanșate de acea execuție revin, dar execuțiile părinte nu trebuie să revină. Aceasta înseamnă că este „sigur” ca un contract să solicite un alt contract, ca și cum A ar apela B cu gaz G, atunci execuția lui A este garantată că va pierde cel mult G gaz. În cele din urmă, reține că există un opcod, `CREATE`, care creează un contract; mecanica sa de execuție este în general similară cu `CALL`, cu excepția că rezultatul execuției determină codul unui contract nou creat. + +### Executarea codului {#code-execution} + +Codul din contractele Ethereum este scris într-un limbaj bytecode, de nivel scăzut, bazat pe stivă, denumit „codul mașinii virtuale Ethereum” sau „codul EVM”. Codul constă dintr-o serie de byți, în care fiecare byte reprezintă o operație. În general, execuția codului este o buclă infinită care constă din efectuarea în mod repetat a operației la contorul programului curent (care începe la zero) și apoi creșterea incrementală a contorului programului cu unul, până când se ajunge la sfârșitul codului sau se detectează o instrucțiune de eroare sau `STOP` sau `RETURN`. Operațiunile au acces la trei tipuri de spații în care să stocheze date: + +- **Stiva**, un container „last-in-first-out” (LIFO) către care valorile pot fi împinse și introduse +- **Memorie**, o matrice de byți extensibilă infinit +- **Stocarea** pe termen lung a contractului, un depozit de chei/valori. Spre deosebire de stivă și memorie, care se resetează după terminarea calculului, stocarea persistă pe termen lung. + +De asemenea, codul poate accesa valoarea, expeditorul și datele mesajului primit, precum și datele antetului blocului, iar codul poate returna, de asemenea, o matrice de byți de date ca ieșire. + +Modelul formal de execuție al codului EVM este surprinzător de simplu. În timp ce mașina virtuală Ethereum rulează, starea sa completă de calcul poate fi definită de secvența de variabile `(block_state, transaction, message, code, memory, stack, pc, gas)`, unde `block_state` este starea globală care conține toate conturile și include solduri și stocarea. La începutul fiecărei runde de execuție, instrucțiunea curentă se găsește luând byte-ul `pc` al `codului` (sau 0 dacă `pc >= len (cod)`) și fiecare instrucțiune are propria definiție în ceea ce privește modul în care afectează secvența de variabile. De exemplu, `ADD` scoate două articole din stivă și împinge suma lor, reduce `gas` cu 1 și crește `pc` cu 1, iar `SSTORE` scoate primele două articole din stivă și introduce al doilea articol în stocarea contractului la indexul specificat de primul articol. Deși există multe modalități de a optimiza execuția mașinii virtuale Ethereum prin compilare-din-mers, o implementare de bază a Ethereum se poate face în câteva sute de linii de cod. + +### Blockchain și minerit {#blockchain-and-mining} + +![Diagrama blocul aplicării Ethereum](./ethereum-apply-block-diagram.png) + +Blockchain-ul Ethereum este în multe feluri similar cu blockchain-ul Bitcoin, deși are unele diferențe. Principala diferență dintre Ethereum și Bitcoin în ceea ce privește arhitectura blockchain este că, spre deosebire de Bitcoin (care conține doar o copie a listei de tranzacții), blocurile Ethereum conțin o copie a listei de tranzacții și cea mai recentă stare. În afară de aceasta, alte două valori, numărul blocului și dificultatea, sunt, de asemenea, stocate în bloc. Algoritmul de validare a blocului de bază în Ethereum este după cum urmează: + +1. Verifică dacă blocul anterior la care se face referire există și este valid. +2. Verifică dacă marcajul temporal al blocului este mai mare decât cel al blocului anterior de referință și mai mic de 15 minute în viitor +3. Verifică dacă numărul blocului, dificultatea, rădăcina tranzacției, rădăcina unchiului și limita de gaz (diverse concepte specifice Ethereum de nivel scăzut) sunt valide. +4. Verifică dacă dovada muncii pe bloc este validă. +5. Stabilește `S[0]` ca stare la sfârșitul blocului anterior. +6. Stabilește `TX` să fie lista de tranzacții a blocului, cu `n` tranzacții. Pentru toate `i` în `0...n-1`, setează `S[i+1] = APPLY(S[i],TX[i])`. Dacă orice aplicație returnează o eroare sau dacă gazul total consumat în bloc până la acest punct depășește `GASLIMIT`, returnează o eroare. +7. Lasă `S_FINAL` să fie `S[n]`, dar adăugând recompensa bloc plătită minerului. +8. Verifică dacă rădăcina arborelui Merkle a stării `S_FINAL` este egală cu rădăcina de stare finală furnizată în antetul blocului. Dacă este egală, blocul este valid; în caz contrar, nu este valid. + +Abordarea poate părea extrem de ineficientă la prima vedere, deoarece trebuie să stocheze întreaga stare cu fiecare bloc, dar în realitate eficiența ar trebui să fie comparabilă cu cea a Bitcoin. Motivul este că starea este stocată în structura arborelui, iar după fiecare bloc trebuie schimbată doar o mică parte a arborelui. Astfel, în general, între două blocuri adiacente marea majoritate a arborilor ar trebui să fie aceeași, și, prin urmare, datele pot fi stocate o dată și menționate de două ori folosind indicii (adică hash-uri de sub-arbori). Un tip special de arbore cunoscut sub numele de „arborele Patricia” este folosit pentru a realiza acest lucru, inclusiv o modificare a conceptului de arbore Merkle, care permite ca nodurile să fie inserate și șterse, și nu doar schimbate, eficient. În plus, deoarece toate informațiile de stare fac parte din ultimul bloc, nu este nevoie să fie stocată întreaga istorie a blockchain-ului - o strategie care, dacă ar putea fi aplicată la Bitcoin, se poate calcula că ar oferi o economie de 5-20 de ori în spațiu. + +O întrebare frecventă este „unde” este executat codul contractului, în ceea ce privește hardware-ul fizic. Acest lucru are un răspuns simplu: procesul de executare a codului de contract face parte din definiția funcției de tranziție de stare, care face parte din algoritmul de validare al blocului, astfel încât, dacă o tranzacție este adăugată în blocul `B`, executarea codului generat de acea tranzacție va fi executată de toate nodurile, acum și în viitor, care descarcă și validează blocul `B`. + +## Aplicații {#applications} + +În general, există trei categorii de aplicații care funcționează pe Ethereum. În prima categorie sunt aplicațiile financiare, oferind utilizatorilor modalități mai puternice de gestionare și încheiere a contractelor folosind banii lor. Ele includ sub-monedele, instrumentele financiare derivate, contractele de acoperire a riscurilor, portofelele de economii, testamentele și, în final, chiar unele categorii de contracte de muncă pe scară largă. În a doua categorie sunt aplicațiile semi-financiare, în care sunt implicați bani, dar există, de asemenea, o latură grea nemonetară a ceea ce se face; un exemplu perfect este de auto-aplicarea de recompense pentru soluții la problemele de calcul. În cele din urmă, există aplicații precum votul on-line și guvernanța descentralizată care nu sunt deloc financiare. + +### Sisteme token {#token-systems} + +Sistemele token pe-blockchain au multe aplicații, de la sub-monede reprezentând active cum ar fi USD sau aur, la acțiunile companiei, tokenuri individuale reprezentând proprietăți inteligente, cupoane sigure nefalsificabile și chiar sisteme token fără legături la valori convenționale, utilizate ca sisteme de puncte pentru stimulare. Sistemele token sunt surprinzător de ușor de implementat în Ethereum. Ce trebuie să înțelegi este că o monedă, sau sistem de tokenuri, este o bază de date cu o singură operațiune: scade X unități de la A și adaugă X unități lui B, cu condiția ca (1) A să fi avut cel puțin X unități înainte de tranzacție și (2) tranzacția să fie aprobată de A. Tot ce este nevoie pentru a pune în aplicare un sistem de tokenuri este de a pune în aplicare această logică într-un contract. + +Codul de bază pentru implementarea unui sistem de tokenuri în Serpent arată după urmează: + + def send(to, value): + if self.storage[msg.sender] >= value: + self.storage[msg.sender] = self.storage[msg.sender] - value + self.storage[to] = self.storage[to] + value + +Aceasta este, în esență, implementare literală a „sistemului bancar” funcția de tranziție de stare descrisă mai sus în acest document. Câteva linii suplimentare de cod trebuie să fie adăugate pentru a asigura etapa inițială de distribuire a unităților monetare în primul rând și alte câteva cazuri de margine și, în mod ideal, ar trebui adăugată o funcție care să permită altor contracte să interogheze pentru soldul unei adrese. Dar asta e tot. Teoretic, sistemele token bazate pe Ethereum care acționează ca sub-monede pot include o altă caracteristică importantă pe care metamonedele bazate pe Bitcoin în-lanț nu o au: capacitatea de a plăti taxe de tranzacție direct în moneda respectivă. Modalitatea de implementare a acestui lucru este următoarea: contract menține soldul de eter cu cu care să ramburseze expeditorului eter utilizat pentru plata de taxe și reface soldul prin colectarea unităților valutare interne pe care le ia în taxe și revânzarea lor într-o licitație permanentă. Utilizatorii ar trebui, prin urmare, să „activeze” conturile lor cu eter, dar odată ce eterul este acolo ar fi reutilizabil, deoarece contractul ar rambursa de fiecare dată. + +### Instrumente financiare derivate și Monede cu Valoare Stabilă {#financial-derivatives-and-stable-value-currencies} + +Instrumentele financiare derivate sunt cea mai comună aplicație a unui „contract inteligent”, și una dintre cele mai simple de implementat în cod. Principala provocare în punerea în aplicare a contractelor financiare este că majoritatea acestora necesită trimiterea la un instrument bursier de prețuri extern; de exemplu, o aplicație foarte dezirabilă este un contract inteligent care să asigure volatilitatea eterului (sau a altei criptomonede) în raport cu dolarul SUA, dar acest lucru cere contractului să știe care este valoarea ETH/USD. Cel mai simplu mod de a face acest lucru este printr-un contract de „flux de date” menținut de o anumită parte (de exemplu. NASDAQ) conceput astfel încât acea parte are capacitatea de a actualiza contractul după cum este necesar, și oferind o interfață care permite altor contracte să trimită un mesaj la acel contract și a obține înapoi un răspuns care oferă prețul. + +Având în vedere acest ingredient critic, contractul de acoperire împotriva riscurilor ar arăta după urmează: + +1. Așteptă ca partea A să introducă 1.000 eter. +2. Așteptă ca partea B să introducă 1.000 eter. +3. Înregistrează valoarea în USD a 1.000 eter, calculată prin interogarea contractului de alimentare cu date, în stocare, să spunem că acest lucru este $x. +4. După 30 de zile, permite lui A sau B să „reactiveze” contractul pentru a trimite eter în valoare de $x (calculat la noul preț după interogarea contractului de alimentare cu date) la A, iar restul la B. + +Un astfel de contract ar avea un potențial semnificativ în cripto-comerț. Una dintre principalele probleme citate despre criptomonedă este faptul că este volatilă; deși mulți utilizatori și comercianți ar dori securitatea și comoditatea de a utiliza active criptografice, ei nu ar dori să se confrunte cu perspectiva de a pierde 23% din valoarea fondurilor lor într-o singură zi. Până în prezent, soluția cea mai frecvent propusă a fost activele garantate de emitent; ideea este că un emitent creează o sub-monedă în care are dreptul de a emite și revoca unități și furnizează o unitate de monedă oricui le furnizează (off-line) cu o unitate a unui activ suport specificat (de exemplu, aur, USD). Emitentul promite apoi să furnizeze o unitate a activului suport oricui trimite înapoi o unitate a cripto-activului. Acest mecanism permite oricărui element non-criptografic să fie „elevat” la un activ criptografic, cu condiția ca emitentul să poată fi de încredere. + +Cu toate acestea, în practică, emitenții nu sunt întotdeauna de încredere, iar în unele cazuri infrastructura bancară este prea slabă sau prea ostilă pentru ca astfel de servicii să existe. Instrumentele financiare derivate oferă o alternativă. Aici, în loc de un emitent unic care oferă fonduri pentru a susține un activ, o piață descentralizată de speculatori, pariind că prețul unui activ criptografic de referință (de exemplu ETH) va crește, va juca acest rol. Contrar emitenților, speculatorii nu au nicio opțiune să eșueze partea lor de negociere, deoarece contractul de asigurare le ține fondurile în garanție. Reține faptul că această abordare nu este pe deplin descentralizată, deoarece o sursă de încredere este în continuare necesară pentru un ticker de prețuri, deși discutabil, chiar și acest lucru este o îmbunătățire masivă în ceea ce privește reducerea cerințelor de infrastructură (spre deosebire de a fi un emitent, emiterea unui flux de informații privind prețurile nu necesită licențe și poate fi probabil clasificată drept libertatea cuvântului) și reducând potențialul de fraudă. + +### Sisteme de identitate și de reputație {#identity-and-reputation-systems} + +Cea mai veche criptomonedă alternativă dintre toate, [Namecoin](http://namecoin.org/), a încercat să utilizeze un blockchain ca Bitcoin pentru a oferi un sistem de înregistrare a numelui, unde utilizatorii își pot înregistra numele într-o bază de date publică alături de alte date. Cazul de utilizare citat major este pentru un sistem [DNS](https://wikipedia.org/wiki/Domain_Name_System), de mapare de nume de domenii, cum ar fi „bitcoin.org” (sau, în cazul Namecoin, „bitcoin.bit”) la o adresă IP. Alte cazuri de utilizare includ autentificarea prin e-mail și potențial, sisteme mai avansate de reputație. Iată contractul de bază de furnizare a unui sistem de înregistrare de nume asemănător cu Namecoin pe Ethereum: + + def register(name, value): + if !self.storage[name]: + self.storage[name] = value + +Contractul este foarte simplu; tot ce este o bază de date în interiorul rețelei Ethereum care poate fi adăugată, dar nu modificată sau eliminată. Oricine poate înregistra un nume cu o anumită valoare, iar acea înregistrare va rămâne pentru totdeauna. Un contract mai sofisticat de înregistrare a numelui va avea, de asemenea, o „clauză funcțională” care permite altor contracte să-l interogheze, precum și un mecanism pentru „proprietarul” (adică primul înregistrator) unui nume pentru a schimba datele sau a transfera proprietatea. Se poate adăuga chiar și reputație și funcționalitate web-of-trust. + +### Stocare descentralizată de fișiere {#decentralized-file-storage} + +În ultimii ani, au apărut o serie de companii start-up noi populare de stocare online a fișierelor, cea mai proeminentă fiind Dropbox, care urmărește să permită utilizatorilor să încarce o copie de rezervă a discului lor dur pentru a fi stocat și accesat de pe orice dispozitiv dintr-un dosar special sincronizat, în schimbul unei taxe lunare. Cu toate acestea, în acest moment piața stocării fișierelor este uneori relativ ineficientă; o privire superficială la diverse [soluții existente](http://online-storage-service-review.toptenreviews.com/) arată că, în special la bariera de netrecut a nivelului de 20-200 GB pe care nici cotele gratuite, nici reducerile la nivel de întreprindere nu pot să o treacă, prețurile lunare pentru costurile de stocare a fișierelor mainstream sunt de așa natură că plătești mai mult decât costul întregului disc dur într-o singură lună. Contractele Ethereum pot permite dezvoltarea unui ecosistem descentralizat de stocare a fișierelor, în care utilizatorii individuali pot câștiga cantități mici de bani prin închirierea propriilor discuri dure, iar spațiul neutilizat poate fi utilizat pentru a reduce în continuare costurile stocării fișierelor. + +Elementul cheie care stă la baza unui astfel de dispozitiv ar fi ceea ce am numit „contractul Dropbox descentralizat”. Acest contract funcționează după cum urmează. În primul rând, se împart datele dorite în blocuri, criptând fiecare bloc pentru confidențialitate și se construiește un arbore Merkle din acestea. Se face apoi un contract cu regula că, la fiecare N blocuri, contractul ar alege un index aleatoriu în arborele Merkle (folosind hash-ul blocului anterior, accesibil din codul contractului, ca sursă aleatorie), și să dea X eter primei entități care furnizează o tranzacție simplificată de verificare a plății, ca o dovadă a dreptului de proprietate asupra blocului la acel index specific în arbore. Atunci când un utilizator dorește să-și descarce din nou fișierul, poate folosi un protocol de canal de microplată (de exemplu, plătește 1 szabo pe 32 kilobyți) pentru a recupera fișierul; cea mai eficientă abordare este ca plătitorul să nu publice tranzacția până la final, înlocuind în schimb tranzacția cu una ușor mai profitabilă cu același nonce după fiecare 32 de kilobyți. + +O caracteristică importantă a protocolului este că, deși ar părea că cineva se încrede în mai multe noduri aleatorii care să nu decidă să uite fișierul, se poate reduce riscul aproape la zero, împărțind fișierul în mai multe bucăți prin partajare secretă și urmărind contractele pentru a vedea dacă fiecare bucată este încă în posesia unui nod. Dacă un contract plătește în continuare bani, acesta oferă criptografic o dovadă că cineva de acolo încă stochează fișierul. + +### Organizații autonome descentralizate {#decentralized-autonomous-organizations} + +Conceptul general al unei „organizații autonome descentralizate” este cel al unei entități virtuale care are un anumit set de membri sau acționari care, probabil cu o majoritate de 67%, au dreptul să cheltuiască fondurile entității și să-i modifice codul. Membrii vor decide în mod colectiv modul în care organizația ar trebui să-și aloce fondurile. Metodele de alocare a fondurilor unui DAO ar putea varia de la recompense, salarii la mecanisme și mai exotice, cum ar fi o monedă internă pentru recompensarea muncii. Aceasta replică în esență capcanele legale ale unei companii tradiționale sau nonprofit, dar folosind doar tehnologia blockchain criptografică pentru punerea în aplicare. Până în prezent, cele mai multe discuții despre DAO s-au bazat pe modelul „capitalist” al unei „societăți autonome descentralizate” (DAC) cu acționari care primesc dividende și acțiuni tranzacționale; o alternativă, probabil descrisă ca fiind o „comunitate autonomă descentralizată”, ar avea un procentaj egal în procesul decizional și ar necesita ca 67% dintre membrii existenți să fie de acord să adauge sau să elimine un membru. Cerința ca o persoană să poată avea o singură calitate de membru ar trebui apoi să fie pusă în aplicare în mod colectiv de către grup. + +O schemă generală pentru cum să codezi un DAO este următoarea. Cel mai simplu design este pur și simplu o bucată de cod auto-modificat care se schimbă dacă două treimi dintre membri sunt de acord asupra unei modificări. Deși codul este teoretic imuabil, aceasta se poate ocoli ușor și poate avea o mutabilitate de facto, având bucăți de cod în contracte separate și având adresa contractelor de apelat stocate în stocarea modificabilă. Într-o simplă implementare a unui astfel de contract DAO, ar exista trei tipuri de tranzacții, care se disting prin datele furnizate în tranzacție: + +- `[0, i, K, V]` pentru a înregistra o propunere cu indexul `i` pentru a schimba adresa la indexul de stocare `K` la valoarea `V` +- `[1, i]` pentru a înregistra un vot în favoarea propunerii `i` +- `[2, i]` pentru a finaliza propunerea `i` dacă s-au obținut suficiente voturi + +Contractul va avea apoi clauze pentru fiecare dintre acestea. Acesta va menține o evidență a tuturor modificărilor de stocare deschise, împreună cu o listă a celor care le-au votat. De asemenea, ar avea o listă cu toți membrii. Atunci când orice modificare de stocare ajunge la două treimi din membrii care votează pentru aceasta, o tranzacție finală ar putea executa modificarea. Un schelet mai sofisticat ar avea, de asemenea, capacitatea de vot încorporată pentru funcții precum trimiterea unei tranzacții, adăugarea de membri și eliminarea membrilor și poate prevedea chiar delegarea de vot în stilul [Democrației lichide](https://wikipedia.org/wiki/Delegative_democracy) (adică oricine poate desemna pe cineva să voteze pentru ei și atribuirea este tranzitivă, deci dacă A atribuie lui B și B atribuie lui C atunci C determină votul lui A). Această concepție ar permite DAO să crească organic ca o comunitate descentralizată, permițând oamenilor să delege în cele din urmă sarcina de a filtra cine este membru al specialiștilor, deși, spre deosebire de „sistemul actual”, specialiștii pot să apară și să iasă din existență de-a lungul timpului, deoarece membrii individuali ai comunității își modifică poziția. + +Un model alternativ este pentru o corporație descentralizată, în care orice cont poate avea zero sau mai multe acțiuni, iar două treimi din acțiuni sunt necesare pentru a lua o decizie. Un schelet complet ar implica funcționalitatea de gestionare a activelor, capacitatea de a face o ofertă de cumpărare sau vânzare de acțiuni și capacitatea de a accepta oferte (de preferință cu un mecanism de ordonare a comenzilor în cadrul contractului). Delegația ar exista, de asemenea, în stilul Democrației Lichide, generalizând conceptul de „consiliu de administrație”. + +### Alte aplicații {#further-applications} + +**1. Portofele de economii**. Să presupunem că Alice vrea să-și păstreze fondurile în siguranță, dar este îngrijorată că va pierde sau că cineva îi va pirata cheia privată. Ea pune eter într-un contract cu Bob, o bancă, după cum urmează: + +- Alice singură poate retrage maxim 1% din fonduri pe zi. +- Bob singur poate retrage maxim 1% din fonduri pe zi, dar Alice are capacitatea de a efectua o tranzacție cu cheia ei închizând această abilitate. +- Alice și Bob împreună pot retrage orice. + +În mod normal, 1% pe zi este suficient pentru Alice și, dacă Alice dorește să retragă mai mult, îl poate contacta pe Bob pentru ajutor. În cazul în care cheia lui Alice este piratată, ea aleargă la Bob pentru a muta fondurile într-un nou contract. Dacă ea își pierde cheia, Bob va scoate fondurile în cele din urmă. Dacă Bob se dovedește a fi rău intenționat, atunci ea îl poate bloca în capacitatea sa de a retrage. + +**2. Asigurarea culturilor**. Se poate face cu ușurință un contract de instrumente financiare derivate utilizând un flux de date al vremii în locul oricărui index de preț. Dacă un fermier din Iowa cumpără un instrument financiar derivat care plătește invers în funcție de precipitațiile din Iowa, atunci dacă este secetă, fermierul va fi plătit automat, iar dacă plouă suficient, fermierul va fi fericit, deoarece îi merge bine culturii lui. Aceasta se poate extinde la asigurarea împotriva dezastrelor naturale în general. + +**3. Un flux de date descentralizat**. Pentru contractele financiare pentru diferență, de fapt este posibilă descentralizarea fluxului de date printr-un protocol numit [SchellingCoin](http://blog.ethereum.org/2014/03/28/schellingcoin-a-minimal-trust-universal-data-feed/). SchellingCoin funcționează în principiu după cum urmează: N părți, pun toate în sistem valoarea unei date de referință (de exemplu, prețul ETH/USD), valorile sunt sortate și toți cei între procentajul de 25 și 75 la sută primesc un token ca recompensă. Toată lumea are stimulentul de a oferi răspunsul pe care îl vor oferi toți ceilalți, iar singura valoare pe care un număr mare de jucători pot să cadă de acord în mod realist este implicit evident: adevărul. Acest lucru creează un protocol descentralizat care poate oferi teoretic orice număr de valori, inclusiv prețul ETH/USD, temperatura din Berlin sau chiar rezultatul unui anumit calcul dur. + +**4. Garanția Escrow inteligentă cu multiple semnături**. Bitcoin permite contracte de tranzacții cu mai multe semnături în care, de exemplu, trei din cinci chei date pot cheltui fondurile. Ethereum permite mai multă granularitate; de exemplu, patru din cinci pot cheltui totul, trei din cinci pot cheltui până la 10% pe zi, iar doi din cinci pot cheltui până la 0,5% pe zi. În plus, Ethereum multisig este asincron - două părți își pot înregistra semnăturile pe blockchain în momente diferite, iar ultima semnătură va trimite automat tranzacția. + +**5. Cloud computing**. Tehnologia EVM poate fi utilizată și pentru a crea un mediu de calcul verificabil, permițând utilizatorilor să solicite altora să efectueze calcule și apoi, opțional, să solicite dovezile corectitudinii calculelor la anumite puncte de control selectate aleatoriu. Acest lucru permite crearea unei piețe de cloud computing în care orice utilizator poate participa cu desktopul, laptopul sau serverul specializat, iar verificarea prin sondaj împreună cu depozitele de securitate pot fi utilizate ca să asigure că sistemul este de încredere (și anume, nodurile nu pot trișa profitabil). Totuși, un astfel de sistem poate să nu fie potrivit pentru toate sarcinile; sarcinile care necesită un nivel ridicat de comunicare între procese, de exemplu, nu pot fi realizate cu ușurință pe un nor mare de noduri. Cu toate acestea, alte sarcini sunt mult mai ușor de paralelizat; proiecte precum SETI@home, folding@home și algoritmi genetici pot fi ușor implementate pe o astfel de platformă. + +**6. Jocuri de noroc peer-to-peer**. Orice număr de protocoale de jocuri de noroc peer-to-peer, cum ar fi Frank Stajano și [Cyberdice](http://www.cl.cam.ac.uk/~fms27/papers/2008-StajanoCla-cyberdice.pdf) a lui Richard Clayton, pot fi implementate pe blockchain-ul Ethereum. Cel mai simplu protocol de jocuri de noroc este de fapt pur și simplu un contract pentru diferențierea pe următorul hash de bloc, iar protocoale mai avansate pot fi construite de acolo, creând servicii de jocuri de noroc cu taxe aproape zero care nu au capacitatea de a trișa. + +**7. Piețe de predicție**. Odată furnizat un oracol sau un SchellingCoin, piețele de predicție sunt, de asemenea, ușor de implementat, iar piețele de predicție împreună cu SchellingCoin se pot dovedi a fi prima aplicație principală a [futarchy](http://hanson.gmu.edu/futarchy.html)-ei ca protocol de guvernanță pentru organizațiile descentralizate. + +**8. Piețe descentralizate în lanț**, folosind sistemul de identitate și reputație ca bază. + +## Diverse și preocupări {#miscellanea-and-concerns} + +### Implementare GHOST modificată {#modified-ghost-implementation} + +Protocolul „Greedy Heaviest Observed Subtree” (GHOST) este o inovație introdusă pentru prima dată de Yonatan Sompolinsky și Aviv Zohar în [decembrie 2013](https://eprint.iacr.org/2013/881.pdf). Motivația din spatele GHOST este că blockchain-urile cu timp de confirmare rapidă suferă în prezent de o securitate redusă din cauza unei rate vechi ridicate - deoarece blocurile iau un anumit timp pentru a se propaga prin rețea, dacă minerul A extrage un bloc și apoi minerul B se întâmplă să exploateze un alt bloc înainte ca blocul minerului A să se propage către B, blocul minerului B va ajunge să fie risipit și nu va contribui la securitatea rețelei. Mai mult, există o problemă de centralizare: dacă minerul A este o piscină minieră cu 30% hashpower și B are 10% hashpower, A va risca să producă un bloc vechi 70% din timp (în timp ce în restul de 30% din timp A produce ultimul bloc și astfel va obține date miniere imediat), în timp ce B va risca să producă un bloc vechi 90% din timp. Astfel, dacă intervalul de blocare este suficient de scurt pentru ca rata de învechire să fie mare, A va fi substanțial mai eficient pur și simplu în virtutea mărimii sale. Cu aceste două efecte combinate, blockchain-urile care produc blocuri rapid sunt foarte susceptibile de a conduce la o singură piscină minieră cu un procent suficient de mare din puterea hash a rețelei pentru a avea un control de facto asupra procesului minier. + +Așa cum este descris de Sompolinsky și Zohar, GHOST rezolvă prima problemă a pierderii securității rețelei prin includerea blocurilor vechi în calcularea cărui lanț este „cel mai lung”; adică nu doar părintele și strămoșii strămoșilor unui bloc, ci și descendenții învechiți ai strămoșului blocului (în jargonul Ethereum, „unchii”) se adaugă la calcularea cărui bloc are cea mai mare dovadă totală a muncii care îl suportă. Pentru a rezolva a doua problemă a prejudecății centralizării, mergem dincolo de protocolul descris de Sompolinsky și Zohar și oferim, de asemenea, recompense pentru blocurile vechi: un bloc vechi primește 87,5% din recompensa sa de bază, iar nepotul care include blocul vechi primește restul de 12,5%. Cu toate acestea, taxele de tranzacție nu sunt acordate unchilor. + +Ethereum implementează o versiune simplificată a GHOST care coboară doar șapte niveluri. Mai precis, este definit după cum urmează: + +- Un bloc trebuie să specifice un părinte și trebuie să specifice 0 sau mai mulți unchi +- Un unchi inclus în blocul `B` trebuie să aibă următoarele proprietăți: +- Acesta trebuie să fie un copil direct al strămoșului de generație `k` al `B`, unde `2 <= k <= 7`. +- Nu poate fi un strămoș al `B` +- Un unchi trebuie să fie un antet de bloc valid, dar nu trebuie să fie un bloc verificat anterior sau chiar valid +- Un unchi trebuie să fie diferit de toți unchii incluși în blocurile anterioare și de toți ceilalți unchi incluși în același bloc (neincludere-dublă) +- Pentru fiecare unchi `U` din blocul `B`, minerul lui `B` primește un plus de 3,125% adăugat la recompensa sa de coinbase, iar minerul lui U primește 93,75% dintr-o recompensă standard de coinbase. + +Această versiune limitată de GHOST, cu unchi incluși doar până la a șaptea generație, a fost folosită din două motive. În primul rând, un GHOST nelimitat ar include prea multe complicații în calcularea cărui unchi este valid pentru un anumit bloc. În al doilea rând, un GHOST nelimitat cu compensare așa cum se utilizează în Ethereum elimină stimulentul unui miner de a mina pe lanțul principal și nu pe lanțul unui atacator public. + +### Taxe {#fees} + +Deoarece fiecare tranzacție publicată în blockchain impune rețelei costul necesității descărcării și verificării acesteia, este nevoie de un anumit mecanism de reglementare, care implică de obicei taxe de tranzacție, pentru a preveni abuzul. Abordarea implicită, utilizată în Bitcoin, este de a avea taxe pur voluntare, bazându-se pe mineri să acționeze ca gardieni și a stabili minime dinamice. Această abordare a fost primită foarte favorabil în comunitatea Bitcoin, în special pentru că este „bazată pe piață”, permițând cererii și ofertei - între minerii și expeditorii tranzacțiilor - să stabilească prețul. Cu toate acestea, problema acestei rațiuni este că procesarea tranzacțiilor nu este o piață; deși este intuitiv atractiv să interpretăm procesarea tranzacției ca un serviciu pe care minerul îl oferă expeditorului, în realitate, fiecare tranzacție pe care un miner o include va trebui procesată de fiecare nod din rețea, deci marea majoritate a costului tranzacției prelucrarea este suportată de terți și nu de minerul care ia decizia de a o include sau nu. Prin urmare, este foarte probabil să apară probleme ale tragediei-bunurilor-comune. + +Totuși, așa după cum se dovedește acest defect al mecanismului bazat pe piață, atunci când i se oferă o ipoteză simplificatoare inexactă, magic se anulează singur. Argumentul este următorul. Să presupunem că: + +1. O tranzacție duce la `k` operațiuni, oferind recompensa `kR` oricărui miner care o include acolo unde `R` este setat de expeditor și `k` și `R` sunt (aproximativ) vizibile în prealabil minerului. +2. O operațiune are un cost de procesare `C` pentru orice nod (adică toate nodurile au o eficiență egală) +3. Există `N` noduri miniere, fiecare cu o putere de procesare exact egală (adică `1/N` din total) +4. Nu există noduri complete care nu sunt miniere. + +Un miner ar fi dispus să proceseze o tranzacție dacă recompensa așteptată este mai mare decât costul. Astfel, recompensa așteptată este `kR/N`, deoarece minerul are o șansă de `1/N` de a procesa următorul bloc, iar costul de procesare pentru miner este pur și simplu `kC`. Prin urmare, minerii vor include tranzacții în cazul în care `kR/N > kC` sau `R > NC`. Reține că `R` este taxa pe operațiunea furnizată de expeditor și, prin urmare, este o limită inferioară a beneficiului pe care expeditorul îl obține din tranzacție, iar `NC` este costul întregii rețele de procesare a unei operațiuni. Prin urmare, minerii sunt stimulați să includă doar acele tranzacții pentru care beneficiul utilitar total depășește costul. + +Cu toate acestea, există mai multe abateri importante de la aceste ipoteze în realitate: + +1. Minerul plătește un cost mai mare pentru procesarea tranzacției decât celelalte noduri de verificare, deoarece timpul de verificare suplimentar întârzie propagarea blocului și astfel crește șansa ca blocul să devină învechit. +2. Există noduri complete care nu sunt miniere. +3. Distribuția energiei miniere poate ajunge radical inegalizată în practică. +4. Speculatorii, dușmanii politici și nebunii ale căror funcții de utilitate includ provocarea de daune rețelei există și pot stabili în mod inteligent contracte în care costul lor este mult mai mic decât costul plătit de alte noduri de verificare. + +(1) oferă unui miner tendința de a include mai puține tranzacții și (2) crește `NC`; prin urmare, aceste două efecte, cel puțin parțial, se anulează reciproc. [Cum?](https://github.com/ethereum/wiki/issues/447#issuecomment-316972260) (3) și (4) sunt problemele majore; pentru a le rezolva, instituim pur și simplu un plafon variabil limitat: niciun bloc nu poate face mai multe operații decât `BLK_LIMIT_FACTOR` înmulțit cu media mișcării exponențiale pe termen lung. Mai precis: + + blk.oplimit = floor((blk.parent.oplimit \* (EMAFACTOR - 1) + + floor(parent.opcount \* BLK\_LIMIT\_FACTOR)) / EMA\_FACTOR) + +`BLK_LIMIT_FACTOR` și `EMA_FACTOR` sunt constante care vor fi setate pentru moment la 65536 și 1,5, dar probabil vor fi modificate după o analiză ulterioară. + +Există un alt factor care descurajează supradimensionarea blocurilor în Bitcoin: blocurile care sunt mari vor dura mai mult timp pentru a se propaga și, prin urmare, au o probabilitate mai mare de a deveni vechi. În Ethereum, propagarea blocurilor care consumă foarte mult gaz poate dura, de asemenea, mai mult, pentru sunt mai mari din punct de vedere fizic și pentru că au nevoie de mai mult timp pentru a procesa tranzițiile stării tranzacției pentru a le valida. Această descurajare a întârzierii este o considerație semnificativă în Bitcoin, dar mai puțin în Ethereum din cauza protocolului GHOST; prin urmare, bazarea pe limite de blocuri reglementate, oferă o linie de bază mai stabilă. + +### Calcul și completitudine-Turing {#computation-and-turing-completeness} + +O notă importantă este că mașina virtuală Ethereum este Turing-completă; aceasta înseamnă că orice calcul care se poate realiza, poate fi codificat de codul mașinii virtuale Ethereum, inclusiv buclele infinite. Codul EVM permite bucle infinite în două moduri. În primul rând, există o instrucțiune `JUMP` care permite programului să se întoarcă la un loc anterior din cod și o instrucțiune `JUMPI` pentru a face un salt condițional, permițând instrucțiuni precum `while x < 27: x = x * 2`. În al doilea rând, contractele pot apela alte contracte, permițând potențial buclarea prin recursivitate. Acest lucru duce în mod natural la o problemă: pot utilizatorii rău intenționați să blocheze minerii și nodurile complete, forțându-i să intre într-o buclă infinită? Problema apare din cauza unei probleme în informatică cunoscută sub numele de „problema opririi”: nu există nicio modalitate de a spune, în cazul general, dacă un anumit program se va opri vreodată. + +Așa cum este descris în secțiunea de tranziție de stare, soluția noastră funcționează solicitând unei tranzacții să stabilească un număr maxim de pași de calcul pe care este permis să-i facă, iar dacă execuția durează mai mult, calculul este anulat, dar taxele trebuie plătite. Mesajele funcționează în același mod. Pentru a arăta motivația din spatele soluției noastre, ia în considerare următoarele exemple: + +- Un atacator creează un contract care execută o buclă infinită, apoi trimite o tranzacție activând acea buclă către miner. Minerul va procesa tranzacția, rulând bucla infinită și va aștepta ca aceasta să rămână fără gaz. Chiar dacă execuția rămâne fără gaz și se oprește la jumătatea parcursului, tranzacția este încă valabilă, iar minerul cere totuși taxa de la atacator pentru fiecare etapă de calcul. +- Un atacator creează o buclă infinită foarte lungă cu intenția de a-l forța pe miner să continue să calculeze atât de mult timp, încât atunci când calculul se termină, vor mai apărea câteva blocuri și nu va fi posibil ca minerul să includă tranzacția pentru solicitarea taxei. Cu toate acestea, atacatorului i se va cere să trimită o valoare pentru `STARTGAS`, limitând numărul de pași de calcul pe care îi poate face execuția, astfel încât minerul va ști din timp că acest calcul va lua un număr excesiv de mare de pași. +- Un atacator vede un contract cu un cod cu o formă cum ar fi `send(A,contract.storage[A]); contract.storage[A] = 0` și trimite o tranzacție cu suficient gaz pentru a executa primul pas, dar nu și al doilea (adică efectuarea unei retrageri fără a permite scăderea soldului). Autorul contractului nu trebuie să-și facă griji cu privire la protecția împotriva unor astfel de atacuri, deoarece dacă execuția se oprește la jumătatea modificărilor, acestea vor fi anulate. +- Un contract financiar funcționează luând mediana a nouă fluxuri de date proprietare pentru a minimiza riscul. Un atacator preia unul dintre fluxurile de date, care este conceput pentru a fi modificabil prin intermediul mecanismului de apelare a adresei variabile descris în secțiunea despre DAO-uri și îl convertește pentru a rula o buclă infinită, încercând astfel să forțeze orice încercări de a solicita fonduri de la contractul financiar să ducă la o lipsă de gaz. Cu toate acestea, contractul financiar poate stabili o limită de gaz pentru mesaj pentru a preveni această problemă. + +Alternativa la completitudinea-Turing este incompletitudinea-Turing, în care `JUMP` și `JUMPI` nu există și este permis să existe numai o singură copie a fiecărui contract în stiva de apeluri la un moment dat. Cu acest sistem, sistemul de taxe descris și incertitudinile legate de eficacitatea soluției noastre ar putea să nu fie necesare, deoarece costul executării unui contract ar depăși sau fi egal cu contractul însuși datorită mărimii sale. În plus, incompletitudinea-Turing nu este o limitare chiar atât de mare; dintre toate exemplele de contracte pe care le-am conceput intern până acum, doar unul a necesitat o buclă și chiar și acea buclă ar putea fi eliminată făcând 26 de repetări ale unei bucăți de cod dintr-o linie. Având în vedere implicațiile serioase ale completitudinii-Turing și beneficiul limitat, de ce să nu avem pur și simplu un limbaj Turing incomplet? În realitate, totuși, incompletitudinea-Turing este departe de a fi o soluție elegantă la problemă. Pentru a vedea de ce, ia în considerare următoarele contracte: + + C0: call(C1); call(C1); + C1: call(C2); call(C2); + C2: call(C3); call(C3); + ... + C49: call(C50); call(C50); + C50: (rulează un pas al unui program și înregistrează modificarea stocării) + +Acum, trimite o tranzacție la A. Așadar, în 51 de tranzacții, avem un contract care durează 250 de pași de calcul. Minerii ar putea încerca să detecteze astfel de bombe logice din timp, menținând o valoare alături de fiecare contract, specificând numărul maxim de pași de calcul pe care îi poate face și calculând acest lucru pentru contractele care solicită alte contracte recursiv, dar asta ar necesita interzicerea de către mineri a contractelor care creează alte contracte (din moment ce crearea și executarea tuturor celor 26 de contracte de mai sus ar putea fi ușor transformate într-un singur contract). Un alt punct problematic este proprietatea de variabilitate a câmpului de adresă al unui mesaj, deci, în general, nici măcar nu este posibil să se spună din timp ce alt contract va apela un anumit contract. Prin urmare, una peste alta, avem o concluzie surprinzătoare: completitudinea-Turing este surprinzător de ușor de gestionat, iar lipsa completitudinii-Turing este la fel de surprinzător de dificil de gestionat dacă nu există exact aceleași controale - dar în acest caz de ce să nu lăsăm protocolul să fie doar Turing-complet? + +### Moneda și emiterea {#currency-and-issuance} + +Rețeaua Ethereum include propria sa monedă încorporată, eterul, care servește scopului dublu de a furniza un strat de lichiditate primar pentru a permite schimbul eficient între diferite tipuri de active digitale și, mai important, de a oferi un mecanism de plată a taxelor de tranzacție. Pentru comoditate și pentru a evita argumentele viitoare (a se vedea dezbaterea actuală mBTC/uBTC/satoshi în Bitcoin), denominațiile vor fi pre-etichetate: + +- 1: wei +- 1012: szabo +- 1015: finney +- 1018: eter + +Aceasta ar trebui luată ca o versiune extinsă a conceptului de „dolari” și „cenți” sau „BTC” și „satoshi”. În viitorul apropiat, ne așteptăm ca „eter” să fie utilizat pentru tranzacții obișnuite, „finney” pentru microtranzacții și „szabo" și „wei” pentru discuții tehnice despre taxe și implementarea protocolului; valorile rămase pot deveni utile ulterior și nu ar trebui incluse în clienți în acest moment. + +Modelul de emisiune va fi după cum urmează: + +- Eterul va fi lansat într-o vânzare valutară la prețul de 1.000-2.000 eter per BTC, un mecanism destinat finanțării organizației Ethereum și ca plată pentru dezvoltare care a fost utilizat cu succes de alte platforme, cum ar fi Mastercoin și NXT. Cumpărătorii timpurii vor beneficia de reduceri mai mari. BTC-ul primit din vânzare va fi utilizat în întregime pentru a plăti salarii și recompense programatorilor și va fi investit în diverse proiecte cu scop lucrativ și non-profit din ecosistemul Ethereum și criptomonedă. +- 0,099x suma totală vândută (60.102.216 ETH) va fi alocată organizației pentru a compensa contribuabilii timpurii și pentru a plăti cheltuielile exprimate în ETH înainte de blocul genezei. +- 0,099x suma totală vândută va fi menținută pe termen lung ca rezervă. +- 0,26x suma totală vândută va fi alocată minerilor pe an pentru totdeauna după acel moment. + +| Grup | La lansare | După 1 an | După 5 ani | +| ----------------------------- | ---------- | --------- | ---------- | +| Unități valutare | 1,198X | 1,458X | 2,498X | +| Cumpărători | 83,5% | 68,6% | 40,0% | +| Rezervă cheltuită pre-vânzare | 8,26% | 6,79% | 3,96% | +| Rezervă folosite post-vânzare | 8,26% | 6,79% | 3,96% | +| Mineri | 0% | 17,8% | 52,0% | + +**Rata de creștere a aprovizionării pe termen lung (procente)** + +![Inflația Ethereum](./ethereum-inflation.png) + +_În ciuda emiterii liniare a monedei, la fel ca în cazul Bitcoin în timp, rata de creștere a ofertei tinde totuși la zero_ + +Cele două alternative principale din modelul de mai sus sunt (1) existența și dimensiunea unui fond de dotare și (2) existența unei oferte liniare în continuă creștere, spre deosebire de o aprovizionare plafonată ca în Bitcoin. Justificarea fondului de dotare este următoarea. Dacă fondul de dotare nu ar exista și emisia liniară s-ar reduce la 0,217x pentru a furniza aceeași rată a inflației, atunci cantitatea totală de eter ar fi cu 16,5% mai mică și astfel fiecare unitate ar fi cu 19,8% mai valoroasă. Prin urmare, în echilibrul 19,8% mai mult eter ar fi cumpărat în vânzare, astfel încât fiecare unitate ar fi din nou la fel de valoroasă ca înainte. Organizația ar avea atunci 1,198x de BTC, care poate fi considerat a fi împărțit în două tranșe: BTC-ul original și 0,198x suplimentar. Prin urmare, această situație este _exact echivalentă_ cu dotarea, dar cu o diferență importantă: organizația deține pur BTC și, prin urmare, nu este stimulată să susțină valoarea unității de eter. + +Modelul permanent de creștere a ofertei liniare reduce riscul a ceea ce unii consideră a fi o concentrare excesivă a bogăției în Bitcoin și oferă persoanelor care trăiesc în epocile prezente și viitoare șansa justă de a achiziționa unități valutare, păstrând în același timp un puternic stimulent pentru a obține și deține eter pentru că „rata de creștere a ofertei” ca procent încă tinde la zero în timp. Teoretizăm, de asemenea, că, deoarece monedele se pierd întotdeauna în timp din cauza neglijenței, decesului etc., iar pierderea monedelor poate fi modelată ca procent din oferta totală pe an, că oferta totală de monedă în circulație se va stabiliza, de fapt, la o valoare egală cu emisiunea anuală împărțită la rata de pierdere (de exemplu, la o rată de pierdere de 1%, odată ce aprovizionarea atinge 26X, atunci se va extrage 0,26X și se va pierde 0,26X în fiecare an, creând un echilibru). + +De reținut că, în viitor, este probabil ca Ethereum să treacă la un model de dovadă a mizei pentru securitate, reducând cerința de emitere la undeva între zero și 0,05X pe an. În cazul în care organizația Ethereum pierde finanțarea sau din orice alt motiv dispare, lăsăm deschis un „contract social”: oricine are dreptul să creeze o viitoare versiune candidat a Ethereum, cu o singură condiție și anume cantitatea de eter să fie cel mult egală cu `60.102.216 * (1,198 + 0,26 * n)` unde `n` este numărul de ani după blocul de geneză. Creatorii sunt liberi să vândă în grup, sau să atribuie o parte sau toată diferența dintre expansiunea alimentării datorată PoS și extinderea maximă admisibilă a ofertei, pentru a plăti pentru dezvoltare. Upgrade-urile candidaților care nu respectă contractul social pot fi în mod justificat încorporați în versiuni conforme. + +### Centralizarea mineritului {#mining-centralization} + +Algoritmul de extragere Bitcoin funcționează pe faptul că minerii calculează SHA256 pe versiuni ușor modificate ale antetului blocului de milioane de ori din nou și din nou, până când în cele din urmă un nod vine cu o versiune al cărei hash este mai mic decât ținta (în prezent în jur de 2192). Cu toate acestea, acest algoritm de minerit este vulnerabil la două forme de centralizare. În primul rând, ecosistemul minier a ajuns să fie dominat de ASIC-uri (circuite integrate specifice aplicației), cipuri de calculator concepute pentru, și, prin urmare, de mii de ori mai eficiente la sarcina specifică mineritului de Bitcoin. Aceasta înseamnă că mineritul de Bitcoin și-a pierdut scopul primordial al descentralizării și egalității, necesitând milioane de dolari de capital pentru a participa efectiv. În al doilea rând, majoritatea minerilor Bitcoin nu efectuează de fapt validarea blocurilor la nivel local; în schimb, se bazează pe un bazin centralizat și temporar de date de minerit pentru a furniza anteturile blocului. Această problemă este, cu siguranță, mai gravă: în momentul scrierii acestui articol, primele trei grupuri miniere controlează indirect aproximativ 50% din puterea de procesare din rețeaua Bitcoin, deși acest lucru este atenuat de faptul că minerii pot trece la alte bazine miniere dacă un grup sau coaliția încearcă un atac de 51%. + +Intenția actuală la Ethereum este de a utiliza un algoritm de minerit în care minerii sunt obligați să aducă date aleatorii din stare, să calculeze unele tranzacții selectate aleatoriu din ultimele N blocuri din blockchain și să returneze hash-ul rezultatului. Aceasta are două beneficii importante. În primul rând, contractele Ethereum pot include orice tip de calcul, deci un ASIC Ethereum ar fi în esență un ASIC pentru calcul general - adică un procesor mai bun. În al doilea rând, mineritul necesită acces la întregul blockchain, forțând minerii să stocheze întregul blockchain și cel puțin să fie capabili să verifice fiecare tranzacție. Aceasta elimină necesitatea unor bazine miniere centralizate; deși bazinele miniere pot îndeplini în continuare rolul legitim de distribuire a recompenselor, această funcție poate fi servită la fel de bine de grupurile peer-to-peer fără control central. + +Acest model nu este testat și ar putea exista dificultăți pe parcurs pentru a evita anumite optimizări inteligente atunci când se utilizează executarea contractului ca algoritm minier. Cu toate acestea, o caracteristică deosebit de interesantă a acestui algoritm este aceea că permite oricui să „otrăvească fântâna”, prin introducerea unui număr mare de contracte în blockchain-ul special conceput pentru a bloca anumite ASIC-uri. Există stimulente economice pentru producătorii ASIC de a folosi un astfel de truc pentru a se ataca reciproc. Astfel, soluția pe care o dezvoltăm este, în cele din urmă, o soluție economică adaptativă umană, mai degrabă decât una pur tehnică. + +### Scalabilitatea {#scalability} + +O preocupare comună cu privire la Ethereum este problema scalabilității. Asemenea cu Bitcoin, Ethereum suferă de defectul că fiecare tranzacție trebuie procesată de fiecare nod din rețea. Cu Bitcoin, dimensiunea blockchain-ului actual se situează la aproximativ 15 GB, crescând cu aproximativ 1 MB pe oră. Dacă rețeaua Bitcoin ar procesa cele 2.000 de tranzacții Visa pe secundă, ar crește cu 1 MB pe trei secunde (1 GB pe oră, 8 TB pe an). Este posibil ca Ethereum să sufere un tipar similar de creștere, înrăutățit de faptul că vor exista multe aplicații bazate pe blockchain-ul Ethereum în loc de doar o monedă, așa cum este cazul cu Bitcoin, dar ameliorat de faptul că nodurile complete Ethereum trebuie să stocheze doar starea în locul întregului istoric blockchain. + +Problema cu o dimensiune atât de mare a blockchain-ului este riscul de centralizare. Dacă dimensiunea blockchain-ului crește la, să zicem, 100 TB, atunci scenariul probabil ar fi că doar un număr foarte mic de companii mari ar rula noduri complete, toți utilizatorii obișnuiți folosind noduri SPV ușoare. Într-o astfel de situație, apare potențialul îngrijorător că nodurile complete ar putea să se unească și să cadă cu toții de acord să trișeze într-un mod profitabil (de exemplu, să schimbe recompensa pe bloc, să-și acorde singuri BTC). Nodurile ușoare nu ar avea nicio modalitate de a detecta acest lucru imediat. Desigur, probabil ar exista cel puțin un nod cinstit complet și, după câteva ore, informațiile despre fraudă se vor scurge prin canale precum Reddit, dar în acel moment ar fi prea târziu: ar depinde de utilizatorii obișnuiți să se organizeze într-un efort de a pune pe lista neagră blocurile date, o problemă de coordonare masivă și probabil imposibil de realizat la o scară similară cu cea a lansării unui atac de succes de 51%. În cazul Bitcoin-ului, aceasta este în prezent o problemă, dar există o modificare blockchain [sugerată de Peter Todd](https://web.archive.org/web/20140623061815/http://sourceforge.net/p/bitcoin/mailman/message/31709140/) care va atenua această problemă. + +În viitorul apropiat, Ethereum va folosi două strategii suplimentare pentru a face față acestei probleme. În primul rând, datorită algoritmilor de exploatare bazate pe blockchain, cel puțin fiecare miner va fi forțat să fie un nod complet, încât să fie în numărul egal sau mai mic cu cel al nodurilor complete. În al doilea rând și mai important totodată, vom include o rădăcină intermediară de arbore de stare în blockchain, după procesarea fiecărei tranzacții. Chiar dacă validarea blocurilor este centralizată, atâta timp cât există un nod de verificare onest, problema centralizării poate fi ocolită printr-un protocol de verificare. Dacă un miner publică un bloc nevalid, acel bloc trebuie să fie formatat greșit sau să aibă o stare `S[n]` incorectă. Deoarece `S[0]` este cunoscut ca fiind corect, trebuie să existe o primă stare `S [i]` care este incorectă unde `S[i-1]` este corect. Nodul de verificare ar furniza indexul `i`, împreună cu o „dovadă de invaliditate” constând din subsetul de noduri de arbori Patricia care trebuie să proceseze `APPLY(S[i-1], TX [i]) -> S[i]`. Nodurile ar putea folosi acele noduri Patricia pentru a rula acea parte de calcul, și a vedea dacă `S[i]` generat nu corespunde cu `S[i]` furnizat. + +Un alt atac, mai sofisticat, ar implica minerii rău intenționați care publică blocuri incomplete, astfel încât informațiile complete nici măcar să nu existe pentru a determina dacă blocurile sunt valabile sau nu. Soluția la acest lucru este un protocol provocare-răspuns: nodurile de verificare emit „provocări” sub formă de indicii de tranzacție țintă, iar la primirea unui nod, un nod ușor tratează blocul ca fiind nesigur până când un alt nod, fie un miner fie un alt verificator, oferă un subset de noduri Patricia ca dovadă a validității. + +## Concluzie {#conclusion} + +Protocolul Ethereum a fost conceput inițial ca o versiune îmbunătățită a unei criptomonede, oferind caracteristici avansate, cum ar fi escrow pe-blockchain, limitele de retragere, contracte financiare, piețele de jocuri și altele asemenea, printr-un limbaj de programare extrem de generalizat. Protocolul Ethereum nu ar „sprijini” nicio aplicație în mod direct, dar existența unui limbaj de programare complet Turing înseamnă că, teoretic, pot fi create contracte arbitrare pentru orice tip de tranzacție sau aplicație. Totuși, ceea ce este mai interesant la Ethereum este că protocolul Ethereum se deplasează mult dincolo de simpla monedă. Protocoalele legate de stocarea descentralizată a fișierelor, calculul descentralizat și piețele de predicție descentralizate, printre alte zeci de astfel de concepte, au potențialul de a spori substanțial eficiența industriei de calcul și de a oferi un impuls masiv altor protocoale peer-to-peer prin adăugarea pentru prima dată a unui nivel economic. În cele din urmă, există, de asemenea, o gamă substanțială de aplicații care nu au nimic de-a face cu banii, absolut deloc. + +Conceptul unei funcții de tranziție de stare arbitrară așa cum este implementat de protocolul Ethereum furnizează o platformă cu potențial unic; mai degrabă decât să fie un protocol închis, cu un singur scop, destinat unei game specifice de aplicații în stocarea datelor, jocuri de noroc sau finanțe, Ethereum este deschis prin design și credem că este extrem de bine potrivit pentru a servi ca nivel fundamental pentru un număr foarte mare de protocoale atât financiare, cât și non-financiare în anii următori. + +## Note și referințe suplimentare {#notes-and-further-reading} + +### Note {#notes} + +1. Un cititor sofisticat poate observa că, de fapt, o adresă Bitcoin este hash-ul cheii publice a curbei eliptice și nu cheia publică în sine. Cu toate acestea, este de fapt o terminologie criptografică perfect legitimă să se refere la hash-ul cheii publice ca la cheia publică în sine. Acest lucru se întâmplă deoarece criptografia Bitcoin poate fi considerată a fi un algoritm personalizat de semnătură digitală, în care cheia publică se compune din hash-ul cheii publice ECC, semnătura constă din cheia publică ECC concatenată cu semnătura ECC, iar algoritmul de verificare implică verificarea cheii publice ECC în semnătură împotriva hash-ului cheii publice ECC furnizat ca o cheie publică și apoi verificarea semnăturii ECC împotriva cheii publice ECC. +2. Din punct de vedere tehnic, mediana celor 11 blocuri anterioare. +3. Protocolul Ethereum ar trebui să fie la fel de simplu pe cât de practic, dar poate fi necesar să ai un nivel destul de ridicat de complexitate, de exemplu, la scalare, pentru a absorbi costurile de stocare, lățimea de bandă și I/O, pentru securitate, confidențialitate, transparență etc. Acolo unde este necesară complexitatea, documentația ar trebui să fie cât mai clară, concisă și actualizată posibil, astfel încât cineva fără nici o cunoștință în Ethereum să-l poată învăța și să devină un expert. +4. Consultă [Yellow Paper](https://ethereum.github.io/yellowpaper/paper.pdf) pentru Mașina Virtuală Ethereum (care este utilă ca specificație și ca referință pentru construirea unui client Ethereum de la zero), în timp ce există multe subiecte în [wiki Ethereum](https://github.com/ethereum/wiki/wiki), cum ar fi dezvoltarea de fragmente, dezvoltarea de bază, dezvoltarea de aplicații dapp, cercetare, cercetare și dezvoltare Casper R&D și protocoale de rețea. Pentru cercetare și posibila implementare viitoare există [ethresear.ch](https://ethresear.ch). +5. Un alt mod de a exprima acest lucru este abstractizarea. Cea mai [recentă foaie de parcurs](https://ethresear.ch/t/sharding-phase-1-spec/1407/67) este planificarea abstractizării execuției, permițând motoarelor de execuție să nu trebuiască neapărat să respecte o specificație canonică, dar, de exemplu, ar putea fi adaptate pentru o aplicație specifică, precum și pentru un fragment. (Această eterogenitate a motoarelor de execuție nu este menționată în mod explicit în foaia de parcurs. Există, de asemenea, fragmentarea eterogenă, pe care Vlad Zamfir a conceput-o.) +6. Pe plan intern, 2 și „CHARLIE” sunt ambele numere, acesta din urmă fiind în reprezentare de bază big-endian 256. Numerele pot fi cel puțin 0 și cel mult 2256-1. + +### Referințe suplimentare {#further-reading} + +1. [Valoare intrinsecă](http://bitcoinmagazine.com/8640/an-exploration-of-intrinsic-value-what-it-is-why-bitcoin-doesnt-have-it-and-why-bitcoin-does-have-it/) +2. [Proprietate inteligentă](https://en.bitcoin.it/wiki/Smart_Property) +3. [Contracte inteligente](https://en.bitcoin.it/wiki/Contracts) +4. [B-money](http://www.weidai.com/bmoney.txt) +5. [Dovezi de muncă reutilizabile](http://www.finney.org/~hal/rpow/) +6. [Titluri de proprietate securizate cu autoritatea proprietarului](http://szabo.best.vwh.net/securetitle.html) +7. [Whitepaper Bitcoin](http://bitcoin.org/bitcoin.pdf) +8. [Namecoin](https://namecoin.org/) +9. [Triunghiul lui Zooko](https://wikipedia.org/wiki/Zooko's_triangle) +10. [Whitepaper Monede colorate](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit) +11. [Whitepaper Mastercoin](https://github.com/mastercoin-MSC/spec) +12. [Corporații autonome descentralizate, Bitcoin Magazine](http://bitcoinmagazine.com/7050/bootstrapping-a-decentralized-autonomous-corporation-part-i/) +13. [Verificare simplificată a plății](https://en.bitcoin.it/wiki/Scalability#Simplifiedpaymentverification) +14. [Arbori Merkle](https://wikipedia.org/wiki/Merkle_tree) +15. [Arbori Patricia](https://wikipedia.org/wiki/Patricia_tree) +16. [GHOST](https://eprint.iacr.org/2013/881.pdf) +17. [StorJ și agenți autonomi, Jeff Garzik](http://garzikrants.blogspot.ca/2013/01/storj-and-bitcoin-autonomous-agents.html) +18. [Mike Hearn despre Proprietăți Inteligente la Festivalul Turing](http://www.youtube.com/watch?v=Pu4PAMFPo5Y) +19. [Ethereum RLP](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-RLP) +20. [Arbori Merkle Patricia Ethereum](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-Patricia-Tree) +21. [Peter Todd despre arborii sumă Merkle](http://sourceforge.net/p/bitcoin/mailman/message/31709140/) + +_Pentru istoricul White Paper, vezi https://github.com/ethereum/wiki/blob/old-before-deleting-all-files-go-to-wiki-wiki-instead/old-whitepaper-for-historical-reference.md_ + +_Ethereum, ca multe proiecte software open-source bazate pe comunitate, a evoluat de la începuturile sale. Pentru a afla despre cele mai recente evoluții ale Ethereum și despre modul în care se fac modificările protocolului, îți recomandăm acest [ghid](/learn/)._ diff --git a/src/content/translations/ru/bridges/index.md b/public/content/translations/ru/bridges/index.md similarity index 100% rename from src/content/translations/ru/bridges/index.md rename to public/content/translations/ru/bridges/index.md diff --git a/src/content/translations/ru/community/code-of-conduct/index.md b/public/content/translations/ru/community/code-of-conduct/index.md similarity index 100% rename from src/content/translations/ru/community/code-of-conduct/index.md rename to public/content/translations/ru/community/code-of-conduct/index.md diff --git a/src/content/translations/ru/community/events/index.md b/public/content/translations/ru/community/events/index.md similarity index 100% rename from src/content/translations/ru/community/events/index.md rename to public/content/translations/ru/community/events/index.md diff --git a/src/content/translations/ru/community/get-involved/index.md b/public/content/translations/ru/community/get-involved/index.md similarity index 100% rename from src/content/translations/ru/community/get-involved/index.md rename to public/content/translations/ru/community/get-involved/index.md diff --git a/src/content/translations/ru/community/grants/index.md b/public/content/translations/ru/community/grants/index.md similarity index 100% rename from src/content/translations/ru/community/grants/index.md rename to public/content/translations/ru/community/grants/index.md diff --git a/src/content/translations/ru/community/language-resources/index.md b/public/content/translations/ru/community/language-resources/index.md similarity index 100% rename from src/content/translations/ru/community/language-resources/index.md rename to public/content/translations/ru/community/language-resources/index.md diff --git a/src/content/translations/ru/community/online/index.md b/public/content/translations/ru/community/online/index.md similarity index 100% rename from src/content/translations/ru/community/online/index.md rename to public/content/translations/ru/community/online/index.md diff --git a/src/content/translations/ru/community/research/index.md b/public/content/translations/ru/community/research/index.md similarity index 100% rename from src/content/translations/ru/community/research/index.md rename to public/content/translations/ru/community/research/index.md diff --git a/public/content/translations/ru/community/support/index.md b/public/content/translations/ru/community/support/index.md new file mode 100644 index 00000000000..d68f8300102 --- /dev/null +++ b/public/content/translations/ru/community/support/index.md @@ -0,0 +1,116 @@ +--- +title: Поддержка Ethereum +description: Получите поддержку в экосистеме Ethereum. +lang: ru +--- + +# Поддержка Ethereum {#support} + +## Официальная поддержка Ethereum {#official-support} + +Ищете официальную поддержку Ethereum? Первое, что вы должны знать, — Ethereum является децентрализованной системой. Это означает, что ни одна центральная организация, структура или лицо не владеет Ethereum, и поэтому не существует официальных каналов поддержки. + +Понимание децентрализованной природы Ethereum жизненно важно, потому что любой, кто утверждает, что является официальной поддержкой Ethereum, вероятно, пытается вас обмануть! Лучшая защита от мошенников — это самообучение и серьезное отношение к безопасности. + + + Безопасность Ethereum и предотвращение мошенничества + + + + Изучение основ Ethereum + + +Несмотря на отсутствие официальной поддержки, многие группы, сообщества и проекты в экосистеме Ethereum рады помочь, и на этой странице вы можете найти много полезной информации и ресурсов. Остались вопросы? Присоединяйтесь к [ethereum.org на платформе Discord](/discord/), и мы постараемся помочь. + +## Поддержка кошелька {#wallet-support} + +У вас проблемы с кошельком? У большинства кошельков есть специальные группы поддержки, которые могут помочь. + +- [MetaMask](https://metamask.zendesk.com/hc/) +- [Argent](https://support.argent.xyz/hc/) +- [MyEtherWallet](https://help.myetherwallet.com/) + +_Это не полный список. Нужна помощь в поиске поддержки для определенного кошелька? Присоединяйтесь к [ethereum.org на платформе Discord](https://discord.gg/ethereum-org), и мы постараемся помочь._ + +Ищете кошелек Ethereum? [Ознакомьтесь с полным списком кошельков Ethereum](/wallets/find-wallet/). + +## Разработка децентрализованных приложений {#building-support} + +Этот процесс может быть сложным. Вот несколько ориентированных на разработку ресурсов с опытными разработчиками Ethereum, которые будут рады помочь. + +- [Университет Alchemy](https://university.alchemy.com/#starter_code) +- [CryptoDevs на платформе Discord](https://discord.gg/Z9TA39m8Yu) +- [Ethereum StackExchange](https://ethereum.stackexchange.com/) +- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) +- [Университет Web3](https://www.web3.university/) +- [LearnWeb3](https://discord.com/invite/learnweb3) + +Вы также можете найти документацию и руководства по разработке в нашем разделе [ресурсов для разработчиков Ethereum](/developers/). + +### Инструментарий {#dapp-tooling} + +Ваш вопрос относится к конкретному инструменту, проекту или библиотеке? У большинства проектов есть чат-серверы или форумы, посвященные поддержке. + +Вот примеры нескольких популярных. + +- [Solidity](https://gitter.im/ethereum/solidity/) +- [ethers.js](https://discord.gg/6jyGVDK6Jx) +- [web3.js](https://discord.gg/GsABYQu4sC) +- [Hardhat](https://discord.gg/xtrMGhmbfZ) +- [Truffle](https://discord.gg/8uKcsccEYE) +- [Alchemy](http://alchemy.com/discord) +- [Tenderly](https://discord.gg/fBvDJYR) + +## Запуск узла {#node-support} + +Если вы запускаете узел или валидатора, вот несколько сообществ, призванных помочь вам начать работу. + +- [EthStaker на платформе Discord](https://discord.io/ethstaker) +- [EthStaker на платформе Reddit](https://www.reddit.com/r/ethstaker) + +У большинства команд, разрабатывающих клиентов Ethereum, также есть специальные открытые площадки, где вы можете получить поддержку и задать вопросы. + +### Клиенты исполнения {#execution-clients} + +- [Geth](https://discord.gg/FqDzupGyYf) +- [Nethermind](https://discord.gg/YJx3pm8z5C) +- [Besu](https://discord.gg/p8djYngzKN) +- [Erigon](https://github.com/ledgerwatch/erigon/issues) + +### Клиенты консенсуса {#consensus-clients} + +- [Prysm](https://discord.gg/prysmaticlabs) +- [Nimbus](https://discord.gg/nSmEH3qgFv) +- [Lighthouse](https://discord.gg/cyAszAh) +- [Teku](https://discord.gg/7hPv2T6) +- [Lodestar](https://discord.gg/aMxzVcr) + +Вы также можете [узнать, как запустить узел, здесь](/developers/docs/nodes-and-clients/run-a-node/). + +## Часто задаваемые вопросы {#faq} + +### Эфиры (ETH) отправлены не на тот кошелек {#wrong-wallet} + +Транзакция, отправленная на Ethereum, необратима. К сожалению, если вы отправили эфиры (ETH) не на тот кошелек, вернуть эти средства невозможно. Ни одна центральная организация, структура или лицо не владеет Ethereum — это означает, что никто не может отменить транзакции. Поэтому очень важно всегда перепроверять свои транзакции перед отправкой. + +### Как мне получить Ethereum в бесплатной раздаче? {#giveaway-scam} + +Раздачи Ethereum — это мошенничество, предназначенное для кражи ваших эфиров (ETH). Не ведитесь на предложения, которые кажутся слишком хорошими, чтобы быть правдой, — если вы отправите эфиры (ETH) на адрес раздачи, вы не получите раздачу и не сможете вернуть свои средства. + +[Подробнее о предотвращении мошенничества](/security/#common-scams) + +### Моя транзакция зависла {#stuck-transaction} + +Транзакции в Ethereum иногда могут зависать, если вы ввели меньшую, чем требуется в сети из-за нагрузки, комиссию за транзакцию. Многие кошельки предоставляют возможность повторной отправки той же транзакции, но с более высокой комиссией, чтобы она была обработана. Кроме того, вы можете отменить ожидающую транзакцию, отправив транзакцию на свой адрес и используя тот же одноразовый номер (nonce), что и ожидающая транзакция. + +[Как ускорить или отменить ожидающую транзакцию на MetaMask](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) + +[Как отменить ожидающие транзакции Ethereum](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) + +### Как я могу добыть Ethereum? {#mining-ethereum} + +Майнинг Ethereum стал невозможен. Майнинг был отключен, когда Ethereum перешел с доказательства работы на доказательство владения. Теперь вместо майнеров в Ethereum появились валидаторы. Валидаторы занимаются стейкингом ETH и получают вознаграждение за обеспечение безопасности сети. + +### Как я могу стать дольщиком (стейкером) или валидатором? {#become-validator} + +Чтобы стать валидатором, нужно стать дольщиком 32 ETH в депозитном контракте Ethereum и установить узел валидатора. Более подробная информация доступна на [страницах](/staking) и [лаунчпаде](https://launchpad.ethereum.org/) стейкинга. diff --git a/public/content/translations/ru/dao/index.md b/public/content/translations/ru/dao/index.md new file mode 100644 index 00000000000..4cf79166518 --- /dev/null +++ b/public/content/translations/ru/dao/index.md @@ -0,0 +1,165 @@ +--- +title: Децентрализованные автономные организации (DAO) +description: Обзор DAO на Ethereum +lang: ru +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: Представление голосований DAO по предложению. +summaryPoint1: Сообщества, принадлежащие его членам, без централизованного аппарата управления. +summaryPoint2: Безопасный способ сотрудничества с незнакомцами в Интернете. +summaryPoint3: Безопасное место для выделения средств на конкретную цель. +--- + +## Что такое DAO? {#what-are-daos} + +DAO — это организация, управляемая сообществом блокчейн и работающая над достижением общей цели. + +DAO позволяют работать с единомышленниками по всему миру, не нуждаясь в руководителе для управления денежными средствами и операциями. Нет генерального директора, тратящего деньги по своей прихоти, или финансового директора, манипулирующего отчетностью. Вместо этого встроенные в код правила, основанные на блокчейне, определяют, как организация работает и тратит деньги. + +У них встроенные капиталы, к которым никто не имеет права доступа без согласия группы. Решения принимаются после предложений и голосования. Благодаря этому каждый в организации имеет право голоса и все в сети происходит прозрачно. + +## Зачем нам нужны DAO? {#why-dao} + +Создание с кем-то организации, подразумавающее привлечение финансирования и денег, требует большого доверия к людям, с которыми вы работаете. Но трудно доверять тому, с кем вы взаимодействовали только в Интернете. При работе с DAO вам не нужно доверять другим членам группы. Достаточно доверия коду DAO, который на 100 % прозрачен и может быть проверен кем угодно. + +Это открывает огромные возможности для глобального сотрудничества и координации. + +### Сравнение {#dao-comparison} + +| DAO | Традиционная организация | +| -------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| Обычно абсолютно демократичная, без иерархии. | Обычно иерархичная. | +| Для внесения любых изменений требуется голосование. | В зависимости от структуры изменения могут запрашиваться одной стороной или предлагаться на основе голосования. | +| Голоса подсчитываются, и результат реализуется автоматически без доверенного посредника. | Если голосование разрешено, голоса подсчитываются с помощью внутренних процедур, а результаты голосования должны обрабатываться вручную. | +| Предлагаемые услуги обрабатываются автоматически децентрализованным образом (например, распределение благотворительных средств). | Требуется вмешательство человека или централизованно управляемая автоматизация, подверженная манипуляциям. | +| Вся деятельность является прозрачной и полностью доступной для публики. | Обычно деятельность конфиденциальна, а доступ публики к информации о ней ограничен. | + +### Примеры DAO {#dao-examples} + +Чтобы внести ясность, приведем несколько примеров возможного использования DAO. + +- Благотворительность: вы можете принимать пожертвования от любого человека в мире и голосовать за цели, которые будете спонсировать. +- Коллективное владение — это возможность приобретения физических или цифровых активов, участники которого могут голосовать за то, как их использовать. +- Венчурные инвестиции и гранты. Вы можете создать венчурный фонд, который объединяет инвестиционный капитал и голосует за участие в венчурных проектах. Выплаченные деньги впоследствии можно будет перераспределить между участниками DAO. + +## Как работают DAO? {#how-daos-work} + +В основе DAO лежит умный контракт, который определяет правила организации и предмет договора. Как только контракт будет запущен на Ethereum, никто не сможет изменить правила без голосования. Если кто-то попытается сделать что-то, что не предусмотрено правилами и логикой кода, он потерпит неудачу. Управление капиталом также определяется умным контрактом. Это означает, что никто не может тратить деньги без одобрения группы. Это значит, что DAO не нуждается в центральных органах управления. Вместо этого группа принимает решения коллективно, и платежи автоматически авторизуются при голосовании. + +Это возможно, потому что после запуска на Ethereum умные контракты защищены от несанкционированного доступа. Вы не можете незаметно редактировать код (правила DAO), потому что все находится в открытом доступе. + + + Подробнее об умных контрактах + + +## Ethereum и DAO {#ethereum-and-daos} + +Ethereum — идеальный фундамент для DAO по ряду причин: + +- Собственный консенсус Ethereum распространен и признан достаточно, чтобы организации могли доверять сети. +- Код умного контракта не может быть изменен даже его владельцами. Это позволяет DAO работать по изначально запрограммированным правилам. +- Умные контракты могут отправлять и получать средства. Без этого вам понадобится надежный посредник для управления средствами группы. +- Сообщество Ethereum оказалось более склонным к сотрудничеству, чем к конкуренции, что позволяет быстро внедрять передовой опыт и системы поддержки. + +## Управление DAO {#dao-governance} + +Управление DAO имеет множество аспектов, таких как принципы работы голосований и предложений. + +### Делегирование {#governance-delegation} + +Делегирование – пример репрезентативной демократии в DAO. Держатели токенов делегируют голоса пользователям, которые выдвигают свои кандидатуры и обязуются следовать протоколу. + +#### Известный пример {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) — владельцы токенов ENS могут передать свои голоса активным участникам сообщества, которые будут представлять их. + +### Автоматическое управление транзакциями {#governance-example} + +Во многих DAO транзакции автоматически подтверждаются, если кворум участников проголосовал утвердительно. + +#### Известный пример {#governance-example} + +[Nouns](https://nouns.wtf) – в DAO Nouns транзакция автоматически подтверждается, если набран кворум голосов и большинство проголосовали утвердительно. Исключение составляют случаи, когда основатели DAO накладывают вето. + +### Управление по мультиподписи {#governance-example} + +Несмотря на то, что в DAO может быть несколько тысяч участников с правом голоса, средствами могут распоряжаться 5–20 активных участников сообщества. Этим участникам доверяют, и обычно их данные выкладывают в открытый доступ. Их личности известны сообществу. После голосования владельцы мультиподписи исполняют волю сообщества. + +## Законодательство, относящееся к DAO {#dao-laws} + +В 1977 году в Вайоминге изобрели общество с ограниченной ответственностью (LLC), которое помогло защитить предпринимателей и ограничить их ответственность. Недавно в Вайоминге впервые приняли закон, который регулирует правовой статус DAO. На текущий момент законы, относящиеся к DAO, есть в Вайоминге, Вермонте и на Американских Виргинских островах. + +### Известный пример {#law-example} + +[CityDAO](https://citydao.io) – CityDAO использовал законодательство Вайоминга по DAO, чтобы приобрести 40 акров земли около Национального парка Йеллоустоун. + +## Членство в DAO {#dao-membership} + +Существуют разные модели членства в DAO. От членства может зависеть работа голосования и другие ключевые составляющие DAO. + +### Членство на основе токенов {#token-based-membership} + +Обычно имеются все разрешения (в зависимости от используемого токена). В основном такими управляющими токенами можно торговать без специальных разрешений на децентрализованной бирже. Другие должны быть заработаны через обеспечение ликвидности или другое «доказательство работы». В любом случае простое владение токеном дает доступ к голосованию. + +_Обычно используется для управления обширными децентрализованными протоколами и/или самими токенами._ + +#### Известный пример {#token-example} + +[MakerDAO](https://makerdao.com) – токен MKR широко доступен на децентрализованной бирже, и любой может купить себе право голосовать за судьбу протокола Maker. + +### Членство на долевой основе {#share-based-membership} + +Основанные на долевом участии DAO более ориентированы на разрешения с подтверждением прав, но все еще достаточно открыты. Любые потенциальные члены могут отправить предложение присоединиться к DAO. Обычно за это они предлагают токены или работу. Доли реализуют право прямого голосования и подтверждения собственности. Члены могут выйти в любой момент и забрать с собой свою долю имущества. + +_Обычно используется для более сплоченных и ориентированных на человека организаций, таких как благотворительные учреждения, рабочие коллективы и инвестиционные клубы. Может также управлять протоколами и токенами._ + +#### Известный пример {#share-example} + +[MolochDAO](http://molochdao.com/). MolochDAO ориентируется на финансирование проектов Ethereum. Они требуют подачи предложения о членстве, чтобы группа могла оценить, есть ли у вас необходимый опыт и капитал для вынесения обоснованных решений о потенциальных получателей грантов. Вы не можете просто купить доступ к DAO на открытом рынке. + +### Членство на основе репутации {#reputation-based-membership} + +Репутация представляет собой доказательство участия и дает право голоса в DAO. В отличие от токена или членства, основанного на долевом участии, DAO на основе репутации не передают права собственности участникам. Репутация не может быть куплена, передана или делегирована; члены DAO должны заработать репутацию посредством участия. На голосование в цепи не требуется разрешение, и потенциальные члены могут свободно отправлять заявки на присоединение к DAO и выполнять запросы на получение репутации и токенов в качестве вознаграждения в обмен на их вклад. + +_Обычно используется для децентрализованной разработки протоколов и децентрализованных приложений и управления ими, но также хорошо подходит для различных организаций, таких как благотворительные, рабочие коллективы, инвестиционные клубы и т. д._ + +#### Известный пример {#reputation-example} + +[DXdao](https://DXdao.eth.link) – DXdao - глобальный независимый коллектив, создающий децентрализованные протоколы и приложения и управляющий ими с 2019 года. Он использует управление, основанное на репутации, и голографический консенсус для координации фондов и управления ими. Это означает, что никто не может купить себе право влиять на его будущее. + +## Присоединение или запуск DAO {#join-start-a-dao} + +### Присоединиться к DAO {#join-a-dao} + +- [DAO сообщества Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [Список DAO от DAOHaus](https://app.daohaus.club/explore) +- [Список DAO от Tally.xyz](https://www.tally.xyz) + +### Запуск DAO {#start-a-dao} + +- [Вызов DAO с DAOHaus](https://app.daohaus.club/summon) +- [Запуск Governor DAO с Tally](https://www.tally.xyz/add-a-dao) +- [Создать DAO на основе Aragon](https://aragon.org/product) +- [Запуск колонии](https://colony.io/) +- [Создать DAO с голографическим консенсусом DAOstack](https://alchemy.daostack.io/daos/create) + +## Дополнительные ресурсы {#further-reading} + +### Статьи о DAO {#dao-articles} + +- [Что такое DAO?](https://aragon.org/dao) — [Aragon](https://aragon.org/) +- [Руководство по DAO](https://daohandbook.xyz) +- [Дом DAO](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) — [Metagame](https://wiki.metagame.wtf/) +- [Что такое DAO и для чего они?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) — [DAOhaus](https://daohaus.club/) +- [Как создать цифровое сообщество на базе DAO](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) — [DAOhaus](https://daohaus.club/) +- [Что такое DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) — [Coinmarketcap](https://coinmarketcap.com) +- [Что такое голографический консенсус?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) — [DAOstack](https://daostack.io/) +- [DAO — не корпорации: когда децентрализация в автономных организациях имеет значение](https://vitalik.ca/general/2022/09/20/daos.html) +- [DAO, DAC, DA и другие: неполное руководство по терминологии](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) — [блог Ethereum](https://blog.ethereum.org) + +### Видео {#videos} + +- [Что такое DAO в криптовалютах?](https://youtu.be/KHm0uUPqmVE) +- [Может ли DAO построить город?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/public/content/translations/ru/decentralized-identity/index.md b/public/content/translations/ru/decentralized-identity/index.md new file mode 100644 index 00000000000..b0eb3459a24 --- /dev/null +++ b/public/content/translations/ru/decentralized-identity/index.md @@ -0,0 +1,185 @@ +--- +title: Децентрализованная идентичность +description: Что такое децентрализованная идентичность и почему она важна? +lang: ru +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: /eth-gif-cat.png +summaryPoint1: Традиционные идентификационные системы централизовали выдачу, обслуживание и контроль ваших идентификаторов. +summaryPoint2: Децентрализованная идентификация устраняет зависимость от централизованных третьих лиц. +summaryPoint3: Благодаря криптовалюте у пользователей теперь есть инструменты, позволяющие получать, хранить и контролировать свои собственные идентификаторы и аттестации. +--- + +Сегодня идентификация лежит в основе практически всех аспектов вашей жизни. Использование онлайн-сервисов, открытие банковского счета, голосование на выборах, покупка собственности, обеспечивание занятости — все это требует подтверждения вашей личности. + +Однако традиционные системы управления идентификацией давно полагаются на централизованных посредников, которые выдают, хранят и контролируют ваши идентификаторы и [аттестации](#what-are-attestations). Это означает, что вы не можете контролировать информацию, относящуюся к вашей личности, или решать, кто имеет доступ к персональной информации (PII) и какой доступ имеют эти стороны. + +Для решения этих проблем мы создали децентрализованные системы идентификации, построенные на открытых блокчейнах, таких как Ethereum. Децентрализованная идентификация позволяет физическим лицам управлять информацией, связанной с их идентификацией. С децентрализованными системами идентификации _вы_ можете создавать, получать и хранить ваши идентификаторы и аттестации без зависимости от центральных органов, таких как поставщики услуг или правительства. + +## Что такое идентичность? {#what-is-identity} + +Идентичность означает индивидуальное ощущение себя, определяемое уникальными характеристиками. Идентичность означает быть _личностью_, т. е. отдельной человеческой сущностью. Идентичность также может относиться к другим нечеловеческим объектам, таким как организация или орган власти. + +## Что такое идентификаторы? {#what-are-identifiers} + +Идентификатор — это часть информации, которая действует как указатель на конкретный идентификатор или идентификаторы. К общим относятся такие идентификаторы: + +- Имя +- Номер социального страхования / налоговый номер +- Номер телефона +- Дата и место рождения +- Цифровые идентификационные данные, например адреса электронной почты, имена пользователей, аватары + +Эти традиционные примеры идентификаторов выпускаются, хранятся и контролируются центральными органами. Вам нужно разрешение от вашего правительства, чтобы изменить свое имя, или от платформы социальных сетей, чтобы изменить свой псевдоним. + +## Что такое аттестации? {#what-are-attestations} + +Аттестация — это заявление, сделанное одним субъектом в отношении другого субъекта. Если вы живете в Соединенных Штатах, водительские права, выданные вам Департаментом транспортных средств (одним субъектом), подтверждают, что вам (другому субъекту) по закону разрешено водить автомобиль. + +Аттестации отличаются от идентификаторов. Аттестация _содержит_ идентификаторы для ссылки на конкретное удостоверение и делает заявление об атрибуте, связанном с этим удостоверением. Таким образом, ваше водительское удостоверение имеет идентификаторы (имя, дата рождения, адрес), но также является подтверждением вашего законного права на вождение. + +### Что такое децентрализованные идентификаторы? {#what-are-decentralized-identifiers} + +Традиционные идентификаторы, такие как ваше официальное имя или адрес электронной почты, полагаются на третьи стороны — правительства и поставщиков услуг электронной почты. Децентрализованные идентификаторы (DID) отличаются от традиционных — они не выдаются, не управляются и не контролируются какой-либо центральной организацией. + +Децентрализованные идентификаторы выпускаются, хранятся и контролируются отдельными лицами. [Учетная запись Ethereum](/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) для объекта. Криптография с открытым ключом используется в сетях блокчейн для аутентификации пользователей и подтверждения права собственности на цифровые активы. + +Некоторые децентрализованные идентификаторы, такие как учетная запись Ethereum, имеют открытый и закрытый ключи. Открытый ключ идентифицирует контроллер учетной записи, а закрытые ключи могут подписывать и расшифровывать сообщения для этой учетной записи. PKI предоставляет доказательства, необходимые для аутентификации объектов и предотвращения олицетворения и использования поддельных удостоверений, используя [криптографические подписи](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 эмитента в Ethereum. По сути, блокчейн Ethereum действует как глобальный каталог, который позволяет проверять DID, связанные с определенными объектами. + +Благодаря децентрализованным идентификаторам аттестации являются самоконтролируемыми и проверяемыми. Даже если эмитент больше не существует, у держателя всегда есть доказательства происхождения и действительности аттестации. + +Децентрализованные идентификаторы также имеют решающее значение для защиты конфиденциальности личной информации посредством децентрализованной идентификации. Например, если физическое лицо представляет подтверждение аттестации (водительское удостоверение), проверяющей стороне не нужно проверять достоверность информации в подтверждении. Вместо этого верификатору нужны только криптографические гарантии подлинности аттестации и личности выдавшей организации, чтобы определить, действительно ли доказательство. + +## Виды аттестаций в децентрализованной идентификации {#types-of-attestations-in-decentralized-identity} + +Способы хранения и извлечения аттестационной информации в экосистеме удостоверений на основе Ethereum отличаются от традиционного управления удостоверениями. Ниже приведен обзор различных подходов к выдаче, хранению и проверке аттестаций в децентрализованных системах идентификации. + +### Аттестации вне сети {#off-chain-attestations} + +Одна из проблем с хранением аттестаций в сети заключается в том, что они могут содержать информацию, которую люди хотят сохранить в тайне. Публичный характер блокчейна Ethereum делает непривлекательным хранение таких подтверждений. + +Решение состоит в выдаче аттестаций, хранящихся пользователями вне сети в цифровых кошельках, но подписанных с помощью DID эмитента, хранящегося в сети. Эти аттестации кодируются как [веб-токены JSON](https://en.wikipedia.org/wiki/JSON_Web_Token) и содержат цифровую подпись эмитента, что позволяет легко проверять заявления вне сети. + +Вот гипотетический сценарий, объясняющий аттестации вне сети: + +1. Университет (эмитент) создает аттестат (цифровой академический сертификат), подписывает его своими ключами и выдает Бобу (владельцу удостоверения). + +2. Боб подает заявление о приеме на работу и хочет подтвердить свою академическую квалификацию работодателю, поэтому он делится аттестацией со своего мобильного кошелька. Затем компания (верификатор) может подтвердить действительность аттестации, проверив DID эмитента (т. е. его открытый ключ в Ethereum). + +### Аттестации вне сети с постоянным доступом {#offchain-attestations-with-persistent-access} + +В этом случае аттестации преобразуются в файлы JSON и хранятся вне сети (в идеале на платформе [децентрализованного облачного хранилища](/developers/docs/storage/), например IPFS или Swarm). Однако [хэш](/glossary/#hash) файла JSON хранится в сети и связан с DID через реестр в сети. Связанный DID может принадлежать либо издателю аттестации, либо получателю. + +Этот подход позволяет аттестациям сохранять устойчивость на основе блокчейна, сохраняя при этом информацию о заявках в зашифрованном виде и поддающейся проверке. Это также позволяет выборочное раскрытие, поскольку владелец закрытого ключа может расшифровать информацию. + +### Аттестации в сети {#onchain-attestations} + +Аттестации в сети проводятся в [смарт-контрактах](/developers/docs/smart-contracts/) на блокчейне Ethereum. Смарт-контракт (действующий как реестр) сопоставит аттестацию с соответствующим децентрализованным идентификатором в сети (открытым ключом). + +Вот пример, показывающий, как аттестация в сети может работать на практике: + +1. Компания (XYZ Corp) планирует продать доли собственности с помощью смарт-контракта, но хочет, чтобы покупатели прошли проверку их данных. + +2. XYZ Corp может поручить компании проводить проверку их данных для выдачи аттестаций в сети Ethereum. Эта аттестация удостоверяет, что человек прошел проверку данных, не раскрывая никакой личной информации. + +3. Смарт-контракт, продающий акции, может проверять договор реестра на предмет идентификации проверенных покупателей, что позволяет смарт-контракту определять, кому разрешено покупать акции, а кому нет. + +### Токены Soulbound и личность {#soulbound} + +[Токены Soulbound](https://vitalik.ca/general/2022/01/26/soulbound.html) (непередаваемые NFT) можно использовать для сбора информации, уникальной для конкретного кошелька. Это эффективно создает уникальную идентификацию в сети, привязанную к конкретному адресу Ethereum, которая может включать токены, представляющие достижения (например, окончание определенного онлайн-курса или достижение порогового балла в игре) или участие в сообществе. + +## Преимущества децентрализованной идентификации {#benefits-of-decentralized-identity} + +1. Децентрализованная идентификация увеличивает индивидуальный контроль над идентифицирующей информацией. Децентрализованные идентификаторы и аттестации можно проверять, не полагаясь на централизованные органы и сторонние службы. + +2. Децентрализованные решения для идентификации обеспечивают не требующий доверия, бесшовный и защищающий конфиденциальность метод проверки и управления идентификацией пользователей. + +3. Децентрализованная идентификация использует технологию блокчейна, которая создает доверие между различными сторонами и предоставляет криптографические гарантии для подтверждения действительности аттестаций. + +4. Децентрализованная идентификация делает идентификационные данные переносимыми. Пользователи хранят аттестации и идентификаторы в мобильном кошельке и могут делиться ими с любой стороной по своему выбору. Децентрализованные идентификаторы и аттестации не фиксируются в базе данных организации-эмитента. + +5. Децентрализованная идентификация должна хорошо работать с появляющимися технологиями с нулевым разглашением, которые позволят людям доказать, что они владеют чем-то или сделали что-то, не раскрывая, что это такое. Это может стать мощным способом объединения доверия и конфиденциальности для различных приложений, например для голосований. + +6. Децентрализованная идентификация позволяет механизмам противодействия атакам Сивиллы идентифицировать, когда один человек притворяется несколькими людьми, чтобы обмануть какую-то систему распространить в ней спам. + +## Варианты использования децентрализованной идентификации {#decentralized-identity-use-cases} + +Децентрализованная идентификация имеет много потенциальных вариантов использования: + +### 1. Универсальные логины {#universal-dapp-logins} + +Децентрализованная идентификация может помочь заменить вход на основе пароля на [децентрализованную аутентификацию](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). Поставщики услуг могут выдавать пользователям аттестаты, которые можно хранить в кошельке Ethereum. Примером аттестации может быть [NFT](/nft/), предоставляющий владельцу доступ к интернет-сообществу. + +Затем функция [Войти с помощью Ethereum](https://login.xyz/) позволит серверам подтвердить учетную запись Ethereum пользователя и получить требуемое подтверждение с адреса его учетной записи. Это означает, что пользователи могут получать доступ к платформам и веб-сайтам, не запоминая длинные пароли, и улучшает работу пользователей в Интернете. + +### 2. Аутентификация KYC {#kyc-authentication} + +Использование многих онлайн-сервисов требует от отдельных лиц предоставления свидетельств и учетных данных, таких как водительское удостоверение или национальный паспорт. Но этот подход проблематичен, поскольку личная информация пользователя может быть скомпрометирована, а поставщики услуг не могут проверить подлинность аттестации. + +Децентрализованная идентификация позволяет компаниям отказаться от традиционных процессов [«знай своего клиента» (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) и аутентифицировать личность пользователя с помощью проверяемых учетных данных. Это снижает стоимость управления идентификацией и предотвращает использование поддельной документации. + +### 3. Голосование и онлайн-сообщества {#voting-and-online-communities} + +Онлайн-голосование и социальные сети — два новых приложения для децентрализованной идентификации. Схемы онлайн-голосования подвержены манипуляциям, особенно если злоумышленники создают ложные имена для голосования. Просьба к отдельным лицам представить аттестацию в сети может повысить честность процессов онлайн-голосования. + +Децентрализованная идентификация может помочь в создании онлайн-сообществ, свободных от поддельных учетных записей. Например, каждому пользователю может потребоваться аутентифицировать свою личность с помощью сетевой системы идентификации, такой как служба имен Ethereum, что снижает вероятность появления ботов. + +### 4. Защита от атак Сивиллы {#sybil-protection} + +Атаки Сивиллы — это когда отдельные люди обманывают систему, заставляя ее думать, что они являются несколькими людьми, чтобы увеличить свое влияние. [Приложения для предоставления грантов](https://gitcoin.co/grants/), использующие [ квадратичное голосование](https://www.radicalxchange.org/concepts/plural-voting/), уязвимы для атак Сивиллы, потому что ценность гранта увеличивается, когда за него голосует больше людей, что побуждает пользователей разделить свой вклад между многими личностями. Децентрализованные удостоверения помогают предотвратить это, возлагая на каждого участника бремя доказывания того, что он действительно человек, хотя часто без необходимости раскрывать конкретную личную информацию. + +## Используйте децентрализованную идентификацию {#use-decentralized-identity} + +Есть много амбициозных проектов, использующих Ethereum в качестве основы для децентрализованной идентификации: + +- **[Служба имен Ethereum (ENS)](https://ens.domains/)** — _ децентрализованная система имен для сетевых, машиночитаемых идентификаторов, таких как адреса кошельков Ethereum, хэши контента и метаданные._ +- **[SpruceID](https://www.spruceid.com/)** — _проект децентрализованной идентификации, который позволяет пользователям контролировать цифровую идентификацию с помощью учетных записей Ethereum и профилей ENS, а не полагаться на сторонние службы._ +- **[Ethereum Attestation Service (EAS)](https://attest.sh/)** — _децентрализованный протокол и перепись для аттестаций любого назначения в цепочке и вне ее._ +- **[Proof of Humanity](https://www.proofofhumanity.id)** – _«доказательство человечества» (PoH) – это социальная система подтверждения личности, построенная на Ethereum._ +- **[BrightID](https://www.brightid.org/)** – _децентрализованная сеть социальной идентификации с открытым исходным кодом, стремящаяся реформировать проверку личности путем создания и анализа социального графа._ +- **[Proof-of-personhood Passport](https://proofofpersonhood.com/)** — _ децентрализованный агрегатор цифровой идентификации._ + +## Дополнительные ресурсы {#further-reading} + +### Статьи {#articles} + +- [Примеры использования блокчейна: блокчейн в цифровой идентификации](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ +- [Что такое Ethereum ERC725? Самостоятельное управление идентификацией в блокчейне](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Sam Town_ +- [Как блокчейн может решить проблему цифровой идентификации?](https://time.com/6142810/proof-of-humanity/) — _Эндрю Р. Чоу_ +- [Что такое децентрализованная идентификация и почему это должно волновать вас?](https://web3.hashnode.com/what-is-decentralized-identity) — _Эммануэль Авосика_ + +### Видео {#videos} + +- [Децентрализованная идентификация (бонусная стрим-сессия)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _отличное видео о децентрализованной идентификации от Андреаса Антонополуса_ +- [Войти в систему с помощью Ethereum и децентрализованной идентификации с помощью Ceramic, IDX, React, и 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _Учебное пособие на YouTube по созданию системы управления идентификацией для создания, чтения и обновления профиля пользователя с использованием его кошелька Ethereum от Надер Дебит_ +- [BrightID — децентрализованная идентификация на Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _подкаст бесплатных версий, обсуждающий BrightID, децентрализованное решение для Ethereum_ +- [Презентация «Интернет вне сети»: децентрализованная идентификация и проверяемые полномочия](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — _EthDenver 2022 от Эвина МакМаллена_ + +### Сообщества {#communities} + +- [ERC-725 Альянс на GitHab](https://github.com/erc725alliance) — _сторонники стандарта ERC725 для управления идентификацией на блокчейне Ethereum_ +- [Сервер SpruceID Discord](https://discord.com/invite/Sf9tSFzrnt) — _сообщество для энтузиастов и разработчиков, работающих над регистрацией в Ethereum_ +- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _сообщество разработчиков, содействующих созданию фреймворка для проверяемых данных для приложений_ diff --git a/public/content/translations/ru/defi/index.md b/public/content/translations/ru/defi/index.md new file mode 100644 index 00000000000..2fe55163861 --- /dev/null +++ b/public/content/translations/ru/defi/index.md @@ -0,0 +1,352 @@ +--- +title: Децентрализованные финансы (DeFi) +description: Обзор DeFi на Ethereum +lang: ru +template: use-cases +emoji: ":money_with_wings:" +image: /use-cases/defi.png +alt: Логотип Eth, составленный из деталей Лего. +sidebarDepth: 2 +summaryPoint1: Глобальная открытая альтернатива существующей финансовой системе. +summaryPoint2: Продукты, которые позволяют вам заимствовать, сберегать, инвестировать, торговать и не только. +summaryPoint3: На основе технологии с открытым исходным кодом, с которой программировать может каждый. +--- + +DeFi — это открытая глобальная финансовая система, созданная для эпохи Интернета. Это альтернатива непрозрачной системе со строгим контролем, базирующейся на используемых десятилетиями процессах и инфраструктуре. Она дает вам возможность контролировать и видеть ваши деньги. DeFi открывает пользователю глобальные рынки, создает альтернативы национальным валютам и стандартным банковским продуктам. Продукты DeFi открывают доступ к финансовым сервисам всем, у кого есть доступ к Интернету. Они в значительной степени принадлежат самим пользователям, которые и обеспечивают их функционирование. К настоящему времени через DeFi уже прошло криптовалютных транзакций на десятки миллиардов долларов, и этот объем растет с каждым днем. + +## Что такое DeFi? {#what-is-defi} + +DeFi — это обобщенный термин для финансовых продуктов и услуг, доступных всем, кто может использовать Ethereum, то есть фактически любому человеку, имеющему доступ в Интернет. В случае DeFi рынки открыты всегда и нет централизованного регулятора, который остановит платежи или закроет к чему-либо доступ. Услуги, которые раньше требовали много времени и были подвержены риску человеческой ошибки, теперь осуществляются автоматически и стали безопаснее, так как управляются кодом, открытым каждому для изучения и анализа. + +Криптоэкономика сегодня переживает бум: доступными стали кредитование и заимствование, открытие длинных и коротких позиций, вложения под проценты и многое другое. Продвинутые в криптовалютах аргентинцы использовали DeFi, чтобы нивелировать последствия инфляции. Компании начали платить своим сотрудникам зарплату в реальном времени. Кое-кто даже брал и возвращал кредиты на миллионы долларов без необходимости в персональной идентификации. + + + +## DeFi и традиционные финансы {#defi-vs-tradfi} + +Чтобы лучше понять потенциал DeFi, давайте взглянем на ныне существующие проблемы. + +- Не у всех людей есть возможность открыть счет в банке и воспользоваться финансовыми услугами. +- Недоступность финансовых услуг является одной из причин безработицы. +- Финансовые институты могут заблокировать поступление денежных средств. +- Есть и скрытая плата за финансовые услуги — предоставление личных данных. +- Правительства и централизованные институты могут прекратить функционирование рынков, когда захотят. +- Часы торговли часто ограничиваются рабочими часами конкретного часового пояса. +- Денежные переводы могут занять несколько дней из-за внутренних процессов, связанных с участием человека. +- Финансовые услуги оказываются с наценкой, потому что посреднические учреждения нуждаются в собственной прибыли. + +### Сравнение {#defi-comparison} + +| DeFi | Традиционные финансы | +| ----------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | +| Вы держите ваши активы. | Ваши активы держат компании. | +| Вы контролируете, куда идут ваши деньги и как они тратятся. | Вы должны доверять компаниям и верить, что они не злоупотребят вашими деньгами, давая их взаймы рискованным заемщикам. | +| Перевод активов происходит в считанные минуты. | Платежи могут занять несколько дней из-за дополнительных проверок. | +| Транзакционная деятельность носит псевдонимный характер. | Транзакционная деятельность носит личный характер. | +| Система DeFi открыта для каждого. | Вы должны подать заявку на использование финансовых услуг. | +| Рынки всегда открыты. | Рынки закрываются, потому что сотрудникам нужны перерывы. | +| Все построено на прозрачности: любой может просмотреть данные транзакции и проверить, как работает система. | Активность финансовых учреждений скрыта: вы не можете просмотреть их кредитную историю, сведения об их активах и так далее. | + + + Взглянуть на приложения DeFi + + +## Все началось с Bitcoin... {#bitcoin} + +Биткоин во многих отношениях был первым приложением DeFi. Биткоин позволяет вам действительно владеть валютой, контролировать ее и отправлять в любую точку мира. Это достигается за счет предоставления возможности большому числу людей, которые не доверяют друг другу, согласовать бухгалтерскую книгу без необходимости в доверенном посреднике. Биткоин открыт для всех, и никто не имеет полномочий изменять его правила. Правила Bitcoin, такие как его дефицит и открытость, прописаны в технологии. Это не похоже на традиционные финансы, где правительства могут печатать деньги, которые обесценивают ваши сбережения, а компании могут закрыть рынки. + +Ethereum построен на этом. Как и в Bitcoin, правила не могут измениться, у всех есть доступ. Но здесь цифровые деньги являются программируемыми с помощью [умных контрактов](/glossary#smart-contract), так что вы можете выйти за рамки хранения и отправки валюты. + + + +## Программируемые деньги {#programmable-money} + +Это звучит странно... «Зачем мне программировать свои деньги?» Однако это скорее функция по умолчанию для токенов на Ethereum. Каждый может закодировать логику в платежи. Поэтому вы можете получить контроль и безопасность Bitcoin в сочетании с услугами, предоставляемыми финансовыми учреждениями. Это позволит вам совершать операции с криптовалютами, которыми вы не можете заниматься с Bitcoin, такими как кредитование и заимствование, планирование платежей, инвестирование в индексные фонды и многое другое. + + +
Изучите наши предложения по приложениям DeFi, если вы только осваиваетесь в Ethereum.
+ + Взглянуть на приложения DeFi + +
+ +## Что можно делать с помощью DeFi? {#defi-use-cases} + +Существует децентрализованная альтернатива большинству финансовых услуг. Но Ethereum также создает возможности для создания финансовых продуктов, которые являются абсолютно новыми. Этот список постоянно растет. + +- [Отправка денег по всему миру](#send-money) +- [Потоковая передача денег по всему миру](#stream-money) +- [Доступ к стабильным валютам](#stablecoins) +- [Заем средств с залогом](#lending) +- [Заем средств без залога](#flash-loans) +- [Накопления в криптовалюте](#saving) +- [Торговля токенами](#swaps) +- [Увеличение своего портфеля](#investing) +- [Финансирование своих идей](#crowdfunding) +- [Покупка страховки](#insurance) +- [Управление своим портфелем](#aggregators) + + + +### Быстрая отправка денег по всему миру {#send-money} + +В качестве блокчейна Ethereum предназначен для отправки транзакций безопасным и глобальным путем. Как и Bitcoin, Ethereum делает перевод денег по всему миру таким же простым, как и отправка электронной почты. Просто введите [имя ENS вашего получателя](/nft/#nft-domains) (например, bob.eth) или адрес его учетной записи в вашем кошельке, и ваш платеж поступит непосредственно к нему в течение (как правило) нескольких минут. Чтобы отправлять или получать платежи, вам понадобится [кошелек](/wallets/). + + + Посмотреть платежные децентрализованные приложения + + +#### Передавайте деньги по всему миру... {#stream-money} + +Вы также можете передавать деньги через Ethereum. Это позволяет вам выплачивать кому-то зарплату за секунду, предоставляя доступ к деньгам, когда им это нужно. Или арендовать что-нибудь за секунду, например склад или электросамокат. + +Если вы не хотите отправлять или передавать [ETH](/eth/) из-за того, как сильно его цена может измениться, существуют альтернативные валюты на Ethereum: стейблкойны. + + + +### Получите доступ к стабильным валютам {#stablecoins} + +Неустойчивость криптовалют является проблемой для многих финансовых продуктов и общих расходов. Сообщество DeFi решило это с помощью стейблкойнов. Их стоимость привязана к другому активу, обычно к популярной валюте, такой как доллар. + +Монеты, такие как Dai или USDC, имеют стоимость, которая остается в пределах нескольких центов от доллара. Это делает их идеальными для заработка или розничной торговли. Многие жители Латинской Америки использовали стейблкойны в качестве средства защиты своих сбережений во время значительной неопределенности по отношению к валютам, выпускаемым правительствами. + + + Подробнее о стейблкойнах + + + + +### Займы {#lending} + +Заем денег от децентрализованных поставщиков происходит в двух основных вариантах. + +- Одноранговый формат (Peer-to-peer): заемщик будет одалживать средства непосредственно у конкретного кредитора. +- Основанный на пуле (Pool-based): кредиторы предоставляют средства (ликвидность), из которых берут в долг заемщики. + + + Посмотреть децентрализованные приложения для займа + + +Существует множество преимуществ использования децентрализованных кредитов... + +#### Заимствование с сохранением приватности {#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 будет увеличиваться в зависимости от процентной ставки, и вы сможете увидеть рост баланса в вашем кошельке. В зависимости от годовой процентной ставки, через несколько дней или даже часов баланс вашего кошелька будет выглядеть примерно как 100,1234! +- Вы можете вывести сумму обычного Dai, равную вашему балансу aDai, в любое время. + + + Посмотреть кредитные децентрализованные приложения + + +#### Беспроигрышные лотереи {#no-loss-lotteries} + +Беспроигрышные лотереи (например, PoolTogether) — это новый увлекательный и инновационный способ сэкономить деньги. + +- Вы покупаете 100 билетов, используя 100 токенов Dai. +- Вы получаете 100 plDai, представляющих ваши 100 билетов. +- Если один из ваших билетов будет выбран в качестве победителя, ваш баланс plDai увеличится на сумму призового фонда. +- Если вы не выиграете, ваши 100 plDai переходят в розыгрыш следующей недели. +- Вы можете вывести сумму обычного Dai, равную вашему балансу plDai, в любое время. + +Призовой фонд формируется за счет всех процентов, полученных от предоставления депозитов за билеты, как в приведенном выше примере кредитования. + + + Попробовать PoolTogether + + + + +### Обмен токенов {#swaps} + +На Ethereum тысячи токенов. Децентрализованные биржи (DEX) позволяют торговать различными токенами в любое время. Вы всегда контролируете свои активы. Это как использовать обмен валют при посещении другой страны. Но версия DeFi никогда не закрывается. Рынки работают 24/7, 365 дней в году, а технологии гарантируют, что всегда найдется кто-нибудь, кто согласится на сделку. + +Например, если вы хотите использовать беспроигрышную лотерею PoolTogether (описанную выше), вам понадобится токен, такой как Dai или USDC. DEX позволяют обменивать ваши ETH на эти токены и обратно, когда вы закончите. + + + Смотреть биржи токенов + + + + +### Продвинутая торговля {#trading} + +Есть более продвинутые варианты для трейдеров, которым нравится немного больше контроля. Возможны лимитные ордера, бессрочные контракты, маржинальная торговля и многое другое. Благодаря децентрализованной торговле вы получаете доступ к глобальной ликвидности и рынку, который никогда не закрывается, а также всегда контролируете свои активы. + +Когда вы используете централизованную биржу, вы должны внести свои активы перед торговлей и доверить бирже заботу о них. Пока ваши активы депонированы, они подвержены риску, поскольку централизованные биржи являются привлекательными целями для хакеров. + + + Посмотреть торговые децентрализованные приложения + + + + +### Увеличение своего портфеля {#investing} + +На Ethereum есть продукты для управления фондами, которые будут стараться развивать ваш портфель на основе выбранной вами стратегии. Это происходит автоматически, открыто для всех и не требует участия менеджера, получающего долю от вашей прибыли. + +Хорошим примером является фонд [ DeFi Pulse Index (DPI)](https://defipulse.com/blog/defi-pulse-index/). Это фонд, которое автоматически выполняет ребалансировку, чтобы гарантировать, что ваш портфель всегда включает [лучшие по рыночной капитализации токены DeFi](https://www.coingecko.com/en/defi). Вам не придется управлять мелочами, и вы сможете выйти из фонда, когда захотите. + + + Смотреть инвестиционные децентрализованные приложения + + + + +### Финансирование своих идей {#crowdfunding} + +Ethereum является идеальной платформой для краудфандинга: + +- Потенциальные спонсоры могут быть откуда угодно: Ethereum и его токены открыты для всех и в любой точке мира. +- Все прозрачно, потому что сборщики средств могут подтвердить, сколько денег было собрано. Вы даже сможете отслеживать, как средства расходуются в дальнейшем. +- Сборщики средств могут настроить автоматический возврат, если, например, есть определенный срок и минимальная сумма, которые не были соблюдены. + + + Посмотреть краудфандинговые децентрализованные приложения + + +#### Квадратичное финансирование {#quadratic-funding} + +Ethereum — это программное обеспечение с открытым исходным кодом, и большая часть работы до сих пор финансируется сообществом. Это привело к развитию новой интересной модели сбора средств: квадратичного финансирования. Это может улучшить способ финансирования всех видов общественных благ в будущем. + +Квадратичное финансирование гарантирует, что проекты, получившие наибольшее финансирование, будут наиболее востребованы. Иными словами, проекты, способствующие улучшению жизни большинства людей. Это работает так: + +1. Есть соответствующий пул пожертвованных средств. +2. Начинается раунд публичного финансирования. +3. Люди могут заявить о своей потребности в проекте, пожертвовав немного денег. +4. По завершении раунда соответствующий пул распределяется по проектам. Проекты с самым большим количеством уникальных запросов получают наибольшую сумму из соответствующего пула. + +Это означает, что Проект A с его 100 пожертвованиями по 1 доллару может получить больше финансирования, чем Проект B с одним пожертвованием в размере 10 000 долларов (в зависимости от размера соответствующего пула). + +[Подробнее о квадратичном финансировании](https://wtfisqf.com) + + + +### Страхование {#insurance} + +Децентрализованное страхование направлено на то, чтобы сделать страхование более дешевым, ускорить выплаты и увеличить прозрачность. Благодаря большей автоматизации страхование становится более доступным, а выплаты производятся намного быстрее. Данные, используемые для принятия решения по вашей претензии, полностью прозрачны. + +Продукты Ethereum, как и любое программное обеспечение, могут страдать от ошибок и эксплойтов. Так что прямо сейчас многие страховые продукты сосредоточены на защите своих пользователей от потери средств. Однако уже есть проекты, которые начинают страховать все, с чем мы можем столкнуться в реальной жизни. Хорошим примером этого является страхование урожая Etherisc, цель которого — [защитить мелких фермеров в Кении от засух и наводнений](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Децентрализованное страхование может обеспечить более дешевую страховку для фермеров, цены на которую часто выходят за рамки в традиционном страховании. + + + Смотреть страховые децентрализованные приложения + + + + +### Агрегаторы и менеджеры портфелей {#aggregators} + +Среди прочего, вам потребуется способ отслеживания всех ваших инвестиций, займов и сделок. Есть множество продуктов, которые позволяют вам управлять всеми вашими действиями с DeFi из одной программы. В этом прелесть открой архитектуры DeFi. Команды могут создавать интерфейсы, в которых вы можете не только просматривать балансы активов, но также использовать их функции. Это может оказаться полезным во время изучения DeFi. + + + Посмотреть децентрализованные приложения для портфелей + + + + +## Как работают DeFi? {#how-defi-works} + +DeFi использует криптовалюты и умные контракты для предоставления услуг, не требующих посредников. В современном финансовом мире финансовые учреждения выступают в качестве гарантов сделок. Это дает этим учреждениям огромную власть, потому что через них текут ваши деньги. Кроме того, у миллиардов людей по всему миру может даже не быть доступа к банковскому счету. + +В DeFi умный контракт заменяет финансовое учреждение в сделке. Умный контракт — это тип учетной записи Ethereum, на котором могут храниться средства и который может отправлять и возвращать их на определенных условиях. Никто не может изменить этот умный контракт после его запуска: он всегда будет работать так, как был запрограммирован. + +Контракт, предназначенный для выплаты пособий или карманных денег, может быть запрограммирован на отправку денег со счета A на счет B каждую пятницу. И он будет делать это до тех пор, пока на счете А есть необходимые средства. Никто не может изменить контракт и добавить аккаунт C в качестве получателя для кражи средств. + +Контракты также открыты для любой проверки и аудита. Это означает, что плохие контракты часто довольно быстро попадают в поле зрения сообщества. + +В настоящее время необходимо доверять более технически грамотным членам сообщества Ethereum, которые могут читать код. Сообщество с открытым исходным кодом помогает проверять разработчиков, но со временем эта потребность уменьшится, поскольку умные контракты станет легче читать и будут разработаны другие способы доказательства надежности кода. + +## Ethereum и DeFi {#ethereum-and-defi} + +Ethereum — идеальная основа для DeFi по ряду причин: + +- Никто не владеет Ethereum или умными контрактами, которые на нем используются, а это дает возможность каждому использовать DeFi. Это также означает, что никто не может изменить правила в отношении вас. +- Все продукты DeFi за кулисами говорят на одном языке: Ethereum. Это означает, что многие продукты без всяких проблем работают вместе. Вы можете одалживать токены на одной платформе и обменивать токены под проценты на другом рынке и в совершенно другом приложении. Это похоже на возможность обналичивать баллы лояльности в вашем банке. +- Токены и криптовалюты, построенные на Ethereum, общий реестр, отслеживающий транзакций и права на владение, — вот что такое Ethereum. +- Ethereum обеспечивает полную финансовую свободу: большинство продуктов никогда не перехватят ваши средства, контроль остается за вами. + +Вы можете разделить DeFi на слои: + +1. Блокчейн: Ethereum содержит историю транзакций и состояние счетов. +2. Активы: [ETH](/eth/) и другие токены (валюты). +3. Протоколы — [умные контракты](/glossary/#smart-contract), которые предоставляют функциональные возможности, например сервис, позволяющий децентрализовать кредитование активов. +4. [Приложения](/dapps/): продукты, которые мы используем для управления и доступа к протоколам. + +## Формирование DeFi {#build-defi} + +DeFi — это движение с открытым исходным кодом. Все протоколы и приложения DeFi открыты для ваших исследований, разветвлений и инноваций. Благодаря этому многоуровневому стеку (все они используют один и тот же блокчейн и активы) протоколы можно смешивать и сопоставлять, чтобы открыть уникальные комбинированные возможности. + + + Подробнее о децентрализованных приложениях + + +## Дополнительные ресурсы {#futher-reading} + +### Данные о DeFi {#defi-data} + +- [DeFi Prime](https://defiprime.com/) +- [DeFi Llama](https://defillama.com/) +- [DeFi Rate](https://defirate.com/) + +### Статьи о DeFi {#defi-articles} + +- [Руководство по DeFi для начинающих](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) — _Сид Коэльо-Прабху, 6 января 2020 г._ + +### Видео {#videos} + +- [Finematics — децентрализованное финансовое образование](https://finematics.com/) — _Видео о DeFi_ +- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) — _Основы DeFi: все, что нужно знать, чтобы начать работу в этом иногда непонятном пространстве._ +- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _Что такое DeFi?_ + +### Сообщества {#communities} + +- [DeFi Llama, сервер Discord](https://discord.gg/buPFYXzDDd) +- [DeFi Pulse, сервер Discord](https://discord.gg/Gx4TCTk) diff --git a/public/content/translations/ru/desci/index.md b/public/content/translations/ru/desci/index.md new file mode 100644 index 00000000000..7a6a92477ab --- /dev/null +++ b/public/content/translations/ru/desci/index.md @@ -0,0 +1,139 @@ +--- +title: Децентрализованная наука (DeSci) +description: Обзор о децентрализованной науке на основе Ethereum +lang: ru +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Глобальная открытая альтернатива существующей научной системе. +summaryPoint2: Технология, позволяющая ученым привлекать финансирование, проводить эксперименты, делиться данными, распределять идеи и т. д. +summaryPoint3: Основан на движении за открытую науку. +--- + +## Что такое децентрализованная наука (DeSci)? {#what-is-desci} + +Децентрализованная наука (DeSci) — это движение, целью которого является создание общественной инфраструктуры для финансирования, создания, проверки, кредитования, хранения и распространения научных знаний на справедливой и равноправной основе с использованием стека Web3. + +DeSci стремится создать экосистему, в которой ученые заинтересованы в том, чтобы открыто делиться своими исследованиями и получать вознаграждение за свою работу, позволяя любому легко получить доступ к исследованиям и внести свой вклад в них. DeSci исходит из идеи, что научные знания должны быть доступны каждому, а процесс научных исследований должен быть прозрачным. DeSci создает более децентрализованную и распределенную модель научных исследований, делая ее более устойчивой к цензуре и контролю со стороны центральных властей. DeSci надеется создать среду, в которой могут процветать новые и нетрадиционные идеи, путем децентрализации доступа к финансированию, научным инструментам и каналам связи. + +Децентрализованная наука позволяет использовать более разнообразные источники финансирования (от [DAO](/dao/), [квадратичных пожертвований](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) до краудфандинга и т. д.), более доступные данные и методы доступа, а также предоставление стимулов для воспроизводимости. + +### Хуан Бенет — Движение DeSci + + + +## Как DeSci улучшает науку {#desci-improves-science} + +Неполный список ключевых проблем в науке и то, как децентрализованная наука может помочь решить эти проблемы + +| **Децентрализованная наука** | **Традиционная наука** | +| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | +| Распределение средств определяется общественностью с использованием таких механизмов, как квадратичные пожертвования или DAO. | Небольшие закрытые централизованные группы контролируют распределение средств. | +| Вы сотрудничаете с коллегами со всего мира в динамичных командах. | Финансовые организации и домашние учреждения ограничивают ваше взаимодействие. | +| Решения о финансировании принимаются онлайн и прозрачно. Изучаются новые механизмы финансирования. | Решения о финансировании принимаются с длительным сроком выполнения и ограниченной прозрачностью. Существует мало механизмов финансирования. | +| Совместное использование лабораторных услуг стало проще и прозрачнее с помощью примитивов Web3. | Совместное использование лабораторных ресурсов часто медленное и непрозрачное. | +| Для доверия, прозрачности и всеобщего доступа могут быть разработаны новые модели публикации, которые используют примитивы Web3. | Вы публикуете по установленным путям, которые часто признаются неэффективными, предвзятыми и эксплуататорскими. | +| Вы можете зарабатывать токены и репутацию за рецензирование работ. | Ваша рецензируемая работа является неоплачиваемой, принося доход коммерческим издателям. | +| Вы владеете интеллектуальной собственностью (ИС), которую создаете и распространяете в соответствии с прозрачными условиями. | Ваше домашнее учреждение владеет интеллектуальной собственностью (ИС), которую вы создаете. Доступ к ИС не является прозрачным. | +| Обмен всеми исследованиями, включая данные неудачных попыток, путем размещения всех шагов в блокчейне. | Предвзятость публикаций означает, что исследователи с большей вероятностью делятся экспериментами, которые дали успешные результаты. | + +## Ethereum и DeSci {#ethereum-and-desci} + +Децентрализованная научная система потребует надежной безопасности, минимальных денежных и транзакционных затрат и богатой экосистемы для разработки приложений. Ethereum предоставляет все необходимое для создания децентрализованного научного стека. + +## Варианты использования DeSci {#use-cases} + +DeSci создает набор научных инструментов для интеграции научных кругов Web2 в цифровой мир. Ниже приведены примеры вариантов использования, которые Web3 может предложить научному сообществу. + +### Публикация {#publishing} + +Публикация научных работ является известной проблемой, поскольку ею управляют издательства, которые полагаются на бесплатный труд ученых, рецензентов и редакторов для создания статей, но затем взимают непомерную плату за публикацию. Общественность, которая обычно косвенно оплачивает работу и расходы на публикацию за счёт налогообложения, часто не имеет доступа к той же работе без повторной оплаты издателю. Общая сумма гонораров за публикацию отдельных научных работ часто составляет пятизначную цифру ($USD), подрывая всю концепцию научного знания как [общественного блага](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 обладает потенциалом, который позволит разрушить эту сломанную модель финансирования, экспериментируя с различными моделями стимулирования, разработанными DAO и 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} + +Интеллектуальная собственность (ИС) является серьезной проблемой в области традиционной науки: от того, что она застряла в университетах или неиспользования в биотехнологиях, до того, что ее трудно оценить. Однако владение цифровыми активами (такими как научные данные или статьи) — это то, что Web3 делает исключительно хорошо с помощью [невзаимозаменяемых токенов (NFTs)](/nft/). + +Таким же образом, что и NFT могут передавать доход для будущих транзакций первоначальному создателю, вы можете установить прозрачные цепочки атрибутов ценности для вознаграждения исследователей, руководящих органов (как DAO), или даже тем субъектам, чьи данные собираются. + +[Токены IP-NFT](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) также могут функционировать как ключ к децентрализованному хранилищу данных проводимых исследовательских экспериментов и подключаться к NFT и [DeFi](/defi/) (от фракционирования до кредитных пулов и оценки стоимости). Это также позволяет находящимся на цепочке сущностям, таким как DAO (например [VitaDAO](https://www.vitadao.com/)), проводить исследования непосредственно на цепочке. Появление непередаваемых [токенов soulbound](https://vitalik.ca/general/2022/01/26/soulbound.html) может также сыграть важную роль в DeSci, позволяя людям подтверждать свой опыт и учетные данные, связанные с их адресом Ethereum. + +### Хранение данных, доступ и архитектура {#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 поддерживают вышеописанные сценарии и обеспечивают основу для подлинно открытой науки, где исследователи могут создавать общественные блага без разрешений на доступ или платы. Решения Web3 для публичных данных, такие как IPFS, Arweave и Filecoin, оптимизированы для децентрализации. dClimate, например, обеспечивает универсальный доступ к данным о климате и погоде, в том числе с метеостанций и прогнозных климатических моделей. + +## Участвовать {#get-involved} + +Исследуйте проекты и присоединяйтесь к сообществу DeSci. + +- [DeSci.Global: календарь глобальных мероприятий и встреч](https://desci.global) +- [Блокчейн для науки в Telegram](https://t.me/BlockchainForScience) +- [Molecule: финансируйте и получайте финансирование для своих исследовательских проектов](https://discover.molecule.to/) +- [VitaDAO: получайте финансирование через спонсорские соглашения на исследования долголетия](https://www.vitadao.com/) +- [ResearchHub: публикуйте научные результаты и участвуйте в беседах с коллегами](https://www.researchhub.com/) +- [LabDAO: складывание белка in-silico](https://alphafodl.vercel.app/) +- [dClimate API: запрос климатических данных, собранных децентрализованным сообществом](https://api.dclimate.net/) +- [DeSci Foundation: конструктор инструментов публикации DeSci](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: складывание белка in-silico](https://alphafodl.vercel.app/) +- [Bio.xyz: получите финансирование для своего биотехнологического проекта DAO или desci](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) +- [Active Inference Lab: лаборатория активного обобщения](https://www.activeinference.org/) +- [CureDAO: платформа точного здоровья, принадлежащая сообществу](https://docs.curedao.org/) +- [IdeaMarkets: обеспечение децентрализованного научного доверия](https://ideamarket.io/) +- [DeSci Labs](https://www.desci.com/) + +Мы рады предложениям, позволяющим пополнить наш список новыми проектами. Для начала ознакомьтесь с нашей [политикой размещения в списках](/contributing/adding-desci-projects/)! + +## Дополнительные ресурсы {#further-reading} + +- [DeSci Wiki от Jocelynn Pearl и Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) +- [Руководство по децентрализованной биотехнологии от Джоселин Перл для ресурса Future венчурного фонда a16z](https://future.a16z.com/a-guide-to-decentralized-biotech/) +- [Аргументы в пользу DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) +- [Руководство по DeSci](https://future.com/what-is-decentralized-science-aka-desci/) +- [Децентрализованные научные ресурсы](https://www.vincentweisser.com/decentralized-science) +- [IP-NFT от Molecule’s Biopharma — техническое описание](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) +- [Создание систем, не требующих доверия, в науке. Автор: Джон Старр](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) +- [Возникновение DAO в сфере биотехнологий](https://molecule.to/blog/the-emergence-of-biotech-daos) +- [Пол Калхас — 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) +- [DeSci: будущее исследований с Сэмюэлом Акиношо](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) +- [Финансирование науки (эпилог: DeSci и новые криптопримитивности). Автор: Надия](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) +- [Хуан Бенет — DeSci, независимые лаборатории и наука об обработке больших массивов данных](https://www.youtube.com/watch?v=zkXM9H90g_E) +- [Себастьян Брунемайер — Как DeSci может преобразовать биомедицинские исследования и венчурный капитал](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/ru/developers/docs/accounts/index.md b/public/content/translations/ru/developers/docs/accounts/index.md similarity index 100% rename from src/content/translations/ru/developers/docs/accounts/index.md rename to public/content/translations/ru/developers/docs/accounts/index.md diff --git a/src/content/translations/ru/developers/docs/blocks/index.md b/public/content/translations/ru/developers/docs/blocks/index.md similarity index 100% rename from src/content/translations/ru/developers/docs/blocks/index.md rename to public/content/translations/ru/developers/docs/blocks/index.md diff --git a/src/content/translations/ru/developers/docs/consensus-mechanisms/index.md b/public/content/translations/ru/developers/docs/consensus-mechanisms/index.md similarity index 100% rename from src/content/translations/ru/developers/docs/consensus-mechanisms/index.md rename to public/content/translations/ru/developers/docs/consensus-mechanisms/index.md diff --git a/src/content/translations/ru/developers/docs/consensus-mechanisms/pos/index.md b/public/content/translations/ru/developers/docs/consensus-mechanisms/pos/index.md similarity index 100% rename from src/content/translations/ru/developers/docs/consensus-mechanisms/pos/index.md rename to public/content/translations/ru/developers/docs/consensus-mechanisms/pos/index.md diff --git a/src/content/translations/ru/developers/docs/consensus-mechanisms/pow/index.md b/public/content/translations/ru/developers/docs/consensus-mechanisms/pow/index.md similarity index 100% rename from src/content/translations/ru/developers/docs/consensus-mechanisms/pow/index.md rename to public/content/translations/ru/developers/docs/consensus-mechanisms/pow/index.md diff --git a/src/content/translations/ru/developers/docs/consensus-mechanisms/pow/mining/index.md b/public/content/translations/ru/developers/docs/consensus-mechanisms/pow/mining/index.md similarity index 100% rename from src/content/translations/ru/developers/docs/consensus-mechanisms/pow/mining/index.md rename to public/content/translations/ru/developers/docs/consensus-mechanisms/pow/mining/index.md diff --git a/src/content/translations/ru/developers/docs/dapps/index.md b/public/content/translations/ru/developers/docs/dapps/index.md similarity index 100% rename from src/content/translations/ru/developers/docs/dapps/index.md rename to public/content/translations/ru/developers/docs/dapps/index.md diff --git a/src/content/translations/ru/developers/docs/evm/index.md b/public/content/translations/ru/developers/docs/evm/index.md similarity index 100% rename from src/content/translations/ru/developers/docs/evm/index.md rename to public/content/translations/ru/developers/docs/evm/index.md diff --git a/src/content/translations/ru/developers/docs/evm/opcodes/index.md b/public/content/translations/ru/developers/docs/evm/opcodes/index.md similarity index 100% rename from src/content/translations/ru/developers/docs/evm/opcodes/index.md rename to public/content/translations/ru/developers/docs/evm/opcodes/index.md diff --git a/src/content/translations/ru/developers/docs/gas/index.md b/public/content/translations/ru/developers/docs/gas/index.md similarity index 100% rename from src/content/translations/ru/developers/docs/gas/index.md rename to public/content/translations/ru/developers/docs/gas/index.md diff --git a/src/content/translations/ru/developers/docs/index.md b/public/content/translations/ru/developers/docs/index.md similarity index 100% rename from src/content/translations/ru/developers/docs/index.md rename to public/content/translations/ru/developers/docs/index.md diff --git a/src/content/translations/ru/developers/docs/intro-to-ether/index.md b/public/content/translations/ru/developers/docs/intro-to-ether/index.md similarity index 100% rename from src/content/translations/ru/developers/docs/intro-to-ether/index.md rename to public/content/translations/ru/developers/docs/intro-to-ether/index.md diff --git a/src/content/translations/ru/developers/docs/intro-to-ethereum/index.md b/public/content/translations/ru/developers/docs/intro-to-ethereum/index.md similarity index 100% rename from src/content/translations/ru/developers/docs/intro-to-ethereum/index.md rename to public/content/translations/ru/developers/docs/intro-to-ethereum/index.md diff --git a/src/content/translations/ru/developers/docs/networks/index.md b/public/content/translations/ru/developers/docs/networks/index.md similarity index 100% rename from src/content/translations/ru/developers/docs/networks/index.md rename to public/content/translations/ru/developers/docs/networks/index.md diff --git a/public/content/translations/ru/developers/docs/nodes-and-clients/index.md b/public/content/translations/ru/developers/docs/nodes-and-clients/index.md new file mode 100644 index 00000000000..70b36dd5bfe --- /dev/null +++ b/public/content/translations/ru/developers/docs/nodes-and-clients/index.md @@ -0,0 +1,316 @@ +--- +title: Узлы и клиенты +description: Немного об узлах Ethereum и клиентском программном обеспечении, а также о том, как настроить узел и почему вы должны это сделать. +lang: ru +sidebarDepth: 2 +--- + +Ethereum — это распределенная сеть компьютеров с программным обеспечением (известным как узлы, или ноды), которое может проверять блоки и данные транзакций. Для «запуска» узла на вашем компьтере вам необходимо приложение, известное как клиент. + +## Прежде чем начать {#prerequisites} + +Вы должны понимать концепцию одноранговой сети и [основы EVM](/developers/docs/evm/), прежде чем углубляться и запускать собственный экземпляр клиента Ethereum. Начните с [введения в Ethereum](/developers/docs/intro-to-ethereum/). + +Если ты новичок в теме узлов, мы рекомендуем сначала ознакомиться с нашим удобным для пользователя введением по [ запуску узла Ethereum](/run-a-node). + +## Что такое узлы и клиенты? {#what-are-nodes-and-clients} + +«Узел» относится к запускаемой части клиентского программного обеспечения. Клиент — это реализация Ethereum, которая проверяет все транзакции в каждом блоке, обеспечивая безопасность сети и точность данных. + +Вы можете увидеть сеть Ethereum в реальном времени, посмотрев на эту [карту узлов](https://etherscan.io/nodetracker). + +[Клиенты Ethereum](/developers/docs/nodes-and-clients/#execution-clients) существуют на множестве языков программирования, таких как Go, Rust, JavaScript, Typescript, Python, C# .NET, Nim и Java. Что общего у этих реализаций, так это то, что все они следуют формальной спецификации (изначально [Желтая книга Ethereum](https://ethereum.github.io/yellowpaper/paper.pdf)). Эта спецификация определяет, как функционирует сеть Ethereum и блокчейн. + +![Клиент-исполнитель](./client-diagram.png) Упрощенная схема возможностей клиента Ethereum. + +## Типы узлов {#node-types} + +Если вы хотите [запустить собственный узел](/developers/docs/nodes-and-clients/run-a-node/), вы должны понимать, что существуют разные типы узлов, которые по-разному обрабатывают данные. Фактически клиенты могут запускать 3 разных типа узлов — легкий, полный и архивный. Существуют также варианты различных стратегий синхронизации, которые позволяют сократить время синхронизации. Синхронизация означает скорость, с которой он может получить самую свежую информацию о состоянии Ethereum. + +### Полный узел {#full-node} + +- Хранит полные данные блокчейна. +- Участвует в проверке блоков, проверяет все блоки и состояния. +- Все состояния могут быть получены из полного узла. +- Обслуживает сеть и предоставляет данные по запросу. + +### Легкий узел {#light-node} + +- Сохраняет цепочку заголовков и запрашивает все остальное. +- Может проверять достоверность данных относительно корней состояний в заголовках блоков. +- Полезно для устройств с малой емкостью, таких как встроенные устройства или мобильные телефоны, которые не могут позволить себе хранить гигабайты данных блокчейна. + +### Архивный узел {#archive-node} + +- Хранит все, что хранится в полном узле, и создает архив исторических состояний. Требуется, если вы хотите запросить что-то вроде баланса аккаунта в блоке № 4 000 000 или просто и надежно [протестировать свой собственный набор транзакций без их майнинга с помощью OpenEthereum](https://openethereum.github.io/JSONRPC-trace-module#trace_callmany). +- Эти данные представляют собой несколько терабайтов, что делает узлы архива менее привлекательными для обычных пользователей, но может быть полезно для таких сервисов, как обозреватели блоков, поставщики кошельков и аналитики цепочек. + +Синхронизация клиентов в любом режиме, кроме архива, приведет к удалению данных блокчейна. Это означает, что не существует архива всех исторических состояний, но полный узел способен построить их по требованию. + +## Зачем мне запускать узел Ethereum? {#why-should-i-run-an-ethereum-node} + +Запуск узла позволяет вам конфиденциально и ни на кого не полагаясь использовать Ethereum, поддерживая экосистему. + +### Польза для вас {#benefits-to-you} + +Запуск собственного узла позволяет вам использовать Ethereum в действительно конфиденциальной, самодостаточной и не требующей доверяться посторонним манере. Вам не нужно доверять сети, потому что вы можете сами проверить данные своим клиентом. «Не доверяйте, проверяйте» — популярная мантра блокчейна. + +- Ваш узел самостоятельно проверяет все транзакции и блоки на соответствие правилам согласования. Это означает, что вам не нужно полагаться на какие-либо другие узлы в сети или полностью им доверять. +- Вам не придется передавать свои адреса и балансы на случайные узлы. Все можно проверить с помощью собственного клиента. +- Ваше децентрализованное приложение может быть более безопасным и конфиденциальным, если вы используете свой собственный узел. [MetaMask](https://metamask.io), [MyEtherWallet](https://myetherwallet.com) и некоторые другие кошельки могут быть легко указаны в вашем собственном локальном узле. +- Вы можете запрограммировать собственные конечные точки RPC. +- Вы можете подключиться к своему узлу с помощью **межпроцессного взаимодействия (IPC)** или переписать узел, чтобы загрузить свою программу в виде плагина. Это обеспечивает низкую задержку, необходимую для максимально быстрой замены ваших транзакций (т. е. опережающего выполнения). + +![Как получать доступ к Ethereum через свое приложение и узлы](./nodes.png) + +### Преимущества сети {#network-benefits} + +Разнообразный набор узлов важен для работоспособности, безопасности и отказоустойчивости Ethereum. + +- Они предоставляют доступ к данным блокчейна для легких клиентов, которые от него зависят. При высоких пиках использования должно быть достаточно полных узлов, чтобы облегчить синхронизацию узлов. Легкие узлы не хранят всю цепочку блоков, вместо этого они проверяют данные через [корни состояний в заголовках блоков](/developers/docs/blocks/#block-anatomy). При необходимости они могут запросить у блоков дополнительную информацию. +- Полные узлы обеспечивают соблюдение правил согласования с доказательством работы, поэтому их нельзя обманом заставить принимать блоки, которые им не соответствуют. Это обеспечивает дополнительную безопасность в сети: если бы все узлы были легкими узлами, не выполняющими полную проверку, майнеры могли бы атаковать сеть и, например, создавать блоки с более высоким вознаграждением. + +Если вы запустите полный узел, от этого выиграет вся сеть Ethereum. + +## Запуск собственного узла {#running-your-own-node} + +Заинтересованы в запуске собственного клиента Ethereum? + +Для ознакомления с введением, удобным для начинающих, навестите нашу страницу [запуска узла](/run-a-node), чтобы узнать больше. + +Если вы более технически подкованный пользователь, узнайте, как [развернуть свой собственный узел](/developers/docs/nodes-and-clients/run-a-node/) с помощью командной строки! + +### Проекты {#projects} + +[**Выберите клиент и следуйте его инструкциям**](#clients) + +**ethnode** — **_запуск узла Ethereum (Geth или OpenEthereum) для локальной разработки._** + +- [GitHub](https://github.com/vrde/ethnode) + +**DAppNode** — **_графический интерфейс в операционной системе для запуска узлов Web3, включая Ethereum и Beacon Chain, на выделенной машине._** + +- [dappnode.io](https://dappnode.io) + +### Ресурсы {#resources} + +- [Запуск полных узлов Ethereum: полное руководство](https://medium.com/coinmonks/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) — _7 ноября 2019 г., Джастин Леру_ +- [Памятка по настройке узла](https://dev.to/5chdn/ethereum-node-configuration-modes-cheat-sheet-25l8) — _5 января 2019 г., Афри Шёден_ +- [Как установить и запустить узел Geth](https://www.quiknode.io/guides/infrastructure/how-to-install-and-run-a-geth-node) — _4 октября 2020 г., Сахил Сен_ +- [Как установить и запустить узел OpenEthereum (ранее Parity)](https://www.quiknode.io/guides/infrastructure/how-to-run-a-openethereum-ex-parity-client-node) — _22 сентября 2020 г., Сахил Сен_ + +## Альтернативы {#alternatives} + +Запуск собственного узла может быть трудным, и вам не всегда нужно запускать собственный экземпляр. В этом случае вы можете использовать стороннего поставщика API, например [Infura](https://infura.io), [Alchemy](https://alchemyapi.io) или [QuikNode](https://www.quiknode.io). В качестве альтернативы есть [ArchiveNode](https://archivenode.io/) — это финансируемый сообществом узел Archive, предоставляющий архивные данные блокчейна Ethereum независимым разработчикам, которые в противном случае не могли бы себе этого позволить. Для получения общего представления об использовании этих услуг ознакомьтесь с разделом [узлы как услуга](/developers/docs/nodes-and-clients/nodes-as-a-service/). + +Если в вашем сообществе кто-то запускает узел Ethereum с общедоступным API, вы можете направить свои легкие кошельки (например, MetaMask) на узел сообщества [через Custom RPC](https://metamask.zendesk.com/hc/en-us/articles/360015290012-Using-a-Local-Node) и обезопасить себя больше, чем при работе с какой-то случайной третьей стороной. + +С другой стороны, если вы запустите клиент, вы можете поделиться им со своими друзьями, которым он может понадобиться. + +## Клиенты-исполнители (ранее «клиенты Eth1») {#execution-clients} + +Сообщество Ethereum поддерживает несколько клиентов-исполнителей с открытым исходным кодом (ранее известных как «клиенты Eth1« или просто «клиенты Ethereum»), разработанных разными командами с использованием разных языков программирования. Это делает сеть более сильной и разнообразной. Идеальная цель — добиться разнообразия без доминирования клиентов, чтобы уменьшить количество точек отказа. + +В этой таблице представлены различные клиенты. Все они проходят [клиентское тестирование](https://github.com/ethereum/tests) и активно поддерживаются, чтобы обновляться совместно с обновлениями сети. + +| Клиент | Язык | Операционные системы | Сети | Стратегии синхронизации | Обрезка мусора | +| ----------------------------------------------------------------------- | -------- | --------------------- | ----------------------------------------------- | ----------------------- | -------------- | +| [Geth](https://geth.ethereum.org/) | Перейти | Linux, Windows, macOS | Основная сеть, Görli, Rinkeby, Ropsten | Снимок, полная | Архив, обрезка | +| [Nethermind](http://nethermind.io/) | C#, .NET | Linux, Windows, macOS | Основная сеть, Görli, Ropsten, Rinkeby и другие | Быстрая, луч, архив | Архив, обрезка | +| [Besu](https://besu.hyperledger.org/en/stable/) | Java | Linux, Windows, macOS | Основная сеть, Rinkeby, Ropsten, Görli и другие | Fast, Full | Архив, обрезка | +| [Erigon](https://github.com/ledgerwatch/erigon) | Перейти | Linux, Windows, macOS | Основная сеть, Görli, Rinkeby, Ropsten | Полная | Архив, обрезка | +| [OpenEthereum (устарело)](https://github.com/openethereum/openethereum) | Rust | Linux, Windows, macOS | Основная сеть, Kovan, Ropsten и другие | Warp, Full | Архив, обрезка | + +**Обратите внимение, что OpenEthereum [устарел](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) и больше не поддерживается.** Используйте его с осторожностью и по возможности перейдите на другую реализацию клиента. + +Подробнее о поддерживаемых сетях читайте в статье о [сетях Ethereum](/developers/docs/networks/). + +### Преимущества разных реализаций {#advantages-of-different-implementations} + +У каждого клиента есть уникальные варианты использования и преимущества, поэтому вы должны выбрать один, исходя из своих предпочтений. Разнообразие позволяет сфокусировать реализации на различных функциях и пользовательских аудиториях. Вы можете выбрать клиента на основе функций, поддержки, языка программирования или лицензий. + +#### Go Ethereum {#geth} + +Go Ethereum (сокращенно Geth) — одна из оригинальных реализаций протокола Ethereum. В настоящее время это самый распространенный клиент с самой большой пользовательской базой и множеством инструментов для пользователей и разработчиков. Он написан на Go с полностью открытым исходным кодом и под лицензией GNU LGPL v3. + +#### OpenEthereum {#openethereum} + +OpenEthereum — это быстрый, многофункциональный и продвинутый клиент Ethereum на основе интерфейса командной строки. Он создан для обеспечения необходимой инфраструктуры для быстрых и надежных услуг, требующих быстрой синхронизации и максимального времени безотказной работы. Цель OpenEthereum — стать самым быстрым, легким и безопасным клиентом Ethereum. Он предоставляет чистую модульную кодовую базу для: + +- простой перенастройки; +- легкой интеграции в услуги или продукты; +- минимального потребления памяти и хранилища. + +OpenEthereum разработан с использованием передового языка программирования Rust и распространяется под лицензией GPLv3. + +**Обратите внимение, что OpenEthereum [устарел](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) и больше не поддерживается.** Используйте его с осторожностью и по возможности перейдите на другую реализацию клиента. + +#### Nethermind {#nethermind} + +Nethermind — это реализация Ethereum, созданная с помощью технического стека C# .NET, работающая на всех основных платформах, включая ARM. Он предлагает отличную производительность с: + +- оптимизированной виртуальной машиной; +- доступом к состоянию; +- сетью и ценными функциями: панели управления Prometheus/Grafana, поддержка ведения корпоративного журнала seq, трассировка JSON RPC и аналитические плагины. + +У Nethermind также есть [подробная документация](https://docs.nethermind.io), мощная поддержка разработчиков, онлайн-сообщество и круглосуточная поддержка, доступная для премиум-пользователей. + +#### Besu {#besu} + +Hyperledger Besu — это клиент Ethereum корпоративного уровня для общедоступных и разрешенных сетей. Он работает со всеми функциями основной Ethereum, от трассировки до GraphQL, имеет обширный мониторинг и поддерживается ConsenSys, как в открытых каналах сообщества, так и в коммерческих соглашениях об уровне обслуживания для предприятий. Он написан на Java и имеет лицензию Apache 2.0. + +#### Erigon {#erigon} + +Erigon (в прошлом — Turbo-Geth) представляет собой ответвление Go Ethereum, ориентированное на скорость и эффективность использования дискового пространства. Erigon — это полностью переработанная архитектура реализации Ethereum, написанная на Go, но с планируемыми реализациями на других языках. Цель Erigon — обеспечение быстрой, более модульной и более оптимизированной реализации Ethereum. Он может выполнить полную синхронизацию архивного узла, используя менее 2ТВ дискового пространства менее чем за 3 дня + +### Режимы синхронизации {#sync-modes} + +Чтобы отслеживать и проверять текущие данные в сети, клиент Ethereum должен синхронизироваться с последним ее состоянием. Это делается путем загрузки данных от пиров, криптографической проверки их целостности и создания локальной базы данных блокчейна. + +Режимы синхронизации с различными решениями представляют разные подходы к этому процессу. Клиенты также различаются по реализации алгоритмов синхронизации. Всегда обращайтесь к официальной документации выбранного клиента для уточнения особенностей реализации. + +#### Обзор подходов {#overview-of-strategies} + +Общий обзор подходов к синхронизации, используемых в клиентах с поддержкой основной сети: + +##### Полная синхронизация + +Полная синхронизация загружает все блоки (включая заголовки, транзакции и квитанции) и генерирует состояние блокчейна постепенно, выполняя каждый блок из начала. + +- Минимизирует необходимость доверия и обеспечивает максимальную безопасность, проверяя каждую транзакцию. +- При увеличении количества транзакций обработка всех транзакций может занять от нескольких дней до нескольких недель. + +##### Быстрая синхронизация + +Быстрая синхронизация загружает все блоки (включая заголовки, транзакции и квитанции), проверяет все заголовки, загружает состояние и сверяет его с заголовками. + +- Полагается на безопасность механизма консенсуса. +- Синхронизация займет всего несколько часов. + +##### Легкая синхронизация + +В легком режиме клиент загружает все заголовки блоков и данные блоков, а некоторые из них проверяются случайным образом. Синхронизируется только конец цепи из доверенной контрольной точки. + +- Получает только последнее состояние, полагаясь на доверие к разработчикам и механизму консенсуса. +- Клиент будет готов к использованию с текущим состоянием сети через несколько минут. + +[Подробнее о легких клиентах](https://www.parity.io/blog/what-is-a-light-client/) + +##### Синхронизация снимка + +Реализовано Geth. Использование динамических снимков, обслуживаемых пирами, позволяет получить все данные о счетах и хранилищах без загрузки промежуточных узлов дерева, а затем восстановить дерево Меркла локально. + +- Самая быстрая стратегия синхронизации, разработанная компанией Geth, в настоящее время используется по умолчанию +- Экономия дискового пространства и пропускной способности сети без ущерба для безопасности. + +[Подробнее о снимке](https://github.com/ethereum/devp2p/blob/master/caps/snap.md) + +##### Варп-синхронизация + +Реализовано OpenEthereum. Узлы регулярно генерируют критичный для консенсуса снимок состояния, и любой пир может получить эти снимки по сети, обеспечивая быструю синхронизацию из этой точки. + +- Самый быстрый и стандартный режим синхронизации OpenEthereum полагается на статические снимки, обслуживаемые пирами. +- Стратегия похожа на синхронизацию снимков, но без определенных преимуществ в плане безопасности. + +[Подробнее о варпе](https://openethereum.github.io/Beginner-Introduction#warping---no-warp) + +##### Синхронизация луча + +Реализовано Nethermind и Trinity. Работает как быстрая синхронизация, но также загружает данные, необходимые для выполнения последних блоков, что позволяет запрашивать цепочку в течение первых нескольких минут после запуска. + +- Сначала синхронизирует состояние и позволяет запросить RPC за несколько минут. +- Этот тип все еще находится в разработке и не полностью надежен, фоновая синхронизация замедляется, а ответы RPC могут не срабатывать. + +[Подробнее о луче](https://medium.com/@jason.carver/intro-to-beam-sync-a0fd168be14a) + +#### Настройка в клиенте {#client-setup} + +Клиенты предлагают широкие возможности конфигурации в соответствии с вашими потребностями. Выберите тот, который подходит вам лучше всего, исходя из уровня безопасности, доступных данных и стоимости. Помимо алгоритма синхронизации, вы также можете настроить «обрезку» различных типов старых данных. Обрезка позволяет удалить устаревшие данные, примером может быть удаление узлов дерева состояний, которые недоступны из новых блоков. + +Обратите внимание на документацию клиента или страницу справки, чтобы узнать, какой режим синхронизации используется по умолчанию. Вы можете определить предпочтительный тип синхронизации при настройке следующим образом. + +**Настройка легкой синхронизации в [GETH](https://geth.ethereum.org/) или [ERIGON](https://github.com/ledgerwatch/erigon)** + +`geth --syncmode "light"` + +Для получения дополнительной информации ознакомьтесь с руководством по [запуску легкого узла Geth](/developers/tutorials/run-light-node-geth/). + +**Настройка полной синхронизации с архивом в [Besu](https://besu.hyperledger.org/)** + +`besu --sync-mode=FULL` + +Как и любую другую конфигурацию, ее можно определить с помощью флага запуска или в файле конфигурации. Другой пример — [Nethermind](https://docs.nethermind.io/nethermind/), который предлагает вам выбрать конфигурацию во время первой инициализации и создает файл конфигурации. + +## Консенсус-клиенты (ранее — «клиенты Eth2») {#consensus-clients} + +Существует несколько консенсус-клиентов (ранее известных как «клиенты Eth2»), поддерживающих [обновления консенсуса](/roadmap/beacon-chain/). Они управляют цепочкой Beacon Chain и предоставят механизм консенсуса с доказательством владения клиентам-исполнителям после [слияния](/roadmap/merge/). + +| Клиент | Язык | Операционные системы | Сети | +| ----------------------------------------------------------- | ---------- | --------------------- | ------------------------------------- | +| [Teku](https://pegasys.tech/teku) | Java | Linux, Windows, macOS | Beacon Chain, Goerli | +| [Nimbus](https://nimbus.team/) | Nim | Linux, Windows, macOS | Beacon Chain, Goerli | +| [Lighthouse](https://lighthouse-book.sigmaprime.io/) | Rust | Linux, Windows, macOS | Beacon Chain, Goerli, Pyrmont | +| [Lodestar](https://lodestar.chainsafe.io/) | TypeScript | Linux, Windows, macOS | Beacon Chain, Goerli | +| [Prysm](https://docs.prylabs.network/docs/getting-started/) | Go | Linux, Windows, macOS | Beacon Chain, Gnosis, Goerli, Pyrmont | + +## Аппаратное обеспечение {#hardware} + +Требования к оборудованию различаются в зависимости от клиента, но обычно не так высоки, поскольку узел просто должен оставаться синхронизированным. Не путайте это с майнингом, который требует гораздо большей вычислительной мощности. Однако время синхронизации и производительность улучшаются с более мощным оборудованием. В зависимости от ваших потребностей и желаний Ethereum можно запускать на вашем компьютере, домашнем сервере, одноплатных компьютерах или в виртуальных частных серверах в облаке. + +Самый простой способ запустить собственный узел — использовать самонастраиваемые блоки, такие как [DAppNode](https://dappnode.io/). Он предоставляет оборудование для запуска клиентов и приложений, которые зависят от них, с простым пользовательским интерфейсом. + +### Требования {#requirements} + +Перед установкой любого клиента убедитесь, что на вашем компьютере достаточно ресурсов для его запуска. Минимальные и рекомендуемые требования можно найти ниже, однако ключевой частью является дисковое пространство. Синхронизация блокчейна Ethereum требует очень больших затрат на ввод-вывод. Лучше всего иметь твердотельный накопитель (SSD). Чтобы запустить клиент Ethereum на жестком диске, вам понадобится как минимум 8 ГБ ОЗУ для использования в качестве кэша. + +#### Минимальные требования {#recommended-specifications} + +- ЦП с минимум 2 ядрами +- Минимум 4 ГБ ОЗУ с SSD, 8 ГБ, если у вас жесткий диск +- Пропускная способность 8 Мбит/с + +#### Рекомендуемые характеристики {#recommended-specifications} + +- Быстрый процессор с минимум 4 ядрами +- Минимум 16 ГБ ОЗУ +- Быстрый SSD с не менее 500 ГБ свободного места +- Пропускная способность от 25 Мбит/с + +Выбранный вами режим синхронизации повлияет на требования к дисковому пространству, но мы оценили объем, который вам потребуется для каждого клиента. + +| Клиент | Размер диска (быстрая синхронизация) | Размер диска (полный архив) | +| ------------ | ------------------------------------ | --------------------------- | +| Geth | 400ГБ+ | 6TБ+ | +| OpenEthereum | От 280 ГБ | От 6 TБ | +| Nethermind | От 200 ГБ | От 5 ТБ | +| Besu | От 750 ГБ | От 5 ТБ | +| Erigon | Н/Д | От 1 ТБ | + +- Примечание: Erigon не выполняет быструю синхронизацию, но возможна полная обработка (~500 ГБ) + +Эти диаграммы показывают, что требования к хранилищу постоянно меняются. Для получения самых последних данных по Geth и OpenEthereum смотрите информацию о [полной синхронизации данных](https://etherscan.io/chartsync/chaindefault) и [синхронизации архива](https://etherscan.io/chartsync/chainarchive). + +### Ethereum на одноплатном компьютере {#ethereum-on-a-single-board-computer} + +Самый удобный и дешевый способ запустить узел Ethereum — использовать одноплатный компьютер с архитектурой ARM, такой как Raspberry Pi. [Ethereum на ARM](https://twitter.com/EthereumOnARM) предоставляет образы клиентов Geth, OpenEthereum, Nethermind и Besu. Вот простое руководство [как создать и настроить клиент ARM](/developers/tutorials/run-node-raspberry-pi/). + +Такие небольшие, доступные и эффективные устройства идеально подходят для работы узла дома. + +## Дополнительные ресурсы {#further-reading} + +В Интернете есть много информации о клиентах Ethereum. Вот несколько ресурсов, которые могут оказаться полезными. + +- [Ethereum 101, часть 2: понимание узлов](https://kauri.io/ethereum-101-part-2-understanding-nodes/48d5098292fd4f11b251d1b1814f0bba/a) — _Уил Барнс, 13 февраля 2019 г._ +- [Запуск полных узлов Ethereum: руководство для сомневающихся](https://medium.com/@JustinMLeroux/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) — _Джастин Леру, 7 ноября 2019 г._ +- [Анализ требований к оборудованию, чтобы стать полностью проверенным узлом Ethereum](https://medium.com/coinmonks/analyzing-the-hardware-requirements-to-be-an-ethereum-full-validated-node-dc064f167902) — _Альберт Палау, 24 сентября 2018 г._ +- [Запуск узла Hyperledger Besu в основной сети Ethereum: преимущества, требования и настройка](https://pegasys.tech/running-a-hyperledger-besu-node-on-the-ethereum-mainnet-benefits-requirements-and-setup/) — _Фелипе Фараджи, 7 мая 2020 г._ + +## Похожие темы {#related-topics} + +- [Блоки](/developers/docs/blocks/) +- [Сети](/developers/docs/networks/) + +## Связанные руководства {#related-tutorials} + +- [Запуск узла с помощью Geth](/developers/tutorials/run-light-node-geth/) _— как загрузить, установить и запустить Geth. О синхронизаторах, консоли JavaScript и многом другом._ +- [Превратите свой Raspberry Pi 4 в узел валидатора, просто прошив карту MicroSD: руководство по установке](/developers/tutorials/run-node-raspberry-pi/) _— прошейте свой Raspberry Pi 4, подключите кабель Ethernet, подключите SSD-диск и включите устройство, чтобы превратить Raspberry Pi 4 в полноценный узел Ethereum, работающий на уровне исполнения (Mainnet) и/или на уровне консенсуса (Beacon Chain / validator)._ diff --git a/src/content/translations/ru/developers/docs/nodes-and-clients/nodes-as-a-service/index.md b/public/content/translations/ru/developers/docs/nodes-and-clients/nodes-as-a-service/index.md similarity index 100% rename from src/content/translations/ru/developers/docs/nodes-and-clients/nodes-as-a-service/index.md rename to public/content/translations/ru/developers/docs/nodes-and-clients/nodes-as-a-service/index.md diff --git a/public/content/translations/ru/developers/docs/nodes-and-clients/run-a-node/index.md b/public/content/translations/ru/developers/docs/nodes-and-clients/run-a-node/index.md new file mode 100644 index 00000000000..7c929248252 --- /dev/null +++ b/public/content/translations/ru/developers/docs/nodes-and-clients/run-a-node/index.md @@ -0,0 +1,164 @@ +--- +title: Развертывание собственного узла Ethereum +description: Общее введение в запуск собственного экземпляра клиента Ethereum. +lang: ru +sidebarDepth: 2 +--- + +Запуск собственного узла дает вам различные преимущества, открывает новые возможности и помогает поддерживать экосистему. Эта страница поможет вам развернуть собственный узел и принять участие в проверке транзакций Ethereum. + +## Прежде чем начать {#prerequisites} + +Вы должны понимать, что такое узел Ethereum и почему вам может понадобиться запустить клиент. Это описано в статье [Узлы и клиенты](/developers/docs/nodes-and-clients/). + +Если тема запуска собственного узла для вас новая или вы ищете менее «технический» способ, посмотрите наш более понятное для новичков [введение в запуск узлов Ethereum](/run-a-node). + +## Выбор подхода {#choosing-approach} + +Первый шаг в разворачивании вашего узла — выбор подхода. Вы должны выбрать клиент (программное обеспечение), среду и параметры, с которыми хотите начать. Просмотрите все доступные [клиенты основной сети](/developers/docs/nodes-and-clients/#advantages-of-different-implementations). + +### Настройки клиента {#client-settings} + +Реализации клиента включают различные режимы синхронизации и многие другие параметры. [Режимы синхронизации](/developers/docs/nodes-and-clients/#sync-modes) представляют собой различные методы загрузки и проверки данных блокчейна. Перед запуском узла следует решить, какую сеть и режим синхронизации использовать. Наиболее важно учитывать дисковое пространство и время синхронизации, которые потребуются клиенту. + +Все функции и опции можно найти в документации клиента. Различные конфигурации клиента можно установить, запустив клиент с соответствующими флагами. В целях тестирования вы можете запустить клиент в одной из тестовых сетей. [Обзор поддерживаемых сетей](/developers/docs/nodes-and-clients/#execution-clients). + +### Среда и оборудование {#environment-and-hardware} + +#### Локально или в облаке {#local-vs-cloud} + +Клиенты Ethereum могут работать на компьютерах потребительского класса и не требуют специального оборудования (например, в отличие от майнинга). Таким образом, в зависимости от ваших нужд вам доступны различные способы развертывания. Для упрощения давайте рассмотрим запуск узла как на локальной физической машине, так и на облачном сервере. + +- Облако + - Провайдеры предлагают большое время безотказной работы сервера и статические общедоступные IP-адреса + - Получение выделенного или виртуального сервера может быть более удобным, чем создание собственного + - Необходимость доверяться третьей стороне — поставщику серверов + - Из-за большого размера хранилища для полного узла цена арендованного сервера может быть высока +- Собственное оборудование + - Более независимый подход, требующий меньшего доверия посторонним + - Однократное вложение + - Возможность покупки преднастроенной машины + - Необходимость подготовить и обслуживать оборудование, а также устранять возможные проблемы + +Оба варианта имеют различные преимущества, описанные выше. Если вы ищете облачное решение, помимо многих традиционных поставщиков облачных вычислений есть сервисы, ориентированные на развертывание узлов. Например: + +- [Узлы](https://www.quiknode.io/) +- [Blockdaemon](https://blockdaemon.com) +- [LunaNode](https://www.lunanode.com/) +- [Alchemy](https://www.alchemy.com/) + +#### Аппаратное обеспечение {#hardware} + +Однако устойчивая к цензуре децентрализованная сеть не должна полагаться на облачных провайдеров. Для экосистемы будет полезнее, если вы запустите свой узел на собственном оборудовании. Самыми простыми вариантами являются преднастроенные машины, такие как: + +- [DappNode](https://dappnode.io/) +- [Avado](https://ava.do/) + +Проверьте минимальные и рекомендуемые [требования к дисковому пространству для каждого клиента и режима синхронизации](/developers/docs/nodes-and-clients/#requirements). Обычно для этого достаточно довольно скромной вычислительной мощности. Проблема обычно заключается в скорости диска. Во время начальной синхронизации клиенты Ethereum выполняют множество операций чтения и записи. Поэтому настоятельно рекомендуется использовать SSD. Клиент может даже не иметь [возможности синхронизировать текущее состояние на HDD диске](https://github.com/ethereum/go-ethereum/issues/16796#issuecomment-391649278), застревая в нескольких блоках позади основной сети. Большинство клиентов можно запустить на [одноплатном компьютере с ARM](/developers/docs/nodes-and-clients/#ethereum-on-a-single-board-computer/). Вы также можете использовать операционную систему [Ethbian](https://ethbian.org/index.html) для Raspberry Pi 4. Это позволит вам [запустить клиент с SD-карты](/developers/tutorials/run-node-raspberry-pi/). В зависимости от выбранного вами программного и аппаратного обеспечения время первоначальной синхронизации и требования к объему хранилища могут различаться. Обязательно [проверьте время синхронизации и требования к хранилищу](/developers/docs/nodes-and-clients/#recommended-specifications). Также убедитесь, что у вашего интернет-соединения нет [ограничения пропускной способности](https://wikipedia.org/wiki/Data_cap). Рекомендуется использовать безлимитное соединение, так как первоначальная синхронизация и обмен данными с сетью могут превысить ваш лимит. + +#### Операционная система {#operating-system} + +Все клиенты поддерживают основные операционные системы — Linux, MacOS, Windows. Это означает, что вы можете запускать узлы на обычных настольных компьютерах или серверах с операционной системой (ОС), которая подходит вам лучше всего. Убедитесь, что ваша ОС обновлена, чтобы избежать потенциальных проблем и уязвимостей. + +## Раскрутка узла {#spinning-up-node} + +### Получение клиентского программного обеспечения {#getting-the-client} + +Сначала скачайте [клиентское программное обеспечение](/developers/docs/nodes-and-clients/#execution-clients) + +Вы можете просто скачать исполняемое приложение или установочный пакет, который подходит вашей операционной системе и архитектуре. Всегда проверяйте подписи и контрольные суммы скачанных пакетов. Некоторые клиенты также предлагают репозитории для упрощения установки и обновления. Если хотите, можете сами собрать из исходников. Все клиенты имеют открытый исходный код, поэтому вы можете собрать их из исходного кода с помощью соответствующего компилятора. + +Исполняемые файлы для стабильных реализаций клиентов основной сети можно загрузить со страниц их выпусков: + +- [Geth](https://geth.ethereum.org/downloads/) +- [OpenEthereum](https://github.com/openethereum/openethereum/releases) +- [Nethermind](https://downloads.nethermind.io/) +- [Besu](https://besu.hyperledger.org/en/stable/) +- [Erigon](https://github.com/ledgerwatch/erigon) + +**Обратите внимение, что OpenEthereum [устарел](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) и больше не поддерживается.** Используйте его с осторожностью и по возможности перейдите на другую реализацию клиента. + +### Запуск клиента {#starting-the-client} + +Перед запуском клиентского программного обеспечения Ethereum убедитесь что ваша среда готова. Например, убедитесь в следующем: + +- На диске достаточно места с учетом выбранной сети и режима синхронизации. +- Память и ЦП не нагружаются другими программами. +- Операционная система обновлена до последней версии. +- В системе установлены правильное время и дата. +- Ваш маршрутизатор и брандмауэр принимают подключения к прослушиваемым портам. По умолчанию клиенты Ethereum используют порт слушателя (TCP) и порт обнаружения (UDP), оба по умолчанию 30303. + +Сначала запустите свой клиент в тестовой сети, чтобы убедиться, что все работает правильно. [Инструкции по запуску легкого узла Geth](/developers/tutorials/run-light-node-geth/) должны помочь. Необходимо указать все настройки клиента, которые не установлены по умолчанию. Вы можете использовать конфигурационный файл, чтобы определить свой набор настроек. Конкретные настройки можно найти в документации вашего клиента Исполнение клиента запустит его базовые функции и выбранные конечные точки, а затем начнется поиск узлов одноранговой сети. Когда узел найдет одноранговые соединения, клиент начнет синхронизацию. Актуальные данные блокчейна будут доступны, как только клиент закончит синхронизацию до текущего состояния. + +### Использование клиента {#using-the-client} + +Клиенты предоставляют конечные точки RPC API, которые можно использовать для управления клиентом и взаимодействием с сетью Ethereum различными способами: + +- Вызывать API вручную через наиболее подходящий протокол (например, через `curl`) +- Подсоединять предоставленную консоль (например, `geth attach`) +- Использовать в приложении + +У разных клиентов различаются реализации конечных точек RPC. Но существует стандарт JSON-RPC, которые можно использовать с любым клиентом. Обзор приведен в [документации JSON-RPC](https://eth.wiki/json-rpc/API). Приложения, которым требуется информация из сети Ethereum, могут использовать этот RPC. Например, популярный кошелек MetaMask позволяет вам [запустить локальный узел и присоединиться к нему](https://metamask.zendesk.com/hc/en-us/articles/360015290012-Using-a-Local-Node). + +#### Доступ к RPC {#reaching-rpc} + +Порт JSON-RPC по умолчанию — `8545`, но порты локальных конечных точек можно изменять в конфигурационном файле. По умолчанию интерфейс RPC доступен только с локального хоста компьютера. Чтобы сделать его доступным удаленно, можно сделать его открытым, сменив адрес на `0.0.0.0`. Это сделает ваш узел доступным для локальных и публичных IP-адресов. В большинстве случаев вам также нужно настроить переадресацию портов на маршрутизаторе. + +Совершать подобные манипуляции нужно с осторожностью, так как это позволит любому в Интернете управлять вашим узлом. Злонамеренные пользователи, имея доступ к вашему узлу, могут навредить системе или украсть ваши активы, если вы используете свой клиент как кошелек. + +Эту проблему можно решить, предотвратив изменение потенциально опасных методов RPC. Например, в `geth` можно задать методы, которые можно будет использовать для модификации, через опцию командной строки: `--http.api web3,eth,txpool`. + +Вы также можете размещать доступ к RPC интерфейсу, указывая службу веб-сервера, например Nginx, на локальный адрес и порт вашего клиента. + +Наиболее конфиденциальный и одновременно простой способ настроить публично доступную конечную точку — развернуть ее как сервис onion [Tor](https://www.torproject.org/). Это позволит вам получать доступ к RPC за пределами вашей локальной сети без статического публичного IP-адреса или открытых портов. Для этого: + +- Установите `tor` +- Отредактируйте конфигурационный файл `torrc`, чтобы настроить скрытую службу с адресом и портом вашего RPC клиента +- Перезапустите службу `tor` + +После перезапуска Tor вы получите имя хоста и ключи скрытой службы в желаемой директории. С этого момента ваш RPC будет доступен в сети Tor по своему имени хоста `.onion`. + +### Управлением узлом {#operating-the-node} + +Вы должны регулярно проверять свой узел, чтобы убедиться, что он работает правильно. Время от времени может быть необходимо проводить техническое обслуживание. + +#### Поддержание работы узла в сети {#keeping-node-online} + +Ваш узел необязательно должен быть постоянно подключен к сети, но желательно держать его в сети как можно дольше, чтобы поддерживать его синхронизацию с сетью. Вы можете отключить его для перезапуска, но имейте в виду: + +- Завершение работы может занять несколько минут, если последнее состояние все еще записывается на диск. +- Принудительное отключение может повредить базу данных. +- Ваш клиент не будет синхронизироваться с сетью, и при перезапуске потребуется повторная синхронизация. + +_Это не относится к узлам-валидаторам слоя консенсуса._ Выключение вашего узла повлияет на все службы, которые от него зависят. Если вы запускаете узел для _стейкинга_, вы должны минимизировать время простоя, насколько это возможно. + +#### Создание клиентской службы {#creating-client-service} + +Рассмотрим возможность создания службы для автоматической активации клиента при запуске. Например, на серверах Linux хорошим решением будет создание службы, которая выполняет клиент с определенной конфигурацией от имени пользователя с ограниченными правами и перезапускается автоматически. + +#### Обновление клиента {#updating-client} + +Вам необходимо постоянно обновлять клиентское программное обеспечение последними исправлениями безопасности, функциями и [EIP](/eips/). Перед [хард-форками](/history/) обязательно нужно убедиться, что вы используете правильную версию клиента. + +Каждая реализация клиента имеет человекочитаемую строку версии, используемой в протоколе одноранговой связи, но она также доступна из командной строки. Эта строка версии позволяет пользователям убедиться, что они используют правильную версию, и использовать обозреватели блоков и другие аналитические инструменты, задействованные в количественной оценке распространения определенных клиентов в сети. Более подробную информацию о строках версии можно получить в документации к конкретному клиенту. + +#### Запуск дополнительных служб {#running-additional-services} + +Запуск собственного узла дает возможность вашим службам использовать прямой доступ к клиентскому RPC сети Ethereum. Такие службы построены поверх Ethereum, примером чего могут быть [решения слоя 2](/developers/docs/scaling/#layer-2-scaling), [консенсус-клиенты](/developers/docs/nodes-and-clients/#consensus-clients) и другие части инфраструктуры Ethereum. + +#### Наблюдение за узлом {#monitoring-the-node} + +«Чтобы правильно организовать наблюдение за узлом, представьте сбор метрик. Клиенты предоставляют конечные точки с метриками, и вы можете получить сравнительные данные о вашем узле. Используйте инструменты, подобные [InfluxDB](https://www.influxdata.com/get-influxdb/) или [Prometheus](https://prometheus.io/), для создания баз данных, которые вы можете превратить в визуализации и графики через такие инструменты, как [Grafana](https://grafana.com/). Вы можете использовать это программное обеспечение и другие панели Graphana в различных конфигурациях, чтобы визуализировать свой узел и всю сеть в целом. При отслеживании всегда обращайте внимание на производительность вашей системы. Во время первоначальной синхронизации узла клиентская программа может оказывать очень большую нагрузку на процессор и оперативную память. В дополнение к Graphana вы можете использовать инструменты, которая предлагает ваша операционная система, подобные `htop` или `uptime`. + +## Дополнительные ресурсы {#further-reading} + +- [Анализ требований к оборудованию, чтобы стать полностью проверенным узлом Ethereum](https://medium.com/coinmonks/analyzing-the-hardware-requirements-to-be-an-ethereum-full-validated-node-dc064f167902) — _Альберт Палау, 24 сентября 2018 г._ +- [Запуск полных узлов Ethereum: руководство для сомневающихся](https://medium.com/@JustinMLeroux/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) — _Джастин Леру, 7 ноября 2019 г._ +- [Запуск узла Hyperledger Besu в основной сети Ethereum: преимущества, требования и настройка](https://pegasys.tech/running-a-hyperledger-besu-node-on-the-ethereum-mainnet-benefits-requirements-and-setup/) — _Фелипе Фараджи, 7 мая 2020 г._ +- [Развертывание клиента Nethermind Ethereum со стеком мониторинга](https://medium.com/nethermind-eth/deploying-nethermind-ethereum-client-with-monitoring-stack-55ce1622edbd) _— Nethermind.eth, 8 июля 2020 г._ + +## Похожие темы {#related-topics} + +- [Узлы и клиенты](/developers/docs/nodes-and-clients/) +- [Блоки](/developers/docs/blocks/) +- [Сети](/developers/docs/networks/) diff --git a/src/content/translations/ru/developers/docs/transactions/index.md b/public/content/translations/ru/developers/docs/transactions/index.md similarity index 100% rename from src/content/translations/ru/developers/docs/transactions/index.md rename to public/content/translations/ru/developers/docs/transactions/index.md diff --git a/src/content/translations/ru/developers/docs/web2-vs-web3/index.md b/public/content/translations/ru/developers/docs/web2-vs-web3/index.md similarity index 100% rename from src/content/translations/ru/developers/docs/web2-vs-web3/index.md rename to public/content/translations/ru/developers/docs/web2-vs-web3/index.md diff --git a/src/content/translations/ru/eips/index.md b/public/content/translations/ru/eips/index.md similarity index 100% rename from src/content/translations/ru/eips/index.md rename to public/content/translations/ru/eips/index.md diff --git a/src/content/translations/ru/energy-consumption/index.md b/public/content/translations/ru/energy-consumption/index.md similarity index 100% rename from src/content/translations/ru/energy-consumption/index.md rename to public/content/translations/ru/energy-consumption/index.md diff --git a/src/content/translations/ru/governance/index.md b/public/content/translations/ru/governance/index.md similarity index 100% rename from src/content/translations/ru/governance/index.md rename to public/content/translations/ru/governance/index.md diff --git a/src/content/translations/ru/guides/how-to-create-an-ethereum-account/index.md b/public/content/translations/ru/guides/how-to-create-an-ethereum-account/index.md similarity index 100% rename from src/content/translations/ru/guides/how-to-create-an-ethereum-account/index.md rename to public/content/translations/ru/guides/how-to-create-an-ethereum-account/index.md diff --git a/src/content/translations/ru/guides/how-to-id-scam-tokens/index.md b/public/content/translations/ru/guides/how-to-id-scam-tokens/index.md similarity index 100% rename from src/content/translations/ru/guides/how-to-id-scam-tokens/index.md rename to public/content/translations/ru/guides/how-to-id-scam-tokens/index.md diff --git a/src/content/translations/ru/guides/how-to-revoke-token-access/index.md b/public/content/translations/ru/guides/how-to-revoke-token-access/index.md similarity index 100% rename from src/content/translations/ru/guides/how-to-revoke-token-access/index.md rename to public/content/translations/ru/guides/how-to-revoke-token-access/index.md diff --git a/src/content/translations/ru/guides/how-to-swap-tokens/index.md b/public/content/translations/ru/guides/how-to-swap-tokens/index.md similarity index 100% rename from src/content/translations/ru/guides/how-to-swap-tokens/index.md rename to public/content/translations/ru/guides/how-to-swap-tokens/index.md diff --git a/src/content/translations/ru/guides/how-to-use-a-bridge/index.md b/public/content/translations/ru/guides/how-to-use-a-bridge/index.md similarity index 100% rename from src/content/translations/ru/guides/how-to-use-a-bridge/index.md rename to public/content/translations/ru/guides/how-to-use-a-bridge/index.md diff --git a/src/content/translations/ru/guides/how-to-use-a-wallet/index.md b/public/content/translations/ru/guides/how-to-use-a-wallet/index.md similarity index 100% rename from src/content/translations/ru/guides/how-to-use-a-wallet/index.md rename to public/content/translations/ru/guides/how-to-use-a-wallet/index.md diff --git a/src/content/translations/ru/guides/index.md b/public/content/translations/ru/guides/index.md similarity index 100% rename from src/content/translations/ru/guides/index.md rename to public/content/translations/ru/guides/index.md diff --git a/src/content/translations/ru/learn/index.md b/public/content/translations/ru/learn/index.md similarity index 100% rename from src/content/translations/ru/learn/index.md rename to public/content/translations/ru/learn/index.md diff --git a/public/content/translations/ru/nft/index.md b/public/content/translations/ru/nft/index.md new file mode 100644 index 00000000000..1877284ecb7 --- /dev/null +++ b/public/content/translations/ru/nft/index.md @@ -0,0 +1,94 @@ +--- +title: Невзаимозаменяемые токены (NFT) +description: Обзор NFT на Ethereum +lang: ru +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: Логотип ETH отображается в виде голограммы. +summaryPoint1: Способ представить что-либо уникальное как актив на основе Ethereum. +summaryPoint2: С NFT у создателей контента появляется больше возможностей, чем когда-либо прежде. +summaryPoint3: Основано на умных контрактах блокчейна Ethereum. +--- + +## Что такое NFT? {#what-are-nfts} + +NFT — это токены, каждый экземпляр которых уникален. Все NFT обладают разными характеристиками (т. е. не взаимозаменяемы) и являются доказуемо дефицитными. В этом и заключается отличие от других токенов, таких как ERC-20, которые идентичны друг другу и обладают одинаковыми характеристиками (т. е. взаимозаменяемы). Вам неважно, какая конкретно долларовая купюра находится в вашем кошельке, потому что они все идентичны и имеют одинаковую ценность. Однако вам _важно_, каким NFT вы владеете, потому что все они обладают разными характеристиками, отличающими их друг от друга (т. е. они невзаимозаменяемы). + +Уникальность каждого NFT делает возможной токенизацию произведений искусства, коллекционных вещей и даже недвижимости: один конкретный уникальный NFT может представлять собой какой-то конкретный реальный или цифровой объект. Право собственности на актив защищено блокчейном Ethereum — никто не может изменить запись о праве собственности или скопировать и вставить новый NFT. + + + +## Интернет активов {#internet-of-assets} + +NFT и Ethereum решают некоторые проблемы, характерные для современной интернет-индустрии. По мере того как все становится более цифровым, появляется необходимость репликации свойств физических предметов, таких как редкость, уникальность и доказательство права собственности. Таким образом, чтобы это не котролировала никакая централизованная организация. Например, с помощью NFT можно владеть музыкальным файлом mp3 без привязки к какому-то приложению, принадлежащему конкретной компании. Или можно владеть именем в какой-то социальной сети, которое можно продать или обменять, но которое не может быть самовольно отнято этой социальной сетью. + +Сравним Интернет NFT и современный Интернет, которым сегодня пользуется большинство из нас... + +### Сравнение {#nft-comparison} + +| Интернет NFT | Современный Интернет | +| --------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Вы владеете своими активами! Только вы можете продать или обменять их. | Вы арендуете актив у какой-то организации. | +| NFT уникальны в цифровой форме, не существует двух файлов NFT, которые были бы одинаковыми. | Копия объекта часто не отличима от оригинала. | +| Информация о праве собственности на NFT хранится непосредственно на блокчейне, проверить ее может каждый. | Записи о владении цифровыми объектами хранятся на серверах, контролируемых учреждениями: вы доверяете предоставляемой ими информации. | +| NFT — смарт-контракты в сети Ethereum. Это значит, что они с легкостью могут быть использованы другими смарт-контрактами и приложениями в Ethereum! | Компаниям, работающим с цифровыми объектами, необходима их собственная «защищенная» инфраструктура. | +| Создатели контента могут продавать свои работы где угодно и иметь доступ к глобальному рынку. | Создатели полагаются на инфраструктуру и дистрибьютерскую деятельность тех платформ, услугами которых они пользуются. Зачастую они попадают под влияние условий использования и ограничений в связи с географическим положением. | +| Создатели NFT могут сохранить право собственности на свою работу и запрограммировать получение роялти непосредственно в смарт-контракте NFT. | Платформы, такие как музыкальные потоковые сервисы, сохраняют большую часть прибыли от продаж. | + +## Как работают NFT? {#how-nfts-work} + +Как и другие токены в Ethereum, NFT выпускаются смарт-контрактами. Такой смарт-контракт соответствует одному из нескольких стандартов NFT (чаще всего — ERC-721 или ERC-1155), который и определяет его набор функций. Контракт может создавать («минтить») NFT и присваивать их конкретному владельцу. Владение определяется в контракте через соответствие конкретного NFT и конкретного адреса. Отдельный NFT имеет свой идентификатор и, как правило, связанные с ним метаданные, которые и делают конкретный токен уникальным. + +Когда кто-то создает (или «минтит») NFT, он по сути запускает функцию в смарт-контракте, которая связывает конкретный NFT с его адресом. Эта информация хранится в памяти смарт-контракта, который находится на блокчейне. Создатель контракта может добавить к нему дополнительную логику, например ограничить максимальное количество токенов или зафиксировать роялти, которые он должен получать при каждой передаче токена. + +## Для чего используются NFT? {#nft-use-cases} + +NFT используются для множества разных вещей: + +- Подтверждение вашего участия в мероприятии +- Сертификация прохождения курса +- Предметы, которыми можно владеть в играх +- Цифровое искусство +- Токенизация активов из реального мира +- Удостоверение личности онлайн +- Получение доступа к контенту +- Оформление билетов +- Имена децентрализованных интернет-доменов +- Залог в DeFi + +Предположим, вы художник, который хочет поделиться своей работой с помощью NFT, не теряя контроль и не жертвуя своей прибылью из-за посредников. Вы можете создать контракт, указать количество NFT, их характеристики и ссылку на конкретное произведение искусства. Как художник вы сможете запрограммировать в смарт-контракте роялти, которые будете получать (например, перевод 5 % от цены продажи владельцу контракта при каждой передаче NFT). Кроме того, вы всегда сможете доказать, что создали определенные NFT, владея адресом, с которого размещен контракт. Покупатели смогут легко доказать, что владеют подлинным NFT из вашей коллекции, так как адрес их кошелька связан с токеном в вашем смарт-контракте. Они смогут использовать его по всей экосистеме Ethereum и быть уверенными в его подлинности. + +Или рассмотрим билет на спортивное мероприятие. Как организатор мероприятия может выбрать, сколько билетов продать, так же и создатель NFT может решить, сколько будет копий. Иногда это точные копии, например 5000 обычных входных билетов. Иногда создают несколько очень похожих, но немного отличающихся друг от друга билетов, например с назначенным местом. Они могут быть куплены и проданы напрямую без платы продавцам билетов, а покупатель всегда будет иметь подтверждение подлинности билета, так как сможет проверить адрес контракта. + +На Ethereum.org NFT используются для демонстрации того, что люди внесли свой вклад в наш репозиторий GitHub или посещали созвоны. У нас даже есть собственное доменное имя в виде NFT. Внеся свой вклад в работу ethereum.org, вы можете запросить NFT POAP. Некоторые криптографические мероприятия использовали POAP в качестве билетов. [Подробнее об участии](/contributing/#poap). + +![POAP ethereum.org](./poap.png) + +Этот сайт также имеет альтернативное доменное имя, основанное на NFT: **ethereum.eth**. Наш `.org` адрес централизованно управляется провайдером системы доменных имен (DNS), тогда как адрес ethereum`.eth ` зарегистрирован на платформе Ethereum с помощью Ethereum Name Service (ENS). Он находится в нашей собственности и управляется нами. [Наши записи ENS](https://app.ens.domains/name/ethereum.eth) + +[Подробнее об ENS](https://app.ens.domains) + + + +### Безопасность NFT {#nft-security} + +Безопасность Ethereum основана на доказательстве владения. Система подразумевает экономическое сдерживание злонамеренных действий, что обеспечивает стойкость Ethereum к подделкам. Именно это делает возможными NFT. Как только блок, содержащий вашу NFT-транзакцию, будет завершен, его изменение потребует от злоумышленника миллионов ETH. Любой, кто использует программное обеспечение Ethereum, сразу же сможет обнаружить нечестную подделку NFT, а злоумышленник будет наказан экономически и удален. + +Проблемы безопасности, связанные с NFT, чаще всего связаны с фишинговыми мошенничествами, уязвимостями смарт-контрактов и ошибками пользователей (например, непреднамеренным раскрытием приватных ключей), что делает хорошую защиту кошелька очень важной для владельцев NFT. + + + Подробнее о безопасности + + +## Дополнительная литература {#further-reading} + +- [Руководство по NFT для начинающих](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) _Линда Се, январь 2020 г._ +- [Трекер EtherscanNFT](https://etherscan.io/nft-top-contracts) +- [Стандарт токенов ERC-721](/developers/docs/standards/tokens/erc-721/) +- [Стандарт токенов ERC-1155](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/public/content/translations/ru/refi/index.md b/public/content/translations/ru/refi/index.md new file mode 100644 index 00000000000..f721714a4d5 --- /dev/null +++ b/public/content/translations/ru/refi/index.md @@ -0,0 +1,79 @@ +--- +title: Регенеративные финансы (ReFi) +description: Обзор ReFi и текущие варианты использования. +lang: ru +template: use-cases +emoji: ":recycle:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Альтернативная экономическая система, построенная на регенеративных принципах +summaryPoint2: Попытка использовать Ethereum, чтобы решить координационные кризисы на глобальном уровне, такие как изменение климата +summaryPoint3: Инструмент который значительно масштабирует важные для экологии активы, включая проверенные углеродные кредиты +--- + +## Что такое ReFi? {#what-is-refi} + +**Регенеративные финансы (ReFi)** — это набор инструментов и идей, построенных поверх блокчейнов, которые нацелены на построение регенеративных экономик, а не добывающих или эксплуататорских. В конечном итоге добывающие системы истощают имеющиеся ресурсы и разрушаются; без регенеративных механизмов им не хватает устойчивости. ReFi работает исходя из предположения, что создание денежной стоимости должно быть отделено от нерационального извлечения ресурсов из нашей планеты и сообществ. + +Вместо этого ReFi стремится решить экологические, коммунальные или социальные проблемы путем создания регенеративных циклов. Эти системы создают ценность для участников, одновременно принося пользу экосистемам и общинам. + +Одним из основополагающих принципов ReFi является концепция регенеративной экономики, впервые предложенная Джоном Фуллертоном из [Capital Institute](https://capitalinstitute.org). Он предложил восемь взаимосвязанных принципов, лежащих в основе системного здоровья: + +![Восемь взаимосвязанных принципов](./refi-regenerative-economy-diagram.png) + +Проекты ReFi воплощают эти принципы в жизнь, используя [умные контракты](/developers/docs/smart-contracts/) и приложения [децентрализованного финансирования (DeFi)](/defi/) для стимулирования регенеративного поведения, например восстановления деградировавших экосистем, и содействования крупномасштабному сотрудничеству по таким глобальным вопросам, как изменение климата и утрата биоразнообразия. + +ReFi также пересекается с движением [децентрализованной науки (DeSci)](/desci/), которое использует Ethereum в качестве платформы для финансирования, создания, обзора, кредитования, хранения и распространения научных знаний. Инструменты DeSci могут стать полезными для разработки поддающихся проверке стандартов и методов осуществления и мониторинга регенеративной деятельности, такой как посадка деревьев, удаление пластика из океана или восстановление деградировавшей экосистемы. + +## Токенизация углеродных кредитов {#tokenization-of-carbon-credits} + +**[Добровольный углеродный рынок (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** — это механизм финансирования проектов, которые оказывают проверенное положительное воздействие на выбросы углерода: либо сокращая текущие выбросы, либо удаляя парниковые газы, уже выбрасываемые из атмосферы. После проверки эти проекты получают активы, именуемые «углеродными кредитами», которые они могут продавать отдельным лицам и организациям, желающим поддержать деятельность в области климата. + +В дополнение к VCM существует также несколько санкционированных правительствами углеродных рынков («рынки соблюдения»), цель которых заключается в установлении цены на углерод с помощью законов или постановлений в рамках конкретной юрисдикции (к примеру, страны или региона), контролирующих выдачу разрешений на распространение. Рынки соблюдения стимулируют загрязнителей в пределах своей юрисдикции к сокращению выбросов, однако они не способны удалять парниковые газы, которые уже были выброшены. + +Несмотря на свою эволюцию в последние десятилетия, VCM продолжает страдать от целого ряда проблем: + +1. Крайне фрагментированная ликвидность +2. Непрозрачные механизмы совершения сделок +3. Высокие комиссии +4. Очень низкая скорость торговли +5. Недостаток масштабируемости + +Переход VCM на новый **цифровой углеродный рынок (DCM)** на основе блокчейна может быть возможностью для обновления существующей технологии для проверки, осуществления и потребления углеродных кредитов. Блокчейн позволяет публично проверять данные, открывает доступ для широкого круга пользователей и допускает больше ликвидности. + +Проекты ReFi используют блокчейн-технологии, чтобы смягчить многие проблемы традиционного рынка: + +- **Ликвидность сконцентрирована в небольшом количестве ликвидных пулов**, которые могут свободно использоваться для торговли кем угодно. Крупные организации, а также отдельные пользователи могут использовать эти пулы без ручного поиска продавцов и покупателей, платы за участие и предварительной регистрации. +- **Все транзакции регистрируются на публичных блокчейнах**. Путь, который каждый углеродный кредит проходит в связи с торговой деятельностью, навсегда становится отслеживаемым, как только он станет доступен в DCM. +- **Скорость транзакций почти мгновенна**. Обеспечение больших объемов углеродных кредитов через унаследованные рынки может занять дни или недели, но DCM позволяет добиться той же цели за секунды. +- **Торговая деятельность происходит без посредников**, которые взимают высокие сборы. По данным одной аналитической фирмы цифровые углеродные кредиты представляют [улучшение затрат по сравнению с эквивалентными традиционными кредитами на 62 %](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne). +- **DCM масштабируемы** и могут удовлетворить требования как физических лиц, так и многонациональных корпораций. + +### Ключевые компоненты DCM {#key-components-dcm} + +Нынешний ландшафт DCM состоит из четырех основных компонентов: + +1. Такие реестры, как [Verra](https://verra.org/project/vcs-program/registry-system/) и [Gold Standard](https://www.goldstandard.org/), гарантируют надежность проектов по созданию углеродных кредитов. Они также используют базы данных, в которых содержатся цифровые углеродные кредиты, которые могут передаваться или использоваться (списываться). + +Существует новая волна инновационных проектов, строящихся на блокчейнах, которые пытаются пошатнуть позиции лидеров в этом секторе. + +2. Так называемые «углеродные мосты», или токенизаторы, предлагающие технологии для представления или передачи углеродных кредитов из традиционных реестров в DCM. Примечательными примерами являются [Toucan Protocol](https://toucan.earth/), [C3](https://c3.app/), и [Moss.Earth](https://moss.earth/). +3. Встроенные сервисы предлагают конечным пользователям кредиты на предотвращение и/или удаление выбросов углерода, чтобы они могли претендовать на экологическую выгоду кредита и делиться своей поддержкой деятельности по борьбе с изменением климата со всем миром. + +Некоторые из них, такие как [Klima Infinity](https://www.klimadao.finance/infinity) и [Senken](https://senken.io/), предлагают широкий спектр проектов, разработанных третьими сторонами и выпущенных в соответствии с установленными стандартами, такими как Verra. Другие, такие как [Nori](https://nori.com/), предлагают только конкретные проекты, разработанные в соответствии с их собственным стандартом углеродных кредитов, которые они выпускают и для которых они имеют свой собственный выделенный рынок. + +4. Базовые рельсы и инфраструктура, которые облегчают масштабирование воздействия и эффективности всей цепочки поставок рынка углерода. [KlimaDAO](http://klimadao.finance/) обеспечивает ликвидность как общественное благо (позволяя каждому покупать или продавать углеродные кредиты по прозрачной цене), стимулирует увеличение пропускной способности углеродных рынков и списывание с наградами и обеспечивает удобный в использовании интероперабельный инструментарий для доступа к данным о широком спектре токенизированных углеродных кредитов, а также их приобретения и списывания. + +## ReFi за пределами углеродных рынков {#refi-beyond} + +Хотя в настоящее время большое внимание уделяется углеродным рынкам в целом и переходу VCM (добровольных углеродных рынков) на DCM (цифровые углеродные рынки) в частности, понятие ReFi не сводится к углероду. Помимо углеродных кредитов могут быть разработаны и официально оформлены другие экологические активы, что будет означать, что другие негативные внешние факторы также могут быть оценены в базовых уровнях будущих экономических систем. Более того, регенеративный аспект этой экономической модели может быть применен и к другим областям, таким как финансирование общественных благ с помощью квадратичных платформ финансирования, включая [Gitcoin](https://gitcoin.co/). Организации, построенные на идее открытого участия и справедливого распределения ресурсов, дают каждому возможность направлять деньги на проекты разработки программного обеспечения с открытым исходными кодами, а также на образовательные, экологические и общинные проекты. + +Смещая направление капитала от подхода, основанного на добыче, к регенеративному потоку, проектам и компаниям, которые предоставляют социальные, экологические или коммунальные блага (и могут не получить финансирования при традиционной финансовой модели), можно начать действовать и создавать положительный эффект для общества гораздо быстрее и проще. Переход к этой модели финансирования также открывает двери для гораздо более инклюзивных экономических систем, в которых представители всех демографических групп могут стать активными участниками, а не просто пассивными наблюдателями. ReFi предлагает видение Ethereum как механизма для координации действий по экзистенциальным вызовам, стоящим перед человечеством и всей жизнью на нашей планете, как базового слоя новой экономической парадигмы, создающей фундамент для более инклюзивного и устойчивого будущего на века вперед. + +## Дополнительно о ReFi + +- [Обзор углеродных валют высокого уровня и их места в экономике](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) +- [Министерство будущего: роман, описывающий роль валюты, основанной на углероде, в борьбе с изменением климата](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) +- [Подробный доклад от Taskforce по расширению добровольных углеродных рынков](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) +- [Кевин Овоцки и Эван Миядзоно в Глоссарии CoinMarketCap по ReFi](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/ru/roadmap/account-abstraction/index.md b/public/content/translations/ru/roadmap/account-abstraction/index.md similarity index 100% rename from src/content/translations/ru/roadmap/account-abstraction/index.md rename to public/content/translations/ru/roadmap/account-abstraction/index.md diff --git a/public/content/translations/ru/roadmap/beacon-chain/index.md b/public/content/translations/ru/roadmap/beacon-chain/index.md new file mode 100644 index 00000000000..c6ecec4caab --- /dev/null +++ b/public/content/translations/ru/roadmap/beacon-chain/index.md @@ -0,0 +1,75 @@ +--- +title: Beacon Chain +description: Узнайте о сети Beacon — обновлении, которое ввело Ethereum с доказательством владения. +lang: ru +template: upgrade +image: /upgrades/core.png +alt: +summaryPoint1: Сеть Beacon ввела в экосистему Ethereum доказательство владения. +summaryPoint2: Она была объединена с первоначальной сетью Ethereum, основанной на доказательстве работы, в сентябре 2022 года. +summaryPoint3: Сеть Beacon ввела логику консенсуса и сплетенный протокол блоков, который теперь защищает Ethereum. +--- + + + Сеть Beacon была введена 1 декабря 2020 года и формализовала доказательство владения в качестве консенсусного механизма Ethereum с обновлением «Слияние» 15 сентября 2022 года. + + +## Что такое сеть Beacon? {#what-is-the-beacon-chain} + +Сеть Beacon — это название оригинального блокчейна с доказательством владения, который был запущен в 2020 году. Он был создан для того, чтобы убедиться, что логика консенсуса с доказательством владения была разумной и устойчивой, прежде чем он использовать ее в основной сети Ethereum. Поэтому он работал параллельно с оригинальной Ethereum на основе доказательства работы. Сеть Beacon была цепью «пустых» блоков, но отказ от доказательства работы и переход на доказательство владения в Ethereum требовали, чтобы сеть Beacon научилась принимать данные транзакций от клиентов-исполнителей, группировать их в блоки, а затем организовывать их в блокчейн, используя механизм консенсуса на основе доказательства владения. В то же время оригинальные клиенты Ethereum отключили логику майнинга, предложения блоков и консенсуса, передав все это сети Beacon. Это событие получило название [Слияние](/roadmap/merge/). После Слияния двух блокчейнов более не было. Остался только один блокчейн Ethereum с доказательством владения, который теперь требует двух разных клиентов на узел. Сеть Beacon сейчас находится на уровне консенсуса — одноранговой сети консенсусных клиентов, которая управляет сплетенными блоками и логикой консенсуса, в то время как первоначальные клиенты образуют уровень исполнения, который отвечает за сплетение и выполнение транзакций, а также управление состоянием Ethereum. Два слоя могут взаимодействовать друг с другом с помощью Engine API. + +## Что делает сеть Beacon? {#what-does-the-beacon-chain-do} + +Сеть Beacon — это имя, данное переписи аккаунтов, в которой обеспечивалась и координировалась работа сети [дольщиков](/staking/) Ethereum до того, как эти дольщики начали проверять настоящие блоки Ethereum. Она не обрабатывает транзакции и взаимодействия умных контрактов, поскольку это делается на уровне исполнения. Сеть Beacon отвечает за такие вещи, как обработка блоков и аттестаций, запуск алгоритма выбора ответвления, управление вознаграждениями и штрафами. Подробнее на нашей [странице об архитектуре узлов](/developers/docs/nodes-and-clients/node-architecture/#node-comparison). + +## Влияние сети Beacon {#beacon-chain-features} + +### Введение стейкинга {#introducing-staking} + +Сеть Beacon ввела [доказательство владения](/developers/docs/consensus-mechanisms/pos/) в Ethereum. Это обеспечивает безопасность Ethereum и дает валидаторам возможность зарабатывать ЕТН в процессе. На практике стейкинг представляет собой ставку ETH для того, чтобы активировать ПО валидатора. В роли дольщика вы запускаете программное обеспечение, которое создает и проверяет новые блоки в сети. + +Стейкинг служит той же цели, что и [майнинг](/developers/docs/mining/) в прошлом, но имеет много отличий. Майнинг требовал значительных начальных расходов в виде мощного оборудования и энергопотребления, что отражалось в нехватке масштабирования и способствовало централизации. Майнинг также не сопровождался каким-либо требованием о блокировании активов в качестве залога, что ограничивало способность протокола наказывать злоумышленников после атаки. + +Переход к доказательству владения сделал Ethereum значительно более безопасным и децентрализованным по сравнению с доказательством работы. Чем больше людей принимают участие в работе сети, тем более децентрализованной и защищенной от атак она становится. + +Использование доказательства владения как механизма консенсуса — это базовый компонент для [безопасного, экологически чистого и масштабируемого Ethereum, который мы сейчас имеем](/roadmap/vision/). + + + Если вы хотите стать валидатором и принять участие в защите Ethereum, узнайте больше о стейкинге. + + +### Настройка шардинга {#setting-up-for-sharding} + +После слияния сети Beacon с основной сетью сообщество Ethereum начало рассматривать масштабирование сети. + +Доказательство владения имеет преимущество, заключающееся в том, что в любой конкретный момент времени существует реестр утвержденных производителей блоков, каждый из которых имеет вложенные ЕТН. Этот реестр закладывает основу для возможности «разделять и властвовать», одновременно надежно распределяя конкретные сетевые обязанности. + +Эти обязанности контрастируют с принципом доказательства работы, согласно которому майнеры не имеют никаких обязательств перед сетью и могут прекратить добычу и полностью отключить программное обеспечение своих узлов без каких-либо последствий. Кроме того, не существует реестра известных строителей блоков, как и надежного способа безопасного разделения сетевых обязанностей. + +[Подробнее о шардинге](/roadmap/danksharding/) + +## Взаимосвязь между обновлениями {#relationship-between-upgrades} + +Все обновления Ethereum в некоторой степени взаимосвязаны. Поэтому давайте обобщим, как сеть Beacon влияет на другие обновления. + +### Сеть Beacon и слияние {#merge-and-beacon-chain} + +Первоначально сеть Beacon существовала отдельно от основной сети Ethereum, но они были слиты воедино в 2022 году. + + + Слияние + + +### Осколки и сеть Beacon {#shards-and-beacon-chain} + +Шардинг может безопасно войти в экосистему Ethereum только при наличии механизма консенсуса с доказательством владения. Сеть Beacon ввела стейкинг, который «слился» с основной сетью, прокладывая путь к шардингу, чтобы помочь дальнейшему масштабированию Ethereum. + + + Цепочки-осколки + + +## Дополнительные ресурсы + +- [Подробнее о будущих обновлениях Ethereum](/roadmap/vision) +- [Подробнее об архитектуре узлов](/developers/docs/nodes-and-clients/node-architecture) +- [Подробнее о доказательстве владения](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/ru/roadmap/danksharding/index.md b/public/content/translations/ru/roadmap/danksharding/index.md similarity index 100% rename from src/content/translations/ru/roadmap/danksharding/index.md rename to public/content/translations/ru/roadmap/danksharding/index.md diff --git a/public/content/translations/ru/roadmap/future-proofing/index.md b/public/content/translations/ru/roadmap/future-proofing/index.md new file mode 100644 index 00000000000..7946714b366 --- /dev/null +++ b/public/content/translations/ru/roadmap/future-proofing/index.md @@ -0,0 +1,38 @@ +--- +title: Ethereum, готовый к будущему +description: Эти обновления закрепляют положение Ethereum в качестве устойчивого и децентрализованного базового блокчейна для будущего независимо от того, каким оно будет. +lang: ru +image: ..//roadmap/roadmap-future.png +alt: "Дорожная карта Ethereum" +template: roadmap +--- + +Некоторые элементы дорожной карты необязательно направлены на масштабирование и повышение безопасности Ethereum в краткосрочной перспективе, вместо этого они нацелены на повышение стабильности и надежности Ethereum в далеком будущем. + +## Квантовая устойчивость {#quantum-resistance} + +Когда квантовые компьютеры станут реальностью, некоторые криптографические средства, обеспечивающие безопасность Ethereum сегодня, будут скомпрометированы. Несмотря на то, что сегодняшнее состояние развития квантовых компьютеров отстает примерно на декаду от того, которое будет представлять опасность для современной криптографии, Ethereum создавался, чтобы быть безопасным на протяжении сотен лет. А это значит, что необходимо сделать [Ethereum квантово-устойчивым](https://consensys.net/blog/developers/how-will-quantum-supremacy-affect-blockchain/) как можно скорее. + +Проблема, с которой сталкиваются разработчики Ethereum, заключается в том, что текущий протокол доказательства участия опирается на очень эффективную схему подписи, известную как BLS, для агрегирования голосов за действительные блоки. Эта схема подписи нарушается квантовыми компьютерами, но квантово-устойчивые альтернативы не столь эффективны. + +[Схемы обязательств KZG](/roadmap/danksharding/#what-is-kzg) используются в нескольких местах Ethereum для создания криптографических секретов, которые известны как квантово-уязвимые. В настоящее время, это обходится с помощью «настроек с доверием», где многие пользователи создают случайность, которая не может быть обратно спроектирована квантовым компьютером. Однако идеальным решением было бы просто включение квантово-безопасной криптографии. Существуют два ведущих подхода, которые могли бы стать эффективной заменой схемы BLS: [подписи на основе STARK](https://hackmd.io/@vbuterin/stark_aggregation) и [подписи на основе решетки](https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-lattice-encryption-326ac66e3175). Пока они находятся на стадии изучения и подготовки прототипов. + + Подробнее о KZG и настройках с доверием + +## Более простой и эффективный Ethereum {#simpler-more-efficient-ethereum} + +Сложность создает возможности для ошибок и уязвимостей, которые могут быть использованы злоумышленниками. Таким образом, частью дорожной карты является упрощение Ethereum и удаление кода, который остался в системе после различных обновлений, но больше не нужен или теперь может быть улучшен. Разработчикам легче поддерживать базу кода и рассуждать о ней, если она компактнее и проще. + +Существует несколько обновлений, которые будут воплощены в [виртуальной машине Ethereum (EVM)](/developers/docs/evm) для упрощения и повышения эффективности. Они включают в себя [удаление машинного кода SELFDESTRUCT](https://hackmd.io/@vbuterin/selfdestruct) — редко используемой команды, которая больше не нужна и в некоторых обстоятельствах может быть опасной для использования, особенно в сочетании с другими будущими обновлениями для модели хранения Ethereum. Клиенты Ethereum также до сих пор поддерживают некоторые старые типы транзакций, которые теперь могут быть полностью удалены. Способ вычислений, связанных с газом, тоже может быть улучшен. Могут быть добавлены более эффективные методы арифметики, лежащие в основе некоторых криптографических операций. + +Аналогично: есть обновления, которые могут быть сделаны для других частей современных клиентов Ethereum. Одни из примеров — текущие клиенты выполнения и консенсуса используют разный тип сжатия данных. Будет гораздо проще и интуитивно понятнее обмениваться данными между клиентами, если схема сжатия будет единой по всей сети. + +## Текущий прогресс {#current-progress} + +Большинство обновлений, необходимых для будущей защиты Ethereum, все еще находятся в стадии исследования, До реализации может пройти еще несколько лет. Такие обновления, как удаление SELF-DESTRUCT и гармонизация схемы сжатия, используемой в клиентах выполнения и консенсуса, скорее всего, появятся раньше, чем квантово-устойчивая криптография. + +**Дополнительная литература** + +- [Газ](/developers/docs/gas) +- [EVM](/developers/docs/evm) +- [Структуры данных](/developers/docs/data-structures-and-encoding) diff --git a/public/content/translations/ru/roadmap/index.md b/public/content/translations/ru/roadmap/index.md new file mode 100644 index 00000000000..9229e8bf9db --- /dev/null +++ b/public/content/translations/ru/roadmap/index.md @@ -0,0 +1,117 @@ +--- +title: Дорожная карта Ethereum +description: Путь к большей масштабируемости, безопасности и экологичности Ethereum. +lang: ru +template: roadmap +image: /roadmap/roadmap-main.png +alt: "Дорожная карта Ethereum" +summaryPoints: +buttons: + - label: Будущие обновления + toId: what-changes-are-coming + - label: Прошлые обновления + to: /history/ + variant: план +--- + +Ethereum — это мощная платформа для глобальной координации, и она продолжает совершенствоваться. Благодаря амбициозному набору обновлений Ethereum сможет улучшиться до полностью масштабируемой и максимально устойчивой платформы. Все эти обновления являются частью Дорожной карты Ethereum. + +**Чтобы узнать об уже реализованных улучшениях Ethereum, посетите раздел [История](/history/)** + +## Что меняется для Ethereum? {#what-changes-are-coming} + +Дорожная карта Ethereum описывает конкретные улучшения, которые будут внесены в протокол в будущем. В целом реализация Дорожной карты создаст для пользователей Ethereum такие преимущества: + + + + + + + + +## Для чего нужна Дорожная карта Ethereum? {#why-does-ethereum-need-a-roadmap} + +Ethereum обновляется регулярно, что приводит к улучшению масштабируемости, безопасности или устойчивости. Адаптация идей, возникающих в результате исследований и разработок, — это одно из основных достоинств Ethereum. Адаптивность дает Ethereum возможность гибко справляться с возникающими сложностями, а также идти в ногу с самыми современными техническими разработками. + + + +В большинстве своем, дорожная карта является результатом многолетней работы исследователей и разработчиков, поскольку этот протокол очень зависит от технических моментов, но в целом, внести свой вклад может любой мотивированный человек. Жизненный цикл идей обычно начинается с дискуссии на одном из форумов, таких как [ethresear.ch](https://ethresear.ch/), [Ethereum magicians](https://www.figma.com/exit?url=https%3A%2F%2Fethereum-magicians.org%2F) или на Discord сервере Eth R&D. Они могут появляться как ответ на выявленные уязвимые места, или как предложение от одной из компаний, работающей на уровне приложений (таких как децентрализованные приложения или биржи), или в результате понимания ограничений для конечных пользователей (таких как стоимость или скорость транзакций). Когда идеи готовы, они могут быть формализованы в виде Предложений по улучшению Ethereum (EIP). Все это происходит публично, чтобы каждый представитель сообщества мог в любой момент высказать свое мнение. + +[Подробнее об управлении Ethereum](/governance/) + + + + +

Что такое ETH2?

+ +

Термин «ETH2» широко употреблялся для описания будущего Ethereum до перехода на proof-of-stake (доказательство доли владения), но был отменен в пользу более точной терминологии. Изначально он использовался для различения сети Ethereum до перехода на proof-of-stake и после, а еще иногда для обозначения различных клиентов Ethereum (клиенты-исполнители иногда назывались ETH1, а консенсус-клиенты — ETH2).

+ +
+ +## Будет ли Дорожная карта Ethereum меняться со временем? {#will-ethereums-roadmap-change-over-time} + +Да, практически наверняка. Дорожная карта — это текущий план улучшения Ethereum, покрывающий как ближайшие, так и далекие перспективы. Мы предполагаем, что дорожная карта будет меняться с появлением новой информации и доступных технологий. + +Дорожная карта — это ряд намерений, направленных на улучшение Ethereum, это наилучший план от ключевых исследователей и разработчиков о наиболее оптимальном пути развития Ethereum. + +## Когда будет завершена работа над Дорожной картой? {#when-will-the-roadmap-be-finished} + +Некоторые запланированные улучшения будут внедрены в течение ближайших 6 месяцев (например, вывод средств со стейкинга), в то время как другие, менее приоритетные, вероятнее всего, будут реализованы не раньше, чем в течение следующих 5–10 лет (например, квантовая устойчивость). Сложно предсказать точные сроки выхода каждого обновления, так как многие пункты Дорожной карты разрабатываются параллельно и с разной скоростью. Срочность внедрения изменений также может меняться со временем в зависимости от внешних факторов (например, резкий скачок в производительности и доступности квантовых компьютеров может сделать квантово-устойчивую криптографию более актуальной). + +Один из способов понять развитие Ethereum — это проведение аналогии с биологической эволюцией. Сеть, способная адаптироваться к новым вызовам и поддерживать свою работоспособность, имеет больше шансов на успех, чем та, которая сопротивляется изменениям, хотя по мере роста производительности, масштабируемости и безопасности сети ей потребуется все меньше изменений в протоколе. + +## Нужно ли мне что-нибудь делать после выхода обновления? {#do-i-have-to-do-anything-when-there-is-an-upgrade} + +Обновления зачастую не затрагивают конечных пользователей, а лишь предоставляют им больше возможностей и повышают безопасность протокола, иногда добавляя новые способы взаимодействия с Ethereum. От пользователей не требуется активного участия в процессе обновления, и они ничего не должны предпринимать дополнительно, чтобы защитить свои средства. Операторы узлов должны обновить свои клиенты и подготовиться к апгрейду. Некоторые обновления могут затронуть разработчиков приложений. Например, обновления, касающиеся срока хранения истории, требуют от разработчиков приложений получать данные об истории с новых источников. + +## Что насчёт Verge, Splurge и так далее? {#what-about-the-verge-splurge-etc} + +[Виталик Бутерин предложил видение дорожной карты Ethereum](https://twitter.com/VitalikButerin/status/1588669782471368704), которая была организована в несколько категорий, связанных влиянием на архитектуру Ethereum. Она включает в себя: + +- The Merge: обновления связанные с переходом с proof-of-work (доказательства работы) на proof-of-stake (доказательство доли владения) +- The Surge: обновления связанные с масштабированием роллапов и шардингом данных +- The Scourge: обновления связанные с устойчивостью к цензуре, децентрализацией и рисками для протокола, исходящими от MEV +- The Verge: обновления связанные с упрощением верификации блоков +- The Purge: обновления связанные с уменьшением расходов на вычисления для узлов, и упрощением протокола +- The Splurge: остальные обновления, которые не входят в вышеописанные категории. + +Мы приняли решение не использовать сложную терминологию, потому что мы хотим создать простую модель ориентированную на пользователей. Поскольку мы используем язык, понятный пользователям, мы и далее поддерживаем версию названий, предложенную Виталиком. + +## Что насчет шардинга? {#what-about-sharding} + +Шардинг — это разделение блокчейна Ethereum на подгруппы, где валидаторы ответственны только за фрагменты общего объема данных. Это изначальное предложение по масштабированию Ethereum. Тем не менее, роллапы 2-го уровня были разработаны гораздо быстрее, чем ожидалось, и уже привнесли многое в контекст масштабирования, и привнесут ещё больше после реализации плана Прото-Данкшардинга. То есть, «шард чейны» больше не понадобятся и будут исключены из дорожной карты. + +## Ищете определенные технические обновления? {#looking-for-specific-technical-upgrades} + +- Благодаря [данкшардингу](/roadmap/danksharding) свертки второго уровня становятся намного дешевле для пользователей посредством добавления блобов (объектов двоичной компоновки) данных в блоки Ethereum. +- [Вывод из стейкинга](/staking/withdrawals). Обновление Shanghai/Capella позволило делать вывод из стейкинга на Ethereum, что дало пользователям возможность разблокировать свои ETH в стейкинге. +- [Финализация в одном слоте](/roadmap/single-slot-finality). Вместо ожидания 15 минут, блоки могут быть предложены и финализированы в одном слоте. Этот вариант удобнее для приложений, и его сложнее атаковать. +- [Разделение на предлагающего-строящего](/roadmap/pbs). Благодаря разделению валидаторов на строителей блоков и предлагающих блоки создается более честный, устойчивый к цензуре и эффективный способ достижения консенсуса в Ethereum. +- [Выборы секретного лидера](/roadmap/secret-leader-election). Умная криптография может быть использована для обеспечения того, чтобы личность текущего предлагающего блока не была публичной, защищая его от определенных видов атак. +- [Абстракция аккаунта](/roadmap/account-abstraction). Абстракция аккаунта это класс обновлений, поддерживающий смарт-контрактные кошельки изначально на Ethereum, вместо использования сложного промежуточного программного обеспечения. +- [Деревья Веркла](/roadmap/verkle-trees) — это структура данных, которая может использоваться для клиентов без состояния на Ethereum. Эти клиенты без присутствия потребуют крошечного пространства для хранения, но все еще смогут проверять новые блоки. +- [Клиенты без состояния](/roadmap/statelessness) смогут проверять новые блоки без необходимости хранения больших объемов данных. Это обеспечит все преимущества работы узла всего с небольшой долей от сегодняшних затрат. diff --git a/public/content/translations/ru/roadmap/merge/index.md b/public/content/translations/ru/roadmap/merge/index.md new file mode 100644 index 00000000000..a2b3309b856 --- /dev/null +++ b/public/content/translations/ru/roadmap/merge/index.md @@ -0,0 +1,229 @@ +--- +title: Слияние +description: Узнайте о слиянии — переходе основной сети Ethereum на доказательство владения. +lang: ru +template: upgrade +image: /upgrades/merge.png +alt: +summaryPoint1: Основная сеть Ethereum использует доказательство владения, но так было не всегда. +summaryPoint2: Переход от изначального механизма доказательства работы на доказательство владения был назван слиянием. +summaryPoint3: Под слиянием понимается объединение исходной основной сети Ethereum с отдельным блокчейном на основе доказательства владения — сетью Beacon. Сейчас осталась лишь одна цепь. +summaryPoint4: Слияние уменьшило потребление энергии Ethereum на ~99,95 %. +--- + + + Слияние было выполнено 15 сентября 2022 года. Это завершило переход Ethereum к консенсусу на основе доказательства владения с официальным отказом от доказательства работы и сокращением энергопотребления на ~99,95 %. + + +## Что такое слияние? {#what-is-the-merge} + +Слияние было соединением исходного уровня исполнения Ethereum (основной сети, которая существовала с самого [начала](/history/#frontier)) с его новым уровнем консенсуса на основе доказательства владения, сетью Beacon. Это устранило необходимость в энергоемком майнинге и вместо этого позволило защищать сеть с помощью поставленного (использованного в стейкинге) эфира (ETH). Это был по-настоящему захватывающий шаг на пути к воплощению будущего Ethereum — увеличению масштабируемости, безопасности и экологичности. + + + +Сначала [сеть Beacon](/roadmap/beacon-chain/) работала отдельно от [основной сети](/glossary/#mainnet). Основная сеть Ethereum (со всеми ее аккаунтами, балансами, смарт-контрактами и статусом блокчейна) оставалась защищенной [доказательством работы](/developers/docs/consensus-mechanisms/pow/), даже когда параллельно работающая сеть Beacon использовала [доказательство владения](/developers/docs/consensus-mechanisms/pos/). Слияние произошло, когда эти две системы наконец-то слились, а доказательство работы было навсегда заменено доказательством владения. + +Представьте себе, что Ethereum — это космический корабль, который был запущен до того, как по-настоящему был готов к межзвездному путешествию. С помощью сети Beacon сообщество построило новый двигатель и укрепило корпус. После серьезных испытаний пришло время установить новый двигатель вместо старого прямо в полете. Это объединило новый, более эффективный двигатель с существующим кораблем, что позволило ему преодолеть световые годы и отправиться навстречу вселенной. + +## Слияние с основной сетью {#merging-with-mainnet} + +Доказательство работы защищало основную сеть Ethereum с начала и до самого слияния. Это позволило блокчейну Ethereum, к которому мы все так привыкли, появиться в июле 2015 года со всеми его знакомыми нам функциями: транзакциями, смарт-контрактами, аккаунтами и т. д. + +На протяжении истории Ethereum разработчики подготовились к возможному переходу от доказательства работы к доказательству владения. 1 декабря 2020 года сеть Beacon была создана как блокчейн, отдельный от основной сети и работающий параллельно. + +Сеть Beacon изначально не обрабатывала транзакции основной сети. Вместо этого она достигала консенсуса по своему собственному состоянию, соглашаясь с действующими валидаторами и их балансами аккаунтов. После обширных испытаний сети Beacon пришло время достичь консенсуса с реальными данными. После слияния сеть Beacon стала движком консенсуса для всех данных в сети, включая транзакции на уровне исполнения и балансы аккаунтов. + +Слияние представляло собой официальный переход к использованию сети Beacon в качестве движка для производства блоков. Для производства действительных блоков майнинг больше не используется. Вместо этого валидаторы с доказательством владения взяли на себя эту роль, теперь они отвечают за обработку действительности всех транзакций и предложение блоков. + +Старые данные при слиянии не пострадали. Когда основная сеть слилась с сетью Beacon, также произошло слияние всей истории транзакций Ethereum. + + +Этот переход к доказательству владения изменил подход к выпуску эфира. Подробнее о выпуске эфира до и после слияния. + + +### Пользователи и держатели {#users-holders} + +**Слияние ничего не изменило для держателей и пользователей.** + +_Стоит повторить_: пользователям и держателям ЕТН или любого другого цифрового актива в Ethereum, а также дольщикам, не управляющим узлами, **при слиянии не нужно ничего делать со своими средствами и кошельком**. ETH — это по-прежнему ETH. Не существует «старых ETH» и «новых ETH», ETH1 и ETH2, а кошельки после слияния работают абсолютно так же, как и до него. Говорящие обратно — скорее всего мошенники. + +Несмотря на отказ от доказательства работы, вся история Ethereum с самого начала при переходе на доказательство владения осталась нетронутой и неизменной. Все средства, хранившиеся в вашем кошельке до слияния, останутся доступны и после него. **От вас не требуется никаких действий по обновлению.** + +[Подробнее о безопасности Ethereum](/security/#eth2-token-scam) + +### Операторы узлов и разработчики децентрализованных приложений {#node-operators-dapp-developers} + + + +Ключевые действия: + +1. Запустите _оба_ клиента: консенсус-клиент и клиент-исполнитель. Сторонние конечные точки для получения данных о выполнении после слияния не работают. +2. Выполните аутентификацию клиентов консенсуса и исполнения с помощью общего секрета JWT, чтобы они могли безопасно общаться. +3. Установите адрес получателя комиссии, чтобы получать заработанные вами комиссионные за транзакции и MEV. + +Если не выполнить первые два элемента выше, ваш узел будет рассматриваться как «автономный» (офлайн), пока оба уровня не будут синхронизированы и аутентифицированы. + +Если не установить «получателя комиссии», валидатор сможет работать, но вы не будете получать несгорающие чаевые от комиссий и MEV, которые заработали бы за блоки, предложенные вашим валидатором. + + + + +До самого слияния клиентов-исполнителей (напимер, Geth, Erigon, Besu или Nethermind) было достаточно для получения, проверки надлежащим образом и распространения блоков, передаваемых сетью. _После слияния_ действительность сделок, содержащихся в составе исполняемой полезной нагрузки, теперь также зависит от действительности «консенсусного блока», в котором она содержится. + +В результате полный узел Ethereum теперь требует как клиента-исполнителя, так и консенсус-клиента. Эти два клиента работают вместе, используя новый движок API. Движок API требует аутентификации с использованием секрета JWT, который предоставляется обоим клиентам, обеспечивая безопасную связь. + +Ключевые действия: + +- Установка консенсус-клиента в дополнение к клиенту-исполнителю. +- Аутентификация клиентов исполнения и консенсуса с помощью общего секрета JWT, чтобы они могли безопасно поддерживать связь. + +Если не выполнить первые два элемента, ваш узел будет рассматриваться как автономный (офлайн), пока оба уровня не будут синхронизированы и аутентифицированы. + + + + + +Слияние внесло изменения в консенсус, который также включает в изменения, связанные со следующим:< + +
    +
  • Структура блока
  • +
  • Время слота/блока
  • +
  • Изменения операционного кода
  • +
  • Источники случайности он-чейн (на блокчейне)
  • +
  • Концепт безопасного начала и завершенных блоков
  • +
+ +Для получения дополнительной информации посмотрите эту запись в блоге, написанную Тимом Бейко: Как слияние влияет на уровень применения Ethereum. + +
+ +## Слияние и потребление энергии {#merge-and-energy} + +Слияние положило конец доказательству работы в Ethereum и начало эру его большей экологичности и устойчивого развития. Потребление энергии Ethereum упало на примерно 99,95 %, что делает Ethereum зеленым блокчейном. Узнайте больше об [энергопотреблении Ethereum](/energy-consumption/). + +## Слияние и масштабируемость {#merge-and-scaling} + +Слияние также создало почву для дальнейших масштабируемых обновлений, невозможных при доказательстве работы, приближая Ethereum на один шаг к достижению полной масштабируемости, безопасности и устойчивости, описанных в [видении Ethereum](/roadmap/vision/). + +## Заблуждения о слиянии {#misconceptions} + + + +Существует два типа узлов Ethereum: узлы, которые могут предлагать блоки, и те, которые не могут этого делать. + +К узлам, предлагающим блоки, относится лишь небольшое число от общего количества узлов на Ethereum. Эта категория включает в себя майнинговые узлы, работающие на основе доказательства работы (PoW), и узлы-валидаторы, основанные на доказательстве владения (PoS). Эта категория требует выделения экономических ресурсов (напимер, потенциала хэширования видеокарты при доказательстве работы или поставленных ETH при доказательстве владения) в обмен на возможность время от времени предлагать следующий блок и получать награды от протокола. + +Другие узлы в сети (т. е. большинство) не обязаны вносить какие-либо экономические ресурсы, кроме компьютера потребительского класса с 1–2 ТБ доступного места и подключением к Интернету. Эти узлы не предлагают блоки, но они по-прежнему играют важнейшую роль в обеспечении безопасности сети, возлагая на всех субъектов, предлагающих блоки, ответственность за прослушивание новых блоков и проверку их действительности по прибытии в соответствии с правилами сетевого консенсуса. Если блок является действителньым, узел продолжает распространять его по сети. Если блок по какой-либо причине действительным не является, программное обеспечение узла будет игнорировать его как недопустимый и прекратит его распространение. + +Запуск узла, не предлагающего блоки, возможен для любого пользователя при любом механизме консенсуса (с доказательством и работы, и владения). Делать это настоятельно рекомендуется всем пользователям, у которых есть такая возможность. Запускать узлы чрезвычайно важно для Ethereum, это дает дополнительные преимущества каждому, кто это делает, такие как повышение безопасности, конфиденциальности и устойчивости к цензуре. + +Возможность каждого запустить свой собственный узел является абсолютно необходимой для сохранения децентрализации в сети Ethereum. + +Подробнее о запуске собственного узла + + + + + +Комиссии за газ — это результат спроса сети, связанного с ее потенциалом. Слияние привело к отказу от доказательства работы и переходу на доказательство владения при достижении консенсуса, но не внесло существенных изменений в параметры, непосредственно влияющие на пропускную способность сети. + +С дорожной картой на основе свертков усилия сосредоточены на масштабировании активности пользователей на уровне 2, в то же время позволяя основной сети на уровне 1 существовать как безопасный децентрализованный уровень расчетов, оптимизированный для хранения данных свертков, чтобы помочь удешевлять свертки транзакций по экспоненте. Переход к доказательству владения является важнейшим предварительным условием для достижения этой цели. Подробнее о газе и комиссиях + + + + +«Скорость» транзакций можно измерить несколькими способами, включая время, подлежащее включению в блок, и время, необходимое для завершения. Оба эти изменения незначительны и являются едва заметными для пользователей. + +Исторически сложилось так, что при доказательстве работы целью было иметь новый блок каждые ~13,3 секунды. С введением доказательства владения ячейки (слоты) открываются ровно каждые 12 секунд, каждые из которых являются возможностью для валидатора опубликовать блок. Большинство ячеек имеет блоки, но не обязательно все (пример: валидатор в офлайн-режиме). При доказательстве владения блоки производятся на ~10 % чаще, чем при доказательстве работы. Это было довольно незначительным изменением и вряд ли будет замечено пользователями. + +Доказательство владения ввело концепцию завершенности транзакции, которой ранее не было. При доказательстве работы менять блок становится экспоненциально все более сложным с каждым проходящим блоком, добытым поверх транзакции, но вероятность никогда не достигает нуля. При доказательстве владения блоки группируются в эпохи (промежутки по 6,4 минуты, содержащие 32 шанса для блоков), по которым голосуют валидаторы. Когда эпоха заканчивается, валидаторы голосуют за то, считать ли эту эпоху «оправданной». Если валидаторы согласятся оправдать эпоху, она завершится (финализируется) в следующую эпоху. Отмена завершенных транзакций экономически нецелесообразна, поскольку для этого потребуется получить и сжечь более одной трети от всех использованных в стейкинге ЕТН. + + + + + +Первоначально после слияния дольщики могли получить доступ только к чаевым от комиссии и MEV, которые были заработаны в результате предложения блоков. Эти вознаграждения зачисляются на не участвующий в стейкинге аккаунт, контролируемый валидатором (известный как получатель комиссии), и доступны немедленно. Эти награды отделены от наград протокола за выполнение обязанностей валидатора. + +После обновления сети Shanghai/Capella дольщики получили возможность назначить адрес для вывода средств, чтобы начать получать автоматические выплаты всех избытков на балансе (ETH сверх 32 в рамках наград от протокола). Это обновление также позволило валидатору разблокировать и свободно вернуть весь баланс после выхода из сети. + +Подробнее о выводе средств из стейкинга + + + + +Поскольку обновление Shanghai/Capella позволило выводить средства, валидаторов стимулируют выводить баланс сверх 32 ЕТН в стейкинге, так как эти средства не увеличивают доход и просто остаются заблокированными. В зависимости от APR (определяется общим количеством ETH в стейкинге) им могут предлагать выполнить выход своих валидаторов с полным снятием баланса или поставить больше за счет вознаграждений, чтобы увеличить доход. + +Важным предостережением здесь является то, что полный выход валидатора ограничен протоколом, и только определенное количество валидаторов может выйти за одну эпоху (каждые 6,4 минуты). Этот предел колеблется в зависимости от числа активных валидаторов, но соответствует примерно 0,33 % от общего количества ЕТН в стейкинге, которые можно извлечь из сети за один день. + +Это предотвращает массовый отток поставленных средств. Кроме того, это не позволяет потенциальным злоумышленникам, имеющим доступ к большой доле от всего ЕТН в стейкинге, совершать нарушения, предусматривающие сокращение, и выход или вывод всего баланса своих валидаторов за одну эпоху, прежде чем протокол успеет применить наказание в виде сокращения. + +В APR также поддерживается намеренная динамичность, которая позволяет рынку дольщиков балансировать сумму, которую они хотят платить за помощь в защите сети. Если процентная ставка слишком низка, валидаторы будут выходить со скоростью, ограниченной протоколом. Постепенно это повысит APR для всех, кто останется, что привлечет новых или возвращающихся дольщиков снова. + + +## Что случилось с Eth2? {#eth2} + +Термин Eth2 более не используется. После слияния Eth1 и Eth2 в единую цепь больше нет необходимости различать две сети Ethereum. Ethereum един. + +Чтобы избежать путаницы, сообщество обновило эти термины. + +- Eth1 теперь является слоем исполнения, который обрабатывает и выполняет транзакции. +- Eth2 теперь является «уровнем консенсуса», который обрабатывает консенсус доказательства владения. + +Эти обновления терминологии влияют только на принятые названия; цели и дорожная карта Ethereum не меняются. + +[Подробнее о переименовании Eth2](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) + +## Взаимосвязь между обновлениями {#relationship-between-upgrades} + +Все обновления Ethereum в некоторой степени взаимосвязаны. Итак, давайте вспомним, как слияние связано с другими обновлениями. + +### Слияние и сеть Beacon {#merge-and-beacon-chain} + +Слияние представляет собой формальное принятие сети Beacon в качестве нового консенсусного уровня для первоначального уровня выполнения основной сети. После слияния были назначены валидаторы, чтобы обеспечивать безопасность основной сети Ethereum, а майнинг на основе [доказательства работы](/developers/docs/consensus-mechanisms/pow/) перестал быть действительным способом производства блоков. + +Вместо этого блоки предлагаются узлами-валидаторами, у которых есть поставленные ЕТН в обмен на право участия в консенсусе. Эти улучшения создали основу для будущих обновлений масштабируемости, включая шардинг. + + + Сеть Beacon + + +### Слияние и обновление Shanghai {#merge-and-shanghai} + +Чтобы максимально сфокусировать внимание на успешном переходе к доказательству владения и его упростить, обновление слияния не включало некоторые ожидаемые функции, такие как возможность вывода ЕТН, использованных в стейкинге. Эта функциональность была запущена отдельно с обновлением Shanghai/Capella. + +Для тех, кому интересно: узнайте больше о том, [что произойдет после слияния](https://youtu.be/7ggwLccuN5s?t=101), из презентации Виталика в апреле 2021 года на мероприятии ETHGlobal. + +### Слияние и шардинг (разделение на осколки) {#merge-and-data-sharding} + +Первоначально план состоял в том, чтобы работать над шардингом перед плиянием и решить проблему масштабируемости. Однако с учетом взрывной популярности [решений для масштабирования на уровне 2](/layer-2/) приоритет сместился на первоочередную замену доказательства работы доказательством владения. + +Планы по шардингу быстро развиваются. Но с учетом развития и успеха технологий уровня 2 для масштабирования выполнения транзакций планы, касающиеся шардинга, сместились в сторону поиска наиболее оптимального способа распределения бремени хранения сжатых данных из контрактов свертков. При этом должна сохраняться возможность экспоненциального роста пропускной способности сети. Это было бы невозможно без предварительного перехода на доказательство владения. + + + Шардинг + + +## Дополнительные ресурсы {#further-reading} + + + + diff --git a/src/content/translations/ru/roadmap/merge/issuance/index.md b/public/content/translations/ru/roadmap/merge/issuance/index.md similarity index 100% rename from src/content/translations/ru/roadmap/merge/issuance/index.md rename to public/content/translations/ru/roadmap/merge/issuance/index.md diff --git a/src/content/translations/ru/roadmap/pbs/index.md b/public/content/translations/ru/roadmap/pbs/index.md similarity index 100% rename from src/content/translations/ru/roadmap/pbs/index.md rename to public/content/translations/ru/roadmap/pbs/index.md diff --git a/public/content/translations/ru/roadmap/scaling/index.md b/public/content/translations/ru/roadmap/scaling/index.md new file mode 100644 index 00000000000..a3cc7203cda --- /dev/null +++ b/public/content/translations/ru/roadmap/scaling/index.md @@ -0,0 +1,47 @@ +--- +title: Масштабирования Ethereum +description: Свертки объединяют транзакции вместе вне цепи, уменьшая расходы пользователя. Тем не менее сейчас свертки используют данные слишком дорогим способом, ограничивая удешевление транзакций. Прото-данкшардинг исправляет это. +lang: ru +image: /roadmap/roadmap-transactions.png +alt: "Дорожная карта Ethereum" +template: roadmap +--- + +Ethereum масштабируется с помощью сетей [уровня 2](/layer-2/#rollups) (также известными как свертки), которые собирают транзакции вместе и отправляют результат на Ethereum. Свертки до 8 раз дешевле основной сети Ethereum, но их можно оптимизировать еще лучше, чтобы снизить расходы для конечных пользователей. Они также полагаются на некоторые централизованные компоненты, которые разработчики могут удалять по мере развития свертков. + + +
    +
  • Сейчас свертки в ~3–8 раз дешевле уровня 1 Ethereum.
  • +
  • ZK-свертки в скором времени снизят комиссию в ~40–100 раз.
  • +
  • Предстоящие изменения в Ethereum увеличат масштабирование еще в ~100–1000 раз.
  • +
  • Преимуществом для пользователей должны стать транзакции стоимостью менее 0,001 $.
  • +
+
+ +## Удешевление данных {#making-data-cheaper} + +Свертки собирают большое количество транзакций, исполняют их и отправляют результаты в Ethereum. Это генерирует много данных, которые должны быть в открытом доступе, чтобы любой мог выполнить транзакции у себя и убедиться, что оператор свертка был честным. Если кто-то найдет несоответствие, он сможет начать оспаривание. + +### Прото данкшардинг {#proto-danksharding} + +Данные свертка постоянно хранятся на Ethereum, что является дорогостоящим. Свыше 90 % расходов на транзакции, которые пользователи платят за свертки, идет на хранение этих данных. Для снижения стоимости транзакций мы можем перенести данные в новое временное хранилище больших бинарных объектов (блобы). Блобы дешевле, потому что они непостоянные. Они удаляются из Ethereum, как только становятся ненужными. Хранение данных свертка длительное время становится обязанностью нуждающихся в нем людях, таких как операторы свертка, биржи, службы индексирования и т. д. Добавление в Ethereum транзакций в блобах — часть обновления под названием «прото-данкшардинг». Ожидается, что оно произойдет относительно скоро — возможно, в конце 2023 года. + +Когда транзакции в блобах станут частью протокола Ethereum с помощью прото-данкшардинга, можно будет добавлять много блобов в блоки Ethereum. Это будет еще одним существенным (более, чем в 100 раз) масштабированием пропускной способности Ethereum и сокращением стоимости транзакций. + +### Данкшардинг {#danksharding} + +Второй этап расширения данных в блобах сложен, поскольку для проверки данных свертка, которые доступны в сети, необходимы новые методы, и он полагается на валидаторов, разделяя их обязанности по созданию и предложению блоков. Это также требует способ криптографически доказать, что валидаторы проверили небольшие подмножества данных блобов. + +Этот второй шаг называется [данкшардингом](/roadmap/danksharding/). Скорее всего, его полная реализация займет несколько лет. Данкшардинг опирается на другие разработки, такие как: [разделение создания и предложения блоков](/roadmap/pbs), и новые дизайны сети, позволяющие ей эффективно подтверждать, что данные доступны, путем случайного отбора нескольких килобайт. Это называется [выборкой доступности данных (DAS)](/developers/docs/data-availability). + +Подробнее о данкшардинге + +## Децентрализованные свертки {#decentralizing-rollups} + +[Свертки](/layer-2) уже масштабируют Ethereum. [Богатая экосистема проектов по сверткам](https://l2beat.com/scaling/tvl) позволяет пользователям быстро и дешево осуществлять транзакции с целым рядом гарантий безопасности. Тем не менее свертки были инициализированы с помощью централизованных секвенсоров (компьютеров, которые выполняют всю обработку и объединение транзакций перед их отправкой в Ethereum). Это создает уязвимость для цензуры, поскольку операторы-секвенсоры могут подпасть под санкции, быть подкупленными или иным образом скомпрометированными. В то же время [свертки отличаются](https://l2beat.com) по способу утверждения входящих данных. Лучший способ для доказывающих — отправлять доказательства мошенничества или достоверности, но пока еще не все свертки дошли до этого. Даже те свертки, что используют доказательства достоверности или мошенничества, полагаются на малый пул известных проверяющих. Поэтому следующим важным шагом в масштабировании Ethereum станет распределение ответственности за запуск секвенсоров и проверяющих среди большего числа людей. + +Подробнее о свертках + +## Текущий прогресс {#current-progress} + +Прото-данкшардинг, вероятно, будет одним из элементов дорожной карты, которые будут реализованы раньше прочих. Шаги для децентрализованных вычислений, нужные для его установки, уже предпринимаются, а некоторые клиенты уже внедрили прототипы для обработки данных в блобах. Полный данкшардинг, вероятно, будет реализован через несколько лет, так как он полагается на несколько других элементов дорожной карты, которые нужно воплотить перед этим. Децентрализация инфраструктуры свертков, скорее всего, будет проходить поэтапно: существует множество разных свертков, которые создают немного разные системы, и они с разной скоростью станут полностью децентрализованными. diff --git a/src/content/translations/ru/roadmap/secret-leader-election/index.md b/public/content/translations/ru/roadmap/secret-leader-election/index.md similarity index 100% rename from src/content/translations/ru/roadmap/secret-leader-election/index.md rename to public/content/translations/ru/roadmap/secret-leader-election/index.md diff --git a/public/content/translations/ru/roadmap/security/index.md b/public/content/translations/ru/roadmap/security/index.md new file mode 100644 index 00000000000..bc037de6294 --- /dev/null +++ b/public/content/translations/ru/roadmap/security/index.md @@ -0,0 +1,48 @@ +--- +title: Более безопасный Ethereum +description: Ethereum — самая безопасная и децентрализованная платформа для смарт-контрактов из существующих. Однако потребуется еще ряд улучшений, чтобы в будущем Ethereum оставался устойчивым к любому уровню атак. +lang: ru +image: ..//roadmap/roadmap-security.png +alt: "Дорожная карта Ethereum" +template: roadmap +--- + +Ethereum уже является очень безопасной и децентрализованной платформой для смарт-контрактов. Однако потребуется еще ряд улучшений, чтобы в будущем Ethereum оставался устойчивым ко всем типам атак. Они включают в себя тонкие изменения в том, как клиенты Ethereum справляются с конкурирующими блоками, а также увеличивают скорость, с которой сеть признает блоки [законченными](/developers/docs/consensus-mechanisms/pos/#finality) (это означает, что они не могут быть изменены без значительных экономических потерь для хакера). + +Есть также улучшения, которые значительно затрудняют цензурирование транзакций, не позволяя предлагающим блоки видеть их содержимое, и новые способы выявления случаев, когда клиент занимается цензурой. Вместе эти улучшения модернизируют протокол доказательства владения таким образом, что пользователи — от физических лиц до корпораций — смогут мгновенно проверять свои приложения, данные и активы на Ethereum. + +## Вывод средств, использованных в стейкинге {#staking-withdrawals} + +Переход от доказательства работы к доказательству владения начался с первопроходцев Ethereum, ставивших свой эфир (ЕТН) в депозитном контракте. Этот ЕТН используется для защиты сети. Однако такой ЕТН пока не может быть разблокирован и возвращен пользователям. Обеспечение возможности выводить ЕТН — критически важная часть обновления по переходу к доказательству владения. Вывод средств — не просто критический компонент полнофункционального протокола доказательства владения. Разрешение выводить средства также принесет пользу для безопасности Ethereum, так как это позволяет дольщикам использовать свои вознаграждения в ЕТН для других целей, не связанных со стейкингом. Это означает, что пользователи, которым нужна ликвидность, не будут обязаны полагаться на ликвидные деривативы стейкинга (LSD), которые могут быть централизующей силой в Ethereum. Обновление запланировано на 12 апреля 2023 года. + +Подробнее о выводе средств + +## Защита от атак {#defending-against-attacks} + +Даже с действующим выводом средств останутся улучшения, которые можно будет вносить в протокол доказательства владения Ethereum. Одно из них известно как [слияние мнений](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739) — более безопасный алгоритм выбора ответвления, который усложняет некоторые сложные типы атак. + +Сокращение времени, которое тратит Ethereum на завершение блоков, обеспечит лучший пользовательский опыт и предотвратит сложные «реорганизационные» атаки, когда злоумышленники пытаются перемешать самые последние блоки для извлечения прибыли или цензуры определенных транзакций. [**Завершенность одного слота (SSF)**](/roadmap/single-slot-finality/) — это путь к минимизации задержки при завершении. Сейчас атакующий в теории может убедить других валидаторов переконфигурировать все блоки, которые были созданы за последние 15 минут. С использованием SSF это окно было бы сведено к 0. Пользователи, начиная от физических лиц и заканчивая приложениями и биржами, выигрывают от быстрой гарантии того, что их транзакции не будут возвращены. Выиграет и сеть, избавляясь от целого класса атак. + +Подробнее о завершенности одного слота + +## Защита от цензуры {#defending-against-censorship} + +Децентрализация не позволяет отдельным лицам или небольшим группам валидаторов стать слишком влиятельными. Новые технологии стейкинга могут помочь обеспечивать максимально возможную децентрализацию валидаторов в Ethereum, одновременно защищая их от аппаратных, программных и сетевых сбоев. Сюда относится программное обеспечение, которое распределяет обязанности валидатора между несколькими узлами. Это известно как **технология распределенного валидатора (DVT)**. Пулы стейкинга заинтересованы в использовании DVT, поскольку это позволяет нескольким компьютерам коллективно участвовать в валидации, добавляя избыточности и отказоустойчивости. Она также распределяет ключи валидатора между несколькими системами вместо того, чтобы один оператор запускал несколько валидаторов. Благодаря этому нечестным операторам труднее проводить скоординированные атаки на Ethereum. В целом идея заключается в получении преимуществ для безопасности за счет запуска валидаторов как _сообществ_, а не как отдельных лиц. + +Подробнее о технологии распределенного валидатора + +Внедрение **разделения между инициаторами и строителями блоков (PBS)** значительно улучшит защиту Ethereum от цензуры. PBS позволяет одному валидатору создать блок, а другому — передать его в сеть Ethereum. Это гарантирует, что прибыль от профессиональных алгоритмов построения блоков, максимизирующих прибыль, более справедливо распределяется по всей сети, **предотвращая концентрацию ставок** у наиболее эффективных институциональных игроков. Предлагающий выбирает самый прибыльный блок, предложенный ему рынком строителей блоков. Чтобы подвергнуть содержание блока цензуре, предлагающему будет необходимо выбрать менее прибыльный блок, что будет **экономически нерационально и очевидно для остальных валидаторов** в сети. + +Существуют возможные дополнения к PBS, такие как зашифрованные транзакции и списки вхождений, которые могут еще больше повысить устойчивость Ethereum к цензуре. Благодаря им предлагающие и строители блоков не смогут увидеть содержание транзакций, включаемых в блок. + +Подробнее о разделении предлагающих и строителей + +## Защита валидаторов {#protecting-validators} + +Возможно, что опытный злоумышленник мог бы идентифицировать будущих валидаторов и заваливать их спамом, чтобы помешать им предлагать блоки. Такой вид атаки называется **«отказом в обслуживании»‎ (DoS-атакой)**. Внедрение [**тайного выбора лидера (SLE)**](/roadmap/secret-leader-election) сможет защитить от таких атак, не позволяя заранее получать информацию о том, кто будет предлагать следующие блоки. Такой результат получается путем постоянного перетасовывания набора криптографических обязательств, которые представляют предлагающих блоки, и использования их порядка для определения того, какой валидатор выбран, таким образом, что только сами валидаторы заранее знают свой порядок. + +Подробнее о выборе тайного лидера + +## Текущий прогресс {#current-progress} + +Обновления безопасности, предусмотренные дорожной картой, находятся на продвинутых стадиях исследований, но ожидается, что они не будут внедрены в течение некоторого времени. Следующими шагами для слияния мнений, PBS, SSF и SLE являются завершение разработки спецификации и начало создания прототипов. diff --git a/src/content/translations/ru/roadmap/single-slot-finality/index.md b/public/content/translations/ru/roadmap/single-slot-finality/index.md similarity index 100% rename from src/content/translations/ru/roadmap/single-slot-finality/index.md rename to public/content/translations/ru/roadmap/single-slot-finality/index.md diff --git a/src/content/translations/ru/roadmap/statelessness/index.md b/public/content/translations/ru/roadmap/statelessness/index.md similarity index 100% rename from src/content/translations/ru/roadmap/statelessness/index.md rename to public/content/translations/ru/roadmap/statelessness/index.md diff --git a/public/content/translations/ru/roadmap/user-experience/index.md b/public/content/translations/ru/roadmap/user-experience/index.md new file mode 100644 index 00000000000..cb99bb861f6 --- /dev/null +++ b/public/content/translations/ru/roadmap/user-experience/index.md @@ -0,0 +1,36 @@ +--- +title: Улучшение опыта пользователей +description: До сих пор использование Ethereum слишком сложно для большинства людей. Чтобы поощрять массовое распространение, системе Ethereum необходимо значительно снизить порог входа. Пользователи должны получать преимущества от децентрализованного, общедоступного и устойчивого к цензуре доступа к Ethereum, но он должен быть таким же удобным, как использование традиционного приложения web2. +lang: ru +image: ..//roadmap/roadmap-ux.png +alt: "Дорожная карта Ethereum" +template: roadmap +--- + +Использование Ethereum необходимо упростить: от управления ключами и кошельками до инициации транзакций. Для облегчения массового внедрения Ethereum должен стать радикально проще в использовании, что позволит пользователям получить беспрепятственный и устойчивый к цензуре доступ к Ethereum с той же легкостью, что и при использовании приложений web2. + +## После кодовых фраз {#no-more-seed-phrases} + +Аккаунты Ethereum защищены парой ключей, используемых для идентификации аккаунтов (публичный ключ) и подписи сообщений (приватный ключ). Приватный ключ похож на главный пароль: он позволяет получить полный доступ к аккаунту Ethereum. Этот подход отличается от привычного людям, более знакомым с банками и приложениями Web2 для управления аккаунтами от имени пользователя. Чтобы Ethereum достиг массового распространения, не полагаясь на централизованные третьи стороны, у пользователя должен быть понятный и простой способ получить контроль над своими активами и данными без необходимости понимания криптографии публичных и приватных ключей и управления ими. + +Решение этого вопроса заключается в использовании кошельков смарт-контрактов для взаимодействия с Ethereum. Кошельки смарт-контрактов создают способы для защиты аккаунта (если ключи были потеряны или украдены), возможности для лучшего выявления мошенничества и для защиты от него. Они позволяют оснастить кошельки новыми функциями. Хотя кошельки смарт-контрактов и существуют сегодня, они неудобны для создания, потому что протокол Ethereum должен поддерживать их лучше. Эта дополнительная поддержка называется абстрагированием аккаунта. + +Подробнее об абстрагировании аккаунта + +## Узлы для каждого + +Пользователям, запускающим узлы, нет необходимости доверять посредникам, чтобы предоставлять им данные. Они могут взаимодействовать с блокчейном Ethereum быстро, конфиденциально и без необходимости получать чье-то разрешение. Однако сейчас запуск узла требует технической грамотности, а также значительного места на диске, поэтому люди вынуждены доверять посредникам. + +Существует несколько обновлений, которые могут сделать запуск и поддержание узла не таким сложным и ресурсоемким. Способ хранения данных будет изменен для использования более компактной структуры, известной как **дерево Веркла**. Кроме того, с клиентами [без состояния](/roadmap/statelessness) или [экспирацией данных](/roadmap/statelessness/#data-expiry) узлам Ethereum не нужно будет хранить копию всех данных о состоянии, что резко снизит потребности в пространстве на жестком диске. [Легкие узлы](/developers/docs/nodes-and-clients/light-clients/) в будущем позволят сохранить преимущества полных узлов, но станут легко запускаемыми на мобильных устройствах или в простом веб-приложении в браузере. + +Подробнее о деревьях Веркла + +Благодаря этим улучшениям барьеры для запуска узла практически сведутся к нулю. Пользователи получат преимущество от безопасного доступа к Ethereum, не требующего получения чьего-то разрешения и необходимости жертвовать заметным количеством места на диске и мощностей процессора на компьютере или телефоне. Кроме того, им не нужно будет полагаться на посредников для передачи данных или предоставления доступа к сети, когда они пользуются приложениями. + +## Текущий прогресс {#current-progress} + +Кошельки смарт-контрактов уже доступны, но требуется больше обновлений, чтобы сделать их как можно более децентрализованными и избавленными от разрешений. EIP-4337 — это зрелое предложение, которое не требует никаких изменений в протоколе Ethereum. Основной смарт-контракт, необходимый для EIP-4337, был развернут в марте 2023 года. + +Клиенты без состояния все еще находятся на стадии исследования, на их реализацию, скорее всего уйдут годы. На пути к клиентам без состояния есть несколько контрольных точек, включая экспирацию данных, которая может быть реализована быстрее. Другие элементы дорожной карты, такие как [деревья Веркла](/roadmap/verkle-trees/) и [разделение предлагающих и строящих](/roadmap/pbs/), должны быть завершены в первую очередь. + +Тестовые сети с деревьями Веркла уже работают, а следующим шагом будет запуск клиентов, основанных на деревьях Веркла: сначала в приватных, а потом и в общедоступных тестовых сетях. Вы можете помочь ускорить прогресс, развертывая смарт-контракты или клиенты в тестовых сетях. diff --git a/src/content/translations/ru/roadmap/verkle-trees/index.md b/public/content/translations/ru/roadmap/verkle-trees/index.md similarity index 100% rename from src/content/translations/ru/roadmap/verkle-trees/index.md rename to public/content/translations/ru/roadmap/verkle-trees/index.md diff --git a/src/content/translations/ru/security/index.md b/public/content/translations/ru/security/index.md similarity index 100% rename from src/content/translations/ru/security/index.md rename to public/content/translations/ru/security/index.md diff --git a/public/content/translations/ru/smart-contracts/index.md b/public/content/translations/ru/smart-contracts/index.md new file mode 100644 index 00000000000..94f836e08e3 --- /dev/null +++ b/public/content/translations/ru/smart-contracts/index.md @@ -0,0 +1,84 @@ +--- +title: Умные контракты +description: Нетехническое введение в умные контракты +lang: ru +--- + +# Введение в умные контракты {#introduction-to-smart-contracts} + +Умные контракты — это основные кирпичи для создания слоя приложений Ethereum. Это компьютерные программы, хранящиеся на блокчейне, которые следуют логике «если это, тогда то» и гарантированно исполняются в соответствии с правилами, определенными его кодом, который не может быть изменен после создания. + +Nick Szabo придумал термин «умный контракт». В 1994 г. он написал [введение в концепцию](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html), а в 1996 г. — [исследование того, что умные контракты могли бы сделать](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). + +Szabo предвидел создание цифрового рынка, на котором автоматические криптографические процессы позволяют осуществлять транзакции и бизнес-функции без доверенных посредников. Умные контракты в Ethereum претворили это в жизнь. + +## Доверие при работе с традиционными контрактами {#trust-and-contracts} + +Одна из главных проблем традиционных контрактов — это необходимость привлекать доверенных третьих лиц, чтобы обеспечить выполнение условий. + +Вот пример. + +Алиса и Боб устраивают велогонку. Допустим, Алиса ставит 10 долларов на то, что она выиграет гонку. Боб же уверен в себе, считает, что победит он, и принимает ставку. В результате Алиса обгоняет Боба, заканчивает гонку первой и становится очевидным победителем. Но Боб отказывается платить и обвиняет Алису в жульничестве. + +Этот простой мысленный эксперимент обнаруживает проблему с любым «не умным» контрактом. Даже если все условия выполнены (например, вы выиграли гонку), вам по прежнему остается верить, что другая сторона выполнит свою часть соглашения (например, заплатит то, что поставила). + +## Цифровой торговый автомат {#vending-machine} + +Простейшая метафора для умного контракта — это торговый автомат, который работает похожим образом: определенный ввод гарантирует определенный вывод. + +- Вы выбираете товар +- Торговый автомат отображает цену +- Вы платите соответственно цене +- Торговый автомат удостоверяется, что вы заплатили верную сумму +- Торговый автомат дает вам вашу вещь + +Торговый автомат отдаст оплаченный товар, только когда все требования будут удовлетворены. Если товар не выбран или внесено недостаточно денег, торговый автомат не выдаст ничего. + +## Автоматическое выполнение {#automation} + +Главное преимущество умного контракта в том, что он однозначно выполняет недвусмысленный код при соблюдении определенных условий. Нет нужды ждать человека для выполнения любых требуемых операций. Это устраняет необходимость в доверенных посредниках. + +Например, вы можете написать умный контракт, который держит средства ребенка и позволяет ему снять их после определенной даты. Если он попробует снять деньги до этой даты, смарт-контракт этого не допустит. Или вы можете написать контракт, который автоматически дает вам цифровую версию прав на автомобиль, когда вы платите дилеру. + +## Предсказуемые результаты {#predictability} + +Традиционные контракты неоднозначны, потому что они полагаются на людей в их интерпретации и реализации. Например, двое судей могут по-разному толковать контракт, что может привести к непоследовательным решениям и неравным результатам. Умные контракты исключают такую возможность. Вместо этого умные контракты выполняются точно так, как написан их код. «Точность» означает, что при одинаковых обстоятельствах результат всегда будет одинаковым. + +## Открытая запись {#public-record} + +Умные контракты хорошо поддаются проверке и отслеживанию. Так как умные контракты Ethereum находятся в публичном блокчейне, кто угодно и в любой момент может отследить перемещение активов и связанную с ним информацию. Например, вы можете проверить, отправил ли кто-то деньги на ваш адрес. + +## Защита конфиденциальности {#privacy-protection} + +Смарт-контракты также защищают вашу конфиденциальность. Так как Ethereum — это псевдонимная сеть (транзакции публично отображаются от имени уникального криптографического адреса, но личность, стоящая за адресом, неизвестна), вы можете защищать свою конфиденциальность. + +## Видимые условия {#visible-terms} + +Наконец, как и в случае с обычными контрактами, вы можете проверить, что находится в умном контракте, прежде чем подписать его (или взаимодействовать с ним другим способом). Прозрачность смарт-контракта гарантирует, что любой может тщательно изучить его. + +## Варианты использования умных контрактов {#use-cases} + +В целом умные контракты могут делать практически все то же самое, что и другие компьютерные программы. + +Они могут выполнять вычисления, создавать валюту, хранить данные, выпускать NFT, отправлять сообщения и даже генерировать графику. Вот несколько распространенных примеров из реального мира. + +- [Стейблкойны](/stablecoins/) +- [Создание и распространение уникальных цифровых активов](/nft/) +- [Автоматический и открытый обмен валюты](/get-eth/#dex) +- [Децентрализованные игры](/dapps/?category=gaming) +- [Страховой полис с автоматической оплатой](https://etherisc.com/) +- [Стандарт, который позволяет людям создавать индивидуальные и совместимые валюты](/developers/docs/standards/tokens/) + +## Больше визуализации? {#visual-learner} + +Посмотрите, как Finematics объясняет умные контракты. + + + +## Дополнительная литература {#further-reading} + +- [Как умные контракты изменят мир](https://www.youtube.com/watch?v=pA6CGuXEKtQ) +- [Умные контракты: блокчейн-технология, которая заменит юристов](https://blockgeeks.com/guides/smart-contracts/) +- [Умные контракты для разработчиков](/developers/docs/smart-contracts/) +- [Научитесь создавать Умные контракты](/developers/learning-tools/) +- [Освоение Ethereum: что такое умный контракт?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/ru/social-networks/index.md b/public/content/translations/ru/social-networks/index.md new file mode 100644 index 00000000000..ae4a3a87577 --- /dev/null +++ b/public/content/translations/ru/social-networks/index.md @@ -0,0 +1,121 @@ +--- +title: Децентрализованные социальные сети +description: Обзор децентрализованных социальных сетей на Ethereum +lang: ru +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: /ethereum-learn.png +summaryPoint1: Платформы на основе блокчейна для социального взаимодействия, создания и распространения контента. +summaryPoint2: Децентрализованные социальные сети защищают конфиденциальность пользователей и повышают безопасность данных. +summaryPoint3: Токены и NFT создают новые способы монетизации контента. +--- + +Социальные сети играют огромную роль в нашем повседневном общении и взаимодействии. Однако централизованный контроль над этими платформами создал множество проблем: утечки данных, перебои в работе серверов, деплатформирование, цензура и нарушение конфиденциальности — некоторые из компромиссов, на которые часто идут социальные сети. Для борьбы с этими проблемами разработчики создают социальные сети на Ethereum. Децентрализованные социальные сети могут решить многие проблемы традиционных социальных сетей и улучшить общий опыт пользователей. + +## Что такое децентрализованные социальные сети? {#what-are-decentralized-social-networks} + +Децентрализованные социальные сети — это платформы, основанные на блокчейне, которые позволяют пользователям обмениваться информацией, а также публиковать и распространять контент среди аудитории. Поскольку эти приложения работают на блокчейне, они могут быть децентрализованными и устойчивыми к цензуре и неправомерному контролю. + +Многие децентрализованные социальные сети существуют в качестве альтернативы существующим социальным сетям, таким как Facebook, LinkedIn, Twitter и Medium. Но в социальных сетях блокчейн существует целый ряд особенностей, которые выгодно отличают их от традиционных социальных платформ. + +### Как работают децентрализованные социальные сети? {#decentralized-social-networks-overview} + +Децентрализованные социальные сети представляют собой класс [децентрализованных приложений (dapps)](/dapps/)— приложений, разработанных [с помощью смарт-контрактов](/developers/docs/smart-contracts/) на блокчейне. Код контракта служит серверной частью этих приложений и определяет их бизнес-логику. + +Традиционные социальные сети используют базы данных для хранения информации о пользователе, программного кода и других форм данных. Но это создает единые точки отказа и вносит значительный риск. Например, серверы Facebook внезапно [ушли в оффлайн на часы](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) в прошлом году, отрезав пользователей от платформы. + +Децентрализованные социальные сети существуют в одноранговой сети, состоящей из тысяч узлов по всему миру. Даже если некоторые узлы откажут, сеть будет работать бесперебойно, что сделает приложения устойчивыми к перебоям и простоям. + +С помощью децентрализованных систем хранения, например [InterPlanetary File System (IPFS)](https://ipfs.io/), социальные сети, построенные на Ethereum, могут защитить информацию пользователя от эксплуатации и злонамеренного использования. Никто не будет продавать вашу личную информацию рекламодателям, а хакеры не смогут украсть ваши конфиденциальные данные. + +Многие социальные платформы на основе блокчейна имеют собственные токены, которые обеспечивают монетизацию при отсутствии доходов от рекламы. Пользователи могут покупать эти токены, чтобы получить доступ к определенным функциям, совершать покупки в приложении или отправлять чаевые своим любимым создателям контента. + +## Преимущества децентрализованных социальных сетей {#benefits} + +1. Децентрализованные социальные сети устойчивы к цензуре и открыты для всех. Это означает, что пользователей нельзя произвольно заблокировать, деплатформировать или ограничить. + +2. Децентрализованные социальные сети построены на принципах открытого исходного кода и делают исходный код приложений доступным для всеобщего обозрения. Устраняя реализацию непрозрачных алгоритмов, распространенных в традиционных социальных сетях, социальные сети на основе блокчейна могут уравнивать интересы пользователей и создателей платформы. + +3. Децентрализованные социальные сети исключают «посредников». Создатели контента имеют прямое право собственности на свой контент и напрямую взаимодействуют с подписчиками, поклонниками, покупателями и другими сторонами, не имея ничего, кроме смарт-контракта между ними. + +4. Как и децентрализованные приложения, работающие в сети Ethereum, которая поддерживается глобальной одноранговой сетью узлов, децентрализованные социальные сети менее подвержены простоям и перебоям в работе серверов. + +5. Децентрализованные социальные сети предлагают улучшенную структуру монетизации для создателей контента с помощью невзаимозаменяемых токенов (NFT), криптовалютных платежей в приложениях и т. д. + +6. Децентрализованные социальные сети предоставляют пользователям высокий уровень конфиденциальности и анонимности. Например, человек может войти в социальную сеть на основе Ethereum, используя профиль или кошелек ENS, без необходимости делиться личной информацией, такой как имена, адреса электронной почты и т. д. + +7. Децентрализованные социальные сети полагаются не на централизованные базы данных, а на децентрализованные хранилища, которые значительно лучше защищают пользовательские данные. + +## Децентрализованные социальные сети на Ethereum {#ethereum-social-networks} + +Сеть Ethereum стала предпочтительным инструментом для разработчиков, создающих децентрализованные социальные сети, благодаря популярности ее токенов (ERC-20/ERC-721) и огромной пользовательской базе. Вот несколько примеров социальных сетей, основанных на Ethereum: + +### Peepeth {#peepeth} + +[Peepeth](https://peepeth.com/) — это платформа микроблогов, похожая на Twitter. Она работает на блокчейне Ethereum и использует IPFS для хранения пользовательских данных. + +Пользователи могут отправлять короткие сообщения под названием «Peeps», которые нельзя удалить или изменить. Вы можете получать чаевые или отправлять их кому-то на платформе в эфирах (ETH), не выходя из приложения. + +### Mirror {#mirror} + +[Mirror](https://mirror.xyz/) — это платформа для писателей с поддержкой web3, которая должна быть децентрализованной и принадлежать пользователям. Пользователи могут бесплатно читать и писать на Mirror, просто подключив свои кошельки. Пользователи также могут коллекционировать записи и подписываться на своих любимых писателей. + +Сообщения, опубликованные на Mirror, постоянно хранятся в Arweave, децентрализованном хранилище, и могут быть выпущены в виде коллекционных [невзаимозаменяемых токенов (NFT)](/nft/), известных как Writing NFT. Написание NFT совершенно бесплатно для авторов, а сбор происходит на Ethereum L2, что делает транзакции недорогими, быстрыми и экологически безопасными. + +### MINDS {#minds} + +[MINDS](https://www.minds.com/) — одна из самых популярных децентрализованных социальных сетей. Она работает как Facebook и уже набрала миллионы пользователей. + +Пользователи используют собственный токен ERC-20 $MIND для оплаты товаров. Пользователи также могут зарабатывать токены $MIND, публикуя популярный контент, внося свой вклад в экосистему и приводя других на платформу. + +## Социальные сети Web2 на Ethereum {#web2-social-networks-and-ethereum} + +Нативные социальные платформы [Web3](/web3/) не единственные, что пытаются внедрить технологию блокчейна в социальные сети. Многие централизованные платформы также планируют интегрировать Ethereum в свою инфраструктуру: + +### 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/), которые пользователи могут заработать, публикуя качественный контент и внося свой вклад в онлайн-сообщества (субреддиты). Вы можете обменять эти токены в субреддите, чтобы [получить эксклюзивные привилегии и льготы](https://www.reddit.com/community-points/). Для этого проекта Reddit работает с Arbitrum, сверткой [уровня 2](/layer-2/), предназначенной для масштабирования транзакций Ethereum. + +Программа уже запущена, и субреддит r/CryptoCurrency [запустил свою версию Community Points под названием «Moons»](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Согласно официальному описанию, Moons «поощряет авторов, комментаторов и модераторов за их вклад в сабреддит». Поскольку эти токены находятся в блокчейне (пользователи получают их в свой кошелек), они не зависят от Reddit и не могут быть отобраны. + +После завершения бета-тестирования на тестовой сети Rinkeby баллы сообщества Reddit теперь базируется на [Arbitrum Nova](https://nova.arbitrum.io/) — блокчейне, который совмещает в себе свойства [сайдчейнов](/developers/docs/scaling/sidechains/) и [оптимистических сверток](/developers/docs/scaling/optimistic-rollups/). Помимо использования баллов сообщества для разблокировки специальных возможностей, пользователи могут продавать их на биржах за фиатную валюту. Кроме того, количество баллов сообщества, которыми владеет пользователь, определяет его влияние на процесс принятия решений в сообществе. + +### Twitter {#twitter} + +В январе 2021 года Twitter Blue [развернул поддержку NFT](https://mashable.com/article/twitter-blue-nft-profile-picture), что позволило пользователям подключать свои кошельки и отображать NFT в качестве изображения профиля. На момент написания статьи, социальная сеть [объявила о планах](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) по созданию децентрализованной социальной сети в будущем. + +### Instagram {#instagram} + +В мае 2022 [ Instagram анонсировал поддержку NFT](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) на Ethereum и Polygon. Пользователи могут публиковать NFT напрямую в Instagram, подключив свой кошелек Ethereum. + +## Используйте децентрализованные социальные сети {#use-decentralized-social-networks} + +- **[Status.im](https://status.im/)**. _Status — это безопасное приложение для обмена сообщениями, в котором используется протокол одноранговой связи с открытым исходным кодом и сквозное шифрование для защиты ваших сообщений от третьих лиц._ +- **[Mirror.xyz](https://mirror.xyz/)**. _Mirror — это децентрализованная издательская платформа, которая принадлежит только пользователям. Она построена на Ethereum и позволяет пользователям собирать идеи, монетизировать контент и создавать ценные сообщества._ +- **[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/) — _Бен Герцль_ +- [Web3 выполняет обещание о децентрализованных, управляемых сообществом социальных сетях](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Сумит Гош_ +- [Обзор ландшафта социальных сетей на блокчейне](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Криптопедия Gemini_ +- [Как блокчейн может решить проблему с конфиденциальностью социальных сетей](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Праблин Баджпай_ +- [Социальные сети приходят на блокчейн](https://businesstechguides.co/what-are-decentralized-social-networks) — _Эммануэль Авосика_ +- [Достаточная децентрализация для социальных сетей](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Варун Сринивасан_ + +### Видео {#videos} + +- [Объяснение децентрализованной социальной сети](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ +- [Блокчейн DeSo хочет децентрализовать социальные сети](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ +- [Будущее децентрализованных социальных сетей: объясняют Баладжи Сринивасан, Виталик Бутерин, Хуан Бенет](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ + +### Сообщества {#communities} + +- [Status (сервер Discord)](https://discord.com/invite/3Exux7Y) +- [Mirror (сервер Discord)](https://discord.com/invite/txuCHcE8wV) +- [Сабреддит r/CryptoCurrency](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/ru/staking/dvt/index.md b/public/content/translations/ru/staking/dvt/index.md similarity index 100% rename from src/content/translations/ru/staking/dvt/index.md rename to public/content/translations/ru/staking/dvt/index.md diff --git a/public/content/translations/ru/staking/pools/index.md b/public/content/translations/ru/staking/pools/index.md new file mode 100644 index 00000000000..0fce44bb66d --- /dev/null +++ b/public/content/translations/ru/staking/pools/index.md @@ -0,0 +1,85 @@ +--- +title: Объединенный стейкинг +description: "Как начать совместный стейкинг ETH: краткий обзор" +lang: ru +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-pool.png +alt: Носорог Лесли плавает в бассейне. +sidebarDepth: 2 +summaryPoints: + - Становитесь дольщиком и зарабатывайте награды при любом количестве ETH, объединяя силы с другими. + - Пропустите сложную часть и доверьте работу валидатора третьим лицам. + - Храните токены стейкинга в своем кошельке. +--- + +## Что такое стейкинг-пул? {#what-are-staking-pools} + +Стейкинг-пулы — это совместный подход, который позволяет многим пользователям с малым количеством ETH вместе набирать32 ETH, необходимых для активации набора ключей валидатора. Функционал пулов изначально не поддерживался в рамках протокола, так что эти решения были созданы отдельно. + +Некоторые пулы управляются с помощью умных контрактов, где средства могут быть внесены на этот контракт, который без необходимости доверия управляет вашей ставкой и отслеживает ее, а также выдает вам токен с той же ценностью. Другие пулы могут не использовать смарт-контракты, а посредничество происходит вне цепочки. + +## Зачем делать ставки в пуле? {#why-stake-with-a-pool} + +В дополнение к преимуществам, которые мы описали в нашем [введении в стейкинг](/staking/), ставки в пуле предлагают еще несколько преимуществ. + + + + + + + + + +## Что следует принять во внимание {#what-to-consider} + +Протокол Ethereum нативно не поддерживает пулы и делегированный стейкинг, но с учетом спроса от пользователей на возможность ставить менее 32 ETH создается все больше решений, чтобы удовлетворить этот запрос. + +Каждый пул и инструменты или смарт-контракты, которые они используют, были созданы различными командами, и у каждого есть преимущества и риски. Пулы позволяют пользователям обменивать свои ETH на токен, представляющий ETH в ставке. Этот токен полезен, потому что он позволяет пользователям обменять любое количество ЕТН на эквивалентное количество приносящего доход токена, который генерирует прибыль от вознаграждений за стейкинг, применяемых к основной ставке ETH (и наоборот), на децентрализованных биржах, даже несмотря на то, что настоящие ЕТН остаются на слое консенсуса. Это означает, что обмен между прибыльным продуктом ETH, участвующим в стейкинге, и «оригинальным ETH» происходит быстро, просто и применяется не только к ETH в количестве, кратном 32. + +Однако такие ETH в ставке способствуют образованию своего рода картелей: большое количество поставленных ETH оказываются под контролем нескольких централизованных организаций, а не распространяется среди большого количества независимых лиц. Это создает условия для цензуры или извлечения ценности. Золотым стандартом стейкинга всегда должны быть отдельные люди, запускающие валидаторы на своем оборудовании, когда это возможно. + +[Подробнее о рисках токенов стейкинга](https://notes.ethereum.org/@djrtwo/risks-of-lsd). + +Индикаторы атрибутов ниже используются для указания на сильные и слабые стороны, которые могут быть у указанного стейкинг-пула. Используйте этот раздел в качестве справки о том, как мы определяем эти атрибуты, когда будете выбирать пул для участия. + + + +## Исследуйте стейкинг-пулы {#explore-staking-pools} + +Есть множество вариантов, которые помогут вам с установкой. Используйте индикаторы выше как руководство по инструментам, приведенным ниже. + + + + + +Обратите внимание на важность выбора службы, которая серьезно подходит к [разнообразию клиентов](/developers/docs/nodes-and-clients/client-diversity/), так как это повышет безопасность сети и ограничивает ваши риски. Службы, у которых есть доказательства ограничения для мажоритарных клиентов, имеют отметки разнообразие клиентов-исполнителей и разнообразие консенсус-клиентов. + +Есть предложение насчет инструмента для стейкинга, которого не хватает? Ознакомьтесь с нашей [политикой списка продуктов](/contributing/adding-staking-products/), убедитесь, что оно подойдет, и отправьте на рассмотрение. + +## Часто задаваемые вопросы {#faq} + + +Как правило, дольщикам выдаются токены стейкинга ERC-20, которые представляют ценность их вклада ETH, плюс вознаграждение. Имейте в виду, что разные пулы могут разными способами распределять награды среди вкладчиков, но в целом все обычно устроено так. + + + +Прямо сейчас! Обновление сети Shanghai/Capellа произошло в апреле 2023 года и ввело вывод средств из стейкинга. Аккаунты валидаторов, которые поддерживают стейкинг-пулы, теперь имеют возможность вывести ЕТН на их назначенный адрес вывода. Это дает возможность вернуть свою долю ставки за базовые ЕТН. Свяжитесь с вашим поставщиком, чтобы узнать, как он поддерживает эту функцию. + +В качестве альтернативы пулы, использующие токены стейкинга ERC-20, позволяют пользователям торговать этими токенами на открытом рынке. Это дает возможность продать находящуюся в стейкинге позицию без фактического вывода ETH из контракта стейкинга. + +Подробнее о выводе средств из стейкинга + + + +Существует много сходств между вариантами стейкинг-пулов и централизованными биржами. Например, возможность вклада небольшого количества ETH и объединения для активации валидатора. + +В отличие от централизованных бирж, многие другие варианты стейкинг-пулов используют умные контракты и/или стейкинговые токены ERC-20, которые хранятся в вашем кошельке и могут быть куплены или проданы, как и любой другой токен. Это обеспечивает определенный уровень суверенитета и безопасности, давая вам контроль над своими токенами, но не оставляя прямого контроля над клиентом валидатора, подтверждающего от вашего имени в фоновом режиме. + +Некоторые пулы более децентрализованы по сравнению с другими, когда речь идет об узлах, которые поддерживают их. Для укрепления здоровья и децентрализации сети вкладчиков всегда поощряют выбирать пул, обеспечивающий децентрализованный набор операторов узлов и не требующий разрешений. + + +## Дополнительные ресурсы {#further-reading} + +- [Стейкинг с помощью Rocket Pool: обзор стейкинга](https://docs.rocketpool.net/guides/staking/overview.html) — _документы RocketPool_ +- [Стейкинг Ethereum с помощью Lido](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) — _справочная документация Lido_ diff --git a/public/content/translations/ru/staking/saas/index.md b/public/content/translations/ru/staking/saas/index.md new file mode 100644 index 00000000000..568244f02dc --- /dev/null +++ b/public/content/translations/ru/staking/saas/index.md @@ -0,0 +1,94 @@ +--- +title: Стейкинг как услуга +description: Обзор того, как разместить ETH в пуле +lang: ru +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-saas.png +alt: Носорог Лесли плавает в облаках. +sidebarDepth: 2 +summaryPoints: + - Операторы сторонних узлов управляют работой вашего клиента валидатора + - Отличный вариант для всех обладателей 32 ETH, не желающих сталкиваться с техническими сложностями запуска узла + - Меньше необходимости доверия и хранение ваших ключей для вывода средств +--- + +## Что такое стейкинг как услуга? {#what-is-staking-as-a-service} + +Стейкинг как услуга (SaaS) представляет собой категорию услуг по стейкингу, с помощью которых вы вносите свои собственные 32 ETH для валидатора, но делегируете операции с узлом стороннему оператору. Как правило, этот процесс предусматривает начальную установку, включая генерацию ключей и депозит, а затем отправку ключей для подписи оператору. Это позволяет службе управлять вашим валидатором от вашего имени, как правило, за ежемесячную плату. + +## Зачем использовать стейкинг как услугу? {#why-stake-with-a-service} + +Протокол Ethereum нативно не поддерживает делегирование ставок, поэтому эти услуги предлагаются для удовлетворения существующего спроса. Если у вас есть 32 ETH для стейкинга, но вы не чувствуете себя комфортно при работе с оборудованием, службы SaaS позволяют делегировать сложную часть, пока вы зарабатываете собственные вознаграждения за блоки. + + + + + + + + + +## На что необходимо обратить внимание {#what-to-consider} + +Чтобы помочь вам ставить свои ETH, появляется все больше поставщиков SaaS, но у каждого есть свои преимущества и риски. Все варианты SaaS требуют дополнительного доверия по сравнению с домашним стейкингом. Параметры SaaS могут содержать дополнительный код, который вносит клиенты Ethereum в свертки и не является открытым или проверяемым. SaaS также имеет пагубное влияние на децентрализацию сети. В зависимости от настроек вы можете не контролировать свой валидатор: оператор может действовать нечестно, используя ваши ETH. + +Индикаторы атрибутов ниже используются для указания на сильные и слабые стороны, которые могут быть у указанного поставщика SaaS. Используйте этот раздел в качестве справки о том, как мы определяем эти атрибуты, когда вы выбираете услугу, которая поможет вам в вашем пути к стейкингу. + + + +## Изучите поставщиков услуг стейкинга {#saas-providers} + +Ниже приведены некоторые доступные поставщики SaaS. Используйте индикаторы выше как руководство по службам, приведенным ниже. + + + +### Поставщики SaaS + + + +Обратите внимание на важность поддержки [разнообразия клиентов](/developers/docs/nodes-and-clients/client-diversity/), так как это повышет безопасность сети и ограничивает ваши риски. Службы, у которых есть доказательства ограничения для мажоритарных клиентов, имеют отметки разнообразие клиентов-исполнителей и разнообразие консенсус-клиентов. + +### Генераторы ключей + + + +У вас есть предложение относительно поставщика услуг по стейкингу, которое мы пропустили? Ознакомьтесь с нашей [политикой списка продуктов](/contributing/adding-staking-products/), убедитесь, что оно подойдет, и отправьте на рассмотрение. + +## Часто задаваемые вопросы {#faq} + + +Договоренности будут отличаться от поставщика к поставщику, но обычно вам понадобится настроить с помощью подсказок все необходимые ключи для подписи (один на 32 ETH) и отправить их поставщику, чтобы позволить ему выполнять валидацию от вашего имени. Сами по себе ключи для подписи не дают возможности вывести, перевести или потратить ваши средства. Тем не менее, они дают возможность голосовать в пользу консенсуса. Если не делается должным образом, это может привести к офлайн-штрафам или сокращению. + + + +Да. Каждая учетная запись состоит как из ключей BLS для подписи, так и из BLS для вывода средств. Чтобы валидатор мог подтвердить состояние цепочки, учавствовать в комитетах синхронизации и предлагать блоки, ключи подписи должны быть легко доступны клиенту-валидатору. Они должны быть подключены к Интернету в той или иной форме и, таким образом, по своей сути считаются «горячими» клавишами. Это обязательное требование к валидатору для возможности подтверждения. Поэтому ключи, используемые для пердачи или вывода средств, разделены по соображениям безопасности. + +Ключи для вывода средств BLS используются для подписи одноразового сообщения, в котором указывается, на какую учетную запись уровня выполнения должны быть начислены вознаграждения за стейкинг и выведены средства. Как только это сообщение будет транслировано, ключи BLS для вывода средств больше не понадобятся. Вместо этого контроль над выведенными средствами навсегда передается указанному вами адресу. Это позволяет вам установить адрес вывода средств, защищенный через ваше собственное холодное хранилище, минимизируя риск для ваших средств валидатора, даже если кто-то другой контролирует ваши ключи подписи валидатора. + +Обновление учетных данных для вывода является необходимым шагом, чтобы активировать вывод средств\*. Этот процесс включает в себя генерацию ключей вывода с помощью вашей мнемонической кодовой фразы. + +Следите за безопасным хранением этой кодовой фразы. В противном случае вы не сможете генерировать ключи для вывода, когда придет время. + +\* Дольщикам, которые предоставили адрес вывода с начальным депозитом, не нужно настраивать это. Обратитесь к своему поставщику SaaS за помощью по подготовке валидатора. + + + +Вывод средств стейкинга введен с обновлением Shanghai/Capella в апреле 2023 года. Стейкеры должны предоставить адрес для вывода (если он не был указан при первоначальном депозите). Выплаты вознаграждений начнут распределяться автоматически на периодической основе каждые несколько дней. + +Валидаторы также могут полностью выйти из роли валидатора, что разблокирует остаток ЕТН для вывода. Учетные записи, указавшие адрес вывода средств и завершившие процесс выхода, получат весь остаток на адрес вывода, указанный во время следующего перебора валидаторов. + +More on staking withdrawals + + + +Используя поставщика SaaS, вы поручаете управление вашим узлом кому-то другому. Это связано с риском плохой производительности узла, которая находится вне вашего контроля. Если ваш валидатор будет сокращен, баланс вашего валидатора будет оштрафован и принудительно удален из пула валидаторов. + +После завершения процесса сокращения/выхода эти средства будут переведены на адрес для вывода средств, присвоенный валидатору. Для этого потребуется указать адрес вывода. Возможно, он был указан при первоначальном внесении депозита. Если нет, то для подписи сообщения, объявляющего адрес вывода средств, потребуется использовать ключи вывода средств валидатора. Если адрес для вывода средств не указан, средства остаются заблокированными до тех пор, пока его не укажут. + +Свяжитесь с конкретным поставщиком услуг SaaS для получения более подробной информации обо всех гарантиях и вариантах страхования, а также инструкций о том, как предоставить адрес для вывода средств. Если вы предпочитаете полностью контролировать настройки вашего валидатора, lузнайте больше о том, как самостоятельно поставить свои ETH. + + +## Дополнительные ресурсы {#further-reading} + +- [Оценка услуг стейкинга](https://www.attestant.io/posts/evaluating-staking-services/) — _Джим Макдональд, 2020г._ diff --git a/public/content/translations/ru/staking/solo/index.md b/public/content/translations/ru/staking/solo/index.md new file mode 100644 index 00000000000..587e3cc7920 --- /dev/null +++ b/public/content/translations/ru/staking/solo/index.md @@ -0,0 +1,203 @@ +--- +title: Одиночный стейкинг со своими ETH +description: Обзор того, как начать одиночный стекинг ETH +lang: ru +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-solo.png +alt: Носорог Лесли на собственном компьютерном чипе. +sidebarDepth: 2 +summaryPoints: + - Получайте максимальное вознаграждение непосредственно от протокола за поддержание вашего валидатора в исправном состоянии и в режиме онлайн + - Запустите домашнее оборудование и лично добавьте безопасности и децентрализации сети Ethereum + - Избавьтесь от необходимости доверия и никогда не передавайте контроль над ключами к своим средствам +--- + +## Что такое одиночный стейкинг? {#what-is-solo-staking} + +Одиночный стейкинг — это [запуск узла Ethereum](/run-a-node/), подключенного к Интернету, и внесение 32 ETH для активации [валидатора](#faq), дающего вам возможность участвовать непосредственно в сетевом консенсусе. + +**Одиночный стейкинг увеличивает децентрализацию сети Ethereum**, делая Ethereum устойчивее к цензуре и атакам. Другие методы стейкинга не могут помочь сети в похожих случаях. Одиночный стейкинг — это лучший вариант стейкинга для обеспечения безопасности Ethereum. + +Узел Ethereum состоит из двух клиентов — на слое исполнения (EL) и слое консенсуса (CL). Эти клиенты — это программное обеспечение, которое работает вместе с действительным набором ключей для подписи, чтобы проверять транзакции и блоки, подтверждать правильность главы цепочки, агрегировать подтверждения и предлагать блоки. + +Одиночные дольщики отвечают за работу оборудования, необходимого для функционирования этих клиентов. Для этого настоятельно рекомендуется использовать специальную машину, которая работает на дому: это чрезвычайно полезно для здоровья сети. + +Одиночный дольщик получает вознаграждения непосредственно от протокола за поддержание правильной работы своего валидатора и постоянное подключение к Интернету. + +## Зачем становиться одиночным дольщиком? {#why-stake-solo} + +Одиночный стейкинг предполагает больше ответственности, но предагает вам максимальный контроль над вашими средствами и конфигурацией для стейкинга. + + + + + + + +## Важно знать перед одиночным стейкингом {#considerations-before-staking-solo} + +Как бы мы ни хотели, чтобы одиночный стейкинг был доступен и безопасен для всех, это не так. Есть несколько практических и серьезных соображений, о которых следует помнить, прежде чем делать одиночную ставку ETH. + + + +Запуская собственный узел, вы должны потратить некоторое время на обучение использованию выбранного вами программного обеспечения. Это включает чтение связанной документации и отслеживание каналов связи соответствующих команд разработчиков. + +Чем больше вы будете понимать программное обеспечение, которое запускаете, и чем лучше разберетесь в том, как работает доказательство владения, тем меньше рисков будет при стейкинге и тем легче будет устранять проблемы, возникающие в роли оператора узла. + + + +Настройка узлов требует довольно уверенного владения компьютером, хотя новые инструменты со временем делают все проще. Понимание интерфейса командной строки полезно, но это уже не обязательное требование. + +Также требуется настройка оборудования на самом базовом уровне и некоторое понимание минимальной рекомендуемой спецификации. + + + +Приватные ключи обеспечивают безопасность вашего адреса Ethereum, и вам тоже нужно будет сгенерировать ключи специально для вашего валидатора. Вы должны понимать, как держать все кодовые фразы и приватные ключи в безопасности. {' '} + +Безопасность Ethereum и предотвращение мошенничества + + + +Оборудование время от времени выходят из строя, сетевые подключения тоже, а программное обеспечение клиента иногда нуждается в обновлении. Обслуживание узлов неизбежно и иногда потребует вашего внимания. Советуем оставаться в курсе всех ожидаемых обновлений сети или других важных обновлений клиентов. + + + +Ваши награды пропорциональны времени, когда ваш валидатор находится в сети и должным образом выполняет процесс подтверждения. Простой влечет за собой штрафы, пропорциональные количеству других валидаторов офлайн в то же время, но не приводит к сокращению. Также важна пропускная способность, так как снижается вознаграждение за подтверждения, которые не получены вовремя. Требования будут варьироваться, но рекомендуется скорость не менее 10 Мб/с в обоих направлениях. + + + +В отличие от наказаний за бездействие в офлайн-режиме, сокращение является гораздо более серьезным наказанием, предназначенным для злонамеренных нарушений. Запуская миноритарный клиент с помощью своих ключей, загруженных только на одну машину за раз, вы минимизируете риск попасть под сокращение. С учетом вышесказанного все дольщики должны осознавать риски сокращения. + +Подробнее о сокращении и жизненном цикле валидатора + + + + + +## Как это работает {#how-it-works} + + + +За время активности вы будете зарабатывать вознаграждения в ЕТН, которые будут периодически вноситься на ваш адрес для вывода средств. + +При желании вы можете выйти из роли валидатора, что устраняет требование быть онлайн и останавливает все дальнейшие вознаграждения. Оставшийся баланс будет выведен на адрес вывода, указанный вами во время установки. + +[More on staking withdrawals](/staking/withdrawals/) + +## Начните с панели запуска стейкинга {#get-started-on-the-staking-launchpad} + +Панель запуска стейкинга — это приложение с открытым исходным кодом, которое поможет вам стать стейкером. Оно поможет вам пройти через выбор клиентов, генерирование ваших ключей и внесение депозита ЕТН в контракт депозита стейкинга. Чтобы убедиться, что сделано все необходимое для безопасной настройки валидатора, используйте предоставленный контрольный список. + + + +## На что необходимо обратить внимание при работе с инструментами для настройки клиента и узлов {#node-tool-considerations} + +Количество инструментов для помощи с одиночным стейкингом ваших ETH все время растет, но каждый из них имеет различные риски и выгоды. + +Индикаторы атрибутов, приведенные ниже, используются для предупреждения о сильных и слабых сторонах, которые могут иметь перечисленные инструменты для стейкинга. Используйте этот раздел в качестве справочного материала о том, как мы определяем эти атрибуты, пока вы выбираете, какие инструменты помогут вам на вашем пути к стейкингу. + + + +## Изучите инструменты для настройки узлов и клиентов {#node-and-client-tools} + +Есть множество опций, которые помогут вам с установкой. Используйте индикаторы описанные выше, в этом руководстве, с помощью инструментов, которые находятся ниже. + + + +### Инструменты для узлов + + + +Обратите внимание на важность выбора [миноритарного клиента](/developers/docs/nodes-and-clients/client-diversity/), так как это повышает безопасность сети и ограничивает ваши риски. Инструменты, позволяющие настраивать миноритарный клиент, обозначаются как мультиклиент. + +### Генераторы ключей + +Эти инструменты могут быть использованы в качестве альтернативы к [CLI депозита на стейкинг](https://github.com/ethereum/staking-deposit-cli/), чтобы помочь с генерацией ключей. + + + +Есть предложение насчет инструмента для стейкинга, которого не хватает? Ознакомьтесь с нашей [политикой списка продуктов](/contributing/adding-staking-products/), убедитесь, что оно подойдет, и отправьте на рассмотрение. + +## Изучите руководства по одиночному стейкингу {#staking-guides} + + + +## Часто задаваемые вопросы {#faq} + +Вот несколько наиболее распространенных вопросов о стейкинге, о которых стоит знать. + + + +Валидатор — это виртаульный обьект, который живет на Ethereum и участвует в консенсусе протокола Ethereum. Валидаторы представлены балансом, публичным ключом и другими свойствами. Клиент валидатора — это программное обеспечение, которое действует от имени валидатора путем держания и использования его приватного ключа. Один клиент валидатора может содержать много пар ключей, контролируя многие валидаторы. + + + + +Каждая пара ключей, связанная с валидатором, требует для активации ровно 32 ETH. Больше ЕТН, внесенных в депозит на один набор ключей, не увеличивает потенциал вознаграждений, так как каждый валидатор ограничен эффективным балансом в 32 ETH. Это означает, что стейкинг выполняется с шагом в 32 ETH, каждый с собственным набором ключей и баланса. + +Не вносите более 32 ЕТН для одного валидатора. Это не увеличит ваши вознаграждения. Если для валидатора был установлен адрес вывода средств, избыточные средства более 32 ETH будут автоматически выведены на этот адрес в течение следующего перебора валидаторов. + +Если одиночный стейкинг кажется слишком требовательным для вас, подумайте об обращении к поставщику стейкинга как услуги. Если вы работаете с менее чем 32 ETH, обратите внимание на стейкинг-пулы. + + + +Переход в офлайн-режим при завершении работы сети должным образом НЕ приведет к сокращению. Небольшие штрафы за бездействие применяются, если ваш валидатор недоступен для подтверждения данной эпохи (каждые 6,4 минуты), но это сильно отличается от сокращения. Эти штрафы немного меньше, чем вознаграждение, которое вы заработали бы, если бы валидатор был доступен для подтверждения, и потери могут быть возвращены за счет отрабатывания примерно равного количества времени. + +Обратите внимание, что штрафы за бездействие (неактивность) пропорциональны тому, сколько валидаторов отключено одновременно. В тех случаях, когда значительная часть сети одновременно отключена, штрафы для каждого из этих валидаторов будут больше, чем когда недоступен один валидатор. + +В крайних случаях, если сеть перестает завершаться в результате того, что более трети валидаторов находятся в автономном режиме, эти пользователи будут страдать от так называемой утечки квадратичной неактивности, которая является экспоненциальным стоком ETH из счетов офлайн-валидаторов. Это позволяет сети в конечном итоге самовосстанавливаться путем сжигания ЕТН неактивных валидаторов, пока их баланс не достигнет 16 ЕТН, после чего они будут автоматически выброшены из пула валидаторов. Оставшиеся онлайн-валидаторы в конечном итоге снова составят более 2/3 сети, удовлетворяя требования сверхбольшинства, необходимого для завершения цепочки. + + + +Короче говоря, абсолютной гарантии здесь быть не может, но если вы действуете добросовестно, управляете миноритарным клиентом и держите свои ключи для подписи только на одной машине за раз, риск быть скоращенным почти нулевой. + +Есть лишь несколько конкретных путей действия, которые могут привести к тому, что валидатор будет сокращен и выброшен из сети. На момент написания имевшие место сокращения были исключительно результатом избыточных аппаратных настроек, где ключи для подписи хранились на двух отдельных машинах одновременно. Это может непреднамеренно привести к двойному голосу с помощью ваших ключей, что является нарушением, подпадающим под сокращение. + +Запуск клиента сверхбольшинства (любого клиента, используемого более чем 2/3 в сети) также несет риск потенциального сокращения в случае, если у этого клиента возникнет ошибка, приводящая к ветвлению цепи. Это может привести к неисправному ветвлению, которое будет завершено. Чтобы вернуться к запланированной цепочке, потребуется провести окружающее голосование путем применения усилий, чтобы отменить оконченный блок. Этого нарушения, подпадающего под сокращение, также можно избежать, просто запустив вместо этого миноритарный клиент. + +Эквивалентные ошибки в миноритарном клиенте никогда не будут окончательными и, таким образом, никогда не приведут к окружающему голосованию, а просто повлекут штрафы за бездействие, (не сокращение). + + + + + +Индивидуальные клиенты могут немного отличаться по производительности и пользовательскому интерфейсу, поскольку все они разрабатываются разными командами с использованием различных языков программирования. Стоит отметить, что «лучшего» среди них нет. Все производственные клиенты являются отличными образцами программного обеспечения, все выполняют те же основные функции для синхронизации и взаимодействия с блокчейном. + +Поскольку все производственные клиенты предоставляют одинаковые базовые функции, на самом деле очень важно, чтобы вы выбрали миноритарный клиент, то есть любой, который в настоящее время НЕ используется большинством валидаторов в сети. Это может показаться нелогичным, но работа с мажоритарным или надмажоритарным клиентом повышает риск сокращения в случае ошибки в клиенте. Работа с миноритарным клиентом резко ограничивает эти риски. + +Подробнее о том, почему разнообразие клиентов имеет ключевое значение + + + +Хотя виртуальный частный сервер (VPS) может использоваться в качестве замены домашнего оборудования, физический доступ и расположение клиента-валидатора имеет значение. Централизованные облачные решения, такие как Amazon Web Services или Digital Ocean, позволяют избежать необходимости приобретения и эксплуатации оборудования ценой централизации сети. + +Чем больше клиентов-валидаторов работает на одном централизованном решении облачного хранилища, тем более опасным это становится для этих пользователей. Любое событие, при котором эти поставщики будут отключены от сети, будь то атака, нормативные требования или просто отключение питания лии Интернета, приведет к тому, что каждый клиент-валидатор, который полагается на этот сервер, одновременно перейдет в автономный режим. + +Штрафы за офлайн пропорциональны тому, сколько других одновременно находятся в офлайн-режиме. Использование VPS значительно увеличивает риск того, что штрафы за офлайн будут более серьезными, и увеличивает риск квадратичной утечки или сокращения в случае достаточно большого отключения. Чтобы минимизировать свой собственный риск и риск для сети, пользователям настоятельно рекомендуется приобретать и эксплуатировать свое собственное оборудование. + + + + +Для снятия любого вида средств из сети Beacon требуется задать учетные данные для вывода. + +Новые дольщики устанавливают их во время генерации ключа и депозита. Существующие дольщики, которые еще не настраивали этого, могут обновить свои ключи для поддержки этой функциональности. + +Когда будут установлены полномочия на вывод средств, выплаты вознаграждений (накопленные ЕТН после первых 32) будут периодически автоматически распределяться на адрес для вывода средств. + +Чтобы разблокировать и получить весь баланс обратно, вы также должны завершить процесс выхода вашего валидатора. + +More on staking withdrawals + + +## Дополнительные ресурсы {#further-reading} + +- [Проблема разнообразия клиентов Ethereum](https://hackernoon.com/ethereums-client-diversity-problem) — _@emmanuelawosika, 2022 г._ +- [Помощь с разнообразием клиентов](https://www.attestant.io/posts/helping-client-diversity/) — _Джим Макдональд, 2022 г._ +- [Разнообразие клиентов на консенсусном уровне Ethereum](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) — _jmcook.eth, 2022 г._ +- [Как покупать оборудование для валидатора Ethereum](https://www.youtube.com/watch?v=C2wwu1IlhDc) — _EthStaker, 2022 г._ +- [Шаг за шагом: как присоединиться к тестовой сети Ethereum 2.0](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) — _Butta_ +- [Советы по предотвращению сокращения Eth2](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) — _Рауль Джордан, 2020 г._ diff --git a/public/content/translations/ru/staking/withdrawals/index.md b/public/content/translations/ru/staking/withdrawals/index.md new file mode 100644 index 00000000000..0fc7afdbea9 --- /dev/null +++ b/public/content/translations/ru/staking/withdrawals/index.md @@ -0,0 +1,218 @@ +--- +title: Вывод средств, использованных в стейкинге +description: Страница с общим описаанием того, что такое вывод средств из стейкинга, как он работает и что нужно сделать дольщику, чтобы получить свои вознаграждения. +lang: ru +template: staking +image: /staking/leslie-withdrawal.png +alt: Носорог Лесли со своими вознаграждениями за стейкинг +sidebarDepth: 2 +summaryPoints: + - Обновление Shanghai/Capella ввело возможность выводить средства из стейкинга в Ethereum. + - Операторы валидаторов должны указать адрес вывода, чтобы активировать эту функцию. + - Вознаграждения автоматически распределяются каждые несколько дней. + - Валидаторы, которые полностью выйдут из стейкинга, получат свой остаток баланса. +--- + + +Вывод средств из стейкинга стал возможен с обновлением Shanghai/Capella, которое произошло 12 апреля 2023 года. Подробнее об обновлении Shanghai/Capella + + +**Вывод средств из стейкинга** — это передача ЕТН из учетной записи валидатора на консенсусном уровне Ethereum (сеть Beacon) на уровень выполнения, где с ними могут проводиться транзакции. + +**Выплаты возгаграждений за остаток** свыше 32 ETH будут автоматически и регулярно отправляться на адрес для вывода средств, связанный с каждым валидатором, после его указания пользователем. Пользователи могут также **выйти из стейкинга полностью**, разблокировав свой полный баланс валидатора. + +## Вознаграждения за стейкинг {#staking-rewards} + +Выплаты вознаграждений автоматически обрабатываются для активных учетных записей валидаторов с максимальным эффективным балансом 32 ETH. + +Весь баланс свыше 32 ETH, заработанный через вознаграждения, фактически не вносит вклад в основной капитал и не увеличивает вес этого валидатора в сети, а потому автоматически выводится в качестве выплаты вознаграждения каждые несколько дней. Помимо предоставления одноразового адреса для вывода средств эти награды не требуют каких-либо действий от оператора валидатора. Все это инициируется на консенсусном уровне, поэтому никакого газа (платы за транзакцию) не требуется ни на одном этапе. + +### Как мы к этому пришли? {#how-did-we-get-here} + +За последние несколько лет Ethereum прошел несколько сетевых обновлений, перейдя к сети, защищенной самими ЕТН вместо энергоемкой добычи, как это было раньше. Участие в консенсусе на Ethereum теперь называется «стейкингом» (т. е. ставками, внесением долей), поскольку участники добровольно блокируют свои ЕТН, «ставя» их ради возможности участвовать в сети. Пользователи, которые следуют правилам, будут вознаграждены, а попытки обмана могут привести к наказаниям. + +С самого запуска контракта на депозиты для стейкинга в ноябре 2020 года некоторые отважные первопроходцы Ethereum добровольно заблокировали средства, чтобы активировать «валидаторы» — специальные учетные записи, которые имеют право официально подтверждать и предлагать блоки, следуя сетевым правилам. + +До обновления Shanghai/Capella было невозможно использовать поставленные ETH или получать к ним доступ. Но теперь можно при желании автоматически получать вознаграждения на выбранную учетную запись, а также в любое время снимать поставленные ЕТН. + +### Как подготовиться? {#how-do-i-prepare} + + + +### Важные уведомления {#important-notices} + +Предоставление адреса вывода является необходимым шагом для любой учетной записи валидатора, прежде чем она получит право на вывод ЕТН со своего баланса. + + + Каждой учетной записи валидатора можно назначить только один адрес вывода, один раз. Как только адрес выбран и передан на уровень консенсуса, его нельзя отменить или изменить. Дважды проверьте принадлежность и точность указанного адреса, прежде чем его отправлять. + + +Неуказание адреса не создает угрозы для ваших средств при условии, что ваша мнемоническая/кодовая фраза остается в безопасности офлайн и не раскрывается каким-либо образом. Если не указывать учетные данные для вывода средств, ЕТН просто останутся заблокированными в учетной записи валидатора, как это было до предоставления адреса вывода средств. + +## Полный выход из стейкинга {#exiting-staking-entirely} + +Предоставление адреса вывода средств требуется до того, как _любые_ средства смогут быть переведены с баланса учетной записи валидатора. + +Пользователи, желающие выйти из стейкинга полностью и вывести обратно свой полный баланс, должны также подписать и транслировать сообщение о «добровольном выходе» с использованием ключей валидатора, что запустит процесс выхода из стейкинга. Это делается с клиентом-валидатором и передается на ваш консенсусный узел, газ не требуется. + +Процесс выхода валидатора занимает различные промежутки времени в зависимости от того, сколько других выходят одновременно. После завершения эта учетная запись больше не будет нести ответственность за выполнение сетевых обязанностей валидатора, иметь права на вознаграждения и иметь ЕТН «в доле» стейкинга. При этом учетная запись будет отмечена как имеющая возможность полного вывода средств. + +Когда учетная запись помечается как подходящая для вывода средств и предоставляются учетные данные для вывода, пользователю остается только подождать, делать ничего не нужно. Учетные записи автоматически и постоянно перебираются предлагающими блоки и проверяются на наличие подходящих средств после выхода. Остаток на вашем балансе будет переведен в полном объеме («полный вывод») во время следующего перебора. + +## Когда можно будет выводить средства из стейкинга? {#when} + +Выводить средства из стейкинга можно уже сейчас! Функция вывода была включена в рамках обновления Shanghai/Capella, которое вышло 12 апреля 2023 года. + +Обновление Shanghai/Capella позволило возвращать ранее внесенные ETH на обычные учетные записи Ethereum. Это замкнуло цикл ликвидности в стейкинге и на шаг приблизило Ethereum к построению устойчивой, масштабируемой, безопасной децентрализованной экосистемы. + +- [Подробнее об истории Ethereum](/history/) +- [Подробнее о дорожной карте Ethereum](/roadmap/) + +## Как происходят платежи при выводе средств? {#how-do-withdrawals-work} + +Наличие у конкретного валидатора права на вывод средств определяется состоянием самой учетной записи валидатора. Участие пользователя не требуется, чтобы определять, нужно ли инициировать вывод средств с учетной записи. Весь процесс выполняется автоматически консенсусным уровнем в рамках непрерывного цикла. + +### Больше визуализации? {#visual-learner} + +Посмотрите объяснение выводов средств из стейкинга в Ethereum от Finematics: + + + +### «Перебор» валидаторов {#validator-sweeping} + +Когда для валидатор запланировано предложение следующего блока, он должен построить очередь вывода до 16 правомочных снятий. При этом все начинается с индекса валидатора 0, определяется наличие возможных выводов для данной учетной записи по правилам протокола, а при таком наличии запись добавляется в очередь. Валидатор, предлагающий следующий блок, будет продолжать работу там, где остановился предыдущий, и продвижение по порядку происходит бесконечно. + + +Представьте себе аналоговые часы. Срелка на часах указывает на час, движется в одном направлении, не пропускает ни одного часа, а в конце концов снова поворачивается к началу после того, как достигнут последний номер.

+Теперь вместо 1 до 12 представьте, что часы имеют от 0 до N (общее число счетов валидаторов, которые когда-либо были зарегистрированы на консенсусном уровне, более 500 000 по состоянию на январь 2023 г.).

+Стрелка на часах указывает на следующего валидатора, который должен быть проверен на подходящий вывод средств. Это все начинается с 0 и продвигается до конца, не пропуская ни одной учетной записи. Когда достигается последний валидатор, цикл продолжается с начала. +
+ +#### Проверка учетной записи для снятия средств {#checking-an-account-for-withdrawals} + +Когда инициатор перебирает валидаторы и проверяет наличие у них возможного вывода средств, каждый проверяемый валидатор оценивается по короткому ряду вопросов, чтобы определить, нужно ли инициировать вывод, а если да, то сколько ЕТН должно быть снято. + +1. **Указан ли адрес вывода?** Если адрес для вывода средств не указан, то учетная запись будет пропущена, а вывод средств не начнется. +2. **Валидатор вышел из системы и подходит для полного вывода средств?** Если валидатор полностью вышел, а мы достигли той эпохи, когда его учетная запись считается подходящей для вывода средств, будет обработан полный вывод. При этом весь оставшийся баланс будет переведен на адрес для вывода. +3. **Равен ли максимальный эффективный баланс 32?** Если в учетной записи есть учетные данные для вывода, она не вышла полностью из системы и имеет вознаграждения сверх 32 в состоянии ожидания, будет обработан частичный вывод средств, который переведет только вознаграждения сверх 32 на адрес вывода пользователя. + +Операторы валидаторов в течение жизненного цикла валидатора предпринимают только два действия, которые непосредственно влияют на этот поток: + +- Предоставление учетных данных для любого вывода средств +- Выход из сети, который вызовет полный вывод + +### Без газа {#gas-free} + +Такой подход к выводу средств из стейкинга позволяет избежать необходимости дольщикам вручную отправлять транзакцию с просьбой о выводе определенной суммы ЕТН. Это означает, что **газ (плата за транзакцию)** не требуется, а выводы средств не конкурируют за существующее пространство блока уровня исполнения. + +### Как часто я буду получать вознаграждения за стейкинг? {#how-soon} + +Максимальное количество выводов, которые можно обработать в одном блоке: 16. При таком темпе 115 200 выводов валидаторов могут обрабатываться в день (при условии, что нет пропущенных слотов). Как сказано выше, валидаторы, не имеющие права на вывод средств, будут пропущены, что сократит время, необходимое для завершения перебора валидаторов. + +Исходя из этого расчета, мы можем оценить время, которое потребуется для обработки заданного числа выводов: + + + +| Количество выводов | Время для завершения | +| :----------------: | :------------------: | +| 400 000 | 3,5 дня | +| 500 000 | 4,3 дня | +| 600 000 | 5,2 дня | +| 700 000 | 6,1 дня | +| 800 000 | 7,0 дня | + + + +Как видите, процесс замедляется при увеличении количества валидаторов в сети. Увеличение количества пропущенных слотов может пропорционально замедлить этот процесс, но в целом это будет представлять более медленный вариант возможных результатов. + +## Часто задаваемые вопросы {#faq} + + +Нет, предоставление учетных данных для вывода средств — однократное действие, после отправки их нельзя изменить. + + + +При установке адреса для вывода на уровне исполнения учетные данные для вывода у этого валидатора меняются навсегда. Это означает, что старые учетные данные больше не будут работать, а новые будут использоваться непосредственно для учетной записи уровня исполнения. + +Адресом вывода может быть либо смарт-контракт (контролируемый своим кодом), либо своя внешняя учетная запись (EOA, контролируемая своим приватным ключом). В настоящее время эти учетные записи не имеют возможности передавать сообщение обратно на консенсусный уровень, который сигнализировал бы об изменении учетных данных валидатора, и добавление этой функции добавило бы ненужную сложность к протоколу. + +В качестве альтернативы изменению адреса вывода для конкретного валидатора пользователи могут установить смарт-контракт в качестве адреса вывода, который мог бы обрабатывать ротацию ключей, например Safe. Пользователи, которые настраивают для своих средств собственную учетную запись EOA, могут выполнить полный выход, чтобы вывести все свои внесенные в стейкинг средства, а затем повторно внести их, используя новые учетные данные. + + + + +Если вы являетесь частью стейкинг-пула или удерживаете стейкинг-токены, то вы должны спросить у вашего поставщика более подробную информацию о том, как обрабатывается вывод из стейкинга, так как каждая служба работает по-своему. + +Как правило, пользователи должны иметь возможность свободно вернуть свои основные использованные в стейкинге ЕТН или изменить поставщика услуг стейкинга, которого они используют. Если конкретный пул становится слишком большим, средства могут быть выведены, выкуплены и повторно использованы в стейкинге у меньшего поставщика. А при наличии достаточного количества накопленных ЕТН вы можете заниматься стейкингом дома. + + + + +Да, если у вашего валидатора указан адрес вывода средств. Его необходимо указать один раз, чтобы активировать возможность вывода средств. Затем выплаты вознаграждений будут автоматически срабатывать каждые несколько дней при каждом переборе валидаторов. + + + + +Нет. Если ваш валидатор все еще активен в сети, полный вывод не произойдет автоматически. Для этого необходимо вручную инициировать добровольный выход. + +Как только валидатор завершит процесс выхода (и если у учетной записи есть учетные данные для вывода средств), лишь тогда остаток будет выведен во время следующего перебора валидаторов. + + + + +Вывод средств производится автоматически, передавая все ЕТН, которые не вносят активного вклада в стейкинг. Это включает весь баланс на учетных записях, которые завершили процесс выхода. + +Запросить вывод конкретной желаемой суммы ETH вручную невозможно. + + + + +Операторам валидаторов рекомендуется посетить страницу Вывод средств с панели запуска стейкинга, на которой можно найти более подробную информацию о том, как подготовить валидатор к выводу средств. Подготовка, время событий и дополнительная информация о том, как работает вывод средств. + +Чтобы сначала опробовать свою конфигурацию в тестовой сети, посетите панель запуска стейкинга в тестовой сети Goerli. + + + + +Нет. После выхода валидатора и вывода всего его баланса все дополнительные средства, размещаемые на этом валидаторе, будут автоматически переводиться на адрес для снятия средств во время следующего перебора валидаторов. Чтобы внести в стейкинг ETH заново, потребуется активировать новый валидатор. + + +## Дополнительная литература {#further-reading} + +- [Вывод средств с панели запуска стейкинга](https://launchpad.ethereum.org/withdrawals) +- [EIP-4895: вывод средств в сети Beacon в виде операций](https://eips.ethereum.org/EIPS/eip-4895) +- [Ethereum Cat Herders — об обновлении Shanghai](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) +- [PEEPanEIP #94: вывод ETH из стейкинга (тестирование), Potuz и Сяо-Вэй Ван](https://www.youtube.com/watch?v=G8UstwmGtyE) +- [PEEPanEIP#68: EIP-4895: вывод средств в сети Beacon как операции, Алекс Стокс](https://www.youtube.com/watch?v=CcL9RJBljUs) +- [Понимание эффективного баланса валидатора](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/ru/web3/index.md b/public/content/translations/ru/web3/index.md similarity index 100% rename from src/content/translations/ru/web3/index.md rename to public/content/translations/ru/web3/index.md diff --git a/src/content/translations/ru/zero-knowledge-proofs/index.md b/public/content/translations/ru/zero-knowledge-proofs/index.md similarity index 100% rename from src/content/translations/ru/zero-knowledge-proofs/index.md rename to public/content/translations/ru/zero-knowledge-proofs/index.md diff --git a/src/content/translations/se/dapps/index.md b/public/content/translations/se/dapps/index.md similarity index 100% rename from src/content/translations/se/dapps/index.md rename to public/content/translations/se/dapps/index.md diff --git a/src/content/translations/se/enterprise/index.md b/public/content/translations/se/enterprise/index.md similarity index 100% rename from src/content/translations/se/enterprise/index.md rename to public/content/translations/se/enterprise/index.md diff --git a/src/content/translations/se/learn/index.md b/public/content/translations/se/learn/index.md similarity index 100% rename from src/content/translations/se/learn/index.md rename to public/content/translations/se/learn/index.md diff --git a/public/content/translations/se/nft/index.md b/public/content/translations/se/nft/index.md new file mode 100644 index 00000000000..bb3d403b31c --- /dev/null +++ b/public/content/translations/se/nft/index.md @@ -0,0 +1,356 @@ +--- +title: Icke-fungibla polletter (NFT) +description: En översikt över NFT:er på Ethereum +lang: se +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: En Eth-logotyp visas via hologram. +summaryPoint1: Ett sätt att representera något unikt, som en Ethereum-baserad tillgång. +summaryPoint2: NFT:er ger mer kraft till innehållsskapare än någonsin tidigare. +summaryPoint3: Drivs av smarta kontrakt på Ethereums blockkedja. +--- + +NFT:er tar för närvarande den digitala konst- och samlarvärlden med storm. Digitala artister ser sina liv förändras tack vare enorm försäljning till en ny kryptopublik. Och kändisar hänger på tåget när de ser en ny möjlighet att bygga relationer med fansen. Men digital konst är bara ett sätt att använda NFT:er. De kan verkligen användas för att representera äganderätt till vilken unik tillgång som helst, som en officiell handling för ett föremål i den digitala eller fysiska sfären. + +Om Andy Warhol hade fötts i slutet av 90-talet, skulle han förmodligen ha skapat sin Campbell-soppa som en NFT. Det är bara en tidsfråga innan Nike lägger ut en serie Jordans på Ethereum. Och inom en snar framtid kanske du kan bevisa att du är ägare till din bil med hjälp av en NFT. + +## Vad är en NFT? {#what-are-nfts} + +NFT:er är polletter, eller tokens på engelska, som vi kan använda för att representera äganderätten till unika föremål. De låter oss pollettisera, det vill säga, skapa tokens för konst, samlarföremål eller till och med fastigheter. Ägarskap av en tillgång säkras av Ethereums blockkedja – ingen kan modifiera ägarregistret och eller kopiera/klistra in en ny NFT för att skapa den. + +NFT är en akronym för Non-Fungible Token, en icke-fungibel pollett. Icke-fungibel är en ekonomisk term som du kan använda för att beskriva saker som dina möbler, en låtfil eller din dator. Dessa saker är inte utbytbara mot andra föremål eftersom de har unika egenskaper. + +Fungibla föremål, å andra sidan, kan bytas ut eftersom det är deras värde som definierar, inte deras unika egenskaper. Till exempel är ETH eller dollar fungibla eftersom 1 ETH/1 USD kan bytas mot en annan 1 ETH/1 USD. + + + +## Internet för tillgångar {#internet-of-assets} + +NFT och Ethereum löser några av de problem som finns på internet idag. Allteftersom allt blir mer digitalt finns det ett behov av att replikera egenskaperna hos fysiska objekt som brist på tillgång, unikhet och bevis på ägande. För att inte tala om att digitala föremål ofta bara fungerar när de är kopplade till deras produkt. Du kan till exempel inte sälja en iTunes-mp3-fil som du har köpt eller så kan du inte byta ett företags lojalitetspoäng mot krediter på en annan plattform, även om det finns en marknad för det. + +Så här ser ett internet av NFT:er ut jämfört med internet som de flesta av oss använder idag ... + +### En jämförelse {#nft-comparison} + +| Ett NFT-internet | Internet idag | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| NFT:er är digitalt unika, det finns inte två NFT:er som är den andra lik. | En kopia av en fil, som en .mp3 eller .jpg, är samma som originalet. | +| Varje NFT måste ha en ägare och detta är offentligt registrerat och lätt för alla att verifiera. | Ägarregister för digitala föremål lagras på servrar som kontrolleras av institutioner – du måste lita på vad de lovar. | +| NFT:er är kompatibla med allt som byggts med hjälp av Ethereum. En NFT-biljett till ett evenemang kan handlas på alla Ethereum-marknader, mot en helt annan NFT. Du kan byta ett konstföremål mot en biljett till ett evenemang! | Företag med digitala objekt måste bygga sin egen infrastruktur. Till exempel skulle en app som utfärdar digitala biljetter till evenemang behöva bygga sin egen handelsplats för biljetter. | +| Innehållsskapare kan sälja sina verk var som helst och få tillgång till en global marknad. | Kreatörer förlitar sig på infrastrukturen och distributionen av de plattformar de använder. Dessa är ofta föremål för användarvillkor och geografiska begränsningar. | +| Kreatörer kan behålla äganderätten till sitt eget verk och göra anspråk på återförsäljningsavgifter direkt. | Plattformar, som musikstreamingtjänster, behåller huvuddelen av vinsten från försäljningen. | +| Föremål kan användas på överraskande sätt. Du kan till exempel använda digitala konstverk som säkerhet i ett decentraliserat lån. | | + +### Exempel på NFT:er {#nft-examples} + +NFT-världen är relativt ny. I teorin omfattar NFT allt som är unikt och där man behöver kunna bevisa ägandeskap. Här är några exempel på NFT:er som finns idag, för att hjälpa dig att förstå vad det egentligen är: + +- [Ett unikt digitalt konstverk](https://foundation.app/artworks) +- [Ett unikt par sneakers i en modelinje med begränsad upplaga](https://www.metagrail.co/auctions/91cf83fb-3477-4155-aae8-6dcb9b853397) +- [Ett föremål som används i ett spel](https://market.decentraland.org/) +- [En uppsats](https://zora.co/0x517bab7661C315C63C6465EEd1b4248e6f7FE183/145) +- [Ett digitalt samlarobjekt](https://www.larvalabs.com/cryptopunks/details/1) +- [Ett domännamn](https://app.ens.domains/name/ethereum.eth) +- [En biljett som ger dig tillgång till ett evenemang eller en kupong](https://www.yellowheart.io/) +- [Köp verkliga varor](https://www.tangible.store/) +- [Andelar i fastigheter](https://realt.co/) +- [Examensbevis](https://www.degreecert.com/) +- [Musik royalties via NFTs](https://opulous.org/) +- [Move 2 Earn](https://yeticoineth.com/about.html) +- [Digital identitet](https://photochromic.io/) + +### exempel på ethereum.org {#ethereum-org-examples} + +Exempel på ethereum.org + +#### POAPs (Proof of Attendance Protocol) {#poaps} + +Om du bidrar till ethereum.org kan du göra anspråk på en NFT för POAP. Det här är samlarobjekt som bevisar att du deltog i ett evenemang. Vissa kryptoträffar har använt POAP:er som en form av biljett till evenemangen. Vissa kryptoträffar har använt POAP:er som en typ av biljett till evenemangen. + +![ethereum.org POAP](./poap.png) + +#### ethereum.eth {#ethereum-dot-eth} + +Denna webbplats har ett alternativt domännamn som drivs med hjälp av NFT:er,**ethereum.eth**. Vår `.org`-adress hanteras centralt av en leverantör av domännamnssystem (DNS), medan ethereum`.eth` är registrerad på Ethereum via Ethereum Name Service (ENS). Och det ägs och förvaltas av oss. [Kontrollera vår ENS-historik](https://app.ens.domains/name/ethereum.eth) + +[Mer om ENS](https://app.ens.domains) + +## Hur fungerar NFT:er? {#how-nfts-work} + +NFT:er skiljer sig från ERC-20-polletter, såsom DAI eller LINK, på grund av att varje enskild polett är helt unik och inte delbar. NFT:er ger möjligheten att tilldela eller göra anspråk på ägande av alla unika digitala data. Dessa är spårbara genom att använda Ethereums blockkedja som en offentlig reskontra. En NFT präglas av digitala objekt som en representation av digitala eller icke-digitala tillgångar. Till exempel kan en NFT representera: + +- Digital konst: + - GIFs + - Samlarföremål + - Musik + - Videor +- Verkliga fysiska föremål: + - Handlingar till en bil + - Biljetter till ett verkligt evenemang + - Pollettiserade fakturor + - Juridiska dokument + - Signaturer +- Otroligt många flera alternativ för att öka din kreativitet! + +Ägarskap av NFT:er hanteras via ett unikt ID och metadata som ingen annan pollett kan kopiera. NFT:er skapas (präglas, som mynt) genom smarta kontrakt som tilldelar ägande och som ser till att NFT:er kan överföras mellan personer och enheter. När någon skapar eller präglar en NFT, så exekverar de kod som är lagrad i smarta kontrakt som överensstämmer med olika standarder, exempelvis [ERC-721](/developers/docs/standards/tokens/erc-721/). Denna information läggs till i den blockkedja där NFT hanteras. Präglingsprocessen, från en hög nivå, innefattar följande steg som den går igenom: + +- Skapar ett nytt block +- Validerar information +- Registrera information i blockkedjan + +NFT:er har några speciella egenskaper: + +- Varje pollett som präglas har en unik identifierare som är direkt kopplad till en Ethereum-adress. +- De är inte direkt utbytbara med andra polletter 1:1. Till exempel är 1 ETH exakt samma som en annan ETH. Detta är inte fallet med NFT:er. +- Varje pollett har en ägare och denna information är enkel att verifiera. +- De finns på Ethereum och kan köpas och säljas på vilken Ethereum-baserad NFT-marknad som helst. + +Med andra ord, om du _äger_ en NFT: + +- Du kan enkelt bevisa att du äger den. + - Att bevisa att du äger en NFT är mycket likt att bevisa att du har ETH på ditt konto. + - Eller till exempel, låt oss säga att du köper en NFT och äganderätten till denna unika pollett överförs till din plånbok via din offentliga adress. + - Polletten bevisar att din kopia av den digitala filen är originalet. + - Din privata nyckel är ett bevis på att du äger originalet. + - Innehållsskaparens offentliga nyckel fungerar som ett äkthetscertifikat för just den digitala artefakten. + - Skaparens offentliga nyckel är i huvudsak en permanent del av pollettens historia. Skaparens offentliga nyckel kan visa att den pollett du har skapades av en viss individ, vilket bidrar till dess marknadsvärde (kontra en förfalskning). + - Ett annat sätt att tänka vad gäller bevis på att du äger NFT, är genom att signera meddelanden för att bevisa att du äger den privata nyckeln bakom adressen. + - Som nämnts ovan är din privata nyckel ett bevis på äganderätten till originalet. Detta bevisar för oss att de privata nycklarna bakom den adressen är de som kontrollerar NFT:n. + - Ett signerat meddelande kan användas som bevis på att du äger dina privata nycklar utan att avslöja dem för någon och därmed bevisa att du även äger NFT:n! +- Ingen kan manipulera den på något sätt. +- Du kan sälja den, och i vissa fall kommer detta att ge den ursprungliga skaparen återförsäljningsroyalty. +- Eller så kan du behålla den för evigt, trygg i vetskapen om att din tillgång är säkrad av din plånbok på Ethereum. + +Och om du _skapar_ en NFT: + +- Du kan enkelt bevisa att du skapade den. +- Du bestämmer tillgången. +- Du kan tjäna royalties varje gång den säljs. +- Du kan sälja den på vilken NFT-marknad som helst eller peer-to-peer. Du är inte låst till någon plattform och du behöver inte någon som mellanhand. + +### Brist på tillgång {#scarcity} + +Skaparen av en NFT får bestämma hur mycket eller hur många det ska finnas av den. + +Tänk till exempel på en biljett till ett sportevenemang. Precis som en arrangör av ett evenemang kan välja hur många biljetter som ska säljas, kan skaparen av en NFT bestämma hur många kopior det ska finnas av den. Ibland är dessa exakta kopior, till exempel 5 000 normala entrébiljetter. Ibland präglas flera som är väldigt lika, men var och en lite olika, till exempel en biljett med en tilldelad plats. I ett annat fall kan skaparen vilja skapa en NFT där endast en är präglad som en speciell sällsynt samlarobjekt. + +I dessa fall skulle varje NFT fortfarande ha en unik identifierare (som en streckkod på en traditionell "biljett"), med endast en ägare. Den avsedda bristen på NFT spelar roll, och det är upp till skaparen. En skapare kan ha för avsikt att göra varje NFT helt unik för att skapa brist, eller ha skäl att producera flera tusen kopior. Kom ihåg att all denna information är offentlig. + +### Royalties {#royalties} + +Vissa NFTs kommer automatiskt att betala ut royalties till sina skapare när de säljs. Detta är fortfarande ett koncept under utveckling, men det är ett av de mest kraftfulla. Ursprungliga ägare till[EulerBeats Originals](https://eulerbeats.com/)tjäna 8 % royalty varje gång NFT säljs vidare. Och vissa plattformar, som [Foundation](https://foundation.app) och [Zora](https://zora.co/), stödja royalties för sina artister. + +Detta är helt automatiskt så kreatörer kan bara luta sig tillbaka och tjäna royalties när deras arbete säljs från person till person. För närvarande är det väldigt manuellt att ta reda på royalties och det saknar noggrannhet – många kreatörer får inte betalt vad de förtjänar. Om din NFT har en royalty inprogrammerad kommer du aldrig att missa någon royaltybetalning. + +## Vad används NFT till? {#nft-use-cases} + +Här är mer information om några av de bättre utvecklade användningsfallen och visionerna för NFTs på Ethereum. + +- [Digitalt innehåll](#nfts-for-creators) +- [Föremål inne i spel](#nft-gaming) +- [Domännamn](#nft-domains) +- [Fysiska föremål](#nft-physical-items) +- [Investeringar och säkerheter](#nfts-and-defi) +- [Tokengating](#tokengating) + + + +### Maximera intäkterna för kreatörer {#nfts-for-creators} + +Den största användningen av NFT:er sker idag inom världen för digitalt innehåll. Det beror på att branschen idag är splittrad. Innehållsskapare ser sin vinst och intjäningspotential slukas av plattformar. + +En konstär eller artist som publicerar arbete på ett socialt nätverk tjänar pengar på plattformen som säljer annonser till artistens följare. De får exponering i gengäld, men exponeringen betalar inte räkningarna. + +NFT: s driver en ny skaparekonomi där kreatörer inte lämnar över ägandet av sitt innehåll till plattformarna de använder för att publicera det. Ägarskap är inbakat i själva innehållet. + +När de säljer sitt innehåll går pengarna direkt till dem. Om den nya ägaren sedan säljer NFT, kan den ursprungliga skaparen till och med automatiskt få royalties. Detta garanteras varje gång den säljs eftersom skaparens adress är en del av pollettens metadata – metadata som inte kan ändras. + + +
Utforska, köp eller skapa din egen NFT-konst/dina egna NFT-samlarföremål ...
+ + Utforska NFT-konst + +
+ +#### Problemet med att kopiera/klistra in {#nfts-copy-paste} + +Kritiker tar ofta upp det faktum att NFT:er "är dumma" vanligtvis tillsammans med en bild av dem själva med skärmdumpar av ett NFT-konstverk. "Titta, nu har jag samma bild gratis!", säger de självbelåtet. + +Ja, på ett vis kanske det är så. Men gör googlingen av en bild av Picassos målning Guernica dig till den nya, stolta ägaren av ett konsthistoriens största verk värt flera miljoner dollar? + +Att faktiskt äga den äkta varan är i slutändan ldet som räknas och det är marknaden som bestämmer hur mycket den är värd. Ju fler gånger det tas skärmdumpar av innehåll och ju mer det delas och används av allmänheten, desto mer värde får det. + +Att äga en faktisk sak som kan verifieras har alltid mer värde än att inte göra det. + + + +### Öka spelpotentialen {#nft-gaming} + +NFT:er har skapat ett stort intresse bland spelutvecklare. NFT:er kan tillhandahålla register över ägande av föremål i spelet, driva på ekonomin i spelet och ge spelarna en mängd fördelar. + +I många vanliga spel kan du köpa saker som du kan använda inne i spelet. Men om det objektet skulle har varit en NFT skulle du ha kunnat få igen dina pengar genom att sälja det när du har spelat klart. Du kan till och med göra en vinst om just det objektet blir mer önskvärt. + +Spelutvecklare skulle kunna tjäna – som utgivare av NFT – en royalty varje gång ett föremål säljs vidare på den öppna marknaden. Detta skapar en mer ömsesidigt fördelaktig affärsmodell där både spelare och utvecklare kan tjäna pengar på den sekundära NFT-marknaden. + +Detta betyder också att om ett spel inte längre underhålls av utvecklarna, förblir de föremål du har samlat ihop dina. + +I slutändan kan de föremål som du svettas för i spelet alltid finnas kvar, även om spelet i sig inte finns kvar. Även om ett spel inte längre underhålls, kommer dina föremål alltid att vara i din ägo. Detta innebär att föremål i spelet blir digitala samlarföremål och har ett värde utanför spelet. + +Decentraland, ett virtuell verklighetsspel, låter dig till och med köpa NFT:er som representerar virtuella tomter som du kan använda hur du vill. + + +
Kolla in Ethereum-spel, som drivs med hjälp av NFT:er ...
+ + Utforska NFT-spel + +
+ + + +### Skapa Ethereum-adresser som är lättare att komma ihåg {#nft-domains} + +Ethereums namntjänst använder NFT för att ge din Ethereum-adress ett namn som är lättare att komma ihåg, som `mywallet.eth`. Det betyder att du kan be någon att skicka ETH till dig via `mywallet.eth` i ställe för `0x123456789.....`. + +Detta fungerar på liknande sätt som ett domännamn för en webbplats som gör en IP-adress enklare att komma ihåg. Och precis som domäner har ENS-namn ett värde, vanligtvis baserat på längd och relevans. Med ENS behöver du inget domänregister för att underlätta överföringen av ägandeskap. Istället kan du handla med dina ENS-namn på en NFT-marknadsplats. + +Ditt ENS-namn kan: + +- Ta emot kryptovaluta och andra NFT:er. +- Peka mot en decentraliserad webbplats, som[ethereum.eth](https://ethereum.eth.link). [Mer om att decentralisera din webbplats](https://docs.ipfs.io/how-to/websites-on-ipfs/link-a-domain/#domain-name-service-dns) +- Lagra eventuell godtycklig information, inklusive profilinformation som e-postadresser och Twitter-handtag. + + + +### Fysiska föremål {#nft-physical-items} + +Pollettisering av fysiska föremål är ännu inte lika utvecklad som deras digitala motsvarigheter. Men det finns massor av projekt som utforskar pollettiseringen av fastigheter, unika modeartiklar och många andra saker. + +Eftersom NFT:er i huvudsak är transaktionshandlingar kan du en dag kan köpa en bil eller ett hem med genom att använda ETH och få handlingen som en NFT i gengäld (i samma transaktion). När saker och ting blir allt mer högteknologiska är det inte svårt att föreställa sig en värld där din Ethereum-plånbok blir nyckeln till din bil eller hem – där din dörr låses upp av det kryptografiska beviset på ägande. + +När det finns värdefulla tillgångar som bilar och egendom representerade på Ethereum, kan du använda NFT:er som säkerhet i decentraliserade lån. Detta är särskilt användbart om du inte är rik på kontanter eller kryptovalutor medn äger fysiska föremål av värde. [Mer om DeFi](/defi/) + + + +### NFT:er och DeFi {#nfts-and-defi} + +NFT-världen och världen av [decentraliserade finanser (DeFi)](/defi/) börjar arbeta tillsammans på ett flertal intressanta sätt. + +#### NFT-stödda lån {#nft-backed-loans} + +Det finns DeFi-applikationer som låter dig låna pengar genom att använda säkerheter. Till exempel kan du ställa en säkerhet på 10 ETH för att du ska kunna låna 5 000 DAI ([en så kallad stablecoin](/stablecoins/)). Detta garanterar att långivaren får sina pengar tillbaka – om låntagaren inte betalar tillbaka i DAI skickas säkerheten till långivaren. Men alla har inte tillräckligt med krypto för att använda som säkerhet. + +Projekt börjar utforska möjligheten att använda NFT:er som säkerhet istället. Föreställ dig att du köpte en sällsynt CryptoPunk NFT för länge sedan – de kan vara värda tusentals dollar i dagens priser. Genom att ställa detta som säkerhet kan du få tillgång till ett lån med samma uppsättning av regler. Om du inte betalar tillbaka DAI kommer din CryptoPunk att skickas till långivaren som säkerhet. Detta kan så småningom fungera med allt du pollettiserar som en NFT. + +Och detta är inte svårt för Ethereum, eftersom båda världarna (NFT och DeFi) delar samma infrastruktur. + +#### Delägande {#fractional-ownership} + +NFT-skapare kan också skapa "aktier" för sin NFT:er. Detta ger investerare och fans möjlighet att äga en del av en NFT utan att behöva köpa hela objektet. Detta ger ännu fler möjligheter för både personer som myntar NFT och samlare. + +- Fraktionerade NFT:er kan handlas på en [>DEX](/defi/#dex), som Uniswap, inte bara på [NFT-marknadsplatser](/dapps?category=collectibles). Det innebär fler köpare och säljare. +- En NFT:s totala pris kan definieras med hjälp av priset för varje andel. +- Du har större möjlighet att äga och göra vinster på saker du bryr dig om. Det är svårare att hamna i situationer där du inte längre har råd om du äger NFT:er. + +Detta är fortfarande experimentellt men du kan lära dig mer om ägande av fraktionerade NFT:er på följande börser: + +- [NIFTEX](https://landing.niftex.com/) +- [NFTX](https://gallery.nftx.org/) + +I teorin skulle detta låsa upp möjligheten att göra en mängd olika saker, som att äga en del av en Picasso-målning. Du skulle bli aktieägare i en Picasso-NFT, vilket betyder att du skulle ha något att säga till om vad gäller det objektet, som intäktsdelning. Det är mycket troligt att du inom en snar framtid kommer att äga en andel i en NFT och tack vare det gå med i en decentraliserad autonom organisation (DAO) för hantering av den tillgången. + +Dessa är Ethereum-drivna organisationer som tillåter främlingar, som globala aktieägare av en tillgång, att samordna sig på ett säkert sätt, utan att nödvändigtvis behöva lita på de andra personerna. Det beror på att inte en enda krona kan spenderas utan gruppens godkännande. + +Som vi nämnde är detta ett område som håller på att utvecklas. NFT, DAO, fraktionerade polletter ... Alla utvecklas i olika takt. Men all infrastruktur för dem finns redan och de kan enkelt fungera tillsammans eftersom de alla talar samma språk: Ethereum. Så håll koll på detta område. + +[Mer om DAOs](/dao/) + +### Äkthetsintyg {#certificates} + +Företag som erbjuder falska certifikat för universitetsexamen är enligt uppgift en miljardindustri. Men NFT:er kan hjälpa till att bekämpa detta. NFT:er kan vara ett säkert och snabbt sätt att verifiera en persons examensbevis. + +Tokengating är ett sätt att begränsa tillgången till något och där kan NFT:er används för att få åtkomst till det som är begränsat. [Trinity Business School (TBS) i Irland planerar också att erbjuda NFT:er från 2023](https://trinitynews.ie/2022/04/business-school-to-offer-degree-nfts/). + + + +### Tokengating {#tokengating} + +Tokengating är ett sätt att begränsa tillgången till något och där kan NFT: er används för att få åtkomst till det som är begränsat. Dessa saker kan variera kraftigt beroende på plattform men några populära exempel är begränsat innehåll (gated content), privata chattservrar och inom e-handeln, exklusiva produkter. + +En plattform som använder sig av tokengating brukar be dig ansluta din plånbok för att bevisa att du äger den NFT som krävs. Om du har den NFT du behöver så får du åtkomst. Om du inte har det, kommer innehållet att förbli låst. På grund av att varje NFT är unik går det inte att förfalska ägarskap för att få tillgång till innehållet. + +Eftersom NFT:er befinner sig på Ethereums plattform, kan de användas för att låsa upp Ethereum pollettportar (tokengates) på alla plattformar som använder dem. En enskild NFT du äger skulle kunna låsa upp begränsat innehåll som finns bakom en port, exempelvis privata chattservrar eller andra exklusiva produkter på helt olika webbplatser eller applikationer. + +Om prägling och distribuering av NFT:er handlar om generering som görs av gemenskapen (community) eller gemenskapsdigitalisering, handlar tokengating – att låsa innehåll bakom portar – om att vårda gemenskapen och se till att den blir framgångsrik. NFT:er ses mer som ett verktyg för medlemskap eller lojalitet och de är ett bra sätt att leverera de belöningar som är kopplade till dem, på ett pålitligt sätt. + +#### Exempel + +- [Collab.land](https://collab.land/) utför tokengating för chattservrar för Discord eller grupper på Telegram +- [Unlock protocol](https://unlock-protocol.com/) är ett protokoll för tokengating +- [Shopify](https://help.shopify.com/en/manual/products/digital-service-product/nfts) har en växande lista med appar som tillåter handlare använda pollettportar för att få åtkomst till produkter och rabatter + + + +## Ethereum och NFT:er {#ethereum-and-nfts} + +Ethereum gör det möjligt för NFT:er att fungera av ett antal anledningar: + +- Transaktionshistorik och metadata för polletter är offentligt verifierbara – det är enkelt att bevisa ägarhistoriken. +- När en transaktion väl har bekräftats är det nästan omöjligt att manipulera den informationen för att "stjäla" äganderätten. +- Handel med NFT kan ske peer-to-peer utan att behöva plattformar som kan ta stora provisioner som kompensation. +- Alla Ethereum-produkter delar samma "backend". Med andra ord kan alla Ethereum-produkter lätt förstå varandra – detta gör NFT:er kan användas för en uppsjö av olika produkter. Du kan köpa en NFT på en produkt och sälja den på en annan på ett enkelt sätt. Som kreatör kan du lista dina NFT:er på flera produkter samtidigt – varje produkt kommer att ha den senaste ägarinformationen. +- Ethereum ligger aldrig nere, vilket betyder att dina polletter alltid kommer att vara tillgängliga för försäljning. + +## Miljöpåverkan av NFT:er {#environmental-impact-nfts} + +Att skapa och överföra NFT:er är precis som en Ethereum-transaktion - prägling, köp, byte eller interaktioner med NFT:er konsumerar inte direkt någon energi. Sedan [The Merge](/roadmap/merge) är Ethereum en blockkedja med låg energiförbrukning, vilket innebär att miljöeffekterna av att använda NFT:er är försumbara. + +[Mer om Ethereums energikonsumtion](/energy-consumption/). + +### Skyll inte på NFT:erna {#nft-qualities} + +Hela NFT-ekosystemet fungerar eftersom Ethereum är decentraliserat och säkert. + +Decentraliserat vilket innebär att du och alla andra kan verifiera att du äger något. Allt utan att lita på eller bevilja vårdnad till en tredje part som kan införa sina egna regler efter behag. Det betyder också att dina NFT kan flyttas och användas för en rad olika produkter och på en rad olika marknader. + +Säker betyder att ingen kan kopiera/klistra in dina NFT eller stjäla dem. + +Dessa egenskaper hos Ethereum gör det möjligt att digitalt äga unika föremål och få ett rättvist pris för ditt innehåll. Ethereum skyddar dina tillgångar genom att använda en decentraliserad mekanism för konsensus som involverar ["proof-of-stake"](/developers/docs/consensus-mechanisms/pos). Det är en metod med lågt koldioxidavtryck som avgör vem som kan lägga till ett block med transaktioner i kedjan. Något som anses vara mer säkert än det mer energislukande alternativet, ["proof-of-work"](/developers/docs/consensus-mechanisms/pow). NFT:er kopplas normalt ihop med en hög energiförbrukning eftersom Ethereum tidigare använde proof-of-work som säkringsmetod. Detta stämmer inte längre. + +#### Prägla NFT:er {#minting-nfts} + +När du skapar en NFT måste några saker hända: + +- De måste bekräftas som en tillgång i blockkedjan. +- Ägarens kontosaldo måste uppdateras för att inkludera den tillgången. Detta gör det möjligt att handla med dem vid ett senare tillfälle, eller att verifiera dem som "ägda av någon". +- Transaktionerna som bekräftar ovanstående behöver läggas till ett block och bli permanenta i kedjan. +- Blocket måste bekräftas av alla i nätverket som "korrekt". Denna konsensus eliminerar behovet av mellanhänder eftersom nätverket håller med om att dina NFT existerar och tillhör dig. Och de finns i kedjan så vem som helst kan kontrollera dem. Detta är ett av de sätt som Ethereum hjälper NFT-kreatörer att maximera sina intäkter på. + +Alla dessa arbetsuppgifter utförs av blockskapare och blockvaliderare. Blockförslagsställare lägger till din NFT-transaktion till ett block och sprider informationen till resten av nätverket. Validerarna kontrollerar att transaktionen är korrekt och lägger därefter till den i sina databaser. Det finns flera krypto-ekonomiska incitament på plats som säkerställer att validerarna agerar på ett ärligt sätt. Annars skulle vem som helst kunna hävda att de äger den NFT som du precis präglat och genom bedrägeri överföra ägarskapet. + +#### NFT-säkerhet {#nft-security} + +Ethereums säkerhet baseras på proof-of-stake. Systemet är utformat för att ekonomiskt avskräcka från skadliga handlingar och göra Ethereum manipuleringssäkert. Det är detta som gör NFT möjligt. När blocket som innehåller din NFT-transaktion har slutförts skulle det kosta en angripare miljontals ETH att ändra den. Alla som kör Ethereum-programvara skulle omedelbart kunna upptäcka oärlig manipulering med en NFT, och den skadliga aktören skulle straffas ekonomiskt och kastas ut. + +Säkerhetsfrågor relaterade till NFT är oftast relaterade till phishing-bedrägerier, sårbarheter i smarta kontrakt eller användarfel (som att oavsiktligt röjda privata nycklar). Detta gör att god plånbokssäkerhet är A och O för NFT-ägare. + + + Mer om säkerhet + + +## Bygg med NFT:er {#build-with-nfts} + +De flesta NFT:er är byggda med en konsekvent standard som kallas [ERC-721](/developers/docs/standards/tokens/erc-721/). Men det finns andra standarder som du kanske vill titta närmare på. Standaren [ERC-1155](/developers/docs/standards/tokens/erc-1155/) tillåter halvfungibla polletter vilket är särskilt användbart inom spelområdet. Och på senare tid har förslag gällande [EIP-2309](https://eips.ethereum.org/EIPS/eip-2309) börjat komma in, för att göra präglingen av NFT:er mycket effektivare. Denna standard låter dig prägla så många du vill i en transaktion! + +## Läs vidare {#further-reading} + +- [Kryptokonstdata](https://cryptoart.io/data) – _Richard Chen, uppdateras automatiskt_ +- [OpenSea: the NFT Bible](https://opensea.io/blog/guides/non-fungible-tokens/) – _Devin Fizner, 10 januari 2020_ +- [A beginner's guide to NFTs](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, januari 2020_ +- [Everything you need to know about the metaverse](https://foundation.app/blog/enter-the-metaverse) – _Foundation-teamet, foundation.app_ +- [Nej, kryptokonstnärer skadar inte planeten](https://medium.com/superrare/no-cryptoartists-arent-harming-the-planet-43182f72fc61) +- [Ethereums energikonsumtion](/energy-consumption/) +- [Ethereum NFT APIs](https://www.alchemy.com/list-of/nft-apis-on-ethereum) - _Alchemy_ + + diff --git a/src/content/translations/sk/dapps/index.md b/public/content/translations/sk/dapps/index.md similarity index 100% rename from src/content/translations/sk/dapps/index.md rename to public/content/translations/sk/dapps/index.md diff --git a/src/content/translations/sk/enterprise/index.md b/public/content/translations/sk/enterprise/index.md similarity index 100% rename from src/content/translations/sk/enterprise/index.md rename to public/content/translations/sk/enterprise/index.md diff --git a/src/content/translations/sk/eth/index.md b/public/content/translations/sk/eth/index.md similarity index 100% rename from src/content/translations/sk/eth/index.md rename to public/content/translations/sk/eth/index.md diff --git a/src/content/translations/sk/learn/index.md b/public/content/translations/sk/learn/index.md similarity index 100% rename from src/content/translations/sk/learn/index.md rename to public/content/translations/sk/learn/index.md diff --git a/src/content/translations/sk/wallets/index.md b/public/content/translations/sk/wallets/index.md similarity index 100% rename from src/content/translations/sk/wallets/index.md rename to public/content/translations/sk/wallets/index.md diff --git a/src/content/translations/sk/what-is-ethereum/index.md b/public/content/translations/sk/what-is-ethereum/index.md similarity index 100% rename from src/content/translations/sk/what-is-ethereum/index.md rename to public/content/translations/sk/what-is-ethereum/index.md diff --git a/public/content/translations/sl/community/grants/index.md b/public/content/translations/sl/community/grants/index.md new file mode 100644 index 00000000000..5024e6dc71e --- /dev/null +++ b/public/content/translations/sl/community/grants/index.md @@ -0,0 +1,37 @@ +--- +title: Ethereum Fundacija & Program za finančno spodbudo skupnosti +description: Seznam programov za finančne spodbude skozi Ethereum ekosistem. +lang: sl +--- + +# Ethereum finančne spodbude {#ethereum-grants} + +Spodaj navedeni programi ponujajo različne finančne spodbude za projekte, ki delajo na spodbujanju uspeha in rasti Ethereum ekosistema. To lahko uporabljajte kot vodnik pri iskanju in prijavi za pridobitev sredstev za pomoč, ki vam bo pomagala do uspešnega Ethereum projekta. + +Ta seznam je pripravila naša skupnost. Če na njem kaj manjka ali ni pravilno navedeno prosimo, da ga uredite! + +## Širok Ethereum ekosistem {#broad-ethereum-ecosystem} + +Te programi podpirajo širok Ethereum ekosistem s tem, da ponujajo finančne spodbude širšemu naboru projektov. Mednje sodijo rešitve za nadgradljivost, grajenje skupnosti, varnost, zasebnost in še več. Te finančne spodbude niso specifične vezane na nobeno Ethereum platformo in so dobro mesto za začetek, če niste povsem prepričani. + +- [EF Program za podporo ekosistemu](https://esp.ethereum.foundation) - _Financira odprtokodne projekte, ki koristijo Ethereumu, s posebnim fokusom na univerzalna orodja, infrastrukturo, raziskave in javne dobrine_ +- [Ethereum RFPs](https://github.com/ethereum/requests-for-proposals) - _Prošnje za predloge s strani Ethereum fundacije za delo in projekte v Ethereum ekosistemu_ +- [MetaCartel](https://www.metacartel.org/grants/) - _Dapp razvoj, Ustvarjanje DAO_ +- [Moloch DAO](https://www.molochdao.com/) - _Zasebnost, nadgradljivost z 2. plastmi, varnost in še več_ +- [Odprte spodbude](https://opengrants.com/explore) + +## Specifikacije projekta {#project-specific} + +Te projekti so ustvarili svoje finančne spodbude za projekte, ki merijo proti razvoju in eksperimentiranju z lastnimi tehnologijami. + +- [The Graph](https://airtable.com/shrdfvnFvVch3IOVm) – _[The Graph](https://thegraph.com/) ekosistem_ +- [Uniswap](https://www.unigrants.org/) – _[Uniswap](https://uniswap.org/) skupnost_ +- [Balancer](https://balancergrants.notion.site/Balancer-Community-Grants-23e562c5bc4347cd8304637bff0058e6) – _[Balancer](https://balancer.fi/) sklad ekosistema_ +- [mStable](https://docs.mstable.org/advanced/grants-program) - _[mStable](https://mstable.org/) skupnost_ + +## Kvadratično financiranje {#quadratic-funding} + +Odprtokodne korenine Ethereuma so pripeljale do rasti novega zanimivega modela financiranja: kvadratično financiranje. To predstavlja potencial za izboljšanje načina po katerem bomo v prihodnosti financirali vse vrste javnih dobrin. Kvadratično financiranje poskrbi, da so projekti, ki prejmejo največ sredstev tisti, ki imajo najbolj edinstveno povpraševanje. Z drugimi besedami projekti, ki se zavzemajo za izboljšanje življenj največjega števila ljudi. [Več o kvadratičnem financiranju.](/defi/#quadratic-funding) + +- [Gitcoin](https://gitcoin.co/grants) +- [clr.fund](https://clr.fund/) diff --git a/public/content/translations/sl/contributing/translation-program/faq/index.md b/public/content/translations/sl/contributing/translation-program/faq/index.md new file mode 100644 index 00000000000..3d5dc7e72ce --- /dev/null +++ b/public/content/translations/sl/contributing/translation-program/faq/index.md @@ -0,0 +1,90 @@ +--- +title: Vodnik za prevajanje ethereum.org +lang: sl +description: Kako pomagati pri prevajanju ethereum.org +--- + +# Vodnik za prevajanje ethereum.org {#translating-ethereum-guide} + +Če ste novi v prevajalskem programu in se še obotavljate, so tukaj FAQ - pogosto zastavljena vprašanja, ki vam lahko pomagajo pri začetku. Uporabite ta vodnik, da najdete odgovore do najpogostejših poizvedb. + +## Kako prevedem te nize z ``? {#tags} + +Ni vsak niz napisan v čisti besedni obliki. Obstajajo nekateri nizi, ki so sestavljeni iz mešanih skript, kot so HTML tagi (`<0>`, ``). Te se po navadi uporabljajo za hiperpovezave ali alternativno oblikovanje v sredini stavka. + +- Prevedite besedilo znotraj tagov, ampak ne samih tagov. Karkoli v `<` in `>` ne sme biti prevedeno ali odstranjeno. +- Da ohranite niz varen, priporočamo, da kliknete "Copy Source" gumb spodaj levo. To bo kopiralo izvorni niz in ga prilepilo v besedilno polje. To vam omogoči razjasniti, kje so tagi in vam pomaga pri izogibanju napakam. + +![Crowdin vmesnik z izpostavljenim gumbom kopiraj vir](./html-tag-strings.png) + +Lahko premaknete položaj tagov znotraj niza, da bo bolje zvenel v vašem jeziku – le prepričajte se, da ste premaknili celoten tag. + +## Kje živijo nizi? {#strings} + +Pogosto le izvorni niz morda ne bo dovolj, da bi lahko zagotovili natančen prevod. + +- Oglejte si posnetke zaslona in kontekst za več informacij. V sekciji izvornega niza boste našli pripet posnetek zaslona, ki vam bo pokazal kako niz uporabljamo v kontekstu. +- Če še vedno niste prepričani postavite vprašanje v sekciji za komentarje. [Niste prepričani kako podati komentar?](#comment) + +![Prikaz načina zagotovitve konteksta za niz s posnetkom zaslona](./source-string.png) + +![Primer posnetka zaslona za kontekst](./source-string-2.png) + +## Kako lahko podam komentar ali postavim vprašanje? Rad bi označil težavo ali napako... {#comment} + +Če želite označiti določen niz, ki potrebuje pregled, lahko oddate komentar. + +- Kliknite drugi gumb v vrstici desno zgoraj. Skrit zavihek se bo pojavil na vaši desni. Podajte nov komentar in kliknite okence "težava" na dnu. Vrsto težave lahko opredelite z izbiro ene od možnosti iz spustnega menija. +- Ko je komentar podan, bo sporočen naši ekipi. Odpravili bomo težavo in vas obvestili z odgovorom na vaš komentar in zaprtjem težave. + +![Prikaz, kako ustvariti komentarje in označiti težave](./comment-issue.png) + +## Kaj je pomnilnik prevodov (TM)? {#translation-memory} + +Pomnilnik prevodov (TM) je funkcija orodja Crowdin, ki shrani vse predhodne prevedene nize na strani [ethereum.org](http://ethereum.org/). Ko je niz preveden, se samodejno shrani v TM našega projekta. To je lahko uporabno orodje, ki vam pomaga prihraniti vaš čas! + +- Oglejte si sekcijo "TM in MT predlogi" in lahko boste videli, kako so drugi prevajalci prevedli enak ali podoben niz. Če najdete predlog z visokim razmerjem ujemanja, ga s klikom brez težav uporabite za prevod. +- Če na seznamu ni ničesar, lahko iščete po TM za predhodne prevode in jih ponovno uporabite za ohranjanje konsistentnosti. + +![Posnetek zaslona pomnilnika prevodov](./translation-memory.png) + +## Kako uporabljam Crowdin slovar? {#glossary} + +Ethereum terminologija je naslednji ključni del našega prevajalskega dela, saj novi tehnološki izrazi pogosto še ne bodo lokalizirani v veliko jezikov. Prav tako obstajajo izrazi, ki imajo različne pomene v različnih kontekstih. [Več o prevajanju Ethereum terminologije](#terminology) + +Crowdin slovar je najboljše mesto za razjasnitev izrazov in definicij. Obstajata dva načina napotitve na slovar. + +- Prvič, ko najdete podčrtan izraz v izvornem nizu, se lahko z miško postavite nanj in tako razkrijete njegovo definicijo. + +![Primer definicije iz slovarja](./glossary-definition.png) + +- Drugič, če najdete pojem, ki ga ne poznate, vendar ni podčrtan, lahko iščete po zavihku slovarja (tretji gumb desnega stolpca). Našli boste razlage specifičnih izrazov in tistih pogosto uporabljenih v projektu. + +![Posnetek zaslona, ki prikazuje, kje najti zavihek slovarja v Crowdinu](./glossary-tab.png) + +- Če ga še vedno ne najdete, je to vaša priložnost, da dodate nov izraz! Spodbujamo vas, da ga poiščete v iskalniku in v slovar dodate opis. Bilo bo v veliko pomoč drugim prevajalcem, da bodo izraz lažje razumeli. + +![Posnetek zaslona, ki prikazuje kako dodati izraz v slovar v Crowdinu](./add-glossary-term.png) + +### Politika prevajanja terminologije {#terminology} + +_Za imena (znamk, podjetij, ljudi) in nove tehnološke izraze (Eth2, oddajniška veriga, itd.)_ + +Ethereum predstavlja veliko novih izrazov, ki so bili skovani pred kratkim. Nekateri izrazi se od prevajalca do prevajalca razlikujejo, saj uraden prevod v njihovem jeziku ne obstaja. Takšne neskladnosti lahko povzročijo nesporazume in poslabšajo berljivost. + +Zaradi jezikovne raznolikosti in različnih standardizacij v vsakem jeziku je bilo praktično nemogoče vzpostaviti poenoteno politiko prevajanja terminologije, ki se lahko prilagodi v vseh podprtih jezikih. + +Po tehtnem premisleku smo dosegli odločitev, da najpogosteje uporabljano terminologijo prepustimo vam prevajalcem. + +Tukaj so naši predlogi za primere, ko najdete izraz, ki vam ni poznan: + +- Glejte [Slovar izrazov](#glossary), tam boste morda našli predhodne prevode drugih prevajalcev. Če se vam zdi, da predhodno preveden izraz ni primeren, lahko vaš prevod obnovite, tako da v Crowdin slovar dodate nov izraz. +- Če takšen predhoden prevod v slovarju ne obstaja, vas spodbujamo, da ga poiščete prek iskalnika ali članka, ki prikazuje, kako se izraz dejansko uporablja v vaši skupnosti. +- Če ne najdete prav nobene reference, zaupajte svoji intuiciji in predlagajte nov prevod v vaš jezik! +- Če se ne čutite dovolj samozavestne, pustite izraz nepreveden. Včasih so angleški izrazi več kot ustrezni za podajo natančne definicije. + +Priporočamo, da pustite imena znamk, podjetij in osebja neprevedene, saj bi prevod lahko povzročil nepotrebno zmedo in SEO težave. + +## Kontaktirajte nas {#contact} + +Hvala, da ste vse to prebrali. Upamo, da vam je v pomoč pri uvajanju v naš program. Pridružite se našemu [Discord prevajalskemu kanalu](https://discord.gg/TkJFaewsaM) za kakršnakoli vprašanja in sodelovanje z ostalimi prevajalci! diff --git a/public/content/translations/sl/contributing/translation-program/index.md b/public/content/translations/sl/contributing/translation-program/index.md new file mode 100644 index 00000000000..a7332e570ae --- /dev/null +++ b/public/content/translations/sl/contributing/translation-program/index.md @@ -0,0 +1,132 @@ +--- +title: Prevajalski program +lang: sl +description: Kako prispevati k ethereum.org prevajalskemu programu? +--- + +# Prevajalski program {#translation-program} + +Prevajalski program je skupno prizadevanje za prevod ethereum.org v različne jezike, z namenom narediti stran bolj dostopno milijardam neangleško govorečih ljudi po svetu. + +Naš napredek do zdaj: + +- **2.000 +** prevajalcev +- **37** jezikov aktivnih na strani +- **1,9 milijona** besed prevedenih v 2021 + +Če se želite pridružiti in nam pomagati povečati globalno Ethereum skupnost s prevajanjem spletne strani v vaš jezik, sledite spodnjim korakom! + + + Prevzemite svoj POAP žeton! Če ste prevajali ethereum.org v letu 2021, vas čaka edinstven POAP. Več o POAP-ih + + +## Misija in vizija {#mission-and-vision} + +Ethereum skupnost želi biti globalna in vključevalna, vendar veliko njene vsebine poskrbi le za angleško govoreče in izpušča 6 milijard neangleško govorečih po celem svetu. Da bi ethereum.org lahko deloval kot portal v Ethereum za svetovno skupnost verjamemo, da je zagotavljanje Ethereum vsebin za neangleško govoreče v njihovih domačih jezikih ključnega pomena. + +Ethereum.org prevajalski program želi narediti Ethereum dostopen za vse, s prevajanjem strani ethereum.org in ostalih Ethereum vsebin v čim več jezikov. + +**Naša misija** + +- Prispevanje prevedenih verzij spletne strani, da opolnomočimo obiskovalce iz vsega sveta za učenje o Ethereumu v njihovem domačem jeziku +- Olajšanje uvajanja več članov v globalno Ethereum skupnost +- Omogočanje bolj dostopnega in vključujočega deljenje informacij in znanja o Ethereumu +- Opolnomočenje članov skupnosti, da prispevajo prevode k Ethereumu in pustijo svoj pečat na ekosistemu +- Prepoznavanje, povezovanje in prispevanje vodenja strastnim sodelavcem, ki se želijo pridružiti ekosistemu + +**Naša vizija** + +- Prevod ključnih vsebin za člane Ethereum skupnosti iz čim več držav in delov sveta +- Podpora deljenja znanja prek jezikov za ustvarjanje bolj informirane in izobražene Ethereum skupnosti +- Povečanje Ethereumove vključljivosti in dostopnosti z odstranitvijo jezikovnih ovir, ki preprečujejo neangleško govorečim pridružitev ekosistemu + +## Kako prevajate? {#how-to-translate} + +1. **[Pridružite se našemu projektu na Crowdinu](https://crowdin.com/project/ethereum-org/invite)** + Morali se boste prijaviti v vaš Crowdin račun ali ga ustvariti, če ga še nimate. Vse kar je potrebno za prijavo, je le e-poštni naslov in geslo. + +2. **Odprite jezik, ki ga želite prevajati in poiščite dokument za delo** + Vsebina spletne strani je razdeljena v številne dokumente in jezikovne verzije. Na desni lahko preverite napredek vsakega dokumenta – če je napredek prevoda pod 100 % prosimo prispevajte! + + Ne najdete svojega jezika na seznamu? [Odprite težavo](https://github.com/ethereum/ethereum-org-website/issues/new/choose) + + ![Prevedene in neprevedene datoteke na Crowdinu](./how-to-translate/crowdin-files.png) + + Opomba na vsebinske verzije: uporabljamo upravljanje verzij z Crowdinom, da se izognemo prevajalskim zamudam za dodane vsebine. Ko preverite jezik, na primer [Filipinščino](https://crowdin.com/project/ethereum-org/fil#), boste našli mape za vsako verzijo strani ("v2.0", "v2.1", etc.). + + Spodbujamo vas, da najprej prevajate nižjo verzijo in se prebijate proti višjim verzijam (v.2.0 → v.2.1 → v.2.2 → ⋯), saj bodo nižje verzije na strani posodobljene najprej. + + [Preberite si več o ethereum.org vsebinskih verzijah](/contributing/translation-program/content-versions/) + +3. **Prevajanje** + Po izbiri datoteke, ki jo želite prevesti, se bo ta odprla v spletnem urejevalniku. Če niste še nikoli uporabljali Crowdina, lahko uporabite ta hitri vodnik, da pregledate osnove. + + ![Crowdin spletni urejevalnik](./how-to-translate/online-editor.png) + + **_1 – Leva stranska vrstica_** + + - Neprevedeno (rdeča) – besedilo, na katerem se še ni delalo. To so nizi, ki bi jih morali prevajati. + - Prevedeno (zelena) – besedilo, ki je že bilo prevedeno, vendar še ne pregledano. Lahko podate alternativne predloge prevodov ali glasujete o obstoječih z uporabo ‘’+’’ in ‘’-‘‘ gumbov v urejevalniku. + - Potrjeno (kljukica) – besedilo je že bilo pregledano in je trenutno dostopno na spletni strani. + + Prav tako lahko uporabljate gumbe na vrhu, za iskanje določenih nizov, jih filtrirate glede na status ali spremenite pogled. + + **_2 – Območje urejevalnika_** + + Glavno prevajalsko območje – izvorno besedilo je prikazano na vrhu z dodatnim kontekstom in posnetki zaslonov, če so na voljo. Za predlog novega prevoda, vnesite svoj prevod v polje "Vnesite prevod tukaj" in pritisnite Shrani. + + Prav tako lahko v tej sekciji najdete obstoječe prevode nizov in prevode v ostale jezike, kot tudi ujemanja z pomnilnikom prevodov in predloge strojnega prevoda. + + **_3 – Desna stranska vrstica_** + + Tukaj lahko najdete komentarje, vnose v pomnilnik prevodov in vnose v slovar. Privzeti pogled prikazuje komentarje in prevajalcem omogoča komunikacijo, izpostavljanje težav ali prijavo nepravilnih prevodov. + + Z gumbi na vrhu lahko prikaz zamenjate na pomnilnik prevodov, kjer lahko iščete obstoječe prevode, ali slovar, ki vsebuje opise in standardizirane prevode ključnih izrazov. + + Si želite izvedeti več? Prosto si oglejte [dokumentacijo o uporabi Crowdinovega spletnega urejevalnika](https://support.crowdin.com/online-editor/) + +4. **Preces pregleda** + Ko ste zaključili prevod (torej vse datoteke vsebinskih verzij prikazujejo 100%), bo naša strokovna prevajalska pomoč pregledala (in po potrebi uredila) vsebino. Ko je pregled zaključen (torej proces pregleda je 100%), bomo vsebino dodali na spletno stran. + +Imate kakšno vprašanje? Ali želite sodelovati z našo ekipo in ostalimi prevajalci? Objavite v kanal #translations našega [ethereum.org Discord strežnika](https://discord.gg/ethereum-org) + +Prav tako nas lahko kontaktirate prek translations@ethereum.org + +Hvala za vaše sodelovanje pri ethereum.org prevajalskem programu! + + + Če nam pomagate pri prevajanju, boste morda našli uporabne informacije v naši prevajalski FAQ sekciji. + Prevajanje ethereum.org FAQ + + +## Viri {#resources} + +**Orodja** + +- [Microsoft Language Portal](https://www.microsoft.com/en-us/language) _– uporaben za iskanje in preverjanje standardnih prevodov tehničnih izrazov_ +- [Linguee](https://www.linguee.com/)_ – iskalnik za prevode in slovar, ki omogoča iskanje po besedah ali frazah_ +- [Proz term search](https://www.proz.com/search/)_ – podatkovna baza prevajalskih slovarjev za specializirane izraze_ +- [Eurotermbank](https://www.eurotermbank.com/)_ – zbirke evropske terminologije v 42-ih jezikih_ + +**Skupnosti** + +- [Prevajalske skupine za posamezne jezike](https://discord.gg/ethereum-org) _– iniciativa za povezovanje ethereum.org prevajalcev v prevajalske skupine_ +- [Kitajska prevajalska skupina](https://www.notion.so/Ethereum-org-05375fe0a94c4214acaf90f42ba40171)_ – Stran s pojmi za lažjo koordinacijo med kitajskimi prevajalci_ + +**Pregled verzij** + +- [Vsebinske verzije](/contributing/translation-program/content-versions/)_ – Katere strani so vključene v vsako verzijo strani ethereum.org_ + +**Zadnje spremembe** + +Da boste na tekočem z napredkom prevajalskega programa, sledite [blogu Ethereum fundacije](https://blog.ethereum.org/): + +- [December 2020 posodobitev mejnikov](https://blog.ethereum.org/2020/12/21/translation-program-milestones-updates-20/) +- [Julij 2020 posodobitev mejnikov](https://blog.ethereum.org/2020/07/29/ethdotorg-translation-milestone/) +- [Avgust 2019 zagon prevajalskega programa](https://blog.ethereum.org/2019/08/20/translating-ethereum-for-our-global-community/) + +## Prevajanje Ethereum Launchpada za zastavljanje {#staking-launchpad} + +Naša prevajalska skupnost prav tako dela na [Launchpad za zastavljanje](https://launchpad.ethereum.org/en/). Ta je v pomoč vsem, ki želijo nastaviti Ethereum validator in pomagati pri zavarovanju Ethereum omrežja. Launchpad je trenutno na voljo v 17 jezikih. + +Če ste zainteresirani, [se pridružite prevajalskemu projektu Ethereum Launchpad za zastavljanje na Crowdinu](https://crowdin.com/project/ethereum-staking-launchpad). Lahko [ustvarite težavo](https://github.com/ethereum/staking-launchpad/issues/new) na GitHubu, da zaprosite dodajanje novega jezika, če vaš jezik na Crowdinu še ni na voljo. diff --git a/public/content/translations/sl/dao/index.md b/public/content/translations/sl/dao/index.md new file mode 100644 index 00000000000..344dae8cc3c --- /dev/null +++ b/public/content/translations/sl/dao/index.md @@ -0,0 +1,116 @@ +--- +title: Decentralizirane avtonomne organizacije (DAOs) +description: Pregled DAOs na Ethereumu +lang: sl +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: Predstavitev DAO, ki glasuje o predlogu. +summaryPoint1: Skupnosti v lasti članov brez centraliziranega vodstva +summaryPoint2: Varen način za sodelovanje s tujci prek spleta. +summaryPoint3: Varno mesto za namen sredstev v specifičen namen. +--- + +## Kaj so DAOs? {#what-are-daos} + +DAOs so učinkovit in varen način za delo z enakomislečimi osebami po celem svetu. + +Predstavljajte si, da so to "podjetja", ki domujejo na internetu, in so v skupinski lasti ter upravljana s strani njihovih članov. Imajo vgrajene blagajne, do katerih brez odobritve skupine ne more dostopati nihče. Odločitve se sprejema na podlagi predlogov in glasovanja, da se vsem članom organizacije zagotovi beseda pri odločanju. + +Direkor, ki bi lahko odobril porabo sredstev na podlagi lastnih prebliskov, ne obstaja, prav tako ni sumljivih direktorjev financ, ki bi lahko manipulirali z računovodstvom. Vse je odprte narave in pravila za porabo so zapisana v DAO prek programske kode. + +## Zakaj potrebujemo DAOs? {#why-dao} + +Z nekom ustanoviti organizacijo, ki vključuje financiranje in denar, zahteva veliko zaupanja v osebe, s katerimi sodelujete. Ampak težko je zaupati nekomu, s katerim ste komunicirali le preko spleta. Z DAOs vam ni potrebno zaupati nikomur drugemu iz skupine, le programski kodi, ki je 100% transparentna in jo lahko kdorkoli potrdi. + +To predstavlja veliko novih priložnosti za globalno sodelovanje in koordinacijo. + +### Primerjava {#dao-comparison} + +| DAO | Tradicionalna organizacija | +| -------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | +| Običajno ploska in popolnoma demokratizirana. | Običajno hierarhična. | +| Glasovanje s strani članov je potrebno za implementacijo kakršnekoli spremembe. | Odvisno od strukture, so spremembe lahko zahtevane s strani ene osebe ali pa je lahko omogočeno glasovanje. | +| Glasovi so prešteti in rezultat je implementiran samodejno brez zaupanja vrednega posrednika. | Če je omogočeno glasovanje, so glasovi prešteti interno in rezultat mora biti izveden ročno. | +| Ponujene storitve so izvedene samodejno v decentralizirani naravi (na primer razdelitev dobrodelnih sredstev). | Potrebna je človeška izvedba ali centralno nadzorovana avtomatizacija, ki je nagnjena k manipulaciji. | +| Vse aktivnosti so transparentne in povsem javne. | Aktivnosti so ponavadi zasebne in javni vpogled je omejen. | + +### Primeri DAO {#dao-examples} + +Da bi bilo vse skupaj bolj smiselno, je tukaj nekaj primerov, kako bi lahko uporabili DAO: + +- Dobrodelnost – lahko sprejemate članstvo in donacije od kogarkoli na svetu in skupina se lahko odloči kako bodo donacije porabili. +- Mreža freelancerjev – lahko bi ustvarili mrežo izvajalcev, ki združujejo svoja sredstva za najem poslovnih prostorov in najem programske opreme. +- Naložbe in finančna podpora – lahko bi ustvarili naložbeni sklad, ki združuje investicijska sredstva in glasuje o priložnostih, ki bodo podprte. Povrnjen denar je lahko kasneje razdeljen med DAO člane. + +## Članstvo v DAO {#dao-membership} + +Obstajajo različni modeli za članstvo v DAO. Članstvo lahko določa, kako deluje glasovanje in ostali ključni deli DAO. + +### Članstvo na podlagi lastništva žetonov {#token-based-membership} + +Običajno povsem brez potrebnega soglasja, odvisno od uporabljenih žetonov. V večini primerov se s temi odločevalskimi žetoni lahko trguje na decentralizirani borzi. Drugi morajo biti zasluženi prek zagotavljanja likvidnosti ali nekateri z dokazom o delu. V obeh primerih vam lastništvo zagotavlja možnost glasovanja. + +_Običajno se ta oblika uporablja za upravljanje obširnih decentraliziranih protokolov in/ali samih žetonov._ + +#### Znameniti primer {#token-example} + +[MakerDAO](https://makerdao.com) – Žeton organizacije MakerDAO MKR je široko dostopen na decentraliziranih borzah. Tako si lahko kdorkoli kupi pravico do glasovanja o prihodnosti Maker protokola. + +### Članstvo na podlagi deleža {#share-based-membership} + +DAOs, ki delujejo na podlagi deleža zahtevajo dovoljenje, vendar so še vedno precej odprti. Katerikoli potencialni član lahko vloži predlog za pridružitev DAO, običajno s ponujenim prispevkom določene vrednosti v obliki žetonov ali dela. Deleži predstavljajo neposredno glasovalno pravico in lastništvo. Člani lahko kadarkoli izstopijo in prejmejo proporcionalen del sredstev v blagajni. + +_Običajno se ta oblika uporablja za tesneje prepletene organizacije osredotočene na osebe, kot so dobrodelne organizacije, delavski kolektivi in naložbeni klubi. Prav tako pa lahko upravljajo protokole in žetone._ + +#### Znameniti primer {#share-example} + +[MolochDAO](http://molochdao.com/) – MolochDAO se osredotoča na financiranje Ethereum projektov. Za pridobitev članstva zahtevajo vlogo, da skupina lahko oceni, če imate potrebno strokovno znanje in kapital za sprejemanje premišljenih mnenj o potencialnih prejemnikih financiranja. Lahko pa preprosto kupite dostop do DAO na prostem trgu. + +## Kako delujejo DAOs? {#how-daos-work} + +Podlaga za DAO je pametna pogodba. Ta pogodba določa pravila organizacije in hrani sredstva skupine. Ko je pogodba aktivna na Ethereumu, nihče ne more spremeniti pravil, razen z glasovanjem. Če kdorkoli poskusi narediti nekaj kar ni določeno v pravilih in logiki programske kode, ta poskus ne bo uspel. In ker je blagajna prav tako opredeljena s pametno pogodbo to pomeni, da nihče ne more porabiti sredstev brez soglasja skupine. To pomeni, da DAOs ne potrebujejo osrednje oblasti. Namesto tega skupina sprejema odločitve kot celota in po uspešnem glasovanju so plačila odobrena samodejno. + +To je mogoče, saj so pametne pogodbe odporne proti posegom, ko so enkrat aktivne na Ethereumu. Ne morete kar urejati kode (DAO pravil) brez, da bi kdo opazil, saj je vse javno dostopno. + + + Več o pametnih pogodbah + + +## Ethereum in DAOs {#ethereum-and-daos} + +Ethereum iz več razlogov predstavlja popolno podlago za DAOs: + +- Ethereumovo lastno soglasje je dovolj distribuirano in vzpostavljeno, da organizacije lahko zaupajo omrežju. +- Ko je pametna pogodba aktivna, njene programske koda ni možno spremeniti, niti s strani lastnikov. To omogoča, da DAO deluje po pravilih, ki so napisana v programski kodi. +- Pametne pogodbe lahko pošiljajo/sprejemajo sredstva. Brez tega bi potrebovali zaupanja vrednega posrednika, ki bi upravljal s sredstvi skupine. +- Ethereum skupnost je dokazala, da je bolj usmerjenja proti sodelovanju kot tekmovanju, kar omogoča najboljše prakse in podporo ekosistemu, da se hitro razvija. + +## Pridružite se/ustanovite DAO {#join-start-a-dao} + +### Pridružite se DAO {#join-a-dao} + +- [DAOs Ethereum skupnosti](/community/#decentralized-autonomous-organizations-daos/community/#decentralized-autonomous-organizations-daos) +- [DAOHaus seznam DAOs](https://app.daohaus.club/explore) + +### Ustanovite DAO {#start-a-dao} + +- [Prikličite DAO z DAOHaus](https://app.daohaus.club/summon) +- [Ustvarite DAO, ki ga poganja Aragon](https://aragon.org/product) +- [Ustanovite kolonijo](https://colony.io/) +- [Razvite DAO z DAOstack](https://daostack.io/) + +## Dodatno branje {#further-reading} + +### DAO članki {#dao-articles} + +- [Kaj je DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) +- [Hiša DAOs](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) +- [Kaj je DAO in čemu je namenjen?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOHaus](https://daohaus.club/) +- [Kako ustanoviti DAO-Powered Digital Community](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) +- [Kaj je DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) + +### Videoposnetki {#videos} + +- [Kaj je DAO v kriptu?](https://youtu.be/KHm0uUPqmVE) diff --git a/public/content/translations/sl/defi/index.md b/public/content/translations/sl/defi/index.md new file mode 100644 index 00000000000..b1874c997ea --- /dev/null +++ b/public/content/translations/sl/defi/index.md @@ -0,0 +1,324 @@ +--- +title: Decentralizirane finance (DeFi) +description: Pregled DeFi na Ethereumu +lang: sl +template: use-cases +emoji: ":money_with_wings:" +image: /use-cases/defi.png +alt: Logotip Ethereum narejen iz lego kock. +sidebarDepth: 2 +summaryPoint1: Globalna, odprta alternativa trenutnemu finančnemu sistemu. +summaryPoint2: Produkti, ki vam omogočajo izposojo, naložbe, trgovanje in drugo. +summaryPoint3: Na podlagi odprtokodne tehnologije, s katero lahko programira kdorkoli. +--- + +DeFi je odprt in globalen finančni sistem razvit za dobo interneta – alternativa sistemu, ki je netransparenten, strogo nadzorovan in postavljen na desetletja stari tehnologiji in procesih. Omogoča vam nadzor in vpogled nad vašim denarjem. Omogoča vam izpostavljenost globalnim trgom in alternativo vaši lokalni valuti ali bančnim možnostim. DeFi produkti so finančne storitve odprte komurkoli z internetno povezavo in so v veliki meri v lasti in upravljanju njihovih uporabnikov. Do zdaj se je desetine milijard dolarjev vredna količina kriptovalut stekla skozi DeFi aplikacije in ta številka je vsak dan večja. + +## Kaj je DeFi? {#what-is-defi} + +DeFi je skupni izraz za finančne produkte in storitve, ki so dostopne vsem, ki lahko uporabljajo Ethereum – komurkoli z internetno povezavo. Z DeFi so trgi vedno odprti in brez centralnih oblasti, ki lahko onemogočijo plačila ali vam zavrnejo dostop do česarkoli. Storitve, ki so bile včasih počasne in so bile podvržene možnosti človeške napake, so samodejne in varnejše, zdaj ko so izvedene s strani programske kode, ki jo lahko kdorkoli pregleda in zavaruje. + +Obstaja cvetoče kripto gospodarstvo, kjer lahko posojate, si izposojate, kupite/prodate, služite obresti in še več. Argentinci z kripto znanjem so uporabili DeFi, da so se izognili visoki inflaciji. Podjetja so začela zaposlenim "pretekati" plače v realnem času. Posamezniki so najeli in odplačali posojila v višini več milijonov dolarjev, brez da bi se morali kakorkoli identificirati. + + + +## DeFi v primerjavi s tradicionalnimi financami {#defi-vs-tradfi} + +Eden od najboljših načinov za prepoznanje potenciala DeFi je razumevanje problemov, ki jih poznamo danes. + +- Nekateri ljudje ne dobijo dostopa, da bi si lahko odprli bančni račun ali uporabljali finančne storitve. +- Pomanjkanje dostopa do finančnih storitev lahko ljudem prepreči možnost zaposlitve. +- Finančne storitve ti lahko onemogočijo prejetje plačila. +- Skrita cena finančnih storitev so vaši osebni podatki. +- Vlade in centralizirane institucije lahko po želji zaprejo trge. +- Trgovalne ure so pogosto omejene na delovni čas posameznih časovnih območij. +- Prenos denarja lahko zaradi internih človeških procesov traja dneve. +- Pri finančnih storitvah obstajajo premije, saj posredniške institucije potrebujejo svoj delež. + +### Primerjava {#defi-comparison} + +| DeFi | Tradicionalne finance | +| ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Sami hranite svoj denar. | Podjetja hranijo vaš denar. | +| Sami kontrolirate kam gre vaš denar in kako je porabljen. | Zaupate morate podjetjem, da ne upravljajo slabo z vašim denarjem, na primer, da ga ne posojajo rizičnim posojilojemalcem. | +| Prenos sredstev se zgodi v minutah. | Plačila lahko zaradi ročnih procesov trajajo dneve. | +| Aktivnost transakcij je pseudonimna. | Finančna aktivnost je tesno povezana z vašo identiteto. | +| DeFi je odprt za vse. | Za uporabo finančnih storitev morate podati vlogo. | +| Trgi so vedno odprti. | Trgi se zaprejo, saj zaposleni potrebujejo počitek. | +| Zgrajeno je na transparentnosti – kdorkoli lahko pogleda podatke o produktu in preveri kako sistem deluje. | Finančne institucije so zaprte knjige: ne morete zaprositi, da bi si ogledali njihovo zgodovino posojil, evidenco njihovega upravljanega premoženja in tako naprej. | + +Raziščite DeFi aplikacije + +## Začelo se je z Bitcoinom... {#bitcoin} + +Bitcoin je bil na mnogo načinov prva DeFi aplikacija. Bitcoin vam omogoča, da si zares lastite in kontrolirate vrednost ter jo pošiljate kamorkoli po svetu. To dosega na način, da omogoča velikemu številu ljudi, ki ne zaupajo drug drugemu, da se strinjajo o knjigi računov brez potrebe po zaupanja vrednemu posredniku. Bitcoin je odprt za vse in nihče nima oblasti, da bi lahko spremenil njegova pravila. Bitcoinova pravila, kot sta njegova omejena zaloga in odprtost, so zapisana v tehnologijo. Nasprotno kot pri tradicionalnih financah kjer države lahko tiskajo denar in s tem razvrednotijo vaše prihranke ter podjetja lahko ustavijo trge. + +Ethereum gradi na tem. Kot pri Bitcoinu se pravila ne morejo spremeniti in prav tako je dostop prost za vse. Prav tako pa naredi ta digitalni denar programljiv z uporabo [pametnih pogodb](/glossary#smart-contract), da greste lahko še naprej od shranjevanja in pošiljanja vrednosti. + + + +## Programirljiv denar {#programmable-money} + +To zveni čudno... "zakaj bi želel programirati svoj denar"? Kakorkoli, to je več kot le privzeta funkcija žetonov na Ethereumu. Kdorkoli lahko v plačila sprogramira logiko. Tako da lahko dobite kontrolo in varnost Bitcoina, zmešano z storitvami, ki jih ponujajo finančne institucije. To vam omogoča, da s kriptovalutami počnete stvari, ki jih z Bitcoinom ne morete. Kot so na primer posojanje in sposojanje, načrtovanje plačil, investiranje v indeksne sklade in še več. + + +
Raziščite naše predloge za DeFi aplikacije, ki jih lahko preizkusite, če ste novi v Ethereumu.
+ Raziščite DeFi Aplikacije +
+ +## Kaj lahko počnete z DeFi? {#defi-use-cases} + +Obstaja decentralizirana alternativa za večino finančnih storitev. Toda Ethereum prav tako ustvarja priložnosti za ustvarjanje finančnih produktov, ki so povsem novi. Ta seznam nenehno raste. + +- [Pošiljajte denar po vsem svetu](#send-money) +- [Ustvarjajte denarne tokove po vsem svetu](#stream-money) +- [Dostopajte do stabilnih valut](#stablecoins) +- [Sposodite si sredstva z zavarovanjem](#lending) +- [Sposodite si sredstva brez zavarovanja](#flash-loans) +- [Začnite s kripto varčevanjem](#saving) +- [Trgujte z žetoni](#swaps) +- [Povečajte svoj portfelj](#investing) +- [Financirajte svoje ideje](#crowdfunding) +- [Kupite zavarovanje](#insurance) +- [Upravljajte svoj portfelj](#aggregators) + + + +### Hitro pošiljajte denar po vsem svetu {#send-money} + +Ethereum kot blokovna veriga je zasnovan za pošiljanje transakcij na varen in globalen način. Kot Bitcoin tudi Ethereum naredi pošiljanje denarja po vsem svetu enostavno kot je poslati elektronsko pošto. Le vnesite prejemnikovo [ENS ime](/nft/#nft-domains) (recimo bob.eth) ali naslov njihovega računa iz vaše denarnice in plačilo bodo prejeli neposredno v minutah (običajno). Za pošiljanje ali prejemanje plačil boste potrebovali le [denarnico](/wallets/). + +Oglejte si plačilne dappe + +#### Ustvarjajte denarne tokove po vsem svetu... {#stream-money} + +Denarne tokove lahko ustvarjate tudi prek Ethereuma. To vam omogoča, da nekomu izplačate plačilo na sekundo, kar jim omogoči dostop do njihovega denarja, kadarkoli ga potrebujejo. Ali si sposodite nekaj na sekundo, kot na primer omarico za shranjevanje ali električni skuter. + +V primeru, da ne želite pošiljati ali pretakati [ETH](/eth/), zaradi spreminjanje njegove vrednosti, obstajajo alternativne valute na Ethereumu: stabilni kovanci. + + + +### Dostopajte do stabilnih kovancev {#stablecoins} + +Volatilnost kriptovalut za veliko finančnih produktov in splošne potrošnje predstavlja problem. DeFi skupnost je to rešila z stabilnimi kovanci. Njihova vrednost je vezana na neko drugo sredstvo, ponavadi na priljubljeno valuto kot je ameriški dolar. + +Kovanca kot sta Dai ali USDC imata vrednost, ki ostaja znotraj nekaj centov vrednosti dolarja. To jih dela popolne za zaslužek ali nakupovanje. Mnogi v Latinski Ameriki so uporabili stabilne kovance kot način za zaščito prihrankov v časih visoke negotovosti valut izdanih s strani njihovih držav. + +Več o stabilnih kovancih + + + +### Izposojanje {#lending} + +Izposoja denarja od decentraliziranih ponudnikov je na voljo v dveh glavnih različicah. + +- Vrstnik-vrstniku, kar pomeni, da si bo posojilojemalec sredstva sposodil neposredno od določenega posojilodajalca. +- Skupinsko, kjer posojilodajalci priskrbijo sredstva (likvidnost) v bazen iz katerega si posojilojemalci lahko izposojajo. + +Oglejte si dappe za izposojanje + +Pri uporabi decentraliziranih posojilodajalcev obstajajo številne prednosti... + +#### Izposojanje z ohranjanjem zasebnosti {#borrowing-privacy} + +Danes se posojanje in izposoja denarja vrti okoli vključenih posameznikov. Banko morajo vedeti, če boste posojilo lahko odplačali preden vam posodijo denar. + +Decentralizirano posojanje deluje brez, da se mora katerakoli stranka identificirati. Namesto tega mora posojilojemalec zagotoviti zavarovanje, ki ga bo posojilodajalec samodejno prejel v primeru, da posojilo ni odplačano. Nekateri posojilodajalci kot zavarovanje sprejemajo celo NFT-je. NFT-ji so lastniška listina za edinstveno sredstvo, kot je na primer umetniška slika. [Več o NFT-jih](/nft/) + +To vam omogoča, da si izposodite denar brez preverjanja kreditne sposobnosti ali posredovanja osebnih informacij. + +#### Dostop do globalnih sredstev {#access-global-funds} + +Kadar uporabljate decentraliziranega posojilodajalca imate dostop do sredstev, ki so položena z vseh koncev sveta in ne le sredstev, ki so v hrambi vaše izbrane banke ali institucije. To naredi posojila bolj dostopna in izboljša obrestne mere. + +#### Davčna učinkovitost {#tax-efficiencies} + +Izposojanje vam lahko omogoči dostop do sredstev, ki jih potrebujete brez, da bi morali prodati vaš ETH (obdavčljiv dogodek). Namesto tega lahko uporabite ETH kot zavarovanje za posojilo v stabilnih kovancih. To vam sprosti denarni tok, ki ga potrebujete in vam omogoči, da obdržite svoj ETH. Stabilni kovanci so žetoni, ki so precej boljši za situacije v katerih potrebujete denar, saj njihova vrednost ne niha kot ETH. [Več o stabilnih kovancih](#stablecoins) + +#### Flash posojila {#flash-loans} + +Flash posojila so bolj eksperimentalna oblika decentraliziranih posojil, ki vam omogoča najem posojila brez zavarovanja ali posredovanja kakršnihkoli osebnih podatkov. + +Trenutno niso široko dostopna ne-tehničnim uporabnikom, vendar namigujejo na to, kaj bi lahko bilo v prihodnosti mogoče za vse. + +Deluje na predpostavki, da je posojila najeto in odplačano znotraj ene transakcije. Če ne more biti odplačano, se transakcija zavrne kot, da se ni zgodilo nič. + +Sredstva, ki se običajno uporabljajo so hranjena v likvidnostnem bazenu (veliki bazeni sredstev namenjenih izposoji). Če v določenem trenutku niso uporabljena, to ustvari priložnost, da si ta sredstva nekdo izposodi, z njimi opravi posel in jih v celoti vrne dobesedno istočasno kot si jih je izposodil. + +To pomeni, da mora biti v kostumizirano transakcijo vključene veliko logike. Preprost primer bi lahko bil, da nekdo uporabi Flash posojilo za izposojo določene količine sredstev po določeni ceni, da jih lahko na drugi borzi prodajo po višji ceni. + +Tako se v eni transakciji zgodi sledeče: + +- Izposodite si količino X določenega $asset po ceni 1,00 USD na borzi A +- Prodate X $asset na borzi B za 1,10 USD +- Odplačate posojilo borzi A +- Obdržite dobiček zmanjšan za provizijo za izvedbo transakcije + +Če se je ponudba na borzi B nenadoma znižala in uporabnik ni mogel kupiti dovolj, da bi pokril izvorno posojilo, bi bila transakcija preprosto zavrnjena. + +Da bi zgoraj opisano transakcijo lahko izvedli v svetu tradicionalnih financ, bi potrebovali ogromno količino denarja. Takšne strategije za ustvarjanje denarja so dostopne le tistim z obstoječim bogastvom. Flash posojila so primer prihodnosti, kjer imeti denar, ni nujno predpogoj za ustvarjanje denarja. + +[Več o flash posojilih](https://aave.com/flash-loans/) + + + +### Začnite varčevati z kripto {#saving} + +#### Posojanje {#lending} + +S posojanjem lahko služite obresti na vaš kripto in opazujete, kako vaša sredstva rastejo v resničnem času. Trenutno so obresti precej višje kot tiste, ki jih boste verjetno dobili pri vaši lokalni banki (če imate dovolj sreče, da imate dostop do njih). Tukaj je primer: + +- Posodite vaših 100 Dai, [stabilni kovanec](/stablecoins/), produktu kot je Aave. +- Prejmete 100 Aave Dai (aDai), kar je žeton, ki predstavlja vaš posojen Dai. +- Vašemu aDai bo vrednost naraščala na podlagi obrestne mere in vi lahko opazujete, kako se povečuje stanje v denarnici. Odvisno od letne mere donosa (APR), bo vaše stanje v denarnici že po nekaj dneh ali celo urah prikazovalo nekaj takega 100.1234! +- Kadarkoli lahko dvignete količino navadnega Dai, ki je enaka količini vašega aDai stanja. + +Oglejte si posojilne dappe + +#### Loterije brez izgube {#no-loss-lotteries} + +Loterije brez izgube, kot je PoolTogether, so zabaven in inovativen način za varčevanje denarja. + +- Kupite 100 kart za 100 Dai žetonov. +- Prejmete 100 plDai, ki predstavljajo vaših 100 kart. +- Če je ena od vaših kart izbrana kot zmagovalna, se bo vaše plDai stanje zvišalo za količino v nagradnem bazenu. +- Če ne zmagate, se vaših 100 plDai prestavi v naslednje tedensko žrebanje. +- Kadarkoli lahko dvignete količino navadnega Dai, ki je enaka vašemu plDai stanju. + +Nagradni bazen je ustvarjen iz vseh obresti, ki so bile pridobljene s posojanjem pologov za karte, kot je opisano v primeru posojanja zgoraj. + +Preizkusite PoolTogether + + + +### Borzni žetoni {#swaps} + +Na Ethereumu obstaja na tisoče žetonov. Decentralizirane borze (DEXs) vam omogočajo trgovanje z različnimi žetoni, kadarkoli želite. Nikoli ne prepustite kontrole nad vašimi žetoni. To je kot uporaba denarne menjalnice, ko obiščete drugo državo. Vendar DeFi verzija se nikoli ne zapre. Trgi so odprti 24/7, 365 dni na leto in tehnologija zagotavlja, da bo za sprejem naročila vedno nekdo na voljo. + +Na primer, če želite uporabljati loterijo brez izgube PoolTogether (opisano zgoraj), boste potrebovali žeton kot je Dai ali USDC. Te DEXi vam omogočajo, da menjate vaš ETH za tiste žetone in nazaj v ETH, ko ste končali. + +Oglejte si borze žetonov + + + +### Napredno trgovanje {#trading} + +Obstajajo bolj napredne možnosti za trgovalce, ki želijo malce več kontrole. Naročila z omejitvami (limit), instrumenti brez zapadlosti (perpetuals), trgovanje s kritjem (margin) so vsi mogoči. Z decentraliziranim trgovanjem imate dostop do globalne likvidnosti, trg se nikoli ne zapre in vedno imate kontrolo nad svojimi sredstvi. + +Ko uporabljate centralizirane borze, morate položiti svoja sredstva preden začnete z trgovanjem in jim zaupati da bodo zanje dobro skrbeli. Med tem, ko so vaša sredstva položena, so izpostavljena tveganju, saj so centralizirane borze privlačna tarča za hekerje. + +Oglejte si trgovalne dappe + + + +### Povečajte svoj portfelj {#investing} + +Na Ethereumu obstajajo produkti za upravljanje sredstev, ki vam bodo poskušali povečati vaš portfelj po strategiji, ki jo izberete sami. To je avtomatsko, odprto vsem in ne potrebuje človeškega upravljalca, ki vam vzame del dobička. + +Dober primer je [DeFi Pulse indeksni sklad (DPI)](https://defipulse.com/blog/defi-pulse-index/). To je sklad, ki se samodejno rebalansira, da vašemu portfelju zagotovi, da vedno vključuje [najvišje uvrščene DeFi žetone po tržni kapitalizaciji](https://www.coingecko.com/en/defi). Nikoli vam ni potrebno skrbeti za podrobnosti in kadarkoli lahko sredstva dvignete iz sklada. + +Oglejte si naložbene dappe + + + +### Financirajte svoje ideje {#crowdfunding} + +Ethereum je idealna platforma za množično financiranje: + +- Potencialni ustanovitelji lahko prihajajo od kjerkoli – Ethereum in njegovi žetoni so odprti za kogarkoli, kjerkoli na svetu. +- Je transparenten, tako da zbiralci sredstev lahko dokažejo, koliko sredstev je bilo zbranih. Lahko celo sledite, kako so sredstva porabljena v nadaljevanju. +- Zbiralci sredstev lahko nastavijo samodejna vračila, če na primer obstaja določen rok ali minimalen znesek, ki ni dosežen. + + + Oglejte si dappe za množično financiranje + + +#### Kvadratično financiranje {#quadratic-funding} + +Ethereum je odprtokodna programska oprema in veliko dela do zdaj je bilo financirano s strani skupnosti. To je pripeljalo do rasti novega zanimivega modela financiranja: kvadratično financiranje. To predstavlja potencial za izboljšanje načina, s katerim bomo v prihodnosti financirali vse vrste javnih dobrin. + +Kvadratično financiranje poskrbi, da so projekti, ki prejmejo največ sredstev tisti, ki imajo najbolj edinstveno povpraševanje. Z drugimi besedami, projekti ki se zavzemajo za izboljšanje življenj največjega števila ljudi. Poglejmo, kako to deluje: + +1. Obstaja ujemajoč bazen sredstev za financiranje. +2. Krog javnega financiranja se začne. +3. Ljudje lahko signalizirajo njihovo povpraševanje po projektu z doniranjem sredstev. +4. Ko se krog zaključi, je ujemajoč bazen razdeljen projektom. Tisti z najbolj edinstvenim povpraševanjem dobijo največjo vsoto sredstev iz ujemajočega bazena. + +To pomeni, da projekt A s 100 donacijami po 1 dolar, lahko na koncu prejme več sredstev kot projekt B z eno samo donacijo v višini 10.000 dolarjev (odvisno od velikosti ujemajočega bazena). + +[Več o kvadratičnem financiranju](https://wtfisqf.com) + + + +### Zavarovanje {#insurance} + +Decentralizirano zavarovanje cilja na pocenitev zavarovanja, hitrejša izplačila in več transparentnosti. Z več avtomatizacije je zavarovanje bolj cenovno dostopno in izplačila so precej hitrejša. Podatki uporabljeni za odločitev o vašem zahtevku so popolnoma transparentni. + +Ethereum produkti kot ostala programska oprema lahko trpi zaradi napak in izkoriščanja teh. Tako da je trenutno veliko zavarovalnih produktov v tem prostoru osredotočenih na zaščito uporabnikov pred izgubo sredstev. Čeprav obstajajo projekti, ki začenjajo z razvojem zavarovanja za karkoli, kar se nam lahko zgodi v življenju. Dober primer tega je Etheriscovo zavarovanje pridelkov, ki cilja na [zaščito malih kmetov v Keniji pred sušo in poplavami](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Decentralizirano zavarovanje lahko zagotovi cenejše kritje za kmete, ki si tradicionalnega zavarovanja pogosto ne morejo privoščiti. + +Oglejte si zavarovalniške dappe + + + +### Agregatorji in upravljalci portfeljev {#aggregators} + +Ob tolikšnem dogajanju boste potrebovali način, da sledite vsem vašim naložbam, posojilom in menjavam. Obstaja množica produktov, ki vam omogoča koordinacijo vse vaše DeFi aktivnosti iz enega mesta. To je lepota odprte arhitekture DeFi. Ekipe lahko razvijejo vmesnike, v katerih ne le vidite vašega stanja v vseh produktih, temveč tudi uporabljate njihove funkcije. To bi lahko bilo uporabno pri vašem raziskovanju DeFi. + +Oglejte si portfeljne dappe + + + +## Kako deluje DeFi? {#how-defi-works} + +DeFi uporablja kriptovalute in pametne pogodbe za zagotavljanje storitev, ki ne potrebujejo posrednikov. V današnjem finančnem svetu, finančne institucije delujejo kot poroki za transakcije. To daje tem institucijam neizmerno moč, saj vaš denar teče skoznje. Plus milijarde ljudi po celem svetu sploh ne morejo dostopati do bančnega računa. + +V DeFi pametna pogodba nadomesti vlogo finančne institucije pri transakcijah. Pametna pogodba je različica Ethereum računa, ki lahko hrani sredstva in jih pošilja/vrača glede na določene pogoje. Nihče ne more spremeniti pametne pogodbe, ko je enkrat aktivna – vedno bo delovala kot je bila programirana. + +Pogodba, ki je zasnovana za izdajanje dodatka ali žepnine, je lahko programirana, da vsak petek pošilja denar z računa A na račun B. In to bo storila vedno, dokler je na računu A dovolj sredstev. Nihče ne more spremeniti pogodbe in kot prejemnika dodati računa C, da bi ukradel sredstva. + +Pogodbe so prav tako javne, da jih lahko kdorkoli pregleda in revidira. To pomeni, da bodo slabe pogodbe pogosto hitro prišle pod drobnogled skupnosti. + +To pomeni, da trenutno obstaja potreba za zaupanje bolj tehnično podkovanim članom Ethereum skupnosti, ki znajo brati programsko kodo. Skupnost, ki temelji na odprtokodnosti pomaga nadzorovati razvijalce, toda ta potreba bo s časom izginila, ko bodo pametne pogodbe postale bolj berljive in bodo razviti drugi načini dokazovanja zanesljivosti programske kode. + +## Ethereum in DeFi {#ethereum-and-defi} + +Ethereum je popolna podlaga za DeFi iz več razlogov: + +- Nihče si ne lasti Ethereuma ali pametnih pogodb, ki živijo na njem – to vsem omogoča priložnost za uporabo DeFi. To prav tako pomeni, da za vas nihče ne more spremeniti pravil. +- DeFi produkti v ozadju vsi govorijo isti jezik: Ethereum. To pomeni, da veliko produktov brez težav deluje skupaj. Žetone lahko posodite na eni platformi in zamenjate žetone, ki nosijo obresti na drugem trgu v povsem drugačni aplikaciji. To je podobno kot, da bi lahko unovčili točke zvestobe na vaši banki. +- Žetoni in kriptovalute so vgrajeni v Ethereum, skupno knjigo – beleženje transakcij in lastništva je nekako bistvo Ethereuma. +- Ethereum dovoljuje popolno finančno svobodo – večina produktov ne bo nikoli hranila vaših sredstev, kar vam prepušča nadzor. + +DeFi si lahko predstavljate v plasteh: + +1. Blokovna veriga – Ethereum vsebuje zgodovino transakcij in stanje računov. +2. Sredstva – [ETH](/eth/) in drugi žetoni (valute). +3. Protokoli – [pametne pogodbe](/glossary/#smart-contract), ki zagotavljajo funkcionalnost, na primer storitev, ki omogoča decentralizirano posojanje sredstev. +4. [Aplikacije](/dapps/) – produkti, ki jih uporabljamo za upravljanje in dostop do protokolov. + +## Razvijajte DeFi {#build-defi} + +DeFi je odprtokodno gibanje. DeFi protokoli in aplikacije so vam vse odprte za pregled, oddvojitev in inovacije. Zaradi tega kupa plasti (vse si delijo isto osnovno blokovno verigo in sredstva) se lahko protokoli mešajo in ujemajo z namenom odklepanja edinstvene kombinacije priložnosti. + +Več o razvoju dappov + +## Dodatno branje {#futher-reading} + +### DeFi podatki {#defi-data} + +- [DeFi Prime](https://defiprime.com/) +- [DeFi Llama](https://defillama.com/) + +### DeFi članki {#defi-articles} + +- [Začetniški vodnik po DeFi](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, 6. januar 2020_ + +### Videoposnetki {#videos} + +- [Finematics – izobraževanje na temo decentraliziranih financ](https://finematics.com/) – _Videoposnetki o decentraliziranih financah_ +- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _DeFi osnove: Vse kar morate vedeti za začetek v tem občasno zmedenem prostoru._ +- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _Kaj je DeFi?_ + +### Skupnosti {#communities} + +- [DeFi Pulse Discord strežnik](https://discord.gg/Gx4TCTk) diff --git a/public/content/translations/sl/developers/docs/mev/index.md b/public/content/translations/sl/developers/docs/mev/index.md new file mode 100644 index 00000000000..a0925367e2d --- /dev/null +++ b/public/content/translations/sl/developers/docs/mev/index.md @@ -0,0 +1,129 @@ +--- +title: Maksimalna pridobljiva vrednost (MEV) +description: Uvod v maksimalno pridobljivo vrednost (MEV) +lang: sl +--- + +Maksimalna pridobljiva vrednost (MEV) se nanaša na maksimalno vrednost, ki se lahko pridobi pri izdelavi bloka poleg standardne blokovne nagrade in provizij goriva z vključevanjem, izključevanjem in spreminjanjem vrstnega reda transakcij v bloku. + +## Pridobljiva vrednost rudarjev + +Ta koncept se je prvič pojavil v kontekstu [dokaza o delu](/developers/docs/consensus-mechanisms/pow/) in se je na začetku imenoval "pridobljiva vrednost rudarjev". To je zato, ker pri dokazu o delu rudarji nadzirajo vključevanje, izključevanje in razvrščanje transakcij. Vendar pa bodo validatorji po prehodu na dokaz o deležu prek [Spojitve](/roadmap/merge) odgovorni za te vloge in rudarjenje ne bo več uporabno. Metode za pridobivanje vrednosti bodo ostale tudi po prehodu in zato je bila potrebna zamenjava imena. Zaradi ohranjanja kontinuitete bomo ohranili enako kratico in obenem ohranili osnovni pomen, "maksimalna pridobljiva vrednost" se zdaj uporablja kot bolj vključujoča zamenjava. + +## Predpogoji {#prerequisites} + +Prepričajte se, da ste seznanjeni s [transakcijami](/developers/docs/transactions/), [bloki](/developers/docs/blocks/), [gorivom](/developers/docs/gas/) in [rudarjenjem](/developers/docs/consensus-mechanisms/pow/mining/). Seznanjenost z [dappi](/dapps/) in [DeFi](/defi/) je prav tako v pomoč. + +## Ekstrakcija MEV {#mev-extraction} + +V teoriji se MEV v celoti dodaja rudarjem, saj so samo te edini subjekt, ki lahko jamči izvedbo dobičkonosne priložnosti MEV (vsaj na trenutni verigi z dokazom o delu — to se bo spremenilo po [Spojitvi](/roadmap/merge/)). V praksi pa je velik del MEV pridobljen s strani neodvisnih sodelujočih v omrežju, ki se imenujejo "iskalci." Iskalci izvajajo kompleksne algoritme na podatkih blokovne verige, da zaznajo dobičkonosne priložnosti MEV, in imajo robote, da omrežju samodejno predložijo te dobičkonosne transakcije. + +Rudarji prejmejo del celotne količine MEV v vsakem primeru, saj so iskalci pripravljeni plačati visoke provizije goriva (ki gredo rudarjem) v zameno za višjo možnost vključitve njihove dobičkonosne transakcije v blok. Predpostavimo, da so iskalci ekonomsko racionalni, provizija goriva, ki jo je iskalec pripravljen plačati, bo obsegala do 100 % iskalčeve MEV (saj, če bi bila provizija goriva višja, bi iskalec izgubil denar). + +S tem morajo za nekatere visoko konkurenčne priložnosti MEV, kot je [arbitraža DEX](#mev-examples-dex-arbitrage), iskalci plačati do 90 % ali celo več svojega prihodka za provizije goriva rudarjem, saj želi veliko ljudi trgovati na isti dobičkonosni arbitraži. To pa zato, ker je edini način za zagotavljanje, da se njihova arbitražna transakcija izvede, ta, da predložijo transakcijo z najvišjo ceno goriva. + +### Golf z gorivom {#mev-extraction-gas-golfing} + +Ta dinamika je poskrbela, da je postalo dobro "igranje golfa z gorivom" — programiranje transakcij, da porabijo najmanjšo možno količino goriva — konkurenčna prednost, saj iskalcem omogoča, da nastavijo višjo ceno goriva, medtem ko ohranjajo svojo skupno provizijo goriva konstantno (glede na to, da so provizije goriva = cena goriva \* porabljeno gorivo). + +Nekaj prepoznanih tehnik golfa z gorivom vključuje: uporabo naslovov, ki se začnejo z dolgim nizom ničel (torej [0x0000000000C521824EaFf97Eac7B73B084ef9306](https://etherscan.io/address/0x0000000000c521824eaff97eac7b73b084ef9306)), glede na to, da zavzamejo manj prostora (in posledično goriva) v shrambi; in puščanje majhnih stanj žetonov [ERC-20](/developers/docs/standards/tokens/erc-20/) v pogodbah, glede na to, da iniciacija reže v shrambi stane več goriva (če je stanje 0) kot njena nadgradnja. Iskanje novih načinov za znižanje porabe goriva je aktivno področje raziskav med iskalci. + +### Generalizirani prehitevalci {#mev-extraction-generalized-frontrunners} + +Raje kot da programirajo kompleksne algoritme za zaznavanje dobičkonosnih priložnosti MEV, nekateri iskalci upravljajo generalizirane prehitevalce. Generalizirani prehitevalci so roboti, ki opazujejo čakalnico, da bi zaznali dobičkonosne transakcije. Prehitevalec bo kopiral kodo potencialno dobičkonosne transakcije, nadomestil naslove s svojimi in izvedel transakcijo lokalno, da ponovno preveri, če transakcija rezultira v dobičku za njegov naslov. Če se transakcija izkaže za dobičkonosno, bo prehitevalec predložil prilagojeno transakcijo z zamenjanim naslovom in višjo provizijo goriva, s čimer bo "prehitel" izvorno transakcijo in prejel MEV izvornega iskalca. + +### Flash roboti {#mev-extraction-flashbots} + +Flash roboti so neodvisen projekt, ki stranko go-ethereum razteza s storitvijo, ki iskalcem omogoča posredovanje transakcij MEV rudarjem, brez da bi jih razkril javni čakalnici. To preprečuje, da transakcije prehitijo generalizirani prehitevalci. + +V času tega pisanja je velik del transakcij MEV speljan prek Flash robotov, kar pomeni, da generalizirani prehitevalci niso tako učinkoviti, kot so bili. + +## Primeri MEV {#mev-examples} + +MEV se na blokovni verigi pojavlja na različne načine. + +### Arbitraža DEX {#mev-examples-dex-arbitrage} + +Arbitraža na [decentraliziranih borzah](/glossary/#dex) (DEX) je najenostavnejša in najbolj znana priložnost MEV. Posledično zanjo obstaja tudi največ konkurence. + +Deluje tako: če dva DEX-a ponujata isti žeton po dveh različnih cenah, lahko nekdo kupi žeton na cenejšem DEX-u in ga proda na dražjem DEX-u z eno samo atomsko transakcijo. Zahvaljujoč mehaniki blokovne verige je to prava arbitraža brez rizika. + +[Tukaj je primer](https://etherscan.io/tx/0x5e1657ef0e9be9bc72efefe59a2528d0d730d478cfc9e6cdd09af9f997bb3ef4) dobičkonosne arbitražne transakcije, kjer je iskalec 1,000 ETH pretvoril v 1,045 ETH s tem, da je izkoristil razliko v tečajnem paru ETH/DAI na Uniswapu in Sushiswapu. + +### Likvidacije {#mev-examples-liquidations} + +Likvidacije na posojilnih protokolih predstavljajo še eno znano priložnost MEV. + +Posojilni protokoli, kot sta Maker in Aave, delujejo tako, da od uporabnikov zahtevajo, da položijo neko vrsto zavarovanja (recimo ETH). Uporabniki si lahko nato od drugih sposodijo različna sredstva in žetone glede na to, kaj potrebujejo (na primer, lahko si sposodijo MKR, če želijo glasovati o upravljavskih predlogih MakerDAO, ali SUSHI, če želijo zaslužiti delež provizij od trgovanja na Sushiswapu) do določene količine svojega položenega zavarovanja — na primer 30 % (točno procentualno posojilojemalsko moč določi protokol). Uporabniki, pri katerih si izposodijo druge žetone, v tem primeru delujejo kot posojilodajalci. + +Glede na to, da vrednost posojilojemalčevega zavarovanja niha, niha tudi njihova posojilojemalska moč. Če zaradi tržnih fluktuacij vrednost sposojenih sredstev recimo preseže 30 % vrednosti zavarovanja (ponovno, točen odstotek določi protokol), protokol po navadi dovoli komurkoli, da likvidira zavarovanje in v trenutku poplača posojilodajalce (to deluje podobno, kot delujejo [pozivi h kritju](https://www.investopedia.com/terms/m/margincall.asp) v tradicionalnih financah). V primeru likvidacije mora posojilojemalec po navadi plačati mastno likvidacijsko provizijo, del katere gre likvidatorju — tukaj se pojavi priložnost MEV. + +Iskalci tekmujejo pri čim hitrejšem razčlenjevanju podatkov blokovne verige, da bi določili, kateri posojilojemalci so lahko likvidirani in bi tako prvi predložili likvidacijsko transakcijo ter zase pobrali likvidacijsko provizijo. + +### Trgovanje s sendvičem {#mev-examples-sandwich-trading} + +Trgovanje s sendvičem je še ena pogosta metoda ekstrakcije MEV. + +Za trgovanje s sendvičem bo iskalec opazoval čakalnico za visoke trgovalne zneske na DEX-u. Na primer predpostavimo, da želi nekdo kupiti 10,000 UNI z DAI na Uniswapu. Trgovanje v takem obsegu bo imelo konkreten vpliv na par UNI/DAI, kar bo potencialno precej dvignilo ceno UNI glede na DAI. + +Iskalec lahko izračuna približen cenovni učinek tega velikega trgovanja na paru UNI/DAI in izvede optimalno naročilo za nakup tik _pred_ velikim trgovanjem, UNI kupi poceni in nato izvede naročilo za prodajo tik _po_ velikem trgovanju ter tako sredstvo proda po višji ceni, ki nastane kot posledica velikega naročila. + +Trgovanje s sendvičem je bolj riskantno, saj ni atomsko (za razliko od arbitraže DEX, kot je opisana zgoraj) in je nagnjeno k [salmonela napadom](https://github.com/Defi-Cartel/salmonella). + +### NFT MEV {#mev-examples-nfts} + +MEV v svetu NFT je pojavljajoč se fenomen in ni nujno dobičkonosen. + +Vendar pa glede na to, da se transakcije NFT dogajajo na isti blokovni verigi, deljeni z vsemi drugimi transakcijami Ethereum, iskalci lahko uporabljajo podobne tehnike kot tiste, ki se uporabljajo pri tradicionalnih priložnostih MEV tudi na trgu NFT. + +Na primer, če obstaja priljubljena izdaja NFT in iskalec želi določen NFT ali več njih, lahko sprogramirajo takšno transakcijo, da so prvi v vrsti za nakup NFT-ja ali pa lahko kupijo celoten set NFT-jev z eno transakcijo. Ali če je NFT [po pomoti na voljo po nizki ceni](https://www.theblockcrypto.com/post/113546/mistake-sees-69000-cryptopunk-sold-for-less-than-a-cent), lahko iskalec prehiti druge kupce in ga poceni ukrade. + +Izrazit primer NFT MEV se je pojavil, ko je iskalec porabil 7 milijonov dolarjev za [nakup](https://etherscan.io/address/0x650dCdEB6ecF05aE3CAF30A70966E2F395d5E9E5) vseh Cryptopunkov na spodnjem pragu cene. Raziskovalec blokovnih verig je [na Twitterju pojasnil](https://twitter.com/IvanBogatyy/status/1422232184493121538), kako je kupec sodeloval s ponudnikom MEV, da je nakup ohranil tajen. + +### Dolgi rep {#mev-examples-long-tail} + +Arbitraža DEX, likvidacije in trgovanje s sendvičem so zelo dobro znane priložnosti MEV, ki za nove iskalce po vsej verjetnosti niso dobičkonosne. Vendar obstaja dolgi rep manj poznanih priložnosti MEV (NFT MEV je verjetno takšna priložnost). + +Iskalci, ki so še na začetku, bi lahko več uspeha našli pri iskanju MEV v tem dolgem repu priložnosti. Flashbotova [tabla zaposlitev MEV](https://github.com/flashbots/mev-job-board) navaja nekaj nastajajočih priložnosti. + +## Učinki MEV {#effects-of-mev} + +MEV ni samo slab — obstajajo tako pozitivne kot negativne posledice za MEV na Ethereumu. + +### Dobri {#effects-of-mev-the-good} + +Veliko projektov DeFi se zanaša na ekonomsko racionalne igralce za zagotavljanje uporabnosti in stabilnosti njihovih protokolov. Na primer, arbitraža DEX zagotavlja, da uporabniki dobijo najboljše, najbolj pravilne cene za svoje žetone, posojilni protokoli pa se za zagotavljanja poplačil posojilodajalcev zanašajo na hitre likvidacije, ko posojilojemalci padejo pod zavarovalna razmerja. + +Brez racionalnih iskalcev, ki iščejo in popravljajo ekonomske neučinkovitosti ter izkoriščajo prednosti protokolovih ekonomskih spodbud, protokoli DeFi in dappi v splošnem ne bi bili tako odporni, kot so danes. + +### Slabi {#effects-of-mev-the-bad} + +Na plasti aplikacij nekatere oblike MEV, kot je trgovanje s sendvičem, rezultirajo v neprimerljivo slabši izkušnji za uporabnike. Uporabniki, ki pristanejo v sendviču, se soočajo s povečanim drsenjem in slabšo izvedbo pri svojem trgovanju. + +Na plasti omrežja generalizirani prehitevalci in dražbe cen goriva, pri katerih pogosto sodelujejo (ko dva ali več prehitevalcev tekmuje za to, da je njihova transakcija vključena v naslednji blok, tako da postopoma dvigujejo ceno goriva za svoje lastne transakcije), rezultirajo v prezasedenosti omrežja in visokih cenah goriva za vse druge, ki poskušajo izvajati svoje običajne transakcije. + +Naprej od tega, kar se dogaja _znotraj_ blokov, ima lahko MEV škodljiv vpliv tudi _med_ bloki. Če MEV, razpoložljiv v bloku, bistveno presega standardno blokovno nagrado, bodo rudarji bolj spodbujeni k temu, da ponovno zrudarijo blok in si MEV zagotovijo zase ter s tem povzročijo reorganizacijo blokovne verige in nestabilnost soglasja. + +Ta možnost reorganizacije blokovne verige je bila [predhodno raziskovana na Bitcoinovi blokovni verigi](https://dl.acm.org/doi/10.1145/2976749.2978408). Glede na to, da se blokovna nagrada pri Bitcoinu razpolavlja in s tem provizije za transakcije predstavljajo večji del blokovne nagrade, se pojavljajo situacije, kjer za rudarje postane ekonomsko racionalno, da prepustijo blokovno nagrado naslednjega bloka in namesto tega ponovno zrudarijo predhodni blok z višjimi provizijami. Z rastjo MEV bi se lahko podobne vrste situacij pojavile tudi pri Ethereumu, kar bi ogrozilo integriteto blokovne verige. + +## Stanje MEV {#state-of-mev} + +Ekstrakcija MEV se je v začetku leta 2021 močno povečala, kar je rezultiralo v zelo visokih cenah goriva v prvih parih mesecih. Nastanek Flashbotovega trenda MEV je zmanjšal učinkovitost generaliziranih prehitevalcev in prenesel dražbe cene goriva z verige, kar je znižalo cene goriva za običajne uporabnike. + +Čeprav veliko iskalcev z MEV še vedno služi dober denar, s tem, ko postajajo vse bolj prepoznavne, vse več iskalcev tekmuje za iste priložnosti, zato bodo rudarji ujeli vse več skupnih prihodkov MEV (saj se enake vrste dražb goriva, opisanih zgoraj, čeprav zasebno, prav tako pojavljajo v Flashbotih in rudarji bodo tako ujeli posledični prihodek od goriva). MEV prav tako ni unikaten za Ethereum in s tem, ko priložnosti na Ethereumu postajajo bolj konkurenčne, se iskalci premikajo k drugim blokovnim verigam, kot je Binance Smart Chain, kjer obstajajo priložnosti, podobne tistim na Ethereumu, z manj konkurence. + +Medtem ko DeFi raste in pridobiva na popularnosti, bo MEV kmalu lahko konkretno presegel osnovno blokovno nagrado Ethereum. S tem pa raste možnost sebičnega ponovnega rudarjenja blokov in nestabilnosti soglasja. Nekateri to smatrajo kot eksistenčno grožnjo za Ethereum, zato destimulacija sebičnega rudarjenja predstavlja aktivno področje raziskav pri teoriji protokola Ethereum. Trenutno raziskovana rešitev je [glajenje nagrad MEV](https://ethresear.ch/t/committee-driven-mev-smoothing/10408). + +## Povezani viri {#related-resources} + +- [Flash roboti GitHub](https://github.com/flashbots/pm) +- [MEV-raziskovanje](https://explore.flashbots.net/) _Nadzorna plošča in raziskovalec za transakcije MEV_ + +## Nadaljnje branje {#further-reading} + +- [Kaj je rudarska pridobljiva vrednost (MEV)?](https://blog.chain.link/what-is-miner-extractable-value-mev/) +- [MEV in jaz](https://research.paradigm.xyz/MEV) +- [Ethereum je Temen gozd](https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest/) +- [Pobeg iz Temnega gozda](https://samczsun.com/escaping-the-dark-forest/) +- [Flashbots: prehitevanje krize MEV](https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752) +- [Zapisi MEV, ki jih je pripravil @bertcmiller](https://twitter.com/bertcmiller/status/1402665992422047747) diff --git a/src/content/translations/sl/developers/docs/oracles/index.md b/public/content/translations/sl/developers/docs/oracles/index.md similarity index 100% rename from src/content/translations/sl/developers/docs/oracles/index.md rename to public/content/translations/sl/developers/docs/oracles/index.md diff --git a/src/content/translations/sl/developers/docs/scaling/index.md b/public/content/translations/sl/developers/docs/scaling/index.md similarity index 100% rename from src/content/translations/sl/developers/docs/scaling/index.md rename to public/content/translations/sl/developers/docs/scaling/index.md diff --git a/src/content/translations/sl/developers/docs/scaling/optimistic-rollups/index.md b/public/content/translations/sl/developers/docs/scaling/optimistic-rollups/index.md similarity index 100% rename from src/content/translations/sl/developers/docs/scaling/optimistic-rollups/index.md rename to public/content/translations/sl/developers/docs/scaling/optimistic-rollups/index.md diff --git a/src/content/translations/sl/developers/docs/scaling/plasma/index.md b/public/content/translations/sl/developers/docs/scaling/plasma/index.md similarity index 100% rename from src/content/translations/sl/developers/docs/scaling/plasma/index.md rename to public/content/translations/sl/developers/docs/scaling/plasma/index.md diff --git a/src/content/translations/sl/developers/docs/scaling/sidechains/index.md b/public/content/translations/sl/developers/docs/scaling/sidechains/index.md similarity index 100% rename from src/content/translations/sl/developers/docs/scaling/sidechains/index.md rename to public/content/translations/sl/developers/docs/scaling/sidechains/index.md diff --git a/src/content/translations/sl/developers/docs/scaling/state-channels/index.md b/public/content/translations/sl/developers/docs/scaling/state-channels/index.md similarity index 100% rename from src/content/translations/sl/developers/docs/scaling/state-channels/index.md rename to public/content/translations/sl/developers/docs/scaling/state-channels/index.md diff --git a/src/content/translations/sl/developers/docs/scaling/validium/index.md b/public/content/translations/sl/developers/docs/scaling/validium/index.md similarity index 100% rename from src/content/translations/sl/developers/docs/scaling/validium/index.md rename to public/content/translations/sl/developers/docs/scaling/validium/index.md diff --git a/src/content/translations/sl/developers/docs/scaling/zk-rollups/index.md b/public/content/translations/sl/developers/docs/scaling/zk-rollups/index.md similarity index 100% rename from src/content/translations/sl/developers/docs/scaling/zk-rollups/index.md rename to public/content/translations/sl/developers/docs/scaling/zk-rollups/index.md diff --git a/src/content/translations/sl/developers/docs/standards/index.md b/public/content/translations/sl/developers/docs/standards/index.md similarity index 100% rename from src/content/translations/sl/developers/docs/standards/index.md rename to public/content/translations/sl/developers/docs/standards/index.md diff --git a/src/content/translations/sl/developers/docs/standards/tokens/erc-1155/index.md b/public/content/translations/sl/developers/docs/standards/tokens/erc-1155/index.md similarity index 100% rename from src/content/translations/sl/developers/docs/standards/tokens/erc-1155/index.md rename to public/content/translations/sl/developers/docs/standards/tokens/erc-1155/index.md diff --git a/public/content/translations/sl/developers/docs/standards/tokens/erc-20/index.md b/public/content/translations/sl/developers/docs/standards/tokens/erc-20/index.md new file mode 100644 index 00000000000..242b9bc0cc6 --- /dev/null +++ b/public/content/translations/sl/developers/docs/standards/tokens/erc-20/index.md @@ -0,0 +1,148 @@ +--- +title: Standard za žetone ERC-20 +description: +lang: sl +--- + +## Uvod {#introduction} + +**Kaj je žeton?** + +V Ethereumu lahko žetoni predstavljajo praktično karkoli: + +- točke ugleda na spletni platformi, +- spretnosti osebe v igri, +- loterijske srečke, +- finančna sredstva, kot je delež v podjetju, +- fiat valuto, kot je USD, +- unčo zlata. +- in drugo ... + +Tako mogočna funkcionalnost Ethereuma mora biti upravljana z robustnim standardom, kajne? Točno to je področje, kjer ima ERC-20 svojo vlogo! Ta standard razvijalcem omogoča razvoj aplikacij žetonov, ki so interoperabilni z drugimi produkti in storitvami. + +**Kaj je ERC-20?** + +ERC-20 predstavlja standard za zamenljive žetone. Z drugimi besedami: žetoni imajo značilnost, ki vsak žeton naredi popolnoma identičen (po vrsti in vrednosti) drugemu žetonu. Na primer, žeton ERC-20 deluje enako kot ETH, kar pomeni, da je in vedno bo 1 žeton enak vsem drugim žetonom. + +## Predpogoji {#prerequisites} + +- [Računi](/developers/docs/accounts) +- [Pametne pogodbe](/developers/docs/smart-contracts/) +- [Standardi za žetone](/developers/docs/standards/tokens/) + +## Jedro {#body} + +ERC-20 (Zahteva Ethereum za komentarje 20), ki ga je novembra 2015 predlagal Fabian Vogelsteller, je standard za žetone, ki implementira API za žetone znotraj pametnih pogodb. + +Primeri funkcionalnosti, ki jih zagotavlja ERC-20: + +- prenos žetonov z enega računa na drugega, +- pridobitev trenutnega stanja žetonov računa, +- pridobitev celotne zaloge žetona, dostopne na omrežju, +- odobritev možnosti, da lahko količino žetona z enega računa porabi račun tretje osebe. + +Če pametna pogodba implementira naslednje metode in dogodke, se lahko imenuje pogodba žetona ERC-20; in ko je enkrat uveljavljena, bo odgovorna za sledenje ustvarjenih žetonov na Ethereumu. + +Od [EIP-20](https://eips.ethereum.org/EIPS/eip-20): + +### Metode {#methods} + +```solidity +function name() public view returns (string) +function symbol() public view returns (string) +function decimals() public view returns (uint8) +function totalSupply() public view returns (uint256) +function balanceOf(address _owner) public view returns (uint256 balance) +function transfer(address _to, uint256 _value) public returns (bool success) +function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) +function approve(address _spender, uint256 _value) public returns (bool success) +function allowance(address _owner, address _spender) public view returns (uint256 remaining) +``` + +### Dogodki {#events} + +```solidity +event Transfer(address indexed _from, address indexed _to, uint256 _value) +event Approval(address indexed _owner, address indexed _spender, uint256 _value) +``` + +### Primeri {#web3py-example} + +Oglejmo si, zakaj je standard tako pomemben za to, da poenostavi pregled katerekoli pogodbe žetona ERC-20 na Ethereumu. Za ustvarjanje vmesnika za katerikoli žeton ERC-20 potrebujemo le binarni vmesnik pogodbene aplikacije (ABI). Kot lahko vidite spodaj, bomo uporabili poenostavljen ABI, da bi ustvarili primer z nizkim trenjem. + +#### Primer Web3.py {#web3py-example} + +Najprej se prepričajte, da ste namestili knjižnico [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) Python: + +```bash +pip install web3 +``` + +```python +from web3 import Web3 + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI +weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # Wrapped ether (WETH) + +acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11" # Uniswap V2: DAI 2 + +# This is a simplified Contract Application Binary Interface (ABI) of an ERC-20 Token Contract. +# It will expose only the methods: balanceOf(address), decimals(), symbol() and totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'decimals', + 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +dai_contract = w3.eth.contract(address=w3.toChecksumAddress(dai_token_addr), abi=simplified_abi) +symbol = dai_contract.functions.symbol().call() +decimals = dai_contract.functions.decimals().call() +totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals +addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# DAI +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) + +weth_contract = w3.eth.contract(address=w3.toChecksumAddress(weth_token_addr), abi=simplified_abi) +symbol = weth_contract.functions.symbol().call() +decimals = weth_contract.functions.decimals().call() +totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals +addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# WETH +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) +``` + +## Nadaljnje branje {#further-reading} + +- [EIP-20: ERC-20 standard za žetone](https://eips.ethereum.org/EIPS/eip-20) +- [OpenZeppelin – žetoni](https://docs.openzeppelin.com/contracts/3.x/tokens#ERC20) +- [OpenZeppelin – implementacija ERC-20](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) diff --git a/public/content/translations/sl/developers/docs/standards/tokens/erc-721/index.md b/public/content/translations/sl/developers/docs/standards/tokens/erc-721/index.md new file mode 100644 index 00000000000..96b9a620707 --- /dev/null +++ b/public/content/translations/sl/developers/docs/standards/tokens/erc-721/index.md @@ -0,0 +1,243 @@ +--- +title: ERC-721 standard za nezamenljive žetone +description: +lang: sl +--- + +## Uvod {#introduction} + +**Kaj je nezamenljiv žeton?** + +Nezamenljiv žeton (NFT) se uporablja za identifikacijo nečesa oz. nekoga na edinstven način. Ta tip žetona je popoln za uporabo na platformah, ki ponujajo zbirateljske predmete, ključe za dostop, loterijske srečke, oštevilčene sedeže za koncerte in športne tekme itd. Ta posebni tip žetona ima izjemne možnosti, zato si zasluži lasten standard. ERC-721 je namenjen točno temu! + +**Kaj je ERC-721?** + +ERC-721 predstavlja standard za NFT-je. Z drugimi besedami: ta tip žetona je edinstven in ima lahko različno vrednost glede na drug žeton iz iste pametne pogodbe, morda zaradi svoje starosti, redkosti ali celo nečesa drugega, kot je njegov videz. Počakajte, videz? + +Da! Vsi NFT-ji imajo spremenljivko `uint256`, ki se imenuje `tokenId`, tako da morata biti za katerokoli pogodbo ERC-721 `naslov pogodbe, uint256 tokenId` globalno edinstvena. Glede na to ima lahko dapp "pretvornik", ki uporablja `tokenId` kot vnos in tako izda sliko nečesa zanimivega, kot so zombiji, orožje, vrline ali izjemni mucki! + +## Predpogoji {#prerequisites} + +- [Računi](/developers/docs/accounts/) +- [Pametne pogodbe](/developers/docs/smart-contracts/) +- [Standardi za žetone](/developers/docs/standards/tokens/) + +## Jedro {#body} + +ERC-721 (Zahteva Ethereum za komentarje 721), ki so ga januarja 2018 predlagali William Entriken, Dieter Shirley, Jacob Evans in Nastassia Sachs, je standard za nezamenljive žetone, ki implementira API za žetone znotraj pametnih pogodb. + +Zagotavlja funkcionalnosti, kot so prenos žetonov z enega računa na drugega, prejem trenutnega stanja žetonov določenega računa in tudi prejem skupne količine žetonov, ki je na voljo v omrežju. Poleg tega ima tudi nekaj drugih funkcionalnosti, kot je potrditev porabe določene količine žetonov z enega računa s strani računa tretje osebe. + +Če pametna pogodba implementira naslednje metode in dogodke, se lahko imenuje pogodba nezamenljivega žetona ERC-721. Ko je enkrat uveljavljena, bo odgovorna za sledenje ustvarjenih žetonov na Ethereumu. + +Od [EIP-721](https://eips.ethereum.org/EIPS/eip-721): + +### Metode {#methods} + +```solidity + function balanceOf(address _owner) external view returns (uint256); + function ownerOf(uint256 _tokenId) external view returns (address); + function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; + function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; + function transferFrom(address _from, address _to, uint256 _tokenId) external payable; + function approve(address _approved, uint256 _tokenId) external payable; + function setApprovalForAll(address _operator, bool _approved) external; + function getApproved(uint256 _tokenId) external view returns (address); + function isApprovedForAll(address _owner, address _operator) external view returns (bool); +``` + +### Dogodki {#events} + +```solidity + event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); + event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); + event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); +``` + +### Primeri {#web3py-example} + +Oglejmo si, zakaj je standard tako pomemben za to, da poenostavi pregled katerekoli pogodbe žetona ERC-721 na Ethereumu. Za ustvarjanje vmesnika za katerikoli žeton ERC-721 potrebujemo le binarni vmesnik pogodbene aplikacije (ABI). Kot lahko vidite spodaj, bomo uporabili poenostavljen ABI, da bi ustvarili primer z nizkim trenjem. + +#### Primer Web3.py {#web3py-example} + +Najprej se prepričajte, da ste namestili knjižnico [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) Python: + +```bash +pip install web3 +``` + +```python +from web3 import Web3 +from web3._utils.events import get_event_data + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # CryptoKitties Contract + +acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # CryptoKitties Sales Auction + +# This is a simplified Contract Application Binary Interface (ABI) of an ERC-721 NFT Contract. +# It will expose only the methods: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'name', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'ownerOf', + 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, +] + +ck_extra_abi = [ + { + 'inputs': [], + 'name': 'pregnantKitties', + 'outputs': [{'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'name': '_kittyId', 'type': 'uint256'}], + 'name': 'isPregnant', + 'outputs': [{'name': '', 'type': 'bool'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +ck_contract = w3.eth.contract(address=w3.toChecksumAddress(ck_token_addr), abi=simplified_abi+ck_extra_abi) +name = ck_contract.functions.name().call() +symbol = ck_contract.functions.symbol().call() +kitties_auctions = ck_contract.functions.balanceOf(acc_address).call() +print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}") + +pregnant_kitties = ck_contract.functions.pregnantKitties().call() +print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}") + +# Using the Transfer Event ABI to get info about transferred Kitties. +tx_event_abi = { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'from', 'type': 'address'}, + {'indexed': False, 'name': 'to', 'type': 'address'}, + {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'Transfer', + 'type': 'event' +} + +# We need the event's signature to filter the logs +event_signature = w3.sha3(text="Transfer(address,address,uint256)").hex() + +logs = w3.eth.getLogs({ + "fromBlock": w3.eth.blockNumber - 120, + "address": w3.toChecksumAddress(ck_token_addr), + "topics": [event_signature] +}) + +# Notes: +# - 120 blocks is the max range for CloudFlare Provider +# - If you didn't find any Transfer event you can also try to get a tokenId at: +# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events +# Click to expand the event's logs and copy its "tokenId" argument + +recent_tx = [get_event_data(w3.codec, tx_event_abi, log)["args"] for log in logs] + +kitty_id = recent_tx[0]['tokenId'] # Paste the "tokenId" here from the link above +is_pregnant = ck_contract.functions.isPregnant(kitty_id).call() +print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}") +``` + +Pogodba CryptoKitties ima poleg standardnih tudi nekaj drugih zanimivih dogodkov. + +Oglejmo si dva od njih: `Nosečnost` in `Rojstvo`. + +```python +# Using the Pregnant and Birth Events ABI to get info about new Kitties. +ck_extra_events_abi = [ + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}], + 'name': 'Pregnant', + 'type': 'event' + }, + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'kittyId', 'type': 'uint256'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'genes', 'type': 'uint256'}], + 'name': 'Birth', + 'type': 'event' + }] + +# We need the event's signature to filter the logs +ck_event_signatures = [ + w3.sha3(text="Pregnant(address,uint256,uint256,uint256)").hex(), + w3.sha3(text="Birth(address,uint256,uint256,uint256,uint256)").hex(), +] + +# Here is a Pregnant Event: +# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog +pregnant_logs = w3.eth.getLogs({ + "fromBlock": w3.eth.blockNumber - 120, + "address": w3.toChecksumAddress(ck_token_addr), + "topics": [ck_event_signatures[0]] +}) + +recent_pregnants = [get_event_data(w3.codec, ck_extra_events_abi[0], log)["args"] for log in pregnant_logs] + +# Here is a Birth Event: +# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a +birth_logs = w3.eth.getLogs({ + "fromBlock": w3.eth.blockNumber - 120, + "address": w3.toChecksumAddress(ck_token_addr), + "topics": [ck_event_signatures[1]] +}) + +recent_births = [get_event_data(w3.codec, ck_extra_events_abi[1], log)["args"] for log in birth_logs] +``` + +## Priljubljeni NFT-ji {#popular-nfts} + +- [Sledilnik Etherscan NFT](https://etherscan.io/tokens-nft) navaja NFT-je na Ethereumu z najvišjo količino trgovanja. +- [CryptoKitties](https://www.cryptokitties.co/) je igra, osredotočena okoli vzreje, zbiranja in prisrčnih bitij, ki jih imenujemo CryptoKitties. +- [Sorare](https://sorare.com/) je globalna igra fantazijskega nogometa, kjer lahko zbirate omejene izdaje zbirateljskih predmetov, upravljate svoje ekipe in tekmujete za nagrade. +- [Storitev za Ethereum imena (ENS)](https://ens.domains/) ponuja varen in decentraliziran način za naslavljanje virov tako na kot tudi izven blokovne verige z uporabo preprostih, človeku berljivih imen. +- [Unstoppable Domains](https://unstoppabledomains.com/) je podjetje iz San Francisca, ki razvija imena na blokovnih verigah. Imena na blokovnih verigah nadomestijo naslove kriptovalut s človeško berljivimi imeni in so lahko uporabljena za omogočanje spletnih strani, odpornih na cenzuro. +- [Gods Unchained Cards](https://godsunchained.com/) je igra izmenjave kart na blokovni verigi Ethereum, ki za prenos dejanskega lastništva predmetov v igrah uporablja NFT-je. +- [Bored Ape Yacht Club](https://boredapeyachtclub.com) je zbirka 10 000 edinstvenih NFT-jev, ki poleg tega, da so dokazljivo redki umetniški kosi, delujejo tudi kot članski žeton kluba, ki članom zagotavlja prednosti in ugodnosti, ki se kot rezultat prizadevanja skupnosti s časom povečujejo. + +## Nadaljnje branje {#further-reading} + +- [EIP-721: standard za nezamenljive žetone ERC-721](https://eips.ethereum.org/EIPS/eip-721) +- [OpenZeppelin – dokumentacija ERC-721](https://docs.openzeppelin.com/contracts/3.x/erc721) +- [OpenZeppelin – implementacija ERC-721](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) +- [Alchemy NFT API](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) diff --git a/src/content/translations/sl/developers/docs/standards/tokens/erc-777/index.md b/public/content/translations/sl/developers/docs/standards/tokens/erc-777/index.md similarity index 100% rename from src/content/translations/sl/developers/docs/standards/tokens/erc-777/index.md rename to public/content/translations/sl/developers/docs/standards/tokens/erc-777/index.md diff --git a/src/content/translations/sl/developers/docs/standards/tokens/index.md b/public/content/translations/sl/developers/docs/standards/tokens/index.md similarity index 100% rename from src/content/translations/sl/developers/docs/standards/tokens/index.md rename to public/content/translations/sl/developers/docs/standards/tokens/index.md diff --git a/src/content/translations/sl/eips/index.md b/public/content/translations/sl/eips/index.md similarity index 100% rename from src/content/translations/sl/eips/index.md rename to public/content/translations/sl/eips/index.md diff --git a/src/content/translations/sl/governance/index.md b/public/content/translations/sl/governance/index.md similarity index 100% rename from src/content/translations/sl/governance/index.md rename to public/content/translations/sl/governance/index.md diff --git a/public/content/translations/sl/nft/index.md b/public/content/translations/sl/nft/index.md new file mode 100644 index 00000000000..c2c1c3853ba --- /dev/null +++ b/public/content/translations/sl/nft/index.md @@ -0,0 +1,94 @@ +--- +title: Nezamenljivi žetoni (NFT) +description: Pregled NFT-jev na Ethereumu +lang: sl +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: Logotip Eth prikazan prek holograma. +summaryPoint1: Način predstavitve česarkoli edinstvenega kot sredstva, ki temelji na Ethereumu. +summaryPoint2: NFT-ji dajejo ustvarjalcem vsebin več moči, kot so jo imeli kadarkoli prej. +summaryPoint3: Podprto s pametnimi pogodbami na Ethereumovi verigi blokov. +--- + +## Kaj je NFT? {#what-are-nfts} + +NFT-ji so žetoni, ki so individualno unikatni. Vsak NFT ima drugačne lastnosti (nezamenljive) in je dokazljivo redek. To je drugače od žetonov, kot so ERC-20, kjer je vsak žeton v setu identičen in ima enake lastnosti (je zamenljiv). Vseeno vam je, kateri specifični bankovec imate v denarnici, zato ker so vsi identični in imajo enako vrednost. Vendar, vam _je_ pomembno, kateri specifični NFT imate, saj imajo vsi svoje individualne lastnosti, s katerimi jih lahko ločite od drugih (so nezamenljivi). + +Unikatnost vsakega NFT-ja omogoča spremembo stvari, kot so umetnost, zbirateljski predmeti ali celo nepremičnine, v žetone, kjer specifičen NFT predstavlja nek unikaten resničen ali digitalen izdelek. Lastništvo sredstva ščiti Ethereumova veriga blokov – nihče ne more spreminjati zapisa o lastništvu ali s kopiranjem in lepljenjem ustvariti novega nezamenljivega žetona. + + + +## Internet sredstev {#internet-of-assets} + +NFT-ji in Ethereum rešujejo nekatere težave, ki danes obstajajo na spletu. Medtem ko vse postaja bolj digitalno, se pojavlja potreba za repliciranje značilnosti fizičnih predmetov, kot so omejenost količine, edinstvenost in dokaz o lastništvu, brez potrebe po centralni avtoriteti. Z NFT-ji ste lahko na primer lastnik glasbene datoteke mp3, ki ni specifična aplikaciji ponudnika glasbe, ali pa si lastite uporabniško ime na socialnem omrežju, ki ga lahko prodate ali zamenjate, vendar vam ga ponudnik spletne platforme sam ne more odvzeti. + +Poglejte si, kako je videti primerjava interneta NFT-jev z internetom, ki ga večinoma uporabljamo danes ... + +### Primerjava {#nft-comparison} + +| Internet NFT-jev | Današnji internet | +| ---------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Ste lastnik svojih sredstev! Samo vi jih lahko prodate ali jih zamenjate. | Sredstva najamete od neke organizacije. | +| NFT-ji so digitalno edinstveni, nobena dva NFT-ja nista enaka. | Kopija entitete po navadi ni razločljiva od originala. | +| Lastništvo NFT-ja je shranjeno na blokovni verigi, kjer ga lahko kdorkoli preveri. | Lastniški zapisi digitalnih predmetov so shranjeni v strežnikih, ki jih upravljajo institucije – morate jim zaupati. | +| NFT-ji so pametne pogodbe na Ethereumu. To pomeni, da jih je enostavno uporabiti v drugih pametnih pogodbah in aplikacijah na Ethereumu! | Podjetja z digitalnimi izdelki po navadi zahtevajo, da uporabljate njihovo zagrajeno infrastrukturo. | +| Ustvarjalci vsebin lahko prodajo svoja dela kjerkoli in tako dostopajo do globalnega trga. | Ustvarjalci se zanašajo na infrastrukturo platform, ki jih uporabljajo. Te so pogosto podvržene pogojem uporabe in se poslužujejo geografskih omejitev. | +| Izdelovalci NFT-jev lahko ohranijo lastniške pravice svojega dela in vprogramirajo licenčnine neposredno v pogodbe NFT. | Platforme, kot so storitve za predvajanje glasbe, obdržijo večino dobička od prodaje. | + +## Kako NFT-ji delujejo? {#how-nfts-work} + +Kot vsak žeton, izdan na Ethereumu, so NFT-ji izdani s pametno pogodbo. Pametna pogodba je skladna z enim od različnih standardov NFT (običajno ERC-721 ali ERC-1155), ki določajo funkcije pogodbe. Pogodba lahko naredi NFT-je in jih dodeli specifičnemu lastniku. Lastništvo je definirano v pogodbi s povezavo določenega NFT-ja z določenim naslovom. NFT ima identifikator in po navadi tudi metapodatke, ki naredijo ta specifični žeton unikaten. + +Ko nekdo izdela NFT, v resnici izvaja funkcijo pametne pogodbe, ki dodeli specifičen NFT njihovemu naslovu. Te informacije so shranjene v podatkovni shrambi pametne pogodbe, ki pa je del blokovne verige. Izdelovalec pametne pogodbe lahko v pogodbo zapiše dodatno logiko, kot je recimo omejitev ponudbe žetona ali definiranje licenčnine, ki bo plačana ustvarjalcu vsakič, ko bo žeton prenesen. + +## Za kaj se uporabljajo NFT-ji? {#nft-use-cases} + +NFT-ji so uporabni za veliko stvari, kot so: + +- dokaz, da ste se udeležili dogodka, +- certifikat po dokončanem tečaju, +- predmeti, ki jih je mogoče imeti v lasti, za igre, +- digitalna umetnost, +- žetoni za fizične predmete, +- dokazovanje vaše spletne identitete, +- omejevanje dostopa do vsebine, +- upravljanje vstopnic, +- decentralizirana imena domen, +- zavarovanje v DeFi. + +Morda ste umetnik, ki želi svoje delo deliti ob pomoči NFT-jev, brez izgube nadzora nad njimi in žrtvovanja svojih zaslužkov posrednikom. Izdelate lahko novo pametno pogodbo ter določite število NFT-jev in njihove lastnosti ter jih povežete z določenim umetniškim delom. Kot umetnik lahko pametno pogodbo sprogramirate tako, da na primer ob vsakem prenosu NFT-ja prejmete licenčnino v višini 5 % prodajne cene. Prav tako lahko vedno dokažete, da ste vi ustvarili NFT-je, ker ste lastnik denarnice, ki je na blokovni verigi objavila pogodbo. Vaši kupci lahko enostavno preverijo, če so lastnik avtentičnega NFT-ja iz vaše zbirke, saj je naslov njihove denarnice povezan z žetonom v vaši pametni pogodbi. Kupci lahko NFT uporabljajo po celem ekosistemu Ethereum, brez dvoma o avtentičnosti. + +Predstavljajte si na primer vstopnico za športni dogodek. Kot lahko organizator dogodka izbere, koliko vstopnic bo prodal, se lahko ustvarjalec NFT-ja odloči, koliko replik bo obstajalo. Včasih so to natančne replike, kot je 5000 splošnih vstopnic. Včasih je ustvarjenih nekaj zelo podobnih, vendar je vsaka malo drugačna, kot so vstopnice z dodeljenim sedežem. Te se lahko kupi in proda neposredno, brez plačil posrednikom, kupec pa je lahko vedno gotov, da so vstopnice avtentične, saj lahko preveri naslov pametne pogodbe. + +Na ethereum.org se NFT-ji uporabljajo kot dokaz, da so ljudje sodelovali pri razvoju v naših repozitorijih GitHub ali pa so se udeležili klicev. Imamo celo svojo internetno domeno NFT. Če prispevate k ethereum.org, lahko pridobite NFT PAOP. Za nekatera kriptosrečanja so bile kot vstopnice uporabljeni protkoli POAP. [Več o prispevanju](/contributing/#poap). + +![ethereum.org POAP](./poap.png) + +To spletišče ima tudi alternativno ime domene, ki ga poganjajo NFT-ji, **ethereum.eth**. Naš naslov `.org` upravlja upravljavec sistema za imena domen (DNS), medtem ko je domena ethereum`.eth` registrirana prek Ethereumove imenske storitve (ENS). Je v naši lasti in jo upravljamo sami. [Oglejte si naš zapis ENS](https://app.ens.domains/name/ethereum.eth) + +[Več o storitvi ENS](https://app.ens.domains) + + + +### Varnost NFT-jev {#nft-security} + +Ethereumovo varnost zagotavlja mehanizem dokaza o deležu. Sistem je zasnovan tako, da odvrača ekonomsko zlonamerna dejanja, zato je Ethereum odporen na posege. Vse to omogoča obstoj in uporabo NFT-jev. Ko blok z vašo transakcijo z NFT-ji postane zaključen, bi napadalca stalo več milijonov ETH, da bi ga spremenil. Kdorkoli, ki uporablja Ethereumovo programsko opremo, bi lahko takoj zaznal nepoštene posege v NFT, krivec pa bi bil ekonomsko kaznovan in izločen iz omrežja. + +Varnostne težave, povezane z NFT-ji, so najpogosteje posledica prevar z lažnim predstavljanjem, ranljivosti v pametnih pogodbah ali uporabniških napak (na primer nenamerno izpostavljanje zasebnih ključev), zato je ustrezna zaščita denarnic za lastnike NFT-jev izjemno pomembna. + + + Več o varnosti + + +## Dodatno branje {#further-reading} + +- [Navodila za NFT-je za začetnike](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, januar 2020_ +- [Sledilnik EtherscanNFT](https://etherscan.io/nft-top-contracts) +- [Standard za žetone ERC-721](/developers/docs/standards/tokens/erc-721/) +- [Standard za žetone ERC-1155](/developers/docs/standards/tokens/erc-1155/) + + + + \ No newline at end of file diff --git a/public/content/translations/sl/roadmap/beacon-chain/index.md b/public/content/translations/sl/roadmap/beacon-chain/index.md new file mode 100644 index 00000000000..dcff2d23b4e --- /dev/null +++ b/public/content/translations/sl/roadmap/beacon-chain/index.md @@ -0,0 +1,76 @@ +--- +title: Oddajniška veriga +description: Več informacij o oddajniški verigi – nadgradnji, s katero je bil uveden Ethereum z dokazom o deležu. +lang: sl +template: upgrade +image: /upgrades/core.png +alt: +summaryPoint1: Oddajniška veriga je v Ethereumovo okolje vpeljala dokaz o deležu. +summaryPoint2: Z izvirno Ethereumovo verigo, ki je uporabljala dokaz o delu, je bila spojena septembra 2022. +summaryPoint3: Oddajniška veriga je vpeljala protokol z logiko za doseganje soglasja in blokiranja lažnih govoric, ki zdaj ščiti Ethereum. +--- + + + Oddajniška veriga je začela delovati 1. decembra 2020 in je formalizirala dokaz o deležu kot Ethereumov mehanizem za doseganje soglasja ob spojitvi 15. septembra 2022. + + +## Kaj je bila oddajniška veriga? {#what-is-the-beacon-chain} + +Oddajniška veriga se je imenovala izvirna veriga blokov z mehanizmom dokaza o deležu, ki je začela delovati leta 2020. Ustvarili smo jo, da bi preverili, ali je mehanizem za doseganje soglasja z dokazom o deležu ustrezen in vzdržen, preden bi ga omogočili v glavnem Ethereumovem omrežju. Zaradi tega je delovala vzporedno z izvirnim Ethereumovim omrežjem z dokazom o delu. Za izklop mehanizma z dokazom o delu in vklop mehanizma z dokazom o deležu v Ethereumovem omrežju smo morali oddajniški verigi ukazati, da sprejema transakcije z izvirne Ethereumove verige, združiti te transakcije v bloke in jih razvrstiti v verigo blokov z mehanizmom za doseganje soglasja z dokazom o deležu. V istem trenutku so izvirni Ethereumovi odjemalci prenehali z rudarjenjem, posredovanjem blokov in logiko za doseganje soglasja ter jih predali oddajniški verigi. Ta dogodek se imenuje [spojitev](/roadmap/merge/). Ko je prišlo do spojitve, ni bilo več dveh verig blokov. Obstajala je le še ena Ethereumova veriga z dokazom o deležu. + +## Kaj je naredila oddajniška veriga? {#what-does-the-beacon-chain-do} + +Z oddajniško verigo je bila poimenovana glavna knjiga računov, s katero se je usmerjalo in koordiniralo omrežje Ethereumovih [zastavljavcev](/staking/), preden so ti začeli preverjati resnične Ethereumove transakcije. Ni obdelovala transakcij ali upravljala interakcij s pametnimi pogodbami. + +Uvedla je mehanizem za doseganje soglasja (ali "plast soglasja"), ki je zamenjalo Ethereumovo rudarjenje po mehanizmu z dokazom o delu, in tako prinesla številne izboljšave. + +Oddajniška veriga je bila temeljni del [varnega, okolju prijaznega in prilagodljivega Ethereuma, kot ga poznamo danes](/roadmap/vision/). + +## Vpliv oddajniške verige {#beacon-chain-features} + +### Vpeljava zastavljanja {#introducing-staking} + +Oddajniška veriga je v Ethereum vpeljala mehanizem [dokaza o deležu](/developers/docs/consensus-mechanisms/pos/). Ta ščiti Ethereum in omogoča validatorjem, da v postopku zaslužijo več ETH. V praksi to pomeni, da je treba za aktiviranje programske opreme za validacijo zastaviti ETH. Kot zastavljavec poganjate programsko opremo, ki ustvarja in validira nove bloke v verigi. + +Zastavljanje deluje podobno, kot je prej [rudarjenje](/developers/docs/mining/), vendar je drugačno. Rudarjenje je zahtevalo veliko predhodno investicijo v obliki zmogljive strojne opreme in porabe energije. Posledici sta bili ekonomija obsega in spodbujanje centralizacije. Rudarjenje prav tako ni vključevalo zahteve po zamrznitvi sredstev kot jamstva, kar je omejevalo možnosti prokotola, da kaznuje storilce po napadu. + +S prehodom na mehanizem dokaza o deležu je Ethereum postal občutno varnejši in bolj decentraliziran v primerjavi z mehanizmom dokaza o delu. Več ljudi kot sodeluje v omrežju, bolj decentralizirano in varno pred napadi postane. + + + Če želite postati validator in pomagati pri zaščiti Ethereuma, preberite več o zastavljanju. + + +### Priprava na razdrobitev {#setting-up-for-sharding} + +Odkar se je oddajniška veriga spojila z izvirnim Ethereumovim omrežjem, si Ethereumova skupnost prizadeva razširiti omrežje. + +Mehanizem dokaza o deležu ima to prednost, da ima v vsakem trenutku register vseh odobrenih ustvarjalcev blokov in njihove zastavljene deleže ETH. Ta register omogoča postopek deljenja in vladanja, s katerim zanesljivo razdeli določene odgovornosti v omrežju. + +Ta odgovornost je drugačna kot mehanizem dokaza o delu, kjer rudarji niso odgovorni omrežju. Tako lahko kadarkoli in brez posledic trajno prenehajo z rudarjenjem in izklopijo programsko opremo vozlišča. Pri tem mehanizmu prav tako ni registra znanih ustvarjalcev blokov niti zanesljivega načina za varno razdelitev odgovornosti v omrežju. + +[Več o razdrobitvi](/roadmap/danksharding/) + +## Razmerje med nadgradnjami {#relationship-between-upgrades} + +Vse nadgradnje Ethereuma so med seboj delno povezane. Povzemimo torej, kako oddajniška veriga vpliva na druge nadgradnje. + +### Oddajniška veriga in spojitev {#merge-and-beacon-chain} + +Oddajniška veriga je najprej delovala neodvisno od Ethereumovega glavnega omrežja, vendar sta se leta 2022 spojila. + + + Spojitev + + +### Drobci in oddajniška veriga {#shards-and-beacon-chain} + +Razdrobitev je mogoče v Ethereumovo okolje varno uvesti le, ko je vpeljan mehanizem za doseganje soglasja z dokazom o deležu. Oddajniška veriga je vpeljala zastavljanje, ki se je "spojilo" z glavnim omrežem in tlakovalo pot razdrobitvi, ki bo pomagala pri širitvi Ethereumovega omrežja. + + + Razdrobljene verige + + +## Dodatno branje + +- [Več o prihodnjih nadgradnjah Ethereuma](/roadmap/vision) +- [Več o dokazu o deležu](/developers/docs/consensus-mechanisms/pos) diff --git a/public/content/translations/sl/roadmap/merge/index.md b/public/content/translations/sl/roadmap/merge/index.md new file mode 100644 index 00000000000..f45d12310a4 --- /dev/null +++ b/public/content/translations/sl/roadmap/merge/index.md @@ -0,0 +1,225 @@ +--- +title: Spojitev +description: Več informacij o spojitvi – trenutku, ko je Ethereumovo glavno omrežje začelo uporabljati dokaz o deležu. +lang: sl +template: upgrade +image: /upgrades/merge.png +alt: +summaryPoint1: Ethereumovo glavno omrežje uporablja dokaz o deležu, vendar ni bilo vedno tako. +summaryPoint2: Nadgradnja z izvirnega mehanizma dokaza o delu na dokaz o deležu se je imenovala spojitev. +summaryPoint3: Spojitev je ime dogodka, ko se je Ethereumovo glavno omrežje spojilo z oddajniško verigo – ločeno verigo blokov, ki je uporabljalo dokaz o deležu. Obe omrežji zdaj obstajata kot ena veriga. +summaryPoint4: Spojitev je Ethereumovo porabo energijo zmanjšala za približno 99,95 %. +--- + + + Spojitev je bila izvedena 15. septembra 2022. Zaključila je Ethereumov prehod na mehanizem za doseganje soglasja z dokazom o deležu. Ta je uradno zamenjal mehanizem dokaza o delu in porabo energije zmanjšal za približno 99,95 %. + + +## Kaj je bila spojitev? {#what-is-the-merge} + +Spojitev je bila združitev izvirne izvajalne plasti Ethereuma (glavno omrežje, ki je obstajalo od [izvora](/history/#frontier)) z novo plastjo z mehanizmom za doseganje soglasja z dokazom o deležu, oddajniško verigo. Odpravila je potrebo po energijsko potratnem rudarjenju in namesto tega omogočila zaščito omrežja z zastavljanjem ETH. Predstavljala je zares vznemirljiv korak k realizaciji Ethereumove vizije – več možnosti širitve, varnosti in trajnosti. + + + +Najprej je [oddajniška veriga](/roadmap/beacon-chain/) stopila v uporabo ločeno od [glavnega omrežja](/glossary/#mainnet). Ethereumovo glavno omrežje z vsemi računi, zneski, pametnimi pogodbami in stanjem verige blokov je še naprej varoval mehanizem [dokaza o delu](/developers/docs/consensus-mechanisms/pow/), tudi ko je oddajniška veriga vzporedno uporabljala [dokaz o deležu](/developers/docs/consensus-mechanisms/pos/). Spojitev je končno združila oba sistema in mehanizem dokaza o delu je trajno zamenjal mehanizem dokaza o deležu. + +Predstavljajte si, da je Ethereum vesoljska ladja, ki je bila izstreljena, še preden je bila povsem pripravljena na medzvezdno potovanje. Z oddajniško verigo je skupnost pripravila nov motor in močnejši trup. Po celovitem testiranju je bil čas, da nov motor kar med poletom zamenja starega. Tako se je nov učinkovitejši motor združil z obstoječo vesoljsko ladjo, ki bo tako lahko prepotovala velike razdalje in raziskala vesolje. + +## Spojitev z glavnim omrežjem {#merging-with-mainnet} + +Z mehanizmom dokaza o delu je bilo Ethereumovo glavno omrežje zaščiteno od izvora do spojitve. Tako je lahko Ethereumova veriga blokov, ki jo vsi poznamo, julija 2015 začela delovati z vsemi znanimi funkcijami – transakcijami, pametnimi pogodbami, računi itd. + +Skozi celotno Ethereumovo zgodovino so se razvijalci pripravljali na neizogiben prehod z mehanizma dokaza o delu na mehanizem dokaza o deležu. 1. decembra 2020 je bila oddajniška veriga ustvarjena kot veriga blokov, ločena od glavnega omrežja, ki je delovala vzporedno. + +Oddajniška veriga najprej ni obdelovala transakcij v glavnem omrežju. Namesto tega je dosegala soglasja o lastnem stanju, tako da se je strinjala z aktivnimi validatorji in stanji na njihovih računih. Po obsežnem preskušanju je prišel čas, ko je začela oddajniška veriga dosegati soglasja o podatkih iz resničnega sveta. Po spojitvi je postala oddajniška veriga mehanizem za doseganje soglasij o vseh podatkih v omrežju, vključno s transakcijami in stanji na računih na izvajalni plasti. + +Spojitev je predstavljala uradni premik, kjer se je oddajniška veriga začela uporabljati kot sredstvo za ustvarjanje blokov. Rudarjenje ni več sredstvo za ustvarjanje veljavnih blokov. To vlogo so prevzeli validatorji dokaza o deležu, ki so zdaj odgovorni za preverjanje veljavnosti vseh transakcij in predlaganih blokov. + +V spojitvi ni bil izgubljen noben del zgodovine. Ko se je glavno omrežje spojilo z oddajniško verigo, je spojilo tudi celotno Ethereumovo zgodovino transakcij. + + +Ta prehod na mehanizem dokaza o deležu je spremenil način izdajanja etra. Preberite več o izdajanju etra pred spojitvijo in po njej. + + +### Uporabniki in imetniki {#users-holders} + +**Spojitev ni za imetnike in uporabnike spremenila ničesar.** + +_Naj ponovimo_: kot uporabniku ali imetniku ETH ali kateregakoli drugega digitalnega sredstva na Ethereumu pa tudi kot zastavljavcu, ki ne upravlja vozlišča, **vam po spojitvi s sredstvi ali denarnico ni treba narediti ničesar.** ETH je samo ETH. Ne obstajata "stari in novi ETH" ali "ETH1 in ETH2", pa tudi denarnice po spojitvi delujejo popolnoma enako kot prej – osebe, ki pravijo drugače, so zelo verjetno prevaranti. + +Tudi po zamenjavi mehanizma dokaza o delu je celotna Ethereumova zgodovina ostala enaka in se zaradi prehoda na mehanizem dokaza o deležu ni spremenila. Tudi po spojitvi imate še vedno dostop do vseh sredstev v svoji denarnici, ki ste jih tja shranili pred spojitvijo. **Ni vam treba opraviti nobene nadgradnje.** + +[Več o varnosti Ethereuma](/security/#eth2-token-scam) + +### Upravljavci vozlišč in razvijalci decentraliziranih aplikacij {#node-operators-dapp-developers} + + + +Ključne naloge vključujejo: + +1. Zaženite tako odjemalca za doseganje soglasja kot izvajalnega odjemalca. Končne točke drugih razvijalcev po spojitvi ne delujejo več. +2. Potrdite pristnost odjemalca za doseganje soglasja in izvajalnega odjemalca s skupnim geslom JWT, da lahko varno komunicirata. +3. Nastavite naslov "prejemnika provizij", da boste lahko prejemali zaslužene provizije transakcij in provizije MEV. + +Če za vozlišče ne opravite zgornjih dveh korakov, bo vozlišče prikazano kot "brez povezave", dokler obe plasti nista sinhronizirani in preverjeni. + +Če ne nastavite "prejemnika provizij", bo validator deloval kot običajno, ne boste pa prejeli neporabljenih provizij in maksimalnih pridobljivih vrednosti (MEV), ki bi jih zaslužili z bloki, ki jih predlaga vaš validator. + + + + +Do spojitve je bil za prejemanje, ustrezno preverjanje in širjenje blokov, ki jih šepeta omrežje, dovolj izvajalni odjemalec (na primer Geth, Erigon, Besu ali Nethermind). _Po spojitvi_ je veljavnost transakcij v izvajalnem tovoru odvisna tudi od veljavnosti "bloka soglasja", v katerem je. + +Zaradi tega potrebuje celotno Ethereumovo vozlišče zdaj izvajalnega odjemalca in odjemalca za doseganje soglasja. Ta dva odjemalca skupaj uporabljata nov programski vmesnik mehanizma. Programski vmesnik mehanizma zahteva preverjanje pristnosti z geslom JWT, ki je posredovan obema odjemalcema, kar omogoča varno komunikacijo. + +Ključne naloge vključujejo: + +– Poleg izvajalnega odjemalca namestite odjemalca za doseganje soglasja. +– Potrdite pristnost izvajalnega odjemalca in odjemalca za doseganje soglasja s skupnim geslom JWT, da bosta lahko varno komunicirala drug z drugim. + +Če za vozlišče ne opravite zgornjih korakov, bo vozlišče prikazano kot "brez povezave", dokler obe plasti nista sinhronizirani in preverjeni. + + + + + +Spojitev je spremenila način doseganja soglasja, kar vključuje tudi spremembe, povezane: + +– s strukturo blokov, +– s časi rež ali blokov, +– z izvajalno kodo, +– z viri naključnosti na verigi ter +– s koncepti _varnih vodilnih_ in _zaključenih blokov_. + +Za več informacij preberite blog [Kako spojitev vpliva na Ethereumovo aplikacijsko plast](https://blog.ethereum.org/2021/11/29/how-the-merge-impacts-app-layer/) Tima Beika. + + +## Spojitev in poraba energije {#merge-and-energy} + +Spojitev predstavlja konec mehanizma dokaza o delu za Ethereum in začetek bolj trajnostno usmerjenega in okolju prijaznega Ethereuma. Ethereumova poraba energije se je znižala za približno 99,95 %, zaradi česar je Ethereum zelena veriga blokov. Pridobite več informacij o [Ethereumovi porabi energije](/energy-consumption/). + +## Spojitev in širjenje omrežja {#merge-and-scaling} + +Spojitev je tudi postavila temelje za nadaljnje širitve omrežja, ki z dokazom o delu niso bile mogoče. Tako se je Ethereum še za korak približal velikosti, varnosti in trajnosti, opisani v [viziji za Ethereum](/roadmap/vision/). + +## Zmote o spojitvi {#misconceptions} + + +Obstajata dve vrsti Ethereumovih vozlišč: vozlišča, ki predlagajo bloke, in vozlišča, ki jih ne. + +Vozlišča, ki predlagajo bloke, predstavljajo le majhno število vseh Ethereumovih vozlišč. Ta kategorija vključuje vozlišča za rudarjenje, ki uporabljajo mehanizem dokaza o delu, in validacijska vozlišča, ki uporabljajo mehanizem dokaza o deležu. Zahteva zagotavljanje ekonomskih virov (na primer računske moči grafične kartice za dokaz o delu ali zastavljenega ETH za dokaz o deležu) za možnost, da občasno predlagajo naslednji blok in zaslužijo nagrade, ki jih podeljuje protokol. + +Drugim vozliščem v omrežju (ki so v večini) ni treba zagotavljati ekonomskih virov, razen običajnega osebnega računalnika z 1–2 TB razpoložljivega prostora za shranjevanje in internetno povezavo. Ta vozlišča ne predlagajo blokov, še vedno pa imajo nepogrešljivo vlogo pri varovanju omrežja. Zagotavljajo namreč ustreznost vseh predlagateljev blokov, tako da poslušajo, ali so nastali novi bloki, in ob njihovem nastanku preverjajo, ali so v skladu s pravili soglasja omrežja. Če je blok veljaven, ga vozlišče posreduje skozi omrežje. Če blok iz kateregakoli vzroka ni veljaven, ga bo programska oprema vozlišča smatrala za neveljavnega in ga ne bo posredovala v omrežje. + +Vozlišče, ki ne ustvarja blokov, lahko kdorkoli vodi v skladu s katerim od mehanizmov za doseganje soglasja (dokaz o delu ali dokaz o deležu). Uporabnike k temu _močno spodbujamo_, če imajo sredstva za to. Delovanje vozlišča je za Ethereum izjemno pomembno. Vsako tako posamezno vozlišče izboljšuje varnost, zasebnost in zaščito pred cenzuro za celotno omrežje. + +Zmožnost, da lahko kdorkoli upravlja svoje vozlišče, je _popolnoma nepogrešljiva_ za zagotavljanje decentralizacije Ethereumovega omrežja. + +[Več o upravljanju lastnega vozlišča](/run-a-node/) + + + + +Provizije za plin so posledica povpraševanja v omrežju glede na njegovo kapaciteto. Spojitev je odpravila uporabo mehanizma dokaza o delu in za doseganje soglasja uvedla mehanizem dokaza o deležu, ni pa občutno spremenila dejavnikov, ki neposredno vplivajo na kapaciteto ali pretočnost omrežja. + +Z [načrtom razvoja, ki se osredotoča na združevanje transakcij](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698), se trudimo širiti dejavnost uporabnikov na [2. plasti 2](/layer-2/), glavno omrežje na 1. plasti pa želimo razvijati kot varno decentralizirano plast za poravnavo, ki je optimizirana za povečevanje prostora za shranjevanje podatkov, s katerim bodo vse transakcije postale eksponentno cenejše. Prehod na mehanizem dokaza o deležu je nujen predpogoj za tako delovanje. [Več o plinu in provizijah.](/developers/docs/gas/) + + + +"Hitrost" transakcije se lahko meri na več načinov, na primer s časom vključitve v blok ali zaključka transakcije. Oba se bosta rahlo spremenila, ne pa toliko, da bi uporabniki opazili. + +V preteklosti je bil pri mehanizmu dokaza o delu cilj, da se nov blok ustvari približno vsakih 13,3 sekunde. Pri mehanizmu dokaza o deležu se vsaka reža pojavi na natanko 12 sekund. V vsaki reži lahko validator objavi blok. V večini rež so bloki, ne pa nujno v vseh (ko validator na primer ne deluje). Pri mehanizmu dokaza o deležu se bloki ustvarjajo za približno 10 % pogosteje kot pri mehanizmu dokaza o delu. To je majhna sprememba, ki je uporabniki verjetno ne bodo opazili. + +Mehanizem dokaza o deležu je uvedel koncept zaključka transakcije, ki prej ni bil na voljo. Pri mehanizmu dokaza o delu je zmožnost povrnitve bloka postala eksponentno težja z vsakim blokom, ki je bil ustvarjen po transakciji, vendar pa nikoli ni postala ničelna. Pri mehanizmu dokaza o deležu se bloki združujejo v epohe (6,4-minutna obdobja, ki vsebujejo 32 možnosti za bloke), o katerih glasujejo validatorji. Ko se epoha konča, validatorji glasujejo, ali jo smatrajo za "upravičeno". Če se validatorji strinjajo, da je epoha upravičena, se v naslednji epohi zaključi. Razveljavitev zaključenih transakcij ni ekonomsko smiselna, saj bi bilo treba za njo pridobiti in sežgati tretjino vsega zastavljenega ETH. + + + + +Zastavljen ETH in nagrade za zastavljanje so še naprej zadržane in jih ni mogoče dvigniti. Dvigi so načrtovani v prihajajoči nadgradnji Shanghai. + + + +Morda se zgornja opomba, da dvigi do nadgradnje Shanghai niso mogoči, zdi neintuitivna, vendar validatorji IMAJO takojšen dostop do provizij za transakcije in provizij MEV, ki so jih zaslužili med predlaganjem blokov. + +Protokol izdaja ETH kot nagrado za validatorje, ki prispevajo k doseganju soglasja. Plast za doseganje soglasja upošteva novo izdani ETH, kjer ima validator edinstveni naslov za hranjenje zastavljenega ETH in nagrad protokola. Ta ETH je zaklenjen do nadgradnje Shanghai. + +ETH na izvajalni plasti se upošteva ločeno od tistega na plasti za doseganje soglasja. Ko uporabniki opravljajo transakcije v Ethereumovem glavnem omrežju, se z ETH plačujejo plin in provizije validatorjem. Ta ETH je že na izvajalni plasti in ga protokol ne izdaja na novo – validatorjem je na voljo takoj (če so odjemalski programski opremi posredovali veljaven naslov "prejemnika provizije"). + + + +Ko bo nadgradnja Shanghai omogočila dvige, bodo vsi validatorji motivirani, da dvignejo zastavljena sredstva, ki presegajo 32 ETH, saj ta sredstva ne pripomorejo k izkupičku in niso zadržana na noben drug način. Odvisno od letne mere donosa (ki ga določa skupna vsota zastavljenega ETH) bodo morda želeli izklopiti validatorje in dvigniti vsa svoja sredstva ali pa nagrade izkoristiti za zastavitev še večje vsote, ki jim bo zagotovila večji izkupiček. + +Pomembna opomba: protokol omejuje popolne izhode validatorjev iz omrežja. Tako lahko na epoho iz omrežja izstopi največ šest validatorjev (vsake 6,4 minute, torej 1350 na dan ali približno največ 43.200 ETH na dan od več kot 10 milijonov zastavljenega ETH). Ta omejitev je odvisna od skupne vsote zastavljenega ETH in preprečuje prevelik beg sredstev. Poleg tega preprečuje morebitnim napadalcem, da bi s svojimi sredstvi povzročili prekršek za zmanjšanje deleža in v isti epohi dvignili vsa svoja sredstva, preden bi protokol lahko uveljavil kazen za zmanjšanje deleža. + +Letna mera donosa je namenoma dinamična, saj tako celotnemu trgu zastavljavcev omogoča, da pretehtajo, koliko so pripravljeni zaslužiti za pomoč pri ščitenju omrežja. Ko bodo dvigi omogočeni in bo omejitev prenizka, bodo validatorji izstopali pri omejitvi, ki jo določa protokol. S tem bo letna mera donosa postopoma naraščala, kar bo privabilo nove ali stare zastavljavce. + + +## Kaj se je zgodilo z "Eth2"? {#eth2} + +Pojem "Eth2" smo opustili. Po spojitvi omrežij "Eth1" in "Eth2" v eno verigo ni več mogoče razlikovati med obema Ethereumovima omrežjema. Obstaja samo še Ethereum. + +Da bi se izognila zmedi, je skupnost posodobila spodnja pojma: + +- "Eth1" je zdaj "izvajalna plast", ki opravlja transakcije in izvaja kodo. +- "Eth2" je zdaj "plast za doseganje soglasja", ki obravnava mehanizem za doseganje soglasja z dokazom o deležu. + +Te posodobitve terminologije spreminjajo samo konvencije o poimenovanju; ne spreminjajo ciljev ali načrta Ethereuma. + +[Pridobite več informacij o preimenovanju omrežja "Eth2"](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) + +## Razmerje med nadgradnjami {#relationship-between-upgrades} + +Vse nadgradnje Ethereuma so med seboj delno povezane. Povzemimo torej, kako spojitev vpliva na druge nadgradnje. + +### Spojitev in oddajniška veriga {#merge-and-beacon-chain} + +Spojitev predstavlja uradno dodajanje oddajniške verige kot nove plasti za doseganje soglasja izvirni izvajalni plasti glavnega omrežja. Od spojitve validatorji ščitijo Ethereumovo glavno omrežje, rudarjenje z mehanizmom [dokaza o delu](/developers/docs/consensus-mechanisms/pow/) pa ni več veljaven način ustvarjanja blokov. + +Namesto tega bloke predlagajo validacijska vozlišča, ki so zastavila ETH v zameno za pravico, da sodelujejo pri sprejemanju soglasja. Te nadgradnje postavljajo temelje za prihodnje nadgradnje za širjenje omrežja, vključno z razdrobitvijo. + + + Oddajniška veriga + + +### Spojitev in nadgradnja Shanghai {#merge-and-shanghai} + +Da bi poenostavila in se osredotočila na uspešen prehod na mehanizem dokaza o deležu, spojitev ni vključevala nekaterih pričakovanih funkcij, na primer možnosti dviga zastavljenega ETH. Spojitvi bo sledila nadgradnja Shanghai, ki bo zastavljavcem omogočila dvig teh sredstev. + +Na tekočem lahko ostanete tako, da preberete članek [Težava z načrtovanjem nadgradnje Shanghai na GitHubu](https://github.com/ethereum/pm/issues/450) ali [Spletni dnevnik Ethereumove fundacije o raziskavah in razvoju](https://blog.ethereum.org/category/research-and-development/). Vsi bolj radovedni si lahko več pogledate v predstavitvi [Kaj se bo zgodilo po spojitvi](https://youtu.be/7ggwLccuN5s?t=101), ki jo je imel Vitalik na dogodku ETHGlobal aprila 2021. + +### Spojitev in razdrobitev {#merge-and-data-sharding} + +Začetni načrt je predvideval delo na razdrobitvi, s katero bi nadgradljivost naslovili pred spojitvijo. Z razcvetom [rešitev za nadgradljivost na podlagi tehnologije 2. plasti](/layer-2/) se je prioriteta preusmerila na menjavo mehanizma dokaza o delu z mehanizmom dokaza o deležu. + +Načrti za razdrobitev se hitro spreminjajo, vendar so se s pojavom in uspehom tehnologij 2. plasti za nadgradnjo opravljanja transakcij preusmerili na iskanje najboljšega načina za porazdelitev bremena shranjevanja klicanih podatkov iz vseh pogodb, kar bi omogočilo eksponentno rast kapacitete omrežja. To ne bi bilo mogoče brez predhodnega prehoda na mehanizem dokaza o deležu. + + + Razdrobitev + + +## Nadaljnje branje {#further-reading} + + + + diff --git a/public/content/translations/sr/dao/index.md b/public/content/translations/sr/dao/index.md new file mode 100644 index 00000000000..1e2f77d3247 --- /dev/null +++ b/public/content/translations/sr/dao/index.md @@ -0,0 +1,165 @@ +--- +title: Decentralizovane autonomne organizacije (DAO-i) +description: Pregled DAO-a na mreži Ethereum +lang: sr +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: Predstava nezavisne decentralizovane organizacije (DAO) koja glasa o predlogu. +summaryPoint1: Zajednice koje su u vlasništvu članova bez centralizovanog vođstva. +summaryPoint2: Siguran način da sarađujete sa strancima na internetu. +summaryPoint3: Sigurno mesto za ulaganje sredstava u neki specifičan cilj. +--- + +## Šta su DAO-i? {#what-are-daos} + +DAO je organizacija koja je u kolektivnom vlasništvu, kojom se upravlja putem lanca blokova i koja radi na zajedničkoj misiji. + +DAO omogućava da radimo sa osobama koje slično razmišljaju kao mi širom planete bez potrebe da verujemo dobroćudnom vođi da upravlja sredstvima ili operacijama. Ne postoji generalni direktor koji može da troši sredstva na svoje hirove ili finansijski direktor koji može da manipuliše knjigama. Umesto toga, pravila su definisana na lancu blokova i ugrađena u kod koji definiše kako organizacija funkcioniše i kako se sredstva troše. + +Imaju ugrađene trezore nad kojima niko nema ovlašćenja za pristup bez odobrenja grupe. Odluke se uređuju na osnovu predloga i glasanja kako bi se osiguralo da svaka osoba u organizaciji ima glas, i sve se dešava transparentno na lancu. + +## Zašto su nam potrebni DAO-i? {#why-dao} + +Pokretanje organizacije sa nekim ko podrazumeva finansiranje i novac zahteva veliko poverenje u osobe sa kojima sarađujete. Ali je teško verovati nekome sa kim ste interagovali samo putem interneta. Sa DAO-ima nema potrebe da se veruje bilo kome u grupi, već samo kodu DAO-a, što je 100% transparentno i može bilo ko da ga proveri. + +To otvara brojne nove mogućnosti za saradnju i koordinaciju na globalnom nivou. + +### Poređenje {#dao-comparison} + +| Decentralizovane i autonomne organizacije | Tradicionalna organizacija | +| -------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | +| Uglavnom je bez hijerarhije, potpuno demokratizovana. | Uglavnom ima hijerarhiju. | +| Za bilo kakvu promenu ili odluku potrebno je glasanje članova. | U zavisnosti od strukture, promene može zahtevati samo jedna strana ili se može ponuditi glasanje. | +| Glasovi se sabiraju, a ishod se automatski sprovodi bez potrebe za posrednikom. | Ako je glasanje dozvoljeno, glasovi se broje interno i ishod glasanja se daje ručno. | +| Usluge koje se nude automatski se obrađuju na decentralizovan način (npr. raspodelom filantropskih sredstava). | Potrebno je ljudsko upravljanje ili automatski, ali centralno kontrolisano, što je podložno manipulaciji. | +| Sve aktivnosti su transparentne i potpuno javne. | Aktivnosti su uglavnom privatne, i ograničene za javnost. | + +### DAO primeri {#dao-examples} + +Da bi ovo imalo više smisla, evo nekoliko primera kako možete koristiti DAO: + +- Humanitarna organizacija – Možete primati donacije od bilo koga na svetu i glasati koje ciljeve želite da finansirate. +- Kolektivno vlasništvo – možete kupiti fizičku ili digitalnu imovinu i članovi mogu glasati o tome kako će se ona koristiti. +- Ulaganja i stipendije – možete osnovati fond za ulaganja koji akumulira investicioni kapital i glasati koja ulaganja treba podržati. Vraćeni novac se kasnije može ponovo podeliti članovima DAO-a. + +## Kako DAO funkcioniše? {#how-daos-work} + +Suština svakog DAO-a je njegov pametni ugovor, kojim se definišu pravila organizacije i čuva njen budžet. Kada je ugovor objavljen na mreži Ethereum, niko ne može promeniti pravila izuzev na glasanju. Ako neko pokuša da uradi nešto što nije obuhvaćeno pravilima i logikom u kodeksu, neće uspeti. I s obzirom na to da je trezor definisan i pametnim ugovorom, to znači da niko ne može da potroši novac bez odobrenja ostalih članova grupe. To znači da DAO-u nije potreban centralni organ. Umesto toga, grupa kolektivno donosi odluke i plaćanja se automatski odobravaju nakon glasanja. + +To je moguće zato što su pametni ugovori, kada se objave na mreži Ethereum, zaštićeni od neovlašćenog rukovanja. Ne možete jednostavno urditi kod (pravila DAO-a), a da ljudi to ne primete zato što je sve javno. + + + Više o pametnim ugovorima + + +## Ethereum i DAO-i {#ethereum-and-daos} + +Ethereum je savršena osnova za DAO iz brojnih razloga: + +- Konsenzus mreže Ethereum je distribuiran i utvrđen dovoljno da bi organizacije verovale mreži. +- Kada se kod pametnog ugovora objavi, on se ne može menjati, pa čak ni od strane njegovih vlasnika. To omogućava da DAO funkcioniše prema pravilima na osnovu kojih je programiran. +- Pametni ugovori mogu da šalju/primaju sredstva. Bez toga, bio bi potreban posrednik koji bi upravljao sredstvima organizacije. +- Zajednica Ethereum se pokazala kao saradljivija, a ne kompetetivna, što omogućava brz razvoj najboljih praksi i sistema podrške. + +## Upravljanje DAO-m {#dao-governance} + +Postoji mnogo otvorenih pitanja pri upravljanju DAO-m, kao što su funkcionisanje glasanja i predlaganja. + +### Delegiranje {#governance-delegation} + +Delegiranje je DAO verzija predstavničke demokratije. Vlasnici tokena delegiraju glasove korisnicima koji sebe nominuju i potvrđuju se da će nadgledati protokol i biti informisani. + +#### Poznat primer {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) – Vlasnici tokena ENS mogu da delegiraju svoje glasove angažovanim članovima zajednice kako bi ih predstavljali. + +### Automatsko upravljanje transakcijama {#governance-example} + +U mnogim DAO-ima, transakcije će se automatski izvršavati ako članovi kvorumom glasaju potvrdno. + +#### Poznat primer {#governance-example} + +[Nouns](https://nouns.wtf) — U Nouns DAO-u, transakcije se izvršavaju automatski ako postoji kvorum glasova i ako se većinom glasa potvrdno, pod uslovom da neko od osnivača ne stavi veto. + +### Upravljanje višestrukim potpisima {#governance-example} + +Iako DAO-i mogu imati hiljade članova sa pravom glasa, sredstva mogu biti smeštena u novčaniku koji deli 5–20 aktivnih članova zajednice koji su pouzdani i obično su javno prepoznatljivi (javni identiteti poznati zajednici). Nakon glasanja, potpisnici sa više potpisa će izvršiti volju zajednice. + +## Zakoni DAO-a {#dao-laws} + +Godine 1977. američka savezna država Vajoming stvorila je LLC (limited liability company/društvo sa ograničenom odgovornošću), kojim štiti preduzetnike i ograničava njihovu odgovornost. Nedavno, ta država bila je pionir i u usvajanju zakona o DAO kojim se uspostavlja pravni status DAO-a. Trenutno, Vajoming, Vermont i Devičanska Ostrva imaju zakone o DAO u nekom obliku. + +### Poznat primer {#law-example} + +[DAOGrad](https://citydao.io)Kompanija CityDAO je iskoristila zakon o DAO savezne države Vajoming da kupi 40 ari zemljišta u blizini Nacionalnog parka Jeloustoun. + +## Članstvo u DAO-u {#dao-membership} + +Postoje različiti modeli za članstvo u DAO-u. Članstvo može da odredi kako glasanje funkcioniše i ostale ključne delove DAO-a. + +### Članstvo zasnovano na tokenima {#token-based-membership} + +Uglavnom potpuno bez potrebe za dozvolama, u zavisnosti od korišćenog tokena. Uglavnom se tim upravljačkim tokenima može trgovati bez posebne dozvole na decentralizovanoj menjačnici. Ostali se moraju zaraditi pružanjem likvidnosti ili nekim drugim „dokazom o radu”. U svakom slučaju, prosto posedovanje tokena garantuje pristup glasanju. + +_Uglavnom se koriste za upravljanje širokim decentralizovanim protokolima i/ili samim tokenima._ + +#### Poznat primer {#token-example} + +[MakerDAO](https://makerdao.com) — Token MKR kompanije MakerDAO široko je dostupan u decentralizovanim menjačnicama i svako može da kupi pravo glasa o budućnosti protokola Maker. + +### Članstvo zasnovano na udelu {#share-based-membership} + +DAO-i zasnovani na udelu zahtevaju traženje više dozvola, ali i dalje prilično otvoreni. Potencijalni članovi mogu podneti zahtev za pridruživanje DAO-u, obično nudeći prilog vrednosti u vidu tokena ili rada. Udeo predstavlja direktno pravo glasanja i vlasništvo. Članovi mogu izaći u bilo kojem trenutku sa svojim proporcionalnim udelom iz trezora. + +_Obično se koriste za organizacije koje su bliskije, orijentisane ka ljudima, kao što su humanitarne organizacije, radničke zadruge i investicioni klubovi. Takođe mogu upravljati i protokolima i tokenima._ + +#### Poznat primer {#share-example} + +[MolochDAO](http://molochdao.com/) – Kompanija MolochDAO je usredsređena na finansiranje projekata u mreži Ethereum. Zahteva predlog za članstvo kako bi grupa mogla da proceni da li imate potrebnu stručnost i kapital da donosite odluke zasnovane na obaveštenosti o potencijalnim dobitnicima sredstava. Ne možete jednostavno da kupite pristup DAO-u na otvorenom tržištu. + +### Članstvo zasnovano na reputaciji {#reputation-based-membership} + +Reputacija predstavlja dokaz o učešću i omogućava pravo glasanja u DAO-u. Za razliku članstva zasnovanog na posedovanju tokena ili udela, DAO-i zasnovani na reputaciji ne prenose vlasništvo na one koji daju doprinos. Reputacija se ne može kupiti, preneti ili delegirati; članovi DAO-a moraju da zasluže svoju reputaciju učestvovanjem. Glasanje na lancu ne zahteva odobrenje i potencijalni članovi mogu slobodno da daju predloge za pridruživanje DAO-u i da traže da dobiju reputaciju i tokene kao nagradu za svoj doprinos. + +_Obično se koristi za decentralizovani razvoj i upravljanje protokolima i decentralizovanim aplikacijama, ali takođe, ovaj tip DAO-a je pogodan za različite vrste organizacija kao što su humanitarne organizacije, radničke zadruge, investicioni klubovi itd._ + +#### Poznat primer {#reputation-example} + +[DXdao](https://DXdao.eth.link) — DXdao je globalna samoupravljiva zadruga koja gradi decentralizovane protokole i aplikacije i upravlja njima od 2019. godine. DXdao koristi upravljanje zasnovano na reputaciji i holografski konsenzus za koordinaciju i upravljanje sredstvima, što znači da niko ne može da kupi uticaj na svoju budućnost. + +## Pridruži se/pokreni DAO {#join-start-a-dao} + +### Join a DAO {#join-a-dao} + +- [DAO-i zajednice mreže Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [Lista DAO-a organizacije DAOHaus](https://app.daohaus.club/explore) +- [Lista DAO-a organizacije Tally.xyz](https://www.tally.xyz) + +### Pokreni DAO {#start-a-dao} + +- [Prizovi DAO sa DAOHaus-om](https://app.daohaus.club/summon) +- [Pokreni upravljački DAO pomoću organizacije Tally](https://www.tally.xyz/add-a-dao) +- [Pokreni DAO koji pokreće Aragon](https://aragon.org/product) +- [Osnuj koloniju](https://colony.io/) +- [Pokreni DAO sa holografskim konsenzusom organizacije DAOstack](https://alchemy.daostack.io/daos/create) + +## Dodatna literatura {#further-reading} + +### Članci o DAO-u {#dao-articles} + +- [Šta je DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) +- [Priručnik za DAO](https://daohandbook.xyz) +- [Kuća DAO-a](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [metaigra](https://wiki.metagame.wtf/) +- [Šta je DAO i čemu služi?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) +- [Kako pokrenuti digitalnu zajednicu koja koristi tehnologiju DAO](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) +- [Šta je DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) — [Coinmarketcap](https://coinmarketcap.com) +- [Šta je holografski konsenzus?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) – [DAOstack](https://daostack.io/) +- [DAO-i nisu korporacije: gde decentralizacija u autonomnim organizacijama ima značaj, autor: Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) +- [DAO-i, DAC-i, DA-i i još mnogo toga: nedovršen vodič kroz terminologiju](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) – [Ethereum Blog](https://blog.ethereum.org) + +### Videos {#videos} + +- [Šta je DAO u kriptovalutama?](https://youtu.be/KHm0uUPqmVE) +- [Može li DAO da izgradi grad?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) — [TED](https://www.ted.com/) diff --git a/public/content/translations/sr/decentralized-identity/index.md b/public/content/translations/sr/decentralized-identity/index.md new file mode 100644 index 00000000000..fd4c1b8dd42 --- /dev/null +++ b/public/content/translations/sr/decentralized-identity/index.md @@ -0,0 +1,185 @@ +--- +title: Decentralizovan identitet +description: Šta je decentralizovani identitet i zašto je on važan? +lang: sr +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: /eth-gif-cat.png +summaryPoint1: Tradicionalni sistem identiteta je centralizovao izdavanje, održavanje i kontrolu vaših identifikatora. +summaryPoint2: Decentralizovani identitet eliminiše zavisnost od centralizovanih trećih strana. +summaryPoint3: Zahvaljujući kriptu, korisnici sada imaju alate da ponovo izdaju, drže i kontrolišu svoje vlastite identifikatore i potvrde. +--- + +Identitet podupire gotovo svaki aspekt vašeg života danas. Korišćenje onlajn usluge, otvaranje računa u banci, glasanje na izborima, kupovina imovine, zaposlenje — sve ove stvari zahtevaju dokaz o vašem identitetu. + +Ipak, tradicionalni menadžment identiteta se dugo oslanjao na centralizovane posrednike koji izdaju, čuvaju i kontrolišu vaše identifikatore i [potvrde](#what-are-attestations). Ovo znači da ne možete da kontrolišete informacije u vezi sa svojim identitetom ili da odlučite ko ima pristup vašim ličnim informacijama o identitetu (PII) i koliko pristupa ovi posrednici imaju. + +Da bi se rešili ovi problemi, mi imamo decentralizovani sistem identiteta izgrađen na javnom lancu blokova kao što je Ethereum. Decentralizovani identitet dopušta pojedincima da upravljaju informacijama o svom identitetu. Sa rešenjima decentralizovanih identiteta,\_vi_možete da stvorite identifikatore, zahtevati i zadržati svoje potvrde bez oslanjanja na centralne vlasti, kao što su pružaoci usluga ili vlada. + +## Šta je identitet? {#what-is-identity} + +Identitet je osećaj pojedinca o sebi koji je određen jedinstvenim karakteristikama. Identitet se odnosi na to da budete _jedinka_, odnosno određeno ljudsko biće. Identitet se takođe odnosi i na ne-ljudske entitete kao što su organizacija ili vlast. + +## Šta su identifikatori? {#what-are-identifiers} + +Identifikator je parče informacije koje se ponaša kao pokazatelj određenog ili određenih identiteta. Uobičajeni identifikatori uključuju: + +- Ime +- Broj socijalnog osiguranja/poreski identifikacioni broj +- Broj mobilnog telefona +- Datum i mesto rođenja +- Digitalni identifikacioni podaci, na primer, adrese elektronske pošte, korisnička imena, avatari + +Ovi tradicionalni primeri identifikatora se izdaju, drže i kontrolišu od strane centralnih entiteta. Potrebna vam je potvrda od strane vaše vlade da promenite svoje ime ili od strane društvene mreže da promenite svoje korisničko ime. + +## Šta su potvrde? {#what-are-attestations} + +Potvrde su tvrdnje jednog entiteta o drugom entitetu. Ukoliko živite u Sjedinjenim Američkim Državama, vozačka dozvola koja je je izdata od strane Odseka za motorna vozila (jedan entitet) potvrđuje da je vama (drugi entitet) legalno dozvoljeno da vozite auto. + +Potvrde nisu isto što i identifikatori. Potvrda_sadrži_identifikatore koje se odnose na određeni identitet i iznosi tvrdnju o nekom atributu koji se odnosi na taj identitet. Dakle, vaša vozačka dozvola ima identifikatore (ime, datum rođenja, adresu) ali i potvrdu da imate legalno pravo da vozite. + +### Šta su decentralizovani identifikatori? {#what-are-decentralized-identifiers} + +Tradicionalni identifikatori kao što su vaše ime ili email adresa se oslanjaju na treće učesnike — vlade i onog ko pruža usluge elektronske pošte. Decentralizovani identifikatori (DID-ovi) su drugačiji — oni nisu izdati, upravljani ili kontrolisani od strane centralnog entiteta. + +Decentralizovani identiteti se izdaju, drže i kontrolišu od strane pojedinaca. [Ethereum nalog](/developers/docs/accounts/)je jedan od primera decentralizovanog identifikatora. Vi možete da kreirate koliko god želite naloga bez ikakve dozvole od bilo koga i bez potrebe da iko taj nalog čuva u nekom centralnom registru. + +Decentralizovani identifikatori se čuvaju u distribuiranim bazama (lancima blokova) ili mrežama. Ovo čini decentralizovane identifikatore[globalno jedinstvenim, visoko dostupnim i kriptografski potvrđenim](https://w3c-ccg.github.io/did-primer/). Decentralizovani identifikator može se povezati sa različitim subjektima, uključujući osobe, organizacije ili državne institucije. + +## Šta omogućava decentralizovane identifikatore? {#what-makes-decentralized-identifiers-possible} + +### 1. Infrastruktura javnog ključa (PKI) {#public-key-infrastructure} + +Infrastruktura javnog ključa (PKI) je bezbednosna mera informacionih sistema koja generiše [javni ključ](/glossary/#public-key) i [privatni ključ](/glossary/#private-key) za jedan entitet. Kriptografija javnog ključa se izdaje na mrežama lanca blokova da bi dokazala identitet korisnika i kako bi dokazala vlasništvo nam digitalnom imovinom. + +Neki decentralizovani identifikatori, kao što Ethereum nalog, imaju javne i privatne ključeve. Javni ključ identifikuje ko kontroliše nalog dok privatni ključ može da potpisuje i dekriptuje poruke za ovaj nalog. PKI obezbeđuje potrebne dokaze za potvrdu entiteta i sprečava zloupotrebu i upotrebu lažnih identiteta, koristeći [kriptografske potpise](https://andersbrownworth.com/blockchain/public-private-keys/) za verifikaciju svih tvrdnji. + +### 2. Decentralizovane baze podataka {#decentralized-datastores} + +Lanac blokova služi kao verifikacioni registar podataka: otvoreno i decentralizovano skladište informacija bez potrebe za poverenjem. Postojanje javnih lanaca blokova eliminiše potrebu da se identifikatori skladište u centralizovanim registrima. + +Ukoliko neko želi da potvrdi validnost decentralizovanog identifikatora, mogu da pogledaju javni ključ koji je povezan sa tim identifikatorom na lancu blokova. Ovo se razlikuje od tradicionalnih identifikatora koji zahtevaju treće strane koje bi potvrđivale identitet. + +## Kako decentralizovani identifikatori i potvrde omogućavaju decentralizovani identitet? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} + +Decentralizovani identitet je ideja da informacije u vezi sa identitetom trebale biti samostalno kontrolisane, privatne i prenosive, pri čemu su decentralizovani identifikatori i potvrde osnovni gradivni elementi. + +U kontekstu decentralizovanog identiteta, potvrde (takođe poznate kao [verifikabilni podaci](https://www.w3.org/TR/vc-data-model/)) su neizmenjive i kriptografski verifikovane tvrdnje koje izdavalac pravi. Svaka potvrda ili proverljivi akreditiv koje izdaje neki subjekt (npr. organizacija) u vezi je sa njihovim decentralizovanim identifikatorom (DID). + +S obzirom na to da su DID-ovi smešteni na lancu blokova, svako može da proveri validnost potvrde tako što će uporediti izdavačev DID na Ethereumu. U suštini, Ethereum lanac blokova deluje kao globalni direktorijum koji omogućava verifikaciju DID-ova povezanih sa određenim entitetima. + +Decentralizovani identifikatori su razlog zašto su potvrde samo-kontrolisane i proverljive. Čak i ako izdavalac više ne postoji, nosilac identiteta će uvek imati dokaz o poreklu i validnosti potvrde. + +Decentralizovani identifikatori su takođe ključni za zaštitu privatnosti ličnih informacija putem decentralizovanih identiteta. Na primer, ako pojedinac dostavi dokaz potvrdi (vozačka dozvola), strana koja verifikuje ne mora da proverava validnost informacija u dokazu. Umesto toga, onom ko verifikuje su potrebne samo kriptografske garancije o autentičnosti potvrde i identitetu izdavačke organizacije kako bi utvrdio da li je dokaz validan. + +## Tipovi potvrda u decentralizovanom identitetu {#types-of-attestations-in-decentralized-identity} + +Način na koji se čuva i dobija informacija o potvrdama u ekosistemu identiteta zasnovanom na Ethereumu se razlikuje od tradicionalnog upravljanja identitetom. Evo pregleda kako izgledaju različiti pristupi izdavanju, skladištenju i verifikovanju potvrda u sistemu decentralizovanih identiteta: + +### Potvrde van lanca {#off-chain-attestations} + +Jedna briga pri čuvanju potvrda na lancu je da one mogu sadržati informacije koje pojedinci žele zadržati privatnim. Javna priroda Ethereum lanca blokova čini neprivlačni da se takve potvrde skladište tu. + +Rešenje za ovo je da se izdaju potvrde koje korisnici čuvaju van lanva u digitalnim novčanicima, ali potpisane od strane DID-a izdavača koji je na lancu. Ove potvrde su kodirane kao [JSON Web tokeni](https://en.wikipedia.org/wiki/JSON_Web_Token) i sadrže digitalni potpis izdavača — što dozvoljava jednostavnu verifikaciju van lanca. + +Evo jednog hipotetičkog scenarija kako bismo objasnili potvrde van lanca: + +1. Univerzitet (izdavač) generiše potvrdu (digitalni akademski sertifikat), potpisuje je svojim ključevima i izdaje je Bobu (vlasniku identiteta). + +2. Bob se prijavljuje za posao i želi da dokaže svoje akademske kvalifikacije poslodavcu tako što deli sa njim potvrdu iz svog mobilnog novčanika. Kompanija (ona koja verifikuje) može da potvrdi validnost potvrde tako što će da proveri DID izdavača (tj. javni ključ na Ethereumu). + +### Potvrde van lanca sa stalnim pristupom {#offchain-attestations-with-persistent-access} + +Pod ovim dogovorom, potvrde se pretvaraju u JSON datoteke i čuvaju izvan lanca (idealno na platformi za [decentralizovano skladištenje](/developers/docs/storage/) kao što su IPFS ili Swarm). Ipak, [heš](/glossary/#hash)iz JSON datoteke je skladišten na lancu i povezan je sa DID-om kroz register koji je na lancu. Povezani DID može biti ili od izdavača potvrde ili od primaoca. + +Ovaj pristup omogućava potvrdama da dobiju postojanost zasnovanu na lancu blokova, istovremeno zadržavajući enkripciju i mogućnost verifikacije informacija o njima. Takođe, omogućava selektivno otkrivanje informacija jer ih nosilac privatnog ključa može dešifrovati. + +### Potvrde na lancu {#onchain-attestations} + +Potvrde na lancu se čuvaju u [pametnim ugovorima](/developers/docs/smart-contracts/) na Ethereum lancu blokova. Pametni ugovor (koji se ponaša kao registar) će mapirati potvrdi na odgovarajući decentralizovani identifikator na lancu (javni ključ). + +Evo jednog primera da pokažemo kako potvrde na lancu funkcionišu u praksi: + +1. Kompanija (XYZ Corp) planira da proda vlasničke deonice koristeći pametni ugovor, ali želi da proda kupcima koji su provereni. + +2. XYZ Corp može da unajmi kompaniju koja vrši bezbednosne provere kako bi izdala potvrde na lancu na mreži Ethereum. Ova potvrda garantuje da je pojedinac koji je prošao proveru, bez otkrivanja bilo kojih ličnih informacija. + +3. Pametni ugovor koji prodaje deonice može proveriti registarski ugovor radi identiteta proveravanih kupaca, omogućavajući pametnom ugovoru da odredi ko ima dozvolu za kupovinu deonica, a ko ne. + +### Soulbound tokeni i identitet {#soulbound} + +[Soulbound tokeni](https://vitalik.ca/general/2022/01/26/soulbound.html) (NFT-ijevi koji se ne mogu prebacivati) se mogu koristiti kako bi se prikupile informacije koje su jedinstvene za određeni novčanik. Ovo efektivno stvara jedinstvenu identifikaciju na lancu blokova vezanu za određenu Ethereum adresu koja može uključivati tokene koji predstavljaju dostignuća (na primer, završavanje određenog onlajn kursa ili dostizanje određenog rezultata u igri) ili učešće u zajednici. + +## Benefiti decentralizovanog identiteta {#benefits-of-decentralized-identity} + +1. Decentralizovani identitet povećava kontrolu koju ima pojedinac nad svojim informacijama o identitetu. Decentralizovani identifikatori i potvrde se mogu potvrditi bez oslanjanja na centralizovane autoritete i treće strane. + +2. Rešenja za decentralizovani identitet omogućavaju bezbedan, jednostavan način za verifikaciju i upravljanje korisničkim identitetom i takođe štite privatnost. + +3. Decentralizovani identitet koristi tehnologiju lanca blokova koja uspostavlja poverenje između različitih strana i pruža kriptografske garancije za dokazivanje validnosti potvrda. + +4. Decentralizovani identitet čini podatke o identitetu prenosivim. Korisnici skladište potvrde i identifikatore u mobilnom novčaniku i mogu da ih podele sa kim žele. Decentralizovani identifikatori i potvrde nisu zaključani u bazi podataka organizacije koja ih izdaje. + +5. Decentralizovani identitet bi trebalo dobro da se uklopi sa novim tehnologijama nultog znanja koje će omogućiti pojedincima da dokažu da su vlasnici ili su nešto uradili, a da pri tome ne otkrivaju šta je to. Ovo može da postane moćan način da se kombinuje poverenje i privatnost za stvari kao što je glasanje. + +6. Decentralizovani identitet omogućava mehanizme anti-Sybil koji prepoznaju kada se jedno ljudsko biće pretvara da je više ljudi kako bi izigralo ili spamovalo neki sistem. + +## Primeri primene decentralizovanih identiteta {#decentralized-identity-use-cases} + +Decentralizovani identitet ima mnogo potencijalnih načina primene: + +### 1. Univerzalne prijave (login) {#universal-dapp-logins} + +Decentralizovani identitet može zameniti prijavljivanje uz pomoć lozinke sa prijavljivanjem uz pomoć[ decentralizovane autentifikacije](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). Pružaoci usluga mogu izdati potvrde korisnicima koje mogu biti čuvane u Ethereum novčaniku. Jedan primer potvrda bi bio [NFT](/nft/)koji garantuje da korisnik koji ga poseduje ima pristup onlajn zajednici. + +[Prijava sa Ethereumom](https://login.xyz/) bi omogućila serverima da potvrde korisnički Ethereum nalog i preuzmu potrebnu potvrdu sa njihove adrese naloga. Ovo znači da korisnici mogu da pristupe platformama i veb-sajtovima bez potrebe da pamte svoje duge šifre i na taj način poboljšava korisničko iskustvo. + +### 2. KYC autentifikacija {#kyc-authentication} + +Korišćenje mnogih onlajn usluga zahteva od pojedinca da dostavi potvrde i podatke kao što su vozačka dozvola ili pasoš. Ali ovaj pristup je problematičan zato što privatni korisnik informacije može biti kompromitovan i pružaoci usluga ne mogu da provere autentičnost potvrde. + +Decentralizovani identitet omogućava kompanijama da preskoče konvencionalni postupak [upoznavanja korisnika (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) i potvrde identitet korisnika putem proverljivih akreditiva. Ovo smanjuje troškove upravljanja identitetom i sprečava upotrebnu falsifikovane dokumentacije. + +### 3. Glasanje i onlajn zajednice {#voting-and-online-communities} + +Onlajn glasanje i društvene mreže su dve nove primene decentralizovanih identiteta. Onlajn sheme za glasanje su podložne manipulacijama, posebno ako zlonamerni akteri kreiraju lažne identitete za glasanje. Zahtevanje od pojedinaca da dostave potvrde na lancu može poboljšati integritet procesa onlajn glasanja. + +Decentralizovani identitet može pomoći u stvaranju onlajn zajednica u kojima nema lažnih naloga. Na primer, svaki korisnik bi mogao da dokaže svoj identitet koristeći sistem identiteta na lancu, kao što je Ethereum Name Service, čime bi se smanjila mogućnost botova. + +### 4. Anti-Sybil zaštita {#sybil-protection} + +Sybil napadi se odnose na pojedinačne ljude koji varaju sistem tako da se čini da su više osoba kako bi povećali svoj uticaj. [Aplikacije za dodelu grantova](https://gitcoin.co/grants/) [koje koriste kvadratno glasanje](https://www.radicalxchange.org/concepts/plural-voting/)su ranjive na Sybil napade jer se vrednost granta povećava kada više pojedinaca glasa za njega, što podstiče korisnike da raspodele svoje doprinose preko više lažnih identiteta. Decentralizovani identiteti pomažu u sprečavanju ovoga tako što povećavaju teret na svakom učesniku da dokaže da su zaista ljudi često bez otkrivanja određenih privatnih informacija. + +## Koristite decentralizovani identitet {#use-decentralized-identity} + +Postoji mnogo ambicioznih projekata koji koriste Ethereum kao osnovu za rešenja decentralizovanog identiteta: + +- **[Ethereum Name Service (ENS) ](https://ens.domains/)** — _Decentralizovani sistem imenovanja za identifikatore koji mogu čitati mašine, poput Ethereum novčanika, heševa sadržaja i metapodataka._ +- **[SpruceID](https://www.spruceid.com/)** — _Projekat za decentralizovani identitet koji omogućava korisnicima da kontrolišu digitalni identitet putem Ethereum naloga i ENS profila umesto oslanjanja na usluge trećih strana._ +- **[Usluga Ethereum potvrde (EAS)](https://attest.sh/)** – _Decentralizovana baza/protokol za izdavanje potvrda o bilo čemu na lancu ili izvan njega._ +- **[Proof of Humanity](https://www.proofofhumanity.id)** — _Proof of Humanity (ili PoH) je sistem za verifikaciju društvenog identiteta izgrađen na Ethereumu._ +- **[BrightID](https://www.brightid.org/)** — _Decentralizovana, otvorena društvena mreža identiteta koja teži reformi verifikacije identiteta kroz kreiranje i analizu društvenog grafa._ +- **[Proof-ofpersonhood Passport](https://proofofpersonhood.com/)** — _Agregator decentralizovanih digitalnih identiteta._ + +## Dodatna literatura {#further-reading} + +### Članci {#articles} + +- [Načini primene lanca blokova: Lanac blokova u digitalnom identitetu](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ +- [Šta je Ethereum ERC725? Samoupravljanje suverenim identitetom na lancu blokova](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _ Sem Taun_ +- [Kako lanac blokova može da reši problem digitalnog identiteta](https://time.com/6142810/proof-of-humanity/) — _Endru R. Ču_ +- [Šta je decentralizovani identitet i zašto bi trebalo da nam je važan?](https://web3.hashnode.com/what-is-decentralized-identity) — _Emanuel Avosika_ + +### Videos {#videos} + +- [Decentralizovani identitet (Bonus uživo prenos)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Odličan video koji objašnjava decentralizovan identitet od strane Andreasa Antonopolusa_ +- [Prijavite se pomoću Ethereuma i decentralizovanog identiteta uz upotrebu Ceramic, IDX, React i 3ID Connect-a](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _YouTube tutorial o izgradnji sistema za upravljanje identitetom za kreiranje, čitanje i ažuriranje korisničkog profila korišćenjem Ethereum novčanika od strane Nadera Dabita_ +- [BrightID — Decentralizovani identitet na Ethereumu](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _Epizoda Bankless podkasta o BrightID-u, rešenju za decentralizovan identitet na Ethereumu_ +- [Internet van lanca: Decentralizovani identitet&Podaci koji se mogu verifikovati](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — EthDenver 2022, prezentacija od strane Evina MekMulena + +### Zajednice {#communities} + +- [ERC-725 Alijansa na GitHubu](https://github.com/erc725alliance) — _Podržavaoci ERC725 standarda za upravljanje identitetom na Ethereum lancu blokova_ +- [SpruceIS Discord server](https://discord.com/invite/Sf9tSFzrnt) — _Zajednica za entuzijaste i programere koji rade na Sign-in sistemu sa Ethereumom_ +- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Zajednica programera koji doprinose građenju okvira (framework) za za podatke koji se mogu verifikovati za aplikacije_ diff --git a/public/content/translations/sr/defi/index.md b/public/content/translations/sr/defi/index.md new file mode 100644 index 00000000000..cad31e303fe --- /dev/null +++ b/public/content/translations/sr/defi/index.md @@ -0,0 +1,352 @@ +--- +title: Decentralizovane finansije (DeFi) +description: Pregled decentralizovanih finansija na mreži Ethereum +lang: sr +template: use-cases +emoji: ":money_with_wings:" +image: /use-cases/defi.png +alt: Logo Eth-a napravljen od lego kocki. +sidebarDepth: 2 +summaryPoint1: Globalna, otvorena alternativa u odnosu na trenutni finansijski sistem. +summaryPoint2: Proizvodi koji vam omogućavaju da pozajmljujete, štedite, investirate, trgujete i još mnogo toga. +summaryPoint3: Zasnovano na tehnologiji otvorenog koda kojom svako može da programira. +--- + +DeFi (decentralizovane finansije) prestavljaju otvoren i globalan finansijski sistem napravljen za Internet doba – kao alternativa sistemu koji je nejasan, čvrsto kontrolisan i koji održavaju zastarela infrastruktura i procesi. Pruža vidljivost i kontrolu nad vašim novcem. Daje pristup globalnim tržištima i alternative u odnosu na lokalne valute i bankarski sistem. Proizvodi decentralizovanih finansija otvaraju finansijske usluge svakome ko ima internet vezu i uglavnom su u vlasništvu njihovih korisnika koji ih održavaju. Do sada su kriptovalute u vrednosti na desetine milijardi dolara putovale kroz aplikacije decentralizovanih finansija i taj iznos raste svakog dana. + +## Šta su decentralizovane finansije? {#what-is-defi} + +Decentralizovane finansije predstavljaju zbirni termin za finansijske proizvode i usluge koji su dostupni svakome ko koristi Ethereum – dakle, svakome ko ima internet vezu. Pomoću decentralizovanih finansija, tržišta su uvek otvorena i nema centralnih organa koji mogu da blokiraju plaćanja ili da uskrate pristup bilo čemu. Usluge koje su ranije bile spore i u opasnosti od ljudske greške automatske su i sigurnije sada kada njima upravlja kod koji svako može da pregleda i prouči. + +Došlo je do procvata kripto-ekonomije, u kojoj možete davati na zajam, pozajmljivati, dugoročno/kratkoročno, zarađivati kamatu i još mnogo toga. Argentinci koji poznaju kriptovalute su iskoristili decentralizovane finansije da bi se sačuvali od razorne inflacije. Kompanije su počele da isplaćuju plate zaposlenim u stvarnom vremenu. Neki ljudi su čak uzimali i isplaćivali milionske pozajmice u dolarima bez potrebe za bilo kakvom ličnom identifikacijom. + + + +## Decentralizovane finansije nasuprot tradicionalnim finansijama {#defi-vs-tradfi} + +Jedan od najboljih načina da se vidi potencijal decentralizovanih finansija jeste razumevanje problema koji postoje danas. + +- Neke osobe nemaju pristup pravljenju računa u banci ili korišćenju finansijskih usluga. +- Nedostatak pristupa finansijskim uslugama može sprečiti da osobe budu zapošljive. +- Finansijske usluge mogu da blokiraju isplatu zarade. +- Skriveni troškovi finansijskih usluga su i vaši podaci o ličnosti. +- Vlade i centralizovane institucije mogu zatvoriti tržišta ako to požele. +- Vreme za trgovanje često je ograničeno na tradicionalne radno vreme u određenoj vremenskoj zoni. +- Transfer novca može da potraje danima u zavisnosti od internih ljudskih procesa. +- Postoje premije za finansijske usluge jer posredničke institucije moraju uzeti svoj deo. + +### Poređenje {#defi-comparison} + +| Decentralizovane finansije | Tradicionalne finansije | +| ---------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | +| Vi čuvate svoj novac. | Vaš novac čuvaju kompanije. | +| Vi kontrolišete kuda vaš novac ide i kako se troši. | Morate da verujete kompanijama da neće loše upravljati vašim novcem, npr. pozajmljivati rizičnim zajmoprimcima. | +| Transferi sredstava se dešavaju u minutima. | Uplate mogu da se obrađuju danima zbog ručne obrade. | +| Aktivnost transakcije je pseudonimizovana. | Finansijska aktivnost je usko povezana sa vašim identitetom. | +| Decentralizovane finansije su otvorene za svakoga. | Morate da se prijavite da biste koristili finansijske usluge. | +| Tržišta su uvek otvorena. | Tržišta se zatvaraju zato što je zaposlenima potrebna pauza. | +| Izgrađene su na transparentnosti – svako može da pogleda podatke proizvoda i da istraži kako sistem funkcioniše. | Finansijske institucije su zatvorene knjige: ne možete da tražite da vidite istoriju njihovih pozajmica, podatke o upravljanju sredstvima i sl. | + + + Istražite aplikacije decentralizovanih finansija + + +## Sve je počelo od valute Bitcoin… {#bitcoin} + +Bitcoin je na mnoge načine bio prva aplikacija decentralizovanih finansija. Bitcoin omogućava da zaista imate vlasništvo i kontrolu nad sredstvima i da ih šaljete bilo gde u svetu. To radi tako što omogućava velikom broju ljudi, koji ne veruju jedni drugima, da se dogovore o bazi naloga bez potrebe za pouzdanim posrednikom. Bitcoin je otvoren za svakoga i niko nema ovlašćenje da menja njegova pravila. Pravila valute Bitcoin, kao što su njegova retkost i otvorenost, zapisana su u tehnologiji. Nije kao tradicionalne finansije u kojima vlade mogu da štampaju novac koji devalvira vrednost ušteđevine i kompanije mogu da zatvore tržišta. + +Ethereum počiva na tome. Kao i Bitcoin, pravila se ne mogu promeniti za vas i svako ima pristup. Ali, to takođe ovaj digitalni novac čini podložnim programiranju, pomoću [pametne ugovore](/glossary#smart-contract), tako da možete ići dalje od čuvanja i slanja vrednosti. + + + +## Novac koji se može programirati {#programmable-money} + +Ovo zvuči čudno… „Zašto bih želeo/la da programiram svoj novac?” Međutim, to je samo osnovna karakteristika tokena u mreži Ethereum. Svako može da programira logiku u plaćanja. Tako da vi možete dobijete kontrolu i sigurnost koju ima Bitcoin, zajedno sa uslugama koje pružaju finansijske institucije. To omogućava da radite stvari sa kriptovalutama koje ne možete da radite sa valutom Bitcoin, npr. da dajete pozajmice ili pozajmljujete, zakazujete plaćanja, investirate u indeksne fondove i još mnogo toga. + + +
Istražite i isprobajte naše predloge za aplikacije decentralizovanih finansija ako ste novi u mreži Ethereum.
+ + Istražite aplikacije decentralizovanih finansija + +
+ +## Šta možete da uradite sa decentralizovanim finansijama? {#defi-use-cases} + +Postoji decentralizovana alternativa većini finansijskih usluga. Ali Ethereum takođe stvara prilike za kreiranje finansijskih proizvoda koji su potpuno novi. To je lista koja stalno raste. + +- [Pošaljite novac bilo gde na svetu](#send-money) +- [Šaljite novac širom sveta](#stream-money) +- [Pristup stabilnim valutama](#stablecoins) +- [Pozajmite sredstva pomoću sredstava obezbeđenja](#lending) +- [Pozajmite sredstva bez sredstava obezbeđenja](#flash-loans) +- [Započnite štednju u kriptovalutama](#saving) +- [Trgujte tokenima](#swaps) +- [Razvijajte portfolio](#investing) +- [Finansirajte svoje ideje](#crowdfunding) +- [Kupite osiguranje](#insurance) +- [Upravljajte svojim portfoliom](#aggregators) + + + +### Brzo pošaljite novac bilo gde na svetu {#send-money} + +Kao lanac blokova, Ethereum je projektovan za izvršavanje transakcija na bezbedan način širom sveta. Kao i Bitcoin, i Ethereum čini slanje novca širom sveta jednostavnim kao da šaljete imejl. Samo unesite [ENS ime](/nft/#nft-domains) primaoca (npr. bob.eth) ili njegovu adresu naloga u svoj novčanik i vaša uplata će se izvršiti u roku od nekoliko minuta (uglavnom). Da biste slali ili primali uplate, potreban vam je [novčanik](/wallets/). + + + Pogledajte decentralizovane aplikacije za plaćanje + + +#### Šaljite novac širom sveta… {#stream-money} + +Možete slati novac i putem mreže Ethereum. To omogućava da isplatite nekome njegovu platu u sekundi, omogućavajući pristup novcu kada god mu je potreban. Ili da iznajmite nešto u sekundi kao što su skladište ili električni skuter. + +I ako ne želite da šaljete ili pošaljete [ETH](/eth/) zato što njegova vrednost može da se promeni, postoje alternativne valute na mreži Ethereum: stabilni novčići. + + + +### Pristup stabilnim valutama {#stablecoins} + +Nestalnost kriptovaluta je problem za mnoge finansijske proizvode i uopštenu potrošnju. Zajednica decentralizovanih finansija to je rešila uvođenjem stabilnih novčića. Njihova vrednost ostaje vezana za drugu vrednost, obično popularnu valutu kao što je dolar. + +Novčići kao što su Dai ili USDC imaju vrednost koja ostaje blizu jednog dolara. To ih čini savršenim za zaradu ili maloprodaju. Mnoge osobe u Latinskoj Americi koriste stabilne novčiće da bi zaštitili svoju štednju u vremenima velike nesigurnosti njihovih državnih valuta. + + + Više informacija o stabilnim novčićima + + + + +### Pozajmljivanje {#lending} + +Pozajmljivanje novca direktno od decentralizovanih pružalaca usluga može se vršiti na dva načina. + +- Putem mreže peer-to-peer, što znači da zajmoprimac to čini direktno od konkretnog zajmodavca. +- Iz grupnog fonda pri čemu zajmodavci stavljaju sredstva (likvidnost) u fond iz kojeg zajmoprimci mogu da pozajme. + + + Pogledajte decentalizovane aplikacije za pozajmljivanje + + +Korišćenje decentralizovanih zajmodavaca ima brojne prednosti… + +#### Pozajmljivanje uz privatnost {#borrowing-privacy} + +Danas se davanje i primanje zajmova vrti oko pojedinaca koji su u to uključeni. Banke moraju da znaju kolike su šanse da vratite zajam pre nego što ga uzmete. + +Decentralizovano davanje zajmova funkcioniše tako da nijedan učesnik ne mora da se identifikuje. Umesto toga, zajmoprimac mora da pruži sredstvo obezbeđenja koje će automatski sledovati zajmodavcu ako ne vrati zajam. Neki zajmodavci čak prihvataju i NFT-ove kao sredstvo obezbeđenja. NFT-ovi su ugovori za jedinstvena sredstva, poput slika. [Više o NFT-ovima](/nft/) + +To omogućava da pozajmite novac bez provera kreditne sposobnosti ili predaje privatnih informacija. + +#### Pristup globalnim sredstvima {#access-global-funds} + +Kada koristite decentralizovanog zajmodavca, imate pristup sredstvima deponovanim širom planete, ne samo sredstvima koja se nalaze u vlasništvu vaše izabrane banke ili institucije. To pozajmice čini dostupnijim i poboljšava kamatne stope. + +#### Poreska efikasnost {#tax-efficiencies} + +Pozajmice mogu pružiti potrebna sredstva bez potrebe za prodajom ETH-a (što je podložno porezu). Umesto toga možete iskoristiti ETH kao sredstvo obezbeđenja za pozajmicu stabilnih novčića. Tako ćete dobiti protok novca koji vam je potreban i zadržaćete ETH. Stabilni novčići su tokeni koji su mnogo bolji kada vam je potrebna gotovina jer njihova vrednost ne fluktuira kao kod valuete ETH. [Više informacija o stabilnim novčićima](#stablecoins) + +#### Brze pozajmice {#flash-loans} + +Brze pozajmice su eksperimentalni oblik decentralizovanih pozajmica u kojima možete da pozajmljujete bez sredstava obezbeđenja ili pružanja bilo kakvih informacija o ličnosti. + +Trenutno nisu lako dostupne netehničkim licima ali daju dobru nazkanu toga šta bi moglo da bude omogućeno svima u budućnosti. + +Funkcionišu tako što se zajam uzima i isplaćuje u okviru iste transakcije. Ako se ispostavi da se ne može vratiti, transakcija će biti poništena kao da se ništa nikad nije ni dogodilo. + +Koriste se uglavnom sredstva koja se drže u grupama za likvidnost (velike grupe fondova namenjenih za pozajmljivanje). Ako se ne koriste u datom trenutku, otvara se mogućnost da neko pozajmi ta sredstva, obavi posao koristeći ih i vrati pozajmicu u celosti bukvalno u istom trenutku kada i uzima pozajmicu. + +To znači da se za poprilično prilagođenu transakciju mora koristiti logika. Jednostavan primer može biti kada neko koristi brzi zajam da pozajmi što više sredstava po jednoj ceni kako bi je prodao u drugoj menjačnici u kojoj je cena viša. + +Tako da se u jednoj transakciji dešava sledeće: + +- Pozajmite iznos od X sredstva $asset po ceni od 1 USD iz menjačnice A +- Prodate X sredstva $asset u menjačnici B za 1,10 USD +- Vratite pozajmicu menjačnici A +- Zadržite profit umanjen za proviziju za transakciju + +Ako bi potražnja menjačnice B naglo opala i korisnik ne može da kupi dovoljno da pokrije izvorni zajam, transakcija bi jednostavno propala. + +Da biste mogli da izvedete gornji primer u tradicionalnom finansijskom svetu, bila bi vam potrebna ogromna količina novca. Ovakve strategije za pravljenje novca dostupne su samo onima koji već imaju bogatstvo. Brzi zajmovi su primer budućnosti u kojima posedovanje novca nije nužno uslov za zaradu novca. + +[Više informacija o brzim zajmovima](https://aave.com/flash-loans/) + + + +### Počnite da štedite u kriptovalutama {#saving} + +#### Davanje zajmova {#lending} + +Možete da zaradite kamatu na svojoj kripto-imovini tako što je pozajmljujete i da gledate kako vaša sredstva rastu u realnom vremenu. Trenutno su kamatne stope znatno veće nego što biste verovatno dobili u lokalnoj banci (ako imate sreće da možete da pristupite banci). Sledi primer: + +- Dajte 100 Dai-ja u zajam, u vrednosti [stabilnog novčića](/stablecoins/), proizvodu poput Aave-a. +- Dobijate 100 Aave Dai-ja (aDai) što je token koji predstavlja vaš pozajmljeni Dai. +- Vaš aDai će se povećavati na osnovu kamatnih stopa i možete videti kako raste saldo u vašem novčaniku. U zavisnosti od APR-a, saldo vašeg novčanika će nakon nekoliko dana ili čak sati iznositi oko 100,1234! +- U bilo kom trenutku možete povući određeni iznos običnih Dai-ja koji je jednak vašem saldu aDai-ja. + + + Pogledajte decentralizovane aplikacije za davanje pozajmica + + +#### Lutrije bez gubitaka {#no-loss-lotteries} + +Lutrije bez gubitaka kao što je PoolTogether predstavljaju zabavan i inovativan način da štedite novac. + +- Kupite 100 karata koristeći 100 Dai tokena. +- Dobijate 100 pIDai-ja koji predstavljaju vaših 100 karata. +- Ako se neka od vaših karata izvuče kao dobitna, vaš saldo pIDai-ja će se povećati za iznos nagradnog fonda. +- Ako ga ne osvojite, vaših 100 pIDai-ja se prebacuje na izvlačenje sledeće nedelje. +- Možete povući sredstva u Dai-ima koja su jednaka vašem saldu pIDai-ja u bilo kom trenutku. + +Nagradni fond se generiše od svih kamata nastalih iz pozajmica depozita karata, kao u primeru pozajmica iznad. + + + Probajte PoolTogether + + + + +### Tokeni menjačnice {#swaps} + +Postoje na hiljade tokena na mreži Ethereum. Decentralizovane menjačnice (DEX) omogućuju da trgujete različitim tokenima kad god poželite. Nikada ne predajete kontrolu nad svojim sredstvima. To je kao kada koristite menjačnicu kada ste u poseti stranoj državi. Ali se verzija menjačnice za decentralizovane finansije nikad ne zatvara. Tržišta su otvorena 24/7, 365 dana godišnje i tehnologija garantuje da će tu uvek biti neko ko će prihvatiti razmenu. + +Npr. ako želite da koristite lutriju bez gubitka PoolTogether (opisanu iznad), potrebni su vam tokeni kao što su Dai ili USDC. Ove decentralizovane menjačnice (DEX) omogućavaju da menjate ETH za te tokene i obrnuto kada završite sa trgovinom. + + + Pogledajte menjačnice tokena + + + + +### Napredna trgovina {#trading} + +Postoje napredne opcije za trgovce koji žele malo više kontrole. Ograničene narudžbine, perpeticionni ugovori, trgovanje na margini i još mnogo toga su sve moguće opcije. Sa decentralizovanom trgovinom dobijate pristup globalnoj likvidnosti, tržište se nikada ne zatvara i uvek imate kontrolu nad svojim sredstvima. + +Kada koristite centralizovane menjačnice morate da dostavite sredstva pre trgovanja i da verujete menjačnicu da će da vodi računa o njima. Dok su vaša sredstva deponovana, ona su u riziku jer su centralizovane menjačnice atraktivna meta za hakere. + + + Pogledajte decentralizovane aplikacije o trgovanju + + + + +### Razvijajte portfolio {#investing} + +Na Ethereumu postoje proizvodi za upravljanje fondovima koji vam mogu pomoći da povećate vaš portfolio na osnovu strategije koju odaberete. Ovo su automatski proizvodi, otvoreni za sve i ne zahtevaju ljudskog menadžera koji uzima deo vaših profita. + +Dobar primer je [DeFi Pulse Index fond (DPI)](https://defipulse.com/blog/defi-pulse-index/). Ovo je fond koji automatski rebalansira kako bi se osiguralo da vaš portfolio uvek uključuje [najviše DeFi tokena prema tržišnoj kapitalizaciji](https://www.coingecko.com/en/defi). Nikada nećete morati da upravljate detaljima i možete povući sredstva iz fonda kad god poželite. + + + Pogledajte decentralizovane aplikacije za investiranje + + + + +### Finansirajte svoje ideje {#crowdfunding} + +Ethereum je idealna platforma za masovno finansiranje (crowdfunding): + +- Potencijalni finansijeri mogu biti od bilo gde — Ethereum i njegovi tokeni su otvoreni za svakoga, bilo gde u svetu. +- Sve je transparentno tako da oni koji podižu sredstva mogu dokazati koliko novca je prikupljeno. Kasnije, možete čak i da pratite kako se sredstva troše. +- Oni koji skupljaju sredstva mogu da postave automatsko refundiranje ukoliko, na primer, postoji određeni rok ili minimalni iznos nije dostignut. + + + Pogledajte aplikacije za masovno finansiranje + + +#### Kvadratno finansiranje {#quadratic-funding} + +Ethereum je softver otvorenog koda i dosta uloženog rada do sada je finansirano od strane zajednice. Ovo je dovelo do novog načina prikupljanja sredstava: kvadratnog finansiranja. This has the potential to improve the way we fund all types of public goods in the future. + +Quadratic funding makes sure that the projects that receive the most funding are those with the most unique demand. In other words, projects that stand to improve the lives of the most people. Evo kako funkcioniše: + +1. Postoji određena količina sredstava za poklapanje donacija. +2. Počinje runda javnog finansiranja. +3. Ljudi mogu iskazati svoj interes za projektom doniranjem određenog novčanog iznosa. +4. Kada se runda završi, sredstva iz fonda su podeljena projektima. Oni koji imaju najviše jedinstvene potražnje dobiće najveći iznos iz fonda. + +To znači da projekat A sa svojih 100 donacija u iznosu od 1 dolara može biti finansiraniji nego projekat B sa jednom donacijom od 10.000 dolara (u zavisnosti od veličine fonda). + +[Više o kvadratnom finansiranju](https://wtfisqf.com) + + + +### Osiguranje {#insurance} + +Decentralizovano osiguranje pokušava da učini osiguranje jeftinijim, bržim za isplatu i transparentnijim. Sa više automatizacije, pokrivanje osiguranja je pristupačnije, a isplate se obavljaju brže. Podaci koji se koriste za odlučivanje o vašem zahtevu su potpuno transparentni. + +Ethereum proizvodi, kao i bilo koji drugi softver, može imati greške i slabe tačke. Tako da sada, mnogo proizvoda za osiguranje u prostoru se fokusira na zaštitu njihovih korisnika od gubitka sredstava. Ipak, postoje projekti koji počinju razvijati osiguranja za sve što može da nas snađe. Dobar primer toga je Crop osiguranje kompanije Etherisc koje se trudi da [zaštiti male poljoprivrednike u Keniji od suše i poplave](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Decentralizovano osiguranje može pružiti jeftiniju pokrivenost za poljoprivrednike koji često nisu u mogućnosti da priušte tradicionalno osiguranje. + + + Pogledajte decentralizovane aplikacije za osiguranje + + + + +### Agregatori i menadžeri portfolija {#aggregators} + +S obzirom na toliko dešavanja trenutno, treba vam način da pratite sve svoje investicije, pozajmice i trgovanja. Postoji niz proizvoda koji vam omogućavaju da koordinišete sve svoje DeFi aktivnosti sa jednog mesta. U ovome je lepota otvorene arhitekture decentralizovanih finansija. Timovi mogu da izgrade interfejse gde, ne samo da možete videti svoj saldo na različitim proizvodima, već možete koristiti i njihove funkcije. Ovo vam možete biti korisno kako budete više istraživali decentralizovane finansije. + + + Pogledajte decentralizovane aplikacije o portfolijima + + + + +## Kako DeFi funkcioniše? {#how-defi-works} + +DeFi koristi kriptovalute i pametne ugovore kako bi pružio usluge bez posrednika. U današnjem finansijskom svetu, finansijske institucije se ponašaju kao garancije za transakcije. Ovo daje tim institucijama ogromnu moć zato što vaš novac teče kroz njih. Plu, milijarde ljudi širom sveta ni nema pristup bankovnom računu. + +U decentralizovanim finansijama, pametni ugovor zamenjuju finansijske institucije u transakciji. Pametni ugovor je tip Ethereum naloga koji može da drži sredstva i može da ih prima/refundira na osnovu određenih uslova. Niko ne može da zameni pametni ugovor jednom kada je objavljen — uvek će se pokretati tako kako je programiran. + +Ugovor koji je dizajniran da dodeljuje džeparac ili mesečnu nadoknadu može biti programiran da svakog petka šalje novac sa Računa A na Račun B. I to će se dešavati samo ukoliko Račun A ima dovoljno sredstava. Niko ne može da promeni ugovor i da doda Račun C kao primaoca da ukrade sredstva. + +Ugovori su takođe javni za bilo koga da ih pregleda i proveri. Ovo znači da će loši ugovori često brzo privući pažnju zajednice. + +Ovo znači da trenutno postoji potreba da se veruje više tehničkim članovima Ethereum zajednica koja ume da čita kod. Zajednica bazirana na otvorenom kodu pomaže da se programeri drže pod kontrolom, ali ova potreba će se vremenom smanjivati kako pametni ugovori postanu lakši za čitanje i kako se razvijaju druge metode za dokazivanje pouzdanosti koda. + +## Ethereum i DeFi {#ethereum-and-defi} + +Ethereum je savršena osnova za DeFi zbog mnogobrojnih razloga: + +- Niko ne poseduje Ethereum ili pametne ugovore koji su na njemu — ovo daje priliku svima da koriste decentralizovane finansije. Ovo takođe znači da niko ne može da promeni pravila bez vašeg znanja. +- Svi DeFi proizvodi govore isti jezik iza scene: Ethereum. Ovo znači da mnogi proizvodi savršeno rade zajedno. Možete pozajmiti tokene na jednoj platformi i razmeniti token koji nosi kamatu na drugom tržištu putem potpuno različite aplikacije. Ovo je slično mogućnosti da unovčite bodove lojalnosti u svojoj banci. +- Tokeni i kriptovalute su ugrađeni u Ethereum, zajednički registar – u kojem se prate transakcije i vlasništvo je nešto što Ethereum radi. +- Ethereum omogućuje potpunu finansijsku slobodu — većina proizvoda nikada neće zadržati vaša sredstva, već ćete vi imati kontrolu nad njima. + +Možete misliti o decentralizovanim finansijama u nivoima: + +1. Lanac blokova — Ethereum sadrži istoriju transakcija i stanja računa. +2. Sredstva — [ETH](/eth/)i drugi tokeni (valute). +3. Protokoli — [pametni ugovori](/glossary/#smart-contract)koji pružaju funkcionalnost, na primer uslugu koja omogućava decentralizovano pozajmljivanje sredstava. +4. [Aplikacije](/dapps/) — proizvodi koje koristimo da upravljamo i pristupamo protokolima. + +## Izgradite DeFi {#build-defi} + +Decentralizovane finansije predstavljaju pokret otvorenog koda. Protokoli decentralizovanih finansija i aplikacija su otvoreni da ih istražite, forkujete i inovirate na njima. Zbog ovog slojevitog sistema (sve dele isti osnovni lanac blokova i resurse), protokoli se mogu kombinovati kako bi se otključale jedinstvene kombinacione mogućnosti. + + + Više o građenju decentralizovanih aplikacija + + +## Dodatna literatura {#futher-reading} + +### DeFi podaci {#defi-data} + +- [DeFi Prime](https://defiprime.com/) +- [DeFi Llama](https://defillama.com/) +- [DeFi Rate](https://defirate.com/) + +### DeFi članci {#defi-articles} + +- [Vodič za početnike kroz DeFi](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) — _Sid Koeljo-Prabu, 6. januar 2020._ + +### Videos {#videos} + +- [Finematics — edukacija o decentralizovanim finansijama](https://finematics.com/) — _Video o DeFi-ju_ +- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) — _DeFi osnove: Sve što treba da znate da biste započeli u ovom ponekad zbunjujućem prostoru._ +- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA)_Šta je DeFi?_ + +### Zajednice {#communities} + +- [DeFi Llama Discord server](https://discord.gg/buPFYXzDDd) +- [DeFi Pulse Discord server](https://discord.gg/Gx4TCTk) diff --git a/public/content/translations/sr/desci/index.md b/public/content/translations/sr/desci/index.md new file mode 100644 index 00000000000..b9b8991b0fe --- /dev/null +++ b/public/content/translations/sr/desci/index.md @@ -0,0 +1,139 @@ +--- +title: Decentralizovana nauka (DeSci) +description: Pregled decentralizovanih nauka na Ethereumu +lang: sr +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Globalna, otvorena alternativa trenutnom naučnom sistemu. +summaryPoint2: Tehnologija koja omogućava naučnicima da dobiju sredstva, eksperimentišu, dele podatke i uvide i još mnogo toga. +summaryPoint3: Gradi se na pokretu za otvorenu nauku. +--- + +## Šta je decentralizovana nauka (DeSci)? {#what-is-desci} + +Decentralizovana nauka (DeSci) je pokret koji se trudi da izgradi javnu infrastrukturu za finasiranje, stvaranje, pregledanje, akreditaciju, skladištenje i širenje naučnog znanja na pravičan i jednak način koristeći Web3 tehnologiju. + +DeSci ima za cilj da stvori ekosistem u kojem su naučnici podstaknuti da otvoreno dele svoja istraživanja i dobijaju priznanje za svoj rad, istovremeno omogućujući svima da lako pristupe i doprinose istraživanjima. DeSci se oslanja na ideju da naučno znanje treba da bude dostupno svima i da proces naučnog istraživanja treba da bude transparentan. DeSci stvara model naučnog istraživanja koji je više decentralizovan i distribuiran, čime se čini otpornijim na cenzuru i kontrolu centralnih autoriteta. DeSci se nada da će stvoriti okruženje u kojem nove i nekonvencionalne ideje mogu procvetati decentralizacijom pristupa finansiranju, naučnim alatima i komunikacionim kanalima. + +Decentralizovana nauka omogućava raznovrsnije izvore finansiranja (od [DAO-a](/dao/), [kvadratnih donacija](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) do masovnog finansiranja i još mnogo toga), lakši pristup podacima i metodama, i pružanjem podsticaja za reproduktivnost. + +### Huan Benet — DeSci pokret + + + +## Kako DeSci unapređuje nauku {#desci-improves-science} + +Nepotpuna lista ključnih problema u nauci i kako decentralizovana nauka može pomoći da se reše ovi problemi + +| **Decentralizovana nauka** | **Tradicionalna nauka** | +| ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------- | +| Raspodela sredstava je određena od strane javnosti koristeći mehanizme kao što su kvadratno doniranje ili DAO-i. | Mala, zatvorena, centralizovana grupa kontroliše raspodelu sredstava. | +| Sarađujete sa svojim kolegama iz celog sveta u dinamičnim timovima. | Organizacije za finansiranje i matične institucije ograničavaju vaše saradnje. | +| Odluke o finansiranju se donose onlajn i transparentno. Istražuju se novi mehanizmi finansiranja. | Odluke o finansiranju se donose dugim i sa ograničenom transparentnošću. Postoji veoma malo mehanizama za finansiranje. | +| Deljenje laboratorijskih usluga postaje lakše i transparentnije korišćenjem osnovnih elemenata Web3 tehnologije. | Deljenje laboratorijskih resursa često je sporo i prikriveno. | +| Mogu se razviti novi modeli za objavljivanje koji koriste osnovne elemente Web3 tehnologije za poverenje, transparentnost i univerzalni pristup. | Objavljujete putem uspostavljenih puteva koji se često prepoznaju kao neefikasni, pristrasni i iskorišćavajući. | +| Možete zaraditi tokene i reputaciju za pregledanje radova kolega. | Vaše recfenzije drugih radova su besplatne, i doprinose samo profitnim izdavačima. | +| Vi posedujete intelektualnu svojinu (IP) koju generišete i distribuirate prema transparentnim uslovima. | Vaša matična organizacija poseduje intelektualnu svojinu koju vi generišete. Pristup intelektualnoj svojini nije transparentan. | +| Delite sva istraživanja, uključujući i podatke neuspešnih pokušaja, postavljanjem svih koraka na lanac blokova. | Pozitivna selekcija u publikacijama znači da istraživači češće dele eksperimente koji su imali uspešne rezultate. | + +## Ethereum i DeSci {#ethereum-and-desci} + +Decentralizovani naučni sistem zahteva snažnu bezbednost, minimalne monetarne i transakcione troškove i bogat ekosistem za razvoj aplikacija. Ethereum pruža sve što je potrebno za izgradnju decentralizovanog naučnog steka. + +## Primeri primene decentralizovane nauke {#use-cases} + +DeSci predstavlja izgradnju naučnog skupa alata kako bi integrisao akademsku zajednicu iz Web2 akademije u digitalni svet. Ispod su primeri nekoliko primena koje Web3 može ponuditi naučnoj zajednici. + +### Objavljivanje {#publishing} + +Objavljivanje naučnih radova je često problematično jer njime upravljaju izdavačke kuće koje se oslanjaju na besplatni rad naučnika, recenzenata i urednika kako bi generisali radove, ali potom naplaćuju enormne naknade za objavljivanje. Javnost, koja je obično indirektno platila za rad i troškove objavljivanja putem poreza, često ne može pristupiti istom radu bez ponovnog plaćanja izdavaču. Ukupne naknade za objavljivanje pojedinačnih naučnih radova često dosežu petocifrene iznose (u američkim dolarima), čime se podriva ceo koncept naučnog znanja kao [javne dobrobiti](https://www.econlib.org/library/Enc/PublicGoods.html) dok istovremeno generiše ogromne profite za malu grupu izdavača. + +Besplatne platforme sa otvorenim pristupom postoje u obliku serverskih sistema za predstavljanje naučnih radova, [kao što je ArXiv](https://arxiv.org/). Međutim, ove platforme nemaju kontrolu kvaliteta, [anti-Sybil mehanizme](https://csrc.nist.gov/glossary/term/sybil_attack), i uglavnom ne prate metrike na nivou članka, što znači da se obično koriste samo za promociju rada pre nego što se podnese tradicionalnom izdavaču. SciHub takođe omogućava besplatan pristup objavljenim radovima, ali nelegalno, i to tek nakon što su izdavači već naplatili svoj honorar i ograničili rad strogom autorskom zaštitom. To ostavlja kritičnu prazninu za pristupačne naučne radove i podatke sa ugrađenim mehanizmom za legitimnost i modelom podsticaja. Alat za građenje takvog sistema postoji u Web3-ju. + +### Reproducibilnost i replikabilnost {#reproducibility-and-replicability} + +Reproducibilnost i replikabilnost su osnove za kvalitetno naučno otkriće. + +- Reproducibilni rezultati mogu biti postignuti više puta zaredom od strane jednog tima koristeći istu metodologiju. +- Replikabilni rezultati mogu biti postignuti od strane druge grupe koristeći isti postavke eksperimenta. + +Novi alati iz Web3 sveta mogu da osiguraju da su reproducibilnost i replikabilnost osnova otkrića. Možemo ukomponovati kvalitetnu nauku u tehnološku strukturu akademske zajednice. Web3 nudi mogućnost da se kreiraju potvrde za svaku komponentu analize: sirove podatke, računarski motor i rezultate aplikacije. Lepota sistema konsenzusa je u tome što kada se uspostavi pouzdana mreža za održavanje ovih komponenata, svaki učesnik u mreži može biti odgovoran za reprodukovanje računanja i validaciju svakog rezultata. + +### Finansiranje {#funding} + +Trenutni standardni model finansiranja nauke podrazumeva da pojedinci ili grupe naučnika podnose pisane prijave agencijama za finansiranje. Mali panel pouzdanih pojedinaca ocenjuje prijave, a potom intervjuše kandidate pre nego što dodeli sredstva malom broju aplikanata. Osim što stvara usko grlo koje dovodi do, ponekad višegodišnjeg, čekanja između podnošenja zahteva za grant i dobijanja istog, ovaj model je poznat po visokoj ranjivosti na pristrasnosti, lične interese i politiku ocenjivačkog panela. + +Studije su pokazale da su ocenjivački paneli za dodelu grantova loši u izboru visokokvalitetnih predloga, s obzirom na to da isti predlozi dati različitim panelima na ocenjivanje imaju znatno različite ishode. Kako je finansiranje postalo sve ređe, postalo je skoncentrisanije u manji krug iskusnijih istraživača sa intelektualno konzervativnijim projektima. Ovaj efekat je stvorio hiper-kompetitivnu finansijsku sredinu, učvršćujući perverzne podsticaje i gušeći inovacije. + +Web3 ima potencijal da poremeti ovaj nefunkcionalni model finansiranja eksperimentišući sa različitim modelima podsticaja koji su razvijeni od strane DAO-a i šire, u okviru Web3 tehnologije. [Retroaktivno finansiranje javnih dobara](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), [kvadratno finansiranje](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), [DAO upravljanje](https://www.antler.co/blog/daos-and-web3-governance) i [tokenizovane strukture insentiva](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) su neki od Web3 alata koji mogu da revolucioniraju finansiranje nauke. + +### Vlasništvo intelektualne svojine i razvoj {#ip-ownership} + +Intelektualna svojina (IP) predstavlja veliki problem u tradicionalnoj nauci: od toga što je zaglavljena na univerzitetima ili se ne koristi u biotehnologiji, do velikih teškoća u određivanju njene vrednosti. Međutim, određivanje vlasništva nad digitalnom imovinom (kao što su naučni podaci ili članci) je nešto što Web3 radi veoma dobro koristeći [nezamenljive tokene (NFT-ijeve)](/nft/). + +Na isti način na koji NFT-jevi mogu omogućiti prenos prihoda za buduće transakcije nazad originalnom tvorcu, isto tako i vi možete uspostaviti transparentne lance za pripisivanje vrednosti kako biste nagrađivali istraživače, upravne organe (kao što su DAO-ovi) ili čak subjekte čiji se podaci prikupljaju. + +[NFT-ovi sa intelektualnom svojinom](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) takođe mogu da funkcionišu kao ključ za decentralizovani repozitorijum podataka o istraživačkim eksperimentima koji se sprovode, i integrisati se u NFT i finansiranje [decentralizovanih finansija](/defi/) (od razlaganja do fondova za davanje pozajmica i procene vrednosti). Takođe omogućava da entiteti koji su na lancu kao što su DAO-ovi poput [VitaDAO](https://www.vitadao.com/) direktno sprovode istraživanja na lancu. Dolazak neotuđivih ["soulbound" tokena](https://vitalik.ca/general/2022/01/26/soulbound.html) takođe može odigrati važnu ulogu u DeSci omogućavajući pojedincima da dokažu svoje iskustvo i akademske kvalifikacije povezane sa njihovom Ethereum adresom. + +### Skladišta podataka, pristup i arhitektura {#data-storage} + +Naučni podaci mogu postati znatno dostupniji korišćenjem Web3 obrazaca, a distribuirano skladištenje omogućava da istraživanje preživi kataklizmične događaje. + +Startna pozicija mora biti sistem kom može da pristupi svaki decentralizovani identitet koji ima ispravne akreditive koji se mogu potvrditi. To omogućava da osetljivi podaci budu sigurno replicirani od strane pouzdanih strana, omogućavajući redudantnost i otpornost na cenzuru, reprodukciju rezultata, pa čak i sposobnost da više strana sarađuje i dodaje nove podatke u skup podataka. Metode poverljivog računarstva poput [compute-to-data](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol) pružaju alternativne mehanizme pristupa sirovim podacima, stvarajući pouzdane istraživačke okoline za najosetljivije podatke. Pouzdane istraživačke okoline su [spomenute od strane NHS (Nacionalne zdravstvene službe u Ujedinjenom Kraljevstvu)](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) kao rešenje za budućnost u vezi sa zaštitom podataka i saradnjom, stvarajući ekosistem u kojem istraživači mogu bezbedno raditi sa podacima na licu mesta koristeći standardizovana okruženja za deljenje koda i praksi. + +Fleksibilna Web3 rešenja za podatke podržavaju navedene scenarije i pružaju osnovu za istinski Otvorenu Nauku, gde istraživači mogu stvarati javna dobra bez potrebe za dozvolama za pristup ili naknadama. Web3 rešenja za javne podatke poput IPFS-a, Arweave-a i Filecoina optimizovana su za decentralizaciju. Na primer, dClimate omogućava univerzalni pristup podacima o klimi i vremenu, uključujući podatke sa meteoroloških stanica i prediktivnih modela klime. + +## Uključi se {#get-involved} + +Istražite projekte i pridružite se DeSci zajednici. + +- [DeSci.Global: globalni događaji i kalendar okupljanja](https://desci.global) +- [Lanac blokova za Nauku Telegram](https://t.me/BlockchainForScience) +- [Molecule: Finansirajte i dobijte finansiranje za istraživačke projekte](https://discover.molecule.to/) +- [VitaDAO: dobijte sredstva finansiranje putem ugovora o sponzorisanju istraživanja za istraživanje dugovečnosti](https://www.vitadao.com/) +- [ResearchHub: objavite naučne rezultate i učestvujte u diskusiji sa kolegama](https://www.researchhub.com/) +- [LabDAO: Istraživanja proteina u virtuelnom okruženju](https://alphafodl.vercel.app/) +- [dClimate API omogućava upite za klimatske podatke koji su prikupljeni od strane decentralizovane zajednice](https://api.dclimate.net/) +- [DeSci fondacija: DeSci alat za izgradnju sistema za objavljivanje](https://descifoundation.org/) +- [DeSci.World: jedno mesto za korisnike da vide i učestvuju u decentralizovanoj nauci](https://desci.world) +- [Fleming Protokol: otvorena ekonomija podataka za saradnju u oblasti biomedicine](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [OceanDAO: finansiranje kojim upravlja DAO za nauku povezanu sa podacima](https://oceanprotocol.com/dao) +- [Opscientia: otvoreni decentralizovani tokovi rada u nauci](https://opsci.io/research/) +- [LabDAO: Istraživanja proteina u virtuelnom okruženju](https://alphafodl.vercel.app/) +- [Bio.xyz: finansirajte svoj biotehnološki DAO ili desci projekat](https://www.molecule.to/) +- [ResearchHub: objavite naučne rezultate i učestvujte u diskusiji sa kolegama](https://www.researchhub.com/) +- [VitaDAO: dobijte sredstva finansiranje putem ugovora o sponzorisanju istraživanja za istraživanje dugovečnosti](https://www.vitadao.com/) +- [Fleming Protokol: otvorena ekonomija podataka za saradnju u oblasti biomedicine](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [Active Inference Lab](https://www.activeinference.org/) +- [CureDAO. Platforma za preciznu medicinu koja je u vlasništvu zajednice](https://docs.curedao.org/) +- [IdeaMarkets: omogućavanje decentralizovane naučne verodostojnosti](https://ideamarket.io/) +- [DeSci Labs](https://www.desci.com/) + +Dobrodošli su predlozi novih projekata za listu — molim vas, pogledajte našu [politiku listinga](/contributing/adding-desci-projects/) da biste počeli! + +## Dodatna literatura {#further-reading} + +- [DeSci Wiki od strane Džoselin Perl i Ultrarare-a](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) +- [Vodič za decentralizovanu biotehnologiju od strane Džoselin Prl za a16z future program](https://future.a16z.com/a-guide-to-decentralized-biotech/) +- [Argumenti za DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) +- [Vodič kroz DeSci](https://future.com/what-is-decentralized-science-aka-desci/) +- [Resursi za decentralizovanu nauku](https://www.vincentweisser.com/decentralized-science) +- [Molecule-ova Biophrama IP-NFT-jevi — Tehnički opis](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) +- [Izgradnja sistema nauke bez potrebe za poverenjem, autor Džon Star](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) +- [Pojava biotehnoloških DAO-a](https://molecule.to/blog/the-emergence-of-biotech-daos) +- [Pol Kohlas — DeSci: Budućnost decentralizovane nauke (podkast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) +- [Aktivna ontologija zaključivanja za decentralizovanu nauku: od situacionog tumačenja do epistemiološke zajednice](https://zenodo.org/record/6320575) +- [DeSci: Budućnost istraživanja, autor Samjuel Akinošo](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) +- [Finansiranje nauke (Epilog: decentralizovanu nauka i novi primitivni kripto-algoritmi), od strane Nađe](https://nadia.xyz/science-funding) +- [Decentralizacija menja iz korena razvoj lekova](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) + +### Videos {#videos} + +- [Šta je decentralizovana nauka?](https://www.youtube.com/watch?v=-DeMklVWNdA) +- [Razgovor između Vitalika Buterina i naučnice Obri de Grej o raskrsnici istraživanja dugovečnosti i kripto sveta](https://www.youtube.com/watch?v=x9TSJK1widA) +- [Naučno objavljivanje je pokvareno. Može li Web3 da ga popravi?](https://www.youtube.com/watch?v=WkvzYgCvWj8) +- [Huan Benet — DeSci, nezavisne laboratorije,& nauka o podacima velike skale](https://www.youtube.com/watch?v=zkXM9H90g_E) +- [Sebastijan Brunmejer — Kako DeSci može da transformiše biomedincska istraživanja & preduzetnički kapital](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/public/content/translations/sr/nft/index.md b/public/content/translations/sr/nft/index.md new file mode 100644 index 00000000000..efbd3fecf36 --- /dev/null +++ b/public/content/translations/sr/nft/index.md @@ -0,0 +1,94 @@ +--- +title: Nezamenljivi tokeni (NFT) +description: Pregled NFT-ijeva na Ethereum +lang: sr +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: Eth logo koji se prikazuje putem holograma. +summaryPoint1: Način da se bilo šta jedinstveno prikaže kao sredstvo zasnovano na Ethereum. +summaryPoint2: NFT-ijevi daju više moći kreatorima sadržaja nego ikada ranije. +summaryPoint3: Pokreću ih pametni ugovori na Ethereum-ovom blokčejnu. +--- + +## Šta su NFT-ijevi? {#what-are-nfts} + +NFT-ijevi su tokeni koji su jedinstveni. Svaki NFT ima drugačije karakteristike (nezamenjiv je) i ograničeno je dostupan. NFT-ovi se razlikuju od tokena kao što je ERC-20 u kom je svaki token isti i ima iste karakteristike (zamenjiv je). Ne zanima vas koji dolar imate u novčaniku, zato što je svaki isti i vredi isto. Ipak, veoma je bitno koji NFT posedujete zato što svaki ima svoje karakteristike koje ga razlikuju od drugih ("nezamenljivi su"). + +Jedinstvenost svakog NFT-ja omogućava tokenizaciju stvari poput umetnosti, kolekcionarskih predmeta ili čak nekretnina, gde jedan određeni jedinstveni NFT predstavlja određenu jedinstvenu stvar iz stvarnog sveta ili digitalni predmet. Vlasništvo nad nekom imovinom je osigurano Ethereum blokčejnom — niko ne može da izmeni zapis o vlasništvu niti da kopira/nalepi novi NFT. + + + +## Internet imovine {#internet-of-assets} + +NFT-ijevi i Ethereum rešavaju neke od problema koji postoje na Internetu. Kao što sve postaje digitalno, postoji potreba da se i karakteristike fizičkih proizvoda kao što su ograničena dostupnost, jedinstvenost i dokaz o vlasništvu repliciraju u digitalni svet. na takav način da nije kontrolisano od strane neke centralne organizacije. Na primer, sa NFT-ijevima možete da posedujete muzički mp3 koji nije specifičan za određenu aplikaciju za reprodukciju muzike jedne kompanije, ili možete posedovati korisničko ime na društvenim mrežama koje možete prodati ili razmeniti, ali vam ga pružalac platforme ne može proizvoljno oduzeti. + +Evo kako se Internet NFT-ijeva razlikuje od Interneta koji većina nas koristi... + +### Poređenje {#nft-comparison} + +| Internet NFT-ova | Internet današnjice | +| --------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| Posedujete svoju imovinu! Samo vi možete da je prodajete ili menjate. | Unajmljujete proizvode od neke organizacije. | +| NFT-jevi su digitalno jedinstveni, ne postoje dva ista. | Kopija jednog entiteta uglavnom ne može da se razlikuje od originala. | +| Vlasništvo nad NFT-jem je upisano na lancu blokova i svako može to da utvrdi. | Vlasništvo nad digitalnom imovinom je upisano na serverima koji su kontrolisani od strane institucija — i morate im verovati. | +| NFT-ijevi su pametni ugovori na Ethereumu. Ovo znači da ih možete jednostavno koristiti u okviru drugih pametnih ugovora i aplikacija na Ethereumu! | Kompanije sa digitalnim predmetima uglavnom zahtevaju svoju sopstvenu "zatvorenu" infrastrukturu. | +| Kreatori sadržaja mogu da prodaju svoj rad bilo gde i imaju pristup globalnom marketu. | Kreatori se oslanjaju na infrastrukturu i distribuciju platforme koju koriste. Često su podložni uslovima korišćenja i geografskim ograničenjima. | +| Kreatori NFT-ijeva mogu da zadrže prava vlasništva nad svojim delom i direktno programirati autorske naknade u NFT ugovor. | Platforme kao što su one za strimovanje muzike zadržavaju većinu profita od prodaje. | + +## Kako NFT-ijevi funkcionišu? {#how-nfts-work} + +Kao i bilo koji token izdat na Ethereumu, NFT-ijevi su izdati putem pametnog ugovora. Pametni ugovor se pridržava jednog od nekoliko standarda za NFT-ijeve (uglavnom ERC-721 ili ERC-1155) koji definišu koje funkcije ugovor ima. Ugovor može da kreira ("izrudari") NFT-ijeve i da ih dodeli nekom vlasniku. Vlasništvo je definisano ugovorom mapiranjem određenih NFT-ijeva određenim adresama. NFT ima identifikator (ID) i obično ima povezane metapodatke koji čine određeni token jedinstvenim. + +Kada neko kreira ili izrađuje NFT, zapravo izvršava funkciju u pametnom ugovoru koja dodeljuje određeni NFT njihovoj adresi. Ova informacija se čuva u skladištu ugovora koje je deo lanca blokova. Kreator ugovora može dopisati dodatnu logiku u ugovor, na primer može ograničiti ukupnu ponudu ili definisati autorske naknade koje će biti isplaćivane kreatoru svaki put kada se token prenese. + +## Za šta se NFT koristi? {#nft-use-cases} + +NFT-ijevi se koriste za mnoge svrhe, uključujući: + +- Dokaz da ste prisustvovali nekom događaju +- Sertifikat da ste završili neki kurs +- Predmeti koji se mogu posedovati u igrama +- Digitalna umetnost +- Tokenizacija predmeta iz fizičkog sveta +- Dokaz o onlajn identitetu +- Ograničavanje pristupa sadržaju +- Prodaja karata +- Decentralizovani Internet nazivi domena +- Kolateral u decentralizovanim finansijama (DeFi) + +Možda ste vi umetnik koji želi da podeli svoj rad koristeći NFT. ijeve bez gubljenja kontrole i žrtvovanja profita u korist posrednika. Možete kreirati novi ugovor i tačno odrediti broj NFT-ijeva, njihovih karakteristika i link ka određenom umetničkom delu. Kao umetnik, možete programirati autorske naknade u pametni ugovor koje bi trebalo da budete plaćeni (na primer, preneti 5% od cene prodaje vlasniku ugovora svaki put kada se NFT prenese). Takođe, možete dokazati da ste vi kreirali NFT tako što posedujete novčanik koji je sproveo ugovor. Vaši kupci mogu jednostavno da dokažu vlasništvo nad NFT-ijem iz vaše kolekcije zato što je njihova adresa novčanika povezana sa tokenom u vašem pametnom ugovoru. Mogu da koriste taj NFT u Ethereum ekosistemu sa uverenjem u njegovu autentičnost. + +Ili, zamislite ulaznicu za neki sportski događaj. Kao što organizator nekog događaja može da izabere koliko karata će prodati, isto tako i kreator NFT-ijeva može da odluči koliko replika će postojati. Ponekad su to identične replike kao što je na primer 5000 karata za opšti ulaz. Ponekad nekoliko njih je izrudareno koje su veoma slične, ali ipak malo različite, na primer karte koje imaju određen broj stolice za sedenje. One mogu biti kupljene i prodate direktno bez plaćanja posredniku za ulaznice, a kupac uvek može biti siguran u autentičnost ulaznice proverom adrese ugovora. + +Na ethereum.org, NFT-ijevi se koriste da pokažu da su neke osobe doprinele našem Github nalogu ili su prisustvovali pozivu ili čak imaju svoj NFT domen. Ukoliko doprinesete ethereum.org, možete preuzeti svoj POAP NFT. Neki kripto događaju koriste POAP-e kao ulaznice. [Više o doprinosu](/contributing/#poap). + +![ethereum.org POAP](./poap.png) + +Ovaj sajt takođe ima alternativni naziv domena u vidu NFT-ova, **ethereum.eth**. Našom adresom sa `.org` ekstenzijom se centralno upravlja od strane pružaoca sistema za imena domena (DNS), dok je ethereum`.eth` registrovan na Ethereum putem Ethereum Name Service (ENS). I on je u vlasništvu i upravljanju nas. [Proverite nas ENS zapis](https://app.ens.domains/name/ethereum.eth) + +[Više o ENS-u](https://app.ens.domains) + + + +### Bezbednost u pogledu NFT-ova {#nft-security} + +Bezbednost Ethereum dolazi od dokaza o ulogu. Sistem je projektovan tako da ekonomski demotiviše zlonamerne radnje, čime se Ethereum čini otpornim na manipulacije. Ovo omogućava NFT-ijeve. Jednom kada blok koji sadrži vašu NFT transakciju postane finalizovan, napadača bi koštalo na milione ETH da to promeni. Bilo ko ko pokreće Ethereum softver odmah bi mogao da otkrije nepošteno manipulisanje NFT-om, a zlonamerni akter bi bio ekonomski kažnjen i izbačen. + +Problemi bezbednosti NFT-ijeva su uglavnom povezani sa fišingom, ranjivošću pametnih ugovora ili korisničkom greškom (kao što je nenamerno izlaganje privatnih ključeva), čineći sigurnost novčanika ključnom za vlasnike NFT-ijeva. + + + Više o bezbednosti + + +## Dodatna literatura {#further-reading} + +- [Vodič za početnike u NFT-u](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) — _ Linda Ksie, Januar 2020._ +- [Praćenje EtherscanNFT-a](https://etherscan.io/nft-top-contracts) +- [Standard za tokene ERC-721](/developers/docs/standards/tokens/erc-721/) +- [ERC-1155 standard za tokene](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/public/content/translations/sr/refi/index.md b/public/content/translations/sr/refi/index.md new file mode 100644 index 00000000000..36b5953e8de --- /dev/null +++ b/public/content/translations/sr/refi/index.md @@ -0,0 +1,79 @@ +--- +title: Regenerativne finansije (ReFi) +description: Pregled regenerativnih finansija i njegove trenutke primene. +lang: sr +template: use-cases +emoji: ":recycle:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Alternativa ekonomskom sistemu izgrađena na regenerativnim principima +summaryPoint2: Pokušaj upotrebe Ethereuma za rešavanje globalnih koordinacionih kriza kao što su klimatske promene +summaryPoint3: Alatka za značajno povećanje ekoloških korisnih sredstava poput verifikovanih kreditnih bodova za smanjenje emisije ugljenika +--- + +## Šta je ReFi? {#what-is-refi} + +**Regenerativne finansije (ReFi)** je skup alatki i ideja izgrađenih na vrhu lanca blokova, koje imaju za cilj stvaranje ekonomija koje su regenerativne, umesto ekstraktivnih ili eksploatativnih. Na kraju, ekstraktivni sistemi iscrpljuju dostupne resurse i propadaju; bez regenerativnih mehanizama, nedostaje im otpornost. ReFi deluje na pretpostavci da stvaranje monetarne vrednosti mora biti odvojeno od neodrživog izvlačenja resursa sa naše planete i zajednica. + +Umesto toga, ReFi želi da reši probleme životne sredine, zajednice i društve kreirajući regenerativne cikluse. Ovi sistemi kreiraju vrednost za korisnike dok istovremeno donosi benefit i ekosistemima i zajednicama. + +Jedna od osnova ReFi-ja je koncept regenerativne ekonomije koji je razvio Džon Fulerton iz [Capital Instituta](https://capitalinstitute.org). On je predložio osam međusobno povezanih principa koji su deo sistemskog zdravlja: + +![Osam međusobno povezanih principa](refi-regenerative-economy-diagram.png) + +ReFi projekti ostvaruju ove principe korišćenjem [pametnih ugovora](/developers/docs/smart-contracts/) i aplikacija za [decentralizovane finansije](/defi/) (DeFi) kako bi podstakli regenerativna ponašanja, na primer obnavljanje degradiranih ekosistema, i kako bi olakšali masovnu saradnju na globalnim pitanjima kao što su klimatske promene i gubitak biodiverziteta. + +ReFi takođe se preklapa sa pokretom [decentralizovane nauke (DeSci)](/desci/), koji koristi Ethereum kao platformu za finansiranje, kreiranje, recenzije, dodelu zasluga, skladištenje i širenje naučnog znanja. DeSci alati mogli bi da postanu korisni za razvoj verifikovanih standarda i praksi za implementaciju i praćenje regenerativnih aktivnosti poput sadnje drveća, uklanjanja plastike iz okeana ili obnove degradiranog ekosistema. + +## Tokenizacija karbonskih kredita {#tokenization-of-carbon-credits} + +**[Dobrovoljno ugljenično tržište (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** predstavlja mehanizam za finansiranje projekata koji imaju potvrđen pozitivan uticaj na emisije ugljenika, bilo smanjivanjem postojećih emisija ili uklanjajem efekta staklene bašte već emitovanih emisija u atmosferi. Ovi projekti dobijaju sredstva nazvano "karbonski krediti" nakon što verifikovani, i njih mogu prodavati pojedincima i organizacijama koje žele podržati borbu protiv klimatskih promena. + +Pored dobrovoljnog ugljeničnog tržišta (VCM), postoje i različita ugljenična tržišta koja traže vlade ('tržišta usaglašenosti') koja nastoje da uspostave cenu ugljenika putem zakona ili propisa unutar određene nadležnosti (npr. države ili regiona), čime se kontroliše snabdevanje dozvolama. Tržišta usaglašenosti podstiču zagađivače u okviru svojih nadležnosti da smanje emisije, ali one nisu u mogućnosti da smanje efekat staklene bašte postojećih emisija. + +Uprkos svom razvoju u proteklih nekoliko decenija, VCM-ijevi i dalje imaju mnoge probleme: + +1. Visoko fragmentisana likvidnost +2. Komlikovane mehanizme transakcija +3. Visoke nadoknade +4. Veoma sporo trgovanje +5. Nemogućnost skalabilnosti + +Prelazak sa VCM-a na novo **digitalno tržište za ugljenik** na lancu blokova (DCM) može biti prilika za unapređenje postojeće tehnologije za validaciju, transakcije i korišćenje karbonskih kredita. Lanci blokova omogućavaju javno verifikovanje podataka, pristup za veliki broj korisnika i više likvidnosti. + +Projekti ReFi koriste blokčejn tehnologiju kako bi ublažili mnoge probleme tradicionalnog tržišta: + +- **Likvidnost je skoncentrisana u malom broju fondova likvidnosti**u kojim svako može slobodno da trguje. Velike organizacije kao i pojedinačni korisnici mogu da koriste ove fondove bez ručnih pretraga za prodavce/kupce, naknade za učešće ili prethodne registracije. +- **Sve transakcije su zabeležene na javnim lancima blokova**. Put kojim svaka karbonska kreditna jedinica prolazi zbog trgovinske aktivnosti se može pratite čim postane dostupna u DCM-u. +- **Transakcije se izvršavaju gotovo instant**. Obezbeđivanje velikih količina karbonskih kreditnih jedinica putem tradicionalnih tržišta može trajati dane ili nedelje, dok se u DCM-u isto može postići za nekoliko sekundi. +- **Trgovanje se dešava bez posrednika** koji naplaćuju visoke naknade. Digitalne karbonske kreditne jedinice predstavljaju[ poboljšanje troškova od 62% u odnosu na ekvivalentne tradicionalne kredite,](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne) prema podacima jedne analitičke firme. +- **DCM je skalabilan** i možete jednako da izvrši zahteve pojedinaca i korporacija. + +### Ključne komponente DCM-a {#key-components-dcm} + +Četiri glavne komponente čine trenutnu sliku DCM-a: + +1. Registri kao što su [Verra](https://verra.org/project/vcs-program/registry-system/) i [ Gold Standard](https://www.goldstandard.org/) osiguravaju da projekti koji stvaraju karbonske kredite budu pouzdane. Takođe upravljaju bazama podataka iz kojih potiču digitalni ugljenični krediti i mogu se prenositi ili iskoristiti (penzionisati). + +Krenuo je novi talas inovativnih projekata koji se grade na tehnologiji lanca blokova, a koji pokušavaju da drastično unaprede postojeće aktere u ovom sektoru. + +2. Karbon mostovi, poznati i kao tokenizatori pružaju tehnologiju za prikazivanje ili prenos karbonskih kredita iz tradicionalnih registara u DCM. Neki od poznatijih primera su [Toucan Protokol](https://toucan.earth/), [C3](https://c3.app/) i [Moss.Earth](https://moss.earth/). +3. Integrisane usluge nude korisnicima kredite za izbegavanje i/ili uklanjanje ugljenika kako bi mogli da ostvare ekološke koristi od kredita i podele svoju podršku akcijama za klimatske promene sa svetom. + +Neki od njih, kao što su [Klima Infinity](https://www.klimadao.finance/infinity) i [Senken](https://senken.io/), nude raznovrsne projekte razvijene od strane trećih lica i izdate prema unapred uspostavljenim standardima kao što je Verra; drugi, kao kao što je na primer [Nori](https://nori.com/), nude samo određene projekte razvijene prema njihovom sopstvenom standardu za kredite za uklanjanje ugljenika, koje izdaju i za koje imaju sopstveno tržište. + +4. Osnovna infrastruktura koja olakšava povećanje uticaja i efikasnosti celokupnog lanca snabdevanja tržišta ugljenikom. [KlimaDAO](http://klimadao.finance/) pruža likvidnost kao javno dobro (omogućujući svima da kupe ili prodaju kreditne vrednosti ugljenika po transparentnoj ceni), stimuliše povećan protok tržišta ugljenika i povlačenje uz nagrade, obezbeđuje korisnički prijateljske interoperabilne alate za pristup podacima i omogućuje sticanje i povlačenje različitih tokenizovanih kreditnih vrednosti ugljenika. + +## ReFi izvan tržišta ugljenika {#refi-beyond} + +Iako trenutno postoji snažan naglasak na tržišta ugljenika uopšteno i posebno na prelazak sa VCM na DCM unutar ovog prostora, termin "ReFi" nije strogo ograničen samo na ugljenik. Drugi ekološki resursi osim kredita za ugljenik mogu biti razvijeni i tokenizovani, što znači da će i drugi negativni eksterni uticaji moći biti precizno procenjeni unutar osnovnih slojeva budućih ekonomskih sistema. Osim toga, regenerativni aspekt ovog ekonomskog modela može se primeniti i na druge oblasti, poput finansiranja javnih dobara putem platformi za kvadratno finansiranje kao što je [Gitcoin](https://gitcoin.co/). Organizacije koje su izgrađene na ideji otvorenog učešća i jednake distribucije resursa ohrabruju svakog da preusmeri sredstva projektima otvorenog koda, projektima za zaštitu životne sredine, edukativnih projektima i projektima orijentisane ka zajednici. + +Preusmeravanje kapitala od ekstraktivnih praksi ka regenerativnom toku, projekti i kompanije koje pružaju društvene, ekološke ili benefite za zajednicu — a koje možda ne bi uspele dobiti sredstva u tradicionalnom finansiranju — mogu se brže i lakše pokrenuti i generisati pozitivni efekti na društvo. Prelazak na ovaj model finansiranja takođe otvara vrata mnogo inkluzivnijim ekonomskim sistemima, gde ljudi svih demografskih grupa mogu postati aktivni učesnici umesto pasivni posmatrači. ReFi nudi viziju Ethereuma kao mehanizma za koordinisanje akcija za egzistencijalne izazove sa kojima se suočava naša vrsta i sva živa bića na planeti — kao osnovni sloj nove ekonomske paradigme, omogućavajući inkluzivniju i održivu budućnost u narednim vekovima. + +## Dodatni resursi o ReFi-ju + +- [Sveobuhvatan pregled carbon valuta i njihovo mesto u ekonomiji](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) +- [Ministarstvo za budućnost, roman koji prikazuje ulogu valute podržane ugljenikom u borbi protiv klimatskih promena](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) +- [Detaljan izveštaj Radne grupe za skaliranje dobrovoljnih tržišta za ugljenik](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) +- [ReFi pojam u CoinMarketCap rečniku, autori Kevin Ovocki i Juan Mijazono](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/public/content/translations/sr/smart-contracts/index.md b/public/content/translations/sr/smart-contracts/index.md new file mode 100644 index 00000000000..d5e1623bb8a --- /dev/null +++ b/public/content/translations/sr/smart-contracts/index.md @@ -0,0 +1,84 @@ +--- +title: Pametni ugovori +description: Ne-tehnički uvod u pametne ugovore +lang: sr +--- + +# Introduction to smart contracts {#introduction-to-smart-contracts} + +Pametni ugovori su osnovni gradivni elementi aplikativni nivo Ethereuma. To su računarski programi smešteni na lancu blokova koji slede logiku "ako je ovo onda je to" (if this then that), i garantovano će se izvršiti prema pravilima definisanim u svom kodu, koja se ne mogu promeniti nakon što su kreirani. + +Termin "pametni ugovor" je skovao Nik Sabo. 1994. je napisao [uvod u koncept](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html) a 1996. [istraživanje šta sve može pametni ugovor](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). + +Sabo je zamislio digitalno tržište gde automatski, kriptografski-sigurni procesi omogućavaju transakcije i biznis funcije bez potrebe za posrednikom. Pametni ugovori na Ethereumu su ovu viziju pretvorili u realnost. + +## Poverenje u konvencionalne ugovore {#trust-and-contracts} + +Jedan od najvećih problema sa tradicionalnim ugovorima je potreba za pouzdanim pojedincima koji će pratiti izvršenje ugovora. + +Evo jednog primera: + +Alis i Bob imaju trku biciklima. Hajde da kažemo da se klade u 10 dolara da će Alis da pobedi. Bob je uveren da će biti pobednik i složi se sa opkladom. Na kraju, Alisa pobedi Bobu. Međutim, Boba odbija da isplati opkladu, tvrdeći da je Alisa sigurno varala. + +Ovaj blesavi primer ilustruje problem koji imaju ne-pametni dogovori. Čak i ukoliko su uslovi dogovora ispunjeni (tj. vi ste pobednik trke), morate i dalje verovati drugoj osobi da će ona ispuniti dogovor (tj. isplati opkladu). + +## A digital vending machine {#vending-machine} + +Jednostavna metafora za pametne ugovore je aparat za slatkiše koji radi otprilike kao pametni ugovor — specifični ulog (input) garantuje unapred određeni ishod (output). + +- Izaberete proizvod +- Mašina prikaže cenu +- Platite iznos +- Mašina potvrdi da ste platili pravi iznos +- Mašina vam da ono što ste tražili + +Mašina će izbaciti proizvod koji želite tek kad ispunite sve uslove koji su traženi. Ukoliko ne izaberete proizvod ili ne unesete dovoljno novca, mašina vam neke dati proizvod. + +## Automatsko izvršenje {#automation} + +Glavna korist pametnog ugovora je da deterministički izvršava jednoznačan kod kada se određeni uslovi ispune. Ne postoji potreba da se čeka čovek koji će da interpretira ili pregovara oko rezultata. Ovo uklanja potvrdu za posrednikom. + +Npr. možete da napišete pametni ugovor kojim se zadržavaju sredstva u zalogu za dete, čime se detetu dozvoljava da povuče sredstva nakon određenog datuma. Ukoliko pokuša da povuče novac pre tog datuma, pametni ugovor se neće izvršiti. Ili možete napisati ugovor koji vam automatski daje digitalnu verziju registracije auta kada platite prodavcu. + +## Predvidivi ishodi {#predictability} + +Tradicionalni ugovori su višesmisleni zato što se oslanjaju na ljude da ih interpretiraju i implementiraju. Na primer, dvojica sudija mogu interpretirati ugovor drugačije što može dovesti do nekonzistentnih odluka i nejednakih ishoda. Pametni ugovori uklanjaju ovu mogućnost. Umesto toga, pametni ugovor se izvršava precizno na osnovu upisanih uslova u kodu ugovora. Preciznost znači da uz iste okolnosti, pametni ugovor će dati isti rezultat. + +## Javni zapis {#public-record} + +Pametni ugovori su korisni za revizije i praćenje. S obzirom na to da su Ethereum pametni ugovori na javnom lancu blokova, svako može instant da prati transfer sredstava i druge informacije sa tim u vezi. Na primer, možete proveriti da vidite da li je neko poslao novac na vašu adresu. + +## Zaštita privatnosti {#privacy-protection} + +Pametni ugovori takođe štite vašu privatnost. S obzirom na to da je Ethereum pseudonimna mreža (vaše transakcije su povezane javno za određenu kriptografsku adresu, ne za vaš identitet), možete zaštiti svoju privatnost od posmatrača. + +## Transparentni uslovi {#visible-terms} + +Konačno, kao i tradicionalni ugovori, možete proveriti šta se nalazi u pametnom ugovoru pre potpisivanja (ili interagujete sa njim na neki drugi način). Transparentnost pametnog ugovora garantuje da svako može da ga pažljivo ispita. + +## Primene pametnog ugovora {#use-cases} + +Pametni ugovori mogu da urade sve što i kompjuterski programi. + +Mogu da izvršavaju računanja, naprave valutu, skladište podatke, rudare NFT-ijeve, komuniciraju ili generišu grafike. Evo nekih popularnih primera iz stvarnog sveta: + +- [Stablecoins](/stablecoins/) +- [kreiranje i distribuiranje jedinstvenih digitalnih sredstava](/nft/) +- [automatska, otvorena razmena valuta](/get-eth/#dex) +- [Decentralizovano igranje](/dapps/?category=gaming) +- [polisa osiguranja koja se automatski izvršava](https://etherisc.com/) +- [standard koji omogućava da ljudi kreiraju prilagođene, interoperabilne valute](/developers/docs/standards/tokens/) + +## Više ste navikli na vizuelno učenje? {#visual-learner} + +Gledajte kako Finematics objašnjava pametne ugovore: + + + +## Dodatna literatura {#further-reading} + +- [Kako će pametni ugovori promeniti svet](https://www.youtube.com/watch?v=pA6CGuXEKtQ) +- [Pametni ugovori: Blokčejn tehnologija koja će zameniti advokate](https://blockgeeks.com/guides/smart-contracts/) +- [Pametni ugovori za programere](/developers/docs/smart-contracts/) +- [Naučite kako da napišete pametne ugovore](/developers/learning-tools/) +- [Masteriraj Ethereum — Šta je pametni ugovor?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/sr/social-networks/index.md b/public/content/translations/sr/social-networks/index.md new file mode 100644 index 00000000000..72a35625252 --- /dev/null +++ b/public/content/translations/sr/social-networks/index.md @@ -0,0 +1,121 @@ +--- +title: Decentralizovane društvene mreže +description: Pregled decentralizovanih društvenih mreža na Ethereumu +lang: sr +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: /ethereum-learn.png +summaryPoint1: Platforme bazirane na blokčejnu za društvenu interakciju i kreiranje i distribuciju sadržaja. +summaryPoint2: Decentralizovane društvene mreže štite privatnost korisnika i pospešuju bezbednost podataka. +summaryPoint3: Tokeni i NFT-ijevi kreiraju nove načine kako monetizovati sadržaj. +--- + +Društvene mreže igraju bitnu ulogu u našim dnevnim komunikacijama i interakcijama. Ipak, centralizovana kontrola nad ovim platformama je stvorila mnoge probleme: curenje podataka, prekide servera, brisanje sadržaja, cenzuru i kršenje privatnosti su samo neki od kompromisa koje društvene mreže često prave. Da bi se borili protiv ovih problema, programeri su napravili društvene mreže na Ethereumu. Decentralizovane društvene mreže mogu da poprave mnoge probleme tradicionalnih društvenih mreža i da poboljšaju korisničko iskustvo. + +## Šta su decentralizovane društvene mreže? {#what-are-decentralized-social-networks} + +Decentralizovane društvene mreže su bazirane na blokčejnu i omogućavaju korisnicima da razmenjuju informacije i da objavljuju i dostribuiraju sadržaj publici. Pošto te aplikacije rade na lancima blokova, one mogu da budu decentralizovane i otporne na cenzuru i prekomernu kontrolu. + +Mnoge decentralizovane društvene mreže postoje kao alternativa već postojećim mrežama kao što su Facebook, LinkedIn, Twitter i Medium. Ali društvene mreže na blokčejnu imaju brojne karakteristike koje ih čine boljima od tradicionalnih društvenih mreža. + +### Kako decentralizovane društvene mreže funkcionišu? {#decentralized-social-networks-overview} + +Decentralizovane društvene mreže su vrsta [decentralizovanih aplikacija(dapps)](/dapps/) — aplikacija napravljenih uz pomoć [pametnih ugovora](/developers/docs/smart-contracts/)implementiranih na lancu blokova. Kod ugovora služi kao bekend za ove aplikacije i definiše njihovu biznis logiku. + +Tradicionalne društvene mreže se oslanjaju na baze podatake koje skladište informacije o korisniku, kod i ostale podatke. Ali ono stvara slabe tačke i ogroman rizik. Na primer, Facebookovi serveri su neslavno[prestali da rade na nekoliko sati](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact)prošle godine, i tako korisnici nisu imali pristup platformi. + +Decentralizovane društvene mreže postoje na mreži korisnika koja obuhvata hiljade čvorova širom sveta. Iako neki čvorovi prestanu da rade, mreža će nastaviti da funkcioniše neometano čineći aplikacije otporne na takve probleme. + +Korišćenje decentralizovanih baza, kao što je [InterPlanetary File System (IPFS)](https://ipfs.io/),društvene mreže izgrađene na Ethereumu mogu da zaštite informacije korisnika od bilo kakve zloupotrebe. Niko neće prodati vaše podatke oglašivačima, niti će hakeri moći da ukradu vaše poverljive informacije. + +Mnoge društvene mreže zasnovane na lancu blokova imaju svoje tokene kojima vrše monetizaciju u odsustvu prihoda od oglašivača. Korisnici mogu da kupe te tokene da bi imali pristup određenim opcijama, da vrše kupovinu u aplikacijama ili da daju bakšiš omiljenim kreatorima sadržaja. + +## Benefiti decentralizovanih društvenih mreža {#benefits} + +1. Decentralizovane društvene mreže su otporne na cenzuru i otvorene za sve. Ovo znači da korisnici ne mogu da budu zabranjeni, uklonjeni sa platforme ili proizvoljno ograničeni. + +2. Decentralizovane društvene mreže su izgrađene na idealima otvorenog koda i njihov kod je javno dostupan ukoliko želite da ga revidirate. Eliminacijom upotrebe nejasnih algoritama koji su uobičajeni u tradicionalnim društvenim medijima, društvene mreže bazirane na blokčejnu mogu uskladiti interese korisnika i kreatora platforme. + +3. Decentralizovane društvene mreže eliminišu posrednika. Kreatori sadržaja imaju direktno vlasništvo nad svojim sadržajem i mogu direktno da komuniciraju sa svojim pratiteljima, obožavateljima, kupcima itd, bez ičega osim pametnog ugovora između njih. + +4. Kao što decentralizovane aplikacije koji funkcionišu na Ethereum mreži, koja je održavana globalnom mrežom povezanih korisnika, decentralizovane društvene mreže su manje podložne prekidima i ispadima servera. + +5. Decentralizovane društvene platforme nude poboljšani okvir za zaradu za kreatore sadržaja uz pomoć nezamenljivih tokena (NFT-ijeva), kripto uplatama i sl. + +6. Decentralizovane društvene mreže daju korisnicima visok nivo privatnosti i anonimnosti. Na primer, pojedinac može da se prijavi na društvenu mrežu na Ethereumu koristeći ENS profil ili novčanik — bez ostavljanja ličnih podataka kao što su ime ili adresa elektronske pošte. + +7. Decentralizovane društvene mreže se oslanjaju na decentralizovana skladišta, a ne na centralizovane baze podataka što je mnogo bolji način za bezbedno čuvanje korisničkih podataka. + +## Decentralizovane društvene mreže na Ethereumu {#ethereum-social-networks} + +Ethereum mreža je postala omiljena alatka za programere kada kreiraju društvene medije najviše zahvaljujući popularnosti njenih tokena (ERC-20ERC-721) i njene ogromne baze korisnika. Evo nekih primera društvenih mreža na Ethereumu: + +### Peepeth {#peepeth} + +[Peepeth](https://peepeth.com/)je platforma za mikrobloging slična Twitteru. Pokreće se na Ethereum lancu blokova i koristi IPFS za skladištenje korisničkih podataka. + +Korisnici mogu da objavljuju kratke poruke koje se zovu "Peeps" i koje ne mogu biti izbrisane ili izmenjene. Možete prikupljati bakšiš ili davati bakšiš bilo kome na platformi u etherima (ETH) bez napuštanja aplikacije. + +### Mirror {#mirror} + +[Mirror](https://mirror.xyz/)je web3 platforma za pisanje koja cilja da bude decentralizovana i u vlasništvu korisnika. Korisnici mogu da čitaju i pišu besplatno na Mirroru jednostavnim povezivanjem novčanika sa platformom. Korisnici takođe mogu sakupljati tekstove i pratiti svoje omiljene pisce. + +Tekstovi objavljeni na Mirroru se trajno skladište na Arweave-u, decentralizovanoj platformi za skladištenje i mogu biti rudareni kao kolekcija [nezamenljivih tokena (NFT-ijevi)](/nft/)Pisani NFT-ijevi. Pisani NFT-ijevi su potpuno besplatni za pisce da stvaraju, a kolekcije se dešavaju na nivou 2 Ethereuma — čineći tako transakcije jeftinim, brzim i pogodnim za okolinu. + +### MINDS {#minds} + +[MINDS](https://www.minds.com/) je jedna od najkorišćenijih decentralizovanih društvenih mreža. Radi kao Facebook i već je privukao milione korisnika. + +Korisnici koriste platformin ERC-20 token $MIND da plaćaju. Korisnici takođe mogu da zarade $MIND tokene tako što će objavljivati sadržaj, doprinositi ekosistemu i preporučivati platformu novim korisnicima. + +## Web2 društvene mreže na Ethereumu {#web2-social-networks-and-ethereum} + +[Web3](/web3/)društvene platforme nisu jedine društvene mreže koje koriste blokčejn tehnologiju. Mnoge centralizovane platforme takođe planiraju da integrišu Ethereum u svoju infrastrukturu: + +### Reddit {#reddit} + +Reddit je[istakao poene zajednice](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users)koji su [ERC-20 tokeni](/developers/docs/standards/tokens/erc-20/) koji korisnici mogu da zarade tako što će postavljati kvalitetan sadržaj i doprinositi onlajn zajednicama (subredditima). Možete iskoristiti ove tokene unutar podforuma kako biste dobili [ekskluzivne privilegije i pogodnosti](https://www.reddit.com/community-points/). Za ovaj projekat, Reddit sarađuje sa Arbitrumom, [nivo 2](/layer-2/)rolap rešenjem dizajniranim za skaliranje Ethereum transakcija. + +Program već funkcioniše, a podforum r/CryptoCurrency [koristi svoju verziju poena zajednice nazvanu "Moons"](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Prema zvaničnom opisu, Moons "nagrađuje one koji objavljuju, komentarišu i moderatore za njihove doprinose podforumu." S obzirom na to da su ovi tokeni na lancu blokova (korisnici mogu da ih prime u novčanik), oni su nezavisni od Reddita i ne mogu biti otuđeni. + +Nakon završetka beta faze na Rinkeby testnoj mreži, Reddit poeni zajednice su sada dostupni na[ Arbitrum Nova-i](https://nova.arbitrum.io/), lancu blokova koji kombinuje osobine [sporednog lanca](/developers/docs/scaling/sidechains/) i [optimističkog rolapa](/developers/docs/scaling/optimistic-rollups/). Pored korišćenja poena zajednice za otključavanje novih opcija, korisnici takođe mogu da trguju njima za valute fiat u menjačnicama. Takođe, količina poena zajednice koju korisnik poseduje određuje njihov uticaj u donošenju odluka u zajednici. + +### Twitter {#twitter} + +U januaru 2021, Twitter Blue [ je lansirao podršku za NFT-ijeve](https://mashable.com/article/twitter-blue-nft-profile-picture) omogućujući korisnicima da povežu svoje novčanike i koriste svoj NFT kao profilnu sliku. U trenutku pisanja ovog tekstva, ova društvena mreža je takođe[objavila planove](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) da kreira decentralizovanu društvenu mrežu u budućnosti. + +### Instagram {#instagram} + +U maju 2022, [Instagram je objavio da podržava NFT-ijeve](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) na Ethereumu i Polygonu. Korisnici mogu da postavljuju NFT-ijeve direktno na Instagram tako što će se povezati na Ethereum novčanik. + +## Koristite decentralizovane društvene mreže {#use-decentralized-social-networks} + +- **[Status.im](https://status.im/)** — _Status je aplikacija za sigurno dopisivanje koja koristi otvoreni kod, "peer-to-peer" protokol i "end-to-end" enkripciju da bi zaštitila vaše poruke od trećih lica._ +- **[Mirror.xyz](https://mirror.xyz/)** — _Mirror je decentralizovana, mreža za objavljivanje u vlasništvu korisnika, sagrađena na Ethereumu za korisnike da masovno finansiraju svoje ideje, monetizuju sadržaj ili izgrade visoko-vredne zajednice._ +- **[Lens protokol](https://lens.xyz/)** — _Lens Protokol je kompozabilan i decentralizovan društveni grafikon koji pomaže kreatorima da preuzmu vlasništvo nad svojim sadržajem gde god da idu u digitalnom vrtu decentralizovanog interneta._ +- **[Farcaster](https://farcaster.xyz/)** — _Farcaster je dovoljno decentralizovana društvena mreža. To je otvoreni protokol koji može da podrži mnoge klijente, kao email._ + +## Dodatna literatura {#further-reading} + +### Članci {#articles} + +- [Decentralizovanje društvenih mreža: vodič za web3 društveni stek](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) — _Coinbase Ventures_ +- [Društvene mreže su sledeća velika prilika za decentralizaciju](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Gercel_ +- [Web3 drži obećanje o decentralizovanih, društvenim mrežama od strane zajednica](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _ Samit Goš_ +- [Pregled društvenih mreža na lancu blokova](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ +- [Kako lanci blokova mogu da reše privatnost na društvenim mrežama](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) – _Prablin Badžpaj_ +- [Društvene mreže stižu na lance blokova](https://businesstechguides.co/what-are-decentralized-social-networks) – _Emanuel Avosika_ +- [Dovoljno decentralizacije za društvene mreže](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Varun Srinivasan_ + +### Videos {#videos} + +- [Objašnjenje decentralizovanih društvenih mreža](https://www.youtube.com/watch?v=UdT2lpcGvcQ) – _ Coinmarketcap_ +- [DeSo blokčejn želi da decentralizuje društvene mreže](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ +- [Budućnost decentralizovanih društvenih medija sa Baladži Srinivasanom, Vitalikom Buterinom, Huanom Benetom](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ + +### Zajednice {#communities} + +- [Server platforme Status u aplikaciji Discord](https://discord.com/invite/3Exux7Y) +- [Mirror Discord Server](https://discord.com/invite/txuCHcE8wV) +- [r/CryptoCurrency podforum](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/sw/community/events/index.md b/public/content/translations/sw/community/events/index.md similarity index 100% rename from src/content/translations/sw/community/events/index.md rename to public/content/translations/sw/community/events/index.md diff --git a/src/content/translations/sw/community/get-involved/index.md b/public/content/translations/sw/community/get-involved/index.md similarity index 100% rename from src/content/translations/sw/community/get-involved/index.md rename to public/content/translations/sw/community/get-involved/index.md diff --git a/src/content/translations/sw/community/grants/index.md b/public/content/translations/sw/community/grants/index.md similarity index 100% rename from src/content/translations/sw/community/grants/index.md rename to public/content/translations/sw/community/grants/index.md diff --git a/src/content/translations/sw/community/language-resources/index.md b/public/content/translations/sw/community/language-resources/index.md similarity index 100% rename from src/content/translations/sw/community/language-resources/index.md rename to public/content/translations/sw/community/language-resources/index.md diff --git a/src/content/translations/sw/community/online/index.md b/public/content/translations/sw/community/online/index.md similarity index 100% rename from src/content/translations/sw/community/online/index.md rename to public/content/translations/sw/community/online/index.md diff --git a/src/content/translations/sw/community/page-community.json b/public/content/translations/sw/community/page-community.json similarity index 100% rename from src/content/translations/sw/community/page-community.json rename to public/content/translations/sw/community/page-community.json diff --git a/public/content/translations/sw/community/support/index.md b/public/content/translations/sw/community/support/index.md new file mode 100644 index 00000000000..b0878e58d27 --- /dev/null +++ b/public/content/translations/sw/community/support/index.md @@ -0,0 +1,109 @@ +--- +title: Msaada wa Ethereum +description: Pata msaada kwenye ikolojia ya Ethereum. +lang: sw +--- + +# Msaada wa Ethereum {#support} + +## Msaada rasmi wa Ethereum {#official-support} + +Je, unatafuta msaada rasmi wa Ethereum? Cha kwanza unachopaswa kujua ni kua Ethereum imegatuliwa. Hii inamaana hamna mashirika ya kati ama ya kiserikali, chombo, ama mtu anayemiliki Ethereum, na kwasababu hio, hakunana chaneli ya kutoa msaada ilio rasmi. + +Ufahamu wa asili ya ugatuzi wa Ethereum ni muhimu kwa kila mmoja maana yeyote anayedai kua mtu anaeweza kutoa msaada kuhusu Ethereum anaweza kukulaghai! Ulinzi thabiti dhidi ya walaghai na kujifunza na kua makini na ulinzi. + + + Usalama wa Ethereum na udhibiti wa matapeli + + + + Jifunze mambo ya msingi ya Ethereum + + +Licha ya upungufu wa uungaji mkono, makundi mengi, jumuiya na mirandi ndani ya ikolojia ya Ethereum wanafurahi kuunga mkono, na unaweza kupata taarifa muhimu na vyanzo kwenye ukurasa huu. Bado unamswali? Jiunge na [Discord ya ethereum.org](/discord/), na tutajaribu kukusaidia. + +## Huduma za pochi {#wallet-support} + +Je unapata shida na pochi yako? Pochi nyingi zina timu inayojiyuma inayoweza kukusaidia: + +- [MetaMask](https://metamask.zendesk.com/hc/) +- [Argent](https://support.argent.xyz/hc/) +- [MyEtherWallet](https://help.myetherwallet.com/) + +_Hii sio orodha kamili. Unahitaji msaada kupata huduma juu ya pochi maalum? Jiunge na [ discord ya etehreum.org](https://discord.gg/ethereum-org) na tutajaribu kusaidia._ + +Unatafuta pochi ya Ethereum? [Chunguza orodha yetu yote ya Ethereum](/wallets/find-wallet/). + +## Jenga dapps {#building-support} + +Ujenzi unaweza kua mgumu. Haya ni majukwaa yaliojikita kwenye uendelezaji ukiwa na wasanidi programu waliobobea wenye furaha kukuasaidia. + +- [Discord ya CryptoDevs](https://discord.gg/Z9TA39m8Yu) +- [StackExchange ya Ethereum](https://ethereum.stackexchange.com/) +- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) +- [Chuo cha Web3](https://www.web3.university/) + +Unaweza kupata nyarak na miongozo ya usanidi kwenye kipengele cha [vyanzo vya msanidi programu wa Ethereum](/developers/). + +### Zana {#dapp-tooling} + +Je swali lako linahusiana na chimbo fulani maalum, mradi au maktaba? Miradi mingi ina seva za soga au vikako vilivyojikita kukusaidia wewe. + +Hii ni baadhi ya mifano maalum: + +- [Uimara](https://gitter.im/ethereum/solidity/) +- [ethers.js](https://discord.gg/6jyGVDK6Jx) +- [web3.js](https://discord.gg/GsABYQu4sC) +- [Hardhat](https://discord.gg/xtrMGhmbfZ) +- [Truffle](https://discord.gg/8uKcsccEYE) +- [Alchemy](http://alchemy.com/discord) + +## Endesha nodi {#node-support} + +Kama unaendesha nodi am mthibitishaji, hizi ni baadhi ya jamii zinazotoa msaada ili upate kuanza katika Ethereum. + +- [Discord ya EthStaker](https://discord.gg/ethstaker) +- [Reddit ya EthStaker](https://www.reddit.com/r/ethstaker) + +Timu zilizo nyingi za usanidi programu za Ethereum zinajitolea kusaidia mikutano ya hadhara amabayo unaweza kupata waunga mkono na kuuliza maswaloi muhimu. + +### Programu za utelekezji {#execution-clients} + +- [Geth](https://discord.gg/FqDzupGyYf) +- [Nethermind](https://discord.gg/YJx3pm8z5C) +- [Besu](https://discord.gg/p8djYngzKN) +- [Erigon](https://github.com/ledgerwatch/erigon/issues) + +### Programu ya makubaliano {#consensus-clients} + +- [Prysm](https://discord.gg/prysmaticlabs) +- [Nimbus](https://discord.gg/nSmEH3qgFv) +- [Taa ya taa](https://discord.gg/cyAszAh) +- [Teku](https://discord.gg/7hPv2T6) +- [Mwangaza](https://discord.gg/aMxzVcr) + +Unaweza [kujifunza jinsi ya kuendesha nodi hapa](/developers/docs/nodes-and-clients/run-a-node/). + +## Maswali yanayoulizwa mara kwa mara {#faq} + +### Nimetuma ETH kwenye pochi isiyo sahihi {#wrong-wallet} + +Muamala unaofanyika kwenye Ethereum hauwezi kurudishwa ulikotoka. Kwa bahati mbaya, kama umetuma ETH kwenye pochi isiyo sahihi, hamna njia ya kupata fedha hizo. Hakuna shirika la kati, chombo ama mtu mmoja anaemiliki Ethereum, kwa maana kwamba hamna anaeweza kurudisha muamala ulikwishafanyika. Kwahiyo, ni muhimu kukagua mara kadhaa kama anauani ya pochi unayoingiza iko sahihi kabala ya kufanya muamala. + +### Nawezaje kudai zawadi yangu ya Ethereum? {#giveaway-scam} + +Zawadi za Ethereum ni mitego/ulaghai unaobuniwa ili kuiba ETH zako. Usishawishike na huduma inayotanganzwa inayoonekana kua ya uwongo - ukiotuma ETH kwenye anwani ya zawadi, hautapokea zawadi, na hautaweza kupata fedha ulizotuma mwanzo. + +[Zaidi juu ya kuzuia ulaghai](/security/#common-scams) + +### Muamala wangu umegota {#stuck-transaction} + +Wakati mwingine miamala hugita kwenye Ethereum kama umetoa kiwango kidogo cha malipo ya muamala kuliko kile kinachohitajika kwenye mtandao. Pochi nyingi hutoa chaguo la kutuma tena muamala huo huo kwa bei ya juu zaidi ili muamala ufanyiwe mchakato. Kwa njia mbadala unaweza kughairi muamala usio kamili kwa kutuma fedha hizo kwenye anwani yako mwenyewe, na kutumia nonce sawa na ya muamala ambao haujakamlika. + +[Jinsi ya kuongeza kasi au kusimamisha malipo/muamala ambao haujamkamilika kwenye MetaMask](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) + +[Jinsi ya kuzuia/ghairi miamala kwenye Ethereum](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) + +### Nawezaje kuchimba Ethereum? {#mining-ethereum} + +Hatushauri kununua maunzi ya kuchimba Ethereum kama bado haujaanza kuchimba. Kwenye ~Q3. Q4 2022, [Muungano](/roadmap/merge/) utatokea, utabadilisha Ethereum kutoka kwenye uthibitisho-wa-kazi kwenda kwenye usthibitisho-wa-hisa. Haya mabadiliko yatafanya uchimbaji wa Ethereum kutowezekana tena. diff --git a/src/content/translations/sw/eips/index.md b/public/content/translations/sw/eips/index.md similarity index 100% rename from src/content/translations/sw/eips/index.md rename to public/content/translations/sw/eips/index.md diff --git a/public/content/translations/sw/nft/index.md b/public/content/translations/sw/nft/index.md new file mode 100644 index 00000000000..8f4ea9ff10b --- /dev/null +++ b/public/content/translations/sw/nft/index.md @@ -0,0 +1,94 @@ +--- +title: Ishara zisizokuvu (NFTs) +description: Muhtasari wa NFT kwenye Ethereum +lang: sw +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: Nembo ya Eth ikionyeshwa kwa kupitia hologramu. +summaryPoint1: Njia ya kuwakilisha kitu chochote cha pekee kama mali zilizojengwa na Ethereum. +summaryPoint2: NFT zinawapatia waundaji wa maudhui nguvu zaidi kuliko zamani. +summaryPoint3: Inaendeshwa na mikataba erevu kwenye mnyororo wa bloku wa Ethereum. +--- + +## What are NFTs? {#what-are-nfts} + +NFT ni tokeni zilizo na ubinafsi wa kipekee. Kila NTF ina sifa tofauti (haziwezi kuigwa) na ni chache. Hii ni tofauti na tokeni kama ERC-20 ambapo kila tokeni kwenye kikundi hufanana na huwa na sifa sawa ('inaweza kuigwa'). Hujali bili ya dola mahususi uliyo nayo kwenye pochi yako kwa sababu zote zinafanana na thamani zao ni sawa. Hata hivyo, _unajali_ tokeni ya kidijitali unayomiliki, kwa sababu zote huwa na sifa zao za binafsi na unaweza kuzitofautisha kutoka kwen ye nyingine ('haziwezi kuigwa'). + +Upekee wa kila tokeni za kidijitali zisizoweza kuigwa ni kuwezesha ishara ya vitu kama sanaa, vitu vinavyokusanywa ama mali isiyohamishika, ambapo kila tokeni maalum ya kidijitali isiyoweza kuigwa huwakilisha ulimwengu halisi ama bidhaa ya kidijitali. Umiliki wa mali unalindwa na mnyororo wa bloku wa Ethereum – hakuna anayeweza kubadili nyaraka za umiliki ama kutoa/kubandika nakala mpya za NFT. + + + +## Mtandao wa mali {#internet-of-assets} + +Tokeni zisizoweza kuigwa na Ethereum husuluhisha shida zinazokuwepo kwenye intaneti leo. Kwa kuwa kila kitu kinakuwa cha kidijitali, kuna haja ya kuiga sifa za vitu halisi kama uhaba, upekee na ushahidi wa umiliki. kwa njia isiyoweza kudhibitiwa na mashirika yasiyogatuliwa. Kwa mfano, ukiwa na tokeni za kidijitali zisizoigwa, unaweza kumiliki muziki wa sampuli ya MP3 ambao hauko kwenye programu ya muziki maalum au unaweza kumiliki tovuti ya mtandao wa kijamii ambao unaweza kuuza ama kubadilishana lakini hauwezi kuchukuliwa kihohela kutoka kwako na mtoaji jukwaa. + +Hivi ndivyo mtandao wa NFT unafanya kazi ukilinganisha na intaneti ambao wengi wengi tunatumia leo... + +### Ulinganisho {#nft-comparison} + +| Intaneti/Mtandao wa NFT | Intaneti ya leo | +| --------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | +| Unamiliki mali yako! Ni wewe tu unayeweza kuziuza ama kuzibadilisha mwenyewe. | Unaweza kukodisha mali kutoka kwenye mashirika mengine. | +| NFT zina sifa za kipekee za kidijitlai, hakuna NFT mbili zitakazofanana. | Mara nyingi nakala ya chombo haiwezi kutofautishwa na ya asili. | +| Umiliki wa tokeni zisizoweza kuigwa unawekwa kwenye mnyororo wa bloku ili kila mtu aweze kuthibitisha. | Rekodi za umiliki wa vitu vya kidijitali zinahifadhiwa kwenye seva zinazodhibitiwa na taasisi – lazima uziamini. | +| Tokeni zisizoigwa ni mikataba erevu kwenye Ethereum. Hii inamaana kuwa zinaweza kutumika kwenye mikataba erevu mingine na programu kwenye Ethereum! | Kampuni zenye bidhaa za kidigitali huhitaji kuwa na "hifadhi yenye ukingo". | +| Waunda maudhui wanaweza kuuza kazi zao sehemu yoyote na kufikia soko la ulimwengu mzima. | Waundaji wanategemea miundombinu na usambazaji wa majukwaa wanayotumia. Mara nyingi hili hufuata sheria na masharit na vizuizi vya kijiografia. | +| Watengenezaji wa tokeni zisizoigwa wanaweza kuhifadhi haki za kazi na mirabaha ya programu zao moja kwa moja kwenye mkataba wa tokeni zisizoigwa. | Majukwaa kama ya huduma za kutiririsha muziki, yanapata faida nyingi kutoka kwenye mauzo. | + +## NFT zinafanyaje kazi? {#how-nfts-work} + +Kama aina yeyote ya tokeni inayotolewa kwenye Ethereum, tokeni zisizoigwa zinatolewa na mkataba erevu. Mkataba erevu hutimiza moja viwango kadhaa vya tokeni zisizoigwa (haswa ERC-721 au ERC-1155) ambavyo hufafanua kazi ya mkataba huo. Mkataba huu unaweza kuunda ('kuzalisha') tokeni zisizoigwa na kuzipa kwa mmiliki maalum. Umiliki unafafanuliwa kwenye mkataba kwa kuweka tokeni zisizoigwa kwenye anwani maalum. Tokeni isiyoigwa ina kitambulisho na kwa kawaida ina maelezo ya data ambayo hufanya tokeni hii mahususi kuwa ya kipekee. + +Mtu anapotengeneza ama kuzalisha tokeni zisizoigwa, anatekeleza kazi ndani ya mkataba erevu ambao huteua tokeni isiyoigwa kwenye anwani yake. Habari hii huhifadhiwa hifadhi ya mkataba wake ambayo ni sehemu ya mnyororo wa bloku. Mtengenezaji wa mkataba anaweza kuandika mantiki zaidi kwenye mkataba, kwa mfano, kuweka kiwango cha usambazaji ama kufafanua mrabaha utakaolipwa kwa mtengenezaji kila mara tokeni zinapohamishwa. + +## NFT zinatumika kufanya nini? {#nft-use-cases} + +Tokeni zisizoigwa hutumika kwa mambo mengi, ikiwa ni pamoja na: + +- kuthibitisha kwamba ulihudhuria tukio +- kuthibitisha kwamba ulimaliza kozi +- umiliki wa vitu vya michezo +- sanaa ya kidijitali +- kugeuza mali za kidunia kuwa tokeni +- kuthibitisha utambulisho wako kwenye mtandao +- kuzuia ufikiaji wa maudhui +- ukataji tiketi +- majina ya kikoa kwenye intaneti iliyogatuliwa +- dhamana kwenye mambo ya fedha yaliyogatuliwa + +Labda wewe ni msanii amabaye angependa kushiriki kazi yake kupitia tokeni zisizoigwa, bila wewe kupoteza udhibiti ama kuwapa waamuzi faida zako. Wewe unaweza kutengeneza mkataba mpya na kuweka bayana hesabu ya tokeni zisizoigizwa, vipengele vyao na kiungo chao kwa kazi mahususi ya sanaa. Kama msanii, unaweza kuprogramu ndani ya mkataba-erevu mrabaha unaofaa kulipwa (kwa mfano hamisha 5% ya bei ya mauzo kwa mwenye mkataba kila wakati tokeni isiyoigwa) inapohamishwa. Vile vile unaweza kuthibitisha kwamba wewe ndiwe umetengeneza tokeni isiyoigwa kwa sababu wewe ndiwe mmiliki wa pochi iliyotuma mkataba huo. Wanunuzi wako wanaweza kuthibitisha kuthibitisha kwa urahisi kwamba wao ndio wamiliki wa tokeni isiyoigwa halisi kutoka kwenye mkusanyiko wako kwa sababu anwani ya pochi zao inashirikishwa na tokeni kutoka kwenye mkataba wako. Wanaweza kuitumia katika mfumo wa ikologia ya Ethereum, inayoaminika kwa uhalisi wake. + +Ama zingatia tiketi ya mechi ijayo. Kama mratibu wa matukio anavyoweza kuamua idadi ya tiketi za kuchapisha, muundaji wa NFT anaweza kuamua idadi ya kuwepo kwa nakala za kazi yake. Wakati mwingine huwa na nakala za ziada, kama vile Tiketi 5000 za Kiingilio cha Jumla. Wakati mwingine nyingine zinachapishwa zinazofanana, ila kila moja ina tofauti ndogo na yenzake, kama vile tiketi yeneye nambari ya kiti. Hizi zinaweza kununuliwa na kuuzwa kutoka kwa mshirika mmoja mpaka kwa mwingine kusipokuwepo na ulipaji wa washikaji tiketi na wanunuzi watakuwa na uhakika wa tiketi halisi kwa kuangalia anwani ya mkataba huo. + +Kwenye ethereum.org, tokeni zisizoigwa zinatumika kuonyesha kwamba watu wamechangia kwenye hazina ya GitHub ama kushiriki kwa wito uliotolewa, vile vile tuna jina la kikoa cheti cha tokeni isiyoigwa. Ukichangia kwenye ethereum.org, unaweza kudai NFT ya POAP. Mikutano mingine ya sarafu za kidijitali imetumia POAPs kama tiketi. [Zaidi juu ya uchangiaji](/contributing/#poap). + +![POAP za ethereum.org](./poap.png) + +Tovuti hii pia inatumia jina mbadala la kikoa linaloendeshwa na NFT, **ethereum.eth**. Anwani yetu ya `.org` inasimamiwa na mfumo wa majina wa kati/jadi(DNS), wakati ethereum`.eth` imesajiliwa kwenye huduma za majina ya Ethereum (ENS). Na hii linamilikiwa na kuendeshwa na sisi. [Angalia rekodi zetu za ENS](https://app.ens.domains/name/ethereum.eth) + +[Zaidi juu ya ENS](https://app.ens.domains) + + + +### Usalama wa NFT {#nft-security} + +Usalama wa Ethereum unakuja kutokana na ushahidi wa hisa. Mfumo huu umebuniwa ili uweze kuondoa vitendo ya kihasidi kiuchumi na basi kuifanya Ethereum sugu kwa uharibifu. Hii ndiyo inayofanya tokeni zisizoigwa kuwezekana. Mara tu bloku yenye muamala wako wa NFT inapokamilika, inaweza kugharimu mshambulizi mamilioni ya ETH kuibadilisha. Mtu yeyote anayetumia programu ya Ethereum anaweza kujua haraka mambo yasiyofaa ya kuhitilafiana na NFT, na mtu huyu mbaya atatozwa malipo na kuondolewa. + +Maswala ya usalama yanayohusiana na NFT sana sana yanahusiana na utapeli wa kutumia barua pepe, hatari za mkataba-erevu au makosa ya mtumiaji (kama vile kuweka wazi funguo za siri) na hivyo kufanya usalam bora wa pochi uwe muhimu sana kwa wamiliki NFT. + + + Maelezo zaidi kuhusu usalama + + +## Soma zaidi {#further-reading} + +- [Mwongozo wa wa mwanafunzi wa NFT](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, Januari 2020_ +- [Mfuatliliaji EtherscanNFT](https://etherscan.io/nft-top-contracts) +- [Kiwango cha tokeni cha ERC-721](/developers/docs/standards/tokens/erc-721/) +- [Kiwango cha tokeni cha ERC-1155](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/public/content/translations/sw/roadmap/beacon-chain/index.md b/public/content/translations/sw/roadmap/beacon-chain/index.md new file mode 100644 index 00000000000..49df9c1eb0b --- /dev/null +++ b/public/content/translations/sw/roadmap/beacon-chain/index.md @@ -0,0 +1,68 @@ +--- +title: Mnyororo Kioleza +description: Jifunze juu ya Mnyororo Kioleza - Kisasisho kilichoanzishwa na Ethereum ya uthibitisho-wa-hisa. +lang: sw +template: upgrade +image: /upgrades/core.png +alt: +summaryPoint1: Mnyororo Kioleza haitabadili kitu chochote katika Ethereum ya leo. +summaryPoint2: Itaratibu mtandao, na kutumikia kama safu ya makubaliano. +summaryPoint3: Inatoa muhtasari wa uthibitisho-wa-hisa kwenyeikolojia ya Ethereum. +summaryPoint4: Unaweza kua unaitambua hii kama "Awamu 0" kwenye mipango ya kitaalamu. +--- + + + Mnyororo wa Kioleza ulisafirishwa Disemba 1 saa sita mchana wakati wa ulimwengu ulioratibiwa. Kujifunza zaidi, chunguza taarifa. Kama unataka kuhalalisha mnyororo, unaweza kuweka ETH yako kama hisa. + + +## Myororo wa Kioleza ni nini? {#what-does-the-beacon-chain-do} + +Mnyororo wa Beacon utaendeleza mwenendo wa kutanua mtandao wake wa [shards](/roadmap/danksharding/) na [wanahisa](/staking/). Lakini haitakua kama [mtandao mkuu wa Ethereum](/glossary/#mainnet) wa leo. Inaweza kuhimili akaunti au mikataba mahiri. + +Jukumu ya mnyororo wa Kioleza litabadilika baada ya mda ila sehemu ya msingi ya [usalama, kuendeleza na ubadilikaji wa Ethereum tunayoijenga](/roadmap/vision/). + +## Sura za mnyororo wa Kioleza {#beacon-chain-features} + +### Kuanzisha hisa {#introducing-staking} + +Mnyororo wa Kioleza utaingiza [uthibitisho-wa-hisa](/developers/docs/consensus-mechanisms/pos/) kwenye Ethereum. Hii ndio njia mpya ya wewe kusaidia Ethereum kua salama. Ifikirie kama faida kw jamii ambayo itafanya Ethereum kua na afya na kukutenegenezea hela zaidi wakati wa mchakato. Kiuhalisia, itahusisha wewe kuweka hisa za ETH ili kuamsha programu. Kama mthibitishaji utafanya mchakato wa shughuli za pesa na utaunda vitalu vipya kwenye mnyororo. + +Kuweka hisa na kua mt hibitishaji ni rahisi kuliko [kuchimba](/developers/docs/mining/)(jinsi ambavyo mtandao ni saklama kwa sasa). Mwishowe hii inamatumaini itasaidia Ethereum kua salama zaidi. Jinsi watu wengi wanavyoshiriki katika mtandao, ndivyo unavyozodi kujitegemea na salama kutoka kwa shambulio litakalokuja. + + +Kama ungependa kua mthibitishaji na kusaidia kulinda mnyororo wa Kioleza, jifunze zaidi jinsi ya kuweka hisa. + + +Hili pia ni badiliko muhumu kwa ajili ya uboreshaji wa Eth2:[minyororo ya vigae](/roadmap/danksharding/). + +### Maandalizi ya minyororo ya shards {#setting-up-for-shard-chains} + +Baada ya mtandao mkuu kuungana na mnyororo wa Kioleza, Uboreshaji utakaofuata utaanzisha minyororo ya shard kwenda kwenye mtandao wa uthibitisho-wa-hisa. Hizi "shards" zitaongeza nafasi kwenye mtandao na kuendeleza kasi za shughuli kwa kutanua mtandao kufikia minyororo ya vitalu 64. Mnyororo Kioleza ni hatua ya kwanza muhimu katika uanzilishi wa minyororo ya shard, hii ni kwasababu inahitaji hisa ili kufanya kazi kwa usalama. + +Mwishowe mnyororo Kioleza utakua na wajibu wa kugawa ruhusa kwa wanahisa bila mpangilio ili kuthibitisha minyororo ya vigae. Hii ni funguo ya kuweka ugumu kwa wanahisa ili wasiungane na kuteka nyara shard. Vizuri basi, hii inamaanisha [wanachini ya 1 katika nafasi trilioni](https://medium.com/@chihchengliang/minimum-committee-size-explained-67047111fa20). + +## Mahusiano kati ya visasisho {#relationship-between-upgrades} + +Visasisho vyote vya Eth2 vinahusiana kwa kiasi fulani. Basi hebu tukumbushe jinsi mnyororo wa Beacon(Kioleza) unavyoathiri visasisho vingine. + +### Mtandao mkuu na mnyororo Kioleza {#mainnet-and-beacon-chain} + +Mnyororo Kioleza, mwanzoni, itakuwa imetengana na Mtandao mkuu wa Ethereum tunaotumia leo hii. Lakini mwishowe vitaunganishwa. Mpango ni "kuunganisha" Mtandao Mkuu kwenye mfumo wa uthibitisho-wa-hisa amabao Mnyororo Kioleza unaudhibiti na kuuratibu. + + + Unganisha + + +### Vigae na Mnyororo Kioleza {#shards-and-beacon-chain} + +Minyororo ya Vigae itakua salama kuingia katika ikolojia ya Ethereum pale tu utaratibu wa makubaliano kwenye uthibitisho-wa-hisa utakapochukua nafasi. Mnyororo Kioleza utaanzisha hisa, ikitengeneza njia ili uboreshwaji wa mnyororo-kigae ufuate. + + + Minyororo ya Kigae + + + + +## Ingiliana na Mnyororo Kioleza {#interact-with-beacon-chain} + + diff --git a/public/content/translations/sw/roadmap/merge/index.md b/public/content/translations/sw/roadmap/merge/index.md new file mode 100644 index 00000000000..0cbfda326dc --- /dev/null +++ b/public/content/translations/sw/roadmap/merge/index.md @@ -0,0 +1,68 @@ +--- +title: Muungano +description: Jifunze kuhusu muunganiko - ambapo mtandao mkuu wa Etheream utakapoungana na Mnyororo Kioleza ulioratibu mfumo wa uthibitisho-wa-hisa. +lang: sw +template: upgrade +image: /upgrades/merge.png +alt: +summaryPoint1: Hatimaye Ethereum ya sasa itafanya "muungano" na mfumo wa uthibitisho-wa-hisa wa mnyororo kioleza. +summaryPoint2: Hii itaweka alama ya kuhitumu kwa Ethereum ya uthibitisho-wa-kazi, na mpito mzima kwenda kwenye uthibitisho-wa-hisa. +summaryPoint3: Hii imepangwa kutangulia utolewaji wa minyororo ya vigae. +summaryPoint4: Kabla tuliita hii hatua kama "utiaji nanga" +--- + + + Sasisho hili linawakilisha mabadiliko rasmi kuwa makubaliano ya uthibitisho-wa-hisa. Hii inaondoa mahitaji ya umeme wenye nguvu wakati wa uchimbaji, na badala yake italinda mtandao kwa kutumia ether iliopo. Hatua ya kusisimua kweli katika kutambua maono ya Eth2 - inayoweza kubadilika zaidi, yenye usalama na endelevu. + + +## Muunganisho ni nini? {#what-is-the-docking} + +Ni muhimu kukumbuka kwamba mwanzoni, [Mnyororo Kioleza](/roadmap/beacon-chain/)ulitenganishwa na [Mtandao Mkuu](/glossary/#mainnet) wakati wa usafirishaji - mtandao tunaoutumia leo hii. Mtandao mkuu wa Ethereum utaendelea kulindwa na [uthibitisho-wa-kazi](/developers/docs/consensus-mechanisms/pow/), hata pale Myororo Kioleza utakapofanya kazi sambamba uklitumia [uthibitisho-wa-hisa](/developers/docs/consensus-mechanisms/pos/). Muunganisho ni pale mifumo hii miwili itakapokuwa pamoja. + +Fikiria kwamba Ethereum ni chombo cha anga kilichotayari kusafiri katikati ya nyota mablimbali. Pamoja na Mnyororo wa Kioleza jamii imeunda injini mpya na ganda ngumu. Wakati ukifika, meli ya sasa itapanda gati na mfumo huu mpya, ikiungana kuwa meli moja, tayari kuweka miaka mingine mizito na kuchukua ulimwengu. + +## Kuunganika na Mtandao Mkuu {#docking-mainnet} + +Wkati iko tayari, Mtandao Mkuu wa Ethereum "itaungana" na Mnyororo Kioleza, kisha kitakuwa kipande chake kinachojitegemea kinachotumia uthibitisho-wa-hisa bala ya [uthibitisho-wa-kazi](/developers/docs/consensus-mechanisms/pow/). + +Mtandao Mkuu utaleta uwezo wa kuendesha mikataba mahiri kwenye mfumo wa uthibitisho-wa-hisa, pamoja na historia kamili na hali ya sasa ya Ethereum, kuhakikisha kuwa mabadiliko ni laini kwa wamiliki na watumiaji wote wa ETH. + +## Baada ya muunganisho {#after-the-merge} + +Hii itaashiria kumalizika kwa uthibitisho-wa-kazi kwa Ethereum na kuanza enzi ya Ethereum endelevu zaidi, rafiki kwa ikolojia ya mazingira. Kwa wakati huu Ethereum itakuwa hatua moja karibu na kufikia kiwango kamili, usalama na uendelevu ulioainishwa katika [Maono ya Ethereum](/roadmap/vision/). + +Ni muhimu kutambua kuwa lengo la utekelezaji wa unganisho ni urahisishaji ili kuharakisha mabadiliko kutoka kwa uthibitisho-wa-kazi hadi uthibitisho-wa-hisa. Waendelezaji wanazingatia juhudi zao kwenye mpito huu, na kupunguza huduma zingine ambazo zinaweza kuchelewesha lengo hili. + +** Hii inamaanisha huduma chache, kama vile uwezo wa kutoa ETH iliyodumu, italazimika kusubiri kwa muda mrefu baada ya muunganiko kukamilika. ** Mipango ni pamoja na "usafishaji" wa baada ya kuungana sasisha kushughulikia huduma hizi, ambazo zinatarajiwa kutokea mapema sana baada ya unganisho kukamilika. + +## Mahusiano kati ya visasisho {#relationship-between-upgrades} + +Visasisho vyote vya Eth2 vinahusiana kwa kiasi fulani. Kwahio tukumbushie jinsi muungano huu unavyohusiana na visasisho vingine. + +### Muungano na Mnyororo Kioleza {#docking-and-beacon-chain} + +Pale tu muungano utakapotokea, wamililiki wa hisa watapewa mamlaka ya kuthibitisha Mtandao Mkuu wa Ethereum. [Uchimbaji](/developers/docs/consensus-mechanisms/pow/mining/)hautahitajika tena kwa hivyo wachimbaji watawekeza mapato yao kwa kusimama katika mfumo mpya wa uthibitisho-wa-hisa. + + + Beacon chain + + +### Muungano na usafi wa baada ya kuungana {#merge-and-post-merge-cleanup} + +Mara tu baada ya muungano, baadhi ya huduma kama vile kutoa ETH iliyodumu, hazitakua zinafanya kazi. Hizi zimepangwa kwa sasisho tofauti kufuata muda mfupi baada ya kuungana. + +Pata habari mpya katika [Kurasa za Utafiti na Maendeleo EF](https://blog.ethereum.org/category/research-and-development/). Kwa wale wanaotamani kujua, jifunze zaidi kuhusu [Nini Kitatokea Baada Ya Muungano](https://youtu.be/7ggwLccuN5s?t=101), iliyowasilishwa na Vitalik katika hafla ya Aprili 2021 ETH-Ulimwenguni. + +### Muungano na minyororo ya vigae {#docking-and-shard-chains} + +Hapo awali, mpango huo ulikuwa ukifanya kazi kwenye minyororo iliyokatwa kabla ya kuungana - kushughulikia hali ya ubadilikaji. Walakini, na kuongezeka kwa [suluhisho la kuongeza safu ya 2](/developers/docs/scaling/#layer-2-scaling), kipaumbele kimehamia kwenye kubadilisha uthibitisho-wa-kazi kuwa uthibitisho-wa-hisa kupitia muungano. + +Hii itakuwa tathmini inayoendelea kutoka kwa jamii juu ya hitaji la raundi nyingi za vipande vya minyororo ili kuruhusu uendelevu usio na mwisho. + + + Vipande vya minyororo + + +## Soma zaidi {#read-more} + + diff --git a/src/content/translations/tr/about/index.md b/public/content/translations/tr/about/index.md similarity index 100% rename from src/content/translations/tr/about/index.md rename to public/content/translations/tr/about/index.md diff --git a/src/content/translations/tr/bridges/index.md b/public/content/translations/tr/bridges/index.md similarity index 100% rename from src/content/translations/tr/bridges/index.md rename to public/content/translations/tr/bridges/index.md diff --git a/src/content/translations/tr/community/code-of-conduct/index.md b/public/content/translations/tr/community/code-of-conduct/index.md similarity index 100% rename from src/content/translations/tr/community/code-of-conduct/index.md rename to public/content/translations/tr/community/code-of-conduct/index.md diff --git a/src/content/translations/tr/community/events/index.md b/public/content/translations/tr/community/events/index.md similarity index 100% rename from src/content/translations/tr/community/events/index.md rename to public/content/translations/tr/community/events/index.md diff --git a/src/content/translations/tr/community/get-involved/index.md b/public/content/translations/tr/community/get-involved/index.md similarity index 100% rename from src/content/translations/tr/community/get-involved/index.md rename to public/content/translations/tr/community/get-involved/index.md diff --git a/src/content/translations/tr/community/grants/index.md b/public/content/translations/tr/community/grants/index.md similarity index 100% rename from src/content/translations/tr/community/grants/index.md rename to public/content/translations/tr/community/grants/index.md diff --git a/src/content/translations/tr/community/language-resources/index.md b/public/content/translations/tr/community/language-resources/index.md similarity index 100% rename from src/content/translations/tr/community/language-resources/index.md rename to public/content/translations/tr/community/language-resources/index.md diff --git a/src/content/translations/tr/community/online/index.md b/public/content/translations/tr/community/online/index.md similarity index 100% rename from src/content/translations/tr/community/online/index.md rename to public/content/translations/tr/community/online/index.md diff --git a/src/content/translations/tr/community/research/index.md b/public/content/translations/tr/community/research/index.md similarity index 100% rename from src/content/translations/tr/community/research/index.md rename to public/content/translations/tr/community/research/index.md diff --git a/public/content/translations/tr/community/support/index.md b/public/content/translations/tr/community/support/index.md new file mode 100644 index 00000000000..8a0763e98ea --- /dev/null +++ b/public/content/translations/tr/community/support/index.md @@ -0,0 +1,116 @@ +--- +title: Ethereum destek +description: Ethereum ekosisteminde destek alın. +lang: tr +--- + +# Ethereum destek {#support} + +## Resmi Ethereum destek {#official-support} + +Resmi Ethereum desteği mi arıyorsunuz? Bilmeniz gereken ilk şey, Ethereum'un merkeziyetsiz olduğudur. Bu, hiçbir merkezi organizasyon, kuruluş veya kişinin Ethereum'a sahip olmadığı ve bu nedenle resmi destek kanallarının bulunmadığı anlamına gelir. + +Ethereum'un merkeziyetsiz yapısını anlamak çok önemlidir çünkü Ethereum için resmi destek olduğunu iddia eden herkes muhtemelen sizi dolandırmaya çalışıyordur! Dolandırıcılara karşı en iyi koruma, kendinizi eğitmek ve güvenliği ciddiye almaktır. + + + Ethereum güvenliği ve dolandırıcılık önleme + + + + Ethereum'un temellerini öğrenin + + +Resmi desteğin olmamasına rağmen, Ethereum ekosistemindeki birçok grup, topluluk ve proje yardımcı olmaktan mutluluk duyar ve bu sayfada birçok faydalı bilgi ve kaynak bulabilirsiniz. Başka sorularınız mı var? [ethereum.org Discord](/discord/)'una katılın, yardım etmeye çalışacağız. + +## Cüzdan desteği {#wallet-support} + +Cüzdanınızla ilgili sorun mu yaşıyorsunuz? Çoğu cüzdan, aşağıdakilere yardımcı olabilecek özel destek ekiplerine sahiptir: + +- [MetaMask](https://metamask.zendesk.com/hc/) +- [Argent](https://support.argent.xyz/hc/) +- [MyEtherWallet](https://help.myetherwallet.com/) + +_Bu kapsamlı bir liste değildir. Belirli bir cüzdan için destek bulma konusunda yardıma mı ihtiyacınız var? [ethereum.org Discord](https://discord.gg/ethereum-org)'una katılın, yardım etmeye çalışacağız._ + +Ethereum cüzdanı mı arıyorsunuz? [Ethereum cüzdanlarının tam listesini keşfedin](/wallets/find-wallet/). + +## Dapp geliştirmek {#building-support} + +Geliştirme zor olabilir. İşte size yardımcı olmaktan mutluluk duyan deneyimli Ethereum geliştiricileri bulunan geliştirme odaklı bazı alanlar. + +- [Alchemy University](https://university.alchemy.com/#starter_code) +- [CryptoDevs Discord'u](https://discord.gg/Z9TA39m8Yu) +- [Ethereum StackExchange](https://ethereum.stackexchange.com/) +- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) +- [Web3 University](https://www.web3.university/) +- [LearnWeb3](https://discord.com/invite/learnweb3) + +[Ethereum geliştirici kaynakları](/developers/) bölümümüzde de belgelere ve geliştirme kılavuzlarına ulaşabilirsiniz. + +### Araçlandırma {#dapp-tooling} + +Sorunuz belirli bir araç, proje veya kütüphane ile mi ilgili? Çoğu projede sizi desteklemeye adanmış sohbet sunucuları veya forumlar bulunur. + +İşte bazı popüler örnekler: + +- [Solidity](https://gitter.im/ethereum/solidity/) +- [ethers.js](https://discord.gg/6jyGVDK6Jx) +- [web3.js](https://discord.gg/GsABYQu4sC) +- [Hardhat](https://discord.gg/xtrMGhmbfZ) +- [Truffle](https://discord.gg/8uKcsccEYE) +- [Alchemy](http://alchemy.com/discord) +- [Tenderly](https://discord.gg/fBvDJYR) + +## Bir düğüm çalıştırma {#node-support} + +Bir düğüm veya doğrulayıcı çalıştırıyorsanız, başlamanıza yardımcı olmaya adanmış bazı toplulukları burada bulabilirsiniz. + +- [EthStaker Discord'u](https://discord.io/ethstaker) +- [EthStaker Reddit'i](https://www.reddit.com/r/ethstaker) + +Ethereum istemcileri geliştiren ekiplerin çoğu, destek alabileceğiniz ve soru sorabileceğiniz özel, herkese açık alanlara da sahiptir. + +### Yürütme istemcileri {#execution-clients} + +- [Geth](https://discord.gg/FqDzupGyYf) +- [Nethermind](https://discord.gg/YJx3pm8z5C) +- [Besu](https://discord.gg/p8djYngzKN) +- [Erigon](https://github.com/ledgerwatch/erigon/issues) + +### Mutabakat istemcileri {#consensus-clients} + +- [Prysm](https://discord.gg/prysmaticlabs) +- [Nimbus](https://discord.gg/nSmEH3qgFv) +- [Lighthouse](https://discord.gg/cyAszAh) +- [Teku](https://discord.gg/7hPv2T6) +- [Lodestar](https://discord.gg/aMxzVcr) + +Ayrıca [burada bir düğümün nasıl çalıştırılacağını öğrenebilirsiniz](/developers/docs/nodes-and-clients/run-a-node/). + +## Sıkça sorulan sorular {#faq} + +### ETH'yi yanlış cüzdana gönderdim {#wrong-wallet} + +Ethereum'da gönderilen bir işlem geri alınamaz. Ne yazık ki, ETH'yi yanlış cüzdana gönderdiyseniz bunu geri almanın bir yolu yoktur. Hiçbir merkezi organizasyon, kuruluş veya kişi Ethereum'a sahip değildir, bu da hiç kimsenin işlemleri tersine çeviremeyeceği anlamına gelir. Bu nedenle işlemlerinizi göndermeden önce her zaman iki kez kontrol etmeniz çok önemlidir. + +### Ethereum çekilişimi nasıl talep edebilirim? {#giveaway-scam} + +Ethereum çekilişleri, ETH'nizi çalmak için tasarlanmış dolandırıcılıklardır. Gerçek olamayacak kadar iyi görünen tekliflere kapılmayın. Bir çekiliş adresine ETH gönderirseniz, hem bir çekilişe katılmazsınız hem de paranızı geri alamazsınız. + +[Dolandırıcılığı önleme hakkında daha fazla bilgi](/security/#common-scams) + +### İşlemim sıkıştı {#stuck-transaction} + +Ağ talebi nedeniyle gerekenden daha düşük bir işlem ücreti gönderdiyseniz, Ethereum'daki işlemler bazen sıkışabilir. Birçok cüzdan, işleme izin vermek için aynı işlemi daha yüksek bir ücretle yeniden gönderme seçeneği sunar. Alternatif olarak, kendi adresinize bir işlem göndererek ve bekleyen işlemle aynı nonce değerini kullanarak bekleyen bir işlemi iptal edebilirsiniz. + +[MetaMask'te bekleyen bir işlem nasıl hızlandırılır veya iptal edilir](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) + +[Bekleyen Ethereum işlemleri nasıl iptal edilir](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) + +### Ethereum madenciliği nasıl yapılır? {#mining-ethereum} + +Ethereum madenciliği artık mümkün değildir. Ethereum iş isoatından hisse ispatına geçtiğinde madencilik kapatılmıştı. Artık madenciler yerine Ethereum'un doğrulayıcıları var. Doğrulayıcılar, ağın güvenliğini sağlamak için ETH'yi hisseler ve hisseleme ödülleri alır. + +### Nasıl bir paydaş/doğrulayıcı olabilirim? {#become-validator} + +Doğrulayıcı olmak için Ethereum para yatırma sözleşmesine 32 ETH yatırmanız ve bir doğrulayıcı düğümü kurmanız gerekir. [Hisseleme sayfalarımızda](/staking) ve [hisseleme başlama noktasında](https://launchpad.ethereum.org/) daha fazla bilgi mevcuttur. diff --git a/src/content/translations/tr/contributing/adding-desci-projects/index.md b/public/content/translations/tr/contributing/adding-desci-projects/index.md similarity index 100% rename from src/content/translations/tr/contributing/adding-desci-projects/index.md rename to public/content/translations/tr/contributing/adding-desci-projects/index.md diff --git a/src/content/translations/tr/contributing/adding-developer-tools/index.md b/public/content/translations/tr/contributing/adding-developer-tools/index.md similarity index 100% rename from src/content/translations/tr/contributing/adding-developer-tools/index.md rename to public/content/translations/tr/contributing/adding-developer-tools/index.md diff --git a/src/content/translations/tr/contributing/adding-exchanges/index.md b/public/content/translations/tr/contributing/adding-exchanges/index.md similarity index 100% rename from src/content/translations/tr/contributing/adding-exchanges/index.md rename to public/content/translations/tr/contributing/adding-exchanges/index.md diff --git a/src/content/translations/tr/contributing/adding-glossary-terms/index.md b/public/content/translations/tr/contributing/adding-glossary-terms/index.md similarity index 100% rename from src/content/translations/tr/contributing/adding-glossary-terms/index.md rename to public/content/translations/tr/contributing/adding-glossary-terms/index.md diff --git a/src/content/translations/tr/contributing/adding-layer-2s/index.md b/public/content/translations/tr/contributing/adding-layer-2s/index.md similarity index 100% rename from src/content/translations/tr/contributing/adding-layer-2s/index.md rename to public/content/translations/tr/contributing/adding-layer-2s/index.md diff --git a/src/content/translations/tr/contributing/adding-products/index.md b/public/content/translations/tr/contributing/adding-products/index.md similarity index 100% rename from src/content/translations/tr/contributing/adding-products/index.md rename to public/content/translations/tr/contributing/adding-products/index.md diff --git a/src/content/translations/tr/contributing/adding-staking-products/index.md b/public/content/translations/tr/contributing/adding-staking-products/index.md similarity index 100% rename from src/content/translations/tr/contributing/adding-staking-products/index.md rename to public/content/translations/tr/contributing/adding-staking-products/index.md diff --git a/src/content/translations/tr/contributing/adding-wallets/index.md b/public/content/translations/tr/contributing/adding-wallets/index.md similarity index 100% rename from src/content/translations/tr/contributing/adding-wallets/index.md rename to public/content/translations/tr/contributing/adding-wallets/index.md diff --git a/src/content/translations/tr/contributing/content-resources/index.md b/public/content/translations/tr/contributing/content-resources/index.md similarity index 100% rename from src/content/translations/tr/contributing/content-resources/index.md rename to public/content/translations/tr/contributing/content-resources/index.md diff --git a/src/content/translations/tr/contributing/design-principles/index.md b/public/content/translations/tr/contributing/design-principles/index.md similarity index 100% rename from src/content/translations/tr/contributing/design-principles/index.md rename to public/content/translations/tr/contributing/design-principles/index.md diff --git a/src/content/translations/tr/contributing/design/adding-design-resources/index.md b/public/content/translations/tr/contributing/design/adding-design-resources/index.md similarity index 100% rename from src/content/translations/tr/contributing/design/adding-design-resources/index.md rename to public/content/translations/tr/contributing/design/adding-design-resources/index.md diff --git a/src/content/translations/tr/contributing/design/index.md b/public/content/translations/tr/contributing/design/index.md similarity index 100% rename from src/content/translations/tr/contributing/design/index.md rename to public/content/translations/tr/contributing/design/index.md diff --git a/src/content/translations/tr/contributing/index.md b/public/content/translations/tr/contributing/index.md similarity index 100% rename from src/content/translations/tr/contributing/index.md rename to public/content/translations/tr/contributing/index.md diff --git a/src/content/translations/tr/contributing/page-contributing-translation-program-acknowledgements.json b/public/content/translations/tr/contributing/page-contributing-translation-program-acknowledgements.json similarity index 100% rename from src/content/translations/tr/contributing/page-contributing-translation-program-acknowledgements.json rename to public/content/translations/tr/contributing/page-contributing-translation-program-acknowledgements.json diff --git a/src/content/translations/tr/contributing/page-contributing-translation-program-contributors.json b/public/content/translations/tr/contributing/page-contributing-translation-program-contributors.json similarity index 100% rename from src/content/translations/tr/contributing/page-contributing-translation-program-contributors.json rename to public/content/translations/tr/contributing/page-contributing-translation-program-contributors.json diff --git a/src/content/translations/tr/contributing/quizzes/index.md b/public/content/translations/tr/contributing/quizzes/index.md similarity index 100% rename from src/content/translations/tr/contributing/quizzes/index.md rename to public/content/translations/tr/contributing/quizzes/index.md diff --git a/src/content/translations/tr/contributing/translation-program/faq/index.md b/public/content/translations/tr/contributing/translation-program/faq/index.md similarity index 100% rename from src/content/translations/tr/contributing/translation-program/faq/index.md rename to public/content/translations/tr/contributing/translation-program/faq/index.md diff --git a/src/content/translations/tr/contributing/translation-program/how-to-translate/index.md b/public/content/translations/tr/contributing/translation-program/how-to-translate/index.md similarity index 100% rename from src/content/translations/tr/contributing/translation-program/how-to-translate/index.md rename to public/content/translations/tr/contributing/translation-program/how-to-translate/index.md diff --git a/src/content/translations/tr/contributing/translation-program/index.md b/public/content/translations/tr/contributing/translation-program/index.md similarity index 100% rename from src/content/translations/tr/contributing/translation-program/index.md rename to public/content/translations/tr/contributing/translation-program/index.md diff --git a/src/content/translations/tr/contributing/translation-program/mission-and-vision/index.md b/public/content/translations/tr/contributing/translation-program/mission-and-vision/index.md similarity index 100% rename from src/content/translations/tr/contributing/translation-program/mission-and-vision/index.md rename to public/content/translations/tr/contributing/translation-program/mission-and-vision/index.md diff --git a/src/content/translations/tr/contributing/translation-program/resources/index.md b/public/content/translations/tr/contributing/translation-program/resources/index.md similarity index 100% rename from src/content/translations/tr/contributing/translation-program/resources/index.md rename to public/content/translations/tr/contributing/translation-program/resources/index.md diff --git a/public/content/translations/tr/contributing/translation-program/translators-guide/index.md b/public/content/translations/tr/contributing/translation-program/translators-guide/index.md new file mode 100644 index 00000000000..123f7afb89c --- /dev/null +++ b/public/content/translations/tr/contributing/translation-program/translators-guide/index.md @@ -0,0 +1,293 @@ +--- +title: Çevirmen rehberi +lang: tr +description: Ethereum.org çevirmenleri için talimatlar ve ipuçları +--- + +# Ethereum.org Çeviri Stili Rehberi {#style-guide} + +Ethereum.org çeviri stili rehberi, web sitesini yerelleştirmemize yardımcı olan çevirmenler için en önemli yönergelerden, talimatlardan ve ipuçlarından bazılarını içerir. + +Bu belge, genel bir rehber görevi görür ve herhangi bir dile özgü değildir. + +Herhangi bir sorunuz, öneriniz veya geri bildiriminiz varsa lütfen bize translations@ethereum.org adresinden bize ulaşın, Crowdin'de @ethdotorg'a bir mesaj gönderin veya #translations kanalından bize mesaj gönderebileceğiniz veya ekip üyelerinden herhangi birine ulaşabileceğiniz [Discord](https://discord.gg/ethereum-org)'umuza katılın. + +## Crowdin kullanma {#using-crowdin} + +[Çeviri Programı sayfasında](/contributing/translation-program/#how-to-translate) Crowdin'de projeye nasıl katılacağınıza ve Crowdin çevrimiçi düzenleyicisinin nasıl kullanılacağına ilişkin temel talimatları bulabilirsiniz. + +Crowdin hakkında daha fazla bilgi edinmek ve gelişmiş özelliklerinden bazılarını kullanmak istiyorsanız, [Crowdin bilgi bankası](https://support.crowdin.com/online-editor/) birçok kapsamlı kılavuz ve tüm Crowdin işlevlerine genel bakış içerir. + +## Mesajın özünü yakalamak {#capturing-the-essence} + +Ethereum.org içeriğini çevirirken, kelimenin tam anlamıyla çeviri yapmaktan kaçının. + +Çevirilerin, mesajın özünü yakalaması önemlidir. Bu, belirli ifadeleri yeniden ifade etmek veya içeriği kelimesi kelimesine tercüme etmek yerine açıklayıcı çeviriler kullanmak anlamına gelebilir. + +Farklı dillerin farklı gramer kuralları, kuralları ve kelime sırası vardır. Çeviri yaparken, zayıf cümle yapısına ve okunabilirliğe yol açabileceği için lütfen cümlelerin hedef dillerde nasıl yapılandırıldığına dikkat edin ve İngilizce kaynağı kelimenin tam anlamıyla çevirmekten kaçının. + +Kaynak metni kelimesi kelimesine tercüme etmek yerine, tüm cümleyi okumanız ve onu hedef dilin kurallarına uyacak şekilde uyarlamanız tavsiye edilir. + +## Resmi ve günlük dil {#formal-vs-informal} + +Her zaman, kibar ve tüm ziyaretçiler için uygun olan resmi hitap biçimini kullanırız. + +Resmi hitap biçimini kullanmak, günlük veya saldırgan görünmekten kaçınmamızı sağlar ve ziyaretçinin yaşı ve cinsiyeti ne olursa olsun işe yarar. + +Hint-Avrupa ve Afro-Asya dillerinin çoğu, eril ve dişil kelimeler arasında ayrım yapan cinsiyete özgü ikinci şahıs zamirlerini kullanır. Kullanıcıya hitap ederken veya iyelik zamirlerini kullanırken, resmi hitap şekli genellikle nasıl tanımlandıklarına bakılmaksızın uygulanabilir ve tutarlı olduğundan, ziyaretçinin cinsiyetini varsaymaktan kaçınabiliriz. + +## Basit ve net olan kelime hazinesi ve anlam {#simple-vocabulary} + +Amacımız, web sitesindeki içeriği mümkün olduğunca çok kişi için anlaşılır kılmaktır. + +Çoğu durumda bu, kolayca anlaşılabilir kısa ve basit kelimeler kullanılarak kolayca başarılabilir. Kendi dilinizde aynı anlama sahip belirli bir kelimenin birden fazla olası çevirisi varsa, en iyi seçenek çoğu zaman anlamı açıkça yansıtan en kısa kelimedir. + +## Yazım sistemi {#writing-system} + +Ethereum.org, Latince'ye alternatif yazma sistemleri (veya komut dosyaları yazma) kullanarak birçok dilde kullanılabilir. + +İçeriğin tamamı dilinize uygun yazı sistemi kullanılarak çevrilmeli ve Latin karakterleri kullanılarak yazılmış herhangi bir kelime içermemelidir. + +İçeriği çevirirken çevirilerin tutarlı olmasına ve Latince karakter içermemesine dikkat etmelisiniz. + +Yaygın bir yanılgı, Ethereum'un her zaman Latince yazılması gerektiğidir. Bu çoğunlukla yanlıştır, lütfen kendi dilinize özgü Ethereum yazımını kullanın (örn. Çince'de 以太坊, Arapça'da إيثيريوم, vb.). + +**Yukarıdakiler, özel isimlerin kural olarak tercüme edilmemesi gereken diller için geçerli değildir.** + +## Sayfa meta verilerini çevirme {#translating-metadata} + +Bazı sayfalar sayfada "başlık", "dil", "açıklama", "kenar çubuğu" vb. gibi meta veriler içerir. + +Crowdin'e yeni sayfalar yüklerken çevirmenlerin asla çevirmemesi gereken içeriği gizleriz, bu da çevirmenlerin Crowdin'de görebildiği tüm meta verilerin çevrilmesi gerektiği anlamına gelir. + +Lütfen kaynak metnin "en" olduğu dizeleri çevirirken özellikle dikkatli olun. Bu, sayfanın mevcut olduğu dili temsil eder ve [dilinizin ISO dil koduna çevrilmesi gerekir](https://www.andiamo.co.uk/resources/iso-language-codes/). Bu dizgiler her zaman hedef dile özgü yazı dizisi değil, Latin karakterler kullanılarak çevrilmelidir. + +Hangi dil kodunu kullanacağınızdan emin değilseniz, Crowdin'deki çeviri belleğini kontrol edebilir veya Crowdin çevrimiçi düzenleyicideki sayfanın URL'sinde kendi dilinizin dil kodunu bulabilirsiniz. + +En çok konuşulan diller için bazı dil kodları örnekleri: + +- Arapça - ar +- Çince (Basitleştirilmiş) - zh +- Fransızca - fr +- Hintçe - hi +- İspanyolca - es + +## Harici makalelerin başlıkları {#external-articles} + +Bazı dizgiler, harici makalelerin başlıklarını içerir. Geliştirici belgesi sayfalarımızın çoğu, daha fazla okuma için harici makalelere yönlendiren bağlantılar içerir. Sayfayı kendi dillerinde görüntüleyen ziyaretçiler için daha tutarlı bir kullanıcı deneyimi sağlamak için makalenin dilinden bağımsız olarak makale başlıklarını içeren dizgilerin çevrilmesi gerekir. + +Bu dizgilerin çevirmenler için nasıl göründüğüne ve bunların nasıl tanımlanacağına ilişkin bazı örnekleri aşağıda bulabilirsiniz (makalelere yönlendiren bağlantılar çoğunlukla bu sayfaların alt kısmında, "Daha fazla bilgi" bölümünde bulunabilir): + +![Sidebar.png'deki makale başlıkları](./article-titles-in-sidebar.png) ![editor.png'deki makale başlıkları](./article-titles-in-editor.png) + +## Crowdin uyarıları {#crowdin-warnings} + +Crowdin, çevirmenleri hata yapmak üzereyken uyaran yerleşik bir özelliğe sahiptir. Çevrilmemesi gereken öğeleri çevirirseniz, kaynaktan bir etiket eklemeyi, birkaç ardışık boşluk eklemeyi, son noktalama işaretlerini koymayı vb. unutursanız, Crowdin çevirinizi kaydetmeden önce sizi bu konuda otomatik olarak uyaracaktır. Bunun gibi bir uyarı görürseniz lütfen geri dönün ve önerilen çeviriyi tekrar kontrol edin. + +**Bu uyarıları asla göz ardı etmeyin, çünkü bunlar genellikle bir şeylerin yanlış olduğu veya çevirinin kaynak metnin önemli bir bölümünün eksik olduğu anlamına gelir.** + +Çevirinize bir etiket eklemeyi unuttuğunuzda verilen bir Crowdin uyarısı örneği: ![Bir Crowdin uyarısı örneği](./crowdin-warning-example.png) + +## Etiketler ve kod parçacıkları hakkında yapılacaklar {#dealing-with-tags} + +Kaynak içeriğin çoğu, Crowdin düzenleyicisinde sarı renkle vurgulanan etiketler ve değişkenler içerir. Bunlar, farklı fonksiyonlar gerçekleştirir ve bunlara doğru bir şekilde yaklaşılmalıdır. + +**Crowdin ayarları** + +Etiket yönetimini kolaylaştırmak ve onları doğrudan kaynağından kopyalamak için Crowdin düzenleyicisinden ayarlarınızı değiştirmenizi öneririz. + +1. Açık ayarlar ![Düzenleyicide ayarları açma](./editor-settings.png) + +2. "HTML etiketlerini görüntüleme" bölümüne inin + +3. "Sakla" öğesini seçin ![Lütfen "Gizle" öğesini seçin](./hide-tags.png) + +4. "Kaydet" öğesine tıklayın + +Bu seçeneği seçtikten sonra tüm etiket metni artık gösterilmez ve onun yerine bir sayı gösterilir. Tercüme yaparken bu etikete tıkladığınızda, aynı etiket tercüme alanına doğrudan kopyalanır. + +**Bağlantılar** + +Ethereum.org veya diğer web sitelerindeki sayfalara yönlendiren tam bağlantılar görebilirsiniz. + +Bunlar kaynakla aynı olmalı; değiştirilmemeli veya tercüme edilmemelidir. Bir bağlantıyı çevirirseniz veya hatta ters eğik çizgi (/) gibi sadece bir kısmını kaldırarak herhangi bir şekilde değiştirirseniz, çalışmayan ve kullanılamaz bağlantılar ortaya çıkacaktır. + +Bağlantılar için yapılacak en iyi şey, üzerlerine tıklayarak veya "Kaynağı Kopyala" düğmesini (Alt+C) kullanarak onları doğrudan kaynaktan kopyalamaktır. + +![Link örneği.png](./example-of-link.png) + +Bağlantılar, kaynak metinde etiketler biçiminde de görünür (örn. <0> ). Etiketin üzerine geldiğinizde, düzenleyici tam içeriğini gösterir: Bazen bu etiketler bağlantıları temsil eder. + +Bağlantıları kaynaktan kopyalamak ve sıralarını değiştirmemek çok önemlidir. + +Etiketlerin sırası değiştirilirse temsil ettikleri bağlantı çalışmaz. + +![Etiketlerin içinde link örnekleri.png](./example-of-links-inside-tags.png) + +**Etiketler ve değişkenler** + +Kaynak metin, her zaman kaynaktan kopyalanması ve asla değiştirilmemesi gereken birçok farklı türde etiket içerir. Yukarıdakine benzer şekilde, bu etiketlerin çevirideki sırası da kaynakla aynı kalmalıdır. + +Etiketler her zaman bir açma ve kapatma etiketi içerir. Çoğu durumda, açma ve kapatma etiketleri arasındaki metin çevrilmelidir. + +Örnek: ``Decentralized`` + +`` - _Metni kalın yapan açma etiketi_ + +Decentralized - _Çevrilebilir metin_ + +`` - _Kapatma etiketi_ + +!["strong" etiketlerinin örneği.png](./example-of-strong-tags.png) + +Kod parçacıkları, çevrilmemesi gereken kodlar içerdiğinden diğer etiketlerden biraz farklı bir şekilde ele alınmalıdır. + +Örnek: ``nonce`` + +`` - _Bir kod parçacığı içeren açma etiketi_ + +nonce - _Çevrilmemesi gereken metin_ + +`` - _Kapatma etiketi_ + +![Kod parçacıklarının örneği.png](./example-of-code-snippets.png) + +Kaynak metin, yalnızca sayıları içeren kısaltılmış etiketler de içerir; yani, bunların fonksiyonu hemen anlaşılabilir olmayabilir. Tam olarak hangi fonksiyonu yerine getirdiklerini görmek için imleci bu etiketlerin üzerine götürebilirsiniz. + +Aşağıdaki örnekte, imleç üzerine götürüldüğünde <0> etiketin `` öğesini temsil ettiğini ve bir kod parçacığı içerdiğini görebilirsiniz; bu nedenle, bu etiketlerin içindeki içerik çevrilmemelidir. + +![Belirsiz etiketlerin örneği.png](./example-of-ambiguous-tags.png) + +## Kısa vs. eksiksiz hâller/kısatmalar {#short-vs-full-forms} + +Web sitesinde kullanılan birçok kısaltma vardır, örn. dapps, NFT, DAO, DeFi vb. Bu kısaltmalar genellikle İngilizce olarak kullanılır ve web sitesini ziyaret edenlerin çoğu bunlara aşinadır. + +Genellikle diğer dillerde yerleşik çevirileri olmadığı için bu ve benzeri terimleri ele almanın en iyi yolu, tam hâlinin açıklayıcı bir çevirisini sağlamak ve İngilizce kısaltmasını parantez içinde eklemektir. + +Çoğu insan bunlara aşina olmayacağından ve yerelleştirilmiş hâlleri çoğu ziyaretçi için pek anlamlı olmayacağından bu kısaltmaları çevirmeyin. + +Dapps kısaltmasının nasıl çevrilmesi gerektiğine dair örnek: + +- Merkeziyetsiz uygulamalar (dapps) → _Tercüme edilmiş tam metin (parantez içinde İngilizce kısaltması)_ + +## Yerleşmiş çevirileri olmayan terimler {#terms-without-established-translations} + +Bazı terimlerin diğer dillerde yerleşmiş çevirileri bulunmayabilir ve bu terimler, orijinal İngilizce hâliyle yaygın olarak biliniyor olabilir. Proof-of-work, proof-of-stake, Beacon Chain, staking vb. nispeten yeni olan terimler buna örnek gösterilebilir. + +İngilizce versiyonu diğer dillerde de yaygın olarak kullanıldığından bu terimleri çevirmek kulağa doğal gelmese de çevrilmeleri şiddetle tavsiye edilir. + +Bunları çevirirken yaratıcı ve açıklayıcı çeviriler kullanmaktan çekinmeyin veya gerekirse düz bir şekilde tam anlamıyla çevirin. + +**Bazı terimleri İngilizce bırakmak yerine çoğu terimin çevrilmesinin nedeni, Ethereum ve ilgili teknolojileri daha fazla insan kullanmaya başladıkça, bu yeni terminolojinin gelecekte daha yaygın hâle geleceği gerçeğidir. Dünyanın her yerinden daha fazla insanı bu alana dahil etmek istiyorsak, kendimiz oluşturmamız gerekse bile mümkün olduğunca çok dilde anlaşılır terminoloji sağlamamız gerekir.** + +## Düğmeler ve CTA'lar {#buttons-and-ctas} + +Web sitesi, diğer içeriklerden farklı şekilde çevrilmesi gereken çok sayıda düğme içerir. + +Düğme metni, çoğu dizeyle bağlantılı bağlam ekran görüntülerini görüntüleyerek veya düzenleyicideki "düğme" ifadesini içeren bağlamı kontrol ederek anlaşılabilir. + +Biçimlendirme uyumsuzluklarını önlemek için düğmelerin çevirileri mümkün olduğunca kısa olmalıdır. Ek olarak, düğme çevirileri emir kipi hâlinde olmalıdır, yani bir komut veya istek içermelidir. + +![Bir düğme nasıl bulunur.png](./how-to-find-a-button.png) + +## Kapsayıcılık için çevirme {#translating-for-inclusivity} + +Ethereum.org'un ziyaretçileri, dünyanın farklı bölgelerindendir ve farklı geçmişlere sahiptir. Bu nedenle web sitesindeki dil; tarafsız, herkese açık ve kapsayıcı olmalıdır. + +Cinsiyetsiz ifadeler bunun önemli bir parçasıdır. Bu, resmi hitap biçimini kullanarak ve çevirilerde cinsiyete özgü sözcüklerden kaçınarak kolayca başarılabilir. + +Kapsayıcılığın başka bir biçimi; herhangi bir ülkeye, ırka veya bölgeye özgü olmayan küresel bir kullanıcı kitlesine yönelik çeviri yapmaya çalışmaktır. + +Son olarak üslup, tüm kullanıcılara ve her yaşa uygun olmalıdır. + +## Dile özel çeviriler {#language-specific-translations} + +Çeviri yaparken kaynaktan kopyalamak yerine kendi dilinizde kullanılan dil bilgisi kurallarına, kabullere ve biçimlendirmeye uymak önemlidir. Kaynak metin, İngilizce dil bilgisi kural ve kabullerine uygundur; bu kural ve kabuller, diğer birçok dil için geçerli değildir. + +Dilinizin kurallarını bilmeli ve buna göre çeviri yapmalısınız. Yardıma ihtiyacınız olduğunda bize ulaşırsanız ve bu öğelerin kendi dilinizde nasıl kullanılması gerektiğine dair bazı kaynaklar bulmanıza yardımcı olabiliriz. + +Özellikle nelere dikkat edilmesi gerektiğine dair bazı örnekler: + +### Noktalama, düzenleme {#punctuation-and-formatting} + +**Büyük/Küçük Harf** + +- Farklı dillerde büyük/küçük harf kullanımında büyük farklılıklar bulunur. +- İngilizce'de; başlıklarda ve adlarda, aylarda ve günlerde, dil adlarında, tatillerde vb. tüm sözcüklerin büyük harfle yazılması yaygındır. Diğer birçok dilde, farklı büyük harf kullanım kurallarına sahip oldukları için bu durum dil bilgisi açısından yanlıştır. +- Bazı dillerde, İngilizce'de büyük harfle yazılmayan şahıs zamirlerinin, isimlerin ve belirli sıfatların büyük harfle yazılmasıyla ilgili kurallar da vardır. + +**Boşluklar** + +- İmla kuralları, her dil için boşluk kullanımını tanımlar. Boşluklar her yerde kullanıldığından, bu kurallar en belirgin olanlardan bazılarıdır ve boşluklar en yanlış çevrilen öğelerden bazılarıdır. +- İngilizce ve diğer diller arasındaki boşluk bırakma ilgili bazı yaygın farklılıklar: + - Ölçü birimlerinden ve para birimlerinden önceki boşluk (ör. USD, EUR, kB, MB) + - Derece işaretlerinden önceki boşluk (örneğin, °C, ℉) + - Bazı noktalama işaretlerinden önce boşluk, özellikle üç nokta (…) + - Taksimlerden (/) önce ve sonra boşluk + +**Listeler** + +- Her dilin liste yazmak için çeşitli ve karmaşık kuralları vardır. Bunlar İngilizceden önemli ölçüde farklı olabilir. +- Bazı dillerde, her yeni satırın ilk kelimesi büyük harfle yazılmalı, bazılarında ise yeni satırlar küçük harflerle başlamalıdır. Ayrıca birçok dilde, her satırın uzunluğuna bağlı olarak, listelerde büyük harf kullanımıyla ilgili farklı kurallar vardır. +- Aynısı satır öğelerinin noktalama işaretleri için de geçerlidir. Listelerdeki son noktalama işaretleri, dile bağlı olarak nokta (**.**), virgül (**,**) veya noktalı virgül (**;**) olabilir. + +**Tırnak işaretleri** + +- Diller birçok farklı tırnak işareti kullanır. İngilizce tırnak işaretlerini kaynaktan basitçe kopyalamak çoğu zaman yanlıştır. +- En yaygın tırnak işareti türlerinden bazıları şunlardır: + - „örnek metin“ + - ‚örnek metin’ + - »örnek metin« + - “örnek metin” + - ‘örnek metin’ + - «örnek metin» + +**Kısa çizgiler ve tireler** + +- İngilizce'de kısa çizgi (-) sözcükleri veya bir sözcüğün farklı bölümlerini birleştirmek için kullanılırken tire (–) bir aralığı veya duraklamayı belirtmek için kullanılır. +- Birçok dilde, dikkat edilmesi gereken kısa çizgi ve tire kullanımı için farklı kurallar vardır. + +### Formatlar {#formats} + +**Sayılar** + +- Farklı dillerde sayıların yazılmasındaki temel fark, ondalık ve binler için kullanılan ayırıcıdır. Binlerce kişi için bu nokta, virgül veya boşluk olabilir. Benzer şekilde, bazı diller ondalık nokta kullanırken, diğerleri ondalık virgül kullanır. + - Büyük sayılara bazı örnekler: + - İngilizce – **1,000.50** + - İspanyolca – **1.000,50** + - Fransızca – **1 000,50** +- Sayıları çevirirken dikkat edilmesi gereken bir diğer önemli nokta da yüzde işaretidir. Farklı şekillerde yazılabilir: **100%**, **100 %** veya **%100**. +- Son olarak, dile bağlı olarak negatif sayılar farklı şekilde görüntülenebilir: -100, 100-, (100) veya [100]. + +**Tarihler** + +- Tarihleri çevirirken, dile bağlı olarak bir takım hususlar ve farklılıklar vardır. Bunlara tarih biçimi, ayırıcı, büyük harf kullanımı ve baştaki sıfırlar dahildir. Tam uzunluktaki ve sayısal tarihler arasında da farklılıklar vardır. + - Farklı tarih biçimlerine bazı örnekler: + - Birleşik Krallık İngilizcesi (gg/aa/yyyy) - 1 Ocak 2022 + - Amerikan İngilizcesi (aa/gg/yyyy) - Ocak 1, 2022 + - Çince (yyyy-aa-gg) – 2022 年 1 月 1 日 + - French (gg/aa/yyyy) – 1er janvier 2022 + - Italian (gg/aa/yyyy) – 1º gennaio 2022 + - German (gg/aa/yyyy) – 1. Ocak 2022 + +**Para birimleri** + +- Farklı biçimler, kurallar ve dönüşümler nedeniyle para birimlerini çevirmek zor olabilir. Genel bir kural olarak, lütfen para birimlerini kaynakla aynı tutun. Okuyucunun yararına parantez içinde yerel para biriminizi ve dönüşümünüzü ekleyebilirsiniz. +- Farklı dillerde para birimleri yazmanın temel farklılıkları arasında sembol yerleşimi, ondalık virgül ve ondalık nokta, boşluk ve kısaltmalar ve semboller yer alır. + - Sembol yerleştirmesi: $100 veya 100$ + - Ondalık virgül ve ondalık nokta: 100,50$ veya 100.50$ + - Boşluklar: $100 veya 100 $ + - Kısaltmalar vs. semboller: 100 $ veya 100 USD + +**Ölçü birimleri** + +- Genel bir kural olarak, lütfen ölçü birimlerini kaynağa uygun şekilde koruyun. Ülkeniz farklı bir sistem kullanıyorsa, dönüştürmeyi parantez içinde ekleyebilirsiniz. +- Ölçü birimlerinin yerelleştirilmesinin yanı sıra, dillerin bu birimlere yaklaşımlarındaki farklılıkları da not etmek önemlidir. Temel fark, dile bağlı olarak farklı olabilen sayı ve birim arasındaki boşluktur. Bunun örnekleri arasında 100 kB'ye karşı 100 kB veya 50ºF'ye karşı 50 ºF yer alır. + +## Sonuç {#conclusion} + +Ethereum.org'u çevirmek, Ethereum'un farklı yönlerini öğrenmek için harika bir fırsattır. + +Çeviri yaparken acele etmemeye çalışın. Rahat olun ve eğlenin! + +Çeviri Programına dahil olduğunuz ve web sitesini daha geniş bir kitleye ulaştırmamıza yardımcı olduğunuz için teşekkür ederiz. Ethereum topluluğu küreseldir ve bunun bir parçası olduğunuz için mutluyuz! diff --git a/public/content/translations/tr/dao/index.md b/public/content/translations/tr/dao/index.md new file mode 100644 index 00000000000..04aeef5bf71 --- /dev/null +++ b/public/content/translations/tr/dao/index.md @@ -0,0 +1,165 @@ +--- +title: Merkeziyetsiz otonom organizasyonlar (DAO'lar) +description: Ethereum'daki DAO'lara genel bakış +lang: tr +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: Bir teklif üzerinde oy kullanan bir DAO'nun temsili. +summaryPoint1: Merkezi liderliği olmayan üyelere ait topluluklar. +summaryPoint2: İnternette tanımadığnız kişilerle iş birliği yapmanın güvenli bir yolu. +summaryPoint3: Belirli bir amaca para yatırmak için güvenli bir yer. +--- + +## DAO'lar Nedir? {#what-are-daos} + +DAO, müşterek bir görev için çalışan, müşterek olarak sahip olunan, blokzincir tarafından yönetilen bir organizasyondur. + +DAO'lar, fonları veya operasyonları yönetmesi için hayırsever bir lidere güvenmeden dünyanın dört bir yanındaki benzer fikirlere sahip kişilerle çalışmamıza olanak tanır. Burada, fonları canı istediği gibi harcayan bir CEO veya hesapları manipüle edecek bi CFO yok. Bunun yerine, kodda işlenen blok zinciri tabanlı kurallar, kuruluşun nasıl çalıştığını ve fonların nasıl harcandığını tanımlar. + +Grubun onayı olmadan kimsenin erişme otoritesine sahip olmadığı yerleşik hazinelere sahiplerdir. Kararlar, kuruluştaki herkesin söz sahibi olmasını sağlamak için teklifler ve oylamalarla yönetilir ve her şey zincir üzerinde şeffaf bir şekilde gerçekleşir. + +## Neden DAO'lara ihtiyacımız var? {#why-dao} + +Birisiyle finansman ve para içeren bir organizasyon başlatmak, çalıştığınız kişilerle ileri düzeyde güven gerektirir. Ancak yalnızca internette etkileşimde bulunduğunuz birine güvenmek zordur. DAO'larla gruptaki başka kimseye güvenmeniz gerekmez, yalnızca DAO'nun %100 şeffaf ve herkes tarafından doğrulanabilir koduna güvenmeniz gerekir. + +Bu küresel iş birliği ve koordinasyon için birçok yeni fırsat sunar. + +### Bir karşılaştırma {#dao-comparison} + +| DAO | Geleneksel bir organizasyon | +| ------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------- | +| Genelde düz ve tamamen demokratikleştirilmiş. | Genelde hiyerarşik. | +| Herhangi bir değişikliğin uygulanması için üyeler tarafından oylama yapılması gerekli. | Yapısına bağlı olarak, değişiklikler tekil bir partiden istenebilir veya oylama önerilebilir. | +| Oylar toplanır ve sonuç güvenilir bir aracı olmadan otomatik şekilde uygulanır. | Eğer oylamaya izin verildiyse, oylar içeride toplanır ve oylamanın sonucu manuel şekilde idare edilir. | +| Teklif edilen servisler merkezi olmadan ve otomatik bir şekilde idare edilir (örnek olarak hayırseverlik fonları). | İnsan idaresi veya merkezi şekilde kontrol edilen bir otomasyon gerektirir, bu da manipülasyona açıktır. | +| Tüm etkinlikler şeffaftır ve tamamen halka açıktır. | Etkinlikler genelde gizlidir ve tamamı halka açılmaz. | + +### DAO örnekleri {#dao-examples} + +Bunun biraz daha mantıklı olması için, burada bir DAO'yu nasıl kullanabileceğiniz hakkında birkaç örnek mevcut: + +- Hayır kurumu - Dünyanın herhangi bir yerinden bağışları kabul edebilir ve bu bağışların neler için kullanılacağını oylamaya sunabilirsiniz. +- Kolektif mülkiyet – fiziksel veya dijital varlıklar satın alabilir ve üyeler bunların nasıl kullanılacağına oy verebilir. +- Girişimler ve hibeler: Yatırım sermayesini bir araya toplayan ve desteklenecek girişimlere oy veren bir girişim fonu oluşturabilirsiniz. Geri ödenen para daha sonrasında DAO üyeleri arasında yeniden dağıtılabilir. + +## DAO'lar nasıl çalışır? {#how-daos-work} + +Bir DAO'nun bel kemiği, organizasyonun kurallarını tanımlayan ve grubun hazinesini içeren akıllı sözleşmesidir. Sözleşmenin Ethereum'da yayınlandığı andan itibaren kimse oylama olmadan kuralları değiştiremez. Birisi koddaki kurallara veya mantığa uymayan bir şey yapmaya çalışırsa, başarılı olamaz. Ayrıca, hazinenin de akıllı sözleşme tarafından belirlenmesi, kimsenin grubun onayı olmadan parayı harcayamayacağı anlamına gelir. Bu, DAO'ların merkezi bir otoriteye ihtiyacı olmadığı anlamına gelir. Bunun yerine, grup kararları toplu olarak alır ve oylar geçtiğinde ödemeler otomatik olarak yetkilendirilir. + +Bu, akıllı sözleşmelerin Ethereum'da yayınlandıktan sonra kurcalanamaz olmaları sayesinde mümkündür. İnsanlar fark etmeden kodu (yani DAO'ların kurallarını) değiştiremezsiniz çünkü her şey halka açıktır. + + + Akıllı kontratlar hakkında daha fazla bilgi + + +## Ethereum ve DAO'lar {#ethereum-and-daos} + +Ethereum, birkaç nedenden dolayı DAO'lar için mükemmel bir temeldir: + +- Ethereum'un mutabakatı organizasyonların ağa güvenmesini sağlayacak kadar dağıtılmış ve yerleşmiştir. +- Akıllı sözleşme kodu, yayınlandıktan sonra sahipleri tarafından bile düzenlenemez. Bu, DAO'nun yazıldığı kurallar çerçevesinde çalışmasını sağlar. +- Akıllı sözleşmeler fon gönderebilir/alabilir. Bu olmasaydı grup fonlarını yönetmek için güvenilir bir aracıya ihtiyacınız olurdu. +- Ethereum topluluğu, en iyi yöntemlerin ve destek sistemlerinin hızlıca ortaya çıkmasına izin vererek rekabetçi değil; iş birlikçi olduğunu kanıtlamıştır. + +## DAO yönetişimi {#dao-governance} + +Bir DAO'yu yönetirken karar vermeniz gereken birçok husus vardır Mesela oylamaların ve tekliflerin nasıl çalıştığı gibi. + +### Delegasyon {#governance-delegation} + +Delegasyon, temsiliyetçi demokrasinin DAO versiyonu gibidir. Token sahipleri, kendi kendilerini aday gösteren ve protokole hizmet etmeyi ve bilgi sahibi olmayı taahhüt eden kullanıcılara oy yetkisi verir. + +#### Meşhur bir örnek {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) – ENS sahipleri, kendilerini temsil etmeleri için ilgili topluluk üyelerine oylarını devredebilir. + +### Otomatik İşlem yönetişimi {#governance-example} + +Birçok DAO'da, üyelerin çoğunluğu olumlu oy kullanırsa işlemler otomatik olarak yürütülür. + +#### Meşhur bir örnek {#governance-example} + +[Nouns](https://nouns.wtf) – Nouns DAO'da, kurucular tarafından veto edilmediği sürece, bir oy yeter sayısı sağlandığında ve çoğunluk olumlu oy kullandığında bir işlem otomatik olarak yürütülür. + +### Çoklu imzalı yönetişim {#governance-example} + +DAO'ların binlerce oylama üyesi olabilirken, fonlar güvenilir ve genellikle "doxxed" (topluluk tarafından gerçek kimliği bilinen) olan 5-20 aktif topluluk üyesi tarafından paylaşılan bir cüzdanda tutulabilir. Oylamadan sonra, çoklu imza imzalayacılıları, topluluğun isteğini hayata geçirir. + +## DAO yasaları {#dao-laws} + +1977'de Wyoming, girişimcileri koruyan ve sorumluluklarını sınırlayan LLC'yi (Sınırlı Sorumlu Şirket) icat etti. Daha yakın zamanlarda, DAO'lar için yasal statü oluşturan DAO yasasına öncülük ettiler. Şu anda Wyoming, Vermont ve Virgin Adaları bir şekilde DAO yasalarına sahiptir. + +### Meşhur bir örnek {#law-example} + +[CityDAO](https://citydao.io) – CityDAO, Wyoming'in DAO yasasını kullanarak Yellowstone Milli Parkı yakınında 40 dönümlük arazi satın aldı. + +## DAO üyeliği {#dao-membership} + +DAO üyeliği için farklı modeller bulunmaktadır. Üyelik, oylamanın nasıl işleyeceğini ve DAO'nun diğer önemli kısımlarını belirleyebilir. + +### Token tabanlı üyelik {#token-based-membership} + +Kullanılan token'a bağlı olarak genelde tamamen yetkisizdir. Çoğunlukla bu yönetişim token'ları yetkisiz bir şekilde merkeziyetsiz bir borsada takas edilebilir. Diğerleri ise likidite sağlayarak veya başka bir "iş ispatı" ile kazanılabilir. İki şekilde de sadece token'a sahip olmak oy hakkı sağlar. + +_Tipik olarak geniş merkeziyetsiz protokolleri ve/veya token'ları yönetmek için kullanılır._ + +#### Meşhur bir örnek {#token-example} + +[MakerDAO](https://makerdao.com) – MakerDAO'nun belirteci MKR, merkezi olmayan borsalarda geniş çapta mevcuttur ve herkes Maker protokolünün geleceği üzerinde oylama gücüne sahip olmayı satın alabilir. + +### Hisse tabanlı üyelik {#share-based-membership} + +Hisse tabanlı DAO'lar daha çok yetki içerir ama yine de oldukça açıktırlar. Herhangi bir olası üye, DAO'ya katılmak için bir teklif sunabilir ve genellikle token veya çalışma şeklinde bir miktar değere sahip bir komisyon sunar. Hisseler, direkt oy gücünü ve sahipliğini temsil eder. Üyeler istedikleri zaman hazineden hisselerini ayrılabilirler. + +_Tipik olarak hayır kurumları, işçi kolektifleri ve girişim kulüpleri gibi birbirine bağlı, insan merkezli organizasyonlarda kullanılır. Token'ları ve protokolleri de yönetebilir._ + +#### Meşhur bir örnek {#share-example} + +[MolochDAO](http://molochdao.com/) – MolochDAO, Ethereum projelerini finanse etmeye odaklıdır. Üyelik için bir teklif gerektirirler, bu sayede grup potansiyel imtiyaz sahipleri hakkında bilinçli kararlar vermek için yeterli deneyim ve sermayeye sahip olup olmadığınızı değerlendirebilir. Serbest piyasada bir DAO'ya erişim satın alamazsınız. + +### İtibara dayalı üyelik {#reputation-based-membership} + +İtibar, katılımın kanıtını temsil eder ve DAO'da oy kullanma yetkisi verir. Token veya hisse tabanlı üyeliğin aksine, itibara dayalı DAO'lar mülkiyeti, katkıda bulunanlara devretmez. İtibar satın alınamaz, devredilemez veya başkası tarafından temsil edilemez; DAO üyeleri katılım yoluyla itibar kazanmalıdır. Zincir üzerinde oylama izinsizdir ve potansiyel üyeler, DAO'ya katılmak için serbestçe teklif gönderebilir ve katkıları karşılığında ödül olarak itibar ve token almayı talep edebilir. + +_Protokollerin ve merkeziyetsiz uygulamaların merkeziyetsiz gelişimi ve yönetişimi için kullanılır, ancak aynı zamanda hayır kurumları, işçi kolektifleri, yatırım kulüpleri vb. gibi çeşitli kuruluşlar için de çok uygundur._ + +#### Meşhur bir örnek {#reputation-example} + +[DXdao](https://DXdao.eth.link) – DXdao, 2019'dan beri merkeziyetsiz protokolleri yöneten ve uygulamalar oluşturan küresel bağımsız bir kolektiftir. Fonları koordine etmek ve yönetmek için itibara dayalı yönetişim ve holografik mutabakattan yararlanır, bu da hiç kimsenin geleceğini etkileme yolunu satın alamayacağı anlamına gelir. + +## Bir DAO başlatma veya DAO'ya katılma {#join-start-a-dao} + +### Bir DAO'ya katıl {#join-a-dao} + +- [Ethereum topluluk DAO'ları](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [DAOHaus'un DAO listesi](https://app.daohaus.club/explore) +- [DAO'ların tally.xyz listesi](https://www.tally.xyz) + +### Bir DAO başlatma {#start-a-dao} + +- [DAOHaus ile bir DAO çağırma](https://app.daohaus.club/summon) +- [Tally ile bir Governor DAO başlatma](https://www.tally.xyz/add-a-dao) +- [Aragon tarafından desteklenen bir DAO oluşturma](https://aragon.org/product) +- [Bir koloni başlatma](https://colony.io/) +- [DAOstack'in holografik mutabakatıyla bir DAO oluşturun](https://alchemy.daostack.io/daos/create) + +## Daha fazla okuma {#further-reading} + +### DAO Makaleleri {#dao-articles} + +- [Bir DAO nedir?](https://aragon.org/dao) – [Aragon](https://aragon.org/) +- [DAO El Kitabı](https://daohandbook.xyz) +- [DAO'lar Evi](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) +- [Bir DAO nedir ve amacı nedir?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) +- [DAO Destekli bir Dijital Topluluk Nasıl Başlatılır](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) +- [Bir DAO nedir?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) +- [Holografik Mutabakat Nedir?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) +- [DAO'lar Vitalik'e göre özerk kuruluşlarda ademi merkeziyetçiliğin önemli olduğu şirketler değildir:](https://vitalik.ca/general/2022/09/20/daos.html) +- [DAO'lar, DAC'ler, DA'lar ve Daha Fazlası: Tamamlanmamış Terminoloji Rehberi](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Ethereum Blogu](https://blog.ethereum.org) + +### Videolar {#videos} + +- [Kripto dünyasında DAO nedir?](https://youtu.be/KHm0uUPqmVE) +- [Bir DAO Şehir Kurabilir mi?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/public/content/translations/tr/decentralized-identity/index.md b/public/content/translations/tr/decentralized-identity/index.md new file mode 100644 index 00000000000..74c51c92c7d --- /dev/null +++ b/public/content/translations/tr/decentralized-identity/index.md @@ -0,0 +1,185 @@ +--- +title: Merkeziyetsiz kimlik +description: Merkeziyetsiz kimlik nedir ve neden önemlidir? +lang: tr +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: /eth-gif-cat.png +summaryPoint1: Geleneksel kimlik sistemleri, tanımlayıcılarınızın verilmesini, bakımını ve kontrolünü merkezileştirdi. +summaryPoint2: Merkeziyetsiz kimlik, merkezi üçüncü taraflara olan bağımlılığı ortadan kaldırır. +summaryPoint3: Kripto sayesinde, kullanıcılar artık kendi tanımlayıcılarını ve onaylarını yayınlama, tutma ve kontrol etme araçlarına bir kez daha sahipler. +--- + +Kimlik, bugün hayatınızın neredeyse her yönünün temelini oluşturuyor. Çevrimiçi hizmetleri kullanmak, bir banka hesabı açmak, seçimlerde oy kullanmak, mülk satın almak, istihdam sağlamak - bunların tümü kimliğinizi kanıtlamayı gerektirir. + +Bununla birlikte, geleneksel kimlik yönetim sistemleri uzun süredir kimlik tanımlayıcılarınızı ve [tasdiklerinizi](#what-are-attestations) düzenleyen, tutan ve kontrol eden merkezi aracılara dayanmaktadır. Bu, kimlikle ilgili bilgilerinizi kontrol edemeyeceğiniz veya kişisel olarak tanımlanabilir bilgilere (PII) kimin erişebileceğine ve bu tarafların ne kadar erişime sahip olduğuna karar veremeyeceğiniz anlamına gelir. + +Bu sorunları çözmek için Ethereum gibi halka açık blok zincirler üzerine inşa edilmiş merkeziyetsiz kimlik sistemlerimiz var. Merkeziyetsiz kimlik, bireylerin kimlikle ilgili bilgilerini yönetmelerine olanak tanır. Merkeziyetsiz kimlik çözümleriyle, hizmet sağlayıcılar veya hükûmetler gibi merkezi yetkililere güvenmeden tanımlayıcılar oluşturabilir ve tasdiklerinizi _talep edebilir_ ve _tutabilirsiniz._ + +## Kimlik nedir? {#what-is-identity} + +Kimlik, bir bireyin benzersiz özelliklerle tanımlanan benlik duygusu anlamına gelir. Kimlik, bir _birey_, yani ayrı bir insan varlığı anlamına gelir. Kimlik ayrıca bir kuruluş veya otorite gibi diğer insan dışı varlıklara da atıfta bulunabilir. + +## Tanımlayıcılar nedir? {#what-are-identifiers} + +Tanımlayıcı, belirli bir kimliğe veya kimliklere işaretçi olarak işlev gören bir bilgi parçasıdır. Ortak tanımlayıcılar şunları içerir: + +- İsim +- Sosyal güvenlik numarası/vergi numarası +- Cep telefonu numarası +- Doğum tarihi ve yeri +- Dijital kimlik bilgileri, ör. e-posta adresleri, kullanıcı adları, avatarlar + +Bu geleneksel tanımlayıcı örnekleri merkezi kuruluşlar tarafından düzenlenir, tutulur ve kontrol edilir. İsminizi değiştirmek için devletinizden veya kullanıcı adınızı değiştirmek için bir sosyal medya platformundan izin almanız gerekir. + +## Tasdik nedir? {#what-are-attestations} + +Tasdik, bir kurum tarafından başka bir kurum hakkında bulunulan bir iddiadır. Amerika Birleşik Devletleri'nde yaşıyorsanız Motorlu Taşıtlar Dairesi (bir kurum) tarafından size verilen sürücü belgesi, sizin (başka bir kurum) yasal olarak araba kullanma iznine sahip olduğunuzu kanıtlar. + +Tasdikler tanımlayıcılardan farklıdır. Bir tasdik, belirli bir kimliğe atıfta bulunmak için tanımlayıcılar _içerir_ ve bu kimlikle ilgili bir nitelik hakkında bir iddiada bulunur. Yani, ehliyetiniz tanımlayıcılara (isim, doğum tarihi, adres) sahiptir, ancak aynı zamanda yasal araç kullanma hakkınızla ilgili bir tasdiktir. + +### Merkeziyetsiz tanımlayıcılar nelerdir? {#what-are-decentralized-identifiers} + +Yasal isminiz, e-posta adresiniz gibi geleneksel tanımlayıcılar, üçüncü taraflara (hükümet veya e-posta servis sağlayıcılar) bağlıdır. Merkeziyetsiz tanımlayıcılar (MT'ler) farklıdır. Bunlar çıkarılmaz, yönetilmez veya merkezi bir kuruluş tarafından kontrol edilmez. + +Merkeziyetsiz tanımlayıcılar bireyler tarafından çıkarılır, tutulur ve kontrol edilir. Bir [Ethereum hesabı](/developers/docs/accounts/) merkeziyetsiz tanımlayıcının örneğidir. Kimseden izin almadan veya merkezi bir depolamaya ihtiyaç duymadan istediğiniz kadar hesap oluşturabilirsiniz. + +Merkeziyetsiz tanımlayıcılar dağıtık defterlerde (blok zincirler) veya eşler arası ağlarda depolanır. Bu MT'leri [küresel olarak eşsiz, yüksek kullanımda bile çözümlenebilir ve kriptografik olarak doğrulanabilir yapar](https://w3c-ccg.github.io/did-primer/). Merkeziyetsiz bir tanımlayıcı; kişiler, kuruluşlar veya devlet kurumları dahil olmak üzere farklı varlıklarla ilişkilendirilebilir. + +## Merkeziyetsiz tanımlayıcıları mümkün kılan nedir? {#what-makes-decentralized-identifiers-possible} + +### 1. Açık Anahtar Altyapısı (AAA) {#public-key-infrastructure} + +Açık Anahtar altyapısı (AAA) bir kuruluş veya birey için bir [açık anahtar](/glossary/#public-key) ve bir de [özel anahtar](/glossary/#private-key) oluşturan güvenlik önlemidir. Açık anahtar kriptografisi blok zincir ağlarında kullanıcı hesaplarını ve dijital varlıkların mülkiyetini doğrulamak için kullanılır. + +Bazı merkeziyetsiz tanımlayıcıların, (Ethereum hesabı gibi) açık ve özel anahtarları vardır. Açık anahtar hesabın yöneticisini tanımlar, özel anahtarsa bu hesap için mesajları imzalayıp şifrelerini çözebilir. AAA, tüm iddiaları doğrulamak için [kriptografik imzalar](https://andersbrownworth.com/blockchain/public-private-keys/) kullanarak varlıkların kimliğini doğrulamak ve taklitçiliği ve sahte kimliklerin kullanımını önlemek adına gereken kanıtları sağlar. + +### 2. Merkeziyetsiz veri depoları {#decentralized-datastores} + +Bir blok zincir açık, güvensiz (güvene ihtiyaç duymayan) ve merkeziyetsiz veri deposu olarak hizmet eder. Açık blok zincirlerin varlığı, tanımlayıcıların merkezi kayıtlarda tutulma ihtiyacını ortadan kaldırır. + +Eğer bir merkeziyetsiz tanımlayıcının geçeriliğinin kontrol edilmesi gerekirse blok zincirde karşılığı olan açık anahtara bakılabilir. Bu üçüncü tarafların doğrulamalarının gerektiği geleneksel tanımlayıcılardan farklıdır. + +## Merkeziyetsiz tanımlayıcılar ve tasdikler merkeziyetsiz kimliği nasıl mümkün kılar? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} + +Merkeziyetsiz kimlik, kimlikle ilgili bilgilerin kendi kendini kontrol eden, özel ve taşınabilir olması gerektiği, merkeziyetsiz tanımlayıcılar ve onayların birincil yapı taşları olduğu fikridir. + +Merkezi olmayan kimlik bağlamında, tasdikler ([Doğrulanabilir Kimlik Bilgileri](https://www.w3.org/TR/vc-data-model/) olarak da bilinir), ihraççı tarafından yapılan kurcalamaya karşı korumalı, kriptografik olarak doğrulanabilir iddialardır. Bir varlığın (ör. bir kuruluş) verdiği her onay veya Doğrulanabilir Kimlik Bilgisi, MT'leriyle ilişkilendirilir. + +MT'ler blok zincirde depolandığından herkes, verenin Ethereum'daki MT'sini çapraz kontrol ederek bir tasdikin geçerliliğini doğrulayabilir. Esasen, Ethereum blok zinciri, belirli varlıklarla ilişkili MT'lerin doğrulanmasını sağlayan küresel bir dizin gibi davranır. + +Merkeziyetsiz tanımlayıcılar, tasdiklerin kendi kendini kontrol etmesinin ve doğrulanabilir olmasının nedenidir. Düzenleyen artık mevcut olmasa bile, hamil her zaman tasdikin kaynağına ve geçerliliğine dair kanıta sahiptir. + +Merkeziyetsiz tanımlayıcılar, merkeziyetsiz kimlik aracılığıyla kişisel bilgilerin gizliliğini korumak için de çok önemlidir. Örneğin, bir kişi bir tasdik belgesi (sürücü belgesi) sunarsa doğrulayan tarafın kanıttaki bilgilerin geçerliliğini kontrol etmesine gerek yoktur. Bunun yerine doğrulayıcı, kanıtın geçerli olup olmadığını belirlemek için yalnızca tasdikin gerçekliğine ve veren kuruluşun kimliğine ilişkin kriptografik garantilere ihtiyaç duyar. + +## Merkeziyetsiz kimlikte tasdik türleri {#types-of-attestations-in-decentralized-identity} + +Tasdik bilgilerinin Ethereum tabanlı bir kimlik ekosisteminde nasıl depolandığı ve alındığı, geleneksel kimlik yönetiminden farklıdır. Burada, merkeziyetsiz kimlik sistemlerinde tasdiklerin yayınlanması, saklanması ve doğrulanmasına yönelik çeşitli yaklaşımlara genel bir bakış sunulmaktadır: + +### Zincir dışındaki tasdikler {#off-chain-attestations} + +Tasdikleri zincir üstünde tutmanın endişelerinden biri, bireylerin gizli tutmak isteyeceği bilgiler içerebilmeleridir. Ethereum blok zincirinin açık doğası bu gibi tasdiklerin depolanmasını tercih edilmez hale getirmektedir. + +Bu soruna çözüm tasdikleri çıkarıp kullanıcıların zincir dışı dijital cüzdanlarında tutmasıdır. Tasdiklerse çıkaranın zincirde depolanan MT'si ile imzalanacaktır. Bu tasdikler [JSON Web Token'ları](https://en.wikipedia.org/wiki/JSON_Web_Token) olarak kodlanır ve çıkaranın dijital imzasını içerir, bu da zincir dışı iddiaların kolayca doğrulanmasını sağlar. + +Burada, zincir dışı tasdikleri açıklamak için varsayımsal bir senaryo verilmiştir: + +1. Bir üniversite (çıkaran), bir tasdik (dijital akademik sertifika) oluşturur, anahtarları ile imzalar ve Bob'a (kimlik sahibine) verir. + +2. Bob işe başvurur ve akademik niteliklerini işverene kanıtlamak ister ve mobil cüzdanındaki tasdiği paylaşır. Şirket (doğrulayan) tasdiğin geçerliliğini çıkaranın MT'sini (ör. Ethereum'daki açık anahtarını) kontrol ederek doğrulayabilir. + +### Kalıcı erişime sahip zincir dışındaki tasdikler {#offchain-attestations-with-persistent-access} + +Bu düzenleme kapsamında tasdikler JSON dosyalarına dönüştürülür ve zincir dışında depolanır (ideal olarak IPFS veya Swarm gibi [merkeziyetsiz bulut depolama](/developers/docs/storage/) platformlarında). Ancak JSON dosyasının [karması](/glossary/#hash) zincirde depolanır ve MT'nin zincir üztündeki kaydına bağlanır. Bağlantılı MT, tasdiğin çıkaranı veya alıcısı olabilir. + +Bu yaklaşım tasdikleri şifreli ve doğrulanabilir kılarken blok zincir temelli kalıcılığını da sağlar. Ayrıca özel anahtarın sahibi bilginin şifresini açabilidiği için seçici gösterimi de mümkün kılar. + +### Zincir üstündeki tasdikler {#onchain-attestations} + +Zincir üstündeki tasdikler Ethereum blok zincirinde [akıllı sözleşmelerde](/developers/docs/smart-contracts/) tutulur. Akıllı sözleşme (kayıt defteri işlevi görür) tasdiği zincir üstündeki bir kimliğe (açık anahtara) bağlar. + +Burada, zincir üstündeki tasdiklerin uygulamada nasıl çalışabileceğine bir örnek verilmiştir: + +1. Bir şirket (XYZ Şirketi) hisselerini akıllı sözleşme kullanarak satmayı planlıyor ama sadece sabıka kaydı yaptırmış alıcıların alabilmesini istiyor. + +2. XYZ Şirketi Ethereum zinciri üstünde tasik çıkarmak için firmanın sabıka kaydı kontrolleri yapmasını sağlayabilir. Bu tasdik bir kimsenin sabıka kaydı kontrolünden geçtiğini herhangi bir kişisel veri teşhir etmeden onaylar. + +3. Akıllı sözleşme satan hisse senetleri, taranan alıcıların kimlikleri için sicil sözleşmesini kontrol edebilir ve akıllı sözleşmenin kimin hisse satın almasına izin verilip verilmediğini belirlemesini mümkün kılar. + +### Soulbound token'lar ve kimlik {#soulbound} + +[Soulbound token'lar](https://vitalik.ca/general/2022/01/26/soulbound.html) (aktarılamaz NFT'ler), belirli bir cüzdana özgü bilgileri toplamak için kullanılabilir. Bu, başarıları (örneğin, belirli bir çevrimiçi kursu bitirme veya bir oyunda bir eşik puanını geçme) veya topluluk katılımını temsil eden tokenleri içerebilen belirli bir Ethereum adresine bağlı benzersiz bir zincir-üstü kimlik oluşturur. + +## Merkeziyetsiz kimliğin avantajları {#benefits-of-decentralized-identity} + +1. Merkeziyetsiz kimlik, tanımlayıcı bilgilerin bireysel kontrolünü arttırır. Merkeziyetsiz tanımlayıcılar ve tasdikler, merkezi otoritelere veya üçüncü taraflara ihtiyaç duymadan doğrulanabilir. + +2. Merkeziyetsiz kimlik çözümleri güvene dayalı olmayan, sorunsuz ve kullanıcı kimliğini yönetirken ve doğrularken gizliliğini korumayı sağlar. + +3. Merkeziyetsiz kimlik, blok zincir teknolojisinden yararlanır, bu farklı taraflar arasında güven yaratır ve tasdiklerin geçerliliğini kanıtlayan kriptografik garantiler sağlar. + +4. Merkeziyetsiz kimlik, kimlik verilerini taşınabilir kılar. Kullanıcılar tasdikleri ve tanımlayıcıları mobil cüzdanlarında depolayıp istedikleri herhangi bir tarafla paylaşabilirler. Merkeziyetsiz tanımlayıcılar ve tasdikler, veren kuruluşların veritabanında kilitli değildir. + +5. Merkeziyetsiz kimlik ortaya çıkmakta olan sıfır-bilgi teknolojileri ile iyi çalışmalıdır. Bu teknoloji, bireylerin sahip oldukları veya yaptıkları bir şeyin ne olduğunu belirtmeden kanıtlayabilmelerini sağlayacaktır. Bu oylama benzeri uygulamalar için güven ve gizliliği birleştirmenin güçlü bir yolu olabilir. + +6. Merkeziyetsiz kimlik, bir insanın bir sistemi kandırmak veya spamlamak için birden fazla insan gibi davrandığını tespit etmek için anti-Sybil mekanizmalarını mümkün kılar. + +## Merkeziyetsiz kimlik kullanım örnekleri {#decentralized-identity-use-cases} + +Merkeziyetsiz kimliğin birçok potansiyel kullanım örneği vardır: + +### 1. Evrensel girişler {#universal-dapp-logins} + +Merkeziyetsiz kimlik, şifre bazlı giriş yönetmlerinin [merkeziyetsiz doğrulama](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/) ile değiştirilmesine yardımcı olabilir. Hizmet sağlayıcılar, kullanıcılara tasdik verebilir, bu tasdikler bir Ethereum cüzdanında saklanabilir. Bir tasdik örneği, sahibinin çevrimiçi topluluğa erişimini sağlayan bir [NFT](/nft/)'dir. + +[Ethereum ile Oturum Açma](https://login.xyz/) işlevi, sunucuların kullanıcının Ethereum hesabını onaylamasını ve hesap adreslerinden gerekli tasdiği almasına olanak tanır. Bu, kullanıcıların uzun şifreleri ezberlemek zorunda kalmadan platformlara ve web sitelerine erişebileceği ve kullanıcılar için çevrimiçi deneyimi iyileştirebileceği anlamına gelir. + +### 2. KYC kimlik doğrulaması {#kyc-authentication} + +Birçok çevrimiçi hizmeti kullanmak, bireylerin ehliyet veya ulusal pasaport gibi tasdik ve kimlik bilgilerini sağlamasını gerektirir. Ancak bu yaklaşım sorunludur çünkü özel kullanıcı bilgilerinin güvenliği ihlal edilebilir ve hizmet sağlayıcılar tasdiğin gerçekliğini doğrulayamaz. + +Merkeziyetsiz kimlik, şirketlerin geleneksel [Müşterini Tanı (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) süreçlerini atlamalarına ve Doğrulanabilir Kimlik Bilgileri aracılığıyla kullanıcı kimliklerini doğrulamalarına olanak tanır. Bu, kimlik yönetimi maliyetini düşürür ve sahte dokümanların kullanılmasını önler. + +### 3. Oylama ve çevrimiçi topluluklar {#voting-and-online-communities} + +Çevrimiçi oylama ve sosyal medya, merkeziyetsiz kimlik için iki yeni uygulamadır. Çevrimiçi oylama düzenleri, özellikle kötü niyetli aktörler oy vermek için sahte kimlikler oluşturursa manipülasyona açıktır. Bireylerden zincir üstünde tasdikler sunmalarını istemek, çevrimiçi oylama süreçlerinin dürüstlüğünü iyileştirebilir. + +Merkeziyetsiz kimlik, sahte hesaplardan arınmış çevrimiçi topluluklar oluşturmaya yardımcı olabilir. Örneğin, her kullanıcının bot olasılığını azaltarak Ethereum İsim Hizmeti gibi bir zincir üstünde kimlik sistemi kullanarak kimliğini doğrulaması gerekebilir. + +### 4. Sybil'e karşı koruma {#sybil-protection} + +Sybil saldırıları, kişilerin bir sistemi kandırarak etkilerini artırmak için birden fazla kişi olduklarını düşünmesini sağladıkları saldırılardır. [Karesel oylama](https://www.radicalxchange.org/concepts/plural-voting/) kullanan [yetki veren uygulamalar](https://gitcoin.co/grants/) bu Sybil saldırılarına açıktırlar çünkü yetkinin değeri daha çok insan tarafından oylandıkça artar, kullanıcıların katkılarını birden çok kimliğe bölmelerini teşvik eder. Merkeziyetsiz kimlikler, her katılımcının gerçekten insan olduğunu kanıtlama yükünü kaldırarak bunu önlemeye yardımcı olur ve bunu genelde özel bilgileri açığa çıkarmaya gerek duymadan yaparlar. + +## Merkeziyetsiz kimliği kullanın {#use-decentralized-identity} + +Merkeziyetsiz kimlik çözümlerinin temeli olarak Ethereum'u kullanan çok sayıda iddialı proje var: + +- **[Ethereum İsim Servisi (ENS)](https://ens.domains/)** - _Ethereum cüzdan adresleri, içerik karmaları ve metaveriler için zincir üstünde, makine tarafından okunabilen, merkeziyetsiz isimlendirme sistemi._ +- **[SpruceID](https://www.spruceid.com/)** - _Kullanıcıların üçüncü taraf hizmetlerine güvenmek yerine Ethereum hesapları ve ENS profilleri ile dijital kimliği kontrol etmelerini sağlayan merkeziyetsiz bir kimlik projesi._ +- **[Ethereum Tasdik Hizmeti (EAS)](https://attest.sh/)** - _Her şey hakkında zincir üstünde veya dışında tasdik etmek için merkeziyetsiz bir ledger'dır/protokoldür._ +- **[Proof of Humanity](https://www.proofofhumanity.id)** - _Proof of Humanity (veya PoH) Ethereum üzerine inşa edilmiş bir sosyal kimlik doğrulama sistemidir._ +- **[BrightID](https://www.brightid.org/)** - _Bir sosyal grafiğin oluşturulması ve analizi yoluyla kimlik doğrulamasını yeniden düzenlemeyi amaçlayan merkeziyetsiz, açık kaynaklı bir sosyal kimlik ağı._ +- **[Proof-of-personhood Passport](https://proofofpersonhood.com/)** - _Merkezi olmayan bir dijital kimlik toplayıcısı._ + +## Daha fazla okuma {#further-reading} + +### Makaleler {#articles} + +- [Blockchain Use Cases: Blockchain in Digital Identity](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ +- [What is Ethereum 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) — _Emmanuel Awosika_ + +### Videolar {#videos} + +- [Decentralized Identity (Bonus Livestream Session)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Andreas Antonopoulos'tan merkezi olmayan kimlik üzerine harika bir açıklayıcı video_ +- [Sign In with Ethereum and Decentralized Identity with Ceramic, IDX, React, and 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _Nader Dabit tarafından Ethereum cüzdanı kullanarak bir profili oluşturmak, okumak ve güncellemek için bir kimlik yönetim sistemi oluşturmaya yönelik YouTube eğitimi_ +- [BrightID - Decentralized Identity on Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _Ethereum için merkeziyetsiz bir kimlik çözümü olan BrightID'yi tartışan Bankless podcast bölümü_ +- [The Off Chain Internet: Decentralized Identity & Verifiable Credentials](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — Evin McMullen tarafından yapılan EthDenver 2022 sunumu + +### Topluluklar {#communities} + +- [ERC-725 Alliance on GitHub](https://github.com/erc725alliance) — _Ethereum blok zincirinde kimlik yönetimi için ERC725 standardının destekçileri_ +- [SpruceID Discord server](https://discord.com/invite/Sf9tSFzrnt) — _Ethereum ile oturum açma üzerinde çalışan meraklılar ve geliştiriciler için topluluk_ +- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Uygulamalar için doğrulanabilir veriler için bir çerçeve oluşturmaya katkıda bulunan bir geliştiriciler topluluğu_ diff --git a/public/content/translations/tr/defi/index.md b/public/content/translations/tr/defi/index.md new file mode 100644 index 00000000000..68d03d5d184 --- /dev/null +++ b/public/content/translations/tr/defi/index.md @@ -0,0 +1,352 @@ +--- +title: Merkeziyetsiz finans (DeFi) +description: Ethereum'da DeFi'ye genel bakış +lang: tr +template: use-cases +emoji: ":money_with_wings:" +image: /use-cases/defi.png +alt: Lego parçalarından yapılmış bir Eth logosu. +sidebarDepth: 2 +summaryPoint1: Mevcut finansal sisteme küresel ve açık bir alternatif. +summaryPoint2: Ödünç almanıza, tasarruf etmenize, yatırım yapmanıza, ticaret yapmanıza ve daha pek çok şeye olanak veren ürünler. +summaryPoint3: Herkesin programlayabileceği açık kaynak teknolojisine dayalıdır. +--- + +DeFi, şeffaf olmayan, sıkı bir şekilde kontrol edilen ve onlarca yıllık altyapı ve süreçler tarafından bir arada tutulan bir sisteme alternatif olarak internet çağı için oluşturulmuş açık ve küresel bir finansal sistemdir. Paranız üzerinde kontrol ve görünürlük sağlar. Küresel pazarlara erişim sağlar ve yerel para biriminize veya bankacılık seçeneklerine alternatifler sunar. DeFi ürünleri, internet bağlantısı olan herkese finansal hizmetler sunar ve büyük ölçüde kullanıcılarına aittirler ve kullanıcılar tarafından sürdürülürler. Şimdiye kadar, DeFi uygulamalarından on milyarlarca dolar değerinde kripto para aktı ve bu miktar her geçen gün artıyor. + +## DeFi nedir? {#what-is-defi} + +DeFi, Ethereum kullanabilen herkesin, yani internet bağlantısı olan herkesin erişebildiği finansal ürünler ve hizmetler için toplu bir terimdir. DeFi ile piyasalar her zaman açıktır ve ödemeleri engelleyebilecek veya herhangi bir şeye erişiminizi engelleyebilecek merkezi bir otorite yoktur. Önceden yavaş olan ve insan hatası riski taşıyan hizmetler, herkesin denetleyip inceleyebileceği bir kodla yönetildikleri için artık otomatik ve daha güvenlidir. + +Borç verebileceğiniz, ödünç alabileceğiniz, uzun/kısa pozisyonlara girebileceğiniz, faiz kazanabileceğiniz ve daha fazlasını yapabileceğiniz gelişen bir kripto ekonomisi var. Kripto meraklısı Arjantinliler, felç edici enflasyondan kaçmak için DeFi'yi kullandılar. Şirketler, çalışanlarına ücretlerini gerçek zamanlı olarak aktarmaya başladı. Hatta bazı insanlar herhangi bir kişisel kimlik belgesine ihtiyaç duymadan milyonlarca dolar değerinde kredi çekip ödediler. + + + +## Geleneksel finansa karşı DeFi {#defi-vs-tradfi} + +DeFi'nin potansiyelini görmenin en iyi yollarından biri, bugün var olan sorunları anlamaktır. + +- Bazı kişilere banka hesabı oluşturma veya finansal hizmetleri kullanma izni verilmez. +- Finansal hizmetlere erişim eksikliği, insanların istihdam edilebilir olmalarını engelleyebilir. +- Finansal hizmetler ödeme almanızı engelleyebilir. +- Finansal hizmetlerin gizli bir ücreti, kişisel verilerinizdir. +- Hükümetler ve merkezi kurumlar piyasaları istedikleri zaman kapatabilirler. +- İşlem saatleri genelde belirli bir saat diliminin iş saatleriyle sınırlıdır. +- Para transferleri içsel insan süreçleri nedeniyle günler alabilir. +- Aracı kurumların pay almaya ihtiyacı olduğu için finansal hizmetler için bir ücret bulunur. + +### Bir karşılaştırma {#defi-comparison} + +| DeFi | Geleneksel finans | +| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | +| Paranızı siz saklarsınız. | Paranız şirketler tarafından saklanır. | +| Paranızın nereye gittiğini ve nasıl harcandığını siz kontrol edersiniz. | Borç vermesi riskli olan kişilere borç vermek gibi paranızı yanlış şekilde yönetmemeleri için şirketlere güvenmelisiniz. | +| Para transferleri dakikalar içinde gerçekleşir. | Manuel işlemler nedeniyle ödemeler günler sürebilmektedir. | +| İşlem etkinliği takma addır. | Finansal etkinlik, kimliğinizle sıkı sıkıya bağlıdır. | +| DeFi herkese açıktır. | Finansal hizmetlerden yararlanmak için başvurmanız gerekir. | +| Piyasalar her zaman açıktır. | Çalışanların molaya ihtiyacı olduğu için piyasalar kapanır. | +| Şeffaflık üzerine kurulmuştur: Herkes bir ürünün verilerine bakabilir ve sistemin nasıl çalıştığını inceleyebilir. | Finansal kurumlar kapalı kutulardır: Kredi geçmişlerini, yönetilen varlıklarının kaydını vb. görmeyi talep edemezsiniz. | + + + DeFi uygulamalarını keşfedin + + +## Bitcoin ile başladı... {#bitcoin} + +Bitcoin, birçok yönden ilk DeFi uygulamasıydı. Bitcoin, değere gerçekten sahip olmanızı, onu kontrol etmenizi ve dünyanın her yerine göndermenizi sağlar. Bunu, birbirine güvenmeyen çok sayıda insanın, güvenilir bir aracıya ihtiyaç duymadan bir hesap defteri üzerinde anlaşmaya varması için bir yol sağlayarak yapar. Bitcoin herkese açıktır ve hiç kimsenin kurallarını değiştirme yetkisi yoktur. Bitcoin'in kıtlığı ve açıklığı gibi kuralları teknolojinin içine yazılmıştır. Geleneksel finans sisteminde hükümetler, paranızın değerini düşürecek paralar basabilir ve şirketler pazarları kapatabilir. + +Ethereum bunun üzerine kurulu. Bitcoin gibi, kurallar sizin aleyhinize değişemez ve herkesin erişimi vardır. Ama aynı zamanda [akıllı sözleşmeler](/glossary#smart-contract) kullanarak bu dijital parayı programlanabilir hâle getirir, böylece değer depolamanın ve göndermenin ötesine geçebilirsiniz. + + + +## Programlanabilir para {#programmable-money} + +Bu kulağa tuhaf geliyor... "Neden paramı programlamak isteyeyim ki"? Bununla birlikte, bu daha çok Ethereum'daki token'ların varsayılan bir özelliğidir. Herkes ödemelerin içine mantık programlayabilir. Böylece Bitcoin'in kontrolünü ve güvenliğini finans kurumlarının sunduğu hizmetler ile karıştırarak elde edebilirsiniz. Bu, borç verme ve borç alma, ödemeleri planlama, endeks fonlarına yatırım yapma ve daha fazlası gibi Bitcoin ile yapamayacağınız şeyleri kripto para birimleriyle yapmanızı sağlar. + + +
Ethereum'da yeniyseniz denemek için DeFi uygulamalarına yönelik önerilerimizi keşfedin.
+ + DeFi uygulamalarını keşfet + +
+ +## DeFi ile ne yapabilirsiniz? {#defi-use-cases} + +Çoğu finansal hizmetin merkezi olmayan bir alternatifi var. Ancak Ethereum, tamamen yeni olan finansal ürünler yaratmak için fırsatlar da yaratıyor. Bu sürekli büyüyen bir liste. + +- [Dünyanın her yerine para gönderin](#send-money) +- [Dünya çapında para akışı sağlayın](#stream-money) +- [Sabit para birimlerine erişin](#stablecoins) +- [Teminat ile borç alın](#lending) +- [Teminatsız borç alın](#flash-loans) +- [Kripto biriktirmeye başlayın](#saving) +- [Token ticareti yapın](#swaps) +- [Portföyünüzü büyütün](#investing) +- [Fikirlerinizi fonlayın](#crowdfunding) +- [Sigorta satın alın](#insurance) +- [Portföyünüzü yönetin](#aggregators) + + + +### Dünyanın her yerine çabucak para gönderin {#send-money} + +Bir blok zinciri olarak Ethereum, işlemleri güvenli ve küresel bir şekilde göndermek için tasarlanmıştır. Bitcoin gibi, Ethereum da dünyanın her yerine para göndermeyi bir e-posta göndermek kadar kolay hâle getiriyor. Cüzdanınızdan alıcınızın [ENS adını](/nft/#nft-domains) (bob.eth gibi) veya hesap adresini girdikten sonra ödemeniz (genellikle) dakikalar içinde doğrudan alıcıya gidecektir. Ödeme göndermek veya almak için bir [cüzdan](/wallets/) gerekir. + + + Ödeme dApp'lerini gör + + +#### Dünya çapında para akışı sağlayın... {#stream-money} + +Ayrıca Ethereum üzerinden para akışı da yapabilirsiniz. Bu, birisine maaşını saniyede ödemenize izin vererek, ihtiyaç duyduklarında paralarına erişmelerini sağlar. Ya da anında depo veya elektrikli scooter gibi bir şeyler kiralayın. + +Ve değerinin değişebileceğinden dolayı [ETH](/eth/) göndermek veya akışı yapmak istemiyorsanız, Ethereum'da alternatif para birimleri vardır: sabit paralar. + + + +### Stabil para birimlerine erişin {#stablecoins} + +Kripto para birimi volatilitesi, birçok finansal ürün ve genel harcama için bir sorundur. DeFi topluluğu bunu sabit paralarla çözdü. Değerleri, genellikle dolar gibi popüler bir para birimi olan başka bir varlığa sabitlenir. + +Dai veya USDC gibi paralar, dolara birkaç sent kadar yakın bir değere sahiptir. Bu, onları kazanç veya perakende satış için mükemmel kılar. Latin Amerika'daki birçok insan, devlet tarafından verilen para birimleriyle ilgili büyük bir belirsizlik döneminde birikimlerini korumanın bir yolu olarak sabit paraları kullandı. + + + Sabit paralar hakkında daha fazlası + + + + +### Borçlanma {#lending} + +Merkezi olmayan sağlayıcılardan borç para almanın iki ana çeşidi vardır. + +- Eşler arası, yani borç alan bir kişi belirli bir borç verenden doğrudan borç alır. +- Borç verenlerin, borç alacak kişilerin borç alabileceği bir havuza fon (likidite) sağladığı havuz tabanlı çeşit. + + + Borç alma dapp'leri gör + + +Merkezi olmayan bir borç veren kullanmanın birçok avantajı vardır... + +#### Gizlilikle borçlanma {#borrowing-privacy} + +Bugün, borç vermek ve borç almak, ilgili kişilerin etrafında dönmektedir. Bankaların, borç vermeden önce bir krediyi geri ödeme olasılığınız olup olmadığını bilmesi gerekir. + +Merkezi olmayan borç verme, tarafların kendilerini tanımlamasına gerek kalmadan çalışır. Böylece, borç alan kişi kredisini geri ödemezse kredi verenin otomatik olarak alacağı bir teminat sunulmuş olur. Bazı borç verenler, NFT'leri bile teminat olarak kabul ederler. NFT'ler, bir tablo gibi benzersiz bir varlığın tapusudur. [NFT'ler hakkında daha fazla bilgi](/nft/) + +Bu, kredi kontrolü olmadan veya özel bilgileri teslim etmeden borç para almanızı sağlar. + +#### Küresel fonlara erişim {#access-global-funds} + +Merkezi olmayan bir borç veren kullandığınızda, yalnızca seçtiğiniz banka veya kurumun gözetimindeki fonlara değil, dünyanın her yerinden yatırılan fonlara erişebilirsiniz. Bu, kredileri daha erişilebilir hâle getirir ve faiz oranlarını iyileştirir. + +#### Vergi açısından verimlilik {#tax-efficiencies} + +Borçlanma, ETH'nizi satmanıza (vergiye tabi bir eylem) gerek kalmadan ihtiyacınız olan fonlara erişmenizi sağlayabilir. Bunun yerine, bir sabit para kredisi için teminat olarak ETH'yi kullanabilirsiniz. Bu, size ihtiyacınız olan nakit akışını sağlar ve ETH'nizi korumanıza izin verir. Sabit paralar, ETH gibi değerlerinde dalgalanma olmadığı için nakit ihtiyacınız olduğunda çok daha iyi olan token'lardır. [Sabit paralar hakkında daha fazla bilgi](#stablecoins) + +#### Hızlı krediler (flash loan) {#flash-loans} + +Hızlı krediler, teminat olmadan veya herhangi bir kişisel bilgi vermeden borçlanmanıza izin veren, merkezi olmayan kredilendirmenin daha deneysel bir şeklidir. + +Şu anda teknik olmayan kişiler için geniş çapta erişilebilir değiller ancak gelecekte herkes için neyin mümkün olabileceğine dair ipuçları veriyorlar. + +Kredinin aynı işlem içerisinde alınıp geri ödenmesi esasına göre çalışır. Geri ödenemezse, işlem hiçbir şey olmamış gibi geri döner. + +Genellikle kullanılan fonlar likidite havuzlarında (borçlanma için kullanılan büyük fon havuzları) tutulur. Belirli bir anda kullanılmıyorlarsa, bu, birisinin bu fonları ödünç alması, onlarla iş yapması ve kelimenin tam anlamıyla ödünç alındıkları anda tam olarak geri ödemesi için bir fırsat yaratır. + +Bu, çok özel bir işlem için çok fazla mantığın dahil edilmesi gerektiği anlamına gelir. Basit bir örnek: Fiyatın daha yüksek olduğu farklı bir borsada satmak için bir varlıktan tek bir fiyat üzerinden olabildiğince borçlanmak için hızlı kredi kullanan birisi. + +Yani tek bir işlemde aşağıdakiler gerçekleşir: + +- A borsasından 1,00 ABD Doları karşılığında X miktarda $asset alırsınız +- B borsasında 1,10 ABD Doları karşılığında X $asset satarsınız +- A borsasına krediyi geri ödersiniz +- İşlem ücreti hariç kârı alırsınız + +B borsasının arzı aniden düşerse ve kullanıcı orijinal krediyi karşılayacak kadar satın alamazsa, işlem başarısız olur. + +Yukarıdaki örneği geleneksel finans dünyasında yapabilmek için çok büyük miktarda paraya ihtiyacınız var. Bu para kazanma stratejilerine yalnızca önceden bir servete sahip olanlar erişebilir. Hızlı krediler, paraya sahip olmanın para kazanmak için mutlaka bir ön koşul olmadığı bir geleceğe bir örnektir. + +[Hızlı krediler hakkında daha fazla bilgi](https://aave.com/flash-loans/) + + + +### Kripto ile biriktirmeye başlayın {#saving} + +#### Borç Verme {#lending} + +Borç vererek kripto paranızdan faiz kazanabilir ve fonlarınızın gerçek zamanlı olarak büyümesini sağlayabilirsiniz. Şu anda faiz oranları, yerel bankanızda elde edebileceğinizden çok daha yüksek (eğer bir bankaya erişebilecek kadar şanslıysanız). İşte bir örnek: + +- Bir [sabit para](/stablecoins/) olan 100 Dai'nizi Aave gibi bir ürüne borç veriyorsunuz. +- Borç verdiğiniz Dai'nizi temsil eden bir token olan 100 Aave Dai (aDai) alırsınız. +- aDai'niz faiz oranlarına göre artacak ve cüzdanınızdaki bakiyenizin büyüdüğünü görebilirsiniz. APR'ye (yıllık yüzde oran) bağlı olarak, cüzdan bakiyenizde birkaç gün hatta birkaç saat sonra 100.1234 gibi bir tutar görebilirsiniz! +- İstediğiniz zaman aDai bakiyenize eşit miktarda normal Dai çekebilirsiniz. + + + Borç verme uygulamalarına bakın + + +#### Kayıpsız piyangolar {#no-loss-lotteries} + +PoolTogether gibi kayıpsız piyangolar, paradan tasarruf etmenin eğlenceli ve yenilikçi yeni bir yoludur. + +- 100 Dai token'ı kullanarak 100 bilet satın alırsınız. +- 100 biletinizi temsil eden 100 plDai alırsınız. +- Biletlerinizden biri kazanan olarak seçilirse, plDai bakiyeniz ödül havuzunun miktarı kadar artacaktır. +- Kazanamazsanız, 100 plDai'niz gelecek haftanın çekilişine aktarılır. +- İstediğiniz zaman plDai bakiyenize eşit miktarda normal Dai çekebilirsiniz. + +Ödül havuzu, yukarıdaki borç verme örneğinde olduğu gibi, bilet yatırmalarının borç verilmesiyle elde edilen tüm faiz tarafından oluşturulur. + + + PoolTogether'ı deneyin + + + + +### Takas token'ları {#swaps} + +Ethereum'da binlerce token var. Merkeziyetsiz borsalar (DEX'ler), istediğiniz zaman farklı token'larla işlem yapmanızı sağlar. Varlıklarınızın kontrolünü asla bırakmazsınız. Bu, farklı bir ülkeyi ziyaret ederken bir döviz bürosu kullanmak gibidir. Ancak DeFi sürümü asla kapanmaz. Piyasalar 7/24, yılda 365 gün açıktır ve teknoloji, her zaman bir ticareti kabul edecek birinin olacağını garanti ediyor. + +Örneğin, kayıpsız piyango PoolTogether'ı (yukarıda açıklanmıştır) kullanmak istiyorsanız, Dai veya USDC gibi bir token'a ihtiyacınız olacaktır. Bu DEX'ler, ETH'nizi bu token'larla değiştirmenize ve işiniz bittiğinde tekrar geri almanıza olanak tanır. + + + Token borsalarını gör + + + + +### Gelişmiş ticaret {#trading} + +Biraz daha fazla kontrol isteyen borsa kullanıcıları için daha gelişmiş seçenekler bulunuyor. Limit emirleri, vadesizler, marj ticareti ve daha fazlası mümkündür. Merkezi olmayan ticaret ile küresel likiditeye erişirsiniz, piyasa asla kapanmaz ve varlıklarınızın kontrolü her zaman sizde olur. + +Merkezi bir borsa kullandığınızda, varlıklarınızı ticaretten önce yatırmanız ve varlıklarınızı koruması için merkezi borsaya güvenmeniz gerekir. Merkezi borsalar hacker'lar için önemli hedefler olduğundan varlıklarınız yatırıldıktan sonra risk altındadır. + + + Ticaret dapp'lerini gör + + + + +### Portföyünüzü büyütün {#investing} + +Ethereum'da, seçtiğiniz bir stratejiye dayalı olarak portföyünüzü büyütmeye çalışacak fon yönetimi ürünleri bulunmaktadır. Bu otomatiktir, herkese açıktır ve kârınızdan pay alan bir insan yöneticiye ihtiyaç duymaz. + +İyi bir örnek: [DeFi Pulse Index fonu (DPI)](https://defipulse.com/blog/defi-pulse-index/). Bu, sizin portföyünüzün her zaman [piyasa değerine göre en iyi DeFi token'larını](https://www.coingecko.com/en/defi) içermesini sağlamak için otomatik olarak yeniden dengelenen bir fondur. Hiçbir zaman herhangi bir ayrıntıyı yönetmek zorunda kalmazsınız ve istediğiniz zaman fondan çıkabilirsiniz. + + + Yatırım dapp'lerini gör + + + + +### Fikirlerinizi fonlayın {#crowdfunding} + +Ethereum, kitle fonlaması için ideal bir platformdur: + +- Potansiyel fon sağlayıcılar her yerden gelebilir: Ethereum ve token'ları, dünyanın dört bir yanındaki insanlara açıktır. +- Şeffaf olduğu için fon toplayanlar ne kadar para toplandığını kanıtlayabilir. Daha sonra fonların nasıl harcandığını bile takip edebilirsiniz. +- Fon toplayanlar, örneğin belirli bir son tarih ve karşılanmayan minimum tutar varsa otomatik geri ödemeler ayarlayabilir. + + + Kitle fonlaması dapp'lerini gör + + +#### İkinci dereceden finansman {#quadratic-funding} + +Ethereum açık kaynaklı bir yazılımdır ve şimdiye kadar yapılan çalışmaların çoğu topluluk tarafından fonlanmıştır. Bu, ilginç bir yeni fon yaratma modelinin büyümesine yol açtı: ikinci dereceden finansman. Bu, gelecekte her tür kamu malını finanse etme şeklimizi iyileştirme potansiyeline sahiptir. + +İkinci dereceden finansman, en benzersiz talebe sahip projelerin en yüksek finansmanı almasını sağlar. Başka bir deyişle, çoğu insanın hayatını iyileştirecek projeler. Şöyle çalışır: + +1. Bağışlanan fonların oluşturduğu bir eşleştirme havuzu bulunur. +2. Bir kamu fonlaması turu başlar. +3. İnsanlar bir miktar para bağışlayarak bir projeye olan taleplerini belirtebilirler. +4. Tur bittiğinde, eşleştirme havuzu projelere dağıtılır. En benzersiz talebe sahip olanlar, eşleştirme havuzdan en yüksek tutarı alır. + +Bu, 1 dolarlık 100 bağışa sahip olan A Projesi'nin, tek bir 10.000 dolarlık bağışa sahip olan B Projesi'nden daha fazla fon alabilmesi anlamına gelir (eşleştirme havuzunun boyutuna bağlı olarak). + +[İkinci dereceden finansman hakkında daha fazla bilgi](https://wtfisqf.com) + + + +### Sigorta {#insurance} + +Merkezi olmayan sigorta; sigortayı daha ucuz, ödemesi daha hızlı ve daha şeffaf hâle getirmeyi amaçlar. Daha fazla otomasyonla, kapsama alanı daha ekonomiktir ve ödemeler çok daha hızlıdır. Tazminatınıza karar vermek için kullanılan veriler tamamen şeffaftır. + +Ethereum ürünleri, herhangi bir yazılım gibi, hatalardan ve açıklardan zarar görebilir. Dolayısıyla şu anda bu alandaki birçok sigorta ürünü, kullanıcılarını fon kaybına karşı korumaya odaklanıyor. Ancak hayatın karşımıza çıkarabileceği her şeyi kapsamaya başlayan projeler mevcuttur. Güzel bir örnek: [Kenya'daki küçük çiftçileri kuraklık ve sele karşı korumayı](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc) amaçlayan Etherisc'in Hasat teminatı. Merkezi olmayan sigorta, genellikle geleneksel sigortadan fiyatlandırılan çiftçiler için daha ucuz teminat sağlayabilir. + + + Sigorta dapp'lerini gör + + + + +### Toplayıcılar ve portföy yöneticileri {#aggregators} + +Bu kadar çok şey olurken, tüm yatırımlarınızı, kredilerinizi ve ticaretlerinizi takip etmenin bir yoluna ihtiyacınız olacak. Tüm DeFi aktivitelerinizi tek bir yerden koordine etmenize izin veren bir dizi ürün var. Bu, DeFi'nin açık mimarisinin güzelliğidir. Ekipler, ürünler arasında sadece bakiyelerinizi görmenin ötesinde ürünlerin özelliklerini de kullanabileceğiniz arayüzler oluşturabilir. DeFi keşfederken bunu faydalı bulabilirsiniz. + + + Portföy dapp'lerini gör + + + + +## DeFi nasıl çalışır? {#how-defi-works} + +DeFi, aracılara ihtiyaç duymayan hizmetler sağlamak için kripto para birimleri ve akıllı sözleşmeler kullanır. Günümüz finans dünyasında, finansal kurumlar işlemlerin garantörü olarak hareket etmektedir. Bu, bu kurumlara muazzam bir güç verir çünkü paranız onların üzerinden aktarılır. Ayrıca dünya çapında milyarlarca insan bir banka hesabına bile erişemiyor. + +DeFi'de, işlemdeki finansal kurumun yerini bir akıllı sözleşme alır. Akıllı sözleşme, para tutabilen ve belirli koşullara göre gönderebilen/geri ödeyebilen bir tür Ethereum hesabıdır. Kullanıma girdikten sonra hiç kimse bu akıllı sözleşmeyi değiştiremez: Her zaman programlandığı gibi çalışır. + +Harçlık veya ödenek dağıtmak için tasarlanmış bir sözleşme, her cuma günü A Hesabından B Hesabına para göndermek üzere programlanabilir. Ve bunu yalnızca A Hesabı gerekli fonlara sahip olduğu sürece yapar. Hiç kimse sözleşmeyi değiştiremez ve fonları çalmak için C Hesabını alıcı olarak ekleyemez. + +Sözleşmeler ayrıca herkesin incelemesi ve denetlemesi için halka açıktır. Bu, kötü niyetli sözleşmelerin genellikle oldukça hızlı bir şekilde topluluk incelemesine gireceği anlamına gelir. + +Bu, şu anda Ethereum topluluğunun kod okuyabilen daha teknik bilgiye sahip üyelerine güvenmek gerektiği anlamına geliyor. Açık kaynak tabanlı topluluk, geliştiricileri kontrol altında tutmaya yardımcı olur, ancak akıllı sözleşmelerin okunması daha kolay hâle geldikçe ve kodun güvenilirliğini kanıtlamak için başka yollar geliştirildikçe bu ihtiyaç zamanla azalacaktır. + +## Ethereum ve DeFi {#ethereum-and-defi} + +Ethereum, birkaç nedenden dolayı DeFi için mükemmel bir temeldir: + +- Hiç kimse Ethereum'a veya Ethereum'da bulunan akıllı sözleşmelere sahip değildir: Bu, herkese DeFi kullanma fırsatı verir. Bu aynı zamanda kimsenin kuralları sizin aleyhinize değiştiremeyeceği anlamına gelir. +- DeFi ürünlerinin tümü, perde arkasında aynı dili konuşur: Ethereum. Bu, birçok ürünün sorunsuz bir şekilde birlikte çalıştığı anlamına gelir. Token'ları tek bir platformda borç verebilir ve faiz getiren token'ı tamamen farklı bir uygulamadaki farklı bir pazarda takas edebilirsiniz. Bu, bankanızda sadakat puanlarını bozdurabilmeye benzer. +- Token'lar ve kripto para birimi, paylaşılan bir defter olan Ethereum'da yerleşiktir: İşlemleri ve mülkiyeti takip etmek biraz Ethereum'un işidir. +- Ethereum, eksiksiz bir finansal özgürlük sağlar: Çoğu ürün asla paranızın gözetimini almaz ve kontrolü size bırakır. + +DeFi'yi katmanlar halinde düşünebilirsiniz: + +1. Blok zinciri: Ethereum, işlem geçmişini ve hesapların durumunu içerir. +2. Varlıklar: [ETH](/eth/) ve diğer token'lar (para birimleri). +3. Protokol – [akıllı sözleşmeler](/glossary/#smart-contract) işlevsellik sağlar; örneğin, bu varlıklara merkeziyetsiz borçlanmaya izin veren bir servis sağlar. +4. [Uygulamalar](/dapps/): Protokolleri yönetmek ve bunlara erişmek için kullandığımız ürünler. + +## DeFi oluşturun {#build-defi} + +DeFi, açık kaynaklı bir akımdır. DeFi protokolleri ve uygulamaları; incelemeniz, çatallamanız ve yenilik yapmanız için tamamen açıktır. Bu katmanlı yığın sayesinde (hepsi aynı temel blok zincirini ve varlıkları paylaşır), benzersiz birleşik fırsatların kilidini açmak için protokoller karıştırılabilir ve eşleştirilebilir. + + + Dapp oluşturma hakkında daha fazla bilgi + + +## Daha fazla bilgi {#futher-reading} + +### DeFi verisi {#defi-data} + +- [DeFi Prime](https://defiprime.com/) +- [DeFi Llama](https://defillama.com/) +- [DeFi Oranı](https://defirate.com/) + +### DeFi makaleleri {#defi-articles} + +- [DeFi Başlangıç Rehberi](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, 6 Ocak 2020_ + +### Videolar {#videos} + +- [Finematics - merkeziyetsiz finans eğitimi](https://finematics.com/) – _DeFi ile ilgili Videolar_ +- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _DeFi ile ilgili temel bilgiler: Bu bazen kafa karıştırıcı olan alana giriş yapmak için bilmeniz gereken her şey._ +- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _DeFi nedir?_ + +### Topluluklar {#communities} + +- [DeFi Llama Discord sunucusu](https://discord.gg/buPFYXzDDd) +- [DeFi Pulse Discord sunucusu](https://discord.gg/Gx4TCTk) diff --git a/public/content/translations/tr/deprecated-software/index.md b/public/content/translations/tr/deprecated-software/index.md new file mode 100644 index 00000000000..c86fc8ca212 --- /dev/null +++ b/public/content/translations/tr/deprecated-software/index.md @@ -0,0 +1,428 @@ +--- +title: Kullanımdan kaldırılmış yazılım +description: Geliştiricileri tarafından kullanımdan kaldırılmış yazılım +lang: tr +sidebarDepth: 2 +--- + +# Kullanımdan kaldırılmış yazılım {#summary-deprecated-software} + +Bu, Ethereum ile ilgili kullanımdan kaldırılmış veya artık desteklenmeyen önemli proje ve kaynakların bir listesidir. Kullanımdan kaldırılmış çalışmaları vurgulamak, kullanıcıların işlevsel alternatifleri bulmalarını sağlamak ve kötü amaçlı sürümlerin dağıtılmasını önlemek açısından önemlidir. + +Bu liste topluluğumuz tarafından hazırlanmıştır. Eksik veya yanlış bir şey varsa, lütfen bu sayfayı düzenleyin! + +## İş ispatı {#pow} + +[İş ispatı](/developers/docs/consensus-mechanisms/pow), Ethereum'da Eylül 2022'ye kadar kullanılan bir mutabakat motorudur. Ethereum, [hisse ispatı](/developers/docs/consensus-mechanisms/pos) tabanlı bir mutabakat mekanizmasına geçiş yaptığında kullanımı sona ermiştir. Bu, istemci yazılımının [Ethhash](/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethhash) (madencilik algoritması) ve başlangıçta yürütüm istemcilerinde tümleşik olarak sunulan mutabakat mantığı ve blok yayılım işlevselliğininin tümü dahil olmak üzere iş ispatı madenciliği ile ilgili kısımlarının kullanımdan kaldırılmasıyla gerçekleştirildi. İstemcilerin kendileri değil, bazı temel bileşenleri kullanımdan kaldırılmıştır. İş ispatı kavramı, istemci yazılımının ilgili bileşenlerinin kaldırılmasının yarattığı genel etki sonucunda kullanımdan kaldırılmıştır. + +## Yazılım {#software} + +Bu bölüm, kullanımdan kaldırılmış masaüstü, komut satırı veya sunucu yazılımlarını içerir. Başlıca türleri arasında cüzdanlar, entegre geliştirme ortamları, diller ve Ethereum istemcileri yer alır. Kullanımdan kaldırılmış yazılımı, https://github.com/ethereum adresi altında barındırılan bir depo gibi orijinal kaynaktan geldiğinden emin olmadan yüklememeye dikkat edin. + +### OpenEthereum {#open-ethereum} + +Temmuz 2021'de kullanımdan kaldırılmıştır + +**Özet** + +OpenEthereum, düğüm sayısı bakımından ikinci en büyük Ethereum uygulamasıydı. OpenEthereum, Etherscan ve Gnosis Safe gibi Ethereum'un en büyük kullanıcılarından bazıları için anahtar altyapı parçası olması yönüyle önemli bir rol oynamıştır. İzleme yetenekleri, veri sağlayıcılar için güvenilir ve hızlı senkronizasyon sağlayarak onu diğer istemcilerden öne çıkarmıştır. + +**Arşivler** + +[Arşivlenmiş GitHub deposu](https://github.com/openethereum/openethereum) + +**Tarihçe** + +OpenEthereum, madenciler, hizmet sağlayıcılar ve hızlı senkronizasyon ile maksimum çalışma süresine ihtiyaç duyan borsalar için tasarlanmıştır. OpenEthereum, hızlı ve güvenilir hizmetler için gereken temel altyapıyı sağlamıştır. + +**Alternatifler** + +[Tüm Ethereum yürütüm istemcisi seçeneklerini karşılaştırın](/developers/docs/nodes-and-clients/#execution-clients). + +### Grid {#grid} + +10 Ocak 2020'de kullanımdan kaldırılmıştır + +**Özet** + +Grid; Ethereum, IPFS ve merkeziyetsiz diğer ağlara güvenli bir şekilde erişmenizi sağlayan JavaScript tabanlı bir masaüstü uygulamasıydı. Grid, daha az teknik bilgiye sahip kullanıcıların merkeziyetsiz uygulamalarla güvenli bir şekilde etkileşime girmelerine yardımcı olmak için kullanıcı dostu bir arayüz sunuyordu ve bu da herkes için erişilebilirliği artırıyordu. + +**Arşivler** + +[Arşivlenmiş GitHub deposu](https://github.com/ethereum/grid) + +**Tarihçe** + +Grid, aynı zamanda Mist'in varisi olarak görülebilir. Mist de bağımsız bir JavaScript tabanlı masaüstü uygulamasıydı ve bir Geth düğümü içeriyordu. Grid, cüzdan işlevini kaldırdı ve farklı türde düğümleri çalıştırmaya yönelik eklenti tarzında bir yaklaşım getirdi. + +**Alternatifler** + +[DAppNode](https://dappnode.io/), merkeziyetsiz uygulamaları, P2P istemcilerini ve blokzincir düğümlerini dağıtmaya ve barındırmaya yarayan bir platformdur. + +### Ethereum Studio {#ethereum-studio} + +7 Aralık 2020'de kullanımdan kaldırılmıştır + +**Özet** + +Ethereum Studio, kullanıcıların akıllı sözleşmeler oluşturmasına, test etmesine ve bunlar için ön yüzler geliştirmesine olanak tanıyan web tabanlı bir IDE idi. + +**Arşivler** + +[Arşivlenmiş GitHub deposu](https://github.com/SuperblocksHQ/ethereum-studio) + +**Tarihçe** + +Ethereum Studio, kullanıcılara tümleşik bir Ethereum blokzinciri ve Solidity derleyicisine sahip bir IDE sunmak amacıyla geliştirilmiştir. Bunun yanı sıra, canlı kod düzenlemesi yapma ve bir terminal ihtiyacı olmadan tam merkeziyetsiz uygulamalar çıkarabilme olanağı da sağlamıştır. + +**Alternatifler** + +[Remix](https://remix.ethereum.org/), Solidity geliştirmeleri için alternatif bir web IDE'sidir. Ayrıca [Geliştirici Portalı](/developers/), web ve yerel geliştirme, belgeleme ve daha fazlası için araçlar sunmaktadır. + +### Meteor Dapp Wallet {#meteor-dapp-wallet} + +27 Mart 2019'da kullanımdan kaldırılmıştır + +**Özet** + +Meteor Dapp Wallet, Ethereum hesaplarını yönetmeye ve akıllı sözleşmelerle etkileşime girmeye yarayan bir Ethereum cüzdanı olan Mist'in bir bileşeniydi. Meteor Dapp Wallet web kullanıcı arayüzü, uzun yıllar boyunca "wallet.ethereum.org" alt alan adı olarak barındırılmıştır. + +Ayrıca, Mist Çok İmzalı Sözleşmesi (solidity kodu) de dahil edilmiş ve Meteor Dapp Wallet, bu sözleşmeyi yapılandırmaya ve dağıtmaya yönelik bir kullanıcı arayüzü de sunmuştur. + +**Kullanımdan kaldırılmamıştır: dağıtılmış Mist Çoklu İmzaları** + +Binlerce kullanıcı tarafından Ethereum Ana Ağı'na bayt kodu olarak dağıtılmış olan Mist Çoklu İmzası, olaysız biçimde değerleri depolamak ve yönetmek amacıyla kullanılmaya devam etmektedir. [Bir Mist Çok İmzalı Sözleşmesiyle Etkileşim Kurma](https://support.mycrypto.com/how-to/sending/how-to-interact-with-a-multisig-contract), bu akıllı sözleşmelerin nasıl kullanılacağıyla ilgili iyi bir genel görünüm sunar. + +**Arşivler** + +[Arşivlenmiş GitHub deposu](https://github.com/ethereum/meteor-dapp-wallet) + +**Tarihçe** + +Aşağıda Mist'e göz atın. + +**Alternatifler** + +Ethereum.org'da [Ethereum Cüzdanları](/wallets/) sayfasına göz atın. + +### Mist {#mist} + +27 Mart 2019'da kullanımdan kaldırılmıştır + +**Özet** + +Mist, Electron ile geliştirilmiş ve kullanıcıların Ethereum hesaplarını yönetmesini ve geleneksel internette barındırılan merkeziyetsiz uygulamalarla etkileşime geçmesini sağlayan özelleştirilmiş bir tarayıcıydı. + +**Arşivler** + +[Arşivlenmiş GitHub deposu](https://github.com/ethereum/mist) + +**Tarihçe** + +Mist, Ethereum anahtarlarının nasıl yönetileceğini keşfettiği, kullanıcılara çoklu imzalar gibi finansal araçları tanıttığı ve Web3'ün nasıl çalışacağını gösterdiği için önemli bir erken deneme olmuştur. Ayrıca kullanıcılara, Ethereum anahtarlarını temsil eden şirin ve akılda kalıcı 8 bit stili grafikler olan blokçukları da tanıtmıştır. + +**Alternatifler** + +[MetaMask](https://metamask.io/), Ethereum anahtarlarını yönetmenizi ve merkeziyetsiz uygulamalarla etkileşime geçmenizi sağlayan bir tarayıcı içi cüzdandır. Google Chrome ve Firefox'ta uzantı olarak mevcuttur ve [Brave Tarayıcı](https://brave.com/)'da da bulunur. + +### Mix {#mix} + +11 Ağustos 2016'da kullanımdan kaldırılmıştır + +**Özet** + +Mix, geliştiricilerin Ethereum'da akıllı sözleşme oluşturmasını ve dağıtmasını sağlayan, C++'da yazılmış bir IDE idi. + +**Arşivler** + +[Arşivlenmiş GitHub deposu](https://github.com/ethereum/mix) + +**Tarihçe** + +Mix, Ethereum'la ilgili en eski uygulamalardan biridir. [Devcon0'da Gavin Wood tarafından yapılan bu sunuma](https://www.youtube.com/watch?v=hcP_z_wBlaM) göz atın. + +**Alternatifler** + +[Remix](https://remix.ethereum.org/), Solidity/akıllı sözleşme geliştiriciliği, testleri ve dağıtılması için tarayıcıda barındırılan bir IDE'dir. Bir masaüstü seçeneği de vardır. + +### Minimal {#minimal} + +2020'de kullanımdan kaldırılmıştır. + +**Özet** + +Minimal, Ethereum blokzincirinin Go'da yazılmış modüler bir uygulamasıydı. + +**Arşivler** + +[Arşivlenmiş GitHub deposu](https://github.com/umbracle/minimal) + +**Tarihçe** + +Minimal'in yerini [polgon-sdk](https://github.com/0xPolygon/polygon-edge) almıştır + +### Hyperledger Burrow {#hyperledger-burrow} + +2022'de kullanımdan kaldırılmıştır. + +**Özet** + +Hyperledger Burrow, izin verilmiş bir Ethereum akıllı sözleşme blokzincir düğümüydü. Ethereum EVM'yi ve WASM akıllı sözleşme kodunu, izin verilen sanal makinelerde çalıştırmıştır. + +**Arşivler** + +[Arşivlenmiş GitHub deposu](https://github.com/hyperledger/burrow) + +### Mana-Ethereum {#mana-ethereum} + +**Özet** + +Mana-Ethereum, Elixir kullanılarak geliştirilmiş bir Ethereum istemcisiydi. + +**Arşivler** + +[Arşivlenmiş GitHub deposu](https://github.com/mana-ethereum/mana) + +**Tarihçe** + +Mana-Ethereum'un Github deposu, henüz açık bir şekilde arşivlenmemiştir ancak son giriş 2019'da yapılmıştır. + +### Aleth (cpp-ethereum) {#aleth} + +6 Ekim 2021'de kullanımdan kaldırılmıştır + +**Özet** + +Aleth (önceden cpp-ethereum olarak bilinirdi) C++'da yazılmış bir Ethereum istemcisiydi. + +**Arşivler** + +[Arşivlenmiş GitHub deposu](https://github.com/ethereum/aleth) + +**Tarihçe** + +Aleth, 6 Ekim 2021'de kullanımdan kaldırılmadan önce Ethereum'un en popüler üçüncü istemcisiydi. + +**Alternatifler** + +[Geth](https://geth.ethereum.org/), iyi bilinen alternatif bir Ethereum istemcisidir. + +### Ethereum-H {#ethereum-h} + +**Arşivler** + +Ethereum-H arşivleri GitHub'dan kaldırılmıştır. + +**Tarihçe** + +Ethereum-H, Haskell'de yazılmış bir Ethereum istemcisiydi. 2015 civarında kullanımdan kaldırılmıştır. + +**Alternatifler** + +[Geth](https://geth.ethereum.org/), [Nethermind](http://nethermind.io/), [Besu](https://besu.hyperledger.org/en/stable/) ve [Erigon](https://github.com/ledgerwatch/erigon) uygulanabilir alternatif Ethereum istemcileridir - güncel bir Haskell istemcisi yoktur. + +### ruby-ethereum {#ruby-ethereum} + +**Arşivler** + +[ruby-ethereum GitHub deposu](https://github.com/cryptape/ruby-ethereum) + +**Tarihçe** + +ruby-ethereum, Ruby'de yazılmış bir Ethereum istemcisiydi. 2018 civarında kullanımdan kaldırılmıştır. + +**Alternatifler** + +[Geth](https://geth.ethereum.org/), [Nethermind](http://nethermind.io/), [Besu](https://besu.hyperledger.org/en/stable/) and [Erigon](https://github.com/ledgerwatch/erigon) uygulanabilir alternatif Ethereum istemcileridir. Güncel bir Ruby istemcisi yoktur. + +### Parity {#parity} + +2 Haziran 2020'de kullanımdan kaldırılmıştır + +**Özet** + +Parity, Rust'ta yazılmış bir Ethereum istemcisiydi. + +**Arşivler** + +[Arşivlenmiş GitHub deposu](https://github.com/openethereum/parity-ethereum) + +**Tarihçe** + +Ethereum'un ilk yıllarındaki iki önde gelen uygulanabilir istemciden biri olan (diğeri Geth) Parity, ekosistemin çok önemli bir parçasıydı. 2016'daki Şanghay Saldırıları sırasında Parity, Geth gibi istemciler saldırı tarafından durdurulduğunda Ethereum Ağı'nın çalışmaya devam etmesini sağlamıştır, bu da istemci çeşitliliğinin önemini kanıtlar. + +**Alternatifler** + +[Erigon](https://github.com/ledgerwatch/erigon) (önceden Turbo-Geth diye adlandırılıyordu), Go'da yazılmış, verimlilik cephesindeki yeni nesil bir Ethereum istemcisidir. + +**Not:** _Parity Ethereum istemcisinin yerine geçtiği proje olan [OpenEthereum](https://github.com/openethereum/openethereum)**, o tarihten beri kullanımdan kalkmış durumdadır.**_ + +Ethereum.org'daki ["Kendi Ethereum düğümünüzü programlayın"](/developers/docs/nodes-and-clients/run-a-node/#getting-the-client) kaynağı, bir Ethereum istemcisini indirme, kurma ve çalıştırma bölümlerini kapsar. + +### Trinity {#trinity} + +1 Temmuz 2021'de kullanımdan kaldırılmıştır + +**Özet** + +Trinity, topluluk için bir araştırma ve eğitim aracı olarak hizmet eden python tabanlı bir Ethereum istemcisiydi. Trinity ile ilgisi olan çok sayıda python tabanlı modül, hala aynı takım tarafından yönetilmektedir; bunlara, [Py-EVM](https://github.com/ethereum/py-evm) de dahildir. + +**Arşivler** + +[Arşivlenmiş GitHub deposu](https://github.com/ethereum/trinity) + +**Tarihçe** + +Trinity, python tabanlı ilk Ethereum istemcilerinden biri olan [pyethereum](https://github.com/ethereum/pyethereum/tree/b704a5c6577863edc539a1ec3d2620a443b950fb)'un yerine almıştır. + +**Alternatifler** + +Ethereum.org'daki ["Kendi Ethereum düğümünüzü programlayın"](/developers/docs/nodes-and-clients/run-a-node/#getting-the-client) kaynağı, bir Ethereum istemcisini indirme, kurma ve çalıştırma bölümlerini kapsar. + +[EthereumJS](https://github.com/ethereumjs) projesi de Trinity ile benzer bir araştırma ve eğitim amaçlı kullanım senaryosuna sahiptir. + +## Merkeziyetsiz Uygulamalar ve Hizmetler {#dapps-and-services} + +Bu bölüm, Ethereum Ana Ağı'na ve EVM tabanlı diğer ağlara dağıtılmış olan hizmetlere yöneliktir. Buradaki merkeziyetsiz uygulama ve hizmetlerin bakımsızlık, protokol değişiklikleri, vs. gibi sebeplerden hack'lenmiş ya da güvenlik açıklarına sahip olan DeFi uygulamalarını kapsayabileceğini göz önünde bulundurun. + +### Cover Protokolü {#cover-protocol} + +2021 sonbaharında kapatılmıştır + +**Özet** + +Cover, Ethereum ve diğer EVM tabanlı ağlarda çalışan bir DeFi sigorta protokolüydü. + +**Arşivler** + +[Web sitesi](https://wayback.archive-it.org/17679/20211004074635/https://www.coverprotocol.com/) + +[Medium makaleleri](https://wayback.archive-it.org/17679/20211004074633/https://coverprotocol.medium.com/) + +[Github depoları](https://github.com/CoverProtocol/cover-core-v1) + +[Dokümanlar](https://wayback.archive-it.org/17679/20211004074634/https://docs.coverprotocol.com/) + +### DAO {#the-dao} + +2016 yazında hack'lenmiş ve kapatılmıştır + +**Özet** + +DAO, projelerin fonlanmasını organize etmeye yönelik bir akıllı sözleşme, merkeziyetsiz uygulama ve forumdu. Bir güvenlik açığından faydalanarak ETH'nin çoğu boşaltıldı, bu da DAO'ya yatırmış olanların ETH'lerini geri vermek için topluluk tarafından organize edilen bir sert çatallanmayı beraberinde getirdi. UX ön yüzü ve forum kapatıldı. + +**Arşivler** + +[14 Mayıs 2016 tarihli "daohub.org" İnternet Arşivi](https://web.archive.org/web/20160514105232/https://daohub.org/) + +**Tarihçe** + +DAO başarısız olmasına rağmen, konsept devam ettirildi. DAO için geliştirilmiş temel teknik, sosyal ve yönetişim özellikli model, DeFi, NFT ve proje fonlama topluluklarında yaygın biçimde kullanılmaktadır. + +[ethereum.org'daki "DAO Çatallanması"](/history/#dao-fork) + +["DAO" için Wikipedia girdisi]() + +**Alternatifler** + +[ethereum.org'daki "DAO'lar"](/dao/) + +[MolochDAO](https://www.molochdao.com/) + +[Gitcoin Hibeleri](https://gitcoin.co/grants/) + +### SparkPool {#sparkpool} + +2021 sonbaharında kapatılmıştır + +**Özet** + +Merkezi Hangzhou'da bulunan Sparkpool hizmeti ve topluluğu, dünyanın Ethereum merkezli madencilik havuzlarının en büyüklerinden biriydi. + +**Arşivler** + +**Tarihçe** + +EthFans topluluğu ile ilişkili olan hizmet, 2015'te başlatıldı. Spankpool, yasal düzenlemelerin daha katı hale gelmesinin sonucu olarak 2021 sonbaharında dağıldı. + +**Alternatifler** + +[Ethermine](https://ethermine.org/) + +## Dokümantasyon ve Bilgi Kaynakları {#documentation-and-information-sources} + +Şu anda kaldırılmış ya da mevcut olmasına rağmen sürdürülmeyen sayısız dokümantasyon, makale, öğretici ve forum kaynağı vardır. Önemli olan ya da güncel durumu kullanımdan kaldırılmış olmasına rağmen kafa karışıklığına ya da dolandırıcılık girişimlerine sebep olabilecek birkaç taneyi seçtik. + +### Legacy Wiki ve eth.wiki {#eth-wiki} + +**Özet** + +Legacy Wiki ve eth.wiki, topluluğun geneli için Ethereum Foundation tarafından yönetilen wiki'lerdi. Bunlar, daha çok Ethereum platformunun temel yönleri hakkında detaylı açıklamaları ve teknik yol haritalarının özetlerini barındırmaya yöneliklerdi. + +**Arşivler** + +[eth.wiki için arşivlenmiş GitHub deposu](https://github.com/ethereum/eth-wiki) + +[Legacy Wiki için arşivlenmiş bir GitHub deposu](https://github.com/ethereum/wiki/wiki) + +**Tarihçe** + +Legacy Wiki, bir GitHub wiki'siydi ve teknik içeriklerden (orijinal Ethereum Tanıtım Belgesi de dahil) oluşan erken bir alandı. Ethereum geliştiricileri, zaman içinde kendi dokümantasyonlarını, spesifikasyonlarını ve teknik açıklama çalışmalarını [Dokümanları Okuyun](https://readthedocs.org/) gibi diğer platformlara ve GitHub'da barındırılan içeriklere taşıdılar. + +2019 ve 2020'de eth.wiki, Legacy Wiki'nin yerini aldı ancak katkıda bulunan katılımcılardan oluşan sağlam bir topluluk oluşmadı. + +**Alternatifler** + +Topluluk tarafından yönetilen içerik: [Ethereum.org Web Sitesi](/) + +Ethereum yazılım projeleri, genelde dokümantasyonlarını [Dokümanları Okuyun](https://readthedocs.org/) içinde barındırır + +Github'da barındırılan teknik spesifikasyonlar: [EIP'ler](https://github.com/ethereum/EIPs), [Yürütüm Spesifikasyonları](https://github.com/ethereum/execution-specs), [Mutabakat Spesifikasyonları](https://github.com/ethereum/consensus-specs) + +### forum.ethereum.org {#forum-ethereum-org} + +**Özet** + +Ethereum Topluluk Forumu, Ethereum Foundation tarafından yönetilen ve Vanilla Forums üzerinde barındırılan bir tartışma panosuydu. Bu pano, "forum.ethereum.org" alt etki alanını kullanıyordu. + +**Arşivler** + +Arşiv URL'si: [https://wayback.archive-it.org/16516/20210618210825/https://forum.ethereum.org/](https://wayback.archive-it.org/16516/20210618210825/https://forum.ethereum.org/) + +**Tarihçe** + +Bu Forum, erken dönemlerde Ethereum topluluğunun "resmi" tartışma panosuydu. Forum, [/r/ethereum](https://reddit.com/r/ethereum) ve birkaç Skype kanalı ile birlikte geliştiriciler, tasarımcılar ve idareciler için önemli bir koordinasyon noktasıydı. Yıllar geçtikçe Forumun katılımcıları başka yerlere geçti ve burası daha çok bir madencilik topluluğuna dönüştü. + +**Alternatifler** + +[/r/ethereum](https://reddit.com/r/ethereum) ve çok sayıda DAO Forum ile Discord sunucusu. + +## Gitter Kanalları {#gitter-channels} + +### AllCoreDevs {#allcorewdevs-gitter} + +**Özet** + +AllCoreDevs Gitter, [Ethereum istemcisinin temel geliştiricileri](https://github.com/ethereum/pm/) için herkese açık ana koordinasyon iletişim kanalıydı. + +**Arşivler** + +[ethereum/AllCoreDevs Gitter Kanalı](https://gitter.im/ethereum/AllCoreDevs) + +**Alternatifler** + +Lütfen [EthR&D Discord Sunucusu](https://discord.gg/qHv7AjTDuK)'ndaki "allcoredevs" kanalını kullanın + +### EthereumJS {#ethereumjs-gitter} + +**Özet** + +EthereumJS Gitter, [EthereumJS projesinin](https://ethereumjs.github.io/) herkese açık ana koordinasyon iletişim kanalıydı. + +**Arşivler** + +[ethereum/EthereumJS Gitter Kanalı](https://gitter.im/ethereum/ethereumjs) + +**Alternatifler** + +Lütfen [EthereumJS Discord Sunucusu](https://discord.gg/TNwARpR)'nu kullanın diff --git a/public/content/translations/tr/desci/index.md b/public/content/translations/tr/desci/index.md new file mode 100644 index 00000000000..5ab3870f432 --- /dev/null +++ b/public/content/translations/tr/desci/index.md @@ -0,0 +1,139 @@ +--- +title: Merkeziyetsiz bilim (DeSci) +description: Ethereum üzerindeki merkeziyetsiz bilime genel bakış +lang: tr +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Mevcut bilimsel sisteme küresel, açık bir alternatif. +summaryPoint2: Bilim insanlarının finansman sağlamasına, deneyler yürütmesine, veri paylaşmasına, görüşlerini dağıtmasına ve daha fazlasını yapmalarına olanak tanıyan teknoloji. +summaryPoint3: Açık bilim hareketine dayanır. +--- + +## Merkeziyetsiz bilim (DeSci) nedir? {#what-is-desci} + +Merkeziyetsiz bilim (DeSci), Web3 kullanarak bilimsel bilginin adil ve eşit şekilde finanse edilmesi, oluşturulması, gözden geçirilmesi, kredilendirilmesi, depolanması ve yayılması için kamusal altyapı oluşturma hedefi olan bir harekettir. + +DeSci, bilimsel araştırmalarını açıkça paylaşmaya teşvik edilen bilim insanlarının çalışmalarını kredi almalarına olanak tanıyan ve araştırmaya kolayca erişim sağlayan herkesin katkıda bulunabileceği bir ekosistem oluşturmayı hedefleyen bir harekettir. DeSci, bilimsel bilginin herkes tarafından erişilebilir olması gerektiği ve bilimsel araştırma sürecinin şeffaf olması gerektiği fikrinden yola çıkarak çalışır. Merkeziyetsiz bilim, daha merkeziyetsiz ve dağıtılmış bir bilimsel araştırma modeli yaratmayı amaçlamakta olup, bu sayede sansür ve merkezi otoritelerin kontrolüne daha dirençli hale gelmektedir. Merkeziyetsiz bilim, fonlamanın, bilimsel araçların ve iletişim kanallarının merkeziyetsizleştirilmesiyle yeni ve alışılmadık fikirlerin gelişebileceği bir ortam yaratmayı ummaktadır. + +Merkeziyetsiz bilim, daha çeşitli fon kaynaklarına ( [DAO'lardan](/dao/), [karesel bağışlara](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) kitlesel fonlamalara ve daha fazlasına), daha erişilebilir veri ve yöntemlere olanak tanıyarak ve yeniden üretilebilirlik için teşvikler sağlayarak bu alanda katkıda bulunur. + +### Juan Benet - DeSci Hareketi + + + +## Merkeziyetsiz bilimin, bilimi nasıl geliştirdiği {#desci-improves-science} + +Bilimdeki temel sorunlara dair eksik olan bir liste ve merkeziyetsiz bilimin bu sorunları ele alarak nasıl yardımcı olabileceği + +| **Merkeziyetsiz bilim** | **Geleneksel bilim** | +| --------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| Fonların dağıtımı, ikinci dereceden bağışlar veya DAO'lar gibi mekanizmalar kullanılarak halk tarafından belirlenir. | Küçük, kapalı, merkezi gruplar fonların dağıtımını kontrol eder. | +| Dinamik ekiplerde dünyanın her yerinden meslektaşlarla iş birliği yaparsınız. | Finansman kuruluşları ve yerel kurumlar, iş birliklerinizi sınırlar. | +| Finansman kararları çevrimiçi ve şeffaf bir şekilde alınır. Yeni finansman mekanizmaları araştırılmaktadır. | Finansman kararları, uzun bir geri dönüş süresi ve sınırlı şeffaflık ile alınır. Birkaç finansman mekanizması mevcuttur. | +| Laboratuvar hizmetlerini paylaşmak, Web3 primitifleri kullanılarak daha kolay ve daha şeffaf hale getirilir. | Laboratuvar kaynaklarının paylaşımı genellikle yavaş ve şeffaf değildir. | +| Güven, şeffaflık ve evrensel erişim için Web3 ilkelerini kullanan yeni yayınlama modelleri geliştirilebilir. | Sıklıkla verimsiz, ön yargılı ve sömürücü olarak kabul edilen yerleşik yollarla yayın yapıyorsunuz. | +| Emsal değerlendirme çalışması için token ve itibar kazanabilirsiniz. | Emsal değerlendirme çalışmanız ücretsiz olup, kâr amacı güden yayıncılara fayda sağlar. | +| Oluşturduğunuz fikri mülkiyetin (IP) sahibi sizsiniz ve şeffaf şartlara göre dağıtıyorsunuz. | Kendi kurumunuz, oluşturduğunuz IP'nin sahibidir. IP'ye erişim şeffaf değildir. | +| Tüm adımları zincirleme yaparak, başarısız çabalardan elde edilen veriler de dahil olmak üzere tüm araştırmalar paylaşılır. | Yayın yanlılığı, araştırmacıların başarılı sonuçları olan deneyleri paylaşma olasılıklarının daha yüksek olduğu anlamına gelir. | + +## Ethereum ve Merkeziyetsiz Bilim {#ethereum-and-desci} + +Merkeziyetsiz bir bilim sistemi, güçlü güvenlik, düşük maliyet, düşük işlem ücretleri ve uygulama geliştirme için zengin bir ekosistem gerektirir. Ethereum, merkeziyetsiz bilim birikimi oluşturmak için gereken her şeyi sunar. + +## Merkeziyetsiz Bilim kullanım senaryoları {#use-cases} + +Merkeziyetsiz Bilim, Web2 akademisini dijital dünyaya taşımak için bilimsel araç setini inşa ediyor. Aşağıda, Web3'ün bilimsel topluluğa sunabileceği kullanım durumlarından bazı örnekler bulunmaktadır. + +### Yayımlama {#publishing} + +Bilim yayıncılığı, yayın evlerinin yönettiği ve bilim insanları, hakemler ve editörlerin ücretsiz emeğine dayanan, ardından fahiş yayıncılık ücretleri talep eden bir yapıya sahip olmasıyla ünlüdür. Eser ve yayın masraflarını genellikle dolaylı olarak vergilendirme yoluyla ödeyen halk, yayıncıya tekrar ödeme yapmadan aynı esere çoğu kez erişememektedir. Bireysel bilim makalelerini yayınlamak için toplam ücretler genellikle beş rakamlıdır ($USD), bu da küçük bir yayıncı grubu için muazzam kârlar sağlarken, bir [kamu malı](https://www.econlib.org/library/Enc/PublicGoods.html) olarak tüm bilimsel bilgi kavramını baltalamaktadır. + +[ArXiv](https://arxiv.org/) gibi baskı öncesi sunucular şeklinde ücretsiz ve açık erişimli platformlar mevcuttur. Bununla birlikte, bu platformlarda kalite kontrol, [anti-sybil mekanizmaları](https://csrc.nist.gov/glossary/term/sybil_attack) yoktur ve genellikle makale seviyesindeki metrikleri izlemezler, yani genellikle geleneksel bir yayıncıya sunulmadan önce yalnızca çalışmaları duyurmak için kullanılırlar. SciHub ayrıca yayınlanmış makaleleri, (yasal olarak değil) ancak yayıncılar ödemelerini aldıktan ve çalışmayı sıkı telif hakkı mevzuatına sardıktan sonra erişime ücretsiz hale getirir. Bu durum, yerleşik bir meşruiyet mekanizması ve teşvik modeli ile erişilebilir bilim makaleleri ve verileri için kritik bir boşluk bırakmaktadır. Böyle bir sistem oluşturmak için gerekli araçlar Web3'te mevcuttur. + +### Tekrarlanabilirlik ve çoğaltılabilirlik {#reproducibility-and-replicability} + +Tekrarlanabilirlik ve çoğaltılabilirlik, kaliteli bilimsel keşfin temelleridir. + +- Tekrarlanabilir sonuçlar, aynı ekip tarafından aynı metodoloji kullanılarak arka arkaya birden fazla kez elde edilebilir. +- Aynı deneysel düzeneği kullanan farklı bir grup tarafından tekrarlanabilir sonuçlar elde edilebilir. + +Web3'e has yeni araçlar, tekrarlanabilirlik ve çoğaltılabilirliğin keşfin temeli olduğunu garanti edebilir. Kaliteli bilimi, akademinin teknolojik kumaşına işleyebiliriz. Web3, her bir çözümleme bileşeni (ham veri, hesaplama motoru ve uygulama sonucu) için ayrı ayrı tasdikname sunar. Bu bileşenlerin sürdürülebilirliğini sağlamak için güvenilir bir ağ oluşturulduğunda; her ağ katılımcısı, hesaplamayı tekrar tekrar yapıp her bir sonucu onaylayarak sorumluluk alabilir. Mutabakat sistemlerinin güzelliği buradadır. + +### Fonlama {#funding} + +An itibarıyla bilime kaynak sağlamak için izlenen yol, bireylerin veya bir grup bilim insanının kaynak sağlayan kuruluşa yazılı başvuruda bulunmasıdır. Başvuranların küçük bir bölümüne kaynak sağlamadan önce, güvenilir kişilerden oluşan bir heyet başvuruları puanlar ve sonrasında adaylar mülakata girer. Bir hibeye başvurmak ile hibeyi almak arasında bazen yıllarca bekleme süresine yol açan darboğazlar yaratmasının yanı sıra, bu modelin ön yargılara, kişisel çıkarlara ve inceleme heyetinin politikalarına karşı oldukça savunmasız olduğu bilinmektedir. + +Çalışmalar, farklı panellere verilen aynı tekliflerin çok farklı sonuçları olduğundan, hibe inceleme panellerinin yüksek kaliteli teklifleri seçmekte yetersiz kaldığını göstermiştir. Finansman nadir hale geldikçe, entelektüel açıdan daha muhafazakar projelere sahip daha kıdemli araştırmacılardan oluşan daha küçük bir havuzda yoğunlaştı. Etki, hiper rekabetçi bir finansman ortamı yaratarak, sapkın teşvikleri sağlamlaştırdı ve yeniliği boğdu. + +Web3, DAO'lar ve geniş çapta Web3 tarafından geliştirilen farklı teşvik modellerini deneyerek bu bozuk finansman modelini dağıtma potansiyeline sahiptir. Bilimin fonlanmasında köklü değişim yapabilecek Web3 araçlarından bazıları [geriye dönük kamu malları fonlaması](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), [kuadratik fonlama](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), [DAO yönetişimi](https://www.antler.co/blog/daos-and-web3-governance) ve [tokenlaştırılmış teşvik yapılarıdır](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design). + +### Fikri mülkiyet sahipliği ve geliştirme {#ip-ownership} + +Fikri mülkiyet (IP), geleneksel bilimde büyük bir sorundur: üniversitelerde sıkışıp kalmaktan veya biyoteknolojilerde kullanılmamaktan, değer biçilmesinin çok zor olmasına kadar. Bununla birlikte, dijital varlıkların (bilimsel veriler veya makaleler gibi) mülkiyeti, Web3'ün [değiştirilemez token'lar (NFT'ler)](/nft/) kullanarak son derece iyi yaptığı bir şeydir. + +NFT'ler gelecekteki işlem gelirlerini orijinal yaratıcıya aktarabilir. Aynı şekilde şeffaf değer eşleştirme zincirleri ile araştırmacılar, yönetim organları (DAOlar gibi), ve hatta veri toplayan özneler bile ödüllendirilebilir. + +Yürütülen araştırma deneylerinin merkeziyetsiz veri depoları için, [IP-NFT'ler](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) bir kilit işlevi görebilir. Ayrıca NFT ve [DeFi](/defi/) finansallaştırılmasına (bölümlere ayırmaktan toplama havuzlarına ve değer biçmeye) bağlanabilir. Bu durum zincir üstündeki varlıkların, örneğin DAO'ların, doğrudan zincir üstünde araştırma yapmasına olanak sağlar. Örnek olarak [VitaDAO](https://www.vitadao.com/) verilebilir. Başkalarına transfer edilemeyen ["soulbound" (ruha bağlı) token'ların](https://vitalik.ca/general/2022/01/26/soulbound.html) ortaya çıkışı DeSci için önemli bir rol oynar çünkü bu token'lar, kişilerin Ethereum adreslerine bağlı deneyim ve referanslarını kanıtlayabilmesini sağlar. + +### Veri depolama, erişim ve mimari {#data-storage} + +Bilimsel veriler, Web3 uygulamaları yardmıyla çok daha işlevsel hale dönüştürülebilir. Ve bu işlenmiş bilimsel veriler sayesinden araştırmalar için daha olumlu sonuçlar sağlanabilir. + +Başlangıç noktası, uygun doğrulanabilir kimlik bilgilerine sahip herhangi bir merkezi olmayan kimlik tarafından erişilebilen bir sistem olmalıdır. Bu durum, önemli verilerin güvenilir taraflarca güvenli bir şekilde çoğaltılmasına, tekrara ve sansüre karşı direnç sağlanmasına, sonuçların yeniden üretilmesine ve hatta birden fazla tarafın iş birliği yapmasına ve veri kümesine yeni veriler eklemesine olanak tanır. "Compute-to-data" gibi gizli bilgi işleme yöntemleri bizim için, sadeleştirilmiş veriye alternatif olarak erişimemizi sağlar ve bu veriler için Güvenilir Araştırma Ortamları oluşturur. [NHS kuruluşu, Güvenilir Araştırma Ortamları](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) tabiri için veri gizliliği sağladığını ve araştırmacıların ekosistemleri güvenilir şekilde birbirleri arasında bilgi paylaşımı yaparak inşa etmelerine olanak sağladığı için faydalı bir çözüm yöntemi olduğunu belirtti. + +Esnek Web3 veri çözümleri yukarıda bahsedilen sorunları çözme konusunda yardımcı olur, ayrıca araştırmacıların ve meraklıların özgürce ve ücretsiz şekilde işlem yapabildiği bir bilim ortamı sağlar. Web3'ün IPFS, Arweave, Filecoin gibi veri çözümleri merkeziyetsizlik için optimize edilmiştir. Örneğin, dClimate meteoroloji istasyonları ve tahmini iklim modelleri de dahil olmak üzere iklim ve hava durumu verilerine evrensel erişim sağlar. + +## Dahil olun {#get-involved} + +DeSci topluluğuna katılın ve gelişmelerden haberdar olun! + +- [DeSci.Global: küresel etkinlikler ve buluşma takvimi](https://desci.global) +- [Bilim İçin Blok Zincir Telegram Adresi](https://t.me/BlockchainForScience) +- [Molecule: Araştırma projeleriniz için fon sağlayın ve fon alın](https://discover.molecule.to/) +- [VitaDAO: Uzun ömürlü araştırmalar için sponsorlu araştırma anlaşmalı yoluyla fon alın](https://www.vitadao.com/) +- [ResearchHub: Bilimsel bir sonuç yayınlayın ve taraflarla iletişime geçin](https://www.researchhub.com/) +- [LabDAO: in-silico proteinini katlayın](https://alphafodl.vercel.app/) +- [dClimate API: Merkeziyetsiz bir topluluk tarafından toplanmış iklim verilerini sorgulayın](https://api.dclimate.net/) +- [DeSci Vakfı: DeSci yayınlama aracı oluşturucu](https://descifoundation.org/) +- [DeSci.Dünyası: Kullanıcıların merkeziyetsiz bilimi görüntülemesi ve etkileşim kurması için tek adres](https://desci.world) +- [Fleming Protokolü: Ortak çalışmaya dayalı biyomedikal buluşları destekleyen açık kaynak veri ekonomisi](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [OceanDAO: Veri ile ilgili bilimler için DAO tarafından yönetilen fonlama](https://oceanprotocol.com/dao) +- [Opscientia: Açık merkeziyetsiz bilim iş akışları](https://opsci.io/research/) +- [LabDAO: in-silico proteinini katlayın](https://alphafodl.vercel.app/) +- [Bio.xyz: Biyoteknoloji DAO'nuz veya desci projeniz için fon toplayın](https://www.molecule.to/) +- [ResearchHub: Bilimsel bir sonuç yayınlayın ve taraflarla iletişime geçin](https://www.researchhub.com/) +- [VitaDAO: Uzun ömürlü araştırmalar için sponsorlu araştırma anlaşmalı yoluyla fon alın](https://www.vitadao.com/) +- [Fleming Protokolü: Ortak çalışmaya dayalı biyomedikal buluşları destekleyen açık kaynak veri ekonomisi](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) +- [Etkin Sonuç Çıkarma Lab](https://www.activeinference.org/) +- [CureDAO: Topluluğa Ait Hassas Sağlık Platformu](https://docs.curedao.org/) +- [IdealMarkets: Merkeziyetsiz bilimsel güvenilirliği sağlar](https://ideamarket.io/) +- [DeSci Laboratuvarları](https://www.desci.com/) + +Listelenecek yeni proje önerilerine açığız - başlamak için lütfen [listeleme politikamızı](/contributing/adding-desci-projects/) gözden geçirin! + +## Daha fazla bilgi {#further-reading} + +- [DeSci Wiki Jocelynn Pearl ve Ultrarare taradından hazırlandı](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) +- [Jocelynn Pearl tarafından a16z geleceği için merkeziyetsiz biyoteknoloji rehberi](https://future.a16z.com/a-guide-to-decentralized-biotech/) +- [DeSci için durum](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) +- [DeSci Rehberi](https://future.com/what-is-decentralized-science-aka-desci/) +- [Merkeziyetsiz bilim kaynakları](https://www.vincentweisser.com/decentralized-science) +- [Molekülün Biyofarması IP-NFT'ler - Teknik Bir Açıklama](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) +- [Bilim İçin Güvensiz Sistemler Geliştirmek, Jon Starr](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) +- [Biyoteknoloji DAO'larının Ortaya Çıkışı](https://molecule.to/blog/the-emergence-of-biotech-daos) +- [Paul Kohlhass - DeSci: Merkeziyetsiz Bilimin Geleceği (podcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) +- [Merkeziyetsiz Bilim İçin Bir Çıkarım Ontolojisi: Yerleşik Anlamlandırmadan Epistemik Müştereklere](https://zenodo.org/record/6320575) +- [DeSci: Araştırmanın Geleceği, Samuel Akinosho tarafından yazıldı](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) +- [Bilim Fonlaması (Son söz: DeSci ve yeni kripto ilkeleri) Nadia tarafından](https://nadia.xyz/science-funding) +- [Merkeziyetsizcilik İlaç Geliştirmeyi Engelliyor](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) + +### Videolar {#videos} + +- [Merkeziyetsiz Bilim nedir?](https://www.youtube.com/watch?v=-DeMklVWNdA) +- [Vitalik Buterin ve bilim insanı Aubrey de Grey'in uzun yaşam araştırmaları ve kriptonun kesişimi hakkındaki konuşması](https://www.youtube.com/watch?v=x9TSJK1widA) +- [Bilimsel Yayıncılık Bozuldu. Web3 Düzeltebilir mi?](https://www.youtube.com/watch?v=WkvzYgCvWj8) +- [Juan Benet - DeSci, Bağımsız Labaratuvarlar ve Büyük Ölçekli Veri Bilimi](https://www.youtube.com/watch?v=zkXM9H90g_E) +- [Sebastian Brunemeier - DeSci Biyomedikal Araştırmaları ve Girişim Şirketini Nasıl Dönüştürebilir](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/tr/developers/docs/accounts/index.md b/public/content/translations/tr/developers/docs/accounts/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/accounts/index.md rename to public/content/translations/tr/developers/docs/accounts/index.md diff --git a/src/content/translations/tr/developers/docs/apis/backend/index.md b/public/content/translations/tr/developers/docs/apis/backend/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/apis/backend/index.md rename to public/content/translations/tr/developers/docs/apis/backend/index.md diff --git a/src/content/translations/tr/developers/docs/apis/javascript/index.md b/public/content/translations/tr/developers/docs/apis/javascript/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/apis/javascript/index.md rename to public/content/translations/tr/developers/docs/apis/javascript/index.md diff --git a/src/content/translations/tr/developers/docs/apis/json-rpc/index.md b/public/content/translations/tr/developers/docs/apis/json-rpc/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/apis/json-rpc/index.md rename to public/content/translations/tr/developers/docs/apis/json-rpc/index.md diff --git a/src/content/translations/tr/developers/docs/blocks/index.md b/public/content/translations/tr/developers/docs/blocks/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/blocks/index.md rename to public/content/translations/tr/developers/docs/blocks/index.md diff --git a/src/content/translations/tr/developers/docs/bridges/index.md b/public/content/translations/tr/developers/docs/bridges/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/bridges/index.md rename to public/content/translations/tr/developers/docs/bridges/index.md diff --git a/src/content/translations/tr/developers/docs/consensus-mechanisms/index.md b/public/content/translations/tr/developers/docs/consensus-mechanisms/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/consensus-mechanisms/index.md rename to public/content/translations/tr/developers/docs/consensus-mechanisms/index.md diff --git a/src/content/translations/tr/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md b/public/content/translations/tr/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md rename to public/content/translations/tr/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md diff --git a/src/content/translations/tr/developers/docs/consensus-mechanisms/pos/attestations/index.md b/public/content/translations/tr/developers/docs/consensus-mechanisms/pos/attestations/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/consensus-mechanisms/pos/attestations/index.md rename to public/content/translations/tr/developers/docs/consensus-mechanisms/pos/attestations/index.md diff --git a/src/content/translations/tr/developers/docs/consensus-mechanisms/pos/block-proposal/index.md b/public/content/translations/tr/developers/docs/consensus-mechanisms/pos/block-proposal/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/consensus-mechanisms/pos/block-proposal/index.md rename to public/content/translations/tr/developers/docs/consensus-mechanisms/pos/block-proposal/index.md diff --git a/src/content/translations/tr/developers/docs/consensus-mechanisms/pos/faqs/index.md b/public/content/translations/tr/developers/docs/consensus-mechanisms/pos/faqs/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/consensus-mechanisms/pos/faqs/index.md rename to public/content/translations/tr/developers/docs/consensus-mechanisms/pos/faqs/index.md diff --git a/src/content/translations/tr/developers/docs/consensus-mechanisms/pos/gasper/index.md b/public/content/translations/tr/developers/docs/consensus-mechanisms/pos/gasper/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/consensus-mechanisms/pos/gasper/index.md rename to public/content/translations/tr/developers/docs/consensus-mechanisms/pos/gasper/index.md diff --git a/src/content/translations/tr/developers/docs/consensus-mechanisms/pos/index.md b/public/content/translations/tr/developers/docs/consensus-mechanisms/pos/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/consensus-mechanisms/pos/index.md rename to public/content/translations/tr/developers/docs/consensus-mechanisms/pos/index.md diff --git a/src/content/translations/tr/developers/docs/consensus-mechanisms/pos/keys/index.md b/public/content/translations/tr/developers/docs/consensus-mechanisms/pos/keys/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/consensus-mechanisms/pos/keys/index.md rename to public/content/translations/tr/developers/docs/consensus-mechanisms/pos/keys/index.md diff --git a/src/content/translations/tr/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md b/public/content/translations/tr/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md rename to public/content/translations/tr/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md diff --git a/src/content/translations/tr/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md b/public/content/translations/tr/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md rename to public/content/translations/tr/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md diff --git a/src/content/translations/tr/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md b/public/content/translations/tr/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md rename to public/content/translations/tr/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md diff --git a/src/content/translations/tr/developers/docs/consensus-mechanisms/pow/index.md b/public/content/translations/tr/developers/docs/consensus-mechanisms/pow/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/consensus-mechanisms/pow/index.md rename to public/content/translations/tr/developers/docs/consensus-mechanisms/pow/index.md diff --git a/src/content/translations/tr/developers/docs/consensus-mechanisms/pow/mining/index.md b/public/content/translations/tr/developers/docs/consensus-mechanisms/pow/mining/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/consensus-mechanisms/pow/mining/index.md rename to public/content/translations/tr/developers/docs/consensus-mechanisms/pow/mining/index.md diff --git a/src/content/translations/tr/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md b/public/content/translations/tr/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md rename to public/content/translations/tr/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md diff --git a/src/content/translations/tr/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md b/public/content/translations/tr/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md rename to public/content/translations/tr/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md diff --git a/src/content/translations/tr/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md b/public/content/translations/tr/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md rename to public/content/translations/tr/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md diff --git a/src/content/translations/tr/developers/docs/dapps/index.md b/public/content/translations/tr/developers/docs/dapps/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/dapps/index.md rename to public/content/translations/tr/developers/docs/dapps/index.md diff --git a/src/content/translations/tr/developers/docs/data-and-analytics/block-explorers/index.md b/public/content/translations/tr/developers/docs/data-and-analytics/block-explorers/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/data-and-analytics/block-explorers/index.md rename to public/content/translations/tr/developers/docs/data-and-analytics/block-explorers/index.md diff --git a/src/content/translations/tr/developers/docs/data-and-analytics/index.md b/public/content/translations/tr/developers/docs/data-and-analytics/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/data-and-analytics/index.md rename to public/content/translations/tr/developers/docs/data-and-analytics/index.md diff --git a/src/content/translations/tr/developers/docs/data-availability/index.md b/public/content/translations/tr/developers/docs/data-availability/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/data-availability/index.md rename to public/content/translations/tr/developers/docs/data-availability/index.md diff --git a/src/content/translations/tr/developers/docs/data-structures-and-encoding/index.md b/public/content/translations/tr/developers/docs/data-structures-and-encoding/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/data-structures-and-encoding/index.md rename to public/content/translations/tr/developers/docs/data-structures-and-encoding/index.md diff --git a/src/content/translations/tr/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md b/public/content/translations/tr/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md rename to public/content/translations/tr/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md diff --git a/src/content/translations/tr/developers/docs/data-structures-and-encoding/rlp/index.md b/public/content/translations/tr/developers/docs/data-structures-and-encoding/rlp/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/data-structures-and-encoding/rlp/index.md rename to public/content/translations/tr/developers/docs/data-structures-and-encoding/rlp/index.md diff --git a/src/content/translations/tr/developers/docs/data-structures-and-encoding/ssz/index.md b/public/content/translations/tr/developers/docs/data-structures-and-encoding/ssz/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/data-structures-and-encoding/ssz/index.md rename to public/content/translations/tr/developers/docs/data-structures-and-encoding/ssz/index.md diff --git a/src/content/translations/tr/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md b/public/content/translations/tr/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md rename to public/content/translations/tr/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md diff --git a/src/content/translations/tr/developers/docs/design-and-ux/index.md b/public/content/translations/tr/developers/docs/design-and-ux/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/design-and-ux/index.md rename to public/content/translations/tr/developers/docs/design-and-ux/index.md diff --git a/src/content/translations/tr/developers/docs/development-networks/index.md b/public/content/translations/tr/developers/docs/development-networks/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/development-networks/index.md rename to public/content/translations/tr/developers/docs/development-networks/index.md diff --git a/src/content/translations/tr/developers/docs/ethereum-stack/index.md b/public/content/translations/tr/developers/docs/ethereum-stack/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/ethereum-stack/index.md rename to public/content/translations/tr/developers/docs/ethereum-stack/index.md diff --git a/src/content/translations/tr/developers/docs/evm/index.md b/public/content/translations/tr/developers/docs/evm/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/evm/index.md rename to public/content/translations/tr/developers/docs/evm/index.md diff --git a/src/content/translations/tr/developers/docs/evm/opcodes/index.md b/public/content/translations/tr/developers/docs/evm/opcodes/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/evm/opcodes/index.md rename to public/content/translations/tr/developers/docs/evm/opcodes/index.md diff --git a/src/content/translations/tr/developers/docs/frameworks/index.md b/public/content/translations/tr/developers/docs/frameworks/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/frameworks/index.md rename to public/content/translations/tr/developers/docs/frameworks/index.md diff --git a/src/content/translations/tr/developers/docs/gas/index.md b/public/content/translations/tr/developers/docs/gas/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/gas/index.md rename to public/content/translations/tr/developers/docs/gas/index.md diff --git a/src/content/translations/tr/developers/docs/ides/index.md b/public/content/translations/tr/developers/docs/ides/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/ides/index.md rename to public/content/translations/tr/developers/docs/ides/index.md diff --git a/src/content/translations/tr/developers/docs/index.md b/public/content/translations/tr/developers/docs/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/index.md rename to public/content/translations/tr/developers/docs/index.md diff --git a/src/content/translations/tr/developers/docs/intro-to-ether/index.md b/public/content/translations/tr/developers/docs/intro-to-ether/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/intro-to-ether/index.md rename to public/content/translations/tr/developers/docs/intro-to-ether/index.md diff --git a/src/content/translations/tr/developers/docs/intro-to-ethereum/index.md b/public/content/translations/tr/developers/docs/intro-to-ethereum/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/intro-to-ethereum/index.md rename to public/content/translations/tr/developers/docs/intro-to-ethereum/index.md diff --git a/public/content/translations/tr/developers/docs/mev/index.md b/public/content/translations/tr/developers/docs/mev/index.md new file mode 100644 index 00000000000..7dfbc3ae6ea --- /dev/null +++ b/public/content/translations/tr/developers/docs/mev/index.md @@ -0,0 +1,221 @@ +--- +title: Maksimal çıkarılabilir değer (MEV) +description: Maksimal çıkarılabilir değere (MEV) giriş +lang: tr +--- + +Maksimal çıkarılabilir değer (MEV), bir bloktaki işlemlerin sırasını dahil ederek, hariç tutarak ve değiştirerek standart blok ödülü ve gaz ücretlerini aşan blok üretiminden elde edilebilecek maksimum değeri ifade eder. + +## Madenci çıkarılabilir değeri {#miner-extractable-value} + +Maksimum çıkarılabilir değer, ilk olarak [iş ispatı](/developers/docs/consensus-mechanisms/pow/) bağlamında uygulandı ve başlangıçta "madenci çıkarılabilir değeri" olarak adlandırıldı. Bunun sebebi, iş ispatında katılım, çıkarım ve sıralamayı madencilerin kontrol etmesidir. Ancak, [Birleşim](/roadmap/merge) aracılığıyla hisse ispatına geçişten sonra bu rollerden doğrulayıcılar sorumlu olacak ve madencilik artık Ethereum protokolünün bir parçası olmayacaktır. Ancak değer çıkarım yöntemleri hala mevcuttur, yani artık bunun yerine "Maksimum çıkarılabilir değer" kullanılacaktır. + +## Ön Koşullar {#prerequisites} + +[İşlemler](/developers/docs/transactions/), [bloklar](/developers/docs/blocks/), [hisse ispatı](/developers/docs/consensus-mechanisms/pos) ve [gaz](/developers/docs/gas/) hakkında bilgi sahibi olduğunuzdan emin olun. [Merkeziyetsiz uygulamalar](/dapps/) ve [DeFi](/defi/) ile aşina olmak da faydalı olabilir. + +## MEV çıkarma {#mev-extraction} + +Teoride MEV, kârlı bir MEV fırsatının yürütülmesini garanti edebilecek tek taraf oldukları için tamamen doğrulayıcılara ilave edilir. Ancak pratikte, MEV'in büyük bir kısmı "arayıcılar" olarak bilinen bağımsız ağ katılımcıları tarafından çıkarılır. Arayıcılar kârlı MEV fırsatlarını tespit etmek için blok zinciri verisi üzerinde karmaşık algoritmalar çalıştırırlar ve botların otomatik olarak bu karlı işlemleri ağa göndermesini sağlarlar. + +Doğrulayıcılar tüm MEV miktarının bir kısmını her şekilde alırlar çünkü arayıcılar kârlı işlemlerinin bir bloğa katılımının yüksek ihtimali karşılığında yüksek gaz ücretleri (doğrulayıcılara giden) ödemeye razıdır. Arayıcıların ekonomik olarak rasyonel olduklarını varsayarsak, bir arayıcının ödemeye razı olduğu gaz ücreti, arayıcının MEV'sinin %100'üne kadar bir miktar olacaktır (çünkü gaz ücreti daha yüksek olsaydı, arayıcı para kaybederdi). + +Bununla birlikte, [merkeziyetsiz borsa arbitrajı](#mev-examples-dex-arbitrage) gibi oldukça rekabetçi MEV fırsatları için arayıcılar, toplam MEV gelirlerinin %90'ını veya daha fazlasını doğrulayıcıya gaz ücreti olarak ödemek zorundadır, çünkü pek çok insan aynı kârlı arbitraj ticareti yapmak ister. Bunun nedeni, arbitraj işlemlerinin devam etmesini garanti etmenin tek yolunun, işlemi en yüksek gaz fiyatıyla sunmak olmasıdır. + +### Gaz golfü {#mev-extraction-gas-golfing} + +Bu dinamik, "gaz golfü"nde iyi olmayı, yani işlemleri en az miktarda gaz kullanacak şekilde programlamayı bir rekabet avantajı hâline getirdi, çünkü bu, arayıcıların toplam gaz ücretlerini sabit tutarken daha yüksek bir gaz fiyatı belirlemesine olanak tanır (gaz ücretleri = gaz fiyatı \* kullanılan gaz). + +Birkaç iyi bilinen gazlı golf tekniği: daha az depolama alanı (ve böylece gaz) harcadıkları için uzun bir sıfır dizisiyle başlayan adresler kullanmak (ör. [0x000000000C521824EaFf97Eac7B73B084ef9306](https://etherscan.io/address/0x0000000000c521824eaff97eac7b73b084ef9306)); bir depolama yuvası başlatmak (bakiye 0 olduğunda gerçekleşen durum), bir depolama yuvasını güncellemekten daha fazla gaza mal olduğu için sözleşmelerde ufak bir [ERC-20](/developers/docs/standards/tokens/erc-20/) token bakiyesi bırakmak. Gaz kullanımını azaltmak için daha fazla teknik bulmak, arayıcılar arasında aktif bir araştırma alanıdır. + +### Genelleştirilmiş öncüler (frontrunner) {#mev-extraction-generalized-frontrunners} + +Kârlı MEV fırsatlarını tespit etmek için karmaşık algoritmalar programlamaktansa, bazı arayıcılar genelleştirilmiş öncüler kullanırlar. Genelleştirilmiş öncüler, bellek havuzunu kârlı işlemleri tespit etmek için izleyen botlardır. Öncü, kâr potansiyeli olan işlemin kodunu kopyalar, adresleri öncü adresiyle değiştirir ve değiştirilmiş işlemin öncü adresine kâr olarak döndüğünü iki kez kontrol etmek için işlemi yerel olarak çalıştırır. İşlem gerçekten kârlıysa öncü, değiştirilmiş işlemi değiştirilmiş adresle ve daha yüksek bir gaz ücretiyle gönderecektir, yani orijinal işleme "öncülük" yapacak ve orijinal arayıcının MEV'ini alacaktır. + +### Flashbotlar {#mev-extraction-flashbots} + +Flashbot'lar, yürütüm istemcilerini arama yapanların MEV işlemlerini genel bellek havuzuna açıklamadan doğrulayıcılara göndermelerine olanak tanıyan bir hizmetle genişleten bağımsız bir projedir. Bu, işlemlere genelleştirilmiş öncüler tarafından öncülük edilmesini önler. + +## MEV örnekleri {#mev-examples} + +MEV, blokzincirde birkaç şekilde ortaya çıkar. + +### DEX arbitrajı {#mev-examples-dex-arbitrage} + +[Merkeziyetsiz borsa](/glossary/#dex) (DEX) arbitrajı, en basit ve yaygın MEV fırsatıdır. Bunun sonucu olarak ayrıca en rekabetçi olanıdır. + +Şu şekilde çalışır: İki merkeziyetsiz borsa bir jetonu iki farklı fiyattan sunuyorsa, biri jetonu düşük fiyatlı merkeziyetsiz borsada satın alabilir ve tek bir atomik işlemde daha yüksek fiyatlı merkeziyetsiz borsada satabilir. Blokzincirin işleme şekli sayesinde bu, gerçek ve risksiz bir arbitrajdır. + +[Burada](https://etherscan.io/tx/0x5e1657ef0e9be9bc72efefe59a2528d0d730d478cfc9e6cdd09af9f997bb3ef4) bir araştırmacının Uniswap ve Sushiswap'ta ETH/DAI çiftinin farklı fiyatlandırmasından yararlanarak 1.000 ETH'yi 1.045 ETH'ye çevirdiği kârlı bir arbitraj işlemi örneği verilmiştir. + +### Likidasyon {#mev-examples-liquidations} + +Borç protokolü likidasyonları başka bir yaygın MEV fırsatı sunar. + +Maker ve Aave gibi borç verme protokolleri, kullanıcıların bir tür teminat (örneğin, ETH) yatırmasını gerektirir. Yatırılan teminat, sonrasında diğer kullanıcılara borç vermek için kullanılır. + +Kullanıcılar sonrasında diğerlerinden neye ihtiyaç duyduklarına göre (örn. bir MakerDAO yönetişim önerisinde oy vermek için MKR ödünç alabilirsiniz) yatırdıkları teminatın belli bir yüzdeliğine kadar varlık ve jeton ödünç alabilir. Örnek olarak, ödünç miktarı maksimum %30 ise, protokole 100 DAI yatıran bir kullanıcı başka bir varlıktan 30 DAI değerine kadar ödünç alabilir. Tam ödünç gücü yüzdesini protokol belirler. + +Bir borçlunun teminatı dalgalandıkça, borç alma gücü de azalır. Piyasa dalgalanmaları nedeniyle ödünç alınan varlıkların değeri, teminatlarının değerinin %30'unu aşarsa (yine, kesin yüzde protokol tarafından belirlenir), protokol tipik olarak herkesin teminatı likide etmesine izin vererek borç verenlere anında ödeme yapmasına izin verir (bu, geleneksel finanstaki [teminat çağrılarının](https://www.investopedia.com/terms/m/margincall.asp) işleyişine benzer). Likide edilirse, borçlu genellikle bir kısmı likide eden kişiye giden yüksek bir likidasyon ücreti ödemek zorundadır: MEV fırsatı bu noktada devreye girer. + +Arayıcılar, hangi borçluların likide edilebileceğini belirlemek ve bir likidasyon işlemi gönderen ve likidasyon ücretini kendileri için toplayan ilk kişi olmak için blok zinciri verilerini mümkün olduğunca hızlı bir şekilde ayrıştırmak için rekabet eder. + +### Sandviç ticareti {#mev-examples-sandwich-trading} + +Sandviç ticareti, başka bir yaygın MEV çıkarma yöntemidir. + +Arayıcı, sandviçlemek için bellek havuzunda büyük DEX ticaretleri arar. Örneğin, birinin Uniswap üzerinde DAI ile 10.000 UNI satın almak istediğini varsayalım. Bu büyüklükteki bir ticaret, UNI/DAI çifti üzerinde anlamlı bir etkiye sahip olacak ve DAI'ye göre UNI'nin fiyatını potansiyel olarak önemli ölçüde artıracaktır. + +Bir arayıcı, bu büyük ticaretin UNI/DAI çifti üzerindeki yaklaşık fiyat etkisini hesaplayabilir ve büyük ticaretten hemen _önce_ bir optimal satın alma emri yürüterek UNI'yi ucuza satın alabilir, ardından büyük ticaretten hemen _sonra_ bir satış emri yürüterek, büyük emirin neden olduğu daha yüksek fiyata satar. + +Ancak sandviçleme, atomik olmadığı için daha risklidir (yukarıda açıklandığı gibi DEX arbitrajının aksine) ve bir [salmonella saldırısına](https://github.com/Defi-Cartel/salmonella) açıktır. + +### NFT MEV {#mev-examples-nfts} + +MEV, NFT dünyası içinde yükselen bir fenomendir ve muhakkak kârlı olmayabilir. + +Bununla birlikte NFT işlemleri, diğer tüm Ethereum işlemleri tarafından paylaşılan aynı blok zincirinde gerçekleştiğinden, arayıcılar NFT pazarındaki geleneksel MEV fırsatlarında kullanılanlara benzer teknikleri de kullanabilirler. + +Örneğin, popüler bir NFT yayınlanacaksa ve bir arayıcı belirli bir NFT veya NFT seti istiyorsa, NFT'yi satın almak için ilk sırada olacak şekilde bir işlemi programlayabilir veya NFT setinin tamamını tek seferde tek işlemde satın alabilir. Veya bir NFT [hatayla düşük bir fiyata listelenirse](https://www.theblockcrypto.com/post/113546/mistake-sees-69000-cryptopunk-sold-for-less-than-a-cent), bir arayıcı diğer alıcıların önüne geçebilir ve onu ucuza kapabilir. + +Önde gelen bir NFT MEV örneği, bir arayıcı her bir Cryptopunk'u taban fiyatta [satın almak](https://etherscan.io/address/0x650dCdEB6ecF05aE3CAF30A70966E2F395d5E9E5) için 7 milyon $ harcadığında gerçekleşti. Bir blok zinciri araştırmacısı, [Twitter'da](https://twitter.com/IvanBogatyy/status/1422232184493121538) alıcının satın alım işlemini gizlemek için bir MEV sağlayıcısıyla nasıl çalıştığını açıkladı. + +### Uzun kuyruk {#mev-examples-long-tail} + +DEX arbitrajı, likidasyonlar ve sandviç ticareti çok iyi bilinen MEV fırsatlarıdır ve yeni arayıcılar için kârlı olmaları pek olası değildir. Bununla birlikte, daha az bilinen MEV fırsatlarından oluşan uzun bir kuyruk bulunur (NFT MEV'in böyle bir fırsat olduğu söylenebilir). + +Yeni başlayan arayıcılar, bu uzun kuyrukta MEV'i arayarak daha fazla başarıya erişebilirler. Flashbotların [MEV iş ilanları](https://github.com/flashbots/mev-job-board), bazı yükselen fırsatları listeler. + +## MEV'in etkileri {#effects-of-mev} + +MEV tamamen kötü değildir: Ethereum üzerinde MEV'in iyi ve kötü sonuçları bulunmaktadır. + +### İyi {#effects-of-mev-the-good} + +Birçok DeFi projesi, protokollerinin kullanışlılığını ve istikrarını sağlamak için ekonomik olarak rasyonel aktörlere güvenir. Örneğin DEX arbitrajı, kullanıcıların token'ları için en iyi, en doğru fiyatları almalarını sağlar ve borç verme protokolleri, borç verenlere ödeme yapılmasını sağlamak için borç alanlar teminatlandırma oranlarının altına düştüğünde hızlı likidasyonlara dayanır. + +Ekonomik verimsizlikleri araştıran ve düzelten ve protokollerin ekonomik teşviklerinden yararlanan rasyonel arayıcılar olmadan, DeFi protokolleri ve genel olarak dapp'ler bugün olduğu kadar sağlam olmayabilirdi. + +### Kötü {#effects-of-mev-the-bad} + +Uygulama katmanında, sandviç ticareti gibi bazı MEV biçimleri kullanıcılar için kesinlikle daha kötü bir deneyime neden olur. Sandviçlenen kullanıcılar yüksek düşüş ve ticaretlerinde daha kötü yürütme ile karşı karşıya kalırlar. + +Ağ katmanında, genelleştirilmiş öncüler ve sıklıkla katıldıkları gaz fiyatı açık artırmaları (iki veya daha fazla öncü, kendi işlemlerinin gaz fiyatını aşamalı olarak yükselterek işlemlerini bir sonraki bloğa dahil etmek için rekabet ettiğinde) normal işlemler yapmaya çalışan herkes için ağ tıkanıklığına ve yüksek gaz fiyatı maliyetine neden olur. + +Bloklar _içinde_ gerçekleşenlerin ötesinde MEV, bloklar _arası_ zararlı etkilere sahip olabilir. Bir blokta mevcut olan MEV, standart blok ödülünü önemli ölçüde aşarsa, doğrulayıcılar blokları yeniden düzenlemeye ve MEV'yi kendi adlarına yakalamaya teşvik edilebilir, bu da blok zincirinin yeniden düzenlenmesine ve mutabakat kararsızlığına neden olabilir. + +Blok zincirinin yeniden düzenlenmesine yönelik bu ihtimal [geçmişte Bitcoin blok zincirinde incelenmiştir](https://dl.acm.org/doi/10.1145/2976749.2978408). Bitcoin'in blok ödülü yarıları ve işlem ücretleri, blok ödülünün gitgide daha büyük bir bölümünü oluşturduğundan madencilerin bir sonraki bloğun ödülünden vazgeçmesinin ve bunun yerine geçmiş blokları daha yüksek ücretlerle yeniden kazmasının ekonomik olarak rasyonel hâle geldiği durumlar ortaya çıkıyor. MEV'nin büyümesiyle Ethereum'da benzer bir durum meydana gelebilir ve blok zincirinin bütünlüğü tehlikeye girebilir. + +## MEV'nin Durumu {#state-of-mev} + +MEV çıkarımı 2021'in başlarında balonlanarak yılın ilk birkaç ayında son derece yüksek gaz fiyatlarına neden oldu. Flashbotların MEV rölesinin ortaya çıkması, genelleştirilmiş öncülerin etkinliğini azalttı ve gaz fiyatı açık artırmalarını zincirden çıkararak sıradan kullanıcılar için gaz fiyatlarını düşürdü. + +Birçok araştırmacı MEV'den hala iyi para kazanırken, fırsatlar daha iyi bilinir hale geldikçe ve daha fazla araştırmacı aynı fırsat için rekabet ettikçe, madenciler/doğrulayıcılar giderek daha fazla toplam MEV geliri elde edecektir (çünkü başlangıçta yukarıda açıklananla aynı tür gaz açık artırmaları, özel olarak da olsa Flashbot'larda da gerçekleşir ve doğrulayıcılar ortaya çıkan gaz gelirini yakalar). MEV ayrıca Ethereum'a özgü değildir ve fırsatlar Ethereum'da daha rekabetçi hâle geldikçe arayıcılar, Ethereum'dakilere benzer MEV fırsatlarının daha az rekabetle mevcut olduğu Binance Smart Chain gibi alternatif blok zincirlerine yöneliyorlar. + +Öte yandan, iş ispatından hisse ispatına geçiş ve Ethereum'u toplamaları kullanarak ölçeklendirmeye yönelik süregelen çabalar, MEV görünümünü halen belirgin olmayan şekillerde değiştirmektedir. Garantili blok önericilerinin kısa bir süre önceden bilinmesinin, iş ispatındaki olasılıksal model ile karşılaştırılğında MEV çıkarma dinamiklerini nasıl etkileyeceği veya [tek gizli lider seçimi](https://ethresear.ch/t/secret-non-single-leader-election/11789) ve [dağıtılmış doğrulayıcı teknolojisi](/staking/dvt/) uygulandığında bunun nasıl bozulacağı henüz çok iyi bilinmemektedir. Benzer şekilde, hangi MEV fırsatlarının var olduğu, çoğu kullanıcı etkinliği Ethereum'dan uzağa ve katman 2 toplama ve parçalamalarına taşındığında görülecektir. + +## Ethereum Hisse İspatında (PoS) MEV {#mev-in-ethereum-proof-of-stake} + +Açıklandığı gibi, MEV genel kullanıcı deneyimi ve mutabakat katmanı güvenliği üzerinde negatif etkilere sahiptir. Ancak Ethereum'un bir hisse ispatı mutabakatına geçişi ("Birleşim"), MEV ile ilgili yeni riskler ortaya çıkarabilir: + +### Doğrulayıcı merkezileşmesi {#validator-centralization} + +Birleşim sonrası Ethereum'da, doğrulayıcılar (32 ETH'lik teminat yatırımları yapan) İşaret Zinciri'ne eklenen blokların doğruluğu hakkında mutabakata varır. 32 ETH çoğu kişinin erişebileceği bir şey olmadığı için [bir paydaşlık havuzuna katılmak](/staking/pools/) daha makul bir seçenek olabilir. Buna rağmen, [tekil paydaş](/staking/solo/)ların sağlıklı dağılımı idealdir, çünkü doğrulayıcıların merkezileşmesini hafifletir ve Ethereum'un güvenliğini geliştirir. + +Ancak, MEV çıkarımının doğrulayıcı merkezileşmesini hızlandırabilme kabiliyetine sahip olduğuna inanılmaktadır. Bunun nedeni kısmen şudur; doğrulayıcılar [blok önerdiklerinde madencilerin şu anda kazandığından daha az kazanacakları](/roadmap/merge/issuance/#how-the-merge-impacts-ETH-supply) için MEV çıkarımı, Birleşim sonrası [doğrulayıcı kazançlarını büyük ölçüde etkileyebilir](https://github.com/flashbots/eth2-research/blob/main/notebooks/mev-in-eth2/eth2-mev-calc.ipynb). + +Daha büyük paydaşlık havuzları muhtemelen MEV fırsatlarını yakalamak için gerekli optimizasyonlara yatırım yapmak adına daha çok kaynağa sahip olacaktır. Bu havuzların çıkardığı MEV arttıkça, MEV çıkarım kabiliyetlerini geliştirmeleri (ve genel kazancı artırmak) için daha çok kaynağa sahip olacaklar ve sonucunda [ölçek ekonomileri](https://www.investopedia.com/terms/e/economiesofscale.asp#) ortaya çıkacaktır. + +Kullanım için daha az kaynak olduğunda, tekil paydaşlar MEV fırsatlarından kâr elde edemeyebilir. Bu, bağımsız doğrulayıcıların kazançlarını artırmak için güçlü paydaş havuzlarına katılmasına yönelik baskıyı artırarak Ethereum'da merkeziyetsizliği düşürebilir. + +### Yetkilendirilmiş bellek havuzları {#permissioned-mempools} + +Sandviç ve genelleştirilmiş öncü (frontrunner) saldırılarına karşılık olarak tacirler, işlem gizliliği için doğrulayıcılarla zincir dışında anlaşmalar yapmaya başlayabilir. Tacirler, potansiyel MEV işlemlerini bellek havuzuna göndermek yerine, işlemleri ddoğrudan bunları bloklara işleyen doğrulayıcılara gönderir ve kar paylaşılır. + +"Karanlık havuzlar" bu anlaşmanın daha büyük versiyonlarıdır ve bunlar belirli ücretler ödemek isteyen kullanıcılara açık, yetkilendirilmiş, yalnızca erişimi olanlara açık bellek havuzları olarak çalışırlar. Bu trend, Ethereum'un izin ve güven gerektirmezliğini azaltır ve potansiyel olarak blokzinciri en yüksek teklif vereni ödüllendirecek bir "kazanmak-için-öde" mekanizmasına dönüştürür. + +İzin gerektiren bellek havuzları, yukarıda bahsedilen merkezileşme risklerini de arttıracaktır. Birden çok doğrulayıcı çalıştıran büyük havuzlar, tacirlere ve kullanıcılara işlem gizliliği sunmaktan büyük olasılıkla kazanç sağlayacak ve MEV gelirlerini artıracaktır. + +Birleşim sonrası Ethereum'da MEV ile ilgili bu problemlerle mücadele etmek, temel bir araştırma alanıdır. Bugüne kadar, MEV'nin Ethereum'un merkeziyetsizliği ve Birleşim sonrasında güvenliği üzerindeki olumsuz etkisini azaltmak için önerilen iki çözüm, **Önerici - İnşacı Ayrımı (PBS)** ve **İnşacı API**'dir. + +### Önerici-İnşacı Ayrımı {#proposer-builder-separation} + +Hem iş ispatı hem de hisse ispatında bir blok inşa eden düğüm, onu zincire eklenmesi için mutabakata katılan diğer düğümlere önerir. Yeni bir blok başka bir madenci onun üzerine inşa ettiğinde (PoW'da) veya doğrulayıcıların çoğunluğundan tasdik aldığında (PoS'ta) kanonik zincirin parçası olur. + +Blok üreticisi ve blok önericisinin rollerinin kombinasyonu, önceden açıklanmış olan MEV ile ilgili sorunların çoğunu ortaya çıkaran şeydir. Örnek olarak mutabakat düğümleri, MEV kazançlarını en üst seviyeye çıkartmak amaçlı zaman hırsızı saldırılarında zincir yeniden düzenlemelerini tetiklemek için teşvik edilir. + +[Önerici-inşacı ayrımı](https://ethresear.ch/t/proposer-block-builder-separation-friendly-fee-market-designs/9725) (PBS) MEV'nin özellikle fikir birliği katmanındaki etkisini azaltmak için tasarlanmıştır. PBS'nin ana özelliği, blok üreticisi ile blok önericisi kurallarının ayrımıdır. Doğrulayıcılar yine bloklar önermekten ve oylamaktan sorumludur ancak **blok inşacıları** denilen yeni uzman bir varlık sınıfı işlemleri sıralamak ve bloklar inşa etmekle görevlendirilmiştir. + +Bir blok inşacısı, PBS altında bir işlem kümesi oluşturur ve bu kümenin bir İşaret Zinciri bloğuna dahil edilmesi için bir teklif sunar ("yürütme yükü" olarak). Sıradaki bloğu önermek için seçilen doğrulayıcı sonrasında farklı teklifleri inceler ve en yüksek ücretli kümeyi seçer. PBS temelde inşacıların blok alanı satan doğrulayıcılar ile pazarlık edeceği bir ihale piyasası oluşturur. + +Mevcut PBS tasarımları, inşacıların bir bloğun içeriğine (blok başlığı) teklifleri ile beraber kriptografik bir taahhüt paylaştığı bir [taahhüt etme-açığa çıkarma](https://gitcoin.co/blog/commit-reveal-scheme-on-ethereum/) şeması kullanır. Kazanan teklifi kabul ettikten sonra, önerici blok başlığını kapsayan imzalı bir blok önerisi oluşturur. Blok inşacısının imzalı blok önerisini gördükten sonra tam blok gövdesini paylaşması beklenir ve ayrıca kesinleştirilmeden önce doğrulayıcılardan yeterli sayıda [tasdik](/glossary/#attestation) alması gerekir. + +#### Önerici-inşacı ayrımı MEV'nin etkisini nasıl hafifletir? {#how-does-pbs-curb-mev-impact} + +Protokol içi önerici-inşacı ayrımı, MEV çıkarımını doğrulayıcıların sahasından kaldırarak MEV'nin mutabakat üzerindeki etkisini azaltır. Bunun yerine, bundan sonra uzman donanımlar çalıştıran blok inşacıları MEV fırsatlarını yakalayacaktır. + +Ancak bu, inşacılar bloklarının doğrulayıcılar tarafından kabul edilmesi için yüksek teklifler vermek zorunda olduğundan doğrulayıcıları MEV ile ilgili gelirlerin tamamen dışında bırakmaz. Buna rağmen, doğrulayıcılar artık doğrudan MEV getirisini optimize etmeye odaklı olmayacağı için zaman hırsızı saldırılarının tehdit düzeyi azalır. + +Önerici-inşacı ayrımı ayrıca MEV'nin merkezileşme risklerini de azaltır. Örnek olarak, bir taahhüt etme-açığa çıkarma şemasının kullanımı, inşacıların doğrulayıcılara MEV fırsatını çalmamaları veya diğer inşacılara ifşa etmemeleri için güvenmesi gerekliliğini ortadan kaldırır. Bu, tekil paydaşların MEV'den fayda sağlaması önündeki engeli küçültür; aksi takdirde, inşacılar zincir dışında itibarı olan büyük havuzları tercih etmeye ve onlarla zincir dışı anlaşmalar gerçekleştirmeye yönelirdi. + +Benzer şekilde, ödeme koşulsuz olduğu için doğrulayıcıların da inşacılara blok gövdelerini tutmamaları veya geçersiz bloklar yayımlamamaları için güvenmeye ihtiyaçları yoktur. Önerilen blok kullanılabilir olmasa veya diğer doğrulayıcılar tarafından geçersiz sayılsa bile doğrulayıcının ücreti işlenir. İkinci durumda, blok atılarak blok inşacısının tüm işlem ücretlerini ve MEV getirisini kaybetmesine yol açar. + +### İnşacı API {#builder-api} + +Önerici-inşacı ayrımı MEV'nin etkilerini azaltmayı vaat etse de, bunu uygulamak için mutabakat protokolünün değişmesi gerekir. Özellikle İşaret Zinciri'ndeki [çatallanma seçimi](/developers/docs/consensus-mechanisms/pos/#fork-choice) kuralının güncellenmesi gerekecektir. [İnşacı API](https://github.com/ethereum/builder-specs), daha yüksek güven varsayımlarıyla da olsa önerici-inşacı ayrımına çalışan bir uygulama sunmayı amaçlayan geçici bir çözümdür. + +İnşacı API, fikir birliği katmanı istemcileri tarafından yürütüm katmanı istemcilerinden yürütme yüklerini istemek amacıyla kullanılan [Motor API](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md)'nin geliştirilmiş bir versiyonudur. [Dürüst doğrulayıcı spesifikasyonunda](https://github.com/ethereum/consensus-specs/blob/dev/specs/bellatrix/validator.md) özetlendiği gibi, blok önerme görevleri için seçilen doğrulayıcılar, bağlı bir yürütüm istemcisinden önerilen İşaret Zinciri bloğuna ekledikleri bir işlem paketi talep eder. + +İnşacı API, ayrıca doğrulayıcılar ile yürütme katmanı istemcileri arasında bir ara yazılım görevi görür; ancak İşaret Zinciri'ndeki doğrulayıcıların blokları harici varlık almalarına izin verdiği için farklıdır (bir yürütüm istemcisi kullanarak yerel olarak blok oluşturmak yerine). + +İnşacı API'nin çalışma şekline genel bir bakışı aşağıda bulabilirsiniz: + +1. İnşacı API, doğrulayıcıyı yürütüm katmanı istemcilerini çalıştıran blok inşacılarının ağına bağlar. PBS'de olduğu gibi, inşacılar kaynak olarak yoğun blok inşasına yatırım yapan ve MEV + öncelik bahşişlerinden gelen geliri maksimize etmek için farklı stratejiler kullanan uzman taraflardır. + +2. Bir doğrulayıcı (fikir birliği katmanı istemcisi çalıştıran), inşacı ağından teklifler ile beraber yürütme yükleri ister. İnşacıların teklifleri yürütme yükü başlığını (yükün içeriğine yönelik bir kriptografik taahhüt) ve doğrulayıcıya ödenecek ücreti içerecektir. + +3. Doğrulayıcı, gelen teklifleri inceleyecek ve en yüksek ücretli yürütme yükünü seçecektir. Doğrulayıcı, İnşacı API'yi kullanarak sadece kendi imzasını ve yürütme yükü başlığını içeren "kör" bir İşaret bloğu önerisi oluşturur ve inşacıya gönderir. + +4. İnşacı API çalıştıran inşacının kör blok önerisini gördüğünde tam yürütme yükü ile cevap vermesi beklenir. Bu, doğrulayıcının ağa yayımlayacağı "imzalı" bir İşaret bloğu oluşturmasını sağlar. + +5. İnşacı API kullanan bir doğrulayıcının, blok önerisi ödüllerini kaçırmamak adına blok oluşturucunun hemen yanıt vermemesi durumunda yerel olarak bir blok oluşturması beklenir. Fakat doğrulayıcı, o anda açığa çıkarılan işlemleri veya başka bir kümeyi kullanarak yeni blok oluşturamaz. Çünkü bu durumda, kesme ile cezalandırabilecek bir suç olan _yanıltmaca_ (aynı yuva içinde iki bloğu imzalama) gerçekleşir. + +İnşacı API uygulamasının bir örneği, MEV'nin Ethereum üzerindeki olumsuz dışsallıklarını azaltmak için tasarlanan [Flashbotlar açık arttırma mekanizması](https://docs.flashbots.net/Flashbots-auction/overview/) olan [MEV Boost](https://github.com/flashbots/mev-boost)'tur. Flashbotlar açık artırması, iş ispatındaki madencilerin kar eden bloklar oluşturma işini **araştırmacılar** olarak adlandıran uzmanlaşmış taraflara yaptırabilmesini sağlar. + +Araştırmacılar, kazançlı MEV fırsatları arar ve madencilere bloğa dahil edilmek üzere işlem paketlerini [kapalı fiyat teklifi](https://en.wikipedia.org/wiki/First-price_sealed-bid_auction) ile birlikte gönderir. Go-ethereum (Geth) istemcisinin çatallı bir versiyonu olan mev-geth'i çalıştıran madencinin tek yapması gereken, en fazla kârı sağlayan paketi seçmek ve yeni bloğun bir parçası olacak şekilde madencilik yapmaktır. Madencileri istenmeyen mesaj ve geçersiz işlemlerden korumak için işlem paketleri madencilere ulaşmadan önce doğrulama için **aktarıcılardan** geçer. + +MEV Boost, Ethereum'un hisse ispatına geçişi için tasarlanmış yeni özellikleri olsa da, başlangıçtaki Flashbotlar açık artırmasıyla aynı işleyişi korur. Araştırmacılar hala bloklara eklemek üzere kazançlı MEV işlemleri bulmaktadır. Ancak **inşacılar** olarak adlandırılan yeni bir grup, işlemleri ve paketleri bloklara yerleştirmekten sorumludur. İnşacılar araştırmacıların kapalı fiyat tekliflerini kabul eder ve en kazançlı sıralamayı bulmak için optimizasyon yapar. + +Aktarıcı, işlem paketlerini önericiye aktarmadan önce onaylamaktan hala sorumludur. Ancak MEV Boost, inşacılar tarafından gönderilen blok gövdelerini ve doğrulayıcılar tarafından gönderilen blok başlıklarını depolayarak [veri kullanılabilirliği](/developers/docs/data-availability/) sağlamaktan sorumlu **emanetler** sunar. Burada bir aktarıcıya bağlı bir doğrulayıcı, kullanılabilir yürütme yüklerini ister ve en yüksek teklifi + MEV ipuçlarını içeren yük başlığını seçmek için MEV Boost'un sıralama algoritmasını kullanır. + +#### İnşacı API MEV'nin etkisini nasıl azaltır? {#how-does-builder-api-curb-mev-impact} + +İnşacı API'nin en temel faydası, MEV fırsatlarına erişimi demokratik hale getirme potansiyelidir. Taahhüt etme - açığa çıkarma şemalarını kullanmak, güven varsayımlarını ortadan kaldırır ve MEV'den yararlanmak isteyen doğrulayıcılar için giriş engellerini azaltır. Bu durum, MEV kazançlarını arttırmak için büyük paydaş havuzlarıyla etkileşime giren tekil paydaşlar üzerindeki baskıyı azaltacaktır. + +İnşacı API'nin yaygın kullanımı, blok inşacıları arasında daha büyük bir rekabeti beraberinde getirecek ve bu durum, sansüre karşı direnci artıracaktır. Doğrulayıcılar birden çok inşacıdan gelen teklifleri gözden geçirdikçe, bir veya daha fazla kullanıcı işlemini sansürlemeyi amaçlayan inşacıların başarılı olabilmesi için sansür uygulamayan diğer tüm inşacılardan yüksek teklif vermesi gerekecektir. Bu durum, sansür uygulayan kullanıcıların maliyetini ciddi şekilde yükseltir ve sansür uygulanmasına karşı caydırıcı etki oluşturur. + +MEV Boost gibi bazı projeler, genelleştirilmiş öncü/sandviç saldırılarından kaçınmaya çalışan tacirler gibi belirli taraflara işlem gizliliği sağlamak için tasarlanmış genel bir yapının parçası olarak İnşacı API'yi kullanır. Bu, kullanıcılar ve blok inşacıları arasında özel bir iletişim kanalı sağlanarak elde edilir. Daha önce bahsedilen izin gerektiren bellek havuzlarından farklı olarak bu bakış açısı aşağıda belirtilen sebeplerden dolayı faydalıdır: + +1. Piyasada birden fazla inşacının bulunması sansürü kullanışsız kılar ve bu durum kullanıcılar için faydalıdır. Bunun aksine, merkezi ve güvene dayalı karanlık havuzların varlığı, gücün birkaç blok inşacısının elinde yoğunlaşmasına ve sansür olasılığının artmasına neden olacaktır. + +2. İnşacı API yazılımı açık kaynaklıdır ve herkesin blok inşa hizmetleri sunmasına olanak tanır. Bu, kullanıcıların herhangi bir blok inşacısını kullanmaya zorlanmadığı ve Ethereum'un tarafsızlığını ve izin gerektirmezliğini artırdığı anlamına gelir. Üstelik MEV arayışında olan tacirler, özel işlem kanallarını kullanarak istemeden merkezileşmeye katkıda bulunmayacaklardır. + +## İlgili kaynaklar {#related-resources} + +- [Flashbot belgeleri](https://docs.flashbots.net/) +- [Flashbotlar GitHub](https://github.com/flashbots/pm) +- [MEV-Explore](https://explore.flashbots.net/) _MEV işlemleri için gösterge paneli ve canlı işlem gezgini_ +- [mevboost.org](https://www.mevboost.org/)-_ MEV-Boost röle ve blok inşacıları için gerçek zamanlı istatistiklere sahip izleyici_ + +## Daha fazla okuma {#further-reading} + +- [Madenci Çıkarılabilirlik Değeri (MEV) nedir?](https://blog.chain.link/what-is-miner-extractable-value-mev/) +- [MEV ve Ben](https://www.paradigm.xyz/2021/02/mev-and-me) +- [Ethereum Karanlık bir Ormandır](https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest/) +- [Karanlık Ormandan Kaçış](https://samczsun.com/escaping-the-dark-forest/) +- [Flashbotlar: MEV Krizine Öncülük Etmek](https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752) +- [@bertcmiller'ın MEV Yazıları](https://twitter.com/bertcmiller/status/1402665992422047747) +- [MEV-Boost: Birleşime hazır Flashbot'lar Mimarisi](https://ethresear.ch/t/mev-boost-merge-ready-flashbots-architecture/11177) +- [MEV-Boost nedir?](https://www.alchemy.com/overviews/mev-boost) +- [MEV-Boost neden çalıştırılmalı?](https://writings.flashbots.net/writings/why-run-mevboost/) +- [Otostopçunun Ethereum El Kitabı](https://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum) diff --git a/public/content/translations/tr/developers/docs/networking-layer/index.md b/public/content/translations/tr/developers/docs/networking-layer/index.md new file mode 100644 index 00000000000..0683822c780 --- /dev/null +++ b/public/content/translations/tr/developers/docs/networking-layer/index.md @@ -0,0 +1,155 @@ +--- +title: Ağ katmanı +description: Ethereum ağ katmanına giriş. +lang: tr +sidebarDepth: 2 +--- + +Ethereum, standart protokoller kullanarak birbirleriyle iletişim kurabilmesi gereken, binlerce düğüme sahip, eşler arası bir ağdır. "Ağ katmanı", bu düğümlerin birbirini bulmasını ve bilgi alışverişinde bulunmasını sağlayan protokoller yığınıdır. Bu, ağ üzerinden "dedikodu" bilgilerini (birden çoğa iletişim) ve belirli düğümler arasında istekleri ve yanıtları değiş tokuş etmeyi (bire bir iletişim) içerir. Her düğüm, doğru bilgileri gönderip aldıklarından emin olmak için belirli ağ kurallarına uymalıdır. + +İstemci yazılımının, her biri kendi ayrı ağ yığınına sahip iki kısmı (yürütüm istemcileri ve fikir birliği istemcileri) vardır. Diğer Ethereum düğümleriyle iletişim kurmanın yanı sıra, yürütme ve konsensus istemcilerinin birbirleriyle iletişim kurması gerekir. Bu sayfa, bu iletişimi sağlayan protokollerin giriş niteliğinde bir açıklamasını verir. + +Yürütüm istemcileri, yürütüm katmanı eşler arası ağı üzerinden işlemleri yayarlar. Bu, kimliği doğrulanmış eşler arasında şifrelenmiş iletişimi gerektirir. Blok önermek için bir doğrulayıcı seçildiğinde düğümün yerel işlem havuzundan geçen işlemler, İşaret blokları şeklinde paketlenerek RPC bağlantısı aracılığı ile fikir birliği istemcilerine iletilir. Bunun ardından, fikir birliği istemcileri eşler arası ağlarında İşaret bloklarını yayar. Bu, biri işlemin yayılması için yürütüm istemcilerine, diğeri ise bloğun yayılması için fikir birliği istemcilerine bağlanan iki farklı p2p ağı gerektirir. + +## Ön koşullar {#prerequisites} + +Ethereum [düğümleri ve istemcileri](/developers/docs/nodes-and-clients/) hakkında biraz bilgi edinmeniz, bu sayfayı anlamanıza yardımcı olacaktır. + +## Yürütüm katmanı {#execution-layer} + +Yürütme katmanının ağ protokolleri iki yığına bölünmüştür: + +- keşif yığını: UDP'nin üzerine inşa edilmiştir ve yeni bir düğümün bağlanacak eşler bulmasını sağlar + +- devP2P yığını: TCP'nin üzerinde yer alır ve düğümlerin bilgi alışverişinde bulunmasını sağlar + +Her iki yığın paralel çalışır. Keşif yığını, yeni ağ katılımcılarını ağa besler ve DevP2P yığını, onların etkileşimlerini sağlar. + +### Keşif {#discovery} + +Keşif, ağdaki diğer düğümleri bulma işlemidir. Bu, küçük bir dizi önyükleme düğümü, anında bulunabilmeleri ve istemciyi eşlere bağlayabilmeleri için (adresleri [sabit kodlanmış](https://github.com/ethereum/go-ethereum/blob/master/params/bootnodes.go) olan düğümler kullanılarak önyüklenir). Bu önyükleme düğümleri yalnızca bir dizi eşe, yeni bir düğüm tanıtmak için var olur - bu onların tek amacıdır, zinciri senkronize etmek gibi normal istemci görevlerine katılmazlar ve yalnızca bir istemci ilk kez çalıştırıldığında kullanılırlar. + +Düğüm-önyükleme düğümü etkileşimleri için kullanılan protokol, [Kademlia](https://medium.com/coinmonks/a-brief-overview-of-kademlia-and-its-use-in-various-decentralized-platforms-da08a7f72b8f), düğüm listelerini paylaşmak için [dağıtılmış karma tablosu](https://en.wikipedia.org/wiki/Distributed_hash_table) kullanır. Her düğümün, en yakın eşlerine bağlanmak için gereken bilgileri içeren bu tablonun bir sürümü vardır. Bu 'yakınlık' coğrafi değildir - mesafe, düğüm kimliğinin benzerliği ile tanımlanır. Her düğümün tablosu, bir güvenlik özelliği olarak düzenli olarak yenilenir. Örneğin, [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5)'te, keşif protokolü düğümleri, istemcinin desteklediği alt protokolleri görüntüleyen 'reklamlar' da gönderebilir, bu da eşlerin, her ikisinin de iletişim kurmak için kullanabilecekleri protokoller hakkında pazarlık yapmasına olanak tanır. + +Keşif, bir PİNG-PONG oyunuyla başlar. Başarılı bir PING-PONG, yeni düğümü bir önyükleme düğümüne "bağlar". Bir önyükleme düğümünü ağa giren yeni bir düğümün varlığı konusunda uyaran ilk mesaj bir `PING`'dir. Bu `PING`, yeni düğüm, önyükleme düğümü ve bir sona erme zaman damgası hakkında hash edilmiş bilgileri içerir. Başlangıç düğümü `PING`'i alır ve `PING` karmasını içeren bir `PONG` döndürür. `PING` ve `PONG` karma değerleri eşleşirse, yeni düğüm ile önyükleme düğümü arasındaki bağlantı doğrulanır ve "bağlı" oldukları söylenir. + +Bağlandıktan sonra, yeni düğüm, önyükleme düğümüne bir `KOMŞUNU BUL` isteği gönderebilir. Önyükleme düğümü tarafından döndürülen veriler, yeni düğümün bağlanabileceği eşlerin bir listesini içerir. Düğümler bağlı değilse, `KOMŞULARI BUL` isteği başarısız olur, bu nedenle yeni düğüm ağa giremez. + +Yeni düğüm, önyükleme düğümünden komşuların bir listesini aldığında, her biri ile bir PING-PONG alışverişi başlatır. Başarılı PING-PONG'lar yeni düğümü, komşularına bağlayarak mesaj alışverişini mümkün kılar. + +``` +istemciyi başlat --> önyükleme düğümüne bağlan --> önyükleme düğümüne bağ --> komşuları bul --> komşularla bağ +``` + +Yürütüm istemcileri şu anda [Discv4](https://github.com/ethereum/devp2p/blob/master/discv4.md) keşif protokolünü kullanıyor ve [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5) protokolüne geçmek için aktif bir çaba söz konusudur. + +#### ENR: Ethereum Düğüm Kayıtları {#enr} + +[Ethereum Düğüm Kaydı (ENR)](/developers/docs/networking-layer/network-addresses/), üç temel öğeyi içeren bir nesnedir: bir imza (kabul edilmiş kimlik şemasına uygun şekilde yapılmış kayıt içerikleri karması), kayıtta yapılan değişiklikleri takip eden bir sıra numarası ve keyfi anahtar listesi: değer çiftleri. Bu, yeni eşler arasında daha kolay tanımlayıcı bilgi alışverişi sağlayan geleceğe yönelik bir biçimdir ve Ethereum düğümleri için tercih edilen [ağ adresi](/developers/docs/networking-layer/network-addresses) biçimidir. + +#### Keşif neden UDP üzerine kuruludur? {#why-udp} + +UDP, herhangi bir hata kontrolünü, başarısız paketlerin yeniden gönderilmesini veya dinamik olarak bağlantıların açılıp kapanmasını desteklemez - bunun yerine, başarılı bir şekilde alınıp alınmadığına bakılmaksızın, yalnızca bir hedefe, sürekli bir bilgi akışı gönderir. Bu minimum işlevsellik, aynı zamanda minimum ek yük anlamına gelir ve bu tür bir bağlantıyı çok hızlı hale getirir. Keşif için, bir düğümün bir akran ile resmi bir bağlantı kurmak için sadece varlığını bildirmek istediği durumlarda, UDP yeterlidir. Ancak, ağ yığınının geri kalanı için UDP amaca uygun değildir. Düğümler arasındaki bilgi alışverişi oldukça karmaşıktır ve bu nedenle yeniden gönderme, hata denetimi vb. destekleyebilen daha tam özellikli bir protokole ihtiyaç duyar. TCP ile ilişkili ek yük, ek işlevsellik değerindedir. Bu nedenle, P2P yığınının çoğunluğu TCP üzerinden çalışır. + +### DevP2P {#devp2p} + +DevP2P'nin kendisi, Ethereum'un eşler arası ağı kurmak ve sürdürmek için uyguladığı bir protokol yığınıdır. Yeni düğümler ağa girdikten sonra, etkileşimleri [DevP2P](https://github.com/ethereum/devp2p) yığınındaki protokoller tarafından yönetilir. Bunların tümü TCP'nin üzerinde yer alır ve RLPx aktarım protokolünü, kablo protokolünü ve birkaç alt protokolü içerir. [RLPx](https://github.com/ethereum/devp2p/blob/master/rlpx.md), düğümler arasındaki oturumları başlatmayı, doğrulamayı ve sürdürmeyi yöneten protokoldür. RLPx, düğümler arasında göndermek için verileri minimum bir yapıya kodlamak için alan açısından çok verimli bir yöntem olan RLP'yi (Yinelemeli Uzunluk Öneki) kullanarak mesajları kodlar. + +İki düğüm arasındaki bir RLPx oturumu, ilk olarak kriptografik el sıkışma ile başlar. Bu, düğümün daha sonra eş tarafından doğrulanan bir yetkilendirme mesajı göndermesini içerir. Başarılı doğrulamadan sonra, eş, başlatıcı düğüme geri dönmek için bir yetkilendirme alındı mesajı oluşturur. Bu, düğümlerin özel ve güvenli bir şekilde iletişim kurmasını sağlayan bir anahtar değişim sürecidir. Başarılı bir kriptografik el sıkışma, daha sonra her iki düğümü de birbirlerine "kablo üzerinden" bir "merhaba" mesajı göndermeleri için tetikler. Kablo protokolü, başarılı bir merhaba mesaj alışverişi ile başlatılır. + +Merhaba mesajları şunları içerir: + +- protokol versiyonu +- istemci kimliği +- bağlantı noktası +- düğüm ID'si +- desteklenen alt protokollerin listesi + +Bu, başarılı bir etkileşim için gereken bilgidir, çünkü her iki düğüm arasında hangi yeteneklerin paylaşıldığını tanımlar ve iletişimi yapılandırır. Her düğüm tarafından desteklenen alt protokol listelerinin karşılaştırıldığı ve her iki düğüm için ortak olanların oturumda kullanılabileceği bir alt protokol görüşmesi süreci vardır. + +Merhaba mesajları ile birlikte, kablo protokolü ayrıca bir eşe bağlantının kapatılacağı konusunda uyarı veren bir "bağlantıyı kes" mesajı da gönderebilir. Kablo protokolü ayrıca, bir oturumu açık tutmak için periyodik olarak gönderilen PING ve PONG mesajlarını da içerir. RLPx ve kablolu protokol değiş tokuşları, bu nedenle, belirli bir alt protokole göre değiş tokuş edilecek faydalı bilgiler için iskele sağlayarak, düğümler arasındaki iletişimin temellerini oluşturur. + +### Alt-protokoller {#sub-protocols} + +#### Kablo protokolü {#wire-protocol} + +Eşler bağlandığında ve bir RLPx oturumu başlatıldığında, kablo protokolü eşlerin nasıl iletişim kurduğunu tanımlar. Kablo protokolü başlangıçta üç ana görevi tanımlıyordu: zincir senkronizasyonu, blok yayılımı ve işlem değişimi. Bununla birlikte, Ethereum hisse ispatına geçiş yaptıktan sonra blok yayılımı ve zincir senkronizasyonu, fikir birliği katmanının bir parçası haline geldi. İşlem borsası, hala yürütüm istemcilerinin faaliyet alanındadır. İşlem bilgisi değişimi, madencilerin bir sonraki bloğa dahil edilmek üzere bazılarını seçebilmeleri için düğümler arasında bekleyen işlemlerin değiş tokuşunu ifade eder. Bu görevlerle ilgili ayrıntılı bilgilere [buradan](https://github.com/ethereum/devp2p/blob/master/caps/eth.md) ulaşabilirsiniz. Bu alt protokolleri destekleyen istemciler, bunları [JSON-RPC](/developers/docs/apis/json-rpc/) aracılığıyla kullanıma sunar. + +#### les (hafif ethereum alt protokolü) {#les} + +Bu, hafif istemcileri senkronize etmek için minimum bir protokoldür. Geleneksel olarak bu protokol nadiren kullanılmıştır, çünkü tam düğümlerin hafif istemcilere teşvik olmadan veri sunması gerekir. Yürütme istemcilerinin varsayılan davranışı, hafif istemci verilerini les üzerinden sunmamaktır. Daha fazla bilgi les [spesifikasyonu](https://github.com/ethereum/devp2p/blob/master/caps/les.md)nda mevcuttur. + +#### Snap {#snap} + +[Snap protokolü](https://github.com/ethereum/devp2p/blob/master/caps/snap.md#ethereum-snapshot-protocol-snap), eşlere, son durumların anlık görüntülerini değiş tokuş etmek için, eşlerin ara Merkle trie düğümlerini indirmesine gerek kalmadan hesap ve depolama verilerini doğrulamasına izin veren isteğe bağlı bir uzantıdır. + +#### Wit (tanık protokolü) {#wit} + +[Tanık protokolü](https://github.com/ethereum/devp2p/blob/master/caps/wit.md#ethereum-witness-protocol-wit), eşler arasında durum şahitlerinin değiş tokuşunu sağlayan ve istemcileri zincirin ucuna senkronize etmeye yardımcı olan isteğe bağlı bir uzantıdır. + +#### Fısıltı {#whisper} + +Fısıltı, blok zincirine herhangi bir bilgi yazmadan eşler arasında güvenli mesajlaşma sağlamayı amaçlayan bir protokoldü. DevP2P tel protokolünün bir parçasıydı, ancak artık kullanımdan kaldırıldı. Benzer amaçlara sahip başka [ilgili projeler](https://wakunetwork.com/) de mevcuttur. + +## Konsensus katmanı {#consensus-layer} + +Konsensus istemcileri, farklı bir özellik ile ayrı bir eşler arası ağda yer alır. Konsensus istemcilerinin, eşlerinden yeni bloklar alabilmeleri ve blok teklif sahibi olma sırası kendilerine geldiğinde bunları yayınlayabilmeleri için blok dedikodularına katılmaları gerekir. Bu, yürütüm katmanına benzer şekilde ilk olarak bir keşif protokolü gerektirir, böylece bir düğüm eşleri bulabilir ve bloklar, tasdikler vb. alışverişi için güvenli oturumlar kurabilir. + +### Keşif {#consensus-discovery} + +Fikir birliği istemcileri, yürütüm istemcilerine benzer şekilde eş bulmak için UDP üzerinden [discv5](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-discovery-domain-discv5) kullanır. Discv5'in konsensus katmanı uygulaması, yalnızca discv5'i bir [libP2P](https://libp2p.io/) yığınına bağlayan ve DevP2P'yi kullanımdan kaldıran bir adaptör içermesi bakımından yürütme istemcilerinden farklıdır. Yürütüm katmanının RLPx oturumları, libP2P'nin gürültü güvenli kanal anlaşması lehine kullanımdan kaldırılmıştır. + +### ENRler {#consensus-enr} + +Konsensüs düğümleri için ENR, düğümün genel anahtarını, IP adresini, UDP ve TCP bağlantı noktalarını ve iki konsensusa özgü alanı içerir: onay alt ağı bit alanı ve `eth2` anahtarı. İlki, düğümlerin belirli tasdik dedikodu alt ağlarına katılan eşler bulmasını kolaylaştırır. `eth2` anahtarı, eşlerin doğru Ethereum'a bağlanmasını sağlayarak, düğümün hangi Ethereum çatalı sürümünü kullandığı hakkında bilgi içerir. + +### libP2P {#libp2p} + +LibP2P yığını, keşiften sonra tüm iletişimleri destekler. İstemciler, ENR'lerinde tanımlandığı şekilde IPv4 ve/veya IPv6'yı arayabilir ve dinleyebilir. LibP2P katmanındaki protokoller, dedikodu ve req/resp alanlarına bölünebilir. + +### Gossip {#gossip} + +Dedikodu alanı, ağ boyunca hızla yayılması gereken tüm bilgileri içerir. Bu, işaret bloklarını, kanıtları, tasdikleri, çıkışları ve kesmeleri içerir. Bu, libP2P gossipsub v1 kullanılarak iletilir ve alınacak ve iletilecek maksimum dedikodu yükü boyutu da dahil olmak üzere her düğümde yerel olarak depolanan çeşitli meta verilere dayanır. Dedikodu alanı hakkında detaylı bilgiye [buradan](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-gossip-domain-gossipsub) ulaşabilirsiniz. + +### Talep-yanıt {#request-response} + +İstek-yanıt etki alanı, eşlerinden belirli bilgiler isteyen istemciler için protokoller içerir. Örnekler arasında, belirli kök karmalarıyla eşleşen veya bir dizi yuva içinde belirli İşaret blokları talep etmek yer alır. Yanıtlar her zaman hızlı sıkıştırılmış SSZ kodlu baytlar olarak döndürülür. + +## Konsensus istemcisi neden SSZ'yi RLP'ye tercih ediyor? {#ssz-vs-rlp} + +SSZ, basit serileştirme anlamına gelir. Tüm yapının kodunu çözmek zorunda kalmadan, kodlanmış bir mesajın tek tek parçalarının kodunu çözmeyi kolaylaştıran sabit ofsetler kullanır; bu, kodlanmış mesajlardan belirli bilgi parçalarını verimli bir şekilde alabildiğinden, konsensus istemcisi için çok yararlıdır. Ayrıca, Merkleizasyon için ilgili verimlilik kazanımları ile Merkle protokolleriyle entegre olmak üzere özel olarak tasarlanmıştır. Konsensus katmanındaki tüm karmalar Merkle kökleri olduğundan, bu önemli bir gelişme sağlar. SSZ ayrıca değerlerin benzersiz temsillerini de garanti eder. + +## Yürütme ve konsensüs istemcilerini bağlama {#connecting-clients} + +Fikir birliği ve yürütüm istemcileri paralel şekilde çalışır. Fikir birliği istemcisinin yürütüm istemcisine talimatlar sağlayabilmesi ve yürütüm istemcisinin, İşaret bloklarına dahil etmek üzere fikir birliği istemcisine işlem paketlerini iletebilmesi için bunların birbirine bağlanması gerekir. İki istemci arasında iletişim, yerel bir RPC bağlantısı kullanılarak sağlanabilir. ["Engine-API"](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) olarak bilinen bir API, iki istemci arasında gönderilen talimatları tanımlar. Her iki istemci de tek bir ağ kimliğinin arkasında bulunduğundan, her istemci için ayrı bir anahtar (eth1 anahtarı ve eth2 anahtarı) içeren bir ENR'yi (Ethereum düğüm kaydı) ortak kullanırlar. + +İlgili ağ yığını parantez içinde olacak şekilde, kontrol akışının bir özeti aşağıda gösterilmiştir. + +### Fikir birliği istemcisi blok üreticisi olmadığında: + +- Konsensus istemcisi, blok dedikodu protokolü aracılığıyla bir blok alır (konsensus p2p) +- Konsensus istemcisi bloğu önceden doğrular, yani doğru meta verilerle geçerli bir göndericiden gelmesini sağlar +- Bloktaki işlemler yürütüm katmanına yürütüm yükü olarak gönderilir (yerel RPC bağlantısı) +- Yürütüm katmanı, işlemleri yürütür ve blok başlığındaki durumu doğrular (yani, karma eşleşmesini kontrol eder) +- Yürütüm katmanı, doğrulama verilerini konsensus katmanına geri iletir, blok artık doğrulanmış olarak kabul edilir (yerel RPC bağlantısı) +- Konsensus katmanı, kendi blok zincirinin başına blok ekler ve bunu onaylar, onaylamayı ağ üzerinden yayınlar (konsensus p2p) + +### Fikir birliği istemcisi blok üreticisi olduğunda: + +- Konsensus istemcisi, bir sonraki blok üreticisi olduğuna dair bildirim alır (konsensus p2p) +- Konsensus katmanı, yürütüm istemcisinde (yerel RPC) `create block` yöntemini çağırır +- Yürütüm katmanı, işlem dedikodu protokolü tarafından doldurulmuş işlem belleğine erişir (yürütme p2p) +- Yürütüm istemcisi, işlemleri bir bloğa toplar, işlemleri yürütür ve bir blok karması oluşturur +- Fikir birliği istemcisi, işlemleri ve blok karmasını yürütüm istemcisinden alır ve işaret bloğuna (yerel RPC) ekler +- Consensus istemcisi bloğu blok dedikodu protokolü üzerinden yayınlar (consensus p2p) +- Diğer istemciler, önerilen bloğu, blok dedikodu protokolü aracılığıyla alır ve yukarıda açıklandığı gibi doğrular (konsensus p2p) + +Blok, yeterli onaylayıcılar tarafından onaylandıktan sonra, zincirin başına eklenir, gerekçelendirilir ve sonunda kesinleştirilir. + +![](cons_client_net_layer.png) ![](exe_client_net_layer.png) + +[ethresear.ch](https://ethresear.ch/t/eth1-eth2-client-relationship/7248)'den fikir birliği ve yürütüm istemcileri için ağ katmanı şeması + +## Daha Fazla Okuma {#further-reading} + +[DevP2P](https://github.com/ethereum/devp2p) [LibP2p](https://github.com/libp2p/specs) [Konsensus katmanı ağ özellikleri](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#enr-structure) [kademlia'dan discv5'e](https://vac.dev/kademlia-to-discv5) [kademlia belgesi](https://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf) [Ethereum p2p'ye giriş](https://p2p.paris/en/talks/intro-ethereum-networking/) [eth1/eth2 ilişkisi](http://ethresear.ch/t/eth1-eth2-client-relationship/7248) [birleştirme ve eth2 istemci ayrıntıları videosu](https://www.youtube.com/watch?v=zNIrIninMgg) diff --git a/src/content/translations/tr/developers/docs/networking-layer/network-addresses/index.md b/public/content/translations/tr/developers/docs/networking-layer/network-addresses/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/networking-layer/network-addresses/index.md rename to public/content/translations/tr/developers/docs/networking-layer/network-addresses/index.md diff --git a/src/content/translations/tr/developers/docs/networking-layer/portal-network/index.md b/public/content/translations/tr/developers/docs/networking-layer/portal-network/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/networking-layer/portal-network/index.md rename to public/content/translations/tr/developers/docs/networking-layer/portal-network/index.md diff --git a/src/content/translations/tr/developers/docs/networks/index.md b/public/content/translations/tr/developers/docs/networks/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/networks/index.md rename to public/content/translations/tr/developers/docs/networks/index.md diff --git a/src/content/translations/tr/developers/docs/nodes-and-clients/archive-nodes/index.md b/public/content/translations/tr/developers/docs/nodes-and-clients/archive-nodes/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/nodes-and-clients/archive-nodes/index.md rename to public/content/translations/tr/developers/docs/nodes-and-clients/archive-nodes/index.md diff --git a/src/content/translations/tr/developers/docs/nodes-and-clients/bootnodes/index.md b/public/content/translations/tr/developers/docs/nodes-and-clients/bootnodes/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/nodes-and-clients/bootnodes/index.md rename to public/content/translations/tr/developers/docs/nodes-and-clients/bootnodes/index.md diff --git a/public/content/translations/tr/developers/docs/nodes-and-clients/client-diversity/index.md b/public/content/translations/tr/developers/docs/nodes-and-clients/client-diversity/index.md new file mode 100644 index 00000000000..39d5ada060c --- /dev/null +++ b/public/content/translations/tr/developers/docs/nodes-and-clients/client-diversity/index.md @@ -0,0 +1,109 @@ +--- +title: İstemci çeşitliliği +description: Ethereum istemci çeşitliliğinin önemine dair üst düzey bir açıklama. +lang: tr +sidebarDepth: 2 +--- + +Ethereum düğümünün davranışı, çalıştırdığı istemci yazılımı tarafından kontrol edilir. Her biri farklı dillerde ayrı takımlar tarafından geliştirilen ve sürdürülen birden çok kullanılabilir seviyede Ethereum istemcisi bulunmaktadır. İstemciler, istemcilerin birbiriyle kesintisiz biçimde iletişim kuracağı, aynı fonksiyonelliğe sahip olacağı ve eş değer bir kullanıcı deneyimi sunacağı ortak özellikler üzerine kurulmuştur. Ancak, şu anda düğümler arasında istemcilerin dağıtımı ağ güçlendirmenin tam potansiyeline erişmesi için yeterince eşit değildir. İdeal olarak kullanıcılar ağa olabildiğince istemci çeşitliliği getirmek için farklı istemciler arasında aşağı yukarı eşit olarak dağılırlar. + +## Ön koşullar {#prerequisites} + +Düğümlerin ve istemcilerin ne olduğu konusunda henüz bir fikriniz yoksa, [düğümler ve istemciler](/developers/docs/nodes-and-clients/) kısmına bakın. [Yürütme](/glossary/#execution-layer) ve [mutabakat](/glossary/#consensus-layer) katmanları sözlükte tanımlanmıştır. + +## Neden birden fazla istemci var? {#why-multiple-clients} + +Birden fazla, bağımsız geliştirilen ve sürdürülen istemci bulunmaktadır çünkü istemci çeşitliliği ağı saldırılara ve hatalara karşı daha dayanıklı hale getirir. Birden fazla istemci Ethereum'a özel bir güçtür - diğer blok zincirler tek bir istemcinin yanılmazlığına güvenir. Ancak, sadece birden fazla istemci olması yetmez, topluluk tarafından benimsenmiş ve toplam aktif düğümlerin onların arasında neredeyse eş olarak dağıtılmış olması gerekir. + +## İstemci çeşitliliği neden önemli? {#client-diversity-importance} + +Birçok bağımsız geliştirilen ve sürdürülen istemci olması merkeziyetsiz bir ağın iyi durumu için hayatidir. Hadi sebeplerini öğrenelim. + +### Hatalar {#bugs} + +Tekil bir istemcideki hata Ethereum düğümlerinin azınlık bir kısmını temsil ediyorken ağ için daha küçük bir risktir. Birçok istemci arasında kabaca eşit bir düğüm dağılımı ile, çoğu istemcinin paylaşılan bir sorundan muzdarip olma olasılığı düşüktür ve sonuç olarak ağ daha sağlamdır. + +### Saldırılara karşı dayanıklılık {#resilience} + +İstemci çeşitliliği saldırılara karşı da dayanıklılık sağlar. Örneğin, [spesifik bir istemciyi](https://twitter.com/vdWijden/status/1437712249926393858) zincirin özel bir dalına doğru kandıran bir saldırının başarılı olma ihtimali düşüktür çünkü diğer istemcilerin aynı şekilde saldırılabilir olması muhtemel değildir ve normal zincir bozulmamış şekilde durur. Düşük istemci çeşitliliği, baskın istemciye yönelik bir saldırıyla ilişkilendirilen riski arttırır. İstemci çeşitliliği, ağdaki kötü niyetli saldırılara karşı önemli bir savunma olduğunu zaten kanıtlamıştır, örneğin 2016'daki Şanghay hizmet reddi saldırısı, saldırganların baskın istemciyi (Geth) blok başına on binlerce kez yavaş bir disk girdi/çıktı işlemi yürütmesi için kandırabilmeleri nedeniyle mümkün oldu. Çünkü açığı paylaşmayan alternatif istemciler de çevrimiçiydi, Geth'teki açık kapatılırken Ethereum saldırıya karşı koymayı ve çalışmaya devam etmeyi başarmıştı. + +### Hisse kanıtı nihayeti {#finality} + +Ethereum düğümlerinin %33'ünden fazlasına sahip olan bir fikir birliği katmanındaki bir açık fikir birliği katmanının kesinleşmesini engelleyebilirdi, yani kullanıcılar işlemlerin bir noktada geri alınmayacağına veya değiştirilmeyeceğine güvenemezdi. Bu özellikle DeFi gibi Ethereum üzerinde inşa edilmiş birçok uygulama için bayağı sıkıntılı olurdu. + + Daha kötüsü, üçte ikilik bir çoğunluğa sahip olan bir istemcideki kritik bir hata zincirin hatalı biçimde ayrılmasına ve kesinleşmesine yol açabilirdi, bu da doğrulayıcıların büyük bir kısmının geçersiz bir zincirde takılı kalmasına sebep olurdu. Eğer doğru zincire geri katılmak isterlerse, bu doğrulayıcılar ya cezalandırma ile ya da yavaş ve pahalı bir gönüllü çekilme ve yeniden aktifleştirme ile karşı karşıya kalırlardı. Bir kesintinin büyüklüğü maksimum olarak üçte ikilik bir çoğunluk cezalandırılacak şekilde (32 ETH) sorunlu düğümlerin sayısı ile ölçeklendirilir. + +Bunlar muhtemel olmayan senaryolar olsa da, Ethereum ekosistemi istemcilerin aktif düğümler arasındaki dağıtımını eşitleyerek riski azaltabilir. İdeal olarak, hiçbir fikir birliği istemcisi, toplam düğümlerin %33'lük bir kısmına sahip olamaz. + +### Ortak sorumluluk {#responsibility} + +Çoğunluk istemciye sahip olmanın bir insan maliyeti de vardır. Küçük bir geliştirme ekibine aşırı baskı ve sorumluluk yükler. İstemci çeşitliliği ne kadar azsa, çoğunluk istemciyi koruyan geliştiricilerin sorumluluk yükü o kadar büyük olur. Bu sorumluluğu birden fazla ekibe yaymak, hem Ethereum'un düğüm ağının hem de insan ağının durumu için için iyidir. + +## Mevcut istemci çeşitliliği {#current-client-diversity} + +![İstemci çeşitliliğini gösteren pasta grafiği](./client-diversity.png) _[ethernodes.org](https://ethernodes.org) ve [clientdiversity.org](https://clientdiversity.org/) diyagram verisi_ + +Yukarıdaki iki pasta grafiği yürütüm ve fikir birliği katmanları için mevcut istemci çeşitliliğini resmetmektedir (yazıldığı Ocak 2022 esnasında). Yürütüm katmanı büyük oranda [Geth](https://geth.ethereum.org/) tarafından domine edilmiştir, uzak ikinci sırada [Open Ethereum](https://openethereum.github.io/) gelir, [Erigon](https://github.com/ledgerwatch/erigon) üçüncü ve [Nethermind](https://nethermind.io/) dördüncüdür, diğer istemciler de ağın %1'den azını kapsar. Fikir birliği katmanında en yaygın kullanılan istemci - [Prysm](https://prysmaticlabs.com/#projects) - Geth kadar baskın olmasa da yine de ağın %60'tan fazlasını temsil eder. [Lighthouse](https://lighthouse.sigmaprime.io/) ve [Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) sırasıyla 20% ve 14% civarını kapsar ve diğer istemciler nadiren kullanılır. + +Yürütüm katmanı verileri 23/01/2022 tarihinde [Ethernodes](https://ethernodes.org)'dan alınmıştır. Fikir birliği istemcileri hakkındaki veriler [Micheal Sproul](https://github.com/sigp/blockprint)'dan alınmıştır. Fikir birliği istemcisi verilerinin elde edilmesi daha zordur çünkü fikir birliği katmanı müşterileri her zaman onları tanımlamak için kullanılabilecek açık izlere sahip değildir. Veri bazen azınlık istemcilerin bazılarını karıştıran bir sınıflandırma algoritması tarafından oluşturulmuştur (daha fazla ayrıntı için [buraya](https://twitter.com/sproulM_/status/1440512518242197516) bakın). Yukarıdaki diyagramda, bu karışık sınıflandırmalar bir ya/veya etiketiyle işlem görmüştür (ör. Nimbus/Teku). Yine de, ağın çoğunluğunun Prysm çalıştırdığı açıktır. Veri belirli bir blok dizisinin anlık çekimidir (bu durumda 2048001 ila 2164916 arası yuvalardaki İşaret blokları) ve Prysm'in baskınlığı bazen %68'i geçecek şekilde daha yüksek olmuştur. Sadece anlık çekimler olmasına rağmen, diyagramdaki değerler mevcut istemci çeşitliliği durumu hakkında iyi bir genel algı sağlamaktadır. + +Fikir birliği katmanı için güncel istemci çeşitliliği verileri artık [clientdiversity.org](https://clientdiversity.org/) adresinde mevcuttur. + +## Yürütüm katmanı {#execution-layer} + +Şimdiye kadar, istemci çeşitliliği etrafındaki konuşmalar esas olarak fikir birliği katmanına odaklandı. Ancak, yürütüm istemcisi [Geth](https://geth.ethereum.org) şu anda tüm düğümlerin yaklaşık %85'ini oluşturmaktadır. Bu yüzde, fikir birliği istemcileri için olduğu gibi aynı nedenlerle sorunludur. Örneğin, Geth'de işlemlerin ele alınmasını veya yürütme yüklerinin oluşturulmasını etkileyen bir hata fikir birliği istemcilerinin sıkıntılı veya hatalı işlemleri sonlandırmasına yol açabilir. Bundan dolayı, Ethereum daha eşit bir yürütüm katmanı dağılımı ile, ideal olarak hiçbir istemcinin ağın %33'ünden fazlasını temsil etmediği bir durum ile daha sağlıklı olurdu. + +## Azınlık istemcisi kullanın {#use-minority-client} + +İstemci çeşitliliğini ele almak, azınlık istemcileri seçmek için bireysel kullanıcılardan daha fazlasını gerektirir - madencilik/doğrulayıcı havuzları ve büyük dapp'ler ve borsalar gibi kurumların da istemcileri değiştirmesini gerektirir. Ancak tüm kullanıcılar tüm mevcut Ethereum yazılımlarının kullanımını normalleştirerek mevcut eşitsizliği ortadan kaldırmaya katkı sağlayabilirler. Birleşimden sonra, tüm düğüm operatörlerinin, bir yürütüm istemcisi ve bir fikir birliği istemcisi çalıştırmaları gerekecektir. Aşağıda önerilen istemci kombinasyonlarını seçmek, istemci çeşitliliğini artırmaya yardımcı olacaktır. + +### Yürütüm istemcileri {#execution-clients} + +[Besu](https://www.hyperledger.org/use/besu) + +[Nethermind](https://downloads.nethermind.io/) + +[Erigon](https://github.com/ledgerwatch/erigon) + +[Go-Ethereum](https://geth.ethereum.org/) + +### Mutabakat istemcileri {#consensus-clients} + +[Nimbus](https://nimbus.team/) + +[Lighthouse](https://github.com/sigp/lighthouse) + +[Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) + +[Lodestar](https://github.com/ChainSafe/lodestar) + +[Prysm](https://docs.prylabs.network/docs/getting-started) + +Teknik kullanıcılar azınlık istemcileri için daha fazla öğretici ve doküman yazarak ve düğüm yöneten yakınlarını baskın istemcilerden ayrılmaya yönlendirerek bu süreci hızlandırmaya yardımcı olabilirler. Bir azınlık fikir birliği katmanına geçiş için kılavuzlar [clientdiversity.org](https://clientdiversity.org/) adresinde mevcuttur. + +## İstemci çeşitliliği gösterge panelleri {#client-diversity-dashboards} + +Birden fazla gösterge paneli yürütüm ve fikir birliği katmanları için gerçek zamanlı istemci çeşitliliği istatisikleri verir. + +**Fikir birliği katmanı:** + +- [Rated.network](https://www.rated.network/) +- [clientdiversity.org](https://clientdiversity.org/) **Yürütüm katmanı:** + +- [execution-diversity.info](https://execution-diversity.info/) +- [Ethernodes](https://ethernodes.org/) + +## Daha fazla okuma {#further-reading} + +- [Ethereum'un fikir birliği katmanında istemci çeşitliliği](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) +- [Ethereum Birleşimi: Çoğunluk istemcisini sorumluluğunu alarak çalıştırın!](https://dankradfeist.de/ethereum/2022/03/24/run-the-majority-client-at-your-own-peril.html) – _Dankrad Fiest, 24 Mart 2022_ +- [İstemci çeşitliliğinin önemi](https://our.status.im/the-importance-of-client-diversity/) +- [Ethereum düğüm hizmetleri listesi](https://ethereumnodes.com/) +- [İstemci çeşitliliği sorununun "Beş Nedeni"](https://notes.ethereum.org/@afhGjrKfTKmksTOtqhB9RQ/BJGj7uh08) +- [Ethereum Çeşitliliği ve Bunun İçin Nasıl Çözüm Buluruz (YouTube)](https://www.youtube.com/watch?v=1hZgCaiqwfU) +- [clientdiversity.org](https://clientdiversity.org/) + +## İlgili konular {#related-topics} + +- [Bir Ethereum düğümü çalıştırın](/run-a-node/) +- [Düğümler ve istemciler](/developers/docs/nodes-and-clients/) diff --git a/src/content/translations/tr/developers/docs/nodes-and-clients/index.md b/public/content/translations/tr/developers/docs/nodes-and-clients/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/nodes-and-clients/index.md rename to public/content/translations/tr/developers/docs/nodes-and-clients/index.md diff --git a/src/content/translations/tr/developers/docs/nodes-and-clients/light-clients/index.md b/public/content/translations/tr/developers/docs/nodes-and-clients/light-clients/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/nodes-and-clients/light-clients/index.md rename to public/content/translations/tr/developers/docs/nodes-and-clients/light-clients/index.md diff --git a/src/content/translations/tr/developers/docs/nodes-and-clients/node-architecture/index.md b/public/content/translations/tr/developers/docs/nodes-and-clients/node-architecture/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/nodes-and-clients/node-architecture/index.md rename to public/content/translations/tr/developers/docs/nodes-and-clients/node-architecture/index.md diff --git a/src/content/translations/tr/developers/docs/nodes-and-clients/nodes-as-a-service/index.md b/public/content/translations/tr/developers/docs/nodes-and-clients/nodes-as-a-service/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/nodes-and-clients/nodes-as-a-service/index.md rename to public/content/translations/tr/developers/docs/nodes-and-clients/nodes-as-a-service/index.md diff --git a/src/content/translations/tr/developers/docs/nodes-and-clients/run-a-node/index.md b/public/content/translations/tr/developers/docs/nodes-and-clients/run-a-node/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/nodes-and-clients/run-a-node/index.md rename to public/content/translations/tr/developers/docs/nodes-and-clients/run-a-node/index.md diff --git a/src/content/translations/tr/developers/docs/oracles/index.md b/public/content/translations/tr/developers/docs/oracles/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/oracles/index.md rename to public/content/translations/tr/developers/docs/oracles/index.md diff --git a/src/content/translations/tr/developers/docs/programming-languages/dart/index.md b/public/content/translations/tr/developers/docs/programming-languages/dart/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/programming-languages/dart/index.md rename to public/content/translations/tr/developers/docs/programming-languages/dart/index.md diff --git a/src/content/translations/tr/developers/docs/programming-languages/delphi/index.md b/public/content/translations/tr/developers/docs/programming-languages/delphi/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/programming-languages/delphi/index.md rename to public/content/translations/tr/developers/docs/programming-languages/delphi/index.md diff --git a/src/content/translations/tr/developers/docs/programming-languages/dot-net/index.md b/public/content/translations/tr/developers/docs/programming-languages/dot-net/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/programming-languages/dot-net/index.md rename to public/content/translations/tr/developers/docs/programming-languages/dot-net/index.md diff --git a/src/content/translations/tr/developers/docs/programming-languages/golang/index.md b/public/content/translations/tr/developers/docs/programming-languages/golang/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/programming-languages/golang/index.md rename to public/content/translations/tr/developers/docs/programming-languages/golang/index.md diff --git a/src/content/translations/tr/developers/docs/programming-languages/index.md b/public/content/translations/tr/developers/docs/programming-languages/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/programming-languages/index.md rename to public/content/translations/tr/developers/docs/programming-languages/index.md diff --git a/src/content/translations/tr/developers/docs/programming-languages/java/index.md b/public/content/translations/tr/developers/docs/programming-languages/java/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/programming-languages/java/index.md rename to public/content/translations/tr/developers/docs/programming-languages/java/index.md diff --git a/src/content/translations/tr/developers/docs/programming-languages/javascript/index.md b/public/content/translations/tr/developers/docs/programming-languages/javascript/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/programming-languages/javascript/index.md rename to public/content/translations/tr/developers/docs/programming-languages/javascript/index.md diff --git a/src/content/translations/tr/developers/docs/programming-languages/python/index.md b/public/content/translations/tr/developers/docs/programming-languages/python/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/programming-languages/python/index.md rename to public/content/translations/tr/developers/docs/programming-languages/python/index.md diff --git a/src/content/translations/tr/developers/docs/programming-languages/ruby/index.md b/public/content/translations/tr/developers/docs/programming-languages/ruby/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/programming-languages/ruby/index.md rename to public/content/translations/tr/developers/docs/programming-languages/ruby/index.md diff --git a/src/content/translations/tr/developers/docs/programming-languages/rust/index.md b/public/content/translations/tr/developers/docs/programming-languages/rust/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/programming-languages/rust/index.md rename to public/content/translations/tr/developers/docs/programming-languages/rust/index.md diff --git a/src/content/translations/tr/developers/docs/scaling/index.md b/public/content/translations/tr/developers/docs/scaling/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/scaling/index.md rename to public/content/translations/tr/developers/docs/scaling/index.md diff --git a/src/content/translations/tr/developers/docs/scaling/optimistic-rollups/index.md b/public/content/translations/tr/developers/docs/scaling/optimistic-rollups/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/scaling/optimistic-rollups/index.md rename to public/content/translations/tr/developers/docs/scaling/optimistic-rollups/index.md diff --git a/src/content/translations/tr/developers/docs/scaling/plasma/index.md b/public/content/translations/tr/developers/docs/scaling/plasma/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/scaling/plasma/index.md rename to public/content/translations/tr/developers/docs/scaling/plasma/index.md diff --git a/src/content/translations/tr/developers/docs/scaling/sidechains/index.md b/public/content/translations/tr/developers/docs/scaling/sidechains/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/scaling/sidechains/index.md rename to public/content/translations/tr/developers/docs/scaling/sidechains/index.md diff --git a/src/content/translations/tr/developers/docs/scaling/state-channels/index.md b/public/content/translations/tr/developers/docs/scaling/state-channels/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/scaling/state-channels/index.md rename to public/content/translations/tr/developers/docs/scaling/state-channels/index.md diff --git a/src/content/translations/tr/developers/docs/scaling/validium/index.md b/public/content/translations/tr/developers/docs/scaling/validium/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/scaling/validium/index.md rename to public/content/translations/tr/developers/docs/scaling/validium/index.md diff --git a/src/content/translations/tr/developers/docs/scaling/zk-rollups/index.md b/public/content/translations/tr/developers/docs/scaling/zk-rollups/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/scaling/zk-rollups/index.md rename to public/content/translations/tr/developers/docs/scaling/zk-rollups/index.md diff --git a/public/content/translations/tr/developers/docs/smart-contracts/anatomy/index.md b/public/content/translations/tr/developers/docs/smart-contracts/anatomy/index.md new file mode 100644 index 00000000000..abd5756eecd --- /dev/null +++ b/public/content/translations/tr/developers/docs/smart-contracts/anatomy/index.md @@ -0,0 +1,658 @@ +--- +title: Akıllı sözleşmelerin anatomisi +description: Akıllı bir sözleşmenin anatomisine derinlemesine bir bakış - fonksiyonlar, veriler ve değişkenler. +lang: tr +--- + +Bir akıllı sözleşme Ethereum üzerindeki bir adreste çalışan bir programdır. Bir işlem alındığında yürütülebilen fonksiyonlar ve verilerden oluşurlar. Burada bir akıllı sözleşmenin nelerden oluştuğu hakkında genel bir bakış bulunmaktadır. + +## Ön Koşullar {#prerequisites} + +İlk olarak [akıllı sözleşmeler](/developers/docs/smart-contracts/) hakkında okuduğunuzdan emin olun. Bu belge, hâlihazırda JavaScript veya Python gibi programlama dillerine aşina olduğunuzu varsayar. + +## Veri {#data} + +Her sözleşme verisi bir lokasyona atanmalıdır: ya `storage` ya da `memory`. Bir akıllı sözleşmede depolamayı değiştirmek pahalıdır, bundan dolayı verinizin nerede yaşayacağını düşünmelisiniz. + +### Depolama {#storage} + +Kalıcı veriden depolama olarak bahsedilir ve durum değişkenleri tarafından temsil edilir. Bu değerler kalıcı olarak blok zincirinde depolanır. Sözleşmenin derlendiğinde blok zincirinde ne kadar depolama ihtiyacı duyacağını takip edebilmesi için türünü deklare etmelisiniz. + +```solidity +// Solidity example +contract SimpleStorage { + uint storedData; // State variable + // ... +} +``` + +```python +# Vyper example +storedData: int128 +``` + +Hâlihazırda nesne odaklı dillerde programlama yaptıysanız, büyük ihtimalle çoğu türe aşinasınızdır. Ancak eğer Ethereum geliştirme konusunda acemiyseniz `address` türünü pek görmemişsinizdir. + +Bir `address` türü 20 bayt veya 160 bite eşit olan bir Ethereum adresi tutabilir. Önünde 0x olan onaltılık gösterim şeklinde döndürür. + +Diğer türler: + +- boolean +- tam sayı +- sabit noktalı sayılar +- sabit boyutlu bayt dizileri +- dinamik olarak boyutlandırılmış bayt dizileri +- Rasyonel ve tam sayı sabitleri +- Metin değişmezleri +- Değişmez onaltılıklar +- Sıralamalar + +Daha fazla açıklama için belgelere göz atın: + +- [Vyper türlerini gör](https://vyper.readthedocs.io/en/v0.1.0-beta.6/types.html#value-types) +- [Solidity türlerini gör](https://solidity.readthedocs.io/en/latest/types.html#value-types) + +### Bellek {#memory} + +Sadece bir sözleşme fonksiyonunun yürütümü esnasında depolanan değerlere bellek değişkenleri denir. Bunlar blok zincirinde kalıcı şekilde depolanmadıkları için kullanımları çok daha ucuzdur. + +[Solidity belgelerinden](https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html?highlight=memory#storage-memory-and-the-stack) EVM'nin nasıl veri depoladığıyla (Depolama, Bellek ve Yığın) ilgili daha fazla bilgi edinin. + +### Ortam değişkenleri {#environment-variables} + +Sözleşmenizde tanımladığınız değişkenlere ek olarak, bazı özel global değişkenler bulunmaktadır. Başlıca blok zinciri veya mevcut işlem hakkında bilgi sağlamak için kullanılırlar. + +Örnekler: + +| **Özellik** | **Durum değişkeni** | **Açıklama** | +| ----------------- | ------------------- | ---------------------------------- | +| `block.timestamp` | uint256 | Mevcut blok dönemi zaman damgası | +| `msg.sender` | adres | Mesajın göndericisi (mevcut çağrı) | + +## Fonksiyonlar {#functions} + +En basit şekilde, fonksiyonlar gelen işlemlere yanıt olarak bilgi alabilir veya düzenleyebilir. + +İki tip fonksiyon çağrısı bulunur: + +- `internal` – bunlar bir EVM çağrısı oluşturmazlar + - Internal fonksiyonlar ve durum değişkenleri sadece içten erişilebilir (yani mevcut sözleşmeden veya ondan türemiş sözleşmelerden) +- `external` – bunlar bir EVM çağrısı oluştururlar + - External fonksiyonlar sözleşme arayüzünün bir parçasıdır, bu da diğer sözleşmelerden ve işlemler aracılığıyla çağrılabilecekleri anlamına gelir. Bir external fonksiyon olan `f` içten çağrılamaz (yani `f()` çalışmaz ama `this.f()` çalışır). + +Ayrıca `public` veya `private` olabilirler + +- `public` fonksiyonları sözleşmenin içinden veya mesajlar aracılığıyla çağrılabilirler +- `private` fonksiyonları sadece tanımlandıkları sözleşmede mevcutturlar ve türetilmiş sözleşmelerde olmazlar + +Hem fonksiyonlar hem de durum değişkenleri public veya private yapılabilir + +Burada bir sözleşmedeki bir durum değişkenini güncellemek için bir fonksiyon bulunmaktadır: + +```solidity +// Solidity example +function update_name(string value) public { + dapp_name = value; +} +``` + +- `string` türünün `value` parametresi müteakip fonksiyona geçirilir: `update_name` +- `public` olarak deklare edilir, bu da herkesin ona erişebileceği anlamına gelir +- `view` olarak deklare edilmez, yani sözleşme durumunu değiştirebilir + +### Fonksiyonları gör {#view-functions} + +Bu fonksiyonlar sözleşmenin verisinin durumunu değiştirmemeye söz verirler. Yaygın örnekler "alıcı" fonksiyonlardır – örnek olarak bunu bir kullanıcının bakiyesini almak için kullanabilirsiniz. + +```solidity +// Solidity example +function balanceOf(address _owner) public view returns (uint256 _balance) { + return ownerPizzaCount[_owner]; +} +``` + +```python +dappName: public(string) + +@view +@public +def readName() -> string: + return dappName +``` + +Durumu değiştirme olarak sayılan şeyler: + +1. Değişkenlikleri belirtmek için yazma. +2. [Olaylar yayınlama](https://solidity.readthedocs.io/en/v0.7.0/contracts.html#events). +3. [Başka sözleşmeler oluşturma](https://solidity.readthedocs.io/en/v0.7.0/control-structures.html#creating-contracts). +4. Müteakip komutun kullanımı, `selfdestruct`. +5. Çağrılar aracılığıyla ether gönderme. +6. İşareti `view` ya da `pure` olmayan herhangi bir fonksiyonu çağırma. +7. Alt düzey çağrıları kullanma. +8. Belirli işlem kodları içeren satır içi tümleşkeler kullanma. + +### Yapıcı fonksiyonlar {#constructor-functions} + +`constructor` fonksiyonları sadece sözleşme ilk dağıtılığında tek sefer yürütülür. Birçok sınıf odaklı programlama dilinde olan `constructor` gibi, bu fonksiyonlar genellikle durum değişkenlerini belirtilmiş değerlere ilkler. + +```solidity +// Solidity example +// Initializes the contract's data, setting the `owner` +// to the address of the contract creator. +constructor() public { + // All smart contracts rely on external transactions to trigger its functions. + // `msg` is a global variable that includes relevant data on the given transaction, + // such as the address of the sender and the ETH value included in the transaction. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties + owner = msg.sender; +} +``` + +```python +# Vyper example + +@external +def __init__(_beneficiary: address, _bidding_time: uint256): + self.beneficiary = _beneficiary + self.auctionStart = block.timestamp + self.auctionEnd = self.auctionStart + _bidding_time +``` + +### Yerleşik fonksiyonlar {#built-in-functions} + +Sözleşmenizde tanımladığınız değişkenler ve fonksiyonlara ek olarak, bazı özel yerleşik fonksiyonlar bulunmaktadır. En bariz örnek şudur: + +- `address.send()` – Solidity +- `send(address)` – Vyper + +Bunlar sözleşmelerin başka hesaplara ETH göndermesini sağlar. + +## Fonksiyon yazmak {#writing-functions} + +Fonksiyonunuz şunlara ihtiyaç duyar: + +- parametre değişkeni ve türü (eğer parametre kabul ediyorsa) +- internal/external deklarasyonu +- pure/view/payable deklarasyonu +- dönüş türü (eğer bir değer döndürüyorsa) + +```solidity +pragma solidity >=0.4.0 <=0.6.0; + +contract ExampleDapp { + string dapp_name; // state variable + + // Called when the contract is deployed and initializes the value + constructor() public { + dapp_name = "My Example dapp"; + } + + // Get Function + function read_name() public view returns(string) { + return dapp_name; + } + + // Set Function + function update_name(string value) public { + dapp_name = value; + } +} +``` + +Tam bir sözleşme bu şekilde gözükebilir. Burada `constructor` fonksiyonu `dapp_name` değişkeni için bir başlangıç değeri sağlıyor. + +## Olaylar ve kayıtlar {#events-and-logs} + +Olaylar, akıllı sözleşmenizle ön uç tarafından veya başka katılımcı uygulamalarla iletişim kurmanızı sağlar. Bir işlem kazıldığında, akıllı sözleşmeler olay yayınlayabilirler ve blok zincirine ön ucun daha sonra işleyebileceği kayıtlar yazabilirler. + +## Açıklamalı örnekler {#annotated-examples} + +Bunlar Solidity ile yazılmış bazı örneklerdir. Eğer kodlarla oynamak isterseniz, onlarla [Remix](http://remix.ethereum.org) içinde etkileşime geçebilirsiniz. + +### Merhaba dünya {#hello-world} + +```solidity +// Specifies the version of Solidity, using semantic versioning. +// Learn more: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma +pragma solidity ^0.5.10; + +// Defines a contract named `HelloWorld`. +// A contract is a collection of functions and data (its state). +// Once deployed, a contract resides at a specific address on the Ethereum blockchain. +// Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html +contract HelloWorld { + + // Declares a state variable `message` of type `string`. + // State variables are variables whose values are permanently stored in contract storage. + // The keyword `public` makes variables accessible from outside a contract + // and creates a function that other contracts or clients can call to access the value. + string public message; + + // Similar to many class-based object-oriented languages, a constructor is + // a special function that is only executed upon contract creation. + // Constructors are used to initialize the contract's data. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constructors + constructor(string memory initMessage) public { + // Accepts a string argument `initMessage` and sets the value + // into the contract's `message` storage variable). + message = initMessage; + } + + // A public function that accepts a string argument + // and updates the `message` storage variable. + function update(string memory newMessage) public { + message = newMessage; + } +} +``` + +### Token {#token} + +```solidity +pragma solidity ^0.5.10; + +contract Token { + // An `address` is comparable to an email address - it's used to identify an account on Ethereum. + // Addresses can represent a smart contract or an external (user) accounts. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#address + address public owner; + + // A `mapping` is essentially a hash table data structure. + // This `mapping` assigns an unsigned integer (the token balance) to an address (the token holder). + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#mapping-types + mapping (address => uint) public balances; + + // Events allow for logging of activity on the blockchain. + // Ethereum clients can listen for events in order to react to contract state changes. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#events + event Transfer(address from, address to, uint amount); + + // Initializes the contract's data, setting the `owner` + // to the address of the contract creator. + constructor() public { + // All smart contracts rely on external transactions to trigger its functions. + // `msg` is a global variable that includes relevant data on the given transaction, + // such as the address of the sender and the ETH value included in the transaction. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties + owner = msg.sender; + } + + // Creates an amount of new tokens and sends them to an address. + function mint(address receiver, uint amount) public { + // `require` is a control structure used to enforce certain conditions. + // If a `require` statement evaluates to `false`, an exception is triggered, + // which reverts all changes made to the state during the current call. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions + + // Only the contract owner can call this function + require(msg.sender == owner, "You are not the owner."); + + // Enforces a maximum amount of tokens + require(amount < 1e60, "Maximum issuance exceeded"); + + // Increases the balance of `receiver` by `amount` + balances[receiver] += amount; + } + + // Sends an amount of existing tokens from any caller to an address. + function transfer(address receiver, uint amount) public { + // The sender must have enough tokens to send + require(amount <= balances[msg.sender], "Insufficient balance."); + + // Adjusts token balances of the two addresses + balances[msg.sender] -= amount; + balances[receiver] += amount; + + // Emits the event defined earlier + emit Transfer(msg.sender, receiver, amount); + } +} +``` + +### Benzersiz dijital varlık {#unique-digital-asset} + +```solidity +pragma solidity ^0.5.10; + +// Imports symbols from other files into the current contract. +// In this case, a series of helper contracts from OpenZeppelin. +// Learn more: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#importing-other-source-files + +import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; +import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; +import "../node_modules/@openzeppelin/contracts/introspection/ERC165.sol"; +import "../node_modules/@openzeppelin/contracts/math/SafeMath.sol"; + +// The `is` keyword is used to inherit functions and keywords from external contracts. +// In this case, `CryptoPizza` inherits from the `IERC721` and `ERC165` contracts. +// Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#inheritance +contract CryptoPizza is IERC721, ERC165 { + // Uses OpenZeppelin's SafeMath library to perform arithmetic operations safely. + // Learn more: https://docs.openzeppelin.com/contracts/2.x/api/math#SafeMath + using SafeMath for uint256; + + // Constant state variables in Solidity are similar to other languages + // but you must assign from an expression which is constant at compile time. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constant-state-variables + uint256 constant dnaDigits = 10; + uint256 constant dnaModulus = 10 ** dnaDigits; + bytes4 private constant _ERC721_RECEIVED = 0x150b7a02; + + // Struct types let you define your own type + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#structs + struct Pizza { + string name; + uint256 dna; + } + + // Creates an empty array of Pizza structs + Pizza[] public pizzas; + + // Mapping from pizza ID to its owner's address + mapping(uint256 => address) public pizzaToOwner; + + // Mapping from owner's address to number of owned token + mapping(address => uint256) public ownerPizzaCount; + + // Mapping from token ID to approved address + mapping(uint256 => address) pizzaApprovals; + + // You can nest mappings, this example maps owner to operator approvals + mapping(address => mapping(address => bool)) private operatorApprovals; + + // Internal function to create a random Pizza from string (name) and DNA + function _createPizza(string memory _name, uint256 _dna) + // The `internal` keyword means this function is only visible + // within this contract and contracts that derive this contract + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#visibility-and-getters + internal + // `isUnique` is a function modifier that checks if the pizza already exists + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html#function-modifiers + isUnique(_name, _dna) + { + // Adds Pizza to array of Pizzas and get id + uint256 id = SafeMath.sub(pizzas.push(Pizza(_name, _dna)), 1); + + // Checks that Pizza owner is the same as current user + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions + + // note that address(0) is the zero address, + // indicating that pizza[id] is not yet allocated to a particular user. + + assert(pizzaToOwner[id] == address(0)); + + // Maps the Pizza to the owner + pizzaToOwner[id] = msg.sender; + ownerPizzaCount[msg.sender] = SafeMath.add( + ownerPizzaCount[msg.sender], + 1 + ); + } + + // Creates a random Pizza from string (name) + function createRandomPizza(string memory _name) public { + uint256 randDna = generateRandomDna(_name, msg.sender); + _createPizza(_name, randDna); + } + + // Generates random DNA from string (name) and address of the owner (creator) + function generateRandomDna(string memory _str, address _owner) + public + // Functions marked as `pure` promise not to read from or modify the state + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#pure-functions + pure + returns (uint256) + { + // Generates random uint from string (name) + address (owner) + uint256 rand = uint256(keccak256(abi.encodePacked(_str))) + + uint256(_owner); + rand = rand % dnaModulus; + return rand; + } + + // Returns array of Pizzas found by owner + function getPizzasByOwner(address _owner) + public + // Functions marked as `view` promise not to modify state + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#view-functions + view + returns (uint256[] memory) + { + // Uses the `memory` storage location to store values only for the + // lifecycle of this function call. + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/introduction-to-smart-contracts.html#storage-memory-and-the-stack + uint256[] memory result = new uint256[](ownerPizzaCount[_owner]); + uint256 counter = 0; + for (uint256 i = 0; i < pizzas.length; i++) { + if (pizzaToOwner[i] == _owner) { + result[counter] = i; + counter++; + } + } + return result; + } + + // Transfers Pizza and ownership to other address + function transferFrom(address _from, address _to, uint256 _pizzaId) public { + require(_from != address(0) && _to != address(0), "Invalid address."); + require(_exists(_pizzaId), "Pizza does not exist."); + require(_from != _to, "Cannot transfer to the same address."); + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + + ownerPizzaCount[_to] = SafeMath.add(ownerPizzaCount[_to], 1); + ownerPizzaCount[_from] = SafeMath.sub(ownerPizzaCount[_from], 1); + pizzaToOwner[_pizzaId] = _to; + + // Emits event defined in the imported IERC721 contract + emit Transfer(_from, _to, _pizzaId); + _clearApproval(_to, _pizzaId); + } + + /** + * Safely transfers the ownership of a given token ID to another address + * If the target address is a contract, it must implement `onERC721Received`, + * which is called upon a safe transfer, and return the magic value + * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; + * otherwise, the transfer is reverted. + */ + function safeTransferFrom(address from, address to, uint256 pizzaId) + public + { + // solium-disable-next-line arg-overflow + this.safeTransferFrom(from, to, pizzaId, ""); + } + + /** + * Safely transfers the ownership of a given token ID to another address + * If the target address is a contract, it must implement `onERC721Received`, + * which is called upon a safe transfer, and return the magic value + * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; + * otherwise, the transfer is reverted. + */ + function safeTransferFrom( + address from, + address to, + uint256 pizzaId, + bytes memory _data + ) public { + this.transferFrom(from, to, pizzaId); + require(_checkOnERC721Received(from, to, pizzaId, _data), "Must implement onERC721Received."); + } + + /** + * Internal function to invoke `onERC721Received` on a target address + * The call is not executed if the target address is not a contract + */ + function _checkOnERC721Received( + address from, + address to, + uint256 pizzaId, + bytes memory _data + ) internal returns (bool) { + if (!isContract(to)) { + return true; + } + + bytes4 retval = IERC721Receiver(to).onERC721Received( + msg.sender, + from, + pizzaId, + _data + ); + return (retval == _ERC721_RECEIVED); + } + + // Burns a Pizza - destroys Token completely + // The `external` function modifier means this function is + // part of the contract interface and other contracts can call it + function burn(uint256 _pizzaId) external { + require(msg.sender != address(0), "Invalid address."); + require(_exists(_pizzaId), "Pizza does not exist."); + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + + ownerPizzaCount[msg.sender] = SafeMath.sub( + ownerPizzaCount[msg.sender], + 1 + ); + pizzaToOwner[_pizzaId] = address(0); + } + + // Returns count of Pizzas by address + function balanceOf(address _owner) public view returns (uint256 _balance) { + return ownerPizzaCount[_owner]; + } + + // Returns owner of the Pizza found by id + function ownerOf(uint256 _pizzaId) public view returns (address _owner) { + address owner = pizzaToOwner[_pizzaId]; + require(owner != address(0), "Invalid Pizza ID."); + return owner; + } + + // Approves other address to transfer ownership of Pizza + function approve(address _to, uint256 _pizzaId) public { + require(msg.sender == pizzaToOwner[_pizzaId], "Must be the Pizza owner."); + pizzaApprovals[_pizzaId] = _to; + emit Approval(msg.sender, _to, _pizzaId); + } + + // Returns approved address for specific Pizza + function getApproved(uint256 _pizzaId) + public + view + returns (address operator) + { + require(_exists(_pizzaId), "Pizza does not exist."); + return pizzaApprovals[_pizzaId]; + } + + /** + * Private function to clear current approval of a given token ID + * Reverts if the given address is not indeed the owner of the token + */ + function _clearApproval(address owner, uint256 _pizzaId) private { + require(pizzaToOwner[_pizzaId] == owner, "Must be pizza owner."); + require(_exists(_pizzaId), "Pizza does not exist."); + if (pizzaApprovals[_pizzaId] != address(0)) { + pizzaApprovals[_pizzaId] = address(0); + } + } + + /* + * Sets or unsets the approval of a given operator + * An operator is allowed to transfer all tokens of the sender on their behalf + */ + function setApprovalForAll(address to, bool approved) public { + require(to != msg.sender, "Cannot approve own address"); + operatorApprovals[msg.sender][to] = approved; + emit ApprovalForAll(msg.sender, to, approved); + } + + // Tells whether an operator is approved by a given owner + function isApprovedForAll(address owner, address operator) + public + view + returns (bool) + { + return operatorApprovals[owner][operator]; + } + + // Takes ownership of Pizza - only for approved users + function takeOwnership(uint256 _pizzaId) public { + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + address owner = this.ownerOf(_pizzaId); + this.transferFrom(owner, msg.sender, _pizzaId); + } + + // Checks if Pizza exists + function _exists(uint256 pizzaId) internal view returns (bool) { + address owner = pizzaToOwner[pizzaId]; + return owner != address(0); + } + + // Checks if address is owner or is approved to transfer Pizza + function _isApprovedOrOwner(address spender, uint256 pizzaId) + internal + view + returns (bool) + { + address owner = pizzaToOwner[pizzaId]; + // Disable solium check because of + // https://github.com/duaraghav8/Solium/issues/175 + // solium-disable-next-line operator-whitespace + return (spender == owner || + this.getApproved(pizzaId) == spender || + this.isApprovedForAll(owner, spender)); + } + + // Check if Pizza is unique and doesn't exist yet + modifier isUnique(string memory _name, uint256 _dna) { + bool result = true; + for (uint256 i = 0; i < pizzas.length; i++) { + if ( + keccak256(abi.encodePacked(pizzas[i].name)) == + keccak256(abi.encodePacked(_name)) && + pizzas[i].dna == _dna + ) { + result = false; + } + } + require(result, "Pizza with such name already exists."); + _; + } + + // Returns whether the target address is a contract + function isContract(address account) internal view returns (bool) { + uint256 size; + // Currently there is no better way to check if there is a contract in an address + // than to check the size of the code at that address. + // Bunun nasıl çalıştığı hakkında daha fazla ayrıntı için + // bkz. https://ethereum.stackexchange.com/a/14016/36603. + // Serenity sürümünden önce bunu tekrar kontrol edin, + // çünkü o zaman tüm adresler sözleşme olacaktır. + // solium-disable-next-line security/no-inline-assembly + assembly { + size := extcodesize(account) + } + return size > 0; + } +} +``` + +## Daha fazla bilgi {#further-reading} + +Akıllı sözleşmelere daha detaylı bir genel bakış için Solidity ve Vyper'ın belgelerine bakın: + +- [Solidity](https://solidity.readthedocs.io/) +- [Vyper](https://vyper.readthedocs.io/) + +## İlgili konular {#related-topics} + +- [Akıllı sözleşmeler](/developers/docs/smart-contracts/) +- [Ethereum Sanal Makinesi](/developers/docs/evm/) + +## İlgili öğreticiler {#related-tutorials} + +- [Sözleşme boyut limitiyle savaşmak için sözleşmelerin boyutunu azaltma](/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/) _– Akıllı sözleşmenizin boyutunu küçültmek için bazı pratik ipuçları._ +- [Olaylar ile akıllı sözleşmelerden veri kaydetme](/developers/tutorials/logging-events-smart-contracts/) _– Akıllı sözleşme olaylarına ve onları veri kaydetmek için nasıl kullanabileceğinize bir giriş._ +- [Solidity ile başka sözleşmelerle etkileşime geçmek](/developers/tutorials/interact-with-other-contracts-from-solidity/) _– Mevcut bir sözleşmeden nasıl bir akıllı sözleşme dağıtılır ve etkileşime geçilir._ diff --git a/src/content/translations/tr/developers/docs/smart-contracts/compiling/index.md b/public/content/translations/tr/developers/docs/smart-contracts/compiling/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/smart-contracts/compiling/index.md rename to public/content/translations/tr/developers/docs/smart-contracts/compiling/index.md diff --git a/src/content/translations/tr/developers/docs/smart-contracts/composability/index.md b/public/content/translations/tr/developers/docs/smart-contracts/composability/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/smart-contracts/composability/index.md rename to public/content/translations/tr/developers/docs/smart-contracts/composability/index.md diff --git a/src/content/translations/tr/developers/docs/smart-contracts/deploying/index.md b/public/content/translations/tr/developers/docs/smart-contracts/deploying/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/smart-contracts/deploying/index.md rename to public/content/translations/tr/developers/docs/smart-contracts/deploying/index.md diff --git a/src/content/translations/tr/developers/docs/smart-contracts/formal-verification/index.md b/public/content/translations/tr/developers/docs/smart-contracts/formal-verification/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/smart-contracts/formal-verification/index.md rename to public/content/translations/tr/developers/docs/smart-contracts/formal-verification/index.md diff --git a/src/content/translations/tr/developers/docs/smart-contracts/index.md b/public/content/translations/tr/developers/docs/smart-contracts/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/smart-contracts/index.md rename to public/content/translations/tr/developers/docs/smart-contracts/index.md diff --git a/src/content/translations/tr/developers/docs/smart-contracts/languages/index.md b/public/content/translations/tr/developers/docs/smart-contracts/languages/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/smart-contracts/languages/index.md rename to public/content/translations/tr/developers/docs/smart-contracts/languages/index.md diff --git a/src/content/translations/tr/developers/docs/smart-contracts/libraries/index.md b/public/content/translations/tr/developers/docs/smart-contracts/libraries/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/smart-contracts/libraries/index.md rename to public/content/translations/tr/developers/docs/smart-contracts/libraries/index.md diff --git a/src/content/translations/tr/developers/docs/smart-contracts/security/index.md b/public/content/translations/tr/developers/docs/smart-contracts/security/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/smart-contracts/security/index.md rename to public/content/translations/tr/developers/docs/smart-contracts/security/index.md diff --git a/src/content/translations/tr/developers/docs/smart-contracts/testing/index.md b/public/content/translations/tr/developers/docs/smart-contracts/testing/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/smart-contracts/testing/index.md rename to public/content/translations/tr/developers/docs/smart-contracts/testing/index.md diff --git a/src/content/translations/tr/developers/docs/smart-contracts/upgrading/index.md b/public/content/translations/tr/developers/docs/smart-contracts/upgrading/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/smart-contracts/upgrading/index.md rename to public/content/translations/tr/developers/docs/smart-contracts/upgrading/index.md diff --git a/src/content/translations/tr/developers/docs/smart-contracts/verifying/index.md b/public/content/translations/tr/developers/docs/smart-contracts/verifying/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/smart-contracts/verifying/index.md rename to public/content/translations/tr/developers/docs/smart-contracts/verifying/index.md diff --git a/src/content/translations/tr/developers/docs/standards/index.md b/public/content/translations/tr/developers/docs/standards/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/standards/index.md rename to public/content/translations/tr/developers/docs/standards/index.md diff --git a/src/content/translations/tr/developers/docs/standards/tokens/erc-1155/index.md b/public/content/translations/tr/developers/docs/standards/tokens/erc-1155/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/standards/tokens/erc-1155/index.md rename to public/content/translations/tr/developers/docs/standards/tokens/erc-1155/index.md diff --git a/public/content/translations/tr/developers/docs/standards/tokens/erc-20/index.md b/public/content/translations/tr/developers/docs/standards/tokens/erc-20/index.md new file mode 100644 index 00000000000..dc398264e3c --- /dev/null +++ b/public/content/translations/tr/developers/docs/standards/tokens/erc-20/index.md @@ -0,0 +1,149 @@ +--- +title: ERC-20 Token Standardı +description: +lang: tr +--- + +## Giriş {#introduction} + +**Token nedir?** + +Token'lar Ethereum'daki hemen hemen her şeyi temsil edebilir: + +- çevrimiçi bir platformdaki itibar puanları +- bir oyundaki karakterin becerileri +- çekiliş biletleri +- şirket hissesi gibi finansal varlıklar +- ABD Doları gibi itibari para birimi +- ons altın +- ve daha fazlası... + +Ethereum'un bu kadar güçlü bir özelliği güçlü bir standart tarafından idare edilmeli, değil mi? ERC-20 tam da bu noktada devreye giriyor! Bu standart, geliştiricilerin diğer ürün ve servislerle uyumlu token uygulamaları inşa etmesini sağlar. + +**ERC-20 nedir?** + +ERC-20, Değiştirilebilir Jetonlar için bir standart getirmiştir: Başka bir deyişle bunlar, her bir Jetonun (tür ve değer olarak) başka bir Jeton ile tamamen aynı olmasını sağlayan bir özelliğe sahiptir. Örnek olarak, bir ERC-20 Token'ı tıpkı ETH gibi davranır, yani 1 Token her zaman tüm diğer Token'lara eşit olur. + +## Ön Koşullar {#prerequisites} + +- [Hesaplar](/developers/docs/accounts) +- [Akıllı Sözleşmeler](/developers/docs/smart-contracts/) +- [Token standartları](/developers/docs/standards/tokens/) + +## Şablon {#body} + +Fabian Vogelsteller tarafından Kasım 2015'te önerilen ERC-20 (Ethereum Yorum Talebi 20), Akıllı Sözleşmeler içindeki token'lar için bir API sağlayan bir Token Standardıdır. + +ERC-20'nin sağladığı örnek işlevler: + +- token'ları bir hesaptan diğerine aktarma +- bir hesabın mevcut token bakiyesini alma +- ağda mevcut olan token'ların toplam arzını alma +- bir hesaptaki token miktarının bir üçüncü taraf hesabı tarafından harcanıp harcanamayacağını onaylama + +Eğer bir Akıllı Sözleşme aşağıdaki metodları ve olayları uygularsa bir ERC-20 Token Sözleşmesi olarak çağrılabilir ve dağıtıldığı andan itibaren Ethereum'da oluşturulan token'ları takip etmekten sorumludur. + +[EIP-20](https://eips.ethereum.org/EIPS/eip-20)'den: + +### Yöntemler {#methods} + +```solidity +function name() public view returns (string) +function symbol() public view returns (string) +function decimals() public view returns (uint8) +function totalSupply() public view returns (uint256) +function balanceOf(address _owner) public view returns (uint256 balance) +function transfer(address _to, uint256 _value) public returns (bool success) +function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) +function approve(address _spender, uint256 _value) public returns (bool success) +function allowance(address _owner, address _spender) public view returns (uint256 remaining) +``` + +### Olaylar {#events} + +```solidity +event Transfer(address indexed _from, address indexed _to, uint256 _value) +event Approval(address indexed _owner, address indexed _spender, uint256 _value) +``` + +### Örnekler {#web3py-example} + +Ethereum'daki herhangi bir ERC-20 Token Sözleşmesini incelememizi basitleştirmek için bir Standart'ın ne kadar önemli olduğunu görelim. Herhangi bir ERC-20 token'a arayüz oluşturmak için sadece Sözleşme Uygulama İkili Arayüzü'ne (ABI) ihtiyacımız var. Aşağıda görebileceğiniz gibi az sürtünmeli bir örnek olması için basitleştirilmiş bir ABI kullanacağız. + +#### Web3.py Örneği {#web3py-example} + +İlk olarak, [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) Python kütüphanesini kurduğunuzdan emin olun: + +``` +pip install web3 +``` + +```python +from web3 import Web3 + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI +weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # Wrapped ether (WETH) + +acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11" # Uniswap V2: DAI 2 + +# This is a simplified Contract Application Binary Interface (ABI) of an ERC-20 Token Contract. +# It will expose only the methods: balanceOf(address), decimals(), symbol() and totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'decimals', + 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +dai_contract = w3.eth.contract(address=w3.to_checksum_address(dai_token_addr), abi=simplified_abi) +symbol = dai_contract.functions.symbol().call() +decimals = dai_contract.functions.decimals().call() +totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals +addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# DAI +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) + +weth_contract = w3.eth.contract(address=w3.to_checksum_address(weth_token_addr), abi=simplified_abi) +symbol = weth_contract.functions.symbol().call() +decimals = weth_contract.functions.decimals().call() +totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals +addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# WETH +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) +``` + +## daha fazla okuma {#further-reading} + +- [EIP-20: ERC-20 Token Standardı](https://eips.ethereum.org/EIPS/eip-20) +- [OpenZeppelin - Token'lar](https://docs.openzeppelin.com/contracts/3.x/tokens#ERC20) +- [OpenZeppelin - ERC-20 Uygulaması](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) +- [Alchemy - Solidity ERC20 Jetonları için bir Rehber](https://www.alchemy.com/overviews/erc20-solidity) diff --git a/src/content/translations/tr/developers/docs/standards/tokens/erc-4626/index.md b/public/content/translations/tr/developers/docs/standards/tokens/erc-4626/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/standards/tokens/erc-4626/index.md rename to public/content/translations/tr/developers/docs/standards/tokens/erc-4626/index.md diff --git a/public/content/translations/tr/developers/docs/standards/tokens/erc-721/index.md b/public/content/translations/tr/developers/docs/standards/tokens/erc-721/index.md new file mode 100644 index 00000000000..d06fedf917e --- /dev/null +++ b/public/content/translations/tr/developers/docs/standards/tokens/erc-721/index.md @@ -0,0 +1,244 @@ +--- +title: ERC-721 Değiştirilemez Token Standardı +description: +lang: tr +--- + +## Giriş {#introduction} + +**Değiştirilemeyen Token nedir?** + +Bir Değiştirilemez Token (NFT), bir şeyi veya bir kimseyi eşsiz bir yolla tanımlamak için kullanılır. Bu Token türü; koleksiyon öğeleri, erişim anahtarları, çekiliş biletleri, konserler ve spor maçları için numaralı koltuklar vb. sunan platformlarda kullanılmak için mükemmeldir. Bu özel Token türü, inanılmaz olanaklara sahip olduğu için uygun bir Standardı hak ediyor: ERC-721 bunu çözmek için geldi! + +**ERC-721 nedir?** + +ERC-721, NFT için bir standart getirir, başka bir deyişle, bu Token türü benzersizdir ve örneğin yaşı, nadirliği ve hatta görseli gibi başka bir şey nedeniyle aynı Akıllı Sözleşmedeki başka bir Token'dan farklı değere sahip olabilir. Görsel mi? + +Evet! Tüm NFT'ler `tokenId` denilen bir `uint256` değişkenine sahiptir, yani herhangi bir ERC-721 sözleşmesi için, `sözleşme adresi, uint256 tokenId` çifti küresel olarak eşsiz olmalıdır. Bununla birlikte, bir dapp girdi olarak `tokenId` kullanan ve çıktı olarak da zombiler, silahlar, yetenekler ya da muhteşem kedicikler gibi havalı bir şeyin görüntüsünü veren bir "dönüştürücüye" sahip olabilir! + +## Ön Koşullar {#prerequisites} + +- [Hesaplar](/developers/docs/accounts/) +- [Akıllı Sözleşmeler](/developers/docs/smart-contracts/) +- [Token standartları](/developers/docs/standards/tokens/) + +## Şablon {#body} + +William Entriken, Dieter Shirley, Jacob Evans ve Nastassia Sachs tarafından Ocak 2018'de önerilen ERC-721 (Ethereum Yorum Talebi 721), Akıllı Sözleşmeler içindeki token'lar için bir API uygulayan bir Değiştirilebilir Token Standardıdır. + +Token'ları bir hesaptan diğerine aktarmak, bir hesabın mevcut token bakiyesini almak, belirli bir token'ın sahibini almak ve ayrıca ağda mevcut olan token'ın toplam arzını almak gibi işlevler sağlar. Bunların yanı sıra, bir hesaptan bir miktar token'ın üçüncü taraf bir hesap tarafından taşınabileceğini onaylamak gibi başka işlevleri de vardır. + +Bir Akıllı Sözleşme aşağıdaki yöntemleri ve olayları uygularsa, ERC-721 Değiştirilemez Token Sözleşmesi olarak adlandırılabilir ve dağıtıldıktan sonra, Ethereum üzerinde oluşturulan token'ları takip etmekten sorumlu olur. + +[EIP-721](https://eips.ethereum.org/EIPS/eip-721)'den: + +### Yöntemler {#methods} + +```solidity + function balanceOf(address _owner) external view returns (uint256); + function ownerOf(uint256 _tokenId) external view returns (address); + function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; + function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; + function transferFrom(address _from, address _to, uint256 _tokenId) external payable; + function approve(address _approved, uint256 _tokenId) external payable; + function setApprovalForAll(address _operator, bool _approved) external; + function getApproved(uint256 _tokenId) external view returns (address); + function isApprovedForAll(address _owner, address _operator) external view returns (bool); +``` + +### Olaylar {#events} + +```solidity + event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); + event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); + event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); +``` + +### Örnekler {#web3py-example} + +Ethereum'daki herhangi bir ERC-721 Token Sözleşmesini incelememizi basitleştirmek için bir Standart'ın ne kadar önemli olduğunu görelim. Herhangi bir ERC-721 token'a arayüz oluşturmak için sadece sözleşmenin Uygulama İkili Arayüzü'ne (ABI) ihtiyacımız var. Aşağıda görebileceğiniz gibi az sürtünmeli bir örnek olması için basitleştirilmiş bir ABI kullanacağız. + +#### Web3.py Örneği {#web3py-example} + +İlk olarak, [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) Python kütüphanesini kurduğunuzdan emin olun: + +``` +pip install web3 +``` + +```python +from web3 import Web3 +from web3._utils.events import get_event_data + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # CryptoKitties Contract + +acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # CryptoKitties Sales Auction + +# This is a simplified Contract Application Binary Interface (ABI) of an ERC-721 NFT Contract. +# It will expose only the methods: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'name', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'ownerOf', + 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, +] + +ck_extra_abi = [ + { + 'inputs': [], + 'name': 'pregnantKitties', + 'outputs': [{'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'name': '_kittyId', 'type': 'uint256'}], + 'name': 'isPregnant', + 'outputs': [{'name': '', 'type': 'bool'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +ck_contract = w3.eth.contract(address=w3.to_checksum_address(ck_token_addr), abi=simplified_abi+ck_extra_abi) +name = ck_contract.functions.name().call() +symbol = ck_contract.functions.symbol().call() +kitties_auctions = ck_contract.functions.balanceOf(acc_address).call() +print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}") + +pregnant_kitties = ck_contract.functions.pregnantKitties().call() +print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}") + +# Using the Transfer Event ABI to get info about transferred Kitties. +tx_event_abi = { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'from', 'type': 'address'}, + {'indexed': False, 'name': 'to', 'type': 'address'}, + {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'Transfer', + 'type': 'event' +} + +# We need the event's signature to filter the logs +event_signature = w3.keccak(text="Transfer(address,address,uint256)").hex() + +logs = w3.eth.get_logs({ + "fromBlock": w3.eth.block_number - 120, + "address": w3.to_checksum_address(ck_token_addr), + "topics": [event_signature] +}) + +# Notes: +# - Increase the number of blocks up from 120 if no Transfer event is returned. +# - If you didn't find any Transfer event you can also try to get a tokenId at: +# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events +# Click to expand the event's logs and copy its "tokenId" argument +recent_tx = [get_event_data(w3.codec, tx_event_abi, log)["args"] for log in logs] + +if recent_tx: + kitty_id = recent_tx[0]['tokenId'] # Paste the "tokenId" here from the link above + is_pregnant = ck_contract.functions.isPregnant(kitty_id).call() + print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}") +``` + +CryptoKitties Sözleşmesi, Standart olanlar dışında bazı ilginç Olaylara sahiptir. + +Hadi ikisine bakalım, `Pregnant` ve `Birth`. + +```python +# Using the Pregnant and Birth Events ABI to get info about new Kitties. +ck_extra_events_abi = [ + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}], + 'name': 'Pregnant', + 'type': 'event' + }, + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'kittyId', 'type': 'uint256'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'genes', 'type': 'uint256'}], + 'name': 'Birth', + 'type': 'event' + }] + +# We need the event's signature to filter the logs +ck_event_signatures = [ + w3.keccak(text="Pregnant(address,uint256,uint256,uint256)").hex(), + w3.keccak(text="Birth(address,uint256,uint256,uint256,uint256)").hex(), +] + +# Here is a Pregnant Event: +# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog +pregnant_logs = w3.eth.get_logs({ + "fromBlock": w3.eth.block_number - 120, + "address": w3.to_checksum_address(ck_token_addr), + "topics": [ck_event_signatures[0]] +}) + +recent_pregnants = [get_event_data(w3.codec, ck_extra_events_abi[0], log)["args"] for log in pregnant_logs] + +# Here is a Birth Event: +# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a +birth_logs = w3.eth.get_logs({ + "fromBlock": w3.eth.block_number - 120, + "address": w3.to_checksum_address(ck_token_addr), + "topics": [ck_event_signatures[1]] +}) + +recent_births = [get_event_data(w3.codec, ck_extra_events_abi[1], log)["args"] for log in birth_logs] +``` + +## Popüler NFT'ler {#popular-nfts} + +- [Etherscan NFT Tracker](https://etherscan.io/tokens-nft), aktarım hacmine göre Ethereum üzerindeki en yüksek NFT'leri sıralar. +- [CryptoKitties](https://www.cryptokitties.co/) yetiştirilebilen, toplanabilen ve aşırı şirin olan CryptoKitties dediğimiz yaratıklar çevresinde gelişen bir oyundur. +- [Sorare](https://sorare.com/), sınırlı sayılı koleksiyon parçaları toplayabileceğiniz, takımlarınızı yönetebileceğiniz ve ödüller kazanmak için rekabet edebileceğiniz küresel bir fantezi futbol oyunudur. +- [Ethereum İsim Hizmeti (ENS)](https://ens.domains/); basit, insanlar tarafından okunabilir isimler kullanarak hem blok zinciri üstünde hem de dışında kaynakları yönetmenin güvenli ve merkeziyetsiz bir yolunu sunar. +- [POAP](https://poap.xyz), etkinliklere katılan veya belirli eylemleri tamamlayan kişilere ücretsiz NFT'ler sunar. POAP'ler oluşturmak ve dağıtmak ücretsizdir. +- [Unstoppable Domains](https://unstoppabledomains.com/), blok zincirleri üzerinde alan adları inşa eden San-Francisco merkezli bir şirkettir. Blok zinciri alan adları, kripto para adreslerini insanlar tarafından okunabilir adlarla değiştirir ve sansüre dayanıklı web sitelerini etkinleştirmek için kullanılabilir. +- [Gods Unchained Cards](https://godsunchained.com/), oyun içi varlıklara gerçek sahiplik getirmek için NFT'leri kullanan Ethereum blok zinciri üzerindeki bir Kart Ticareti Oyunudur. +- [Bored Ape Yacht Club](https://boredapeyachtclub.com), kanıtlanabilir derecede ender bir sanat eseri olmasının yanı sıra, kulübe üyelik simgesi olarak hareket eden ve topluluk çabalarının sonucu olarak zamanla artan üye avantajları ve faydaları sağlayan 10.000 benzersiz NFT'den oluşan bir koleksiyondur. + +## Daha fazla bilgi {#further-reading} + +- [EIP-721: ERC-721 Değiştirilemez Token Standardı](https://eips.ethereum.org/EIPS/eip-721) +- [OpenZeppelin - ERC-721 Belgeleri](https://docs.openzeppelin.com/contracts/3.x/erc721) +- [OpenZeppelin - ERC-721 Uygulaması](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) +- [Alchemy NFT API](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) diff --git a/src/content/translations/tr/developers/docs/standards/tokens/erc-777/index.md b/public/content/translations/tr/developers/docs/standards/tokens/erc-777/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/standards/tokens/erc-777/index.md rename to public/content/translations/tr/developers/docs/standards/tokens/erc-777/index.md diff --git a/src/content/translations/tr/developers/docs/standards/tokens/index.md b/public/content/translations/tr/developers/docs/standards/tokens/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/standards/tokens/index.md rename to public/content/translations/tr/developers/docs/standards/tokens/index.md diff --git a/src/content/translations/tr/developers/docs/storage/index.md b/public/content/translations/tr/developers/docs/storage/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/storage/index.md rename to public/content/translations/tr/developers/docs/storage/index.md diff --git a/src/content/translations/tr/developers/docs/transactions/index.md b/public/content/translations/tr/developers/docs/transactions/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/transactions/index.md rename to public/content/translations/tr/developers/docs/transactions/index.md diff --git a/src/content/translations/tr/developers/docs/web2-vs-web3/index.md b/public/content/translations/tr/developers/docs/web2-vs-web3/index.md similarity index 100% rename from src/content/translations/tr/developers/docs/web2-vs-web3/index.md rename to public/content/translations/tr/developers/docs/web2-vs-web3/index.md diff --git a/src/content/translations/tr/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md b/public/content/translations/tr/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md rename to public/content/translations/tr/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md diff --git a/src/content/translations/tr/developers/tutorials/all-you-can-cache/index.md b/public/content/translations/tr/developers/tutorials/all-you-can-cache/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/all-you-can-cache/index.md rename to public/content/translations/tr/developers/tutorials/all-you-can-cache/index.md diff --git a/src/content/translations/tr/developers/tutorials/calling-a-smart-contract-from-javascript/index.md b/public/content/translations/tr/developers/tutorials/calling-a-smart-contract-from-javascript/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/calling-a-smart-contract-from-javascript/index.md rename to public/content/translations/tr/developers/tutorials/calling-a-smart-contract-from-javascript/index.md diff --git a/src/content/translations/tr/developers/tutorials/create-and-deploy-a-defi-app/index.md b/public/content/translations/tr/developers/tutorials/create-and-deploy-a-defi-app/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/create-and-deploy-a-defi-app/index.md rename to public/content/translations/tr/developers/tutorials/create-and-deploy-a-defi-app/index.md diff --git a/src/content/translations/tr/developers/tutorials/deploying-your-first-smart-contract/index.md b/public/content/translations/tr/developers/tutorials/deploying-your-first-smart-contract/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/deploying-your-first-smart-contract/index.md rename to public/content/translations/tr/developers/tutorials/deploying-your-first-smart-contract/index.md diff --git a/src/content/translations/tr/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md b/public/content/translations/tr/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md rename to public/content/translations/tr/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md diff --git a/src/content/translations/tr/developers/tutorials/eip-1271-smart-contract-signatures/index.md b/public/content/translations/tr/developers/tutorials/eip-1271-smart-contract-signatures/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/eip-1271-smart-contract-signatures/index.md rename to public/content/translations/tr/developers/tutorials/eip-1271-smart-contract-signatures/index.md diff --git a/src/content/translations/tr/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/tr/developers/tutorials/erc-721-vyper-annotated-code/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/erc-721-vyper-annotated-code/index.md rename to public/content/translations/tr/developers/tutorials/erc-721-vyper-annotated-code/index.md diff --git a/src/content/translations/tr/developers/tutorials/erc20-annotated-code/index.md b/public/content/translations/tr/developers/tutorials/erc20-annotated-code/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/erc20-annotated-code/index.md rename to public/content/translations/tr/developers/tutorials/erc20-annotated-code/index.md diff --git a/src/content/translations/tr/developers/tutorials/erc20-with-safety-rails/index.md b/public/content/translations/tr/developers/tutorials/erc20-with-safety-rails/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/erc20-with-safety-rails/index.md rename to public/content/translations/tr/developers/tutorials/erc20-with-safety-rails/index.md diff --git a/src/content/translations/tr/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md b/public/content/translations/tr/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md rename to public/content/translations/tr/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md diff --git a/src/content/translations/tr/developers/tutorials/guide-to-smart-contract-security-tools/index.md b/public/content/translations/tr/developers/tutorials/guide-to-smart-contract-security-tools/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/guide-to-smart-contract-security-tools/index.md rename to public/content/translations/tr/developers/tutorials/guide-to-smart-contract-security-tools/index.md diff --git a/src/content/translations/tr/developers/tutorials/hello-world-smart-contract-fullstack/index.md b/public/content/translations/tr/developers/tutorials/hello-world-smart-contract-fullstack/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/hello-world-smart-contract-fullstack/index.md rename to public/content/translations/tr/developers/tutorials/hello-world-smart-contract-fullstack/index.md diff --git a/src/content/translations/tr/developers/tutorials/hello-world-smart-contract/index.md b/public/content/translations/tr/developers/tutorials/hello-world-smart-contract/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/hello-world-smart-contract/index.md rename to public/content/translations/tr/developers/tutorials/hello-world-smart-contract/index.md diff --git a/src/content/translations/tr/developers/tutorials/how-to-implement-an-erc721-market/index.md b/public/content/translations/tr/developers/tutorials/how-to-implement-an-erc721-market/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/how-to-implement-an-erc721-market/index.md rename to public/content/translations/tr/developers/tutorials/how-to-implement-an-erc721-market/index.md diff --git a/src/content/translations/tr/developers/tutorials/how-to-mint-an-nft/index.md b/public/content/translations/tr/developers/tutorials/how-to-mint-an-nft/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/how-to-mint-an-nft/index.md rename to public/content/translations/tr/developers/tutorials/how-to-mint-an-nft/index.md diff --git a/src/content/translations/tr/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md b/public/content/translations/tr/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md rename to public/content/translations/tr/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md diff --git a/src/content/translations/tr/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md b/public/content/translations/tr/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md rename to public/content/translations/tr/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md diff --git a/src/content/translations/tr/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md b/public/content/translations/tr/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md rename to public/content/translations/tr/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md diff --git a/src/content/translations/tr/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md b/public/content/translations/tr/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md rename to public/content/translations/tr/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md diff --git a/src/content/translations/tr/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md b/public/content/translations/tr/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md rename to public/content/translations/tr/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md diff --git a/src/content/translations/tr/developers/tutorials/how-to-view-nft-in-metamask/index.md b/public/content/translations/tr/developers/tutorials/how-to-view-nft-in-metamask/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/how-to-view-nft-in-metamask/index.md rename to public/content/translations/tr/developers/tutorials/how-to-view-nft-in-metamask/index.md diff --git a/src/content/translations/tr/developers/tutorials/how-to-write-and-deploy-an-nft/index.md b/public/content/translations/tr/developers/tutorials/how-to-write-and-deploy-an-nft/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/how-to-write-and-deploy-an-nft/index.md rename to public/content/translations/tr/developers/tutorials/how-to-write-and-deploy-an-nft/index.md diff --git a/src/content/translations/tr/developers/tutorials/interact-with-other-contracts-from-solidity/index.md b/public/content/translations/tr/developers/tutorials/interact-with-other-contracts-from-solidity/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/interact-with-other-contracts-from-solidity/index.md rename to public/content/translations/tr/developers/tutorials/interact-with-other-contracts-from-solidity/index.md diff --git a/src/content/translations/tr/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md b/public/content/translations/tr/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md rename to public/content/translations/tr/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md diff --git a/src/content/translations/tr/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md b/public/content/translations/tr/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md rename to public/content/translations/tr/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md diff --git a/src/content/translations/tr/developers/tutorials/logging-events-smart-contracts/index.md b/public/content/translations/tr/developers/tutorials/logging-events-smart-contracts/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/logging-events-smart-contracts/index.md rename to public/content/translations/tr/developers/tutorials/logging-events-smart-contracts/index.md diff --git a/src/content/translations/tr/developers/tutorials/merkle-proofs-for-offline-data-integrity/index.md b/public/content/translations/tr/developers/tutorials/merkle-proofs-for-offline-data-integrity/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/merkle-proofs-for-offline-data-integrity/index.md rename to public/content/translations/tr/developers/tutorials/merkle-proofs-for-offline-data-integrity/index.md diff --git a/src/content/translations/tr/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md b/public/content/translations/tr/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md rename to public/content/translations/tr/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md diff --git a/src/content/translations/tr/developers/tutorials/nft-minter/index.md b/public/content/translations/tr/developers/tutorials/nft-minter/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/nft-minter/index.md rename to public/content/translations/tr/developers/tutorials/nft-minter/index.md diff --git a/src/content/translations/tr/developers/tutorials/optimism-std-bridge-annotated-code/index.md b/public/content/translations/tr/developers/tutorials/optimism-std-bridge-annotated-code/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/optimism-std-bridge-annotated-code/index.md rename to public/content/translations/tr/developers/tutorials/optimism-std-bridge-annotated-code/index.md diff --git a/src/content/translations/tr/developers/tutorials/reverse-engineering-a-contract/index.md b/public/content/translations/tr/developers/tutorials/reverse-engineering-a-contract/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/reverse-engineering-a-contract/index.md rename to public/content/translations/tr/developers/tutorials/reverse-engineering-a-contract/index.md diff --git a/src/content/translations/tr/developers/tutorials/run-light-node-geth/index.md b/public/content/translations/tr/developers/tutorials/run-light-node-geth/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/run-light-node-geth/index.md rename to public/content/translations/tr/developers/tutorials/run-light-node-geth/index.md diff --git a/src/content/translations/tr/developers/tutorials/run-node-raspberry-pi/index.md b/public/content/translations/tr/developers/tutorials/run-node-raspberry-pi/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/run-node-raspberry-pi/index.md rename to public/content/translations/tr/developers/tutorials/run-node-raspberry-pi/index.md diff --git a/src/content/translations/tr/developers/tutorials/secure-development-workflow/index.md b/public/content/translations/tr/developers/tutorials/secure-development-workflow/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/secure-development-workflow/index.md rename to public/content/translations/tr/developers/tutorials/secure-development-workflow/index.md diff --git a/src/content/translations/tr/developers/tutorials/send-token-ethersjs/index.md b/public/content/translations/tr/developers/tutorials/send-token-ethersjs/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/send-token-ethersjs/index.md rename to public/content/translations/tr/developers/tutorials/send-token-ethersjs/index.md diff --git a/src/content/translations/tr/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md b/public/content/translations/tr/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md rename to public/content/translations/tr/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md diff --git a/src/content/translations/tr/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md b/public/content/translations/tr/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md rename to public/content/translations/tr/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md diff --git a/src/content/translations/tr/developers/tutorials/short-abi/index.md b/public/content/translations/tr/developers/tutorials/short-abi/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/short-abi/index.md rename to public/content/translations/tr/developers/tutorials/short-abi/index.md diff --git a/src/content/translations/tr/developers/tutorials/smart-contract-security-guidelines/index.md b/public/content/translations/tr/developers/tutorials/smart-contract-security-guidelines/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/smart-contract-security-guidelines/index.md rename to public/content/translations/tr/developers/tutorials/smart-contract-security-guidelines/index.md diff --git a/src/content/translations/tr/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md b/public/content/translations/tr/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md rename to public/content/translations/tr/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md diff --git a/src/content/translations/tr/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md b/public/content/translations/tr/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md rename to public/content/translations/tr/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md diff --git a/src/content/translations/tr/developers/tutorials/the-graph-fixing-web3-data-querying/index.md b/public/content/translations/tr/developers/tutorials/the-graph-fixing-web3-data-querying/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/the-graph-fixing-web3-data-querying/index.md rename to public/content/translations/tr/developers/tutorials/the-graph-fixing-web3-data-querying/index.md diff --git a/src/content/translations/tr/developers/tutorials/token-integration-checklist/index.md b/public/content/translations/tr/developers/tutorials/token-integration-checklist/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/token-integration-checklist/index.md rename to public/content/translations/tr/developers/tutorials/token-integration-checklist/index.md diff --git a/src/content/translations/tr/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md b/public/content/translations/tr/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md rename to public/content/translations/tr/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md diff --git a/src/content/translations/tr/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md b/public/content/translations/tr/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md rename to public/content/translations/tr/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md diff --git a/src/content/translations/tr/developers/tutorials/uniswap-v2-annotated-code/index.md b/public/content/translations/tr/developers/tutorials/uniswap-v2-annotated-code/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/uniswap-v2-annotated-code/index.md rename to public/content/translations/tr/developers/tutorials/uniswap-v2-annotated-code/index.md diff --git a/src/content/translations/tr/developers/tutorials/using-websockets/index.md b/public/content/translations/tr/developers/tutorials/using-websockets/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/using-websockets/index.md rename to public/content/translations/tr/developers/tutorials/using-websockets/index.md diff --git a/src/content/translations/tr/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md b/public/content/translations/tr/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md rename to public/content/translations/tr/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md diff --git a/src/content/translations/tr/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md b/public/content/translations/tr/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md rename to public/content/translations/tr/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md diff --git a/src/content/translations/tr/developers/tutorials/waffle-test-simple-smart-contract/index.md b/public/content/translations/tr/developers/tutorials/waffle-test-simple-smart-contract/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/waffle-test-simple-smart-contract/index.md rename to public/content/translations/tr/developers/tutorials/waffle-test-simple-smart-contract/index.md diff --git a/src/content/translations/tr/developers/tutorials/yellow-paper-evm/index.md b/public/content/translations/tr/developers/tutorials/yellow-paper-evm/index.md similarity index 100% rename from src/content/translations/tr/developers/tutorials/yellow-paper-evm/index.md rename to public/content/translations/tr/developers/tutorials/yellow-paper-evm/index.md diff --git a/src/content/translations/tr/eips/index.md b/public/content/translations/tr/eips/index.md similarity index 100% rename from src/content/translations/tr/eips/index.md rename to public/content/translations/tr/eips/index.md diff --git a/src/content/translations/tr/energy-consumption/index.md b/public/content/translations/tr/energy-consumption/index.md similarity index 100% rename from src/content/translations/tr/energy-consumption/index.md rename to public/content/translations/tr/energy-consumption/index.md diff --git a/src/content/translations/tr/enterprise/index.md b/public/content/translations/tr/enterprise/index.md similarity index 100% rename from src/content/translations/tr/enterprise/index.md rename to public/content/translations/tr/enterprise/index.md diff --git a/src/content/translations/tr/enterprise/private-ethereum/index.md b/public/content/translations/tr/enterprise/private-ethereum/index.md similarity index 100% rename from src/content/translations/tr/enterprise/private-ethereum/index.md rename to public/content/translations/tr/enterprise/private-ethereum/index.md diff --git a/src/content/translations/tr/foundation/index.md b/public/content/translations/tr/foundation/index.md similarity index 100% rename from src/content/translations/tr/foundation/index.md rename to public/content/translations/tr/foundation/index.md diff --git a/src/content/translations/tr/glossary/index.md b/public/content/translations/tr/glossary/index.md similarity index 100% rename from src/content/translations/tr/glossary/index.md rename to public/content/translations/tr/glossary/index.md diff --git a/src/content/translations/tr/governance/index.md b/public/content/translations/tr/governance/index.md similarity index 100% rename from src/content/translations/tr/governance/index.md rename to public/content/translations/tr/governance/index.md diff --git a/src/content/translations/tr/guides/how-to-create-an-ethereum-account/index.md b/public/content/translations/tr/guides/how-to-create-an-ethereum-account/index.md similarity index 100% rename from src/content/translations/tr/guides/how-to-create-an-ethereum-account/index.md rename to public/content/translations/tr/guides/how-to-create-an-ethereum-account/index.md diff --git a/src/content/translations/tr/guides/how-to-id-scam-tokens/index.md b/public/content/translations/tr/guides/how-to-id-scam-tokens/index.md similarity index 100% rename from src/content/translations/tr/guides/how-to-id-scam-tokens/index.md rename to public/content/translations/tr/guides/how-to-id-scam-tokens/index.md diff --git a/src/content/translations/tr/guides/how-to-revoke-token-access/index.md b/public/content/translations/tr/guides/how-to-revoke-token-access/index.md similarity index 100% rename from src/content/translations/tr/guides/how-to-revoke-token-access/index.md rename to public/content/translations/tr/guides/how-to-revoke-token-access/index.md diff --git a/src/content/translations/tr/guides/how-to-swap-tokens/index.md b/public/content/translations/tr/guides/how-to-swap-tokens/index.md similarity index 100% rename from src/content/translations/tr/guides/how-to-swap-tokens/index.md rename to public/content/translations/tr/guides/how-to-swap-tokens/index.md diff --git a/src/content/translations/tr/guides/how-to-use-a-bridge/index.md b/public/content/translations/tr/guides/how-to-use-a-bridge/index.md similarity index 100% rename from src/content/translations/tr/guides/how-to-use-a-bridge/index.md rename to public/content/translations/tr/guides/how-to-use-a-bridge/index.md diff --git a/src/content/translations/tr/guides/how-to-use-a-wallet/index.md b/public/content/translations/tr/guides/how-to-use-a-wallet/index.md similarity index 100% rename from src/content/translations/tr/guides/how-to-use-a-wallet/index.md rename to public/content/translations/tr/guides/how-to-use-a-wallet/index.md diff --git a/src/content/translations/tr/guides/index.md b/public/content/translations/tr/guides/index.md similarity index 100% rename from src/content/translations/tr/guides/index.md rename to public/content/translations/tr/guides/index.md diff --git a/src/content/translations/tr/history/index.md b/public/content/translations/tr/history/index.md similarity index 100% rename from src/content/translations/tr/history/index.md rename to public/content/translations/tr/history/index.md diff --git a/public/content/translations/tr/nft/index.md b/public/content/translations/tr/nft/index.md new file mode 100644 index 00000000000..7eedbc24629 --- /dev/null +++ b/public/content/translations/tr/nft/index.md @@ -0,0 +1,94 @@ +--- +title: Nitelikli Fikrî Tapu (NFT) +description: Ethereum'daki NFT'lere genel bakış +lang: tr +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: Hologram ile gösterilen bir Eth logosu. +summaryPoint1: Benzersiz bir şeyi Ethereum tabanlı bir varlık olarak göstermenin yolu. +summaryPoint2: NFT'ler içerik oluşturuculara her zamankinden daha fazla güç veriyor. +summaryPoint3: Ethereum blokzincirindeki akıllı sözleşmelerle desteklenmektedir. +--- + +## NFT'ler nelerdir? {#what-are-nfts} + +NFT'ler tekil olarak eşsiz jeton'lardır. Her NFT farklı özelliklere (değiştirilemez) sahiptir ve kanıtlanabilir şekilde nadirdir. Bu, ERC-20'ler gibi ("değiştirilebilir") her token'ın set içinde eşit ve aynı özelliklere sahip olduğu token'lardan farklıdır. Cüzdanınızda hangi spesifik dolar banknotu olduğunu önemsemezsiniz çünkü hepsi aynıdır ve aynı değere sahiptir. Ancak, hangi spesifik NFT'ye sahip olduğunuzu _önemsersiniz_ çünkü hepsinin diğerlerinden ayıran kendine has özellikleri ("değiştirilemez") vardır. + +Her NFT'nin eşsizliği, sanat, koleksiyon ürünleri hatta gayrimenkul gibi şeylerin tokenleştirilmesini sağlar; burada belirli bir eşsiz NFT, belli bir eşsiz gerçek veya dijital öğeyi temsil eder. Bir varlığın sahipliği, Ethereum blokzincir'i tarafından güvence altına alınır: böylece hiç kimse sahiplik kaydını değiştiremez ya da kopyala/yapıştır yaparak yeni bir NFT'yi varlık olarak üretemez. + + + +## Varlıkların interneti {#internet-of-assets} + +NFT'ler ve Ethereum, günümüz internetinde mevcut olan bazı problemleri çözmektedir. Her şey daha da dijitalleşirken nadirlik, benzersizlik ve sahiplik kanıtı gibi fiziksel öğelerin özelliklerini kopyalamaya ihtiyaç duyulmaktadır. merkezi bir organizasyon tarafından kontrol edilmeyen şekilde. Örneğin, NFT'ler sayesinde belirli bir şirketin müzik uygulamasına bağlı olmaksızın herhangi bir müzik mp3'üne sahip olabilir ya da satabileceğiniz veya takas edebileceğiniz bir sosyal medya kullanıcı adına sahip olabilirsiniz. Üstelik kullanıcı adınız, platform sağlayıcısı tarafından keyfi olarak sizden alınamaz. + +Günümüzde çoğumuzun kullandığı internete kıyasla NFT'lerin interneti şu şekilde görünüyor... + +### Karşılaştırma {#nft-comparison} + +| NFT interneti | Günümüz interneti | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Varlıkların yalnızca sizindir! Bunları yalnızca sizin satma ya da takas etme yetkiniz vardır. | Bir platformdan bir varlık kiralarsınız. | +| NFT'ler dijital olarak benzersizdir, herhangi iki NFT aynı değildir. | Bir varlığın kopyası genellikle orjinalinden ayırt edilemez. | +| Bir NFT'nin sahipliği, bir kimsenin doğrulayabileceği şekilde blok zincir üzerinde saklanır. | Dijital öğelerin sahiplik kayıtları, kurumlar tarafından kontrol edilen sunucularda saklanır, bu nedenle bunlara güvenmek zorundasınız. | +| NFT'ler Ethereum üzerindeki Akıllı sözleşmelerdir. Bu, onların Ethereum üzerindeki diğer akıllı sözleşmeler ve uygulamalarda kolaylıkla kullanılabileceği anlamına gelir! | Dijital öğelere sahip şirketler genellikle kendi "kapalı ekosistem" altyapılarına ihtiyaç duyar. | +| İçerik oluşturucular, eserlerini istedikleri her yerde satabilir ve küresel bir pazara erişebilirler. | İçerik oluşturucular, kullandıkları platformların altyapısına ve dağıtımına bağlı kalmak zorundadır. Platformlar genellikle kullanım koşulları ve coğrafi kısıtlamalara tabidir. | +| NFT yaratıcıları kendi çalışmaları üzerinde sahiplik haklarını koruyabilir ve telif ücretlerini doğrudan NFT sözleşmesine gömebilirler. | Müzik yayını hizmetleri gibi platformlar, satışlardan elde edilen kârın büyük kısmını ellerinde bulundurur. | + +## NFT'ler nasıl çalışır? {#how-nfts-work} + +Ethereum'da yayınlanan diğer token'lar gibi, NFT'ler de bir akıllı sözleşme tarafından verilir. Akıllı sözleşme, sözleşmenin hangi fonksiyonlara sahip olacağını tanımlayan birkaç NFT standardından birine (genellikle ERC-721 veya ERC-1155) uygundur. Sözleşme, NFT'leri oluşturabilir ("basabilir") ve bunları belirli bir sahibe atayabilir. Sahiplik, belirli NFT'leri belirli adreslere sözleşmeyle eşleyerek tanımlanır. NFT'nin bir kimliği ve genellikle bu kimlikle ilişkili spesifik token'ı benzersiz kılan meta verisi vardır. + +Birisi bir NFT yaratır veya basarsa, aslında akıllı sözleşmede, belirli NFT'yi kendi adreslerine atayan bir fonksiyonu yürütüyordur. Bu bilgi, sözleşmenin depolama alanında saklanır, ki bu da blok zincirin bir parçasıdır. Sözleşme oluşturucu, sözleşmeye ek kurallar ekleyebilir; örneğin toplam arzı sınırlamak ya da bir token'ın her aktarılışında oluşturucusuna ödenecek olan telif hakkını tanımlamak gibi. + +## NFT'ler ne için kullanılır? {#nft-use-cases} + +NFT'ler, şunlar dahil olmak üzere pek çok şey için kullanılabilir: + +- bir etkinliğe katıldığınızı kanıtlama +- bir kursu tamamladığınızı onaylama +- oyunlar için sahiplenebilir öğeler +- dijital sanat +- gerçek dünya varlıklarını tokenlaştırma +- çevrimiçi kimliğinizi kanıtlama +- içeriğe has, özelleştirilmiş erişim +- biletlendirme +- merkeziyetsiz internet alan adları +- DeFi'de teminat + +Belki de eserlerinizi NFT'leri kullanarak paylaşmak isteyen, eserlerinizin kontrolünü kaybetmeden ve kazançlarınızı aracılara feda etmeden çalışmak isteyen bir sanatçısınızdır. NFT'lerin sayısını, özelliklerini ve belirli bir sanat eserine olan bağlantısını belirleyebildiğiniz yeni bir sözleşme oluşturabilirsiniz. Sanatçı olarak, bir NFT aktarılırken almanız gereken telif hakkı bedelini akıllı sözleşmeyle programlayabilirsiniz (yani NFT her aktarıldığında %5'inin sözleşme sahibine transferi gibi). Ayrıca, sözleşmeyi dağıtan cüzdan size ait olduğu için NFT'lerin oluşturucusu olduğunuzu her zaman kanıtlayabilirsiniz. Alıcılarınız, cüzdan adreslerinin akıllı sözleşmenizdeki bir token ile ilişkilendirildiği için koleksiyonunuzdan özgün bir NFT'ye sahip olduklarını kolayca kanıtlayabilirler. Alıcılar, özgünlüğünden ve kontrolünden emin olarak bunu Ethereum ekosistemi içerisinde kullanabilirler. + +Yahut bir spor etkinliğine ait bileti düşünün. Bir etkinlik organizatörü kaç bilet satılacağına karar verdiği gibi, bir NFT'nin oluşturucusu da kaç kopya olacağına karar verebilir. Bazen bunlar, 5000 Genel Giriş bileti gibi birebir kopyalardır. Bazen birbirine çok benzer ama her biri biraz farklı olan kopyalar basılır, örneğin sıralı ve sınırlı atanmış koltuk numarası olan bir bilet gibi. Bu biletler, bilet işletmecilerine ödeme yapmadan eşten eşe alınıp satılabilir ve alıcı, sözleşme adresini kontrol ederek biletin özgünlüğünden her zaman emin olabilir. + +Ethereum.org'da NFT'ler, GitHub deposuna katkıda bulunan kişileri veya çağrılara katılanları göstermek için kullanılır ve hatta kendi NFT etki alanı adımıza da sahip oluruz. Ethereum.org'a katkıda bulunursanız, bir POAP NFT'si talep edebilirsiniz. Bazı kripto buluşmaları için POAP'lar bilet olarak kullanıldı. [Katkıda bulunma hakkında daha fazla bilgi](/contributing/#poap). + +![ethereum.org POAP](./poap.png) + +Bu web sitesinin NFT'lerle desteklenen alternatif bir alan adı da bulunmaktadır: **ethereum.eth**. `.org` adresimiz bir alan adı sistemi (DNS) sağlayıcısı tarafından merkezi olarak yönetilirken, ethereum`.eth`, Ethereum İsim Hizmeti (ENS) aracılığıyla Ethereum'a kaydedilir. Ayrıca sahibi ve yönetimi de bize aittir. [ENS kayıtlarımıza göz atın](https://app.ens.domains/name/ethereum.eth) + +[ENS hakkında daha fazlası](https://app.ens.domains) + + + +### NFT güvenliği {#nft-security} + +Ethereum'un güvenliği, hisse ispatından gelir. Sistem, kötü niyetli eylemleri ekonomik olarak caydırmak ve Ethereum'u müdaheleye karşı dirençli hale getirmek için tasarlanmıştır. Bu NFT'leri mümkün kılan şeydir. NFT işleminizi içeren blok kesinleştiğinde, bir saldırganın bunu değiştirmesi milyonlarca ETH'ye mal olacaktır. Ethereum yazılımını çalıştıran herkes, bir NFT ile dürüst olmayan kurcalamayı hemen tespit edebilecek ve kötü aktör ekonomik olarak cezalandırılacak ve ağdan atılacaktır. + +NFT'lerle ilgili güvenlik sorunları çoğunlukla kimlik avı dolandırıcılığı, akıllı sözleşme güvenlik açıkları veya kullanıcı hataları (istenmeden özel anahtarların açığa çıkarılması gibi) ile ilgilidir ve bu da iyi cüzdan güvenliğini NFT sahipleri için kritik hale getirir. + + + Güvenlik hakkında daha fazla bilgi + + +## Daha fazla bilgi {#further-reading} + +- [NFT'lere yeni başlayanlar için kılavuz](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, Ocak 2020_ +- [EtherscanNFT izleyici](https://etherscan.io/nft-top-contracts) +- [ERC-721 token standardı](/developers/docs/standards/tokens/erc-721/) +- [ERC-1155 token standardı](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/public/content/translations/tr/refi/index.md b/public/content/translations/tr/refi/index.md new file mode 100644 index 00000000000..c76d025954e --- /dev/null +++ b/public/content/translations/tr/refi/index.md @@ -0,0 +1,79 @@ +--- +title: Rejeneratif Finans (ReFi) +description: ReFi'ye ve mevcut kullanım durumlarına genel bakış. +lang: tr +template: use-cases +emoji: ":recycle:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Yenileyici ilkeler üzerine inşa edilmiş alternatif bir ekonomik sistem +summaryPoint2: İklim değişikliği gibi küresel düzeydeki koordinasyon krizlerini çözmek için Ethereum'dan yararlanma girişimi +summaryPoint3: Doğrulanmış karbon kredileri gibi ekolojik fayda varlıklarını büyük ölçüde ölçeklendirmek için bir araç +--- + +## ReFi nedir? {#what-is-refi} + +**Rejeneratif Finans (ReFi)**, çıkarıcı veya sömürücü olmaktan ziyade canlandırıcı ekonomiler yaratmayı amaçlayan, blok zincirler üzerine inşa edilmiş bir dizi araç ve fikirdir. Sonunda, çıkarıcı sistemler mevcut olan kaynakları tüketir ve çökerler; rejeneratif sistemler olmadan eksiktir. ReFi, parasal değer yaratmanın, gezegenimiz ve topluluklarımızdan sürdürülemez şekilde kaynak çıkarılmasından ayrıştırılması gerektiği varsayımı ile işler. + +Bunun yerine, ReFi rejeneratif döngüler oluşturarak çevresel, toplumsal veya sosyal sorunları çözmeyi amaçlar. Bu sistemler, aynı anda ekosistemlere ve topluluklara yarar sağlamanın yanı sıra katılımcılar için değer yaratır. + +ReFi'nin temellerinden birisi [Capital Institute](https://capitalinstitute.org)'tan John Fullerton tarafından öncülük edilen rejeneratif ekonomi konseptidir. O sistemik sağlığın temelinde yatan sekiz birbirine bağlı prensip önerdi: + +![Birbirine bağlanmış sekiz prensip](./refi-regenerative-economy-diagram.png) + +ReFi projeleri bu prensiplerin kullanıldığı [akıllı sözleşmelerde](/developers/docs/smart-contracts/) ve [merkeziyetsiz finans (DeFi)](/defi/) uygulamalarının canlandırıcı davranışlara teşvik ettiğini fark etti, örneğin bozulmuş ekosistemleri kurtarmak ve evrensel sorunlarda iklim değişikliği ve biyolojik çeşitlilik kaybı gibi büyük ölçekli iş birliklerini kolaylaştırdığını anladı. + +ReFi aynı zamanda Ethereum'u bilimsel bilgiyi finanse etmek, oluşturmak, gözden geçirmek, kredilendirmek, depolamak ve yaymak için platform olarak kullanan [merkeziyetsiz bilim (DeSci)](/desci/) hareketi ile örtüşür. DeSci araçları ağaç dikmek, okyanustan plastik temizlemek veya bozulmuş bir ekosistemi yenilemek gibi rejeneratif aktiviteleri uygulamak ve gözlemlemek için doğrulanabilir standartlar ve pratikler geliştirme amaçlı kullanışlı olabilir. + +## Karbon Kredilerinin Tokenlaştırılması {#tokenization-of-carbon-credits} + +**[Gönüllü karbon piyasası (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** mevcut emisyonları azaltarak veya atmosferde yayılan sera gazlarını kaldırarak karbon emisyonları üzerinde doğrulanmış pozitif etki yaratan projeleri fonlamak için bir mekanizmadır. Bu projeler doğrulandıktan sonra iklim hareketini destekleyen kişiler veya organizasyonlara satabilecekleri "karbon kredisi" isimli bir varlık elde ederler. + +VCM'ye ek olarak, spesifik bir yetki alanında (örneğin, ülke veya bölge) kanunlar veya yönetmelikler aracılığıyla bir karbon fiyatı belirlemeyi hedefleyen ve dağıtılacak izinlerin arzını kontrol eden, devlet destekli birkaç karbon piyasası ("uyum piyasaları") vardır. Uyum piyasaları kendi yetki alanlarındaki kirleticileri emisyonları azaltmaları için teşvik eder, ancak hali hazırda yayılmış sera gazlarını yok etme imkânları yoktur. + +Geçmiş on yıllardaki gelişimine rağmen, VCM birtakım sorunlarla boğuşmaya devam ediyor: + +1. Yüksek oranda parçalanmış likidite +2. Şeffaf olmayan işlem mekanizmaları +3. Yüksek ücretler +4. Çok düşük ticaret hızı +5. Ölçeklenebilirlik eksikliği + +VCM'yi yeni blok zincir temelli **dijital karbon piyasasına (DCM)** dönüştürmek karbon kredilerini doğrulama, işlemde kullanma ve tüketme için mevcut teknolojiyi yükseltme fırsatı olabilir. Blok zincirler herkese açık şekilde doğrulanabilir veri, geniş bir kullanıcı aralığı ve daha çok likidite sağlar. + +ReFi projeleri geleneksel piyasaların sorunlarını hafifletmek için blok zincir teknolojilerini kullanır: + +- **Likidite az sayıda likidite havuzunda yoğunlaşmıştır** ve herkes tarafından takas edilebilir. Tekil kişiler gibi büyük organizasyonlar da bu havuzları elle alıcı/satıcı arayışı, katılım ücreti veya ön kayıt olmadan kullanabilir. +- **Tüm işlemler herkese açık blok zincirlerde kayıtlıdır**. Her bir karbon kredisinin takas aktivitesi sebebiyle takip ettiği yolun DCM'de var olduktan sonra sonsuza kadar izi sürülebilir. +- **İşlem hızı neredeyse anlıktır**. Klasik piyasalar aracılığıyla büyük miktarda karbon kredisini güvenli hale getirmek günler veya haftalar alabilir, ancak DCM ile bu birkaç saniye içerisinde gerçekleştirilebilir. +- **Takas aktivitesi aracılar olmadan gerçekleşir**, aracılar yüksek ücretler alırlar. Dijital karbon kredileri bir analiz firmasının verisine göre [eş değer geleneksek kredilere göre %62 masraf iyileştirmesini](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne) temsil eder. +- **DCM ölçeklenebilirdir** ve benzer tekillerin ve uluslararası firmaların isteklerini karşılayabilir. + +### DCM'in Ana Bileşenleri {#key-components-dcm} + +Dört ana bileşen DCM'nin mevcut peyzajını oluşturur: + +1. [Verra](https://verra.org/project/vcs-program/registry-system/) ve [Gold Standard](https://www.goldstandard.org/) gibi kayıt defterleri karbon kredisi oluşturan projelerin güvenilir olduğunu doğrular. Ayrıca bunlar, dijital karbon kredilerinin oluşturulduğu ve transfer edildiği veya kullanıldığı (emekli edildiği) veritabanlarını yönetir. + +Blok zincirler üzerinde inşa edilen ve bu sektördeki mevcut önde gelenlerle rekabet etmeye çalışan yeni bir yenilikçi proje dalgası bulunmaktadır. + +2. Karbon köprüler, diğer adıyla tokenlaştırıcılar, geleneksel kayıt defterlerinden DCM'ye karbon kredisi temsil veya transfer etmek için teknoloji sunarlar. Önde gelen örnekleri şunları içerir: [Toucan Protocol](https://toucan.earth/), [C3](https://c3.app/) ve [Moss.Earth](https://moss.earth/). +3. Entegre servisler son kullanıcılara bir kredinin çevresel faydasını alma ve dünyadaki iklim hareketine desteğini paylaşma için karbon iptali ve/veya kaldırma kredileri sunarlar. + +[Klima Infinity](https://www.klimadao.finance/infinity) ve [Senken](https://senken.io/) gibi bazıları üçüncü şahıslar tarafından geliştirilen ve yerleşmiş standartlar altında arz edilen geniş aralıkta projeler sunarlar; [Nori](https://nori.com/) gibi diğerleri ise sadece kendilerinin arz ettikleri ve kendi özel pazarlarına sahip oldukları kendi karbon kredisi standardına göre geliştirilmiş spesifik projeler sunarlar. + +4. Karbon piyasasının tüm tedarik zinciri etkisinin ve verimliliğinin ölçeklendirilmesini kolaylaştıran temeldeki raylar ve altyapı. [KlimaDAO](http://klimadao.finance/) likiditeyi bir kamu malı olarak sunar (herhangi birinin karbon kredilerini şeffaf bir fiyatla alıp satabilmesini sağlar), karbon piyasalarında girdi artışını ve emeklilikleri ödüllerle teşvik eder, alım ve emekliliğin yanında, geniş bir tokenlaştırılmış karbon kredileri yelpazesi ile alakalı veriye erişim için kullanıcı dostu ve beraber çalışabilen araçlar sunar. + +## Karbon pazarlarının ötesinde ReFi {#refi-beyond} + +Şu anda karbon piyasaları ve VCM'nin DCM'ye dönüşümü hakkında alan içinde büyük bir vurgu olsa da, "ReFi" terimi sadece karbon ile sınırlı değildir. Karbon kredilerinin dışında diğer çevresel varlıklar da geliştirilebilir ve tokenlaştırılabilir, yani ayrıca diğer negatif dışsallıklar da gelecekteki ekonomik sistemlerin temel katmanlarında fiyatlandırılabilir. Dahası, bu ekonomik modelin rejeneratif yönü diğer alanlara uygulanabilir, tıpkı [Gitcoin](https://gitcoin.co/) gibi ikinci dereceden finansman platformları aracılığıyla kamu mallarının fonlanması gibi. Açık katılım ve kaynakların eşit dağıtımı fikri üzerinde inşa edilmiş organizasyonlar herkesi açık kaynak yazılım projelerine olduğu gibi eğitimsel, çevresel ve topluluk odaklı projelere para aktarmak için destekler. + +Sermayenin yönünü çıkarımcı pratiklerden rejeneratif bir akışa çevirerek, sosyal, çevresel veya toplumsal faydalar sağlayan ve geleneksel finansta finansmanı başaramayan projeler ve şirketler ayağa kalkabilir ve toplum için pozitif dışsallıkları çok daha hızlı ve kolay şekilde oluşturabilir. Bu finansman modeline geçiş yapmak aynı zamanda tüm nüfusların sadece pasif izleyicilerdense aktif katılımcılar olabileceği çok daha kapsayıcı ekonomik sistemlere kapı açar. ReFi türümüz ve gezegenimizdeki tüm yaşamın karşılaştığı varoluşsal meydan okumalara karşı hareketi koordine etmek için bir mekanizma ve önümüzdeki yüzyıllar için daha kapsayıcı ve sürdürülebilir geleceği sağlayan yeni bir ekonomik paradigmanın temel katmanı olan bir Ethereum vizyonu sunar. + +## ReFi hakkında ek okuma + +- [Karbon paralarına ve ekonomideki yerine yüksek seviye bir genel bakış](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) +- [Gelecek Bakanlığı, karbon destekli bir para biriminin iklim değişikliği ile savaştaki rolünü gösteren bir roman](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) +- [Gönüllü Karbon Pazarlarının Ölçeklendirilmesi Görev Gücü tarafından detaylı bir rapor](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) +- [Kevin Owocki ve Evan Miyazono'nun ReFi hakkındaki CoinMarketCap Sözlük girdisi](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/tr/roadmap/account-abstraction/index.md b/public/content/translations/tr/roadmap/account-abstraction/index.md similarity index 100% rename from src/content/translations/tr/roadmap/account-abstraction/index.md rename to public/content/translations/tr/roadmap/account-abstraction/index.md diff --git a/public/content/translations/tr/roadmap/beacon-chain/index.md b/public/content/translations/tr/roadmap/beacon-chain/index.md new file mode 100644 index 00000000000..9671a04f1ff --- /dev/null +++ b/public/content/translations/tr/roadmap/beacon-chain/index.md @@ -0,0 +1,75 @@ +--- +title: İşaret Zinciri +description: Hisse ispatını Ethereum'a tanıtan yükseltme olan İşaret Zinciri hakkında bilgi edinin. +lang: tr +template: upgrade +image: /upgrades/core.png +alt: +summaryPoint1: İşaret Zincirinin Ethereum ekosistemine hisse ispatı olarak eklenmesi. +summaryPoint2: Original Ethereum Hisse İspatı zinciri ile eylül 2022de birleştirilmiştir. +summaryPoint3: İşaret Zinciri ve mutabakat mantığını ve şimdilerde Ethereumu güvende tutan blok dedikodusu protokolünü tanıttı. +--- + + + İşaret Zinciri 1 Aralık 2020'de geldi ve hisse ispatını Ethereumun mutabakat mekanizması olarak 15 Eylül 2022'de Birleşim yükseltmesiyle resmileştirdi. + + +## İşaret Zinciri Nedir? {#what-is-the-beacon-chain} + +İşaret Zinciri 2020'de hayata geçirilmiş olan hisse ispatı blok zincirinin orijinal adıdır. Ethereum Markette ulaşılabilir hale gelmeden önce Hisse ispatı mutabakatı mantığının sağlam ve sürdürülebilir olduğundan emin olmak için oluşturuldu. Bu yüzden, Ethereum'un iş ispatı ile birlikte çalıştırıldı. İşaret zinciri boş bloklardan oluşan bir zincirdi, ancak Ethereumda İş ispatından ve hisse ispatına geçiş İşaret Zincirinin tanıtılmasına ve Yürütüm İstemcilerinden gelen işlem verilerinin kabul edilmesine, blokların paket haline getirilmesine ve bir blok zincirin içine hisse ispatı ve mutabakat mantığıyla organize edilmesine yol açtı. Aynı zamanda, orijinal Ethereum Müşterileri madenciliklerini, blok yayılmalarını ve Mutabakat mantıklarını kapattılar ve bunları tamamen İşaret Zincirine bıraktılar. Bu olay [Birleşim](/roadmap/merge/) olarak bilinir. Birleşim olduğunda, artık ikili blok zincirler yoktu. Onun yerine, sadece bir hisse ispatı Ethereumu vardı ve bu artık düğüm başına iki farklı istemci gerektiriyor. İşaret Zinciri artık fikir birliği katmanı, fikir birliği istemcileri için eşler arası bir ağ ve blok dedikodusu ve mutabakat mantığını hallediyor. Dedikodu ve işlemlerin uygulanmasından, Ethereum'un duruşunu yönetmekten sorumlu. Bu iki katman birbirleriyle Motor API'sını kullanarak iletişim kurabilirler. + +## İşaret Zinciri Ne Yapar? {#what-does-the-beacon-chain-do} + +İşaret Zinciri Ethereum [paydaşlar](/staking/) ağını oluşturan ve koordine eden hesap defterlerine verilen addır, bunlardan önce ise hissedarlar gerçek Ethereum bloklarını doğrulamaya başlamışlardı. Ama, İşaret Zinciri işlemleri ilerletmez ya da akıllı sözleşme etkileşimlerini halletmez çünkü bu işlemler Yürütüm Katmanında yapılmaktadır. İşaret Zinciri, blok ve tasdik işlemleri, çatallanma seçim algoritmasını çalıştırma ve ödül ve cezaları yönetme gibi şeylerden sorumludur. [Düğüm mimarisi sayfamızda](/developers/docs/nodes-and-clients/node-architecture/#node-comparison) daha fazlasını okuyun. + +## İşaret Zinciri etkisi {#beacon-chain-features} + +### Staking ile Tanışın {#introducing-staking} + +İşaret Zinciri, Ethereum'a [Hisse İspatını](/developers/docs/consensus-mechanisms/pos/) tanıttı. Bu, Ethereum'u güvende tutar ve süreç doğrulayıcılarına daha fazla ETH kazandırır. Pratikte hisseleme, doğrulayıcı yazılımını aktive etmek için ETH'nin hisselenmesini içerir. Bir paydaş olarak, zincirde yeni bloklar oluşturan ve doğrulayan yazılımı çalıştırırsınız. + +Hisseleme [ madenciliğin](/developers/docs/mining/) eskiden yaptığına benzer bir amaca hizmet eder, ancak birçok yönden farklıdır. Madencilik güçlü donanım, enerji harcaması gibi büyük ön harcamalar gerektiriyordu ve ölçeklendirilmiş ekonomilere sebep oluyor ve merkeziyetçiliği teşvik ediyordu. Madencilik ayrıca varlıkları teminat olarak kitlemeye gerek duymuyordu ve protokolün uğranan saldırıdan sonra gerekli kişilere gerekli ceza vermesini de sınırlandırıyordu. + +Hisse ispatına geçiş Ethereum'u, iş ispatına kıyasla, çok daha güvenli ve merkeziyetsiz hale getirdi. Ağa katılan insan sayısı arttıkça, mevcut ağ bir o kadar merkeziyetsiz ve saldırılara karşı daha da güvende olur. + +Ve hisse ispatını mutabakat mekanizması olarak kullanmak, [ şuan sahip olduğumuz güvenli, çevre dostu ve ölçeklenebillir Ethereum](/roadmap/vision/) için temel bir bileşendir. + + + Eğer doğrulayıcı olmakla ve Ethereum'un güvenliğini sağlamaya yardımcı olmakla ilgileniyorsanız, hisseleme ile ilgili daha fazla şey öğrenin. + + +### Parçalama için ayarlamalar {#setting-up-for-sharding} + +İşaret Zinciri, Ethereum Ana Ağı ile birleştiğinden beri, Ethereum topluluğu ağı ölçeklendirmeye başladı. + +Hisse İspatı, herhangi bir zamanda, her biri ETH'nin söz konusu olduğu tüm onaylanmış blok üreticilerinin kaydına sahip olma avantajına sahiptir. Bu kayıt defteri, bölme ve fethetme yeteneği için zemin hazırlar, ancak belirli ağ sorumluluklarını güvenilir bir şekilde böler. + +Bu sorumluluk, madencilerin ağa karşı hiçbir yükümlülüğünün olmadığı ve madenciliği durdurup düğüm yazılımlarını anında kalıcı olarak kapatabilecekleri iş ispatının karşıtıdır. Ayrıca bilinen blok teklifçilerinin kaydı ile ağ sorumluluklarını güvenli bir şekilde bölmenin güvenilir bir yolu yoktur. + +[Parçalama hakkında daha fazlası](/roadmap/danksharding/) + +## Yükseltmeler arasındaki ilişki {#relationship-between-upgrades} + +Ethereum yükseltmelerinin tamamı bir şekilde ilişkilidir. İşaret Zincirinin diğer yükseltmeleri nasıl etkilediğini özetleyelim. + +### İşaret Zinciri ve Birleşim {#merge-and-beacon-chain} + +İlk başta İşaret Zinciri, Ethereum Ana Ağı'ndan ayrıydı, ancak 2022'de birleştirildi. + + + Birleştirme + + +### Parçalar ve İşaret Zinciri {#shards-and-beacon-chain} + +Parçalama, Ethereum ekosistemine yalnızca bir Hisse İspatı mutabakat mekanizması ile güvenli bir şekilde girebilir. İşare Zinciri Ana Ağ ile "bireleşerek" Ethereum'un daha da ölçeklenmesine yardımcı olmak için parçalamanın önünü açan hisselemeyi tanıttı. + + + Parça zincirleri + + +## Daha Fazla Okuma + +- [Ethereum'un gelecekteki yükseltmeleri hakkında daha fazla bilgi](/roadmap/vision) +- [Düğüm mimarisi hakkında daha fazlası](/developers/docs/nodes-and-clients/node-architecture) +- [Hisse ispatına dair daha fazlası](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/tr/roadmap/danksharding/index.md b/public/content/translations/tr/roadmap/danksharding/index.md similarity index 100% rename from src/content/translations/tr/roadmap/danksharding/index.md rename to public/content/translations/tr/roadmap/danksharding/index.md diff --git a/public/content/translations/tr/roadmap/future-proofing/index.md b/public/content/translations/tr/roadmap/future-proofing/index.md new file mode 100644 index 00000000000..6f201fd61cf --- /dev/null +++ b/public/content/translations/tr/roadmap/future-proofing/index.md @@ -0,0 +1,38 @@ +--- +title: Ethereum'u geleceğe dirençli hale getirmek +description: Bu yükseltmeler, ileride ne olursa olsun Ethereum'u gelecek için esnek, merkeziyetsiz temel katman olarak sağlamlaştırıyor. +lang: tr +image: /roadmap/roadmap-future.png +alt: "Ethereum yol haritası" +template: roadmap +--- + +Yol haritasının bazı bölümleri Ethereum'u yakın vadede ölçeklendirmek veya güvence altına almak için gerekli değildir, ancak Ethereum'u geleceğe yönelik istikrar ve güvenilirlik için ayarlar. + +## Kuantum direnci {#quantum-resistance} + +Günümüz Ethereum'unu koruyan bazı kriptografiler, kuantum hesaplama gerçeklik haline geldiğinde tehlikeye girecek. Kuantum bilgisayarlarının modern kriptografiye gerçek anlamda bir tehdit oluşturması muhtemelen onlarca yıl uzakta olsa da, Ethereum gelecek yüz yıllar boyunca güvende olacak şekilde inşa ediliyor. Bunun anlamı; mümkün olan en kısa sürede [ Ethereum'u kuantum dirençli](https://consensys.net/blog/developers/how-will-quantum-supremacy-affect-blockchain/) hale getirmektir. + +Ethereum geliştiricilerinin karşılaştığı zorluk, Mevcut hisse ispatı protokolünün geçerli bloklara dair oyları toplamak için BLS olarak bilinen çok verimli bir imza şemasına dayanmasından kaynaklanmaktadır. Bu imza şeması kuantum bilgisayarlar tarafından kırılabilir, ancak kuantum dirençli alternatifleri de o kadar verimli değildir. + +Ethereum'da kriptografik sırlar oluşturmak için çeşitli yerlerde kullanılan ["KZG" taahhüt şemaları](/roadmap/danksharding/#what-is-kzg)nın kuantum açısından savunmasız olduğu bilinmektedir. Şu anda, bu durum "güvenilir kurulumlar" kullanılarak önlenmektedir, burada birçok kullanıcı kuantum bilgisayar tarafından tersine mühendislik yapılamayan rastgelelik oluşturur. Ancak ideal çözüm, sadece kuantum güvenli kriptografiyi entegre etmek olacaktır. BLS şemasının yerine verimli bir şekilde geçebilecek iki önde gelen yaklaşım bulunmaktadır: [STARK tabanlı](https://hackmd.io/@vbuterin/stark_aggregation) ve [kafes tabanlı](https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-lattice-encryption-326ac66e3175) imzalama. Bu yöntemler hâlâ araştırılıyor ve prototip aşamasında bulunuyor. + + KZG ve güvenilir kurulumlar hakkındakileri okuyun + +## Daha basit ve daha verimli Ethereum {#simpler-more-efficient-ethereum} + +Karmaşıklık, "hatalar" ve saldırganlar tarafından kötüye kullanılabilecek kırılganlıkların önünü açar. Bu yüzden, yol haritası Ethereum'u basitleştirir ve birçok yükseltmeden orada kalmış olan, ancak artık ihtiyaç duyulmayan kodu siler. Daha sade ve daha basit bir kod tabanı geliştiricilerin işlerini sürdürebilmesini ve anlayabilmesini kolaylaştırır. + +Her şeyi daha tutarlı ve basit hale getirmek için [Ethereum Sanal Makinesi'ne (ESM)](/developers/docs/evm) gelecek birkaç güncelleme olacak. Bu güncellemeler[SELFDESTRUCT adındaki işlem kodunu](https://hackmd.io/@vbuterin/selfdestruct) silmeyi de kapsayacak. SELFDESTRUCT, artık ihtiyaç duyulmayan ve nadiren kullanılan, hatta eğer Ethereum'un depolama modeliyle kombine edilir ya da yükseltmelerden herhangi birine katılırsa tehlikeli hale bile gelebilecek bir işlem kodudur. Ethereum istemcileri aynı zamanda hâlâ istense tamamen silinebilecek olan eski işlem türlerini de destekliyor. Gazın hesaplanma şekli kriptografik operasyonları destekleyen matematiksel ve daha tutarlı metodlarla geliştirilebilir. + +Benzer olarak, Ethereum istemcilerinin günümüzdeki diğer kısımlarına yapılabilecek güncellemeler de var. Şu anda bunun için farklı bir veri sıkıştırma yöntemi kullanan fikir birliği istemcilerini bir örnek olarak verebiliriz. Sıkıştırma şeması bütün ağ ile birleştirildiğinde istemciler arası veri paylaşmak çok daha kolay ve içgüdüsel bir hal alacak. + +## Güncel ilerleme {#current-progress} + +Ethereum gelecek ispatı için gereken bir çok yükseltme hâlâ araştırma aşamasında ve uygulanmasına birkaç yıl daha var. SELFDESTRUCT komutunu silme ve fikir birliği istemcilerinde kullanılan sıkıştırma şemasını harmanlama gibi yükseltmeler muhtemelen kuantuma dayanıklı kriptografiden çok daha önce gelecek. + +**Daha fazla bilgi** + +- [Gaz](/developers/docs/gas) +- [EVM](/developers/docs/evm) +- [Veri Yapıları](/developers/docs/data-structures-and-encoding) diff --git a/public/content/translations/tr/roadmap/index.md b/public/content/translations/tr/roadmap/index.md new file mode 100644 index 00000000000..63e4f7e8b6c --- /dev/null +++ b/public/content/translations/tr/roadmap/index.md @@ -0,0 +1,117 @@ +--- +title: Ethereum yol haritası +description: Ethereum için daha ölçeklenebilir, güvenli ve sürdürülebilir olmanın yolu. +lang: tr +template: roadmap +image: /roadmap/roadmap-main.png +alt: "Ethereum yol haritası" +summaryPoints: +buttons: + - label: Sonraki yükseltmeler + toId: hangi-degişiklikler-geliyor + - label: Geçmiş yükseltmeler + to: /history/ + variant: ana hat +--- + +Ethereum halihazırda küresel koordinasyon için güçlü bir platform, ancak yine de iyileştiriliyor. İddialı bir geliştirme takımı Ethereum'u mevcut formundan tam anlamıyla ölçeklendirilmiş, azami esnek platforma yükseltecektir. Bu yükseltmeler Ethereum yol haritasında tasarlanmıştır. + +**Ethereum'daki daha önceki yükseltmeler hakkında öğrenmek için lütfen [Geçmiş](/history/) sayfamızı ziyaret edin** + +## Ethereum'a hangi değişiklikler geliyor? {#what-changes-are-coming} + +Ethereum yol haritası, gelecekte protokole yapılacak özgün geliştirmelerin ana hatlarını oluşturur. Genel anlamda yol haritası, Ethereum kullanıcılarına aşağıdaki faydaları sağlayacaktır: + + + + + + + + +## Neden Ethereum bir yol haritasına ihtiyaç duyar? {#why-does-ethereum-need-a-roadmap} + +Ethereum; ölçeklenebilirliğini, güvenliğini ya da sürdürülebilirliğini kuvvetlendirecek düzenli yükseltmeler alır. Ethereum'un temel güçlerinden biri, araştırma ve geliştirmeden ortaya çıkan yeni fikirlere uyumlu olmasıdır. Uyumluluk, Ethereum'a ortaya çıkan engelleri aşma ve en gelişmiş teknolojik atılımlara yetişme esnekliğini verir. + + + +Yol haritası çoğunlukla, araştırmacı ve geliştirmecilerin yıllar süren çalışmasının ürünüdür çünkü protokol oldukça tekniktir, ancak motive olmuş kişiler katılabilir. Fikirler genellikle [ethresear.ch](https://ethresear.ch/), [Ethereum sihirbazları](https://www.figma.com/exit?url=https%3A%2F%2Fethereum-magicians.org%2F) gibi forumlarda veya Eth Ar&Ge discord sunucusunda ortaya atılır. Yeni keşfedilmiş sistem açıklarına karşı tepkiler, uygulama katmanında çalışan organizasyonlardan (merkeziyetsiz uygulama ve borsalar) öneriler ya da son kullanıcılar için bilinen ihtilaflar (ücretler veya işlem hızları gibi) olabilir. Bu fikirler olgunlaştığında [Ethereum İyileştirme Önerileri](https://eips.ethereum.org/) olarak önerilebilirler. Herhangi bir zamanda topluluk içinden fikir sunulması için bu, tümüyle halka açık biçimde yapılır. + +[Ethereum yönetişimi hakkında daha fazlası](/yönetişim/) + + + + +

ETH2 neydi?

+ +

"Eth2" terimi hisse ispatına geçişten önce sıklıkla Ethereum'un geleceği olarak tanımlandı ancak bu, daha kesin bir terminoloji için aşamalı olarak kaldırıldı. Aslen, hisse ispatına geçişten önceki Ethereum ağını geçişten sonraki ağdan ayırmak ya da kimi zaman farklı Ethereum müşterilerine atfedilmek (yürütüm istemcisi bazen ETH1 olarak atfedildi ve fikir birliği istemcileri bazen ETH2 istemcisi olarak atfedildi) için kullanıldı.

+ +
+ +## Ethereum'un yol haritası zaman içinde değişecek mi? {#will-ethereums-roadmap-change-over-time} + +Evet, neredeyse kesinlikle. Yol haritası, hem yakın dönemi hem gelecek planlarını kapsayan, Ethereum'u yükseltmenin şu anlık planıdır. Yeni bilgi ve teknolojiler kullanılabilir oldukça yol haritasının değişmesini umuyoruz. + +Ethereum'un yol haritasını Ethereum'un gelişmesi için bir niyet takımı olarak düşünün; bu, temel araştırma ve geliştiricilerin Ethereum'un ileriye dönük en uygun yolu için en iyi varsayımlarıdır. + +## Yol haritası ne zaman sonlanacak? {#when-will-the-roadmap-be-finished} + +Ethereum, gelecek 6 ay içinde kimi yükseltmeleri uygulamaya koyacak (ör. hisseleme çekimleri); diğerleri ise daha az önceliğe sahip ve önümüzdeki 5-10 yıl içerisinde uygulamaya konması mümkün görünmüyor (ör. kuantum direnci). Birçok yol haritası elemanı birbirine paralel olarak çalıştığı ve farklı hızlarla geliştirildiği için her bir yükseltmenin kesin zamanlamasını vermek karmaşıktır. Bir yükseltmenin ivediliği zaman içinde dış etmenlere (ör. kuantum bilgisayarlarının performansı ve kullanılabilirliğindeki ani sıçrama, kuantum dirençli kriptografiyi daha ivedi hale getirir) bağlı olarak değişebilir. + +Ethereum gelişmesini düşünmenin bir yolu da onu biyolojik evrimle kıyaslamaktır. Her ne kadar ağ giderek daha etkin, ölçeklenebilir ve güvenli hale gelip protokol daha az değişime ihtiyaç duysa dahi yeni zorluklara uyum sağlama ve uyumunu sürdürme becerisine sahip bir ağın değişime direnen bir ağa kıyasla başarılı olması daha olasıdır. + +## Bir yükseltme varken herhangi bir şey yapmak zorunda mıyım? {#do-i-have-to-do-anything-when-there-is-an-upgrade} + +Yükseltmeler; Ethereum ile nasıl etkileşileceği konusunda daha iyi kullanıcı deneyimi sağlayarak ve belki daha fazla seçenek sunarak son kullanıcıları etkilememe eğilimindedir. Son kullanıcılar ne aktif olarak yükseltmelerde yer alma ne de varlıklarını güvenli tutmak için herhangi bir şey yapma zorunluluğunda değiller. Düğüm operatörleri, müşterilerini bir yükseltmeye hazırlanmaları için bilgilendirmeliler. Bazı yükseltmeler, uygulama geliştiricileri için değişikliklere yol açabilir. Örneğin, tarih sonlanma yükseltmesi, uygulamala geliştiriclerinin geçmiş veriyi farklı kaynaklardan elde etmelerine yol açabilir. + +## Peki ya Verge, Splurge ve diğerleri? {#what-about-the-verge-splurge-etc} + +[Vitalik Buterin Ethereum yol haritası için](https://twitter.com/VitalikButerin/status/1588669782471368704), Ethereum mimarisine olan etkileriyle bağlantılı olarak çeşitli kategorilere ayrılmış [bir vizyon önerdi](https://twitter.com/VitalikButerin/status/1588669782471368704). Şunları içeriyordu: + +- Merge: iş ispatından hisse ispatına geçişle alakalı yükseltmeler +- Surge: toplamalar ve veri parçalama sayesinde ölçeklenebilirlikle alakalı yükseltmeler +- Ceza: sansür direnci, merkeziyetsizlik ve MEV'den protokol riskleri ile alakalı yükseltmeler +- Verge: blokların daha kolayca onaylanması ile alakalı yükseltmeler +- Purge: protokol basitleştirilmesi ve düğüm yürütme bilişimsel masraflarının azaltılması ile alakalı yükseltmeler +- Splurge: önceki kategorilerde sınıflandırılamayan diğer yükseltmeler. + +Bu terminolojiyi kullanmamaya karar verdik çünkü daha temel ve kullanıcı odaklı model kullanmak istiyoruz. Kullanıcı odaklı dil kullansak dahi vizyon, Vitalik'in önerdiği gibi aynı kalıyor. + +## Peki ya parçalama? {#what-about-sharding} + +Parçalama; doğrulayıcı alt kümeleri tüm verinin yalnızca bir kısmından sorumlu olsunlar diye Ethereum blok zincirinin ayrılmasıdır. Bu aslen, Ethereum'un ölçeklendirilmesi için bir yol olarak tasarlanmıştı. Ancak katman 2 toplamalar beklenenden çok daha hızlı gelişti ve halihazırda oldukça fazla ölçeklendirme sağladılar ve Proto-Danksharding yürürlüğe konmasından sonra da çokça ölçeklendirme sağlayacaklar. Bunun anlamı artık ''parça zincirlerine'' gerek kalmayacak ve yol haritasından düşülecekler. + +## Özgün teknik yükseltmeler mi arıyorsunuz? {#looking-for-specific-technical-upgrades} + +- [Danksharding](/roadmap/danksharding)-Dankharding katman 2 toplamalarını Ethereum Bloklarına veri "damlaları" ekleyerek çok daha ucuz hale getirir. +- [Hisseleme çekimleri](/staking/withdrawals) - Shanghai/Capella yükseltmesi; insanların hisselenmiş ETH'lerini açmalarına olanak tanıyarak hisseleme çekimlerini mümkün kıldı. +- [Tekli Yuva Kesinliği](/roadmap/single-slot-finality) 15 dakika beklemek yerine, bloklar tek bir yuvada önerilip kesinleştirilebilir. Bu, uygulamalar için daha kullanışlı ve saldırmak için zor. +- [Önerici-inşa edici ayrımı](/roadmap/pbs) - Blok inşa ve blok öneri görevlerini ayrı doğrulayıcılar arasında paylaştırmak; Ethereum'un mutabakata ulaşması için daha adil, daha sansür dirençli ve daha etkin bir yol yaratır. +- [Gizli lider seçimi](/roadmap/secret-leader-election) - Akıllı kriptografi; o andaki blok önerenini açık etmeden, onları belli başlı saldırı çeşitlerinden koruyarak kimliklerini güvence altına almada kullanılabilir. +- [Hesap soyutlaması](/roadmap/account-abstraction) - Hesap soyutlaması; akıllı sözleşme cüzdanlarını karmaşık ara katman yazılımı kullanmak zorunda olmadan doğası gereği Ethereum üzerinde destekleyen bir yükseltme sınıfıdır. +- [Verkle ağaçları](/roadmap/verkle-trees) - Verkle ağaçları, Ethereum üzerinde durumsuz müşterileri mümkün kılmak için kullanılabilecek bir veri yapısıdır. Bu 'durumsuz'' müşterilerin yalnızca çok az miktarda depo hacmi gereksinimi olacak, ancak onlar yine de yeni blokları doğrulamaya devam edebilecekler. +- [Durumsuzluk](/roadmap/statelessness) - durumsuz müşteriler yeni blokları, çok fazla veriyi depolamak zorunda kalmadan doğrulayabilecekler. Bu sayede, düğüm yürütmenin tüm faydaları yalnızca bugünün masraflarının küçük bir kısmıyla karşılanabilecek. diff --git a/public/content/translations/tr/roadmap/merge/index.md b/public/content/translations/tr/roadmap/merge/index.md new file mode 100644 index 00000000000..b2c0af46f04 --- /dev/null +++ b/public/content/translations/tr/roadmap/merge/index.md @@ -0,0 +1,229 @@ +--- +title: Birleştirme +description: "Birleşim: Ana Ağ Ethereum'un hisse ispatını kullanmaya başlama zamanı hakkında bilgi edinin." +lang: tr +template: upgrade +image: /upgrades/merge.png +alt: +summaryPoint1: Ethereum Ana Ağı hisse ispatı kullanır, ancak bu her zaman geçerli olan durum değildi. +summaryPoint2: Özgün iş ispatı mekanizmasının hisse ispatına yükseltilmesi Birleşim olarak adlandırılır. +summaryPoint3: Birleşim, esas Ethereum Ana Ağı'nın İşaret Zinciri olarak adlandırılan ayrı bir iş ispatı blok zinciri ile birleşmesi ile artık tek bir zincir olarak varlığını sürdürmesini ifade eder. +summaryPoint4: Birleşim, Ethereum'un enerji tüketimini ~%99,95 oranında azalttı. +--- + + + Birleşim 15 Eylül 2022 de gerçekleştirildi. Bu, iş ispatını resmi olarak kullanım dışı bırakarak ve enerji tüketimini yaklaşık %99,95 azaltarak Ethereum'un iş ispatı mutabakatına geçişini tamamladı. + + +## Birleşim neydi? {#what-is-the-merge} + +Birleşim Ethereum'un orijinal yürütüm katmanı ([başlangıç](/history/#frontier) zamanından beri olan Ana Ağ) ile yeni hisse ispatı fikir birliği katmanı olan İşaret Zinciri'nin birleşmesiydi. Yoğun enerji tüketen madenciliğe olan ihtiyacı kaldırdı ve ağın hisselenmiş ETH aracılığıyla güvenli kılınmasına ön ayak oldu. Ethereum vizyonunun gerçekleştirilmesinde gerçekten heyecan verici bir adımdı; daha fazla ölçeklenebilirlik, güvenlik ve sürdürülebilirlik. + + + +Başlangıçta, [İşaret Zinciri](/roadmap/beacon-chain/) [Ana Ağ'dan](/glossary/#mainnet) farklı olarak yayımlandı. Ethereum Ana Ağı - tüm hesapları, bakiyeleri, akıllı sözleşmeleri ve blok zincir durumu dahil - [iş ispatı](/developers/docs/consensus-mechanisms/pow/) ile güvence altına alınmaya devam ediyordu, İşaret Zinciri, [hisse ispatı](/developers/docs/consensus-mechanisms/pos/) kullanarak paralel olarak çalışırken de dahil olmak üzere. Birleşim bu iki sistemin bir araya geldiği ve hisse ispatının iş kanıtının yerini kalıcı olarak aldığı zamandı. + +Ethereum'un yıldızlar arası bir yolculuğa pek hazır olmadan önce fırlatılan bir uzay gemisi olduğunu düşünün. İşaret Zinciri ile topluluk, yeni bir motor ve sertleştirilmiş bir gövde inşa etti. Kayda değer testlerden sonra, uçuş esnasında yeni motoru eski motorla çalışma esnasında değiştirme vakti geldi. Bu yeni ve daha etkili olan motoru mevcut gemiyle birleştirdi ve ciddi miktarda ışık yılı ortaya koyarak evrene meydan okudu. + +## Ana Ağ ile birleştirme {#merging-with-mainnet} + +İş ispatı Ethereum Ana Ağı'nı başlangıçtan Birleşim'e kadar güvenli kıldı. Bu aşina olduğumuz Ethereum blok zincirinin bilinen özellikleriyle Temmuz 2015'te var olmasını sağladı; işlemler, akıllı sözleşmeler, hesaplar ve benzeri. + +Ethereum'un tarihi boyunca geliştiriciler, iş ispatından hisse ispatına nihai bir geçiş için hazırlandılar. 1 Aralık 2020'de, Ana Ağ'dan ayrı bir blok zincir olarak var olan ve paralel olarak çalışan İşaret Zinciri oluşturuldu. + +İşaret Zinciri, normalde Ana Ağ işlemlerini işlemiyordu. Bunun yerine, aktif doğrulayıcılar ve hesap bakiyeleri üzerinde anlaşmaya vararak kendi durumu üzerinde fikir birliğine varıyordu. Geniş testler sonrası, İşaret Zinciri'nin gerçek verilere göre fikir birliğine varmasının zamanı geldi. Birleşim sonrası, İşaret Zinciri yürütüm katmanı işlemleri ve hesap bakiyeleri dahil tüm ağ verisi için mutabakat motoru haline geldi. + +Birleşim blok üretim motoru olarak İşaret Zinciri'ne resmi geçişi temsil eder. Madencilik artık geçerli bloklar üretmenin yolu değildir. Yerine, hisse ispatı doğrulayıcıları bu rolü almıştır ve artık tüm işlemlerin doğruluğunu işlemekten ve bloklar önermekten sorumludur. + +Birleşim'de herhangi bir geçmiş kaybedilmedi. Ana Ağ İşaret Zinciri ile birleşti, ayrıca Ethereum'un tüm işlemsel geçmişini de birleştirdi. + + +Hisse ispatına geçiş ether basım şeklini değiştirdi. Birleşim'den önce ve sonra ether verilmesi hakkında daha fazla bilgi edinin. + + +### Kullanıcılar ve sahipler {#users-holders} + +**Birleşim, sahipler/kullanıcılar için herhangi bir şey değiştirmedi.** + +_Bu tekrar ister_: Ya düğüm yönetmeyen bir kilitleyici olarak ya da Ethereum üzerinde bir ETH veya herhangi diğer bir dijital varlığın sahibi olarak, **Birleşim için fonlarınız, cüzdanınız veya hesabınız için herhangi bir şey yapmanız gerekmez.** ETH sadece ETH'dir. "Eski ETH"/"yeni ETH" veya "ETH1"/"ETH2" diye bir şey yoktur ve cüzdanlar Birleşim'den önce nasıl çalışıyorsa sonrasında da öyle çalışacaktır, size bunun aksini söyleyenler muhtemelen dolandırıcılardır. + +İş ispatından ayrılmasına rağmen, Ethereum'un başlangıçtan itibaren tüm geçmişi sabit kalmıştır ve hisse ispatına geçişten etkilenmemiştir. Birleşim'den önce cüzdanınızda bulunan herhangi bir fon Birleşim'den sonra da erişilebilirdir. **Yeni sürüme geçmek için herhangi bir işlem yapmanız gerekmez.** + +[Ethereum güvenliği hakkında daha fazlası](/security/#eth2-token-scam) + +### Düğüm operatörleri ve dapp geliştiricileri {#node-operators-dapp-developers} + + + +Anahtar eylem maddeleri şunları içerir: + +1. _Hem_ bir fikir birliği istemcisi hem de yürütüm istemcisi çalıştırın; yürütme verisi elde etmek için kullanılan üçüncü şahıs uç noktaları Birleşim'den itibaren çalışmaz. +2. Güvenli bir şekilde iletişim kurabilmeleri için hem yürütme hem de fikir birliği istemcilerinin kimliğini paylaşılan bir JWT sırrıyla doğrulayın. +3. Kazanılmış işlem ücreti/MEV ücretinizini almak için bir "ücret alıcısı" adresi belirleyin. + +İlk iki maddeyi tamamlamamak iki katman da eşlenene ve doğrulanana kadar düğümünüzün "çevrimdışı" olarak görülmesine sebep olur. + +Bir "ücret alıcısı" ayarlamamak doğrulayıcınızın davranışını etkilemez, ancak doğrulayıcınızın önerdiği bloklarda kazanılan yakılmamış ücretleri ve MEV ücretlerini kaçırırsınız. + + + + +Birleşim'e kadar bir yürütüm istemcisi (Geth, Erigon, Besu veya Nethermind gibi) ağdan anlatılan blokları almak, düzgünce doğrulamak ve yaymak için yeterliydi. _Birleşim sonrası_, bir yürütme yükü içinde bulunan işlemlerin geçerliliği artık ayrıca bulunduğu "mutabakat blokunun" geçerliliğine bağlı olacaktır. + +Bunun bir sonucu olarak, bir Ethereum düğümü artık hem bir yürütüm istemcisi hem de fikir birliği istemcisi gerektirir. Bu iki müşteri, yeni bir Motor API'sı kullanarak birlikte çalışır. Motor API'sı, her iki müşteriye de sağlanan ve güvenli iletişime izin veren bir JWT sırrı kullanılarak kimlik doğrulaması gerektirir. + +Anahtar eylem maddeleri şunları içerir: + +- Yürütüm istemcisine ek olarak bir fikir birliği istemcisinin kurulumunu yapma +- Birbirleriyle güvenli bir biçimde iletişime geçebilmeleri için yürütüm ve fikir birliği istemcilerini paylaşımlı bir JWT sırrı ile doğrulama. + +Yukarıdaki maddeleri tamamlamamak iki katman da eşlenene ve doğrulanana kadar düğümünüzün "çevrim dışı" olarak görülmesine sebep olur. + + + + + +Birleşim, mutabakata değişikliklerle beraber geldi, bu değişiklikler şunlarla ilişkili olanları da içerir:< + +
    +
  • blok yapısı
  • +
  • yuva/blok zamanlaması
  • +
  • işlem kodu değişiklikleri
  • +
  • zincir üstündeki rastgeleliğin kaynakları
  • +
  • güvenli baş ve sonlandırılmış bloklar konsepti
  • +
+ +Daha fazla bilgi için, Tim Beiko tarafından yazılmış Birleşim Ethereum'un Uygulama Katmanını Nasıl Etkiler üzerine blog gönderisine bakın. + +
+ +## Birleşim ve enerji tüketimi {#merge-and-energy} + +Birleşim Ethereum için iş ispatının sonunu getirdi ve daha sürdürülebilir ve doğa dostu bir Ethereum devrini başlattı. Ethereum'un enerji tüketimi %99,95 düştü ve Ethereum çevre dostu bir blok zincir haline geldi. [Ethereum enerji tüketimi](/energy-consumption/) hakkında daha fazla bilgi edinin. + +## Birleşim ve ölçeklendirme {#merge-and-scaling} + +Birleşim aynı zamanda, iş ispatı altında mümkün olmayan daha fazla ölçeklenebilirlik yükseltmeleri için zemin hazırlayacak ve Ethereum'u [Ethereum vizyonunda](/roadmap/vision/) belirtilen tam ölçek, güvenlik ve sürdürülebilirliğe bir adım daha yaklaştıracak. + +## Birleşim hakkında yanlış bilinenler {#misconceptions} + + + +İki tip Ethereum düğümü bulunur: Blok önerebilen ve öneremeyen düğümler. + +Blok önerebilen düğümler Ethereum üzerindeki toplam düğüm sayısının küçük bir kısmıdır. Bu kategori, iş ispatı (PoW) altındaki madencilik düğümleri ile hisse ispatı (PoS) altındaki doğrulayıcı düğümleri kapsar. Bu kategori ekonomik kaynakların (iş ipatındaki GPU karma gücü ya da hisse ispatında hisselenmiş ETH gibi), yeni bloku kimi zaman önerme ve protokol ödülleri kazanma yetenekleri karşılığında buraya adanmasını gerektirir. + +Ağdaki diğer düğümler (yani çoğunluğu)1-2 TB'lik depolama alanı ve internet bağlantısı olan tüketici seviyesindeki bir bilgisarın ötesinde bir ekonomik kaynağa ihtiyaç duymaz. Bu düğümler blok önermezler, ancak yine de yeni bloklardan haberdar olarak ve blokların geçerliliğini ağ mutabakat kurallarına göre onaylayarak blok önericilerini açıklanabilir tutarlar ve ağı güvende tutmada önemli bir rol oynarlar. Eğer blok geçerliyse, düğüm ağ içinde yayılmaya devam eder. Eğer blok herhangi bir sebepten dolayı geçersizse, düğüm yazılımı geçersiz olduğu için bloku umursamayacak ve yayılmasını durduracaktır. + +Blok üretimi yapmayan bir düğümü çalıştırmak da mutabakat mekanizması (iş ispatı ya da hisse ispatı) altındaki herkes için yapılabilirdir ve bu konuda imkân ve niyetleri varsa şiddetle tavsiye edilir. Bir düğümü çalıştırmak Ethereum için son derece önemlidir ve çalıştıran bireye gelişmiş güvenlik, gizlilik ve sansüre dayanıklılık gibi birçok avantaj sağlar. + +Herhangi bir kişinin kendi düğümünü çalıştırabilmesi Ethereum ağının merkeziyestizliğinin korunması konusu için kesinlikle gereklidir. + +Kendi kodunuzu çalıştırmanızla ilgili daha fazlası + + + + + +Gaz ücretleri ağın kapasitesine bağlı olan bir ağ talebidir. Birleşim iş ispatı modasını bitirip onun yerine mutabakat için hisse ispatını getirdi, ancak hiçbir parametreyi ciddi şekilde değiştirmedi ya da ağ kapasitesini ve iş hacmini etkilemedi. + +Toplama merkezli bir yol haritasıyla, K2'deki Katman 2deki kullanıcı aktivitesini ölçeklendirmeye odaklanılırken, Katman 1 Ana Ağı'nı toplama işlemlerinin kat kat ucuz olmasına yardım eden bir optimize edilmiş veri deposu ve güvenli merkeziyesiz bir uzlaşma katmanı olmasını sağlıyor. Hisse ispatına geçiş bunu fark etmede öncü rol oynuyor. Gaz ve ücretler hakkında daha fazlası + + + + +Bir işlemin "hızı", bloka dahil edilme ve sonuçlandırma süresini de kapsayan birkaç farklı yolla ölçülebilir. Bunların ikisi de biraz farklıdır, ancak kullanıcıların fark edeceği bir şekilde değil. + +Tarihi olarak, iş ispatı döneminde, hedef her ~13,3 saniyede yeni bir bloka sahip olmaktı. Hisse ispatında ise yuvalar kesin olarak her 12 saniyede bir ortaya çıkar, hepsi doğrulayıcının bir blok yayınlaması için bir fırsattır. Yuvaların çoğunun blokları vardır, ancak hepsinin olması gerekmez (doğrulayıcı çevrimdışı olabilir). Hisse ispatında, bloklar iş ispatına göre ~%10 daha sık üretilir. Bu epey önemsiz bir değişiklikti ve muhtemelen kullanıcılar tarafından fark edilmeyecekti. + +Hisse ispatı daha önce var olmayan işlem kesinliiğii konseptini tanıttı. İş ispatında, bir bloku ters çevirebilmekmek her geçen blokun işlemin en tepesine çıkarılmış olmasıyla katlanarak zorlaşıyordu, ancak hiçbir zaman da 0'a ulaşmıyordu. Hisse ispatında, bloklar doğrulayıcının oyladıkları dönemlere ayrılmıştır (bloklar için 32 şans içeren 6,4 saniyelik zaman açıklıkları). Bir dönem sonlandığında doğrulayıcılar dönemin "makul" olarak değerlendirilmesi konusunda oylama yapar. Eğer doğrulayıcılar dönemin makul olduğunda fikir birliğine varırlarsa o, bir sonraki dönemde sonuçlandırılır. Kesinleşmiş işlemleri geri çevirmek ekonomik olarak yaşamaz çünkü bu toplam pay edilmiş Ethereum'un üçte birini yakmak demekti. + + + + + +Birleşim'den sonraki ilk zamanlarda, paydaşlar sadece masraf tüyolarına ve blok önerileriyle kazandıkları MEV'lere erişebiliyorlardı. Bu ödüller doğrulayıcı (ücret alıcı olarak da bilinir) tarafından kontrol edilen ve hisseleme yapmayan hesaplara yatırılır ve anında ulaşılabilir olurlar. Bu ödüller doğrulayıcı görevlerini yapmak için verilen protokol ödüllerinden farklıdır. + +Shangai/Capella ağ yükseltmesinden bu yana, paydaşlar herhangi bir hisse bakiyesinden artan ödemeleri alabilmek için (protokol ödüllerinden gelen 32'den fazla Ethereum) artık bir para çekme adresi belirleyebiliyor. Bu yükseltme aynı zamanda bir doğrulayıcının ağdan çıktıktan sonra da bakiyelerinin kilitlerini açabilmesini ve tekrar alabilmesini sağladı. + +Hisseleme çekimleri hakkında daha fazlası + + + + +Shanghai/Capella yükseltmesi çekimleri yapılabilir hale getirdiğinden beri, doğrulayıcılar da 32 Ethereum'dan yüksek olan hisse bakiyelerini çekmeye teşvik edildiler, zaten bunlar getiriye eklenmiyordu ve eğer aksi bir durum varsa da kilitleniyordu. APR'ye (toplam hisselenen ETH tarafından belirlenir) bağlı olarak, tüm bakiyelerini geri almak için doğrulayıcılarından çıkmaya veya daha fazla getiri elde etmek için ödüllerini kullanarak potansiyel olarak daha fazla hisselemeye teşvik edilebilirler. + +Önemli bir uyarı, tam doğrulayıcı çıkışlarının hızı protokol tarafından sınırlandırılmıştır ve bir dönem (6,4 dakika) başına sadece izin verilen sayıda doğrulayıcı çıkabilir. Bu limit dalgalanmaları aktif doğrulayıcı sayısına bağlıdır, ancak bir günde toplam hisselenmiş Ethereum'un yaklaşık olarak %0,33'ünün ağdan çıkarılabilmesiyle sonuçlanır. + +Bu hisselenmiş kaynaklar için büyük bir hareketi, "sermaye kaçışı"nı engeller. Ayrıca, hisselenen ETH'nin büyük bir kısmına erişimi olan potansiyel saldırganlar, protokolün kesilme cezasını uygulayabilmesinden önce, tehdit ettiği tüm doğrulayıcı bakiyelerinden çekilmesi engellenir. + +APR ayrıca kasten dinamik yapılmıştır, bu da bir grup paydaşın ağı güvende tutmaya yardımcı olmak için ne kadar ödeme almak istediklerini belirlemelerine olanak verir. Eğer oran çok düşükse, doğrulayıcılar protokol tarafından kısıtlanmış bir oranda çıkacaklardır. Yavaş yavaş bu, kalan herkes için APR'yi artıracak, yeni veya geri dönen paydaşları tekrar çekecektir. + + +## "Eth2"ye ne oldu? {#eth2} + +"Eth2" terimi artık kullanım dışı. "Eth1" ve "Eth2"nin tek bir zincirde birleşiminin ardından 2 Ethereum ağının ayırt edilmesine gerek kalmayacak, artık yalnızca bir Ethereum var. + +Karışıklığı önlemek için topluluk şu şartları güncelledi: + +- "Eth1" artık, işlemleri ve çalışmayı yapan "çalıştırma katmanı"dır. +- "Eth2" artık, hisse ispatı mutabakatını yöneten "mutabakat katmanı"dır. + +Bu terminoloji güncellemeleri yalnızca adlandırma alışkanlıklarını değiştirir; bu, Ethereum'un hedeflerini veya yol haritasını değiştirmez. + +["Eth2" ad değişimi hakkında daha fazla bilgi edinin](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) + +## Yükseltmeler arasındaki ilişki {#relationship-between-upgrades} + +Ethereum yükseltmelerinin tamamı bir şekilde ilişkilidir. Öyleyse Birleşim'in diğer yükseltmelerle nasıl ilişkili olduğunu özetleyelim. + +### Birleşim ve İşaret Zinciri {#merge-and-beacon-chain} + +Birleşim, yeni fikir birliği katmanı olarak İşaret Zinciri'nin asıl Ana Ağ yürütüm katmanına resmi olarak eklenmesini temsil eder. Birleşim'den beri doğrulayıcılar, Ethereum Ana Ağı'nı güvence altına almakla görevlendirildiler ve [iş ispatı](/developers/docs/consensus-mechanisms/pow/) artık geçerli bir blok üretimi anlamına gelmiyor. + +Bloklar, mutabakata katılma hakkı karşılığında hisselenmiş ETH sahibi doğrulayan düğümler tarafından önerilmektedir. Bu yükseltmeler, parçalama da dahil olmak üzere gelecekteki ölçeklenebilirlik yükseltmeleri için zemin hazırlar. + + + İşaret Zinciri + + +### Birleşim ve Shanghai yükseltmesi {#merge-and-shanghai} + +Hisse ispatına başarıyla geçişe en yüksek düzeyde odaklanma ve bunu basitleştirmek için Birleşim yükseltmesi, hisselenmiş ETH'nin çekilme yeteneği gibi beklenen özellikleri içermemektedir. Bu işlevsellik Shanghai/Capella yükseltmesi ile ayrıca mümkün kılınmıştır. + +Merak edenler için, 2021 yılının Nisan ayında ETHGlobal etkinliğinde Vitalik tarafından sunulan [Birleşimden Sonra Ne Olacağı](https://youtu.be/7ggwLccuN5s?t=101) hakkında daha fazla bilgi edinin. + +### Birleşim ve parçalama {#merge-and-data-sharding} + +Başlangıçta plan, ölçeklenebilirliği ele almak için Birleşim'den önce parçalama üzerinde çalışmaktı. Buna rağmen [katman 2 ölçeklendirme çözümlerinin](/layer-2/) patlaması ile, öncelik ilk olarak iş isparını hisse ispatı ile değiştirmeye kaymıştır. + +Parçalama planları hızla gelişiyor, ancak işlem yürütmeyi ölçeklendirmek için katman 2 teknolojilerinin yükselişi ve başarısı göz önüne alındığında, parçalama planları, toplama sözleşmelerinden sıkıştırılmış çağrı verilerini depolamanın yükünü dağıtmak için en uygun yolu bulmaya kaydı ve ağ kapasitesinde katlanarak büyümeye izin verdi. Bu, ilk olarak hisse ispatına geçmeden mümkün olmazdı. + + + Parçalama + + +## Daha fazla okuma {#further-reading} + + + + diff --git a/src/content/translations/tr/roadmap/merge/issuance/index.md b/public/content/translations/tr/roadmap/merge/issuance/index.md similarity index 100% rename from src/content/translations/tr/roadmap/merge/issuance/index.md rename to public/content/translations/tr/roadmap/merge/issuance/index.md diff --git a/src/content/translations/tr/roadmap/pbs/index.md b/public/content/translations/tr/roadmap/pbs/index.md similarity index 100% rename from src/content/translations/tr/roadmap/pbs/index.md rename to public/content/translations/tr/roadmap/pbs/index.md diff --git a/public/content/translations/tr/roadmap/scaling/index.md b/public/content/translations/tr/roadmap/scaling/index.md new file mode 100644 index 00000000000..30cabd68801 --- /dev/null +++ b/public/content/translations/tr/roadmap/scaling/index.md @@ -0,0 +1,47 @@ +--- +title: Ethereum'u ölçeklendirmek +description: Toplamalar işlemleri zincir dışında topluca gerçekleştiriyor, böylece kullanıcı için maliyetleri azaltıyor. Ancak, toplamaların şu andaki veri kullanımı çok pahalı ve bu durum, işlemlerin ucuz olabilme yolunu sınırlıyor. Proto-Danksharding bunu çözüyor. +lang: tr +image: /roadmap/roadmap-transactions.png +alt: "Ethereum yol haritası" +template: roadmap +--- + +Ethereum, birlikte toplu işlemler yapan ve çıktıyı Ethereum'a gönderen [katman 2'ler](/layer-2/#rollups) (toplamalar olarak da bilinir) kullanılarak ölçeklendirilir. Toplamalar Ethereum Ana Ağı'ndan 8 kat daha ucuz olsa da, onları son kullanıcıların masraflarını azaltmak için optimize etmek mümkün. Toplamalar aynı zamanda, geliştiricilerin toplamalar olgunlaştıkça kaldırabilecekleri bazı merkezi bileşenlere dayanır. + + +
    +
  • Günümüzün toplamaları Ethereum katman 1'den ~3-8x daha ucuz
  • +
  • ZK toplamaları yakında ücretleri ~40-100x düşürecek
  • +
  • Ethereum'da yapılacak değişiklikler ~100-1000x daha fazla ölçeklendirme sağlayacak
  • +
  • Kullanıcılar 0,001 dolardan daha az maliyetli işlemlerden yararlanmalıdır
  • +
+
+ +## Veriyi ucuzlatmak {#making-data-cheaper} + +Toplamalar, çok sayıda işlemi bir araya getirir, bunları gerçekleştirir ve sonuçlarını Ethereum'a iletir. Bu, herkesin kendi işlemlerini gerçekleştirebilmesi için ve toplama işlemcisinin dürüst olduğunu doğrulayabilmek için açıkça ulaşılabilir olması gereken birçok veri üretir. Eğer birisi bir uyuşmazlık bulursa, meydan okuyabilir. + +### Proto-Danksharding {#proto-danksharding} + +Toplama verileri Ethereum üzerinde kalıcı olarak depolanır ve bu maliyetlidir. Toplamalarda kullanıcıların ödediği işlem ücretlerinin %90'ından fazlası bu veri depolamadan kaynaklıdır. İşlem ücretlerini azaltmak için depolama verilerini yeni bir geçici "bloka" taşıyabiliriz. Bloklar ucuzdur çünkü kalıcı değillerdir. Artık daha fazla ihtiyaç kalmadığında, Ethereum üzerinden silinirler. Toplama verilerinin uzun süreli depolanması, toplama işletmecileri, borsalar, indeksleme hizmetleri vb. gibi ihtiyaç duyan insanların sorumululuğudur. Blob işlemlerini Ethereum'a eklemenin bir parçası olan yükseltmenin adı "Proto-Danksharding"dir. Muhtemelen yakında, 2023'ün sonlarına doğru kullanıma sunulacak. + +Proto-Danksharding sayesinde, blob işlemlerinin Ethereum'un bir parçası olmasından sonra, Ethereum bloklarına birçok blob eklemek mümkün olacak. Bu Ethereum'un işlem kapasitesinde (>100x) artış ve işlem maliyetlerinde düşüş sağlayacak önemli bir ölçeklendirme olacak. + +### Danksharding {#danksharding} + +Blob verilerinin genişlemesinin ikinci aşaması karmaşıktır çünkü ağdaki toplama verisinin mevcudiyetini kontrol etmek için yeni metotlar gerektirir ve bu, doğrulayıcıların blok oluşturma ve blok önerme sorumluluklarını ayırmalarına dayanır. Aynı zamanda, doğrulayıcıların blob verisinin küçük alt kümelerini doğruladıklarını kriptografik olarak kanıtlamak için bir yol gerekir. + +İkinci adım [“Danksharding”](/roadmap/danksharding/) olarak bilinir. Tam olarak uygulanmasına muhtemelen birkaç yıl var. Danksharding [blok oluşturma ve blok önermenin yanında](/roadmap/pbs), [veri kullanılabilirliği örneklendirmesi (DAS)](/developers/docs/data-availability) şeklinde adlandırılan, her seferinde rastgele birkaç kilobayt örneklendirme ile verilerin kullanılabildiği ve kullanılabilirliği verimli bir şekilde doğrulayan yeni ağ tasarımlarına dayanır. + +Danksharding hakkında daha fazlası + +## Toplamaları merkeziyetsizleştirmek {#decentralizing-rollups} + +[Toplamalar](/layer-2) halihazırda Ethereum'u ölçeklendiriyor. [rToplama projelerinden oluşan zengin bir ekosistem](https://l2beat.com/scaling/tvl), bir dizi güvenlik garantisi ile kullanıcıların hızlı ve ucuz bir şekilde işlem yapmasını sağlıyor. Ancak toplamalar merkezi sıralayıcılar kulanılarak (Ethereum'a göndermeden önce işleme ve toplama işlemlerini gerçekleştiren bilgisayarlar) başlatıldı. Bu, sansüre karşı savunmasızdır çünkü sıralayıcı işlemlerine yaptırım uygulanabilir, rüşvet veya başka şekilde tehlikeye atılabilir. Aynı zamanda [toplamalar](https://l2beat.com), gelen veriyi doğrulama şekillerine göre de değişiklik gösterir. "Kanıtlayıcılar" için en iyi yol geçerlilik ve dolandırıcılık kanıtları sunmasını sağlmakatır, ancak bu henüz tüm toplamalar için mümkün değil. Geçerlilik/sahtecilik kanıtları kullanan toplamalar bile bilinen küçük bir kanıt havuzu kullanır. Bu sebeple, Ethereum'u ölçeklendirme yolundaki bir sonraki kritik adım, sıralayıcıların ve kanıtlayıcıların çalıştırılma sorumluluğunu daha fazla insana dağıtmaktır. + +Toplama hakkında daha fazlası + +## Güncel ilerleme {#current-progress} + +Muhtemelen Proto-Danksharding uygulanacak erken yol haritası öğelerinden biri olacak. Kurulum için merkeziyetsiz hesaplama adımları halihazırda devam ediyor ve birkaç istemci veri damlalarını işlemek için prototipler uyguladı. Tam Danksharding için muhtemelen birkaç yıl var çünkü öncesinde tamamlanması gereken başka birkaç yol haritası var. Toplama altyapısını merkeziyetsiz hale getirme işlemi muhtemelen kademeli bir süreç olacak, farklı toplamalar farklı işlemler inşa ediyor. Bu nedenle farklı hızlarda merkeziyetsizleşme gerçekleşecektir. diff --git a/src/content/translations/tr/roadmap/secret-leader-election/index.md b/public/content/translations/tr/roadmap/secret-leader-election/index.md similarity index 100% rename from src/content/translations/tr/roadmap/secret-leader-election/index.md rename to public/content/translations/tr/roadmap/secret-leader-election/index.md diff --git a/public/content/translations/tr/roadmap/security/index.md b/public/content/translations/tr/roadmap/security/index.md new file mode 100644 index 00000000000..d95b5bcdb9c --- /dev/null +++ b/public/content/translations/tr/roadmap/security/index.md @@ -0,0 +1,48 @@ +--- +title: Daha güvenli bir Ethereum +description: Ethereum, var olan en güvenli ve merkeziyetsiz akıllı sözleşme platformudur. Bununla birlikte, Ethereum'un gelecekte her türlü saldırıya karşı dayanıklı kalabilmesi için yapılabilecek iyileştirmeler hâlâ var. +lang: tr +image: /roadmap/roadmap-security.png +alt: "Ethereum yol haritası" +template: roadmap +--- + +Ethereum halihazırda çok güvenli, merkeziyetsiz bir akıllı sözleşme platformudur. Bununla birlikte, Ethereum'un gelecekte her türlü saldırıya karşı dayanıklı kalabilmesi için yapılabilecek iyileştirmeler hâlâ var. Bu iyileştirmeler, Ethereum istemcilerinin rakip bloklarla başa çıkma şeklindeki ince değişikliklere ek olarak, ağın blokların [sonlandırılmış](/developers/docs/consensus-mechanisms/pos/#finality) kabul ettiği hız arttırma sürecini de içerir (bu, blokların saldırgana aşırı ekonomik kayıplar vermeden değiştirilemeyeceği anlamına gelir). + +Ayrıca, bir istemci sansür uyguladığında belirlenmesini sağlayan, blok önericilerini blokların gerçek içeriğine kör ederek işlemleri sansürlemeyi çok daha zor hale getiren yeni iyileştirmeler de var. Bu iyileştirmeler, hisse ispatı protokolünü yükseltecek, böylece kullanıcılar -bireylerden şirketlere- Ethereum'daki uygulama, veri ve varlıklarına anında güven duyacaklar. + +## Hisseden ödeme alma {#staking-withdrawals} + +İş ispatından hisse ispatına yükseltme, Ethereum öncülerinin ETH'lerini bir mevduat sözleşmesinde "hisselemeleri" ile başladı. Adı geçen ETH, ağı korumak için kullanılıyor ancak bu ETH'nin kilidi henüz açılamıyor ve kullanıcılara iade edilemiyor. Hisse ispatı yükseltmesinin en kritik parçası ETH'nin çekilmesine olanak sağlaması. ETH çekme işlemlerinin, işlevsel bir hisse ispatı protokolünün kritik bir parçası olmasına ek olarak, bu çekme işlemleri paydaşların ETH ödüllerini hisseleme amaçları dışında kullanmalarına izin vererek Ethereum güvenliğine de katkı sağlıyor. Bu, likidite isteyen kullanıcıların, Ethereum üzerinde merkezileştirici bir gücü olabilecek likit hisseleme türevlerine (LSD'ler) bel bağlamak zorunda olmadıkları anlamına geliyor. Bu yükseltmenin 12 Nisan 2023'te tamamlanması planlanıyor. + +Para çekme hakkındakileri oku + +## Saldırılara karşı savunma {#defending-against-attacks} + +ETH çekimine olanak sağlandığı halde, Ethereum'un [hisse ispatı](/developers/docs/consensus-mechanisms/pos/) protokolünde yapılabilecek iyileştirmeler hâlâ mevcut. Bi̇r tanesi [Görüntü Birleşimi](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739) olarak bilinir- belli komplike atakları zorlaştıran daha güvenli bir çatal seçim algoritmasıdır. + +Ethereum'un blokları sonlandırmak için harcadığı süreyi azaltmak, daha iyi bir kullanıcı deneyimi sağlar ve saldırganların kar elde etmek veya belirli işlemleri sansürlemek amacıyla yeni blokları yeniden düzenlemeye çalıştığı karmaşık "reorg" saldırılarını engeller. [**Tek yuva kesinliği (SSF)**](/roadmap/single-slot-finality/) sonlandırma gecikmesini en aza indirgemenin bir yoludur. Şu anda bir saldırganın teorik olarak diğer doğrulayıcıları yeniden yapılandırmaya ikna edebileceği 15 dakika değerinde bloklar var. Bu süre SSF ile birlikte sıfıra iniyor. Bireylerden uygulamalara ve borsalara kadar kullanıcılar, işlemlerinin iptal edilmeyeceğine dair hızlı güvenceden yararlanır, ağ ise bütün bir saldırı grubunu durdurarak fayda sağlar. + +Tek yuva kesinliği hakkındakileri oku + +## Sansüre karşı savunma {#defending-against-censorship} + +Merkeziyetsizlik, kişilerin ya da küçük doğrulayıcı gruplarının fazla etkili olmalarını engeller. Yeni hisseleme teknolojileri, Ethereum doğrulayıcılarının mümkün olduğunca merkeziyetsiz kalmalarına yardımcı olurken aynı zamanda onları donanım, yazılım ve ağ hatalarına karşı da korur. Bu teknolojilerden biri doğrulayıcı sorumluluklarını birden fazla düğüm arasında paylaşan bir yazılımdır Bu, **dağıtılmış doğrulayıcı teknolojisi (DVT)** olarak bilinir. Hisseleme havuzları, DVT kullanımına teşvik edilir çünkü bu, birden fazla bilgisayarın toplu olarak doğrulamaya katılarak fazlalık katıp hata toleransını arttırır. Aynı zamanda, birden fazla doğrulayıcıyı çalıştıran tek bir operatöre sahip olmak yerine, doğrulayıcı anahtarlarını birkaç sisteme de böler. Bu, sahtekar operatörlerin Ethereum'a karşı saldırı koordine etmesini daha zor hale getirir. Genel olarak fikir, doğrulayıcıları bireyler yerine _topluluklar_ olarak çalıştırarak güvenlik avantajı elde etmektir. + +Dağıtılmış doğrulayıcı teknolojisi hakkındakileri oku + +**Önerici-inşa edici ayrımının (PBS)** uygulanması, Ethereum'un sansüre karşı dahili savunmalarını büyük ölçüde geliştirecektir. PBS, bir doğrulayıcının bir blok oluşturmasına ve diğerinin bunu Ethereum ağında yayınlamasına olanak verir. Bu, profesyonel kâr maksimizasyonu sağlayan ve blok inşa eden algoritmalardan elde edilen kazançların adil bir şekilde dağıtılmasını sağlayarak, zaman içinde en iyi performans gösteren kurumsal paydaşların **hisselemelerinin yoğunlaşmasını engeller**. Blok önerici, bir blok oluşturucu pazarı tarafından kendilerine sunulan en kazançlı bloku seçer. Sansürleme için bir blok önericinin çoğunlukla daha az kazançlı bir blok seçmesi gerekir. Bu **ekonomik açıdan mantıksız ve ağdaki diğer doğrulayıcılar için de aşikardır**. + +Ethereum'un sansüre dayanıklılığını daha da arttırabilecek şifrelenmiş işlemler ve dahil etme listeleri gibi potansiyel PBS eklentileri vardır. Bunlar, blok inşa edenlerin ve önerenlerin bloklarına dahil olan asıl işlemleri görmelerini engeller. + +Önerici-inşa edici ayrımı hakkındakileri okuyun + +## Doğrulayıcıları koruma {#protecting-validators} + +Tecrübeli bir saldırganın, yaklaşan doğrulayıcıları saptayıp, blok önermelerini engellemek için onları spamlaması mümkündür ve buna **hizmet reddi (DoS)** saldırısı denir. [**Gizli lider seçiminin (SLE)**](/roadmap/secret-leader-election) uygulanması, blok önericilerin önceden bilinmesini önleyerek bu tür saldırılara karşı koruma sağlayacaktır. Bu, aday blok önericilerini temsil eden bir dizi kriptografik taahütün sürekli olarak karıştırılarak ve bunların sırasını kullanarak çalışır. Bu şekilde, sadece doğrulayıcıların kendi sıralarını önceden bileceği şekilde hangi doğrulayıcının seçildiği belirlenir. + +Gizli lider seçimi hakkındakileri okuyun + +## Güncel ilerleme {#current-progress} + +Yol haritasındaki güvenlik yükseltmeleri, araştırmanın ileri seviyelerinde olsa da, bir süre daha uygulanmaları beklenmiyor. Görüntü birleşiminin sonraki adımları ise PBS, SSF ve SLE'dir, bunlar uzmanlaşmayı kesinleştirip prototip inşa etmeye başlamak içindir. diff --git a/src/content/translations/tr/roadmap/single-slot-finality/index.md b/public/content/translations/tr/roadmap/single-slot-finality/index.md similarity index 100% rename from src/content/translations/tr/roadmap/single-slot-finality/index.md rename to public/content/translations/tr/roadmap/single-slot-finality/index.md diff --git a/src/content/translations/tr/roadmap/statelessness/index.md b/public/content/translations/tr/roadmap/statelessness/index.md similarity index 100% rename from src/content/translations/tr/roadmap/statelessness/index.md rename to public/content/translations/tr/roadmap/statelessness/index.md diff --git a/public/content/translations/tr/roadmap/user-experience/index.md b/public/content/translations/tr/roadmap/user-experience/index.md new file mode 100644 index 00000000000..29f7f30fd35 --- /dev/null +++ b/public/content/translations/tr/roadmap/user-experience/index.md @@ -0,0 +1,36 @@ +--- +title: Kullanıcı deneyimini iyileştirme +description: Ethereum'u kullanmak çoğu kişi için hâlâ oldukça karmaşık. Kitlesel kullanımı teşvik etmek için Ethereum, giriş engellerini büyük ölçüde azaltmalıdır - kullanıcılar, Ethereum'a merkeziyetsiz, izinsiz ve sansüre dirençli erişimin avantajlarından yararlanmalıdır; ancak bu, geleneksel bir web2 uygulamasını kullanmak kadar sorunsuz olmalıdır. +lang: tr +image: /roadmap/roadmap-ux.png +alt: "Ethereum yol haritası" +template: roadmap +--- + +Anahtar ve cüzdan kullanımından işlemlerin başlatılmasına kadar Ethereum'un kullanımı basitleştirilmeli. Ethereum, kitlesel kullanımı hafifletmek için, kullanıcılara izinsizliği deneyimlemesini ve Ethereuma Web2 uygulamaları kullanarak sansürsüz ve sıkıntısız bir şekilde erişmesini sağlayarak kullanımı ciddi olanda kolaylaştırmalıdır. + +## Güvenlik kelimelerinin ötesinde {#no-more-seed-phrases} + +Ethereum hesapları, hesapların tanınması (açık anahtar) ve mesajların imzalanması (özel anahtar) için bir çift anahtar ile korunmaktadır. Bir özel anahtar üst düzey parola gibidir, Ethereum hesabına tam erişim imkânı sunar. Bu; hesapların kullanıcılar adına bankalar ve Web2 uygulamaları tarafından yönetilen insanlar için farklı bir işlem metodudur. Merkezi üçüncü şahıslara muhtaç olmadan Ethereum'un kitlesel kullanımı amacıyla, kullanıcı için varlıklarının sorumluluğunu üstlenecek ve kendi verilerinin kontrolünü açık-özel anahtar kriptografisi ile anahtar yönetimini anlamasını zorunlu kılmayacak, açık ve düz bir yol olmak zorundadır. + +Bunun için çözüm, Ethereum ile etkileşecek akıllı sözleşme cüzdanlarının kullanımıdır. Akıllı sözleşme cüzdanları; anahtarlar kaybolur veya çalınırsa korunma yolları ile daha iyi sahtekarlık denetimi ve savunma yaratır ve cüzdanların yeni işlevsellik kazanmalarını sağlar. Bugün dahi akıllı sözleşme cüzdanları var olsa da üzerine inşa etmek için henüz kullanışsızdır çünkü Ethereum protokolünün bunları daha iyi desteklemesi gerekir. Bu fazladan destek, hesap soyutlaması olarak bilinmektedir. + +Hesap soyutlaması hakkında daha fazlası + +## Herkes için düğümler + +Düğüm işleten kullanıcılar, veri sağlamaları için üçüncü şahıslara güven duymak zorunda değillerdir ve hızlı, özel ve izne ihtiyaç duymayan bir biçimde Ethereum blok zinciri ile etkileşebilirler. Ancak bir düğümü yürütmek, birçok insanın aracılara güven duymak zorunda kalacağı anlamına gelen teknik bilgi ve azımsanmayacak disk hacmi gerektirir. + +Düğümleri yürütmeyi çok daha kolay ve daha az kaynak bağımlı hale getirecek birçok yükseltme vardır. Verinin depolanma yolu, hacmi daha etkili kullanmak adına **Verkle Ağacı** olarak da bilinen bir yapı ile değiştirilecektir. Aynı zamanda [durumsuzluk](/roadmap/statelessness) veya [veri sonlanması](/roadmap/statelessness/#data-expiry) ile beraber Ethereum düğümleri, hard disk boşluğu gereksinimini azımsanamayacak miktarda düşürecek olan tüm Ethereum durum verilerinin bir kopyasını depolamaya gerek duymayacaklar. [Hafif düğümler](/developers/docs/nodes-and-clients/light-clients/), tam bir düğümü yürütmenin çoğu getirisini sunacak, ancak cep telefonları veya temel tarayıcı uygulamalarının içinde kolaylıkla yürütülebilecektir. + +Verkle ağaçları hakkındakileri okuyun + +Bu yükseltmelerle bir düğüm yürütmenin önündeki engeller işlevsel olarak sıfıra indirilir. Kullanıcılar, bilgisayar veya cep telefonlarından, fark edilebilir disk hacmi veya CPU feda etmek zorunda kalmadan ve uygulama kullanırken veri ya da ağ erişimi için üçüncü şahıslara bel bağlamak zorunda olmadan Ethereum'a güvenli ve izne ihtiyaç duymayan erişimden faydalanacak. + +## Güncel ilerleme {#current-progress} + +Akıllı sözleşme cüzdanları çoktan beri mevcut, ancak bu cüzdanları olabildiğinde merkeziyetsiz ve izinsiz hale getirmek için daha fazla yükseltme gerekiyor. EIP-4337, Ethereum'un protokülende hiçbir değişiklik gerektirmeyen, olgun bir öneridir. EIP-4337 için gerekli temel akıllı sözleşme Mart 2023'te dağıtıldı. + +Tam durumsuzluk hâlâ araştırma safhasında ve yürürlüğe geçirilmesine uzun yıllar var gibi. Tam durumsuzluğa giden yolda, daha yakın tarihte yürürlüğe konabilecek veri sonlanmasını da içeren birçok kilometre taşı vardır. [Verkle Ağacı](/roadmap/verkle-trees/) ve [önerici-inşa edici ayrımı](/roadmap/pbs/) gibi diğer yol haritası elemanları öncelikle tamamlanmalıdır. + +Verkle ağacı test ağları şu an aktif ve çalışıyor ve sonraki safha öncelikle özel sonrasında da açık test ağlarında Verkle ağacı kullanan istemcilerin yürütülmesidir. Test ağlarında sözleşme dağıtarak veya test ağı istemcilerini yürüterek gelişimin hızlanmasına yardımcı olabilirsiniz. diff --git a/src/content/translations/tr/roadmap/verkle-trees/index.md b/public/content/translations/tr/roadmap/verkle-trees/index.md similarity index 100% rename from src/content/translations/tr/roadmap/verkle-trees/index.md rename to public/content/translations/tr/roadmap/verkle-trees/index.md diff --git a/src/content/translations/tr/security/index.md b/public/content/translations/tr/security/index.md similarity index 100% rename from src/content/translations/tr/security/index.md rename to public/content/translations/tr/security/index.md diff --git a/public/content/translations/tr/smart-contracts/index.md b/public/content/translations/tr/smart-contracts/index.md new file mode 100644 index 00000000000..ce6ecee46cd --- /dev/null +++ b/public/content/translations/tr/smart-contracts/index.md @@ -0,0 +1,84 @@ +--- +title: Akıllı sözleşmeler +description: Akıllı sözleşmelere teknik olmayan bir giriş +lang: tr +--- + +# Akıllı sözleşmelere giriş {#introduction-to-smart-contracts} + +Akıllı sözleşmeler, Ethereum'un uygulama katmanının temel taşlarıdır. "Eğer buysa o zaman şu" mantığını izleyen, kodunda tanımlanan kurallar çerçevesinde çalışacağı garantilenmiş olan, blok zincirde saklanan bilgisayar programlarıdır. + +"Akıllı sözleşme" terimini Nick Szabo ortaya atmıştır. 1994'te [akıllı sözleşme kavramına giriş](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html), 1996'da ise [akıllı sözleşmelerin neler yapabileceğinin keşfi](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html) adlı iki yazısı vardır. + +Szabo; otomatik ve kriptografik açıdan güvenli işlemlerin ve işletme fonksiyonlarının, güvene dayalı aracılar olmadan gerçekleşebileceği dijital bir pazar öngörmüştür. Ethereum üzerindeki akıllı sözleşmeler bu vizyonu hayata geçirdi. + +## Geleneksel sözleşmelerde güven {#trust-and-contracts} + +Geleneksel sözleşmelerle ilgili en büyük sıkıntılardan biri sözleşmenin sonuçlarını harfiyen gerçekleştirecek şahıslara duyulan ihtiyaçtır. + +İşte bir örnek: + +Alice ve Bob bisiklet yarışı yapıyorlar. Diyelim ki Alice, Bob'la yarışı kazanacağına dair 10 dolar bahse girdi. Bob kazanacağından emindir ve bahsi kabul eder. Sonunda Alice yarışı Bob'un çok önünde bitirir ve açık ara kazanan olur. Ama Bob, Alice'in hile yaptığını iddia ederek bahsi ödemeyi reddeder. + +Bu küçük örnek, akıllı olmayan anlaşmalarla ilgili sorunu göstermektedir. Anlaşmanın koşulları sağlansa bile (yani yarışmanın kazananı siz olsanız bile) hâlâ anlaşmayı yerine getirmesi için (yani bahis ödemesinin yapılması için) başka bir kişiye güvenmelisiniz. + +## Dijital bir otomat {#vending-machine} + +Akıllı sözleşmeler için basit bir metafor akıllı sözleşmeye benzer sayılabilecek şekilde çalışan otomatlardır; belirli girdiler önceden belirlenmiş çıktıları garantiler. + +- Bir ürün seçersiniz +- Otomat fiyatı gösterir +- Fiyatı ödersiniz +- Otomat, doğru miktarı ödediğinizi onaylar +- Otomat size ürünü verir + +Otomat istediğiniz ürünü sadece tüm gereksinimler karşılandığında verecektir. Eğer ürün seçmezseniz veya yeterli parayı girmezseniz otomat ürününüzü vermeyecektir. + +## Otomatik yürütüm {#automation} + +Akıllı sözleşmenin asıl yararı, belirli şartlar sağlandığında anlamı açık olmayan kodu kesin bir şekilde yürütmesidir. Bir insanın sonucu yorumlamasını veya sonucun sağlamasını yapmasına gerek yoktur. Bu, güvenilir aracılara olan ihtiyacı ortadan kaldırır. + +Örneğin, bir çocuk için fonu bloke altında tutan ve onun belirli bir tarih sonrasında fonu çekmesine izin veren bir akıllı sözleşme hazırlayabilirsiniz. Eğer bu tarihten önce çekim yapmaya çalışırlarsa, akıllı sözleşme yürütülmeyecektir. Yahut bir galericiye ödeme yaptığınızda arabanın tapusunun dijital halini size otomatik olarak veren bir sözleşme hazırlayabilirsiniz. + +## Tahmin edilebilir sonuçlar {#predictability} + +Geleneksel sözleşmeler belirsizdir çünkü yorumlama ve uygulama için insanlara dayanırlar. Örnek olarak, iki hakim bir sözleşmeyi farklı yorumlayabilir, bu da tutarsız seçimler ve eşit olmayan sonuçlara yol açabilir. Akıllı sözleşmeler bu ihtimali ortadan kaldırır. Bunun yerine, akıllı sözleşmeler sözleşmenin kodu dahilindeki koşullara bağlı olarak eksiksiz şekilde yürütülür. Bu kesinlik, aynı şartlar sağlandığında akıllı sözleşmenin aynı sonucu ortaya çıkaracağı anlamına gelir. + +## Herkese açık kayıt {#public-record} + +Akıllı sözleşmeler denetim ve takip için kullanışlıdır. Ethereum akıllı sözleşmeleri herkese açık bir blok zincir üzerinde olduğu için herkes varlık aktarımlarını ve diğer bağlantılı bilgileri anında takip edebilir. Örnek olarak, birisinin sizin adresinize para gönderip göndermediğini kontrol edebilirsiniz. + +## Gizlilik koruması {#privacy-protection} + +Akıllı sözleşmeler ayrıca gizliliğinizi de korur. Ethereum takma adlı bir ağ olduğu için (işlemleriniz herkese açık olarak eşsiz kriptografik bir adrese bağlıdır, kimliğinize değil) gizliliğinizi gözlemleyicilerden koruyabilirsiniz. + +## Açık koşullar {#visible-terms} + +Son olarak, tıpkı geleneksel sözleşmelerde olduğu gibi bir akıllı sözleşmeyi imzalamadan (ya da etkileşime geçmeden) önce içinde ne olup olmadığını kontrol edebilirsiniz. Bir akıllı sözleşmenin şeffaflığı herhangi birinin onu inceleyebileceğini garanti eder. + +## Akıllı sözleşme kullanım durumları {#use-cases} + +Akıllı sözleşmeler temel olarak bilgisayar programlarının yaptığı her şeyi yapabilir. + +Hesaplamalar gerçekleştirebilir, para birimleri oluşturabilir, veri tutabilir, NFT'ler basabilir, iletişim gönderebilir, hatta grafikler oluşturabilir. İşte gerçek dünyadan bazı popüler örnekler: + +- [Sabit coinler](/stablecoins/) +- [Eşsiz dijital varlıkların oluşturulması ve dağıtılması](/nft/) +- [Otomatik, açık bir para birimi borsası](/get-eth/#dex) +- [Merkezi olmayan oyun](/dapps/?category=gaming) +- [Otomatik olarak ödeme yapan bir sigorta poliçesi](https://etherisc.com/) +- [İnsanların özel, uyumlu para birimleri oluşturmasını sağlayan bir standart](/developers/docs/standards/tokens/) + +## Görsel olarak öğrenmeyi mi tercih ediyorsunuz? {#visual-learner} + +Finematics'in akıllı sözleşmeleri açıklamasını izleyin: + + + +## Daha fazla bilgi {#further-reading} + +- [Akıllı Sözleşmeler Dünya'yı Nasıl Değiştirecek?](https://www.youtube.com/watch?v=pA6CGuXEKtQ) +- [Akıllı Sözleşmeler: Avukatların Yerine Geçecek Olan Blokzincir Teknolojisi](https://blockgeeks.com/guides/smart-contracts/) +- [Geliştiriciler için akıllı sözleşmeler](/developers/docs/smart-contracts/) +- [Akıllı sözleşmeler yazmayı öğrenin](/developers/learning-tools/) +- [Ethereum'da Ustalaşma: Akıllı Sözleşme Nedir?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/tr/social-networks/index.md b/public/content/translations/tr/social-networks/index.md new file mode 100644 index 00000000000..b2323220d58 --- /dev/null +++ b/public/content/translations/tr/social-networks/index.md @@ -0,0 +1,121 @@ +--- +title: Merkeziyetsiz sosyal ağlar +description: Ethereum'daki merkeziyetsiz sosyal ağlara genel bakış +lang: tr +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: /ethereum-learn.png +summaryPoint1: Sosyal etkileşim, içerik oluşturma ve dağıtım için blok zincir tabanlı platformlar. +summaryPoint2: Merkeziyetsiz sosyal medya ağları, kullanıcı gizliliğini korur ve veri güvenliğini artırır. +summaryPoint3: Token'lar ve NFT'ler, içerikten para kazanmanın yeni yollarını oluşturur. +--- + +Sosyal ağlar, günlük iletişimlerimizde ve etkileşimlerimizde büyük bir rol oynamaktadır. Bununla birlikte, bu platformların merkezi kontrolü birçok sorun yarattı: veri ihlalleri, sunucu kesintileri, platformdan çıkarma, sansür ve gizlilik ihlalleri, sosyal medyanın sıklıkla verdiği tavizlerden bazılarıdır. Bu sorunlarla mücadele etmek için geliştiriciler, Ethereum üzerinde sosyal ağlar oluşturuyor. Merkeziyetsiz sosyal ağlar, geleneksel sosyal ağ platformlarının birçok sorununu çözebilir ve kullanıcıların genel deneyimini iyileştirebilir. + +## Merkeziyetsiz sosyal ağlar nelerdir? {#what-are-decentralized-social-networks} + +Merkeziyetsiz sosyal ağlar, kullanıcıların bilgi alışverişinde bulunmalarının yanı sıra izleyicilere içerik yayınlayıp dağıtmalarına olanak tanıyan blok zincir tabanlı platformlardır. Bu uygulamalar blok zincir üzerinde çalıştığından, merkeziyetsiz olma kapasitesine sahip olmakla beraber, sansüre ve aşırı kontrole karşı dirençli olma yeteneğine de sahiptir. + +Birçok merkeziyetsiz sosyal ağ, Facebook, LinkedIn, Twitter ve Medium gibi yerleşik sosyal medya hizmetlerine alternatif olarak mevcuttur. Ancak blok zincir destekli sosyal ağlar, onları geleneksel sosyal platformların önüne koyan bir dizi özelliğe sahiptir. + +### Merkeziyetsiz sosyal ağlar nasıl çalışır? {#decentralized-social-networks-overview} + +Merkeziyetsiz sosyal ağlar, [merkeziyetsiz uygulamaların (dapps)](/dapps/) bir sınıfıdır - blok zincirde dağıtılan [akıllı sözleşmeler](/developers/docs/smart-contracts/) tarafından desteklenen uygulamalardır. Sözleşme kodu, bu uygulamalar için arka uç görevi görür ve iş mantığını tanımlar. + +Geleneksel sosyal medya platformları, kullanıcı bilgilerini, program kodunu ve diğer veri türlerini depolamak için veritabanlarına güvenir. Ancak bu, hata noktaları yaratır ve önemli riskler ortaya koyar. Örneğin, Facebook'un sunucuları geçen yıl kötü bir şekilde [saatlerce çevrimdışı kaldı](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) ve kullanıcıların platformla bağlantısı kesildi. + +Merkeziyetsiz sosyal ağlar, dünya çapında binlerce düğümden oluşan eşler arası bir ağda bulunur. Bazı düğümler başarısız olsa bile, ağ kesintisiz olarak çalışacak ve uygulamaları arızalara ve kesintilere karşı dirençli hale getirecektir. + +[the InterPlanetary File System (IPFS)](https://ipfs.io/) gibi merkeziyetsiz depolama sistemlerini kullanarak Ethereum üzerine kurulu sosyal ağlar, kullanıcı bilgilerini istismar ve kötü niyetli kullanımdan koruyabilir. Hiç kimse kişisel bilgilerinizi reklamcılara satmayacak, bilgisayar korsanları da gizli bilgilerinizi çalamayacak. + +Birçok blok zincir tabanlı sosyal platform, reklam geliri olmadığında para kazanmayı destekleyecek yerel token'lara sahiptir. Kullanıcılar, belirli özelliklere erişmek, uygulama içi satın alma işlemlerini tamamlamak veya favori içerik yaratıcılarına bahşiş vermek için bu token'ları satın alabilir. + +## Merkeziyetsiz sosyal ağların faydaları {#benefits} + +1. Merkeziyetsiz sosyal ağlar sansüre dayanıklıdır ve herkese açıktır. Bu, kullanıcıların keyfi olarak yasaklanamayacağı, platformdan kaldırılamayacağı veya kısıtlanamayacağı anlamına gelir. + +2. Merkeziyetsiz sosyal ağlar, açık kaynak idealleri üzerine kuruludur ve uygulamalar için kaynak kodunu herkesin incelemesi amacıyla açık hale getirir. Blok zinciri tabanlı sosyal ağlar, geleneksel sosyal medyada yaygın olan çetrefilli algoritmaların uygulanmasını ortadan kaldırarak, kullanıcıların ve platform yaratıcılarının çıkarlarını aynı hizaya getirebilir. + +3. Merkeziyetsiz sosyal ağlar "aracıyı" ortadan kaldırır. İçerik yaratıcılar, içerikleri üzerinde doğrudan mülkiyete sahiptir ve aralarında akıllı bir sözleşmeden başka bir şey olmaksızın takipçiler, hayranlar, alıcılar ve diğer taraflarla doğrudan etkileşim kurarlar. + +4. Küresel, eşler arası bir düğüm ağı tarafından desteklenen Ethereum ağında çalışan dapp'ler olarak, merkeziyetsiz sosyal ağlar, sunucu kesintilerine ve kesintilerine karşı daha az hassastır. + +5. Merkeziyetsiz sosyal platformlar, içerik yaratıcılar için değiştirilemez token'lar (NFT'ler), uygulama içi kripto ödemeleri ve daha fazlası aracılığıyla gelişmiş bir para kazanma çerçevesi sunar. + +6. Merkeziyetsiz sosyal ağlar kullanıcılara yüksek düzeyde gizlilik ve anonimlik sağlar. Örneğin, bir kişi isimler, e-posta adresleri vb. gibi kişisel olarak tanımlanabilir bilgileri (PII) paylaşmak zorunda kalmadan bir ENS profili veya cüzdanı kullanarak Ethereum tabanlı bir sosyal ağda oturum açabilir. + +7. Merkeziyetsiz sosyal ağlar, kullanıcı verilerini korumak için çok daha iyi olan merkezi veritabanlarına değil, merkeziyetsiz depolamaya dayanır. + +## Ethereum'da merkeziyetsiz sosyal ağlar {#ethereum-social-networks} + +Ethereum ağı, token'ların popülaritesi (ERC-20/ERC-721) ve devasa kullanıcı tabanı sayesinde merkeziyetsiz sosyal medya yaratan geliştiriciler için tercih edilen araç haline geldi. İşte Ethereum tabanlı sosyal ağların bazı örnekleri: + +### Peepeth {#peepeth} + +[Peepeth](https://peepeth.com/), Twitter'a benzer bir mikroblog platformudur. Ethereum blok zincirinde çalışır ve kullanıcı verilerini depolamak için IPFS kullanır. + +Kullanıcılar, silinemeyen veya değiştirilemeyen "Peeps" adlı kısa mesajlar gönderebilir. Uygulamadan çıkmadan platformda, ether (ETH) üzerinden bahşişler toplayabilir veya herhangi bir kişiye bahşiş verebilirsiniz. + +### Mirror {#mirror} + +[Mirror](https://mirror.xyz/), merkeziyetsiz ve kullanıcıya ait olmayı hedefleyen web3 özellikli bir yazı platformudur. Kullanıcılar, sadece cüzdanlarını bağlayarak Mirror'da ücretsiz olarak okuyabilir ve yazabilir. Kullanıcılar ayrıca yazı toplayabilir ve favori yazarlarına abone olabilirler. + +Mirror'da yayınlanan gönderiler, merkeziyetsiz bir depolama platformu olan Arweave'de kalıcı olarak depolanır ve Yazma NFT'leri olarak bilinen, toplanabilir [değiştirilemez token'lar (NFT'ler)](/nft/) olarak basılabilir. NFT yazmak, yazarlar için tamamen ücretsizdir ve toplama bir Ethereum L2'de gerçekleşir; bu da işlemleri ucuz, hızlı ve çevre dostu hale getirir. + +### MINDS {#minds} + +[MINDS](https://www.minds.com/) en çok kullanılan merkeziyetsiz sosyal ağlardan biridir. Facebook gibi çalışıyor ve şimdiden milyonlarca kullanıcıya ulaştı. + +Kullanıcılar, öğeler için ödeme yapmak için platformun yerel ERC-20 token'ını $MIND kullanır. Kullanıcılar ayrıca popüler içerikler yayınlayarak ekosisteme katkıda bulunarak ve başkalarını platforma yönlendirerek $MIND token kazanabilirler. + +## Ethereum üzerinde Web2 sosyal ağları {#web2-social-networks-and-ethereum} + +Blok zincir teknolojisini sosyal medyaya dahil etmeye çalışanlar yalnızca [Web3](/web3/) yerel sosyal platformları değil. Birçok merkezi platform da Ethereum'u altyapılarına entegre etmeyi planlıyor: + +### Reddit {#reddit} + +Reddit, kullanıcıların kaliteli içerik yayınlayarak ve çevrimiçi topluluklara (alt dizinler) katkıda bulunarak kazanabilecekleri [ERC-20 token'ları](/developers/docs/standards/tokens/erc-20/) olan [Topluluk Puanlarını lanse etti](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users). Bu token'ları, [özel ayrıcalıklar ve avantajlar elde etmek](https://www.reddit.com/community-points/) için bir alt dizin içinde kullanabilirsiniz. Bu proje için Reddit, Ethereum işlemlerini ölçeklendirmek için tasarlanmış bir [katman 2](/layer-2/) toplaması olan Arbitrum ile çalışıyor. + +Program zaten yayında ve r/Kripto para subreddit ["Moons" adlı Topluluk Puanları sürümünü çalıştırıyor](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Resmi açıklamaya göre, Moons "alt diziye katkılarından dolayı posterleri, yorumcuları ve moderatörleri ödüllendiriyor." Bu token'lar blok zincirde olduğundan (kullanıcılar bunları cüzdanlarda alır), Reddit'ten bağımsızdırlar ve alınamazlar. + +Rinkeby test ağında bir beta aşamasını tamamladıktan sonra, Reddit Topluluk Puanları artık bir [yan ağ](/developers/docs/scaling/sidechains/) ve bir [iyimser toplama](/developers/docs/scaling/optimistic-rollups/) özelliklerini birleştiren bir blok zincir olan [Arbitrum Nova'da](https://nova.arbitrum.io/). Kullanıcılar, özel özelliklerin kilidini açmak için Topluluk Puanlarını kullanmanın yanı sıra, bunları borsalarda fiat karşılığında takas edebilirler. Ayrıca, bir kullanıcının sahip olduğu Topluluk Puanlarının miktarı, topluluk içindeki karar verme süreci üzerindeki etkisini belirler. + +### Twitter {#twitter} + +Ocak 2021'de Twitter Blue, NFT'ler için destek sunarak kullanıcıların cüzdanlarını bağlamalarına ve NFT'leri profil resmi olarak görüntülemelerine [olanak tanıdı](https://mashable.com/article/twitter-blue-nft-profile-picture). Bu yazının yazıldığı sırada, sosyal medya şirketi gelecekte merkezi olmayan bir sosyal ağ oluşturmayı [planladığını da duyurdu](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web). + +### İnstagram {#instagram} + +Mayıs 2022'de [Instagram, Ethereum ve Polygon'da NFT'ler için destek verdiğini duyurdu](https://about.instagram.com/blog/announcements/instagram-digital-collectibles). Kullanıcılar, Ethereum cüzdanlarını bağlayarak NFT'leri doğrudan Instagram'a gönderebilirler. + +## Merkeziyetsiz sosyal ağları kullanın {#use-decentralized-social-networks} + +- **[Status.im](https://status.im/)** - _Status, mesajlarınızı üçüncü taraflardan korumak için açık kaynaklı, eşler arası bir protokol ve uçtan uca şifreleme kullanan güvenli bir mesajlaşma uygulamasıdır._ +- **[Mirror.xyz](https://mirror.xyz/)** - _Mirror, kullanıcıların fikirlerini kitle fonlaması, içerikten para kazanması ve yüksek değerli topluluklar oluşturması için Ethereum üzerine inşa edilmiş, merkeziyetsiz, kullanıcıya ait bir yayın platformudur._ +- **[Lens Protocol](https://lens.xyz/)** - _Lens Protocol, içerik yaratıcıların merkeziyetsiz internetin dijital bahçesinde nereye giderlerse gitsinler içeriklerinin mülkiyetini almalarına yardımcı olan birleştirilebilir ve merkeziyetsiz bir sosyal grafiktir._ +- **[Farcaster](https://farcaster.xyz/)** - _Farcaster yeterince merkeziyetsiz bir sosyal ağdır. Birçok istemciyi destekleyen açık bir protokoldür, tıpkı e-posta gibi._ + +## Daha fazla okuma {#further-reading} + +### Makaleler {#articles} + +- [Sosyal medyayı merkeziyetsizleştirmek: web3 sosyal yığınına bir rehber](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _Coinbase Ventures_ +- [Social Networks Are the Next Big Decentralization Opportunity](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Goertzel_ +- [Web3 holds the promise of decentralized, community-powered social networks](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ +- [An Overview of the Blockchain Social Media Landscape](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ +- [How Blockchain Can Solve Social Media Privacy](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Prableen Bajpai_ +- [Social Media Networks Are Coming To The Blockchain](https://businesstechguides.co/what-are-decentralized-social-networks) — _Emmanuel Awosika_ +- [Sosyal Ağlar İçin Yeterli Merkeziyetsizlik](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) - _Varun Srinivasan_ + +### Videolar {#videos} + +- [Decentralized Social Media Explained](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ +- [DeSo Blockchain Wants to Decentralize Social Media](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_ + +### Topluluklar {#communities} + +- [Status Discord Sunucusu](https://discord.com/invite/3Exux7Y) +- [Mirror Discord Sunucusu](https://discord.com/invite/txuCHcE8wV) +- [r/CryptoCurrency subreddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/tr/staking/dvt/index.md b/public/content/translations/tr/staking/dvt/index.md similarity index 100% rename from src/content/translations/tr/staking/dvt/index.md rename to public/content/translations/tr/staking/dvt/index.md diff --git a/public/content/translations/tr/staking/pools/index.md b/public/content/translations/tr/staking/pools/index.md new file mode 100644 index 00000000000..89bf88dcc70 --- /dev/null +++ b/public/content/translations/tr/staking/pools/index.md @@ -0,0 +1,85 @@ +--- +title: Havuzlanmış hisseleme +description: Ortak ETH hisselemeye nasıl başlanacağına dair genel bir bakış +lang: tr +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-pool.png +alt: Gergedan Leslie havuzda yüzüyor. +sidebarDepth: 2 +summaryPoints: + - Diğerleriyle güçlerinizi birleştirerek istediğiniz miktarda ETH ile hisse alın ve ödüller kazanın + - Zor kısmı atlayıp doğrulayıcı görevini bir üçüncü tarafa bırakın + - Hisseleme token'larınızı kendi cüzdanınızda tutun +--- + +## Paydaşlık havuzları nedir? {#what-are-staking-pools} + +Paydaşlık havuzları, daha az miktarda ETH'ye sahip birçok kişinin bir dizi doğrulayıcı anahtarını etkinleştirmek için gereken 32 ETH'yi elde etmesine olanak tanıyan ortaklık temelli bir yaklaşımdır. Havuzlama işlevi protokol içinde yerel olarak desteklenmez, bu nedenle çözümler bu ihtiyacı karşılamak için ayrı olarak oluşturulmuştur. + +Bazı havuzlar, fonların bir sözleşmeye yatırılabileceği, bahis tutarınızı güvenilir bir şekilde yöneten ve izleyen ve size bu değeri temsil eden bir token veren akıllı sözleşmeler kullanarak çalışır. Başka havuzlar ise akıllı sözleşmelere dahil olmayabilirler, onun yerine zincir dışı çalışırlar. + +## Neden bir havuz ile hisseleme? {#why-stake-with-a-pool} + +[Staking'e giriş](/staking/) kısmında altını çizdiğimiz faydalara ek olarak havuz ile birlikte getiri elde etmek çok sayıda farklı yarar sağlar. + + + + + + + + + +## Ne dikkate alınmalı {#what-to-consider} + +Havuzlanmış veya devredilmiş stake etme, Ethereum protokolü tarafından doğal olarak desteklenmez, ancak kullanıcıların 32 ETH'den daha az stake etme talebi göz önüne alındığında, bu talebi karşılamak için artan sayıda çözüm oluşturulmuştur. + +Her havuz ve araçlar ya da akıllı sözleşmeler farklı ekiplerce oluşturulmuştur ve hepsinin faydaları ve riskleri vardır. Havuzlar, kullanıcıların ETH'lerini, hisselenmiş ETH'yi temsil eden bir token ile değişmelerini sağlar. Kullanıcılara herhangi bir miktarda ETH'yi; ETH Fikir birliği katmanında hisselenmiş olarak kalsa bile, merkeziyetsiz borsalardaki hisselenmiş ETH'ye uygulanan hisseleme ödüllerinden bir getiri sağlayan (ya da tam tersi) aynı miktarda getiriyi sağlayan bir token ile değişmelerini sağladığı için bu token yararlıdır. Bu da getiri sağlayan hisselenmiş ETH ile "asıl ETH" arasında iki yönlü takasın hızlı ve kolay olduğu ve yalnızca 32 ETH'nin katları halinde mevcut olmadığı anlamına gelir. + +Ancak, bu kilitli ETH token'ları, büyük miktarda hisselenmiş ETH'nin birçok bağımsız bireyde dağılması yerine birkaç merkezi kuruluşun kontrolüne geçtiği kartel benzeri yapılar oluşturma eğilimindedir. Bu da sansür ya da faydalanma için gerekli koşulları oluşturur. Hisseleme için altın standart, mümkün olduğunca doğrulayıcıları kendi donanımlarında çalıştıran bireyler olmalıdır. + +[Token'ları stake etmenin riskleri hakkında daha fazla bilgi.](https://notes.ethereum.org/@djrtwo/risks-of-lsd). + +Nitelik göstergeleri, listelenen bir stake havuzunun sahip olabileceği dikkate değer güçlü veya zayıf yönleri belirtmek için aşağıda kullanılmaktadır. Katılmak için bir havuz seçerken bu öznitelikleri nasıl tanımladığımız konusunda bu bölümü referans olarak kullanın. + + + +## Paydaşlık havuzlarını keşfet {#explore-staking-pools} + +Kurulumunuzda size yardımcı olacak çeşitli seçenekler mevcuttur. Aşağıdaki araçlarda size rehberlik etmesi için yukarıdaki göstergeleri kullanın. + + + + + +Ağ güvenliğini iyileştirdiği ve riskinizi sınırladığı için [istemci çeşitliliğini](/developers/docs/nodes-and-clients/client-diversity/) ciddiye alan bir hizmet seçmenin önemini lütfen unutmayın. Çoğunluk istemcisi kullanımı sınırladığına dair kanıtları olan hizmetler;"yürütme istemcisi çeşitliliği" ve "fikir birliği istemcisi çeşitliliği" ile belirtilir. + +Kaçırdığımız bir hisseleme aracı için öneriniz mi var mı? Uygun olup olmadığını görmek ve incelemeye göndermek için [ürün listeleme politikamıza](/contributing/adding-staking-products/) göz atın. + +## Sıkça sorulan sorular {#faq} + + +Tipik olarak ERC-20 hisseleme token'ları, hisselenen ETH artı ödüllerinin değerini temsil eden paydaşlara verilir. Farklı havuzların, kullanıcılarına biraz farklı yöntemlerle hisseleme ödüllerini dağıtacağını aklınızda tutun, ancak bu ortak temadır. + + + +Hemen şimdi! Şangay/Capella ağ yükseltmesi Nisan 2023'te gerçekleşti, hisseleme para çekim işlemlerini başlattı. Hisseleme havuzlarını destekleyen doğrulayıcı hesaplar artık çıkış ve ayarladıkları çekim adresine ETH çekim yeteneğine sahipler. Bu hisse miktarını arkaplandaki ETH için kullanma yeteneğini aktif eder. Bu işlevselliği ne şekilde desteklediklerini görmek için sağlayıcınıza danışın. + +Alternatif olarak, bir ERC-20 likidite token'ı kullanan havuzlar, kullanıcıların bu token'ın açık pazarda ticaretini yapmalarına izin vererek hisseleme pozisyonunuzu satmanıza, ETH'yi hisseleme sözleşmesinden fiilen çıkarmadan etkin bir şekilde "çekmenize" olanak tanır. + +Hisseleme para çekmeleri hakkında daha fazlası + + + +Bu havuzlanmış stake seçenekleri ile merkezi borsalar arasında, küçük miktarlarda ETH stake etme ve doğrulayıcıları etkinleştirmek için bir araya getirme gibi birçok benzerlik vardır. + +Merkezi borsalardan farklı olarak, diğer birçok havuzlanmış hisseleme seçeneği, genellikle kendi cüzdanınızda tutulabilen ve tıpkı diğer herhangi bir token gibi alınıp satılan ERC-20 token'ları olan akıllı sözleşmeleri ve/veya hisseleme token'larını kullanır. Bu, size tokenleriniz üzerinde kontrol sağlayarak bir egemenlik ve güvenlik katmanı sunar, ancak yine de arka planda sizin adınıza onaylayan doğrulayıcı istemci üzerinde doğrudan kontrol sağlamaz. + +Arkalarındaki düğümler söz konusu olduğunda bazı havuzlar diğerlerinden daha merkeziyetsizdir. Ağın sağlığını ve merkeziyetsizliğini teşvik etmek için, pay sahipleri her zaman izinsiz merkeziyetsiz bir dizi düğüm operatörü sağlayan bir havuz hizmeti seçmeye teşvik edilir. + + +## Daha fazla bilgi {#further-reading} + +- [Roket Havuzuyla Staking - Staking'e Genel Bakış](https://docs.rocketpool.net/guides/staking/overview.html) - _RocketPool belgeleri_ +- [Lido ile Ethereum stake et](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Lido yardımcı dökümanları_ diff --git a/public/content/translations/tr/staking/saas/index.md b/public/content/translations/tr/staking/saas/index.md new file mode 100644 index 00000000000..c7de0555c36 --- /dev/null +++ b/public/content/translations/tr/staking/saas/index.md @@ -0,0 +1,94 @@ +--- +title: Bir hizmet olarak stake etme +description: Havuzlanmış ETH faiz getirisi elde etmeye nasıl başlanacağına dair genel bir bakış +lang: tr +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-saas.png +alt: Gergedan Leslie bulutlarda dalgalanıyor. +sidebarDepth: 2 +summaryPoints: + - Üçüncü taraf düğüm operatörleri, doğrulayıcı istemcinizin çalışmasını yönetir + - Bir düğüm çalıştırmanın teknik karmaşıklığıyla başa çıkmak konusunda kendini rahat hissetmeyen 32 ETH'si olan herkes için harika bir seçenek + - Güveni azaltın ve para çekme anahtarlarınızın velayetini koruyun +--- + +## Hizmet olarak staking nedir? {#what-is-staking-as-a-service} + +Hizmet olarak staking ("SaaS"), bir doğrulayıcı için kendi 32 ETH'nizi yatırdığınız, ancak düğüm işlemlerini üçüncü taraf bir operatöre devrettiğiniz bir staking hizmetleri kategorisini temsil eder. Bu süreç genellikle, anahtar oluşturma ve yatırma dahil olmak üzere ilk kurulum boyunca yönlendirilmeyi ve ardından imzalama anahtarlarınızı operatöre yüklemeyi içerir. Bu, hizmetin genellikle aylık bir ücret karşılığında doğrulayıcınızı sizin adınıza çalıştırmasını sağlar. + +## Neden bir hizmet ile hisseleme? {#why-stake-with-a-service} + +Ethereum protokolü doğal olarak pay devrini desteklemez, bu nedenle bu hizmetler bu talebi karşılamak için oluşturulmuştur. Stake edilecek 32 ETH'niz varsa, ancak donanımla uğraşmaktan rahatsızlık duyuyorsanız, SaaS hizmetleri, yerel blok ödülleri kazanırken zor kısmı devretmenize izin verir. + + + + + + + + + +## Ne dikkate alınmalı {#what-to-consider} + +ETH'nizi kilitlemenize yardımcı olacak SaaS sağlayıcılarının sayısı artmaktadır, anca her birinin kendine ait fayda ve riskleri bulunur. Tüm SaaS seçenekleri evde hisseleme ile karşılaştırıldığında ek güven varsayımları gerektirir. Saas seçenekleri açık veya denetlenebilir olmayan Ethereum istemcilerini saran ek kodlara sahip olabilir. SaaS ayrıca ağ merkeziyetsizliği üzerinde zararlı bir etkiye de sahiptir. Kuruluma göre, doğrulayıcınızı kontrol edemeyebilirsiniz - operatör sizin ETH'nizi kullanarak aldatıcı biçimde davranabilir. + +Nitelik göstergeleri, listelenen bir SaaS sağlayıcısının sahip olabileceği dikkate değer güçlü veya zayıf yönleri belirtmek için aşağıda kullanılmaktadır. Bu bölümü, stake etme yolculuğunuza yardımcı olacak bir hizmet seçerken bu nitelikleri nasıl tanımladığımıza dair bir referans olarak kullanın. + + + +## Staking servis sağlayıcılarını keşfedin {#saas-providers} + +Aşağıda bazı mevcut SaaS sağlayıcıları bulunmaktadır. Bu hizmetlerde size rehberlik etmesi için yukarıdaki göstergeleri kullanın + + + +### SaaS sağlayıcıları + + + +Ağın güvenliğini iyileştirdiği ve riskinizi sınırladığı için [istemci çeşitliliğini](/developers/docs/nodes-and-clients/client-diversity/) desteklemenin önemini lütfen unutmayın. Çoğunluk istemcisi kullanımı sınırladığına dair kanıtları olan hizmetler;"yürütme istemcisi çeşitliliği" ve "fikir birliği istemcisi çeşitliliği" ile belirtilir. + +### Anahtar Üreticileri + + + +Kaçırdığımız bir hizmet sağlayıcı olarak hisseleme için bir öneriniz mi var? Uygun olup olmadığını görmek ve incelemeye göndermek için [ürün listeleme politikamıza](/contributing/adding-staking-products/) göz atın. + +## Sıkça sorulan sorular {#faq} + + +Düzenlemeler sağlayıcıdan sağlayıcıya farklılık gösterecektir, ancak genellikle ihtiyacınız olan tüm imzalama anahtarlarını (32 ETH başına bir tane olmak üzere) ayarlamanız ve bunları sizin adınıza doğrulamalarına izin vermek için sağlayıcınıza yüklemeniz konusunda size rehberlik edilecektir. İmza anahtarları tek başına paranızı çekme, transfer etme veya harcama imkanı vermez. Ancak, uygun şekilde yapılmadığı takdirde çevrimdışı cezalara veya kesintilere neden olabilecek konsensusa doğru oy kullanma yeteneği sağlarlar. + + + +Evet. Tüm hesaplar BLS imzalama ve BLS para çekme anahtarlarından oluşur. Doğrulayıcının zincirin durumunu tasdik etmesi, eşitleme kurullarına katılması ve bloklar önermesi için imzalama anahtarlarına, bir doğrulayıcı müşterisi tarafından kolayca erişilebilir olmalıdır. Bunların bir şekilde internete bağlı olması gerekir ve bu nedenle doğal olarak "kısayol" tuşları olarak kabul edilirler. Bu, doğrulayıcınızın onaylayabilmesi için bir gerekliliktir ve bu nedenle, para transfer etmek veya çekmek için kullanılan anahtarlar güvenlik nedeniyle ayrılmıştır. + +BLS para çekme anahtarları, hangi yürütme katmanı hesabının hisseleme ödüllerinin ve çıkış yapılan fonların gitmesi gerektiğini gösteren tek seferlik bir mesajı imzalamak için kullanılır. Bu mesaj bir kere yayınlandıktan sonra BLS para çekme anahtarlarına ihtiyaç duyulmaz. Bunun yerine, çekilen fonların kontrolü kalıcı bir şekilde verdiğiniz adrese devredilir. Bu kendi soğuk depolamanız tarafından güvenli kılınan bir çekim adresi ayarlayarak, başkası sizin doğrulayıcı imzalama anahtarlarınızı kontrol etse bile doğrulayıcı fonlarınızın riskini minimize eder. + +Çekim bilgilerini güncellemek çekimi aktif hale getirmek için gerekli bir adımdır\*. Bu süreç sizin anımsatıcı güvenlik kelimenizi kullanarak çekim anahtarlarını oluşturmayı kapsar. + +Bu güvenlik kelimesini güvenli biçimde yedeklediğinizden emin olun, yoksa zamanı geldiğinde çekim anahtarlarınızı oluşturamazsınız. + +\*İlk yatırımında çekim adresi vermiş olan kilitleyicilerin bunu ayarlamasına gerek yoktur. Doğrulayıcınızı nasıl hazırlayacağınızla ilgili destek almak için SaaS sağlayıcınıza danışın. + + + +Kilitleme çekimleri Nisan 2023'teki Shanghai/Capella yükseltmesinde uygulanmıştır. Paydaşların (eğer ilk yatırımda verilmediyse) bir çekim adresi vermesi gerekir ve ödül ödemeleri periyodik olarak birkaç günde bir otomatik olarak dağıtılmaya başlayacaktır. + +Doğrulayıcılar ayrıca bir doğrulayıcı olarak tamamen çıkabilir, bu da kalan ETH bakiyelerinin çekim için kilidini kaldıracaktır. Bir yürütme çekim adresi sağlamış ve çıkış sürecini tamamlamış adresler sıradaki doğrulayıcı süpürmesinde çekim adresine tüm bakiyelerini alacaklardır. + +Hisseleme para çekmeleri hakkında daha fazlası + + + +Bir SaaS sağlayıcısı kullanarak, düğümünüzün çalışmasını başka birine emanet ediyorsunuz. Bu, sizin kontrolünüzde olmayan düşük düğüm performansı riskiyle birlikte gelir. Doğrulayıcınızın kesintiye uğraması durumunda, doğrulayıcı bakiyeniz cezalandırılacak ve doğrulayıcı havuzundan zorla kaldırılacaktır. + +Kesinti/çıkış sürecinin tamamlanmasından sonra, bu fonlar doğrulayıcıya atanmış olan çekim adresine transfer edilecektir. Bu, aktif hale getirilmek için bir çekim adresinin sağlanmasını gerektirir. Bu ilk yatırımda sağlanabilir. Eğer sağlanmadıysa, doğrulayıcı çekim anahtarları çekim adresini belirten bir mesajı imzalamak için kullanılmalıdır. Eğer herhangi bir çekim adresi sağlanmadıysa, sağlanana kadar fonlar kilitli kalacaktır. + +Herhangi bir garanti veya sigorta seçeneği hakkında daha fazla detay için ya da nasıl çekim adresi sağlanacağıyla ilgili yönergeler için bireysel SaaS sağlayıcınızla iletişime geçin. Doğrulayıcı kurulumunuzun tam kontrolünün sizde olmasını tercih ediyorsanız, ETH'nizi tek başına nasıl stake edeceğiniz hakkında daha fazla bilgi edinin. + + +## Daha fazla bilgi {#further-reading} + +- [Staking hizmetlerini değerlendirmek](https://www.attestant.io/posts/evaluating-staking-services/) - _Jim McDonald 2020_ diff --git a/public/content/translations/tr/staking/solo/index.md b/public/content/translations/tr/staking/solo/index.md new file mode 100644 index 00000000000..688d100677e --- /dev/null +++ b/public/content/translations/tr/staking/solo/index.md @@ -0,0 +1,201 @@ +--- +title: ETH'nizi bireysel olarak hisseleyin +description: ETH'nizi solo stake etmeye nasıl başlayacağınıza dair genel bir bakış +lang: tr +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-solo.png +alt: Gergedan Leslie bilgisayar çipinin üstünde. +sidebarDepth: 2 +summaryPoints: + - Doğrulayıcınızın düzgün çalışmasını ve çevrimiçi olmasını sağlamak için doğrudan protokolden maksimum ödülleri alın + - Ev donanımını çalıştırın ve Ethereum ağının güvenliğine ve merkezsizleştirilmesine kişisel olarak katkıda bulunun + - Güveni ortadan kaldırın ve fonlarınızın anahtarlarının kontrolünü asla bırakmayın +--- + +## Bireysel hisseleme nedir? {#what-is-solo-staking} + +Solo stake etme, internete bağlı [bir Ethereum düğümü çalıştırma](/run-a-node/) ve bir [doğrulayıcıyı](#faq) etkinleştirmek için 32 ETH yatırma işlemidir, size doğrudan ağ konsensüsüne katılma yeteneği verir. + +** Bireysel hisseleme Ethereum ağının merkeziyetsizliğini arttırır ** ve Ethereum'un sansüre ve saldırılara karşı dayanıklılığını arttırır. Diğer hisseleme yöntemleri ağa aynı şekillerde yardım etmeyebilir. Solo hisseleme, Ethereum'un güvenliğini sağlamak için en iyi seçenektir. + +Bir Ethereum düğümü, hem bir yürütüm katmanı (YK) istemcisinden hem de bir konsensus katmanı (MK) istemcisinden oluşur. Bu istemciler, işlemleri ve blokları doğrulamak, zincirin doğru başını doğrulamak, tasdikleri toplamak ve blok önermek için geçerli bir imza anahtarı seti ile birlikte çalışan yazılımlardır. + +Bu istemcileri çalıştırmak için gereken donanımı çalıştırmaktan tek başına pay sahipleri sorumludur. Evden çalıştırdığınız bunun için özel bir makine kullanmanız şiddetle tavsiye edilir – bu, ağın sağlığı için son derece faydalıdır. + +Solo staker, doğrulayıcısının düzgün şekilde çalışmasını ve çevrimiçi olmasını sağladığı için doğrudan protokolden ödüller alır. + +## Neden solo stake? {#why-stake-solo} + +Solo hisseleme daha fazla sorumluluk gerektirmesine rağmen fonlarınız ve hisseleme kurulumunuz üzerinde maksimum kontrol sağlar. + + + + + + + +## Solo staking yapmadan önce dikkate alınması gerekenler {#considerations-before-staking-solo} + +Solo staking'in herkes için erişilebilir ve risksiz olmasını dilesek de, bu gerçek değil. ETH'nizi solo stake etmeyi seçmeden önce akılda tutulması gereken bazı pratik ve ciddi hususlar vardır. + + + +Kendi düğümünüzü çalıştırırken, seçtiğiniz yazılımı nasıl kullanacağınızı öğrenmek için biraz zaman harcamalısınız. Bu, ilgili belgeleri okumayı ve bu geliştirme ekiplerinin iletişim kanallarına uyum sağlamayı içerir. + +Çalıştırdığınız yazılım ve hisse kanıtının nasıl çalıştığı hakkında ne kadar çok şey anlarsanız, bir staker olarak daha az risk almış olacaksınız ve bir düğüm operatörü olarak yol boyunca ortaya çıkabilecek sorunları çözmek de o kadar kolay olacaktır. + + + +Düğüm kurulumu, bilgisayarlarla çalışırken makul bir rahatlık düzeyi gerektirir, ancak yeni araçlar bunu zamanla daha da kolay hale getirir. Komut satırı arabiriminin anlaşılması yararlıdır, ancak artık kesinlikle gerekli değildir. + +Ayrıca, çok temel donanım kurulumu ve önerilen minimum özelliklerin biraz anlaşılmasını gerektirir. + + + +Tıpkı özel anahtarların Ethereum adresinizi koruduğu gibi, doğrulayıcınız için özel olarak anahtarlar oluşturmanız gerekecektir. Güvenlik kelimelerinizi ve özel anahtarınızı nasıl güvenli tutacağınızı anlamalısınız + + + +Donanım bazen başarısız oluyor, ağ bağlantıları hata veriyor ve istemci yazılımının zaman zaman yükseltilmesi gerekiyor. Düğüm bakımı kaçınılmazdır ve zaman zaman ilgilenmenizi gerektirir. Beklenen ağ yükseltmelerinden veya diğer kritik müşteri yükseltmelerinden haberdar olduğunuzdan emin olmak isteyeceksiniz. + + + +Ödülleriniz, doğrulayıcınızın çevrimiçi olduğu ve doğru şekilde tasdik ettiği süre ile orantılıdır. Kapalı kalma süresi, aynı anda kaç doğrulayıcının çevrimdışı olduğuyla orantılı olarak cezalara neden olur, ancak slashing ile sonuçlanmaz. Bant genişliği de önemlidir, çünkü zamanında alınmayan onaylar için ödüller azalır. Gereksinimler değişiklik gösterecektir, ancak minimum 10 Mb/sn yukarı ve aşağı önerilir. + + + +Çevrimdışı olmanın verdiği hareketsizlik cezalarından farklı olarak, kesme, kötü niyetli suçlar için ayrılmış çok daha ciddi bir cezadır. Anahtarlarınız aynı anda yalnızca bir makineye yüklenmiş bir azınlık istemcisi çalıştırarak cezalandırılma riskiniz en aza indirilir. Özetle, bütün stakerlar kesilme risklerini göze almak zorundadır. + +Kesme ve doğrulayıcı döngüsü hakkında daha fazlası + + + + + +## Nasıl Çalışır {#how-it-works} + + + +Aktif olduğu durumda ETH ödülleri kazanırsınız. Bu ödüller periyodik olarak para çekme adresinize yatırılır. + +İstenirse, çevrimiçi olma gereksinimini ortadan kaldıran ve diğer ödülleri durduran bir doğrulayıcı olarak çıkabilirsiniz. Sonrasında kalan bakiyeniz kurulum esnasında belirlediğiniz çekim adresine aktarılacaktır. + +[Hisseleme para çekmeleri hakkında daha fazlası](/staking/withdrawals/) + +## Hisseleme Başlama Noktası başlangıç rehberi {#get-started-on-the-staking-launchpad} + +Staking Launchpad, stake yapmanıza yardımcı olacak açık kaynaklı bir uygulamadır. İstemcilerinizi seçme, anahtarlarınızı oluşturma ve ETH'nizi stake depozito sözleşmesine yatırma konusunda size rehberlik edecektir. Doğrulayıcınızı güvenli bir şekilde kurmak ve her şeyi kapsadığınızdan emin olmak için bir kontrol listesi sağlanmıştır. + + + +## Düğüm ve istemci kurulum araçlarıyla ilgili olarak nelere dikkat edilmelidir {#node-tool-considerations} + +ETH'nizi tek başınıza stake etmenize yardımcı olacak, giderek artan sayıda araç ve hizmet var, ancak bunların her biri farklı riskler ve faydalar içeriyor. + +Nitelik göstergeleri, listelenen bir stake etme aracının sahip olabileceği dikkate değer güçlü veya zayıf yönleri belirtmek için aşağıda kullanılmaktadır. Stake yolculuğunuza yardımcı olacak araçları seçerken bu özellikleri nasıl tanımladığımıza dair bu bölümü referans olarak kullanın. + + + +## Düğüm ve istemci kurulum araçlarını keşfedin {#node-and-client-tools} + +Kurulumunuzda size yardımcı olacak çeşitli seçenekler mevcuttur. Aşağıdaki araçlarda size rehberlik etmesi için yukarıdaki göstergeleri kullanın. + + + +### Düğüm araçları + + + +Ağın güvenliğini iyileştirdiği ve riskinizi sınırladığı için bir [azınlık istemcisi](/developers/docs/nodes-and-clients/client-diversity/) seçmenin önemini lütfen unutmayın. Azınlık istemcisini kurmanıza izin veren araçlar, "çoklu istemci" olarak anılır. + +### Anahtar Üreticileri + +Bu araçlar, anahtar oluşturmaya yardımcı olmak için [hisseleme Mevduat CLI'sına](https://github.com/ethereum/staking-deposit-cli/) alternatif olarak kullanılabilir. + + + +Kaçırdığımız bir hisseleme aracı için öneriniz mi var mı? Uygun olup olmadığını görmek ve incelemeye göndermek için [ürün listeleme politikamıza](/contributing/adding-staking-products/) göz atın. + +## Solo staking kılavuzlarını keşfet {#staking-guides} + + + +## Sıkça sorulan sorular {#faq} + +Bunlar, hisseleme hakkında bilmeye değer en yaygın sorulardan birkaçıdır. + + + +Doğrulayıcı, Ethereum üzerinde yaşayan sanal bir varlıktır ve Ethereum protokolünün mutabakatına katılır. Doğrulayıcılar bir denge, ortak anahtar ve diğer özelliklerle temsil edilir. Bir doğrulayıcı istemcisi, özel anahtarını tutup kullanarak doğrulayıcı adına hareket eden yazılımdır. Tek bir doğrulayıcı istemcisi, birçok doğrulayıcıyı kontrol ederek birçok anahtar çiftini tutabilir. + + + + +Doğrulayıcı ile ilişkili her bir anahtar çiftinin etkinleştirilmesi için tam olarak 32 ETH gerekir. Tek bir anahtar setine daha fazla ETH yatırılması ödül potansiyelini artırmaz çünkü her doğrulayıcı 32 ETH'lik etkili bakiye ile sınırlandırılmıştır. Bu, stake işleminin her biri kendi anahtar ve dengesine sahip 32 ETH artışıyla yapıldığı anlamına gelir. + +Tek bir doğrulayıcı için 32 ETH'den fazla para yatırmayın. Ödüllerinizi artırmayacaktır. Eğer doğrulayıcı için bir para çekme adresi ayarlanmışsa, bir sonraki doğrulayıcı taraması sırasında 32 ETH'in üzerindeki fonlar otomatik olarak bu adrese yatırılacaktır. + +Solo staking sizin için çok zorlu görünüyorsa, bir servis sağlayıcı kullanmayı düşünün veya 32 ETH'den daha azıyla çalışıyorsanız, stake havuzlarına göz atın. + + + +Ağ düzgün bir şekilde sonlandırılırken çevrimdışı duruma geçmek, kesintiye neden OLMAZ. Doğrulayıcınız belirli bir dönem için (her biri 6,4 dakika uzunluğunda) kanıtlamak için müsait değilse küçük hareketsizlik cezaları uygulanır, ancak bu kesmeden çok farklıdır. Bu cezalar, doğrulayıcının onay vermesi durumunda kazanacağınız ödülden biraz daha azdır ve kayıplar tekrar çevrimiçi durumda yaklaşık olarak eşit bir süre ile geri kazanılabilir. + +Hareketsizlik cezalarının aynı anda kaç doğrulayıcının çevrimdışı olduğuyla orantılı olduğunu unutmayın. Ağın büyük bir bölümünün aynı anda çevrimdışı olduğu durumlarda, bu doğrulayıcıların her biri için verilen cezalar, tek bir doğrulayıcının kullanılamadığı duruma göre daha fazla olacaktır. + +Aşırı durumlarda, doğrulayıcıların üçte birinden fazlasının çevrimdışı olmasının bir sonucu olarak ağ sonlandırmayı durdurursa, bu kullanıcılar, çevrimdışı doğrulayıcı hesaplarından üstel bir ETH tahliyesi olan kuadratik hareketsizlik sızıntısı olarak bilinen sorunla karşılaşacaklardır. Bu, ağın etkin olmayan doğrulayıcıların ETH'sini bakiyeleri 16 ETH'ye ulaşana kadar yakarak sonunda kendi kendini iyileştirmesini sağlar; bu noktada doğrulayıcı havuzundan otomatik olarak çıkarılırlar. Kalan çevrimiçi doğrulayıcılar, sonunda tekrar ağın 2/3'ünden fazlasını oluşturacak ve zinciri bir kez daha sonlandırmak için gereken süper çoğunluğu karşılayacaktır. + + + +Kısacası, bu hiçbir zaman tam olarak garanti edilemez, ancak iyi niyetle hareket ederseniz, bir azınlık istemcisi çalıştırırsanız ve imzalama anahtarlarınızı bir seferde yalnızca bir makinede tutarsanız, kesilme riski neredeyse sıfırdır. + +Bir doğrulayıcının ağdan ayrılmasına ve çıkarılmasına neden olabilecek yalnızca birkaç belirli yol vardır. Yazma sırasında, meydana gelen kesikler, yalnızca imzalama anahtarlarının aynı anda iki ayrı makinede depolandığı yedekli donanım kurulumlarının bir ürünüydü. Bu yanlışlıkla anahtarlarınızdan çifte oy almanıza neden olabilir, bu da bölünebilir bir suçtur. + +Süper çoğunluklu bir istemciyi çalıştırmak (ağın 2/3'ünden fazlası tarafından kullanılan herhangi bir istemci), bu istemcide zincir çatalıyla sonuçlanan bir hata olması durumunda olası kesinti riskini de taşır. Bu, sonlandırılan hatalı bir çatala neden olabilir. Amaçlanan zincire geri dönmek için, kesinleşmiş bir bloğu geri almaya çalışarak bir çevre oyu göndermeniz gerekir. Bu aynı zamanda cezalandırılabilinir bir suçtur ve bunun yerine bir azınlık istemcisi çalıştırılarak basitçe önlenebilir. + +Bir azınlık istemcisindeki eşdeğer hatalar hiçbir zaman kesinleşmeyecek ve dolayısıyla hiçbir zaman bir çevre oylamasıyla sonuçlanmayacak ve yalnızca kesik yeme değil hareketsizlik cezalarıyla sonuçlanacaktır. + + + + + +Her biri farklı ekipler tarafından çeşitli programlama dilleri kullanılarak geliştirildiğinden, bireysel istemciler performans ve kullanıcı arabirimi açısından biraz farklılık gösterebilir. Bununla birlikte, hiçbiri "en iyi" değildir Tüm üretim müşterileri, blok zinciri ile senkronize etmek ve etkileşim kurmak için hepsi aynı temel işlevleri gerçekleştiren mükemmel yazılım parçalarıdır. + +Tüm üretim istemcileri aynı temel işlevi sağladığından, aslında bir azınlık istemcisi seçmeniz çok önemlidir; bu, şu anda, ağdaki doğrulayıcıların çoğunluğu tarafından KULLANILMAYAN herhangi bir istemci anlamına gelir. Bu kulağa mantıksız gelebilir, ancak çoğunluk veya üstün çoğunluk istemcisi çalıştırmak, o istemcide bir hata olması durumunda, sizi artan bir kesinti riskine sokar. Bir azınlık istemcisini çalıştırmak bu riskleri büyük ölçüde sınırlar. + +İstemci çeşitliliğinin neden kritik olduğu hakkında daha fazla bilgi edinin + + + +Sanal özel sunucu (VPS) ev donanımının yerine kullanılabilse de, doğrulayıcı istemcinizin fiziksel erişimi ve konumu önemlidir. Amazon Web Services veya Digital Ocean gibi merkezi bulut çözümleri, ağı merkezileştirme pahasına donanım edinme ve çalıştırma zorunluluğunu ortadan kaldırıyor. + +Tek bir merkezi bulut depolama çözümü üzerinde çalışan doğrulayıcı istemci sayısı arttıkça, bu kullanıcılar için daha tehlikeli hale gelir. Bu sağlayıcıları bir saldırı, düzenleyici talepler veya yalnızca güç/internet kesintileri nedeniyle çevrimdışına alan herhangi bir olay, bu sunucuya güvenen her doğrulayıcı istemcinin aynı anda çevrimdışı olmasına neden olur. + +Çevrimdışı cezalar, aynı anda kaç kişinin çevrimdışı olduğuyla orantılıdır. Bir VPS kullanmak, çevrimdışı cezaların daha şiddetli olması riskini büyük ölçüde artırır ve kesintinin yeterince büyük olması durumunda ikinci dereceden sızıntı veya kesinti riskinizi artırır. Kendi riskinizi ve ağ riskini en aza indirmek için, kullanıcıların kendi donanımlarını edinmeleri ve çalıştırmaları şiddetle tavsiye edilir. + + + + +İşaret Zincirinden tüm para çekme işlemleri, para çekme bilgilerinin belirlenmiş olmasını gerektirir. + +Yeni paydaşlar bunu anahtar üretim ve yatırma zamanında belirler. Henüz bu bilgileri belirlememiş mevcut paydaşlar kendi anahtarlarını güncelleyerek bu işlevi destekleyebilir. + +Çekim bilgileri ayarlandığında, ödül ödemeleri (başlangıçtaki 32 adedin üstünde toplananlar) periyodik olarak çekim adresine otomatik dağıtılacaktır. + +Tüm bakiyenizin kilidini kaldırmak ve tamamını almak için aynı zamanda doğrulayıcınızın çıkış sürecini tamamlamanız da gerekir. + +Hisseleme para çekmeleri hakkında daha fazlası + + +## Daha fazla bilgi {#further-reading} + +- [Ethereum'un İstemci Çeşitliliği Sorunu](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ +- [İstemci Çeşitliliğine Yardımcı Olmak](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ +- [Ethereum'un konsensüs katmanında müşteri çeşitliliği](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ +- [Nasıl Yapılır: Ethereum Doğrulayıcı Donanımı Satın Alımı](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ +- [Adım Adım: Ethereum 2.0 Testnet'e nasıl katılınır](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _Butta_ +- [Eth2 Slashing Önleme İpuçları](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raul Jordan 2020_ diff --git a/public/content/translations/tr/staking/withdrawals/index.md b/public/content/translations/tr/staking/withdrawals/index.md new file mode 100644 index 00000000000..cf6e60d309b --- /dev/null +++ b/public/content/translations/tr/staking/withdrawals/index.md @@ -0,0 +1,218 @@ +--- +title: Hisseden ödeme alma +description: Hisseleme para çekimlerinin ne olduğu, nasıl çalıştıkları ve ödüllerini almak içn paydaşların ne yapmaları gerektiğini özetleyen sayfa +lang: tr +template: staking +image: /staking/leslie-withdrawal.png +alt: Hisseleme ödülleri ile gergedan Leslie +sidebarDepth: 2 +summaryPoints: + - Şangay/Capella yükseltmesi Ethereum'da hisseleme içerisindeki para çekim işlemlerini mümkün kıldı + - Doğrulayıcı operatörler, etkinleştirmek için para çekim adresi sağlamalıdır + - Ödüller birkaç günde bir otomatik olarak dağıtılır + - Hisselemeden tamamen çıkan doğrulayıcılar kalan bakiyelerini geri alacaklardır +--- + + +12 Nisan 2023'te gerçekleşen Şangay/Capella yükseltmesiyle birlikte hisseleme çekim işlemleri etkinleştirildi. Şangay/Capella ile ilgili daha fazlası + + +**Hisseleme çekimleri** Ethereum fikir birliği katmanındaki (İşaret Zinciri) bir doğrulayıcı hesabından, beraber işletilebileceği yürütüm katmanına ETH transferlerine karşılık gelir. + +32 ETH'den **fazla bakiyenin ödül ödemeleri** her bir doğrulayıcı ile ilişkilendirilmiş çekim adresine, her kullanıcı tarafından sağlanır sağlanmaz otomatik ve düzenli olarak gönderilir. Kullanıcılar ayrıca tüm doğrulayıcı bakiyesinin kilidini açarak **hisselemeden toptan çıkabilir**. + +## Hisseleme ödülleri {#staking-rewards} + +Ödül ödemeleri, etkin bakiyeleri maksimum 32 ETH olan aktif doğrulayıcı hesaplar için otomatik olarak işlenir. + +Ödüller yoluyla kazanılan 32 ETH'nin üzerindeki herhangi bir bakiye aslında esas paraya hiçbir katkıda bulunmaz veya bu doğrulayıcının ağ üzerindeki ağırlığını artırmaz. Bu nedenle birkaç günde bir ödül ödemesi olarak otomatik olarak çekilir. Bir seferlik para çekme adresi sağlamanın dışında bu ödüller doğrulayıcının başka bir işlem yapmasını gerektirmez. Tüm bunlar fikir birliği katmanında başlatılır, bu sayede herhangi bir adımda gaz (işlem ücreti) gerekmez. + +### Buraya nasıl geldik? {#how-did-we-get-here} + +Ethereum bir zamanlar olduğu gibi yoğun enerji tüketen madencilik yerine geçtiğimiz birkaç yıl boyunca geçirdiği ağ yükseltmeleri sayesinde ETH'nin kendisi tarafından güvence altına alınan bir ağ haline geldi. Ethereum mütabakatına katılım artık "hisseleme" olarak biliniyor, bu sistemde katılımcılar ağa katılım sağlayabilmek için ellerindeki ETH'yi kitleyip "kilitli" duruma getiriyorlar. Kurallara uyan kullanıcılar ödüllendirilecekken uymayanlar ve hile yapmaya çalışanlar ise cezalandırılabilirler. + +Kasım 2020'deki hisseleme yatırım sözleşmesinin piyasaya sürülmesinden bu yana kimi cesur Ethereum öncüleri gönüllü olarak fonlarını ''doğrulayıcıları'', ağ kurallarını takip eden, resmi olarak blokları doğrulama ve önerme hakkına sahip özel hesapları aktif hale getirmek için kilitledi. + +Shanghai/Capella yükseltmesinden önce hisselenmiş ETH'lerinizi kullanamaz veya onlara erişemezdiniz. Ancak şimdi, ödüllerinizi seçilmiş bir hesaba otomatik olarak aktarmak ve hisselenmiş ETH'lerinizi istediğiniz zaman çekmek için kaydolabilirsiniz. + +### Nasıl hazırlanırım? {#how-do-i-prepare} + + + +### Önemli bildiriler {#important-notices} + +Herhangi bir doğrulayıcı hesabının kendi bakiyesinden ETH çekebilir durumuna erişmesi için bir çekim adresi belirtmesi, gerekli adımdır. + + + Her bir doğrulayıcı hesabı bir seferde yalnızca bir çekim adresi atayabilir. Bir adres seçilip fikir birliği katmanına kaydedildiğinde bu, geri alınamaz veya tekrardan değiştirilemez. Kaydetmeden önce sahipliği ve bildirilen adresin doğruluğunu iki defa kontrol edin. + + +Aksini belirtmediğiniz için güvenlik kelimelerinizin çevrimdışı ortamda güvende kaldığı ve herhangi bir yolla ele geçirilemeyeceği varsayıldığından aynı zamanda bakiyelerinize herhangi bir tehdit de bulunmamaktadır. Çekim kimliği ekleme başarısızlığı, çekim adresi belirtilene kadar ETH'nizi basit bir biçimde doğrulayıcı hesabında kilitli halde bırakacaktır. + +## Hisselemeden tamamen çıkış {#exiting-staking-entirely} + +Doğrulayıcı hesap bakiyesinin dışına _herhangi bir_ fon gönderilebilmesi için çekim adresi belirtilmesi gerekir. + +Hisselemeden tamamen çıkmak ve tüm bakiyelerini çekmek isteyen kullanıcılar, hisselemeden çıkış sürecini başlatacak ''gönüllü çıkış'' mesajını doğrulayıcı anahtarlarıyla birlikte imzalamak ve yayımlamak zorundadır. Bu, doğrulayıcı müşteriniz ile tamamlanır ve mutabakat düğümünüze kaydedilir, bundan ötürü herhangi bir gaz gerektirmez. + +Bir doğrulayıcının hisselemeden çıkma süreci, kaç tane diğer doğrulayıcının da aynı zamanda çıktığına bağlı olarak değişken vakit alır. Bir kez tamamlandığında bu hesap artık doğrulayıcı hesap görevlerinden sorumlu olmayacak, ödül kazanma hakkı olmayacak ve ETH'leri daha fazla ''hisselemede'' kalmaycaktır. Bu sürede hesap, tamamen ''çekilebilir'' olarak işaretlenecektir. + +Bir hesap "para çekilebilir" olarak işaretlendikten ve de hesap para çekme bilgilerini sağladıktan sonra kullanıcın beklemekten başka yapması gereken bir şey yoktur. Hesaplar, uygun çıkış fonları için otomatik ve devamlı olarak blok teklif verenleri tarafından süpürülüyor ve hesap bakiyeniz bir sonraki süpürülmedetamamen süprülüyor (tam çekilme olarak da bilinir). + +## Hisseleme para çekme işlemleri ne zaman aktifleşir? {#when} + +Hisseleme para çekimleri aktif! Para çekebilme işlevi 12 Nisan 2023'te gerçekleşen Şangay/Capella yükseltmesinin bir kısmı sonucu aktifleştirildi. + +Şangay/Capella yükseltmesi, daha önceden hisselenmiş ETH'lerin normal Ethereum hesaplarına geri alınabilmesini sağladı. Bu da likidite hisseleme döngüsünü kapattı; Ethereum'u daha sürdürülebilir, ölçeklenebilir ve de merkeziyetsiz ekosistem oluşturma yolculuğuna bir adım daha yaklaştırdı. + +- [Ethereum'un tarihçesi hakkında daha fazla bilgi](/history/) +- [Ethereum'un yol haritası hakkında daha fazla bilgi](/roadmap/) + +## Para çekme ödemeleri nasıl çalışır? {#how-do-withdrawals-work} + +Belirli bir doğrulayıcının para çekmek için uygun olup olmadığı, söz konusu doğrulayıcının hesabının durumuna göre belirlenir. Bir hesabın para çekme işleminin başlatılıp başlatılamayacağına karar verebilmek için herhangi bir kullanıcı girdisine ihtiyaç yoktur; tüm süre otomatik bir fikir birliği katmanı üzerinden yürütülür. + +### Görsel olarak öğrenmeyi mi tercih ediyorsunuz? {#visual-learner} + +Finematics tarafından sağlanmış Ethereum hisseleme çekim işlemleri açıklamasına buradan göz atabilirsiniz: + + + +### Doğrulayıcı "süpürülmesi" {#validator-sweeping} + +Doğrulayıcının bir sonraki bloku önerebilmesi için 16 adede kadar uygun para çekme işleminden oluşan bir para çekme kuyruğu oluşturması gerekir. Bu başlangıçta doğrulayıcı indeksinin 0 ile başlayarak, bu hesabın protokolün kuralları gereğince para çekmeye uygun olup olmadığını belirleyerek ve uygunsa kuyruğa ekleyerek yapılır. Aşağıdaki bloku önermek için ayarlanan doğrulayıcı son blokun kaldığı yerden devam edecek ve sonsuza kadar bu sırayla ilerleyecek. + + +Analog bir saat düşünün. Saatteki akrep saate işaret eder, bir yönde ilerler, herhangi bir saati atlamaz ve eninde sonunda son sayıya ulaşıldıktan sonra tekrardan başa sarar.

+Şimdi 1 ile 12 arası yerine, saatin 0 ile N (fikir birliği katmanına şimdiye kadar kayıt olmuş tüm doğrulayıcı hesaplarının sayısı, Ocak 2023 itibariyle 500.000) arasına sahip olduğunu düşünün.

+Saatin akrebi çekim uygunluğu için kontrol edilmesi gereken sıradaki doğrulayıcıya işaret edecektir. 0 ile başlar ve hiçbir sayıyı atlamadan tüm yol boyunca devam eder. Son doğrulayıcıya ulaşıldığında döngü baştan başlayarak devam eder. +
+ +#### Çekimler için hesabı kontrol etme {#checking-an-account-for-withdrawals} + +Bir önerici muhtemel çekimler için doğrulayıcıları süpürürken, kontrol edilen her bir doğrulayıcı bir çekim gerçekleşip gerçekleşmediğini ve gerçekleşiyorsa ne kadar ETH'nin çekilmesi gerektiğini belirlemek için kısa bir soru serisi ile değerlendirilir. + +1. **Bir çekim adresi sağlandı mı?** Eğer herhangi bir çekim adresi sağlanmadıysa hesap atlanır ve hiçbir çekim işlemi başlatılmaz. +2. **Doğrulayıcı çıktı mı ve para çekilebilir mi?** Eğer doğrulayıcı tamamen çıkmış ve hesabın ''para çekilebilir'' olarak değerlendirildiği döneme ulaşmışsak tam para çekimi işletilir. Bu, kalan tüm bakiyeyi çekim adresine transfer eder. +3. **İşlevsel bakiye 32'de azamiye ulaştı mı?** Eğer hesap para çekim kriterlerine ulaşmış, tamamen çıkmamış ve 32'den fazla ödüle sahipse yalnızca 32'nin üzerindeki ödülleri kullanıcıların çekim adreslerine transfer edecek kısmi bir para çekim işlemi sürdürülür. + +Bir doğrulayıcının hayat döngüsü boyunca doğrulayıcı operatörleri tarafından alınan ve bu akımı etkileyen yalnızca iki eylem vardır: + +- Herhangi bir para çekimi formunu etkinleştirmek için para çekim kimliği sağlayın +- Tam para çekimi sağlayan işlem olan ağdan çıkın + +### Gazsız {#gas-free} + +Hisseleme çekimlerine bu yaklaşım, belirli miktarda ETH'nin çekilmesi istenen bir işlemin manuel olarak paydaşlar için gerekmesinden kaçınır. Bu, **herhangi bir gaz (işlem ücreti) gerektirmez** ve ayrıca para çekimleri, var olan yürütüm katmanı blok hacmi için yarışmaz. + +### Hisseleme ödüllerimi ne sıklıkla alacağım? {#how-soon} + +Tek bir blokta en fazla 16 para çekimi gerçekleştirilebilir. Bu hızda, her gün 115.200 doğrulayıcı çekimi (herhangi bir kayıp yuva olmadığını varsayarsak) işlenebilir. Yukarıda da belirtildiği üzere, para çekimine uygun olmayan doğrulayıcılar süpürme süresini azaltarak atlanır. + +Bu hesaplamayı genişleterek belirli sayıda para çekme işlemi için ne kadar süre gerektiğini tahmin edebiliriz: + + + +| Para çekme sayısı | Tamamlanma zamanı | +| :---------------: | :---------------: | +| 400.000 | 3,5 gün | +| 500.000 | 4,3 gün | +| 600.000 | 5,2 gün | +| 700.000 | 6,1 gün | +| 800.000 | 7,0 gün | + + + +Gördüğünüz üzere bu, ağda daha fazla doğrulayıcı varlığında yavaşlar. Kayıp yuvalarda artış oransal olarak bunu yavaşlatır ancak bu, genellikle olası sonuçların daha yavaş kısmını temsil eder. + +## Sıkça sorulan sorular {#faq} + + +Hayır, çünkü para çekme kimlik bilgilerini sağlama süreci tek seferlik bir süreçtir bu yüzden gönderildikten sonra değiştirilemez. + + + +Bir yürütme katmanı para çekme adresi belirleyerek söz konusu doğrulayıcı için para çekme kimlik bilgileri kalıcı olarak değiştirilmiştir. Bunun anlamı da eski kimlik bilgilerinin artık çalışmayacağı ve yeni kimlik bilgilerinin doğrudan bir yürütme katmanı hesabına yönlendirileceğidir. + +Çekim adresleri ya akıllı sözleşme (kendi kodu ile kontrol edilen) ya da harici sahip olunan hesap (EOA, kendi özel anahtrarıyla kontrol edilen) olabilir. Şu anda bu hesapların doğrulayıcı kimlik bilgilerinde bir değişikliği işaret edecek bir fikir birliği katmanına geri iletme yolu yoktur ve bu işlevin eklenmesi de protokole gereksiz bir karmaşıklık katacaktır. + +Belirli bir doğrulayıcı için çekim adresini değiştirmeye alternatif olarak, kullanıcılar anahtar döngüsünü yönetebilen, Safe gibi bir akıllı sözleşmeyi çekim adresi olarak kullanmayı seçebilirler. Fonlarını kendi EOA'larına göre ayarlayan kullanıcılar, tüm stake edilmiş fonlarını çekebilmek için tam bir çıkış gerçekleştirebilir ve ardından yeni kimlik bilgilerini sunarak yeniden hisseleyebilirler. + + + + +Eğer bir paydaşlık havuzunun parçasıysanız veya hisseleme token'ları tutuyorsanız, her bir servis farklı çalıştığı için hisseleme çekimlerinin nasıl yapıldığıyla ilgili daha fazla detay için sağlayıcınıza danışın. + +Genel olarak kullanıcılar, temelde hisselenmiş ETH'lerini geri almakta veya kullandıkları hisseleme sağlayıcısını değiştirmekte özgürdür. Eğer spesifik bir havuz çok büyük hale geliyorsa fonlar çıkartılabilir, alınabilir ve daha küçük bir sağlayıcı ile yeniden hisselenebilir. Ya da yeterince ETH biriktirdiyseniz evden hisseleyebilirsiniz. + + + + +Evet, doğrulayıcınız bir çekim adresi sağladığı sürece. Bu herhangi bir çekimi etkinleştirmek için bir defa sağlanmalıdır, sonrasında ödül ödemeleri otomatik olarak birkaç günde bir her doğrulayıcı süpürmesinde çalışacaktır. + + + + +Hayır eğer doğrulayıcınız hâlâ ağda aktif ise otomatik olarak tam bir çekme gerçekleşmeyecektir. Bu, gönüllü çıkışı manuel olarak başlatmayı gerektirir. + +Bir doğrulayıcı çıkış sürecini tamamladığında ve hesabın çekim kredilerinin olduğunu varsayarsak kalan bakiye, sonrasında sıradaki doğrulayıcı süpürmesinde çekilecektir. + + + + +Çekimler otomatik olarak kilitlemeye katkısı olmayan herhangi bir ETH'yi atmaya yönelik düzenlenmiştir. Bu, çıkış sürecini tamamlamış olan hesaplar için tüm bakiyeleri de kapsar. + +Belirli miktarlarda ETH'nin çekilmesini manuel olarak talep etmek mümkün değildir. + + + + +Doğrulayıcı operatörlerinin doğrulayıcıyı çekimler için nasıl hazırlayacağı hakkında daha fazla detay bulabilecekleri Hisseleme Başlama Noktası Çekimleri sayfasını ziyaret etmeleri önerilir. hazır, olayların gerçekleşme süreci ve çekimlerin nasıl çalıştığı ile ilgili daha fazla ayrıntı. + +Kurulumunuzu ilk olarak bir test ağında denemek isterseniz, başlamak için Goerli Test Ağı Hisseleme Başlama Noktası sayfasını ziyaret edin. + + + + +Hayır. Bir doğrulayıcı çıktıktan ve tüm bakiyesi çekildikten sonra, bu doğrulayıcıya yatırılan tüm ek fonlar, bir sonraki doğrulayıcı süpürmesi sırasında otomatik olarak çekim adresine aktarılacaktır. ETH'yi tekrar hisselemek için yeni bir doğrulayıcı aktive olmalıdır. + + +## Daha fazla bilgi {#further-reading} + +- [Hisseleme Başlama Noktası Para Çekimleri](https://launchpad.ethereum.org/withdrawals) +- [EIP-4895: İşlem olarak işaret zinciri çekim işlemleri](https://eips.ethereum.org/EIPS/eip-4895) +- [Ethereum Kedi Çobanları - Şangay](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) +- [PEEPanEIP #94: Potuz ve Hsiao-Wei Wang ile Kilitli ETH Çekimi (Test)](https://www.youtube.com/watch?v=G8UstwmGtyE) +- [PEEPanEIP#68: EIP-4895: Alex stokes ile operasyonlar olarak işaret zinciri çekimleri](https://www.youtube.com/watch?v=CcL9RJBljUs) +- [Doğrulayıcının Geçerli Bakiyesini Anlamak](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/tr/web3/index.md b/public/content/translations/tr/web3/index.md similarity index 100% rename from src/content/translations/tr/web3/index.md rename to public/content/translations/tr/web3/index.md diff --git a/src/content/translations/tr/whitepaper/index.md b/public/content/translations/tr/whitepaper/index.md similarity index 100% rename from src/content/translations/tr/whitepaper/index.md rename to public/content/translations/tr/whitepaper/index.md diff --git a/src/content/translations/tr/zero-knowledge-proofs/index.md b/public/content/translations/tr/zero-knowledge-proofs/index.md similarity index 100% rename from src/content/translations/tr/zero-knowledge-proofs/index.md rename to public/content/translations/tr/zero-knowledge-proofs/index.md diff --git a/src/content/translations/uk/bridges/index.md b/public/content/translations/uk/bridges/index.md similarity index 100% rename from src/content/translations/uk/bridges/index.md rename to public/content/translations/uk/bridges/index.md diff --git a/src/content/translations/uk/community/events/index.md b/public/content/translations/uk/community/events/index.md similarity index 100% rename from src/content/translations/uk/community/events/index.md rename to public/content/translations/uk/community/events/index.md diff --git a/src/content/translations/uk/community/get-involved/index.md b/public/content/translations/uk/community/get-involved/index.md similarity index 100% rename from src/content/translations/uk/community/get-involved/index.md rename to public/content/translations/uk/community/get-involved/index.md diff --git a/src/content/translations/uk/community/grants/index.md b/public/content/translations/uk/community/grants/index.md similarity index 100% rename from src/content/translations/uk/community/grants/index.md rename to public/content/translations/uk/community/grants/index.md diff --git a/src/content/translations/uk/community/language-resources/index.md b/public/content/translations/uk/community/language-resources/index.md similarity index 100% rename from src/content/translations/uk/community/language-resources/index.md rename to public/content/translations/uk/community/language-resources/index.md diff --git a/src/content/translations/uk/community/online/index.md b/public/content/translations/uk/community/online/index.md similarity index 100% rename from src/content/translations/uk/community/online/index.md rename to public/content/translations/uk/community/online/index.md diff --git a/public/content/translations/uk/community/support/index.md b/public/content/translations/uk/community/support/index.md new file mode 100644 index 00000000000..89edc03278f --- /dev/null +++ b/public/content/translations/uk/community/support/index.md @@ -0,0 +1,115 @@ +--- +title: Підтримка Ethereum +description: Отримайте підтримку в екосистемі Ethereum. +lang: uk +--- + +# Підтримка Ethereum {#support} + +## Офіційна підтримка Ethereum {#official-support} + +Вам потрібна офіційна підтримка Ethereum? Перше, що вам слід знати, — Ethereum є децентралізованою системою. Це означає, що жодна централізована організація чи особа не володіє Ethereum, і через це не існує жодних офіційних каналів підтримки. + +Розуміння децентралізованої природи Ethereum є життєво важливим, оскільки будь-хто, хто стверджує, що є офіційною підтримкою Ethereum, імовірно, є шахраєм! Найкращий захист від шахраїв — це самоосвіта й серйозне ставлення до безпеки. + + + Система безпеки Ethereum і запобігання шахрайству + + + + Вивчайте основи Ethereum + + +Попри відсутність офіційної підтримки, багато груп, спільнот і проєктів у всій екосистемі Ethereum із радістю нададуть допомогу, і ви можете знайти багато корисної інформації та ресурсів на цій сторінці. Залишилися питання? Приєднуйтесь до [ethereum.org на платформі Discord](/discord/), ми спробуємо вам допомогти. + +## Підтримка гаманця {#wallet-support} + +Виникли проблеми з гаманцем? Більшість гаманців мають спеціальні команди підтримки, які можуть допомогти: + +- [MetaMask](https://metamask.zendesk.com/hc/) +- [Argent](https://support.argent.xyz/hc/) +- [MyEtherWallet](https://help.myetherwallet.com/) + +_Це не вичерпний список. Потрібна допомога в пошуку підтримки для конкретного гаманця? Приєднуйтеся до [ethereum.org на платформі Discord](https://discord.gg/ethereum-org), і ми спробуємо допомогти._ + +Шукаєте гаманець Ethereum? [Перегляньте наш повний список гаманців Ethereum](/wallets/find-wallet/). + +## Розробка децентралізованих програм {#building-support} + +Цей процес може бути складним. Ось кілька орієнтованих на розробку ресурсів із досвідченими розробниками Ethereum, які з радістю допоможуть. + +- [Університет Alchemy](https://university.alchemy.com/#starter_code) +- [CryptoDevs на платформі Discord](https://discord.gg/Z9TA39m8Yu) +- [Ethereum StackExchange](https://ethereum.stackexchange.com/) +- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) +- [Університет Web3](https://www.web3.university/) + +Ви також можете знайти документацію та посібники з розробки в нашому розділі [Ресурси для розробників Ethereum](/developers/). + +### Інструменти {#dapp-tooling} + +Чи стосується ваше запитання певного інструменту, проєкту чи бібліотеки? Більшість проєктів мають чат-сервери або форуми, призначені для підтримки. + +Ось кілька популярних прикладів: + +- [Solidity](https://gitter.im/ethereum/solidity/) +- [ethers.js](https://discord.gg/6jyGVDK6Jx) +- [web3.js](https://discord.gg/GsABYQu4sC) +- [Hardhat](https://discord.gg/xtrMGhmbfZ) +- [Truffle](https://discord.gg/8uKcsccEYE) +- [Alchemy](http://alchemy.com/discord) +- [Tenderly](https://discord.gg/fBvDJYR) + +## Запуск вузла {#node-support} + +Якщо ви використовуєте вузол або валідатор, ось кілька спільнот, які допоможуть вам розпочати роботу. + +- [EthStaker на платформі Discord](https://discord.gg/ethstaker) +- [EthStaker на платформі Reddit](https://www.reddit.com/r/ethstaker) + +Більшість команд, які створюють клієнти Ethereum, мають також спеціальні відкриті майданчики, де ви можете отримати підтримку й поставити запитання. + +### Клієнти виконання {#execution-clients} + +- [Geth](https://discord.gg/FqDzupGyYf) +- [Nethermind](https://discord.gg/YJx3pm8z5C) +- [Besu](https://discord.gg/p8djYngzKN) +- [Erigon](https://github.com/ledgerwatch/erigon/issues) + +### Клієнти консенсусу {#consensus-clients} + +- [Prysm](https://discord.gg/prysmaticlabs) +- [Nimbus](https://discord.gg/nSmEH3qgFv) +- [Lighthouse](https://discord.gg/cyAszAh) +- [Teku](https://discord.gg/7hPv2T6) +- [Lodestar](https://discord.gg/aMxzVcr) + +Ви також можете [дізнатися, як запустити вузол, тут](/developers/docs/nodes-and-clients/run-a-node/). + +## Часті питання {#faq} + +### Ефіри (ETH) надіслано не на той гаманець {#wrong-wallet} + +Транзакція, надіслана на Ethereum, є незворотною. На жаль, якщо ви надіслали ETH на неправильний гаманець, неможливо повернути ці кошти. Жодна центральна організація чи особа не володіє Ethereum, а це означає, що ніхто не може скасовувати транзакції. Тому важливо завжди двічі перевіряти свої транзакції, перш ніж надіслати їх. + +### Як я можу отримати Ethereum під час безкоштовної роздачі? {#giveaway-scam} + +Роздачі Ethereum — це шахрайство, призначене для крадіжки ваших ефірів (ETH). Не спокушайтеся пропозиціями, які здаються занадто хорошими, щоб бути правдою, — якщо ви надішлете ефіри (ETH) на адресу роздачі, ви не отримаєте роздачу й не зможете повернути свої кошти. + +[Докладніше про запобігання шахрайству](/security/#common-scams) + +### Мою транзакцію заблоковано {#stuck-transaction} + +Транзакції в Ethereum іноді можуть заблокуватись, якщо ви вказали нижчу комісію за транзакцію, ніж потрібно через мережевий попит. Багато гаманців надають можливість повторно надіслати ту саму транзакцію з вищою комісією, щоб її було оброблено. Крім того, ви можете скасувати транзакцію, що очікує на розгляд, надіславши транзакцію на вашу власну адресу й використавши той самий одноразовий номер, що має транзакція в очікуванні. + +[Як прискорити або скасувати незавершену транзакцію на MetaMask](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) + +[Як скасувати незавершені транзакції Ethereum](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) + +### Як мені видобувати Ethereum? {#mining-ethereum} + +Майнинг Ethereum уже неможливий. Майнинг було вимкнуто, коли Ethereum перейшов від доказу роботи на доказ володіння. Тепер замість майнерів в Ethereum з’явилися валідатори. Валідатори займаються стейкінгом ETH і отримують винагороду за захист мережі. + +### Як я можу стати стейкером/валідатором? {#become-validator} + +Щоб стати валідатором, необхідно стати стейкером 32 ETH у депозитному контракті Ethereum і встановити вузол валідатора. Більше інформації доступно на [сторінках](/staking) і [стартовій платформі](https://launchpad.ethereum.org/) стейкінгу. diff --git a/public/content/translations/uk/dao/index.md b/public/content/translations/uk/dao/index.md new file mode 100644 index 00000000000..6d52114698e --- /dev/null +++ b/public/content/translations/uk/dao/index.md @@ -0,0 +1,165 @@ +--- +title: Децентралізовані автономні організації (DAO) +description: Огляд DAO на Ethereum +lang: uk +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: Представлення голосувань DAO за пропозицію. +summaryPoint1: Спільноти, що належать учасникам, без централізованого керування. +summaryPoint2: Безпечний спосіб співпраці з незнайомцями в Інтернеті. +summaryPoint3: Безпечне місце для фінансування конкретної справи. +--- + +## Що таке DAO? {#what-are-daos} + +DAO — це організація, керована спільнотою блокчейн, що працює над досягненням спільної цілі. + +DAO дає нам змогу працювати з однодумцями по всьому світу, не довіряючи доброзичливому лідеру керувати коштами чи операціями. Немає генерального директора, який міг би витрачати кошти на свої капризи, або фінансового директора, який би міг маніпулювати бухгалтерськими книгами. Натомість правила, засновані на блокчейні, записані в код, визначають, як працює організація та як витрачаються кошти. + +Вони мають вбудовані скарбниці, до яких ніхто не має права доступу без схвалення групи. Рішення приймаються на основі пропозицій і голосування, щоб кожен в організації мав право голосу, і все відбувалося прозоро всередині мережі. + +## Для чого нам потрібні DAO? {#why-dao} + +Заснування організації з кимось, що передбачає фінансування та гроші, вимагає великої довіри до людей, з якими ви працюєте. Однак важко довіряти тим, з ким мали справу тільки в Інтернеті. Працюючи з DAO, вам не потрібно довіряти іншим учасникам — тільки кодові DAO, який є повністю прозорим і може бути перевірений будь-ким. + +Це дає так багато нових можливостей для всесвітньої співпраці та координації. + +### Порівняння {#dao-comparison} + +| DAO | Традиційна організація | +| ------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | +| Зазвичай повністю демократична, без ієрархії. | Зазвичай ієрархічна. | +| Для внесення змін необхідне голосування учасників. | Залежно від структури, зміни можуть вимагатись однією стороною або висуватися на голосування. | +| Після підрахунку голосів результат впроваджується автоматично без довіреного посередника. | Якщо дозволено провести голосування, голоси підраховуються за допомогою внутрішніх процедур, а результат обробляється вручну. | +| Запропоновані послуги обробляються автоматично децентралізованим способом (наприклад, розподіл благодійних коштів). | Необхідне втручання людини або централізовано керована автоматизація; існує можливість махінацій. | +| Уся діяльність є прозорою та повністю публічною. | Зазвичай діяльність конфіденційна, з обмеженим доступом. | + +### Приклади DAO {#dao-examples} + +Щоб було зрозуміліше, наведемо кілька прикладів використання DAO. + +- Благодійність: ви можете приймати пожертви від будь-кого у світі й голосувати за те, які цілі фінансувати. +- Колективна власність: ви можете придбати фізичні або цифрові активи, а учасники можуть голосувати за те, як їх використовувати. +- Венчурні інвестиції та гранти. Ви можете створити венчурний фонд, який об’єднує інвестиційний капітал і голосує за участь у венчурних проєктах. Пізніше виплачені гроші можна заново розподілити між учасниками DAO. + +## Як працює DAO? {#how-daos-work} + +Основою DAO є її смартконтракт, який визначає правила організації та зберігає скарбницю групи. Щойно контракт буде запущено на Ethereum, ніхто не зможе змінити правила без голосування. Якщо хтось спробує зробити дію, на яку не поширюються правила та логіка коду, він зазнає невдачі. Оскільки скарбниця також визначається смартконтрактом, ніхто не зможе витрачати гроші без схвалення групи. Це означає, що DAO не потребує центрального органу влади. Натомість група приймає рішення колективно, а виплати автоматично авторизуються, коли відбувається голосування. + +Це можливо, тому що після запуску на Ethereum смартконтракти отримують захист від злому. Ви не можете непомітно відредагувати код (правила DAO), тому що все перебуває в публічному доступі. + + + Докладніше про розумні контракти + + +## Ethereum і DAO {#ethereum-and-daos} + +Ethereum є ідеальним фундаментом для DAO з таких причин: + +- Власний консенсус Ethereum розповсюджується та визнаний достатньо, щоб організації могли довіряти цій мережі. +- Код розумного контракту неможливо змінити після його запуску. Це не під силу навіть його власникам. Це дає змогу DAO працювати згідно з початковими запрограмованими правилами. +- Розумні контракти можуть надсилати й отримувати кошти. Без цього вам знадобиться довірений посередник для керування коштами групи. +- Спільнота Ethereum виявилася більш схильною до співпраці, ніж конкуренції, що дає змогу швидко розвивати передові практики та системи підтримки. + +## Управління DAO {#dao-governance} + +Управління DAO має багато аспектів, як-от принципи, за якими працюють голосування та пропозиції. + +### Делегування {#governance-delegation} + +Делегування схоже на DAO-версію представницької демократії. Власники токенів делегують голоси користувачам, які призначають себе й зобов’язуються керувати протоколом і бути в курсі. + +#### Відомий приклад {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking) — власники ENS можуть делегувати свої голоси зацікавленим членам спільноти, щоб представляти їх. + +### Автоматичне керування транзакціями {#governance-example} + +У багатьох DAO транзакції виконуватимуться автоматично, якщо кворум членів проголосує «за». + +#### Відомий приклад {#governance-example} + +[Nouns](https://nouns.wtf) – У Nouns DAO транзакція виконується автоматично, якщо досягнуто кворуму голосів і більшість голосів за неї, доки засновники не наклали вето. + +### Управління за мультипідписом {#governance-example} + +Хоча DAO можуть мати тисячі членів з правом голосу, кошти можуть зберігатися в гаманці, спільному для 5–20 активних членів спільноти. Цим членам довіряють, і зазвичай їхні дані розміщують у відкритому доступі (публічні особи, відомі спільноті). Після голосування мультипідписані виконують волю спільноти. + +## Закони DAO {#dao-laws} + +У 1977 році в штаті Вайомінг винайшли товариство з обмеженою відповідальністю (LLC), яке захищає підприємців і обмежує їх відповідальність. Зовсім недавно вони запровадили закон про DAO, який встановлює правовий статус для DAO. Зараз у Вайомінгу, Вермонті та на Віргінських островах у тій чи іншій формі діють закони DAO. + +### Відомий приклад {#law-example} + +[CityDAO](https://citydao.io) – CityDAO використовував закон штату Вайомінг DAO, щоб купити 40 акрів землі поблизу національного парку Єллоустоун. + +## Членство в DAO {#dao-membership} + +Існують різні моделі членства в DAO. Членство може визначати, як працює голосування та інші ключові частини DAO. + +### Членство на основі токенів {#token-based-membership} + +Зазвичай повністю без дозволу, залежно від використовуваного токена. Здебільшого цими токенами керування можна вільно торгувати на децентралізованій біржі. Інші потрібно заробити за допомогою забезпечення ліквідності або інших «доказів роботи». У будь-якому разі просте володіння токеном дає доступ до голосування. + +_Зазвичай використовується для керування широкими децентралізованими протоколами та/або власне токенами._ + +#### Відомий приклад {#token-example} + +[MakerDAO](https://makerdao.com) – Токен MakerDAO MKR широко доступний на децентралізованих біржах, і будь-хто може придбати право голосу щодо майбутніх протоколів Maker. + +### Членство на основі частки {#share-based-membership} + +DAO з членством на основі частки більш орієнтовані на надання дозволів, але все одно досить відкриті. Будь-який потенційний учасник може подати пропозицію приєднатися до DAO, зазвичай пропонуючи данину певної вартості у вигляді токенів або роботи. Частки надають право безпосереднього голосування та власності. Учасники можуть вийти в будь-який час зі своєю пропорційною часткою скарбниці. + +_Зазичай використовується для більш тісних, орієнтованих на людину організацій, як-от благодійні установи, робочі колективи й інвестиційні клуби. Можливе також керування протоколами й токенами._ + +#### Відомий приклад {#share-example} + +[MolochDAO](http://molochdao.com/). MolochDAO зосереджується на фінансуванні проєктів Ethereum. Вони вимагають пропозиції про членство, щоб група могла оцінити, чи маєте ви необхідні знання та капітал для прийняття обґрунтованих рішень щодо потенційних одержувачів грантів. Неможливо просто придбати доступ до DAO на відкритому ринку. + +### Членство на основі репутації {#reputation-based-membership} + +Репутація є доказом участі й надає право голосу в DAO. На відміну від членства на основі токенів або частки, DAO з членством на основі репутації не передають учасникам право власності. Репутацію не можна купити, передати чи делегувати. Учасники DAO повинні заробляти репутацію завдяки участі. Голосування в межах ланцюга не потребує дозволів, і потенційні учасники можуть вільно подавати пропозиції приєднатися до DAO та вимагати отримання репутації й токенів як винагороду в обмін на свій внесок. + +_Зазвичай використовується для децентралізованої розробки й керування протоколами й децентралізованими програмами, але також добре підходить для різноманітних організацій, як-от благодійні організації, трудові колективи, інвестиційні клуби тощо._ + +#### Відомий приклад {#reputation-example} + +[DXdao](https://DXdao.eth.link). DXdao — це глобальний незалежний колектив спеціалістів, що з 2019 року займаються створенням децентралізованих протоколів і програм, а також керуванням ними. Вони використовують метод на основі репутації та голографічний консенсус для координування фондів і керування ними, а отже, ніхто не може отримати вплив на їхнє майбутнє за гроші. + +## Приєднання або запуск DAO {#join-start-a-dao} + +### Приєднатися до DAO {#join-a-dao} + +- [DAO спільноти Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [Список DAO від DAOHaus](https://app.daohaus.club/explore) +- [Список DAO Tally.xyz](https://www.tally.xyz) + +### Запуск DAO {#start-a-dao} + +- [Виклик DAO з DAOHaus](https://app.daohaus.club/summon) +- [Запустіть Governor DAO з Tally](https://www.tally.xyz/add-a-dao) +- [Створення DAO на основі Aragon](https://aragon.org/product) +- [Запуск колонії](https://colony.io/) +- [Створіть DAO з голографічним консенсусом DAOstack](https://alchemy.daostack.io/daos/create) + +## Додаткові ресурси {#further-reading} + +### Статті про DAO {#dao-articles} + +- [Що таке DAO?](https://aragon.org/dao) — [Aragon](https://aragon.org/) +- [Довідник DAO](https://daohandbook.xyz) +- [Будинок DAO](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) — [Metagame](https://wiki.metagame.wtf/) +- [Що таке DAO та для чого вони?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) — [DAOhaus](https://daohaus.club/) +- [Як запустити цифрову спільноту на основі DAO](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) — [DAOhaus](https://daohaus.club/) +- [Що таке DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) — [Coinmarketcap](https://coinmarketcap.com) +- [Що таке голографічний консенсус?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) — [DAOstack](https://daostack.io/) +- [DAO — не корпорація: де має значення децентралізація в автономних організаціях, Віталік](https://vitalik.ca/general/2022/09/20/daos.html) +- [DAO, DAC, DA тощо: неповний посібник з термінології](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [блог Ethereum](https://blog.ethereum.org) + +### Відеоматеріали {#videos} + +- [Що таке DAO в криптовалюті?](https://youtu.be/KHm0uUPqmVE) +- [Чи може DAO побудувати місто?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/public/content/translations/uk/decentralized-identity/index.md b/public/content/translations/uk/decentralized-identity/index.md new file mode 100644 index 00000000000..e13143e65c5 --- /dev/null +++ b/public/content/translations/uk/decentralized-identity/index.md @@ -0,0 +1,185 @@ +--- +title: Децентралізована ідентичність +description: Що таке децентралізована ідентифікація і чому вона важлива? +lang: uk +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: /eth-gif-cat.png +summaryPoint1: Традиційні системи ідентифікації централізовано видають, підтримують і контролюють ваші ідентифікатори. +summaryPoint2: Децентралізована ідентифікація усуває залежність від централізованих третіх сторін. +summaryPoint3: Завдяки криптовалюті користувачі знову мають інструменти для видачі, зберігання та контролю власних ідентифікаторів і атестацій. +--- + +Сьогодні ідентифікація лежить в основі майже всіх аспектів вашого життя. Користування онлайн-сервісами, відкриття банківського рахунку, голосування на виборах, купівля нерухомості, працевлаштування — усе це потребує підтвердження особи. + +Однак традиційні системи управління ідентифікацією вже давно покладаються на централізованих посередників, які видають, зберігають і контролюють ваші ідентифікатори та [атестації](#what-are-attestations). Це означає, що ви не можете контролювати інформацію, пов'язану з вашою особою, або вирішувати, хто має доступ до інформації, що ідентифікує особу (PII), і в якому обсязі ці особи мають доступ. + +Для розв’язання цих проблем у нас є децентралізовані системи ідентифікації, побудовані на публічних блокчейнах, як-от Ethereum. Децентралізована ідентифікація дозволяє особам управляти інформацією, пов'язаною з їхньою ідентифікацією. Завдяки децентралізованим рішенням ідентифікації _ви_ можете створювати ідентифікатори, вимагати та зберігати свої атестації, не покладаючись на центральні органи, як-от постачальники послуг або уряди. + +## Що таке ідентичність? {#what-is-identity} + +Ідентичність — це особисте відчуття себе, що визначається унікальними характеристиками. Ідентичність означає бути _особою_, тобто окремою людською сутністю. Ідентичність може також стосуватися інших нелюдських суб'єктів, як-от організація або орган влади. + +## Що таке ідентифікатори? {#what-are-identifiers} + +Ідентифікатор — це частина інформації, яка діє як покажчик на певну особу або особи. До загальних ідентифікаторів відносяться: + +- Ім'я +- Номер соціального страхування / податковий номер +- Номер мобільного телефону +- Дата й місце народження +- Цифрові ідентифікаційні дані, як-от адреси електронної пошти, імена користувачів, аватари + +Ці традиційні приклади ідентифікаторів видаються, зберігаються й контролюються центральними органами. Вам потрібен дозвіл від уряду вашої країни, щоб змінити своє ім’я, або від платформи соціальних мереж, щоб змінити свій псевдонім. + +## Що таке атестації? {#what-are-attestations} + +Атестація — це заява, яку зроблено одним суб’єктом відносно іншого суб’єкта. Якщо ви проживаєте в Сполучених Штатах, посвідчення водія, видане вам Департаментом автотранспорту (одним суб’єктом), засвідчує, що ви (інший суб'єкт) маєте право керувати автомобілем на законних підставах. + +Атестації відрізняються від ідентифікаторів. Атестація _містить_ ідентифікатори для посилання на певну ідентичність і робить заяву про атрибут, пов'язаний з цією ідентичністю. Отже, ваше посвідчення водія має ідентифікаційні дані (ПІБ, дата народження, адреса), а також є атестацією вашого законного права на керування транспортним засобом. + +### Що таке децентралізовані ідентифікатори? {#what-are-decentralized-identifiers} + +Традиційні ідентифікатори, як-от ваше юридичне ім’я або адреса електронної пошти, покладаються на третіх осіб — уряди та провайдерів електронної пошти. Децентралізовані ідентифікатори (DID) відрізняються від традиційних — вони не видаються, не управляються і не контролюються жодним центральним органом. + +Децентралізовані ідентифікатори видаються, зберігаються й контролюються фізичними особами. Прикладом децентралізованого ідентифікатора є обліковий запис [Ethereum](/developers/docs/accounts/). Ви можете створювати скільки завгодно облікових записів без дозволу будь-кого й без необхідності зберігати їх у центральному реєстрі. + +Децентралізовані ідентифікатори зберігаються в розподілених реєстрах (блокчейнах) або однорангових мережах. Це робить DID [глобально унікальними, вирішуваними з високою доступністю та криптографічно перевірюваними](https://w3c-ccg.github.io/did-primer/). Децентралізований ідентифікатор може бути пов’язаний із різними суб'єктами, зокрема людьми, організаціями або державними установами. + +## Що уможливлює децентралізовані ідентифікатори? {#what-makes-decentralized-identifiers-possible} + +### 1. Інфраструктура відкритих ключів (PKI) {#public-key-infrastructure} + +Інфраструктура відкритих ключів (ІВК) — це захід інформаційної безпеки, який генерує [відкритий ключ](/glossary/#public-key) і [приватний ключ](/glossary/#private-key) для суб’єкта. Криптографія з відкритим ключем використовується в мережах блокчейн для автентифікації користувачів і підтвердження права власності на цифрові активи. + +Деякі децентралізовані ідентифікатори, як-от обліковий запис Ethereum, мають публічні та приватні ключі. Відкритий ключ ідентифікує контролера облікового запису, а закриті ключі дають змогу підписувати й розшифровувати повідомлення для цього облікового запису. PKI надає докази, необхідні для автентифікації суб’єктів і запобігання видавання себе за іншу особу й використання фальшивих ідентифікаційних даних, використовуючи [криптографічні підписи](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 емітента в Ethereum. По суті, блокчейн Ethereum діє як глобальний каталог, який дає змогу перевіряти DID, пов’язані з певними суб'єктами. + +Завдяки децентралізованим ідентифікаторам атестації є самоконтрольованими й перевірюваними. Навіть якщо емітента більше не існує, тримач завжди має доказ походження й дійсності атестації. + +Децентралізовані ідентифікатори також мають вирішальне значення для захисту конфіденційності особистої інформації шляхом децентралізованої ідентифікації. Наприклад, якщо фізична особа подає підтвердження атестації (водійське посвідчення), стороні, що перевіряє, не потрібно перевіряти правдивість інформації, що міститься у підтвердженні. Натомість верифікатору потрібні лише криптографічні гарантії автентичності атестації та ідентифікація організації, яка його видала, щоб визначити, чи є доказ дійсним. + +## Види атестацій у децентралізованій ідентичності {#types-of-attestations-in-decentralized-identity} + +Спосіб зберігання й отримання інформації про атестацію в екосистемі ідентифікації на основі Ethereum відрізняється від традиційного управління ідентифікацією. Нижче наведено огляд різних підходів до видачі, зберігання та перевірки посвідчень у децентралізованих системах ідентифікації: + +### Атестації поза мережею {#off-chain-attestations} + +Однією з проблем, пов’язаних зі зберіганням атестацій у ланцюжку, є те, що вони можуть містити інформацію, яку люди хочуть зберегти конфіденційною. Публічний характер блокчейну Ethereum робить непривабливим зберігання таких атестацій. + +Рішення полягає у видачі атестацій, які зберігаються користувачами поза мережею в цифрових гаманцях, але підписані DID емітента, що зберігається в мережі. Ці атестації закодовані як [вебтокени JSON](https://en.wikipedia.org/wiki/JSON_Web_Token) і містять цифровий підпис емітента, що дає змогу легко перевірити заяви поза мережею. + +Ось гіпотетичний сценарій для пояснення атестацій поза мережею: + +1. Університет (емітент) створює атестацію (цифровий академічний сертифікат), підписує своїми ключами й видає її Бобу (власнику посвідчення). + +2. Боб подає заявку на роботу й хоче підтвердити роботодавцю свою академічну кваліфікацію, тому він ділиться атестацією зі свого мобільного гаманця. Потім компанія (верифікатор) може підтвердити дійсність атестації, перевіривши DID емітента (тобто його відкритий ключ в Ethereum). + +### Атестації поза мережею з постійним доступом {#offchain-attestations-with-persistent-access} + +Відповідно до цієї домовленості атестації перетворюються у файли JSON і зберігаються поза мережею (в ідеалі на платформі [децентралізованого хмарного сховища](/developers/docs/storage/), як-от IPFS або Swarm). Однак [хеш](/glossary/#hash) файлу JSON зберігається в блокчейні й пов’язується з DID через реєстр у блокчейні. Пов’язаний DID може належати або тому, хто видав атестацію, або одержувачу. + +Цей підхід дає атестаціям змогу отримати стійкість на основі блокчейну, водночас зберігаючи інформацію про заявку в зашифрованому вигляді й такою, яку можна перевірити. Це також дає змогу вибіркового розкриття, оскільки власник закритого ключа може розшифрувати інформацію. + +### Атестації в блокчейні {#onchain-attestations} + +Атестації в блокчейні проводяться в [розумних контрактах](/developers/docs/smart-contracts/) у блокчейні Ethereum. Розумний контракт (діючи як реєстр) зіставлятиме атестацію з відповідним децентралізованим ідентифікатором у ланцюжку (відкритим ключем). + +Ось приклад, щоб показати, як на практиці можуть працювати атестації в блокчейні: + +1. Компанія (XYZ Corp) планує продати частки власності за допомогою розумного контракту, але хоче мати лише покупців, які пройшли перевірку. + +2. XYZ Corp може доручити компанії провести перевірку репутації для видачі атестацій у мережі Ethereum. Ця атестація засвідчує, що особа пройшла перевірку репутації без розкриття будь-якої особистої інформації. + +3. Розумний контракт на продаж акцій може перевіряти в договорі реєстру особи перевірених покупців, що дає змогу розумному контракту визначати, кому дозволено купувати акції, а кому ні. + +### Токени Soulbound та ідентичність {#soulbound} + +[Токени Soulbound](https://vitalik.ca/general/2022/01/26/soulbound.html) (NFT, що не підлягають передаванню) можна використовувати для збору інформації, унікальної для певного гаманця. Це фактично створює унікальну ідентифікаційну інформацію в ланцюжку, прив’язану до конкретної адреси Ethereum, яка може містити токени, що представляють досягнення (наприклад, завершення певного онлайн-курсу або проходження порогового значення в грі) або участь у спільноті. + +## Переваги децентралізованої ідентичності {#benefits-of-decentralized-identity} + +1. Децентралізована ідентифікація підвищує індивідуальний контроль над ідентифікаційною інформацією. Децентралізовані ідентифікатори й атестації можна перевіряти, не покладаючись на централізовані органи та сторонні служби. + +2. Децентралізовані рішення для ідентифікації забезпечують безперебійний метод перевірки й управління ідентифікацією користувачів, який не вимагає довіри й захищає конфіденційність. + +3. Децентралізована ідентифікація використовує технологію блокчейн, яка створює довіру між різними сторонами й забезпечує криптографічні гарантії для підтвердження дійсності атестацій. + +4. Децентралізована ідентичність дає змогу переносити ідентифікаційні дані. Користувачі зберігають атестати й ідентифікатори в мобільному гаманці та можуть обмінюватися ними з будь-якою стороною за власним вибором. Децентралізовані ідентифікатори й атестації не прив'язані до бази даних організації, що їх видала. + +5. Децентралізована ідентичність повинна добре працювати з новими технологіями нульового знання, які дадуть людям змогу довести, що вони володіють чимось чи зробили щось, не розкриваючи, що це таке. Це може стати потужним способом поєднання довіри й конфіденційності для різних застосунків, як-от голосування. + +6. Децентралізована ідентичність дає механізму протидії атакам Сивілли змогу виявляти випадки, коли одна людина видає себе за іншу, щоб грати або поширювати спам у якійсь системі. + +## Випадки використання децентралізованої ідентифікації {#decentralized-identity-use-cases} + +Децентралізована ідентифікація має багато потенційних варіантів використання: + +### 1. Універсальні логіни {#universal-dapp-logins} + +Децентралізована ідентифікація може допомогти замінити парольні входи на [децентралізовану автентифікацію](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). Постачальники послуг можуть видавати користувачам атестати, які можуть зберігатися в гаманці Ethereum. Прикладом атестації може бути [NFT](/nft/), що надає власнику доступ до онлайн-спільноти. + +Функція [Увійти за допомогою Ethereum](https://login.xyz/) дасть серверам змогу підтвердити обліковий запис користувача Ethereum і отримати необхідне підтвердження з адреси його облікового запису. Це означає, що користувачі можуть отримати доступ до платформ і вебсайтів без необхідності запам'ятовувати довгі паролі й покращує онлайн-досвід для користувачів. + +### 2. Автентифікація KYC {#kyc-authentication} + +Використання багатьох онлайн-сервісів вимагає від осіб надання атестацій і облікових даних, як-от водійське посвідчення або національний паспорт. Але такий підхід є проблематичним, оскільки приватна інформація користувачів може бути скомпрометована, а постачальники послуг не можуть перевірити справжність атестації. + +Децентралізована ідентифікація дає компаніям змогу відмовитися від традиційних процесів [«знай свого клієнта» (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) і автентифікувати ідентифікаційні дані користувачів за допомогою перевірених облікових даних. Це зменшує витрати на управління ідентифікацією та запобігає використанню підроблених документів. + +### 3. Голосування й онлайн-спільноти {#voting-and-online-communities} + +Онлайн-голосування й соціальні мережі — два нових застосування децентралізованої ідентифікації. Схеми онлайн-голосування піддаються маніпуляціям, особливо якщо зловмисники створюють фальшиві імена для голосування. Прохання до осіб надавати атестації в блокчейні може підвищити чесність процесів онлайн-голосування. + +Децентралізована ідентифікація може допомогти створити онлайн-спільноти, вільні від фейкових облікових записів. Наприклад, кожному користувачеві, можливо, доведеться підтверджувати свою особу за допомогою заснованої на блокчейні системи ідентифікації, як-от служба імен Ethereum, що зменшує ймовірність появи ботів. + +### 4. Захист від атак Сивілли {#sybil-protection} + +Атаки Сивілли — це коли окремі люди обманюють систему, змушуючи її думати, що вони є кількома людьми, щоб збільшити свій вплив. [Програми для надання грантів](https://gitcoin.co/grants/), які використовують [квадратичне голосування](https://www.radicalxchange.org/concepts/plural-voting/), уразливі до цих атак Сивілли, оскільки вартість гранту збільшується, коли за нього голосує більше осіб, що стимулює користувачів розподіляти свої внески між багатьма особами. Децентралізовані ідентифікаційні дані допомагають запобігти цьому, зобов’язуючи на кожного учасника довести, що вони справді люди, хоча часто без необхідності розкривати приватну інформацію. + +## Використання децентралізованої ідентифікації {#use-decentralized-identity} + +Існує багато амбітних проєктів, що використовують Ethereum як основу для децентралізованої ідентифікації: + +- **[Служба імен Ethereum (ENS)](https://ens.domains/)** — _децентралізована система імен для мережевих машинозчитуваних ідентифікаторів, як-от адреси гаманців Ethereum, хеші вмісту й метаданих. _ +- **[SpruceID](https://www.spruceid.com/)** — _проєкт децентралізованої ідентифікації, який дає користувачам змогу контролювати цифрову ідентифікацію за допомогою облікових записів Ethereum і профілів ENS замість використання сторонніх служб._ +- **[Служба атестації Ethereum (EAS)](https://attest.sh/)** — _децентралізований реєстр/протокол для створення будь-яких атестацій у ланцюжку та поза ним._ +- **[Proof of Humanity](https://www.proofofhumanity.id)** — _Доказ людства (або PoH) — це соціальна система підтвердження особистості, побудована на Ethereum._ +- **[BrightID](https://www.brightid.org/)** — _децентралізована мережа соціальної ідентифікації з відкритим вихідним кодом, яка прагне реформувати перевірку особистості шляхом створення й аналізу соціального графа._ +- **[Паспорт, що підтверджує особу,](https://proofofpersonhood.com/)** — _децентралізований агрегатор цифрових ідентифікаційних даних._ + +## Довідкові джерела {#further-reading} + +### Статті {#articles} + +- [Випадки використання блокчейну: блокчейн у цифровій ідентифікації](https://consensys.net/blockchain-use-cases/digital-identity/)—_ConsenSys_ +- [Що таке Ethereum ERC725? Самостійне керування ідентифікацією в блокчейні](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Sam Town_ +- [Як блокчейн може розв’язувати проблему цифрової ідентичності](https://time.com/6142810/proof-of-humanity/) — _Ендрю Р. Чоу_ +- [Що таке децентралізована ідентифікація і чому це має вас хвилювати?](https://web3.hashnode.com/what-is-decentralized-identity) — _Еммануель Авосіка_ + +### Відео {#videos} + +- [Децентралізована ідентифікація (бонусна сесія в прямому ефірі)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Чудове пояснювальне відео про децентралізовану ідентифікацію від Андреаса Антонополуса_ +- [Увійдіть за допомогою Ethereum і децентралізованої ідентифікації за допомогою Ceramic, IDX, React і 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _Посібник на YouTube зі створення системи керування ідентифікацією для створення, читання й оновлення профілю користувача профіль за допомогою його гаманця Ethereum від Надер Дебіт_ +- [BrightID – децентралізована ідентифікація в Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _подкаст безкоштовних версій, у якому обговорюється BrightID, децентралізоване рішення ідентифікації для Ethereum_ +- [Інтернет поза ланцюгом: децентралізована ідентифікація та перевірювані повноваження](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — презентація EthDenver 2022 від Евіна Мак-Маллена + +### Спільноти {#communities} + +- [Альянс ERC-725 на GitHub](https://github.com/erc725alliance) — _Прихильники стандарту ERC725 для керування ідентифікацією в блокчейні Ethereum_ +- [Сервер Discord SpruceID](https://discord.com/invite/Sf9tSFzrnt) — _Спільнота для ентузіастів і розробників, які працюють над входом за допомогою Ethereum_ +- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _спільнота розробників, які роблять внесок у створення основи для перевірених даних для програм_ diff --git a/public/content/translations/uk/defi/index.md b/public/content/translations/uk/defi/index.md new file mode 100644 index 00000000000..dd57764c285 --- /dev/null +++ b/public/content/translations/uk/defi/index.md @@ -0,0 +1,352 @@ +--- +title: Децентралізовані фінанси (DeFi) +description: Огляд DeFi на Ethereum +lang: uk +template: use-cases +emoji: ":money_with_wings:" +image: /use-cases/defi.png +alt: Логотип Eth із блоків Lego. +sidebarDepth: 2 +summaryPoint1: Глобальна відкрита альтернатива наявній фінансовій системі. +summaryPoint2: Продукти, що дають змогу позичати, заощаджувати, інвестувати, торгувати тощо. +summaryPoint3: На основі технології з відкритим вихідним кодом, з якою програмувати може кожен. +--- + +DeFi — це глобальна відкрита фінансова система, створена відповідно до потреб епохи інтернету. Це альтернатива жорстко контрольованим, непрозорим традиційним системам із застарілою інфраструктурою та процесами. Вона дає можливість контролювати й бачити ваші гроші. Крім того, вона надає доступ до світових ринків і створює альтернативи місцевій валюті чи банківським рішенням. Кожен, хто має доступ до інтернету, може користуватися фінансовими послугами продуктів DeFi. Вони значною мірою належать власне користувачам, які й займаються їх обслуговуванням. Наразі через програми DeFi уже пройшли десятки мільярдів доларів у криптовалютному еквіваленті, і кількість транзакцій щодня зростає. + +## Що таке DeFi? {#what-is-defi} + +DeFi — це збірне поняття, що охоплює фінансові продукти й послуги, доступні всім, хто може використовувати Ethereum. Тобто всім, у кого є доступ до Інтернету. Завдяки DeFi ринки завжди відкриті й немає централізованого органу влади, який би блокував платежі або відмовляв у доступі. Послуги, які раніше вимагали багато часу та були вразливі до помилок людського фактора, тепер виконуються автоматично та стали безпечнішими, тому що керуються кодом, доступним для огляду й аналізу всіма бажаючими. + +Криптоекономіка процвітає та пропонує інструменти для позики, довгих і коротких пропозицій, вкладання під відсотки тощо. За допомогою своїх знань із криптоекономіки та DeFi аргентинці зуміли уникнути наслідків інфляції. Компанії почали платити своїм працівникам у реальному часі. Дехто навіть брав і повертав позики на мільйони доларів без необхідності підтвердження особи. + + + +## DeFi і традиційні фінанси {#defi-vs-tradfi} + +Щоб якнайкраще осягнути потенціал DeFi, потрібно ознайомитися з актуальними проблемами. + +- Не всі мають можливість відкрити рахунок у банку та користуватися фінансовими послугами. +- Цих людей можуть не взяти на роботу саме через відсутність доступу до фінансових послуг. +- Постачальники фінансових послуг можуть перешкоджати виплаті зарплат. +- Під час використання фінансових послуг можуть збиратись особисті дані. +- Уряди та централізовані установи можуть за бажання закрити ринки. +- Часи торгівлі часто обмежені робочими годинами конкретного часового поясу. +- Грошові перекази можуть тривати кілька днів через внутрішні процеси, які виконуються вручну. +- Фінансові послуги надаються з націнкою, тому що установи-посередники вимагають плату. + +### Порівняння {#defi-comparison} + +| DeFi | Традиційні фінанси | +| ---------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | +| Ви зберігаєте свої гроші. | Ваші гроші зберігають компанії. | +| Ви контролюєте, куди спрямовуються ваші гроші та як вони витрачаються. | Вам залишається сподіватися, що компанії не зловживатимуть вашими грошима, позичаючи їх ненадійним особам тощо. | +| Переказ коштів триває кілька хвилин. | Платежі можуть тривати кілька днів через виконання процесів вручну. | +| Транзакції здійснюються під псевдонімами. | Фінансова діяльність тісно пов’язана з вашою особою. | +| Система DeFi доступна всім. | Для користування фінансовими послугами потрібно подати заявку. | +| Ринки завжди відкриті. | Ринки закриваються, бо працівникам потрібна перерва. | +| Головний принцип — прозорість. Кожен може ознайомитися з даними продукту та перевірити, як працює система. | Діяльність фінансових установ прихована. Ви не можете переглянути їх кредитну історію, записи про доступні активи тощо. | + + + Ознайомитися з програмами DeFi + + +## Усе почалося з Bitcoin… {#bitcoin} + +Bitcoin була першою програмою DeFi з усіх боків. Bitcoin дає змогу по-справжньому володіти активами, контролювати їх і надсилати в будь-який куточок світу. Це можливо завдяки наданню великій кількості людей, які не довіряють одне одному, можливості узгоджувати бухгалтерський облік без довіреного посередника. Bitcoin відкритий для всіх, і ніхто не має повноважень змінювати правила. Правила Bitcoin, як-от рідкісність і відкритість, прописані в технології. Це не схоже на традиційні фінанси, коли уряди можуть друкувати гроші, знецінюючи ваші заощадження, а компанії здатні закривати ринки. + +На цих принципах базується й Ethereum. Як і в Bitcoin, ніхто не може змінити правила, а доступ є для всіх. Але Ethereum також дає змогу запрограмовувати цифрові гроші за допомогою [розумних контрактів](/glossary#smart-contract), тож ви можете вийти за рамки простого зберігання та надсилання активів. + + + +## Програмовані гроші {#programmable-money} + +Звучить дивно, чи не так? Для чого програмувати гроші? Однак це радше стандартна функція для токенів на Ethereum. Будь-хто може запрограмувати логіку в платежі. Так ви отримуєте контроль і надійність Bitcoin у поєднанні з послугами, які надають фінансові установи. Це дасть вам змогу виконувати операції з криптовалютою, недоступні в Bitcoin, як-от надання й отримання позик, планування платежів, інвестування в індексні фонди тощо. + + +
Ознайомтеся з програмами DeFi, якщо ви лише починаєте працювати з Ethereum.
+ + Ознайомитися з програмами DeFi + +
+ +## Які можливості надає DeFi? {#defi-use-cases} + +Існує децентралізована альтернатива для більшості фінансових послуг. Але Ethereum також надає простір для створення абсолютно нових фінансових продуктів. Перелік можливостей постійно зростає. + +- [Надсилання грошей по всьому світу](#send-money) +- [Потокове передавання грошей по всьому світу](#stream-money) +- [Доступ до стабільних валют](#stablecoins) +- [Позика грошей під заставу](#lending) +- [Позика без застави](#flash-loans) +- [Накопичення криптовалюти](#saving) +- [Торгівля токенами](#swaps) +- [Збільшення портфеля](#investing) +- [Фінансування ідей](#crowdfunding) +- [Придбання страхування](#insurance) +- [Керування портфелем](#aggregators) + + + +### Швидке надсилання грошей по всьому світу {#send-money} + +Ethereum створено як блокчейн для надійних і глобальних транзакцій. Як і Bitcoin, Ethereum дає змогу надсилати кошти в будь-яку частину світу так само просто, як листи. Просто введіть [ім’я ENS](/nft/#nft-domains) отримувача (наприклад, bob.eth) або адресу його облікового запису у вашому гаманці, і за декілька хвилин (зазвичай) платіж буде отримано. Щоб надсилати й отримувати перекази, вам потрібен [гаманець](/wallets/). + + + Переглянути децентралізовані платіжні програми + + +#### Потокове передавання грошей по всьому світу... {#stream-money} + +Ethereum можна використовувати для потокового передавання коштів. Це дає змогу виплатити зарплатню за секунду та надати доступ до коштів у будь-який момент. Або орендувати що-небудь за секунду, як-от камеру зберігання або електросамокат. + +А якщо ви не хочете надсилати або передавати [ETH](/eth/) через часту зміну курсу, можете скористатись альтернативною валютою Ethereum — стейблкоїнами («стабільні монети»). + + + +### Доступ до стабільних валют {#stablecoins} + +Нестабільність криптовалют — проблема для багатьох фінансових продуктів і загальних витрат. Спільнота DeFi позбулася цієї проблеми за допомогою стейблкоїнів. Їх вартість прикріплена до іншого активу — зазвичай якої-небудь популярної валюти, як-от долара. + +Вартість монет, зокрема Dai або USDC, залишається в межах кількох центів від вартості долара. Завдяки цьому вони ідеально підходять для виплати зарплатні або роздрібної торгівлі. Багато жителів Латинської Америки використовували стейблкоїни для захисту своїх заощаджень у часи, коли їхні державні валюти були надто нестабільними. + + + Докладніше про стейблкоїни + + + + +### Позики {#lending} + +Позики в децентралізованих постачальників виконуються двома основними способами. + +- В одноранговому форматі (peer-to-peer), коли кошти в позику надає конкретний позикодавець. +- На основі пулу (pool-based), коли позикодавці надсилають кошти (ліквідність) у пул, звідки їх можна брати в борг. + + + Ознайомитися з децентралізованими програмами для позик + + +Існує багато переваг використання децентралізованих позикодавців... + +#### Конфіденційні позики {#borrowing-privacy} + +Сьогодні позики обертаються навколо залучених у цю діяльність осіб. Перш ніж давати кошти в позику, банкам потрібно впевнитися, що ви зможете їх повернути. + +Децентралізована видача позик не вимагає підтвердження особи жодної зі сторін. Натомість позичальник має внести заставу, яку позикодавець автоматично отримає, якщо борг не буде погашено. Деякі позикодавці навіть приймають NFT в ролі застави. NFT — це документи, прив’язані до унікальних активів, як-от картин. [Докладніше про NFT](/nft/) + +Це дає змогу позичати кошти без чеків і надання особистої інформації. + +#### Доступ до глобальних коштів {#access-global-funds} + +За використання послуг децентралізованих позикодавців ви отримуєте доступ до коштів з усього світу, а не лише тих, що зберігаються у вибраному вами банку або установі. Завдяки цьому позики стають доступніші, а процентні ставки — вигідніші. + +#### Оптимізація податків {#tax-efficiencies} + +Позики дають доступ до потрібних коштів без потреби в продажі власних монет ETH (оподатковувана дія). Натомість можна використовувати ETH як заставу для позики в стейблкоїнах. Так ви отримаєте необхідний потік коштів і не витратите ETH. Стейблкоїни — це токени, які набагато краще підходять для обміну в готівку, оскільки їх вартість не коливається так сильно, як в ETH. [Докладніше про стейблкоїни](#stablecoins) + +#### Миттєві позики {#flash-loans} + +Миттєві позики — це більш експериментальний спосіб децентралізованого видавання позик, який дає змогу взяти позику без застави та надання особистої інформації. + +Сьогодні вони не широко доступні для нетехнічних спеціалістів, але дають зрозуміти, які можливості можуть відкритися в майбутньому. + +Ідея в тому, що позика береться та виплачується в рамках тієї самої транзакції. Якщо позику неможливо виплатити, транзакція скасовується, ніби нічого й не сталося. + +Часто використовувані кошти зберігаються в пулах ліквідності (великі пули з коштами, які використовуються для позик). Якщо в цей момент вони не використовуються, з’являється можливість для іншої особи позичити ці кошти, провести з ними ділові операції та повернути всю суму буквально одночасно з отриманням позики. + +Щоб транзакції проходили успішно, потрібно докласти чимало зусиль на програмування логіки. Простий приклад: хтось бере миттєву позику, щоб позичити якнайбільшу кількість активу за однією ціною та продати його на іншій біржі, де ціна вища. + +Тобто в межах однієї транзакції відбуваються такі операції: + +- Ви позичаєте кількість Х $asset за ціною 1 $ на біржі A. +- Ви продаєте кількість Х $asset на біржі B за ціною 1,1 $. +- Ви повертаєте позику біржі A. +- Ви залишаєте собі прибуток, оплативши з нього комісію за транзакцію. + +Якщо на біржі B раптово впаде пропозиція і користувач не зможе придбати достатньо для виплати початкової позики, транзакція просто скасується. + +Щоб виконати наведений процес у світі традиційних фінансів, вам знадобиться величезна сума грошей. Подібні стратегії заробітку доступні лише заможним людям. Миттєві позики — це приклад того, як у майбутньому наявність коштів не буде обов’язковою умовою для заробітку. + +[Докладніше про миттєві позики](https://aave.com/flash-loans/) + + + +### Почніть заощаджувати в криптовалюті {#saving} + +#### Вкладення {#lending} + +Ви можете отримувати відсотки від вашої криптовалюти, вкладаючи її та спостерігаючи за зростанням ваших коштів у реальному часі. Навіть зараз відсоткові ставки набагато вищі, ніж ви можете отримати в місцевому банку (якщо вам ще пощастило мати доступ до його послуг). Ось приклад: + +- Ви вкладаєте свої 100 Dai ([стейблкоїни](/stablecoins/)), наприклад, у продукт Aave. +- Ви отримуєте 100 Aave Dai (aDai) — це токен, що відповідає вашим вкладеним монетам Dai. +- aDai зростатиме залежно від відсоткових ставок, і ви зможете побачити підвищення балансу у вашому гаманці. Залежно від річної відсоткової ставки на балансі вашого гаманця за декілька днів або навіть годин уже буде 100,1234 aDai! +- У будь-який момент можна вивести суму звичайних монет Dai, що дорівнює балансу aDai. + + + Ознайомитися з децентралізованими програмами для вкладення + + +#### Безпрограшні лотереї {#no-loss-lotteries} + +Безпрограшні лотереї, як-от PoolTogether, — цікавий та інноваційний спосіб заощадження. + +- Ви купуєте 100 лотерейних білетів за 100 токенів Dai. +- Ви отримуєте 100 plDai, які відповідають вашим 100 білетам. +- Якщо один із ваших білетів стане виграшним, до вашого балансу plDai додасться сума призового фонду. +- Якщо ви не виграєте, усі 100 plDai перейдуть у розіграш наступного тижня. +- У будь-який момент можна вивести суму звичайних монет Dai, що дорівнює балансу plDai. + +Призовий фонд формується з усіх відсотків, отриманих від вкладених коштів у білети, як у наведеному вище прикладі вкладення. + + + Спробувати PoolTogether + + + + +### Обмін токенів {#swaps} + +На Ethereum тисячі токенів. Децентралізовані біржі (DEX) дають змогу коли завгодно торгувати різноманітними токенами. Ви ніколи не втрачаєте контроль над своїми активами. Це схоже на обмін валюти під час відвідання іншої країни. Але DeFi, на відміну від звичайних обмінників, ніколи не закривається. Ринки відкриті цілодобово, а технологія створена так, що завжди знайдеться хтось, хто погодиться укласти угоду. + +Наприклад, для участі в описаній вище безпрограшній лотереї PoolTogether необхідно мати токен Dai або USDC. DEX дають змогу обміняти ETH на ці токени й назад, коли вони вам уже не будуть потрібні. + + + Ознайомитися з біржами токенів + + + + +### Просунута торгівля {#trading} + +Для трейдерів, які бажають отримати більше контролю над процесами, існують розширені функції. Доступні лімітні ордери, безстрокові контракти, маржинальна торгівля та багато інших можливостей. Завдяки децентралізованій торгівлі ви отримуєте доступ до глобальної ліквідності. Цей ринок ніколи не закривається, а ви завжди контролюєте свої активи. + +На централізованих біржах активи доводиться вносити перед торгівлею на свій страх і ризик. Внесені активи перебувають у небезпеці, оскільки централізовані біржі часто атакують хакери. + + + Ознайомитися з децентралізованими програмами для торгівлі + + + + +### Збільшення портфеля {#investing} + +На Ethereum присутні продукти для керування фондами, які можуть допомогти збільшити портфель на основі вибраної стратегії. Усе відбувається автоматизовано, відкрито й без потреби в посередництві менеджера, який отримає частку вашого прибутку. + +Хорошим прикладом є [фонд DeFi Pulse Index (DPI)](https://defipulse.com/blog/defi-pulse-index/). Цей фонд автоматично виконує повторне балансування, щоб ваш портфель завжди містив [найкращі токени DeFi відповідно до ринкової капіталізації](https://www.coingecko.com/en/defi). Вам не потрібно заглиблюватися в деталі, а вийти з фонду можна коли завгодно. + + + Ознайомитися з децентралізованими програмами для інвестицій + + + + +### Фінансування ідей {#crowdfunding} + +Ethereum — ідеальна платформа для краудфандингу. + +- Потенційні інвестори можуть з’явитися звідки завгодно: Ethereum і токени доступні будь-кому в будь-кому куточку світу. +- Процес прозорий, тож інвестори можуть перевірити зібрану кількість коштів. Навіть можна відстежити, як вони витрачатимуться в майбутньому. +- Інвестори можуть налаштувати автоматичне повернення коштів, якщо, наприклад, не було дотримано дедлайну або не вдалося зібрати мінімальну суму. + + + Ознайомитися з децентралізованими програмами для краудфандингу + + +#### Квадратичне фінансування {#quadratic-funding} + +Ethereum — це програмне забезпечення з відкритим вихідним кодом, і наразі переважна частина роботи фінансується спільнотою. Це дало поштовх для розвитку нової цікавої моделі інвестування — квадратичного фінансування. Ця модель може покращити спосіб фінансування всіх видів суспільних товарів у майбутньому. + +Квадратичне фінансування гарантує, що найбільше коштів отримують проєкти, які мають найвищий попит. Інакше кажучи, це проєкти, спрямовані на покращення умов життя більшості людей. Ось як це працює: + +1. Існує спеціальний пул для пожертвувань. +2. Починається раунд суспільного фінансування. +3. Люди можуть продемонструвати свою зацікавленість проєктом, пожертвувавши трохи грошей. +4. Після завершення раунду кошти з відповідного пулу розподіляються між проєктами. Проєкти, які мають найвищий попит, отримують найбільше грошей із відповідного пулу. + +Це означає, що проєкт A із 100 пожертвуваннями на суму 1 долар може отримати більше коштів, ніж проєкт B з одним пожертвуванням на суму 10 000 доларів (залежно від розміру відповідного пулу). + +[Докладніше про квадратичне фінансування](https://wtfisqf.com) + + + +### Страхування {#insurance} + +Мета децентралізованого страхування — зробити його дешевшим, прискорити виплати й збільшити прозорість. Завдяки більшій автоматизації страхування стає доступнішим, а виплати — значно швидшими. Дані, що використовуються для прийняття рішення щодо вашого запиту, абсолютно прозорі. + +Продукти Ethereum, як і будь-яке програмне забезпечення, можуть мати помилки й експлойти. Наразі багато страхувальних продуктів зосереджуються на захисті користувачів від втрати коштів. Однак уже з’являються проєкти, які починають страхувати від будь-яких життєвих проблем. Хорошим прикладом є страхування врожаю від Etherisc, що [має на меті захистити дрібних кенійських фермерів від збитків через засуху та повені](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Децентралізоване страхування може забезпечити дешевші послуги для фермерів, які часто потерпають від зависоких цін на страхування в традиційних установах. + + + Ознайомитися з децентралізованими програмами для страхування + + + + +### Агрегатори та менеджери портфелів {#aggregators} + +У середовищі, де всього так багато відбувається, вам потрібен інструмент для відстеження всіх ваших інвестицій, позик та угод. Є безліч продуктів, які дають змогу координувати всю вашу взаємодію з DeFi на єдиній платформі. У цьому вся перевага відкритої архітектури DeFi. Розробники здатні створювати інтерфейси, де можна не тільки переглядати баланси в різних продуктах, а й використовувати їх функції. Це може стати вам у пригоді під час дослідження DeFi. + + + Ознайомитися з децентралізованими програмами для портфелів + + + + +## Як працює DeFi? {#how-defi-works} + +Щоб надавати послуги без посередників, DeFi використовує криптовалюти й розумні контракти. У сучасному фінансовому світі гарантами транзакцій виступають фінансові установи. Через них проходять ваші кошти, що дає цим установам величезну владу. Крім того, мільярди людей в усьому світі навіть не мають доступу до банківських послуг. + +DeFi використовує розумні контракти, які виконують роль фінансових установ під час транзакцій. Розумний контракт — це тип рахунку Ethereum, який дає змогу зберігати кошти, надсилати й повертати їх згідно з певними умовами. Ніхто не зможе змінити розумний контракт після запуску: він завжди працюватиме так, як було запрограмовано. + +Контракт, призначений для виплати допомоги або кишенькових витрат, можна запрограмувати на надсилання коштів із рахунку A на рахунок B щоп’ятниці. І це повторюватиметься, поки на рахунку A залишатиметься потрібна сума. Ніхто не може змінити контракт і додати рахунок C як отримувача, щоб викрасти кошти. + +Контракти публічні, тож кожен може їх оглянути й перевірити. Це означає, що спільнота зможе швидко помітити скомпрометований контракт і відповідно відреагувати. + +Сьогодні варто вірити учасникам Ethereum спільноти, які розуміються на технологіях і вміють читати код. Спільнота з відкритим вихідним кодом допомагає контролювати розробників, але з часом потреба в цьому зменшиться, адже розумні контракти стане легше читати, а для перевірки коду з’являться інші способи. + +## Ethereum і DeFi {#ethereum-and-defi} + +Ethereum являє собою ідеальний фундамент для DeFi із кількох причин. + +- Ethereum і запущені розумні контракти нікому не належать, тому кожен має можливість використовувати DeFi. Це також означає, що ніхто не може змінити правила стосовно вас. +- Усі продукти DeFi насправді працюють на основі Ethereum. Тому багато з них можна легко налаштувати на спільну роботу. Ви можете позичати токени на одній платформі, а обмінювати їх під відсотки вже на іншому ринку та в зовсім іншій програмі. Це схоже на можливість обміну балів лояльності в банку на готівку. +- Токени та криптовалюта вписані в блокчейн Ethereum, а загальний реєстр, що відстежує транзакції та право власності, — одна з унікальних особливостей Ethereum. +- Ethereum допомагає досягти фінансової свободи. Більшість продуктів ніколи не захоплять ваші кошти, адже надають вам повний контроль над ними. + +DeFi можна розділити на рівні: + +1. Блокчейн. Ethereum містить історію транзакцій і стан рахунків. +2. Активи. [ETH](/eth/) та інші токени (валюти). +3. Протоколи. [Смартконтракти](/glossary/#smart-contract) забезпечують надання послуг, як-от децентралізоване вкладення активів. +4. [Програми](/dapps/). Продукти, які використовуються для керування й отримання доступу до протоколів. + +## Розбудова DeFi {#build-defi} + +DeFi — це ініціатива з відкритим вихідним кодом. Усі протоколи та програми DeFi відкриті для перевірок, розгалужень і впровадження інновацій. Завдяки цьому багаторівневому стеку (адже на всіх рівнях використовується той самий базовий блокчейн і активи) протоколи можна поєднувати й зіставляти, створюючи унікальні комбінації з новими можливостями. + + + Докладніше про децентралізовані програми для розбудови + + +## Довідкові ресурси {#futher-reading} + +### Інформація про DeFi {#defi-data} + +- [DeFi Prime](https://defiprime.com/) +- [DeFi Llama](https://defillama.com/) +- [DeFi Rate](https://defirate.com/) + +### Статті про DeFi {#defi-articles} + +- [Посібник із роботи з DeFi для початківців](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) — _Сід Коельо-Прабху, 6 січня 2020 р._ + +### Відео {#videos} + +- [Finematics — навчання децентралізованим фінансам](https://finematics.com/) — _Відео про DeFi_ +- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) — _Основи DeFi: усе, що потрібно знати для початку роботи в цьому незрозумілому середовищі._ +- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) — _Що таке DeFi?_ + +### Спільноти {#communities} + +- [DeFi Llama (сервер на Discord)](https://discord.gg/buPFYXzDDd) +- [DeFi Pulse (сервер на Discord)](https://discord.gg/Gx4TCTk) diff --git a/public/content/translations/uk/desci/index.md b/public/content/translations/uk/desci/index.md new file mode 100644 index 00000000000..d0e2f2a5ff0 --- /dev/null +++ b/public/content/translations/uk/desci/index.md @@ -0,0 +1,139 @@ +--- +title: Децентралізована наука (DeSci) +description: Огляд децентралізованих наук на Ethereum +lang: uk +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Глобальна, відкрита альтернатива сучасній науковій системі. +summaryPoint2: Технологія, яка дає вченим змогу отримувати фінансування, проводити експерименти, ділитися даними, поширювати аналітику тощо. +summaryPoint3: Засновано на русі за відкриту науку. +--- + +## Що таке децентралізована наука (DeSci)? {#what-is-desci} + +Децентралізована наука (DeSci) — це рух, який має на меті побудувати громадську інфраструктуру для фінансування, створення, перевірки, кредитування, зберігання та поширення наукових знань на справедливій і рівноправній основі за допомогою стека Web3. + +DeSci має на меті створити екосистему, у якій учені зацікавлені в тому, щоб відкрито ділитися своїми дослідженнями, й отримують нагороду за свою роботу, і водночас дають кожному змогу легко отримати доступ до досліджень і активно робити свій внесок у них. DeSci відтворює ідею, що наукові знання мають бути доступними всім і що процес наукових досліджень має бути прозорим. DeSci створює більш децентралізовану й розподілену модель наукових досліджень, роблячи її стійкішою до цензури й контролю з боку центральних органів влади. DeSci намагається створити середовище, у якому нові й нетрадиційні ідеї можуть процвітати, децентралізуючи доступ до фінансування, наукових інструментів і каналів зв’язку. + +Децентралізована наука дає змогу використовувати різноманітніші джерела фінансування (від [DAOs](/dao/), [квадратичних пожертвувань](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) до краудфандингу тощо), доступніші дані й методи доступу, а також надання заохочень за відтворюваність. + +### Хуан Бенет — Рух DeSci + + + +## Як DeSci покращує науку {#desci-improves-science} + +Неповний перелік ключових проблем у науці та те, як децентралізована наука може допомогти у розв’язанні цих проблем + +| **Децентралізована наука** | **Традиційна наука** | +| --------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| Розподіл коштів визначається спільнотою з використанням таких механізмів, як квадратичні пожертви або DAO. | Малі, закриті, централізовані групи контролюють розподіл коштів. | +| Ви співпрацюєте з колегами з усього світу в динамічних командах. | Фінансові організації та домашні установи обмежують вашу співпрацю. | +| Рішення про фінансування приймаються онлайн і прозоро. Досліджуються нові механізми фінансування. | Рішення про фінансування приймаються упродовж тривалого часу й мають обмежену прозорість. Існує мало механізмів фінансування. | +| Спільне використання лабораторних послуг стає простішим і прозорішим завдяки використанню примітивів Web3. | Спільне використання лабораторних ресурсів зазвичай є повільним і непрозорим. | +| Для довіри, прозорості й загального доступу може бути розроблено нові моделі публікації, які використовують примітиви Web3. | Ви публікуєте через усталені шляхи, які часто визнаються неефективними, упередженими й експлуататорськими. | +| Ви можете заробити токени й репутацію за рецензування роботи. | Ваша рецензована робота не оплачується, а тільки приносить користь комерційним видавцям. | +| Ви володієте інтелектуальною власністю (ІВ), яку створюєте й поширюєте відповідно до прозорих умов. | Ваша домашня установа володіє створеною вами інтелектуальною власністю (ІВ). Доступ до інтелектуальної власності не є прозорим. | +| Обмін усіма дослідженнями, зокрема даними про невдалі спроби, шляхом розміщення всіх кроків у блокчейні. | Упередженість видання означає, що дослідники схильніші ділитися експериментами, які мають успішні результати. | + +## Ethereum і DeSci {#ethereum-and-desci} + +Децентралізована наукова система вимагає надійної безпеки, мінімальних грошових і транзакційних витрат, а також багатої екосистеми для розробки програм. Ethereum надає все необхідне для створення децентралізованого наукового стека. + +## Варіанти використання DeSci {#use-cases} + +DeSci розробляє набір наукових інструментів для включення академічних кіл Web2 до цифрового світу. Нижче наведено приклади варіантів використання, які Web3 може запропонувати науковій спільноті. + +### Публікація {#publishing} + +Публікація наукової інформації є проблемною, оскільки нею керують видавництва, які покладаються на безоплатну працю вчених, рецензентів і редакторів для створення статей, але потім стягують непомірну плату за публікацію. Спільнота, яка зазвичай опосередковано оплачує роботу й витрати на публікацію через оподаткування, часто не може отримати доступ до тієї самої роботи, повторно не заплативши видавцеві. Загальна сума гонорарів за публікацію окремих наукових робіт часто становить п’ятизначну цифру ($USD), що підриває всю концепцію наукових знань як [суспільного блага](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 має потенціал розірвати цю несправну модель фінансування, експериментуючи з різними моделями стимулювання, розробленими DAO та 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} + +Інтелектуальна власність (ІВ) є великою проблемою в традиційній науці: від того, що вона застрягла в університетах або залишається не використаною в біотехнологічних компаніях, до того, що її важко оцінити. Проте володіння цифровими активами (як-от наукові дані або статті) є тим, що Web3 робить надзвичайно добре, використовуючи[невзаємозамінні токени (NFT)](/nft/). + +Так само як NFT можуть передавати дохід від майбутніх транзакцій початковому творцю, ви можете встановити прозорі ланцюжки атрибуції вартості для винагороди дослідників, управлінських органів (наприклад, DAO) або навіть суб'єктів, чиї дані збираються. + +[Токени IP-NFT](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) можуть також виконувати функцію ключа до децентралізованого сховища даних досліджень, що проводяться, і підключатися до NFT і фінансування [DeFi](/defi/) (від фракціонування до пулів кредитування та оцінки вартості). Це також дає сутностям, що перебувають на ланцюжку, як-от DAO (наприклад, [VitaDAO](https://www.vitadao.com/)), здійснювати дослідження безпосередньо на ланцюжку. Поява непередаваних [токенів soulbound](https://vitalik.ca/general/2022/01/26/soulbound.html) також може відігравати важливу роль у DeSci, даючи людям змогу засвідчувати свій досвід і облікові дані, пов'язані з їхньою адресою Ethereum. + +### Зберігання й архітектура даних і доступ до них {#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 підтримують вищеописані сценарії та створюють основу для дійсно відкритої науки, де дослідники можуть створювати громадські блага без обмежень щодо доступу чи оплати. Рішення публічних даних Web3, як-от IPFS, Arweave і Filecoin, є оптимізованими для децентралізації. Наприклад, dClimate забезпечує універсальний доступ до кліматичних і погодних даних, зокрема даних із метеостанцій і прогностичних кліматичних моделей. + +## Долучитися {#get-involved} + +Досліджуйте проєкти та приєднуйтесь до спільноти DeSci. + +- [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: складіть білок in-silico](https://alphafodl.vercel.app/) +- [dClimate API: запитуйте кліматичні дані, зібрані децентралізованою спільнотою](https://api.dclimate.net/) +- [DeSci Foundation: конструктор інструментів публікації DeSci](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: складіть білок in-silico](https://alphafodl.vercel.app/) +- [Bio.xyz: отримуйте фінансування для свого біотехнологічного проєкту DAO або DeSci](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) +- [Active Inference Lab: лабораторія активного узагальнення](https://www.activeinference.org/) +- [CureDAO: суспільна платформа точної охорони здоров'я](https://docs.curedao.org/) +- [IdeaMarkets: платформа, яка дає змогу забезпечувати децентралізовану наукову довіру](https://ideamarket.io/) +- [DeSci Labs](https://www.desci.com/) + +Ми раді отримати пропозиції щодо нових проєктів, якими можна поповнити наш перелік. Спершу ознайомтеся з [нашою політикою розміщення в переліку](/contributing/adding-desci-projects/)! + +## Довідкові джерела {#further-reading} + +- [DeSci Wiki від Jocelynn Pearl і Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) +- [Посібник із децентралізованої біотехнології від Джоселін Перл для ресурсу Future венчурного фонду a16z](https://future.a16z.com/a-guide-to-decentralized-biotech/) +- [Аргументи на користь DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) +- [Посібник із DeSci](https://future.com/what-is-decentralized-science-aka-desci/) +- [Децентралізовані наукові ресурси](https://www.vincentweisser.com/decentralized-science) +- [Biopharma IP-NFTs від Molecule - Технічний опис](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) +- [Побудова систем, що не потребують довіри, у науці. Автор: Джон Старр](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) +- [Зародження DAO в галузі біотехнологій](https://molecule.to/blog/the-emergence-of-biotech-daos) +- [Пол Колхаас — DeSci: майбутнє децентралізованої науки (подкаст)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) +- [Онтологічний підхід з використанням концепції активного висновку (Active Inference) для децентралізованої науки: від ситуативного надання змістовності до епістемічних спільнот](https://zenodo.org/record/6320575) +- [DeSci: майбутнє досліджень. Самуель Акіношо](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) +- [Фінансування науки (епілог: DeSci і нові криптовалютні примітиви). Автор: Надія](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) +- [Хуан Бенет — DeSci, незалежні лабораторії та широкомасштабна наука про дані](https://www.youtube.com/watch?v=zkXM9H90g_E) +- [Себастьян Бронекатер — Як DeSci може трансформувати біомедичні дослідження й венчурний капітал](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/uk/eips/index.md b/public/content/translations/uk/eips/index.md similarity index 100% rename from src/content/translations/uk/eips/index.md rename to public/content/translations/uk/eips/index.md diff --git a/src/content/translations/uk/energy-consumption/index.md b/public/content/translations/uk/energy-consumption/index.md similarity index 100% rename from src/content/translations/uk/energy-consumption/index.md rename to public/content/translations/uk/energy-consumption/index.md diff --git a/src/content/translations/uk/enterprise/index.md b/public/content/translations/uk/enterprise/index.md similarity index 100% rename from src/content/translations/uk/enterprise/index.md rename to public/content/translations/uk/enterprise/index.md diff --git a/src/content/translations/uk/governance/index.md b/public/content/translations/uk/governance/index.md similarity index 100% rename from src/content/translations/uk/governance/index.md rename to public/content/translations/uk/governance/index.md diff --git a/src/content/translations/uk/guides/how-to-create-an-ethereum-account/index.md b/public/content/translations/uk/guides/how-to-create-an-ethereum-account/index.md similarity index 100% rename from src/content/translations/uk/guides/how-to-create-an-ethereum-account/index.md rename to public/content/translations/uk/guides/how-to-create-an-ethereum-account/index.md diff --git a/src/content/translations/uk/guides/how-to-id-scam-tokens/index.md b/public/content/translations/uk/guides/how-to-id-scam-tokens/index.md similarity index 100% rename from src/content/translations/uk/guides/how-to-id-scam-tokens/index.md rename to public/content/translations/uk/guides/how-to-id-scam-tokens/index.md diff --git a/src/content/translations/uk/guides/how-to-revoke-token-access/index.md b/public/content/translations/uk/guides/how-to-revoke-token-access/index.md similarity index 100% rename from src/content/translations/uk/guides/how-to-revoke-token-access/index.md rename to public/content/translations/uk/guides/how-to-revoke-token-access/index.md diff --git a/src/content/translations/uk/guides/how-to-swap-tokens/index.md b/public/content/translations/uk/guides/how-to-swap-tokens/index.md similarity index 100% rename from src/content/translations/uk/guides/how-to-swap-tokens/index.md rename to public/content/translations/uk/guides/how-to-swap-tokens/index.md diff --git a/src/content/translations/uk/guides/how-to-use-a-bridge/index.md b/public/content/translations/uk/guides/how-to-use-a-bridge/index.md similarity index 100% rename from src/content/translations/uk/guides/how-to-use-a-bridge/index.md rename to public/content/translations/uk/guides/how-to-use-a-bridge/index.md diff --git a/src/content/translations/uk/guides/how-to-use-a-wallet/index.md b/public/content/translations/uk/guides/how-to-use-a-wallet/index.md similarity index 100% rename from src/content/translations/uk/guides/how-to-use-a-wallet/index.md rename to public/content/translations/uk/guides/how-to-use-a-wallet/index.md diff --git a/src/content/translations/uk/guides/index.md b/public/content/translations/uk/guides/index.md similarity index 100% rename from src/content/translations/uk/guides/index.md rename to public/content/translations/uk/guides/index.md diff --git a/public/content/translations/uk/nft/index.md b/public/content/translations/uk/nft/index.md new file mode 100644 index 00000000000..e0eeb392174 --- /dev/null +++ b/public/content/translations/uk/nft/index.md @@ -0,0 +1,94 @@ +--- +title: Невзаємозамінні токени (NFT) +description: Огляд NFT на Ethereum +lang: uk +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: Логотип Eth відображається за допомогою голограми. +summaryPoint1: Спосіб представити що-небудь унікальне як актив на основі Ethereum. +summaryPoint2: Завдяки NFT у творців контенту з’являється більше можливостей, ніж будь-коли раніше. +summaryPoint3: На основі смартконтрактів блокчейну Ethereum. +--- + +## Що таке NFT? {#what-are-nfts} + +NFT — це токени, кожен екземпляр яких є унікальним. Кожен NFT має різні властивості (невзаємозамінні) і є доказово дефіцитним. У цьому полягає відмінність від токенів, як-от ERC-20s, де кожен токен у наборі ідентичний і має однакові властивості («взаємозамінний»). Вам однаково, який саме долар у вас є в гаманці, оскільки всі вони ідентичні й коштують однаково. Однак вам _не однаково_, яким саме NFT ви володієте, оскільки всі вони мають індивідуальні властивості, які відрізняють їх від інших («невзаємозамінні»). + +Унікальність кожного NFT дає змогу токенізувати такі речі, як мистецтво, колекціонування або навіть нерухомість, де один конкретний унікальний NFT представляє якийсь конкретний елемент із цифрового або реального світу. Право власності на актив захищене блокчейном Ethereum — ніхто не може змінити запис про право власності або скопіювати/вставити новий NFT. + + + +## Інтернет активів {#internet-of-assets} + +За допомогою NFT й Ethereum можна позбутися деяких проблем, які існують в Інтернеті сьогодні. Оскільки все стає більш цифровим, з’являється потреба в реплікації властивостей фізичних предметів, як-от рідкісність, унікальність і підтвердження права власності так, щоб це не контролювалося центральною організацією. Наприклад, з NFT, ви можете володіти музикальним файлом mp3, який не є специфічним для конкретної музичної програми однієї компанії, або ви можете володіти соціальними мережами, які ви можете продати або обміняти, але вони не можуть бути довільно відібрані у вас постачальником платформи. + +Розгляньмо, як виглядає Інтернет NFT в порівнянні з Інтернетом, яким сьогодні користується більшість. + +### Порівняння {#nft-comparison} + +| Інтернет NFT | Інтернет сьогодення | +| ----------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | +| Ви володієте своїми активами! Тільки ви можете продати або обміняти їх. | Ви орендуєте актив у якоїсь організації. | +| Токени NFT унікальні в цифровій формі. Двох однакових NFT не існує. | Копію сутності (обʼєкту) часто не можна відрізнити від оригіналу. | +| Право власності на NFT зберігається в блокчейні, щоб будь-хто міг його перевірити. | Записи про авторські права на цифрові об’єкти зберігаються на серверах під контролем установ, яким доводиться вірити на слово. | +| NFT — це смартконтракти на Ethereum. Це означає, що їх можна легко використовувати в інших смартконтрактах і програмах на Ethereum! | Компанії із цифровими об’єктами зазвичай вимагають власної «захищеної» інфраструктури. | +| Творці контенту можуть продавати свої роботи будь-де й отримати доступ до світового ринку. | Творці покладаються на інфраструктуру й аудиторію платформ, якими користуються. Вони часто залежать від умов використання та географічних обмежень. | +| Творці NFT можуть зберігати права власності на власну роботу, а також програмувати роялті (гонорари) безпосередньо в контракті NFT. | Платформи, як-от сервіси потокової музики, отримують більшу частину прибутків від продажу. | + +## Як працюють NFT? {#how-nfts-work} + +Як і будь-який токен, виданий на Ethereum, NFT видаються за допомогою смартконтракту. Смартконтракт відповідає одному з кількох стандартів NFT (зазвичай ERC-721 або ERC-1155), які визначають, які функції має контракт. Контракт може створювати («карбувати») NFT і призначати їх конкретному власнику. Право власності визначається в контракті шляхом пов’язування конкретних NFT з конкретними адресами. NFT має ідентифікатор і зазвичай метадані, пов’язані з ним, які роблять конкретний токен унікальним. + +Коли хтось створює або карбує NFT, вони насправді виконують функцію в смартконтракті, яка призначає конкретний NFT на їхню адресу. Ця інформація зберігається в сховищі контракту, яке є частиною блокчейну. Творець контракту може записувати додаткову логіку в контракт, наприклад, обмежуючи загальну пропозицію (постачання) або визначаючи роялті (гонорари), які будуть виплачуватися творцю щоразу, коли токен передається. + +## Для чого використовуються токени NTF? {#nft-use-cases} + +NFT використовуються для багатьох речей, зокрема: + +- підтвердження вашої участі в заході; +- підтвердження того, що ви завершили курс; +- володіння предметами для ігор; +- цифрове мистецтво; +- токенізація активів у реальному світі; +- підтвердження вашої особи в Інтернеті; +- надання доступу до контенту; +- виписування квитка; +- децентралізовані доменні імена в Інтернеті; +- як застава в децентралізованих фінансах (DeFi). + +Можливо, ви художник, який хоче поділитися своїми роботами за допомогою NFT, не втрачаючи контролю і не жертвуючи своїми прибутками через посередників. Ви можете створити новий контракт і вказати кількість NFT, їхні властивості й посилання на певний витвір мистецтва. Як художник ви можете запрограмувати в смартконтракті гонорари, які будуть вам виплачені (наприклад, перевести 5 % від ціни продажу на контракт власника за кожного переказу NFT). Ви також завжди можете довести, що створили ці NFT, оскільки ви володієте гаманцем, який розмістив контракт. Ваші покупці можуть легко довести, що вони володіють справжнім NFT з вашої колекції, оскільки адреса їхнього гаманця пов'язана з токеном у вашому смартконтракті. Вони можуть використовувати його в екосистемі Ethereum і бути впевненими в його автентичності. + +Або уявіть квиток на спортивний захід. Як організатор заходу може вибрати кількість квитків для продажу, так і творець токена NFT може вирішити, скільки існуватиме його примірників. Іноді це точні примірники, як-от 5000 звичайних квитків для входу. Іноді карбуються кілька схожих, але дещо відмінних, як-от квитки з призначеним місцем. Їх можна купити й продати однорангово без оплати за послуги продавцям квитків, і покупець завжди має гарантію справжності квитка, перевіряючи адресу контракту. + +На ethereum.org NFT використовуються для демонстрації того, що люди зробили свій внесок у наш репозиторій Github або відвідували дзвінки, і у нас навіть є власне доменне ім’я NFT. Якщо ви долучилися до ethereum.org, можете отримати NFT протоколу POAP. Деякі криптозустрічі використовували POAP як квитки. [Докладніше про участь](/contributing/#poap). + +![Протокол POAP ethereum.org](./poap.png) + +Цей сайт має альтернативне доменне ім’я на основі NFT: **ethereum.eth**. Наша адреса `.org` центрально керується постачальником системи доменних імен (DNS), тоді як адресу ethereum`.eth` зареєстровано на платформі Ethereum за допомогою служби імен Ethereum (ENS). Володіємо й керуємо ним ми. [Переглянути наші записи ENS](https://app.ens.domains/name/ethereum.eth) + +[Докладніше про ENS](https://app.ens.domains) + + + +### Безпека NFT {#nft-security} + +Безпека Ethereum ґрунтується на доказі частки. Система покликана економічно дестимулювати зловмисні дії, роблячи Ethereum стійкою до підробок. Завдяки цьому існують NFT. Щойно блок, що містить вашу NFT-транзакцію, стане фіналізованим, його зміна коштуватиме зловмиснику мільйони ETH. Кожен, хто працює з програмним забезпеченням Ethereum, зможе негайно виявити нечесне втручання в NFT, а зловмисника буде економічно покарано й видалено. + +Проблеми безпеки під час використання NFT найчастіше пов’язані з фішинговими шахрайствами, уразливістю смартконтрактів або помилками користувачів (наприклад, ненавмисне розкриття приватних ключів), що робить належну безпеку гаманців критично важливою для власників NFT. + + + Більше про безпеку + + +## Довідкові джерела {#further-reading} + +- [Посібник із NFT для початківців](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) — _Лінда Се, січень 2020 року_ +- [Трекер EtherscanNFT](https://etherscan.io/nft-top-contracts) +- [Стандарт токену ERC-721](/developers/docs/standards/tokens/erc-721/) +- [Стандарт токену ERC-1155](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/public/content/translations/uk/refi/index.md b/public/content/translations/uk/refi/index.md new file mode 100644 index 00000000000..41ccd4a6966 --- /dev/null +++ b/public/content/translations/uk/refi/index.md @@ -0,0 +1,79 @@ +--- +title: Регенеративні фінанси (ReFi) +description: Огляд ReFi і його поточних варіантів використання. +lang: uk +template: use-cases +emoji: ":recycle:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: Альтернативна економічна система, побудована на регенеративних принципах +summaryPoint2: Спроба використати Ethereum для вирішення глобальних координаційних криз, як-от зміна клімату +summaryPoint3: Інструмент для радикального масштабування екологічно вигідних активів, як-от перевірені вуглецеві кредити +--- + +## Що таке ReFi? {#what-is-refi} + +**Регенеративне фінансування (ReFi)** — це набір інструментів та ідей, побудованих поверх блокчейнів, які спрямовані на створення економік, які є регенеративними, а не екстрактивними або експлуататорними. Зрештою, екстрактивні системи виснажують наявні ресурси й падають; без регенеративних механізмів їм не вистачає стійкості. ReFi працює на припущенні, що створення грошової вартості необхідно відокремити від нестійкого видобутку ресурсів з нашої планети й громад. + +Замість цього ReFi прагне вирішити екологічні, комунальні або соціальні проблеми шляхом створення регенеративних циклів. Ці системи створюють цінність для учасників, одночасно користуючись екосистемами та громадами. + +Однією з основ ReFi є концепція регенеративної економіки, започаткована Джоном Фуллертоном із [Capital Institute](https://capitalinstitute.org). Він запропонував вісім взаємопов’язаних принципів, які лежать в основі здоров’я системи: + +![Вісім взаємопов’язаних принципів](./refi-regenerative-economy-diagram.png) + +Проєкти ReFi реалізують ці принципи, використовуючи [смартконтракти](/developers/docs/smart-contracts/) та [децентралізовані фінанси (DeFi)](/defi/) у формі програм для стимулювання регенеративної поведінки, як-от відновлення деградованих екосистем, і полегшення масштабної співпраці з таких глобальних питань, як зміна клімату й утрата біорізноманіття. + +ReFi також перетинається з [децентралізованою наукою (DeSci)](/desci/) — рухом, який використовує Ethereum як платформу для фінансування, створення, огляду, кредитування, зберігання та поширення наукових знань. Інструменти DeSci можуть стати корисними для розробки стандартів і практик, що піддаються перевірці, для впровадження та моніторингу регенеративної діяльності, як-от посадка дерев, видалення пластику з океану або відновлення деградованої екосистеми. + +## Токенізація вуглецевих кредитів {#tokenization-of-carbon-credits} + +**[Добровільний ринок вуглецю (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** — це механізм фінансування проєктів, які чинять перевірений позитивний вплив на викиди вуглецю, зменшують поточні викиди або видаляють парникові гази, вже випущені з атмосфери. Ці проєкти отримують актив під назвою «вуглецеві кредити» після їх перевірки, які вони можуть продати приватним особам і організаціям, які хочуть підтримати заходи з протидії зміни клімату. + +На додаток до VCM, існують також кілька уповноважених урядом ринків вуглецю («ринки відповідності»), які мають на меті встановити ціну вуглецю за допомогою законів або нормативних актів у межах певної юрисдикції (наприклад, країни або регіону), контролюючи постачання дозволів для розподілу. Ринки відповідності стимулюють забруднювачів у межах своєї юрисдикції скорочувати викиди, але вони не здатні видаляти парникові гази, які вже були випущені. + +Попри свій розвиток протягом останніх десятиліть, VCM продовжує страждати від низки проблем: + +1. Сильно фрагментована ліквідність +2. Непрозорі механізми транзакцій +3. Високі комісії +4. Дуже повільна швидкість торгівлі +5. Відсутність масштабованості + +Перехід VCM на новий **цифровий ринок вуглецю (DCM)** на основі блокчейну може бути можливістю оновити чинну технологію для перевірки, реалізації та споживання вуглецевих кредитів. Блокчейни дають змогу публічно перевіряти дані, уможливлюють доступ для широкого кола користувачів і більше ліквідності. + +Проєкти ReFi використовують технологію блокчейн, щоб полегшити багато проблем традиційного ринку: + +- **Ліквідність зосереджена в невеликій кількості пулів ліквідності**, якими може вільно торгувати будь-хто. Великі організації, а також окремі користувачі можуть використовувати ці пули без ручного пошуку продавців/покупців, плати за участь або попередньої реєстрації. +- **Усі транзакції реєструються на публічних блокчейнах**. Шлях, який кожен вуглецевий кредит приймає через торговельну активність, простежується назавжди, щойно він доступний у DCM. +- **Швидкість транзакцій майже миттєва**. Процес забезпечення великої кількості вуглецевих кредитів через застарілі ринки може тривати кілька днів або тижнів, водночас у DCM це може бути досягнуто за кілька секунд. +- **Торгова активність відбувається без посередників**, які стягують високі збори. Цифрові вуглецеві кредити являють собою [поліпшення витрат на 62 % порівняно з еквівалентними традиційними кредитами](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne), згідно з даними однієї аналітичної фірми. +- **DCM масштабується** і може задовольнити вимоги як приватних осіб, так і транснаціональних корпорацій. + +### Ключові компоненти DCM {#key-components-dcm} + +Чотири основні компоненти складають нинішній ландшафт DCM: + +1. Реєстри, як-от [Verra](https://verra.org/project/vcs-program/registry-system/) і [>Gold Standard](https://www.goldstandard.org/) гарантують надійність проєктів, що створюють вуглецеві кредити. Вони також керують базами даних, у яких цифрові кредити вуглецю зʼявляються і можуть бути передані або використані (звільнені). + +Існує нова хвиля інноваційних проєктів, побудованих на блокчейнах, які намагаються посунути позиції лідерів цієї галузі. + +2. Вуглецеві мости, так звані токенайзери, забезпечують технологію представлення або передавання вуглецевих кредитів із традиційних реєстрів до DCM. Відомими прикладами є [Toucan Protocol](https://toucan.earth/), [C3](https://c3.app/) і [Moss.Earth](https://moss.earth/). +3. Інтегровані послуги пропонують кредити на уникнення викидів вуглецю та/або видалення викидів кінцевим користувачам, щоб вони могли претендувати на екологічну користь кредиту й поділитися з усім світом своєю підтримкою заходів із боротьби зі зміною клімату. + +Деякі, як-от [Klima Infinity](https://www.klimadao.finance/infinity) і [Senken](https://senken.io/), пропонують широкий спектр проєктів, розроблених третіми особами й виданих за встановленими стандартами, як-от Verra; інші, наприклад [Nori](https://nori.com/), пропонують лише конкретні проєкти, розроблені під свій власний вуглецевий кредитний стандарт, який вони видають і для якого вони мають свій власний спеціалізований ринок. + +4. Базові рейки й інфраструктура, які сприяють розширенню впливу й ефективності всього ланцюжка постачання вуглецевого ринку. [KlimaDAO](http://klimadao.finance/) забезпечує ліквідність як суспільне благо (даючи будь-кому змогу купувати або продавати вуглецеві кредити за прозорою ціною), стимулює збільшення пропускної здатності вуглецевих ринків і видалення з винагородами, а також забезпечує зручний сумісний інструментарій для доступу до даних про широкий спектр токенізованих вуглецевих кредитів, а також їх придбання і видалення. + +## ReFi за межами вуглецевих ринків {#refi-beyond} + +Хоча нині багато уваги приділяється ринкам вуглецю загалом і переходу з VCM до DCM зокрема в межах простору, термін «ReFi» не обмежується виключно вуглецем. Можуть бути розроблені й токенізовані інші екологічні активи за межами вуглецевих кредитів, що означатиме, що інші негативні зовнішні впливи також можуть бути оцінені на базових рівнях майбутніх економічних систем. Крім того, регенеративний аспект цієї економічної моделі може бути застосований і до інших галузей, як-от фінансування суспільних благ через квадратичні платформи фінансування на кшталт [Gitcoin](https://gitcoin.co/). Організації, які є побудованими на ідеї відкритої участі та справедливого розподілу ресурсів, дають кожному змогу спрямовувати гроші на програмні проєкти з відкритим кодом, а також освітні, екологічні та громадські проєкти. + +Зміщуючи напрямок руху капіталу від екстрактивних практик до регенеративного потоку, проекти й компанії, які забезпечують соціальні, екологічні або комунальні вигоди (і які можуть не досягти фінансування в традиційних фінансах), можуть зрушити з місця й генерувати позитивні зовнішні ефекти для суспільства набагато швидше і легше. Перехід до цієї моделі фінансування також відчиняє двері до набагато інклюзивніших економічних систем, де представники всіх демографічних груп можуть стати активними учасниками, а не просто пасивними спостерігачами. ReFi пропонує бачення Ethereum як механізму координації дій з екзистенційних проблем, що стоять перед нашим видом і всім життям на нашій планеті, — як базового рівня нової економічної парадигми, що уможливлює більш інклюзивне та стійке майбутнє на прийдешні століття. + +## Додаткова література про ReFi + +- [Огляд вуглецевих валют високого рівня та їхнє місце в економіці](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) +- [Міністерство майбутнього — роман, що зображує роль валюти, закріпленої за вуглецем, у боротьбі зі зміною клімату](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) +- [Докладний звіт Taskforce із масштабування добровільних ринків вуглецю](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) +- [Запис Кевіна Овоцького й Евана Міязоно в Глосарії CoinMarketCap про ReFi](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/public/content/translations/uk/roadmap/beacon-chain/index.md b/public/content/translations/uk/roadmap/beacon-chain/index.md new file mode 100644 index 00000000000..a327ab4df2e --- /dev/null +++ b/public/content/translations/uk/roadmap/beacon-chain/index.md @@ -0,0 +1,76 @@ +--- +title: Beacon Chain +description: Дізнайтеся про Beacon Chain — оновлення, за якого платформа Ethereum перейшла на модель доказу частки. +lang: uk +template: upgrade +image: /upgrades/core.png +alt: +summaryPoint1: Запуск Beacon Chain приніс в екосистему Ethereum модель доказу частки. +summaryPoint2: У вересні 2022 року здійснено об’єднання з оригінальним ланцюгом Ethereum, що працював за моделлю підтвердження роботи. +summaryPoint3: З Beacon Chain у системі з’явився протокол логіки консенсусу та поширення блоків, який наразі захищає Ethereum. +--- + + + Beacon Chain було запущено 1 грудня 2020 року, а модель доказу частки стала офіційним механізмом консенсусу Ethereum після оновлення The Merge, яке відбулося 15 вересня 2022 року. + + +## Що таке Beacon Chain? {#what-is-the-beacon-chain} + +Beacon Chain — назва оригінального блокчейну з моделлю доказу частки, який було запущено у 2020 році. Його було створено для забезпечення стабільної та екологічної роботи логіки консенсусу з моделлю доказу частки, перш ніж її буде впроваджено в головній мережі Ethereum. Тому він функціонував паралельно з оригінальною мережею Ethereum із підтвердженням роботи. Для переходу Ethereum із моделі підтвердження роботи на модель доказу частки потрібно було навчити Beacon Chain приймати транзакції від оригінального ланцюга Ethereum, групувати їх у блоки й організовувати в блокчейн за допомогою механізму консенсусу на основі доказу частки. Водночас оригінальні клієнти Ethereum вимкнули майнінг і логіку консенсусу та поширення блоків, передавши всі ці функції в Beacon Chain. Ця подія мала назву [The Merge](/roadmap/merge/). Після The Merge більше немає двох блокчейнів, лишився лише один ланцюг Ethereum із моделлю доказу частки. + +## Що відбулося після запуску Beacon Chain? {#what-does-the-beacon-chain-do} + +Назва «Beacon Chain» застосовувалася до реєстру облікових записів, що моніторили та координували мережу [стейкерів](/staking/) Ethereum, перш ніж вони почали валідувати справжні транзакції Ethereum. Він не обробляв транзакції та не керував роботою смартконтрактів. + +Цей блокчейн запровадив механізм консенсусу (або «рівень консенсусу»), що замінив майнінг, який проводився в Ethereum за використання моделі підтвердження роботи, і це призвело до багатьох важливих покращень. + +Beacon Chain був необхідним компонентом для [безпеки, екологічності й масштабування Ethereum, які ми маємо сьогодні](/roadmap/vision/). + +## Вплив Beacon Chain {#beacon-chain-features} + +### Про стейкінг {#introducing-staking} + +Завдяки Beacon Chain в Ethereum з’явилася модель [доказу частки](/developers/docs/consensus-mechanisms/pos/). Це дає змогу захищати Ethereum і допомагає валідаторам заробляти більше ETH у процесі. На практиці процес стейкінгу передбачає виставляння ETH для активації програмного забезпечення валідатора. Стейкер запускає програмне забезпечення, що створює нові блоки в ланцюгу та здійснює їх валідацію. + +Стейкінг виконує функцію, схожу на ту, яку мав [майнінг](/developers/docs/mining/), але ці процеси відрізняються в багатьох аспектах. Майнінг потребував високих попередніх витрат, як-от потужного апаратного забезпечення та великої кількості енергії, що призвело до економії масштабів і просування централізації. Майнінг також не вимагав фіксування додаткових активів, що обмежувало здатність протоколу карати зловмисників після атак. + +Завдяки переходу на модель доказу частки мережа Ethereum стала набагато безпечнішою та більш децентралізованою, як порівняти з періодом використання моделі підтвердження роботи. Що більше людей беруть участь у мережі, то більш децентралізованою та захищеною від атак вона стає. + + + Якщо ви хочете стати валідатором і допомагати захистити Ethereum, дізнайтеся більше про стейкінг. + + +### Налаштування для сегментування {#setting-up-for-sharding} + +З моменту об’єднання Beacon Chain і оригінальної головної мережі Ethereum спільнота Ethereum почала шукати способи масштабування мережі. + +Перевага моделі доказу частки — наявність реєстру всіх затверджених генераторів блоків, доступ до якого можна отримати в будь-який момент, з частками у вигляді ETH. Цей реєстр формує підґрунтя для здатності розділяти й володарювати, водночас надійно розподіляючи конкретні зобов’язання в мережі. + +Це зобов’язання суперечить моделі підтвердження роботи, коли в майнерів немає обов’язків перед мережею: вони можуть припинити майнінг і відразу повністю вимкнути програмне забезпечення вузла без жодних наслідків для себе. Немає також реєстру відомих пропозицій блоків і надійного та безпечного способу розділяти зобов’язання в мережі. + +[Докладніше про сегментування](/roadmap/danksharding/) + +## Зв’язок між оновленнями {#relationship-between-upgrades} + +Усі оновлення Ethereum певним чином пов’язані. Тож пояснимо, як Beacon Chain впливає на інші оновлення. + +### Beacon Chain і The Merge {#merge-and-beacon-chain} + +Спочатку блокчейн Beacon Chain існував окремо від головної мережі Ethereum, але у 2022 році вони об’єдналися. + + + Об’єднання + + +### Сегменти даних і Beacon Chain {#shards-and-beacon-chain} + +Сегментування можливо безпечним чином запровадити в екосистемі Ethereum лише за використання механізму консенсусу на основі доказу частки. З Beacon Chain з’явився стейкінг, що «об’єднався» з головною мережею та дав можливість застосовувати сегментування для подальшого масштабування Ethereum. + + + Ланцюги сегментів даних + + +## Додаткові матеріали + +- [Детальніше про майбутні оновлення Ethereum](/roadmap/vision) +- [Детальніше про доказ частки](/developers/docs/consensus-mechanisms/pos) diff --git a/public/content/translations/uk/roadmap/merge/index.md b/public/content/translations/uk/roadmap/merge/index.md new file mode 100644 index 00000000000..15125747420 --- /dev/null +++ b/public/content/translations/uk/roadmap/merge/index.md @@ -0,0 +1,225 @@ +--- +title: The Merge +description: Дізнайтеся про об’єднання (The Merge) — коли головна мережа Ethereum прийняла модель доказу частки. +lang: uk +template: upgrade +image: /upgrades/merge.png +alt: +summaryPoint1: Головна мережа Ethereum використовує модель доказу, але так було не завжди. +summaryPoint2: Терміном «The Merge» (об’єднання) назвали перехід від оригінального механізму підтвердження роботи до моделі доказу частки. +summaryPoint3: Наразі The Merge позначає об’єднання оригінальної головної мережі Ethereum з окремим блокчейном на основі доказу частки Beacon Chain, після чого вони стали єдиним ланцюжком. +summaryPoint4: Проведення The Merge знизило енергоспоживання Ethereum приблизно на 99,95 %. +--- + + + The Merge було виконано 15 вересня 2022 року. Ця дія завершила перехід Ethereum на модель консенсусу доказу частки, офіційно затвердивши відмову від механізму підтвердження роботи й скоротивши енергоспоживання приблизно на 99,95 %. + + +## Для позначення чого вживався термін «The Merge»? {#what-is-the-merge} + +Термін «The Merge» позначав об’єднання оригінального виконавчого рівня Ethereum (головної мережі, що існувала з [моменту створення](/history/#frontier)) з новим рівнем консенсусу доказу частки — Beacon Chain. Завдяки цьому зникла потреба в майнінгу, за якого витрачається багато енергії, і з’явилася можливість захищати мережу за допомогою стейкінгу ETH. Це був захопливий етап реалізації бачення Ethereum: перехід на вищий рівень масштабованості, безпеки та екологічності. + + + +Спочатку [Beacon Chain](/roadmap/beacon-chain/) було запущено окремо від [головної мережі](/glossary/#mainnet). Головна мережа Ethereum з усіма обліковими записами, балансами, смартконтрактами та станом блокчейну й надалі захищалася за моделлю [підтвердження роботи](/developers/docs/consensus-mechanisms/pow/), навіть під час паралельного функціонування Beacon Chain за моделлю [доказу частки](/developers/docs/consensus-mechanisms/pos/). У процесі The Merge ці дві системи нарешті об’єдналися, і модель підтвердження роботи остаточно було замінено на модель доказу частки. + +Уявіть, що мережа Ethereum — це космічний корабель, який запустили, коли він був не зовсім готовий до польоту в космос. За допомогою Beacon Chain спільноті вдалося побудувати новий двигун і міцніший корпус. Після ретельного тестування настав час замінити старий двигун новим, не перериваючи політ. У результаті наш корабель отримав новий ефективніший двигун, завдяки чому зумів подолати значно більшу кількість світлових років і кинути виклик всесвіту. + +## Об’єднання з головною мережею {#merging-with-mainnet} + +Захист головної мережі Ethereum від її створення до об’єднання (The Merge) забезпечувала модель підтвердження роботи. Це дало змогу створити в липні 2015 року блокчейн Ethereum, до якого ми всі звикли, зі знайомими функціями — транзакціями, смартконтрактами, обліковими записами тощо. + +Протягом усього існування Ethereum розробники готувалися до неминучого переходу з моделі підтвердження роботи на доказ частки. 1 грудня 2020 року було створено Beacon Chain — окремий блокчейн, що функціонував паралельно з головною мережею. + +Спочатку транзакції головної мережі не оброблялися Beacon Chain. Натомість консенсус досягався на власному стані блокчейну за узгодження активних валідаторів і балансів їхніх облікових записів. Після ґрунтовного тестування настав час для досягнення консенсусу в Beacon Chain на основі реальних даних. Після The Merge блокчейн Beacon Chain став знаряддям досягнення консенсусу для всіх мережевих даних, включно з транзакціями виконавчого рівня та балансами облікових записів. + +Процес The Merge став офіційним переходом на використання Beacon Chain як знаряддя виробництва блоків. Для виробництва чинних блоків більше не застосовується майнінг. Натомість валідатори доказу частки прийняли цю роль і зараз відповідають за обробку чинності всіх транзакцій і пропонування блоків. + +Під час The Merge не було втрачено жодної частини історії. Під час об’єднання головної мережі та Beacon Chain відбулося також об’єднання всієї історії транзакцій Ethereum. + + +Перехід на модель доказу частки змінив процедуру видання ether. Дізнайтеся більше про видання ether до та після проведення The Merge. + + +### Користувачі та власники {#users-holders} + +**Настання The Merge нічого не змінило для власників і користувачів.** + +_Повторюємо_: як користувачу або власнику ETH чи будь-яких інших цифрових активів в Ethereum, а також як стейкеру, який не є оператором вузла, **вам не потрібно нічого робити зі своїми коштами або гаманцем, щоб приєднатися до The Merge.** ETH — це лише ETH. Немає ні «старих ETH» чи «нових ETH», ні «ETH1» чи «ETH2», а гаманці працюватимуть так само, як і до The Merge. Якщо хтось говорить вам протилежне, то це, найімовірніше, шахраї. + +Попри відмову від моделі підтвердження роботи, уся історія Ethereum від моменту створення залишилася недоторканою та незміненою через перехід на доказ частки. Усі кошти, що були у вашому гаманці до The Merge, будуть доступними й після об’єднання. **Для оновлення вам не потрібно нічого робити.** + +[Детальніше про безпеку Ethereum](/security/#eth2-token-scam) + +### Оператори вузлів і розробники децентралізованих програм {#node-operators-dapp-developers} + + + +Далі описано ключові дії. + +1. Запустіть _обидва_ клієнти: консенсус-клієнт і клієнт-виконавець. Після The Merge сторонні кінцеві точки для отримання даних виконання більше не працюватимуть. +2. Автентифікуйте клієнтів-виконавців і консенсус-клієнтів за допомогою спільного секрету JWT, щоб вони могли безпечно обмінюватися даними. +3. Задайте адресу отримувача комісії, щоб отримувати зароблені чайові або максимальні суми, які можна добути (MEV), за транзакцію. + +Якщо не виконати перші дві наведені вище дії, ваш вузол відображатиметься зі статусом «офлайн», поки не буде синхронізовано й автентифіковано обидва рівні. + +Якщо не задати отримувача комісії, ваш валідатор однаково працюватиме як зазвичай, але ви не отримуватимете неспалювані чайові комісій і максимальні суми, що можна добути (MEV), які ви б могли заробляти в запропонованих вашим валідатором блоках. + + + + +До моменту The Merge клієнта-виконавця (як-от Geth, Erigon, Besu або Nethermind) було достатньо для отримання, належної валідації та поширення блоків, що передаються мережею. _Після The Merge_ чинність транзакцій у межах навантаження виконання тепер також залежить від чинності блока консенсусу, що міститься в ньому. + +У підсумку цілий вузол Ethereum тепер вимагає і клієнта-виконавця, і консенсус-клієнта. Ці два клієнти співпрацюють за допомогою нового інтерфейсу Engine API. Engine API вимагає автентифікації за допомогою секрету JWT, що надається для обох клієнтів і гарантує безпечний обмін даними. + +Далі описано ключові дії. + +— Установіть на додаток до клієнта-виконавця консенсус-клієнт. +— Автентифікуйте клієнта-виконавця та консенсус-клієнта за допомогою спільного секрету JWT, щоб гарантувати безпечний обмін даними між ними. + +Якщо не виконати наведені вище дії, ваш вузол відображатиметься зі статусом «офлайн», поки не буде синхронізовано й автентифіковано обидва рівні. + + + + + +Виконання The Merge принесло зміни до консенсусу, серед яких були зміни, пов’язані з такими елементами: + +— структура блоків; +— час формування слотів і блоків; +— зміни операційних кодів; +— джерела випадковості в ланцюжку; +— концепт _безпечної початкової частини ланцюжка_ та _завершених блоків_. + +Щоб дізнатися більше, ознайомтеся з дописом Тіма Бейко в нашому блозі [Як The Merge впливає на рівень програм в Ethereum](https://blog.ethereum.org/2021/11/29/how-the-merge-impacts-app-layer/). + + +## The Merge і споживання енергії {#merge-and-energy} + +Після The Merge принцип підтвердження роботи більше не використовуватиметься, і в мережі Ethereum розпочнеться новий етап надійнішого й екологічнішого функціонування. Споживання енергії мережею Ethereum знизилося приблизно на 99,95 %, завдяки чому Ethereum вважається екологічним блокчейном. Дізнайтеся більше про [енергоспоживання Ethereum](/energy-consumption/). + +## The Merge і масштабування {#merge-and-scaling} + +The Merge також підготує основу для подальших оновлень з огляду на масштабування, які були б неможливими за використання механізму підтвердження роботи. Такі оновлення зроблять Ethereum на крок ближче до досягнення повного масштабування, безпеки й екологічності на рівні, що відповідає [баченню Ethereum](/roadmap/vision/). + +## Хибні уявлення про The Merge {#misconceptions} + + +Існує два типи вузлів Ethereum: вузли, які можуть пропонувати блоки, і вузли, які цього не можуть. + +Вузли, що пропонують блоки, становлять невелику частину від загальної кількості вузлів у мережі Ethereum. До цієї категорії належать вузли для майнінгу, що працюють за моделлю підтвердження роботи (PoW), і вузли валідаторів, що працюють за моделлю доказу частки (PoS). Ця категорія потребує використання економічних ресурсів (як-от потужність хешування графічного процесора за моделі підтвердження роботи або стейкінг ETH за моделі доказу частки) в обмін на можливість час від часу пропонувати наступний блок і здобувати винагороди від протоколу. + +Інші вузли в мережі (тобто більшість вузлів) не потребують використання економічних ресурсів, які перевершують комп’ютер споживчого класу з доступним об’ємом пам’яті 1–2 ТБ і підключенням до Інтернету. Ці вузли не пропонують блоки, але все одно відіграють важливу роль у забезпеченні захисту мережі та стежать за всіма пропозиціями блоків, відокремлюючи нові блоки та підтверджуючи їх чинність за появи відповідно до правил консенсусу мережі. Якщо блок чинний, вузол і далі поширює його в мережі. Якщо з якої-небудь причини блок не є чинним, вузлове програмне забезпечення не сприйматиме його чинним і припинить його поширення. + +Запускати вузол, який не створює блоки, може будь-хто за використання будь-якого механізму консенсусу (підтвердження роботи або доказу частки); це _настійно рекомендується_ робити всім користувачам, якщо в них є така можливість. Запуск вузла є надзвичайно цінним для Ethereum і надає додаткові переваги особі, яка його запускає, як-от підвищений рівень безпеки, конфіденційності й протидії цензурі. + +Можливість запустити власний вузол для будь-яких користувачів є _абсолютно обов’язковою_ умовою для підтримання децентралізації мережі Ethereum. + +[Детальніше про запуск власного вузла](/run-a-node/) + + + + +Комісії на газ — це результат попиту мережі, пов’язаного з її потужністю. Після виконання The Merge модель підтвердження роботи було замінено на модель доказу частки для консенсусу, але це не викликало значних змін жодних параметрів, які безпосередньо впливають на потужність або пропускну здатність мережі. + +За наявності [плану розвитку, орієнтованого на зведення](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698) зусилля зосереджуються на масштабуванні діяльності користувачів на [рівні 2](/layer-2/), водночас перетворюючи рівень 1 головної мережі на надійний децентралізований рівень узгодження, оптимізований для зберігання зведених даних, що допоможе зробити транзакції, пов’язані зі зведенням, значно дешевшими. Перехід на модель доказу частки є важливою передумовою для усвідомлення цього. [Детальніше про газ і комісії.](/developers/docs/gas/) + + + +«Швидкість» транзакції можна вимірювати кількома способами, зокрема за допомогою часу, який потрібно включити до блоку, і часу, необхідного для завершення. Обидва ці параметри зазнають невеликих змін, непомітних для користувачів. + +Раніше, за використання моделі підтвердження роботи, метою було запускати нові блоки з інтервалом приблизно 13,3 секунди. За використання моделі доказу частки слоти з’являються з чітким інтервалом 12 секунд; кожен слот є можливістю для валідатора опублікувати блок. Більшість слотів мають блоки, але це необов’язкова умова (тобто валідатор може перебувати в офлайн-режимі). За використання моделі доказу частки блоки створюються на приблизно 10 % частіше, ніж за використання моделі підтвердження роботи. Ця зміна досить незначна, і користувачі навряд чи її помітять. + +З моделлю доказу частки було впроваджено концепцію завершення транзакцій, якої раніше не існувало. За використання моделі підтвердження роботи змінювати блок стає все складніше з кожним добутим блоком поверх транзакції, але ця можливість ніколи не зникає повністю. За використання моделі доказу частки блоки групуються в епохи (проміжки в 6,4 хвилини містять 32 можливості створення блоків), щодо яких голосують валідатори. Коли завершується епоха, валідатори голосують, чи можна вважати її «правомірною». Якщо валідатори погоджуються визнати епоху правомірною, вона завершується під час наступної епохи. Для скасування завершених транзакцій немає економічних можливостей, адже це потребує отримання та спалення понад третини всіх виставлених ETH. + + + + +Виставлені ETH і винагороди за стейкінг лишаються заблоковані без можливості їх зняти. Зняття планується реалізувати в майбутньому оновленні Shanghai. + + + +Хоча це може здаватися нелогічним з огляду на попереднє твердження про те, що зняття буде реалізовано в оновленні Shanghai, але у валідаторів Є миттєвий доступ до винагород і максимальних сум, які можна видобути (MEV), зароблених під час пропозицій блоків. + +Протокол видає ETH як винагороду валідаторам за внески до консенсусу. Рівень консенсусу відповідає за нововидані ETH, а валідатор має унікальну адресу, що містить виставлені ETH і винагороди протоколу. Ці ETH заблоковані до виходу оновлення Shanghai. + +ETH на виконавчому рівні розглядаються окремо від рівня консенсусу. Коли користувачі виконують транзакції в головній мережі Ethereum, ETH потрібно виплачувати для покриття витрат на газ, зокрема у вигляді чайових валідатору. Ці ETH уже перебувають на виконавчому рівні, а НЕ видаються протоколом заново. Вони стають доступними валідатору відразу (якщо програмне забезпечення клієнта отримало належну адресу отримувача комісії). + + + +Після впровадження зняття з виходом оновлення Shanghai усіх валідаторів заохочуватимуть зняти їхній стейкінговий баланс, що перевищує 32 ETH, оскільки ці кошти не додаються до прибутку та в іншому разі будуть заблоковані. Залежно від річної відсоткової ставки (APR), що визначається за загальною кількістю виставлених ETH, їх можуть заохочувати виходити зі своїх валідаторів, щоб зняти баланс повністю або потенційно виставити ще більше, використовуючи свої винагороди, аби заробити більше. + +Важливо зауважити, що частоту повних виходів валідаторів обмежено протоколом: протягом епохи можна виходити лише шістьом валідаторам (з інтервалом 6,4 хвилини, що дорівнює 1350 виходам на день або лише приблизно 43 200 ETH на день із понад 10 мільйонів виставлених ETH). Це обмеження частоти регулюється залежно від загальної кількості виставлених ETH і запобігає масовому виведенню коштів. Крім того, це не дає змоги потенційним зловмисникам використовувати свою частку для відсікання та виводити весь свій стейкінговий баланс у тій самій епосі, перш ніж протокол зможе застосувати штраф за відсікання. + +Річна відсоткова ставка (APR) навмисно зроблена динамічною, що допомагає ринку стейкерів балансувати обсяги платежів, які вони готові витрачати на захист мережі. Після реалізації зняття, якщо частота буде занизькою, валідатори виходитимуть із частотою, обмеженою протоколом. Це поступово підвищуватиме річну відсоткову ставку (APR) для всіх, хто залишиться, а також заохочуватиме приєднатися нових стейкерів або повернутися старих. + + +## Що сталося з Eth2? {#eth2} + +Термін «Eth2» більше не використовуватиметься. Після об’єднання «Eth1» і «Eth2» в єдиний ланцюг більше немає потреби у двох окремих мережах — є тільки Ethereum. + +Щоб обмежити плутанину, спільнота оновила ці терміни: + +- «Eth1» тепер означає «виконавчий рівень», який обробляє транзакції та виконання. +- «Eth2» тепер означає «рівень консенсусу», який обробляє консенсус доказу частки. + +Ці оновлення термінології змінюють лише правила найменування; це не впливає на цілі або план розвитку Ethereum. + +[Докладніше про перейменування Eth2](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) + +## Зв’язок між оновленнями {#relationship-between-upgrades} + +Усі оновлення Ethereum певним чином пов’язані. Тож підсумуймо, як процес The Merge пов’язаний з іншими оновленнями. + +### The Merge і Beacon Chain {#merge-and-beacon-chain} + +The Merge — це офіційне визнання Beacon Chain як нового рівня консенсусу стосовно оригінального виконавчого рівня головної мережі. Після The Merge валідатори призначені захищати головну мережу Ethereum. Майнінг за моделлю [підтвердження роботи](/developers/docs/consensus-mechanisms/pow/) більше не вважатиметься допустимим способом створення блоків. + +Натомість блоки пропонуються вузлами валідації, які мають виставлені ETH, в обмін на право брати участь у консенсусі. Ці оновлення готують підґрунтя для майбутніх оновлень масштабованості, зокрема сегментування. + + + Beacon Chain + + +### The Merge і оновлення Shanghai {#merge-and-shanghai} + +Щоб спростити й максимізувати фокус на успішному переході до моделі доказу частки, оновлення The Merge не містить певних очікуваних функцій, як-от можливості знімати виставлені ETH. Оновлення Shanghai планується після The Merge. Воно дасть змогу стейкерам знімати кошти. + +Дізнавайтеся всі новини про [запланований випуск оновлення Shanghai на GitHub](https://github.com/ethereum/pm/issues/450) або в [блозі EF про дослідження та розробку](https://blog.ethereum.org/category/research-and-development/). Крім того, можете дізнатися більше про те, [що відбудеться після The Merge](https://youtu.be/7ggwLccuN5s?t=101), з презентації Віталіка на заході ETHGlobal у квітні 2021 року. + +### The Merge і сегментування {#merge-and-data-sharding} + +Спочатку план полягав у роботі над сегментуванням до The Merge, щоб розв’язати проблему масштабованості. Однак унаслідок буму на [рішення для масштабування рівня 2](/layer-2/) пріоритетом став спочатку перехід із моделі підтвердження роботи на модель доказу частки. + +Плани щодо сегментування стрімко розвиваються. Але з огляду на зростання й успішність технологій рівня 2 для масштабування виконання транзакцій, плани щодо сегментування змістилися: тепер на меті пошук найоптимальнішого способу розділити тягар зберігання стиснутих даних викликів від контрактів зведення, що забезпечить можливість для швидкого зростання потужності мережі. Це не було б можливим без попереднього переходу на модель доказу частки. + + + Сегментування + + +## Додаткові матеріали {#further-reading} + + + + diff --git a/src/content/translations/uk/security/index.md b/public/content/translations/uk/security/index.md similarity index 100% rename from src/content/translations/uk/security/index.md rename to public/content/translations/uk/security/index.md diff --git a/public/content/translations/uk/smart-contracts/index.md b/public/content/translations/uk/smart-contracts/index.md new file mode 100644 index 00000000000..3904a44b194 --- /dev/null +++ b/public/content/translations/uk/smart-contracts/index.md @@ -0,0 +1,84 @@ +--- +title: Розумні контракти +description: Нетехнічне знайомство з розумними контрактами +lang: uk +--- + +# Коротко про розумні контракти {#introduction-to-smart-contracts} + +Смартконтракти є основними будівельними блоками прикладного рівня Ethereum. Вони є комп'ютерними програмами, що зберігаються в блокчейні та слідують логіці «якщо це, тоді те», і гарантовано виконуються за правилами, визначеними їхнім кодом, який не може бути змінений після створення. + +Термін «розумний контракт» ввів Нік Шабо. У 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). + +Шабо передбачив цифровий ринок, де автоматичні криптографічно безпечні процеси дають змогу здійснювати транзакції та бізнес-функції без довірених посередників. Смартконтракти в Ethereum втілюють це бачення в життя. + +## Довіра до звичайних контрактів {#trust-and-contracts} + +Одна з найбільших проблем, пов’язаних із традиційними контрактами, — зобов’язання довірених осіб виконувати їх положення. + +Розгляньмо приклад. + +Аліна й Борис влаштовують велозмагання. Скажімо, Аліна закладається на 100 гривень, що вона переможе. Борис упевнений, що переможцем стане він, і погоджується на парі. Зрештою, Аліна фінішує набагато швидше, ніж Борис, і стає очевидним переможцем. Але Борис відмовляється платити, стверджуючи, що Аліна схитрувала. + +Цей простенький приклад ілюструє проблему будь-якого звичайного контракту. Навіть якщо умови будуть виконані (ви переможете у велозмаганні), вам однаково потрібно довіряти іншій особі щодо виконання умов контракту (виплати грошей за парі). + +## Цифровий торговий автомат {#vending-machine} + +Смартконтракт можна порівняти з торговим автоматом, механізм роботи якого дійсно схожий — виконання конкретних дій із вхідними даними гарантують заздалегідь визначені результати. + +- Ви вибираєте продукт. +- Торговий автомат показує ціну +- Ви платите відповідну ціну. +- Торговий автомат перевіряє, чи ви заплатили потрібну суму. +- Торговий автомат дає вам ваш товар. + +Торговий автомат видасть бажаний продукт лише після виконання всіх вимог. Якщо ви не виберете продукт або не внесете достатньо грошей, торговий автомат не видасть вам продукт. + +## Автоматичне виконання {#automation} + +Основною перевагою смартконтракту є те, що він детерміновано виконує однозначний код за виконання певних умов. Не потрібно чекати, поки людина інтерпретує або домовиться про результат. Це усуває необхідність довірених посередників. + +Наприклад, ви можете написати смартконтракт, який утримуватиме кошти на умовному депонуванні для дитини, даючи їй змогу зняти їх після настання певної дати. Якщо дитина спробує зняти кошти до зазначеної дати, смартконтракт не буде виконано. Або ви можете укласти контракт, який автоматично надаватиме вам цифрову версію права власності на автомобіль після внесення оплати продавцю. + +## Передбачувані результати {#predictability} + +Традиційні контракти неоднозначні, тому що вони покладаються на людей для їх інтерпретації та реалізації. Наприклад, два судді можуть інтерпретувати контракт по-різному, що може призвести до непослідовних рішень і нерівних результатів. Смартконтракти усувають таку можливість. Натомість вони передбачають чітке виконання на основі умов, записаних у коді контракту. Ця точність означає, що за однакових обставин смартконтракт видаватиме однакові результати. + +## Загальнодоступні записи {#public-record} + +Смартконтракти стають у пригоді під час аудиту й відстеження. Оскільки смартконтракти Ethereum перебувають у загальнодоступному блокчейні, будь-хто може миттєво відстежити передачу активів та іншу пов’язану інформацію. Наприклад, ви можете перевірити, чи хтось надіслав гроші на вашу адресу. + +## Захист конфіденційності {#privacy-protection} + +Смартконтракти також захищають вашу конфіденційність. Оскільки Ethereum — це мережа під псевдонімами (ваші транзакції публічно прив’язані до унікальної криптографічної адреси, а не вашої особи), ви можете захистити свою конфіденційність від спостерігачів. + +## Видимі умови {#visible-terms} + +Нарешті, як і в разі традиційних контрактів, ви можете перевірити умови смартконтракту, перш ніж підписувати його (або іншим чином взаємодіяти з ним). Прозорість смартконтракту гарантує, що кожен може його ретельно вивчити. + +## Приклади використання смартконтрактів {#use-cases} + +Смартконтракти можуть власне робити все те, що й звичайні комп’ютерні програми. + +Вони можуть виконувати розрахунки, створювати валюту, зберігати дані, карбувати NFT, надсилати повідомлення та навіть створювати графіки. Ось кілька популярних прикладів із реального світу: + +- [Стейблкоїни](/stablecoins/) +- [Створення та розповсюдження унікальних цифрових активів](/nft/) +- [Автоматичний і відкритий обмін валют](/get-eth/#dex) +- [Децентралізовані ігри](/dapps/?category=gaming) +- [Страховий поліс, який виплачується автоматично](https://etherisc.com/) +- [Стандарт, який дає змогу створювати індивідуальні, взаємосумісні валюти](/developers/docs/standards/tokens/) + +## Краще сприймаєте інформацію візуально? {#visual-learner} + +Перегляньте відео від **Finematics** про смартконтракти: + + + +## Довідкові джерела {#further-reading} + +- [Як розумні контракти змінять світ](https://www.youtube.com/watch?v=pA6CGuXEKtQ) +- [Розумні контракти: блокчейн-технологія, яка замінить юристів](https://blockgeeks.com/guides/smart-contracts/) +- [Розумні контракти для розробників](/developers/docs/smart-contracts/) +- [Навчіться створювати розумні контракти](/developers/learning-tools/) +- [Освоєння Ethereum: що таке розумний контракт?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/uk/social-networks/index.md b/public/content/translations/uk/social-networks/index.md new file mode 100644 index 00000000000..bd850192f1b --- /dev/null +++ b/public/content/translations/uk/social-networks/index.md @@ -0,0 +1,121 @@ +--- +title: Децентралізовані соціальні мережі +description: Огляд децентралізованих соціальних мереж на Ethereum +lang: uk +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: /ethereum-learn.png +summaryPoint1: Платформи на основі блокчейну для соціальної взаємодії та створення й розповсюдження контенту. +summaryPoint2: Децентралізовані соціальні мережі захищають конфіденційність користувачів і підвищують безпеку даних. +summaryPoint3: Токени й NFT створюють нові способи монетизації вмісту. +--- + +Соціальні мережі відіграють величезну роль у нашому щоденному спілкуванні та взаємодії. Однак централізований контроль над цими платформами створив багато проблем: витік даних, збої в роботі серверів, деплатформування, цензура й порушення конфіденційності — ось деякі компроміси, на які часто йдуть соціальні мережі. Для боротьби із цими проблемами розробники будують соціальні мережі на Ethereum. Децентралізовані соціальні мережі можуть розв’язати багато проблем традиційних платформ соціальних мереж і покращити загальний досвід користувачів. + +## Що таке децентралізовані соціальні мережі? {#what-are-decentralized-social-networks} + +Децентралізовані соціальні мережі — це платформи на основі блокчейну, які дають користувачам змогу обмінюватися інформацією, а також публікувати й поширювати контент серед аудиторії. Оскільки ці програми працюють на блокчейні, вони здатні бути децентралізованими та стійкими до цензури й надмірного контролю. + +Багато децентралізованих соціальних мереж існують як альтернативи усталеним службам соціальних мереж, як-от Facebook, LinkedIn, Twitter і Medium. Але соціальні мережі, що працюють на блокчейні, мають низку особливостей, які випереджають традиційні соціальні платформи. + +### Як працюють децентралізовані соціальні мережі? {#decentralized-social-networks-overview} + +Децентралізовані соціальні мережі — це клас [децентралізованих програм (dapps)](/dapps/), тобто програм, що працюють на основі [розумних контрактів](/developers/docs/smart-contracts/), розгорнутих на блокчейні. Код контракту служить основою для цих програм і визначає їх бізнес-логіку. + +Традиційні соціальні мережі використовують бази даних для зберігання інформації користувачів, програмного коду й інших форм даних. Але це створює окремі точки відмови та вносить значний ризик. Наведемо сумнозвісний приклад: сервери Facebook [вийшли з мережі на години](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) минулого року, відрізавши користувачів від платформи. + +Децентралізовані соціальні мережі існують в одноранговій мережі, яка складається з тисяч вузлів по всьому світу. Навіть якщо деякі вузли вийдуть з ладу, мережа працюватиме безперебійно, завдяки чому програми будуть стійкими до збоїв і простоїв. + +Використовуючи децентралізовані системи зберігання, як-от [InterPlanetary File System (IPFS)](https://ipfs.io/), соціальні мережі, побудовані на Ethereum, можуть захистити інформацію користувачів від експлуатації та зловмисного використання. Ніхто не продасть вашу особисту інформацію рекламодавцям, і хакери не зможуть викрасти ваші конфіденційні дані. + +Багато соціальних платформ на основі блокчейну мають рідні токени, які забезпечують монетизацію за відсутності прибутку від реклами. Користувачі можуть купувати ці маркери, щоб отримати доступ до певних функцій, здійснювати покупки в програмі або давати чайові своїм улюбленим творцям вмісту. + +## Переваги децентралізованих соціальних мереж {#benefits} + +1. Децентралізовані соціальні мережі стійкі до цензури й відкриті для всіх. Це означає, що користувачів не можна заборонити, деплатформувати чи довільно обмежити. + +2. Децентралізовані соціальні мережі побудовані на ідеалі відкритого вихідного коду й роблять вихідний код програм доступним для загального огляду. Усуваючи реалізацію непрозорих алгоритмів, поширених у традиційних соціальних медіа, соціальні мережі на основі блокчейну можуть узгоджувати інтереси користувачів і творців платформи. + +3. Децентралізовані соціальні мережі усувають «посередника». Творці контенту мають безпосереднє право власності на свій контент і взаємодіють безпосередньо з підписниками, шанувальниками, покупцями та іншими сторонами, не маючи нічого, крім розумного контракту між ними. + +4. Оскільки прикладні програми працюють у мережі Ethereum, яка підтримується глобальною одноранговою мережею вузлів, децентралізовані соціальні мережі менш сприйнятливі до простоїв і збоїв серверів. + +5. Децентралізовані соціальні платформи пропонують покращену систему монетизації для творців контенту за допомогою невзаємозамінних токенів (NFT), криптоплатежів у програмі тощо. + +6. Децентралізовані соціальні мережі забезпечують користувачам високий рівень конфіденційності й анонімності. Наприклад, особа може ввійти в соціальну мережу на основі Ethereum за допомогою профілю ENS або гаманця — без необхідності ділитися особистою інформацією (PII), як-от імена, адреси електронної пошти тощо. + +7. Децентралізовані соціальні мережі покладаються на децентралізоване сховище, яке значно краще захищає дані користувачів, а не на централізовані бази даних. + +## Децентралізовані соціальні мережі на Ethereum {#ethereum-social-networks} + +Мережа Ethereum стала улюбленим інструментом для розробників, які створюють децентралізовані соціальні мережі, завдяки популярності її токенів (ERC-20/ERC-721) і величезній базі користувачів. Ось кілька прикладів соціальних мереж на основі Ethereum: + +### Peepeth {#peepeth} + +[Peepeth](https://peepeth.com/) — це платформа мікроблогів, схожа на Twitter. Вона працює на блокчейні Ethereum і використовує IPFS для зберігання даних користувачів. + +Користувачі можуть надсилати короткі повідомлення під назвою «Peeps», які не можна видалити чи змінити. Ви можете збирати чайові або надсилати їх будь-кому на платформі в криптовалюті ether (ETH), не виходячи з програми. + +### Mirror {#mirror} + +[Mirror](https://mirror.xyz/) – це платформа для письменників із підтримкою web3, яка має бути децентралізованою та належати користувачам. Користувачі можуть безплатно читати та писати на Mirror, просто під’єднавши свої гаманці. Користувачі також можуть збирати тексти й підписуватися на своїх улюблених письменників. + +Повідомлення, опубліковані на Mirror, постійно зберігаються на Arweave, децентралізованій платформі зберігання, і можуть карбуватися як колекційні [незамінні токени (NFT)](/nft/), відомі як Writing NFT. Токени Writing NFT абсолютно безплатні для авторів, а збір відбувається на рівні Ethereum L2, що робить транзакції недорогими, швидкими й екологічно чистими. + +### MINDS {#minds} + +[MINDS](https://www.minds.com/) є однією з найбільш використовуваних децентралізованих соціальних мереж. Вона працює як Facebook і вже набрала мільйони користувачів. + +Користувачі використовують власний токен платформи ERC-20 $MIND для оплати товарів. Користувачі також можуть заробляти токени $MIND, публікуючи популярний вміст, роблячи внески в екосистему й залучаючи інших до платформи. + +## Соціальні мережі Web2 на Ethereum {#web2-social-networks-and-ethereum} + +Нативні соціальні платформи [Web3](/web3/) не єдині, що намагаються запровадити технологію блокчейну в соціальні мережі. Багато централізованих платформ також планують інтегрувати Ethereum у свою інфраструктуру: + +### 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/) і які користувачі можуть заробити, публікуючи якісний вміст і роблячи внески в онлайн-спільноти (субреддіти). Ви можете викупити ці токени в субреддіті, щоб [отримати ексклюзивні привілеї та бонуси](https://www.reddit.com/community-points/). Для цього проєкту Reddit співпрацює з Arbitrum, зведеним пакетом [рівня 2](/layer-2/), призначеним для масштабування транзакцій Ethereum. + +Програма вже запущена, і субреддіт r/CryptoCurrency [запустив свою версію Community Points під назвою «Moons»](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Згідно з офіційним описом, Moons «винагороджує авторів, коментаторів і модераторів за їхній внесок у субреддіт» Оскільки ці токени перебувають у блокчейні (користувачі отримують їх у гаманці), вони не залежать від Reddit і не можуть бути забрані. + +Після завершення бета-фази на тестовій мережі Rinkeby бали спільноти Reddit Community Points тепер доступні на [Arbitrum Nova](https://nova.arbitrum.io/), блокчейні, який поєднує властивості [сайдчейнів](/developers/docs/scaling/sidechains/) і [оптимістичного розгортання](/developers/docs/scaling/optimistic-rollups/). Окрім використання балів спільноти для розблокування спеціальних функцій, користувачі також можуть обмінювати їх на фіатну валюту на біржах. Крім того, кількість балів спільноти, якими володіє користувач, визначає його вплив на процес прийняття рішень у спільноті. + +### Twitter {#twitter} + +У січні 2021 року Twitter Blue [розгорнув підтримку NFT](https://mashable.com/article/twitter-blue-nft-profile-picture), даючи користувачам змогу під’єднувати свої гаманці й відображати NFT як зображення профілю. На момент написання статті соціальна мережа також [оголосила про плани](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) створити децентралізовану соціальну мережу в майбутньому. + +### Instagram {#instagram} + +У травні 2022 року [Instagram оголосив про підтримку NFT](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) на Ethereum і Polygon. Користувачі можуть публікувати NFT безпосередньо в Instagram, підключивши свій гаманець Ethereum. + +## Використовуйте децентралізовані соціальні мережі {#use-decentralized-social-networks} + +- **[Status.im](https://status.im/)** - _Статус — це захищена програма для обміну повідомленнями, яка використовує одноранговий протокол із відкритим кодом і наскрізне шифрування для захисту ваших повідомлень від сторонніх осіб._ +- **[Mirror.xyz](https://mirror.xyz/)** - _Дзеркало – це децентралізована видавнича платформа, яка належить користувачам, створена на базі Ethereum для краудингового фінансування ідей, монетизації вмісту та створення цінних спільнот._ +- **[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/) — _Бен Герцель_ +- [Web3 обіцяє децентралізовані, контрольовані спільнотою соціальні мережі](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Суміт Гош_ +- [Огляд ландшафту соціальних мереж на основі блокчейну](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Криптопедія Gemini_ +- [Як блокчейн може розв’язати проблему конфіденційності соціальних мереж](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Праблін Баджпай_ +- [Соціальні мережі переходять на блокчейн](https://businesstechguides.co/what-are-decentralized-social-networks) — _Еммануель Авосіка_ +- [Достатня децентралізація для соціальних мереж](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Варун Срінівасан_ + +### Відео {#videos} + +- [Пояснення децентралізованих соціальних мереж](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ +- [Блокчейн DeSo хоче децентралізувати соціальні мережі](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ +- [Майбутнє децентралізованих соціальних медіа з Баладжі Шрінівасаном, Віталіком Бутеріним, Хуаном Бенетом](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ + +### Спільноти {#communities} + +- [Status (сервер Discord)](https://discord.com/invite/3Exux7Y) +- [Mirror (сервер Discord)](https://discord.com/invite/txuCHcE8wV) +- [Субреддіт r/CryptoCurrency](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/uk/staking/dvt/index.md b/public/content/translations/uk/staking/dvt/index.md similarity index 100% rename from src/content/translations/uk/staking/dvt/index.md rename to public/content/translations/uk/staking/dvt/index.md diff --git a/public/content/translations/uk/staking/pools/index.md b/public/content/translations/uk/staking/pools/index.md new file mode 100644 index 00000000000..8801441d15d --- /dev/null +++ b/public/content/translations/uk/staking/pools/index.md @@ -0,0 +1,85 @@ +--- +title: Стейкінг у пулі +description: Огляд початку роботи з об’єднаним стейкінгом ETH +lang: uk +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-pool.png +alt: Носоріг Леслі плаває в басейні. +sidebarDepth: 2 +summaryPoints: + - Вкладайте кошти й отримуйте винагороди з будь-якою кількістю ETH, об’єднуючи зусилля з іншими. + - Пропустіть складну частину й довірте роботу валідатора третім особам. + - Зберігайте токени стейкінгу у власному гаманці +--- + +## Що таке стейкінг-пули? {#what-are-staking-pools} + +Об’єднаний стейкінг — це спосіб, який дає змогу багатьом користувачам, у яких недостатня сума ефірів (ETH), отримати 32 ETH, необхідних для активації набору ключів валідатора. Функція пулу не підтримується протоколом, тому для задоволення цієї потреби було створено окремі рішення. + +Деякі пули працюють за допомогою смартконтрактів, де кошти можуть бути внесені в контракт, який надійно керує вашою часткою й відстежує її, а також видає вам токен, який представляє цю вартість. Інші пули можуть не використовувати смартконтракти, а натомість опосередковуються поза мережею. + +## Навіщо робити стейкінг із пулом? {#why-stake-with-a-pool} + +На додаток до переваг, які ми окреслили в нашому [вступі до стейкінгу](/staking/), стейкінг із пулом має низку незаперечних переваг. + + + + + + + + + +## Що врахувати {#what-to-consider} + +Об’єднаний або делегований стейкінг не підтримуються самим протоколом Ethereum, але, враховуючи попит користувачів на ставки менше ніж 32 ETH, для задоволення цього попиту створюється дедалі більше рішень. + +Кожен пул та інструменти чи смартконтракти, які вони використовують, були створені різними командами, і кожен має переваги й ризики. Пули дають користувачам змогу обмінювати свої ETH на токен, що представляє поставлені ETH. Токен корисний тим, що дає користувачам змогу обмінювати будь-яку кількість ETH на еквівалентну кількість дохідних токенів, які приносять прибуток від винагороди за стейкінг, що застосовується до вкладених ETH, за які вони отримані (і навпаки), на децентралізованих біржах, навіть попри те що фактичні ETH залишаються вкладеними на рівні консенсусу. Це означає, що обмін між прибутковим продуктом ETH, який залучено до стейкінгу, і «оригінальними ETH» відбувається швидко й просто та застосовується не лише до сум ETH, кратних 32. + +Однак ці вкладені в ETH токени можуть спричинити картельну поведінку, коли велика кількість вкладених ETH потрапляє під контроль кількох централізованих організацій, а не поширюється між багатьма незалежними особами. Це створює умови для цензури або виманювання вартості. Золотим стандартом стейкінгу завжди повинні бути окремі особи, які запускають валідатори на власному обладнанні, коли це можливо. + +[Докладніше про ризики токенів стейкінгу](https://notes.ethereum.org/@djrtwo/risks-of-lsd). + +Нижче використовуються індикатори атрибутів, що вказують на помітні сильні чи слабкі сторони, які можуть бути притаманні вказаному пулу ставок. Під час вибору пулу для приєднання використовуйте цей розділ як довідник, у якому ми визначаємо ці атрибути. + + + +## Досліджуйте пули стейкінгу {#explore-staking-pools} + +Існує безліч доступних варіантів, які допоможуть вам із налаштуванням. Використовуйте наведені вище індикатори, які допоможуть вам отримати інформацію про інструменти нижче. + + + + + +Зверніть увагу на важливість вибору служби, яка серйозно ставиться до [різноманітності клієнтів](/developers/docs/nodes-and-clients/client-diversity/), оскільки це покращує безпеку мережі й обмежує ваш ризик. Послуги, які мають докази обмеження використання мажоритарними клієнтами, мають позначку «виконання різноманітності клієнтів» і «консенсус різноманітності клієнтів». + +Маєте пропозицію щодо інструменту стейкінгу, який ми пропустили? Ознайомтеся з нашою [політикою щодо переліку продуктів](/contributing/adding-staking-products/), щоб дізнатися, чи підійде він, і надіслати його на розгляд. + +## Поширені запитання {#faq} + + +Зазвичай токени стейкінгу ERC-20 видаються стейкерам і представляють вартість їхніх вкладених ETH і винагород. Майте на увазі, що різні пули розподілятимуть винагороди за ставки своїм користувачам дещо різними методами, але це загальна тема. + + + +Просто зараз! Оновлення мережі Shanghai/Capella відбулося у квітні 2023 року і ввело можливість виведення коштів під час стейкінгу. Облікові записи валідаторів, які підтримують стейкінгові пули, тепер мають змогу вийти та вивести ETH на свою призначену адресу виведення. Це дає змогу викупити свою частку ставки за базові ETH. Дізнайтесь у свого провайдера, як підтримується ця функціональність. + +Крім того, пули, які використовують токен стейкінгу ERC-20, дають користувачам змогу торгувати цим токеном на відкритому ринку. Це дає можливість продати свою стейкінг-позицію й фактично «вивести» кошти, насправді не видаляючи ETH із контракту стейкінгу. + +Докладніше про виведення коштів під час стейкінгу + + + +Існує багато подібностей між цими варіантами об’єднаного стейкінгу й централізованими біржами, як-от можливість робити ставки на невеликі суми ETH і об’єднувати їх разом для активації валідаторів. + +На відміну від централізованих бірж, багато інших варіантів об’єднаного стейкінгу використовують смартконтракти та/або токени стейкінгу. Зазвичай це токени ERC-20, які можна зберігати у своєму гаманці та купувати чи продавати, як будь-який інший токен. Це забезпечує певний рівень суверенітету й безпеки, надаючи вам контроль над своїми токенами, але все ще не дає вам прямого контролю над клієнтом валідатора, який підтверджує від вашого імені у фоновому режимі. + +Деякі варіанти об’єднання є більш децентралізованими, ніж інші, коли йдеться про вузли, які їх підтримують. Щоб сприяти здоров’ю та децентралізації мережі, стейкерам завжди рекомендується вибирати службу об’єднання, яка забезпечує децентралізований набір операторів вузлів без дозволу. + + +## Довідкові джерела {#further-reading} + +- [Стейкінг за допомогою Rocket Pool: огляд стейкінгу](https://docs.rocketpool.net/guides/staking/overview.html) — _Документи RocketPool_ +- [Стейкінг Ethereum за допомогою Lido](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) — _Довідкова документація Lido_ diff --git a/public/content/translations/uk/staking/saas/index.md b/public/content/translations/uk/staking/saas/index.md new file mode 100644 index 00000000000..c8abc76860e --- /dev/null +++ b/public/content/translations/uk/staking/saas/index.md @@ -0,0 +1,94 @@ +--- +title: Стейкінг як служба +description: Огляд того, як почати роботу з об’єднаним ставками ETH +lang: uk +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-saas.png +alt: Носоріг Леслі плаває в хмарах. +sidebarDepth: 2 +summaryPoints: + - Сторонні оператори вузлів керують роботою вашого клієнта перевірки. + - Чудовий варіант для всіх, хто має 32 ETH, але не бажає мати справу з технічною складністю роботи вузла. + - Зменште довіру та самостійно контролюйте свої ключі для виведення коштів. +--- + +## Що таке стейкінг як послуга? {#what-is-staking-as-a-service} + +Стейкінг як послуга (SaaS) — це категорія послуг стейкінгу, користуючись якими ви вносите власні 32 ETH для валідатора, але делегуєте операції з вузлами сторонньому оператору. Зазвичай цей процес передбачає початкове налаштування, зокрема генерацію та депозит, а потім завантаження ваших ключів підпису оператору. Це дає службі змогу керувати вашим валідатором від вашого імені, зазвичай за щомісячну плату. + +## Які переваги дає використання стейкінгу як послуги? {#why-stake-with-a-service} + +Сам протокол Ethereum не підтримує делегування частки, тому ці служби створено для задоволення цього попиту. Якщо у вас є 32 ETH для ставки, але вам незручно мати справу з апаратним забезпеченням, послуги SaaS дадуть вам змогу делегувати складну частину, поки ви отримуєте власну винагороду за блок. + + + + + + + + + +## Що врахувати {#what-to-consider} + +Зростає кількість постачальників стейкінгу як послуги (SaaS), які пропонують допомогу у вкладенні ETH, але в кожного з них є свої переваги й ризики. Слід ураховувати, що всі варіанти SaaS вимагають додаткових припущень щодо довіри у порівнянні з домашнім стейкінгом. Параметри Saas можуть мати додатковий код, що обгортає клієнти Ethereum, який не є відкритим або доступним для перевірок. SaaS також згубно впливає на децентралізацію мережі. Залежно від налаштувань ви можете не контролювати свій валідатор: оператор може діяти нечесно, використовуючи ваші ефіри (ETH). + +Нижче ми використовуємо індикатори атрибутів, щоб повідомити про суттєві сильні чи слабкі сторони зазначеного постачальника SaaS. Використовуйте цей розділ як довідник визначень цих атрибутів, коли вибираєте послугу, що допоможе вам під час стейкінгу. + + + +## Дізнайтеся докладніше про постачальників послуг стейкінгу {#saas-providers} + +Нижче наведено відомості про деяких доступних постачальників SaaS. Використовуйте наведені вище індикатори, щоб вибрати, якими послугами скористатися. + + + +### Провайдери SaaS + + + +Зверніть увагу на важливість підтримки [різноманітності клієнтів](/developers/docs/nodes-and-clients/client-diversity/), оскільки це покращує безпеку мережі й обмежує ваш ризик. Послуги, які мають докази обмеження використання мажоритарними клієнтами, мають позначку «виконання різноманітності клієнтів» і «консенсус різноманітності клієнтів». + +### Генератори ключів + + + +Маєте пропозицію щодо постачальника стейкінгу як послуги, якого ми пропустили? Ознайомтеся з нашою [політикою щодо переліку продуктів](/contributing/adding-staking-products/), щоб дізнатися, чи підійде він, і надіслати його на розгляд. + +## Поширені запитання {#faq} + + +Домовленості різняться залежно від постачальника, але зазвичай вам доведеться налаштувати будь-які потрібні ключі підпису (по одному на 32 ETH) і завантажити їх до свого постачальника, щоб він міг виконувати валідацію від вашого імені. Ключі підпису самі по собі не дають можливості вивести, переказати або витратити ваші кошти. Однак вони дають змогу віддавати голоси за консенсус, що, якщо не зробити це належним чином, може призвести до покарань офлайн або скорочення. + + + +Так. Кожен обліковий запис складається з ключів підпису та ключів виведення. Щоб валідатор засвідчував стан ланцюга, брав участь у комітетах синхронізації та пропонував блоки, ключі підпису повинні бути легкодоступними для клієнта валідатора. Вони повинні бути підключені до інтернету в певній формі, тому за своєю суттю вважаються «гарячими» клавішами. Це вимога, щоб ваш валідатор міг засвідчити, тому ключі, які використовуються для переказу або виведення коштів, розділені з міркувань безпеки. + +Ключі виведення BLS використовуються для підпису одноразового повідомлення, яке оголошує, до якого облікового запису виконавчого рівня повинні бути спрямовані нагороди за стейкінг та кошти, які було виведено. Щойно це повідомлення буде розіслано, ключі BLS для виведення вже не потрібні. Натомість керування виведеними коштами постійно делегується на адресу, яку ви вказали. Це дає змогу встановити адресу виведення, яку захищено власним холодним сховищем, мінімізуючи ризик для коштів вашого валідатора, навіть якщо інша особа контролює ключі для підпису. + +Оновлення підтверджувальних даних для виведення коштів є обов’язковим кроком для активації виведення\*. Цей процес передбачає генерацію ключів для виведення коштів за допомогою вашої кодової фрази. + +Обов’язково зберігайте цю кодову фразу в безпечному місці, інакше ви не зможете згенерувати ключі для виведення коштів, коли настане час. + +\* Стейкери, які вказали адресу для виведення коштів під час початкового депозиту, не потребують цього налаштування. Зверніться до свого SaaS-провайдера, щоб отримати підтримку щодо підготовки вашого валідатора. + + + +Виведення коштів під час стейкінгу реалізовано в оновленні Shanghai/Capella у квітні 2023 року. Стейкери повинні надати адресу виведення (якщо її не було надано під час початкового депозиту), а платежі винагороди почнуть автоматично розподілятись на періодичній основі кожні кілька днів. + +Валідатори також можуть повністю вийти зі статусу валідатора, що розблокує їх залишковий баланс ETH для виведення. Облікові записи, які надали адресу виведення виконання та завершили процес виходу, отримають увесь свій баланс на адресу виведення, надану під час наступного сканування валідатора. + +Докладніше про виведення коштів під час стейкінгу + + + +Використовуючи постачальника SaaS, ви довіряєте роботу свого вузла комусь іншому. Це супроводжується ризиком низької продуктивності вузла, який не залежить від вас. Якщо ваш валідатор буде скорочено, ваш баланс валідатора буде штрафовано та примусово видалено з пулу валідаторів. + +Після завершення процесу скорочення / виходу з програми ці кошти будуть переведені на адресу виведення, призначену для валідатора. Для цього потрібно вказати адресу для виведення коштів. Це може бути надано під час початкового депозиту. Якщо ні, ключі виведення валідатора повинні бути використані для підпису повідомлення, у якому буде зазначено адресу виведення. Якщо не було надано жодної адреси виведення, кошти залишаться заблокованими до її надання. + +Щоб отримати докладнішу інформацію про будь-які гарантії або варіанти страхування, а також для інструкцій щодо надання адреси виведення коштів, зв’яжіться з конкретним провайдером SaaS. Якщо ви бажаєте повністю контролювати налаштування свого валідатора, дізнайтеся більше про те, як самостійно ставити свої ефіри (ETH). + + +## Довідкові джерела {#further-reading} + +- [Оцінювання послуг стейкінгу](https://www.attestant.io/posts/evaluating-staking-services/) — _Джим Макдональд, 2020_ diff --git a/public/content/translations/uk/staking/solo/index.md b/public/content/translations/uk/staking/solo/index.md new file mode 100644 index 00000000000..d05f126a11c --- /dev/null +++ b/public/content/translations/uk/staking/solo/index.md @@ -0,0 +1,203 @@ +--- +title: Індивідуальний стейкінг ваших ETH +description: "Огляд: як почати самостійний стейкінг своїх ефірів (ETH)" +lang: uk +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-solo.png +alt: Носоріг Леслі на власному комп’ютерному чіпі. +sidebarDepth: 2 +summaryPoints: + - Отримайте максимальну винагороду безпосередньо від протоколу за підтримку належного функціонування валідатора та його перебування онлайн + - Запустіть домашнє обладнання та особисто додайте безпеку й децентралізацію мережі Ethereum. + - Позбудьтеся довіри, але ніколи не передавайте контроль над ключами від своїх фондів. +--- + +## Що таке самостійний стейкінг? {#what-is-solo-staking} + +Самостійний стейкінг — це [запуск вузла Ethereum](/run-a-node/), підключеного до інтернету, і внесення 32 ETH для активації [валідатора](#faq), що дає вам змогу безпосередньо брати участь у мережевому консенсусі. + +**Самостійний стейкінг збільшує децентралізацію мережі Ethereum**, роблячи Ethereum стійкішим до цензури й атак. Інші методи стейкінгу можуть не допомогти мережі в той самий спосіб. Самостійний стейкінг — це найкращий варіант для захисту Ethereum. + +Вузол Ethereum складається як з клієнта рівня виконання (EL), так і з клієнта рівня консенсусу (CL). Такі клієнти — це програмне забезпечення, яке працює разом із дійсним набором ключів підпису для перевірки транзакцій і блоків, підтвердження правильності голови ланцюжка, агрегування атестацій і пропозиції блоків. + +Самостійні стейкери відповідають за роботу обладнання, необхідного для роботи цих клієнтів. Наполегливо рекомендується використовувати для цього спеціальну машину, якою ви керуєте вдома, це надзвичайно корисно для працездатності мережі. + +Самостійний стейкер отримує винагороду безпосередньо від протоколу за те, що його валідатор функціонує належним чином і працює онлайн. + +## Які переваги має самостійний стейкінг? {#why-stake-solo} + +Самостійний стейкінг передбачає більшу відповідальність, але забезпечує максимальний контроль над своїми коштами й налаштуванням ставок. + + + + + + + +## Що потрібно обміркувати, перш ніж починати самостійний стейкінг {#considerations-before-staking-solo} + +Хоч би як ми хотіли, щоб самостійний стейкінг був доступним для всіх і не ніс жодного ризику, це не так. Є кілька практичних і серйозних міркувань, про які слід пам’ятати, перш ніж вирішувати самостійно ставити свої ETH. + + + +Керуючи власним вузлом, вам слід витратити певний час, щоб навчитися користуватися вибраним програмним забезпеченням. Це передбачає читання відповідної документації та налагодження каналів зв’язку цих команд розробників. + +Що більше ви розумієте програмне забезпечення, яке використовуєте, і те, як працює proof-of-stake, то меншим ризиком буде для вас стейкінг і тим легше вам як оператору вузла буде розв’язувати будь-які проблеми, які можуть виникнути під час роботи. + + + +Налаштування вузла вимагає розумного рівня впевненості під час роботи з комп’ютерами, хоча нові інструменти з часом роблять це легше. Розуміння інтерфейсу командного рядка є корисним, але більше не обов’язковим. + +Це також вимагає базового налаштування апаратного забезпечення та певного розуміння мінімальних рекомендованих специфікацій. + + + +Подібно до того, як приватні ключі захищають вашу адресу Ethereum, вам потрібно буде створити ключі спеціально для вашого валідатора. Ви повинні розуміти, як убезпечити й захистити кодові фрази або приватні ключі.{' '} + +Безпека й запобігання шахрайству в Ethereum + + + +Іноді апаратне забезпечення виходить з ладу, мережеве з’єднання з’являється помилково, а клієнтське програмне забезпечення час від часу потребує оновлення. Технічне обслуговування вузла неминуче і час від часу потребуватиме вашої уваги. Радимо уважно стежити за інформацією про будь-які очікувані оновлення мережі або інші важливі оновлення клієнта. + + + +Ваші винагороди пропорційні часу, протягом якого ваш валідатор перебуває в мережі й належним чином атестується. Час простою тягне за собою штрафні санкції, пропорційні кількості інших валідаторів, які перебувають в автономному режимі одночасно, але не призводить до скорочення. Пропускна здатність також має значення, оскільки винагороди зменшуються за атестації, які не отримані вчасно. Вимоги можуть різнитися, але рекомендовано підтримувати вхідну й вихідну швидкість щонайменше 10 Мбіт/с. + + + +На відміну від покарань за бездіяльність у режимі офлайн, скорочення є набагато серйознішим покаранням, призначеним за зловмисні порушення. Якщо ви запустите міноритарний клієнт із завантаженими ключами лише на одній машині одночасно, ваш ризик бути скороченими зводиться до мінімуму. З огляду на це, усі стейкери повинні усвідомлювати ризики скорочення. + +Докладніше про покарання та життєвий цикл валідатора + + + + + +## Як це працює {#how-it-works} + + + +Під час активної участі ви отримуватимете винагороду у вигляді ETH, які періодично будуть зараховуватись на ваш вказаний рахунок виведення коштів. + +Якщо колись забажаєте, ви можете вийти як валідатор, що скасовує вимогу бути онлайн і зупиняє будь-які подальші винагороди. Ваш залишок коштів буде автоматично виведено на адресу зняття, яку ви вкажете під час налаштування. + +[Докладніше про виведення коштів під час стейкінгу](/staking/withdrawals/) + +## Початок роботи на стартовій платформі стейкінгу {#get-started-on-the-staking-launchpad} + +Staking Launchpad (Стартова платформа стейкінгу) — це програма з відкритим кодом, яка допоможе вам стати стейкером. Ця платформа допоможе вам вибрати програми-клієнти, згенерувати ключі та вкласти свої ETH у договір депозиту для стейкінгу. Використовуйте наданий контрольний список, щоб перевірити, чи виконано все необхідне для безпечного налаштування валідатора. + + + +## Що слід враховувати під час роботи з інструментами налаштування вузла та клієнта {#node-tool-considerations} + +Кількість інструментів і послуг, які допоможуть вам самостійно робити ставки на ETH, дедалі зростає, але кожен із них має різні ризики й переваги. + +Нижче ми використовуємо індикатори атрибутів, щоб вказати на суттєві сильні чи слабкі сторони, які може мати наведений інструмент стейкінгу. Використовуйте цей розділ як довідник визначень цих атрибутів, коли вибираєте інструменти, що допоможуть вам під час стейкінгу. + + + +## Ознайомтеся з інструментами налаштування вузла та клієнта {#node-and-client-tools} + +Існує безліч доступних опцій, які допоможуть вам з налаштуванням. Використовуйте наведені вище індикатори, щоб допомогти вам скористатися наведеними нижче інструментами. + + + +### Інструменти для вузлів + + + +Зверніть увагу на важливість вибору [міноритарного клієнта](/developers/docs/nodes-and-clients/client-diversity/), оскільки це покращує безпеку мережі й обмежує ваш ризик. Інструменти, які дають змогу налаштувати міноритарний клієнт, позначаються як «мультиклієнт». + +### Генератори ключів + +Ці інструменти можна використовувати як альтернативу [CLI депозиту на стейкінг](https://github.com/ethereum/staking-deposit-cli/), щоб допомогти з генерацією ключів. + + + +Маєте пропозицію щодо інструменту стейкінгу, який ми пропустили? Ознайомтеся з нашою [політикою щодо переліку продуктів](/contributing/adding-staking-products/), щоб дізнатися, чи підійде він, і надіслати його на розгляд. + +## Ознайомтеся з інструкціями щодо самостійного стейкінгу {#staking-guides} + + + +## Поширені запитання {#faq} + +Це кілька найпоширеніших запитань про стейкінг, про які варто знати. + + + +Валідатор — це віртуальна сутність, яка живе на Ethereum і бере участь у консенсусі протоколу Ethereum. Валідатори представлені балансом, відкритим ключем та іншими властивостями. Клієнт валідатора — це програмне забезпечення, яке діє від імені валідатора, зберігаючи та використовуючи його закритий ключ. Один клієнт валідатора може містити багато пар ключів, керуючи багатьма валідаторами. + + + + +Для активації кожної пари ключів, пов’язаної з валідатором, потрібно рівно 32 ETH. Внесення для одного набору ключів більшої суми ETH не збільшує потенціал винагороди, оскільки кожен валідатор обмежений ефективним балансом 32 ETH. Це означає, що ставка виконується з кроком 32 ETH, кожен із власним набором ключів і балансу. + +Не вносьте більше ніж 32 ETH за один валідатор. Це не збільшить ваші винагороди. Якщо для валідатора було встановлено адресу для виведення коштів, зайві кошти понад 32 ETH автоматично буде виведено на цю адресу під час наступного проходження валідатора. + +Якщо самостійний стейкінг здається вам надто вимогливим, спробуйте скористатися постачальником стейкінгу як послуги або, якщо ви працюєте з менше ніж 32 ETH, розгляньте варіант використання пулів стейкінгу. + + + +Перехід в автономний режим, коли мережа фіналізується належним чином, НЕ призведе до скорочення. Невеликі штрафи за бездіяльність стягуються, якщо ваш валідатор недоступний для перевірки певної епохи (кожна тривалістю 6,4 хвилини), але це дуже відрізняється від скорочення. Ці штрафи трохи менші, ніж винагорода, яку б ви отримали, якби валідатор був доступний для підтвердження, а збитки можна відшкодувати за приблизно стільки ж часу, коли ви знову в мережі. + +Зауважте, що штрафи за бездіяльність пропорційні кількості валідаторів, які одночасно перебувають в автономному режимі. У випадках, коли велика частина мережі одночасно перебуває в автономному режимі, штрафи для кожного із цих валідаторів будуть більшими, ніж коли один валідатор недоступний. + +У надзвичайних випадках, якщо мережа припиняє фіналізацію внаслідок того, що понад третина валідаторів перебуває поза мережею, ці користувачі постраждають від так званого квадратичного витоку бездіяльності, тобто експоненціального витоку ETH з облікових записів валідаторів, що перебувають поза мережею. Це дає змогу мережі зрештою самовідновлюватися шляхом спалювання ETH неактивних валідаторів, доки їхній баланс не досягне 16 ETH, після чого їх буде автоматично видалено з пулу валідаторів. Решта онлайн-валідаторів згодом знову складатиме понад 2/3 мережі, задовольняючи супербільшість, необхідну для повторного завершення ланцюжка. + + + +Якщо коротко, це ніколи не може бути повністю гарантовано, але якщо ви дієте добросовісно, ​​запускаєте міноритарний клієнт і зберігаєте свої ключі підпису лише на одній машині одночасно, ризик отримати скорочення майже дорівнює нулю. + +Є лише кілька конкретних типів дій, через які валідатор може бути скорочено й виключено з мережі. На момент написання статті скорочення, які виникли, були виключно продуктом надлишкових установок апаратного забезпечення, коли ключі підпису зберігаються на двох окремих машинах одночасно. Це може ненавмисно призвести до подвійного голосування від ваших ключів, що є порушенням, яке може каратися скороченням. + +Запуск клієнта супербільшості (будь-якого клієнта, який використовується понад 2/3 мережі) також може каратися скороченням, якщо цей клієнт має помилку, яка призводить до розгалуження ланцюга. Це може призвести до несправної вилки, яку буде завершено. Для виправлення назад до запланованого ланцюга потрібно було б подати навколишнє голосування, спробувавши скасувати завершений блок. Це також є порушенням, яке може призвести до скорочення, але його можна уникнути, просто запустивши натомість міноритарний клієнт. + +Еквівалентні помилки в міноритарному клієнті ніколи не завершаться і, отже, ніколи не призведуть до навколишнього голосування, натомість буде просто застосовано штрафи за бездіяльність, а не скорочення. + + + + + +Окремі клієнти можуть дещо різнитися за продуктивністю та інтерфейсом користувача, оскільки кожен розробляється різними командами з використанням різних мов програмування. Потрібно зазначити, що жоден із них не є «найкращим». Усі виробничі клієнти — це чудові частини програмного забезпечення, які виконують однакові основні функції для синхронізації та взаємодії з блокчейном. + +Оскільки всі робочі клієнти надають однакову базову функціональність, насправді дуже важливо вибрати міноритарний клієнт, тобто будь-який клієнт, який зараз НЕ використовується більшістю валідаторів у мережі. Це може здатися нерозумним, але запуск клієнта більшості або надбільшості піддає вас підвищеному ризику скорочення в разі помилки в цьому клієнті. Запуск міноритарного клієнта різко обмежує ці ризики. + +Докладніше про те, чому різноманітність клієнтів є критичною + + + +Попри те що віртуальний приватний сервер (VPS) можна використовувати як заміну домашнього обладнання, фізичний доступ і розташування клієнта валідатора має значення. Централізовані хмарні рішення, як-от Amazon Web Services або Digital Ocean, дають змогу уникнути потреби в отриманні й експлуатації обладнання коштом централізації мережі. + +Що більше клієнтів валідатора працює в одному централізованому хмарному сховищі, то небезпечніше воно стає для цих користувачів. Будь-яка подія, яка виводить цих провайдерів в автономний режим, — атака, нормативні вимоги чи просто перебої в електропостачанні/інтернеті — призведе до того, що кожен клієнт валідатора, який покладається на цей сервер, вийде в автономний режим у той самий час. + +Штрафи за офлайн пропорційні кількості інших користувачів, які перебувають офлайн одночасно. Використання VPS значно підвищує ризик того, що покарання за автономний режим будуть більш суворими, а також підвищує ризик квадратичного витоку або скорочення у разі достатньо великого збою. Щоб мінімізувати власний ризик і ризик для мережі, користувачам наполегливо рекомендується придбати й використовувати власне обладнання. + + + + +Виведення будь-яких коштів із Beacon Chain вимагає зазначення ідентифікаційних даних виведення. + +Нові стейкери встановлюють їх під час створення ключів і внесення депозиту. Наявні стейкери, які ще не вказали їх, можуть оновити свої ключі для підтримки цієї функціональності. + +Якщо облікові дані для виведення коштів встановлено, винагороди (накопичені ETH понад початкові 32) періодично розподілятимуться на вказану адресу автоматично. + +Щоб розблокувати й повернути собі повну суму, вам необхідно також завершити процес виходу зі свого валідатора. + +Докладніше про виведення коштів під час стейкінгу + + +## Довідкові джерела {#further-reading} + +- [Проблема різноманітності клієнтів Ethereum](https://hackernoon.com/ethereums-client-diversity-problem) — _@emmanuelawosika, 2022_ +- [Допомога у різноманітності клієнтів](https://www.attestant.io/posts/helping-client-diversity/) — _Джим Макдональд, 2022_ +- [Різноманітність клієнтів на консенсусному рівні Ethereum](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) — _jmcook.eth 2022_ +- [Як: придбати обладнання для валідатора Ethereum](https://www.youtube.com/watch?v=C2wwu1IlhDc) — _EthStaker 2022_ +- [Крок за кроком: як приєднатися до тестової мережі Ethereum 2.0](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) — _Butta_ +- [Поради щодо запобігання скороченням Eth2](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) — _Рауль Джордан, 2020_ diff --git a/public/content/translations/uk/staking/withdrawals/index.md b/public/content/translations/uk/staking/withdrawals/index.md new file mode 100644 index 00000000000..5e893c7736c --- /dev/null +++ b/public/content/translations/uk/staking/withdrawals/index.md @@ -0,0 +1,217 @@ +--- +title: Виведення ставок +description: На сторінці наведено стислий опис виведення коштів під час стейкінгу, принципу роботи цієї функції, а також порядку дій стейкерів, які бажають отримати свої винагороди. +lang: uk +template: staking +image: /staking/leslie-withdrawal.png +alt: Носоріг Леслі з її винагородами за стейкінг +sidebarDepth: 2 +summaryPoints: + - Поліпшення Shanghai/Capella дало змогу виводити кошти під час стейкінгу на Ethereum. + - Оператори валідаторів повинні надати адресу для виведення коштів, щоб увімкнути цю функцію. + - Винагороди автоматично розподіляються кожні кілька днів. + - Валідатори, які повністю виходять зі стейкінгу, отримають залишок балансу. +--- + + +Функцію виведення коштів під час стейкінгу було запроваджено під час поліпшення Shanghai/Capella, яке відбулося 12 квітня 2023 року. Докладніше про поліпшення Shanghai/Capella + + +Під **виведенням коштів під час стейкінгу** мається на увазі переведення ефірів (ETH) з облікового запису валідатора на рівні консенсусу Ethereum (Beacon Chain) на рівень виконання, на якому з ними можна здійснювати транзакції. + +**Винагороди за залишок** понад 32 ETH автоматично й регулярно надсилатимуться на адресу виведення, яку пов’язано з кожним валідатором і надано користувачем. Користувачі також можуть **повністю вийти зі стейкінгу**, у такий спосіб розблокувавши свій загальний баланс валідатора. + +## Винагорода за стейкінг {#staking-rewards} + +Виплати винагород автоматично обробляються для активних рахунків валідаторів із максимально можливим ефективним балансом 32 ETH. + +Будь-який залишок понад 32 ETH, отриманий через винагороди, фактично не внесе вкладу в капітал і не збільшить вагу цього валідатора в мережі, і тому автоматично виводиться як виплата винагороди кожні кілька днів. Ці винагороди не потребують жодної дії від оператора перевірки. Потрібно лише один раз надати адресу для виведення коштів. Усе це ініціюється на рівні консенсусу, а отже платити за газ (плату за транзакцію) на будь-якому кроці не потрібно. + +### Як ми досягли цього? {#how-did-we-get-here} + +Протягом останніх кількох років Ethereum пройшов кілька оновлень мережі, переходячи до мережі, захищеної самим ETH, а не енергозатратним майнінгом, як це відбувалося раніше. Участь у консенсусі на Ethereum зараз називається «стейкінгом», оскільки учасники добровільно заблокували свої ефіри (ETH), виконавши «ставку», щоб мати змогу брати участь у роботі мережі. Користувачі, які дотримуються правил, будуть винагороджені, тоді як спроби обману можуть призвести до покарання. + +З моменту запуску контракту на депозити для стейкінгу в листопаді 2020 року кілька сміливих піонерів Ethereum добровільно заблокували кошти для активації «валідаторів» — спеціальних облікових записів, які мають право формально підтверджувати та пропонувати блоки відповідно до правил мережі. + +До оновлення Shanghai/Capella не можна було використовувати поставлені ETH або отримувати до них доступ. Тепер ви можете за бажанням автоматично отримувати свої винагороди на вибраний рахунок, а також будь-коли вивести поставлені ETH. + +### Як підготуватися? {#how-do-i-prepare} + + + +### Важливі зауваження {#important-notices} + +Надання адреси для виведення коштів є обов’язковим кроком для будь-якого облікового запису валідатора, перш ніж він буде здатний вивести ETH зі свого балансу. + + + Кожному обліковому запису валідатора можна призначити лише одну адресу виведення коштів, один раз. Щойно адресу вибрано й надіслано на рівень консенсусу, її не можна скасувати або змінити знову. Перевірте двічі приналежність і точність наданої адреси, перш ніж надсилати її. + + +Ненадання цієї адреси не становить загрози для ваших коштів, якщо ваша мнемонічна/кодова фраза залишається в безпеці офлайн і не піддавалася жодним вторгненням або компрометації. Збій додавання облікових даних для виведення коштів просто призведе до того, що ETH залишаться заблокованими на рахунку валідатора доти, доки не буде надано адресу для виведення коштів. + +## Повний вихід зі стейкінгу {#exiting-staking-entirely} + +Зазначення адреси для виведення коштів є обов'язковим перед переказом _будь-якої суми_ коштів із балансу облікового запису валідатора. + +Користувачі, які планують повністю вийти зі стейкінгу й вивести всі свої кошти, повинні також підписати та розіслати повідомлення про «добровільний вихід» з ключами валідатора, що запустить процес виходу зі стейкінгу. Це робиться за допомогою вашого клієнта валідатора, надсилається на ваш вузол консенсусу й не вимагає використання газу. + +Час, необхідний для виходу валідатора зі стейкінгу, залежить від кількості інших валідаторів, які також виходять одночасно. Тому тривалість процесу виходу може різнитися. Після завершення процесу цей обліковий запис більше не несе відповідальності за виконання обов'язків мережі валідаторів, не має права на отримання винагороди й не має поставлених ефірів (ETH). Тепер обліковий запис буде позначений для повного виведення коштів. + +Після позначення облікового запису для повного виведення коштів та надання відповідних даних для виведення користувачу потрібно лише чекати. Облікові записи постійно автоматично перевіряються пропонентами блоків на наявність коштів після вибуття зі стейкінгу, і ваш баланс буде повністю переказаний (ця операція також називається «повним виведенням») під час наступного проходження. + +## Коли активуються можливості виведення під час стейкінгу? {#when} + +Можливості виведення під час стейкінгу доступні постійно! Функціонал виведення було активовано в межах оновлення Shanghai/Capella, яке відбулося 12 квітня 2023 року. + +Оновлення Shanghai/Capella дало змогу повертати раніше вкладені ETH на звичайні облікові записи Ethereum. Це закрило коло стейкінгової ліквідності та привело Ethereum на крок ближче до створення стійкої, масштабованої, безпечної децентралізованої екосистеми. + +- [Докладніше про історію Ethereum](/history/) +- [Більше про план розвитку Ethereum](/roadmap/) + +## Як працюють платежі з виведення коштів? {#how-do-withdrawals-work} + +Наявність чи відсутність у конкретного валідатора права на виведення визначається станом самого облікового запису валідатора. У будь-який момент визначення того, чи слід ініціювати виведення з облікового запису, відбувається без жодної участі користувача — процес виконується повністю автоматично на рівні консенсусу в неперервному циклі. + +### Краще сприймаєте інформацію візуально? {#visual-learner} + +Ознайомтеся з поясненням щодо функції виведення під час стейкінгу Ethereum від Finematics: + + + +### «Проходження» валідатора {#validator-sweeping} + +Коли валідатору заплановано запропонувати наступний блок, він зобов'язаний створити чергу виведення, до 16 можливих виведень. Це робиться так: індекси валідаторів перебираються починаючи з 0, і для кожного визначається, чи є можливе виведення для облікового запису відповідно до правил протоколу. Якщо виведення можливе, обліковий запис додається до черги. Валідатор, налаштований на те, щоб пропонувати наступний блок, продовжить роботу з місця, де зупинився попередній, просуваючись впорядковано нескінченно. + + +Уявіть аналоговий годинник. Стрілка на годиннику вказує на годину та рухається в одному напрямку, не пропускаючи жодної години, і зрештою повертається до початку після досягнення останнього числа.

. +Тепер замість чисел від 1 до 12 уявіть, що на годиннику від 0 до N (загальна кількість облікових записів валідаторів, які коли-небудь були зареєстровані на рівні консенсусу, понад 500 000 станом на січень 2023 року).

Стрілка на годиннику вказує на наступний валідатор, який потрібно перевірити на наявність коштів, що підлягають виведенню. Стрілка починає з 0 і просувається повним колом, не пропускаючи жодного облікового запису. Коли буде досягнуто останній валідатор, цикл розпочнеться з початку. +
+ +#### Перевірка облікового запису на виведення коштів {#checking-an-account-for-withdrawals} + +Коли ініціатор проходить валідатори й перевіряє їх на можливу необхідність виведення коштів, кожен валідатор, який перевіряється, оцінюється короткою серією питань, щоб визначити, чи слід викликати виведення коштів, і якщо так, то скільки ETH слід вивести. + +1. **Чи була надана адреса для виведення коштів?** Якщо не вказано жодної адреси виведення коштів, рахунок пропускається, а виведення не ініціюється. +2. **Чи можна завершити роботу валідатора й вивести кошти?**Якщо валідатор повністю завершив роботу й ми досягли того, що особовий рахунок вважається «доступним для виведення», буде оброблено повне виведення коштів. Це переведе весь залишковий баланс на адресу виведення коштів. +3. **Чи максимально можливий ефективний баланс становить 32?** Якщо обліковий запис має облікові дані для виведення коштів, не повністю вийшов зі стейкінгу та містить винагороди більше за 32, буде оброблено часткове зняття коштів, яке передає лише винагороди понад 32 на адресу виведення користувача. + +Існує лише дві дії, які виконуються операторами валідатора протягом його життєвого циклу, які безпосередньо впливають на цей потік: + +- надання облікових даних для виведення, щоб дозволити будь-яку форму виведення; +- вихід із мережі, що призведе до повного виведення коштів. + +### Без газу {#gas-free} + +Цей підхід до виведення коштів під час стейкінгу не вимагає, щоб стейкери надсилали транзакції вручну для запиту на виведення певної суми ETH. Це означає, що **не потрібно сплачувати за газ (комісію за транзакцію)**, а виведення не конкурують за наявний блоковий простір виконавчого рівня. + +### Як часто я отримуватиму винагороди за стейкінг? {#how-soon} + +В одному блоці можна обробити щонайбільше 16 виведень. З такою швидкістю можна обробити 115 200 виведень валідаторів за день (за умови відсутності пропущених слотів). Як зазначено вище, валідатори без виправданих виведень буде пропущено, що скорочує час завершення процесу. + +Розширюючи цей розрахунок, ми можемо оцінити час, необхідний для обробки певної кількості виведень: + + + +| Кількість виведень коштів | Час до завершення | +| :-----------------------: | :---------------: | +| 400,00 | 3,5 дня | +| 500,00 | 4,3 дня | +| 600,00 | 5,2 дня | +| 700,00 | 6,1 дня | +| 800,00 | 7,0 дня | + + + +Як бачите, цей процес сповільнюється зі зростанням кількості валідаторів у мережі. Збільшення кількості пропущених слотів може пропорційно уповільнити цей процес, але в загальному це буде представляти повільніший варіант можливих результатів. + +## Часті питання {#faq} + + +Ні, процес надання облікових даних для виведення коштів є одноразовим, а адресу не можна змінити після надсилання. + + + +Коли адресу виведення встановлено на виконавчому рівні, облікові дані виведення для цього валідатора змінюються назавжди. Це означає, що старі облікові дані більше не працюватимуть, а нові будуть спрямовані до облікового запису на виконавчому рівні. + +Адресами виведення коштів може бути смартконтракт (контролюється його кодом) або зовнішній обліковий запис (EOA, контролюється його приватним ключем). Зараз ці облікові записи не мають змоги передавати повідомлення назад на рівень консенсусу, що б сигналізувало про зміну облікових даних валідатора, а впровадження цієї функціональності додало б зайвої складності протоколу. + +Замість зміни адреси виведення коштів для конкретного валідатора користувачі можуть установити як адресу виведення коштів смартконтракт, який може обробляти обертання ключів, як-от Safe. Користувачі, які налаштовують свої кошти до свого особистого зовнішнього облікового запису (EOA), можуть здійснити повне виведення для зняття всіх своїх зареєстрованих коштів, а потім знову зареєструватися, використовуючи нові облікові дані. + + + + +Якщо ви є частиною пулу стейкінгу чи маєте токени стейкінгу, вам слід звернутися до свого постачальника послуг, щоб отримати докладнішу інформацію про те, як здійснюється виведення стейкінгу, оскільки кожна служба працює по-своєму. + +Загалом, користувачі повинні мати змогу повернути основні поставлені ETH або змінити постачальника стейкінгу, яким вони користуються. Якщо певний пул стає надто великим, кошти можуть бути виведені, викуплені та знову застосовані з меншим постачальником. Або, якщо ви накопичили достатню кількість ETH, ви можете займатися стейкінгом вдома. + + + + +Так, якщо ваш валідатор надав адресу для виведення коштів. Її потрібно надати один раз для початкової активації виведення коштів, після чого виплати винагород автоматично запускатимуться кожні кілька днів під час кожного проходження валідатора. + + + + +Ні, якщо ваш валідатор все ще активний у мережі, повне виведення не відбудеться автоматично. Для цього потрібно вручну ініціювати добровільне виведення. + +Після завершення процесу виведення валідатора, якщо обліковий запис має дані для виведення, залишок коштів буде виведений під час наступного проходження валідатора. + + + + +Виведення розроблені для автоматичного виконання, переносячи будь-яку суму ETH, яку не було внесено користувачем для стейкінгу. Це, зокрема, повний баланс для облікових записів, які завершили процес виходу. + +Неможливо вручну запитати конкретну суму ETH для виведення. + + + + +Операторам валідаторів рекомендується відвідати сторінку Виведення на стартовій платформі стейкінгу, на якій ви знайдете докладніші відомості про те, як підготувати свій валідатор до виведення коштів. підготовку, часові рамки подій і докладнішу інформацію про те, як працює процес виведення коштів. + +Щоб спробувати налаштування спочатку на тестовій мережі, почніть роботу на стартовій платформі стейкінгу в тестовій мережі Goerli. + + + + +Ні. Після виходу валідатора й повного зняття його балансу будь-які додаткові кошти, внесені на цей валідатор, автоматично будуть переведені на адресу для виведення під час наступного проходження валідатора. Для повторного стейкінгу ETH потрібно активувати новий валідатор. + + +## Довідкові джерела {#further-reading} + +- [Виведення на стартовій платформі стейкінгу](https://launchpad.ethereum.org/withdrawals) +- [EIP-4895: Протокол ланцюжка Beacon здійснює виведення як операції](https://eips.ethereum.org/EIPS/eip-4895) +- [Ethereum Cat Herders — Шанхай](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) +- [PEEPanEIP #94: Виведення ETH під час стейкінгу (тестування) із Potuz і Hsiao-Wei Wang](https://www.youtube.com/watch?v=G8UstwmGtyE) +- [PEEPanEIP#68: EIP-4895: Ланцюжок Beacon виконує виведення як операції, Алекс Стокс](https://www.youtube.com/watch?v=CcL9RJBljUs) +- [Розуміння ефективного балансу валідатора](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/uk/web3/index.md b/public/content/translations/uk/web3/index.md similarity index 100% rename from src/content/translations/uk/web3/index.md rename to public/content/translations/uk/web3/index.md diff --git a/src/content/translations/uk/zero-knowledge-proofs/index.md b/public/content/translations/uk/zero-knowledge-proofs/index.md similarity index 100% rename from src/content/translations/uk/zero-knowledge-proofs/index.md rename to public/content/translations/uk/zero-knowledge-proofs/index.md diff --git a/public/content/translations/vi/dao/index.md b/public/content/translations/vi/dao/index.md new file mode 100644 index 00000000000..57220cacd81 --- /dev/null +++ b/public/content/translations/vi/dao/index.md @@ -0,0 +1,165 @@ +--- +title: Các tổ chức tự trị phi tập trung (DAO) +description: Tổng quan về DAO trên Ethereum +lang: vi +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: Đại diện cho biểu quyết của tổ chức tự trị phi tập trung (DAO) đối với một đề xuất. +summaryPoint1: Các cộng đồng được sở hữu bởi thành viên mà không cần sự lãnh đạo tập trung. +summaryPoint2: Một cách an toàn để hợp tác với những người lạ trên Internet. +summaryPoint3: Một nơi an toàn để cam kết tài trợ cho một quỹ cụ thể. +--- + +## Các tổ chức tự trị phi tập trung (DAO) là gì? {#what-are-daos} + +Tổ chức tự trị phi tập trung (DAO) là một tổ chức thuộc quyền sở hữu tập thể, hoạt động dựa trên công nghệ chuỗi khối (blockchain) hướng đến một sứ mệnh chung. + +Các DAO này cho phép chúng ta làm việc cùng những người đồng chí hướng mà không cần đến một cá nhân lãnh đạo đủ tin cậy để quản lý ngân sách và vận hành của tổ chức. Trong tổ chức không có một CEO nhất định có khả năng tiêu tiền bừa bãi, hay một CFO có quyền hành sửa đổi ngân sách. Các quy tắc dựa trên công nghệ chuỗi khối (blockchain) được viết trong các đoạn mã nguồn sẽ quyết định cách hoạt động của tổ chức, và cách ngân khố được sử dụng. + +Chúng có những ngân khố riêng mà không ai có thẩm quyền tiếp cận mà không có sự chấp thuận của nhóm. Các quyết định được quản lý bằng các đề xuất và bầu cử, để đảm bảo tất cả thành viên trong tổ chức đều có tiếng nói, và đảm bảo mọi việc đều diễn ra trong minh bạch trên chuỗi (on-chain). + +## Tại sao chúng ta lại cần đến các tổ chức tự trị phi tập trung (DAO)? {#why-dao} + +Để bắt đầu xây dựng một tổ chức cần có đầu tư và tiền bạc, cộng với sự hợp tác của những người khác. Điều này đòi hỏi phải có rất nhiều sự tin cậy giữa những người mà bạn đang cộng tác. Tuy nhiên, rất khó để tin tưởng ai đó mà bạn mới chỉ tương tác trên Internet. Với các tổ chức tự trị phi tập trung (DAO), bạn không cần phải tin tưởng bất kì ai khác trong nhóm. Bạn chỉ cần tin tưởng vào những đoạn mã của DAO, những đoạn mã này minh bạch 100% và có thể được xác minh bởi bất kì người nào. + +Điều này mở ra vô vàn cơ hội mới cho những sự hợp tác và điều phối toàn cầu. + +### Một so sánh {#dao-comparison} + +| Tổ chức tự trị phi tập trung (DAO) | Một tổ chức truyền thống | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| Thường có cấu trúc rõ ràng và dân chủ toàn diện. | Thường có cấu trúc phân tầng. | +| Đòi hỏi các thành viên phải bỏ phiếu cho bất kì một thay đổi nào. | Tùy vào cấu trúc, thay đổi có thể đến từ một đảng phái duy nhất, hoặc việc bỏ phiếu có thể được phe cầm quyền đề nghị. | +| Lá phiếu được đếm và kết quả bỏ phiếu được thi hành một cách tự động mà không cần đến một bên trung gian. | Nếu việc bỏ phiếu được cho phép, lá phiếu được đếm trong nội bộ tổ chức và kết quả của cuộc bỏ phiếu được thi hành một cách thủ công. | +| Những dịch vụ được cung cấp bởi tổ chức được thực hiện một cách tự động theo một phương thức phi tập trung (ví dụ: việc phân bổ của những khoản tiền từ thiện). | Đòi hỏi phải có sự tham gia của con người hoặc sự tự động hóa được điều khiển bởi một quyền lực trung ương, dễ bị thao túng. | +| Mọi hoạt động đều minh bạch và công khai. | Hoạt động thường mang tính riêng tư và không có sự tham gia của cộng đồng. | + +### Những ví dụ về tổ chức tự trị phi tập trung (DAO) {#dao-examples} + +Để giúp làm rõ hơn khái niệm này, sau đây là một số ví dụ về các tổ chức tự trị phi tập trung (DAO): + +- Tổ chức từ thiện - Bạn có thể nhận quyên góp từ bất kỳ ai trên thế giới, và bầu chọn nên hỗ trợ quyên góp cho tổ chức, lý tưởng nào. +- Quyền sở hữu tập thể - Bạn có thể mua tài sản số hoặc vật chất và các thành viên trong tổ chức có thể bầu chọn cách sử dụng các tài sản này. +- Các khoản đầu tư và tài trợ - bạn có thể tạo ra một quỹ đầu tư từ vốn góp chung và bỏ phiếu cho những dự án mà quỹ muốn rót vốn. Tiền lời sau đó có thể được tái phân bổ cho những thành viên của tổ chức (DAO). + +## Những tổ chức tự trị phi tập trung (DAO) hoạt động như thế nào? {#how-daos-work} + +Phần cốt lõi của một tổ chức tự trị phi tập trung (DAO) là các Hợp đồng thông minh, là thứ sẽ đặt ra các quy tắc trong tổ chức và nắm giữ ngân khố cả nhóm. Một khi hợp đồng đã được kích hoạt trên Ethereum, không ai có thể thay đổi luật chơi ngoại trừ bằng một cuộc bỏ phiếu. Nếu bất kì ai cố gắng làm một điều gì đó nằm ngoài phạm vi của luật chơi và logic trong đoạn mã đã được lập trình, hành động đó sẽ thất bại. Và bởi vì ngân khố cũng được định nghĩa bởi hợp đồng thông minh nên không ai có thể dùng tiền mà không có sự chấp thuận của nhóm. Điều này đồng nghĩa với việc những tổ chức tự trị phi tập trung (DAO) không cần một thẩm quyền trung ương. Thay vào đó, tổ chức sẽ đưa ra quyết định tập thể và các khoản chi được thông qua một cách tự động khi đã đủ số phiếu. + +Cách tổ chức này là có thể vì những hợp đồng thông minh trở nên không thể bị thay đổi một khi chúng đã được kích hoạt trên Ethereum. Bạn không thể chỉnh sửa những đoạn mã trong hợp đồng (những điều luật của DAO) mà không bị người khác phát hiện vì tất cả đều được công khai. + + + Hiểu thêm về những hợp đồng thông minh + + +## Ethereum và những tổ chức tự trị phi tập trung (DAO) {#ethereum-and-daos} + +Ethereum là nền tảng hoàn hảo cho những tổ chức tự trị phi tập trung (DAO) bởi một số lý do sau: + +- Cơ chế đồng thuận của Ethereum có sự phân tán đủ rộng và bảng dày thành tích đủ lớn để cho các tổ chức có thể tin tưởng vào mạng lưới. +- Mã của hợp đồng thông minh không thể chỉnh sửa được một khi được kích hoạt, kể cả bởi những người chủ sở hữu của nó. Điều này cho phép tổ chức tự trị phi tập trung (DAO) vận hành bởi những luật chơi đã được lập trình từ ban đầu. +- Các hợp đồng thông minh có thể gửi/nhận tiền. Không có chúng, bạn sẽ cần một bên trung gian đủ tin cậy để quản lý ngân khố của nhóm. +- Cộng đồng của Ethereum mang tính tương hỗ nhiều hơn là cạnh tranh. Điều này cho phép các phương pháp hay nhất và những hệ thống bổ trợ được ra đời một cách nhanh chóng. + +## Các pháp chế của DAO {#dao-governance} + +Có rất nhiều yếu tố cần xem xét khi điều hành một DAO, chẳng hạn như cách thức bỏ phiếu và đề xuất hoạt động. + +### Sự uỷ quyền {#governance-delegation} + +Sự uy quyền giống như phiên bản DAO của đại diện nền dân chủ. Các chủ sở hữu Token ủy quyền phiếu bầu cho những người dùng tự đề cử và cam kết đảm bảo quản trị giao thức và luôn cập nhật thông tin. + +#### Một ví dụ phổ biến {#governance-example} + +[ENS](https://claim.ens.domains/delegate-ranking)– Chủ sở hữu ENS có thể uỷ quyền phiếu bầu cho các thành viên trong cộng đồng để đại diện cho họ. + +### Quản lý giao dịch tự động {#governance-example} + +Ở nhiều DAO, các giao dịch sẽ được thực hiện tự động nếu một số thành viên bỏ phiếu đồng ý. + +#### Một ví dụ nổi tiếng {#governance-example} + +[Nouns](https://nouns.wtf) – Trong Nouns DAO, một giao dịch sẽ tự động được thực hiện nếu đáp ứng đủ số phiếu bầu và đa số phiếu ủng hộ, miễn là nó không bị những người sáng lập phủ quyết. + +### Quản trị đa chữ ký {#governance-example} + +Trong khi DAO có thể có hàng ngàn thành viên bỏ phiếu, tài khoản tiền có thể được lưu trữ trong một ví được chia sẻ bởi 5-20 thành viên cộng đồng hoạt động tích cực, được tin tưởng và thường công khai danh tính (được cộng đồng biết đến danh tính). Sau khi một cuộc bỏ phiếu được tiến hành, những người ký đa chữ ký sẽ thực hiện quyết định của cộng đồng. + +## Các luật của DAO {#dao-laws} + +Vào năm 1977, Wyoming đã phát minh ra LLC để bảo vệ các doanh nhân và giới hạn quyền của họ. Gần đây nhất, họ đã đi tiên phong trong luật DAO thiết lập tư cách pháp lý cho DAO. Hiện tại Wyoming, Vermont và quần đảo Virgin đã có đạo luật DAO dưới một số hình thức. + +### Một ví dụ nổi tiếng {#law-example} + +[CityDAO](https://citydao.io) – CityDAO đã sử dụng luật DAO của Wyoming để mua 40 mẫu đất gần Công viên Quốc gia Yellowstone. + +## Hội viên của tổ chức tự trị phi tập trung (DAO membership) {#dao-membership} + +Có những mô hình khác nhau cho hội viên của một tổ chức tự trị phi tập trung (DAO). Hội viên có thể quyết định việc bỏ phiếu vận hành như thế nào cũng như phần cốt lõi khác của DAO. + +### Hội viên dựa trên token {#token-based-membership} + +Thường hoàn toàn không cần sự cho phép, tùy thược vào loại token được sử dụng. Hầu hết các token quản trị này có thể được trao đổi tự do trên các sàn giao dịch phi tập trung. Một số khác có thể kiếm được thông qua cung cấp thanh khoản hoặc một vài cơ chế 'proof of work' khác. Dù bằng cách nào thì việc nắm giữ token giúp người sở hữu có quyền bỏ phiếu. + +_Token thường được dùng để quản trị những giao thức phi tập trung lớn hoặc/và chính những token đó._ + +#### Một ví dụ nổi tiếng {#token-example} + +[MakerDAO](https://makerdao.com) – Token của MakerDAO là MKR có sẵn trên các sàn giao dịch phi tập trung và bất kỳ ai cũng có thể mua để có quyền biểu quyết đối với tương lai của giao thức Maker. + +### Hội viên dựa trên cổ phần {#share-based-membership} + +Những tổ chức tự trị phi tập trung (DAO) dựa trên cổ phần cần đến sự cho phép nhiều hơn nhưng vẫn rất cởi mở. Bất kỳ ai cũng có thể đề xuất gia nhập DAO, bằng cách đóng góp cho tổ chức giá trị nào đó, thường dưới dạng token hoặc lao động. Cổ phần đại diện cho quyền bổ phiếu và quyền sở hữu trực tiếp. Hội viên có thể rời bỏ bất cứ lúc nào và được giữ toàn bộ ngân khố tương đương tỉ lệ hội viên đó nắm giữ. + +_Hình thức này thường được dùng cho những tổ chức có sự gắn kết cao và xoay quanh con người như những quỹ từ thiện, công đoàn và câu lạc bộ đầu tư. Nó cũng có thể quản trị những giao thức và token._ + +#### Một ví dụ nổi tiếng {#share-example} + +[MolochDAO](http://molochdao.com/) - Tổ chức tự trị phi tập trung Moloch chuyên về đầu tư cho các dự án liên quan đến Ethereum. Moloch yêu cầu hội viên tiềm năng nộp một đề xuất tham gia. Dự trên đề xuất đó, Moloch có thể đánh giá liệu bạn có kĩ năng chuyên môn và tài chính cần thiết để đưa ra những phán quyết sáng suốt về những ứng viên tương lai hay không. Bạn không thể mua quyền truy cập DAO trên một sàn dịch mở. + +### Tư cách hội viên dựa trên uy tín {#reputation-based-membership} + +Độ uy tín đại diện cho bằng chứng về sự tham gia và trao quyền biểu quyết trong DAO. Không giống như token hoặc tư cách hội viên dựa trên cổ phần, các DAO dựa trên uy tín không thể chuyển quyền sở hữu cho những người đóng góp. Độ uy tín không thể mua, chuyển nhượng hoặc ủy quyền; hội viên DAO phải xây dựng uy tín qua sự đóng góp. Bỏ phiếu trên chuỗi không yêu cầu sự cho phép và các hội viên tiềm năng có thể tự do gửi đề xuất tham gia DAO và yêu cầu độ uy tín và token như một phần thưởng để đổi lấy những đóng góp của họ. + +_Thường được sử dụng để phát triển và quản lí phi tập trung các giao thức và ứng dụng phi tập trung, nhưng cũng rất phù hợp với một loạt các tổ chức như tổ chức từ thiện, tập thể công nhân, câu lạc bộ đầu tư, v.v._ + +#### Một ví dụ nổi tiếng {#reputation-example} + +[DXdao](https://DXdao.eth.link) - DXdao là một tổ chức có quyền xây dựng và quản lý toàn cầu các giao thức và ứng dụng phi tập trung kể từ năm 2019. Nó thúc đẩy quản trị dựa trên quyền lực và sự đồng thuận đa chiều để điều phối và quản lý các quỹ, có nghĩa là không ai có thể dùng tiền để ảnh hưởng đến nó sau này. + +## Gia nhập / khởi phát một tổ chức tự trị phi tập trung (DAO) {#join-start-a-dao} + +### Gia nhập một tổ chức tự trị phi tập trung (DAO) {#join-a-dao} + +- [Những DAO trên Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [Danh sách các DAO của DAOHaus](https://app.daohaus.club/explore) +- [Danh sách các DAO của Tally.xyz](https://www.tally.xyz) + +### Khởi phát một DAO {#start-a-dao} + +- [Kêu gọi một DAO với DAOHaus](https://app.daohaus.club/summon) +- [Bắt đầu một Governor DAO với Tally](https://www.tally.xyz/add-a-dao) +- [Tạo ra một DAO được hỗ trợ bởi Aragon](https://aragon.org/product) +- [Khởi phát một thuộc địa](https://colony.io/) +- [Tạo một DAO với sự đồng thuận đa chiều DAOstack](https://alchemy.daostack.io/daos/create) + +## Đọc thêm {#further-reading} + +### Những bài viết về DAO {#dao-articles} + +- [DAO là gì?](https://aragon.org/dao) – [Aragon](https://aragon.org/) +- [Sổ tay DAO](https://daohandbook.xyz) +- [Ngôi nhà của các DAO](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) - [Metagame](https://wiki.metagame.wtf/) +- [Một DAO là gì và để làm gì?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) - [DAOhaus](https://daohaus.club/) +- [Làm thế nào để khởi phát một cộng đồng số hoạt động dựa trên DAO](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) - [DAOhaus](https://daohaus.club/) +- [DAO là gì?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) - [Coinmarketcap](https://coinmarketcap.com) +- [Đồng thuận đa chiều là gì?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) +- [DAO không phải là công ty: Khi sự phân quyền trong tổ chức tự trị có vai trò quan trọng, theo Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) +- [DAO, DAC, DA và Nhiều Hơn Nữa: Hướng Dẫn Thuật Ngữ Không Hoàn Chỉnh](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Ethereum Blog](https://blog.ethereum.org) + +### Video {#videos} + +- [DAO đóng vai trò gì trong tiền mã hóa?](https://youtu.be/KHm0uUPqmVE) +- [Một DAO có thể tạo nên một thành phố được không?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) - [TED](https://www.ted.com/) diff --git a/src/content/translations/vi/enterprise/index.md b/public/content/translations/vi/enterprise/index.md similarity index 100% rename from src/content/translations/vi/enterprise/index.md rename to public/content/translations/vi/enterprise/index.md diff --git a/public/content/translations/vi/nft/index.md b/public/content/translations/vi/nft/index.md new file mode 100644 index 00000000000..8750e58bc8e --- /dev/null +++ b/public/content/translations/vi/nft/index.md @@ -0,0 +1,94 @@ +--- +title: Mã thông báo không thể thay thế (NFT) +description: Tổng quan về NFT trên Ethereum +lang: vi +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: Biểu trưng của Eth được hiển thị qua ảnh ba chiều. +summaryPoint1: Một cách để đại diện cho bất kỳ thứ gì độc nhất dưới dạng tài sản dựa trên Ethereum. +summaryPoint2: NFT đang mang lại nhiều quyền lực hơn cho người tạo nội dung hơn bao giờ hết. +summaryPoint3: Được hỗ trợ bởi các hợp đồng thông minh trên chuỗi khối Ethereum. +--- + +## What are NFTs? {#what-are-nfts} + +NFT là các token độc nhất. Mỗi NFT có các thuộc tính khác nhau (không thể thay thế) và sở hữu tính khan hiếm có thể chứng minh được. Nó khác các loại token như ERC-20 mà mỗi token trong một tệp đều giống nhau y đúc và có cùng các thuộc tính ('thay thế được'). Bạn đâu để ý tờ tiền nào cùng 1 loại đang nằm trong ví của mình, bởi vì tờ tiền cùng loại cũng giống nhau và có giá trị bằng nhau. Tuy nhiên, bạn _phải_ để ý bạn đang sở hữu loại NFT nào, bởi vì chúng đều có các thuộc tính riêng khác nhau ('không thể thay thế'). + +Tính độc nhất của mỗi NFT cho phép chuyển hóa nhiều thứ như tác phẩm nghệ thuật, các bộ sưu tập, hoặc thậm chí là bất động sản thành token, trong đó một NFT độc nhất đại diện cho một tài sản thế giới thực hoặc một vật phẩm số. Quyền sở hữu của tài sản được bảo mật bởi chuỗi khối Ethereum – không một ai có thể chỉnh sửa chứng từ sở hữu hay sao chép/dán để cho ra đời một NFT mới. + + + +## Internet của tài sản {#internet-of-assets} + +NFT và Ethereum giải quyết một số vấn đề mà đang hiện tại tồn tại trên mạng. Trong bối cảnh mọi thứ dần trở nên số hóa, việc mô phỏng những tính chất của các món đồ vật lý như tính khan hiếm, sự đặc trưng, và chứng từ sở hữu là một nhu cầu cần thiết. bằng một cách mà không bị kiểm soát bởi một tổ chức tập trung. Ví dự như, với NFT, bạn có thể sở hữu một tệp nhạc mp3 mà không phụ thuộc vào một ứng dụng bất kỳ của một công ty nào, hoặc bạn có thể sở hữu một cái tên trên mạng xã hội có thể bán được hoặc hoán đổi được, mà không bị một nhà cung cấp nền tảng nào tùy tiện tước đi. + +Sau đây là một phép so sánh giữa Internet của NFT và Internet mà hầu hết chúng ta dang dùng ngày nay... + +### Một phép so sánh {#nft-comparison} + +| Internet của NFT | Internet ngày nay | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Bạn sở hữu tài sản của chính mình! Chỉ có mình bạn bán hoặc hoán đổi chúng được. | Bạn thuê một tài sản từ một tổ chức nào đó. | +| NFT mang tính chất đặc trưng về số hóa, không có NFT nào là hoàn toàn giống nhau. | Một bản sao của một thực thể thường không phân biệt được với bản gốc. | +| Quyền sở hữu của một NFT được lưu trữ trên chuỗi khối mà bất kì ai cũng có thể xác thực được. | Chứng từ sở hữu của những sản phẩm số được lưu trữ trên máy chủ kiểm soát bởi các định chế - bạn chỉ có cách tin vào lời của họ. | +| NFT là hợp đồng thông minh trên Ethereum. Điều này có nghĩa là chúng có thể được dùng dễ dàng trong các hợp đồng thông minh và ứng dụng khác trên Ethereum! | Các công ty với vật phẩm số thường yêu cầu cơ sở hạ tầng "khu vườn có tường rào" của riêng họ. | +| Các nhà sáng tạo nội dung có thể bán sản phẩm của họ ở bất kì đâu và có thể tiếp cận với một thị trường toàn cầu. | Các nhà sáng tạo nội dung dựa vào cơ sở hạ tầng và hệ thống phân phối của những nền tảng mà họ sử dụng. Phương thức này thường chịu những hạn chế liên quan đến điều khoản sử dụng và các giới hạn địa lý. | +| Nhà sáng tạo NFT có thể giữ quyền sở hữu với các tác phẩm của mình, và thiết lập phí bản quyền thẳng trong hợp đồng NFT. | Các nền tảng, ví dụ như các dịch vụ phát trực tuyến âm nhạc, nắm giữ phần lớn lợi nhuận từ việc bán sản phẩm. | + +## NFT hoạt động như thế nào? {#how-nfts-work} + +Như token bất kì nào được phân phối trên Ethereum, NFT được phân phối bởi một hợp đồng thông minh. Hợp đồng thông minh tuân thủ một vài tiêu chuẩn NFT (thường là ERC-721 hoặc ERC-1155) có chức năng xác định tính năng của hợp đồng đó. Hợp đồng đó có thể tạo ra ('khởi tạo') nhiều NFT và phân bổ chúng cho một chủ sở hữu riêng biệt. Quyền sở hữu được định sẵn trong hợp đồng bằng cách liên kết các NFT cụ thể tới từng địa chỉ cụ thể. NFT có một mã ID và cũng thường có siêu dữ liệu liên kết làm cho token đó trở nên độc nhất. + +Khi ai đó tạo ra hoặc khởi tạo một NFT, họ thường dùng một phương trình trong hợp đồng thông mình mà phân bổ một NFT cụ thể đó tới địa chỉ của họ. Thông tin này được lưu trữ trong kho của hợp đồng đó, mà cũng là một phần của chuỗi khối. Người sáng tạo ra hợp đồng có thể viết thêm logic vào trong hợp đồng, ví dụ như giới hạn tổng số lượng hay xác định một phí bản quyền cần trả cho người sáng tạo đó mỗi lần một token được chuyển đi. + +## NFT được dùng để làm gì? {#nft-use-cases} + +NFT được dùng cho nhiều thứ, bao gồm: + +- chứng minh rằng bạn đã tham dự một sự kiện +- chứng nhận rằng bạn đã hoàn thành một khóa học +- những vật phẩm sở hữu được cho các trò chơi +- nghệ thuật số +- chuyển hóa các tài sản thực thành token +- chứng nhận định danh trực tuyến của bạn +- quản lý quyền truy cập vào nội dung +- quản lý vé +- tên miền mạng phi tập trung +- tài sản thế chấp trong DeFi + +Có thể bạn là một nghệ sĩ muốn chia sẻ tác phẩm của mình bằng NFT mà không bị mất quyền kiểm soát chúng hoặc hy sinh lợi nhuận của mình cho các bên trung gian. Bạn có thể tạo một hợp đồng mới và định sẵn số lượng NFT, thuộc tính của chúng và một liên kết tới một tác phẩm nghệ thuật cụ thể nào đó. Là nghệ sĩ, bạn có thể lập trình vào hợp đồng thông minh phí bản quyền sẽ được trả cho bạn (ví dụ như chuyển 5% của giá bán tới người sở hữu hợp đồng mỗi lần một NFT được chuyển đi). Bạn luôn luôn có thể chứng minh rằng bạn đã tạo ra những NFT đó bởi vì bạn sở hữu ví mà triển khai hợp đồng đó. Người mua của bạn có thể dễ dàng chứng minh rằng họ sở hữu NFT xác thực từ bộ sưu tập của bạn bởi vì địa chỉ ví của họ được liên kết với một token trong hợp đồng thông minh của bạn. Họ có thể dùng nó trong hệ sinh thái Ethereum và yên tâm về tính xác thực của nó. + +Hoặc xem nó như một vé tham gia một sự kiện thể thao. Giống như một nhà tổ chức sự kiện có thể lựa chọn số lượng vé sẽ bán, tác giả của một NFT có thể quyết định số lượng phiên bản NFT tồn tại. Đôi khi chúng là những phiên bản y hệt nhau, ví dụ như 5000 vé tham dự một sự kiện. Đôi khi một số khác thì được phát hành rất tương đồng nhưng mỗi phiên bản sẽ hơi khác nhau, ví dụ như mỗi tấm vé với một số ghế riêng. Những thứ này có thể được bán và mua giữa người dùng mà không phải trả tiền cho các nhà quản lí vé, và người mua luôn đảm bảo được tính xác thực của vé đó bằng cách kiểm tra địa chỉ của hợp đồng đó. + +Trên ethereum.org, NFT được dùng để xác thực rằng người dùng đã đóng góp vào kho chứa GitHub của chúng tôi hoặc đã tham gia các cuộc trò chuyện, và chúng tôi thậm chí có luôn các tên miền NFT của chính mình. Nếu đóng góp cho ethereum.org, bạn có thể yêu cầu một NFT POAP. Một vài sự kiện gặp gỡ trong crypto đã dùng POAP như vé tham gia. [Đọc thêm về việc đóng góp](/contributing/#poap). + +![ethereum.org POAP](./poap.png) + +Trang web này cũng có một tên miền thay thế được vận hành bởi NFT, **ethereum.eth**. Địa chỉ `.org` của chúng tôi được quản lý một cách tập trung bởi một nhà cung cấp tên miền (DNS), trong khi ethereum`.eth` được đăng kí trên Ethereum thông qua Dịch vụ tên miền Ethereum (ENS). Và nó được sở hữu và quản lý bởi chúng tôi. [Hãy xem sổ lưu trữ ENS của chúng tôi](https://app.ens.domains/name/ethereum.eth) + +[Đọc thêm về ENS](https://app.ens.domains) + + + +### Bảo mật NFT {#nft-security} + +Tính bảo mật của Ethereum đến từ cơ chế đồng thuận bằng chứng cổ phần. Hệ thống được thiết kế để ngăn chặn các hành động phá hoại kinh tế, giúp Ethereum chống được mạo danh. Đây là thứ làm cho NFT trở nên khả thi. Sau khi khối chứa giao dịch NFT của bạn được xác thực xong, kẻ tấn công sẽ tốn hàng triệu ETH để thay đổi. Bất kỳ ai chạy phần mềm Ethereum sẽ ngay lập tức có thể phát hiện tình trạng gian lận bất hợp pháp của NFT đó và kẻ tình nghi sẽ bị phạt tiền và cấm cửa vĩnh viễn. + +Các vấn đề bảo mật liên quan đến NFT thường ít hay nhiều liên quan đến nạn lừa đảo, lỗ hổng hợp đồng thông minh hoặc lỗi người dùng (chẳng hạn như vô tình làm lộ khóa cá nhân), khiến cho việc bảo vệ ví điện tử trở nên cực kì quan trọng đối với chủ sở hữu NFT. + + + Tìm hiểu thêm về bảo mật + + +## Đọc thêm {#further-reading} + +- [Hướng dẫn nhập môn cho NFT](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, tháng 01, 2020_ +- [Công cụ theo dõi EtherscanNFT](https://etherscan.io/nft-top-contracts) +- [Tiêu chuẩn token ERC-721](/developers/docs/standards/tokens/erc-721/) +- [Tiêu chuẩn token ERC-1155](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/src/content/translations/zh-tw/bridges/index.md b/public/content/translations/zh-tw/bridges/index.md similarity index 100% rename from src/content/translations/zh-tw/bridges/index.md rename to public/content/translations/zh-tw/bridges/index.md diff --git a/src/content/translations/zh-tw/community/code-of-conduct/index.md b/public/content/translations/zh-tw/community/code-of-conduct/index.md similarity index 100% rename from src/content/translations/zh-tw/community/code-of-conduct/index.md rename to public/content/translations/zh-tw/community/code-of-conduct/index.md diff --git a/src/content/translations/zh-tw/community/events/index.md b/public/content/translations/zh-tw/community/events/index.md similarity index 100% rename from src/content/translations/zh-tw/community/events/index.md rename to public/content/translations/zh-tw/community/events/index.md diff --git a/src/content/translations/zh-tw/community/get-involved/index.md b/public/content/translations/zh-tw/community/get-involved/index.md similarity index 100% rename from src/content/translations/zh-tw/community/get-involved/index.md rename to public/content/translations/zh-tw/community/get-involved/index.md diff --git a/src/content/translations/zh-tw/community/grants/index.md b/public/content/translations/zh-tw/community/grants/index.md similarity index 100% rename from src/content/translations/zh-tw/community/grants/index.md rename to public/content/translations/zh-tw/community/grants/index.md diff --git a/src/content/translations/zh-tw/community/language-resources/index.md b/public/content/translations/zh-tw/community/language-resources/index.md similarity index 100% rename from src/content/translations/zh-tw/community/language-resources/index.md rename to public/content/translations/zh-tw/community/language-resources/index.md diff --git a/src/content/translations/zh-tw/community/online/index.md b/public/content/translations/zh-tw/community/online/index.md similarity index 100% rename from src/content/translations/zh-tw/community/online/index.md rename to public/content/translations/zh-tw/community/online/index.md diff --git a/src/content/translations/zh-tw/community/research/index.md b/public/content/translations/zh-tw/community/research/index.md similarity index 100% rename from src/content/translations/zh-tw/community/research/index.md rename to public/content/translations/zh-tw/community/research/index.md diff --git a/public/content/translations/zh-tw/community/support/index.md b/public/content/translations/zh-tw/community/support/index.md new file mode 100644 index 00000000000..5e4462cfb7b --- /dev/null +++ b/public/content/translations/zh-tw/community/support/index.md @@ -0,0 +1,116 @@ +--- +title: 以太坊支援 +description: 在以太坊生態系統內獲取支援。 +lang: zh-tw +--- + +# 以太坊支援 {#support} + +## 官方提供的以太坊支援 {#official-support} + +你正在尋找官方的以太坊支援嗎? 第一件你應該知道的事情是以太坊為去中心化。 這代表沒有中心組織、實體或個體會持有以太坊,也因此沒有官方支援頻道。 + +明白以太坊的去中心化本質十分重要,因為任何聲稱是以太坊官方支援的人可能正在試圖欺詐你! 最佳預防騙徒的保護措施是自行學習,並認真看待網路安全。 + + + 以太坊安全及詐騙預防 + + + + 學習以太坊基礎知識 + + +儘管具有如欠缺官方支援之類的問題,很多以太坊生態系統上的團體、社群和專案都很樂意提供協助。你也能夠在此頁找到很多有用的資訊及資源。 仍有疑問? 加入 [ethereum.org discord](/discord/),我們會嘗試提供幫助。 + +## 錢包支援 {#wallet-support} + +錢包出現問題了嗎? 大多數錢包都備有可提供幫助的專用支援團隊: + +- [MetaMask](https://metamask.zendesk.com/hc/) +- [Argent](https://support.argent.xyz/hc/) +- [MyEtherWallet](https://help.myetherwallet.com/) + +_此清單並未列出所有受支援錢包。 是否需要幫你尋找特定的錢包的支援? 加入 [ethereum.org discord](https://discord.gg/ethereum-org),我們會嘗試提供幫助。_ + +尋找以太坊錢包? [請查看我們完整的以太坊錢包清單](/wallets/find-wallet/)。 + +## 開發去中心化應用程式 {#building-support} + +開發可能很難, 但有一些專注發展的空間具有樂意提供幫助且經驗豐富的以太坊開發者。 + +- [Alchemy University](https://university.alchemy.com/#starter_code) +- [CryptoDevs discord](https://discord.gg/Z9TA39m8Yu) +- [Ethereum StackExchange](https://ethereum.stackexchange.com/) +- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) +- [Web3 University](https://www.web3.university/) +- [LearnWeb3](https://discord.com/invite/learnweb3) + +你也可以在我們的[以太坊開發者資源](/developers/)部分找到文件和開發指南。 + +### 模組化 {#dapp-tooling} + +你的問題跟某個特定的質押池、專案或庫相關嗎? 多數專案具有專有的聊天伺服器或論壇,以為你提供支援。 + +常見示例有: + +- [Solidity](https://gitter.im/ethereum/solidity/) +- [ethers.js](https://discord.gg/6jyGVDK6Jx) +- [web3.js](https://discord.gg/GsABYQu4sC) +- [安全帽](https://discord.gg/xtrMGhmbfZ) +- [Truffle](https://discord.gg/8uKcsccEYE) +- [Alchemy](http://alchemy.com/discord) +- [Tenderly](https://discord.gg/fBvDJYR) + +## 運行節點 {#node-support} + +如果你要運行一個節點或者驗證程式,有一些專門的社群可幫助你開始。 + +- [EthStaker discord](https://discord.io/ethstaker) +- [EthStaker reddit](https://www.reddit.com/r/ethstaker) + +大部份開發以太坊用戶端的團隊也具有面向大眾的專有空間,在此你能夠獲得支援及提出疑問。 + +### 執行用戶端 {#execution-clients} + +- [Geth](https://discord.gg/FqDzupGyYf) +- [Nethermind](https://discord.gg/YJx3pm8z5C) +- [Besu](https://discord.gg/p8djYngzKN) +- [Erigon](https://github.com/ledgerwatch/erigon/issues) + +### 共識用戶端 {#consensus-clients} + +- [Prysm](https://discord.gg/prysmaticlabs) +- [Nimbus](https://discord.gg/nSmEH3qgFv) +- [Lighthouse](https://discord.gg/cyAszAh) +- [Teku](https://discord.gg/7hPv2T6) +- [Lodestar](https://discord.gg/aMxzVcr) + +你也可以[在此學習如何運行節點](/developers/docs/nodes-and-clients/run-a-node/)。 + +## 常見問題 {#faq} + +### 我一直往錯的錢包傳送以太幣 {#wrong-wallet} + +在以太坊進行的傳送不可還原。 不幸的是,如你已經將以太幣傳送至錯的錢包,則沒有方法追回這些資金。 沒有中心組織、實體或個體持有以太坊,這代表沒有人能夠逆轉交易。 因此,在傳送交易前請務必進行雙重核查。 + +### 如何索要以太坊贈品? {#giveaway-scam} + +以太坊贈品是為了偷取你持有的以太幣而設計好的騙案。 不要被一些高得不真實的回報率給欺騙 - 如果你將以太幣傳送至一個贈品地址,你將不會收到申領的贈品,而且你也不能索要賠償。 + +[有關防止騙案的詳細資訊](/security/#common-scams) + +### 我的交易卡住了 {#stuck-transaction} + +如果你提交了一個低於所需的交易費,由於網路需求,你在以太坊上的交易有時可能會卡住。 很多錢包會提供一個選項,重新用較高的手續費去提交同一個交易,讓交易能夠順利進行。 另外,你還可以取消正在等待處理的交易。該動作能將一筆交易傳送到你持有的地址,然後使用與待處理交易相同的隨機數繼續。 + +[怎樣在 MetaMask 加速或者取消待完成交易](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) + +[怎樣取消待完成的以太坊交易](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) + +### 如何在以太坊挖礦? {#mining-ethereum} + +以太坊挖礦已不再可能。 當以太坊由工作量證明更換為權益證明時,挖礦就被關閉了。 現在以太坊沒有礦工了,取而代之的是驗證者。 驗證者質押以太幣並收到因為幫助維持網路安全而獲得的質押酬勞。 + +### 如何成為質押者/驗證者? {#become-validator} + +要成為驗證者,你必須在以太坊存款合約質押至少 32 個以太幣並設定驗證者節點。 更多資訊可以參考我們的[質押頁面](/staking)和[質押啟動面板](https://launchpad.ethereum.org/)。 diff --git a/public/content/translations/zh-tw/dao/index.md b/public/content/translations/zh-tw/dao/index.md new file mode 100644 index 00000000000..4546b217069 --- /dev/null +++ b/public/content/translations/zh-tw/dao/index.md @@ -0,0 +1,165 @@ +--- +title: 去中心化自治組織 (DAO) +description: 以太坊上的去中心化自治組織概要 +lang: zh-tw +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: 在對提案投票的去中心化自治組織代表。 +summaryPoint1: 沒有中心化領導的成員共有社群。 +summaryPoint2: 一個與網路上陌生人合作的安全方式。 +summaryPoint3: 一個將資產投入特定事業的安全場所。 +--- + +## 什麼是去中心化自治組織 {#what-are-daos} + +去中心化自治組織為一種集體擁有、由區塊鏈治理,並致力於一個共同使命的組織。 + +去中心化自治組織使我們不需信任一個良善的領導者來管理資金或經營,便能與世界各地志趣相投的人們共事。 沒有執行長能夠衝動使用資金,也沒有財務長可以作假帳。 取而代之的是,由基於區塊鏈上程式碼所制定的規則來定義組織如何運作以及如何使用資金。 + +組織擁有自己的資金庫,未經團體核准,任何人都無權使用。 每項決策都是經由提案和投票來治理,並確保每位組織成員都能發聲,且任何事都是上鏈且透明的。 + +## 為何我們需要去中心化自治組織? {#why-dao} + +要和他人合作創立涉及經費和金錢的組織,你必須高度信任你的合夥人。 但你很難信任一個只在網路上互動過的人。 使用去中心化自治組織,你不必信任團體中的每個人,只需要相信 100% 透明、任何人都能驗證的去中心化自治組織程式碼。 + +這開啟了許多全球協作與合作的新機會。 + +### 比較 {#dao-comparison} + +| 去中心化自治組織 | 傳統組織 | +| -------------------------------------------------- | ------------------------------------------------------ | +| 通常是扁平組織,而且完全民主。 | 通常等級嚴明。 | +| 任何更改都需要成員投票決定後才能實施。 | 視組織結構而定,可能由部分人進行決策,也可能投票表決。 | +| 不需要可信的中間人便能自動統計投票、執行結果。 | 如果允許投票,會在內部計票,而且投票結果必須人工執行。 | +| 以去中心化方式自動提供服務(例如慈善基金的分配)。 | 需要人工處理,或集中管控自動處理,易受操縱。 | +| 所有活動皆完全公開透明。 | 活動通常是隱密進行,公開程度有限。 | + +### 去中心化自治組織範例 {#dao-examples} + +為了幫助你了解,以下略舉幾個去中心化自治組織的使用範例: + +- 慈善機構 – 你可以接受來自全世界任何人的捐款,並投票決定資助的事業。 +- 共同擁有權 – 你可以購買實體或虛擬資產,且組織成員可以對如何使用資產進行投票。 +- 風險投資和捐款 – 你可以成立風險基金,透過該基金匯集投資資本並投票進行商業投資。 後續收益可以分配給相應的去中心化自治組織成員。 + +## 去中心化自治組織如何運作? {#how-daos-work} + +去中心化自治組織背後的運作架構為其智慧型合約,智慧型合約定義組織的規則,並對該團體的資金庫進行規範。 一旦在以太坊上部署合約,除非投票通過,否則不能修改規則。 任何不符合程式碼規則和邏輯的行為都會失效。 由於資金庫也是以智慧型合約定義,因此任何人都無法不經團體核准而挪用資金。 這意味著去中心化自治組織不需要中心化管理機構。 相反地,團體會共同做出決定,而付款會在投票通過之後自動獲得授權。 + +之所以能夠做到這一點,是因為智慧型合約一旦部署於以太坊,就無法被篡改。 一切都是公開的,只要有人修改程式碼(去中心化自治組織的規則)就會被發現。 + + + 進一步了解智慧型合約 + + +## 以太坊與去中心化自治組織 {#ethereum-and-daos} + +以太坊為去中心化自治組織提供了極佳的基礎,原因如下: + +- 以太坊本身的共識足夠分散,同時建立已久,足以讓組織信任其網路。 +- 智慧型合約程式碼部署後便無法修改,即使是所有人亦然。 這使得去中心化自治組織可以完全按照程式設定的規則運作。 +- 智慧型合約可以發送/接收資金。 如果少了這點,你就需要可信的中間人來管理團體的資金。 +- 事實證明,比起競爭,以太坊社群更趨向合作,使得最佳做法和支援系統得以快速發展。 + +## 去中心化自治組織的治理 {#dao-governance} + +管理去中心化自治組織時有許多考量,例如投票及提案該如何運作。 + +### 授權 {#governance-delegation} + +授權類似去中心化自治組織版本的代議民主。 代幣持有者向自我提名、並承諾管理協議且掌握最新消息的使用者分配選票。 + +#### 知名案例 {#governance-example} + +[以太坊域名服務](https://claim.ens.domains/delegate-ranking)——以太坊域名服務持有者可將其選票分配給積極代表他們參與活動的社群成員。 + +### 自動交易治理 {#governance-example} + +在許多去中心化自治組織中,如達規定人數的成員投予同意,交易將被自動執行。 + +#### 知名案例 {#governance-example} + +[Nouns](https://nouns.wtf) – Nouns DAO 中,如票數達規定數量且大多數票投予同意,只要不被創辦人所否決,一筆交易會自動被執行。 + +### 多簽治理 {#governance-example} + +雖然去中心化治理組織可有上千名的投票成員,資金可存在於一個由 5-20 名被信任且通常資訊公開(由社群所知的公開身份)的活躍社群成員所共享的錢包中。 投票後,多簽簽署人會執行社群的意願。 + +## 去中心化自治組織相關法律 {#dao-laws} + +1977 年,懷俄明州創造了有限責任公司制度以保護創業家並限定其責任。 更近期,懷俄明州首創去中心化自治組織相關法律,給予去中心化自治組織法律地位。 目前懷俄明州、佛蒙特州,以及維京群島皆某種程度上具去中心化自治組織相關法律。 + +### 知名案例 {#law-example} + +[CityDAO](https://citydao.io)——CityDAO 透過懷俄明州去中心化自治組織的相關法律購買了黃石國家公園附近 40 英畝的地。 + +## 去中心化自治組織成員 {#dao-membership} + +成為去中心化自治組織的成員有多個模式。 成員可以決定投票方式和去中心化自治組織的其他重要事務。 + +### 代幣型成員 {#token-based-membership} + +取決於使用的代幣,通常完全開放。 這類治理代幣大部分都能在去中心化交易所自由地交易。 只有少部分必須透過提供流動性或其他某些「工作量證明」來賺取。 無論是哪一種方式,只要持有代幣就能獲得投票權。 + +_通常用於治理廣泛的去中心化協定及/或代幣本身。_ + +#### 知名案例 {#token-example} + +[MakerDAO](https://makerdao.com)——MakerDAO 的代幣 MKR 在去中心化交易所普遍可得,且任何人皆可買進投票權來決定 Maker 協議的未來。 + +### 股份型成員 {#share-based-membership} + +股份型去中心化自治組織擁有更多權力,但仍然相當公開。 任何潛在的會員都可以申請加入去中心化自治組織,通常會以代幣或工作的形式提供有價值的貢獻。 股份直接代表投票權及所有權。 成員可以隨時帶著自己所佔的股份退出。 + +_通常用於關係較為緊密、以人為中心的組織,例如慈善機構、勞工團體、投資組織等, 也可以治理協定及代幣。_ + +#### 知名案例 {#share-example} + +[MolochDAO](http://molochdao.com/) – MolochDAO 專注於資助以太坊計畫。 想加入為成員必須提出申請,以便團體評估你是否具備必要的專業知識和資金來對潛在的受資助者作出明智判斷。 你無法直接在公開市場購買加入該去中心化自治組織的權限。 + +### 信譽型成員 {#reputation-based-membership} + +信譽代表參與證明,並能授予去中心化自治組織的投票權。 不同於代幣型或股份型成員,信譽型去中心化自治組織不會將所有權轉讓給貢獻者。 信譽不能購買、移轉或授權;去中心化自治組織成員必須透過參與來獲得信譽。 鏈上投票是開放式的,潛在成員可以自由提出加入去中心化自治組織的申請,並要求獲得信譽和代幣作為貢獻的獎勵。 + +_通常用於協定和去中心化應用程式的去中心化開發及治理,但也非常適合各種組織,如慈善機構、勞工團體、投資俱樂部等。_ + +#### 知名案例 {#reputation-example} + +[DXdao](https://DXdao.eth.link) – DXdao 是一個全球主權聯合組織,自 2019 年以來一直致力於建構與治理去中心化協定和應用程式。 它利用信譽型治理和全局共識來協調和管理資金,這意味著沒有人可以透過收購來影響其未來。 + +## 參與/建立去中心化自治組織 {#join-start-a-dao} + +### 參與去中心化自治組織 {#join-a-dao} + +- [以太坊社群去中心化自治組織](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [DAOHaus 的去中心化自治組織清單](https://app.daohaus.club/explore) +- [Tally.xyz 的去中心化自治組織清單](https://www.tally.xyz) + +### 建立去中心化自治組織 {#start-a-dao} + +- [使用 DAOHaus 建立去中心化自治組織](https://app.daohaus.club/summon) +- [使用 Tally 建立一個治理者型去中心化自治組織](https://www.tally.xyz/add-a-dao) +- [建立由 Aragon 支援的去中心化自治組織](https://aragon.org/product) +- [建立 colony](https://colony.io/) +- [使用 DAOstack 全局共識建立去中心化自治組織](https://alchemy.daostack.io/daos/create) + +## 延伸閱讀 {#further-reading} + +### 去中心化自治組織相關文章 {#dao-articles} + +- [什麼是去中心化自治組織?](https://aragon.org/dao)– [Aragon](https://aragon.org/) +- [去中心化自治組織手冊](https://daohandbook.xyz) +- [去中心化自治組織之家](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) +- [何謂去中心化自治組織?它有何用途?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for)– [DAOhaus](https://daohaus.club/) +- [如何創立由去中心化自治組織支援的數位社群](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) +- [什麼是去中心化自治組織?](https://coinmarketcap.com/alexandria/article/what-is-a-dao)– [Coinmarketcap](https://coinmarketcap.com) +- [什麼是全局共識?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c)- [DAOstack](https://daostack.io/) +- [Vitalik,《去中心化自治組織並非法人團體:去中心化在自治組織裡的重要之處》](https://vitalik.ca/general/2022/09/20/daos.html) +- [去中心化自治組織、去中心化自治公司、去中心化應用程式等:不完整術語指引](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [以太坊部落格](https://blog.ethereum.org) + +### 影片 {#videos} + +- [什麼是加密貨幣世界的去中心化自治組織?](https://youtu.be/KHm0uUPqmVE) +- [一個去中心化自治組織是否能建立一座城市?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city)– [TED](https://www.ted.com/) diff --git a/public/content/translations/zh-tw/decentralized-identity/index.md b/public/content/translations/zh-tw/decentralized-identity/index.md new file mode 100644 index 00000000000..33aa31924b0 --- /dev/null +++ b/public/content/translations/zh-tw/decentralized-identity/index.md @@ -0,0 +1,185 @@ +--- +title: 去中心化身分 +description: 什麼是去中心化身分,它為什麼很重要? +lang: zh-tw +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: /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/))是由發行人所發布、可加密驗證的防篡改聲明。 實體(如,組織)發行的每個身分證明或可驗證憑證都與它們的去中心化身分識別有關。 + +由於去中心化身分識別儲存在區塊鏈上,任何人都可以在以太坊上交叉驗證發行人的去中心化身分識別,來驗證身分證明的有效性。 實際上,以太坊就像是一個全球目錄,能夠驗證與某些實體相關的去中心化身分識別。 + +去中心化身分識別是讓身分證明能夠自行控制和驗證的原因。 即使發行者不再存在,持有者也始終能夠證明,其身分證明的出處和有效性。 + +透過去中心化身分,來使去中心化身分識別能夠保護個人隱私資訊也至關重要。 例如,如果某人提交一個身分證明(駕駛執照),則驗證方不需要檢查身分證明中資訊的有效性。 反之,驗證者只需要獲得身分證明真實性的加密擔保以及發證機構的身分,就足以確定此證明是否有效。 + +## 去中心化身分中的身分證明類型 {#types-of-attestations-in-decentralized-identity} + +在基於以太坊的身分生態系統中,如何儲存和檢索身分證明資訊與傳統身分管理不同。 以下是在去中心化身分系統中發行、儲存和驗證身分證明的各種方法的概覽: + +### 鏈外身分證明 {#off-chain-attestations} + +將身份證明儲存在鏈上的一個問題是,其中可能包含個人想要保密的資訊。 以太坊區塊鏈具有公開性,因此不適合用於儲存此類身分證明。 + +解決方案是發行身分證明,由使用者在數位錢包中鏈外持有,但使用儲存在鏈上的發行人的去中心化身分識別進行簽名。 這些身分證明被編碼為 [JSON Web 代幣](https://en.wikipedia.org/wiki/JSON_Web_Token),其中包含發行人的數位簽名,從而可以輕鬆驗證鏈外聲明。 + +以下是解釋鏈外身分證明的假設場景: + +1. 某大學(發行人)產生身分證明(數位學歷證書),用其金鑰簽署,然後將證書頒發給 Bob(身分持有者)。 + +2. Bob 申請了一份工作並想向雇主證明他的學歷,因此他分享了行動裝置錢包中的身分證明。 公司(驗證者)可以透過檢查發行人的去中心化身分識別(即,其在以太坊上的公鑰),來確認身分證明的有效性。 + +### 可持續訪問的鏈外身分證明 {#offchain-attestations-with-persistent-access} + +在這種場景下,身分證明被轉換為 JSON 文件並儲存在鏈外(理想情況下儲存在[去中心化雲端儲存](/developers/docs/storage/)平台上,例如 IPFS 或 Swarm)。 然而,JSON 文件的[雜凑值](/glossary/#hash)儲存在鏈上,並透過鏈上註冊系統連結到去中心化身分識別。 所關聯的去中心化身分識別可以是發行人或接收者的身分證明。 + +這種方法使身份證明能夠獲得基於區塊鏈的持久性,同時確保聲明資訊的加密性和可驗證性。 它還允許選擇性揭露,因為私鑰的持有者可以解密資訊。 + +### 鏈上身分證明 {#onchain-attestations} + +鏈上身份證明保存在以太坊區塊鏈上的[智慧型合約](/developers/docs/smart-contracts/)中。 智慧型合約(充當註冊系統)將身分證明對應到相關的鏈上去中心化身分識別(公鑰)。 + +以下範例展示了鏈上身分證明在實踐中的使用方式: + +1. 一家公司(XYZ 公司)計畫使用智慧型合約出售所有權股份,但只想賣給那些已經完成背景調查的買家。 + +2. XYZ 公司可以讓執行背景調查的公司,在以太坊上發行鏈上身分證明。 此身分證明可以證實某人已經通過背景調查,但不會暴露任何個人資訊。 + +3. 出售股份的智慧型合約可以檢查註冊合約以獲得經篩選之買家的身分,從而使智慧型合約可以確定哪些人被允許購買股份。 + +### 靈魂綁定代幣和身分 {#soulbound} + +[靈魂綁定代幣](https://vitalik.ca/general/2022/01/26/soulbound.html)(不可轉讓的非同質化代幣)可以用於收集特定錢包的獨有資訊。 這有效地創建了綁定到特定以太坊地址的唯一鏈上身分,這可能包括代表成就的代幣(例如完成某些特定的線上課程或在遊戲中超過分數門檻)或社區參與代幣。 + +## 去中心化身分的好處 {#benefits-of-decentralized-identity} + +1. 去中心化身分增加了個人對身分識別資訊的掌握。 可以在無需依賴中心化機構和第三方服務的情況下,驗證去中心化身分識別和身分證明。 + +2. 去中心化身分解決方案為驗證和管理使用者身分,提供了一種去信任、無縫且保護隱私的方法。 + +3. 去中心化身分利用區塊鏈技術,在不同方之間建立信任,並提供加密擔保來驗證身分證明的有效性。 + +4. 去中心化身分使得身分資料具有可便攜性。 使用者將身分證明和身分識別儲存在行動裝置錢包中,並可以分享給他們選擇的任一夥伴。 去中心化身分識別和身分證明不會被鎖在發行組織的資料庫中。 + +5. 去中心化身分與新興的零知識證明技術應具有良好的配合,這將使個人能夠證明他們擁有某物或做過某些事,而無需透露那是什麼。 這可以成為一種將信任與隱私結合在一起的強而有力方案,適用於投票等應用方面。 + +6. 去中心化身分能夠防範女巫機制,可識別一人假裝多人來玩遊戲或向某個系統發送垃圾郵件。 + +## 去中心化身分使用案例 {#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/),可以授與持有者訪問線上社群的權利。 + +[使用以太坊登入](https://login.xyz/)功能將允許伺服器能夠確認使用者的以太坊帳戶,並從他們的帳戶地址中獲取所需的身分證明。 這意味著使用者無需記住冗長的密碼,就能夠訪問平台和網站,進而改善使用者的線上體驗。 + +### 2. “了解你的客戶”驗證 {#kyc-authentication} + +許多線上服務的使用,需要提供個人的身分證明和憑證,例如駕駛執照或國家護照。 但這種方式是有問題的,因為使用者的私人資訊有可能會被洩露,並且服務提供商無法驗證身分證明的真實性。 + +去中心化身分使公司能夠跳過傳統的[了解你的客戶 (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) 流程,並透過可驗證憑證來核實使用者身分。 這降低了身份管理的成本,並防止使用偽造文件。 + +### 3 投票和線上社群 {#voting-and-online-communities} + +線上投票和社交媒體是去中心化身分的兩個新應用。 線上投票方案容易受到操縱,尤其是在惡意行為者創建虛假身分進行投票的情況下。 要求個人提供鏈上身分證明可以提高線上投票過程的完整性。 + +去中心化身分可以幫助創建沒有虛假帳戶的線上社群。 例如,每個用使用者可能必須使用鏈上身分系統,如以太坊名稱服務,來驗證他們的身分,從而減少機器人的可能性。 + +### 4 反女巫保護 {#sybil-protection} + +女巫攻擊是指個人欺騙系統使某個系統認為他們是多個人而增加他們的影響力。 [捐款應用程式](https://gitcoin.co/grants/)使用[平方投票法](https://www.radicalxchange.org/concepts/plural-voting/)很容易受到這些女巫攻擊,因為當更多人投票支持時,捐款的價值就會增加,從而激勵使用者將他們的貢獻分配給多個身分。 去中心化身分透過增加每位參與者的負擔來證明他們是真正的人,這有助於防止這種情況發生,而且通常也不必透露具體的私人資訊。 + +## 使用去中心化身分 {#use-decentralized-identity} + +有許多雄心勃勃的項目使用以太坊作為去中心化身分解決方案的基礎: + +- **[以太坊名稱服務 (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/)** - _一個去中心化的數位身分聚合器。_ + +## 延伸閱讀 {#further-reading} + +### 文章 {#articles} + +- [區塊鏈使用案例:數位身分中的區塊鏈](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ +- [什麼是以太坊 ERC725? 區塊鏈上的自我主權身分管理](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Sam Town_ +- [區塊鏈如何解決數位身分問題](https://time.com/6142810/proof-of-humanity/) — _Andrew R. Chow_ +- [什麼是去中心化身分以及你為什麼需要關心?](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ + +### 影片 {#videos} + +- [去中心化身分(直播獎勵環節)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _一個很好的去中心化身分解說影片,創作者 Andreas Antonopolous_ +- [使用以太坊和去中心化身分登錄 Ceramic、IDX、React 和 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _YouTube 使用教學,作者 Nader Dabit,介紹如何構建身分管理系統,透過以太坊錢包建立、讀取和更新使用者個人資料。_ +- [BrightID - 以太坊上的去中心化身分](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _Bankless 播客節目討論 BrightID,一個以太坊上的去中心化身分解決方案_ +- [鏈外互聯網:去中心化身分 & 可驗證憑證](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — Evin McMullen 在 EthDenver 2022 的演講 + +### 社群 {#communities} + +- [GitHub 上的 ERC-725 聯盟](https://github.com/erc725alliance) — _在以太坊區塊鏈上管理身分的 ERC725 標準的支持者_ +- [SpruceID Discord 伺服器](https://discord.com/invite/Sf9tSFzrnt) — _研究使用以太坊登錄的愛好者和開發者社群_ +- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _一個開發人員社區,致力於為應用程式構建可驗證資料的框架_ diff --git a/public/content/translations/zh-tw/defi/index.md b/public/content/translations/zh-tw/defi/index.md new file mode 100644 index 00000000000..53364371494 --- /dev/null +++ b/public/content/translations/zh-tw/defi/index.md @@ -0,0 +1,352 @@ +--- +title: 去中心化金融 (DeFi) +description: 以太坊生態系之去中心化金融概要 +lang: zh-tw +template: use-cases +emoji: ":money_with_wings:" +image: /use-cases/defi.png +alt: 以樂高積木製作的以太幣標誌。 +sidebarDepth: 2 +summaryPoint1: 現行金融系統的全球開放性替代方案。 +summaryPoint2: 讓你借款、儲蓄、投資、交易和進行更多應用的產品。 +summaryPoint3: 基於所有人都可以編寫的開放原始碼技術。 +--- + +去中心化金融是專為網際網路時代建構的開放式全球金融系統,可取代不透明、遭到嚴密控制、以幾十年前的基礎設施和流程維繫的系統, 讓你有能力控制及監管自己的資金, 觸及全球市場,並獲得本地貨幣或銀行以外的替代選項。 去中心化金融產品向所有擁有網際網路連線的人開放金融服務,同時主要是由使用者控制和維護。 到目前為止,已有價值數百億的加密貨幣透過去中心化金融應用程式流通,而且這個數字每天都還在成長。 + +## 何謂去中心化金融? {#what-is-defi} + +「去中心化金融」是任何可以使用以太坊的人(也就是任何擁有網際網路連線的人)都可以存取的金融產品與服務的通稱。 有了去中心化金融,市場能隨時保持開放,沒有中心化的機關可以封鎖付款或讓你無法企及任何產品或服務。 傳統金融服務不但速度緩慢,還可能出現人為錯誤,現在改由任何人都能檢查和審省的程式碼來自動處理,作業更為安全。 + +加密經濟正在迅速發展,提供了放貸、借款、做多/放空、賺取利息等業務的管道。 精通加密經濟的阿根廷人已經在運用去中心化金融來擺脫嚴重的通貨膨脹, 企業也開始運用去中心化金融服務來即時發放員工薪資, 有些人甚至在不需要證明個人身分的情況下,就獲得及償還了數百萬美元的貸款。 + + + +## 去中心化金融 vs 傳統金融 {#defi-vs-tradfi} + +了解去中心化金融潛力的一種最佳方法是了解目前存在的問題。 + +- 有些人沒有開立銀行帳戶或使用金融服務的途徑。 +- 無法獲得金融服務可能會讓人找不到工作。 +- 金融服務可以讓你無法收款。 +- 傳統金融服務還有一項隱藏費用,就是你的個人資料。 +- 政府及中心化機構可以任意關閉市場。 +- 交易時間通常受到特定時區的營業時間所限。 +- 資金移轉可能因為內部人工流程而花上好幾天的時間。 +- 金融服務存在溢價,因為中間機構需要分一杯羹。 + +### 比較 {#defi-comparison} + +| 去中心化金融 | 傳統金融 | +| -------------------------------------------------------------- | -------------------------------------------------------------------------- | +| 你的資金由你自己持有。 | 你的資金由企業持有。 | +| 由你自行管控資金流向及使用方式。 | 你必須相信企業不會不當管理你的資金,例如借貸給高風險借款人。 | +| 移轉資金只需要幾分鐘的時間。 | 支付可能因為人工處理而得花上幾天時間。 | +| 交易活動為匿名方式。 | 金融活動與你的身分綁定。 | +| 去中心化金融對所有人開放。 | 使用金融服務必須申請。 | +| 市場永遠開放。 | 員工需要休息,因此市場會關閉。 | +| 奠基於透明的系統 ── 所有人都能查看產品資料及檢查系統運作狀況。 | 金融機構完全是黑箱作業:你不能要求查看他們的放貸記錄、資產管理記錄等資訊。 | + + + 探索去中心化金融應用程式 + + +## 一切要從比特幣開始說起…… {#bitcoin} + +從許多方面來說,比特幣是第一款去中心化金融應用程式。 比特幣能讓你真正擁有及掌控價值,並傳送到世界上任何一個角落。 它提供了一種方式,讓眾多互不信任的人同意使用一套帳戶帳本,而無需透過可信賴的中間機構。 比特幣對所有人開放,而且沒有人有權改變其規則。 比特幣的規則,例如其稀有度及開放性,是這項技術與生俱來的特色。 在傳統金融中,政府可以印鈔讓你的存款貶值,企業也可以關閉市場,而比特幣與傳統金融截然不同。 + +以太坊便是以此概念為基礎。 和比特幣一樣,以太坊的規則不能任意更改,而且所有人都能使用。 但它進一步使用[智慧型合約](/glossary#smart-contract)讓這種數位貨幣可程式化,使其功能不侷限於存放及傳送價值。 + + + +## 可程式化的貨幣 {#programmable-money} + +這聽起來很奇怪……「我幹嘛把我的錢程式化?」 不過,這只是以太坊代幣的預設功能之一。 所有人都可以在付款時加入程式邏輯。 因此,你可以結合比特幣的控制權和安全性,以及金融機構提供的各種金融服務, 用加密貨幣來做一些比特幣辦不到的事,例如借貸、安排付款、投資指數型基金等等。 + + +
如果你是剛開始使用以太坊,請嘗試我們推薦的去中心化金融應用程式。
+ + 探索去中心化金融應用程式 + +
+ +## 你可以用去中心化金融來做什麼? {#defi-use-cases} + +大多數金融服務都有去中心化的替代方案。 但以太坊也為打造嶄新的金融產品創造了許多機會。 這個清單還在不斷成長。 + +- [匯款到世界各地](#send-money) +- [讓資金在全球流通](#stream-money) +- [取得穩定幣](#stablecoins) +- [抵押借款](#lending) +- [無抵押借款](#flash-loans) +- [開始儲蓄加密貨幣](#saving) +- [交易代幣](#swaps) +- [擴大投資組合](#investing) +- [為構想募資](#crowdfunding) +- [購買保險](#insurance) +- [管理投資組合](#aggregators) + + + +### 快速匯款到世界各地 {#send-money} + +作為一種區塊鏈,以太坊的核心功能是安全地在全球傳送交易。 和比特幣一樣,以太坊可以讓跨境匯款像傳送電子郵件一樣簡單。 只需從錢包輸入收款人的[以太坊名稱服務名稱](/nft/#nft-domains)(例如 bob.eth)或帳戶地址,你的款項就會在幾分鐘內直接到達對方的帳戶(通常情況下)。 要收發款項,你需要一個[錢包](/wallets/)。 + + + 查看支付去中心化應用程式 + + +#### 讓資金在全球流通…… {#stream-money} + +你可以運用以太坊流通資金。 以太坊可以讓你在幾秒之內支付某人的薪資,供對方隨時取用; 或快速租用物品,如置物櫃或電動滑板車。 + +如果你因為[以太幣](/eth/)的價值可能大幅波動而不想發送或流通以太幣,那麼以太坊上還有其他貨幣選項:穩定幣。 + + + +### 取得穩定幣 {#stablecoins} + +對許多金融產品和一般支出而言,加密貨幣的價格波動是一大問題。 去中心化金融社群以穩定幣解決了這個問題。 穩定幣的價值與其他資產掛鈎,通常是美元這類熱門貨幣。 + +Dai、USDC 等穩定幣的價值和美元的差距通常維持在幾美分之內, 使穩定幣非常適合用於收入或零售。 在南美洲,因為政府發行的貨幣有極大的不確定性,許多人已經在使用穩定幣保護自己的儲蓄。 + + + 深入了解穩定幣 + + + + +### 借款 {#lending} + +向去中心化供應商借款主要有兩種方式。 + +- 點對點,即借款者直接向特定貸款者借款。 +- 資金池,即貸款者將資金(流動性)注入資金池,而借款者從資金池借款。 + + + 查看借款去中心化應用程式 + + +選擇去中心化貸款有許多優勢…… + +#### 在保有隱私的情況下借貸 {#borrowing-privacy} + +今天,資金的借與貸都是圍繞著相關個人進行。 銀行在放款前,需要知道你是不是真的有能力償還貸款。 + +去中心化借貸則不需任何一方表明身分即可運作。 相對地,借款者必須提供抵押品,如果無法償還,抵押品就會自動歸貸款者所有。 有些貸款者甚至接受以非同質化代幣作為抵押品。 非同質化代幣為獨特資產(如繪畫)的契據。 [深入了解非同質化代幣](/nft/) + +透過這種方式,不必接受徵信調查或提供私人資訊也能借款。 + +#### 獲得全球資金 {#access-global-funds} + +選擇去中心化借貸服務時,你可以借入來自全球各地的存款,而不僅止於你選擇的銀行或機構所持有的資金。 這讓貸款更容易取得,也能改善利率。 + +#### 納稅效益 {#tax-efficiencies} + +借款可以讓你獲得需要的資金,而無需出售以太幣(此行為會被課稅)。 相對地,你可以使用以太幣作為抵押品以借貸穩定幣。 如此一來,你便可以在保有以太幣的情況下,獲得所需的現金流。 穩定幣是需要現金時的最佳選擇,因為穩定幣的價值不像以太幣一樣易於波動。 [深入了解穩定幣](#stablecoins) + +#### 閃電貸 {#flash-loans} + +閃電貸是一種較具實驗性的去中心化借貸形式,可以讓你在沒有抵押品或不提供個人資訊的情況下借款。 + +目前非技術人員還無法大規模運用這種模式,但我們已經看出它未來流行的潛力。 + +閃電貸的運作基礎為放款和還款發生在同一次交易內。 如果無法還款,則交易會被還原,就像什麼都沒有發生過一樣。 + +經常使用的資金會注入流動資產池(用於放貸的龐大資金池)。 如果資金在某個時點無人使用,就創造了一個機會,讓人借用此資金來拓展業務,並在借入資金的幾乎同一個時點全額償還。 + +這意味著必須在量身打造的交易中納入大量邏輯。 舉個簡單的例子:某個人透過閃電貸,以某個價格借入一大筆資產,轉而在價格更高的其他交易所出售。 + +所以在這一筆交易中,發生了以下情況: + +- 你以 $1.00 的價格,從 A 交易所借入 X 數量的 $asset +- 你在 B 交易所以 $1.10 的價格售出 X 數量的 $asset +- 接著,你到 A 交易所償還貸款 +- 你賺得了扣除交易手續費後的利潤 + +如果 B 交易所的供給量急速下降,使用者無法購足量額來償還原始貸款,那麼這筆交易就會失敗。 + +要在傳統金融體系內完成以上操作,你需要鉅額資金。 這種財產創造策略只有已經擁有財富的人才能操作。 閃電貸的例子告訴我們,未來「有錢」不見得是「賺錢」的先決條件。 + +[深入了解閃電貸](https://aave.com/flash-loans/) + + + +### 開始儲蓄加密貨幣 {#saving} + +#### 放貸 {#lending} + +你可以透過放貸加密貨幣來賺取利息,並即時看到資金成長。 目前的利息比你當地的銀行高出許多(如果你運氣夠好,可以使用銀行服務的話)。 例如: + +- 你借出 100 Dai(一種[穩定幣](/stablecoins/))給某個類似 Aave 的產品。 +- 你會收到 100 Aave Dai (aDai),此代幣代表著你借出的 Dai。 +- 你的 aDai 會按利率增加,你可以看到錢包裡的餘額在增長。 視年利率而定,幾天或甚至幾小時後,你的錢包餘額可能會變成 100.1234! +- 你可以隨時提取和你的 aDai 餘額等額的一般 Dai。 + + + 查看借貸去中心化應用程式 + + +#### 無損樂透 {#no-loss-lotteries} + +無損樂透(如 PoolTogether)是一種有趣而創新的儲蓄方法。 + +- 你用 100 Dai 代幣購買 100 張樂透。 +- 你會收到 100 個 plDai,代表你的 100 張樂透。 +- 如果其中有一張樂透中獎,你的 plDai 餘額會按獎金池的金額增加。 +- 如果沒有中獎,你的 100 個 plDai 會滾動進入下週的抽獎。 +- 你可以隨時提取相當於 plDai 餘額的一般 Dai。 + +和上述放貸案例一樣,獎金池的資金來自於放貸樂透存款產生的所有利息。 + + + 嘗試 PoolTogether + + + + +### 兌換代幣 {#swaps} + +以太坊有成千上萬種代幣。 去中心化交易所 (DEX) 可以讓你隨時交易不同代幣。 你永遠不會放棄對資產的控制權。 這就像造訪其他國家時到外幣收兌處換匯一樣。 但去中心化金融版本的收兌處永不關閉, 去中心化金融市場全天候開放,其技術可保證永遠有人受理交易。 + +例如,如果你想使用無損樂透 PoolTogether(參閱前文),你需要 Dai 或 USDC 這類代幣。 這些去中心化交易所可讓你將以太幣兌換成這些代幣,完成交易後再兌換回來。 + + + 查看代幣交易所 + + + + +### 進階交易 {#trading} + +對希望獲得更大控制權的交易者而言,還有一些進階選項可以運用。 限價單、永續債、信用交易等都可以實現。 透過去中心化交易,你可以獲得全球流動性,市場永不關閉,而且你始終能控制自己的資產。 + +使用中央化交易所時,你必須在交易前先存入資產,並相信交易所會妥善看管你的資產。 資產存入交易所后就要承擔風險,因為中央化交易所往往是駭客鎖定的目標。 + + + 查看交易去中心化應用程式 + + + + +### 擴大投資組合 {#investing} + +以太坊上有一些資金管理產品可以根據你選擇的策略來擴展你的投資組合。 這是自動化作業,對所有人開放,而且不需要管理人員來分一杯羹。 + +[DeFi Pulse 指數基金 (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 的捐贈,則最終計畫案 A 獲得的資金會多於計畫案 B(具體取決於配比池的規模)。 + +[深入了解平方募資法](https://wtfisqf.com) + + + +### 保險 {#insurance} + +去中心化保險的目標是使保險更加便宜、理賠更快速,同時更為透明。 隨著自動化程度的提高,保險價格可以更加低廉,理賠也可以更加快速。 用以決定索賠的資料完全透明。 + +和其他軟體一樣,以太坊產品也可能受到錯誤或入侵的威脅, 因此目前這個領域有許多保險產品將重點放在保護使用者不會損失資金上。 然而,若干專案開始涵蓋了生活中可能遇到的各種大小意外保障。 Etherisc 的農作物保險就是個很好的例子,這項產品的目標在於[保護肯亞小農對抗乾旱及洪災](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc)。 去中心化保險可以為買不起傳統保險的農民提供更實惠的保障。 + + + 查看保險去中心化應用程式 + + + + +### 彙總工具與投資組合管理工具 {#aggregators} + +有了這麼多服務,你需要找個方法來追蹤所有投資、貸款和交易。 目前有許多產品可以幫助你集中協調所有去中心化金融活動。 這就是去中心化金融開放架構的魅力所在。 團隊可以建立介面供你檢視各產品的餘額並使用其功能。 深入探索去中心化金融之際,你會發現這種工具極為實用。 + + + 查看投資組合去中心化應用程式 + + + + +## 去中心化金融如何運作? {#how-defi-works} + +去中心化金融使用加密貨幣及智慧型合約來提供服務,不需透過中間機構。 在今日的金融體系下,金融機構是交易的保證人。 你的資金是透過金融機構流通,因此賦予了這些機構巨大的權利。 此外,世界上還有數十億人甚至無法使用銀行帳戶。 + +在去中心化金融,智慧型合約取代了交易中的金融機構。 智慧型合約是一種以太坊帳戶,可以持有資金並根據特定條件發送/退還資金。 智慧型合約上線後就沒有人可以篡改,它會永遠依照設定的方式運作。 + +一份用來發放津貼或零用錢的合約可以設定為每週五從 A 帳戶匯款至 B 帳戶。 只要 A 帳戶還有所需的資金,合約就會持續執行。 沒有人能篡改合約,將 C 帳戶設為收款人藉以竊取資金。 + +合約也會公開,供所有人檢查及審核。 這意味著不良合約通常很快就會受到社群監控。 + +確實,這也意味著目前需要仰賴以太坊社群中能閲讀程式碼的技術人員。 以開放原始碼為基礎的社群會協調開發人員參與監控,但這種需求會隨著時間而趨緩,因為智慧型合約會變得越來越容易閲讀,同時也有其他可以證明程式碼可信度的方法誕生。 + +## 以太坊及去中心化金融 {#ethereum-and-defi} + +以太坊為去中心化金融提供了良好的基礎,原因包括: + +- 以太坊或部署在以太坊上的智慧型合約不屬於任何人所有 ── 這讓所有人都有機會使用去中心化金融, 也意味著沒有人可以變更規則。 +- 所有去中心化金融產品都使用著相同的語言:以太坊。 這意味著許多產品可以合作無間地共同運作。 你可以在某個平台上出借代幣,然後透過完全不同的應用程式,在不同的市場中兌換帶有利息的代幣。 這就像可以將銀行的忠誠度點數兌現。 +- 代幣和加密貨幣全都建立在以太坊這個共享帳本上 ── 追蹤交易和所有權全都交給以太坊處理。 +- 以太坊可以實現完全的金融自由 ── 大多數產品不會保管你的資金,控制權完全操之在己。 + +你可以把去中心化金融想成好幾層: + +1. 區塊鏈:以太坊包含了交易記錄和帳戶狀態。 +2. 資產:[以太幣](/eth/)及其他代幣(貨幣)。 +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} + +- [去中心化金融新手指南](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu,2020 年 1 月 6 日_ + +### 影片 {#videos} + +- [Finematics - 去中心化金融教育](https://finematics.com/) – _關於去中心化金融的影片_ +- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _去中心化金融基本知識:在這個偶爾讓人感到困惑的領域裡邁出第一步,你所需要知道的一切。_ +- [加密貨幣白板講解](https://youtu.be/17QRFlml4pA) _- 何謂去中心化金融?_ + +### 社群 {#communities} + +- [DeFi Llama Discord 伺服器](https://discord.gg/buPFYXzDDd) +- [DeFi Pulse Discord 伺服器](https://discord.gg/Gx4TCTk) diff --git a/public/content/translations/zh-tw/desci/index.md b/public/content/translations/zh-tw/desci/index.md new file mode 100644 index 00000000000..4ffac5c57d7 --- /dev/null +++ b/public/content/translations/zh-tw/desci/index.md @@ -0,0 +1,139 @@ +--- +title: 去中心化科研 (DeSci) +description: 以太坊的去中心化科研概觀 +lang: zh-tw +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: /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/) +- [去中心化科研實驗室](https://www.desci.com/) + +歡迎補充新計畫 - 請先查看我們的[列表政策](/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/developers/docs/accounts/accounts.png b/public/content/translations/zh-tw/developers/docs/accounts/accounts.png similarity index 100% rename from src/content/translations/zh-tw/developers/docs/accounts/accounts.png rename to public/content/translations/zh-tw/developers/docs/accounts/accounts.png diff --git a/src/content/translations/zh-tw/developers/docs/accounts/index.md b/public/content/translations/zh-tw/developers/docs/accounts/index.md similarity index 100% rename from src/content/translations/zh-tw/developers/docs/accounts/index.md rename to public/content/translations/zh-tw/developers/docs/accounts/index.md diff --git a/src/content/translations/zh-tw/developers/docs/blocks/index.md b/public/content/translations/zh-tw/developers/docs/blocks/index.md similarity index 100% rename from src/content/translations/zh-tw/developers/docs/blocks/index.md rename to public/content/translations/zh-tw/developers/docs/blocks/index.md diff --git a/src/content/translations/zh-tw/developers/docs/blocks/tx-block.png b/public/content/translations/zh-tw/developers/docs/blocks/tx-block.png similarity index 100% rename from src/content/translations/zh-tw/developers/docs/blocks/tx-block.png rename to public/content/translations/zh-tw/developers/docs/blocks/tx-block.png diff --git a/src/content/translations/zh-tw/developers/docs/dapps/index.md b/public/content/translations/zh-tw/developers/docs/dapps/index.md similarity index 100% rename from src/content/translations/zh-tw/developers/docs/dapps/index.md rename to public/content/translations/zh-tw/developers/docs/dapps/index.md diff --git a/src/content/translations/zh-tw/developers/docs/evm/evm.png b/public/content/translations/zh-tw/developers/docs/evm/evm.png similarity index 100% rename from src/content/translations/zh-tw/developers/docs/evm/evm.png rename to public/content/translations/zh-tw/developers/docs/evm/evm.png diff --git a/src/content/translations/zh-tw/developers/docs/evm/index.md b/public/content/translations/zh-tw/developers/docs/evm/index.md similarity index 100% rename from src/content/translations/zh-tw/developers/docs/evm/index.md rename to public/content/translations/zh-tw/developers/docs/evm/index.md diff --git a/src/content/translations/zh-tw/developers/docs/evm/opcodes/index.md b/public/content/translations/zh-tw/developers/docs/evm/opcodes/index.md similarity index 100% rename from src/content/translations/zh-tw/developers/docs/evm/opcodes/index.md rename to public/content/translations/zh-tw/developers/docs/evm/opcodes/index.md diff --git a/src/content/translations/zh-tw/developers/docs/gas/gas.png b/public/content/translations/zh-tw/developers/docs/gas/gas.png similarity index 100% rename from src/content/translations/zh-tw/developers/docs/gas/gas.png rename to public/content/translations/zh-tw/developers/docs/gas/gas.png diff --git a/src/content/translations/zh-tw/developers/docs/gas/index.md b/public/content/translations/zh-tw/developers/docs/gas/index.md similarity index 100% rename from src/content/translations/zh-tw/developers/docs/gas/index.md rename to public/content/translations/zh-tw/developers/docs/gas/index.md diff --git a/src/content/translations/zh-tw/developers/docs/index.md b/public/content/translations/zh-tw/developers/docs/index.md similarity index 100% rename from src/content/translations/zh-tw/developers/docs/index.md rename to public/content/translations/zh-tw/developers/docs/index.md diff --git a/src/content/translations/zh-tw/developers/docs/intro-to-ether/index.md b/public/content/translations/zh-tw/developers/docs/intro-to-ether/index.md similarity index 100% rename from src/content/translations/zh-tw/developers/docs/intro-to-ether/index.md rename to public/content/translations/zh-tw/developers/docs/intro-to-ether/index.md diff --git a/src/content/translations/zh-tw/developers/docs/intro-to-ethereum/index.md b/public/content/translations/zh-tw/developers/docs/intro-to-ethereum/index.md similarity index 100% rename from src/content/translations/zh-tw/developers/docs/intro-to-ethereum/index.md rename to public/content/translations/zh-tw/developers/docs/intro-to-ethereum/index.md diff --git a/src/content/translations/zh-tw/developers/docs/networks/index.md b/public/content/translations/zh-tw/developers/docs/networks/index.md similarity index 100% rename from src/content/translations/zh-tw/developers/docs/networks/index.md rename to public/content/translations/zh-tw/developers/docs/networks/index.md diff --git a/src/content/translations/zh-tw/developers/docs/transactions/gas-tx.png b/public/content/translations/zh-tw/developers/docs/transactions/gas-tx.png similarity index 100% rename from src/content/translations/zh-tw/developers/docs/transactions/gas-tx.png rename to public/content/translations/zh-tw/developers/docs/transactions/gas-tx.png diff --git a/src/content/translations/zh-tw/developers/docs/transactions/index.md b/public/content/translations/zh-tw/developers/docs/transactions/index.md similarity index 100% rename from src/content/translations/zh-tw/developers/docs/transactions/index.md rename to public/content/translations/zh-tw/developers/docs/transactions/index.md diff --git a/src/content/translations/zh-tw/developers/docs/transactions/tx.png b/public/content/translations/zh-tw/developers/docs/transactions/tx.png similarity index 100% rename from src/content/translations/zh-tw/developers/docs/transactions/tx.png rename to public/content/translations/zh-tw/developers/docs/transactions/tx.png diff --git a/src/content/translations/zh-tw/developers/docs/web2-vs-web3/index.md b/public/content/translations/zh-tw/developers/docs/web2-vs-web3/index.md similarity index 100% rename from src/content/translations/zh-tw/developers/docs/web2-vs-web3/index.md rename to public/content/translations/zh-tw/developers/docs/web2-vs-web3/index.md diff --git a/src/content/translations/zh-tw/eips/index.md b/public/content/translations/zh-tw/eips/index.md similarity index 100% rename from src/content/translations/zh-tw/eips/index.md rename to public/content/translations/zh-tw/eips/index.md diff --git a/src/content/translations/zh-tw/energy-consumption/energy_consumption_pre_post_merge.png b/public/content/translations/zh-tw/energy-consumption/energy_consumption_pre_post_merge.png similarity index 100% rename from src/content/translations/zh-tw/energy-consumption/energy_consumption_pre_post_merge.png rename to public/content/translations/zh-tw/energy-consumption/energy_consumption_pre_post_merge.png diff --git a/src/content/translations/zh-tw/energy-consumption/index.md b/public/content/translations/zh-tw/energy-consumption/index.md similarity index 100% rename from src/content/translations/zh-tw/energy-consumption/index.md rename to public/content/translations/zh-tw/energy-consumption/index.md diff --git a/src/content/translations/zh-tw/enterprise/index.md b/public/content/translations/zh-tw/enterprise/index.md similarity index 100% rename from src/content/translations/zh-tw/enterprise/index.md rename to public/content/translations/zh-tw/enterprise/index.md diff --git a/src/content/translations/zh-tw/governance/index.md b/public/content/translations/zh-tw/governance/index.md similarity index 100% rename from src/content/translations/zh-tw/governance/index.md rename to public/content/translations/zh-tw/governance/index.md diff --git a/src/content/translations/zh-tw/guides/how-to-create-an-ethereum-account/index.md b/public/content/translations/zh-tw/guides/how-to-create-an-ethereum-account/index.md similarity index 100% rename from src/content/translations/zh-tw/guides/how-to-create-an-ethereum-account/index.md rename to public/content/translations/zh-tw/guides/how-to-create-an-ethereum-account/index.md diff --git a/src/content/translations/zh-tw/guides/how-to-id-scam-tokens/index.md b/public/content/translations/zh-tw/guides/how-to-id-scam-tokens/index.md similarity index 100% rename from src/content/translations/zh-tw/guides/how-to-id-scam-tokens/index.md rename to public/content/translations/zh-tw/guides/how-to-id-scam-tokens/index.md diff --git a/src/content/translations/zh-tw/guides/how-to-revoke-token-access/index.md b/public/content/translations/zh-tw/guides/how-to-revoke-token-access/index.md similarity index 100% rename from src/content/translations/zh-tw/guides/how-to-revoke-token-access/index.md rename to public/content/translations/zh-tw/guides/how-to-revoke-token-access/index.md diff --git a/src/content/translations/zh-tw/guides/how-to-swap-tokens/index.md b/public/content/translations/zh-tw/guides/how-to-swap-tokens/index.md similarity index 100% rename from src/content/translations/zh-tw/guides/how-to-swap-tokens/index.md rename to public/content/translations/zh-tw/guides/how-to-swap-tokens/index.md diff --git a/src/content/translations/zh-tw/guides/how-to-use-a-bridge/index.md b/public/content/translations/zh-tw/guides/how-to-use-a-bridge/index.md similarity index 100% rename from src/content/translations/zh-tw/guides/how-to-use-a-bridge/index.md rename to public/content/translations/zh-tw/guides/how-to-use-a-bridge/index.md diff --git a/src/content/translations/zh-tw/guides/how-to-use-a-wallet/index.md b/public/content/translations/zh-tw/guides/how-to-use-a-wallet/index.md similarity index 100% rename from src/content/translations/zh-tw/guides/how-to-use-a-wallet/index.md rename to public/content/translations/zh-tw/guides/how-to-use-a-wallet/index.md diff --git a/src/content/translations/zh-tw/guides/index.md b/public/content/translations/zh-tw/guides/index.md similarity index 100% rename from src/content/translations/zh-tw/guides/index.md rename to public/content/translations/zh-tw/guides/index.md diff --git a/public/content/translations/zh-tw/nft/index.md b/public/content/translations/zh-tw/nft/index.md new file mode 100644 index 00000000000..9d9102e63a7 --- /dev/null +++ b/public/content/translations/zh-tw/nft/index.md @@ -0,0 +1,94 @@ +--- +title: 非同質化代幣 (NFT) +description: 以太坊生態系非同質化代幣概要 +lang: zh-tw +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: 全息投影顯示的以太幣標誌。 +summaryPoint1: 一種用以太坊資產來呈現任何獨特事物的方式。 +summaryPoint2: 非同質化代幣賦予了內容創作者前所未有的強大力量。 +summaryPoint3: 由建置於以太坊區塊鏈上的智慧型合約提供支援。 +--- + +## 什麼是非同質化代幣? {#what-are-nfts} + +每個非同質化代幣都是獨一無二的代幣。 每個非同質化代幣都有不同的屬性(非同質性),它們的稀缺性是可以驗證的。 這與 ERC-20 代幣有明顯分別,其中一組中的每一個代幣都一樣,且具有相同屬性(同質化)。 你不會在乎你錢包內的特定美鈔,因為它們都長得一樣且價值相同。 但你*確實會*在意你自己持有的特定非同質化代幣,因為它們不同於其他的資產,全都有各自的屬性(非同質化)。 + +每個非同質化代幣的獨特性使藝術品、收藏品,甚至房地產等等事物能夠代幣化,即一個特定的唯一非同質化代幣對應到現實世界的一些特定且獨一無二的物品或數位物品。 資產的所有權受到太坊區塊鏈的保障 – 沒有人可以修改所有權紀錄,或以複製/貼上的方式新增一個非同質化代幣。 + + + +## 資產網路 {#internet-of-assets} + +非同質化代幣和以太坊解決了網際網路上現存的某些問題。 在一切事物均邁向數位化的同時,以不受中心化組織控制的方式複製實體物品屬性(如稀有度、獨特性、所有權證明) 的需求也隨之產生。 舉例來說,透過非同質化代幣,你可以擁有某音樂的 mp3 檔,其非某公司特定音樂應用程式專屬的音樂;又或者,你可以擁有可自行販賣或交換的社交媒體帳戶名稱,而平臺供應商無法任意從你手上奪走。 + +相較於我們大多數人今天使用的網際網路,非同質化代幣網際網路的特色如下... + +### 比較 {#nft-comparison} + +| 非同質化代幣網際網路 | 目前的網際網路 | +| ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| 你擁有自己的數位資產! 只有你可以販售或交換這些資產。 | 你向某些組織租用某資產。 | +| 非同質化代幣具有數位獨特性,每個非同質化代幣皆獨一無二。 | 正品和實體複本往往無法區分。 | +| 非同質化代幣的所有權儲存在區塊鏈上供任何人驗證。 | 數位物品的所有權紀錄儲存在由機構控制的伺服器上–由他們說了算。 | +| 非同質化代幣都是以太坊上的智慧型合約。 這表示以太坊上的其他智慧型合約及應用程式中都能輕易使用這些代幣! | 擁有數位物品的公司通常需要自己的「防火牆防禦地區」(指電信業者或服務供應商擁有控制應用、內容與媒體的能力)基礎架構。 | +| 內容創作者可以在任何地點出售自己的作品,還能進入全球市場。 | 創作者依賴其使用的平台所提供的基礎架構和發佈通路。 這些通常會受到使用條款和地理限制的約束。 | +| 非同質化代幣創作者可以保留自身作品的所有權,並將版稅計費直接編程進非同質化代幣的合約。 | 音樂串流服務等平台分到大部分的銷售利潤。 | + +## 非同質化代幣如何運作? {#how-nfts-work} + +如同任何在以太坊上發行的代幣,非同質化代幣同樣以智慧型合約發行。 智慧型合約符合其中一個非同質化代幣標準(常見的有 ERC-721 或 ERC-1155),其定義了合約中有哪些函式。 合約可建立(「鑄造」)非同質化代幣,並將它們指派給特定持有者。 合約中定義的所有權是將特定的非同質化代幣映射到特定地址。 非同質化代幣具有識別碼,通常也有與它相關聯的元數據,因此可使特定代幣具有唯一性。 + +當某人建立或鑄造非同質化代幣時,他們其實是在執行智慧型合約中的某個函式,合約會將某個特定的非同質化代幣分配給他們的地址。 此資訊記錄在合約的儲存空間中,它也是區塊鏈的一部分。 智慧型合約的創作者可以在合約中撰寫額外邏輯,舉例來說:限制非同質化代幣的總供應量,或定義每當代幣被轉移時,應付多少版稅給創作者。 + +## 非同質化代幣有哪些用途? {#nft-use-cases} + +非同質化代幣有許多用途,例如: + +- 證明你參加過某活動 +- 證明你完成一堂課程 +- 可擁有的遊戲物品 +- 數位藝術 +- 現實資產代幣化 +- 證明你的線上身分 +- 限制內容存取 +- 票務 +- 去中心化的網際網路網域名稱 +- 去中心化金融中的抵押品 + +或許你是位藝術家,想透過非同質化代幣分享你的作品,同時不失去對藝術品的控制權,並因中介而使你的收益受損。 你可以建立一份新合約,並明訂非同質化代幣的數量、它們的屬性,以及連到某些特定藝術品的連結。 作為藝術家,你可以將你應得的版稅編程進智慧型合約(如:每當某非同質化代幣被轉移時,將銷售價格的 5% 撥給合約持有者)。 由於你擁有部署合約的錢包,你隨時也都能證明是你建立了那些非同質化代幣。 你的買家可輕易證明他們擁有賣家收藏品的正版非同質化代幣,因為他們的錢包地址與賣家智慧型合約中的代幣相關聯。 他們可以在以太坊生態系統中使用,並可信任代幣的真實性。 + +又或者以體育賽事的門票為例, 如同賽事主辦者可以決定要販售幾張門票,非同質化代幣的創作者也可以決定要發行幾份複製品。 有時可能是完全相同的複製品,例如 5000 張普通門票; 有時可能會製作好幾種極為類似,但各不相同的複製品,例如指定席的票券。 此類票券可以在不需要給票務員付款的情況下進行點對點買賣,買家可以隨時檢查合約地址,以確保票券的真實性。 + +在 ethereum.org 上,非同質化代幣用於證明人們對我們的 GitHub 儲存庫有所貢獻,或者參加了會議,我們甚至有自己的非同質化代幣網域名稱。 如果你對 ethereum.org 有所貢獻,就可以領取出席證明協議的非同質化代幣。 某些加密貨幣聚會使用出席證明協議作為入場門票。 [深入了解如何貢獻](/contributing/#poap)。 + +![ethereum.org 出席證明協議](./poap.png) + +此網站也有一個由非同質化代幣提供支援的替代網域名稱:**ethereum.eth**。 我們的 `.org` 位址是由網域名稱系統 (DNS) 供應商集中管理,而 ethereum`.eth` 則是透過以太坊名稱服務 (ENS) 於以太坊註冊, 為我們所有,且由我們管理。 [查看我們的以太坊名稱服務 (ENS) 記錄](https://app.ens.domains/name/ethereum.eth) + +[深入了解以太坊名稱服務](https://app.ens.domains) + + + +### 非同質化代幣的安全性 {#nft-security} + +以太坊的安全性來自權益證明。 以太坊系統被設計成以經濟制度抑制惡意行為,這讓以太坊得以防竄改。 這也讓非同質化代幣得以成真。 一旦包含你的非同質化代幣交易的區塊最終化,攻擊者要改變它,就得花費數百萬以太幣。 任何運行以太坊軟體的人皆能立即偵測到對非同質化代幣進行的欺詐性篡改,且惡意行為者也會遭到經濟處罰及驅逐。 + +與非同質化代幣有關的安全問題最常與釣魚詐騙、智慧型合約漏洞或使用者錯誤(如無意間洩漏私密金鑰)有關,所以良好的錢包安全性對非同質化代幣持有者十分重要。 + + + 更多安全相關資訊 + + +## 了解更多 {#further-reading} + +- [非同質化代幣的入門指南](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie,2020 年 1 月_ +- [Etherscan 的非同質化代幣追蹤器](https://etherscan.io/nft-top-contracts) +- [ERC-721 代幣標準](/developers/docs/standards/tokens/erc-721/) +- [ERC-1155 代幣標準](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/public/content/translations/zh-tw/refi/index.md b/public/content/translations/zh-tw/refi/index.md new file mode 100644 index 00000000000..9169278f088 --- /dev/null +++ b/public/content/translations/zh-tw/refi/index.md @@ -0,0 +1,79 @@ +--- +title: 再生金融 (ReFi) +description: 再生金融概覽及當前使用案例。 +lang: zh-tw +template: use-cases +emoji: ":recycle:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: 建立在可再生原則上的替代性金融系統。 +summaryPoint2: 使用以太坊嘗試解決全球協調危機,如氣候變遷。 +summaryPoint3: 大幅擴展生態效益資產(如已驗證碳權)的工具 +--- + +## 再生金融 (ReFi) 是什麼? {#what-is-refi} + +**再生金融 (ReFi)** 是建立在區塊鏈上的一整套想法及工具,目標是建立可再生經濟,而非榨取或剝削式經濟。 榨取式系統最終會耗盡可用資源並崩潰;若沒有再生機制,這套系統便缺乏恢復力。 再生金融在此假設下運作:貨幣的價值創造必須脫離以非永續的手段,從我們星球及社群抽取資源。 + +相對的,再生金融的目標是透過建立再生循環以解決環境、公共或社會問題。 這些系統為參與者創造了價值,同時也有益於生態系統及社群。 + +再生經濟的概念由[資本研究機構](https://capitalinstitute.org) (Capital Institute) 的 John Fullerton 率先提出,此概念為再生金融的基礎之一。 他提出了組成底層系統健康的八個關聯原則: + +![八個關聯原則](./refi-regenerative-economy-diagram.png) + +再生金融項目透過[智慧型合約](/developers/docs/smart-contracts/)及[去中心化金融 (DeFi)](/defi/) 應用程式來實現這些原則,從而獎勵可再生行為,例如復原衰退的生態系統及促進氣候變遷及生物多樣性減損等國際性議題的大規模合作。 + +再生金融也和[去中心化科研 (DeSci)](/desci/) 運動重疊,此運動將以太坊當成融資、創建、審查、融資、儲存及傳播科學知識的平臺。 去中心化科研工具有益於開發可驗證的再生活動導入及監控之標準及實踐,例如:植樹、消除海洋中的塑膠垃圾,或復原衰退的生態系統等再生活動。 + +## 碳權代幣化 {#tokenization-of-carbon-credits} + +**[自願性碳交易市場 (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** 是為項目融資的一種機制,該項目必須對碳排放產生經驗證的正向影響,能減少持續進行中的碳排放,或消除大氣中已排放的溫室氣體。 這些項目在經過驗證後會收到稱為「碳權」的資產,他們可將其出售給願意支持氣候行動的個人或組織。 + +除了自願性碳交易市場外,也有若干政府批准的官方碳交易市場(「規範市場」),目標是透過特定司法管轄區(如國家或地區)的法律或法規來制定碳權價格,控制可分配的許可供應量。 規範市場能獎勵其司法管轄區內的汙染排放者減少碳排放,但無法消除已被排放的溫室氣體。 + +雖然自願性碳交易市場已發展了數十年,它仍面臨各種問題: + +1. 流動性高度分散 +2. 不透明的交易機制 +3. 手續費過高 +4. 交易速度太慢 +5. 缺乏可擴容性 + +將自願性碳交易市場過渡到以區塊鏈為基礎的新**數位碳交易市場 (DCM)** 可能是一個升級現有碳權驗證、交易及消費技術的好機會。 區塊鏈允許公開驗證數據、更廣泛的使用者存取權,以及更高的流動性。 + +再生金融項目採用區塊鏈科技來緩解傳統市場遇到的諸多問題: + +- **流動性集中於少數流動池中**,任何人都能在裡面自由交易。 大型組織或個人可以直接在流動池中交易,不用手動尋找買家/賣家,也不需要支付參與費用或預先註冊。 +- **所有交易都記錄在公開的區塊鏈上**。 數位碳交易市場中一出現碳權,每筆交易活動的路徑永遠都能被追蹤。 +- **交易幾乎即時完成**。 透過傳統市場獲得大量碳權可能會花上數天或數週的時間,但在數位碳交易市場中只需幾秒即可實現。 +- **交易活動不需要中間人**,中間人還會向你收取高額費用。 根據分析公司的統計,數位碳權[與同等的傳統碳權相比,成本降低了 62%](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne)。 +- **數位碳交易市場既可擴張**,亦可滿足個人及跨國公司的需求。 + +### 數位碳交易市場的核心元件 {#key-components-dcm} + +當前的數位碳交易市場由四個主要元件所組成: + +1. [Verra](https://verra.org/project/vcs-program/registry-system/) 和 [Gold Standard](https://www.goldstandard.org/) 等登記處可確保建立碳權的項目可信、可靠。 他們也運用資料庫來記錄數位碳權的來源,碳權可在其中轉移或用罄(註銷)。 + +一波建立於區塊鏈的創新項目正試圖顛覆該領域的現有企業。 + +2. 碳權跨鏈橋,又稱 代幣轉換器,提供了將碳權由傳統登記處轉移到數位碳交易市場的技術。 著名例子包括 [Toucan Protocol](https://toucan.earth/)、[C3](https://c3.app/)和[Moss.Earth](https://moss.earth/)。 +3. 整合服務是一種向使用者端提供碳減排和/或移除碳權的服務,讓使用者可以宣稱碳權對環境的效益,並與全世界分享他們對氣候行動的支持。 + +像是 [Klima Infinity](https://www.klimadao.finance/infinity) 和 [Senken](https://senken.io/) 提供了第三方開發的各種項目,並在既定標準(如 Verra)下發行;其他如 [Nori](https://nori.com/) 就只提供了以其自家碳權標準開發的特定項目,由他們發行這些項目,他們也為之準備了自己的專門市場。 + +4. 基礎設施促使碳交易市場整體供應鏈的影響和效益隨之擴張。 [KlimaDAO](http://klimadao.finance/) 將流動性當成公共財(允許任何人以透明的價格買賣碳權)供應,透過獎勵來提高碳交易市場和碳註銷(指碳權的配額永久減少)的吞吐量,並提供簡單易用的可交互運作工具來存取相關數據,以及收購和註銷各種代幣化碳權。 + +## 超越碳交易市場的再生金融 {#refi-beyond} + +雖然整體來說,目前各界對碳交易市場極為重視,且此領域中,特別看重從自願性碳交易市場轉換到數位碳交易市場,但「再生金融」一詞並不囿限於碳。 碳權以外的其他環境資產均可被開發和代幣化,這表示其他外部成本也可以在未來經濟體系的基礎層中被定價。 此外,再生式的經濟模型也可用於其他領域,如使用 [Gitcoin](https://gitcoin.co/) 等平方融資平臺為公共財融資。 以開放參與及公平分配資源為核心精神的組織讓每個人都能資助開源軟體項目和教育、環保和社群導向項目。 + +透過將資本由搾取式的做法轉向成再生循環的金錢流,對那些提供了社會、環境,或公共利益,以及可能難以夠過傳統金融取得資金的項目及公司來說,他們因而能順利發展,並更快、更輕鬆地為社會產生正向外部影響。 轉變到此融資模式也開啟了更包容的經濟體系,各種背景的人都可以成為主動參與者,而非僅僅是被動的觀察者。 再生金融是以太坊的願景,可作為一種行動協調機制,解決人類及地球上所有生命正面臨的現存挑戰——並作為新經濟典範的基礎層,促進更包容且更永續的未來數百年。 + +## 關於再生金融的延伸閱讀 + +- [深入了解代幣化碳權及其在經濟中的地位](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) +- [小說《未來部門》(Ministry for the Future),描繪了代幣化碳權在對抗氣候變遷上起到的作用。](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) +- [Taskforce 針對擴張自願性碳交易市場所撰的詳細報告](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) +- [由 Kevin Owocki 和 Evan Miyazono 針對再生金融所建的 CoinMarketCap 術語列表](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/zh-tw/roadmap/account-abstraction/index.md b/public/content/translations/zh-tw/roadmap/account-abstraction/index.md similarity index 100% rename from src/content/translations/zh-tw/roadmap/account-abstraction/index.md rename to public/content/translations/zh-tw/roadmap/account-abstraction/index.md diff --git a/public/content/translations/zh-tw/roadmap/beacon-chain/index.md b/public/content/translations/zh-tw/roadmap/beacon-chain/index.md new file mode 100644 index 00000000000..99a268e8d5f --- /dev/null +++ b/public/content/translations/zh-tw/roadmap/beacon-chain/index.md @@ -0,0 +1,75 @@ +--- +title: 信標鏈(Beacon Chain) +description: 瞭解信標鍊 - 將權益證明引入以太坊的升級。 +lang: zh-tw +template: upgrade +image: /upgrades/core.png +alt: +summaryPoint1: 信標鏈將權益證明引入以太坊生態系統。 +summaryPoint2: 信標鏈已於 2022 年 9 月與原先的以太坊工作量證明鏈合併。 +summaryPoint3: 信標鏈引入共識邏輯和區塊流言協定,現在可保護以太坊安全。 +--- + + + 信標鏈於 2020 年 12 月 1 日發佈,並於 2022 年 9 月 15 日透過合併正式將權益證明確定為以太坊的共識機制。 + + +## 信標鏈是什麼? {#what-is-the-beacon-chain} + +信標鍊是 2020 年推出的原始權益證明區塊鏈的名稱。 信標鏈的作用是在以太坊主網上啟用權益證明共識邏輯之前,確保它健全且可永續存在。 因此,它與原先的工作量證明以太坊一起運行。 信標鏈是「空」區塊鏈,但在以太坊上,要從工作量證明過渡到權益證明,需要指示信標鏈接受來自執行用戶端的交易資料,將它們打包進區塊,並使用基於權益證明的共識機制,將它們整合成一個區塊鏈。 與此同時,原始的以太坊用戶端關閉挖礦、區塊廣播和共識邏輯,將它們全部交給信標鏈。 這個事件稱為[合併](/roadmap/merge/)。 一旦合併發生,即不再有兩個區塊鏈。 相反,只有一個權益證明以太坊,每個節點現在需要兩個不同的用戶端。 信標鏈目前是共識層,是處理區塊流言(註:gossip,一種分散式協定)和共識邏輯的共識用戶端點對點網路,而原始用戶端則形成執行層,負責傳播流言和執行交易,以及管理以太坊狀態。 這兩層可以用引擎 API 相互通訊。 + +## 信標鏈可以做什麼? {#what-does-the-beacon-chain-do} + +信標鏈是帳戶帳本的名稱,在以太坊[質押者](/staking/)開始驗證真正的以太坊區塊前,信標鏈會指揮並協調這些質押者。 但它並不處理交易或智慧型合約互動,因為這些事是在執行層完成的。 信標鏈負責區塊和證明處理、運行分叉選擇演算法、管理獎勵和懲罰等事務。 請參閱[節點架構頁面](/developers/docs/nodes-and-clients/node-architecture/#node-comparison)瞭解更多內容。 + +## 信標鏈的影響 {#beacon-chain-features} + +### 質押簡介 {#introducing-staking} + +信標鏈將[權益證明](/developers/docs/consensus-mechanisms/pos/)引入以太坊。 這可以保證以太坊的安全,驗證者可以在此過程中賺取更多以太幣。 實際上,你需要使用質押以太幣來啟用驗證者軟體。 身為質押者,你將運行在鏈中建立及驗證新區塊的軟體。 + +質押的目的與[挖礦](/developers/docs/mining/)相似,但在很多方面有所不同。 挖礦需要大量的前期支出,包括強大的硬體和能耗,從而產生規模經濟並促進中心化。 挖礦也不需要將任何資產鎖倉以作為抵押品,這限制了協定在攻擊發生後懲罰作惡者的能力。 + +相較於工作量證明,過渡到權益證明後,以太坊的安全性和去中心化程度大幅提升。 參與網路的人越多,去中心化程度和安全性越高,抵禦攻擊的能力也越強。 + +使用權益證明作為共識機制是[我們現在擁有的安全、環保、可擴容的以太坊](/roadmap/vision/)的基石。 + + + 若有興趣成為驗證者或幫助保護以太坊安全,請瞭解有關質押的更多資訊。 + + +### 針對分片進行設定 {#setting-up-for-sharding} + +自信標鏈與原先的以太坊主網合併以來,以太坊社群便開始尋找網路擴容方案。 + +權益證明的優點是,在任何時間都擁有所有經核准區塊產生者的註冊表,每個人都各自質押以太幣。 此註冊表奠定了分而治之的基礎,同時也可靠地劃分了具體的網路責任。 + +這種責任與採用工作量證明時的責任相反。採用工作量證明時,礦工對網路沒有義務,可以隨時停止挖礦並永久關閉其節點軟體,而不需承擔後果。 此外,也沒有已知區塊提交者的註冊表,並且沒有可靠的方法來安全地劃分網路責任。 + +[更多分片相關更多資訊](/roadmap/danksharding/) + +## 不同升級之間的關聯 {#relationship-between-upgrades} + +所有以太坊升級都存在某種程度的關聯。 所以,我們來回顧一下信標鏈會如何影響其他升級。 + +### 信標鏈和合併 {#merge-and-beacon-chain} + +起初,信標鏈獨立於以太坊主網而存在,但兩者已於 2022 年合併。 + + + 合併 + + +### 分片與信標鏈 {#shards-and-beacon-chain} + +僅當採用權益證明共識機制時,分片才能安全地進入以太坊生態系統。 已與主網「合併」的信標鏈引入了質押,為未來擴容以太坊所需的分片機制鋪平道路。 + + + 分片鏈 + + +## 衍生閱讀 + +- [關於以太坊未來升級的更多資訊](/roadmap/vision) +- [關於節點架構的更多資訊](/developers/docs/nodes-and-clients/node-architecture) +- [關於權益證明的更多資訊](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/zh-tw/roadmap/danksharding/index.md b/public/content/translations/zh-tw/roadmap/danksharding/index.md similarity index 100% rename from src/content/translations/zh-tw/roadmap/danksharding/index.md rename to public/content/translations/zh-tw/roadmap/danksharding/index.md diff --git a/public/content/translations/zh-tw/roadmap/future-proofing/index.md b/public/content/translations/zh-tw/roadmap/future-proofing/index.md new file mode 100644 index 00000000000..caae65f8811 --- /dev/null +++ b/public/content/translations/zh-tw/roadmap/future-proofing/index.md @@ -0,0 +1,38 @@ +--- +title: 面向未來的以太坊 +description: 不論未來如何發展,這些升級可鞏固以太坊作為有韌性的去中心化基礎層的地位。 +lang: zh-tw +image: /roadmap/roadmap-future.png +alt: "以太坊開發藍圖" +template: roadmap +--- + +開發藍圖的有些部分在短期內並不是一定要用於擴容或保護以太坊,其目的是為以太坊未來的長期穩定性與可靠性奠定基礎。 + +## 抗量子技術 {#quantum-resistance} + +當量子計算成為現實的時候,有一部分用於保護當今以太坊的密碼學技術將會受到攻擊。 儘管量子電腦可能還需幾十年的時間才能對現代密碼學構成真正的威脅,但建立以太坊的目的是確保未來幾個世紀的安全。 這意味著,我們應該盡速[在以太坊部署抗量子技術](https://consensys.net/blog/developers/how-will-quantum-supremacy-affect-blockchain/)。 + +目前以太坊開發者遇到的挑戰是,現在的權益證明協定高度仰賴非常高效的簽名方案(即 BLS)來匯集有效區塊上的投票。 這種簽名方案可以被量子電腦破解,但其他抗量子替代方案又不夠有效率。 + +眾所周知,以太坊中多個地方用於產生加密密鑰的[「KZG」承諾方案](/roadmap/danksharding/#what-is-kzg)不具抗量子能力。 目前,這個風險是使用「可信設定」來規避的,其中許多使用者會產生無法被量子電腦逆向工程的隨機性。 然而,理想的解決方案還是引入量子安全密碼學。 現在有兩種能夠有效替代 BLS 方案的主流方案:[STARK 簽名](https://hackmd.io/@vbuterin/stark_aggregation)和[網格簽名](https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-lattice-encryption-326ac66e3175)。 這些方案仍處於研究與試驗開發階段。 + + 閱讀 KZG 與可信設定相關資訊 + +## 更便捷、更高效的以太坊 {#simpler-more-efficient-ethereum} + +複雜性使得產生錯誤及漏洞的機率提高,導致攻擊者有機可乘。 然而,開發藍圖中也包括精簡以太坊、移除歷經好幾次升級後已不再需要或可以改進的程式碼。 對開發者來說,更精簡、單純的程式碼庫更容易維護和理解。 + +業界將對[以太坊虛擬機 (EVM)](/developers/docs/evm) 進行多項更新,以使其更簡單、更高效。 其中包括[移除 SELFDESTRUCT 操作碼](https://hackmd.io/@vbuterin/selfdestruct),這是一個不常用且已不需要的指令,某些情況下可能帶來危險,特別是和以太坊未來升級的儲存模型一起使用時。 此外,以太坊用戶端仍然支援一些舊的交易類型,現在完全可以移除。 Gas 的計算方式也有改進空間,可以引入更高效的演算法來進行一些加密運算。 + +同樣,目前以太坊用戶端的其他部分也可以進行更新。 其中一個範例是,目前執行和共識用戶端使用的是不同類型的資料壓縮方案。 若能在整個網路上統一壓縮方案,在用戶端之間分享資料會變得更簡單直覺。 + +## 目前進度 {#current-progress} + +大部分面向未來的以太坊升級都仍在研究階段,且距離實作還有數年。 像移除 SELF-DESTRUCT 以及統一執行和共識用戶端中所用的壓縮方案這樣的升級,可能比引入抗量子密碼學更快實現。 + +**了解更多** + +- [Gas](/developers/docs/gas) +- [以太坊虛擬機](/developers/docs/evm) +- [Data structures](/developers/docs/data-structures-and-encoding) diff --git a/public/content/translations/zh-tw/roadmap/index.md b/public/content/translations/zh-tw/roadmap/index.md new file mode 100644 index 00000000000..db8f286786f --- /dev/null +++ b/public/content/translations/zh-tw/roadmap/index.md @@ -0,0 +1,117 @@ +--- +title: 以太坊開發藍圖 +description: 以太坊實現更高可擴容性、安全性和永續性的路徑。 +lang: zh-tw +template: roadmap +image: /roadmap/roadmap-main.png +alt: "以太坊開發藍圖" +summaryPoints: +buttons: + - label: 進一步升級 + toId: 即將發生的變化 + - label: 過往的升級 + to: /history/ + variant: 概述 +--- + +雖然以太坊已經是強大的全球協調平台,但仍在不斷改進當中。 一系列雄心勃勃的改進將把以太坊從本來的型態升級為一個全面擴容、韌性最大的平台。 這些升級已在以太坊開發藍圖中列出。 + +**若要進一步瞭解過往的以太坊升級,請造訪我們的[歷史](/history/)頁面** + +## 以太坊將發生哪些變化? {#what-changes-are-coming} + +以太坊開發藍圖概述了未來將對協定進行的具體改進。 整體而言,開發藍圖會給以太坊使用者帶來以下好處: + + + + + + + + +## 以太坊為何需要開發藍圖? {#why-does-ethereum-need-a-roadmap} + +以太坊會定期升級,以提高其可擴容性、安全性或永續性。 以太坊的核心優勢之一是適應研發中出現的新想法。 以太坊具備出色的適應力,能夠靈活地應對新出現的挑戰並跟上最先進的技術突破。 + + + +以太坊的開發藍圖主要是研發人員多年努力的成果,因為協定的技術性非常強,不過任何有想法與動力的人皆可參與。 理念通常始於論壇上的討論,比如 [ethresear.ch](https://ethresear.ch/)、[以太坊魔術師](https://www.figma.com/exit?url=https%3A%2F%2Fethereum-magicians.org%2F) 或以太坊研發 Discord 伺服器。 它們可能是對新發現的漏洞的回應、在應用層工作的組織提出的意見(比如去中心化應用程式和交易所),或是對最終使用者已知問題的解決辦法(比如成本或交易速度)。 當這些理念成熟之後,可以作為 [以太坊改進提案] 提出 (https://eips.ethereum.org/)。 這一切都是公開進行的,因此社群中的每個人都可以隨時發表意見。 + +[有關以太坊管理體系的更多資訊](/管理體系/) + + + + +

ETH2 是什麼?

+ +

在轉向權益證明之前,「Eth2」一詞通常用於描述以太坊的未來,但現在已被逐步淘汰,取而代之的是更精確的術語。它最初用來區分轉換到權益證明之前和之後的以太坊網路,有時指不同的以太坊用戶端(執行用戶端有時稱為 ETH1 用戶端,共識用戶端有時稱為 ETH2 用戶端)。

+ +
+ +## 以太坊的開發藍圖會隨時間而變更嗎? {#will-ethereums-roadmap-change-over-time} + +是的,幾乎可以肯定會。 開發藍圖是最新的以太坊升級計劃,涵蓋近期和未來的計劃。 我們預計隨著新資訊和技術的出現,開發藍圖也會變更。 + +將以太坊的開發藍圖視為改進以太坊的一系列意圖;這是核心研究者和開發者對以太坊最優前進路徑的最佳假設。 + +## 開發藍圖將於何時完成? {#when-will-the-roadmap-be-finished} + +以太坊會在接下來的六個月實作部分升級(比如質押提款);其他的優先級較低,未來 5-10 年內可能不會實作(比如抗量子性)。 給出每次升級的精確時間很難預測,因為許多開發藍圖上的事項是並行處理的,並以不同速度開發。 升級的緊迫性也會隨著時間的推移而變化,這取決於外部因素(例如,量子電腦的效能和可用性突然提升可能導致抗量子密碼學的實作更加緊急)。 + +可以將以太坊的發展類比為生物進化。 相較於抗拒改變的網路,能夠適應新挑戰及維持健康的網路更可能成功,不過隨著網路的效能、可擴容性和安全性越來越高,需要對協定進行的變更也會減少。 + +## 升級時我需要做什麼嗎? {#do-i-have-to-do-anything-when-there-is-an-upgrade} + +升級往往不會影響最終使用者,除了提供更好的使用者體驗和更安全的協定,或許還提供更多與以太坊互動的選項。 最終使用者並不需要主動參與升級,也不需要做任何事來保護資產。 節點營運者需要更新他們的用戶端,為升級做好準備。 有些升級可能帶來適用於應用程式開發者的變更。 舉例來說,完成歷史記錄到期升級之後,應用程式開發者可從新來源取得歷史資料。 + +## The Verge、The Splurge 等等將如何? {#what-about-the-verge-splurge-etc} + +[Vitalik Buterin 提出了以太坊發展藍圖的願景](https://twitter.com/VitalikButerin/status/1588669782471368704),發展藍圖上的事項被分為多個類別,根據各自對以太坊架構的影響相互關聯。 其中包括: + +- 合併 (The Merge):從工作量證明過渡到權益證明的相關升級 +- 激增 (The Surge):透過卷軸和資料分片進行與可擴容性相關的升級 +- 災厄 (The Scourge):與最大可提取價值的抗審查性、去中心化和協定風險相關的升級 +- 邊際 (The Verge):使得驗證區塊更容易的升級 +- 淨化 (The Purge):有助降低運行節點的運算成本和簡化協定的升級 +- 誇耀 (The Splurge):不屬於上述類別的其他升級 + +我們決定不使用這些術語,因為想使用更簡單、更以使用者為中心的模型。 雖然我們使用以使用者為中心的語言,但願景仍然與 Vitalik 提出的願景相同。 + +## 分片會如何? {#what-about-sharding} + +分片是指將以太坊區塊鏈分割,使部分驗證者只需負責所有資料中的一小部分。 這原本是以太坊的擴容方式。 然而,二層網路卷軸的發展速度比預期快得多,並且已經提供大量擴容,並且 Proto-Danksharding 實作後將提供更多功能。 這意味著已不再需要「分片鏈」,並且已將其從開發藍圖中刪除。 + +## 在尋找特定的技術更新嗎? {#looking-for-specific-technical-upgrades} + +- [Danksharding](/roadmap/danksharding) - Danksharding 透過新增資料的 blob(註:二進位大型物件)到以太坊區塊中,使二層網路卷軸的成本大大降低。 +- [質押提款](/staking/withdrawals) - 上海/卡佩拉在以太坊上升級啟用了質押提款,允許人們解套質押的以太幣。 +- [單一時隙最終確定性](/roadmap/single-slot-finality) - 無需等待十五分鐘,就可以在同一時隙內提出並最終確定區塊。 這對於應用程式來說更方便,也更難被攻擊。 +- [提交者-建置者分離](/roadmap/pbs) - 讓不同的驗證者承擔區塊建置和區塊提交任務,為以太坊達成共識建立了一種更公平、更抗審查且更有效的方式。 +- [秘密領導者選舉](/roadmap/secret-leader-election) - 可以使用巧妙的密碼學來確保目前區塊提交者的身分不被公開,從而保護他們免遭某些類型的攻擊。 +- [帳戶抽象](/roadmap/account-abstraction) - 帳戶抽像是一類升級,支援以太坊上原生的智慧型合約錢包,而不必使用複雜的中間件。 +- [Verkle 樹](/roadmap/verkle-trees) - Verkle 樹是一種資料結構,可用於在以太坊上啟用無狀態用戶端。 這些「無狀態」用戶端只需少量的儲存空間,但仍然能夠驗證新區塊。 +- [無狀態](/roadmap/statelessness) - 無狀態用戶端可以驗證新區塊,不必儲存大量資料。 這將提供運行節點的所有好處,而成本僅為目前的一小部分。 diff --git a/public/content/translations/zh-tw/roadmap/merge/index.md b/public/content/translations/zh-tw/roadmap/merge/index.md new file mode 100644 index 00000000000..90fc78d7ad5 --- /dev/null +++ b/public/content/translations/zh-tw/roadmap/merge/index.md @@ -0,0 +1,229 @@ +--- +title: 合併 +description: 瞭解「合併 - 當以太坊主網採用權益證明時」的相關資訊 +lang: zh-tw +template: upgrade +image: /upgrades/merge.png +alt: +summaryPoint1: 以太坊主網使用權益證明,但以前並非總是如此。 +summaryPoint2: 從原本的工作量證明機制到權益證明的升級稱之為「合併」(The Merge) +summaryPoint3: 合併指原本的以太坊主網與稱為信標鏈的獨立權益證明區塊鏈合併,現在作為一條鏈存在。 +summaryPoint4: 合併將以太坊的能耗降低了大約 99.95%。 +--- + + + 「合併」已於 2022 年 9 月 15 日執行。 這使得以太坊完全過渡到權益證明共識,正式棄用工作量證明並將能耗降低大約 99.95%。 + + +## 「合併」是什麼? {#what-is-the-merge} + +合併指將以太坊的原始執行層(自[創世](/history/#frontier)以來就存在的主網)與其新的權益證明共識層「信標鏈」結合在一起。 它減少了對能源密集型挖礦的需求,而是藉由質押的以太幣來確保網路安全。 這是實現以太坊「更高的可擴容性、安全性和永續性」願景的真正令人興奮的一步。 + + + +一開始,[信標鏈](/roadmap/beacon-chain/)與[主網](/glossary/#mainnet)是分別發佈的。 以太坊主網及其所有帳戶、餘額、智慧型合約以及區塊練狀態繼續受到[工作量證明](/developers/docs/consensus-mechanisms/pow/)的保護,即使信標鏈使用[權益證明](/developers/docs/consensus-mechanisms/pos/)並行運作。 合併完成即表示這兩個系統最終結合在一起,權益證明永久取代工作量證明。 + +將以太坊想像成一艘宇宙飛船,還未完全準備好星際旅行就已經升空。 以太坊社群藉由信標鏈打造全新的引擎與堅固的外殼。 經過大量的測試後,是時候在飛行旅途中以熱插拔的方式將舊引擎更換為新引擎了。 這將全新且更高效的引擎合併到現有的飛船中,使之能夠進行長達數光年的太空之旅。 + +## 與主網合併 {#merging-with-mainnet} + +從創世到合併之前,工作量證明一直保護著以太坊主網的安全。 這使得我們都習慣的以太坊區塊鏈於 2015 年 7 月誕生,並具備所有熟悉的功能——交易、智慧型合約、帳戶等。 + +在以太坊整個發展歷程中,開發者們一直在為最終從工作量證明過渡到權益證明努力準備著。 2020 年 12 月 1 日,信標鏈作為主網的獨立區塊鏈建立,與主網並行運行。 + +信標鏈原本並沒有處理主網的交易, 而是透過商定活躍的驗證者及其帳戶的餘額來就其自己的狀態達成共識。 廣泛的測試完成後,就是讓信標鏈就真實資料達成共識的時候了。 合併之後,信標鏈會成為所有網路資料的共識引擎,包含執行層的交易以及帳戶餘額。 + +合併代表正式轉用信標鏈作為區塊生產引擎。 挖礦不再是生產有效區塊的方式。 相反,權益證明驗證者已擔任這個角色,現在負責處理所有交易的有效性及提交區塊。 + +合併中,歷史記錄不會丟失。 隨著主網與信標鏈合併,以太坊的所有交易記錄也已一併整合。 + + +這種向權益證明的過渡改變了以太幣的發行方式。 瞭解合併前後的以太幣發行的更多相關資訊。 + + +### 使用者及持有者 {#users-holders} + +**合併並不會對持有者或使用者造成任何影響。** + +*再次提醒:*作為以太幣或其他以太坊數位資產的使用者或持有者,以及非節點運行質押者,**在合併前,你並不需要針對自己的資金或錢包採取任何行動**。以太幣還是原本的以太幣。 並沒有所謂的「舊以太幣」/「新以太幣」或「ETH1」/「ETH2」,而且合併前後錢包的使用方式也完全一樣。若有人告訴你其他的說法,那他很可能是個騙子。 + +儘管不再使用工作量證明,以太坊自從創世以來的完整歷史記錄將完整保留,不會因為轉用權益證明而有所改變。 合併前即存在於錢包的所有資金,合併之後一樣可用。 **無須採取任何行動即可升級。** + +[關於以太坊安全性的更多資訊](/security/#eth2-token-scam) + +### 節點營運者與去中心化應用程式開發者 {#node-operators-dapp-developers} + + + +主要行動事項包括: + +1. 同時運行共識用戶端及執行用戶端;合併之後,無法再使用取得執行資料的第三方端點。 +2. 使用共用的 JWT 金鑰來驗證執行與共識用戶端,以便他們能夠安全地通訊。 + 3 設定「收費」地址以接收賺取的礦工費小費/礦工可提取價值 (MEV)。 + +在完成上述兩點以前,你的節點會顯示為「離線」,直到兩個層皆同步且通過驗證為止。 + +若未設定「收費」地址,驗證者仍舊可以如常行事,但你將無法賺取未銷毀費用小費,以及原本可以在驗證者提交的區塊中賺取的礦工可提取價值。 + + + + +合併以前,執行用戶端(例如 Geth、Erigon、Besu 或 Nevermind)可以接收、正確驗證以及廣播藉由網路傳播的區塊。 _合併之後_,執行有效負載中包含的交易之有效性現在也取決於其所在的「共識區塊」的有效性。 + +因此,完整的以太坊節點現在同時需要執行用戶端與共識用戶端。 這兩個用戶端使用新的引擎 API 協同運作。 引擎 API 需要使用 JWT 金鑰進行驗證,該金鑰會提供給兩個用戶端來支援安全通訊。 + +主要行動事項包括: + +- 除共識用戶端之外,還要安裝執行用戶端 +- 利用共用的 JWT 金鑰來驗證執行用戶端和共識用戶端,這樣他們就可以安全地同彼此溝通。 + +若未完成上述事項,你的節點將會顯示為「離線」狀態,直到兩個層皆同步且通過驗證為止。 + + + + + +合併過程中共識機制亦發生變更,包括以下方面的相關更動:< + +
    +
  • 區塊結構
  • +
  • 時隙/區塊時間
  • +
  • 操作碼變更
  • +
  • 鏈上隨機性來源
  • +
  • 安全標頭定案區塊的概念
  • +
+ +更多資訊請閱讀 Tim Beiko 的部落格文章:合併如何影響以太坊的應用層。 + +
+ +## 合併與能耗 {#merge-and-energy} + +合併標誌著以太坊工作量證明的結束,並開啟了更永續、更環保的以太坊紀元。 以太坊的能耗預計下降了 99.95%,使得以太坊成為綠色區塊鏈。 瞭解關於[以太坊能耗](/energy-consumption/)的更多資訊。 + +## 合併與擴容 {#merge-and-scaling} + +合併也為工作量證明之下無法實現的進一步擴容升級奠定了基礎,使得以太坊更接近實現[以太坊願景](/roadmap/vision/)中所描繪的全面擴容、安全性與永續性。 + +## 關於合併的誤解 {#misconceptions} + + + +以太坊的節點有兩種類型:可以提交區塊;無法提交區塊。 + +提交區塊的節點僅佔以太坊節點總數的一小部分。 這一類別中包含工作量證明 (PoW) 下的挖礦節點及權益證明 (PoS) 下的驗證者節點。 這一類別必須要付出經濟資源(例如工作量證明下 GPU 的算力,或是權益證明下的以太幣質押)來換取不時提交下一個區塊並賺取協定獎勵的能力。 + +除了具有 1-2 TB 可用儲存空間和網際網路連線的消費級電腦之外,網路上的其他節點(即其他大多數)不需要付出任何經濟資源。 這些節點並不會提交區塊,但仍然會在保護網路安全中扮演很重要的角色,它們透過偵聽新區塊並根據網路共識規則在到達時驗證其有效性,讓所有區塊提交者負責。 如果區塊有效,節點會繼續將其廣播到網路上。 如果區塊無效,無論什麼樣的原因,節點軟體會將其視為無效並停止其傳播。 + +在任一共識機制(工作量證明或權益證明)下,任何人都可以運行非區塊生產節點;如果可以,強烈推薦所有使用者都這麼做。 運行節點不只對以太坊非常有價值,還可以為運行節點的個人帶來額外的好處,例如提高安全性、隱私性和抗審查能力。 + +任何人都能夠運行自己的節點對於維持以太坊網路的去中心化絕對至關重要。 + +關於運行自己節點的更多資訊 + + + + + +Gas 費用是網路需求相對於網路容量的產物。 合併後,我們棄用了工作量證明,轉而採用權益證明共識機制,但並沒有顯著改變任何直接影響網路容量或吞吐量的參數。 + +根據以卷軸為中心的開發藍圖,我們主要專注於擴容二層網路上的使用者活動,同時讓一層網路主網成為針對卷軸資料儲存進行最佳化的安全去中心化結算層,以協助使卷軸交易成本呈指數級下降。 轉用權益證明是實現這點的關鍵前導步驟。 關於 Gas 和費用的更多資訊。 + + + + +交易的「速度」可以透過多種方式衡量,包括包含在區塊中的時間和最終化時間。 兩者的改變都非常細微,使用者不太會注意到。 + +過往採用工作量證明時,目標是約每 13.3 秒產生一個新區塊。 採用權益證明時,時隙恰好每 12 秒發生一次,每個時隙都是驗證者發佈區塊的機會。 多數時隙都有區塊,但不一定全部都是這樣(如驗證者離線)。 採用權益證明時,區塊的產生頻率比工作量證明高出約 10%。 這是非常細微的改變,使用者不太可能注意到。 + +權益證明引入了先前不存在的交易最終性的概念。 在工作量證明中,交易後經過的每個區塊會讓區塊逆轉的難度指數型加大,但機率並不完全為零。 在權益證明下,區塊會捆綁進驗證者投票的時期(每 6.4 分鐘含有 32 個提交區塊的機會)。 當一個時期結束時,驗證者投票決定該時期是否「合法」。 如果驗證者們同意該時期合法,它會在下個時期最終確定。 取消最終確定的交易在經濟上不可行,因為需要取得和銷毀超過三分之一的總質押以太幣。 + + + + + +合併初期,質押者僅能賺取區塊提案的小費和礦工可提取價值收益。 這些獎勵被計入驗證者控制的非質押帳戶(又稱收費地址),且立即可用。 這些獎勵與執行驗證者職責的協定獎勵是分開的。 + +自從上海/卡佩拉網路升級後,質押者現在可以指定提款地址,以開始接收自動支付的額外質押餘額(原本質押的 32 個以太幣以外的協定獎勵)。 此升級也使驗證者可以在退出網路時解套和收回其全部餘額。 + +關於質押提款的更多資訊 + + + + +由於上海/卡佩拉升級啟用了提款功能,我們鼓勵驗證者提取其質押的 32 個以太幣以外的餘額,因為這些資金不會增加收益率,不提取會被鎖定。 根據年化報酬率(取決於質押的以太幣總量),他們可能被激勵退出驗證者,以回收其全部餘額,或者用其質押獲得的獎勵繼續質押,賺取更多以太幣。 + +這裡有個重要的限制:協定限制了驗證者完全退出的速率,每個時期(每 6.4 分鐘)只有一定數量的驗證者可以退出。 此限制會根據活躍驗證者數量波動,但單日可退出網路的驗證者總數約為全部驗證者的 0.33%。 + +這可以防止質押資金大規模外流。 此外,這也可以阻止潛在的攻擊者在協定執行罰沒懲處之前,獲得因犯下可罰沒的罪行,並在同一時期退出/提取所有有問題的驗證者餘額而質押的以太幣總量的很大一部分。 + +年化報酬率也是特意設計成動態的,使得市場上的質押者可以權衡他們願意付出多少成本來協助維護網路安全。 如果速率太低,驗證者將以協定限制的速率退出。 這將逐漸提高留下的所有人的年利率,再次吸引新的或返回的質押者。 + + +## “Eth2”發生了什麽? {#eth2} + +「Eth2」這個術語已被棄用。 將「Eth1」和「Eth2」合併為單一的區塊鏈後,已不需要區分這兩個以太坊網路;現在只有以太坊。 + +為了減少混亂,社區更新了這些條款: + +- “Eth1”現在是處理交易和執行的“執行層”。 +- “Eth2”現在是處理權益證明共識的“共識層”。 + +這些術語更新只是改變了命名慣例;這並沒有改變以太坊的目標或路線圖。 + +[瞭解更多關於“Eth2”重命名的信息](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) + +## 不同升級之間的關聯 {#relationship-between-upgrades} + +所有以太坊升級都有某種程度上的關聯。 我們來重新回顧合併與其他升級之間的關係。 + +### 合併與信標鏈 {#merge-and-beacon-chain} + +合併代表著信標鏈作為原始主網執行層的新共識層被正式採用。 合併後,驗證者需負責維護以太坊安全,且[工作量證明](/developers/docs/consensus-mechanisms/pow/)挖礦已不再是有效的區塊生產方式。 + +相反,區塊的提交方式是驗證已質押以太幣的節點,以換取參與共識的權利。 這為包括分片在內的未來擴容升級奠定了基礎。 + + + 信標鏈 + + +### 合並與上海升級 {#merge-and-shanghai} + +為了簡化流程並最大限度地專注於成功過渡到權益證明,合併升級不包括某些預期的功能,例如提取質押以太幣的能力。 此功能是在上海/卡佩拉升級時單獨啟用的。 + +歡迎感興趣人士詳細瞭解 Vitalik 在 2021 年 4 月的 ETHGlobal 活動上介紹的[合併後會發生什麼](https://youtu.be/7ggwLccuN5s?t=101)的更多資訊。 + +### 合併與分片 {#merge-and-data-sharding} + +原本的計劃是,在合併前進行分片以處理擴容問題。 然而,鑑於[二層網路擴容解決方案](/layer-2/)的蓬勃發展,優先事務就是摒棄工作量證明,轉用權益證明。 + +分片計劃正在迅速發展,但考慮到用於擴展交易執行的二層網路技術的興起和成功,分片計劃已轉向尋找最佳方式來分配儲存來自卷軸合約的壓縮呼叫資料的負擔,從而實現網路容量的指數級增長。 如果不轉用權益證明,這是不可能的。 + + + 分片 + + +## 延伸閱讀 {#further-reading} + + + + diff --git a/src/content/translations/zh-tw/roadmap/merge/issuance/index.md b/public/content/translations/zh-tw/roadmap/merge/issuance/index.md similarity index 100% rename from src/content/translations/zh-tw/roadmap/merge/issuance/index.md rename to public/content/translations/zh-tw/roadmap/merge/issuance/index.md diff --git a/src/content/translations/zh-tw/roadmap/pbs/index.md b/public/content/translations/zh-tw/roadmap/pbs/index.md similarity index 100% rename from src/content/translations/zh-tw/roadmap/pbs/index.md rename to public/content/translations/zh-tw/roadmap/pbs/index.md diff --git a/public/content/translations/zh-tw/roadmap/scaling/index.md b/public/content/translations/zh-tw/roadmap/scaling/index.md new file mode 100644 index 00000000000..7c93a810e02 --- /dev/null +++ b/public/content/translations/zh-tw/roadmap/scaling/index.md @@ -0,0 +1,47 @@ +--- +title: 以太坊擴容 +description: 卷軸可在鏈外批次處理交易,從而降低使用者的成本。 但現今卷軸使用資料的方式還是過於昂貴,限制了交易金額的下限。 Proto-Danksharding 可以解決這個問題。 +lang: zh-tw +image: /roadmap/roadmap-transactions.png +alt: "以太坊開發藍圖" +template: roadmap +--- + +以太坊利用[二層網路](/layer-2/#rollups)(也稱「卷軸」)實現擴容,可批次處理交易並將輸出傳送至以太坊。 儘管成本已比以太坊主網低八倍,卷軸還有進一步最佳化的空間,進而幫助降低最終使用者的成本。 此外,卷軸還仰賴於一些中心化組件,隨著其不斷發展成熟,開發者可以移除這些組件。 + + +
    +
  • 現今卷軸的成本比以太坊一層網路便宜大約 3-8 倍
  • +
  • ZK 卷軸很快會讓費用降低大約 40-100 倍
  • +
  • 以太坊即將更動,會帶來大約 100-1000 倍的擴容
  • +
  • 使用者應該能夠從成本低於 $0.001 的交易中受益
  • +
+
+ +## 降低資料使用費用 {#making-data-cheaper} + +卷軸會集合大量交易,執行它們並將結果提交到以太坊。 這會產生大量需要公開的資料,以便所有人都可以自己執行交易並驗證卷軸營運者是否誠實。 若有人發現矛盾之處,可以提起質詢。 + +### Proto-Danksharding {#proto-danksharding} + +卷軸資料會永久儲存在以太坊上,成本非常高昂。 使用者為卷軸支付的交易費用中,超過 90% 都是花在資料儲存上。 為了降低交易費用,我們可以將資料移至新的「blob」(註:二進位大型物件)臨時儲存區。 Blob 更便宜,因為它們不是永久性的,一旦不再需要,就會從以太坊中刪除。 長期儲存卷軸資料成為需要它的人的責任,例如卷軸營運者、交易所、索引服務等。 將 blob 交易新增至以太坊是「Proto-Danksharding」升級的一部分。 我們預計這一功能很快(可能在 2023 年年底)會發佈。 + +當 blob 交易透過「Proto-Danksharding」成為以太坊協定的一部分後,可以將多個 blob 新增至以太坊區塊。 這將是以太坊吞吐量的又一次大幅(>100 倍)擴容和交易成本的縮減。 + +### Danksharding {#danksharding} + +擴展 blob 資料的第二階段很複雜,因為需要新的方法來檢查網路上可用的卷軸資料,並仰賴驗證者將其區塊構建和區塊提案職責分開。 它還需要一種方法來以加密方式證明驗證者已驗證一小部分 blob 資料。 + +這個第二步也稱作[「Danksharding」](/roadmap/danksharding/), 全面實作可能還需要數年時間。 Danksharding 還需要仰賴其他的技術開發,例如[將區塊構建和區塊提案分開](/roadmap/pbs),以及新的網路設計,使得網路能夠透過一次隨機採樣幾千字節來有效地確認資料可用(也稱作[資料可用性採樣,簡稱 DAS](/developers/docs/data-availability))。 + +有關分片的更多資訊 + +## 卷軸去中心化 {#decentralizing-rollups} + +[卷軸](/layer-2)已在推動以太坊擴容。 憑藉[豐富的卷軸專案生態系統](https://l2beat.com/scaling/tvl),使用者可以在有安全保證的狀況下快速實惠地完成交易。 然而,一直以來卷軸都是使用中心化排序者(先完成所有交易處理和匯總,再將結果提交至以太坊的電腦)啟動的。 這讓審查制度變得十分脆弱,因為排序者營運者可能被制裁、賄賂或者做出其他讓步。 同時,[卷軸也會採取不同方式](https://l2beat.com)驗證傳入的資料。 最好的方法是「證明者」提交欺詐證明或有效性證明,但並非所有卷軸都已存在。 即使是確實使用有效性/欺詐證明的卷軸也只使用一小部分已知的證明者。 因此,以太坊擴容的下一個關鍵步驟就是將運行排序者和證明者的責任分配給更多人。 + +關於卷軸的更多資訊 + +## 目前進度 {#current-progress} + +Proto-Danksharding 可能是較早實作的開發藍圖專案之一。 設定它所需的去中心化計算步驟已在進行當中,有些用戶端已經實作處理 blob 資料的原型。 完整的 Danksharding 可能還需要幾年的時間,因為它要求先完成其他幾個開發藍圖專案。 卷軸基礎設施的去中心化可能是一個漸進的過程,有許多不同的卷軸正在構建略有不同的系統,並將以不同的速率完全去中心化。 diff --git a/src/content/translations/zh-tw/roadmap/secret-leader-election/index.md b/public/content/translations/zh-tw/roadmap/secret-leader-election/index.md similarity index 100% rename from src/content/translations/zh-tw/roadmap/secret-leader-election/index.md rename to public/content/translations/zh-tw/roadmap/secret-leader-election/index.md diff --git a/public/content/translations/zh-tw/roadmap/security/index.md b/public/content/translations/zh-tw/roadmap/security/index.md new file mode 100644 index 00000000000..977b2144276 --- /dev/null +++ b/public/content/translations/zh-tw/roadmap/security/index.md @@ -0,0 +1,48 @@ +--- +title: 一個更安全的以太坊 +description: 以太坊是現有最安全、去中心化程度最高的智慧型合約平台。 然而,我們還可以繼續對其進行改進,以便未來能夠保持韌性來對抗任意級別的攻擊。 +lang: zh-tw +image: /roadmap/roadmap-security.png +alt: "以太坊開發藍圖" +template: roadmap +--- + +雖然以太坊已經是一個非常安全的去中心化智慧型合約平台, 但還可以繼續對其進行改進,以便未來能夠保持韌性來對抗各種攻擊。 這其中包含對以太坊使用者處理競爭區塊的方式進行微妙的調整,以及提高網路認定的區塊[「最終」](/developers/docs/consensus-mechanisms/pos/#finality)速度(意即,攻擊者必須付出巨大的經濟代價才能更改它們)。 + +我們還可以做一些改進來提高交易審查難度,方法是讓區塊提交者無法獲知區塊的實際內容,以及無法找尋新的方法來識別用戶端的審查。 同時完成這些改進即相當於實現權益證明協定升級,如此,使用者(從個人到企業)將即刻對其在以太坊上的應用程式、資料和資產充滿信心。 + +## 質押提款 {#staking-withdrawals} + +從工作量證明到權益證明的升級始於以太坊先驅將他們的以太幣「質押」到存款合約中。 質押的以太幣用於保護網路安全, 但無法解套並退還給使用者。 權益證明升級的一個關鍵環節是,允許使用者取出以太幣。 提款是全功能權益證明協定的關鍵組成部分,除此之外,允許提款對以太坊的安全性也很有益,因為它允許質押者將以太幣獎勵用於其他非質押用途。 這意味著想要流動性的使用者不必依賴流動性質押衍生品 (LSD),以免加劇以太坊的中心化。 此次升級預計於 2023 年 4 月 12 日完成。 + +閱讀提款的相關資訊 + +## 對抗攻擊 {#defending-against-attacks} + +除新增提款功能外,我們還可以對以太坊[權益證明](/developers/docs/consensus-mechanisms/pos/)協定進行其他改進。 其中之一是 [view-merge](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739),這是一種更安全的分叉選擇演算法,可讓某些複雜類型的攻擊實作難度加大。 + +縮短以太坊最終化區塊所需的時間將帶來更好的使用者體驗,並防止複雜的「重組」攻擊,即攻擊者試圖重新洗牌最近的區塊以獲取利潤或審查某些交易。 [**單一時隙最終確定性 (SSF)**](/roadmap/single-slot-finality/) 是盡力縮短最終化延遲的一種方法。 目前,攻擊者理論上可以說服其他驗證者重新設定 15 分鐘的區塊。 採用單一時隙最終確定性時,這一數值將變為 0。 使用者(從個人至應用程式乃至交易所)都將受益於快速保證其交易不會被還原,消滅整個攻擊類別會讓網路受益。 + +閱讀單一時隙最終確定性的相關資訊 + +## 對抗審查 {#defending-against-censorship} + +去中心化可避免驗證者個人或小團體影響力過大。 新的質押技術有助於確保以太坊的驗證者盡可能保持去中心化,同時保護他們免遭硬體、軟體及網路故障。 這包括跨多個節點共擔驗證者職責的軟體, 被稱為**分散式驗證者技術 (DVT)**。 分散式驗證者技術允許多台電腦共同參與驗證,增強了冗餘性和容錯能力,所以質押池被鼓勵使用分散式驗證者技術。 它還將驗證者金鑰拆分到多個系統中,而不是讓單個操作員運行多個驗證者。 這使得不誠實的操作員更難協調對以太坊的攻擊。 總結來說,分散式驗證者技術的理念是以*群體*而非個體的方式運行驗證者,從而獲得安全優勢。 + +閱讀分散式驗證者技術的相關資訊 + +實作**提交者-建置者分離 (PBS)** 可大幅提升以太坊內建的抗審查能力。 提交者-建置者分離讓一個驗證者建立區塊,另一個負責將該區塊廣播至以太坊網路。 這樣可確保在整個網路中更公平地分享專業的利潤最大化區塊建置演算法帶來的收益,**避免質押逐漸集中**到表現最佳的機構質押者手上。 區塊提交者可以從眾多區塊建置者提供給他們的區塊中,選取收益最高的區塊。 為了對抗審查,區塊提交者常常退而求其次,選取收益較低的區塊,這在**經濟上不合理,網路上的其他驗證者也很容易看出其意圖**。 + +提交者-建置者分離有潛在的附加功能(如交易加密及包含清單),可以進一步提高以太坊的抗審查能力。 這些功能使得區塊建置者和提交者無法得知其區塊中包含的實際交易。 + +閱讀提交者-建置者分離的相關資訊 + +## 保護驗證者 {#protecting-validators} + +經驗老道的攻擊者可能有辦法識別下一輪的驗證者,透過傳送垃圾訊息阻止他們提交區塊,這被稱為**阻斷服務 (DoS)** 攻擊。 實作[**秘密領導者選舉 (SLE)**](/roadmap/secret-leader-election) 可以阻止區塊提交者提前獲知區塊內容,從而防範此類攻擊。 其作用原理為:不斷變換代表候選區塊提交者的一組加密承諾,並使用其順序來確定驗證者,以便只有驗證者預先知道自己的順序。 + +閱讀秘密領導者選舉的相關資訊 + +## 目前進度 {#current-progress} + +以太坊開發藍圖上的安全升級正處於研究的後期階段,但預計一段時間內還不會實作。 至於 view-merge、提交者-建置者分離、單一時隙最終確定性和秘密領導者選舉,下一步是最終確定規範並開始建置原型。 diff --git a/src/content/translations/zh-tw/roadmap/single-slot-finality/index.md b/public/content/translations/zh-tw/roadmap/single-slot-finality/index.md similarity index 100% rename from src/content/translations/zh-tw/roadmap/single-slot-finality/index.md rename to public/content/translations/zh-tw/roadmap/single-slot-finality/index.md diff --git a/src/content/translations/zh-tw/roadmap/statelessness/index.md b/public/content/translations/zh-tw/roadmap/statelessness/index.md similarity index 100% rename from src/content/translations/zh-tw/roadmap/statelessness/index.md rename to public/content/translations/zh-tw/roadmap/statelessness/index.md diff --git a/public/content/translations/zh-tw/roadmap/user-experience/index.md b/public/content/translations/zh-tw/roadmap/user-experience/index.md new file mode 100644 index 00000000000..85fd270af11 --- /dev/null +++ b/public/content/translations/zh-tw/roadmap/user-experience/index.md @@ -0,0 +1,36 @@ +--- +title: 改善使用者體驗 +description: 對大部分人而言,使用以太坊仍然是非常複雜的一件事。 為了推動普及化,以太坊必須大幅降低使用門檻——使用者必須獲得去中心化、無需許可、抗審查存取以太坊的優勢,同時體驗必須與使用傳統 web2 應用程式一樣順暢。 +lang: zh-tw +image: /roadmap/roadmap-ux.png +alt: "以太坊開發藍圖" +template: roadmap +--- + +從管理金鑰和錢包到發起交易,以太坊的使用方式需要簡化。 為促成大規模的使用,以太坊必須大幅提高易用性,讓使用者無需許可即能抗審查存取以太坊,收穫仿如使用 Web2 應用程式一般的順暢體驗。 + +## 超越種子助記詞 {#no-more-seed-phrases} + +以太坊帳戶由一對用於識別帳戶(公開金鑰)和簽名訊息(私密金鑰)的金鑰保護。 私密金鑰就像主密碼,允許使用者完整存取以太坊帳戶。 對於更熟悉銀行和代使用者管理帳戶之 Web2 應用程式的人來說,這是一種不同的操作方式。 若要讓以太坊在不依賴中心化第三方的情況下被大規模採用,必須為使用者提供一種簡單直接的順暢方式來管理資產並掌控自己的資料,而無需瞭解公開-私密金鑰加密及金鑰管理方面的知識。 + +為解決此問題,可採取的辦法是使用智慧型合約錢包與以太坊互動。 智慧型合約錢包確立了金鑰丟失或被盜時保護帳戶的方法,提供更好地檢測和防禦欺詐的機會,並且允許為錢包新增功能。 儘管智慧型合約錢包目前已經存在,但其建構難度還很大,因為需要以太坊協定提供更好的支援。 此額外的支援稱為帳戶抽象。 + +關於帳戶抽象的更多資訊 + +## 所有人都能運行的節點 + +運行節點的使用者不必信任第三方為其提供資料,他們無需許可即可快速、私密地與以太坊區塊鏈互動。 然而,現在運行節點需要技術知識以及大量的磁碟空間,這意味著許多人必須信任中介。 + +有些升級可以讓運行節點變得更加簡單,且不需消耗如此大量的資源。 儲存資料時將改為使用更節省空間的架構,稱為 **Verkle 樹**。 同時,透過[無狀態](/roadmap/statelessness)或[資料過期](/roadmap/statelessness/#data-expiry),以太坊節點無需儲存全部以太坊狀態資料的副本,從而大大減少硬碟空間需求。 [輕節點](/developers/docs/nodes-and-clients/light-clients/)將帶來運行全節點的許多好處,並且可以在行動電話或簡單的瀏覽器應用程式中輕鬆運行。 + +閱讀 Verkle 樹的相關資訊 + +透過這些升級,可以有效地將運行節點的障礙降低至零。 使用者無需許可即能安全存取以太坊,而不必犧牲電腦或行動電話上的大量磁碟或 CPU 空間,且使用應用程式時,不必仰賴第三方存取資料或是網路。 + +## 目前進度 {#current-progress} + +智慧型合約錢包早已可用,但需要更多升級才能讓它們盡可能去中心化及無需許可。 EIP-4337 是一項成熟的提案,無需對以太坊協定進行任何更動。 EIP-4337 所需的主要智慧型合約已於 2023 年 3 月部署。 + +「完全無狀態」仍處於研究階段,距離實作可能還需幾年時間。 還需要完成幾個里程碑才能實現「完全無狀態」,包括可能更快實作的資料過期。 [Verkle 樹](/roadmap/verkle-trees/)及[提案者與構建者分離](/roadmap/pbs/)等其他開發藍圖事項需要先行完成。 + +Verkle 樹測試網已經上線運行,下一階段為先在私密、後在公開的測試網上運行已啟用 Verkle 樹的用戶端。 將合約部署至測試網或是運行測試網用戶端有助加快進度。 diff --git a/src/content/translations/zh-tw/roadmap/verkle-trees/index.md b/public/content/translations/zh-tw/roadmap/verkle-trees/index.md similarity index 100% rename from src/content/translations/zh-tw/roadmap/verkle-trees/index.md rename to public/content/translations/zh-tw/roadmap/verkle-trees/index.md diff --git a/src/content/translations/zh-tw/security/index.md b/public/content/translations/zh-tw/security/index.md similarity index 100% rename from src/content/translations/zh-tw/security/index.md rename to public/content/translations/zh-tw/security/index.md diff --git a/public/content/translations/zh-tw/smart-contracts/index.md b/public/content/translations/zh-tw/smart-contracts/index.md new file mode 100644 index 00000000000..a1e7b71e7cc --- /dev/null +++ b/public/content/translations/zh-tw/smart-contracts/index.md @@ -0,0 +1,84 @@ +--- +title: 智慧型合約 +description: 智慧型合約的非技術性簡介 +lang: zh-tw +--- + +# 智慧型合約簡介 {#introduction-to-smart-contracts} + +智慧型合約是以太坊應用層的基本構成要素。 這些合約是儲存在區塊鏈上的電腦程式,其跟從「條件式」的設計邏輯,且保證依程式碼所定義的規則來執行,程式碼一經建立即無法變更。 + +Nick Szabo 率先提出「智慧型合約」一詞。 他在 1994 年撰寫了[這個概念](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html),並在 1996 年撰寫了[《探索智慧型合約可以做什麼》](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html)。 + +Szabo 預見了一個無需可信的中介,即能以自動化加密安全流程實現交易和業務功能的數位拍賣市場。 以太坊上的智慧型合約讓此一願景付諸實踐。 + +## 傳統合約內的信任 {#trust-and-contracts} + +傳統合約最大的問題之一是需要值得信賴的個人來監督合約執行結果。 + +例如: + +Alice 和 Bob 進行一場自行車比賽。 Alice 和 Bob 打賭 10 美金,賭她會鸁。 而 Bob 堅信自己會鸁得比賽,因此同意打賭。 結果,Alice 把 Bob 遠遠抛在身後,她顯然鸁了。 但 Bob 拒絕支付賭注,聲稱 Alice 一定是做弊。 + +這個搞笑的範例說明了非智慧型協議會發生的問題。 即使已符合協議的條件(亦即,你是比賽的獲勝者),你還得相信對方會履行協議(也就是支付賭注)。 + +## 數位自動販賣機 {#vending-machine} + +用簡單的比喻來說,智慧型合約就像一台自動販賣機,只要按下特定的按鍵,就保證會得到預先設定好的商品。 + +- 你選擇一個商品 +- 販賣機顯示價格 +- 你付款給販賣機 +- 販賣機確認你是否投入正確的金額 +- 自動販賣機掉出你要的商品 + +自動販賣機只在所有需求都符合時,才會掉出你想要的商品。 如果你沒選擇商品或是投入足額的錢,自動販賣機便不會掉出你要的商品。 + +## 自動執行 {#automation} + +智慧型合約的主要好處在於當特定條件成立時,它便會確切執行非模糊的程式碼。 你不需要等真人來詮釋或協調結果。 這消除了可信中介的需求。 + +例如,你可以撰寫為孩子代管資金的智慧型合約,讓他們過了特定日期後才能提領該資金。 如果他們想在到期日前提領資金,智慧型合約便不會執行。 你也可以撰寫一份智慧型合約,當你付錢給汽車經銷商後,合約便會自動發給你一張數位版的車輛所有權證明。 + +## 可預測的結果 {#predictability} + +傳統合約的模糊之處在於它們有賴於真人自行詮釋和履約。 舉例來說,兩名法官可能會對同一張合保持不同見解,這就造成判決不一致,繼而產生不同結果。 智慧型合約消除了這種可能性。 相反地,智慧型合約依合約程式碼內所寫條件準確執行。 準確的意思是指,只要提供相同的條件,智慧型合約就會產生相同的結果。 + +## 公開的記錄 {#public-record} + +智慧型合約對於審計和追蹤也非常有用。 由於以太坊的智慧型合約寫在公共區塊鏈上,因此任何人都能立即追蹤資產的傳送和其他相關資訊。 舉例來說,你可以查閱某人是否把錢轉到你的地址了。 + +## 隱私保護 {#privacy-protection} + +智慧型合約也可以保護你的隱私權。 由於以太坊是匿名網路(你進行的交易公開綁定唯一的加密地址,而非綁定個人身分),因而可以保護隱私不受監視。 + +## 公開可見的條款 {#visible-terms} + +最後,如同傳統合約,你可以在簽名同意前檢查智慧型合約裡的內容,或與合約互動。 智慧型合約的透明度擔保每個人都可以審閱它。 + +## 智慧型合約使用案例 {#use-cases} + +基本上,智慧型合約可以做到所有電腦程式都能做到的事。 + +它們可以執行計算、創建貨幣、儲存資料、鑄造非同質化代幣、傳送通訊內容,甚至產生圖形。 以下是一些真實世界流行的範例: + +- [穩定幣](/stablecoins/) +- [建立和分發唯一的數位資產](/nft/) +- [自動、開放的貨幣交易所](/get-eth/#dex) +- [去中心化遊戲](/dapps/?category=gaming) +- [自動理賠的保單](https://etherisc.com/) +- [讓人們建立自訂、可互相流通的貨幣的標準](/developers/docs/standards/tokens/) + +## 想透過視覺方式學習? {#visual-learner} + +觀看 Finematics 講解智慧型合約: + + + +## 了解更多 {#further-reading} + +- [智慧型合約將如何改變世界](https://www.youtube.com/watch?v=pA6CGuXEKtQ) +- [智慧型合約:將取代律師的區塊鏈技術](https://blockgeeks.com/guides/smart-contracts/) +- [適用於開發者的智慧型合約](/developers/docs/smart-contracts/) +- [學習撰寫智慧型合約](/developers/learning-tools/) +- [精通以太坊 ─ 智慧型合約是什麼?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/zh-tw/social-networks/index.md b/public/content/translations/zh-tw/social-networks/index.md new file mode 100644 index 00000000000..48b65028e25 --- /dev/null +++ b/public/content/translations/zh-tw/social-networks/index.md @@ -0,0 +1,121 @@ +--- +title: 去中心化社交網路 +description: 以太坊去中心化社交網路概覽 +lang: zh-tw +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: /ethereum-learn.png +summaryPoint1: 基於區塊鏈的平台,用於社交互動、内容建立和分發。 +summaryPoint2: 去中心化社交媒體網路可保護用戶隱私和增強資料安全性。 +summaryPoint3: 代幣和非同質化代幣創造了將內容貨幣化的新方法。 +--- + +社交網路在我們的日常交流和互動中發揮著重要作用。 然而,這些平台的中心化控制產生了許多問題:資料洩露、伺服器中斷、平台禁言、審查制度和侵犯隱私,是社交媒體經常做出的一些取捨。 為了解決這些問題,開發者正在以太坊上建立社交網路。 去中心化社交網路可以解決傳統社交網路平台的許多問題,並提升用戶的整體體驗。 + +## 什麼是去中心化社交網路? {#what-are-decentralized-social-networks} + +去中心化社交網路是基於區塊鏈的平台,允許用戶交換資訊以及向受眾發布和分發內容。 由於這些應用程式在區塊鏈上運作,它們能夠去中心化且抵抗審查和不當控制。 + +許多去中心化的社交網路已成為現有社交媒體服務的替代品,例如 Facebook、LinkedIn、Twitter 和 Medium。 但基於區塊鏈的社交網路有許多功能,使其領先於傳統社交平台。 + +### 去中心化社交網路是如何運作的? {#decentralized-social-networks-overview} + +去中心化社交網路是一種[去中心化應用程式 (dApp) ](/dapps/)——由部署在區塊鏈上的[智慧型合約](/developers/docs/smart-contracts/)提供支持的應用程式。 合約程式碼充當這些應用程式的後端並定義它們的業務邏輯。 + +傳統社交媒體平台依靠資料庫來儲存用戶資訊、程式碼和其他形式的資料。 但這會產生單點故障並帶來重大風險。 例如,去年 Facebook 的伺服器[離線數小時](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact),使得用戶與平台的連線中斷,引起了許多用戶抱怨。 + +去中心化社交網路存在於由全球數千個節點組成的點對點網路上。 即使某些節點發生故障,網路仍然會持續運作,使應用程式能夠抵抗故障和中斷。 + +基於以太坊建立的社交網路,使用去中心化儲存系統,如[星際文件系統 (IPFS)](https://ipfs.io/),可以保護用戶資訊不被利用和惡意使用。 不會有人將你的個人資訊出售給廣告商,駭客也無法竊取你的機密資訊。 + +許多基於區塊鏈的社交平台都有原生代幣,可以在沒有廣告收入的情況下實現貨幣化。 使用者可以購買這些代幣來訪問某些功能、完成應用程式內購或給他們最喜歡的內容創作者小費。 + +## 去中心化社交網路的好處 {#benefits} + +1. 去中心化社交網路可抵抗審查,並對所有人開放。 這意味著使用者不能被任意禁止、被平台禁言或限制。 + +2. 去中心化社交網路建立在開放原始碼理念的基礎上,並使應用程式的源程式碼可供公眾查看。 透過去除傳統社交媒體中常見的不透明演算法實作,基於區塊鏈的社交網路可以讓使用者和平台創立者的利益保持一致。 + +3. 去中心化社交網路取消了「中間人」。 內容創作者對其創作內容擁有直接所有權,他們直接與追隨者、粉絲、買家和其他各方互動,雙方之間僅有智慧型合約。 + +4. 由於去中心化應用程式在以太坊網路上運作,而該網路是由全球 P2P 節點網路所維持,因此去中心化社交網路不太容易受到伺服器停機和中斷的影響。 + +5. 去中心化社交平台透過非同質化代幣 (NFT)、應用程式內加密貨幣支付等,為內容創作者提供更好的貨幣化框架。 + +6. 去中心化的社交網路為使用者提供了高度的隱私和匿名性。 例如,個人可以使用以太坊名稱服務個人資料或錢包,登錄基於以太坊的社交網路,而無需共享個人身分資訊 (PII),例如姓名、電子郵件地址等。 + +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)](/nft/),也稱為寫作非同質化代幣。 鑄造寫作非同質化代幣對作者來說是完全免費的,並且收集發生在以太坊二層網路上——使交易變得便宜、快速且環保。 + +### MINDS {#minds} + +[MINDS](https://www.minds.com/) 是最常用的去中心化社交網絡之一。 它的運作方式與 Facebook 類似,並且已經吸引了數百萬使用者。 + +使用者使用平台的原生 ERC-20 代幣 $MIND 來支付物品價格。 使用者還可以透過發布熱門內容、為生態系統做出貢獻以及將其他人推薦給平台來賺取 $MIND 代幣。 + +## 以太坊上的 Web2 社交網路 {#web2-social-networks-and-ethereum} + +[Web3](/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 合作,後者是一個旨在擴展以太坊交易的[二層網路](/layer-2/)卷軸。 + +該程式現已上線,使用[運行名為「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 是一條集合了[側鏈](/developers/docs/scaling/sidechains/)和[樂觀卷軸](/developers/docs/scaling/optimistic-rollups/)屬性的區塊鏈。 除使用社群積分來解鎖特殊功能外,使用者亦可以在交易所用它們來換取法定貨幣。 此外,使用者擁有社群積分的數量決定了他們在社群決策過程中的影響力。 + +### Twitter {#twitter} + +2021 年 1 月,Twitter Blue [推出了對非同質化代幣的支援](https://mashable.com/article/twitter-blue-nft-profile-picture),允許使用者連接他們的錢包並顯示非同質化代幣作為個人資料圖片。 在撰寫本文時,這家社交媒體公司還[宣布計劃](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web),未來創建一個去中心化社交網路。 + +### Instagram {#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 是安全的訊息傳遞應用程式,使用開放程式碼、點對點協議和端到端加密來保護你的訊息免受第三方的侵害。_ +- **[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} + +- [去中心化社交媒體闡述](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ +- [DeSo 區塊鏈希望將社交媒體去中心化](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ +- [去中心化社交媒體的未來展望 - Balaji Srinivasan、Vitalik Buterin 和 Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ + +### 社群 {#communities} + +- [Status Discord 伺服器](https://discord.com/invite/3Exux7Y) +- [Mirror Discord 伺服器](https://discord.com/invite/txuCHcE8wV) +- [r/CryptoCurrency subreddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/zh-tw/staking/dvt/index.md b/public/content/translations/zh-tw/staking/dvt/index.md similarity index 100% rename from src/content/translations/zh-tw/staking/dvt/index.md rename to public/content/translations/zh-tw/staking/dvt/index.md diff --git a/public/content/translations/zh-tw/staking/pools/index.md b/public/content/translations/zh-tw/staking/pools/index.md new file mode 100644 index 00000000000..a9330c05113 --- /dev/null +++ b/public/content/translations/zh-tw/staking/pools/index.md @@ -0,0 +1,85 @@ +--- +title: 聯合質押 +description: 關於如何開始聯合以太幣質押的概覽 +lang: zh-tw +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-pool.png +alt: 萊斯利犀牛在池中游泳 +sidebarDepth: 2 +summaryPoints: + - 與其他人一起質押任意數量的以太幣並獲得酬勞 + - 跳過困難的部分,將驗證者運作委託給第三方 + - 在你自己的錢包中持有質押代幣 +--- + +## 什麼是質押礦池 {#what-are-staking-pools} + +質押礦池是一種協作方式,允許擁有少量以太幣的人能夠滿足 32 個以太幣這一條件,以激活一組驗證者金鑰。 由於協定本身並不支援聯合質押這項功能,因此需要單獨建立解決方案來滿足此需求。 + +一些礦池使用智慧型合約運作,可以將資金存入合約,由合約以去信任的方式管理和追蹤你的質押品,並向你發放相應價值的代幣。 其他礦池可能不涉及智慧型合約,而是在鏈外調解。 + +## 為什麼要使用礦池進行質押 {#why-stake-with-a-pool} + +除了我們在[質押簡介](/staking/)中描述的好處之外,聯合質押還具有許多獨特的好處。 + + + + + + + + + +## 需要考慮的事項 {#what-to-consider} + +以太坊協定本身並不支援聯合質押或委託質押,但考量到想要質押的以太幣不足 32 個的使用者的需求,越來越多的解決方案已經開始建立。 + +每個質押池和工具,或者它們所用的智慧型合約,均由不同的團隊建立,因此有著各自的好處和風險。 質押池能夠將使用者的以太幣換成一種相應的以太幣質押代幣。 此代幣非常有用,因為它允許用戶將任意數量的以太幣兌換成等值的有收益代幣(反之亦然),流動性質押衍生品由質押在去中心化交易所的以太幣產生收益,即使實際的以太幣是質押在共識層上。 這意味著可以在有收益的質押以太幣產品和“原始以太幣”之間快速、簡單地切換,且適用的以太幣數不僅限於 32 的倍數。 + +然而,這些質押以太幣代幣往往會產生類卡特爾的行為,大量質押的以太幣最終會受到少數中心化組織的控制,而不是分散到大量獨立個體中。 這為審查或價值提取創造了條件。 質押的黃金標準應始終是個人盡可能在自己的硬件上運行驗證者。 + +[更多關於質押代幣風險的資訊](https://notes.ethereum.org/@djrtwo/risks-of-lsd)。 + +以下使用屬性指標表示列出的質押礦池可能具有的顯著優勢或劣勢。 在你選擇要加入的礦池時,請將此章節的内容當作參考,瞭解這些屬性的具體定義。 + + + +## 探索質押礦池 {#explore-staking-pools} + +有多種方案可以幫你完成設定。 請運用上述指標來幫助你了解以下工具。 + + + + + +請注意,仔細選擇具有[用戶端多樣性](/developers/docs/nodes-and-clients/client-diversity/)的服務相當重要,因為它可以提高網路的安全性並降低你的風險。 如果某服務可以證明它會限制主流用戶端的使用,則稱它具有「執行層用戶端多樣性」「共識層用戶端多樣性」。 + +關於我們遺漏的質押工具,你有什麼推薦嗎? 請參閱我們的[產品刊登政策](/contributing/adding-staking-products/),如果合適,請提交以供審核。 + +## 常見問題 {#faq} + + +一般來說,ERC-20 質押代幣會發給質押者,相當於他們的質押以太幣加上酬勞的價值。 請記住,不同的礦池將通過略有不同的方法向其使用者分配質押酬勞,但主旨是共通的。 + + + +就是現在! 上海/卡佩拉升級發生於 2023 年 4 月,可實現質押提款。 支持質押池的驗證者帳戶現在可以退出並將以太幣提取到他們指定的提款地址。 這樣你可以將質押的份額兌換為基礎以太幣。 有關此功能的具體操作方式,請與你的提供商確認。 + +或者,使用 ERC-20 質押代幣的質押池允許使用者在公開市場上交易該代幣,讓你可以出售質押位置,這相當於允許你「提款」,但無需實際從質押合約中移除以太幣。 + +更多關於質押提款的資訊 + + + +這些聯合質押選項和中心化交易所之間有許多相似之處,例如能夠質押少量以太幣並將它們捆綁在一起以激活驗證者。 + +與中心化交易所不同的是,許多其他聯合質押方案採用的是智慧型合約和/或質押代幣,通常是 ERC-20 代幣。這些代幣可以保存在你自己的錢包中,並能像任何其他代幣一樣正常買賣。 透過讓你控制自己的代幣,這為你提供了一層主權和安全性,但這並不代表你能夠直接控制在后台代表你執行證明的驗證者用戶端。 + +當涉及到支持它們的節點時。一些聯合質押方案比其他方案更去中心化。 為了加強網路的健康和去中心化程度,我們始終鼓勵質押者選擇這樣的聯合質押服務:無需許可且實現節點營運商去中心化。 + + +## 延伸閱讀 {#further-reading} + +- [使用 Rocket Pool 進行質押 - 質押概覽](https://docs.rocketpool.net/guides/staking/overview.html) - _RocketPool 文件_ +- [使用 Lido 質押以太坊](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Lido 幫助文件_ diff --git a/public/content/translations/zh-tw/staking/saas/index.md b/public/content/translations/zh-tw/staking/saas/index.md new file mode 100644 index 00000000000..d8ee4519dce --- /dev/null +++ b/public/content/translations/zh-tw/staking/saas/index.md @@ -0,0 +1,95 @@ +--- +title: 質押即服務 +description: 關於如何開始聯合以太幣質押的概覽 +lang: zh-tw +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-saas.png +alt: 漂浮在雲端的犀牛萊斯利。 +sidebarDepth: 2 +summaryPoints: + - 第三方節點營運商負責處理你的驗證者用戶端的運作 + - 對於擁有 32 個以太幣且不喜歡處理運行節點的複雜技術的人來說,這是一個不錯的選擇 + - 降低信任依賴,並保持你對提款金鑰的控制權 +--- + +## 什麼是質押即服務? {#what-is-staking-as-a-service} + +質押即服務(「SaaS」)代表一種質押服務,你將自己的 32 個以太幣存入驗證者,但將節點運作委託給第三方營運商。 此流程通常需要你按指引完成初始化設定,包括產生金鑰和存入資金,然後將你的簽名金鑰上傳給營運商。 這將允許該服務代表你運作你的驗證者,通常是按月收費。 + +## 為什麼需要質押服務? {#why-stake-with-a-service} + +以太坊協定本身並不支援質押委託,因此為了滿足此項需求,這類服務應運而生。 如果你有 32 個以太幣要質押,但懶得處理硬體設備,質押即服務可以讓你在賺取原生區塊酬勞的同時將困難的部分外包。 + + + + + + + + + +## 需要考慮的事項 {#what-to-consider} + +有越來越多的質押即服務供應商提供以太幣質押服務,但有各自的好處及風險。 相較於居家質押,所有質押即服務方案都需要額外的信任假設。 質押即服務可能有整合以太坊用戶端的額外程式碼,這些程式碼並不開放或無法審核。 質押即服務對於網絡的去中心化也有不利影響。 根據設定,你可能無法控制你的驗證者 - 營運商可以使用你的以太幣做出不正當行為。 + +以下屬性指標可以用來衡量質押即服務供應商可能具備的顯著優勢或劣勢。 在選擇服務,展開質押之旅之際,請將本節作為參考,了解我們如何定義這些屬性。 + + + +## 探索質押服務供應商 {#saas-providers} + +以下是幾個市面上的質押即服務供應商。 請運用上述指標來了解這些服務。 + + + +### 質押即服務供應商 + + + +切記,支援[用戶端多元化](/developers/docs/nodes-and-clients/client-diversity/)極為重要,因為這可以提高網路的安全性,降低你的風險。 如果某服務可以證明它會限制主流用戶端的使用,則稱它具有「執行層用戶端多樣性」「共識層用戶端多樣性」。 + +### 金鑰產生器 + + + +關於我們遺漏的質押即服務供應商,你有任何推薦嗎? 請參閱我們的[產品刊登政策](/contributing/adding-staking-products/),如果合適,請提交以供審核。 + +## 常見問題 {#faq} + + +不同供應商的做法有所不同,但一般而言,他們都會引導你設定所需的簽名金鑰(每 32 個以太幣一個金鑰),並將這些金鑰上傳給你的供應商,以便他們代表你進行驗證。 單憑簽名金鑰無法提取、移轉或使用你的資金, 不過簽名金鑰可以用來投票形成共識,如果操作不當,可能會受到離線處罰或罰沒。 + + + +是的, 每個帳戶都包含 BLS 簽名金鑰和 BLS 提款金鑰。 為了讓驗證者證明鏈的狀態、參與同步委員會並提出區塊建議,簽名金鑰必須易於驗證者用戶端訪問。 這些金鑰必須以某種形式連線至網際網路,因此本質上可視為「熱」金鑰。 這是驗證者證明區塊鏈的必要條件,因此基於安全因素,簽名金鑰與用以移轉或提取資金的金鑰是分開的。 + +BLS 提款金鑰用於簽署一次性訊息,說明應將質押酬勞和退出資金轉到哪個執行層帳戶。 廣播此訊息後,便不再需要 BLS 提款金鑰。 取而代之的是,資金提款的權力將被永久地委託至你所提供的地址。 這允許你透過自己的冷存儲設定一個安全的提款地址,最小化驗證者資金的風險,即使有他人控制你的驗證者的簽名金鑰。 + +更新提款者憑證是啟用提款的必要步驟\*。 這個過程涉及到使用你的種子助記詞生成提款金鑰。 + +請務必妥善保存這份種子助記詞,否則到時候你將無法生成提款金鑰。 + +\*首次存款時提供了提款地址的質押者不需要設定助記詞。 有關如何準備驗證者,請向你的質押即服務供應商請求支援。 + + + +2023 年 4 月的上海/卡佩拉升級中實施了質押提款。 質押者需要提供提款地址(如果初次存款時未提供),酬勞付款將每隔幾天定期自動分配。 + +驗證者還可以作為驗證者完全退出,這將解鎖剩餘的以太幣餘額以供提款。 已提供執行提款地址並完成退出流程的帳戶,提供的提款地址將在下一次驗證者掃描期間收到全部餘額。 + +更多關於提取質押代幣的資訊 + + + +使用質押即服務供應商,你會將節點的運作委託給其他人。 這伴隨著節點效能不佳的風險,這是你無法控制的。 如果你的驗證者遭到罰沒,驗證者的餘額會受到罰款,驗證者也會強制從驗證者池下架。 + +罰沒/退出流程完成後,這些資金將被轉移到分配給驗證者的提款地址。 需要提供提款地址才能啟用該功能。 提款地址可能在一開始存款時便已提供。 如果沒有,則需要使用驗證者提款金鑰來簽署說明提款地址的訊息。 如果未提供提款地址,資金將保持鎖定狀態,直到提供地址。 + +請聯繫各質押即服務提供商,了解關於任何擔保或保險方案的詳細訊息,以及如何提供提款地址的說明。 如果你希望完全掌控你的驗證者設定,請詳細了解如何單獨質押以太幣。 + + +## 延伸閱讀 {#further-reading} + +- [評估質押服務](https://www.attestant.io/posts/evaluating-staking-services/) - _Jim McDonald 2020_ diff --git a/public/content/translations/zh-tw/staking/solo/index.md b/public/content/translations/zh-tw/staking/solo/index.md new file mode 100644 index 00000000000..1a4ecc28134 --- /dev/null +++ b/public/content/translations/zh-tw/staking/solo/index.md @@ -0,0 +1,203 @@ +--- +title: 單獨質押你的以太幣 +description: 如何開始單獨質押你的以太幣概覽 +lang: zh-tw +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-solo.png +alt: 萊斯利犀牛在她自己的電腦晶片上。 +sidebarDepth: 2 +summaryPoints: + - 直接從協定中獲得最大酬勞,以保持你的驗證者正常運作和上線 + - 執行家用硬體,親自貢獻於以太坊網路的安全和去中心化 + - 消除信任依賴,永遠不需放棄對資金金鑰的控制權 +--- + +## 什麼是單獨質押? {#what-is-solo-staking} + +單獨質押指執行一個連線至網際網路的[以太坊節點](/run-a-node/)並存入 32 個以太幣,以啟用一個[驗證者](#faq),使你能夠直接參與網路共識。 + +**單獨質押提高了以太坊網路的去中心化**,使以太坊更加無懼審查並能更可靠地抵禦攻擊。 其他質押方法可能無法以同樣的方式幫助網路。 單獨質押是保護以太坊的最佳質押方案。 + +以太坊節點由執行層 (EL) 用戶端和共識層 (CL) 用戶端組成。 這類用戶端是一套共同運作的軟體加上一組有效的簽名金鑰,可驗證交易和區塊、證明正確的區塊鏈頭、匯總證明並提交區塊。 + +單獨質押者負責操作執行這類用戶端所需的硬體。 強烈建議你使用專用機器在家操作,這對網路健康非常有益。 + +單獨質押者保持驗證者的正常上線運作,即可直接從協定獲得酬勞。 + +## 為什麼需要單獨質押? {#why-stake-solo} + +單獨質押需要承擔更多責任,但可以實現對資金和質押設置的最大控制。 + + + + + + + +## 單獨質押前的注意事項 {#considerations-before-staking-solo} + +儘管我們希望每個人都可以在沒有風險的情況下進行單獨質押,但這並不現實。 在選擇單獨質押以太幣之前,你必須留意一些實際而嚴肅的考量因素。 + + + +在操作自己的節點時,你應該花一些時間學習如何使用你選擇的軟體, 包括閱讀相關文件,以及了解這些開發團隊的溝通管道。 + +越是了解你在執行的軟體以及權益證明的運作原理,你作為質押者的風險就越小,也越容易解決節點運作過程中可能出現的問題。 + + + +設定節點仍然需要對電腦有一定程度的掌握,不過隨著時間經過,新工具會越來越容易使用。 了解命令列介面會有幫助,但不是必要的。 + +設定節點也需要設置非常基本的硬體,以及對最低建議規格有一些了解。 + + + +就像以私密金鑰保護以太坊地址一樣,你還需要專門為驗證者生成金鑰。 你必須了解如何確保你的種子助記詞或私密金鑰的安全。{' '} + +以太坊安全及詐騙預防 + + + +硬體偶爾會出現故障,網路連線會中斷,用戶端軟體偶爾也需要升級。 節點維護是不可避免的,你偶爾需要留意, 最好能隨時掌握預期的網路升級或其他重要的用戶端升級。 + + + +你的酬勞和你的驗證者在線上並提供正確證明的時間成正比。 停機會導致一定程度的罰金,這和有多少其他驗證者同時離線成正比,但不會導致罰沒。 頻寬也很重要,因為如果沒有及時收到證明,酬勞就會減少。 要求可能有所差異,但建議上傳和下載速率至少都要有 10 Mb/s。 + + + +與離線的怠工罰金不同,罰沒是針對惡意犯罪的更嚴重的懲罰。 如果同一個時間只在一台電腦上載入金鑰來執行非主流用戶端,遭到罰沒的風險微乎其微。 話雖如此,所有質押者都必須意識到罰沒的風險。 + +關於罰沒和驗證者生命週期的更多資訊 + + + + + +## 運作原理 {#how-it-works} + + + +在活躍期間,你將獲得以太幣獎勵,這些獎勵將定期存入你的提款地址。 + +如果需要,你可以退出驗證者,如此一來就不必一直在線上,但也不會再有任何酬勞。 然後,你的餘額將被提取到你在設置過程中指定的提款地址。 + +[更多關於提取質押代幣的資訊](/staking/withdrawals/) + +## 開始使用質押啟動面板 {#get-started-on-the-staking-launchpad} + +質押啟動面板是一個開放原始碼應用程式,可以幫助你成為質押者。 它會指引你選擇用戶端、產生金鑰,並將你的以太幣存入質押存款合約。 它會提供一份檢查清單,確認你已完成所有內容,可安全地設定驗證者。 + + + +## 使用節點和用戶端設定工具時需要考量的事項 {#node-tool-considerations} + +有越來越多的工具和服務可以幫助你單獨質押以太幣,其風險和收益各有不同。 + +以下屬性指標可以用來衡量所列質押工具可能具備的顯著優勢或劣勢。 在選擇工具,展開質押之旅之際,請將本節作為參考,了解我們如何定義這些屬性。 + + + +## 探索節點和用戶端設定工具 {#node-and-client-tools} + +有多種方案可以幫你完成設定。 請運用上述指標來幫助你了解以下工具。 + + + +### 節點工具 + + + +切記,選擇[非主流用戶端](/developers/docs/nodes-and-clients/client-diversity/)極為重要,因為這可以提高網路的安全性,降低你的風險。 可讓你設定非主流用戶端的工具稱為「多重用戶端」。 + +### 金鑰產生器 + +這些工具可以代替[質押存款命令列介面](https://github.com/ethereum/staking-deposit-cli/),幫助你生成金鑰。 + + + +關於我們遺漏的質押工具,你有什麼推薦嗎? 請參閱我們的[產品刊登政策](/contributing/adding-staking-products/),如果合適,請提交以供審核。 + +## 探索單獨質押指南 {#staking-guides} + + + +## 常見問題 {#faq} + +以下是關於質押的一些最常見問題,建議仔細閱讀。 + + + +驗證者是一個存在於以太坊並參與以太坊協議共識的虛擬實體。 驗證者由餘額、公鑰和其他屬性表示。 驗證者用戶端是通過持有和使用私密金鑰代表驗證者進行操作的軟體。 一個驗證者用戶端可以持有多組金鑰,控制許多驗證者。 + + + + +與驗證者相關聯的每組金鑰都需要 32 個以太幣才能啟用。 將更多以太幣存入一組金鑰不會增加潛在的酬勞,因為一個驗證者的有效餘額以 32 個以太幣為限。 這意味著質押是以 32 個以太幣為遞增單位,每個單位都有自己的一組金鑰和餘額。 + +請勿為一個驗證者存入超過 32 個以太幣。 這並不會增加你的酬勞。 如果為驗證者設置了提現地址,超過 32 個以太幣的多餘資金將在下一次驗證者掃描時自動提款到該地址。 + +如果單獨質押對你來說要求太高,可以考慮使用質押即服務供應商,或者如果你的資金少於 32 個以太幣,可以參考質押池。 + + + +如果你在網路正確進行最終確認時離線,則不會發生罰沒。 如果你的驗證者無法在特定時期內(每個時期 6.4 分鐘)完成證明,則會產生少量的怠工罰金,但這與罰沒完全不同。 這些罰金略低於你在驗證者可以完成證明的情況下獲得的酬勞,因此只要讓驗證者再次上線,經過差不多相同的時間就能賺回來。 + +請注意,怠工罰金與同時離線的驗證者數量成正比。 如果大部分網路同時離線,則每個驗證者承擔的罰金將大於單一驗證者怠工時的罰金。 + +在極端情況下,如果有超過三分之一的驗證者同時離線導致網路停止最終確認,那麼這些使用者會遭受所謂的二次怠工罰金,離線驗證者帳戶中的以太幣將受到指數級別的損失。 這時以太坊網路會消耗怠工驗證者的以太幣來進行自我修復,直到其餘額達到 16 個以太幣為止,此時它們將自動被踢出驗證者池。 最後還在線上的剩餘驗證者將再次超過網路的三分之二,滿足再次最終確認區塊鏈所需的絕對多數要求。 + + + +簡而言之,雖然我們永遠無法完全保證你不會被罰沒,但如果你真誠行事,執行非主流用戶端,而且一次只將簽名金鑰保存在一台電腦上,那麼遭到罰沒的風險微乎其微。 + +只有幾個特定的狀況會導致驗證者遭到罰沒並被踢出網路。 截止撰寫本文為止,發生過的罰沒事件完全是因為事主設置了冗餘硬體,同時間將簽名金鑰儲存在兩台不同的電腦上。 這可能導致你的金鑰在無意中出現雙重投票,這是一種可被罰沒的違規行為。 + +執行絕對主流用戶端(任何超過三分之二的網路所使用的用戶端)也有潛在的罰沒風險,例如該用戶端出現錯誤,導致一個區塊鏈分叉。 這可能會導致最終確認的是有問題的分叉。 要修正回預期的區塊鏈,需要提交環繞投票,嘗試撤銷最終確認的區塊。 這也是一種可被罰沒的行爲,但執行非主流用戶端即可避免。 + +非主流用戶端絕對不會最終確認相同的錯誤,因此也不會導致環繞投票,只可能產生怠工罰金,而不會遭到罰沒。 + + + + + +各用戶端的效能和使用者介面可能略有不同,因為每個用戶端都是由不同的團隊使用不同程式語言開發的。 這表示沒有「最好的」用戶端。 所有生產環境的用戶端都是優秀的軟體,會執行相同的核心功能來與區塊鏈同步和互動。 + +由於所有生產環境用戶端的基本功能都相同,因此實際上選擇非主流用戶端非常重要;「非主流」意指網路上大多數驗證者都「不是」使用該用戶端。 這聽起來可能有悖直覺,但執行主流或絕對主流用戶端會使你在該用戶端出現錯誤時面臨更高的罰沒風險。 執行非主流用戶端可以大幅降低這些風險。 + +詳細了解為什麼用戶端多元化如此重要 + + + +雖然虛擬私人伺服器 (VPS) 可以作為家用硬體的替代品,但驗證者用戶端的實體存取和位置有其重要性。 Amazon Web Services 或 Digital Ocean 等集中式雲端解決方案提供了不必擁有和運作硬體的便利,但代價是網路集中化。 + +在一個集中式雲端儲存解決方案上執行的驗證者用戶端越多,對這些使用者而言就越危險。 如果發生任何事件導致這些供應商離綫,無論是由於攻擊、監管要求,抑或僅因為電源/網際網路中斷,都將導致依賴此伺服器的所有驗證者用戶端同時離綫。 + +離線罰金與同時離線的其他驗證者數量成正比。 使用虛擬私人伺服器會大幅提高承受更嚴重的離線罰金的風險,甚至如果發生大量當機,還會增加二次懲罰或罰沒的風險。 為了將你自己的風險和網路風險降至最低,我們強烈鼓勵使用者取得並操作自己的硬體。 + + + + +在信標鏈中進行任何類型的提款都需要設置提款憑證。 + +新質押者在生成金鑰和存款時就設置了提款憑證。 尚未設置此憑證的現有質押者可以升級其金鑰以支持此功能。 + +設置提款憑證後,酬勞支付(扣除初始 32 個以太幣後的累積以太幣)將定期自動分配到提款地址。 + +要解鎖並拿回全部餘額,你還必須完成退出驗證者的過程。 + +更多關於提取質押代幣的資訊 + + +## 延伸閱讀 {#further-reading} + +- [以太坊用戶端的多元化問題](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ +- [幫助用戶端多元化](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ +- [以太坊共識層的用戶端多元化](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ +- [如何購買以太坊驗證者硬體](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ +- [按部就班:如何加入以太坊 2.0 測試網](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _Butta_ +- [以太坊 2.0 罰沒預防技巧](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raul Jordan 2020_ diff --git a/public/content/translations/zh-tw/staking/withdrawals/index.md b/public/content/translations/zh-tw/staking/withdrawals/index.md new file mode 100644 index 00000000000..d390d104742 --- /dev/null +++ b/public/content/translations/zh-tw/staking/withdrawals/index.md @@ -0,0 +1,218 @@ +--- +title: 質押提款 +description: 此頁總結了什麼是質押推送提款,該功能如何運作,以及質押者需要做什麼才能獲得酬勞 +lang: zh-tw +template: staking +image: /staking/leslie-withdrawal.png +alt: 犀牛萊斯利和她的質押酬勞 +sidebarDepth: 2 +summaryPoints: + - 上海/卡佩拉升級支持在以太坊提款 + - 驗證者營運商必須提供提款地址才能啟用 + - 每隔幾天自動分發酬勞 + - 完全退出質押的驗證者將收到剩餘餘額 +--- + + +2023 年 4 月 12 日上海/卡佩拉升級後便啟用了質押提款。 關於上海/卡佩拉升級的更多資訊 + + +**質押提款**是指將以太幣從以太坊共識層(信標鏈)上的驗證者帳戶轉移到可以進行交易的執行層。 + +只要用戶提供了提款地址,超過 32 個以太幣的**超額酬勞**將自動定期發送到每個驗證者關聯的提款地址。 使用者也可**完全退出質押**,解鎖他們的全部驗證者餘額。 + +## 質押酬勞 {#staking-rewards} + +對於最高有效餘額為 32 以太幣的活躍驗證者帳戶,系統會自動處理酬勞付款。 + +通過酬勞賺取的任何超過 32 以太幣的餘額實際上不會影響本金,也不會增加該驗證者在網路上的權重,因此每隔幾天就會自動提取酬勞。 除了提供一次提款地址之外,這些酬勞不需要驗證者營運商採取任何行動。 這些均在共識層上發起,因此所有步驟都不需要燃料(礦工費)。 + +### 我們是如何走到這一步的? {#how-did-we-get-here} + +在過去幾年,以太坊經歷了多次網路升級,過渡到由以太幣自身提供保護的網路,而不是像以前那樣進行能源密集型挖礦。 參與以太坊共識現在被稱為「質押」,因為參與者自願鎖定以太幣,將其「質押」,以獲得參與網路的能力。 遵守規則的用戶將獲得酬勞,而試圖欺詐的用戶將受到懲罰。 + +自 2020 年 11 月推出質押存款合約以來,一些勇敢的以太坊先驅者自願鎖定資金以激活「驗證者」,即有權按照網路規則正式證明和提交區塊的特殊帳戶。 + +在上海/卡佩拉升級前,你無法使用或存取已經質押的以太幣。 但現在,你可以選擇自動將酬勞存入所選帳戶,並且可以隨時提取質押的以太幣。 + +### 我該如何準備? {#how-do-i-prepare} + + + +### 重要通知 {#important-notices} + +對於任何驗證者帳戶來說,提供提款地址是必要的步驟,然後才有資格從其餘額中提取以太幣。 + + + 每個驗證者帳戶一次只能分配一個提款地址。一旦選好地址並提交到共識層,就無法撤消或再次更改。 提交前請再次檢查所提供地址的所有權和正確性。 + + +假設你的助記詞/種子助記詞在離線狀態下保持安全,沒有受到任何損害,那麼即使沒有提供提權地址,也不會對你的資金造成威脅。 如果未能添加提款憑證,以太幣只會被鎖定在驗證者帳戶中,直到提供提款地址為止。 + +## 完全退出質押 {#exiting-staking-entirely} + +在從驗證者帳戶餘額中轉出*任何*資金之前,需要提供提款地址。 + +希望完全退出質押並提取全部餘額的用戶,還必須使用驗證者金鑰簽署並廣播「自願退出」訊息,這將啟動退出質押流程。 此操作通過你的驗證者用戶端完成,並提交到你的共識節點,無需燃料。 + +驗證者退出質押的過程所需時間不同,具體取決於有多少驗證者同時退出。 完成此流程後,該帳戶將不再負責執行 ​​ 驗證者網路職責,不再有資格獲得酬勞,且他們的以太幣不再處於「質押狀態」。 此時該帳戶將被標記為完全「可提款」。 + +一旦帳戶被標記為「可提款」,並且已提供提款憑證,用戶無需執行任何操作,靜靜等待即可。 區塊提交者將自動連續掃描賬戶,尋找符合資格的退出資金,你的帳戶餘額將在下一次掃描期間全額轉移(也稱為「全額提款」)。 + +## 何時啟用質押提款? {#when} + +質押提款現已上線! 提款功能在 2023 年 4 月 12 日進行的上海/卡佩拉升級中啟用。 + +上海/卡佩拉升級使之前質押的以太幣回收到常規以太坊帳戶中。 這結束了質押流動性的循環,使以太坊在構建永續、可擴展、安全的去中心化生態系統的道路上又近了一步。 + +- [關於以太坊歷史的更多資訊](/history/) +- [關於以太坊開發藍圖的更多資訊](/roadmap/) + +## 提款付款流程如何運作? {#how-do-withdrawals-work} + +給定驗證者是否有資格提款,由驗證者帳戶本身的狀態決定。 在任何給定時間都不需要用戶輸入來確定帳戶是否應該發起提款—整個過程由共識層在連續循環上自動完成。 + +### 想透過視覺方式學習? {#visual-learner} + +查看 Finematics 對以太坊質押提款的解釋: + + + +### 驗證者「掃描」 {#validator-sweeping} + +當驗證者準備提交下一個區塊時,需要建立一個提款隊列,其中最多包含 16 項符合資格的提款。 最初從驗證者索引 0 開始,根據協議規則確定該帳戶是否有符合條件的提款,如果有,則將其添加到隊列中。 提交下一個區塊的驗證者們將從上一個區塊停止的地方開始,按順序依次進行。 + + +想象一下指針式時鐘。 時鐘上的指針指向小時,朝一個方向前進,不會跳過任何小時,並最終在到達最後一個數字後再次回到起點。

+現在,假設時鐘不是 1 到 12,而是 0 到 N (共識層上註冊的驗證者帳戶總數,截至 2023 年 1 月超過 500,000 個)。

+時鐘上的指針指向下一個驗證者,需要檢查其是否具備提款資格。 它從 0 開始,一路前進,不跳過任何帳戶。 到達最後一個驗證者後,從頭開始繼續循環。 +
+ +#### 檢查帳戶提款情況 {#checking-an-account-for-withdrawals} + +當提交者在驗證者中掃描可能的提款時,每個被檢查的驗證者都會通過一系列簡短的問題接受評估,以確定是否應該觸發提款,如果是,應該提取多少以太幣。 + +1. **是否已提供提款地址?**如果未提供提款地址,則跳過該帳戶,不發起提款。 +2. **驗證者是否已退出並可提款?**如果驗證者已完全退出,且已達到其帳戶被視為「可提款」的時期,則會處理全額提款。 這會將全部餘額轉移至提款地址。 +3. **有效餘額是否已滿 32?**如果帳戶有提款憑證,未完全退出,且有 32 以上的酬勞待提取,將進行部分提款,僅轉出超過 32 的酬勞至用戶提款地址。 + +在驗證者的生命週期中,驗證者營運商只執行兩項直接影響此流程的操作: + +- 提供提款憑證以實現任何形式的提款 +- 退出網絡,觸發全額提款 + +### 燃料費 {#gas-free} + +這種質押提款方法避免了質押者手動提交請求提取特定數量以太幣的交易。 這意味著**不需要燃料(礦工費)**,並且提款也無需爭取現有的執行層區塊空間。 + +### 我多久可以獲得一次質押酬勞? {#how-soon} + +一個區塊最多可以處理 16 筆提款。 按照這個速度,每天可以處理 115,200 次驗證者提款(假設沒有遺漏時隙)。 如上所述,不符合提款條件的驗證者將被跳過,從而縮短完成掃描的時間。 + +擴展此計算,我們可以估計處理給定數量的提款所需的時間: + + + +| 提款數量 | 完成時間 | +| :------: | :------: | +| 400,000 | 3.5 日 | +| 500,000 | 4.3 日 | +| 600,000 | 5.2 日 | +| 700,000 | 6.1 日 | +| 800,000 | 7.0 日 | + + + +如你所見,隨著網路上驗證者的增加,速度會變慢。 遺漏時隙增加可能會相應地降低速度,但這通常代表可能結果中較慢的一面。 + +## 常見問題 {#faq} + + +不可以,提供提款憑證的過程是一次性的,一旦提交就無法更改。 + + + +通過設定執行層提款地址,該驗證者的提款憑證已永久更改。 這意味著舊憑證將失效,新憑證將直接指向執行層帳戶。 + +提款地址可以是智慧型合約(由其程式碼控制),也可以是外部所有帳戶(EOA,由私密金鑰控制)。 目前,這些帳戶無法將訊息傳回共識層,以表明驗證者憑證的更改,增加此功能會給協議增加不必要的複雜性。 + +如果無法更改特定驗證者的提款地址,用戶可以選擇將智慧型合約設置為可以處理金鑰輪換的提款地址,例如保險箱。 將資金設置為自己的外部所有帳戶的用戶可以執行完全退出以提取所有質押資金,然後使用新憑證重新質押。 + + + + +如果你參與質押池或持有質押代幣,則應向你的提供商諮詢,了解有關如何處理質押提款的詳細資訊,因為每種服務的運作方式不同。 + +一般來說,用戶應該可以自由地收回其質押的以太幣,或者更改他們使用的質押提供商。 如果特定質押池變得過大,則可以退出、贖回資金,並透過較小的提供商重新質押。 或者,如果積累了足夠的以太幣,你可以在家進行質押。 + + + + +是的,只要你的驗證者提供了提款地址。 必須提供一次才能啟用任何提款,然後酬勞支付將在每次驗證器掃描時,每隔幾天自動觸發一次。 + + + + +不會,如果你的驗證者在網路上仍然處於活躍狀態,則不會自動發生全額提款。 需要手動啟動自願退出。 + +一旦驗證者完成退出過程,並且假設該帳戶具有提款憑證,餘額將在下一次驗證者掃描期間提出。 + + + + +提款設計為自動推送,轉移任何未主動質押的以太幣。 包括已完成退出流程帳戶的全部餘額。 + +無法手動請求提取特定數量的以太幣。 + + + + +建議驗證者營運商訪問質押啟動面板提款頁面,其中可以找到關於如何準備驗證者提款的詳細資訊。 包括準備情況、活動時間安排以及有關提款如何運作的詳細資訊。 + +若想先在測試網上嘗試你的設置,請從訪問 Goerli 測試網質押啟動面板開始。 + + + + +否。 驗證者退出並成功提取其全部餘額後,任何後續存入該驗證者的資金都會在下一次驗證者掃描期間自動轉移到提款地址。 要重新質押以太幣,必須啟用新的驗證者。 + + +## 了解更多 {#further-reading} + +- [質押啟動面板提款](https://launchpad.ethereum.org/withdrawals) +- [EIP-4895:將提款作為操作推送至信標鏈。](https://eips.ethereum.org/EIPS/eip-4895) +- [以太坊牧貓人組織 - 上海](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) +- [PEEPanEIP #94:與 Potuz 和 Hsiao-Wei Wang 討論質押以太幣提款(測試中)](https://www.youtube.com/watch?v=G8UstwmGtyE) +- [PEEPanEIP#68:EIP-4895:與 Alex Stokes 討論信標鏈將提款作為操作推送](https://www.youtube.com/watch?v=CcL9RJBljUs) +- [了解驗證者有效餘額](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/zh-tw/web3/index.md b/public/content/translations/zh-tw/web3/index.md similarity index 100% rename from src/content/translations/zh-tw/web3/index.md rename to public/content/translations/zh-tw/web3/index.md diff --git a/src/content/translations/zh-tw/web3/web2.png b/public/content/translations/zh-tw/web3/web2.png similarity index 100% rename from src/content/translations/zh-tw/web3/web2.png rename to public/content/translations/zh-tw/web3/web2.png diff --git a/src/content/translations/zh-tw/web3/web3.png b/public/content/translations/zh-tw/web3/web3.png similarity index 100% rename from src/content/translations/zh-tw/web3/web3.png rename to public/content/translations/zh-tw/web3/web3.png diff --git a/src/content/translations/zh-tw/zero-knowledge-proofs/index.md b/public/content/translations/zh-tw/zero-knowledge-proofs/index.md similarity index 100% rename from src/content/translations/zh-tw/zero-knowledge-proofs/index.md rename to public/content/translations/zh-tw/zero-knowledge-proofs/index.md diff --git a/src/content/translations/zh/about/index.md b/public/content/translations/zh/about/index.md similarity index 100% rename from src/content/translations/zh/about/index.md rename to public/content/translations/zh/about/index.md diff --git a/src/content/translations/zh/bridges/index.md b/public/content/translations/zh/bridges/index.md similarity index 100% rename from src/content/translations/zh/bridges/index.md rename to public/content/translations/zh/bridges/index.md diff --git a/src/content/translations/zh/community/events/index.md b/public/content/translations/zh/community/events/index.md similarity index 100% rename from src/content/translations/zh/community/events/index.md rename to public/content/translations/zh/community/events/index.md diff --git a/src/content/translations/zh/community/get-involved/index.md b/public/content/translations/zh/community/get-involved/index.md similarity index 100% rename from src/content/translations/zh/community/get-involved/index.md rename to public/content/translations/zh/community/get-involved/index.md diff --git a/src/content/translations/zh/community/grants/index.md b/public/content/translations/zh/community/grants/index.md similarity index 100% rename from src/content/translations/zh/community/grants/index.md rename to public/content/translations/zh/community/grants/index.md diff --git a/src/content/translations/zh/community/language-resources/index.md b/public/content/translations/zh/community/language-resources/index.md similarity index 100% rename from src/content/translations/zh/community/language-resources/index.md rename to public/content/translations/zh/community/language-resources/index.md diff --git a/src/content/translations/zh/community/online/index.md b/public/content/translations/zh/community/online/index.md similarity index 100% rename from src/content/translations/zh/community/online/index.md rename to public/content/translations/zh/community/online/index.md diff --git a/public/content/translations/zh/community/support/index.md b/public/content/translations/zh/community/support/index.md new file mode 100644 index 00000000000..df7767f69f5 --- /dev/null +++ b/public/content/translations/zh/community/support/index.md @@ -0,0 +1,115 @@ +--- +title: 以太坊支持 +description: 在以太坊生态系统中获得支持。 +lang: zh +--- + +# 以太坊支持 {#support} + +## 以太坊官方支持 {#official-support} + +您正在寻求以太坊官方支持吗? 您应该知道的第一件事是以太坊是去中心化的。 这意味着以太坊不属于任何中心化组织、实体或个人,因此没有官方支持渠道。 + +了解以太坊的去中心化性质至关重要,因为任何自称是以太坊官方支持人员的人都可能在试图诈骗您! 预防诈骗的最好办法就是自学并认真对待安全问题。 + + + 以太坊安全和预防欺诈措施 + + + + 学习以太坊基础知识 + + +尽管缺乏官方支持,但以太坊生态系统中的许多团体、社区和项目都乐于提供帮助,并且您可以在此页面上找到很多有用的信息和资源。 还有问题吗? 加入 [ethereum.org Discord](/discord/),我们会尽力提供帮助。 + +## 钱包支持 {#wallet-support} + +您的钱包有问题吗? 大多数钱包都有专门的支持团队可以提供帮助: + +- [MetaMask](https://metamask.zendesk.com/hc/) +- [Argent](https://support.argent.xyz/hc/) +- [MyEtherWallet](https://help.myetherwallet.com/) + +_这并不是完整的列表。 需要帮助寻找特定钱包的支持? 加入 [ethereum.org Discord](https://discord.gg/ethereum-org),我们会尝试帮助您。_ + +正在寻找以太坊钱包? [深入了解我们完整的以太坊钱包列表](/wallets/find-wallet/)。 + +## 构建去中心化应用程序 {#building-support} + +构建这类应用可能很困难。 以下提供了一些专注于开发的平台,其中有经验丰富的以太坊开发人员,他们会乐意提供帮助。 + +- [Alchemy University](https://university.alchemy.com/#starter_code) +- [CryptoDevs discord](https://discord.gg/Z9TA39m8Yu) +- [以太坊堆栈交易所](https://ethereum.stackexchange.com/) +- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) +- [Web3 University](https://www.web3.university/) + +您还可以在我们的[以太坊开发者资源](/developers/)部分找到文档和开发指南。 + +### 工具 {#dapp-tooling} + +您的问题是否与某个特定的工具、项目或程序库有关? 大多数项目都有专用于用户支持的聊天服务器或论坛。 + +以下是一些比较常见的例子: + +- [Solidity](https://gitter.im/ethereum/solidity/) +- [ethers.js](https://discord.gg/6jyGVDK6Jx) +- [web3.js](https://discord.gg/GsABYQu4sC) +- [安全帽](https://discord.gg/xtrMGhmbfZ) +- [Truffle](https://discord.gg/8uKcsccEYE) +- [Alchemy](http://alchemy.com/discord) +- [Tenderly](https://discord.gg/fBvDJYR) + +## 运行节点 {#node-support} + +如果您正在运行节点或验证者节点,下面是一些专门帮助您入门的社区。 + +- [EthStaker discord](https://discord.gg/ethstaker) +- [EthStaker reddit](https://www.reddit.com/r/ethstaker) + +大多数构建以太坊客户端的团队也有专门的、面向公众的平台,您可以在这些平台获取支持和提问。 + +### 执行客户端 {#execution-clients} + +- [Geth](https://discord.gg/FqDzupGyYf) +- [Nethermind](https://discord.gg/YJx3pm8z5C) +- [Besu](https://discord.gg/p8djYngzKN) +- [Erigon](https://github.com/ledgerwatch/erigon/issues) + +### 共识客户端 {#consensus-clients} + +- [Prysm](https://discord.gg/prysmaticlabs) +- [Nimbus](https://discord.gg/nSmEH3qgFv) +- [Lighthouse](https://discord.gg/cyAszAh) +- [Teku](https://discord.gg/7hPv2T6) +- [Lodestar](https://discord.gg/aMxzVcr) + +您还可以[在此处了解如何运行节点](/developers/docs/nodes-and-clients/run-a-node/)。 + +## 常见问题 {#faq} + +### 我把以太币发到了错误的钱包中 {#wrong-wallet} + +以太坊上发送的交易是不可逆的。 如果您将以太币发送到错误的钱包,很遗憾,没有办法追回这些资金。 以太坊不属于任何中心化组织、实体或个人,这意味着没有人可以逆转交易。 因此,在发送交易之前,一定要仔细检查您的交易,这一点至关重要。 + +### 如何获取以太坊的赠品? {#giveaway-scam} + +以太坊赠品是用来窃取您以太币的骗局。 不要被看起来好得令人难以置信的优惠所诱惑 — 如果您将以太币发送到赠品地址,您不但收不到赠品,还将无法追回您的资金。 + +[关于预防诈骗的更多信息](/security/#common-scams) + +### 我的交易被卡住了 {#stuck-transaction} + +如果你提交的交易费低于网络需求,以太坊上的交易有时会被卡住。 许多钱包提供了一个选项,即以更高的交易费重新提交同一项交易,使该交易得以处理。 或者,您可以发送交易到您自己的地址,并使用与待定交易相同的随机数,以取消待定交易。 + +[如何在 MetaMask 上加速或取消待定交易](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) + +[如何取消待定以太坊交易](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) + +### 我如何开采以太坊? {#mining-ethereum} + +以太坊不再支持挖矿。 在以太坊从工作量证明过渡到权益证明后,挖矿就终止了。 现在,以太坊使用验证者而不是矿工。 验证者质押以太币并通过保护以太坊安全获得质押奖励。 + +### 我如何成为质押人/验证者? {#become-validator} + +要成为验证者,你必须在以太坊存款合约中质押 32 个以太币并搭建一个验证节点。 更多信息见[质押界面](/staking)和[质押启动版](https://launchpad.ethereum.org/)。 diff --git a/src/content/translations/zh/contributing/adding-developer-tools/index.md b/public/content/translations/zh/contributing/adding-developer-tools/index.md similarity index 100% rename from src/content/translations/zh/contributing/adding-developer-tools/index.md rename to public/content/translations/zh/contributing/adding-developer-tools/index.md diff --git a/src/content/translations/zh/contributing/adding-exchanges/index.md b/public/content/translations/zh/contributing/adding-exchanges/index.md similarity index 100% rename from src/content/translations/zh/contributing/adding-exchanges/index.md rename to public/content/translations/zh/contributing/adding-exchanges/index.md diff --git a/src/content/translations/zh/contributing/adding-glossary-terms/index.md b/public/content/translations/zh/contributing/adding-glossary-terms/index.md similarity index 100% rename from src/content/translations/zh/contributing/adding-glossary-terms/index.md rename to public/content/translations/zh/contributing/adding-glossary-terms/index.md diff --git a/src/content/translations/zh/contributing/adding-layer-2s/index.md b/public/content/translations/zh/contributing/adding-layer-2s/index.md similarity index 100% rename from src/content/translations/zh/contributing/adding-layer-2s/index.md rename to public/content/translations/zh/contributing/adding-layer-2s/index.md diff --git a/src/content/translations/zh/contributing/adding-products/index.md b/public/content/translations/zh/contributing/adding-products/index.md similarity index 100% rename from src/content/translations/zh/contributing/adding-products/index.md rename to public/content/translations/zh/contributing/adding-products/index.md diff --git a/src/content/translations/zh/contributing/adding-staking-products/index.md b/public/content/translations/zh/contributing/adding-staking-products/index.md similarity index 100% rename from src/content/translations/zh/contributing/adding-staking-products/index.md rename to public/content/translations/zh/contributing/adding-staking-products/index.md diff --git a/src/content/translations/zh/contributing/content-resources/index.md b/public/content/translations/zh/contributing/content-resources/index.md similarity index 100% rename from src/content/translations/zh/contributing/content-resources/index.md rename to public/content/translations/zh/contributing/content-resources/index.md diff --git a/src/content/translations/zh/contributing/design-principles/index.md b/public/content/translations/zh/contributing/design-principles/index.md similarity index 100% rename from src/content/translations/zh/contributing/design-principles/index.md rename to public/content/translations/zh/contributing/design-principles/index.md diff --git a/src/content/translations/zh/contributing/index.md b/public/content/translations/zh/contributing/index.md similarity index 100% rename from src/content/translations/zh/contributing/index.md rename to public/content/translations/zh/contributing/index.md diff --git a/src/content/translations/zh/contributing/page-contributing-translation-program-acknowledgements.json b/public/content/translations/zh/contributing/page-contributing-translation-program-acknowledgements.json similarity index 100% rename from src/content/translations/zh/contributing/page-contributing-translation-program-acknowledgements.json rename to public/content/translations/zh/contributing/page-contributing-translation-program-acknowledgements.json diff --git a/src/content/translations/zh/contributing/page-contributing-translation-program-contributors.json b/public/content/translations/zh/contributing/page-contributing-translation-program-contributors.json similarity index 100% rename from src/content/translations/zh/contributing/page-contributing-translation-program-contributors.json rename to public/content/translations/zh/contributing/page-contributing-translation-program-contributors.json diff --git a/src/content/translations/zh/contributing/translation-program/faq/index.md b/public/content/translations/zh/contributing/translation-program/faq/index.md similarity index 100% rename from src/content/translations/zh/contributing/translation-program/faq/index.md rename to public/content/translations/zh/contributing/translation-program/faq/index.md diff --git a/src/content/translations/zh/contributing/translation-program/index.md b/public/content/translations/zh/contributing/translation-program/index.md similarity index 100% rename from src/content/translations/zh/contributing/translation-program/index.md rename to public/content/translations/zh/contributing/translation-program/index.md diff --git a/public/content/translations/zh/contributing/translation-program/translators-guide/index.md b/public/content/translations/zh/contributing/translation-program/translators-guide/index.md new file mode 100644 index 00000000000..9413ac5ae6c --- /dev/null +++ b/public/content/translations/zh/contributing/translation-program/translators-guide/index.md @@ -0,0 +1,293 @@ +--- +title: 翻译人员指南 +lang: zh +description: 适用于 Ethereum.org 翻译人员的说明和技巧 +--- + +# Ethereum.org 翻译风格指南 {#style-guide} + +Ehereum.org 翻译风格指南包含一些最重要的指南、说明和翻译技巧,帮助我们对网站进行本地化。 + +本文档是一份一般性指南,并不特定于任何一种语言。 + +如果您有任何问题、建议或反馈,请随时通过 translations@ethereum.org 与我们联系,在 Crowdin 上向 @ethdotorg 发送消息,或 [ 加入我们的 Discord](https://discord.gg/ethereum-org),您可以在其中通过#translations 频道向我们发送消息或联系任何团队成员。 + +## 使用 Crowdin {#using-crowdin} + +您可以在[翻译计划页面](/contributing/translation-program/#how-to-translate)上找到有关如何在 Crowdin 中加入项目以及如何使用 Crowdin 在线编辑器的基本说明。 + +如果您想了解更多关于 Crowdin 并使用它的一些高级功能,[Crowdin 知识库](https://support.crowdin.com/online-editor/)包含很多所有 Crowdin 功能的深入指南和概述。 + +## 抓取信息的实质内容 {#capturing-the-essence} + +当翻译 ethereum.org 内容时,避免直译。 + +重要的是翻译要抓住信息的本质。 这可能意味着改写某些短语,或者使用描述性翻译而不是逐字翻译内容。 + +不同的语言有不同的语法规则、约定和词序。 翻译时,请注意目标语言中句子的结构,避免按字面翻译英文源,因为这会导致句子结构和可读性差。 + +建议您阅读整个句子并对其进行调整以适应目标语言的惯例,而不是逐字翻译源文本。 + +## 正式与非正式 {#formal-vs-informal} + +我们使用正式的地址形式,这对所有访客来说始终是礼貌和适当的。 + +使用正式地址可以让我们避免听起来不官方或冒犯,并且无论访客的年龄和性别如何都可以工作。 + +大多数印欧语和亚非语语言使用特定性别的第二人称人称代词,以区分男性和女性。 在称呼用户或使用所有格代词时,我们可以避免假设访问者的性别,因为正式的地址形式通常适用且一致,无论他们如何识别。 + +## 简单明了的词汇和意思 {#simple-vocabulary} + +我们的目标是让尽可能多的人能够理解网站上的内容。 + +在大多数情况下,这可以通过使用易于理解的简短单词轻松实现。 如果您的语言中具有相同含义的某个单词有多种可能的翻译,那么最好的选择通常是清楚地反映含义的最短单词。 + +## 书写系统 {#writing-system} + +Ethereum.org 提供多种语言版本,使用替代拉丁文的书写系统(或书写脚本)。 + +所有内容都应使用适合您的语言的正确书写系统进行翻译,并且不应包含使用拉丁字符书写的任何单词。 + +翻译内容时,应确保翻译内容一致且不包含任何拉丁字符。 + +一个常见的误解是,Ethereum 一直是用拉丁文书写。 这大部分是不正确的,请使用您的母语拼写 Ethereum(例如:中文的以太坊,阿拉伯语的 إيثيريوم 等)。 + +**以上规则不适用于通常不应翻译专有名词的语言。** + +## 翻译页面元数据 {#translating-metadata} + +某些页面包含页面上的元数据,例如“title”、“lang”、“description”、“sidebar”等。 + +在将新页面上传到 Crowdin 时,我们隐藏了翻译人员不应翻译的内容,这意味着 Crowdin 中翻译人员可见的所有元数据都应该被翻译。 + +翻译源文本为“en”的任何字符串时,请特别注意。 这表示页面可用的语言,应翻译为[您的语言的 ISO 语言代码](https://www.andiamo.co.uk/resources/iso-language-codes/)。 这些字符串应始终使用拉丁字符而不是目标语言原生的书写脚本进行翻译。 + +如果您不确定要使用哪种语言代码,您可以查看 Crowdin 中的翻译记忆库,或在 Crowdin 在线编辑器的页面 URL 中找到您的语言的语言代码。 + +使用最广泛的语言的语言代码示例: + +- 阿拉伯语 - ar +- 简体中文 - zh +- 法语 - fr +- 印地语 - hi +- 西班牙语 - es + +## 外文标题 {#external-articles} + +一些字符串包含外部文章的标题。 我们的大多数开发人员文档页面都包含指向外部文章的链接,以供进一步阅读。 无论文章的语言如何,都需要翻译包含文章标题的字符串,以确保以他们的语言查看页面的访问者获得更一致的用户体验。 + +您可以在下面找到一些示例,说明这些字符串对于翻译人员的外观以及如何识别它们(文章链接主要位于这些页面的底部,位于“进一步阅读”部分): + +![Sidebar.png 中的文章标题](./article-titles-in-sidebar.png) ![Editor.png 中的文章标题](./article-titles-in-editor.png) + +## Crowdin 警告 {#crowdin-warnings} + +Crowdin 有一个内置功能,可以在翻译人员即将出错时发出警告。 在保存翻译之前,如果您忘记在译文中加上原文中的标签、翻译了不应翻译的元素、添加了多个连续的空格、忘记结尾标点等,Crowdin 会自动提醒您。 如果您看到这样的警告,请返回并仔细检查建议的翻译。 + +**永远不要忽略这些警告,因为它们通常意味着有问题,或者翻译缺少源文本的关键部分。** + +当您忘记在翻译中添加标签时出现 Crowdin 警告的示例: ![Crowdin 警告示例](./crowdin-warning-example.png) + +## 处理标签和代码片段 {#dealing-with-tags} + +许多源内容包含标签和变量,它们在 Crowdin 编辑器中以黄色突出显示。 它们具有不同的功能,应该正确处理。 + +**Crowdin 设置** + +为了更轻松地管理标签并直接从源中复制它们,我们建议你在 Crowdin 编辑器中更改你的设置。 + +1. 打开“设置” ![如何打开编辑器中的设置](./editor-settings.png) + +2. 向下滚动到“HTML 标签显示”部分 + +3. 选择“隐藏” ![请选择“隐藏”](./hide-tags.png) + +4. 点击“保存” + +通过选择此选项,完整的标签文本将不再显示,而是由一个数字代替。 翻译时,点击此标签会自动将确切的标签复制到翻译字段。 + +**链接** + +你可能会注意到 ethereum.org 或其他网站上的页面的完整链接。 + +这些链接应该与源相同,并且不要更改或翻译。 如果你翻译了链接或以任何方式更改了链接,即使只是删除其中的一部分,如斜杠 (/),也将导致链接损坏且不可用。 + +处理链接的最佳方法是直接从源中复制它们,方法是点击它们或使用“复制源”按钮 (Alt+C)。 + +![link.png 示例](./example-of-link.png) + +链接也以标签的形式出现在源文本中(即 <0> )。 如果你将鼠标悬停在标签上,编辑器将显示其全部内容 - 有时这些标签将代表链接。 + +从源复制链接而不要更改其顺序,这一点非常重要。 + +如果标签的顺序发生变化,它们所代表的链接将被破坏。 + +![tags.png 中的链接示例](./example-of-links-inside-tags.png) + +**标签和变量** + +源文本包含许多不同类型的标签,这些标签应始终从源中复制并且永远不要更改。 与上述类似,这些标签在翻译中的顺序也应与源相同。 + +标签总是包含一个开始和结束标签。 在大多数情况下,应该翻译开始和结束标签之间的文本。 + +示例:``Decentralized`` + +`` - _使文本变粗的开始标签_ + +Decentralized - _可翻译文本_ + +`` - _结束标签_ + +!['strong' tags.png 的示例](./example-of-strong-tags.png) + +代码片段的处理方式与其他标签略有不同,因为它们包含不应翻译的代码。 + +示例:``nonce`` + +`` - _开始标签,其中包含一段代码_ + +nonce - _不可翻译的文本_ + +`` - _结束标签_ + +![代码片段 .png 的示例](./example-of-code-snippets.png) + +源文本还包含缩短的标签,这些标签只包含数字,这意味着它们的功能不是很明显。 你可以将鼠标悬停在这些标签上,以准确查看它们提供的功能。 + +在下面的示例中,你可以看到,将鼠标悬停在 <0> 标签显示,它代表 `` 并包含代码片段,因此不应翻译这些标签内的内容。 + +![模棱两可的 tags.png 的示例](./example-of-ambiguous-tags.png) + +## 简短与完整形式/缩写 {#short-vs-full-forms} + +网站上使用了很多缩写,例如 dApp、NFT、DAO、DeFi 等。 这些缩写通常用于英语,并且大多数网站访问者都熟悉它们。 + +由于它们通常没有其他语言的既定翻译,处理这些和类似术语的最佳方法是提供完整形式的描述性翻译,并在括号中添加英文缩写。 + +不要翻译这些缩写,因为大多数人不熟悉它们,而且本地化版本对大多数访问者来说没有多大意义。 + +如何翻译 dApp 的示例: + +- Decentralized applications (dapps) → _完整的翻译形式 (括号中为英文缩写)_ + +## 没有既定翻译的术语 {#terms-without-established-translations} + +某些术语在其他语言中可能没有既定翻译,并且以原始英语术语而广为人知。 这些术语主要包括较新的概念,如工作量证明、权益证明、信标链、质押等。 + +虽然翻译这些术语听起来不自然,但由于英文版本也常用于其他语言,因此强烈建议将它们翻译。 + +翻译它们时,请随意发挥创意,使用描述性翻译,或直接按字面翻译。 + +**大多数术语应该翻译而不是将其中一些保留英文的原因是,随着越来越多的人开始使用以太坊和相关技术,这种新术语将在未来变得更加普遍。 如果我们想让来自世界各地的更多人加入这个领域,我们需要以尽可能多的语言提供易于理解的术语,即使我们需要自行创建它。** + +## 按钮与行动号召 {#buttons-and-ctas} + +网站包含许多按钮,其翻译方式应与其他内容不同。 + +可以通过查看上下文屏幕截图、与大多数字符串连接或通过检查编辑器中的上下文(包括短语“button”)来识别按钮文本。 + +按钮的翻译应尽可能简短,以防止格式不匹配。 此外,按钮翻译应该是必要的,即呈现命令或请求。 + +![如何查找按钮 .png](./how-to-find-a-button.png) + +## 翻译包容性 {#translating-for-inclusivity} + +Ethereum.org 的访问者来自世界各地和不同的背景。 因此,网站上的语言应该是中立的,欢迎所有人而不是排他性的。 + +其中一个重要方面是性别中立。 这可以通过使用正式的地址形式并避免在翻译中使用任何特定性别的词来轻松实现。 + +另一种形式的包容性是,尝试面向全球观众翻译,而不是面向任何国家、种族或地区。 + +最后,语言应该适合所有大众和年龄段的读者。 + +## 特定语言的翻译 {#language-specific-translations} + +翻译时,重要的是要遵循你的语言中使用的语法规则、约定和格式,而不是从源复制。 源文本遵循英语语法规则和约定,而这不适用于许多其他语言。 + +你应该了解你的语言规则并进行相应的翻译。 如果你需要帮助,请与我们联系,我们将帮助你找到一些有关如何在你的语言中使用这些元素的资源。 + +一些需要特别注意的例子: + +### 标点、格式 {#punctuation-and-formatting} + +**大写** + +- 不同语言的大小写存在巨大差异。 +- 在英语中,通常将标题和名称、月份和日期、语言名称、假期等中的所有单词大写。 在许多其他语言中,这在语法上是不正确的,因为它们具有不同的大小写规则。 +- 一些语言也有关于人称代词、名词和某些形容词大写的规则,这些在英语中是不大写的。 + +**间距** + +- 正字法规则定义了每种语言的空格使用。 因为到处都使用空格,所以这些规则是最独特的,而空格是最容易误译的元素。 +- 英语和其他语言之间的一些常见间距差异: + - 计量单位和货币前的空格(例如 USD、EUR、kB、MB) + - 度数符号前的空格(例如 °C、℉) + - 一些标点符号前的空格,尤其是省略号 (...) + - 斜杠前后的空格 (/) + +**列表** + +- 每种语言都有一套多样化和复杂的规则来编写列表。 这些可能与英语有很大不同。 +- 在某些语言中,每个新行的第一个单词需要大写,而在其他语言中,新行应该以小写字母开头。 许多语言对列表中的大小写也有不同的规则,具体取决于每行的长度。 +- 这同样适用于行项目的标点符号。 列表中的结束标点可以是句点 (**.**)、逗号 (**,**) 或分号 (**;**)具体取决于语言 + +**引号** + +- 语言使用许多不同的引号。 简单地从源中复制英文引号通常是不正确的。 +- 一些最常见的引号类型包括: + - “示例文本” + - ‘示例文本’ + - »示例文本« + - “示例文本” + - ‘示例文本’ + - «示例文本» + +**连字符和破折号** + +- 在英语中,连字符 (-) 用于连接单词或单词的不同部分,而破折号 (-) 用于表示范围或停顿。 +- 许多语言对使用连字符和破折号有不同的规则,应遵守这些规则。 + +### 格式 {#formats} + +**数字** + +- 用不同语言书写数字的主要区别在于用于小数和千位的分隔符。 对于千数来说,这可以是句号、逗号或空格。 同样,一些语言使用小数点,而另一些语言使用小数点逗号。 + - 一些大数的例子: + - 英语 - **1,000.50** + - 西班牙语 - **1.000,50** + - 法语 - **1 000,50** +- 翻译数字时的另一个重要考虑因素是百分号。 它可以用不同的方式编写:**100%**、**100 %** 或 **%100**。 +- 最后,负数可以不同地显示,具体取决于语言:-100、100-、(100) 或 [100]。 + +**日期** + +- 在翻译日期时,有许多基于语言的考虑因素和差异。 这些包括日期格式、分隔符、大写和前导零。 全长日期和数字日期之间也存在差异。 + - 不同日期格式的一些示例: + - 英语(英国)(dd/mm/yyyy) – 1st January, 2022 + - 英语(美国)(mm/dd/yyyy) – January 1st, 2022 + - 中文 (yyyy-mm-dd) – 2022 年 1 月 1 日 + - 法语 (dd/mm/yyyy) – 1er janvier 2022 + - 意大利语 (dd/mm/yyyy) – 1º gennaio 2022 + - 德语 (yyyy/mm/dd) – 1. Januar 2022 + +**货币** + +- 由于格式、惯例和转换不同,货币转换可能具有挑战性。 作为一般规则,请保持货币与来源相同。 为了读者的利益,您可以在括号中添加您的当地货币和转换。 +- 用不同语言书写货币的主要区别包括符号位置、小数逗号与小数点、间距以及缩写与符号。 + - 符号放置:美元 100 或 100 美元 + - 小数逗号和。小数点:100,50$ 或 100.50$ + - 间距:100 美元或 100 美元 + - 缩写和符号:100$ 或 100 USD + +**计量单位** + +- 作为一般规则,请根据来源保留计量单位。 如果您所在的国家/地区使用不同的系统,您可以将转换包括在括号中。 +- 除了度量单位的本地化之外,注意语言处理这些单位的方式的差异也很重要。 主要区别在于数字和单位之间的间距,可以根据语言而有所不同。 这方面的示例包括 100kB 与 100 kB 或 50ºF 与 50ºF。 + +## 总结 {#conclusion} + +翻译 ethereum.org 是了解以太坊不同方面的绝佳机会。 + +翻译时尽量不要着急。 放轻松,玩得开心! + +感谢你参与翻译计划并帮助我们让更广泛的受众可以访问网站。 以太坊社区是全球性的,我们很高兴你也成为其中的一员! diff --git a/public/content/translations/zh/dao/index.md b/public/content/translations/zh/dao/index.md new file mode 100644 index 00000000000..865d42328a9 --- /dev/null +++ b/public/content/translations/zh/dao/index.md @@ -0,0 +1,165 @@ +--- +title: 去中心化自治组织 (DAO) +description: 以太坊上的去中心化自治组织简介 +lang: zh +template: use-cases +emoji: ":handshake:" +sidebarDepth: 2 +image: /use-cases/dao-2.png +alt: 表示去中心化自治组织在对提案投票。 +summaryPoint1: 没有集中领导的、成员共同拥有的社区。 +summaryPoint2: 一种与互联网上的陌生人合作的安全方式。 +summaryPoint3: 一个为特定事业投入资金的安全场所。 +--- + +## 什么是去中心化自治组织? {#what-are-daos} + +去中心化自治组织是指集体所有且由区块链监管的组织,为一个共同的使命而奋斗。 + +去中心化自治组织让全世界志同道合之士开展合作,而无需信赖一位宅心仁厚的领导来管理资金和运营。 没有可以随意花钱的首席执行官,也没有能够做假账的首席财务官。 取而代之的是,融入代码的基于区块链的规则规定组织如何运作以及资金如何使用。 + +去中心化自治组织拥有内部资产,未经该组织批准,任何人都无权动用。 决策通过提案和投票监管,确保组织中的每位成员都有发言权,一切都发生在链上,公开透明。 + +## 我们为什么需要去中心化自治组织? {#why-dao} + +与他人创办涉及资金和金钱的组织,需要对与合作对象高度信任。 不过,显然很难相信互联网上素不相识的人。 通过去中心化自治组织,你不需要相信组织中的其他人,只需要相信去中心化自治组织的代码就够了,它是 100% 公开透明的,任何人都可以验证。 + +这为全球合作和协调提供了许多新机会。 + +### 对比 {#dao-comparison} + +| 去中心化自治组织 | 传统组织 | +| -------------------------------------------------- | ------------------------------------------------------------ | +| 通常是平等的,并且完全民主。 | 通常等级鲜明。 | +| 需要成员投票才能实施任何更改。 | 可能部分人就能进行决策,也可能投票表决,具体取决于组织结构。 | +| 不需要可信的中间人就可以自动计算投票、执行结果。 | 如果允许投票,则在内部计票,投票结果必须由人工处理。 | +| 以去中心化方式自动提供服务(例如慈善基金的分配)。 | 需要人工处理或自动集中控制,易受操纵。 | +| 所有活动公开透明。 | 活动通常是私密进行,不向公众开放。 | + +### 去中心化自治组织示例 {#dao-examples} + +为了帮助你更好地理解,这里有一些去中心化自治组织的应用示例: + +- 慈善机构 – 可以接受全世界任何人的捐赠,并投票决定要资助的项目。 +- 集体所有权 – 可以购买实体或数字资产,组织成员可以投票决定如何使用它们。 +- 风险投资和赠款 - 你可以成立一个风险基金,汇集投资资本并投票进行商业投资。 后续收益可以分配给相应 DAO 成员。 + +## 去中心化自治组织如何运作? {#how-daos-work} + +智能合约是去中心化自治组织的基础,它定义了组织的规则并持有组织的资产。 合约在以太坊上生效后,除非表决通过,否则任何人都不能修改规则。 任何人都无法超越合约定义的规则和逻辑行事。 由于资产也由智能合约定义,这也意味着未经组织批准任何人都不能使用资金。 所以去中心化组织也不需要中央权威。 相反,组织集体作出决定,而付款会在表决通过后自动获批。 + +之所以能够做到这一点,是因为智能合约在以太坊上生效后,就无法被篡改。 一切都是公开的,你不可能在其他人一无所知的情况下修改代码(去中心化组织定义的规则)。 + + + 更多关于智能合约的信息 + + +## 以太坊与去中心化自治组织 {#ethereum-and-daos} + +以太坊为去中心化自治组织提供了坚实基础,原因如下: + +- 以太坊本身已经建立足够的共识,足以让各类组织信任以太坊网络。 +- 智能合约一旦生效就无法更改,即便是其所有者也是如此。 这使得去中心化自治组织能够按照编程规则运行。 +- 智能合约可以发送/接收资金。 没有这点,你就需要可信的中间人来管理组织资金。 +- 比起竞争,以太坊社区更趋向于合作,这使得各类应用程序和服务系统蓬勃发展。 + +## 去中心化自治组织的治理 {#dao-governance} + +治理去中心化自治组织时要考虑很多因素,比如投票和提案如何运作。 + +### 委托 {#governance-delegation} + +委托就像是去中心化自治组织的代议制民主。 代币持有者将投票委托给那些自提名并承诺管理协议和随时了解动态的用户。 + +#### 知名案例 {#governance-example} + +[以太坊域名服务](https://claim.ens.domains/delegate-ranking) - 以太坊域名服务持有者可以将他们的选票委托给参与的社区成员来代表他们。 + +### 自动交易治理 {#governance-example} + +在很多去中心化自治组织中,如果达到法定人数的成员投票赞成,交易将自动执行。 + +#### 知名案例 {#governance-example} + +[Nouns](https://nouns.wtf) — 在 Nouns 去中心化自治组织中,只要创始人不否决,如果投票达到法定票数并且多数票赞成,那么交易将自动执行。 + +### 多重签名治理 {#governance-example} + +虽然去中心化自治组织可能有数千名有投票权的成员,但资金一般会放在一个由 5 到 20 名活跃社区成员共同管理的钱包中,这些成员受组织信任并接受监督(社区知道他们的公开身份)。 投票后,执行多重签名的签名者将执行社区的意志。 + +## 去中心化自治组织相关法律 {#dao-laws} + +1977 年,怀俄明州发明了有限责任公司制度,保护企业家并对他们的责任范围做出限制。 最近,他们率先制定了《去中心化自治组织法》,确定了去中心化自治组织的法律地位。 目前,怀俄明州、佛蒙特州和维尔京群岛都制定了各自的去中心化自治组织法律。 + +### 知名案例 {#law-example} + +[CityDAO](https://citydao.io) — 依照怀俄明州的去中心化自治组织相关法律,CityDAO 购买了黄石国家公园附近的 40 英亩土地。 + +## 去中心化自治组织的成员资格 {#dao-membership} + +去中心化自治组织成员资格分为多种模式。 成员资格可以决定投票方式和去中心化自治组织的其他关键事项。 + +### 基于代币的成员资格 {#token-based-membership} + +通常无需许可,取决于其使用的代币。 通常,这些治理代币在去中心化交易所无需许可即可易, 其余代币要通过提供流动性或“工作量证明”才能赚取。 无论何种方式,只要持有代币就可以参与投票。 + +_通常用来管理各种去中心化协议和/或代币本身。_ + +#### 知名案例 {#token-example} + +[MakerDAO](https://makerdao.com) — 去中心化交易所普遍提供 MakerDAO 的代币 MKR,任何人都可以买入,从而获得对 Maker 协议未来的投票权。 + +### 基于份额的成员资格 {#share-based-membership} + +基于份额的去中心化自治组织通常拥有更多权限,但仍然相当公开透明。 任何潜在成员都可以提交加入去中心化自治组织的提案,并且通常以代币或工作的形式提供有价值的贡献。 份额代表直接投票权和所有权。 成员可以随时退出组织并带走属于他们的资金份额。 + +_通常用于联系更紧密、以人为中心的组织,例如慈善机构、工人团体和投资俱乐部等。 也可以管理协议和代币。_ + +#### 知名案例 {#share-example} + +[MolochDAO](http://molochdao.com/) – MolochDAO 致力于为以太坊项目募集资金。 他们需要成员资格提案,以便组织可以评估你是否具有必要的专业知识和资本来对潜在受资助者做出明智判断。 你无法通过在公开市场上购买代币来加入这类去中心化自治组织。 + +### 基于信誉的成员资格 {#reputation-based-membership} + +信誉代表参加投票的证明,并授予去中心化自治组织中的投票权。 不同于基于代币或份额的成员资格,基于信誉的去中心化自治组织不会将所有权转让给贡献者。 信誉积分不能够购买、转让或委托;去中心化自治组织成员必须通过参与获得信誉积分。 链上投票无需许可,潜在成员可以自由提交加入去中心化自治组织的提案,并要求获得信誉积分和代币,作为他们所做贡献的奖励。 + +_通常用于协议和去中心化应用程序的去中心化开发和管理,但同时非常适合各类组织,例如慈善机构、工人团体、投资俱乐部等。_ + +#### 知名案例 {#reputation-example} + +[DXdao](https://DXdao.eth.link) -- DXdao 是一个全球性的主权团体,自 2019 年以来一直致力于构建和管理去中心化协议和应用。 该组织利用基于信誉积分的治理和全息共识来协调和管理资金,这意味着任何人都不能对它的未来施加影响。 + +## 加入/创立去中心化自治组织 {#join-start-a-dao} + +### 加入去中心化自治组织 {#join-a-dao} + +- [以太坊社区中的去中心化自治组织](/community/get-involved/#decentralized-autonomous-organizations-daos) +- [DAOHaus 的去中心化自治组织列表](https://app.daohaus.club/explore) +- [Tally.xyz 的去中心化自治组织列表](https://www.tally.xyz) + +### 创立去中心化自治组织 {#start-a-dao} + +- [使用 DAOHaus 创立去中心化自治组织](https://app.daohaus.club/summon) +- [从 Tally 开创治理去中心化自治组织](https://www.tally.xyz/add-a-dao) +- [创立由 Aragon 支持的去中心化自治组织](https://aragon.org/product) +- [创立 colony](https://colony.io/) +- [使用 DAOstack 的全息共识机制创建去中心化自治组织](https://alchemy.daostack.io/daos/create) + +## 延伸阅读 {#further-reading} + +### 去中心化自治组织相关文章 {#dao-articles} + +- [什么是去中心化自治组织?](https://aragon.org/dao)– [Aragon](https://aragon.org/) +- [《去中心化自治组织手册》](https://daohandbook.xyz) +- [去中心化自治组织之家](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) +- [什么是去中心化自治组织,其宗旨是什么?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) +- [如何创立由去中心化自治组织提供支持的数字社区](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) +- [什么是去中心化自治组织?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) +- [什么是全息共识?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) +- [《去中心化自治组织不是公司:去中心化在自治组织中很重要》,作者 Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) +- [去中心化自治组织、数据可用性委员会、数据可用性等等:不完整术语指南](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [以太坊博客](https://blog.ethereum.org) + +### 视频 {#videos} + +- [什么是加密货币中的去中心化自治组织?](https://youtu.be/KHm0uUPqmVE) +- [去中心化自治组织能构建一座城市吗?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/public/content/translations/zh/decentralized-identity/index.md b/public/content/translations/zh/decentralized-identity/index.md new file mode 100644 index 00000000000..daf990f9114 --- /dev/null +++ b/public/content/translations/zh/decentralized-identity/index.md @@ -0,0 +1,189 @@ +--- +title: 去中心化身份 +description: 什么是去中心化身份,它为什么很重要? +lang: zh +template: use-cases +emoji: ":id:" +sidebarDepth: 2 +image: /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/))是由签发者发布、可加密验证的防篡改声明。 实体(如,组织)发出的每个身份证明或可验证凭证都与他们的去中心化身份标识有关。 + +由于去中心化身份标识存储在区块链上,任何人都可以多方查证以太坊上签发者的去中心化身份标识,以验证身份证明的有效性。 实际上,以太坊区块链就像是一个共用目录,能够验证与某些实体相关的去中心化身份标识。 + +去中心化身份标识是让身份证明能够自行控制和可以验证的原因。 即使签发者不再存在,持有人也总会有证据证实该身份证明的出处和有效性。 + +去中心化身份标识对于通过去中心化身份保护个人隐私信息不受侵犯也至关重要。 例如,如果某人提交一份身份证明的证据(驾驶执照),则验证者不需要检查证据中信息的有效性。 只需要获得身份证明真实性的加密保证,以及颁发组织身份的加密保证,验证者就可以确定证据是否有效。 + +## 去中心化身份中身份证明的类型 {#types-of-attestations-in-decentralized-identity} + +在基于太坊的身份生态系统中,如何存储和检索身份证明信息与传统身份管理系统不同。 下文概括了一些在去中心化身份系统中签发、存储和验证身份证明的方法。 + +### 链下身份证明 {#off-chain-attestations} + +将身份证明存储在链上的一个问题是,其中可能包含个人想要保密的信息。 以太坊区块链具有开放性,因此不适合用于存储此类身份证明。 + +解决方法是签发身份证明至用户的数字钱包,由用户链下持有,但使用签发者链上存储的去中心化身份标识进行签名。 这些身份证明被编码为 [JSON Web 令牌](https://en.wikipedia.org/wiki/JSON_Web_Token),其中包含签发者的数字签名,从而可以轻松验证链下声明。 + +以下是用于解释链下身份证明的假设场景: + +1. 大学(签发者)生成身份证明(数字学术证书),用其密钥签名,然后将其颁发给 Bob(身份所有者)。 + +2. Bob 申请了一份工作并想向雇主证明他的学历,因此他分享了移动钱包中的身份证明。 然后,公司(验证者)可以通过检查签发者的去中心化身份(即其在以太坊上的公钥)来确认身份证明的有效性。 + +### 可以随时访问的链下身份证明 {#offchain-attestations-with-persistent-access} + +在这种协议下,身份证明将被转变为 JSON 文件并存储在链下(理想情况下存储在[去中心化云存储](/developers/docs/storage/)平台上,例如 IPFS 或 Swarm)。 但是,JSON 文件的[哈希值](/glossary/#hash)存储在链上,并通过链上注册系统链接至去中心化身份。 所关联的去中心化身份可以是身份证明的签发者或接收者。 + +这种方法使身份证明能够基于区块链长期存在,同时使声明信息保持加密并维持其可验证性。 它还允许选择性披露,因为私钥的持有者可以解密信息。 + +### 链上身份证明 {#onchain-attestations} + +链上身份证明保存在以太坊区块链上的[智能合约](/developers/docs/smart-contracts/)中。 智能合约(充当注册系统)将身份证明映射到相应的链上去中心化身份标识(公钥)。 + +以下示例展示了链上身份证明在实践中的使用方式: + +1. 一家公司(XYZ 公司)计划使用智能合约出售所有权份额,但只想卖给那些已完成背景调查的买家。 + +2. XYZ 公司可以让执行背景调查的公司在以太坊上发布链上身份证明。 此身份证明可以证实某人已通过背景调查,但不会暴露任何个人信息。 + +3. 出售股份的智能合约可以核查注册合约中筛选出的买家的身份,从而使智能合约确定哪些人可以购买股份。 + +### 灵魂绑定代币和身份 {#soulbound} + +[灵魂绑定代币](https://vitalik.ca/general/2022/01/26/soulbound.html)(不可转让的非同质化代币)可用于收集特定钱包的独有信息。 这有效地创建了一个绑定至特定以太坊地址的唯一链上身份,其中可能包括代表成就(例如完成某些特定在线课程或在游戏中超过特定分数)或社区参与度的代币。 + +## 去中心化身份的好处 {#benefits-of-decentralized-identity} + +1. 去中心化身份增加了个人对识别信息的控制度。 可以在不依赖中心化机构和第三方服务的情况下验证去中心化身份标识和身份证明。 + +2. 去中心化身份解决方案为验证和管理用户身份提供一种可保护隐私的去信任无缝方法。 + +3. 去中心化身份利用区块链技术,在不同方之间建立信任,并提供加密保证来证实身份证明的有效性。 + +4. 去中心化身份使身份数据可移植。 用户将身份证明和身份标识存储在移动钱包中,并可以与他们选择的任何一方共享。 去中心化身份标识和身份证明不会被锁在签发组织的数据库中。 + +5. 去中心化身份应与新兴的零知识技术很好地配合,这将使个人能够证明他们拥有过某物或做过某事,但无需透露具体是什么。 这可以成为一种将信任和隐私结合在一起的强有力方式,适用于投票等应用。 + +6. 去中心化身份使防女巫机制能够识别一个人假装多人游戏或向某个系统发送垃圾邮件的情况。 + +## 去中心化身份用例 {#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/),可授予持有者访问在线社区的权限。 + +然后,[使用以太坊登录](https://login.xyz/)功能将使服务器能够确认用户的以太坊帐户,并从他们的帐户地址获取所需的身份证明。 这意味着用户无需记住冗长的密码即可访问平台和网站,从而改善用户的线上体验。 + +### 2. “了解你的客户”身份验证 {#kyc-authentication} + +许多在线服务的使用需要个人提供身份证明和凭证,例如驾驶执照或国家护照。 但这种方法是有问题的,因为私人用户信息可能会被泄露,并且服务提供商无法验证身份证明的真实性。 + +去中心化身份使公司能够跳过传统的[了解你的客户 (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) 流程,通过可验证凭据验证用户身份。 这降低了身份管理的成本,并防止使用伪造证件。 + +### 3. 投票和在线社区 {#voting-and-online-communities} + +在线投票和社交媒体是去中心化身份的两个新应用。 在线投票方案容易受到操控,尤其当恶意行为者创建虚假身份进行投票时。 要求个人提供链上身份证明可以提高在线投票流程的公平性。 + +去中心化身份可以帮助创建没有虚假帐户的在线社区。 例如,每位用户可能必须使用链上身份系统(如以太坊域名服务)来验证他们的身份,从而减少是机器人的可能性。 + +### 4. 防女巫保护 {#sybil-protection} + +女巫攻击是指个人欺骗系统,使系统认为他们是多人以增加他们的影响力。 使用[平方投票法](https://www.radicalxchange.org/concepts/plural-voting/)的[资助应用](https://gitcoin.co/grants/)容易受到这些女巫攻击,因为当更多人投票支持时,资助的价值会增加,从而激励用户将他们的贡献分配给多个身份。 通过增加每位参与者证明他们是真人的负担,去中心化身份有助于防止这种情况发生,尽管通常不必透露具体的私人信息。 + +## 使用去中心化身份 {#use-decentralized-identity} + +有许多雄心勃勃的项目使用以太坊作为去中心化身份解决方案的基础: + +- **[以太坊域名服务 (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/)** - _一个去中心化数字身份聚合模块。_ +- **[walt.id](https://walt.id)** — _开源去中心化身份和钱包基础架构,使开发人员和组织能够利用自主主权身份和非同质化代币/灵魂绑定代币。_ + +## 延伸阅读 {#further-reading} + +### 文章 {#articles} + +- [区块链用例:数字身份中的区块链](https://consensys.net/blockchain-use-cases/digital-identity/) — _共识系统_ +- [什么是以太坊 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://walt.id/white-paper/digital-identity) — _Dominik Beron_ + +### 视频 {#videos} + +- [去中心化身份(奖励直播环节)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _一个很好的去中心化身份解说视频,来自 Andreas Antonopolous_ +- [使用以太坊和 Ceramic、IDX、React 以及 3ID Connect 的去中心化身份登录](https://www.youtube.com/watch?v=t9gWZYJxk7c) - _来自 Nader Dabit 的一个 YouTube 教程,介绍如何使用用户的以太坊钱包构建身份管理系统以创建、读取和更新他们的个人资料_ +- [BrightID - 以太坊上的去中心化身份](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _Bankless 播客节目讨论 BrightID(以太坊的去中心化身份解决方案)_ +- [链下互联网:去中心化身份和可验证凭证](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — Evin McMullen 的 EthDenver 2022 演讲 +- [可验证凭据释义](https://www.youtube.com/watch?v=ce1IdSr-Kig) - Tamino Baumann 的 YouTube 讲解视频和演示 + +### 社区 {#communities} + +- [GitHub 上的 ERC-725 联盟](https://github.com/erc725alliance) — _支持 ERC725 标准管理以太坊区块链上的身份_ +- [SpruceID Discord 服务器](https://discord.com/invite/Sf9tSFzrnt) — _使用以太坊登录的爱好者和开发者社区_ +- [Veramo Labs](https://discord.gg/sYBUXpACh4) - _开发者社区,帮助为应用程序构建可验证数据框架_ +- [walt.id](https://discord.com/invite/AW8AgqJthZ) — _一个由开发者和构建者组成的社区,致力于研究跨各种行业的去中心化身份用例_ diff --git a/public/content/translations/zh/defi/index.md b/public/content/translations/zh/defi/index.md new file mode 100644 index 00000000000..15cfb7db62b --- /dev/null +++ b/public/content/translations/zh/defi/index.md @@ -0,0 +1,352 @@ +--- +title: 去中心化金融 (DeFi) +description: 以太坊上的去中心化金融简介 +lang: zh +template: use-cases +emoji: ":money_with_wings:" +image: /use-cases/defi.png +alt: 由乐高积木拼成的以太坊徽标。 +sidebarDepth: 2 +summaryPoint1: 当前金融体系的全球性、开放性替代方案。 +summaryPoint2: 允许用户进行借贷、储蓄、投资、交易等等的产品。 +summaryPoint3: 基于开源技术,任何人都可以来编程。 +--- + +去中心化金融是专为互联网时代构建的开放式全球金融系统,可替代不透明、控制严格并由几十年前的基础设施和流程支撑的系统。 让你可以控制和了解自己的资金。 让你有机会接触全球市场,并可以替代当地货币或银行业务。 去中心化金融产品向任何有互联网连接的人开放金融服务,产品主要由用户创造和维护。 迄今为止,价值数百亿美元的加密货币已经通过去中心化金融应用程序流动,而且每天都在增长。 + +## 什么是去中心化金融? {#what-is-defi} + +去中心化金融是金融产品和服务的统称,任何可以使用以太坊(具有互联网连接)的人都可以访问这些产品和服务。 有了去中心化金融,市场始终开放,没有集中管理机构可以阻止付款或拒绝访问任何内容。 以前有可能出现人为错误的缓慢服务,替代为由任何人都可以检查和审查的代码来处理,变得自动和安全。 + +这是一个蓬勃发展的加密经济,你可以在那里放贷、借款、做多/做空、赚取利息等等。 精通加密技术的阿根廷人已经使用去中心化金融来逃避严重的通货膨胀。 公司已经开始实时向员工发放工资。 有些人甚至在不需要任何个人身份证明的情况下,就已经获得或偿还了价值数百万美元的贷款。 + + + +## 去中心化金融与传统金融 {#defi-vs-tradfi} + +了解去中心化金融潜力的最佳方法是了解目前存在的问题。 + +- 有些人无法设立银行帐户或使用金融服务。 +- 无法获得金融服务会阻碍人们就业。 +- 金融机构可能会阻止你获得报酬。 +- 金融服务的一个隐性收费就是个人数据。 +- 政府和中央机构可以随意关闭市场。 +- 交易时间通常受特定时区的营业时间限制。 +- 由于内部的人工流程,资金转移可能需要几天时间。 +- 金融服务存在溢价,因为中介机构需要分成。 + +### 对比 {#defi-comparison} + +| 去中心化金融 | 传统金融 | +| --------------------------------------------------------------- | ------------------------------------------------------------------------ | +| 你持有你的钱。 | 资金由机构持有。 | +| 你可以控制自己的资金流向和使用方式。 | 你必须相信机构不会出现资金管理不善问题,比如不会将钱借给高风险借款人。 | +| 资金转移在几分钟内完成。 | 如果人工处理,支付可能需要几天时间。 | +| 匿名交易。 | 金融活动与你的身份紧密相连。 | +| 去中心化金融对任何人开放。 | 你必须申请使用金融服务。 | +| 交易时间 24 小时不间断。 | 根据人工作息时间制定交易时间。 | +| 建立在透明基础上 - 任何人都可以查看产品数据并检查系统运行状况。 | 金融机构是闭门造车:你不能要求查看他们的贷款历史,管理资产的记录,等等。 | + + + 探索去中心化金融应用程序 + + +## 从比特币开始... {#bitcoin} + +从某种程度来讲,比特币是第一款去中心化金融应用程序。 比特币让你真正拥有和掌控价值,并可将其发送到世界任何地方。 为实现这一点,它提供了一种方式,让众多互不信任的人在无需可信赖中介的情况下,就帐户的账本达成一致。 比特币向所有人公开,任何人都无权更改其规则。 比特币的规则(例如稀缺性和开放性),都写入了技术中。 与传统金融不同:在传统金融中,政府可以印钞使你的存款贬值,而机构则可以关闭市场。 + +以太坊便以此为基础。 就像比特币一样,规则不会因你而改变,而且每个人都可以得到。 使用[智能合约](/glossary#smart-contract)技术还可以让这种数字货币程序化,使它的功能不仅限于储蓄和交易。 + + + +## 可编程货币 {#programmable-money} + +这听起来很奇怪……“我为什么会想对钱进行编程”? 然而,这只是以太坊代币的一个默认功能。 任何人都可以对逻辑编程,以生成支付。 这样,你就可以将比特币的控制权和安全性与传统金融机构提供的服务相结合。 然后,你就可以用加密货币做一些比特币做不到的事情,比如借贷、预约付款、投资指数基金等等。 + + +
如果你不熟悉以太坊,请尝试我们推荐的去中心化金融应用程序。
+ + 探索去中心化金融应用程序 + +
+ +## 你可以用去中心化金融做什么? {#defi-use-cases} + +大多数金融服务都有去中心化的替代方案。 但以太坊也为打造全新的金融产品开辟了机会。 这个清单还在不断增长。 + +- [向世界各地汇款](#send-money) +- [在全球范围内流转资金](#stream-money) +- [获取稳定货币](#stablecoins) +- [抵押借款](#lending) +- [无抵押借款](#flash-loans) +- [开始加密货币存款](#saving) +- [交易代币](#swaps) +- [扩充你的投资组合](#investing) +- [为你的想法提供资金](#crowdfunding) +- [购买保险](#insurance) +- [管理你的投资组合](#aggregators) + + + +### 向世界各地快速汇款 {#send-money} + +作为一个区块链,以太坊设计用于让用户在全球范围内安全地发送交易。 与比特币一样,以太坊使得向世界各地发送资金就像发送电子邮件一样容易。 只需从钱包中输入收款人的 [ENS 名称](/nft/#nft-domains)(如 bob.eth)或他们的帐户地址,你的付款(通常)将在几分钟内直接到达对方帐户。 要发送或接收付款,你将需要一个[钱包](/wallets/)。 + + + 查看支付 dapp + + +#### 在全球范围内流转资金... {#stream-money} + +你也可以通过以太坊汇款。 这可以让你秒速支付某人的工资,让他们可以在需要时获得资金。 或者立刻租用一些物品,如储物柜或电动滑板车。 + +而且,如果你因为以太币的价值可能发生变化而不想发送[以太币](/eth/),以太坊上还有其它可供选择的货币:稳定币。 + + + +### 获取稳定货币 {#stablecoins} + +对很多金融产品和一般支出来说,数字货币的波动都是问题。 去中心化金融社区已经通过稳定币解决了这个问题。 它们的价值始终与其他资产挂钩,通常是像美元这样的通用货币。 + +Dai 或 USDC 等代币的价值和美元的差距通常保持在几美分以内。 这使他们能够完美地用于收入或零售。 在政府发行的货币出现巨大不确定性的时候,拉丁美洲的许多人都曾使用稳定币作为保护储蓄的一种方式。 + + + 关于稳定币的更多信息 + + + + +### 借款 {#lending} + +向去中心化供应商借钱主要有两种情况。 + +- 点对点,意味着借款人将直接从特定贷款人那里借款。 +- 基于资金池,贷款人向借款人可以借贷的资金池提供资金(流动性)。 + + + 查看借款 dapp + + +选择去中心化贷款人具有许多优势... + +#### 隐私借贷 {#borrowing-privacy} + +今天,贷款和借钱都围绕着相关个人进行。 在放贷前,银行需要了解你是否有能力偿还贷款。 + +去中心化借贷无需任何一方表明自己的身份即可进行。 但是,借款人必须提供抵押品,如果他们没有偿还贷款,贷款人将自动获得抵押品。 有的贷款人甚至接受非同质化代币作为抵押品。 非同质化代币是指绘画等独特资产。 [关于非同质化代币的更多信息](/nft/) + +这允许你在不进行征信调查或透露私人信息的情况下借钱。 + +#### 获得全球资金 {#access-global-funds} + +当你选择去中心化贷款人时,可以使用来自全球各地的存款,而不仅仅是选定银行或机构保管的资金。 这使人们更容易获得贷款,并提高利率。 + +#### 税收优惠 {#tax-efficiencies} + +借贷可以让你获得所需资金,而无需出售你的以太币(该行为需要征税)。 然而,你可以使用以太币作为抵押品,借入稳定币。 这不仅为你提供所需的现金流,你还可以继续持有自己的以太币。 当你需要现金时,稳定币是更好的代币,因为它们不会像以太币一样波动。 [关于稳定币的更多信息](#stablecoins) + +#### 闪电贷 {#flash-loans} + +闪电贷是一种实验性更强的去中心化借贷形式,让你在没有抵押物或未提供任何个人信息的情况下借贷。 + +目前,非技术人员还不能广泛使用它们,但它们暗示了将来每个人都可以使用。 + +它的工作原理是,在一次交易中放贷和还款。 如果无法偿还,资金将返还给贷款方,就像什么都没有发生过一样。 + +经常使用的资金放入流动资金池(用于借贷的大资金池)。 如果资金在给定时刻没有使用,这就创造了一个机会,有人可以借用这些资金用于开展业务,并几乎在借入资金的同时全额偿还。 + +这意味着必须在专门编写的交易中包含大量逻辑。 举一个简单的例子,有人可以使用闪电贷按特定价格借入尽可能多的资产,以便在价格更高的其他交易所出售资产。 + +所以在这笔交易中,情况如下: + +- 以 $1.00 的价格从 A 交易所中借入 X 数量的 $asset +- 在 B 交易所按 $1.10 的价格出售 X 数量的 $asset +- 在 A 交易所偿还贷款 +- 赚到扣除交易费后的收益 + +如果交易所 B 的供应突然下降,而用户无法购买足够的资金来支付原始贷款,交易就会失败。 + +要想在传统金融世界实现上述操作,你需要大量的资金。 这些赚钱的策略仅供已经拥有财富的人士使用。 闪电贷款是一个未来的例子,在这里,拥有金钱不一定是赚钱的先决条件。 + +[关于闪电贷的更多信息](https://aave.com/flash-loans/) + + + +### 开始使用加密货币存款 {#saving} + +#### 借款 {#lending} + +你可以通过借出加密货币来赚取利息,并看到资金的实时增长。 现在的利率比当地银行可能高出许多(如果有幸能够使用当地的银行系统)。 下面是一个示例: + +- 你借出 100 Dai [稳定币](/stablecoins/),借给类似 Aave 的产品。 +- 你会收到 100 个 Aave Dai (aDai),代表你已借出的 Dai。 +- 你的 aDai 将根据利率增加,你可以看到钱包里的余额在增长。 根据 APR,你的钱包余额在几天甚至几小时后会显示为 100.1234 这样的数字。 +- 你可以随时提取与 aDai 余额等额的普通 Dai。 + + + 查看借款 dapp + + +#### 无损彩票 {#no-loss-lotteries} + +像 PoolTogether 这样的无损彩票是一种有趣而创新的省钱方法。 + +- 你使用 100 Dai 购买了 100 张彩票。 +- 你将收到 100 个 plDai,代表你的 100 张彩票。 +- 如果你有一张彩票中奖,你的 plDai 余额将按奖池金额增加。 +- 如果未中奖,你的 100 plDai 就会滚到进入下周的抽奖。 +- 你可以随时提取与你的 plDai 余额相等的普通 Dai。 + +奖池由所有借出彩票存款产生的利息汇聚而成,类似上面的借贷案例。 + + + 尝试 PoolTogether + + + + +### 兑换代币 {#swaps} + +以太坊上有数千种代币。 去中心化交易所可让你随时交易不同的代币。 你的资产永远由你掌控。 这就像前往其他国家时要兑换货币。 但去中心化金融版本从来不关闭。 市场全年全天候开放,技术支持可保证始终有人接受交易。 + +例如,如果你想使用无损彩票 PoolTogether(如上所述),则需要类似 Dai 或 USDC 的代币。 DEX 允许你将以太币换成这些代币,并在完成交易后再换回来。 + + + 查看代币兑换 + + + + +### 高级交易 {#trading} + +对于喜欢加强控制的交易者来说,还有更多高级选项。 限价单、永续合约、保证金交易等都可实现。 通过去中心化交易,你可以获得全球流动性,市场永远不会关闭,而且你始终控制着自己的资产。 + +使用中心化交易所时,你必须在交易前存入资产,并相信交易所会妥善处理这些资产。 当你存入资产时,它们会面临风险,因为中心化交易所对黑客来说是诱人目标。 + + + 查看更多交易 dapp + + + + +### 扩充你的投资组合 {#investing} + +以太坊上有一些基金管理产品,它们会尝试根据你选择的策略为你的投资组合增值。 自动完成而且对每个人都开放,没有管理人员从利润中抽成。 + +一个很好的示例是[去中心化金融指数基金](https://defipulse.com/blog/defi-pulse-index/)。 这是一支自动再平衡基金,可确保你的投资组合总是包含[市值最高的去中心化金融代币](https://www.coingecko.com/en/defi)。 你无需管理任何细节,并且可以随时从基金中提款。 + + + 查看投资去中心化应用程序 + + + + +### 为你的想法提供资金 {#crowdfunding} + +以太坊是一个理想的众筹平台: + +- 潜在的资助者可以来自任何地方 - 以太坊及其代币向世界上任何地方的任何人开放。 +- 公开透明,募捐者可以证明已经筹集了多少资金。 你甚至可以在以后的工作中追踪资金的使用情况。 +- 募捐者可以设置自动退款,例如,如果有未达到特定的最后期限和最低金额,就可以自动退款。 + + + 查看更多众筹去中心化应用程序 + + +#### 二次方融资 {#quadratic-funding} + +以太坊是开源软件,到目前为止,很多工作都由社区资助。 这催生了一种有趣的新型募资模式:二次方融资。 这有可能改进我们在未来为各种公共产品募资的方式。 + +二次方募资确保获得最多资金的项目是那些具有最独特需求的项目。 换句话说,就是那些能够改善大多数人生活的项目。 其运作方式如下: + +1. 有一个相应的捐助资金库。 +2. 开始一轮公共融资。 +3. 人们可以通过捐资来表明对一个项目的需求。 +4. 一旦这轮结束,匹配池的资金就会分配给项目。 那些需求最独特的项目会从匹配池中获得最高金额。 + +这意味着获得 100 笔 1 美元捐款的项目 A 最终可能比获得 1 笔 1 万美元捐款的项目 B 获得更多资金(取决于匹配池的大小)。 + +[关于二次方融资的更多信息](https://wtfisqf.com) + + + +### 保险 {#insurance} + +去中心化保险旨在使保险更便宜、支付速度更快且更加透明。 随着自动化程度的提高,保险的价格更加低廉,赔付的速度也快了很多。 用来决定你的索赔的数据完全透明。 + +就像任何软件一样,以太坊产品也可能出现漏洞。 因此,目前该领域中的许多保险产品都致力于保护用户免受资金损失。 然而,一些项目开始构建全面覆盖我们生活中可能出现的各种情况的保险方案。 Etherisc 的作物保护就是一个很好的例子,其目的是[保护肯尼亚的小农户对抗干旱和洪水侵袭](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc)。 去中心化保险可以为那些经常被传统保险拒之门外的农民提供更便宜的保险。 + + + 查看保险去中心化应用程序 + + + + +### 聚集者和投资组合管理 {#aggregators} + +拥有了这么多种服务,你需要一种方法来跟踪跟踪所有投资、贷款和交易。 有许多产品可以让你集中协调所有去中心化金融活动。 这就是去中心化金融开放架构的魅力所在。 团队可以创建界面,你不仅可以看到各个产品中的余额,也可以使用其功能。 当你探索更多的去中心化金融时,可能会发现这个很有用。 + + + 查看投资组合去中心化应用程序 + + + + +## 去中心化金融如何运作? {#how-defi-works} + +去中心化金融使用加密货币和智能合约提供服务,无需中介。 在现代金融体系下,金融机构充当交易的担保人。 因为你的资产通过这些机构流通,从而为这些机构赋予了巨大的权力。 世界上还有数十亿人甚至无法使用银行帐户。 + +在去中心化金融,智能合约取代了交易中的金融机构。 智能合约是一种以太坊帐户,可以持有资金,并可以根据某些条件发送/退还资金。 智能合约上线时,没有人可以改变其有效期,它会始终按程序运行。 + +一份旨在发放补贴或零用钱的合同可以被编程为:每周五从 A 帐户向 B 帐户汇款。 只有帐户 A 拥有所需资金,它才会这样做。 没有人可以改变智能合约并将帐户 C 添加为收款人以窃取资金。 + +合约也是公开的,任何人都可以检查和审核。 这意味着不良合约往往会很快受到社会监督。 + +这确实意味着,目前需要信任以太坊社区中能够读取代码的技术员。 基于开源的社区有助于控制开发者,但是随着时间的推移,这种需求将逐渐减少,因为智能合约变得更易于阅读。并且开发了其他方法来证明代码的可信赖性。 + +## 以太坊与去中心化金融 {#ethereum-and-defi} + +以太坊为去中心化金融提供了良好基础,原因如下: + +- 没有人拥有以太坊或部署在以太坊上的智能合约 - 这让每个人都有机会使用去中心化金融。 这也意味着任何人都不能改变规则。 +- 去中心化金融产品都使用相同的语言:以太坊。 这意味着许多产品能够无缝合作。 你可以在一个平台上借出代币,并通过完全不同的应用程序在不同的市场上交换带利息的代币。 这就像能够在银行兑现忠诚度积分。 +- 代币和加密货币内置在以太坊这个共享账本上的 - 记录交易和所有权是以太坊的事情。 +- 以太坊可实现完全财务自由 - 大多数产品永远不会保管你的资金,让你掌控一切。 + +你可以把去中心化金融看成分层结构: + +1. 区块链 - 以太坊包含交易历史和帐户状态。 +2. 资产 - [以太币](/eth/)和其他代币。 +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} + +- [去中心化金融 (DeFi) 初学者指南](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu,2020 年 1 月 6 日_ + +### 视频 {#videos} + +- [Finematics - 去中心化金融教育](https://finematics.com/) - _关于去中心化金融的视频_ +- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _去中心化金融基础:在这个偶尔令人困惑的空间里,你开始需要了解的一切。_ +- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _ - 什么是去中心化金融?_ + +### 社区 {#communities} + +- [去中心化金融 Llama Discord 服务器](https://discord.gg/buPFYXzDDd) +- [去中心化金融 Pulse Discord 服务器](https://discord.gg/Gx4TCTk) diff --git a/public/content/translations/zh/desci/index.md b/public/content/translations/zh/desci/index.md new file mode 100644 index 00000000000..50ffcd052fd --- /dev/null +++ b/public/content/translations/zh/desci/index.md @@ -0,0 +1,139 @@ +--- +title: 去中心化科学 (DeSci) +description: 以太坊去中心化科学概览 +lang: zh +template: use-cases +emoji: ":microscope:" +sidebarDepth: 2 +image: /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} + +科学出版是一个比较出名的问题,它由出版社进行管理,依靠科学家、评审人和编辑者这些免费劳动力来产生论文,然后收取高额的出版费。 普通大众通常已经通过税收间接支付了工作成果和出版费用,但仍需要再次向出版商付费来获取同一个工作成果。 发表个人科学论文的总费用通常是五位数 ($USD),这违背了科学知识作为[公共利益](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 有可能打破这一不合理的资金模式。 [可溯源的公益资助](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)是一些可以彻底改变科学资助的 Web3 工具。 + +### 知识产权所有权和发展 {#ip-ownership} + +知识产权 (IP) 是传统科学中的一个大问题:从被卡在大学里或未能在生物技术领域使用,到众所周知的难以估值。 然而,Web3 利用[非同质化代币 (NFT)](/nft/) 将数字资产(例如科学数据或文章)的所有权做得特别好。 + +就像非同质化代币可以将未来交易的受益转回给原创作者一样,你可以建立透明的价值归属链,以此奖励研究人员、管理机构(比如去中心化自治组织),甚至是数据收集对象。 + +[IP-NFT](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) 就像一把钥匙,可以打开进行中的研究实验的去中心化数据存储库,还可以插入了同质化代币和[去中心化金融](/defi/)这些金融领域(从分片化到借贷池和价值评估)。 它也允许一些原生链上实体直接在链上进行研究,比如[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 中可以创造公共利益,无需访问权限和费用。 Web3 的公共数据解决方案,比如星际文件系统、Arweave 和菲乐币,也专门为去中心化做了优化。 例如 dClimate,让所有人获取气候和天气数据,包括来自气象站和气候预测模型的数据。 + +## 参与其中 {#get-involved} + +探索项目并加入去中心化科学社区。 + +- [DeSci.Global:全球事件和会议日历](https://desci.global) +- [科学电报区块链](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 应用程序接口:查询由去中心化社区收集的气候数据](https://api.dclimate.net/) +- [去中心化科学基金:去中心化出版工具构建者](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/) +- [DeSci Labs](https://www.desci.com/) + +我们欢迎提出新项目加入到列表中 - 开始前,请查看我们的[上架政策](/contributing/adding-desci-projects/)! + +## 延伸阅读 {#further-reading} + +- [DeSci Wiki 由 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 的生物制药知识产权-非同质化代币 - 技术描述](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 - 去中心化科学:去中心化科学的未来(播客)](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/developers/docs/accounts/accounts.png b/public/content/translations/zh/developers/docs/accounts/accounts.png similarity index 100% rename from src/content/translations/zh/developers/docs/accounts/accounts.png rename to public/content/translations/zh/developers/docs/accounts/accounts.png diff --git a/src/content/translations/zh/developers/docs/accounts/index.md b/public/content/translations/zh/developers/docs/accounts/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/accounts/index.md rename to public/content/translations/zh/developers/docs/accounts/index.md diff --git a/src/content/translations/zh/developers/docs/apis/backend/index.md b/public/content/translations/zh/developers/docs/apis/backend/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/apis/backend/index.md rename to public/content/translations/zh/developers/docs/apis/backend/index.md diff --git a/src/content/translations/zh/developers/docs/apis/javascript/index.md b/public/content/translations/zh/developers/docs/apis/javascript/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/apis/javascript/index.md rename to public/content/translations/zh/developers/docs/apis/javascript/index.md diff --git a/src/content/translations/zh/developers/docs/apis/json-rpc/index.md b/public/content/translations/zh/developers/docs/apis/json-rpc/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/apis/json-rpc/index.md rename to public/content/translations/zh/developers/docs/apis/json-rpc/index.md diff --git a/src/content/translations/zh/developers/docs/blocks/index.md b/public/content/translations/zh/developers/docs/blocks/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/blocks/index.md rename to public/content/translations/zh/developers/docs/blocks/index.md diff --git a/src/content/translations/zh/developers/docs/blocks/tx-block.png b/public/content/translations/zh/developers/docs/blocks/tx-block.png similarity index 100% rename from src/content/translations/zh/developers/docs/blocks/tx-block.png rename to public/content/translations/zh/developers/docs/blocks/tx-block.png diff --git a/src/content/translations/zh/developers/docs/bridges/index.md b/public/content/translations/zh/developers/docs/bridges/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/bridges/index.md rename to public/content/translations/zh/developers/docs/bridges/index.md diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/index.md b/public/content/translations/zh/developers/docs/consensus-mechanisms/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/consensus-mechanisms/index.md rename to public/content/translations/zh/developers/docs/consensus-mechanisms/index.md diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md b/public/content/translations/zh/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md rename to public/content/translations/zh/developers/docs/consensus-mechanisms/pos/attack-and-defense/index.md diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/pos/attack-and-defense/reorg-schematic.png b/public/content/translations/zh/developers/docs/consensus-mechanisms/pos/attack-and-defense/reorg-schematic.png similarity index 100% rename from src/content/translations/zh/developers/docs/consensus-mechanisms/pos/attack-and-defense/reorg-schematic.png rename to public/content/translations/zh/developers/docs/consensus-mechanisms/pos/attack-and-defense/reorg-schematic.png diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/pos/attestations/attestation_schematic.png b/public/content/translations/zh/developers/docs/consensus-mechanisms/pos/attestations/attestation_schematic.png similarity index 100% rename from src/content/translations/zh/developers/docs/consensus-mechanisms/pos/attestations/attestation_schematic.png rename to public/content/translations/zh/developers/docs/consensus-mechanisms/pos/attestations/attestation_schematic.png diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/pos/attestations/index.md b/public/content/translations/zh/developers/docs/consensus-mechanisms/pos/attestations/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/consensus-mechanisms/pos/attestations/index.md rename to public/content/translations/zh/developers/docs/consensus-mechanisms/pos/attestations/index.md diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/pos/block-proposal/index.md b/public/content/translations/zh/developers/docs/consensus-mechanisms/pos/block-proposal/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/consensus-mechanisms/pos/block-proposal/index.md rename to public/content/translations/zh/developers/docs/consensus-mechanisms/pos/block-proposal/index.md diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/pos/faqs/index.md b/public/content/translations/zh/developers/docs/consensus-mechanisms/pos/faqs/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/consensus-mechanisms/pos/faqs/index.md rename to public/content/translations/zh/developers/docs/consensus-mechanisms/pos/faqs/index.md diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/pos/gasper/index.md b/public/content/translations/zh/developers/docs/consensus-mechanisms/pos/gasper/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/consensus-mechanisms/pos/gasper/index.md rename to public/content/translations/zh/developers/docs/consensus-mechanisms/pos/gasper/index.md diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/pos/index.md b/public/content/translations/zh/developers/docs/consensus-mechanisms/pos/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/consensus-mechanisms/pos/index.md rename to public/content/translations/zh/developers/docs/consensus-mechanisms/pos/index.md diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/pos/keys/index.md b/public/content/translations/zh/developers/docs/consensus-mechanisms/pos/keys/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/consensus-mechanisms/pos/keys/index.md rename to public/content/translations/zh/developers/docs/consensus-mechanisms/pos/keys/index.md diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/pos/keys/multiple-keys.png b/public/content/translations/zh/developers/docs/consensus-mechanisms/pos/keys/multiple-keys.png similarity index 100% rename from src/content/translations/zh/developers/docs/consensus-mechanisms/pos/keys/multiple-keys.png rename to public/content/translations/zh/developers/docs/consensus-mechanisms/pos/keys/multiple-keys.png diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/pos/keys/validator-key-schematic.png b/public/content/translations/zh/developers/docs/consensus-mechanisms/pos/keys/validator-key-schematic.png similarity index 100% rename from src/content/translations/zh/developers/docs/consensus-mechanisms/pos/keys/validator-key-schematic.png rename to public/content/translations/zh/developers/docs/consensus-mechanisms/pos/keys/validator-key-schematic.png diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md b/public/content/translations/zh/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md rename to public/content/translations/zh/developers/docs/consensus-mechanisms/pos/pos-vs-pow/index.md diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md b/public/content/translations/zh/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md rename to public/content/translations/zh/developers/docs/consensus-mechanisms/pos/rewards-and-penalties/index.md diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md b/public/content/translations/zh/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md rename to public/content/translations/zh/developers/docs/consensus-mechanisms/pos/weak-subjectivity/index.md diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/pow/index.md b/public/content/translations/zh/developers/docs/consensus-mechanisms/pow/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/consensus-mechanisms/pow/index.md rename to public/content/translations/zh/developers/docs/consensus-mechanisms/pow/index.md diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md b/public/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining-algorithms/dagger-hashamoto/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md rename to public/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining-algorithms/dagger-hashamoto/index.md diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md b/public/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethash/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md rename to public/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethash/index.md diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining-algorithms/index.md b/public/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining-algorithms/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining-algorithms/index.md rename to public/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining-algorithms/index.md diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining/index.md b/public/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining/index.md rename to public/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining/index.md diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining-algorithms/dagger-hashamoto/index.md b/public/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining-algorithms/dagger-hashamoto/index.md rename to public/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/dagger-hashimoto/index.md diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethash/index.md b/public/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethash/index.md rename to public/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/ethash/index.md diff --git a/src/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md b/public/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md rename to public/content/translations/zh/developers/docs/consensus-mechanisms/pow/mining/mining-algorithms/index.md diff --git a/src/content/translations/zh/developers/docs/dapps/index.md b/public/content/translations/zh/developers/docs/dapps/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/dapps/index.md rename to public/content/translations/zh/developers/docs/dapps/index.md diff --git a/src/content/translations/zh/developers/docs/data-and-analytics/block-explorers/index.md b/public/content/translations/zh/developers/docs/data-and-analytics/block-explorers/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/data-and-analytics/block-explorers/index.md rename to public/content/translations/zh/developers/docs/data-and-analytics/block-explorers/index.md diff --git a/src/content/translations/zh/developers/docs/data-and-analytics/index.md b/public/content/translations/zh/developers/docs/data-and-analytics/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/data-and-analytics/index.md rename to public/content/translations/zh/developers/docs/data-and-analytics/index.md diff --git a/src/content/translations/zh/developers/docs/data-availability/index.md b/public/content/translations/zh/developers/docs/data-availability/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/data-availability/index.md rename to public/content/translations/zh/developers/docs/data-availability/index.md diff --git a/src/content/translations/zh/developers/docs/data-structures-and-encoding/index.md b/public/content/translations/zh/developers/docs/data-structures-and-encoding/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/data-structures-and-encoding/index.md rename to public/content/translations/zh/developers/docs/data-structures-and-encoding/index.md diff --git a/src/content/translations/zh/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md b/public/content/translations/zh/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md rename to public/content/translations/zh/developers/docs/data-structures-and-encoding/patricia-merkle-trie/index.md diff --git a/src/content/translations/zh/developers/docs/data-structures-and-encoding/rlp/index.md b/public/content/translations/zh/developers/docs/data-structures-and-encoding/rlp/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/data-structures-and-encoding/rlp/index.md rename to public/content/translations/zh/developers/docs/data-structures-and-encoding/rlp/index.md diff --git a/src/content/translations/zh/developers/docs/data-structures-and-encoding/ssz/index.md b/public/content/translations/zh/developers/docs/data-structures-and-encoding/ssz/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/data-structures-and-encoding/ssz/index.md rename to public/content/translations/zh/developers/docs/data-structures-and-encoding/ssz/index.md diff --git a/src/content/translations/zh/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md b/public/content/translations/zh/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md rename to public/content/translations/zh/developers/docs/data-structures-and-encoding/web3-secret-storage-definition/index.md diff --git a/src/content/translations/zh/developers/docs/development-networks/index.md b/public/content/translations/zh/developers/docs/development-networks/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/development-networks/index.md rename to public/content/translations/zh/developers/docs/development-networks/index.md diff --git a/src/content/translations/zh/developers/docs/ethereum-stack/index.md b/public/content/translations/zh/developers/docs/ethereum-stack/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/ethereum-stack/index.md rename to public/content/translations/zh/developers/docs/ethereum-stack/index.md diff --git a/src/content/translations/zh/developers/docs/evm/evm.png b/public/content/translations/zh/developers/docs/evm/evm.png similarity index 100% rename from src/content/translations/zh/developers/docs/evm/evm.png rename to public/content/translations/zh/developers/docs/evm/evm.png diff --git a/src/content/translations/zh/developers/docs/evm/gas.png b/public/content/translations/zh/developers/docs/evm/gas.png similarity index 100% rename from src/content/translations/zh/developers/docs/evm/gas.png rename to public/content/translations/zh/developers/docs/evm/gas.png diff --git a/src/content/translations/zh/developers/docs/evm/index.md b/public/content/translations/zh/developers/docs/evm/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/evm/index.md rename to public/content/translations/zh/developers/docs/evm/index.md diff --git a/src/content/translations/zh/developers/docs/evm/opcodes/index.md b/public/content/translations/zh/developers/docs/evm/opcodes/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/evm/opcodes/index.md rename to public/content/translations/zh/developers/docs/evm/opcodes/index.md diff --git a/src/content/translations/zh/developers/docs/frameworks/index.md b/public/content/translations/zh/developers/docs/frameworks/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/frameworks/index.md rename to public/content/translations/zh/developers/docs/frameworks/index.md diff --git a/src/content/translations/zh/developers/docs/gas/index.md b/public/content/translations/zh/developers/docs/gas/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/gas/index.md rename to public/content/translations/zh/developers/docs/gas/index.md diff --git a/src/content/translations/zh/developers/docs/ides/index.md b/public/content/translations/zh/developers/docs/ides/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/ides/index.md rename to public/content/translations/zh/developers/docs/ides/index.md diff --git a/src/content/translations/zh/developers/docs/index.md b/public/content/translations/zh/developers/docs/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/index.md rename to public/content/translations/zh/developers/docs/index.md diff --git a/src/content/translations/zh/developers/docs/intro-to-ether/index.md b/public/content/translations/zh/developers/docs/intro-to-ether/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/intro-to-ether/index.md rename to public/content/translations/zh/developers/docs/intro-to-ether/index.md diff --git a/src/content/translations/zh/developers/docs/intro-to-ethereum/index.md b/public/content/translations/zh/developers/docs/intro-to-ethereum/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/intro-to-ethereum/index.md rename to public/content/translations/zh/developers/docs/intro-to-ethereum/index.md diff --git a/public/content/translations/zh/developers/docs/mev/index.md b/public/content/translations/zh/developers/docs/mev/index.md new file mode 100644 index 00000000000..e3c6fd83c93 --- /dev/null +++ b/public/content/translations/zh/developers/docs/mev/index.md @@ -0,0 +1,221 @@ +--- +title: 最大可提取价值 (MEV) +description: 最大可提取价值 (MEV) 简介 +lang: zh +--- + +最大可提取价值 (MEV) 是指通过在区块中添加和排除交易并更改区块中的交易顺序,可以从区块生产中提取的超过标准区块奖励和燃料费用的最大值。 + +## 矿工可提取价值 {#miner-extractable-value} + +最大可提取价值首先应用于[工作量证明](/developers/docs/consensus-mechanisms/pow/)背景下,最初称为“矿工可提取价值”。 这是因为在工作量证明中,矿工掌握了交易的包含、排除和顺序。 然而,自从通过[合并](/roadmap/merge/)过渡到权益证明以来,验证者一直负责这些角色,并且挖矿不再是以太坊协议的一部分。 但是,价值提取方法仍然存在,因此现在使用的是术语“最大可提取价值”。 + +## 前提条件 {#prerequisites} + +确保你已熟悉[交易](/developers/docs/transactions/)、[区块](/developers/docs/blocks/)、[权益证明](/developers/docs/consensus-mechanisms/pos)和[燃料](/developers/docs/gas/)。 熟悉 [dapps](/dapps/) 和 [DeFi](/defi/) 也很有帮助。 + +## MEV 提取 {#mev-extraction} + +从理论上讲,最大可提取价值完全属于验证者,因为他们是唯一可以保证执行有利可图的最大可提取价值机会的一方。 但实际上,大部分 MEV 是由称为“搜索人”的独立网络参与者提取的。 搜索人在区块链数据上运行复杂的算法来检测盈利的 MEV 机会,并且有机器人自动将这些盈利交易提交到网络。 + +无论如何,验证者确实会获得全部最大可提取价值金额的一部分,因为搜索者愿意支付高昂的燃料费用(这些费用将归验证者所有),以换取将其有利可图的交易纳入一个区块的更高可能性。 假定搜索人在经济上是合理的。搜索人愿意支付的燃料费将是 MEV 的 100% 的金额(因为如果燃料费更高,搜索人将亏钱)。 + +这样一来,对于一些竞争激烈的最大可提取价值机会,例如[去中心化交易所套利](#mev-examples-dex-arbitrage),搜索者可能不得不将其最大可提取价值总收入的 90% 甚至更多作为燃料费用支付向验证者,因为很多人都想进行同样有利可图的套利交易。 这是因为,确保套利交易运行的唯一方法是提交最高 gas 费用的交易。 + +### 燃料高尔夫 {#mev-extraction-gas-golfing} + +这种动态使得“燃料高尔夫”——编程交易——能够使用最少数量的燃料——这成为一种竞争优势。因为它允许搜索人设置较高的燃料价格,同时保持总燃料费不变(因为使用燃料费 = 燃料价格\* 燃料用量)。 + +一些著名的燃料高尔夫技术包括:使用用长串零开头的地址(如:[0x0000000000C521824EaFf97Eac7B73B084ef9306](https://etherscan.io/address/0x0000000000c521824eaff97eac7b73b084ef9306)),因为他们的需要的存储空间较少(因而燃料也减少);并留下很小 [ERC-20](/developers/docs/standards/tokens/erc-20/) 令牌余额在合约中,因为相比于更新储存插槽,初始化存储插槽需要更多的燃料(余额为 0 时)。 寻找如何更多的减少 gas 使用是搜索人在积极研究的一个领域。 + +### 通用领跑者 {#mev-extraction-generalized-frontrunners} + +一些搜索人并没有编写复杂的算法来检测盈利的 MEV 机会,而是运行通用的领跑者。 通用的领跑者是监控内存池以检测盈利交易的机器人。 领跑者将复制潜在的盈利交易代码,用领跑者的地址替换其地址。然后在本地执行交易,重复检查修改后的交易是否给领跑者地址带来利润。 如果交易确实有利可图,领跑者将以更替地址和更高的燃料价格提交修改后的交易。“领跑”原始交易并获取原始搜索人的 MEV。 + +### Flashbots {#mev-extraction-flashbots} + +Flashbots 是一个独立项目,它通过一项服务扩展执行客户端,该服务允许搜索者将最大可提取价值交易提交给验证者,而无需将它们透露给公共内存池。 这就防止了交易被通用领跑者领跑。 + +## MEV 相关案例 {#mev-examples} + +最大可提取价值以几种方式出现在区块链上。 + +### 去中心化交易所 (DEX) 套利 {#mev-examples-dex-arbitrage} + +[去中心化交易所](/glossary/#dex) (DEX) 套利是最简单和最著名的最大可提取价值机会。 因此,它也是竞争最激烈的。 + +它的作用原理就像这样:如果有两个去中心化交易所以两种不同的价格提供一种代币,有人可以通过一笔原子交易,在价格较低的去中心化交易所购买此代币,并在价格较高的去中心化交易所将其出售。 得益于区块链的机制,这是真实的无风险套利。 + +[这是一个有利可图的套利交易示例](https://etherscan.io/tx/0x5e1657ef0e9be9bc72efefe59a2528d0d730d478cfc9e6cdd09af9f997bb3ef4),在此交易中,一名搜索者利用以太币/DAI 对在 Uniswap 和 Sushiswap 的不同价格,将 1, 000 个以太币变成了 1,045 个以太币。 + +### 清算 {#mev-examples-liquidations} + +借贷协议清算提供了另一个众所周知的最大可提取价值机会。 + +Maker 和 Aave 等借贷协议要求用户存入一些抵押品(例如以太币)。 然后将这些存入的抵押品借出给其他用户。 + +然后,用户可以根据他们的需要从其他人那里借入资产和代币(例如,如果你想在 MakerDAO 治理提案中投票,你可以借用 MKR),最高可达他们所存抵押品的一定比例。 例如,如果借款金额不超过 30%,则将 100 DAI 存入协议的用户最多可以借入价值 30 DAI 的另一种资产。 该协议确定了确切的借款能力百分比。 + +随着借款人抵押品价值的波动,他们的借款能力也会波动。 如果由于市场波动,借入资产的价值超过其抵押品价值的 30%(同样,准确的百分比由协议确定,协议通常允许任何人清算抵押品,立即偿还贷款人(这类似于传统金融中的 [追加保证金通知](https://www.investopedia.com/terms/m/margincall.asp))。 如果清算,借款人通常必须支付大笔清算费,其中有些是流向变现人的——这是多 MEV 机会出现的地方。 + +搜索人竞相以最快的速度解析区块链数据,以确定哪些借款人可以被清算,并成为第一个提交清算交易并自行收取清算费的人。 + +### 夹心交易 {#mev-examples-sandwich-trading} + +夹心交易是另外一种 MEV 提取的常用方法。 + +为了实现夹心交易,搜索人会监视内存池内 DEX 的大额交易。 例如,有人想要在 Uniswap 上使用 DAI 购买 10,000 UNI。 这类大额交易会对 UNI/DAI 对产生重大的影响,可能会显着提高 UNI 相对于 DAI 的价格。 + +搜索人可以计算该大额交易对 UNI/DAI 对的大致价格影响,并在大额交易*之前*立即执行最优买单,低价买入 UNI,然后在大额交易*之后*立即执行卖单,以大额订单造成的更高价格卖出。 + +然而,夹心交易风险很高,因为它不是原子交易(不像上文所述的 DEX 套利),而且容易受到 [salmonella 攻击](https://github.com/Defi-Cartel/salmonella)。 + +### NFT MEV {#mev-examples-nfts} + +NFT 领域的 MEV 是一种新兴现象,而且不一定能赚钱。 + +然而,由于 NFT 交易发生在所有其他以太坊交易共享的同一个区块链上,搜寻者也可以在 NFT 市场上使用与传统 MEV 机会类似的技术。 + +例如,如果有一个流行的 NFT 下降,并且搜索者想要某个 NFT 或一组 NFT,他们可以写一个交易,使他们成为第一个排队购买 NFT 的人,或者他们可以在一个交易中购买整个 NFT 组合。 或者,如果一个 NFT 被[错误地以低价挂出](https://www.theblockcrypto.com/post/113546/mistake-sees-69000-cryptopunk-sold-for-less-than-a-cent),搜寻者就可以抢在其他购买者前面,低价抢购。 + +NFT MEV 的一个显著例子发生在一个搜寻者花费 700 万美元来[购买](https://etherscan.io/address/0x650dCdEB6ecF05aE3CAF30A70966E2F395d5E9E5)价格底线的每一个 Cryptopunk。 一位区块链研究员[在 Twitter](https://twitter.com/IvanBogatyy/status/1422232184493121538)上解释了买家是如何与 MEV 供应商合作以保持其购买的秘密。 + +### 长尾 {#mev-examples-long-tail} + +DEX 套利、清算和三明治交易都是非常知名的 MEV 机会,对于新的搜寻者来说不太可能获利。 然而,还有一长串鲜为人知的 MEV 机会(NFT MEV 可以说是这样一个机会)。 + +刚刚起步的搜索者可能会通过在这个长尾搜索 MEV 而找到更多的成功。 Flashbots 的[MEV 招聘板](https://github.com/flashbots/mev-job-board)列出了一些新兴的机会。 + +## MEV 的影响 {#effects-of-mev} + +MEV 并不都是坏事 - 以太坊的 MEV 既有积极的作用,也有消极的影响。 + +### 优点 {#effects-of-mev-the-good} + +许多 DeFi 项目依靠经济上的理性行为者,来确保其协议的有用性和稳定性。 例如,DEX 套利确保用户为他们的代币获得最好、最正确的价格,而借贷协议在借款人低于抵押率时依靠快速清算来确保贷款人得到回报。 + +如果没有理性的搜索者寻求和修复经济上的低效率,并利用协议的经济激励,DeFi 协议和一般的 dapps 可能不会像今天这样强大。 + +### 缺点 {#effects-of-mev-the-bad} + +在应用层,某些形式的 MEV,如夹心交易,会导致用户的体验明显变差。 被夹在中间的用户面临更高的滑点和更差的交易执行。 + +在网络层,一般的抢跑者和他们经常参与的矿工费拍卖(当两个或更多的先行者通过逐步提高自己交易的矿工费,从而使他们的交易被打包到下一个区块),导致网络拥堵和试图运行正常交易的其他人的高矿工费。 + +除了区块*内*发生的,MEV 也可能会在区块*间*产生有害的影响。 如果区块中可用的最大可提取价值大幅超过标准区块奖励,验证者可能会被激励重组区块并为自己捕获最大可提取价值,从而导致区块链重组和共识不稳定。 + +这种区块链重新组织的可能性已经[在以前的比特币区块链上探索过](https://dl.acm.org/doi/10.1145/2976749.2978408)。 随着比特币的区块奖励减半,交易费用占区块奖励的比例越来越大,于是出现了这样的情况:矿工放弃下一个区块的奖励,而用更高的费用重新开采过去的区块,这在经济上变得很合理。 随着 MEV 的发展,以太坊也可能出现同样的情况,威胁到区块链的完整性。 + +## MEV 的状况 {#state-of-mev} + +2021 年初,MEV 开采量剧增,导致今年前几个月的矿工费价格极高。 Flashbots 的 MEV 中继的出现,降低了普通抢跑者的效力,并将矿工费价格拍卖带出链外,降低了普通用户的矿工费。 + +虽然许多搜索者仍然从最大可提取价值赚到了很多钱,但随着机会变得越来越广为人知,越来越多的搜索者争夺相同的机会,验证者将获得越来越多的最大可提取价值总收入(因为如最初描述的相同类型的燃料拍卖也在 Flashbots 中发生,尽管是私下进行的,验证者将获得由此产生的燃料收入)。 MEV 也不是以太坊独有的,随着以太坊上的机会变得越来越有竞争力,搜索者正在转移到其他区块链,如 Binance Smart Chain,那里存在与以太坊上类似的 MEV 机会,但竞争更少。 + +另一方面,从工作量证明到权益证明的过渡以及当前利用卷叠和分片持续进行以太坊扩容的努力,都在给最大可提取价值的竞争格局带来目前尚不明朗的改变。 与工作量证明中的概率模型相比,预先知道有保证的区块提议者会如何改变最大可提取价值提取的发展变化,以及当[单一秘密领导人选举](https://ethresear.ch/t/secret-non-single-leader-election/11789)和[分布式验证者技术](https://github.com/ethereum/distributed-validator-specs)得到实现后会如何颠覆当前格局,目前尚未可知。 同样,当大多数用户活动迁离以太坊并转移至其二层网络卷叠和分片时,存在哪些最大可提取价值机会还有待观察。 + +## 以太坊权益证明 (PoS) 机制下的最大可提取价值 {#mev-in-ethereum-proof-of-stake} + +如上所述,最大可提取价值对用户综合体验和共识层安全性产生了不利影响。 但以太坊向权益证明共识的过渡(称为“合并”)还可能带来与最大可提取价值有关的新风险: + +### 验证者中心化 {#validator-centralization} + +在合并后的以太坊中,验证者(已经存入 32 个以太币作为保证金)就添加到信标链的区块的有效性达成共识。 由于 32 个以太币可能超出了许多人的能力范围,[加入质押池](/staking/pools/)也许是一种更可行的选择。 然而,[单独质押人](/staking/solo/)合理分布才是一种理想状态,因为它削弱了验证者的中心化并且提升了以太坊的安全性。 + +不过,最大可提取价值提取被认为能够加速验证者中心化。 部分原因是,由于验证者[在提出区块时收益要低于](/roadmap/merge/issuance/#how-the-merge-impacts-ETH-supply)当前矿工提出区块的收益,合并后最大可提取价值提取可能会显著[影响验证者的收益](https://github.com/flashbots/eth2-research/blob/main/notebooks/mev-in-eth2/eth2-mev-calc.ipynb)。 + +更大的质押池可能会有更多的资源投资进行必要的优化,以抓住最大可提取价值机会。 这些质押池提取的最大可提取价值越多,它们用来提升最大可提取价值提取能力(并增加总收入)的资源就越多,这在本质上形成了[规模经济](https://www.investopedia.com/terms/e/economiesofscale.asp#)。 + +由于可支配的资源较少,单独质押人可能无法从最大可提取价值机会中获利。 这种情况可能会增加独立验证者加入强大的质押池以提高收益的压力,从而削弱以太坊的去中心化。 + +### 许可内存池 {#permissioned-mempools} + +为了应对三明治攻击和抢先交易攻击,交易者可能会开始与验证者进行链下交易以确保交易隐私。 交易者将潜在的最大可提取价值交易直接发送给验证者而非公共内存池,验证者将交易添加到区块中并与交易者分配利润。 + +“暗池”扩展了这种模式,是一种只供访问的许可内存池,对愿意支付一定费用的用户开放。 这一趋势将弱化以太坊的无许可和免信任特性,并有可能将区块链转变成一种有利于最高出价者的“付费参与”机制。 + +许可内存池还会增加上一节中描述的中心化风险。 运行多个验证者的大型池可能会受益于为交易者和用户提供交易隐私,增加其最大可提取价值收入。 + +在合并后的以太坊中解决这些与最大可提取价值相关的问题是一个核心研究领域。 迄今为止,为了减少最大可提取价值对合并后以太坊去中心化和安全性的负面影响,提出了两种解决方案:**提议者-构建者分离 (PBS)** 和**构建者应用程序接口**。 + +### 提议者-构建者分离 {#proposer-builder-separation} + +在工作量证明和权益证明机制中,构建区块的节点面向参与共识的其他节点提出区块以将其添加到链中。 新区块在另一位矿工在其上构建区块(在工作量证明中)或从大多数验证者那里获得认证(在权益证明中)后,成为规范链的一部分。 + +区块生产者和区块提议者角色的合并造成了大多数前面描述的与最大可提取价值相关的问题。 例如,在时间盗贼攻击中,共识节点受到激励引发区块链重组,以最大限度增加最大可提取价值收入。 + +[提议者-构建者分离](https://ethresear.ch/t/proposer-block-builder-separation-friendly-fee-market-designs/9725) (PBS) 旨在减轻最大可提取价值的影响,尤其是对共识层的影响。 提议者-构建者分离的主要特点是区块生产者和区块提议者规则的分离。 验证者仍然负责提出区块并投票,但有一类新的特别实体(称为**区块构建者**),其任务是对交易排序和构建区块。 + +在提议者-构建者分离解决方案下,区块构建者创建一个交易包并出价将其包含在信标链区块中(作为“执行有效负载”)。 选中提出下一个区块的验证者随后查看不同的出价,并选择费用最高的交易包。 提议者-构建者分离实际上创建了一个拍卖市场,让构建者和出售区块空间的验证者谈判。 + +当前,提议者-构建者分离设计采用一种[提交-披露方案](https://gitcoin.co/blog/commit-reveal-scheme-on-ethereum/),即构建者仅发布对区块内容(区块头)的加密承诺及他们的出价。 在接受成交出价后,提议者创建一个包括区块头的签名区块提案。 区块构建者在看到签名区块提案后可能会发布整个区块体,并且它必须还要从验证者那里获得足够多的[认证](/glossary/#attestation)后才能最终确定区块。 + +#### 提议者-构建者分离如何减弱最大可提取价值的影响? {#how-does-pbs-curb-mev-impact} + +协议内的提议者-构建者分离将最大可提取价值提取从验证者权限范围内移除,降低了最大可提取价值对共识的影响。 相反,运行专用硬件的区块构建者将抓住出现的最大可提取价值机会。 + +不过,这并没有完全杜绝验证者与最大可提取价值有关的收入,因为构建者必须出高价才能让验证者接受他们的区块。 然而,由于验证者不再直接关注如何尽可能提高最大可提取价值收入,时间盗贼攻击的威胁降低了。 + +提议者-构建者分离也降低了最大可提取价值中心化的风险。 例如,使用提交-披露方案,构建者就无需信任验证者不会窃取最大可提取价值机会或将其暴露给其他构建者。 这就降低了单独质押人从最大可提取价值获益的门槛,否则,构建者将倾向于支持有着链下声誉的大型池并与它们进行链下交易。 + +同样,验证者不必信任构建者不会隐藏区块体或者发布无效区块,因为付款是无条件的。 即使提出的区块不可用或被其他验证者宣称无效,验证者的费用依然会支付。 在后一种情况下,区块被直接丢弃,迫使区块构建者失去所有交易费和最大可提取价值收入。 + +### 构建者应用程序接口 {#builder-api} + +虽然提议者-构建者分离有望减弱最大可提取价值提取的影响,但实现它需要对共识协议进行更改。 具体而言,需要更新信标链的[分叉选择](/developers/docs/consensus-mechanisms/pos/#fork-choice)规则。 [构建者应用程序接口](https://github.com/ethereum/builder-specs)是一种临时解决方案,旨在有效实现提议者-构建者分离,然而信任假设更高。 + +构建者应用程序接口是一种改良版的[引擎应用程序接口](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md),共识层客户端使用它向执行层客户端请求执行有效负载。 正如[诚实验证者规范](https://github.com/ethereum/consensus-specs/blob/dev/specs/bellatrix/validator.md)中所述,选中承担区块提出职责的验证者向连接的执行客户端请求交易包,并将交易包添加到提出的信标链区块中。 + +构建者应用程序接口还充当验证者和执行层客户端之间的中间件;不同之处是,它允许信标链上的验证者从外部实体获取区块(而不是使用执行客户端在本地构建区块)。 + +下面简述构建者应用程序接口如何运作: + +1. 构建者应用程序接口将验证者连接到由运行执行层客户端的区块构建者组成的网络。 与提议者-构建者分离一样,构建者专注于投资资源密集型区块构建活动,并利用不同的策略最大程度提高从最大可提取价值 + 优先费中赚取的收入。 + +2. 验证者(运行共识层客户端)向构建者网络请求执行有效负载及出价。 构建者的出价将包含执行有效负载标头(对有效负载内容的加密承诺)和向验证者支付的费用。 + +3. 验证者查看收到的出价并选择费用最高的执行有效负载。 使用构建者应用程序接口,验证者创建一个仅包括其签名和执行有效负载标头的“盲”信标区块提案并发送给构建者。 + +4. 在看到盲区块提案时,运行构建者应用程序接口的构建者可能会用完整的执行有效负载响应。 这样,验证者可以创建一个“已签名”信标区块并在整个网络中传播。 + +5. 如果区块构建者未能及时响应,使用构建者应用程序接口的验证者仍有可能在本地构建区块,这样他们就不会错过区块提出奖励。 然而,验证者不能使用当前披露的交易或另一个集合创建另一个区块,因为这相当于*模棱两可*(对同一时隙内的两个区块签名),这是一种可受到惩罚的恶行。 + +构建者应用程序接口的一个示例实现是 [MEV Boost](https://github.com/flashbots/mev-boost),它是对 [Flashbots 拍卖机制](https://docs.flashbots.net/Flashbots-auction/overview/)的改进,旨在抑制最大可提取价值在以太坊上的负面外部性。 Flashbots 拍卖允许工作量证明下的矿工将构建可获利区块的工作外包给专门的参与方,即**搜索者**。 + +搜索者寻找利润丰厚的最大可提取价值机会,并向矿工发送交易包以及[价格密封出价](https://en.wikipedia.org/wiki/First-price_sealed-bid_auction),以将交易包添加到区块中。 运行 mev-geth(go-ethereum (Geth) 客户端的分叉版本)的矿工只需要选择利润最高的交易包,并将其作为新区块的一部分开采。 为了避免矿工收到垃圾交易和无效交易,交易包先通过**中继者**验证然后在到达矿工处。 + +MEV Boost 运行机制与原来的 Flashbots 拍卖相同,但增加了一些针对以太坊向权益证明过渡的新功能。 搜索者仍然寻找有利润的交易以便添加到区块中,但一类新的名为**构建者**的专门参与方负责将交易聚合并打包到区块中。 构建者接受搜索者提供的价格密封出价,并进行优化以找到利润最大的排序。 + +中继者仍然负责验证交易包并将它们传送给提议者。 然而,MEV Boost 通过存储构建者发送的区块体和验证者发送的区块头,引入了负责提供[数据可用性](/developers/docs/data-availability/)的**托管**。 对于托管,连接到中继的验证者请求可用的执行有效负载,并使用 MEV Boost 的排序算法选择出价 + 最大可提取价值小费最高的有效负载标头。 + +#### 构建者应用程序接口如何减弱最大可提取价值的影响? {#how-does-builder-api-curb-mev-impact} + +构建者应用程序接口的核心优势在于,它有可能让参与者平等获得最大可提取价值机会。 使用提交-披露方案消除了信任假设,降低了寻求从最大可提取价值中获益的验证者的进入门槛。 这应该可以减轻单独质押人加入大型质押池以提高最大可提取价值利润的压力。 + +构建者应用程序接口的广泛实现将鼓励区块构建者之间进行更激烈的竞争,这会增强抗审查能力。 验证者审查多个构建者的出价时,有意审查一笔或多笔用户交易的构建者必须出价高于所有其他不审查的构建者才能成功。 这大大增加了审查用户的成本并对审查有所限制。 + +一些项目(如 MEV Boost)将构建者应用程序接口作为整体结构的一部分,旨在为某些参与方(例如试图避免抢先交易攻击或三明治攻击的交易者)提供交易隐私。 这是通过在用户和区块构建者之间提供一条私密通信通道来实现的。 与前面描述的许可内存池不同,这种方法是有益处的,原因如下: + +1. 市场上有多种构建者存在,使得审查变得不切实际,这是有利于用户的。 相比之下,基于信任的中心化暗池的存在将权力集中在少数区块构建者手中,增加了审查的可能性。 + +2. 构建者应用程序接口软件是开源的,允许任何人提供区块构建者服务。 这意味着用户不会被迫使用任何特定的区块构建者,并提高了以太坊的中立和无许可特性。 此外,寻求最大可提取价值的交易者不会由于使用私密交易渠道而无意中促进中心化。 + +## 相关资源 {#related-resources} + +- [Flashbots 文档](https://docs.flashbots.net/) +- [Flashbots GitHub](https://github.com/flashbots/pm) +- [MEV-Explore](https://explore.flashbots.net/) - _用于最大可提取价值交易的仪表板和实时交易浏览器_ +- [mevnot.org](https://www.mevboost.org/) - _可提供 MEV-Boost 中继和区块构建者实时统计数据的追踪器_ + +## 延伸阅读 {#further-reading} + +- [什么是 MEV?](https://blog.chain.link/what-is-miner-extractable-value-mev/) +- [MEV 和我](https://research.paradigm.xyz/MEV) +- [以太坊黑暗森林](https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest/) +- [逃离黑暗森林](https://samczsun.com/escaping-the-dark-forest/) +- [Flashbos:在 MEV 危机中抢跑](https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752) +- [@bertcmiller's MEV 评论](https://twitter.com/bertcmiller/status/1402665992422047747) +- [MEV-Boost:直接适用于合并的 Flashbots 架构](https://ethresear.ch/t/mev-boost-merge-ready-flashbots-architecture/11177) +- [什么是 MEV Boost](https://www.alchemy.com/overviews/mev-boost) +- [为什么运行 mev-boost?](https://writings.flashbots.net/writings/why-run-mevboost/) +- [以太坊漫游指南](https://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum) diff --git a/public/content/translations/zh/developers/docs/networking-layer/index.md b/public/content/translations/zh/developers/docs/networking-layer/index.md new file mode 100644 index 00000000000..501a864ebaa --- /dev/null +++ b/public/content/translations/zh/developers/docs/networking-layer/index.md @@ -0,0 +1,155 @@ +--- +title: 网络层 +description: 以太坊网络层简介。 +lang: zh +sidebarDepth: 2 +--- + +以太坊是一个由数千个节点组成的点对点网络,节点之间必须能够使用标准化协议相互通信。 “网络层”是使节点能够找到彼此并交换信息的协议栈。 可交换信息包括网络上的“广播”信息(一对多通信),以及特定节点之间的交换请求和答复(一对一通信)。 每个节点必须遵守特定的网络规则,以确保发送和接收正确的信息。 + +客户端软件由两部分组成(执行客户端和共识客户端),它们都具有各自的网络堆栈。 除了与其他以太坊节点进行通信外,执行客户端和共识客户端还必须互相通信。 本页介绍了用以实现这种通信的协议。 + +执行客户端通过执行层的点对点网络广播交易信息。 这需要经验证的对等点之间进行加密通信。 当一个验证者被选中来提议区块时,该节点本地交易池中的交易将会通过一个本地远程过程调用连接传递至共识客户端,然后再将其打包进信标区块。 之后,共识客户端将在它们的对等网络中广播信标区块。 广播过程需要两个独立的对等网络:一个连接执行客户端,负责交易的广播;另一个连接共识客户端,负责区块的广播。 + +## 前提条件 {#prerequisites} + +对以太坊[节点和客户端](/developers/docs/nodes-and-clients/)略有了解将有助于理解本文。 + +## 执行层 {#execution-layer} + +执行层的网络协议分为两个堆栈: + +- 发现堆栈:建立在用户数据报协议之上,并使新节点能够找到相应节点并连接 + +- DevP2P 堆栈:建立在传输控制协议之上,并使节点能够交换信息 + +这两个堆栈并行作用, 发现堆栈将新的网络参与者输送到网络中,DevP2P 则使它们进行交互。 + +### 发现 {#discovery} + +发现是在网络中寻找其他节点的过程。 该过程使用一小组引导节点(即地址[硬编码](https://github.com/ethereum/go-ethereum/blob/master/params/bootnodes.go)为客户端的节点,以便它们能被立即找到,并将客户端连接至对等点)进行引导。 这些引导节点旨在将新节点引入一组对等点,这是它们唯一的目的。它们不参与普通的客户端任务,例如同步链,仅在第一次使用客户端时使用。 + +节点与引导节点交互所使用的协议是 [Kademlia](https://medium.com/coinmonks/a-brief-overview-of-kademlia-and-its-use-in-various-decentralized-platforms-da08a7f72b8f) 的修改版,它使用[分布式散列表](https://en.wikipedia.org/wiki/Distributed_hash_table)共享节点列表。 每个节点都有一版此表格,其中包含连接到最近节点所需的信息。 这个“最近”不是指地理距离,而是由节点 ID 的相似性来界定的。 每个节点的表格都会定期刷新,作为一种安全特性。 例如,在 [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5) 中,发现协议节点也可以发送显示客户端支持的子协议的聚合发现服务,以便对等点协调通信所用的协议。 + +发现过程从 PING-PONG 游戏开始。 一个成功的 PING-PONG 将新节点“连接”到一个启动节点。 提醒引导节点有新节点进入网络的初始消息为 `PING`。 此 `PING` 包括关于新节点、引导节点和过期时间戳的哈希信息。 引导节点接收到 `PING` 返回 `PONG`,其中包含 `PING` 哈希值。 如果 `PING` 和 `PONG` 的哈希值相匹配,新节点和引导节点之间的连接就会得到验证,然后就认为它们已经“绑定”。 + +绑定之后,新节点即可向引导节点发送 `FIND-NEIGHBOURS` 请求。 引导节点返回的数据包含一个新节点可以连接的节点列表。 如果这两个节点没有绑定,`FIND-NEIGHBOURS` 请求将失败,新节点将无法进入网络。 + +新节点从引导节点收到邻居节点列表后,就会开始与每个邻居节点交换 PING-PONG。 成功的 PING-PONG 将新节点与邻居节点绑定在一起,以实现消息交换。 + +``` +启动客户端 --> 连接到 bootnode --> 绑定到 bootnode --> 寻找邻居--> 绑定到邻居。 +``` + +执行客户端目前使用 [Discv4](https://github.com/ethereum/devp2p/blob/master/discv4.md) 发现协议,并且正在积极迁移到 [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5) 协议。 + +#### ENR:以太坊节点记录 {#enr} + +[以太坊节点记录 (ENR)](/developers/docs/networking-layer/network-addresses/) 是一个包含三个基本元素的对象:签名(根据某种商定的身份识别方案创建的记录内容的散列)、跟踪记录更改的序号和键:值对的任意列表。 这种格式不会过时,使新对等点之间身份识别信息的交换更加容易,并且是以太坊节点的首选[网络地址](/developers/docs/networking-layer/network-addresses)格式。 + +#### 发现为什么建立在 UDP 协议上? {#why-udp} + +UDP 协议不支持任何错误检查、重新发送失败的数据包,或者动态地打开和关闭连接;相反,它只是将连续的信息流发送至目标,无论它们是否被对方成功接收。 这种最简化的功能会产生最少的连接开销,从而使这种连接非常迅速。 对于发现而言,如果某个节点只想让其它节点知道它的存在以便它与某个对等点建立正式的连接,UDP 协议就已经足够了。 然而,对网络协议栈的其余部分来说,UDP 协议就不那么合适了。 节点之间的信息交流相当复杂,因此需要一个功能更完善的协议来支持重新发送、错误检查等。 TCP 协议带来更多功能所产生的额外连接开销是值得的。 因此,对等网络协议栈中的大多数协议在 TCP 协议之上运行。 + +### DevP2P {#devp2p} + +DevP2P 本身就是以太坊为建立和维护对等网络而实施的一整套协议。 新节点进入网络后,它们的交互由 [DevP2P](https://github.com/ethereum/devp2p) 堆栈中的协议管控。 这些操作均基于传输控制协议,包括 RLPx 传输协议、线路协议和若干子协议。 [RLPx](https://github.com/ethereum/devp2p/blob/master/rlpx.md) 是管理启动、验证和维护节点之间会话的协议。 使用 RLP(递归长前缀)的 RLPx 对消息进行编码。递归长度前缀是一种非常节省空间的编码方法,可将数据编码成最小结构,以便在节点之间发送。 + +两个节点之间的 RLPx 会话始于初始的加密握手。 这需要节点发送身份验证消息,然后等待对方进行验证。 成功验证后,对方会生成身份确认信息,并将信息返回初始节点。 这是一个密钥交换过程,使节点能够私下安全地进行沟通。 成功的加密握手会触发两个节点“在线”互相发送“hello”消息。 线路协议则通过成功地交换“hello”信息发起。 + +Hello 消息包含: + +- 协议版本 +- 客戶端 ID +- 端口 +- 节点 ID +- 支持的子协议列表 + +成功交互需要这些信息,因为它们定义节点之间共享的能力并配置通信。 另外还有个子协议协调过程,届时会将每个节点支持的子协议列表进行对比,并能将两个节点共用的子协议用于会话。 + +除了“hello”消息之外,线路协议还可以发送一个“disconnect”消息,以警告对等点连接将被断开。 线路协议还包含定期发送的 PING 和 PONG 消息,以使会话保持开放。 因此,RLPx 和线路协议之间信息交换为节点之间的通信奠定了基础,并为根据特定子协议交换有用的信息提供了平台。 + +### 子协议 {#sub-protocols} + +#### 线路协议 {#wire-protocol} + +连接对等点并启动 RLPx 会话后,线路协议定义了对等点间的通信方式。 起初,线路协议定义了三项主要任务:链同步、区块传播和交易交换。 但是当以太坊切换至权益证明之后,区块传播和链同步变为共识层的一部分。 交易交换仍由执行客户端负责。 交易交换所指的是节点之间互相交换待处理的交易,以便矿工能够选择其中一些交易放到下一区块中。 有关这些任务的详细信息可从[这里](https://github.com/ethereum/devp2p/blob/master/caps/eth.md)获取。 支持这些子协议的客户端通过 [JSON-RPC](/developers/docs/apis/json-rpc/) 将自己公开给网络中的其它部分。 + +#### les(以太坊轻客户端子协议) {#les} + +这是用于同步轻量级客户端的最小协议。 传统上很少使用这一协议,因为全部节点都要求在没有任何奖励的情况下向轻量级客户端提供数据。 执行客户端的默认行为不是通过以太坊轻客户端子协议为轻量级客户端数据提供服务。 更多信息请见以太坊轻客户端子协议[规范](https://github.com/ethereum/devp2p/blob/master/caps/les.md)。 + +#### 快照 {#snap} + +[快照协议](https://github.com/ethereum/devp2p/blob/master/caps/snap.md#ethereum-snapshot-protocol-snap)是一种可选扩展,该扩展使对等点能够交换最近状态的快照,从而无需下载默克尔前缀树的内部节点就能验证帐户信息和存储的数据。 + +#### Wit(见证协议) {#wit} + +[见证协议](https://github.com/ethereum/devp2p/blob/master/caps/wit.md#ethereum-witness-protocol-wit)也是一种可选扩展,可以使对等点交换彼此的状态见证,从而帮助客户端与链端同步。 + +#### 耳语 {#whisper} + +耳语协议旨在实现对等节点之间的安全消息传输,无需向区块链写入任何信息。 它曾是 DevP2P 线路协议的一部分,但现在已经弃用。 其他[相关项目](https://wakunetwork.com/)也存在类似目标。 + +## 共识层 {#consensus-layer} + +共识客户端参与具有不同规范的单独对等网络。 共识客户端需要参与区块广播,以便它们可以从对等点接收新区块,并在轮到它们成为区块提议者时进行广播。 与执行层类似,此过程首先需要一个发现协议,以便节点可以找到对等节点并建立安全会话,以交换区块、认证等。 + +### 发现 {#consensus-discovery} + +与执行客户端类似,共识客户端使用基于用户数据报协议的 [discv5](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-discovery-domain-discv5) 寻找对等点。 Discv5 的共识层实现与执行客户端的不同之处仅在于它包含一个将 discv5 连接到 [libP2P](https://libp2p.io/) 堆栈的适配器,而且弃用了 DevP2P。 执行层的 RLPx 会话已被弃用,取而代之的是 libP2P 的噪声安全信道握手。 + +### 以太坊节点记录 {#consensus-enr} + +共识节点的以太坊节点记录包括节点的公钥、IP 地址、用户数据报协议和传输控制协议端口,以及两个共识特定字段:证明子网位字段和 `eth2` 密钥。 前者使节点更容易找到参与特定证明广播子网络的对等点。 `eth2` 密钥包含有关节点正在使用的以太坊分叉的版本信息,以确保对等点连接到正确的以太坊。 + +### libP2P {#libp2p} + +LibP2P 堆栈支持发现后的所有通信。 根据其以太坊节点记录的定义,客户端可以在 IPv4 和/或 IPv6 上拨号和收听。 LibP2P 层上的协议可以细分为广播和请求-响应域。 + +### 广播 {#gossip} + +广播域包括必须在整个网络中快速传播的所有信息。 这包括信标块、证明、认证、退出和罚没。 这是使用 libP2P gossipsub v1 传输的,并且依赖于在每个节点本地存储的各种元数据,包括要接收和传输的广播有效载荷的上限。 有关广播域的详细信息可在[此处](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-gossip-domain-gossipsub)找到。 + +### 请求-响应 {#request-response} + +请求-响应域包含客户端从其对等点请求特定信息的协议。 示例包括请求匹配某些根哈希值或在一定时隙范围内的特定信标块。 响应总是以快速压缩的简单序列化编码字节的形式返回。 + +## 为什么共识客户端更偏好简单序列化而不是递归长度前缀? {#ssz-vs-rlp} + +SSZ 代表简单序列化。 它使用固定偏移量,可以轻松解码编码消息的各个部分,而无需解码整个结构,这对于共识客户端非常有用,因为它可以有效地从编码消息中获取特定信息。 它还专门设计用于与默克尔协议集成,并提升与默克尔化有关的效率。 由于共识层中的所有哈希值都是默克尔树根,因此这带来了显著的改进。 简单序列化还保证了值的唯一表示。 + +## 连接执行客户端和共识客户端 {#connecting-clients} + +共识客户端和执行客户端同时运行。 它们需要彼此连接,这样共识客户端才能向执行客户端提供指令,后者也才能向前者传送需要纳入信标区块的交易捆绑包。 两个客户端之间的通信可通过本地远程过程调用连接实现。 名为[“引擎-API”](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md)的应用程序接口定义两个客户端之间发送的指令。 由于两个客户端共用同一个网络身份,因此它们也共享同一个以太坊节点记录 (ENR),其中包含了每个客户端单独的密钥(eth1 密钥和 eth2 密钥)。 + +下面显示了控制流摘要,括号中是相关的网络堆栈。 + +### 当共识客户端不是区块生产者时: + +- 共识客户端通过区块广播协议接收区块(共识对等网络) +- 共识客户端预先验证区块,即确保它来自具有正确元数据的有效发送人 +- 区块中的交易作为执行有效载荷发送到执行层(本地远程过程调用连接) +- 执行层执行交易并验证区块头中的状态(即检查哈希匹配度) +- 执行层将验证数据传回共识层,现认为区块已验证(本地远程过程调用连接) +- 共识层将区块添加到自己的区块链头并对其进行证明,通过网络广播认证(共识对等网络) + +### 当共识客户端是区块生产者时: + +- 共识客户端收到通知,指出它将成为下一个区块的生产者(共识对等网络) +- 共识层在执行客户端调用 `create block` 方法(本地远程过程调用) +- 执行层访问由交易广播协议填充的交易内存池(执行对等网络) +- 执行客户端将交易打包为一个区块、执行交易并生成一个区块哈希 +- 共识客户端从执行客户端获取交易和区块哈希,并将它们加入信标区块(本地远程过程调用) +- 共识客户端通过区块广播协议广播区块(共识对等网络) +- 其他客户端通过区块广播协议接收提议的区块,并如上所述进行验证(共识对等网络) + +区块被足够多的验证者认证后,就会被添加到链头,经过合理化并最终确定。 + +![](cons_client_net_layer.png) ![](exe_client_net_layer.png) + +共识客户端和执行客户端的网络层示意图,取自 [ethresear.ch](https://ethresear.ch/t/eth1-eth2-client-relationship/7248) + +## 延伸阅读 {#further-reading} + +[DevP2P](https://github.com/ethereum/devp2p) [LibP2p](https://github.com/libp2p/specs) [共识层网络规范](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#enr-structure) [kademlia 至 discv5](https://vac.dev/kademlia-to-discv5) [kademlia 论文](https://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf) [以太坊对等网络简介](https://p2p.paris/en/talks/intro-ethereum-networking/) [以太坊 1/以太坊 2 的关系](http://ethresear.ch/t/eth1-eth2-client-relationship/7248) [合并和以太坊 2 客户端详情视频](https://www.youtube.com/watch?v=zNIrIninMgg) diff --git a/src/content/translations/zh/developers/docs/networking-layer/network-addresses/index.md b/public/content/translations/zh/developers/docs/networking-layer/network-addresses/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/networking-layer/network-addresses/index.md rename to public/content/translations/zh/developers/docs/networking-layer/network-addresses/index.md diff --git a/src/content/translations/zh/developers/docs/networks/index.md b/public/content/translations/zh/developers/docs/networks/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/networks/index.md rename to public/content/translations/zh/developers/docs/networks/index.md diff --git a/src/content/translations/zh/developers/docs/nodes-and-clients/archive-nodes/index.md b/public/content/translations/zh/developers/docs/nodes-and-clients/archive-nodes/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/nodes-and-clients/archive-nodes/index.md rename to public/content/translations/zh/developers/docs/nodes-and-clients/archive-nodes/index.md diff --git a/src/content/translations/zh/developers/docs/nodes-and-clients/bootnodes/index.md b/public/content/translations/zh/developers/docs/nodes-and-clients/bootnodes/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/nodes-and-clients/bootnodes/index.md rename to public/content/translations/zh/developers/docs/nodes-and-clients/bootnodes/index.md diff --git a/src/content/translations/zh/developers/docs/nodes-and-clients/client-diversity/index.md b/public/content/translations/zh/developers/docs/nodes-and-clients/client-diversity/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/nodes-and-clients/client-diversity/index.md rename to public/content/translations/zh/developers/docs/nodes-and-clients/client-diversity/index.md diff --git a/src/content/translations/zh/developers/docs/nodes-and-clients/index.md b/public/content/translations/zh/developers/docs/nodes-and-clients/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/nodes-and-clients/index.md rename to public/content/translations/zh/developers/docs/nodes-and-clients/index.md diff --git a/src/content/translations/zh/developers/docs/nodes-and-clients/light-clients/index.md b/public/content/translations/zh/developers/docs/nodes-and-clients/light-clients/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/nodes-and-clients/light-clients/index.md rename to public/content/translations/zh/developers/docs/nodes-and-clients/light-clients/index.md diff --git a/src/content/translations/zh/developers/docs/nodes-and-clients/node-architecture/index.md b/public/content/translations/zh/developers/docs/nodes-and-clients/node-architecture/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/nodes-and-clients/node-architecture/index.md rename to public/content/translations/zh/developers/docs/nodes-and-clients/node-architecture/index.md diff --git a/src/content/translations/zh/developers/docs/nodes-and-clients/nodes-as-a-service/index.md b/public/content/translations/zh/developers/docs/nodes-and-clients/nodes-as-a-service/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/nodes-and-clients/nodes-as-a-service/index.md rename to public/content/translations/zh/developers/docs/nodes-and-clients/nodes-as-a-service/index.md diff --git a/src/content/translations/zh/developers/docs/nodes-and-clients/run-a-node/index.md b/public/content/translations/zh/developers/docs/nodes-and-clients/run-a-node/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/nodes-and-clients/run-a-node/index.md rename to public/content/translations/zh/developers/docs/nodes-and-clients/run-a-node/index.md diff --git a/src/content/translations/zh/developers/docs/oracles/index.md b/public/content/translations/zh/developers/docs/oracles/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/oracles/index.md rename to public/content/translations/zh/developers/docs/oracles/index.md diff --git a/src/content/translations/zh/developers/docs/programming-languages/dart/index.md b/public/content/translations/zh/developers/docs/programming-languages/dart/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/programming-languages/dart/index.md rename to public/content/translations/zh/developers/docs/programming-languages/dart/index.md diff --git a/src/content/translations/zh/developers/docs/programming-languages/delphi/index.md b/public/content/translations/zh/developers/docs/programming-languages/delphi/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/programming-languages/delphi/index.md rename to public/content/translations/zh/developers/docs/programming-languages/delphi/index.md diff --git a/src/content/translations/zh/developers/docs/programming-languages/dot-net/index.md b/public/content/translations/zh/developers/docs/programming-languages/dot-net/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/programming-languages/dot-net/index.md rename to public/content/translations/zh/developers/docs/programming-languages/dot-net/index.md diff --git a/src/content/translations/zh/developers/docs/programming-languages/golang/index.md b/public/content/translations/zh/developers/docs/programming-languages/golang/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/programming-languages/golang/index.md rename to public/content/translations/zh/developers/docs/programming-languages/golang/index.md diff --git a/src/content/translations/zh/developers/docs/programming-languages/index.md b/public/content/translations/zh/developers/docs/programming-languages/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/programming-languages/index.md rename to public/content/translations/zh/developers/docs/programming-languages/index.md diff --git a/src/content/translations/zh/developers/docs/programming-languages/java/index.md b/public/content/translations/zh/developers/docs/programming-languages/java/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/programming-languages/java/index.md rename to public/content/translations/zh/developers/docs/programming-languages/java/index.md diff --git a/src/content/translations/zh/developers/docs/programming-languages/javascript/index.md b/public/content/translations/zh/developers/docs/programming-languages/javascript/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/programming-languages/javascript/index.md rename to public/content/translations/zh/developers/docs/programming-languages/javascript/index.md diff --git a/src/content/translations/zh/developers/docs/programming-languages/python/index.md b/public/content/translations/zh/developers/docs/programming-languages/python/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/programming-languages/python/index.md rename to public/content/translations/zh/developers/docs/programming-languages/python/index.md diff --git a/src/content/translations/zh/developers/docs/programming-languages/ruby/index.md b/public/content/translations/zh/developers/docs/programming-languages/ruby/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/programming-languages/ruby/index.md rename to public/content/translations/zh/developers/docs/programming-languages/ruby/index.md diff --git a/src/content/translations/zh/developers/docs/programming-languages/rust/index.md b/public/content/translations/zh/developers/docs/programming-languages/rust/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/programming-languages/rust/index.md rename to public/content/translations/zh/developers/docs/programming-languages/rust/index.md diff --git a/src/content/translations/zh/developers/docs/scaling/index.md b/public/content/translations/zh/developers/docs/scaling/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/scaling/index.md rename to public/content/translations/zh/developers/docs/scaling/index.md diff --git a/src/content/translations/zh/developers/docs/scaling/optimistic-rollups/index.md b/public/content/translations/zh/developers/docs/scaling/optimistic-rollups/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/scaling/optimistic-rollups/index.md rename to public/content/translations/zh/developers/docs/scaling/optimistic-rollups/index.md diff --git a/src/content/translations/zh/developers/docs/scaling/plasma/index.md b/public/content/translations/zh/developers/docs/scaling/plasma/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/scaling/plasma/index.md rename to public/content/translations/zh/developers/docs/scaling/plasma/index.md diff --git a/src/content/translations/zh/developers/docs/scaling/sidechains/index.md b/public/content/translations/zh/developers/docs/scaling/sidechains/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/scaling/sidechains/index.md rename to public/content/translations/zh/developers/docs/scaling/sidechains/index.md diff --git a/src/content/translations/zh/developers/docs/scaling/state-channels/index.md b/public/content/translations/zh/developers/docs/scaling/state-channels/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/scaling/state-channels/index.md rename to public/content/translations/zh/developers/docs/scaling/state-channels/index.md diff --git a/src/content/translations/zh/developers/docs/scaling/validium/index.md b/public/content/translations/zh/developers/docs/scaling/validium/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/scaling/validium/index.md rename to public/content/translations/zh/developers/docs/scaling/validium/index.md diff --git a/src/content/translations/zh/developers/docs/scaling/zk-rollups/index.md b/public/content/translations/zh/developers/docs/scaling/zk-rollups/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/scaling/zk-rollups/index.md rename to public/content/translations/zh/developers/docs/scaling/zk-rollups/index.md diff --git a/src/content/translations/zh/developers/docs/security/index.md b/public/content/translations/zh/developers/docs/security/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/security/index.md rename to public/content/translations/zh/developers/docs/security/index.md diff --git a/public/content/translations/zh/developers/docs/smart-contracts/anatomy/index.md b/public/content/translations/zh/developers/docs/smart-contracts/anatomy/index.md new file mode 100644 index 00000000000..c8d6f64f690 --- /dev/null +++ b/public/content/translations/zh/developers/docs/smart-contracts/anatomy/index.md @@ -0,0 +1,655 @@ +--- +title: 详解智能合约 +description: 深入解读智能合约:函数、数据和变量。 +lang: zh +--- + +智能合约是一种在以太坊某个地址上运行的程序。 它们是由数据和函数组成的,可以在收到交易时执行。 以下概述一个智能合约的组成。 + +## 前置要求 {#prerequisites} + +确保您已经先阅读了[智能合约](/developers/docs/smart-contracts/)。 本文档假设您已经熟悉某种编程语言,例如 JavaScript 或 Python。 + +## 数据 {#data} + +任何合约数据必须分配到一个位置:要么是`存储`,要么是`内存`。 在智能合约中修改存储消耗很大,因此您需要考虑数据在哪里存取。 + +### 存储 {#storage} + +持久性数据被称之为存储,由状态变量表示。 这些值被永久地存储在区块链上。 您需要声明一个类型,以便于合约在编译时可以跟踪它在区块链上需要多少存储。 + +```solidity +// Solidity example +contract SimpleStorage { + uint storedData; // State variable + // ... +} +``` + +```python +# Vyper example +storedData: int128 +``` + +如果用过面向对象编程语言,应该会熟悉大多数类型。 但如果是刚接触以太坊开发,则会发现 `address` 是一个新类型。 + +一个 `address` 类型可以容纳一个以太坊地址,相当于 20 个字节或 160 位。 它以十六进制的形式返回,前导是 0x。 + +其它类型包括: + +- 布尔 +- 整数(integer) +- 定点数(fixed point numbers) +- 固定大小的字节数组(fixed-size byte arrays) +- 动态大小的字节数组(dynamically-sized byte arrays) +- 有理数和整数常量(Rational and integer literals) +- 字符常量(String literals) +- 十六进制常量(Hexadecimal literals) +- 枚举(Enums) + +了解更多信息,请参阅文档: + +- [查看 Vyper 类型](https://vyper.readthedocs.io/en/v0.1.0-beta.6/types.html#value-types) +- [查看 Solidity 类型](https://solidity.readthedocs.io/en/latest/types.html#value-types) + +### 内存 {#memory} + +仅在合约函数执行期间存储的值被称为内存变量。 由于这些变量不是永久地存储在区块链上,所以它们的使用成本要低得多。 + +在 [Solidity 文档](https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html?highlight=memory#storage-memory-and-the-stack)中了解更多关于以太坊虚拟机如何存储数据(存储、内存和栈)。 + +### 环境变量 {#environment-variables} + +除了在自己合约上定义的变量之外,还有一些特殊的全局变量。 它们主要用于提供有关区块链或当前交易的信息。 + +示例: + +| **属性** | **状态变量** | **描述** | +| ----------------- | ------------ | ------------------------ | +| `block.timestamp` | uint256 | 当前区块的时间戳 | +| `msg.sender` | 地址 | 消息的发送者(当前调用) | + +## 函数 {#functions} + +用最简单的术语来说,函数可以获得信息或设置信息,以响应传入的交易。 + +有两种函数调用方式: + +- `internal` – 不会创建以太坊虚拟机调用 + - Internal 函数和状态变量只能在内部访问(只能在合约内部或者从其继承的合约内部访问)。 +- `external` – 会创建以太坊虚拟机调用 + - External 函数是合约接口的一部分,这意味着他可以被其它合约和交易调用。 一个 external 函数 `f` 不可以被内部调用(即 `f()` 不行,但 `this.f()` 可以)。 + +它们可以是 `public` 或 `private` + +- `public` 函数可以在合约内部调用或者通过消息在合约外部调用 +- `private` 函数仅在其被定义的合约内部可见,并且在该合约的派生合约中不可见。 + +函数和状态变量都可以被定义为 public 或 private + +下面是更新合约上一个状态变量的函数: + +```solidity +// Solidity example +function update_name(string value) public { + dapp_name = value; +} +``` + +- `string` 类型的参数 `value` 传入函数 `update_name` +- 函数声明为 `public`,意味着任何人都能访问它 +- 函数没有被声明为 `view`,因此它可以修改合约状态 + +### View 函数 {#view-functions} + +这些函数保证不会修改合约数据的状态。 常见的示例是 "getter" 函数 - 例如,它可以用于接收用户的余额。 + +```solidity +// Solidity 示例 +function balanceOf(address _owner) public view returns (uint256 _balance) { + return ownerPizzaCount[_owner]; +} +``` + +```python +dappName: public(string) + +@view +@public +def readName() -> string: + return dappName +``` + +这些操作被视为修改状态: + +1. 写入状态变量。 +2. [正在导出事件](https://solidity.readthedocs.io/en/v0.7.0/contracts.html#events)。 +3. [创建其它合约](https://solidity.readthedocs.io/en/v0.7.0/control-structures.html#creating-contracts)。 +4. 使用 `selfdestruct`。 +5. 通过调用发送 ether。 +6. 调用任何未标记为 `view` 或 `pure` 的函数。 +7. 使用底层调用。 +8. 使用包含某些操作码的内联程序组。 + +### 构造函数 {#constructor-functions} + +`constructor` 函数只在首次部署合约时执行一次。 与许多基于类的编程语言中的 `constructor` 函数类似,这些函数常将状态变量初始化到指定的值。 + +```solidity +// Solidity 示例 +// 初始化合约数据,设置 `owner`为合约的创建者。 +constructor() public { + // 所有智能合约依赖外部交易来触发其函数。 + // `msg` 是一个全局变量,包含了给定交易的相关数据, + // 例如发送者的地址和交易中包含的 ETH 数量。 + // 了解更多:https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties + owner = msg.sender; +} +``` + +```python +# Vyper 示例 + +@external +def __init__(_beneficiary: address, _bidding_time: uint256): + self.beneficiary = _beneficiary + self.auctionStart = block.timestamp + self.auctionEnd = self.auctionStart + _bidding_time +``` + +### 内置函数 {#built-in-functions} + +除了自己在合约中定义的变量和函数外,还有一些特殊的内置函数。 最明显的例子是: + +- `address.send()` – Solidity +- `send(address)` – Vyper + +这使合约可以发送以太币给其它帐户。 + +## 编写函数 {#writing-functions} + +您的函数需要: + +- 参数变量及其类型(如果它接受参数) +- 声明为 internal/external +- 声明为 pure/view/payable +- 返回类型(如果它返回值) + +```solidity +pragma solidity >=0.4.0 <=0.6.0; + +contract ExampleDapp { + string dapp_name; // state variable + + // Called when the contract is deployed and initializes the value + constructor() public { + dapp_name = "My Example dapp"; + } + + // Get Function + function read_name() public view returns(string) { + return dapp_name; + } + + // Set Function + function update_name(string value) public { + dapp_name = value; + } +} +``` + +一个完整的合约可能就是这样。 在这里,`constructor` 函数为 `dapp_name` 变量提供了初始化值。 + +## 事件和日志 {#events-and-logs} + +事件可以让您通过前端或其它订阅应用与您的智能合约通信。 当交易被挖矿执行时,智能合约可以触发事件并且将日志写入区块链,然后前端可以进行处理。 + +## 附带说明的例子 {#annotated-examples} + +这是一些用 Solidity 写的例子。 如果希望运行这些代码,您可以在 [Remix](http://remix.ethereum.org) 中调试。 + +### Hello world {#hello-world} + +```solidity +// Specifies the version of Solidity, using semantic versioning. +// 了解更多:https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma +pragma solidity ^0.5.10; + +// 定义合约名称 `HelloWorld`。 +// 一个合约是函数和数据(其状态)的集合。 +// 一旦部署,合约就会留在以太坊区块链的一个特定地址上。 +// 了解更多: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html +contract HelloWorld { + + // 定义`string`类型变量 `message` + // 状态变量是其值永久存储在合约存储中的变量。 + // 关键字 `public` 使得可以从合约外部访问。 + // 并创建了一个其它合约或客户端可以调用访问该值的函数。 + string public message; + + // 类似于很多基于类的面向对象语言, + // 构造函数是仅在合约创建时执行的特殊函数。 + // 构造器用于初始化合约的数据。 + // 了解更多:https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constructors + constructor(string memory initMessage) public { + // 接受一个字符变量 `initMessage` + // 并为合约的存储变量`message` 赋值 + message = initMessage; + } + + // 一个 public 函数接受字符参数并更新存储变量 `message` + function update(string memory newMessage) public { + message = newMessage; + } +} +``` + +### 代币(Token) {#token} + +```solidity +pragma solidity ^0.5.10; + +contract Token { + // 一个 `address` 类比于邮件地址 - 它用来识别以太坊的一个帐户。 + // 地址可以代表一个智能合约或一个外部(用户)帐户。 + // 了解更多:https://solidity.readthedocs.io/en/v0.5.10/types.html#address + address public owner; + + // `mapping` 是一个哈希表数据结构。 + // 此 `mapping` 将一个无符号整数(代币余额)分配给地址(代币持有者)。 + // 了解更多: https://solidity.readthedocs.io/en/v0.5.10/types.html#mapping-types + mapping (address => uint) public balances; + + // 事件允许在区块链上记录活动。 + // 以太坊客户端可以监听事件,以便对合约状态更改作出反应。 + // 了解更多: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#events + event Transfer(address from, address to, uint amount); + + // 初始化合约数据,设置 `owner`为合约创建者的地址。 + constructor() public { + // 所有智能合约依赖外部交易来触发其函数。 + // `msg` 是一个全局变量,包含了给定交易的相关数据, + // 例如发送者的地址和包含在交易中的 ETH 数量。 + // 了解更多:https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties + owner = msg.sender; + } + + // 创建一些新代币并发送给一个地址。 + function mint(address receiver, uint amount) public { + // `require` 是一个用于强制执行某些条件的控制结构。 + // 如果 `require` 的条件为 `false`,则异常被触发, + // 所有在当前调用中对状态的更改将被还原。 + // 学习更多: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions + + // 只有合约创建人可以调用这个函数 + require(msg.sender == owner, "You are not the owner."); + + // 强制执行代币的最大数量 + require(amount < 1e60, "Maximum issuance exceeded"); + + // 将 "收款人"的余额增加"金额" + balances[receiver] += amount; + } + + // 从任何调用者那里发送一定数量的代币到一个地址。 + function transfer(address receiver, uint amount) public { + // 发送者必须有足够数量的代币用于发送 + require(amount <= balances[msg.sender], "Insufficient balance."); + + // 调整两个帐户的余额 + balances[msg.sender] -= amount; + balances[receiver] += amount; + + // 触发之前定义的事件。 + emit Transfer(msg.sender, receiver, amount); + } +} +``` + +### 唯一的数字资产 {#unique-digital-asset} + +```solidity +pragma solidity ^0.5.10; + +// 从其它文件向当前合约中导入符号。 +// 本例使用一系列来自 OpenZeppelin 的辅助合约。 +// 了解更多:https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#importing-other-source-files + +import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; +import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; +import "../node_modules/@openzeppelin/contracts/introspection/ERC165.sol"; +import "../node_modules/@openzeppelin/contracts/math/SafeMath.sol"; + +// `is` 关键字用于从其它外部合约继承函数和关键字。 +// 本例中,`CryptoPizza` 继承 `IERC721` 和 `ERC165` 合约。 +// 了解更多:https://solidity.readthedocs.io/en/v0.5.10/contracts.html#inheritance +contract CryptoPizza is IERC721, ERC165 { + // 使用 OpenZeppelin's SafeMath 库来安全执行算数操作。 + // 了解更多:https://docs.openzeppelin.com/contracts/2.x/api/math#SafeMath + using SafeMath for uint256; + + // Solidity 语言中的常量状态变量与其他语言类似。 + // 但是必须用一个表达式为常量赋值,而这个表达式本身必须在编译时是一个常量。 + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constant-state-variables + uint256 constant dnaDigits = 10; + uint256 constant dnaModulus = 10 ** dnaDigits; + bytes4 private constant _ERC721_RECEIVED = 0x150b7a02; + + // Struct types let you define your own type + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#structs + struct Pizza { + string name; + uint256 dna; + } + + // Creates an empty array of Pizza structs + Pizza[] public pizzas; + + // Mapping from pizza ID to its owner's address + mapping(uint256 => address) public pizzaToOwner; + + // Mapping from owner's address to number of owned token + mapping(address => uint256) public ownerPizzaCount; + + // Mapping from token ID to approved address + mapping(uint256 => address) pizzaApprovals; + + // You can nest mappings, this example maps owner to operator approvals + mapping(address => mapping(address => bool)) private operatorApprovals; + + // Internal function to create a random Pizza from string (name) and DNA + function _createPizza(string memory _name, uint256 _dna) + // The `internal` keyword means this function is only visible + // within this contract and contracts that derive this contract + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#visibility-and-getters + internal + // `isUnique` is a function modifier that checks if the pizza already exists + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html#function-modifiers + isUnique(_name, _dna) + { + // Adds Pizza to array of Pizzas and get id + uint256 id = SafeMath.sub(pizzas.push(Pizza(_name, _dna)), 1); + + // Checks that Pizza owner is the same as current user + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions + + // note that address(0) is the zero address, + // indicating that pizza[id] is not yet allocated to a particular user. + + assert(pizzaToOwner[id] == address(0)); + + // Maps the Pizza to the owner + pizzaToOwner[id] = msg.sender; + ownerPizzaCount[msg.sender] = SafeMath.add( + ownerPizzaCount[msg.sender], + 1 + ); + } + + // Creates a random Pizza from string (name) + function createRandomPizza(string memory _name) public { + uint256 randDna = generateRandomDna(_name, msg.sender); + _createPizza(_name, randDna); + } + + // Generates random DNA from string (name) and address of the owner (creator) + function generateRandomDna(string memory _str, address _owner) + public + // Functions marked as `pure` promise not to read from or modify the state + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#pure-functions + pure + returns (uint256) + { + // Generates random uint from string (name) + address (owner) + uint256 rand = uint256(keccak256(abi.encodePacked(_str))) + + uint256(_owner); + rand = rand % dnaModulus; + return rand; + } + + // Returns array of Pizzas found by owner + function getPizzasByOwner(address _owner) + public + // Functions marked as `view` promise not to modify state + // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#view-functions + view + returns (uint256[] memory) + { + // Uses the `memory` storage location to store values only for the + // lifecycle of this function call. + // 了解更多:https://solidity.readthedocs.io/en/v0.5.10/introduction-to-smart-contracts.html#storage-memory-and-the-stack + uint256[] memory result = new uint256[](ownerPizzaCount[_owner]); + uint256 counter = 0; + for (uint256 i = 0; i < pizzas.length; i++) { + if (pizzaToOwner[i] == _owner) { + result[counter] = i; + counter++; + } + } + return result; + } + + // 转移 Pizza 和归属关系到其它地址 + function transferFrom(address _from, address _to, uint256 _pizzaId) public { + require(_from != address(0) && _to != address(0), "Invalid address."); + require(_exists(_pizzaId), "Pizza does not exist."); + require(_from != _to, "Cannot transfer to the same address."); + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + + ownerPizzaCount[_to] = SafeMath.add(ownerPizzaCount[_to], 1); + ownerPizzaCount[_from] = SafeMath.sub(ownerPizzaCount[_from], 1); + pizzaToOwner[_pizzaId] = _to; + + // 触发继承自 IERC721 合约中定义的事件。 + emit Transfer(_from, _to, _pizzaId); + _clearApproval(_to, _pizzaId); + } + + /** + * 安全转账给定代币 ID 的所有权到其它地址 + * 如果目标地址是一个合约,则该合约必须实现 `onERC721Received`函数, + * 该函数调用了安全转账并且返回一个 magic value。 + * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; + * 否则,转账被回退。 + */ + function safeTransferFrom(address from, address to, uint256 pizzaId) + public + { + // solium-disable-next-line arg-overflow + this.safeTransferFrom(from, to, pizzaId, ""); + } + + /** + * 安全转账给定代币 ID 所有权到其它地址 + * 如果目标地址是一个合约,则该合约必须实现 `onERC721Received` 函数, + * 该函数调用安全转账并返回一个 magic value + * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; + * 否则,转账被回退。 + */ + function safeTransferFrom( + address from, + address to, + uint256 pizzaId, + bytes memory _data + ) public { + this.transferFrom(from, to, pizzaId); + require(_checkOnERC721Received(from, to, pizzaId, _data), "Must implement onERC721Received."); + } + + /** + * Internal function to invoke `onERC721Received` on a target address + * The call is not executed if the target address is not a contract + */ + function _checkOnERC721Received( + address from, + address to, + uint256 pizzaId, + bytes memory _data + ) internal returns (bool) { + if (!isContract(to)) { + return true; + } + + bytes4 retval = IERC721Receiver(to).onERC721Received( + msg.sender, + from, + pizzaId, + _data + ); + return (retval == _ERC721_RECEIVED); + } + + // Burns a Pizza - destroys Token completely + // The `external` function modifier means this function is + // part of the contract interface and other contracts can call it + function burn(uint256 _pizzaId) external { + require(msg.sender != address(0), "Invalid address."); + require(_exists(_pizzaId), "Pizza does not exist."); + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + + ownerPizzaCount[msg.sender] = SafeMath.sub( + ownerPizzaCount[msg.sender], + 1 + ); + pizzaToOwner[_pizzaId] = address(0); + } + + // Returns count of Pizzas by address + function balanceOf(address _owner) public view returns (uint256 _balance) { + return ownerPizzaCount[_owner]; + } + + // Returns owner of the Pizza found by id + function ownerOf(uint256 _pizzaId) public view returns (address _owner) { + address owner = pizzaToOwner[_pizzaId]; + require(owner != address(0), "Invalid Pizza ID."); + return owner; + } + + // Approves other address to transfer ownership of Pizza + function approve(address _to, uint256 _pizzaId) public { + require(msg.sender == pizzaToOwner[_pizzaId], "Must be the Pizza owner."); + pizzaApprovals[_pizzaId] = _to; + emit Approval(msg.sender, _to, _pizzaId); + } + + // Returns approved address for specific Pizza + function getApproved(uint256 _pizzaId) + public + view + returns (address operator) + { + require(_exists(_pizzaId), "Pizza does not exist."); + return pizzaApprovals[_pizzaId]; + } + + /** + * Private function to clear current approval of a given token ID + * Reverts if the given address is not indeed the owner of the token + */ + function _clearApproval(address owner, uint256 _pizzaId) private { + require(pizzaToOwner[_pizzaId] == owner, "Must be pizza owner."); + require(_exists(_pizzaId), "Pizza does not exist."); + if (pizzaApprovals[_pizzaId] != address(0)) { + pizzaApprovals[_pizzaId] = address(0); + } + } + + /* + * Sets or unsets the approval of a given operator + * An operator is allowed to transfer all tokens of the sender on their behalf + */ + function setApprovalForAll(address to, bool approved) public { + require(to != msg.sender, "Cannot approve own address"); + operatorApprovals[msg.sender][to] = approved; + emit ApprovalForAll(msg.sender, to, approved); + } + + // Tells whether an operator is approved by a given owner + function isApprovedForAll(address owner, address operator) + public + view + returns (bool) + { + return operatorApprovals[owner][operator]; + } + + // Takes ownership of Pizza - only for approved users + function takeOwnership(uint256 _pizzaId) public { + require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); + address owner = this.ownerOf(_pizzaId); + this.transferFrom(owner, msg.sender, _pizzaId); + } + + // Checks if Pizza exists + function _exists(uint256 pizzaId) internal view returns (bool) { + address owner = pizzaToOwner[pizzaId]; + return owner != address(0); + } + + // Checks if address is owner or is approved to transfer Pizza + function _isApprovedOrOwner(address spender, uint256 pizzaId) + internal + view + returns (bool) + { + address owner = pizzaToOwner[pizzaId]; + // Disable solium check because of + // https://github.com/duaraghav8/Solium/issues/175 + // solium-disable-next-line operator-whitespace + return (spender == owner || + this.getApproved(pizzaId) == spender || + this.isApprovedForAll(owner, spender)); + } + + // Check if Pizza is unique and doesn't exist yet + modifier isUnique(string memory _name, uint256 _dna) { + bool result = true; + for (uint256 i = 0; i < pizzas.length; i++) { + if ( + keccak256(abi.encodePacked(pizzas[i].name)) == + keccak256(abi.encodePacked(_name)) && + pizzas[i].dna == _dna + ) { + result = false; + } + } + require(result, "Pizza with such name already exists."); + _; + } + + // Returns whether the target address is a contract + function isContract(address account) internal view returns (bool) { + uint256 size; + // Currently there is no better way to check if there is a contract in an address + // than to check the size of the code at that address. + // See https://ethereum.stackexchange.com/a/14016/36603 + // for more details about how this works. + // TODO Check this again before the Serenity release, because all addresses will be + // contracts then. + // solium-disable-next-line security/no-inline-assembly + assembly { + size := extcodesize(account) + } + return size > 0; + } +} +``` + +## 延伸阅读 {#further-reading} + +查阅 Solidity 和 Vyper 文档,以获得关于智能合约的更完整概述: + +- [Solidity](https://solidity.readthedocs.io/) +- [Vyper](https://vyper.readthedocs.io/) + +## 相关主题 {#related-topics} + +- [智能合约](/developers/docs/smart-contracts/) +- [以太坊虚拟机](/developers/docs/evm/) + +## 相关教程 {#related-tutorials} + +- [减少合约大小以应对合约大小的限制](/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/) _– 一些减少智能合约大小的实用提示。_ +- [用事件记录智能合约的数据](/developers/tutorials/logging-events-smart-contracts/) _——对智能合约事件的介绍以及如何使用它们来记录数据。_ +- [在 Solidity 中与其它合约交互](/developers/tutorials/interact-with-other-contracts-from-solidity/) _——如何从现有合约中部署智能合约并与之交互。_ diff --git a/src/content/translations/zh/developers/docs/smart-contracts/compiling/index.md b/public/content/translations/zh/developers/docs/smart-contracts/compiling/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/smart-contracts/compiling/index.md rename to public/content/translations/zh/developers/docs/smart-contracts/compiling/index.md diff --git a/src/content/translations/zh/developers/docs/smart-contracts/composability/index.md b/public/content/translations/zh/developers/docs/smart-contracts/composability/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/smart-contracts/composability/index.md rename to public/content/translations/zh/developers/docs/smart-contracts/composability/index.md diff --git a/src/content/translations/zh/developers/docs/smart-contracts/deploying/index.md b/public/content/translations/zh/developers/docs/smart-contracts/deploying/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/smart-contracts/deploying/index.md rename to public/content/translations/zh/developers/docs/smart-contracts/deploying/index.md diff --git a/src/content/translations/zh/developers/docs/smart-contracts/formal-verification/index.md b/public/content/translations/zh/developers/docs/smart-contracts/formal-verification/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/smart-contracts/formal-verification/index.md rename to public/content/translations/zh/developers/docs/smart-contracts/formal-verification/index.md diff --git a/src/content/translations/zh/developers/docs/smart-contracts/index.md b/public/content/translations/zh/developers/docs/smart-contracts/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/smart-contracts/index.md rename to public/content/translations/zh/developers/docs/smart-contracts/index.md diff --git a/src/content/translations/zh/developers/docs/smart-contracts/languages/index.md b/public/content/translations/zh/developers/docs/smart-contracts/languages/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/smart-contracts/languages/index.md rename to public/content/translations/zh/developers/docs/smart-contracts/languages/index.md diff --git a/src/content/translations/zh/developers/docs/smart-contracts/libraries/index.md b/public/content/translations/zh/developers/docs/smart-contracts/libraries/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/smart-contracts/libraries/index.md rename to public/content/translations/zh/developers/docs/smart-contracts/libraries/index.md diff --git a/src/content/translations/zh/developers/docs/smart-contracts/security/index.md b/public/content/translations/zh/developers/docs/smart-contracts/security/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/smart-contracts/security/index.md rename to public/content/translations/zh/developers/docs/smart-contracts/security/index.md diff --git a/src/content/translations/zh/developers/docs/smart-contracts/testing/index.md b/public/content/translations/zh/developers/docs/smart-contracts/testing/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/smart-contracts/testing/index.md rename to public/content/translations/zh/developers/docs/smart-contracts/testing/index.md diff --git a/src/content/translations/zh/developers/docs/smart-contracts/upgrading/index.md b/public/content/translations/zh/developers/docs/smart-contracts/upgrading/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/smart-contracts/upgrading/index.md rename to public/content/translations/zh/developers/docs/smart-contracts/upgrading/index.md diff --git a/src/content/translations/zh/developers/docs/smart-contracts/verifying/index.md b/public/content/translations/zh/developers/docs/smart-contracts/verifying/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/smart-contracts/verifying/index.md rename to public/content/translations/zh/developers/docs/smart-contracts/verifying/index.md diff --git a/src/content/translations/zh/developers/docs/standards/index.md b/public/content/translations/zh/developers/docs/standards/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/standards/index.md rename to public/content/translations/zh/developers/docs/standards/index.md diff --git a/src/content/translations/zh/developers/docs/standards/tokens/erc-1155/index.md b/public/content/translations/zh/developers/docs/standards/tokens/erc-1155/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/standards/tokens/erc-1155/index.md rename to public/content/translations/zh/developers/docs/standards/tokens/erc-1155/index.md diff --git a/public/content/translations/zh/developers/docs/standards/tokens/erc-20/index.md b/public/content/translations/zh/developers/docs/standards/tokens/erc-20/index.md new file mode 100644 index 00000000000..9e8fdcb2c71 --- /dev/null +++ b/public/content/translations/zh/developers/docs/standards/tokens/erc-20/index.md @@ -0,0 +1,148 @@ +--- +title: ERC-20 代币标准 +description: +lang: zh +--- + +## 介绍 {#introduction} + +**什么叫做代币?** + +代币可以在以太坊中表示任何东西: + +- 在线平台中的信誉积分 +- 游戏中一个角色的技能 +- 彩票卷 +- 金融资产类似于公司股份的资产 +- 像美元一样的法定货币 +- 一盎司黄金 +- 及更多... + +以太坊的这种强大特点必须以强有力的标准来处理,对吗? 这正是 ERC-20 发挥其作用的地方! 此标准允许开发者构建可与其他产品和服务互相操作的代币应用程序。 + +**什么是 ERC-20?** + +ERC-20 提出了一个同质化代币的标准,换句话说,它们具有一种属性,使得每个代币都与另一个代币(在类型和价值上)完全相同。 例如,一个 ERC-20 代币就像以太币一样,意味着一个代币会并永远会与其他代币一样。 + +## 前提条件 {#prerequisites} + +- [帐户](/developers/docs/accounts) +- [智能合约](/developers/docs/smart-contracts/) +- [代币标准](/developers/docs/standards/tokens/) + +## 正文 {#body} + +ERC-20(以太坊意见征求 20)由 Fabian Vogelsteller 提出于 2015 年 11 月。这是一个能实现智能合约中代币的应用程序接口标准。 + +ERC-20 的功能示例包括: + +- 将代币从一个帐户转到另一个帐户 +- 获取帐户的当前代币余额 +- 获取网络上可用代币的总供应量 +- 批准一个帐户中一定的代币金额由第三方帐户使用 + +如果智能合约实施了下列方法和事件,它可以被称为 ERC-20 代币合约,一旦部署,将负责跟踪以太坊上创建的代币。 + +来自 [EIP-20](https://eips.ethereum.org/EIPS/eip-20): + +### 方法 {#methods} + +```solidity +function name() public view returns (string) +function symbol() public view returns (string) +function decimals() public view returns (uint8) +function totalSupply() public view returns (uint256) +function balanceOf(address _owner) public view returns (uint256 balance) +function transfer(address _to, uint256 _value) public returns (bool success) +function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) +function approve(address _spender, uint256 _value) public returns (bool success) +function allowance(address _owner, address _spender) public view returns (uint256 remaining) +``` + +### 事件 {#events} + +```solidity +event Transfer(address indexed _from, address indexed _to, uint256 _value) +event Approval(address indexed _owner, address indexed _spender, uint256 _value) +``` + +### 示例 {#web3py-example} + +让我们看看如此重要的一个标准是如何使我们能够简单地检查以太坊上的任何 ERC-20 代币合约。 我们只需要合约的应用程序二进制接口 (ABI) 来创造一个 ERC-20 代币界面。 下面我们将使用一个简化的应用程序二进制接口,让例子变得更为简单。 + +#### Web3.py 示例 {#web3py-example} + +首先,请确保您已安装 [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) Python 库: + +``` +pip install web3 +``` + +```python +from web3 import Web3 + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI +weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # Wrapped ether (WETH) + +acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11" # Uniswap V2: DAI 2 + +# This is a simplified Contract Application Binary Interface (ABI) of an ERC-20 Token Contract. +# It will expose only the methods: balanceOf(address), decimals(), symbol() and totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'decimals', + 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +dai_contract = w3.eth.contract(address=w3.to_checksum_address(dai_token_addr), abi=simplified_abi) +symbol = dai_contract.functions.symbol().call() +decimals = dai_contract.functions.decimals().call() +totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals +addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# DAI +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) + +weth_contract = w3.eth.contract(address=w3.to_checksum_address(weth_token_addr), abi=simplified_abi) +symbol = weth_contract.functions.symbol().call() +decimals = weth_contract.functions.decimals().call() +totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals +addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals + +# WETH +print("===== %s =====" % symbol) +print("Total Supply:", totalSupply) +print("Addr Balance:", addr_balance) +``` + +## 延伸阅读 {#further-reading} + +- [EIP-20:ERC-20 代币标准](https://eips.ethereum.org/EIPS/eip-20) +- [OpenZeppelin - 代币](https://docs.openzeppelin.com/contracts/3.x/tokens#ERC20) +- [OpenZeppelin - ERC-20 实施](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) diff --git a/src/content/translations/zh/developers/docs/standards/tokens/erc-4626/index.md b/public/content/translations/zh/developers/docs/standards/tokens/erc-4626/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/standards/tokens/erc-4626/index.md rename to public/content/translations/zh/developers/docs/standards/tokens/erc-4626/index.md diff --git a/public/content/translations/zh/developers/docs/standards/tokens/erc-721/index.md b/public/content/translations/zh/developers/docs/standards/tokens/erc-721/index.md new file mode 100644 index 00000000000..7976a4fe366 --- /dev/null +++ b/public/content/translations/zh/developers/docs/standards/tokens/erc-721/index.md @@ -0,0 +1,244 @@ +--- +title: ERC-721 非同质化代币标准 +description: +lang: zh +--- + +## 介绍 {#introduction} + +**什么是非同质化代币?** + +非同质化代币(NFT)用于以唯一的方式标识某人或者某物。 此类型的代币可以被完美地用于出售下列物品的平台:收藏品、密钥、彩票、音乐会座位编号、体育比赛等。 这种类型的代币有着惊人的潜力,因此它需要一个适当的标准。ERC-721 就是为解决这个问题而来! + +**ERC-721 是什么?** + +ERC-721 为 NFT 引入了一个标准,换言之,这种类型的代币是独一无二的,并且可能与来自同一智能合约的另一代币有不同的价值,也许是因为它的年份、稀有性、甚至是它的观感。 稍等,看起来怎么样呢? + +是的。 所有 NFTs 都有一个 `uint256` 变量,名为 `tokenId`,所以对于任何 ERC-721 合约,这对值`contract address, tokenId` 必须是全局唯一的。 也就是说,去中心化应用程序可以有一个“转换器”, 使用 `tokenId` 作为输入并输出一些很酷的事物图像,例如僵尸、武器、技能或神奇的小猫咪! + +## 前提条件 {#prerequisites} + +- [帐户](/developers/docs/accounts/) +- [智能合约](/developers/docs/smart-contracts/) +- [代币标准](/developers/docs/standards/tokens/) + +## 正文 {#body} + +ERC-721(Ethereum Request for Comments 721),由 William Entriken、Dieter Shirley、Jacob Evans、Nastassia Sachs 在 2018 年 1 月提出,是一个在智能合约中实现代币 API 的非同质化代币标准。 + +它提供了一些功能,例如将代币从一个帐户转移到另一个帐户,获取帐户的当前代币余额,获取代币的所有者,以及整个网络的可用代币总供应量。 除此之外,它还具有其他功能,例如批准帐户中一定数量的代币可以被第三方帐户转移。 + +如果一个智能合约实现了下列方法和事件,它就可以被称为 ERC-721 非同质化代币合约。 一旦被部署,它将负责跟踪在以太坊上创建的代币。 + +来自[ EIP-721 ](https://eips.ethereum.org/EIPS/eip-721): + +### 方法 {#methods} + +```solidity + function balanceOf(address _owner) external view returns (uint256); + function ownerOf(uint256 _tokenId) external view returns (address); + function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; + function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; + function transferFrom(address _from, address _to, uint256 _tokenId) external payable; + function approve(address _approved, uint256 _tokenId) external payable; + function setApprovalForAll(address _operator, bool _approved) external; + function getApproved(uint256 _tokenId) external view returns (address); + function isApprovedForAll(address _owner, address _operator) external view returns (bool); +``` + +### 事件 {#events} + +```solidity + event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); + event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); + event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); +``` + +### 示例 {#web3py-example} + +让我们看看一个标准是多么重要,它使我们能够简单地在以太坊上检查任何 ERC-721 代币合约。 我们只需要合约的应用程序二进制接口(ABI)就可以创造任何 ERC-721 代币的接口。 下面我们将使用一个简化的应用程序二进制接口,让例子变得更为简单。 + +#### Web3.py 示例 {#web3py-example} + +首先,请确保您已安装 [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) Python 库: + +``` +pip install web3 +``` + +```python +from web3 import Web3 +from web3._utils.events import get_event_data + + +w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) + +ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # CryptoKitties Contract + +acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # CryptoKitties Sales Auction + +# This is a simplified Contract Application Binary Interface (ABI) of an ERC-721 NFT Contract. +# It will expose only the methods: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply() +simplified_abi = [ + { + 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], + 'name': 'balanceOf', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'name', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'ownerOf', + 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'symbol', + 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [], + 'name': 'totalSupply', + 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], + 'stateMutability': 'view', 'type': 'function', 'constant': True + }, +] + +ck_extra_abi = [ + { + 'inputs': [], + 'name': 'pregnantKitties', + 'outputs': [{'name': '', 'type': 'uint256'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + }, + { + 'inputs': [{'name': '_kittyId', 'type': 'uint256'}], + 'name': 'isPregnant', + 'outputs': [{'name': '', 'type': 'bool'}], + 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True + } +] + +ck_contract = w3.eth.contract(address=w3.toChecksumAddress(ck_token_addr), abi=simplified_abi+ck_extra_abi) +name = ck_contract.functions.name().call() +symbol = ck_contract.functions.symbol().call() +kitties_auctions = ck_contract.functions.balanceOf(acc_address).call() +print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}") + +pregnant_kitties = ck_contract.functions.pregnantKitties().call() +print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}") + +# Using the Transfer Event ABI to get info about transferred Kitties. +tx_event_abi = { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'from', 'type': 'address'}, + {'indexed': False, 'name': 'to', 'type': 'address'}, + {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}], + 'name': 'Transfer', + 'type': 'event' +} + +# We need the event's signature to filter the logs +event_signature = w3.sha3(text="Transfer(address,address,uint256)").hex() + +logs = w3.eth.getLogs({ + "fromBlock": w3.eth.blockNumber - 120, + "address": w3.toChecksumAddress(ck_token_addr), + "topics": [event_signature] +}) + +# Notes: +# - 120 blocks is the max range for CloudFlare Provider +# - If you didn't find any Transfer event you can also try to get a tokenId at: +# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events +# Click to expand the event's logs and copy its "tokenId" argument + +recent_tx = [get_event_data(w3.codec, tx_event_abi, log)["args"] for log in logs] + +kitty_id = recent_tx[0]['tokenId'] # Paste the "tokenId" here from the link above +is_pregnant = ck_contract.functions.isPregnant(kitty_id).call() +print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}") +``` + +除了标准事件之外,CryptoKitties 合约还有其它一些有趣的事件。 + +让我们看看其中的两个,`Pregnant` 和 `Birth`。 + +```python +# Using the Pregnant and Birth Events ABI to get info about new Kitties. +ck_extra_events_abi = [ + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}], + 'name': 'Pregnant', + 'type': 'event' + }, + { + 'anonymous': False, + 'inputs': [ + {'indexed': False, 'name': 'owner', 'type': 'address'}, + {'indexed': False, 'name': 'kittyId', 'type': 'uint256'}, + {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, + {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, + {'indexed': False, 'name': 'genes', 'type': 'uint256'}], + 'name': 'Birth', + 'type': 'event' + }] + +# We need the event's signature to filter the logs +ck_event_signatures = [ + w3.sha3(text="Pregnant(address,uint256,uint256,uint256)").hex(), + w3.sha3(text="Birth(address,uint256,uint256,uint256,uint256)").hex(), +] + +# Here is a Pregnant Event: +# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog +pregnant_logs = w3.eth.getLogs({ + "fromBlock": w3.eth.blockNumber - 120, + "address": w3.toChecksumAddress(ck_token_addr), + "topics": [ck_event_signatures[0]] +}) + +recent_pregnants = [get_event_data(w3.codec, ck_extra_events_abi[0], log)["args"] for log in pregnant_logs] + +# Here is a Birth Event: +# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a +birth_logs = w3.eth.getLogs({ + "fromBlock": w3.eth.blockNumber - 120, + "address": w3.toChecksumAddress(ck_token_addr), + "topics": [ck_event_signatures[1]] +}) + +recent_births = [get_event_data(w3.codec, ck_extra_events_abi[1], log)["args"] for log in birth_logs] +``` + +## 热门的 NFT {#popular-nfts} + +- [Etherscan NFT Tracker](https://etherscan.io/tokens-nft) 列出了以太坊上交易量最大的 NFT。 +- [CryptoKitties](https://www.cryptokitties.co/) 是一个围绕着我们称之为加密猫的可繁殖、可收藏和可爱的生物游戏。 +- [Sorare](https://sorare.com/) 是一场全球迷幻足球赛,您可以在这里收集有限版本的收藏品,管理您的球队,参加比赛以获得奖品。 +- [以太坊域名服务 (ENS)](https://ens.domains/) 提供了一种安全和去中心化的方式,用人类可读的名字来处理链上和链下的资源。 +- [POAP](https://poap.xyz) 向参加事件或完成特定行动的人免费提供非同质化代币。 POAP 的创建和分发是免费的。 +- [Unstoppable Domains](https://unstoppabledomains.com/) 总部设在旧金山,是一家在区块链上创建域的公司。 区块链域将加密货币地址替换为人类可读的名称,并且可用于支持抗审查的网站。 +- [Gods Unchained Cards](https://godsunchained.com/) 是以太坊区块链上的一款集换式卡牌游戏,它使用非同质化代币来为游戏中的资产提供真实所有权。 +- [无聊猿游艇俱乐部](https://boredapeyachtclub.com)是一件由 10,000 个独一无二的非同质化代币构成的收藏品,也是一件非常罕见的艺术品,它作为俱乐部会员资格代币,可为成员提供多种特权和福利,而且在社区的努力下,这些特权和福利还会随着时间的推移不断增加。 + +## 延伸阅读 {#further-reading} + +- [EIP-721:ERC-721 非同质化代币标准](https://eips.ethereum.org/EIPS/eip-721) +- [OpenZeppelin - ERC-721 文档](https://docs.openzeppelin.com/contracts/3.x/erc721) +- [OpenZeppelin - ERC-721 实施](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) +- [Alchemy NFT API](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) diff --git a/src/content/translations/zh/developers/docs/standards/tokens/erc-777/index.md b/public/content/translations/zh/developers/docs/standards/tokens/erc-777/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/standards/tokens/erc-777/index.md rename to public/content/translations/zh/developers/docs/standards/tokens/erc-777/index.md diff --git a/src/content/translations/zh/developers/docs/standards/tokens/index.md b/public/content/translations/zh/developers/docs/standards/tokens/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/standards/tokens/index.md rename to public/content/translations/zh/developers/docs/standards/tokens/index.md diff --git a/src/content/translations/zh/developers/docs/storage/index.md b/public/content/translations/zh/developers/docs/storage/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/storage/index.md rename to public/content/translations/zh/developers/docs/storage/index.md diff --git a/src/content/translations/zh/developers/docs/transactions/gas-tx.png b/public/content/translations/zh/developers/docs/transactions/gas-tx.png similarity index 100% rename from src/content/translations/zh/developers/docs/transactions/gas-tx.png rename to public/content/translations/zh/developers/docs/transactions/gas-tx.png diff --git a/src/content/translations/zh/developers/docs/transactions/index.md b/public/content/translations/zh/developers/docs/transactions/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/transactions/index.md rename to public/content/translations/zh/developers/docs/transactions/index.md diff --git a/src/content/translations/zh/developers/docs/transactions/tx.png b/public/content/translations/zh/developers/docs/transactions/tx.png similarity index 100% rename from src/content/translations/zh/developers/docs/transactions/tx.png rename to public/content/translations/zh/developers/docs/transactions/tx.png diff --git a/src/content/translations/zh/developers/docs/web2-vs-web3/index.md b/public/content/translations/zh/developers/docs/web2-vs-web3/index.md similarity index 100% rename from src/content/translations/zh/developers/docs/web2-vs-web3/index.md rename to public/content/translations/zh/developers/docs/web2-vs-web3/index.md diff --git a/src/content/translations/zh/developers/tutorials/Waffle-hello-world-with-buidler-tutorial/index.md b/public/content/translations/zh/developers/tutorials/Waffle-hello-world-with-buidler-tutorial/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/Waffle-hello-world-with-buidler-tutorial/index.md rename to public/content/translations/zh/developers/tutorials/Waffle-hello-world-with-buidler-tutorial/index.md diff --git a/src/content/translations/zh/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md b/public/content/translations/zh/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md rename to public/content/translations/zh/developers/tutorials/a-developers-guide-to-ethereum-part-one/index.md diff --git a/src/content/translations/zh/developers/tutorials/calling-a-smart-contract-from-javascript/index.md b/public/content/translations/zh/developers/tutorials/calling-a-smart-contract-from-javascript/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/calling-a-smart-contract-from-javascript/index.md rename to public/content/translations/zh/developers/tutorials/calling-a-smart-contract-from-javascript/index.md diff --git a/src/content/translations/zh/developers/tutorials/create-and-deploy-a-defi-app/index.md b/public/content/translations/zh/developers/tutorials/create-and-deploy-a-defi-app/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/create-and-deploy-a-defi-app/index.md rename to public/content/translations/zh/developers/tutorials/create-and-deploy-a-defi-app/index.md diff --git a/src/content/translations/zh/developers/tutorials/deploying-your-first-smart-contract/index.md b/public/content/translations/zh/developers/tutorials/deploying-your-first-smart-contract/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/deploying-your-first-smart-contract/index.md rename to public/content/translations/zh/developers/tutorials/deploying-your-first-smart-contract/index.md diff --git a/src/content/translations/zh/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md b/public/content/translations/zh/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md rename to public/content/translations/zh/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/index.md diff --git a/src/content/translations/zh/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/zh/developers/tutorials/erc-721-vyper-annotated-code/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/erc-721-vyper-annotated-code/index.md rename to public/content/translations/zh/developers/tutorials/erc-721-vyper-annotated-code/index.md diff --git a/src/content/translations/zh/developers/tutorials/erc20-annotated-code/index.md b/public/content/translations/zh/developers/tutorials/erc20-annotated-code/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/erc20-annotated-code/index.md rename to public/content/translations/zh/developers/tutorials/erc20-annotated-code/index.md diff --git a/src/content/translations/zh/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md b/public/content/translations/zh/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md rename to public/content/translations/zh/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md diff --git a/src/content/translations/zh/developers/tutorials/guide-to-smart-contract-security-tools/index.md b/public/content/translations/zh/developers/tutorials/guide-to-smart-contract-security-tools/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/guide-to-smart-contract-security-tools/index.md rename to public/content/translations/zh/developers/tutorials/guide-to-smart-contract-security-tools/index.md diff --git a/src/content/translations/zh/developers/tutorials/hello-world-smart-contract/index.md b/public/content/translations/zh/developers/tutorials/hello-world-smart-contract/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/hello-world-smart-contract/index.md rename to public/content/translations/zh/developers/tutorials/hello-world-smart-contract/index.md diff --git a/src/content/translations/zh/developers/tutorials/how-to-implement-an-erc721-market/index.md b/public/content/translations/zh/developers/tutorials/how-to-implement-an-erc721-market/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/how-to-implement-an-erc721-market/index.md rename to public/content/translations/zh/developers/tutorials/how-to-implement-an-erc721-market/index.md diff --git a/src/content/translations/zh/developers/tutorials/how-to-mint-an-nft/index.md b/public/content/translations/zh/developers/tutorials/how-to-mint-an-nft/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/how-to-mint-an-nft/index.md rename to public/content/translations/zh/developers/tutorials/how-to-mint-an-nft/index.md diff --git a/src/content/translations/zh/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md b/public/content/translations/zh/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md rename to public/content/translations/zh/developers/tutorials/how-to-mock-solidity-contracts-for-testing/index.md diff --git a/src/content/translations/zh/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md b/public/content/translations/zh/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md rename to public/content/translations/zh/developers/tutorials/how-to-use-echidna-to-test-smart-contracts/index.md diff --git a/src/content/translations/zh/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md b/public/content/translations/zh/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md rename to public/content/translations/zh/developers/tutorials/how-to-use-manticore-to-find-smart-contract-bugs/index.md diff --git a/src/content/translations/zh/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md b/public/content/translations/zh/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md rename to public/content/translations/zh/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md diff --git a/src/content/translations/zh/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md b/public/content/translations/zh/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md rename to public/content/translations/zh/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md diff --git a/src/content/translations/zh/developers/tutorials/how-to-view-nft-in-metamask/index.md b/public/content/translations/zh/developers/tutorials/how-to-view-nft-in-metamask/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/how-to-view-nft-in-metamask/index.md rename to public/content/translations/zh/developers/tutorials/how-to-view-nft-in-metamask/index.md diff --git a/src/content/translations/zh/developers/tutorials/how-to-write-and-deploy-an-nft/index.md b/public/content/translations/zh/developers/tutorials/how-to-write-and-deploy-an-nft/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/how-to-write-and-deploy-an-nft/index.md rename to public/content/translations/zh/developers/tutorials/how-to-write-and-deploy-an-nft/index.md diff --git a/src/content/translations/zh/developers/tutorials/interact-with-other-contracts-from-solidity/index.md b/public/content/translations/zh/developers/tutorials/interact-with-other-contracts-from-solidity/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/interact-with-other-contracts-from-solidity/index.md rename to public/content/translations/zh/developers/tutorials/interact-with-other-contracts-from-solidity/index.md diff --git a/src/content/translations/zh/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md b/public/content/translations/zh/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md rename to public/content/translations/zh/developers/tutorials/kickstart-your-dapp-frontend-development-with-create-eth-app/index.md diff --git a/src/content/translations/zh/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md b/public/content/translations/zh/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md rename to public/content/translations/zh/developers/tutorials/learn-foundational-ethereum-topics-with-sql/index.md diff --git a/src/content/translations/zh/developers/tutorials/logging-events-smart-contracts/index.md b/public/content/translations/zh/developers/tutorials/logging-events-smart-contracts/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/logging-events-smart-contracts/index.md rename to public/content/translations/zh/developers/tutorials/logging-events-smart-contracts/index.md diff --git a/src/content/translations/zh/developers/tutorials/merkle-proofs-for-offline-data-integrity/index.md b/public/content/translations/zh/developers/tutorials/merkle-proofs-for-offline-data-integrity/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/merkle-proofs-for-offline-data-integrity/index.md rename to public/content/translations/zh/developers/tutorials/merkle-proofs-for-offline-data-integrity/index.md diff --git a/src/content/translations/zh/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md b/public/content/translations/zh/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md rename to public/content/translations/zh/developers/tutorials/monitoring-geth-with-influxdb-and-grafana/index.md diff --git a/src/content/translations/zh/developers/tutorials/nft-minter/index.md b/public/content/translations/zh/developers/tutorials/nft-minter/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/nft-minter/index.md rename to public/content/translations/zh/developers/tutorials/nft-minter/index.md diff --git a/src/content/translations/zh/developers/tutorials/optimism-std-bridge-annotated-code/index.md b/public/content/translations/zh/developers/tutorials/optimism-std-bridge-annotated-code/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/optimism-std-bridge-annotated-code/index.md rename to public/content/translations/zh/developers/tutorials/optimism-std-bridge-annotated-code/index.md diff --git a/src/content/translations/zh/developers/tutorials/reverse-engineering-a-contract/index.md b/public/content/translations/zh/developers/tutorials/reverse-engineering-a-contract/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/reverse-engineering-a-contract/index.md rename to public/content/translations/zh/developers/tutorials/reverse-engineering-a-contract/index.md diff --git a/src/content/translations/zh/developers/tutorials/run-light-node-geth/index.md b/public/content/translations/zh/developers/tutorials/run-light-node-geth/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/run-light-node-geth/index.md rename to public/content/translations/zh/developers/tutorials/run-light-node-geth/index.md diff --git a/src/content/translations/zh/developers/tutorials/run-node-raspberry-pi/index.md b/public/content/translations/zh/developers/tutorials/run-node-raspberry-pi/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/run-node-raspberry-pi/index.md rename to public/content/translations/zh/developers/tutorials/run-node-raspberry-pi/index.md diff --git a/src/content/translations/zh/developers/tutorials/secure-development-workflow/index.md b/public/content/translations/zh/developers/tutorials/secure-development-workflow/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/secure-development-workflow/index.md rename to public/content/translations/zh/developers/tutorials/secure-development-workflow/index.md diff --git a/src/content/translations/zh/developers/tutorials/send-token-ethersjs/index.md b/public/content/translations/zh/developers/tutorials/send-token-ethersjs/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/send-token-ethersjs/index.md rename to public/content/translations/zh/developers/tutorials/send-token-ethersjs/index.md diff --git a/src/content/translations/zh/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md b/public/content/translations/zh/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md rename to public/content/translations/zh/developers/tutorials/sending-transactions-using-web3-and-alchemy/index.md diff --git a/src/content/translations/zh/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md b/public/content/translations/zh/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md rename to public/content/translations/zh/developers/tutorials/set-up-web3js-to-use-ethereum-in-javascript/index.md diff --git a/src/content/translations/zh/developers/tutorials/short-abi/index.md b/public/content/translations/zh/developers/tutorials/short-abi/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/short-abi/index.md rename to public/content/translations/zh/developers/tutorials/short-abi/index.md diff --git a/src/content/translations/zh/developers/tutorials/smart-contract-security-guidelines/index.md b/public/content/translations/zh/developers/tutorials/smart-contract-security-guidelines/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/smart-contract-security-guidelines/index.md rename to public/content/translations/zh/developers/tutorials/smart-contract-security-guidelines/index.md diff --git a/src/content/translations/zh/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md b/public/content/translations/zh/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md rename to public/content/translations/zh/developers/tutorials/solidity-and-truffle-continuous-integration-setup/index.md diff --git a/src/content/translations/zh/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md b/public/content/translations/zh/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md rename to public/content/translations/zh/developers/tutorials/testing-erc-20-tokens-with-waffle/index.md diff --git a/src/content/translations/zh/developers/tutorials/testing-smart-contract-with-waffle/index.md b/public/content/translations/zh/developers/tutorials/testing-smart-contract-with-waffle/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/testing-smart-contract-with-waffle/index.md rename to public/content/translations/zh/developers/tutorials/testing-smart-contract-with-waffle/index.md diff --git a/src/content/translations/zh/developers/tutorials/the-graph-fixing-web3-data-querying/index.md b/public/content/translations/zh/developers/tutorials/the-graph-fixing-web3-data-querying/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/the-graph-fixing-web3-data-querying/index.md rename to public/content/translations/zh/developers/tutorials/the-graph-fixing-web3-data-querying/index.md diff --git a/src/content/translations/zh/developers/tutorials/token-integration-checklist/index.md b/public/content/translations/zh/developers/tutorials/token-integration-checklist/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/token-integration-checklist/index.md rename to public/content/translations/zh/developers/tutorials/token-integration-checklist/index.md diff --git a/src/content/translations/zh/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md b/public/content/translations/zh/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md rename to public/content/translations/zh/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md diff --git a/src/content/translations/zh/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md b/public/content/translations/zh/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md rename to public/content/translations/zh/developers/tutorials/understand-the-erc-20-token-smart-contract/index.md diff --git a/src/content/translations/zh/developers/tutorials/uniswap-v2-annotated-code/index.md b/public/content/translations/zh/developers/tutorials/uniswap-v2-annotated-code/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/uniswap-v2-annotated-code/index.md rename to public/content/translations/zh/developers/tutorials/uniswap-v2-annotated-code/index.md diff --git a/src/content/translations/zh/developers/tutorials/using-websockets/index.md b/public/content/translations/zh/developers/tutorials/using-websockets/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/using-websockets/index.md rename to public/content/translations/zh/developers/tutorials/using-websockets/index.md diff --git a/public/content/translations/zh/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md b/public/content/translations/zh/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md new file mode 100644 index 00000000000..4b4a658e11d --- /dev/null +++ b/public/content/translations/zh/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md @@ -0,0 +1,298 @@ +--- +title: "Waffle:动态模拟和测试合约调用" +description: 有关使用动态模拟和测试合约调用的高级Waffle教程 +author: "Daniel Izdebski" +tags: + - "waffle" + - "智能合约" + - "solidity" + - "测试" + - "模拟" +skill: intermediate +lang: zh +published: 2020-11-14 +--- + +## 本教程是关于什么的? {#what-is-this-tutorial-about} + +在本教程中,您将学习如何: + +- 使用动态模拟 +- 测试智能合约之间的交互 + +本文假定: + +- 您已经知道如何在`Solidity`中编写一个简单的智能合约 +- 您熟悉`JavaScript`和`TypeScript` +- 您已经完成其他`Waffle`教程或对其略知一二。 + +## 动态模拟 {#dynamic-mocking} + +为什么动态模拟有用? 它允许我们编写单元测试,而不是集成测试。 这是什么意思呢? 这意味着我们不必担心智能合约的依赖性,因此我们可以完全孤立地测试所有合约。 让我演示一下如何才能实现。 + +### **1. 项目** {#1-project} + +在开始之前,我们需要准备一个简单的 node.js 项目: + +```bash +mkdir dynamic-mocking +cd dynamic-mocking +mkdir contracts src + +yarn init +# or if you're using npm +npm init +``` + +让我们从添加类型脚本和测试依赖项开始-mocha & chai: + +```bash +yarn add --dev @types/chai @types/mocha chai mocha ts-node typescript +# or if you're using npm +npm install @types/chai @types/mocha chai mocha ts-node typescript --save-dev +``` + +现在让我们添加`Waffle`和`Ethers`: + +```bash +yarn add --dev ethereum-waffle ethers +# or if you're using npm +npm install ethereum-waffle ethers --save-dev +``` + +您的项目结构现在应该如下所示: + +``` +. +├── contracts +├── package.json +└── test +``` + +### **2. 智能合约** {#2-smart-contract} + +要开始动态模拟,我们需要一个包含依赖项的智能合约。 别担心,我会掩护您的! + +这是一个用`Solidity`编写的简单智能合约,其唯一目的是检查我们是否富有。 它使用 ERC20 通证来检查我们是否有足够的通证。 将其放在`./contracts/AmIRichAlready.sol`中。 + +```solidity +pragma solidity ^0.6.2; + +interface IERC20 { + function balanceOf(address account) external view returns (uint256); +} + +contract AmIRichAlready { + IERC20 private tokenContract; + uint public richness = 1000000 * 10 ** 18; + + constructor (IERC20 _tokenContract) public { + tokenContract = _tokenContract; + } + + function check() public view returns (bool) { + uint balance = tokenContract.balanceOf(msg.sender); + return balance > richness; + } +} +``` + +因为我们想使用动态模拟,所以我们不需要整个 ERC20,这就是为什么我们使用只有一个函数的 IERC20 接口的原因。 + +现在是构建这个合约的时候了! 为此,我们将使用`Waffle`。 首先,我们将创建一个简单的`waffle.json`配置文件,它指定了编译选项。 + +```json +{ + "compilerType": "solcjs", + "compilerVersion": "0.6.2", + "sourceDirectory": "./contracts", + "outputDirectory": "./build" +} +``` + +现在我们已经准备好使用 Waffer 构建合约: + +```bash +npx waffle +``` + +很简单,对吗? 在`build/`文件夹中,出现了与合约和接口相对应的两个文件。 我们稍后将使用它们进行测试。 + +### **3. 测试** {#3-testing} + +让我们创建一个名为`AmIRichAlready.test.ts`的文件来进行实际测试。 首先,我们必须处理导入。 我们稍后将需要它们: + +```typescript +import { expect, use } from "chai" +import { Contract, utils, Wallet } from "ethers" +import { + deployContract, + deployMockContract, + MockProvider, + solidity, +} from "ethereum-waffle" +``` + +除了 JS 依赖项,我们需要导入我们创建的合约和接口。 + +```typescript +import IERC20 from "../build/IERC20.json" +import AmIRichAlready from "../build/AmIRichAlready.json" +``` + +Waffle 使用`chai`进行测试。 然而,在我们使用它之前,我们必须将 Waffle 的匹配器注入到 chai 本身: + +```typescript +use(solidity) +``` + +我们需要实现`beforeEach()`函数,它将在每次测试前重置合约的状态。 让我们先想想我们在那里需要什么。 为了部署一个合约,我们需要两样东西:一个钱包和一个已部署的 ERC20 合约,以便将其作为`AmIRichAlready`合约的参数传递。 + +首先,我们创建一个钱包: + +```typescript +const [wallet] = new MockProvider().getWallets() +``` + +然后我们需要部署一个 ERC20 合约。 这里是棘手的部分 -- 我们只有一个接口。 这就是 Waffle 来拯救我们的部分。 Waffle 有一个神奇的`deployMockContract()`函数,它只使用接口的*abi*来创建合约。 + +```typescript +const mockERC20 = await deployMockContract(wallet, IERC20.abi) +``` + +现在有了钱包和部署的 ERC20,我们可以继续部署`AmIRichAlready`合约。 + +```typescript +const contract = await deployContract(wallet, AmIRichAlready, [ + mockERC20.address, +]) +``` + +做完这些,我们的`beforeEach()`函数就完成了。 到目前为止,您的`AmIRichAlready.test.ts`文件看起来应如下所示: + +```typescript +import { expect, use } from "chai" +import { Contract, utils, Wallet } from "ethers" +import { + deployContract, + deployMockContract, + MockProvider, + solidity, +} from "ethereum-waffle" + +import IERC20 from "../build/IERC20.json" +import AmIRichAlready from "../build/AmIRichAlready.json" + +use(solidity) + +describe("Am I Rich Already", () => { + let mockERC20: Contract + let contract: Contract + let wallet: Wallet + + beforeEach(async () => { + ;[wallet] = new MockProvider().getWallets() + mockERC20 = await deployMockContract(wallet, IERC20.abi) + contract = await deployContract(wallet, AmIRichAlready, [mockERC20.address]) + }) +}) +``` + +让我们为`AmIRichAlready`合约编写第一个测试。 您认为我们的测试应该是关于什么的? 没错,您是对的! 我们应该检查我们是否有很多钱:) + +但是等一下。 我们的模拟合约怎么知道要返回什么值呢? 我们还没有实现`balanceOf()`函数的任何逻辑。 同样,Waffle 在这里可以提供帮助。 我们的模拟合约现在有了一些新花招。 + +```typescript +await mockERC20.mock..returns() +await mockERC20.mock..withArgs().returns() +``` + +有了这些知识,我们终于可以写出我们的第一个测试啦: + +```typescript +it("returns false if the wallet has less than 1000000 tokens", async () => { + await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) + expect(await contract.check()).to.be.equal(false) +}) +``` + +让我们把这个测试分解成几个部分: + +1. 将我们的模拟 ERC20 合约设置为始终返回 99999 个通证的余额。 +2. 检查`contract.check()`方法是否返回`false`。 + +我们已经准备好启动这个野兽了: + +![一次测试通过](./test-one.png) + +所以这个测试是有效的,但是......还是有一些改进的余地。 `balanceOf()`函数将始终返回 99999。 我们可以通过指定一个钱包来改进它,该函数应该为它返回一些东西 -- 就像一个真正的合约。 + +```typescript +it("returns false if the wallet has less than 1000001 tokens", async () => { + await mockERC20.mock.balanceOf + .withArgs(wallet.address) + .returns(utils.parseEther("999999")) + expect(await contract.check()).to.be.equal(false) +}) +``` + +到目前为止,我们只测试了我们不够有钱的情况。 让我们来测试一下相反的情况。 + +```typescript +it("returns true if the wallet has at least 1000001 tokens", async () => { + await mockERC20.mock.balanceOf + .withArgs(wallet.address) + .returns(utils.parseEther("1000001")) + expect(await contract.check()).to.be.equal(true) +}) +``` + +您运行测试... + +![两次测试通过](test-two.png) + +...您已经到这儿啦! 我们的合约似乎按计划进行 :) + +## 测试合约调用 {#testing-contract-calls} + +让我们总结一下到目前为止所做的事情。 我们已经测试了我们的`AmIRichAlready`合约的功能,它似乎正常工作。 这意味着我们已经完成了,对吧? 并非如此! Waffle 允许我们进一步测试合约。 但是具体怎么做呢? 那么,在 Waffle 的武器库中,有一个`calledOnContract()`和`calledOnContractWith()`匹配器。 他们允许我们检查,我们的合约是否调用了 ERC20 模拟合约。 下面是对其中一个匹配器的基本测试: + +```typescript +it("checks if contract called balanceOf on the ERC20 token", async () => { + await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) + await contract.check() + expect("balanceOf").to.be.calledOnContract(mockERC20) +}) +``` + +我们可以更进一步,用我告诉您的另一个匹配器改进这个测试: + +```typescript +it("checks if contract called balanceOf with certain wallet on the ERC20 token", async () => { + await mockERC20.mock.balanceOf + .withArgs(wallet.address) + .returns(utils.parseEther("999999")) + await contract.check() + expect("balanceOf").to.be.calledOnContractWith(mockERC20, [wallet.address]) +}) +``` + +让我们检查测试是否正确: + +![三次测试通过](test-three.png) + +太好了,所有测试都通过了。 + +用 Waffle 测试智能合约调用非常容易。 而这是最精彩的部分。 这些匹配器对正常合约和模拟合约都有效! 这是因为 Waffle 记录和过滤 EVM 调用,而不是像其他技术的流行测试库那样注入代码。 + +## 最后 {#the-finish-line} + +恭喜! 现在您知道如何使用 Waffle 来测试合约调用和动态模拟智能合约了。 还有更多有趣的功能等着我们去发现。 我建议您深入研究 Waffle 文档。 + +Waffle 的文档可在[此处](https://ethereum-waffle.readthedocs.io/)获得。 + +本教程的源代码可以在[此处](https://github.com/EthWorks/Waffle/tree/master/examples/dynamic-mocking-and-testing-calls)找到。 + +您可能还感兴趣的教程: + +- [使用 Waffle 测试智能合约](/developers/tutorials/testing-smart-contract-with-waffle/) diff --git a/src/content/translations/zh/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md b/public/content/translations/zh/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md rename to public/content/translations/zh/developers/tutorials/waffle-say-hello-world-with-hardhat-and-ethers/index.md diff --git a/src/content/translations/zh/developers/tutorials/waffle-test-simple-smart-contract/index.md b/public/content/translations/zh/developers/tutorials/waffle-test-simple-smart-contract/index.md similarity index 100% rename from src/content/translations/zh/developers/tutorials/waffle-test-simple-smart-contract/index.md rename to public/content/translations/zh/developers/tutorials/waffle-test-simple-smart-contract/index.md diff --git a/src/content/translations/zh/eips/index.md b/public/content/translations/zh/eips/index.md similarity index 100% rename from src/content/translations/zh/eips/index.md rename to public/content/translations/zh/eips/index.md diff --git a/src/content/translations/zh/energy-consumption/energy_consumption_pre_post_merge.png b/public/content/translations/zh/energy-consumption/energy_consumption_pre_post_merge.png similarity index 100% rename from src/content/translations/zh/energy-consumption/energy_consumption_pre_post_merge.png rename to public/content/translations/zh/energy-consumption/energy_consumption_pre_post_merge.png diff --git a/src/content/translations/zh/energy-consumption/index.md b/public/content/translations/zh/energy-consumption/index.md similarity index 100% rename from src/content/translations/zh/energy-consumption/index.md rename to public/content/translations/zh/energy-consumption/index.md diff --git a/src/content/translations/zh/enterprise/index.md b/public/content/translations/zh/enterprise/index.md similarity index 100% rename from src/content/translations/zh/enterprise/index.md rename to public/content/translations/zh/enterprise/index.md diff --git a/src/content/translations/zh/enterprise/private-ethereum/index.md b/public/content/translations/zh/enterprise/private-ethereum/index.md similarity index 100% rename from src/content/translations/zh/enterprise/private-ethereum/index.md rename to public/content/translations/zh/enterprise/private-ethereum/index.md diff --git a/src/content/translations/zh/foundation/index.md b/public/content/translations/zh/foundation/index.md similarity index 100% rename from src/content/translations/zh/foundation/index.md rename to public/content/translations/zh/foundation/index.md diff --git a/src/content/translations/zh/glossary/index.md b/public/content/translations/zh/glossary/index.md similarity index 100% rename from src/content/translations/zh/glossary/index.md rename to public/content/translations/zh/glossary/index.md diff --git a/src/content/translations/zh/governance/index.md b/public/content/translations/zh/governance/index.md similarity index 100% rename from src/content/translations/zh/governance/index.md rename to public/content/translations/zh/governance/index.md diff --git a/src/content/translations/zh/guides/how-to-create-an-ethereum-account/index.md b/public/content/translations/zh/guides/how-to-create-an-ethereum-account/index.md similarity index 100% rename from src/content/translations/zh/guides/how-to-create-an-ethereum-account/index.md rename to public/content/translations/zh/guides/how-to-create-an-ethereum-account/index.md diff --git a/src/content/translations/zh/guides/how-to-id-scam-tokens/index.md b/public/content/translations/zh/guides/how-to-id-scam-tokens/index.md similarity index 100% rename from src/content/translations/zh/guides/how-to-id-scam-tokens/index.md rename to public/content/translations/zh/guides/how-to-id-scam-tokens/index.md diff --git a/src/content/translations/zh/guides/how-to-register-an-ethereum-account/index.md b/public/content/translations/zh/guides/how-to-register-an-ethereum-account/index.md similarity index 100% rename from src/content/translations/zh/guides/how-to-register-an-ethereum-account/index.md rename to public/content/translations/zh/guides/how-to-register-an-ethereum-account/index.md diff --git a/src/content/translations/zh/guides/how-to-revoke-token-access/index.md b/public/content/translations/zh/guides/how-to-revoke-token-access/index.md similarity index 100% rename from src/content/translations/zh/guides/how-to-revoke-token-access/index.md rename to public/content/translations/zh/guides/how-to-revoke-token-access/index.md diff --git a/src/content/translations/zh/guides/how-to-swap-tokens/index.md b/public/content/translations/zh/guides/how-to-swap-tokens/index.md similarity index 100% rename from src/content/translations/zh/guides/how-to-swap-tokens/index.md rename to public/content/translations/zh/guides/how-to-swap-tokens/index.md diff --git a/src/content/translations/zh/guides/how-to-use-a-bridge/index.md b/public/content/translations/zh/guides/how-to-use-a-bridge/index.md similarity index 100% rename from src/content/translations/zh/guides/how-to-use-a-bridge/index.md rename to public/content/translations/zh/guides/how-to-use-a-bridge/index.md diff --git a/src/content/translations/zh/guides/how-to-use-a-wallet/index.md b/public/content/translations/zh/guides/how-to-use-a-wallet/index.md similarity index 100% rename from src/content/translations/zh/guides/how-to-use-a-wallet/index.md rename to public/content/translations/zh/guides/how-to-use-a-wallet/index.md diff --git a/src/content/translations/zh/guides/index.md b/public/content/translations/zh/guides/index.md similarity index 100% rename from src/content/translations/zh/guides/index.md rename to public/content/translations/zh/guides/index.md diff --git a/public/content/translations/zh/history/index.md b/public/content/translations/zh/history/index.md new file mode 100644 index 00000000000..784238ba7be --- /dev/null +++ b/public/content/translations/zh/history/index.md @@ -0,0 +1,516 @@ +--- +title: 以太坊的历史和分叉 +description: 以太坊区块链的历史,包括了主要的里程碑、版本发布和分叉。 +lang: zh +sidebarDepth: 1 +--- + +# 以太坊的历史 {#the-history-of-ethereum} + +所有主要里程碑、分叉和更新以太坊区块链的时间表 + + + +分叉是需要对网络进行重大技术升级或更改时的变化 – 它们通常源自以太坊改进建议 (EIP) 并更改了以太坊协议的“规则”。 + +当传统的中心化软件需要升级时,公司会为终端用户发布新版本。 因为没有中心化所有权,区块链以不同的方式运作。 以太坊客户端必须更新他们的软件以执行新的分叉规则。 直链区块创造者(POW 中的矿工,POS 中的验证者)和节点必须创造区块和按照新规则进行验证。 关于共识机制的更多信息 + +这些规则更改可能会在网络中造成暂时的分叉。 新区块的产生,可以来自新规则,也可以来自旧规则。 分叉通常提前商定,以便让客户端能够采用 Unison 的升级,升级后的分叉链成为主链。 然而,在极少数情况下,对分叉的不同意见可能导致网络永久硬分叉 – 最为著名的是 DAO 分叉 产生了 Ethereum Classic。 + + + +直接查阅有关一些特别重要的以往升级的信息:[信标链](/roadmap/beacon-chain/)、[合并](/roadmap/merge/)和 [EIP-1559](#london) + +想了解未来的协议升级? [了解以太坊路线图上即将进行的升级](/roadmap/)。 + + + +## 2023 年 {#2023} + +### 上海升级 {#shanghai} + + + +#### 摘要 {#shanghai-summary} + +上海升级将质押提款引入执行层。 上海升级与卡佩拉升级同时进行,使区块能够接受提款操作,因此质押人可以将以太币从信标链提取到执行层。 + + + + + + + +- [阅读上海升级规范](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/shanghai.md) + +--- + +### 卡佩拉升级 {#capella} + + + +#### 摘要 {#capella-summary} + +卡佩拉升级是共识层(信标链)的第三次重大升级,实现了质押提款。 卡佩拉与上海同步升级执行层并启用了质押提款功能。 + +这次共识层升级让未提供初始存款提款凭证的质押人能够提供提款凭证,从而实现提款。 + +该升级还提供了自动帐户扫描功能,可以持续处理验证者帐户的任何可用奖励支付或全额提款。 + +- [有关质押提款的更多信息](/staking/withdrawals/)。 +- [阅读卡佩拉升级规范](https://github.com/ethereum/consensus-specs/blob/dev/specs/capella/) + + + +## 2022 年 {#2022} + +### 巴黎升级(合并) {#paris} + + + +#### 摘要 {#paris-summary} + +巴黎升级是由于工作量证明区块链超过了[终端总难度](/glossary/#terminal-total-difficulty) 58750000000000000000000 而触发的。 这发生在 2022 年 9 月 15 日区块 15537393 上,并在下一个区块处触发了巴黎升级。 巴黎升级就是[合并](/roadmap/merge/)过渡,以太坊的主要功能结束了[工作量证明](/developers/docs/consensus-mechanisms/pow)挖矿算法及相关共识逻辑并启动了[权益证明](/developers/docs/consensus-mechanisms/pos)。 巴黎升级本身是对[执行客户端](/developers/docs/nodes-and-clients/#execution-clients)的升级(相当于共识层上的 Bellatrix 升级),让执行客户端能够从与其连接的[共识客户端](/developers/docs/nodes-and-clients/#consensus-clients)接受指令。 这需要激活一组新的内部应用程序接口方法,统称为[引擎应用程序接口](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md)。 该升级可能是自[家园](#homestead)以来以太坊历史上最重要的升级! + +- [阅读巴黎升级规范](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/paris.md) + + + +
    +
  • EIP-3675升级权益证明共识
  • +
  • EIP-4399使用 PREVRANDAO 取代 DIFFICULTY 操作码
  • +
+ +
+ +--- + +### Bellatrix 升级 {#bellatrix} + + + +#### 摘要 {#bellatrix-summary} + +Bellatrix 升级是计划的第二次[信标链](/roadmap/beacon-chain)升级,让信标链为[合并](/roadmap/merge/)做好准备。 它将验证者由于怠惰及进行了可被罚没的行为而受到的惩罚提高到其全部价值。 Bellatrix 升级还包括对分叉选择规则的更新,让信标链为合并以及从最后一个工作量证明区块过渡到第一个权益证明区块做好准备。 这包括让共识客户端意识到[终端总难度](/glossary/#terminal-total-difficulty) 58750000000000000000000。 + +- [阅读 Bellatrix 升级规范](https://github.com/ethereum/consensus-specs/tree/dev/specs/bellatrix) + +--- + +### 灰色冰川升级 {#gray-glacier} + + + +#### 摘要 {#gray-glacier-summary} + +灰色冰川网络升级将[难度炸弹](/glossary/#difficulty-bomb)推迟了三个月。 这是此次升级中引入的唯一变更,本质上类似于[箭形冰川](#arrow-glacier)和[缪尔冰川](#muir-glacier)升级。 [拜占庭](#byzantium)、[君士坦丁堡](#constantinople)和[伦敦](#london)网络升级也做了类似的变更。 + +- [以太坊基金会博客 - 灰色冰川升级公告](https://blog.ethereum.org/2022/06/16/gray-glacier-announcement/) + + + +
    +
  • EIP-5133将难度炸弹推迟到 2022 年 9 月启动
  • +
+ +
+ + + +## 2021 年 {#2021} + +### 箭形冰川升级 {#arrow-glacier} + + + +#### 摘要 {#arrow-glacier-summary} + +箭形冰川网络升级将[难度炸弹](/glossary/#difficulty-bomb)推迟了数月。 这是此次升级中引入的唯一变更,本质上类似于[缪尔冰川](#muir-glacier)升级。 [拜占庭](#byzantium)、[君士坦丁堡](#constantinople)和[伦敦](#london)网络升级也做了类似的更改。 + +- [以太坊基金会博客 - 箭形冰川升级公告](https://blog.ethereum.org/2021/11/10/arrow-glacier-announcement/) +- [以太坊牧猫人组织 - 以太坊箭形冰川升级](https://medium.com/ethereum-cat-herders/ethereum-arrow-glacier-upgrade-e8d20fa4c002) + + + +
    +
  • EIP-4345将难度炸弹推迟到 2022 年 6 月启动
  • +
+ +
+ +--- + +### 天鹰座升级 {#altair} + + + +#### 摘要 {#altair-summary} + +天鹰座升级是计划的第一次[信标链](/roadmap/beacon-chain)升级。 它增加了对“同步委员会”的支持—支持轻客户端,在向合并进展的过程中,增加了对验证者怠惰及可被罚没行为的惩罚。 + +- [阅读天鹰座升级规范](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) + +#### 有趣的事实! {#altair-fun-fact} + +天鹰座升级是第一个有确切发布时间的重大网络升级。 之前的每一次升级均基于一个已经在工作量证明链上申报过的区块编号,而该链上的区块时间各不相同。 信标链不需要解析工作量证明,而是在一个基于时间、由 32 个 12 秒“时隙”组成的时段系统上运作。在这个系统上,验证者可以提出区块。 这就是为什么我们能准确知晓达到时段 74,240 以及天鹰座升级启动的时间! + +- [出块时间](/developers/docs/blocks/#block-time) + +--- + +### 伦敦升级 {#london} + + + +#### 摘要 {#london-summary} + +伦敦升级引入了 [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559),对交易费市场进行了改革,同时还对燃料费的退款处理方式和[冰河世纪](/glossary/#ice-age)日程进行了修改。 + +- [你是去中心化应用程序的开发者吗? 请务必升级你的程序库和工具。](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/london-ecosystem-readiness.md) +- [请阅读以太坊基金会公告](https://blog.ethereum.org/2021/07/15/london-mainnet-announcement/) +- [请阅读以太坊牧猫人组织的解释说明](https://medium.com/ethereum-cat-herders/london-upgrade-overview-8eccb0041b41) + + + +
    +
  • EIP-1559改善交易费市场
  • +
  • EIP-3198从一个区块返回 BASEFEE
  • +
  • EIP-3529 - 减少用于 EVM 运营的燃料退款
  • +
  • EIP-3541 - 防止部署以 0xEF 开头的合约
  • +
  • EIP-3554将冰河世纪推迟到 2021 年 12 月启动
  • +
+ +
+ +--- + +### 柏林升级 {#berlin} + + + +#### 摘要 {#berlin-summary} + +柏林升级优化了某些以太坊虚拟机操作的燃料成本,并增加了对多种交易类型的支持。 + +- [请阅读以太坊基金会公告](https://blog.ethereum.org/2021/03/08/ethereum-berlin-upgrade-announcement/) +- [请阅读以太坊牧猫人组织的解释说明](https://medium.com/ethereum-cat-herders/the-berlin-upgrade-overview-2f7ad710eb80) + + + +
    +
  • EIP-2565降低了 ModExp 燃料成本
  • +
  • EIP-2718可以更容易地支持多种交易类型
  • +
  • EIP-2929提高状态访问操作码的燃料成本
  • +
  • EIP-2930增加了可选访问列表
  • +
+ +
+ + + +## 2020 年 {#2020} + +### 信标链创世块 {#beacon-chain-genesis} + + + +#### 摘要 {#beacon-chain-genesis-summary} + +[信标链](/roadmap/beacon-chain/)需要 16384 个存储了 32 个质押以太币的帐户,以确保安全上线。 这发生于 2020 年 11 月 27 日,意味着信标链在 2020 年 12 月 1 日开始生产区块。 这是实现[以太坊愿景](/roadmap/vision/)的第一步,十分重要。 + +[请阅读以太坊基金会公告](https://blog.ethereum.org/2020/11/27/eth2-quick-update-no-21/) + + + 信标链 + + +--- + +### 已部署质押存款合约 {#staking-deposit-contract} + + + +#### 摘要 {#deposit-contract-summary} + +质押存款合约将[质押](/glossary/#staking)引入以太坊生态系统。 虽然是一个[主网](/glossary/#mainnet)合约,但它直接影响到[信标链](/roadmap/beacon-chain/)的发布时间线,而后者是[以太坊升级](/roadmap/)的重要部分。 + +[请阅读以太坊基金会公告](https://blog.ethereum.org/2020/11/04/eth2-quick-update-no-19/) + + + 质押 + + +--- + +### 缪尔冰川升级 {#muir-glacier} + + + +#### 摘要 {#muir-glacier-summary} + +缪尔冰川分叉使[难度炸弹](/glossary/#difficulty-bomb)延迟。 增加[工作量证明](/developers/docs/consensus-mechanisms/pow/)共识机制的区块难度可能会增加发送交易和使用去中心化应用程序的等待时间,从而降低以太坊的可用性。 + +- [请阅读以太坊基金会公告](https://blog.ethereum.org/2019/12/23/ethereum-muir-glacier-upgrade-announcement/) +- [请阅读以太坊牧猫人组织的解释说明](https://medium.com/ethereum-cat-herders/ethereum-muir-glacier-upgrade-89b8cea5a210) + + + +
    +
  • EIP-2384将难度炸弹再延迟 4,000,000 个区块,大约是 611 天
  • +
+ +
+ + + +## 2019 年 {#2019} + +### 伊斯坦布尔分叉 {#istanbul} + + + +#### 摘要 {#istanbul-summary} + +伊斯坦布尔分叉: + +- 优化了[以太坊虚拟机](/developers/docs/ethereum-stack/#ethereum-virtual-machine)中特定操作的[燃料](/glossary/#gas)成本。 +- 提高受到拒绝服务攻击后的复原能力。 +- 使基于“零知识简洁非交互式知识论证”和“零知识可扩容透明知识论证”的[二层网络扩容](/developers/docs/scaling/#layer-2-scaling)解决方案具有更佳的性能。 +- 使以太坊和 Zcash 能够互操作。 +- 让合约能够引入更多创造性功能。 + +[请阅读以太坊基金会公告](https://blog.ethereum.org/2019/11/20/ethereum-istanbul-upgrade-announcement/) + + + +
    +
  • EIP-152允许以太坊与 Zcash 等受隐私保护的数字货币一起使用。
  • +
  • EIP-1108以更低廉的加密技术改善燃料成本。
  • +
  • EIP-1344通过添加 CHAINID 操作码,保护以太坊免受重放攻击。
  • +
  • EIP-1884优化基于消耗量的操作码燃料价格。
  • +
  • EIP-2028降低了 CallData 的成本,从而允许更多数据储放入区块中 – 这对 二层扩容很有帮助。
  • +
  • EIP-2200其他操作码的燃料价格变更。
  • +
+ +
+ +--- + +### 君士坦丁堡分叉 {#constantinople} + + + +#### 摘要 {#constantinople-summary} + +君士坦丁堡分叉: + +- 确保在[实现权益证明](#beacon-chain-genesis)之前,区块链不会冻结。 +- 优化了[以太坊虚拟机](/developers/docs/ethereum-stack/#ethereum-virtual-machine)中特定操作的[燃料](/glossary/#gas)成本。 +- 添加了与尚未创建的地址进行交互的能力。 + +[请阅读以太坊基金会公告](https://blog.ethereum.org/2019/02/22/ethereum-constantinople-st-petersburg-upgrade-announcement/) + + + +
    +
  • EIP-145优化某些链上操作的成本。
  • +
  • EIP-1014允许你与尚未创建的地址互动。
  • +
  • EIP-1052优化某些链上操作的成本。
  • +
  • EIP-1234确保在实现权益证明之前,区块链不会冻结。
  • +
+ +
+ + + +## 2017 年 {#2017} + +### 拜占庭升级 {#byzantium} + + + +#### 摘要 {#byzantium-summary} + +拜占庭分叉: + +- 将区块[挖矿](/developers/docs/consensus-mechanisms/pow/mining/)奖励从 5 个以太币减少到 3 个以太币。 +- 将[难度炸弹](/glossary/#difficulty-bomb)推迟一年。 +- 增加了调用其他合约而不更改状态的能力。 +- 增加了某些加密方法,以实现[二层网络扩容](/developers/docs/scaling/#layer-2-scaling)。 + +[请阅读以太坊基金会公告](https://blog.ethereum.org/2017/10/12/byzantium-hf-announcement/) + + + +
    +
  • EIP-140添加 REVERT 操作码。
  • +
  • EIP-658在交易收据中添加状态字段,以指示成功或失败。
  • +
  • EIP-196增加了椭圆曲线和标量乘法以允许 ZK-Snarks
  • +
  • EIP-197增加了椭圆曲线和标量乘法以允许 ZK-Snarks
  • +
  • EIP-198启用 RSA 签名验证。
  • +
  • EIP-211添加了对可变长度返回值的支持。
  • +
  • EIP-214添加 STATICCALL 操作码,允许对其他合约进行非状态改变调用。
  • +
  • EIP-100更改难度调整公式。
  • +
  • EIP-649难度炸弹推迟 1 年启动,并将区块奖励从 5 个以太币减少到 3 个以太币。
  • +
+ +
+ + + +## 2016 年 {#2016} + +### Spurious Dragon {#spurious-dragon} + + + +#### 摘要 {#spurious-dragon-summary} + +伪龙分叉是对拒绝服务 (DoS) 网络攻击(2016 年 9 月/10 月)的第二个响应,包括: + +- 调整操作码价格,以防网络将来再受攻击。 +- 启用区块链状态的“区块链减重”。 +- 增加重放攻击保护。 + +[请阅读以太坊基金会公告](https://blog.ethereum.org/2016/11/18/hard-fork-no-4-spurious-dragon/) + + + +
    +
  • EIP-155防止在一条以太坊链上的交易被重复广播到另一条链,例如测试网交易在主以太坊链上重放。
  • +
  • EIP-160调整 EXP 操作码的价格 – 使通过计算成本高昂的合约操作来降低网络速度变得更加困难。
  • +
  • EIP-161允许删除通过 DOS 攻击产生的空帐户。
  • +
  • EIP-170将区块链上合约可达到的最大代码大小改为 24576 字节。
  • +
+ +
+ +--- + +### 橘子口哨分叉 {#tangerine-whistle} + + + +#### 摘要 {#tangerine-whistle-summary} + +橘子口哨分叉是对拒绝服务 (DoS) 网络攻击(2016 年 9 月/10 月)的第一个响应,包括: + +- 解决与作价低估的操作代码有关的紧急网络健康问题。 + +[请阅读以太坊基金会公告](https://blog.ethereum.org/2016/10/18/faq-upcoming-ethereum-hard-fork/) + + + +
    +
  • EIP-150增加可用于垃圾邮件攻击的操作码的燃料成本。
  • +
  • EIP-158通过移除大量空帐户来减小状态大小。由于早期版本的以太坊协议中存在缺陷,这些帐户以非常低的成本置于相应状态下。
  • +
+ +
+ +--- + +### 去中心化自治组织分叉 {#dao-fork} + + + +#### 摘要 {#dao-fork-summary} + +去中心化自治组织分叉是为了响应 [2016 DAO 攻击](https://www.coindesk.com/learn/understanding-the-dao-attack/),当时一个不安全的[去中心化自治组织](/glossary/#dao)合约被黑客盗走了超过 360 万个以太币。 此分叉将资金从有问题的合约转移到一个[新合约](https://etherscan.io/address/0xbf4ed7b27f1d666546e30d74d50d173d20bca754),新合约只有一个功能:提款。 任何损失了资金的人都可以在他们的钱包中提取以太币,每 100 个 DAO 代币 1 个以太币。 + +此操作是由以太坊社区投票决定的。 所有以太币持有者都能通过[投票平台](https://web.archive.org/web/20170620030820/http://v1.carbonvote.com/)上的交易进行投票。 分叉的决定获得了 85% 以上的投票。 + +一些矿工拒绝分叉,因为那次 DAO 事件并不是协议中的缺陷。 他们之后组建了[以太坊经典](https://ethereumclassic.org/)。 + +[请阅读以太坊基金会公告](https://blog.ethereum.org/2016/07/20/hard-fork-completed/) + +--- + +### 家园分叉 {#homestead} + + + +#### 摘要 {#homestead-summary} + +家园分叉展望未来, 包括若干协议修改和联网变更,使以太坊能够进一步进行网络升级。 + +[请阅读以太坊基金会公告](https://blog.ethereum.org/2016/02/29/homestead-release/) + + + +
    +
  • EIP-2对合约创建过程进行编辑。
  • +
  • EIP-7添加新操作码:DELEGATECALL
  • +
  • EIP-8引入 devp2p 向前兼容性要求
  • +
+ +
+ + + +## 2015 年 {#2015} + +### 边境解冻分叉 {#frontier-thawing} + + + +#### 摘要 {#frontier-thawing-summary} + +边境解冻分叉提高了每个[区块](/glossary/#block) 5,000 单位[燃料](/glossary/#gas)的限制,并将默认燃料价格设为 51 [gwei](/glossary/#gwei)。 这样便能进行交易 - 交易需要 21,000 单位燃料。 而引入[难度炸弹](/glossary/#difficulty-bomb)是为了确保未来硬分叉到[权益证明](/glossary/#pos)。 + +- [请阅读以太坊基金会公告](https://blog.ethereum.org/2015/08/04/the-thawing-frontier/) +- [阅读以太坊协议更新 1](https://blog.ethereum.org/2015/08/04/ethereum-protocol-update-1/) + +--- + +### 边境 {#frontier} + + + +#### 摘要 {#frontier-summary} + +边境是以太坊最初的版本,但在上面能做的事情很少。 该版本在奥利匹克测试阶段成功完成之后推出。 它面向的是技术用户,特别是开发者。 [区块](/glossary/#block)有 5,000 单位的[燃料](/glossary/#gas)限制。 此“解冻”期使矿工能够开始操作,并使早期采用者能够有足够的时间来安装客户端。 + +[请阅读以太坊基金会公告](https://blog.ethereum.org/2015/07/22/frontier-is-coming-what-to-expect-and-how-to-prepare/) + + + +## 2014 年 {#2014} + +### 以太币销售 {#ether-sale} + + + +以太币的预售期为 42 天, 可以使用比特币进行购买。 + +[请阅读以太坊基金会公告](https://blog.ethereum.org/2014/07/22/launching-the-ether-sale/) + +--- + +### 黄皮书已发布 {#yellowpaper} + + + +Gavin Wood 博士撰写的黄皮书,关于以太坊协议的技术定义。 + +[查看黄皮书](https://github.com/ethereum/yellowpaper) + + + +## 2013 年 {#2013} + +### 白皮书已发布 {#whitepaper} + + + +以太坊项目在 2015 年启动。但早在 2013 年,以太坊创始人 Vitalik Buterin 就发表了这一介绍性文章。 + + + 白皮书 + diff --git a/public/content/translations/zh/nft/index.md b/public/content/translations/zh/nft/index.md new file mode 100644 index 00000000000..a605b833f09 --- /dev/null +++ b/public/content/translations/zh/nft/index.md @@ -0,0 +1,94 @@ +--- +title: 非同质化代币 (NFT) +description: 以太坊上的非同质化代币简介 +lang: zh +template: use-cases +emoji: ":frame_with_picture:" +sidebarDepth: 2 +image: /infrastructure_transparent.png +alt: 通过全息图显示的以太币徽标。 +summaryPoint1: 一种用以太坊资产表示任何独特事物的方法。 +summaryPoint2: 非同质化代币正在前所未有地向内容创作人赋予更多权利。 +summaryPoint3: 由以太坊区块链上的智能合约提供支持 +--- + +## 什么是非同质化代币? {#what-are-nfts} + +每个非同质化代币都是独一无二的。 每个非同质化代币都有不同的属性(非同质化),并且可证明其稀缺性。 这与 ERC-20 等代币不同,同一 ERC-20 代币集合中的所有代币都是完全相同的,拥有同样的属性(“同质化”)。 你无需关心钱包中的具体某一张钞票,因为它们完全相同并具有同样的价值。 然而,你*需要*关心你拥有具体哪一个非同质化代币,因为它们都有区分于其他非同质化代币的独特属性(“非同质化”)。 + +每个非同质化代币的独特性使其能够实现艺术品、收藏品甚至房地产等资产的代币化,一个特定的独特非同质化代币可以代表一个特定的独特实体或数字物品。 资产所有权由以太坊区块链保护 - 任何人都不能修改所有权记录或复制/粘贴新的非同质化代币。 + + + +## 资产互联网 {#internet-of-assets} + +非同质化代币和以太坊解决了当前互联网上存在的一些问题。 随着一切都变得更加数字化,我们需要以不受中心化机构控制的方式,复制实体物品的属性, 如稀缺性、独特性和所有权证明。 例如,通过非同质化代币,你可以拥有不属于某个公司特定音乐应用的音乐 mp3,或者拥有一个可以出售或交换但不会被平台提供商任意收回的社交媒体账号。 + +非同质化代币互联网与我们今天大多数人使用的互联网的对比如下…… + +### 对比 {#nft-comparison} + +| 非同质化代币互联网 | 当今互联网 | +| --------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| 你拥有自己的数字资产! 只有你可以出售或交换它们。 | 你从某个组织租借到资产。 | +| 非同质化代币在数字世界里是独一无二的,没有两个相同的非同质化代币。 | 物体的副本通常无法与原件区分开。 | +| 非同质化代币的所有权储存在区块链上,任何人都可以验证。 | 数字物品的所有权记录存储在由机构控制的服务器上 - 你必须相信他们的话。 | +| 非同质化代币是以太坊上的智能合约。 这意味人们很容易在以太坊上的其他智能合约或者应用中使用它。 | 拥有数字物品的公司通常需要自己的“围墙花园(封闭平台)”基础设施。 | +| 内容创建人可以在任何地方出售他们的作品,并可以进入全球市场。 | 创建人依靠所用平台的基础设施和分布。 这通常受到使用条款和地理限制的制约。 | +| 非同质化代币创建人可以保留自己作品的所有权,并直接在非同质化代币合约中设置版税。 | 音乐媒体服务等平台扣留大部分销售利润。 | + +## 非同质化代币的工作原理是什么? {#how-nfts-work} + +和在以太坊上发行的任何代币一样,非同质化代币也是由智能合约发行的。 智能合约符合几种非同质化代币标准中的一种(通常是 ERC-721 或 ERC-1155),这些标准定义了合约具有的功能。 合约可以创建(“铸造”)非同质化代币并将它们分配给特定所有者。 在合约中,通过将特定非同质化代币映射到特定地址来定义所有权。 非同质化代币有一个 ID,并通常有与之相关联的元数据,这使其成为独一无二的特定代币。 + +当有人创建或铸造一个非同质化代币时,他们实际上是在智能合约中执行一个函数,将特定非同质化代币分配到其地址。 这一信息储存在合约的存储空间中,也是区块链的一部分。 合约创建人可以在合约中添加额外逻辑,例如限制总供应量或定义每次转让代币时需支付给创建人的版税。 + +## 非同质化代币有哪些用武之地? {#nft-use-cases} + +非同质化代币可以用于多种用途,包括: + +- 证明你参加过某个活动 +- 证明你完成了某个课程 +- 在游戏中拥有的物品 +- 数字艺术 +- 将实体资产代币化 +- 证明你的线上身份 +- 限制内容访问权限 +- 发放凭据 +- 分布式互联网域名 +- DeFi 抵押品 + +假设你是一位艺术家,希望使用非同质化代币分享自己的作品,同时不想失去对作品的控制,也不想中间商分走利润。 你可以创建一个新合约,指定非同质化代币的数量、属性和特定艺术品的链接。 作为艺术家,你可以在智能合约中设置你应该收取的版税(例如,每次转让非同质化代币时,将销售价格的 5% 转到合约所有人)。 因为你拥有部署合约的钱包,所以你可以始终证明是你是非同质化代币的创建人。 你的买家也可以轻松地证明他们拥有你的系列艺术品中的一个真正的非同质化代币,因为他们的钱包地址与你的智能合约中的一个代币相关联。 他们可以在整个以太坊生态系统中使用非同质化代币,因为其真实性能得到保证。 + +再以体育活动的门票为例。 就像活动组织方可以选择出售多少门票一样,非同质化代币的创建人可以决定创建多少份复制品。 有时候,这些是完全相同的复制品,如 5000 张普通门票。 有时候,会制作一些非常相似但略有不同的门票,如指定座位的门票。 这些门票可以在用户之间点对点买卖,而无需支付票务处理费用,买家也可以通过检查合约地址来确保门票的真实性。 + +在 ethereum.org 上,非同质化代币被用来证明人们对我们的 GitHub 库做出了贡献或者参加了电话会议,我们甚至拥有自己的非同质化代币域名。 如果你对 ethereum.org 做了贡献,即可认领出勤证明协议非同质化代币。 一些数字货币相关活动使用 POAP 作为门票。 [关于贡献的更多信息](/contributing/#poap)。 + +![ethereum.org 出勤证明协议](./poap.png) + +本网站也有一个由非同质化代币支持的备用域名:**ethereum.eth**。 我们的 `.org` 地址由域名系统 (DNS) 提供商集中管理,而 ethereum`.eth` 则通过以太坊域名服务 (ENS) 在以太坊上注册。 此域名由我们所有和管理。 [查看我们的 ENS 记录](https://app.ens.domains/name/ethereum.eth) + +[关于以太坊域名服务的更多信息](https://app.ens.domains) + + + +### 非同质化代币安全性 {#nft-security} + +以太坊的安全性来自权益证明。 该机制旨在通过经济手段遏制恶意行为,使以太坊防篡改。 这使得非同质化代币成为可能。 一旦包含你的非同质化代币交易的区块最终确定,攻击者需要花费数百万个以太币才能更改它。 运行以太坊软件的任何人都能立即检测到对非同质化代币的不诚实篡改,并且不良行为者将受到经济处罚并被驱逐出网络。 + +非同质化代币的安全问题通常与网络钓鱼诈骗、智能合约漏洞或用户错误(例如无意中暴露私钥)有关,因此非同质化代币所有者务必保障钱包的安全性。 + + + 有关安全性的更多信息 + + +## 延伸阅读 {#further-reading} + +- [非同质化代币初学者指南](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) - _Linda Xie,2020 年 1 月_ +- [EtherscanNFT 跟踪器](https://etherscan.io/nft-top-contracts) +- [ERC-721 代币标准](/developers/docs/standards/tokens/erc-721/) +- [ERC-1155 代币标准](/developers/docs/standards/tokens/erc-1155/) + + + + diff --git a/public/content/translations/zh/refi/index.md b/public/content/translations/zh/refi/index.md new file mode 100644 index 00000000000..400350b67be --- /dev/null +++ b/public/content/translations/zh/refi/index.md @@ -0,0 +1,79 @@ +--- +title: 再生金融 (ReFi) +description: 再生金融及主流用例概览。 +lang: zh +template: use-cases +emoji: ":recycle:" +sidebarDepth: 2 +image: /future_transparent.png +alt: "" +summaryPoint1: 一种构建于再生原则之上的替代经济体系 +summaryPoint2: 一次利用以太坊解决全球协作危机(如气候变化)的尝试 +summaryPoint3: 一种可以大幅扩展生态效益资产的工具,例如经过验证的碳信用 +--- + +## 什么是再生金融? {#what-is-refi} + +**再生金融 (ReFi) **是一套建立在区块链之上的工具和理念,其目的是创建再生型经济,而不是攫取型或剥削型经济。 最终,攫取型体系在耗尽所有可用资源后崩溃;没有再生机制,体系缺乏恢复能力。 再生金融的运作基于一个假设,即货币价值的创造必须同向我们的星球和社区不可持续地攫取资源脱钩。 + +然而,再生金融旨在通过建立再生循环来解决环境、公共或社会问题。 这些体系为参与者创造价值,同时使生态系统和社区受益。 + +再生金融的基础之一是由 Capital Institute(资本研究院)的 John Fullerton 开创的再生经济学概念。 他提出了[ 8 项相互关联的原则,](https://capitalinstitute.org/8-principles-regenerative-economy/)作为保持体系健康的基础: + +![8 项相互关联的原则](refi-regenerative-economy-diagram.png) + +再生金融项目借助[智能合约](/developers/docs/smart-contracts/)和[去中心化金融 (DeFi)](/defi/) 应用程序来实现这些原则,以激励再生行为,例如恢复退化的生态系统,推动气候变化和生物多样性丧失等全球问题上的大规模合作。 + +再生金融还与[去中心化科学 (DeSci)](/desci/) 重叠,后者使用以太坊作为资助、创作、审查、增加、存储和传播科学知识的平台。 去中心化科学工具可用于制定可验证的标准和实践,以实施和监测再生活动,如植树,清理海洋中的塑料或恢复退化的生态系统。 + +## 碳信用代币化 {#tokenization-of-carbon-credits} + +**[自愿碳市场 (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** 是一种对碳排放产生积极影响的项目融资机制,可以减少持续进行的排放,也可以清理已经排放到大气中的温室气体。 这些项目在经过验证后会获得一种称为“碳信用”的资产,碳信用可以出售给希望支持气候行动的个人和组织。 + +除自愿碳市场外,还有几个政府批准的碳市场(“合规市场”),旨在于某个司法管辖区(例如国家或地区)内通过法律或法规建立碳价格,控制要分发的许可证的供应。 合规市场激励其司法管辖区内的污染者减少排放,但无法清理已经排放的温室气体。 + +尽管近几十年来一直在发展,但自愿碳市场一直受到各种问题的困扰: + +1. 高度分散的流动性 +2. 不透明的交易机制 +3. 高额费用 +4. 极慢的交易速度 +5. 缺乏可扩展性 + +从自愿碳市场过渡到基于区块链的新型**数字碳市场 (DCM) **也许是一次升级现有碳信用验证、交易和使用技术的机会。 区块链允许可公开验证的数据,为广泛的用户提供访问权限并拥有更多流动性。 + +再生金融项目利用区块链技术来缓解传统市场中的诸多问题: + +- **流动性集中在少数几个可以由任何人自由交易的流动性池中。** 大型组织和个人用户都可以在不需要手动搜索卖家/买家、支付参与费用或事先注册的情况下使用这些流动性池。 +- **所有交易都记录在公共区块链上**。 一旦碳信用进入数字碳市场,由于交易活动引起的每个碳信用的路径始终都是有迹可查。 +- **交易的速度几乎是即时的。** 通过传统市场获得大量碳信用可能需要数天或数周,但在数字碳市场上仅需要几秒钟。 +- **交易活动在没有中介的情况下进行**,无需支付高额费用。 根据一家分析公司提供的数据,数字碳信用[相对于传统碳信用可以节省 62% 的成本](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne)。 +- **数字碳市场具有可扩展性**,可以满足个人和跨国公司的需求。 + +### 数字碳市场的关键构成部分 {#key-components-dcm} + +四大主要版块构成了数字碳市场的当前格局: + +1. 诸如 [Verra](https://verra.org/project/vcs-program/registry-system/) 和 [Gold Standard](https://www.goldstandard.org/) 这类注册机构确保创建碳信用的项目是可靠的。 它们还运营着数字碳信用的源头数据库,碳信用可以在数据库中转移或使用(清退)。 + +新一轮的创新项目正在区块链上构建,试图打破该领域的现有局面。 + +2. 碳桥又称 代币转换器,它提供了一种技术,可以表示碳信用,或将碳信用从传统注册机构转移到数字碳市场。 重要的碳桥示例包括 [Toucan 协议](https://toucan.earth/)、[C3](https://c3.app/) 以及 [Moss.Earth](https://moss.earth/)。 +3. 综合服务向最终用户提供避免和/或消除碳排放的信用额度,这样他们就可以认领信用额度带来的环境效益,并与全世界分享他们对气候行动的支持。 + +像 [Klima Infinity](https://www.klimadao.finance/infinity) 和 [Senken](https://senken.io/) 等一些服务提供由第三方依据已制定的标准(如 Verra)开发和发布的各种项目;而另一些服务(如 [Nori](https://nori.com/))仅提供依据它们自己的碳信用标准开发和发布的特定项目,这些项目有自己的专用市场。 + +4. 有助于碳市场整条供应链的影响和效率提升的底层保障和基础设施。 [KlimaDAO](http://klimadao.finance/) 将流动性作为公共物品提供(允许任何人以透明的价格购买或出售碳信用),通过奖励激励碳市场吞吐量的增加和碳信用的清退,并提供用户友好的可互操作工具,以访问有关各种代币化碳信用的数据以及获取和清退这些碳信用。 + +## 再生金融在碳市场以外的应用 {#refi-beyond} + +尽管目前普遍重点强调碳市场,特别是该领域内从自愿碳市场到数字碳市场的过渡,但“再生金融”一词并不严格局限于碳。 除碳信用以外,还可以开发和代币化其他环保资产,这意味着其他负外部效应也可以在未来经济体系的基础层内定价。 此外,这种经济模式的再生方面可以应用于其他领域,例如通过 [Gitcoin](https://gitcoin.co/) 等二次方融资平台为公共物品提供资金。 基于开放参与和资源公平分配理念的组织让每个人都能够将资金输送到开源软件项目以及教育、环境和社区驱动的项目。 + +通过将资本流动方向从攫取型活动转向再生项目,提供社会、环境或公共效益的项目和公司以及可能无法从传统金融中获得资金的项目和公司,可以顺利启动并更快、更容易地为社会产生正外部效应。 过渡到这种融资模式也打开了通向更具包容性的经济体系的大门,让所有人口结构的人都可以成为积极的参与者,而不仅仅是被动的观察者。 再生金融提出了以太坊的愿景,即作为一种机制,协调行动,应对我们人类和地球上所有生命面临的生存挑战,作为新经济范式的基础层,为未来数百年创造一个更具包容性和可持续性的未来。 + +## 关于再生金融的延伸阅读 + +- [碳货币及其在经济体系中的地位的高层概览](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) +- [小说《The Ministry for the Future》(未来部)描写了一种锚定碳的货币在应对气候变化中发挥的作用。](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) +- [扩大自愿碳市场工作组 (TSVCM) 的详细报告](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) +- [CoinMarketCap 术语表中有关再生金融的条目,由 Kevin Owocki 和 Evan Miyazono 撰写](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/zh/roadmap/account-abstraction/index.md b/public/content/translations/zh/roadmap/account-abstraction/index.md similarity index 100% rename from src/content/translations/zh/roadmap/account-abstraction/index.md rename to public/content/translations/zh/roadmap/account-abstraction/index.md diff --git a/public/content/translations/zh/roadmap/beacon-chain/index.md b/public/content/translations/zh/roadmap/beacon-chain/index.md new file mode 100644 index 00000000000..eaa605f3e97 --- /dev/null +++ b/public/content/translations/zh/roadmap/beacon-chain/index.md @@ -0,0 +1,75 @@ +--- +title: 信标链 +description: 了解信标链 - 引入权益证明的以太坊升级。 +lang: zh +template: upgrade +image: /upgrades/core.png +alt: +summaryPoint1: 信标链为以太坊生态系统引入了权益证明。 +summaryPoint2: 信标链于 2022 年 9 月与原有的以太坊工作量证明链合并。 +summaryPoint3: 信标链引入的共识逻辑和区块广播协议目前保护着以太坊。 +--- + + + 信标链于 2020 年 12 月 1 日上线,并且在 2022 年 9 月 15 日完成合并升级,将权益证明正式确定为太坊的共识机制。 + + +## 什么是信标链? {#what-is-the-beacon-chain} + +信标链是 2020 年推出的原始权益证明区块链的名称。 它的创立是为了在以太坊主网上运行权益证明共识逻辑之前确保该逻辑是可靠且可持续的。 因此,它与原有的工作量证明以太坊一起运行。 信标链是一个由“空”区块组成的链,但在以太坊上停止工作量证明并启动权益证明,需要指示信标链接受来自执行客户端的交易数据,将它们打包到区块,再将区块组织到一条运行权益证明共识机制的区块链上。 与此同时,原有的以太坊客户端停止挖矿、区块传播及旧的共识逻辑,并将这一切转交给信标链。 这一事件称为[合并](/roadmap/merge/)。 在合并发生后,就不再有两个区块链。 相反,只有一个权益证明以太坊,现在每个节点需要两个不同的客户端。 信标链现在是共识层,一个处理区块消息和共识逻辑的共识客户端的点对点网络,而原始客户端形成执行层,负责传播消息和执行交易,以及管理以太坊的状态。 这两层可以使用引擎应用程序接口相互通信。 + +## 信标链有什么作用? {#what-does-the-beacon-chain-do} + +信标链是在以太坊[质押人](/staking/)开始验证真实的以太坊区块之前管理和协调以太坊质押人网络的帐户账本的名称。 它不处理交易或智能合约交互,因为这些任务在执行层完成。 信标链负责处理区块和证明、运行分叉选择算法以及管理奖励和惩罚等。 要了解更多内容,请参阅我们的[节点架构页面](/developers/docs/nodes-and-clients/node-architecture/#node-comparison)。 + +## 信标链的影响 {#beacon-chain-features} + +### 质押介绍 {#introducing-staking} + +信标链将[权益证明机制](/developers/docs/consensus-mechanisms/pos/)引入以太坊。 这保证了以太坊的安全,并在此过程中让验证者获得更多以太币。 在实际操作中,质押将需要质押以太币,以激活验证者软件。 作为质押人,你运行该软件并在链中创建和验证新区块。 + +质押的作用与曾经的[挖矿](/developers/docs/mining/)类似,但有许多不同之处。 挖矿的前期支出庞大,需要投入强大的硬件和消耗大量能源,从而产生规模经济并促进集中化。 挖矿也没有提出任何将资产锁定作为抵押品的要求,这限制了被攻击后协议惩罚不良行为者的能力。 + +和工作量证明相比,过渡到权益证明让以太坊的安全性与去中心化得到显著提升。 参与该网络的人越多,网络去中心化程度越高,面临攻击时也越安全。 + +采用权益证明共识机制为[我们现在拥有的安全、环保和可扩展的以太坊](/roadmap/vision/)奠定了基础。 + + + 如果你有兴趣成为验证者并帮助保护以太坊,请点击此处了解更多关于质押的信息。 + + +### 设置分片 {#setting-up-for-sharding} + +在信标链与最初的以太坊主网合并后,以太坊社区开始寻求扩展该网络。 + +权益证明的优势是,在任何给定时间都有全部已批准的区块生产者的记录,每个区块生产者都质押了以太币。 这个记录不但为分开治理奠定了基础,还可靠地划分了具体的网络责任。 + +这种责任与工作量证明形成对比,在工作量证明中,矿工对网络没有义务,可以立即停止挖矿并永久关闭其节点而不会受到任何影响。 而且,也没有已知区块提议者的记录,并且没有可靠的方法安全地划分网络责任。 + +[有关分片的更多信息](/roadmap/danksharding/) + +## 升级间的关系 {#relationship-between-upgrades} + +以太坊的所有升级都存在一些关联。 所以我们来回顾一下信标链对其他升级的影响。 + +### 信标链和合并 {#merge-and-beacon-chain} + +最初,信标链与以太坊主网相互独立,但两者在 2022 合并。 + + + 合并 + + +### 分片和信标链 {#shards-and-beacon-chain} + +只有在已建立权益证明共识机制的情况下,分片才能安全进入以太坊生态系统。 信标链引入了质押,它与主网“合并”,为分片铺平了道路,以帮助进一步扩展以太坊。 + + + 分片链 + + +## 延伸阅读 + +- [有关以太坊未来升级的更多信息](/roadmap/vision) +- [有关节点架构的更多信息](/developers/docs/nodes-and-clients/node-architecture) +- [更多关于关权益证明的信息](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/zh/roadmap/danksharding/index.md b/public/content/translations/zh/roadmap/danksharding/index.md similarity index 100% rename from src/content/translations/zh/roadmap/danksharding/index.md rename to public/content/translations/zh/roadmap/danksharding/index.md diff --git a/public/content/translations/zh/roadmap/future-proofing/index.md b/public/content/translations/zh/roadmap/future-proofing/index.md new file mode 100644 index 00000000000..a8a28ea7f19 --- /dev/null +++ b/public/content/translations/zh/roadmap/future-proofing/index.md @@ -0,0 +1,38 @@ +--- +title: 打造面向未来的以太坊 +description: 无论未来会发生什么,这些升级都可以增强以太坊,使其成为可以适应未来需求的有韧性、去中心化的基础层。 +lang: zh +image: /roadmap/roadmap-future.png +alt: "以太坊路线图" +template: roadmap +--- + +路线图的部分内容并不是对于以太坊的短期扩展或保护而言必不可少,但可以为以太坊长期稳定性和可靠性奠定基础。 + +## 量子抗性 {#quantum-resistance} + +当量子计算成为现实时,目前一些用于保护以太坊安全的加密技术将会受到威胁。 尽管量子计算机可能还需要几十年才能对现代加密技术构成真正的威胁,但以太坊的构建方式要保证以太坊在未来几个世纪内都保持安全。 这意味着要尽快使[以太坊具备量子抗性](https://consensys.net/blog/developers/how-will-quantum-supremacy-affect-blockchain/)。 + +以太坊开发者面临的挑战是,当前的权益证明协议依赖一种非常高效的签名方案(即 BLS)对有效区块的投票进行聚合。 这种签名方案会被量子计算机破解,但是具有量子抗性的替代方案没有那么高效。 + +在以太坊的多个地方使用的、用于生成密码学密钥的[“KZG”承诺方案](/roadmap/danksharding/#what-is-kzg)面临量子计算时存在漏洞。 目前,这个问题是通过“可信设置”来规避的,即多个用户生成的随机性无法被量子计算机逆向工程。 然而,理想的解决方案就是采用量子安全加密技术。 可以替代 BLS 方案的高效方法主要有两种:[基于 STARK ](https://hackmd.io/@vbuterin/stark_aggregation)和[基于点阵的](https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-lattice-encryption-326ac66e3175)签名方案。 这些方法仍在研究和原型开发阶段。 + + 阅读了解 KZG 和可信设置的相关内容。 + +## 简化以太坊,提高以太坊效率 {#simpler-more-efficient-ethereum} + +复杂性会导致出现可以被攻击者利用的错误或漏洞。 因此,路线图的一部分是简化以太坊,并删除那些在各种升级后留存但不再需要或可以改进的代码。 更精简、更简单的代码库更容易被开发者维护和推理。 + +我们将对[以太坊虚拟机 (EVM)](/developers/docs/evm)进行多项更新,使其更简单和更高效。 其中包括[删除 SELFDESTRUCT 操作码](https://hackmd.io/@vbuterin/selfdestruct),该命令很少使用、不再需要,并且在某些情况下使用可能会带来危险,特别是当与以太坊存储模型的其他未来升级结合时。 以太坊客户端还支持一些旧的交易类型,现在可以完全将其删除。 可以改进计算燃料的方式,并引入更高效的算法来支持一些密码操作的运算。 + +同样,现有以太坊客户端的其他部分也可以进行更新。 例如,目前执行和共识客户端使用不同类型的数据压缩。 当整个网络统一压缩方案时,客户端之间共享数据将变得更加简单直观。 + +## 当前进展 {#current-progress} + +为防止以太坊未来被淘汰而需要进行的大部分升级仍处于研究阶段,可能需要数年时间才能实现。 删除 SELF-DESTRUCT 指令和统一执行和共识客户端中使用的压缩方案等升级,可能会比抗量子加密技术更早实现。 + +**延伸阅读** + +- [燃料](/developers/docs/gas) +- [EVM 以太坊虚拟机](/developers/docs/evm) +- [数据结构](/developers/docs/data-structures-and-encoding) diff --git a/public/content/translations/zh/roadmap/index.md b/public/content/translations/zh/roadmap/index.md new file mode 100644 index 00000000000..100553cc2ae --- /dev/null +++ b/public/content/translations/zh/roadmap/index.md @@ -0,0 +1,117 @@ +--- +title: 以太坊路线图 +description: 提高以太坊可扩展性、安全性和可持续性的路径。 +lang: zh +template: roadmap +image: /roadmap/roadmap-main.png +alt: "以太坊路线图" +summaryPoints: +buttons: + - label: 进一步升级 + toId: 即将发生什么变化 + - label: 以往升级 + to: /history/ + variant: 简要 +--- + +以太坊已经是一个强大的全球协调平台,但它仍在不断改进。 我们制定的一套雄心勃勃的改进措施将使以太坊从目前的形式升级为一个可以完全扩展、具有最大弹性的平台。 以太坊路线图呈现了这些升级。 + +**若要了解以太坊之前的升级,请访问我们的[历史记录](/history/)页面** + +## 以太坊将发生什么变化? {#what-changes-are-coming} + +以太坊路线图概述了以太坊未来将对协议作出的具体改进。 总的来说,该路线图将给以太坊用户带来以下好处: + + + + + + + + +## 为什么以太坊需要一份路线图? {#why-does-ethereum-need-a-roadmap} + +以太坊定期升级,以提高其可扩展性、安全性或可持续性。 以太坊的核心优势之一是随着研究和开发产生的新的思想而不断进化。 这种适应性使以太坊得以灵活应对新出现的挑战,紧跟最先进的技术突破。 + + + +因为协议的技术性很强,所以路线图主要是研究人员和开发人员多年来工作的结果,但任何有意向的人都可以参与进来。 相关想法往往是在 [ethresear.ch](https://ethresearch.ch/)、[以太坊魔术师](https://www.figma.com/exit?url=https%3A%2F%2Fethereum-magicians.org%2F) 等论坛或以太币研发 Discord 服务器讨论时产生的。 它们可能是对发现的新漏洞的反馈、来自位于应用层的组织(如去中心化应用和交易所)的建议或对于最终用户面临的问题(例如成本或交易速度)的建议。 这些想法一旦成熟,就可以作为 [以太坊改进建议](https://eips.ethereum.org/) 提出。 整个过程都是公开进行的,社区的任何人可以随时发表意见。 + +[关于以太坊治理的更多信息](/governance/) + + + + +

ETH2 是什么?

+ +

在以太坊转用权益证明之前,“Eth2” 一词通常用于描述以太坊的未来,但它已被淘汰,被更加准确的术语取代。它最初被用来区分转用权益证明之前和之后的以太坊网络,有时被用来指不同的以太坊客户端(执行客户端有时被称为 ETH1 客户端,共识客户端有时被称为 ETH2 客户端)。

+ +
+ +## 以太坊的路线图是否会随着时间的推移而改变? {#will-ethereums-roadmap-change-over-time} + +是的,几乎肯定会。 路线图是目前的以太坊升级计划,涵盖近期计划和未来计划。 我们预计路线图会随着新的信息和技术的出现而改变。 + +我们将以太坊路线图视为改进以太坊的一整套计划;这是研究人员和开发人员对以太坊最佳发展道路的最佳假设。 + +## 路线图将何时完成? {#when-will-the-roadmap-be-finished} + +以太坊将在今后 6 个月内实施一些升级(例如质押提款) - 其他升级的优先性较低,可能在今后 5-10 年内不会实施(例如量子计算抗性)。 我们很难预测每次升级的确切完成时间,因为许多路线图项目是以不同速度平行进行和开发的。 随着时间的推移,升级的紧迫性也可能由于外部因素而发生变化(例如,量子计算机的性能和可用性突然飞跃可能会使抗量子计算加密技术的紧迫性提高)。 + +思考以太坊发展的一种方法是类比生物进化。 虽然随着网络的性能、可拓展性和安全性越来越强,需要对协议进行的更改越来越少,但一个能够适应新挑战和保持健康的网络仍然比抗拒变化的网络更有可能成功。 + +## 升级时我要做什么吗? {#do-i-have-to-do-anything-when-there-is-an-upgrade} + +升级往往不会对最终用户产生影响,除非提供更好的用户体验、更安全的协议以及更多与以太坊互动的选项。 最终用户既不需要积极参与升级,也不需要采取任何行动来保护资产。 节点运营商需要更新其客户端以准备升级。 某些升级可能导致应用开发者更改。 例如,历史数据到期升级可能需要应用开发者从新的来源获取历史数据。 + +## Verge、Splurge 等升级是什么? {#what-about-the-verge-splurge-etc} + +[Vitalik Buterin 提出了以太坊线路图](https://twitter.com/VitalikButerin/status/1588669782471368704)的愿景,根据对以太坊架构的影响,该路线图将升级分为几个类别。 这包括: + +- 合并:涉及从工作量证明转为权益证明的升级 +- Surge:涉及通过卷叠和数据分片进行扩展的升级 +- Scourge:涉及抗审查性、去中心化和最大可提取价值的协议风险的升级 +- Verge:涉及更轻松地验证区块的升级 +- Purge:涉及降低运营节点的计算成本和简化协议的升级 +- Splurge:不属于上述类别的其他升级 + +我们决定不使用这些术语,因为我们希望使用更简单、更以用户为中心的模型。 虽然我们使用是以用户为中心的语言,但我们的愿景仍与 Vitalik 提出的愿景相同。 + +## 什么是分片? {#what-about-sharding} + +分片是指将以太坊区块链分割开来,让一部分验证者只负责全部数据的一小部分。 这最初是用于扩展以太坊的一种方式。 然而,二层卷叠的发展速度远远快于预期,已经实现了大量扩展,并且在 Proto-Danksharding 实施后还将实现比现在多很多的扩展。 这意味着不再需要"分片链",因此已将其从路线图中删除。 + +## 正在寻求什么特定技术升级? {#looking-for-specific-technical-upgrades} + +- [Danksharding](/roadmap/danksharding) - Danksharding 通过向以太坊区块添加数据块,为用户大大降低二层卷叠成本。 +- [质押提现](/staking/withdrawals) - 上海/卡佩拉升级启用了以太坊质押提款,允许用户解锁质押的以太币。 +- [单时隙确定性](/roadmap/single-slot-finality)-让区块可以在同一时隙内提议和最终确定,无需等待 15 分钟。 这提高了应用的便利性,大大增加了攻击难度。 +- [提议者-构建者分离方案](/roadmap/pbs) - 将区块构建和区块提议任务分给不同验证者,为以太坊达成共识提供了一种更公平、更抗审查和更高效的方式。 +- [秘密领袖选举](/roadmap/secret-leader-election) - 采用巧妙的加密技术可以确保当前区块提议者的身份不被公开,从而保护他们免受某些类型的攻击。 +- [帐户抽象](/roadmap/account-abstraction) -帐户抽象是一种在以太坊上为智能合约钱包提供本地支持而非使用复杂中间件的升级。 +- [沃克尔树](/roadmap/verkle-trees) - 沃克尔树是一种数据结构,可用于在以太坊上启用无状态客户端。 这些“无状态”客户端只需要很小的存储空间,但仍然能够验证新的区块。 +- [无状态](/roadmap/statelessness) - 无状态客户端将能够验证新区块,而无需存储大量数据。 这可以为运营节点带来很多好处,而成本仅为目前的一小部分。 diff --git a/public/content/translations/zh/roadmap/merge/index.md b/public/content/translations/zh/roadmap/merge/index.md new file mode 100644 index 00000000000..6ef27949c1b --- /dev/null +++ b/public/content/translations/zh/roadmap/merge/index.md @@ -0,0 +1,229 @@ +--- +title: 合并 +description: 了解合并 - 以太坊主网何时采用权益证明机制。 +lang: zh +template: upgrade +image: /upgrades/merge.png +alt: +summaryPoint1: 以太坊主网采用权益证明机制,但情况并非一直如此。 +summaryPoint2: 从原有的工作量证明机制过渡到权益证明机制的升级称为合并。 +summaryPoint3: 合并是指原有的以太坊主网与单独的权益证明区块链即信标链合并,现已成为一条链。 +summaryPoint4: 合并将使以太坊的能源消耗减少大约 99.95%。 +--- + + + 合并于 2022 年 9 月 15 日执行, 它完成了以太坊向权益证明共识的过渡,以太坊正式弃用了工作量证明并将能源消耗减少了约 99.95%。 + + +## 什么是合并? {#what-is-the-merge} + +合并是指以太坊的原有执行层(从[创世块](/history/#frontier)开始就一直存在的主网)加入其新的权益证明共识层,即信标链。 合并摒弃了消耗大量能源的挖矿,而是通过质押以太币来保护网络的安全。 这是实现以太坊愿景 — 可扩展性、安全性和可持续性更强 — 这一过程中真正激动人心的一步。 + + + +[信标链](/roadmap/beacon-chain/)最初是与[主网](/glossary/#mainnet)分开上线的。 以太坊主网(所有帐户、余额、智能合约和区块链状态)仍继续由[工作量证明](/developers/docs/consensus-mechanisms/pow/)保护,即便与此同时,与之一起运行的信标链采用[权益证明](/developers/docs/consensus-mechanisms/pos/)。 合并是指这两个系统最终整合在一起之时,而工作量证明被权益证明永久取代。 + +想象一下,以太坊是一艘还没有完全准备好进行星际航行的就已经起飞的宇宙飞船。 借助信标链,社区构建了新的引擎和坚固的外壳。 经过大量测试,是时候在飞行途中通过“热插拔”用新引擎更换旧引擎了。 将新的、更高效引擎装入现有飞船后,飞船就能够开始许多光年的航行并占领整个宇宙。 + +## 与主网合并 {#merging-with-mainnet} + +直到合并之前,工作量证明一直保护着以太坊主网的安全。 这使得我们都习惯的以太坊区块链在 2015 年 7 月诞生,并且具有我们熟悉的所有功能 — 交易、智能合约、帐户等等。 + +纵观以太坊的历史,开发人员一直在为从工作量证明到权益证明的最终过渡做准备。 信标链于 2020 年 12 月 1 日创建,它作为独立的区块链与主网一起运行。 + +信标链最开始并不处理主网上的交易。 而是通过对活跃的验证者及其账户余额达成一致来就自己的状态达成共识。 经过广泛测试后,是时候让信标链就真实数据上达成共识了。 合并后,信标链将成为所有网络数据的共识引擎,包括执行层交易和账户余额。 + +合并代表正式转变成使用信标链作为区块生产引擎。 挖矿将不再是生产有效区块的手段。 而是由权益证明验证者承担这个角色,并且现在负责处理所有交易的有效性及提出区块。 + +历史记录不会在合并中丢失。 随着主网与信标链合并,它还合并以太坊的整个交易历史记录。 + + +这种向权益证明的过渡改变了以太币的发行方式。 了解有关合并前后以太币发行的更多信息。 + + +### 用户与持有者 {#users-holders} + +**对于持有者/用户而言,合并不会带来任何变化。** + +*再次提醒:*作为以太币或以太坊上任何其他数字资产的用户或持有者,以及非节点运营的质押人,**不需要在合并之前对你的资金或钱包做任何事情以加入合并。**以太币还是以太币。 没有像“旧以太币”/“新以太币”或“以太坊 1”/“以太坊 2”这样说法,钱包在合并前后的工作方式一样 — 告诉你其他说法人很可能是骗子。 + +虽然权益证明替代了工作量证明,但是以太坊自创世块以来的全部历史记录都完整保留且没有改变。 合并前你钱包里的所有资金在合并后仍可使用。 **你不需要采取任何行动来升级。** + +[有关以太坊安全的更多内容](/security/#eth2-token-scam) + +### 节点运营商与去中心化应用程序开发者 {#node-operators-dapp-developers} + + + +主要操作项目包括: + +1. 同时运行共识层客户端和执行层客户端;合并之后,获取执行数据的第三方端点将不可用。 +2. 使用共享 JWT 密钥对执行层和共识层客户端进行身份验证,以便它们能够安全地通信。 +3. 设置“费用接收人”地址,以接收你赚取的交易费的小费/矿工可提取价值。 + +如果没有完成上述操作的前两项,会导致你的节点被视为“离线”,直到这两层都完成同步和身份验证。 + +不设置“费用接收人”将仍然允许验证者像往常一样运行,但你将无法获得交易费小费和矿工可提取价值,这些你原本可以在你的验证者提出的区块中赢得。 + + + + +在合并之前,执行层客户端(比如 Geth、Erigon、Besu 或 Nethermind)足以接收、正确验证和传播由网络传播的区块。 合并之后,包含在执行负载中的交易的有效性也将取决于包含它的“共识区块”的有效性。 + +因此,一个完整的以太坊节点现在同时需要执行层客户端和共识层客户端。 这两种客户端使用一个新的引擎应用程序接口协同工作。 该引擎应用程序接口需要使用 JWT 密钥进行身份验证,密钥提供给两种客户端以允许安全通信。 + +主要行动项目包括: + +- 除了安装执行客户端外,还需要安装共识客户端 +- 使用共享的 JWT 秘钥对执行客户端和共识客户端进行身份验证,以便它们可以安全地彼此通信。 + +如果不能及时完成上述项目,在合并之后你的节点会显示为“离线”,直到两层都同步并通过身份验证。 + + + + + +合并导致共识层发生变化,其中还包括以下方面的变化:< + +
    +
  • 区块结构
  • +
  • 时隙/区块时间
  • +
  • 操作码变化
  • +
  • 链上随机性的来源
  • +
  • 安全头部区块最终确定区块的概念
  • +
+ +有关详细信息,请查看 Tim Beiko 的博客文章“合并对以太坊的应用程序层有何影响”。 + +
+ +## 合并和能源消耗 {#merge-and-energy} + +合并标志着以太坊工作量证明的终结,从此以太坊将进入一个可持续性更强、更加环保的时代。 以太坊的能耗预计会下降 99.95%,这使得以太坊成为一个绿色环保的区块链。 了解有关[以太坊能源消耗](/energy-consumption/)的更多信息。 + +## 合并与扩容 {#merge-and-scaling} + +合并还为工作量证明下无法实现的进一步可扩展性升级奠定了基础,使以太坊距离实现[以太坊愿景](/roadmap/vision/)中概述的全面可扩展、安全性和可持续性更近一步。 + +## 合并的误区 {#misconceptions} + + + +以太坊节点有两种类型:可以提议区块的节点和不能提议区块的节点。 + +可以提议区块的节点只占以太坊节点总数的一小部分。 这类节点包括工作量证明 (PoW) 下的挖矿节点和权益证明 (PoS) 下的验证者节点。 该类别需要投入经济资源(例如工作量证明中的 GPU 哈希算力或权益证明中的质押以太币),以换取有时提出下一个区块并获得协议奖励的能力。 + +网络上的其他节点(例如大部分节点)不需要投入任何经济资源,只需一台有着 1 到 2 TB 的可用存储空间并且可以连接互联网的消费级计算机即可。 这些节点不提出区块,但它们仍然在网络安全中扮演着关键的角色,通过监听新的区块,在区块到达时根据网络共识机制验证它们的有效性,并对所有的区块产出负责任。 如果区块是有效的,节点将继续通过网络传播它。 如果区块出于任何原因无效,节点软件将会忽略它将他视为无效区块并停止传播。 + +在任一共识机制(工作量证明或权益证明)下,任何人都可以运行非区块生产节点;我们强烈建议所有有能力的用户都这样做。 运行一个节点对以太坊非常有价值,并为任何运行节点的个人提供额外的好处,如改进的安全性、隐私性和抗审查性。 + +让任何人都拥有运行自己的节点的能力对于维持以太坊网络的去中心化极其重要。 + +更多关于运行你自己的节点的信息 + + + + + +燃料费用是网络需求受限于网络容量的产物。 合并弃用了工作量证明,过渡到权益证明共识机制,但这并不会明显改变直接影响网络容量和吞吐量的任何参数。 + +根据以卷叠为中心的路线图,工作重点是扩展用户在二层网络的活动,同时使一层主网成为安全的去中心化结算层,针对卷叠数据存储进行优化,帮助迅速降低卷叠交易费用。 转变成权益证明机制是实现这一点的关键先导步骤。 更多关于燃料和费用的信息。 + + + + +交易的“速度”可用多种方式衡量,既可以是入块时间,也可以是最终确定的时间。 这些变化都是很轻微的,用户不会注意到 + +以前,工作量证明机制的目标是每 13.3 秒产生一个新的区块。 在权益证明机制下,时隙每 12 秒精确出现一次,每个时隙都是验证者发布区块的机会。 大多数时隙都有区块产出,但不一定全部都有(即验证者离线)。 在权益证明机制下,区块的产生频率比工作量证明下提升了约 10%。 这是一个相当微不足道的变化,用户不太可能注意到。 + +权益证明引入了以前不存在的交易最终确定概念。 在工作量证明机制下,回滚一个区块的难度将随着在它之后因交易产生的区块数目的增加而呈指数增长,但这个难度却永远不会归零。 在权益证明机制下,区块打包在一起放入由验证者投票的时段中,时段为 6.4 分钟的时间跨度,包含 32 次出块机会。 当一个时段结束时,验证者投票来决定是否认为该时段“合理”。 如果验证者同意证明该时段的合理性,它将在下一个时段中最终确定。 撤销最终确定的交易在经济上是不可行的,因为它需要获得并销毁超过 1/3 的质押以太币总量。 + + + + + +在刚刚合并后,质押者只能获得因提议区块而赚取的小费和最大可提取价值。 这些奖励会被记入由验证者(称为费用接收者)控制的非质押帐户,并可以立即获得。 这些奖励与因履行验证者职责而获得的协议奖励区分开。 + +在上海/卡佩拉网络升级后,质押者现在可以指定一个提款地址,开始接收自动支付的任何超额质押余额(协议奖励中超过 32 以太币的部分)。 这次升级还使验证者可以在退出网络时解锁并收回全部余额。 + +更多关于质押提款的信息 + + + + +上海/卡佩拉升级启用提款功能后,我们鼓励所有验证者将超过 32 以太币的质押余额提取出来,因为这些资金不会增加收益并且不提取还会被锁定。 根据年化利率(由质押的以太币总量决定),验证者可能会退出以提取他们的全部余额,或者使用他们的奖励增加质押,以赚取更多收益。 + +这里有一项重要限制,协议对验证者的退出速度设置了限制,每个时段只允许退出一定数量的验证者(每 6.4 分钟退出 1 个)。 这一限制会根据活跃验证者的数量浮动,但每天可以退出网络的验证者数量为质押以太币总数的大约 0.33%。 + +这样可以防止质押资金大规模流出。 另外,还可以防止掌握一大部分质押以太币总量的潜在攻击者进行可遭致罚没的行为,然后在同一时段、协议能够执行罚没之前退出/提取违规所得的所有验证者余额。 + +以太坊故意将年化利率设置为动态,以便市场上的质押人权衡他们愿意为保护网络付出多少资金。 如果利率过低,验证者将按照协议限制的速度退出。 这样会逐渐提高所有留下来的验证者的年化利率,从而吸引新的质押人加入或者退出的质押人回归。 + + +## “以太坊 2”发生了什么? {#eth2} + +“以太坊 2”一词已弃用。 在将“以太坊 1”和“以太坊 2”合并为一条链之后,将不再需要区分两个不同 的以太坊网络;只有以太坊。 + +为了减少混乱,社区更新了这些条款: + +- “以太坊 1”现在是处理交易和执行的“执行层”。 +- “以太坊 2”现在是处理权益证明共识的“共识层”。 + +这些术语的更新仅会改变命名约定;不会改变以太坊的目标及路线图。 + +[了解有关“以太坊 2”重命名的更多信息](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) + +## 升级间的关系 {#relationship-between-upgrades} + +以太坊所有升级都存在一些关联。 因此,让我们回顾一下合并与其他升级的关系。 + +### 合并与信标链 {#merge-and-beacon-chain} + +合并表示正式采用信标链作为原有主网执行层的新共识层。 合并之后,将分配验证者以保护以太坊主网的安全,[工作量证明](/developers/docs/consensus-mechanisms/pow/)机制下的挖矿将不再是有效的区块生产方式。 + +相反,区块由验证节点提出,验证节点质押以太币以获得参与共识的权利。 这些升级为未来的可扩展性升级(包括分片)奠定了基础。 + + + 信标链 + + +### 合并与上海升级 {#merge-and-shanghai} + +为了简化并确保顺利过渡到权益证明,合并升级没有包括某些预期的功能,如提取质押以太币的功能。 该功能是通过上海/卡佩拉升级单独启用的。 + +如果感兴趣,请参阅 Vitalik 在 2021 年 4 月的 ETHGlobal 活动中发表的演讲“[合并后会发生什么](https://youtu.be/7ggwLccuN5s?t=101)”,了解更多信息。 + +### 合并与分片 {#merge-and-data-sharding} + +最初的计划是在合并之前进行分片,以解决可扩展性问题。 然而,随着[二层网络扩容解决方案](/layer-2/)方兴未艾,工作重点已经变成首先从工作量证明过渡到权益证明。 + +分片计划正在迅速发展,但随着扩展交易执行的二层网络技术的兴起和成功,分片计划已变为寻找最佳的负载分配方式,来存储来自卷叠合约中的压缩调用数据,这使得网络容量呈指数级增长。 如果不先过渡到权益证明,这是不可能的。 + + + 分片 + + +## 延伸阅读 {#further-reading} + + + + diff --git a/src/content/translations/zh/roadmap/merge/issuance/index.md b/public/content/translations/zh/roadmap/merge/issuance/index.md similarity index 100% rename from src/content/translations/zh/roadmap/merge/issuance/index.md rename to public/content/translations/zh/roadmap/merge/issuance/index.md diff --git a/src/content/translations/zh/roadmap/pbs/index.md b/public/content/translations/zh/roadmap/pbs/index.md similarity index 100% rename from src/content/translations/zh/roadmap/pbs/index.md rename to public/content/translations/zh/roadmap/pbs/index.md diff --git a/public/content/translations/zh/roadmap/scaling/index.md b/public/content/translations/zh/roadmap/scaling/index.md new file mode 100644 index 00000000000..99d7500cf54 --- /dev/null +++ b/public/content/translations/zh/roadmap/scaling/index.md @@ -0,0 +1,47 @@ +--- +title: 以太坊扩容 +description: 卷叠链下批量处理交易,从而降低用户的成本。 然而,当前卷叠在数据使用上存在高昂的成本,限制了交易费用的降低。 Proto-Danksharding 解决了这个问题。 +lang: zh +image: /roadmap/roadmap-transactions.png +alt: "以太坊路线图" +template: roadmap +--- + +以太坊使用[二层](/layer-2/#rollups)网络(也称为“卷叠”)进行扩展,卷叠批量处理交易并将结果发送到以太坊上。 尽管卷叠比以太坊主网便宜多达八倍,但还可以进一步优化,以降低最终用户的成本。 卷叠还依赖于一些中心化的组件,随着卷叠的成熟,开发者可以逐步移除这些组件。 + + +
    +
  • 目前,卷叠比以太坊一层网络便宜大约 3-8 倍
  • +
  • 零知识卷叠将很快把费用降低约 40-100 倍
  • +
  • 即将进行的以太坊变更会再次扩容 100-1000 倍
  • +
  • 用户将从中受益,交易成本降至不足 0.001 美元
  • +
+
+ +## 让数据更实惠 {#making-data-cheaper} + +卷叠会收集、执行大量的交易,并将结果提交到以太坊。 这会生成大量数据,这些数据需要公开,以便任何人都能执行交易并验证卷叠运营商的诚实性。 如果有人发现交易有出入,就会提出质疑。 + +### Proto-Danksharding {#proto-danksharding} + +卷叠数据永久存储在以太坊上,这导致费用昂贵。 用户在卷叠中支付的超过 90% 的交易费用是由于这种数据存储造成的。 为了减少交易费用,我们可以将数据转移到新的临时“二进制大对象”中存储。 由于二进制大对象不是永久性存储,所以相对便宜。一旦不再需要这些数据,可以将它们从以太坊中删除。 长期存储卷叠数据将由需要者负责,例如卷叠运营商、交易所、索引服务等。 向以太坊添加数据块交易是被称作“Proto-Danksharding”的升级的一部分。 该升级预计将较快上线 — 可能是 2023 年底。 + +在 Proto-Danksharding 将二进制大对象交易变为以太坊协议的一部分之后,将可以向以太坊区块添加很多二进制大对象。 这会进一步大幅(>100 倍)提高以太坊吞吐量、降低交易费用。 + +### Danksharding {#danksharding} + +拓展二进制大对象数据的第二阶段十分复杂,因为它需要以新的方式检查网络上卷叠数据的可用性,并依赖验证者们分离它们的区块构建和区块提出责任。 同时,它还需要以一种加密方式证明验证者已验证二进制大对象数据的小子集。 + +这个第二步名为[“Danksharding”](/roadmap/danksharding/)。 它可能还需要几年才能完全实现。 Danksharding 依赖于其他开发工作,例如[分离区块构建和区块提出](/roadmap/pbs),以及进行新网络设计,让网络能够通过一次性随机采样少许千字节数据即可高效确认数据可用性,这称为“[数据可用性采样 (DAS)](/developers/docs/data-availability)”。 + +更多关于 Danksharding 的信息 + +## 去中心化卷叠 {#decentralizing-rollups} + +[卷叠](/layer-2)已经在对以太坊扩容。 一个[丰富的卷叠项目生态系统](https://l2beat.com/scaling/tvl)正在使用户能够在一系列安全保证下快速和低成本地进行交易。 然而,卷叠目前是通过中心化的排序者(在提交给以太坊之前进行所有交易处理和聚合的计算机)来引导的。 这容易审查,因为这些排序运营商可能会受到制裁、受贿、或因其他原因妥协。 与此同时,[卷叠在验证传入数据的方式上也存在差异](https://l2beat.com)。 最好的方法是让“证明者”提交欺诈证明或有效性证明,但不是所有卷叠都实现了这一点。 甚至那些使用了有效性/欺诈证明的卷叠也仅使用少数已知的证明者。 因此,以太坊扩容的下一个重要步骤是向更多人分配运行排序者和证明者的责任。 + +更多关于卷叠的信息 + +## 当前进展 {#current-progress} + +Proto-Danksharding 可能是较早实现的路线图项目之一。 设置该升级所需要的去中心化计算步骤已经落地,一些客户端已经实现了处理二进制大对象数据的原型。 由于 Danksharding 依赖于路线图中一些其他需要首先完成的项目,所以其全面实现可能仍需数年。 卷叠基础设施去中心化很可能是一个渐进过程 - 存在许多不同的卷叠,它们正在建立的系统略有不同,并且完全去中心化的速度也不同。 diff --git a/src/content/translations/zh/roadmap/secret-leader-election/index.md b/public/content/translations/zh/roadmap/secret-leader-election/index.md similarity index 100% rename from src/content/translations/zh/roadmap/secret-leader-election/index.md rename to public/content/translations/zh/roadmap/secret-leader-election/index.md diff --git a/public/content/translations/zh/roadmap/security/index.md b/public/content/translations/zh/roadmap/security/index.md new file mode 100644 index 00000000000..77b60ca6c1f --- /dev/null +++ b/public/content/translations/zh/roadmap/security/index.md @@ -0,0 +1,48 @@ +--- +title: 更安全的以太坊 +description: 以太坊是现有的最安全和去中心化的智能合约平台。 然而,我们仍可以进行一些改进,以确保以太坊能够抵御未来任何程度的攻击。 +lang: zh +image: /roadmap/roadmap-security.png +alt: "以太坊路线图" +template: roadmap +--- + +以太坊已经是一个非常安全、去中心化的智能合约平台。 然而,我们仍可以进行一些改进,以确保以太坊能够抵御未来各种攻击。 这包括对以太坊客户端处理竞争区块的方式进行微调,以及提高网络认为区块[“最终确认”](/developers/docs/consensus-mechanisms/pos/#finality)(意味着在不对攻击者造成极端经济损失的情况下无法改变)的速度。 + +此外,还可以进行一些改进,使审查交易变得更加困难,比如对区块提议者隐藏区块的实际内容,或者采用新的方法来识别客户端何时在审查。 这些改进将共同升级权益证明协议,使从个人到企业的所有用户都对他们在以太坊上的应用程序、数据和资产随即产生信心。 + +## 质押提款 {#staking-withdrawals} + +从工作量证明升级到权益证明的过程始于以太坊的先驱们在存款合约中质押以太币。 这些以太币用于保护网络。 然而,这些以太币尚不能解锁并退还给用户。 允许提取以太币是权益证明升级的一个关键部分。 提款是功能完善的权益证明协议的关键组成部分,而且允许提款也有利于以太坊的安全性,因为这可以让质押人将以太币奖励用于其他非质押目的。 这意味着需要流动性的用户不必依赖于可能推动以太坊的中心化的流动性质押衍生品 (LSD)。 这项升级预定在 2023 年 4 月 12 日完成。 + +阅读关于提款的信息 + +## 防御攻击 {#defending-against-attacks} + +即使在提款后,仍然可以对以太坊的 [权益证明](/developers/docs/consensus-mechanisms/pos/)协议进行改进。 其中一项被称为[视图合并](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739) - 这是一种更安全的分叉选择算法,可以让某些复杂攻击更加困难。 + +减少以太坊最终确定区块所需的时间将可以改善用户体验,并防止复杂的“重组”攻击,即攻击者试图重组最近的区块以获取利润或审查特定交易。 [**单时隙最终确定性 (SSF)**](/roadmap/single-slot-finality/)是一种尽可能减少最终确定延迟的方式。 现在,攻击者理论上可以说服其他验证者重新配置 15 分钟的区块。 采用单时隙最终确定性后,该数值为 0。 从个人到应用程序和交易所,所有用户都可以从中受益,快速确保他们的交易不会被撤销,而网络也可以从中受益,防范一整类攻击。 + +了解单时隙最终确定性 + +## 防范审查 {#defending-against-censorship} + +去中心化可以防止个人或一小部分验证者的影响力过大。 新型质押技术有助于确保以太坊的验证者尽可能保持去中心化,同时还能防范硬件、软件和网络故障。 包括将验证者责任分散到多个节点的软件。 这被称为**分布式验证者技术 (DVT)**。 由于分布式验证者技术允许多台计算机共同参与验证,从而增加了冗余和容错性,因此我们鼓励质押池使用分布式验证者技术。 它还将验证者密钥分散到多个系统中,而不是由一个运营商运行多个验证者。 这增加了不诚实运营商协调对以太坊的攻击的难度。 总之,这种想法是由*社区*而非个人运行验证者,从而提高安全性。 + +了解分布式验证者技术 + +实施**提议者-构建者器分离 (PBS)** 将大大提高以太坊对审查的固有防范能力。 提议者-构建者器分离可以让一个验证者创建区块,另一个验证者在以太坊网络中广播区块。 这可以确保在整个网络中更加公平地分享利润最大化的区块构建算法带来的收益,**防止质押随着时间的推移集中到表现最好的机构质押人**。 区块提议者可以从区块构建者市场中选择收益最高的区块。 要进行审查,区块提议者往往需要选择收益较低的区块,这**在经济上不合理,而且很容易被网络上的其他验证者发现**。 + +提议者-构建者器分离还有一些潜在的附件功能,如加密交易和纳入清单,可以进一步提高以太坊的抗审查性。 这使得区块构建者和提议者无法看到其区块中包含的实际交易。 + +了解提议者-构建者分离 + +## 保护验证者 {#protecting-validators} + +老练的攻击者有可能识别出即将到来的验证者,并向它们发送垃圾邮件,以阻止它们提议区块。这被称为**拒绝服务 (DoS)**攻击。 实施[**秘密领袖选举 (SLE)**](/roadmap/secret-leader-election) 可以防止预先知道区块提议者,从而防范此类攻击。 其工作原理是对代表候选区块提议者的加密承诺进行不断混洗,并利用它们的顺序来决定选择哪个验证者,从而使验证者自己才能事先知道它们的顺序。 + +了解秘密领袖选举 + +## 当前进展 {#current-progress} + +路线图上的安全升级已进入高级研究阶段,但预计在一段时间内不会实施。 视图合并、提议者-构建者器分离、单时隙确定性和秘密领袖选举的下一步工作是最终确定规范并开始构建原型。 diff --git a/src/content/translations/zh/roadmap/single-slot-finality/index.md b/public/content/translations/zh/roadmap/single-slot-finality/index.md similarity index 100% rename from src/content/translations/zh/roadmap/single-slot-finality/index.md rename to public/content/translations/zh/roadmap/single-slot-finality/index.md diff --git a/src/content/translations/zh/roadmap/statelessness/index.md b/public/content/translations/zh/roadmap/statelessness/index.md similarity index 100% rename from src/content/translations/zh/roadmap/statelessness/index.md rename to public/content/translations/zh/roadmap/statelessness/index.md diff --git a/public/content/translations/zh/roadmap/user-experience/index.md b/public/content/translations/zh/roadmap/user-experience/index.md new file mode 100644 index 00000000000..fef7cebc856 --- /dev/null +++ b/public/content/translations/zh/roadmap/user-experience/index.md @@ -0,0 +1,36 @@ +--- +title: 改善用户体验 +description: 对于大多数人来说,使用以太坊仍然过于复杂。 为了促进以太坊的大规模普及,必须大幅降低其进入门槛 - 必须让用户在访问以太坊时,享受去中心化、无需许可和抗审查的好处,同时像使用传统的 Web2 应用一样丝滑顺畅。 +lang: zh +image: /roadmap/roadmap-ux.png +alt: "以太坊路线图" +template: roadmap +--- + +从管理密钥和钱包到发起交易,以太坊的使用过程都需要简化。 为了促进以太坊的大规模普及,必须大幅提升使用的便捷性,让用户在访问以太坊时,体验无需许可和抗审查的好处,同时像使用 Web2 应用一样丝滑顺畅。 + +## 超越助记词 {#no-more-seed-phrases} + +以太坊帐户由一对密钥保护,其中,公钥用于帐户识别,私钥用于消息签名。 私钥类似于主密码,提供以太坊帐户的完全访问权限。 对于更熟悉代表用户管理帐户的银行和 Web2 应用的人来说,这是一种完全不同的操作方式。 为了使以太坊在不依赖中心化第三方的情况下大规模普及,必须有一种方法,可以让用户简单顺畅地掌握自己的资产并控制自己的数据,且无需了解公私钥加密法和密钥管理。 + +这个问题的解决办法是使用智能合约与以太坊交互。 智能合约钱包提供了在密钥丢失或被盗时保护帐户的途径以及更好地发现和防范欺诈的机会,还可以让钱包拥有新功能。 虽然智能合约钱包现在已经存在,但很难构建,因为它们需要以太坊协议的更好支持。 这种额外支持被称为帐户抽象。 + +关于帐户抽象的更多信息 + +## 人人皆有节点 + +运行节点的用户不必依赖第三方为他们提供数据,他们可以快速、匿名且无需许可地与以太坊区块链交互。 然而,现在运行一个节点需要技术知识和大量磁盘空间,这意味着许多人不得不依赖第三方。 + +以太坊将进行几项升级,使节点更容易运行,资源密集程度更低。 存储数据的方式将改为使用被称为**沃克尔树**的更具空间效率的结构。 同时,通过[无状态性](/roadmap/statelessness)或[数据到期](/roadmap/statelessness/#data-expiry)升级,以太坊节点将不再需要存储完整的以太坊状态数据的拷贝,从而大幅降低硬盘空间需求。 [轻节点](/developers/docs/nodes-and-clients/light-clients/)将具备运营完整节点的许多好处,但是在手机或简单的浏览器应用中就可以轻松运行。 + +阅读关于沃克尔树的信息 + +通过这些升级,运行节点的障碍实际上减少到零。 用户将可以安全、无需许可地访问以太坊,且不需要在计算机或手机上牺牲大量磁盘空间或 CPU,在使用应用时,也不必依赖第三方提供数据或网络访问权限。 + +## 当前进展 {#current-progress} + +智能合约钱包已经推出,但需要进行更多升级以使其尽可能去中心化和无需许可。 EIP-4337 是一个成熟的提案,不需要对以太坊协议做出任何修改。 EIP-4337 需要的主要智能合约于 2023 年 3 月部署。 + +完全的无状态性仍处于研究阶段,可能还需要几年才能实现。 在通往完全无状态性的路上有许多里程碑,包括可能不久后就会实现的数据到期。 可能需要首先完成其他路线图项目,例如[沃克尔树](/roadmap/verkle-trees/)和[提议者-构建者分离](/roadmap/pbs/)。 + +沃克尔树测试网已经上线并运行,下一阶段是在私有测试网上运行启用沃克尔树的客户端,然后在公共测试网运行。 你可以通过在测试网部署智能合约或运行测试网客户端来帮助加速这一进程。 diff --git a/src/content/translations/zh/roadmap/verkle-trees/index.md b/public/content/translations/zh/roadmap/verkle-trees/index.md similarity index 100% rename from src/content/translations/zh/roadmap/verkle-trees/index.md rename to public/content/translations/zh/roadmap/verkle-trees/index.md diff --git a/src/content/translations/zh/security/index.md b/public/content/translations/zh/security/index.md similarity index 100% rename from src/content/translations/zh/security/index.md rename to public/content/translations/zh/security/index.md diff --git a/public/content/translations/zh/smart-contracts/index.md b/public/content/translations/zh/smart-contracts/index.md new file mode 100644 index 00000000000..63d6d0ab73c --- /dev/null +++ b/public/content/translations/zh/smart-contracts/index.md @@ -0,0 +1,84 @@ +--- +title: 智能合约 +description: 智能合约的非技术性介绍 +lang: zh +--- + +# 智能合约简介 {#introduction-to-smart-contracts} + +智能合约是以太坊应用程序层的基石。 它们是存储在区块链上的计算机程序,遵循“如果...那么...”(IFTTT) 逻辑,并且保证按照其代码定义的规则执行,智能合约一旦创建就无法更改。 + +Nick Szabo 创造了“智能合约”这一术语。 1994 年,他撰写了[智能合约简介](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html);1996 年,他撰写了[对智能合约潜在功能的探索](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html)。 + +Szabo 构想了一个数字市场,在这个市场中,自动化的、通过加密学保证安全的流程使得交易和商业功能可在不需要可信中介的情况下进行。 以太坊上的智能合约将这一设想付诸实践。 + +## 传统合约中的信任问题 {#trust-and-contracts} + +传统合约的最大问题之一是需要可信的个人来执行合约的结果。 + +下面是一个例子: + +Alice 和 Bob 要进行一场自行车比赛。 假设 Alice 和 Bob 打赌 $10 元她会赢得比赛。 Bob 相信自己会成为赢家并同意下注。 最后,Alice 远远领先 Bob 完成了比赛,并且毫无疑问是赢家。 但 Bob 拒绝支付赌注,声称 Alice 一定是作弊了。 + +这个荒唐的例子说明了所有非智能协议存在的问题。 即使协议条件得到满足(即你是比赛的获胜者),你仍然必须要信任对方会履行协议(即支付赌注)。 + +## 数字自动售货机 {#vending-machine} + +一个适合智能合约的简单比喻是自动售货机,其工作方式有点类似于智能合约 — 特定的输入保证预定的输出。 + +- 你选择一种产品 +- 自动售货机显示出价格 +- 你付款 +- 自动售货机验证你的付款金额是否正确 +- 自动售货机给你提供产品 + +只有在所有要求满足后,自动售货机才会提供你想要的产品。 如果你不选择产品或投入足够的钱,自动售货机将不会提供你选择的产品。 + +## 自动执行 {#automation} + +智能合约的主要优点是在满足特定条件时确定地执行清晰的代码。 无需等待人来执行或商量结果。 这消除了对可信中介的需求。 + +例如,你可以编写一个智能合约为孩子托管资金,并允许他们在特定日期后提取资金。 如果他们试图在指定日期前提取资金,智能合约将无法执行。 或者你可以编写一份合约,在你向经销商付款后它会自动授予你汽车的数字化所有权。 + +## 可预测的结果 {#predictability} + +传统合约比较含糊,因为它们依赖于人来解释和执行。 例如,两位法官可能会对合同有不同的解释,这可能会导致不一致的判决和不公平的结果。 智能合约消除了这种可能性。 然而,智能合约会根据合约代码中写入的条件精确执行。 这种精确性意味着在相同情况下,智能合约将产生相同的结果。 + +## 公开的记录 {#public-record} + +智能合约可用于审计和跟踪。 由于以太坊智能合约位于公共区块链上,任何人都可以立即跟踪资产转移和其他相关信息。 例如,你可以检查是否有人向自己的地址发送了资金。 + +## 隐私保护 {#privacy-protection} + +智能合约还可以保护你的隐私。 由于以太坊是匿名网络(你的交易公开绑定到唯一的加密地址,而不是你的身份),你可以保护你的隐私不受观察者窥探。 + +## 可查看的条款 {#visible-terms} + +最后一点,与传统合约一样,你可以在签署(或以其他方式与之交互)之前检查智能合约的内容。 智能合约的透明性保证了任何人都可以进行审查。 + +## 智能合约用例 {#use-cases} + +其他计算机程序可以做的事情,智能合约基本上都可以做。 + +它们可以执行计算、创建货币、存储数据、铸造非同质化代币、发送通信甚至生成图形。 以下是一些常见的真实示例: + +- [稳定币](/stablecoins/) +- [创建和分发独特的数字资产](/nft/) +- [自动、开放的货币交易所](/get-eth/#dex) +- [去中心化游戏](/dapps/?category=gaming) +- [自动赔付的保单](https://etherisc.com/) +- [允许创建定制、可互操作货币的标准](/developers/docs/standards/tokens/) + +## 更愿意通过视频学习? {#visual-learner} + +观看 Finematics 解释智能合约: + + + +## 延伸阅读 {#further-reading} + +- [智能合约将如何改变世界](https://www.youtube.com/watch?v=pA6CGuXEKtQ) +- [智能合约:将要取代律师的区块链技术](https://blockgeeks.com/guides/smart-contracts/) +- [面向开发者的智能合约](/developers/docs/smart-contracts/) +- [学习编写智能合约](/developers/learning-tools/) +- [精通以太坊 — 什么是智能合约?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/public/content/translations/zh/social-networks/index.md b/public/content/translations/zh/social-networks/index.md new file mode 100644 index 00000000000..a1b5ea3a121 --- /dev/null +++ b/public/content/translations/zh/social-networks/index.md @@ -0,0 +1,121 @@ +--- +title: 去中心化社交网络 +description: 以太坊去中心化社交网络概览 +lang: zh +template: use-cases +emoji: ":mega:" +sidebarDepth: 2 +image: /ethereum-learn.png +summaryPoint1: 基于区块链的社交互动与内容平台的创建和分配。 +summaryPoint2: 去中心化社交媒体网络可保护用户隐私并增强数据安全性。 +summaryPoint3: 代币和非同质化代币创造了一种将内容货币化的新方法。 +--- + +社交网络在我们的日常交流和互动中发挥着重要作用。 然而,这些平台的集中控制产生了许多问题:数据泄露、服务器中断、去平台化、审查和侵犯隐私是社交媒体经常做出的一些取舍。 为了解决这些问题,开发人员正在以太坊上构建社交网络。 去中心化社交网络可以解决传统社交网络平台的诸多问题,提升用户的整体体验。 + +## 什么是去中心化社交网络? {#what-are-decentralized-social-networks} + +去中心化社交网络是基于区块链的平台,允许用户交换信息以及向受众发布和分发内容。 由于这些应用程序在区块链上运行,它们能够去中心化并抵制审查和不当控制。 + +许多去中心化的社交网络已成为现有社交媒体服务的替代品,例如 Facebook、LinkedIn、Twitter 和 Medium。 但基于区块链的社交网络有许多领先于传统社交平台的功能。 + +### 去中心化的社交网络是如何工作的? {#decentralized-social-networks-overview} + +去中心化社交网络是一类[去中心化应用程序 (dapps)](/dapps/) - 由部署在区块链上的[智能合约](/developers/docs/smart-contracts/)驱动的应用程序。 合约代码充当这些应用程序的后端并定义它们的业务逻辑。 + +传统社交媒体平台依靠数据库来存储用户信息、程序代码和其他形式的数据。 但这会产生单点故障并带来重大风险。 例如,去年 Facebook 的服务器[离线了数个小时](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact),切断了用户与平台的连接。这件事引起了极差的反响。 + +去中心化社交网络存在于由全球数千个节点组成的对等网络上。 即使某些节点发生故障,网络也将不间断地运行,使应用程序能够抵御故障和中断。 + +基于以太坊建立的社交网络使用类似[星际文件系统 (IPFS)](https://ipfs.io/) 之类的去中心化存储系统,可以保护用户信息免遭利用和恶意使用。 没有人会将你的个人信息出售给广告商,黑客也无法窃取你的机密信息。 + +许多基于区块链的社交平台都有原生代币,可以在没有广告收入的情况下实现货币化。 用户可以购买这些代币来访问某些功能、完成应用内购买或打赏他们最喜欢的内容创作者。 + +## 去中心化社交网络的好处 {#benefits} + +1. 去中心化社交网络可抵御审查,并对所有人开放。 这意味着用户不能被任意禁止、被社交平台禁言或遭到限制。 + +2. 去中心化社交网络建立在开源理念的基础上,并使应用程序的源代码可供公众查看。 通过去除传统社交媒体中常见的不透明算法,基于区块链的社交网络可以使用户和平台创建者的利益保持一致。 + +3. 去中心化社交网络淘汰了“中间人”。 内容创建者对其内容拥有直接所有权,他们直接与关注者、粉丝、买家和其他各方互动,双方之间仅有智能合约。 + +4. 由于去中心化应用程序在由全球节点对等网络提供支持的以太坊网络上运行,去中心化社交网络受服务器停机和中断的影响较小。 + +5. 去中心化社交平台通过非同质化代币 (NFT)、应用程序内加密支付等为内容创建人提供改进的货币化框架。 + +6. 去中心化的社交网络为用户提供了高度的隐私和匿名性。 例如,个人可以使用以太坊域名服务的配置文件或钱包登录基于以太坊的社交网络,而无需共享可识别个人信息 (PII),例如姓名、电子邮件地址等。 + +7. 去中心化社交网络依赖于去中心化存储,而不是中心化数据库。在保护用户数据方面,前者更加优秀。 + +## 以太坊上的去中心化社交网络 {#ethereum-social-networks} + +由于其代币 (ERC-20/ERC-721) 的流行和庞大的用户群,以太坊网络已成为开发人员打造去中心化社交媒体的首选工具。 以下是基于以太坊的社交网络的一些示例: + +### Peepeth {#peepeth} + +[Peepeth](https://peepeth.com/) 是一个类似于 Twitter 的微博平台。 它在以太坊区块链上运行,并使用 IPFS 来存储用户数据。 + +用户可以发送名为“Peep”的短信,这些短信不能删除或修改。 你可以在不离开应用程序的情况下用以太币 (ETH) 收取赏钱或打赏给平台上的任何人。 + +### Mirror {#mirror} + +[Mirror](https://mirror.xyz/) 是一个支持 web3 的写作平台,旨在实现去中心化并被用户所有。 用户只需连接钱包即可在 Mirror 上免费读写。 用户还可以收集写作作品并订阅他们喜欢的作者。 + +在 Mirror 上发布的帖子会永久存储在去中心化存储平台 Arweave 上,并且可以作为铸造为可收集的[非同质化代币 (NFT)](/nft/),称为写作 NFT。 创造写作 NFT 对作者来说是完全免费的,并且收集发生在以太坊二层——这使得交易成本低、快速且环保。 + +### MINDS {#minds} + +[MINDS](https://www.minds.com/) 是最常用的去中心化社交网络之一。 它的运作方式与 Facebook 类似,并且已经吸引了数百万用户。 + +用户使用平台原生的 ERC-20 代币 $MIND 来支付物品价格。 用户还可以通过发布热门内容、为生态系统做出贡献以及将其他人推荐给平台来赚取 $MIND 代币。 + +## 以太坊上的 Web2 社交网络 {#web2-social-networks-and-ethereum} + +[Web3](/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/),用户可以通过发布优质内容和为在线社区 (subreddit) 做出贡献来赚取。 你可以在 subreddit 中兑换这些代币以[获得独有的特权和福利](https://www.reddit.com/community-points/)。 对于这个项目,Reddit 正在与 Arbitrum 合作,后者是旨在扩展以太坊交易的[第 2 层](/layer-2/)汇总。 + +该程序已经上线,r/CryptoCurrency 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 年 1 月,Twitter Blue [开始支持非同质化代币](https://mashable.com/article/twitter-blue-nft-profile-picture),允许用户连接他们的钱包并将非同质化代币展示为个人资料图片。 在撰写本文时,这家社交媒体公司还[宣布,计划](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web)在将来打造一个去中心化社交网络。 + +### Instagram {#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 是一个安全的消息收发应用程序,使用开源、对等协议和端到端加密来保护你的消息免受第三方侵害。_ +- **[Mirror.xyz](https://mirror.xyz/)** - _Mirror 是一个基于以太坊的去中心化、用户所有发布平台,供用户众筹创意、将内容货币化并创建高价值社区。_ +- **[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} + +- [去中心化社交媒体阐述](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ +- [DeSo 区块链希望将社交媒体去中心化](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ +- [去中心化社交媒体,以及 Balaji Srinivasan、Vitalik Buterin、Juan Benet 的未来](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ + +### 社区 {#communities} + +- [Status Discord Server](https://discord.com/invite/3Exux7Y) +- [Mirror Discord Server](https://discord.com/invite/txuCHcE8wV) +- [r/CryptoCurrency subreddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/zh/staking/dvt/index.md b/public/content/translations/zh/staking/dvt/index.md similarity index 100% rename from src/content/translations/zh/staking/dvt/index.md rename to public/content/translations/zh/staking/dvt/index.md diff --git a/public/content/translations/zh/staking/pools/index.md b/public/content/translations/zh/staking/pools/index.md new file mode 100644 index 00000000000..1d6dfea64ad --- /dev/null +++ b/public/content/translations/zh/staking/pools/index.md @@ -0,0 +1,86 @@ +--- +title: 联合质押 +description: 简要介绍如何开始以太币联合质押 +lang: zh +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-pool.png +alt: 莱斯利犀牛在泳池中游泳。 +sidebarDepth: 2 +summaryPoints: + - 通过联合其他人质押任意数量的以太币获得奖励 + - 跳过硬件部分,将验证者操作委托给第三方 + - 在自己的钱包中保存质押代币 +--- + +## 什么是质押池? {#what-are-staking-pools} + +激活一组验证者密钥需要 32 个以太币,而质押池这种协作方式使拥有少量以太币的人能够满足这一条件。 协议本身并不支持联合功能,因此需要单独创建解决方案来满足这一需求。 + +一些资金池使用智能合约运行,资金会存入一个合约中,该合约以去信任的方式管理和跟踪你的质押,并向你发放代表该价值的代币。 其他资金池不涉及智能合约,而是在链下促成。 + +## 为什么要联合质押? {#why-stake-with-a-pool} + +除了我们在[质押简介](/staking/)中概述的好处之外,联合质押还有许多独有益处。 + + + + + + + + + +## 需考虑事项 {#what-to-consider} + +联合质押和委托质押并未得到以太坊的原生支持,但是为满足用户质押少于 32 个以太币的需求,越来越多的方案已经开始建立。 + +每种质押池和它们使用的工具或智能合约均由不同的团队创建,因此都各有优点和风险。 质押池能够让用户使用以太币兑换代表已质押以太币的代币。 代币的用处在于允许用户在去中心化交易所将任意数量的以太币兑换成同等数量的可产生收益的代币,从底层质押以太币的质押奖励获得回报(反之亦然),即便实际上以太币仍然在共识层上质押。 这意味着,可以快速便捷地在产生收益的质押以太币产品和“原始以太币”之间进行双向兑换,同时兑换数量不必是 32 个以太币的整数倍。 + +然而,这些被质押的以太币往往会导致类似垄断的行为 — 大量质押的以太币最终处于少数中心化组织的控制之下,而非散布于许多独立的个人手中。 这就为审查或价值提取创造了条件。 质押的黄金标准应该始终是尽可能在自己的硬件上运行验证者的个人。 + +[更多关于质押代币相关风险的信息](https://notes.ethereum.org/@djrtwo/risks-of-lsd)。 + +下面使用属性指标来表示所列质押池可能具有的显著优势或劣势。 选择要加入的池时,请使用本节作为参考,了解我们如何定义这些属性。 + + + +## 探索质押池 {#explore-staking-pools} + +有多种方案可帮助你进行设置。 上述指标可引导你了解如何使用下方的工具。 + + + + + +请注意,选择重视[客户端多样性](/developers/docs/nodes-and-clients/client-diversity/)的服务很重要,因为这样可以提高网络安全性,还可以限制你的风险。 “执行客户端多样性”“共识客户端多样性”表明服务可证明其在限制使用主流客户端。 + +想要推荐其他未提到的质押工具吗? 可以查看我们的[产品上线政策](/contributing/adding-staking-products/),确定你推荐的质押工具是否合适,合适的话,请提交以供审核。 + +## 常见问题 {#faq} + + +通常,ERC-20 质押代币会发行给质押人,代表其质押以太币的价值以及奖励。 请记住,不同资金池向用户发放质押奖励的方法也略有不同,但主题却是相同的。 + + + +现在!马上! 上海/卡佩拉网络升级发生在 2023 年 4 月,并引入了质押提款。 支持质押池的验证者帐户现在能够退出并将以太币提取到他们指定的提款地址。 这样你便能够赎回自己那部分质押的底层以太币。 请咨询你的提供商,了解他们如何支持此功能。 + +或者,使用 ERC-20 质押代币的资金池允许用户在公开市场上交易该代币,从而使你能够出售你的质押头寸,有效地“提款”,而无需实际从质押合约中移除以太币。 + +更多关于质押提款的信息 + + + +这些联合质押方案和中心化交易所之间有许多相似之处,例如能够质押少量以太币并将它们捆绑在一起以激活验证者。 + +与中心化交易所不同,许多其他联合质押方案使用智能合约和/或质押代币,质押代币通常是 ERC-20 代币,可以保存在你自己的钱包中并像其他任何代币一样买卖。 这样你就可以控制自己的代币,从而获得了一定的自主权和安全性,但仍旧你还是无法直接控制在后台代表你进行验证的验证者客户端。 + +涉及到支持它们的节点时,一些联合质押方案比其他方案更加分散。 为了加强网络的健康和去中心化程度,我们始终鼓励质押人选择一种无需许可即可实现节点运营商去中心化的联合服务。 + + +## 延伸阅读 {#further-reading} + +- [以太坊质押目录](https://www.staking.directory/) - _Eridian 和 Spacesider_ +- [火箭池质押 - 质押概述](https://docs.rocketpool.net/guides/staking/overview.html) - _火箭池文档_ +- [用 Lido 质押以太坊](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Lido 帮助文档_ diff --git a/public/content/translations/zh/staking/saas/index.md b/public/content/translations/zh/staking/saas/index.md new file mode 100644 index 00000000000..02d35fa337d --- /dev/null +++ b/public/content/translations/zh/staking/saas/index.md @@ -0,0 +1,95 @@ +--- +title: 质押即服务 +description: 简要介绍如何开始以太币联合质押 +lang: zh +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-saas.png +alt: 莱斯利犀牛在云中漂浮。 +sidebarDepth: 2 +summaryPoints: + - 第三方节点运营商负责你的验证者客户端的操作 + - 对于那些拥有 32 个以太币但是不能解决运行节点的技术问题的人来说,这是个很好的选择 + - 降低信任并保持你对提款密钥的控制权 +--- + +## 什么是质押即服务? {#what-is-staking-as-a-service} + +质押即服务 (“SaaS") 代表一类质押服务,采用这种服务的用户会存入 32 个以太币用于验证者,但是将节点运营委托给第三方运营商执行。 这个过程通常需要你按引导完成初始设置,包括密钥生成和存款,然后将你的签名密钥上传给运营商。 这项服务将代表你运行验证者,通常按月收费。 + +## 为什么需要质押服务? {#why-stake-with-a-service} + +以太坊协议本身并不支持质押委托,于是这类服务便为了满足这一需求而建。 如果你有 32 个以太币需要质押,但是没有合适的硬件设备,那么质押即服务可以使你在使用运营商硬件设施的同时获得区块奖励。 + + + + + + + + + +## 需考虑事项 {#what-to-consider} + +为了满足人们质押以太币的需求,质押即服务提供商的数量不断增长,但每位提供商的优势与风险不尽相同。 相比于自行质押,所有质押即服务方案都需要进一步的信任假设。 质押即服务方案可能使用更多代码包装以太坊客户端,而且这些代码未公开且不可审计。 质押即服务还会对网络去中心化造成有害影响。 取决于设置情况,你可能无法控制自己的验证者 - 运营者在使用你的以太币时可能会缺失诚信。 + +下列属性指标可以用来衡量市场上质押即服务供应商的优势或劣势。 在选择帮你度过质押之旅的服务时,请使用本节作为参考,了解我们如何定义这些属性。 + + + +## 探索质押服务提供商 {#saas-providers} + +以下是一些可用的质押即服务提供商。 你可以利用上述指标来辅助你选择。 + + + +### 质押即服务提供商 + + + +请注意支持[客户端多样性](/developers/docs/nodes-and-clients/client-diversity/)的重要性,因为它可以提高网络安全性,并限制你的风险。 “执行客户端多样性”“共识客户端多样性”表明服务可证明其在限制使用主流客户端。 + +### 密钥生成器 + + + +想要推荐其他未提到的质押即服务提供商吗? 可以查看我们的[产品上线政策](/contributing/adding-staking-products/),确定你推荐的质押工具是否合适,合适的话,请提交以供审核。 + +## 常见问题 {#faq} + + +不同的提供商会有不同的安排,但通常情况下,他们都会指导你设置所需的签名密钥(每 32 个以太币需要一个签名密钥),并将这些密钥上传给你的服务提供商,让他们代表你进行验证。 这些签名密钥本身并没有提现、转帐或者花费你资金的权限。 他们只提供为达成共识而投票的权限,如果投票执行方式不恰当,可能会受到离线处罚或罚没。 + + + +由此可见, 每个帐户都由 BLS 签名密钥和 BLS 提款密钥组成。 为了让验证者证明链的状态、参与同步委员会并提出区块建议,签名密钥必须易于验证者客户端访问。 为此签名密钥必须以某种形式与互联网连接,所以它们本质上被认为是“热”密钥。 这是验证者能够参与证明的必要条件,因此,出于安全原因,用于转移或提取资金的密钥是单独分开的。 + +BLS 提款密钥用于签署一次性信息,声明质押奖励和退出的资金应该转入哪个执行层帐户。 在该信息广播后,不再需要 BLS 提款密钥。 然而,已提取资金的控制权将永久委托给你提供的地址。 因此,你可以设置一个用自己的冷存储保护的提款地址,即使有人控制了你的验证者签名密钥,也可以最大程度降低验证者资金的风险。 + +更新提款凭证是进行提款的必需步骤\*。 此过程包括使用自己的助记词生成提款密钥。 + +确保安全备份该助记词,否则在需要时将无法生成提款密钥。 + +\*提供了提款地址和初始存款的质押人不需要设置此项。 如需有关准备验证者方面的支持,请联系你的质押即服务提供商。 + + + +2023 年 4 月,上海/卡佩拉升级实现了质押提款功能。 质押人需要提供一个提款地址(如果在初始存款时没有提供),并将开始每隔几天定期自动分发奖励支付。 + +验证者还能够以验证者身份完全退出,这种情况下,他们剩余的以太币余额将解锁以供提取。 提供执行提款地址并完成退出流程的帐户将在下次验证者扫描时在提供的提款地址收到其全部余额。 + +更多关于质押提款的信息 + + + +使用质押即服务提供商,你需要将节点运营委托给别人。 这伴随着一些你不能控制的节点性能不佳的风险。 如果你的验证者受到罚没,你的验证者余额将因处罚而遭受损失,验证者也将从验证者池中强行移除。 + +在罚没/退出流程结束后,这些资金将转移到分配给验证者的提款地址。 需要提供一个提款地址才能实现资金转移。 提款地址可能已在初次存款时提供。 如果没有提供,就需要使用验证者提款密钥签署一条声明提款地址的信息。 如果没有提供提款地址,资金将保持锁定状态,直到提供提款地址为止。 + +有关任何担保或保险方案的详细信息,以及如何提供提款地址的说明,请联系各质押即服务提供商。 如果你想完全控制你的验证者设置,请详细了解如何单独质押以太币。 + + +## 延伸阅读 {#further-reading} + +- [以太坊质押目录](https://www.staking.directory/) - _Eridian 和 Spacesider_ +- [评估质押服务](https://www.attestant.io/posts/evaluating-staking-services/) - _Jim McDonald 2020_ diff --git a/public/content/translations/zh/staking/solo/index.md b/public/content/translations/zh/staking/solo/index.md new file mode 100644 index 00000000000..c80fc1614bc --- /dev/null +++ b/public/content/translations/zh/staking/solo/index.md @@ -0,0 +1,204 @@ +--- +title: 单独质押你的以太币 +description: 简要介绍如何单独质押你的以太币 +lang: zh +template: staking +emoji: ":money_with_wings:" +image: /staking/leslie-solo.png +alt: 莱斯利犀牛在自己的电脑芯片上。 +sidebarDepth: 2 +summaryPoints: + - 直接从协议中获得最大奖励,以保持你的验证者正常运行和在线 + - 运行家用硬件并自行加入以太坊网络的安全和去中心化 + - 消除信任依赖,始终自己掌控资金密钥 +--- + +## 什么是单独质押? {#what-is-solo-staking} + +单独质押是指运行一个连接到互联网的[以太坊节点](/run-a-node/),并存入 32 个以太币以激活一个[验证者](#faq),使你有能力直接参与网络共识。 + +**单独质押增强了以太坊网络的去中心化**,使以太坊更加抗审查,更加稳健,能够抵御攻击。 其他质押方法可能不会给网络带来同样的助益。 单独质押是保护以太坊的最佳质押方案。 + +一个以太坊节点既包括执行层 (EL) 客户端,也包括共识层 (CL) 客户端。 这些客户端是一套共同工作的软件,拥有一套有效的签名密钥,以验证交易和区块、证明链头的正确性、汇总认证和提交区块。 + +单独质押用户负责操作运行这些客户端所需的硬件。 强烈建议使用一台专用机器在家进行操作,这对网络安全非常有益。 + +单独质押人可以直接从协议中获得奖励,以保持他们的验证者在线并正常运行。 + +## 为什么要单独质押? {#why-stake-solo} + +单独质押让你承担更大的责任,但会让你对资金和质押设置拥有最大的控制权。 + + + + + + + +## 单独质押前的考量 {#considerations-before-staking-solo} + +尽管我们希望每个人都能无风险地进行单独质押,但这并不现实。 在选择单独质押以太币之前,有一些实际和严肃的事项需要记住。 + + + +在操作自己的节点时,你应该花一些时间学习如何使用你所选择的软件。 这涉及到阅读相关文档,以及了解开发团队的沟通渠道。 + +你对所运行的软件和权益证明的原理了解得越多,作为一名质押人的风险就越小,也越容易解决在节点运行过程中可能出现的任何问题。 + + + +节点设置要求用户能够熟练使用计算机,尽管随着时间的推移,新的工具正在使其变得更容易。 了解命令行界面会有帮助,但并非必需。 + +节点设置还需要用户对基本的硬件设置,以及最低推荐规格有一些了解。 + + + +就像私钥保护以太坊地址的方式一样,你也需要为验证者单独生成密钥。 你必须了解如何保护好助记词或私钥的安全。{' '} + +以太坊的安全性和防范欺诈 + + + +硬件设施会发生故障,网络连接会出错,客户端软件也需要升级。 因此节点维护不可避免,需要你偶尔关注。 你要确保知道任何预期的网络升级,或其他关键的客户端升级。 + + + +你的回报与你的验证者在线并正确验证的时间成正比。 宕机会导致一定比例的处罚,具体与有多少其他验证者同时离线有关,但不会导致罚没。 同时网络带宽也很重要,因为如果没有及时收到认证,奖励就会减少。 建议至少要有 10 Mb/s 的上行和下行带宽。 + + + +与离线导致的怠工处罚不同,罚没是一种更严重的处罚,专门针对恶意违规。 同一时间只在一台机器上运行加载你密钥的客户端,你被罚没的风险可以降到最低。 总得来说,所有质押人都必须意识到被罚没的风险。 + +更多关于惩罚和验证者生命周期的信息 + + + + + +## 工作原理 {#how-it-works} + + + +在线时你将赢得以太币奖励,奖励将定期存入你的提款地址。 + +如果需要,你可以验证者身份退出,这样就不需要在线,也不会再有任何奖励。 之后,你的余额将提取到你在设置过程指定的提款地址。 + +[更多关于质押提款的信息](/staking/withdrawals/) + +## 开始使用 Staking Launchpad {#get-started-on-the-staking-launchpad} + +Staking Launchpad 是一个开源应用程序,可帮助你成为质押人。 它将指导你选择客户端、生成密钥并将你的以太币存入质押存款合约。 会提供一份清单,确保已经涵盖安全设置验证者需要的所有内容。 + + + +## 使用节点和客户端设置工具时应考虑的事项 {#node-tool-considerations} + +有越来越多的工具和服务可以帮助你单独质押以太币,但每种工具和服务的风险和收益各不相同。 + +下面使用属性指标来表示列出的质押工具可能具有的显著优势或劣势。 在选择帮你度过质押之旅的工具时,请使用本节作为参考,了解我们如何定义这些属性。 + + + +## 探索节点和客户端设置工具 {#node-and-client-tools} + +有多种方案可帮助你进行设置。 上述指标可引导你了解如何使用下方的工具。 + + + +### 节点工具 + + + +请注意选择[非主流客户端](/developers/docs/nodes-and-clients/client-diversity/)的重要性,因为可以提高网络安全性,并限制你的风险。 可让你设置非主流客户端的工具称为“多客户端”。 + +### 密钥生成器 + +这些工具可用来替代[质押存款命令行接口](https://github.com/ethereum/staking-deposit-cli/),帮助生成密钥。 + + + +想要推荐其他未提到的质押工具吗? 可以查看我们的[产品上线政策](/contributing/adding-staking-products/),确定你推荐的质押工具是否合适,合适的话,请提交以供审核。 + +## 探索单独质押指南 {#staking-guides} + + + +## 常见问题 {#faq} + +下面是一些关于质押的最常见问题,值得了解一下。 + + + +验证者是一个虚拟实体,存在于以太坊上并参与以太坊协议的共识。 验证者由余额、公钥和其他属性信息表示。 验证者客户端是通过持有并使用验证者的私钥代表验证者行动的软件。 一个验证者客户端可以持有多个密钥对,从而控制多个验证者。 + + + + +每个与验证者相关的密钥对都需要正好 32 个以太币才能激活。 将更多以太币存入一对密钥并不能增加可能获得的奖励,因为每个验证者的有效余额被限制为 32 个以太币。 这意味着质押时需要以 32 个以太币为单位递增,每个验证者都有自己的一套密钥和余额。 + +不要为一个验证者存入超过 32 以太币的资金。 这样做不会增加你的奖励。 如果为验证者设置了提款地址,超过 32 个以太币多余资金将在下一次验证者扫描时自动提取到该地址。 + +如果单独质押对你来说要求太高,可以考虑使用质押即服务提供商,或者如果你的资金少于 32 个以太币,则可以考虑联合质押。 + + + +在网络最终确认时下线,不会导致罚没。 如果你的验证者在某个周期(每个周期 6.4 分钟)内无法进行验证,就会导致少量的怠工处罚,但这与罚没有很大不同。 这些处罚比你在验证者可用的情况下获得的奖励要少一些,而且损失可以通过将验证者上线大约相等的时间赚回来。 + +请注意,对怠工验证者的处罚与有多少个验证者同时下线成正比。 在大部分网络参与者同时离线的情况下,对每个验证者的处罚会比单个验证者怠工所受的处罚大。 + +在极端情况下,如果网络因超过三分之一的验证者离线而停止最终确认,这些验证者将受到所谓的二次怠惰惩罚,离线验证者帐户中的以太币将遭受指数级损失。 这时以太坊网络将通过消耗怠工验证者的以太币进行自我修复,直到他们的余额达到 16 个以太币,此时他们将自动从验证者池中退出。 剩余在线的验证者最终将再次超过 2/3,从而满足再次最终确认链的绝对多数要求。 + + + +简而言之,虽然永远不能完全保证,但如果你真诚行事,运行非主流客户端,并且每次只在一台机器上保留你的签名密钥,你被罚没的风险几乎为零。 + +只有几种特定的情况会导致验证者被罚没并从网络中退出。 在撰写本文时,已经发生的罚没事件完全是冗余硬件设置的产物,即签名密钥同时存储在两台不同的机器上。 这可能会无意中导致你的密钥出现两次投票,这是一种可被罚没的行为。 + +运行主流客户端(任何被超过 2/3 的用户使用的客户端)也存在可能被罚没的风险,比如该客户端有一个导致链分叉的错误。 这可能会导致一个有问题的分叉被最终确认。 要纠正并返回预定链,需要提交一个环绕投票,以尝试撤销最终确定的区块。 这也是一种可被罚没的行为,可以通过运行非主流客户端来避免。 + +非主流客户端中的等效错误永远不会被最终确认,因此也不会导致环绕投票,只会导致怠工处罚,而非罚没。 + + + + + +各个客户端在性能和用户界面方面可能略有不同,因为每个客户端都是由不同的团队使用不同编程语言开发的。 这意味着,它们之中没有“最好的”。 所有生产用客户端都是优秀的软件,它们都执行相同的核心功能,即与区块链进行同步和交互。 + +由于所有生产用客户端都提供相同的基本功能,所以选择一个非主流客户端实际上非常重要,即并未被网络上大多数验证者使用的任何客户端。 这听起来可能有悖常理,但运行多数或绝对多数人使用的客户端会使你在该客户端出现错误时面临更大的罚没风险。 运行一个少数人使用的客户端可以极大地降低这些风险。 + +详细了解为什么客户端多样性至关重要 + + + +虽然虚拟专用服务器 (VPS) 可用于替代家庭硬件设施,但你的验证者客户端的物理访问和位置确实很重要。 使用中心化云计算解决方案(如亚马逊网络服务或 Digital Ocean)的便捷之处在于,你不必拥有和操作硬件设施,但代价是网络需要中心化。 + +在一个中心化云存储解决方案上运行的验证者客户端越多,对这些用户来说就越危险。 任何使这些提供商离线的事件,无论是攻击、监管要求,还是电力/互联网中断,都会导致每个依赖于该服务器的验证者客户端同时离线。 + +离线处罚与有多少其他验证者同时离线成正比。 使用虚拟专用服务器会大大增加离线处罚的风险,并在大范围宕机的情况下增加你的二次惩罚或罚没的风险。 为了尽量降低你自己的风险,以及以太坊网络的风险,我们强烈建议用户获取并操作自己的硬件。 + + + + +从信标链上进行任何类型的提款都需要设置提款凭据。 + +新质押人在生成密钥和存款时设置提款凭据。 尚未设置提款凭证的现有质押人可以升级他们的密钥,以支持提款功能。 + +设置提款凭据后,奖励支付(最初的 32 个以太币累积的以太币奖励)将自动定期分发到提款地址。 + +要解锁并收回全部余额,还必须完成验证者退出流程。 + +更多关于质押提款的信息 + + +## 延伸阅读 {#further-reading} + +- [以太坊质押目录](https://www.staking.directory/) - _Eridian 和 Spacesider_ +- [以太坊客户端多样性问题](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ +- [帮助实现客户端多样性](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ +- [以太坊共识层的客户端多样性](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ +- [如何选购以太坊验证者的硬件](https://www.youtube.com/watch?v=C2wwu1IlhDc)- _EthStaker 2022_ +- [加入以太坊 2.0 测试网的详细步骤](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _Butta_ +- [以太坊 2 防止罚没小技巧](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raul Jordan 2020_ diff --git a/public/content/translations/zh/staking/withdrawals/index.md b/public/content/translations/zh/staking/withdrawals/index.md new file mode 100644 index 00000000000..4fd7234e87f --- /dev/null +++ b/public/content/translations/zh/staking/withdrawals/index.md @@ -0,0 +1,218 @@ +--- +title: 质押提款 +description: 本页面概述质押推送提款是什么,它们如何工作,质押人需要做什么才能获得奖励 +lang: zh +template: staking +image: /staking/leslie-withdrawal.png +alt: 犀牛莱斯利与她的质押奖励 +sidebarDepth: 2 +summaryPoints: + - 上海/卡佩拉升级实现了以太坊上的质押提款功能。 + - 验证者操作员必须提供一个提款地址以启用 + - 奖励每隔几天自动分发 + - 完全退出质押的验证者将收到他们的剩余余额 +--- + + +2023 年 4 月 12 日进行的上海/卡佩拉升级已实现质押提款功能。 更多关于上海/卡佩拉升级的信息 + + +**质押提款**是指将以太币从以太坊共识层(信标链)上的验证者帐户转移到可以进行交易的执行层。 + +用户提供提款地址后,超过 32 个以太币的余额的**奖励支付**将自动定期发送到和每个验证者相关的提款地址。 用户还可以**完全退出质押**,解锁他们全部的验证者余额。 + +## 质押奖励 {#staking-rewards} + +对于有效余额已满 32 ETH 的活跃验证者帐户,奖励支付将自动处理。 + +通过奖励获得的超过 32 ETH 的余额实际上并不构成本金,也不会增加该验证者在网络上的权重,因此每隔几天会自动提取作为奖励支付。 除了一次性提供提款地址外,这些奖励不需要验证者操作员采取任何行动。 这都是在共识层启动的,因此在任何步骤都不需要燃料(交易费)。 + +### 我们怎么发展到现在的? {#how-did-we-get-here} + +在过去的几年里,以太坊经历了几次网络升级,从依赖能源密集型挖矿的网络转变为由以太坊本身保护的网络。 现在,在以太坊上参与共识被称为“质押”,因为参与者自愿锁定以太币,将其“押注”以参与网络。 遵守规则的用户将获得奖励,而尝试欺骗的行为可能会受到惩罚。 + +自 2020 年 11 月推出质押存款合约以来,一些勇敢的以太坊先驱者自愿锁定资金以激活“验证者”,验证者即遵循网络规则有权正式证明和提出区块的特殊帐户。 + +在上海/卡佩拉升级之前,你可能无法使用或访问自己质押的以太币。 但现在,你可以选择在选定的帐户自动接收你的奖励,也可以随时提取质押的以太币。 + +### 我应该如何准备? {#how-do-i-prepare} + + + +### 重要通知 {#important-notices} + +为任何验证器帐户提供提款地址是一个必需的步骤,否则无法从其余额中提取以太币。 + + + 每个验证者帐户一次只能分配一个提款地址。一旦选择地址并提交到共识层,就无法撤消或再次更改。 在提交前,请仔细检查所提供地址的所有权和准确性。 + + +同时,如果你的助记符/助记词在离线时一直保持安全,没有受到任何损害。不提供提款地址不会给你的资金带来任何威胁。 未添加提款凭据只会将以太币保持锁定在验证者帐户中,直到提供提款地址为止。 + +## 完全退出质押 {#exiting-staking-entirely} + +在从验证者帐户余额中转移*任何*资金之前,必须提供提款地址。 + +希望完全退出质押并取回全部余额的用户还必须使用验证者密钥签署并广播一个“自愿退出”的消息,这将启动退出质押的过程。 此操作通过你的验证者客户端完成,并提交给你的共识节点,无需燃料。 + +验证者从抵押退出的过程所需时间不同,具体取决于同时退出的人数。 一旦完成,此帐户将不再负责执行验证者网络职责,不再有资格获得奖励,并且不再拥有“质押”的以太币。 此时,该帐户将被标记为完全“可提款”。 + +一旦帐户被标记为“可提款”,并且已提供提款凭据,用户除了等待之外,无需再做任何事情。 区块提议者会自动且持续地扫描是否有可退出资金,并在下一次扫描期间将你帐户的余额全额转移(也称为“全额提款”)。 + +## 何时启用质押提款? {#when} + +质押提款已经上线! 提款功能已在 2023 年 4 月 12 日进行的上海/卡佩拉升级中实现。 + +上海/卡佩拉升级后,可以将之前质押的以太币收回到普通以太坊帐户中。 这就结束了质押流动性循环,并使以太坊向着建立一个可持续、可扩展、安全的去中心化生态系统迈进一步。 + +- [更多关于以太坊历史的信息](/history/) +- [更多关于以太坊路线图的信息](/roadmap/) + +## 提款支付是如何运作的? {#how-do-withdrawals-work} + +特定验证者是否有资格提款取决于验证者帐户本身的状态。 在任何时候,都不需要用户输入来确定帐户是否应该发起提款,整个过程由共识层在连续循环中自动完成。 + +### 更愿意通过视频学习? {#visual-learner} + +请查看 Finematics 对以太坊质押提款的解释: + + + +### 验证者“扫描” {#validator-sweeping} + +当验证者被安排提议下一个区块时,需要构建一个最多包含 16 个合格提款的提款队列。 首先从验证者索引 0 开始,根据协议规则判断该帐户是否有合格的提款,如果有,则将其添加到队列中。 被安排提议下一个区块的验证者将从上一个验证者离开的地方继续,无限期地按顺序进行。 + + +想象一个模拟时钟。 时钟的指针指向小时,朝一个方向前进,不跳过任何小时,最后在达到最后一个数字后再次回到开始。

+现在,想象这个时钟不再是 1 至 12,而是从 0 到 N(在共识层上注册的验证者帐户的总数,截至 2023 年 1 月已超过 500,000 个)。

+时钟的指针指向需要检查是否符合提款条件的下一个验证者。 它从 0 开始,不跳过任何帐户,一直前进。 当达到最后一个验证者时,循环从头开始继续。 +
+ +#### 检查帐户的提款 {#checking-an-account-for-withdrawals} + +在提议者扫描验证者以寻找可能的提款时,使用一系列简短的问题评估正接受检查的每个验证者,以确定是否应触发提款,如果是,应提取多少以太币。 + +1. **是否已提供提款地址?**如果未提供提款地址,则跳过该帐户,不会发起提款。 +2. **验证者是否已退出且可提款?**如果验证者已完全退出,并且我们已到达帐户被视为“可提款”的时段,那么将处理全额提款。 这将把所有剩余余额转移到提款地址。 +3. **有效余额是否达到 32 的最大值?** 如果帐户具有提款凭证,尚未完全退出,并且有超过 32 的奖励在等待,将处理部分提款,只将超过 32 的奖励转移到用户的提款地址。 + +在验证者生命周期中,验证者操作员只会执行以下两个直接影响此流程的操作: + +- 提供提款凭证以启用任何形式的提款 +- 退出网络,这将触发全额提款 + +### 免燃料费 {#gas-free} + +这种质押提款方法不需要质押人手动提交交易来请求提款特定数量以太币。 这意味着**不需要提交燃料费(交易费)**,并且提款也不争夺现有的执行层区块空间。 + +### 我会多久收到一次质押奖励? {#how-soon} + +单个区块最多可处理 16 笔提款。 以这个速度计算,每天可处理 115,200 个验证者提款(假设没有错过任何时隙)。 如上所述,没有符合条件的提款的验证者将被跳过,这将减少完成扫描所需的时间。 + +扩展这个算法,我们可以预估处理特定数量的提款所需的时间: + + + +| 提款数量 | 所需时间 | +| :------: | :------: | +| 400,000 | 3.5 天 | +| 500,000 | 4.3 天 | +| 600,000 | 5.2 天 | +| 700,000 | 6.1 天 | +| 800,000 | 7.0 天 | + + + +正如你所看到的,随着网络上的验证者数量增加,完成该过程的速度也会变慢。 错过的时隙数增加可能成比例减慢提款速度,但这通常代表了可能的结果中较慢的情况。 + +## 常见问题 {#faq} + + +不,提供提款凭证的过程只需进行一次,一旦提交后就无法更改。 + + + +通过设置执行层提款地址,该验证者的提款凭证已永久更改。 这意味着旧的提款凭证将不再起作用,新的提款凭证将指向执行层帐户。 + +提款地址可以是智能合约(由其代码控制),也可以是外部拥有的帐户(EOA,由其私钥控制)。 目前,这些帐户无法向共识层传回信息以表示验证者凭证已更改,而添加此功能将给协议增加不必要的复杂性。 + +作为更改特定验证者提款地址的替代方案,用户可以选择设置智能合约作为他们的提款地址,该智能合约可以处理密钥轮换,例如 Safe。 将资金去向设置为自己的外部帐户的用户可以执行完全退出以提取所有的质押资金,然后使用新的凭证重新进行质押。 + + + + +如果你参加了质押池,或持有质押代币,你应该咨询你的提供商,了解更多关于如何处理质押提款的细节,因为每种服务的运作方式不同。 + +一般来说,用户应该可以随意收回他们的底层质押以太币,或者更换他们使用的质押服务提供商。 如果某个质押池变得过大,可以退出、收回资金,并通过较小的提供商重新质押。 或者,如果你已经积攒了足够多的以太币,你就可以自行质押。 + + + + +是的,只要你的验证者提供了提款地址。 提款地址必须要提供一次,以便在最初时启用任何提款,之后奖励支付将每隔几天在进行验证者扫描时自动分发。 + + + + +不。如果你的验证者仍在网络上运行,则不会自动执行完全提款。 需要手动发起自愿退出。 + +一旦验证者完成退出流程,并且假设该帐户具有提款凭证,则剩余余额随后将在下一次验证者扫描期间提取。 + + + + +提款旨在自动推送,转移任何未积极为质押做贡献的以太币。 这包括已完成退出流程的帐户的全部余额。 + +无法手动请求要提取以太币的具体数量。 + + + + +建议验证者运营商访问质押启动板提款页面,你可以在其中找到有关如何准备验证者以便提款的更多详细信息、事件的时间安排,以及有关提款如何运作的更多详细信息。 + +要首先在测试网上测试你的设置,请访问 Goerli 测试网质押启动板开始测试。 + + + + +否。 一旦验证者退出并提取其全部余额,存入该验证者的任何额外资金将在下一次验证者扫描期间自动转移到提款地址。 要重新质押以太币,必须激活新的验证者。 + + +## 延伸阅读 {#further-reading} + +- [质押启动板提款](https://launchpad.ethereum.org/withdrawals) +- [EIP-4895:信标链提款推送操作](https://eips.ethereum.org/EIPS/eip-4895) +- [以太坊牧猫人组织 - 上海](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) +- [PEEPanEIP #94:质押以太币提取(测试)与 Potuz 和王筱维](https://www.youtube.com/watch?v=G8UstwmGtyE) +- [PEEPanEIP#68:与 Alex Stokes 讨论 EIP-4895:信标链推送提款操作](https://www.youtube.com/watch?v=CcL9RJBljUs) +- [了解验证者有效余额](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/zh/web3/index.md b/public/content/translations/zh/web3/index.md similarity index 100% rename from src/content/translations/zh/web3/index.md rename to public/content/translations/zh/web3/index.md diff --git a/src/content/translations/zh/web3/web2.png b/public/content/translations/zh/web3/web2.png similarity index 100% rename from src/content/translations/zh/web3/web2.png rename to public/content/translations/zh/web3/web2.png diff --git a/src/content/translations/zh/web3/web3.png b/public/content/translations/zh/web3/web3.png similarity index 100% rename from src/content/translations/zh/web3/web3.png rename to public/content/translations/zh/web3/web3.png diff --git a/src/content/translations/zh/whitepaper/index.md b/public/content/translations/zh/whitepaper/index.md similarity index 100% rename from src/content/translations/zh/whitepaper/index.md rename to public/content/translations/zh/whitepaper/index.md diff --git a/src/content/translations/zh/zero-knowledge-proofs/index.md b/public/content/translations/zh/zero-knowledge-proofs/index.md similarity index 100% rename from src/content/translations/zh/zero-knowledge-proofs/index.md rename to public/content/translations/zh/zero-knowledge-proofs/index.md diff --git a/src/content/web3/index.md b/public/content/web3/index.md similarity index 100% rename from src/content/web3/index.md rename to public/content/web3/index.md diff --git a/src/content/web3/web1.png b/public/content/web3/web1.png similarity index 100% rename from src/content/web3/web1.png rename to public/content/web3/web1.png diff --git a/src/content/web3/web2.png b/public/content/web3/web2.png similarity index 100% rename from src/content/web3/web2.png rename to public/content/web3/web2.png diff --git a/src/content/web3/web3.png b/public/content/web3/web3.png similarity index 100% rename from src/content/web3/web3.png rename to public/content/web3/web3.png diff --git a/src/content/whitepaper/ether-state-transition.png b/public/content/whitepaper/ether-state-transition.png similarity index 100% rename from src/content/whitepaper/ether-state-transition.png rename to public/content/whitepaper/ether-state-transition.png diff --git a/src/content/whitepaper/ethereum-apply-block-diagram.png b/public/content/whitepaper/ethereum-apply-block-diagram.png similarity index 100% rename from src/content/whitepaper/ethereum-apply-block-diagram.png rename to public/content/whitepaper/ethereum-apply-block-diagram.png diff --git a/src/content/whitepaper/ethereum-blocks.png b/public/content/whitepaper/ethereum-blocks.png similarity index 100% rename from src/content/whitepaper/ethereum-blocks.png rename to public/content/whitepaper/ethereum-blocks.png diff --git a/src/content/whitepaper/ethereum-inflation.png b/public/content/whitepaper/ethereum-inflation.png similarity index 100% rename from src/content/whitepaper/ethereum-inflation.png rename to public/content/whitepaper/ethereum-inflation.png diff --git a/src/content/whitepaper/ethereum-state-transition.png b/public/content/whitepaper/ethereum-state-transition.png similarity index 100% rename from src/content/whitepaper/ethereum-state-transition.png rename to public/content/whitepaper/ethereum-state-transition.png diff --git a/public/content/whitepaper/index.md b/public/content/whitepaper/index.md new file mode 100644 index 00000000000..297f9aabf2f --- /dev/null +++ b/public/content/whitepaper/index.md @@ -0,0 +1,524 @@ +--- +title: Ethereum Whitepaper +description: An introductory paper to Ethereum, published in 2013 before its launch. +lang: en +sidebarDepth: 2 +hideEditButton: true +--- + +# Ethereum Whitepaper {#ethereum-whitepaper} + +_This introductory paper was originally published in 2014 by Vitalik Buterin, the founder of [Ethereum](/what-is-ethereum/), before the project's launch in 2015. It's worth noting that Ethereum, like many community-driven, open-source software projects, has evolved since its initial inception._ + +_While several years old, we maintain this paper because it continues to serve as a useful reference and an accurate representation of Ethereum and its vision. To learn about the latest developments of Ethereum, and how changes to the protocol are made, we recommend [this guide](/learn/)._ + +[Researchers and academics seeking a historical or canonical version of the whitepaper [from December 2014] should use this PDF.](./whitepaper-pdf/Ethereum_Whitepaper_-_Buterin_2014.pdf) + +## A Next-Generation Smart Contract and Decentralized Application Platform {#a-next-generation-smart-contract-and-decentralized-application-platform} + +Satoshi Nakamoto's development of Bitcoin in 2009 has often been hailed as a radical development in money and currency, being the first example of a digital asset which simultaneously has no backing or "[intrinsic value](http://bitcoinmagazine.com/8640/an-exploration-of-intrinsic-value-what-it-is-why-bitcoin-doesnt-have-it-and-why-bitcoin-does-have-it/)" and no centralized issuer or controller. However, another, arguably more important, part of the Bitcoin experiment is the underlying blockchain technology as a tool of distributed consensus, and attention is rapidly starting to shift to this other aspect of Bitcoin. Commonly cited alternative applications of blockchain technology include using on-blockchain digital assets to represent custom currencies and financial instruments ("[colored coins](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit)"), the ownership of an underlying physical device ("[smart property](https://en.bitcoin.it/wiki/Smart_Property)"), non-fungible assets such as domain names ("[Namecoin](http://namecoin.org)"), as well as more complex applications involving having digital assets being directly controlled by a piece of code implementing arbitrary rules ("[smart contracts](http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/idea.html)") or even blockchain-based "[decentralized autonomous organizations](http://bitcoinmagazine.com/7050/bootstrapping-a-decentralized-autonomous-corporation-part-i/)" (DAOs). What Ethereum intends to provide is a blockchain with a built-in fully fledged Turing-complete programming language that can be used to create "contracts" that can be used to encode arbitrary state transition functions, allowing users to create any of the systems described above, as well as many others that we have not yet imagined, simply by writing up the logic in a few lines of code. + +## Introduction to Bitcoin and Existing Concepts {#introduction-to-bitcoin-and-existing-concepts} + +### History {#history} + +The concept of decentralized digital currency, as well as alternative applications like property registries, has been around for decades. The anonymous e-cash protocols of the 1980s and the 1990s, mostly reliant on a cryptographic primitive known as Chaumian blinding, provided a currency with a high degree of privacy, but the protocols largely failed to gain traction because of their reliance on a centralized intermediary. In 1998, Wei Dai's [b-money](http://www.weidai.com/bmoney.txt) became the first proposal to introduce the idea of creating money through solving computational puzzles as well as decentralized consensus, but the proposal was scant on details as to how decentralized consensus could actually be implemented. In 2005, Hal Finney introduced a concept of "[reusable proofs of work](https://nakamotoinstitute.org/finney/rpow/)", a system which uses ideas from b-money together with Adam Back's computationally difficult Hashcash puzzles to create a concept for a cryptocurrency, but once again fell short of the ideal by relying on trusted computing as a backend. In 2009, a decentralized currency was for the first time implemented in practice by Satoshi Nakamoto, combining established primitives for managing ownership through public key cryptography with a consensus algorithm for keeping track of who owns coins, known as "proof-of-work". + +The mechanism behind proof-of-work was a breakthrough in the space because it simultaneously solved two problems. First, it provided a simple and moderately effective consensus algorithm, allowing nodes in the network to collectively agree on a set of canonical updates to the state of the Bitcoin ledger. Second, it provided a mechanism for allowing free entry into the consensus process, solving the political problem of deciding who gets to influence the consensus, while simultaneously preventing sybil attacks. It does this by substituting a formal barrier to participation, such as the requirement to be registered as a unique entity on a particular list, with an economic barrier - the weight of a single node in the consensus voting process is directly proportional to the computing power that the node brings. Since then, an alternative approach has been proposed called _proof-of-stake_, calculating the weight of a node as being proportional to its currency holdings and not computational resources; the discussion of the relative merits of the two approaches is beyond the scope of this paper but it should be noted that both approaches can be used to serve as the backbone of a cryptocurrency. + +### Bitcoin As A State Transition System {#bitcoin-as-a-state-transition-system} + +![Ethereum state transition](./ethereum-state-transition.png) + +From a technical standpoint, the ledger of a cryptocurrency such as Bitcoin can be thought of as a state transition system, where there is a "state" consisting of the ownership status of all existing bitcoins and a "state transition function" that takes a state and a transaction and outputs a new state which is the result. In a standard banking system, for example, the state is a balance sheet, a transaction is a request to move $X from A to B, and the state transition function reduces the value in A's account by $X and increases the value in B's account by $X. If A's account has less than $X in the first place, the state transition function returns an error. Hence, one can formally define: + +``` +APPLY(S,TX) -> S' or ERROR +``` + +In the banking system defined above: + +```js +APPLY({ Alice: $50, Bob: $50 },"send $20 from Alice to Bob") = { Alice: $30, Bob: $70 } +``` + +But: + +```js +APPLY({ Alice: $50, Bob: $50 },"send $70 from Alice to Bob") = ERROR +``` + +The "state" in Bitcoin is the collection of all coins (technically, "unspent transaction outputs" or UTXO) that have been minted and not yet spent, with each UTXO having a denomination and an owner (defined by a 20-byte address which is essentially a cryptographic public key[fn1](#notes)). A transaction contains one or more inputs, with each input containing a reference to an existing UTXO and a cryptographic signature produced by the private key associated with the owner's address, and one or more outputs, with each output containing a new UTXO to be added to the state. + +The state transition function `APPLY(S,TX) -> S'` can be defined roughly as follows: + +
    +
  1. + For each input in TX: +
      +
    • + If the referenced UTXO is not in S, return an error. +
    • +
    • + If the provided signature does not match the owner of the UTXO, return an error. +
    • +
    +
  2. +
  3. + If the sum of the denominations of all input UTXO is less than the sum of the denominations of all output UTXO, return an error. +
  4. +
  5. + Return S with all input UTXO removed and all output UTXO added. +
  6. +
+ +The first half of the first step prevents transaction senders from spending coins that do not exist, the second half of the first step prevents transaction senders from spending other people's coins, and the second step enforces conservation of value. In order to use this for payment, the protocol is as follows. Suppose Alice wants to send 11.7 BTC to Bob. First, Alice will look for a set of available UTXO that she owns that totals up to at least 11.7 BTC. Realistically, Alice will not be able to get exactly 11.7 BTC; say that the smallest she can get is 6+4+2=12. She then creates a transaction with those three inputs and two outputs. The first output will be 11.7 BTC with Bob's address as its owner, and the second output will be the remaining 0.3 BTC "change", with the owner being Alice herself. + +### Mining {#mining} + +![Ethereum blocks](./ethereum-blocks.png) + +If we had access to a trustworthy centralized service, this system would be trivial to implement; it could simply be coded exactly as described, using a centralized server's hard drive to keep track of the state. However, with Bitcoin we are trying to build a decentralized currency system, so we will need to combine the state transaction system with a consensus system in order to ensure that everyone agrees on the order of transactions. Bitcoin's decentralized consensus process requires nodes in the network to continuously attempt to produce packages of transactions called "blocks". The network is intended to produce roughly one block every ten minutes, with each block containing a timestamp, a nonce, a reference to (ie. hash of) the previous block and a list of all of the transactions that have taken place since the previous block. Over time, this creates a persistent, ever-growing, "blockchain" that constantly updates to represent the latest state of the Bitcoin ledger. + +The algorithm for checking if a block is valid, expressed in this paradigm, is as follows: + +1. Check if the previous block referenced by the block exists and is valid. +2. Check that the timestamp of the block is greater than that of the previous block[fn2](#notes) and less than 2 hours into the future +3. Check that the proof-of-work on the block is valid. +4. Let `S[0]` be the state at the end of the previous block. +5. Suppose `TX` is the block's transaction list with `n` transactions. For all `i` in `0...n-1`, set `S[i+1] = APPLY(S[i],TX[i])` If any application returns an error, exit and return false. +6. Return true, and register `S[n]` as the state at the end of this block. + +Essentially, each transaction in the block must provide a valid state transition from what was the canonical state before the transaction was executed to some new state. Note that the state is not encoded in the block in any way; it is purely an abstraction to be remembered by the validating node and can only be (securely) computed for any block by starting from the genesis state and sequentially applying every transaction in every block. Additionally, note that the order in which the miner includes transactions into the block matters; if there are two transactions A and B in a block such that B spends a UTXO created by A, then the block will be valid if A comes before B but not otherwise. + +The one validity condition present in the above list that is not found in other systems is the requirement for "proof-of-work". The precise condition is that the double-SHA256 hash of every block, treated as a 256-bit number, must be less than a dynamically adjusted target, which as of the time of this writing is approximately 2187. The purpose of this is to make block creation computationally "hard", thereby preventing sybil attackers from remaking the entire blockchain in their favor. Because SHA256 is designed to be a completely unpredictable pseudorandom function, the only way to create a valid block is simply trial and error, repeatedly incrementing the nonce and seeing if the new hash matches. + +At the current target of ~2187, the network must make an average of ~269 tries before a valid block is found; in general, the target is recalibrated by the network every 2016 blocks so that on average a new block is produced by some node in the network every ten minutes. In order to compensate miners for this computational work, the miner of every block is entitled to include a transaction giving themselves 25 BTC out of nowhere. Additionally, if any transaction has a higher total denomination in its inputs than in its outputs, the difference also goes to the miner as a "transaction fee". Incidentally, this is also the only mechanism by which BTC are issued; the genesis state contained no coins at all. + +In order to better understand the purpose of mining, let us examine what happens in the event of a malicious attacker. Since Bitcoin's underlying cryptography is known to be secure, the attacker will target the one part of the Bitcoin system that is not protected by cryptography directly: the order of transactions. The attacker's strategy is simple: + +1. Send 100 BTC to a merchant in exchange for some product (preferably a rapid-delivery digital good) +2. Wait for the delivery of the product +3. Produce another transaction sending the same 100 BTC to himself +4. Try to convince the network that his transaction to himself was the one that came first. + +Once step (1) has taken place, after a few minutes some miner will include the transaction in a block, say block number 270000. After about one hour, five more blocks will have been added to the chain after that block, with each of those blocks indirectly pointing to the transaction and thus "confirming" it. At this point, the merchant will accept the payment as finalized and deliver the product; since we are assuming this is a digital good, delivery is instant. Now, the attacker creates another transaction sending the 100 BTC to himself. If the attacker simply releases it into the wild, the transaction will not be processed; miners will attempt to run `APPLY(S,TX)` and notice that `TX` consumes a UTXO which is no longer in the state. So instead, the attacker creates a "fork" of the blockchain, starting by mining another version of block 270000 pointing to the same block 269999 as a parent but with the new transaction in place of the old one. Because the block data is different, this requires redoing the proof-of-work. Furthermore, the attacker's new version of block 270000 has a different hash, so the original blocks 270001 to 270005 do not "point" to it; thus, the original chain and the attacker's new chain are completely separate. The rule is that in a fork the longest blockchain is taken to be the truth, and so legitimate miners will work on the 270005 chain while the attacker alone is working on the 270000 chain. In order for the attacker to make his blockchain the longest, he would need to have more computational power than the rest of the network combined in order to catch up (hence, "51% attack"). + +### Merkle Trees {#merkle-trees} + +![SPV in Bitcoin](./spv-bitcoin.png) + +_Left: it suffices to present only a small number of nodes in a Merkle tree to give a proof of the validity of a branch._ + +_Right: any attempt to change any part of the Merkle tree will eventually lead to an inconsistency somewhere up the chain._ + +An important scalability feature of Bitcoin is that the block is stored in a multi-level data structure. The "hash" of a block is actually only the hash of the block header, a roughly 200-byte piece of data that contains the timestamp, nonce, previous block hash and the root hash of a data structure called the Merkle tree storing all transactions in the block. A Merkle tree is a type of binary tree, composed of a set of nodes with a large number of leaf nodes at the bottom of the tree containing the underlying data, a set of intermediate nodes where each node is the hash of its two children, and finally a single root node, also formed from the hash of its two children, representing the "top" of the tree. The purpose of the Merkle tree is to allow the data in a block to be delivered piecemeal: a node can download only the header of a block from one source, the small part of the tree relevant to them from another source, and still be assured that all of the data is correct. The reason why this works is that hashes propagate upward: if a malicious user attempts to swap in a fake transaction into the bottom of a Merkle tree, this change will cause a change in the node above, and then a change in the node above that, finally changing the root of the tree and therefore the hash of the block, causing the protocol to register it as a completely different block (almost certainly with an invalid proof-of-work). + +The Merkle tree protocol is arguably essential to long-term sustainability. A "full node" in the Bitcoin network, one that stores and processes the entirety of every block, takes up about 15 GB of disk space in the Bitcoin network as of April 2014, and is growing by over a gigabyte per month. Currently, this is viable for some desktop computers and not phones, and later on in the future only businesses and hobbyists will be able to participate. A protocol known as "simplified payment verification" (SPV) allows for another class of nodes to exist, called "light nodes", which download the block headers, verify the proof-of-work on the block headers, and then download only the "branches" associated with transactions that are relevant to them. This allows light nodes to determine with a strong guarantee of security what the status of any Bitcoin transaction, and their current balance, is while downloading only a very small portion of the entire blockchain. + +### Alternative Blockchain Applications {#alternative-blockchain-applications} + +The idea of taking the underlying blockchain idea and applying it to other concepts also has a long history. In 2005, Nick Szabo came out with the concept of "[secure property titles with owner authority](https://nakamotoinstitute.org/secure-property-titles/)", a document describing how "new advances in replicated database technology" will allow for a blockchain-based system for storing a registry of who owns what land, creating an elaborate framework including concepts such as homesteading, adverse possession and Georgian land tax. However, there was unfortunately no effective replicated database system available at the time, and so the protocol was never implemented in practice. After 2009, however, once Bitcoin's decentralized consensus was developed a number of alternative applications rapidly began to emerge. + +- **Namecoin** - created in 2010, [Namecoin](https://namecoin.org/) is best described as a decentralized name registration database. In decentralized protocols like Tor, Bitcoin and BitMessage, there needs to be some way of identifying accounts so that other people can interact with them, but in all existing solutions the only kind of identifier available is a pseudorandom hash like `1LW79wp5ZBqaHW1jL5TCiBCrhQYtHagUWy`. Ideally, one would like to be able to have an account with a name like "george". However, the problem is that if one person can create an account named "george" then someone else can use the same process to register "george" for themselves as well and impersonate them. The only solution is a first-to-file paradigm, where the first registerer succeeds and the second fails - a problem perfectly suited for the Bitcoin consensus protocol. Namecoin is the oldest, and most successful, implementation of a name registration system using such an idea. +- **Colored coins** - the purpose of [colored coins](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit) is to serve as a protocol to allow people to create their own digital currencies - or, in the important trivial case of a currency with one unit, digital tokens, on the Bitcoin blockchain. In the colored coins protocol, one "issues" a new currency by publicly assigning a color to a specific Bitcoin UTXO, and the protocol recursively defines the color of other UTXO to be the same as the color of the inputs that the transaction creating them spent (some special rules apply in the case of mixed-color inputs). This allows users to maintain wallets containing only UTXO of a specific color and send them around much like regular bitcoins, backtracking through the blockchain to determine the color of any UTXO that they receive. +- **Metacoins** - the idea behind a metacoin is to have a protocol that lives on top of Bitcoin, using Bitcoin transactions to store metacoin transactions but having a different state transition function, `APPLY'`. Because the metacoin protocol cannot prevent invalid metacoin transactions from appearing in the Bitcoin blockchain, a rule is added that if `APPLY'(S,TX)` returns an error, the protocol defaults to `APPLY'(S,TX) = S`. This provides an easy mechanism for creating an arbitrary cryptocurrency protocol, potentially with advanced features that cannot be implemented inside of Bitcoin itself, but with a very low development cost since the complexities of mining and networking are already handled by the Bitcoin protocol. Metacoins have been used to implement some classes of financial contracts, name registration and decentralized exchange. + +Thus, in general, there are two approaches toward building a consensus protocol: building an independent network, and building a protocol on top of Bitcoin. The former approach, while reasonably successful in the case of applications like Namecoin, is difficult to implement; each individual implementation needs to bootstrap an independent blockchain, as well as building and testing all of the necessary state transition and networking code. Additionally, we predict that the set of applications for decentralized consensus technology will follow a power law distribution where the vast majority of applications would be too small to warrant their own blockchain, and we note that there exist large classes of decentralized applications, particularly decentralized autonomous organizations, that need to interact with each other. + +The Bitcoin-based approach, on the other hand, has the flaw that it does not inherit the simplified payment verification features of Bitcoin. SPV works for Bitcoin because it can use blockchain depth as a proxy for validity; at some point, once the ancestors of a transaction go far enough back, it is safe to say that they were legitimately part of the state. Blockchain-based meta-protocols, on the other hand, cannot force the blockchain not to include transactions that are not valid within the context of their own protocols. Hence, a fully secure SPV meta-protocol implementation would need to backward scan all the way to the beginning of the Bitcoin blockchain to determine whether or not certain transactions are valid. Currently, all "light" implementations of Bitcoin-based meta-protocols rely on a trusted server to provide the data, arguably a highly suboptimal result especially when one of the primary purposes of a cryptocurrency is to eliminate the need for trust. + +### Scripting {#scripting} + +Even without any extensions, the Bitcoin protocol actually does facilitate a weak version of a concept of "smart contracts". UTXO in Bitcoin can be owned not just by a public key, but also by a more complicated script expressed in a simple stack-based programming language. In this paradigm, a transaction spending that UTXO must provide data that satisfies the script. Indeed, even the basic public key ownership mechanism is implemented via a script: the script takes an elliptic curve signature as input, verifies it against the transaction and the address that owns the UTXO, and returns 1 if the verification is successful and 0 otherwise. Other, more complicated, scripts exist for various additional use cases. For example, one can construct a script that requires signatures from two out of a given three private keys to validate ("multisig"), a setup useful for corporate accounts, secure savings accounts and some merchant escrow situations. Scripts can also be used to pay bounties for solutions to computational problems, and one can even construct a script that says something like "this Bitcoin UTXO is yours if you can provide an SPV proof that you sent a Dogecoin transaction of this denomination to me", essentially allowing decentralized cross-cryptocurrency exchange. + +However, the scripting language as implemented in Bitcoin has several important limitations: + +- **Lack of Turing-completeness** - that is to say, while there is a large subset of computation that the Bitcoin scripting language supports, it does not nearly support everything. The main category that is missing is loops. This is done to avoid infinite loops during transaction verification; theoretically it is a surmountable obstacle for script programmers, since any loop can be simulated by simply repeating the underlying code many times with an if statement, but it does lead to scripts that are very space-inefficient. For example, implementing an alternative elliptic curve signature algorithm would likely require 256 repeated multiplication rounds all individually included in the code. +- **Value-blindness** - there is no way for a UTXO script to provide fine-grained control over the amount that can be withdrawn. For example, one powerful use case of an oracle contract would be a hedging contract, where A and B put in $1000 worth of BTC and after 30 days the script sends $1000 worth of BTC to A and the rest to B. This would require an oracle to determine the value of 1 BTC in USD, but even then it is a massive improvement in terms of trust and infrastructure requirement over the fully centralized solutions that are available now. However, because UTXO are all-or-nothing, the only way to achieve this is through the very inefficient hack of having many UTXO of varying denominations (eg. one UTXO of 2k for every k up to 30) and having the oracle pick which UTXO to send to A and which to B. +- **Lack of state** - UTXO can either be spent or unspent; there is no opportunity for multi-stage contracts or scripts which keep any other internal state beyond that. This makes it hard to make multi-stage options contracts, decentralized exchange offers or two-stage cryptographic commitment protocols (necessary for secure computational bounties). It also means that UTXO can only be used to build simple, one-off contracts and not more complex "stateful" contracts such as decentralized organizations, and makes meta-protocols difficult to implement. Binary state combined with value-blindness also mean that another important application, withdrawal limits, is impossible. +- **Blockchain-blindness** - UTXO are blind to blockchain data such as the nonce, the timestamp and previous block hash. This severely limits applications in gambling, and several other categories, by depriving the scripting language of a potentially valuable source of randomness. + +Thus, we see three approaches to building advanced applications on top of cryptocurrency: building a new blockchain, using scripting on top of Bitcoin, and building a meta-protocol on top of Bitcoin. Building a new blockchain allows for unlimited freedom in building a feature set, but at the cost of development time, bootstrapping effort and security. Using scripting is easy to implement and standardize, but is very limited in its capabilities, and meta-protocols, while easy, suffer from faults in scalability. With Ethereum, we intend to build an alternative framework that provides even larger gains in ease of development as well as even stronger light client properties, while at the same time allowing applications to share an economic environment and blockchain security. + +## Ethereum {#ethereum} + +The intent of Ethereum is to create an alternative protocol for building decentralized applications, providing a different set of tradeoffs that we believe will be very useful for a large class of decentralized applications, with particular emphasis on situations where rapid development time, security for small and rarely used applications, and the ability of different applications to very efficiently interact, are important. Ethereum does this by building what is essentially the ultimate abstract foundational layer: a blockchain with a built-in Turing-complete programming language, allowing anyone to write smart contracts and decentralized applications where they can create their own arbitrary rules for ownership, transaction formats and state transition functions. A bare-bones version of Namecoin can be written in two lines of code, and other protocols like currencies and reputation systems can be built in under twenty. Smart contracts, cryptographic "boxes" that contain value and only unlock it if certain conditions are met, can also be built on top of the platform, with vastly more power than that offered by Bitcoin scripting because of the added powers of Turing-completeness, value-awareness, blockchain-awareness and state. + +### Ethereum Accounts {#ethereum-accounts} + +In Ethereum, the state is made up of objects called "accounts", with each account having a 20-byte address and state transitions being direct transfers of value and information between accounts. An Ethereum account contains four fields: + +- The **nonce**, a counter used to make sure each transaction can only be processed once +- The account's current **ether balance** +- The account's **contract code**, if present +- The account's **storage** (empty by default) + +"Ether" is the main internal crypto-fuel of Ethereum, and is used to pay transaction fees. In general, there are two types of accounts: **externally owned accounts**, controlled by private keys, and **contract accounts**, controlled by their contract code. An externally owned account has no code, and one can send messages from an externally owned account by creating and signing a transaction; in a contract account, every time the contract account receives a message its code activates, allowing it to read and write to internal storage and send other messages or create contracts in turn. + +Note that "contracts" in Ethereum should not be seen as something that should be "fulfilled" or "complied with"; rather, they are more like "autonomous agents" that live inside of the Ethereum execution environment, always executing a specific piece of code when "poked" by a message or transaction, and having direct control over their own ether balance and their own key/value store to keep track of persistent variables. + +### Messages and Transactions {#messages-and-transactions} + +The term "transaction" is used in Ethereum to refer to the signed data package that stores a message to be sent from an externally owned account. Transactions contain: + +- The recipient of the message +- A signature identifying the sender +- The amount of ether to transfer from the sender to the recipient +- An optional data field +- A `STARTGAS` value, representing the maximum number of computational steps the transaction execution is allowed to take +- A `GASPRICE` value, representing the fee the sender pays per computational step + +The first three are standard fields expected in any cryptocurrency. The data field has no function by default, but the virtual machine has an opcode using which a contract can access the data; as an example use case, if a contract is functioning as an on-blockchain domain registration service, then it may wish to interpret the data being passed to it as containing two "fields", the first field being a domain to register and the second field being the IP address to register it to. The contract would read these values from the message data and appropriately place them in storage. + +The `STARTGAS` and `GASPRICE` fields are crucial for Ethereum's anti-denial of service model. In order to prevent accidental or hostile infinite loops or other computational wastage in code, each transaction is required to set a limit to how many computational steps of code execution it can use. The fundamental unit of computation is "gas"; usually, a computational step costs 1 gas, but some operations cost higher amounts of gas because they are more computationally expensive, or increase the amount of data that must be stored as part of the state. There is also a fee of 5 gas for every byte in the transaction data. The intent of the fee system is to require an attacker to pay proportionately for every resource that they consume, including computation, bandwidth and storage; hence, any transaction that leads to the network consuming a greater amount of any of these resources must have a gas fee roughly proportional to the increment. + +### Messages {#messages} + +Contracts have the ability to send "messages" to other contracts. Messages are virtual objects that are never serialized and exist only in the Ethereum execution environment. A message contains: + +- The sender of the message (implicit) +- The recipient of the message +- The amount of ether to transfer alongside the message +- An optional data field +- A `STARTGAS` value + +Essentially, a message is like a transaction, except it is produced by a contract and not an external actor. A message is produced when a contract currently executing code executes the `CALL` opcode, which produces and executes a message. Like a transaction, a message leads to the recipient account running its code. Thus, contracts can have relationships with other contracts in exactly the same way that external actors can. + +Note that the gas allowance assigned by a transaction or contract applies to the total gas consumed by that transaction and all sub-executions. For example, if an external actor A sends a transaction to B with 1000 gas, and B consumes 600 gas before sending a message to C, and the internal execution of C consumes 300 gas before returning, then B can spend another 100 gas before running out of gas. + +### Ethereum State Transition Function {#ethereum-state-transition-function} + +![Ether state transition](./ether-state-transition.png) + +The Ethereum state transition function, `APPLY(S,TX) -> S'` can be defined as follows: + +1. Check if the transaction is well-formed (ie. has the right number of values), the signature is valid, and the nonce matches the nonce in the sender's account. If not, return an error. +2. Calculate the transaction fee as `STARTGAS * GASPRICE`, and determine the sending address from the signature. Subtract the fee from the sender's account balance and increment the sender's nonce. If there is not enough balance to spend, return an error. +3. Initialize `GAS = STARTGAS`, and take off a certain quantity of gas per byte to pay for the bytes in the transaction. +4. Transfer the transaction value from the sender's account to the receiving account. If the receiving account does not yet exist, create it. If the receiving account is a contract, run the contract's code either to completion or until the execution runs out of gas. +5. If the value transfer failed because the sender did not have enough money, or the code execution ran out of gas, revert all state changes except the payment of the fees, and add the fees to the miner's account. +6. Otherwise, refund the fees for all remaining gas to the sender, and send the fees paid for gas consumed to the miner. + +For example, suppose that the contract's code is: + +```py +if !self.storage[calldataload(0)]: + self.storage[calldataload(0)] = calldataload(32) +``` + +Note that in reality the contract code is written in the low-level EVM code; this example is written in Serpent, one of our high-level languages, for clarity, and can be compiled down to EVM code. Suppose that the contract's storage starts off empty, and a transaction is sent with 10 ether value, 2000 gas, 0.001 ether gasprice, and 64 bytes of data, with bytes 0-31 representing the number `2` and bytes 32-63 representing the string `CHARLIE`. The process for the state transition function in this case is as follows: + +1. Check that the transaction is valid and well formed. +2. Check that the transaction sender has at least 2000 \* 0.001 = 2 ether. If it is, then subtract 2 ether from the sender's account. +3. Initialize gas = 2000; assuming the transaction is 170 bytes long and the byte-fee is 5, subtract 850 so that there is 1150 gas left. +4. Subtract 10 more ether from the sender's account, and add it to the contract's account. +5. Run the code. In this case, this is simple: it checks if the contract's storage at index `2` is used, notices that it is not, and so it sets the storage at index `2` to the value `CHARLIE`. Suppose this takes 187 gas, so the remaining amount of gas is 1150 - 187 = 963 +6. Add 963 \* 0.001 = 0.963 ether back to the sender's account, and return the resulting state. + +If there was no contract at the receiving end of the transaction, then the total transaction fee would simply be equal to the provided `GASPRICE` multiplied by the length of the transaction in bytes, and the data sent alongside the transaction would be irrelevant. + +Note that messages work equivalently to transactions in terms of reverts: if a message execution runs out of gas, then that message's execution, and all other executions triggered by that execution, revert, but parent executions do not need to revert. This means that it is "safe" for a contract to call another contract, as if A calls B with G gas then A's execution is guaranteed to lose at most G gas. Finally, note that there is an opcode, `CREATE`, that creates a contract; its execution mechanics are generally similar to `CALL`, with the exception that the output of the execution determines the code of a newly created contract. + +### Code Execution {#code-execution} + +The code in Ethereum contracts is written in a low-level, stack-based bytecode language, referred to as "Ethereum virtual machine code" or "EVM code". The code consists of a series of bytes, where each byte represents an operation. In general, code execution is an infinite loop that consists of repeatedly carrying out the operation at the current program counter (which begins at zero) and then incrementing the program counter by one, until the end of the code is reached or an error or `STOP` or `RETURN` instruction is detected. The operations have access to three types of space in which to store data: + +- The **stack**, a last-in-first-out container to which values can be pushed and popped +- **Memory**, an infinitely expandable byte array +- The contract's long-term **storage**, a key/value store. Unlike stack and memory, which reset after computation ends, storage persists for the long term. + +The code can also access the value, sender and data of the incoming message, as well as block header data, and the code can also return a byte array of data as an output. + +The formal execution model of EVM code is surprisingly simple. While the Ethereum virtual machine is running, its full computational state can be defined by the tuple `(block_state, transaction, message, code, memory, stack, pc, gas)`, where `block_state` is the global state containing all accounts and includes balances and storage. At the start of every round of execution, the current instruction is found by taking the `pc`th byte of `code` (or 0 if `pc >= len(code)`), and each instruction has its own definition in terms of how it affects the tuple. For example, `ADD` pops two items off the stack and pushes their sum, reduces `gas` by 1 and increments `pc` by 1, and `SSTORE` pops the top two items off the stack and inserts the second item into the contract's storage at the index specified by the first item. Although there are many ways to optimize Ethereum virtual machine execution via just-in-time compilation, a basic implementation of Ethereum can be done in a few hundred lines of code. + +### Blockchain and Mining {#blockchain-and-mining} + +![Ethereum apply block diagram](./ethereum-apply-block-diagram.png) + +The Ethereum blockchain is in many ways similar to the Bitcoin blockchain, although it does have some differences. The main difference between Ethereum and Bitcoin with regard to the blockchain architecture is that, unlike Bitcoin, Ethereum blocks contain a copy of both the transaction list and the most recent state. Aside from that, two other values, the block number and the difficulty, are also stored in the block. The basic block validation algorithm in Ethereum is as follows: + +1. Check if the previous block referenced exists and is valid. +2. Check that the timestamp of the block is greater than that of the referenced previous block and less than 15 minutes into the future +3. Check that the block number, difficulty, transaction root, uncle root and gas limit (various low-level Ethereum-specific concepts) are valid. +4. Check that the proof-of-work on the block is valid. +5. Let `S[0]` be the state at the end of the previous block. +6. Let `TX` be the block's transaction list, with `n` transactions. For all `i` in `0...n-1`, set `S[i+1] = APPLY(S[i],TX[i])`. If any applications returns an error, or if the total gas consumed in the block up until this point exceeds the `GASLIMIT`, return an error. +7. Let `S_FINAL` be `S[n]`, but adding the block reward paid to the miner. +8. Check if the Merkle tree root of the state `S_FINAL` is equal to the final state root provided in the block header. If it is, the block is valid; otherwise, it is not valid. + +The approach may seem highly inefficient at first glance, because it needs to store the entire state with each block, but in reality efficiency should be comparable to that of Bitcoin. The reason is that the state is stored in the tree structure, and after every block only a small part of the tree needs to be changed. Thus, in general, between two adjacent blocks the vast majority of the tree should be the same, and therefore the data can be stored once and referenced twice using pointers (ie. hashes of subtrees). A special kind of tree known as a "Patricia tree" is used to accomplish this, including a modification to the Merkle tree concept that allows for nodes to be inserted and deleted, and not just changed, efficiently. Additionally, because all of the state information is part of the last block, there is no need to store the entire blockchain history - a strategy which, if it could be applied to Bitcoin, can be calculated to provide 5-20x savings in space. + +A commonly asked question is "where" contract code is executed, in terms of physical hardware. This has a simple answer: the process of executing contract code is part of the definition of the state transition function, which is part of the block validation algorithm, so if a transaction is added into block `B` the code execution spawned by that transaction will be executed by all nodes, now and in the future, that download and validate block `B`. + +## Applications {#applications} + +In general, there are three types of applications on top of Ethereum. The first category is financial applications, providing users with more powerful ways of managing and entering into contracts using their money. This includes sub-currencies, financial derivatives, hedging contracts, savings wallets, wills, and ultimately even some classes of full-scale employment contracts. The second category is semi-financial applications, where money is involved but there is also a heavy non-monetary side to what is being done; a perfect example is self-enforcing bounties for solutions to computational problems. Finally, there are applications such as online voting and decentralized governance that are not financial at all. + +### Token Systems {#token-systems} + +On-blockchain token systems have many applications ranging from sub-currencies representing assets such as USD or gold to company stocks, individual tokens representing smart property, secure unforgeable coupons, and even token systems with no ties to conventional value at all, used as point systems for incentivization. Token systems are surprisingly easy to implement in Ethereum. The key point to understand is that all a currency, or token system, fundamentally is, is a database with one operation: subtract X units from A and give X units to B, with the proviso that (i) A had at least X units before the transaction and (2) the transaction is approved by A. All that it takes to implement a token system is to implement this logic into a contract. + +The basic code for implementing a token system in Serpent looks as follows: + +```py +def send(to, value): + if self.storage[msg.sender] >= value: + self.storage[msg.sender] = self.storage[msg.sender] - value + self.storage[to] = self.storage[to] + value +``` + +This is essentially a literal implementation of the "banking system" state transition function described further above in this document. A few extra lines of code need to be added to provide for the initial step of distributing the currency units in the first place and a few other edge cases, and ideally a function would be added to let other contracts query for the balance of an address. But that's all there is to it. Theoretically, Ethereum-based token systems acting as sub-currencies can potentially include another important feature that on-chain Bitcoin-based meta-currencies lack: the ability to pay transaction fees directly in that currency. The way this would be implemented is that the contract would maintain an ether balance with which it would refund ether used to pay fees to the sender, and it would refill this balance by collecting the internal currency units that it takes in fees and reselling them in a constant running auction. Users would thus need to "activate" their accounts with ether, but once the ether is there it would be reusable because the contract would refund it each time. + +### Financial derivatives and Stable-Value Currencies {#financial-derivatives-and-stable-value-currencies} + +Financial derivatives are the most common application of a "smart contract", and one of the simplest to implement in code. The main challenge in implementing financial contracts is that the majority of them require reference to an external price ticker; for example, a very desirable application is a smart contract that hedges against the volatility of ether (or another cryptocurrency) with respect to the US dollar, but doing this requires the contract to know what the value of ETH/USD is. The simplest way to do this is through a "data feed" contract maintained by a specific party (eg. NASDAQ) designed so that that party has the ability to update the contract as needed, and providing an interface that allows other contracts to send a message to that contract and get back a response that provides the price. + +Given that critical ingredient, the hedging contract would look as follows: + +1. Wait for party A to input 1000 ether. +2. Wait for party B to input 1000 ether. +3. Record the USD value of 1000 ether, calculated by querying the data feed contract, in storage, say this is $x. +4. After 30 days, allow A or B to "reactivate" the contract in order to send $x worth of ether (calculated by querying the data feed contract again to get the new price) to A and the rest to B. + +Such a contract would have significant potential in crypto-commerce. One of the main problems cited about cryptocurrency is the fact that it's volatile; although many users and merchants may want the security and convenience of dealing with cryptographic assets, they many not wish to face that prospect of losing 23% of the value of their funds in a single day. Up until now, the most commonly proposed solution has been issuer-backed assets; the idea is that an issuer creates a sub-currency in which they have the right to issue and revoke units, and provide one unit of the currency to anyone who provides them (offline) with one unit of a specified underlying asset (eg. gold, USD). The issuer then promises to provide one unit of the underlying asset to anyone who sends back one unit of the crypto-asset. This mechanism allows any non-cryptographic asset to be "uplifted" into a cryptographic asset, provided that the issuer can be trusted. + +In practice, however, issuers are not always trustworthy, and in some cases the banking infrastructure is too weak, or too hostile, for such services to exist. Financial derivatives provide an alternative. Here, instead of a single issuer providing the funds to back up an asset, a decentralized market of speculators, betting that the price of a cryptographic reference asset (eg. ETH) will go up, plays that role. Unlike issuers, speculators have no option to default on their side of the bargain because the hedging contract holds their funds in escrow. Note that this approach is not fully decentralized, because a trusted source is still needed to provide the price ticker, although arguably even still this is a massive improvement in terms of reducing infrastructure requirements (unlike being an issuer, issuing a price feed requires no licenses and can likely be categorized as free speech) and reducing the potential for fraud. + +### Identity and Reputation Systems {#identity-and-reputation-systems} + +The earliest alternative cryptocurrency of all, [Namecoin](http://namecoin.org/), attempted to use a Bitcoin-like blockchain to provide a name registration system, where users can register their names in a public database alongside other data. The major cited use case is for a [DNS](https://wikipedia.org/wiki/Domain_Name_System) system, mapping domain names like "bitcoin.org" (or, in Namecoin's case, "bitcoin.bit") to an IP address. Other use cases include email authentication and potentially more advanced reputation systems. Here is the basic contract to provide a Namecoin-like name registration system on Ethereum: + +```py +def register(name, value): + if !self.storage[name]: + self.storage[name] = value +``` + +The contract is very simple; all it is is a database inside the Ethereum network that can be added to, but not modified or removed from. Anyone can register a name with some value, and that registration then sticks forever. A more sophisticated name registration contract will also have a "function clause" allowing other contracts to query it, as well as a mechanism for the "owner" (ie. the first registerer) of a name to change the data or transfer ownership. One can even add reputation and web-of-trust functionality on top. + +### Decentralized File Storage {#decentralized-file-storage} + +Over the past few years, there have emerged a number of popular online file storage startups, the most prominent being Dropbox, seeking to allow users to upload a backup of their hard drive and have the service store the backup and allow the user to access it in exchange for a monthly fee. However, at this point the file storage market is at times relatively inefficient; a cursory look at various existing solutions shows that, particularly at the "uncanny valley" 20-200 GB level at which neither free quotas nor enterprise-level discounts kick in, monthly prices for mainstream file storage costs are such that you are paying for more than the cost of the entire hard drive in a single month. Ethereum contracts can allow for the development of a decentralized file storage ecosystem, where individual users can earn small quantities of money by renting out their own hard drives and unused space can be used to further drive down the costs of file storage. + +The key underpinning piece of such a device would be what we have termed the "decentralized Dropbox contract". This contract works as follows. First, one splits the desired data up into blocks, encrypting each block for privacy, and builds a Merkle tree out of it. One then makes a contract with the rule that, every N blocks, the contract would pick a random index in the Merkle tree (using the previous block hash, accessible from contract code, as a source of randomness), and give X ether to the first entity to supply a transaction with a simplified payment verification-like proof of ownership of the block at that particular index in the tree. When a user wants to re-download their file, they can use a micropayment channel protocol (eg. pay 1 szabo per 32 kilobytes) to recover the file; the most fee-efficient approach is for the payer not to publish the transaction until the end, instead replacing the transaction with a slightly more lucrative one with the same nonce after every 32 kilobytes. + +An important feature of the protocol is that, although it may seem like one is trusting many random nodes not to decide to forget the file, one can reduce that risk down to near-zero by splitting the file into many pieces via secret sharing, and watching the contracts to see each piece is still in some node's possession. If a contract is still paying out money, that provides a cryptographic proof that someone out there is still storing the file. + +### Decentralized Autonomous Organizations {#decentralized-autonomous-organizations} + +The general concept of a "decentralized autonomous organization" is that of a virtual entity that has a certain set of members or shareholders which, perhaps with a 67% majority, have the right to spend the entity's funds and modify its code. The members would collectively decide on how the organization should allocate its funds. Methods for allocating a DAO's funds could range from bounties, salaries to even more exotic mechanisms such as an internal currency to reward work. This essentially replicates the legal trappings of a traditional company or nonprofit but using only cryptographic blockchain technology for enforcement. So far much of the talk around DAOs has been around the "capitalist" model of a "decentralized autonomous corporation" (DAC) with dividend-receiving shareholders and tradable shares; an alternative, perhaps described as a "decentralized autonomous community", would have all members have an equal share in the decision making and require 67% of existing members to agree to add or remove a member. The requirement that one person can only have one membership would then need to be enforced collectively by the group. + +A general outline for how to code a DAO is as follows. The simplest design is simply a piece of self-modifying code that changes if two thirds of members agree on a change. Although code is theoretically immutable, one can easily get around this and have de-facto mutability by having chunks of the code in separate contracts, and having the address of which contracts to call stored in the modifiable storage. In a simple implementation of such a DAO contract, there would be three transaction types, distinguished by the data provided in the transaction: + +- `[0,i,K,V]` to register a proposal with index `i` to change the address at storage index `K` to value `V` +- `[1,i]` to register a vote in favor of proposal `i` +- `[2,i]` to finalize proposal `i` if enough votes have been made + +The contract would then have clauses for each of these. It would maintain a record of all open storage changes, along with a list of who voted for them. It would also have a list of all members. When any storage change gets to two thirds of members voting for it, a finalizing transaction could execute the change. A more sophisticated skeleton would also have built-in voting ability for features like sending a transaction, adding members and removing members, and may even provide for [Liquid Democracy](https://wikipedia.org/wiki/Liquid_democracy)-style vote delegation (ie. anyone can assign someone to vote for them, and assignment is transitive so if A assigns B and B assigns C then C determines A's vote). This design would allow the DAO to grow organically as a decentralized community, allowing people to eventually delegate the task of filtering out who is a member to specialists, although unlike in the "current system" specialists can easily pop in and out of existence over time as individual community members change their alignments. + +An alternative model is for a decentralized corporation, where any account can have zero or more shares, and two thirds of the shares are required to make a decision. A complete skeleton would involve asset management functionality, the ability to make an offer to buy or sell shares, and the ability to accept offers (preferably with an order-matching mechanism inside the contract). Delegation would also exist Liquid Democracy-style, generalizing the concept of a "board of directors". + +### Further Applications {#further-applications} + +**1. Savings wallets**. Suppose that Alice wants to keep her funds safe, but is worried that she will lose or someone will hack her private key. She puts ether into a contract with Bob, a bank, as follows: + +- Alice alone can withdraw a maximum of 1% of the funds per day. +- Bob alone can withdraw a maximum of 1% of the funds per day, but Alice has the ability to make a transaction with her key shutting off this ability. +- Alice and Bob together can withdraw anything. + +Normally, 1% per day is enough for Alice, and if Alice wants to withdraw more she can contact Bob for help. If Alice's key gets hacked, she runs to Bob to move the funds to a new contract. If she loses her key, Bob will get the funds out eventually. If Bob turns out to be malicious, then she can turn off his ability to withdraw. + +**2. Crop insurance**. One can easily make a financial derivatives contract but using a data feed of the weather instead of any price index. If a farmer in Iowa purchases a derivative that pays out inversely based on the precipitation in Iowa, then if there is a drought, the farmer will automatically receive money and if there is enough rain the farmer will be happy because their crops would do well. This can be expanded to natural disaster insurance generally. + +**3. A decentralized data feed**. For financial contracts for difference, it may actually be possible to decentralize the data feed via a protocol called "[SchellingCoin](http://blog.ethereum.org/2014/03/28/schellingcoin-a-minimal-trust-universal-data-feed/)". SchellingCoin basically works as follows: N parties all put into the system the value of a given datum (eg. the ETH/USD price), the values are sorted, and everyone between the 25th and 75th percentile gets one token as a reward. Everyone has the incentive to provide the answer that everyone else will provide, and the only value that a large number of players can realistically agree on is the obvious default: the truth. This creates a decentralized protocol that can theoretically provide any number of values, including the ETH/USD price, the temperature in Berlin or even the result of a particular hard computation. + +**4. Smart multisignature escrow**. Bitcoin allows multisignature transaction contracts where, for example, three out of a given five keys can spend the funds. Ethereum allows for more granularity; for example, four out of five can spend everything, three out of five can spend up to 10% per day, and two out of five can spend up to 0.5% per day. Additionally, Ethereum multisig is asynchronous - two parties can register their signatures on the blockchain at different times and the last signature will automatically send the transaction. + +**5. Cloud computing**. The EVM technology can also be used to create a verifiable computing environment, allowing users to ask others to carry out computations and then optionally ask for proofs that computations at certain randomly selected checkpoints were done correctly. This allows for the creation of a cloud computing market where any user can participate with their desktop, laptop or specialized server, and spot-checking together with security deposits can be used to ensure that the system is trustworthy (ie. nodes cannot profitably cheat). Although such a system may not be suitable for all tasks; tasks that require a high level of inter-process communication, for example, cannot easily be done on a large cloud of nodes. Other tasks, however, are much easier to parallelize; projects like SETI@home, folding@home and genetic algorithms can easily be implemented on top of such a platform. + +**6. Peer-to-peer gambling**. Any number of peer-to-peer gambling protocols, such as Frank Stajano and Richard Clayton's [Cyberdice](http://www.cl.cam.ac.uk/~fms27/papers/2008-StajanoCla-cyberdice.pdf), can be implemented on the Ethereum blockchain. The simplest gambling protocol is actually simply a contract for difference on the next block hash, and more advanced protocols can be built up from there, creating gambling services with near-zero fees that have no ability to cheat. + +**7. Prediction markets**. Provided an oracle or SchellingCoin, prediction markets are also easy to implement, and prediction markets together with SchellingCoin may prove to be the first mainstream application of [futarchy](http://hanson.gmu.edu/futarchy.html) as a governance protocol for decentralized organizations. + +**8. On-chain decentralized marketplaces**, using the identity and reputation system as a base. + +## Miscellanea And Concerns {#miscellanea-and-concerns} + +### Modified GHOST Implementation {#modified-ghost-implementation} + +The "Greedy Heaviest Observed Subtree" (GHOST) protocol is an innovation first introduced by Yonatan Sompolinsky and Aviv Zohar in [December 2013](https://eprint.iacr.org/2013/881.pdf). The motivation behind GHOST is that blockchains with fast confirmation times currently suffer from reduced security due to a high stale rate - because blocks take a certain time to propagate through the network, if miner A mines a block and then miner B happens to mine another block before miner A's block propagates to B, miner B's block will end up wasted and will not contribute to network security. Furthermore, there is a centralization issue: if miner A is a mining pool with 30% hashpower and B has 10% hashpower, A will have a risk of producing a stale block 70% of the time (since the other 30% of the time A produced the last block and so will get mining data immediately) whereas B will have a risk of producing a stale block 90% of the time. Thus, if the block interval is short enough for the stale rate to be high, A will be substantially more efficient simply by virtue of its size. With these two effects combined, blockchains which produce blocks quickly are very likely to lead to one mining pool having a large enough percentage of the network hashpower to have de facto control over the mining process. + +As described by Sompolinsky and Zohar, GHOST solves the first issue of network security loss by including stale blocks in the calculation of which chain is the "longest"; that is to say, not just the parent and further ancestors of a block, but also the stale descendants of the block's ancestor (in Ethereum jargon, "uncles") are added to the calculation of which block has the largest total proof-of-work backing it. To solve the second issue of centralization bias, we go beyond the protocol described by Sompolinsky and Zohar, and also provide block rewards to stales: a stale block receives 87.5% of its base reward, and the nephew that includes the stale block receives the remaining 12.5%. Transaction fees, however, are not awarded to uncles. + +Ethereum implements a simplified version of GHOST which only goes down seven levels. Specifically, it is defined as follows: + +- A block must specify a parent, and it must specify 0 or more uncles +- An uncle included in block B must have the following properties: + - It must be a direct child of the kth generation ancestor of B, where `2 <= k <= 7`. + - It cannot be an ancestor of B + - An uncle must be a valid block header, but does not need to be a previously verified or even valid block + - An uncle must be different from all uncles included in previous blocks and all other uncles included in the same block (non-double-inclusion) +- For every uncle U in block B, the miner of B gets an additional 3.125% added to its coinbase reward and the miner of U gets 93.75% of a standard coinbase reward. + +This limited version of GHOST, with uncles includable only up to 7 generations, was used for two reasons. First, unlimited GHOST would include too many complications into the calculation of which uncles for a given block are valid. Second, unlimited GHOST with compensation as used in Ethereum removes the incentive for a miner to mine on the main chain and not the chain of a public attacker. + +### Fees {#fees} + +Because every transaction published into the blockchain imposes on the network the cost of needing to download and verify it, there is a need for some regulatory mechanism, typically involving transaction fees, to prevent abuse. The default approach, used in Bitcoin, is to have purely voluntary fees, relying on miners to act as the gatekeepers and set dynamic minimums. This approach has been received very favorably in the Bitcoin community particularly because it is "market-based", allowing supply and demand between miners and transaction senders determine the price. The problem with this line of reasoning is, however, that transaction processing is not a market; although it is intuitively attractive to construe transaction processing as a service that the miner is offering to the sender, in reality every transaction that a miner includes will need to be processed by every node in the network, so the vast majority of the cost of transaction processing is borne by third parties and not the miner that is making the decision of whether or not to include it. Hence, tragedy-of-the-commons problems are very likely to occur. + +However, as it turns out this flaw in the market-based mechanism, when given a particular inaccurate simplifying assumption, magically cancels itself out. The argument is as follows. Suppose that: + +1. A transaction leads to `k` operations, offering the reward `kR` to any miner that includes it where `R` is set by the sender and `k` and `R` are (roughly) visible to the miner beforehand. +2. An operation has a processing cost of `C` to any node (ie. all nodes have equal efficiency) +3. There are `N` mining nodes, each with exactly equal processing power (ie. `1/N` of total) +4. No non-mining full nodes exist. + +A miner would be willing to process a transaction if the expected reward is greater than the cost. Thus, the expected reward is `kR/N` since the miner has a `1/N` chance of processing the next block, and the processing cost for the miner is simply `kC`. Hence, miners will include transactions where `kR/N > kC`, or `R > NC`. Note that `R` is the per-operation fee provided by the sender, and is thus a lower bound on the benefit that the sender derives from the transaction, and `NC` is the cost to the entire network together of processing an operation. Hence, miners have the incentive to include only those transactions for which the total utilitarian benefit exceeds the cost. + +However, there are several important deviations from those assumptions in reality: + +1. The miner does pay a higher cost to process the transaction than the other verifying nodes, since the extra verification time delays block propagation and thus increases the chance the block will become a stale. +2. There do exist nonmining full nodes. +3. The mining power distribution may end up radically inegalitarian in practice. +4. Speculators, political enemies and crazies whose utility function includes causing harm to the network do exist, and they can cleverly set up contracts where their cost is much lower than the cost paid by other verifying nodes. + +(1) provides a tendency for the miner to include fewer transactions, and +(2) increases `NC`; hence, these two effects at least partially +cancel each other +out.[How?](https://github.com/ethereum/wiki/issues/447#issuecomment-316972260) +(3) and (4) are the major issue; to solve them we simply institute a +floating cap: no block can have more operations than +`BLK_LIMIT_FACTOR` times the long-term exponential moving average. +Specifically: + +```js +blk.oplimit = floor((blk.parent.oplimit \* (EMAFACTOR - 1) + +floor(parent.opcount \* BLK\_LIMIT\_FACTOR)) / EMA\_FACTOR) +``` + +`BLK_LIMIT_FACTOR` and `EMA_FACTOR` are constants that will be set to 65536 and 1.5 for the time being, but will likely be changed after further analysis. + +There is another factor disincentivizing large block sizes in Bitcoin: blocks that are large will take longer to propagate, and thus have a higher probability of becoming stales. In Ethereum, highly gas-consuming blocks can also take longer to propagate both because they are physically larger and because they take longer to process the transaction state transitions to validate. This delay disincentive is a significant consideration in Bitcoin, but less so in Ethereum because of the GHOST protocol; hence, relying on regulated block limits provides a more stable baseline. + +### Computation And Turing-Completeness {#computation-and-turing-completeness} + +An important note is that the Ethereum virtual machine is Turing-complete; this means that EVM code can encode any computation that can be conceivably carried out, including infinite loops. EVM code allows looping in two ways. First, there is a `JUMP` instruction that allows the program to jump back to a previous spot in the code, and a `JUMPI` instruction to do conditional jumping, allowing for statements like `while x < 27: x = x * 2`. Second, contracts can call other contracts, potentially allowing for looping through recursion. This naturally leads to a problem: can malicious users essentially shut miners and full nodes down by forcing them to enter into an infinite loop? The issue arises because of a problem in computer science known as the halting problem: there is no way to tell, in the general case, whether or not a given program will ever halt. + +As described in the state transition section, our solution works by requiring a transaction to set a maximum number of computational steps that it is allowed to take, and if execution takes longer computation is reverted but fees are still paid. Messages work in the same way. To show the motivation behind our solution, consider the following examples: + +- An attacker creates a contract which runs an infinite loop, and then sends a transaction activating that loop to the miner. The miner will process the transaction, running the infinite loop, and wait for it to run out of gas. Even though the execution runs out of gas and stops halfway through, the transaction is still valid and the miner still claims the fee from the attacker for each computational step. +- An attacker creates a very long infinite loop with the intent of forcing the miner to keep computing for such a long time that by the time computation finishes a few more blocks will have come out and it will not be possible for the miner to include the transaction to claim the fee. However, the attacker will be required to submit a value for `STARTGAS` limiting the number of computational steps that execution can take, so the miner will know ahead of time that the computation will take an excessively large number of steps. +- An attacker sees a contract with code of some form like `send(A,contract.storage[A]); contract.storage[A] = 0`, and sends a transaction with just enough gas to run the first step but not the second (ie. making a withdrawal but not letting the balance go down). The contract author does not need to worry about protecting against such attacks, because if execution stops halfway through the changes get reverted. +- A financial contract works by taking the median of nine proprietary data feeds in order to minimize risk. An attacker takes over one of the data feeds, which is designed to be modifiable via the variable-address-call mechanism described in the section on DAOs, and converts it to run an infinite loop, thereby attempting to force any attempts to claim funds from the financial contract to run out of gas. However, the financial contract can set a gas limit on the message to prevent this problem. + +The alternative to Turing-completeness is Turing-incompleteness, where `JUMP` and `JUMPI` do not exist and only one copy of each contract is allowed to exist in the call stack at any given time. With this system, the fee system described and the uncertainties around the effectiveness of our solution might not be necessary, as the cost of executing a contract would be bounded above by its size. Additionally, Turing-incompleteness is not even that big a limitation; out of all the contract examples we have conceived internally, so far only one required a loop, and even that loop could be removed by making 26 repetitions of a one-line piece of code. Given the serious implications of Turing-completeness, and the limited benefit, why not simply have a Turing-incomplete language? In reality, however, Turing-incompleteness is far from a neat solution to the problem. To see why, consider the following contracts: + +```sh +C0: call(C1); call(C1); +C1: call(C2); call(C2); +C2: call(C3); call(C3); +... +C49: call(C50); call(C50); +C50: (run one step of a program and record the change in storage) +``` + +Now, send a transaction to A. Thus, in 51 transactions, we have a contract that takes up 250 computational steps. Miners could try to detect such logic bombs ahead of time by maintaining a value alongside each contract specifying the maximum number of computational steps that it can take, and calculating this for contracts calling other contracts recursively, but that would require miners to forbid contracts that create other contracts (since the creation and execution of all 26 contracts above could easily be rolled into a single contract). Another problematic point is that the address field of a message is a variable, so in general it may not even be possible to tell which other contracts a given contract will call ahead of time. Hence, all in all, we have a surprising conclusion: Turing-completeness is surprisingly easy to manage, and the lack of Turing-completeness is equally surprisingly difficult to manage unless the exact same controls are in place - but in that case why not just let the protocol be Turing-complete? + +### Currency And Issuance {#currency-and-issuance} + +The Ethereum network includes its own built-in currency, ether, which serves the dual purpose of providing a primary liquidity layer to allow for efficient exchange between various types of digital assets and, more importantly, of providing a mechanism for paying transaction fees. For convenience and to avoid future argument (see the current mBTC/uBTC/satoshi debate in Bitcoin), the denominations will be pre-labelled: + +- 1: wei +- 1012: szabo +- 1015: finney +- 1018: ether + +This should be taken as an expanded version of the concept of "dollars" and "cents" or "BTC" and "satoshi". In the near future, we expect "ether" to be used for ordinary transactions, "finney" for microtransactions and "szabo" and "wei" for technical discussions around fees and protocol implementation; the remaining denominations may become useful later and should not be included in clients at this point. + +The issuance model will be as follows: + +- Ether will be released in a currency sale at the price of 1000-2000 ether per BTC, a mechanism intended to fund the Ethereum organization and pay for development that has been used with success by other platforms such as Mastercoin and NXT. Earlier buyers will benefit from larger discounts. The BTC received from the sale will be used entirely to pay salaries and bounties to developers and invested into various for-profit and non-profit projects in the Ethereum and cryptocurrency ecosystem. +- 0.099x the total amount sold (60102216 ETH) will be allocated to the organization to compensate early contributors and pay ETH-denominated expenses before the genesis block. +- 0.099x the total amount sold will be maintained as a long-term reserve. +- 0.26x the total amount sold will be allocated to miners per year forever after that point. + +| Group | At launch | After 1 year | After 5 years | +| ---------------------- | --------- | ------------ | ------------- | +| Currency units | 1.198X | 1.458X | 2.498X | +| Purchasers | 83.5% | 68.6% | 40.0% | +| Reserve spent pre-sale | 8.26% | 6.79% | 3.96% | +| Reserve used post-sale | 8.26% | 6.79% | 3.96% | +| Miners | 0% | 17.8% | 52.0% | + +#### Long-Term Supply Growth Rate (percent) + +![Ethereum inflation](./ethereum-inflation.png) + +_Despite the linear currency issuance, just like with Bitcoin over time the supply growth rate nevertheless tends to zero._ + +The two main choices in the above model are (1) the existence and size of an endowment pool, and (2) the existence of a permanently growing linear supply, as opposed to a capped supply as in Bitcoin. The justification of the endowment pool is as follows. If the endowment pool did not exist, and the linear issuance reduced to 0.217x to provide the same inflation rate, then the total quantity of ether would be 16.5% less and so each unit would be 19.8% more valuable. Hence, in the equilibrium 19.8% more ether would be purchased in the sale, so each unit would once again be exactly as valuable as before. The organization would also then have 1.198x as much BTC, which can be considered to be split into two slices: the original BTC, and the additional 0.198x. Hence, this situation is _exactly equivalent_ to the endowment, but with one important difference: the organization holds purely BTC, and so is not incentivized to support the value of the ether unit. + +The permanent linear supply growth model reduces the risk of what some see as excessive wealth concentration in Bitcoin, and gives individuals living in present and future eras a fair chance to acquire currency units, while at the same time retaining a strong incentive to obtain and hold ether because the "supply growth rate" as a percentage still tends to zero over time. We also theorize that because coins are always lost over time due to carelessness, death, etc, and coin loss can be modeled as a percentage of the total supply per year, that the total currency supply in circulation will in fact eventually stabilize at a value equal to the annual issuance divided by the loss rate (eg. at a loss rate of 1%, once the supply reaches 26X then 0.26X will be mined and 0.26X lost every year, creating an equilibrium). + +Note that in the future, it is likely that Ethereum will switch to a proof-of-stake model for security, reducing the issuance requirement to somewhere between zero and 0.05X per year. In the event that the Ethereum organization loses funding or for any other reason disappears, we leave open a "social contract": anyone has the right to create a future candidate version of Ethereum, with the only condition being that the quantity of ether must be at most equal to `60102216 * (1.198 + 0.26 * n)` where `n` is the number of years after the genesis block. Creators are free to crowd-sell or otherwise assign some or all of the difference between the PoS-driven supply expansion and the maximum allowable supply expansion to pay for development. Candidate upgrades that do not comply with the social contract may justifiably be forked into compliant versions. + +### Mining Centralization {#mining-centralization} + +The Bitcoin mining algorithm works by having miners compute SHA256 on slightly modified versions of the block header millions of times over and over again, until eventually one node comes up with a version whose hash is less than the target (currently around 2192). However, this mining algorithm is vulnerable to two forms of centralization. First, the mining ecosystem has come to be dominated by ASICs (application-specific integrated circuits), computer chips designed for, and therefore thousands of times more efficient at, the specific task of Bitcoin mining. This means that Bitcoin mining is no longer a highly decentralized and egalitarian pursuit, requiring millions of dollars of capital to effectively participate in. Second, most Bitcoin miners do not actually perform block validation locally; instead, they rely on a centralized mining pool to provide the block headers. This problem is arguably worse: as of the time of this writing, the top three mining pools indirectly control roughly 50% of processing power in the Bitcoin network, although this is mitigated by the fact that miners can switch to other mining pools if a pool or coalition attempts a 51% attack. + +The current intent at Ethereum is to use a mining algorithm where miners are required to fetch random data from the state, compute some randomly selected transactions from the last N blocks in the blockchain, and return the hash of the result. This has two important benefits. First, Ethereum contracts can include any kind of computation, so an Ethereum ASIC would essentially be an ASIC for general computation - ie. a better CPU. Second, mining requires access to the entire blockchain, forcing miners to store the entire blockchain and at least be capable of verifying every transaction. This removes the need for centralized mining pools; although mining pools can still serve the legitimate role of evening out the randomness of reward distribution, this function can be served equally well by peer-to-peer pools with no central control. + +This model is untested, and there may be difficulties along the way in avoiding certain clever optimizations when using contract execution as a mining algorithm. However, one notably interesting feature of this algorithm is that it allows anyone to "poison the well", by introducing a large number of contracts into the blockchain specifically designed to stymie certain ASICs. The economic incentives exist for ASIC manufacturers to use such a trick to attack each other. Thus, the solution that we are developing is ultimately an adaptive economic human solution rather than purely a technical one. + +### Scalability {#scalability} + +One common concern about Ethereum is the issue of scalability. Like Bitcoin, Ethereum suffers from the flaw that every transaction needs to be processed by every node in the network. With Bitcoin, the size of the current blockchain rests at about 15 GB, growing by about 1 MB per hour. If the Bitcoin network were to process Visa's 2000 transactions per second, it would grow by 1 MB per three seconds (1 GB per hour, 8 TB per year). Ethereum is likely to suffer a similar growth pattern, worsened by the fact that there will be many applications on top of the Ethereum blockchain instead of just a currency as is the case with Bitcoin, but ameliorated by the fact that Ethereum full nodes need to store just the state instead of the entire blockchain history. + +The problem with such a large blockchain size is centralization risk. If the blockchain size increases to, say, 100 TB, then the likely scenario would be that only a very small number of large businesses would run full nodes, with all regular users using light SPV nodes. In such a situation, there arises the potential concern that the full nodes could band together and all agree to cheat in some profitable fashion (eg. change the block reward, give themselves BTC). Light nodes would have no way of detecting this immediately. Of course, at least one honest full node would likely exist, and after a few hours information about the fraud would trickle out through channels like Reddit, but at that point it would be too late: it would be up to the ordinary users to organize an effort to blacklist the given blocks, a massive and likely infeasible coordination problem on a similar scale as that of pulling off a successful 51% attack. In the case of Bitcoin, this is currently a problem, but there exists a blockchain modification [suggested by Peter Todd](https://web.archive.org/web/20140623061815/http://sourceforge.net/p/bitcoin/mailman/message/31709140/) which will alleviate this issue. + +In the near term, Ethereum will use two additional strategies to cope with this problem. First, because of the blockchain-based mining algorithms, at least every miner will be forced to be a full node, creating a lower bound on the number of full nodes. Second and more importantly, however, we will include an intermediate state tree root in the blockchain after processing each transaction. Even if block validation is centralized, as long as one honest verifying node exists, the centralization problem can be circumvented via a verification protocol. If a miner publishes an invalid block, that block must either be badly formatted, or the state `S[n]` is incorrect. Since `S[0]` is known to be correct, there must be some first state `S[i]` that is incorrect where `S[i-1]` is correct. The verifying node would provide the index `i`, along with a "proof of invalidity" consisting of the subset of Patricia tree nodes needing to process `APPLY(S[i-1],TX[i]) -> S[i]`. Nodes would be able to use those nodes to run that part of the computation, and see that the `S[i]` generated does not match the `S[i]` provided. + +Another, more sophisticated, attack would involve the malicious miners publishing incomplete blocks, so the full information does not even exist to determine whether or not blocks are valid. The solution to this is a challenge-response protocol: verification nodes issue "challenges" in the form of target transaction indices, and upon receiving a node a light node treats the block as untrusted until another node, whether the miner or another verifier, provides a subset of Patricia nodes as a proof of validity. + +## Conclusion {#conclusion} + +The Ethereum protocol was originally conceived as an upgraded version of a cryptocurrency, providing advanced features such as on-blockchain escrow, withdrawal limits, financial contracts, gambling markets and the like via a highly generalized programming language. The Ethereum protocol would not "support" any of the applications directly, but the existence of a Turing-complete programming language means that arbitrary contracts can theoretically be created for any transaction type or application. What is more interesting about Ethereum, however, is that the Ethereum protocol moves far beyond just currency. Protocols around decentralized file storage, decentralized computation and decentralized prediction markets, among dozens of other such concepts, have the potential to substantially increase the efficiency of the computational industry, and provide a massive boost to other peer-to-peer protocols by adding for the first time an economic layer. Finally, there is also a substantial array of applications that have nothing to do with money at all. + +The concept of an arbitrary state transition function as implemented by the Ethereum protocol provides for a platform with unique potential; rather than being a closed-ended, single-purpose protocol intended for a specific array of applications in data storage, gambling or finance, Ethereum is open-ended by design, and we believe that it is extremely well-suited to serving as a foundational layer for a very large number of both financial and non-financial protocols in the years to come. + +## Notes and Further Reading {#notes-and-further-reading} + +### Notes {#notes} + +1. A sophisticated reader may notice that in fact a Bitcoin address is the hash of the elliptic curve public key, and not the public key itself. However, it is in fact perfectly legitimate cryptographic terminology to refer to the pubkey hash as a public key itself. This is because Bitcoin's cryptography can be considered to be a custom digital signature algorithm, where the public key consists of the hash of the ECC pubkey, the signature consists of the ECC pubkey concatenated with the ECC signature, and the verification algorithm involves checking the ECC pubkey in the signature against the ECC pubkey hash provided as a public key and then verifying the ECC signature against the ECC pubkey. +2. Technically, the median of the 11 previous blocks. +3. Internally, 2 and "CHARLIE" are both numbers[fn3](#notes), with the latter being in big-endian base 256 representation. Numbers can be at least 0 and at most 2256-1. + +### Further Reading {#further-reading} + +1. [Intrinsic value](http://bitcoinmagazine.com/8640/an-exploration-of-intrinsic-value-what-it-is-why-bitcoin-doesnt-have-it-and-why-bitcoin-does-have-it/) +2. [Smart property](https://en.bitcoin.it/wiki/Smart_Property) +3. [Smart contracts](https://en.bitcoin.it/wiki/Contracts) +4. [B-money](http://www.weidai.com/bmoney.txt) +5. [Reusable proofs of work](https://nakamotoinstitute.org/finney/rpow/) +6. [Secure property titles with owner authority](https://nakamotoinstitute.org/secure-property-titles/) +7. [Bitcoin whitepaper](http://bitcoin.org/bitcoin.pdf) +8. [Namecoin](https://namecoin.org/) +9. [Zooko's triangle](https://wikipedia.org/wiki/Zooko's_triangle) +10. [Colored coins whitepaper](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit) +11. [Mastercoin whitepaper](https://github.com/mastercoin-MSC/spec) +12. [Decentralized autonomous corporations, Bitcoin Magazine](http://bitcoinmagazine.com/7050/bootstrapping-a-decentralized-autonomous-corporation-part-i/) +13. [Simplified payment verification](https://en.bitcoin.it/wiki/Scalability#Simplified_payment_verification) +14. [Merkle trees](https://wikipedia.org/wiki/Merkle_tree) +15. [Patricia trees](https://wikipedia.org/wiki/Patricia_tree) +16. [GHOST](https://eprint.iacr.org/2013/881.pdf) +17. [StorJ and Autonomous Agents, Jeff Garzik](http://garzikrants.blogspot.ca/2013/01/storj-and-bitcoin-autonomous-agents.html) +18. [Mike Hearn on Smart Property at Turing Festival](https://www.youtube.com/watch?v=MVyv4t0OKe4) +19. [Ethereum RLP](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-RLP) +20. [Ethereum Merkle Patricia trees](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-Patricia-Tree) +21. [Peter Todd on Merkle sum trees](https://web.archive.org/web/20140623061815/http://sourceforge.net/p/bitcoin/mailman/message/31709140/) + +_For history of the whitepaper, see [this wiki](https://github.com/ethereum/wiki/blob/old-before-deleting-all-files-go-to-wiki-wiki-instead/old-whitepaper-for-historical-reference.md)._ + +_Ethereum, like many community-driven, open-source software projects, has evolved since its initial inception. To learn about the latest developments of Ethereum, and how changes to the protocol are made, we recommend [this guide](/learn/)._ diff --git a/src/content/whitepaper/spv-bitcoin.png b/public/content/whitepaper/spv-bitcoin.png similarity index 100% rename from src/content/whitepaper/spv-bitcoin.png rename to public/content/whitepaper/spv-bitcoin.png diff --git a/src/content/whitepaper/whitepaper-pdf/Ethereum_Whitepaper_-_Buterin_2014.pdf b/public/content/whitepaper/whitepaper-pdf/Ethereum_Whitepaper_-_Buterin_2014.pdf similarity index 100% rename from src/content/whitepaper/whitepaper-pdf/Ethereum_Whitepaper_-_Buterin_2014.pdf rename to public/content/whitepaper/whitepaper-pdf/Ethereum_Whitepaper_-_Buterin_2014.pdf diff --git a/src/content/zero-knowledge-proofs/index.md b/public/content/zero-knowledge-proofs/index.md similarity index 100% rename from src/content/zero-knowledge-proofs/index.md rename to public/content/zero-knowledge-proofs/index.md diff --git a/src/assets/dapps/aave.png b/public/dapps/aave.png similarity index 100% rename from src/assets/dapps/aave.png rename to public/dapps/aave.png diff --git a/src/assets/dapps/ankr.png b/public/dapps/ankr.png similarity index 100% rename from src/assets/dapps/ankr.png rename to public/dapps/ankr.png diff --git a/src/assets/dapps/api3.png b/public/dapps/api3.png similarity index 100% rename from src/assets/dapps/api3.png rename to public/dapps/api3.png diff --git a/src/assets/dapps/artblocks.png b/public/dapps/artblocks.png similarity index 100% rename from src/assets/dapps/artblocks.png rename to public/dapps/artblocks.png diff --git a/src/assets/dapps/arweave.png b/public/dapps/arweave.png similarity index 100% rename from src/assets/dapps/arweave.png rename to public/dapps/arweave.png diff --git a/src/assets/dapps/asyncart.png b/public/dapps/asyncart.png similarity index 100% rename from src/assets/dapps/asyncart.png rename to public/dapps/asyncart.png diff --git a/src/assets/dapps/audius.png b/public/dapps/audius.png similarity index 100% rename from src/assets/dapps/audius.png rename to public/dapps/audius.png diff --git a/src/assets/dapps/augur.png b/public/dapps/augur.png similarity index 100% rename from src/assets/dapps/augur.png rename to public/dapps/augur.png diff --git a/src/assets/dapps/axie.png b/public/dapps/axie.png similarity index 100% rename from src/assets/dapps/axie.png rename to public/dapps/axie.png diff --git a/src/assets/dapps/balancer.png b/public/dapps/balancer.png similarity index 100% rename from src/assets/dapps/balancer.png rename to public/dapps/balancer.png diff --git a/src/assets/dapps/brave.png b/public/dapps/brave.png similarity index 100% rename from src/assets/dapps/brave.png rename to public/dapps/brave.png diff --git a/src/assets/dapps/compound.png b/public/dapps/compound.png similarity index 100% rename from src/assets/dapps/compound.png rename to public/dapps/compound.png diff --git a/src/assets/dapps/convex.png b/public/dapps/convex.png similarity index 100% rename from src/assets/dapps/convex.png rename to public/dapps/convex.png diff --git a/src/assets/dapps/cryptopunks.png b/public/dapps/cryptopunks.png similarity index 100% rename from src/assets/dapps/cryptopunks.png rename to public/dapps/cryptopunks.png diff --git a/src/assets/dapps/cryptovoxels.png b/public/dapps/cryptovoxels.png similarity index 100% rename from src/assets/dapps/cryptovoxels.png rename to public/dapps/cryptovoxels.png diff --git a/src/assets/dapps/curve.png b/public/dapps/curve.png similarity index 100% rename from src/assets/dapps/curve.png rename to public/dapps/curve.png diff --git a/src/assets/dapps/cyberconnect.png b/public/dapps/cyberconnect.png similarity index 100% rename from src/assets/dapps/cyberconnect.png rename to public/dapps/cyberconnect.png diff --git a/src/assets/dapps/darkforest.png b/public/dapps/darkforest.png similarity index 100% rename from src/assets/dapps/darkforest.png rename to public/dapps/darkforest.png diff --git a/src/assets/dapps/decentraland.png b/public/dapps/decentraland.png similarity index 100% rename from src/assets/dapps/decentraland.png rename to public/dapps/decentraland.png diff --git a/src/assets/dapps/dexguru.png b/public/dapps/dexguru.png similarity index 100% rename from src/assets/dapps/dexguru.png rename to public/dapps/dexguru.png diff --git a/src/assets/dapps/dodo.png b/public/dapps/dodo.png similarity index 100% rename from src/assets/dapps/dodo.png rename to public/dapps/dodo.png diff --git a/public/dapps/ens.png b/public/dapps/ens.png new file mode 100644 index 00000000000..5f700a11724 Binary files /dev/null and b/public/dapps/ens.png differ diff --git a/src/assets/dapps/etherisc.png b/public/dapps/etherisc.png similarity index 100% rename from src/assets/dapps/etherisc.png rename to public/dapps/etherisc.png diff --git a/src/assets/dapps/foundation.png b/public/dapps/foundation.png similarity index 100% rename from src/assets/dapps/foundation.png rename to public/dapps/foundation.png diff --git a/src/assets/dapps/gitcoin.png b/public/dapps/gitcoin.png similarity index 100% rename from src/assets/dapps/gitcoin.png rename to public/dapps/gitcoin.png diff --git a/src/assets/dapps/gm.png b/public/dapps/gm.png similarity index 100% rename from src/assets/dapps/gm.png rename to public/dapps/gm.png diff --git a/src/assets/dapps/gods.png b/public/dapps/gods.png similarity index 100% rename from src/assets/dapps/gods.png rename to public/dapps/gods.png diff --git a/src/assets/dapps/golem.png b/public/dapps/golem.png similarity index 100% rename from src/assets/dapps/golem.png rename to public/dapps/golem.png diff --git a/src/assets/dapps/graph.png b/public/dapps/graph.png similarity index 100% rename from src/assets/dapps/graph.png rename to public/dapps/graph.png diff --git a/src/assets/dapps/index-coop.png b/public/dapps/index-coop.png similarity index 100% rename from src/assets/dapps/index-coop.png rename to public/dapps/index-coop.png diff --git a/src/assets/dapps/ipfs.png b/public/dapps/ipfs.png similarity index 100% rename from src/assets/dapps/ipfs.png rename to public/dapps/ipfs.png diff --git a/src/assets/dapps/krystal.png b/public/dapps/krystal.png similarity index 100% rename from src/assets/dapps/krystal.png rename to public/dapps/krystal.png diff --git a/src/assets/dapps/kyberswap.png b/public/dapps/kyberswap.png similarity index 100% rename from src/assets/dapps/kyberswap.png rename to public/dapps/kyberswap.png diff --git a/src/assets/dapps/lido.png b/public/dapps/lido.png similarity index 100% rename from src/assets/dapps/lido.png rename to public/dapps/lido.png diff --git a/src/assets/dapps/loopring.png b/public/dapps/loopring.png similarity index 100% rename from src/assets/dapps/loopring.png rename to public/dapps/loopring.png diff --git a/src/assets/dapps/marble.png b/public/dapps/marble.png similarity index 100% rename from src/assets/dapps/marble.png rename to public/dapps/marble.png diff --git a/src/assets/dapps/matcha.png b/public/dapps/matcha.png similarity index 100% rename from src/assets/dapps/matcha.png rename to public/dapps/matcha.png diff --git a/src/assets/dapps/mirror.png b/public/dapps/mirror.png similarity index 100% rename from src/assets/dapps/mirror.png rename to public/dapps/mirror.png diff --git a/src/assets/dapps/multichain.png b/public/dapps/multichain.png similarity index 100% rename from src/assets/dapps/multichain.png rename to public/dapps/multichain.png diff --git a/src/assets/dapps/nexus.png b/public/dapps/nexus.png similarity index 100% rename from src/assets/dapps/nexus.png rename to public/dapps/nexus.png diff --git a/src/assets/dapps/nifty.png b/public/dapps/nifty.png similarity index 100% rename from src/assets/dapps/nifty.png rename to public/dapps/nifty.png diff --git a/src/assets/dapps/opensea.png b/public/dapps/opensea.png similarity index 100% rename from src/assets/dapps/opensea.png rename to public/dapps/opensea.png diff --git a/src/assets/dapps/opera.png b/public/dapps/opera.png similarity index 100% rename from src/assets/dapps/opera.png rename to public/dapps/opera.png diff --git a/src/assets/dapps/osuvox.png b/public/dapps/osuvox.png similarity index 100% rename from src/assets/dapps/osuvox.png rename to public/dapps/osuvox.png diff --git a/src/assets/dapps/poap.png b/public/dapps/poap.png similarity index 100% rename from src/assets/dapps/poap.png rename to public/dapps/poap.png diff --git a/src/assets/dapps/polymarket.png b/public/dapps/polymarket.png similarity index 100% rename from src/assets/dapps/polymarket.png rename to public/dapps/polymarket.png diff --git a/src/assets/dapps/pooltogether.png b/public/dapps/pooltogether.png similarity index 100% rename from src/assets/dapps/pooltogether.png rename to public/dapps/pooltogether.png diff --git a/src/assets/dapps/pwn.png b/public/dapps/pwn.png similarity index 100% rename from src/assets/dapps/pwn.png rename to public/dapps/pwn.png diff --git a/src/assets/dapps/radicle.png b/public/dapps/radicle.png similarity index 100% rename from src/assets/dapps/radicle.png rename to public/dapps/radicle.png diff --git a/src/assets/dapps/rarible.png b/public/dapps/rarible.png similarity index 100% rename from src/assets/dapps/rarible.png rename to public/dapps/rarible.png diff --git a/src/assets/dapps/rotki.png b/public/dapps/rotki.png similarity index 100% rename from src/assets/dapps/rotki.png rename to public/dapps/rotki.png diff --git a/src/assets/dapps/rubic.png b/public/dapps/rubic.png similarity index 100% rename from src/assets/dapps/rubic.png rename to public/dapps/rubic.png diff --git a/src/assets/dapps/sablier.png b/public/dapps/sablier.png similarity index 100% rename from src/assets/dapps/sablier.png rename to public/dapps/sablier.png diff --git a/src/assets/dapps/set.png b/public/dapps/set.png similarity index 100% rename from src/assets/dapps/set.png rename to public/dapps/set.png diff --git a/src/assets/dapps/skiff.png b/public/dapps/skiff.png similarity index 100% rename from src/assets/dapps/skiff.png rename to public/dapps/skiff.png diff --git a/src/assets/dapps/spatial.png b/public/dapps/spatial.png similarity index 100% rename from src/assets/dapps/spatial.png rename to public/dapps/spatial.png diff --git a/src/assets/dapps/spruce.png b/public/dapps/spruce.png similarity index 100% rename from src/assets/dapps/spruce.png rename to public/dapps/spruce.png diff --git a/src/assets/dapps/stabledai.png b/public/dapps/stabledai.png similarity index 100% rename from src/assets/dapps/stabledai.png rename to public/dapps/stabledai.png diff --git a/src/assets/dapps/status.png b/public/dapps/status.png similarity index 100% rename from src/assets/dapps/status.png rename to public/dapps/status.png diff --git a/src/assets/dapps/superrare.png b/public/dapps/superrare.png similarity index 100% rename from src/assets/dapps/superrare.png rename to public/dapps/superrare.png diff --git a/src/assets/dapps/synthetix.png b/public/dapps/synthetix.png similarity index 100% rename from src/assets/dapps/synthetix.png rename to public/dapps/synthetix.png diff --git a/src/assets/dapps/tornado.png b/public/dapps/tornado.png similarity index 100% rename from src/assets/dapps/tornado.png rename to public/dapps/tornado.png diff --git a/src/assets/dapps/uni.png b/public/dapps/uni.png similarity index 100% rename from src/assets/dapps/uni.png rename to public/dapps/uni.png diff --git a/src/assets/dapps/xmtp.png b/public/dapps/xmtp.png similarity index 100% rename from src/assets/dapps/xmtp.png rename to public/dapps/xmtp.png diff --git a/src/assets/dapps/yearn.png b/public/dapps/yearn.png similarity index 100% rename from src/assets/dapps/yearn.png rename to public/dapps/yearn.png diff --git a/src/assets/dapps/zapper.png b/public/dapps/zapper.png similarity index 100% rename from src/assets/dapps/zapper.png rename to public/dapps/zapper.png diff --git a/src/assets/dapps/zerion.png b/public/dapps/zerion.png similarity index 100% rename from src/assets/dapps/zerion.png rename to public/dapps/zerion.png diff --git a/src/assets/deep-panic.png b/public/deep-panic.png similarity index 100% rename from src/assets/deep-panic.png rename to public/deep-panic.png diff --git a/src/assets/deprecated-software/parity-logo-5chdn.svg b/public/deprecated-software/parity-logo-5chdn.svg similarity index 100% rename from src/assets/deprecated-software/parity-logo-5chdn.svg rename to public/deprecated-software/parity-logo-5chdn.svg diff --git a/src/assets/deprecated-software/sparkpool-logo-05f46574eac2ad_876.png b/public/deprecated-software/sparkpool-logo-05f46574eac2ad_876.png similarity index 100% rename from src/assets/deprecated-software/sparkpool-logo-05f46574eac2ad_876.png rename to public/deprecated-software/sparkpool-logo-05f46574eac2ad_876.png diff --git a/src/assets/dev-tools/Vscode.png b/public/dev-tools/Vscode.png similarity index 100% rename from src/assets/dev-tools/Vscode.png rename to public/dev-tools/Vscode.png diff --git a/src/assets/dev-tools/alchemyuniversity.png b/public/dev-tools/alchemyuniversity.png similarity index 100% rename from src/assets/dev-tools/alchemyuniversity.png rename to public/dev-tools/alchemyuniversity.png diff --git a/src/assets/dev-tools/atom.png b/public/dev-tools/atom.png similarity index 100% rename from src/assets/dev-tools/atom.png rename to public/dev-tools/atom.png diff --git a/src/assets/dev-tools/bloomtech.png b/public/dev-tools/bloomtech.png similarity index 100% rename from src/assets/dev-tools/bloomtech.png rename to public/dev-tools/bloomtech.png diff --git a/src/assets/dev-tools/buildspace.png b/public/dev-tools/buildspace.png similarity index 100% rename from src/assets/dev-tools/buildspace.png rename to public/dev-tools/buildspace.png diff --git a/src/assets/dev-tools/capturetheether.png b/public/dev-tools/capturetheether.png similarity index 100% rename from src/assets/dev-tools/capturetheether.png rename to public/dev-tools/capturetheether.png diff --git a/src/assets/dev-tools/chainIDE.png b/public/dev-tools/chainIDE.png similarity index 100% rename from src/assets/dev-tools/chainIDE.png rename to public/dev-tools/chainIDE.png diff --git a/src/assets/dev-tools/chainshot.png b/public/dev-tools/chainshot.png similarity index 100% rename from src/assets/dev-tools/chainshot.png rename to public/dev-tools/chainshot.png diff --git a/src/assets/dev-tools/consensys.png b/public/dev-tools/consensys.png similarity index 100% rename from src/assets/dev-tools/consensys.png rename to public/dev-tools/consensys.png diff --git a/src/assets/dev-tools/crypto-zombie.png b/public/dev-tools/crypto-zombie.png similarity index 100% rename from src/assets/dev-tools/crypto-zombie.png rename to public/dev-tools/crypto-zombie.png diff --git a/src/assets/dev-tools/epirus.png b/public/dev-tools/epirus.png similarity index 100% rename from src/assets/dev-tools/epirus.png rename to public/dev-tools/epirus.png diff --git a/src/assets/dev-tools/eth-dot-build.png b/public/dev-tools/eth-dot-build.png similarity index 100% rename from src/assets/dev-tools/eth-dot-build.png rename to public/dev-tools/eth-dot-build.png diff --git a/src/assets/dev-tools/ethers.png b/public/dev-tools/ethers.png similarity index 100% rename from src/assets/dev-tools/ethers.png rename to public/dev-tools/ethers.png diff --git a/src/assets/dev-tools/foundry.png b/public/dev-tools/foundry.png similarity index 100% rename from src/assets/dev-tools/foundry.png rename to public/dev-tools/foundry.png diff --git a/src/assets/dev-tools/ganache.png b/public/dev-tools/ganache.png similarity index 100% rename from src/assets/dev-tools/ganache.png rename to public/dev-tools/ganache.png diff --git a/src/assets/dev-tools/hardhat.png b/public/dev-tools/hardhat.png similarity index 100% rename from src/assets/dev-tools/hardhat.png rename to public/dev-tools/hardhat.png diff --git a/src/assets/dev-tools/kurtosis.png b/public/dev-tools/kurtosis.png similarity index 100% rename from src/assets/dev-tools/kurtosis.png rename to public/dev-tools/kurtosis.png diff --git a/src/assets/dev-tools/metaschool.png b/public/dev-tools/metaschool.png similarity index 100% rename from src/assets/dev-tools/metaschool.png rename to public/dev-tools/metaschool.png diff --git a/src/assets/dev-tools/nftschool.png b/public/dev-tools/nftschool.png similarity index 100% rename from src/assets/dev-tools/nftschool.png rename to public/dev-tools/nftschool.png diff --git a/src/assets/dev-tools/openzeppelin.png b/public/dev-tools/openzeppelin.png similarity index 100% rename from src/assets/dev-tools/openzeppelin.png rename to public/dev-tools/openzeppelin.png diff --git a/src/assets/dev-tools/oz.png b/public/dev-tools/oz.png similarity index 100% rename from src/assets/dev-tools/oz.png rename to public/dev-tools/oz.png diff --git a/src/assets/dev-tools/platzi.png b/public/dev-tools/platzi.png similarity index 100% rename from src/assets/dev-tools/platzi.png rename to public/dev-tools/platzi.png diff --git a/src/assets/dev-tools/pointer.png b/public/dev-tools/pointer.png similarity index 100% rename from src/assets/dev-tools/pointer.png rename to public/dev-tools/pointer.png diff --git a/src/assets/dev-tools/questbook.png b/public/dev-tools/questbook.png similarity index 100% rename from src/assets/dev-tools/questbook.png rename to public/dev-tools/questbook.png diff --git a/src/assets/dev-tools/remix.png b/public/dev-tools/remix.png similarity index 100% rename from src/assets/dev-tools/remix.png rename to public/dev-tools/remix.png diff --git a/src/assets/dev-tools/replit.png b/public/dev-tools/replit.png similarity index 100% rename from src/assets/dev-tools/replit.png rename to public/dev-tools/replit.png diff --git a/src/assets/dev-tools/scaffold-eth.png b/public/dev-tools/scaffold-eth.png similarity index 100% rename from src/assets/dev-tools/scaffold-eth.png rename to public/dev-tools/scaffold-eth.png diff --git a/src/assets/dev-tools/scaffoldeth.png b/public/dev-tools/scaffoldeth.png similarity index 100% rename from src/assets/dev-tools/scaffoldeth.png rename to public/dev-tools/scaffoldeth.png diff --git a/src/assets/dev-tools/solidity.png b/public/dev-tools/solidity.png similarity index 100% rename from src/assets/dev-tools/solidity.png rename to public/dev-tools/solidity.png diff --git a/src/assets/dev-tools/speed-run-ethereum.png b/public/dev-tools/speed-run-ethereum.png similarity index 100% rename from src/assets/dev-tools/speed-run-ethereum.png rename to public/dev-tools/speed-run-ethereum.png diff --git a/src/assets/dev-tools/studio.png b/public/dev-tools/studio.png similarity index 100% rename from src/assets/dev-tools/studio.png rename to public/dev-tools/studio.png diff --git a/src/assets/dev-tools/tenderly.png b/public/dev-tools/tenderly.png similarity index 100% rename from src/assets/dev-tools/tenderly.png rename to public/dev-tools/tenderly.png diff --git a/src/assets/dev-tools/truffle.png b/public/dev-tools/truffle.png similarity index 100% rename from src/assets/dev-tools/truffle.png rename to public/dev-tools/truffle.png diff --git a/src/assets/dev-tools/vyper.png b/public/dev-tools/vyper.png similarity index 100% rename from src/assets/dev-tools/vyper.png rename to public/dev-tools/vyper.png diff --git a/src/assets/dev-tools/waffle.png b/public/dev-tools/waffle.png similarity index 100% rename from src/assets/dev-tools/waffle.png rename to public/dev-tools/waffle.png diff --git a/src/assets/dev-tools/web3js.png b/public/dev-tools/web3js.png similarity index 100% rename from src/assets/dev-tools/web3js.png rename to public/dev-tools/web3js.png diff --git a/src/assets/dev-tools/web3university.png b/public/dev-tools/web3university.png similarity index 100% rename from src/assets/dev-tools/web3university.png rename to public/dev-tools/web3university.png diff --git a/src/assets/dev-tools/workbench.png b/public/dev-tools/workbench.png similarity index 100% rename from src/assets/dev-tools/workbench.png rename to public/dev-tools/workbench.png diff --git a/src/assets/developers-eth-blocks.png b/public/developers-eth-blocks.png similarity index 100% rename from src/assets/developers-eth-blocks.png rename to public/developers-eth-blocks.png diff --git a/src/assets/doge-computer.png b/public/doge-computer.png similarity index 100% rename from src/assets/doge-computer.png rename to public/doge-computer.png diff --git a/src/assets/ef-logo-white.png b/public/ef-logo-white.png similarity index 100% rename from src/assets/ef-logo-white.png rename to public/ef-logo-white.png diff --git a/src/assets/ef-logo.png b/public/ef-logo.png similarity index 100% rename from src/assets/ef-logo.png rename to public/ef-logo.png diff --git a/src/assets/enterprise-eth.png b/public/enterprise-eth.png similarity index 100% rename from src/assets/enterprise-eth.png rename to public/enterprise-eth.png diff --git a/src/assets/enterprise.png b/public/enterprise.png similarity index 100% rename from src/assets/enterprise.png rename to public/enterprise.png diff --git a/src/assets/eth-gif-cat.png b/public/eth-gif-cat.png similarity index 100% rename from src/assets/eth-gif-cat.png rename to public/eth-gif-cat.png diff --git a/src/assets/eth-gif-chalk.png b/public/eth-gif-chalk.png similarity index 100% rename from src/assets/eth-gif-chalk.png rename to public/eth-gif-chalk.png diff --git a/src/assets/eth-gif-rainbow.svg b/public/eth-gif-rainbow.svg similarity index 100% rename from src/assets/eth-gif-rainbow.svg rename to public/eth-gif-rainbow.svg diff --git a/src/assets/eth-gif-sun.png b/public/eth-gif-sun.png similarity index 100% rename from src/assets/eth-gif-sun.png rename to public/eth-gif-sun.png diff --git a/src/assets/eth-gif-waves.png b/public/eth-gif-waves.png similarity index 100% rename from src/assets/eth-gif-waves.png rename to public/eth-gif-waves.png diff --git a/src/assets/eth-home-icon.png b/public/eth-home-icon.png similarity index 100% rename from src/assets/eth-home-icon.png rename to public/eth-home-icon.png diff --git a/src/assets/eth-logo-grey.png b/public/eth-logo-grey.png similarity index 100% rename from src/assets/eth-logo-grey.png rename to public/eth-logo-grey.png diff --git a/src/assets/eth-logo.png b/public/eth-logo.png similarity index 100% rename from src/assets/eth-logo.png rename to public/eth-logo.png diff --git a/src/assets/eth-pattern.png b/public/eth-pattern.png similarity index 100% rename from src/assets/eth-pattern.png rename to public/eth-pattern.png diff --git a/src/assets/eth.png b/public/eth.png similarity index 100% rename from src/assets/eth.png rename to public/eth.png diff --git a/src/assets/ethereum-hero-dark.mp4 b/public/ethereum-hero-dark.mp4 similarity index 100% rename from src/assets/ethereum-hero-dark.mp4 rename to public/ethereum-hero-dark.mp4 diff --git a/src/assets/ethereum-hero-light.mp4 b/public/ethereum-hero-light.mp4 similarity index 100% rename from src/assets/ethereum-hero-light.mp4 rename to public/ethereum-hero-light.mp4 diff --git a/src/assets/ethereum-learn.png b/public/ethereum-learn.png similarity index 100% rename from src/assets/ethereum-learn.png rename to public/ethereum-learn.png diff --git a/src/assets/ethereum-logo-wireframe.png b/public/ethereum-logo-wireframe.png similarity index 100% rename from src/assets/ethereum-logo-wireframe.png rename to public/ethereum-logo-wireframe.png diff --git a/src/assets/ethereum-studio-image.png b/public/ethereum-studio-image.png similarity index 100% rename from src/assets/ethereum-studio-image.png rename to public/ethereum-studio-image.png diff --git a/src/assets/exchanges/1inch.png b/public/exchanges/1inch.png similarity index 100% rename from src/assets/exchanges/1inch.png rename to public/exchanges/1inch.png diff --git a/src/assets/exchanges/bancor.png b/public/exchanges/bancor.png similarity index 100% rename from src/assets/exchanges/bancor.png rename to public/exchanges/bancor.png diff --git a/src/assets/exchanges/binance.png b/public/exchanges/binance.png similarity index 100% rename from src/assets/exchanges/binance.png rename to public/exchanges/binance.png diff --git a/src/assets/exchanges/bitbuy.png b/public/exchanges/bitbuy.png similarity index 100% rename from src/assets/exchanges/bitbuy.png rename to public/exchanges/bitbuy.png diff --git a/src/assets/exchanges/bitfinex.png b/public/exchanges/bitfinex.png similarity index 100% rename from src/assets/exchanges/bitfinex.png rename to public/exchanges/bitfinex.png diff --git a/src/assets/exchanges/bitflyer.png b/public/exchanges/bitflyer.png similarity index 100% rename from src/assets/exchanges/bitflyer.png rename to public/exchanges/bitflyer.png diff --git a/src/assets/exchanges/bitkub.png b/public/exchanges/bitkub.png similarity index 100% rename from src/assets/exchanges/bitkub.png rename to public/exchanges/bitkub.png diff --git a/src/assets/exchanges/bitso.png b/public/exchanges/bitso.png similarity index 100% rename from src/assets/exchanges/bitso.png rename to public/exchanges/bitso.png diff --git a/src/assets/exchanges/bittrex.png b/public/exchanges/bittrex.png similarity index 100% rename from src/assets/exchanges/bittrex.png rename to public/exchanges/bittrex.png diff --git a/src/assets/exchanges/bitvavo.png b/public/exchanges/bitvavo.png similarity index 100% rename from src/assets/exchanges/bitvavo.png rename to public/exchanges/bitvavo.png diff --git a/src/assets/exchanges/bybit.png b/public/exchanges/bybit.png similarity index 100% rename from src/assets/exchanges/bybit.png rename to public/exchanges/bybit.png diff --git a/src/assets/exchanges/coinbase.png b/public/exchanges/coinbase.png similarity index 100% rename from src/assets/exchanges/coinbase.png rename to public/exchanges/coinbase.png diff --git a/src/assets/exchanges/coinmama.png b/public/exchanges/coinmama.png similarity index 100% rename from src/assets/exchanges/coinmama.png rename to public/exchanges/coinmama.png diff --git a/src/assets/exchanges/coinspot.png b/public/exchanges/coinspot.png similarity index 100% rename from src/assets/exchanges/coinspot.png rename to public/exchanges/coinspot.png diff --git a/src/assets/exchanges/crypto.com.png b/public/exchanges/crypto.com.png similarity index 100% rename from src/assets/exchanges/crypto.com.png rename to public/exchanges/crypto.com.png diff --git a/src/assets/exchanges/dydx.png b/public/exchanges/dydx.png similarity index 100% rename from src/assets/exchanges/dydx.png rename to public/exchanges/dydx.png diff --git a/src/assets/exchanges/easycrypto.png b/public/exchanges/easycrypto.png similarity index 100% rename from src/assets/exchanges/easycrypto.png rename to public/exchanges/easycrypto.png diff --git a/src/assets/exchanges/gateio.png b/public/exchanges/gateio.png similarity index 100% rename from src/assets/exchanges/gateio.png rename to public/exchanges/gateio.png diff --git a/src/assets/exchanges/gemini.png b/public/exchanges/gemini.png similarity index 100% rename from src/assets/exchanges/gemini.png rename to public/exchanges/gemini.png diff --git a/src/assets/exchanges/huobiglobal.png b/public/exchanges/huobiglobal.png similarity index 100% rename from src/assets/exchanges/huobiglobal.png rename to public/exchanges/huobiglobal.png diff --git a/src/assets/exchanges/itezcom.png b/public/exchanges/itezcom.png similarity index 100% rename from src/assets/exchanges/itezcom.png rename to public/exchanges/itezcom.png diff --git a/src/assets/exchanges/korbit.png b/public/exchanges/korbit.png similarity index 100% rename from src/assets/exchanges/korbit.png rename to public/exchanges/korbit.png diff --git a/src/assets/exchanges/kraken.png b/public/exchanges/kraken.png similarity index 100% rename from src/assets/exchanges/kraken.png rename to public/exchanges/kraken.png diff --git a/src/assets/exchanges/kucoin.png b/public/exchanges/kucoin.png similarity index 100% rename from src/assets/exchanges/kucoin.png rename to public/exchanges/kucoin.png diff --git a/src/assets/exchanges/kyber.png b/public/exchanges/kyber.png similarity index 100% rename from src/assets/exchanges/kyber.png rename to public/exchanges/kyber.png diff --git a/src/assets/exchanges/loopring.png b/public/exchanges/loopring.png similarity index 100% rename from src/assets/exchanges/loopring.png rename to public/exchanges/loopring.png diff --git a/src/assets/exchanges/matcha.png b/public/exchanges/matcha.png similarity index 100% rename from src/assets/exchanges/matcha.png rename to public/exchanges/matcha.png diff --git a/src/assets/exchanges/moonpay.png b/public/exchanges/moonpay.png similarity index 100% rename from src/assets/exchanges/moonpay.png rename to public/exchanges/moonpay.png diff --git a/src/assets/exchanges/mtpelerin.png b/public/exchanges/mtpelerin.png similarity index 100% rename from src/assets/exchanges/mtpelerin.png rename to public/exchanges/mtpelerin.png diff --git a/src/assets/exchanges/okx.png b/public/exchanges/okx.png similarity index 100% rename from src/assets/exchanges/okx.png rename to public/exchanges/okx.png diff --git a/src/assets/exchanges/rain.png b/public/exchanges/rain.png similarity index 100% rename from src/assets/exchanges/rain.png rename to public/exchanges/rain.png diff --git a/src/assets/exchanges/shakepay.png b/public/exchanges/shakepay.png similarity index 100% rename from src/assets/exchanges/shakepay.png rename to public/exchanges/shakepay.png diff --git a/src/assets/exchanges/uniswap.png b/public/exchanges/uniswap.png similarity index 100% rename from src/assets/exchanges/uniswap.png rename to public/exchanges/uniswap.png diff --git a/src/assets/exchanges/wazirx.png b/public/exchanges/wazirx.png similarity index 100% rename from src/assets/exchanges/wazirx.png rename to public/exchanges/wazirx.png diff --git a/src/assets/favicon.png b/public/favicon.png similarity index 100% rename from src/assets/favicon.png rename to public/favicon.png diff --git a/src/assets/finance_transparent.png b/public/finance_transparent.png similarity index 100% rename from src/assets/finance_transparent.png rename to public/finance_transparent.png diff --git a/src/assets/future_transparent.png b/public/future_transparent.png similarity index 100% rename from src/assets/future_transparent.png rename to public/future_transparent.png diff --git a/src/assets/get-eth.png b/public/get-eth.png similarity index 100% rename from src/assets/get-eth.png rename to public/get-eth.png diff --git a/src/assets/hackathon_transparent.png b/public/hackathon_transparent.png similarity index 100% rename from src/assets/hackathon_transparent.png rename to public/hackathon_transparent.png diff --git a/src/assets/heroes/community-hero.png b/public/heroes/community-hero.png similarity index 100% rename from src/assets/heroes/community-hero.png rename to public/heroes/community-hero.png diff --git a/src/assets/heroes/developers-hub-hero.jpg b/public/heroes/developers-hub-hero.jpg similarity index 100% rename from src/assets/heroes/developers-hub-hero.jpg rename to public/heroes/developers-hub-hero.jpg diff --git a/src/assets/heroes/garden.jpg b/public/heroes/garden.jpg similarity index 100% rename from src/assets/heroes/garden.jpg rename to public/heroes/garden.jpg diff --git a/src/assets/heroes/guides-hub-hero.jpg b/public/heroes/guides-hub-hero.jpg similarity index 100% rename from src/assets/heroes/guides-hub-hero.jpg rename to public/heroes/guides-hub-hero.jpg diff --git a/src/assets/heroes/layer-2-hub-hero.jpg b/public/heroes/layer-2-hub-hero.jpg similarity index 100% rename from src/assets/heroes/layer-2-hub-hero.jpg rename to public/heroes/layer-2-hub-hero.jpg diff --git a/src/assets/heroes/learn-hub-hero.png b/public/heroes/learn-hub-hero.png similarity index 100% rename from src/assets/heroes/learn-hub-hero.png rename to public/heroes/learn-hub-hero.png diff --git a/src/assets/heroes/quizzes-hub-hero.png b/public/heroes/quizzes-hub-hero.png similarity index 100% rename from src/assets/heroes/quizzes-hub-hero.png rename to public/heroes/quizzes-hub-hero.png diff --git a/src/assets/heroes/roadmap-hub-hero.jpg b/public/heroes/roadmap-hub-hero.jpg similarity index 100% rename from src/assets/heroes/roadmap-hub-hero.jpg rename to public/heroes/roadmap-hub-hero.jpg diff --git a/src/assets/home/cats.png b/public/home/cats.png similarity index 100% rename from src/assets/home/cats.png rename to public/home/cats.png diff --git a/src/assets/home/developers.png b/public/home/developers.png similarity index 100% rename from src/assets/home/developers.png rename to public/home/developers.png diff --git a/src/assets/home/eth-tokens.png b/public/home/eth-tokens.png similarity index 100% rename from src/assets/home/eth-tokens.png rename to public/home/eth-tokens.png diff --git a/src/assets/home/ethereum-hero-light.gif b/public/home/ethereum-hero-light.gif similarity index 100% rename from src/assets/home/ethereum-hero-light.gif rename to public/home/ethereum-hero-light.gif diff --git a/src/assets/home/hero-panda.png b/public/home/hero-panda.png similarity index 100% rename from src/assets/home/hero-panda.png rename to public/home/hero-panda.png diff --git a/src/assets/home/hero.png b/public/home/hero.png similarity index 100% rename from src/assets/home/hero.png rename to public/home/hero.png diff --git a/src/assets/home/merge-panda.png b/public/home/merge-panda.png similarity index 100% rename from src/assets/home/merge-panda.png rename to public/home/merge-panda.png diff --git a/static/static/merge-panda.svg b/public/home/merge-panda.svg similarity index 100% rename from static/static/merge-panda.svg rename to public/home/merge-panda.svg diff --git a/src/assets/impact_transparent.png b/public/impact_transparent.png similarity index 100% rename from src/assets/impact_transparent.png rename to public/impact_transparent.png diff --git a/src/assets/infrastructure_transparent.png b/public/infrastructure_transparent.png similarity index 100% rename from src/assets/infrastructure_transparent.png rename to public/infrastructure_transparent.png diff --git a/src/assets/layer-2/arbitrum.png b/public/layer-2/arbitrum.png similarity index 100% rename from src/assets/layer-2/arbitrum.png rename to public/layer-2/arbitrum.png diff --git a/src/assets/layer-2/aztec.png b/public/layer-2/aztec.png similarity index 100% rename from src/assets/layer-2/aztec.png rename to public/layer-2/aztec.png diff --git a/src/assets/layer-2/boba.png b/public/layer-2/boba.png similarity index 100% rename from src/assets/layer-2/boba.png rename to public/layer-2/boba.png diff --git a/src/assets/layer-2/chainlist.png b/public/layer-2/chainlist.png similarity index 100% rename from src/assets/layer-2/chainlist.png rename to public/layer-2/chainlist.png diff --git a/src/assets/layer-2/debank.png b/public/layer-2/debank.png similarity index 100% rename from src/assets/layer-2/debank.png rename to public/layer-2/debank.png diff --git a/src/assets/layer-2/dydx.png b/public/layer-2/dydx.png similarity index 100% rename from src/assets/layer-2/dydx.png rename to public/layer-2/dydx.png diff --git a/src/assets/layer-2/hero.png b/public/layer-2/hero.png similarity index 100% rename from src/assets/layer-2/hero.png rename to public/layer-2/hero.png diff --git a/src/assets/layer-2/l2beat.jpg b/public/layer-2/l2beat.jpg similarity index 100% rename from src/assets/layer-2/l2beat.jpg rename to public/layer-2/l2beat.jpg diff --git a/src/assets/layer-2/loopring.png b/public/layer-2/loopring.png similarity index 100% rename from src/assets/layer-2/loopring.png rename to public/layer-2/loopring.png diff --git a/src/assets/layer-2/metis-dark.png b/public/layer-2/metis-dark.png similarity index 100% rename from src/assets/layer-2/metis-dark.png rename to public/layer-2/metis-dark.png diff --git a/src/assets/layer-2/metis-light.png b/public/layer-2/metis-light.png similarity index 100% rename from src/assets/layer-2/metis-light.png rename to public/layer-2/metis-light.png diff --git a/src/assets/layer-2/optimism.png b/public/layer-2/optimism.png similarity index 100% rename from src/assets/layer-2/optimism.png rename to public/layer-2/optimism.png diff --git a/src/assets/layer-2/optimistic_rollup.png b/public/layer-2/optimistic_rollup.png similarity index 100% rename from src/assets/layer-2/optimistic_rollup.png rename to public/layer-2/optimistic_rollup.png diff --git a/src/assets/layer-2/rollup-2.png b/public/layer-2/rollup-2.png similarity index 100% rename from src/assets/layer-2/rollup-2.png rename to public/layer-2/rollup-2.png diff --git a/src/assets/layer-2/starknet.png b/public/layer-2/starknet.png similarity index 100% rename from src/assets/layer-2/starknet.png rename to public/layer-2/starknet.png diff --git a/src/assets/layer-2/zapper.png b/public/layer-2/zapper.png similarity index 100% rename from src/assets/layer-2/zapper.png rename to public/layer-2/zapper.png diff --git a/src/assets/layer-2/zerion.png b/public/layer-2/zerion.png similarity index 100% rename from src/assets/layer-2/zerion.png rename to public/layer-2/zerion.png diff --git a/src/assets/layer-2/zk_rollup.png b/public/layer-2/zk_rollup.png similarity index 100% rename from src/assets/layer-2/zk_rollup.png rename to public/layer-2/zk_rollup.png diff --git a/src/assets/layer-2/zkspace.png b/public/layer-2/zkspace.png similarity index 100% rename from src/assets/layer-2/zkspace.png rename to public/layer-2/zkspace.png diff --git a/src/assets/layer-2/zksync.png b/public/layer-2/zksync.png similarity index 100% rename from src/assets/layer-2/zksync.png rename to public/layer-2/zksync.png diff --git a/src/assets/magicians.png b/public/magicians.png similarity index 100% rename from src/assets/magicians.png rename to public/magicians.png diff --git a/src/assets/mainnet.png b/public/mainnet.png similarity index 100% rename from src/assets/mainnet.png rename to public/mainnet.png diff --git a/public/manifest.json b/public/manifest.json new file mode 100644 index 00000000000..3c81fdc3d60 --- /dev/null +++ b/public/manifest.json @@ -0,0 +1,56 @@ +{ + "short_name": "ethereum.org", + "name": "ethereum.org", + "icons": [ + { + "src": "/assets/manifest-app-icon.svg", + "type": "image/svg+xml", + "sizes": "512x512" + }, + { + "src": "/assets/manifest-app-icon-192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "/assets/manifest-app-icon-512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "id": "/", + "start_url": "/en/", + "background_color": "#222", + "display": "standalone", + "scope": "/", + "theme_color": "#fff", + "shortcuts": [ + { + "name": "ethereum.org Developer Hub", + "short_name": "Developer Hub", + "description": "Documentation, tutorials, and tools for developers building on Ethereum.", + "url": "/developers", + "icons": [ + { + "src": "/assets/manifest-app-icon-192.png", + "sizes": "192x192" + } + ] + } + ], + "description": "Ethereum is a global, decentralized platform for money and new kinds of applications. On Ethereum, you can write code that controls money, and build applications accessible anywhere in the world.", + "screenshots": [ + { + "src": "/assets/manifest-homepage-screenshot.png", + "type": "image/png", + "sizes": "2048x1734", + "form_factor": "wide" + }, + { + "src": "/assets/manifest-homepage-screenshot-mobile.png", + "type": "image/png", + "sizes": "1290x2195", + "form_factor": "narrow" + } + ] +} \ No newline at end of file diff --git a/src/assets/poap-logo.svg b/public/poap-logo.svg similarity index 100% rename from src/assets/poap-logo.svg rename to public/poap-logo.svg diff --git a/src/assets/projects/consensys.png b/public/projects/consensys.png similarity index 100% rename from src/assets/projects/consensys.png rename to public/projects/consensys.png diff --git a/src/assets/projects/etherscan-logo-circle.png b/public/projects/etherscan-logo-circle.png similarity index 100% rename from src/assets/projects/etherscan-logo-circle.png rename to public/projects/etherscan-logo-circle.png diff --git a/src/assets/projects/etherscan-logo-light-circle.png b/public/projects/etherscan-logo-light-circle.png similarity index 100% rename from src/assets/projects/etherscan-logo-light-circle.png rename to public/projects/etherscan-logo-light-circle.png diff --git a/src/assets/projects/ethhub.png b/public/projects/ethhub.png similarity index 100% rename from src/assets/projects/ethhub.png rename to public/projects/ethhub.png diff --git a/src/assets/qr-code-ethereum-org-dark.png b/public/qr-code-ethereum-org-dark.png similarity index 100% rename from src/assets/qr-code-ethereum-org-dark.png rename to public/qr-code-ethereum-org-dark.png diff --git a/src/assets/qr-code-ethereum-org-light.png b/public/qr-code-ethereum-org-light.png similarity index 100% rename from src/assets/qr-code-ethereum-org-light.png rename to public/qr-code-ethereum-org-light.png diff --git a/src/assets/roadmap/roadmap-future.png b/public/roadmap/roadmap-future.png similarity index 100% rename from src/assets/roadmap/roadmap-future.png rename to public/roadmap/roadmap-future.png diff --git a/src/assets/roadmap/roadmap-main.png b/public/roadmap/roadmap-main.png similarity index 100% rename from src/assets/roadmap/roadmap-main.png rename to public/roadmap/roadmap-main.png diff --git a/src/assets/roadmap/roadmap-security.png b/public/roadmap/roadmap-security.png similarity index 100% rename from src/assets/roadmap/roadmap-security.png rename to public/roadmap/roadmap-security.png diff --git a/src/assets/roadmap/roadmap-transactions.png b/public/roadmap/roadmap-transactions.png similarity index 100% rename from src/assets/roadmap/roadmap-transactions.png rename to public/roadmap/roadmap-transactions.png diff --git a/src/assets/roadmap/roadmap-ux.png b/public/roadmap/roadmap-ux.png similarity index 100% rename from src/assets/roadmap/roadmap-ux.png rename to public/roadmap/roadmap-ux.png diff --git a/src/assets/run-a-node/dappnode.svg b/public/run-a-node/dappnode.svg similarity index 100% rename from src/assets/run-a-node/dappnode.svg rename to public/run-a-node/dappnode.svg diff --git a/src/assets/run-a-node/dapptap.svg b/public/run-a-node/dapptap.svg similarity index 100% rename from src/assets/run-a-node/dapptap.svg rename to public/run-a-node/dapptap.svg diff --git a/src/assets/run-a-node/ethereum-inside.png b/public/run-a-node/ethereum-inside.png similarity index 100% rename from src/assets/run-a-node/ethereum-inside.png rename to public/run-a-node/ethereum-inside.png diff --git a/src/assets/run-a-node/terminal.svg b/public/run-a-node/terminal.svg similarity index 100% rename from src/assets/run-a-node/terminal.svg rename to public/run-a-node/terminal.svg diff --git a/src/assets/stablecoins/aave.png b/public/stablecoins/aave.png similarity index 100% rename from src/assets/stablecoins/aave.png rename to public/stablecoins/aave.png diff --git a/src/assets/stablecoins/compound.png b/public/stablecoins/compound.png similarity index 100% rename from src/assets/stablecoins/compound.png rename to public/stablecoins/compound.png diff --git a/src/assets/stablecoins/dai-large.png b/public/stablecoins/dai-large.png similarity index 100% rename from src/assets/stablecoins/dai-large.png rename to public/stablecoins/dai-large.png diff --git a/src/assets/stablecoins/dai.png b/public/stablecoins/dai.png similarity index 100% rename from src/assets/stablecoins/dai.png rename to public/stablecoins/dai.png diff --git a/src/assets/stablecoins/hero.png b/public/stablecoins/hero.png similarity index 100% rename from src/assets/stablecoins/hero.png rename to public/stablecoins/hero.png diff --git a/src/assets/stablecoins/maker.png b/public/stablecoins/maker.png similarity index 100% rename from src/assets/stablecoins/maker.png rename to public/stablecoins/maker.png diff --git a/src/assets/stablecoins/tether.png b/public/stablecoins/tether.png similarity index 100% rename from src/assets/stablecoins/tether.png rename to public/stablecoins/tether.png diff --git a/src/assets/stablecoins/tools/stablecoinswtf.png b/public/stablecoins/tools/stablecoinswtf.png similarity index 100% rename from src/assets/stablecoins/tools/stablecoinswtf.png rename to public/stablecoins/tools/stablecoinswtf.png diff --git a/src/assets/stablecoins/usdc-large.png b/public/stablecoins/usdc-large.png similarity index 100% rename from src/assets/stablecoins/usdc-large.png rename to public/stablecoins/usdc-large.png diff --git a/src/assets/stablecoins/usdc.png b/public/stablecoins/usdc.png similarity index 100% rename from src/assets/stablecoins/usdc.png rename to public/stablecoins/usdc.png diff --git a/src/assets/staking/dappnode-glyph.svg b/public/staking/dappnode-glyph.svg similarity index 100% rename from src/assets/staking/dappnode-glyph.svg rename to public/staking/dappnode-glyph.svg diff --git a/src/assets/staking/ef-blog-logo.png b/public/staking/ef-blog-logo.png similarity index 100% rename from src/assets/staking/ef-blog-logo.png rename to public/staking/ef-blog-logo.png diff --git a/src/assets/staking/leslie-pool.png b/public/staking/leslie-pool.png similarity index 100% rename from src/assets/staking/leslie-pool.png rename to public/staking/leslie-pool.png diff --git a/src/assets/staking/leslie-saas.png b/public/staking/leslie-saas.png similarity index 100% rename from src/assets/staking/leslie-saas.png rename to public/staking/leslie-saas.png diff --git a/src/assets/staking/leslie-solo.png b/public/staking/leslie-solo.png similarity index 100% rename from src/assets/staking/leslie-solo.png rename to public/staking/leslie-solo.png diff --git a/src/assets/staking/leslie-withdrawal.png b/public/staking/leslie-withdrawal.png similarity index 100% rename from src/assets/staking/leslie-withdrawal.png rename to public/staking/leslie-withdrawal.png diff --git a/src/assets/staking/stereum-logo.png b/public/staking/stereum-logo.png similarity index 100% rename from src/assets/staking/stereum-logo.png rename to public/staking/stereum-logo.png diff --git a/src/assets/translation-program/pageviews-dark.png b/public/translation-program/pageviews-dark.png similarity index 100% rename from src/assets/translation-program/pageviews-dark.png rename to public/translation-program/pageviews-dark.png diff --git a/src/assets/translation-program/pageviews-light.png b/public/translation-program/pageviews-light.png similarity index 100% rename from src/assets/translation-program/pageviews-light.png rename to public/translation-program/pageviews-light.png diff --git a/src/assets/upgrades/avatar_example.png b/public/upgrades/avatar_example.png similarity index 100% rename from src/assets/upgrades/avatar_example.png rename to public/upgrades/avatar_example.png diff --git a/src/assets/upgrades/beaconchainemoji.png b/public/upgrades/beaconchainemoji.png similarity index 100% rename from src/assets/upgrades/beaconchainemoji.png rename to public/upgrades/beaconchainemoji.png diff --git a/src/assets/upgrades/besu-card.png b/public/upgrades/besu-card.png similarity index 100% rename from src/assets/upgrades/besu-card.png rename to public/upgrades/besu-card.png diff --git a/src/assets/upgrades/besu.png b/public/upgrades/besu.png similarity index 100% rename from src/assets/upgrades/besu.png rename to public/upgrades/besu.png diff --git a/src/assets/upgrades/core.png b/public/upgrades/core.png similarity index 100% rename from src/assets/upgrades/core.png rename to public/upgrades/core.png diff --git a/src/assets/upgrades/cortex.png b/public/upgrades/cortex.png similarity index 100% rename from src/assets/upgrades/cortex.png rename to public/upgrades/cortex.png diff --git a/src/assets/upgrades/dai.png b/public/upgrades/dai.png similarity index 100% rename from src/assets/upgrades/dai.png rename to public/upgrades/dai.png diff --git a/src/assets/upgrades/erigon-card.png b/public/upgrades/erigon-card.png similarity index 100% rename from src/assets/upgrades/erigon-card.png rename to public/upgrades/erigon-card.png diff --git a/src/assets/upgrades/erigon.png b/public/upgrades/erigon.png similarity index 100% rename from src/assets/upgrades/erigon.png rename to public/upgrades/erigon.png diff --git a/src/assets/upgrades/eth-black.png b/public/upgrades/eth-black.png similarity index 100% rename from src/assets/upgrades/eth-black.png rename to public/upgrades/eth-black.png diff --git a/src/assets/upgrades/eth-orange.png b/public/upgrades/eth-orange.png similarity index 100% rename from src/assets/upgrades/eth-orange.png rename to public/upgrades/eth-orange.png diff --git a/src/assets/upgrades/etherscan.png b/public/upgrades/etherscan.png similarity index 100% rename from src/assets/upgrades/etherscan.png rename to public/upgrades/etherscan.png diff --git a/src/assets/upgrades/geth.png b/public/upgrades/geth.png similarity index 100% rename from src/assets/upgrades/geth.png rename to public/upgrades/geth.png diff --git a/src/assets/upgrades/lighthouse-dark.png b/public/upgrades/lighthouse-dark.png similarity index 100% rename from src/assets/upgrades/lighthouse-dark.png rename to public/upgrades/lighthouse-dark.png diff --git a/src/assets/upgrades/lighthouse-light.png b/public/upgrades/lighthouse-light.png similarity index 100% rename from src/assets/upgrades/lighthouse-light.png rename to public/upgrades/lighthouse-light.png diff --git a/src/assets/upgrades/lodestar.png b/public/upgrades/lodestar.png similarity index 100% rename from src/assets/upgrades/lodestar.png rename to public/upgrades/lodestar.png diff --git a/src/assets/upgrades/merge.png b/public/upgrades/merge.png similarity index 100% rename from src/assets/upgrades/merge.png rename to public/upgrades/merge.png diff --git a/src/assets/upgrades/nethermind-card.png b/public/upgrades/nethermind-card.png similarity index 100% rename from src/assets/upgrades/nethermind-card.png rename to public/upgrades/nethermind-card.png diff --git a/src/assets/upgrades/nethermind.png b/public/upgrades/nethermind.png similarity index 100% rename from src/assets/upgrades/nethermind.png rename to public/upgrades/nethermind.png diff --git a/src/assets/upgrades/newrings.png b/public/upgrades/newrings.png similarity index 100% rename from src/assets/upgrades/newrings.png rename to public/upgrades/newrings.png diff --git a/src/assets/upgrades/nimbus-cloud.png b/public/upgrades/nimbus-cloud.png similarity index 100% rename from src/assets/upgrades/nimbus-cloud.png rename to public/upgrades/nimbus-cloud.png diff --git a/src/assets/upgrades/nimbus.png b/public/upgrades/nimbus.png similarity index 100% rename from src/assets/upgrades/nimbus.png rename to public/upgrades/nimbus.png diff --git a/src/assets/upgrades/oldship.png b/public/upgrades/oldship.png similarity index 100% rename from src/assets/upgrades/oldship.png rename to public/upgrades/oldship.png diff --git a/src/assets/upgrades/prysm.png b/public/upgrades/prysm.png similarity index 100% rename from src/assets/upgrades/prysm.png rename to public/upgrades/prysm.png diff --git a/src/assets/upgrades/teku-dark.png b/public/upgrades/teku-dark.png similarity index 100% rename from src/assets/upgrades/teku-dark.png rename to public/upgrades/teku-dark.png diff --git a/src/assets/upgrades/teku-light.png b/public/upgrades/teku-light.png similarity index 100% rename from src/assets/upgrades/teku-light.png rename to public/upgrades/teku-light.png diff --git a/src/assets/upgrades/teku.png b/public/upgrades/teku.png similarity index 100% rename from src/assets/upgrades/teku.png rename to public/upgrades/teku.png diff --git a/src/assets/upgrades/upgrade_doge.png b/public/upgrades/upgrade_doge.png similarity index 100% rename from src/assets/upgrades/upgrade_doge.png rename to public/upgrades/upgrade_doge.png diff --git a/src/assets/upgrades/upgrade_eth.png b/public/upgrades/upgrade_eth.png similarity index 100% rename from src/assets/upgrades/upgrade_eth.png rename to public/upgrades/upgrade_eth.png diff --git a/src/assets/upgrades/upgrade_rhino.png b/public/upgrades/upgrade_rhino.png similarity index 100% rename from src/assets/upgrades/upgrade_rhino.png rename to public/upgrades/upgrade_rhino.png diff --git a/src/assets/upgrades/upgrade_robot.png b/public/upgrades/upgrade_robot.png similarity index 100% rename from src/assets/upgrades/upgrade_robot.png rename to public/upgrades/upgrade_robot.png diff --git a/src/assets/use-cases/dao-2.png b/public/use-cases/dao-2.png similarity index 100% rename from src/assets/use-cases/dao-2.png rename to public/use-cases/dao-2.png diff --git a/src/assets/use-cases/dao.jpg b/public/use-cases/dao.jpg similarity index 100% rename from src/assets/use-cases/dao.jpg rename to public/use-cases/dao.jpg diff --git a/src/assets/use-cases/defi-cropped.png b/public/use-cases/defi-cropped.png similarity index 100% rename from src/assets/use-cases/defi-cropped.png rename to public/use-cases/defi-cropped.png diff --git a/src/assets/use-cases/defi.png b/public/use-cases/defi.png similarity index 100% rename from src/assets/use-cases/defi.png rename to public/use-cases/defi.png diff --git a/src/assets/wallet-cropped.png b/public/wallet-cropped.png similarity index 100% rename from src/assets/wallet-cropped.png rename to public/wallet-cropped.png diff --git a/src/assets/wallet.png b/public/wallet.png similarity index 100% rename from src/assets/wallet.png rename to public/wallet.png diff --git a/src/assets/wallets/1inch.png b/public/wallets/1inch.png similarity index 100% rename from src/assets/wallets/1inch.png rename to public/wallets/1inch.png diff --git a/src/assets/wallets/airgap.png b/public/wallets/airgap.png similarity index 100% rename from src/assets/wallets/airgap.png rename to public/wallets/airgap.png diff --git a/src/assets/wallets/aktionariat.png b/public/wallets/aktionariat.png similarity index 100% rename from src/assets/wallets/aktionariat.png rename to public/wallets/aktionariat.png diff --git a/src/assets/wallets/alice.png b/public/wallets/alice.png similarity index 100% rename from src/assets/wallets/alice.png rename to public/wallets/alice.png diff --git a/src/assets/wallets/alpha.png b/public/wallets/alpha.png similarity index 100% rename from src/assets/wallets/alpha.png rename to public/wallets/alpha.png diff --git a/src/assets/wallets/ambire.png b/public/wallets/ambire.png similarity index 100% rename from src/assets/wallets/ambire.png rename to public/wallets/ambire.png diff --git a/src/assets/wallets/ambo.png b/public/wallets/ambo.png similarity index 100% rename from src/assets/wallets/ambo.png rename to public/wallets/ambo.png diff --git a/src/assets/wallets/apex.png b/public/wallets/apex.png similarity index 100% rename from src/assets/wallets/apex.png rename to public/wallets/apex.png diff --git a/src/assets/wallets/argent.png b/public/wallets/argent.png similarity index 100% rename from src/assets/wallets/argent.png rename to public/wallets/argent.png diff --git a/src/assets/wallets/bitcoindotcom.png b/public/wallets/bitcoindotcom.png similarity index 100% rename from src/assets/wallets/bitcoindotcom.png rename to public/wallets/bitcoindotcom.png diff --git a/src/assets/wallets/bitkeep.png b/public/wallets/bitkeep.png similarity index 100% rename from src/assets/wallets/bitkeep.png rename to public/wallets/bitkeep.png diff --git a/src/assets/wallets/blockwallet.png b/public/wallets/blockwallet.png similarity index 100% rename from src/assets/wallets/blockwallet.png rename to public/wallets/blockwallet.png diff --git a/src/assets/wallets/brave.png b/public/wallets/brave.png similarity index 100% rename from src/assets/wallets/brave.png rename to public/wallets/brave.png diff --git a/src/assets/wallets/bridge.png b/public/wallets/bridge.png similarity index 100% rename from src/assets/wallets/bridge.png rename to public/wallets/bridge.png diff --git a/src/assets/wallets/browser.svg b/public/wallets/browser.svg similarity index 100% rename from src/assets/wallets/browser.svg rename to public/wallets/browser.svg diff --git a/src/assets/wallets/coin98.png b/public/wallets/coin98.png similarity index 100% rename from src/assets/wallets/coin98.png rename to public/wallets/coin98.png diff --git a/src/assets/wallets/coinbase.png b/public/wallets/coinbase.png similarity index 100% rename from src/assets/wallets/coinbase.png rename to public/wallets/coinbase.png diff --git a/src/assets/wallets/coinomi.png b/public/wallets/coinomi.png similarity index 100% rename from src/assets/wallets/coinomi.png rename to public/wallets/coinomi.png diff --git a/src/assets/wallets/coinwallet.png b/public/wallets/coinwallet.png similarity index 100% rename from src/assets/wallets/coinwallet.png rename to public/wallets/coinwallet.png diff --git a/src/assets/wallets/dcent.png b/public/wallets/dcent.png similarity index 100% rename from src/assets/wallets/dcent.png rename to public/wallets/dcent.png diff --git a/src/assets/wallets/enjin.png b/public/wallets/enjin.png similarity index 100% rename from src/assets/wallets/enjin.png rename to public/wallets/enjin.png diff --git a/src/assets/wallets/enkrypt.png b/public/wallets/enkrypt.png similarity index 100% rename from src/assets/wallets/enkrypt.png rename to public/wallets/enkrypt.png diff --git a/src/assets/wallets/exodus.png b/public/wallets/exodus.png similarity index 100% rename from src/assets/wallets/exodus.png rename to public/wallets/exodus.png diff --git a/src/assets/wallets/find-wallet-hero.png b/public/wallets/find-wallet-hero.png similarity index 100% rename from src/assets/wallets/find-wallet-hero.png rename to public/wallets/find-wallet-hero.png diff --git a/src/assets/wallets/find-wallet.png b/public/wallets/find-wallet.png similarity index 100% rename from src/assets/wallets/find-wallet.png rename to public/wallets/find-wallet.png diff --git a/src/assets/wallets/fortmatic.png b/public/wallets/fortmatic.png similarity index 100% rename from src/assets/wallets/fortmatic.png rename to public/wallets/fortmatic.png diff --git a/src/assets/wallets/foxwallet.png b/public/wallets/foxwallet.png similarity index 100% rename from src/assets/wallets/foxwallet.png rename to public/wallets/foxwallet.png diff --git a/src/assets/wallets/frame.png b/public/wallets/frame.png similarity index 100% rename from src/assets/wallets/frame.png rename to public/wallets/frame.png diff --git a/src/assets/wallets/gnosis.png b/public/wallets/gnosis.png similarity index 100% rename from src/assets/wallets/gnosis.png rename to public/wallets/gnosis.png diff --git a/src/assets/wallets/gridplus.png b/public/wallets/gridplus.png similarity index 100% rename from src/assets/wallets/gridplus.png rename to public/wallets/gridplus.png diff --git a/src/assets/wallets/guarda.png b/public/wallets/guarda.png similarity index 100% rename from src/assets/wallets/guarda.png rename to public/wallets/guarda.png diff --git a/src/assets/wallets/hyperpay.png b/public/wallets/hyperpay.png similarity index 100% rename from src/assets/wallets/hyperpay.png rename to public/wallets/hyperpay.png diff --git a/src/assets/wallets/hyperwallet.png b/public/wallets/hyperwallet.png similarity index 100% rename from src/assets/wallets/hyperwallet.png rename to public/wallets/hyperwallet.png diff --git a/src/assets/wallets/imtoken.png b/public/wallets/imtoken.png similarity index 100% rename from src/assets/wallets/imtoken.png rename to public/wallets/imtoken.png diff --git a/src/assets/wallets/infinity_wallet.png b/public/wallets/infinity_wallet.png similarity index 100% rename from src/assets/wallets/infinity_wallet.png rename to public/wallets/infinity_wallet.png diff --git a/src/assets/wallets/keystone.png b/public/wallets/keystone.png similarity index 100% rename from src/assets/wallets/keystone.png rename to public/wallets/keystone.png diff --git a/src/assets/wallets/ledger.png b/public/wallets/ledger.png similarity index 100% rename from src/assets/wallets/ledger.png rename to public/wallets/ledger.png diff --git a/src/assets/wallets/loopring.png b/public/wallets/loopring.png similarity index 100% rename from src/assets/wallets/loopring.png rename to public/wallets/loopring.png diff --git a/src/assets/wallets/mathwallet.png b/public/wallets/mathwallet.png similarity index 100% rename from src/assets/wallets/mathwallet.png rename to public/wallets/mathwallet.png diff --git a/src/assets/wallets/metamask.png b/public/wallets/metamask.png similarity index 100% rename from src/assets/wallets/metamask.png rename to public/wallets/metamask.png diff --git a/src/assets/wallets/mew.png b/public/wallets/mew.png similarity index 100% rename from src/assets/wallets/mew.png rename to public/wallets/mew.png diff --git a/src/assets/wallets/monolith.png b/public/wallets/monolith.png similarity index 100% rename from src/assets/wallets/monolith.png rename to public/wallets/monolith.png diff --git a/src/assets/wallets/multis.png b/public/wallets/multis.png similarity index 100% rename from src/assets/wallets/multis.png rename to public/wallets/multis.png diff --git a/src/assets/wallets/mycrypto.png b/public/wallets/mycrypto.png similarity index 100% rename from src/assets/wallets/mycrypto.png rename to public/wallets/mycrypto.png diff --git a/src/assets/wallets/myetherwallet.png b/public/wallets/myetherwallet.png similarity index 100% rename from src/assets/wallets/myetherwallet.png rename to public/wallets/myetherwallet.png diff --git a/src/assets/wallets/numio.png b/public/wallets/numio.png similarity index 100% rename from src/assets/wallets/numio.png rename to public/wallets/numio.png diff --git a/src/assets/wallets/okx.jpeg b/public/wallets/okx.jpeg similarity index 100% rename from src/assets/wallets/okx.jpeg rename to public/wallets/okx.jpeg diff --git a/src/assets/wallets/onekey.png b/public/wallets/onekey.png similarity index 100% rename from src/assets/wallets/onekey.png rename to public/wallets/onekey.png diff --git a/src/assets/wallets/opera.png b/public/wallets/opera.png similarity index 100% rename from src/assets/wallets/opera.png rename to public/wallets/opera.png diff --git a/src/assets/wallets/phantom.png b/public/wallets/phantom.png similarity index 100% rename from src/assets/wallets/phantom.png rename to public/wallets/phantom.png diff --git a/src/assets/wallets/pillar.png b/public/wallets/pillar.png similarity index 100% rename from src/assets/wallets/pillar.png rename to public/wallets/pillar.png diff --git a/src/assets/wallets/portis.png b/public/wallets/portis.png similarity index 100% rename from src/assets/wallets/portis.png rename to public/wallets/portis.png diff --git a/src/assets/wallets/rabbywallet.png b/public/wallets/rabbywallet.png similarity index 100% rename from src/assets/wallets/rabbywallet.png rename to public/wallets/rabbywallet.png diff --git a/src/assets/wallets/rainbow.png b/public/wallets/rainbow.png similarity index 100% rename from src/assets/wallets/rainbow.png rename to public/wallets/rainbow.png diff --git a/src/assets/wallets/safe.png b/public/wallets/safe.png similarity index 100% rename from src/assets/wallets/safe.png rename to public/wallets/safe.png diff --git a/src/assets/wallets/safepal.png b/public/wallets/safepal.png similarity index 100% rename from src/assets/wallets/safepal.png rename to public/wallets/safepal.png diff --git a/src/assets/wallets/samsung.png b/public/wallets/samsung.png similarity index 100% rename from src/assets/wallets/samsung.png rename to public/wallets/samsung.png diff --git a/src/assets/wallets/sequence.png b/public/wallets/sequence.png similarity index 100% rename from src/assets/wallets/sequence.png rename to public/wallets/sequence.png diff --git a/src/assets/wallets/shapeshift.png b/public/wallets/shapeshift.png similarity index 100% rename from src/assets/wallets/shapeshift.png rename to public/wallets/shapeshift.png diff --git a/src/assets/wallets/squarelink.png b/public/wallets/squarelink.png similarity index 100% rename from src/assets/wallets/squarelink.png rename to public/wallets/squarelink.png diff --git a/src/assets/wallets/status.png b/public/wallets/status.png similarity index 100% rename from src/assets/wallets/status.png rename to public/wallets/status.png diff --git a/src/assets/wallets/taho.png b/public/wallets/taho.png similarity index 100% rename from src/assets/wallets/taho.png rename to public/wallets/taho.png diff --git a/src/assets/wallets/tokenpocket.png b/public/wallets/tokenpocket.png similarity index 100% rename from src/assets/wallets/tokenpocket.png rename to public/wallets/tokenpocket.png diff --git a/src/assets/wallets/torus.png b/public/wallets/torus.png similarity index 100% rename from src/assets/wallets/torus.png rename to public/wallets/torus.png diff --git a/src/assets/wallets/trezor.png b/public/wallets/trezor.png similarity index 100% rename from src/assets/wallets/trezor.png rename to public/wallets/trezor.png diff --git a/src/assets/wallets/trust.png b/public/wallets/trust.png similarity index 100% rename from src/assets/wallets/trust.png rename to public/wallets/trust.png diff --git a/src/assets/wallets/unstoppable.png b/public/wallets/unstoppable.png similarity index 100% rename from src/assets/wallets/unstoppable.png rename to public/wallets/unstoppable.png diff --git a/src/assets/wallets/wallet-hero.png b/public/wallets/wallet-hero.png similarity index 100% rename from src/assets/wallets/wallet-hero.png rename to public/wallets/wallet-hero.png diff --git a/src/assets/wallets/walleth.png b/public/wallets/walleth.png similarity index 100% rename from src/assets/wallets/walleth.png rename to public/wallets/walleth.png diff --git a/src/assets/wallets/web3auth.png b/public/wallets/web3auth.png similarity index 100% rename from src/assets/wallets/web3auth.png rename to public/wallets/web3auth.png diff --git a/src/assets/wallets/XDEFI.png b/public/wallets/xdefi.png similarity index 100% rename from src/assets/wallets/XDEFI.png rename to public/wallets/xdefi.png diff --git a/src/assets/wallets/zengo.png b/public/wallets/zengo.png similarity index 100% rename from src/assets/wallets/zengo.png rename to public/wallets/zengo.png diff --git a/src/assets/wallets/zerion.png b/public/wallets/zerion.png similarity index 100% rename from src/assets/wallets/zerion.png rename to public/wallets/zerion.png diff --git a/src/assets/what-is-eth/eth.png b/public/what-is-eth/eth.png similarity index 100% rename from src/assets/what-is-eth/eth.png rename to public/what-is-eth/eth.png diff --git a/src/assets/what-is-ethereum.png b/public/what-is-ethereum.png similarity index 100% rename from src/assets/what-is-ethereum.png rename to public/what-is-ethereum.png diff --git a/redirects.json b/redirects.json deleted file mode 100644 index a8b415eb835..00000000000 --- a/redirects.json +++ /dev/null @@ -1,350 +0,0 @@ -[ - { - "fromPath": "/discord", - "toPath": "https://discord.gg/ethereum-org" - }, - { - "fromPath": "/*/discord", - "toPath": "https://discord.gg/ethereum-org" - }, - { - "fromPath": "/pdfs/*", - "toPath": "/en/" - }, - { - "fromPath": "/brand", - "toPath": "/en/assets/" - }, - { - "fromPath": "/ether", - "toPath": "/en/eth/" - }, - { - "fromPath": "/token", - "toPath": "/en/developers/" - }, - { - "fromPath": "/crowdsale", - "toPath": "/en/developers/" - }, - { - "fromPath": "/cli", - "toPath": "/en/developers/" - }, - { - "fromPath": "/greeter", - "toPath": "/en/developers/" - }, - { - "fromPath": "/search", - "toPath": "/en/" - }, - { - "fromPath": "/use", - "toPath": "/en/dapps/" - }, - { - "fromPath": "/beginners", - "toPath": "/en/what-is-ethereum/" - }, - { - "fromPath": "/eth2/", - "toPath": "/en/roadmap/" - }, - { - "fromPath": "/build/", - "toPath": "/en/developers/learning-tools/" - }, - { - "fromPath": "/java/", - "toPath": "/en/developers/docs/programming-languages/java/" - }, - { - "fromPath": "/python/", - "toPath": "/en/developers/docs/programming-languages/python/" - }, - { - "fromPath": "/javascript/", - "toPath": "/en/developers/docs/programming-languages/javascript/" - }, - { - "fromPath": "/golang/", - "toPath": "/en/developers/docs/programming-languages/golang/" - }, - { - "fromPath": "/rust/", - "toPath": "/en/developers/docs/programming-languages/rust/" - }, - { - "fromPath": "/dot-net/", - "toPath": "/en/developers/docs/programming-languages/dot-net/" - }, - { - "fromPath": "/delphi/", - "toPath": "/en/developers/docs/programming-languages/delphi/" - }, - { - "fromPath": "/dart/", - "toPath": "/en/developers/docs/programming-languages/dart/" - }, - { - "fromPath": "/nfts/", - "toPath": "/en/nft/" - }, - { - "fromPath": "/daos/", - "toPath": "/en/dao/" - }, - { - "fromPath": "/layer2/", - "toPath": "/en/layer-2/" - }, - { - "fromPath": "/*/layer2/", - "toPath": "/:splat/layer-2/" - }, - { - "fromPath": "/grants/", - "toPath": "/en/community/grants/" - }, - { - "fromPath": "/no/*", - "toPath": "/nb/:splat" - }, - { - "fromPath": "/ph/*", - "toPath": "/fil/:splat" - }, - { - "fromPath": "/en/java/", - "toPath": "/en/developers/docs/programming-languages/java/" - }, - { - "fromPath": "/en/python/", - "toPath": "/en/developers/docs/programming-languages/python/" - }, - { - "fromPath": "/en/javascript/", - "toPath": "/en/developers/docs/programming-languages/javascript/" - }, - { - "fromPath": "/en/golang/", - "toPath": "/en/developers/docs/programming-languages/golang/" - }, - { - "fromPath": "/en/rust/", - "toPath": "/en/developers/docs/programming-languages/rust/" - }, - { - "fromPath": "/en/dot-net/", - "toPath": "/en/developers/docs/programming-languages/dot-net/" - }, - { - "fromPath": "/en/delphi/", - "toPath": "/en/developers/docs/programming-languages/delphi/" - }, - { - "fromPath": "/en/dart/", - "toPath": "/en/developers/docs/programming-languages/dart/" - }, - { - "fromPath": "/en/developers/docs/mining/", - "toPath": "/en/developers/docs/consensus-mechanisms/pow/mining/" - }, - { - "fromPath": "/*/beginners", - "toPath": "/:splat/what-is-ethereum/" - }, - { - "fromPath": "/*/build", - "toPath": "/:splat/developers/learning-tools/" - }, - { - "fromPath": "/*/eth2/beacon-chain/", - "toPath": "/:splat/upgrades/beacon-chain/" - }, - { - "fromPath": "/*/eth2/the-beacon-chain/", - "toPath": "/:splat/upgrades/beacon-chain/" - }, - { - "fromPath": "/*/upgrades/the-beacon-chain/", - "toPath": "/:splat/upgrades/beacon-chain/" - }, - { - "fromPath": "/*/eth2/merge", - "toPath": "/:splat/upgrades/merge/" - }, - { - "fromPath": "/*/eth2/the-merge", - "toPath": "/:splat/upgrades/merge/" - }, - { - "fromPath": "/*/upgrades/the-merge", - "toPath": "/:splat/upgrades/merge/" - }, - { - "fromPath": "/*/eth2/docking", - "toPath": "/:splat/upgrades/merge/" - }, - { - "fromPath": "/*/upgrades/docking", - "toPath": "/:splat/upgrades/merge/" - }, - { - "fromPath": "/*/eth2/the-docking", - "toPath": "/:splat/upgrades/merge/" - }, - { - "fromPath": "/*/upgrades/the-docking", - "toPath": "/:splat/upgrades/merge/" - }, - { - "fromPath": "/*/eth2/shard-chains/", - "toPath": "/:splat/roadmap/danksharding/" - }, - { - "fromPath": "/*/upgrades/shard-chains/", - "toPath": "/:splat/roadmap/danksharding/" - }, - { - "fromPath": "/upgrades/sharding/", - "toPath": "/en/roadmap/danksharding/" - }, - { - "fromPath": "/*/upgrades/sharding/", - "toPath": "/:splat/roadmap/danksharding/" - }, - { - "fromPath": "/upgrades/shard-chains/", - "toPath": "/en/roadmap/danksharding/" - }, - { - "fromPath": "/upgrades/merge", - "toPath": "/en/roadmap/merge/" - }, - { - "fromPath": "/*/upgrades/merge", - "toPath": "/:splat/roadmap/merge/" - }, - { - "fromPath": "/upgrades/merge/issuance", - "toPath": "/en/roadmap/merge/issuance" - }, - { - "fromPath": "/*/upgrades/merge/issuance", - "toPath": "/:splat/roadmap/merge/issuance" - }, - { - "fromPath": "/upgrades/beacon-chain", - "toPath": "/en/roadmap/beacon-chain" - }, - { - "fromPath": "/*/upgrades/beacon-chain", - "toPath": "/:splat/roadmap/beacon-chain" - }, - { - "fromPath": "/upgrades/vision/", - "toPath": "/en/roadmap/vision/" - }, - { - "fromPath": "/*/upgrades/vision/", - "toPath": "/:splat/roadmap/vision/" - }, - { - "fromPath": "/upgrades", - "toPath": "/en/roadmap" - }, - { - "fromPath": "/*/upgrades", - "toPath": "/:splat/roadmap" - }, - { - "fromPath": "/upgrades/get-involved", - "toPath": "/contributing" - }, - { - "fromPath": "/*/upgrades/get-involved", - "toPath": "/:splat/contributing" - }, - { - "fromPath": "/*/eth2/staking/", - "toPath": "/:splat/staking/" - }, - { - "fromPath": "/*/eth2/vision/", - "toPath": "/:splat/roadmap/vision/" - }, - { - "fromPath": "/*/eth2/get-involved/", - "toPath": "/:splat/upgrades/get-involved/" - }, - { - "fromPath": "/*/eth2/get-involved/bug-bounty/", - "toPath": "/:splat/bug-bounty/" - }, - { - "fromPath": "/*/upgrades/get-involved/bug-bounty/", - "toPath": "/:splat/bug-bounty/" - }, - { - "fromPath": "/*/eth2/deposit-contract/", - "toPath": "/:splat/staking/deposit-contract/" - }, - { - "fromPath": "/*/eth2", - "toPath": "/:splat/upgrades/" - }, - { - "fromPath": "/*/developers/docs/layer-2-scaling", - "toPath": "/:splat/developers/docs/scaling" - }, - { - "fromPath": "/*/developers/docs/scaling/layer-2-rollups", - "toPath": "/:splat/developers/docs/scaling" - }, - { - "fromPath": "/*/about/web-developer", - "toPath": "/:splat/about/#open-jobs" - }, - { - "fromPath": "/*/about/product-designer", - "toPath": "/:splat/about/#open-jobs" - }, - { - "fromPath": "/*/use", - "toPath": "/:splat/dapps/" - }, - { - "fromPath": "/*/contributing/translation-program/translation-guide/", - "toPath": "/:splat/contributing/translation-program/faq/" - }, - { - "fromPath": "/*/contributing/translation-program/content-versions/", - "toPath": "/:splat/contributing/translation-program/content-buckets/" - }, - { - "fromPath": "/*/developers/docs/smart-contracts/source-code-verification/", - "toPath": "/:splat/developers/docs/smart-contracts/verifying/" - }, - { - "fromPath": "/*/developers/docs/smart-contracts/upgrading-smart-contracts/", - "toPath": "/:splat/developers/docs/smart-contracts/upgrading/" - }, - { - "fromPath": "/staking/withdraws", - "toPath": "/en/staking/withdrawals/" - }, - { - "fromPath": "/*/writing-cohort", - "toPath": "https://ethereumwriterscohort.carrd.co/" - }, - { - "fromPath": "/*/staking/withdraws", - "toPath": "/:splat/staking/withdrawals/" - }, - { - "fromPath": "/*/guides/how-to-register-an-ethereum-account", - "toPath": "/:splat/guides/how-to-create-an-ethereum-account/" - } -] diff --git a/src/@chakra-ui/gatsby-plugin/components/Alert.ts b/src/@chakra-ui/components/Alert.ts similarity index 96% rename from src/@chakra-ui/gatsby-plugin/components/Alert.ts rename to src/@chakra-ui/components/Alert.ts index a1c27a51ad9..fca2370d1a5 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Alert.ts +++ b/src/@chakra-ui/components/Alert.ts @@ -1,10 +1,12 @@ +import { alertAnatomy } from "@chakra-ui/anatomy" import { createMultiStyleConfigHelpers, SystemStyleObject, } from "@chakra-ui/react" -import { alertAnatomy } from "@chakra-ui/anatomy" + +import { AlertStatusType } from "@/components/Alert" + import { alertDefaultTheme, defineMergeStyles } from "./components.utils" -import { AlertStatusType } from "../../../components/Alert" const STATUS_COLORS: Record< "solid" | "subtle", diff --git a/src/@chakra-ui/gatsby-plugin/components/Avatar.ts b/src/@chakra-ui/components/Avatar.ts similarity index 98% rename from src/@chakra-ui/gatsby-plugin/components/Avatar.ts rename to src/@chakra-ui/components/Avatar.ts index 179c6ee0f6c..90062587eba 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Avatar.ts +++ b/src/@chakra-ui/components/Avatar.ts @@ -1,12 +1,13 @@ +import { pick } from "lodash" +import { avatarAnatomy } from "@chakra-ui/anatomy" import { createMultiStyleConfigHelpers, cssVar, defineStyle, getToken, } from "@chakra-ui/react" -import { avatarAnatomy } from "@chakra-ui/anatomy" + import { avatarDefaultTheme, defineMergeStyles } from "./components.utils" -import { pick } from "lodash" const { defineMultiStyleConfig, definePartsStyle } = createMultiStyleConfigHelpers(avatarAnatomy.keys) @@ -43,7 +44,7 @@ const baseStyleContainer = defineStyle((props) => { "[role='group'] &": { [$border.variable]: "colors.background.base", _notLast: { - marginLeft: $mlBySize.reference, + ms: $mlBySize.reference, }, }, }) diff --git a/src/@chakra-ui/gatsby-plugin/components/Badge.ts b/src/@chakra-ui/components/Badge.ts similarity index 99% rename from src/@chakra-ui/gatsby-plugin/components/Badge.ts rename to src/@chakra-ui/components/Badge.ts index 1efabdd86ee..7d181350e19 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Badge.ts +++ b/src/@chakra-ui/components/Badge.ts @@ -1,4 +1,5 @@ import { defineStyle, defineStyleConfig } from "@chakra-ui/react" + import { badgeDefaultTheme, defineMergeStyles } from "./components.utils" const { baseStyle: defaultBaseStyle } = badgeDefaultTheme diff --git a/src/@chakra-ui/gatsby-plugin/components/Breadcrumb.ts b/src/@chakra-ui/components/Breadcrumb.ts similarity index 99% rename from src/@chakra-ui/gatsby-plugin/components/Breadcrumb.ts rename to src/@chakra-ui/components/Breadcrumb.ts index 55fb739f902..cf190a23312 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Breadcrumb.ts +++ b/src/@chakra-ui/components/Breadcrumb.ts @@ -1,5 +1,6 @@ -import { createMultiStyleConfigHelpers } from "@chakra-ui/react" import { breadcrumbAnatomy } from "@chakra-ui/anatomy" +import { createMultiStyleConfigHelpers } from "@chakra-ui/react" + import { breadcrumbDefaultTheme, defineMergeStyles } from "./components.utils" const { defineMultiStyleConfig } = createMultiStyleConfigHelpers( diff --git a/src/@chakra-ui/gatsby-plugin/components/Button.ts b/src/@chakra-ui/components/Button.ts similarity index 100% rename from src/@chakra-ui/gatsby-plugin/components/Button.ts rename to src/@chakra-ui/components/Button.ts diff --git a/src/@chakra-ui/gatsby-plugin/components/Checkbox.ts b/src/@chakra-ui/components/Checkbox.ts similarity index 99% rename from src/@chakra-ui/gatsby-plugin/components/Checkbox.ts rename to src/@chakra-ui/components/Checkbox.ts index b4ffac6492e..5ea15c84ec2 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Checkbox.ts +++ b/src/@chakra-ui/components/Checkbox.ts @@ -1,5 +1,6 @@ -import { createMultiStyleConfigHelpers, defineStyle } from "@chakra-ui/react" import { checkboxAnatomy } from "@chakra-ui/anatomy" +import { createMultiStyleConfigHelpers, defineStyle } from "@chakra-ui/react" + import { checkboxDefaultTheme, commonInputTriggerStyles, diff --git a/src/@chakra-ui/gatsby-plugin/components/Heading.ts b/src/@chakra-ui/components/Heading.ts similarity index 99% rename from src/@chakra-ui/gatsby-plugin/components/Heading.ts rename to src/@chakra-ui/components/Heading.ts index bd83ad67ad0..75af61913f9 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Heading.ts +++ b/src/@chakra-ui/components/Heading.ts @@ -1,4 +1,5 @@ import { defineStyle, defineStyleConfig } from "@chakra-ui/react" + import { headingDefaultTheme } from "./components.utils" const { sizes: defaultSizes } = headingDefaultTheme diff --git a/src/@chakra-ui/gatsby-plugin/components/Input.ts b/src/@chakra-ui/components/Input.ts similarity index 99% rename from src/@chakra-ui/gatsby-plugin/components/Input.ts rename to src/@chakra-ui/components/Input.ts index 61f19c3966f..af894eb6701 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Input.ts +++ b/src/@chakra-ui/components/Input.ts @@ -4,6 +4,7 @@ import { createMultiStyleConfigHelpers, defineStyle, } from "@chakra-ui/styled-system" + import { defineMergeStyles, inputDefaultTheme } from "./components.utils" const { defineMultiStyleConfig, definePartsStyle } = diff --git a/src/@chakra-ui/gatsby-plugin/components/Link.ts b/src/@chakra-ui/components/Link.ts similarity index 96% rename from src/@chakra-ui/gatsby-plugin/components/Link.ts rename to src/@chakra-ui/components/Link.ts index c9fe52b1359..fd626ffa08f 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Link.ts +++ b/src/@chakra-ui/components/Link.ts @@ -1,5 +1,5 @@ import { defineStyleConfig } from "@chakra-ui/react" -import components from "." + import { defineMergeStyles, linkDefaultTheme } from "./components.utils" import { Text } from "./Text" diff --git a/src/@chakra-ui/gatsby-plugin/components/Modal.ts b/src/@chakra-ui/components/Modal.ts similarity index 98% rename from src/@chakra-ui/gatsby-plugin/components/Modal.ts rename to src/@chakra-ui/components/Modal.ts index b4079657373..0d9ad38eaf9 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Modal.ts +++ b/src/@chakra-ui/components/Modal.ts @@ -1,5 +1,6 @@ -import { createMultiStyleConfigHelpers } from "@chakra-ui/react" import { modalAnatomy } from "@chakra-ui/anatomy" +import { createMultiStyleConfigHelpers } from "@chakra-ui/react" + import { defineMergeStyles, modalDefaultTheme } from "./components.utils" const { defineMultiStyleConfig, definePartsStyle } = @@ -42,7 +43,7 @@ const variantCode = definePartsStyle((props) => ({ fontSize: "sm", margin: 0, top: 4, - right: 4, + insetInlineEnd: 4, bottom: 4, }, body: { diff --git a/src/@chakra-ui/gatsby-plugin/components/Progress.ts b/src/@chakra-ui/components/Progress.ts similarity index 100% rename from src/@chakra-ui/gatsby-plugin/components/Progress.ts rename to src/@chakra-ui/components/Progress.ts diff --git a/src/@chakra-ui/gatsby-plugin/components/Radio.ts b/src/@chakra-ui/components/Radio.ts similarity index 99% rename from src/@chakra-ui/gatsby-plugin/components/Radio.ts rename to src/@chakra-ui/components/Radio.ts index 85d6a872164..de6ac57cf09 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Radio.ts +++ b/src/@chakra-ui/components/Radio.ts @@ -1,9 +1,10 @@ +import { radioAnatomy } from "@chakra-ui/anatomy" import { createMultiStyleConfigHelpers, cssVar, defineStyle, } from "@chakra-ui/react" -import { radioAnatomy } from "@chakra-ui/anatomy" + import { commonInputTriggerStyles, defineMergeStyles, diff --git a/src/@chakra-ui/gatsby-plugin/components/Select.ts b/src/@chakra-ui/components/Select.ts similarity index 99% rename from src/@chakra-ui/gatsby-plugin/components/Select.ts rename to src/@chakra-ui/components/Select.ts index 4a07cc0cd84..1ff0d3f138e 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Select.ts +++ b/src/@chakra-ui/components/Select.ts @@ -1,5 +1,6 @@ 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" diff --git a/src/@chakra-ui/gatsby-plugin/components/Switch.ts b/src/@chakra-ui/components/Switch.ts similarity index 99% rename from src/@chakra-ui/gatsby-plugin/components/Switch.ts rename to src/@chakra-ui/components/Switch.ts index e3b2d5a8bce..e25b03cdcc9 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Switch.ts +++ b/src/@chakra-ui/components/Switch.ts @@ -1,10 +1,11 @@ -import { createMultiStyleConfigHelpers } from "@chakra-ui/react" import { switchAnatomy } from "@chakra-ui/anatomy" +import { createMultiStyleConfigHelpers } from "@chakra-ui/react" + import { + _notDisabledReadOnly, commonInputTriggerStyles, defineMergeStyles, switchDefaultTheme, - _notDisabledReadOnly, } from "./components.utils" const { defineMultiStyleConfig, definePartsStyle } = diff --git a/src/@chakra-ui/gatsby-plugin/components/Table.ts b/src/@chakra-ui/components/Table.ts similarity index 95% rename from src/@chakra-ui/gatsby-plugin/components/Table.ts rename to src/@chakra-ui/components/Table.ts index eabea95217b..fd32cedb16d 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Table.ts +++ b/src/@chakra-ui/components/Table.ts @@ -4,6 +4,7 @@ import { cssVar, defineStyle, } from "@chakra-ui/react" + import { defineMergeStyles, tableDefaultTheme } from "./components.utils" const { defineMultiStyleConfig, definePartsStyle } = @@ -32,8 +33,8 @@ const baseStyle = defineMergeStyles( tr: { "th, td": { _notLast: { - borderRight: "2px", - borderRightColor: "background.base", + borderInlineEnd: "2px", + borderInlineEndColor: "background.base", }, }, }, diff --git a/src/@chakra-ui/gatsby-plugin/components/Tabs.ts b/src/@chakra-ui/components/Tabs.ts similarity index 99% rename from src/@chakra-ui/gatsby-plugin/components/Tabs.ts rename to src/@chakra-ui/components/Tabs.ts index ddeefddeab7..d8fce5f22be 100644 --- a/src/@chakra-ui/gatsby-plugin/components/Tabs.ts +++ b/src/@chakra-ui/components/Tabs.ts @@ -1,5 +1,6 @@ -import { createMultiStyleConfigHelpers } from "@chakra-ui/react" import { tabsAnatomy } from "@chakra-ui/anatomy" +import { createMultiStyleConfigHelpers } from "@chakra-ui/react" + import { tabsDefaultTheme } from "./components.utils" const { baseStyle, sizes, defaultProps } = tabsDefaultTheme diff --git a/src/@chakra-ui/components/Tag/index.ts b/src/@chakra-ui/components/Tag/index.ts new file mode 100644 index 00000000000..5f8a080a9cd --- /dev/null +++ b/src/@chakra-ui/components/Tag/index.ts @@ -0,0 +1,127 @@ +import { tagAnatomy } from "@chakra-ui/anatomy" +import { + createMultiStyleConfigHelpers, + defineStyle, + theme, +} from "@chakra-ui/react" + +import { defineMergeStyles } from "../components.utils" + +import { $badgeColor, STATUS_COLORS } from "./utils" + +const { definePartsStyle, defineMultiStyleConfig } = + createMultiStyleConfigHelpers(tagAnatomy.keys) + +const { Tag: tagTheme } = theme.components + +const baseStyleContainer = defineMergeStyles(tagTheme.baseStyle?.container, { + border: "1px", + borderColor: "transparent", + boxSizing: "border-box", + gap: 1, + borderRadius: "full", + px: 2, + py: 0.5, + minH: 8, + fontWeight: 300, + "&:any-link": { + textDecor: "none", + _focusWithin: { + outline: "4px solid", + outlineColor: "transparent", + outlineOffset: 0, + }, + }, +}) + +const baseStyleLabel = defineStyle({ + ...tagTheme.baseStyle?.label, + fontSize: "xs", + textTransform: "uppercase", + textAlign: "center", + lineHeight: 1.6, +}) + +const baseStyleCloseButton = defineStyle({ + ...tagTheme.baseStyle?.closeButton, + opacity: 1, + m: 0, + // Clear default + _focusVisible: null, + "&:focus-visible, &:hover": { + outline: "3px solid", + outlineOffset: "-2px", + }, +}) + +const baseStyle = definePartsStyle({ + container: baseStyleContainer, + label: baseStyleLabel, + closeButton: baseStyleCloseButton, +}) + +const getStatusStyles = (status: string, variant: string) => { + const statusStyles = STATUS_COLORS[status][variant] + + return { + container: statusStyles, + } +} + +const variantSubtle = definePartsStyle((props) => { + const { status = "normal" } = props + const defaultStyles = tagTheme.variants?.subtle(props) + const statusStyles = getStatusStyles(status, "subtle") + return { + container: { + ...defaultStyles?.container, + // Remove default dark mode styles + _dark: {}, + ...statusStyles.container, + }, + } +}) + +const variantSolid = definePartsStyle((props) => { + const { status = "normal" } = props + const defaultStyles = tagTheme.variants?.solid(props) + const statusStyles = getStatusStyles(status, "solid") + return { + container: { + ...defaultStyles?.container, + // Remove default dark mode styles + _dark: {}, + ...statusStyles.container, + }, + } +}) + +const variantOutline = definePartsStyle((props) => { + const { status = "normal" } = props + const defaultStyles = tagTheme.variants?.outline(props) + const statusStyles = getStatusStyles(status, "outline") + return { + container: { + ...defaultStyles?.container, + boxShadow: "none", + borderColor: $badgeColor.reference, + // Remove default dark mode styles + _dark: {}, + ...statusStyles.container, + }, + } +}) + +const variants = { + subtle: variantSubtle, + solid: variantSolid, + outline: variantOutline, +} + +export const Tag = defineMultiStyleConfig({ + baseStyle, + variants, + defaultProps: { + variant: "subtle", + }, +}) diff --git a/src/@chakra-ui/gatsby-plugin/components/Tag/utils.ts b/src/@chakra-ui/components/Tag/utils.ts similarity index 100% rename from src/@chakra-ui/gatsby-plugin/components/Tag/utils.ts rename to src/@chakra-ui/components/Tag/utils.ts diff --git a/src/@chakra-ui/gatsby-plugin/components/Text.ts b/src/@chakra-ui/components/Text.ts similarity index 100% rename from src/@chakra-ui/gatsby-plugin/components/Text.ts rename to src/@chakra-ui/components/Text.ts diff --git a/src/@chakra-ui/gatsby-plugin/components/components.utils.ts b/src/@chakra-ui/components/components.utils.ts similarity index 100% rename from src/@chakra-ui/gatsby-plugin/components/components.utils.ts rename to src/@chakra-ui/components/components.utils.ts index c62af85985f..f0bb58df0a0 100644 --- a/src/@chakra-ui/gatsby-plugin/components/components.utils.ts +++ b/src/@chakra-ui/components/components.utils.ts @@ -1,5 +1,5 @@ -import { cssVar, SystemStyleObject, theme } from "@chakra-ui/react" import { merge } from "lodash" +import { cssVar, SystemStyleObject, theme } from "@chakra-ui/react" const { Accordion: accordionDefaultTheme, diff --git a/src/@chakra-ui/components/index.ts b/src/@chakra-ui/components/index.ts new file mode 100644 index 00000000000..f105ee21480 --- /dev/null +++ b/src/@chakra-ui/components/index.ts @@ -0,0 +1,60 @@ +import { Alert } from "./Alert" +import { Avatar } from "./Avatar" +import { Badge } from "./Badge" +import { Breadcrumb } from "./Breadcrumb" +import { Button } from "./Button" +import { Checkbox } from "./Checkbox" +import { + accordionDefaultTheme, + closeButtonDefaultTheme, + codeDefaultTheme, + dividerDefaultTheme, + drawerDefaultTheme, + formDefaultTheme, + formLabelDefaultTheme, + menuDefaultTheme, + spinnerDefaultTheme, +} from "./components.utils" +import { Heading } from "./Heading" +import { Input } from "./Input" +import { Link } from "./Link" +import { Modal } from "./Modal" +import { Progress } from "./Progress" +import { Radio } from "./Radio" +import { Select } from "./Select" +import { Switch } from "./Switch" +import { Table } from "./Table" +import { Tabs } from "./Tabs" +import { Tag } from "./Tag" +import { Text } from "./Text" + +// eslint-disable-next-line import/no-anonymous-default-export +export default { + Accordion: accordionDefaultTheme, + Alert, + Avatar, + Badge, + Breadcrumb, + Button, + Checkbox, + CloseButton: closeButtonDefaultTheme, + Code: codeDefaultTheme, + Divider: dividerDefaultTheme, + Drawer: drawerDefaultTheme, + Form: formDefaultTheme, + FormLabel: formLabelDefaultTheme, + Heading, + Input, + Link, + Menu: menuDefaultTheme, + Modal, + Progress, + Radio, + Select, + Spinner: spinnerDefaultTheme, + Switch, + Table, + Tabs, + Tag, + Text, +} diff --git a/src/@chakra-ui/gatsby-plugin/foundations/colors.ts b/src/@chakra-ui/foundations/colors.ts similarity index 100% rename from src/@chakra-ui/gatsby-plugin/foundations/colors.ts rename to src/@chakra-ui/foundations/colors.ts diff --git a/src/@chakra-ui/foundations/index.ts b/src/@chakra-ui/foundations/index.ts new file mode 100644 index 00000000000..b06bb6b1b83 --- /dev/null +++ b/src/@chakra-ui/foundations/index.ts @@ -0,0 +1,20 @@ +import colors from "./colors" +import shadows from "./shadows" +import sizes from "./sizes" +import spacing from "./spacing" +import typography from "./typography" + +// 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 +const foundations = { + colors, + shadows, + space: spacing, + sizes: { + ...spacing, + ...sizes, + }, + ...typography, +} + +export default foundations diff --git a/src/@chakra-ui/gatsby-plugin/foundations/shadows.ts b/src/@chakra-ui/foundations/shadows.ts similarity index 100% rename from src/@chakra-ui/gatsby-plugin/foundations/shadows.ts rename to src/@chakra-ui/foundations/shadows.ts diff --git a/src/@chakra-ui/gatsby-plugin/foundations/sizes.ts b/src/@chakra-ui/foundations/sizes.ts similarity index 100% rename from src/@chakra-ui/gatsby-plugin/foundations/sizes.ts rename to src/@chakra-ui/foundations/sizes.ts diff --git a/src/@chakra-ui/gatsby-plugin/foundations/spacing.ts b/src/@chakra-ui/foundations/spacing.ts similarity index 100% rename from src/@chakra-ui/gatsby-plugin/foundations/spacing.ts rename to src/@chakra-ui/foundations/spacing.ts diff --git a/src/@chakra-ui/foundations/typography.ts b/src/@chakra-ui/foundations/typography.ts new file mode 100644 index 00000000000..862ad1edef3 --- /dev/null +++ b/src/@chakra-ui/foundations/typography.ts @@ -0,0 +1,20 @@ +const typography = { + fonts: { + heading: "var(--font-inter)", + body: "var(--font-inter)", + monospace: "var(--font-mono)", + }, + + lineHeights: { + "6xs": 1.1, + "5xs": 1.15, + "4xs": 1.2, + "3xs": 1.25, + "2xs": 1.35, + xs: 1.4, + sm: 1.5, + base: 1.6, + }, +} + +export default typography diff --git a/src/@chakra-ui/gatsby-plugin/components/Tag/index.ts b/src/@chakra-ui/gatsby-plugin/components/Tag/index.ts deleted file mode 100644 index 8e2ddea9ecd..00000000000 --- a/src/@chakra-ui/gatsby-plugin/components/Tag/index.ts +++ /dev/null @@ -1,125 +0,0 @@ -import { - createMultiStyleConfigHelpers, - theme, - defineStyle, -} from "@chakra-ui/react" -import { tagAnatomy } from "@chakra-ui/anatomy" -import { $badgeColor, STATUS_COLORS } from "./utils" -import { defineMergeStyles } from "../components.utils" - -const { definePartsStyle, defineMultiStyleConfig } = - createMultiStyleConfigHelpers(tagAnatomy.keys) - -const { Tag: tagTheme } = theme.components - -const baseStyleContainer = defineMergeStyles(tagTheme.baseStyle?.container, { - border: "1px", - borderColor: "transparent", - boxSizing: "border-box", - gap: 1, - borderRadius: "full", - px: 2, - py: 0.5, - minH: 8, - fontWeight: 300, - "&:any-link": { - textDecor: "none", - _focusWithin: { - outline: "4px solid", - outlineColor: "transparent", - outlineOffset: 0, - }, - }, -}) - -const baseStyleLabel = defineStyle({ - ...tagTheme.baseStyle?.label, - fontSize: "xs", - textTransform: "uppercase", - textAlign: "center", - lineHeight: 1.6, -}) - -const baseStyleCloseButton = defineStyle({ - ...tagTheme.baseStyle?.closeButton, - opacity: 1, - m: 0, - // Clear default - _focusVisible: null, - "&:focus-visible, &:hover": { - outline: "3px solid", - outlineOffset: "-2px", - }, -}) - -const baseStyle = definePartsStyle({ - container: baseStyleContainer, - label: baseStyleLabel, - closeButton: baseStyleCloseButton, -}) - -const getStatusStyles = (status: string, variant: string) => { - const statusStyles = STATUS_COLORS[status][variant] - - return { - container: statusStyles, - } -} - -const variantSubtle = definePartsStyle((props) => { - const { status = "normal" } = props - const defaultStyles = tagTheme.variants?.subtle(props) - const statusStyles = getStatusStyles(status, "subtle") - return { - container: { - ...defaultStyles?.container, - // Remove default dark mode styles - _dark: {}, - ...statusStyles.container, - }, - } -}) - -const variantSolid = definePartsStyle((props) => { - const { status = "normal" } = props - const defaultStyles = tagTheme.variants?.solid(props) - const statusStyles = getStatusStyles(status, "solid") - return { - container: { - ...defaultStyles?.container, - // Remove default dark mode styles - _dark: {}, - ...statusStyles.container, - }, - } -}) - -const variantOutline = definePartsStyle((props) => { - const { status = "normal" } = props - const defaultStyles = tagTheme.variants?.outline(props) - const statusStyles = getStatusStyles(status, "outline") - return { - container: { - ...defaultStyles?.container, - boxShadow: "none", - borderColor: $badgeColor.reference, - // Remove default dark mode styles - _dark: {}, - ...statusStyles.container, - }, - } -}) - -const variants = { - subtle: variantSubtle, - solid: variantSolid, - outline: variantOutline, -} - -export const Tag = defineMultiStyleConfig({ - baseStyle, - variants, - defaultProps: { - variant: "subtle", - }, -}) diff --git a/src/@chakra-ui/gatsby-plugin/components/index.ts b/src/@chakra-ui/gatsby-plugin/components/index.ts deleted file mode 100644 index 2dd5ab689be..00000000000 --- a/src/@chakra-ui/gatsby-plugin/components/index.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { Alert } from "./Alert" -import { Avatar } from "./Avatar" -import { Badge } from "./Badge" -import { Button } from "./Button" -import { Breadcrumb } from "./Breadcrumb" -import { Heading } from "./Heading" -import { Link } from "./Link" -import { Tag } from "./Tag" -import { Modal } from "./Modal" -import { Checkbox } from "./Checkbox" -import { Progress } from "./Progress" -import { Tabs } from "./Tabs" -import { Text } from "./Text" -import { Table } from "./Table" -import { Radio } from "./Radio" -import { Select } from "./Select" -import { Switch } from "./Switch" -import { Input } from "./Input" -import { - accordionDefaultTheme, - closeButtonDefaultTheme, - codeDefaultTheme, - dividerDefaultTheme, - drawerDefaultTheme, - formDefaultTheme, - formLabelDefaultTheme, - headingDefaultTheme, - menuDefaultTheme, - spinnerDefaultTheme, -} from "./components.utils" - -export default { - Accordion: accordionDefaultTheme, - Alert, - Avatar, - Badge, - Breadcrumb, - Button, - Checkbox, - CloseButton: closeButtonDefaultTheme, - Code: codeDefaultTheme, - Divider: dividerDefaultTheme, - Drawer: drawerDefaultTheme, - Form: formDefaultTheme, - FormLabel: formLabelDefaultTheme, - Heading, - Input, - Link, - Menu: menuDefaultTheme, - Modal, - Progress, - Radio, - Select, - Spinner: spinnerDefaultTheme, - Switch, - Table, - Tabs, - Tag, - Text, -} diff --git a/src/@chakra-ui/gatsby-plugin/foundations/index.ts b/src/@chakra-ui/gatsby-plugin/foundations/index.ts deleted file mode 100644 index 2756e138558..00000000000 --- a/src/@chakra-ui/gatsby-plugin/foundations/index.ts +++ /dev/null @@ -1,20 +0,0 @@ -import colors from "./colors" -import shadows from "./shadows" -import typography from "./typography" -import spacing from "./spacing" -import sizes from "./sizes" - -// 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 -const foundations = { - colors, - shadows, - space: spacing, - sizes: { - ...spacing, - ...sizes, - }, - ...typography, -} - -export default foundations diff --git a/src/@chakra-ui/gatsby-plugin/foundations/typography.ts b/src/@chakra-ui/gatsby-plugin/foundations/typography.ts deleted file mode 100644 index 96f855fcedd..00000000000 --- a/src/@chakra-ui/gatsby-plugin/foundations/typography.ts +++ /dev/null @@ -1,20 +0,0 @@ -const typography = { - fonts: { - heading: "Inter, sans-serif", - body: "Inter, sans-serif", - monospace: "'IBM Plex Mono', Courier, monospace", - }, - - lineHeights: { - "6xs": 1.1, - "5xs": 1.15, - "4xs": 1.2, - "3xs": 1.25, - "2xs": 1.35, - xs: 1.4, - sm: 1.5, - base: 1.6, - }, -} - -export default typography diff --git a/src/@chakra-ui/gatsby-plugin/theme.ts b/src/@chakra-ui/gatsby-plugin/theme.ts deleted file mode 100644 index d9b2b116818..00000000000 --- a/src/@chakra-ui/gatsby-plugin/theme.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { extendBaseTheme, type ThemeConfig } from "@chakra-ui/react" - -// Global style overrides -import styles from "./styles" - -// Foundational style overrides -import foundations from "./foundations" - -// Component style overrides -import components from "./components" - -import semanticTokens from "./semanticTokens" - -const config: ThemeConfig = { - cssVarPrefix: "eth", - initialColorMode: "light", - useSystemColorMode: true, -} - -/** - * Override default styles with our custom theme. - * - * The complete list of default Chakra styles can be found here: - * https://github.com/chakra-ui/chakra-ui/tree/main/packages/theme/src - */ -const theme = { - config, - styles, - ...foundations, - semanticTokens, - components, -} - -export default extendBaseTheme(theme) diff --git a/src/@chakra-ui/gatsby-plugin/semanticTokens.ts b/src/@chakra-ui/semanticTokens.ts similarity index 99% rename from src/@chakra-ui/gatsby-plugin/semanticTokens.ts rename to src/@chakra-ui/semanticTokens.ts index 95af3bb8253..111583da38a 100644 --- a/src/@chakra-ui/gatsby-plugin/semanticTokens.ts +++ b/src/@chakra-ui/semanticTokens.ts @@ -1,7 +1,7 @@ import { - lightTheme as oldLightTheme, darkTheme as oldDarkTheme, -} from "../../theme" + lightTheme as oldLightTheme, +} from "../theme" /** @deprecated */ const oldLightThemeColors = oldLightTheme.colors diff --git a/src/@chakra-ui/gatsby-plugin/styles.ts b/src/@chakra-ui/styles.ts similarity index 96% rename from src/@chakra-ui/gatsby-plugin/styles.ts rename to src/@chakra-ui/styles.ts index 19ec78973da..4999f23a06e 100644 --- a/src/@chakra-ui/gatsby-plugin/styles.ts +++ b/src/@chakra-ui/styles.ts @@ -55,8 +55,8 @@ const styles = { ".header-anchor": { position: "relative !important", display: "initial", - marginLeft: "-1.5em", - paddingRight: "0.5rem !important", + marginStart: "-1.5em", + paddingEnd: "0.5rem !important", fontSize: "1rem", verticalAlign: "middle", diff --git a/src/@chakra-ui/theme.ts b/src/@chakra-ui/theme.ts new file mode 100644 index 00000000000..b965d326315 --- /dev/null +++ b/src/@chakra-ui/theme.ts @@ -0,0 +1,28 @@ +import type { ThemeConfig } from "@chakra-ui/react" + +import components from "./components" +import foundations from "./foundations" +import semanticTokens from "./semanticTokens" +import styles from "./styles" + +const config: ThemeConfig = { + cssVarPrefix: "eth", + initialColorMode: "system", + useSystemColorMode: true, +} + +/** + * Override default styles with our custom theme. + * + * The complete list of default Chakra styles can be found here: + * https://github.com/chakra-ui/chakra-ui/tree/main/packages/theme/src + */ +const theme = { + config, + styles, + ...foundations, + semanticTokens, + components, +} + +export default theme diff --git a/src/api/calendarEvents.ts b/src/api/calendarEvents.ts deleted file mode 100644 index cddd834c5d4..00000000000 --- a/src/api/calendarEvents.ts +++ /dev/null @@ -1,54 +0,0 @@ -import axios from "axios" -import type { GatsbyFunctionRequest, GatsbyFunctionResponse } from "gatsby" - -async function handler( - __req: GatsbyFunctionRequest, - res: GatsbyFunctionResponse -): Promise { - const apiKey = process.env.GOOGLE_API_KEY - const calendarId = process.env.GOOGLE_CALENDAR_ID - - try { - const futureEventsReq = await axios.get( - `https://content.googleapis.com/calendar/v3/calendars/${calendarId}/events`, - { - params: { - key: apiKey, - timeMin: new Date().toISOString(), - maxResults: 3, - singleEvents: true, - orderBy: "startTime", - }, - } - ) - - const pastEventsReq = await axios.get( - `https://content.googleapis.com/calendar/v3/calendars/${calendarId}/events`, - { - params: { - key: apiKey, - timeMax: new Date().toISOString(), - maxResults: 4, - singleEvents: true, - orderBy: "startTime", - }, - } - ) - - const response = { - pastEvents: pastEventsReq.data.items, - futureEvents: futureEventsReq.data.items, - } - - res.status(200).send(JSON.stringify(response)) - } catch (error) { - console.error(error) - res.status(500).send( - JSON.stringify({ - msg: "Something went wrong with requesting the calendar events data.", - }) - ) - } -} - -export default handler diff --git a/src/api/defipulse.ts b/src/api/defipulse.ts deleted file mode 100644 index 38852e8b85f..00000000000 --- a/src/api/defipulse.ts +++ /dev/null @@ -1,37 +0,0 @@ -import axios from "axios" -import takeRightWhile from "lodash/takeRightWhile" -import type { GatsbyFunctionRequest, GatsbyFunctionResponse } from "gatsby" - -async function handler( - __req: GatsbyFunctionRequest, - res: GatsbyFunctionResponse -): Promise { - try { - const response = await axios.get(`https://api.llama.fi/charts/Ethereum`) - if (response.status < 200 || response.status >= 300) { - return res - .status(response.status) - .send(JSON.stringify(response.statusText)) - } - - const { data } = response - - // get only the last 90 days - const daysToFetch = 90 - const now = new Date() - const startDate = new Date(now.setDate(now.getDate() - daysToFetch)) - const startTimestamp = Math.round(startDate.getTime() / 1000) - - const trimmedData = takeRightWhile( - data, - ({ date }) => Number(date) > startTimestamp - ) - - res.status(200).send(JSON.stringify(trimmedData)) - } catch (error) { - console.error(error) - res.status(500).send(JSON.stringify({ msg: (error as Error)?.message })) - } -} - -export default handler diff --git a/src/api/etherscan.ts b/src/api/etherscan.ts deleted file mode 100644 index 9d362b01ae3..00000000000 --- a/src/api/etherscan.ts +++ /dev/null @@ -1,33 +0,0 @@ -import axios from "axios" -import { GatsbyFunctionRequest, GatsbyFunctionResponse } from "gatsby" - -async function handler( - __req: GatsbyFunctionRequest, - res: GatsbyFunctionResponse -) { - const apiKey = process.env.ETHERSCAN_API_KEY - - const daysToFetch = 90 - const now = new Date() - const endDate = now.toISOString().split("T")[0] // YYYY-MM-DD - const startDate = new Date(now.setDate(now.getDate() - daysToFetch)) - .toISOString() - .split("T")[0] // {daysToFetch} days ago - try { - const response = await axios.get( - `https://api.etherscan.io/api?module=stats&action=nodecounthistory&startdate=${startDate}&enddate=${endDate}&sort=desc&apikey=${apiKey}` - ) - if (response.status < 200 || response.status >= 300) { - return res - .status(response.status) - .send(JSON.stringify(response.statusText)) - } - const { data } = response - res.status(200).send(JSON.stringify(data)) - } catch (error) { - console.error(error) - res.status(500).send(JSON.stringify({ msg: (error as Error).message })) - } -} - -export default handler diff --git a/src/api/etherscanBlock.ts b/src/api/etherscanBlock.ts deleted file mode 100644 index ef81e47e8f4..00000000000 --- a/src/api/etherscanBlock.ts +++ /dev/null @@ -1,26 +0,0 @@ -import axios from "axios" -import { GatsbyFunctionRequest, GatsbyFunctionResponse } from "gatsby" - -async function handler( - __req: GatsbyFunctionRequest, - res: GatsbyFunctionResponse -) { - const apiKey = process.env.ETHERSCAN_API_KEY - - try { - const response = await axios.get( - `https://api.etherscan.io/api?module=block&action=getblockcountdown&blockno=12965000&apikey=${apiKey}` - ) - if (response.status < 200 || response.status >= 300) { - return res.status(response.status).send(response.statusText) - } - - const { data } = response - res.status(200).send(JSON.stringify(data.result.EstimateTimeInSec || 0)) - } catch (error) { - console.error(error) - res.status(500).send(JSON.stringify({ msg: (error as Error).message })) - } -} - -export default handler diff --git a/src/api/l2beat.ts b/src/api/l2beat.ts deleted file mode 100644 index d6e3c6c4e22..00000000000 --- a/src/api/l2beat.ts +++ /dev/null @@ -1,22 +0,0 @@ -import axios from "axios" -import { GatsbyFunctionRequest, GatsbyFunctionResponse } from "gatsby" - -async function handler( - __req: GatsbyFunctionRequest, - res: GatsbyFunctionResponse -) { - try { - const response = await axios.get(`https://api.l2beat.com/api/tvl`) - if (response.status < 200 || response.status >= 300) { - return res.status(response.status).send(response.statusText) - } - - const { data } = response - res.status(200).send(JSON.stringify(data)) - } catch (error) { - console.error(error) - res.status(500).send(JSON.stringify({ msg: (error as Error).message })) - } -} - -export default handler diff --git a/src/api/translations.ts b/src/api/translations.ts deleted file mode 100644 index 8b46b950a66..00000000000 --- a/src/api/translations.ts +++ /dev/null @@ -1,27 +0,0 @@ -import axios from "axios" -import { GatsbyFunctionRequest, GatsbyFunctionResponse } from "gatsby" - -async function handler( - __req: GatsbyFunctionRequest, - res: GatsbyFunctionResponse -) { - const apiKey = process.env.CROWDIN_API_KEY - - try { - const baseURL = "https://api.crowdin.com/api/project/ethereum-org/status" - - const resp = await axios.get(`${baseURL}?key=${apiKey}&json`) - - if (resp.status < 200 || resp.status >= 300) { - return res.status(resp.status).send(resp.statusText) - } - - const data = await resp.data - res.status(200).send(JSON.stringify({ data })) - } catch (error) { - console.log(error) // output to netlify function log - res.status(500).send(JSON.stringify({ msg: (error as Error).message })) - } -} - -export default handler diff --git a/src/api/txs.ts b/src/api/txs.ts deleted file mode 100644 index 65a2f421895..00000000000 --- a/src/api/txs.ts +++ /dev/null @@ -1,31 +0,0 @@ -import axios from "axios" -import { GatsbyFunctionRequest, GatsbyFunctionResponse } from "gatsby" - -async function handler( - __req: GatsbyFunctionRequest, - res: GatsbyFunctionResponse -) { - const apiKey = process.env.ETHERSCAN_API_KEY - - try { - const daysToFetch = 90 - const now = new Date() - const endDate = now.toISOString().split("T")[0] // YYYY-MM-DD - const startDate = new Date(now.setDate(now.getDate() - daysToFetch)) - .toISOString() - .split("T")[0] // {daysToFetch} days ago - const response = await axios.get( - `https://api.etherscan.io/api?module=stats&action=dailytx&startdate=${startDate}&enddate=${endDate}&sort=asc&apikey=${apiKey}` - ) - if (response.status < 200 || response.status >= 300) { - return res.status(response.status).send(response.statusText) - } - const { data } = response - res.status(200).send(JSON.stringify(data.result)) - } catch (error) { - console.error(error) - res.status(500).send(JSON.stringify({ msg: (error as Error).message })) - } -} - -export default handler diff --git a/src/apollo.ts b/src/apollo.ts deleted file mode 100644 index f1c019101d0..00000000000 --- a/src/apollo.ts +++ /dev/null @@ -1,22 +0,0 @@ -import fetch from "cross-fetch" -import { ApolloClient, InMemoryCache, HttpLink } from "@apollo/client" - -// Note: for this API to work locally you'll need to create a personal GitHub API token: -// https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token -// When selecting scopes in step 7, leave everything unchecked (the data we fetch doesn't require any scope) -// https://docs.github.com/en/developers/apps/scopes-for-oauth-apps#available-scopes -// In local repo root directory: make a copy of `.env.example` and name it `.env` -// Copy & paste your new GitHub API token in `.env`, e.g. -// GATSBY_GITHUB_TOKEN_READ_ONLY=48f84de812090000demo00000000697cf6e6a059 -const client = new ApolloClient({ - link: new HttpLink({ - uri: `https://api.github.com/graphql`, - fetch, - headers: { - Authorization: `Bearer ${process.env.GATSBY_GITHUB_TOKEN_READ_ONLY}`, - }, - }), - cache: new InMemoryCache(), -}) - -export default client diff --git a/src/assets/dapps/ens.png b/src/assets/dapps/ens.png deleted file mode 100644 index 0b8576314c4..00000000000 Binary files a/src/assets/dapps/ens.png and /dev/null differ diff --git a/src/assets/upgrades/merge-infographic-bg.svg b/src/assets/upgrades/merge-infographic-bg.svg deleted file mode 100644 index 3d7cc365f54..00000000000 --- a/src/assets/upgrades/merge-infographic-bg.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/src/components/ActionCard.tsx b/src/components/ActionCard.tsx index 33e23b8a853..036828031b0 100644 --- a/src/components/ActionCard.tsx +++ b/src/components/ActionCard.tsx @@ -1,20 +1,19 @@ -import React, { ReactNode } from "react" +import { StaticImageData } from "next/image" +import type { ReactNode } from "react" import { Box, + type BoxProps, Flex, Heading, - BoxProps, LinkBox, + type LinkBoxProps, LinkOverlay, - Image, useColorModeValue, - LinkBoxProps, } from "@chakra-ui/react" -import { IGatsbyImageData } from "gatsby-plugin-image" -import Text from "./OldText" -import { BaseLink } from "./Link" -import GatsbyImage from "./GatsbyImage" +import { Image } from "@/components/Image" +import { BaseLink } from "@/components/Link" +import Text from "@/components/OldText" const linkBoxFocusStyles: BoxProps = { borderRadius: "base", @@ -28,11 +27,12 @@ const linkFocusStyles: BoxProps = { textDecoration: "none", } -export interface IProps extends Omit { - children?: React.ReactNode +export type ActionCardProps = Omit & { + children?: ReactNode to: string alt?: string - image: IGatsbyImageData | string + image: StaticImageData + imageWidth?: number title: ReactNode description?: ReactNode className?: string @@ -40,19 +40,19 @@ export interface IProps extends Omit { isBottom?: boolean } -const ActionCard: React.FC = ({ +const ActionCard = ({ to, alt, image, + imageWidth = 220, title, description, children, className, isRight, isBottom = true, - ...rest -}) => { - const isImageURL = typeof image === "string" + ...props +}: ActionCardProps) => { const descriptionColor = useColorModeValue("blackAlpha.700", "whiteAlpha.800") return ( @@ -66,10 +66,10 @@ const ActionCard: React.FC = ({ _focus={linkBoxFocusStyles} className={className} m={4} - {...rest} + {...props} > = ({ className="action-card-image-wrapper" boxShadow="inset 0px -1px 0px rgba(0, 0, 0, 0.1)" > - {!isImageURL && ( - - )} - {isImageURL && ( - {alt - )} + {alt = ({ children }) => { - return ( - - {children} - - ) -} +const Column = ({ children }: ChildOnlyProp) => ( + + {children} + +) -const Cell: React.FC = ({ children, color, ...props }) => { - return ( - - {children} - - ) -} - -const ColumnName: React.FC<{ children: ReactNode }> = ({ children }) => { - return ( - - {children} - - ) -} +const Cell = ({ children, color, ...props }: BoxProps) => ( + + {children} + +) -interface IProps {} +const ColumnName = ({ children }: ChildOnlyProp) => ( + + {children} + +) -const AdoptionChart: React.FC = () => { +const AdoptionChart = () => { + const { t } = useTranslation("page-what-is-ethereum") const { colorMode } = useColorMode() const isDark = colorMode === "dark" @@ -65,50 +56,48 @@ const AdoptionChart: React.FC = () => { 2010 - + {t("adoption-chart-investors-label")} 2014 - + {t("adoption-chart-investors-label")} - + {t("adoption-chart-developers-label")} - + {t("adoption-chart-companies-label")} - - - + {t("adoption-chart-column-now-label")} - + {t("adoption-chart-investors-label")} - + {t("adoption-chart-developers-label")} - + {t("adoption-chart-companies-label")} - + {t("adoption-chart-artists-label")} - + {t("adoption-chart-musicians-label")} - + {t("adoption-chart-writers-label")} - + {t("adoption-chart-gamers-label")} - + {t("adoption-chart-refugees-label")} diff --git a/src/components/Alert/Alert.stories.tsx b/src/components/Alert/Alert.stories.tsx index 35a02e64027..2c72ed41274 100644 --- a/src/components/Alert/Alert.stories.tsx +++ b/src/components/Alert/Alert.stories.tsx @@ -1,6 +1,6 @@ import * as React from "react" -import { Meta, StoryObj } from "@storybook/react" import { Box, Flex, Text } from "@chakra-ui/react" +import { Meta, StoryObj } from "@storybook/react" import Alert from "." diff --git a/src/components/AssetDownload/AssetDownloadArtist.tsx b/src/components/AssetDownload/AssetDownloadArtist.tsx index ef8a0e28f1b..d109f3db3f2 100644 --- a/src/components/AssetDownload/AssetDownloadArtist.tsx +++ b/src/components/AssetDownload/AssetDownloadArtist.tsx @@ -1,33 +1,36 @@ -import React from "react" +import { useTranslation } from "next-i18next" import { Flex } from "@chakra-ui/react" -import Translation from "../Translation" -import Emoji from "../Emoji" -import Link from "../Link" -import Text from "../OldText" +import Emoji from "@/components/Emoji" +import Link from "@/components/Link" +import Text from "@/components/OldText" -interface Props { +type AssetDownloadArtistProps = { artistName: string artistUrl?: string } -const AssetDownloadArtist = ({ artistName, artistUrl }: Props) => { +const AssetDownloadArtist = ({ + artistName, + artistUrl, +}: AssetDownloadArtistProps) => { + const { t } = useTranslation("page-assets") return ( - - - + + + {t("page-assets-download-artist")} {artistUrl && {artistName}} - {!artistUrl && {artistName}} + {!artistUrl && {artistName}} ) } diff --git a/src/components/AssetDownload/AssetDownloadImage.tsx b/src/components/AssetDownload/AssetDownloadImage.tsx index 75fd14f8a4e..aa374017cf1 100644 --- a/src/components/AssetDownload/AssetDownloadImage.tsx +++ b/src/components/AssetDownload/AssetDownloadImage.tsx @@ -1,27 +1,16 @@ -import React from "react" import { Center } from "@chakra-ui/react" -import GatsbyImage from "../GatsbyImage" -import { getImage, ImageDataLike } from "../../utils/image" +import { Image, type ImageProps } from "@/components/Image" -interface Props { - image?: ImageDataLike | null +interface AssetDownloadImageProps { + image: ImageProps["src"] alt: string } -const AssetDownloadImage = ({ image, alt }: Props) => { - return ( -
- {image && ( - - )} -
- ) -} +const AssetDownloadImage = ({ image, alt }: AssetDownloadImageProps) => ( +
+ {alt} +
+) export default AssetDownloadImage diff --git a/src/components/AssetDownload/index.tsx b/src/components/AssetDownload/index.tsx index c45573a279d..6943ddf484b 100644 --- a/src/components/AssetDownload/index.tsx +++ b/src/components/AssetDownload/index.tsx @@ -1,41 +1,44 @@ -// Libraries -import React from "react" -import { Box, Flex, FlexProps } from "@chakra-ui/react" +import { extname } from "path" -// Components -import Translation from "../Translation" -import { ButtonLink } from "../Buttons" -import AssetDownloadImage from "./AssetDownloadImage" -import AssetDownloadArtist from "./AssetDownloadArtist" -import OldHeading from "../OldHeading" +import type { StaticImageData } from "next/image" +import { useTranslation } from "next-i18next" +import { Box, Flex, type FlexProps } from "@chakra-ui/react" -// Utils -import { getSrc, ImageDataLike } from "../../utils/image" -import { trackCustomEvent } from "../../utils/matomo" +import AssetDownloadArtist from "@/components/AssetDownload/AssetDownloadArtist" +import AssetDownloadImage from "@/components/AssetDownload/AssetDownloadImage" +import { ButtonLink } from "@/components/Buttons" +import type { ImageProps } from "@/components/Image" +import OldHeading from "@/components/OldHeading" -export interface IProps extends FlexProps { +import { trackCustomEvent } from "@/lib/utils/matomo" + +type AssetDownloadProps = { + title: string alt: string artistName?: string artistUrl?: string - src?: string - title: string + image: ImageProps["src"] svgUrl?: string - image?: ImageDataLike | null -} +} & FlexProps -const AssetDownload: React.FC = ({ +const AssetDownload = ({ alt, artistName, artistUrl, image, - src, title, svgUrl, - ...rest -}) => { - const baseUrl = `https://ethereum.org` - const downloadUri = src ? src : image ? getSrc(image) : "" - const downloadUrl = `${baseUrl}${downloadUri}` + ...props +}: AssetDownloadProps) => { + const { t } = useTranslation(["page-assets"]) + const matomoHandler = () => { + trackCustomEvent({ + eventCategory: "asset download button", + eventAction: "click", + eventName: title, + }) + } + const imgSrc = (image as StaticImageData).src return ( = ({ justifyContent="space-between" m={4} p={0} - {...rest} + {...props} > {title} @@ -55,34 +58,13 @@ const AssetDownload: React.FC = ({ )}
- {downloadUrl && ( - { - trackCustomEvent({ - eventCategory: "asset download button", - eventAction: "click", - eventName: title, - }) - }} - > - - <> (PNG) - - )} + + {t("page-assets-download-download")} ( + {extname(imgSrc).slice(1).toUpperCase()}) + {svgUrl && ( - { - trackCustomEvent({ - eventCategory: "asset download button", - eventAction: "click", - eventName: title, - }) - }} - > - - <> (SVG) + + {t("page-assets-download-download")} (SVG) )} diff --git a/src/components/Avatar/Avatar.stories.tsx b/src/components/Avatar/Avatar.stories.tsx index c8aeba32496..6b9e4bf2083 100644 --- a/src/components/Avatar/Avatar.stories.tsx +++ b/src/components/Avatar/Avatar.stories.tsx @@ -1,6 +1,7 @@ import * as React from "react" +import { AvatarGroup, HStack,VStack } from "@chakra-ui/react" import { Meta, StoryObj } from "@storybook/react" -import { VStack, AvatarGroup, HStack } from "@chakra-ui/react" + import Avatar from "." type AvatarType = typeof Avatar @@ -59,13 +60,13 @@ export const WithUsername: Story = { render: (args) => ( - {["md", "sm"].map((size) => ( - + {["md", "sm"].map((size, idx) => ( + ))} - {["md", "sm"].map((size) => ( - + {["md", "sm"].map((size, idx) => ( + ))} diff --git a/src/components/Avatar/index.tsx b/src/components/Avatar/index.tsx index 13bad6186da..7bec3a4dd45 100644 --- a/src/components/Avatar/index.tsx +++ b/src/components/Avatar/index.tsx @@ -1,17 +1,17 @@ import * as React from "react" +import { RxExternalLink } from "react-icons/rx" import { Avatar as ChakraAvatar, AvatarProps, Center, - CenterProps, - FlexProps, forwardRef, LinkBox, LinkOverlay, LinkProps, ThemingProps, } from "@chakra-ui/react" -import { RxExternalLink } from "react-icons/rx" + +import { useRtlFlip } from "../../hooks/useRtlFlip" import { BaseLink } from "../Link" type AssignAvatarProps = Required> & @@ -26,6 +26,7 @@ type AvatarLinkProps = AssignAvatarProps & const Avatar = forwardRef((props, ref) => { const { href, src, name, size = "md", label, direction = "row" } = props + const { flipForRtl } = useRtlFlip() const avatarProps = { src, @@ -56,7 +57,7 @@ const Avatar = forwardRef((props, ref) => { {...linkProps} > {label} - + diff --git a/src/components/BannerGrid/index.tsx b/src/components/BannerGrid/index.tsx index 2801e2f6c54..31dcdf3886f 100644 --- a/src/components/BannerGrid/index.tsx +++ b/src/components/BannerGrid/index.tsx @@ -1,5 +1,5 @@ -import { Box, Flex, Grid, useToken } from "@chakra-ui/react" import React from "react" +import { Box, Flex, Grid, useToken } from "@chakra-ui/react" export type Props = { children: React.ReactNode @@ -72,8 +72,8 @@ export const BannerGridCell: React.FC = ({ children }) => { direction="column" borderTop="1px solid" borderTopColor="searchBackground" - borderLeft={{ base: 0, md: "1px solid" }} - borderLeftColor={{ md: "searchBackground" }} + borderInlineStart={{ base: 0, md: "1px solid" }} + borderInlineStartColor={{ md: "searchBackground" }} sx={{ "&:first-child": { borderTop: 0, @@ -83,21 +83,21 @@ export const BannerGridCell: React.FC = ({ children }) => { borderTop: 0, }, "&:nth-child(2n + 1)": { - borderLeft: 0, + borderInlineStart: 0, }, }, [`@media (min-width: ${lgBp})`]: { "&:first-child": { - paddingLeft: 0, - borderLeft: 0, + ps: 0, + borderInlineStart: 0, }, "&:nth-child(-n + 2)": { borderTop: "1px solid", borderTopColor: "searchBackground", }, "&:nth-child(2n + 1)": { - borderLeft: "1px solid", - borderLeftColor: "searchBackground", + borderInlineStart: "1px solid", + borderInlineStartColor: "searchBackground", }, "&:nth-child(-n + 3)": { borderTop: 0, @@ -105,8 +105,8 @@ export const BannerGridCell: React.FC = ({ children }) => { paddingTop: 0, }, "&:nth-child(3n + 1)": { - paddingLeft: 0, - borderLeft: 0, + ps: 0, + borderInlineStart: 0, }, "&:nth-child(n + 4)": { justifyContent: "start", diff --git a/src/components/BannerNotification/BannerNotification.stories.tsx b/src/components/BannerNotification/BannerNotification.stories.tsx index 39c3cdad86f..bf54836d142 100644 --- a/src/components/BannerNotification/BannerNotification.stories.tsx +++ b/src/components/BannerNotification/BannerNotification.stories.tsx @@ -1,7 +1,8 @@ import React from "react" +import { useTranslation } from "next-i18next" import { Text } from "@chakra-ui/react" import { Meta, StoryFn } from "@storybook/react" -import { useTranslation } from "react-i18next" + import BannerNotification from "." export default { @@ -17,7 +18,7 @@ export default { * and content from `../../content/developers/tutorials/hello-world-smart-contract-fullstack/index.md` */ export const PostMergeBanner: StoryFn = (args) => { - const { t } = useTranslation() + const { t } = useTranslation("page-upgrades") return ( diff --git a/src/components/BannerNotification/DismissableBanner.stories.tsx b/src/components/BannerNotification/DismissableBanner.stories.tsx index 7a5d17575c3..08fcbab48ef 100644 --- a/src/components/BannerNotification/DismissableBanner.stories.tsx +++ b/src/components/BannerNotification/DismissableBanner.stories.tsx @@ -1,5 +1,6 @@ -import { Meta, StoryObj } from "@storybook/react" import React from "react" +import { Meta, StoryObj } from "@storybook/react" + import DismissableBanner from "../Banners/DismissableBanner" export default { @@ -19,10 +20,9 @@ export const DismissableBannerStory: StoryObj = { render: () => { const children =
{bannerText}
return ( - + + {children} + ) }, } diff --git a/src/components/BannerNotification/index.tsx b/src/components/BannerNotification/index.tsx index 40da826d0ff..550599796de 100644 --- a/src/components/BannerNotification/index.tsx +++ b/src/components/BannerNotification/index.tsx @@ -1,5 +1,6 @@ import React from "react" import { Center, FlexProps, useMediaQuery } from "@chakra-ui/react" + import { lightTheme as oldTheme } from "../../theme" export interface IProps extends FlexProps { diff --git a/src/components/Banners/DismissableBanner.tsx b/src/components/Banners/DismissableBanner.tsx index 8c601458926..5b49f94d425 100644 --- a/src/components/Banners/DismissableBanner.tsx +++ b/src/components/Banners/DismissableBanner.tsx @@ -17,7 +17,7 @@ const DismissableBanner: React.FC = ({ children, storageKey }) => { useEffect(() => { const isDismissed = localStorage.getItem(storageKey) === "true" setShow(!isDismissed) - }, []) + }, [storageKey]) const onClose = () => { localStorage.setItem(storageKey, "true") diff --git a/src/components/Banners/PostMergeBanner.tsx b/src/components/Banners/PostMergeBanner.tsx index dbc165c8dac..2d79778e466 100644 --- a/src/components/Banners/PostMergeBanner.tsx +++ b/src/components/Banners/PostMergeBanner.tsx @@ -1,11 +1,11 @@ import React from "react" import { Text } from "@chakra-ui/react" +import type { TranslationKey } from "@/lib/types" + import BannerNotification from "../BannerNotification" import Translation from "../Translation" -import { TranslationKey } from "../../utils/translations" - export interface IProps { translationString: TranslationKey } diff --git a/src/components/BaseStories/Checkbox.stories.tsx b/src/components/BaseStories/Checkbox.stories.tsx index a11e99e6df9..e8f8c508665 100644 --- a/src/components/BaseStories/Checkbox.stories.tsx +++ b/src/components/BaseStories/Checkbox.stories.tsx @@ -1,7 +1,7 @@ import * as React from "react" import { - CheckboxGroup, Checkbox as CheckboxComponent, + CheckboxGroup, VStack, } from "@chakra-ui/react" import { Meta, StoryObj } from "@storybook/react" diff --git a/src/components/BaseStories/Heading.stories.tsx b/src/components/BaseStories/Heading.stories.tsx index 8818f6ff3d5..b8b6914ae86 100644 --- a/src/components/BaseStories/Heading.stories.tsx +++ b/src/components/BaseStories/Heading.stories.tsx @@ -8,6 +8,7 @@ import { VStack, } from "@chakra-ui/react" import { Meta, StoryObj } from "@storybook/react" + import Translation from "../Translation" type HeadingType = typeof HeadingComponent @@ -67,13 +68,13 @@ const headingScale: Array = [ export const Heading: Story = { args: { - children: , + children: , }, render: (args) => ( - Adjust the viewport to below "md" to see the font size and line height - change + Adjust the viewport to below "md" to see the font size and + line height change {headingScale.map((obj, idx) => ( @@ -81,10 +82,10 @@ export const Heading: Story = { - {obj.size || "xl"} + {(obj.size as string) || "xl"} {args.children} diff --git a/src/components/BaseStories/Link.stories.tsx b/src/components/BaseStories/Link.stories.tsx index d5026664c1a..c2ae9822ba0 100644 --- a/src/components/BaseStories/Link.stories.tsx +++ b/src/components/BaseStories/Link.stories.tsx @@ -1,6 +1,7 @@ import * as React from "react" import { Center, ListItem, Stack, Text, UnorderedList } from "@chakra-ui/react" import { Meta, StoryObj } from "@storybook/react" + import Link from "../Link" type LinkType = typeof Link @@ -24,9 +25,9 @@ type Story = StoryObj const MockParagraph = ({ to }: { to?: string }) => ( Text body normal. Ethereum is open access to digital money and data-friendly - services for everyone – no matter your background or location. It's a{" "} - community-built technology behind the cryptocurrency - ether (ETH) and thousands of applications you can use today. + services for everyone – no matter your background or location. + It's a community-built technology behind the + cryptocurrency ether (ETH) and thousands of applications you can use today. ) @@ -49,9 +50,10 @@ export const LinkList: Story = { Text body normal. Ethereum is open access to digital money and - data-friendly services for everyone – no matter your background or - location. It's a community-built technology behind the cryptocurrency - ether (ETH) and thousands of applications you can use today. + data-friendly services for everyone – no matter your background or + location. It's a community-built technology behind the + cryptocurrency ether (ETH) and thousands of applications you can use + today. {Array.from({ length: 9 }).map((_, idx) => ( diff --git a/src/components/BaseStories/Radio.stories.tsx b/src/components/BaseStories/Radio.stories.tsx index 6df29547968..41cc0631104 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, Flex } from "@chakra-ui/react" +import { Flex,Radio as RadioComponent, RadioGroup } from "@chakra-ui/react" import { Meta, StoryObj } from "@storybook/react" type RadioType = typeof RadioComponent diff --git a/src/components/BaseStories/Text.stories.tsx b/src/components/BaseStories/Text.stories.tsx index 3163e1471c6..86cf6139a9c 100644 --- a/src/components/BaseStories/Text.stories.tsx +++ b/src/components/BaseStories/Text.stories.tsx @@ -9,7 +9,9 @@ import { VStack, } from "@chakra-ui/react" import { Meta, StoryObj } from "@storybook/react" -import components from "../../@chakra-ui/gatsby-plugin/components" + +import components from "@/@chakra-ui/components" + import Translation from "../Translation" type TextType = typeof Text @@ -35,21 +37,23 @@ type Story = StoryObj const textSizes = components.Text.sizes +const SINGLE_TEXT_CHILD = + export const Normal: Story = { args: { - children: , + children: SINGLE_TEXT_CHILD, }, render: (args) => { return ( - Adjust the viewport to below "md" to see the font size and line height - change + Adjust the viewport to below "md" to see the font size and + line height change {Object.keys(textSizes || {}).map((key, idx) => ( - + {key} @@ -63,20 +67,20 @@ export const Normal: Story = { export const Bold: Story = { args: { - children: , + children: SINGLE_TEXT_CHILD, fontWeight: "bold", }, render: (args) => { return ( - Adjust the viewport to below "md" to see the font size and line height - change + Adjust the viewport to below "md" to see the font size and + line height change {Object.keys(textSizes || {}).map((key, idx) => ( - + {key} @@ -89,20 +93,20 @@ export const Bold: Story = { } export const Italic: Story = { args: { - children: , + children: SINGLE_TEXT_CHILD, fontStyle: "italic", }, render: (args) => { return ( - Adjust the viewport to below "md" to see the font size and line height - change + Adjust the viewport to below "md" to see the font size and + line height change {Object.keys(textSizes || {}).map((key, idx) => ( - + {key} @@ -116,19 +120,19 @@ export const Italic: Story = { export const Link: StoryObj = { args: { - children: , + children: SINGLE_TEXT_CHILD, }, render: (args) => { return ( - Adjust the viewport to below "md" to see the font size and line height - change + Adjust the viewport to below "md" to see the font size and + line height change {Object.keys(textSizes || {}).map((key, idx) => ( - + {key} @@ -146,8 +150,9 @@ export const BodyCopy: Story = { Text body normal. Ethereum is open access to digital money and data-friendly services for everyone - no matter your background or - location. It's a community-built technology behind the cryptocurrency - ether (ETH) and thousands of applications you can use today! + location. It's a community-built technology behind the + cryptocurrency ether (ETH) and thousands of applications you can use + today! ), diff --git a/src/components/BeaconChainActions.tsx b/src/components/BeaconChainActions.tsx index 026fae94968..71322d4246d 100644 --- a/src/components/BeaconChainActions.tsx +++ b/src/components/BeaconChainActions.tsx @@ -1,17 +1,14 @@ -import React from "react" +import { useTranslation } from "next-i18next" import { Box, Flex } from "@chakra-ui/react" -import { useStaticQuery, graphql } from "gatsby" -import { useTranslation } from "gatsby-plugin-react-i18next" -import { getImage, ImageDataLike } from "../utils/image" +import { ButtonLink } from "@/components/Buttons" +import Card from "@/components/Card" +import CardList, { type CardListItem } from "@/components/CardList" +import OldHeading from "@/components/OldHeading" +import Translation from "@/components/Translation" -import CardList from "./CardList" -import Card from "./Card" -import { ButtonLink } from "./Buttons" -import Translation from "./Translation" -import OldHeading from "./OldHeading" - -import type { CardListItem } from "./CardList" +import beaconchain from "@/public/upgrades/beaconchainemoji.png" +import beaconscan from "@/public/upgrades/etherscan.png" const H3: React.FC<{ children: React.ReactNode }> = ({ children }) => ( = ({ children }) => ( ) -export const DataLogo = graphql` - fragment DataLogo on File { - childImageSharp { - gatsbyImageData( - width: 24 - layout: FIXED - placeholder: BLURRED - quality: 100 - ) - } - } -` - -const BeaconStaticQuery = graphql` - query { - beaconscan: file(relativePath: { eq: "upgrades/etherscan.png" }) { - ...DataLogo - } - beaconchain: file(relativePath: { eq: "upgrades/beaconchainemoji.png" }) { - ...DataLogo - } - } -` - -type BeaconQueryTypes = { - beaconscan: ImageDataLike | null - beaconchain: ImageDataLike | null -} - const BeaconChainActions: React.FC = () => { - const { t } = useTranslation() - const data = useStaticQuery(BeaconStaticQuery) + const { t } = useTranslation(["page-upgrades-index", "page-upgrades"]) - const datapoints: Array = [ + const datapoints: CardListItem[] = [ { title: t("consensus-beaconscan-title"), - image: getImage(data.beaconscan)!, + image: beaconscan, alt: "", link: "https://beaconscan.com", description: t("consensus-beaconscan-desc"), }, { title: t("consensus-beaconscan-in-title"), - image: getImage(data.beaconchain)!, + image: beaconchain, alt: "", link: "https://beaconcha.in", description: t("consensus-beaconcha-in-desc"), @@ -76,7 +43,7 @@ const BeaconChainActions: React.FC = () => { ] //TODO: we should refactor the naming here instead of using authors into the description field - const reads: Array = [ + const reads: CardListItem[] = [ { title: t("page-upgrade-article-title-two-point-oh"), description: t("page-upgrade-article-author-status"), @@ -99,8 +66,8 @@ const BeaconChainActions: React.FC = () => { = { +const meta: Meta = { title: "Molecules / Navigation / Breadcrumbs", component: BreadcrumbsComponent, } diff --git a/src/components/Breadcrumbs/index.tsx b/src/components/Breadcrumbs/index.tsx index d5269e15dce..1a55595e93f 100644 --- a/src/components/Breadcrumbs/index.tsx +++ b/src/components/Breadcrumbs/index.tsx @@ -1,20 +1,20 @@ -import React from "react" -import { useTranslation, useI18next } from "gatsby-plugin-react-i18next" +import { useRouter } from "next/router" +import { useTranslation } from "next-i18next" import { Breadcrumb, BreadcrumbItem, BreadcrumbLink, - BreadcrumbProps, + type BreadcrumbProps as ChakraBreadcrumbProps, } from "@chakra-ui/react" -import { BaseLink } from "../Link" +import { BaseLink } from "@/components/Link" -export interface IProps extends BreadcrumbProps { +export type BreadcrumbsProps = ChakraBreadcrumbProps & { slug: string startDepth?: number } -interface Crumb { +type Crumb = { fullPath: string text: string } @@ -32,17 +32,16 @@ interface Crumb { // { fullPath: "/en/eth2/", text: "ETH2" }, // { fullPath: "/en/eth2/proof-of-stake/", text: "PROOF OF STAKE" }, // ] -const Breadcrumbs: React.FC = ({ +const Breadcrumbs = ({ slug: originalSlug, startDepth = 0, - ...restProps -}) => { - const { t } = useTranslation() - const { language } = useI18next() - - const hasHome = originalSlug.includes(`/${language}/`) - const slug = originalSlug.replace(`/${language}/`, "/") + ...props +}: BreadcrumbsProps) => { + const { t } = useTranslation("common") + const { locale, asPath } = useRouter() + const hasHome = asPath !== "/" + const slug = originalSlug.replace(`/${locale}/`, "/") const slugChunk = slug.split("/") const sliced = slugChunk.filter((item) => !!item) @@ -57,28 +56,27 @@ const Breadcrumbs: React.FC = ({ ] : []), , - ...sliced.map((path, idx) => { - return { - fullPath: slugChunk.slice(0, idx + 2).join("/") + "/", - text: t(path), - } - }), + ...sliced.map((path, idx) => ({ + fullPath: slugChunk.slice(0, idx + 2).join("/") + "/", + text: t(path), + })), ] .filter((item): item is Crumb => !!item) .slice(startDepth) return ( - - {crumbs.map((crumb, idx) => { - const isCurrentPage = slug === crumb.fullPath + + {crumbs.map(({ fullPath, text }) => { + const isCurrentPage = slug === fullPath return ( - + - {crumb.text.toUpperCase()} + {text} ) diff --git a/src/components/BugBountyCards.tsx b/src/components/BugBountyCards.tsx index c0dc5eadb7d..28ea4dbfb8b 100644 --- a/src/components/BugBountyCards.tsx +++ b/src/components/BugBountyCards.tsx @@ -1,32 +1,31 @@ -import React from "react" +import { useTranslation } from "next-i18next" import { + Box, + type BoxProps, Center, - CenterProps, + type CenterProps, + Divider, Flex, - FlexProps, + type FlexProps, Heading, - HeadingProps, - TextProps, - Divider, - Box, - BoxProps, + type HeadingProps, + type TextProps, useToken, } from "@chakra-ui/react" -import { TranslationKey } from "../utils/translations" -import { ButtonLink } from "./Buttons" -import Text from "./OldText" +import type { ChildOnlyProp, TranslationKey } from "@/lib/types" -import Translation from "./Translation" +import { ButtonLink, type ButtonLinkProps } from "@/components/Buttons" +import Text from "@/components/OldText" -const CardRow = ({ children }) => ( - +const CardRow = ({ children }: ChildOnlyProp) => ( + {children} ) -const SubmitBugBountyButton = ({ children, ...props }) => ( - +const SubmitBugBountyButton = ({ children, ...props }: ButtonLinkProps) => ( + {children} ) @@ -41,10 +40,11 @@ const Card = ({ children, ...props }: FlexProps) => { justifyContent="space-between" bg="background.base" borderRadius="2px" + borderRad boxShadow={tableBoxShadow} border="1px solid" borderColor="border" - m={4} + m="4" _hover={{ borderRadius: "base", boxShadow: "tableBoxHover", @@ -89,15 +89,15 @@ const Label = ({ children, variant = "medium", ...props }: LabelProps) => { return (
{ ) } -const H2 = ({ children, ...props }: HeadingProps) => { - return ( - - {children} - - ) -} +const H2 = ({ children, ...props }: HeadingProps) => ( + + {children} + +) -const Description = ({ children, ...props }: TextProps) => { - return ( - - {children} - - ) -} +const Description = ({ children, ...props }: TextProps) => ( + + {children} + +) -const SubHeader = ({ children, ...props }: TextProps) => { - return ( - - {children} - - ) -} +const SubHeader = ({ children, ...props }: TextProps) => ( + + {children} + +) -const TextBox = ({ children, ...props }: BoxProps) => { - return ( - - {children} - - ) -} +const TextBox = ({ children, ...props }: BoxProps) => ( + + {children} + +) export interface BugBountyCardInfo { lowLabelTranslationId?: TranslationKey @@ -168,13 +160,13 @@ export interface BugBountyCardInfo { descriptionTranslationId: TranslationKey subDescriptionTranslationId: TranslationKey subHeader1TranslationId: TranslationKey - severityList: Array + severityList: TranslationKey[] subHeader2TranslationId: TranslationKey textTranslationId: TranslationKey styledButtonTranslationId: TranslationKey } -const bugBountyCardsInfo: Array = [ +const bugBountyCardsInfo: BugBountyCardInfo[] = [ { lowLabelTranslationId: "page-upgrades-bug-bounty-card-label-2", h2TranslationId: "page-upgrades-bug-bounty-card-low", @@ -231,67 +223,51 @@ const bugBountyCardsInfo: Array = [ }, ] -export interface IProps {} - -const BugBountyCards: React.FC = () => ( - - {bugBountyCardsInfo.map((card, idx) => ( - - {card.lowLabelTranslationId && ( - - )} - {card.mediumLabelTranslationId && ( - - )} - {card.highLabelTranslationId && ( - - )} - {card.criticalLabelTranslationId && ( - - )} -

- -

- - - - - - - - - - - -
    - {card.severityList.map((listItemId) => ( -
  • - -
  • - ))} -
-
- - - - - - - - - - -
- ))} -
-) +const BugBountyCards = () => { + const { t } = useTranslation("page-bug-bounty") + return ( + + {bugBountyCardsInfo.map((card, idx) => ( + + {card.lowLabelTranslationId && ( + + )} + {card.mediumLabelTranslationId && ( + + )} + {card.highLabelTranslationId && ( + + )} + {card.criticalLabelTranslationId && ( + + )} +

{t(card.h2TranslationId)}

+ {t(card.descriptionTranslationId)} + {t(card.subDescriptionTranslationId)} + + {t(card.subHeader1TranslationId)} + +
    + {card.severityList.map((listItemId) => ( +
  • + {t(listItemId)} + {/* */} +
  • + ))} +
+
+ + {t(card.subHeader2TranslationId)} + {t(card.textTranslationId)} + + {t(card.styledButtonTranslationId)} + +
+ ))} +
+ ) +} export default BugBountyCards diff --git a/src/components/BugBountyPoints.tsx b/src/components/BugBountyPoints.tsx deleted file mode 100644 index 32331773bad..00000000000 --- a/src/components/BugBountyPoints.tsx +++ /dev/null @@ -1,203 +0,0 @@ -import React, { useState, useEffect } from "react" -import { useTheme } from "@emotion/react" -import { useStaticQuery, graphql } from "gatsby" -import { Box, Flex, Icon } from "@chakra-ui/react" -import axios from "axios" - -import Emoji from "./Emoji" -import Translation from "./Translation" -import InlineLink from "./Link" -import Tooltip from "./Tooltip" -import Text from "./OldText" -import OldHeading from "./OldHeading" -import GatsbyImage from "./GatsbyImage" - -import { getImage } from "../utils/image" -import { MdInfoOutline } from "react-icons/md" - -export const TokenLogo = graphql` - fragment TokenLogo on File { - childImageSharp { - gatsbyImageData( - height: 24 - layout: FIXED - placeholder: BLURRED - quality: 100 - ) - } - } -` - -const USD_PER_POINT = 2 - -interface State { - currentETHPriceUSD: number - currentDAIPriceUSD: number - hasError: boolean -} - -type GetPriceResponse = { - ethereum: { usd: number } - dai: { usd: number } -} - -export interface IProps {} - -const BugBountyPoints: React.FC = () => { - const [state, setState] = useState({ - currentETHPriceUSD: 1, - currentDAIPriceUSD: 1, - hasError: false, - }) - const theme = useTheme() - const isDarkTheme = theme.isDark - - useEffect(() => { - axios - .get( - "https://api.coingecko.com/api/v3/simple/price?ids=ethereum%2Cdai&vs_currencies=usd" - ) - .then((response) => { - if (response.data && response.data.ethereum && response.data.dai) { - const currentETHPriceUSD = response.data.ethereum.usd - const currentDAIPriceUSD = response.data.dai.usd - setState({ - currentETHPriceUSD, - currentDAIPriceUSD, - hasError: false, - }) - } - }) - .catch((error) => { - console.error(error) - setState({ - ...state, - hasError: true, - }) - }) - }, []) - - const isLoading = !state.currentETHPriceUSD - - const pointsInETH = !state.hasError - ? (USD_PER_POINT / state.currentETHPriceUSD!).toFixed(5) - : 0 - const pointsInDAI = !state.hasError - ? (USD_PER_POINT / state.currentDAIPriceUSD!).toFixed(5) - : 0 - - const tooltipContent = ( - - {" "} - - coingecko.com - - - ) - - const data = useStaticQuery(graphql` - query { - dai: file(relativePath: { eq: "upgrades/dai.png" }) { - ...TokenLogo - } - ethLight: file(relativePath: { eq: "upgrades/eth-black.png" }) { - ...TokenLogo - } - ethDark: file(relativePath: { eq: "upgrades/eth-orange.png" }) { - ...TokenLogo - } - } - `) - const ethImage = isDarkTheme ? data.ethDark : data.ethLight - - return ( - - - {" "} - - - - - - - - {state.hasError && ( - - - - - - )} - {isLoading && !state.hasError && ( - - - - - - )} - {!isLoading && !state.hasError && ( - - - - - - - - - - - {pointsInDAI} DAI - - - - - - {pointsInETH} ETH - - - - )} - - - - - - - - - - ) -} - -export default BugBountyPoints diff --git a/src/components/ButtonDropdown.tsx b/src/components/ButtonDropdown.tsx index 1f70bfb3643..fe9dada13df 100644 --- a/src/components/ButtonDropdown.tsx +++ b/src/components/ButtonDropdown.tsx @@ -1,5 +1,5 @@ -// Libraries import React, { MouseEvent } from "react" +import { useTranslation } from "next-i18next" import { MdMenu } from "react-icons/md" import { Button, @@ -10,12 +10,11 @@ import { MenuList, } from "@chakra-ui/react" -// Components -import Link, { BaseLink } from "./Link" -import Translation from "./Translation" - // Utils -import { trackCustomEvent } from "../utils/matomo" +import { trackCustomEvent } from "@/lib/utils/matomo" + +// Components +import { BaseLink } from "./Link" export interface ListItem { text: string @@ -39,6 +38,7 @@ export interface IProps extends ButtonProps { } const ButtonDropdown: React.FC = ({ list, ...rest }) => { + const { t } = useTranslation("common") const handleClick = ( e: MouseEvent, item: ListItem, @@ -55,6 +55,7 @@ const ButtonDropdown: React.FC = ({ list, ...rest }) => { callback(idx) } } + return ( = ({ list, ...rest }) => { _active={{ bg: "transparent" }} {...rest} > - + {t(list.text)} = ({ list, ...rest }) => { border="1px" borderColor="text" bg="dropdownBackground" - zIndex={2} + zIndex="popover" > {list.items.map((item, idx) => { const { text, to } = item @@ -104,12 +105,12 @@ const ButtonDropdown: React.FC = ({ list, ...rest }) => { bg: "dropdownBackgroundHover", }} > - + {t(text)} ) : ( handleClick(e, item, idx)}> - + {t(text)} ) })} diff --git a/src/components/Buttons/Button.stories.tsx b/src/components/Buttons/Button.stories.tsx index a68b7bba49f..71b3dbca1ce 100644 --- a/src/components/Buttons/Button.stories.tsx +++ b/src/components/Buttons/Button.stories.tsx @@ -1,13 +1,15 @@ import * as React from "react" -import { HStack, ThemingProps, Text, VStack } from "@chakra-ui/react" +import { MdChevronRight, MdExpandMore, MdNightlight } from "react-icons/md" +import { HStack, Text, ThemingProps, VStack } from "@chakra-ui/react" import { getThemingArgTypes } from "@chakra-ui/storybook-addon" import { Meta, StoryObj } from "@storybook/react" -import { MdExpandMore, MdChevronRight, MdNightlight } from "react-icons/md" -import theme from "../../@chakra-ui/gatsby-plugin/theme" -import ButtonLink from "./ButtonLink" -import IconButton from "./IconButton" + +import theme from "../../@chakra-ui/theme" import Translation from "../Translation" + import Button from "./Button" +import ButtonLink from "./ButtonLink" +import IconButton from "./IconButton" type ButtonType = typeof Button @@ -41,7 +43,6 @@ const variants: ThemingProps<"Button">["variant"][] = [ export const StyleVariants: Story = { argTypes: { size: { - //@ts-expect-error ...getThemingArgTypes(theme, "Button")?.size, defaultValue: "md", }, @@ -128,7 +129,7 @@ export const OverrideStyles: Story = { } px="1.5" /> - + diff --git a/src/components/Buttons/Button.tsx b/src/components/Buttons/Button.tsx index b09425010b6..fd0ae8a6e65 100644 --- a/src/components/Buttons/Button.tsx +++ b/src/components/Buttons/Button.tsx @@ -1,18 +1,19 @@ -import React from "react" import { Button as ChakraButton, - ButtonProps, + ButtonProps as ChakraButtonProps, forwardRef, } from "@chakra-ui/react" -import { scrollIntoView } from "../../utils/scrollIntoView" -import { type MatomoEventOptions, trackCustomEvent } from "../../utils/matomo" +import { type MatomoEventOptions, trackCustomEvent } from "@/lib/utils/matomo" +import { scrollIntoView } from "@/lib/utils/scrollIntoView" -export const checkIsSecondary = (props: { +export const checkIsSecondary = ({ + variant, + isSecondary, +}: { variant?: string isSecondary?: boolean }) => { - const { variant, isSecondary } = props // These two variants do not have secondary styling, so prevent overrides return { "data-secondary": @@ -20,7 +21,7 @@ export const checkIsSecondary = (props: { } } -export interface IProps extends ButtonProps { +export type ButtonProps = ChakraButtonProps & { /** * Set string value that matches the `id` attribute value used * on another element in a given page. Selecting the button will then @@ -37,24 +38,27 @@ export interface IProps extends ButtonProps { customEventOptions?: MatomoEventOptions } -const Button = forwardRef((props, ref) => { - const { toId, onClick, isSecondary, customEventOptions, ...rest } = props +const Button = forwardRef( + ({ toId, onClick, isSecondary, customEventOptions, ...props }, ref) => { + const handleOnClick = (e: React.MouseEvent) => { + toId && scrollIntoView(toId) + customEventOptions && trackCustomEvent(customEventOptions) - const handleOnClick = (e: React.MouseEvent) => { - toId && scrollIntoView(toId) - customEventOptions && trackCustomEvent(customEventOptions) + onClick?.(e) + } - onClick?.(e) + return ( + + ) } - - return ( - - ) -}) +) export default Button diff --git a/src/components/Buttons/ButtonLink.tsx b/src/components/Buttons/ButtonLink.tsx index bee108a8375..c4ca2be9dd2 100644 --- a/src/components/Buttons/ButtonLink.tsx +++ b/src/components/Buttons/ButtonLink.tsx @@ -1,13 +1,20 @@ -import React from "react" +import Button, { type ButtonProps } from "@/components/Buttons/Button" +import { BaseLink, type LinkProps } from "@/components/Link" -import type { IProps as IButtonProps } from "./Button" -import { BaseLink, IBaseProps as ILinkProps } from "../Link" -import Button from "./Button" +import { type MatomoEventOptions, trackCustomEvent } from "@/lib/utils/matomo" -export interface IProps extends ILinkProps, Omit {} +export type ButtonLinkProps = LinkProps & + Omit & { + customEventOptions?: MatomoEventOptions + } -const ButtonLink: React.FC = (props) => { - return - + ) } diff --git a/src/components/Card/index.tsx b/src/components/Card/index.tsx index 9d8c194acb8..d693f966371 100644 --- a/src/components/Card/index.tsx +++ b/src/components/Card/index.tsx @@ -1,6 +1,7 @@ -import React, { ReactNode } from "react" +import { ReactNode } from "react" import { Heading, Stack, StackProps, Text } from "@chakra-ui/react" -import Emoji from "../Emoji" + +import Emoji from "@/components/Emoji" export interface IProps extends Omit { children?: ReactNode diff --git a/src/components/CardList.tsx b/src/components/CardList.tsx index b5f859ba7c7..5435be44e87 100644 --- a/src/components/CardList.tsx +++ b/src/components/CardList.tsx @@ -1,19 +1,21 @@ -import React, { ReactNode } from "react" -import { IGatsbyImageData } from "gatsby-plugin-image" +import Image, { type ImageProps } from "next/image" +import type { ReactNode } from "react" import { Box, - BoxProps, + type BoxProps, Flex, HStack, LinkBox, LinkOverlay, - StackProps, + type StackProps, useColorModeValue, } from "@chakra-ui/react" -import { BaseLink } from "./Link" -import GatsbyImage from "./GatsbyImage" -import * as url from "../utils/url" +import { BaseLink } from "@/components/Link" + +import * as url from "@/lib/utils/url" + +import { useRtlFlip } from "@/hooks/useRtlFlip" export type CardListItem = { title?: ReactNode @@ -21,44 +23,48 @@ export type CardListItem = { caption?: ReactNode link?: string id?: string - image?: IGatsbyImageData + image?: ImageProps["src"] + imageWidth?: number alt?: string } -export interface IProps extends BoxProps { - items: Array - clickHandler?: (idx: string | number) => void -} - -const CardContainer = (props: StackProps) => { - return ( - - ) -} +const CardContainer = (props: StackProps) => ( + +) -const Card = (props: CardListItem & Omit) => { - const { title, description, caption, link, image, alt, ...rest } = props +type CardProps = CardListItem & Omit +const Card = ({ + title, + description, + caption, + link, + image, + imageWidth = 20, // Set 20px as default image width, can be overrided if needed + alt, + ...props +}: CardProps) => { + const { flipForRtl } = useRtlFlip() const isLink = !!link const isExternal = url.isExternal(link || "") const descriptionColor = useColorModeValue("gray.500", "gray.400") return ( - - {image && } + + {image && {alt} {isLink ? ( ) => { {caption && ( - + {caption} )} - {isExternal && } + {isExternal && } ) } -const CardList: React.FC = ({ +export type CardListProps = BoxProps & { + items: CardProps[] + imageWidth?: number + clickHandler?: (idx: string | number) => void +} + +const CardList = ({ items, + imageWidth, clickHandler = () => null, - ...rest -}) => ( - + ...props +}: CardListProps) => ( + {items.map((listItem, idx) => { const { link, id } = listItem const isLink = !!link return isLink ? ( - + ) : ( ( + +) + +const ResultsContainer = (props: ChildOnlyProp) => ( + *": { + _first: { + me: { base: 0, md: 6 }, + }, + }, + }} + {...props} + /> +) + +const EmptyStateContainer = (props: ChildOnlyProp) => ( +
+) + +const SuccessContainer = (props: ChildOnlyProp) => ( + +) + +const EmptyStateText = (props: ChildOnlyProp) => ( + +) + +const Select = chakra(StyledSelect, { + baseStyle: { maxW: "container.sm" }, +}) + +const NoResults = ({ children }) => ( + + + + {/* TODO: Fix `children` structure to include email link within i18n string */} + {children}{" "} + {WEBSITE_EMAIL}. + + +) + +const NoResultsSingle = ({ children }) => ( +
+ + {/* TODO: Fix `children` structure to include email link within i18n string */} + {children}{" "} + {WEBSITE_EMAIL}. + + +
+) + +type CentralizedExchangesProps = { lastDataUpdateDate: string } + +const CentralizedExchanges = ({ + lastDataUpdateDate, +}: CentralizedExchangesProps) => { + const { t } = useTranslation("page-get-eth") + const { locale } = useRouter() + const { + selectOptions, + handleSelectChange, + hasSelectedCountry, + placeholderString, + hasExchangeResults, + filteredExchanges, + } = useCentralizedExchanges() + + const lastUpdated = getLocaleTimestamp(locale as Lang, lastDataUpdateDate) + + return ( + + + {t("page-get-eth-exchanges-header")} + + + {t("page-get-eth-exchanges-intro")} + + - - - - {String.fromCharCode(97 + index).toUpperCase()} - - - {label} - - - ) -} - -interface IProps { - questionData: Question - showAnswer: boolean - handleSelection: (answerId: string) => void - selectedAnswer: string | null -} - -const QuizRadioGroup: React.FC = ({ - questionData, - showAnswer, - handleSelection, - selectedAnswer, -}) => { - const { t } = useTranslation() - const { getRadioProps, getRootProps } = useRadioGroup({ - onChange: handleSelection, - }) - const { prompt, answers, correctAnswerId } = questionData - - // Memoized values - const explanation = useMemo(() => { - if (!selectedAnswer) return "" - return answers.filter(({ id }) => id === selectedAnswer)[0].explanation - }, [selectedAnswer]) - const isSelectedCorrect = useMemo( - () => correctAnswerId === selectedAnswer, - [selectedAnswer] - ) - - // Render QuizRadioGroup - return ( - - - {t(prompt)} - - - - {answers.map(({ id, label }, index) => { - const display = - !showAnswer || id === selectedAnswer ? "inline-flex" : "none" - return ( - - ) - })} - - - {showAnswer && ( - - - - - {t(explanation)} - - )} - - ) -} - -export default QuizRadioGroup diff --git a/src/components/Quiz/QuizSummary.tsx b/src/components/Quiz/QuizSummary.tsx deleted file mode 100644 index 356c74c4708..00000000000 --- a/src/components/Quiz/QuizSummary.tsx +++ /dev/null @@ -1,112 +0,0 @@ -import React, { useEffect } from "react" -import { - HStack, - StackDivider, - Text, - useMediaQuery, - VStack, -} from "@chakra-ui/react" -import { useI18next } from "gatsby-plugin-react-i18next" - -import Translation from "../Translation" - -import { numberToPercent } from "../../utils/numberToPercent" -import { updateUserStats } from "./utils" -import { UserStats } from "../../types" - -interface IProps { - quizKey: string - numberOfCorrectAnswers: number - isPassingScore: boolean - questionCount: number - ratioCorrect: number - quizScore: number - setUserStats: (stats: UserStats) => void -} - -const QuizSummary: React.FC = ({ - quizKey, - numberOfCorrectAnswers, - isPassingScore, - questionCount, - ratioCorrect, - quizScore, - setUserStats, -}) => { - const { language } = useI18next() - const [largerThanMobile] = useMediaQuery("(min-width: 30em)") - - const valueStyles = { fontWeight: "700", lineHeight: 1 } - const labelStyles = { fontSize: "sm", m: 0, color: "disabled" } - - // QuizSummary is rendered when user has finished the quiz, proper time to update the stats - useEffect(() => { - updateUserStats({ - quizKey, - quizScore, - numberOfCorrectAnswers, - setUserStats, - }) - }, []) - - return ( - - - {isPassingScore ? ( - - ) : ( - - )} - - - div": { - py: "4", - }, - }} - overflowX="hidden" - divider={} - > - - - {numberToPercent(ratioCorrect, language)} - - - - - - - - +{numberOfCorrectAnswers} - - - - - - {largerThanMobile && ( - - {questionCount} - - - - - )} - - - ) -} - -export default QuizSummary diff --git a/src/components/Quiz/QuizWidget/AnswerIcon.tsx b/src/components/Quiz/QuizWidget/AnswerIcon.tsx index a41dffe82ad..8fda2d73908 100644 --- a/src/components/Quiz/QuizWidget/AnswerIcon.tsx +++ b/src/components/Quiz/QuizWidget/AnswerIcon.tsx @@ -1,11 +1,14 @@ -import { Circle, SquareProps } from "@chakra-ui/react" import * as React from "react" -import { ChildOnlyProp } from "../../../types" +import { Circle, SquareProps } from "@chakra-ui/react" + +import { ChildOnlyProp } from "@/lib/types" + import { CorrectIcon, IncorrectIcon, TrophyIcon } from "../../icons/quiz" +import { AnswerStatus } from "./useQuizWidget" + interface AnswerIconProps { - showAnswer: boolean - isCurrentQuestionCorrect: boolean | undefined + answerStatus: AnswerStatus } /** @@ -14,8 +17,7 @@ interface AnswerIconProps { * Defaults to the `TrophyIcon` prior to answering a question */ export const AnswerIcon = ({ - showAnswer, - isCurrentQuestionCorrect, + answerStatus }: AnswerIconProps) => { const commonProps = { color: "neutral", @@ -23,10 +25,10 @@ export const AnswerIcon = ({ const IconWrapper = (props: ChildOnlyProp) => { const getWrapperBg = (): SquareProps["bg"] => { - if (!showAnswer) { + if (!answerStatus) { return "primary.base" } - if (isCurrentQuestionCorrect) { + if (answerStatus === "correct") { return "success.base" } return "error.base" @@ -35,7 +37,7 @@ export const AnswerIcon = ({ return } - if (!showAnswer) { + if (!answerStatus) { return ( @@ -43,7 +45,7 @@ export const AnswerIcon = ({ ) } - if (isCurrentQuestionCorrect) { + if (answerStatus === "correct") { return ( diff --git a/src/components/Quiz/QuizWidget/QuizButtonGroup.tsx b/src/components/Quiz/QuizWidget/QuizButtonGroup.tsx index 1ff2366bf96..b7a5dedd21b 100644 --- a/src/components/Quiz/QuizWidget/QuizButtonGroup.tsx +++ b/src/components/Quiz/QuizWidget/QuizButtonGroup.tsx @@ -1,50 +1,122 @@ -import * as React from "react" -import { Center, Icon } from "@chakra-ui/react" +import { useMemo } from "react" +import { useRouter } from "next/navigation" import { FaTwitter } from "react-icons/fa" -import { Button } from "../../Buttons" -import Translation from "../../Translation" -import { AnswerChoice, Question } from "../../../types" - -export type QuizButtonGroupProps = { - showAnswer: boolean - showResults: boolean - quizScore: number - handleReset: () => void - currentQuestionIndex: number - currentQuestionAnswerChoice: AnswerChoice | null - questions: Question[] - finishedQuiz: boolean - handleRetryQuestion: () => void - handleShare: () => void - handleNextQuiz: () => void - hasNextQuiz: boolean - handleContinue: () => void - handleSubmitAnswer: (questionId: string, answerChoice: AnswerChoice) => void -} +import { Center, Icon } from "@chakra-ui/react" + +import { Button } from "@/components/Buttons" +import Translation from "@/components/Translation" + +import { trackCustomEvent } from "@/lib/utils/matomo" + +import { useQuizWidgetContext } from "./context" + +export const QuizButtonGroup = () => { + const { + showResults, + initialize: handleReset, + currentQuestionAnswerChoice, + title, + questions, + currentQuestionIndex, + quizPageProps, + answerStatus, + numberOfCorrectAnswers, + userQuizProgress, + quizScore, + setCurrentQuestionAnswerChoice, + setUserQuizProgress, + setShowAnswer, + } = useQuizWidgetContext() + + const finishedQuiz = useMemo( + () => userQuizProgress.length === questions.length! - 1, + [questions.length, userQuizProgress.length] + ) + + const handleShare = () => { + if (!window) return + + trackCustomEvent({ + eventCategory: "quiz_hub_events", + eventAction: "Secondary button clicks", + eventName: "Twitter_share_quiz", + }) + + const url = `https://ethereum.org${window.location.pathname}%23quiz` + const hashtags = ["ethereumquiz", "ethereum", "quiz"] + const tweet = `${encodeURI( + `I just took the "${title}" quiz on ethereum.org and scored ${numberOfCorrectAnswers} out of ${questions.length}! Try it yourself at ${url}` + )}` + + window.open( + `https://twitter.com/intent/tweet?text=${tweet}&hashtags=${hashtags}` + ) + } + + const handleSubmitAnswer = () => { + if (!currentQuestionAnswerChoice) return + + trackCustomEvent({ + eventCategory: "Quiz widget", + eventAction: "Question answered", + eventName: `QID: ${questions[currentQuestionIndex].id}`, + eventValue: currentQuestionAnswerChoice.isCorrect ? "1" : "0", + }) + + setShowAnswer(true) -export const QuizButtonGroup = ({ - showAnswer, - showResults, - quizScore, - questions, - handleReset, - currentQuestionIndex, - currentQuestionAnswerChoice, - finishedQuiz, - handleRetryQuestion, - handleShare, - handleNextQuiz, - hasNextQuiz, - handleContinue, - handleSubmitAnswer, -}: QuizButtonGroupProps) => { - const hasFailedAnswer = - currentQuestionAnswerChoice && !currentQuestionAnswerChoice.isCorrect + if (!!quizPageProps) { + if (currentQuestionAnswerChoice.isCorrect) { + return quizPageProps.statusHandler?.("success") + } + + return quizPageProps.statusHandler?.("error") + } + } + + const handleRetryQuestion = () => { + trackCustomEvent({ + eventCategory: "Quiz widget", + eventAction: "Other", + eventName: "Retry question", + }) + + setCurrentQuestionAnswerChoice(null) + setShowAnswer(false) + + if (quizPageProps) { + quizPageProps.statusHandler("neutral") + } + } + + const handleContinue = () => { + if (!currentQuestionAnswerChoice) return + + setUserQuizProgress((prev) => [...prev, currentQuestionAnswerChoice]) + setCurrentQuestionAnswerChoice(null) + setShowAnswer(false) + + // Reset quiz status (modifies bg color for mobile) + if (quizPageProps) { + quizPageProps.statusHandler("neutral") + } + + if (finishedQuiz) { + trackCustomEvent({ + eventCategory: "Quiz widget", + eventAction: "Other", + eventName: "Submit results", + eventValue: `${quizScore}%`, + }) + } + } const hasNotPerfectQuizScore = quizScore < 100 const MainButtons = () => { if (showResults) { + const hasNextQuiz = quizPageProps && !!quizPageProps.nextQuiz + return ( <>
} onClick={handleShare} > - + {/* Show `Next Quiz` button if quiz is opened from hub page */} {hasNextQuiz && ( - )}
@@ -75,23 +151,29 @@ export const QuizButtonGroup = ({ fontWeight="bold" textDecoration="underline" > - + ) : null} ) } - if (showAnswer) { + if (answerStatus) { return ( <> - {hasFailedAnswer ? ( + {answerStatus === "incorrect" && ( - ) : null} + )} ) @@ -99,20 +181,14 @@ export const QuizButtonGroup = ({ return ( ) } - // Render QuizButtonGroup component return (
{ @@ -10,9 +11,9 @@ export const QuizConfetti = () => { } return ( <> - + - + ) } diff --git a/src/components/Quiz/QuizWidget/QuizContent.tsx b/src/components/Quiz/QuizWidget/QuizContent.tsx index dcff6123c80..35eb5978e44 100644 --- a/src/components/Quiz/QuizWidget/QuizContent.tsx +++ b/src/components/Quiz/QuizWidget/QuizContent.tsx @@ -1,100 +1,32 @@ -import * as React from "react" -import { Center, Container, Text, TextProps, VStack } from "@chakra-ui/react" -import QuizSummary from "../QuizSummary" -import QuizRadioGroup from "../QuizRadioGroup" -import { PROGRESS_BAR_GAP } from "../../../constants" -import { Question } from "../../../types" +import { useCallback } from "react" +import { Text, type TextProps, VStack } from "@chakra-ui/react" -export type QuizContentProps = { - showAnswer: boolean - showResults: boolean - isCurrentQuestionCorrect: boolean | undefined - questions: Question[] - title: string - progressBarBackground: (index: number) => string - quizSummaryProps: Omit< - React.ComponentPropsWithoutRef, - "quizData" - > - currentQuestionIndex: number - quizRadioGroupProps: Omit< - React.ComponentPropsWithoutRef, - "questionData" | "showAnswer" - > -} +import { ChildOnlyProp } from "@/lib/types" -export const QuizContent = ({ - showAnswer, - isCurrentQuestionCorrect, - questions, - title, - progressBarBackground, - showResults, - quizSummaryProps, - currentQuestionIndex, - quizRadioGroupProps, -}: QuizContentProps) => { - const getTitleTextColor = (): TextProps["color"] => { - if (showAnswer) { - return isCurrentQuestionCorrect ? "success.base" : "fail.base" - } +import { useQuizWidgetContext } from "./context" - return "primary.hover" - } +type QuizContentProps = ChildOnlyProp + +export const QuizContent = ({ children }: QuizContentProps) => { + const { answerStatus, title } = useQuizWidgetContext() + + const getTitleContent = useCallback((): string => { + if (!answerStatus) return title - const getTitleContent = (): string => { - if (showAnswer) { - return isCurrentQuestionCorrect ? "Correct!" : "Incorrect" - } + return answerStatus === "correct" ? "Correct!" : "Incorrect" + }, [answerStatus, title]) - return title + const getTitleTextColor = (): TextProps["color"] => { + if (!answerStatus) return "primary.hover" + return answerStatus === "correct" ? "success.base" : "fail.base" } return ( - {/* Quiz title */} - - + {getTitleContent()} - - {!showResults ? ( - <> - {/* Progress bar */} -
- {questions.map(({ id }, index) => { - /* Calculate width percent based on number of questions */ - const width = `calc(${Math.floor( - 100 / questions.length - )}% - ${PROGRESS_BAR_GAP})` - - return ( - - ) - })} -
- - - ) : ( - - )} + {children}
) } diff --git a/src/components/Quiz/QuizWidget/QuizProgressBar.tsx b/src/components/Quiz/QuizWidget/QuizProgressBar.tsx new file mode 100644 index 00000000000..102c4f66984 --- /dev/null +++ b/src/components/Quiz/QuizWidget/QuizProgressBar.tsx @@ -0,0 +1,60 @@ +import { useCallback } from "react" +import { Center, ChakraProps, Container } from "@chakra-ui/react" + +import { PROGRESS_BAR_GAP } from "@/lib/constants" + +import { useQuizWidgetContext } from "./context" + +export const QuizProgressBar = () => { + const { questions, answerStatus, currentQuestionIndex, userQuizProgress } = + useQuizWidgetContext() + + const progressBarBackground = useCallback( + (index: number): ChakraProps["bg"] => { + if ( + (answerStatus && + index === currentQuestionIndex && + answerStatus === "correct") || + userQuizProgress[index]?.isCorrect + ) { + return "success.base" + } + + if ( + (answerStatus === "incorrect" && index === currentQuestionIndex) || + (userQuizProgress[index] && !userQuizProgress[index].isCorrect) + ) { + return "error.base" + } + + if (index === currentQuestionIndex) { + return "gray.400" + } + + return "gray.500" + }, + [answerStatus, currentQuestionIndex, userQuizProgress] + ) + return ( +
+ {questions.map(({ id }, idx, arr) => { + /* Calculate width percent based on number of questions */ + const width = `calc(${Math.floor( + 100 / arr.length + )}% - ${PROGRESS_BAR_GAP})` + + return ( + + ) + })} +
+ ) +} diff --git a/src/components/Quiz/QuizWidget/QuizRadioGroup.tsx b/src/components/Quiz/QuizWidget/QuizRadioGroup.tsx new file mode 100644 index 00000000000..0e35c0cd15f --- /dev/null +++ b/src/components/Quiz/QuizWidget/QuizRadioGroup.tsx @@ -0,0 +1,187 @@ +import { useMemo } from "react" +import { useTranslation } from "next-i18next" +import { + Box, + chakra, + ChakraProps, + Circle, + HStack, + Stack, + Text, + useRadio, + useRadioGroup, + UseRadioProps, + useToken, + VisuallyHidden, +} from "@chakra-ui/react" + +import { TranslationKey } from "@/lib/types" + +import { useQuizWidgetContext } from "./context" + +export const QuizRadioGroup = () => { + const { + questions, + currentQuestionIndex, + answerStatus, + setCurrentQuestionAnswerChoice, + } = useQuizWidgetContext() + const { t } = useTranslation("learn-quizzes") + + const handleSelection = (answerId: string) => { + const isCorrect = + answerId === questions[currentQuestionIndex].correctAnswerId + setCurrentQuestionAnswerChoice({ answerId, isCorrect }) + } + + const { + getRadioProps, + getRootProps, + value: selectedAnswer, + } = useRadioGroup({ + name: `quiz-question-${currentQuestionIndex}`, + onChange: handleSelection, + }) + + const { answers, correctAnswerId, prompt } = questions[currentQuestionIndex] + + // Memoized values + const explanation = useMemo(() => { + if (selectedAnswer === "") return "" + return answers.filter(({ id }) => id === selectedAnswer)[0].explanation + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [selectedAnswer]) + + const isSelectedCorrect = useMemo( + () => correctAnswerId === selectedAnswer, + [correctAnswerId, selectedAnswer] + ) + + return ( + + + + {t("question-number", { number: currentQuestionIndex + 1 })} + + {t(prompt)} + + + + {answers.map(({ id, label }, idx) => { + const display = + !answerStatus || id === selectedAnswer ? "inline-flex" : "none" + + return ( + + + + ) + })} + + + {!!answerStatus && ( + + {t("explanation")} + + {t(explanation)} + + )} + + ) +} + +type CustomRadioProps = UseRadioProps & { + index: number + isAnswerVisible: boolean + isSelectedCorrect: boolean + label: string +} + +const CustomRadio = ({ + isAnswerVisible, + index, + isSelectedCorrect, + label, + ...radioProps +}: CustomRadioProps) => { + const INPUT_ID = `quiz-question-answer-${index}` + const { state, getInputProps, getRadioProps, getLabelProps } = useRadio({ + ...radioProps, + id: INPUT_ID, + }) + + const buttonBg = useMemo(() => { + if (!state.isChecked) return "body.inverted" + if (!isAnswerVisible) return "primary.base" + if (!isSelectedCorrect) return "error.base" + return "success.base" + }, [state.isChecked, isAnswerVisible, isSelectedCorrect]) + + const primaryBaseColor = useToken("colors", "primary.base") + + const getAnswerColor = (): ChakraProps["bg"] => + isSelectedCorrect ? "success.base" : "error.base" + + const controlFocusProps: ChakraProps = { + bg: isAnswerVisible ? "white" : "primary.pressed", + color: isAnswerVisible ? getAnswerColor() : undefined, + } + + return ( + <> + + + + + {String.fromCharCode(97 + index).toUpperCase()} + + + {label} + + + + + ) +} diff --git a/src/components/Quiz/QuizWidget/QuizSummary.tsx b/src/components/Quiz/QuizWidget/QuizSummary.tsx new file mode 100644 index 00000000000..c0a74fa8f15 --- /dev/null +++ b/src/components/Quiz/QuizWidget/QuizSummary.tsx @@ -0,0 +1,93 @@ +import { useEffect } from "react" +import { merge } from "lodash" +import { useRouter } from "next/router" +import { useTranslation } from "next-i18next" +import { + Heading, + HStack, + StackDivider, + Text, + TextProps, + ThemingProps, + useMediaQuery, + useToken, + VStack, +} from "@chakra-ui/react" + +import { numberToPercent } from "@/lib/utils/numberToPercent" + +import { useQuizWidgetContext } from "./context" + +export const QuizSummary = () => { + const { numberOfCorrectAnswers, questions, ratioCorrect, isPassingScore } = + useQuizWidgetContext() + + const { locale } = useRouter() + const { t } = useTranslation("learn-quizzes") + + const smBp = useToken("breakpoints", "sm") + + const [largerThanMobile] = useMediaQuery(`(min-width: ${smBp})`) + + const commonTextSize: ThemingProps<"Text">["size"] = ["xl", "2xl"] + const valueStyles: TextProps = { fontWeight: "700", lineHeight: 1 } + const labelStyles: TextProps = { fontSize: "sm", m: 0, color: "disabled" } + + return ( + + + {isPassingScore ? t("passed") : t("your-results")} + + div": { + py: "4", + }, + }} + overflowX="hidden" + divider={} + > + + + {numberToPercent(ratioCorrect, locale)} + + + {t("score")} + + + + + + +{numberOfCorrectAnswers} + + + {t("correct")} + + + + {largerThanMobile && ( + + + {questions.length} + + + {t("questions")} + + + )} + + + ) +} diff --git a/src/components/Quiz/QuizWidget/StandaloneQuizHeading.tsx b/src/components/Quiz/QuizWidget/StandaloneQuizHeading.tsx deleted file mode 100644 index ccd3fcb12f1..00000000000 --- a/src/components/Quiz/QuizWidget/StandaloneQuizHeading.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import * as React from "react" -import { Heading } from "@chakra-ui/react" -import Translation from "../../Translation" - -export const StandaloneQuizHeading = () => ( - - - -) diff --git a/src/components/Quiz/QuizWidget/context.ts b/src/components/Quiz/QuizWidget/context.ts new file mode 100644 index 00000000000..75442494d70 --- /dev/null +++ b/src/components/Quiz/QuizWidget/context.ts @@ -0,0 +1,45 @@ +import { createContext, Dispatch, SetStateAction, useContext } from "react" + +import { QuizStatus, UserStats } from "@/lib/types" +import { AnswerChoice, Quiz } from "@/lib/interfaces" + +import { AnswerStatus } from "./useQuizWidget" + +type QuizWidgetContextType = Quiz & { + answerStatus: AnswerStatus + currentQuestionIndex: number + userQuizProgress: AnswerChoice[] + showResults: boolean + currentQuestionAnswerChoice: AnswerChoice | null + quizPageProps: + | { + currentHandler: (nextKey: string) => void + statusHandler: (status: QuizStatus) => void + nextQuiz: string | undefined + } + | false + numberOfCorrectAnswers: number + quizScore: number + ratioCorrect: number + isPassingScore: boolean + initialize: () => void + setUserQuizProgress: Dispatch> + setShowAnswer: (prev: boolean) => void + setCurrentQuestionAnswerChoice: (answer: AnswerChoice | null) => void +} + +const QuizWidgetContext = createContext(null) + +export const QuizWidgetProvider = QuizWidgetContext.Provider + +export const useQuizWidgetContext = () => { + const context = useContext(QuizWidgetContext) + + if (!context) { + throw new Error( + "useQuizWidgetContext must be used within a QuizWidgetProvider" + ) + } + + return context +} diff --git a/src/components/Quiz/QuizWidget/index.tsx b/src/components/Quiz/QuizWidget/index.tsx index 907b4da2b12..1fa4ba4d9bc 100644 --- a/src/components/Quiz/QuizWidget/index.tsx +++ b/src/components/Quiz/QuizWidget/index.tsx @@ -1,67 +1,115 @@ -import * as React from "react" -import { Center, Spinner, Stack, StackProps, VStack } from "@chakra-ui/react" +import { Dispatch, SetStateAction, useEffect, useRef } from "react" +import { + Center, + Heading, + Spinner, + Stack, + StackProps, + VStack, +} from "@chakra-ui/react" + +import { QuizStatus, UserStats } from "@/lib/types" + +import Translation from "@/components/Translation" + +import { useLocalQuizData } from "../useLocalQuizData" -import { StandaloneQuizHeading } from "./StandaloneQuizHeading" import { AnswerIcon } from "./AnswerIcon" +import { QuizWidgetProvider } from "./context" +import { QuizButtonGroup } from "./QuizButtonGroup" import { QuizConfetti } from "./QuizConfetti" import { QuizContent } from "./QuizContent" -import { QuizButtonGroup } from "./QuizButtonGroup" +import { QuizProgressBar } from "./QuizProgressBar" +import { QuizRadioGroup } from "./QuizRadioGroup" +import { QuizSummary } from "./QuizSummary" import { useQuizWidget } from "./useQuizWidget" -import { QuizStatus } from "../../../types" +type CommonProps = { + quizKey: string + updateUserStats: Dispatch> +} + +type StandaloneQuizProps = CommonProps & { + isStandaloneQuiz: true + currentHandler?: never + statusHandler?: never +} -export interface IProps { - quizKey?: string - currentHandler?: (next?: string) => void - statusHandler?: (status: QuizStatus) => void - maxQuestions?: number - isStandaloneQuiz?: boolean +type QuizPageProps = CommonProps & { + currentHandler: (nextKey: string) => void + statusHandler: (status: QuizStatus) => void + isStandaloneQuiz?: false } -const QuizWidget: React.FC = (props) => { +export type QuizWidgetProps = StandaloneQuizProps | QuizPageProps + +const QuizWidget = ({ + isStandaloneQuiz = false, + quizKey, + updateUserStats, + currentHandler, + statusHandler, +}: QuizWidgetProps) => { const { quizData, - showAnswer, - currentQuestionAnswerChoice, - showConfetti, - progressBarBackground, + answerStatus, + showResults, currentQuestionIndex, - finishedQuiz, - handleContinue, - handleRetryQuestion, - handleSelection, - handleShare, - handleSubmitAnswer, - hasNextQuiz, - initialize, - isPassingScore, + userQuizProgress, + currentQuestionAnswerChoice, numberOfCorrectAnswers, + nextQuiz, quizScore, ratioCorrect, - selectedAnswer, - setUserStats, - showResults, - handleNextQuiz, - } = useQuizWidget(props) + showConfetti, + isPassingScore, + initialize, + setShowAnswer, + setUserQuizProgress, + setCurrentQuestionAnswerChoice, + } = useQuizWidget({ quizKey, updateUserStats }) + + const quizPageProps = useRef< + | (Required> & { + nextQuiz: string | undefined + }) + | false + >(false) + + useEffect(() => { + if (isStandaloneQuiz) return - const { quizKey, isStandaloneQuiz = false } = props + quizPageProps.current = { + currentHandler: currentHandler!, + statusHandler: statusHandler!, + nextQuiz, + } + return () => { + if (quizPageProps.current) { + /** + * If modal for widget unmounts when viewing a question's answer, ensure + * the status is back to neutral when the modal is opened again. + */ + quizPageProps.current.statusHandler("neutral") + } + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [nextQuiz]) const getMainContainerBg = (): StackProps["bg"] => { - if (!showAnswer) { + if (!answerStatus) { return "neutral" } - if (currentQuestionAnswerChoice?.isCorrect) { + if (answerStatus === "correct") { return "success.neutral" } return "error.neutral" } - // Render QuizWidget component return ( - {/* Inner Container */} = (props) => { borderRadius="base" boxShadow={isStandaloneQuiz ? "drop" : "none"} position="relative" - isolation="isolate" > {showConfetti && }
- +
- {quizData ? ( - <> - - - + {!!quizData ? ( + + + {!showResults ? ( + <> + + + + ) : ( + + )} + + + ) : ( - +
+ +
)}
@@ -149,10 +184,25 @@ export default QuizWidget * For use of the widget on single pages (not the quizzes page) */ export const StandaloneQuizWidget = ( - props: Omit -) => ( - - - - -) + props: Pick +) => { + const [_, updateUserStats] = useLocalQuizData() + return ( + + + + + + + ) +} diff --git a/src/components/Quiz/QuizWidget/useQuizWidget.tsx b/src/components/Quiz/QuizWidget/useQuizWidget.tsx index 313fc76635d..d566865b31e 100644 --- a/src/components/Quiz/QuizWidget/useQuizWidget.tsx +++ b/src/components/Quiz/QuizWidget/useQuizWidget.tsx @@ -1,31 +1,30 @@ -import { useCallback, useContext, useEffect, useMemo, useState } from "react" +import { useEffect, useMemo, useRef, useState } from "react" import { shuffle } from "lodash" -import { useTranslation } from "gatsby-plugin-react-i18next" +import { useTranslation } from "next-i18next" -import allQuizzesData from "../../../data/quizzes" import { AnswerChoice, Question, Quiz, RawQuestion, RawQuiz, -} from "../../../types" -import questionBank from "../../../data/quizzes/questionBank" -import { PASSING_QUIZ_SCORE, USER_STATS_KEY } from "../../../constants" -import { trackCustomEvent } from "../../../utils/matomo" -import { INITIAL_USER_STATS } from "../../../pages/quizzes" +} from "@/lib/interfaces" + +import allQuizzesData from "@/data/quizzes" +import questionBank from "@/data/quizzes/questionBank" + +import { PASSING_QUIZ_SCORE } from "@/lib/constants" -import { QuizzesHubContext } from "../context" import { getNextQuiz } from "../utils" -import type { IProps } from "./index" + +import { QuizWidgetProps } from "." + +export type AnswerStatus = "correct" | "incorrect" | null export const useQuizWidget = ({ - currentHandler, - statusHandler, - isStandaloneQuiz, - maxQuestions, quizKey, -}: IProps) => { + updateUserStats, +}: Pick) => { const { t } = useTranslation() const [quizData, setQuizData] = useState(null) @@ -36,37 +35,16 @@ export const useQuizWidget = ({ const [showAnswer, setShowAnswer] = useState(false) const [currentQuestionAnswerChoice, setCurrentQuestionAnswerChoice] = useState(null) - const [selectedAnswer, setSelectedAnswer] = useState(null) - - const { setUserStats } = useContext(QuizzesHubContext) useEffect(() => { - // If quiz is standalone (out of Quiz Hub page), - // stats required to be initialized on localStorage first - const item = window.localStorage.getItem(USER_STATS_KEY) - - if (item === null) { - localStorage.setItem(USER_STATS_KEY, JSON.stringify(INITIAL_USER_STATS)) - } - setNextQuiz(getNextQuiz(quizKey)) }, [quizKey]) - const hasNextQuiz = !isStandaloneQuiz && !!nextQuiz - const finishedQuiz = - userQuizProgress.length === quizData?.questions.length! - 1 - - // Reset quiz state const initialize = () => { setQuizData(null) setCurrentQuestionAnswerChoice(null) setUserQuizProgress([]) setShowAnswer(false) - setSelectedAnswer(null) - - if (!isStandaloneQuiz) { - statusHandler?.("neutral") - } const currentQuizKey = quizKey || @@ -84,55 +62,31 @@ export const useQuizWidget = ({ return { id, ...rawQuestion } }) const shuffledQuestions = shuffle(questions) - const trimmedQuestions = maxQuestions - ? shuffledQuestions.slice(0, maxQuestions) - : shuffledQuestions const quiz: Quiz = { title: t(rawQuiz.title), - questions: trimmedQuestions, + questions: shuffledQuestions, } setQuizData(quiz) } - useEffect(initialize, [quizKey]) + useEffect(initialize, [quizKey, t]) const currentQuestionIndex = userQuizProgress.length const showResults = currentQuestionIndex === quizData?.questions.length - const progressBarBackground = useCallback( - (index: number): string => { - if ( - (showAnswer && - index === currentQuestionIndex && - currentQuestionAnswerChoice?.isCorrect) || - userQuizProgress[index]?.isCorrect - ) { - return "success.base" - } - - if ( - (showAnswer && - index === currentQuestionIndex && - !currentQuestionAnswerChoice?.isCorrect) || - (userQuizProgress[index] && !userQuizProgress[index].isCorrect) - ) { - return "error.base" - } + /** + * Determines the status of a submitted answer choice. + * + * @returns {('correct'|'incorrect'|null)} Returns `correct` if the answer is correct, `incorrect` if the answer is incorrect, or `null` if an answer has not yet been given. + */ + const answerStatus = useMemo(() => { + if (!showAnswer) return null - if (index === currentQuestionIndex) { - return "gray.400" - } + if (currentQuestionAnswerChoice?.isCorrect) return "correct" - return "gray.500" - }, - [ - showAnswer, - currentQuestionIndex, - currentQuestionAnswerChoice, - userQuizProgress, - ] - ) + return "incorrect" + }, [currentQuestionAnswerChoice?.isCorrect, showAnswer]) const numberOfCorrectAnswers = userQuizProgress.filter( ({ isCorrect }) => isCorrect @@ -150,122 +104,45 @@ export const useQuizWidget = ({ [quizData, showResults, isPassingScore] ) - const handleSelectAnswerChoice = (answerId: string) => { - const isCorrect = - answerId === quizData?.questions[currentQuestionIndex].correctAnswerId - setCurrentQuestionAnswerChoice({ answerId, isCorrect }) - } - - const handleSelection = (answerId: string) => { - setSelectedAnswer(answerId) - handleSelectAnswerChoice(answerId) - } - - const handleSubmitAnswer = (questionId: string, answer: AnswerChoice) => { - trackCustomEvent({ - eventCategory: "Quiz widget", - eventAction: "Question answered", - eventName: `QID: ${questionId}`, - eventValue: answer.isCorrect ? "1" : "0", - }) - - setShowAnswer(true) - - if (!isStandaloneQuiz) { - if (currentQuestionAnswerChoice?.isCorrect) { - statusHandler?.("success") - } - - if (!currentQuestionAnswerChoice?.isCorrect) { - statusHandler?.("error") + useEffect(() => { + if (!showResults) return + + updateUserStats((prevStats) => { + const lastScore = prevStats.completed[quizKey][1] + + if (numberOfCorrectAnswers < lastScore) return prevStats + + return { + score: prevStats.score + numberOfCorrectAnswers - lastScore, + average: [...prevStats.average, quizScore], + completed: { + ...prevStats.completed, + [quizKey]: [ + quizScore === 100, + quizScore > lastScore ? numberOfCorrectAnswers : lastScore, + ], + }, } - } - } - - const handleRetryQuestion = () => { - trackCustomEvent({ - eventCategory: "Quiz widget", - eventAction: "Other", - eventName: "Retry question", - }) - - setCurrentQuestionAnswerChoice(null) - setSelectedAnswer(null) - setShowAnswer(false) - - if (!isStandaloneQuiz) { - statusHandler?.("neutral") - } - } - - const handleShare = () => { - if (!quizData || !window) return - - trackCustomEvent({ - eventCategory: "quiz_hub_events", - eventAction: "Secondary button clicks", - eventName: "Twitter_share_quiz", }) - - const url = `https://ethereum.org${window.location.pathname}%23quiz` - const hashtags = ["ethereumquiz", "ethereum", "quiz"] - const tweet = `${encodeURI( - `I just took the "${quizData.title}" quiz on ethereum.org and scored ${numberOfCorrectAnswers} out of ${quizData.questions.length}! Try it yourself at ${url}` - )}` - - window.open( - `https://twitter.com/intent/tweet?text=${tweet}&hashtags=${hashtags}` - ) - } - - const handleContinue = () => { - if (!currentQuestionAnswerChoice) return - - setUserQuizProgress((prev) => [...prev, currentQuestionAnswerChoice]) - setCurrentQuestionAnswerChoice(null) - setShowAnswer(false) - - // Reset quiz status (modifies bg color for mobile) - if (!isStandaloneQuiz) { - statusHandler?.("neutral") - } - - if (finishedQuiz) { - trackCustomEvent({ - eventCategory: "Quiz widget", - eventAction: "Other", - eventName: "Submit results", - eventValue: `${quizScore}%`, - }) - } - } - - const handleNextQuiz = () => { - currentHandler?.(nextQuiz) - } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [showResults]) return { quizData, - showAnswer, - currentQuestionAnswerChoice, - showConfetti, - progressBarBackground, + answerStatus, showResults, + currentQuestionIndex, + userQuizProgress, + currentQuestionAnswerChoice, numberOfCorrectAnswers, - isPassingScore, - ratioCorrect, + nextQuiz, quizScore, - setUserStats, - currentQuestionIndex, - handleSelection, - selectedAnswer, - handleRetryQuestion, - handleShare, - hasNextQuiz, - handleContinue, + ratioCorrect, + showConfetti, + isPassingScore, initialize, - finishedQuiz, - handleSubmitAnswer, - handleNextQuiz, + setUserQuizProgress, + setShowAnswer, + setCurrentQuestionAnswerChoice, } } diff --git a/src/components/Quiz/QuizzesList.tsx b/src/components/Quiz/QuizzesList.tsx index 1ff8c0e3a54..a9317c86e6f 100644 --- a/src/components/Quiz/QuizzesList.tsx +++ b/src/components/Quiz/QuizzesList.tsx @@ -1,37 +1,69 @@ import React from "react" -import { OrderedList } from "@chakra-ui/react" +import { Heading, OrderedList, Stack, Text } from "@chakra-ui/react" -import QuizItem from "./QuizItem" +import type { QuizzesSection, UserStats } from "@/lib/types" + +import { trackCustomEvent } from "@/lib/utils/matomo" + +import allQuizzesData from "@/data/quizzes" + +import Translation from "../Translation" -import { QuizzesSection } from "../../types" +import QuizItem from "./QuizItem" -interface IProps { +export interface QuizzesListProps { + userStats: UserStats content: Array + headingId: string + descriptionId: string quizHandler: (id: string) => void modalHandler: (isModalOpen: boolean) => void } -const QuizzesList: React.FC = ({ +const QuizzesList = ({ content, + userStats, + headingId, + descriptionId, quizHandler, modalHandler, -}) => ( - - {content.map((listItem) => { - const { id, level, next } = listItem - - return ( - - ) - })} - +}: QuizzesListProps) => ( + + + {headingId} + {descriptionId} + + + + {content.map((listItem) => { + const handleStart = () => { + quizHandler(listItem.id) + modalHandler(true) + + trackCustomEvent({ + eventCategory: "quiz_hub_events", + eventAction: "quizzes click", + eventName: `${listItem.id}`, + }) + } + + return ( + + ) + })} + + ) export default QuizzesList diff --git a/src/components/Quiz/QuizzesModal.tsx b/src/components/Quiz/QuizzesModal.tsx index 16bf5cce20b..47701c8e553 100644 --- a/src/components/Quiz/QuizzesModal.tsx +++ b/src/components/Quiz/QuizzesModal.tsx @@ -1,23 +1,21 @@ -import React, { useContext } from "react" import { + Center, Modal as ChakraModal, - ModalOverlay, - ModalContent, ModalCloseButton, - ModalProps, + ModalContent, ModalContentProps, - Center, + ModalOverlay, + ModalProps, } from "@chakra-ui/react" -import { QuizzesHubContext } from "./context" +import { QuizStatus } from "@/lib/types" -interface IProps extends ModalProps { +interface IProps extends Omit { children: React.ReactNode + quizStatus: QuizStatus } -const QuizzesModal: React.FC = ({ children, ...rest }) => { - const { status: quizStatus } = useContext(QuizzesHubContext) - +const QuizzesModal: React.FC = ({ children, quizStatus, ...rest }) => { const getStatusColor = (): ModalContentProps["bg"] => { if (quizStatus === "neutral") { return "neutral" diff --git a/src/components/Quiz/QuizzesStats.tsx b/src/components/Quiz/QuizzesStats.tsx index 9bfe6641bdf..7c798654565 100644 --- a/src/components/Quiz/QuizzesStats.tsx +++ b/src/components/Quiz/QuizzesStats.tsx @@ -1,35 +1,36 @@ -import React, { useContext } from "react" +import { useRouter } from "next/router" +import { useTranslation } from "next-i18next" +import { FaTwitter } from "react-icons/fa" import { Box, Circle, Flex, GridItem, + Highlight, + HStack, + ListItem, Progress, SimpleGrid, Stack, Text, + UnorderedList, } from "@chakra-ui/react" -import { FaTwitter } from "react-icons/fa" -import { useI18next } from "gatsby-plugin-react-i18next" +import { CompletedQuizzes, QuizShareStats } from "@/lib/types" + +import { trackCustomEvent } from "@/lib/utils/matomo" + +import { ethereumBasicsQuizzes, usingEthereumQuizzes } from "../../data/quizzes" import { Button } from "../Buttons" -import Translation from "../Translation" import { TrophyIcon } from "../icons/quiz" +import Translation from "../Translation" -import { QuizzesHubContext } from "./context" - -// Utils import { getFormattedStats, getNumberOfCompletedQuizzes, getTotalQuizzesPoints, shareOnTwitter, } from "./utils" -import { trackCustomEvent } from "../../utils/matomo" - -import { QuizShareStats } from "../../types" - -import { ethereumBasicsQuizzes, usingEthereumQuizzes } from "../../data/quizzes" const handleShare = ({ score, total }: QuizShareStats) => { shareOnTwitter({ @@ -44,14 +45,20 @@ const handleShare = ({ score, total }: QuizShareStats) => { }) } -const QuizzesStats: React.FC = () => { - const { language } = useI18next() - const { - userStats: { score: userScore, completed, average }, - } = useContext(QuizzesHubContext) - const numberOfCompletedQuizzes = getNumberOfCompletedQuizzes( - JSON.parse(completed) - ) +type QuizzesStatsProps = { + totalCorrectAnswers: number + averageScoresArray: number[] + completedQuizzes: CompletedQuizzes +} + +const QuizzesStats = ({ + totalCorrectAnswers, + averageScoresArray, + completedQuizzes, +}: QuizzesStatsProps) => { + const { locale } = useRouter() + const { t } = useTranslation("learn-quizzes") + const numberOfCompletedQuizzes = getNumberOfCompletedQuizzes(completedQuizzes) // These values are not fixed but calculated each time, can't be moved to /constants const totalQuizzesNumber = @@ -63,82 +70,78 @@ const QuizzesStats: React.FC = () => { formattedCollectiveQuestionsAnswered, formattedCollectiveAverageScore, formattedCollectiveRetryRate, - } = getFormattedStats(language, average) + } = getFormattedStats(locale!, averageScoresArray) return ( - - + + {/* user stats */} - + {t("your-total")} - + - + - - + - - - {userScore} - - /{totalQuizzesPoints} - + + + {totalCorrectAnswers + "/" + totalQuizzesPoints} + - + - + - {" "} - - {formattedUserAverageScore} - + {t("average-score")}{" "} + {formattedUserAverageScore} - {" "} - + {t("completed")}{" "} + {numberOfCompletedQuizzes}/{totalQuizzesNumber} @@ -150,20 +153,21 @@ const QuizzesStats: React.FC = () => { {/* community stats */} - - + + {t("community-stats")} {( [ @@ -181,12 +185,12 @@ const QuizzesStats: React.FC = () => { }, ] satisfies Array<{ labelId: string; value: string }> ).map(({ labelId, value }) => ( - - - + + + {/* Data from Matomo, manually updated */} - {value} + {value} ))} diff --git a/src/components/Quiz/context.ts b/src/components/Quiz/context.ts deleted file mode 100644 index cd8ceb20756..00000000000 --- a/src/components/Quiz/context.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { createContext } from "react" - -import { QuizStatus, UserStats } from "../../types" - -interface ContextState { - status: QuizStatus - quizKey?: string - userStats: UserStats - setUserStats: (stats: UserStats) => void -} - -const INITIAL_CONTEXT_STATE: ContextState = { - status: "neutral", - quizKey: undefined, - userStats: { - score: 0, - average: [], - completed: JSON.stringify({}), - }, - setUserStats: () => {}, -} - -export const QuizzesHubContext = createContext(INITIAL_CONTEXT_STATE) diff --git a/src/components/Quiz/useLocalQuizData.ts b/src/components/Quiz/useLocalQuizData.ts new file mode 100644 index 00000000000..3c139f1601d --- /dev/null +++ b/src/components/Quiz/useLocalQuizData.ts @@ -0,0 +1,31 @@ +import { CompletedQuizzes, UserStats } from "@/lib/types" + +import allQuizzesData from "@/data/quizzes" + +import { USER_STATS_KEY } from "@/lib/constants" + +import { useLocalStorage } from "@/hooks/useLocalStorage" + +/** + * Contains each quiz id as key and to indicate if its completed and the highest score in that quiz + * + * Initialize all quizzes as not completed + */ +const INITIAL_COMPLETED_QUIZZES: CompletedQuizzes = Object.keys( + allQuizzesData +).reduce((object, key) => ({ ...object, [key]: [false, 0] }), {}) + +export const INITIAL_USER_STATS: UserStats = { + score: 0, + average: [], + completed: INITIAL_COMPLETED_QUIZZES, +} + +export const useLocalQuizData = () => { + const data = useLocalStorage( + USER_STATS_KEY, + INITIAL_USER_STATS + ) + + return data +} diff --git a/src/components/Quiz/utils.ts b/src/components/Quiz/utils.ts index 86a0519ff57..ed09ef2b3cb 100644 --- a/src/components/Quiz/utils.ts +++ b/src/components/Quiz/utils.ts @@ -1,19 +1,17 @@ -import { getLocaleForNumberFormat } from "../../utils/translations" -import { Lang } from "../../utils/languages" +import { CompletedQuizzes, type Lang, QuizShareStats } from "@/lib/types" -import { CompletedQuizzes, QuizShareStats } from "../../types" +import { getLocaleForNumberFormat } from "@/lib/utils/translations" + +import allQuizzesData, { + ethereumBasicsQuizzes, + usingEthereumQuizzes, +} from "@/data/quizzes" import { TOTAL_QUIZ_AVERAGE_SCORE, TOTAL_QUIZ_QUESTIONS_ANSWERED, TOTAL_QUIZ_RETRY_RATE, - USER_STATS_KEY, -} from "../../constants" - -import allQuizzesData, { - ethereumBasicsQuizzes, - usingEthereumQuizzes, -} from "../../data/quizzes" +} from "@/lib/constants" export const getTotalQuizzesPoints = () => Object.values(allQuizzesData) @@ -34,49 +32,6 @@ export const getNextQuiz = (currentQuiz?: string) => { return nextQuiz ? nextQuiz.next : undefined } -export const updateUserStats = ({ - quizKey, - quizScore, - numberOfCorrectAnswers, - setUserStats, -}) => { - // Read userStats from localStorage as quiz could be standalone (out of Quiz Hub page) - const userStats = JSON.parse(localStorage.getItem(USER_STATS_KEY)!) - const { score: userScore, average, completed } = userStats - const completedQuizzes = JSON.parse(completed) - // Get previous score on quiz to compare on retry, if previous score is higher then keep it - const lastScore = completedQuizzes[quizKey][1] - // Update user score, average and save to local storage - const newUserScore = userScore + numberOfCorrectAnswers - lastScore - const newAverage = [...average, quizScore] - const newCompleted = JSON.stringify({ - ...completedQuizzes, - [quizKey!]: [ - quizScore === 100, - quizScore > lastScore ? numberOfCorrectAnswers : lastScore, - ], - }) - - if (numberOfCorrectAnswers > lastScore) { - setUserStats({ - ...userStats, - score: newUserScore, - average: newAverage, - completed: newCompleted, - }) - - localStorage.setItem( - USER_STATS_KEY, - JSON.stringify({ - ...userStats, - score: newUserScore, - average: newAverage, - completed: newCompleted, - }) - ) - } -} - export const shareOnTwitter = ({ score, total }: QuizShareStats): void => { const url = "https://ethereum.org/quizzes" const hashtags = ["ethereumquiz", "ethereum", "quiz"] diff --git a/src/components/RandomAppList.tsx b/src/components/RandomAppList.tsx index 26ea36eee1a..739311e226f 100644 --- a/src/components/RandomAppList.tsx +++ b/src/components/RandomAppList.tsx @@ -1,9 +1,10 @@ import React, { useEffect, useState } from "react" import { shuffle } from "lodash" +import type { TranslationKey } from "@/lib/types" + import InlineLink from "./Link" import Translation from "./Translation" -import { TranslationKey } from "../utils/translations" interface App { name: string diff --git a/src/components/ReleaseBanner.tsx b/src/components/ReleaseBanner.tsx deleted file mode 100644 index c7d00ddf119..00000000000 --- a/src/components/ReleaseBanner.tsx +++ /dev/null @@ -1,143 +0,0 @@ -// Libraries -import React, { useEffect, useState } from "react" -import Countdown, { zeroPad } from "react-countdown" -import { Box, Center, CloseButton } from "@chakra-ui/react" - -// Components -import BannerNotification from "./BannerNotification" -import Emoji from "./Emoji" -import InlineLink from "./Link" -import Translation from "./Translation" - -// Utils -import { getFreshData } from "../utils/cache" -import { TranslationKey } from "../utils/translations" - -// Constants -import { GATSBY_FUNCTIONS_PATH } from "../constants" - -interface CountdownRendererProps { - days: number - hours: number - minutes: number - seconds: number - completed: boolean -} - -interface BannerWrapperProps { - isBannerVisible: boolean - onClose: () => void - children: JSX.Element -} - -const BannerWrapper: React.FC = ({ - onClose, - isBannerVisible, - children, -}) => { - return ( - -
- - {children} -
- -
- ) -} - -export interface IProps { - storageKey: string -} - -const ReleaseBanner: React.FC = ({ storageKey }) => { - const [loading, setLoading] = useState(true) - const [show, setShow] = useState(true) - const [timeLeft, setTimeLeft] = useState("0") - - useEffect(() => { - setLoading(true) - const fetchBlockInfo = async (): Promise => { - try { - const data: string = await getFreshData( - `${GATSBY_FUNCTIONS_PATH}/etherscanBlock` - ) - setTimeLeft(data) - setLoading(false) - } catch (error) { - // will console log if an error, but wont set loading to false so that banner - // doesnt show up - console.error(error) - } - } - fetchBlockInfo() - - if (localStorage && localStorage.getItem(storageKey) !== null) { - setShow(false) - } else { - setShow(true) - } - }, [storageKey]) - - const handleClose = (): void => { - if (localStorage) { - localStorage.setItem(storageKey, "true") - } - setShow(false) - } - - const renderer = ({ - days, - hours, - minutes, - seconds, - completed, - }: CountdownRendererProps): React.ReactNode => { - if (completed) { - return ( - - <> - - - - - - - - - ) - } else { - return ( - - <> - - - {zeroPad(days, 2)}:{zeroPad(hours, 2)}:{zeroPad(minutes, 2)}: - {zeroPad(seconds, 2)}! - - - - - - - - - ) - } - } - - return loading ? null : ( - - ) -} - -export default ReleaseBanner diff --git a/src/components/Roadmap/RoadmapActionCard.tsx b/src/components/Roadmap/RoadmapActionCard.tsx index be9dd7429c3..fd9f3419315 100644 --- a/src/components/Roadmap/RoadmapActionCard.tsx +++ b/src/components/Roadmap/RoadmapActionCard.tsx @@ -1,18 +1,19 @@ -import React from "react" -import { useStaticQuery, graphql } from "gatsby" import { - Text, Center, Flex, Heading, LinkBox, LinkOverlay, + Text, } from "@chakra-ui/react" -import { ButtonLink } from "../Buttons" -import GatsbyImage from "../GatsbyImage" +import { ButtonLink } from "@/components/Buttons" +import { Image } from "@/components/Image" -import { getImage } from "../../utils/image" +import futureProofing from "@/public/roadmap/roadmap-future.png" +import security from "@/public/roadmap/roadmap-security.png" +import scaling from "@/public/roadmap/roadmap-transactions.png" +import userExperience from "@/public/roadmap/roadmap-ux.png" interface IProps { to: string @@ -31,53 +32,13 @@ const RoadmapActionCard: React.FC = ({ description, buttonText, }) => { - const data = useStaticQuery(graphql` - query RoadmapActionCard { - futureProofing: file(relativePath: { eq: "roadmap/roadmap-future.png" }) { - childImageSharp { - gatsbyImageData( - width: 400 - height: 260 - layout: CONSTRAINED - placeholder: BLURRED - quality: 100 - ) - } - } - scaling: file(relativePath: { eq: "roadmap/roadmap-transactions.png" }) { - childImageSharp { - gatsbyImageData( - height: 260 - layout: CONSTRAINED - placeholder: BLURRED - quality: 100 - ) - } - } - security: file(relativePath: { eq: "roadmap/roadmap-security.png" }) { - childImageSharp { - gatsbyImageData( - width: 380 - height: 260 - layout: CONSTRAINED - placeholder: BLURRED - quality: 100 - ) - } - } - userExperience: file(relativePath: { eq: "roadmap/roadmap-ux.png" }) { - childImageSharp { - gatsbyImageData( - width: 380 - height: 260 - layout: CONSTRAINED - placeholder: BLURRED - quality: 100 - ) - } - } - } - `) + const images = { + futureProofing, + scaling, + security, + userExperience, + } + const imgSrc = images[image] ?? images.futureProofing return ( = ({ borderColor="lightBorder" >
-
diff --git a/src/components/Roadmap/RoadmapImageContent.tsx b/src/components/Roadmap/RoadmapImageContent.tsx index 0f243525ae6..ce56274819f 100644 --- a/src/components/Roadmap/RoadmapImageContent.tsx +++ b/src/components/Roadmap/RoadmapImageContent.tsx @@ -1,46 +1,29 @@ -import React from "react" -import { useStaticQuery, graphql } from "gatsby" -import { Center, Heading, Flex, Stack } from "@chakra-ui/react" -import GatsbyImage from "../GatsbyImage" +import { Center, Flex, Heading, Stack } from "@chakra-ui/react" -import { getImage } from "../../utils/image" +import { Image } from "@/components/Image" + +import wallet from "@/public/wallet.png" export interface IProps { children: React.ReactNode title: String } -const RoadmapImageContent: React.FC = ({ children, title }) => { - const data = useStaticQuery(graphql` - query RoadmapImageContent { - robot: file(relativePath: { eq: "wallet.png" }) { - childImageSharp { - gatsbyImageData( - width: 580 - layout: CONSTRAINED - placeholder: BLURRED - quality: 100 - ) - } - } - } - `) - - return ( - - {title} - - {children} -
- -
-
-
- ) -} +const RoadmapImageContent: React.FC = ({ children, title }) => ( + + {title} + + {children} +
+ Ethereum Wallet +
+
+
+) export default RoadmapImageContent diff --git a/src/components/RollupProductDevDoc.tsx b/src/components/RollupProductDevDoc.tsx index 480a1bdb36e..8368fa578af 100644 --- a/src/components/RollupProductDevDoc.tsx +++ b/src/components/RollupProductDevDoc.tsx @@ -1,39 +1,13 @@ -// Libraries import React from "react" import { Box, Flex, Heading, ListItem, UnorderedList } from "@chakra-ui/react" -// Components +import { layer2Data, Rollups,RollupType } from "@/data/layer-2/layer-2" + import InlineLink from "./Link" -import Translation from "./Translation" import Text from "./OldText" +import Translation from "./Translation" -// Data -import _rollups from "../data/layer-2/layer-2.json" - -import { TranslationKey } from "../utils/translations" - -type RollupType = "optimistic" | "zk" - -interface Rollup { - name: string - website: string - developerDocs: string - l2beat: string - bridge: string - bridgeWallets: Array - blockExplorer: string - ecosystemPortal: string - tokenLists: string - noteKey: TranslationKey - purpose: Array - descriptionKey: string - imageKey: string - background: string -} - -type Rollups = { [type in RollupType]: Array } - -const rollups = _rollups as Rollups +const rollups = layer2Data as Rollups export interface IProps { rollupType: RollupType @@ -43,9 +17,9 @@ const RollupProductDevDoc: React.FC = ({ rollupType }) => { return ( {rollups[rollupType].map( - ({ name, noteKey, website, developerDocs, l2beat }) => { + ({ name, noteKey, website, developerDocs, l2beat }, idx) => { return ( - + = ({ rollupType }) => { {noteKey.length > 0 && ( - * + * )} diff --git a/src/components/Search/SearchModal.tsx b/src/components/Search/SearchModal.tsx index e1fcd911535..b8bf2b03a82 100644 --- a/src/components/Search/SearchModal.tsx +++ b/src/components/Search/SearchModal.tsx @@ -1,6 +1,7 @@ import * as React from "react" -import { chakra, useBreakpoint, useToken } from "@chakra-ui/react" +import { chakra } from "@chakra-ui/react" import { DocSearchModal, DocSearchModalProps } from "@docsearch/react" + import { getSearchModalStyles } from "./utils" type ModalPropsNoScroll = Omit diff --git a/src/components/Search/index.tsx b/src/components/Search/index.tsx index b8c6fae3350..359606dc4c2 100644 --- a/src/components/Search/index.tsx +++ b/src/components/Search/index.tsx @@ -1,29 +1,30 @@ -// Import libraries -import React from "react" -import { useTranslation, useI18next } from "gatsby-plugin-react-i18next" +import { useRef } from "react" +import { useRouter } from "next/router" +import { useTranslation } from "next-i18next" import { MdSearch } from "react-icons/md" import { + Box, forwardRef, - Portal, IconButtonProps, - useMergeRefs, - Box, + Portal, ThemeTypings, + type UseDisclosureReturn, + useMergeRefs, } from "@chakra-ui/react" import { useDocSearchKeyboardEvents } from "@docsearch/react" import { DocSearchHit } from "@docsearch/react/dist/esm/types" -import { Button } from "../Buttons" + +import { Button } from "@/components/Buttons" + +import { trackCustomEvent } from "@/lib/utils/matomo" +import { sanitizeHitTitle } from "@/lib/utils/sanitizeHitTitle" +import { sanitizeHitUrl } from "@/lib/utils/url" + import SearchButton from "./SearchButton" import SearchModal from "./SearchModal" -import { sanitizeHitUrl } from "../../utils/url" -import { sanitizeHitTitle } from "../../utils/sanitizeHitTitle" -// Styles import "@docsearch/css" -// Utils -import { trackCustomEvent } from "../../utils/matomo" - export const SearchIconButton = forwardRef( (props, ref) => ( diff --git a/src/components/Staking/WithdrawalsTabComparison.tsx b/src/components/Staking/WithdrawalsTabComparison.tsx index fb72ff680c4..5140854bb53 100644 --- a/src/components/Staking/WithdrawalsTabComparison.tsx +++ b/src/components/Staking/WithdrawalsTabComparison.tsx @@ -1,4 +1,4 @@ -import React from "react" +import { useTranslation } from "next-i18next" import { ListItem, Tab, @@ -8,15 +8,18 @@ import { Tabs, UnorderedList, } from "@chakra-ui/react" -import WithdrawalCredentials from "./WithdrawalCredentials" -import { ButtonLink } from "../Buttons" -import Translation from "../Translation" -import Text from "../OldText" -import OldHeading from "../OldHeading" -import { trackCustomEvent } from "../../utils/matomo" + +import { ButtonLink } from "@/components/Buttons" +import OldHeading from "@/components/OldHeading" +import Text from "@/components/OldText" +import WithdrawalCredentials from "@/components/Staking/WithdrawalCredentials" +import Translation from "@/components/Translation" + +import { trackCustomEvent } from "@/lib/utils/matomo" interface IProps {} const WithdrawalsTabComparison: React.FC = () => { + const { t } = useTranslation("page-staking") const handleMatomoEvent = (name: string): void => { trackCustomEvent({ eventCategory: `Staker tabs`, @@ -24,32 +27,33 @@ const WithdrawalsTabComparison: React.FC = () => { eventName: `click`, }) } + return ( handleMatomoEvent("Current stakers")}> - + {t("comp-withdrawal-comparison-current-title")} handleMatomoEvent("New stakers")}> - + {t("comp-withdrawal-comparison-new-title")} - + {t("comp-withdrawal-comparison-current-title")} - + {" "} - + - + @@ -57,21 +61,15 @@ const WithdrawalsTabComparison: React.FC = () => { - + {t("comp-withdrawal-comparison-new-title")} - - - - - - + {t("comp-withdrawal-comparison-new-li-1")} + {t("comp-withdrawal-comparison-new-li-2")} - - - + {t("comp-withdrawal-comparison-new-p")} - + {t("comp-withdrawal-comparison-new-link")} diff --git a/src/components/StatErrorMessage.tsx b/src/components/StatErrorMessage.tsx index dce35346868..58f7797554f 100644 --- a/src/components/StatErrorMessage.tsx +++ b/src/components/StatErrorMessage.tsx @@ -1,12 +1,9 @@ -import React from "react" -import { TextProps } from "@chakra-ui/react" +import type { TextProps } from "@chakra-ui/react" -import Translation from "./Translation" import Text from "./OldText" +import Translation from "./Translation" -export interface IProps extends TextProps {} - -const StatErrorMessage: React.FC = (props) => ( +const StatErrorMessage = (props: TextProps) => ( diff --git a/src/components/StatLoadingMessage.tsx b/src/components/StatLoadingMessage.tsx deleted file mode 100644 index 44132601b66..00000000000 --- a/src/components/StatLoadingMessage.tsx +++ /dev/null @@ -1,15 +0,0 @@ -import React from "react" -import { TextProps } from "@chakra-ui/react" - -import Translation from "./Translation" -import Text from "./OldText" - -export interface IProps extends TextProps {} - -const StatLoadingMessage: React.FC = (props) => ( - - - -) - -export default StatLoadingMessage diff --git a/src/components/StatsBoxGrid/GridItem.tsx b/src/components/StatsBoxGrid/GridItem.tsx index 81749e21b22..5c3d339db6e 100644 --- a/src/components/StatsBoxGrid/GridItem.tsx +++ b/src/components/StatsBoxGrid/GridItem.tsx @@ -1,36 +1,36 @@ -import React from "react" -import { VStack, Icon, Box, Flex, Text } from "@chakra-ui/react" -import { MdInfoOutline } from "react-icons/md" import { kebabCase } from "lodash" -import { ResponsiveContainer, AreaChart, Area, XAxis, YAxis } from "recharts" -import Tooltip from "../Tooltip" -import Translation from "../Translation" +import { MdInfoOutline } from "react-icons/md" +import { Area, AreaChart, ResponsiveContainer, XAxis, YAxis } from "recharts" +import { Box, Flex, Icon, Text, VStack } from "@chakra-ui/react" + +import type { StatsBoxMetric } from "@/lib/types" + +import { RANGES } from "@/lib/constants" + import InlineLink from "../Link" -import StatErrorMessage from "../StatErrorMessage" -import StatLoadingMessage from "../StatLoadingMessage" -import { Metric, ranges } from "./useStatsBoxGrid" -import { Direction } from "../../types" import OldText from "../OldText" +import StatErrorMessage from "../StatErrorMessage" +import Tooltip from "../Tooltip" +import Translation from "../Translation" -const tooltipContent = (metric: Metric) => ( +const tooltipContent = (metric: StatsBoxMetric) => (
{" "} {metric.apiProvider}
) -interface IGridItemProps { - metric: Metric - dir?: Direction +type GridItemProps = { + metric: StatsBoxMetric } -export const GridItem: React.FC = ({ metric, dir }) => { +export const GridItem = ({ metric }: GridItemProps) => { const { title, description, state, buttonContainer, range } = metric - const isLoading = !state.value - const value = state.hasError ? ( + const hasError = "error" in state + const hasData = "data" in state + + const value = hasError ? ( - ) : isLoading ? ( - ) : ( @@ -40,11 +40,11 @@ export const GridItem: React.FC = ({ metric, dir }) => { as={MdInfoOutline} boxSize={6} fill="text" - mr={2} + me={2} _hover={{ fill: "primary.base" }} _active={{ fill: "primary.base" }} _focus={{ fill: "primary.base" }} - > + /> @@ -53,7 +53,7 @@ export const GridItem: React.FC = ({ metric, dir }) => { // Returns either 90 or 30-day data range depending on `range` selection const filteredData = (data: Array<{ timestamp: number }>) => { if (!data) return - if (range === ranges[1]) return [...data] + if (range === RANGES[1]) return [...data] return data.filter(({ timestamp }) => { const millisecondRange = 1000 * 60 * 60 * 24 * 30 const now = new Date().getTime() @@ -61,20 +61,21 @@ export const GridItem: React.FC = ({ metric, dir }) => { }) } - const minValue = state.data.reduce( - (prev, { value }) => (prev < value ? prev : value), - 1e42 - ) + const minValue = hasData + ? state.data.reduce( + (prev, { value }) => (prev < value ? prev : value), + Infinity + ) + : 0 - const maxValue = state.data.reduce( - (prev, { value }) => (prev > value ? prev : value), - 0 - ) + const maxValue = hasData + ? state.data.reduce((prev, { value }) => (prev > value ? prev : value), 0) + : 0 const chart: React.ReactNode = ( @@ -120,7 +121,6 @@ export const GridItem: React.FC = ({ metric, dir }) => { height={80} flexDirection="column" justifyContent="space-between" - alignItems="flex-start" borderX={{ base: "0px solid #000000", lg: "1px solid", @@ -144,52 +144,29 @@ export const GridItem: React.FC = ({ metric, dir }) => {
{description}
- {!state.hasError && !isLoading && ( - <> - - {chart} - - {dir === "rtl" ? ( - - {buttonContainer} - - ) : ( - - {buttonContainer} - - )} - + {hasData && ( + + {chart} + )} - - {value} - + + + {value} + + {hasData && ( + + {buttonContainer} + + )} + ) } diff --git a/src/components/StatsBoxGrid/RangeSelector.tsx b/src/components/StatsBoxGrid/RangeSelector.tsx index af753e3c077..9e96577468a 100644 --- a/src/components/StatsBoxGrid/RangeSelector.tsx +++ b/src/components/StatsBoxGrid/RangeSelector.tsx @@ -1,8 +1,8 @@ -import React from "react" import { Button } from "@chakra-ui/react" -import { ranges } from "./useStatsBoxGrid" -import { MatomoEventOptions, trackCustomEvent } from "../../utils/matomo" +import { MatomoEventOptions, trackCustomEvent } from "@/lib/utils/matomo" + +import { RANGES } from "@/lib/constants" interface IRangeSelectorProps { state: string @@ -16,10 +16,10 @@ export const RangeSelector: React.FC = ({ matomo, }) => (
- {ranges.map((range, idx) => ( + {RANGES.map((range, idx) => ( diff --git a/src/components/StatsBoxGrid/index.tsx b/src/components/StatsBoxGrid/index.tsx index 4b4a5840dc4..620389f7299 100644 --- a/src/components/StatsBoxGrid/index.tsx +++ b/src/components/StatsBoxGrid/index.tsx @@ -1,14 +1,16 @@ -import React from "react" import { SimpleGrid } from "@chakra-ui/react" +import type { AllMetricData, MetricReturnData } from "@/lib/types" + import { GridItem } from "./GridItem" import { useStatsBoxGrid } from "./useStatsBoxGrid" -export interface IProps {} - -const StatsBoxGrid: React.FC = () => { - const { metrics, dir } = useStatsBoxGrid() +type StatsBoxGridProps = { + data: AllMetricData +} +const StatsBoxGrid = ({ data }: StatsBoxGridProps) => { + const metrics = useStatsBoxGrid(data) return ( = () => { borderRadius="sm" > {metrics.map((metric, idx) => ( - + ))} ) diff --git a/src/components/StatsBoxGrid/useStatsBoxGrid.tsx b/src/components/StatsBoxGrid/useStatsBoxGrid.tsx index 7ceb2ec6b2f..c0b34f9350c 100644 --- a/src/components/StatsBoxGrid/useStatsBoxGrid.tsx +++ b/src/components/StatsBoxGrid/useStatsBoxGrid.tsx @@ -1,258 +1,100 @@ -import React, { useState, useEffect } from "react" -import axios from "axios" -import { useTranslation, useI18next } from "gatsby-plugin-react-i18next" +import { useState } from "react" +import { useRouter } from "next/router" +import { useTranslation } from "next-i18next" -import { RangeSelector } from "./RangeSelector" -import { Direction } from "../../types" -import { GATSBY_FUNCTIONS_PATH } from "../../constants" -import { getData } from "../../utils/cache" -import { - getLocaleForNumberFormat, - isLangRightToLeft, -} from "../../utils/translations" -import { Lang } from "../../utils/languages" +import type { AllMetricData, Lang, StatsBoxMetric } from "@/lib/types" -export const ranges = ["30d", "90d"] as const +import { getLocaleForNumberFormat } from "@/lib/utils/translations" -export interface State { - value: string - data: Array<{ timestamp: number; value: number }> - hasError: boolean -} +import { RANGES } from "@/lib/constants" -export interface Metric { - title: string - description: string - state: State - buttonContainer: JSX.Element - range: string - apiUrl: string - apiProvider: string -} +import { RangeSelector } from "./RangeSelector" -interface IFetchEthstoreResponse { - data: { - day: number - effective_balances_sum_wei: number - } +const formatTotalStaked = (amount: number, locale: string): string => { + return new Intl.NumberFormat(locale, { + notation: "compact", + minimumSignificantDigits: 3, + maximumSignificantDigits: 4, + }).format(amount) } -interface IFetchNodeResponse { - result: Array<{ UTCDate: number; TotalNodeCount: number }> +const formatTVL = (tvl: number, locale: string): string => { + return new Intl.NumberFormat(locale, { + style: "currency", + currency: "USD", + notation: "compact", + minimumSignificantDigits: 3, + maximumSignificantDigits: 4, + }).format(tvl) } -interface IFetchTotalValueLockedResponse { - date: string - totalLiquidityUSD: number +const formatTxs = (txs: number, locale: string): string => { + return new Intl.NumberFormat(locale, { + notation: "compact", + minimumSignificantDigits: 3, + maximumSignificantDigits: 4, + }).format(txs) } -interface IFetchTxResponse { - unixTimeStamp: string - transactionCount: number +const formatNodes = (nodes: number, locale: string): string => { + return new Intl.NumberFormat(locale, { + minimumSignificantDigits: 3, + maximumSignificantDigits: 4, + }).format(nodes) } -export const useStatsBoxGrid = () => { - const { t } = useTranslation() - const { language } = useI18next() +export const useStatsBoxGrid = ({ + totalEthStaked, + nodeCount, + totalValueLocked, + txCount, +}: AllMetricData): StatsBoxMetric[] => { + const { t } = useTranslation("page-index") + const { locale } = useRouter() - const [totalEthStaked, setTotalEthStaked] = useState({ - data: [], - value: "0", - hasError: false, - }) - const [valueLocked, setValueLocked] = useState({ - data: [], - value: "0", - hasError: false, - }) - const [txs, setTxs] = useState({ - data: [], - value: "0", - hasError: false, - }) - const [nodes, setNodes] = useState({ - data: [], - value: "0", - hasError: false, - }) const [selectedRangeTotalStaked, setSelectedRangeTotalStaked] = - useState(ranges[0]) - const [selectedRangeTvl, setSelectedRangeTvl] = useState(ranges[0]) + useState(RANGES[0]) + const [selectedRangeTvl, setSelectedRangeTvl] = useState(RANGES[0]) const [selectedRangeNodes, setSelectedRangeNodes] = useState( - ranges[0] + RANGES[0] ) - const [selectedRangeTxs, setSelectedRangeTxs] = useState(ranges[0]) - - useEffect(() => { - const localeForStatsBoxNumbers = getLocaleForNumberFormat(language as Lang) - - const formatTotalStaked = (amount: number): string => { - return new Intl.NumberFormat(localeForStatsBoxNumbers, { - notation: "compact", - minimumSignificantDigits: 3, - maximumSignificantDigits: 4, - }).format(amount) - } + const [selectedRangeTxs, setSelectedRangeTxs] = useState(RANGES[0]) - const formatTVL = (tvl: number): string => { - return new Intl.NumberFormat(localeForStatsBoxNumbers, { - style: "currency", - currency: "USD", - notation: "compact", - minimumSignificantDigits: 3, - maximumSignificantDigits: 4, - }).format(tvl) - } + const localeForNumberFormat = getLocaleForNumberFormat(locale! as Lang) - const formatTxs = (txs: number): string => { - return new Intl.NumberFormat(localeForStatsBoxNumbers, { - notation: "compact", - minimumSignificantDigits: 3, - maximumSignificantDigits: 4, - }).format(txs) - } - - const formatNodes = (nodes: number): string => { - return new Intl.NumberFormat(localeForStatsBoxNumbers, { - minimumSignificantDigits: 3, - maximumSignificantDigits: 4, - }).format(nodes) - } - - const weiToRoundedEther = (wei: number): number => Math.floor(wei * 1e-18) - - const fetchTotalStaked = async (): Promise => { - const { href: ethstoreLatest } = new URL( - "api/v1/ethstore/latest", - "https://beaconcha.in" - ) - try { - // 1- Use initial call to `latest` to fetch current Beacon Chain "day" (for use in secondary fetches) - const ethStoreResponse = await getData( - ethstoreLatest - ) - const { - data: { day, effective_balances_sum_wei }, - } = ethStoreResponse - const valueTotalEth = weiToRoundedEther(effective_balances_sum_wei) - const currentValueTotalEth = formatTotalStaked(valueTotalEth) - const MS_PER_DAY = 1000 * 60 * 60 * 24 - const [DAYS_TO_FETCH, DAY_DELTA] = [90, 5] - const data = [ - { - timestamp: new Date().getTime(), - value: valueTotalEth, - }, - ] - // 2- Perform multiple API calls to fetch data for the last 90 days, `getData` for caching - for (let i = DAY_DELTA; i <= DAYS_TO_FETCH; i += DAY_DELTA) { - const lookupDay = day - i - const timestamp = new Date().getTime() - i * MS_PER_DAY - const { href: ethstoreDay } = new URL( - `api/v1/ethstore/${lookupDay}`, - "https://beaconcha.in" - ) - const { - data: { effective_balances_sum_wei: sumWei }, - } = await getData(ethstoreDay) - const value = weiToRoundedEther(sumWei) - data.push({ timestamp, value }) + const totalEtherStaked = + "error" in totalEthStaked + ? { error: totalEthStaked.error } + : { + data: totalEthStaked.data, + value: formatTotalStaked(totalEthStaked.value, localeForNumberFormat), } - data.sort((a, b) => a.timestamp - b.timestamp) - setTotalEthStaked({ - data, // historical data: { timestamp: unix-milliseconds, value } - value: currentValueTotalEth, // current value - hasError: false, - }) - } catch (error) { - setTotalEthStaked((prev) => ({ ...prev, hasError: true })) - } - } - fetchTotalStaked() - const fetchNodes = async (): Promise => { - try { - const { result } = await getData( - `${GATSBY_FUNCTIONS_PATH}/etherscan` - ) - const data = result - .map(({ UTCDate, TotalNodeCount }) => ({ - timestamp: new Date(UTCDate).getTime(), - value: Number(TotalNodeCount), - })) - .sort((a, b) => a.timestamp - b.timestamp) - const value = formatNodes(data[data.length - 1].value) - setNodes({ - data, // historical data: { timestamp: unix-milliseconds, value } - value, // current value - hasError: false, - }) - } catch (error) { - console.error(error) - setNodes((nodes) => ({ - ...nodes, - hasError: true, - })) - } - } - fetchNodes() + const valueLocked = + "error" in totalValueLocked + ? { error: totalValueLocked.error } + : { + data: totalValueLocked.data, + value: formatTVL(totalValueLocked.value, localeForNumberFormat), + } - const fetchTotalValueLocked = async (): Promise => { - try { - const response = await getData>( - `${GATSBY_FUNCTIONS_PATH}/defipulse` - ) - const data = response - .map(({ date, totalLiquidityUSD }) => ({ - timestamp: parseInt(date) * 1000, - value: totalLiquidityUSD, - })) - .sort((a, b) => a.timestamp - b.timestamp) - const value = formatTVL(data[data.length - 1].value) - setValueLocked({ - data, // historical data: { timestamp: unix-milliseconds, value } - value, // current value - hasError: false, - }) - } catch (error) { - console.error(error) - setValueLocked((valueLocked) => ({ - ...valueLocked, - hasError: true, - })) - } - } - fetchTotalValueLocked() + const txs = + "error" in txCount + ? { error: txCount.error } + : { + data: txCount.data, + value: formatTxs(txCount.value, localeForNumberFormat), + } - const fetchTxCount = async (): Promise => { - try { - const response = await getData>( - `${process.env.GATSBY_FUNCTIONS_PATH}/txs` - ) - const data = response - .map(({ unixTimeStamp, transactionCount }) => ({ - timestamp: parseInt(unixTimeStamp) * 1000, // unix milliseconds - value: transactionCount, - })) - .sort((a, b) => a.timestamp - b.timestamp) - const value = formatTxs(data[data.length - 1].value) - setTxs({ - data, - value, - hasError: false, - }) - } catch (error) { - console.error(error) - setTxs((txs) => ({ - ...txs, - hasError: true, - })) - } - } - fetchTxCount() - }, [language]) + const nodes = + "error" in nodeCount + ? { error: nodeCount.error } + : { + data: nodeCount.data, + value: formatNodes(nodeCount.value, localeForNumberFormat), + } - const metrics: Array = [ + const metrics: StatsBoxMetric[] = [ { apiProvider: "Beaconcha.in", apiUrl: "https://beaconcha.in/", @@ -269,7 +111,7 @@ export const useStatsBoxGrid = () => { }} /> ), - state: totalEthStaked, + state: totalEtherStaked, range: selectedRangeTotalStaked, }, { @@ -330,10 +172,6 @@ export const useStatsBoxGrid = () => { range: selectedRangeNodes, }, ] - const dir: Direction = isLangRightToLeft(language as Lang) ? "rtl" : "ltr" - return { - metrics, - dir, - } + return metrics } diff --git a/src/components/Table/index.tsx b/src/components/Table/index.tsx index bc9cddf6b16..469a2006f78 100644 --- a/src/components/Table/index.tsx +++ b/src/components/Table/index.tsx @@ -2,14 +2,13 @@ import * as React from "react" import { Table as ChakraTable, TableContainer, + Tbody, Td, Th, - Tr, - ThemingProps, - Tbody, Thead, + ThemingProps, + Tr, } from "@chakra-ui/react" -import { MDXProviderComponentsProp } from "@mdx-js/react" /* * TODO: Currently, there are cell spacing issues with some table content. @@ -30,7 +29,7 @@ const Table = (props: TableProps) => { ) } -export const mdxTableComponents: MDXProviderComponentsProp = { +export const mdxTableComponents = { table: Table, th: ({ align, ...rest }) => , td: ({ align, ...rest }) => , diff --git a/src/components/Table/stories/Table.stories.tsx b/src/components/Table/stories/Table.stories.tsx index a6a3a3213d0..07843e5ae10 100644 --- a/src/components/Table/stories/Table.stories.tsx +++ b/src/components/Table/stories/Table.stories.tsx @@ -1,7 +1,9 @@ import * as React from "react" import { Flex } from "@chakra-ui/react" import { Meta, StoryObj } from "@storybook/react" + import TableComponent from ".." + import { MdxDemoData, MdxEnergyConsumpData, @@ -43,8 +45,12 @@ export const Tables: Story = { export const MockDocContent: Story = { render: () => ( <> - } variant="simple" /> - } /> + + + + + + ), } diff --git a/src/components/Table/stories/mockMdxData.tsx b/src/components/Table/stories/mockMdxData.tsx index ff227615a9b..49ea4cd1b46 100644 --- a/src/components/Table/stories/mockMdxData.tsx +++ b/src/components/Table/stories/mockMdxData.tsx @@ -1,5 +1,5 @@ import * as React from "react" -import { Td, Th, Tr, Tbody, Thead } from "@chakra-ui/react" +import { Tbody, Td, Th, Thead,Tr } from "@chakra-ui/react" /* * Note on the Chakra Table components: @@ -32,7 +32,8 @@ export const MdxDemoData = () => ( work - Web3 payment apps require no personal data and can't prevent payments + Web3 payment apps require no personal data and can't prevent + payments @@ -40,8 +41,8 @@ export const MdxDemoData = () => ( Servers for gig-economy apps could go down and affect worker income - Web3 servers can't go down – they use Ethereum, a decentralized - network of 1000s of computers as their backend + Web3 servers can't go down – they use Ethereum, a + decentralized network of 1000s of computers as their backend @@ -53,16 +54,16 @@ export const MdxEnergyConsumpData = () => ( - Annualized energy consumption (TWh) - Comparison to PoS Ethereum + Annualized energy consumption (TWh) + Comparison to PoS Ethereum Source Global data centers - 200 - 77,000x + 200 + 77,000x ( Gold mining - 131 - 50,000x + 131 + 50,000x ( Bitcoin - 131 - 50,000x + 131 + 50,000x ( PoW Ethereum - 78 - 30,000x + 78 + 30,000x ( Youtube (direct only) - 12 - 4600x + 12 + 4600x ( Gaming in USA - 34 - 13,000x + 34 + 13,000x ( Netflix - 0.451 - 173x + 0.451 + 173x ( PayPal - 0.26 - 100x + 0.26 + 100x ( AirBnB - 0.02 - 8x + 0.02 + 8x ( PoS Ethereum - 0.0026 - 1x + 0.0026 + 1x ( They have trust assumptions with respect to the custody of funds and - the security of the bridge. Users mostly rely on the bridge operator's - reputation. + the security of the bridge. Users mostly rely on the bridge + operator's reputation. They are trustless, i.e., the security of the bridge is the same as diff --git a/src/components/TableOfContents/ItemsList.tsx b/src/components/TableOfContents/ItemsList.tsx index 81a07a06f55..6f242c943e3 100644 --- a/src/components/TableOfContents/ItemsList.tsx +++ b/src/components/TableOfContents/ItemsList.tsx @@ -1,10 +1,11 @@ -import React from "react" import { ChakraProps, List, ListItem } from "@chakra-ui/react" -import { Item } from "./utils" -import Link from "./TableOfContentsLink" + +import type { ToCItem } from "@/lib/types" + +import ToCLink from "@/components/TableOfContents/TableOfContentsLink" export interface IPropsItemsList extends ChakraProps { - items?: Array + items: Array depth: number maxDepth: number activeHash?: string @@ -17,37 +18,36 @@ const ItemsList: React.FC = ({ activeHash, ...rest }) => { - if (depth > maxDepth || !items) { - return null - } + if (depth > maxDepth) return null return ( <> - {items.map((item, index) => ( - - {item.title && ( - - )} - {item.items && ( - - - - )} - - ))} + {items.map((item, index) => { + const { title, items } = item + return ( + + + {items && ( + + + + )} + + ) + })} ) } diff --git a/src/components/TableOfContents/TableOfContentsLink.tsx b/src/components/TableOfContents/TableOfContentsLink.tsx index 2520c5cd31c..2795d9d2c8e 100644 --- a/src/components/TableOfContents/TableOfContentsLink.tsx +++ b/src/components/TableOfContents/TableOfContentsLink.tsx @@ -1,32 +1,30 @@ -import React from "react" -import { Link as GatsbyLink } from "gatsby" -import { SystemStyleObject, cssVar } from "@chakra-ui/react" -import CustomLink, { BaseLink } from "../Link" -import { getCustomId, Item, trimmedTitle } from "./utils" +import { cssVar,SystemStyleObject } from "@chakra-ui/react" + +import type { ToCItem } from "@/lib/types" + +import { BaseLink } from "@/components/Link" + +import { useRtlFlip } from "@/hooks/useRtlFlip" export interface IPropsTableOfContentsLink { depth: number - item: Item + item: ToCItem activeHash?: string } const Link: React.FC = ({ depth, - item, + item: { title, url }, activeHash, }) => { - const url = `#${getCustomId(item.title)}` - + const { flipForRtl } = useRtlFlip() const isActive = activeHash === url const isNested = depth === 2 - let classes = "" - if (isActive) { - classes += " active" - } - if (isNested) { - classes += " nested" - } + const classList: Array = [] + isActive && classList.push("active") + isNested && classList.push("nested") + const classes = classList.join(" ") const $dotBg = cssVar("dot-bg") @@ -40,7 +38,7 @@ const Link: React.FC = ({ borderRadius: "50%", boxSize: 2, position: "absolute", - left: "-1.29rem", + insetInlineStart: "-1.29rem", top: "50%", mt: -1, }, @@ -48,8 +46,7 @@ const Link: React.FC = ({ return ( = ({ opacity: 0.5, display: "inline-flex", position: "absolute", - left: -3.5, + insetInlineStart: -3.5, top: -1, + transform: flipForRtl, }, "&.active, &:hover": { _after: { - left: "-2.29rem", + insetInlineStart: "-2.29rem", }, }, }, }} > - {trimmedTitle(item.title)} + {title} ) } diff --git a/src/components/TableOfContents/TableOfContentsMobile.tsx b/src/components/TableOfContents/TableOfContentsMobile.tsx index 90c0cc6e8a8..be160f30a53 100644 --- a/src/components/TableOfContents/TableOfContentsMobile.tsx +++ b/src/components/TableOfContents/TableOfContentsMobile.tsx @@ -1,26 +1,31 @@ +import React from "react" +import { useTranslation } from "next-i18next" +import { MdExpandMore } from "react-icons/md" import { - useDisclosure, - chakra, Box, + chakra, Fade, Flex, Icon, List, Show, + useDisclosure, useToken, } from "@chakra-ui/react" -import React from "react" -import { MdExpandMore } from "react-icons/md" -import Translation from "../Translation" + +import type { ToCItem } from "@/lib/types" + +import { outerListProps } from "@/lib/utils/toc" + import ItemsList from "./ItemsList" -import { Item, outerListProps } from "./utils" export interface IPropsTableOfContentsMobile { - items?: Array + items?: Array maxDepth?: number } const Mobile: React.FC = ({ items, maxDepth }) => { + const { t } = useTranslation("common") // TODO: Replace with direct token implementation after UI migration is completed const lgBp = useToken("breakpoints", "lg") @@ -32,49 +37,47 @@ const Mobile: React.FC = ({ items, maxDepth }) => { } return ( - - {/* TODO: switch `l` to `lg` after UI migration and use `hideBelow` prop */} - + + + {t("on-this-page")} + + + + - - - - - + - - - - - - - - + + + ) } diff --git a/src/components/TableOfContents/index.tsx b/src/components/TableOfContents/index.tsx index 40c57c073c2..3664436ea2e 100644 --- a/src/components/TableOfContents/index.tsx +++ b/src/components/TableOfContents/index.tsx @@ -1,30 +1,27 @@ -import React from "react" - +import { useTranslation } from "next-i18next" +import { FaGithub } from "react-icons/fa" import { Box, BoxProps, calc, - Flex, Icon, List, ListItem, - Show, useToken, } from "@chakra-ui/react" -import { FaGithub } from "react-icons/fa" -import { useActiveHash } from "../../hooks/useActiveHash" -import { ButtonLink } from "../Buttons" -import Translation from "../Translation" -import Mobile from "./TableOfContentsMobile" -import ItemsList from "./ItemsList" -import { getCustomId, type Item, outerListProps } from "./utils" -import { trackCustomEvent } from "../../utils/matomo" +import type { ToCItem } from "@/lib/types" + +import { ButtonLink } from "@/components/Buttons" +import ItemsList from "@/components/TableOfContents/ItemsList" +import Mobile from "@/components/TableOfContents/TableOfContentsMobile" -export { Item } +import { outerListProps } from "@/lib/utils/toc" + +import { useActiveHash } from "@/hooks/useActiveHash" export interface IProps extends BoxProps { - items: Array + items: Array maxDepth?: number slug?: string editPath?: string @@ -41,22 +38,19 @@ const TableOfContents: React.FC = ({ isMobile = false, ...rest }) => { + const { t } = useTranslation("common") // TODO: Replace with direct token implementation after UI migration is completed const lgBp = useToken("breakpoints", "lg") const titleIds: Array = [] if (!isMobile) { - const getTitleIds = (items: Array, depth: number): void => { - if (depth > (maxDepth ? maxDepth : 1)) return - - items?.forEach((item) => { - if (item.items && Array.isArray(item.items)) { - if (item.title) titleIds.push(getCustomId(item.title)) - getTitleIds(item.items, depth + 1) - } else { - titleIds.push(getCustomId(item.title)) - } + const getTitleIds = (items: Array, depth: number): void => { + // Return early if maxDepth hit + if (depth > maxDepth) return + items?.forEach(({ url, items }) => { + titleIds.push(url) + items && getTitleIds(items, depth + 1) }) } @@ -65,10 +59,6 @@ const TableOfContents: React.FC = ({ const activeHash = useActiveHash(titleIds) - // Exclude

from TOC - if (items?.length === 1) { - items = items[0].items! - } if (!items) { return null } @@ -77,48 +67,46 @@ const TableOfContents: React.FC = ({ } return ( - // TODO: Switch to `above="lg"` after completion of Chakra Migration - - - - {!hideEditButton && ( - - } - to={editPath} - variant="outline" - > - - - - )} - - - - - - - + + + {!hideEditButton && editPath && ( + + } + href={editPath} + variant="outline" + > + {t("edit-page")} + - - - + )} + + + {t("on-this-page")} + + + + + + + ) } diff --git a/src/components/TableOfContents/utils.ts b/src/components/TableOfContents/utils.ts deleted file mode 100644 index d72f074411f..00000000000 --- a/src/components/TableOfContents/utils.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { ListProps } from "@chakra-ui/react" - -export const customIdRegEx = /^.+(\s*\{#([A-Za-z0-9\-_]+?)\}\s*)$/ -export const emojiRegEx = //g - -export const slugify = (s: string): string => - encodeURIComponent(String(s).trim().toLowerCase().replace(/\s+/g, "-")) - -export const getCustomId = (title: string): string => { - const match = customIdRegEx.exec(title) - if (match) { - return match[2].toLowerCase() - } - console.warn("Missing custom ID on header: ", title) - return slugify(title) -} - -export const trimmedTitle = (title: string): string => { - const match = customIdRegEx.exec(title) - const trimmedTitle = match ? title.replace(match[1], "").trim() : title - - // Removes Twemoji components from title - const emojiMatch = emojiRegEx.exec(trimmedTitle) - return emojiMatch ? trimmedTitle.replaceAll(emojiRegEx, "") : trimmedTitle -} - -export interface Item { - title: string - items?: Array -} - -/** - * Common props used used for the outermost list element in the mobile and desktop renders - */ -export const outerListProps: ListProps = { - borderStart: "1px solid", - borderStartColor: "dropdownBorder", - borderTop: 0, - fontSize: "sm", - lineHeight: 1.6, - fontWeight: 400, - m: 0, - mt: 2, - mb: 2, - ps: 4, - pe: 1, - pt: 0, - sx: { - // TODO: Flip to object syntax with `lg` token after completion of Chakra migration - "@media (max-width: 1024px)": { - borderStart: 0, - borderTop: "1px", - borderTopColor: "primary300", - ps: 0, - pt: 4, - }, - }, -} diff --git a/src/components/Tabs.tsx b/src/components/Tabs.tsx index eddd350e4d9..cbe26cf8743 100644 --- a/src/components/Tabs.tsx +++ b/src/components/Tabs.tsx @@ -1,10 +1,10 @@ import React, { ReactNode } from "react" import { - Tabs as ChakraTabs, - TabList, Tab, - TabPanels, + TabList, TabPanel, + TabPanels, + Tabs as ChakraTabs, } from "@chakra-ui/react" interface Tab { diff --git a/src/components/Tag/Tag.stories.tsx b/src/components/Tag/Tag.stories.tsx index 231047e6ea7..89cf0a2f979 100644 --- a/src/components/Tag/Tag.stories.tsx +++ b/src/components/Tag/Tag.stories.tsx @@ -1,9 +1,10 @@ import * as React from "react" -import { Meta, StoryObj } from "@storybook/react" -import { Box, HStack, Link, VStack } from "@chakra-ui/react" +import { MdInfoOutline, MdLanguage } from "react-icons/md" import { TbSquareRoundedNumber8Filled } from "react-icons/tb" +import { Box, HStack, Link, VStack } from "@chakra-ui/react" +import { Meta, StoryObj } from "@storybook/react" + import Tag, { EthTagProps } from "." -import { MdInfoOutline, MdLanguage } from "react-icons/md" type TagType = typeof Tag diff --git a/src/components/TitleCardList.tsx b/src/components/TitleCardList.tsx index 82eaaf6e247..0395675a581 100644 --- a/src/components/TitleCardList.tsx +++ b/src/components/TitleCardList.tsx @@ -1,26 +1,27 @@ import React from "react" -import { IGatsbyImageData } from "gatsby-plugin-image" +import { IoCodeOutline } from "react-icons/io5" import { - Flex, Box, + Flex, Hide, Icon, LinkBox, LinkOverlay, useColorModeValue, } from "@chakra-ui/react" -import { IoCodeOutline } from "react-icons/io5" -import { BaseLink } from "./Link" -import Translation from "./Translation" -import GatsbyImage from "./GatsbyImage" -import { TranslationKey } from "../utils/translations" + +import { TranslationKey } from "@/lib/types" + +import { Image } from "@/components/Image" +import { BaseLink } from "@/components/Link" +import Translation from "@/components/Translation" export interface ITitleCardItem { title: string description: string caption?: string link?: string - image?: IGatsbyImageData + image?: string alt?: string id?: number } @@ -78,21 +79,21 @@ const TitleCardList: React.FC = ({ width="12px" height="12px" bg="fail300" - marginRight={2} + me={2} borderRadius="full" /> @@ -122,15 +123,15 @@ const TitleCardList: React.FC = ({ }} > {image && ( - )} - + = ({ flex="1 0 25%" alignItems="center" flexWrap="wrap" - marginRight={4} + me={4} > = ({ }} > {image && ( - )} - + {title} = ({ flex="1 0 25%" alignItems="center" flexWrap="wrap" - marginRight={4} + me={4} > = ({ content, children }) => { const [isVisible, setIsVisible] = useState(false) - const isMobile = utils.isMobile() + const isMobile = isMobileCheck() const shadow = useColorModeValue("tableBox.light", "tableBox.dark") const borderColor = useToken("colors", "primary.lowContrast") @@ -23,7 +24,7 @@ const Tooltip: React.FC = ({ content, children }) => { = ({ content, children }) => { borderRadius="base" border={`1px solid ${borderColor}`} bottom="125%" - left={{ base: "-70px", md: "-150px" }} - marginLeft="50%" + insetInlineStart={{ base: "-70px", md: "-150px" }} + ms="50%" initial="exit" animate="enter" exit="exit" @@ -89,7 +90,7 @@ const Tooltip: React.FC = ({ content, children }) => { position="absolute" bg="transparent" bottom={-2} - left={0} + insetInlineStart={0} width="100%" height={5} /> @@ -97,16 +98,16 @@ const Tooltip: React.FC = ({ content, children }) => { as="span" position="absolute" bottom={-2} - left="calc(50% - 6px)" - borderRightWidth={10} - borderRightStyle="solid" - borderRightColor="transparent" + insetInlineStart="calc(50% - 6px)" + borderInlineEndWidth={10} + borderInlineEndStyle="solid" + borderInlineEndColor="transparent" borderTopWidth={10} borderTopStyle="solid" borderTopColor="background.highlight" - borderLeftWidth={10} - borderLeftStyle="solid" - borderLeftColor="transparent" + borderInlineStartWidth={10} + borderInlineStartStyle="solid" + borderInlineStartColor="transparent" /> {content} diff --git a/src/components/Translation.tsx b/src/components/Translation.tsx index 873071560a0..af6c47f6202 100644 --- a/src/components/Translation.tsx +++ b/src/components/Translation.tsx @@ -1,11 +1,13 @@ -import React from "react" -import { useTranslation } from "gatsby-plugin-react-i18next" -import { TOptions } from "i18next" import htmr from "htmr" +import type { TOptions } from "i18next" +import { useRouter } from "next/router" +import { useTranslation } from "next-i18next" + +import { getRequiredNamespacesForPage } from "@/lib/utils/translations" import InlineLink from "./Link" -interface Props { +type TranslationProps = { id: string options?: TOptions } @@ -18,14 +20,16 @@ const transform = { // Renders the translation string for the given translation key `id`. It // fallback to English if it doesn't find the given key in the current language -const Translation = ({ id, options }: Props) => { - const { t } = useTranslation() +const Translation = ({ id, options }: TranslationProps) => { + const { asPath } = useRouter() + const requiredNamespaces = getRequiredNamespacesForPage(asPath) + const { t } = useTranslation(requiredNamespaces) const translatedText = t(id, options) // Use `htmr` to parse html content in the translation text // @ts-ignore - return <>{htmr(translatedText, { transform })} + return htmr(translatedText, { transform }) } export default Translation diff --git a/src/components/TranslationBanner.tsx b/src/components/TranslationBanner.tsx index 1c02486a0b2..ed141c39b20 100644 --- a/src/components/TranslationBanner.tsx +++ b/src/components/TranslationBanner.tsx @@ -1,25 +1,26 @@ -import React, { useEffect, useState } from "react" - +import { useEffect, useState } from "react" +import { useTranslation } from "next-i18next" import { Box, CloseButton, Flex, Heading, useToken } from "@chakra-ui/react" + +import { DEFAULT_LOCALE } from "../lib/constants" + import { ButtonLink } from "./Buttons" -import Translation from "./Translation" import Emoji from "./Emoji" export interface IProps { shouldShow: boolean - isPageRightToLeft: boolean originalPagePath: string isPageContentEnglish: boolean } const TranslationBanner: React.FC = ({ shouldShow, - isPageRightToLeft, originalPagePath, isPageContentEnglish, }) => { const [isOpen, setIsOpen] = useState(shouldShow) const [textColor] = useToken("colors", ["text"]) + const { t } = useTranslation("common") useEffect(() => { setIsOpen(shouldShow) @@ -38,7 +39,7 @@ const TranslationBanner: React.FC = ({ as="aside" display={isOpen ? "block" : "none"} bottom={{ base: 0, md: 8 }} - right={{ base: 0, md: 8 }} + insetInlineEnd={{ base: 0, md: 8 }} position="fixed" zIndex="99" > @@ -57,7 +58,6 @@ const TranslationBanner: React.FC = ({ > @@ -73,25 +73,23 @@ const TranslationBanner: React.FC = ({ lineHeight="100%" my="0" > - + {t(headerTextId)} -

- -

+

{t(bodyTextId)}

- + {t("translation-banner-button-translate-page")} {!isPageContentEnglish && ( @@ -99,13 +97,13 @@ const TranslationBanner: React.FC = ({ - + {t("translation-banner-button-see-english")}
)} @@ -114,7 +112,7 @@ const TranslationBanner: React.FC = ({ = ({ shouldShow, originalPagePath, - isPageRightToLeft, }) => { // Default to isOpen being false, and let the useEffect set this. const [isOpen, setIsOpen] = useState(false) @@ -47,7 +43,7 @@ const TranslationBannerLegal: React.FC = ({ position="fixed" display={isOpen ? "block" : "none"} bottom={{ base: 0, md: 8 }} - right={{ base: 0, md: 8 }} + insetInlineEnd={{ base: 0, md: 8 }} zIndex="99" > = ({ md: "rgba(0, 0, 0, 0.16) 0px 2px 4px 0px", }} > - + = ({ text=":bug:" fontSize="3xl" pt={2} - ml={2} + ms={2} mb={{ base: 4, sm: "auto" }} /> @@ -113,7 +104,7 @@ const TranslationBannerLegal: React.FC = ({ = () => { - const data = useStaticQuery(graphql` - { - pageviewsLight: file( - relativePath: { eq: "translation-program/pageviews-light.png" } - ) { - childImageSharp { - gatsbyImageData(height: 500, placeholder: BLURRED, quality: 100) - } - } - pageviewsDark: file( - relativePath: { eq: "translation-program/pageviews-dark.png" } - ) { - childImageSharp { - gatsbyImageData(height: 500, placeholder: BLURRED, quality: 100) - } - } - } - `) +import pageviewsDark from "@/public/translation-program/pageviews-dark.png" +import pageviewsLight from "@/public/translation-program/pageviews-light.png" - const ethImage = useColorModeValue(data.pageviewsLight, data.pageviewsDark) +const TranslationChartImage = () => { + const ethImage = useColorModeValue(pageviewsLight, pageviewsDark) return ( - ) } diff --git a/src/components/TranslationLeaderboard.tsx b/src/components/TranslationLeaderboard.tsx index 054a22db91c..d0fa8ae3ab3 100644 --- a/src/components/TranslationLeaderboard.tsx +++ b/src/components/TranslationLeaderboard.tsx @@ -1,6 +1,6 @@ -// Libraries import React, { useState } from "react" import { reverse, sortBy } from "lodash" +import { useTranslation } from "next-i18next" import { Box, Button as ChakraButton, @@ -11,9 +11,7 @@ import { useRadioGroup, } from "@chakra-ui/react" -// Components import Emoji from "./Emoji" -import Translation from "./Translation" import Text from "./OldText" export interface IProps { @@ -40,8 +38,7 @@ const Button = (props) => { bg="transparent" w={{ base: "full", lg: "initial" }} justifyContent="center" - ml={{ base: "0", lg: "2" }} - mr={{ base: "0", lg: "2" }} + mx={{ base: "0", lg: "2" }} _hover={{ color: "primary.base", borderColor: "primary.base", @@ -148,6 +145,10 @@ const TranslationLeaderboard: React.FC = ({ onChange: updateDateRangeType, }) + const { t } = useTranslation( + "page-contributing-translation-program-acknowledgements" + ) + return ( = ({ w="full" > - + {t( + "page-contributing-translation-program-acknowledgements-translation-leaderboard-month-view" + )} - + {t( + "page-contributing-translation-program-acknowledgements-translation-leaderboard-quarter-view" + )} - + {t( + "page-contributing-translation-program-acknowledgements-translation-leaderboard-all-time-view" + )} @@ -192,14 +199,18 @@ const TranslationLeaderboard: React.FC = ({ - + {t( + "page-contributing-translation-program-acknowledgements-translator" + )} - - + + {t( + "page-contributing-translation-program-acknowledgements-total-words" + )} {leaderboardData[dateRangeType] @@ -239,7 +250,7 @@ const TranslationLeaderboard: React.FC = ({ {emoji ? ( - + ) : ( @@ -249,11 +260,11 @@ const TranslationLeaderboard: React.FC = ({ = ({ - + @@ -297,13 +308,11 @@ const TranslationLeaderboard: React.FC = ({ textAlign="center" fontWeight={{ base: "semibold", md: "normal" }} > - + {t( + filterAmount === 10 + ? "page-contributing-translation-program-acknowledgements-translation-leaderboard-show-more" + : "page-contributing-translation-program-acknowledgements-translation-leaderboard-show-less" + )} diff --git a/src/components/Trilemma/Triangle.tsx b/src/components/Trilemma/Triangle.tsx index 06e99539e29..4f3e43c1e75 100644 --- a/src/components/Trilemma/Triangle.tsx +++ b/src/components/Trilemma/Triangle.tsx @@ -1,6 +1,7 @@ -import React, { ReactNode } from "react" -import { useTranslation } from "gatsby-plugin-react-i18next" +import { ReactNode } from "react" +import { useTranslation } from "next-i18next" import { chakra, HTMLChakraProps } from "@chakra-ui/react" + import { HandleClickParam } from "./useTrilemma" export interface IProps { @@ -24,7 +25,7 @@ export const TriangleSVG: React.FC = ({ isSecure, isScalable, }) => { - const { t } = useTranslation() + const { t } = useTranslation("page-roadmap-vision") const Path = () => ( = ({ width={{ base: "full", lg: "auto" }} my={{ base: -28, sm: -16, lg: 0 }} mt={{ lg: 32 }} - mr={{ lg: 32 }} + me={{ lg: 32 }} > diff --git a/src/components/Trilemma/index.tsx b/src/components/Trilemma/index.tsx index e6205b4d8e5..12d84d526d1 100644 --- a/src/components/Trilemma/index.tsx +++ b/src/components/Trilemma/index.tsx @@ -1,4 +1,4 @@ -import React from "react" +import { useTranslation } from "next-i18next" import { Drawer, DrawerCloseButton, @@ -8,16 +8,17 @@ import { Hide, useToken, } from "@chakra-ui/react" -import Card from "../Card" -import Translation from "../Translation" -import Text from "../OldText" -import OldHeading from "../OldHeading" -import { TriangleSVG, IProps as TriangleSVGProps } from "./Triangle" + +import Card from "@/components/Card" +import OldHeading from "@/components/OldHeading" +import Text from "@/components/OldText" + +import { IProps as TriangleSVGProps, TriangleSVG } from "./Triangle" import { useTrilemma } from "./useTrilemma" -export interface IProps {} +const Trilemma = () => { + const { t } = useTranslation("page-roadmap-vision") -const Trilemma: React.FC = () => { const { trilemmaChecks, mobileModalOpen, @@ -51,19 +52,19 @@ const Trilemma: React.FC = () => { }} > - + {t("page-roadmap-vision-trilemma-h2")} - + {t("page-roadmap-vision-trilemma-p")} - + {t("page-roadmap-vision-trilemma-p-1")} - + {t("page-roadmap-vision-trilemma-p-2")} - : + {t("page-roadmap-vision-trilemma-modal-tip")}: @@ -86,7 +87,7 @@ const Trilemma: React.FC = () => { justifyContent="flex-start" my={8} /> - + diff --git a/src/components/Trilemma/useTrilemma.tsx b/src/components/Trilemma/useTrilemma.tsx index 4cd589acfad..1bc11c186df 100644 --- a/src/components/Trilemma/useTrilemma.tsx +++ b/src/components/Trilemma/useTrilemma.tsx @@ -1,5 +1,6 @@ -import React, { useState } from "react" -import Translation from "../Translation" +import { useState } from "react" +import { useTranslation } from "next-i18next" + import { IProps as CardProps } from "../Card" /** @@ -12,6 +13,8 @@ export type HandleClickParam = | "isScalableAndSecure" export const useTrilemma = () => { + const { t } = useTranslation("page-roadmap-vision") + const [state, setState] = useState({ isDecentralizedAndSecure: false, isDecentralizedAndScalable: false, @@ -72,20 +75,20 @@ export const useTrilemma = () => { }) } - let cardTitle = - let cardText = + let cardTitle = t("page-roadmap-vision-trilemma-title-1") + let cardText = t("page-roadmap-vision-trilemma-press-button") if (isEthereum) { - cardTitle = - cardText = + cardTitle = t("page-roadmap-vision-trilemma-title-2") + cardText = t("page-roadmap-vision-trilemma-cardtext-1") } else if (state.isDecentralizedAndSecure) { - cardTitle = - cardText = + cardTitle = t("page-roadmap-vision-trilemma-title-3") + cardText = t("page-roadmap-vision-trilemma-cardtext-2") } else if (state.isDecentralizedAndScalable) { - cardTitle = - cardText = + cardTitle = t("page-roadmap-vision-trilemma-title-4") + cardText = t("page-roadmap-vision-trilemma-cardtext-3") } else if (state.isScalableAndSecure) { - cardTitle = - cardText = + cardTitle = t("page-roadmap-vision-trilemma-title-5") + cardText = t("page-roadmap-vision-trilemma-cardtext-4") } return { diff --git a/src/components/TutorialMetadata.tsx b/src/components/TutorialMetadata.tsx index 0fb1a73749e..6e46c457afa 100644 --- a/src/components/TutorialMetadata.tsx +++ b/src/components/TutorialMetadata.tsx @@ -1,20 +1,21 @@ -import React from "react" -import { useI18next } from "gatsby-plugin-react-i18next" -import { Badge, Box, Flex, HStack } from "@chakra-ui/react" +import { useRouter } from "next/router" +import { useTranslation } from "next-i18next" +import { Badge, Box, Flex, HStack, Text } from "@chakra-ui/react" -import Emoji from "./Emoji" -import CopyToClipboard from "./CopyToClipboard" -import InlineLink from "./Link" -import TutorialTags from "./TutorialTags" -import Translation from "./Translation" -import Text from "./OldText" +import type { Lang, TranslationKey } from "@/lib/types" +import { TutorialFrontmatter } from "@/lib/interfaces" -import { Lang } from "../utils/languages" -import { getLocaleTimestamp } from "../utils/time" -import { TranslationKey } from "../utils/translations" +import CopyToClipboard from "@/components/CopyToClipboard" +import Emoji from "@/components/Emoji" +import InlineLink from "@/components/Link" +import Translation from "@/components/Translation" +import TutorialTags from "@/components/TutorialTags" -export interface IProps { - tutorial: any +import { getLocaleTimestamp } from "@/lib/utils/time" + +export type TutorialMetadataProps = { + frontmatter: TutorialFrontmatter + timeToRead: number } export enum Skill { @@ -24,12 +25,17 @@ export enum Skill { } export const getSkillTranslationId = (skill: Skill): TranslationKey => - `page-tutorial-${Skill[skill.toUpperCase() as keyof typeof Skill]}` + `page-developers-tutorials:page-tutorial-${ + Skill[skill.toUpperCase() as keyof typeof Skill] + }` -const TutorialMetadata: React.FC = ({ tutorial }) => { - const { language } = useI18next() +const TutorialMetadata = ({ + frontmatter, + timeToRead, +}: TutorialMetadataProps) => { + const { locale } = useRouter() + const { t } = useTranslation("page-developers-tutorials") - const frontmatter = tutorial.frontmatter const hasSource = frontmatter.source && frontmatter.sourceUrl const published = frontmatter.published const author = frontmatter.author @@ -53,7 +59,7 @@ const TutorialMetadata: React.FC = ({ tutorial }) => { mb={2} whiteSpace="nowrap" > - + {t(getSkillTranslationId(frontmatter.skill as Skill))} = ({ tutorial }) => { > {author && ( - + {author} )} {hasSource && ( - + {frontmatter.source} @@ -82,14 +88,13 @@ const TutorialMetadata: React.FC = ({ tutorial }) => { )} {published && ( - - {getLocaleTimestamp(language as Lang, published)} + {" "} + {getLocaleTimestamp(locale! as Lang, published)} )} - - {Math.round(tutorial.fields.readingTime.minutes)}{" "} - + + {timeToRead} {t("comp-tutorial-metadata-minute-read")} minute read = ({ tutorial }) => { justifyContent="flex-start" > {address && ( - - + + {(isCopied) => ( - - {!isCopied ? ( - - {" "} - {frontmatter.address} - - ) : ( - - {" "} - {frontmatter.address} - - + + {" "} + {address} {isCopied && } + {isCopied && ( + )} - + )} diff --git a/src/components/TutorialTags.tsx b/src/components/TutorialTags.tsx index 840f4691a17..51689ffdd71 100644 --- a/src/components/TutorialTags.tsx +++ b/src/components/TutorialTags.tsx @@ -1,5 +1,5 @@ -import { Badge } from "@chakra-ui/react" import React from "react" +import { Badge } from "@chakra-ui/react" // Represent string as 32-bit integer const hashCode = (string) => { diff --git a/src/components/UpcomingEventsList.tsx b/src/components/UpcomingEventsList.tsx index 76f63c7c605..1ce916bc2f6 100644 --- a/src/components/UpcomingEventsList.tsx +++ b/src/components/UpcomingEventsList.tsx @@ -1,19 +1,16 @@ -// Libraries -import React, { useEffect, useState } from "react" +import { useEffect, useState } from "react" import { Box } from "@chakra-ui/react" -// Components -import EventCard from "./EventCard" -import InfoBanner from "./InfoBanner" -import InlineLink from "./Link" -import Translation from "./Translation" -import { Button } from "./Buttons" +import Translation from "@/components/Translation" + +import { trackCustomEvent } from "@/lib/utils/matomo" -// Data import events from "../data/community-events.json" -// Utils -import { trackCustomEvent } from "../utils/matomo" +import { Button } from "./Buttons" +import EventCard from "./EventCard" +import InfoBanner from "./InfoBanner" +import InlineLink from "./Link" interface ICommunityEventData { title: string @@ -30,9 +27,7 @@ interface IOrderedUpcomingEventType extends ICommunityEventData { formattedDetails: string } -export interface IProps {} - -const UpcomingEventsList: React.FC = () => { +const UpcomingEventsList: React.FC = () => { const eventsPerLoad = 10 const [orderedUpcomingEvents, setOrderedUpcomingEvents] = useState< Array @@ -104,7 +99,7 @@ const UpcomingEventsList: React.FC = () => { {" "} - + ) @@ -125,7 +120,7 @@ const UpcomingEventsList: React.FC = () => { height: "full", background: "primary.base", top: 0, - left: "50%", + insetInlineStart: "50%", }} _after={{ content: '""', @@ -158,7 +153,7 @@ const UpcomingEventsList: React.FC = () => { > {isVisible && ( )}
diff --git a/src/components/UpgradeBannerNotification.tsx b/src/components/UpgradeBannerNotification.tsx index 38ae5d825d7..a6fb918d593 100644 --- a/src/components/UpgradeBannerNotification.tsx +++ b/src/components/UpgradeBannerNotification.tsx @@ -1,14 +1,18 @@ import React from "react" import { Box } from "@chakra-ui/react" + import BannerNotification from "./BannerNotification" import Emoji from "./Emoji" import InlineLink from "./Link" const UpgradeBannerNotification: React.FC = () => ( - + - We've deprecated our use of 'Eth1' and 'Eth2' terms.{" "} + + We've deprecated our use of 'Eth1' and 'Eth2' + terms. + {" "} Read the full announcement diff --git a/src/components/UpgradeStatus.tsx b/src/components/UpgradeStatus.tsx index 1d41a0173bd..818baa40537 100644 --- a/src/components/UpgradeStatus.tsx +++ b/src/components/UpgradeStatus.tsx @@ -1,10 +1,10 @@ import React from "react" +import { useTranslation } from "next-i18next" import { Heading, useColorModeValue, VStack } from "@chakra-ui/react" -import Translation from "./Translation" -import Text from "./OldText" +import type { TranslationKey } from "@/lib/types" -import { TranslationKey } from "../utils/translations" +import Text from "./OldText" export interface IStyledContainer { isShipped: boolean @@ -23,8 +23,8 @@ const UpgradeStatus: React.FC = ({ }) => { const border = useColorModeValue("none", "2px solid") const darkBorderColor = isShipped ? "#3fb181" : "#a4a4ff" - const borderColor = useColorModeValue(undefined, darkBorderColor) + const { t } = useTranslation("page-staking") return ( = ({ width="100%" > - + {t("common:consensus-when-shipping")} - + {t(dateKey)} {children} diff --git a/src/components/UpgradeTableOfContents.tsx b/src/components/UpgradeTableOfContents.tsx index 8fd5d93d0ee..ab16eb18e47 100644 --- a/src/components/UpgradeTableOfContents.tsx +++ b/src/components/UpgradeTableOfContents.tsx @@ -1,57 +1,29 @@ -import React, { useRef } from "react" import { Box, List, ListItem } from "@chakra-ui/react" -import { BaseLink } from "./Link" -import { Item as TableOfContentsItem } from "./TableOfContents" -const customIdRegEx = /^.+(\s*\{#([A-Za-z0-9\-_]+?)\}\s*)$/ +import type { ToCItem } from "@/lib/types" -const slugify = (s: string): string => - encodeURIComponent(String(s).trim().toLowerCase().replace(/\s+/g, "-")) +import { BaseLink } from "@/components/Link" +import { IPropsItemsList } from "@/components/TableOfContents/ItemsList" -const getCustomId = (title: string): string => { - const match = customIdRegEx.exec(title) - if (match) { - return match[2].toLowerCase() - } - console.warn("Missing custom ID on header: ", title) - return slugify(title) -} +import { trimmedTitle } from "@/lib/utils/toc" -const trimmedTitle = (title: string): string => { - const match = customIdRegEx.exec(title) - return match ? title.replace(match[1], "").trim() : title +export type TableOfContentsLinkProps = { + item: ToCItem } -export interface Item extends TableOfContentsItem { - id?: string -} - -const TableOfContentsLink: React.FC<{ item: Item }> = (props) => { - const { item } = props - - const idString = useRef("") - - if (!!item.id) { - idString.current = item.id - } else { - idString.current = item.title - } - - const url = `#${getCustomId(idString.current)}` - +const TableOfContentsLink = ({ + item: { title, url }, +}: TableOfContentsLinkProps) => { let isActive = false if (typeof window !== `undefined`) { isActive = window.location.hash === url } - let classes = "" - if (isActive) { - classes += " active" - } + const classes = isActive ? "active" : "" return ( = (props) => { }} _visited={{}} > - {trimmedTitle(item.title)} + {trimmedTitle(title)} ) } -interface IPropsItemsList { - items: Array - depth: number - maxDepth: number -} - -const ItemsList: React.FC = ({ items, depth, maxDepth }) => { - if (depth > maxDepth || !items) { - return null - } +const ItemsList = ({ items, depth, maxDepth }: IPropsItemsList) => { + // Return early if maxDepth hit, or if no items + if (depth > maxDepth || !items) return null return ( <> {items.map((item, index) => ( @@ -93,32 +58,26 @@ const ItemsList: React.FC = ({ items, depth, maxDepth }) => { ) } -function UpgradeTableOfContents(props: { - items: Array<{ id: string; title: string }> -}): JSX.Element -function UpgradeTableOfContents(props: { - maxDepth: number - items: Array -}): JSX.Element -function UpgradeTableOfContents(props: { +type UpgradeTableOfContentsProps = { + items: ToCItem[] maxDepth?: number - items: Array -}) { - const { items, maxDepth = 1 } = props - - return ( - - - - - - ) } +const UpgradeTableOfContents = ({ + items, + maxDepth = 1, +}: UpgradeTableOfContentsProps) => ( + + + + + +) + export default UpgradeTableOfContents diff --git a/src/components/YouTube.tsx b/src/components/YouTube.tsx index c7b0ac2d9c6..1eb42ff7ba9 100644 --- a/src/components/YouTube.tsx +++ b/src/components/YouTube.tsx @@ -1,6 +1,7 @@ import React from "react" -import { Box } from "@chakra-ui/react" import LiteYouTubeEmbed from "react-lite-youtube-embed" +import { Box } from "@chakra-ui/react" + import "react-lite-youtube-embed/dist/LiteYouTubeEmbed.css" /** diff --git a/src/components/icons/EthHomeIcon.tsx b/src/components/icons/EthHomeIcon.tsx index 760e83a86bf..7fb0c596791 100644 --- a/src/components/icons/EthHomeIcon.tsx +++ b/src/components/icons/EthHomeIcon.tsx @@ -1,3 +1,4 @@ +/* eslint-disable react/jsx-key */ import * as React from "react" import { createIcon } from "@chakra-ui/react" diff --git a/src/components/icons/FeedbackGlyphIcon.tsx b/src/components/icons/FeedbackGlyphIcon.tsx index edd9f1b4126..0b2778d0c72 100644 --- a/src/components/icons/FeedbackGlyphIcon.tsx +++ b/src/components/icons/FeedbackGlyphIcon.tsx @@ -1,3 +1,4 @@ +/* eslint-disable react/jsx-key */ import * as React from "react" import { createIcon } from "@chakra-ui/react" diff --git a/src/components/icons/FeedbackThumbsUpIcon.tsx b/src/components/icons/FeedbackThumbsUpIcon.tsx index 93a85a85944..a492e4897af 100644 --- a/src/components/icons/FeedbackThumbsUpIcon.tsx +++ b/src/components/icons/FeedbackThumbsUpIcon.tsx @@ -1,3 +1,4 @@ +/* eslint-disable react/jsx-key */ import * as React from "react" import { createIcon } from "@chakra-ui/react" diff --git a/src/components/icons/Icons.stories.tsx b/src/components/icons/Icons.stories.tsx index b4778ec6e54..97461938b6f 100644 --- a/src/components/icons/Icons.stories.tsx +++ b/src/components/icons/Icons.stories.tsx @@ -1,13 +1,7 @@ -import { - Box, - Center, - Flex, - SimpleGrid, - StackDivider, - VStack, -} from "@chakra-ui/react" -import { Meta, StoryObj } from "@storybook/react" import * as React from "react" +import { Center, Flex, SimpleGrid, VStack } from "@chakra-ui/react" +import { Meta, StoryObj } from "@storybook/react" + import { EthHomeIcon } from "./EthHomeIcon" import { FeedbackGlyphIcon } from "./FeedbackGlyphIcon" import { FeedbackThumbsUpIcon } from "./FeedbackThumbsUpIcon" @@ -21,8 +15,8 @@ import { } from "./quiz" import { DappnodeIcon, - DecentralizationGlyphIcon, DecentralizationEthGlyphIcon, + DecentralizationGlyphIcon, DownloadGlyphIcon, EarthGlyphIcon, HardwareGlyphIcon, @@ -33,6 +27,7 @@ import { } from "./run-a-node" import { AbyssGlyphIcon, + AllnodesGlyphIcon, AnkrGlyphIcon, AuditedIcon, AvadoGlyphIcon, @@ -40,18 +35,17 @@ import { BloxstakingGlyphIcon, BugBountyIcon, CautionProductGlyphIcon, - StakingDappnodeGlyphIcon, DefaultOpenSourceGlyphIcon, DockerGlyphIcon, EconomicalIcon, EthpoolGlyphIcon, GreenCheckProductGlyphIcon, - P2PGlyphIcon, KilnGlyphIcon, LidoGlyphIcon, LiquidityTokenIcon, MultiClientIcon, OpenSourceStakingIcon, + P2PGlyphIcon, PermissionlessIcon, RocketPoolGlyphIcon, RockXGlyphIcon, @@ -59,6 +53,7 @@ import { StafiGlyphIcon, StakefishGlyphIcon, StakewiseGlyphIcon, + StakingDappnodeGlyphIcon, StakingGlyphCentralizedIcon, StakingGlyphCloudIcon, StakingGlyphCPUIcon, @@ -69,7 +64,6 @@ import { UnknownProductGlyphIcon, WagyuGlyphIcon, WarningProductGlyphIcon, - AllnodesGlyphIcon, } from "./staking" import { BrowserIcon, diff --git a/src/components/icons/quiz/StarConfettiIcon.tsx b/src/components/icons/quiz/StarConfettiIcon.tsx index 63f95a59b6b..a9ed850def0 100644 --- a/src/components/icons/quiz/StarConfettiIcon.tsx +++ b/src/components/icons/quiz/StarConfettiIcon.tsx @@ -1,3 +1,4 @@ +/* eslint-disable react/jsx-key */ import React from "react" import { createIcon } from "@chakra-ui/react" diff --git a/src/components/icons/quiz/TrophyIcon.tsx b/src/components/icons/quiz/TrophyIcon.tsx index 267fe8385ec..b540db10da7 100644 --- a/src/components/icons/quiz/TrophyIcon.tsx +++ b/src/components/icons/quiz/TrophyIcon.tsx @@ -1,5 +1,7 @@ +/* eslint-disable react/jsx-key */ import React from "react" import { createIcon } from "@chakra-ui/react" + import { commonIconDefaultProps } from "../utils" export const TrophyIcon = createIcon({ diff --git a/src/components/icons/run-a-node/DecentralizationEthGlyphIcon.tsx b/src/components/icons/run-a-node/DecentralizationEthGlyphIcon.tsx index 1ca3c0d5791..23be62b5fc7 100644 --- a/src/components/icons/run-a-node/DecentralizationEthGlyphIcon.tsx +++ b/src/components/icons/run-a-node/DecentralizationEthGlyphIcon.tsx @@ -1,4 +1,4 @@ -import React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" export const DecentralizationEthGlyphIcon = createIcon({ diff --git a/src/components/icons/run-a-node/DecentralizationGlyphIcon.tsx b/src/components/icons/run-a-node/DecentralizationGlyphIcon.tsx index e46ce9f89cc..8e2f8f1daa9 100644 --- a/src/components/icons/run-a-node/DecentralizationGlyphIcon.tsx +++ b/src/components/icons/run-a-node/DecentralizationGlyphIcon.tsx @@ -1,4 +1,4 @@ -import React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" export const DecentralizationGlyphIcon = createIcon({ diff --git a/src/components/icons/run-a-node/DownloadGlyphIcon.tsx b/src/components/icons/run-a-node/DownloadGlyphIcon.tsx index 36aa0f73534..4c6c209ad83 100644 --- a/src/components/icons/run-a-node/DownloadGlyphIcon.tsx +++ b/src/components/icons/run-a-node/DownloadGlyphIcon.tsx @@ -1,4 +1,4 @@ -import React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" export const DownloadGlyphIcon = createIcon({ diff --git a/src/components/icons/run-a-node/EarthGlyphIcon.tsx b/src/components/icons/run-a-node/EarthGlyphIcon.tsx index 8dc2ce7167d..9294ee6c26a 100644 --- a/src/components/icons/run-a-node/EarthGlyphIcon.tsx +++ b/src/components/icons/run-a-node/EarthGlyphIcon.tsx @@ -1,4 +1,4 @@ -import React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" export const EarthGlyphIcon = createIcon({ diff --git a/src/components/icons/run-a-node/HardwareGlyphIcon.tsx b/src/components/icons/run-a-node/HardwareGlyphIcon.tsx index 8a69ccf93f9..753e1c63e98 100644 --- a/src/components/icons/run-a-node/HardwareGlyphIcon.tsx +++ b/src/components/icons/run-a-node/HardwareGlyphIcon.tsx @@ -1,4 +1,4 @@ -import React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" export const HardwareGlyphIcon = createIcon({ diff --git a/src/components/icons/run-a-node/MegaphoneGlyphIcon.tsx b/src/components/icons/run-a-node/MegaphoneGlyphIcon.tsx index 2d3f10b984f..683c2b4dc34 100644 --- a/src/components/icons/run-a-node/MegaphoneGlyphIcon.tsx +++ b/src/components/icons/run-a-node/MegaphoneGlyphIcon.tsx @@ -1,4 +1,4 @@ -import React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" export const MegaphoneGlyphIcon = createIcon({ diff --git a/src/components/icons/run-a-node/PrivacyGlyphIcon.tsx b/src/components/icons/run-a-node/PrivacyGlyphIcon.tsx index 05ea506344d..78ee0ac982c 100644 --- a/src/components/icons/run-a-node/PrivacyGlyphIcon.tsx +++ b/src/components/icons/run-a-node/PrivacyGlyphIcon.tsx @@ -1,4 +1,4 @@ -import React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" export const PrivacyGlyphIcon = createIcon({ diff --git a/src/components/icons/run-a-node/SovereigntyGlyphIcon.tsx b/src/components/icons/run-a-node/SovereigntyGlyphIcon.tsx index bd904421e07..e60166d855c 100644 --- a/src/components/icons/run-a-node/SovereigntyGlyphIcon.tsx +++ b/src/components/icons/run-a-node/SovereigntyGlyphIcon.tsx @@ -1,4 +1,4 @@ -import React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" export const SovereigntyGlyphIcon = createIcon({ diff --git a/src/components/icons/run-a-node/VoteGlyphIcon.tsx b/src/components/icons/run-a-node/VoteGlyphIcon.tsx index 764ffbf2717..92e41048b84 100644 --- a/src/components/icons/run-a-node/VoteGlyphIcon.tsx +++ b/src/components/icons/run-a-node/VoteGlyphIcon.tsx @@ -1,4 +1,4 @@ -import React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" export const VoteGlyphIcon = createIcon({ diff --git a/src/components/icons/run-a-node/index.ts b/src/components/icons/run-a-node/index.ts index 6502a309b58..80e47b67192 100644 --- a/src/components/icons/run-a-node/index.ts +++ b/src/components/icons/run-a-node/index.ts @@ -1,23 +1,10 @@ -import { DappnodeIcon } from "./DappnodeIcon" -import { DecentralizationGlyphIcon } from "./DecentralizationGlyphIcon" -import { DecentralizationEthGlyphIcon } from "./DecentralizationEthGlyphIcon" -import { DownloadGlyphIcon } from "./DownloadGlyphIcon" -import { EarthGlyphIcon } from "./EarthGlyphIcon" -import { HardwareGlyphIcon } from "./HardwareGlyphIcon" -import { MegaphoneGlyphIcon } from "./MegaphoneGlyphIcon" -import { PrivacyGlyphIcon } from "./PrivacyGlyphIcon" -import { SovereigntyGlyphIcon } from "./SovereigntyGlyphIcon" -import { VoteGlyphIcon } from "./VoteGlyphIcon" - -export { - DappnodeIcon, - DecentralizationGlyphIcon, - DecentralizationEthGlyphIcon, - DownloadGlyphIcon, - EarthGlyphIcon, - HardwareGlyphIcon, - MegaphoneGlyphIcon, - PrivacyGlyphIcon, - SovereigntyGlyphIcon, - VoteGlyphIcon, -} +export * from "./DappnodeIcon" +export * from "./DecentralizationEthGlyphIcon" +export * from "./DecentralizationGlyphIcon" +export * from "./DownloadGlyphIcon" +export * from "./EarthGlyphIcon" +export * from "./HardwareGlyphIcon" +export * from "./MegaphoneGlyphIcon" +export * from "./PrivacyGlyphIcon" +export * from "./SovereigntyGlyphIcon" +export * from "./VoteGlyphIcon" diff --git a/src/components/icons/staking/AnkrGlyphIcon.tsx b/src/components/icons/staking/AnkrGlyphIcon.tsx index 00ebe9fa787..d85ece7c277 100644 --- a/src/components/icons/staking/AnkrGlyphIcon.tsx +++ b/src/components/icons/staking/AnkrGlyphIcon.tsx @@ -1,5 +1,6 @@ import { createIcon } from "@chakra-ui/react" -import { commonIconDefaultProps } from "../utils" + +import { commonIconDefaultProps } from "@/components/icons/utils" export const AnkrGlyphIcon = createIcon({ displayName: "AnkrGlyphIcon", diff --git a/src/components/icons/staking/AuditedIcon.tsx b/src/components/icons/staking/AuditedIcon.tsx index 4bd172ed6d0..e69c8e11861 100644 --- a/src/components/icons/staking/AuditedIcon.tsx +++ b/src/components/icons/staking/AuditedIcon.tsx @@ -1,6 +1,7 @@ -import React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" -import { commonIconDefaultProps } from "../utils" + +import { commonIconDefaultProps } from "@/components/icons/utils" export const AuditedIcon = createIcon({ displayName: "AuditedIcon", diff --git a/src/components/icons/staking/BattleTestedIcon.tsx b/src/components/icons/staking/BattleTestedIcon.tsx index c2183b1f035..78f90f7e98a 100644 --- a/src/components/icons/staking/BattleTestedIcon.tsx +++ b/src/components/icons/staking/BattleTestedIcon.tsx @@ -1,6 +1,7 @@ -import React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" -import { commonIconDefaultProps } from "../utils" + +import { commonIconDefaultProps } from "@/components/icons/utils" export const BattleTestedIcon = createIcon({ displayName: "BattleTestedIcon", diff --git a/src/components/icons/staking/BedrockGlyphIcon.tsx b/src/components/icons/staking/BedrockGlyphIcon.tsx index 28bdd0167ea..cca1828d37d 100644 --- a/src/components/icons/staking/BedrockGlyphIcon.tsx +++ b/src/components/icons/staking/BedrockGlyphIcon.tsx @@ -1,6 +1,6 @@ -import React from "react" import { createIcon } from "@chakra-ui/react" -import { commonIconDefaultProps } from "../utils" + +import { commonIconDefaultProps } from "@/components/icons/utils" export const BedrockGlyphIcon = createIcon({ displayName: "BedrockGlyphIcon", @@ -10,11 +10,11 @@ export const BedrockGlyphIcon = createIcon({ height: "32px", ...commonIconDefaultProps, }, - path: [ + path: ( , - ], + /> + ), }) diff --git a/src/components/icons/staking/BugBountyIcon.tsx b/src/components/icons/staking/BugBountyIcon.tsx index e7825eee05c..8a9d336e9d9 100644 --- a/src/components/icons/staking/BugBountyIcon.tsx +++ b/src/components/icons/staking/BugBountyIcon.tsx @@ -1,6 +1,7 @@ -import React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" -import { commonIconDefaultProps } from "../utils" + +import { commonIconDefaultProps } from "@/components/icons/utils" export const BugBountyIcon = createIcon({ displayName: "BugBountyIcon", diff --git a/src/components/icons/staking/CautionProductGlyphIcon.tsx b/src/components/icons/staking/CautionProductGlyphIcon.tsx index ac02155b8dc..f93e6cf6ab8 100644 --- a/src/components/icons/staking/CautionProductGlyphIcon.tsx +++ b/src/components/icons/staking/CautionProductGlyphIcon.tsx @@ -1,4 +1,4 @@ -import * as React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" export const CautionProductGlyphIcon = createIcon({ diff --git a/src/components/icons/staking/ChainLaboGlyphIcon.tsx b/src/components/icons/staking/ChainLaboGlyphIcon.tsx index 7de54f76794..0c3fa75d58a 100644 --- a/src/components/icons/staking/ChainLaboGlyphIcon.tsx +++ b/src/components/icons/staking/ChainLaboGlyphIcon.tsx @@ -8,10 +8,10 @@ export const ChainLaboGlyphIcon = createIcon({ width: "32px", height: "32px", }, - path: [ + path: ( , - ], + /> + ), }) diff --git a/src/components/icons/staking/DefaultOpenSourceGlyphIcon.tsx b/src/components/icons/staking/DefaultOpenSourceGlyphIcon.tsx index 070028b84d8..495f9d09ff2 100644 --- a/src/components/icons/staking/DefaultOpenSourceGlyphIcon.tsx +++ b/src/components/icons/staking/DefaultOpenSourceGlyphIcon.tsx @@ -1,4 +1,4 @@ -import React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" export const DefaultOpenSourceGlyphIcon = createIcon({ diff --git a/src/components/icons/staking/EconomicalIcon.tsx b/src/components/icons/staking/EconomicalIcon.tsx index ca18ff0e430..1bf870f1a64 100644 --- a/src/components/icons/staking/EconomicalIcon.tsx +++ b/src/components/icons/staking/EconomicalIcon.tsx @@ -1,5 +1,6 @@ import { createIcon } from "@chakra-ui/react" -import { commonIconDefaultProps } from "../utils" + +import { commonIconDefaultProps } from "@/components/icons/utils" export const EconomicalIcon = createIcon({ displayName: "EconomicalIcon", diff --git a/src/components/icons/staking/EthpoolGlyphIcon.tsx b/src/components/icons/staking/EthpoolGlyphIcon.tsx index f890bcb07da..e6c624df911 100644 --- a/src/components/icons/staking/EthpoolGlyphIcon.tsx +++ b/src/components/icons/staking/EthpoolGlyphIcon.tsx @@ -1,4 +1,3 @@ -import React from "react" import { createIcon } from "@chakra-ui/react" export const EthpoolGlyphIcon = createIcon({ @@ -8,12 +7,12 @@ export const EthpoolGlyphIcon = createIcon({ width: "33px", height: "33px", }, - path: [ + path: ( , - ], + /> + ), }) diff --git a/src/components/icons/staking/GreenCheckProductGlyphIcon.tsx b/src/components/icons/staking/GreenCheckProductGlyphIcon.tsx index c289ce467af..71994f54d4a 100644 --- a/src/components/icons/staking/GreenCheckProductGlyphIcon.tsx +++ b/src/components/icons/staking/GreenCheckProductGlyphIcon.tsx @@ -1,4 +1,4 @@ -import * as React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" export const GreenCheckProductGlyphIcon = createIcon({ @@ -14,8 +14,8 @@ export const GreenCheckProductGlyphIcon = createIcon({ fill="#109E62" />, , diff --git a/src/components/icons/staking/KilnGlyphIcon.tsx b/src/components/icons/staking/KilnGlyphIcon.tsx index 8f944bc0cc5..a6fe6270ede 100644 --- a/src/components/icons/staking/KilnGlyphIcon.tsx +++ b/src/components/icons/staking/KilnGlyphIcon.tsx @@ -1,4 +1,4 @@ -import React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" export const KilnGlyphIcon = createIcon({ diff --git a/src/components/icons/staking/LaunchnodesGlyphIcon.tsx b/src/components/icons/staking/LaunchnodesGlyphIcon.tsx index 469d8295293..e7239aae49b 100644 --- a/src/components/icons/staking/LaunchnodesGlyphIcon.tsx +++ b/src/components/icons/staking/LaunchnodesGlyphIcon.tsx @@ -1,6 +1,7 @@ -import React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" -import { commonIconDefaultProps } from "../utils" + +import { commonIconDefaultProps } from "@/components/icons/utils" export const LaunchnodesGlyphIcon = createIcon({ displayName: "LaunchnodesGlyphIcon", diff --git a/src/components/icons/staking/LidoGlyphIcon.tsx b/src/components/icons/staking/LidoGlyphIcon.tsx index 8137c3d9587..5b6aa498003 100644 --- a/src/components/icons/staking/LidoGlyphIcon.tsx +++ b/src/components/icons/staking/LidoGlyphIcon.tsx @@ -1,5 +1,6 @@ import { createIcon } from "@chakra-ui/react" -import { commonIconDefaultProps } from "../utils" + +import { commonIconDefaultProps } from "@/components/icons/utils" export const LidoGlyphIcon = createIcon({ displayName: "LidoGlyphIcon", diff --git a/src/components/icons/staking/LiquidityTokenIcon.tsx b/src/components/icons/staking/LiquidityTokenIcon.tsx index a40a59a4bbb..a8d036ad5f7 100644 --- a/src/components/icons/staking/LiquidityTokenIcon.tsx +++ b/src/components/icons/staking/LiquidityTokenIcon.tsx @@ -1,5 +1,6 @@ import { createIcon } from "@chakra-ui/react" -import { commonIconDefaultProps } from "../utils" + +import { commonIconDefaultProps } from "@/components/icons/utils" export const LiquidityTokenIcon = createIcon({ displayName: "LiquidityTokenIcon", diff --git a/src/components/icons/staking/MultiClientIcon.tsx b/src/components/icons/staking/MultiClientIcon.tsx index e328f6f33f9..2e7e31bad1b 100644 --- a/src/components/icons/staking/MultiClientIcon.tsx +++ b/src/components/icons/staking/MultiClientIcon.tsx @@ -1,6 +1,7 @@ -import React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" -import { commonIconDefaultProps } from "../utils" + +import { commonIconDefaultProps } from "@/components/icons/utils" export const MultiClientIcon = createIcon({ displayName: "MultiClientIcon", diff --git a/src/components/icons/staking/OpenSourceStakingIcon.tsx b/src/components/icons/staking/OpenSourceStakingIcon.tsx index fdfd7aaf95c..7ff6193e68e 100644 --- a/src/components/icons/staking/OpenSourceStakingIcon.tsx +++ b/src/components/icons/staking/OpenSourceStakingIcon.tsx @@ -1,5 +1,6 @@ import { createIcon } from "@chakra-ui/react" -import { commonIconDefaultProps } from "../utils" + +import { commonIconDefaultProps } from "@/components/icons/utils" export const OpenSourceStakingIcon = createIcon({ displayName: "OpenSourceStakingIcon", diff --git a/src/components/icons/staking/P2PGlyphIcon.tsx b/src/components/icons/staking/P2PGlyphIcon.tsx index 0dc95ee497b..0e349ba6f05 100644 --- a/src/components/icons/staking/P2PGlyphIcon.tsx +++ b/src/components/icons/staking/P2PGlyphIcon.tsx @@ -1,3 +1,4 @@ +/* eslint-disable react/jsx-key */ import React from "react" import { createIcon } from "@chakra-ui/react" diff --git a/src/components/icons/staking/PermissionlessIcon.tsx b/src/components/icons/staking/PermissionlessIcon.tsx index df29b5808f6..93800fc4e04 100644 --- a/src/components/icons/staking/PermissionlessIcon.tsx +++ b/src/components/icons/staking/PermissionlessIcon.tsx @@ -1,6 +1,7 @@ -import React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" -import { commonIconDefaultProps } from "../utils" + +import { commonIconDefaultProps } from "@/components/icons/utils" export const PermissionlessIcon = createIcon({ displayName: "PermissionlessIcon", diff --git a/src/components/icons/staking/RockXGlyphIcon.tsx b/src/components/icons/staking/RockXGlyphIcon.tsx index 93767039d7f..d20094f02d1 100644 --- a/src/components/icons/staking/RockXGlyphIcon.tsx +++ b/src/components/icons/staking/RockXGlyphIcon.tsx @@ -1,6 +1,7 @@ -import React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" -import { commonIconDefaultProps } from "../utils" + +import { commonIconDefaultProps } from "@/components/icons/utils" export const RockXGlyphIcon = createIcon({ displayName: "RockXGlyphIcon", diff --git a/src/components/icons/staking/RocketPoolGlyphIcon.tsx b/src/components/icons/staking/RocketPoolGlyphIcon.tsx index 81773955731..b564e671303 100644 --- a/src/components/icons/staking/RocketPoolGlyphIcon.tsx +++ b/src/components/icons/staking/RocketPoolGlyphIcon.tsx @@ -1,6 +1,7 @@ -import React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" -import { commonIconDefaultProps } from "../utils" + +import { commonIconDefaultProps } from "@/components/icons/utils" export const RocketPoolGlyphIcon = createIcon({ displayName: "RocketPoolGlyphIcon", diff --git a/src/components/icons/staking/SelfCustodyIcon.tsx b/src/components/icons/staking/SelfCustodyIcon.tsx index db6215b4615..142a45f6df3 100644 --- a/src/components/icons/staking/SelfCustodyIcon.tsx +++ b/src/components/icons/staking/SelfCustodyIcon.tsx @@ -1,6 +1,7 @@ -import React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" -import { commonIconDefaultProps } from "../utils" + +import { commonIconDefaultProps } from "@/components/icons/utils" export const SelfCustodyIcon = createIcon({ displayName: "SelfCustodyIcon", diff --git a/src/components/icons/staking/SenseiNodeGlyphIcon.tsx b/src/components/icons/staking/SenseiNodeGlyphIcon.tsx index a645cee0da3..c78c0a1e712 100644 --- a/src/components/icons/staking/SenseiNodeGlyphIcon.tsx +++ b/src/components/icons/staking/SenseiNodeGlyphIcon.tsx @@ -1,6 +1,7 @@ -import React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" -import { commonIconDefaultProps } from "../utils" + +import { commonIconDefaultProps } from "@/components/icons/utils" export const SenseiNodeGlyphIcon = createIcon({ displayName: "SenseiNodeGlyphIcon", diff --git a/src/components/icons/staking/SquidGlyphIcon.tsx b/src/components/icons/staking/SquidGlyphIcon.tsx index 9bf2db5c517..e818e041235 100644 --- a/src/components/icons/staking/SquidGlyphIcon.tsx +++ b/src/components/icons/staking/SquidGlyphIcon.tsx @@ -1,4 +1,4 @@ -import React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" export const SquidGlyphIcon = createIcon({ diff --git a/src/components/icons/staking/StafiGlyphIcon.tsx b/src/components/icons/staking/StafiGlyphIcon.tsx index 919da2ca2c6..1fa5bccd970 100644 --- a/src/components/icons/staking/StafiGlyphIcon.tsx +++ b/src/components/icons/staking/StafiGlyphIcon.tsx @@ -1,5 +1,6 @@ import { createIcon } from "@chakra-ui/react" -import { commonIconDefaultProps } from "../utils" + +import { commonIconDefaultProps } from "@/components/icons/utils" export const StafiGlyphIcon = createIcon({ displayName: "StafiGlyphIcon", diff --git a/src/components/icons/staking/StakefishGlyphIcon.tsx b/src/components/icons/staking/StakefishGlyphIcon.tsx index ddec53ea1bc..015c8c50089 100644 --- a/src/components/icons/staking/StakefishGlyphIcon.tsx +++ b/src/components/icons/staking/StakefishGlyphIcon.tsx @@ -1,6 +1,7 @@ -import React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" -import { commonIconDefaultProps } from "../utils" + +import { commonIconDefaultProps } from "@/components/icons/utils" export const StakefishGlyphIcon = createIcon({ displayName: "StakefishGlyphIcon", diff --git a/src/components/icons/staking/StakewiseGlyphIcon.tsx b/src/components/icons/staking/StakewiseGlyphIcon.tsx index fb48cc82c68..f1153344766 100644 --- a/src/components/icons/staking/StakewiseGlyphIcon.tsx +++ b/src/components/icons/staking/StakewiseGlyphIcon.tsx @@ -1,4 +1,4 @@ -import React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" export const StakewiseGlyphIcon = createIcon({ diff --git a/src/components/icons/staking/StakingGlyphEtherCircleIcon.tsx b/src/components/icons/staking/StakingGlyphEtherCircleIcon.tsx index 53ee16c8a5c..11d24a56bbb 100644 --- a/src/components/icons/staking/StakingGlyphEtherCircleIcon.tsx +++ b/src/components/icons/staking/StakingGlyphEtherCircleIcon.tsx @@ -1,4 +1,4 @@ -import React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" export const StakingGlyphEtherCircleIcon = createIcon({ diff --git a/src/components/icons/staking/StakingGlyphTokenWalletIcon.tsx b/src/components/icons/staking/StakingGlyphTokenWalletIcon.tsx index 473dac4c7fe..ff553f08d86 100644 --- a/src/components/icons/staking/StakingGlyphTokenWalletIcon.tsx +++ b/src/components/icons/staking/StakingGlyphTokenWalletIcon.tsx @@ -1,6 +1,7 @@ -import * as React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" -import { commonIconDefaultProps } from "../utils" + +import { commonIconDefaultProps } from "@/components/icons/utils" export const StakingGlyphTokenWalletIcon = createIcon({ displayName: "StakingGlyphTokenWalletIcon", diff --git a/src/components/icons/staking/StereumGlyphIcon.tsx b/src/components/icons/staking/StereumGlyphIcon.tsx index c389308e7db..4d24664a751 100644 --- a/src/components/icons/staking/StereumGlyphIcon.tsx +++ b/src/components/icons/staking/StereumGlyphIcon.tsx @@ -1,5 +1,6 @@ import { createIcon } from "@chakra-ui/react" -import { commonIconDefaultProps } from "../utils" + +import { commonIconDefaultProps } from "@/components/icons/utils" export const StereumGlyphIcon = createIcon({ displayName: "StereumGlyphIcon", diff --git a/src/components/icons/staking/TrustlessIcon.tsx b/src/components/icons/staking/TrustlessIcon.tsx index 3222124a1e0..68985143aee 100644 --- a/src/components/icons/staking/TrustlessIcon.tsx +++ b/src/components/icons/staking/TrustlessIcon.tsx @@ -1,6 +1,7 @@ -import React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" -import { commonIconDefaultProps } from "../utils" + +import { commonIconDefaultProps } from "@/components/icons/utils" export const TrustlessIcon = createIcon({ displayName: "TrustlessIcon", diff --git a/src/components/icons/staking/UnknownProductGlyphIcon.tsx b/src/components/icons/staking/UnknownProductGlyphIcon.tsx index eb431f6410f..44acb19b0dd 100644 --- a/src/components/icons/staking/UnknownProductGlyphIcon.tsx +++ b/src/components/icons/staking/UnknownProductGlyphIcon.tsx @@ -1,4 +1,4 @@ -import * as React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" export const UnknownProductGlyphIcon = createIcon({ diff --git a/src/components/icons/staking/WagyuGlyphIcon.tsx b/src/components/icons/staking/WagyuGlyphIcon.tsx index 00df995f7c2..ea91062a4c0 100644 --- a/src/components/icons/staking/WagyuGlyphIcon.tsx +++ b/src/components/icons/staking/WagyuGlyphIcon.tsx @@ -1,5 +1,5 @@ +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" -import React from "react" export const WagyuGlyphIcon = createIcon({ displayName: "WagyuGlyphIcon", diff --git a/src/components/icons/staking/WarningProductGlyphIcon.tsx b/src/components/icons/staking/WarningProductGlyphIcon.tsx index 7e8e3a78ef0..9b05885f360 100644 --- a/src/components/icons/staking/WarningProductGlyphIcon.tsx +++ b/src/components/icons/staking/WarningProductGlyphIcon.tsx @@ -1,4 +1,4 @@ -import * as React from "react" +/* eslint-disable react/jsx-key */ import { createIcon } from "@chakra-ui/react" export const WarningProductGlyphIcon = createIcon({ diff --git a/src/components/icons/staking/index.ts b/src/components/icons/staking/index.ts index ff206007319..232706eaf7f 100644 --- a/src/components/icons/staking/index.ts +++ b/src/components/icons/staking/index.ts @@ -4,29 +4,29 @@ export * from "./AnkrGlyphIcon" export * from "./AuditedIcon" export * from "./AvadoGlyphIcon" export * from "./BattleTestedIcon" +export * from "./BedrockGlyphIcon" export * from "./BloxstakingGlyphIcon" export * from "./BugBountyIcon" export * from "./CautionProductGlyphIcon" +export * from "./ChainLaboGlyphIcon" export * from "./DefaultOpenSourceGlyphIcon" export * from "./DockerGlyphIcon" export * from "./EconomicalIcon" export * from "./EthpoolGlyphIcon" export * from "./GreenCheckProductGlyphIcon" -export * from "./P2PGlyphIcon" export * from "./KilnGlyphIcon" -export * from "./ChainLaboGlyphIcon" export * from "./LaunchnodesGlyphIcon" export * from "./LidoGlyphIcon" export * from "./LiquidityTokenIcon" export * from "./MultiClientIcon" export * from "./OpenSourceStakingIcon" +export * from "./P2PGlyphIcon" export * from "./PermissionlessIcon" export * from "./RocketPoolGlyphIcon" export * from "./RockXGlyphIcon" -export * from "./BedrockGlyphIcon" export * from "./SelfCustodyIcon" -export * from "./SquidGlyphIcon" export * from "./SenseiNodeGlyphIcon" +export * from "./SquidGlyphIcon" export * from "./StafiGlyphIcon" export * from "./StakefishGlyphIcon" export * from "./StakewiseGlyphIcon" diff --git a/src/components/icons/wallets/BrowserIcon.tsx b/src/components/icons/wallets/BrowserIcon.tsx index deb92701f3d..515c3f282c4 100644 --- a/src/components/icons/wallets/BrowserIcon.tsx +++ b/src/components/icons/wallets/BrowserIcon.tsx @@ -1,5 +1,7 @@ +/* eslint-disable react/jsx-key */ import * as React from "react" import { createIcon } from "@chakra-ui/react" + import { commonIconDefaultProps } from "../utils" export const BrowserIcon = createIcon({ diff --git a/src/components/icons/wallets/BuyCryptoIcon.tsx b/src/components/icons/wallets/BuyCryptoIcon.tsx index b7e93f79558..0834a25c62f 100644 --- a/src/components/icons/wallets/BuyCryptoIcon.tsx +++ b/src/components/icons/wallets/BuyCryptoIcon.tsx @@ -1,5 +1,7 @@ +/* eslint-disable react/jsx-key */ import * as React from "react" import { createIcon } from "@chakra-ui/react" + import { commonIconDefaultProps } from "../utils" export const BuyCryptoIcon = createIcon({ diff --git a/src/components/icons/wallets/ConnectDappsIcon.tsx b/src/components/icons/wallets/ConnectDappsIcon.tsx index 23b1d36b337..5e83216e9e8 100644 --- a/src/components/icons/wallets/ConnectDappsIcon.tsx +++ b/src/components/icons/wallets/ConnectDappsIcon.tsx @@ -1,4 +1,5 @@ import { createIcon } from "@chakra-ui/react" + import { commonIconDefaultProps } from "../utils" export const ConnectDappsIcon = createIcon({ diff --git a/src/components/icons/wallets/DesktopIcon.tsx b/src/components/icons/wallets/DesktopIcon.tsx index ec998bb61b3..5b8bf971f38 100644 --- a/src/components/icons/wallets/DesktopIcon.tsx +++ b/src/components/icons/wallets/DesktopIcon.tsx @@ -1,5 +1,7 @@ +/* eslint-disable react/jsx-key */ import * as React from "react" import { createIcon } from "@chakra-ui/react" + import { commonIconDefaultProps } from "../utils" export const DesktopIcon = createIcon({ diff --git a/src/components/icons/wallets/EIP1559Icon.tsx b/src/components/icons/wallets/EIP1559Icon.tsx index 90e6a5924c7..7c4ed0a8003 100644 --- a/src/components/icons/wallets/EIP1559Icon.tsx +++ b/src/components/icons/wallets/EIP1559Icon.tsx @@ -1,5 +1,7 @@ +/* eslint-disable react/jsx-key */ import * as React from "react" import { createIcon } from "@chakra-ui/react" + import { commonIconDefaultProps } from "../utils" export const EIP1559Icon = createIcon({ diff --git a/src/components/icons/wallets/ENSSupportIcon.tsx b/src/components/icons/wallets/ENSSupportIcon.tsx index f5eb59da10e..2df62ee8d35 100644 --- a/src/components/icons/wallets/ENSSupportIcon.tsx +++ b/src/components/icons/wallets/ENSSupportIcon.tsx @@ -1,5 +1,7 @@ +/* eslint-disable react/jsx-key */ import * as React from "react" import { createIcon } from "@chakra-ui/react" + import { commonIconDefaultProps } from "../utils" export const ENSSupportIcon = createIcon({ diff --git a/src/components/icons/wallets/ERC20SupportIcon.tsx b/src/components/icons/wallets/ERC20SupportIcon.tsx index a3c845a3e05..fdc9e2f1560 100644 --- a/src/components/icons/wallets/ERC20SupportIcon.tsx +++ b/src/components/icons/wallets/ERC20SupportIcon.tsx @@ -1,5 +1,7 @@ +/* eslint-disable react/jsx-key */ import * as React from "react" import { createIcon } from "@chakra-ui/react" + import { commonIconDefaultProps } from "../utils" export const ERC20SupportIcon = createIcon({ diff --git a/src/components/icons/wallets/FilterBurgerIcon.tsx b/src/components/icons/wallets/FilterBurgerIcon.tsx index 779f367d4fd..a8192559fb4 100644 --- a/src/components/icons/wallets/FilterBurgerIcon.tsx +++ b/src/components/icons/wallets/FilterBurgerIcon.tsx @@ -1,3 +1,4 @@ +/* eslint-disable react/jsx-key */ import * as React from "react" import { createIcon } from "@chakra-ui/react" diff --git a/src/components/icons/wallets/GasFeeCustomizationIcon.tsx b/src/components/icons/wallets/GasFeeCustomizationIcon.tsx index 524c703bf1c..b7b274a2ab1 100644 --- a/src/components/icons/wallets/GasFeeCustomizationIcon.tsx +++ b/src/components/icons/wallets/GasFeeCustomizationIcon.tsx @@ -1,5 +1,7 @@ +/* eslint-disable react/jsx-key */ import * as React from "react" import { createIcon } from "@chakra-ui/react" + import { commonIconDefaultProps } from "../utils" export const GasFeeCustomizationIcon = createIcon({ diff --git a/src/components/icons/wallets/HardwareIcon.tsx b/src/components/icons/wallets/HardwareIcon.tsx index 8d1ccc7e202..e720011b356 100644 --- a/src/components/icons/wallets/HardwareIcon.tsx +++ b/src/components/icons/wallets/HardwareIcon.tsx @@ -1,4 +1,5 @@ import { createIcon } from "@chakra-ui/react" + import { commonIconDefaultProps } from "../utils" export const HardwareIcon = createIcon({ diff --git a/src/components/icons/wallets/HardwareSupportIcon.tsx b/src/components/icons/wallets/HardwareSupportIcon.tsx index bdf681fb3fb..752eddbe0e8 100644 --- a/src/components/icons/wallets/HardwareSupportIcon.tsx +++ b/src/components/icons/wallets/HardwareSupportIcon.tsx @@ -1,5 +1,7 @@ +/* eslint-disable react/jsx-key */ import * as React from "react" import { createIcon } from "@chakra-ui/react" + import { commonIconDefaultProps } from "../utils" export const HardwareSupportIcon = createIcon({ diff --git a/src/components/icons/wallets/Layer2Icon.tsx b/src/components/icons/wallets/Layer2Icon.tsx index 3bedff40fd3..71f543f80c1 100644 --- a/src/components/icons/wallets/Layer2Icon.tsx +++ b/src/components/icons/wallets/Layer2Icon.tsx @@ -1,5 +1,7 @@ +/* eslint-disable react/jsx-key */ import * as React from "react" import { createIcon } from "@chakra-ui/react" + import { commonIconDefaultProps } from "../utils" export const Layer2Icon = createIcon({ diff --git a/src/components/icons/wallets/MobileIcon.tsx b/src/components/icons/wallets/MobileIcon.tsx index 6526e1cb7c6..4fb8a1bd3c5 100644 --- a/src/components/icons/wallets/MobileIcon.tsx +++ b/src/components/icons/wallets/MobileIcon.tsx @@ -1,5 +1,7 @@ +/* eslint-disable react/jsx-key */ import * as React from "react" import { createIcon } from "@chakra-ui/react" + import { commonIconDefaultProps } from "../utils" export const MobileIcon = createIcon({ diff --git a/src/components/icons/wallets/MultisigIcon.tsx b/src/components/icons/wallets/MultisigIcon.tsx index 455e7c55631..df8b2560737 100644 --- a/src/components/icons/wallets/MultisigIcon.tsx +++ b/src/components/icons/wallets/MultisigIcon.tsx @@ -1,5 +1,7 @@ +/* eslint-disable react/jsx-key */ import * as React from "react" import { createIcon } from "@chakra-ui/react" + import { commonIconDefaultProps } from "../utils" export const MultisigIcon = createIcon({ diff --git a/src/components/icons/wallets/NFTSupportIcon.tsx b/src/components/icons/wallets/NFTSupportIcon.tsx index f76d654696b..029e0da7e60 100644 --- a/src/components/icons/wallets/NFTSupportIcon.tsx +++ b/src/components/icons/wallets/NFTSupportIcon.tsx @@ -1,4 +1,5 @@ import { createIcon } from "@chakra-ui/react" + import { commonIconDefaultProps } from "../utils" export const NFTSupportIcon = createIcon({ diff --git a/src/components/icons/wallets/NonCustodialIcon.tsx b/src/components/icons/wallets/NonCustodialIcon.tsx index ce7a22a6db0..d97d32e511e 100644 --- a/src/components/icons/wallets/NonCustodialIcon.tsx +++ b/src/components/icons/wallets/NonCustodialIcon.tsx @@ -1,5 +1,7 @@ +/* eslint-disable react/jsx-key */ import * as React from "react" import { createIcon } from "@chakra-ui/react" + import { commonIconDefaultProps } from "../utils" export const NonCustodialIcon = createIcon({ diff --git a/src/components/icons/wallets/OpenSourceWalletIcon.tsx b/src/components/icons/wallets/OpenSourceWalletIcon.tsx index f28f2b70b9d..e69755f7e49 100644 --- a/src/components/icons/wallets/OpenSourceWalletIcon.tsx +++ b/src/components/icons/wallets/OpenSourceWalletIcon.tsx @@ -1,4 +1,5 @@ import { createIcon } from "@chakra-ui/react" + import { commonIconDefaultProps } from "../utils" export const OpenSourceWalletIcon = createIcon({ diff --git a/src/components/icons/wallets/RPCImportingIcon.tsx b/src/components/icons/wallets/RPCImportingIcon.tsx index 009f0b9f8e0..c3c35b62d6b 100644 --- a/src/components/icons/wallets/RPCImportingIcon.tsx +++ b/src/components/icons/wallets/RPCImportingIcon.tsx @@ -1,5 +1,7 @@ +/* eslint-disable react/jsx-key */ import * as React from "react" import { createIcon } from "@chakra-ui/react" + import { commonIconDefaultProps } from "../utils" export const RPCImportingIcon = createIcon({ diff --git a/src/components/icons/wallets/SocialRecoverIcon.tsx b/src/components/icons/wallets/SocialRecoverIcon.tsx index 4bdd0745d17..fda164304c6 100644 --- a/src/components/icons/wallets/SocialRecoverIcon.tsx +++ b/src/components/icons/wallets/SocialRecoverIcon.tsx @@ -1,5 +1,7 @@ +/* eslint-disable react/jsx-key */ import * as React from "react" import { createIcon } from "@chakra-ui/react" + import { commonIconDefaultProps } from "../utils" export const SocialRecoverIcon = createIcon({ diff --git a/src/components/icons/wallets/StakingIcon.tsx b/src/components/icons/wallets/StakingIcon.tsx index ee23286ad82..7dad029a1ca 100644 --- a/src/components/icons/wallets/StakingIcon.tsx +++ b/src/components/icons/wallets/StakingIcon.tsx @@ -1,5 +1,7 @@ +/* eslint-disable react/jsx-key */ import * as React from "react" import { createIcon } from "@chakra-ui/react" + import { commonIconDefaultProps } from "../utils" export const StakingIcon = createIcon({ diff --git a/src/components/icons/wallets/SwapIcon.tsx b/src/components/icons/wallets/SwapIcon.tsx index b64948c812b..8867f7f0590 100644 --- a/src/components/icons/wallets/SwapIcon.tsx +++ b/src/components/icons/wallets/SwapIcon.tsx @@ -1,5 +1,7 @@ +/* eslint-disable react/jsx-key */ import * as React from "react" import { createIcon } from "@chakra-ui/react" + import { commonIconDefaultProps } from "../utils" export const SwapIcon = createIcon({ diff --git a/src/components/icons/wallets/WalletConnectIcon.tsx b/src/components/icons/wallets/WalletConnectIcon.tsx index 3dcf213cb98..e61c3412829 100644 --- a/src/components/icons/wallets/WalletConnectIcon.tsx +++ b/src/components/icons/wallets/WalletConnectIcon.tsx @@ -1,4 +1,5 @@ import { createIcon } from "@chakra-ui/react" + import { commonIconDefaultProps } from "../utils" export const WalletConnectIcon = createIcon({ diff --git a/src/components/icons/wallets/WithdrawCryptoIcon.tsx b/src/components/icons/wallets/WithdrawCryptoIcon.tsx index bb70854a33d..a17b1d14bde 100644 --- a/src/components/icons/wallets/WithdrawCryptoIcon.tsx +++ b/src/components/icons/wallets/WithdrawCryptoIcon.tsx @@ -1,5 +1,7 @@ +/* eslint-disable react/jsx-key */ import * as React from "react" import { createIcon } from "@chakra-ui/react" + import { commonIconDefaultProps } from "../utils" export const WithdrawCryptoIcon = createIcon({ diff --git a/src/constants.ts b/src/constants.ts deleted file mode 100644 index e7f57b62305..00000000000 --- a/src/constants.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { ReportsModel } from "@crowdin/crowdin-api-client" - -export const SITE_URL = "https://ethereum.org" as const -export const DISCORD_PATH = "/discord/" as const -export const GATSBY_FUNCTIONS_PATH = process.env.GATSBY_FUNCTIONS_PATH || "/api" - -// Quiz Hub -export const PROGRESS_BAR_GAP = "4px" -export const PASSING_QUIZ_SCORE = 65 -export const USER_STATS_KEY = "quizzes-stats" -export const INITIAL_QUIZ = "what-is-ethereum" -export const TOTAL_QUIZ_QUESTIONS_ANSWERED = 100000 -export const TOTAL_QUIZ_AVERAGE_SCORE = 67.4 -export const TOTAL_QUIZ_RETRY_RATE = 15.6 - -// Crowdin -export const CROWDIN_PROJECT_ID = 363359 -export const CROWDIN_API_MAX_LIMIT = 500 -export const FIRST_CROWDIN_CONTRIBUTION_DATE = "2019-07-01T00:00:00+00:00" -export const REGULAR_RATES: ReportsModel.RegularRate[] = [ - { - mode: "tm_match", - value: 1.01, - }, - { - mode: "no_match", - value: 1.01, - }, -] - -export const NAV_BAR_PX_HEIGHT = "75px" diff --git a/src/content/community/online/index.md b/src/content/community/online/index.md deleted file mode 100644 index 96ce4847254..00000000000 --- a/src/content/community/online/index.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Online communities -description: A listing of the grant programs throughout the Ethereum ecosystem. -lang: en ---- - -# Online communities {#online-communities} - -Hundreds of thousands of Ethereum enthusiasts gather in these online forums to share news, talk about recent developments, debate technical issues, and imagine the future. - -## Forums {#forums} - -r/ethereum - all things Ethereum -r/ethfinance - the financial side of Ethereum, including DeFi -r/ethdev - focused on Ethereum development -r/ethtrader - trends & market analysis -r/ethstaker - welcome to all interested in staking on Ethereum -Fellowship of Ethereum Magicians - community oriented around technical standards in Ethereum -Ethereum Stackexchange - discussion and help for Ethereum developers -Ethereum Research - the most influential messageboard for cryptoeconomic research - -## Chat rooms {#chat-rooms} - -Ethereum Cat Herders - community oriented around offering project management support to Ethereum development -Ethereum Hackers - Discord chat run by ETHGlobal: an online community for Ethereum hackers all over the world -CryptoDevs - Ethereum development focused Discord community -EthStaker Discord - community-run guidance, education, support, and resources for existing and potential stakers -Ethereum.org website team - stop by and chat ethereum.org web development and design with the team and folks from the community -Matos Discord - web3 creators community where builders, industrial figureheads, and Ethereum enthusiasts hang out. We're passionate about web3 development, design, and culture. Come build with us. -Solidity Gitter - chat for solidity development (Gitter) -Solidity Matrix - chat for solidity development (Matrix) -Ethereum Stack Exchange - question and answer forum -Peeranha - decentralized question and answer forum - -## YouTube and Twitter {#youtube-and-twitter} - -Ethereum Foundation - Keep up to date with the latest from the Ethereum Foundation -@ethereum - Official account of the Ethereum Foundation -@ethdotorg - The portal to Ethereum, built for our growing global community -List of influential Ethereum twitter accounts - - - - -
- - Learn more about DAOs - -
-
diff --git a/src/content/community/support/index.md b/src/content/community/support/index.md deleted file mode 100644 index 59960f7d7d6..00000000000 --- a/src/content/community/support/index.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -title: Ethereum support -description: Get support in the Ethereum ecosystem. -lang: en ---- - -# Ethereum support {#support} - -## Official Ethereum support {#official-support} - -Are you looking for the official Ethereum support? The first thing you should know is that Ethereum is decentralized. This means no central organization, entity, or person owns Ethereum, and because of this, no official support channels exist. - -Understanding the decentralized nature of Ethereum is vital because anyone claiming to be official support for Ethereum is probably trying to scam you! The best protection against scammers is educating yourself and taking security seriously. - - - Ethereum security and scam prevention - - - - Learn Ethereum fundamentals - - -Despite the lack of official support, many groups, communities, and projects across the Ethereum ecosystem are happy to help, and you can find a lot of useful information and resources on this page. Still have questions? Join the [ethereum.org Discord](/discord/), and we'll try to help. - -## Wallet support {#wallet-support} - -Having trouble with your wallet? Most wallets have dedicated support teams that can help: - -- [MetaMask](https://metamask.zendesk.com/hc/) -- [Argent](https://support.argent.xyz/hc/) -- [MyEtherWallet](https://help.myetherwallet.com/) - -_This is not an exhaustive list. Need help finding support for a specific wallet? Join the [ethereum.org discord](https://discord.gg/ethereum-org) and we'll try to help._ - -Looking for an Ethereum wallet? [Explore our full list of Ethereum wallets](/wallets/find-wallet/). - -## Building dapps {#building-support} - -Building can be hard. Here are some development focused spaces with experienced Ethereum developers that are happy to help. - -- [Alchemy University](https://university.alchemy.com/#starter_code) -- [CryptoDevs discord](https://discord.com/invite/5W5tVb3) -- [Ethereum StackExchange](https://ethereum.stackexchange.com/) -- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) -- [Web3 University](https://www.web3.university/) -- [LearnWeb3](https://discord.com/invite/learnweb3) - -You can also find documentation and development guides in our [Ethereum developer resources](/developers/) section. - -### Tooling {#dapp-tooling} - -Does your question relate to a particular tool, project, or library? Most projects have chat servers or forums dedicated to supporting you. - -Here are some popular examples: - -- [Solidity](https://gitter.im/ethereum/solidity/) -- [ethers.js](https://discord.gg/6jyGVDK6Jx) -- [web3.js](https://discord.gg/GsABYQu4sC) -- [Hardhat](https://discord.gg/xtrMGhmbfZ) -- [Truffle](https://discord.gg/8uKcsccEYE) -- [Alchemy](http://alchemy.com/discord) -- [Tenderly](https://discord.gg/fBvDJYR) - -## Running a node {#node-support} - -If you're running a node or validator, here are some communities that are dedicated to helping you get started. - -- [EthStaker discord](https://discord.gg/ethstaker) -- [EthStaker reddit](https://www.reddit.com/r/ethstaker) - -Most of the teams building Ethereum clients also have dedicated, public-facing, spaces where you can get support and ask questions. - -### Execution clients {#execution-clients} - -- [Geth](https://discord.gg/FqDzupGyYf) -- [Nethermind](https://discord.gg/YJx3pm8z5C) -- [Besu](https://discord.gg/p8djYngzKN) -- [Erigon](https://github.com/ledgerwatch/erigon/issues) - -### Consensus clients {#consensus-clients} - -- [Prysm](https://discord.gg/prysmaticlabs) -- [Nimbus](https://discord.gg/nSmEH3qgFv) -- [Lighthouse](https://discord.gg/cyAszAh) -- [Teku](https://discord.gg/7hPv2T6) -- [Lodestar](https://discord.gg/aMxzVcr) - -You can also [learn how to run a node here](/developers/docs/nodes-and-clients/run-a-node/). - -## Frequently asked questions {#faq} - -#### I've sent ETH to the wrong wallet {#wrong-wallet} - -A transaction sent on Ethereum is irreversible. Unfortunately, if you've sent ETH to the wrong wallet, there is no way to recover these funds. No one central organization, entity, or person owns Ethereum, which means no one can reverse transactions. Therefore, it is vital always to double-check your transactions before sending them. - -#### How can I claim my Ethereum giveaway? {#giveaway-scam} - -Ethereum giveaways are scams designed to steal your ETH. Do not be tempted by offers that seem too good to be true — if you send ETH to a giveaway address, you will not receive a giveaway, and you will not be able to recover your funds. - -[More on scam prevention](/security/#common-scams) - -#### My transaction is stuck {#stuck-transaction} - -Transactions on Ethereum can sometimes get stuck if you have submitted a lower transaction fee than is required due to network demand. Many wallets provide an option to resubmit the same transaction with a higher transaction fee to allow the transaction to be processed. Alternatively, you can cancel a pending transaction by sending a transaction to your own address and using the same nonce as the pending transaction. - -[How to speed up or cancel a pending transaction on MetaMask](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) - -[How to cancel pending Ethereum transactions](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) - -#### How do I mine Ethereum? {#mining-ethereum} - -Ethereum mining is no longer possible. Mining was switched off when Ethereum moved from proof-of-work to proof-of-stake. Now, instead of miners, Ethereum has validators. Validators stake ETH and receive staking rewards for securing the network. - -#### How do I become a staker/validator? {#become-validator} - -To become a validator, you must stake 32 ETH in the Ethereum deposit contract and set up a validator node. More information is available on our [staking pages](/staking) and at [the staking launchpad](https://launchpad.ethereum.org/). diff --git a/src/content/contributing/style-guide/index.md b/src/content/contributing/style-guide/index.md deleted file mode 100644 index 69c804300a8..00000000000 --- a/src/content/contributing/style-guide/index.md +++ /dev/null @@ -1,137 +0,0 @@ ---- -title: Style Guide -description: Style guide for ethereum.org -lang: en ---- - -# Ethereum.org style guide {#style-guide} - -Content on [ethereum.org](/) is crowdsourced and primarily written by our incredible contributors. - -Our primary objective is to educate and inform visitors about Ethereum in a manner that is accessible to a diverse range of readers, from technical experts to casual visitors. Since we deal with complex and abstract topics, clear content writing is crucial to effectively convey the information and avoid confusion or misinterpretation. - -You should read this style guide before you [contribute to ethereum.org](/contributing/). - -## Who can submit content to ethereum.org {#who-can-help} - -Anyone! Ethereum.org is entirely open source, and many of its best pages are submitted by curious learners who expanded their notes into documentation pages now living on the site. - -## Audience {#audience} - -- 60% of our website visitors do not own any ether according to our survey responses -- 50% of visitors identify themselves as newcomers to the crypto space - -**Common reading-related problems:** - -- Articles are hard to digest due to - - too much text per page / paragraph - - usage of complex sentences - - technical jargon -- Content is too abstract and detached from reality, therefore users are unable to relate to it -- Too many links inside articles result in readers feeling overloaded and leaving the website - -**Takeaways**: - -- Operate with a mindset that people are curious about crypto, but not invested enough to spend hours exploring the topics -- Users want to understand how the topic relates to them and how they can take a part in it rather than going deep into the theory - -Loosely we can categorize the site audiences as: - - - -**Example user journeys:** - -- "I want to learn more about Ethereum, to know if I think it’s credible or not. Once I’ve answered a few basic questions, I want to try using Ethereum" -- "I know I need an Ethereum wallet, and want a good recommendation" -- "I want to learn how to run an Ethereum node" -- "I want to get a sense of the size and activity of the Ethereum community, to decide if it's active enough, so I can get help if needed" -- "I’m excited about Ethereum and want to get involved, but I don’t know what to do next" - - - - - -**Example user journeys**: - -- "I'm a developer but I have no background in crypto and want to understand the Ethereum tech stack at a high level" -- "I want to get a sample Ethereum project up and running fast, to get a sense of how difficult or easy it is to build a real project on Ethereum" -- "I want to learn about Ethereum's technical roadmap" -- "I’ve started work on an Ethereum project, and want to try out a few smart contract testing libraries" - - - - - -**Example user journeys**: - -- "I want to understand what use cases Ethereum can help with, and how it compares to other chains or other technologies" -- "I work at a business that is beginning an Ethereum related project, and want to learn more" -- "I want to understand the differences between private Ethereum chains, consortium chains, and the public Ethereum Mainnet" -- "I want to know the current status of Ethereum - how long has it been in production, how much usage it has, what's the direction of new development - to decide if I am confident to build my project on top of it" - - - -## Best practices {#best-practices} - -**Style** - -- Focus on the advantages for the user instead of explaining technical details about the system -- Use active voice and clear, concise sentences that are easy to follow -- Break up longer chunks of text into smaller sections or paragraphs -- Consider using tables, bullet points or numbered lists instead of paragraphs -- Highlight (bold) key phrases to support scanning and skimming through the article - -**Content ideas:** - -- Use examples or real-life scenarios of the application of the technology to help illustrate complex concepts or ideas -- Explain how the idea can positively affect people now or in the future -- Create before Ethereum / after Ethereum comparison -- Add step-by-step how to take action -- Include relevant statistics or graphs to strengthen the arguments -- Add calls to action -- Provide visual aids to explain the topic better - -**Other**: - -- Limit the length of the article up to 1000 words (1500 max) -- Reduce the number of hyperlinks to approximately 5 per 1000 words (excluding further reading section at the bottom of the page or product listings) - -### Objectivity {#objectivity} - -Ethereum.org documentation (and content at large) aims to maintain a credibly neutral source of truth to inform readers about Ethereum and its ecosystem. Some examples of things that we don't want in the content on ethereum.org: - -**Grand, unverifiable claims about Ethereum or adjacent technologies** - -> e.g. _"Ethereum will take over the world because..."_ - -**Hostile or confrontational language aimed at any organization or person** - -> e.g. _"Company X is bad because they are centralized!"_ - -**Politically charged rhetoric** - -> e.g. _"This political party is better for decentralization because..."_ - -### Acronyms {#acronyms} - -When introducing an unfamiliar acronym, spell out the full term, and put the acronym in parentheses. Put both the full term and acronym in bold. - -**For example:** - -"Ethereum, like Bitcoin, currently uses a consensus protocol called **proof-of-work (PoW)**." - -### Consistency {#consistency} - -Many of the topics covered on ethereum.org are technically complex. To reduce confusion to the reader, terms should be used consistently. For example, don't cycle back-and-forth between proof-of-work and PoW at random. - -[Content standardization](/contributing/style-guide/content-standardization/) - Read more about proper usage of terminology and other aspects such as how to properly add an image, attribute etc. - -## Anything else? {#anything-else} - -Like all content on ethereum.org, this style guide is an open-source work-in-progress with room for improvement. If there is anything you think should be added to improve this document please [suggest an edit on GitHub](https://github.com/ethereum/ethereum-org-website/blob/dev/src/content/contributing/style-guide/index.md). diff --git a/src/content/contributing/translation-program/translatathon/index.md b/src/content/contributing/translation-program/translatathon/index.md deleted file mode 100644 index d7d338cb6c9..00000000000 --- a/src/content/contributing/translation-program/translatathon/index.md +++ /dev/null @@ -1,212 +0,0 @@ ---- -title: Ethereum.org Translatathon -description: Join the first ethereum.org Translatathon to contribute to ethereum.org, learn about Ethereum, and compete for prizes. -lang: en -template: event -sidebarDepth: 2 -image: ../../../../assets/assets/translatathon-hero.png -buttons: - - label: Apply to participate - to: https://translatathon.paperform.co/ ---- - -Welcome to the first ever ethereum.org Translatathon! - -A translatathon is a collaborative and competitive hackathon-style event where individuals and teams compete for prizes by translating ethereum.org content into different languages. - -The goal is to translate website content and help make ethereum.org more accessible to non-English speakers, raise awareness of the importance of localization and the [Translation program](/contributing/translation-program/), onboard new contributors and give back to our community, while fostering a sense of community by teaming up, collaborating on translations, and competing against other teams. - -We invite you to join us in breaking down language barriers and making ethereum.org content available to a truly global audience. By participating in the Translatathon, you’ll have an opportunity to meet and collaborate with like-minded individuals from across the globe, compete for exciting prizes, and contribute to making Ethereum content more accessible to the world! - -## Overview {#overview} - -### When {#when} - -- Application period: August 1st - August 15th -- Translation period: August 16th - August 23rd -- Evaluation & QA period: August 23rd - August 30th -- Results announcement: August 31st - -### Where {#where} - -The translations and review process will take place in the [ethereum.org project on Crowdin](https://crowdin.com/project/ethereum-org), a localization management platform where all of our localization processes take place. - -All of the Translatathon participants will be required to join the project in Crowdin and translate directly on the platform, where you can translate as individuals or collaborate as part of a team. - -Office hours, workshops, team formation and FAQ sessions will be hosted on the [ethereum.org Discord](https://www.ethereum.org/discord), where you’ll also be able to find all the relevant information on the Translatathon, follow along with announcements and updates, and reach out to other participants and the ethereum.org team. - -### How {#how} - -#### Application period {#applications} - -The application period will be open from **August 1st** to **August 15th** - -All participants in the Translatathon are required to apply in order to participate and compete for prizes. - -During this period, we will be organizing several team formation calls on the Discord, where participants will be able to form teams and apply to compete in the ‘Teams’ category. - -Participants planning to compete as a team need to fill out the [Team registration form](https://teams.paperform.co/) by the end of the application period, adding links to the Crowdin profiles of each team member. - -#### Categories {#categories} - -The Translatathon will be split into two categories: **Teams** and **Individuals** - -Teams will be able to participate by collaborating on translations, competing only against other teams, and the final scores will be calculated based on the sum of translated words by all team members and the content buckets they translated. Teams can have up to a total of 3 members. - -Team members can translate into different languages! - -Individuals will participate in the Translatathon as normal, competing only against other individuals, and the final scores will be calculated based on their number of translated words and the content buckets they translated. - -**Only translations, submitted during the Translation period - starting 16th of August at 5:00am UTC and ending 23rd of August at 5:00am UTC - will count towards the final score.** - -## Step-by-step instructions {#instructions} - -1. Learn more about the Translatathon and read up on the timeline, process, requirements, and evaluation process - -2. Apply to participate [here](https://translatathon.paperform.co/) - -3. Join the team formation and Onboarding calls on the [ethereum.org Discord](https://www.ethereum.org/discord) - -4. If you’re planning to participate as part of a team, fill out the [Team registration form](https://teams.paperform.co/) - -5. Check out the resources on [how to join the project and how to use Crowdin](/contributing/translation-program/how-to-translate/), and read through the [Translation style guide](/contributing/translation-program/translators-guide/) for in-depth guidelines on translating ethereum.org content - -6. Translate! - - - When translating, do not use machine translation or submit low-quality translations, since all translations will be reviewed, and participants found using machine translation or submitting inaccurate translations will be disqualified from competing for prizes! - - -## Details and submission criteria {#details} - -### Requirements and scoring {#requirements-scoring} - -With the translation process taking place in Crowdin, the deliverable for Translatathon participants is simply the content you have translated in the [ethereum.org project](https://crowdin.com/project/ethereum-org). No need to manually submit anything. - -In order for your submissions to be counted, make sure that you are only translating untranslated and unapproved strings. - -This means that you should only be translating files that are less than 100% translated, and strings with no existing translations. They can be easily identified by the red square (as shown in the image below). - -Untranslated string (translate this!): - -![Untranslated string](./untranslated.png) - -Translated strings (do not translate): - -![Translated string](./translated.png) - -String with an approved translation (do not translate): - -![Approved string](./approved.png) - -The files for translation are already categorized by priority in Crowdin, with initial content buckets containing the most high-traffic pages. - -You can read more about content buckets [here](/contributing/translation-program/how-to-translate/#find-document), and check the exact distribution of pages across different content buckets [here](/contributing/translation-program/content-buckets/). - -We always recommend contributors to translate the content buckets in order, starting with 1) Homepage → 2) Essentials → 3) Exploring → 4) Use Ethereum pages, etc., but during the Translatathon, this will be especially important and could heavily influence your score, since the higher priority buckets will have a higher multiplier when calculating the final score. - -Full breakdown of multipliers by content bucket: - -- Content buckets 1-8: 1.2x points multiplier -- Content buckets 9-15: 1.1x points multiplier -- Content buckets 16-28: 1x points multiplier -- Remix translations: 0.8x points multiplier - -### Prizes {#prizes} - -The total prize pool for the Translatathon is 30,000$. - -A detailed breakdown of prizes will be announced at the end of the application period. - -### Evaluation process {#evaluation-process} - -We work with [Acolad](https://www.acolad.com/), a leading localization agency, on all review and QA processes for ethereum.org content. - -As part of the evaluation process for the Translatathon, all translations will be subject to a QA and feedback step, where professional linguists will evaluate submissions by individual translators based on quality and accuracy. - -We will also be running anti-machine translation measures, with Crowdin providing some tools that automatically detect machine translations. - -While translation quality will not play a critical role in the scoring, any participants found using machine translation or suggesting low-quality and inaccurate translations will be disqualified and not eligible to compete for prizes! - -If you are participating in the Translatathon as part of a team, try to pick your teammates wisely. Any team members that are disqualified based on the above criteria will results in your team losing points, putting you at a disadvantage against other teams. - -The evaluation period will take one week after the translation period ends, and results & winners will be announced on August 31st. - -All translations will also be subject to a thorough review before being added to the website. - -## Terms & conditions {#Terms-and-Conditions} - -_The Ethereum.org Translation Competition, also referred to as the “Translatathon”, is an experimental initiative by the ethereum.org team to incentivise and reward contributions to the ethereum.org Translation Program._ - -- Modification and Termination. We reserve the right to modify the rules or to terminate the Translatathon at any time, without prior notice. All changes will be effective immediately upon announcement. - -- Eligibility, Judging, and Prizes. The determination of eligibility, scoring and judging methodology, and prize distribution fall solely and irrevocably under our discretion. - -- Data Privacy. By submitting the application form, applicants and participants confirm that they have read and agree to our Privacy Policy and consent to share with us the requested information, which may include information that constitutes personal data. We will keep all information provided confidential, except for the participants’ provided Crowdin usernames and profile images which may be used in public announcements related to competition results and winners. - -- Translation Standards. The use of machine translation tools, as determined by us in our sole discretion, may result in disqualification from the competition. In addition, the submission of incorrect and/or inaccurate translations, as determined by us in our sole discretion, may result in ineligibility for prize consideration. Further, any contributions towards strings that have already been translated or reviewed, as determined by us in our sole discretion, will not be included in the participants’ final score. We reserve the right to make such determinations, which shall be final and binding. - -- Intellectual Property. Participants agree that by submitting a translation work during the Translatathon, they grant the Ethereum Foundation an irrevocable, non-exclusive, royalty-free licence to use, reproduce, distribute, display, modify, adapt, create derivative works from, and otherwise alter their translation work. Further, participants agree that their translation works may be made publicly available on the ethereum.org website under an open-source licence, including a Creative Commons licence, which allows others to use, share, and build upon the work. - -- Taxes. Any tax implications arising from the receipt of prizes are the sole responsibility of the prize recipient. - -- Comprehensively Sanctioned Countries. Participants from regions or countries that are subject to comprehensive international sanctions (including, but not limited to Cuba, Iran, North Korea, and Syria) will not be eligible for participation. - -- Waiver of Liability. Participants agree that the Ethereum Foundation, its affiliates, and all of their respective officers, directors, employees, and agents will have no liability whatsoever for any injuries, losses, or damages of any kind arising from or in connection with their participation in the Translatathon. - -- Governing Law. Any dispute or claim arising out of or relating to the Translatathon (in each case, including non-contractual disputes or claims), shall be governed by and construed in accordance with the laws of Switzerland without giving effect to any choice or conflict of law provision or rule (whether of Switzerland or any other jurisdiction). - -## Frequently asked questions {#FAQ} - - - -- In Crowdin, you can send a direct message to
Ethereum.org Team -- On the ethereum.org Discord, you can send a message in the #translatathon & #translate channels -- You can send an email to translations@ethereum.org - - - - - -You can translate into any language! It is recommended to only translate into your native language to ensure sufficient quality, but in short, all language available in Crowdin are in scope for the Translatathon. - -In case you would like to translate into a language that is not available in the ethereum.org project in Crowdin, please send a message to Ethereum.org Team in Crowdin, or send a message in the #translatathon or #translate channels on the ethereum.org Discord and we’ll add the language to the project. - - - - - -Yes, all Translatathon participants are required to submit the individual application form to participate. - -Only one member of a team needs to submit the team registration form, so we can keep track of teams and their members. - - - - - -Machine translation is strictly forbidden, but the project in Crowdin has a built-in Translation memory and Glossary that you can use to assist you in the process, or check definitions and established translations for specific terms. - -You can learn more about navigating Crowdin and using the Translation memory and Glossary here. - - - - - -If you are already connected with other translators or people who would be interested in participating, you can simply apply to register as a team and add the Crowdin accounts for everyone that will be part of the team. - -You can also invite your friends and form a team with them. - -Finally, we’ll be hosting team formation calls on the ethereum.org Discord, where you can connect with other individuals looking for teammates. - - - - - -If the ethereum.org content in Crowdin has been 100% translated into your language, congratulations! - -Once the Translatathon is over, all the translated content will be fully reviewed and added to the website. - -However, despite your language being completely translated, you can still participate in the Translatathon by translating Remix content. -These translations will be used in the Remix IDE documentation and have a lower score multiplier than ethereum.org content. - - diff --git a/src/content/contributing/translation-program/translators-guide/index.md b/src/content/contributing/translation-program/translators-guide/index.md deleted file mode 100644 index 1cbef61fa82..00000000000 --- a/src/content/contributing/translation-program/translators-guide/index.md +++ /dev/null @@ -1,299 +0,0 @@ ---- -title: Translators guide -lang: en -description: Instructions and tips for ethereum.org translators ---- - -# Ethereum.org Translation Style Guide {#style-guide} - -The ethereum.org translation style guide contains some of the most important guidelines, instructions, and tips for translators, helping us localize the website. - -This document serves as a general guide and is not specific to any one language. - -If you have any questions, suggestions or feedback, feel free to reach out to us at translations@ethereum.org, send a message to @ethdotorg on Crowdin, or [join our Discord](https://discord.gg/ethereum-org), where you can message us in the #translations channel or reach out to any of the team members. - -### Using Crowdin {#using-crowdin} - -You can find basic instructions on how to join the project in Crowdin and how to use the Crowdin online editor on the [Translation Program page](/contributing/translation-program/#how-to-translate). - -If you would like to learn more about Crowdin and using some of its advanced feature, the [Crowdin knowledge base](https://support.crowdin.com/online-editor/) contains a lot of in-depth guides and overviews of all Crowdin functionality. - -### Capturing the essence of the message {#capturing-the-essence} - -When translating ethereum.org content, avoid literal translations. - -It is important that the translations capture the essence of the message. This could mean rephrasing certain phrases, or using descriptive translations instead of translating the content word for word. - -Different languages have different grammar rules, conventions and word order. When translating, please be mindful of how sentences are structured in the target languages, and avoid literally translating the English source, as this can lead to poor sentence structure and readability. - -Instead of translating the source text word for word, it is recommended you read the entire sentence and adapt it to fit the conventions of the target language. - -### Formal vs. informal {#formal-vs-informal} - -We use the formal form of address, which is always polite and appropriate for all visitors. - -Using the formal address allows us to avoid sounding unofficial or offensive, and works regardless of the visitor’s age and gender. - -Most Indo-European and Afro-Asiatic languages use gender-specific second-person personal pronouns, which distinguish between male and female. When addressing the user or using possessive pronouns, we can avoid assuming the visitor’s gender, as the formal form of address is generally applicable and consistent, regardless of how they identify. - -### Simple and clear vocabulary and meaning {#simple-vocabulary} - -Our goal is to make content on the website understandable to as many people as possible. - -In most cases, this can be easily achieved by using short and simple words that are easily understandable. If there are multiple possible translations for a certain word in your language with the same meaning, the best option is most often the shortest word that clearly reflects the meaning. - -### Writing system {#writing-system} - -Ethereum.org is available in a number of languages, using alternative writing systems (or writing scripts) to Latin. - -All of the content should be translated using the correct writing system for your language, and should not include any words, written using Latin characters. - -When translating the content, you should ensure that the translations are consistent and do not include any Latin characters. - -A common misconception is that Ethereum should always be written in Latin. This is mostly incorrect, please use the spelling of Ethereum, native to your language (e.g. 以太坊 in Chinese, إيثيريوم in Arabic, etc.). - -**The above doesn’t apply to languages, where proper names shouldn’t be translated as a rule.** - -### Translating page metadata {#translating-metadata} - -Some pages contain metadata on the page, like 'title', 'lang', 'description', 'sidebar', etc. - -We hide the content that translators should never translate when uploading new pages to Crowdin, meaning that all the metadata visible to translators in Crowdin should get translated. - -Please be especially mindful when translating any strings where the source text is 'en'. This represents the language that the page is available in and should be translated to the [ISO language code for your language](https://www.andiamo.co.uk/resources/iso-language-codes/). These strings should always be translated using Latin characters, not the writing script, native to the target language. - -If you are unsure which language code to use, you can check the translation memory in Crowdin or find the language code for your language in the URL of the page in the Crowdin online editor. - -Some examples of language codes for the most widely spoken languages: - -- Arabic - ar -- Chinese Simplified - zh -- French - fr -- Hindi - hi -- Spanish - es - -### Titles of external articles {#external-articles} - -Some strings contain titles of external articles. Most of our developer documentation pages contain links to external articles for further reading. The strings containing titles of articles need to be translated, regardless of the article's language, to ensure a more consistent user experience for the visitors viewing the page in their language. - -You can find some examples of what these strings look like for translators and how to identify them below (links to articles can be found mostly at the bottom of these pages, in the 'Further reading' section): - -![Article titles in sidebar.png](./article-titles-in-sidebar.png) -![Article titles in editor.png](./article-titles-in-editor.png) - -### Crowdin warnings {#crowdin-warnings} - -Crowdin has a built-in feature that warns translators when they are about to make a mistake. Crowdin will automatically warn you of this before saving your translation if you forget to include a tag from the source, translate elements that should not be translated, add several consecutive spaces, forget end punctuation, etc. -If you see a warning like this, please go back and double-check the suggested translation. - -**Never ignore these warnings, as they usually mean that something is wrong, or that the translation is missing a key part of the source text.** - -An example of a Crowdin warning when you forget to add a tag to your translation: -![Example of a Crowdin warning](./crowdin-warning-example.png) - -### Dealing with tags and code snippets {#dealing-with-tags} - -A lot of the source content contains tags and variables, which are highlighted in yellow in the Crowdin editor. These serve different functions and should be approached correctly. - -**Crowdin settings** - -To make it easier to manage tags and copy them directly from the source, we recommend changing your settings in the Crowdin editor. - -1. Open settings - ![How to open settings in the editor](./editor-settings.png) - -2. Scroll down to the 'HTML tags displaying' section - -3. Select 'Hide' - ![Please select 'Hide'](./hide-tags.png) - -4. Click 'Save' - -By selecting this option, the full tag text will no longer be shown, and will be replaced by a number. -When translating, clicking on this tag will automatically copy the exact tag to the translation field. - -**Links** - -You may notice full links to pages on ethereum.org or other websites. - -These should be identical to the source and not changed or translated. If you translate a link or change it in any way, even just removing a part of it, like a slash (/), this will lead to broken and unusable links. - -The best way to handle links is to copy them directly from the source, either by clicking on them or using the ‘Copy Source’ button (Alt+C). - -![Example of link.png](./example-of-link.png) - -Links also appear in the source text in the form of tags (i.e. <0> ). If you hover over the tag, the editor will show its full content - sometimes these tags will represent links. - -It is very important to copy the links from the source and not change their order. - -If the order of the tags is changed, the link they represent will be broken. - -![Example of links inside tags.png](./example-of-links-inside-tags.png) - -**Tags and variables** - -The source text contains many different types of tags, which should always be copied from the source and never changed. Similarly to above, the order of these tags in the translation should also remain the same as the source. - -Tags always contain an opening and closing tag. In most cases, the text between opening and closing tags should be translated. - -Example: ``Decentralized`` - -`` - _Opening tag that makes the text bold_ - -Decentralized - _Translatable text_ - -`` - _Closing tag_ - -![Example of 'strong' tags.png](./example-of-strong-tags.png) - -Code snippets should be approached slightly differently to the other tags, since they contain code that should not be translated. - -Example: ``nonce`` - -`` - _Opening tag, which contains a code snippet_ - -nonce - _Non-translatable text_ - -`` - _Closing tag_ - -![Example of code snippets.png](./example-of-code-snippets.png) - -The source text also contains shortened tags, which only contain numbers, meaning that their function is not immediately obvious. You can hover over these tags to see exactly which function they serve. - -In the example below, you can see that hovering over the <0> tag shows that it represents `` and contains a code snippet, therefore the content inside these tags should not be translated. - -![Example of ambiguous tags.png](./example-of-ambiguous-tags.png) - -### Short vs. full forms/abbreviations {#short-vs-full-forms} - -There are a lot of abbreviations used on the website, e.g. dapps, NFT, DAO, DeFi, etc. These abbreviations are commonly used in English and most visitors to the website are familiar with them. - -Since they usually don’t have established translations in other languages, the best way to approach these and similar terms is to provide a descriptive translation of the full form, and add the English abbreviation in brackets. - -Do not translate these abbreviations, since most people wouldn’t be familiar with them, and the localized versions would not make much sense to most visitors. - -Example of how to translate dapps: - -- Decentralized applications (dapps) → _Translated full form (English abbreviation in brackets)_ - -### Terms without established translations {#terms-without-established-translations} - -Some terms might not have established translations in other languages, and are widely known by the original English term. Such terms mostly include newer concepts, like proof-of-work, proof-of-stake, Beacon Chain, staking, etc. - -While translating these terms can sound unnatural, since the English version is commonly used in other languages as well, it is highly recommended that they are translated. - -When translating them, feel free to get creative, use descriptive translations, or simply translate them literally. - -**The reason why most terms should be translated, instead of leaving some in English, is the fact that this new terminology will become more widespread in the future, as more people start using Ethereum and related technologies. If we want to onboard more people from all over the world to this space, we need to provide understandable terminology in as many languages as possible, even if we need to create it ourselves.** - -### Buttons & CTAs {#buttons-and-ctas} - -The website contains numerous buttons, which should be translated differently than other content. - -Button text can be identified by viewing the context screenshots, connected with most strings, or by checking the context in the editor, which includes the phrase ‘’button’’. - -The translations for buttons should be as short as possible, to prevent formatting mismatches. Additionally, button translations should be imperative, i.e. present a command or request. - -![How to find a button.png](./how-to-find-a-button.png) - -### Translating for inclusivity {#translating-for-inclusivity} - -Ethereum.org visitors come from all over the world and from different backgrounds. The language on the website should therefore be neutral, welcoming to everyone and not exclusive. - -An important aspect of this is gender neutrality. This can be easily achieved by using the formal form of address, and avoiding any gender-specific words in the translations. - -Another form of inclusivity is trying to translate for a global audience, not specific to any country, race or region. - -Finally, the language should be suitable for all audiences and ages. - -## Language-specific translations {#language-specific-translations} - -When translating, it is important to follow the grammar rules, conventions and formatting, used in your language, as opposed to copying from the source. The source text follows English grammar rules and conventions, which is not applicable to many other languages. - -You should be aware of the rules for your language and translate accordingly. If you need help, reach out to us and we will help you find some resources on how these elements should be used in your language. - -Some examples of what to be particularly mindful of: - -### Punctuation, formatting {#punctuation-and-formatting} - -**Capitalization** - -- There are vast differences in capitalization in different languages. -- In English, it is common to capitalize all words in titles and names, months and days, language names, holidays, etc. In many other languages, this is grammatically incorrect, as they have different capitalization rules. -- Some languages also have rules about capitalizing personal pronouns, nouns, and certain adjectives, which are not capitalized in English. - -**Spacing** - -- Orthography rules define the use of spaces for each language. Because spaces are used everywhere, these rules are some of the most distinct, and spaces are some of the most mistranslated elements. -- Some common differences in spacing between English and other languages: - - Space before units of measure and currencies (e.g. USD, EUR, kB, MB) - - Space before degree signs (e.g. °C, ℉) - - Space before some punctuation marks, especially the ellipsis (…) - - Space before and after slashes (/) - -**Lists** - -- Every language has a diverse and complex set of rules for writing lists. These can be significantly different to English. -- In some languages, the first word of each new line needs to be capitalized, while in others, new lines should start with lower-case letters. Many languages also have different rules about capitalization in lists, depending on the length of each line. -- The same applies to punctuation of line items. The end punctuation in lists can be a period (**.**), comma (**,**), or semicolon (**;**), depending on the language. - -**Quotation marks** - -- Languages use many different quotation marks. Simply copying the English quotation marks from the source is often incorrect. -- Some of the most common types of quotation marks include: - - „example text“ - - ‚example text’ - - »example text« - - “example text” - - ‘example text’ - - «example text» - -**Hyphens and dashes** - -- In English, a hyphen (-) is used to join words or different parts of a word, while a dash (–) is used to indicate a range or a pause. -- Many languages have different rules for using hyphens and dashes that should be observed. - -### Formats {#formats} - -**Numbers** - -- The main difference in writing numbers in different languages is the separator used for decimals and thousands. For thousands, this can be a period, comma or space. Similarly, some languages use a decimal point, while others use a decimal comma. - - Some examples of large numbers: - - English – **1,000.50** - - Spanish – **1.000,50** - - French – **1 000,50** -- Another important consideration when translating numbers is the percent sign. It can be written in different ways: **100%**, **100 %** or **%100**. -- Finally, negative numbers can be displayed differently, depending on the language: -100, 100-, (100) or [100]. - -**Dates** - -- When translating dates, there are a number of considerations and differences based on the language. These include the date format, separator, capitalization and leading zeros. There are also differences between full-length and numerical dates. - - Some examples of different date formats: - - English UK (dd/mm/yyyy) – 1st January, 2022 - - English US (mm/dd/yyyy) – January 1st, 2022 - - Chinese (yyyy-mm-dd) – 2022 年 1 月 1 日 - - French (dd/mm/yyyy) – 1er janvier 2022 - - Italian (dd/mm/yyyy) – 1º gennaio 2022 - - German (dd/mm/yyyy) – 1. Januar 2022 - -**Currencies** - -- Translating currencies can be challenging, due to the different formats, conventions and conversions. As a general rule, please keep currencies the same as the source. You can add your local currency and conversion in brackets, for the benefit of the reader. -- The main differences in writing currencies in different languages include symbol placement, decimal commas vs. decimal points, spacing, and abbreviations vs. symbols. - - Symbol placement: $100 or 100$ - - Decimal commas vs. decimal points: 100,50$ or 100.50$ - - Spacing: 100$ or 100 $ - - Abbreviations vs. symbols: 100 $ or 100 USD - -**Units of measure** - -- As a general rule, please keep the units of measure as per the source. If your country uses a different system, you can include the conversion in brackets. -- Aside from the localization of units of measure, it is also important to note the differences in how languages approach these units. The main difference is the spacing between the number and unit, which can be different, based on the language. Examples of this include 100kB vs. 100 kB or 50ºF vs. 50 ºF. - -### Conclusion {#conclusion} - -Translating ethereum.org is a great opportunity to learn about the different aspects of Ethereum. - -When translating, try not to rush. Take it easy and have fun! - -Thank you for being involved with the Translation Program and helping us make the website accessible to a wider audience. The Ethereum community is global, and we are happy you are a part of it! diff --git a/src/content/dao/index.md b/src/content/dao/index.md deleted file mode 100644 index ca1050288ce..00000000000 --- a/src/content/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: Decentralized autonomous organizations (DAOs) -description: An overview of DAOs on Ethereum -lang: en -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../assets/use-cases/dao-2.png -alt: A representation of a DAO voting on a proposal. -summaryPoint1: Member-owned communities without centralized leadership. -summaryPoint2: A safe way to collaborate with internet strangers. -summaryPoint3: A safe place to commit funds to a specific cause. ---- - -## What are DAOs? {#what-are-daos} - -A DAO is a collectively-owned, blockchain-governed organization working towards a shared mission. - -DAOs allow us to work with like-minded folks around the globe without trusting a benevolent leader to manage the funds or operations. There is no CEO who can spend funds on a whim or CFO who can manipulate the books. Instead, blockchain-based rules baked into the code define how the organization works and how funds are spent. - -They have built-in treasuries that no one has the authority to access without the approval of the group. Decisions are governed by proposals and voting to ensure everyone in the organization has a voice, and everything happens transparently on-chain. - -## Why do we need DAOs? {#why-dao} - -Starting an organization with someone that involves funding and money requires a lot of trust in the people you're working with. But it’s hard to trust someone you’ve only ever interacted with on the internet. With DAOs you don’t need to trust anyone else in the group, just the DAO’s code, which is 100% transparent and verifiable by anyone. - -This opens up so many new opportunities for global collaboration and coordination. - -### A comparison {#dao-comparison} - -| DAO | A traditional organization | -| ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | -| Usually flat, and fully democratized. | Usually hierarchical. | -| Voting required by members for any changes to be implemented. | Depending on structure, changes can be demanded from a sole party, or voting may be offered. | -| Votes tallied, and outcome implemented automatically without trusted intermediary. | If voting allowed, votes are tallied internally, and outcome of voting must be handled manually. | -| Services offered are handled automatically in a decentralized manner (for example distribution of philanthropic funds). | Requires human handling, or centrally controlled automation, prone to manipulation. | -| All activity is transparent and fully public. | Activity is typically private, and limited to the public. | - -### DAO examples {#dao-examples} - -To help this make more sense, here's a few examples of how you could use a DAO: - -- A charity – you could accept donations from anyone in the world and vote on which causes to fund. -- Collective ownership – you could purchase physical or digital assets and members can vote on how to use them. -- Ventures and grants – you could create a venture fund that pools investment capital and votes on ventures to back. Repaid money could later be redistributed amongst DAO-members. - -## How do DAOs work? {#how-daos-work} - -The backbone of a DAO is its smart contract, which defines the rules of the organization and holds the group's treasury. Once the contract is live on Ethereum, no one can change the rules except by a vote. If anyone tries to do something that's not covered by the rules and logic in the code, it will fail. And because the treasury is defined by the smart contract too that means no one can spend the money without the group's approval either. This means that DAOs don't need a central authority. Instead, the group makes decisions collectively, and payments are automatically authorized when votes pass. - -This is possible because smart contracts are tamper-proof once they go live on Ethereum. You can't just edit the code (the DAOs rules) without people noticing because everything is public. - - - More on smart contracts - - -## Ethereum and DAOs {#ethereum-and-daos} - -Ethereum is the perfect foundation for DAOs for a number of reasons: - -- Ethereum’s own consensus is distributed and established enough for organizations to trust the network. -- Smart contract code can’t be modified once live, even by its owners. This allows the DAO to run by the rules it was programmed with. -- Smart contracts can send/receive funds. Without this you'd need a trusted intermediary to manage group funds. -- The Ethereum community has proven to be more collaborative than competitive, allowing for best practices and support systems to emerge quickly. - -## DAO governance {#dao-governance} - -There are many considerations when governing a DAO, such as how voting and proposals work. - -### Delegation {#governance-delegation} - -Delegation is like the DAO version of representative democracy. Token holders delegate votes to users who nominate themselves and commit to stewarding the protocol and staying informed. - -#### A famous example {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) – ENS holders can delegate their votes to engaged community members to represent them. - -### Automatic transaction governance {#governance-example} - -In many DAOs, transactions will be automatically executed if a quorum of members votes affirmative. - -#### A famous example {#governance-example} - -[Nouns](https://nouns.wtf) – In Nouns DAO, a transaction is automatically executed if a quorum of votes is met and a majority votes affirmative, as long as it is not vetoed by the founders. - -### Multisig governance {#governance-example} - -While DAOs may have thousands of voting members, funds can live in a wallet shared by 5-20 active community members who are trusted and usually doxxed (public identities known to the community). After a vote, the multisig signers execute the will of the community. - -## DAO laws {#dao-laws} - -In 1977, Wyoming invented the LLC, which protects entrepreneurs and limits their liability. More recently, they pioneered the DAO law that establishes legal status for DAOs. Currently Wyoming, Vermont, and the Virgin Islands have DAO laws in some form. - -#### A famous example {#law-example} - -[CityDAO](https://citydao.io) – CityDAO used Wyoming's DAO law to buy 40 acres of land near Yellowstone National Park. - -## DAO membership {#dao-membership} - -There are different models for DAO membership. Membership can determine how voting works and other key parts of the DAO. - -### Token-based membership {#token-based-membership} - -Usually fully permissionless, depending on the token used. Mostly these governance tokens can be traded permissionlessly on a decentralized exchange. Others must be earned through providing liquidity or some other ‘proof-of-work’. Either way, simply holding the token grants access to voting. - -_Typically used to govern broad decentralized protocols and/or tokens themselves._ - -#### A famous example {#token-example} - -[MakerDAO](https://makerdao.com) – MakerDAO's token MKR is widely available on decentralized exchanges and anyone can buy into having voting power on Maker protocol's future. - -### Share-based membership {#share-based-membership} - -Share-based DAOs are more permissioned, but still quite open. Any prospective members can submit a proposal to join the DAO, usually offering a tribute of some value in the form of tokens or work. Shares represent direct voting power and ownership. Members can exit at any time with their proportionate share of the treasury. - -_Typically used for more closer-knit, human-centric organizations like charities, worker collectives, and investment clubs. Can also govern protocols and tokens as well._ - -#### A famous example {#share-example} - -[MolochDAO](http://molochdao.com/) – MolochDAO is focused on funding Ethereum projects. They require a proposal for membership so the group can assess whether you have the necessary expertise and capital to make informed judgments about potential grantees. You can't just buy access to the DAO on the open market. - -### Reputation-based membership {#reputation-based-membership} - -Reputation represents proof of participation and grants voting power in the DAO. Unlike token or share-based membership, reputation-based DAOs don't transfer ownership to contributors. Reputation cannot be bought, transferred or delegated; DAO members must earn reputation through participation. On-chain voting is permissionless and prospective members can freely submit proposals to join the DAO and request to receive reputation and tokens as a reward in exchange for their contributions. - -_Typically used for decentralized development and governance of protocols and dapps, but also well suited to a diverse set of organizations like charities, worker collectives, investment clubs, etc._ - -#### A famous example {#reputation-example} - -[DXdao](https://DXdao.eth.link) – DXdao is a global sovereign collective building and governing decentralized protocols and applications since 2019. It leverages reputation-based governance and holographic consensus to coordinate and manage funds, meaning no one can buy their way into influencing its future. - -## Join / start a DAO {#join-start-a-dao} - -### Join a DAO {#join-a-dao} - -- [Ethereum community DAOs](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [DAOHaus's list of DAOs](https://app.daohaus.club/explore) -- [Tally.xyz list of DAOs](https://www.tally.xyz) - -### Start a DAO {#start-a-dao} - -- [Summon a DAO with DAOHaus](https://app.daohaus.club/summon) -- [Start a Governor DAO with Tally](https://www.tally.xyz/add-a-dao) -- [Create an Aragon-powered DAO](https://aragon.org/product) -- [Start a colony](https://colony.io/) -- [Create a DAO with DAOstack's holographic consensus](https://alchemy.daostack.io/daos/create) - -## Further reading {#further-reading} - -### DAO Articles {#dao-articles} - -- [What's a DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) -- [The DAO Handbook](https://daohandbook.xyz) -- [House of DAOs](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) -- [What is a DAO and what is it for?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) -- [How to Start a DAO-Powered Digital Community](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) -- [What is a DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) -- [What is Holographic Consensus?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) -- [DAOs are not corporations: where decentralization in autonomous organizations matters by Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) -- [DAOs, DACs, DAs and More: An Incomplete Terminology Guide](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Ethereum Blog](https://blog.ethereum.org) - -### Videos {#videos} - -- [What is a DAO in crypto?](https://youtu.be/KHm0uUPqmVE) -- [Can a DAO Build a City?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/src/content/decentralized-identity/index.md b/src/content/decentralized-identity/index.md deleted file mode 100644 index 8733ce5bb6b..00000000000 --- a/src/content/decentralized-identity/index.md +++ /dev/null @@ -1,189 +0,0 @@ ---- -title: Decentralized identity -description: What is decentralized identity, and why does it matter? -lang: en -template: use-cases -emoji: ":id:" -sidebarDepth: 2 -image: ../../assets/eth-gif-cat.png -summaryPoint1: Traditional identity systems have centralized the issuance, maintenance and control of your identifiers. -summaryPoint2: Decentralized identity removes reliance on centralized third parties. -summaryPoint3: Thanks to crypto, users now have the tools to issue, hold and control their own identifiers and attestations once again. ---- - -Identity underpins virtually every aspect of your life today. Using online services, opening a bank account, voting in elections, buying property, securing employment—all of these things require proving your identity. - -However, traditional identity management systems have long relied on centralized intermediaries who issue, hold, and control your identifiers and [attestations](#what-are-attestations). This means you cannot control your identity-related information or decide who has access to personally identifiable information (PII) and how much access these parties have. - -To solve these problems, we have decentralized identity systems built on public blockchains like Ethereum. Decentralized identity allows individuals to manage their identity-related information. With decentralized identity solutions, _you_ can create identifiers and claim and hold your attestations without relying on central authorities, like service providers or governments. - -## What is identity? {#what-is-identity} - -Identity means an individual's sense of self, defined by unique characteristics. Identity refers to being an _individual_, i.e., a distinct human entity. Identity could also refer to other non-human entities, such as an organization or authority. - -## What are identifiers? {#what-are-identifiers} - -An identifier is a piece of information that acts as a pointer to a particular identity or identities. Common identifiers include: - -- Name -- Social security number/tax ID number -- Mobile number -- Date and place of birth -- Digital identification credentials, e.g., email addresses, usernames, avatars - -These traditional examples of identifiers are issued, held and controlled by central entities. You need permission from your government to change your name or from a social media platform to change your handle. - -## What are attestations? {#what-are-attestations} - -An attestation is a claim made by one entity about another entity. If you live in the United States, the driver's license issued to you by the Department of Motor Vehicles (one entity) attests that you (another entity) are legally allowed to drive a car. - -Attestations are different from identifiers. An attestation _contains_ identifiers to reference a particular identity, and makes a claim about an attribute related to this identity. So, your driver's license has identifiers (name, date of birth, address) but is also the attestation about your legal right to drive. - -### What are decentralized identifiers? {#what-are-decentralized-identifiers} - -Traditional identifiers like your legal name or email address rely on third parties—governments and email providers. Decentralized identifiers (DIDs) are different—they aren't issued, managed, or controlled by any central entity. - -Decentralized identifiers are issued, held, and controlled by individuals. An [Ethereum account](/developers/docs/accounts/) is an example of a decentralized identifier. You can create as many accounts as you want without permission from anyone and without the need to store them in a central registry. - -Decentralized identifiers are stored on distributed ledgers (blockchains) or peer-to-peer networks. This makes DIDs [globally unique, resolvable with high availability, and cryptographically verifiable](https://w3c-ccg.github.io/did-primer/). A decentralized identifier can be associated with different entities, including people, organizations, or government institutions. - -## What makes decentralized identifiers possible? {#what-makes-decentralized-identifiers-possible} - -### 1. Public Key Infrastructure (PKI) {#public-key-infrastructure} - -Public-key infrastructure (PKI) is an information security measure that generates a [public key](/glossary/#public-key) and [private key](/glossary/#private-key) for an entity. Public-key cryptography is used in blockchain networks to authenticate user identities and prove ownership of digital assets. - -Some decentralized identifiers, such as an Ethereum account, have public and private keys. The public key identifies the account's controller, while the private keys can sign and decrypt messages for this account. PKI provides proofs needed to authenticate entities and prevent impersonation and use of fake identities, using [cryptographic signatures](https://andersbrownworth.com/blockchain/public-private-keys/) to verify all claims. - -### 2. Decentralized datastores {#decentralized-datastores} - -A blockchain serves as a verifiable data registry: an open, trustless, and decentralized repository of information. The existence of public blockchains eliminates the need to store identifiers in centralized registries. - -If anyone needs to confirm the validity of a decentralized identifier, they can look up the associated public key on the blockchain. This is different from traditional identifiers that require third parties to authenticate. - -## How do decentralized identifiers and attestations enable decentralized identity? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} - -Decentralized identity is the idea that identity-related information should be self-controlled, private, and portable, with decentralized identifiers and attestations being the primary building blocks. - -In the context of decentralized identity, attestations (also known as [Verifiable Credentials](https://www.w3.org/TR/vc-data-model/)) are tamper-proof, cryptographically verifiable claims made by the issuer. Every attestation or Verifiable Credential an entity (e.g., an organization) issues is associated with their DID. - -Because DIDs are stored on the blockchain, anyone can verify the validity of an attestation by cross-checking the issuer's DID on Ethereum. Essentially, the Ethereum blockchain acts like a global directory that enables the verification of DIDs associated with certain entities. - -Decentralized identifiers are the reason attestations are self-controlled and verifiable. Even if the issuer doesn't exist anymore, the holder always has proof of the attestation's provenance and validity. - -Decentralized identifiers are also crucial to protecting the privacy of personal information through decentralized identity. For instance, if an individual submits proof of an attestation (a driver's license), the verifying party doesn't need to check the validity of information in the proof. Instead, the verifier only needs cryptographic guarantees of the attestation's authenticity and the identity of the issuing organization to determine if the proof is valid. - -## Types of attestations in decentralized identity {#types-of-attestations-in-decentralized-identity} - -How attestation information is stored and retrieved in an Ethereum-based identity ecosystem is different from traditional identity management. Here is an overview of the various approaches to issuing, storing, and verifying attestations in decentralized identity systems: - -### Off-chain attestations {#off-chain-attestations} - -One concern with storing attestations on-chain is that they might contain information individuals want to keep private. The public nature of the Ethereum blockchain makes it unattractive to store such attestations. - -The solution is to issue attestations, held by users off-chain in digital wallets, but signed with the issuer's DID stored on-chain. These attestations are encoded as [JSON Web Tokens](https://en.wikipedia.org/wiki/JSON_Web_Token) and contain the issuer's digital signature—which allows for easy verification of off-chain claims. - -Here's an hypothetical scenario to explain off-chain attestations: - -1. A university (the issuer) generates an attestation (a digital academic certificate), signs with its keys, and issues it to Bob (the identity owner). - -2. Bob applies for a job and wants to prove his academic qualifications to an employer, so he shares the attestation from his mobile wallet. The company (the verifier) can then confirm the validity of the attestation by checking the issuer's DID (i.e., its public key on Ethereum). - -### Off-chain attestations with persistent access {#offchain-attestations-with-persistent-access} - -Under this arrangement attestations are transformed into JSON files and stored off-chain (ideally on a [decentralized cloud storage](/developers/docs/storage/) platform, such as IPFS or Swarm). However, a [hash](/glossary/#hash) of the JSON file is stored on-chain and linked to a DID via an on-chain registry. The associated DID could either be that of the issuer of the attestation or the recipient. - -This approach enables attestations to gain blockchain-based persistence, while keeping claims information encrypted and verifiable. It also allows for selective disclosure since the holder of the private key can decrypt the information. - -### On-chain attestations {#onchain-attestations} - -On-chain attestations are held in [smart contracts](/developers/docs/smart-contracts/) on the Ethereum blockchain. The smart contract (acting as a registry) will map an attestation to a corresponding on-chain decentralized identifier (a public key). - -Here's an example to show how on-chain attestations might work in practice: - -1. A company (XYZ Corp) plans to sell ownership shares using a smart contract but only wants buyers that have completed a background check. - -2. XYZ Corp can have the company performing background checks to issue on-chain attestations on Ethereum. This attestation certifies that an individual has passed the background check without exposing any personal information. - -3. The smart contract selling shares can check the registry contract for the identities of screened buyers, making it possible for the smart contract to determine who is permitted to buy shares or not. - -### Soulbound tokens and identity {#soulbound} - -[Soulbound tokens](https://vitalik.ca/general/2022/01/26/soulbound.html) (non-transferable NFTs) could be used to collect information unique to a specific wallet. This effectively creates a unique on-chain identity bound to a particular Ethereum address that could include tokens representing achievements (e.g. finishing some specific online course or passing a threshold score in a game) or community participation. - -## Benefits of decentralized identity {#benefits-of-decentralized-identity} - -1. Decentralized identity increases individual control of identifying information. Decentralized identifiers and attestations can be verified without relying on centralized authorities and third-party services. - -2. Decentralized identity solutions facilitates a trustless, seamless, and privacy-protecting method for verifying and managing user identity. - -3. Decentralized identity harnesses blockchain technology, which creates trust between different parties and provides cryptographic guarantees to prove the validity of attestations. - -4. Decentralized identity makes identity data portable. Users store attestations and identifiers in a mobile wallet and can share with any party of their choice. Decentralized identifiers and attestations are not locked into the database of the issuing organization. - -5. Decentralized identity should work well with emerging zero-knowledge technologies that will enable individuals to prove they own or have done something without revealing what that thing is. This could become a powerful way to combine trust and privacy for applications such as voting. - -6. Decentralized identity enables anti-Sybil mechanisms to identify when one individual human is pretending to be multiple humans to game or spam some system. - -## Decentralized identity use-cases {#decentralized-identity-use-cases} - -Decentralized identity has many potential use-cases: - -### 1. Universal logins {#universal-dapp-logins} - -Decentralized identity can help replace password-based logins with [decentralized authentication](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). Service providers can issue attestations to users, which can be stored in an Ethereum wallet. An example attestation would be an [NFT](/nft/) granting the holder access to an online community. - -A [Sign-In with Ethereum](https://login.xyz/) function would then enable servers to confirm the user's Ethereum account and fetch the required attestation from their account address. This means users can access platforms and websites without having to memorize long passwords and improves the online experience for users. - -### 2. KYC authentication {#kyc-authentication} - -Using many online services requires individuals to provide attestations and credentials, such as a driving license or national passport. But this approach is problematic because private user information can be compromised and service providers cannot verify the authenticity of the attestation. - -Decentralized identity allows companies to skip on conventional [Know-Your-Customer (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) processes and authenticate user identities via Verifiable Credentials. This reduces the cost of identity management and prevents the use of fake documentation. - -### 3. Voting and online communities {#voting-and-online-communities} - -Online voting and social media are two novel applications for decentralized identity. Online voting schemes are susceptible to manipulation, especially if malicious actors create false identities to vote. Asking individuals to present on-chain attestations can improve the integrity of online voting processes. - -Decentralized identity can help create online communities that are free of fake accounts. For example, each user might have to authenticate their identity using an on-chain identity system, like the Ethereum Name Service, reducing the possibility of bots. - -### 4. Anti-Sybil protection {#sybil-protection} - -Sybil attacks refer to individual humans tricking a system into thinking they are multiple people to increase their influence. [Grant-giving applications](https://gitcoin.co/grants/) that use [quadratic voting](https://www.radicalxchange.org/concepts/plural-voting/) are vulnerable to these Sybil attacks because the value of a grant is increased when more individuals vote for it, incentivizing users to split their contributions across many identities. Decentralized identities help to prevent this by raising the burden on each participant to prove that they are really human, although often without having to reveal specific private information. - -## Use decentralized identity {#use-decentralized-identity} - -There are many ambitious projects using Ethereum as a foundation for decentralized identity solutions: - -- **[Ethereum Name Service (ENS)](https://ens.domains/)** - _A decentralized naming system for on-chain, machine-readable identifiers, like, Ethereum wallet addresses, content hashes, and metadata._ -- **[SpruceID](https://www.spruceid.com/)** - _A decentralized identity project which allows users to control digital identity with Ethereum accounts and ENS profiles instead of relying on third-party services._ -- **[Ethereum Attestation Service (EAS)](https://attest.sh/)** - _A decentralized ledger/protocol for making on-chain or off-chain attestations about anything._ -- **[Proof of Humanity](https://www.proofofhumanity.id)** - _Proof of Humanity (or PoH) is a social identity verification system built on Ethereum._ -- **[BrightID](https://www.brightid.org/)** - _A decentralized, open-source social identity network seeking to reform identity verification through the creation and analysis of a social graph._ -- **[Proof-of-personhood Passport](https://proofofpersonhood.com/)** - _A decentralized digital identity aggregator._ -- **[walt.id](https://walt.id)** — _Open source decentralized identity and wallet infrastructure that enables developers and organizations to leverage self-sovereign identity and NFTs/SBTs._ - -## Further reading {#further-reading} - -### Articles {#articles} - -- [Blockchain Use Cases: Blockchain in Digital Identity](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ -- [What is Ethereum 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) — _Emmanuel Awosika_ -- [Introduction to Decentralized Identity](https://walt.id/white-paper/digital-identity) — _Dominik Beron_ - -### Videos {#videos} - -- [Decentralized Identity (Bonus Livestream Session)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _A great explainer video on decentralized identity by Andreas Antonopolous_ -- [Sign In with Ethereum and Decentralized Identity with Ceramic, IDX, React, and 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _YouTube tutorial on building out an identity management system for creating, reading, and updating a user's profile using their Ethereum wallet by Nader Dabit_ -- [BrightID - Decentralized Identity on Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _Bankless podcast episode discussing BrightID, a decentralized identity solution for Ethereum_ -- [The Off Chain Internet: Decentralized Identity & Verifiable Credentials](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — EthDenver 2022 presentation by Evin McMullen -- [Verifiable Credentials Explained](https://www.youtube.com/watch?v=ce1IdSr-Kig) - YouTube explainer video with demo by Tamino Baumann - -### Communities {#communities} - -- [ERC-725 Alliance on GitHub](https://github.com/erc725alliance) — _Supporters of the ERC725 standard for managing identity on the Ethereum blockchain_ -- [SpruceID Discord server](https://discord.com/invite/Sf9tSFzrnt) — _Community for enthusiasts and developers working on Sign-in with Ethereum_ -- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _A community of developers contributing to building a framework for verifiable data for applications_ -- [walt.id](https://discord.com/invite/AW8AgqJthZ) — _A community of developers and builders working on decentralized identity use cases across various industries_ diff --git a/src/content/defi/index.md b/src/content/defi/index.md deleted file mode 100644 index 8761f381d8f..00000000000 --- a/src/content/defi/index.md +++ /dev/null @@ -1,352 +0,0 @@ ---- -title: Decentralized finance (DeFi) -description: An overview of DeFi on Ethereum -lang: en -template: use-cases -emoji: ":money_with_wings:" -image: ../../assets/use-cases/defi.png -alt: An Eth logo made of lego bricks. -sidebarDepth: 2 -summaryPoint1: A global, open alternative to the current financial system. -summaryPoint2: Products that let you borrow, save, invest, trade, and more. -summaryPoint3: Based on open-source technology that anyone can program with. ---- - -DeFi is an open and global financial system built for the internet age – an alternative to a system that's opaque, tightly controlled, and held together by decades-old infrastructure and processes. It gives you control and visibility over your money. It gives you exposure to global markets and alternatives to your local currency or banking options. DeFi products open up financial services to anyone with an internet connection and they're largely owned and maintained by their users. So far tens of billions of dollars worth of crypto has flowed through DeFi applications and it's growing every day. - -## What's DeFi? {#what-is-defi} - -DeFi is a collective term for financial products and services that are accessible to anyone who can use Ethereum – anyone with an internet connection. With DeFi, the markets are always open and there are no centralized authorities who can block payments or deny you access to anything. Services that were previously slow and at risk of human error are automatic and safer now that they're handled by code that anyone can inspect and scrutinize. - -There's a booming crypto economy out there, where you can lend, borrow, long/short, earn interest, and more. Crypto-savvy Argentinians have used DeFi to escape crippling inflation. Companies have started streaming their employees their wages in real time. Some folks have even taken out and paid off loans worth millions of dollars without the need for any personal identification. - - - -## DeFi vs traditional finance {#defi-vs-tradfi} - -One of the best ways to see the potential of DeFi is to understand the problems that exist today. - -- Some people aren't granted access to set up a bank account or use financial services. -- Lack of access to financial services can prevent people from being employable. -- Financial services can block you from getting paid. -- A hidden charge of financial services is your personal data. -- Governments and centralized institutions can close down markets at will. -- Trading hours are often limited to business hours of specific time zone. -- Money transfers can take days due to internal human processes. -- There's a premium to financial services because intermediary institutions need their cut. - -### A comparison {#defi-comparison} - -| DeFi | Traditional finance | -| -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | -| You hold your money. | Your money is held by companies. | -| You control where your money goes and how it's spent. | You have to trust companies not to mismanage your money, like lending to risky borrowers. | -| Transfers of funds happen in minutes. | Payments can take days due to manual processes. | -| Transaction activity is pseudonymous. | Financial activity is tightly coupled with your identity. | -| DeFi is open to anyone. | You must apply to use financial services. | -| The markets are always open. | Markets close because employees need breaks. | -| It's built on transparency – anyone can look at a product's data and inspect how the system works. | Financial institutions are closed books: you can't ask to see their loan history, a record of their managed assets, and so on. | - - - Explore DeFi apps - - -## It started with Bitcoin... {#bitcoin} - -Bitcoin in many ways was the first DeFi application. Bitcoin lets you really own and control value and send it anywhere around the world. It does this by providing a way for a large number of people, who don't trust each other, to agree on a ledger of accounts without the need for a trusted intermediary. Bitcoin is open to anyone and no one has the authority to change its rules. Bitcoin's rules, like its scarcity and its openness, are written into the technology. It's not like traditional finance where governments can print money that devalues your savings and companies can shut down markets. - -Ethereum builds on this. Like Bitcoin, the rules can't change on you and everyone has access. But it also makes this digital money programmable, using [smart contracts](/glossary#smart-contract), so you can go beyond storing and sending value. - - - -## Programmable money {#programmable-money} - -This sounds odd... "why would I want to program my money"? However, this is more just a default feature of tokens on Ethereum. Anyone can program logic into payments. So you can get the control and security of Bitcoin mixed with the services provided by financial institutions. This lets you do things with cryptocurrencies that you can't do with Bitcoin like lending and borrowing, scheduling payments, investing in index funds and more. - - -
Explore our suggestions for DeFi applications to try out if you're new to Ethereum.
- - Explore DeFi apps - -
- -## What can you do with DeFi? {#defi-use-cases} - -There's a decentralized alternative to most financial services. But Ethereum also creates opportunities for creating financial products that are completely new. This is an ever-growing list. - -- [Send money around the globe](#send-money) -- [Stream money around the globe](#stream-money) -- [Access stable currencies](#stablecoins) -- [Borrow funds with collateral](#lending) -- [Borrow without collateral](#flash-loans) -- [Start crypto savings](#saving) -- [Trade tokens](#swaps) -- [Grow your portfolio](#investing) -- [Fund your ideas](#crowdfunding) -- [Buy insurance](#insurance) -- [Manage your portfolio](#aggregators) - - - -### Send money around the globe quickly {#send-money} - -As a blockchain, Ethereum is designed for sending transactions in a secure and global way. Like Bitcoin, Ethereum makes sending money around the world as easy as sending an email. Just enter your recipient's [ENS name](/nft/#nft-domains) (like bob.eth) or their account address from your wallet and your payment will go directly to them in minutes (usually). To send or receive payments, you will need a [wallet](/wallets/). - - - See payment dapps - - -#### Stream money around the globe... {#stream-money} - -You can also stream money over Ethereum. This lets you pay someone their salary by the second, giving them access to their money whenever they need it. Or rent something by the second like a storage locker or electric scooter. - -And if you don't want to send or stream [ETH](/eth/) because of how much its value can change, there are alternative currencies on Ethereum: stablecoins. - - - -### Access stable currencies {#stablecoins} - -Cryptocurrency volatility is a problem for lots of financial products and general spending. The DeFi community has solved this with stablecoins. Their value stays pegged to an another asset, usually a popular currency like dollars. - -Coins like Dai or USDC have a value that stays within a few cents of a dollar. This makes them perfect for earning or retail. Many people in Latin America have used stablecoins as a way of protecting their savings in a time of great uncertainty with their government-issued currencies. - - - More on stablecoins - - - - -### Borrowing {#lending} - -Borrowing money from decentralized providers comes in two main varieties. - -- Peer-to-peer, meaning a borrower will borrow directly from a specific lender. -- Pool-based where lenders provide funds (liquidity) to a pool that borrowers can borrow from. - - - See borrowing dapps - - -There are many advantages to using a decentralized lender... - -#### Borrowing with privacy {#borrowing-privacy} - -Today, lending and borrowing money all revolves around the individuals involved. Banks need to know whether you're likely to repay a loan before lending. - -Decentralized lending works without either party having to identify themselves. Instead, the borrower must put up collateral that the lender will automatically receive if their loan is not repaid. Some lenders even accept NFTs as collateral. NFTs are a deed to a unique asset, like a painting. [More on NFTs](/nft/) - -This allows you to borrow money without credit checks or handing over private information. - -#### Access to global funds {#access-global-funds} - -When you use a decentralized lender you have access to funds deposited from all over the globe, not just the funds in the custody of your chosen bank or institution. This make loans more accessible and improves the interest rates. - -#### Tax-efficiencies {#tax-efficiencies} - -Borrowing can give you access to the funds you need without needing to sell your ETH (a taxable event). Instead, you can use ETH as collateral for a stablecoin loan. This gives you the cash-flow you need and lets you keep your ETH. Stablecoins are tokens that are much better for when you need cash as they don't fluctuate in value like ETH. [More on stablecoins](#stablecoins) - -#### Flash loans {#flash-loans} - -Flash loans are a more experimental form of decentralized lending that let you borrow without collateral or providing any personal information. - -They're not widely accessible to non-technical folks right now but they hint at what might be possible to everyone in the future. - -It works on the basis that the loan is taken out and paid back within the same transaction. If it can't be paid back, the transaction reverts as if nothing ever happened. - -The funds that are often used are held in liquidity pools (big pools of funds used for borrowing). If they are not being used at a given moment, this creates an opportunity for someone to borrow these funds, conduct business with them, and repay them in-full quite literally at the same time they're borrowed. - -This means a lot of logic must be included in a very bespoke transaction. A simple example might be someone using a flash loan to borrow as much of an asset at one price so they can sell it on a different exchange where the price is higher. - -So in a single transaction, the following happens: - -- You borrow X amount of $asset at $1.00 from exchange A -- You sell X $asset on exchange B for $1.10 -- You pay back loan to exchange A -- You keep the profit minus the transaction fee - -If exchange B's supply dropped suddenly and the user wasn't able to buy enough to cover the original loan, the transaction would simply fail. - -To be able to do the above example in the traditional finance world, you'd need an enormous amount of money. These money-making strategies are only accessible to those with existing wealth. Flash loans are an example of a future where having money is not necessarily a prerequisite for making money. - -[More on flash loans](https://aave.com/flash-loans/) - - - -### Start saving with crypto {#saving} - -#### Lending {#lending} - -You can earn interest on your crypto by lending it and see your funds grow in real time. Right now interest rates are much higher than what you're likely to get at your local bank (if you're lucky enough to be able to access one). Here's an example: - -- You lend your 100 Dai, a [stablecoin](/stablecoins/), to a product like Aave. -- You receive 100 Aave Dai (aDai) which is a token that represents your loaned Dai. -- Your aDai will increase based on the interest rates and you can see your balance growing in your wallet. Dependent on the APR, your wallet balance will read something like 100.1234 after a few days or even hours! -- You can withdraw an amount of regular Dai that's equal to your aDai balance at any time. - - - See lending dapps - - -#### No-loss lotteries {#no-loss-lotteries} - -No-loss lotteries like PoolTogether are a fun and innovative new way to save money. - -- You buy 100 tickets using 100 Dai tokens. -- You receive 100 plDai representing your 100 tickets. -- If one of your tickets is picked as the winner, your plDai balance will increase by the amount of the prize pool. -- If you don't win, your 100 plDai rolls over to next week's draw. -- You can withdraw an amount of regular Dai that's equal to your plDai balance at any time. - -The prize pool is generated by all the interest generated by lending the ticket deposits like in the lending example above. - - - Try PoolTogether - - - - -### Exchange tokens {#swaps} - -There are thousands of tokens on Ethereum. Decentralized exchanges (DEXs) let you trade different tokens whenever you want. You never give up control of your assets. This is like using a currency exchange when visiting a different country. But the DeFi version never closes. The markets are 24/7, 365 days a year and the technology guarantees there will always be someone to accept a trade. - -For example, if you want to use the no-loss lottery PoolTogether (described above), you'll need a token like Dai or USDC. These DEXs allow you to swap your ETH for those tokens and back again when you're finished. - - - See token exchanges - - - - -### Advanced trading {#trading} - -There are more advanced options for traders who like a little more control. Limit orders, perpetuals, margin trading and more are all possible. With Decentralized trading you get access to global liquidity, the market never closes, and you're always in control of your assets. - -When you use a centralized exchange you have to deposit your assets before the trade and trust them to look after them. While your assets are deposited, they're at risk as centralized exchanges are attractive targets for hackers. - - - See trading dapps - - - - -### Grow your portfolio {#investing} - -There are fund management products on Ethereum that will try to grow your portfolio based on a strategy of your choice. This is automatic, open to everyone, and doesn't need a human manager taking a cut of your profits. - -A good example is the [DeFi Pulse Index fund (DPI)](https://defipulse.com/blog/defi-pulse-index/). This is a fund that rebalances automatically to ensure your portfolio always includes [the top DeFi tokens by market capitalization](https://www.coingecko.com/en/defi). You never have to manage any of the details and you can withdraw from the fund whenever you like. - - - See investment dapps - - - - -### Fund your ideas {#crowdfunding} - -Ethereum is an ideal platform for crowdfunding: - -- Potential funders can come from anywhere – Ethereum and its tokens are open to anybody, anywhere in the world. -- It's transparent so fundraisers can prove how much money has been raised. You can even trace how funds are being spent later down the line. -- Fundraisers can set up automatic refunds if, for example, there is a specific deadline and minimum amount that isn't met. - - - See crowdfunding dapps - - -#### Quadratic funding {#quadratic-funding} - -Ethereum is open source software and a lot of the work so far has been funded by the community. This has led to the growth of an interesting new fundraising model: quadratic funding. This has the potential to improve the way we fund all types of public goods in the future. - -Quadratic funding makes sure that the projects that receive the most funding are those with the most unique demand. In other words, projects that stand to improve the lives of the most people. Here's how it works: - -1. There is a matching pool of funds donated. -2. A round of public funding starts. -3. People can signal their demand for a project by donating some money. -4. Once the round is over, the matching pool is distributed to projects. Those with the most unique demand get the highest amount from the matching pool. - -This means Project A with its 100 donations of 1 dollar could end up with more funding than Project B with a single donation of 10,000 dollars (dependent on the size of the matching pool). - -[More on quadratic funding](https://wtfisqf.com) - - - -### Insurance {#insurance} - -Decentralized insurance aims to make insurance cheaper, faster to pay out, and more transparent. With more automation, coverage is more affordable and pay-outs are a lot quicker. The data used to decide on your claim is completely transparent. - -Ethereum products, like any software, can suffer from bugs and exploits. So right now a lot of insurance products in the space focus on protecting their users against loss of funds. However, there are projects starting to build out coverage for everything life can throw at us. A good example of this is Etherisc's Crop cover which aims to [protect smallholder farmers in Kenya against droughts and flooding](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Decentralized insurance can provide cheaper cover for farmers who are often priced out of traditional insurance. - - - See insurance dapps - - - - -### Aggregators and portfolio managers {#aggregators} - -With so much going on, you'll need a way to keep track of all your investments, loans, and trades. There are a host of products that let you coordinate all your DeFi activity from one place. This is the beauty of DeFi's open architecture. Teams can build out interfaces where you can't just see your balances across products, you can use their features too. You might find this useful as you explore more of DeFi. - - - See portfolio dapps - - - - -## How does DeFi work? {#how-defi-works} - -DeFi uses cryptocurrencies and smart contracts to provide services that don't need intermediaries. In today's financial world, financial institutions act as guarantors of transactions. This gives these institutions immense power because your money flows through them. Plus billions of people around the world can't even access a bank account. - -In DeFi, a smart contract replaces the financial institution in the transaction. A smart contract is a type of Ethereum account that can hold funds and can send/refund them based on certain conditions. No one can alter that smart contract when it's live – it will always run as programmed. - -A contract that's designed to hand out an allowance or pocket money could be programmed to send money from Account A to Account B every Friday. And it will only ever do that as long as Account A has the required funds. No one can change the contract and add Account C as a recipient to steal funds. - -Contracts are also public for anyone to inspect and audit. This means bad contracts will often come under community scrutiny pretty quickly. - -This does mean there's currently a need to trust the more technical members of the Ethereum community who can read code. The open-source based community helps keep developers in check, but this need will diminish over time as smart contracts become easier to read and other ways to prove trustworthiness of code are developed. - -## Ethereum and DeFi {#ethereum-and-defi} - -Ethereum is the perfect foundation for DeFi for a number of reasons: - -- No one owns Ethereum or the smart contracts that live on it – this gives everyone an opportunity to use DeFi. This also means no one can change the rules on you. -- DeFi products all speak the same language behind the scenes: Ethereum. This means many of the products work together seamlessly. You can lend tokens on one platform and exchange the interest-bearing token in a different market on an entirely different application. This is like being able to cash loyalty points in at your bank. -- Tokens and cryptocurrency are built into Ethereum, a shared ledger – keeping track of transactions and ownership is kinda Ethereum's thing. -- Ethereum allows complete financial freedom – most products will never take custody of your funds, leaving you in control. - -You can think of DeFi in layers: - -1. The blockchain – Ethereum contains the transaction history and state of accounts. -2. The assets – [ETH](/eth/) and the other tokens (currencies). -3. The protocols – [smart contracts](/glossary/#smart-contract) that provide the functionality, for example, a service that allows for decentralized lending of assets. -4. [The applications](/dapps/) – the products we use to manage and access the protocols. - -## Build DeFi {#build-defi} - -DeFi is an open-source movement. The DeFi protocols and applications are all open for you to inspect, fork, and innovate on. Because of this layered stack (they all share the same base blockchain and assets), protocols can be mixed and matched to unlock unique combo opportunities. - - - More on building dapps - - -## Further reading {#futher-reading} - -### DeFi data {#defi-data} - -- [DeFi Prime](https://defiprime.com/) -- [DeFi Llama](https://defillama.com/) -- [DeFi Rate](https://defirate.com/) - -### DeFi articles {#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 {#videos} - -- [Finematics - decentralized finance education](https://finematics.com/) – _Videos on DeFi_ -- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _DeFi basics: Everything you need to know to get started in this occasionally baffling space._ -- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _What is DeFi?_ - -### Communities {#communities} - -- [DeFi Llama Discord server](https://discord.gg/buPFYXzDDd) -- [DeFi Pulse Discord server](https://discord.gg/Gx4TCTk) diff --git a/src/content/deprecated-software/index.md b/src/content/deprecated-software/index.md deleted file mode 100644 index 2374399b9ed..00000000000 --- a/src/content/deprecated-software/index.md +++ /dev/null @@ -1,482 +0,0 @@ ---- -title: Deprecated software -description: Software which has been deprecated by its maintainers -lang: en -sidebarDepth: 2 ---- - -# Deprecated software {#summary-deprecated-software} - -This is a list of key Ethereum-related projects and resources which have been deprecated or are no longer maintained. It is important to highlight deprecated work so that users can find viable alternatives and to prevent malicious versions from being distributed. - -This list is curated by our community. If there's something missing or incorrect, please edit this page! - -## Proof-of-work {#pow} - -[Proof of work](/developers/docs/consensus-mechanisms/pow) is a consensus engine that was implemented in Ethereum until September 2022. It was deprecated when Ethereum swapped to a [proof-of-stake](/developers/docs/consensus-mechanisms/pos) based consensus mechanism. This was achieved by deprecating the parts of the client software related to proof-of-work mining, including [Ethhash](/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethhash) (the mining algorithm) and all the consensus logic and block gossiping functionality that was originally built in to execution clients. The clients themselves were not deprecated but several of their core components were. The concept of proof-of-work was deprecated as the total effect of removing the related components of the client software. - -## Software {#software} - -This section is for software for the desktop, command line, or server which has been deprecated. The main types are wallets, integrated development environments, languages, and Ethereum clients. Definitely be careful to not install deprecated software unless you are certain it is from the original source, e.g. a repo hosted under https://github.com/ethereum. - -### OpenEthereum {#open-ethereum} - -

- -

- -Deprecated July 2021 - -**Summary** - -OpenEthereum was the second largest Ethereum implementation by node count. OpenEthereum played an important role in being a key piece of infrastructure for some of the largest users in Ethereum like Etherscan and Gnosis Safe. Its tracing capabilities set it apart from other clients, ensuring reliable and fast synchronization for data providers. - -**Archives** - -[Archived GitHub repo](https://github.com/openethereum/openethereum) - -**History** - -OpenEthereum was built for miners, service providers, and exchanges which need fast synchronization and maximum uptime. OpenEthereum provided the core infrastructure essential for speedy and reliable services. - -**Alternatives** - -[Compare all Ethereum execution client options](/developers/docs/nodes-and-clients/#execution-clients). - -### Grid {#grid} - -

- -

- -Deprecated on December 10, 2020 - -**Summary** - -Grid was a JavaScript-based desktop application that allowed you to securely access Ethereum, IPFS, and other decentralized networks. It provided a user-friendly interface to assist a less technical audience in safely interacting with dapps, which increased accessibility for everyone. - -**Archives** - -[Archived GitHub repo](https://github.com/ethereum/grid) - -**History** - -Grid could be seen as a successor to Mist, also a standalone, JavaScript-based desktop app which included a Geth node. Grid removed the wallet aspect, and added a plugin-style approach for running different kinds of nodes. - -**Alternatives** - -[DAppNode](https://dappnode.io/) is a platform for deploying and hosting dapps, P2P clients, and blockchain nodes. - -### Ethereum Studio {#ethereum-studio} - -

- -

- -Deprecated on December 7, 2020 - -**Summary** - -Ethereum Studio was a web-based IDE which allowed users to create and test smart contracts, as well as build front-ends for them. - -**Archives** - -[Archived GitHub repo](https://github.com/SuperblocksHQ/ethereum-studio) - -**History** - -Ethereum Studio was developed to provide users with an IDE that had a built-in Ethereum blockchain and Solidity compiler. In addition to this it provided the ability to live edit code and export full dapps without the need for a terminal. - -**Alternatives** - -[Remix](https://remix.ethereum.org/) is an alternative web IDE for Solidity development. Additionally, the [Developer Portal](/developers/) has tools for web and local development, documentation, and more. - -### Meteor Dapp Wallet {#meteor-dapp-wallet} - -

- -

- -Deprecated on March 27, 2019 - -**Summary** - -Meteor Dapp Wallet was a component of Mist, an Ethereum wallet for managing Ethereum accounts and interacting with smart contracts. For many years the Meteor Dapp Wallet web UI was hosted as a subdomain "wallet.ethereum.org". - -The Mist Multisig Contract (solidity code) was also included, and Meteor Dapp Wallet featured a user interface for configuring and deploying it. - -**Not deprecated: deployed Mist Multisigs** - -The Mist Multisig -- deployed as bytecode to Ethereum Mainnet by thousands of users -- continues to be used to store and manage value without incident. [How to Interact with a Mist Multisig Contract](https://support.mycrypto.com/how-to/sending/how-to-interact-with-a-multisig-contract) provides a good overview for how to use these smart contracts. - -**Archives** - -[Archived GitHub repo](https://github.com/ethereum/meteor-dapp-wallet) - -**History** - -See Mist below. - -**Alternatives** - -See the [Ethereum Wallets](/wallets/) page on ethereum.org. - -### Mist {#mist} - -

- -

- -Deprecated on March 27, 2019 - -**Summary** - -Mist was a specialized browser built with Electron that enabled users to manage Ethereum accounts and interact with dapps hosted on the traditional web. - -**Archives** - -[Archived GitHub repo](https://github.com/ethereum/mist) - -**History** - -Mist was an important early experiment because it explored how to manage Ethereum keys, introduced users to financial tools, like multisigs, and demonstrated how the Web3 would work. It also introduced users to innovations like blockies, cute and memorable 8-bit style graphics representing Ethereum keys. - -**Alternatives** - -[MetaMask](https://metamask.io/) is an in-browser wallet enabling you to manage Ethereum keys and interact with dapps. It is available as an extension for Google Chrome and Firefox, and is included in [Brave Browser](https://brave.com/). - -### Mix {#mix} - -Deprecated on August 11, 2016 - -**Summary** - -Mix was an IDE built in C++ that allowed developers to build and deploy smart contracts to Ethereum. - -**Archives** - -[Archived GitHub repo](https://github.com/ethereum/mix) - -**History** - -Mix was of the earliest Ethereum-related applications. See this [presentation by Gavin Wood at Devcon0](https://www.youtube.com/watch?v=hcP_z_wBlaM). - -**Alternatives** - -[Remix](https://remix.ethereum.org/) is a browser-hosted IDE for Solidity / smart contract development, testing, and deployment. It also has a desktop option. - -### Minimal {#minimal} - -Deprecated in 2020. - -**Summary** - -Minimal was a modular implementation of the Ethereum blockchain written in Go. - -**Archives** - -[Archived GitHub repo](https://github.com/umbracle/minimal) - -**History** - -Minimal was replaced by [polgon-sdk](https://github.com/0xPolygon/polygon-edge) - -### Hyperledger Burrow {#hyperledger-burrow} - -Deprecated in 2022. - -**Summary** - -Hyperledger Burrow was a permissioned Ethereum smart-contract blockchain node. It executed Ethereum EVM and WASM smart contract code on permissioned virtual machines. - -**Archives** - -[Archived GitHub repo](https://github.com/hyperledger/burrow) - -### Mana-Ethereum {#mana-ethereum} - -**Summary** - -Mana-Ethereum was an Ethereum client built using Elixir. - -**Archives** - -[Archived GitHub repo](https://github.com/mana-ethereum/mana) - -**History** - -Mana-Ethereum's GitHub repository has not been explicitly archived, but the last commit was in 2019. - -### Aleth (cpp-ethereum) {#aleth} - -Deprecated on October 6, 2021 - -**Summary** - -Aleth (formerly known as cpp-ethereum) was an Ethereum client written in C++. - -**Archives** - -[Archived GitHub repo](https://github.com/ethereum/aleth) - -**History** - -Aleth was the third most popular client for Ethereum before being deprecated on October 6, 2021. - -**Alternatives** - -[Geth](https://geth.ethereum.org/) is a well-known alternative Ethereum client. - -### Ethereum-H {#ethereum-h} - -**Archives** - -The Ethereum-H archives have been removed from GitHub. - -**History** - -Ethereum-H was an Ethereum client written in Haskell. It was deprecated around 2015. - -**Alternatives** - -[Geth](https://geth.ethereum.org/), [Nethermind](http://nethermind.io/), [Besu](https://besu.hyperledger.org/en/stable/) and [Erigon](https://github.com/ledgerwatch/erigon) are viable alternative Ethereum clients - there is no current Haskell client. - -### ruby-ethereum {#ruby-ethereum} - -**Archives** - -[ruby-ethereum GitHub repo](https://github.com/cryptape/ruby-ethereum) - -**History** - -ruby-ethereum was an Ethereum client written in Ruby. It was deprecated around 2018. - -**Alternatives** - -[Geth](https://geth.ethereum.org/), [Nethermind](http://nethermind.io/), [Besu](https://besu.hyperledger.org/en/stable/) and [Erigon](https://github.com/ledgerwatch/erigon) are viable alternative Ethereum clients. There is no current Ruby client. - -### Parity {#parity} - -

- -

- -Deprecated on June 2, 2020 - -**Summary** - -Parity was an Ethereum client written in Rust. - -**Archives** - -[Archived GitHub repo](https://github.com/openethereum/parity-ethereum) - -**History** - -As one of two major, viable clients in the early years of Ethereum (the other being Geth), Parity was a crucial part of the ecosystem. During the Shanghai Attacks of 2016 Parity enabled Ethereum network to continue operating when clients like Geth were taken down by the attack, proving the importance of client diversity. - -**Alternatives** - -[Erigon](https://github.com/ledgerwatch/erigon) Erigon (previously called Turbo-Geth) is a next generation Ethereum client on the efficiency frontier, written in Go. - -**Note:** _The successor project to Parity Ethereum client was [OpenEthereum](https://github.com/openethereum/openethereum) **which has since been deprecated.**_ - -The ["Spin up your own Ethereum node"](/developers/docs/nodes-and-clients/run-a-node/#getting-the-client) resource on ethereum.org includes a section for downloading, installing, and running an Ethereum client. - -### Trinity {#trinity} - -

- -

- -Deprecated on July 1, 2021 - -**Summary** - -Trinity was a python-based Ethereum client which served as a research and educational tool for the community. A large number of python-based modules related to Trinity continue to be maintained by the same team, including [Py-EVM](https://github.com/ethereum/py-evm). - -**Archives** - -[Archived GitHub repo](https://github.com/ethereum/trinity) - -**History** - -Trinity was the successor project to [pyethereum](https://github.com/ethereum/pyethereum/tree/b704a5c6577863edc539a1ec3d2620a443b950fb), an early python-based Ethereum client. - -**Alternatives** - -The ["Spin up your own Ethereum node"](/developers/docs/nodes-and-clients/run-a-node/#getting-the-client) resource on ethereum.org includes a section for downloading, installing, and running an Ethereum client. - -The [EthereumJS](https://github.com/ethereumjs) project has a similar research and educational use-case as Trinity did. - -## Dapps and Services {#dapps-and-services} - -This section is for services deployed to Ethereum Mainnet and other EVM-based networks. Be aware that the dapps and services here may include DeFi applications which have been hacked or may suffer security vulnerabilities due to lack of maintenance, changes in the protocol, etc. - -### Cover Protocol {#cover-protocol} - -

- -

- -Shut down in Fall 2021 - -**Summary** - -Cover was a DeFi insurance protocol running on Ethereum and other EVM-based networks. - -**Archives** - -[Website](https://wayback.archive-it.org/17679/20211004074635/https://www.coverprotocol.com/) - -[Medium articles](https://wayback.archive-it.org/17679/20211004074633/https://coverprotocol.medium.com/) - -[GitHub repos](https://github.com/CoverProtocol/cover-core-v1) - -[Documentation](https://wayback.archive-it.org/17679/20211004074634/https://docs.coverprotocol.com/) - -### The DAO {#the-dao} - -Hacked and shut down in Summer 2016 - -**Summary** - -The DAO was a smart contract, dapp, and forum for organizing the funding of projects. A vulnerability was exploited and much of the ETH was drained, leading to a community-organized hard fork in order to return ETH to those who had deposited to The DAO. The UX front-end and forum are discontinued. - -**Archives** - -[Internet Archive of "daohub.org" on May 14, 2016](https://web.archive.org/web/20160514105232/https://daohub.org/) - -**History** - -While The DAO failed, the concept endured. The basic technical, social, and governance model innovated for The DAO is widely in use in DeFi, NFT, and project-funding communities. - -["DAO Fork" on ethereum.org](/history/#dao-fork) - -[Wikipedia entry for "The DAO"]() - -**Alternatives** - -["DAOs" on ethereum.org](/dao/) - -[MolochDAO](https://www.molochdao.com/) - -[Gitcoin Grants](https://gitcoin.co/grants/) - -### SparkPool {#sparkpool} - -

- -

- -Shut down in Fall 2021 - -**Summary** - -Headquartered in Hangzhou, the SparkPool service and community was one of the largest Ethereum-centered mining pools in the world. - -**Archives** - -**History** - -Associated with the EthFans community, the service was launched in 2015. SparkPool was disbanded in Fall, 2021 as a result of stricter legal regulations. - -**Alternatives** - -[Ethermine](https://ethermine.org/) - -## Documentation and Information Sources {#documentation-and-information-sources} - -There are numerous sources of documentation, articles, tutorials, and forums which are now removed or live but no longer maintained. We have selected a few which are significant or whose current status as deprecated may lead to confusion or scam attempts. - -### Legacy Wiki and eth.wiki {#eth-wiki} - -**Summary** - -Legacy Wiki and eth.wiki were wikis maintained by the Ethereum Foundation for the wider community. They were mainly oriented toward hosting detailed descriptions of key aspects of the Ethereum platform and summarizations of technical roadmaps. - -**Archives** - -[Archived GitHub repo for eth.wiki](https://github.com/ethereum/eth-wiki) - -[Archived GitHub repo for Legacy Wiki](https://github.com/ethereum/wiki/wiki) - -**History** - -Legacy Wiki was a GitHub wiki and a very early locus of technical content (including the original Ethereum Whitepaper). Over time, Ethereum developers migrated their documentation, specifications, and technical description work to other platforms like [Read the Docs](https://readthedocs.org/) and GitHub-hosted content. - -In 2019 and 2020, eth.wiki became the successor to Legacy Wiki, but an enduring community of contributors did not materialize. - -**Alternatives** - -Community-driven content: [Ethereum.org Website](/) - -Ethereum software projects often host their documentation on [Read the Docs](https://readthedocs.org/) - -GitHub-hosted technical specifications: [EIPs](https://github.com/ethereum/EIPs), [Execution Specs](https://github.com/ethereum/execution-specs), [Consensus Specs](https://github.com/ethereum/consensus-specs) - -### forum.ethereum.org {#forum-ethereum-org} - -**Summary** - -Ethereum Community Forum was a discussion board maintained by the Ethereum Foundation and hosted on Vanilla Forums. It used the subdomain "forum.ethereum.org". - -**Archives** - -Archive URL: [https://wayback.archive-it.org/16516/20210618210825/https://forum.ethereum.org/](https://wayback.archive-it.org/16516/20210618210825/https://forum.ethereum.org/) - -**History** - -This Forum was an early, "official" discussion board for the Ethereum community. Along with [/r/ethereum](https://reddit.com/r/ethereum) and a handful of Skype channels, it was an important point of coordination for developers, designers, and organizers. Over the years the participants of the Forum moved on and it became more of a place for the mining community. - -**Alternatives** - -[/r/ethereum](https://reddit.com/r/ethereum), and a large number of DAO Forums and Discord servers. - -## Gitter Channels {#gitter-channels} - -### AllCoreDevs {#allcorewdevs-gitter} - -**Summary** - -AllCoreDevs Gitter was the main public coordination comms channel for [Ethereum client core developers](https://github.com/ethereum/pm/). - -**Archives** - -[ethereum/AllCoreDevs Gitter Channel](https://gitter.im/ethereum/AllCoreDevs) - -**Alternatives** - -Please use the "allcoredevs" channel on the [EthR&D Discord Server](https://discord.gg/qHv7AjTDuK) - -### EthereumJS {#ethereumjs-gitter} - -**Summary** - -EthereumJS Gitter was the main public coordination comms channel for the [EthereumJS project](https://ethereumjs.github.io/). - -**Archives** - -[ethereum/EthereumJS Gitter Channel](https://gitter.im/ethereum/ethereumjs) - -**Alternatives** - -Please use the [EthereumJS Discord Server](https://discord.gg/TNwARpR) diff --git a/src/content/desci/index.md b/src/content/desci/index.md deleted file mode 100644 index ed0799a3105..00000000000 --- a/src/content/desci/index.md +++ /dev/null @@ -1,140 +0,0 @@ ---- -title: Decentralized science (DeSci) -description: An overview of decentralized science on Ethereum -lang: en -template: use-cases -emoji: ":microscope:" -sidebarDepth: 2 -image: ../../assets/future_transparent.png -alt: "" -summaryPoint1: A global, open alternative to the current scientific system. -summaryPoint2: Technology that enables scientists to raise funding, run experiments, share data, distribute insights, and more. -summaryPoint3: Builds on the open science movement. ---- - -## What is decentralized science (DeSci)? {#what-is-desci} - -Decentralized science (DeSci) is a movement that aims to build public infrastructure for funding, creating, reviewing, crediting, storing, and disseminating scientific knowledge fairly and equitably using the Web3 stack. - -DeSci aims to create an ecosystem where scientists are incentivized to openly share their research and receive credit for their work while allowing anyone to access and contribute to the research easily. DeSci works off the idea that scientific knowledge should be accessible to everyone and that the process of scientific research should be transparent. DeSci is creating a more decentralized and distributed scientific research model, making it more resistant to censorship and control by central authorities. DeSci hopes to create an environment where new and unconventional ideas can flourish by decentralizing access to funding, scientific tools, and communication channels. - -Decentralized science allows for more diverse funding sources (from [DAOs](/dao/), [quadratic donations](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) to crowdfunding and more), more accessible data and methods, and by providing incentives for reproducibility. - -### Juan Benet - The DeSci Movement - - - -## How DeSci improves science {#desci-improves-science} - -An incomplete list of key problems in science and how decentralized science can help to address these issues - -| **Decentralized science** | **Traditional science** | -| ----------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -| Distribution of funds is determined by the public using mechanisms such as quadratic donations or DAOs. | Small, closed, centralized groups control the distribution of funds. | -| You collaborate with peers from all over the globe in dynamic teams. | Funding organizations and home institutions limit your collaborations. | -| Funding decisions are made online and transparently. New funding mechanisms are explored. | Funding decisions are made with a long turnaround time and limited transparency. Few funding mechanisms exist. | -| Sharing laboratory services is made easier and more transparent using Web3 primitives. | Sharing laboratory resources is often slow and opaque. | -| New models for publishing can be developed that use Web3 primitives for trust, transparency and universal access. | You publish through established pathways frequently acknowledged as inefficient, biased and exploitative. | -| You can earn tokens and reputation for peer-reviewing work. | Your peer-review work is unpaid, benefiting for-profit publishers. | -| You own the intellectual property (IP) you generate and distribute it according to transparent terms. | Your home institution owns the IP you generate. Access to the IP is not transparent. | -| Sharing all of the research, including the data from unsuccessful efforts, by having all steps on-chain. | Publication bias means that researchers are more likely to share experiments that had successful results. | - -## Ethereum and DeSci {#ethereum-and-desci} - -A decentralized science system will require robust security, minimal monetary and transaction costs, and a rich ecosystem for application development. Ethereum provides everything needed for building a decentralized science stack. - -## DeSci use cases {#use-cases} - -DeSci is building the scientific toolset to onboard Web2 academia into the digital world. Below is a sampling of use cases that Web3 can offer to the scientific community. - -### Publishing {#publishing} - -Science publishing is famously problematic because it is managed by publishing houses that rely upon free labor from scientists, reviewers, and editors to generate the papers but then charge exorbitant publishing fees. The public, who have usually indirectly paid for the work and the publication costs through taxation, can often not access that same work without paying the publisher again. The total fees for publishing individual science papers are often five figures ($USD), undermining the whole concept of scientific knowledge as a [public good](https://www.econlib.org/library/Enc/PublicGoods.html) while generating enormous profits for a small group of publishers. - -Free and open-access platforms exist in the form of pre-print servers, [such as ArXiv](https://arxiv.org/). However, these platforms lack quality control, [anti-sybil mechanisms](https://csrc.nist.gov/glossary/term/sybil_attack), and do not generally track article-level metrics, meaning they are usually only used to publicize work before submission to a traditional publisher. SciHub also makes published papers free to access, but not legally, and only after the publishers have already taken their payment and wrapped the work in strict copyright legislation. This leaves a critical gap for accessible science papers and data with an embedded legitimacy mechanism and incentive model. The tools for building such a system exist in Web3. - -### Reproducibility and replicability {#reproducibility-and-replicability} - -Reproducibility and replicability are the foundations of quality scientific discovery. - -- Reproducible results can be achieved multiple times in a row by the same team using the same methodology. -- Replicable results can be achieved by a different group using the same experimental setup. - -New Web3-native tools can ensure that reproducibility and replicability are the basis of discovery. We can weave quality science into the technological fabric of academia. Web3 offers the ability to create attestations for each analysis component: the raw data, the computational engine, and the application result. The beauty of consensus systems is that when a trusted network is created for maintaining these components, each network participant can be responsible for reproducing the calculation and validating each result. - -### Funding {#funding} - -The current standard model for funding science is that individuals or groups of scientists make written applications to a funding agency. A small panel of trusted individuals score the applications and then interview candidates before awarding funds to a small portion of applicants. Aside from creating bottlenecks that lead to sometimes years of waiting time between applying for and receiving a grant, this model is known to be highly vulnerable to the biases, self-interests and politics of the review panel. - -Studies have shown that grant review panels do a poor job of selecting high-quality proposals as the same proposals given to different panels have wildly different outcomes. As funding has become more scarce, it has concentrated into a smaller pool of more senior researchers with more intellectually conservative projects. The effect has created a hyper-competitive funding landscape, entrenching perverse incentives and stifling innovation. - -Web3 has the potential to disrupt this broken funding model by experimenting with different incentive models developed by DAOs and Web3 broadly. [Retroactive public goods funding](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), [quadratic funding](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), [DAO governance](https://www.antler.co/blog/daos-and-web3-governance) and [tokenized incentive structures](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) are some of the Web3 tools that could revolutionize science funding. - -### IP ownership and development {#ip-ownership} - -Intellectual property (IP) is a big problem in traditional science: from being stuck in universities or unused in biotechs, to being notoriously hard to value. However, ownership of digital assets (such as scientific data or articles) is something Web3 does exceptionally well using [non-fungible tokens (NFTs)](/nft/). - -In the same way that NFTs can pass revenue for future transactions back to the original creator, you can establish transparent value attribution chains to reward researchers, governing bodies (like DAOs), or even the subjects whose data is collected. - -[IP-NFTs](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) can also function as a key to a decentralized data repository of the research experiments being undertaken, and plug into NFT and [DeFi](/defi/) financialization (from fractionalization to lending pools and value appraisal). It also allows natively on-chain entities such as DAOs like [VitaDAO](https://www.vitadao.com/) to conduct research directly on-chain. -The advent of non-transferable ["soulbound" tokens](https://vitalik.ca/general/2022/01/26/soulbound.html) may also play an important role in DeSci by allowing individuals to prove their experience and credentials linked to their Ethereum address. - -### Data storage, access and architecture {#data-storage} - -Scientific data can be made vastly more accessible using Web3 patterns, and distributed storage enables research to survive cataclysmic events. - -The starting point must be a system accessible by any decentralized identity holding the proper verifiable credentials. This allows sensitive data to be securely replicated by trusted parties, enabling redundancy and censorship resistance, reproduction of results, and even the ability for multiple parties to collaborate and add new data to the dataset. Confidential computing methods like [compute-to-data](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol) provide alternative access mechanisms to raw data replication, creating Trusted Research Environments for the most sensitive data. Trusted Research Environments have been [cited by the NHS](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) as a future-facing solution to data privacy and collaboration by creating an ecosystem where researchers can securely work with data on-site using standardized environments for sharing code and practices. - -Flexible Web3 data solutions support the scenarios above and provide the foundation for truly Open Science, where researchers can create public goods without access permissions or fees. Web3 public data solutions such as IPFS, Arweave and Filecoin are optimized for decentralization. dClimate, for example, provides universal access to climate and weather data, including from weather stations and predictive climate models. - -## Get involved {#get-involved} - -Explore projects and join the DeSci community. - -- [DeSci.Global: global events and meetup calendar](https://desci.global) -- [Blockchain for Science Telegram](https://t.me/BlockchainForScience) -- [Molecule: Fund and get funded for your research projects](https://discover.molecule.to/) -- [VitaDAO: receive funding through sponsored research agreements for longevity research](https://www.vitadao.com/) -- [ResearchHub: post a scientific result and engage in a conversation with peers](https://www.researchhub.com/) -- [LabDAO: fold a protein in-silico](https://alphafodl.vercel.app/) -- [dClimate API: query climate data collected by a decentralized community](https://api.dclimate.net/) -- [DeSci Foundation: DeSci publishing tool builder](https://descifoundation.org/) -- [DeSci.World: one-stop shop for users to view, engage with decentralized science](https://desci.world) -- [Fleming Protocol: open-source data economy that fuels collaborative biomedical discovery](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [OceanDAO: DAO governed funding for data-related science](https://oceanprotocol.com/dao) -- [Opscientia: open decentralized science workflows](https://opsci.io/research/) -- [LabDAO: fold a protein in-silico](https://alphafodl.vercel.app/) -- [Bio.xyz: get funded for your biotech DAO or desci project](https://www.bio.xyz/) -- [ResearchHub: post a scientific result and engage in a conversation with peers](https://www.researchhub.com/) -- [VitaDAO: receive funding through sponsored research agreements for longevity research](https://www.vitadao.com/) -- [Fleming Protocol: open-source data economy that fuels collaborative biomedical discovery](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [Active Inference Lab](https://www.activeinference.org/) -- [CureDAO: Community-Owned Precision Health Platform](https://docs.curedao.org/) -- [IdeaMarkets: enabling decentralized scientific credibility](https://ideamarket.io/) -- [DeSci Labs](https://www.desci.com/) - -We welcome suggestions for new projects to list - please look at our [listing policy](/contributing/adding-desci-projects/) to get started! - -## Further reading {#further-reading} - -- [DeSci Wiki by Jocelynn Pearl and Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) -- [A guide to decentralized biotech by Jocelynn Pearl for a16z future](https://future.a16z.com/a-guide-to-decentralized-biotech/) -- [The case for DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) -- [Guide to DeSci](https://future.com/what-is-decentralized-science-aka-desci/) -- [Decentralized science resources](https://www.vincentweisser.com/decentralized-science) -- [Molecule’s Biopharma IP-NFTs - A Technical Description](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) -- [Building Trustless Systems of Science by Jon Starr](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) -- [The Emergence of Biotech DAOs](https://molecule.to/blog/the-emergence-of-biotech-daos) -- [Paul Kohlhaas - DeSci: The Future of Decentralized Science (podcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) -- [An Active Inference Ontology for Decentralized Science: from Situated Sensemaking to the Epistemic Commons](https://zenodo.org/record/6320575) -- [DeSci: The Future of Research by Samuel Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) -- [Science Funding (Epilogue: DeSci and new crypto primitives) by Nadia](https://nadia.xyz/science-funding) -- [Decentralisation is Disrupting Drug Development](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) - -### Videos {#videos} - -- [What's Decentralized Science?](https://www.youtube.com/watch?v=-DeMklVWNdA) -- [Conversation between Vitalik Buterin and the scientist Aubrey de Grey about the intersection of longevity research and crypto](https://www.youtube.com/watch?v=x9TSJK1widA) -- [Scientific Publishing Is Broken. Can Web3 Fix It?](https://www.youtube.com/watch?v=WkvzYgCvWj8) -- [Juan Benet - DeSci, Independent Labs, & Large Scale Data Science](https://www.youtube.com/watch?v=zkXM9H90g_E) -- [Sebastian Brunemeier - How DeSci Can Transform Biomedical Research & Venture Capital](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/developers/docs/consensus-mechanisms/pos/block-proposal/index.md b/src/content/developers/docs/consensus-mechanisms/pos/block-proposal/index.md deleted file mode 100644 index 6b502b30304..00000000000 --- a/src/content/developers/docs/consensus-mechanisms/pos/block-proposal/index.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: Block proposal -description: Explanation of how blocks are proposed in proof-of-stake Ethereum. -lang: en ---- - -Blocks are the fundamental units of the blockchain. Blocks are discrete units of information that get passed between nodes, agreed upon and added to each node's database. This page explains how they are produced. - -## Prerequisites {#prerequisites} - -Block proposal is part of the proof-of-stake protocol. To help understand this page, we recommend you read about [proof-of-stake](/developers/docs/consensus-mechanisms/pos/) and [block architecture](/developers/docs/blocks/). - -## Who produces blocks? {#who-produces-blocks} - -Validator accounts propose blocks. Validator accounts are managed by node operators who run validator software as part of their execution and consensus clients and have deposited at least 32 ETH into the deposit contract. However, each validator is only occasionally responsible for proposing a block. Ethereum measures time in slots and epochs. Each slot is twelve seconds, and 32 slots (6.4 minutes) make up an epoch. Every slot is an opportunity to add a new block on Ethereum. - -### Random selection {#random-selection} - -A single validator is pseudo-randomly chosen to propose a block in each slot. There is no such thing as true randomness in a blockchain because if each node generated genuinely random numbers, they couldn't come to consensus. Instead, the aim is to make the validator selection process unpredictable. The randomness is achieved on Ethereum using an algorithm called RANDAO that mixes a hash from the block proposer with a seed that gets updated every block. This value is used to select a specific validator from the total validator set. The validator selection is fixed two epochs in advance as a way to protect against certain kinds of seed manipulation. - -Although validators add to RANDAO in each slot, the global RANDAO value is only updated once per epoch. To compute the index of the next block proposer, the RANDAO value is mixed with the slot number to give a unique value in each slot. The probability of an individual validator being selected is not simply `1/N` (where `N` = total active validators). Instead, it is weighted by the effective ETH balance of each validator. The maximum effective balance is 32 ETH (this means that `balance < 32 ETH` leads to a lower weight than `balance == 32 ETH`, but `balance > 32 ETH` does not lead to higher weighting than `balance == 32 ETH`). - -Only one block proposer is selected in each slot. Under normal conditions, a single block producer creates and releases a single block in their dedicated slot. Creating two blocks for the same slot is a slashable offence, often known as "equivocation". - -## How is the block created? {#how-is-a-block-created} - -The block proposer is expected to broadcast a signed beacon block that builds on top of the most recent head of the chain according to the view of their own locally-run fork choice algorithm. The fork choice algorithm applies any queued attestations left over from the previous slot, then finds the block with the greatest accumulated weight of attestations in its history. That block is the parent of the new block created by the proposer. - -The block proposer creates a block by collecting data from its own local database and view of the chain. The contents of the block are shown in the snippet below: - -```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 -``` - -The `randao_reveal` field takes a verifiable random value that the block proposer creates by signing the current epoch number. `eth1_data` is a vote for the block proposer's view of the deposit contract, including the root of the deposit Merkle trie and the total number of deposits that enable new deposits to be verified. `graffiti` is an optional field that can be used to add a message to the block. `proposer_slashings` and `attester_slashings` are fields that contain proof that certain validators have committed slashable offenses according to the proposer's view of the chain. `deposits` is a list of new validator deposits that the block proposer is aware of, and `voluntary_exits` is a list of validators that wish to exit that the block proposer has heard about on the consensus layer gossip network. The `sync_aggregate` is a vector showing which validators were previously assigned to a sync committee (a subset of validators that serve light client data) and participated in signing data. - -The `execution_payload` enables information about transactions to be passed between the execution and consensus clients. The `execution_payload` is a block of execution data that gets nested inside a beacon block. The fields inside the `execution_payload` reflect the block structure outlined in the Ethereum yellow paper, except that there are no ommers and `prev_randao` exists in place of `difficulty`. The execution client has access to a local pool of transactions that it has heard about on its own gossip network. These transactions are executed locally to generate an updated state trie known as a post-state. The transactions are included in the `execution_payload` as a list called `transactions` and the post-state is provided in the `state-root` field. - -All of these data are collected in a beacon block, signed, and broadcast to the block proposer's peers, who propagate it on to their peers, etc. - -Read more about the [anatomy of blocks](/developers/docs/blocks). - -## What happens to the block? {#what-happens-to-blocks} - -The block is added to the block proposer's local database and broadcast to peers over the consensus layer gossip network. When a validator receives the block, it verifies the data inside it, including checking that the block has the correct parent, corresponds to the correct slot, that the proposer index is the expected one, that the RANDAO reveal is valid and that the proposer is not slashed. The `execution_payload` is unbundled, and the validator's execution client re-executes the transactions in the list to check the proposed state change. Assuming the block passes all these checks, each validator adds the block to its own canonical chain. The process then starts again in the next slot. - -## Block rewards {#block-rewards} - -The block proposer receives payment for their work. There is a `base_reward` calculated as a function of the number of active validators and their effective balances. The block proposer then receives a fraction of `base_reward` for every valid attestation included in the block; the more validators attest to the block, the greater the block proposer's reward. There is also a reward for reporting validators that should be slashed, equal to `1/512 * effective balance` for each slashed validator. - -[More on rewards and penalties](/developers/docs/consensus-mechanisms/pos/rewards-and-penalties) - -## Further reading {#further-reading} - -- [Introduction to blocks](/developers/docs/blocks/) -- [Introduction to proof-of-stake](/developers/docs/consensus-mechanisms/pos/) -- [Ethereum consensus specs](https://github.com/ethereum/consensus-specs) -- [Introduction to Gasper](/developers/docs/consensus-mechanisms/pos/) -- [Upgrading Ethereum](https://eth2book.info/) diff --git a/src/content/developers/docs/design-and-ux/index.md b/src/content/developers/docs/design-and-ux/index.md deleted file mode 100644 index ab53a2a73ce..00000000000 --- a/src/content/developers/docs/design-and-ux/index.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -title: Design and UX in web3 -description: Introduction to UX design and research in web3 space and Ethereum -lang: en ---- - -Are you new to designing with Ethereum? This is the right place for you. The Ethereum community has written resources to introduce you to web3 design and research basics. You'll learn about core concepts that may differ from other app designs you're familiar with. - -Need a more basic understanding of web3 first? Check out [**Learn hub**](/learn/). - -## Start with user research {#start-with-user-research} - -Effective design goes beyond creating visually appealing user interfaces. It involves gaining a deep understanding of the user's needs, objectives, and driving factors. Therefore, we highly recommend that all designers adopt a design process, such as the [**double diamond process**](), to ensure that their work is deliberate and intentional. - -- [Web3 needs more UX Researchers and Designers](https://akasha.org/blog/2022/10/11/akasha-conversation-09-web3-ux-researchers-and-designers) - An overview of current design maturity -- [A simple guide to UX Research in web3](https://uxplanet.org/a-complete-guide-to-ux-research-for-web-3-0-products-d6bead20ebb1) - Simple guide how to do research -- [How to Approach UX Decisions in Web3](https://archive.devcon.org/archive/watch/6/data-empathy-how-to-approach-ux-decisions-in-web3/) - A brief overview of quantitative and qualitative research and the differences between the two (video, 6 min) -- [Being a ux researcher in web3](https://medium.com/@georgia.rakusen/what-its-like-being-a-user-researcher-in-web3-6a4bcc096849) - A personal view on what it is like being a UX researcher in web3 - -## Research studies in web3 {#research-in-web3} - -This is a curated list of user research done in web3 that may help with design and product decisions or work as an inspiration to conduct own study. - -| Area of focus | Name | -| :------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Crypto onboarding | [CRADL: Crypto Research and Design Lab](https://project-cradl.notion.site/Crypto-Research-and-Design-Lab-50a7127f34ed4c88ad95c7cedf7fbe36) | -| Crypto onboarding | [CRADL: UX in Cryptocurrency](https://docs.google.com/presentation/d/1s2OPSH5sMJzxRYaJSSRTe8W2iIoZx0PseIV-WeZWD1s/edit?usp=sharing) | -| Crypto onboarding | [CRADL: Onboarding to Cryptocurrency](https://docs.google.com/presentation/d/1R9nFuzA-R6SxaGCKhoMbE4Vxe0JxQSTiHXind3LVq_w/edit?usp=sharing) | -| Crypto onboarding | [Bitcoin UX report](https://github.com/patestevao/BitcoinUX-report/blob/master/report.md) | -| Crypto onboarding | [ConSensys: The State of Web3 perception around the world 2023](https://consensys.io/insight-report/web3-and-crypto-global-survey-2023) | -| Crypto onboarding | [NEAR: Accelerating the journey towards adoption](https://drive.google.com/file/d/1VuaQP4QSaQxR5ddQKTMGI0b0rWdP7uGn/view) | -| Staking | [Staking: Key trends, takeaways, and predictions - Eth Staker](https://lookerstudio.google.com/u/0/reporting/cafcee00-e1af-4148-bae8-442a88ac75fa/page/p_ja2srdhh2c?s=hmbTWDh9hJo) | -| Staking | [Multi App Staking]() | -| DAO | [2022 DAO Research Update: What do DAO Builders Need?](https://blog.aragon.org/2022-dao-research-update/) | -| DeFi | [The state of Defi 2023](https://stateofdefi.org/) | -| DeFi | [Coverage pools](https://github.com/threshold-network/UX-User-Research/tree/main/Keep%20Coverage%20Pool) | -| DeFi | [ConSensys: DeFi User Research Report 2022](https://cdn2.hubspot.net/hubfs/4795067/ConsenSys%20Codefi-Defi%20User%20ResearchReport.pdf) | -| Metaverse | [Metaverse: User Research Report](https://www.politico.com/f/?id=00000187-7685-d820-a7e7-7e85d1420000) | -| Metaverse | [Going on Safari: Researching Users in the Metaverse](https://archive.devcon.org/archive/watch/6/going-on-safari-researching-users-in-the-metaverse/?tab=YouTube) (video, 27 min) | -| Ethereum.org UX stats | [Usability and user satisfaction survey dashboard - Ethereum.org](https://lookerstudio.google.com/reporting/0a189a7c-a890-40db-a5c6-009db52c81c9) | - -## Design for web3 {#design-for-web3} - -- [Web3 Design Principles](https://medium.com/@lyricalpolymath/web3-design-principles-f21db2f240c1) - A framework of UX rules for blockchain based dapps -- [Blockchain Design Principles](https://medium.com/design-ibm/blockchain-design-principles-599c5c067b6e) - Lessons learned by the blockchain design team at IBM -- [Dimensions of web3 UX](https://uxdesign.cc/the-levels-of-web3-user-experience-4f2ad113e37d) - An analysis of different layers of web3 UX and its challenges -- [Web3 Design Patterns](https://www.web3designpatterns.io/)- A curated library of design patterns from real Web3 products -- [W3design.io](https://w3design.io/) - A curated library of UI flows of different projects in the ecosystem -- [Neueux.com](https://neueux.com/apps) - UI library of user flows with diverse filtering options -- [Web3's Usability Crisis: What You NEED to Know!](https://www.youtube.com/watch?v=oBSXT_6YDzg) - A panel discussion on pitfalls of developer focused project building (video, 34 min) - -## Web3 Design Case Studies {#design-case-studies} - -- [How to write better web3 error messages](https://medium.com/@JonCrabb/how-to-design-better-web3-error-messages-bd96e12fa582) -- [Defi design tips](https://medium.com/@JonCrabb/defi-design-tips-vol-12-8600f4374714) -- [Deep Work Studio](https://deepwork.studio/case-studies/) -- [Crypto UX Handbook](https://www.cryptouxhandbook.com/) -- [Selling an NFT on OpenSea](https://builtformars.com/case-studies/opensea) -- [Wallet UX teardown how wallets need to change](https://www.youtube.com/watch?v=oTpuxYj8JWI&ab_channel=ETHDenver) (video, 20 min) - -## Design Bounties {#bounties} - -- [Dework](https://app.dework.xyz/bounties) -- [Gitcoin](https://bounties.gitcoin.co/explorer) -- [Buildbox hackathons](https://gitcoin.co/hackathons) -- [ETHGlobal](https://ethglobal.com/) - -## Design DAOs and communities {#design-daos-and-communities} - -Get involved in professional community-driven organizations or join design groups to discuss design and research related topics and trends with other members. - -- [Vectordao.com](https://vectordao.com/) -- [Deepwork.studio](https://www.deepwork.studio/) -- [Designer-dao.xyz](https://www.designer-dao.xyz/) -- [We3.co](https://we3.co/) -- [Openux.xyz](https://openux.xyz/about) -- [web3trends.org](https://web3trends.org/) -- [Open Source Web3Design](https://www.web3designers.org/) - -## Design Systems {#design-systems} - -- [Optimism Design](https://www.figma.com/@oplabs) (Figma) -- [Ethereum.org Design system](https://www.figma.com/@ethdotorg) (Figma) -- [Finity, a design system by Polygon](https://www.figma.com/community/file/1073921725197233598/finity-design-system) (Figma) -- [Kleros Design System](https://www.figma.com/community/file/999852250110186964/kleros-design-system) (Figma) -- [ENS Design system](https://thorin.ens.domains/) -- [Mirror Design System](https://degen-xyz.vercel.app/) - -**Articles and projects listed on this page are not official endorsements**, and are provided for informational purposes only. -We add links to this page based on criteria in our [listing policy](/contributing/design/adding-design-resources). If you'd like us to add a project/article, edit this page on [GitHub](https://github.com/ethereum/ethereum-org-website/blob/dev/src/content/developers/docs/design-and-ux/index.md). diff --git a/src/content/developers/docs/mev/index.md b/src/content/developers/docs/mev/index.md deleted file mode 100644 index cc9499e48c6..00000000000 --- a/src/content/developers/docs/mev/index.md +++ /dev/null @@ -1,221 +0,0 @@ ---- -title: Maximal extractable value (MEV) -description: An introduction to maximal extractable value (MEV) -lang: en ---- - -Maximal extractable value (MEV) refers to the maximum value that can be extracted from block production in excess of the standard block reward and gas fees by including, excluding, and changing the order of transactions in a block. - -### Miner extractable value {#miner-extractable-value} - -Maximal extractable value was first applied in the context of [proof-of-work](/developers/docs/consensus-mechanisms/pow/), and initially referred to as "miner extractable value". This is because in proof-of-work, miners control transaction inclusion, exclusion, and ordering. However, since the transition to proof-of-stake via [The Merge](/roadmap/merge) validators have been responsible for these roles, and mining is no longer part of the Ethereum protocol. The value extraction methods still exist, though, so the term "Maximal extractable value" is now used instead. - -## Prerequisites {#prerequisites} - -Make sure you're familiar with [transactions](/developers/docs/transactions/), [blocks](/developers/docs/blocks/), [proof-of-stake](/developers/docs/consensus-mechanisms/pos) and [gas](/developers/docs/gas/). Familiarity with [dapps](/dapps/) and [DeFi](/defi/) is helpful as well. - -## MEV extraction {#mev-extraction} - -In theory MEV accrues entirely to validators because they are the only party that can guarantee the execution of a profitable MEV opportunity. In practice, however, a large portion of MEV is extracted by independent network participants referred to as "searchers." Searchers run complex algorithms on blockchain data to detect profitable MEV opportunities and have bots to automatically submit those profitable transactions to the network. - -Validators do get a portion of the full MEV amount anyway because searchers are willing to pay high gas fees (which go to the validator) in exchange for higher likelihood of inclusion of their profitable transactions in a block. Assuming searchers are economically rational, the gas fee that a searcher is willing to pay will be an amount up to 100% of the searcher's MEV (because if the gas fee was higher, the searcher would lose money). - -With that, for some highly competitive MEV opportunities, such as [DEX arbitrage](#mev-examples-dex-arbitrage), searchers may have to pay 90% or even more of their total MEV revenue in gas fees to the validator because so many people want to run the same profitable arbitrage trade. This is because the only way to guarantee that their arbitrage transaction runs is if they submit the transaction with the highest gas price. - -### Gas golfing {#mev-extraction-gas-golfing} - -This dynamic has made being good at "gas golfing" — programming transactions so that they use the least amount of gas — a competitive advantage, because it allows searchers to set a higher gas price while keeping their total gas fees constant (since gas fees = gas price \* gas used). - -A few well-known gas golf techniques include: using addresses that start with a long string of zeroes (e.g. [0x0000000000C521824EaFf97Eac7B73B084ef9306](https://etherscan.io/address/0x0000000000c521824eaff97eac7b73b084ef9306)) since they take less space (and hence gas) to store; and leaving small [ERC-20](/developers/docs/standards/tokens/erc-20/) token balances in contracts, since it costs more gas to initialize a storage slot (the case if the balance is 0) than to update a storage slot. Finding more techniques to reduce gas usage is an active area of research among searchers. - -### Generalized frontrunners {#mev-extraction-generalized-frontrunners} - -Rather than programming complex algorithms to detect profitable MEV opportunities, some searchers run generalized frontrunners. Generalized frontrunners are bots that watch the mempool to detect profitable transactions. The frontrunner will copy the potentially profitable transaction's code, replace addresses with the frontrunner's address, and run the transaction locally to double-check that the modified transaction results in a profit to the frontrunner's address. If the transaction is indeed profitable, the frontrunner will submit the modified transaction with the replaced address and a higher gas price, "frontrunning" the original transaction and getting the original searcher's MEV. - -### Flashbots {#mev-extraction-flashbots} - -Flashbots is an independent project which extends execution clients with a service that allows searchers to submit MEV transactions to validators without revealing them to the public mempool. This prevents transactions from being frontrun by generalized frontrunners. - -## MEV examples {#mev-examples} - -MEV emerges on the blockchain in a few ways. - -### DEX arbitrage {#mev-examples-dex-arbitrage} - -[Decentralized exchange](/glossary/#dex) (DEX) arbitrage is the simplest and most well-known MEV opportunity. As a result, it is also the most competitive. - -It works like this: if two DEXes are offering a token at two different prices, someone can buy the token on the lower-priced DEX and sell it on the higher-priced DEX in a single, atomic transaction. Thanks to the mechanics of the blockchain, this is true, riskless arbitrage. - -[Here's an example](https://etherscan.io/tx/0x5e1657ef0e9be9bc72efefe59a2528d0d730d478cfc9e6cdd09af9f997bb3ef4) of a profitable arbitrage transaction where a searcher turned 1,000 ETH into 1,045 ETH by taking advantage of different pricing of the ETH/DAI pair on Uniswap vs. Sushiswap. - -### Liquidations {#mev-examples-liquidations} - -Lending protocol liquidations present another well-known MEV opportunity. - -Lending protocols like Maker and Aave require users to deposit some collateral (e.g. ETH). This deposited collateral is then used to then lend out to other users. - -Users can then borrow assets and tokens from others depending on what they need (e.g. you might borrow MKR if you want to vote in a MakerDAO governance proposal) up to a certain percentage of their deposited collateral. For example, if the borrowing amount is a maximum of 30%, a user who deposits 100 DAI into the protocol can borrow up to 30 DAI worth of another asset. The protocol determines the exact borrowing power percentage. - -As the value of a borrower's collateral fluctuates, so too does their borrowing power. If, due to market fluctuations, the value of borrowed assets exceeds say, 30% of the value of their collateral (again, the exact percentage is determined by the protocol), the protocol typically allows anyone to liquidate the collateral, instantly paying off the lenders (this is similar to how [margin calls](https://www.investopedia.com/terms/m/margincall.asp) work in traditional finance). If liquidated, the borrower usually has to pay a hefty liquidation fee, some of which goes to the liquidator — which is where the MEV opportunity comes in. - -Searchers compete to parse blockchain data as fast as possible to determine which borrowers can be liquidated and be the first to submit a liquidation transaction and collect the liquidation fee for themselves. - -### Sandwich trading {#mev-examples-sandwich-trading} - -Sandwich trading is another common method of MEV extraction. - -To sandwich, a searcher will watch the mempool for large DEX trades. For instance, suppose someone wants to buy 10,000 UNI with DAI on Uniswap. A trade of this magnitude will have a meaningful effect on the UNI/DAI pair, potentially significantly raising the price of UNI relative to DAI. - -A searcher can calculate the approximate price effect of this large trade on the UNI/DAI pair and execute an optimal buy order immediately _before_ the large trade, buying UNI cheaply, then execute a sell order immediately _after_ the large trade, selling it for the higher price caused by the large order. - -Sandwiching, however, is riskier as it isn't atomic (unlike DEX arbitrage, as described above) and is prone to a [salmonella attack](https://github.com/Defi-Cartel/salmonella). - -### NFT MEV {#mev-examples-nfts} - -MEV in the NFT space is an emergent phenomenon, and isn't necessarily profitable. - -However, since NFT transactions happen on the same blockchain shared by all other Ethereum transactions, searchers can use similar techniques as those used in traditional MEV opportunities in the NFT market too. - -For example, if there's a popular NFT drop and a searcher wants a certain NFT or set of NFTs, they can program a transaction such that they are the first in line to buy the NFT, or they can buy the entire set of NFTs in a single transaction. Or if an NFT is [mistakenly listed at a low price](https://www.theblockcrypto.com/post/113546/mistake-sees-69000-cryptopunk-sold-for-less-than-a-cent), a searcher can frontrun other purchasers and snap it up for cheap. - -One prominent example of NFT MEV occurred when a searcher spent $7 million to [buy](https://etherscan.io/address/0x650dCdEB6ecF05aE3CAF30A70966E2F395d5E9E5) every single Cryptopunk at the price floor. A blockchain researcher [explained on Twitter](https://twitter.com/IvanBogatyy/status/1422232184493121538) how the buyer worked with an MEV provider to keep their purchase secret. - -### The long tail {#mev-examples-long-tail} - -DEX arbitrage, liquidations, and sandwich trading are all very well-known MEV opportunities and are unlikely to be profitable for new searchers. However, there is a long tail of lesser known MEV opportunities (NFT MEV is arguably one such opportunity). - -Searchers who are just getting started may be able to find more success by searching for MEV in this longer tail. Flashbot's [MEV job board](https://github.com/flashbots/mev-job-board) lists some emerging opportunities. - -## Effects of MEV {#effects-of-mev} - -MEV is not all bad — there are both positive and negative consequences to MEV on Ethereum. - -### The good {#effects-of-mev-the-good} - -Many DeFi projects rely on economically rational actors to ensure the usefulness and stability of their protocols. For instance, DEX arbitrage ensures that users get the best, most correct prices for their tokens, and lending protocols rely on speedy liquidations when borrowers fall below collateralization ratios to ensure lenders get paid back. - -Without rational searchers seeking and fixing economic inefficiencies and taking advantage of protocols' economic incentives, DeFi protocols and dapps in general may not be as robust as they are today. - -### The bad {#effects-of-mev-the-bad} - -At the application layer, some forms of MEV, like sandwich trading, result in an unequivocally worse experience for users. Users who are sandwiched face increased slippage and worse execution on their trades. - -At the network layer, generalized frontrunners and the gas-price auctions they often engage in (when two or more frontrunners compete for their transaction to be included in the next block by progressively raising their own transactions' gas price) result in network congestion and high gas prices for everyone else trying to run regular transactions. - -Beyond what's happening _within_ blocks, MEV can have deleterious effects _between_ blocks. If the MEV available in a block significantly exceeds the standard block reward, validators may be incentivized to reorg blocks and capture the MEV for themselves, causing blockchain re-organization and consensus instability. - -This possibility of blockchain re-organization has been [previously explored on the Bitcoin blockchain](https://dl.acm.org/doi/10.1145/2976749.2978408). As Bitcoin's block reward halves and transaction fees make up a greater and greater portion of the block reward, situations arise where it becomes economically rational for miners to give up the next block's reward and instead remine past blocks with higher fees. With the growth of MEV, the same sort of situation could occur in Ethereum, threatening the integrity of the blockchain. - -## State of MEV {#state-of-mev} - -MEV extraction ballooned in early 2021, resulting in extremely high gas prices in the first few months of the year. The emergence of Flashbots's MEV relay has reduced the effectiveness of generalized frontrunners and has taken gas price auctions off-chain, lowering gas prices for ordinary users. - -While many searchers are still making good money from MEV, as opportunities become more well-known and more and more searchers compete for the same opportunity, validators will capture more and more total MEV revenue (because the same sort of gas auctions as originally described above also occur in Flashbots, albeit privately, and validators will capture the resulting gas revenue). MEV is also not unique to Ethereum, and as opportunities become more competitive on Ethereum, searchers are moving to alternate blockchains like Binance Smart Chain, where similar MEV opportunities as those on Ethereum exist with less competition. - -On the other hand, the transition from proof-of-work to proof-of-stake and the ongoing effort to scale Ethereum using rollups all change the MEV landscape in ways that are still somewhat unclear. It is not yet well known how having guaranteed block-proposers known slightly in advance changes the dynamics of MEV extraction compared to the probabilistic model in proof-of-work or how this will be disrupted when [single secret leader election](https://ethresear.ch/t/secret-non-single-leader-election/11789) and [distributed validator technology](/staking/dvt/) get implemented. Similarly, it remains to be seen what MEV opportunities exist when most user activity is ported away from Ethereum and onto its layer 2 rollups and shards. - -## MEV in Ethereum Proof-of-Stake (PoS) {#mev-in-ethereum-proof-of-stake} - -As explained, MEV has negative implications for overall user experience and consensus-layer security. But Ethereum’s transition to a proof-of-stake consensus (dubbed “The Merge”) potentially introduces new MEV-related risks: - -### Validator centralization {#validator-centralization} - -In post-Merge Ethereum, validators (having made security deposits of 32 ETH) come to consensus on the validity of blocks added to the Beacon Chain. Since 32 ETH may be out of the reach of many, [joining a staking pool](/staking/pools/) may be a more feasible option. Nevertheless, a healthy distribution of [solo stakers](/staking/solo/) is ideal, as it mitigates the centralization of validators and improves Ethereum’s security. - -However, MEV extraction is believed to be capable of accelerating validator centralization. This is partly because, as validators [earn less for proposing blocks](/roadmap/merge/issuance/#how-the-merge-impacts-ETH-supply) than miners currently do, MEV extraction may greatly [influence validator earnings](https://github.com/flashbots/eth2-research/blob/main/notebooks/mev-in-eth2/eth2-mev-calc.ipynb) after The Merge. - -Larger staking pools will likely have more resources to invest in necessary optimizations to capture MEV opportunities. The more MEV these pools extract, the more resources they have to improve their MEV-extraction capabilities (and increase overall revenue), essentially creating [economies of scale](https://www.investopedia.com/terms/e/economiesofscale.asp#). - -With fewer resources at their disposal, solo stakers may be unable to profit from MEV opportunities. This may increase the pressure on independent validators to join powerful staking pools to boost their earnings, reducing decentralization in Ethereum. - -### Permissioned mempools {#permissioned-mempools} - -In response to sandwiching and frontrunning attacks, traders may start conducting off-chain deals with validators for transaction privacy. Instead of sending a potential MEV transaction to the public mempool, the trader sends it directly to the validator, who includes it in a block and splits profits with the trader. - -“Dark pools” are a larger version of this arrangement and function as permissioned, access-only mempools open to users willing to pay certain fees. This trend would diminish Ethereum’s permissionlessness and trustlessness and potentially transform the blockchain into a “pay-to-play” mechanism that favors the highest bidder. - -Permissioned mempools would also accelerate the centralization risks described in the previous section. Large pools running multiple validators will likely benefit from offering transaction privacy to traders and users, increasing their MEV revenues. - -Combating these MEV-related problems in post-Merge Ethereum is a core area of research. To date, two solutions proposed to reduce the negative impact of MEV on Ethereum’s decentralization and security after The Merge are **Proposer-Builder Separation (PBS)** and the **Builder API**. - -### Proposer-Builder Separation {#proposer-builder-separation} - -In both proof-of-work and proof-of-stake, a node that builds a block proposes it for addition to the chain to other nodes participating in consensus. A new block becomes part of the canonical chain after another miner builds on top of it (in PoW) or it receives attestations from the majority of validators (in Pos). - -The combination of block producer and block proposer roles is what introduces most of the MEV-related problems described previously. For example, consensus nodes are incentivized to trigger chain reorganizations in time-bandit attacks to maximize MEV earnings. - -[Proposer-builder separation](https://ethresear.ch/t/proposer-block-builder-separation-friendly-fee-market-designs/9725) (PBS) is designed to mitigate the impact of MEV, especially at the consensus layer. PBS’ major feature is the separation of block producer and block proposer rules. Validators are still responsible for proposing and voting on blocks, but a new class of specialized entities, called **block builders**, are tasked with ordering transactions and building blocks. - -Under PBS, a block builder creates a transaction bundle and places a bid for its inclusion in a Beacon Chain block (as the “execution payload”). The validator selected to propose the next block then checks the different bids and chooses the bundle with the highest fee. PBS essentially creates an auction market, where builders negotiate with validators selling blockspace. - -Current PBS designs use a [commit-reveal scheme](https://gitcoin.co/blog/commit-reveal-scheme-on-ethereum/) in which builders only publish a cryptographic commitment to a block’s contents (block header) along with their bids. After accepting the winning bid, the proposer creates a signed block proposal that includes the block header. The block builder is expected to publish the full block body after seeing the signed block proposal, and it must also receive enough [attestations](/glossary/#attestation) from validators before it is finalized. - -#### How does proposer-builder separation mitigate MEV’s impact? {#how-does-pbs-curb-mev-impact} - -In-protocol proposer-builder separation reduces MEV’s effect on consensus by removing MEV extraction from the purview of validators. Instead, block builders running specialized hardware will capture MEV opportunities going forward. - -This doesn’t exclude validators totally from MEV-related income, though, as builders must bid high to get their blocks accepted by validators. Nevertheless, with validators no longer directly focused on optimizing MEV income, the threat of time-bandit attacks reduces. - -Proposer-builder separation also reduces MEV’s centralization risks. For instance, the use of a commit-reveal scheme removes the need for builders to trust validators not to steal the MEV opportunity or expose it to other builders. This lowers the barrier for solo stakers to benefit from MEV, otherwise, builders would trend towards favoring large pools with off-chain reputation and conducting off-chain deals with them. - -Similarly, validators don’t have to trust builders not to withhold block bodies or publish invalid blocks because payment is unconditional. The validator’s fee still processes even if the proposed block is unavailable or declared invalid by other validators. In the latter case, the block is simply discarded, forcing the block builder to lose all transaction fees and MEV revenue. - -### Builder API {#builder-api} - -While proposer-builder separation promises to reduce the effects of MEV extraction, implementing it requires changes to the consensus protocol. Specifically, the [fork choice](/developers/docs/consensus-mechanisms/pos/#fork-choice) rule on the Beacon Chain would need to be updated. The [Builder API](https://github.com/ethereum/builder-specs) is a temporary solution aimed at providing a working implementation of proposer-builder separation, albeit with higher trust assumptions. - -The Builder API is a modified version of the [Engine API](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) used by consensus layer clients to request execution payloads from execution layer clients. As outlined in the [honest validator specification](https://github.com/ethereum/consensus-specs/blob/dev/specs/bellatrix/validator.md), validators selected for block proposing duties request a transaction bundle from a connected execution client, which they include in the proposed Beacon Chain block. - -The Builder API also acts as a middleware between validators and execution-layer clients; but it is different because it allows validators on the Beacon Chain to source blocks from external entities (instead of building a block locally using an execution client). - -Below is an overview of how the Builder API works: - -1. The Builder API connects the validator to a network of block builders running execution layer clients. Like in PBS, builders are specialized parties that invest in resource-intensive block-building and use different strategies to maximize revenue earned from MEV + priority tips. - -2. A validator (running a consensus layer client) requests execution payloads along with bids from the network of builders. Bids from builders will contain the execution payload header—a cryptographic commitment to the payload's contents—and a fee to be paid to the validator. - -3. The validator reviews the incoming bids and picks the execution payload with the highest fee. Using the Builder API, the validator creates a "blinded" Beacon block proposal that includes only their signature and the execution payload header and sends it to the builder. - -4. The builder running the Builder API is expected to respond with the full execution payload upon seeing the blinded block proposal. This allows the validator to create a "signed" Beacon block, which they propagate throughout the network. - -5. A validator using the Builder API is still expected to build a block locally in case the block builder fails to respond promptly, so they don't miss out on block proposal rewards. However, validator cannot create another block using either the now-revealed transactions or another set, as it would amount to _equivocation_ (signing two blocks within the same slot), which is a slashable offense. - -An example implementation of the Builder API is [MEV Boost](https://github.com/flashbots/mev-boost), an improvement on the [Flashbots auction mechanism](https://docs.flashbots.net/Flashbots-auction/overview/) designed to curb the negative externalities of MEV on Ethereum. Flashbots auction allows miners in proof-of-work to outsource the work of building profitable blocks to specialized parties called **searchers**. - -Searchers look for lucrative MEV opportunities and send transaction bundles to miners along with a [sealed-price bid](https://en.wikipedia.org/wiki/First-price_sealed-bid_auction) for inclusion in the block. The miner running mev-geth, a forked version of the go-ethereum (Geth) client only has to choose the bundle with the most profit and mine it as part of the new block. To protect miners from spam and invalid transactions, transaction bundles pass through **relayers** for validation before getting to miners. - -MEV Boost retains the same workings of the original Flashbots auction, albeit with new features designed for Ethereum’s switch to proof-of-stake. Searchers still find profitable MEV transactions for inclusion in blocks, but a new class of specialized parties, called **builders**, are responsible for aggregating transactions and bundles into blocks. A builder accepts sealed-price bids from searchers and runs optimizations to find the most profitable ordering. - -The relayer is still responsible for validating transaction bundles before passing them to the proposer. However, MEV Boost introduces **escrows** responsible for providing [data availability](/developers/docs/data-availability/) by storing block bodies sent by builders and block headers sent by validators. Here, a validator connected to a relay asks for available execution payloads and uses MEV Boost’s ordering algorithm to select the payload header with the highest bid + MEV tips. - -#### How does the Builder API mitigate MEV’s impact? {#how-does-builder-api-curb-mev-impact} - -The core benefit of the Builder API is its potential to democratize access to MEV opportunities. Using commit-reveal schemes eliminates trust assumptions and reduces entry barriers for validators seeking to benefit from MEV. This should reduce the pressure on solo stakers to integrate with large staking pools in order to boost MEV profits. - -Widespread implementation of the Builder API will encourage greater competition among block builders, which increases censorship resistance. As validators review bids from multiple builders, a builder intent on censoring one or more user transactions must outbid all other non-censoring builders to be successful. This dramatically increases the cost of censoring users and discourages the practice. - -Some projects, such as MEV Boost, use the Builder API as part of an overall structure designed to provide transaction privacy to certain parties, such as traders trying to avoid frontrunning/sandwiching attacks. This is achieved by providing a private communication channel between users and block builders. Unlike the permissioned mempools described earlier, this approach is beneficial for the following reasons: - -1. The existence of multiple builders on the market makes censoring impractical, which benefits users. In contrast, the existence of centralized and trust-based dark pools would concentrate power in the hands of a few block builders and increase the possibility of censoring. - -2. The Builder API software is open-source, which allows anyone to offer block-builder services. This means users aren’t forced into using any particular block builder and improves Ethereum’s neutrality and permissionlessness. Moreover, MEV-seeking traders won’t inadvertently contribute to centralization by using private transaction channels. - -## Related resources {#related-resources} - -- [Flashbots docs](https://docs.flashbots.net/) -- [Flashbots GitHub](https://github.com/flashbots/pm) -- [MEV-Explore](https://explore.flashbots.net/) - _Dashboard and live transaction explorer for MEV transactions_ -- [mevboost.org](https://www.mevboost.org/) - _Tracker with real-time stats for MEV-Boost relays and block builders_ - -## Further reading {#further-reading} - -- [What Is Miner-Extractable Value (MEV)?](https://blog.chain.link/what-is-miner-extractable-value-mev/) -- [MEV and Me](https://www.paradigm.xyz/2021/02/mev-and-me) -- [Ethereum is a Dark Forest](https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest/) -- [Escaping the Dark Forest](https://samczsun.com/escaping-the-dark-forest/) -- [Flashbots: Frontrunning the MEV Crisis](https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752) -- [@bertcmiller's MEV Threads](https://twitter.com/bertcmiller/status/1402665992422047747) -- [MEV-Boost: Merge ready Flashbots Architecture](https://ethresear.ch/t/mev-boost-merge-ready-flashbots-architecture/11177) -- [What Is MEV Boost](https://www.alchemy.com/overviews/mev-boost) -- [Why run mev-boost?](https://writings.flashbots.net/writings/why-run-mevboost/) -- [The Hitchhikers Guide To Ethereum](https://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum) diff --git a/src/content/developers/docs/networking-layer/index.md b/src/content/developers/docs/networking-layer/index.md deleted file mode 100644 index 08bc79aa0fa..00000000000 --- a/src/content/developers/docs/networking-layer/index.md +++ /dev/null @@ -1,163 +0,0 @@ ---- -title: Networking layer -description: An introduction to Ethereum's networking layer. -lang: en -sidebarDepth: 2 ---- - -Ethereum is a peer-to-peer network with thousands of nodes that must be able to communicate with one another using standardized protocols. The "networking layer" is the stack of protocols that allow those nodes to find each other and exchange information. This includes "gossiping" information (one-to-many communication) over the network as well as swapping requests and responses between specific nodes (one-to-one communication). Each node must adhere to specific networking rules to ensure they are sending and receiving the correct information. - -There are two parts to the client software (execution clients and consensus clients), each with its own distinct networking stack. As well as communicating with other Ethereum nodes, the execution and consensus clients have to communicate with each other. This page gives an introductory explanation of the protocols that enable this communication. - -Execution clients gossip transactions over the execution-layer peer-to-peer network. This requires encrypted communication between authenticated peers. When a validator is selected to propose a block, transactions from the node's local transaction pool will be passed to consensus clients via a local RPC connection, which will be packaged into Beacon blocks. Consensus clients will then gossip Beacon blocks across their p2p network. This requires two separate p2p networks: one connecting execution clients for transaction gossip and one connecting consensus clients for block gossip. - -## Prerequisites {#prerequisites} - -Some knowledge of Ethereum [nodes and clients](/developers/docs/nodes-and-clients/) will be helpful for understanding this page. - -## The Execution Layer {#execution-layer} - -The execution layer's networking protocols is divided into two stacks: - -- the discovery stack: built on top of UDP and allows a new node to find peers to connect to - -- the DevP2P stack: sits on top of TCP and enables nodes to exchange information - -Both stacks work in parallel. The discovery stack feeds new network participants into the network, and the DevP2P stack enables their interactions. - -### Discovery {#discovery} - -Discovery is the process of finding other nodes in network. This is bootstrapped using a small set of bootnodes (nodes whose addresses are [hardcoded](https://github.com/ethereum/go-ethereum/blob/master/params/bootnodes.go) into the client so they can be found immediately and connect the client to peers). These bootnodes only exist to introduce a new node to a set of peers - this is their sole purpose, they do not participate in normal client tasks like syncing the chain, and they are only used the very first time a client is spun up. - -The protocol used for the node-bootnode interactions is a modified form of [Kademlia](https://medium.com/coinmonks/a-brief-overview-of-kademlia-and-its-use-in-various-decentralized-platforms-da08a7f72b8f) which uses a [distributed hash table](https://en.wikipedia.org/wiki/Distributed_hash_table) to share lists of nodes. Each node has a version of this table containing the information required to connect to its closest peers. This 'closeness' is not geographical - distance is defined by the similarity of the node's ID. Each node's table is regularly refreshed as a security feature. For example, in the [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5), discovery protocol nodes are also able to send 'ads' that display the subprotocols that the client supports, allowing peers to negotiate about the protocols they can both use to communicate over. - -Discovery starts with a game of PING-PONG. A successful PING-PONG "bonds" the new node to a bootnode. The initial message that alerts a bootnode to the existence of a new node entering the network is a `PING`. This `PING` includes hashed information about the new node, the bootnode and an expiry time-stamp. The bootnode receives the `PING` and returns a `PONG` containing the `PING` hash. If the `PING` and `PONG` hashes match then the connection between the new node and bootnode is verified and they are said to have "bonded". - -Once bonded, the new node can send a `FIND-NEIGHBOURS` request to the bootnode. The data returned by the bootnode includes a list of peers that the new node can connect to. If the nodes are not bonded, the `FIND-NEIGHBOURS` request will fail, so the new node will not be able to enter the network. - -Once the new node receives a list of neighbours from the bootnode, it begins a PING-PONG exchange with each of them. Successful PING-PONGs bond the new node with its neighbours, enabling message exchange. - -``` -start client --> connect to bootnode --> bond to bootnode --> find neighbours --> bond to neighbours -``` - -Execution clients are currently using the [Discv4](https://github.com/ethereum/devp2p/blob/master/discv4.md) discovery protocol and there is an active effort to migrate to the [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5) protocol. - -#### ENR: Ethereum Node Records {#enr} - -The [Ethereum Node Record (ENR)](/developers/docs/networking-layer/network-addresses/) is an object that contains three basic elements: a signature (hash of record contents made according to some agreed identity scheme), a sequence number that tracks changes to the record, and an arbitrary list of key:value pairs. This is a future-proof format that allows easier exchange of identifying information between new peers and is the preferred [network address](/developers/docs/networking-layer/network-addresses) format for Ethereum nodes. - -#### Why is discovery built on UDP? {#why-udp} - -UDP does not support any error checking, resending of failed packets, or dynamically opening and closing connections - instead it just fires a continuous stream of information at a target, regardless of whether it is successfully received. This minimal functionality also translates into minimal overhead, making this kind of connection very fast. For discovery, where a node simply wants to make its presence known in order to then establish a formal connection with a peer, UDP is sufficient. However, for the rest of the networking stack, UDP is not fit for purpose. The informational exchange between nodes is quite complex and therefore needs a more fully featured protocol that can support resending, error checking etc. The additional overhead associated with TCP is worth the additional functionality. Therefore, the majority of the P2P stack operates over TCP. - -### DevP2P {#devp2p} - -DevP2P is itself a whole stack of protocols that Ethereum implements to establish and maintain the peer-to-peer network. After new nodes enter the network, their interactions are governed by protocols in the [DevP2P](https://github.com/ethereum/devp2p) stack. These all sit on top of TCP and include the RLPx transport protocol, wire protocol and several sub-protocols. [RLPx](https://github.com/ethereum/devp2p/blob/master/rlpx.md) is the protocol governing initiating, authenticating and maintaining sessions between nodes. RLPx encodes messages using RLP (Recursive Length Prefix) which is a very space-efficient method of encoding data into a minimal structure for sending between nodes. - -A RLPx session between two nodes begins with an initial cryptographic handshake. This involves the node sending an auth message which is then verified by the peer. On successful verification, the peer generates an auth-acknowledgement message to return to the initiator node. This is a key-exchange process that enables the nodes to communicate privately and securely. A successful cryptographic handshake then triggers both nodes to send a "hello" message to one another "on the wire". The wire protocol is initiated by a successful exchange of hello messages. - -The hello messages contain: - -- protocol version -- client ID -- port -- node ID -- list of supported sub-protocols - -This is the information required for a successful interaction because it defines what capabilities are shared between both nodes and configures the communication. There is a process of sub-protocol negotiation where the lists of sub-protocols supported by each node are compared and those that are common to both nodes can be used in the session. - -Along with the hello messages, the wire protocol can also send a "disconnect" message that gives warning to a peer that the connection will be closed. The wire protocol also includes PING and PONG messages that are sent periodically to keep a session open. The RLPx and wire protocol exchanges therefore establish the foundations of communication between the nodes, providing the scaffolding for useful information to be exchanged according to a specific sub-protocol. - -### Sub-protocols {#sub-protocols} - -#### Wire protocol {#wire-protocol} - -Once peers are connected, and an RLPx session has been started, the wire protocol defines how peers communicate. Initially, the wire protocol defined three main tasks: chain synchronization, block propagation and transaction exchange. However, once Ethereum switched to proof-of-stake, block propagation and chain synchronization became part of the consensus layer. Transaction exchange is still in the remit of the execution clients. Transaction exchange refers to exchanging pending transactions between nodes so that miners can select some of them for inclusion in the next block. Detailed information about these tasks is available [here](https://github.com/ethereum/devp2p/blob/master/caps/eth.md). Clients that support these sub-protocols expose them via the [JSON-RPC](/developers/docs/apis/json-rpc/). - -#### les (light ethereum subprotocol) {#les} - -This is a minimal protocol for syncing light clients. Traditionally this protocol has rarely been used because full nodes are required to serve data to light clients without being incentivized. The default behavior of execution clients is not to serve light client data over les. More information is available in the les [spec](https://github.com/ethereum/devp2p/blob/master/caps/les.md). - -#### Snap {#snap} - -The [snap protocol](https://github.com/ethereum/devp2p/blob/master/caps/snap.md#ethereum-snapshot-protocol-snap) is an optional extension that allows peers to exchange snapshots of recent states, allowing peers to verify account and storage data without having to download intermediate Merkle trie nodes. - -#### Wit (witness protocol) {#wit} - -The [witness protocol](https://github.com/ethereum/devp2p/blob/master/caps/wit.md#ethereum-witness-protocol-wit) is an optional extension that enables exchange of state witnesses between peers, helping to sync clients to the tip of the chain. - -#### Whisper {#whisper} - -Whisper was a protocol that aimed to deliver secure messaging between peers without writing any information to the blockchain. It was part of the DevP2P wire protocol but is now deprecated. Other [related projects](https://wakunetwork.com/) exist with similar aims. - -## The consensus layer {#consensus-layer} - -The consensus clients participate in a separate peer-to-peer network with a different specification. Consensus clients need to participate in block gossip so that they can receive new blocks from peers and broadcast them when it is their turn to be block proposer. Similar to the execution layer, this first requires a discovery protocol so that a node can find peers and establish secure sessions for exchanging blocks, attestations etc. - -### Discovery {#consensus-discovery} - -Similar to the execution clients, consensus clients use [discv5](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-discovery-domain-discv5) over UDP for finding peers. The consensus layer implementation of discv5 differs from that of the execution clients only in that it includes an adaptor connecting discv5 into a [libP2P](https://libp2p.io/) stack, deprecating DevP2P. The execution layer's RLPx sessions are deprecated in favour of libP2P's noise secure channel handshake. - -### ENRs {#consensus-enr} - -The ENR for consensus nodes includes the node's public key, IP address, UDP and TCP ports and two consensus-specific fields: the attestation subnet bitfield and `eth2` key. The former makes it easier for nodes to find peers participating in specific attestation gossip sub-networks. The `eth2` key contains information about which Ethereum fork version the node is using, ensuring peers are connecting to the right Ethereum. - -### libP2P {#libp2p} - -The libP2P stack supports all communications after discovery. Clients can dial and listen on IPv4 and/or IPv6 as defined in their ENR. The protocols on the libP2P layer can be subdivided into the gossip and req/resp domains. - -### Gossip {#gossip} - -The gossip domain includes all information that has to spread rapidly throughout the network. This includes beacon blocks, proofs, attestations, exits and slashings. This is transmitted using libP2P gossipsub v1 and relies on various metadata being stored locally at each node, including maximum size of gossip payloads to receive and transmit. Detailed information about the gossip domain is available [here](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-gossip-domain-gossipsub). - -### Request-response {#request-response} - -The request-response domain contains protocols for clients requesting specific information from their peers. Examples include requesting specific Beacon blocks matching certain root hashes or within a range of slots. The responses are always returned as snappy-compressed SSZ encoded bytes. - -## Why does the consensus client prefer SSZ to RLP? {#ssz-vs-rlp} - -SSZ stands for simple serialization. It uses fixed offsets that make it easy to decode individual parts of an encoded message without having to decode the entire structure, which is very useful for the consensus client as it can efficiently grab specific pieces of information from encoded messages. It is also designed specifically to integrate with Merkle protocols, with related efficiency gains for Merkleization. Since all hashes in the consensus layer are Merkle roots, this adds up to a significant improvement. SSZ also guarantees unique representations of values. - -## Connecting the execution and consensus clients {#connecting-clients} - -Both consensus and execution clients run in parallel. They need to be connected so that the consensus client can provide instructions to the execution client, and the execution client can pass bundles of transactions to the consensus client to include in Beacon blocks. The communication between the two clients can be achieved using a local RPC connection. An API known as the ['Engine-API'](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) defines the instructions sent between the two clients. Since both clients sit behind a single network identity, they share an ENR (Ethereum node record) which contains a separate key for each client (eth1 key and eth2 key). - -A summary of the control flow is shown below, with the relevant networking stack in brackets. - -##### When consensus client is not block producer: - -- Consensus client receives a block via the block gossip protocol (consensus p2p) -- Consensus client pre-validates the block, i.e. ensures it arrived from a valid sender with correct metadata -- The transactions in the block are sent to the execution layer as an execution payload (local RPC connection) -- The execution layer executes the transactions and validates the state in the block header (i.e. checks hashes match) -- Execution layer passes validation data back to consensus layer, block now considered to be validated (local RPC connection) -- Consensus layer adds block to head of its own blockchain and attests to it, broadcasting the attestation over the network (consensus p2p) - -##### When consensus client is block producer: - -- Consensus client receives notice that it is the next block producer (consensus p2p) -- Consensus layer calls `create block` method in execution client (local RPC) -- Execution layer accesses the transaction mempool which has been populated by the transaction gossip protocol (execution p2p) -- Execution client bundles transactions into a block, executes the transactions and generates a block hash -- Consensus client grabs the transactions and block hash from the execution client and adds them to the beacon block (local RPC) -- Consensus client broadcasts the block over the block gossip protocol (consensus p2p) -- Other clients receive the proposed block via the block gossip protocol and validate as described above (consensus p2p) - -Once the block has been attested by sufficient validators it is added to the head of the chain, justified and eventually finalized. - -![](cons_client_net_layer.png) -![](exe_client_net_layer.png) - -Network layer schematic for consensus and execution clients, from [ethresear.ch](https://ethresear.ch/t/eth1-eth2-client-relationship/7248) - -## Further Reading {#further-reading} - -[DevP2P](https://github.com/ethereum/devp2p) -[LibP2p](https://github.com/libp2p/specs) -[Consensus layer network specs](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#enr-structure) -[kademlia to discv5](https://vac.dev/kademlia-to-discv5) -[kademlia paper](https://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf) -[intro to Ethereum p2p](https://p2p.paris/en/talks/intro-ethereum-networking/) -[eth1/eth2 relationship](http://ethresear.ch/t/eth1-eth2-client-relationship/7248) -[merge and eth2 client details video](https://www.youtube.com/watch?v=zNIrIninMgg) diff --git a/src/content/developers/docs/nodes-and-clients/client-diversity/index.md b/src/content/developers/docs/nodes-and-clients/client-diversity/index.md deleted file mode 100644 index 39b9639bdf1..00000000000 --- a/src/content/developers/docs/nodes-and-clients/client-diversity/index.md +++ /dev/null @@ -1,111 +0,0 @@ ---- -title: Client diversity -description: A high level explanation of the importance of Ethereum client diversity. -lang: en -sidebarDepth: 2 ---- - -The behavior of an Ethereum node is controlled by the client software it runs. There are several production-level Ethereum clients, each one developed and maintained in different languages by separate teams. The clients are built to a common spec that ensures the clients seamlessly communicate with each other and have the same functionality and provide an equivalent user experience. However, at the moment the distribution of clients across nodes is not equal enough to realize this network fortification to its full potential. Ideally, users divide roughly equally across the various clients to bring as much client diversity as possible to the network. - -## Prerequisites {#prerequisites} - -If you don't already understand what nodes and clients are, check out [nodes and clients](/developers/docs/nodes-and-clients/). [Execution](/glossary/#execution-layer) and [consensus](/glossary/#consensus-layer) layers are defined in the glossary. - -## Why are there multiple clients? {#why-multiple-clients} - -Multiple, independently developed and maintained clients exist because client diversity makes the network more resilient to attacks and bugs. Multiple clients is a strength unique to Ethereum - other blockchains rely on the infallibility of a single client. However, it is not enough simply to have multiple, clients available, they have to be adopted by the community and the total active nodes distributed relatively evenly across them. - -## Why is client diversity important? {#client-diversity-importance} - -Having many independently developed and maintained clients is vital for the health of a decentralized network. Let's explore the reasons why. - -### Bugs {#bugs} - -A bug in an individual client is less of a risk to the network when representing a minority of Ethereum nodes. With a roughly even distribution of nodes across many clients, the likelihood of most clients suffering from a shared issue is small, and as a result, the network is more robust. - -### Resilience to attacks {#resilience} - -Client diversity also offers resilience to attacks. For example, an attack that [tricks a particular client](https://twitter.com/vdWijden/status/1437712249926393858) onto a particular branch of the chain is unlikely to be successful because other clients are unlikely to be exploitable in the same way and the canonical chain remains uncorrupted. Low client diversity increases the risk associated with a hack on the dominant client. Client diversity has already proven to be an important defense against malicious attacks on the network, for example the Shanghai denial-of-service attack in 2016 was possible because attackers were able to trick the dominant client (Geth) into executing a slow disk i/o operation tens of thousands of times per block. Because alternative clients were also online which did not share the vulnerability, Ethereum was able to resist the attack and continue to operate while the vulnerability in Geth was fixed. - -### Proof-of-stake finality {#finality} - -A bug in a consensus client with over 33% of the Ethereum nodes could prevent the consensus layer from finalizing, meaning users could not trust that transactions would not be reverted or changed at some point. This would be very problematic for many of the apps built on top of Ethereum, particularly DeFi. - - Worse still, a critical bug in a client with a two-thirds majority could cause the chain to incorrectly split and finalize, leading to a large set of validators getting stuck on an invalid chain. If they want to rejoin the correct chain, these validators face slashing or a slow and expensive voluntary withdrawal and reactivation. The magnitude of a slashing scales with the number of culpable nodes with a two-thirds majority slashed maximally (32 ETH). - -Although these are unlikely scenarios, the Ethereum eco-system can mitigate their risk by evening out the distribution of clients across the active nodes. Ideally, no consensus client would ever reach a 33% share of the total nodes. - -### Shared responsibility {#responsibility} - -There is also a human cost to having majority clients. It puts excess strain and responsibility on a small development team. The lesser the client diversity, the greater the burden of responsibility for the developers maintaining the majority client. Spreading this responsibility across multiple teams is good for both the health of Ethereum's network of nodes and its network of people. - -## Current client diversity {#current-client-diversity} - -![Pie chart showing client diversity](./client-diversity.png) -_Diagram data from [ethernodes.org](https://ethernodes.org) and [clientdiversity.org](https://clientdiversity.org/)_ - -The two pie charts above show snapshots of the current client diversity for the execution and consensus layers (at time of writing in January 2022). The execution layer is overwhelmingly dominated by [Geth](https://geth.ethereum.org/), with [Open Ethereum](https://openethereum.github.io/) a distant second, [Erigon](https://github.com/ledgerwatch/erigon) third and [Nethermind](https://nethermind.io/) fourth, with other clients comprising less than 1 % of the network. The most commonly used client on the consensus layer - [Prysm](https://prysmaticlabs.com/#projects) - is not as dominant as Geth but still represents over 60% of the network. [Lighthouse](https://lighthouse.sigmaprime.io/) and [Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) make up ~20% and ~14% respectively, and other clients are rarely used. - -The execution layer data were obtained from [Ethernodes](https://ethernodes.org) on 23/01/2022. Data for consensus clients was obtained from [Michael Sproul](https://github.com/sigp/blockprint). Consensus client data is more difficult to obtain because the consensus layer clients do not always have unambiguous traces that can be used to identify them. The data was generated using a classification algorithm that sometimes confuses some of the minority clients (see [here](https://twitter.com/sproulM_/status/1440512518242197516) for more details). In the diagram above, these ambiguous classifications are treated with an either/or label (e.g. Nimbus/Teku). Nevertheless, it is clear that the majority of the network is running Prysm. The data is a snapshot over a fixed set of blocks (in this case Beacon blocks in slots 2048001 to 2164916) and Prysm's dominance has sometimes been higher, exceeding 68%. Despite only being snapshots, the values in the diagram provide a good general sense of the current state of client diversity. - -Up to date client diversity data for the consensus layer is now available at [clientdiversity.org](https://clientdiversity.org/). - -## Execution layer {#execution-layer} - -Until now, the conversation around client diversity has focused mainly on the consensus layer. However, the execution client [Geth](https://geth.ethereum.org) currently accounts for around 85% of all nodes. This percentage is problematic for the same reasons as for consensus clients. For example, a bug in Geth affecting transaction handling or constructing execution payloads could lead to consensus clients finalizing problematic or bugged transactions. Therefore, Ethereum would be healthier with a more even distribution of execution clients, ideally with no client representing more than 33% of the network. - -## Use a minority client {#use-minority-client} - -Addressing client diversity requires more than individual users to choose minority clients - it requires mining/validator pools and institutions like the major dapps and exchanges to switch clients too. However, all users can do their part in redressing the current imbalance and normalizing the use of all the available Ethereum software. After The Merge, all node operators will be required to run an execution client and a consensus client. Choosing combinations of the clients suggested below will help increase client diversity. - -### Execution clients {#execution-clients} - -[Besu](https://www.hyperledger.org/use/besu) - -[Nethermind](https://downloads.nethermind.io/) - -[Erigon](https://github.com/ledgerwatch/erigon) - -[Go-Ethereum](https://geth.ethereum.org/) - -### Consensus clients {#consensus-clients} - -[Nimbus](https://nimbus.team/) - -[Lighthouse](https://github.com/sigp/lighthouse) - -[Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) - -[Lodestar](https://github.com/ChainSafe/lodestar) - -[Prysm](https://docs.prylabs.network/docs/getting-started) - -Technical users can help accelerate this process by writing more tutorials and documentation for minority clients and encouraging their node-operating peers to migrate away from the dominant clients. Guides for switching to a minority consensus client are available on [clientdiversity.org](https://clientdiversity.org/). - -## Client diversity dashboards {#client-diversity-dashboards} - -Several dashboards give real-time client diversity statistics for the execution and consensus layer. - -**Consensus layer:** - -- [Rated.network](https://www.rated.network/) -- [clientdiversity.org](https://clientdiversity.org/) - **Execution layer:** - -- [execution-diversity.info](https://execution-diversity.info/) -- [Ethernodes](https://ethernodes.org/) - -## Further reading {#further-reading} - -- [Client diversity on Ethereum's consensus layer](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) -- [Ethereum Merge: Run the majority client at your own peril!](https://dankradfeist.de/ethereum/2022/03/24/run-the-majority-client-at-your-own-peril.html) – _Dankrad Fiest, March 24 2022_ -- [Importance of client diversity](https://our.status.im/the-importance-of-client-diversity/) -- [List of Ethereum node services](https://ethereumnodes.com/) -- ["Five Whys" of the client diversity problem](https://notes.ethereum.org/@afhGjrKfTKmksTOtqhB9RQ/BJGj7uh08) -- [Ethereum Diversity and How to Solve For It (YouTube)](https://www.youtube.com/watch?v=1hZgCaiqwfU) -- [clientdiversity.org](https://clientdiversity.org/) - -## Related topics {#related-topics} - -- [Run an Ethereum node](/run-a-node/) -- [Nodes and clients](/developers/docs/nodes-and-clients/) diff --git a/src/content/developers/docs/smart-contracts/anatomy/index.md b/src/content/developers/docs/smart-contracts/anatomy/index.md deleted file mode 100644 index 9723d3e2306..00000000000 --- a/src/content/developers/docs/smart-contracts/anatomy/index.md +++ /dev/null @@ -1,658 +0,0 @@ ---- -title: Anatomy of smart contracts -description: An in-depth look into the anatomy of a smart contact – the functions, data, and variables. -lang: en ---- - -A smart contract is a program that runs at an address on Ethereum. They're made up of data and functions that can execute upon receiving a transaction. Here's an overview of what makes up a smart contract. - -### Prerequisites {#prerequisites} - -Make sure you've read about [smart contracts](/developers/docs/smart-contracts/) first. This document assumes you're already familiar with programming languages such as JavaScript or Python. - -## Data {#data} - -Any contract data must be assigned to a location: either to `storage` or `memory`. It's costly to modify storage in a smart contract so you need to consider where your data should live. - -### Storage {#storage} - -Persistent data is referred to as storage and is represented by state variables. These values get stored permanently on the blockchain. You need to declare the type so that the contract can keep track of how much storage on the blockchain it needs when it compiles. - -```solidity -// Solidity example -contract SimpleStorage { - uint storedData; // State variable - // ... -} -``` - -```python -# Vyper example -storedData: int128 -``` - -If you've already programmed object-oriented languages, you'll likely be familiar with most types. However `address` should be new to you if you're new to Ethereum development. - -An `address` type can hold an Ethereum address which equates to 20 bytes or 160 bits. It returns in hexadecimal notation with a leading 0x. - -Other types include: - -- boolean -- integer -- fixed point numbers -- fixed-size byte arrays -- dynamically-sized byte arrays -- Rational and integer literals -- String literals -- Hexadecimal literals -- Enums - -For more explanation, take a look at the docs: - -- [See Vyper types](https://vyper.readthedocs.io/en/v0.1.0-beta.6/types.html#value-types) -- [See Solidity types](https://solidity.readthedocs.io/en/latest/types.html#value-types) - -### Memory {#memory} - -Values that are only stored for the lifetime of a contract function's execution are called memory variables. Since these are not stored permanently on the blockchain, they are much cheaper to use. - -Learn more about how the EVM stores data (Storage, Memory, and the Stack) in the [Solidity docs](https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html?highlight=memory#storage-memory-and-the-stack). - -### Environment variables {#environment-variables} - -In addition to the variables you define on your contract, there are some special global variables. They are primarily used to provide information about the blockchain or current transaction. - -Examples: - -| **Prop** | **State variable** | **Description** | -| ----------------- | ------------------ | ------------------------------------ | -| `block.timestamp` | uint256 | Current block epoch timestamp | -| `msg.sender` | address | Sender of the message (current call) | - -## Functions {#functions} - -In the most simplistic terms, functions can get information or set information in response to incoming transactions. - -There are two types of function calls: - -- `internal` – these don't create an EVM call - - Internal functions and state variables can only be accessed internally (i.e. from within the current contract or contracts deriving from it) -- `external` – these do create an EVM call - - External functions are part of the contract interface, which means they can be called from other contracts and via transactions. An external function `f` cannot be called internally (i.e. `f()` does not work, but `this.f()` works). - -They can also be `public` or `private` - -- `public` functions can be called internally from within the contract or externally via messages -- `private` functions are only visible for the contract they are defined in and not in derived contracts - -Both functions and state variables can be made public or private - -Here's a function for updating a state variable on a contract: - -```solidity -// Solidity example -function update_name(string value) public { - dapp_name = value; -} -``` - -- The parameter `value` of type `string` is passed into the function: `update_name` -- It's declared `public`, meaning anyone can access it -- It's not declared `view`, so it can modify the contract state - -### View functions {#view-functions} - -These functions promise not to modify the state of the contract's data. Common examples are "getter" functions – you might use this to receive a user's balance for example. - -```solidity -// Solidity example -function balanceOf(address _owner) public view returns (uint256 _balance) { - return ownerPizzaCount[_owner]; -} -``` - -```python -dappName: public(string) - -@view -@public -def readName() -> string: - return dappName -``` - -What is considered modifying state: - -1. Writing to state variables. -2. [Emitting events](https://solidity.readthedocs.io/en/v0.7.0/contracts.html#events). -3. [Creating other contracts](https://solidity.readthedocs.io/en/v0.7.0/control-structures.html#creating-contracts). -4. Using `selfdestruct`. -5. Sending ether via calls. -6. Calling any function not marked `view` or `pure`. -7. Using low-level calls. -8. Using inline assembly that contains certain opcodes. - -### Constructor functions {#constructor-functions} - -`constructor` functions are only executed once when the contract is first deployed. Like `constructor` in many class-based programming languages, these functions often initialize state variables to their specified values. - -```solidity -// Solidity example -// Initializes the contract's data, setting the `owner` -// to the address of the contract creator. -constructor() public { - // All smart contracts rely on external transactions to trigger its functions. - // `msg` is a global variable that includes relevant data on the given transaction, - // such as the address of the sender and the ETH value included in the transaction. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties - owner = msg.sender; -} -``` - -```python -# Vyper example - -@external -def __init__(_beneficiary: address, _bidding_time: uint256): - self.beneficiary = _beneficiary - self.auctionStart = block.timestamp - self.auctionEnd = self.auctionStart + _bidding_time -``` - -### Built-in functions {#built-in-functions} - -In addition to the variables and functions you define on your contract, there are some special built-in functions. The most obvious example is: - -- `address.send()` – Solidity -- `send(address)` – Vyper - -These allow contracts to send ETH to other accounts. - -## Writing functions {#writing-functions} - -Your function needs: - -- parameter variable and type (if it accepts parameters) -- declaration of internal/external -- declaration of pure/view/payable -- returns type (if it returns a value) - -```solidity -pragma solidity >=0.4.0 <=0.6.0; - -contract ExampleDapp { - string dapp_name; // state variable - - // Called when the contract is deployed and initializes the value - constructor() public { - dapp_name = "My Example dapp"; - } - - // Get Function - function read_name() public view returns(string) { - return dapp_name; - } - - // Set Function - function update_name(string value) public { - dapp_name = value; - } -} -``` - -A complete contract might look something like this. Here the `constructor` function provides an initial value for the `dapp_name` variable. - -## Events and logs {#events-and-logs} - -Events let you communicate with your smart contract from your frontend or other subscribing applications. When a transaction is mined, smart contracts can emit events and write logs to the blockchain that the frontend can then process. - -## Annotated examples {#annotated-examples} - -These are some examples written in Solidity. If you'd like to play with the code, you can interact with them in [Remix](http://remix.ethereum.org). - -### Hello world {#hello-world} - -```solidity -// Specifies the version of Solidity, using semantic versioning. -// Learn more: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma -pragma solidity ^0.5.10; - -// Defines a contract named `HelloWorld`. -// A contract is a collection of functions and data (its state). -// Once deployed, a contract resides at a specific address on the Ethereum blockchain. -// Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html -contract HelloWorld { - - // Declares a state variable `message` of type `string`. - // State variables are variables whose values are permanently stored in contract storage. - // The keyword `public` makes variables accessible from outside a contract - // and creates a function that other contracts or clients can call to access the value. - string public message; - - // Similar to many class-based object-oriented languages, a constructor is - // a special function that is only executed upon contract creation. - // Constructors are used to initialize the contract's data. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constructors - constructor(string memory initMessage) public { - // Accepts a string argument `initMessage` and sets the value - // into the contract's `message` storage variable). - message = initMessage; - } - - // A public function that accepts a string argument - // and updates the `message` storage variable. - function update(string memory newMessage) public { - message = newMessage; - } -} -``` - -### Token {#token} - -```solidity -pragma solidity ^0.5.10; - -contract Token { - // An `address` is comparable to an email address - it's used to identify an account on Ethereum. - // Addresses can represent a smart contract or an external (user) accounts. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#address - address public owner; - - // A `mapping` is essentially a hash table data structure. - // This `mapping` assigns an unsigned integer (the token balance) to an address (the token holder). - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#mapping-types - mapping (address => uint) public balances; - - // Events allow for logging of activity on the blockchain. - // Ethereum clients can listen for events in order to react to contract state changes. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#events - event Transfer(address from, address to, uint amount); - - // Initializes the contract's data, setting the `owner` - // to the address of the contract creator. - constructor() public { - // All smart contracts rely on external transactions to trigger its functions. - // `msg` is a global variable that includes relevant data on the given transaction, - // such as the address of the sender and the ETH value included in the transaction. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties - owner = msg.sender; - } - - // Creates an amount of new tokens and sends them to an address. - function mint(address receiver, uint amount) public { - // `require` is a control structure used to enforce certain conditions. - // If a `require` statement evaluates to `false`, an exception is triggered, - // which reverts all changes made to the state during the current call. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions - - // Only the contract owner can call this function - require(msg.sender == owner, "You are not the owner."); - - // Enforces a maximum amount of tokens - require(amount < 1e60, "Maximum issuance exceeded"); - - // Increases the balance of `receiver` by `amount` - balances[receiver] += amount; - } - - // Sends an amount of existing tokens from any caller to an address. - function transfer(address receiver, uint amount) public { - // The sender must have enough tokens to send - require(amount <= balances[msg.sender], "Insufficient balance."); - - // Adjusts token balances of the two addresses - balances[msg.sender] -= amount; - balances[receiver] += amount; - - // Emits the event defined earlier - emit Transfer(msg.sender, receiver, amount); - } -} -``` - -### Unique digital asset {#unique-digital-asset} - -```solidity -pragma solidity ^0.5.10; - -// Imports symbols from other files into the current contract. -// In this case, a series of helper contracts from OpenZeppelin. -// Learn more: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#importing-other-source-files - -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; -import "../node_modules/@openzeppelin/contracts/introspection/ERC165.sol"; -import "../node_modules/@openzeppelin/contracts/math/SafeMath.sol"; - -// The `is` keyword is used to inherit functions and keywords from external contracts. -// In this case, `CryptoPizza` inherits from the `IERC721` and `ERC165` contracts. -// Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#inheritance -contract CryptoPizza is IERC721, ERC165 { - // Uses OpenZeppelin's SafeMath library to perform arithmetic operations safely. - // Learn more: https://docs.openzeppelin.com/contracts/2.x/api/math#SafeMath - using SafeMath for uint256; - - // Constant state variables in Solidity are similar to other languages - // but you must assign from an expression which is constant at compile time. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constant-state-variables - uint256 constant dnaDigits = 10; - uint256 constant dnaModulus = 10 ** dnaDigits; - bytes4 private constant _ERC721_RECEIVED = 0x150b7a02; - - // Struct types let you define your own type - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#structs - struct Pizza { - string name; - uint256 dna; - } - - // Creates an empty array of Pizza structs - Pizza[] public pizzas; - - // Mapping from pizza ID to its owner's address - mapping(uint256 => address) public pizzaToOwner; - - // Mapping from owner's address to number of owned token - mapping(address => uint256) public ownerPizzaCount; - - // Mapping from token ID to approved address - mapping(uint256 => address) pizzaApprovals; - - // You can nest mappings, this example maps owner to operator approvals - mapping(address => mapping(address => bool)) private operatorApprovals; - - // Internal function to create a random Pizza from string (name) and DNA - function _createPizza(string memory _name, uint256 _dna) - // The `internal` keyword means this function is only visible - // within this contract and contracts that derive this contract - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#visibility-and-getters - internal - // `isUnique` is a function modifier that checks if the pizza already exists - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html#function-modifiers - isUnique(_name, _dna) - { - // Adds Pizza to array of Pizzas and get id - uint256 id = SafeMath.sub(pizzas.push(Pizza(_name, _dna)), 1); - - // Checks that Pizza owner is the same as current user - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions - - // note that address(0) is the zero address, - // indicating that pizza[id] is not yet allocated to a particular user. - - assert(pizzaToOwner[id] == address(0)); - - // Maps the Pizza to the owner - pizzaToOwner[id] = msg.sender; - ownerPizzaCount[msg.sender] = SafeMath.add( - ownerPizzaCount[msg.sender], - 1 - ); - } - - // Creates a random Pizza from string (name) - function createRandomPizza(string memory _name) public { - uint256 randDna = generateRandomDna(_name, msg.sender); - _createPizza(_name, randDna); - } - - // Generates random DNA from string (name) and address of the owner (creator) - function generateRandomDna(string memory _str, address _owner) - public - // Functions marked as `pure` promise not to read from or modify the state - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#pure-functions - pure - returns (uint256) - { - // Generates random uint from string (name) + address (owner) - uint256 rand = uint256(keccak256(abi.encodePacked(_str))) + - uint256(_owner); - rand = rand % dnaModulus; - return rand; - } - - // Returns array of Pizzas found by owner - function getPizzasByOwner(address _owner) - public - // Functions marked as `view` promise not to modify state - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#view-functions - view - returns (uint256[] memory) - { - // Uses the `memory` storage location to store values only for the - // lifecycle of this function call. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/introduction-to-smart-contracts.html#storage-memory-and-the-stack - uint256[] memory result = new uint256[](ownerPizzaCount[_owner]); - uint256 counter = 0; - for (uint256 i = 0; i < pizzas.length; i++) { - if (pizzaToOwner[i] == _owner) { - result[counter] = i; - counter++; - } - } - return result; - } - - // Transfers Pizza and ownership to other address - function transferFrom(address _from, address _to, uint256 _pizzaId) public { - require(_from != address(0) && _to != address(0), "Invalid address."); - require(_exists(_pizzaId), "Pizza does not exist."); - require(_from != _to, "Cannot transfer to the same address."); - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - - ownerPizzaCount[_to] = SafeMath.add(ownerPizzaCount[_to], 1); - ownerPizzaCount[_from] = SafeMath.sub(ownerPizzaCount[_from], 1); - pizzaToOwner[_pizzaId] = _to; - - // Emits event defined in the imported IERC721 contract - emit Transfer(_from, _to, _pizzaId); - _clearApproval(_to, _pizzaId); - } - - /** - * Safely transfers the ownership of a given token ID to another address - * If the target address is a contract, it must implement `onERC721Received`, - * which is called upon a safe transfer, and return the magic value - * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; - * otherwise, the transfer is reverted. - */ - function safeTransferFrom(address from, address to, uint256 pizzaId) - public - { - // solium-disable-next-line arg-overflow - this.safeTransferFrom(from, to, pizzaId, ""); - } - - /** - * Safely transfers the ownership of a given token ID to another address - * If the target address is a contract, it must implement `onERC721Received`, - * which is called upon a safe transfer, and return the magic value - * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; - * otherwise, the transfer is reverted. - */ - function safeTransferFrom( - address from, - address to, - uint256 pizzaId, - bytes memory _data - ) public { - this.transferFrom(from, to, pizzaId); - require(_checkOnERC721Received(from, to, pizzaId, _data), "Must implement onERC721Received."); - } - - /** - * Internal function to invoke `onERC721Received` on a target address - * The call is not executed if the target address is not a contract - */ - function _checkOnERC721Received( - address from, - address to, - uint256 pizzaId, - bytes memory _data - ) internal returns (bool) { - if (!isContract(to)) { - return true; - } - - bytes4 retval = IERC721Receiver(to).onERC721Received( - msg.sender, - from, - pizzaId, - _data - ); - return (retval == _ERC721_RECEIVED); - } - - // Burns a Pizza - destroys Token completely - // The `external` function modifier means this function is - // part of the contract interface and other contracts can call it - function burn(uint256 _pizzaId) external { - require(msg.sender != address(0), "Invalid address."); - require(_exists(_pizzaId), "Pizza does not exist."); - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - - ownerPizzaCount[msg.sender] = SafeMath.sub( - ownerPizzaCount[msg.sender], - 1 - ); - pizzaToOwner[_pizzaId] = address(0); - } - - // Returns count of Pizzas by address - function balanceOf(address _owner) public view returns (uint256 _balance) { - return ownerPizzaCount[_owner]; - } - - // Returns owner of the Pizza found by id - function ownerOf(uint256 _pizzaId) public view returns (address _owner) { - address owner = pizzaToOwner[_pizzaId]; - require(owner != address(0), "Invalid Pizza ID."); - return owner; - } - - // Approves other address to transfer ownership of Pizza - function approve(address _to, uint256 _pizzaId) public { - require(msg.sender == pizzaToOwner[_pizzaId], "Must be the Pizza owner."); - pizzaApprovals[_pizzaId] = _to; - emit Approval(msg.sender, _to, _pizzaId); - } - - // Returns approved address for specific Pizza - function getApproved(uint256 _pizzaId) - public - view - returns (address operator) - { - require(_exists(_pizzaId), "Pizza does not exist."); - return pizzaApprovals[_pizzaId]; - } - - /** - * Private function to clear current approval of a given token ID - * Reverts if the given address is not indeed the owner of the token - */ - function _clearApproval(address owner, uint256 _pizzaId) private { - require(pizzaToOwner[_pizzaId] == owner, "Must be pizza owner."); - require(_exists(_pizzaId), "Pizza does not exist."); - if (pizzaApprovals[_pizzaId] != address(0)) { - pizzaApprovals[_pizzaId] = address(0); - } - } - - /* - * Sets or unsets the approval of a given operator - * An operator is allowed to transfer all tokens of the sender on their behalf - */ - function setApprovalForAll(address to, bool approved) public { - require(to != msg.sender, "Cannot approve own address"); - operatorApprovals[msg.sender][to] = approved; - emit ApprovalForAll(msg.sender, to, approved); - } - - // Tells whether an operator is approved by a given owner - function isApprovedForAll(address owner, address operator) - public - view - returns (bool) - { - return operatorApprovals[owner][operator]; - } - - // Takes ownership of Pizza - only for approved users - function takeOwnership(uint256 _pizzaId) public { - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - address owner = this.ownerOf(_pizzaId); - this.transferFrom(owner, msg.sender, _pizzaId); - } - - // Checks if Pizza exists - function _exists(uint256 pizzaId) internal view returns (bool) { - address owner = pizzaToOwner[pizzaId]; - return owner != address(0); - } - - // Checks if address is owner or is approved to transfer Pizza - function _isApprovedOrOwner(address spender, uint256 pizzaId) - internal - view - returns (bool) - { - address owner = pizzaToOwner[pizzaId]; - // Disable solium check because of - // https://github.com/duaraghav8/Solium/issues/175 - // solium-disable-next-line operator-whitespace - return (spender == owner || - this.getApproved(pizzaId) == spender || - this.isApprovedForAll(owner, spender)); - } - - // Check if Pizza is unique and doesn't exist yet - modifier isUnique(string memory _name, uint256 _dna) { - bool result = true; - for (uint256 i = 0; i < pizzas.length; i++) { - if ( - keccak256(abi.encodePacked(pizzas[i].name)) == - keccak256(abi.encodePacked(_name)) && - pizzas[i].dna == _dna - ) { - result = false; - } - } - require(result, "Pizza with such name already exists."); - _; - } - - // Returns whether the target address is a contract - function isContract(address account) internal view returns (bool) { - uint256 size; - // Currently there is no better way to check if there is a contract in an address - // than to check the size of the code at that address. - // See https://ethereum.stackexchange.com/a/14016/36603 - // for more details about how this works. - // TODO Check this again before the Serenity release, because all addresses will be - // contracts then. - // solium-disable-next-line security/no-inline-assembly - assembly { - size := extcodesize(account) - } - return size > 0; - } -} -``` - -## Further reading {#further-reading} - -Check out Solidity and Vyper's documentation for a more complete overview of smart contracts: - -- [Solidity](https://solidity.readthedocs.io/) -- [Vyper](https://vyper.readthedocs.io/) - -## Related topics {#related-topics} - -- [Smart contracts](/developers/docs/smart-contracts/) -- [Ethereum Virtual Machine](/developers/docs/evm/) - -## Related tutorials {#related-tutorials} - -- [Downsizing contracts to fight the contract size limit](/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/) _– Some practical tips for reducing the size of your smart contract._ -- [Logging data from smart contracts with events](/developers/tutorials/logging-events-smart-contracts/) _– An introduction to smart contract events and how you can use them to log data._ -- [Interact with other contracts from Solidity](/developers/tutorials/interact-with-other-contracts-from-solidity/) _– How to deploy a smart contract from an existing contract and interact with it._ diff --git a/src/content/developers/docs/standards/tokens/erc-20/index.md b/src/content/developers/docs/standards/tokens/erc-20/index.md deleted file mode 100644 index f666d34996a..00000000000 --- a/src/content/developers/docs/standards/tokens/erc-20/index.md +++ /dev/null @@ -1,156 +0,0 @@ ---- -title: ERC-20 Token Standard -description: -lang: en ---- - -## Introduction {#introduction} - -**What is a Token?** - -Tokens can represent virtually anything in Ethereum: - -- reputation points in an online platform -- skills of a character in a game -- lottery tickets -- financial assets like a share in a company -- a fiat currency like USD -- an ounce of gold -- and more... - -Such a powerful feature of Ethereum must be handled by a robust standard, right? That's exactly -where the ERC-20 plays its role! This standard allows developers to build token applications that are interoperable with other products and services. - -**What is ERC-20?** - -The ERC-20 introduces a standard for Fungible Tokens, in other words, they have a property that makes each Token be exactly -the same (in type and value) as another Token. For example, an ERC-20 Token acts just like the ETH, meaning that 1 Token -is and will always be equal to all the other Tokens. - -## Prerequisites {#prerequisites} - -- [Accounts](/developers/docs/accounts) -- [Smart Contracts](/developers/docs/smart-contracts/) -- [Token standards](/developers/docs/standards/tokens/) - -## Body {#body} - -The ERC-20 (Ethereum Request for Comments 20), proposed by Fabian Vogelsteller in November 2015, is a Token Standard that -implements an API for tokens within Smart Contracts. - -Example functionalities ERC-20 provides: - -- transfer tokens from one account to another -- get the current token balance of an account -- get the total supply of the token available on the network -- approve whether an amount of token from an account can be spent by a third-party account - -If a Smart Contract implements the following methods and events it can be called an ERC-20 Token Contract and, once deployed, it -will be responsible to keep track of the created tokens on Ethereum. - -From [EIP-20](https://eips.ethereum.org/EIPS/eip-20): - -#### Methods {#methods} - -```solidity -function name() public view returns (string) -function symbol() public view returns (string) -function decimals() public view returns (uint8) -function totalSupply() public view returns (uint256) -function balanceOf(address _owner) public view returns (uint256 balance) -function transfer(address _to, uint256 _value) public returns (bool success) -function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) -function approve(address _spender, uint256 _value) public returns (bool success) -function allowance(address _owner, address _spender) public view returns (uint256 remaining) -``` - -#### Events {#events} - -```solidity -event Transfer(address indexed _from, address indexed _to, uint256 _value) -event Approval(address indexed _owner, address indexed _spender, uint256 _value) -``` - -### Examples {#web3py-example} - -Let's see how a Standard is so important to make things simple for us to inspect any ERC-20 Token Contract on Ethereum. -We just need the Contract Application Binary Interface (ABI) to create an interface to any ERC-20 Token. As you can -see below we will use a simplified ABI, to make it a low friction example. - -#### Web3.py Example {#web3py-example} - -First, make sure you have installed [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) Python library: - -``` -pip install web3 -``` - -```python -from web3 import Web3 - - -w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) - -dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI -weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # Wrapped ether (WETH) - -acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11" # Uniswap V2: DAI 2 - -# This is a simplified Contract Application Binary Interface (ABI) of an ERC-20 Token Contract. -# It will expose only the methods: balanceOf(address), decimals(), symbol() and totalSupply() -simplified_abi = [ - { - 'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], - 'name': 'balanceOf', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'decimals', - 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'symbol', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'totalSupply', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - } -] - -dai_contract = w3.eth.contract(address=w3.to_checksum_address(dai_token_addr), abi=simplified_abi) -symbol = dai_contract.functions.symbol().call() -decimals = dai_contract.functions.decimals().call() -totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals -addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals - -# DAI -print("===== %s =====" % symbol) -print("Total Supply:", totalSupply) -print("Addr Balance:", addr_balance) - -weth_contract = w3.eth.contract(address=w3.to_checksum_address(weth_token_addr), abi=simplified_abi) -symbol = weth_contract.functions.symbol().call() -decimals = weth_contract.functions.decimals().call() -totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals -addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals - -# WETH -print("===== %s =====" % symbol) -print("Total Supply:", totalSupply) -print("Addr Balance:", addr_balance) -``` - -## Further reading {#further-reading} - -- [EIP-20: ERC-20 Token Standard](https://eips.ethereum.org/EIPS/eip-20) -- [OpenZeppelin - Tokens](https://docs.openzeppelin.com/contracts/3.x/tokens#ERC20) -- [OpenZeppelin - ERC-20 Implementation](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) -- [Alchemy - Guide to Solidity ERC20 Tokens](https://www.alchemy.com/overviews/erc20-solidity) diff --git a/src/content/developers/docs/standards/tokens/erc-721/index.md b/src/content/developers/docs/standards/tokens/erc-721/index.md deleted file mode 100644 index deaf71ea562..00000000000 --- a/src/content/developers/docs/standards/tokens/erc-721/index.md +++ /dev/null @@ -1,264 +0,0 @@ ---- -title: ERC-721 Non-Fungible Token Standard -description: -lang: en ---- - -## Introduction {#introduction} - -**What is a Non-Fungible Token?** - -A Non-Fungible Token (NFT) is used to identify something or someone in a unique way. This type of Token is perfect to -be used on platforms that offer collectible items, access keys, lottery tickets, numbered seats for concerts and -sports matches, etc. This special type of Token has amazing possibilities so it deserves a proper Standard, the ERC-721 -came to solve that! - -**What is ERC-721?** - -The ERC-721 introduces a standard for NFT, in other words, this type of Token is unique and can have different value -than another Token from the same Smart Contract, maybe due to its age, rarity or even something else like its visual. -Wait, visual? - -Yes! All NFTs have a `uint256` variable called `tokenId`, so for any ERC-721 Contract, the pair -`contract address, uint256 tokenId` must be globally unique. That said, a dapp can have a "converter" that -uses the `tokenId` as input and outputs an image of something cool, like zombies, weapons, skills or amazing kitties! - -## Prerequisites {#prerequisites} - -- [Accounts](/developers/docs/accounts/) -- [Smart Contracts](/developers/docs/smart-contracts/) -- [Token standards](/developers/docs/standards/tokens/) - -## Body {#body} - -The ERC-721 (Ethereum Request for Comments 721), proposed by William Entriken, Dieter Shirley, Jacob Evans, -Nastassia Sachs in January 2018, is a Non-Fungible Token Standard that implements an API for tokens within Smart Contracts. - -It provides functionalities like to transfer tokens from one account to another, to get the current token balance of an -account, to get the owner of a specific token and also the total supply of the token available on the network. -Besides these it also has some other functionalities like to approve that an amount of token from an account can be -moved by a third party account. - -If a Smart Contract implements the following methods and events it can be called an ERC-721 Non-Fungible Token Contract -and, once deployed, it will be responsible to keep track of the created tokens on Ethereum. - -From [EIP-721](https://eips.ethereum.org/EIPS/eip-721): - -#### Methods {#methods} - -```solidity - function balanceOf(address _owner) external view returns (uint256); - function ownerOf(uint256 _tokenId) external view returns (address); - function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; - function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; - function transferFrom(address _from, address _to, uint256 _tokenId) external payable; - function approve(address _approved, uint256 _tokenId) external payable; - function setApprovalForAll(address _operator, bool _approved) external; - function getApproved(uint256 _tokenId) external view returns (address); - function isApprovedForAll(address _owner, address _operator) external view returns (bool); -``` - -#### Events {#events} - -```solidity - event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); - event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); - event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); -``` - -### Examples {#web3py-example} - -Let's see how a Standard is so important to make things simple for us to inspect any ERC-721 Token Contract on Ethereum. -We just need the Contract Application Binary Interface (ABI) to create an interface to any ERC-721 Token. As you can -see below we will use a simplified ABI, to make it a low friction example. - -#### Web3.py Example {#web3py-example} - -First, make sure you have installed [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) Python library: - -``` -pip install web3 -``` - -```python -from web3 import Web3 -from web3._utils.events import get_event_data - - -w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) - -ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # CryptoKitties Contract - -acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # CryptoKitties Sales Auction - -# This is a simplified Contract Application Binary Interface (ABI) of an ERC-721 NFT Contract. -# It will expose only the methods: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply() -simplified_abi = [ - { - 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], - 'name': 'balanceOf', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'name', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], - 'name': 'ownerOf', - 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'symbol', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'totalSupply', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, -] - -ck_extra_abi = [ - { - 'inputs': [], - 'name': 'pregnantKitties', - 'outputs': [{'name': '', 'type': 'uint256'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [{'name': '_kittyId', 'type': 'uint256'}], - 'name': 'isPregnant', - 'outputs': [{'name': '', 'type': 'bool'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - } -] - -ck_contract = w3.eth.contract(address=w3.to_checksum_address(ck_token_addr), abi=simplified_abi+ck_extra_abi) -name = ck_contract.functions.name().call() -symbol = ck_contract.functions.symbol().call() -kitties_auctions = ck_contract.functions.balanceOf(acc_address).call() -print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}") - -pregnant_kitties = ck_contract.functions.pregnantKitties().call() -print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}") - -# Using the Transfer Event ABI to get info about transferred Kitties. -tx_event_abi = { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'from', 'type': 'address'}, - {'indexed': False, 'name': 'to', 'type': 'address'}, - {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}], - 'name': 'Transfer', - 'type': 'event' -} - -# We need the event's signature to filter the logs -event_signature = w3.keccak(text="Transfer(address,address,uint256)").hex() - -logs = w3.eth.get_logs({ - "fromBlock": w3.eth.block_number - 120, - "address": w3.to_checksum_address(ck_token_addr), - "topics": [event_signature] -}) - -# Notes: -# - Increase the number of blocks up from 120 if no Transfer event is returned. -# - If you didn't find any Transfer event you can also try to get a tokenId at: -# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events -# Click to expand the event's logs and copy its "tokenId" argument -recent_tx = [get_event_data(w3.codec, tx_event_abi, log)["args"] for log in logs] - -if recent_tx: - kitty_id = recent_tx[0]['tokenId'] # Paste the "tokenId" here from the link above - is_pregnant = ck_contract.functions.isPregnant(kitty_id).call() - print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}") -``` - -CryptoKitties Contract has some interesting Events other than the Standard ones. - -Let's check two of them, `Pregnant` and `Birth`. - -```python -# Using the Pregnant and Birth Events ABI to get info about new Kitties. -ck_extra_events_abi = [ - { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'owner', 'type': 'address'}, - {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, - {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, - {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}], - 'name': 'Pregnant', - 'type': 'event' - }, - { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'owner', 'type': 'address'}, - {'indexed': False, 'name': 'kittyId', 'type': 'uint256'}, - {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, - {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, - {'indexed': False, 'name': 'genes', 'type': 'uint256'}], - 'name': 'Birth', - 'type': 'event' - }] - -# We need the event's signature to filter the logs -ck_event_signatures = [ - w3.keccak(text="Pregnant(address,uint256,uint256,uint256)").hex(), - w3.keccak(text="Birth(address,uint256,uint256,uint256,uint256)").hex(), -] - -# Here is a Pregnant Event: -# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog -pregnant_logs = w3.eth.get_logs({ - "fromBlock": w3.eth.block_number - 120, - "address": w3.to_checksum_address(ck_token_addr), - "topics": [ck_event_signatures[0]] -}) - -recent_pregnants = [get_event_data(w3.codec, ck_extra_events_abi[0], log)["args"] for log in pregnant_logs] - -# Here is a Birth Event: -# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a -birth_logs = w3.eth.get_logs({ - "fromBlock": w3.eth.block_number - 120, - "address": w3.to_checksum_address(ck_token_addr), - "topics": [ck_event_signatures[1]] -}) - -recent_births = [get_event_data(w3.codec, ck_extra_events_abi[1], log)["args"] for log in birth_logs] -``` - -## Popular NFTs {#popular-nfts} - -- [Etherscan NFT Tracker](https://etherscan.io/tokens-nft) list the top NFT on Ethereum by transfers volume. -- [CryptoKitties](https://www.cryptokitties.co/) is a game centered around breedable, collectible, and oh-so-adorable - creatures we call CryptoKitties. -- [Sorare](https://sorare.com/) is a global fantasy football game where you can collect limited editions collectibles, - manage your teams and compete to earn prizes. -- [The Ethereum Name Service (ENS)](https://ens.domains/) offers a secure & decentralized way to address resources both - on and off the blockchain using simple, human-readable names. -- [POAP](https://poap.xyz) delivers free NFTs to people who attend events or complete specific actions. POAPs are free to create and distribute. -- [Unstoppable Domains](https://unstoppabledomains.com/) is a San Francisco-based company building domains on - blockchains. Blockchain domains replace cryptocurrency addresses with human-readable names and can be used to enable - censorship-resistant websites. -- [Gods Unchained Cards](https://godsunchained.com/) is a TCG on the Ethereum blockchain that uses NFT's to bring real ownership - to in-game assets. -- [Bored Ape Yacht Club](https://boredapeyachtclub.com) is a collection of 10,000 unique NFTs, which, as well as being a provably-rare piece of art, acts as a membership token to the club, providing member perks and benefits that increase over time as a result of community efforts. - -## Further reading {#further-reading} - -- [EIP-721: ERC-721 Non-Fungible Token Standard](https://eips.ethereum.org/EIPS/eip-721) -- [OpenZeppelin - ERC-721 Docs](https://docs.openzeppelin.com/contracts/3.x/erc721) -- [OpenZeppelin - ERC-721 Implementation](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) -- [Alchemy NFT API](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) diff --git a/src/content/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md b/src/content/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md deleted file mode 100644 index 4429fefd2bf..00000000000 --- a/src/content/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md +++ /dev/null @@ -1,293 +0,0 @@ ---- -title: "Waffle: Dynamic mocking and testing contract calls" -description: Advanced Waffle tutorial for using dynamic mocking and testing contract calls -author: "Daniel Izdebski" -tags: ["waffle", "smart contracts", "solidity", "testing", "mocking"] -skill: intermediate -lang: en -published: 2020-11-14 ---- - -## What is this tutorial about? {#what-is-this-tutorial-about} - -In this tutorial you will learn how to: - -- use dynamic mocking -- test interactions between smart contracts - -Assumptions: - -- you already know how to write a simple smart contract in `Solidity` -- you know your way around `JavaScript` and `TypeScript` -- you've done other `Waffle` tutorials or know a thing or two about it - -## Dynamic mocking {#dynamic-mocking} - -Why is dynamic mocking useful? Well, it allows us to write unit tests instead of integration tests. What does it mean? It means that we don't have to worry about smart contracts' dependencies, thus we can test all of them in complete isolation. Let me show you how exactly you can do it. - -### **1. Project** {#1-project} - -Before we start we need to prepare a simple node.js project: - -```bash -mkdir dynamic-mocking -cd dynamic-mocking -mkdir contracts src - -yarn init -# or if you're using npm -npm init -``` - -Let's start with adding typescript and test dependencies - mocha & chai: - -```bash -yarn add --dev @types/chai @types/mocha chai mocha ts-node typescript -# or if you're using npm -npm install @types/chai @types/mocha chai mocha ts-node typescript --save-dev -``` - -Now let's add `Waffle` and `ethers`: - -```bash -yarn add --dev ethereum-waffle ethers -# or if you're using npm -npm install ethereum-waffle ethers --save-dev -``` - -Your project structure should look like this now: - -``` -. -├── contracts -├── package.json -└── test -``` - -### **2. Smart contract** {#2-smart-contract} - -To start dynamic mocking, we need a smart contract with dependencies. Don't worry, I've got you covered! - -Here's a simple smart contract written in `Solidity` whose sole purpose is to check if we're rich. It uses ERC20 token to check if we have enough tokens. Put it in `./contracts/AmIRichAlready.sol`. - -```solidity -pragma solidity ^0.6.2; - -interface IERC20 { - function balanceOf(address account) external view returns (uint256); -} - -contract AmIRichAlready { - IERC20 private tokenContract; - uint public richness = 1000000 * 10 ** 18; - - constructor (IERC20 _tokenContract) public { - tokenContract = _tokenContract; - } - - function check() public view returns (bool) { - uint balance = tokenContract.balanceOf(msg.sender); - return balance > richness; - } -} -``` - -As we want to use dynamic mocking we don't need the whole ERC20, that's why we're using the IERC20 interface with only one function. - -It's time to build this contract! For that we will use `Waffle`. First, we're going to create a simple `waffle.json` config file which specifies compilation options. - -```json -{ - "compilerType": "solcjs", - "compilerVersion": "0.6.2", - "sourceDirectory": "./contracts", - "outputDirectory": "./build" -} -``` - -Now we're ready to build the contract with Waffle: - -```bash -npx waffle -``` - -Easy, right? In `build/` folder two files corresponding to the contract and the interface appeared. We will use them later for testing. - -### **3. Testing** {#3-testing} - -Let's create a file called `AmIRichAlready.test.ts` for the actual testing. First of all, we have to handle the imports. We will need them for later: - -```typescript -import { expect, use } from "chai" -import { Contract, utils, Wallet } from "ethers" -import { - deployContract, - deployMockContract, - MockProvider, - solidity, -} from "ethereum-waffle" -``` - -Except for JS dependencies, we need to import our built contract and interface: - -```typescript -import IERC20 from "../build/IERC20.json" -import AmIRichAlready from "../build/AmIRichAlready.json" -``` - -Waffle uses `chai` for testing. However, before we can use it, we have to inject Waffle's matchers into chai itself: - -```typescript -use(solidity) -``` - -We need to implement `beforeEach()` function that will reset the state of the contract before each test. Let's first think of what we need there. To deploy a contract we need two things: a wallet and a deployed ERC20 contract to pass it as an argument for the `AmIRichAlready` contract. - -Firstly we create a wallet: - -```typescript -const [wallet] = new MockProvider().getWallets() -``` - -Then we need to deploy an ERC20 contract. Here's the tricky part - we have only an interface. This is the part where Waffle comes to save us. Waffle has a magical `deployMockContract()` function that creates a contract using solely the _abi_ of the interface: - -```typescript -const mockERC20 = await deployMockContract(wallet, IERC20.abi) -``` - -Now with both the wallet and the deployed ERC20, we can go ahead and deploy the `AmIRichAlready` contract: - -```typescript -const contract = await deployContract(wallet, AmIRichAlready, [ - mockERC20.address, -]) -``` - -With all of that, our `beforeEach()` function is finished. So far your `AmIRichAlready.test.ts` file should look like this: - -```typescript -import { expect, use } from "chai" -import { Contract, utils, Wallet } from "ethers" -import { - deployContract, - deployMockContract, - MockProvider, - solidity, -} from "ethereum-waffle" - -import IERC20 from "../build/IERC20.json" -import AmIRichAlready from "../build/AmIRichAlready.json" - -use(solidity) - -describe("Am I Rich Already", () => { - let mockERC20: Contract - let contract: Contract - let wallet: Wallet - - beforeEach(async () => { - ;[wallet] = new MockProvider().getWallets() - mockERC20 = await deployMockContract(wallet, IERC20.abi) - contract = await deployContract(wallet, AmIRichAlready, [mockERC20.address]) - }) -}) -``` - -Let's write the first test for the `AmIRichAlready` contract. What do you think our test should be about? Yeah, you're right! We should check if we are already rich :) - -But wait a second. How will our mocked contract know what values to return? We haven't implemented any logic for the `balanceOf()` function. Again, Waffle can help here. Our mocked contract has some new fancy stuff to it now: - -```typescript -await mockERC20.mock..returns() -await mockERC20.mock..withArgs().returns() -``` - -With this knowledge we can finally write our first test: - -```typescript -it("returns false if the wallet has less than 1000000 tokens", async () => { - await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) - expect(await contract.check()).to.be.equal(false) -}) -``` - -Let's break down this test into parts: - -1. We set our mock ERC20 contract to always return balance of 999999 tokens. -2. Check if the `contract.check()` method returns `false`. - -We're ready to fire up the beast: - -![One test passing](test-one.png) - -So the test works, but... there's still some room for improvement. The `balanceOf()` function will always return 99999. We can improve it by specifying a wallet for which the function should return something - just like a real contract: - -```typescript -it("returns false if the wallet has less than 1000001 tokens", async () => { - await mockERC20.mock.balanceOf - .withArgs(wallet.address) - .returns(utils.parseEther("999999")) - expect(await contract.check()).to.be.equal(false) -}) -``` - -So far, we've tested only the case where we're not rich enough. Let's test the opposite instead: - -```typescript -it("returns true if the wallet has at least 1000001 tokens", async () => { - await mockERC20.mock.balanceOf - .withArgs(wallet.address) - .returns(utils.parseEther("1000001")) - expect(await contract.check()).to.be.equal(true) -}) -``` - -You run the tests... - -![Two tests passing](test-two.png) - -...and here you are! Our contract seems to work as intended :) - -## Testing contract calls {#testing-contract-calls} - -Let's sum up what've done so far. We've tested the functionality of our `AmIRichAlready` contract and it seems to be working properly. That means we're done, right? Not exactly! Waffle allows us to test our contract even further. But how exactly? Well, in Waffle's arsenal there's a `calledOnContract()` and `calledOnContractWith()` matchers. They will allow us to check if our contract called the ERC20 mock contract. Here's a basic test with one of these matchers: - -```typescript -it("checks if contract called balanceOf on the ERC20 token", async () => { - await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) - await contract.check() - expect("balanceOf").to.be.calledOnContract(mockERC20) -}) -``` - -We can go even further and improve this test with the other matcher I told you about: - -```typescript -it("checks if contract called balanceOf with certain wallet on the ERC20 token", async () => { - await mockERC20.mock.balanceOf - .withArgs(wallet.address) - .returns(utils.parseEther("999999")) - await contract.check() - expect("balanceOf").to.be.calledOnContractWith(mockERC20, [wallet.address]) -}) -``` - -Let's check if the tests are correct: - -![Three tests passing](test-three.png) - -Great, all tests are green. - -Testing contract calls with Waffle is super easy. And here's the best part. These matchers work with both normal and mocked contracts! It is because Waffle records and filters EVM calls rather than inject code, like it is the case of popular testing libraries for other technologies. - -## The Finish Line {#the-finish-line} - -Congrats! Now you know how to use Waffle to test contract calls and mock contracts dynamically. There are far more interesting features to discover. I recommend diving into Waffle's documentation. - -Waffle's documentation is available [here](https://ethereum-waffle.readthedocs.io/). - -Source code for this tutorial can be found [here](https://github.com/EthWorks/Waffle/tree/master/examples/dynamic-mocking-and-testing-calls). - -Tutorials you may also be interested in: - -- [Testing smart contracts with Waffle](/developers/tutorials/testing-smart-contract-with-waffle/) diff --git a/src/content/history/index.md b/src/content/history/index.md deleted file mode 100644 index a70e930acdb..00000000000 --- a/src/content/history/index.md +++ /dev/null @@ -1,517 +0,0 @@ ---- -title: History and Forks of Ethereum -description: A history of the Ethereum blockchain including major milestones, releases, and forks. -lang: en -sidebarDepth: 1 ---- - -# The history of Ethereum {#the-history-of-ethereum} - -A timeline of all the major milestones, forks, and updates to the Ethereum blockchain. - - - -Forks are when major technical upgrades or changes need to be made to the network – they typically stem from Ethereum Improvement Proposals (EIPs) and change the "rules" of the protocol. - -When upgrades are needed in traditional, centrally-controlled software, the company will just publish a new version for the end-user. Blockchains work differently because there is no central ownership. Ethereum clients must update their software to implement the new fork rules. Plus block creators (miners in a proof-of-work world, validators in a proof-of-stake world) and nodes must create blocks and validate against the new rules. More on consensus mechanisms - -These rule changes may create a temporary split in the network. New blocks could be produced according to the new rules or the old ones. Forks are usually agreed upon ahead of time so that clients adopt the changes in unison and the fork with the upgrades becomes the main chain. However, in rare cases, disagreements over forks can cause the network to permanently split – most notably the creation of Ethereum Classic with the DAO fork. - - - -Skip straight to information about some of the particularly important past upgrades: [The Beacon Chain](/roadmap/beacon-chain/); [The Merge](/roadmap/merge/); and [EIP-1559](#london) - -Looking for future protocol upgrades? [Learn about upcoming upgrades on the Ethereum roadmap](/roadmap/). - - - -## 2023 {#2023} - -### Shanghai {#shanghai} - - - -#### Summary {#shanghai-summary} - -The Shanghai upgrade brought staking withdrawals to the execution layer. In tandem with the Capella upgrade, this enabled blocks to accept withdrawal operations, which allows stakers to withdraw their ETH from the Beacon Chain to the execution layer. - - - -
    -
  • EIP-3651Starts the COINBASE address warm
  • -
  • EIP-3855New PUSH0 instruction
  • -
  • EIP-3860Limit and meter initcode
  • -
  • EIP-4895Beacon chain push withdrawals as operations
  • -
  • EIP-6049 - Deprecate SELFDESTRUCT
  • -
- -
- -- [Read the Shanghai upgrade specification](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/shanghai.md) - ---- - -### Capella {#capella} - - - -#### Summary {#capella-summary} - -The Capella upgrade was the third major upgrade to the consensus layer (Beacon Chain) and enabled staking withdrawals. Capella occurred synchronously with the execution layer upgrade, Shanghai, and enabled staking withdrawal functionality. - -This consensus layer upgrade brought the ability for stakers who did not provide withdrawal credentials with their initial deposit to do so, thereby enabling withdrawals. - -The upgrade also provided automatic account sweeping functionality, which continuously processes validator accounts for any available rewards payments or full withdrawals. - -- [More on staking withdrawals](/staking/withdrawals/). -- [Read the Capella upgrade specifications](https://github.com/ethereum/consensus-specs/blob/dev/specs/capella/) - - - -## 2022 {#2022} - -### Paris (The Merge) {#paris} - - - -#### Summary {#paris-summary} - -The Paris upgrade was triggered by the proof-of-work blockchain passing a [terminal total difficulty](/glossary/#terminal-total-difficulty) of 58750000000000000000000. This happened at block 15537393 on 15th September 2022, triggering the Paris upgrade the next block. Paris was [The Merge](/roadmap/merge/) transition - its major feature was switching off the [proof-of-work](/developers/docs/consensus-mechanisms/pow) mining algorithm and associated consensus logic and switching on [proof-of-stake](/developers/docs/consensus-mechanisms/pos) instead. Paris itself was an upgrade to the [execution clients](/developers/docs/nodes-and-clients/#execution-clients) (equivalent to Bellatrix on the consensus layer) that enabled them to take instruction from their connected [consensus clients](/developers/docs/nodes-and-clients/#consensus-clients). This required a new set of internal API methods, collectively known as the [Engine API](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md), to be activated. This was arguably the most significant upgrade in Ethereum history since [Homestead](#homestead)! - -- [Read the Paris upgrade specification](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/paris.md) - - - -
    -
  • EIP-3675Upgrade consensus to Proof-of-Stake
  • -
  • EIP-4399Supplant DIFFICULTY opcode with PREVRANDAO
  • -
- -
- ---- - -### Bellatrix {#bellatrix} - - - -#### Summary {#bellatrix-summary} - -The Bellatrix upgrade was the second scheduled upgrade for the [Beacon Chain](/roadmap/beacon-chain), preparing the chain for [The Merge](/roadmap/merge/). It brings validator penalties to their full values for inactivity and slashable offenses. Bellatrix also includes an update to the fork choice rules to prepare the chain for The Merge and the transition from the last proof-of-work block to the first proof-of-stake block. This includes making consensus clients aware of the [terminal total difficulty](/glossary/#terminal-total-difficulty) of 58750000000000000000000. - -- [Read the Bellatrix upgrade specification](https://github.com/ethereum/consensus-specs/tree/dev/specs/bellatrix) - ---- - -### Gray Glacier {#gray-glacier} - - - -#### Summary {#gray-glacier-summary} - -The Gray Glacier network upgrade pushed back the [difficulty bomb](/glossary/#difficulty-bomb) by three months. This is the only change introduced in this upgrade, and is similar in nature to the [Arrow Glacier](#arrow-glacier) and [Muir Glacier](#muir-glacier) upgrades. Similar changes have been performed on the [Byzantium](#byzantium), [Constantinople](#constantinople) and [London](#london) network upgrades. - -- [EF Blog - Gray Glacier Upgrade Announcement](https://blog.ethereum.org/2022/06/16/gray-glacier-announcement/) - - - -
    -
  • EIP-5133delays the difficulty bomb until September 2022
  • -
- -
- - - -## 2021 {#2021} - -### Arrow Glacier {#arrow-glacier} - - - -#### Summary {#arrow-glacier-summary} - -The Arrow Glacier network upgrade pushed back the [difficulty bomb](/glossary/#difficulty-bomb) by several months. This is the only change introduced in this upgrade, and is similar in nature to the [Muir Glacier](#muir-glacier) upgrade. Similar changes have been performed on the [Byzantium](#byzantium), [Constantinople](#constantinople) and [London](#london) network upgrades. - -- [EF Blog - Arrow Glacier Upgrade Announcement](https://blog.ethereum.org/2021/11/10/arrow-glacier-announcement/) -- [Ethereum Cat Herders - Ethereum Arrow Glacier Upgrade](https://medium.com/ethereum-cat-herders/ethereum-arrow-glacier-upgrade-e8d20fa4c002) - - - -
    -
  • EIP-4345delays the difficulty bomb until June 2022
  • -
- -
- ---- - -### Altair {#altair} - - - -#### Summary {#altair-summary} - -The Altair upgrade was the first scheduled upgrade for the [Beacon Chain](/roadmap/beacon-chain). It added support for "sync committees"—enabling light clients, and increased validator inactivity and slashing penalties as development progressed towards The Merge. - -- [Read the Altair upgrade specification](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) - -#### Fun fact! {#altair-fun-fact} - -Altair was the first major network upgrade that had an exact rollout time. Every upgrade prior had been based on a declared block number on the proof-of-work chain, where block times vary. The Beacon Chain does not require solving for proof-of-work, and instead works on a time-based epoch system consisting of 32 twelve-second "slots" of time where validators can propose blocks. This is why we knew exactly when we would hit epoch 74,240 and Altair became live! - -- [Block time](/developers/docs/blocks/#block-time) - ---- - -### London {#london} - - - -#### Summary {#london-summary} - -The London upgrade introduced [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559), which reformed the transaction fee market, along with changes to how gas refunds are handled and the [Ice Age](/glossary/#ice-age) schedule. - -- [Are you a dapp developer? Be sure to upgrade your libraries and tooling.](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/london-ecosystem-readiness.md) -- [Read the Ethereum Foundation announcement](https://blog.ethereum.org/2021/07/15/london-mainnet-announcement/) -- [Read the Ethereum Cat Herder's explainer](https://medium.com/ethereum-cat-herders/london-upgrade-overview-8eccb0041b41) - - - -
    -
  • EIP-1559improves the transaction fee market
  • -
  • EIP-3198returns the BASEFEE from a block
  • -
  • EIP-3529 - reduces gas refunds for EVM operations
  • -
  • EIP-3541 - prevents deploying contracts starting with 0xEF
  • -
  • EIP-3554delays the Ice Age until December 2021
  • -
- -
- ---- - -### Berlin {#berlin} - - - -#### Summary {#berlin-summary} - -The Berlin upgrade optimized gas cost for certain EVM actions, and increases support for multiple transaction types. - -- [Read the Ethereum Foundation announcement](https://blog.ethereum.org/2021/03/08/ethereum-berlin-upgrade-announcement/) -- [Read the Ethereum Cat Herder's explainer](https://medium.com/ethereum-cat-herders/the-berlin-upgrade-overview-2f7ad710eb80) - - - -
    -
  • EIP-2565lowers ModExp gas cost
  • -
  • EIP-2718enables easier support for multiple transaction types
  • -
  • EIP-2929gas cost increases for state access opcodes
  • -
  • EIP-2930adds optional access lists
  • -
- -
- - - -## 2020 {#2020} - -### Beacon Chain genesis {#beacon-chain-genesis} - - - -#### Summary {#beacon-chain-genesis-summary} - -The [Beacon Chain](/roadmap/beacon-chain/) needed 16384 deposits of 32 staked ETH to ship securely. This happened on November 27, meaning the Beacon Chain started producing blocks on December 1, 2020. This is an important first step in achieving the [Ethereum vision](/roadmap/vision/). - -[Read the Ethereum Foundation announcement](https://blog.ethereum.org/2020/11/27/eth2-quick-update-no-21/) - - - The Beacon Chain - - ---- - -### Staking deposit contract deployed {#staking-deposit-contract} - - - -#### Summary {#deposit-contract-summary} - -The staking deposit contract introduced [staking](/glossary/#staking) to the Ethereum ecosystem. Although a [Mainnet](/glossary/#mainnet) contract, it had a direct impact on the timeline for launching the [Beacon Chain](/roadmap/beacon-chain/), an important [Ethereum upgrade](/roadmap/). - -[Read the Ethereum Foundation announcement](https://blog.ethereum.org/2020/11/04/eth2-quick-update-no-19/) - - - Staking - - ---- - -### Muir Glacier {#muir-glacier} - - - -#### Summary {#muir-glacier-summary} - -The Muir Glacier fork introduced a delay to the [difficulty bomb](/glossary/#difficulty-bomb). Increases in block difficulty of the [proof-of-work](/developers/docs/consensus-mechanisms/pow/) consensus mechanism threatened to degrade the usability of Ethereum by increasing wait times for sending transactions and using dapps. - -- [Read the Ethereum Foundation announcement](https://blog.ethereum.org/2019/12/23/ethereum-muir-glacier-upgrade-announcement/) -- [Read the Ethereum Cat Herder's explainer](https://medium.com/ethereum-cat-herders/ethereum-muir-glacier-upgrade-89b8cea5a210) - - - -
    -
  • EIP-2384delays the difficulty bomb for another 4,000,000 blocks, or ~611 days.
  • -
- -
- - - -## 2019 {#2019} - -### Istanbul {#istanbul} - - - -#### Summary {#istanbul-summary} - -The Istanbul fork: - -- Optimised the [gas](/glossary/#gas) cost of certain actions in the [EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine). -- Improved denial-of-service attack resilience. -- Made [Layer 2 scaling](/developers/docs/scaling/#layer-2-scaling) solutions based on SNARKs and STARKs more performant. -- Enabled Ethereum and Zcash to interoperate. -- Allowed contracts to introduce more creative functions. - -[Read the Ethereum Foundation announcement](https://blog.ethereum.org/2019/11/20/ethereum-istanbul-upgrade-announcement/) - - - -
    -
  • EIP-152allow Ethereum to work with privacy-preserving currency like Zcash.
  • -
  • EIP-1108cheaper cryptography to improve gas costs.
  • -
  • EIP-1344protects Ethereum against replay attacks by adding CHAINID opcode.
  • -
  • EIP-1884optimising opcode gas prices based on consumption.
  • -
  • EIP-2028reduces the cost of CallData to allow more data in blocks – good for Layer 2 scaling.
  • -
  • EIP-2200other opcode gas price alterations.
  • -
- -
- ---- - -### Constantinople {#constantinople} - - - -#### Summary {#constantinople-summary} - -The Constantinople fork: - -- Reduced block [mining](/developers/docs/consensus-mechanisms/pow/mining/) rewards from 3 to 2 ETH. -- Ensured the blockchain didn't freeze before [proof-of-stake was implemented](#beacon-chain-genesis). -- Optimised the [gas](/glossary/#gas) cost of certain actions in the [EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine). -- Added the ability to interact with addresses that haven't been created yet. - -[Read the Ethereum Foundation announcement](https://blog.ethereum.org/2019/02/22/ethereum-constantinople-st-petersburg-upgrade-announcement/) - - - -
    -
  • EIP-145optimises cost of certain on-chain actions.
  • -
  • EIP-1014allows you to interact with addresses that have yet to be created.
  • -
  • EIP-1052optimises cost of certain on-chain actions.
  • -
  • EIP-1234makes sure the blockchain doesn't freeze before proof-of-stake and reduces block reward from 3 to 2 ETH.
  • -
- -
- - - -## 2017 {#2017} - -### Byzantium {#byzantium} - - - -#### Summary {#byzantium-summary} - -The Byzantium fork: - -- Reduced block [mining](/developers/docs/consensus-mechanisms/pow/mining/) rewards from 5 to 3 ETH. -- Delayed the [difficulty bomb](/glossary/#difficulty-bomb) by a year. -- Added ability to make non-state-changing calls to other contracts. -- Added certain cryptography methods to allow for [layer 2 scaling](/developers/docs/scaling/#layer-2-scaling). - -[Read the Ethereum Foundation announcement](https://blog.ethereum.org/2017/10/12/byzantium-hf-announcement/) - - - -
    -
  • EIP-140adds REVERT opcode.
  • -
  • EIP-658status field added to transaction receipts to indicate success or failure.
  • -
  • EIP-196adds elliptic curve and scalar multiplication to allow for ZK-Snarks.
  • -
  • EIP-197adds elliptic curve and scalar multiplication to allow for ZK-Snarks.
  • -
  • EIP-198enables RSA signature verification.
  • -
  • EIP-211adds support for variable length return values.
  • -
  • EIP-214adds STATICCALL opcode, allowing non-state-changing calls to other contracts.
  • -
  • EIP-100changes difficulty adjustment formula.
  • -
  • EIP-649delays difficulty bomb by 1 year and reduces block reward from 5 to 3 ETH.
  • -
- -
- - - -## 2016 {#2016} - -### Spurious Dragon {#spurious-dragon} - - - -#### Summary {#spurious-dragon-summary} - -The Spurious Dragon fork was the second response to the denial of service (DoS) attacks on the network (September/October 2016) including: - -- tuning opcode pricing to prevent future attacks on the network. -- enabling “debloat” of the blockchain state. -- adding replay attack protection. - -[Read the Ethereum Foundation announcement](https://blog.ethereum.org/2016/11/18/hard-fork-no-4-spurious-dragon/) - - - -
    -
  • EIP-155prevents transactions from one Ethereum chain from being rebroadcasted on an alternative chain, for example a testnet transaction being replayed on the main Ethereum chain.
  • -
  • EIP-160adjusts prices of EXP opcode – makes it more difficult to slow down the network via computationally expensive contract operations.
  • -
  • EIP-161allows for removal of empty accounts added via the DOS attacks.
  • -
  • EIP-170changes the maximum code size that a contract on the blockchain can have – to 24576 bytes.
  • -
- -
- ---- - -### Tangerine whistle {#tangerine-whistle} - - - -#### Summary {#tangerine-whistle-summary} - -The Tangerine Whistle fork was the first response to the denial of service (DoS) attacks on the network (September/October 2016) including: - -- addressing urgent network health issues concerning underpriced operation codes. - -[Read the Ethereum Foundation announcement](https://blog.ethereum.org/2016/10/18/faq-upcoming-ethereum-hard-fork/) - - - -
    -
  • EIP-150increases gas costs of opcodes that can be used in spam attacks.
  • -
  • EIP-158reduces state size by removing a large number of empty accounts that were put in the state at very low cost due to flaws in earlier versions of the Ethereum protocol.
  • -
- -
- ---- - -### DAO fork {#dao-fork} - - - -#### Summary {#dao-fork-summary} - -The DAO fork was in response to the [2016 DAO attack](https://www.coindesk.com/learn/understanding-the-dao-attack/) where an insecure [DAO](/glossary/#dao) contract was drained of over 3.6 million ETH in a hack. The fork moved the funds from the faulty contract to a [new contract](https://etherscan.io/address/0xbf4ed7b27f1d666546e30d74d50d173d20bca754) with a single function: withdraw. Anyone who lost funds could withdraw 1 ETH for every 100 DAO tokens in their wallets. - -This course of action was voted on by the Ethereum community. Any ETH holder was able to vote via a transaction on [a voting platform](https://web.archive.org/web/20170620030820/http://v1.carbonvote.com/). The decision to fork reached over 85% of the votes. - -Some miners refused to fork because the DAO incident wasn't a defect in the protocol. They went on to form [Ethereum Classic](https://ethereumclassic.org/). - -[Read the Ethereum Foundation announcement](https://blog.ethereum.org/2016/07/20/hard-fork-completed/) - ---- - -### Homestead {#homestead} - - - -#### Summary {#homestead-summary} - -The Homestead fork that looked to the future. It included several protocol changes and a networking change that gave Ethereum the ability to do further network upgrades. - -[Read the Ethereum Foundation announcement](https://blog.ethereum.org/2016/02/29/homestead-release/) - - - -
    -
  • EIP-2makes edits to contract creation process.
  • -
  • EIP-7adds new opcode: DELEGATECALL
  • -
  • EIP-8introduces devp2p forward compatibility requirements
  • -
- -
- - - -## 2015 {#2015} - -### Frontier thawing {#frontier-thawing} - - - -#### Summary {#frontier-thawing-summary} - -The frontier thawing fork lifted the 5,000 [gas](/glossary/#gas) limit per [block](/glossary/#block) and set the default gas price to 51 [gwei](/glossary/#gwei). This allowed for transactions – transactions require 21,000 gas. The [difficulty bomb](/glossary/#difficulty-bomb) was introduced to ensure a future hard-fork to [proof-of-stake](/glossary/#pos). - -- [Read the Ethereum Foundation announcement](https://blog.ethereum.org/2015/08/04/the-thawing-frontier/) -- [Read the Ethereum Protocol Update 1](https://blog.ethereum.org/2015/08/04/ethereum-protocol-update-1/) - ---- - -### Frontier {#frontier} - - - -#### Summary {#frontier-summary} - -Frontier was a live, but barebone implementation of the Ethereum project. It followed the successful Olympic testing phase. It was intended for technical users, specifically developers. [Blocks](/glossary/#block) had a [gas](/glossary/#gas) limit of 5,000. This ‘thawing’ period enabled miners to start their operations and for early adopters to install their clients without having to ‘rush’. - -[Read the Ethereum Foundation announcement](https://blog.ethereum.org/2015/07/22/frontier-is-coming-what-to-expect-and-how-to-prepare/) - - - -## 2014 {#2014} - -### Ether sale {#ether-sale} - - - -Ether officially went on sale for 42 days. You could buy it with BTC. - -[Read the Ethereum Foundation announcement](https://blog.ethereum.org/2014/07/22/launching-the-ether-sale/) - ---- - -### Yellowpaper released {#yellowpaper} - - - -The Yellow Paper, authored by Dr. Gavin Wood, is a technical definition of the Ethereum protocol. - -[View the Yellow Paper](https://github.com/ethereum/yellowpaper) - - - -## 2013 {#2013} - -### Whitepaper released {#whitepaper} - - - -The introductory paper, published in 2013 by Vitalik Buterin, the founder of Ethereum, before the project's launch in 2015. - - - Whitepaper - diff --git a/src/content/nft/index.md b/src/content/nft/index.md deleted file mode 100644 index ed28603da29..00000000000 --- a/src/content/nft/index.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -title: Non-fungible tokens (NFT) -description: An overview of NFTs on Ethereum -lang: en -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../assets/infrastructure_transparent.png -alt: An Eth logo being displayed via hologram. -summaryPoint1: A way to represent anything unique as an Ethereum-based asset. -summaryPoint2: NFTs are giving more power to content creators than ever before. -summaryPoint3: Powered by smart contracts on the Ethereum blockchain. ---- - -## What are NFTs? {#what-are-nfts} - -NFTs are tokens that are individually unique. Each NFT has different properties (non-fungible) and is provably scarce. This is different from tokens such as ETH or other Ethereum based tokens like USDC where every token is identical and has the same properties ('fungible'). You don't care which specific dollar bill (or ETH) you have in your wallet, because they are all identical and worth the same. However, you _do_ care which specific NFT you own, because they all have individual properties that distinguish them from others ('non-fungible'). - -The uniqueness of each NFT enables tokenization of things like art, collectibles, or even real estate, where one specific unique NFT represents some specific unique real world or digital item. Ownership of an asset is publicly verifiable on Ethereum blockchain. - - - -## The internet of assets {#internet-of-assets} - -NFTs and Ethereum solve some of the problems that exist on the internet today. As everything becomes more digital, there's a need to replicate the properties of physical items like scarcity, uniqueness, and proof of ownership in a way that isn't controlled by a central organization. For example, with NFTs, you can own a music mp3 file across all Ethereum based apps and not be bound to one company's specific music app like Spotify or Apple Music. You can own a social media handle that you can sell or swap, but can't be arbitrarily taken away from you by a platform provider. - -Here's how an internet of NFTs compared to the internet most of us use today looks... - -### A comparison {#nft-comparison} - -| An NFT internet | The internet today | -| ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | -| You own your assets! Only you can sell or swap them. | You rent an asset from some organization and it can be taken away from you. | -| NFTs are digitally unique, no two NFTs are the same. | A copy of an entity often cannot be distinguished from the original. | -| Ownership of an NFT is stored on the blockchain for anyone to verify. | Ownership records of digital items are stored on servers controlled by institutions – you must take their word for it. | -| NFTs are smart contracts on Ethereum. This means they can easily be used in other smart contracts and apps on Ethereum! | Companies with digital items usually require their own "walled garden" infrastructure. | -| Content creators can sell their work anywhere and can access a global market. | Creators rely on the infrastructure and distribution of the platforms they use. These are often subject to terms of use and geographical restrictions. | -| NFT creators can retain ownership rights over their own work, and program royalties directly into the NFT contract. | Platforms, such as music streaming services, retain the majority of profits from sales. | - -## What are NFTs used for? {#nft-use-cases} - -NFTs are used for many things, including: - -- proving that you attended an event -- certify that you completed a course -- ownable items for games -- digital art -- tokenizing real-world assets -- proving your online identity -- gating access to content -- ticketing -- decentralized internet domain names -- collateral in DeFi - -Maybe you are an artist that wants to share their work using NFTs, without losing control and sacrificing your profits to intermediaries. You can create a new contract and specify the number of NFTs, their properties and a link to some specific artwork. As the artist, you can program into the smart contract the royalties you should be paid (e.g. transfer 5% of the sale price to the contract owner each time an NFT is transferred). You can also always prove that you created the NFTs because you own the wallet that deployed the contract. Your buyers can easily prove that they own an authentic NFT from your collection because their wallet address is associated with a token in your smart contract. They can use it across the Ethereum ecosystem, confident in its authenticity. - -Or consider a ticket to a sporting event. Just as an organizer of an event can choose how many tickets to sell, the creator of an NFT can decide how many replicas exist. Sometimes these are exact replicas, such as 5000 General Admission tickets. Sometimes several are minted that are very similar, but each slightly different, such as a ticket with an assigned seat. These can be bought and sold peer-to-peer without paying ticket handlers and the buyer always with assurance of the ticket authenticity by checking the contract address. - -On ethereum.org, NFTs are used to demonstrate that people have meaningfully contributed to our Github repository (programmed the website, written or modified an article...), translated our content, or attended our community calls, and we've even got our own NFT domain name. If you contribute to ethereum.org, you can claim a POAP NFT. Some crypto meetups have used POAPs as tickets. [More on contributing](/contributing/#poap). - -![ethereum.org POAP](./poap.png) - -This website also has an alternative domain name powered by NFTs, **ethereum.eth**. Our `.org` address is centrally managed by a domain name system (DNS) provider, whereas ethereum`.eth` is registered on Ethereum via the Ethereum Name Service (ENS). And it's owned and managed by us. [Check our ENS record](https://app.ens.domains/name/ethereum.eth) - -[More on ENS](https://app.ens.domains) - - - -## How do NFTs work? {#how-nfts-work} - -NFTs, like any digital items on the Ethereum blockchain, are created through a special Ethereum based computer program called a "smart contract." These contracts follow certain rules, like the ERC-721 or ERC-1155 standards, which determine what the contract can do. - -The NFT smart contract can do a few key things: - -- **Create NFTs:** It can make new NFTs. -- **Assign Ownership:** It keeps track of who owns which NFTs by linking them to specific Ethereum addresses. -- **Give Each NFT an ID:** Each NFT has a number that makes it unique. Additionally, there's usually some information (metadata) attached to it, describing what the NFT represents. - -When someone "creates" or "mints" an NFT, they're basically telling the smart contract to give them ownership of a particular NFT. This information is securely and publicly stored in the blockchain. - -Furthermore, the creator of the contract can add extra rules. They might limit how many of a certain NFT can be made or decide that they should get a small royalty fee whenever the NFT changes hands. - -### NFT security {#nft-security} - -Ethereum's security comes from proof-of-stake. The system is designed to economically disincentivize malicious actions, making Ethereum tamper-proof. This is what makes NFTs possible. Once the block containing your NFT transaction becomes finalized it would cost an attacker millions of ETH to change it. Anyone running Ethereum software would immediately be able to detect dishonest tampering with an NFT, and the bad actor would be economically penalized and ejected. - -Security issues relating to NFTs are most often related to phishing scams, smart contract vulnerabilities or user errors (such as inadvertently exposing private keys), making good wallet security critical for NFT owners. - - - More on security - - -## Further reading {#further-reading} - -- [A beginner's guide to NFTs](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, January 2020_ -- [EtherscanNFT tracker](https://etherscan.io/nft-top-contracts) -- [ERC-721 token standard](/developers/docs/standards/tokens/erc-721/) -- [ERC-1155 token standard](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/refi/index.md b/src/content/refi/index.md deleted file mode 100755 index fb768f0722b..00000000000 --- a/src/content/refi/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: Regenerative Finance (ReFi) -description: An overview of ReFi and its current use cases. -lang: en -template: use-cases -emoji: ":recycle:" -sidebarDepth: 2 -image: ../../assets/future_transparent.png -alt: "" -summaryPoint1: An alternative economic system built on regenerative principles -summaryPoint2: An attempt to harness Ethereum to solve global-level coordination crises such as climate change -summaryPoint3: A tool to drastically scale ecological benefit assets like verified carbon credits ---- - -## What is ReFi? {#what-is-refi} - -**Regenerative finance (ReFi)** is a set of tools and ideas built on top of blockchains, that aim to create economies which are regenerative, rather than extractive or exploitative. Eventually, extractive systems deplete the resources available and collapse; without regenerative mechanisms, they lack resilience. ReFi operates on the assumption that the creation of monetary value must be decoupled from the unsustainable extraction of resources from our planet and communities. - -Instead, ReFi aims to solve environmental, communal, or social problems by creating regenerative cycles. These systems create value for participants while simultaneously benefiting ecosystems and communities. - -One of the foundations of ReFi is the concept of regenerative economics pioneered by John Fullerton of the Capital Institute. He proposed [eight interconnected principles](https://capitalinstitute.org/8-principles-regenerative-economy/) that underlie systemic health: - -![Eight interconnected principles](../../assets/use-cases/refi-regenerative-economy-diagram.png) - -ReFi projects realize these principles using [smart contracts](/developers/docs/smart-contracts/) and [decentralized finance (DeFi)](/defi/) applications to incentivize regenerative behaviors, e.g. restoring degraded ecosystems, and facilitate large-scale collaboration on global issues such as climate change and biodiversity loss. - -ReFi also overlaps with the [decentralized science (DeSci)](/desci/) movement, which uses Ethereum as a platform to finance, create, review, credit, store, and disseminate scientific knowledge. DeSci tools could become useful for developing verifiable standards and practices for implementing and monitoring regenerative activities like planting trees, removing plastic from the ocean, or restoring a degraded ecosystem. - -## Tokenization of carbon credits {#tokenization-of-carbon-credits} - -The **[voluntary carbon market (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** is a mechanism for funding projects that make a verified positive impact on carbon emissions, either reducing ongoing emissions, or removing greenhouse gases already emitted from the atmosphere. These projects receive an asset called "carbon credits" after they are verified, which they can sell to individuals and organizations who want to support climate action. - -In addition to the VCM, there are also several government-mandated carbon markets (‘compliance markets’) that aim to establish a carbon price via laws or regulations within a particular jurisdiction (e.g. country or region), controlling the supply of permits to be distributed. Compliance markets incentivize polluters within their jurisdiction to reduce emissions, but they are not capable of removing greenhouse gases which have already been emitted. - -Despite its development over recent decades, the VCM continues to suffer from a variety of issues: - -1. Highly fragmented liquidity -2. Opaque transaction mechanisms -3. High fees -4. Very slow trading speed -5. Lack of scalability - -Transitioning the VCM to the new blockchain-based **digital carbon market (DCM)** might be an opportunity to upgrade the existing technology for validating, transacting and consuming carbon credits. Blockchains allow for publicly verifiable data, access for a broad range of users, and more liquidity. - -ReFi projects employ blockchain technology to alleviate many of the problems of the traditional market: - -- **Liquidity is concentrated in a small number of liquidity pools** that can be freely traded by anyone. Large organizations as well as individual users can use these pools without manual searches for sellers/buyers, participation fees, or prior registration. -- **All transactions are recorded on public blockchains**. The path each carbon credit takes due to trading activity is traceable forever as soon as it is made available in the DCM. -- **Transaction speed is nearly instant**. Securing large amounts of carbon credits via the legacy markets can take days or weeks, but this can be achieved in a few seconds in the DCM. -- **Trading activity occurs without intermediaries**, which charge high fees. Digital carbon credits represent a [62% cost improvement compared to equivalent traditional credits](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne), according to data from one analytics firm. -- **The DCM is scalable** and can meet the demands of individuals and multinational corporations alike. - -### Key components of the DCM {#key-components-dcm} - -Four major components make up the current landscape of the DCM: - -1. Registries such as [Verra](https://verra.org/project/vcs-program/registry-system/) and [Gold Standard](https://www.goldstandard.org/) make sure that projects creating carbon credits are reliable. They also operate the databases in which digital carbon credits originate and can be transferred or used up (retired). - -There is a new wave of innovative projects being built on blockchains that are attempting to disrupt incumbents in this sector. - -2. Carbon bridges, a.k.a. tokenizers, provide technology to represent or transfer carbon credits from traditional registries into the DCM. Notable examples include [Toucan Protocol](https://toucan.earth/), [C3](https://c3.app/), and [Moss.Earth](https://moss.earth/). -3. Integrated services offer carbon avoidance and/or removal credits to end-users so they can claim the environmental benefit of a credit and share their support of climate action with the world. - -Some such as [Klima Infinity](https://www.klimadao.finance/infinity) and [Senken](https://senken.io/) offer a wide variety of projects developed by third parties and issued under established standards like Verra; others like [Nori](https://nori.com/) only offer specific projects developed under their own carbon credit standard, which they issue and for which they have their own dedicated marketplace. - -4. The underlying rails and infrastructure that facilitate the scaling up of the impact and efficiency of the carbon market’s entire supply chain. [KlimaDAO](http://klimadao.finance/) supplies liquidity as a public good (allowing anyone to buy or sell carbon credits at a transparent price), incentivizes increased throughput of carbon markets and retirements with rewards, and provides user-friendly interoperable tooling to access data about, as well as acquire and retire, a wide variety of tokenized carbon credits. - -## ReFi beyond carbon markets {#refi-beyond} - -Although there is currently a strong emphasis on carbon markets in general and transitioning the VCM to the DCM in particular within the space, the term “ReFi” is not strictly limited to carbon. Other environmental assets beyond carbon credits can be developed and tokenized, which will mean other negative externalities can also be priced within the base layers of future economic systems. Moreover, the regenerative aspect of this economic model can be applied to other areas, such as the funding of public goods via quadratic funding platforms like [Gitcoin](https://gitcoin.co/). Organizations that are built on the idea of open participation and equitable distribution of resources empower everyone to funnel money to open-source software projects, as well as educational, environmental, and community-driven projects. - -By shifting the direction of capital away from extractive practices toward a regenerative flow, projects and companies that provide social, environmental, or communal benefits—and which might fail to achieve funding in traditional finance—can get off the ground and generate positive externalities for society much more quickly and easily. Transitioning to this model of funding also opens the door to much more inclusive economic systems, where people of all demographics can become active participants rather than merely passive observers. ReFi offers a vision of Ethereum as a mechanism for coordinating action on existential challenges facing our species and all life on our planet—as the base layer of a new economic paradigm, enabling a more inclusive and sustainable future for centuries to come. - -## Additional reading on ReFi - -- [A high-level overview of carbon currencies and their place in the economy](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) -- [The Ministry for the Future, a novel depicting the role of a carbon-backed currency in fighting climate change](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) -- [A detailed report by the Taskforce for Scaling Voluntary Carbon Markets](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) -- [Kevin Owocki and Evan Miyazono’s CoinMarketCap Glossary entry on ReFi](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/roadmap/beacon-chain/index.md b/src/content/roadmap/beacon-chain/index.md deleted file mode 100644 index a952d18c2d1..00000000000 --- a/src/content/roadmap/beacon-chain/index.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: The Beacon Chain -description: Learn about the Beacon Chain - the upgrade that introduced proof-of-stake Ethereum. -lang: en -template: upgrade -image: ../../../assets/upgrades/core.png -summaryPoint1: The Beacon Chain introduced proof-of-stake to the Ethereum ecosystem. -summaryPoint2: It was merged with the original Ethereum proof-of-work chain in September 2022. -summaryPoint3: The Beacon Chain introduced the consensus logic and block gossip protocol which now secures Ethereum. ---- - - - The Beacon Chain shipped on December 1, 2020, and formalized proof-of-stake as Ethereum's consensus mechanism with The Merge upgrade on September 15, 2022. - - -## What is the Beacon Chain? {#what-is-the-beacon-chain} - -The Beacon Chain is the name of the original proof-of-stake blockchain that was launched in 2020. It was created to ensure the proof-of-stake consensus logic was sound and sustainable before enabling it on Ethereum Mainnet. Therefore, it ran alongside the original proof-of-work Ethereum. The Beacon Chain was a chain of 'empty' blocks, but switching off proof-of-work and switching on proof-of-stake on Ethereum required instructing the Beacon Chain to accept transaction data from execution clients, bundle them into blocks and then organize them into a blockchain using a proof-of-stake-based consensus mechanism. At the same moment, the original Ethereum clients turned off their mining, block propagation and consensus logic, handing that all over to the Beacon Chain. This event was known as [The Merge](/roadmap/merge/). Once The Merge happened, there were no longer two blockchains. Instead, there was just one proof-of-stake Ethereum, which now requires two different clients per node. The Beacon Chain is now the consensus layer, a peer-to-peer network of consensus clients that handles block gossip and consensus logic, while the original clients form the execution layer, which is responsible for gossiping and executing transactions, and managing Ethereum's state. The two layers can communicate with one another using the Engine API. - -## What does the Beacon Chain do? {#what-does-the-beacon-chain-do} - -The Beacon Chain is the name given to a ledger of accounts that conducted and coordinated the network of Ethereum [stakers](/staking/) before those stakers started validating real Ethereum blocks. It does not process transactions or handle smart contract interactions though because that is being done in the execution layer. -The Beacon Chain is responsible for things like block and attestation handling, running the fork choice algorithm, and managing rewards and penalties. -Read more on our [node architecture page](/developers/docs/nodes-and-clients/node-architecture/#node-comparison). - -## Beacon Chain impact {#beacon-chain-features} - -### Introducing staking {#introducing-staking} - -The Beacon Chain introduced [proof-of-stake](/developers/docs/consensus-mechanisms/pos/) to Ethereum. This keeps Ethereum secure and earns validators more ETH in the process. In practice, staking involves staking ETH in order to activate validator software. As a staker, you run the software that creates and validates new blocks in the chain. - -Staking serves a similar purpose that [mining](/developers/docs/mining/) used to, but is different in many ways. Mining required large up-front expenditures in the form of powerful hardware and energy consumption, resulting in economies of scale, and promoting centralization. Mining also did not come with any requirement to lock up assets as collateral, limiting the protocol's ability to punish bad actors after an attack. - -The transition to proof-of-stake made Ethereum significantly more secure and decentralized by comparison to proof-of-work. The more people that participate in the network, the more decentralized and safe from attacks it becomes. - -And using proof-of-stake as consensus mechanism is a foundational component for [the secure, environmentally friendly and scalable Ethereum we have now](/roadmap/vision/). - - - If you're interested in becoming a validator and helping secure Ethereum, learn more about staking. - - -### Setting up for sharding {#setting-up-for-sharding} - -Since the Beacon Chain merged with the original Ethereum Mainnet, the Ethereum community started looking to scaling the network. - -Proof-of-stake has the advantage of having a registry of all approved block producers at any given time, each with ETH at stake. This registry sets the stage for the ability to divide and conquer but reliably split up specific network responsibilities. - -This responsibility is in contrast to proof-of-work, where miners have no obligation to the network and could stop mining and turn their node software off permanently in an instant without repercussion. There is also no registry of known block proposers and no reliable way to split network responsibilities safely. - -[More on sharding](/roadmap/danksharding/) - -## Relationship between upgrades {#relationship-between-upgrades} - -The Ethereum upgrades are all somewhat interrelated. So let’s recap how the Beacon Chain affects the other upgrades. - -### Beacon Chain and The Merge {#merge-and-beacon-chain} - -At first, The Beacon Chain existed separately from Ethereum Mainnet, but they were merged in 2022. - - - The Merge - - -### Shards and the Beacon Chain {#shards-and-beacon-chain} - -Sharding can only safely enter the Ethereum ecosystem with a proof-of-stake consensus mechanism in place. The Beacon Chain introduced staking, which 'merged' with Mainnet, paving the way for sharding to help further scale Ethereum. - - - Shard chains - - -## Further Reading - -- [More on Ethereum's future upgrades](/roadmap/vision) -- [More on node architecture](/developers/docs/nodes-and-clients/node-architecture) -- [More of proof-of-stake](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/roadmap/future-proofing/index.md b/src/content/roadmap/future-proofing/index.md deleted file mode 100644 index c02d8d94de0..00000000000 --- a/src/content/roadmap/future-proofing/index.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: Future-proofing Ethereum -description: These upgrades cement Ethereum as the resilient, decentralized base layer for the future, whatever it may hold. -lang: en -image: ../../../assets/roadmap/roadmap-future.png -alt: "Ethereum roadmap" -template: roadmap ---- - -Some parts of the roadmap are not necessarily required for scaling or securing Ethereum in the near-term, but set Ethereum up for stability and reliability far into the future. - -## Quantum resistance {#quantum-resistance} - -Some of the cryptography securing present-day Ethereum will be compromised when quantum computing becomes a reality. Although quantum computers are probably decades away from being a genuine threat to modern cryptography, Ethereum is being built to be secure for centuries to come. This means making [Ethereum quantum resistant](https://consensys.net/blog/developers/how-will-quantum-supremacy-affect-blockchain/) as soon as possible. - -The challenge facing Ethereum developers is that the current proof-of-stake protocol relies upon a very efficient signature scheme known as BLS to aggregate votes on valid blocks. This signature scheme is broken by quantum computers, but the quantum resistant alternatives are not as efficient. - -The [“KZG” commitment schemes](/roadmap/danksharding/#what-is-kzg) used in several places across Ethereum to generate cryptographic secrets are known to be quantum-vulnerable. Currently, this is circumvented using “trusted setups” where many users generate randomness that cannot be reverse-engineered by a quantum computer. However, the ideal solution would simply be to incorporate quantum safe cryptography instead. There are two leading approaches that could become efficient replacements for the BLS scheme: [STARK-based](https://hackmd.io/@vbuterin/stark_aggregation) and [lattice-based](https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-lattice-encryption-326ac66e3175) signing. These are still being researched and prototyped. - - Read about KZG and trusted setups - -## Simpler and more efficient Ethereum {#simpler-more-efficient-ethereum} - -Complexity creates opportunities for bugs or vulnerabilities that can be exploited by attackers. Therefore, part of the roadmap is simplifying Ethereum and removing code that has hung around through various upgrades but is no longer needed or can now be improved upon. A leaner, simpler codebase is easier for developers to maintain and reason about. - -There are several updates that will be made to the [Ethereum Virtual Machine (EVM)](/developers/docs/evm) to make it simpler and more efficient. These include [removing the SELFDESTRUCT opcode](https://hackmd.io/@vbuterin/selfdestruct) - a rarely used command that is no longer needed and in some circumstances can be dangerous to use, especially when combined with other future upgrades to Ethereum’s storage model. Ethereum clients also still support some old transaction types that can now be completely removed. The way gas is calculated can also be improved and more efficient methods for the arithmetic underpinning some cryptographic operations can be brought in. - -Similarly, there are updates that can be made to other parts of present-day Ethereum clients. One example is that current execution and consensus clients use a different type of data compression. It will be much easier and more intuitive to share data between clients when the compression scheme is unified across the whole network. - -## Current progress {#current-progress} - -Most of the upgrades required for future-proofing Ethereum are still in the research phase and may be several years away from being implemented. Upgrades such as removing SELF-DESTRUCT and harmonizing the compression scheme used in the execution and consensus clients are likely to come sooner than quantum resistant cryptography. - -**Further reading** - -- [Gas](/developers/docs/gas) -- [EVM](/developers/docs/evm) -- [Data structures](/developers/docs/data-structures-and-encoding) diff --git a/src/content/roadmap/index.md b/src/content/roadmap/index.md deleted file mode 100644 index c32faad7c0f..00000000000 --- a/src/content/roadmap/index.md +++ /dev/null @@ -1,117 +0,0 @@ ---- -title: Ethereum roadmap -description: The path to more scalability, security and sustainability for Ethereum. -lang: en -template: roadmap -image: ../../assets/heroes/roadmap-hub-hero.jpg -alt: "Ethereum roadmap" -summaryPoints: -buttons: - - label: Further upgrades - toId: what-changes-are-coming - - label: Past upgrades - to: /history/ - variant: outline ---- - -Ethereum is already a powerful platform for global coordination, but it is still being improved. An ambitious set of improvements will upgrade Ethereum from its current form into a fully scaled, maximally resilient platform. These upgrades are laid out in the Ethereum roadmap. - -**To learn about previous upgrades to Ethereum, please visit our [History](/history/) page** - -## What changes are coming to Ethereum? {#what-changes-are-coming} - -The Ethereum roadmap outlines the specific improvements that will be made to protocol in the future. Overall, the roadmap will bring the following benefits to Ethereum users: - - - - - - - - -## Why does Ethereum need a roadmap? {#why-does-ethereum-need-a-roadmap} - -Ethereum gets regular upgrades that enhance its scalability, security, or sustainability. One of Ethereum's core strengths is adapting as new ideas emerge from research and development. Adaptability gives Ethereum the flexibility to tackle emerging challenges and keep up with the most advanced technological breakthroughs. - - - -The roadmap is mostly the result of years of work by researchers and developers - because the protocol is very technical - but any motivated person can participate. Ideas usually start off as discussions on a forum such as [ethresear.ch](https://ethresear.ch/), [Ethereum magicians](https://ethereum-magicians.org/) or the Eth R&D discord server. They may be responses to new vulnerabilities that are discovered, suggestions from organizations working in the application layer (such as dapps and exchanges) or from known frictions for end users (such as costs or transaction speeds). When these ideas mature, they can be proposed as [Ethereum Improvement Proposals](https://eips.ethereum.org/). This is all done in public so that anyone from the community can weigh in at any time. - -[More on Ethereum governance](/governance/) - - - - -

What was ETH2?

- -

The term 'Eth2' was commonly used to describe the future of Ethereum before the switch to proof-of-stake but it was phased out in favor of more precise terminology. It was originally used to differentiate the Ethereum network before the switch to proof-of-stake and the network after, or sometimes to refer to the different Ethereum clients (execution clients were sometimes referred to as ETH1 clients and consensus clients were sometimes referred to as ETH2 clients).

- -
- -## Will Ethereum's roadmap change over time? {#will-ethereums-roadmap-change-over-time} - -Yes—almost definitely. The roadmap is the current plan for upgrading Ethereum, covering both near-term and future plans. We expect the roadmap to change as new information and technology become available. - -Think of Ethereum's roadmap as a set of intentions for improving Ethereum; it is the core researchers' and developers' best hypothesize of Ethereum's most optimal path forward. - -## When will the roadmap be finished? {#when-will-the-roadmap-be-finished} - -Ethereum will implement some upgrades in the next six months (e.g. staking withdrawals); others are lower priority and likely not to be implemented for the next 5-10 years (e.g. quantum resistance). Giving precise timing of each upgrade is complicated to predict as many roadmap items are worked on in parallel and developed at different speeds. The urgency of an upgrade can also change over time depending on external factors (e.g. a sudden leap in the performance and availability of quantum computers may make quantum-resistant cryptography more urgent). - -One way to think about Ethereum development is by analogy to biological evolution. A network that is able to adapt to new challenges and maintain fitness is more likely to succeed that one that is resistant to change, although as the network becomes more and more performant, scalable and secure fewer changes to the protocol will be required. - -## Do I have to do anything when there is an upgrade? {#do-i-have-to-do-anything-when-there-is-an-upgrade} - -Upgrades tend not to impact end-users except by providing better user-experiences and a more secure protocol and perhaps more options for how to interact with Ethereum. End uses are not required to actively participate in an upgrade, nor are they required to do anything to secure their assets. Node operators will need to update their clients to prepare for an upgrade. Some upgrades may lead to changes for application developers. For example, history expiry upgrades may lead application developers to grab historical data from new sources. - -## What about The Verge, The Splurge, etc? {#what-about-the-verge-splurge-etc} - -[Vitalik Buterin proposed a vision for the Ethereum roadmap](https://twitter.com/VitalikButerin/status/1588669782471368704) that was organized into several categories linked by their effects on Ethereum's architecture. It included: - -- The Merge: upgrades relating to the switch from proof-of-work to proof-of-stake -- The Surge: upgrades related to scalability by rollups and data sharding -- The Scourge: upgrades related to censorship resistance, decentralization and protocol risks from MEV -- The Verge: upgrades related to verifying blocks more easily -- The Purge: upgrades related to reducing the computational costs of running nodes and simplifying the protocol -- The Splurge: other upgrades that don't fit well into the previous categories. - -We decided not to use this terminology because we wanted to use a simpler and more user-centric model. Although we use user-centric language, the vision remains the same as the one proposed by Vitalik. - -## What about sharding? {#what-about-sharding} - -Sharding is splitting up the Ethereum blockchain so that subsets of validators are only responsible for a fraction of the total data. This was originally intended to be the way for Ethereum to scale. However, layer 2 rollups have developed much faster than expected and have provided a lot of scaling already, and will provide much more after Proto-Danksharding is implemented. This means "shard chains" are no longer needed and have been dropped from the roadmap. - -## Looking for specific technical upgrades? {#looking-for-specific-technical-upgrades} - -- [Danksharding](/roadmap/danksharding) - Danksharding makes layer 2 rollups much cheaper for users by adding “blobs” of data to Ethereum blocks. -- [Staking withdrawals](/staking/withdrawals) - The Shanghai/Capella upgrade enabled staking withdrawals on Ethereum, allowing people to unlock their staked ETH. -- [Single slot finality](/roadmap/single-slot-finality) - Instead of waiting for fifteen minutes, blocks could get proposed and finalized in the same slot. This is more convenient for apps and much more difficult to attack. -- [Proposer-builder separation](/roadmap/pbs) - Splitting the block building and block proposal tasks across separate validators creates a fairer, more censorship resistant and efficient way for Ethereum to come to consensus. -- [Secret leader election](/roadmap/secret-leader-election) - Clever cryptography can be used to ensure that the identity of the current block proposer is not made public, protecting them from certain types of attack. -- [Account abstraction](/roadmap/account-abstraction) - Account abstraction is a class of upgrades that support smart contract wallets natively on Ethereum, rather than having to use complex middleware. -- [Verkle trees](/roadmap/verkle-trees) - Verkle trees are a data structure that can be used to enable stateless clients on Ethereum. These “stateless” clients will require a tiny amount of storage space but will still be able to verify new blocks. -- [Statelessness](/roadmap/statelessness) - Stateless clients will be able to verify new blocks without having to store large amounts of data. This will provide all the benefits of running a node with only a tiny fraction of today’s costs. diff --git a/src/content/roadmap/merge/index.md b/src/content/roadmap/merge/index.md deleted file mode 100644 index 5e7a80c1699..00000000000 --- a/src/content/roadmap/merge/index.md +++ /dev/null @@ -1,229 +0,0 @@ ---- -title: The Merge -description: Learn about The Merge - when Mainnet Ethereum adopted proof-of-stake. -lang: en -template: upgrade -image: ../../../assets/upgrades/merge.png -summaryPoint1: Ethereum Mainnet uses proof-of-stake, but this wasn't always the case. -summaryPoint2: The upgrade from the original proof-of-work mechanism to proof-of-stake was called The Merge. -summaryPoint3: The Merge refers to the original Ethereum Mainnet merging with a separate proof-of-stake blockchain called the Beacon Chain, now existing as one chain. -summaryPoint4: The Merge reduced Ethereum's energy consumption by ~99.95%. ---- - - - The Merge was executed on September 15, 2022. This completed Ethereum's transition to proof-of-stake consensus, officially deprecating proof-of-work and reducing energy consumption by ~99.95%. - - -## What was The Merge? {#what-is-the-merge} - -The Merge was the joining of the original execution layer of Ethereum (the Mainnet that has existed since [genesis](/history/#frontier)) with its new proof-of-stake consensus layer, the Beacon Chain. It eliminated the need for energy-intensive mining and instead enabled the network to be secured using staked ETH. It was a truly exciting step in realizing the Ethereum vision—more scalability, security, and sustainability. - - - -Initially, the [Beacon Chain](/roadmap/beacon-chain/) shipped separately from [Mainnet](/glossary/#mainnet). Ethereum Mainnet - with all its accounts, balances, smart contracts, and blockchain state - continued to be secured by [proof-of-work](/developers/docs/consensus-mechanisms/pow/), even while the Beacon Chain ran in parallel using [proof-of-stake](/developers/docs/consensus-mechanisms/pos/). The Merge was when these two systems finally came together, and proof-of-work was permanently replaced by proof-of-stake. - -Imagine Ethereum is a spaceship that launched before it was quite ready for an interstellar voyage. With the Beacon Chain, the community built a new engine and a hardened hull. After significant testing, it became time to hot-swap the new engine for the old one mid-flight. This merged the new, more efficient engine into the existing ship enabling it to put in some serious light years and take on the universe. - -## Merging with Mainnet {#merging-with-mainnet} - -Proof-of-work secured Ethereum Mainnet from genesis until The Merge. This allowed the Ethereum blockchain we're all used to to come into existence in July 2015 with all its familiar features—transactions, smart contracts, accounts, etc. - -Throughout Ethereum's history, developers prepared for an eventual transition away from proof-of-work to proof-of-stake. On December 1, 2020, the Beacon Chain was created as a separate blockchain to Mainnet, running in parallel. - -The Beacon Chain was not originally processing Mainnet transactions. Instead, it was reaching consensus on its own state by agreeing on active validators and their account balances. After extensive testing, it became time for the Beacon Chain to reach consensus on real world data. After The Merge, the Beacon Chain became the consensus engine for all network data, including execution layer transactions and account balances. - -The Merge represented the official switch to using the Beacon Chain as the engine of block production. Mining is no longer the means of producing valid blocks. Instead, the proof-of-stake validators have adopted this role and are now responsible for processing the validity of all transactions and proposing blocks. - -No history was lost in The Merge. As Mainnet merged with the Beacon Chain, it also merged the entire transactional history of Ethereum. - - -This transition to proof-of-stake changed the way ether is issued. Learn more about ether issuance before and after The Merge. - - -### Users and holders {#users-holders} - -**The Merge did not change anything for holders/users.** - -_This bears repeating_: As a user or holder of ETH or any other digital asset on Ethereum, as well as non-node-operating stakers, **you do not need to do anything with your funds or wallet to account for The Merge.** ETH is just ETH. There is no such thing as "old ETH"/"new ETH" or "ETH1"/"ETH2" and wallets work exactly the same after The Merge as they did before—people telling you otherwise are likely scammers. - -Despite swapping out proof-of-work, the entire history of Ethereum since genesis remained intact and unaltered by the transition to proof-of-stake. Any funds held in your wallet before The Merge are still accessible after The Merge. **No action is required to upgrade on your part.** - -[More on Ethereum security](/security/#eth2-token-scam) - -### Node operators and dapp developers {#node-operators-dapp-developers} - - - -Key action items include: - -1. Run _both_ a consensus client and an execution client; third-party endpoints to obtain execution data no longer work since The Merge. -2. Authenticate both execution and consensus clients with a shared JWT secret so they can securely communicate. -3. Set a `fee recipient` address to receive your earned transaction fee tips/MEV. - -Not completing the first two items above will result in your node being seen as "offline" until both layers are synced and authenticated. - -Not setting a `fee recipient` will still allow your validator to behave as usual, but you will miss out on unburnt fee tips and any MEV you would have otherwise earned in blocks your validator proposes. - - - - -Up until The Merge, an execution client (such as Geth, Erigon, Besu or Nethermind) was enough to receive, properly validate, and propagate blocks being gossiped by the network. _After The Merge_, the validity of transactions contained within an execution payload now also depends on the validity of the "consensus block" it is contained within. - -As a result, a full Ethereum node now requires both an execution client and a consensus client. These two clients work together using a new Engine API. The Engine API requires authentication using a JWT secret, which is provided to both clients allowing secure communication. - -Key action items include: - -- Install a consensus client in addition to an execution client -- Authenticate execution and consensus clients with a shared JWT secret so they can securely communicate with one another. - -Not completing the above items will result in your node appearing to be "offline" until both layers are synced and authenticated. - - - - - -The Merge came with changes to consensus, which also includes changes related to:< - -
    -
  • block structure
  • -
  • slot/block timing
  • -
  • opcode changes
  • -
  • sources of on-chain randomness
  • -
  • concept of safe head and finalized blocks
  • -
- -For more information, check out this blog post by Tim Beiko on How The Merge Impacts Ethereum’s Application Layer. - -
- -## The Merge and energy consumption {#merge-and-energy} - -The Merge marked the end of proof-of-work for Ethereum and start the era of a more sustainable, eco-friendly Ethereum. Ethereum's energy consumption dropped by an estimated 99.95%, making Ethereum a green blockchain. Learn more about [Ethereum energy consumption](/energy-consumption/). - -## The Merge and scaling {#merge-and-scaling} - -The Merge also set the stage for further scalability upgrades not possible under proof-of-work, bringing Ethereum one step closer to achieving the full scale, security and sustainability outlined in its [Ethereum vision](/roadmap/vision/). - -## Misconceptions about The Merge {#misconceptions} - - - -There are two types of Ethereum nodes: nodes that can propose blocks and nodes that don't. - -Nodes that propose blocks are only a small number of the total nodes on Ethereum. This category includes mining nodes under proof-of-work (PoW) and validator nodes under proof-of-stake (PoS). This category requires committing economic resources (such as GPU hash power in proof-of-work or staked ETH in proof-of-stake) in exchange for the ability to occasionally propose the next block and earn protocol rewards. - -The other nodes on the network (i.e. the majority) are not required to commit any economic resources beyond a consumer-grade computer with 1-2 TB of available storage and an internet connection. These nodes do not propose blocks, but they still serve a critical role in securing the network by holding all block proposers accountable by listening for new blocks and verifying their validity on arrival according to the network consensus rules. If the block is valid, the node continues propagating it through the network. If the block is invalid for whatever reason, the node software will disregard it as invalid and stop its propagation. - -Running a non-block-producing node is possible for anyone under either consensus mechanism (proof-of-work or proof-of-stake); it is strongly encouraged for all users if they have the means. Running a node is immensely valuable for Ethereum and gives added benefits to any individual running one, such as improved security, privacy and censorship resistance. - -The ability for anyone to run their own node is absolutely essential to maintaining the decentralization of the Ethereum network. - -More on running your own node - - - - - -Gas fees are a product of network demand relative to the capacity of the network. The Merge deprecated the use of proof-of-work, transitioning to proof-of-stake for consensus, but did not significantly change any parameters that directly influence network capacity or throughput. - -With a rollup-centric roadmap, efforts are being focused on scaling user activity at layer 2, while enabling layer 1 Mainnet as a secure decentralized settlement layer optimized for rollup data storage to help make rollup transactions exponentially cheaper. The transition to proof-of-stake is a critical precursor to realizing this. More on gas and fees. - - - - -A transaction's "speed" can be measured in a few ways, including time to be included in a block and time to finalization. Both of these changes slightly, but not in a way that users will notice. - -Historically, on proof-of-work, the target was to have a new block every ~13.3 seconds. Under proof-of-stake, slots occur precisely every 12 seconds, each of which is an opportunity for a validator to publish a block. Most slots have blocks, but not necessarily all (i.e. a validator is offline). In proof-of-stake, blocks are produced ~10% more frequently than on proof-of-work. This was a fairly insignificant change and is unlikely to be noticed by users. - -Proof-of-stake introduced the transaction finality concept that did not previously exist. In proof-of-work, the ability to reverse a block gets exponentially more difficult with every passing block mined on top of a transaction, but it never quite reaches zero. Under proof-of-stake, blocks are bundled into epochs (6.4 minute spans of time containing 32 chances for blocks) which validators vote on. When an epoch ends, validators vote on whether to consider the epoch 'justified'. If validators agree to justify the epoch, it gets finalized in the next epoch. Undoing finalized transactions is economically inviable as it would require obtaining and burning over one-third of the total staked ETH. - - - - - -Initially after The Merge, stakers could only access fee tips and MEV that were earned as a result of block proposals. These rewards are credited to a non-staking account controlled by the validator (known as the fee recipient), and are available immediately. These rewards are separate from protocol rewards for performing validator duties. - -Since the Shanghai/Capella network upgrade, stakers can now designate a withdrawal address to start receiving automatic payouts of any excess staking balance (ETH over 32 from protocol rewards). This upgrade also enabled the ability for a validator to unlock and reclaim its entire balance upon exiting from the network. - -More on staking withdrawals - - - - -Since the Shanghai/Capella upgrade enabled withdrawals, validators are incentivized to withdraw their staking balance above 32 ETH, as these funds do not add to yield and are otherwise locked. Depending on the APR (determined by total ETH staked), they may be incentivized to exit their validator(s) to reclaim their entire balance or potentially stake even more using their rewards to earn more yield. - -An important caveat here, full validator exits are rate limited by the protocol, and only so many validators may exit per epoch (every 6.4 minutes). This limit fluctuates depending on the number of active validators, but comes out to approximately 0.33% of total ETH staked can be exited from the network in a single day. - -This prevents a mass exodus of staked funds. Furthermore, it prevents a potential attacker with access to a large portion of the total ETH staked from committing a slashable offense and exiting/withdrawing all of the offending validator balances in the same epoch before the protocol can enforce the slashing penalty. - -The APR is also intentionally dynamic, allowing a market of stakers to balance how much they're willing to be paid to help secure the network. If the rate is too low, then validators will exit at a rate limited by the protocol. Gradually this will raise the APR for everyone who remains, attracting new or returning stakers yet again. - - -## What happened to 'Eth2'? {#eth2} - -The term 'Eth2' has been deprecated. After merging 'Eth1' and 'Eth2' into a single chain, there is no longer any need to -distinguish between two Ethereum networks; there is just Ethereum. - -To limit confusion, the community has updated these terms: - -- 'Eth1' is now the 'execution layer', which handles transactions and execution. -- 'Eth2' is now the 'consensus layer', which handles proof-of-stake consensus. - -These terminology updates only change naming conventions; this does not alter Ethereum's goals or roadmap. - -[Learn more about the 'Eth2' renaming](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) - -## Relationship between upgrades {#relationship-between-upgrades} - -The Ethereum upgrades are all somewhat interrelated. So let’s recap how The Merge relates to the other upgrades. - -### The Merge and the Beacon Chain {#merge-and-beacon-chain} - -The Merge represents the formal adoption of the Beacon Chain as the new consensus layer to the original Mainnet execution layer. Since The Merge, validators are assigned to secure Ethereum Mainnet, and mining on [proof-of-work](/developers/docs/consensus-mechanisms/pow/) is no longer a valid means of block production. - -Blocks are instead proposed by validating nodes that have staked ETH in return for the right to participate in consensus. These upgrades set the stage for future scalability upgrades, including sharding. - - - The Beacon Chain - - -### The Merge and the Shanghai upgrade {#merge-and-shanghai} - -In order to simplify and maximize focus on a successful transition to proof-of-stake, The Merge upgrade did not include certain anticipated features such as the ability to withdraw staked ETH. This functionality was enabled separately with the Shanghai/Capella upgrade. - -For those curious, learn more about [What Happens After The Merge](https://youtu.be/7ggwLccuN5s?t=101), presented by Vitalik at the April 2021 ETHGlobal event. - -### The Merge and sharding {#merge-and-data-sharding} - -Originally, the plan was to work on sharding before The Merge to address scalability. However, with the boom of [layer 2 scaling solutions](/layer-2/), the priority shifted to swapping proof-of-work to proof-of-stake first. - -Plans for sharding are rapidly evolving, but given the rise and success of layer 2 technologies to scale transaction execution, sharding plans have shifted to finding the most optimal way to distribute the burden of storing compressed calldata from rollup contracts, allowing for exponential growth in network capacity. This would not be possible without first transitioning to proof-of-stake. - - - Sharding - - -## Further reading {#further-reading} - - - - diff --git a/src/content/roadmap/scaling/index.md b/src/content/roadmap/scaling/index.md deleted file mode 100644 index c4ded270382..00000000000 --- a/src/content/roadmap/scaling/index.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Scaling Ethereum -description: Rollups batch transactions together off-chain, reducing costs for the user. However, the way rollups currently use data is currently too expensive, limiting how cheap transactions can be. Proto-Danksharding fixes this. -lang: en -image: ../../../assets/roadmap/roadmap-transactions.png -alt: "Ethereum roadmap" -template: roadmap ---- - -Ethereum is scaled using [layer 2s](/layer-2/#rollups) (also known as rollups), which batch transactions together and send the output to Ethereum. Even though rollups are up to eight times less expensive than Ethereum Mainnet, it's possible to optimize rollups further to reduce costs for end users. Rollups also rely on some centralized components that developers can remove as the rollups mature. - - -
    -
  • Today’s rollups are ~3-8x cheaper than Ethereum layer 1
  • -
  • ZK-rollups will soon lower fees by ~40-100x
  • -
  • Upcoming changes to Ethereum will provide another ~100-1000x of scaling
  • -
  • Users should benefit from transactions costing less than $0.001
  • -
-
- -## Making data cheaper {#making-data-cheaper} - -Rollups collect large numbers of transactions, execute them and submit the results to Ethereum. This generates a lot of data that needs to be openly available so that anyone can execute the transactions for themselves and verify that the rollup operator was honest. If someone finds a discrepancy, they can raise a challenge. - -### Proto-Danksharding {#proto-danksharding} - -Rollup data is stored on Ethereum permanently, which is expensive. Over 90% of the transaction cost users pay on rollups is due to this data storage. To reduce transaction costs, we can move the data into a new temporary 'blob' storage. Blobs are cheaper because they are not permanent; they get deleted from Ethereum once they are no longer needed. Storing rollup data long term becomes the responsibility of the people that need it, such as rollup operators, exchanges, indexing services etc. Adding blob transactions to Ethereum is part of an upgrade known as "Proto-Danksharding". It is expected to be shipped relatively soon—perhaps in late 2023. - -After blob transactions have become part of the Ethereum protocol through Proto-Danksharding, it will be possible to add many blobs to Ethereum blocks. This will be another substantial (>100x) scale-up to Ethereum’s throughput and scale-down to transaction costs. - -### Danksharding {#danksharding} - -The second stage of expanding blob data is complicated because it requires new methods for checking rollup data is available on the network and relies on validators separating their block building and block proposal responsibilities. It also requires a way to cryptographically prove that validators have verified small subsets of the blob data. - -This second step is known as [“Danksharding”](/roadmap/danksharding/). It is likely several years away from being fully implemented. Danksharding relies on other developments such as [separating block building and block proposal](/roadmap/pbs) and new network designs that enable the network to efficiently confirm that data is available by randomly sampling a few kilobytes at a time, known as [data availability sampling (DAS)](/developers/docs/data-availability). - -More on Danksharding - -## Decentralizing rollups {#decentralizing-rollups} - -[Rollups](/layer-2) are already scaling Ethereum. A [rich ecosystem of rollup projects](https://l2beat.com/scaling/tvl) is enabling users to transact quickly and cheaply, with a range of security guarantees. However, rollups have been bootstrapped using centralized sequencers (computers that do all the transaction processing and aggregation before submitting them to Ethereum). This is vulnerable to censorship, because the sequencer operators can be sanctioned, bribed or otherwise compromised. At the same time, [rollups vary](https://l2beat.com) in the way they validate incoming data. The best way is for "provers" to submit fraud proofs or validity proofs, but not all rollups are there yet. Even those rollups that do use validity/fraud proofs use a small pool of known provers. Therefore, the next critical step in scaling Ethereum is to distribute responsibility for running sequencers and provers across more people. - -More on rollups - -## Current progress {#current-progress} - -Proto-Danksharding is likely to be one of the earlier roadmap items to be implemented. The decentralized computation steps required to set it up are already underway and several clients have implemented prototypes for handling blob data. Full Danksharding is likely several years away, as it relies upon several other roadmap items being completed first. Decentralizing rollup infrastructure is likely to be a gradual process - there are many different rollups that are building slightly different systems and will fully decentralize at different rates. diff --git a/src/content/roadmap/security/index.md b/src/content/roadmap/security/index.md deleted file mode 100644 index b5d57e7c105..00000000000 --- a/src/content/roadmap/security/index.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: A more secure Ethereum -description: Ethereum is the most secure and decentralized smart-contract platform in existence. However, there are still improvements that can be made so that Ethereum stays resilient to any level of attack far into the future. -lang: en -image: ../../../assets/roadmap/roadmap-security.png -alt: "Ethereum roadmap" -template: roadmap ---- - -Ethereum is already a very secure, decentralized smart-contract platform. However, there are still improvements that can be made so that Ethereum stays resilient to all kinds of attack far into the future. These include subtle changes to the way Ethereum clients deal with competing blocks, as well as increasing the speed the network considers blocks to be ["finalized"](/developers/docs/consensus-mechanisms/pos/#finality) (meaning they can't be changed without extreme economic losses to an attacker). - -There are also improvements that make censoring transactions much more difficult by making block proposers blind to the actual contents of their blocks, and new ways to identify when a client is censoring. Together these improvements will upgrade the proof-of-stake protocol so that users - from individuals to corporations - have instant confidence in their apps, data and assets on Ethereum. - -## Staking withdrawals {#staking-withdrawals} - -The upgrade from proof-of-work to proof-of-stake began with Ethereum pioneers “staking” their ETH in a deposit contract. That ETH is used to protect the network. However, that ETH cannot yet be unlocked and returned to the users. Allowing ETH to be withdrawn is a critical part of the proof-of-stake upgrade. In addition to withdrawals being a critical component of a fully-functional proof-of-stake protocol, allowing withdrawals is also good for Ethereum security as it allows stakers to use their ETH rewards for other non-staking purposes. This means users that want liquidity do not have to rely upon liquid staking derivatives (LSDs) that can be a centralizing force on Ethereum. This upgrade is scheduled to be completed on April 12, 2023. - -Read about withdrawals - -## Defending against attacks {#defending-against-attacks} - -Even after withdrawals there are improvements that can be made to Ethereum's [proof-of-stake](/developers/docs/consensus-mechanisms/pos/) protocol. One is known as [view-merge](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739) - a more secure fork-choice algorithm that makes certain sophisticated types of attack more difficult. - -Reducing the time Ethereum takes to finalize blocks would provide a better user experience and prevent sophisticated "reorg" attacks where attackers try to reshuffle very recent blocks to extract profit or censor certain transactions. [**Single slot finality (SSF)**](/roadmap/single-slot-finality/) is a way to minimize the finalization delay. Right now there are 15 mins worth of blocks that an attacker could theoretically convince other validators to reconfigure. With SSF, there are 0. Users, from individuals to apps and exchanges, benefit from fast assurance that their transactions will not be reverted, and the network benefits by shutting down a whole class of attacks. - -Read about single slot finality - -## Defending against censorship {#defending-against-censorship} - -Decentralization prevents individuals or small groups of validators from becoming too influential. New staking technologies can help to ensure Ethereum's validators stay as decentralized as possible while also defending them against hardware, software and network failures. This includes software that shares validator responsibilities across multiple nodes. This is known as **distributed validator technology (DVT)**. Staking pools are incentivized to use DVT because it allows multiple computers to collectively participate in validation, adding redundancy and fault-tolerance. It also splits validator keys across several systems, rather than having single operators running multiple validators. This makes it harder for dishonest operators to coordinate attacks on Ethereum. Overall, the idea is to derive security benefits by running validators as _communities_ rather than as individuals. - -Read about distributed validator technology - -Implementing **proposer-builder separation (PBS)** will drastically improve Ethereum's built-in defenses against censorship. PBS allows one validator to create a block and another to broadcast it across the Ethereum network. This ensures that the gains from professional profit-maximizing block building algorithms are shared more fairly across the network, **preventing stake from concentrating** with the best-performing institutional stakers over time. The block proposer gets to select the most profitable block offered to them by a market of block builders. To censor, a block proposer would often have to choose a less profitable block, which would be **economically irrational and also obvious to the rest of the validators** on the network. - -There are potential add-ons to PBS, such as encrypted transactions and inclusion lists, that could further improve Ethereum's censorship resistance. These make the block builder and proposer blind to the actual transactions included in their blocks. - -Read about proposer-builder separation - -## Protecting validators {#protecting-validators} - -It is possible that a sophisticated attacker could identify upcoming validators and spam them to prevent them from proposing blocks; this is known as a **denial of service (DoS)** attack. Implementing [**secret leader election (SLE)**](/roadmap/secret-leader-election) will protect against this type of attack by preventing block proposers from being knowable in advance. This works by continually shuffling a set of cryptographic commitments representing candidate block proposers and using their order to determine which validator is selected in such a way that only the validators themselves know their ordering in advance. - -Read about secret leader election - -## Current progress {#current-progress} - -Security upgrades on the roadmap are in advanced stages of research, but they are not expected to be implemented for some time. The next steps for view-merge, PBS, SSF and SLE is to finalize a specification and start building prototypes. diff --git a/src/content/roadmap/user-experience/index.md b/src/content/roadmap/user-experience/index.md deleted file mode 100644 index 8b91c31f758..00000000000 --- a/src/content/roadmap/user-experience/index.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: Improving user experience -description: It is still too complex to use Ethereum for most people. To encourage mass adoption, Ethereum must drastically lower its barriers to entry - users must get the benefits of decentralized, permissionless and censorship resistant access to Ethereum but it must be as frictionless as using a traditional web2 app. -lang: en -image: ../../../assets/roadmap/roadmap-ux.png -alt: "Ethereum roadmap" -template: roadmap ---- - -Using Ethereum needs to be simplified; from managing keys and wallets to initiating transactions. To facilitate mass adoption, Ethereum must drastically increase the ease of use, allowing users to experience permissionless and censorship-resistant access to Ethereum with the frictionless experience of using Web2 apps. - -## Beyond seed phrases {#no-more-seed-phrases} - -Ethereum accounts are protected by a pair of keys used to identify accounts (public key) and sign messages (private key). A private key is like a master password; it allows complete access to an Ethereum account. This is a different way of operating for people more familiar with banks and Web2 apps which manage accounts on a user's behalf. For Ethereum to reach mass adoption without relying on centralized third parties, there must be a straightforward, frictionless way for a user to take custody of their assets and keep control of their data without having to understand public-private key cryptography and key management. - -The solution to this is using smart contract wallets to interact with Ethereum. Smart contract wallets create ways to protect accounts if the keys are lost or stolen, opportunities for better fraud detection and defense, and allow wallets to get new functionality. Although smart contract wallets exist today, they are awkward to build because the Ethereum protocol needs to support them better. This additional support is known as account abstraction. - -More on account abstraction - -## Nodes for everyone - -Users running nodes do not have to trust third parties to provide them with data, and they can interact quickly, privately, and permissionlessly with the Ethereum blockchain. However, running a node right now requires technical knowledge and substantial disk space, meaning many people must trust intermediaries instead. - -There are several upgrades that will make running nodes far easier and far less resource intensive. The way data is stored will be changed to use a more space-efficient structure known as a **Verkle Tree**. Also, with [statelessness](/roadmap/statelessness) or [data expiry](/roadmap/statelessness/#data-expiry), Ethereum nodes will not need to store a copy of the entire Ethereum state data, drastically reducing hard disk space requirements. [Light nodes](/developers/docs/nodes-and-clients/light-clients/) will offer many benefits of running a full node but can run easily on mobile phones or inside simple browser apps. - -Read about Verkle trees - -With these upgrades, the barriers to running a node are reduced to effectively zero. Users will benefit from secure, permissionless access to Ethereum without having to sacrifice noticeable disk space or CPU on their computer or mobile phone, and will not have to rely on third parties for data or network access when they use apps. - -## Current progress {#current-progress} - -Smart contract wallets are already available, but more upgrades are required to make them as decentralized and permissionless as possible. EIP-4337 is a mature proposal that does not require any changes to Ethereum's protocol. The main smart contract required for EIP-4337 was deployed in March 2023. - -Full statelessness is still in the research phase and is likely several years away from being implemented. There are several milestones on the road to full statelessness, including data expiry, that may be implemented sooner. Other roadmap items, such as [Verkle Trees](/roadmap/verkle-trees/) and [Proposer-builder separation](/roadmap/pbs/) need to be completed first. - -Verkle tree testnets are already up and running, and the next phase is running Verkle-tree enabled clients on private, then public testnets. You can help accelerate progress by deploying contracts to the testnets or running testnet clients. diff --git a/src/content/smart-contracts/index.md b/src/content/smart-contracts/index.md deleted file mode 100644 index fd70fe947d3..00000000000 --- a/src/content/smart-contracts/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Smart contracts -description: A non-technical introduction to smart contracts -lang: en ---- - -# Introduction to smart contracts {#introduction-to-smart-contracts} - -Smart contracts are the fundamental building blocks of Ethereum's application layer. They are computer programs stored on the blockchain that follow "if this then that" logic, and are guaranteed to execute according to the rules defined by its code, which cannot be changed once created. - -Nick Szabo coined the term "smart contract". In 1994, he wrote [an introduction to the concept](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html), and in 1996 he wrote [an exploration of what smart contracts could do](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). - -Szabo envisioned a digital marketplace where automatic, cryptographically-secure processes enable transactions and business functions to happen without trusted intermediaries. Smart contracts on Ethereum put this vision into practice. - -### Trust in conventional contracts {#trust-and-contracts} - -One of the biggest problems with a traditional contract is the need for trusted individuals to follow through with the contract's outcomes. - -Here is an example: - -Alice and Bob are having a bicycle race. Let's say Alice bets Bob $10 that she will win the race. Bob is confident he'll be the winner and agrees to the bet. In the end, Alice finishes the race well ahead of Bob and is the clear winner. But Bob refuses to pay out on the bet, claiming Alice must have cheated. - -This silly example illustrates the problem with any non-smart agreement. Even if the conditions of the agreement get met (i.e. you are the winner of the race), you must still trust another person to fulfill the agreement (i.e. payout on the bet). - -### A digital vending machine {#vending-machine} - -A simple metaphor for a smart contract is a vending machine, which works somewhat similarly to a smart contract - specific inputs guarantee predetermined outputs. - -- You select a product -- The vending machine displays the price -- You pay the price -- The vending machine verifies that you paid the right amount -- The vending machine gives you your item - -The vending machine will only dispense your desired product after all requirements are met. If you don't select a product or insert enough money, the vending machine won't give out your product. - -### Automatic execution {#automation} - -The main benefit of a smart contract is that it deterministically executes unambiguous code when certain conditions are met. There is no need to wait for a human to interpret or negotiate the result. This removes the need for trusted intermediaries. - -For example, you could write a smart contract that holds funds in escrow for a child, allowing them to withdraw funds after a specific date. If they try to withdraw before that date, the smart contract won't execute. Or you could write a contract that automatically gives you a digital version of a car's title when you pay the dealer. - -### Predictable outcomes {#predictability} - -Traditional contracts are ambiguous because they rely on humans to interpret and implement them. For example, two judges might interpret a contract differently, which could lead to inconsistent decisions and unequal outcomes. Smart contracts remove this possibility. Instead, smart contracts execute precisely based on the conditions written within the contract's code. This precision means that given the same circumstances, the smart contract will produce the same result. - -### Public record {#public-record} - -Smart contracts are useful for audits and tracking. Since Ethereum smart contracts are on a public blockchain, anyone can instantly track asset transfers and other related information. For example, you can check to see that someone sent money to your address. - -### Privacy protection {#privacy-protection} - -Smart contracts also protect your privacy. Since Ethereum is a pseudonymous network (your transactions are tied publicly to a unique cryptographic address, not your identity), you can protect your privacy from observers. - -### Visible terms {#visible-terms} - -Finally, like traditional contracts, you can check what's in a smart contract before you sign it (or otherwise interact with it). A smart contract's transparency guarantees that anyone can scrutinize it. - -## Smart contract use cases {#use-cases} - -Smart contracts can do essentially anything that computer programs can do. - -They can perform computations, create currency, store data, mint NFTs, send communications and even generate graphics. Here are some popular, real-world examples: - -- [Stablecoins](/stablecoins/) -- [Creating and distributing unique digital assets](/nft/) -- [An automatic, open currency exchange](/get-eth/#dex) -- [Decentralized gaming](/dapps/?category=gaming) -- [An insurance policy that pays out automatically](https://etherisc.com/) -- [A standard that lets people create customized, interoperable currencies](/developers/docs/standards/tokens/) - -## More of a visual learner? {#visual-learner} - -Watch Finematics explain smart contracts: - - - -## Further reading {#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/social-networks/index.md b/src/content/social-networks/index.md deleted file mode 100644 index 3ae2afa6979..00000000000 --- a/src/content/social-networks/index.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: Decentralized social networks -description: An overview of decentralized social networks on Ethereum -lang: en -template: use-cases -emoji: ":mega:" -sidebarDepth: 2 -image: ../../assets/ethereum-learn.png -summaryPoint1: Blockchain-based platforms for social interaction and content creation and distribution. -summaryPoint2: Decentralized social media networks protect user privacy and enhance data security. -summaryPoint3: Tokens and NFTs create new ways to monetize content. ---- - -Social networks play a massive role in our daily communications and interactions. However, centralized control of these platforms has created many problems: data breaches, server outages, de-platforming, censorship, and privacy violations are some of the trade-offs social media often make. To combat these issues, developers are building social networks on Ethereum. Decentralized social networks can fix many of the problems of traditional social networking platforms and improve users' overall experience. - -## What are decentralized social networks? {#what-are-decentralized-social-networks} - -Decentralized social networks are blockchain-based platforms that allow users to exchange information as well as publish and distribute content to audiences. Because these applications run on the blockchain, they are capable of being decentralized and resistant to censorship and undue control. - -Many decentralized social networks exist as alternatives to established social media services, such as Facebook, LinkedIn, Twitter, and Medium. But blockchain-powered social networks have a number of features that put them ahead of traditional social platforms. - -### How do decentralized social networks work? {#decentralized-social-networks-overview} - -Decentralized social networks are a class of [decentralized applications (dapps)](/dapps/)—applications powered by [smart contracts](/developers/docs/smart-contracts/) deployed on the blockchain. The contract code serves as the backend for these apps and defines their business logic. - -Traditional social media platforms rely on databases to store user information, program code, and other forms of data. But this creates single points-of-failure and introduces significant risk. For instance, Facebook's servers infamously [went offline for hours](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) last year, cutting off users from the platform. - -Decentralized social networks exist on a peer-to-peer network comprising thousands of nodes around the globe. Even if some nodes fail, the network will run uninterrupted, making applications resistant to failures and outages. - -Using decentralized storage systems like [the InterPlanetary File System (IPFS)](https://ipfs.io/), social networks built on Ethereum can protect user information from exploitation and malicious use. No one will sell your personal information to advertisers, neither will hackers be able to steal your confidential details. - -Many blockchain-based social platforms have native tokens that power monetization in absence of advertising revenue. Users can buy these tokens to access certain features, complete in-app purchases, or tip their favorite content creators. - -## Benefits of decentralized social networks {#benefits} - -1. Decentralized social networks are censorship-resistant and open to everyone. This means users cannot be banned, deplatformed, or restricted arbitrarily. - -2. Decentralized social networks are built on open-source ideals and make source code for applications available for public inspection. By eliminating the implementation of opaque algorithms common in traditional social media, blockchain-based social networks can align the interests of users and platform creators. - -3. Decentralized social networks eliminate the "middle-man". Content creators have direct ownership over their content, and they engage directly with followers, fans, buyers, and other parties, with nothing but a smart contract in between. - -4. As dapps running on the Ethereum network, which is sustained by a global, peer-to-peer network of nodes, decentralized social networks are less susceptible to server downtime and outages. - -5. Decentralized social platforms offer an improved monetization framework for content creators via non-fungible tokens (NFTs), in-app crypto payments, and more. - -6. Decentralized social networks afford users a high level of privacy and anonymity. For instance, an individual can sign in to an Ethereum-based social network using an ENS profile or wallet—without having to share personally identifiable information (PII), such as names, email addresses, etc. - -7. Decentralized social networks rely on decentralized storage, not centralized databases, which are considerably better for safeguarding user data. - -## Decentralized social networks on Ethereum {#ethereum-social-networks} - -The Ethereum network has become the preferred tool for developers creating decentralized social media owing to the popularity of its tokens (ERC-20/ERC-721) and its massive user base. Here are some examples of Ethereum-based social networks: - -### Peepeth {#peepeth} - -[Peepeth](https://peepeth.com/) is a microblogging platform similar to Twitter. It runs on the Ethereum blockchain and uses IPFS to store user data. - -Users can send short messages called "Peeps", which cannot be deleted or modified. You can collect tips or tip anyone on the platform in ether (ETH) without leaving the app. - -### Mirror {#mirror} - -[Mirror](https://mirror.xyz/) is a web3-enabled writing platform that aims to be decentralized and user-owned. Users can read and write for free on Mirror by simply connecting their wallets. Users can also collect writing and subscribe to their favorite writers. - -Posts published on Mirror are permanently stored on Arweave, a decentralized storage platform, and can be minted as collectable [non-fungible tokens (NFTs)](/nft/) known as Writing NFTs. Writing NFTs are completely free for writers to create, and collection happens on an Ethereum L2 — making transactions inexpensive, fast, and environmentally friendly. - -### MINDS {#minds} - -[MINDS](https://www.minds.com/) is one of the most used decentralized social networks. It works like Facebook and has racked up millions of users already. - -Users use the platform's native ERC-20 token $MIND to pay for items. Users can also earn $MIND tokens by publishing popular content, contributing to the ecosystem, and referring others to the platform. - -## Web2 social networks on Ethereum {#web2-social-networks-and-ethereum} - -[Web3](/web3/) native social platforms aren't the only ones trying to incorporate blockchain technology into social media. Many centralized platforms are also planning to integrate Ethereum into their infrastructure: - -### Reddit {#reddit} - -Reddit has [touted Community Points](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users), which are [ERC-20 tokens](/developers/docs/standards/tokens/erc-20/) that users can earn by posting quality content and contributing to online communities (subreddits). You can redeem these tokens within a subreddit to [get exclusive privileges and perks](https://www.reddit.com/community-points/). For this project, Reddit is working with Arbitrum, a [layer 2](/layer-2/) rollup designed to scale Ethereum transactions. - -The program is already live, with the r/CryptoCurrency subreddit [running its version of Community Points called "Moons"](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Per the official description, Moons "reward posters, commenters, and moderators for their contributions to the subreddit." Because these tokens are on the blockchain (users receive them in wallets), they are independent of Reddit and cannot be taken away. - -After concluding a beta phase on the Rinkeby testnet, Reddit Community Points are now on [Arbitrum Nova](https://nova.arbitrum.io/), a blockchain that combines properties of a [sidechain](/developers/docs/scaling/sidechains/) and an [optimistic rollup](/developers/docs/scaling/optimistic-rollups/). Besides using Community Points to unlock special features, users can also trade them for fiat on exchanges. Also, the amount of Community Points a user owns determines their influence on the decision-making process within the community. - -### Twitter {#twitter} - -In January 2021, Twitter Blue [rolled out support for NFTs](https://mashable.com/article/twitter-blue-nft-profile-picture), allowing users to connect their wallets and display NFTs as profile pictures. At time of writing, the social media company has also [announced plans](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) to create a decentralized social network in the future. - -### Instagram {#instagram} - -In May 2022, [Instagram announced support for NFTs](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) on Ethereum and Polygon. Users can post NFTs directly to Instagram by connecting their Ethereum wallet. - -## Use decentralized social networks {#use-decentralized-social-networks} - -- **[Status.im](https://status.im/)** - _Status is a secure messaging app that uses an open-source, peer-to-peer protocol, and end-to-end encryption to protect your messages from third parties._ -- **[Mirror.xyz](https://mirror.xyz/)** - _Mirror is a decentralized, user-owned publishing platform built on Ethereum for users to crowdfund ideas, monetize content, and build high-value communities._ -- **[Lens Protocol](https://lens.xyz/)** - _Lens Protocol is a composable and decentralized social graph helping creators take ownership of their content wherever they go in the digital garden of the decentralized internet._ -- **[Farcaster](https://farcaster.xyz/)** - _Farcaster is a sufficiently decentralized social network. It is an open protocol that can support many clients, just like email._ - -## Further reading {#further-reading} - -### Articles {#articles} - -- [Decentralizing social media: a guide to the web3 social stack](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _Coinbase Ventures_ -- [Social Networks Are the Next Big Decentralization Opportunity](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Goertzel_ -- [Web3 holds the promise of decentralized, community-powered social networks](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ -- [An Overview of the Blockchain Social Media Landscape](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ -- [How Blockchain Can Solve Social Media Privacy](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Prableen Bajpai_ -- [Social Media Networks Are Coming To The Blockchain](https://businesstechguides.co/what-are-decentralized-social-networks) — _Emmanuel Awosika_ -- [Sufficient Decentralization for Social Networks](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Varun Srinivasan_ - -### Videos {#videos} - -- [Decentralized Social Media Explained](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ -- [DeSo Blockchain Wants to Decentralize Social Media](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 {#communities} - -- [Status Discord Server](https://discord.com/invite/3Exux7Y) -- [Mirror Discord Server](https://discord.com/invite/txuCHcE8wV) -- [r/CryptoCurrency subreddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/staking/pools/index.md b/src/content/staking/pools/index.md deleted file mode 100644 index cc5a9505475..00000000000 --- a/src/content/staking/pools/index.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: Pooled staking -description: An overview of how to get started with pooled ETH staking -lang: en -template: staking -emoji: ":money_with_wings:" -image: ../../../assets/staking/leslie-pool.png -alt: Leslie the rhino swimming in the pool. -sidebarDepth: 2 -summaryPoints: - - Stake and earn rewards with any amount of ETH by joining forces with others - - Skip the hard part and entrust validator operation to a third-party - - Hold staking tokens in your own wallet ---- - -## What are staking pools? {#what-are-staking-pools} - -Staking pools are a collaborative approach to allow many with smaller amounts of ETH to obtain the 32 ETH required to activate a set of validator keys. Pooling functionality is not natively supported within the protocol, so solutions were built out separately to address this need. - -Some pools operate using smart contracts, where funds can be deposited to a contract, which trustlessly manages and tracks your stake, and issues you a token that represents this value. Other pools may not involve smart contracts and are instead mediated off-chain. - -## Why stake with a pool? {#why-stake-with-a-pool} - -In addition to the benefits we outlined in our [intro to staking](/staking/), staking with a pool comes with a number of distinct benefits. - - - - - - - - - -## What to consider {#what-to-consider} - -Pooled or delegated staking is not natively supported by the Ethereum protocol, but given the demand for users to stake less than 32 ETH a growing number of solutions have been built out to serve this demand. - -Each pool and the tools or smart contracts they use have been built out by different teams, and each comes with benefits and risks. Pools enable users to swap their ETH for a token representing staked ETH. The token is useful because it allows users to swap any amount of ETH to an equivalent amount of a yield-bearing token that generates a return from the staking rewards applied to the underlying staked ETH (and vice versa) on decentralized exchanges even though the actual ETH stays staked on the consensus layer. This means swaps back and forth from a yield-bearing staked-ETH product and "raw ETH" is quick, easy and not only available in multiples of 32 ETH. - -However, these staked-ETH tokens tend to create cartel-like behaviors where a large amount of staked ETH ends up under the control of a few centralized organizations rather than spread across many independent individuals. This creates conditions for censorship or value extraction. The gold standard for staking should always be individuals running validators on their own hardware whenever possible. - -[More on risks of staking tokens](https://notes.ethereum.org/@djrtwo/risks-of-lsd). - -Attribute indicators are used below to signal notable strengths or weaknesses a listed staking pool may have. Use this section as a reference for how we define these attributes while you're choosing a pool to join. - - - -## Explore staking pools {#explore-staking-pools} - -There are a variety of options available to help you with your setup. Use the above indicators to help guide you through the tools below. - - - - - -Please note the importance of choosing a service that takes [client diversity](/developers/docs/nodes-and-clients/client-diversity/) seriously, as it improves the security of the network, and limits your risk. Services that have evidence of limiting majority client use are indicated with "execution client diversity" and "consensus client diversity." - -Have a suggestion for a staking tool we missed? Check out our [product listing policy](/contributing/adding-staking-products/) to see if it would be a good fit, and to submit it for review. - -## Frequently asked questions {#faq} - - -Typically ERC-20 staking tokens are issued to stakers and represent the value of their staked ETH plus rewards. Keep in mind that different pools will distribute staking rewards to their users via slightly different methods, but this is the common theme. - - - -Right now! The Shanghai/Capella network upgrade occurred in April 2023, and introduced staking withdrawals. Validator accounts that back staking pools now have the ability to exit and withdraw ETH to their designated withdrawal address. This enables the ability to redeem your portion of stake for the underlying ETH. Check with your provider to see how they support this functionality. - -Alternatively, pools that utilize an ERC-20 staking token allow users to trade this token in the open market, allowing you to sell your staking position, effectively "withdrawing" without actually removing ETH from the staking contract. - -More on staking withdrawals - - - -There are many similarities between these pooled staking options and centralized exchanges, such as the ability to stake small amounts of ETH and have them bundled together to activate validators. - -Unlike centralized exchanges, many other pooled staking options utilize smart contracts and/or staking tokens, which are usually ERC-20 tokens that can be held in your own wallet, and bought or sold just like any other token. This offers a layer of sovereignty and security by giving you control over your tokens, but still does not give you direct control over the validator client attesting on your behalf in the background. - -Some pooling options are more decentralized than others when it comes to the nodes that back them. To promote the health and decentralization of the network, stakers are always encouraged to select a pooling service that enables a permissionless decentralized set of node operators. - - -## Further reading {#further-reading} - -- [The Ethereum Staking Directory](https://www.staking.directory/) - _Eridian and Spacesider_ -- [Staking with Rocket Pool - Staking Overview](https://docs.rocketpool.net/guides/staking/overview.html) - _RocketPool docs_ -- [Staking Ethereum With Lido](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Lido help docs_ diff --git a/src/content/staking/saas/index.md b/src/content/staking/saas/index.md deleted file mode 100644 index af8703b0977..00000000000 --- a/src/content/staking/saas/index.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -title: Staking as a service -description: An overview of how to get started with pooled ETH staking -lang: en -template: staking -emoji: ":money_with_wings:" -image: ../../../assets/staking/leslie-saas.png -alt: Leslie the rhino floating in the clouds. -sidebarDepth: 2 -summaryPoints: - - Third-party node operators handle the operation of your validator client - - Great option for anyone with 32 ETH who doesn't feel comfortable dealing with the technical complexity of running a node - - Reduce trust, and maintain custody of your withdrawal keys ---- - -## What is staking as a service? {#what-is-staking-as-a-service} - -Staking as a service (“SaaS") represents a category of staking services where you deposit your own 32 ETH for a validator, but delegate node operations to a third-party operator. This process usually involves being guided through the initial setup, including key generation and deposit, then uploading your signing keys to the operator. This allows the service to operate your validator on your behalf, usually for a monthly fee. - -## Why stake with a service? {#why-stake-with-a-service} - -The Ethereum protocol does not natively support delegation of stake, so these services have been built out to fill this demand. If you have 32 ETH to stake, but don't feel comfortable dealing with hardware, SaaS services allow you to delegate the hard part while you earn native block rewards. - - - - - - - - - -## What to consider {#what-to-consider} - -There are a growing number of SaaS providers to help you stake your ETH, but they all have their own benefits and risks. All SaaS options require additional trust assumptions compared to home-staking. Saas options may have additional code wrapping the Ethereum clients that is not open or auditable. SaaS also has a detrimental effect on network decentralization. Depending on the setup, you may not control your validator - the operator could act dishonestly using your ETH. - -Attribute indicators are used below to signal notable strengths or weaknesses a listed SaaS provider may have. Use this section as a reference for how we define these attributes while you're choosing a service to help with your staking journey. - - - -## Explore staking service providers {#saas-providers} - -Below are some available SaaS provider. Use the above indicators to help guide you through these services - - - -#### SaaS providers - - - -Please note the importance of supporting [client diversity](/developers/docs/nodes-and-clients/client-diversity/) as it improves the security of the network, and limits your risk. Services that have evidence of limiting majority client use are indicated with "execution client diversity" and "consensus client diversity." - -#### Key Generators - - - -Have a suggestion for a staking-as-a-service provider we missed? Check out our [product listing policy](/contributing/adding-staking-products/) to see if it would be a good fit, and to submit it for review. - -## Frequently asked questions {#faq} - - -Arrangements will differ from provider-to-provider, but commonly you will be guided through setting up any signing keys you need (one per 32 ETH), and uploading these to your provider to allow them to validate on your behalf. The signing keys alone do not give any ability to withdraw, transfer, or spend your funds. However, they do provide the ability to cast votes towards consensus, which if not done properly can result in offline penalties or slashing. - - - -Yes. Each account is comprised of both BLS signing keys, and BLS withdrawal keys. In order for a validator to attest to the state of the chain, participate in sync committees and propose blocks, the signing keys must be readily accessible by a validator client. These must be connected to the internet in some form, and are thus inherently considered to be "hot" keys. This is a requirement for your validator to be able to attest, and thus the keys used to transfer or withdraw funds are separated for security reasons. - -The BLS withdrawal keys are used to sign a one-time message that declares which execution layer account staking rewards and exited funds should go to. Once this message is broadcast, the BLS withdrawal keys are no longer needed. Instead, control over withdrawn funds is permanently delegated to the address you provided. This allows you to set a withdrawal address secured via your own cold storage, minimizing risk to your validator funds, even if someone else controls your validator signing keys. - -Updating withdrawal credentials is a required step to enable withdrawals\*. This process involves generating the withdrawal keys using your mnemonic seed phrase. - -Make certain you back this seed phrase up safely or you will be unable to generate your withdraw keys when the time comes. - -\*Stakers who provided a withdrawal address with initial deposit do not need to set this. Check with your SaaS provider for support regarding how to prepare your validator. - - - -Staking withdrawals were implemented in the Shanghai/Capella upgrade in April 2023. Stakers need to provide a withdrawal address (if not provided on initial deposit), and reward payments will begin being distributed automatically on a periodic basis every few days. - -Validators can also fully exit as a validator, which will unlock their remaining ETH balance for withdrawal. Accounts that have provided an execution withdrawal address and completed the exiting process will receive their entire balance to the withdrawal address provided during the next validator sweep. - -More on staking withdrawals - - - -By using an SaaS provider, you are entrusting the operation of your node to someone else. This comes with the risk of poor node performance, which is not in your control. In the event your validator is slashed, your validator balance will be penalized and forcibly removed from the validator pool. - -Upon completion of the slashing/exiting process, these funds will be transferred to the withdrawal address assigned to the validator. This requires providing a withdrawal address to enable. This may have been provided on initial deposit. If not, the validator withdrawal keys will need to be used to sign a message declaring a withdrawal address. If no withdrawal address has been provided, funds will remain locked until provided. - -Contact individual SaaS provider for more details on any guarantees or insurance options, and for instructions on how to provide a withdrawal address. If you'd prefer to be in full control of your validator setup, learn more about how to solo stake your ETH. - - -## Further reading {#further-reading} - -- [The Ethereum Staking Directory](https://www.staking.directory/) - _Eridian and Spacesider_ -- [Evaluating Staking Services](https://www.attestant.io/posts/evaluating-staking-services/) - _Jim McDonald 2020_ diff --git a/src/content/staking/solo/index.md b/src/content/staking/solo/index.md deleted file mode 100644 index b223fe7a96c..00000000000 --- a/src/content/staking/solo/index.md +++ /dev/null @@ -1,204 +0,0 @@ ---- -title: Solo stake your ETH -description: An overview of how to get started solo staking your ETH -lang: en -template: staking -emoji: ":money_with_wings:" -image: ../../../assets/staking/leslie-solo.png -alt: Leslie the rhino on her own computer chip. -sidebarDepth: 2 -summaryPoints: - - Receive maximum rewards directly from the protocol for keeping your validator properly functioning and online - - Run home hardware and personally add to the security and decentralization of the Ethereum network - - Remove trust, and never give up control of the keys to your funds ---- - -## What is solo staking? {#what-is-solo-staking} - -Solo staking is the act of [running an Ethereum node](/run-a-node/) connected to the internet and depositing 32 ETH to activate a [validator](#faq), giving you the ability to participate directly in network consensus. - -**Solo staking increases the decentralization of the Ethereum network**, making Ethereum more censorship-resistant and robust against attacks. Other staking methods may not help the network in the same ways. Solo staking is the best staking option for securing Ethereum. - -An Ethereum node consists of both an execution layer (EL) client, as well as a consensus layer (CL) client. These clients are software that work together, along with a valid set of signing keys, to verify transactions and blocks, attest to the correct head of the chain, aggregate attestations, and propose blocks. - -Solo stakers are responsible for operating the hardware needed to run these clients. It is highly recommended to use a dedicated machine for this that you operate from home–this is extremely beneficial to the health of the network. - -A solo staker receives rewards directly from the protocol for keeping their validator properly functioning and online. - -## Why stake solo? {#why-stake-solo} - -Solo staking comes with more responsibility but provides you with maximum control over your funds and staking setup. - - - - - - - -## Considerations before staking solo {#considerations-before-staking-solo} - -As much as we wish that solo staking was accessible and risk free to everyone, this is not reality. There are some practical and serious considerations to keep in mind before choosing to solo stake your ETH. - - - -When operating your own node you should spend some time learning how to use the software you've chosen. This involves reading relevant documentation and being attune to communication channels of those dev teams. - -The more you understand about the software you're running and how proof-of-stake works, the less risky it will be as a staker, and the easier it will be to fix any issues that may arise along the way as a node operator. - - - -Node setup requires a reasonable comfort level when working with computers, although new tools are making this easier over time. Understanding of the command-line interface is helpful, but no longer strictly required. - -It also requires very basic hardware setup, and some understanding of minimum recommended specs. - - - -Just like how private keys secure your Ethereum address, you will need to generate keys specifically for your validator. You must understand how to keep any seed phrases or private keys safe and secure.{' '} - -Ethereum security and scam prevention - - - -Hardware occasionally fails, network connections error out, and client software occasionally needs upgrading. Node maintenance is inevitable and will occasionally require your attention. You'll want to be sure you stay aware of any anticipated network upgrades, or other critical client upgrades. - - - -Your rewards are proportional to the time your validator is online and properly attesting. Downtime incurs penalties proportional to how many other validators are offline at the same time, but does not result in slashing. Bandwidth also matters, as rewards are decreased for attestations that are not received in time. Requirements will vary, but a minimum of 10 Mb/s up and down is recommended. - - - -Different from inactivity penalties for being offline, slashing is a much more serious penalty reserved for malicious offenses. By running a minority client with your keys loaded on only one machine at time, your risk of being slashed is minimized. That being said, all stakers must be aware of the risks of slashing. - - More on slashing and validator lifecycle - - - - - -## How it works {#how-it-works} - - - -While active you will earn ETH rewards, which will be periodically deposited into your withdrawal address. - -If ever desired, you can exit as a validator which eliminates the requirement to be online, and stops any further rewards. Your remaining balance will then be withdrawn to the withdrawal address that you designate during setup. - -[More on staking withdrawals](/staking/withdrawals/) - -## Get started on the Staking Launchpad {#get-started-on-the-staking-launchpad} - -The Staking Launchpad is an open source application that will help you become a staker. It will guide you through choosing your clients, generate your keys and depositing your ETH to the staking deposit contract. A checklist is provided to make sure you've covered everything to get your validator set up safely. - - - -## What to consider with node and client setup tools {#node-tool-considerations} - -There are a growing number of tools and services to help you solo stake your ETH, but each come with different risks and benefits. - -Attribute indicators are used below to signal notable strengths or weaknesses a listed staking tool may have. Use this section as a reference for how we define these attributes while you’re choosing what tools to help with your staking journey. - - - -## Explore node and client setup tools {#node-and-client-tools} - -There are a variety of options available to help you with your setup. Use the above indicators to help guide you through the tools below. - - - -#### Node tools - - - -Please note the importance of choosing a [minority client](/developers/docs/nodes-and-clients/client-diversity/) as it improves the security of the network, and limits your risk. Tools that allow you to setup minority client are denoted as "multi-client." - -#### Key Generators - -These tools can be used as an alternative to the [Staking Deposit CLI](https://github.com/ethereum/staking-deposit-cli/) to help with key generation. - - - -Have a suggestion for a staking tool we missed? Check out our [product listing policy](/contributing/adding-staking-products/) to see if it would be a good fit, and to submit it for review. - -## Explore solo staking guides {#staking-guides} - - - -## Frequently asked questions {#faq} - -These are a few of the most common questions about staking that are worth knowing about. - - - -A validator is a virtual entity that lives on Ethereum and participates in the consensus of the Ethereum protocol. Validators are represented by a balance, public key, and other properties. A validator client is the software that acts on behalf of the validator by holding and using its private key. A single validator client can hold many key pairs, controlling many validators. - - - - -Each key-pair associated with a validator requires exactly 32 ETH to be activated. More ETH deposited to a single set of keys does not increase rewards potential, as each validator is limited to an effective balance of 32 ETH. This means that staking is done in 32 ETH increments, each with it's own set of keys and balance. - -Do not deposit more than 32 ETH for a single validator. It will not increase your rewards. If a withdrawal address has been set for the validator, excess funds over 32 ETH will be automatically withdrawn to this address during the next validator sweep. - -If solo staking seems too demanding for you, consider using a staking-as-a-service provider, or if you're working with less than 32 ETH, check out the staking pools. - - - -Going offline when the network is finalizing properly will NOT result in slashing. Small inactivity penalties are incurred if your validator is not available to attest for a given epoch (each 6.4 minutes long), but this is very different to slashing. These penalties are slightly less than the reward you would have earned had the validator been available to attest, and losses can be earned back with approximately an equal amount of time back online again. - -Note that penalties for inactivity are proportional to how many validators are offline at the same time. In cases where a large portion of the network is all offline at once, the penalties for each of these validators will be greater than when a single validator is unavailable. - -In extreme cases if the network stops finalizing as a result of more than a third of the validators being offline, these users will suffer what is known as a quadratic inactivity leak, which is an exponential drain of ETH from offline validator accounts. This enables the network to eventually self-heal by burning the ETH of inactive validators until their balance reaches 16 ETH, at which point they will be automatically ejected from the validator pool. The remaining online validators will eventually comprise over 2/3 the network again, satisfying the supermajority needed to once again finalize the chain. - - - -In short, this can never be fully guaranteed, but if you act in good faith, run a minority client and only keep your signing keys on one machine at a time, the risk of getting slashed is nearly zero. - -There are only a few specific ways that can result in a validator getting slashed and ejected from the network. At time of writing, the slashings that have occurred have been exclusively a product of redundant hardware setups where signing keys are stored on two separate machines at once. This can inadvertently result in a double vote from your keys, which is a slashable offense. - -Running a supermajority client (any client used by over 2/3 the network) also holds the risk of potential slashing in the event this client has a bug that results in a chain fork. This can result in a faulty fork that gets finalized. To correct back to the intended chain would require submitting a surround vote by trying to undo a finalized block. This is also a slashable offense and can be avoided simply by running a minority client instead. - -Equivalent bugs in a minority client would never finalize and thus would never result in a surround vote, and would simply result in inactivity penalties, not slashing. - - - - - -Individual clients may vary slightly in terms of performance and user interface, as each are developed by different teams using a variety of programming languages. That being said, none of them are "best." All production clients are excellent pieces of software, that all perform the same core functions to sync and interact with the blockchain. - -Since all production clients provide the same basic functionality, it is actually very important that you choose a minority client, meaning any client that is NOT currently being used by a majority of validators on the network. This may sound counterintuitive, but running a majority or supermajority client puts you at an increased risk of slashing in the event of a bug in that client. Running a minority client drastically limits these risks. - -Learn more about why client diversity is critical - - - -Although a virtual private server (VPS) can be used as a replacement to home hardware, the physical access and location of your validator client does matter. Centralized cloud solutions such as Amazon Web Services or Digital Ocean allow the convenience of not having to obtain and operate hardware, at the expense of centralizing the network. - -The more validator clients running on a single centralized cloud storage solution, the more dangerous it becomes for these users. Any event that takes these providers offline, whether by an attack, regulatory demands, or just power/internet outages, will result in every validator client that relies on this server to go offline at the same time. - -Offline penalties are proportional to how many others are offline at the same time. Using a VPS greatly increases the risk that offline penalties will be more severe, and increases your risk of quadratic leaking or slashing in the event the outage is large enough. To minimize your own risk, and the risk to the network, users are strongly encouraged to obtain and operate their own hardware. - - - - -Withdrawals of any kind from the Beacon Chain require withdrawal credentials to be set. - -New stakers set this at time of key generation and deposit. Existing stakers who did not already set this can upgrade their keys to support this functionality. - -Once withdrawal credentials are set, reward payments (accumulated ETH over the initial 32) will be periodically distributed to the withdrawal address automatically. - -To unlock and receive your entire balance back you must also complete the process of exiting your validator. - -More on staking withdrawals - - -## Further reading {#further-reading} - -- [The Ethereum Staking Directory](https://www.staking.directory/) - _Eridian and Spacesider_ -- [Ethereum's Client Diversity Problem](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ -- [Helping Client Diversity](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ -- [Client diversity on Ethereum's consensus layer](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ -- [How To: Shop For Ethereum Validator Hardware](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ -- [Step by Step: How to join the Ethereum 2.0 Testnet](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _Butta_ -- [Eth2 Slashing Prevention Tips](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raul Jordan 2020_ diff --git a/src/content/staking/withdrawals/index.md b/src/content/staking/withdrawals/index.md deleted file mode 100644 index a37863a2e46..00000000000 --- a/src/content/staking/withdrawals/index.md +++ /dev/null @@ -1,218 +0,0 @@ ---- -title: Staking withdrawals -description: Page summarizing what staking push withdrawals are, how they work, and what stakers need to do to get their rewards -lang: en -template: staking -image: ../../../assets/staking/leslie-withdrawal.png -alt: Leslie the rhino with her staking rewards -sidebarDepth: 2 -summaryPoints: - - The Shanghai/Capella upgrade enabled staking withdrawals on Ethereum - - Validator operators must provide a withdrawal address to enable - - Rewards are automatically distributed every few days - - Validators who fully exit staking will receive their remaining balance ---- - - -Staking withdrawals were enabled with the Shanghai/Capella upgrade which occurred on April 12, 2023. More about Shanghai/Capella - - -**Staking withdrawals** refer to transfers of ETH from a validator account on Ethereum's consensus layer (the Beacon Chain), to the execution layer where it can be transacted with. - -**Reward payments of excess balance** over 32 ETH will automatically and regularly be sent to a withdrawal address linked to each validator, once provided by the user. Users can also **exit staking entirely**, unlocking their full validator balance. - -## Staking rewards {#staking-rewards} - -Reward payments are automatically processed for active validator accounts with a maxed out effective balance of 32 ETH. - -Any balance above 32 ETH earned through rewards does not actually contribute to principal, or increase the weight of this validator on the network, and is thus automatically withdrawn as a reward payment every few days. Aside from providing a withdrawal address one time, these rewards do not require any action from the validator operator. This is all initiated on the consensus layer, thus no gas (transaction fee) is required at any step. - -### How did we get here? {#how-did-we-get-here} - -Over the past few years Ethereum has undergone several network upgrades transitioning to a network secured by ETH itself, instead of energy-intensive mining as it once was. Participating in consensus on Ethereum is now known as "staking", as participants have voluntarily locked up ETH, placing it "at stake" for the ability to participate in the network. Users who follow the rules will be rewarded, while attempts to cheat can be penalized. - -Since the launch of the staking deposit contract in November 2020, some brave Ethereum pioneers have voluntarily locked funds up to activate "validators", special accounts that have the right to formally attest to and propose blocks, following network rules. - -Before the Shanghai/Capella upgrade, you couldn't use or access your staked ETH. But now, you can opt-in to automatically receive your rewards into a chosen account, and you can also withdraw your staked ETH whenever you want. - -### How do I prepare? {#how-do-i-prepare} - - - -### Important notices {#important-notices} - -Providing a withdrawal address is a required step for any validator account before it will be eligible to have ETH withdrawn from its balance. - - - Each validator account can only be assigned a single withdrawal address, one time. Once an address is chosen and submitted to the consensus layer, this cannot be undone or changed again. Double-check ownership and accuracy of the address provided before submitting. - - -There is no threat to your funds in the meantime for not providing this, assuming your mnemonic/seed phrase has remained safe offline, and has not been compromised in any way. Failure to add withdrawal credentials will simply leave the ETH locked in the validator account as it has been until a withdrawal address is provided. - -## Exiting staking entirely {#exiting-staking-entirely} - -Providing a withdrawal address is required before _any_ funds can be transferred out of a validator account balance. - -Users looking to exit staking entirely and withdraw their full balance back must also sign and broadcast a "voluntary exit" message with validator keys which will start the process of exiting from staking. This is done with your validator client and submitted to your consensus node, and does not require gas. - -The process of a validator exiting from staking takes variable amounts of time, depending on how many others are exiting at the same time. Once complete, this account will no longer be responsible for performing validator network duties, is no longer eligible for rewards, and no longer has their ETH "at stake". At this time the account will be marked as fully “withdrawable”. - -Once an account is flagged as "withdrawable", and withdrawal credentials have been provided, there is nothing more a user needs to do aside from wait. Accounts are automatically and continuously swept by block proposers for eligible exited funds, and your account balance will be transferred in full (also known as a "full withdrawal") during the next sweep. - -## When are staking withdrawals enabled? {#when} - -Staking withdrawals are live! Withdrawal functionality was enabled as part of the Shanghai/Capella upgrade which occurred on April 12, 2023. - -The Shanghai/Capella upgrade enabled previously staked ETH to be reclaimed into regular Ethereum accounts. This closed the loop on staking liquidity, and brought Ethereum one step closer on its journey towards building a sustainable, scalable, secure decentralized ecosystem. - -- [More on Ethereum history](/history/) -- [More on the Ethereum roadmap](/roadmap/) - -## How do withdrawal payments work? {#how-do-withdrawals-work} - -Whether a given validator is eligible for a withdrawal or not is determined by the state of the validator account itself. No user input is needed at any given time to determine whether an account should have a withdrawal initiated or not—the entire process is done automatically by the consensus layer on a continuous loop. - -### More of a visual learner? {#visual-learner} - -Check out this explanation of Ethereum staking withdrawals by Finematics: - - - -### Validator "sweeping" {#validator-sweeping} - -When a validator is scheduled to propose the next block, it is required to build a withdrawal queue, of up to 16 eligible withdrawals. This is done by originally starting with validator index 0, determining if there is an eligible withdrawal for this account per the rules of the protocol, and adding it to the queue if there is. The validator set to propose the following block will pick up where the last one left off, progressing in order indefinitely. - - -Think about an analogue clock. The hand on the clock points to the hour, progresses in one direction, doesn’t skip any hours, and eventually wraps around to the beginning again after the last number is reached.

-Now instead of 1 through 12, imagine the clock has 0 through N (the total number of validator accounts that have ever been registered on the consensus layer, over 500,000 as of Jan 2023).

-The hand on the clock points to the next validator that needs to be checked for eligible withdrawals. It starts at 0, and progresses all the way around without skipping any accounts. When the last validator is reached, the cycle continues back at the beginning. -
- -#### Checking an account for withdrawals {#checking-an-account-for-withdrawals} - -While a proposer is sweeping through validators for possible withdrawals, each validator being checked is evaluated against a short series of questions to determine if a withdrawal should be triggered, and if so, how much ETH should be withdrawn. - -1. **Has a withdrawal address been provided?** If no withdrawal address has been provided, the account is skipped and no withdrawal initiated. -2. **Is the validator exited and withdrawable?** If the validator has fully exited, and we have reached the epoch where their account is considered to be "withdrawable", then a full withdrawal will be processed. This will transfer the entire remaining balance to the withdrawal address. -3. **Is the effective balance maxed out at 32?** If the account has withdrawal credentials, is not fully exited, and has rewards above 32 waiting, a partial withdrawal will be processed which transfers only the rewards above 32 to the user's withdrawal address. - -There are only two actions that are taken by validator operators during the course of a validator's life cycle that influence this flow directly: - -- Provide withdrawal credentials to enable any form of withdrawal -- Exit from the network, which will trigger a full withdrawal - -### Gas free {#gas-free} - -This approach to staking withdrawals avoids requiring stakers to manually submit a transaction requesting a particular amount of ETH to be withdrawn. This means there is **no gas (transaction fee) required**, and withdrawals also do not compete for existing execution layer block space. - -### How frequently will I get my staking rewards? {#how-soon} - -A maximum of 16 withdrawals can be processed in a single block. At that rate, 115,200 validator withdrawals can be processed per day (assuming no missed slots). As noted above, validators without eligible withdrawals will be skipped, decreasing the time to finish the sweep. - -Expanding this calculation, we can estimate the time it will take to process a given number of withdrawals: - - - -| Number of withdrawals | Time to complete | -| :-------------------: | :--------------: | -| 400,000 | 3.5 days | -| 500,000 | 4.3 days | -| 600,000 | 5.2 days | -| 700,000 | 6.1 days | -| 800,000 | 7.0 days | - - - -As you see this slows down as more validators are on the network. An increase in missed slots could slow this down proportionally, but this will generally represent the slower side of possible outcomes. - -## Frequently asked questions {#faq} - - -No, the process to provide withdrawal credentials is a one-time process, and cannot be changed once submitted. - - - -By setting an execution layer withdrawal address the withdrawal credentials for that validator have permanently been changed. This means the old credentials will no longer work, and the new credentials direct to an execution layer account. - -Withdrawal addresses can be either a smart contract (controlled by its code), or an externally owned account (EOA, controlled by its private key). Currently these accounts have no way to communicate a message back to the consensus layer that would signal a change of validator credentials, and adding this functionality would add unnecessary complexity to the protocol. - -As an alternative to changing the withdrawal address for a particular validator, users may choose to set a smart contract as their withdrawal address which could handle key rotating, such as a Safe. Users who set their funds to their own EOA can perform a full exit to withdraw all of their staked funds, and then re-stake using new credentials. - - - - -If you are part of a staking pool or hold staking tokens, you should check with your provider for more details about how staking withdrawals are handled, as each service operates differently. - -In general, users should be free to reclaim their underlying staked ETH, or change which staking provider they utilize. If a particular pool is getting too large, funds can be exited, redeemed, and re-staked with a smaller provider. Or, if you’ve accumulated enough ETH you could stake from home. - - - - -Yes, as long as your validator has provided a withdrawal address. This must be provided once to initially enable any withdrawals, then reward payments will be automatically triggered every few days with each validator sweep. - - - - -No, if your validator is still active on the network, a full withdrawal will not happen automatically. This requires manually initiating a voluntary exit. - -Once a validator has completed the exiting process, and assuming the account has withdrawal credentials, the remaining balance will then be withdrawn during the next validator sweep. - - - - -Withdrawals are designed to be pushed automatically, transferring any ETH that is not actively contributing to stake. This includes full balances for accounts that have completed the exiting process. - -It is not possible to manually request specific amounts of ETH to be withdrawn. - - - - -Validator operators are recommended to visit the Staking Launchpad Withdrawals page where you'll find more details about how to prepare your validator for withdrawals, timing of events, and more details about how withdrawals function. - -To try out your setup on a testnet first, visit the the Goerli Testnet Staking Launchpad to get started. - - - - -No. Once a validator has exited and its full balance has been withdrawn, any additional funds deposited to that validator will automatically be transferred to the withdrawal address during the next validator sweep. To re-stake ETH, a new validator must be activated. - - -## Further reading {#further-reading} - -- [Staking Launchpad Withdrawals](https://launchpad.ethereum.org/withdrawals) -- [EIP-4895: Beacon chain push withdrawals as operations](https://eips.ethereum.org/EIPS/eip-4895) -- [Ethereum Cat Herders - Shanghai](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) -- [PEEPanEIP #94: Staked ETH Withdrawal (Testing) with Potuz & Hsiao-Wei Wang](https://www.youtube.com/watch?v=G8UstwmGtyE) -- [PEEPanEIP#68: EIP-4895: Beacon chain push withdrawals as operations with Alex Stokes](https://www.youtube.com/watch?v=CcL9RJBljUs) -- [Understanding Validator Effective Balance](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/am/nft/index.md b/src/content/translations/am/nft/index.md deleted file mode 100644 index 5b0e04e3efa..00000000000 --- a/src/content/translations/am/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: የማይተኩ ቶከኖች (NFT) -description: በኢቲሪየም ላይ ስላሉ NFTዎች አጠቃላይ እይታ -lang: am -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: በሆሎግራም አማካኝነት የሚታየው የETH አርማ. -summaryPoint1: ማንኛውንም ልዩ የሆነ ነገር የሚወከልበት መንገድ እንደ ኢቴሪየም-ተኮር ንብረት። -summaryPoint2: NFTዎች ከበፊቱ በበለጠ ለይዘት ፈጣሪዎች የበለጠ ኃይል እየሰጡ ነው። -summaryPoint3: በኢቲሪየም ብሎክቼን ላይ በዘመናዊ ውሎች የጎለበቱ። ---- - -## NFTዎች ምንድናቸው? {#what-are-nfts} - -እያንዳንዳቸው NFTዎች ልዩ የሆኑ ቶከኖች ናቸው። እያንዳንዱ NFT የተለያዩ ንብረቶች አሉዋቸው (የማይተኩ) እና በጣም በትንሽ ብዛት ይገኛሉ። ይህም ከእንደ ERC-20 ቶከኖች እያንዳንዱ ሚመሳሰሉ በአንድ ስብስብ ውስጥ እንዳሉ ቶከኖች ከተመሳሳይ ባህሪያት ካላቸው ('የሚተኩ') ይለያል። በቦርሳህ ውስጥ የትኛው የተለየ የዶላር ገንዘብ እንዳለህ ግድ አይልህም፣ ምክንያቱም ሁሉም ተመሳሳይ እና ዋጋቸው አንድአይነት ነው። ነገር ግን፣ እርስዎ የየትኛው NFT ባለቤት _እንደሆኑ_ ይጨነቃሉ፣ ምክንያቱም ሁሉም ከሌሎች የሚለያቸው ('የማይተካ') የግል ንብረቶች ስላሏቸው ነው። - -የእያንዳንዱ NFT ልዩነት እንደ ስነ ጥበብ፣ ተሰብሳቢ ነገሮች ወይም ሪል እስቴት ያሉ ነገሮችን በቶከን መወከል ያስችላል፣ አንድ ልዩ NFT የተወሰነ ልዩ እውነተኛ ዓለም ወይም ዲጂታል ንጥል ነገርን ይወክላል። የንብረት ባለቤትነት በኢቲሪየም ብሎክቼን የተጠበቀ ነው - ማንም ሰው የባለቤትነት መዝገብን ማሻሻል ወይም አዲስ NFT ገልብጦ/ለጥፎ ወደ ማኖር ማድረግ አይችልም። - - - -## የንብረቶች በይነ መረብ {#internet-of-assets} - -NFT እና ኢቲሪየም በአሁኑ ጊዜ በይነመረብ ላይ ያሉትን አንዳንድ ችግሮች ይፈታሉ፡፡ ሁሉም ነገር ዲጂታል እየሆነ ሲመጣ የአካላዊ ንጥሎችን እንደ እጥረት፣ ልዩነት እና የባለቤትነት ማረጋገጫ ያሉ ባህሪያት የማባዛት ፍላጎት ይጨምራል። በማዕከላዊ አካል ቁጥጥር ስር ባልሆነ መንገድ። ለምሳሌ NFTዎችን በመጠቀም በአንድ በተወሰነ ኩባንያ የሙዚቃ መተግበሪያ ላይ ያልተወሰነ የmp3 የሙዚቃ ባለቤት መሆን ይችላሉ ወይም በመድረክ አቅራቢው በዘፈቀደ ከእርስዎ ሊወሰድ የማይችል ፣ መሸጥ ወይም መቀየር የሚችሉት የማህበራዊ ሚዲያ መያዣ ስም ባለቤት መሆን ይችላሉ ። - -ዛሬ ብዙዎቻችን የምንጠቀመው በይነ መረብ ከNFTዎች በይነ መረብ ጋር ሲወዳደር ምን እንደሚመስል እነሆ... - -### ንጽጽር {#nft-comparison} - -| የNFT በይነ መረብ | የዛሬው በይነ መረብ | -| ------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | -| የንብረቶችዎ ባለቤት ነዎት! መሸጥ ወይም መቀየር የሚችሉት እርስዎ ብቻ ነዎት። | ከአንዳንድ ድርጅት ንብረት ይከራያሉ። | -| NFTዎች የዲጂታል ልዩነት አላቸው፣ ሁለት NFTዎች መቼም አንድ አይደሉም። | የአንድን ስራ ቅጂ ብዙውን ጊዜ ከዋናው ስራ መለየት አይቻልም። | -| የNFT ባለቤትነት በማንም ሰው እንዲረጋገጥ በብሎክቼይን ላይ ይቀመጣል። | የዲጂታል እቃዎች ባለቤትነት መዝገቦች በተቋማት ቁጥጥር ስር ባሉ ሰርቨሮች ላይ ተቀምጠዋል - የእነሱን ቃል ማመን አለብዎት። | -| NFTዎች በኢቲርየም ላይ ያሉ ዘመናዊ ውሎች ናቸው። ይህ ማለት በኢተርየም ላይ ባሉ ሌሎች ዘመናዊ ውሎች እና መተግበሪያዎች ውስጥ በቀላሉ ጥቅም ላይ ሊውሉ ይችላሉ! | የዲጅታል ምርቶች ያላቸው ኩባንያዎች አብዛኛውን ጊዜ የራሳቸው "የታጠረ" መሠረተ ልማት ያስፈልጋቸዋል። | -| የሚድያ ስራ ፈጣሪዎች ስራቸውን በየትኛውም ቦታ መሸጥ እና አለምአቀፍ ገበያ ማግኘት ይችላሉ። | ፈጣሪዎች በሚጠቀሙባቸው መድረኮች መሠረተ ልማት እና ስርጭት ላይ ይወሰናሉ። እነዚህ ብዙውን ጊዜ በአጠቃቀም ውሎች እና በጂኦግራፊያዊ ገደቦች ስር ተገዢ ናቸው። | -| የNFT ፈጣሪዎች በራሳቸው ስራ ላይ የባለቤትነት መብቶችን ይዘው መቆየት እና የሮያሊቲ ክፍያን በቀጥታ በNFT ውል ማስገባት ይችላሉ። | እንደ የሙዚቃ ማሰራጫያ ያሉ አገልግሎቶችን የሚያቀርቡ መድረኮች ከሽያጮች የሚገኘውን አብዛኛው ትርፍ ያወስዳሉ። | - -## NFTዎች እንዴት ይሰራሉ? {#how-nfts-work} - -በኢተርየም ላይ እንደ ማንኛውም ቶከን፣ NFTዎች በዘመናዊ ውሎች ይሰጣሉ። ዘመናዊ ውሉ ምን ተግባራትን እንደሚፈጽም ከሚገልጹት ከበርካታ የNFT መስፈርቶች (በተለምዶ ERC-721 ወይም ERC-1155) ጋር የሚስማማ ነው። ኮንትራቱ NFTዎችን መፍጠር('ሚንት') እንዲሁም ለአንድ ለተወሰነ ባለቤት ሊመድባቸው ይችላል። ባለቤትነት በውሉ ውስጥ የተወሰኑ NFTዎችን ወደ ተወሰኑ አድራሻዎች በማጓደን ይገለጻል። NFT መታወቂያ እና በተለምዶ አብሮት የተያያዘ ሜታዳታ አለው ይህም አንድ የተወሰነን ቶከን ልዩ የሚያደርገው ነው። - -አንድ ሰው NFTን ሲፈጥር ወይም ሚንት ሲያደርግ፣ በአድራሻቸው ላይ የተለየ NFTን የሚመድበውን የዘመናዊ ውል ተግባር እየፈጸሙ ነው። ይህ መረጃ የብሎክቼይን አካል በሆነው በውሉ ማከማቻ ውስጥ ይቀመጣል። የውል ፈጣሪው ተጨማሪ አመክንዮ በውሉ ላይ ሊጽፍ ይችላል፣ ለምሳሌ አጠቃላይ አቅርቦቱን መገደብ ወይም ቶከን በተላለፈ ቁጥር ለፈጣሪው የሚከፈለውን ሮያሊቲ መወሰን። - -## NFTዎች ለምን ይጠቅማሉ? {#nft-use-cases} - -NFTዎች ለብዙ ነገሮች ይጠቅማሉ ። ከእነዚህም ውስጥ: - -- በአንድ ዝግጅት ላይ መሳተፍዎን ለማረጋገጥ -- አንድን ስልጠና ማጠናቀቆን ለማረጋገጥ -- በባለቤትነት ሊወስድዋቸው የሚችሉ የጨዋታዎች እቃዎች -- የዲጅታል ጥበብ -- የእውን ዓለም ንብረቶችን በቶክን ለመወከል -- የኦንላይን ማንነትዎን ለማረጋገጥ -- ልዩ የሆኑ ይዘቶችን ለማግኘት -- ትኬት ለመቁረጥ -- ላልተማከሉ የበይነ መረብ ዶሜይን ስሞች -- በDeFi ውስጥ ለማስያዣ - -ምናልባት NFTዎን በመጠቀም የስራዎችዎን ቁጥጥር ሳያጡ እና ትርፍዎን ለሁለተኛ ወገን መስዋዕት ሳያደርጉ ማጋራት የሚፈልግ አርቲስት ነዎት። አዲስ ውል በመፍጠር የNFTዎችን ብዛት እና ባህሪያቶቻቸውን መወሰን እንዲሁም ክተወሰኑ የስነጥበብ ስራዎች ጋር ማገናኘትን ይችላሉ። አርቲስቱ እንደመሆንዎ መጠን መከፈል ያለብዎትን የሮያሊቲ ክፍያን (ለምሳሌ NFT በተላለፈ ቁጥር 5% የሽያጭ ዋጋ ለውሉ ባለቤት ማስተላለፍን) ወደ ዘመናዊ ውሉ ፕሮግራም ማድረግ ይችላሉ። እንዲሁም ውሉን የለቀቀው ቦርሳ ባለቤት ስለሆኑ NFTዎችን እንደፈጠሩ ሁልጊዜ ማረጋገጥ ይችላሉ። ቦርሳ አድራሻቸው ከዘመናዊ ውሎ ውስጥ ካለ ቶከን ጋር የተቆራኘ ስለሆነ፣ ገዢዎችዎ ከስብስብዎ ትክክለኛ የNFT ባለቤት መሆኖን በቀላሉ ማረጋገጥ ይችላሉ። በእውነተኛነቱ በመተማመን በኢተርየም ሥነ ምህዳር ላይ ሊጠቀሙበት ይችላሉ። - -ወይም ለአንድ ስፖርታዊ ዝግጅት ቲኬት ያስቡ። የአንድ ዝግጅት አዘጋጅ ምን ያህል ትኬቶችን እንደሚሸጥ እንደሚመወስን ሁሉ የNFT ፈጣሪዎችም ምን ያህል ቅጂዎች እንዳሉ ሊወስኑ ይችላል። አንዳንድ ጊዜ አንድ አይነት ቅጂዎች ናቸው ለምሳሌ 5000 ጠቅላላ የመግቢያ ትኬቶች። አንዳንድ ጊዜ በርካቶች በጣም ተመሳሳይ ሆነው ነገር ግን እያንዳንዳቸው በትንሹ የሚለያዩ ለየት ባለመልክ ሊመረቱ ይችላሉ ለምሳሌ በቲኬቱ የተመደበ መቀመጫ። ለቲኬት ሻጮች ሳይከፍሉ አቻ ለአቻ ሊገዙ እና ሊሸጡ ይችላሉ እንዲሁም ገዢው ሁልጊዜ የውሉን አድራሻ በማጣራት የቲኬቱን ትክክለኛነት በማረጋገጥ ። - -በethereum.org ላይ ሰዎች በእኛ የGitHub ማከማቻ ላይ አስተዋፅዖ እንዳደረጉ ወይም ጥሪዎች ላይ እንደተገኙ ለማሳየት NFTዎች ይጠቅማሉ በተጨማሪም የራሳችን የNFT ዶሜይን ስም አለን። ለethereum.org አስተዋጽዎ ካደረጉ፣ የPOAP NFTን ማግኘት ይችላሉ። አንዳንድ የክሪፕቶ ዝግጅቶች POAPን እንደ ቲኬቶች ይጤቀማሉ። [ስለማበርከት ተጨማሪ](/contributing/#poap). - -![ethereum.org POAP](./poap.png) - -ይህ ድር ጣቢያ በNFTዎች የተሰራ አማራጭ የዶሜይን ስም አለው **ethereum.eth**. `.org` አድራሻችን በዶሜይን ስም ስርዓት (DNS) የቀረበ በማእከላዊነት የሚተዳደረው ሲሆን `.eth` ደግሞ በኢተርየም ስም አገልግሎት (ENS) በኩል በ ኢተርየም ላይ ተመዝግቧል። እንዲሁም በእኛ ባለቤትነት የተያዘ እና የሚተዳደር ነው። [የENS መዝገባችንን ይመልከቱ](https://app.ens.domains/name/ethereum.eth) - -[ስለ ENS ተጨማሪ መረጃ](https://app.ens.domains) - - - -### የNFT ደህንነት {#nft-security} - -የኢቴሪየም ደህንነት የሚመጣው ከቀብድ ማረጋገጫ ነው። ስርዓቱ ተንኮል-አዘል ድርጊቶችን በኢኮኖሚ ለማሰናከል የተታለመ ሲሆን ይህም ኢቴሬምን ደህንነቱ የጠበቀ እንዲሆን ያደርገዋል። NFTዎችን እውን የሚያደርገው ይህ ነው። የእርስዎን NFT ግብይት የያዘው ብሎክ አንዴ ከተጠናቀቀ አንድ ሰርጎገን እሱን ለመቀየር በሚሊዮኖች የሚቆጠር ETH ያስከፍላል። ማንኛውም የኢተርየም ሶፍትዌርን የሚያንቀሳቅስ ሰው በNFT ላይ ሐቀኝነት የጎደለው ድርጊት ክተፈጥረ ወዲያውኑ ማወቅ ይችላል፣ እና መጥፎው ተዋናይ በኢኮኖሚ ይቀጣል እና ይባረራል። - -የደህንነት ጉዳዮች ከNFTዎች ጋር ተያይዞ ብዙ ጊዜ ከማስመሰል ማጭበርበሮች፣ ከዘመናዊ ውል ድክመቶች ወይም ከተጠቃሚ ስህተቶች (ልክ እንደ ሳያውቁ የግል ቁልፎችን ማጋለጥ) የተገናኙ ስለሆነ፣ ጥሩ የቦርሳ ደህንነትን ለNFT ባለቤቶች ወሳኝ አድርጎታል። - - - ስለ ደህንነት ተጨማሪ መረጃ - - -## Further reading {#further-reading} - -- [ለጀማሪዎች የNFTs መመሪያ](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _ሊንዳ ዢ፣ ጃንዋሪ 2020_ -- [EtherscanNFT መከታተያ](https://etherscan.io/nft-top-contracts) -- [የERC-721 ቶከን መስፈርት](/developers/docs/standards/tokens/erc-721/) -- [የERC-1155 ቶከን መስፈርት](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/ar/dao/index.md b/src/content/translations/ar/dao/index.md deleted file mode 100644 index 306fee763b6..00000000000 --- a/src/content/translations/ar/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: المنظمات المستقلة اللامركزية (DAO) -description: نظرة عامة على المنظمات المستقلة اللامركزية (DAO) على إثيريوم -lang: ar -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: تمثيل لمنظمة مستقلة لامركزية تصوّت على مقترح. -summaryPoint1: المجتمعات التي يملكها الأعضاء دون قيادة مركزية. -summaryPoint2: طريقة آمنة للتعاون مع الغرباء على الإنترنت. -summaryPoint3: مكان آمن لتخصيص أموال لسبب محدد. ---- - -## ما هي المنظمات المستقلة اللامركزية؟ {#what-are-daos} - -المنظمة المستقلة اللامركزية هي منظمة مملوكة جماعيًا ومُدارة بسلسلة الكتل تعمل لتحقيق مهمة مشتركة. - -تتيح لنا المنظمات المستقلة اللامركزية العمل مع أشخاص يشاركوننا نفس التفكير من جميع أنحاء العالم دون الحاجة إلى الثقة في قائد محب للخير لإدارة الأموال أو العمليات. ليست هناك حاجة إلى رئيس تتفيذي ينفق الأموال على هواه أو رئيس مالي قادر على التلاعب بالسجلات المالية. بدلاً من ذلك، إن القواعد القائمة على سلاسل الكتل والمخزنة على شكل تعليمات برمجية تضبط طريقة عمل المنظمة وكيفية إنفاق الأموال. - -توجد لديها خزائن داخلية لا يتمتع أحد بحق الوصول إليها دون الموافقة الجماعية. تُدار عملية اتخاذ القرار بواسطة طرح المقترحات ثم التصويت عليها لضمان إشراك كل أفراد المنظمة في اتخاذ القرار، وأن كل الإجراءات في السلسلة تتم بشفافية. - -## لماذا نحتاج إلى المنظمات المستقلة اللامركزية؟ {#why-dao} - -إن تأسيس منظمة بالشراكة مع شخص ما بحيث تشمل الشراكة تعاملات تمويلية ومالية هو أمر يتطلب ثقة قوية ومتبادلة بين الأطراف الذين تعمل معهم. ولكن قد يصعب أن نثق بأشخاص لم نتعامل معهم إلا عبر الإنترنت. مع المنظمات المستقلة اللامركزية لن تحتاج إلى الوثوق بأفراد المجموعة، ما عليك سوى الوثوق بالتعليمات البرمجية للمنظمة المستقلة اللامركزية، والتي تتسم بالشفافية بنسبة 100% وإمكانية التحقق منها من قِبَل أي شخص. - -يتيح ذلك فرصًا جديدة وكثيرة للتعاون والتنسيق على الصعيد العالمي. - -### مقارنة {#dao-comparison} - -| المنظمة المستقلة اللامركزية | منظمة تقليدية | -| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------- | -| عادةً ما تكون غير هرمية وديمقراطية الإدارة تمامًا. | ذات سلطة إدارية هرمية عادةً. | -| يشترط الأعضاء إجراء تصويت على أي تغييرات يلزم تنفيذها. | تبعًا للهيكل، يمكن أن يطلب طرف واحد إجراء التغييرات، أو ربما يتم استخدام التصويت. | -| يتم عد الأصوات وتنفَّذ النتيجة تلقائيًا دون وسيط موثوق به. | إذا سُمح بالتصويت، فإن الأصوات يتم عدها داخليًا، ويجب معالجة نتيجة التصويت يدويًا. | -| يتم التعامل مع الخدمات المقدمة تلقائيًا بطريقة لامركزية (مثل توزيع الأموال الخيرية). | تتطلب التعامل البشري، أو التشغيل الآلي الخاضع للرقابة المركزية، وكلاهما معرض للتلاعب. | -| جميع الأنشطة تتمتع بالشفافية وعلنية بشكل كامل. | عادةً ما تكون الأنشطة خاصة وتقتصر على الجمهور. | - -### أمثلة على المنظمات المستقلة اللامركزية {#dao-examples} - -لجعل الأمر أسهل للاستيعاب، إليك بعض الأمثلة على كيفية استخدام المنظمات المستقلة اللامركزية: - -- الأعمال الخيرية – يمكنك قبول تبرعات من أي شخص في العالم والتصويت على الوجهة المُرادة للتبرع. -- الملكية الجماعية – يمكنك شراء الأصول المادية أو الرقمية حيث يمكن للأعضاء التصويت على كيفية استخدامها. -- المشروعات المشتركة والمنح – يمكنك إنشاء صندوق مشروع مشترك لجمع رأس المال للاستثمارات والتصويت على المشروعات المشتركة المُراد دعمها. يمكن فيما بعد إعادة توزيع الأموال المسددة فيما بين أعضاء المنظمة المستقلة اللامركزية. - -## كيف تعمل المنظمات المستقلة اللامركزية؟ {#how-daos-work} - -إن الركيزة الأساسية للمنظمة المستقلة اللامركزية هي عقدها الذكي، والذي يحدد قواعد المنظمة ويحتفظ بخزينة المجموعة. بمجرد تفعيل العقد ضمن إثيريوم، لا يمكن لأحد أن يغير القواعد إلا بالتصويت. إذا حاول شخص ما إجراء عملية لا تشملها القواعد والمنطق في التعليمات البرمجية، فسيفشل في ذلك. ولأن الخزينة مُدارة بواسطة العقد الذكي أيضًا، لا يمكن لأحد أن ينفق المال دون الحصول على موافقة المجموعة. يعني ذلك أن المنظمة المستقلة اللامركزية لا تحتاج إلى سلطة مركزية. وبدلاً من ذلك، تتخذ المجموعة قرارات جماعية، ويتم التصريح بالمدفوعات تلقائيًا عند اعتماد الأصوات. - -هذا ممكن لأنه لا يمكن التلاعب بالعقود الذكية بعد تفعيلها ضمن إثيريوم. لا يمكنك تعديل التعليمات البرمجية (قواعد المنظمات المستقلة اللامركزية) دون ملاحظة الأشخاص ذلك لأن كل شيء عام. - - - المزيد عن العقود الذكية - - -## إثيريوم والمنظمات المستقلة اللامركزية {#ethereum-and-daos} - -تُعد إثيريوم الأساس المثالي للمنظمات المستقلة اللامركزية لعدة أسباب: - -- إن إجماع الآراء الخاص بإثيريوم يتم توزيعه وتأسيسه بالقدر الكافي الذي يجعل المنظمات تثق بالشبكة. -- لا يمكن تعديل التعليمات البرمجية للعقد الذكي بمجرد تفعيلها، حتى من قِبَل مالكيها. يسمح ذلك للمنظمة المستقلة اللامركزية بالعمل وفقًا للقواعد التي تمت برمجتها عليها. -- العقود الذكية قادرة على إرسال الأموال وتلقيها. وبدون هذا ستحتاج إلى وسيط موثوق به لإدارة أموال المجموعة. -- وقد أثبت مجتمع إثيريوم أن روحه التعاونية أكبر من روحه التنافسية، ما يسرّع إبراز أفضل الممارسات ونظم الدعم. - -## إرشادات المنظمة المستقلة اللامركزية {#dao-governance} - -هناك اعتبارات عديدة عند إعداد إرشادات المنظمة المستقلة اللامركزية، مثل كيفية اجراء التصويت وتقديم المقترحات. - -### التفويض {#governance-delegation} - -التفويض يشبه إصدار المنظمة المستقلة اللامركزية من الديمقراطية التمثيلية. يفوض ملاك الرموز المميزة أصواتهم للمستخدمين الذين يرشحون أنفسهم ويلتزمون بتوجيه البروتوكول ويبقون على اطلاع دائم عليه. - -#### مثال شهير {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) – يمكن لملاك خدمة اسم إثيريوم تفويض أصواتهم لأعضاء المجتمع المطلعين لتمثيلهم. - -### إرشادات المعاملات الآلية {#governance-example} - -في العديد من المنظمات المستقلة اللامركزية، سيتم تنفيذ المعاملات تلقائيًا إذا صوت النِصاب القانوني من الأعضاء بالإيجاب. - -#### مثال شهير {#governance-example} - -[Nouns](https://nouns.wtf) – في المنظمة المستقلة اللامركزية Nouns، يتم تنفيذ المعاملات تلقائيًا إذا تم استيفاء النصاب القانوني من الأصوات وصوّت الأغلبية بالإيجاب، وما لم يتم التصويت من قِبَل المؤسسين. - -### إرشادات التوقيعات المتعددة {#governance-example} - -في حين أن المنظمات المستقلة اللامركزية قد تضم الآلاف من الأعضاء المصوتين، يمكن أن تبقى الأموال في محفظة مشتركة بين 5-20 من أعضاء المجتمع النشطين الموثوق بهم وعادة ما تكون هوياتهم معروفة (الشخصيات العامة المعروفة للمجتمع). وبعد التصويت، يقوم الموقعون الذين لديهم توقيعات متعددة بتنفيذ إرادة المجتمع. - -## قوانين المنظمة المستقلة اللامركزية {#dao-laws} - -في عام 1977، أقرت ولاية وايومنغ في الولايات المتحدة قانون الشركة ذات المسؤولية المحدودة (LLC) الذي يحمي أصحاب المشاريع ويحد من مسؤوليتهم. ومؤخرًا، اضطلعت بدور رائد في وضع قانون المنظمات المستقلة اللامركزية ليحدد الوضع القانوني للمنظمات المستقلة اللامركزية. حاليًا يوجد في ولاية وايومنغ وفيرمونت وجزر فيرجن في الولايات المتحدة قوانين المنظمات المستقلة اللامركزية بأحد نماذجها. - -#### مثال شهير {#law-example} - -[CityDAO](https://citydao.io) – استخدمت CityDAO قانون المنظمات المستقلة اللامركزية الذي وضعته ولاية وايومنغ لشراء 40 فدانًا من الأراضي بالقرب من متنزه يلوستون الوطني. - -## عضوية المنظمات المستقلة اللامركزية {#dao-membership} - -توجد نماذج مختلفة للعضوية في المنظمة المستقلة اللامركزية. يمكن للعضوية أن تحدد كيف يتم التصويت والأجزاء الرئيسية الأخرى في المنظمة المستقلة اللامركزية. - -### العضوية القائمة على الرمز المميز {#token-based-membership} - -لا تحتاج عادةً إلى أي تصريح، وذلك يعتمد على الرمز المميز المُستخدم. يمكن تداول معظم هذه الرموز المميزة الخاصة بالإرشادات دون تصريح في عملية تبادل لامركزية. يجب أن يتم الحصول على الرموز المميزة الأخرى من خلال تقديم سيولة أو غيرها من "إثباتات العمل". في كلتا الحالتين، مجرد امتلاك الرمز المميز يمنح الحق في الوصول إلى عملية التصويت. - -_عادةً ما تُستخدم لتقديم الإرشادات إلى عدد كبير من البروتوكولات اللامركزية و/أو الرموز المميزة نفسها._ - -#### مثال شهير {#token-example} - -[MakerDAO](https://makerdao.com) – إن الرمز المميز MKR الخاص بـ MakerDAO متاح على نطاق واسع في عمليات التبادل اللامركزية ويمكن لأي شخص أن يشتري قوة التصويت على مستقبل بروتوكول Maker. - -### العضوية القائمة على الأسهم {#share-based-membership} - -المنظمات المستقلة اللامركزية القائمة على الأسهم تتطلب التصاريح إلى حد ما، ولكنها لا تزال مفتوحة تمامًا. يمكن للراغبين في الحصول على العضوية تقديم مقترح للانضمام إلى المنظمة المستقلة اللامركزية، وعادةً ما يقدمون مقابلاً ذا قيمة على شكل رموز مميزة أو عمل. تمثل الأسهم قوة التصويت المباشر وحقوق الملكية. يمكن للأعضاء الخروج في أي وقت مصطحبين معهم حصتهم النسبية من الخزينة. - -_عادةً ما تُستخدم للمنظمات الأكثر تماسكًا التي تركز على الإنسان، مثل المؤسسات الخيرية ومجموعات العمال ونوادي الاستثمار. يمكن أيضًا أن تقدم الإرشادات إلى البروتوكولات والرموز الرمزية كذلك._ - -#### مثال شهير {#share-example} - -[MolochDAO](http://molochdao.com/) – تركز MolochDAO على تمويل مشاريع إثيريوم. تتطلب مقترحًا للعضوية حتى تتمكن المجموعة من تقييم ما إذا كان لديك الخبرة ورأس المال اللازمين لإصدار أحكام مستنيرة حول المستفيدين المحتملين. لا يمكنك شراء الوصول إلى المنظمة المستقلة اللامركزية في السوق المفتوحة. - -### العضوية القائمة على السمعة {#reputation-based-membership} - -السمعة تمثل إثباتًا على المشاركة وتمنح قوة التصويت في المنظمة المستقلة اللامركزية. وخلافًا للرمز المميز أو العضوية القائمة على الأسهم، فإن المنظمات المستقلة اللامركزية القائمة على السمعة لا تنقل الملكية إلى المساهمين. إذ لا يمكن شراء السمعة أو نقلها أو تفويضها، ويجب أن يكتسب أعضاء المنظمة المستقلة اللامركزية سمعتهم من خلال مشاركتهم. التصويت داخل السلسلة لا يحتاج إلى تصريح ويتمتع الأعضاء المحتملون بحرية تقديم مقترحاتهم للانضمام إلى المنظمة المستقلة اللامركزية والمطالبة بالحصول على السمعة والرموز المميزة كمكافأة مقابل مساهماتهم. - -_عادةً ما تُستخدم للتطوير وتقديم الإرشادات اللامركزيين للبروتوكولات والتطبيقات اللامركزية، ولكنها أيضًا مناسبة لمجموعة متنوعة من المنظمات، مثل المؤسسات الخيرية ومجموعات العمال ونوادي الاستثمار وغيرها._ - -#### مثال شهير {#reputation-example} - -[DXdao](https://DXdao.eth.link) – إن DXdao هي مجموعة مستقلة عالمية تنشئ وتقدم الإرشادات للبروتوكولات والتطبيقات اللامركزية منذ عام 2019. إنها تستفيد من تقديم الإرشادات القائم على السمعة وإجماع الآراء المجسَّم لتنسيق الأموال وإدارتها، ما يعني أنه لا يمكن لأي أحد منفردًا أن يشق طريقه للتأثير في مستقبل المنظمة. - -## الانضمام إلى منظمة مستقلة لامركزية / إنشاء منظمة مستقلة لامركزية {#join-start-a-dao} - -### الانضمام إلى منظمة مستقلة لامركزية {#join-a-dao} - -- [المنظمات المستقلة اللامركزية في مجتمع إثيريوم](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [قائمة DAOHaus للمنظمات المستقلة اللامركزية](https://app.daohaus.club/explore) -- [قائمة Tally.xyz للمنظمات المستقلة اللامركزية](https://www.tally.xyz) - -### إنشاء منظمة مستقلة لامركزية {#start-a-dao} - -- [استدعاء منظمة مستقلة لامركزية مع DAOHaus](https://app.daohaus.club/summon) -- [إنشاء منظمة مستقلة لامركزية إدارية مع Tally](https://www.tally.xyz/add-a-dao) -- [إنشاء منظمة مستقلة لامركزية مُشغَّلة بواسطة Aragon](https://aragon.org/product) -- [إنشاء مستعمرة](https://colony.io/) -- [إنشاء منظمة مستقلة لامركزية مع إجماع الآراء المجسَّم من DAOstack](https://alchemy.daostack.io/daos/create) - -## قراءة المزيد {#further-reading} - -### مقالات حول المنظمات المستقلة اللامركزية {#dao-articles} - -- [ما هي المنظمة المستقلة اللامركزية؟](https://aragon.org/dao) – [Aragon](https://aragon.org/) -- [دليل المنظمة المستقلة اللامركزية](https://daohandbook.xyz) -- [موطن المنظمات المستقلة اللامركزية](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) -- [ما هي المنظمة المستقلة اللامركزية وما الغاية منها؟](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) -- [كيفية إنشاء مجتمع رقمي مدعوم بواسطة منظمة مستقلة لامركزية](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) -- [ما هي المنظمة المستقلة اللامركزية؟](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) -- [ما هو إجماع الآراء المجسَّم؟](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) -- [المنظمات المستقلة اللامركزية ليست مجموعة شركات: حيث تهمّ اللامركزية في المنظمات المستقلة وفقًا لـ Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) -- [منظمات DAO وDAC وDA والمزيد: دليل مصطلحات غير مكتمل](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [مدونة إثيريوم](https://blog.ethereum.org) - -### مقاطع الفيديو {#videos} - -- [ما هي المنظمة المستقلة اللامركزية في التشفير؟](https://youtu.be/KHm0uUPqmVE) -- [هل تستطيع المنظمة المستقلة اللامركزية بناء مدينة؟](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/src/content/translations/ar/decentralized-identity/index.md b/src/content/translations/ar/decentralized-identity/index.md deleted file mode 100644 index af743ba8b19..00000000000 --- a/src/content/translations/ar/decentralized-identity/index.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -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 deleted file mode 100644 index 73ed6f192f7..00000000000 --- a/src/content/translations/ar/defi/index.md +++ /dev/null @@ -1,352 +0,0 @@ ---- -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} - -- [دليل المبتدئين لتعلم التمويل اللامركزي](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, 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 deleted file mode 100644 index 6bb5842d8a3..00000000000 --- a/src/content/translations/ar/desci/index.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -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/) -- [معامل DeSci](https://www.desci.com/) - -نحن نرحب بقائمة من اقتراحات المشاريع الجديدة - يرجى إلقاء نظرة على [سياسة القائمة](/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/nft/index.md b/src/content/translations/ar/nft/index.md deleted file mode 100644 index 49179c872d9..00000000000 --- a/src/content/translations/ar/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: الرموز المميزة غير القابلة للاستبدال (NFT) -description: نظرة عامة على الرموز المميزة غير القابلة للاستبدال على إثيريوم -lang: ar -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: يتم عرض شعار إثير عبر صورة مجسَّمة. -summaryPoint1: طريقة لتمثيل أي شيء فريد كأصل مستند إلى إثيريوم. -summaryPoint2: بفضل الرموز المميزة غير القابلة للاستبدال، سيتمتع منشئو المحتوى بقوة غير مسبوقة. -summaryPoint3: مدعومة بواسطة العقود الذكية التي تقدمها سلسلة كتل إثيريوم. ---- - -## ما هي رمز غير قابل للاستبدال ( NFTs) ؟ {#what-are-nfts} - -يكون كل رمز من الرموز الغير قابلة للاستبدال فريدًا من نوعه. يتميز الرمز غير القابل للاستبدال بخصائص مختلفة (غير قابل للاستبدال) ونادر بصورة مبرهنة. هذا يختلف عن الرموز مثل رموز ERC-20 حيث يكون كل رمز في المجموعة متطابقًا مع باقي الرموز من نفس المجموعة ويتميز بالخصائص نفسها ("قابل للاستبدال"). أنت لا تكترث للورقة النقدية التي لديها قيمة دولار في محفظتك، لأن كل الرموز متساوية ولها نفس القيمة. ومع ذلك، أنت _تكترث_ بأي رمز محدد غير قابل للاستبدال تملكه، لأن جميعها لها خصائص فردية تميزها عن غيرها ("غير قابلة للاستبدال"). - -يتيح تميّز كل رمز قابل للاستبدال ترميز أشياء مثل الفن أو المقتنيات القابلة للتجميع أو حتى العقارات، حيث يمثل رمز قابل للاستبدال واحد مميز، عنصرًا واحدًا من العالم الحقيقي أو عنصرًا رقميًا فريدًا. ملكية الأصول محمية بواسطة سلسلة كُتل إثيريوم، وهذا يعني أنه لا يمكن لأي شخص إجراء تعديلات على سجلات الملكية أو إنشاء رمز غير قابل للاستبدال بواسطة النسخ واللصق. - - - -## إنترنت الأصول {#internet-of-assets} - -تعمل الرموز القابلة للاستبدال و اثيريوم معًا على حل بعض المشكلات الموجودة على الإنترنت في الوقت الحالي. مع رواج السلع والمواد الرقمية، تبرز الحاجة لجعل خصائصها تشبه خصائص العناصر الفعلية مثل النُّدرة والتفرد وإثبات الملكية. بطريقة لا تتحكم فيها منظمة مركزية. على سبيل المثال، يمكنك باستخدام الرموز القابلة للاستبدال امتلاك موسيقى mp3 ليست مقتصرة على تطبيق الموسيقى الخاص بشركة واحدة، أو يمكنك امتلاك حساب على وسائل التواصل الاجتماعي يمكن بيعه أو مبادلته، ولكن لا يمكن لموفر الخدمة على المنصة أن ينتزعه منك بشكل تعسفي. - -إليك كيف يبدو إنترنت الرموز غير القابلة للاستبدال بالمقارنة مع الإنترنت الذي يستخدمه معظمنا في الوقت الحالي... - -### مقارنة {#nft-comparison} - -| إنترنت الرموز المميزة غير القابلة للاستبدال | الإنترنت اليوم | -| -------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | -| أنت مالك أصولك! انت فقط بإمكانه بيعها أو مبادلتها. | تستأجر أحد الأصول من بعض المنظمات. | -| تكون الرموز غير قابلة للاستبدال فريدة رقميًا، حيث لا يوجد رمزان متطابقان. | غالبًا لا يمكن تمييز نسخة من الكيان عن الأصل. | -| يتم تخزين ملكية الرموز غير القابلة للاستبدال على البلوكشين فتصبح متاحة لأي شخص للتحقق منها. | سجلات ملكية العناصر الرقمية مخزنة على خوادم تتحكم بها المؤسسات، ويمكنك أن تثق بها. | -| الرموز غير القابلة للاستبدال هي عقود ذكية على اثيريوم. هذا يعني أنه يمكن استخدامها بسهولة في العقود الذكية والتطبيقات الأخرى على اثيريوم! | عادة ما تتطلب الشركات التي تمتلك عناصر رقمية بنية تحتية خاصة بها "حدائق مسورة". | -| يمكن لصناع المحتوى بيع أعمالهم في أي مكان، كما يمكنهم الوصول إلى السوق العالمية. | يعتمد صناع المحتوى على البُنى التحتية والتوزيعات الخاصة بالمنصات التي يستخدمونها. كثيرًا ما تخضع هذه المنصات لشروط الاستخدام وللقيود الجغرافية. | -| يمكن لمنشئي الرموز القابلة للاستبدال الاحتفاظ بحقوق الملكية لأعمالهم الخاصة، وبرمجة العوائد الخاصة بهم مباشرة في عقد الرمز القابل للاستبدال. | تحتفظ المنصات، مثل خدمات البث الموسيقي، بمعظم الأرباح المتأتية من المبيعات. | - -## كيف تعمل الرموز المميزة غير القابلة للاستبدال؟ {#how-nfts-work} - -مثل أي رمز تم إصداره على اثيريوم، يتم إصدار الرموز القابلة للاستبدال بموجب عقد ذكي. يتوافق العقد الذكي مع أحد معايير الرمز القابل للاستبدال العديدة (عادةً ERC-721 أو ERC-1155) التي تحدد وظائف العقد. يمكن أن ينشئ العقد ("صك") الرموز القابلة للاستبدال ويخصصها لمالك معين. يتم تحديد الملكية في العقد من خلال تعيين رموز قابلة للاستبدال محددة لعناوين محددة. يمتلك الرمز القابل للاستبدال معرّفًا وبيانات وصفية مرتبطة به تجعل الرمز المميز فريدًا. - -عندما ينشئ شخص ما رمزًا قابلاً للاستبدال أو يصكه، فإنه ينفذ بالفعل وظيفة في العقد الذكي تعمل على تخصيص رمز قابل للاستبدال إلى عنوانه. يتم تخزين هذه المعلومات في مخزن العقد، وهو جزء من بلوكتشين. يمكن لمنشئ العقد كتابة منطق إضافي في العقد، على سبيل المثال وضع حدّ لإجمالي التوريد أو تحديد حق الامتياز الذي يجب دفعه إلى المنشئ في كل مرة يتم فيها نقل رمز مميز. - -## ما هي استخدامات الرموز المميزة غير القابلة للاستبدال؟ {#nft-use-cases} - -تُستخدم الرموز القابلة للاستبدال في عديد من الأمور، بما في ذلك: - -- إثبات حضورك لحدث -- التصديق على إكمالك دورة -- العناصر القابلة للامتلاك للألعاب -- الفن الرقمي -- ترميز أصول العالم الفعلي -- إثبات هويتك على الإنترنت -- بوابة الوصول إلى المحتوى -- التذاكر -- أسماء نطاقات الإنترنت اللامركزية -- الضمانات الإضافية في دي فاي - -ربما تكون فنان يريد مشاركة أعماله باستخدام الرموز القابلة للاستبدال، دون فقدان السيطرة وخسارة أرباحك للوسطاء. يمكنك إنشاء عقد جديد وتحديد عدد الرموز القابلة للاستبدال وخصائصها ورابط لبعض الأعمال الفنية المحددة. بصفتك فنانًا، يمكنك برمجة حقوق الملكية التي يجب دفعها لك في العقد الذكي (على سبيل المثال، تحويل 5% من سعر البيع إلى مالك العقد في كل مرة يتم فيها تحويل رمز قابل للاستبدال). كما يمكنك دائمًا إثبات أنك أنشأت الرموز القابلة للاستبدال لأنك تمتلك المحفظة التي نشرت العقد. يمكن للمشترين إثبات أنهم يمتلكون رمز قابل للاستبدال أصليًا من مجموعتك بسهولة لأن عنوان محفظتهم مرتبط برمز مميز في عقدك الذكي. وبذلك يمكنهم استخدام الأصل ضمن النظام الإيكولوجي للإيثيريوم، وهم واثقون من أصالته. - -أو لنفترض وجود تذكرة حضور حدث رياضي. تمامًا كما يستطيع منظم حدث اختيار عدد التذاكر المتاحة للبيع، يمكن لمنشئ الرمز غير القابل للاستبدال أن يقرر عدد النسخ المتماثلة. يمكن أحيانًا تحديد عدد النسخ بالضبط، مثل 5000 تذكرة دخول عامة. وأحيانًا أخرى تتشابه النسخ بشكل كبير، ولكن مع وجود اختلاف طفيف لكل منها، مثل تذكرة مقعد مخصص. هذه التذاكر يمكن شراؤها وبيعها بنظام الند للند بلا حاجة للدفع بشكل مباشر لحامل البطاقات الفعلية والمشتري يمكنه دائمًا التأكد من أصالة التذاكر من خلال مراجعة العقد الذكي. - -على ethereum.org، تستخدم الرموز غير القابلة للاستبدال للإشارة إلى تقديم الأشخاص مساهمات لمخزن Github الخاص بنا أو حضروا اجتماعات معينة، حتى أننا حصلنا على اسم نطاق خاص بنا مخصص للرمز غير القابل للاستبدال. إذا كنت مساهمًا في ethereum.org، يمكنك المطالبة برمز غير قابل للاستبدال لبروتوكول إثبات الحضور. استخدمت بعض اجتماعات العملات الرقمية بروتوكولات إثبات الحضور كتذاكر. [المزيد عن المساهمة](/contributing/#poap). - -![POAP لـ ethereum.org](./poap.png) - -يملك موقع الويب هذا أيضاً اسم نطاق بديل مدعوم من الرموز القابلة للاستبدال، **ethereum.eth**. إن عنوان `.org` الخاص بنا يُدار مركزيًا بواسطة مزوّد نظام أسماء النطاقات (DNS)، بينما ethereum`.eth` مسجل على إثيريوم عن طريق خدمة اسم الإثيريوم (ENS). وهو مملوك لنا ويُدار من قِبَلنا. [تحقق من سجل خدمة اسم الإثيريوم](https://app.ens.domains/name/ethereum.eth) - -[المزيد عن خدمة اسم الإثيريوم](https://app.ens.domains) - - - -### أمان الرمز المميز غير القابل للاستبدال {#nft-security} - -يستند أمان إثيريوم إلى مفهوم إثبات الحصة. صُمِّم النظام بهدف ردع الأعمال الضارة اقتصاديًا، ما يجعل إثيريوم محصّنة ضد التلاعب. هذا ما يُمكّن استخدام الرموز المميزة غير القابلة للاستبدال. بمجرد أن تصبح الكتلة التي تحتوي على معاملة الرمز المميز غير القابل للاستبدال الخاصة بك في شكلها النهائي، ستكلف المهاجم الملايين من عملة إثير حتى يتمكن من تغييرها. أي شخص يُشغل برنامج إثيريوم سيكتشف فورًا وجود تلاعب خبيث بالرمز المميز غير القابل للاستبدال، وسيُعاقب المُتلاعب ويُطرد اقتصاديًا. - -غالبًا ما تتعلق المسائل الأمنية المرتبطة بالرموز المميزة غير القابلة للاستبدال بعمليات الاحتيال والخداع، أو الثغرات في العقود الذكية، أو أخطاء المستخدم (مثل الكشف عن المفاتيح الخاصة دون قصد)، ما يجعل أمان المحفظة الجيد أمرًا حساسًا بالنسبة إلى مالكي الرموز المميزة غير القابلة للاستبدال. - - - المزيد عن الأمان - - -## قراءة إضافية {#further-reading} - -- [دليل المبتدئين إلى الرموز المميزة غير القابلة للاستبدال](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie، يناير 2020_ -- [أداة تتبع EtherscanNFT](https://etherscan.io/nft-top-contracts) -- [الأصول المبنية وفق المعيار ERC-721](/developers/docs/standards/tokens/erc-721/) -- [الأصول المبنية وفق المعيار ERC-1155](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/ar/refi/index.md b/src/content/translations/ar/refi/index.md deleted file mode 100644 index 3cfe16636e4..00000000000 --- a/src/content/translations/ar/refi/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: التمويل المتجدد (ري فاي) -description: نظرة عامة على التمويل المتجدد (ري فاي) وحالات استخدامه. -lang: ar -template: use-cases -emoji: ":recycle:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: اقتصاد بديل قائم على أُسُس متجددة -summaryPoint2: محاولة لتسخير الإيثريوم في سبيل حل الأزمات التي تتطلب تنسيق عالمي مثل التغيرات المناخية -summaryPoint3: أداة تسهم في توسع الأصول الإيكولوجية كالحصص الكربونية الموثقة ---- - -## ماهو التمويل المتجدد (ري فاي)؟ {#what-is-refi} - -**التمويل المتجدد (ري فاي)** هو مجموعة من الأدوات والأفكار المبنية على البلوكتشين بهدف خلق بيئات اقتصادية ذو طبيعة متجددة وليست استخراجية أو مُستغِلة. بطبيعة الحال، ينتهي المطاف بالأنظمة الاستخراجية باستنزاف الموارد المتاحة والانهيار، فمع غياب الآليات المتجددة، تفتقر هذه الأنظمة إلى المرونة. يعمل التمويل المتجدد (ري فاي) وفقًا لفرضية أن خلق القيمة النقدية يجب أن لا يتصاحب مع العملية غير المستدامة لاستخلاص الموارد من كوكبنا ومجتمعاتنا. - -بدلاً من ذلك، يهدف التمويل المتجدد (ري فاي) إلى إيجاد حلول للمشاكل البيئية، والمجتمعية، والاجتماعية من خلال إنشاء دورات متجددة. فهذه الأنظمة توازن بين إنشاء القيمة للمشاركين، ومنفعة الأنظمة البيئية والمجتمعية. - -يعتبر مفهوم الاقتصادات المتجددة، المبتكر من قِبل جون فولرتون من [Capital Institute](https://capitalinstitute.org)، أحد أُسُس التمويل المتجدد (ري فاي). اقترح فولرتون ثمانية مبادئ مترابطة تكمن وراء الصحة البنيوية: - -![ثمانية مبادئ مترابطة](../../assets/use-cases/refi-regenerative-economy-diagram.png) - -تدرك مشاريع التمويل المتجدد (ري فاي) هذه المبادئ بواسطة [العقود الذكية](/developers/docs/smart-contracts/) و [تطبيقات التمويل اللامركزي](/defi/) (دي فاي)، لتحفيز السلوكيات المتجددة، كاستعادة النظم البيئية المتدهورة، وتسير التعاون واسع النطاق لمجابهة مشاكل عالمية، مثل التغير المناخي وفقدان التنوع الحيوي. - -يتشابه التمويل المتجدد (ري فاي) مع حركة [العلم اللامركزي (دي ساي)](/desci/)، والتي تستخدم الإيثريوم كمنصة لتويمل المعرفة العلمية وإنشائها ومراجعتها ونسبها وتخزينها ونشرها. يمكن استغلال أدوات العلم اللامركزي (دي ساي) لتطوير معايير وممارسات قابلة للتحقق، لتنفيذ الأنشطة المتجددة ومراقبتها، كزراعة الأشجار، وتخليص المحيط من البلاستيك، أو استعادة النظم الإيكولوجية المتدهورة. - -## ترميز الحصص الكربونية {#tokenization-of-carbon-credits} - -يعتبر **[سوق الكربون الطوعي (في سي أِم)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** وسيلة لتمويل المشاريع ذات تأثير إيجابي موثق على انبعاثات غاز الكربون، إما من خلال تقليل الانبعاثات الصادرة، أو إزالة الغازات الدفينة المنبعثة في الجو. تحصل هذه المشاريع على أصل يدعى "الحصص الكربونية"، من بعد التحقق منهم، و الذي يمكن أن يباع إلى الأشخاص و المؤسسات، الراغبة بدعم التدابير المناخية. - -بالإضافة لهذه السوق، توجد لدينا أسواق كربون مُكَلَفة من قبل الحكومة ("أسواق الامتثال")، والتي تهدف إلى ترسيخ سعر الكربون، والتحكم في معروض التصاريح التي ستوزع، من خلال القوانين والأنظمة، ضمن نطاق حاكمية محدد (دولة أو منطقة)ه تحفز أسواق الامتثال مصادر التلوث ضمن حاكميتهم على تخفيف الانبعاثات ولكن هذه الأسواق غير قادرة على المساهمة في إزالة الغازات الدفينة المنبعثة مسبقًا في الجو. - -وعلى الرغم من تطور هذه الأسواق على مر العقود، فإنها لا تزال تعاني من عدة مشاكل، أبرزها ما يلي: - -1. التجزء الزائد للسيولة النقدية -2. آليات معاملة مبهمة -3. رسوم باهظة -4. سرعة التداول بطيئة جدًا -5. افتقار قابلية التطور - -ربما يمثل انتقال هذه الأسواق، من الشكل التقليدي إلى ** أسواق الكربون الرقمية (دي سي أِم) ** القائمة على البلوكتشين، فرصة لترقية التكنولوجيا المعتمدة للتحقق، و تسيير المعاملات، واستهلاك الحصص الكربونية. تسمح البلوكتشينات بإنشاء بيانات يمكن توثيقها من العامة، كما تسمح بالوصول إلى قاعدة أكبر من المستخدمين، إضافة إلى المساهمة في زيادة السيولة النقدية. - -توظف مشاريع التمويل المتجدد (ري فاي) تقنية البلوكتشين في سبيل التقليل من المشاكل التي تواجهها الأسواق التقليدية: - -- **حيث تتركز السيولة النقدية ضمن أعداد قليلة من مجموعات السيولة النقدية** والتي يمكن أن يداولها الجميع بحرية. المستخدمون الفرديون والمؤسسات على حد سواء يمكنهم استخدام هذه المجموعات، من دون الحاجة إلى البحث اليدوي عن بائع/مشترٍ، دفع رسوم المشاركة، أو حتى التسجيل المسبق. -- **كما أن جميع المعاملات مسجلة على بلوكتشين عامة**. يمكن تتبع المسار، الناتج عن أنشطة التداول، الذي يسلكه كل رصيد كربوني إلى الأبد بمجرد توافره في أسواق الكربون الرقمية. -- **ناهيك عن أن سرعة المعاملة تكاد أن تكون فورية**. قد تستغرق عملية الحصول على كمية كبيرة من الحصص الكربونية من الأسواق التقليدية أيامًا أو أسابيع بينما تستغرق نفس العملية بضع لحظات في أسواق الكربون الرقمية. -- **تحدث عملية التداول بدون وسطاء**، الذين يفرضون رسومًا باهظة. فبالاستناد الى بيانات إحدى شركات التحليلات،[ تحسن الحصص الكربونية الرقمية التكلفة بنسبة ٦٢%، بالمقارنة مع الحصص التقليدية](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne). -- يتميز **سوق الكربون الرقمية بقابلية التطور** التي تسطيع تلبية احتياجات الأفراد والشركات متعددة الجنسيات. - -### العناصر الرئيسة لأسواق الكربون الرقمية {#key-components-dcm} - -تُشكِل أربعة عناصر رئيسة المشهد الحالي لأسواق الكربون الرقمية: - -1. تبقي بعض الجهات [كـ Verra](https://verra.org/project/vcs-program/registry-system/) و[Gold Standard](https://www.goldstandard.org/) على سجلات للائتمان الكربوني للمساعدة على توثيق مصداقية الحصص الكربونية الخاصة بالمشاريع. كما يشغلون قواعد البيانات التي نشأت منها الحصص الكربونية القابلة للنقل أو الاستعمال (مُستَهَلَك). - -هناك موجة جديدة من المشاريع المبتكرة التي يتم بناؤها على بلوكتشين، والتي تحاول تعطيل شاغلي الوظائف في هذا القطاع. - -2. الجسور الكربونية، المعروفة بـ محول الحصص الكربونية، يوفر تقنية لتمثيل الحصص الكربونية أو نقلها من السجلات العادية إلى أسواق الكربون الرقمية. تشمل الأمثلة الجديرة بالذكر [Toucan Protocol](https://toucan.earth/) و[C3](https://c3.app/) و[Moss.Earth](https://moss.earth/). -3. تقدم الخدمات المتكاملة تجنب الكربون و/أو إزالة الحصص للمستخدمين النهائيين حتى يتمكنوا من المطالبة بالمنفعة البيئية للحصص ومشاركة دعمهم للعمل المناخي مع العالم. - -يقدم البعض مثل [Klima Infinity](https://www.klimadao.finance/infinity) و[Senken](https://senken.io/) مجموعة واسعة من المشاريع التي طورتها جهات خارجية وتم إصدارها وفقًا للمعايير المعمول بها مثل Verra؛ يقدم آخرون مثل [Nori](https://nori.com/) فقط مشاريع محددة تم تطويرها وفقًا لمعايير الحصص الكربونية التابعة لهم، والتي يصدرونها ولديهم سوقهم المخصصة لها. - -4. القضبان الأساسية والبنية التحتية التي تسهل عملية توسيع نطاق تأثير وكفاءة سلسلة التوريد بأكملها في سوق الكربون. توفر [KlimaDAO](http://klimadao.finance/) السيولة النقدية باعتبارها منفعة عامة (تسمح لأي شخص بشراء أو بيع الحصص الكربونية بسعر شفاف)، وتحفز زيادة إنتاجية أسواق الكربون والتقاعد من خلال المكافآت، وتوفر أدوات قابلة للتشغيل البيني سهلة الاستخدام للوصول إلى البيانات المتعلقة بها، فضلاً عن الحصول عليها والتقاعد، ومجموعة واسعة من الحصص الكربونية التي تم تحويلها إلى رموز مميزة. - -## التمويل المتجدد (ري فاي) خارج أسواق الكربون {#refi-beyond} - -على الرغم من التركيز بشكل قوي حاليًا على أسواق الكربون بشكل عام وتحويل سوق الكربون الطوعية إلى سوق الكربون الرقمية بشكل خاص في نطاق هذا المجال، فإن مصطلح "التمويل المتجدد (ري في)" لا يقتصر على الكربون فحسب. ويمكن تطوير أصول بيئية أخرى بخلاف الحصص الكربونية وتحويلها إلى رموز مميزة، ما يعني أنه يمكن أيضًا تسعير العوامل الخارجية السلبية الأخرى ضمن الطبقات الأساسية للأنظمة الاقتصادية المستقبلية. علاوة على ذلك، يمكن تطبيق الجانب التجديدي لهذا النموذج الاقتصادي على مجالات أخرى، مثل تمويل المنافع العامة عبر منصات التمويل التربيعية مثل [Gitcoin](https://gitcoin.co/). إن المنظمات القائمة على فكرة المشاركة المفتوحة والتوزيع العادل للموارد تعمل على تمكين الجميع من توجيه الأموال إلى مشاريع البرمجيات مفتوحة المصدر، إضافة إلى المشاريع التعليمية والبيئية والمجتمعية. - -من خلال تغيير مسار رأس المال بعيدًا عن الممارسات الاستخراجية نحو التدفق المتجدد، يمكن للمشاريع والشركات التي توفر منافع اجتماعية أو بيئية أو مجتمعية - والتي قد تفشل في تحقيق التمويل في التمويل التقليدي - أن تنطلق وتنشئ تأثيرات خارجية إيجابية للمجتمع. بسرعة وسهولة أكبر. كما أن التحول إلى نموذج التمويل هذا يفتح المجال أمام أنظمة اقتصادية أكثر شمولية، حيث يكون بوسع الأشخاص من كافة الفئات الديموغرافية أن يصبحوا مشاركين نشطين بدلاً من مجرد كونهم مراقبين سلبيين. يقدم التمويل المتجدد (ري في) رؤية إيثريوم كآلية لتنسيق العمل بشأن التحديات الوجودية التي تواجه الجنس البشري وجميع أشكال الحياة على كوكبنا، باعتبارها الطبقة الأساسية لنموذج اقتصادي جديد، ما يتيح مستقبلاً أكثر شمولاً واستدامة لقرون قادمة. - -## مزيد من المعلومات عن التمويل المتجدد (ري فاي) - -- [نظرة عامة رفيعة المستوى عن العملات الكربونية وموضعهم بالاقتصاد](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) -- [وزارة المستقبل، رواية تصوّر دور العملات المدعومة بالكربون في مجابهة التغير المناخي](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) -- [تقرير مفصّل من قِبل Taskforce لتطوير أسواق الكربون الطوعية](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) -- [مسرد المصطلحات كيفين أووكي وإيفان ميازونو كنقطة دخول إلى عالم التمويل المتجدد (ري فاي)](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/ar/roadmap/beacon-chain/index.md b/src/content/translations/ar/roadmap/beacon-chain/index.md deleted file mode 100644 index 9d5616baa34..00000000000 --- a/src/content/translations/ar/roadmap/beacon-chain/index.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: سلسلة المنارة -description: تعرّف على سلسلة المنارة - الترقية التي جعلت إثيريوم جزءًا من إثبات الحصة. -lang: ar -template: upgrade -image: ../../../../../assets/upgrades/core.png -summaryPoint1: قدمت سلسلة المنارة إثبات الحصة في منظومة إثيريوم. -summaryPoint2: تم الدمج مع سلسلة إثبات الحصة الأصلية لإثيريوم في سبتمبر من عام 2022. -summaryPoint3: قدمت سلسلة المنارة منطق إجماع الآراء وبروتوكول نقل الكتل الذي يؤمّن إثيريوم الآن. ---- - - - أصبحت سلسلة المنارة متاحة في 1 ديسمبر 2020، وجعلت إثبات الحصة هو الرسمي لآلية إجماع الآراء لإثيريوم مع ترقية الدمج في 15 سبتمبر 2022. - - -## ما هي سلسلة المنارة؟ {#what-is-the-beacon-chain} - -كان مصطلح سلسلة المنارة هو اسم سلسلة الكتل الأصلية لإثبات الحصة الذي تم إطلاقه في عام 2020. وقد أنشئ هذا المشروع لضمان أن يكون منطق إجماع الآراء لإثبات الحصة سليمًا ومستدامًا قبل تمكينه في الشبكة الرئيسية لإثيريوم. ومن ثمَّ، فإنها عملت بجوار إثيريوم إثبات العمل الأصلي. إن المبادلة من إثبات العمل إلى إثبات الحصة في إثيريوم استلزم توجيه سلسلة المنارة لقبول التحويلات من سلسلة إثيريوم الأصلية، والجمع بينها في الكتل، ثم تنظيمها في سلسلة كتل باستخدام آلية إجماع الآراء المعتمدة على إثبات الحصة. وفي الوقت نفسه، أوقف عملاء إثيريوم الأصلي التنقيب وتجميع الكتل ومنطق إجماع الآراء، مع تسليم كل ذلك إلى سلسلة المنارة. وقد عُرف هذا الحدث باسم [الدمج](/roadmap/merge/). وبمجرد حدوث الدمج، لم يعد هناك سلسلتي كتل؛ أصبحت سلسلة إثيريوم واحدة معتمدة على إثبات الصحة. - -## ما الذي فعلته سلسلة المنارة؟ {#what-does-the-beacon-chain-do} - -اسم سلسلة المنارة هو الاسم المُعطى إلى سجل الحسابات الذي أجرى ونسق شبكة [مراهني](/staking/) إثيريوم قبل بدء هؤلاء المراهنين للمصادقة على معاملات إثيريوم الحقيقية. ولم تعالج المعاملات ولا تفاعلات العقد الذكي. - -قدمت محرك إجماع الآراء (أو طبقة إجماع الآراء) التي حلت محل التنقيب عن إثبات العمل في إثيريوم وقدمت العديد من التحسينات البارزة عليه. - -وكانت سلسلة المنارة مكونًا أساسيًا [لإثيريوم الآمن والملائم للبيئة والقابل للقياس الذي لدينا الآن](/roadmap/vision/). - -## تأثير سلسلة المنارة {#beacon-chain-features} - -### معلومات عن تجميد العملات {#introducing-staking} - -قدمت سلسلة المنارة [إثبات الحصة](/developers/docs/consensus-mechanisms/pos/) إلى إثيريوم. وهذا يحافظ على أمان إثيريوم ويُكسب برامج المدققين المزيد من ETH في هذه العملية. وعمليًا، سيشتمل تجميد العملات على تجميد ETH من أجل تنشيط برنامج المدقق. وكأحد المراهنين، فإنك تشغل البرنامج الذي ينشئ ويصادق على كتل جديدة في السلسلة. - -إن تجميد العملات يقدم غرضًا مشابهًا لما يستخدمه [التنقيب](/developers/docs/mining/)، لكنه مختلف من عدة جوانب. ويتطلب التنقيب نفقات أولية طائلة في شكل أجهزة قوية واستهلاك كبير للطاقة، ما يؤدي إلى تحقيق وفورات للتوسع وتعزيز المركزية. ولا يفرض التنقيب أيضًا أي شروط لحجز الأصول كضمان إضافي، ما يحد من قدرة البروتوكول على معاقبة الأطراف المسيئة بعد الهجوم. - -وقد جعل الانتقال إلى إثبات الحصة إثيريوم أكثر أمنًا ولا مركزية بالمقارنة مع إثبات العمل. وكلما زاد عدد الأشخاص الذين يشاركون في الشبكة، زادت اللامركزية وأصبحت الشبكة أكثر أمانًا ضد الهجمات. - - - إذا كنت مهتمًا بأن تصبح مدققًا وتساعد على تأمين الإثيريوم، فتعلم المزيد عن تجميد العملات. - - -### إعداد التقسيم {#setting-up-for-sharding} - -منذ اندمجت سلسلة المنارة مع الشبكة الرئيسية الأصلية لإثيريوم، بدأ مجتمع إثيريوم في التطلع إلى توسيع الشبكة. - -ويكون لإثبات الحصة ميزة امتلاك سجل لكل منتجي الكتل المعتمدين في أي وقت محدد، كل منهم مع ETH حسب الحصة. ويعيّن هذا السجل مرحلة للقدرة على التقسيم والسيطرة، ولكنه يقسم بصورة موثوق بها مسؤوليات الشبكة. - -وتتناقض هذه المسؤولية مع إثبات العمل، حيث لا يكون عاملو المنجم ملتزمين بالشبكة ويمكنهم التنقيب عن التعديل وإيقاف برنامج العقدة الخاص بهم بشكل دائم دون تداعيات. كما لا يوجد سجل لمقترحي الكتل المعروفين ولا توجد طريقة موثوق بها لتقسيم مسؤوليات الشبكة بأمان. - -[المزيد عن التقسيم](/roadmap/danksharding/) - -## العلاقة بين الترقيات {#relationship-between-upgrades} - -إن ترقيات إثيريوم كلها مترابطة إلى حد ما. لذا دعونا نلخص كيف تؤثر سلسلة المنارة على الترقيات الأخرى. - -### سلسلة المنارة والدمج {#merge-and-beacon-chain} - -في البداية، كانت سلسلة المنارة موجودة بشكل منفصل عن الشبكة الرئيسية لإثيريوم، لكنها اندمجت في عام 2022. - - - الدمج - - -### الأجزاء وسلسلة المنارة {#shards-and-beacon-chain} - -لا يمكن للأجزاء أن تدخل إلى منظومة الإثيريوم إلا بأمان، مع وجود آلية إجماع الآراء لإثبات الحصة. وقدمت سلسلة المنارة تجميد العملات، التي 'دُمجت' مع الشبكة الرئيسية، ما مهد الطريق أمام التقسيم للمساعدة في زيادة حجم الإثيريوم. - - - سلاسل الأجزاء - - -## قراءة إضافية - -- [المزيد عن ترقيات إثيريوم في المستقبل](/roapmap/vision) -- [المزيد عن إثبات الحصة](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/ar/roadmap/merge/index.md b/src/content/translations/ar/roadmap/merge/index.md deleted file mode 100644 index 035c7389f49..00000000000 --- a/src/content/translations/ar/roadmap/merge/index.md +++ /dev/null @@ -1,225 +0,0 @@ ---- -title: الدمج -description: تعرّف على الدمج - عندما تبنت الشبكة الرئيسية إثيريوم إثبات الحصة. -lang: ar -template: upgrade -image: ../../../../../assets/upgrades/merge.png -summaryPoint1: تستخدم الشبكة الرئيسية لإثيريوم إثبات الحصة، بيد أن ذلك ليس الوضع دائمًا. -summaryPoint2: كان يُطلق على عملية التطوير من آلية إثبات العمل الأصلية إلى إثبات الحصة اسم الدمج. -summaryPoint3: يشير الدمج إلى دمج الشبكة الرئيسة لإثيريوم الأصلي مع سلسلة الكتل المنفصلة لإثبات الحصة ويُطلق عليها اسم سلسلة المنارة، الموجودة الآن كسلسلة واحدة. -summaryPoint4: يساهم الدمج في ترشيد استهلاك طاقة الإثيريوم بنسبة ~99.95%. ---- - - - نُفذ الدمج في 15 سبتمبر 2022. أكمل هذا انتقال الإثيريوم إلى إجماع الآراء حول إثبات الحصة، ما أدى إلى إهمال إثبات العمل رسميًا وترشيد استهلاك الطاقة بنسبة 99.95% تقريبًا. - - -## ما المقصود بالدمج؟ {#what-is-the-merge} - -تمثل الدمج في الانضمام إلى طبقة التنفيذ الأصلية من إثيريوم (الشبكة الرئيسة التي كانت موجودة منذ [الأصل](/history/#frontier)) مع طبقة إجماع الآراء لإثبات الحصة الجديدة لها، سلسلة المنارة. سيزيل هذا الحاجة إلى التنقيب المستهلك للطاقة، وبدلاً من ذلك سيؤمن الشبكة باستعمال عملات إثيريوم المجمدة. تمثل هذه خطوة جَدّ مشوقة لتحقيق رؤية إثيريوم – للمزيد من قابلية التوسع والأمن والاستمرارية. - - - -في البداية، [سلسلة المنارة](/roadmap/beacon-chain/) أُتيحت منفصلة عن [الشبكة الرئيسية](/glossary/#mainnet). الشبكة الرئيسية لإثيريوم ما زالت مؤَمنة بجميع حساباتها وأرصدتها وعقودها الذكية وحالة سلسلة الكتل [بإثبات العمل](/developers/docs/consensus-mechanisms/pow/)، بالرغم من أن سلسلة المنارة تعمل بالتوازي وفي نفس الوقت باستعمال [إثبات الحصة](/developers/docs/consensus-mechanisms/pos/). تمثل الدمج عندما اجتمع هذان النظامان في نهاية المطاف، واستعيض عن إثبات العمل بشكل دائم بإثبات الحصة. - -تخيل أن إثيريوم تمثل سفينة فضاء ليست جاهزة تمامًا انطلقت في رحلة بين النجوم. بَنى المجتمع محركًا جديدًا و هيكلاً أصلب من خلال سلسلة المنارة. وبعد إجراء اختبارات مهمة، قد آن الأوان لمبادلة المحرك الجديد بشكل سريع مع الرحلة المتوسطة القديمة. ودمج هذا المحرك الجديد الأكثر كفاءة في السفينة القائمة، ما مكنها من بذل سنوات قليلة خطيرة والاستيلاء على الكون. - -## الدمج مع الشبكة الرئيسية {#merging-with-mainnet} - -وقد أمّن إثبات العمل الشبكة الرئيسية لإثيريوم من الإنشاء إلى الدمج. سمح ذلك لسلسلة كتل إثيريوم التي اعتدنا جميعًا عليها بالتواجد في يوليو 2015 بكافة ميزاتها المألوفة - المعاملات والعقود الذكية والحسابات، إلخ. - -كما استعد المبرمجون طوال تاريخ إثيريوم للانتقال في نهاية المطاف من مرحلة إثبات العمل إلى مرحلة إثبات الحصة. وقد تم إنشاء سلسلة المنارة كسلسلة كتل منفصلة في الأول من ديسمبر 2020 بغرض صيانة الشبكة الرئيسية، وذلك كي تعمل سويًا. - -في البداية لم تعالج سلسلة المنارة معاملات الشبكة الرئيسية. وعوضًا عن ذلك، فإنها تتوصل إلى إجماع الآراء بشأن حالتها من خلال الاتفاق على برامج المدققين الفعلية وأرصدة حساباتهم. وقد حان الوقت عقب اختبارات مستفيضة لكي تتوصل سلسلة المنارة إلى إجماع الآراء بشأن بيانات العالم الحقيقي. حيث أصبحت سلسلة المنارة عقب عملية الدمج محركًا لإجماع الآراء لكافة بيانات الشبكة، بما في ذلك معاملات طبقة التنفيذ وأرصدة الحسابات. - -تمثل عملية الدمج التحول الرسمي لاستخدام سلسلة المنارة كمحرك لإنتاج الكتلة. كما لم يعد التنقيب يصلح كوسيلة لإنتاج كتل صالحة. وعوضًا عن ذلك، فقد اعتمدت برامج المدققين لإثبات الحصة هذا الدور وهي الآن مسؤولة عن التحقق من صحة كافة المعاملات واقتراح الكتل. - -كما لم يُفقد أي سجل في الدمج. وبما أن الشبكة الرئيسة قد اندمجت مع سلسلة المنارة، فقد دمجت أيضًا سجل المعاملات للإثيريوم بِرُمَّته. - - -كما قد غير هذا الانتقال إلى إثبات الحصة طريقة إصدار الإثيريوم. تعرف على المزيد بشأن إصدار الإثيريوم قبل وبعد الدمج. - - -### المستخدمون وحائزو الإثيريوم {#users-holders} - -**لم يغير الدمج أي شيء لحائزو الإثيريوم أو المستخدمين.** - -_يستحق هذا التكرار_: كمستخدم أو حائز الإثيريوم أو أي أصل رقمي آخر على الإثيريوم، فضلاً عن المراهنين غير العاملين بعقدات، **لا تحتاج إلى فعل أي شيء باستخدام أموالك أو محفظتك لحساب الدمج.** إثيريوم هي فقط إثيريوم. لا يوجد شيء مثل "ETH قديم"/"ETH حديث" أو "ETH1"/"ETH2" والمحافظ تعمل الشيء نفسه بالضبط بعد الدمج كما فعلت من قبل - يخبرونك الناس بخلاف ذلك لأنهم قد يكونوا محتالين. - -ورغم مبادلة إثبات العمل، فإن سجل الإثيريوم بِرُمَّته ظل صحيحًا منذ بداية الإثيريوم ولم يتغير بسبب الانتقال إلى إثبات الحصة. لا تزال أي أموال موجودة في محفظتك قبل الدمج متاحة عقب الدمج. **لا يلزمك أي إجراء لتطوير.** - -[المزيد حول أمن الإثيريوم](/security/#eth2-token-scam) - -### مشغلو العقدة ومطورو التطبيقات اللامركزية {#node-operators-dapp-developers} - - - -تشمل فقرات العمل الرئيسية ما يلي: - -1. تشغيل كل من عميل إجماع الآراء وعميل التنفيذ؛ لم تعد النِّقَاط الطرفية لأطراف خارجية للحصول على بيانات التنفيذ تعمل منذ الدمج. -2. المصادقة على كل من عميل إجماع الآراء وعميل التنفيذ مع سر JWT المشترك حتى يتمكنوا من التواصل بشكل آمن. -3. تعيين عنوان "مستلم الرسوم" لتلقي نصائح حول رسوم التحويل التي حصلت عليها أو القيمة القابلة للاستخراج بالتنقيب (MEV). - -كما سيؤدي عدم إكمال العنصرين الأولين أعلاه إلى اعتبار عقدتك "غير متصلة" حتى مزامنة كلتا الطبقتين ومصادقتهما. - -سيظل عدم تعيين "مستلم الرسوم" يسمح لبرنامج المدقق لديك بالتصرف كالمعتاد، ولكنك ستفوتك نصائح الرسوم غير المحترقة وأي قيمة قابلة للاستخراج بالتنقيب (MEV) كنت ستكسبها لولا ذلك في الكتل التي يقترحها برنامج المدقق لديك. - - - - -وحتى حدوث الدمج، كان عميل التنفيذ (مثل شركة جيث أو إريغون أو بيسو أو نيفرمايند) كافيًا لاستقبال الكتل الموجودة في الشبكة، والتحقق منها بشكل صحيح ونشرها. كما تتوقف صحة المعاملات التي تحتويها حمولة التنفيذ عقب الدمج الآن أيضًا على صحة "كتلة إجماع الآراء" التي تحتويها هذه الحمولة. - -ونتيجة لذلك، تتطلب الآن عقدة إثيريوم بأكملها عميل التنفيذ وعميل إجماع الآراء. كما يعمل هذان العميلان معًا باستخدام واجهة برمجة تطبيقات محرك جديد. كما تتطلب واجهة برمجة تطبيقات المحرك المصادقة باستخدام سر JWT، والذي يُتاح لكلا العميلين، ما يوفر الاتصال الآمن. - -عناصر العمل الرئيسية: - -- تثبيت عميل إجماع الآراء فضلاً عن عميل التنفيذ -- مصادقة عميل التنفيذ وعميل إجماع الآراء مع سر JWT المشترك حتى يتمكنوا من التواصل مع بعضهم بشكل آمن. - -كما سيؤدي عدم إكمال العناصر أعلاه إلى اعتبار عقدتك تظهر على أنها "غير متصلة" حتى مزامنة كلتا الطبقتين ومصادقتهما. - - - - - -وقد أحدثت عملية الدمج تغييرات في إجماع الآراء، والتي تشمل أيضًا التغييرات المتعلقة بما يلي: - -- بنية الكتلة -- توقيت الخانة أو الكتلة -- تغيير كود التشغيل -- مصادر عشوائية على السلسلة -- مفهوم "الرأس الآمن" و"الكتل النهائية" - -للحصول على المزيد من المعلومات، تحقق من مشاركة المدونة من تيم بيكو على [كيف يؤثر الدمج على طبقة تطبيق إثيريوم](https://blog.ethereum.org/2021/11/29/how-the-merge-impacts-app-layer/). - - -## عملية الدمج واستهلاك الطاقة {#merge-and-energy} - -سيشير الدمج إلى نهاية إثبات العمل لإثيريوم وبداية لعصر إثيريوم أكثر استدامة وصداقة للبيئة. انخفض استهلاك الطاقة في إثيريوم بما يقدر بنسبة 99.95%، ما يجعل الإثيريوم سلسلة كتل مصاحبة للبيئة. احصل على المزيد من المعلومات حول [استهلاك الطاقة في إثيريوم](/energy-consumption/). - -## عملية الدمج والتوسع {#merge-and-scaling} - -كما مهدت عملية الدمج السبيل نحو إجراء المزيد من التطويرات في التوسع التي يصعب تطويرها في إطار عملية إثبات العمل، حيث جعل الإثيريوم خطوة واحدة أقرب إلى تحقيق النطاق الكامل والأمن والاستدامة الموضحة في [رؤية الإثيريوم](/roadmap/vision/). - -## مفاهيم خطأ حول عملية الدمج {#misconceptions} - - -يوجد نوعان من عُقد إثيريوم: العُقد التي قد تقترح الكتل والعقد التي لا تقترح الكتل. - -حيث تمثل العُقد التي تقترح كتل فقط عددًا صغيرًا من مجموع العقد على إثيريوم. وتشمل هذه الفئة عُقد التنقيب بموجب إثبات العمل (PoW) وعقد برنامج المدقق بموجب إثبات الحصة (PoS). كما تتطلب هذه الفئة تخصيص مصادر اقتصادية (مثل قوة تجزئة GPU في إثبات العمل أو تجميد ETH في إثبات الحصة) نظير القدرة على اقتراح الكتلة التالية من حين لآخر والحصول على مكافآت البروتوكول. - -لا تلتزم العُقد الأخرى على الشبكة (بمعنى الأغلبية) بتخصيص أي مصادر اقتصادية تتجاوز حاسوب من الدرجة الاستهلاكية يحتوي على 1-2 تيرابايت من التخزين المتوفر واتصال بالإنترنت. كما لا تقترح هذه العُقد الكتل، ولكنها لا تزال تؤدي دورًا مفصليًا في تأمين الشبكة أثناء مساءلة كافة مقدمي الكتل بالاستماع إلى كتل جديدة والتحقق من صلاحيتها عند الوصول وفقًا لقواعد إجماع آراء الشبكة. كما تستمر العُقدة في نشر الكتلة بواسطة الشبكة إذا كانت صالحة. إذا كانت الكتلة غير صالحة لأي سبب من الأسباب، فإن برنامَج العُقدة سوف يتجاهلها كغير صالحة ويحد من انتشارها. - -يستطيع أي شخص تشغيل عقدة غير منتجة للكتلة في إطار آلية الإجماع (إثبات العمل أو إثبات الحصة)؛ إنه مشجع للغاية لكافة المستخدمين متى توافرت لديهم الوسائل. يمثل تشغيل العقدة قيمة هائلة للإثيريوم ويعطي المزيد من الفوائد الإضافية لأي فرد يشغلها، مثل تحسين الأمن والخصوصية ومقاومة الرِّقابة. - -تمثل قدرة أي شخص على تشغيل عقدة خاصة به أمرًا مهمًا للغاية -للمحافظة على لامركزية شبكة إثيريوم. - -[المزيد من المعلومات حول تشغيل عقدة خاصة بك](/run-a-node/) - - - - -تمثل رسوم الغاز منتجًا للطلب الشبكي بالنسبة إلى قدرة الشبكة. حيث نتج عن عملية الدمج إبطال استخدام إثبات العمل، والانتقال إلى إثبات الحصة بُغية التوصل إلى إجماع الآراء، بيد أنه لم يغير كثيرًا في أي مقاييس من شأنها أن تؤثر تأثيرًا مباشرًا على قدرة الشبكة أو على إنتاجيتها. - -كما يجري تركيز الجهود على توسع نطاق نشاط المستخدم في [الطبقة 2] (/طبقة 2)، بواسطة [خارطة طريق تعتمد على التركيز الإداري] (https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698)، أثناء تمكين الطبقة 1 للشبكة الرئيسية كطبقة تسوية لامركزية آمنة محسنة لتخزين البيانات المتداولة للمساعدة في خفض تكلفة تجميع المعاملات خارج البلوكشين داخل عقد إيثريوم ذكي من ذي قبل. كما يمثل الانتقال عقب ذلك إلى مرحلة إثبات الحصة تمهيدًا بالغ الأهمية لتحقيق ذلك. [المزيد من المعلومات حول الغاز والرسوم] (/developers/docs/gas/) - - - -يمكن قياس "سرعة" المعاملة باستخدام عدة طرق، بما في ذلك الوقت اللازم لإدراجها في كتلة ووقت إضفاء اللمسات النهائية عليها. ويتغير كلاهما قليلاً، بطريقة لا يلاحظها المستخدمون. - -لقد تمثل الهدف تاريخيًا في إثبات العمل في الحصول على كتلة جديدة كل 13.3 ثانية. كما تحدث الخانات بدقة كل 12 ثانية في إطار إثبات الحصة، وكل منها يمثل فرصة لبرنامج المدقق لنشر كتلة ما. تحتوي معظم الخانات على كتل، ولكن ليس بالضرورة احتواء كافة الخانات على كتل (أي إن برنامج المدقق غير متصل بالإنترنت). تُنتج الكتل بنسبة ~10% في إثبات الحصة أكثر من إثبات العمل. يُعد ذلك تغييرًا ضئيلاً إلى حد ما وقد لا يلاحظه المستخدمون. - -حيث نتج عن إثبات الحصة المفهوم النهائي للمعاملة الذي لم يكن موجودًا قبل ذلك. تصعب القدرة على عكس كتلة بشكل مضاعف في إثبات العمل مع كل كتلة مرور مستخرجة فوق معاملة، لكنها لا تصل أبدًا إلى نقطة الصفر. كما تُجمع الكتل في الحقبات في إطار إثبات الحصة (6.4 دقائق من الوقت تحتوي على 32 فرصة للكتل) التي يصوت عليها برامج المدقق. يصوت برنامَج المدقق عند انتهاء الحِقْبَة على ما إذا كان يجب اعتبار الحِقْبَة 'مبررة'. إذا وافق برنامَج المدقق على تبرير الحِقْبَة، يتم الانتهاء منها في الحِقْبَة التالية. كما لا يجدي التقاعس عن إتمام المعاملات اقتصاديًا لأنه سيتطلب الحصول على أكثر من ثلث مجموع تجميد العملات للإثيريوم وحرقه. - - - - -لا تزال جوائز تجميد الإثيريوم ومكافآت تجميد العملات مقفلة دون القدرة على السحب. ومن المزمع تنفيذ الانسحاب بُغية رفع مستوى شنغهاي القادم. - - - -وقد يبدو ذلك متعارضًا مع الملاحظة المذكورة أعلاه ومفادها أنه لا يمكن تنفيذ الانسحاب حتى ترقية شنغهاي، لكن يمكن لبرامج المدقق الوصول الفوري إلى مكافآت الرسوم أو القيمة القابلة للاستخراج بالتنقيب (MEV) المكتسبة خلال عروض الكتل. - -ويمنح البروتوكول الإثيريوم مكافأة لبرامج المدقق على إسهامها في إجماع الآراء. تعبّر طبقة إجماع الآراء عن الإثيريوم الصادرة حديثًا، حيث يكون لبرنامج المدقق عنوان فريد يحمّل جوائز الإثيريوم المجمدة والبروتوكول. هذه الإثيريوم مقفلة حتى شنغهاي. - -تُحسب الإثيريوم على طبقة التنفيذ بمعزل عن طبقة إجماع الآراء. يجب دفع إثيريوم لتغطية الغاز، وذلك عندما ينفذ المستخدمون المعاملات على الشبكة الرئيسة لإثيريوم، بما في ذلك نظير نصائح لبرنامج المدقق. يتوفر هذا الإثيريوم بالفعل على طبقة التنفيذ، ولا يصدر حديثًا بواسطة البروتوكول، حيث يُتاح لبرنامج المدقق مباشرة (ويتم توفير عنوان "مستلم رسوم" مناسب إلى برنامج العملاء). - - - -يتم تحفيز كافة برامج المدقق على سحب رصيد تجميد العملات الأعلى من 32 إثيريوم وذلك عقب تفعيل ترقية شنغهاي عمليات السحب، وبما أن هذه الأموال لا تضيف إلى العائد فهي محجوزة بخلاف ذلك. قد تُحفز للخروج من برامج المدقق لديهم لاسترداد كامل رصيدهم أو احتمال حصولهم على حصة أكثر باستخدام مكافآتهم لكسب المزيد من العائدات وذلك حسب تقديرات APR (المحدد بإجمالي حصة الإثيريوم). - -يوجد تحذير مهم هنا، معدل خروج برنامَج المدقق الكامل محدود بالبروتوكول، لذلك يمكن فقط لستة من برامج المدقق الخروج لكل حقبة (كل 6.4 دقائق، أو نحو 1350 في اليوم، أو 43,200 إثيريوم فقط في اليوم من أصل أكثر من 10 ملايين إثيريوم). ويُعدل هذا الحد الأقصى للمعدل وفقًا لإجمالي تجميد عملات إثيريوم ويحول دون الخروج الجماعي للأموال. فضلاً عن ذلك، فإنه يمنع مهاجم محتمل من استخدام حصته في ارتكاب جريمة عالية المخاطر ويخرج من كامل توازن حصته في نفس الحِقْبَة قبل أن يتمكن البروتوكول من إنفاذ العقوبة المخفضة. - -يُعد APR ديناميكيًا عن قصد، ما يتيح لسوق من المراهنات بموازنة مقدار ما لديهم من استعداد لدفعه للمساعدة في تأمين الشبكة. عند تفعيل عمليات السحب، إذا كان المعدل منخفضًا جدًا، فإن برامج المدقق تخرج بمعدل محدود من البروتوكول. يزيد ذلك تدريجيًا من APR لكل من يبقى، ويجتذب مراهنين جدد أو مراهنين مرة أخرى. - - -## ماذا حدث لـ 'Eth2'؟ {#eth2} - -لقد تم التخلي عن مصطلح "Eth2". لم تعد توجد أي حاجة للتمييز بين شبكتين من شبكات الإثيريوم عقب دمج 'Eth1' و'Eth2' في سلسلة واحدة؛ وذلك لوجود شبكة واحد فقط من الإثيريوم. - -وللحد من الارتباك، حدث المجتمع الشروط التالية: - -- يُعد 'Eth1' الآن 'طبقة التنفيذ'، المسؤولة عن تنفيذ المعاملات. -- أصبحت "Eth2" الآن "طبقة الإجماع"، التي تتعامل مع إجماع الآراء لإثبات الحصة. - -كما لا تغير تحديثات المصطلحات الآتية سوى مصطلحات التسميات؛ وهذا لا يغير أهداف إثيريوم أو خططها. - -[تعرّف على المزيد حول إعادة تسمية 'Eth2'](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) - -## العِلاقة بين الترقيات {#relationship-between-upgrades} - -تترابط ترقيات إثيريوم كلها إلى حد ما. لذا دعونا نلخص كيف يرتبط الدمج بالترقيات الأخرى. - -### عملية الدمج وسلسلة المنارة {#merge-and-beacon-chain} - -تمثل عملية الدمج الاعتماد الرسمي لسلسلة المنارة باعتبارها الطبقة الجديدة لإجماع الآراء بالنسبة لطبقة التنفيذ الأساسية للشبكة الرئيسية. خُصصت برامج المدقق منذ عملية الدمج لتأمين صيانة الإثيريوم في الشبكة الرئيسية، والتنقيب في [إثبات العمل](/developers/docs/consensus-mechanisms/pow/) لم يعد وسيلة صالحة للحصول على الكتل. - -وتُقدم الكتل عوضًا عن ذلك باستخدام التحقق من صحة العُقد التي جمدت الإثيريوم مقابل الحق في المشاركة في إجماع الآراء. كما مهدت هذه التحديثات السبيل نحو رفع مستوى القابلية للترقيات، بما في ذلك التقسيم والتوزيع. - - - سلسلة المنارة - - -### عملية الدمج وترقية شنغهاي {#merge-and-shanghai} - -لم تشمل ترقية عملية الدمج بعض الميزات المتوقعة مثل القدرة على سحب تجميد العملات في الإثيريوم وذلك بُغية تبسيط وزيادة التركيز على الانتقال الناجح إلى مرحلة إثبات الحصة إلى أقصى قدر ممكن. ومن المزمع أن تأتي ترقية شنغهاي عقب عملية الدمج، التي ستمكن المراهن من السحب. - -ابق على اطلاع مع [مشكلة تخطيط ترقية شنغهاي على موقع GitHub](https://github.com/ethereum/pm/issues/450)أو [مدونة البحث والتطوير EF](https://blog.ethereum.org/category/research-and-development/). ولمن يتملكهم الفضول، يمكن الحصول على المزيد من المعلومات حول [ما يحدث بعد عملية الدمج](https://youtu.be/7ggwLccuN5s?t=101)، حيث يقدّم العرض Vitalik بحدث ETHGlobal في أبريل 2021. - -### عملية الدمج وسلاسل الأجزاء {#merge-and-data-sharding} - -كانت الخِطَّة في الأصل أن نعمل على سلسلة الأجزاء قبل عملية الدمج لمعالجة قابلية التوسع. لكن مع ازدهار[حلول التوسيع للطبقة 2](/layer-2/) تحولت الأولوية نحو تغيير إثبات العمل إلى إثبات الحصة من خلال عملية إثبات الحصة أولاً. - -كما تتطور خطط التقسيم والتوزيع بسرعة، ولكن نظرًا لظهور ونجاح تكنولوجيات الطبقة 2 في توسيع نطاق تنفيذ المعاملات، فقد تحولت خطط التقسيم والتوزيع إلى إيجاد أفضل طريقة لتوزيع عبء تخزين بيانات المكالمات المضغوطة من العقود المتراكمة والسماح بالنمو الأسي في سَعَة الشبكة. حيث لن يحدث ذلك دون الانتقال أولاً إلى مرحلة إثبات الحصة. - - - التقسيم - - -## قراءة إضافية {#further-reading} - - - - diff --git a/src/content/translations/ar/smart-contracts/index.md b/src/content/translations/ar/smart-contracts/index.md deleted file mode 100644 index 3e07ca53d5c..00000000000 --- a/src/content/translations/ar/smart-contracts/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: العقود الذكية -description: مقدمة غير تقنية للعقود الذكية -lang: ar ---- - -# مدخل إلى العقود الذكية {#introduction-to-smart-contracts} - -العقود الذكية هي عبارة عن كتل بناء أساسية في طبقة تطبيق الإيثريوم. هي برامج حاسوبية مُخزنة على بلوكتشين تتبع منطق "إذا هذا ثم ذلك"، وهي مضمونة التنفيذ وفقًا لقواعد محددة في النص البرمجي الخاص بها، والذي لا يمكن تغييره بمجرد إنشائه. - -وقد صاغ نيك سزابو مصطلح "العقد الذكي". حيث كتب في عام 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). - -تصوّر Szabo سوقًا رقمية تمكّن فيه العمليات الآلية والمشفرة بشكل آمن حدوث المعاملات ووظائف الأعمال بدون الحاجة إلى وسطاء موثوق بهم. وجدت عقود إيثريوم الذكية لجعل هذه الفكرة قابلة للتطبيق. - -### وضع الثقة في العقود التقليدية {#trust-and-contracts} - -تتمثل إحدى أكبر مشاكل العقود التقليدية في الحاجة إلى وجود أشخاص موثوق بهم لمتابعة نتائج العقد. - -إليك مثالًا: - -أليس وبوب يخوضان سباق دراجات. فلنفترض أن أليس راهنت بوب على 10 دولارات أنها ستفوز عليه في السباق. ولأن بوب واثق من قدرته على الفوز في السباق، وافق على الرهان. في النهاية، سبقت أليس بوب بفارق كبير وكانت هي الرابحة دون أدنى شك. لكن بوب رفض دفع الرهان مدعيًا أنه بالتأكيد أليس قد غشت. - -هذا مثال بسيط يوضح المشكلة المتعلقة بأي اتفاقية غير ذكية. وحتى لو استوفيت شروط الاتفاق (أي أنت الفائز في السباق)، فلا بد أن تضع ثقتك بشخص آخر يفي بالاتفاقية (أي الدفع في الرهان). - -### آلة بيع رقمية {#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 deleted file mode 100644 index 3ba58c093b4..00000000000 --- a/src/content/translations/ar/social-networks/index.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -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](/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_ -- [How Blockchain Can Solve Social Media Privacy (كيف يمكن لسلسلة الكتل أن تحل مشكلة الخصوصية في وسائل التواصل الاجتماعي)](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _برابلين باجباي_ -- [Social Media Networks Are Coming To The Blockchain (انتقال وسائل التواصل الاجتماعي إلى سلسلة الكتل](https://businesstechguides.co/what-are-decentralized-social-networks) — _إيمانويل أوسيكا_ -- [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/content/translations/ar/staking/pools/index.md b/src/content/translations/ar/staking/pools/index.md deleted file mode 100644 index 03b0afbd755..00000000000 --- a/src/content/translations/ar/staking/pools/index.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: تجميد العملات المجمعة -description: نظرة عامة على كيفية بدء مراهنة عملة ETH المجمعة -lang: ar -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-pool.png -alt: يسبح ليزلي فرس النهر في حمام السباحة. -sidebarDepth: 2 -summaryPoints: - - راهن واحصل على مكافآت بأي مبلغ من ETH من خلال مشاركة الآخرين - - تجاوز الجزء الصعب وأسند عملية المدقق إلى جهة خارجية - - احتفظ برموز الرهانات المميزة في محفظتك الخاصة ---- - -## ما هو تجمع الرهان؟ {#what-are-staking-pools} - -إن تجمع الرهان هو نهج تعاوني يسمح للكثيرين ممن يمتلكون مبالغ قليلة من ETH بالحصول على 32 ETH اللازمة لتفعيل مجموعة من مفاتيح المدقق. لا يتم دعم وظيفة التجميع محلياً في البروتوكول، لذا تم إيجاد حلول منفصلة لتلبية هذه الحاجة. - -تعمل بعض تجمعات الرهان باستخدام العقود الذكية، حيث يمكن إيداع المبالغ في عقد، الذي يُدير ويتتبع حصتك بكل موثُوقية، ويُصدر لك رمزًا مميزًا يُمثل هذه القيمة. قد لا تشتمل التجمعات الأخرى على عقود ذكية وتتم من خلال الوساطة خارج السلسلة بدلاً من ذلك. - -## ما هي ميزات تجمع الرهان؟ {#why-stake-with-a-pool} - -إضافة إلى المزايا التي وضحناه في [مُقدمة عن المراهنة](/staking/)، تتضمن المراهنة في تجمعات حزمة من المزايا المتميزة. - - - - - - - - - -## الأمور التي يجب وضعها في اﻻعتبار {#what-to-consider} - -لا يتم دعم المراهنة المجمعة أو المفوضة محليًا في بروتوكول اﻻيثيريوم، ولكن نظرًا إلى طلب المستخدمين للمراهنة بأقل من 32 ETH، فقد تم إيجاد عدد متزايد من الحلول لتلبية هذا الطلب. - -يتم إنشاء كل تجمع والأدوات أو العقود الذكية التي يستخدمونها من قبل فرق مختلفة، وكلّ منها يتضمن مزايا ومخاطر. تُمكِّن التجمعات المستخدمين من مبادلة ETH الخاص بهم برمز مميز يمثل ETH التي تمت مراهنتها. الرمز المميز مفيد لأنه يسمح للمستخدمين بمبادلة أي كمية من ETH لكمية مماثلة من الرموز المميزة الحاملة للعائدات، التي تنشئ عائدات من مكافأت المراهنة التي يتم تطبيقها على ETH التي تمت مراهنته (والعكس صحيح) على التبادلات اللامركزية على الرغم من أن عملة ETH الفعلية تظل مراهنة في طبقة الإجماع. هذا يعني أن المبادلات المتكررة من منتج ETH ذي عائد مرتفع و"ETH الخام" سريعة وسهلة وليست متوفرة فقط في مضاعفات 32 ETH. - -ومع ذلك، تميل هذه الرموز المميزة التي تمثل عملة ETH التي تمت مراهنتها لخلق سلوكيات عصابية، حيث ينتهي الأمر بكمية كبيرة من عملة ETH التي تمت مراهنتها تحت سيطرة منظمات مركزية قليلة بدلًا من أن يتم توزيعه على العديد من الأفراد المستقلين. يخلق ذلك ظروفًا للرقابة أو استخراج القيمة. يجب أن يكون المقياس الذهبي للمراهنة دائمًا عبارة عن أفراد يشغلون عقد تدقيق على معداتهم الخاصة كلما أمكن ذلك. - -[مزيد من المعلومات عن مخاطر الرموز المميزة للمراهنة](https://notes.ethereum.org/@djrtwo/risks-of-lsd). - -تُستخدم مؤشرات السمات أدناه للتدليل على أي نقاط ضعف أو قوة ملحوظين يتمتع بهم تجمع الرهان المدرج. استخدم هذا القسم كمرجع لكيفية تحديد هذه السمات بينما تختار تجمعًا للانضمام إليه. - - - -## التعرف على تجمعات الرهان {#explore-staking-pools} - -تتوفر خيارات متنوعة لمساعدتك على إكمال الإعداد. استخدم المؤشرات أعلاه للمساعدة في إرشادك خلال الأدوات المتاحة أدناه. - - - - - -يُرجى مراعاة أهمية اختيار الخدمة التي تأخذ [تنوع العملاء](/developers/docs/nodes-and-clients/client-diversity/) على محمل الجد، لأنها تعمل على تحسين أمان الشبكة، وتحدّ من المخاطر التي تتعرض لها. تتم الإشارة إلى الخدمات التي تمتلك دليلًا على وضع حدود على أغلبية استخدامات العملاء بـ "تنويع عملاء التنفيذ" و"تنويع عملاء الإجماع". - -هل لديك اقتراح غاب عنا لأداة مراهنة؟ راجع [سياسة قائمة المنتجات](/contributing/adding-staking-products/) الخاصة بنا لمعرفة ما إذا كانت مناسبة، ثم أرسلها للمراجعة. - -## الأسئلة الشائعة {#faq} - - -عادةً، يتم إصدار الرموز المميزة للمراهنة وفقًا للمعيار ERC-20 للمراهنين، وتمثل هذه الرموز قيمة عملة ETH التي تمت مراهنتها إضافة إلى المكافآت. ضع في عين الاعتبار أن تجمعات الرهان المختلفة ستوزع مكافآت المراهنة لمستخدميها بطرق مختلفة بعض الشيء، لكن هذا هو الموضوع المشترك. - - - -الآن! تم تنفيذ تطوير الشبكة المعروف بـ Shanghai/Capella في أبريل ٢٠٢٣، وتم تقديم من خلاله ميزة سحب المراهنات. تتمع حسابات المدققين التي تدعم تجميعات الرهان الآن بإمكانية الخروج وسحب ETH على عنوان السحب المخصص. يتيح ذلك إمكانية استرداد أموال الجزء الخاص بك من الرهان مقابل عملة ETH الأساسية. تحقق من الأمر مع مزود الخدمة الخاص بك لمعرفة إذا ما كان يدعم هذه الوظيفة. - -وكحل بديل، تسمح بعض التجمعات التي تستخدم رموز مميزة للمراهنة وفقًا لمعيار ERC-20 لمستخدميها بتداول هذه الرموز المميزة في السوق المفتوحة، وتسمح لهم ببيع موضع المراهنة الخاص بهم، بشكلٍ يؤدي إلى انسحابهم من عملية المراهنة دون إزالة عملة ETH من عقد المراهنة. - -مزيد من المعلومات حول عمليات السحب المتعلقة بالمراهنات - - - -هناك العديد من أوجه التشابه بين خيار المراهنة المجمع، والمبادلات المركزية، مثل القدرة على المراهنة بمبالغ صغيرة من عملات ETH وتجميعهم معًا لتفعيل برامج المدققون. - -على عكس المبادلات المركزية، تستخدم العديد من خيارات المراهنة المجمعة الأخرى العقود الذكية و/أو الرموز المميزة للمراهنة، التي تكون عادةً وفقًا لمعيار الرموز المميزة ERC-20، والتي يمكن الاحتفاظ بها في محفظتكم الخاصة، كما يمكن بيعها وشراؤها كأي رمز مميز آخر. يضيف ذلك طبقة من النفوذ والأمان، من خلال منحك التحكم الكامل بالرموز المميزة الخاصة بك، لكن مع ذلك لا يمنحك سيطرة مباشرة على مصادقة عميل التدقيق الذي يعمل بالنيابة عنكم في الخلفية. - -تكون بعض خيارات التجمع أكثر لامركزية من غيرها عندما يتعلق الأمر بالعقود التي تدعمها. للترويج لصحة ولامركزية الشبكة، يتم تشجيع المراهنين دائمًا على اختيار خدمات تجميع تمكن مجموعة لامركزية غير مصرح بها من مشغلي العقدة. - - -## قراءة إضافية {#further-reading} - -- [المراهنة باستخدام RocketPool - نظرة عامة على المراهنة](https://docs.rocketpool.net/guides/staking/overview.html) - _وثائق RocketPool_ -- [مراهنة عملات إيثريوم باستخدام Lido](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _وثائق المساعدة الخاصة بـ Lido_ diff --git a/src/content/translations/ar/staking/saas/index.md b/src/content/translations/ar/staking/saas/index.md deleted file mode 100644 index 20d199dc4b6..00000000000 --- a/src/content/translations/ar/staking/saas/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: تجميد العملات كخدمة -description: نظرة عامة على كيفية بدء مع تجميع ETH -lang: ar -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-saas.png -alt: يطوف ليزلي فرس النهر في السحاب. -sidebarDepth: 2 -summaryPoints: - - تتولى جهة خارجية مختصة بتشغيل العقد عمليات تشغيل عميلك المدقق - - خيار رائع لكل شخص يمتلك 32 ETH ولا يشعر بالراحة إزاء التعامل مع التعقيد التقني المرتبط بتشغيل عقدة - - خفض مستوى الثقة المطلوب، والحفاظ على ملكية مفاتيح السحب ---- - -## ما هي المراهنة كخدمة؟ {#what-is-staking-as-a-service} - -تمثل المراهنة كخدمة (SaaS) فئة من خدمات المراهنة حيث تقوم بإيداع 32 ETH الخاصة بك لتشغيل برنامج المدقق، لكنك تفوض عمليات تشغيل العقدة لجهة خارجية. تشمل هذه العملية عادةً الحصول على توجيه خلال إجراء الإعدادات الأولية، بما في ذلك إنشاء المفاتيح والإيداع، ثم تحميل مفاتيح التوقيع الخاصة بك إلى منصة التشغيل. يسمح ذلك للخدمة بتشغيل برنامج المدقق الخاص بك نيابة عنك، عادةً مقابل رسوم شهرية. - -## لم يجب المراهنة باستخدام خدمة؟ {#why-stake-with-a-service} - -لا يدعم بروتوكول إيثريوم بتفويض المراهنة، لذا تم تصميم هذه الخدمات لتلبية هذه الحاجة. إذا كنت تمتلك عملة 32 ETH لمراهنتها، ولكنك غير مرتاح إزاء التعامل مع المعدات، تسمح لك خدمات SaaS بإسناد الجزء الصعب إليهم بينما تحصل على كتلة مكافآت أصلية. - - - - - - - - - -## العناصر التي يجبُ أخذُها بعين اﻻعتبار {#what-to-consider} - -يتواجد عدد متزايد من موفري خدمات SaaS الذين يساعدونك على مراهنة عملة ETH الخاص بك، لكن هناك مميزات ومخاطر لكلٍ منهم. تتطلب جميع خيارات SaaS قدرًا إضافيًا من الثقة بالافتراضات مقارنةً بالمراهنة باستخدام معدات منزلية. قد تحتوي خيارات Saas على كود إضافي يغطي عملاء إيثريوم وقد لا يكون هذا الكود مفتوح المصدر أو متاحًا للتدقيق. كما تُحدث SaaS أثرًا سلبيًا على لامركزية شبكة إيثريوم. حسب الإعداد، قد لا يكون بإمكانك التحكم في برنامج المدقق الخاص بك - وبإمكان مشغل الخدمة التصرف في عملة ETH الخاص بكم بطريقة غير نزيهة. - -تُستخدم مؤشرات السمات أدناه للتدليل على أي نقاط ضعف أو قوة ملحوظين يتمتع بهم موفر خدمات SaaS المدرج. استخدم هذا القسم كمرجع لكيفية تحديد هذه السمات بينما تختار خدمة لمساعدتك على بدء رحلة المراهنة الخاصة بك. - - - -## التعرف على موفري خدمات المراهنة {#saas-providers} - -يتوفر أدناه بعض موفري خدمات المراهنة. استخدم المؤشرات أعلاه للمساعدة في إرشادك خلال هذه الخدمات. - - - -#### موفرو خدمات المراهنة - - - -يُرجى مراعاة أهمية اختيار الخدمة التي تدعم [تنوع العملاء](/developers/docs/nodes-and-clients/client-diversity/)، لأنها تعمل على تحسين أمان الشبكة، وتحدّ من المخاطر التي تتعرض لها. تتم الإشارة إلى الخدمات التي تمتلك دليلًا على وضع حدود على أغلبية استخدامات العملاء بـ "تنويع عملاء التنفيذ" و"تنويع عملاء الإجماع". - -#### مكونات المفاتيح - - - -هل لديك اقتراح غاب عنا بخصوص موفر خدمات المراهنة باعتبارها خدمة؟ راجع [سياسة قائمة المنتجات](/contributing/adding-staking-products/) الخاصة بنا لمعرفة ما إذا كانت مناسبة، ثم أرسلها للمراجعة. - -## الأسئلة الشائعة {#faq} - - -ستختلف الترتيبات من موفر خدمات إلى آخر، لكن العامل المشترك بينهم هو أنهم سيرشدونك خلال عملية إعداد مفاتيح التوقيع التي ستحتاجها (مفتاح لكل 32 ETH)، وتحميل هذه المفاتيح لموفر الخدمات للسماح له بالتدقيق نيابة عنك. لا تمنح مفاتيح التوقيع وحدها صلاحية بإجراء عملية سحب أو تحويل أو إنفاق لأموالكم. على كلٍ، تمنح هذه المفاتيح صلاحية التصويت في إجماع الآراء، والتي إذا لم يتم تنفيذها بشكل صحيح يمكن أن تؤدي إلى عقوبات الانقطاع عن الإنترنت أو الشطب. - - - -نعم. يتكون كل حساب من مفاتيح توقيع ومفاتيح سحب من BLS. ليتمكن المدقق من مصادقة حالة السلسلة، والمشاركة في لجان التزامن واقتراح كتل، يجب على العميل المدقق أن يمتلك وصولًا إلى مفاتيح التوقيع بشكلٍ مسبق. يجب أن تكون هذه المفاتيح متصلة بالإنترنت بشكلٍ ما، ولهذا يمكن اعتبارها بشكلٍ أصلي على أنها مفاتيح "قوية". مفاتيح التوقيع مطلوبة ليتمكن المدقق من المصادقة، وبالتالي يتم فصل المفاتيح المستخدمة لتحويل أو سحب الأموال لأسباب أمنية. - -تستخدم مفاتيح سحب BLS لتوقيع رسالة لمرة واحدة، والتي تعلن عن طبقة التنفيذ التي يجب تحويل مكافآت الرهان والأموال الصادرة إليها. بمجرد بث هذه الرسالة، لا تعد هناك حاجة إلى مفاتيح سحب BLS. بدلًا من ذلك، يتم تفويض التحكم بعمليات السحب بصورة دائمة إلى العنوان الذي قدمته. يتيح لك ذلك إعداد عنوان سحب مؤمن عبر وسائل تخزين غير متصلة بالإنترنت، ما يقلل من خطر الوصول إلى أموال المدقق الخاص بك، حتى في حال كان هناك شخص آخر يتحكم في مفاتيح توقيع المدقق الخاصة بك. - -تحديث بيانات اعتماد السحب هي خطوة مطلوبة لتمكين إجراء عمليات السحب. تتضمن هذه العملية إنشاء مفاتيح السحب الخاصة بك باستخدام عبارة الأصل الذاكرية. - -تأكد من الاحتفاظ بعبارة الأصل هذه بطريقة آمنة أو لن تتمكن من إنشاء مفاتيح السحب الخاصة بك عندما يحين الوقت. - -\*المراهنون الذين يوفرون عنوان سحب خلال عملية الإيداع الأولي لا يحتاجون إلى إجراء ذلك. تواصل مع موفر خدمة SaaS الخاص بكم للحصول على الدعم فيما يتعلق بكيفية تحضير برنامج المدقق الخاص بك. - - - -تم تطبيق عمليات سحب المراهنة في تحديث Shanghai/Capella في أبريل ٢٠٢٣. يجب على المراهنين توفير عنوان سحب (في حال لم يتم توفيره خلال عملية الإيداع الأولي)، وسيبدأ توزيع مدفوعات المكافآت تلقائيًا بشكلٍ دوري كل بضعة أيام. - -بإمكان المدققين أيضًا أن الخروج كليًا من عملية المراهنة، ما يتيح لهم إمكانية سحب رصيد ETH المتبقي لهم. ستحصل الحسابات التي وفرت عنوان سحب للتنفيذ، وأنهت عملية الخروج، على رصيدها بالكامل على عنوان السحب الذي تم توفيرة خلال عملية توزيع المكافآت الأولى. - -مزيد من المعلومات حول عمليات السحب المتعلقة بالمراهنات - - - -باستخدام موفر خدمات SaaS، فأنت بذلك تسند عملية العقدة الخاص بك إلى شخص آخر. لا يخلو ذلك من خطر ضعف أداء العقدة، الأمر الذي سيكون خارج سيطرتك. في حال تعرض المدقق الخاص بك للشطب، سيتم تطبيق عقوبة السحب من رصيد المدقق الخاص بك، كما سيتم سحب الرصيد بشكلٍ قسري وإزالته من تجمع المدقق. - -بعد إتمام عملية الشطب والخروج، سيتم تحويل الأموال المتبقية إلى عنوان السحب المخصص للمدقق. يتطلب ذلك توفير عنوان سحب لتمكين العملية. قد يكون تم توفيره خلال عملية الإيداع الأولي. في حالة عدم التوفر، يجب استخدام مفاتيح السحب الخاصة بالمدقق لتوقيع رسالة تكشف عن عنوان السحب. في حالة عدم توفير أي عنوان سحب، ستبقى الأموال مجمدة حتى يتم توفير عنوان سحب. - -تواصل مع موفر خدمة SaaS للاستفسار عن المزيد من التفاصيل حول الضمانات أو خيارات التأمين التي يقدمها، وعن تعليمات بخصوص كيفية توفير عنوان سحب. إذا كنت تفضل التمتع بالتحكم الكامل في إعداد المدقق الخاصة بك، تعرف على المزيد عن كيفية المراهنة بشكلٍ منفرد. - - -## قراءة إضافية {#further-reading} - -- [تقييم خدمات المراهنة](https://www.attestant.io/posts/evaluating-staking-services/) - _جيم ماكدونالد 2020_ diff --git a/src/content/translations/ar/staking/solo/index.md b/src/content/translations/ar/staking/solo/index.md deleted file mode 100644 index 73532beb32e..00000000000 --- a/src/content/translations/ar/staking/solo/index.md +++ /dev/null @@ -1,203 +0,0 @@ ---- -title: المراهنة الفردية لعملة ETH الخاص بك -description: نظرة عامة إلى كيفية بدء المراهنة الفردية لعملة ETH الخاص بك -lang: ar -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-solo.png -alt: ليزلي فرس النهر على شريحة الحاسوب الخاصة بها. -sidebarDepth: 2 -summaryPoints: - - الحصول على أقصى قدر ممكن من المكافآت من البروتوكول مباشرةً نظير الحفاظ على أداء برنامج المدقق الخاص بك بشكلٍ صحيح وإبقائه متصلاً بالإنترنت - - تشغيل الأجهزة المنزلية، وتعزيز أمان ولامركزية شبكة إيثريوم بشكلٍ شخصي - - إلغاء الحاجة إلى الثقة، وعدم التوقف عن التحكم في المفاتيح التي تمنحك الوصول إلى أموالك ---- - -## ما المقصود بالمراهنة الفردية؟ {#what-is-solo-staking} - -المراهنة الفردية هي عملية [تشغيل عقدة إيثريوم](/run-a-node/) متصلة بالإنترنت، وإيداع 32 ETH لتفعيل [برنامج المدقق](#faq)، وهذا يمنحك إمكانية المشاركة مباشرةً في إجماع الآراء على الشبكة. - -**تزيد المراهنة الفردية من لامركزية شبكة إيثريوم**، وهو ما يجعل إيثريوم أكثر مقاومة للرقابة وأكثر قوة أمام الهجمات. قد لا تساعد أساليب المراهنة الأخرى الشبكة بالطرق نفسها. تُعد المراهنة الفردية أفضل خيار مراهنة لتأمين إيثريوم. - -تتكون عقدة إيثريوم من عميل طبقة التنفيذ (EL) إضافة إلى عميل طبقة إجماع الآراء (CL). البرامج هي برمجيات تعمل معًا، إلى جانب مجموعة صالحة من مفاتيح التوقيع، للتحقق من المعاملات والكتل، ومصادقة العنوان الصحيح للسلسلة، وتجميع عمليات المصادقة، واقتراح الكتل. - -يتحمل المراهنون الفرديون مسؤولية تشغيل الأجهزة اللازمة لتشغيل هؤلاء العملاء. يُوصى بشدة باستخدام آلة مخصصة لهذا الغرض يمكنك تشغيلها من المنزل، هذا مفيد للغاية لسلامة الشبكة. - -يتلقى المراهنون الفرديون المكافآت من البروتوكول مباشرةً نظير الحفاظ على أداء برنامج المدقق الخاص بهم وإبقائه متصلًا بالإنترنت. - -## لماذا يجب التفكير في المراهنة الفردية؟ {#why-stake-solo} - -تنطوي المراهنة الفردية على مسؤولية أكبر ولكنها توفر أقصى قدر من التحكم في أموالك وإعدادات المراهنة. - - - - - - - -## الاعتبارات التي ينبغي وضعها في الاعتبار قبل المراهنة الفردية {#considerations-before-staking-solo} - -بقدر ما نتمنى أن تكون المراهنة الفردية متاحة وتخلو من المخاطر للجميع، فهذا ليس حقيقة واقعة. هناك بعض الاعتبارات العملية والمهمة التي ينبغي وضعها في الاعتبار قبل اختيار المراهنة الفردية لعملة ETH الخاصة بك. - - - -عند تشغيل العقدة الخاصة بك، عليك تخصيص بعض الوقت لتعلم كيفية استخدام البرنامج الذي اخترته. يتضمن ذلك قراءة ملفات التوثيق ذات الصلة والتوافق مع قنوات التواصل الخاصة بفرق المطورين. - -كلما عرفت أكثر عن البرنامج الذي تشغّله وعن آلية عمل بروتوكول إثبات المراهنة، انخفضت المخاطر عليك كمراهن، وسيسهل من إصلاح أي مشكلات قد تواجهها كمُشغّل عقدة. - - - -يتطلب إعداد العُقد قدرًا معقولًا من الشعور بالراحة عند العمل باستخدام الحواسيب، على الرغم من أن الأدوات الجديدة تجعل هذه العملية أسهل بمرور الوقت. يُعد فهم واجهة سطر الأوامر أمرًا مفيدًا، لكنه لم يعد ضروريًّا كما كان الأمر من قبل. - -كما يتطلب الأمر إجراء إعداد أساسي للأجهزة، ومعرفة القليل عن الحد الأدنى من المواصفات المطلوب توفرها فيها. - - - -وكما هو الحال في طريقة تأمين المفاتيح الخاصة لعنوان Ethereum الخاص بك، فإنك ستحتاج إلى إنشاء مفاتيح خصوصًا لبرنامج المدقق الخاص بك. يجب أن تعرف كيفية الحفاظ على سلامة وأمان أي عبارات أصل أو مفاتيح خاصة.{' '} - -أمان إيثريوم ومنع الاحتيال - - - -أحيانًا ما تتعطل الأجهزة، وينقطع الاتصال بالشبكة، ويحتاج برنامج العميل إجراء تحديث في بعض الأحيان. صيانة العقدة هو أمر لا مهرب منه، وستتطلب بعضًا من انتباهك كل فترة. عليك التأكد من أنك على دراية بأي عمليات تحديث مرتقبة للشبكة أو للعميل. - - - -تتناسب المكافآت التي تحصل عليها مع الوقت الذي يكون برنامج المدقق الخاص بك متصلًا فيه بالإنترنت وتتم فيه المصادقة على نحوٍ سليم. تؤدي فترة التوقف إلى فرض عقوبات تتناسب مع عدد برامج المدقق الأخرى غير المتصلة بالإنترنت في الوقت نفسه، ولكنها لا تؤدي إلى شطبها. يُعد عرض النطاق الترددي أمرًا مهمًّا أيضًا، إذ يتم تقليل المكافآت على عمليات المصادقة التي لم تُجر في الوقت المناسب. تختلف المواصفات المطلوبة، ولكن يُوصى بامتلاك اتصال بسرعة ١٠ ميجا بايت/ثانية لعمليات التحميل والتنزيل. - - - -يختلف الشطب عن عقوبات عدم النشاط بسبب الوجود في وضع عدم الاتصال بالإنترنت، إذ يُعد من أشد العقوبات التي تُنفذ على البرامج الضارة. ومن خلال تشغيل عميل من الأقلية مع تحميل مفاتيحك على آلة واحدة فقط في المرة الواحدة، فإن خطر التعرض للشطب يكون في أدنى مستوياته. ومع ذلك، يجب أن يكون جميع المراهنين على دراية بمخاطر الشطب. - -معرفة المزيد عن مراحل برنامج المدقق والشطب - - - - - -## آلية العمل {#how-it-works} - - - -ستحصل على مكافآت ETH، عندما تكون نشطًا، وسيتم إيداعها في عنوان السحب الخاص بك بشكلٍ دوري. - -إذا رغبت في ذلك، يمكنك الإنهاء كبرنامج مدقق، الأمر الذي سيلغي ضرورة بقائك متصلاً بالإنترنت، ويوقف أي مكافآت أخرى. سيتم بعد ذلك سحب رصيدك المتبقي إلى عنوان السحب الذي حددته في أثناء مرحلة الإعداد. - -[مزيد من المعلومات حول عمليات السحب المتعلقة بالمراهنات](/staking/withdrawals/) - -## البدء في استخدام منصة تشغيل المراهنة {#get-started-on-the-staking-launchpad} - -منصة تشغيل المراهنة هي تطبيق مفتوح المصدر يساعدك على أن تصبح مراهنًا. سترشدك المنصة خلال اختيار عملائك، وإنشاء مفاتيحك وإيداع ETH الخاص بك في عقد إيداع المراهنة. يتم توفير قائمة مرجعية للتأكد من أنك غطيت كل الشروط اللازمة لإعداد برنامج المدقق الخاص بك بطريقة آمنة. - - - -## ما الأمور التي ينبغي مراعاتها مع أدوات إعداد العقدة والعميل {#node-tool-considerations} - -هناك عدد متزايد من الأدوات والخدمات التي تساعدك في إجراء المراهنة الفردية لعملة ETH الخاصة بك، ولكن لكل منها مخاطر وفوائد مختلفة. - -تُستخدَم مؤشرات السمات الواردة أدناه للإشارة إلى نقاط القوة أو الضعف الملحوظة التي قد تكون في أداة المراهنة المدرجة. استخدم هذا القسم كمرجع لكيفية تحديد هذه السمات في أثناء اختيارك للأدوات التي تساعدك في رحلة المراهنة. - - - -## استكشاف أدوات إعداد العقدة والعميل {#node-and-client-tools} - -تتوفر خيارات متنوعة لمساعدتك على إكمال الإعداد. استخدم المؤشرات أعلاه للمساعدة في إرشادك خلال الأدوات المتاحة أدناه. - - - -#### أدوات العقدة - - - -يُرجى ملاحظة أهمية اختيار [عميل من الأقلية](/developers/docs/nodes-and-clients/client-diversity/) لأنه يحسّن أمان الشبكة ويحد من المخاطر التي تتعرض لها. يُشار إلى الأدوات التي تتيح لك إعداد عميل من الأقلية على أنها "متعددة العملاء". - -#### مكونات المفاتيح - -These tools can be used as an alternative to the [Staking Deposit CLI](https://github.com/ethereum/staking-deposit-cli/) to help with key generation. - - - -هل لديك اقتراح غاب عنا لأداة مراهنة؟ راجع [سياسة قائمة المنتجات](/contributing/adding-staking-products/) الخاصة بنا لمعرفة ما إذا كانت مناسبة، ثم أرسلها للمراجعة. - -## استكشاف إرشادات المراهنة الفردية {#staking-guides} - - - -## الأسئلة الشائعة {#faq} - -إليك بعض أكثر الأسئلة شيوعًا حول المراهنة التي ينبغي معرفتها. - - - -برنامج المدقق هو كيان افتراضي يوجد في إيثريوم ويشارك في عملية إجماع الآراء لبروتوكول الإيثريوم. يتم استعراض برامج المدقق بواسطة الرصيد والمفتاح العام وغيرها من الخصائص. عميل برنامج المدقق هو البرنامج الذي يعمل نيابةً عن برنامج المدقق من خلال الاحتفاظ بمفتاحه الخاص واستخدامه. يمكن أن يحتفظ عميل برنامج مدقق واحد بعدة أزواج من المفاتيح، والتحكم في العديد من برامج المدقق. - - - - -يلزم وجود 32 ETH بالضبط لتفعيل كل زوج من المفاتيح المقترنة ببرنامج مدقق واحد. إن إيداع المزيد من عملات ETH في مجموعة واحدة من المفاتيح لا يزيد من المكافآت المحتملة، حيث يقتصر كل برنامج مدقق على رصيد فعال يبلغ قدره 32 ETH. هذا يعني أن المراهنة تتم بزيادات تبلغ 32 ETH، لكل منها مجموعة المفاتيح والرصيد الخاصان بها. - -لا تجرِ عملية إيداع بأكثر من 32 ETH لبرنامج مدقق واحد. إذ لن يزيد ذلك من مكافآتك. في حال تعيين عنوان سحب لبرنامج المدقق، سيتم سحب أي أموال تزيد على 32 ETH تلقائيًّا إلى هذا العنوان أثناء عملية التحقق من برنامج المدقق المقبلة. - -إذا كانت المراهنة الفردية تتطلب منك بذل الكثير من الجهد، ففكر في استخدام مزود خدمة المراهنة كخدمة، أو إذا كنت تعمل بأقل من 32 ETH، فتحقّق من تجمعات الرهان. - - - -لن يؤدي عدم الاتصال بالإنترنت إلى الشطب عندما تنهي الشبكة معاملاتها على نحوٍ سليم. يتم فرض عقوبات صغيرة على عدم النشاط إذا لم يكن برنامج المدقق الخاص بك متاحًا لإقرار حالة الشبكة لمدة دورة كاملة (مدة كل منها 6.4 دقائق)، ولكن هذه العقوبات تختلف تمامًا عن الشطب. هذه العقوبات أقل بقليل من مقدار المكافأة التي كنت ستحصل عليها لو كان برنامج المدقق متاحًا للإقرار، ويمكن تعويض الخسائر عبر الحفاظ على الاتصال بالإنترنت لفترة تعادل فترة عدم الاتصال. - -تجدر الإشارة إلى أن العقوبات المفروضة على عدم النشاط تتناسب مع عدد برامج المدقق غير المتصلة بالإنترنت في الوقت نفسه. وفي الحالات التي يكون فيها جزء كبير من الشبكة غير متصل بالإنترنت في آن واحد، فإن العقوبات المفروضة على كل من برامج المدقق هذه ستكون أكثر مما كانت في حال عدم توفر برنامج مدقق واحد. - -في الحالات القصوى، إذا توقفت الشبكة عن إنهاء معاملاتها نتيجة لعدم اتصال أكثر من ثلث برامج المدقق بالإنترنت، فسيتعرض هؤلاء المستخدمون لما يُعرف باسم تسرب عدم النشاط التربيعي، وهو استنزاف هائل لعملات ETH من حسابات برنامج المدقق غير المتصلة بالإنترنت. يتيح ذلك للشبكة إمكانية الإصلاح الذاتي في نهاية المطاف عبر استهلاك ETH الخاص ببرامج المدقق غير النشطة حتى يصل رصيدها إلى 16 ETH، وعندها سيتم إخراجها تلقائيًّا من تجمع برنامج المدقق. ستشكّل برامج المدقق المتصلة بالإنترنت المتبقية في النهاية أكثر من ثلثي الشبكة مجددًا، الأمر الذي يحقق الأغلبية المطلقة اللازمة لكي تنهي الشبكة معاملاتها مجددًا. - - - -باختصار، ليس هناك ضمان كامل لعدم التعرض للشطب، ولكن إذا تصرفت بحسن نية، وشغّلت أحد عملاء الأقلية، واحتفظت بمفاتيح التوقيع الخاصة بك على جهاز واحد في كل مرة، فإن خطر التعرض للشطب سيكون معدومًا تقريبًا. - -لا يوجد سوى عدد قليل من الطرق المحددة التي يمكن أن تؤدي إلى تعرض برنامج المدقق للشطب وإخراجه من الشبكة. وحتى وقت كتابة هذه السطور، كانت عمليات الشطب التي تمت حتى الآن، بشكلٍ حصري، نتاجًا لإعدادات الأجهزة الزائدة عن الحاجة حيث يتم تخزين مفاتيح التوقيع على جهازين منفصلين في وقت واحد. تخزين المفاتيح بهذه الطريقة يمكن أن يؤدي إلى حدوث تصويت مزدوج من مفاتيحك، وهو أمر يعد مخالفة تستوجب الشطب. - -كما تنطوي عملية تشغيل عميل لديه أغلبية كبيرة (أي عميل يستخدمه أكثر من ثلثي الشبكة) على خطر التعرض للشطب إذا تسبب خلل في هذا العميل بحصول تفرع في الشبكة. قد يؤدي ذلك إلى ظهور تفرع خطأ يصل إلى مرحلة إنهاء المعاملات. سيتطلب تصحيح الخطأ والعودة إلى السلسلة المقصودة تقديم تصويت انسحاب من خلال محاولة التراجع عن الكتلة النهائية. كما يمثل ذلك مخالفة تستوجب الشطب، ويمكن تفاديها عبر تشغيل عقدة أقلية بدلًا من عقدة أغلبية. - -الأخطاء المماثلة في عميل الأقلية لا يبلغ مرحلة الإنهاء ومن ثم لا تؤدي أبدًا إلى حدوث تصويت شامل، وهو الأمر الذي سيؤدي ببساطة إلى فرض عقوبات عدم النشاط وليس الشطب. - - - - - -قد يختلف العملاء الفرديون قليلاً من حيث الأداء وواجهة المستخدم، حيث يتم تطوير كل منهم من قِبل فرق مختلفة باستخدام مجموعة متنوعة من لغات البرمجة. ومع قول ذلك، فإنه لا يوجد نوع عملاء يعد "الأفضل". إذ يُعد جميع عملاء الإنتاج من البرامج الممتازة، وتؤدي جميعًا الوظائف الأساسية نفسها المتعلقة بمزامنة البلوكتشين والتفاعل معها. - -ونظرًا إلى تقديم جميع عملاء الإنتاج الوظيفة الأساسية نفسها، فمن الضروري للغاية في الواقع أن تختار عميل أقلية، أي عميلاً لا يتم استخدامه حاليًّا من قبل غالبية برامج المدقق الموجودة على الشبكة. قد يبدو ذلك معاكسًا للمنطق، ولكن تشغيل عميل أغلبية أو عميل أغلبية كبيرة يعرضك لخطرٍ متزايد من الشطب في حال حدوث خلل في هذا العميل. تشغيل عميل أقلية يخفض هذا الخطر بشكلٍ كبير. - -تعرّف على المزيد حول سبب أهمية تنوع العملاء - - - -على الرغم من أنه يمكن استخدام خادم افتراضي خاص (VPS) كبديل للأجهزة المنزلية، فإن الوصول المادي وموقع عميل برنامج المدقق الخاص بك يُعد أمرًا مهمًّا. تتيح الحلول السحابية المركزية مثل Amazon Web Services أو Digital Ocean عدم الاضطرار إلى شراء الأجهزة وتشغيلها، لكن ذلك يكون على حساب مركزية الشبكة. - -كلما زاد عدد عملاء برامج المدقق الذين يستخدمون حل تخزين سحابي مركزي واحد، زاد الخطر على هؤلاء المستخدمين. أي حدث يؤدي إلى عدم اتصال مزودي الخدمات هؤلاء بالإنترنت، إما عن طريق التعرض لهجوم أو نتيجة مطالب تنظيمية أو بسبب انقطاع بالكهرباء أو الإنترنت، سيؤدي إلى توقف كل عميل برنامج مدقق يعتمد على هذا الخادم لعدم الاتصال بالإنترنت في الوقت نفسه. - -علمًا أن عقوبات الانقطاع عن الإنترنت تزداد مع ازدياد عدد العملاء الآخرين المنقطعين عن الإنترنت. استخدم سيرفرًا خاصًّا افتراضيًّا يزيد من خطر عقوبات الانفصال عن الإنترنت ويجعلها أكثر قسوةً، ويزيد من عرضتكم لتسرب تربيعي أو خصم إذا كان الانقطاع عن الإنترنت واسع النطاق لدرجة كافية. ولتقليل المخاطر التي تتعرض لها والتي تتعرض لها الشبكة، فإننا ننصح بشدة أن يشتري المستخدمون أجهزتهم الخاصة وتشغيلها. - - - - -تتطلب عمليات السحب من أي نوع من سلاسل المنارة تعيين بيانات اعتماد السحب. - -يقوم المراهنون الجدد بتعيين هذه البيانات في وقت إنشاء المفاتيح وإيداعها. يمكن للمراهنين الحاليين الذين لم يسبق لهم تعيين هذه البيانات، تحديث مفاتيحهم لدعم هذه الوظيفة. - -بعد تعيين بيانات اعتماد السحب، سيتم توزيع مدفوعات المكافآت (عملات ETH المتراكمة التي تزيد على 32) بصورة دورية في عنوان السحب تلقائيًّا. - -لفتح رصيدك واسترداده بالكامل، عليك أيضًا إكمال عملية الخروج من برنامج المدقق. - -مزيد من المعلومات حول عمليات السحب المتعلقة بالمراهنات - - -## قراءة إضافية {#further-reading} - -- [مشكلة تنوع عملاء إيثريوم](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ -- [تقديم المساعدة بخصوص تنوع العملاء](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ -- [تنوع العملاء في طبقة إجماع الآراء الخاصة بإيثريوم](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ -- [كيفية: التسوق لشراء أجهزة برنامج مدقق إيثريوم](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ -- [بتعليمات مفصلة: كيفية الانضمام إلى شبكة تجريب إيثريوم 2.0](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _Butta_ -- [نصائح لتفادي التعرض للشطب من Eth2](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raul Jordan 2020_ diff --git a/src/content/translations/ar/staking/withdrawals/index.md b/src/content/translations/ar/staking/withdrawals/index.md deleted file mode 100644 index c151cf2569c..00000000000 --- a/src/content/translations/ar/staking/withdrawals/index.md +++ /dev/null @@ -1,217 +0,0 @@ ---- -title: عمليات سحب تجميد العملات -description: ملخص الصفحة عن ماهية دفع عمليات سحب المراهنة، آلية عملها، والإجراءات التي يحتاج المراهنون إلى اتخاذها للحصول على مكافأتهم -lang: ar -template: staking -image: ../../../../../assets/staking/leslie-withdrawal.png -alt: ليزلي فرس النهر مع مكافأتها من المراهنة -sidebarDepth: 2 -summaryPoints: - - ساعد تحديث Shanghai/Capella على تمكين سحب المراهنة على إيثريوم - - يجب أن يقدم مشغلو برنامج المدقق عنوان السحب لتمكين هذه الخاصية - - يتم توزيع المكافآت تلقائيًّا كل بضعة أيام - - سيحصل المدققون الذين يخرجون من نظام المراهنة كليًّا على كامل رصيدهم المتبقي ---- - - -تم تمكين خاصية سحب المراهنة بفضل تحديث Shanghai/Capella الذي حدث في 12 أبريل 2023.  مزيد من المعلومات عن هذا التحديث - - -تشير **عمليات سحب المراهنة** إلى تحويل عملة ETH من حساب المدقق على طبقة إجماع إيثريوم (سلسلة المنارة) إلى طبقة التنفيذ حيث يمكن تداوله. - -**مدفوعات مكافآت الرصيد الفائض** للمدققين المساهمين بأكثر من 32 ETH سيتم إرسالها بشكل تلقائي ومنتظم إلى عنوان السحب المرتبط بكل مدقق، بمجرد أن يقدم المستخدم هذه العناوين. بإمكان المستخدمين أيضًا **الخروج من نظام المراهنة كليًّا**، بشكلٍ يتيح فتح قفل كامل رصيدهم كمدققين. - -## مكافآت المراهنة {#staking-rewards} - -تتم معالجة مدفوعات المكافآت لكافة حسابات المدققين النشطة والتي تمتلك رصيدًا ساريًا من رصيد 32 ETH. - -لا يساهم أي رصيد يتجاوز 32 ETH يتم ربحه من خلال المكافآت حقًّا في عملية الإيداع الأساسية، ولا يزيد من وزن المدقق في الشبكة، ولذلك يتم سحبها تلقائيًّا كدفعات مكافآت كل بضعة أيام. باستثناء الحاجة إلى توفير عنوان سحب لمرة واحدة، لا يتطلب استلام المكافآت أن يتخذ مشغل برنامج المدقق أي إجراء. يتم تنفيذ كافة هذه الإجراءات على طبقة الإجماع، لذلك لا توجد حاجة إلى رسوم غاز (رسوم معاملات) في أي خطوة. - -### كيف قطعنا هذا الشوط حتى وصلنا إلى هنا؟ {#how-did-we-get-here} - -على مدار السنوات الماضية، أجرت إيثريوم عدة تحديثات للشبكة، لتنتقل إلى شبكة يتم تأمينها بعملة ETH نفسها، بدلًا من عمليات تعدين مستهلكة للكهرباء كما كان الأمر في السابق. تُعرف المشاركة في طبقة الإجماع في إيثريوم الآن بالمراهنة، حيث يحجز المشاركون طوعيًّا كمية من عملة ETH، ويودعونها "للمراهنة"، للتمتع بإمكانية المشاركة في الشبكة. سيحصل المستخدمون الذين يتبعون القواعد على المكافآت، في حين سيتعرض المستخدمون الذين يحاولون الغش لعقوبات. - -منذ إطلاق عقد إيداع المراهنة في نوفمبر 2020، قام بعض رواد إيثريوم الشجعان بحجز أموالهم لتفعيل "برامج المدققين"، والحسابات الخاصة تمتلك الحق في المساهمة بالتحقق من الكتل واقتراحها، وفقًا لقواعد الشبكة. - -قبل تحديث Shanghai/Capella، لم تتمكن من استخدام عملة ETH التي تمت مراهنتها أو الوصول إليها. أما الآن، فيمكنك اختيار استلام مكافآتك بشكلٍ تلقائي لحسابٍ من اختيارك، وبإمكانك أيضًا سحب عملة ETH التي تمت مراهنتها متى شئت. - -### كيف يمكنني التحضير؟ {#how-do-i-prepare} - - - -### إشعارات مهمة {#important-notices} - -يلزم توفير عنوان للسحب لأي حساب مدقق قبل أن يصبح مؤهلاً لسحب عملة ETH من رصيده. - - - يمكن تخصيص عنوان سحب واحد فقط لكل حساب مدقق ولمرة واحدة فقط. بمجرد اختيار العنوان وإرساله إلى طبقة الإجماع، لا يمكن التراجع عن هذا الإجراء أو التغيير. تحقق جيدًا من ملكية ودقة العنوان الذي تم تقديمه قبل الإرسال. - - -لا يوجد أي تهديد على رصيدكم في الوقت الحالي في حال عدم تقديم عنوان سحب، بافتراض أن عبارة الأصل الذاكرة الخاصة بك لا تزال محفوظة بمكانٍ آمن بدون اتصال بالإنترنت، ولم يتم اختراقها بأي طريقة. سيؤدي عدم توفير عنوان سحب ببساطة إلى تراكم عملة ETH في حساب المدقق الخاص بك حتى يتم تقديم عنوان للسحب. - -## الخروج من نظام المراهنة بالكامل {#exiting-staking-entirely} - -يلزم توفير عنوان للسحب _قبل_ أن يصبح من الممكن تحويل أي رصيد من حساب المدقق. - -على المستخدمين الذين يريدون الخروج بالكامل من نظام المراهنة بالكامل وسحب كامل رصيدهم أن يوقعوا وينشروا رسالة "الانسحاب الطوعي" باستخدام مفاتيح المدقق التي ستبدأ عملية الخروج من نظام المراهنة. يتم إجراء ذلك باستخدام عميل المدقق الخاص بكم وإرساله عبر عقدة إجماع الآراء، ولا تتطلب العملية أي رسوم غاز. - -تستغرق عملية خروج مدقق من المراهنة فترات مختلفة من الزمن، حسب عدد المدققين الآخرين الذين يخرجون من المراهنة في نفس الوقت. بمجرد إتمام عملية الخروج، لن يعود هذا الحساب مسؤولًا عن أداء واجبات مدققي الشبكة، ويصير غير مؤهل للحصول على المكافآت، ولا يمتلك عملة ETH "قيد المراهنة". عند هذه المرحلة، ستتم الإشارة إلى الحساب على أنه "قابل للسحب" بالكامل. - -بمجرد أن تتم الإشارة إلى الحساب على أنه "قابل للسحب"، وبعد أن يتم تقديم بيانات اعتماد السحب، لا يتبقى أي شيء بإمكان المستخدم فعله سوى الانتظار. يتم فحص الحسابات بشكل تلقائي ومستمر من قبل مقدمي مقترحات الكتل للأموال المؤهلة التي تم الخروج منها، وسيتم تحويل رصيد حسابك بالكامل (المعروف أيضًا باسم "السحب الكامل") خلال عملية الفحص التالية. - -## متى يتم تمكين عمليات سحب المراهنة؟ {#when} - -أصبحت عمليات سحب المراهنة مفعلة! تم تفعيل وظيفة السحب كجزء من تحديث Shanghai/Capella التي حدثت في 12 أبريل 2023. - -ساعد تحديث Shanghai/Capella على تفعيل عملة ETH التي تمت مراهنتها سابقًا ليتم استردادها إلى حسابات إيثريوم عادية. أدى هذا إلى إغلاق حلقة السيولة، وجعلت إيثريوم تقترب خطوة واحدة من رحلتها نحو بناء نظام بيئي لا مركزي مستدام وقابل للتطوير وآمن. - -- [مزيد من المعلومات عن تاريخ إيثريوم](/history/) -- [مزيد من المعلومات عن خريطة طريق إيثريوم](/roadmap/) - -## ما هي آلية عمل مدفوعات السحب؟ {#how-do-withdrawals-work} - -يتم تحديد كون المدقق المحدد مؤهلاً للسحب أو لا من خلال حالة حساب المدقق نفسه. لا توجد إدخالات مستخدم مطلوبة في أي وقت ليحدد هل يجب أن يبدأ الحساب عملية سحب أم لا - تتم العملية كلها تلقائيًّا من خلال طبقة الإجماع في حلقة مستمرة. - -### أتريد المزيد من المعلومات المرئية؟ {#visual-learner} - -اطلع على هذا الشرح لعمليات سحب مراهنة الإيثيريوم من Finematics: - - - -### "فحص" المدقق {#validator-sweeping} - -عندما يتم جدولة مدقق ما لاقتراح الكتلة المقبلة، يلزم إنشاء قائمة انتظار للسحب، تصل إلى 16 عملية سحب مؤهلة. يتم إجراء ذلك من خلال البدء في الأساس بمؤشر المدقق 0، وتحديد أن هناك سحبًا مؤهلاً لهذا الحساب وفقًا لقواعد البروتوكول أو لا، وإضافته إلى قائمة الانتظار إن وجد. سيتابع المدقق الذي تم تعيينه لاقتراح الكتلة التالية من حيث توقفت الكتلة الأخيرة، ويتقدم بالترتيب إلى أجل غير مسمى. - - -فكر في الساعة التناظرية. يشير عقرب الساعة إلى الساعات، يتحرك باتجاهٍ واحد ولا يتخطى أي ساعة، ويعيد دورته مرة أخرى بعد أن يصل إلى الرقم الأخير.

-الآن بدلاً من 1 إلى 12، تخيل أن الساعة تحتوي على 0 إلى N(إجمالي عدد حسابات المدقق التي تم تسجيلها على الإطلاق في طبقة إجماع الآراء، أكثر من 500000 ابتداءً من يناير 2023).

. يشير عقرب الساعة إلى المدقق التالي الذي يجب التحقق من أهليته لعمليات السحب. يبدأ عند 0، ويتقدم على طول الطريق دون تخطي أي حسابات. عندما يتم بلوغ آخر مدقق، تعود الدورة للبدء مرة أخرى. -
- -#### التحقق من أهلية حساب لعمليات السحب {#checking-an-account-for-withdrawals} - -بينما يفحص مقدم العرض المدقق عمليات السحب المحتملة، يتم تقييم كل مدقق يتم فحصه مقابل سلسلة قصيرة من الأسئلة لتحديد وجوب بدء السحب أو عدم وجوبه، وإذا كان الأمر كذلك، فما مقدار عملة ETH التي يجب سحبها. - -1. **هل تم توفير عنوان للسحب؟**، في حالة عدم توفير عنوان سحب، يتم تخطي الحساب دون بدء عملية سحب. -2. **هل خرج المدقق من المراهنة وأصبح قابلًا للسحب؟** إذا خرج المدقق كليًّا، فقد وصلنا إلى المرحلة التي يعتبر فيها حسابهم "قابلاً للسحب"، ثم ستتم معالجة السحب الكامل. سيؤدي ذلك إلى تحويل كامل الرصيد المتبقي إلى عنوان السحب. -3. **هل بلغ الرصيد الساري ذروته عند 32؟**، إذا كان الحساب يتضمن بيانات اعتماد السحب، ولم يتم الخروج منه بالكامل، ولديه مكافآت تزيد على 32 قيد الانتظار، فستتم معالجة السحب الجزئي الذي ينقل فقط المكافآت التي تزيد على 32 إلى عنوان السحب الخاص بالمستخدم. - -هناك إجراءان فقط يتم اتخاذهما من قبل مشغلي برنامج المدقق في أثناء دورة حياة المدقق وهو ما يؤثر في هذا التدفق بشكل مباشر: - -- توفير بيانات اعتماد السحب لإتاحة أي شكل من أشكال السحب -- الخروج من الشبكة، وهو ما سيؤدي إلى تحفيز سحب كامل - -### بدون رسوم للغاز {#gas-free} - -يتجنب هذا النهج في عمليات سحب المراهنة مطالبة المراهنين بتقديم معاملة يدويًّا تطلب سحب مبلغ معين من عملة ETH. هذا يعني أنه **لا توجد رسوم غاز (رسوم معاملات) مطلوبة**، وأن عمليات السحب لا تتنافس على الخروج من حيز كتلة طبقة التنفيذ. - -### ما هو عدد المرات التي سأحصل فيها على مكافآت المراهنة الخاصة بي؟ {#how-soon} - -يمكن معالجة 16 عملية سحب كحد أقصى في كتلة واحدة. وبهذا المعدل، يمكن معالجة 115,200 عملية سحب للمدقق يوميًّا (بافتراض عدم وجود خانات مفقودة). كما هو مذكور أعلاه، سيتم تخطي المدققين الذين لا يمتلكون عمليات سحب مؤهلة، وهو ما يقلل من الوقت اللازم لإنهاء عملية الفحص. - -وبتوسيع هذه العملية الحسابية، يمكننا تقدير الوقت الذي ستستغرقه معالجة عدد معين من عمليات السحب: - - - -| عدد عمليات السحب | الوقت المتخذ لإتمامها: | -| :--------------: | :--------------------: | -| 400,000 | 3.5 أيام | -| 500,000 | 4.3 أيام | -| 600,000 | 5.2 أيام | -| 700,000 | 6.1 أيام | -| 800,000 | 7.0 أيام | - - - -وكما هو موضح، فإن هذا يتباطأ مع وجود المزيد من المدققين على الشبكة. قد تؤدي زيادة الخانات المفقودة إلى إبطاء هذا بشكل متناسب، ولكن هذا سيمثل عمومًا الجانب الأبطأ من النتائج المحتملة. - -## أسئلة مكررة {#faq} - - -لا، إن عملية تقديم بيانات اعتماد السحب هي عملية يتم إجراؤها مرة واحدة، ولا يمكن تغييرها بمجرد إرسالها. - - - -من خلال تعيين عنوان سحب طبقة التنفيذ، تم تغيير بيانات اعتماد السحب الخاصة بهذا المدقق بشكل دائم. وهذا يعني أن بيانات الاعتماد القديمة لن تعمل بعد الآن، وسيتم توجيه بيانات الاعتماد الجديدة إلى حساب طبقة التنفيذ. - -يمكن أن تكون عناوين السحب إما عقدًا ذكيًّا (يتم التحكم فيه بواسطة النص البرمجي الخاص به)، أو حسابًا مملوكًا خارجيًّا (EOA، يتم التحكم فيه بواسطة مفتاح خاص). في الوقت الحالي، لا تمتلك هذه الحسابات طريقة لتوصيل رسالة مرة أخرى إلى طبقة إجماع الآراء التي من شأنها أن تشير إلى تغيير في بيانات اعتماد المدقق، ثم إن إضافة هذه الوظيفة من شأنها أن تضيف تعقيدًا غير ضروري إلى البروتوكول. - -كحل بديل لتغيير عنوان السحب لمدقق معين، يمكن للمستخدمين اختيار تعيين عقد ذكي كعنوان السحب الخاص بهم يمكنه التعامل مع تدوير المفاتيح، مثل الخزنة. يمكن للمستخدمين الذين خصصوا أموالهم لـ EOA الخاص بهم إجراء خروج كامل لسحب جميع أموالهم التي تمت مراهنتها، ثم إعادة المراهنة باستخدام بيانات اعتماد جديدة. - - - - -إذا كنت جزءًا من تجمع الرهان أو تحمل رموز المراهنة المميزة، يجب عليك الرجوع إلى موفر الخدمة الخاص بك للحصول على مزيد من التفاصيل حول كيفية التعامل مع عمليات سحب المراهنة، حيث تعمل كل خدمة بشكل مختلف. - -بشكل عام، يجب أن يتمتع المستخدمون بالحرية في استعادة عملة ETH الأساسية الخاصة بهم التي تمت مراهنتها، أو تغيير موفر خدمة المراهنة الذي يستخدمونه. إذا أصبح عدد مجمع معين كبيرًا جدًّا، فيمكن الخروج من الأموال واستردادها وإعادة رهنها مع موفر خدمة أصغر. أو، إذا جمعت ما يكفي من عملة ETH، فيمكنك المراهنة من المنزل. - - - - -أجل، ما دام المدقق قام بتوفير عنوان السحب. يجب توفير العنوان مرة واحدة لإتاحة أي عمليات سحب في البداية، ثم سيتم تشغيل دفعات المكافآت تلقائيًّا كل بضعة أيام مع كل عملية فحص للمدقق. - - - - -لا، إذا كان برنامج المدقق لا يزال نشطًا على الشبكة، فلن يتم السحب الكامل تلقائيًّا. يتطلب ذلك بدء عملية خروج طوعي يدويًّا. - -بمجرد أن يكمل المدقق عملية الخروج، وبافتراض أن الحساب يتضمن بيانات اعتماد للسحب، سيتم بعد ذلك سحب الرصيد المتبقي أثناء عملية فحص المدقق التالية. - - - - -تم تصميم عمليات السحب بحيث يتم دفعها تلقائيًّا، ونقل أي عملة ETH لا تساهم بشكل فعال في المراهنة. وهذا يشمل الأرصدة الكاملة للحسابات التي أكملت عملية الخروج. - -يتعذَّر طلب سحب كميات مُحدّدة من ETH يدويًّا. - - - - -يُنصح مشغلو برامج المدقق بزيارة صفحة منصة تشغيل عمليات سحب المراهنة حيث ستعثر على مزيد من التفاصيل حول إعداد المدقق لعمليات السحب. الاستعدادات، توقيت الأحداث، والمزيد من التفاصيل حول آلية عمل وظيفة عمليات السحب. - -لتجربة إعدادك على شبكة تجريب أولًا، تفضّل بزيارة منصة تشغيل المراهنة على شبكة جورلي التجريبية للبدء. - - - - -لا. بمجرد خروج برنامج المدقق وسحب الرصيد بالكامل، سيتم تحويل أي أموال إضافية تم إيداعها في برنامج المدقق هذا تلقائيًّا إلى عنوان السحب أثناء عملية فحص المدقق التالية. لإعادة مراهنة عملة ETH، يجب تفعيل مدقق جديد. - - -## قراءة إضافية {#further-reading} - -- [منصة تشغيل عمليات سحب المراهنة](https://launchpad.ethereum.org/withdrawals) -- [EIP-4895: إجراءات السحب المدفوعة من سلسلة المنارة كعمليات](https://eips.ethereum.org/EIPS/eip-4895) -- [رعاة القطط في إيثريوم - شانغاهاي](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) -- [PEEPanEIP #94: سحب عملة ETH التي تمت مراهنتها (تجريبي) مع Potuz & Hsiao-Wei Wang](https://www.youtube.com/watch?v=G8UstwmGtyE) -- [PEEPanEIP#68: EIP-4895: إجراءات السحب المدفوعة من سلسلة المنارة كعمليات مع Alex stokes](https://www.youtube.com/watch?v=CcL9RJBljUs) -- [فهم الرصيد الساري لبرنامج المدقق](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/az/dao/index.md b/src/content/translations/az/dao/index.md deleted file mode 100644 index 1e3b33fd219..00000000000 --- a/src/content/translations/az/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: Mərkəzləşdirilməmiş muxtar təşkilatlar (DAO-lar) -description: Ethereum-da DAO-lara ümumi baxış -lang: az -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: Bir təklif üzrə səsvermədə iştirak edən DAO-nun təqdimatı. -summaryPoint1: Mərkəzləşdirilmiş rəhbərliyi olmayan üzvlərə məxsus icmalar. -summaryPoint2: İnternetdən kənar şəxslərlə əməkdaşlığın təhlükəsiz yolu. -summaryPoint3: Müəyyən bir səbəbə vəsait ayırmaq üçün təhlükəsiz yer. ---- - -## DAO-lar nədir? {#what-are-daos} - -DAO, ortaq bir missiyaya doğru çalışan, kollektiv mülkiyyətdə olan, blokçeynlə idarə olunan bir təşkilatdır. - -DAO-lar bizə vəsaitləri və ya əməliyyatları idarə etmək üçün xeyirxah liderə etibar etmədən dünyanın hər yerindən həmfikir insanlarla işləməmizə imkan verir. Vəsaitləri şıltaqlığa xərcləyə bilən CEO və ya kitabları manipulyasiya edə bilən CFO yoxdur. Bunun əvəzinə koda daxil edilmiş blokçeyn əsaslı qaydalar, təşkilatın necə işlədiyini və vəsaitlərin necə xərcləndiyini müəyyənləşdirir. - -Onların daxili xəzinələri var ki, qrupun razılığı olmadan heç kimin daxil olmaq səlahiyyəti yoxdur. Qərarlar, təşkilatdakı hər kəsin səsini təmin etmək üçün təkliflər və səsvermə ilə idarə olunur və hər şey şəffaf şəkildə zəncirdə baş verir. - -## DAO-lara nə üçün ehtiyacımız var? {#why-dao} - -Maliyyə və pul tələb edən biri ilə bir təşkilata başlamaq, işlədiyiniz insanlara böyük etibar tələb edir. Ancaq yalnız internetdə ünsiyyət qurduğunuz birinə etibar etmək çətindir. DAO-larla, qrupda başqa heç kimə etibar etməyinizə ehtiyac yoxdur, sadəcə DAO kodu ki, 100% şəffafdır və hər kəs tərəfindən yoxlanıla bilər. - -Bu, qlobal əməkdaşlıq və koordinasiya üçün çoxlu yeni imkanlar açır. - -### Müqayisə {#dao-comparison} - -| DAO | Ənənəvi təşkilat | -| ---------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | -| Adətən düz və tam demokratikləşmiş. | Adətən iyerarxik. | -| Hər hansı dəyişikliyin həyata keçirilməsi üçün üzvlər tərəfindən səsvermə tələb olunur. | Strukturdan asılı olaraq tək partiyadan dəyişiklik tələb oluna bilər və ya səsvermə təklif oluna bilər. | -| Səslər hesablandı və nəticə etibarlı vasitəçi olmadan avtomatik həyata keçirildi. | Səsverməyə icazə verilərsə, səslər daxildə hesablanır və səsvermənin nəticəsi əl ilə idarə olunmalıdır. | -| Təklif olunan xidmətlər mərkəzləşdirilməmiş şəkildə avtomatik idarə olunur (məsələn, xeyriyyə fondlarının paylanması). | Manipulyasiyaya meylli əl ilə idarə etmək və ya mərkəzdən idarə olunan avtomatlaşdırma tələb edir. | -| Bütün fəaliyyət şəffaf və tam açıqdır. | Fəaliyyət adətən özəldir və ümumxalqa məhduddur. | - -### DAO nümunələri {#dao-examples} - -Bunun daha mənalı olmasına kömək etmək üçün DAO-dan necə istifadə edə biləcəyinizlə bağlı bir neçə nümunə təqdim edirik: - -- Xeyriyyə təşkilatı – siz dünyada hər kəsdən ianə qəbul edə və maliyyələşdirməyə səbəb olanlara səs verə bilərsiniz. -- Kollektiv mülkiyyət – siz fiziki və ya rəqəmsal aktivləri satın ala bilərsiniz və üzvlər onlardan necə istifadə etmək barədə səs verə bilərlər. -- Müəssisələr və qrantlar – siz investisiya kapitalını birləşdirən və dəstək üçün müəssisələrə səs verən vençur fondu yarada bilərsiniz. Ödənilmiş pul daha sonra DAO üzvləri arasında yenidən paylaşıla bilər. - -## DAO-lar necə işləyir? {#how-daos-work} - -DAO-nun əsası təşkilatın qaydalarını müəyyən edən və qrupun xəzinəsini saxlayan ağıllı müqaviləsidir. Müqavilə Ethereum-da yayımlandıqdan sonra, qaydaları dəyişmək yalnız səsvermə yolu ilə mümkündür. Hər kəs qanunda olan qaydalar və məntiqlə əhatə olunmayan bir şeyi etməyə cəhd edərsə, uğursuz olacaq. Xəzinə də ağıllı müqavilə ilə müəyyən edildiyi üçün, bu o deməkdir ki, heç kim qrupun razılığı olmadan pulu xərcləyə bilməz. Bu o deməkdir ki, DAO-ların mərkəzi orqana ehtiyacı yoxdur. Bunun əvəzinə qrup qərarları kollektiv şəkildə qəbul edir və səslər keçdikdə ödənişlərə avtomatik icazə verilir. - -Bu mümkündür, çünki ağıllı müqavilələr Ethereum-da yayımlandıqdan sonra saxtakarlığa davamlıdır. İnsanların fərqinə varmadan sadəcə qanunu (DAO qaydalarını) redaktə edə bilməzsiniz, çünki hər şey açıqdır. - - - Ağıllı müqavilələr haqqında daha çox - - -## Ethereum və DAO-lar {#ethereum-and-daos} - -Ethereum bir sıra səbəblərə görə DAO-lar üçün mükəmməl təməldir: - -- Ethereum-un öz konsensusu təşkilatların şəbəkəyə etibar etməsi üçün kifayət qədər paylanmış və qurulmuşdur. -- Ağıllı müqavilə qanunu yayımlandıqdan sonra dəyişdirilə bilməz, hətta sahibləri tərəfindən. Bu, DAO-ya proqramlaşdırıldığı qaydalarla işləməyə imkan verir. -- Ağıllı müqavilələr pul göndərə/qəbul edə bilər. Bu olmadan, qrup vəsaitlərini idarə etmək üçün etibarlı vasitəçiyə ehtiyacınız olacaq. -- Ethereum icması rəqabətdən daha çox əməkdaşlıq etdiyini sübut etdi ki, bu da ən yaxşı təcrübələrin və dəstək sistemlərinin sürətlə ortaya çıxmasına imkan verir. - -## DAO-nın idarəetməsi {#dao-governance} - -DAO-nu idarə edərkən səsvermə və təkliflərin necə işlədiyi kimi bir çox mülahizələr var. - -### Nümayəndə heyəti {#governance-delegation} - -Nümayəndə heyəti, təmsilçi demokratiyanın DAO versiyası kimidir. Token sahibləri səsləri özlərini irəli sürən və protokolu idarə etməyi və məlumatlı olmağı öhdəsinə götürən istifadəçilərə verir. - -#### Tanınmış bir nümunə {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) – ENS sahibləri səslərini onları təmsil etmək üçün iştirak edən icma üzvlərinə həvalə edə bilərlər. - -### Avtomatik əməliyyat idarəetməsi {#governance-example} - -Bir çox DAO-da, üzvlərin kvorumu müsbət səs verərsə, əməliyyatlar avtomatik olaraq həyata keçiriləcəkdir. - -#### Tanınmış bir nümunə {#governance-example} - -[Nouns](https://nouns.wtf)– Nouns DAO-da, təsisçilər tərəfindən veto qoyulmadığı müddətcə, səslərin kvorumu təmin edildikdə və əksəriyyət müsbət səs verərsə, əməliyyat avtomatik olaraq həyata keçirilir. - -### Multisig idarəetmə {#governance-example} - -DAO-ların minlərlə səsvermə üzvü ola bilsə də, fondlar etibar edilən və adətən doks olan (cəmiyyətə məlum olan ictimai şəxsiyyətlər) 5-20 fəal icma üzvü tərəfindən paylaşılan cüzdanda yaşaya bilər. Səsvermədən sonra multisig imzalayanlar cəmiyyətin iradəsini yerinə yetirirlər. - -## DAO qanunları {#dao-laws} - -1977-ci ildə Vayominq LLC-ni icad etdi ki, sahibkarları qoruyur və onların məsuliyyətini məhdudlaşdırır. Bu yaxınlarda onlar DAO-lar üçün hüquqi statusu müəyyən edən DAO qanununa öncülük etdilər. Hal-hazırda Vayominq, Vermont və Virgin Adalarında müəyyən formada DAO qanunları var. - -#### Tanınmış bir nümunə {#law-example} - -[CityDAO](https://citydao.io)- CityDAO, Yellowstone Milli Parkının yaxınlığında 40 hektar torpaq almaq üçün Vyoming'in DAO qanunundan istifadə etdi. - -## DAO üzvlüyü {#dao-membership} - -DAO üzvlüyünün müxtəlif modelləri var. Üzvlük səsvermənin necə işlədiyini və DAO-nun digər əsas hissələrini müəyyən edə bilər. - -### Token əsaslı üzvlük {#token-based-membership} - -İstifadə olunan tokendən asılı olaraq adətən tam icazəsizdir. Bu idarəetmə tokenləri əsasən mərkəzləşdirilməmiş birjada icazəsiz alına bilər. Digərləri likvidlik və ya başqa bir “işin sübutu”nu təmin etməklə qazanılmalıdır. İstənilən halda, sadəcə tokeni saxlamaq səsverməyə giriş imkanı verir. - -_Adətən geniş mərkəzləşdirilməmiş protokolları və/və ya tokenlərin özlərini idarə etmək üçün istifadə olunur._ - -#### Tanınmış bir nümunə {#token-example} - -[MakerDAO](https://makerdao.com)MakerDAO-nun MKR tokeni mərkəzləşdirilməmiş birjalarda geniş şəkildə mövcuddur və hər kəs Maker protokolunun gələcəyi haqqında səsvermə haqqı ilə satın ala bilər. - -### Paylaşım əsaslı üzvlük {#share-based-membership} - -Paylaşım əsaslı DAO-lar daha mərkəzləşdirilmiş idarə olunur, lakin hələ də kifayət qədər açıqdır. Hər hansı bir potensial üzv DAO-ya qoşulmaq təklifini təqdim edə bilər ki, adətən tokenlər və ya iş şəklində dəyərli xərac təklif edir. Səhmlər birbaşa səs və mülkiyyət hüququnu təmsil edir. Üzvlər xəzinədəki mütənasib payları ilə istənilən vaxt çıxa bilərlər. - -_Adətən xeyriyyə təşkilatları, işçi kollektivləri və investisiya klubları kimi daha sıx əlaqəli, insan mərkəzli təşkilatlar üçün istifadə olunur. Protokolları və tokenləri də idarə edə bilər._ - -#### Tanınmış bir nümunə {#share-example} - -[MolochDAO](http://molochdao.com/)– MolochDAO Ethereum layihələrini maliyyələşdirməyə yönəlib. Onlar üzvlük üçün təklif tələb edirlər ki, qrup potensial qrant alanlar haqqında əsaslandırılmış mühakimə yürütmək üçün lazımi təcrübəyə və kapitala malik olub-olmadığınızı qiymətləndirə bilsin. Siz açıq bazarda DAO-ya giriş əldə edə bilməzsiniz. - -### Reputasiyaya əsaslanan üzvlük {#reputation-based-membership} - -Reputasiya iştirakın sübutunu təmsil edir və DAO-da səsvermə hüququ verir. Token və ya səhm əsaslı üzvlükdən fərqli olaraq, reputasiyaya əsaslanan DAO-lar mülkiyyət hüququnu töhfə verənlərə ötürmür. Reputasiya alına, ötürülə və ya həvalə edilə bilməz; DAO üzvləri iştirakla reputasiya qazanmalıdırlar. Zəncirlə səsvermə icazəsizdir və gələcək üzvlər DAO-ya qoşulmaq üçün sərbəst şəkildə təkliflər təqdim edə və töhfələri müqabilində mükafat olaraq reputasiya və tokenlər almağı tələb edə bilərlər. - -_Tipik olaraq protokolların və mərkəzləşdirilməmiş tətbiqlərin mərkəzləşdirilməmiş inkişafı və idarə edilməsi üçün istifadə olunur, eyni zamanda xeyriyyə təşkilatları, işçi kollektivləri, investisiya klubları və s. üçün uyğundur._ - -#### Tanınmış bir nümunə {#reputation-example} - -[DXdao](https://DXdao.eth.link)– DXdao qlobal suveren kollektiv binadır və 2019-cu ildən mərkəzləşdirilməmiş protokolları və tətbiqləri idarə edir. O, fondları koordinasiya etmək və idarə etmək üçün reputasiyaya əsaslanan idarəetmə və holoqrafik konsensusdan istifadə edir, yəni heç kim onun gələcəyinə təsir etməyi satın ala bilməz. - -## DAO-ya qoşulun / başlayın {#join-start-a-dao} - -### Join a DAO {#join-a-dao} - -- [Ethereum icmasının DAO-ları](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [DAOHaus-un DAO siyahısı](https://app.daohaus.club/explore) -- [Tally.xyz-nın DAO siyahısı](https://www.tally.xyz) - -### DAO-ya başlayın {#start-a-dao} - -- [DAOHaus ilə DAO çağırın](https://app.daohaus.club/summon) -- [Tally ilə Qubernator DAO-ya başlayın](https://www.tally.xyz/add-a-dao) -- [Araqonla işləyən DAO yaradın](https://aragon.org/product) -- [Bir koloniyaya başlayın](https://colony.io/) -- [DAOstack-in holoqrafik konsensusu ilə DAO yaradın](https://alchemy.daostack.io/daos/create) - -## Further reading {#further-reading} - -### DAO məqalələri {#dao-articles} - -- [DAO nədir?](https://aragon.org/dao) – [Araqon](https://aragon.org/) -- [DAO Təlimatı](https://daohandbook.xyz) -- [DAO-lar evi](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) -- [DAO nədir və nə üçündür?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) -- [DAO ilə işləyən Rəqəmsal İcmaya Necə Başlamaq olar](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) -- [DAO nədir?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) -- [Holografik Konsensus nədir?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) -- [DAO-lar korporasiyalar deyil: muxtar təşkilatlarda mərkəzsizləşdirmənin vacib olduğu yerlərdə Vitalik tərəfindən](https://vitalik.ca/general/2022/09/20/daos.html) -- [DAO, DAC, DA və daha çox: Natamam Terminologiya Bələdçisi](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Ethereum Blog](https://blog.ethereum.org) - -### Videolar {#videos} - -- [Kriptovalyutada DAO nədir?](https://youtu.be/KHm0uUPqmVE) -- [DAO bir şəhər qura bilərmi?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/src/content/translations/az/nft/index.md b/src/content/translations/az/nft/index.md deleted file mode 100644 index 4ad4b5c2e5c..00000000000 --- a/src/content/translations/az/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Dəyişilə bilməyən tokenlər (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əsvir 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ə dəstəklənmişdir. ---- - -## What are NFTs? {#what-are-nfts} - -NFT-lər individual olaraq unikal olan tokenlərdir. Hər bir NFT fərqli xüsusiyyətlərə malikdir (dəyişilə bilməyən) və sübut edilə bilən səviyyədə, azdır. Bu, bir dəstdəki hər bir tokenin eyni olduğu və eyni xassələrə malik olduğu ERC-20 kimi tokenlərdən fərqlidir ("dəyişilə bilən"). Pulqabınızda hansı xüsusi dollar əskinasın olması sizin üçün əhəmiyyəti yoxdur, çünki onların hamısı eynidir və eyni dəyərdədir. Bununla belə, siz hansı NFT-yə sahib olduğunuza əhəmiyyət _verirsiniz_, çünki onların hamısı onları digərlərindən fərqləndirən fərdi xüsusiyyətlərə malikdir (“dəyişilə bilməyən”). - -Hər bir NFT-nin unikallığı incəsənət, kolleksiya əşyaları və ya hətta daşınmaz əmlak kimi əşyaların tokenləşdirilməsinə imkan verir, burada bir xüsusi unikal NFT hansısa xüsusi unikal real dünya və ya rəqəmsal əşyanı təmsil edir. 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. - - - -## 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. və bir mərkəzi təşkilat tərəfindən idarə olunmayan şəkildə. Məsələn, NFT-lər ilə siz bir şirkətin xüsusi musiqi tətbiqinə xas olmayan bir musiqi mp3-ə sahib ola bilərsiniz və ya sata və ya dəyişdirə biləcəyiniz, lakin bir platforma tərəfindən özbaşına olaraq sizdən alına bilməyən sosial media dəstəyinə sahib ola bilərsiniz. - -Bu gün çoxumuzun istifadə etdiyi internetlə müqayisədə NFT internetinin fərqləri bunlardır... - -### Müqayisə {#nft-comparison} - -| NFT interneti | Bugünkü internet | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Aktivlərinizin sahibisiniz! Onları yalnız siz sata və ya dəyişdirə bilərsiniz. | Siz hansısa təşkilatdan aktiv icarəyə götürürsünüz. | -| NFT-lər rəqəmsal olaraq unikaldır, heç bir iki NFT eyni deyil. | Bi müəssisənin surətini çox vaxt orijinaldan ayırmaq olmur. | -| NFT-yə sahiblik, hər kəsin doğrulaması üçün blokçeyndə saxlanılı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-da ağıllı müqavilələrdir. Bu o deməkdir ki, onlar Ethereum-dakı digər ağıllı müqavilələrdə və tətbiqlərdə asanlıqla istifadə edilə bilər! | Rəqəmsal əşyaları olan şirkətlər adətən öz “divarlı bağ” infrastrukturunu tələb edirlər. | -| 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. | -| NFT yaradıcıları öz işləri üzərində mülkiyyət hüquqlarını saxlaya bilərlər və qonorarları birbaşa NFT müqaviləsinə proqramlaşdıra bilərlər. | Musiqi axını xidmətləri kimi platformalar satışdan əldə edilən gəlirin böyük hissəsini özlərinə saxlayır. | - -## NFT-lər necə işləyir? {#how-nfts-work} - -Ethereum-da verilən hər hansı bir token kimi, NFT-lər də ağıllı müqavilə ilə verilir. Ağıllı müqavilə müqavilənin hansı funksiyalara malik olduğunu müəyyən edən bir neçə NFT standartından birinə (ümumiyyətlə ERC-721 və ya ERC-1155) uyğun gəlir. Müqavilə NFT-lər yarada ('zərb edə') və onları müəyyən bir sahibə təyin edə bilər. Mülkiyyət, müqavilədə xüsusi NFT-ləri xüsusi ünvanlara uyğunlaşdırmaqla müəyyən edilir. NFT-nin identifikatoru və adətən onunla əlaqəli metadatası var ki, bu da xüsusi tokeni unikal edir. - -Kimsə NFT yaratdıqda və ya zərb edəndə, həqiqətən də ağıllı müqavilədə ünvanına müəyyən bir NFT təyin edən bir funksiyanı yerinə yetirir. Bu məlumat blokçeynin bir hissəsi olan müqavilənin anbarında saxlanılır. Müqaviləni yaradan, müqaviləyə əlavə məntiq yaza bilər, məsələn, ümumi tədarükün məhdudlaşdırılması və ya token hər dəfə ötürüldükdə yaradıcıya ödəniləcək qonorarın müəyyən edilməsi. - -## NFT-lər nə üçün istifadə olunur? {#nft-use-cases} - -NFT-lər bir çox şeylər üçün istifadə olunur, o cümlədən: - -- bir tədbirdə iştirak etdiyinizi sübut etmək -- bir kursu bitirdiyinizi təsdiq etmək -- oyunlar üçün sahib oluna bilən əşyalar -- rəqəmsal sənət -- real aktivlərinin tokenləşdirilməsi -- onlayn şəxsiyyətinizi sübut etmək -- məzmuna giriş imkanı eldə etmək -- bilet almaq -- mərkəzləşdirilməmiş internet domen adları -- DeFi-də girov - -Bəlkə siz NFT-lərdən istifadə edərək, nəzarəti itirmədən və qazancınızı vasitəçilərə qurban vermədən işlərini paylaşmaq istəyən bir sənətkarsınız. Siz yeni müqavilə yarada və NFT-lərin sayını, onların xassələrini və bəzi xüsusi sənət əsərlərinə aid linki təyin edə bilərsiniz. Sənətçi olaraq, sizə ödənilməli olan qonorarları ağıllı müqavilədə proqramlaşdıra bilərsiniz (məsələn, hər dəfə NFT köçürüldükdə satış qiymətinin 5%-ni müqavilə sahibinə köçürün). Həmçinin müqaviləni yerləşdirən pulqabının sahibi olduğunuz üçün NFT-ləri yaratdığınızı həmişə sübut edə bilərsiniz. Alıcılarınız kolleksiyanızdan orijinal NFT-yə sahib olduqlarını asanlıqla sübut edə bilərlər, çünki onların pulqabının ünvanı ağıllı müqavilənizdəki token ilə əlaqələndirilir. Onlar orijinallığına arxayın olaraq onu Ethereum ekosistemində istifadə edə bilərlər. - -Və ya bir idman tədbirinə bileti düşünün. Bir 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çəsi zərb edilir, məsələn, təyin edilmiş oturacaqlı bilet. Bunları, bilet idarəçilərinə pul ödəmədən və alıcı həmişə müqavilə ünvanını yoxlayaraq biletin həqiqiliyinə əmin olaraq, almaq və satmaq olar. - -Ethereum.org saytında NFT-lər insanların GitHub repozitoriyamıza töhfə verdiyini və ya zənglərə cavab verdiyini nümayiş etdirmək üçün istifadə olunur və bizim hətta öz NFT domen adımız var. Ethereum.org-a töhfə versəniz, POAP NFT-ni tələb edə bilərsiniz. Bəzi kriptovalyuta görüşləri bilet kimi POAP-lardan istifadə etmişdir. [Töhfə haqqında daha çox məlumat](/contributing/#poap). - -![ethereum.org POAP](./poap.png) - -Bu veb-saytın NFT-lər tərəfindən dəstəklənən alternativ domen adı da 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ə tərəfimizdən idarə olunur. [ENS qeydimizi yoxlayın](https://app.ens.domains/name/ethereum.eth) - -[ENS haqqında daha çox məlumat](https://app.ens.domains) - - - -### 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 dizayn edilmişdir 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ə qeyri-qanuni müdaxiləni aşkar edə biləcək və pis aktyor iqtisadi cəhətdən cəzalandırılacaq və çı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 pulqabının uyğun səviyyədə təhlükəsizliyini NFT sahibləri üçün kritik edir. - - - Təhlükəsizlik haqqında daha çox məlumat - - -## Further reading {#further-reading} - -- [NFT-lər haqqında yeni başlayanlar üçün bələdçi](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, yanvar 2020_ -- [EtherscanNFT izləyicisi](https://etherscan.io/nft-top-contracts) -- [ERC-721 token standartı](/developers/docs/standards/tokens/erc-721/) -- [ERC-1155 token standartı](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/bg/roadmap/beacon-chain/index.md b/src/content/translations/bg/roadmap/beacon-chain/index.md deleted file mode 100644 index e4a667fb43b..00000000000 --- a/src/content/translations/bg/roadmap/beacon-chain/index.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: Бийкън чейн -description: Научете какво е Бийкън чейн – надстройката, която въведе доказателство-за-залог в Eтереум. -lang: bg -template: upgrade -image: ../../../../../assets/upgrades/core.png -summaryPoint1: Бийкън чейн въведе доказателство-за-залог в екосистемата на Eтереум. -summaryPoint2: През септември 2022 г. беше извършено сливане с първоначалното доказателство-за-работа на Eтереум. -summaryPoint3: Бийкън чейн въведе логиката на консенсуса и блок протокола тип „разпространение на клюки“, който осигурява Eтереум в момента. ---- - - - Бийкън чейн беше пуснат на 1 декември 2020 г. и превърна доказателство-за-залог в официалния механизъм за консенсус на Eтереум със Сливането на 15 септември 2022 г. - - -## Какво представляваше Бийкън чейн? {#what-is-the-beacon-chain} - -Бийкън чейн беше името на оригиналната блокова верига за доказателство-за-залог, която беше пусната през 2020 г. Беше създадена, за да се провери дали консенсусната логика за доказателство-за-залог е надеждна и устойчива, преди да бъде въведена в основната мрежа на Eтереум. Поради тази причина работеше паралелно с оригиналния Eтереум, базиран на доказателство-за-работа. За изключването на доказателство-за-работа и включването на доказателство-за-залог беше необходимо да се подадат инструкции към Бийкън чейн да приема трансакции от оригиналната верига на Eтереум, да ги групира в блокове и след това да ги организира в блокова верига, използвайки консенсусен механизъм, базиран на доказателство-за-залог. В същото време клиентите на оригиналния Eтереум прекратиха добиването, разпространението на блокове и консенсусната логика и предадоха всичко това на Бийкън чейн. Това събитие беше познато като [Сливането](/roadmap/merge/). След като Сливането беше извършено, вече нямаше две вериги – остана само една базирана на доказателство-за-залог верига Eтереум. - -## За какво служеше Бийкън чейн? {#what-does-the-beacon-chain-do} - -Бийкън чейн беше името, дадено на счетоводната книга с акаунти, с която се ръководеше и координираше мрежата от [залагащи](/staking/) в Eтереум, преди тези залагащи да започнат да валидират реални трансакции в Eтереум. Не обработваше трансакции и взаимодействия с интелигентни договори. - -Тя въведе консенсусния механизъм (или „консенсусен слой“), който замени добиването базирано на доказателство-за-работа в Eтереум и допринесе за множество съществени подобрения. - -Бийкън чейн беше основополагащ компонент за [сигурния, екологичен и мащабируем Eтереум, който имаме сега](/roadmap/vision/). - -## Въздействието на Бийкън чейн {#beacon-chain-features} - -### Какво представляват залаганията {#introducing-staking} - -Бийкън чейн въведе [доказателство-за-залог](/developers/docs/consensus-mechanisms/pos/) в Eтереум. Това поддържа сигурността на Eтереум, а валидаторите печелят повече ETH в процеса. На практика залагането е свързано със залагане на ETH с цел активиране на валидаторския софтуер. Като залагащ вие управлявате софтуер, който създава и валидира нови блокове във веригата. - -Целта на залагането е подобна на тази, която имаше [добиването](/developers/docs/mining/), но се различава по много начини. Добиването изискваше да се правят големи инвестиции предварително под формата на мощен хардуер и консумация на енергия, което доведе до икономии по отношение на мащабируемостта и насърчаваше централизацията. Освен това, при добивът нямаше изисквания за заключване на активи като обезпечение, което ограничава способността на протокола да наказва некоректните участници след атака. - -След прехода към доказателство-за-залог Eтереум стана значително по-сигурен и децентрализиран в сравнение с механизма за доказателство-за-работа. Колкото повече хора участват в мрежата, толкова по-децентрализирана и защитена от атаки става тя. - - - Ако се интересувате от това да станете валидатор и да помогнете за защитата на Eтереум, научете повече за залагането. - - -### Настройки за фрагментиране {#setting-up-for-sharding} - -Откакто Бийкън чейн се сля с оригиналната основна мрежа на Eтереум, обществото на Eтереум започна да се ориентира към мащабируемостта на мрежата. - -При доказателство-за-залог има предимството да има регистър на всички одобрени създатели на блокове във всеки един момент, всеки със заложен ETH. Този регистър създава възможността да се разделя и владее, но също и надеждно да се разпределят специфични отговорности в мрежата. - -Тази отговорност е в контраст с механизма за доказателство-за-работа, при който миньорите нямат никакви задължения към мрежата и можеха да престанат да добиват и да изключат възела си незабавно без никакви последствия. Освен това, нямаше регистър на известните предлагащи блокове нито пък надежден начин за безопасно поделяне на отговорностите в мрежата. - -[Повече за фрагментирането](/roadmap/danksharding/) - -## Връзка между надстройките {#relationship-between-upgrades} - -Всички надстройки на Eтереум са свързани по определен начин. Така че нека обобщим как Бийкън чейн влияе върху другите надстройки. - -### Бийкън чейн и Сливането {#merge-and-beacon-chain} - -Първоначално Бийкън чейн съществуваше отделно от основната мрежа на Eтереум, но през 2022 г. те се сляха. - - - Сливането - - -### Компонентите и Бийкън чейн {#shards-and-beacon-chain} - -Фрагментирането може да навлезе безопасно в екосистемата на Eтереум само при наличието на консенсусен механизъм за доказателство-за-залог. Бийкън чейн въведе залагането, което се „сля“ с основната мрежа, проправяйки път за навлизането на фрагментирането, което помага за по-нататъшната мащабируемост на Eтереум. - - - Вериги от компоненти - - -## Допълнителна информация - -- [Повече информация за бъдещите надстройки на Eтереум](/roadmap/vision) -- [Повече информация за доказателство-за-залог](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/bg/roadmap/merge/index.md b/src/content/translations/bg/roadmap/merge/index.md deleted file mode 100644 index e789c2466c8..00000000000 --- a/src/content/translations/bg/roadmap/merge/index.md +++ /dev/null @@ -1,224 +0,0 @@ ---- -title: Сливането -description: Научете за Сливането – когато основната мрежа на Етереум възприе механизма за доказателство-за-залог. -lang: bg -template: upgrade -image: ../../../../../assets/upgrades/merge.png -summaryPoint1: Основната мрежа на Етереум използва доказателство-за-залог, но това не винаги е било така. -summaryPoint2: Надстройката към доказателство-за-залог от оригиналния механизъм за доказателство-за-работа се нарича Сливането. -summaryPoint3: Терминът „Сливането“ се отнася до сливането на основната мрежа на Етереум със отделна блокова верига, базирана на доказателство-за-залог, наречена Бийкън чейн, които сега съществуват като една мрежа. -summaryPoint4: Сливането намали потреблението на енергия на Етереум с приблизително 99,95%. ---- - - - Сливането се осъществи на 15 септември 2022 г. Така завърши преходът на Етереум към консенсус с доказателство-за-залог, отхвърляйки официално механизма доказателство-за-работа и намалявайки разхода на енергия с приблизително 99,95%. - - -## Какво представляваше Сливането? {#what-is-the-merge} - -Сливането беше обединяването на оригиналния слой на изпълнение на Етереум (основната мрежа, която съществува от [създаването](/history/#frontier)) с новия консенсусен слой, базиран на доказателство-за-залог, Бийкън чейн. Това елиминира нуждата от енергоемко добиване (копаене), като вместо това сигурността на мрежата се осигурява със заложен ETH. Това беше една наистина вълнуваща стъпка от реализирането на визията на Етереум – по-голям мащаб, повече сигурност и устойчивост. - - - -Първоначално [Бийкън чейн](/roadmap/beacon-chain/) беше пусната отделно от [Основната мрежа](/glossary/#mainnet). Основната мрежа на Етереум с всичките ѝ акаунти, баланси, интелигентни договори и състояние на блоковата верига продължаваше да се осигурява от [доказателство-за-работа](/developers/docs/consensus-mechanisms/pow/), дори когато Бийкън чейн работеше паралелно, използвайки [доказателство-за-залог](/developers/docs/consensus-mechanisms/pos/). Сливането беше моментът, когато двете мрежи се обединиха, а механизмът за доказателство-за-работа беше за постоянно заменен с доказателство-за-залог. - -Представете си, че Етереум е космически кораб, който е изпратен в космоса, преди да е напълно готов за междузвездно пътуване. С Бийкън чейн общността създаде нов двигател и по-здрав корпус. След съществени тествания дойде време старият двигател да бъде заменен с новия по време на полет. Така бяха слети вече съществуващият кораб с новия, по-ефикасен двигател, за да бъдат добавени още доста светлинни години и да покори вселената. - -## Сливане с Основната мрежа {#merging-with-mainnet} - -Основната мрежа на Етереум беше осигурявана с доказателство-за-работа от създаването ѝ до Сливането. Това позволи блоковата верига на Етереум, с която всички сме свикнали, да се появи през юли 2015 г. с всичките ѝ познати функции – трансакции, интелигентни договори, сметки и т.н. - -През целия период на съществуване на Етереум разработчиците се подготвяха за евентуален преход от доказателство-за-работа към доказателство-за-залог. На 1 декември 2020 г. беше създадена Бийкън чейн, като отделна паралелна блокова верига. - -Първоначално Бийкън чейн не обработваше трансакции на Основната мрежа. Вместо това, постигаше консенсус за собственото си състояние, споразумявайки се за активни валидатори и балансите по техните сметки. След продължителни изпитания дойде времето Бийкън чейн да започне да постига консенсус с реални данни. След Сливането Бийкън чейн се превърна в консенсусния механизъм за всички данни в мрежата, включително трансакции на слоя на изпълнение и баланси по сметки. - -Сливането представлява официалното преминаване към използването на Бийкън чейн като механизма за изграждане на блокове. Добиването вече не е начинът за изграждане на валидни блокове. Вместо това тази роля е възприета от валидаторите на доказателство-за-залог и сега те отговарят за обработката на валидността на всички трансакции и предлагането на блокове. - -При сливането не бяха загубени никакви данни. При сливането на Основната мрежа с Бийкън чейн цялата хронология на трансакциите в Етереум също беше слята. - - -Този преход към доказателство-за-залог промени начина, по който се издава етер. Научете повече за издаването на етер преди и след сливането. - - -### Потребители и собственици {#users-holders} - -**Сливането не промени нищо за собствениците или потребителите.** - -_Това подлежи на повтаряне_: Като потребител или собственик на ETH или друг дигитален актив в Етереум, както и залагащи, който не управляват възел, **не е необходимо да правите каквото и да е с вашите средства или портфейл в реакция на Сливането.** ETH е просто ETH. Няма такова нещо като „стар ETH“/„нов ETH“ или „ETH1“/„ETH2“ и след Сливането портфейлите функционират по абсолютно същия начин като преди него – хора, които ви казват нещо различно, по всяка вероятност са измамници. - -Въпреки заменянето на доказателство-за-работа цялата хронология на Етереум от създаването насетне остава незасегната и непроменена от прехода към доказателство-за-залог. Всички средства в портфейла ви отпреди Сливането остават достъпни и след Сливането. **От ваша страна не се изисква никакво действие за надграждане.** - -[Повече за сигурността на Етереум](/security/#eth2-token-scam) - -### Оператори на възли и разработчици на DApp {#node-operators-dapp-developers} - - - -Ключовите дейности включват: - -1. Управляване на*двата вида* консенсусен клиент и клиент за изпълнение; след Сливането вече не могат да се използват източници трети страни за добиване на данни за изпълнение. -2. Удостоверяване на клиента на изпълнение и на консенсусния клиент със споделен JWT секрет, за да могат да комуникират по сигурен начин. -3. Задаване на адрес на „получател на такса“, за да получавате спечелените от вас суми от такси за трансакции/MEV (Стойност при добиването). - -Ако не завършите първите две точки в списъка, вашият възел ще се вижда като „офлайн“ докато не бъдат синхронизирани и удостоверени и двата слоя. - -Ако не зададете „получател на такса“ вашият валидатор ще работи нормално, но ще изпуснете възможността да се възползвате от неизразходваната част от таксите и MEV, които иначе бихте печелили от блоковете, които се обработват от вашия валидатор. - - - - -До сливането беше достатъчен клиент за изпълнение (като Geth, Erigon, Besu или Nethermind), за да се получават, валидират правилно и внедряват блокове, разпространявани от мрежата. _След Сливането_ валидността на транзакциите, съдържащи се в полезните данни на изпълнение, сега също зависи и от валидността на „консенсусния блок“, в който се съдържат. - -В резултат на това за един пълен възел в Етереум вече се изискват и клиент за изпълнение, и консенсусен клиент. Двата клиента работят заедно, използвайки нова система API. Системата API изисква удостоверяване с JWT секрет, който се предоставя и на двата клиента, позволявайки сигурна комуникация. - -Ключовите дейности включват: - -- Инсталиране на консенсусен клиент в допълнение към клиента на изпълнение -- Удостоверяване на клиента за изпълнение и на консенсусния клиент с помощта на JWT секрет, за да могат да комуникират помежду си по сигурен начин. - -Ако не завършите горните стъпки, вашият възел ще се вижда като „офлайн“ докато не бъдат синхронизирани и удостоверени и двата слоя. - - - - - -Сливането доведе промяна към консенсус, което включва и промени, свързани с: - -- структурата на блоковете -- времето на слот/блок -- промени в операционния код -- източниците на произволен принцип във веригата -- концепцията за _safe head_ и _finalized blocks_ - -За повече информация вижте тази публикация в блога на Тим Бейко относно [Как се отразява Сливането на слоя на приложение на Етереум](https://blog.ethereum.org/2021/11/29/how-the-merge-impacts-app-layer/). - - -## Сливането и потреблението на енергия {#merge-and-energy} - -Сливането постави край на доказателство-за-работа в Етереум и началото на една ера на по-устойчив и природосъобразен Етереум. Потреблението на енергия на Етереум спадна с приблизително 99,95%, което прави Етереум екологична блокова верига. Научете повече за [Енергийното потребление на Етереум](/energy-consumption/). - -## Сливането и мащабируемостта {#merge-and-scaling} - -Сливането също постави основата за по-нататъшни надстройки на мащабируемостта, които не са възможни при доказателство-за-работа, приближавайки Етереум една стъпка по-близо до постигането на пълните мащаб, сигурност и устойчивост, описани във [Визията на Етереум](/roadmap/vision/). - -## Заблуди относно Сливането {#misconceptions} - - -Има два вида възли на Етереум: възли, които могат да предлагат блокове, и които не го правят. - -Възлите, които предлагат блокове, са само малък брой от всички възли в Етереум. Тази категория включва възли за добиване при доказателство-за-работа (PoW) и валидаторски възли при доказателство-за-залог (PoS). Тази категория изисква ангажиране с икономически ресурси (GPU хеш мощност при доказателство-за-работа или заложени ETH при доказателство-за-залог) в замяна на възможността периодично да предлагате следващия блок и да печелите награди за протоколи. - -Останалите възли в мрежата (т.е. повечето) не изискват ангажирането с икономически ресурси освен компютър от потребителски клас с 1 – 2 TB налично място за съхранение и връзка с интернет. Тези възли не предлагат блокове, но все пак изпълняват критична роля в осигуряването на мрежата, като държат отговорни всички предлагащи блокове, като следят за нови блокове и проверяват тяхната валидност при пристигането им съгласно правилата за консенсус в мрежата. Ако блокът е валиден, възелът продължава да го разпространява в мрежата. Ако блокът е невалиден по някаква причина, софтуерът на възела ще го пренебрегне като невалиден и ще спре разпространението му. - -Управлението на възел, който не произвежда блокове, е възможно за всеки при който и да е от двата консенсусни механизма (доказателство-за-работа или доказателство-за-залог); _силно се препоръчва_ за всички потребители, ако разполагат със средствата за това. Управлението на възел е изключително ценно за Етереум и дава допълнителни предимства на всеки индивид, който управлява, като подобрена сигурност, поверителност и устойчивост на цензура. - -Възможността всеки да управлява свой собствен възел е _абсолютно необходима_ за поддържане на децентрализацията на мрежата на Етереум. - -[Повече информация за управлението на собствен възел](/run-a-node/) - - - - -Таксите за газ са продукт от търсенето на мрежата спрямо капацитета на мрежата. Сливането отхвърли използването на доказателство-за-работа, преминавайки към доказателство-за-залог за консенсус, но параметри, които пряко влияят върху капацитета или пропускателната способност на мрежата, не се промениха особено. - -С [ориентираната около ролъп карта](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698) усилията се насочват към мащабиране на потребителската активност в [слой 2](/layer-2/), докато се позволява на слой 1 Основната мрежа, като сигурен децентрализиран слой за споразумения, оптимизиран за съхранение на ролъп данни, да помогне за това ролъп трансакциите да станат осезаемо по-евтини. Преминаването към доказателство-за-залог е важна предварителна стъпка за реализирането на това. [Повече информация за газ и такси.](/developers/docs/gas/) - - - -„Скоростта“ на трансакциите може да се измерва по няколко начина, включително по времето за включване в блока и времето за финализиране. И двете се променят малко, но не и по начин, който ще е забележим за потребителите. - -В исторически план при доказателство-за-работа целта беше да има нов блок приблизително на всеки 13,3 секунди. При доказателство-за-залог слотовете се появяват на точно 12 секунди, като всеки един дава възможност валидатор да публикува блок. В повечето слотове има блок, но не задължително във всички (т.е. някой валидатор е офлайн). При доказателство-за-залог блоковете се произвеждат приблизително с 10% по-често в сравнение с при доказателство-за-работа. Това е сравнително незначителна промяна и е малко вероятно да бъде забелязана от потребителите. - -С доказателство-за-залог беше въведена концепцията за финализиране на трансакцията, която преди това не съществуваше. При доказателство-за-работа възможността за връщане на блок става значително по-трудна с всеки следващ блок, добит върху трансакция, но никога не изчезва напълно. При доказателство-за-залог блоковете са групирани в епохи (6,4-минутни интервали от време, съдържащи 32 шанса за блокове), за които валидаторите гласуват. Когато една епоха завърши, валидаторите гласуват за това дали да я зачетат за „оправдана“. Ако валидаторите се съгласят да оправдаят епохата, тя се финализира в следващата епоха. Отмяната на финализирани транзакции е икономически нерентабилна, тъй като би изисквала придобиване и изгаряне на над една трета от общо заложения ETH. - - - - -Заложения ETH и наградите от залагане остават заключени без възможност да бъдат теглени. Тегленията са планирани в предстоящата надстройка Shanghai. - - - -Това може да изглежда, че противоречи на бележката по-горе, че тегленията няма да бъдат активирани преди надстройката Shanghai, но валидаторите ПОЛУЧАВАТ незабавен достъп до наградите от такси/MEV, спечелени от предлагане на блокове. - -Протоколът издава ETH като награда за валидаторите за приноса им за консенсуса. Консенсусният слой отчита новоиздадения ETH, като валидаторът има уникален адрес, на който се съхраняват неговите ETH и награди от протокола. Този ETH е заключен до Shanghai. - -ETH на слоя за изпълнение се отчита отделно от консенсусния слой. Когато потребителите изпълняват трансакции в Основната мрежа на Етереум, трябва да се плаща ETH за покриване на такси за газ, включително възнаграждение за валидатора. Този ETH вече е на слоя за изпълнение, НЕ се издава сега от протокола и е достъпен за валидатора незабавно (при условие, че е предоставен правилният адрес на „получател на такса“ в софтуера на клиента). - - - -След като надстройката Shanghai активира тегленията, всички валидатори ще бъдат стимулирани да изтеглят своя баланс над 32 ETH, тъй като тези средства не допринасят към доходността и са иначе заключени. В зависимост от годишния лихвен процент (определен от общия заложен ETH) те може да бъдат стимулирани да излязат от своя валидатор(и), за да възстановят целия си баланс, или потенциално да заложат още повече, като използват своите награди, за да спечелят повече доходи. - -Важна уговорка тук е, че пълното излизане на валидатори е ограничено от протокола, така че само шест валидатора могат да излязат за една епоха (всеки 6,4 минути, т.е. 1350 на ден или приблизително само 43 200 ETH на ден от заложени над 10 милиона ETH). Този лимит се коригира в зависимост от общия заложен ETH и предотвратява масово извеждане на средства. Освен това, той не позволява на потенциален атакуващ да използва своя залог, за да извърши подлежащо на санкциониране нарушение и да изтегли целия си заложен баланс в рамките на една епоха, преди протоколът да е успял да наложи санкцията. - -ГЛП умишлено е динамичен и позволява залагащите на пазара да балансират колко са склонни да печелят за това, че подпомагат осигуряването на мрежата. Когато тегленията бъдат активирани, ако процентът е твърде нисък, валидаторите ще напуснат на етапи, ограничени от протокола. Постепенно това ще повиши ГЛП за всички останали, привличайки нови или завръщащи се залагащи. - - -## Какво се случи с „Eth2“? {#eth2} - -Терминът „Eth2“ беше отхвърлен. След сливането на „Eth1“ и „Eth2“ в една единствена верига вече няма нужда да се прави разграничение между две мрежи на Етереум. Вече има само Етереум. - -За да се намали объркването, общността актуализира следните термини: - -- Eth1 вече е „слоят на изпълнение“, отговорен за трансакциите и изпълнението. -- Eth2 вече е „консенсусният слой“, отговорен за механизма за консенсус с доказателство-за-залог. - -Тези актуализации на терминологията променят само правилата за наименуване. Това не променя целите или пътната карта на Eтереум. - -[Научете повече за преименуването на Eth2](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) - -## Връзка между надстройките {#relationship-between-upgrades} - -Всички надстройки на Етереум са свързани по определен начин. Така че нека обобщим как Сливането се отнася към другите надстройки. - -### Сливането и Бийкън чейн {#merge-and-beacon-chain} - -Сливането представлява официалното приемане на Бийкън чейн като новия консенсусен слой от оригиналния слой за изпълнение на Основната мрежа. От сливането насам на валидаторите е възложено да осигуряват Основната мрежа на Етереум, а добиването по механизма [доказателство-за-работа](/developers/docs/consensus-mechanisms/pow/) вече не е валиден метод за производство на блокове. - -Вместо това блоковете се предлагат от валидиращите възли, които са заложили ETH в замяна на правото да участват в консенсуса. Тези надстройки поставят основите за бъдещи надстройки на мащабируемостта, включително фрагментиране. - - - Бийкън чейн - - -### Сливането и надстройката Shanghai {#merge-and-shanghai} - -С цел опростяване и максимален фокус върху прехода към доказателство-за-залог надстройката „Сливането“ не включваше някой чакани функции, като възможността да се тегли заложен ETH. Надстройката Shanghai, която ще даде на залагащите възможността да изтеглят средствата си, е планирана да последва Сливането. - -Бъдете информирани навреме с [Проблеми с планирането на надстройката Shanghai в GitHub](https://github.com/ethereum/pm/issues/450) или [Блогът за проучване и развитие на Фондация Етереум](https://blog.ethereum.org/category/research-and-development/). Ако проявявате любопитство към темата, научете повече за това [Какво се случва след сливането](https://youtu.be/7ggwLccuN5s?t=101), представено от Виталик на голямото събитие ETHGlobal през април 2021 г. - -### Сливането и фрагментирането {#merge-and-data-sharding} - -Първоначално планът е бил да се работи върху фрагментирането преди сливането с цел решаване на въпроса с мащабируемостта. Но с бума на [решенията за мащабиране на ниво 2](/layer-2/) приоритетът се прехвърля върху заместването на доказателство-за-работа с доказателство-за-залог чрез сливането. - -Плановете за фрагментиране се развиват бързо, но имайки предвид появата и успехът на технологиите на слой 2 за увеличаване на мащаба на изпълнение на трансакции, плановете за фрагментиране се изместиха към намирането на оптималния начин на разпределяне на товара от съхранението на компресирани колдейта от ролъп договори, позволявайки значителен растеж на капацитета на мрежата. Това не би било възможно без първо да се извърши преход към доказателство-за-залог. - - - Фрагментиране - - -## Допълнителна информация {#further-reading} - - - - diff --git a/src/content/translations/bn/dao/index.md b/src/content/translations/bn/dao/index.md deleted file mode 100644 index ced72f62ef4..00000000000 --- a/src/content/translations/bn/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: বিকেন্দ্রীভূত স্বায়ত্তশাসিত সংস্থা সমূহ (DAO) -description: ইথেরিয়াম উপর DAO একটি সংক্ষিপ্ত বিবরণী -lang: bn -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: একটি DAO-এর একটি রিপ্রেজেন্টেশন একটি প্রস্তাবে ভোট দিচ্ছে। -summaryPoint1: কেন্দ্রীভূত নেতৃত্ব ছাড়া সদস্য-মালিকানাধীন কমিউনিটি। -summaryPoint2: ইন্টারনেট অপরিচিতদের সাথে সহযোগিতা করার একটি নিরাপদ উপায়। -summaryPoint3: একটি নির্দিষ্ট কারণে ফান্ড সমর্পণ করার একটি নিরাপদ জায়গা। ---- - -## DAO কী? {#what-are-daos} - -একটি DAO হল একটি যৌথ মালিকানাধীন, ব্লকচেইন-শাসিত সংস্থা একটি শেয়ার করা মিশনের দিকে কাজ করে। - -DAO আমাদের ফান্ড বা ক্রিয়াকলাপ পরিচালনা করার জন্য একজন পরোপকারী নেতাকে বিশ্বাস না করেই বিশ্বজুড়ে সমমনা লোকদের সাথে কাজ করার অনুমতি দেয়। এমন কোন CEO নেই যিনি খেয়ালখুশি মতো ফান্ড ব্যয় করতে পারেন বা CFO নেই যিনি বইগুলি ম্যানিপুলেট করতে পারেন। পরিবর্তে, কোডে বেক করা ব্লকচেইন-ভিত্তিক নিয়মগুলি সংজ্ঞায়িত করে যে সংস্থা কীভাবে কাজ করে এবং কীভাবে ফান্ড ব্যয় করা হয়। - -তাদের অন্তর্নির্মিত কোষাগার রয়েছে যা গ্রূপের অনুমোদন ছাড়া অ্যাক্সেস করার ক্ষমতা কারও নেই। প্রতিষ্ঠানের প্রত্যেকের একটি মত আছে তা নিশ্চিত করার জন্য প্রস্তাব এবং ভোট দিয়ে সিদ্ধান্তগুলি নিয়ন্ত্রিত হয় এবং সবকিছু চেইনে স্বচ্ছভাবে ঘটে। - -## কেন আমাদের DAO প্রয়োজন? {#why-dao} - -তহবিল এবং অর্থ জড়িত এমন কারো সাথে একটি সংস্থা শুরু করার জন্য আপনি যাদের সাথে কাজ করছেন তাদের প্রতি অনেক বিশ্বাসের প্রয়োজন। কিন্তু এমন কাউকে বিশ্বাস করা কঠিন যার সাথে আপনি ইন্টারনেটে যোগাযোগ করেছেন। DAO-এর মাধ্যমে আপনাকে গ্রুপের অন্য কাউকে বিশ্বাস করতে হবে না, শুধুমাত্র DAO-এর কোড, যা 100% স্বচ্ছ এবং যে কারো দ্বারা যাচাইযোগ্য। - -এটি বিশ্বব্যাপী সহযোগিতা এবং সমন্বয়ের জন্য অনেক নতুন সুযোগ উন্মুক্ত করে। - -### একটি তুলনা {#dao-comparison} - -| DAO | একটি গতানুগতিক সংগঠন | -| ----------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | -| সাধারণত সমতল, এবং সম্পূর্ণরূপে গণতান্ত্রিক। | সাধারণত অনুক্রমিক। | -| কোনো পরিবর্তন বাস্তবায়নের জন্য সদস্যদের ভোট প্রয়োজন। | কাঠামোর উপর নির্ভর করে, একমাত্র দল থেকে পরিবর্তনের দাবি করা যেতে পারে, বা ভোট দেওয়ার প্রস্তাব দেওয়া যেতে পারে। | -| ভোট গণনা করা হয়, এবং ফলাফল বিশ্বস্ত মধ্যস্থতাকারী ছাড়াই স্বয়ংক্রিয়ভাবে প্রয়োগ করা হয়। | যদি ভোট দেওয়ার অনুমতি দেওয়া হয়, ভোটগুলি অভ্যন্তরীণভাবে গণনা করা হয় এবং ভোটের ফলাফল ম্যানুয়ালি পরিচালনা করতে হবে। | -| প্রদত্ত পরিষেবাগুলি একটি বিকেন্দ্রীভূত পদ্ধতিতে স্বয়ংক্রিয়ভাবে পরিচালনা করা হয় (উদাহরণস্বরূপ জনহিতকর ফান্ডের বিতরণ)। | মানুষের পরিচালনা প্রয়োজন বা কেন্দ্রীয়ভাবে নিয়ন্ত্রিত অটোমেশন, উভয়ই ম্যানিপুলেশন প্রবণ। | -| সমস্ত কার্যকলাপ স্বচ্ছ এবং সম্পূর্ণ জনসাধারণের। | কার্যকলাপ সাধারণত ব্যক্তিগত এবং জনসাধারণের মধ্যে সীমাবদ্ধ। | - -### DAO উদাহরণসমূহ {#dao-examples} - -এটিকে আরও বোধগম্য করতে সাহায্য করার জন্য, আপনি কীভাবে একটি DAO ব্যবহার করতে পারেন তার কয়েকটি উদাহরণ এখানে দেওয়া হল: - -- একটি দাতব্য সংস্থা – আপনি বিশ্বের যেকোনও ব্যক্তির কাছ থেকে অনুদান গ্রহণ করতে পারেন এবং ফান্ড দেওয়ার জন্য ভোট দিতে পারেন। -- সম্মিলিত মালিকানা – আপনি ফিজিক্যাল ​​বা ডিজিটাল সম্পদ ক্রয় করতে পারেন এবং সদস্যরা সেগুলি কীভাবে ব্যবহার করবে সে সম্পর্কে ভোট দিতে পারেন। -- উদ্যোগ এবং অনুদান – আপনি একটি ভেঞ্চার ফান্ড তৈরি করতে পারেন যা বিনিয়োগের মূলধন সংগ্রহ করে এবং উদ্যোগে সমর্থনের জন্য ভোট দেয়। পরিশোধিত অর্থ পরে DAO-সদস্যদের মধ্যে পুনরায় বিতরণ করা হয়। - -## DAO কিভাবে কাজ করে? {#how-daos-work} - -একটি DAO-এর মেরুদণ্ড হল এর স্মার্ট কন্ট্র্যাক্ট, যা সংস্থার নিয়মগুলিকে সংজ্ঞায়িত করে এবং গ্রুপের কোষাগারকে ধরে রাখে। কনট্র্যাক্টটি ইথেরিয়াম-এ লাইভ হয়ে গেলে, ভোট ছাড়া কেউ নিয়ম পরিবর্তন করতে পারবে না। যদি কেউ এমন কিছু করার চেষ্টা করে যা কোডের নিয়ম এবং যুক্তি অনুযায়ী পরিচালিত হবে না, তবে এটি ব্যর্থ হবে। আর যেহেতু কোষাগারটি স্মার্ট কন্ট্র্যাক্ট দ্বারা সংজ্ঞায়িত করা হয়েছে তার মানে গ্রুপের অনুমোদন ছাড়া কেউ টাকা ব্যয় করতে পারে না। এর মানে হল যে DAO গুলোর কেন্দ্রীয় কর্তৃপক্ষের প্রয়োজন নেই। পরিবর্তে, গ্রুপটি সম্মিলিতভাবে সিদ্ধান্ত নেয় এবং ভোট পাস হলে পেমেন্ট স্বয়ংক্রিয়ভাবে অনুমোদিত হয়। - -এটি সম্ভব কারণ স্মার্ট কন্ট্র্যাক্ট ইথেরিয়ামে লাইভ হয়ে গেলে তা টেম্পার-প্রুফ। লোকেদের নোটিস না দিয়ে আপনি আপনি কোডটি (DAO নিয়মসমূহ) সম্পাদনা করতে পারবেন না, কারণ সবকিছুই সর্বজনীন। - - - স্মার্ট কন্ট্র্যাক্ট সম্পর্কে আরো - - -## ইথেরিয়াম এবং DAO {#ethereum-and-daos} - -ইথেরিয়াম বিভিন্ন কারণে DAO-এর জন্য নিখুঁত ভিত্তি: - -- ইথেরিয়ামের নিজস্ব কনসেনসাস বিতরণ করা হয় এবং সংস্থাগুলি নেটওয়ার্কের উপর আস্থা রাখার জন্য যথেষ্ট প্রতিষ্ঠিত হয়। -- স্মার্ট কন্ট্র্যাক্ট কোড একবার লাইভ হলে তা পরিবর্তন করতে পারবে না, এমনকি এর মালিকরাও। এটি DAO কে এটির সাথে প্রোগ্রাম করা নিয়ম অনুসারে চালানোর অনুমতি দেয়। -- স্মার্ট কন্ট্র্যাক্ট ফান্ড পাঠাতে/নিতে পারে। এটি ছাড়া গ্রুপ ফান্ড পরিচালনার জন্য আপনার একজন বিশ্বস্ত মধ্যস্থতাকারীর প্রয়োজন হবে। -- ইথেরিয়াম কমিউনিটি প্রতিযোগিতামূলক হওয়ার তুলনায় আরো সহযোগী হয়ে প্রমাণিত হয়েছে, সর্বোত্তম অনুশীলন এবং সাপোর্ট সিস্টেম দ্রুত আবির্ভূত হতে অনুমতি দেয়। - -## DAO পরিচালনা {#dao-governance} - -একটি DAO পরিচালনা করার সময় অনেকগুলি বিবেচ্য বিষয় রয়েছে, যেমন ভোট এবং প্রস্তাবগুলি কীভাবে কাজ করে। - -### ডেলিগেশন {#governance-delegation} - -ডেলিগেশন হলো প্রতিনিধিত্বমূলক গণতন্ত্রের DAO সংস্করণের মতো। টোকেন হোল্ডাররা সেই ব্যবহারকারীদের ভোট অর্পণ করে যারা নিজেদের মনোনীত করে এবং প্রোটোকল পরিচালনা এবং অবগত থাকার প্রতিশ্রুতি দেয়। - -#### একটি বিখ্যাত উদাহরণ {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) – ENS হোল্ডাররা তাদের প্রতিনিধিত্ব করার জন্য নিযুক্ত সম্প্রদায়ের সদস্যদের কাছে তাদের ভোট অর্পণ করতে পারেন। - -### স্বয়ংক্রিয় লেনদেন পরিচালনা {#governance-example} - -অনেক DAO এ, লেনদেন স্বয়ংক্রিয়ভাবে সম্পাদিত হবে যদি সদস্যদের একটি কোরাম ইতিবাচক ভোট দেয়। - -#### একটি বিখ্যাত উদাহরণ {#governance-example} - -[বিশেষ্য](https://nouns.wtf) –বিশেষ্য DAO-তে, একটি লেনদেন স্বয়ংক্রিয়ভাবে কার্যকর হয় যদি ভোটের কোরাম পূরণ হয় এবং সংখ্যাগরিষ্ঠ ভোট ইতিবাচক হয়, যতক্ষণ না এটি প্রতিষ্ঠাতাদের দ্বারা ভেটো না করা হয়। - -### মাল্টিসিগ পরিচালনা {#governance-example} - -যদিও DAO-এর হাজার হাজার ভোটিং সদস্য থাকতে পারে, তহবিল 5-20 জন সক্রিয় কমিউনিটির সদস্যদের দ্বারা ভাগ করা একটি ওয়ালেটে থাকতে পারে যারা বিশ্বস্ত এবং সাধারণত ডক্সড (জনসাধারণের পরিচয় কমিউনিটির কাছে পরিচিত)। একটি ভোটের পরে, মাল্টিসিগ স্বাক্ষরকারীরা কমিউনিটির ইচ্ছা বাস্তবায়ন করে। - -## DAO আইনসমূহ {#dao-laws} - -1977 সালে, ওয়াইমিং LLC উদ্ভাবন করে, যা উদ্যোক্তাদের রক্ষা করে এবং তাদের দায়বদ্ধতা সীমিত করে। অতি সম্প্রতি, তারা DAO আইনের অগ্রগতি করেছে যা DAO-এর জন্য আইনি মর্যাদা প্রতিষ্ঠা করে। বর্তমানে ওয়াইমিং, ভার্মন্ট এবং ভার্জিন দ্বীপপুঞ্জে কিছু আকারে DAO আইন রয়েছে। - -#### একটি বিখ্যাত উদাহরণ {#law-example} - -[CityDAO](https://citydao.io) – CityDAO ইয়েলোস্টোন ন্যাশনাল পার্কের কাছে 40 একর জমি কেনার জন্য ওয়াইমিং এর DAO আইন ব্যবহার করেছে। - -## DAO সদস্যপদ {#dao-membership} - -DAO সদস্যপদ জন্য বিভিন্ন মডেল আছে। ভোটিং এবং DAO এর অন্যান্য মূল অংশ কিভাবে কাজ করে সদস্যপদ তা নির্ধারণ করতে পারে। - -### টোকেন-ভিত্তিক সদস্যপদ {#token-based-membership} - -সাধারণত সম্পূর্ণ অনুমতিহীন, ব্যবহৃত টোকেনের উপর নির্ভর করে। বেশিরভাগই এই গভর্নেন্স টোকেনগুলি বিকেন্দ্রীভূত বিনিময়ে অনুমতি ছাড়াই লেনদেন করা যেতে পারে। অন্যদের অবশ্যই তারল্য প্রদান বা অন্য কোনো 'প্রুফ-অফ-ওয়ার্ক' এর মাধ্যমে উপার্জন করতে হবে। যেভাবেই হোক, শুধু টোকেন ধরে রাখা ভোটে অ্যাক্সেস দেয়। - -_সাধারণত বিস্তৃত বিকেন্দ্রীভূত প্রোটোকল এবং/অথবা টোকেনগুলিকে পরিচালনা করতে ব্যবহৃত হয়।_ - -#### একটি বিখ্যাত উদাহরণ {#token-example} - -[MakerDAO](https://makerdao.com) – MakerDAO-এর টোকেন MKR বিকেন্দ্রীভূত এক্সচেঞ্জে ব্যাপকভাবে পাওয়া যায় এবং যে কেউ মেকার প্রোটোকলের ভবিষ্যত ভোট দেওয়ার ক্ষমতা কিনতে পারে। - -### শেয়ার-ভিত্তিক সদস্যপদ {#share-based-membership} - -শেয়ার-ভিত্তিক DAO গুলি আরো অনুমোদিত, তবে এখনও বেশ উন্মুক্ত। যেকোন সম্ভাব্য সদস্যরা DAO-তে যোগদানের জন্য একটি প্রস্তাব জমা দিতে পারে, সাধারণত টোকেন বা কাজের আকারে কিছু মূল্যের শ্রদ্ধা নিবেদন করে। শেয়ার সরাসরি ভোটদানের ক্ষমতা এবং মালিকানার প্রতিনিধিত্ব করে। সদস্যরা তাদের কোষাগারের আনুপাতিক অংশ নিয়ে যেকোনো সময় প্রস্থান করতে পারেন। - -_সাধারণত আরও ঘনিষ্ঠ, মানব-কেন্দ্রিক সংস্থা যেমন দাতব্য সংস্থা, কর্মী সমষ্টি এবং বিনিয়োগ ক্লাবগুলির জন্য ব্যবহৃত হয়। পাশাপাশি প্রোটোকল এবং টোকেনগুলিও পরিচালনা করতে পারে।_ - -#### একটি বিখ্যাত উদাহরণ {#share-example} - -[MolochDAO](http://molochdao.com/) – MolochDAO ইথেরিয়াম প্রকল্পে অর্থায়নের উপর ফোকাসড। তাদের সদস্যতার জন্য একটি প্রস্তাবের প্রয়োজন যাতে গ্রুপটি মূল্যায়ন করতে পারে যে সম্ভাব্য অনুদানপ্রাপ্তদের সম্পর্কে অবগত সিদ্ধান্ত নেওয়ার জন্য আপনার প্রয়োজনীয় দক্ষতা এবং মূলধন আছে কি না। আপনি কেবল খোলা বাজারে DAO-তে অ্যাক্সেস কিনতে পারবেন না। - -### খ্যাতি-ভিত্তিক সদস্যপদ {#reputation-based-membership} - -খ্যাতি অংশগ্রহণের প্রমাণ উপস্থাপন করে এবং DAO-তে ভোট দেওয়ার ক্ষমতা প্রদান করে। টোকেন বা শেয়ার-ভিত্তিক সদস্যতার বিপরীতে, খ্যাতি-ভিত্তিক DAO অবদানকারীদের মালিকানা হস্তান্তর করে না। খ্যাতি কেনা, স্থানান্তর বা অর্পণ করা যাবে না; DAO সদস্যদের অবশ্যই অংশগ্রহণের মাধ্যমে সুনাম অর্জন করতে হবে। অন-চেইন ভোটিং অনুমোদনহীন এবং সম্ভাব্য সদস্যরা অবাধে DAO-তে যোগদানের প্রস্তাব জমা দিতে পারে এবং তাদের অবদানের বিনিময়ে খ্যাতি ও টোকেন পাওয়ার জন্য অনুরোধ করতে পারে। - -_সাধারণত প্রোটোকল এবং dapps গুলোর বিকেন্দ্রীভূত উন্নয়ন এবং পরিচালনার জন্য ব্যবহৃত হয়, তবে বিভিন্ন সংস্থা যেমন দাতব্য সংস্থা, কর্মী গোষ্ঠী, বিনিয়োগ ক্লাব ইত্যাদির জন্য উপযুক্ত।_ - -#### একটি বিখ্যাত উদাহরণ {#reputation-example} - -[DXdao](https://DXdao.eth.link) – DXdao হলো একটি বিশ্বব্যাপী সার্বভৌম যৌথ নির্মাণ এবং 2019 সাল থেকে বিকেন্দ্রীভূত প্রোটোকল এবং অ্যাপ্লিকেশনগুলো পরিচালনা করছে। এটি ফান্ড সমন্বয় ও পরিচালনার জন্য খ্যাতি-ভিত্তিক শাসন এবং হলোগ্রাফিক ঐক্যমতকে লাভ করে, যার অর্থ কেউ এর ভবিষ্যতকে প্রভাবিত করার উপায় কিনতে পারে না। - -## একটি DAO যোগদান/শুরু করুন {#join-start-a-dao} - -### Join a DAO {#join-a-dao} - -- [ইথেরিয়াম কমিউনিটির DAO সমূহ](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [DAOHaus-এর DAO-র তালিকা](https://app.daohaus.club/explore) -- [Tally.xyz এর DAO তালিকা](https://www.tally.xyz) - -### একটি DAO শুরু করুন {#start-a-dao} - -- [DAOHaus এর সাথে একটি DAO তলব করুন](https://app.daohaus.club/summon) -- [Tally দিয়ে একটি গভর্নর DAO শুরু করুন](https://www.tally.xyz/add-a-dao) -- [একটি Aragon-চালিত DAO তৈরি করুন](https://aragon.org/product) -- [একটি উপনিবেশ শুরু করুন](https://colony.io/) -- [DAOstack এর হলোগ্রাফিক কনসেনসাস দ্বারা একটি DAO তৈরি করুন](https://alchemy.daostack.io/daos/create) - -## Further reading {#further-reading} - -### DAO প্রবন্ধগুলো {#dao-articles} - -- [DAO কী?](https://aragon.org/dao) – [Aragon](https://aragon.org/) -- [DAO হ্যান্ডবুক](https://daohandbook.xyz) -- [DAO এর হোম](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) -- [DAO কী এবং এটি কী জন্য?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) -- [কীভাবে একটি DAO-চালিত ডিজিটাল কমিউনিটি শুরু করবেন](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) -- [DAO কী?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) -- [হলোগ্রাফিক কনসেনসাস কী?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) -- [DAO গুলি কর্পোরেশন নয়: যেখানে Vitalik দ্বারা স্বায়ত্তশাসিত সংস্থাগুলিতে বিকেন্দ্রীকরণ গুরুত্বপূর্ণ](https://vitalik.ca/general/2022/09/20/daos.html) -- [DAO, DAC, DA এবং আরও অনেক কিছু: একটি অসম্পূর্ণ পরিভাষা নির্দেশিকা](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [ইথেরিয়াম ব্লগ](https://blog.ethereum.org) - -### Videos {#videos} - -- [ক্রিপ্টোতে DAO কী?](https://youtu.be/KHm0uUPqmVE) -- [একটি DAO কি একটি শহর তৈরি করতে পারে?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/src/content/translations/bn/decentralized-identity/index.md b/src/content/translations/bn/decentralized-identity/index.md deleted file mode 100644 index 5b47fbaf0f6..00000000000 --- a/src/content/translations/bn/decentralized-identity/index.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: বিকেন্দ্রীভূত পরিচয় -description: বিকেন্দ্রীভূত পরিচয় কী এবং কেন এটি গুরুত্বপূর্ণ? -lang: bn -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} - -একটি শনাক্তকারী হল তথ্যের একটি অংশ যা একটি নির্দিষ্ট পরিচয় বা পরিচয়ের নির্দেশক হিসাবে কাজ করে। সাধারণ শনাক্তকারীর মধ্যে রয়েছে: - -- নাম -- সামাজিক নিরাপত্তা নম্বর/ট্যাক্স ID নম্বর -- মোবাইল নম্বর -- জন্ম তারিখ এবং স্থান -- ডিজিটাল শনাক্তকরণ শংসাপত্র, যেমন, ইমেল ঠিকানা, ব্যবহারকারীর নাম, এভাটার্স - -শনাক্তকারীর এই ঐতিহ্যগত উদাহরণগুলি কেন্দ্রীয় সত্তা দ্বারা জারি করা, রাখা এবং নিয়ন্ত্রণ করা হয়। আপনার নাম পরিবর্তন করার জন্য আপনার সরকারের কাছ থেকে বা আপনার হ্যান্ডেল পরিবর্তন করার জন্য একটি সোশ্যাল মিডিয়া প্ল্যাটফর্মের অনুমতি প্রয়োজন। - -## প্রত্যয়ন কী? {#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) তৈরি করে। পাবলিক-কী ক্রিপ্টোগ্রাফি ব্লকচেইন নেটওয়ার্কে ব্যবহারকারীর পরিচয় প্রমাণীকরণ এবং ডিজিটাল সম্পদের মালিকানা প্রমাণ করতে ব্যবহৃত হয়। - -কিছু বিকেন্দ্রীকৃত শনাক্তকারী, যেমন একটি ইথেরিয়াম অ্যাকাউন্ট, পাবলিক এবং ব্যক্তিগত কী আছে। পাবলিক কী অ্যাকাউন্টের নিয়ন্ত্রককে শনাক্ত করে, যখন ব্যক্তিগত কীগুলি এই অ্যাকাউন্টের জন্য বার্তাগুলি সাইন এবং ডিক্রিপ্ট করতে পারে। PKI সমস্ত দাবি যাচাই করার জন্য [ক্রিপ্টোগ্রাফিক স্বাক্ষর](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} - -চেইনে প্রত্যয়ন সংরক্ষণের সাথে একটি উদ্বেগ হল যে সেগুলিতে এমন তথ্য থাকতে পারে যা ব্যক্তিরা গোপন রাখতে চায়। ইথেরিয়াম ব্লকচেইনের সর্বজনীন প্রকৃতি এই ধরনের প্রত্যয়ন সংরক্ষণ করাকে আকর্ষণীয় করে তোলে। - -সমাধান হল প্রত্যয়ন জারি করা, যা ব্যবহারকারীদের অফ-চেইন ডিজিটাল ওয়ালেটে ঘটে, কিন্তু ইস্যুকারীর DID-তে সঞ্চিত অন-চেইনে স্বাক্ষর করা। এই প্রত্যয়নগুলি [JSON ওয়েব টোকেন](https://en.wikipedia.org/wiki/JSON_Web_Token) হিসাবে এনকোড করা হয়েছে এবং এতে ইস্যুকারীর ডিজিটাল স্বাক্ষর রয়েছে—যা অফ-চেইন দাবিগুলির সহজে যাচাই করার অনুমতি দেয়। - -অফ-চেইন প্রত্যয়ন ব্যাখ্যা করার জন্য এখানে একটি অনুমানমূলক দৃশ্যকল্প রয়েছে: - -1. একটি বিশ্ববিদ্যালয় (ইস্যুকারী) একটি প্রত্যয়ন (একটি ডিজিটাল একাডেমিক সনদপত্র) তৈরি করে, তার কীগুলির দ্বারা স্বাক্ষর করে এবং এটি ববকে (পরিচয় মালিক) ইস্যু করে। - -2. বব একটি চাকরির জন্য আবেদন করেন এবং একজন নিয়োগকর্তার কাছে তার শিক্ষাগত যোগ্যতা প্রমাণ করতে চান, তাই তিনি তার মোবাইল ওয়ালেট থেকে প্রত্যয়ন শেয়ার করেন। কোম্পানী (যাচাইকারী) তারপর ইস্যুকারীর DID (অর্থাৎ, ইথেরিয়ামে এর পাবলিক কী) পরীক্ষা করে সত্যায়নের বৈধতা নিশ্চিত করতে পারে। - -### অবিরাম অ্যাক্সেস সহ অফ-চেইন প্রত্যয়ন {#offchain-attestations-with-persistent-access} - -এই ব্যবস্থার অধীনে প্রত্যয়নগুলি JSON ফাইলে রূপান্তরিত হয় এবং অফ-চেইন সংরক্ষণ করা হয় (আদর্শভাবে একটি [বিকেন্দ্রীভূত ক্লাউড স্টোরেজ](/developers/docs/storage/) প্ল্যাটফর্মে, যেমন IPFS বা Swarm)। যাইহোক, JSON ফাইলের একটি [হ্যাশ](/glossary/#hash) অন-চেইন সংরক্ষণ করা হয় এবং একটি অন-চেইন রেজিস্ট্রির মাধ্যমে একটি DID-এর সাথে লিঙ্ক করা হয়। সংশ্লিষ্ট DID হয় প্রত্যয়ন প্রদানকারী বা প্রাপকের হতে পারে। - -এই পদ্ধতিটি ব্লকচেইন-ভিত্তিক অটলতা লাভের জন্য প্রত্যয়নকে সক্ষম করে, যখন দাবির তথ্য এনক্রিপ্ট করা এবং যাচাইযোগ্য রাখা হয়। এটি নির্বাচনী প্রকাশের জন্যও অনুমতি দেয় যেহেতু ব্যক্তিগত কী ধারক তথ্যটি ডিক্রিপ্ট করতে পারে। - -### অন-চেইন প্রত্যয়নসমূহ {#onchain-attestations} - -অন-চেইন প্রত্যয়ন ইথেরিয়াম ব্লকচেইনে [স্মার্ট কন্ট্র্যাক্টে](/developers/docs/smart-contracts/) অনুষ্ঠিত হয়। স্মার্ট কন্ট্র্যাক্ট (একটি রেজিস্ট্রি হিসাবে কাজ করে) একটি অনুরূপ অন-চেইন বিকেন্দ্রীভূত শনাক্তকারীর (একটি পাবলিক কী) একটি প্রত্যয়ন ম্যাপ করবে। - -কীভাবে অন-চেইন প্রত্যয়নগুলি অনুশীলনে কাজ করতে পারে তা দেখানোর জন্য এখানে একটি উদাহরণ দেওয়া হল: - -1. একটি কোম্পানি (XYZ Corp) একটি স্মার্ট কন্ট্র্যাক্ট ব্যবহার করে মালিকানা শেয়ার বিক্রি করার পরিকল্পনা করে কিন্তু শুধুমাত্র সেই ক্রেতাদের চায় যারা ব্যাকগ্রাউন্ড চেক সম্পন্ন করেছে। - -2. XYZ Corp কোম্পানিকে ইথেরিয়াম-এ অন-চেইন প্রত্যয়ন ইস্যু করার জন্য ব্যাকগ্রাউন্ড চেক করতে পারে। এই প্রত্যয়নটি প্রমাণ করে যে একজন ব্যক্তি কোনো ব্যক্তিগত তথ্য প্রকাশ না করেই ব্যাকগ্রাউন্ড চেক পাস করেছেন। - -3. স্মার্ট কন্ট্র্যাক্ট সেলিং শেয়ার স্ক্রিন করা ক্রেতাদের পরিচয়ের জন্য রেজিস্ট্রি চুক্তি পরীক্ষা করতে পারে, যা স্মার্ট কন্ট্রাক্টের পক্ষে কার শেয়ার কেনার অনুমতি আছে বা নাই তা নির্ধারণ করা সম্ভব করে। - -### সোলবাউন্ড টোকেনসমূহ এবং পরিচয় {#soulbound} - -[সোলবাউন্ড টোকেন](https://vitalik.ca/general/2022/01/26/soulbound.html) (অ-হস্তান্তরযোগ্য NFT) একটি নির্দিষ্ট ওয়ালেটের অনন্য তথ্য সংগ্রহ করতে ব্যবহার করা যেতে পারে। এটি কার্যকরভাবে একটি নির্দিষ্ট ইথেরিয়াম অ্যাড্রেসের সাথে আবদ্ধ একটি অনন্য অন-চেইন পরিচয় তৈরি করে যাতে কৃতিত্বের প্রতিনিধিত্বকারী টোকেন অন্তর্ভুক্ত থাকতে পারে (যেমন কিছু নির্দিষ্ট অনলাইন কোর্স শেষ করা বা একটি গেমে থ্রেশহোল্ড স্কোর পাস করা) বা কমিউনিটি অংশগ্রহণ। - -## বিকেন্দ্রীভূত পরিচয়ের সুবিধা {#benefits-of-decentralized-identity} - -1. বিকেন্দ্রীকৃত পরিচয় তথ্য সনাক্তকরণের ব্যক্তিগত নিয়ন্ত্রণ বাড়ায়। বিকেন্দ্রীভূত শনাক্তকারী এবং প্রত্যয়ন কেন্দ্রীভূত কর্তৃপক্ষ এবং তৃতীয় পক্ষের পরিষেবাগুলির উপর নির্ভর না করেই যাচাই করা যেতে পারে। - -2. বিকেন্দ্রীভূত পরিচয় সমাধানগুলি ব্যবহারকারীর পরিচয় যাচাই এবং পরিচালনার জন্য একটি বিশ্বাসহীন, নির্বিঘ্ন এবং গোপনীয়তা-সুরক্ষা পদ্ধতির সুবিধা দেয়। - -3. বিকেন্দ্রীভূত পরিচয় ব্লকচেইন প্রযুক্তি ব্যবহার করে, যা বিভিন্ন পক্ষের মধ্যে আস্থা তৈরি করে এবং প্রত্যয়নের বৈধতা প্রমাণ করার জন্য ক্রিপ্টোগ্রাফিক গ্যারান্টি প্রদান করে। - -4. বিকেন্দ্রীভূত পরিচয় পরিচয়-ডেটা বহনযোগ্য করে তোলে। ব্যবহারকারীরা মোবাইল ওয়ালেটে প্রত্যয়ন এবং শনাক্তকারী সঞ্চয় করে এবং তাদের পছন্দের যেকোনো পক্ষের সাথে শেয়ার করতে পারে। বিকেন্দ্রীভূত শনাক্তকারী এবং প্রত্যয়ন প্রদানকারী সংস্থার ডাটাবেসের মধ্যে লক করা হয় না। - -5. বিকেন্দ্রীভূত পরিচয় উদীয়মান জিরো-নলেজ প্রযুক্তিগুলির সাথে ভালভাবে কাজ করা উচিত যা ব্যক্তিদের প্রমাণ করতে সক্ষম করবে যে তারা নিজের বা কিছু করেছে তা প্রকাশ না করেই। এটি ভোট দেওয়ার মতো অ্যাপ্লিকেশনগুলির জন্য বিশ্বাস এবং গোপনীয়তা একত্রিত করার একটি শক্তিশালী উপায় হয়ে উঠতে পারে। - -6. বিকেন্দ্রীভূত পরিচয় অ্যান্টি-সাইবিল মেকানিজমকে শনাক্ত করতে সক্ষম করে যখন একজন ব্যক্তি একাধিক মানুষ হওয়ার ভান করে কোনো সিস্টেমকে গেম বা স্প্যাম করার জন্য। - -## বিকেন্দ্রীভূত পরিচয় ব্যবহার-ক্ষেত্রসমূহ {#decentralized-identity-use-cases} - -বিকেন্দ্রীভূত পরিচয়ের অনেক সম্ভাব্য ব্যবহার-ক্ষেত্র রয়েছে: - -### 1. ইউনিভার্সাল লগইন {#universal-dapp-logins} - -বিকেন্দ্রীভূত পরিচয় [বিকেন্দ্রীভূত প্রমাণীকরণের](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/) মাধ্যমে পাসওয়ার্ড-ভিত্তিক লগইনগুলি প্রতিস্থাপন করতে সহায়তা করতে পারে। পরিষেবা প্রদানকারীরা ব্যবহারকারীদের প্রত্যয়ন জারি করতে পারে, যা একটি ইথেরিয়াম ওয়ালেটে সংরক্ষণ করা যেতে পারে। একটি উদাহরণ প্রত্যয়ন হবে একটি [NFT](/nft/) যা ধারককে একটি অনলাইন কমিউনিটিতে অ্যাক্সেস দেয়। - -একটি [ইথেরিয়াম দিয়ে সাইন-ইন করুন](https://login.xyz/) ফাংশন তারপর সার্ভারগুলিকে ব্যবহারকারীর ইথেরিয়াম অ্যাকাউন্ট নিশ্চিত করতে এবং তাদের অ্যাকাউন্ট অ্যাড্রেস থেকে প্রয়োজনীয় প্রত্যয়ন আনতে সক্ষম করবে। এর মানে ব্যবহারকারীরা দীর্ঘ পাসওয়ার্ড মুখস্থ না করেই প্ল্যাটফর্ম এবং ওয়েবসাইটগুলি অ্যাক্সেস করতে পারে এবং ব্যবহারকারীদের জন্য অনলাইন অভিজ্ঞতা উন্নত করে। - -### 2. KYC প্রমাণীকরণ {#kyc-authentication} - -অনেক অনলাইন পরিষেবা ব্যবহার করার জন্য ব্যক্তিদের প্রত্যয়ন এবং প্রমাণপত্র প্রদান করতে হয়, যেমন একটি ড্রাইভিং লাইসেন্স বা জাতীয় পাসপোর্ট। কিন্তু এই পদ্ধতিটি সমস্যাযুক্ত কারণ ব্যক্তিগত ব্যবহারকারীর তথ্যের সাথে আপোস করা যেতে পারে এবং পরিষেবা প্রদানকারীরা প্রত্যয়নের সত্যতা যাচাই করতে পারে না। - -বিকেন্দ্রীভূত পরিচয় কোম্পানিগুলিকে প্রচলিত [আপনার গ্রাহককে জানুন (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) প্রক্রিয়াগুলি এড়িয়ে যেতে এবং যাচাইযোগ্য প্রমাণপত্রের মাধ্যমে ব্যবহারকারীর পরিচয় প্রমাণীকরণ করতে দেয়। এটি পরিচয় ব্যবস্থাপনার খরচ কমায় এবং জাল নথিপত্র ব্যবহার প্রতিরোধ করে। - -### 3. ভোটিং এবং অনলাইন কমিউনিটিগুলো {#voting-and-online-communities} - -অনলাইন ভোটিং এবং সোশ্যাল মিডিয়া বিকেন্দ্রীভূত পরিচয়ের জন্য দুটি অভিনব অ্যাপ্লিকেশন। অনলাইন ভোটিং স্কিমগুলি ম্যানিপুলেশনের জন্য সংবেদনশীল, বিশেষ করে যদি ম্যালিসিয়াস এক্টরস ভোট দেওয়ার জন্য মিথ্যা পরিচয় তৈরি করে। ব্যক্তিদের অন-চেইন প্রত্যয়ন উপস্থাপন করতে বলা অনলাইন ভোটিং প্রক্রিয়ার অখণ্ডতা উন্নত করতে পারে। - -বিকেন্দ্রীকৃত পরিচয় জাল অ্যাকাউন্ট মুক্ত অনলাইন কমিউনিটিস তৈরি করতে সাহায্য করতে পারে। উদাহরণস্বরূপ, প্রতিটি ব্যবহারকারীকে একটি অন-চেইন আইডেন্টিটি সিস্টেম ব্যবহার করে তাদের পরিচয় প্রমাণীকরণ করতে হতে পারে, যেমন ইথেরিয়াম নাম পরিষেবা, বটগুলির সম্ভাবনা হ্রাস করে। - -### 4. অ্যান্টি-সাইবিল সুরক্ষা {#sybil-protection} - -সাইবিল আক্রমণ বলতে বোঝায় যে ব্যক্তিরা তাদের প্রভাব বাড়ানোর জন্য একটি সিস্টেমকে একাধিক ব্যক্তি মনে করে প্রতারণা করে। [অনুদান প্রদানকারী অ্যাপ্লিকেশনগুলি](https://gitcoin.co/grants/) যেগুলি [ব্যবহার করে চতুর্মুখী ভোটিং](https://www.radicalxchange.org/concepts/plural-voting/) এই সাইবিল আক্রমণের জন্য ঝুঁকিপূর্ণ কারণ অনুদানের মূল্য বৃদ্ধি পায় যখন আরও বেশি ব্যক্তি এটিকে ভোট দেয়, ব্যবহারকারীদের তাদের অবদানগুলিকে অনেকগুলি পরিচয়ে বিভক্ত করতে উৎসাহিত করে। বিকেন্দ্রীভূত পরিচয়গুলি প্রত্যেক অংশগ্রহণকারীর উপর বোঝা বাড়িয়ে প্রমাণ করতে সাহায্য করে যে তারা সত্যিই মানুষ, যদিও প্রায়ই নির্দিষ্ট ব্যক্তিগত তথ্য প্রকাশ না করেই। - -## বিকেন্দ্রীভূত পরিচয় ব্যবহার করুন {#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 {#further-reading} - -### আর্টিকেল সমূহ {#articles} - -- [ব্লকচেন ব্যবহারের ক্ষেত্রে: ডিজিটাল পরিচয়ে ব্লকচেইন](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ -- [ইথেরিয়াম ERC725 কী? ব্লকচেইনে স্ব-সার্বভৌম পরিচয় ব্যবস্থাপনা](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _স্যাম টাউন_ -- [কিভাবে ব্লকচেইন ডিজিটাল পরিচয়ের সমস্যা সমাধান করতে পারে](https://time.com/6142810/proof-of-humanity/) — _অ্যান্ড্রু আর চাউ_ -- [বিকেন্দ্রীভূত পরিচয় কী এবং কেন আপনার যত্ন নেওয়া উচিত?](https://web3.hashnode.com/what-is-decentralized-identity) — _ইমানুয়েল আওসিকা_ - -### Videos {#videos} - -- [বিকেন্দ্রীভূত পরিচয় (বোনাস লাইভস্ট্রিম সেশন)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _ আন্দ্রেয়াস আন্তোনোপোলোস এর বিকেন্দ্রীভূত পরিচয়ের উপর একটি দুর্দান্ত ব্যাখ্যাকারী ভিডিও_ -- [Ceramic, IDX, React এবং 3ID Connect সংযোগের সাথে ইথেরিয়াম এবং বিকেন্দ্রীভূত পরিচয় দিয়ে সাইন ইন করুন](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _Nader Dabit এর ইথেরিয়াম ওয়ালেট ব্যবহার করে ব্যবহারকারীর প্রোফাইল তৈরি, পড়া এবং আপডেট করার জন্য একটি আইডেন্টিটি ম্যানেজমেন্ট সিস্টেম তৈরি করার বিষয়ে YouTube টিউটোরিয়াল_ -- [BrightID - ইথেরিয়ামে বিকেন্দ্রীভূত পরিচয়](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _Bankless পডকাস্ট পর্ব BrightID নিয়ে আলোচনা করে, ইথেরিয়াম এর জন্য একটি বিকেন্দ্রীভূত পরিচয় সমাধান_ -- [অফ চেইন ইন্টারনেট: বিকেন্দ্রীভূত পরিচয় & যাচাইযোগ্য প্রমাণপত্রাদি](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — Evin McMullen দ্বারা EthDenver 2022 উপস্থাপনা - -### কমিউনিটিগুলো {#communities} - -- [GitHub-এ ERC-725 জোট](https://github.com/erc725alliance) — _ইথেরিয়াম ব্লকচেইনে পরিচয় পরিচালনার জন্য ERC725 স্ট্যান্ডার্ডের সমর্থকগণ_ -- [SpruceID Discord সার্ভার](https://discord.com/invite/Sf9tSFzrnt) — _উৎসাহী এবং ডেভেলপারদের জন্য কমিউনিটি যারা ইথেরিয়ামের সাথে সাইন-ইন করে কাজ করছে_ -- [ Veramo Labs](https://discord.gg/sYBUXpACh4) — _অ্যাপ্লিকেশানগুলির জন্য যাচাইযোগ্য ডেটার জন্য একটি কাঠামো তৈরিতে অবদান রাখতে ডেভেলপারদের একটি কমিউনিটি_ diff --git a/src/content/translations/bn/defi/index.md b/src/content/translations/bn/defi/index.md deleted file mode 100644 index e92309667db..00000000000 --- a/src/content/translations/bn/defi/index.md +++ /dev/null @@ -1,352 +0,0 @@ ---- -title: বিকেন্দ্রীভূত অর্থ (DeFi) -description: ইথেরিয়াম এর উপর DeFi এর একটি সংক্ষিপ্ত বিবরণী -lang: bn -template: use-cases -emoji: ":money_with_wings:" -image: ../../../../assets/use-cases/defi.png -alt: Lego ব্রিকস দিয়ে তৈরি একটি Eth লোগো। -sidebarDepth: 2 -summaryPoint1: বর্তমান আর্থিক ব্যবস্থার জন্য বিশ্বব্যাপী একটি উন্মুক্ত বিকল্প ব্যবস্থাপনা। -summaryPoint2: যে পণ্যগুলি আপনাকে ধার, সঞ্চয়, বিনিয়োগ, বাণিজ্য এবং আরও অনেক কিছু করতে দেয়। -summaryPoint3: যে কেউ প্রোগ্রাম করতে পারে এমন ওপেন সোর্স প্রযুক্তির উপরে নির্ভর করে তৈরি। ---- - -DeFi হলো একটি উন্মুক্ত এবং বিশ্বব্যাপী আর্থিক ব্যবস্থা যা ইন্টারনেট যুগের জন্য তৈরি করা হয়েছে – এমন একটি সিস্টেমের বিকল্প যা অস্বচ্ছ, শক্তভাবে নিয়ন্ত্রিত এবং কয়েক দশক পুরনো অবকাঠামো এবং প্রক্রিয়াগুলির দ্বারা একত্রিত। এটি আপনাকে আপনার অর্থের উপর নিয়ন্ত্রণ এবং দৃশ্যমানতা দেয়। এটি আপনাকে বিশ্বব্যাপী বাজারের এক্সপোজার এবং আপনার স্থানীয় মুদ্রা বা ব্যাংকিং অপশনগুলির বিকল্প দেয়। DeFi পণ্যগুলি ইন্টারনেট সংযোগ সহ সকলের জন্য আর্থিক পরিষেবা উন্মুক্ত করে এবং সেগুলি মূলত তাদের ব্যবহারকারীদের দ্বারা মালিকানাধীন এবং রক্ষণাবেক্ষণ করে। এখন পর্যন্ত কয়েক বিলিয়ন ডলার মূল্যের ক্রিপ্টো DeFi অ্যাপ্লিকেশনের মাধ্যমে প্রবাহিত হয়েছে এবং এর পরিমাণ প্রতিদিন বাড়ছে। - -## DeFi কি? {#what-is-defi} - -DeFi হল আর্থিক পণ্য এবং পরিষেবাগুলির জন্য একটি সম্মিলিত শব্দ যা ইথেরিয়াম ব্যবহার করতে পারে এমন যে কারো অ্যাক্সেসযোগ্য - ইন্টারনেট সংযোগ সহ যে কেউ। DeFi এর মাধ্যমে, মার্কেট সর্বদা খোলা থাকে এবং কোনও কেন্দ্রীভূত কর্তৃপক্ষ নেই যারা অর্থপ্রদান ব্লক করতে পারে বা আপনাকে যে কোনও কিছুতে অ্যাক্সেস অস্বীকার করতে পারে। যে পরিষেবাগুলি আগে ধীরগতির ছিল এবং মানব ত্রুটির ঝুঁকিতে ছিল সেগুলি এখন স্বয়ংক্রিয় এবং নিরাপদ কারণ সেগুলি কোড দ্বারা পরিচালনা করা হয় যা যে কেউ পরিদর্শন এবং যাচাই করতে পারে। - -বিশ্বে একটি ক্রমবর্ধমান ক্রিপ্টো অর্থনীতি রয়েছে, যেখানে আপনি ধার দিতে পারেন, ধার করতে পারেন, লং/শর্ট করতে পারেন, সুদ উপার্জন করতে পারেন এবং আরও অনেক কিছু করতে পারেন। ক্রিপ্টো-বুদ্ধিমান আর্জেন্টাইনরা অর্থনীতি পঙ্গু করে দিতে পারে এমন মুদ্রাস্ফীতি এড়াতে DeFi ব্যবহার করেছে। কোম্পানিগুলি তাদের কর্মীদের রিয়েল টাইমে তাদের মজুরি স্ট্রিমিং শুরু করেছে। কিছু লোক এমনকি কোনো ব্যক্তিগত পরিচয় ছাড়াই মিলিয়ন মিলিয়ন ডলারের ঋণ গ্রহণ করেছে এবং পরিশোধ করেছে। - - - -## DeFi বনাম প্রথাগত অর্থনীতি {#defi-vs-tradfi} - -DeFi এর সম্ভাব্যতা দেখার সর্বোত্তম উপায়গুলির মধ্যে একটি হল আজকের বিদ্যমান সমস্যাগুলি বোঝা। - -- কিছু লোককে একটি ব্যাঙ্ক অ্যাকাউন্ট সেট আপ করতে বা আর্থিক পরিষেবাগুলি ব্যবহার করার অনুমতি দেওয়া হয় না। -- আর্থিক পরিষেবাগুলিতে অ্যাক্সেসের অভাব মানুষকে কর্মসংস্থান হতে বাধা দিতে পারে। -- আর্থিক পরিষেবাগুলি আপনাকে অর্থ প্রদান থেকে অবরুদ্ধ করতে পারে। -- আর্থিক পরিষেবাগুলির একটি লুকানো চার্জ হল আপনার ব্যক্তিগত ডেটা। -- সরকার এবং কেন্দ্রীভূত প্রতিষ্ঠান ইচ্ছামতো বাজার বন্ধ করে দিতে পারে। -- ট্রেডিং ঘন্টা প্রায়ই নির্দিষ্ট সময় অঞ্চলের ব্যবসায়িক ঘন্টার মধ্যে সীমাবদ্ধ থাকে। -- অভ্যন্তরীণ মানব নিয়ন্ত্রণাধীন প্রক্রিয়ার কারণে অর্থ স্থানান্তর করতে অনেকদিন লাগতে পারে। -- আর্থিক পরিষেবাগুলির জন্য একটি প্রিমিয়াম রয়েছে কারণ মধ্যস্থতাকারী প্রতিষ্ঠানগুলির তাদের লভ্যাংশ প্রয়োজন। - -### একটি তুলনা {#defi-comparison} - -| DeFi | প্রথাগত অর্থনীতি | -| ------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------- | -| আপনি আপনার অর্থ ধরে রাখেন। | কোম্পানি আপনার অর্থ ধরে রাখে। | -| আপনার অর্থ কোথায় যায় এবং কীভাবে ব্যয় হয় তা আপনি নিয়ন্ত্রণ করেন। | ঝুঁকিপূর্ণ ঋণগ্রহীতাদের ঋণ দেওয়ার মতো আপনার অর্থের অব্যবস্থাপনা না করার জন্য আপনাকে কোম্পানিগুলিকে বিশ্বাস করতে হবে। | -| তহবিল স্থানান্তর মিনিটের মধ্যে ঘটে। | ম্যানুয়াল প্রক্রিয়ার কারণে অর্থপ্রদানে অনেকদিন লাগতে পারে। | -| লেনদেন কার্যকলাপ হলো ছদ্মনাম। | আর্থিক কার্যকলাপ আপনার পরিচয়ের সাথে দৃঢ়ভাবে মিলিত হয়। | -| DeFi যে কারো জন্য উন্মুক্ত। | আর্থিক পরিষেবাগুলি ব্যবহার করার জন্য আপনাকে অবশ্যই আবেদন করতে হবে। | -| মার্কেট সবসময় খোলা থাকে। | কর্মীদের বিরতির প্রয়োজন হয় বিধার মার্কেট বন্ধ করা হয়। | -| এটি স্বচ্ছতার উপর নির্মিত – যে কেউ একটি পণ্যের ডেটা দেখতে পারে এবং সিস্টেমটি কীভাবে কাজ করে তা পরিদর্শন করতে পারে। | আর্থিক প্রতিষ্ঠানগুলি বন্ধ বই: আপনি তাদের ঋণের ইতিহাস, তাদের পরিচালিত সম্পদের রেকর্ড এবং আরও অনেক কিছু দেখতে চাইতে পারবেন না। | - - - DeFi অ্যাপগুলি ঘেটে দেখুন - - -## এটি বিটকয়েন দিয়ে শুরু হয়েছিল... {#bitcoin} - -বিটকয়েন অনেক উপায়ে প্রথম DeFi অ্যাপ্লিকেশন ছিল। বিটকয়েন আপনাকে সত্যিকার অর্থে মূল্যের মালিক হতে এবং নিয়ন্ত্রণ করতে দেয় এবং বিশ্বের যে কোনো জায়গায় পাঠাতে দেয়। এটি একটি বিশ্বস্ত মধ্যস্থতাকারীর প্রয়োজন ছাড়াই অনেক সংখ্যক লোককে, যারা একে অপরকে বিশ্বাস করে না, অ্যাকাউন্টের লেজারে সম্মত হওয়ার একটি উপায় প্রদান করার মাধ্যমে এমনটি করে। বিটকয়েন যে কারো জন্য উন্মুক্ত এবং এর নিয়ম পরিবর্তন করার ক্ষমতা কারো নেই। ঘাটতি এবং উন্মুক্ততার মতো, বিটকয়েনের নিয়মসমূহ, এর প্রযুক্তিতে লেখা আছে। এটি প্রথাগত অর্থনীতির মতো নয় যেখানে সরকার আপনার সঞ্চয়ের অবমূল্যায়ন করে এমন অর্থ মুদ্রণ করতে পারে এবং কোম্পানিগুলি মার্কেট বন্ধ করে দিতে পারে। - -ইথেরিয়াম এগুলোর উপরেই তৈরি করা। বিটকয়েনের মতো, নিয়মগুলি আপনার ক্ষেত্রে পরিবর্তিত হতে পারবে না এবং প্রত্যেকেরই অ্যাক্সেস রয়েছে। কিন্তু এটি [স্মার্ট কনট্র্যাক্ট](/glossary#smart-contract) ব্যবহার করে এই ডিজিটাল অর্থকে প্রোগ্রামযোগ্য করে তোলে, যাতে আপনি মূল্য সংরক্ষণ এবং প্রেরণের বাইরে যেতে পারেন। - - - -## প্রোগ্রামেবল অর্থ {#programmable-money} - -এটা অদ্ভুত শোনাচ্ছে... "কেন আমি আমার অর্থ প্রোগ্রাম করতে চাইব"? যাইহোক, এটি ইথেরিয়াম-এ টোকেনগুলির একটি ডিফল্ট বৈশিষ্ট্য। যে কেউ অর্থ প্রদানের মধ্যে যুক্তি প্রোগ্রাম করতে পারেন। সুতরাং আপনি আর্থিক প্রতিষ্ঠান প্রদত্ত পরিষেবাগুলোর পাশাপাশি বিটকয়েনের নিয়ন্ত্রণ এবং নিরাপত্তা পেতে পারেন। এটি আপনাকে ক্রিপ্টোকারেন্সিগুলোর সাথে এমন কিছু করতে দেয় যা আপনি বিটকয়েনের সাথে করতে পারবেন না যেমন ধার দেওয়া এবং ধার নেওয়া, অর্থ প্রদানের সময় নির্ধারণ করা, ইন্ডেক্স ফান্ডে বিনিয়োগ করা এবং আরও অনেক কিছু। - - -
আপনি যদি ইথেরিয়াম-এ নতুন হন তবে চেষ্টা করতে DeFi অ্যাপ্লিকেশনগুলির জন্য আমাদের পরামর্শগুলি এক্সপ্লোর করুন।
- - DeFi অ্যাপগুলি ঘেটে দেখুন - -
- -## আপনি 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/) প্রয়োজন হবে। - - - পেমেন্ট dapps গুলো দেখুন - - -#### বিশ্বজুড়ে অর্থ স্ট্রিম করুন... {#stream-money} - -এছাড়াও আপনি ইথেরিয়াম এর মাধ্যমে অর্থ প্রবাহ করতে পারেন। এটি আপনাকে কাউকে তাদের বেতন সেকেন্ডের মধ্যে পরিশোধ করতে দেয়, যখনই তাদের প্রয়োজন হয় তখনই তাদের অর্থের অ্যাক্সেস দেয়। অথবা স্টোরেজ লকার বা বৈদ্যুতিক স্কুটারের মত কিছু ভাড়া নিন। - -এবং যদি আপনি [ETH](/eth/) পাঠাতে বা স্ট্রিম করতে না চান কারণ এর মান কতটা পরিবর্তিত হতে পারে, তাহলে ইথেরিয়াম-এ বিকল্প মুদ্রা রয়েছে: স্টেবলকয়েন। - - - -### স্থিতিশীল মুদ্রা অ্যাক্সেস করুন {#stablecoins} - -ক্রিপ্টোকারেন্সির অস্থিতিশীলতা প্রচুর আর্থিক পণ্য এবং সাধারণ ব্যয়ের জন্য একটি সমস্যা। DeFi কমিউনিটি এটি স্টেবলকয়েন দিয়ে সমাধান করেছে। তাদের মূল্য অন্য সম্পদের সাথে স্থির থাকে, সাধারণত ডলারের মতো একটি জনপ্রিয় মুদ্রা। - -Dai বা USDC-এর মতো কয়েনগুলির একটি মূল্য রয়েছে যা একটি ডলারের কয়েক সেন্টের মধ্যে থাকে। এটি তাদের উপার্জন বা খুচরা বিক্রয়ের জন্য নিখুঁত করে তোলে। লাতিন আমেরিকার অনেক লোক তাদের সরকার দ্বারা জারি করা মুদ্রার সাথে একটি বড় অনিশ্চয়তার সময়ে তাদের সঞ্চয় রক্ষার উপায় হিসাবে স্টেবলকয়েন ব্যবহার করেছে। - - - স্টেবলকয়েন সম্পর্কে আরও - - - - -### ধার করা {#lending} - -বিকেন্দ্রীভূত প্রদানকারীদের কাছ থেকে অর্থ ধার নেওয়া দুটি প্রধান প্রকারে আসে। - -- পিয়ার-টু-পিয়ার, যার অর্থ একজন ঋণগ্রহীতা সরাসরি একটি নির্দিষ্ট ঋণদাতার কাছ থেকে ধার করবে। -- পুল-ভিত্তিক যেখানে ঋণদাতারা একটি পুলে ফান্ড (লিকুইডিটি) প্রদান করে যেখান থেকে ঋণগ্রহীতারা ধার নিতে পারে। - - - ঋণদাতা dapps গুলো দেখুন - - -বিকেন্দ্রীভূত ঋণদাতা ব্যবহার করার অনেক সুবিধা রয়েছে... - -#### গোপনীয়তার সাথে ধার করা {#borrowing-privacy} - -আজ, টাকা ধার দেওয়া এবং ধার নেওয়া সবই জড়িত ব্যক্তিদের চারপাশে ঘোরে। ধার দেওয়ার আগে ব্যাংকগুলিকে জানতে হবে আপনি ঋণ পরিশোধ করতে পারবেন কিনা। - -বিকেন্দ্রীভূত ঋণ কোনো পক্ষকেই নিজেদের পরিচয় না দিয়ে কাজ করে। পরিবর্তে, ঋণগ্রহীতাকে অবশ্যই জামানত রাখতে হবে যা ঋণদাতা স্বয়ংক্রিয়ভাবে পাবেন যদি তাদের ঋণ পরিশোধ করা না হয়। কিছু ঋণদাতা জামানত হিসেবে এমনকি NFT গ্রহণ করে। NFT হল একটি অনন্য সম্পদের দলিল, যেমন একটি পেইন্টিং। [NFT সম্পর্কে আরো](/nft/) - -এটি আপনাকে ক্রেডিট চেক বা ব্যক্তিগত তথ্য হস্তান্তর ছাড়াই অর্থ ধার করতে দেয়। - -#### বৈশ্বিক ফান্ডসমূহে অ্যাক্সেস {#access-global-funds} - -আপনি যখন একটি বিকেন্দ্রীভূত ঋণদাতা ব্যবহার করেন তখন আপনার কাছে সমস্ত বিশ্ব থেকে জমা করা ফান্ডগুলিতে অ্যাক্সেস থাকে, শুধুমাত্র আপনার নির্বাচিত ব্যাঙ্ক বা প্রতিষ্ঠানের হেফাজতে থাকা ফান্ডগুলি নয়। এটি ঋণকে আরও সহজলভ্য করে এবং সুদের হার উন্নত করে। - -#### কর-দক্ষতাগুলো {#tax-efficiencies} - -ধার করা আপনাকে আপনার ETH (একটি করযোগ্য ইভেন্ট) বিক্রি করার প্রয়োজন ছাড়াই আপনার প্রয়োজনীয় ফান্ডগুলিতে অ্যাক্সেস দিতে পারে। পরিবর্তে, আপনি একটি স্টেবলকয়েন ঋণের জন্য জামানত হিসাবে ETH ব্যবহার করতে পারেন। এটি আপনাকে আপনার প্রয়োজনীয় নগদ-প্রবাহ দেয় এবং আপনাকে আপনার ETH রাখতে দেয়। স্টেবলকয়েন হল টোকেন যা আপনার নগদ প্রয়োজনের জন্য অনেক ভালো কারণ এগুলো ETH এর মত মূল্যে ওঠানামা করে না। [স্টেবলকয়েন সম্পর্কে আরও](#stablecoins) - -#### ফ্ল্যাশ লোনস {#flash-loans} - -ফ্ল্যাশ লোন হল বিকেন্দ্রীকৃত ঋণের একটি আরও পরীক্ষামূলক রূপ যা আপনাকে জামানত ছাড়া বা কোনো ব্যক্তিগত তথ্য প্রদান ছাড়াই ঋণ নিতে দেয়। - -এগুলো এই মুহূর্তে নন-টেকনিক্যাল লোকেদের কাছে ব্যাপকভাবে অ্যাক্সেসযোগ্য নয় তবে এগুলো ভবিষ্যতে সবার কাছে কী হতে পারে তার ইঙ্গিত দেয়। - -এটি সেই ভিত্তিতে কাজ করে যে একই লেনদেনের মধ্যে ঋণ নেওয়া হয় এবং ফেরত দেওয়া হয়। যদি এটি ফেরত দেওয়া না যায়, তাহলে লেনদেনটি এমনভাবে ফিরে আসে যেন কিছুই ঘটেনি। - -প্রায়শই ব্যবহৃত ফান্ডগুলো লিকুইডিটি পুল (ধার নেওয়ার জন্য ব্যবহৃত ফান্ডের বড় পুল) এ রাখা হয়। যদি সেগুলি একটি নির্দিষ্ট মুহুর্তে ব্যবহার করা না হয়, তাহলে এটি কারোর জন্য এই ফান্ডগুলি ধার করার, তাদের মাধ্যমে ব্যবসা পরিচালনা করার এবং তাদের ধার নেওয়ার সাথে সাথে পুরোপুরি আক্ষরিক অর্থে পরিশোধ করার একটি সুযোগ তৈরি করে। - -এর মানে হল একটি খুব ইচ্ছামত লেনদেনে অনেক যুক্তি অন্তর্ভুক্ত করা আবশ্যক। একটি সাধারণ উদাহরণ হতে পারে যে কেউ একটি ফ্ল্যাশ লোন ব্যবহার করে একটি মূল্যে যতটা সম্পদ ধার করতে পারে যাতে তারা এটিকে ভিন্ন বিনিময়ে বিক্রি করতে পারে যেখানে দাম বেশি। - -সুতরাং একটি একক লেনদেনে, নিম্নলিখিতগুলি ঘটে: - -- আপনি এক্সচেঞ্জ A থেকে X পরিমাণ, $1.00 এ $asset ধার করেন -- আপনি এক্সচেঞ্জ B-এ $1.10-এ X $asset বিক্রি করেন -- আপনি এক্সচেঞ্জ A তে লোন ফেরত দেন -- লাভ বিয়োগ লেনদেন ফি আপনি রাখুন - -যদি এক্সচেঞ্জ B এর সরবরাহ হঠাৎ করে কমে যায় এবং ব্যবহারকারী আসল লোন কভার করার জন্য যথেষ্ট ক্রয় করতে সক্ষম না হন, তাহলে লেনদেনটি ব্যর্থ হবে। - -প্রথাগত আর্থিক জগতে উপরের উদাহরণটি করতে সক্ষম হতে, আপনার প্রচুর পরিমাণ অর্থের প্রয়োজন হবে। এই অর্থ উপার্জন কৌশল শুধুমাত্র যাদের বিদ্যমান সম্পদ আছে তাদের অ্যাক্সেসযোগ্য। ফ্ল্যাশ লোন হল একটি ভবিষ্যতের উদাহরণ যেখানে অর্থ উপার্জনের জন্য অর্থ থাকা অপরিহার্য নয়। - -[ফ্ল্যাশ লোন সম্পর্কে আরো](https://aave.com/flash-loans/) - - - -### ক্রিপ্টো দিয়ে সঞ্চয় করা শুরু করুন {#saving} - -#### ঋণদান {#lending} - -আপনি আপনার ক্রিপ্টোকে ধার দিয়ে সুদ উপার্জন করতে পারেন এবং আপনার ফান্ড রিয়েল টাইমে বৃদ্ধি পেতে দেখতে পারেন। এই মুহূর্তে সুদের হারগুলি আপনার স্থানীয় ব্যাঙ্কে আপনি যা পেতে পারেন তার চেয়ে অনেক বেশি (যদি আপনি ভাগ্যবান হন যে একটি অ্যাক্সেস করতে সক্ষম হন)। উদাহরণস্বরূপ: - -- আপনি Aave-এর মতো একটি পণ্যকে আপনার 100 Dai, একটি [স্টেবলকয়েন](/stablecoins/) ধার দেন। -- আপনি 100 Aave Dai (aDai) পাবেন যা একটি টোকেন যা আপনার ধার করা Dai কে প্রতিনিধিত্ব করে। -- সুদের হারের উপর ভিত্তি করে আপনার aDai বৃদ্ধি পাবে এবং আপনি আপনার ওয়ালেটে আপনার ব্যালেন্স বাড়তে দেখতে পাবেন। APR-এর উপর নির্ভর করে, আপনার ওয়ালেট ব্যালেন্স কয়েক দিন বা এমনকি কয়েক ঘন্টা পরে 100.1234 এর মত কিছু পড়বে! -- আপনি যেকোন সময় আপনার aDai ব্যালেন্সের সমান পরিমাণ নিয়মিত Dai তুলতে পারবেন। - - - ধার দেওয়া dapps গুলো দেখুন - - -#### নো-লস লটারিসমূহ {#no-loss-lotteries} - -PoolTogether-এর মতো নো-লস লটারি অর্থ সঞ্চয় করার একটি মজাদার এবং উদ্ভাবনী নতুন উপায়। - -- আপনি 100 Dai টোকেন ব্যবহার করে 100 টি টিকিট কিনবেন। -- আপনি আপনার 100টি টিকেটের প্রতিনিধিত্ব করে 100 টি plDai পাবেন। -- যদি আপনার টিকিটগুলির মধ্যে একটি বিজয়ী হিসাবে বাছাই করা হয়, তাহলে আপনার plDai ব্যালেন্স প্রাইজ পুলের পরিমাণ অনুযায়ী বৃদ্ধি পাবে। -- আপনি জিততে না পারলে, আপনার 100 plDai পরের সপ্তাহের ড্রতে চলে যাবে। -- আপনি যেকোন সময় আপনার plDai ব্যালেন্সের সমান পরিমাণ রেগুলার Dai তুলতে পারবেন। - -উপরের ধারের উদাহরণের মতো টিকিট ডিপোজিট ধার দেওয়ার মাধ্যমে সমস্ত সুদের দ্বারা প্রাইজ পুল তৈরি হয়। - - - PoolTogether ব্যবহার করে দেখুন - - - - -### টোকেন সমূহ এক্সচেঞ্জ করুন {#swaps} - -ইথেরিয়ামে হাজার হাজার টোকেন রয়েছে। বিকেন্দ্রীভূত এক্সচেঞ্জ (DEX) আপনি যখনই চান তখনই আপনাকে বিভিন্ন টোকেন বাণিজ্য করতে দেয়। আপনি কখনই আপনার সম্পদের নিয়ন্ত্রণ ছেড়ে দিবেন না। এটি একটি ভিন্ন দেশে যাওয়ার সময় একটি মুদ্রা বিনিময় ব্যবস্থা ব্যবহার করার মত। কিন্তু DeFi সংস্করণ কখনই বন্ধ হয় না। মার্কেটগুলো বছরে 24/7, 365 দিন এবং এর প্রযুক্তি এই গ্যারান্টি দেয় যে সর্বদা একটি ট্রেড গ্রহণ করার জন্য কেউ থাকবে। - -উদাহরণস্বরূপ, আপনি যদি নো-লস লটারি PoolTogether (উপরে বর্ণিত) ব্যবহার করতে চান, তাহলে আপনাকে Dai বা USDC-এর মতো একটি টোকেনের প্রয়োজন হবে। এই DEX গুলি আপনাকে সেই টোকেনগুলির জন্য আপনার ETH অদলবদল করতে এবং আপনার শেষ হয়ে গেলে আবার ফিরে আসতে দেয়। - - - টোকেন এক্সচেঞ্জ দেখুন - - - - -### উন্নত ট্রেডিং {#trading} - -যারা একটু বেশি নিয়ন্ত্রণ পছন্দ করেন তাদের জন্য আরও উন্নত ব্যবস্থা রয়েছে। সীমিত অর্ডারস, পার্পেচুয়ালস, মার্জিন ট্রেডিং এবং আরও অনেক কিছু সম্ভব। বিকেন্দ্রীভূত ট্রেডিংয়ের মাধ্যমে আপনি বিশ্বব্যাপী লিকুইডিটির অ্যাক্সেস পান, বাজার কখনই বন্ধ হয় না এবং আপনি সর্বদা আপনার সম্পদের নিয়ন্ত্রণে থাকেন। - -যখন আপনি একটি কেন্দ্রীভূত এক্সচেঞ্জ ব্যবহার করেন তখন আপনাকে ট্রেডের আগে আপনার সম্পদ জমা করতে হবে এবং সেগুলির যত্ন নেওয়ার জন্য তাদের বিশ্বাস করতে হবে। আপনার সম্পদ জমা হওয়ার সময়, সেগুলি ঝুঁকির মধ্যে রয়েছে কারণ কেন্দ্রীভূত এক্সচেঞ্জগুলি হ্যাকারদের জন্য আকর্ষণীয় লক্ষ্য। - - - ট্রেডিং dapps দেখুন - - - - -### আপনার পোর্টফোলিও বাড়ান {#investing} - -ইথেরিয়াম এ ফান্ড ম্যানেজমেন্ট পণ্য রয়েছে যা আপনার পছন্দের কৌশলের ভিত্তিতে আপনার পোর্টফোলিও বাড়ানোর চেষ্টা করবে। এটি স্বয়ংক্রিয়, সকলের জন্য উন্মুক্ত, এবং আপনার লাভের একটি অংশ নেওয়ার জন্য একজন মানব পরিচালকের প্রয়োজন নেই। - -একটি ভাল উদাহরণ হল [DeFi পালস ইনডেক্স ফান্ড (DPI)](https://defipulse.com/blog/defi-pulse-index/)। এটি এমন একটি তহবিল যা আপনার পোর্টফোলিওতে সর্বদা [বাজার মূলধন দ্বারা শীর্ষ DeFi টোকেন](https://www.coingecko.com/en/defi) অন্তর্ভুক্ত থাকে তা নিশ্চিত করতে স্বয়ংক্রিয়ভাবে ভারসাম্য বজায় রাখে। আপনাকে কখনই কোনো বিবরণ পরিচালনা করতে হবে না এবং আপনি যখন খুশি ফান্ড থেকে উত্তোলন করতে পারেন। - - - বিনিয়োগ dapps গুলো দেখুন - - - - -### আপনার আইডিয়াগুলো ফান্ড করুন {#crowdfunding} - -ইথেরিয়াম ক্রাউডফান্ডিংয়ের জন্য একটি আদর্শ প্ল্যাটফর্ম: - -- সম্ভাব্য তহবিল যেকোন জায়গা থেকে আসতে পারে – ইথেরিয়াম এবং এর টোকেনগুলি বিশ্বের যে কোনও জায়গায় যে কোনও ব্যক্তির জন্য উন্মুক্ত। -- এটি স্বচ্ছ তাই তহবিল সংগ্রহকারীরা প্রমাণ করতে পারেন যে কত টাকা তোলা হয়েছে। এমনকি আপনি পরবর্তীতে কীভাবে ফান্ড ব্যয় করা হচ্ছে তাও ট্রেস করতে পারেন। -- তহবিল সংগ্রহকারীরা স্বয়ংক্রিয় অর্থ ফেরত সেটআপ করতে পারে যদি, উদাহরণস্বরূপ, একটি নির্দিষ্ট সময়সীমা এবং ন্যূনতম পরিমাণ পূরণ না হয়। - - - ক্রাউডফান্ডিং dapps গুলো দেখুন - - -#### কোয়াড্রেটিক ফান্ডিং {#quadratic-funding} - -ইথেরিয়াম হল ওপেন সোর্স সফ্টওয়্যার এবং এখনও পর্যন্ত অনেক কাজ কমিউনিটি দ্বারা অর্থায়ন করা হয়েছে। এটি একটি আকর্ষণীয় নতুন অর্থ সংগ্রহের মডেলের বৃদ্ধির দিকে পরিচালিত করেছে: কোয়াড্রেটিক ফান্ডিং। This has the potential to improve the way we fund all types of public goods in the future. - -Quadratic funding makes sure that the projects that receive the most funding are those with the most unique demand. In other words, projects that stand to improve the lives of the most people. এটি কীভাবে কাজ করে তার ব্যাখ্যা দেওয়া হল: - -1. অনুদানকৃত ফান্ডের একটি ম্যাচিং পুল আছে। -2. পাবলিক ফান্ডিং এর একটি রাউন্ড শুরু হয়। -3. লোকেরা কিছু অর্থ দান করে একটি প্রকল্পের জন্য তাদের চাহিদার সংকেত দিতে পারে। -4. একবার রাউন্ড শেষ হয়ে গেলে, ম্যাচিং পুলটি প্রকল্পগুলিতে বিতরণ করা হয়। যাদের সবচেয়ে অনন্য চাহিদা তারা ম্যাচিং পুল থেকে সর্বোচ্চ পরিমাণ পান। - -এর মানে হচ্ছে, B-এর 10,000 ডলারের একটি অনুদানের তুলনায় প্রজেক্ট A-এর 1 ডলারের 100টি অনুদানে শেষ পর্যন্ত বেশি পরিমাণে অর্থ জমা হতে পারে (মেচিং পুলের আকারের উপরে ভিত্তি করে)। - -[কোয়াড্রেটিক ফান্ডিং সম্পর্কে আরো](https://wtfisqf.com) - - - -### বীমা {#insurance} - -বিকেন্দ্রীভূত বীমার লক্ষ্য বীমা সস্তা, দ্রুত পরিশোধ করা এবং আরও স্বচ্ছ করা। আরো অটোমেশনের সহায়তায়, কভারেজ আরো সাশ্রয়ী এবং পে-আউটগুলি অনেক দ্রুত হয়ে উঠে। আপনার দাবির সিদ্ধান্ত নিতে ব্যবহৃত ডেটা সম্পূর্ণ স্বচ্ছ। - -যেকোন সফ্টওয়্যারের মতো ইথেরিয়াম পণ্যগুলি বাগ এবং শোষণের শিকার হতে পারে। তাই এই মুহূর্তে এই ক্ষেত্রে প্রচুর বীমা পণ্য তাদের ব্যবহারকারীদের তহবিলের ক্ষতি থেকে রক্ষা করার উপর ফোকাস করে। যাইহোক, জীবন আমাদের দিকে এগিয়ে দিতে পারে এমন সবকিছুর জন্য কভারেজ তৈরি করতে শুরু করা প্রকল্প রয়েছে। এর একটি ভাল উদাহরণ হল Etherisc এর ক্রপ কভার যার লক্ষ্য [খরা এবং বন্যা থেকে কেনিয়ার ক্ষুদ্র কৃষকদের রক্ষা করুন](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc)। বিকেন্দ্রীভূত বীমা কৃষকদের জন্য সস্তা কভার প্রদান করতে পারে যাদের প্রায়শই প্রথাগত বীমার বাইরে মূল্য দেওয়া হয়। - - - বীমা dapps গুলো দেখুন - - - - -### এগ্রিগেটর এবং পোর্টফোলিও ম্যানেজার সমূহ {#aggregators} - -এত কিছু করার সাথে, আপনার সমস্ত বিনিয়োগ, ঋণ এবং ব্যবসার ট্র্যাক রাখার জন্য আপনার একটি উপায় প্রয়োজন। অনেকগুলি পণ্য রয়েছে যা আপনাকে আপনার সমস্ত DeFi কার্যকলাপকে এক জায়গা থেকে সমন্বয় করতে দেয়। এটি DeFi এর উন্মুক্ত আর্কিটেকচারের সৌন্দর্য। দলগুলো এমন ইন্টারফেস তৈরি করতে পারে যেখানে আপনি কেবল পণ্য জুড়ে আপনার ব্যালেন্স দেখতে পাবেন না, আপনি তাদের বৈশিষ্ট্যগুলিও ব্যবহার করতে পারেন। আপনি DeFi এর আরও এক্সপ্লোর করার সাথে সাথে এটি দরকারী বলে মনে হতে পারে। - - - পোর্টফোলিও dapps সমূহ দেখুন - - - - -## DeFi কিভাবে কাজ করে? {#how-defi-works} - -DeFi ক্রিপ্টোকারেন্সি এবং স্মার্ট কন্ট্রাক্ট ব্যবহার করে এমন পরিষেবা প্রদান করতে যেগুলির মধ্যস্থতাকারীদের প্রয়োজন নেই। আজকের আর্থিক বিশ্বে, আর্থিক প্রতিষ্ঠানগুলি লেনদেনের গ্যারান্টার হিসাবে কাজ করে। এটি এই প্রতিষ্ঠানগুলিকে প্রচুর শক্তি দেয় কারণ আপনার অর্থ তাদের মাধ্যমে প্রবাহিত হয়। এছাড়াও বিশ্বের কোটি কোটি মানুষ এমনকি একটি ব্যাঙ্ক অ্যাকাউন্ট অ্যাক্সেস করতে পারে না। - -DeFi-এ, একটি স্মার্ট কন্ট্র্যাক্ট লেনদেনে আর্থিক প্রতিষ্ঠানকে প্রতিস্থাপন করে। একটি স্মার্ট কন্ট্র্যাক্ট হলো এক ধরনের ইথেরিয়াম অ্যাকাউন্ট যা ফান্ড ধরে রাখতে পারে এবং নির্দিষ্ট শর্তের ভিত্তিতে সেগুলি পাঠাতে/ফেরত দিতে পারে। লাইভ থাকাকালীন কেউ সেই স্মার্ট কন্ট্র্যাক্টটি পরিবর্তন করতে পারে না – এটি সর্বদা যেভাবে প্রোগ্রাম করা করা হয়েছে সেভাবে চলবে। - -কোন একটি ভাতা বা পকেট মানি দেওয়ার জন্য ডিজাইন করা একটি কন্ট্র্যাক্ট প্রতি শুক্রবার অ্যাকাউন্ট A থেকে অ্যাকাউন্ট B-তে টাকা পাঠানোর জন্য প্রোগ্রাম করা যেতে পারে। এবং যতক্ষণ না অ্যাকাউন্ট A-তে প্রয়োজনীয় ফান্ড থাকে ততক্ষণ এটি কেবল তা করবে। ফান্ড চুরি করার জন্য কেউ কন্ট্র্যাক্ট পরিবর্তন করতে এবং প্রাপক হিসাবে অ্যাকাউন্ট C যোগ করতে পারে না। - -তদারকি এবং নিরীক্ষা করার জন্য কনট্র্যাক্টগুলোও সার্বজনীন। এর অর্থ হল খারাপ কনট্র্যাক্টগুলি প্রায়শই কমিউনিটির যাচাইয়ের অধীনে খুব দ্রুত আসবে। - -এর অর্থ এই যে বর্তমানে ইথেরিয়াম কমিউনিটির আরও প্রযুক্তিগত সদস্যদের বিশ্বাস করার প্রয়োজন রয়েছে যারা কোড পড়তে পারে। ওপেন-সোর্স ভিত্তিক কমিউনিটি ডেভেলপারদের নিয়ন্ত্রণে রাখতে সাহায্য করে, কিন্তু সময়ের সাথে সাথে এই প্রয়োজনীয়তা হ্রাস পাবে কারণ স্মার্ট কনট্র্যাক্টগুলি পড়া সহজ হয়ে যায় এবং কোডের বিশ্বাসযোগ্যতা প্রমাণ করার অন্যান্য উপায় তৈরি করা হয়। - -## ইথেরিয়াম এবং DeFi {#ethereum-and-defi} - -ইথেরিয়াম বিভিন্ন কারণে DeFi-এর জন্য নিখুঁত ভিত্তি: - -- কেউ ইথেরিয়াম বা এটিতে থাকা স্মার্ট কনট্র্যাক্টের মালিক নয় – এটি প্রত্যেককে DeFi ব্যবহার করার সুযোগ দেয়। এর মানে এই যে কেউ আপনার ক্ষেত্রে নিয়ম পরিবর্তন করতে পারবেন না। -- DeFi পণ্যগুলি পর্দার আড়ালে একই ভাষায় কথা বলে: ইথেরিয়াম। এর মানে অনেক পণ্য নির্বিঘ্নে একসাথে কাজ করে। আপনি একটি প্ল্যাটফর্মে টোকেন ধার দিতে পারেন এবং সম্পূর্ণ ভিন্ন অ্যাপ্লিকেশনে একটি ভিন্ন বাজারে সুদ বহনকারী টোকেন বিনিময় করতে পারেন। এটি আপনার ব্যাঙ্কে লয়্যালটি পয়েন্ট নগদ করতে পারার মতো। -- টোকেন এবং ক্রিপ্টোকারেন্সি ইথেরিয়াম-এ, একটি শেয়ার্ড লেজারে, তৈরি করা হয় – লেনদেন এবং মালিকানার ট্র্যাক রাখা কিছুটা ইথেরিয়ামের বিষয়বস্তু। -- ইথেরিয়াম সম্পূর্ণ আর্থিক স্বাধীনতার অনুমতি দেয় - বেশিরভাগ পণ্য কখনই আপনার তহবিলের হেফাজত করবে না, নিয়ন্ত্রণ আপনার কাছেই থাকবে। - -আপনি লেয়ারসমূহে DeFi এর কথা ভাবতে পারেন: - -1. ব্লকচেইন – ইথেরিয়ামে লেনদেনের ইতিহাস এবং অ্যাকাউন্টের অবস্থা ধারন করে। -2. সম্পদ – [ETH](/eth/) এবং অন্যান্য টোকেনগুলো (মুদ্রাসমূহ)। -3. প্রোটোকল - [স্মার্ট কনট্র্যাক্ট](/glossary/#smart-contract) যাকিনা কার্যকারিতা প্রদান করে, উদাহরণস্বরূপ, একটি পরিষেবা যা সম্পদের বিকেন্দ্রীভূত ঋণের অনুমতি দেয়। -4. [অ্যাপ্লিকেশানগুলো](/dapps/) – প্রোটোকলগুলি পরিচালনা এবং অ্যাক্সেস করতে আমরা যে পণ্যগুলি ব্যবহার করি। - -## DeFi তৈরি করুন {#build-defi} - -DeFi একটি ওপেন সোর্স মুভমেন্ট। আপনার জন্য DeFi প্রোটোকলসমূহ এবং অ্যাপ্লিকেশনগুলি যাচাই, ফর্ক ও উদ্ভাবনের জন্য উন্মুক্ত। এই স্তরযুক্ত স্ট্যাকের কারণে (তারা সবাই একই বেস ব্লকচেইন এবং সম্পদ ভাগাভাগি করে), প্রোটোকলগুলি মিশ্রিত করা যেতে পারে এবং অনন্য কম্বো সুযোগগুলি আনলক করতে মিলিত হতে পারে। - - - Dapps তৈরি সম্পর্কে আরো - - -## Further reading {#futher-reading} - -### DeFi ডেটা {#defi-data} - -- [DeFi Prime](https://defiprime.com/) -- [DeFi Llama](https://defillama.com/) -- [DeFi Rate](https://defirate.com/) - -### DeFi আর্টিকেল {#defi-articles} - -- [DeFi-এর জন্য একটি শিক্ষানবিস গাইড](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, ৬ জানুয়ারি, 2020_ - -### Videos {#videos} - -- [Finematics - বিকেন্দ্রীভূত আর্থিক শিক্ষা](https://finematics.com/) – _DeFi এর উপর ভিডিও_ -- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _DeFi বেসিকস: এই বিস্তর পরিসীমাযুক্ত বিস্ময়কর স্থানে শুরু করার জন্য আপনার যা যা জানা প্রয়োজন।_ -- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _DeFi কি?_ - -### কমিউনিটিগুলো {#communities} - -- [DeFi Llama Discord সার্ভার](https://discord.gg/buPFYXzDDd) -- [DeFi Pulse Discord সার্ভার](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/bn/desci/index.md b/src/content/translations/bn/desci/index.md deleted file mode 100644 index 6bf0c5bc2df..00000000000 --- a/src/content/translations/bn/desci/index.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: বিকেন্দ্রীভূত বিজ্ঞান (DeSci) -description: ইথেরিয়ামে বিকেন্দ্রীভূত বিজ্ঞানের একটি ওভারভিউ -lang: bn -template: use-cases -emoji: ":microscope:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: একটি বিশ্বব্যাপী, বর্তমান বৈজ্ঞানিক ব্যবস্থার উন্মুক্ত বিকল্প। -summaryPoint2: প্রযুক্তি যা বিজ্ঞানীদের তহবিল সংগ্রহ করতে, পরীক্ষা চালাতে, ডেটা শেয়ার করতে, ইনসাইটস বিতরণ করতে এবং আরও অনেক কিছু করতে সক্ষম করে। -summaryPoint3: উন্মুক্ত বিজ্ঞান আন্দোলন গড়ে তোলে। ---- - -## বিকেন্দ্রীভূত বিজ্ঞান (DeSci) কী? {#what-is-desci} - -বিকেন্দ্রীভূত বিজ্ঞান (DeSci) হলো একটি আন্দোলন যার লক্ষ্য হল Web3 স্ট্যাক ব্যবহার করে বৈজ্ঞানিক জ্ঞানকে ন্যায্যভাবে এবং ন্যায়সঙ্গতভাবে অর্থায়ন, নির্মাণ, পর্যালোচনা, ক্রেডিটং, সঞ্চয় এবং প্রচারের জন্য পাবলিক অবকাঠামো তৈরি করা। - -DeSci একটি ইকোসিস্টেম তৈরি করার লক্ষ্য রাখে যেখানে বিজ্ঞানীরা তাদের গবেষণা খোলাখুলিভাবে শেয়ার করতে এবং তাদের কাজের জন্য কৃতিত্ব পাওয়ার জন্য উৎসাহিত করা হয় এবং যেকেউ সহজেই গবেষণায় অ্যাক্সেস এবং অবদান রাখতে দেয়। DeSci এই ধারণাটি নিয়ে কাজ করে দেয় যে বৈজ্ঞানিক জ্ঞান সবার কাছে অ্যাক্সেসযোগ্য হওয়া উচিত এবং বৈজ্ঞানিক গবেষণার প্রক্রিয়াটি স্বচ্ছ হওয়া উচিত। DeSci একটি আরও বিকেন্দ্রীভূত এবং বিতরণ করা বৈজ্ঞানিক গবেষণা মডেল তৈরি করছে, এটি কেন্দ্রীয় কর্তৃপক্ষের সেন্সরশিপ এবং নিয়ন্ত্রণের বিরুদ্ধে আরও প্রতিরোধী করে তুলেছে। DeSci এমন একটি পরিবেশ তৈরি করার আশা করে যেখানে নতুন এবং অপ্রচলিত ধারণাগুলি অর্থায়ন, বৈজ্ঞানিক টুলস এবং যোগাযোগের চ্যানেলগুলিতে অ্যাক্সেসকে বিকেন্দ্রীকরণ করে বিকাশ লাভ করতে পারে। - -বিকেন্দ্রীভূত বিজ্ঞান আরও বিভিন্ন তহবিল উৎসের অনুমতি দেয় ([DAO](/dao/) থেকে, ক্রাউডফান্ডিং এবং আরও অনেক কিছুর জন্য [কোয়াড্রেটিক ডোনেশন সমূহ](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531)), আরও অ্যাক্সেসযোগ্য অতিরিক্ত ডেটা ও পদ্ধতিগুলো, এবং পুনঃউৎপাদন ক্ষমতার জন্য প্রণোদনা প্রদান করে। - -### জুয়ান বেনেট - DeSci আন্দোলন - - - -## কিভাবে DeSci বিজ্ঞানের উন্নতি করে {#desci-improves-science} - -বিজ্ঞানের মূল সমস্যাগুলির একটি অসম্পূর্ণ তালিকা এবং কীভাবে বিকেন্দ্রীভূত বিজ্ঞান এই সমস্যাগুলি সমাধান করতে সাহায্য করতে পারে - -| **বিকেন্দ্রীভূত বিজ্ঞান** | **প্রথাগত বিজ্ঞান** | -| -------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | -| ফান্ডের বন্টন জনসাধারণের দ্বারা নির্ধারিত হয় কোয়াড্রেটিক ডোনেশনস বা DAO এর মতো মেকানিজম ব্যবহার করে। | ছোট, বন্ধ, কেন্দ্রীভূত গোষ্ঠীগুলি ফান্ডের বিতরণ নিয়ন্ত্রণ করে। | -| আপনি গতিশীল দলে সারা বিশ্ব থেকে সহকর্মীদের সাথে সহযোগিতা করেন। | অর্থায়ন সংস্থা এবং হোম প্রতিষ্ঠানগুলি আপনার সহযোগিতাকে সীমিত করে। | -| অর্থায়নের সিদ্ধান্তগুলি অনলাইনে এবং স্বচ্ছভাবে নেওয়া হয়। নতুন ফান্ডিং মেকানিজমসমূহ এক্সপ্লোর করা হয়। | অর্থায়নের সিদ্ধান্তগুলি দীর্ঘ অনুমোদন সময় এবং সীমিত স্বচ্ছতার সাথে নেওয়া হয়। কিছু ফান্ডিং মেকানিজমস বিদ্যমান। | -| Web3-এর মৌলিক বিষয়সমূহ ব্যবহার করে ল্যাবরেটরি পরিষেবাগুলি শেয়ার করা সহজতর এবং আরও স্বচ্ছ করা হয়েছে। | ল্যাবরেটরি রিসোর্সগুলো শেয়ার করা প্রায়ই ধীর এবং অস্বচ্ছ হয়। | -| প্রকাশের জন্য নতুন মডেল তৈরি করা যেতে পারে যা বিশ্বাস, স্বচ্ছতা এবং সর্বজনীন অ্যাক্সেসের জন্য Web3 প্রিমিটিভস ব্যবহার করে। | আপনি প্রায়শই অদক্ষ, পক্ষপাতদুষ্ট এবং শোষণমূলক হিসাবে স্বীকৃত প্রতিষ্ঠিত পথের মাধ্যমে প্রকাশ করেন। | -| আপনি পিয়ার-পর্যালোচনার কাজের জন্য টোকেন এবং খ্যাতি অর্জন করতে পারেন। | আপনার পিয়ার-রিভিউ কাজ অবৈতনিক, লাভজনক প্রকাশকদের উপকার করে। | -| আপনি যে ইন্টেলেকচুয়াল প্রপার্টি (IP) তৈরি করেন তার মালিক এবং স্বচ্ছ শর্তাবলী অনুসারে এটি বিতরণ করেন। | আপনি যে IP তৈরি করেন তার মালিক আপনার হোম প্রতিষ্ঠান। IP অ্যাক্সেস স্বচ্ছ নয়। | -| সমস্ত গবেষণা শেয়ার করা, যার মধ্যে অসফল প্রচেষ্টার ডেটা সহ, সমস্ত ধাপগুলি অন-চেইন করে। | প্রকাশনার পক্ষপাতের মানে হল যে গবেষকরা সফল ফলাফলের জন্য পরীক্ষাগুলি শেয়ার করার সম্ভাবনা বেশি। | - -## ইথেরিয়াম এবং DeSci {#ethereum-and-desci} - -একটি বিকেন্দ্রীভূত বিজ্ঞান ব্যবস্থার জন্য প্রয়োজন হবে শক্তিশালী নিরাপত্তা, মিনিমাল মনেটারি এবং লেনদেন খরচসমূহ এবং অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য একটি সমৃদ্ধ ইকোসিস্টেম। ইথেরিয়াম একটি বিকেন্দ্রীভূত বিজ্ঞান স্ট্যাক নির্মাণের জন্য প্রয়োজনীয় সবকিছু প্রদান করে। - -## DeSci ব্যবহার ক্ষেত্র সমূহ {#use-cases} - -ডিজিটাল পৃথিবীতে Web2 অ্যাকাডেমিয়া অনবোর্ড করার জন্য DeSci সায়েন্টিফিক টুলসেট তৈরি করছে। নীচে ব্যবহারের ক্ষেত্রে একটি নমুনা দেওয়া হল যা Web3 বৈজ্ঞানিক সম্প্রদায়কে অফার করতে পারে। - -### প্রকাশনা {#publishing} - -বিজ্ঞান প্রকাশনা বিখ্যাতভাবে সমস্যাযুক্ত কারণ এটি প্রকাশনা সংস্থাগুলির দ্বারা পরিচালিত হয় যেগুলি গবেষণাপত্র তৈরি করতে বিজ্ঞানী, পর্যালোচনাকারী এবং সম্পাদকদের বিনামূল্যে শ্রমের উপর নির্ভর করে কিন্তু তারপরে অতিরিক্ত প্রকাশনা ফি চার্জ করে। জনসাধারণ, যারা সাধারণত পরোক্ষভাবে কাজের জন্য এবং প্রকাশনার খরচ ট্যাক্সের মাধ্যমে পরিশোধ করে থাকে, তারা প্রায়শই প্রকাশককে আবার অর্থ প্রদান না করে একই কাজ অ্যাক্সেস করতে পারে না। স্বতন্ত্রভাবে বিজ্ঞানের গবেষণাপত্র প্রকাশের জন্য মোট ফি প্রায়ই পাঁচ অঙ্কের ($USD) হয়, যা প্রকাশকদের একটি ছোট গ্রুপের জন্য প্রচুর মুনাফা তৈরি করে এবং একটি [পাবলিক গুড](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} - -অর্থায়ন বিজ্ঞানের বর্তমান আদর্শ মডেল হল যে ব্যক্তি বা বিজ্ঞানীদের দল একটি অর্থায়ন সংস্থার কাছে লিখিত আবেদন করে। বিশ্বস্ত ব্যক্তিদের একটি ছোট প্যানেল আবেদনগুলি স্কোর করে এবং তারপর আবেদনকারীদের একটি ছোট অংশকে ফান্ড দেওয়ার আগে প্রার্থীদের সাক্ষাৎকার নেয়। অনুদানের জন্য আবেদন করা এবং প্রাপ্তির মধ্যে বাধা সৃষ্টি করা ছাড়াও যা কখনও কখনও বছরের পর বছর অপেক্ষা করে, স্বার্থ এবং রাজনীতির জন্য অত্যন্ত ঝুঁকিপূর্ণ বলে পরিচিত। - -গবেষণায় দেখা গেছে যে অনুদান পর্যালোচনা প্যানেলগুলি উচ্চ-মানের প্রস্তাবগুলি নির্বাচনে একটি ত্রুটিপূর্ণ কাজ করে কারণ বিভিন্ন প্যানেলে দেওয়া একই প্রস্তাবগুলির সম্পূর্ণ ভিন্ন ফলাফল রয়েছে। যেহেতু তহবিল আরও দুষ্প্রাপ্য হয়ে উঠেছে, এটি আরও বুদ্ধিবৃত্তিকভাবে রক্ষণশীল প্রকল্পের সাথে আরও সিনিয়র গবেষকদের একটি ছোট পুলে কেন্দ্রীভূত হয়েছে। প্রভাবটি একটি অতি-প্রতিযোগীতামূলক অর্থায়নের ল্যান্ডস্কেপ তৈরি করেছে, বিকৃত প্রণোদনা এবং উদ্ভাবনকে দমিয়ে দিয়েছে। - -DAO এবং Web3 ব্যাপকভাবে তৈরি করা বিভিন্ন প্রণোদনা মডেল নিয়ে পরীক্ষা-নিরীক্ষা করে 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) a> এবং [টোকেনাইজড ইনসেনটিভ স্ট্রাকচার](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) হল কিছু Web3 টুলস যা বিজ্ঞানের অর্থায়নে বিপ্লব ঘটাতে পারে। - -### IP মালিকানা এবং উন্নয়ন {#ip-ownership} - -বুদ্ধিবৃত্তিক সম্পত্তি (IP) গতানুগতিক বিজ্ঞানের একটি বড় সমস্যা: বিশ্ববিদ্যালয়গুলিতে আটকে থাকা থেকে বা বায়োটেকগুলিতে অব্যবহৃত হওয়া, মূল্যায়ন হতে খুবই কঠিন। যাইহোক, ডিজিটাল সম্পদের মালিকানা (যেমন বৈজ্ঞানিক ডেটা বা নিবন্ধ) হল যা কিছু Web3 অসাধারণভাবে [নন-ফাঞ্জিবল টোকেন (NFT)](/nft/) ব্যবহার করে। - -যেভাবে NFT ভবিষ্যতের লেনদেনের জন্য মূল নির্মাতার কাছে মুনাফা পাঠাতে পারে, আপনি গবেষক, গভর্নিং বডিস (যেমন DAO) বা এমনকি যাদের ডেটা সংগ্রহ করা হয়েছে তাদের পুরস্কৃত করার জন্য আপনি স্বচ্ছ মান অ্যাট্রিবিউশন চেইন স্থাপন করতে পারেন। - -[IP-NFT](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) গৃহীত গবেষণা পরীক্ষাগুলির একটি বিকেন্দ্রীকৃত ডেটা ভান্ডারের চাবিকাঠি হিসাবেও কাজ করতে পারে এবং NFT এবং [DeFi](/defi/) আর্থিককরণ (ভগ্নাংশ থেকে ঋণ পুল এবং মূল্য মূল্যায়ন পর্যন্ত) প্লাগ করতে পারে। এছাড়াও এটি নেটিভভাবে অন-চেইন সত্তা যেমন DAO এর মতো [VitaDAO](https://www.vitadao.com/) কে সরাসরি অন-চেইনে গবেষণা পরিচালনা করার অনুমতি দেয়। অ-হস্তান্তরযোগ্য ["সোলবাউন্ড" টোকেন](https://vitalik.ca/general/2022/01/26/soulbound.html)এর আবির্ভাব DeSci তে গুরুত্বপূর্ণ ভূমিকা পালন করতে পারে ব্যক্তিদের তাদের ইথেরিয়াম ঠিকানার সাথে যুক্ত তাদের অভিজ্ঞতা এবং প্রমাণপত্রাদি প্রমাণ করার অনুমতি দিয়ে। - -### ডেটা স্টোরেজ, অ্যাক্সেস এবং আর্কিটেকচার {#data-storage} - -Web3 প্যাটার্ন ব্যবহার করে বৈজ্ঞানিক ডেটা আরও বেশি অ্যাক্সেসযোগ্য করা যেতে পারে এবং বিতরণ করা স্টোরেজ বিপর্যয়মূলক ঘটনা থেকে বাঁচতে গবেষণাকে সক্ষম করে। - -শুরুর জায়গা অবশ্যই একটি সিস্টেম হতে হবে যা সঠিক যাচাইযোগ্য শংসাপত্র ধারণ করে কোনো বিকেন্দ্রীভূত পরিচয় দ্বারা অ্যাক্সেসযোগ্য। এটি সংবেদনশীল ডেটা বিশ্বস্ত পক্ষগুলির দ্বারা সুরক্ষিতভাবে প্রতিলিপি করার অনুমতি দেয়, অপ্রয়োজনীয়তা এবং সেন্সরশিপ প্রতিরোধ, ফলাফলের পুনঃউৎপাদন এবং এমনকি একাধিক পক্ষের সহযোগিতা এবং ডেটাসেটে নতুন ডেটা যোগ করার ক্ষমতা সক্ষম করে। [কম্পিউট-টু-ডেটা](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 ডেটা সলিউশন উপরের পরিস্থিতিগুলিকে সমর্থন করে এবং সত্যিকারের ওপেন সায়েন্সের ভিত্তি প্রদান করে, যেখানে গবেষকরা অ্যাক্সেসের অনুমতি বা ফি ছাড়াই পাবলিক পণ্য তৈরি করতে পারেন। Web3 পাবলিক ডেটা সলিউশন যেমন IPFS, Arweave এবং Filecoin বিকেন্দ্রীকরণের জন্য অপ্টিমাইজ করা হয়েছে। dClimate, উদাহরণস্বরূপ, আবহাওয়া স্টেশন এবং ভবিষ্যদ্বাণীমূলক জলবায়ু মডেল সহ জলবায়ু ও আবহাওয়া ডেটাতে সর্বজনীন অ্যাক্সেস প্রদান করে। - -## যুক্ত হোন {#get-involved} - -প্রকল্পগুলি ঘুরে দেখুন করুন এবং DeSci কমিউনিটিতে যোগ দিন। - -- [DeSci.Global: গ্লোবাল ইভেন্ট এবং মিটআপ ক্যালেন্ডার](https://desci.global) -- [বিজ্ঞান টেলিগ্রামের জন্য ব্লকচেইন](https://t.me/BlockchainForScience) -- [মলিকিউল: আপনার গবেষণা প্রকল্পগুলোর জন্য অর্থ প্রদান করুন এবং অর্থ পান](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 ফাউন্ডেশন: DeSci প্রকাশনা টুল নির্মাতা](https://descifoundation.org/) -- [DeSci.World: ব্যবহারকারীদের দেখার জন্য, বিকেন্দ্রীভূত বিজ্ঞানের সাথে জড়িত থাকার ওয়ান-স্টপ শপ](https://desci.world) -- [ফ্লেমিং প্রোটোকল: ওপেন-সোর্স ডেটা ইকোনমি যা সহযোগিতামূলক বায়োমেডিকাল আবিষ্কারকে জ্বালানী দেয়](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [OceanDAO: DAO পরিচালিত ডাটা-সম্পর্কিত বিজ্ঞানের জন্য অর্থায়ন](https://oceanprotocol.com/dao) -- [অপসায়েন্টিয়া: উন্মুক্ত বিকেন্দ্রীভূত বিজ্ঞান কর্মপ্রবাহ](https://opsci.io/research/) -- [LabDAO: সিলিকোতে একটি প্রোটিন ভাঁজ করুন](https://alphafodl.vercel.app/) -- [Bio.xyz: আপনার বায়োটেক DAO বা desci প্রকল্পের জন্য অর্থায়ন পান](https://www.molecule.to/) -- [ResearchHub: একটি বৈজ্ঞানিক ফলাফল পোস্ট করুন এবং সহকর্মীদের সাথে কথোপকথনে নিযুক্ত হন](https://www.researchhub.com/) -- [VitaDAO: দীর্ঘায়ু গবেষণার জন্য স্পনসরড গবেষণা চুক্তির মাধ্যমে অর্থায়ন পান](https://www.vitadao.com/) -- [ফ্লেমিং প্রোটোকল: ওপেন-সোর্স ডেটা ইকোনমি যা সহযোগিতামূলক বায়োমেডিকাল আবিষ্কারকে জ্বালানী দেয়](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/) -- [DeSci ল্যাবস](https://www.desci.com/) - -আমরা তালিকাভুক্ত নতুন প্রকল্পগুলির জন্য পরামর্শগুলিকে স্বাগত জানাই - শুরু করতে অনুগ্রহ করে আমাদের [তালিকা নীতি](/contributing/adding-desci-projects/) দেখুন! - -## Further reading {#further-reading} - -- [জোসেলিন পার্ল এবং আল্ট্রারেয়ার দ্বারা DeSci উইকি](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) -- [একটি a16z ভবিষ্যতের জন্য Jocelynn Pearl এর বিকেন্দ্রীভূত বায়োটেকের একটি নির্দেশিকা](https://future.a16z.com/a-guide-to-decentralized-biotech/) -- [DeSci এর জন্য ক্ষেত্র](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) -- [DeSci-এর নির্দেশিকা](https://future.com/what-is-decentralized-science-aka-desci/) -- [বিকেন্দ্রীকৃত বিজ্ঞান রিসোর্সসমূহ](https://www.vincentweisser.com/decentralized-science) -- [মলিকিউলের বায়োফার্মা IP-NFT - একটি প্রযুক্তিগত বর্ণনা](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) -- [জন স্টারের তৈরি করা বিজ্ঞানের বিশ্বাসহীন সিস্টেম](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) -- [বায়োটেক DAO-এর উত্থান](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) -- [DeSci: স্যামুয়েল আকিনোশোর দ্য ফিউচার অফ রিসার্চ](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) -- [নাদিয়ার সায়েন্স ফান্ডিং (এপিলগ: DeSci এবং নতুন ক্রিপ্টো প্রিমিটিভস)](https://nadia.xyz/science-funding) -- [বিকেন্দ্রীকরণ ওষুধের বিকাশকে ব্যাহত করছে](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) - -### Videos {#videos} - -- [বিকেন্দ্রীভূত বিজ্ঞান কী?](https://www.youtube.com/watch?v=-DeMklVWNdA) -- [দীর্ঘায়ু গবেষণা এবং ক্রিপ্টো এর সমন্বয় সম্পর্কে Vitalik বুটেরিন এবং বিজ্ঞানীঅব্রে ডি গ্রের মধ্যে কথোপকথন](https://www.youtube.com/watch?v=x9TSJK1widA) -- [বৈজ্ঞানিক প্রকাশনা ভেঙ্গে গেছে। Web3 এটা ঠিক করতে পারে?](https://www.youtube.com/watch?v=WkvzYgCvWj8) -- [জুয়ান বেনেট - DeSci, ইনডিপেনডেন্ট ল্যাবস, & বড় আকারের ডেটা সায়েন্স](https://www.youtube.com/watch?v=zkXM9H90g_E) -- [সেবাস্তিয়ান ব্রুনেমিয়ার - কিভাবে DeSci বায়োমেডিকাল গবেষণাকে রূপান্তর করতে পারে & ভেঞ্চার ক্যাপিটাল](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/bn/nft/index.md b/src/content/translations/bn/nft/index.md deleted file mode 100644 index f6ceb781801..00000000000 --- a/src/content/translations/bn/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: নন-ফাঞ্জিবল টোকেন (NFT) -description: ইথেরিয়াম এ NFT এর একটি সংক্ষিপ্ত বিবরণী -lang: bn -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: হলোগ্রামের মাধ্যমে একটি Eth লোগো ডিসপ্লে করা হচ্ছে।. -summaryPoint1: একটি ইথেরিয়াম-ভিত্তিক সম্পদ হিসেবে অনন্য কিছু উপস্থাপন করার একটি উপায়। -summaryPoint2: NFT কন্টেন্ট নির্মাতাদের আগের চেয়ে আরও ক্ষমতা দিচ্ছে। -summaryPoint3: ইথেরিয়াম ব্লকচেইনে স্মার্ট কন্ট্র্যাক্ট দ্বারা চালিত। ---- - -## What are NFTs? {#what-are-nfts} - -NFT হল টোকেন যারা প্রত্যেকে অনন্য। প্রতিটি NFT এর আলাদা বৈশিষ্ট্য রয়েছে (নন-ফাঞ্জিবল) এবং সম্ভবত দুষ্প্রাপ্য। এটি ERC-20 এর মতো টোকেন থেকে ভিন্ন যেখানে একটি সেটের প্রতিটি টোকেন অভিন্ন এবং একই বৈশিষ্ট্য রয়েছে ('ফাঞ্জিবল')। আপনার ওয়ালেট এ কোন নির্দিষ্ট ডলারের বিল আছে তা নিয়ে আপনি ভাবেন না, কারণ সেগুলি সবই অভিন্ন এবং একই মূল্যের। যাইহোক, আপনি কোন নির্দিষ্ট NFT এর মালিক তা আপনি কেয়ার _করেন_, কারণ তাদের সকলেরই স্বতন্ত্র বৈশিষ্ট্য রয়েছে যা তাদের অন্যদের থেকে আলাদা করে ('নন-ফাঞ্জিবল')। - -প্রতিটি NFT এর স্বতন্ত্রতা শিল্প, সংগ্রহযোগ্য বা এমনকি আবাসন এর মতো জিনিসগুলির টোকেনাইজেশন সক্ষম করে, যেখানে একটি নির্দিষ্ট অনন্য NFT কিছু নির্দিষ্ট অনন্য বাস্তব জাগতিক বা ডিজিটাল আইটেমকে প্রতিনিধিত্ব করে। কোন সম্পদের মালিকানা ইথেরিয়াম ব্লকচেইন দ্বারা সুরক্ষিত – কেউ মালিকানার রেকর্ড পরিবর্তন করতে বা একটি নতুন NFT কে বিদ্যমান কোনটিতে কপি/পেস্ট করতে পারে না। - - - -## সম্পদ বণ্টনের ক্ষেত্রে ইন্টারনেটের ব্যবহার {#internet-of-assets} - -NFT এবং ইথেরিয়াম বর্তমানে ইন্টারনেটে বিদ্যমান কিছু সমস্যার সমাধান করে। যেহেতু সবকিছু আরও ডিজিটাল হয়ে উঠছে, তাই ঘাটতি, স্বতন্ত্রতা এবং মালিকানার প্রমাণের মতো ফিজিক্যাল আইটেমগুলির বৈশিষ্ট্যগুলিকে প্রতিলিপি করার প্রয়োজন রয়েছে। এমনভাবে যা একটি কেন্দ্রীয় সংস্থা দ্বারা নিয়ন্ত্রিত নয়। উদাহরণস্বরূপ, NFT-এর দ্বারা, আপনি একটি মিউজিক mp3 এর মালিক হতে পারেন যা একটি কোম্পানির নির্দিষ্ট মিউজিক অ্যাপের জন্য নির্দিষ্ট নয়, অথবা আপনি একটি সোশ্যাল মিডিয়া হ্যান্ডেলের মালিক হতে পারেন যা আপনি বিক্রি বা অদলবদল করতে পারেন, কিন্তু ইচ্ছাকৃতভাবে প্ল্যাটফর্ম প্রদানকারীর দ্বারা আপনার কাছ থেকে কেড়ে নেয়া যাবে না। - -আমাদের মধ্যে বেশিরভাগই বর্তমানে যে ইন্টারনেট ব্যবহার করে তার তুলনায় NFT-এর একটি ইন্টারনেট দেখতে কেমন তা এখানে... - -### একটি তুলনা {#nft-comparison} - -| একটি NFT ইন্টারনেট | আজকের ইন্টারনেট | -| ------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -| আপনি আপনার সম্পদের মালিক! শুধুমাত্র আপনি সেগুলো বিক্রি বা অদলবদল করতে পারেন। | আপনি কোনো প্রতিষ্ঠান থেকে একটি সম্পদ ভাড়া করেন। | -| NFT ডিজিটালভাবে অনন্য, দুটি NFT একই নয়। | কোনো এনটিটির একটি কপি প্রায়ই আসল থেকে আলাদা করা যায় না। | -| কোনো NFT এর মালিকানা যে কেউ যাচাই করার জন্য ব্লকচেইনে সংরক্ষণ করা হয়। | ডিজিটাল আইটেমগুলোর মালিকানা রেকর্ডসমূহ প্রতিষ্ঠান দ্বারা নিয়ন্ত্রিত সার্ভারগুলিতে সংরক্ষণ করা হয় – আপনাকে অবশ্যই তাদের কথা মানতে হবে। | -| NFT হল ইথেরিয়ামে স্মার্ট কন্ট্র্যাক্ট। এর মানে এগুলি সহজেই ইথেরিয়ামে অন্যান্য স্মার্ট কন্ট্র্যাক্ট এবং অ্যাপগুলিতে ব্যবহার করা যেতে পারে! | ডিজিটাল আইটেমগুলি সহ কোম্পানিগুলির সাধারণত তাদের নিজস্ব "ওয়াল্ড গার্ডেন" অবকাঠামো প্রয়োজন। | -| কন্টেন্ট নির্মাতারা তাদের কাজ যেকোনো জায়গায় বিক্রি করতে পারে এবং একটি বিশ্ব বাজারে অ্যাক্সেস করতে পারে। | নির্মাতারা তাদের ব্যবহার করা প্ল্যাটফর্মের অবকাঠামো ও বিতরণের উপর নির্ভর করে। এগুলি প্রায়ই ব্যবহারের শর্তাবলী এবং ভৌগলিক সীমাবদ্ধতার বিষয়। | -| NFT নির্মাতারা তাদের নিজস্ব কাজের উপর মালিকানার অধিকার রাখতে পারেন, এবং প্রোগ্রামের মুনাফা সরাসরি NFT কনট্র্যাক্টে নিতে পারেন। | প্ল্যাটফর্ম, যেমন মিউজিক স্ট্রিমিং পরিষেবা, বিক্রয় থেকে লাভের সিংহভাগ ধরে রাখে। | - -## NFT কিভাবে কাজ করে? {#how-nfts-work} - -ইথেরিয়াম-এ ইস্যু করা যেকোনো টোকেনের মতো, NFT গুলো একটি স্মার্ট কন্ট্র্যাক্টের মাধ্যমে ইস্যু করা হয়। স্মার্ট কন্ট্রাক্টটি বেশ কয়েকটি NFT স্ট্যান্ডার্ডের (সাধারণত ERC-721 বা ERC-1155) একটির সাথে সঙ্গতিপূর্ণ যা সংজ্ঞায়িত করে কনট্র্যাক্টের কী কী কাজ রয়েছে। কনট্র্যাক্ট NFT তৈরি ('মিন্ট') করতে পারে এবং সেগুলো একটি নির্দিষ্ট মালিককে বরাদ্দ করতে পারে। নির্দিষ্ট ঠিকানায় নির্দিষ্ট NFT ম্যাপ করে মালিকানা কনট্র্যাক্টে সংজ্ঞায়িত করা হয়। NFT তে একটি ID থাকে এবং সাধারণত এটির সাথে সম্পর্কিত মেটাডেটা থাকে যা নির্দিষ্ট টোকেনটিকে অনন্য করে তোলে। - -যখন কেউ একটি NFT তৈরি করে বা মিন্ট করে, তারা সত্যিই স্মার্ট কন্ট্র্যাক্টে একটি ফাংশন সম্পাদন করে যা তাদের ঠিকানায় একটি নির্দিষ্ট NFT বরাদ্দ করে। এই তথ্য কনট্র্যাক্টের স্টোরেজে সংরক্ষণ করা হয়, যা ব্লকচেইনের অংশ। কনট্র্যাক্টের নির্মাতা কনট্র্যাক্টে অতিরিক্ত লজিক লিখতে পারেন, উদাহরণস্বরূপ মোট সরবরাহ সীমিত করা বা প্রতিবার একটি টোকেন স্থানান্তর করার সময় নির্মাতাকে প্রদান করা রয়্যালটি সংজ্ঞায়িত করা। - -## NFT কেন ব্যবহার করা হয়? {#nft-use-cases} - -NFT অনেক কিছুর জন্য ব্যবহার করা হয়, যার মধ্যে রয়েছে: - -- প্রমাণ করে যে আপনি একটি ইভেন্টে অংশগ্রহণ করেছেন -- প্রত্যয়িত করুন যে আপনি একটি কোর্স সম্পন্ন করেছেন -- গেমের জন্য মালিকানাধীন আইটেম -- ডিজিটাল আর্ট -- বাস্তবিক-বিশ্বের সম্পদ টোকেনাইজিং -- আপনার অনলাইন পরিচয় প্রমাণ করা -- কনটেন্টে অ্যাক্সেস পাওয়া -- টিকেট কেনা -- বিকেন্দ্রীকৃত ইন্টারনেটের ডোমেইন নাম -- DeFi এ কোলেটারেল - -হতে পারে আপনি এমন একজন শিল্পী যিনি NFT ব্যবহার করে তাদের কাজ শেয়ার করতে চান, নিয়ন্ত্রণ না হারিয়ে এবং মধ্যস্থতাকারীদের কাছে আপনার লাভ উৎসর্গ না করে। আপনি একটি নতুন কনট্র্যাক্ট তৈরি করতে পারেন এবং NFT এর সংখ্যা, তাদের বৈশিষ্ট্য এবং কিছু নির্দিষ্ট শিল্পকর্মের লিঙ্ক উল্লেখ করতে পারেন। শিল্পী হিসাবে, আপনাকে যে রয়্যালটি দিতে হবে আপনি স্মার্ট কন্ট্র্যাক্টে প্রোগ্রাম করতে পারেন (যেমন প্রতিবার NFT স্থানান্তর করার সময় চুক্তির মালিককে বিক্রয় মূল্যের 5% হস্তান্তর করুন)। আপনি সর্বদা প্রমাণ করতে পারেন যে আপনি NFT তৈরি করেছেন কারণ আপনি সেই ওয়ালেটের মালিক যে কনট্র্যাক্টটি প্রসার করেছে। আপনার ক্রেতারা সহজেই প্রমাণ করতে পারে যে তারা আপনার সংগ্রহ থেকে একটি খাঁটি NFT এর মালিক, কারণ তাদের ওয়ালেট অ্যাড্রেস আপনার স্মার্ট কন্ট্র্যাক্টে একটি টোকেনের সাথে যুক্ত। তারা ইথেরিয়াম ইকোসিস্টেম জুড়ে এটি ব্যবহার করতে পারে, এর বিশুদ্ধতা সম্পর্কে আত্মবিশ্বাসী। - -অথবা একটি ক্রীড়া ইভেন্টের একটি টিকিট বিবেচনা করুন। ঠিক যেমন একটি ইভেন্টের একজন সংগঠক কতগুলি টিকিট বিক্রি করবেন তা পছন্দ করতে পারেন, তেমনি একটি NFT-এর নির্মাতা নির্ধারণ করতে পারেন কতগুলি প্রতিলিপি বিদ্যমান। কখনও কখনও এগুলি অবিকল প্রতিলিপি হয়, যেমন 5000 সাধারণ ভর্তির টিকিট। কখনও কখনও অনেকগুলি মিন্ট করা হয় যা খুব একই রকম, তবে প্রতিটি কিছুটা আলাদা, যেমন একটি নির্ধারিত আসন সহ একটি টিকিট। এগুলি টিকিট হ্যান্ডলারদের অর্থ প্রদান না করেই পিয়ার-টু-পিয়ার কেনা এবং বিক্রি করা যেতে পারে এবং কনট্র্যাক্টের অ্যাড্রেস চেক করে ক্রেতাকে টিকিটের বিশুদ্ধতার নিশ্চয়তা দেয়। - -ethereum.org-এ, NFT ব্যবহার করা হয় তা দেখানোর জন্য যে লোকেরা আমাদের Github রেপোজিটোরিতে অবদান রেখেছে বা কল এটেন্ড করেছে, এবং এমনকি আমরা আমাদের নিজস্ব NFT ডোমেইন নামও পেয়েছি। আপনি যদি ethereum.org-এ অবদান রাখেন, আপনি একটি POAP NFT দাবি করতে পারেন। কিছু ক্রিপ্টো মিটআপে টিকেট হিসাবে POAP ব্যবহার করা হয়েছে। [অবদান সম্পর্কে আরো](/contributing/#poap)। - -![ethereum.org POAP](./poap.png) - -এই ওয়েবসাইটের একটি বিকল্প ডোমেন নামও রয়েছে যা NFT দ্বারা চালিত হয়, **ethereum.eth**। আমাদের `.org` অ্যাড্রেস কেন্দ্রীয়ভাবে একটি ডোমেন নেইম সিস্টেম (DNS) প্রদানকারী দ্বারা পরিচালিত হয়, যেখানে ethereum`.eth` ইথেরিয়াম নেইম পরিষেবা (ENS) এর মাধ্যমে ইথেরিয়াম এ নিবন্ধিত হয়। এবং এটি মালিকানাধীন এবং আমাদের দ্বারা পরিচালিত। [আমাদের ENS রেকর্ড চেক করুন](https://app.ens.domains/name/ethereum.eth) - -[ENS সম্পর্কে আরো](https://app.ens.domains) - - - -### NFT নিরাপত্তা {#nft-security} - -ইথেরিয়াম এর নিরাপত্তা প্রুফ-অফ-স্টেক থেকে আসে। সিস্টেমটি অর্থনৈতিকভাবে দূষিত ক্রিয়াকলাপকে বিচ্ছিন্ন করার জন্য ডিজাইন করা হয়েছে, যা ইথেরিয়াম টেম্পার-প্রুফ করে। এটিই NFT কে সম্ভব করে তোলে। একবার আপনার NFT লেনদেন সম্বলিত ব্লকটি চূড়ান্ত হয়ে গেলে এটি পরিবর্তন করতে আক্রমণকারীকে লক্ষ লক্ষ ETH খরচ করতে হবে। ইথেরিয়াম সফ্টওয়্যার চালানো যে কেউ অবিলম্বে একটি NFT এর সাথে অসাধু কারসাজি শনাক্ত করতে সক্ষম হবে এবং ক্ষতিকর ব্যাক্তিকে অর্থনৈতিকভাবে শাস্তি দেওয়া হবে এবং বহিষ্কার করা হবে। - -NFT-এর সাথে সম্পর্কিত নিরাপত্তা সমস্যাগুলি প্রায়শই ফিশিং স্ক্যাম, স্মার্ট কন্ট্র্যাক্টের দুর্বলতা বা ব্যবহারকারীর ত্রুটিগুলির সাথে সম্পর্কিত (যেমন অসাবধানতাবশত ব্যক্তিগত কীগুলি প্রকাশ করা), যা NFT মালিকদের জন্য ভাল ওয়ালেটের নিরাপত্তাকে গুরুত্বপূর্ণ করে তোলে। - - - নিরাপত্তা সম্পর্কে আরো - - -## Further reading {#further-reading} - -- [NFT-এর জন্য একটি শিক্ষানবিস গাইড](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, জানুয়ারি 2020_ -- [EtherscanNFT ট্র্যাকার](https://etherscan.io/nft-top-contracts) -- [ERC-721 টোকেন স্ট্যান্ডার্ড](/developers/docs/standards/tokens/erc-721/) -- [ERC-1155 টোকেন স্ট্যান্ডার্ড](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/bn/refi/index.md b/src/content/translations/bn/refi/index.md deleted file mode 100644 index 7e561352898..00000000000 --- a/src/content/translations/bn/refi/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: রিজেনারেটিভ ফাইনান্স (ReFi) -description: ReFi এবং এর বর্তমান ব্যবহার ক্ষেত্রের একটি সংক্ষিপ্ত বিবরণী। -lang: bn -template: use-cases -emoji: ":recycle:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: পুনঃউৎপাদনমূলক নীতির উপর নির্মিত একটি বিকল্প অর্থনৈতিক ব্যবস্থা -summaryPoint2: জলবায়ু পরিবর্তনের মতো বিশ্ব-স্তরের সমন্বয় সংকট সমাধানের জন্য ইথেরিয়ামকে কাজে লাগানোর একটি প্রচেষ্টা -summaryPoint3: যাচাইকৃত কার্বন ক্রেডিটগুলির মতো পরিবেশগত সুবিধার সম্পদগুলিকে ব্যাপকভাবে স্কেল করার একটি টুল ---- - -## ReFi কি? {#what-is-refi} - -**রিজেনারেটিভ ফাইনান্স (ReFi)** হল ব্লকচেইনের উপরে তৈরি করা টুলস এবং আইডিয়ার একটি সেট, যেগুলির উদ্দেশ্য হল এমন অর্থনীতি তৈরি করা যা এক্সট্র্যাক্টিভ বা শোষণমূলক নয়। অবশেষে, নিষ্কাশন ব্যবস্থা উপলব্ধ সংস্থানগুলিকে হ্রাস করে এবং ধসে পড়ে; রিজেনারেটিভ প্রক্রিয়া ছাড়া, তাদের সহনশীলতা অভাব রয়েছে। ReFi এই অনুমানের উপর কাজ করে যে আর্থিক মূল্যের সৃষ্টি অবশ্যই আমাদের গ্রহ এবং সম্প্রদায় থেকে সম্পদের অস্থিতিশীল নিষ্কাশন থেকে বিচ্ছিন্ন করা উচিত। - -পরিবর্তে, ReFi এর লক্ষ্য পুনঃউৎপাদন চক্র তৈরি করে পরিবেশগত, সাম্প্রদায়িক বা সামাজিক সমস্যার সমাধান করা। এই সিস্টেমগুলি একই সাথে ইকোসিস্টেম এবং কমিউনিটিগুলিকে উপকৃত করার সময় অংশগ্রহণকারীদের জন্য মূল্য তৈরি করে। - -ReFi এর অন্যতম ভিত্তি হ'ল [ক্যাপিটাল ইনস্টিউটের](https://capitalinstitute.org) জন ফুলারটন প্রবর্তিত পুনঃউৎপাদনশীল অর্থনীতির ধারণা। তিনি আটটি আন্তঃসংযুক্ত নীতি প্রস্তাব করেছিলেন যা সিস্টেমিক স্বাস্থ্যের উপর ভিত্তি করে: - -![আটটি পরস্পর সংযুক্ত নীতি](../../assets/use-cases/refi-regenerative-economy-diagram.png) - -ReFi প্রকল্পগুলি [স্মার্ট কন্ট্রাক্ট](/developers/docs/smart-contracts/) এবং [বিকেন্দ্রীভূত অর্থায়ন (DeFi)](/defi/) অ্যাপ্লিকেশনগুলি ব্যবহার করে এই নীতিগুলি উপলব্ধি করে পুনরুৎপাদনমূলক আচরণগুলিকে উত্সাহিত করে, উদাহরণস্বরূপ অবনমিত ইকোসিস্টেম পুনরুদ্ধার এবং জলবায়ু পরিবর্তন এবং জীববৈচিত্র্য ক্ষতির মতো বৈশ্বিক ইস্যুতে বড় আকারের সহযোগিতাকে সহজতর করে। - -ReFi [বিকেন্দ্রীভূত বিজ্ঞান (DeSci)](/desci/) আন্দোলনের সাথেও ওভারল্যাপ করে, যা বৈজ্ঞানিক জ্ঞানকে অর্থায়ন, তৈরি, পর্যালোচনা, ক্রেডিট, সঞ্চয় এবং প্রচারের জন্য একটি প্ল্যাটফর্ম হিসাবে ইথেরিয়াম ব্যবহার করে। গাছ লাগানো, সমুদ্র থেকে প্লাস্টিক অপসারণ বা অবনমিত ইকোসিস্টেম পুনরুদ্ধারের মতো পুনরুত্পাদনমূলক ক্রিয়াকলাপগুলি বাস্তবায়ন এবং পর্যবেক্ষণের জন্য যাচাইযোগ্য মান এবং অনুশীলনগুলি বিকাশের জন্য DeSci টুলস কার্যকর হতে পারে। - -## কার্বন ক্রেডিটের টোকেনাইজেশন {#tokenization-of-carbon-credits} - -**[স্বেচ্ছাচালিত কার্বন বাজার (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** এমন প্রকল্পগুলির অর্থায়নের জন্য একটি প্রক্রিয়া যা কার্বন নিঃসরণের উপর যাচাইকৃত ইতিবাচক প্রভাব ফেলে, হয় চলমান নির্গমন হ্রাস করে বা বায়ুমণ্ডল থেকে ইতিমধ্যে নির্গত গ্রিনহাউস গ্যাসগুলি অপসারণ করে। এই প্রকল্পগুলি যাচাই করার পরে "কার্বন ক্রেডিট" নামে একটি সম্পদ পায়, যা তারা এমন ব্যক্তি এবং সংস্থার কাছে বিক্রি করতে পারে যারা জলবায়ু পদক্ষেপকে সমর্থন করতে চায়। - -VCM ছাড়াও, বেশ কয়েকটি সরকার-বাধ্যতামূলক কার্বন বাজার ('কমপ্লায়েন্স মার্কেট') রয়েছে যা একটি নির্দিষ্ট এখতিয়ারের (যেমন দেশ বা অঞ্চল) মধ্যে আইন বা প্রবিধানের মাধ্যমে কার্বনের মূল্য প্রতিষ্ঠার লক্ষ্য রাখে, বিতরণের অনুমতিসরবরাহ নিয়ন্ত্রণ করে। কমপ্লায়েন্স মার্কেটগুলি নির্গমন হ্রাস করার জন্য তাদের এখতিয়ারের মধ্যে দূষণকারীদের উত্সাহিত করে, তবে তারা ইতিমধ্যে নির্গত গ্রিনহাউস গ্যাসগুলি অপসারণ করতে সক্ষম নয়। - -সাম্প্রতিক দশকগুলিতে এর ডেভেলপমেন্ট সত্ত্বেও, VCM বিভিন্ন ইস্যুতে ভুগছে: - -1. অত্যন্ত বিভক্ত লিকুইডিটি -2. অস্বচ্ছ লেনদেন প্রক্রিয়া -3. উচ্চ ফি -4. খুব ধীর ট্রেডিং স্পিড -5. মাপযোগ্যতার অভাব - -VCM কে নতুন ব্লকচেইন-ভিত্তিক **ডিজিটাল কার্বন বাজারে (DCM)** রূপান্তর করা কার্বন ক্রেডিটগুলি যাচাই, লেনদেন এবং গ্রহণের জন্য বিদ্যমান প্রযুক্তিআপগ্রেড করার একটি সুযোগ হতে পারে। ব্লকচেইনগুলি সর্বজনীনভাবে যাচাইযোগ্য ডেটা, বিস্তৃত ব্যবহারকারীদের অ্যাক্সেস এবং আরও তরলতার অনুমতি দেয়। - -ReFi প্রকল্পগুলি প্রথাগত বাজারের অনেক গুলি সমস্যা হ্রাস করতে ব্লকচেইন প্রযুক্তি ব্যবহার করে: - -- **লিকুইডিটি অল্প সংখ্যক লিকুইডিটি পুলে কেন্দ্রীভূত হয়** যা যে কেউ অবাধে ট্রেড করতে পারে। বড় সংস্থাগুলির পাশাপাশি স্বতন্ত্র ব্যবহারকারীরা বিক্রেতা/ক্রেতাদের জন্য ম্যানুয়াল অনুসন্ধান, অংশগ্রহণ ফি বা পূর্ব নিবন্ধন ছাড়াই এই পুলগুলি ব্যবহার করতে পারেন। -- **সমস্ত লেনদেন পাবলিক ব্লকচেইনে রেকর্ড করা হয়**। ট্রেডিং ক্রিয়াকলাপের কারণে প্রতিটি কার্বন ক্রেডিট যে পথটি নেয় তা DCM-এ এভেইল্যাবল হওয়ার সাথে সাথে চিরতরে শনাক্ত করা যায়। -- **লেনদেনের গতি প্রায় তাৎক্ষণিক**। পূর্ববর্তী বাজারের মাধ্যমে প্রচুর পরিমাণে কার্বন ক্রেডিট সুরক্ষিত করতে কয়েক দিন বা সপ্তাহ সময় লাগতে পারে তবে এটি DCM-এ কয়েক সেকেন্ডের মধ্যে অর্জন করা যেতে পারে। -- **ব্যবসায়িক কার্যকলাপ মধ্যস্থতাকারীদের ছাড়াই ঘটে**, যা উচ্চ ফি চার্জ করে। একটি অ্যানালিটিক্স ফার্মের তথ্য অনুসারে, [ডিজিটাল কার্বন ক্রেডিটগুলি সমতুল্য প্রথাগত ক্রেডিটের তুলনায় 62% ব্যয়ের উন্নতি](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne) প্রতিনিধিত্ব করে। -- **DCM মাপযোগ্য** এবং একইভাবে ব্যক্তি এবং বহুজাতিক কর্পোরেশনের চাহিদা মেটাতে পারে। - -### DCM এর মূল উপাদান {#key-components-dcm} - -চারটি প্রধান উপাদান DCM এর বর্তমান ল্যান্ডস্কেপ তৈরি করে: - -1. রেজিস্ট্রিসমূহ যেমন [Verra](https://verra.org/project/vcs-program/registry-system/) এবং [গোল্ড স্ট্যান্ডার্ড](https://www.goldstandard.org/) নিশ্চিত করুন যে কার্বন ক্রেডিট তৈরি করা প্রকল্পগুলি নির্ভরযোগ্য। তারা ডাটাবেসগুলিও পরিচালনা করে যেখানে ডিজিটাল কার্বন ক্রেডিটগুলি উৎপন্ন হয় এবং স্থানান্তর বা ব্যবহার করা যেতে পারে (অবসরপ্রাপ্ত)। - -ব্লকচেইনগুলিতে উদ্ভাবনী প্রকল্পগুলির একটি নতুন তরঙ্গ তৈরি হচ্ছে যা এই সেক্টরে দায়িত্বশীলদের ব্যাহত করার চেষ্টা করে। - -2. কার্বন ব্রিজগুলো, a.k.a. টোকেনাইজার, প্রথাগত রেজিস্ট্রি থেকে DCM-এ কার্বন ক্রেডিট প্রতিনিধিত্ব বা স্থানান্তর করার প্রযুক্তি প্রদান করে। উল্লেখযোগ্য উদাহরণগুলির মধ্যে রয়েছে [Toucan প্রোটোকল](https://toucan.earth/), [C3](https://c3.app/), এবং [Moss.Earth](https://moss.earth/)। -3. ইন্টিগ্রেটেড পরিষেবাগুলি শেষ-ব্যবহারকারীদের কার্বন পরিহার এবং/অথবা অপসারণের ক্রেডিট অফার করে যাতে তারা একটি ঋণের পরিবেশগত সুবিধা দাবি করতে পারে এবং বিশ্বের সাথে জলবায়ু ক্রিয়াকলাপের তাদের সমর্থন ভাগ করে নিতে পারে। - -কিছু যেমন [Klima Infinity](https://www.klimadao.finance/infinity) এবং [Senken](https://senken.io/) একটি অফার তৃতীয় পক্ষ দ্বারা তৈরি এবং Verra মতো প্রতিষ্ঠিত মানদণ্ডের অধীনে জারি করা বিভিন্ন ধরণের প্রকল্প; অন্যরা যেমন [Nori](https://nori.com/) শুধুমাত্র তাদের নিজস্ব কার্বন ক্রেডিট স্ট্যান্ডার্ডের অধীনে তৈরি করা নির্দিষ্ট প্রকল্পগুলি অফার করে, যা তারা জারি করে এবং যার জন্য তাদের নিজস্ব ডেডিকেটেড মার্কেটপ্লেস রয়েছে। - -4. অন্তর্নিহিত রেল এবং অবকাঠামো যা কার্বন বাজারের সমগ্র সাপ্লাই চেইনের প্রভাব এবং কার্যকারিতা বাড়াতে সাহায্য করে। [KlimaDAO](http://klimadao.finance/) একটি পাবলিক গুড হিসাবে তারল্য সরবরাহ করে (কাউকে একটি স্বচ্ছ মূল্যে কার্বন ক্রেডিট ক্রয় বা বিক্রি করার অনুমতি দেয়), কার্বন বাজারের বর্ধিত থ্রুপুট এবং এর সাথে অবসর গ্রহণকে উৎসাহিত করে পুরষ্কার, এবং বিভিন্ন ধরণের টোকেনাইজড কার্বন ক্রেডিট সম্পর্কে ডেটা অ্যাক্সেস করার পাশাপাশি অর্জন এবং অবসর নেওয়ার জন্য ব্যবহারকারী-বান্ধব ইন্টারঅপারেবল টুলিং প্রদান করে। - -## কার্বন বাজারগুলোর বাইরে ReFi {#refi-beyond} - -যদিও বর্তমানে সাধারণভাবে কার্বন বাজারের উপর জোর দেওয়া হয়েছে এবং বিশেষ করে স্থানের মধ্যে VCM-কে DCM-এ রূপান্তরিত করা হচ্ছে, "ReFi" শব্দটি কঠোরভাবে কার্বনের মধ্যে সীমাবদ্ধ নয়। কার্বন ক্রেডিট ছাড়িয়ে অন্যান্য পরিবেশগত সম্পদ বিকাশ এবং টোকেনাইজ করা যেতে পারে, যার অর্থ ভবিষ্যতের অর্থনৈতিক ব্যবস্থার ভিত্তি স্তরের মধ্যে অন্যান্য নেতিবাচক বাহ্যিকতার মূল্য নির্ধারণ করা যেতে পারে। তাছাড়া, এই অর্থনৈতিক মডেলের পুনরুৎপাদনমূলক দিকটি অন্যান্য ক্ষেত্রে প্রয়োগ করা যেতে পারে, যেমন [Gitcoin](https://gitcoin.co/)-এর মত চতুর্মুখী তহবিল প্ল্যাটফর্মের মাধ্যমে পাবলিক পণ্যের অর্থায়ন। কমিউনিটিসমূহ যেগুলি উন্মুক্ত অংশগ্রহণ এবং সম্পদের ন্যায়সঙ্গত বন্টনের ধারণার উপর তৈরি করা হয় সেগুলি প্রত্যেককে ওপেন-সোর্স সফ্টওয়্যার প্রকল্পগুলির পাশাপাশি শিক্ষামূলক, পরিবেশগত এবং কমিউনিটি-চালিত প্রকল্পগুলিতে অর্থ সরবরাহ করার ক্ষমতা দেয়। - -ক্যাপিটালের অভিমুখ নিষ্কাশনমূলক চর্চার থেকে সরিয়ে একটি পুনরূত্পাদকশীল ফ্লোর দিকে চালিত করার মাধ্যমে সামাজিক, পরিবেশগত বা সাম্প্রদায়িক সুবিধা প্রদানকারী প্রজেক্ট এবং কোম্পানিগুলো—যারা গতানুগতিক অর্থনীতিতে ফান্ডিং সংগ্রহ করতে ব্যর্থ হতো—তারা খুব সহজেই তাদের কর্মকাণ্ড শুরু করতে পারবে এবং সমাজের জন্য আরও দ্রুত এবং সহজে ইতিবাচক ফলাফলা বয়ে আনতে পারবে। তহবিলের এই মডেলে রূপান্তর আরও অনেক বেশি অন্তর্ভুক্তিমূলক অর্থনৈতিক ব্যবস্থার দরজা খুলে দেয়, যেখানে সমস্ত জনসংখ্যার মানুষ নিছক প্যাসিভ পর্যবেক্ষক না হয়ে সক্রিয় অংশগ্রহণকারী হতে পারে। ReFi আমাদের প্রজাতি এবং আমাদের গ্রহের সমস্ত প্রাণের মুখোমুখি অস্তিত্বের চ্যালেঞ্জগুলির বিরুদ্ধে পদক্ষেপের সমন্বয় করার জন্য একটি প্রক্রিয়া হিসাবে ইথেরিয়ামের একটি দৃষ্টিভঙ্গি অফার করে—একটি নতুন অর্থনৈতিক দৃষ্টান্তের ভিত্তি স্তর হিসাবে, যা আগামী শতাব্দীর জন্য আরও অন্তর্ভুক্তিমূলক এবং টেকসই ভবিষ্যত সক্ষম করে। - -## ReFi সম্পর্কে আরও পড়ুন - -- [কার্বন মুদ্রার একটি উচ্চ-স্তরের সংক্ষিপ্ত বিবরণ এবং অর্থনীতিতে তাদের স্থান](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) -- [ভবিষ্যতের জন্য মন্ত্রণালয়, জলবায়ু পরিবর্তনের বিরুদ্ধে লড়াইয়ে কার্বন-সমর্থিত মুদ্রার ভূমিকা চিত্রিত একটি উপন্যাস](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) -- [স্বেচ্ছাসেবী কার্বন বাজারগুলোকে স্কেলিং করার জন্য টাস্কফোর্সের একটি বিশদ প্রতিবেদন](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) -- [কেভিন ওওকিএবংইভান মিয়াজোনোর ReFi-তে CoinMarketCap গ্লসারি এন্ট্রি](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/bn/smart-contracts/index.md b/src/content/translations/bn/smart-contracts/index.md deleted file mode 100644 index bdc9d197669..00000000000 --- a/src/content/translations/bn/smart-contracts/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: স্মার্ট কন্ট্র্যাক্ট -description: স্মার্ট কন্ট্র্যাক্টের একটি অ-প্রযুক্তিগত ভূমিকা -lang: bn ---- - -# Introduction to smart contracts {#introduction-to-smart-contracts} - -স্মার্ট কন্ট্র্যাক্ট হল ইথেরিয়াম এর অ্যাপ্লিকেশন স্তরের মৌলিক বিল্ডিং ব্লক। এগুলি ব্লকচেইনে সঞ্চিত কম্পিউটার প্রোগ্রাম যা "if this then that" যুক্তি অনুসরণ করে এবং এর কোড দ্বারা সংজ্ঞায়িত নিয়ম অনুসারে কার্যকর করার গ্যারান্টি দেওয়া হয়, যা একবার তৈরি হয়ে গেলে পরিবর্তন করা যায় না। - -Nick Szabo "স্মার্ট কন্ট্র্যাক্ট" শব্দটি তৈরি করেছিলেন। 1994 সালে, তিনি [ধারণাটির একটি ভূমিকা](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html) লিখেছিলেন এবং 1996 সালে তিনি [স্মার্ট কন্ট্রাক্টগুলি কী করতে পারে](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html) তার একটি অনুসন্ধান লিখেছিলেন। - -Szabo একটি ডিজিটাল মার্কেটপ্লেসের কল্পনা করেছে যেখানে স্বয়ংক্রিয়, ক্রিপ্টোগ্রাফিকভাবে-সুরক্ষিত প্রক্রিয়াগুলি বিশ্বস্ত মধ্যস্থতাকারী ছাড়াই লেনদেন এবং ব্যবসায়িক ফাংশনগুলি ঘটতে সক্ষম করে। ইথেরিয়ামে স্মার্ট কন্ট্র্যাক্টগুলি এই দৃষ্টিভঙ্গিকে অনুশীলন করে। - -### প্রচলিত কন্ট্রাক্ট গুলোয় আস্থা রাখুন {#trust-and-contracts} - -একটি প্রথাগত কন্ট্রাক্ট এর সাথে সবচেয়ে বড় সমস্যাগুলির মধ্যে একটি হল চুক্তির ফলাফলগুলি অনুসরণ করার জন্য বিশ্বস্ত ব্যক্তিদের প্রয়োজন। - -এখানে একটি উদাহরণ দেওয়া হল: - -অ্যালিস ও বব একটি সাইকেল রেস করছেন। ধরা যাক অ্যালিস ববের সাথে $10 বাজি ধরেছেন যে তিনি রেসটি জিতবেন। বব আত্মবিশ্বাসী যে তিনি বিজয়ী হবেন এবং বাজিতে সম্মত হন। শেষ পর্যন্ত, অ্যালিস ববের চেয়ে এগিয়ে দৌড় শেষ করে এবং স্পষ্ট বিজয়ী হয়। কিন্তু বব বাজির উপর অর্থ প্রদান করতে অস্বীকার করেন, দাবি করেন যে অ্যালিস অবশ্যই প্রতারণা করেছেন। - -এই নির্বোধ উদাহরণটি কোনও অ-স্মার্ট কন্ট্র্যাক্টের সাথে সমস্যাটি চিত্রিত করে। এমনকি যদি চুক্তির শর্তগুলি পূরণ হয় (অর্থাত্ আপনি দৌড়ের বিজয়ী), তবুও আপনাকে চুক্তিটি পূরণের জন্য অন্য ব্যক্তির উপরে বিশ্বাস করতে হবে (অর্থাৎ বাজিতে অর্থ প্রদান)। - -### A digital vending machine {#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/) - -## More of a visual learner? {#visual-learner} - -Finematics কে স্মার্ট চুক্তি ব্যাখ্যা করতে দেখুন: - - - -## Further reading {#further-reading} - -- [কিভাবে স্মার্ট কন্ট্রাক্ট পৃথিবী বদলে দেবে](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [স্মার্ট কনট্র্যাক্টস: ব্লকচেইন প্রযুক্তি যা আইনজীবীদের প্রতিস্থাপন করবে](https://blockgeeks.com/guides/smart-contracts/) -- [ডেভেলপারদের জন্য স্মার্ট কন্ট্র্যাক্ট](/developers/docs/smart-contracts/) -- [স্মার্ট-কন্ট্রাক্ট লিখতে শিখুন](/developers/learning-tools/) -- [মাস্টারিং ইথেরিয়াম - একটি স্মার্ট কন্ট্র্যাক্ট কি?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/src/content/translations/bn/social-networks/index.md b/src/content/translations/bn/social-networks/index.md deleted file mode 100644 index 61bbe0a1fa5..00000000000 --- a/src/content/translations/bn/social-networks/index.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: বিকেন্দ্রীভূত সামাজিক নেটওয়ার্ক -description: ইথেরিয়াম-এ বিকেন্দ্রীভূত সামাজিক নেটওয়ার্কগুলির একটি ওভারভিউ -lang: bn -template: use-cases -emoji: ":mega:" -sidebarDepth: 2 -image: ../../../../assets/ethereum-learn.png -summaryPoint1: সামাজিক মিথস্ক্রিয়া এবং কন্টেন্ট তৈরি এবং বিতরণের জন্য ব্লকচেইন-ভিত্তিক প্ল্যাটফর্ম। -summaryPoint2: বিকেন্দ্রীভূত সামাজিক মিডিয়া নেটওয়ার্কগুলি ব্যবহারকারীর গোপনীয়তা রক্ষা করে এবং ডেটা সুরক্ষা বাড়ায়। -summaryPoint3: টোকেন এবং NFT কনটেন্ট নগদীকরণের নতুন উপায় তৈরি করে। ---- - -সামাজিক নেটওয়ার্কগুলি আমাদের দৈনন্দিন যোগাযোগ এবং মিথস্ক্রিয়াতে একটি বিশাল ভূমিকা পালন করে। যাইহোক, এই প্ল্যাটফর্মগুলির কেন্দ্রীভূত নিয়ন্ত্রণ অনেক গুলি সমস্যা তৈরি করেছে: ডেটা লঙ্ঘন, সার্ভার বিভ্রাট, ডি-প্ল্যাটফর্মিং, সেন্সরশিপ এবং গোপনীয়তা লঙ্ঘন গুলি সোশ্যাল মিডিয়া প্রায়শই কিছু ট্রেড-অফ করে। এই সমস্যাগুলি মোকাবেলা করার জন্য, ডেভেলপাররা ইথেরিয়াম-এ সামাজিক নেটওয়ার্ক তৈরি করছে। বিকেন্দ্রীভূত সামাজিক নেটওয়ার্কগুলি ঐতিহ্যগত সামাজিক নেটওয়ার্কিং প্ল্যাটফর্মের অনেক সমস্যা সমাধান করতে পারে এবং ব্যবহারকারীদের সামগ্রিক অভিজ্ঞতা উন্নত করতে পারে। - -## বিকেন্দ্রীভূত সামাজিক নেটওয়ার্ক কি? {#what-are-decentralized-social-networks} - -বিকেন্দ্রীভূত সামাজিক নেটওয়ার্কগুলি হল ব্লকচেইন-ভিত্তিক প্ল্যাটফর্ম যা ব্যবহারকারীদের তথ্য বিনিময়ের পাশাপাশি শ্রোতাদের কাছে কনটেন্ট প্রকাশ ও বিতরণ করতে দেয়। যেহেতু এই অ্যাপ্লিকেশনগুলি ব্লকচেইনে চালিত হয়, তারা বিকেন্দ্রীভূত হতে সক্ষম এবং সেন্সরশিপ এবং অযাচিত নিয়ন্ত্রণের বিরুদ্ধে প্রতিরোধী। - -অনেক বিকেন্দ্রীভূত সামাজিক নেটওয়ার্ক প্রতিষ্ঠিত সামাজিক মিডিয়া পরিষেবার বিকল্প হিসাবে বিদ্যমান, যেমন Facebook, LinkedIn, Twitter, এবং Medium। কিন্তু ব্লকচেইন-চালিত সোশ্যাল নেটওয়ার্কের বেশ কিছু বৈশিষ্ট্য রয়েছে যা তাদের প্রথাগত সামাজিক প্ল্যাটফর্মের চেয়ে এগিয়ে রাখে। - -### বিকেন্দ্রীভূত সামাজিক নেটওয়ার্ক কিভাবে কাজ করে? {#decentralized-social-networks-overview} - -বিকেন্দ্রীভূত সামাজিক নেটওয়ার্ক হল [বিকেন্দ্রীভূত অ্যাপ্লিকেশনের (dapps)](/dapps/) একটি শ্রেণী—[স্মার্ট কন্ট্র্যাক্ট](/developers/docs/smart-contracts/) দ্বারা চালিত অ্যাপ্লিকেশন যেগুলো ব্লকচেইনে স্থাপন করা হয়েছে। কনট্র্যাক্ট কোড এই অ্যাপগুলির জন্য ব্যাকএন্ড হিসাবে কাজ করে এবং তাদের ব্যবসার যুক্তি সংজ্ঞায়িত করে। - -প্রথাগত সোশ্যাল মিডিয়া প্ল্যাটফর্মগুলি ব্যবহারকারীর তথ্য, প্রোগ্রাম কোড এবং অন্যান্য ধরণের ডেটা সঞ্চয় করার জন্য ডেটাবেসের উপর নির্ভর করে। কিন্তু এটি ব্যর্থতার একক পয়েন্ট তৈরি করে এবং উল্লেখযোগ্য ঝুঁকির পরিচয় দেয়। উদাহরণস্বরূপ, গত বছর ফেসবুকের সার্ভারগুলি [কয়েক ঘন্টার জন্য অফলাইন হয়ে যায়](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact), যার ফলে ব্যবহারকারীরা প্ল্যাটফর্ম থেকে বিচ্ছিন্ন হয়ে যায়। - -বিকেন্দ্রীভূত সামাজিক নেটওয়ার্কগুলি বিশ্বজুড়ে হাজার হাজার নোড নিয়ে গঠিত পিয়ার-টু-পিয়ার নেটওয়ার্কে বিদ্যমান। এমনকি যদি কিছু নোড ব্যর্থ হয় তবে নেটওয়ার্কটি নিরবচ্ছিন্নভাবে চলবে, অ্যাপ্লিকেশনগুলিকে ব্যর্থতা এবং বিভ্রাটের বিরুদ্ধে প্রতিরোধী করে তুলবে। - -[InterPlanetary File System (IPFS)](https://ipfs.io/)-এর মতো বিকেন্দ্রীভূত স্টোরেজ সিস্টেম ব্যবহার করে, ইথেরিয়ামে নির্মিত সামাজিক নেটওয়ার্কগুলি ব্যবহারকারীর তথ্য শোষণ এবং অপব্যবহার থেকে রক্ষা করতে পারে। কেউ আপনার ব্যক্তিগত তথ্য বিজ্ঞাপনদাতাদের কাছে বিক্রি করবে না, হ্যাকাররাও আপনার গোপনীয় তথ্য চুরি করতে পারবে না। - -অনেক ব্লকচেইন-ভিত্তিক সামাজিক প্ল্যাটফর্মের নেটিভ টোকেন রয়েছে যা বিজ্ঞাপনের আয়ের অভাবে নগদীকরণকে শক্তি দেয়। ব্যবহারকারীরা নির্দিষ্ট বৈশিষ্ট্যগুলি অ্যাক্সেস করতে, অ্যাপ-মধ্যস্থ কেনাকাটা সম্পূর্ণ করতে বা তাদের প্রিয় কনটেন্ট ক্রিয়েটরদের পরামর্শ দিতে এই টোকেনগুলি কিনতে পারেন। - -## বিকেন্দ্রীভূত সামাজিক নেটওয়ার্কের সুবিধা {#benefits} - -1. বিকেন্দ্রীভূত সামাজিক নেটওয়ার্কগুলি সেন্সরশিপ-প্রতিরোধী এবং সবার জন্য উন্মুক্ত। এর অর্থ ব্যবহারকারীদের নির্বিচারে নিষিদ্ধ, ডিপ্ল্যাটফর্ম বা সীমাবদ্ধ করা যাবে না। - -2. বিকেন্দ্রীকৃত সামাজিক নেটওয়ার্কগুলি ওপেন-সোর্স আদর্শের উপর নির্মিত হয় এবং পাবলিক পরিদর্শনের জন্য উপলব্ধ অ্যাপ্লিকেশনগুলির জন্য উত্স কোড তৈরি করে। প্রচলিত সামাজিক মিডিয়াতে প্রচলিত অস্বচ্ছ অ্যালগরিদমের বাস্তবায়ন দূর করে, ব্লকচেইন-ভিত্তিক সামাজিক নেটওয়ার্কগুলি ব্যবহারকারী এবং প্ল্যাটফর্ম নির্মাতাদের স্বার্থকে সারিবদ্ধ করতে পারে। - -3. বিকেন্দ্রীকৃত সামাজিক নেটওয়ার্কগুলি "মধ্য-মানুষ" কে নির্মূল করে। কনটেন্ট ক্রিয়েটরদের তাদের সামগ্রীর উপর সরাসরি মালিকানা রয়েছে এবং তারা অনুসরণকারী, ভক্ত, ক্রেতা এবং অন্যান্য পক্ষের সাথে সরাসরি জড়িত, এর মধ্যে একটি স্মার্ট কন্ট্র্যাক্ট ছাড়া আর কিছুই নেই। - -4. ইথেরিয়াম নেটওয়ার্কে চলমান dapps হিসাবে, যা নোডগুলির একটি বিশ্বব্যাপী, পিয়ার-টু-পিয়ার নেটওয়ার্ক দ্বারা টেকসই হয়, বিকেন্দ্রীকৃত সামাজিক নেটওয়ার্কগুলি সার্ভার ডাউনটাইম এবং আউটেজের জন্য কম সংবেদনশীল। - -5. বিকেন্দ্রীকৃত সামাজিক প্ল্যাটফর্মগুলি নন-ফাঙ্গিবল টোকেন (NFT), ইন-অ্যাপ ক্রিপ্টো পেমেন্ট এবং আরও অনেক কিছুর মাধ্যমে কনটেন্ট ক্রিয়েটরদের জন্য একটি উন্নত নগদীকরণ কাঠামো সরবরাহ করে। - -6. বিকেন্দ্রীকৃত সামাজিক নেটওয়ার্কগুলি ব্যবহারকারীদের উচ্চ স্তরের গোপনীয়তা এবং নামহীনতা প্রদান করে। উদাহরণস্বরূপ, কোনও ব্যক্তি ENS প্রোফাইল বা ওয়ালেট ব্যবহার করে ইথেরিয়াম-ভিত্তিক সামাজিক নেটওয়ার্কে সাইন ইন করতে পারেন—নাম, ইমেল ঠিকানা ইত্যাদির মতো ব্যক্তিগতভাবে সনাক্তযোগ্য তথ্য (PII) শেয়ার না করে। - -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)](/nft/) হিসাবে তৈরি করা যেতে পারে যা রাইটিং NFT নামে পরিচিত। লেখকরা রাইটিং NFT সম্পূর্ণ বিনামূল্যে তৈরু করতে পারবেন এবং ইথেরিয়াম L2-এ কালেকশন হয় — যা লেনদেনগুলিকে সাশ্রয়ী, দ্রুত এবং পরিবেশবান্ধব করে তোলে। - -### MINDS {#minds} - -[MINDS](https://www.minds.com/) সর্বাধিক ব্যবহৃত বিকেন্দ্রীভূত সামাজিক নেটওয়ার্কগুলির মধ্যে একটি। এটি Facebook-এর মতো কাজ করে এবং ইতিমধ্যে লক্ষ লক্ষ ব্যবহারকারীকে আকৃষ্ট করেছে। - -ব্যবহারকারীরা আইটেমগুলির জন্য অর্থ প্রদানের জন্য প্ল্যাটফর্মের নেটিভ ERC -20 টোকেন $MIND ব্যবহার করে। ব্যবহারকারীরা জনপ্রিয় সামগ্রী প্রকাশ করে, ইকোসিস্টেমে অবদান রেখে এবং প্ল্যাটফর্মে অন্যদের উল্লেখ করে $MIND টোকেন উপার্জন করতে পারেন। - -## ইথেরিয়াম-এ Web2 সামাজিক নেটওয়ার্ক {#web2-social-networks-and-ethereum} - -[Web3](/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)। আপনি [একচেটিয়া বিশেষ সুবিধা এবং বিশেষ সুবিধা পেতে](https://www.reddit.com/community-points/) একটি সাবরেডিটের মধ্যে এই টোকেনগুলি ভাঙ্গাতে পারেন। এই প্রকল্পের জন্য, Reddit Arbitrum-এর সাথে কাজ করছে, একটি [লেয়ার 2](/layer-2/) রোলআপ যা ইথেরিয়াম লেনদেন স্কেল করার জন্য ডিজাইন করা হয়েছে। - -এই প্রোগ্রামটি ইতিমধ্যেই লাইভ এবং r/CryptoCurrency [সাবরেডিট "মুনস" নামের এর কমিউনিটি পয়েন্টের ভার্সন রান করছে](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki)। অফিসিয়াল বিবরণ অনুসারে, মুনস "সাবরেডিতে অবদানের জন্য পোস্টার, মন্তব্যকারী এবং মডারেটরদের পুরস্কৃত করে।" যেহেতু এই টোকেনগুলি ব্লকচেইনে রয়েছে (ব্যবহারকারীরা এগুলি ওয়ালেটগুলিতে গ্রহণ করে), তারা Reddit থেকে স্বাধীন এবং এটি কেড়ে নেওয়া যায় না। - -Rinkeby টেস্টনেট-এ একটি বিটা পর্ব শেষ করার পর, Reddit কমিউনিটি পয়েন্টগুলি এখন [Arbitrum Nova](https://nova.arbitrum.io/)-এ রয়েছে, একটি ব্লকচেইন যা - - - - - - - -## কি বিবেচনা করতে হবে {#what-to-consider} - -পুল করা বা অর্পিত স্টেকিং স্থানীয়ভাবে ইথেরিয়াম প্রোটোকল দ্বারা সমর্থিত নয়, কিন্তু ব্যবহারকারীদের 32 ETH-এর কম স্টেকিং এর চাহিদার প্রেক্ষিতে এই চাহিদা পূরণের জন্য ক্রমবর্ধমান সংখ্যক সমাধান তৈরি করা হয়েছে। - -প্রতিটি পুল এবং তারা যে টুলস বা স্মার্ট কন্ট্র্যাক্ট ব্যবহার করে তা বিভিন্ন দল দ্বারা তৈরি করা হয়েছে এবং প্রতিটিতে সুবিধা এবং ঝুঁকি রয়েছে। পুল ব্যবহারকারীদের একটি টোকেনের জন্য তাদের ETH অদলবদল করতে সক্ষম করে যা স্টেকড ETH প্রতিনিধিত্ব করে। টোকেনটি উপযোগী কারণ এটি ব্যবহারকারীদের যেকোন পরিমাণ ETH-কে একটি ফলন-বহনকারী টোকেনের সমতুল্য পরিমাণে অদলবদল করতে দেয় যা বিকেন্দ্রীভূত এক্সচেঞ্জে অন্তর্নিহিত স্টেকড ETH (এবং এর বিপরীতে) প্রয়োগ করা স্টেকিং পুরস্কার থেকে একটি রিটার্ন জেনারেট করে যদিও প্রকৃত ETH কনসেনসাস লেয়ারে আটকে থাকে। এর অর্থ হল একটি ফলন-বহনকারী স্টেকড-ETH পণ্য থেকে অদলবদল করা এবং "অপরিশোধিত ETH" দ্রুত, সহজ এবং শুধুমাত্র 32 ETH-এর গুণে পাওয়া যায় না। - -যাইহোক, এই স্টেকড-ETH টোকেনগুলি কার্টেলের মতো আচরণ তৈরি করে যেখানে প্রচুর পরিমাণে স্টেকড ETH অনেক স্বাধীন ব্যক্তিদের মধ্যে ছড়িয়ে পড়ার পরিবর্তে কয়েকটি কেন্দ্রীভূত সংস্থার নিয়ন্ত্রণে শেষ হয়। এটি সেন্সরশিপ বা মান নিষ্কাশনের জন্য শর্ত তৈরি করে। স্টকিংয়ের জন্য স্বর্ণের মান সর্বদা এমন ব্যক্তিদের হওয়া উচিত যারা যখনই সম্ভব তাদের নিজস্ব হার্ডওয়্যারে যাচাইকারী চালাচ্ছেন। - -[টোকেন স্টেকিং এর ঝুঁকি সম্পর্কে আরও কিছু](https://notes.ethereum.org/@djrtwo/risks-of-lsd)। - -একটি তালিকাভুক্ত স্টেকিং পুলের উল্লেখযোগ্য শক্তি বা দুর্বলতা সংকেত দিতে নিচে অ্যাট্রিবিউট সূচক ব্যবহার করা হয়েছে। আপনি যোগদানের জন্য একটি পুল নির্বাচন করার সময় আমরা কীভাবে এই বৈশিষ্ট্যগুলিকে সংজ্ঞায়িত করি তার একটি রেফারেন্স হিসাবে এই বিভাগটি ব্যবহার করুন। - - - -## স্টেকিং পুলগুলি অন্বেষণ করুন {#explore-staking-pools} - -আপনার সেটআপে আপনাকে সাহায্য করার জন্য বিভিন্ন বিকল্প উপলব্ধ রয়েছে। নীচের টুলসের মাধ্যমে আপনাকে গাইড করতে সাহায্য করার জন্য উপরের সূচকগুলি ব্যবহার করুন। - - - - - -দয়া করে মনে রাখবেন এমন একটি পরিষেবা বেছে নেওয়ার গুরুত্ব যা [ক্লায়েন্ট বৈচিত্র্য](/developers/docs/nodes-and-clients/client-diversity/) কে গুরুত্ব সহকারে নেয়, কারণ এটি নেটওয়ার্কের নিরাপত্তা উন্নত করে এবং আপনার ঝুঁকি সীমিত করে। যে পরিষেবাগুলিতে সংখ্যাগরিষ্ঠ ক্লায়েন্টের ব্যবহার সীমিত করার প্রমাণ রয়েছে সেগুলি দিয়ে নির্দেশিত হয় "এক্সিকিউশন ক্লায়েন্ট বৈচিত্র্য" এবং "কনসেনসাস ক্লায়েন্ট বৈচিত্র্য।" - -আমরা মিস করেছি একটি স্টেকিংয়ের টুলস জন্য আপনার পরামর্শ আছে? আমাদের [পণ্য তালিকা নীতি](/contributing/adding-staking-products/) দেখুন এটি উপযুক্ত কিনা তা দেখতে এবং পর্যালোচনার জন্য জমা দিতে। - -## Frequently asked questions {#faq} - - -সাধারণত ERC-20 স্টেকিং টোকেনগুলি স্টেকারদের জন্য জারি করা হয় যা তাদের স্টেক করা ETH প্লাস পুরস্কারের মূল্যকে প্রতিনিধিত্ব করে। মনে রাখবেন যে বিভিন্ন পুল তাদের ব্যবহারকারীদের কাছে সামান্য ভিন্ন পদ্ধতির মাধ্যমে স্টেকিং পুরস্কার বিতরণ করবে, তবে এটি সাধারণ থিম। - - - -এই মুহূর্তে! Shanghai/Capella নেটওয়ার্ক আপগ্রেড এপ্রিল 2023 এ হয়েছিল, এবং স্টেকিং উত্তোলন চালু করেছিল। ভ্যালিডেটর অ্যাকাউন্টগুলি যে ব্যাক স্টেকিং পুলগুলি এখন তাদের মনোনীত প্রত্যাহারের ঠিকানায় ETH থেকে প্রস্থান করার এবং প্রত্যাহার করার ক্ষমতা রাখে। এটি অন্তর্নিহিত ETH-এর জন্য আপনার অংশের অংশ ভাঙানোর ক্ষমতা সক্ষম করে। তারা কিভাবে এই কার্যকারিতা সমর্থন করে তা দেখতে আপনার প্রদানকারীর সাথে যোগাযোগ করুন। - -বিকল্পভাবে, যে পুলগুলি একটি ERC-20 স্টেকিং টোকেন ব্যবহার করে সেগুলি ব্যবহারকারীদের এই টোকেনটি খোলা বাজারে ট্রেড করার অনুমতি দেয়, আপনাকে আপনার স্টেকিং পজিশন বিক্রি করতে দেয়, কার্যকরভাবে ETH কে স্টেকিং চুক্তি থেকে সরিয়ে না দিয়েই "প্রত্যাহার" করে। - -স্টেকিং প্রত্যাহার এর উপর আরো - - - -এই পুলড স্টেকিং অপশন এবং কেন্দ্রীভূত এক্সচেঞ্জের মধ্যে অনেক মিল রয়েছে, যেমন অল্প পরিমাণ ETH স্টক করার ক্ষমতা এবং যাচাইকারীদের সক্রিয় করার জন্য সেগুলিকে একত্রিত করা। - -সেন্ট্রালাইজড এক্সচেঞ্জের বিপরীতে, অনেক অন্যান্য পুলড স্টেকিং অপশন স্মার্ট কন্ট্রাক্ট এবং/অথবা স্টেকিং টোকেন ব্যবহার করে, যা সাধারণত ERC-20 টোকেন যা আপনার নিজের ওয়ালেটে রাখা যায় এবং অন্য টোকেনের মতোই কেনা বা বিক্রি করা যায়। এটি আপনাকে আপনার টোকেনগুলির উপর নিয়ন্ত্রণ করার ক্ষমতা প্রদান করে সার্বভৌমত্ব এবং নিরাপত্তার একটি লেয়ার অফার করে, কিন্তু তারপরও ব্যাকগ্রাউন্ডে আপনাকে আপনার পক্ষের সত্যায়িতকারী ক্লায়েন্টের উপর সরাসরি নিয়ন্ত্রণ দেয় না। - -কিছু পুলিং অপশন অন্যদের তুলনায় বেশি বিকেন্দ্রীকৃত হয় যখন এটি নোডগুলির জন্য আসে যা তাদের ব্যাক করে। নেটওয়ার্কের স্বাস্থ্য এবং বিকেন্দ্রীকরণকে উন্নীত করার জন্য, স্টেকারদের সর্বদা একটি পুলিং পরিষেবা নির্বাচন করতে উত্সাহিত করা হয় যা নোড অপারেটরদের একটি অনুমতিহীন বিকেন্দ্রীকৃত সেট সক্ষম করে। - - -## Further reading {#further-reading} - -- [Rocket Pool দ্বারা স্টেকিং - স্টেকিং ওভারভিউ](https://docs.rocketpool.net/guides/staking/overview.html) - _RocketPool docs_ -- [লিডোর সাথে ইথেরিয়াম স্টেকিং](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _লিডো হেল্প ডকস_ diff --git a/src/content/translations/bn/staking/saas/index.md b/src/content/translations/bn/staking/saas/index.md deleted file mode 100644 index 63edbb4cb15..00000000000 --- a/src/content/translations/bn/staking/saas/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: একটি সেবা হিসাবে স্টেকিং -description: পুল করা দিয়ে কীভাবে ETH স্টেকিং শুরু করবেন তার একটি ওভারভিউ -lang: bn -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-saas.png -alt: Leslie the rhino মেঘের মধ্যে ভাসছে। -sidebarDepth: 2 -summaryPoints: - - থার্ড-পার্টি নোড অপারেটররা আপনার ভ্যালিডেটর ক্লায়েন্টের অপারেশন পরিচালনা করে - - 32 ETH সহ যে কেউ নোড চালানোর প্রযুক্তিগত জটিলতার সাথে কাজ করতে স্বাচ্ছন্দ্য বোধ করেন না তাদের জন্য দুর্দান্ত বিকল্প - - অপরকে বিশ্বাস করবেন না, এবং আপনার প্রত্যাহার কীগুলির হেফাজত বজায় রাখুন ---- - -## একটি সেবা হিসাবে স্টেকিং কি? {#what-is-staking-as-a-service} - -একটি পরিষেবা হিসাবে স্টেকিং ("SaaS") স্টেকিং পরিষেবাগুলির একটি বিভাগকে প্রতিনিধিত্ব করে যেখানে আপনি একটি বৈধকারীর জন্য আপনার নিজস্ব 32 ETH জমা করেন, তবে একটি তৃতীয় পক্ষের অপারেটরকে নোড অপারেশন অর্পণ করেন। এই প্রক্রিয়াটি সাধারণত কী জেনারেশন এবং ডিপোজিট সহ প্রাথমিক সেটআপের মাধ্যমে পরিচালিত হয়, তারপরে অপারেটরের কাছে আপনার সাইনিং কীগুলি আপলোড করে। এটি পরিষেবাটিকে আপনার পক্ষে আপনার বৈধতাকে পরিচালনা করার অনুমতি দেয়, সাধারণত একটি মাসিক ফি দিয়ে। - -## একটি পরিষেবার মাধ্যমে কেন স্টেক করবেন? {#why-stake-with-a-service} - -ইথেরিয়াম প্রোটোকল স্থানীয়ভাবে অংশীদারিত্বের প্রতিনিধিকে সমর্থন করে না, তাই এই চাহিদা পূরণের জন্য এই পরিষেবাগুলি তৈরি করা হয়েছে। যদি আপনার কাছে 32 ETH থাকে, কিন্তু আপনি হার্ডওয়্যার নিয়ে কাজ করতে স্বাচ্ছন্দ্য বোধ করেন না, তবে SaaS পরিষেবাগুলি আপনাকে হার্ড অংশ অর্পণ করার অনুমতি দেয় যখন আপনি স্থানীয় ব্লক পুরস্কার অর্জন করেন। - - - - - - - - - -## কি বিবেচনা করতে হবে {#what-to-consider} - -আপনার ETH স্টেক করতে আপনাকে সাহায্য করার জন্য SaaS প্রদানকারীর সংখ্যা ক্রমবর্ধমান, কিন্তু তাদের সকলের নিজস্ব সুবিধা এবং ঝুঁকি রয়েছে। সমস্ত SaaS বিকল্পের জন্য হোম-স্টেকিংয়ের তুলনায় অতিরিক্ত বিশ্বাসের অনুমান প্রয়োজন। Saas বিকল্পগুলিতে ইথেরিয়াম ক্লায়েন্টদের মোড়ানো অতিরিক্ত কোড থাকতে পারে যা খোলা বা নিরীক্ষণযোগ্য নয়। SaaS নেটওয়ার্ক বিকেন্দ্রীকরণের উপরও ক্ষতিকর প্রভাব ফেলে। সেটআপের উপর নির্ভর করে, আপনি আপনার যাচাইকারীকে নিয়ন্ত্রণ করতে পারবেন না - অপারেটর আপনার ETH ব্যবহার করে অসৎ আচরণ করতে পারে। - -একটি তালিকাভুক্ত SaaS প্রদানকারীর হতে পারে এমন উল্লেখযোগ্য শক্তি বা দুর্বলতা নির্দেশ করতে অ্যাট্রিবিউট ইন্ডিকেটর নিচে ব্যবহার করা হয়েছে। আপনি যখন আপনার স্টেকিং যাত্রায় সহায়তা করার জন্য একটি পরিষেবা বেছে নিচ্ছেন তখন আমরা কীভাবে এই বৈশিষ্ট্যগুলিকে সংজ্ঞায়িত করি তার একটি রেফারেন্স হিসাবে এই বিভাগটি ব্যবহার করুন। - - - -## স্টেকিং পরিষেবা প্রদানকারীদের অন্বেষণ করুন {#saas-providers} - -নীচে কিছু এভেইল্যাবল SaaS প্রদানকারী আছে। এই পরিষেবাগুলির মাধ্যমে আপনাকে গাইড করতে সাহায্য করার জন্য উপরের সূচকগুলি ব্যবহার করুন - - - -#### SaaS প্রদানকারী সমূহ - - - -[ক্লায়েন্ট বৈচিত্র্য](/developers/docs/nodes-and-clients/client-diversity/) সমর্থন করার গুরুত্ব অনুগ্রহ করে মনে রাখবেন কারণ এটি নেটওয়ার্কের নিরাপত্তা উন্নত করে এবং আপনার ঝুঁকি সীমিত করে। যে পরিষেবাগুলিতে সংখ্যাগরিষ্ঠ ক্লায়েন্টের ব্যবহার সীমিত করার প্রমাণ রয়েছে সেগুলি দিয়ে নির্দেশিত হয় "এক্সিকিউশন ক্লায়েন্ট বৈচিত্র্য" এবং "কনসেনসাস ক্লায়েন্ট বৈচিত্র্য।" - -#### কী জেনারেটর সমূহ - - - -আমরা মিস করেছি এমন কোন স্টেকিং-অ্যাস-এ-সার্ভিস সরবরাহকারীর পরামর্শ আছে? আমাদের [পণ্য তালিকা নীতি](/contributing/adding-staking-products/) দেখুন এটি উপযুক্ত কিনা তা দেখতে এবং পর্যালোচনার জন্য জমা দিতে। - -## Frequently asked questions {#faq} - - -ব্যবস্থাগুলি প্রদানকারী থেকে প্রদানকারীর থেকে পৃথক হবে, তবে সাধারণত আপনাকে আপনার প্রয়োজনীয় যেকোন সাইনিং কী সেট আপ করার মাধ্যমে নির্দেশিত হবে (প্রতি 32 ETH-এ একটি), এবং আপনার পক্ষ থেকে তাদের যাচাই করার অনুমতি দেওয়ার জন্য সেগুলি আপনার প্রদানকারীর কাছে আপলোড করার মাধ্যমে। স্বাক্ষরকারী কীগুলি একা আপনার তহবিল প্রত্যাহার, স্থানান্তর বা ব্যয় করার কোনও ক্ষমতা দেয় না। যাইহোক, তারা ঐকমত্যের দিকে ভোট দেওয়ার ক্ষমতা প্রদান করে, যা সঠিকভাবে না করা হলে অফলাইন জরিমানা বা কমানো হতে পারে। - - - -হ্যাঁ। প্রতিটি অ্যাকাউন্টে উভয় BLS সাইনিং কী এবং BLS প্রত্যাহার কী রয়েছে। চেইনের অবস্থা প্রমাণ করার জন্য একজন যাচাইকারীর জন্য, সিঙ্ক কমিটিতে অংশগ্রহণ করতে এবং ব্লক প্রস্তাব করার জন্য, সাইনিং কীগুলি অবশ্যই একজন যাচাইকারী ক্লায়েন্টের দ্বারা সহজেই অ্যাক্সেসযোগ্য হতে হবে। এগুলিকে অবশ্যই কোনো না কোনো আকারে ইন্টারনেটের সাথে সংযুক্ত থাকতে হবে এবং এইভাবে এগুলোকে "হট" কী হিসেবে বিবেচনা করা হয়। এটি আপনার যাচাইকারীর জন্য একটি প্রয়োজনীয়তা যা সত্যায়িত করতে সক্ষম হবেন এবং এইভাবে তহবিল স্থানান্তর বা উত্তোলনের জন্য ব্যবহৃত কীগুলি নিরাপত্তার কারণে আলাদা করা হয়। - -BLS প্রত্যাহার কীগুলি একটি এককালীন বার্তা স্বাক্ষর করতে ব্যবহার করা হয় যা ঘোষণা করে যে কোন এক্সিকিউশন লেয়ার অ্যাকাউন্ট স্টেকিং রিওয়ার্ড এবং প্রস্থান করা তহবিলগুলি যেতে হবে। একবার এই বার্তাটি সম্প্রচার করা হলে, BLS প্রত্যাহার কীগুলির আর প্রয়োজন নেই। পরিবর্তে, উত্তোলিত তহবিলের উপর নিয়ন্ত্রণ স্থায়ীভাবে আপনার দেওয়া ঠিকানায় অর্পণ করা হয়। এটি আপনাকে আপনার নিজের কোল্ড স্টোরেজের মাধ্যমে সুরক্ষিত একটি উত্তোলনের ঠিকানা সেট করতে দেয়, আপনার যাচাইকারী তহবিলের ঝুঁকি কমিয়ে দেয়, এমনকি যদি অন্য কেউ আপনার ভ্যালিডেটর সাইনিং কীগুলি নিয়ন্ত্রণ করে। - -প্রত্যাহার শংসাপত্রগুলি আপডেট করা প্রত্যাহার সক্ষম করার জন্য একটি প্রয়োজনীয় পদক্ষেপ\*। এই প্রক্রিয়াটি আপনার স্মৃতিবিজড়িত সীড বাক্যাংশ ব্যবহার করে প্রত্যাহার কী তৈরি করা সাথে জড়িত। - -নিশ্চিত করুন যে আপনি এই সীড বাক্যাংশটি নিরাপদে ব্যাক আপ করেছেন বা সময় এলে আপনি আপনার উইথড্র কী তৈরি করতে পারবেন না। - -প্রাথমিক আমানত সহ একটি উত্তোলনের ঠিকানা প্রদানকারী স্টেকারদের এটি সেট করার প্রয়োজন নেই। আপনার যাচাইকারীকে কীভাবে প্রস্তুত করবেন সেই বিষয়ে সহায়তার জন্য আপনার SaaS প্রদানকারীর সাথে যোগাযোগ করুন। - - - -2023 সালের এপ্রিলে Shanghai/Capella আপগ্রেডে স্টেকিং প্রত্যাহার কার্যকর করা হয়েছিল। স্টেকারদের একটি প্রত্যাহার ঠিকানা প্রদান করতে হবে (প্রাথমিক আমানতের ক্ষেত্রে প্রদান করা না হলে), এবং পুরস্কার প্রদানগুলি প্রতি কয়েক দিনে পর্যায়ক্রমিক ভিত্তিতে স্বয়ংক্রিয়ভাবে বিতরণ করা শুরু হবে। - -বৈধকারীরাও সম্পূর্ণরূপে বৈধকারী হিসাবে প্রস্থান করতে পারেন, যা তাদের অবশিষ্ট ETH ব্যালেন্সকে তুলে আনবে। যে অ্যাকাউন্টগুলি একটি এক্সিকিউশন প্রত্যাহার ঠিকানা প্রদান করেছে এবং প্রস্থান প্রক্রিয়া সম্পন্ন করেছে তারা পরবর্তী বৈধতা প্রদানকারীর সময় প্রদত্ত প্রত্যাহার ঠিকানায় তাদের সম্পূর্ণ ব্যালেন্স পাবে। - -স্টেকিং প্রত্যাহার এর উপর আরো - - - -একটি SaaS সরবরাহকারী ব্যবহার করে, আপনি আপনার নোডের অপারেশন অন্য কারও কাছে হস্তান্তর করছেন। এটি দুর্বল নোড পারফরম্যান্সের ঝুঁকি নিয়ে আসে, যা আপনার নিয়ন্ত্রণে নেই। যদি আপনার বৈধতা হ্রাস করা হয় তবে আপনার বৈধতা ব্যালেন্সটি জরিমানা করা হবে এবং বৈধতা পুল থেকে জোর করে সরানো হবে। - -স্ল্যাশিং/প্রস্থান প্রক্রিয়া শেষ হওয়ার পরে, এই তহবিলগুলি যাচাইকারীকে নির্ধারিত প্রত্যাহার ঠিকানায় স্থানান্তর করা হবে। এটি সক্ষম করার জন্য একটি উইথড্রয়াল এড্রেস প্রদান করা প্রয়োজন। এটি প্রাথমিক আমানত প্রদান করা হতে পারে। যদি তা না হয়, তাহলে প্রত্যাহারের ঠিকানা ঘোষণা করে একটি বার্তা স্বাক্ষর করার জন্য যাচাইকারী প্রত্যাহার কী ব্যবহার করতে হবে। যদি কোন উইথড্রয়াল এড্রেস প্রদান করা না হয়, তহবিল প্রদান না হওয়া পর্যন্ত লক থাকবে। - -যেকোনো গ্যারান্টি বা বীমা বিকল্প সম্পর্কে আরও বিশদ বিবরণের জন্য এবং কীভাবে প্রত্যাহারের ঠিকানা প্রদান করতে হয় তার নির্দেশাবলীর জন্য পৃথক SaaS প্রদানকারীর সাথে যোগাযোগ করুন। আপনি যদি আপনার ভ্যালিডেটর সেটআপের সম্পূর্ণ নিয়ন্ত্রণে থাকতে চান, তাহলে কীভাবে আপনার ETH এককভাবে দখল করবেন সে সম্পর্কে আরও জানুন। - - -## Further reading {#further-reading} - -- [স্টেকিং পরিষেবার মূল্যায়ন](https://www.attestant.io/posts/evaluating-staking-services/) - _Jim McDonald 2020_ diff --git a/src/content/translations/bn/staking/solo/index.md b/src/content/translations/bn/staking/solo/index.md deleted file mode 100644 index e3c8d93dca1..00000000000 --- a/src/content/translations/bn/staking/solo/index.md +++ /dev/null @@ -1,203 +0,0 @@ ---- -title: আপনার ETH দিয়ে স্বতন্ত্র স্টেক করুন -description: আপনার স্বতন্ত্র ETH স্টেকিং কিভাবে শুরু করবেন তার একটি ওভারভিউ -lang: bn -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-solo.png -alt: Leslie the rhino তার নিজের কম্পিউটার চিপে। -sidebarDepth: 2 -summaryPoints: - - আপনার যাচাইকারীকে সঠিকভাবে কাজ করে এবং অনলাইনে রাখার জন্য প্রোটোকল থেকে সরাসরি সর্বাধিক পুরষ্কার পান - - হোম হার্ডওয়্যার চালান এবং ব্যক্তিগতভাবে ইথেরিয়াম নেটওয়ার্কের নিরাপত্তা এবং বিকেন্দ্রীকরণ যোগ করুন - - কাউকে বিশ্বাস করবেন না, এবং আপনার তহবিলের চাবিগুলির নিয়ন্ত্রণ কখনই ছেড়ে দেবেন না ---- - -## সলো স্টেকিং কি? {#what-is-solo-staking} - -সোলো স্টেকিং হল ইন্টারনেটের সাথে সংযুক্ত [একটি ইথেরিয়াম নোড চালানো](/run-a-node/) এবং একটি [বৈধকারী](#faq) সক্রিয় করার জন্য 32 ETH জমা করার কাজ, যা আপনাকে নেটওয়ার্ক সম্মতিতে সরাসরি অংশগ্রহণ করার ক্ষমতা দেয়। - -**সলো স্টেকিং ইথেরিয়াম নেটওয়ার্কের বিকেন্দ্রীকরণ বাড়ায়**, ইথেরিয়ামকে আরো সেন্সরশিপ-প্রতিরোধী এবং আক্রমণের বিরুদ্ধে শক্তিশালী করে তোলে। অন্যান্য স্টেকিং পদ্ধতিগুলি একই ভাবে নেটওয়ার্ককে সাহায্য করতে পারে না। ইথেরিয়াম সুরক্ষিত করার জন্য সোলো স্টেকিং হল সেরা স্টেকিং বিকল্প। - -একটি ইথেরিয়াম নোড উভয়ই একটি এক্সিকিউশন লেয়ার (EL) ক্লায়েন্ট, সেইসাথে একটি কনসেনসাস লেয়ার (CL) ক্লায়েন্ট নিয়ে গঠিত। এই ক্লায়েন্টগুলি হল সফ্টওয়্যার যেগুলি সাইনিং কীগুলির একটি বৈধ সেট সহ, লেনদেন এবং ব্লকগুলি যাচাই করার জন্য, চেইনের সঠিক প্রধানকে সত্যায়িত করতে, সমষ্টিগত প্রত্যয়নগুলি এবং ব্লকগুলি প্রস্তাব করার জন্য একসাথে কাজ করে। - -সোলো স্টেকাররা এই ক্লায়েন্টদের চালানোর জন্য প্রয়োজনীয় হার্ডওয়্যার পরিচালনার জন্য দায়ী। এটির জন্য একটি ডেডিকেটেড মেশিন ব্যবহার করার পরামর্শ দেওয়া হয় যা আপনি বাড়ি থেকে পরিচালনা করেন-এটি নেটওয়ার্কের স্বাস্থ্যের জন্য অত্যন্ত উপকারী। - -একজন একক স্টেকার তাদের যাচাইকারীকে সঠিকভাবে কাজ করে এবং অনলাইনে রাখার জন্য প্রোটোকল থেকে সরাসরি পুরষ্কার পায়। - -## কেন একা স্টেক করবেন? {#why-stake-solo} - -সোলো স্টেকিং আরও দায়িত্ব নিয়ে আসে কিন্তু আপনাকে আপনার তহবিল এবং স্টেকিং সেটআপের উপর সর্বাধিক নিয়ন্ত্রণ প্রদান করে। - - - - - - - -## সোলো স্টেকিং এর আগে যা যা বিবেচনা করা উচিত {#considerations-before-staking-solo} - -আমরা যতই আশা করি যে সোলো স্টেকিং সবার জন্য অ্যাক্সেসযোগ্য এবং ঝুঁকিমুক্ত হবে, আসলে সেটা হয়না। আপনার ETH সোলো স্টেক করার আগে কিছু ব্যবহারিক এবং গুরুতর বিষয় মাথায় রাখতে হবে। - - - -আপনার নিজের নোড পরিচালনা করার সময় আপনার বেছে নেওয়া সফ্টওয়্যারটি কীভাবে ব্যবহার করবেন তা শিখতে কিছু সময় ব্যয় করা উচিত। এর মধ্যে প্রাসঙ্গিক নথিপত্র পড়া এবং সেই ডেভেলপার টিমের যোগাযোগের চ্যানেলগুলির সাথে মানিয়ে নেওয়া জড়িত। - -আপনি যে সফ্টওয়্যারটি চালাচ্ছেন এবং কীভাবে প্রুফ-অফ-স্টেক কাজ করে সে সম্পর্কে আপনি যত বেশি বুঝবেন, স্টেকার হিসাবে আপনার জন্য ঝুঁকি ততটা কম হবে এবং নোড অপারেটর হিসাবে যে কোনও সমস্যার সম্মুখীন হলে সেটা সমাধান করা ততটাই সহজ হবে। - - - -কম্পিউটারের মাধ্যমে কাজ করার সময় নোড সেটআপের জন্য আপনাকে কিছু কাজ করতে হবে, যদিও নতুন টুলস সময়ের সাথে সাথে কাজ আরও সহজ করে তুলছে। কমান্ড-লাইন ইন্টারফেস বোঝা সহায়ক, কিন্তু এখন এটা আর একদমই আবশ্যিক না। - -এটির জন্য খুব প্রাথমিক হার্ডওয়্যার সেটআপ করা এবং ন্যূনতম সুপারিশকৃত স্পেসিফিকেশন বোঝা প্রয়োজন। - - - -ঠিক যেমন ব্যক্তিগত কীগুলি আপনার ইথেরিয়াম ঠিকানাকে সুরক্ষিত করে, আপনাকে বিশেষভাবে আপনার ভ্যালিডেটরের জন্য কীগুলি তৈরি করতে হবে। আপনাকে অবশ্যই বুঝতে হবে যে কোন সীড ফ্রেজ বা ব্যক্তিগত কীগুলিকে কীভাবে নিরাপদ ও সুরক্ষিত রাখতে হয়।{' '} - -ইথেরিয়াম নিরাপত্তা এবং স্ক্যাম প্রতিরোধ - - - -হার্ডওয়্যার মাঝে মাঝে ব্যর্থ হতে পারে, নেটওয়ার্ক সংযোগ ত্রুটি হয় এবং ক্লায়েন্ট সফ্টওয়্যার মাঝে মাঝে আপগ্রেড করার প্রয়োজন হয়। নোড রক্ষণাবেক্ষণ অনিবার্য এবং মাঝে মাঝে এ বিষয়ে আপনাকে মনোযোগ দিতে হবে। আপনাকে যেকোন প্রত্যাশিত নেটওয়ার্ক আপগ্রেড বা অন্যান্য গুরুত্বপূর্ণ ক্লায়েন্ট আপগ্রেড সম্পর্কে সচেতন থাকতে হবে। - - - -আপনার পুরষ্কারগুলি আপনার ভ্যালিডেটর অনলাইনে থাকা এবং সঠিকভাবে সত্যায়িত করার সময়ের সমানুপাতিক। ডাউনটাইমের শাস্তির একই সময়ে অন্য কতজন ভ্যালিডেটর অফলাইন আছে তার সমানুপাতিক তবে এর ফলে স্ল্যাশিং করা হয় না। ব্যান্ডউইথও গুরুত্বপূর্ণ, কারণ সময়মতো প্রাপ্ত না হওয়া সত্যায়নের জন্য পুরষ্কারের পরিমাণ কমে যায়। প্রয়োজনীয়তা পরিবর্তিত হবে, তবে ন্যূনতম 10 Mb/s আপ এবং ডাউন স্পিড ব্যবহার করতে পরামর্শ দেওয়া হয়। - - - -অফলাইন থাকার জন্য নিষ্ক্রিয়তার শাস্তির থেকে আলাদা, স্ল্যাশিং হল গুরুত্বর অপরাধের জন্য সংরক্ষিত আরও গুরুতর শাস্তি। একটি মাইনরিটি ক্লায়েন্ট চালানোর মাধ্যমে আপনার চাবিগুলি একই সময়ে শুধুমাত্র একটি মেশিনে লোড করে, আপনার স্ল্যাশ হওয়ার ঝুঁকি হ্রাস করা যায়। তাই, সকল স্টেকারদের অবশ্যই স্ল্যাশিং এর ঝুঁকি সম্পর্কে সচেতন হতে হবে। - - স্ল্যাশিং এবং ভ্যালিডেটর লাইফসাইকেল সম্পর্কে আরও - - - - - -## কিভাবে এটা কাজ করে {#how-it-works} - - - -সক্রিয় থাকাকালীন আপনি ETH পুরষ্কার অর্জন করবেন, যা পর্যায়ক্রমে আপনার উত্তোলনের ঠিকানায় জমা করা হবে। - -যদি কখনও ইচ্ছা হয়, আপনি একজন ভ্যালিডেটর হিসাবে প্রস্থান করতে পারেন যা অনলাইনে থাকার প্রয়োজনীয়তাকে দূর করে, এবং পুরস্কার প্রাপ্তি বন্ধ করে দেয়। আপনার অবশিষ্ট ব্যালেন্স তারপর আপনার সেটআপের সময় মনোনীত করা উত্তোলনের ঠিকানায় উত্তোলন করা হবে। - -[স্টেকিং প্রত্যাহার এর উপর আরো](/staking/withdrawals/) - -## স্টেকিং লঞ্চপ্যাডে শুরু করুন {#get-started-on-the-staking-launchpad} - -স্টেকিং লঞ্চপ্যাড হল একটি ওপেন সোর্স অ্যাপ্লিকেশন যা আপনাকে স্টেকার হতে সাহায্য করবে। এটি আপনাকে আপনার ক্লায়েন্ট বাছাই করার, আপনার কী তৈরি করার এবং স্টেকিং ডিপোজিট চুক্তিতে আপনার ETH জমা করার বিষয়ে গাইড করবে। আপনার ভ্যালিডেটরকে নিরাপদে সেট আপ করার জন্য আপনি সবকিছু করেছেন তা নিশ্চিত করার জন্য একটি চেকলিস্ট প্রদান করা হয়। - - - -## নোড এবং ক্লায়েন্ট সেটআপ টুলসের ক্ষেত্রে কি কি বিষয় মাথায় রাখা উচিত {#node-tool-considerations} - -আপনাকে ETH স্বতন্ত্রভাবে স্টেক করতে সাহায্য করার জন্য থাকা টুলস এবং পরিষেবার সংখ্যা দিন দিন বাড়ছে, তবে প্রতিটির সাথেই বিভিন্ন ঝুঁকি এবং সুবিধা রয়েছে। - -একটি তালিকাভুক্ত স্টেকিং টুলস থাকতে পারে এমন উল্লেখযোগ্য শক্তি বা দুর্বলতাগুলো নির্দেশ করতে নীচে অ্যাট্রিবিউট ইন্ডিকেটর ব্যবহার করা হয়েছে। আপনার স্টেকিং যাত্রায় সাহায্য করার জন্য কোন টুলস বেছে নেওয়ার সময় আমরা কীভাবে এই বৈশিষ্ট্যগুলিকে সংজ্ঞায়িত করি তা জানতে এই বিভাগটিকে রেফারেন্স হিসাবে ব্যবহার করুন। - - - -## নোড এবং ক্লায়েন্ট সেটআপ টুলস এক্সপ্লোর করুন {#node-and-client-tools} - -আপনার সেটআপে আপনাকে সাহায্য করার জন্য বিভিন্ন বিকল্প উপলব্ধ রয়েছে। নীচের টুলসের মাধ্যমে আপনাকে গাইড করতে সাহায্য করার জন্য উপরের সূচকগুলি ব্যবহার করুন। - - - -#### নোড টুলস - - - -একটি [মাইনরিটি ক্লায়েন্ট](/developers/docs/nodes-and-clients/client-diversity/) বেছে নেওয়া অত্যান্ত গুরুত্বপূর্ণ কারণ এটি নেটওয়ার্কের নিরাপত্তা উন্নত করে এবং আপনার ঝুঁকি সীমিত করে। যে টুলস আপনাকে মাইনরিটি ক্লায়েন্ট সেটআপ করতে দেয় সেগুলি "মাল্টি-ক্লায়েন্ট" হিসাবে চিহ্নিত করা হয়। - -#### কী জেনারেটর সমূহ - -কী জেনারেশনে সহায়তা করার জন্য এই টুলস [স্টেকিং ডিপোজিট CLI](https://github.com/ethereum/staking-deposit-cli/) এর বিকল্প হিসাবে ব্যবহার করা যেতে পারে। - - - -আমরা মিস করেছি একটি স্টেকিংয়ের টুলস জন্য আপনার পরামর্শ আছে? আমাদের [পণ্য তালিকা নীতি](/contributing/adding-staking-products/) দেখুন এটি উপযুক্ত কিনা তা দেখতে এবং পর্যালোচনার জন্য জমা দিতে। - -## সোলো স্টেকিং গাইড এক্সপ্লোর করুন {#staking-guides} - - - -## Frequently asked questions {#faq} - -স্টেকিং সম্পর্কে কয়েকটি সাধারণ প্রশ্নের উত্তর যা জানা গুরুত্বপূর্ণ। - - - -একটি ভ্যালিডেটর হল একটি ভার্চুয়াল সত্তা যা ইথেরিয়ামে বাস করে এবং ইথেরিয়াম প্রোটোকলের ঐকমত্যে অংশগ্রহণ করে। যাচাইকারীদের একটি ব্যালেন্স, পাবলিক কী এবং অন্যান্য বৈশিষ্ট্য দ্বারা প্রতিনিধিত্ব করা হয়। একটি ভ্যালিডেটর ক্লায়েন্ট হল এমন একটি সফ্টওয়্যার যা তার ব্যক্তিগত কী ধরে রেখে এবং ব্যবহার করে যাচাইকারীর পক্ষে কাজ করে। একটি একক যাচাইকারী ক্লায়েন্ট অনেকগুলি কী জোড়া ধরে রাখতে পারে, যা অনেকগুলি যাচাইকারীকে নিয়ন্ত্রণ করে। - - - - -ভ্যালিডেটরের সাথে যুক্ত প্রতিটি কী-পেয়ার সক্রিয় করার জন্য ঠিক 32 ETH প্রয়োজন। কীগুলির একটি একক সেটে বেশি ETH জমা করা হলে পুরস্কারের সম্ভাবনা বাড়ে না, কারণ প্রতিজন ভ্যালিডেটরের জন্য 32 ETH কার্যকরী ব্যালেন্স হিসাবে গণ্য করা হয়। এর অর্থ হল স্টেকিং 32 ETH ইনক্রিমেন্ট করা হয়, যার প্রতিটির নিজস্ব চাবি এবং ব্যালেন্স রয়েছে। - -একক ভ্যালিডেটরের জন্য 32 ETH এর বেশি জমা করবেন না। এটা আপনার পুরস্কার বৃদ্ধি করবে না। যদি ভ্যালিডেটরের জন্য একটি উত্তোলনের ঠিকানা সেট করা থাকে, তাহলে পরবর্তী ভ্যালিডেটর সুইপ-এর সময় 32 ETH-এর বেশি অতিরিক্ত তহবিল স্বয়ংক্রিয়ভাবে এই ঠিকানায় উত্তোলন করা হবে। - -যদি সোলো স্টেকিং আপনার জন্য অনেক বেশি বলে মনে হয়, তাহলে একটি স্টেকিং-অ্যাস-এ-সার্ভিস প্রদানকারী ব্যবহার করার কথা বিবেচনা করুন, অথবা আপনি যদি 32 ETH-এর কম নিয়ে কাজ করেন, তাহলে স্টেকিং পুলগুলো চেক করুন। - - - -নেটওয়ার্ক সঠিকভাবে চূড়ান্ত হওয়ার সময় অফলাইনে যাওয়ার ফলে স্ল্যাশিং করা হবে না। নিষ্ক্রিয়তার জন্য ছোট জরিমানা করা হয় যদি আপনার ভ্যালিডেটর প্রদত্ত ইপোকে (প্রতিটি 6.4 মিনিট দীর্ঘ) প্রত্যয়িত করার জন্য এভেইলেবল না থাকে তবে এটি স্ল্যাশিং থেকে খুব আলাদা। যদি ভ্যালিডেটর সত্যায়িত করার জন্য এভেইলেবল থাকত তাহলে আপনার অর্জিত পুরষ্কারের চেয়ে এই জরিমানাগুলি কিছুটা কম এবং ক্ষতিগুলি আবার অনলাইনে প্রায় সমান পরিমাণ সময় দেওয়ার মাধ্যমে ফিরে পাওয়া যেতে পারে। - -মনে রাখবেন যে নিষ্ক্রিয়তার জন্য জরিমানা একই সময়ে কতজন ভ্যালিডেটর অফলাইনে রয়েছে তার সমানুপাতিক। এমন ক্ষেত্রে যেখানে নেটওয়ার্কের একটি বৃহৎ অংশ একবারে অফলাইনে থাকে, সকল ভ্যালিডেটরের জন্য জরিমানা একজন একক ভ্যালিডেটরের এভেইলেবন না থাকার কারণে হওয়া জরিমানার থেকে বেশি হবে। - -চরম ক্ষেত্রে যদি এক তৃতীয়াংশেরও বেশি ভ্যালিডেটর অফলাইনে থাকার ফলে নেটওয়ার্ক ফাইনালাইজ করা বন্ধ করে দেয়, তাহলে এই ব্যবহারকারীরা ক্ষতিগ্রস্ত হবেন যাকে কোয়াড্রেটিক ইন্যাকটিভ লিক বলা হয়, যা হলো অফলাইন ভ্যালিডেটর অ্যাকাউন্ট থেকে ETH-এর একটি এক্সপোনেনশিয়াল ড্রেইন। এটি নেটওয়ার্কটিকে নিষ্ক্রিয় ভ্যালিডেটরদের ব্যালেন্স 16 ETH-এ না পৌঁছানো পর্যন্ত ETH বার্ন করে নেটওয়ার্ককে সেলফ-হিল হতে দেয়, এই সময়ে ভ্যালিডেটরদেরকে তাদের ভ্যালিডেটর পুল থেকে স্বয়ংক্রিয়ভাবে বের করে দেওয়া হয়। অবশিষ্ট অনলাইন ভ্যালিডেটররা আবার 2/3টি নেটওয়ার্ক নিয়ে নেটওয়ার্ক গঠন করবে যা চেইনটি আবার চূড়ান্ত করার জন্য প্রয়োজনীয় সুপারমেজরিটিকে সন্তুষ্ট করবে। - - - -সংক্ষেপে, এটি কখনই পুরোপুরি নিশ্চিত করা যায় না, তবে আপনি যদি ভাল বিশ্বাসে কাজ করেন, একটি মাইনরিটি ক্লায়েন্ট চালান এবং একবারে কেবল মাত্র একটি মেশিনে আপনার সাইনিং কী রাখেন তবে স্ল্যাশ হওয়ার ঝুঁকি প্রায় শূন্য। - -শুধুমাত্র কয়েকটি নির্দিষ্ট উপায় রয়েছে যার ফলে একজন ভ্যালিডেটরকে নেটওয়ার্ক থেকে স্ল্যাশ করা এবং বের করে দেওয়া হতে পারে। লেখার সময়, যে স্ল্যাশিংগুলি ঘটেছে তা মূলত অপ্রয়োজনীয় হার্ডওয়্যার সেটআপের কারণে হয়েছে যেখানে সাইনিং কী একবারে দুটি আলাদা মেশিনে সংরক্ষণ করা হয়েছিলো। এটি অসাবধানতাবশত আপনার কীগুলির মাধ্যমে একটি ডাবল ভোট দিতে পারে, যা একটি স্ল্যাশযোগ্য অপরাধ। - -একটি সুপারমেজরিটি ক্লায়েন্ট (নেটওয়ার্কের 2/3 এরও বেশি দ্বারা ব্যবহৃত যে কোনও ক্লায়েন্ট) চালালে যদি সেই ক্লায়েন্টে চেইন ফোর্ক করে এমন কোনো বাগ থাকে তাহলে স্ল্যাশিং এর ঝুঁকি থাকে। এর ফলে একটি ত্রুটিপূর্ণ ফর্ক হতে পারে যা চূড়ান্ত হয়ে যায়। কাঙ্ক্ষিত চেইন ফিরে যাওয়ার জন্য চূড়ান্ত ব্লকটি বাতিল করার চেষ্টা করে একটি সারাউন্ড ভোট জমা দিতে হবে। এটি একটি স্ল্যাশযোগ্য অপরাধ এবং এর পরিবর্তে কেবল একটি মাইনরিটি ক্লায়েন্ট চালানোর মাধ্যমে এড়ানো যেতে পারে। - -একটি মাইনরিটি ক্লায়েন্টের বাগ কখনই চূড়ান্ত হবে না এবং এইভাবে কখনই এর ফলে একটি সারাউন্ড ভোটের নেওয়া হবে না এবং এটা কারণে শুধুমাত্র নিষ্ক্রিয়তার শাস্তি পেতে পারেন, স্ল্যাশিং নয়। - - - - - -প্রতিটি ক্লায়েন্ট কর্মক্ষমতা এবং ব্যবহারকারী ইন্টারফেসের ক্ষেত্রে সামান্য পরিবর্তিত হতে পারে, কারণ প্রতিটি ক্লায়েন্ট বিভিন্ন দল বিভিন্ন প্রোগ্রামিং ভাষা ব্যবহার করে তৈরি করে। তাই, তাদের কেউই "সেরা" নয়। সকল প্রোডাকশন ক্লায়েন্ট চমৎকার একটি সফ্টওয়্যার, যেগুলি ব্লকচেইনের সাথে সিঙ্ক এবং ইন্টারঅ্যাক্ট করার জন্য একই কোর ফাংশন সম্পাদন করে। - -যেহেতু সকল প্রোডাকশন ক্লায়েন্ট একই মৌলিক কার্যকারিতা প্রদান করে, তাই আপনার একটি মাইনরিটি ক্লায়েন্ট বেছে নেওয়া খুবই গুরুত্বপূর্ণ, যার অর্থ এমন যেকোন ক্লায়েন্ট বেছে নিন যা বর্তমানে নেটওয়ার্কের অধিকাংশ ভ্যালিডেটর দ্বারা ব্যবহার করা হচ্ছে না। এটি বিপরীতমুখী শোনাতে পারে, তবে একটি মেজরিটি বা সুপারমেজরিটি ক্লায়েন্ট চালানো আপনাকে সেই ক্লায়েন্টে একটি বাগ থাকার কারণে আপনার স্ল্যাশিং হওয়ার ঝুঁকি বাড়ায়। মাইনরিটি ক্লায়েন্ট চালানো এই ঝুঁকিগুলিকে মারাত্মকভাবে সীমিত করে। - -ক্লায়েন্টের বৈচিত্র্য কেন গুরুত্বপূর্ণ সে সম্পর্কে আরও জানুন - - - -যদিও একটি ভার্চুয়াল প্রাইভেট সার্ভার (VPS) হোম হার্ডওয়্যারের বিকল্প হিসাবে ব্যবহার করা যেতে পারে, আপনার ভ্যালিডেটর ক্লায়েন্টের ফিজিক্যাল অ্যাক্সেস এবং অবস্থান গুরুত্বপূর্ণ। Amazon Web Services বা Digital Ocean-এর মতো কেন্দ্রীভূত ক্লাউড সমাধানগুলি নেটওয়ার্ককে কেন্দ্রীভূত করার ব্যয়ে হার্ডওয়্যার অর্জন এবং পরিচালনা না করার সুবিধার অনুমতি দেয়। - -একক সেন্ট্রালাইজড ক্লাউড স্টোরেজ সলুশনে যত বেশি ভ্যালিডেটর ক্লায়েন্ট চলছে, সেটা ব্যবহারকারীদের জন্য তত বেশি বিপজ্জনক হয়ে ওঠে। কোনো অ্যাটাক, কর্তৃপক্ষের ডিমান্ড বা বিদ্যুৎ/ইন্টারনেট বিভ্রাট সহ যেকোনো কারণে এই সকল সেবা প্রদানকারীরা অফলাইনে চলে গেলে তাদের উপর নির্ভর করা প্রত্যেক ভ্যালিডেটর ক্লায়েন্টও একই সময়ে অফলাইনে চলে যাবে। - -অফলাইন জরিমানা একই সময়ে আরও কতজন অফলাইনে রয়েছে তার সমানুপাতিক। একটি VPS ব্যবহার অফলাইন জরিমানা আরও গুরুতর হওয়ার ঝুঁকি বাড়িয়ে তোলে এবং বিভ্রাটটি যথেষ্ট বড় হলে আপনার কোয়াড্রেটিঙ্ক লিক হবার বা স্ল্যাশি হওয়ার ঝুঁকি বাড়িয়ে তোলে। আপনার নিজের ঝুঁকি এবং নেটওয়ার্কের ঝুঁকি হ্রাস করার জন্য, ব্যবহারকারীদের তাদের নিজস্ব হার্ডওয়্যার রাখতে এবং পরিচালনা করতে দৃঢ়ভাবে উত্সাহিত করা হয়। - - - - -বিকন চেইন থেকে যে কোনও ধরণের উত্তোলনের জন্য উত্তোলনের ক্রেডেনশিয়াল সেট করা প্রয়োজন। - -নতুন স্টেকাররা কী জেনারেট এবং ডিপোজিট করার সময় এটি সেট করে। বিদ্যমান স্টেকার যারা ইতিমধ্যে এটি সেট করেনি তারা এই কার্যকারিতা সমর্থন করতে তাদের কী আপগ্রেড করতে পারে। - -একবার উত্তোলনের ক্রেডেনশিয়াল সেট হয়ে গেলে, পুরস্কারের অর্থপ্রদান (প্রাথমিক 32-এর উপরে জমা হওয়া ETH) স্বয়ংক্রিয়ভাবে উত্তোলনের ঠিকানায় পর্যায়ক্রমে বিতরণ করা হবে। - -আনলক করতে এবং আপনার সম্পূর্ণ ব্যালেন্স ফেরত পেতে আপনাকে অবশ্যই আপনার ভ্যালিডেটর বের করার প্রক্রিয়াটি সম্পূর্ণ করতে হবে। - -স্টেকিং প্রত্যাহার এর উপর আরো - - -## Further reading {#further-reading} - -- [ইথেরিয়ামের ক্লায়েন্টের বৈচিত্র্যের সমস্যা](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuellawosika 2022_ -- [ক্লায়েন্ট বৈচিত্র্যকে সাহায্য করা](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ -- [ইথেরিয়ামের কনসেনসাস লেয়ারে ক্লায়েন্ট বৈচিত্র্য](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ -- [কিভাবে: ইথেরিয়াম ভ্যালিডেটর হার্ডওয়্যারের জন্য কেনাকাটা করবেন](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ -- [ধাপে ধাপে: কিভাবে ইথেরিয়াম 2.0 টেস্টনেটে যোগদান করবেন](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _ Butta_ -- [Eth2 স্ল্যাশিং প্রতিরোধ টিপস](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raul Jordan 2020_ diff --git a/src/content/translations/bn/staking/withdrawals/index.md b/src/content/translations/bn/staking/withdrawals/index.md deleted file mode 100644 index da4d18d3c37..00000000000 --- a/src/content/translations/bn/staking/withdrawals/index.md +++ /dev/null @@ -1,218 +0,0 @@ ---- -title: স্টেকিং উইথড্রয়াল -description: স্টেকিং পুশ উত্তোলন কি, সেগুলি কীভাবে কাজ করে এবং সেগুলোর জন্য পুরষ্কার পেতে স্টেকদের কী করতে হবে তার সংক্ষিপ্ত বিবরণীর পেজ -lang: bn -template: staking -image: ../../../../../assets/staking/leslie-withdrawal.png -alt: Leslie the rhino তার স্টেকিং পুরষ্কার সহ -sidebarDepth: 2 -summaryPoints: - - Shanghai/Capella আপগ্রেড ইথেরিয়াম-এ স্টেকিং প্রত্যাহার সক্ষম করেছে - - ভ্যালিডেটর অপারেটরদের অবশ্যই একটি উত্তোলনের ঠিকানা প্রদান করতে হবে - - পুরস্কার স্বয়ংক্রিয়ভাবে কয়েক দিন পর পর বিতরণ করা হয় - - যেসকল ভ্যালিডেটররা সম্পূর্ণরূপে স্টেকিং থেকে প্রস্থান করে তারা তাদের অবশিষ্ট ব্যালেন্স পাবেন ---- - - -12 এপ্রিল, 2023-এ ঘটে যাওয়া Shanghai/Capella আপগ্রেডের মাধ্যমে স্টেকিং উত্তোলনের ব্যবস্থা সক্ষম করা হয়েছিল। Shanghai/Capella সম্পর্কে আরও - - -**স্টেকিং উইথড্রয়ালস** ইথেরিয়ামের কনসেনসাস লেয়ার (বিকন চেইন) এর একটি ভ্যালিডেটর অ্যাকাউন্ট থেকে এক্সিকুশন লেয়ারে ETH-এর স্থানান্তরকে বোঝায় যেখানে এটির সাথে লেনদেন করা যেতে পারে। - -ব্যবহারকারী দ্বারা প্রদান করা হলে 32 ETH এর বেশি **অতিরিক্ত ব্যালেন্সের পুরষ্কার** স্বয়ংক্রিয়ভাবে এবং নিয়মিতভাবে প্রতিটি ভ্যালিডেটরের সাথে লিঙ্ক করা একটি উত্তোলনের ঠিকানায় পাঠানো হবে। ব্যবহারকারীরা তাদের সম্পূর্ণ ভ্যালিডেটর ব্যালেন্স আনলক করে **সম্পূর্ণভাবে স্টেকিং থেকে প্রস্থান করতে পারেন**। - -## স্টেকিং এর পুরষ্কারসমূহ {#staking-rewards} - -সর্বাধিক 32 ETH এর কার্যকর ব্যালেন্স সহ সক্রিয় ভ্যালিডেটর অ্যাকাউন্টগুলির জন্য পুরস্কার প্রদান স্বয়ংক্রিয়ভাবে প্রক্রিয়া করা হয়। - -পুরষ্কারের মাধ্যমে অর্জিত 32 ETH-এর উপরে যে কোনও ব্যালেন্স প্রকৃতপক্ষে মূলে অবদান রাখে না বা নেটওয়ার্কে এই ভ্যালিডেটরের ওয়েট বাড়ায় না এবং এইভাবে কয়েক দিন পর পর পুরস্কার হিসাবে স্বয়ংক্রিয়ভাবে উত্তোলন করা হয়। একবার উত্তোলনের ঠিকানা প্রদান করা ছাড়া এই পুরস্কারগুলির জন্য ভ্যালিডেটরের অপারেটরের আর কোনো কিছু করতে হবে না। এটি সবই কনসেনসাস লেয়ারে শুরু করা হয়েছে, তাই কোনও ধাপে কোনও গ্যাস (লেনদেন ফি) প্রয়োজন হয় না। - -### আমরা কিভাবে এখানে আসলাম? {#how-did-we-get-here} - -আগের এনার্জি-ইন্টেন্সিভ মাইনিং এর পরিবর্তে গত কয়েক বছরে ইথেরিয়াম অনেকগুলি নেটওয়ার্ক আপগ্রেডের মধ্য দিয়ে যেয়ে ETH দ্বারা সুরক্ষিত একটি নেটওয়ার্কে রূপান্তরিত হয়েছে। ইথেরিয়াম-এ কনসেনসাসে অংশগ্রহণ করা এখন "স্টেকিং" নামে পরিচিত, কারণ অংশগ্রহণকারীরা নেটওয়ার্কে অংশগ্রহণ করার জন্য স্বেচ্ছায় ETH-কে "স্টেক করে" লক করে রেখেছে। যে ব্যবহারকারীরা নিয়মগুলি অনুসরণ করে তাদের পুরস্কৃত করা হবে, এবং প্রতারণার প্রচেষ্টার জন্য শাস্তি দেওয়া হতে পারে। - -2020 সালের নভেম্বরে স্টেকিং ডিপোজিট চুক্তি চালু হওয়ার পর থেকে, কিছু সাহসী ইথেরিয়াম অগ্রগামীরা "ভ্যালিডেটর" সক্রিয় করার জন্য স্বেচ্ছায় ফান্ড লক আপ করেছে, এগুলো বিশেষ অ্যাকাউন্ট যেগুলোর নেটওয়ার্ক নিয়ম অনুসরণ করে আনুষ্ঠানিকভাবে ব্লকগুলিকে প্রত্যয়িত করার এবং প্রস্তাব করার অধিকার রয়েছে। - -Shanghai/Capella আপগ্রেডের আগে, আপনি আপনার স্টেক করা ETH ব্যবহার বা অ্যাক্সেস করতে পারবেন না। কিন্তু এখন, আপনি একটি নির্বাচিত অ্যাকাউন্টে স্বয়ংক্রিয়ভাবে আপনার পুরষ্কারগুলি পাওয়ার জন্য অপ্ট-ইন করতে পারেন এবং আপনি যখনই চান আপনার স্টেক করা ETH প্রত্যাহার করতে পারেন। - -### আমি কিভাবে প্রস্তুতি নেব? {#how-do-i-prepare} - - - -### গুরুত্বপূর্ণ নোটিশ {#important-notices} - -ETH এর ব্যালেন্স থেকে উত্তোলন করার যোগ্য হওয়ার আগে যেকোন ভ্যালিডেটর অ্যাকাউন্টকে একটি উত্তোলনের ঠিকানা প্রদান করতে হবে। - - - প্রতিটি ভ্যালিডেটর অ্যাকাউন্টে একবার শুধুমাত্র একটি উত্তোলনের ঠিকানা বরাদ্দ করা যাবে। একবার একটি ঠিকানা বেছে নেওয়া হলে এবং কনসেনসাস লেভেলে জমা দেওয়া হলে, এটি পূর্বাবস্থায় ফেরানো বা পরিবর্তন করা যাবে না। জমা দেওয়ার আগে প্রদত্ত ঠিকানার মালিকানা এবং যথার্থতা দুবার চেক করুন। - - -এটি প্রদান না করার জন্য এই সময়ের মধ্যে আপনার তহবিলের কোনও হুমকি নেই, ধরে নিচ্ছি যে আপনার মেমোনিক/সীড ফ্রেজ অফলাইনে নিরাপদ আছে এবং কোনওভাবেই কম্প্রোমাইজ হয়নি। উত্তোলনের ক্রেডেনশিয়াল যোগ করতে ব্যর্থ হলে ETH ভ্যালিডেটর অ্যাকাউন্টে উত্তোলনের ঠিকানা না দেওয়া পর্যন্ত লক করে রাখা হবে। - -## স্টেকিং থেকে সম্পূর্ণরূপে প্রস্থান {#exiting-staking-entirely} - -_কোনো_ ফান্ড যাচাইকারী অ্যাকাউন্ট ব্যালেন্স থেকে স্থানান্তর করার আগে একটি উত্তোলনের ঠিকানা প্রদান করা প্রয়োজন। - -যে ব্যবহারকারীরা স্টেকিং থেকে সম্পূর্ণভাবে প্রস্থান করতে চাইছেন এবং তাদের সম্পূর্ণ ব্যালেন্স ফেরত নিতে চাইছেন তাদের অবশ্যই ভ্যালিডেতর কী এর মাধ্যমে একটি "স্বেচ্ছাসেবী প্রস্থান" বার্তা স্বাক্ষর এবং সম্প্রচার করতে হবে যা তাদের স্টেকিং থেকে প্রস্থান করার প্রক্রিয়া শুরু করবে। এটি আপনার ভ্যালিডেটর ক্লায়েন্টের সাথে করা হয় এবং আপনার কনসেনসাস নোডে জমা দেওয়া হয় এবং এতে কোনো গ্যাসের প্রয়োজন হয় না। - -স্টেকিং থেকে প্রস্থান করার প্রক্রিয়ার জন্য প্রয়োজনীয় সময় পরিবর্তনশীল, একই সময়ে অন্য কতজন প্রস্থান করছে তার উপর নির্ভর করে। একবার সম্পূর্ণ হয়ে গেলে, এই অ্যাকাউন্টটি আর ভ্যালিডেটর নেটওয়ার্কের দায়িত্ব পালনের জন্য দায়ী থাকবে না, পুরস্কারের জন্য আর যোগ্য নয় এবং তাদের ETH আর "স্টেকে" থাকবে না। এই সময়ে অ্যাকাউন্টটি সম্পূর্ণরূপে "উত্তোলনযোগ্য" হিসাবে চিহ্নিত করা হবে। - -একবার একটি অ্যাকাউন্টকে "উত্তোলনযোগ্য" হিসাবে ফ্ল্যাগ করা হলে এবং উত্তোলনের ক্রেডেনশিয়াল প্রদান করা হলে, ব্যবহারকারীকে অপেক্ষা করা ছাড়া আর কিছু করার দরকার নেই। অ্যাকাউন্টগুলো স্বয়ংক্রিয়ভাবে এবং চলমানভাবে ব্লক প্রস্তাবকারীদের দ্বারা যোগ্য প্রস্থান করা ফান্ডের জন্য সুইপ করা হয় এবং পরবর্তী সুইপের সময়ে আপনার অ্যাকাউন্টের ব্যালেন্স সম্পূর্ণরূপে স্থানান্তরিত হবে (এটি "সম্পূর্ণ উত্তোলন" হিসাবেও পরিচিত)। - -## কখন স্টেকিং উত্তোলন সক্রিয় করা হয়? {#when} - -স্টেকিং উত্তোলন এখন লাইভ! Shanghai/Capella আপগ্রেডের অংশ হিসাবে প্রত্যাহার কার্যকারিতা সক্ষম করা হয়েছিল যা 12 এপ্রিল, 2023 এ হয়েছিল। - -Shanghai/Capella আপগ্রেড পূর্বে স্টেক করা ETH-কে নিয়মিত ইথেরিয়াম অ্যাকাউন্টে পুনরুদ্ধার করতে সক্ষম করেছে। এটা লিকুইডিটি স্টেকিং এর ক্ষেত্রে লুপ বন্ধ করেছে এবং একটি টেকসই, স্কেলেবল, নিরাপদ ডিসেন্ট্রালাইজড ইকোসিস্টেম তৈরির দিকে ইথেরিয়ামকে তার যাত্রায় এক ধাপ কাছাকাছি নিয়ে যায়। - -- [ইথেরিয়ামের ইতিহাস সম্পর্কে আরো](/history/) -- [ইথেরিয়ামের রোডম্যাপে সম্পর্কে আরো](/roadmap/) - -## উত্তোলনের পেমেন্ট কিভাবে কাজ করে? {#how-do-withdrawals-work} - -প্রদত্ত ভ্যালিডেটর উত্তোলনের জন্য যোগ্য কিনা তা ভ্যালিডেটর অ্যাকাউন্টের অবস্থা দ্বারা নির্ধারিত হয়। একটি অ্যাকাউন্টে একটি অর্থ উত্তোলন শুরু করা উচিত কিনা তা নির্ধারণ করার জন্য ব্যবহারকারীর কোনো ইনপুটের প্রয়োজন নেই - সম্পূর্ণ প্রক্রিয়াটি একটি চলমান লুপে কনসেনসাস লেয়ারে স্বয়ংক্রিয়ভাবে সম্পন্ন হয়। - -### More of a visual learner? {#visual-learner} - -ইথেরিয়াম স্টেকিং উত্তোলন সম্পর্কে Finematics-এর এই ব্যাখ্যাটি দেখুন: - - - -### যাচাইকারী "সুইপিং" {#validator-sweeping} - -যখন একজন ভ্যালিডেটর পরবর্তী ব্লকের প্রস্তাব করার জন্য নির্ধারিত হন, তখন 16টি যোগ্য উত্তোলনের জন্য একটি উত্তোলন সারি তৈরি করতে হবে। এটি মূলত ভ্যালিডেটর ইনডেক্স 0 দিয়ে শুরু করে, প্রোটোকলের নিয়ম অনুসারে এই অ্যাকাউন্টের জন্য একটি যোগ্য উত্তোলন আছে কিনা তা নির্ধারণ করে এবং যদি থাকে তবে এটিকে সারিতে যোগ করে করা হয়। নিম্নোক্ত ব্লকটি প্রস্তাব করার জন্য সেট করা যাচাইকারী শেষটি যেখানে ছেড়ে গেছে সেখানেই উঠবে, অনির্দিষ্টকালের জন্য অগ্রসর হবে। - - -একটি এনালগ ঘড়ি সম্পর্কে চিন্তা করুন। ঘড়ির কাঁটা ঘণ্টার দিকে নির্দেশ করে, এক দিকে অগ্রসর হয়, কোনো ঘন্টা এড়িয়ে যায় না এবং শেষ সংখ্যায় পৌঁছানোর পরে আবার শুরু থেকে শুরু করে।

-এখন 1 থেকে 12 এর পরিবর্তে, কল্পনা করুন যে ঘড়িতে 0 থেকে N পর্যন্ত কাঁটা আছে (এখন পর্যন্ত কন্সেন্সাস লেয়ারে নিবন্ধিত হওয়া বৈধকারী অ্যাকাউন্টের মোট সংখ্যা, 2023 সালের জানুয়ারী পর্যন্ত 500,000 এর বেশি)।

-ঘড়িতে থাকা হাতটি পরবর্তী যাচাইকারীর দিকে নির্দেশ করে যা যোগ্য উত্তোলনের জন্য পরীক্ষা করা দরকার। এটি 0 এ শুরু হয় এবং কোনো অ্যাকাউন্ট এড়িয়ে না গিয়েই চারদিকে ঘুরে এগিয়ে যায়। যখন শেষ ভ্যালিডেটরে এটি পৌঁছে যায়, চক্রটি আবার শুরু থেকে চলতে থাকে। -
- -#### অর্থ উত্তোলনের জন্য একটি অ্যাকাউন্ট চেক করা হচ্ছে {#checking-an-account-for-withdrawals} - -সম্ভাব্য উত্তোলনের সময় ভ্যালিডেটরের মধ্যে দিয়ে একজন প্রস্তাবক সুইপ করার সময়, উত্তোলন শুরু করা যাবে কিনা সেই বিষয়টির মূল্যায়ন করা হয় প্রত্যেকটি ভ্যালিডেটরকে বিভিন্ন প্রশ্নের ছোট সিরিজের মাধ্যমে, আর ইতিবাচক ফলাফলের ক্ষেত্রে কি পরিমাণে ETH উত্তোলন করা উচিত তাও গণনা করা হয়। - -1. **উত্তোলনের জন্য কোন ঠিকানা প্রদান করা হয়েছে কী?** যদি কোনো উত্তোলনের ঠিকানা প্রদান করা না হয়, তাহলে অ্যাকাউন্টটি এড়িয়ে যাওয়া হবে এবং কোনো উত্তোলন শুরু করা হবে না। -2. **ভ্যালিডেটর কি প্রস্থান করেছেন এবং তার অর্থ উত্তোলন করা যাবে?** যদি ভ্যালিডেটর সম্পূর্ণরূপে প্রস্থান করে থাকে, এবং আমরা সেই যুগে পৌঁছে গেছি যেখানে তাদের অ্যাকাউন্টকে "উত্তোলনযোগ্য" হিসাবে বিবেচনা করা হয়, তাহলে সম্পূর্ণ উত্তোলন প্রক্রিয়া করা হবে। এটি পুরো অবশিষ্ট ব্যালেন্স উত্তোলনের ঠিকানায় স্থানান্তর করবে। -3. **কার্যকর ব্যালেন্স কি সর্বোচ্চ 32 এ শেষ হয়ে গেছে?** যদি অ্যাকাউন্টে প্রত্যাহারের শংসাপত্র থাকে, সম্পূর্ণরূপে প্রস্থান করা না হয়, এবং 32-এর বেশি পুরষ্কার অপেক্ষা করে, তাহলে একটি আংশিক উত্তোলন প্রক্রিয়া করা হবে যা শুধুমাত্র ব্যবহারকারীর উত্তোলনের ঠিকানায় 32 থেকে বেশি পরিমাণে পুরস্কার স্থানান্তর করে। - -ভ্যালিডেটরের জীবনচক্র চলাকালীন ভ্যালিডেটর অপারেটরদের দ্বারা নেওয়া মাত্র দুটি পদক্ষেপ রয়েছে যা সরাসরি এই প্রবাহকে প্রভাবিত করে: - -- উত্তোলনের শংসাপত্রগুলি প্রদান করা যাতে উত্তোলন করা যায় -- নেটওয়ার্ক থেকে প্রস্থান করা, যা সম্পূর্ণ উত্তোলন ট্রিগার করবে - -### গ্যাস মুক্ত {#gas-free} - -স্টেকিং উত্তোলন করার এই পদ্ধতিটি স্টেকারদের ম্যানুয়ালি একটি নির্দিষ্ট পরিমাণ ETH উত্তোলন করার জন্য অনুরোধ করে একটি লেনদেন জমা দেওয়ার প্রয়োজন এড়ায়। এর মানে **কোন গ্যাস (লেনদেন ফি) প্রয়োজন নেই**, এবং প্রত্যাহারও বিদ্যমান এক্সিকিউশন লেয়ার ব্লক স্পেসের জন্য প্রতিযোগিতা করে না। - -### আমি কত ঘন ঘন আমার স্টেকিং পুরষ্কার পাব? {#how-soon} - -একটি ব্লকে সর্বাধিক 16টি উত্তোলন প্রক্রিয়া করা যেতে পারে। সেই হারে, প্রতিদিন 115,200টি ভ্যালিডেটর উত্তোলন প্রক্রিয়া করা যেতে পারে (কোন স্লট মিস হয়নি বলে অনুমান করে)। উপরে উল্লিখিত হিসাবে, যোগ্য উত্তোলন ব্যতীত ভ্যালিডেটরগুলোকে বাদ দেওয়া হবে, সুইপ শেষ করার সময় কমিয়ে দেওয়া হবে। - -এই গণনাটি প্রসারিত করে, আমরা প্রদত্ত সংখ্যক উত্তোলন প্রক্রিয়া করতে যে সময় লাগবে তা অনুমান করতে পারি: - - - -| উত্তোলনের সংখ্যা | সম্পন্ন করার সময় | -| :--------------: | :---------------: | -| 400,000 | 3.5 দিন | -| 500,000 | 4.3 দিন | -| 600,000 | 5.2 দিন | -| 700,000 | 6.1 দিন | -| 800,000 | 7.0 দিন | - - - -আপনি দেখতে পাচ্ছেন যে নেটওয়ার্কে আরও ভ্যালিডেটর থাকায় এটি ধীর হয়ে যায়। মিস করা স্লটের বৃদ্ধি আনুপাতিকভাবে এটিকে কমিয়ে দিতে পারে, তবে এটি সাধারণত সম্ভাব্য ফলাফলের ধীর দিকের প্রতিনিধিত্ব করবে। - -## Frequently asked questions {#faq} - - -না, প্রত্যাহারের শংসাপত্র প্রদানের প্রক্রিয়াটি একটি এককালীন প্রক্রিয়া, এবং একবার জমা দেওয়ার পরে পরিবর্তন করা যাবে না। - - - -একটি এক্সিকিউশন লেয়ার উত্তোলন ঠিকানা সেট করে সেই যাচাইকারীর জন্য উত্তোলনের প্রমাণপত্র স্থায়ীভাবে পরিবর্তন করা হয়েছে। এর অর্থ হল পুরানো শংসাপত্রগুলি আর কাজ করবে না এবং নতুন শংসাপত্রগুলি একটি এক্সিকিউশন লেয়ার অ্যাকাউন্টে নির্দেশিত হবে। - -উত্তোলনের ঠিকানাগুলি হয় একটি স্মার্ট কন্ট্র্যাক্ট (এর কোড দ্বারা নিয়ন্ত্রিত), অথবা এটি একটি বহিরাগত মালিকানাধীন অ্যাকাউন্ট (EOA, এটির ব্যক্তিগত কী দ্বারা নিয়ন্ত্রিত) হতে পারে। বর্তমানে এই অ্যাকাউন্টগুলির কোনো উপায় নেই যে কনসেনসাস লেয়ারে বার্তা ফেরত পাঠানোর জন্য যা যাচাইকারী শংসাপত্রের পরিবর্তনের সংকেত দেবে, এবং এই কার্যকারিতা যোগ করলে প্রোটোকলটিতে অপ্রয়োজনীয় জটিলতা যুক্ত হবে। - -একটি নির্দিষ্ট ভ্যালিডেটরের জন্য উত্তোলনের ঠিকানা পরিবর্তন করার বিকল্প হিসাবে, ব্যবহারকারীরা তাদের উত্তলনের ঠিকানা হিসাবে একটি স্মার্ট কন্ট্র্যাক্ট সেট করতে বেছে নিতে পারে যা কী রোটেটিং পরিচালনা করতে পারে, যেমন একটি সেফ। যে ব্যবহারকারীরা তাদের নিজস্ব EOA-তে তাদের তহবিল সেট করে তারা তাদের সমস্ত স্টেক করা তহবিল উত্তোলন করার জন্য সম্পূর্ণ প্রস্থান করতে পারেন এবং তারপর নতুন শংসাপত্র ব্যবহার করে পুনরায় শেয়ার করতে পারেন। - - - - -আপনি যদি একটি স্টেকিং পুল-এর অংশ হন বা স্টেকিং টোকেনগুলি ধরে রাখেন, তাহলে প্রতিটি পরিষেবা আলাদাভাবে কাজ করে বলে স্টেকিং উত্তোলন কীভাবে পরিচালনা করা হয় সে সম্পর্কে আরও বিশদ জানতে আপনার প্রদানকারীর সাথে যোগাযোগ করা উচিত। - -সাধারণভাবে, অন্তর্নিহিত স্টেক করা ETH পুনরুদ্ধার করতে বা স্টেকিং প্রদানকারী ব্যবহার পরিবর্তন করার ক্ষেত্রে ব্যবহারকারীদের স্বাধীনতা থাকা উচিত। যদি একটি নির্দিষ্ট পুল খুব বড় হয়ে যায়, ফান্ড প্রস্থান করা যেতে পারে, রিডিম করা যেতে পারে এবং একটি ছোট প্রদানকারীর সাথে পুনরায় স্টেক করা যেতে পারে। অথবা, আপনি যদি পর্যাপ্ত ETH জমা করে থাকেন তাহলে আপনি স্টেক ফ্রম হোম করতে পারেন। - - - - -হ্যাঁ, যতক্ষণ না আপনার ভ্যালিডেটর একটি উত্তোলনের ঠিকানা প্রদান করেছে। প্রাথমিকভাবে কোনো উত্তোলন সম্ভব করার জন্য এটি অবশ্যই একবার প্রদান করতে হবে, তারপর প্রতিটি ভ্যালিডেটর সুইপ দিয়ে প্রতি কয়েকদিন পর পুরস্কার প্রদান স্বয়ংক্রিয়ভাবে ট্রিগার হবে। - - - - -না, যদি আপনার ভ্যালিডেটর এখনও নেটওয়ার্কে সক্রিয় থাকে, তাহলে সম্পূর্ণ উত্তোলন স্বয়ংক্রিয়ভাবে ঘটবে না। এর জন্য ম্যানুয়ালি একটি স্বেচ্ছাসেবী প্রস্থানের শুরুর প্রয়োজন হয়। - -একবার ভ্যালিডেটর তার প্রস্থান প্রক্রিয়া সম্পন্ন করলে এবং ধরে নেওয়া হল যে উত্তোলনের শংসাপত্র আছে, সেই ক্ষেত্রে বাকি থাকা ব্যালেন্সটি এরপরে পরবর্তী ভ্যালিডেটর সুইপের সময় উত্তোলন করা হবে। - - - - -উত্তোলনগুলি স্বয়ংক্রিয়ভাবে পুশ করার জন্য ডিজাইন করা হয়েছে, যে কোনো ETH হস্তান্তর করে যা সক্রিয়ভাবে অংশীদারিত্বে অবদান রাখে না। এর মধ্যে অ্যাকাউন্টগুলির সম্পূর্ণ ব্যালেন্স অন্তর্ভুক্ত রয়েছে যেগুলি প্রস্থান প্রক্রিয়া সম্পূর্ণ করেছে। - -নির্দিষ্ট পরিমাণ ETH উত্তোলন করার জন্য ম্যানুয়ালি অনুরোধ করা সম্ভব নয়। - - - - -ভ্যালিডেটর অপারেটরদের স্টেকিং লঞ্চপ্যাড উইথড্রয়ালস পৃষ্ঠাতে যাওয়ার পরামর্শ দেওয়া হচ্ছে যেখানে আপনি কীভাবে আপনার ভ্যালিডেটরদের উত্তোলনের জন্য প্রস্তুত করবেন সে সম্পর্কে আরও বিশদ তথ্য পাবেন। প্রস্তুত, ইভেন্টের সময় এবং উত্তোলন কীভাবে কাজ করে সে সম্পর্কে আরও বিশদ বিবরণ। - -প্রথমে একটি টেস্টনেটে আপনার সেটআপ চেষ্টা করে দেখতে, শুরু করতে Goerli টেস্টনেট স্টেকিং লঞ্চপ্যাডে যান। - - - - -না। একবার একটি ভ্যালিডেটর প্রস্থান করে এবং তার সম্পূর্ণ ব্যালেন্স উত্তোলন করা হলে, সেই ভ্যালিডেটরের কাছে জমা করা যেকোন অতিরিক্ত তহবিল স্বয়ংক্রিয়ভাবে পরবর্তী ভ্যালিডেটর স্যুইপের সময় উত্তোলনের ঠিকানায় স্থানান্তরিত হবে। ETH পুনরায় স্টেক করতে, একটি নতুন যাচাইকারী সক্রিয় করতে হবে। - - -## Further reading {#further-reading} - -- [স্টেকিং লঞ্চপ্যাড উত্তোলোন](https://launchpad.ethereum.org/withdrawals) -- [EIP-4895: অপারেশন হিসাবে বিকন চেইন পুশ উত্তোলন](https://eips.ethereum.org/EIPS/eip-4895) -- [ইথেরিয়াম ক্যাট হার্ডারস - সাংহাই](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) -- [PEEPanEIP #94: Potuz & Hsiao-Wei Wang-এর সাথে স্টেকড ETH উত্তোলন (পরীক্ষা)](https://www.youtube.com/watch?v=G8UstwmGtyE) -- [PEEPanEIP#68: EIP-4895: অ্যালেক্স স্টোক্সের সাথে অপারেশন হিসাবে বিকন চেইন পুশ উত্তোলন](https://www.youtube.com/watch?v=CcL9RJBljUs) -- [ভ্যালিডেটরের কার্যকরী ব্যালেন্স বোঝা](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/ca/community/support/index.md b/src/content/translations/ca/community/support/index.md deleted file mode 100644 index 2c1d06f2cce..00000000000 --- a/src/content/translations/ca/community/support/index.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -title: Suport d'Ethereum -description: Aconseguiu suport en l'ecosistema Ethereum. -lang: ca ---- - -# Suport d'Ethereum {#support} - -## Suport oficial d'Ethereum {#official-support} - -Esteu buscant el suport oficial d'Ethereum? La primera cosa que heu de saber és que Ethereum és descentralitzat. Això vol dir que Ethereum no pertany a cap persona, entitat o organització central i, per aquest motiu, no existeix cap canal de suport oficial. - -Entendre la realitat descentralitzada d'Ethereum és vital, ja que qualsevol que afirmi ser el suport oficial d'Ethereum probablement us estarà intentant estafar! La millor forma de protegir-se contra els estafadors és educant-se un mateix i prendre proteccions de forma segura. - - - Seguretat i prevenció d'estafes a Ethereum - - - - Apreneu sobre els fonaments d'Ethereum - - -Malgrat la mancança de suport oficial, molts grups, comunitats i projectes a través de tot l'ecosistema Ethereum estan encantats per poder ajudar-vos. - -## Suport amb la cartera {#wallet-support} - -Teniu problemes amb la vostra cartera? La majoria de les carteres tenen equips de suport especialitzat que us poden ajudar: - -- [MetaMask](https://metamask.zendesk.com/hc/) -- [Argent](https://support.argent.xyz/hc/) -- [MyEtherWallet](https://help.myetherwallet.com/) - -_No és una llista exhaustiva. Necessiteu ajuda per trobar suport amb alguna cartera en especial? Uniu-vos al [discord ethereum.org](https://discord.gg/ethereum-org) i us intentarem ajudar._ - -Esteu buscant una cartera d'Ethereum? [Exploreu el nostre llistat de carteres d'Ethereum](/wallets/find-wallet/). - -## Construir aplicacions descentralitzades {#building-support} - -El procès de construcció pot ser difícil. Aquí teniu alguns espais enfocats al desenvolupament amb desenvolupadors experimentats en Ethereum que estaran encantats de poder ajudar. - -- [Discord CryptoDevs](https://discord.gg/Z9TA39m8Yu) -- [Ethereum Stackexchange](https://ethereum.stackexchange.com/) -- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) -- [Universitat Web3](https://www.web3.university/) - -També podeu trobar documentació i guies per al desenvolupament en la nostra secció de [recursos per a desenvolupadors d'Ethereum](/developers/). - -### Utilitats {#dapp-tooling} - -La vostra pregunta fa referència a alguna eina, projecte o biblioteca en particular? La majoria de projectes tenen servidors de xat o fòrums dedicats a donar-vos suport. - -Aquí teniu alguns exemples populars: - -- [Solidity](https://gitter.im/ethereum/solidity/) -- [ethers.js](https://discord.gg/6jyGVDK6Jx) -- [web3.js](https://discord.gg/GsABYQu4sC) -- [Hardhat](https://discord.gg/xtrMGhmbfZ) -- [Truffle](https://discord.gg/8uKcsccEYE) -- [Alchemy](http://alchemy.com/discord) - -## Executar un node {#node-support} - -Si esteu executant un node o un validador, aquí teniu algunes comunitats que es dediquen a ajudar-vos a començar. - -- [Discord EthStaker](https://discord.gg/ethstaker) -- [Reddit d'EthStaker](https://www.reddit.com/r/ethstaker) - -La majoria dels equips que construeixen clients Ethereum també tenen espais públics i dedicats, on podeu trobar suport i fer preguntes. - -### Clients d'execució {#execution-clients} - -- [Geth](https://discord.gg/FqDzupGyYf) -- [Nethermind](https://discord.gg/YJx3pm8z5C) -- [Besu](https://discord.gg/p8djYngzKN) -- [Erigon](https://github.com/ledgerwatch/erigon/issues) - -### Clients de consens {#consensus-clients} - -- [Prysm](https://discord.gg/prysmaticlabs) -- [Nimbus](https://discord.gg/nSmEH3qgFv) -- [Lighthouse](https://discord.gg/cyAszAh) -- [Teku](https://discord.gg/7hPv2T6) -- [Lodestar](https://discord.gg/aMxzVcr) - -També podeu [aprendre com executar un node aquí](/developers/docs/nodes-and-clients/run-a-node/). - -## Preguntes freqüents {#faq} - -#### He enviat ETH a la cartera equivocada {#wrong-wallet} - -En Ethereum les transaccions ja enviades són irreversibles. Malauradament, si heu enviat ETH a la cartera equivocada, no hi ha forma de recuperar aquests fons. Ethereum no pertany a cap persona, entitat o organització central, cosa que significa que ningú pot retornar transaccions. Per tant, és vital que comproveu dues vegades les vostres transaccions abans d'enviar-les. - -#### Com puc reclamar el meu regal d'Ethereum? {#giveaway-scam} - -Els regals d'Ethereum són estafes dissenyades per robar els vostres ETH. No caigueu en la temptació d'ofertes que semblen massa bones per ser veritat; si envieu ETH a aquestes adreces de regals, no rebreu cap regal i no podreu recuperar els vostres fons. - -[Més informació sobre la prevenció d'estafes](/security/#common-scams) - -#### La meva transacció està bloquejada {#stuck-transaction} - -Les transaccions en Ethereum, de vegades, poden restar bloquejades si heu enviat una tarifa de transacció més baixa de la requerida a causa de la demanda de la xarxa. Moltes carteres donen l'opció de reenviar la mateixa transacció amb una tarifa de transacció més alta per a permetre que la transacció sigui processada. D'altra banda, podeu cancel·lar una transacció pendent enviant una transacció a la vostra adreça i utilitzant el mateix codi d'un sòl ús que la transacció pendent. - -[Com accelerar o cancel·lar una transacció pendent en MetaMask](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) - -[Com cancel·lar transaccions pendents en Ethereum](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) - -#### Com puc minar Ethereum? {#mining-ethereum} - -No recomanem comprar equipament per a la mineria si no esteu minant Ethereum actualment. Durant el segon trimestre de 2022 tindrà lloc [la fusió](/roadmap/merge/): canviarem Ethereum de la prova de treball a la prova de participació. Aquest canvi significa que minar Ethereum ja no serà possible. diff --git a/src/content/translations/ca/dao/index.md b/src/content/translations/ca/dao/index.md deleted file mode 100644 index 79293150320..00000000000 --- a/src/content/translations/ca/dao/index.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -title: Organitzacions Autònomes Descentralitzades (DAO en anglès) -description: Una visió general de les DAO a Ethereum -lang: ca -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: Representació d'una DAO que vota una proposta. -summaryPoint1: Comunitats de membres sense un lideratge centralitzat. -summaryPoint2: Una forma segura de col·laborar amb desconeguts a internet. -summaryPoint3: Un lloc segur per destinar fons per a una causa específica. ---- - -## Què són les DAO? {#what-are-daos} - -Les DAOs són sistemes segurs i eficaços perquè persones afins d'arreu del món treballin plegades. - -Pensa-hi com si fossin negocis natius d'internet que són propietat i estan dirigits col·lectivament pels seus membres. Disposen de tresoreries incorporades a les quals ningú està autoritzat a accedir-hi sense l'aprovació del grup. Les decisions es regeixen mitjançant propostes i votacions per garantir que tothom dins la organització hi té veu. - -No hi ha cap CEO que pugui autoritzar una despesa basada en el seu propi caprici i tampoc hi ha oportunitat de cap CFO dubtós que manipuli els llibres. Tot està al descobert i les normes referents a les despeses es cuinen dins la DAO mitjançant el seu codi. - -## Per què necessitem les DAO? {#why-dao} - -Començar una organització amb algú que involucri fons i diners requereix molta confiança en la gent amb qui es treballa. Però és difícil confiar en algú amb qui només heu interactuat a internet. Amb les DAO no heu de depositar la vostra confiança en cap persona del grup, només en el codi de la DAO, que és 100% transparent i verificable per qualsevol. - -Això obre un ventall de noves oportunitats per a la coordinació i col·laboració global. - -### Una comparativa {#dao-comparison} - -| DAO | Una organització tradicional | -| ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | -| Generalment plana i totalment democratitzada. | Generalment jeràrquica. | -| Es requereix la votació dels membres per implementar qualsevol canvi. | Depenent de l'estructura, es poden demanar canvis des d'una part solament o es pot proposar una votació. | -| Vots comptats i resultats implementats automàticament sense cap intermediari de confiança. | Si es permet una votació, els vots es compten internament i els resultats de la votació han de ser gestionats manualment. | -| Els serveis oferts són gestionats automàticament d'una forma descentralitzada (per exemple en la distribució de fons filantròpics). | Requereix gestió humana o un sistema automàtic de control centralitzat, inclinat a la manipulació. | -| Tota l'activitat és transparent i totalment pública. | L'activitat és típicament privada i limitada al públic. | - -### Exemples de DAO {#dao-examples} - -Perquè sigui més comprensible, aquí teniu alguns exemples de com podríeu utilitzar una DAO: - -- La caritat – podeu acceptar pertinences i donacions per part de qualsevol persona del món i el grup pot decidir com es volen gastar aquestes donacions. -- Una xarxa de treballadors autònoms – podeu crear una xarxa de contractants que agrupen els seus fons per a espais d'oficina i subscripcions de software. -- Empreses i subvencions – podeu crear un fons de risc que agrupi capitals d'inversió i voti a les empreses per donar-hi suport. Els diners reemborsats es poden redistribuir més endavant entre els membres de la DAO. - -## Pertinença a la DAO {#dao-membership} - -Hi ha diferents models de pertinença a la DAO. La pertinença pot determinar com funciona la votació i altres parts clau de la DAO. - -### Pertinença basada en tókens {#token-based-membership} - -Generalment completament lliure de permisos, depenent del token utilitzat. La majoria d'aquests tókens de govern es poden intercanviar sense cap permís en una casa de canvi descentralitzada. D'altres s'han de guanyar aportant liquiditat o alguna altra prova de treball o «proof-of-work». De qualsevol manera, tan sols mantenir el token garanteix l'accés al vot. - -_Típicament utilitzat per a governar amplis protocols descentralitzats o els tókens en sí mateixos._ - -#### Un exemple famós {#token-example} - -[MakerDAO](https://makerdao.com) – El token MKR de MakerDAO està ampliament disponible en cases de canvi descentralitzades. Per tant, qualsevol en pot comprar per tenir poder de vot en el futur protocol de Maker. - -### Pertinença basada en accions {#share-based-membership} - -Les DAO basades en accions necessiten de més permisos, però tot i això són bastant obertes. Qualsevol membre potencial pot presentar una proposta per unir-se a la DAO, generalment oferint tributs que tinguin algun valor en forma de tókens o treball. Les accions representen el poder de vot directe i la propietat. Els membres poden sortir en qualsevol moment amb la seva part proporcional de la tresoreria. - -_Generalment utilitzada per organitzacions més unides i centrades en l'ésser humà com ara les caritats, col·lectius de treballadors i clubs d'inversions. També poden governar protocols i tókens._ - -#### Un exemple famós {#share-example} - -[MolochDAO](http://molochdao.com/) – MolochDAO està enfocat a projectes de fons d'Ethereum. Requereixen una proposta per la pertinença per la qual cosa el grup pot avaluar si teniu l'experiència i el capital necessaris per fer judicis informats sobre potencials becaris. No podeu obtenir accés a la DAO en el mercat obert. - -## Com funcionen les DAO? {#how-daos-work} - -La vèrtebra d'una DAO és el contracte intel·ligent. El contracte defineix les normes de l'organització i suporta la tresoreria del grup. Un cop el contracte està actiu a Ethereum, ningú pot canviar les normes, excepte amb una votació. Si algú intenta fer alguna cosa que no estigui coberta per les normes i la lògica del codi, no tindrà èxit. I com que la tresoreria també està definida pel contracte intel·ligent, tampoc ningú pot gastar els diners sense l'aprovació del grup. Això vol dir que les DAO no necessiten una autoritat centralitzada. En canvi, el grup pren decisions de forma col·lectiva i s'autoritzen els pagaments automàticament quan ocorren votacions. - -Això és possible perquè els contractes intel·ligents són a prova de manipulació un cop estan actius a Ethereum. No podeu editar el codi (normes de la DAO) sense que la gent se n'adoni, ja que tot és públic. - - - Més informació sobre els contractes intel·ligents - - -## Ethereum i les DAO {#ethereum-and-daos} - -Ethereum és el fonament perfecte per a les DAO per un seguit de raons: - -- El propi consens d'Ethereum està prou distribuit i establert perquè les organitzacions confïin en la xarxa. -- El codi dels contractes intel·ligents no pot ésser modificat un cop està actiu, ni tan sols pels seus propis propietaris. Això permet a la DAO executar-se amb les normes amb les quals va ser programada. -- Els contractes intel·ligents poden rebre/enviar fons. Sense això necessitaríeu un intermediari de confiança per gestionar els fons del grup. -- La comunitat d'Ethereum ha provat ser més col·laborativa que competitiva i ha permès emergir ràpidament millors pràctiques i sistemes de suport. - -## Formar part / iniciar una DAO {#join-start-a-dao} - -### Formar part d'una DAO {#join-a-dao} - -- [DAO comunitàries d'Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [Llistat de DAO de DAOHaus](https://app.daohaus.club/explore) - -### Iniciar una DAO {#start-a-dao} - -- [Convocar una DAO amb DAOHaus](https://app.daohaus.club/summon) -- [Crear una DAO impulsada per Aragon](https://aragon.org/product) -- [Iniciar una colònia](https://colony.io/) -- [Construir una DAO amb DAOstack](https://daostack.io/) - -## Llegir-ne més {#further-reading} - -### Articles sobre DAO {#dao-articles} - -- [Què és una DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) -- [La casa de les DAO](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) -- [Què és una DAO i per què serveix?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOHaus](https://daohaus.club/) -- [Com iniciar una DAO-Comunitat impulsada digitalment](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOHaus](https://daohaus.club/) -- [Què és una DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) - -### Vídeos {#videos} - -- [Què és una DAO en criptografia?](https://youtu.be/KHm0uUPqmVE) diff --git a/src/content/translations/ca/defi/index.md b/src/content/translations/ca/defi/index.md deleted file mode 100644 index 78f3cb7d250..00000000000 --- a/src/content/translations/ca/defi/index.md +++ /dev/null @@ -1,351 +0,0 @@ ---- -title: Finances Descentralitzades (DeFi) -description: Una visió general de les DeFi a Ethereum -lang: ca -template: use-cases -emoji: ":money_with_wings:" -image: ../../../../assets/use-cases/defi.png -alt: Un logotip d'Ethereum fet de peces de lego. -sidebarDepth: 2 -summaryPoint1: Una alternativa global i oberta al sistema financer actual. -summaryPoint2: Productes que et permeten manllevar, estalviar, invertir, fer compra-vendes i més. -summaryPoint3: Basat en tecnologia de codi obert amb la que qualsevol pot programar-hi. ---- - -DeFi és un sistema obert i global pensat per l'era d'internet: una alternativa a un sistema opac, hípercontrolat i sustentat per una infraestructura i uns processos antics. Us dona control i visibilitat sobre els vostres diners. Us dona accés als mercats globals i alternatives a la vostra moneda o opcions bancàries locals. Els productes DeFi obren els serveis financers a qualsevol persona amb una connexió d'internet, alhora que són els propis usuaris els que n'ostenten la propietat i els mantenen. Fins ara, desenes de milions de dòlars en criptomonedes han passat a través d'aplicacions DeFi i aquest nombre creix cada dia. - -## Què és DeFi? {#what-is-defi} - -DeFi és un terme col·lectiu per als productes i serveis financers que són accessibles per a qualsevol persona que pugui fer servir Ethereum, qualsevol persona amb una connexió d'internet. Amb DeFi, els mercats estan sempre oberts i no hi ha cap autoritat central que pugui bloquejar pagaments o denegar-vos accés a res. Els serveis que abans eren lents i sensibles als errors humans són ara automàtics i més segurs, perquè estan gestionats per un codi informàtic que qualsevol pot inspeccionar i sotmetre a escrutini. - -Hi ha una criptoeconomia puixant allà fora, on podeu prestar, demanar prestat, rebre interessos i molt més. Els argentins amb coneixements de criptografia han usat les DeFi per escapar de la inflació tan limitadora que pateix el seu país. Les empreses han començat a pagar els salaris dels seus empleats en temps real. Hi ha hagut casos de persones que han pagat préstecs per valor de milions de dòlars, sense la necessitat de cap identificació personal. - - - -## DeFi vs les finances tradicionals {#defi-vs-tradfi} - -Una de les millors maneres de veure el potencial de DeFi és entendre els problemes que hi ha avui. - -- Hi ha persones que no tenen la possibilitat d'obrir un compte bancari o d'usar serveis financers. -- La falta d'accés als serveis financers pot impedir que determinades persones puguin aconseguir feina. -- Els serveis financers poden impedir que cobreu un sou. -- Un dels costos d'usar els serveis financers tradicionals és l'accés que donem a un tercer a moltes de les nostres dades personals. -- Governs i altres institucions centralitzades tenen poder per tancar els mercats, si els interessa. -- L'horari per a fer transaccions està sovint limitat a l'horari laboral d'una zona horària determinada. -- Les transferències monetàries poden arribar a trigar dies a completar-se, a causa de procediments interns que realitzen humans. -- Sempre hi ha primes o comissions que es paguen als intermediaris dels serveis financers. - -### Una comparativa {#defi-comparison} - -| DeFi | Finances tradicionals | -| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------- | -| El dipositari dels vostres diners sou vosaltres mateixos. | Els dipositaris dels vostres diners són empreses. | -| Controleu on van els vostres diners i com es gasten. | Heu de confiar en altres empreses que no facin un mal ús dels vostres diners, com ara prestar-lo a prestataris d'alt risc. | -| Les transferències de fons es completen en qüestió de minuts. | Els pagaments poden trigar dies, a causa de procediments manuals. | -| Les transaccions són fetes amb pseudònims. | L'activitat financera va sempre unida estretament a la vostra identitat. | -| DeFi és obert a tothom. | Heu de sol·licitar accés per poder usar els serveis financers. | -| Els mercats estan sempre oberts. | Els mercats tanquen perquè els empleats necessiten descansar. | -| Està construït de forma transparent: qualsevol pot mirar les dades d'un producte i inspeccionar com funciona el sistema. | Les institucions financeres són llibres tancats: no podeu veure el seu historial de préstecs, un informe dels seus actius sota gestió, etc. | - - - Exploreu aplicacions DeFi - - -## Va començar amb Bitcoin... {#bitcoin} - -Segons com es miri, Bitcoin va ser la primera aplicació DeFi. Bitcoin us permet tenir control i ser propietaris dels vostres fons i enviar-los a qualsevol lloc del món. Això passa perquè permet que moltes persones que no tenen perquè necessàriament confiar entre elles puguin posar-se d'acord en un registre de comptes (de pagaments i cobraments), sense la necessitat de tenir un intermediari de confiança. Bitcoin és obert a tothom i ningú té l'autoritat de canviar les seves regles. Les regles de Bitcoin, igual que la seva escassetat i la seva accessibilitat, estan escrites en la pròpia tecnologia. No és com en les finances tradicionals on els governs poden emetre nova moneda, cosa que devalua el valor dels vostres estalvis, o on les empreses poden tancar els mercats. - -Ethereum desenvolupa tot això. Com Bitcoin, les regles no es poden canviar i tothom hi té accés. Però també permet que el diners digitals siguin programables mitjançant [contractes intel·ligents](/glossary#smart-contract), així podeu fer més coses, a banda de guardar o enviar valor. - - - -## Diners programables {#programmable-money} - -Sona estrany... «per què he de voler programar els meus diners»? En tot cas, aquesta és una característica per defecte dels tókens a Ethereum. Tothom pot programar lògica en els pagaments. Així teniu el control i la seguretat de Bitcoin juntament amb els serveis que proporcionen les institucions financeres. Això permet que feu coses amb criptomonedes que no podeu fer amb Bitcoin, com prestar i endeutar-te, programar pagaments, invertir en índexs, fons i altres. - - -
Exploreu els nostres suggeriments d'aplicacions DeFi per provar-les, si sou novells a Ethereum.
- - Exploreu aplicacions DeFi - -
- -## Què podeu fer amb DeFi? {#defi-use-cases} - -Hi ha una alternativa descentralitzada a la majoria dels serveis financers. Però Ethereum també crea oportunitats per crear productes financers que són completament nous. Aquesta és una llista en continu creixement. - -- [Enviar diners a tot el món](#send-money) -- [Transferir diners a tot el món](#stream-money) -- [Accedir a divises estables](#stablecoins) -- [Endeutar-se, mitjançant l'entrega d'una garantia](#lending) -- [Endeutar-se sense l'entrega d'una garantia](#flash-loans) -- [Començar a estalviar en criptomonedes](#saving) -- [Comprar i vendre tókens](#swaps) -- [Fer créixer la vostra cartera d'inversions](#investing) -- [Aconseguir fons per a desenvolupar les vostres idees](#crowdfunding) -- [Comprar assegurances](#insurance) -- [Gestionar la vostra cartera d'inversions](#aggregators) - - - -### Enviar diners arreu del món, ràpidament {#send-money} - -Com a cadena de blocs (o «blockchain»), Ethereum està dissenyat per enviar transaccions de forma segura i global. Igual que Bitcoin, Ethereum converteix l'acte d'enviar diners arreu del món en una cosa tan fàcil com enviar un correu electrònic. Només heu d'introduir el [el nom ENS](/nft/#nft-domains) del destinatari (com josep.eth) o l'adreça de la seva cartera i el vostre pagament li arribarà en qüestió de minuts (normalment). Per a enviar o rebre pagaments, necessiteu una [cartera](/wallets/). - - - Exploreu dapps de pagament - - -#### Transferir diners arreu del món... {#stream-money} - -També podeu transferir diners dins d'Ethereum. Això us permet pagar salaris en un segon i donar als treballadors accés als seus diners en qualsevol moment que ho necessitin. O llogar coses en un segon, com un traster o una moto elèctrica. - -I si no voleu enviar o transferir [ETH](/eth/) a causa de les grans oscil·lacions de valor que pot patir, hi ha divises alternatives dins d'Ethereum: monedes estables («stablecoins»). - - - -### Accedir a divises estables {#stablecoins} - -La volatilitat de les criptomonedes és un problema per a molts productes financers i la despesa en general. La comunitat DeFi ho ha sol·lucionat amb les monedes estables o «stablecoins». El seu valor està lligat a un altre actiu, normalment una divisa popular com els dòlars americans. - -Monedes com DAI o USDC tenen un valor que oscil·la uns pocs cèntims al voltant d'un dòlar. Això les fa perfectes per a rebre interès, estalviar o invertir. Molta gent a Llatinoamèrica ha usat les monedes estables com una forma de protegir els seus estalvis en temps d'incertesa en relació amb les monedes emeses pels seus governs. - - - Més informació sobre monedes estables - - - - -### Obtenir préstecs {#lending} - -Obtenir diners prestats de proveïdors descentralitzats té dues varietats principals. - -- Persona-persona, és a dir el prestatari obtindrà el préstec directament d'un prestador específic. -- Basat en grups, on els prestadors proveeixen els fons (liquiditat) a un grup d'on els prestataris poden obtenir els préstecs. - - - Exploreu dapps per obtenir préstecs - - -Usar un prestatari descentralitzat té molts avantatges... - -#### Demanar prestat de forma privada {#borrowing-privacy} - -Avui dia, prestar diners i demanar-ne prestats té a veure amb els individus involucrats en l'operació. Els bancs, abans de deixar diners, han de saber si una persona podrà tornar un préstec. - -Els préstecs descentralitzats funcionen sense necessitat que les parts s'hagin d'identificar. A canvi, el prestatari ha de dipositar una garantia que el prestador rebrà automàticament en cas que el préstec no sigui retornat. Alguns prestadors accepten fins i tot NFT com a garantia. Els NFT són una escriptura de propietat lligada a un actiu únic, com pugui ser una pintura. [Més sobre els NFT](/nft/) - -Això us permet demanar diners sense la necessitat d'haver de passar per auditories o haver d'entregar informació privada. - -#### Accedir a fons globals {#access-global-funds} - -Quan utilitzeu un prestador descentralitzat teniu accés a fons dipositats d'arreu del món, no només dels fons custodiats que pugui tenir el vostre banc o la vostra institució de crèdit. Això fa els préstecs més accessibles i millora els tipus d'interès. - -#### Eficiències fiscals {#tax-efficiencies} - -Demanar préstecs pot donar-vos accés a fons que necessiteu sense haver de vendre els vostres ETH (cosa que pot generar una obligació fiscal). En canvi podeu fer servir els vostres ETH com a garantia per a obtenir un préstec amb una divisa estable («stablecoin»). Això us dona el fluxe de caixa que necessiteu i us permet mantenir els vostres ETH. Les divises estables són tókens que són millors per quan teniu necessitat de caixa, tenen l'avantatge que el seu valor no fluctua com pugui fer-ho l'ETH. [Més sobre les divises estables](#stablecoins) - -#### Préstecs ràpids {#flash-loans} - -Els préstecs ràpids són una forma experimental que us permet demanar manlleus sense necessitat de garantia o de donar informació privada. - -No són gaire accessibles a persones sense formació tècnica en aquest moment, però donen una idea del que pot arribar a ser possible per a tothom en el futur. - -Funciona sobre la base que el préstec és entregat i retornat en una mateixa transacció. Si no es pot retornar, la transacció es reverteix com si no hagués passat. - -Sovint els fons que s'usen estan en grups de liquiditat (grans grups de fons usats per ser prestats). Si no es fan servir en un moment donat, es crea l'oportunitat per a algú de demanar-los prestats, fer una transacció amb ells i retornar-los totalment, gairebé literalment al mateix moment que han estat prestats. - -Això significa que s'ha de programar a mida per a cada transacció. Un exemple senzill podria ser el d'algú que fa servir un préstec ràpid per a comprar un actiu a un preu per a revendre'l en un mercat (o borsa) diferent, on el preu sigui més alt. - -Així, en una transacció qualsevol hi passa el següent: - -- Demaneu una quantitat X prestada de $asset a 1,00$ del mercat A -- Veneu X $asset al mercat B per 1,10$ -- Torneu el préstec al mercat A -- Us quedeu el benefici de la transacció menys la comissió - -Si la disponibilitat del mercat B cau de sobte i l'usuari no pot comprar prou actiu X per a cobrir el préstec original, la transacció simplement no s'executaria. - -Per a poder dur a terme l'exemple anterior en les finances tradicionals, necessitaríeu una quantitat enorme de diners. Aquest tipus d'estratègies de negoci només estan disponibles per aquells que disposin d'una gran riquesa. Els préstecs ràpids són un exemple d'un futur on tenir diners no és necessàriament un prerequisit per a guanyar diners. - -[Més sobre préstecs ràpids](https://aave.com/flash-loans/) - - - -### Comenceu a estalviar amb criptomonedes {#saving} - -#### Prestar {#lending} - -Podeu guanyar interessos per les vostres criptomonedes fent préstecs i veure com els vostres fons creixen en temps real. En aquest moment els tipus d'interès són molt superiors al que normalment trobeu al vostre banc local (si teniu prou sort com per tenir-ne algun a prop). Aquí en teniu un exemple: - -- Presteu els vostres 100 Dai, una [moneda estable](/stablecoins/), a un producte com Aave. -- Rebeu 100 Aave Dai (aDai), que és un token que representa els vostres Dai prestats. -- Els vostres aDai s'incrementaran en base als tipus d'interès i podreu veure créixer el vostre saldo a la vostra cartera. En funció del tipus d'interès, el saldo de la vostra cartera serà de 100.1234 al cap d'uns pocs dies o, fins i tot, hores! -- Podeu retirar una quantitat de Dai normal, igual a la del vostre saldo, en qualsevol moment. - - - Veure dApps de préstecs - - -#### Loteria sense pèrdues {#no-loss-lotteries} - -Les loteries sense pèrdues com PoolTogether són una nova forma divertida i innovadora d'estalviar diners. - -- Compreu 100 tiquets fent servir 100 tókens Dai. -- Rebeu 100 plDai que representen els vostres 100 tiquets. -- Si un dels vostres tiquets és guanyador, el vostre saldo de plDai s'incrementarà en la quantitat del premi. -- Si no guanyeu, els vostres 100 plDai es guarden per al sorteig de la propera setmana. -- Podeu retirar una quantitat de Dai normal, igual al saldo de plDai que tingueu a la vostra cartera, en qualsevol moment. - -La quantitat del premi surt dels interessos que es generen prestant els tiquets dipositats com en l'exemple de préstecs anterior. - - - Proveu PoolTogether - - - - -### Tókens dels mercats d'intercanvi {#swaps} - -Hi ha milers de tókens a Ethereum. Els mercats d'intercanvi descentralitzats (DEX) us permeten intercanviar diferents tókens, en qualsevol moment que vulgueu. No doneu mai el control sobre els vostres actius. És com fer servir un mercat d'intercanvi de divises quan es visita un altre país. Però la versió DeFi no tanca mai. Els mercats estan oberts 24 hores al dia, 365 dies l'any i la tecnologia garanteix que sempre hi haurà algú que accepti la transacció. - -Per exemple, si voleu fer servir la loteria sense pèrdues PoolTogether (descrita més amunt), necessitareu un token com Dai o USDC. Aquests DEX us permeten intercanviar els vostres ETH per aquets tókens i recuperar els ETH quan hàgiu acabat. - - - Veure intercanvi de tókens - - - - -### Comerç avançat {#trading} - -Hi ha opcions més avançades per a qui vulgui una mica més de control sobre les operacions d'intercanvi. Ordres amb límit, contractes perpetus, palanquejament i moltes altres. Amb el comerç descentralitzat teniu accés a liquiditat global, els mercats no tanquen mai i sempre teniu control dels vostres actius. - -Quan feu servir un mercat (o casa de canvi) centralitzat heu de dipositar-hi els vostres actius abans d'executar la transacció i confiar que els vigilaran per tu. Mentre els vostres actius estan dipositats estan en risc, ja que els mercats centralitzats són objectius atractius per als hackers. - - - Veure dapps de comerç - - - - -### Fes créixer la vostra cartera {#investing} - -Hi ha productes de gestió de fons a Ethereum que poden fer créixer la vostra cartera en base a l'estratègia que trieu. És automàtic, obert a tothom i no requereix la presència d'un gestor humà que s'endugui una comissió. - -Un bon exemple és el [fons DeFi Pulse Index (DPI)](https://defipulse.com/blog/defi-pulse-index/). Aquest és un fons que s'ajusta automàticament per assegurar que la vostra cartera sempre inclou [els tókens DeFi més rellevants en funció de la seva capitalització](https://www.coingecko.com/en/defi). Mai n'heu de gestionar cap detall i podeu retirar actius del fons en qualsevol moment. - - - Veure dapps d'inversió - - - - -### Finançament per a les vostres idees {#crowdfunding} - -Ethereum és una plataforma ideal per al crowfunding: - -- Els inversors potencials poden venir de qualsevol lloc: Ethereum i els seus tókens estan oberts a tothom, arreu del món. -- És transparent, de manera que els receptors dels fons poden demostrar la quantitat de diners que han aixecat. Fins i tot podeu seguir el rastre de com els fons s'apliquen més endavant. -- Els receptors dels fons poden definir el retorn immediat dels diners si, per exemple, hi ha una data límit per aconseguir una quantitat mínima. - - - Veure dapps de crowfunding - - -#### Finançament quadràtic {#quadratic-funding} - -Ethereum és un sofware de codi obert i molta de la feina que s'ha fet fins ara l'ha finançada la comunitat. Això ha comportat el creixement d'un nou model de finançament interessant: el finançament quadràtic. Té el potencial de millorar la manera en què es subvenciona tot tipus de béns públics en un futur. - -El finançament quadràtic assegura que els projectes que reben més finançament són aquells amb major demanda única. En altres paraules, projectes que pretenen millorar les vides del major nombre de persones. Funciona així: - -1. Hi ha un conjunt de fons donats. -2. Comença una ronda de finançament. -3. La gent pot manifestar la seva preferència per un projecte donant diners. -4. Un cop la ronda ha acabat, el conjunt de fons es distribueix entre els projectes. Aquells amb més demanda directa obtenen els imports més elevats. - -Això vol dir que el Projecte A amb les seves 100 donacions d'1 dòlar, podria acabar rebent més finançament que el Projecte B amb una sola donació de 10.000 dòlars (en funció de la quantitat total de fons disponibles). - -[Més sobre finançament quadràtic](https://wtfisqf.com) - - - -### Assegurances {#insurance} - -Les assegurances descentralitzades pretenen ser més econòmiques, ràpides a cobrar pels afectats i més transparents. Amb més automatitzacions, les cobertures són més econòmiques i els assegurats cobren les indemnitzacions més ràpidament. Les dades que s'utilitzen per decidir sobre una reclamació són completament transparents. - -Els productes Ethereum, com qualsevol software, poden tenir errors de codi i ser atacats. Així que, en aquests moments, moltes de les assegurances en aquest sector se centren en protegir els usuaris de la possible pèrdua dels seus fons. Tot i això hi ha projectes que estan treballant per donar cobertura a qualsevol accident habitual. Un bon exemple n'és la cobertura d'Etherisc Crop que pretén [protegir petits agricultors a Kènia de les pèrdues per sequeres i inundacions](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Les assegurances descentralitzades poden proporcionar cobertures més econòmiques als agricultors que, sovint, no poden permetre's assegurances tradicionals. - - - Veure dapps d'assegurances - - - - -### Agregadors i gestors de carteres {#aggregators} - -Amb tantes coses alhora, necessitareu una forma per fer un seguiment de totes les inversions, préstecs i compra-vendes. Hi ha una munió de productes que us permeten coordinar la vostra activitat DeFi des d'un mateix lloc. Aquesta és la bellesa de l'arquitectura oberta de les DeFi. Equips de desenvolupadors fan interfícies on no només podeu veure els saldos de tots els vostres productes, sinó que també podeu utilitzar les seves funcions. Això us pot ser útil alhora que continueu l'exploració de les DeFi. - - - Veure les dapps de gestió de carteres - - - - -## Com funcionen les DeFi? {#how-defi-works} - -Les DeFi utilitzen les criptomonedes i els contractes intel·ligents per oferir serveis sense intermediaris. Avui dia en el món financer, les institucions financeres actuen com a garants de les transaccions. Això els dona a aquestes institucions un poder immens, ja que els vostres diners flueixen a través seu. A més, milers de milions de persones arreu del món no tenen accés a un compte bancari. - -En les DeFi, un contracte intel·ligent substitueix la institució financera en la transacció. Un contracte intel·ligent és un tipus de compte d'Ethereum on hi ha fons dipositats i que pot enviar-los o reemborsar-los, en base a determinades condicions. Ningú pot alterar aquest contracte intel·ligent quan està funcionant: sempre respondrà tal com està programat. - -Un contracte que està dissenyat per entregar un subsidi o diners de butxaca, podria programar-se per enviar diners del Compte A al Compte B cada divendres. I ho faria sempre que al Compte A hi hagués fons disponibles. Ningú pot canviar el contracte i afegir un Compte C com a beneficiari per tal de robar els fons. - -A més, els contractes són públics per tal que tothom els pugui inspeccionar i auditar. Això significa que els contractes maliciosos quedaran aviat sotmesos a l'escrutini públic. - -Significa també que actualment hi ha una necessitat de confiar en els membres més tècnics de la comunitat d'Ethereum que puguin llegir codi. La comunitat basada en el codi obert ajuda a mantenir els desenvolupadors sota control, però aquesta necessitat s'anirà reduint amb el temps, a mida que els contractes intel·ligents siguin més fàcils de llegir i es desenvolupin altres formes de demostrar la fiabilitat d'un determinat codi. - -## Ethereum i DeFi {#ethereum-and-defi} - -Ethereum és el fonament perfecte per a les DeFi per diverses raons: - -- No hi ha ningú que sigui el propietari d'Ethereum o dels contractes intel·ligents que hi viuen; això dona a tothom l'oportunitat de usar les DeFi. També significa que ningú pot canviar les normes en la vostra contra. -- Tots els productes DeFi parlen el mateix idioma: Ethereum. Això significa que molts dels productes funcionen perfectament de forma conjunta. Podeu prestar tókens en una plataforma i intercanviar-los amb l'interès subjacent en un mercat diferent o fins i tot en una aplicació totalment diferent. És com poder cobrar punts de fidelitat, directament al voostre banc. -- Els tókens i les criptomonedes estan construits sobre Ethereum, un llibre major compartit; recollir i portar al dia les transaccions que es produeixen és la feina d'Ethereum. -- Ethereum proporciona una llibertat financera completa: la majoria dels productes mai tindran la custòdia dels vostres fons, deixant que sigueu qui en tingui el control. - -Podeu pensar en les DeFi com en capes: - -1. La cadena de blocs («blockchain»): Ethereum conté l'historial de transaccions i l'estat dels comptes. -2. Els actius: [ETH](/eth/) i la resta de tókens (divises). -3. Els protocols\_ [contractes intel·ligents](/glossary/#smart-contract) que proporcionen les funcionalitats, per exemple un servei que permeti el préstec d'actius de forma descentralitzada. -4. [Les aplicacions](/dapps/): els productes que fem servir per a gestionar i accedir als protocols. - -## Construir les DeFi {#build-defi} - -Les DeFi són un moviment de codi obert. Els protocols i les aplicacions DeFi són oberts per tal que puguin ser inspeccionats pels usuaris, ser bifurcats i subjectes a innovació. Com que estan construïts per capes (tots comparteixen la mateixa base de cadena de blocs i els seus actius), els protocols poden combinar-se per generar oportunitats úniques. - - - Més sobre construir dapps - - -## Llegir-ne més {#futher-reading} - -### Dades sobre DeFi {#defi-data} - -- [DeFi Prime](https://defiprime.com/) -- [DeFi Llama](https://defillama.com/) - -### Articles sobre DeFi {#defi-articles} - -- [Una guia per a principiants de les DeFi](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, 6 de gener de 2020_ - -### Vídeos {#videos} - -- [Finematics – Educació sobre finances descentralitzades](https://finematics.com/) – _Vídeos sobre DeFi_ -- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _DeFi Basics: Tot el que necessiteu saber per a començar en aquest sector, a vegades desconcertant._ -- [Pissarra Crypto](https://youtu.be/17QRFlml4pA)_Què són les DeFi?_ - -### Comunitats {#communities} - -- [Servidor Discord de DeFi Llama](https://discord.gg/buPFYXzDDd) -- [Servidor Discord de DeFi Pulse](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/ca/nft/index.md b/src/content/translations/ca/nft/index.md deleted file mode 100644 index 21af8178c62..00000000000 --- a/src/content/translations/ca/nft/index.md +++ /dev/null @@ -1,433 +0,0 @@ ---- -title: Tókens no fungibles (NFT) -description: Resum general de NFT a Ethereum -lang: ca -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: Un logotip d'Eth mostrat mitjançant un holograma. -summaryPoint1: Una forma de representar quelcom únic com ara un actiu basat en Ethereum. -summaryPoint2: Els NFT estan donant més poder als creadors de contingut que mai. -summaryPoint3: Impulsats per petits contractes a la cadena de blocs d'Ethereum. ---- - -Actualment, els NFT estan prenent el món de l'art digital i dels objectes de col·lecció. Els artistes digitals estan veient com la seva vida canvia gràcies a les enormes vendes a un nou públic de criptomonedes. I els famosos s'estan incorporant alhora que descobreixen una nova oportunitat de connectar amb els seguidors. Però l'art digital és només una forma d'utilitzar els NFT. En realitat poden ser utilitzats per a representar la titularitat de qualsevol actiu únic, com una escriptura per a un objecte dins el regne digital o físic. - -Si Andy Warhol hagués nascut a finals dels noranta, probablement hauria encunyat la Sopa de Campbell com un NFT. Només és qüestió de temps que Kanye faci una sèrie de Yeezys a Ethereum. I, algun dia, la titularitat del vostre cotxe es podria demostrar amb un NFT. - -## Què és un NFT? {#what-are-nfts} - -Els NFT són tókens que poden ser utilitzats per a representar la propietat d'objectes únics. Ens permeten tokenitzar coses com ara obres d'art, col·leccionables o inclús propietats immobiliàries. Només poden tenir un titular oficial alhora i estan protegits per la cadena de blocs d'Ethereum; ningú no pot modificar el títol de propietat o copiar/enganxar un nou NFT en el medi existent. - -NFT significa token no fungible o «non-fungible token», en anglès. No fungible és un concepte econòmic que bé podríeu utilitzar per a descriure coses com ara els vostres mobles, un fitxer d'àudio o el vostre ordinador. Aquests objectes no són intercanviables per d'altres ja que tenen propietats úniques. - -Els objectes fungibles, d'altra banda, poden ser intercanviats perquè el seu valor els defineix més que les seves propietats úniques. Per exemple, els ETH o els dòlars són fungibles perquè un ETH o un dòlar es pot canviar per un altre ETH o un altre dòlar. - - - -## L'internet d'actius {#internet-of-assets} - -Els NFT i Ethereum solucionen alguns dels problemes que existeixen actualment a internet. Mentre tot es torna més digital, existeix la necessitat de replicar les propietats d'elements físics com ara l'escassetat, la singularitat i la prova de titularitat. Per no parlar que els objectes digitals sovint funcionen només en el context dels seus productes. Per exemple, no podeu revendre un mp3 d'iTunes que ja heu comprat o no podeu intercanviar els punts de fidelitat d'una empresa per crèdit d'una altra empresa inclús si existeix un mercat per a això. - -Així és com es veu una internet de NFT comparada amb la internet que la majoria de nosaltres utilitza avui en dia... - -### Una comparativa {#nft-comparison} - -| Una internet de NFT | La internet actual | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Els NFT són digitalment únics, no hi ha dos NFT d'iguals. | Una còpia d'un fitxer, com ara un .mp3 o un .jpg, és el mateix que l'original. | -| Cada NFT ha de tenir un propietari. Tothom pot conèixer aquesta informació i és fàcil verificar-la. | Els registres de propietat d'objectes digitals estan emmagatzemats en servidors controlats per institucions; heu de confiar-hi. | -| Els NFT són compatibles amb qualsevol cosa construïda mitjançant Ethereum. Un tiquet NFT per a un esdeveniment pot ser bescanviat a qualsevol mercat d'Ethereum per un altre NFT totalment diferent. Podeu canviar una peça d'art per un tiquet! | Les companyies amb objectes digitals han de construir les seves pròpies infraestructures. Per exemple, una aplicació que emet tiquets digitals per a esdeveniments hauria de crear el seu propi lloc d'intercanvi de tiquets. | -| Els creadors de contingut poden vendre el seu propi treball a qualsevol lloc i poden accedir a un mercat global. | Els creadors confien en la infraestructura i la distribució de les plataformes que utilitzen. Sovint estan subjectes a condicions d'ús i restriccions geogràfiques. | -| Els creadors poden retenir els drets de propietat del seu propi treball i reclamar drets de revenda directament. | Les plataformes, com ara serveis de música en temps real, retenen la majoria dels beneficis de les vendes. | -| Els objectes poden ser utilitzats de formes molt sorprenents. Per exemple, podeu utilitzar obres d'art digitals com a garantia d'un prèstec descentralitzat. | | - -### Exemples d'NFT {#nft-examples} - -El món dels NFT és relativament nou. En teoria, l'abast dels NFT és per tot allò que és únic i que necessita una titularitat demostrable. Aquí teniu alguns exemples d'NFT que existeixen avui en dia, perquè us feu una idea: - -- [Una obra d'art digital única](https://foundation.app/artworks) -- [Unes sabatilles esportives d'edició limitada](https://www.metagrail.co/auctions/91cf83fb-3477-4155-aae8-6dcb9b853397) -- [Un objecte d'un joc](https://market.decentraland.org/) -- [Un treball d'investigació](https://zora.co/0x517bab7661C315C63C6465EEd1b4248e6f7FE183/145) -- [Un col·leccionable digital](https://www.larvalabs.com/cryptopunks/details/1) -- [Un nom de domini](https://app.ens.domains/name/ethereum.eth) -- [Un tiquet que us dona accés a un esdeveniment o un cupó](https://www.yellowheart.io/) - -### Exemples d'ethereum.org {#ethereum-org-examples} - -Utilitzem els NFT per a retornar els nostres contribuïdors i tenim, fins i tot, el nostre propi nom de domini en NFT. - -#### POAP (protocol de prova d'assistència o «Proof of attendance protocol», en anglès) {#poaps} - -Si contribuïu a ethereum.org, podeu reclamar un NFT POAP. Són col·leccionables que demostren que heu participat en un esdeveniment. Algunes trobades sobre criptomonedes han utilitzat els POAP com a tiquet pels seus esdeveniments. [Més informació sobre les contribucions](/contributing/#poap). - -![POAP d'ethereum.org](./poap.png) - -#### ethereum.eth {#ethereum-dot-eth} - -Aquest lloc web té un nom de domini alternatiu impulsat pels NFT, **ethereum.eth**. La nostra adreça `.org` és gestionada centralment mitjançant un sistema de proveïdor de nom de domini (DNS, en anglès), mentre que el `.eth` d'ethereum està registrat a Ethereum mitjançant el Servei de Noms d'Ethereum (ENS, en anglès). És de la nostra propietat i la gestionem nosaltres mateixos. [Feu-hi una ullada al nostre registre ENS](https://app.ens.domains/name/ethereum.eth) - -[Més informació sobre l'ENS](https://app.ens.domains) - -## Com funcionen els NFT? {#how-nfts-work} - -Els NFT són diferents dels tókens ERC-20, com ara DAI o LINK, en els quals cada token individual és completament únic i no és divisible. Els NFT donen la capacitat d'assignar o reclamar titularitat de qualsevol peça única de dades digitals, una titularitat rastrejable mitjançant l'ús de la cadena de blocs d'Ethereum com a registre públic. Un NFT és un encunyat d'objectes digitals com a representació d'actius digitals o no digitals. Per exemple, un NFT podria representar: - -- Art digital: - - GIF - - Col·leccionables - - Música - - Vídeos -- Objectes de la vida real: - - Escriptures d'un cotxe - - Tiquets per a un esdeveniment en la vida real - - Factures tokenitzades - - Documents legals - - Signatures -- Moltíssimes més opcions amb les quals es pot esdevenir creatiu! - -Un NFT només pot tenir un propietari a la vegada. La propietat és gestionada mitjançant l'«uniqueID» i les metadades que cap altre token pot replicar. Els NFT són encunyats mitjançant petits contractes que n'assignen la titularitat i gestionen la transferibilitat. Quan algú crea o encunya un NFT, executa codi emmagatzemat en petits contractes que conformen diferents estàndards, com l'ERC-721. Aquesta informació s'afegeix a la cadena de blocs on es gestiona l'NFT. El procés d'encunyació, des d'una perspectiva superior, té els següents passos a seguir: - -- Crear un nou bloc -- Validar la informació -- Enregistrar la informació dins la cadena de blocs - -Els NFT tenen algunes propietats especials: - -- Cada token encunyat té un identificador únic que es troba enllaçat directament a una adreça d'Ethereum. -- Un NFT no es correspon directament amb un altre token. Per exemple, 1 ETH és exactament el mateix que un altre ETH. Aquest no és el cas amb els NFT. -- Cada token té un propietari i aquesta informació és fàcilment verificable. -- Existeixen a Ethereum i poden ser comprats i venuts en qualsevol mercat NFT basat en Ethereum. - -En altres paraules, si _teniu_ un NFT: - -- Podeu provar fàcilment que és de la vostra propietat. - - Provar que posseïu un NFT és bastant similar a provar que teniu ETH en el vostre compte. - - Per exemple, diguem que compreu un NFT i la propietat d'aquest token únic és transferida a la vostra cartera mitjançant la vostra adreça pública. - - El token prova que la vostra còpia del fitxer digital és l'original. - - La vostra clau privada és la prova de titularitat de l'original. - - La clau pública de contingut del creador serveix com a certificat d'autenticitat per aquest artefacte digital en particular. - - La clau pública del creador és essencialment una part permanent de la història del token. La clau pública del creador pot demostrar que el token que teniu va ser creat per un individu en particular, contribuint així en el seu valor de mercat (versus una falsificació). - - Una altra manera de provar que l'NFT és de la vostra propietat és mitjançant la signatura de missatges que provin que teniu la clau privada darrera l'adreça. - - Tal com es menciona anteriorment, la vostra clau privada és la prova de titularitat de l'original. Això ens diu que les claus privades darrere aquella adreça controlen l'NFT. - - Un missatge signat pot ser utilitzat com a prova que posseïu les vostres claus privades sense revelar-les a ningú i així provant que posseïu també l'NFT! -- Ningú pot manipular-lo de cap manera. -- Podeu vendre'l i, en alguns casos, això farà que el creador original rebi comissions de revenda. -- O podeu quedar-vos-el per sempre, amb total tranquil·litat sabent que el vostre actiu està protegit per la vostra cartera a Ethereum. - -I si _creeu_ un NFT: - -- Podeu provar fàcilment que en sou creador. -- Determineu l'escassetat. -- Podeu guanyar comissions cada vegada que sigui venut. -- Podeu vendre'l en qualsevol mercat NFT o entre parells. No esteu lligat a cap plataforma i no necessiteu cap intermediari. - -### Escassetat {#scarcity} - -El creador d'un NFT decideix l'escassetat dels seus actius. - -Per exemple, penseu en un tiquet per a un esdeveniment esportiu. Així com l'organitzador d'un esdeveniment pot escollir quants tiquets vendre, el creador d'un NFT pot decidir quantes rèpliques existeixen. De vegades són rèpliques exactes, com ara 5000 tiquets d'accés general. De vegades n'hi ha diversos encunyats que són molt similars, però cadascun lleugerament diferent, com ara un tiquet amb seient assignat. En un altre cas, el creador pot voler crear un NFT on només un sigui encunyat com a edició especial col·leccionable. - -En aquests casos, cada NFT tindria un identificador únic (com un codi de barres en un tiquet tradicional), amb un sol propietari. L'escassetat prevista de l'NFT importa, i depèn del creador. Un creador pot tenir la intenció de fer cada NFT completament únic per a crear escassetat o pot tenir les seves raons per produir molts milers de rèpliques. Recordeu, aquesta informació és totalment pública. - -### Comissions {#royalties} - -Alguns NFT pagaran automàticament comissions als seus creadors quan siguin venuts. És encara un concepte en desenvolupament, però és un dels més potents. Els propietaris originals d' [EulerBeats Originals](https://eulerbeats.com/) guanyen un 8% de comissions cada cop que es ven l'NFT. I algunes plataformes, com ara [Foundation](https://foundation.app) i [Zora](https://zora.co/), donen comissions als seus artistes. - -Les comissions són completament automàtiques; per tant, els creadors només han de seure i guanyar comissions mentre el seu treball es ven de persona a persona. De moment, calcular-les és un procès molt manual i hi manca exactitud; a molts creadors no se'ls paga el que mereixen. Si el vostre NFT disposa d'una comissió programada, mai no la perdreu. - -## Per què són utilitzats els NFT? {#nft-use-cases} - -Aquí teniu més informació sobre alguns del més casos d'ús i visions desenvolupats dels NFT d'Ethereum. - -- [Contingut digital](#nfts-for-creators) -- [Objectes de jocs](#nft-gaming) -- [Noms de domini](#nft-domains) -- [Objectes físics](#nft-physical-items) -- [Inversions i garanties](#nfts-and-defi) - - - -### Com poden maximitzar els creadors els seus beneficis {#nfts-for-creators} - -L'ús més gran d'NFT avui en dia és en el regne del contingut digital. L'explicació és senzilla: aquesta indústria actualment està trencada. Els creadors de contingut veuen com els seus beneficis i el seu potencial de guanys se'ls estan empassant les plataformes. - -Un artista que publica el seu treball en una xarxa social fa guanyar diners a la plataforma que ven anuncis als seguidors dels artistes. A canvi, obtenen visibilitat, però la visibilitat no paga les factures. - -Els NFT impulsen l'economia dels nous creadors on aquests no entreguen la propietat dels seus continguts a les plataformes que utilitzen per publicitar-se. La propietat s'incorpora al contingut mateix. - -Quan venen els seus continguts, els fons van directament a ells. Si el nou propietari ven l'NFT, automàticament el creador original pot rebre comissions. Això està garantit cada vegada que es ven perquè l'adreça del creador forma part de les metadades del token, metadades que no poden ser modificades. - - -
Exploreu, compreu o creeu els vostres propis NFT d'art o col·leccionables...
- - Explorar art NFT - -
- -#### El problema de copiar/enganxar {#nfts-copy-paste} - -La gent que està en contra sovint planteja el fet que els NFT «són ximples», en general juntament amb una captura de pantalla d'una obra d'art NFT. «Mireu, ara tinc aquesta imatge gratis!» diuen autocomplaent-se. - -Bé, sí. Però googlejar una imatge del Guernica de Picasso fa que sigueu el nou orgullós propietari d'una multimilionària obra d'art? - -Darrerament el fet de posseir quelcom real és tan valuós com el mercat fa que ho sigui. Com més vegades una peça de contingut sigui capturada, compartida i generalment utilitzada, més valor guanya. - -Tenir la titularitat d'un objecte real verificable sempre tindrà més valor que no tenir-la. - - - -### Potenciar el potencial de joc {#nft-gaming} - -Els NFT han atret molt d'interès per part dels desenvolupadors de jocs. Poden proporcionar registres de titularitat per a objectes d'un joc, alimentar les economies d'un joc i aportar molts beneficis als jugadors. - -En molts jocs habituals podeu comprar objectes per utilitzar-los quan jugueu. Però si aquest objecte fos un NFT, podríeu recuperar els vostres diners venent-lo en acabar amb el joc. Fins i tot podríeu treure'n profit si aquest objecte es tornés més desitjat. - -Per als desenvolupadors de jocs (i emissors d'NFT) podria suposar guanyar comissions cada vegada que un objecte és revenut al mercat obert. Això crea un model de negoci més beneficiós mútuament on tant jugadors com desenvolupadors obtenen guanys del mercat secundari d'NFT. - -També vol dir que si el joc ja no és mantingut pels desenvolupadors, els objectes que hágiu col·leccionat resten per a vosaltres. - -En darrer lloc, els objectes que trieu per al joc poden sobreviure als jocs en sí mateixos. Inclús si un joc ja no està disponible, els vostres objectes estaran sempre sota el vostre control. Això significa que els objectes d'un joc es tornen records digitals i tenen valor fora del joc. - -Decentraland, un joc de realitat virtual, fins it ot us permet comprar NFT que representen parcel·les de terreny virtuals que podeu utilitzar com creieu convenient. - - -
Doneu una ullada als jocs d'Ethereum, impulsats per NFT...
- - Explorar els jocs NFT - -
- - - -### Fer que les adreces d'Ethereum siguin més fàcils de recordar {#nft-domains} - -L'ENS utilitza els NFT per donar a la vostra adreça Ethereum un nom més fàcil de recordar com ara `mywallet.eth`. Això vol dir que podeu demanar a qualsevol que us enviï ETH via `mywallet.eth` en comptes de `0x123456789...`. - -Funciona de forma similar al nom d'un domini web que fa que l'adreça IP sigui més fàcil de recordar. Com els dominis, els noms ENS tenen cert valor, generalment basat en la longitud i en la rellevància. Amb els ENS no necessiteu un registre de domini per facilitar la transferència de titularitat. Sinó que podeu comerciar amb els vostres noms d'ENS en un mercat d'NFT. - -Els vostres noms d'ENS poden: - -- Rebre criptomonedes i altres NFT. -- Apuntar cap a un lloc web descentralitzat, com ara [ethereum.eth](https://ethereum.eth.link). [Més informació sobre com descentralitzar el vostre lloc web](https://docs.ipfs.io/how-to/websites-on-ipfs/link-a-domain/#domain-name-service-dns) -- Emmagatzemar qualsevol informació arbitrària, incloent-hi informació de perfil com adreces de correu electrònic i controls de Twitter. - - - -### Objectes físics {#nft-physical-items} - -La tokenització d'objectes físics no està encara tan desenvolupada com els seus homòlegs digitals. Però hi ha un munt de projectes que exploren la tokenització de propietats immobiliàries o articles de moda únics, entre d'altres. - -Com que els NFT són essencialment escriptures, algun dia podríeu comprar un cotxe o una casa utilitzant ETH i rebre l'escriptura com un NFT (en la mateixa transacció). A mesura que les coses es tornen més tecnològiques, no és difícil imaginar un món on la vostra cartera d'Ethereum es torni la clau del vostre cotxe o casa: obrireu la porta mitjançant la prova criptogràfica de propietat. - -Amb actius valuosos, com ara cotxes i propietats representables a Ethereum, podeu utilitzar NFT com a garantia en préstecs descentralitzats. És particularment útil si no teniu grans riqueses, siguin diners tradicionals o criptomonedes, però teniu articles físics de valor. [Més informació sobre les DeFi](/defi/) - - - -### Els NFT i les DeFi {#nfts-and-defi} - -El món dels NFT i el món de les [finances descentralitzades (DeFi)](/defi/) comencen a treballar plegats en un nombre de qüestions interessants. - -#### Préstecs avalats per NFT {#nft-backed-loans} - -Hi ha aplicacions DeFi que us permeten demanar diners en préstec utilitzant una garantia. Per exemple, utilitzeu com a garantia 10 ETH i podeu demanar en préstec 5000 DAI ([una criptomoneda](/stablecoins/)). Aquest tràmit garanteix que el prestador serà reemborsat; si el prestatari no torna els DAI, la garantia s'envia al prestador. No obstant això, no tothom posseeix suficients criptomonedes per usar-les com a garantia. - -En el seu lloc, els projectes estan començant a explorar l'ús dels NFT com a garantia. Imagineu que vau comprar en el seu dia un escàs NFT CryptoPunk, que poden arribar als 1000 dòlars als preus d'avui en dia. Posant-lo com a garantia, podeu accedir a un préstec amb el mateix conjunt de normes. Si no torneu el préstec, el vostre CryptoPunk serà enviat al prestatari com a garantia. De fet, tot això podria funcionar amb qualsevol cosa que tokenitzéssiu com a NFT. - -A més, no és gaire difícil a Ethereum, perquè ambdós mons (NFT i DeFi) comparteixen la mateixa infraestructura. - -#### Propietat fraccionada {#fractional-ownership} - -Els creadors d'NFT poden crear també «accions» per als seus NFT. Així, donen l'oportunitat als inversors i als seguidors de tenir una part de l'NFT sense haver de comprar-lo tot complet. D'aquesta forma, s'hi afegeixen moltes més oportunitats als encunyadors i col·leccionistes d'NFT per igual. - -- Els NFT fraccionats poden ser comercialitzats en [cases d'Intercanvi descentralitzades o DEX, per les seves sigles en anglès](/defi/#dex), com Uniswap, no tan sols en [mercats NFT](/dapps?category=collectibles). Això comporta més compradors i més venedors. -- Es pot definir un preu general per a un NFT mitjançant el preu de les seves fraccions. -- Disposeu de més d'una oportunitat per tenir i gaudir d'articles que us importen. És més difícil tenir un preu fora de la propietat dels NFT. - -Encara és experimental però podeu aprendre més sobre la titularitat de les fraccions NFT en els mercats d'intercanvi següents: - -- [NIFTEX](https://landing.niftex.com/) -- [NFTX](https://gallery.nftx.org/) - -En teoria, això obriria la possibilitat de fer coses com ara tenir una porció d'un Picasso. Us convertiríeu en un accionista d'un NFT de Picasso, cosa que vol dir que tindríeu dret de veu en coses com ara el repartiment d'ingressos. És molt probable que aviat posseir una fracció d'un NFT doni accés a una organització autònoma descentralitzada (DAO per les seves sigles en anglès) per a gestionar aquell actiu. - -Són organitzacions impulsades per Ethereum que permeten a desconeguts, com ara accionistes globals d'un actiu, coordinar-se en seguretat sense haver de confiar necessàriament en els altres. Això és degut al fet que no es pot gastar ni una sola peseta sense l'aprovació del grup. - -Com ja hem dit abans, és un espai emergent. Els NFT, les DAO o els tókens fraccionats s'estan desenvolupant a ritmes diferents. Però tota la seva infraestructura existeix i pot treballar conjuntament de forma fàcil perquè tots parlen la mateixa llengua: Ethereum. Per tant, estigueu pendents d'aquest espai. - -[Més informació sobre les DAO](/dao/) - - - -## Ethereum i els NFT {#ethereum-and-nfts} - -Ethereum fa possible que els NFT funcionin a causa d'una sèrie de raons: - -- L'historial de transaccions i les metadades del token són públicament verificables; és fàcil provar l'historial de titularitat. -- Un cop s'ha confirmat una transacció, és pràcticament impossible manipular aquelles dades per «robar» la titularitat. -- Comerciar amb els NFT es pot fer d'igual a igual sense necessitat de plataformes que poden guanyar una bona part com a compensació. -- Tots els productes Ethereum comparteixen el mateix «backend». Dit d'una altra manera, tots els productes Ethereum poden entendre's fàcilment els uns amb els altres; això fa que els NFT siguin fàcils de moure entre productes. Podeu comprar un NFT en un producte i vendre'l fàcilment en un altre. Com a creador, podeu llistar els vostres NFT en múltiples productes alhora; cada producte tindrà la informació de titularitat més actualitzada en cada moment. -- Ethereum mai no cau, per la qual cosa els vostres tókens sempre estaran disponibles a la venda. - -## L'impacte mediambiental dels NFT {#environmental-impact-nfts} - -Els NFT estan creixent en popularitat i això significa que també estan sota un escrutini creixent, especialment al voltant de la seva petjada de carboni. - -Volem aclarir alguns punts: - -- Els NFT no incrementen directament la petjada de carboni d'Ethereum. -- La manera en què Ethereum manté els vostres fons i actius de forma segura actualment és mitjançant un medi d'energia intensiva, però això està a punt de millorar. -- Un cop millorada, la petjada de carboni d'Ethereum serà un 99,95% millor, fent que sigui energèticament més eficient que moltes de les empreses existents avui en dia. - -Per ampliar-ne la informació ens haurem de posar més tècnics, per això tingueu una mica de paciència... - -### No culpeu els NFT {#nft-qualities} - -Tot el sistema NFT funciona a causa del fet que Ethereum és segura i descentralitzada. - -Descentralitzat significa que qualsevol pot verificar que posseïu alguna cosa. Tot sense confiar o concedir la custòdia a terceres parts que poden imposar les seves regles al seu gust. També vol dir que els vostres NFT són traslladables a través de diferents productes i mercats. - -Segur vol dir que ningú pot copiar/enganxar el vostre NFT o robar-lo. - -Aquestes qualitats d'Ethereum fan que sigui possible posseir la titularitat d'articles digitals únics i d'aconseguir un preu correcte pels vostres continguts. Però tot això té un cost. Les cadenes de blocs com Bitcoin i Ethereum actualment consumeixen molta energia a causa del fet que en fa falta molta per mantenir aquestes qualitats. Si fos fàcil reescriure la història d'Ethereum per robar NFT o criptomonedes, el sistema col·lapsaria. - -#### El treball d'encunyar el vostre NFT {#minting-nfts} - -Quan encunyeu un NFT, han de succeir certes coses: - -- Ha de ser confirmat com un actiu a la cadena de blocs. -- El balanç de comptes del titular s'ha d'actualitzar per incloure aquest actiu. Això fa possible que sigui comerciable o que la «propietat» sigui verificable. -- Les transaccions que confirmen tot això necessiten ser afegides a un bloc i «immortalitzades» a la cadena. -- El bloc ha de ser confirmat per totes les persones de la xarxa com a «correcte». Aquest consens evita la necessitat d'intermediaris, ja que la xarxa dona per bo que el vostre NFT existeix i que us pertany. I està en cadena, per tant qualsevol pot comprovar-ho. Aquesta és una de les formes en què Ethereum ajuda els creadors d'NFT a maximitzar els seus guanys. - -Totes aquestes tasques les fan els miners. I permeten a la resta de la xarxa tenir coneixement del vostre NFT i de qui és la titularitat. Això vol dir que la mineria ha de ser suficientment complicada; d'altra banda, qualsevol podria dir que és titular de l'NFT que acabeu d'encunyar i transferir-se la titularitat fraudulentament. Existeixen molts incentius localment per assegurar que els miners actuen amb honestedat. - -[Més informació sobre la mineria](/developers/docs/consensus-mechanisms/pow/) - -#### Protegir el vostre NFT amb la mineria {#securing-nfts} - -La dificultat de la mineria ve del fet que comporta un munt de poder de computació per a crear nous blocs a la cadena. És important recalcar que els blocs es creen de manera coherent, no només quan es necessiten. Es creen cada 12 segons aproximadament. - -Això és important per fer que Ethereum sigui a prova de manipulació, una de les qualitats que fa possible els NFT. Com més blocs, més segura és la cadena. Si el vostre NFT es va crear al bloc #600 i un pirata intentés robar-lo modificant les seves dades, l'empremta digital de tots els blocs subsegüents canviaria. Per tant, qualsevol individu que estigués executant un software d'Ethereum seria capaç immediatament de detectar-ho i evitar que succeís. - -Això vol dir, tanmateix, que constantment s'ha d'estar utilitzant energia computacional. També significa que un bloc que contingui 0 transaccions d'NFT tindrà aproximadament la mateixa empremta de carboni, ja que es consumirà energia computacional per crear-lo. Altres transaccions sense NFT ompliran els blocs. - -#### Les cadenes de blocs consumeixen molta energia actualment {#blockchains-intensive} - -Per tant, sí, hi ha una empremta de carboni associada a la creació de blocs mitjançant la mineria; i això també és un problema per a les cadenes com Bitcoin, però no és directament culpa dels NFT. - -Molta mineria utilitza fonts d'energies renovables o energies sense explotar a llocs remots. Existeix, a més, l'argument que les indústries que les NFT i les criptomonedes estan alterant tenen també enormes empremtes de carboni. Però tan sols perquè les indústries existents siguin dolentes, no significa que no ens hauríem d'esforçar per ser millors. - -I ho som. Ethereum està evolucionant per fer l'ús d'Ethereum (i, com a resultat, els NFT) més energèticament eficient. I aquest ha estat sempre el pla. - -No estem aquí per defensar l'empremta mediambiental de la mineria, sinó que volem explicar com estan canviant les coses a millor. - -### Un futur més verd... {#a-greener-future} - -Durant tot aquest temps que Ethereum ha existit, el consum energètic de la mineria ha estat un gran àmbit d'atenció per als desenvolupadors i els investigadors. I la visió sempre ha estat reemplaçar-la el més aviat possible. [Més informació sobre la visió d'Ethereum](/roadmap/vision/) - -Aquesta visió s'està lliurant ara mateix. - -#### Un Ethereum més verd {#greener-ethereum} - -Ethereum està passant actualment per una sèrie de millores que reemplaçaran la mineria amb [les participacions](/staking/). Això traurà l'energia computacional com a mecanisme de seguretat i reduirà la petjada de carboni d'Ethereum en ~99,95%[^1]. En aquest món, els participants comprometen fons en lloc de poder computacional per protegir la xarxa. - -El cost energètic d'Ethereum serà el cost d'executar un ordinador personal multiplicat pel nombre de nodes a la xarxa. Si hi ha 10.000 nodes a la xarxa i el cost d'execució d'un ordinador personal és aproximadament 525 kWh per any, això fa un total de 5.250.000 kWh[^1] per any per a tota la xarxa. - -Podem utilitzar aquest càlcul per comparar el futur d'Ethereum amb un servei global com Visa. 100.000 transaccions de Visa utilitzen 149 kWh d'energia[^2]. En la prova de participació d'Ethereum, aquest mateix nombre de transaccions costarien 17,4 kWh d'energia o ~11% del total de l'energia[^3]. Això sense considerar totes les optimitzacions fetes en paral·lel a la capa de consens i les cadenes de fragments, com ara els [rollups](/glossary/#rollups). Podria ser tan poc com 0,1666666667 kWh d'energia per cada 100.000 transaccions. - -L'important és que millora l'eficiència energètica a la vegada que preserva la descentralització i protecció d'Ethereum. Moltes altres cadenes de blocs externes podrien utilitzar algun tipus de participacions, però estan protegides per uns pocs apostadors selectes, no pels milers que Ethereum tindrà. Com més descentralització, més protegit estarà el sistema. - -[Més informació sobre les estimacions energètiques](#footnotes-and-sources) - -_Hem aportat la comparació bàsica de Visa perquè tingueu una base per comprendre el consum energètic de la prova de participació d'Ethereum respecte a un nom familiar. Tanmateix, a la pràctica, no és realment correcte comparar-los basant-se en nombre de transaccions. La despesa energètica d'Ethereum està basada en el temps. Si Ethereum fes més o menys transaccions d'un minut a l'altre, la despesa energètica seria la mateixa._ - -_És important també recordar que Ethereum fa més que només transaccions financeres, és una plataforma per a aplicacions; per tant, una comparació més justa podria ser amb moltes companyies o industries incloent-hi Visa, AWS i d'altres!_ - -#### Terminis {#timelines} - -El procés ja ha començat. [La cadena de balisa](/roadmap/beacon-chain/), la primera millora, llençada el desembre de 2020. Proporciona la base per a les participacions permetent als apostadors accedir al sistema. El següent pas rellevant per a l'eficiència energètica és fusionar la cadena actual, la que està protegida pels miners, amb la cadena de balisa, on la mineria no és necessària. Els terminis poden no ser exactes en aquest punt, però s'estima que succeirà en algun moment de 2022. Aquest procés es coneix com La Fusió (anteriorment anomenada l'acoblament). [Més informació sobre la fusió](/roadmap/merge/). - - - Més informació sobre les millores d'Ethereum - - -## Construir amb NFT {#build-with-nfts} - -La majoria dels NFT són construïts utilitzant un estàndard conegut com a [ERC-721](/developers/docs/standards/tokens/erc-721/). No obstant això, hi ha altres estàndards que us podrien interessar. L'estàndard [ERC-1155](https://blog.enjincoin.io/erc-1155-the-crypto-item-standard-ac9cf1c5a226) permet tókens semifungibles, cosa que és particularment útil en el món dels jocs. Més recentment, l'[EIP-2309](https://eips.ethereum.org/EIPS/eip-2309) ha estat proposat per fer l'encunyament d'NFT molt més eficient. Aquest estàndard us permet encunyar tants com vulgueu en una sola transacció! - -## Llegir-ne més {#further-reading} - -- [Dades sobre l'art criptogràfic](https://cryptoart.io/data) – Richard Chen, actualitzat automàticament -- [OpenSea: la bíblia sobre els NFT](https://opensea.io/blog/guides/non-fungible-tokens/) – _Devin Fizner, 10 de gener de 2020_ -- [Guia per a principiants dels NFT](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, gener de 2020_ -- [Tot el que heu de saber sobre el metavers](https://foundation.app/blog/enter-the-metaverse) – _Equip de la Fundació, foundation.app_ -- [No, els criptoartistes no estan malmetent el planeta](https://medium.com/superrare/no-cryptoartists-arent-harming-the-planet-43182f72fc61) -- [Mai més el poder d'un país](https://blog.ethereum.org/2021/05/18/country-power-no-more/) – _Carl Beekhuizen, 18 de maig de 2021_ - - - -### Notes a peu de pàgina i fonts {#footnotes-and-sources} - -Tot això explica com hem arribat a les nostres estimacions energètiques mencionades abans. Aquestes estimacions s'apliquen a la xarxa com a una totalitat i no estan reservades només al procés de creació, compra o venda d'NFT. - -#### 1. Un 99,95% de reducció d'energia de la mineria {#fn-1} - -La reducció del consum energètic del 99,95% d'un sistema protegit per miners a un sistema protegit per participacions es calcula utilitzant les següents fonts d'informació: - -- Anualment es consumeixen 44,49 TWh d'energia elèctrica minant Ethereum - [Digiconomist](https://digiconomist.net/ethereum-energy-consumption) - -- Un ordinador de sobretaula mitjà, l'únic que es necessita per a executar una prova de participació, utilitza una energia de 0,06 kWh – [Gràfic de l'energia a Silicon Valley](https://www.siliconvalleypower.com/residents/save-energy/appliance-energy-use-chart) (Alguns estimen que és una mica més alta, d'uns 0,15 kWh) - -En el moment d'escriure això, hi ha 140.592 validadors de 16.405 adreces úniques. D'aquests, se suposa que 87.897 validadors participen des de casa. - -Se suposa que un individu mitjà amb participacions des de casa utilitza una configuració d'ordinador personal de 100 watts per executar una mitjana de 5,4 clients validadors. - -Amb els 87.897 validadors executant des de casa ens dona 16.300 usuaris consumint ~1,64 megawatts d'energia. - -La resta dels validadors s'executen mitjançant participacions de custòdia com ara mercats d'intercanvi i serveis de participacions. Es pot suposar que utilitzen 100 watts per cada 5,5 validadors. Aquesta és una sobreestimació bruta per anar a cop segur. - -Per tant, en total, Ethereum consumeix en proves de participació al voltant de 2,62 megawatts, que és el mateix que un poble petit americà. - -Això és una reducció d'almenys el 99,95% del total de la despesa energètica de l'estimació de Digiconomist dels 44,49 TWh per any que els actuals miners d'Ethereum consumeixen. - -#### 2. Consum energètic de Visa {#fn-2} - -El cost de les 100.000 transaccions de Visa és de 149 kWh - [Despesa energètica mitjana de la xarxa Bitcoin per transacció comparada amb la xarxa Visa el 2020, Statista](https://www.statista.com/statistics/881541/bitcoin-energy-consumption-transaction-comparison-visa/) - -Cap a finals de setembre de 2020 havien processat 140.839.000.000 transaccions - [Informes financers de Visa del quart trimestre de 2020](https://s1.q4cdn.com/050606653/files/doc_financials/2020/q4/Visa-Inc.-Q4-2020-Operational-Performance-Data.pdf) - -#### 3. Despesa energètica per 100.000 transaccions en una xarxa de prova de participació fragmentada {#fn-3} - -S'estima que les millores en l'escalabilitat permetran la xarxa processar entre 25.000 i 100.000 transaccions per segon, amb [un màxim teòric de moment de 100.000](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698). - -[Vitalik Buterin parla sobre el potencial de les transaccions per segon amb la fragmentació](https://twitter.com/VitalikButerin/status/1312905884549300224) - -Amb un mínim, la fragmentació permetrà una quantitat de transaccions multiplicada per 64 en comparació amb les que es fan avui en dia que ronden les 15. Aquesta és la quantitat de cadenes fragmentades (capacitat i dades extra) que s'han introduït. [Més informació sobre les cadenes de fragments](/roadmap/danksharding/) - -Això vol dir que podem estimar quant es trigaria a processar 100.000 transaccions per poder comparar-ho amb l'exemple de Visa esmentat. - -- `15 * 64 = 960` transaccions per segon. -- `100.000 / 960 = 104,2` segons en processar 100.000 transaccions. - -En 104,2 segons, la xarxa Ethereum utilitzarà la mateixa quantitat d'energia: - -`1,44Kwh d'ús diari * 10.000 nodes de xarxa = 14.400 kWh` al dia. - -Un dia té 86.400 segons, per tant `14.400 / 86.400 = 0,1666666667 kWh` per segon. - -Si multipliquem això per la quantitat de temps que fa falta per a processar 100.000 transaccions: `0,1666666667 * 104,2 = 17,3666666701 kWh`. - -Això és un **11,6554809866%** de l'energia consumida per la mateixa quantitat de transaccions a Visa. - -Recordeu que tot això està basat en la mínima quantitat de transaccions per segon que Ethereum estarà capacitada a dur a terme. Si Ethereum assoleix el seu potencial de 100.000 transaccions per segon, 100.000 transaccions consumirien 0,1666666667 kWh. - -Per dir-ho d'una altra manera, si Visa gestionés 140.839.000.000 transaccions a un cost de 149 kWh per cada 100.000 transaccions significaria un consum d'energia anual de 209.850.110 kWh. - -Ethereum en un sol any consumeix 5.256.000 kWh. Amb un potencial de 788.940.000.000 - 3.153.600.000.000 transaccions processades en aquest espai de temps. - - - Si creieu que aquestes afirmacions són incorrectes o poden ser més exactes, plantegeu un problema o una PR. Són estimacions fetes per l'equip d'ethereum.org utilitzant informació accessible públicament i el disseny d'Ethereum planejat. No representa una promesa oficial de la Fundació Ethereum. - diff --git a/src/content/translations/ca/roadmap/beacon-chain/index.md b/src/content/translations/ca/roadmap/beacon-chain/index.md deleted file mode 100644 index db360ff363d..00000000000 --- a/src/content/translations/ca/roadmap/beacon-chain/index.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: La cadena de balisa -description: Aprèn més coses sobre la Cadena de Balisa - la millora que va introduir la prova de participació d'Ethereum. -lang: ca -template: upgrade -image: ../../../../../assets/upgrades/core.png -summaryPoint1: La Cadena de Balisa no canvia en res l'Ethereum que utilitzem avui en dia. -summaryPoint2: Coordinarà la xarxa, fent servei com a capa de consens. -summaryPoint3: Va introduir la prova de participació a l'ecosistema Ethereum. -summaryPoint4: Potser, això, ho coneixeu com la "Fase 0" dels mapes tècnics. ---- - - - La cadena de balisa es va posar en marxa l'1 de desembre del 2020 al migdia (UTC). Per saber-ne més exploreu les dades. Si voleu ajudar a validar la cadena, podeu "apostar" els vostres ETH. - - -## Què fa la cadena de balisa? {#what-does-the-beacon-chain-do} - -La cadena de balisa dirigirà o coordinarà l'expansió de la xarxa de [fragments](/roadmap/danksharding/) i [participants](/staking/). Però no serà com [la xarxa principal d'Ethereum](/glossary/#mainnet) d'avui en dia. No pot gestionar comptes o contractes intel·ligents. - -El rol de la cadena de balisa canviarà amb el pas del temps, però és un element fonamental de [l'Ethereum segur, sostenible i escalable per la qual treballem](/roadmap/vision/). - -## Característiques de la cadena de balisa {#beacon-chain-features} - -### Introducció de les "apostes" {#introducing-staking} - -La cadena de balisa introduirà la [prova de participació](/developers/docs/consensus-mechanisms/pos/) a Ethereum. És una manera nova d'ajudar a mantenir segur l'Ethereum. Ho podeu concebre com un bé públic que farà Ethereum més saludable i et farà guanyar més ETH en el procés. A la pràctica, haureu d'apostar ETH per tal d'activar el programari de validació. Com a validador, processareu les transaccions i creareu nous blocs a la cadena. - -Apostar i convertir-se en validador és més senzill que [minar](/developers/docs/mining/) (la manera actual de mantenir la xarxa segura). I s'espera que això contribueixi a fer Ethereum més segur a llarg termini. Com més gent participi a la xarxa, més descentralitzada i segura serà davant dels atacs. - - -Si us interessa ser validador i contribuir a protegir la cadena de balisa, aquí podeu aprendre més sobre les apostes. - - -Això és un canvi important per una altra millora:[les cadenes de fragments](/roadmap/danksharding/). - -### Configuració de les cadenes de fragments {#setting-up-for-shard-chains} - -Després que la xarxa principal es fusioni amb la cadena de balisa, la propera actualització introduirà cadenes de fragments a la xarxa de prova de participació. Aquests "fragments" augmentaran la capacitat de la xarxa i milloraran la velocitat de les transaccions tot ampliant la xarxa a 64 cadenes de blocs. La cadena de balisa és un primer pas important en la introducció de cadenes de fragments, ja que requereixen apostar per funcionar de manera segura. - -Amb el temps, la cadena de balisa també serà l'encarregada d'assignar als apostadors la validació de les cadenes de fragments. Això és clau per dificultar que els apostadors puguin coordinar-se i prendre el control d'un fragment. Per tant, vol dir que tenen [menys d'una possibilitat entre un bilió](https://medium.com/@chihchengliang/minimum-committee-size-explained-67047111fa20). - -## Relació entre les millores {#relationship-between-upgrades} - -Les millores d'Ethereum estan d'alguna manera interrelacionades. Recapitulem com la cadena de balisa afecta altres millores. - -### La xarxa principal i la cadena de balisa {#mainnet-and-beacon-chain} - -En un principi, la cadena de balisa serà independent de la xarxa principal d'Ethereum que fem servir actualment. Però, en última instància, estaran connectades. La idea és "fusionar" la xarxa principal amb el sistema de prova de participació, que la cadena de balisa coordinarà i controlarà. - - - La fusió - - -### Fragments i la cadena de balisa {#shards-and-beacon-chain} - -Les cadenes de fragments només poden entrar de forma segura a l'ecosistema Ethereum si existeix un mecanisme de consens de prova de participació. La cadena de balisa introduirà l'aposta i aplanarà el camí a la futura introducció de la cadena de fragments. - - - Cadenes de fragments - - - - -## Interactuar amb la cadena de balisa {#interact-with-beacon-chain} - - diff --git a/src/content/translations/ca/roadmap/merge/index.md b/src/content/translations/ca/roadmap/merge/index.md deleted file mode 100644 index 6e9786765f7..00000000000 --- a/src/content/translations/ca/roadmap/merge/index.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: La fusió -description: "Més informació sobre la fusió: quan la xarxa principal d'Ethereum s'integri al sistema coordinat de prova de participació de la cadena de balisa." -lang: ca -template: upgrade -image: ../../../../../assets/upgrades/merge.png -summaryPoint1: Està previst que l'actual xarxa principal d'Ethereum es "fusioni" amb la cadena de balisa basada en el sistema de prova de participació. -summaryPoint2: Això marcarà el final del sistema de prova de treball per Ethereum i significarà la transició completa al sistema de prova de participació. -summaryPoint3: Està previst que precedeixi la posada en marxa de la millora anomenada cadena de fragments. -summaryPoint4: En el passat ens hi referíem com "l'acoblament." ---- - - - Aquesta actualització representa el canvi oficial al consens de la prova de participació. D'aquesta manera s'elimina la necessitat de la mineria, que consumeix molta energia, i en el seu lloc s'assegura la xarxa utilitzant ether estacat. Un pas realment exitant és assolir Ethereum vision - més escalabilitat, seguretat, i sostenibilitat. - - -## Què és la fusió? {#what-is-the-docking} - -És important recordar que inicialment, l'actualització de la [cadena de balisa](/roadmap/beacon-chain/) s'enviava per separat des de la [xarxa principal](/glossary/#mainnet), la cadena que utilitzem avui. La xarxa principal d'Ethereum seguirà estant protegida mitjançant la [prova de treball](/developers/docs/consensus-mechanisms/pow/), fins i tot quan la cadena de balisa s'executi en paral·lel utilitzant la [prova de participació](/developers/docs/consensus-mechanisms/pos/). La fusió és quan aquests dos sistemes finalment es combinen. - -Imagineu que Ethereum és una nau espacial que no està del tot preparada per a un viatge interestel·lar. Amb la cadena de balisa la comunitat ha creat un nou motor i un habitacle més reforçat. Quan sigui el moment, la nau actual es fusionarà amb aquest nou sistema per convertir-se en una única nau, preparada per viatjar a anys llum i conquerir l'univers. - -## Fusió amb la xarxa principal {#docking-mainnet} - -Quan estigui preparada, la xarxa principal d'Ethereum es "fusionarà" amb la cadena de balisa transformant-se en un fragment propi que utilitzi la prova de participació en lloc de la [prova de treball](/developers/docs/consensus-mechanisms/pow/). - -La xarxa principal aportarà la capacitat d'executar contractes intel·ligents en el sistema de prova de participació, a més de l'historial complet i l'estat actual d'Ethereum, per garantir que la transició sigui fluida per a tots els titulars i usuaris d'ETH. - -## Després de la fusió {#after-the-merge} - -Això marcarà el final de la prova de treball per a Ethereum i el principi d'una nova era més sostenible i respectuosa amb el medi ambient. Arribats a aquest punt, Ethereum estarà un pas més a prop d'adquirir la mida completa, la seguretat i la sostenibilitat remarcades en la seva [visió d'Ethereum](/roadmap/vision/). - -És important tenir en compte que un objectiu d’implementació de la fusió és la simplicitat per agilitar la transició de la prova de treball a la prova de participació. Els desenvolupadors estan focalitzant els seus esforços en aquesta transició, alhora que minimitzen característiques addicionals que podrien endarrerir aquest objectiu. - -**Això vol dir que algunes funcions, com ara la possibilitat de retirar els ETH apilats, hauran d'esperar una mica més després de completar la unió.**Els plans inclouen una actualització de "neteja" posterior a la fusió per fer front a aquestes funcions, cosa que s'espera que passi molt aviat després de finalitzar la fusió. - -## Relació entre les millores {#relationship-between-upgrades} - -Les millores d'Ethereum estan d'alguna manera interrelacionades. Per tant, recapitulem sobre com La Fusió es relaciona amb les altres millores. - -### La Fusió i la Cadena de Balisa {#docking-and-beacon-chain} - -Un cop succeeixi La Fusió, s'assignaran els tenidors per validar la xarxa principal d'Ethereum. [La mineria](/developers/docs/consensus-mechanisms/pow/mining/) ja no farà falta, per tant, el miners probablement invertiran els seus guanys en participacions en el nou sistema de prova de participació. - - - La cadena de balisa - - -### La fusió i la neteja postfusió {#merge-and-post-merge-cleanup} - -Immediatament després de La Fusió, algunes característiques com ara la retirada d'ETH apilats, ja no estarà disponible. Aquestes estan previstes per a una millora separada que vindrà poc després de La Fusió. - -Estigueu al dia amb el [Blog de recerca i desenvolupament EF](https://blog.ethereum.org/category/research-and-development/). Per als curiosos, obteniu més informació sobre què passa després de la fusió en [What Happens After the Merge](https://youtu.be/7ggwLccuN5s?t=101), presentat per Vitalik a l'esdeveniment ETHGlobal d'abril de 2021. - -### La Fusió i les cadenes de fragments {#docking-and-shard-chains} - -Originalment, el pla era treballar en cadenes de fragments abans de La Fusió, per abordar l’escalabilitat. Tot i això, amb l’auge de les [solucions d’escala de capa 2](/developers/docs/scaling/#layer-2-scaling), la prioritat s’ha canviat a passar de la prova de treball a la prova de participació mitjançant La Fusió. - -La comunitat avaluarà de forma contínua la necessitat de múltiples rondes de cadenes de fragments per permetre una escalabilitat infinita. - - - Cadenes de fragments - - -## Més informació {#read-more} - - diff --git a/src/content/translations/cs/dao/index.md b/src/content/translations/cs/dao/index.md deleted file mode 100644 index 319d27ad1a3..00000000000 --- a/src/content/translations/cs/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: Decentralizované autonomní organizace (DAO) -description: Přehled DAO na Ethereu -lang: cs -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: Vyobrazení decentralizované autonomní organizace hlasující o návrhu. -summaryPoint1: Členské komunity bez centralizovaného vedení. -summaryPoint2: Bezpečný způsob, jak spolupracovat s lidmi na internetu. -summaryPoint3: Bezpečné místo pro vložení prostředků na konkrétní věc. ---- - -## Co jsou DAO? {#what-are-daos} - -DAO je kolektivně vlastněná, blockchainem řízená organizace, která pracuje k dosažení společného cíle. - -DAO nám umožňují pracovat s podobně smýšlejícími lidmi po celém světě, aniž bychom věřili benevolentnímu lídrovi, aby spravoval finanční prostředky nebo operace. Není zde žádný výkonný ředitel, který by rozmarně utrácel peníze nebo výkonný finanční ředitel, který by mohl manipulovat s rozvahou firmy. Namísto toho jsou do kódu zavedena pravidla založená na blockchainu, která definují, jak organizace funguje a jak je s finančními prostředky vynaloženo. - -Mají zabudované pokladny, do kterých nikdo nemá přístup bez souhlasu skupiny. Rozhodnutí se řídí návrhy a hlasováním, aby měl každý člen organizace možnost vyjádřit svůj názor a vše na blockchainu probíhalo transparentně. - -## Proč potřebujeme DAO? {#why-dao} - -Zakládání nové organizace s někým dalším vyžaduje nejen počáteční finanční prostředky, ale také velkou důvěru v lidi, s nimiž budete spolupracovat. Může být ale těžké důvěřovat někomu, s kým jste dosud komunikovali pouze přes internet. V DAO však nemusíte důvěřovat nikomu dalšímu, protože veškeré procesy dané organizace jsou založené na počítačovém kódu, který je 100% transparentní a kýmkoliv ověřitelný. - -Tento princip tak otevírá mnoho nových příležitostí ke globální spolupráci a koordinaci. - -### Srovnání {#dao-comparison} - -| Decentralizovaná Autonomní Organizace | Tradiční organizace | -| ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | -| Obvykle má horizontální strukturu a je plně demokratická. | Obvykle má hierarchickou strukturu. | -| Veškeré plánované změny vyžadují členské hlasování. | V závislosti na struktuře se změny dějí buď pomocí hlasování nebo rozhodnutím členů s výhraním právem. | -| Výsledky hlasování jsou zpracovávané automaticky bez nutnosti důvěryhodného prostředníka. | Pokud je hlasování povoleno, je vyřizováno ručně a výsledek je zpracováván interně. | -| Služby jsou řízeny automatickým a decentralizovaným způsobem (například distribuce filantropických fondů). | Vyžaduje lidskou manipulaci nebo centrálně řízenou automatizaci náchylnou k falšování. | -| Veškerá činnost je transparentní a zcela veřejná. | Aktivity jsou obvykle soukromé a skryté před veřejností. | - -### Příklady DAO {#dao-examples} - -Několik příkladů, k čemu je možné DAO využít: - -- Charita – můžete přijímat dary od kohokoliv na světě a hlasovat o tom, co bude financováno. -- Družstevní vlastnictví – můžete zakoupit fyzická či digitální aktiva a členové mohou hlasovat o tom, jak s nimi naložit. -- Podniky a granty – můžete vytvořit fond rizikového kapitálu, který sdružuje investiční kapitál a hlasuje o podnicích, které podpoří. Splacené peníze mohou být později přerozděleny mezi členy DAO. - -## Jak fungují DAO? {#how-daos-work} - -Základem DAO je její chytrý kontrakt, který definuje pravidla organizace a spravuje pokladnu skupiny. Jakmile je kontrakt nasazen na Ethereu, nikdo nemůže změnit pravidla jinak než hlasováním. Pokud by se tedy někdo prokusil provést akci, která není definována pravidly a logikou počítačového kódu, skončí to neúspěchem. Stejně tak i finanční prostředky jsou řízeny chytrým kontraktem, takže nikdo nemůže utratit peníze bez souhlasu skupiny Znamená to tedy, že DAO nepotřebuje žádnou ústřední entitu a namísto toho jsou všechna rozhodnutí i platby prováděny kolektivně na základě společného hlasování. - -To je možné z toho důvodu, že chytré kontrakty jsou po nasazení na Ethereum chráněny proti nedovolené manipulaci. Pravidla DAO jsou totiž zapsaná pomocí veřejně dostupného kódu a nelze je tak upravovat bez povšimnutí. - - - Více o chytrých smlouvách - - -## Ethereum a DAO {#ethereum-and-daos} - -Ethereum je ideální základ pro DAO a to hned z několika důvodů: - -- Vlastní konsenzus sítě Ethereum je natolik distribuovaný a zavedený, že mu organizace mohou důvěřovat. -- Kód chytrého kontraktu nemůže být po svém nasazení upraven a to ani vlastními majiteli. To umožňuje řídit DAO podle pravidel, se kterými byla naprogramována. -- Chytré kontrakty mohou posílat i přijímat finanční prostředky, což umožňuje správu společných financí bez existence důvěryhodného prostředníka. -- Komunita kolem Etherea prokazuje schopnost spolupracovat, což umožňuje vznik osvědčených postupů a podpůrných systémů. - -## Řízení DAO {#dao-governance} - -Při řízení DAO je třeba zvážit mnoho aspektů, například způsob hlasování a navrhování. - -### Delegace {#governance-delegation} - -Delegování je něco jako DAO verze zastupitelské demokracie. Držitelé tokenu delegují hlasy uživatelům, kteří se nabídnou a slíbí, že budou spravovat protokol a zůstanou o něm informováni. - -#### Příklad z praxe {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) – Držitelé ENS mohou delegovat své hlasy členům angažovaných komunit, aby je reprezentovali. - -### Automatické řízení transakcí {#governance-example} - -V mnoha DAO budou transakce provedeny automaticky, pokud bude dostatečně uživatelů hlasovat pro. - -#### Příklad z praxe {#governance-example} - -[Nouns](https://nouns.wtf) – V Nouns DAO je transakce provedena, pokud je dosažen dostatečný počet hlasů a většina z nich je pro a pokud ji zakladatelé nevetují. - -### Řízení Multisig {#governance-example} - -Přestože DAO mají tísíce hlasujících členů, finanční prostředky mohou být uloženy v peněžence sdílené 5 až 20 aktivními členy komunity, kteří jsou důvěryhodní a doxxnutí (jejich veřejná identita je komunitě známá). Po hlasování vykonají multisigoví signatáři vůli komunity. - -## Zákony DAO {#dao-laws} - -V roce 1977 představil stát Wyoming LLC, typ společnosti ekvivalentní k české společnosti s ručením omezením, který chrání podnikatele a omezuje jejich odpovědnost. V nedávné době se stal průkopníkem zákona DAO, který pro organizaci zavádí právní status. V současné době mají Wyoming, Vermont a Panenské ostrovy v nějaké formě zákony DAO. - -#### Příklad z praxe {#law-example} - -[CityDAO](https://citydao.io) – CityDAO používal zákon DAO státu Wyoming ke koupi 40 akrů půdy poblíž Yellowstonského národního parku. - -## Členství v DAO {#dao-membership} - -Existují různé typy členství v DAO. Na základně nich je pak určeno, jak v dané DAO funguje hlasování a další klíčové principy. - -### Členství založené na tokenech {#token-based-membership} - -Obvykle zcela bez omezení (v závislosti na použitém tokenu). Příslušné tokeny jsou typicky volně obchodovány na decentralizované burze, získávány poskytnutím likvidity anebo těženy nějakým „proof-of-work“ způsobem. Ve všech případech ale pouhé držení tokenu umožňuje přístup k hlasování. - -_Obvykle se používá k řízení rozsáhlých decentralizovaných protokolů a/nebo tokenů samotných._ - -#### Příklad z praxe {#token-example} - -[MakerDAO](https://makerdao.com) – Token MKR společnosti MakerDAO je široce dostupný na decentralizovaných burzách a kdokoliv si může koupit hlasovací práva ohledně budoucnosti protokolu Maker. - -### Členství založené na akciích {#share-based-membership} - -DAO založené na akciích jsou přísnější, ale stále docela otevřené. Každý potenciální člen může předložit návrh na přijetí, který obvykle nabízí hodnotu ve formě tokenů nebo určitého typu práce. Akcie pak představují přímou hlasovací sílu a vlastnictví. Členové mohou z takové DAO kdykoli vystoupit a to se svým poměrným podílem celkových prostředků. - -_Obvykle se používá u lidskoprávních organizací, jako jsou charity a odborové svazy nebo u investičních klubů. Může být použita také k řízení protokolů nebo správě tokenů._ - -#### Příklad z praxe {#share-example} - -[MolochDAO](http://molochdao.com/) – MolochDAO se zaměřuje na financování projektů postavených na Ethereu. Pro získání členství je potřeba předložit návrh, na jehož základě skupina posoudí, má-li zájemce potřebné odborné znalosti a kapitál, aby mohl činit informované úsudky o potenciálních grantech. Přístup k takovému DAO tedy nelze koupit na otevřeném trhu. - -### Členství založené na reputaci {#reputation-based-membership} - -Reputace je důkazem účasti a poskytuje hlasovací práva v DAO. Na rozdíl od tokenových či podílových členství, organizace DAO založené na reputaci nepřevádějí vlastnictví na přispěvatele. Reputaci nelze koupit, převést či delegovat; členové DAO si ji musí získat prostřednictvím účasti. Hlasování na blockchainuje je veřejně dostupné a budoucí členové mohou svobodně předložit návrhy na vstup do DAO a požádat o získání reputace a tokenů jako odměnu za své příspěvky. - -_Obyvkle používané na decentralizovaném vývoji a řízení protokolů a decentralizovaných aplikací, ale hodí se také na rozmanitý soubor organizací jako charity, pracovní družstva, investiční kluby atd._ - -#### Příklad z praxe {#reputation-example} - -[DXdao](https://DXdao.eth.link) – DXdao je globální suverénní družstvo budující a řídící decentralizované protokoly a aplikace od roku 2019. Využívá řízení založené na reputaci a holografický konsensus ke koordinaci a správě finančních prostředků, což znamená, že si k ovládání její budoucnosti nikdo nemůže koupit cestu. - -## Připojte se / založte DAO {#join-start-a-dao} - -### Připojte se k DAO {#join-a-dao} - -- [DAO pro komunitu kolem Etherea](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [Seznam DAO od platformy DAOHaus](https://app.daohaus.club/explore) -- [Seznam DAO Tally.xyz](https://www.tally.xyz) - -### Založte DAO {#start-a-dao} - -- [Rozběhněte DAO pomocí DAOHaus](https://app.daohaus.club/summon) -- [Založte guvernéské DAO s Tally](https://www.tally.xyz/add-a-dao) -- [Vytvořte DAO postavenou na Aragonu](https://aragon.org/product) -- [Založte kolonii](https://colony.io/) -- [Vytvořte DAO s holografickým konsenzem DAOstack](https://alchemy.daostack.io/daos/create) - -## Další informace {#further-reading} - -### Články o DAO {#dao-articles} - -- [Co je DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) -- [Příručka DAO](https://daohandbook.xyz) -- [House of DAOs](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) -- [Co je to DAO a k čemu je to dobré?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) -- [Jak založit komunitu založenou na DAO](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) -- [Co je to DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) -- [Co je holografický konsenzus?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) -- [DAO nejsou korporace: kde na decentralizaci v autonomních organizacích záleží od Vitalika](https://vitalik.ca/general/2022/09/20/daos.html) -- [DAO, DAC, DA a další: Neúplná příručka terminologie](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Ethereum Blog](https://blog.ethereum.org) - -### Videa {#videos} - -- [Co je to DAO?](https://youtu.be/KHm0uUPqmVE) -- [Dokáže DAO vybudovat město?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/src/content/translations/cs/decentralized-identity/index.md b/src/content/translations/cs/decentralized-identity/index.md deleted file mode 100644 index 23c0ccdfc09..00000000000 --- a/src/content/translations/cs/decentralized-identity/index.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: Decentralizovaná identita -description: Co je decentralizovaná identita a proč na ní záleží? -lang: cs -template: use-cases -emoji: ":id:" -sidebarDepth: 2 -image: ../../../../assets/eth-gif-cat.png -summaryPoint1: Tradiční systémy identity centralizovaly vydávání, údržbu a kontrolu vašich identifikátorů. -summaryPoint2: Decentralizovaná identita odstraňuje závislost na centralizovaných třetích stranách. -summaryPoint3: Díky kryptu mají nyní opět uživatelé nástroje k vydávání, držení a ovládání svých identifikátorů a osvědčení. ---- - -Identita podpírá prakticky každý aspekt vašeho života. Využívání online služeb, otevírání bankovního účtu, hlasování ve volbách, nákup majetku, zajištění zaměstnávání — to vše vyžaduje prokázání vaší totožnosti. - -Tradiční systémy správy identity však dlouho závisely na centralizovaných zprostředkovatelích, kteří vydávají, drží a ovládají vaše identifikátory a [atestace](#what-are-attestations). To znamená, že nemůžete ovládat informace související s vaší identitou nebo rozhodovat o tom, kdo má přístup k osobně identifikovatelným informacím (PII) a jak velký přístup tyto strany mají. - -Abychom tyto problémy vyřešili, vytvořili jsme decentralizované systémy identity založené na veřejných blockchainech, jako je Ethereum. Decentralizovaná identita umožňuje jednotlivcům spravovat informace související s jejich identitou. Pomocí decentralizovaných řešení identity můžete i _vy_ vytvářet identifikátory a nárokovat a spravovat své atestace, aniž byste byli závislí na centrální autoritě, jako jsou poskytovatelé služeb či vlády. - -## Co je to identita? {#what-is-identity} - -Identita značí sebepojetí jednotlivce, které je definováno jedinečnými charakteristikami. Identita znamená být _jednotlivcem_, tj. samostatnou lidskou entitou. Identita také může odkazovat na jiné nelidské entity, jako jsou například organizace či autority. - -## Co jsou identifikátory? {#what-are-identifiers} - -Identifikátor je informace, která slouží jako ukazatel ke konkrétní identitě či identitám. Mezi časté identifikátory patří: - -- Jméno -- Číslo sociálního zabezpečení / DIČ -- Číslo mobilního telefonu -- Datum a místo narození -- Digitální identifikační údaje, např. e-mailové adresy, uživatelská jména, avatary - -Tyto tradiční příklady identifikátorů jsou vydávány, drženy a kontrolovány centrálními entitami. Potřebujete povolení od vlády, abyste změnili své jméno nebo od sociální sítě, abyste změnili své uživatelské jméno. - -## Co jsou atestace? {#what-are-attestations} - -Atestace je nárok uplatněn jednou entitou o jiné entitě. Pokud žijete ve Spojených státech, řidičský průkaz, který vám byl vydán Ministerstvem pro motorová vozidla (jednou entitou) vám (jiné entitě) udělí atestaci, která vám legálně umožňuje řídit auto. - -Atestace se liší od identifikátorů. Atestace _obsahuje_ identifikátory odkazující na určitou identitu a uplatňuje nárok o atributu vztahujícím se k této identitě. Takže váš řidičský průkaz má identifikátory (jméno, datum narození, adresa), ale je také atestací o vašem zákonném právu řídit. - -### Co jsou decentralizované identifikátory? {#what-are-decentralized-identifiers} - -Tradiční identifikátory, jako je vaše jméno nebo e-mailová adresa, jsou závislé na třetích stranách – vládách a poskytovatelích e-mailových služeb. Decentralizované identifikátory (DID) jsou odlišné – nejsou vydávány, spravovány ani ovládány žádnou centrální entitou. - -Decentralizované identifikátory jsou vydávány, drženy a kontrolovány jednotlivci. [Ethereum účet](/developers/docs/accounts/) je příkladem decentralizovaného identifikátoru. Můžete si vytvořit tolik účtů, kolik chcete, bez povolení od kohokoliv a bez nutnosti jejich uložení do centrálního rejstříku. - -Decentralizované identifikátory jsou uloženy v distribuovaných účetních knihách (blockchainech) nebo v sítích typu peer-to-peer. Díky tomu jsou DID [globálně jedinečné, řešitelné s vysokou dostupností a kryptograficky ověřitelné](https://w3c-ccg.github.io/did-primer/). Decentralizovaný identifikátor může být spojen s různými entitami, včetně lidí, organizací nebo vládních institucí. - -## Co umožňuje decentralizované identifikátory? {#what-makes-decentralized-identifiers-possible} - -### 1. Infrastruktura veřejných klíčů (PKI) {#public-key-infrastructure} - -Infrastruktura veřejných klíčů (PKI) je opatřením v oblasti informační bezpečnosti, které pro entitu vytváří [veřejný klíč](/glossary/#public-key) a [privátní klíč](/glossary/#private-key). Kryptografie veřejných klídů se využívá v sítích blockchainu k ověření totožnosti uživatelů a k prokázání vlastnictví digitálních majetků. - -Některé decentralizované identifikátory, například účet Ethereum, mají veřejné a privátní klíče. Veřejný klíč identifikuje správce účtu, zatímco privátní klíče mohou podepisovat a dešifrovat zprávy pro tento účet. PKI poskytuje důkazy potřebné k ověření totožnosti entit a k zabránění vydávání se za jinou osobu a používání falešných identit pomocí [kryptografických podpisů](https://andersbrownworth.com/blockchain/public-private-keys/) k ověření všech nároků. - -### 2. Decentralizovaná datová úložiště {#decentralized-datastores} - -Blockchain slouží jako ověřitelný rejstřík dat: otevřený a decentralizovaný repozitář informací. Existence veřejných blockchainů odstraňuje potřebu ukládat identifikátory do centralizovaných rejstříků. - -Pokud někdo potřebuje potvrdit platnost decentralizovaného identifikátoru, může najít přidružený veřejný klíč na blockchainu. Toto je odlišné od tradičních identifikátorů, které vyžadují ověření od třetích stran. - -## Jak decentralizované identifikátory a atestace umožňují decentralizovanou identitu? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} - -Decentralizovaná identita je přesvědčení, že informace týkající se identity by měly být samostatně kontrolovány, soukromé a přenosné, přičemž základem toho všeho jsou decentralizované identifikátory a atestace. - -V kontextu decentralizované identity jsou atestace (známé také jako [ověřitelné přihlašovací údaje](https://www.w3.org/TR/vc-data-model/)) odolné proti manipulaci a jsou to kryptograficky ověřitelné nároky vznešené vydavatelem. Každá atestace nebo ověřitelný přihlašovací údaj, který entita (např.: organizace) uplatní je spojen s jejich decentralizovanými identifikátory (DID). - -Protože jsou DID uloženy na blockchainu, každý může ověřit platnost atestace pomocí porovnávání DID vydavatele na Ethereu. Ethereový blockchain se v podstatě chová jako globální adresář, který umožňuje ověření DID spojených s určitými entitami. - -Decentralizované identifikátory jsou důvodem, proč jsou atestace samostatně kontrolované a ověřitelné. I když vydavatel již neexistuje, držitel má vždy důkaz o původu a platnosti atestace. - -Decentralizované identifikátory jsou také klíčové pro ochranu soukromí osobních údajů prostřednictvím decentralizované identity. Například, pokud daný jednotlivec předloží doklad o atestaci (např.: řidičský průkaz), ověřující strana nemusí ověřovat platnost informací v dokladu. Ověřovatel místo toho potřebuje pouze kryptografické záruky autenticity atestace a identity vydávající organizace, aby určil, zda je doklad platný. - -## Typy atestací v decentralizované identitě {#types-of-attestations-in-decentralized-identity} - -Jak se informace atestací ukládají a získávají v ekosystému založeném na Ethereu se liší od tradiční správy identity. Zde je přehled různých přístupů k vydávání, ukládání a ověřování atestací v decentralizovaných systémech identity: - -### Atestace mimo blockchain {#off-chain-attestations} - -Jednou z obav o uchovávání atestací na blockchainu je to, že by mohly obsahovat informace, které si jednotlivci přejí zachovat v tajnosti. Veřejná povaha blockchainu Ethereum činí ukládání takových osvědčení neatraktivním. - -Řešením je vydávat atestace držené uživateli mimo blockchain v digitálních peněženkách, ale podepsané s DID vydavatele uloženým na blockchainu. Tyto atestace jsou zakódovány jako [JSON Web Tokeny](https://en.wikipedia.org/wiki/JSON_Web_Token) a obsahují digitální podpis vydavatele, který umožňuje snadné ověření nároků mimo blockchain. - -Zde je hypotetická situace pro vysvětlení atestací mimo blockchain: - -1. Univerzita (vydavatel) vytváří atestaci (digitální akademický certifikát), podepisuje ji pomocí jejích klíčů a vydává ji Bobovi (majiteli identity). - -2. Bob žádá o práci a chce prokázat své akademické kvalifikace zaměstnavateli, takže sdílí atestaci ze své mobilní peněženky. Společnost (ověřovatel) pak může potvrdit platnost atestace kontrolou DID vydavatele (tj. jeho veřejného klíče v Ethereu). - -### Atestace mimo blockchain s trvalým přístupem {#offchain-attestations-with-persistent-access} - -V rámci tohoto uspořádání jsou atestace přeměněny na soubory JSON a uloženy mimo blockchain (ideálně na platformě [decentralizovaného cloudového úložiště](/developers/docs/storage/), jako je IPFS nebo Swarm). Nicméně [hash](/glossary/#hash) souboru JSON je uložen na blockchainu a propojen s DID prostřednictvím blockchainového rejstříku. Související DID může být buď vydavatele atestace, nebo příjemce. - -Tento přístup umožňuje atestacím získat trvalost založenou na blockchainu a současně uchovávat informace o nárocích šifrované a ověřitelné. Umožňuje rovněž selektivní zveřejnění, jelikož držitel privátního klíče může informace dešifrovat. - -### Atestace na blockchainu {#onchain-attestations} - -Atestace na blockchainu jsou uchovávány v [chytrých kontaktech](/developers/docs/smart-contracts/) na blockchainu Ethereum. Chytrý kontrakt (sloužící jako rejstřík) spojí atestaci k odpovídajícímu blockchainovému decentralizovanému identifikátoru (veřejnému klíči). - -Zde je příklad toho, jak by mohla fungovat blockchainová atestace v praxi: - -1. Společnost (XYZ s. r. o.) plánuje prodat vlastnické akcie pomocí chytrého kontraktu, ale chce pouze kupce, kteří dokončili prověření minulosti. - -2. XYZ s. r. o. může nechat společnost, která prověřuje minulost, vydávat atestace na blockchainu Ethereum. Tato atestace potvrzuje, že jednotlivec prošel prověřením minulosti, aniž by odhalil jakékoli osobní údaje. - -3. Chytrý kontrakt o prodeji akcií může zkontrolovat registrační kontrakt k nalezení identity zkontrolovaných kupců, což chytrému kontraktu umožňuje určit, kdo smí akcie koupit a kdo ne. - -### Soulbound tokeny a identity {#soulbound} - -[Soulbound tokeny](https://vitalik.ca/general/2022/01/26/soulbound.html) (nepřenosné NFT) by mohly být použity ke shromažďování informací jedinečných pro konkrétní peněženku. To efektivně vytváří jedinečnou blockchainovou identitu vázanou na konkrétní Ethereum adresu, která by mohla zahrnovat tokeny reprezentující úspěchy (např.: dokončení daného online kurzu nebo dosažení nového skóre ve hře) nebo komunitní účasti. - -## Výhody decentralizované identity {#benefits-of-decentralized-identity} - -1. Decentralizovaná identita zvyšuje individuální kontrolu nad identifikačními údaji. Decentralizované identifikátory a atestace lze ověřit bez spoléhání se na centralizované autority a služby třetích stran. - -2. Decentralizovaná řešení identity umožňují spolehlivou, bezproblémovou a soukromou metodu, jak ověřovat a spravovat identitu uživatele. - -3. Decentralizovaná identita využívá blockchainovou technologii, která vytváří důvěru mezi různými stranami a poskytuje kryptografické záruky k prokázání platnosti atestací. - -4. Decentralizovaná identita umožňuje přenosnost identit. Uživatelé ukládají atestace a identifikátory v mobilní peněžence a mohou je sdílet s jakoukoliv stranou dle svého výběru. Decentralizované identifikátory a atestace nejsou uzamčeny v databázi vydávající organizace. - -5. Decentralizovaná identita by měla dobře fungovat s rozvíjejícími se technologiemi s nulovými znalostmi, které jednotlivcům umožní dokázat, že něco vlastní nebo udělali, aniž by odhalili, o co jde. Toto by se mohlo stát účinným způsobem, jak kombinovat důvěru a soukromí využití decentralizované identity, jako je hlasování. - -6. Decentralizovaná identita umožňuje mechanismům proti Sybil útokům identifikovat, kdy se jeden jednotlivec vydává za více lidí, aby si na nějakém systému zahrál nebo ho zaspamoval. - -## Příklady využití decentralizované identity {#decentralized-identity-use-cases} - -Decentralizovaná identita má mnoho možných využití: - -### 1. Univerzální přihlášení {#universal-dapp-logins} - -Decentralizovaná identita může pomoci nahradit přihlašovací údaje na základě hesel[decentralizovanou autentizací](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). Poskytovatelé služeb mohou vydávat atestace uživatelům, které mohou být uloženy v Ethereum peněžence. Příkladem atestace by byl [NFT](/nft/) umožňující držiteli přístup k online komunitě. - -Funkce [Přihlášení s Ethereem](https://login.xyz/) by pak umožnila serverům potvrdit uživatelův Ethereum účet a načíst požadovanou atestaci z jejich adresy účtu. To znamená, že uživatelé mohou přistupovat k platformám a webům, aniž by si museli zapamatovat dlouhá hesla, a tím zlepšili jejich online zážitek. - -### 2. Autentizace KYC {#kyc-authentication} - -Používání mnoha on-line služeb vyžaduje, aby jednotlivci poskytovali atestace a ověření, jako je řidičský průkaz nebo národní cestovní pas. Tento přístup je však problematický, protože soukromé informace uživatelů mohou být ohroženy a poskytovatelé služeb nemohou ověřit autenticitu atestace. - -Decentralizovaná identita umožňuje společnostem vyhnout se konvenčním [Know-Your-Customer (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) procesům a ověřovat identitu uživatelů pomocí ověřitelných údajů. To snižuje náklady na správu identit a zabraňuje používání falešné dokumentace. - -### 3. Hlasování a online komunity {#voting-and-online-communities} - -Online hlasování a sociální média jsou dvě nová využití pro decentralizovanou identitu. Online hlasovací systémy jsou náchylné k manipulaci, zejména pokud škodliví aktéři vytvářejí k hlasování falešnou identitu. Žádat jednotlivce, aby předložili online atestace, může zlepšit integritu procesů hlasování on-line. - -Decentralizovaná identita může pomoci vytvořit online komunity, které jsou bez falešných účtů. Každý uživatel například bude muset ověřit svou identitu pomocí blockchainového systému identity jako je Ethereum Name Service, což snižuje možnost výskytu botů. - -### 4. Ochrana proti Sybil útokům {#sybil-protection} - -Sybil útoky jsou útoky, kde se jednotlivci snaží přelstít systém, aby si myslel, že jsou více lidmi, aby zvyšili svůj vliv. [Aplikace pro udělování grantů](https://gitcoin.co/grants/), které využívají [kvadratické hlasování](https://www.radicalxchange.org/concepts/plural-voting/), jsou zranitelné vůči těmto Sybil útokům, protože hodnota grantu se zvýší, když pro něj hlasuje více jednotlivců, což podněcuje uživatele k tomu, aby své příspěvky rozdělili na více identit. Decentralizované identity tomu pomáhají zabránit tím, že zvyšují břemeno každého účastníka, aby dokázali, že jsou skutečně lidé, i když často aniž by bylo nutné zveřejnit konkrétní soukromé informace. - -## Využití decentralizované identity {#use-decentralized-identity} - -Existuje mnoho ambiciózních projektů, které využívají Ethereum jako základ pro decentralizovaná řešení identity: - -- **[Ethereum Name Service (ENS)](https://ens.domains/)** – _Decentralizovaný systém pojmenování pro blockchainové, strojově čitelné identifikátory, jako jsou adresy peněženky Ethereum, hashe obsahů a metadata._ -- **[SpruceID](https://www.spruceid.com/)** – _Projekt decentralizované identity, který uživatelům umožňuje ovládat digitální identitu s Ethereum účty a profily ENS místo spoléhání se na služby třetích stran._ -- **[Ethereum Attestation Service (EAS)](https://attest.sh/)** – _Decentralizovaná účetní kniha/protokol pro vytváření jakýkoliv atestací na blockchainu nebo mimo něj._ -- **[Proof of Humanity](https://www.proofofhumanity.id)** – _Proof of Humanity (nebo PoH) je systém pro ověřování sociální identity postavený na Ethereu._ -- **[BrightID](https://www.brightid.org/)** – _Decentralizovaná síť sociální identity s veřejně dostupným zdrojovým kódem usilující o reformu ověřování identity vytvořením a analýzou sociálního grafu._ -- **[Proof-of-personhood Passport](https://proofofpersonhood.com/)** – _Decentralizovaný agregátor digitální identity._ - -## Další informace {#further-reading} - -### Články {#articles} - -- [Využití blockchainu: Blockchain a digitální identita](https://consensys.net/blockchain-use-cases/digital-identity/) – _ConsenSys_ -- [Co je Ethereum ERC725? Samostatně suverénní správa identity na Blockchainu](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Sam Town_ -- [Jak by blockchain mohl vyřešit problém digitální identity](https://time.com/6142810/proof-of-humanity/) — _Andrew R. Chow_ -- [Co je decentralizovaná identita a proč by vás měla zajímat?](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ - -### Videa {#videos} - -- [Decentralizovaná identita (Bonusové živé vysílání)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Skvělé video na vysvětlení decentralizované identity od Andrease Antonopolouse_ -- [Přihlaste se pomocí Etherea a decentralizované identity s Ceramic, IDX, React, a 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) – _YouTube tutorial na vytváření systému správy identity pro tvorbu, čtení a aktualizaci uživatelského profilu pomocí jejich Ethereum peněženky od Nadera Dabita_ -- [BrightID – Decentralizovaná identita na Ethereu](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _epizoda podcastu Bankless o BrightID, decentralizovaném řešení identity pro Ethereum_ -- [Internet mimo blockchain: Decentralizovaná identita & Ověřitelné údaje](https://www.youtube.com/watch?v=EZ_Bb6j87mg) – EthDenver 2022 prezentace Evina McMullena - -### Komunity {#communities} - -- [Aliance ERC-725 na GitHubu](https://github.com/erc725alliance) – _Stoupenci normy ERC725 pro správu identity na blockchainu Ethereum_ -- [SpruceID Discord server](https://discord.com/invite/Sf9tSFzrnt) – _Komunita pro nadšence a vývojáře pracující na přihlášení s Ethereem_ -- [Veramo Labs](https://discord.gg/sYBUXpACh4) – _Komunita vývojářů podílejících se na budování rámce pro ověřitelná data pro aplikace_ diff --git a/src/content/translations/cs/defi/index.md b/src/content/translations/cs/defi/index.md deleted file mode 100644 index 6bdd51a2056..00000000000 --- a/src/content/translations/cs/defi/index.md +++ /dev/null @@ -1,352 +0,0 @@ ---- -title: Decentralizované finance (DeFi) -description: Přehled DeFi na platformě Ethereum -lang: cs -template: use-cases -emoji: ":money_with_wings:" -image: ../../../../assets/use-cases/defi.png -alt: Logo Eth vyrobené z cihel lega. -sidebarDepth: 2 -summaryPoint1: Globální, otevřená alternativa ke stávající finanční soustavě. -summaryPoint2: Produkty, které vám umožňují půjčovat, šetřit, investovat, obchodovat a více. -summaryPoint3: Založeno na open-source technologiích, se kterými může programovat každý. ---- - -DeFi je otevřený a globální finanční systém vytvořený pro internetový věk – jako alternativa ke stávajícímu systému, který je neprůhledný, přísně kontrolovaný a držený pohromadě pomocí infrastruktury a procesů starých desítky let. Dává vám přehled a kontrolu nad vašimi penězi. Dává vám možnost obchodovat na globálních trzích a je alternativou k místní měně a bankovnictví. Produkty DeFi otevírají finanční služby pro každého s připojením k internetu a tyto produkty jsou většinou vlastněny a udržovány jeho uživateli. Aplikacemi DeFi již protekly desítky miliard dolarů v kryptoměně a toto množství vzrůstá každým dnem. - -## Co je to DeFi? {#what-is-defi} - -DeFi je kolektivní termín pro finanční produkty a služby, které jsou přístupné každému, kdo může používat Ethereum – každý, kdo má internetové připojení. S DeFi jsou trhy a burzy vždy otevřené a neexistují žádné centralizované orgány, které by mohly blokovat platby nebo odepřít vám k něčemu přístup. Služby, které byly dříve pomalé a ohroženy lidskou chybou, jsou nyní automatické a bezpečnější, protože jsou zpracovávány pomocí kódu, který může kdokoli kontrolovat. - -Kryptoekonomika je na vzestupu, můžete si v ní půjčovat, longovat/shortovat akcie, vydělávat na úrocích a mnoho dalšího. Kryptoměnami zabývající se Argentinci využili DeFi k tomu, aby unikli ochromující inflaci. Firmy začaly svým zaměstnancům zasílat jejich mzdy v reálném čase. Někteří lidé si dokonce vzali a splatili půjčky v hodnotě milionů dolarů, aniž by potřebovali jakoukoliv osobní identifikaci. - - - -## DeFi vs. tradiční finanční systém {#defi-vs-tradfi} - -Jedním z nejlepších způsobů, jak vidět potenciál DeFi je pochopit problémy, které dnes existují. - -- Někteří lidé nemají přístup ke zřízení bankovního účtu nebo k využívání finančních služeb. -- Nedostatečný přístup k finančním službám může zabránit tomu, aby byli lidé zaměstnatelní. -- Finanční služby vám mohou zablokovat výplatu. -- Skrytým poplatekem za finanční služby jsou vaše osobní údaje. -- Vlády a centralizované instituce mohou trhy podle vlastního uvážení uzavřít. -- Doba obchodování je často omezena na pracovní dobu konkrétního časového pásma. -- Převody peněz mohou trvat několik dní kvůli vnitřním lidským procesům. -- Finanční služby jsou zpoplatněny, protože zprostředkovatelské instituce potřebují svůj podíl. - -### Srovnání {#defi-comparison} - -| DeFi | Tradiční finanční systém | -| --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | -| Své peníze spravujete vy. | Vaše peníze jsou spravovány společnostmi. | -| Máte kontrolu nad tím, kam vaše peníze půjdou a jak budou utraceny. | Musíte věřit firmám, že s vašimi penězi nebudou špatně hospodařit, například půjčovat je rizikovým dlužníkům. | -| Převody finančních prostředků probíhají během několika minut. | Platby mohou kvůli manuálním procesům trvat několik dní. | -| Transakční činnost je pseudonymní. | Finanční činnost je úzce spojená s vaší identitou. | -| DeFi je otevřeno komukoliv. | O využívání finančních služeb musíte požádat. | -| Trhy jsou vždy otevřené. | Trhy se zavírají, protože zaměstnanci potřebují přestávky. | -| Je postaveno na transparentnosti – kdokoli se může podívat na data produktu a zkontrolovat, jak systém funguje. | Finanční instituce jsou uzavřeným účetnictvím: nemůžete je požádat o nahlédnutí do jejich úvěrové historie, záznamu o spravovaných aktivech apod. | - - - Objevte DeFi aplikace - - -## Začalo to Bitcoinem... {#bitcoin} - -Bitcoin byl v mnoha ohledech prvním využití DeFi. Bitcoin vám umožňuje skutečně vlastnit a spravovat hodnotu a odesílat ji kamkoli po celém světě. To dělá tak, že umožňuje velkému počtu lidí, kteří si navzájem nedůvěřují, dohodnout se na účetní knize bez potřeby důvěryhodného zprostředkovatele. Bitcoin je otevřen komukoliv a nikdo nemá pravomoc měnit jeho pravidla. Pravidla Bitcoinu, stejně jako jeho vzácnost a otevřenost, jsou do technologie zapsána. Není to jako v tradičních finančních systémech, kde vlády mohou tisknout peníze, které znehodnocují vaše úspory, a kde společnosti mohou odejít z trhu. - -Na tom Ethereum staví. Stejně jako u Bitcoinu se pravidla nemohou změnit a přístup má každý. Zároveň však umožňuje tyto digitální peníze programovat pomocí [chytrých kontraktů](/glossary#smart-contract), takže můžete jít nad rámec ukládání a odesílání hodnot. - - - -## Programovatelné peníze {#programmable-money} - -Zní to zvláštně... "Proč bych chtěl programovat své peníze"? Toto je však více než výchozí funkce tokenů na Ethereu. Každý může naprogramovat logiku do plateb. Takže můžete získat kontrolu a bezpečnost Bitcoinu v kombinaci se službami poskytovanými finančními institucemi. Díky tomu můžete s kryptoměnami dělat věci, které s Bitcoinem dělat nemůžete, jako je půjčování a vypůjčování, plánování plateb, investování do indexových fondů a další. - - -
Prozkoumejte naše návrhy pro DeFi aplikace a vyzkoušet je, pokud jste v Ethereu noví.
- - Objevte DeFi aplikace - -
- -## Co můžete udělat s DeFi? {#defi-use-cases} - -Existuje decentralizovaná alternativa k většině finančních služeb. Ethereum však také vytváří příležitosti pro vytváření finančních produktů, které jsou zcela nové. Toto je stále rostoucí seznam. - -- [Posílat peníze napříč zeměkoulí](#send-money) -- [Streamovat peníze napříč zeměkoulí](#stream-money) -- [Pracovat se stabilními měnami](#stablecoins) -- [Vypůjčit si finanční prostředky se zajištěním](#lending) -- [Půjčovat si bez zajištění](#flash-loans) -- [Začít šetřit s kryptem](#saving) -- [Obchodovat s tokeny](#swaps) -- [Rozšířit své portfolio](#investing) -- [Financovat své nápady](#crowdfunding) -- [Zakoupit pojištění](#insurance) -- [Spravovat své portfolio](#aggregators) - - - -### Rychle posílat peníze napříč zeměkoulí {#send-money} - -Protože je Ethereum blockchain, je navržen pro zasílání bezpečných a celosvětových transakcí. Stejně jako Bitcoin umožňuje Ethereum posílat peníze po celém světě stejně snadno jako poslat e-mail. Stačí zadat příjemcovo [ENS jméno](/nft/#nft-domains) (např. bob.eth) nebo adresu jeho účtu z vaší peněženky a vaše platba mu (obvykle) během několika minut přijde. Chcete-li posílat nebo přijímat platby, budete potřebovat [peněženku](/wallets/). - - - Zobrazit platební decentralizované aplikace - - -#### Streamovat peníze napříč celou zeměkoulí... {#stream-money} - -Můžete také streamovat peníze přes Ethereum. To vám umožní vyplatit někomu jejich plat za pouhou vteřinu a umožnit jim přístup k jejich penězům, kdykoli bude potřeba. Nebo si za vteřinu něco pronajmout, jako třeba úložnou skříňku nebo elektrický skútr. - -A pokud nechcete posílat nebo streamovat [ETH](/eth/) kvůli tomu, jak moc se může měnit jeho hodnota, existují na Ethereu alternativní měny: stablecoiny. - - - -### Pracovat se stabilními měnami {#stablecoins} - -Volatilita kryptoměn je problémem pro spoustu finančních produktů a obecných výdajů. Komunita DeFi tento problém vyřešila pomocí stablecoinů. Jejich hodnota zůstává vázaná na jiný majetek, obvykle populární měnu jako dolary. - -Mince jako Dai nebo USDC mají hodnotu, která zůstane v rozmezí několika centů od jednoho dolaru. Díky tomu jsou perfektní pro výdělky nebo maloobchod. Mnoho lidí v Latinské Americe využívalo stablecoiny jako způsob ochrany svých úspor v době velké nejistoty s měnami vydávanými vládou. - - - Více o stablecoinech - - - - -### Půjčky {#lending} - -Půjčování peněz od decentralizovaných poskytovatelů má dvě hlavní varianty. - -- Peer-to-peer, což znamená, že si dlužník půjčí přímo od konkrétního věřitele. -- Poolové půjčky, kde věřitelé poskytují finanční prostředky (likviditu) do poolu, ze kterého si poté dlužníci mohou půjčovat. - - - Zobrazit decentralizované aplikace na půjčky - - -Použití decentralizovaného věřitele má mnoho výhod... - -#### Půjčování s ochranou soukromí {#borrowing-privacy} - -Dnes se půjčování peněz točí kolem zúčastněných osob. Banky musí vědět, zda je pravděpodobné, že úvěr splatíte před jeho poskytnutím. - -Decentralizované půjčky fungují, aniž by se kterákoli ze stran musela identifikovat. Místo toho musí dlužník poskytnout zajištění, který věřitel automaticky obdrží, pokud dlužníkův úvěr nebude splacen. Někteří věřitelé dokonce přijímají NFT jako zajištění. NFT je listina na unikátní aktivum, jako třeba obraz. [Více o NFT](/nft/) - -To vám umožní půjčit si peníze bez úvěrových kontrol nebo předávání vašich citlivých informací. - -#### Přístup ke globálním finančním prostředkům {#access-global-funds} - -Když používáte decentralizovaného věřitele, máte přístup k finančním prostředkům z celého světa, nikoli pouze k finančním prostředkům v úschově vámi vybrané banky nebo instituce. Díky tomu jsou půjčky přístupnější a zlepšují se tak úrokové sazby. - -#### Daňové úlevy {#tax-efficiencies} - -Půjčka vám může umožnit přístup k potřebným prostředkům, aniž byste museli prodat svůj ETH (zdanitelnou událost). Místo toho můžete použít ETH jako zajištění pro půjčku stabilní kryptoměny (stablecoin). To vám zajistí potřebný cash-flow a umožní vám ponechat si své ETH. Stablecoiny jsou tokeny, které jsou mnohem vhodnější, když potřebujete hotovost, protože jejich hodnota nekolísá jako u ETH. [Více o stablecoinech](#stablecoins) - -#### Bleskové úvěry {#flash-loans} - -Bleskové úvěry jsou experimentálnější formou decentralizovaného půjčování, která vám umožní půjčit si bez zástavy nebo poskytnutí jakýchkoli osobních údajů. - -V současné době nejsou pro netechnické lidi široce přístupné, ale naznačují, co by mohlo být v budoucnu možné pro každého. - -Fungují na základě toho, že úvěry jsou čerpány a spláceny v rámci jedné transakce. Pokud úvěr nelze splatit, transakce se vrátí, jako by k ní nikdy nedošlo. - -Často využívané finanční prostředky jsou uloženy v likviditních poolech (velkých fondech využívaných k půjčkám). Pokud se v danou chvíli nevyužívají, vzniká příležitost, aby si někdo tyto prostředky vypůjčil, provedl s nimi obchod a splatil je v plné výši doslova ve stejnou dobu, kdy si je vypůjčil. - -To znamená, že do transakce šité na míru musí být zahrnuto mnoho logických prvků. Jednoduchým příkladem může být někdo, kdo si pomocí bleskového úvěru půjčí co nejvíce aktiva za jednu cenu, aby ho mohl prodat na jiné burze, kde je cena vyšší. - -V rámci jedné transakce se tedy stane následující: - -- Půjčíte si X kusů $asset za $1,00 z burzy A -- Prodáte X kusů $asset na burze B za $1,10 -- Splatíte půjčku burze A -- Ponecháte si zisk po odečtení transakčního poplatku - -Pokud zásoby burzy B náhle poklesly a uživatel nebyl schopen koupit dostatek prostředků na pokrytí původní půjčky, transakce by jednoduše selhala. - -Abyste mohli provést výše uvedený příklad v tradičním finančním systému, potřebovali byste obrovské množství peněz. Tyto strategie vydělávání peněz jsou přístupné pouze těm, kteří jsou již bohatí. Bleskové úvěry jsou příkladem budoucnosti, kdy mít peníze není nutně podmínkou pro jejich vydělávání. - -[Více o bleskových úvěrech](https://aave.com/flash-loans/) - - - -### Začít šetřit s kryptem {#saving} - -#### Půjčování {#lending} - -Půjčováním kryptoměn můžete vydělávat na úrocích a sledovat růst svých prostředků v reálném čase. Momentálně jsou úrokové sazby mnohem vyšší než ty, které pravděpodobně dostanete v místní bance (pokud máte to štěstí, že se k ní dostanete). Toto je příklad: - -- Půjčíte svých 100 Dai, [stablecoinů](/stablecoins/), produktu, jako je Aave. -- Obdržíte 100 Aave Dai (aDai), což je token, který reprezentuje vaše zapůjčené Dai. -- Váš aDai se bude zvyšovat na základě úrokových sazeb a v peněžence uvidíte rostoucí zůstatek. V závislosti na RPSN bude zůstatek ve vaší peněžence po několika dnech nebo dokonce hodinách činit například 100,1234! -- Kdykoli si můžete vybrat částku běžných Dai, která se rovná vašemu zůstatku aDai. - - - Zobrazit decentralizované aplikace na půjčování - - -#### Bezztrátové loterie {#no-loss-lotteries} - -Bezztrátové loterie, jako je třeba PoolTogether, představují nový zábavný a inovativní způsob, jak ušetřit peníze. - -- Za 100 tokenů Dai si koupíte 100 lístků. -- Obdržíte 100 plDai, které představují vašich 100 lístků. -- Pokud bude jeden z vašich lístků vytažen a označen za vítězný, zvýší se váš zůstatek na účtu plDai o částku výherního fondu. -- Pokud nevyhrajete, převádí se vašich 100 plDai do losování příštího týdne. -- Kdykoli si můžete vybrat částku běžných Dai, která se rovná vašemu zůstatku plDai. - -Výherní fond je tvořen všemi úroky z půjčování vkladů lístků jako v příkladu s půjčováním výše. - - - Vyzkoušejte PoolTogether - - - - -### Vyměňování tokenů {#swaps} - -Na Ethereu jsou tisíce tokenů. Decentralizované burzy (DEXy) umožňují obchodovat s různými tokeny kdykoliv chcete. Nikdy se nevzdáte kontroly nad svým majetkem. Je to podobné, jako když při návštěvě jiné země používáte směnárnu. Ale DeFi nikdy nezavírá. Trhy fungují 24 hodin denně, 365 dní v roce a technologie zaručuje, že se vždy najde někdo, kdo obchod přijme. - -Chcete-li se například zúčastnit bezztrátové loterie PoolTogether (popsané výše), budete potřebovat token Dai nebo USDC. Tyto DEXy vám umožní vyměnit ETH za tyto tokeny a zase zpět, až budete hotovi. - - - Zobrazit burzy tokenů - - - - -### Pokročilé obchodování {#trading} - -Pro obchodníky, kteří mají rádi větší kontrolu, jsou k dispozici pokročilejší možnosti. Možné jsou limitní příkazy, trvalé příkazy, obchodování s marží a další. S decentralizovaným obchodováním získáte přístup ke globální likviditě, trh se nikdy neuzavře a vy máte svá aktiva vždy pod kontrolou. - -Když používáte centralizovanou burzu, musíte svá aktiva před obchodem uložit a důvěřovat jí, že se o ně postará. Zatímco jsou vaše aktiva uložena, jsou v ohrožení, protože centralizované burzy jsou atraktivním cílem pro hackery. - - - Zobrazit decentralizované aplikace na obchodování - - - - -### Rozšířit své portfolio {#investing} - -Na Ethereu existují produkty pro správu fondů, které se snaží rozšířit vaše portfolio na základě vámi zvolené strategie. Je to automatické, otevřené všem a nepotřebuje to lidského manažera, který by si bral podíl ze zisku. - -Dobrým příkladem je fond [DeFi Pulse Index (DPI)](https://defipulse.com/blog/defi-pulse-index/). Jedná se o fond, který se automaticky rebalancuje, aby vaše portfolio vždy zahrnovalo [nejlepší DeFi tokeny podle tržní kapitalizace](https://www.coingecko.com/en/defi). Nikdy se nemusíte starat o žádné podrobnosti a z fondu můžete vybírat, kdykoli se vám zachce. - - - Zobrazit investiční decentralizované aplikace - - - - -### Financovat své nápady {#crowdfunding} - -Ethereum je ideální platformou pro crowdfunding: - -- Potenciální sponzoři mohou pocházet odkudkoli – Ethereum a jeho tokeny jsou otevřené komukoli a kdekoli na světě. -- Je transparentní, takže sponzoři mohou prokázat, kolik peněz se podařilo vybrat. Později můžete dokonce sledovat, jak je s prostředky vynaloženo. -- Sponzoři mohou nastavit automatické vracení peněz, například pokud není dodržen určitý termín a minimální částka. - - - Zobrazit decentralizované aplikace na crowdfunding - - -#### Kvadratické financování {#quadratic-funding} - -Ethereum je open source software a velká část dosavadní práce byla financována komunitou. To vedlo k rozvoji nového zajímavého modelu získávání finančních prostředků: kvadratického financování. To má potenciál zlepšit způsob, jakým budeme v budoucnu financovat všechny druhy veřejných statků. - -Kvadratické financování zajišťuje, že nejvíce finančních prostředků obdrží projekty s největší poptávkou. Jinými slovy, projekty, které zlepšují životy většiny lidí. Funguje to takhle: - -1. Z darovaných prostředků je vytvořen odpovídající pool. -2. Začne kolo veřejného financování. -3. Lidé mohou dát najevo svou poptávku po projektu tím, že mu věnují nějaké peníze. -4. Po skončení kola se odpovídající pool rozdělí mezi projekty. Ti, kteří mají nejvíce jedinečných poptávek, získají nejvyšší částku z odpovídajícího poolu. - -To znamená, že projekt A se 100 dary ve výši 1 dolaru může nakonec získat více finančních prostředků než projekt B s jediným darem ve výši 10 000 dolarů (v závislosti na velikosti odpovídajícího poolu). - -[Více o kvadratickém financování](https://wtfisqf.com) - - - -### Pojištění {#insurance} - -Cílem decentralizovaného pojištění je zlevnit pojištění, urychlit výplatu pojistného plnění a zvýšit jeho transparentnost. Díky větší automatizaci je pojištění cenově dostupnější a výplaty pojistného plnění jsou mnohem rychlejší. Údaje použité k rozhodnutí o vaší události jsou zcela transparentní. - -Ethereum produkty, stejně jako ostatní software, mohou trpět chybami a zneužíváním. Mnoho pojišťovacích produktů v této oblasti se nyní zaměřuje na ochranu uživatelů před ztrátou finančních prostředků. Existují ale i projekty, které začínají vytvářet krytí pro všechno, co nám život může přinést. Dobrým příkladem je projekt společnosti Etherisc Crop, jehož cílem je [ochránit drobné zemědělce v Keni před suchem a povodněmi](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Decentralizované pojištění může poskytnout levnější krytí zemědělcům, kteří jsou často z tradičního pojištění vyřazeni. - - - Zobrazit decentralizované aplikace na pojištění - - - - -### Agregátoři a správci portfolia {#aggregators} - -Vzhledem k tomuto všemu potřebujete mít přehled o všech svých investicích, půjčkách a obchodech. Existuje celá řada produktů, které umožňují koordinovat všechny aktivity DeFi z jednoho místa. V tom spočívá krása otevřené architektury DeFi. Týmy mohou vytvořit rozhraní, ve kterých můžete nejen vidět své zůstatky napříč produkty, ale také používat jejich funkce. Mohlo by se vám to hodit, až budete prozkoumávat další části DeFi. - - - Zobrazit decentralizované aplikace na portfolia - - - - -## Jak funguje DeFi? {#how-defi-works} - -DeFi využívá kryptoměny a chytré kontrakty k poskytování služeb, které nepotřebují prostředníky. V dnešním finančním světě vystupují finanční instituce jako ručitelé transakcí. To dává těmto institucím obrovskou moc, protože přes ně proudí vaše peníze. Navíc miliardy lidí na celém světě nemají ani přístup k bankovnímu účtu. - -V systému DeFi nahrazuje chytrý kontrakt finanční instituci v transakci. Chytrý kontrakt je typ Ethereum účtu, který může uchovávat finanční prostředky a na základě určitých podmínek je odesílat/vracet. Když je chytrý kontrakt v provozu, nikdo ho nemůže pozměnit – vždy bude fungovat tak, jak byl naprogramován. - -Kontrakt, který je určen k vyplácení kapesného, může být naprogramován tak, aby každý pátek posílal peníze z účtu A na účet B. A to vždy jen do té doby, dokud má účet A požadované prostředky. Nikdo nemůže kontrakt změnit a přidat účet C jako příjemce a ukrást tak finanční prostředky. - -Kontrakty jsou rovněž veřejné a každý si je může prohlédnout a zkontrolovat. To znamená, že špatné kontrakty se často rychle dostanou pod drobnohled komunity. - -To znamená, že v současné době je třeba důvěřovat techničtějším členům komunity Etherea, kteří umí číst kód. Open-source komunita pomáhá udržet vývojáře pod kontrolou, ale tato potřeba se bude časem snižovat s tím, jak budou chytré kontrakty snáze čitelné a budou se vyvíjet další způsoby, jak prokázat důvěryhodnost kódu. - -## Ethereum a DeFi {#ethereum-and-defi} - -Ethereum je ideálním základem pro DeFi z několika důvodů: - -- Ethereum ani chytré kontrakty, které na něm fungují, nikdo nevlastní – to dává každému příležitost používat DeFi. To také znamená, že nikdo nemůže měnit pravidla. -- Všechny produkty DeFi hovoří v zákulisí stejným jazykem: Ethereem. To znamená, že mnoho produktů spolu bez problémů spolupracuje. Tokeny můžete půjčovat na jedné platformě a zúročené tokeny směňovat na jiném trhu v úplně jiné aplikaci. Je to podobné, jako když si v bance můžete nechat vyplatit věrnostní body. -- Tokeny a kryptoměny jsou zabudovány do sdílené účetní knihy Ethereum – sledování transakcí a vlastnictví je tak trochu význam Etherea. -- Ethereum umožňuje naprostou finanční svobodu – většina produktů nikdy nepřevezme vaše prostředky do úschovy, což vám ponechá nad vašimi prostředky kontrolu. - -O DeFi můžete přemýšlet ve vrstvách: - -1. Blockchain – Ethereum obsahuje historii transakcí a stavy účtů. -2. Aktiva – [ETH](/eth/) a ostatní tokeny (měny). -3. Protokoly 2 [chytré kontrakty](/glossary/#smart-contract), které poskytují například službu umožňující decentralizované půjčování aktiv. -4. [Aplikace](/dapps/) – produkty, které používáme ke správě a přístupu k protokolům. - -## Budujte DeFi {#build-defi} - -DeFi je open-source hnutí. Všechny protokoly a aplikace DeFi jsou otevřené, abyste je mohli kontrolovat, rozšiřovat a inovovat. Díky tomuto vrstvenému zásobníku (všechny sdílejí stejný základní blockchain a aktiva) lze protokoly kombinovat a odemykat tak jedinečné možnosti kombinací. - - - Více o budování decentralizovaných aplikací - - -## Další informace {#futher-reading} - -### DeFi data {#defi-data} - -- [DeFi Prime](https://defiprime.com/) -- [DeFi Llama](https://defillama.com/) -- [DeFi Rate](https://defirate.com/) - -### DeFi články {#defi-articles} - -- [Průvodce DeFi pro začátečníky](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, 6. ledna 2020_ - -### Videa {#videos} - -- [Finematics – decentralizované finanční vzdělávání](https://finematics.com/) – _Videa o DeFi_ -- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) – _Základy DeFi: Vše, co potřebujete vědět, abyste mohli začít v tomto občas matoucím prostoru._ -- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _Co je to DeFi?_ - -### Komunity {#communities} - -- [Server DeFi Llama na Discordu](https://discord.gg/buPFYXzDDd) -- [Server DeFi Pulse na Discordu](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/cs/desci/index.md b/src/content/translations/cs/desci/index.md deleted file mode 100644 index cbf94ed76be..00000000000 --- a/src/content/translations/cs/desci/index.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: '"Decentralizovaná věda"' -description: Přehled decentralizované vědy na Ethereu -lang: cs -template: use-cases -emoji: ":microscope:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Globální, otevřená alternativa ke stávajícímu vědeckému systému. -summaryPoint2: Technologie, která vědcům umožňuje získávat financování, provádět experimenty, sdílet data, šířit poznatky a další. -summaryPoint3: Vychází z hnutí otevřené vědy. ---- - -## Co je decentralizovaná věda (DeSci)? {#what-is-desci} - -Decentralizovaná věda (DeSci) je směr, jehož cílem je vybudovat veřejnou infrastrukturu pro financování, vytváření, vyhodnocování, připisování, ukládání a šíření vědeckých poznatků poctivě a spravedlivě pomocí nástrojů Web3. - -Cílem DeSci je vytvořit ekosystém, v němž jsou vědci motivováni k otevřenému sdílení svého výzkumu a získávání uznání za svou práci a který zároveň umožňuje každému snadný přístup k výzkumu a přispívání do výzkumu. DeSci vychází z myšlenky, že vědecké poznatky by měly být přístupné všem a že proces vědeckého výzkumu by měl být transparentní. DeSci vytváří decentralizovanější a distribuovanější model vědeckého výzkumu, který je odolnější vůči cenzuře a kontrole ze strany centrálních autorit. DeSci věří, že decentralizací přístupu k financování, vědeckým nástrojům a komunikačním kanálům vytvoří prostředí, kde budou moci vzkvétat nové a nekonvenční myšlenky. - -Decentralizovaná věda umožňuje rozmanitější zdroje financování (od [DAO](/dao/) [přes kvadratické financování](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) až po crowdfunding a další), přístupnější data a metody a motivaci k reprodukovatelnosti. - -### Juan Benet – Hnutí DeSci - - - -## Jak DeSci zlepšuje vědu {#desci-improves-science} - -Neúplný seznam klíčových problémů ve vědě a způsobů, jakými může decentralizovaná věda přispět k jejich řešení - -| **Decentralizovaná věda** | **Tradiční věda** | -| ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| Rozdělení finančních prostředků je určováno veřejností za použití mechanismů, jako jsou kvadratické financování nebo DAO. | Malé, uzavřené, centralizované skupiny kontrolují rozdělování finančních prostředků. | -| V dynamických týmech spolupracujete s kolegy z celého světa. | Financující organizace a domovské instituce omezují vaši spolupráci. | -| Rozhodnutí o financování se konají online a transparentně. Zkoumají se nové mechanismy financování. | Rozhodnutí o financování se konají s dlouhým časovým odstupem a omezenou transparentností. Existuje jen málo mechanismů financování. | -| Sdílení laboratorních služeb je jednodušší a transparentnější pomocí nástrojů Web3. | Sdílení laboratorních zdrojů je často pomalé a netransparentní. | -| Lze vyvíjet nové modely pro publikování, které využívají základní prvky Web3 pro větší spolehlivost, transparentnost a univerzální přístup. | Publikujete prostřednictvím zavedených cest, které jsou často považovány za neefektivní, neobjektivní a vykořisťovatelské. | -| Můžete získat tokeny a reputaci za práci věnovanou vzájemnému hodnocení. | Vaše práce na vzájemném hodnocení je neplacená a přináší prospěch vydavatelům zaměřeným na zisk. | -| Duševní vlastnictví (intellectual property, IP), které vytváříte a distribuujete podle transparentních podmínek, patří vám. | Vaše domovská instituce vlastní IP, které vygenerujete. Přístup k IP není transparentní. | -| Veškerý výzkum, včetně dat z neúspěšných pokusů, se krok za krokem sdílí na blockchain. | Publikační zaujatost znamená, že výzkumníci s větší pravděpodobností budou sdílet jen experimenty, které byly úspěšné. | - -## Ethereum a DeSci {#ethereum-and-desci} - -Decentralizovaný vědecký systém vyžaduje robustní zabezpečení, minimální peněžní a transakční náklady a rozsáhlý ekosystém pro vývoj aplikací. Ethereum poskytuje vše potřebné pro vybudování decentralizovaného vědeckého ekosystému. - -## Příklady využití DeSci {#use-cases} - -DeSci buduje vědeckou sadu nástrojů pro integraci Web2 akademické obce do digitálního světa. Níže je ukázka použití, které Web3 může nabídnout vědecké komunitě. - -### Publikování {#publishing} - -Vědecké publikování je všeobecně problematické, neboť je řízeno nakladatelskými společnostmi, které spoléhají na neplacenou práci vědců, recenzentů a editorů při tvorbě článků, ale pak účtují přemrštěné poplatky za publikování. Veřejnost, která obvykle zaplatila za práci a náklady na publikaci nepřímo formou daní, často nemá bez další platby nakladateli k této práci přístup. Celkové poplatky za publikaci jednotlivých vědeckých článků často dosahují pěticiferných částek (v amerických dolarech, $USD), což podkopává celý koncept vědeckého poznání jako [veřejného statku](https://www.econlib.org/library/Enc/PublicGoods.html) a zároveň generuje obrovské zisky pro malou skupinu vydavatelů. - -Volně dostupné platformy existují ve formě předtiskových serverů, [jako je ArXiv](https://arxiv.org/). Nicméně tyto platformy postrádají kontrolu kvality, [mechanismy proti sybil útokům](https://csrc.nist.gov/glossary/term/sybil_attack) a obvykle nesledují metriky na úrovni článků, což znamená, že jsou obvykle používány pouze ke zveřejnění prací před odesláním k tradičnímu vydavateli. SciHub také umožňuje volný přístup k publikovaným článkům, avšak nelegálně, a to až poté, co vydavatelé již přijali platbu a práci opatřili přísnými autorskými právy. To zanechává kritickou mezeru pro dostupné vědecké práce a data s vloženým mechanismem legitimity a modelu motivace. Nástroje pro vytvoření takového systému existují ve světě Web3. - -### Reprodukovatelnost a replikovatelnost {#reproducibility-and-replicability} - -Reprodukovatelnost a replikovatelnost tvoří základy kvalitního vědeckého objevu. - -- Reprodukovatelných výsledků lze dosáhnout několikrát za sebou stejným týmem používajícím stejnou metodologii. -- Replikovatelných výsledků lze dosáhnout jinou skupinou, ale pomocí stejné metodologie. - -Nové nástroje založené na Web3 mohou zajistit, že reprodukovatelnost a replikovatelnost jsou základní vlastností vědeckých objevů. Kvalitní vědu dokážeme začlenit do technologické struktury akademické obce. Web3 nabízí možnost vytvářet ověření pro každý komponent analýzy: surová data, výpočetní pohon a výsledek aplikace. Krásou konsenzuálních systémů je, že když se vytvoří důvěryhodná síť pro udržování těchto komponent, každý účastník sítě může být zodpovědný za reprodukování výpočtu a ověření každého výsledku. - -### Financování {#funding} - -Současný standardní model financování vědy spočívá v tom, že jednotlivci nebo skupiny vědců podávají písemné žádosti na finanční agenturu. Malá skupina důvěryhodných jednotlivců hodnotí žádosti a následně provádí pohovory s uchazeči před udělením finančních prostředků malé části žadatelů. Kromě vytváření úzkých míst, která často vedou k letům čekání mezi podáním žádosti a obdržením grantu, je známo, že tento model je velmi zranitelný vůči předsudkům, vlastním zájmům a politice hodnotícího panelu. - -Studie ukázaly, že hodnotící panely pro udělování grantů nedokážou dobře vybírat kvalitní návrhy, protože stejné návrhy poskytnuté různým panelům mají zcela odlišné výsledky. Vzhledem k tomu, že financování je stále vzácnější, koncentrovalo se do menší skupiny zkušenějších výzkumníků s intelektuálně konzervativnějšími projekty. Tento efekt vytvořil hyperkonkurenční prostředí pro financování, posilující nepřirozené podněty a brzdící inovace. - -Web3 má potenciál narušit tento nefungující model financování tím, že experimentuje s různými modely podnětů vyvinutými DAO a Web3 obecně. [Retroaktivní financování veřejných statků](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), [kvadratické financování](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), [řízení DAO](https://www.antler.co/blog/daos-and-web3-governance) a [tokenizované struktury podnětů](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) jsou některé z nástrojů Web3, které by mohly zásadně změnit financování vědy. - -### Vlastnictví a vývoj IP {#ip-ownership} - -Duševní vlastnictví (IP) je v tradiční vědě velkým problémem: počínaje ponecháním na univerzitách přes nevyužití v biotechnologiích až po notoricky obtížné ocenění. Nicméně vlastnictví digitálních aktiv (jako jsou vědecká data nebo články) je něco, co Web3 umí výjimečně dobře pomocí [nezaměnitelných tokenů (NFT)](/nft/). - -Podobně jako NFT mohou posílat budoucí příjmy z transakcí zpět původnímu tvůrci, můžete vytvořit transparentní řetězce přiřazující ocenění, abyste odměňovali výzkumníky, řídící orgány (jako DAO) nebo dokonce subjekty, jejichž data jsou shromažďována. - -[IP-NFT](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) mohou také fungovat jako klíč k decentralizovanému datovému úložišti prováděných výzkumných experimentů a spojení do finančního systému NFT a [DeFi](/defi/) (od frakcionace po úvěrové fondy a ocenění). Také nativně umožňují entitám na blockchainu, jako jsou DAO, například [VitaDAO](https://www.vitadao.com/), provádět výzkum přímo na blockchainu. Příchod nezaměnitelných [„soulbound“ tokenů](https://vitalik.ca/general/2022/01/26/soulbound.html) může také sehrát důležitou roli v oblasti DeSci tím, že jednotlivcům umožní prokázat své zkušenosti a kvalifikace spojené s jejich adresou na Ethereu. - -### Ukládání dat, přístup a architektura {#data-storage} - -Vědecká data mohou být mnohem dostupnější pomocí Web3 schémat a distribuované úložiště umožňuje výzkumu přežít kataklyzmatické události. - -Výchozím bodem musí být systém dostupný pro jakoukoli decentralizovanou identitu s náležitými ověřitelnými pověřeními. To umožňuje bezpečnou replikaci citlivých dat důvěryhodnými stranami, díky čemuž je možná redundance a odolnost proti cenzuře, reprodukce výsledků a dokonce možnost spolupráce více stran a přidávání nových dat do datové sady. Důvěrné výpočetní metody, jako je [compute-to-data](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol), poskytují alternativní způsoby přístupu k replikaci surových dat a vytvářejí důvěryhodná výzkumná prostředí pro nejcitlivější data. Důvěryhodná výzkumná prostředí byla [citována NHS](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) jako řešení směřující k budoucnosti v oblasti ochrany dat a spolupráce. Vytvářejí ekosystém, kde výzkumníci mohou bezpečně pracovat s daty pomocí standardizovaných prostředí pro sdílení kódu a postupů. - -Flexibilní řešení úschovy a sdílení dat ve Web3 podporují výše zmíněné scénáře a poskytují základ pro skutečně Otevřenou vědu, kde výzkumníci mohou vytvářet veřejně prospěšné statky bez nutnosti povolení nebo poplatků. Veřejná datová řešení ve Web3, jako jsou IPFS, Arweave a Filecoin, jsou optimalizována pro decentralizaci. Například dClimate poskytuje univerzální přístup k datům o klimatu a počasí, včetně dat z meteorologických stanic a prediktivních klimatických modelů. - -## Zapojit se {#get-involved} - -Podívejte se na níže uvedené projekty a zapojte se do DeSci komunity. - -- [DeSci.Global: Globální kalendář událostí a setkání](https://desci.global) -- [Telegramová skupina Blockchain for Science](https://t.me/BlockchainForScience) -- [Molecule: Financujte a získejte financování pro vaše výzkumné projekty](https://discover.molecule.to/) -- [VitaDAO: Získávejte financování prostřednictvím sponzorovaných smluv o výzkumu pro výzkum dlouhověkosti](https://www.vitadao.com/) -- [ResearchHub: Publikujte vědecké výsledky a zapojte se do konverzace s kolegy](https://www.researchhub.com/) -- [LabDAO: Skládejte bílkoviny in-silico](https://alphafodl.vercel.app/) -- [dClimate API: Poptávejte klimatická data shromážděná decentralizovanou komunitou](https://api.dclimate.net/) -- [DeSci Foundation: Publikační nástroj v rámci DeSci](https://descifoundation.org/) -- [DeSci.World: Jednotné kontaktní místo, kde se uživatelé mohou podívat a zapojovat do DeSci](https://desci.world) -- [Fleming Protocol: Open-source datová ekonomika, která podporuje spolupracující biomedicinské objevy](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [OceanDAO: Financování řízené DAO pro vědu zabývající se daty](https://oceanprotocol.com/dao) -- [Opscientia: Otevřené decentralizované vědecké pracovní postupy](https://opsci.io/research/) -- [LabDAO: Skládejte bílkoviny in-silico](https://alphafodl.vercel.app/) -- [Bio.xyz: Získejte financování pro svůj biotechnologický DAO nebo DeSci projekt](https://www.molecule.to/) -- [ResearchHub: Publikujte vědecké výsledky a zapojte se do konverzace s kolegy](https://www.researchhub.com/) -- [VitaDAO: Získávejte financování prostřednictvím sponzorovaných smluv o výzkumu pro výzkum dlouhověkosti](https://www.vitadao.com/) -- [Fleming Protocol: Open-source datová ekonomika, která podporuje spolupracující biomedicinské objevy](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [Active Inference Lab](https://www.activeinference.org/) -- [CureDAO: Platforma vlastněná komunitou pro precizní zdravotní péči](https://docs.curedao.org/) -- [IdeaMarkets: Získávání decentralizované vědecké kredibility](https://ideamarket.io/) -- [DeSci Labs](https://www.desci.com/) - -Uvítáme návrhy na nové projekty, které je třeba uvést na seznam – pro začátek si přečtěte naše [zásady pro zařazení do seznamu](/contributing/adding-desci-projects/)! - -## Další četba {#further-reading} - -- [DeSci Wiki od Jocelynn Pearl a Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) -- [Průvodce decentralizovanou biotechnologií od Jocelynn Pearl pro budoucnost a16z](https://future.a16z.com/a-guide-to-decentralized-biotech/) -- [Případ pro DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) -- [Průvodce DeSci](https://future.com/what-is-decentralized-science-aka-desci/) -- [Decentralizované vědecké zdroje](https://www.vincentweisser.com/decentralized-science) -- [Molecule's Biopharma IP-NFTs – technický popis](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) -- [Budování důvěryhodných systémů vědy od Jona Starra](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) -- [Vznik biotechnologických DAO](https://molecule.to/blog/the-emergence-of-biotech-daos) -- [Paul Kohlhaas – DeSci: Budoucnost decentralizované vědy (podcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) -- [Aktivní inferenční ontologie pro decentralizovanou vědu: Od situovaného vytváření smyslu k epistemickému společnému prostoru](https://zenodo.org/record/6320575) -- [DeSci: Budoucnost výzkumu od Samuela Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) -- [Financování vědy (Epilolog: DeSci a nové krypto základní prvky) od Nadie](https://nadia.xyz/science-funding) -- [Decentralizace narušuje vývoj léků](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) - -### Videa {#videos} - -- [Co je decentralizovaná věda?](https://www.youtube.com/watch?v=-DeMklVWNdA) -- [Rozhovor mezi Vitalikem Buterinem a vědcem Aubreyem de Greyem o průsečíku výzkumu dlouhověkosti a kryptoměn](https://www.youtube.com/watch?v=x9TSJK1widA) -- [Vědecké publikování je rozbité. Může ho opravit Web3?](https://www.youtube.com/watch?v=WkvzYgCvWj8) -- [Juan Benet – DeSci, nezávislé laboratoře & velké škálování Data Science](https://www.youtube.com/watch?v=zkXM9H90g_E) -- [Sebastian Brunemeier – Jak může DeSci transformovat biomedicínský výzkum & rizikový kapitál](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/cs/nft/index.md b/src/content/translations/cs/nft/index.md deleted file mode 100644 index c1b0e913272..00000000000 --- a/src/content/translations/cs/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Nezaměnitelné tokeny (NFT) -description: Přehled NFT na Ethereu -lang: cs -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: Logo Eth zobrazené prostřednictvím hologramu. -summaryPoint1: Způsob, jak reprezentovat cokoliv unikátního jako majetek založený na Ethereu. -summaryPoint2: NFT dávají tvůrcům obsahu větší moc než kdykoliv předtím. -summaryPoint3: Běží na chytrých kontraktech na blockchainu Ethereum. ---- - -## Co jsou NFTéčka? {#what-are-nfts} - -NFT jsou tokeny, které jsou individuálně jedinečné. Každé NFT má jiné vlastnosti (nezaměnitelné) a je prokazatelně vzácné. V tom se liší od tokenů, jako jsou ERC-20, kde je každý token v sadě identický a má stejné vlastnosti („zaměnitelné“). Obdobně jě vám jedno, kterou konkrétní dolarovou bankovku máte v peněžence, protože všechny jsou totožné a mají stejnou hodnotu. Ale _není_ vám jedno, které konkrétní NFT vlastníte, protože každé má individuální vlastnosti, které ho odlišují od ostatních („nezastupitelné“). - -Jedinečnost každého NFT umožňuje tokenizaci věcí, jako je umění, sběratelské předměty nebo dokonce nemovitosti, kde jedno konkrétní unikátní NFT představuje jednu konkrétní unikátní položku existující v reálném nebo digitálnm světě. Vlastnictví aktiva je zajištěno Ethereum blockchainem. Nikdo nemůže měnit záznam vlastnictví nebo zkopírovat a následně vložit toto NFT na blockchain. - - - -## Internet aktiv {#internet-of-assets} - -NFT a Ethereum řeší některé problémy, které dnes na internetu existují. S postupující digitalizací je třeba replikovat vlastnosti fyzických předmětů, jako je vzácnost, jedinečnost a důkaz vlastnictví způsobem, který není řízen centrální organizací. Díky NFT můžete například vlastnit hudební mp3, která není spojena s konkrétní hudební aplikací jedné společnosti, nebo můžete vlastnit přezdívku na sociálních sítích, kterou můžete prodat nebo vyměnit, ale nemůže vám být libovolně odebrána poskytovatelem platformy. - -Zde je porovnání NFT internetu a internetu, tak jak ho známe dnes... - -### Porovnání {#nft-comparison} - -| NFT internet | Dnešní internet | -| ---------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | -| Vy vlastníte svá aktiva! Jen vy je můžete prodat nebo směnit. | Půjčujete si aktiva od jiné organizace. | -| NFT jsou digitálně unikátní, žádná dvě NFT nejsou stejná. | Kopii aktiva často nelze odlišit od originálu. | -| Vlastnictví NFT je zapsáno na blockchainu, aby si jej mohl kdokoli ověřit. | Záznamy o vlastnictví digitálních položek jsou uloženy na serverech ovládaných firmami, kterým musíte ohledně jejich správy důvěřovat. | -| NFT jsou smart kontrakty na Ethereu. To znamená, že je lze snadno použít v jiných smart kontraktech a aplikacích na Ethereu! | Firmy, které centralizovaně spravují digitálními aktiva, mají obvykle vlastní infrastrukturu „zahrady za zdí“. | -| Tvůrci obsahu mohou prodávat svá díla kdekoliv a mají přístup na globální trh. | Tvůrci spoléhají na infrastrukturu a distribuci platforem, které využívají. Často je limitují podmínky používání a geografická omezení. | -| Tvůrci NFT si mohou ponechat vlastnická práva ke svému dílu a naprogramovat licenční poplatky přímo do NFT kontraktu. | Platformy, jako například služby streamování hudby, si nechávají většinu zisků z prodeje. | - -## Jak fungují NFT? {#how-nfts-work} - -Stejně jako jakýkoli jiný token na Ethereu, i NFT vznikají pomocí smart kontraktu. Smart kontrakt odpovídá jednomu z několika standardů NFT (nejčastěji se jedná o ERC-721 nebo ERC-1155), které definují, jaké funkce tento konkrétní kontrakt má. Tento kontrakt může vytvořit („vymintovat“) NFT a poslat ho konkrétnímu vlastníkovi. Vlastnictví je definováno v kontraktu pomocí mapování konkrétních NFT na konkrétní adresy. Každé NFT má svoje ID a obvykle i metadata, díky kterým je každý token jedinečný. - -Když někdo vytvoří nebo vymintuje NFT, ve skutečnosti spouští funkci ve smart kontraktu, která přiřadí konkrétní NFT k jeho adrese. Tyto informace jsou uloženy přímo v paměti kontraktu, který je součástí blockchainu. Tvůrce kontraktu může přidat další podmínky, například omezit celkový počet tokenů v oběhu nebo nastavit licenční poplatek, který se vyplatí tvůrci pokaždé, když je token převeden. - -## K čemu se NFT používají? {#nft-use-cases} - -NFT se používají pro spoustu věcí, mezi které patří: - -- důkaz, že jste se zúčastnili nějaké události -- certifikát o absolvování kurzu -- potvrzení vlastnictví položek do počítačových her -- digitální umění -- tokenizace aktiv v reálném světě -- prokázání vaší online identity -- nastavení přístupu k obsahu -- prodej vstupenek -- decentralizované názvy internetových domén -- kolaterál v DeFi - -Možná jste umělec, který chce zveřejnit svou práci pomocí NFT, aniž by ztratil kontrolu a přišel o své zisky kvůli prostředníkům. Můžete vytvořit nový kontrakt a zadat počet NFT, jejich vlastnosti a přidat odkaz na konkrétní umělecké dílo. Jako umělec můžete do smart kontraktu naprogramovat licenční poplatky, které by vám měly být vyplaceny (např. 5 % z prodejní ceny, což je vlastníkovi kontraktu vyplaceno pokaždé, když je NFT převedeno). Vždy také můžete prokázat, že jste vytvořili NFT, protože vlastníte peněženku, která kontrakt vytvořila. Vaši kupující mohou snadno prokázat, že vlastní autentické NFT z vaší sbírky, protože adresa jejich peněženky je spojena s tokenem ve vašem smart kontraktu. Mohou jej používat v celém ekosystému Etherea a jsou si jisti jeho pravostí. - -Nebo si představte vstupenku na sportovní událost. Stejně jako organizátor události si může vybrat, kolik vstupenek bude prodávat, může tvůrce NFT rozhodnout, kolik kopií existuje. Někdy se jedná o přesné kopie, jako je 5 000 všeobecných vstupenek. Někdy je vytvořených několik NFT, která jsou velmi podobná, ale každé mírně odlišné, jako například vstupenka s přiděleným sedadlem. Ty lze kupovat a prodávat peer-to-peer bez placení prodejcům vstupenek a kupující se vždy může ujistit o pravosti vstupenky pomocí kontroly adresy kontraktu. - -Na ethereum.org se NFT používají k ukázce toho, že lidé přispěli do našeho repozitáře na Githubu nebo se zúčastnili callů, a dokonce máme vlastní NFT s názvem domény. Pokud přispějete na ethereum.org, můžete získat POAP NFT. Některé krypto meetupy používají POAPy jako vstupenky. [Více o přispívání](/contributing/#poap). - -![ethereum.org POAP](./poap.png) - -Tato webová stránka má také alternativní název domény využívající NFT, **ethereum.eth**. Naše adresa `.org` je centrálně spravována poskytovatelem doménových jmen (DNS), zatímco ethereum`.eth` je registrována na síti Ethereum prostřednictvím Ethereum Name Service (ENS). A je vlastněná a ovládaná námi. [Podívejte se na náš ENS záznam.](https://app.ens.domains/name/ethereum.eth) - -[Více o ENS](https://app.ens.domains) - - - -### Zabezpečení NFT {#nft-security} - -Ethereum je zabezpečeno mechanismem proof-of-stake. Systém je navržen tak, aby ekonomicky bránil zlovolným akcím, takže Ethereum je chráněno proti neoprávněným zásahům. To je to, co umožňuje NFT fungovat. Jakmile bude blok obsahující vaši NFT transakci dokončen, stálo by útočníka miliony etheru to změnit. Každý, kdo používá Ethereum software, by byl okamžitě schopen odhalit nepoctivé a nedovolené zásahy týkající se NFT a záškodník by byl ekonomicky penalizován a vykázán. - -Bezpečnostní otázky týkající se NFT se nejčastěji týkají podvodů s phishingem, zranitelnosti smart kontraktů nebo uživatelské chyby (jako je neúmyslné odhalení soukromého klíče). Dobrá ochrana peněženky je tedy pro majitele NFT klíčovou. - - - Více o bezpečnosti - - -## Další informace {#further-reading} - -- [Průvodce NFT](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, leden 2020_ -- [EtherscanNFT tracker](https://etherscan.io/nft-top-contracts) -- [Standart tokenu ERC-721](/developers/docs/standards/tokens/erc-721/) -- [Standart tokenu ERC-1155](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/cs/refi/index.md b/src/content/translations/cs/refi/index.md deleted file mode 100644 index e507f618168..00000000000 --- a/src/content/translations/cs/refi/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: Regenerativní finance (ReFi) -description: Přehled ReFi a aktuálních případů použití. -lang: cs -template: use-cases -emoji: ":recycle:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Alternativní ekonomický systém postavený na regenerativních principech -summaryPoint2: Snaha využít Ethereum k řešení koordinačních krizí na globální úrovni, jako je změna klimatu -summaryPoint3: Nástroj k významnému zvýšení škálování ekologických výhod, jako jsou ověřené emisní povolenky ---- - -## Co je to ReFi? {#what-is-refi} - -Pod pojmem **Regenerativní finance (ReFi)** rozumíme sadu nástrojů a nápadů na blockchainech, jejichž cílem je vytvářet ekonomiky, které jsou regenerativní, spíše než vykořisťovatelské nebo zaměřené na vytěžení surovin. Systémy zaměřené na vytěžení surovin časem spotřebují dostupné zdroje a zhroutí se; bez regenerativních mechanismů jim chybí odolnost. ReFi předpokládá, že vytváření monetární hodnoty je třeba oddělit od neudržitelného vytěžování zdrojů z naší planety a komunit. - -Namísto toho se ReFi snaží řešit environmentální, komunitní nebo sociální problémy vytvářením regenerativních cyklů. Tyto systémy vytvářejí hodnotu pro účastníky a současně jsou prospěšné pro ekosystémy a komunity. - -Jedním ze základů ReFi je koncept regenerativní ekonomiky, který vytvořil John Fullerton z [Capital Institute](https://capitalinstitute.org). Navrhl osm propojených principů, které jsou základem zdravého systému: - -![Osm vzájemně propojených principů](../../assets/use-cases/refi-regenerative-economy-diagram.png) - -ReFi projekty realizují tyto principy pomocí [smart kontraktů](/developers/docs/smart-contracts/) a aplikací [decentralizovaných financí (DeFi)](/defi/), které motivují regenerativní chování, například obnovu degradovaných ekosystémů, a usnadňují širokou spolupráci v globálních otázkách, jako je změna klimatu a ztráta biodiverzity. - -ReFi se také částěčně překrývá s hnutím [decentralizované vědy (DeSci)](/desci/), které využívá platformu Ethereum k financování, vytváření, recenzování, oceňování, ukládání a šíření vědeckých znalostí. Nástroje DeSci by mohly být užitečné pro vývoj ověřitelných standardů a postupů pro implementaci a monitorování regenerativních aktivit, jako je výsadba stromů, odstraňování plastů z oceánu nebo obnova degradovaného ekosystému. - -## Tokenizace emisních povolenek {#tokenization-of-carbon-credits} - -**[Dobrovolný trh s emisními povolenkami (voluntary carbon market, VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** je mechanismus pro financování projektů, které mají ověřitelný pozitivní vliv na emise uhlíku, ať už jde o snižování probíhajících emisí nebo odstraňování skleníkových plynů již vypuštěných do atmosféry. Tyto projekty po ověření obdrží aktivum nazvané "uhlíkové kredity". Tyto kredity mohou prodávat jednotlivcům a organizacím, které chtějí podpořit opatření na ochranu klimatu. - -Kromě VCM existuje také několik vládou řízených trhů s emisními povolenkami (tzv. „povinné trhy“), které se snaží stanovit cenu uhlíku prostřednictvím zákonů nebo nařízení v určité jurisdikci (např. země nebo regionu), a tím řídí nabídku distribuovaných povolenek. Povinné trhy motivovují znečišťovatele v rámci své jurisdikce ke snižování emisí, ale nejsou schopné redukovat skleníkové plyny, které již byly emitovány. - -Navzdory svému vývoji v posledních desetiletích má VCM řadu nedostatků: - -1. Silně fragmentovaná likvidita -2. Netransparentní mechanismy transakcí -3. Vysoké poplatky -4. Příliš malá rychlost obchodování -5. Nedostatek škálovatelnosti - -Přechod VCM na nový **digitální trh s uhlíkovými kredity (digital carbon market, DCM)** založený na blockchainové technologii by mohl být příležitostí pro modernizaci stávající technologie pro ověřování, převod a spotřebu emisních povolenek. Blockchainové technologie umožňují veřejně ověřitelná data, přístup pro širokou škálu uživatelů a vyšší likviditu. - -Projekty ReFi využívají technologii blockchainu k řešení množství problémů tradičního trhu: - -- **Likvidita je soustředěna v malém počtu likvidních poolů**, které může kdokoliv volně obchodovat. Velké organizace, stejně jako jednotliví uživatelé, mohou tyto pooly využívat bez manuálního vyhledávání prodejců/kupců, bez účastnických poplatků nebo registrace. -- **Všechny transakce se zaznamenávají na veřejné blockchainy**. Od okamžiku, kdy je kredit k dispozici v DCM, je cesta, kterou každá emisní povolenka absolvuje v důsledku obchodní aktivity, navždy sledovatelná. -- **Transakce jsou zpracovány téměř okamžitě**. Obstarání velkého množství emisních povolenek prostřednictvím tradičních trhů může trvat dny nebo týdny, ale na DCM toho lze dosáhnout během několika sekund. -- **Obchodování probíhá bez zprostředkovatelů**, kteří si účtují vysoké poplatky. Podle dat jisté analytické společnosti představují digitální emisní povolenky [62% zlepšení nákladů ve srovnání se srovnatelnými tradičními povolenkami](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne). -- **DCM je škálovatelný** a může uspokojit potřeby jednotlivců i nadnárodních společností. - -### Klíčové složky DCM {#key-components-dcm} - -Současný ekosystém DCM se skládá ze čtyř hlavních složek: - -1. Registry, jako je například [Verra](https://verra.org/project/vcs-program/registry-system/) a [Gold Standard](https://www.goldstandard.org/), zajišťují, že projekty vytvářející emisní povolenky jsou spolehlivé. Také provozují databáze, ve kterých digitální emisní povolenky vznikají a mohou být převáděny nebo spotřebovány (zrušeny). - -Nová vlna inovativních projektů budovaných na blockchainech se snaží konkurovat tradičním hráčům v tomto odvětví. - -2. Emisní bridge, a.k.a. tokenizery poskytují technologii pro reprezentaci nebo přenos emisních povolenek z tradičních registrů do DCM. Mezi zajímavé příklady patří [Toucan Protocol](https://toucan.earth/), [C3](https://c3.app/) a [Moss.Earth](https://moss.earth/). -3. Integrované služby nabízejí koncovým uživatelům kredity za zamezení a/nebo odstranění uhlíkových emisí. Takto mohou získat reputaci v oblasti životního prostředí a sdílet se světem, že podporují kroky vedoucí ke zlepšení životního prostředí. - -Některé organizace, jako jsou [Klima Infinity](https://www.klimadao.finance/infinity) a [Senken](https://senken.io/), nabízejí širokou škálu projektů vyvinutých třetími stranami a vydávaných podle zavedených standardů, jako je Verra; jiné, jako je [Nori](https://nori.com/), nabízejí pouze konkrétní projekty vyvinuté v rámci jejich vlastního standardu emisních povolenek, které vydávají a pro které mají vyhrazen svůj vlastní trh. - -4. Základní infrastruktura, která usnadňuje zvýšení dopadu a účinnosti celého dodavatelského řetězce na trhu s emisními povolenkami. [KlimaDAO](http://klimadao.finance/) dodává likviditu jako veřejný statek (umožňuje komukoli nakupovat nebo prodávat emisní povolenky za transparentní cenu), pobízí ke zvýšení přístupnosti trhů s povolenkami a odměnám za jejich vyřazení. Také poskytuje uživatelsky přívětivé interoperabilní nástroje pro přístup k údajům o široké škále tokenizovaných emisních povolenek, o jejich získávání a vyřazení. - -## ReFi mimo trhy s emisními povolenkami {#refi-beyond} - -Ačkoliv je v současnosti kladen silný důraz na trhy s emisními povolenkami obecně a zejména na přechod z VCM na DCM, termín „ReFi“ není striktně omezen na tento problém. Další environmentální aktiva mimo emisní povolenky mohou být vyvinuta a tokenizována, což znamená, že další negativní externality mohou být také zahrnuty do základních vrstev budoucích ekonomických systémů. Navíc lze regenerativní aspekt tohoto ekonomického modelu aplikovat i na jiné oblasti, jako je financování veřejných statků prostřednictvím platforem pro kvadratické financování, například [Gitcoin](https://gitcoin.co/). Organizace postavené na myšlence otevřené účasti a spravedlivé distribuce zdrojů umožňují komukoliv směrovat peníze do open-source software projektů, stejně jako do projektů zaměřených na vzdělávání, životní prostředí a komunity. - -Přesunem směřování kapitálu z projektů vytěžujících zdroje k regenerativně zaměřeným akcím mohou projekty a společnosti, které poskytují sociální, environmentální nebo komunitní výhody – a které by nemusely získat financování v tradičním finančním sektoru – rychleji a snadněji získat základní kapitál a generovat pozitivní externality pro společnost. Přechod na tento model financování také otevírá dveře mnohem inkluzivnějším ekonomickým systémům, ve kterých se lidé všech demografických skupin mohou stát aktivními účastníky místo pouhých pasivních pozorovatelů. ReFi nabízí vizi Etherea jako mechanismu pro koordinaci akcí souvisejících s existenčními výzvami, kterým čelí naše druhy a veškerý život na naší planetě – jako základní vrstvu nového ekonomického paradigmatu, který umožňuje inkluzivnější a udržitelnou budoucnost na budoucí staletí. - -## Další zdroje informací o ReFi - -- [Základní přehled emisních měn a jejich místo v ekonomice](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) -- [The Ministry for the Future, román popisující roli měny kryté emisními povolenkami v boji proti změně klimatu](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) -- [Podrobná zpráva od Taskforce on Scaling Voluntary Carbon Markets](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) -- [Glossář o ReFi od Kevina Owockiho a Evana Miyazona na CoinMarketCap](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/cs/smart-contracts/index.md b/src/content/translations/cs/smart-contracts/index.md deleted file mode 100644 index fe48d7493dd..00000000000 --- a/src/content/translations/cs/smart-contracts/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Chytré kontrakty -description: Netechnický úvod do chytrých kontraktů -lang: cs ---- - -# Úvod do chytrých kontraktů {#introduction-to-smart-contracts} - -Chytré kontrakty jsou základními stavebními kameny aplikační vrstvy Etherea. Jsou to počítačové programy uložené na blockchainu, které se řídí logikou „jestli tohle, tak tamto“ a je zaručeno, že se spouštějí podle pravidel definovaných svým kódem, který po vytvoření nelze změnit. - -Nick Szabo zavedl termín „chytrý kontrakt“. V roce 1994 napsal [úvod do tohoto konceptu](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html) a v roce 1996 napsal [výzkum činností, které by chytré kontrakty mohly dělat](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). - -Szabo si představoval digitální tržiště, kde automatické, kryptograficky bezpečné procesy umožňují provádění transakcí a obchodních funkcí bez důvěryhodných zprostředkovatelů. Chytré kontrakty na Ethereu tuto vizi uvedly do praxe. - -### Důvěra v konvenční kontrakty {#trust-and-contracts} - -Jedním z největších problémů tradičních kontraktů je, že vyžadují, aby důvěryhodné osoby dodržely podmínky kontraktu. - -Tady je ukázka: - -Představme si, že Alice a Bob jedou cyklistický závod. Řekněme, že Alice se vsadí s Bobem o 10 dolarů, že vyhraje závod. Bob si je jistý, že bude vítězem a souhlasí se sázkou. Alice nakonec dojede do cíle o hodně dříve než Bob a je jasným vítězem. Bob však odmítá vyplatit sázku a tvrdí, že Alice musela podvádět. - -Tento jednoduchý příklad ilustruje problém s jakoukoliv dohodou, která není založená na chytrém kontraktu. I když jsou podmínky dohody splněny (tj. jste vítězem závodu), musíte stále důvěřovat jiné osobě, že splní svou část dohody (např. že vám vyplatí výhru). - -### Digitální prodejní automat {#vending-machine} - -Jednoduchá metafora pro chytrý kontrakt je prodejní automat, který funguje podobně jako chytrý kontrakt – konkrétní vstupy zaručují předem stanovené výstupy. - -- Vyberete produkt -- Automat zobrazí cenu -- Zaplatíte -- Automat ověří, že jste zaplatili správnou částku -- Automat vám vydá vybraný produkt - -Prodejní automat vám vydá požadovaný produkt až po splnění všech požadavků. Pokud si nevyberete produkt nebo nevložíte dostatek peněz, prodejní automat vám produkt nevydá. - -### Automatické vykonání požadovaného výsledku {#automation} - -Hlavní výhodou chytrého kontraktu je, že deterministicky provádí jednoznačný kód, pokud jsou splněny určité podmínky. Není třeba čekat na lidskou interpretaci nebo vyjednávat o výsledku. Tím odpadá potřeba důvěryhodných zprostředkovatelů. - -Například můžete sepsat chytrý kontrakt, který drží finanční prostředky v úschově pro dítě, a umožní mu vybrat finanční prostředky až po určitém datu. Pokud se pokusí vybrat prostředky před tímto datem, chytrý kontrakt tuto operaci neumožní. Nebo můžete sepsat kontrakt, který vám automaticky poskytne digitální verzi vlastnictví vozidla, když zaplatíte prodejci. - -### Předpovídatelné výsledky {#predictability} - -Tradiční kontrakty jsou nejednoznačné, protože se spoléhají na to, že je interpretují a realizují lidé. Například dva soudci mohou vykládat kontrakt odlišnými způsoby, což může vést k nekonzistentním rozhodnutím a odlišným výsledkům. Chytré kontrakty tuto variantu neumožňují. Místo toho se chytré kontrakty exekuují přesně na základě podmínek napsaných v kódu kontraktu. Tato přesnost znamená, že za stejných okolností bude chytrý kontrakt poskytovat stejný výsledek. - -### Veřejný záznam {#public-record} - -Chytré kontrakty jsou užitečným nástrojem pro audity a sledování. Jelikož jsou ethereovské smart kontrakty na veřejném blockchainu, každý může okamžitě sledovat převody aktiv a další související informace. Můžete například zkontrolovat, zda někdo poslal peníze na vaši adresu. - -### Ochrana soukromí {#privacy-protection} - -Chytré kontrakty také chrání vaše soukromí. Protože je Ethereum pseudonymní síť (vaše transakce jsou veřejně vázány na jedinečnou kryptografickou adresu, ne vaši identitu), můžete chránit své soukromí před pozorovateli. - -### Transparentní podmínky {#visible-terms} - -A konečně, stejně jako v případě tradičních kontraktů, můžete prozkoumat, co je obsahem chytrého kontraktu před tím, než ho podepíšete (nebo s ním budete interagovat jiným způsobem). Transparentnost chytrého kontraktu zaručuje, že si ho může prohlédnout kdokoli. - -## Využití chytrých kontraktů {#use-cases} - -Chytré kontrakty umí v podstatě cokoli, co umí počítačové programy. - -Mohou provádět výpočty, vytvářet měnu, ukládat data, těžit NFT, odesílat komunikaci a dokonce generovat grafiku. Zde jsou některé reálné populární příklady: - -- [Stablecoiny](/stablecoins/) -- [Vytváření a distribuce jedinečných digitálních majetků](/nft/) -- [Automatická otevřená směnárna](/get-eth/#dex) -- [Decentralizované počítačové hry](/dapps/?category=gaming) -- [Pojistná smlouva, která automaticky vyplatí plnění](https://etherisc.com/) -- [Standard, který umožňuje vytvářet interoperabilní měny dle konkrétních požadavků](/developers/docs/standards/tokens/) - -## More of a visual learner? {#visual-learner} - -Koukněte se, jak vysvětlují chytré kontrakty na Finematics: - - - -## Další informace {#further-reading} - -- [Jak chytré kontrakty změní svět](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [Chytré kontrakty: Blockchainová technologie, která nahradí právníky](https://blockgeeks.com/guides/smart-contracts/) -- [Chytré kontrakty pro vývojáře](/developers/docs/smart-contracts/) -- [Naučte se psát chytré kontrakty](/developers/learning-tools/) -- [Pochopení Etherea – Co je chytrý kontrakt?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/src/content/translations/cs/social-networks/index.md b/src/content/translations/cs/social-networks/index.md deleted file mode 100644 index 468c49d34d8..00000000000 --- a/src/content/translations/cs/social-networks/index.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: Decentralizované sociální sítě -description: Přehled decentralizovaných sociálních sítí na Ethereu -lang: cs -template: use-cases -emoji: ":mega:" -sidebarDepth: 2 -image: ../../../../assets/ethereum-learn.png -summaryPoint1: Platformy založené na blockchainu pro sociální interakci a tvorbu a distribuci obsahu. -summaryPoint2: Decentralizované sociální sítě chrání soukromí uživatelů a zvyšují bezpečnost dat. -summaryPoint3: Tokeny a NFT umožňují monetizovat obsah novým způsobem. ---- - -Sociální sítě hrají velkou roli v naší každodenní komunikaci a interakcích. Centralizovaná kontrola těchto platforem však způsobila spoustu problémů: úniky dat, výpadky serverů, mazání uživatelských účtů, cenzura a narušování soukromí jsou jen některými kroky, které sociální média dělají. Aby bojovali proti těmto problémům, budují vývojáři sociální sítě na Ethereu. Decentralizované sociální sítě mohou řešit mnoho problémů tradičních platforem sociálních médií a zlepšit celkovou uživatelskou zkušenost. - -## Co jsou decentralizované sociální sítě? {#what-are-decentralized-social-networks} - -Decentralizované sociální sítě jsou platformy založené na blockchainu, které umožňují uživatelům sdílení informací a zveřejňování obsahu pro své publikum. Díky tomu, že tyto aplikace běží na blockchainu, jsou decentralizované a odolné vůči cenzuře a přílišné kontrole. - -Existuje mnoho decentralizovaných sociálních sítí jako alternativy k zavedeným sociálním médiím, jako jsou Facebook, LinkedIn, Twitter a Medium. Avšak sociální sítě využívající blockchainovou technologii mají několik funkcí, které je staví nad tradiční sociální platformy. - -### Jak fungují decentralizované sociální sítě? {#decentralized-social-networks-overview} - -Decentralizované sociální sítě patří mezi [decentralizované aplikace (DAPP)](/dapps/) – aplikace využívající ke svému fungování [smart kontrakty](/developers/docs/smart-contracts/) na blockchainu. Zdrojový kód kontraktu slouží jako backend pro tyto aplikace a definuje jejich byznysovou logiku. - -Tradiční sociální sítě využívají pro ukládání informací uživatelů databáze, programový kód a další formy dat. To však vytváří tzv. jediné body selhání a tím uživatelům přináší značné riziko. Například serverové služby Facebooku se loni proslulým způsobem [na několik hodin odpojily](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact), což uživatele úplně odřízlo od této platformy. - -Decentralizované sociální sítě fungují na peer-to-peer síti, která zahrnuje tisíce síťových uzlů po celém světě. I když některé síťové uzly přestanou fungovat, síť bude nadále v provozu bez přerušení, což činí aplikace odolnými vůči poruchám a výpadkům. - -Díky použití decentralizovaných úložných systémů jako je [InterPlanetary File System (IPFS)](https://ipfs.io/) mohou sociální sítě postavené na Ethereu chránit informace uživatelů před zneužitím a škodlivým použitím. Nikdo nebude mít možnost prodávat vaše osobní údaje reklamním agenturám, a hackeři nebudou schopni ukrást vaše důvěrné informace. - -Mnoho sociálních platforem založených na blockchainu má vlastní tokeny, které umožňují monetizaci bez příjmů z reklamy. Uživatelé si mohou koupit tyto tokeny, aby získali přístup k určitým funkcím, provedli nákupy uvnitř aplikace nebo je darovali svým oblíbeným tvůrcům obsahu. - -## Výhody decentralizovaných sociálních sítí {#benefits} - -1. Decentralizované sociální sítě jsou odolné vůči cenzuře a otevřené všem. To znamená, že uživatelé nemohou být zakázáni, odstraněni z platformy nebo jinak omezeni. - -2. Decentralizované sociální sítě jsou postaveny na zásadách open-source a zpřístupňují veřejnosti svůj zdrojový kód, na který se tak může podívat kdokoliv. Odstraněním implementace netransparentních algoritmů běžných u tradičních sociálních médií mohou sociální sítě založené na blockchainu sjednotit zájmy uživatelů a tvůrců platformy. - -3. Decentralizované sociální sítě ruší nutnost "prostředníka". Tvůrci svůj obsah vlastní a komunikují se svými followery, fanoušky, zákazníky a dalšími subjekty napřímo prostřednictvím smart kontraktu. - -4. Jako DAPP běžící na síti Ethereum, která je udržována globální, peer-to-peer sítí uzlů, jsou decentralizované sociální sítě méně náchylné na výpadky serverů a elektřiny. - -5. Decentralizované sociální platformy nabízejí pro tvůrce obsahu vylepšený způsob monetizace pomocí nezaměnitelných tokenů (NFT), kryptoměnových plateb uvnitř aplikace a dalších možností. - -6. Decentralizované sociální sítě uživatelům poskytují vysokou úroveň soukromí a anonymity. Například jednotlivec se může přihlásit do sociální sítě založené na Ethereu pomocí ENS profilu nebo peněženky – aniž by musel sdílet osobně identifikovatelné informace (personally identifiable information, PII), jako jsou jména, e-mailové adresy atp. - -7. Decentralizované sociální sítě spoléhají na decentralizované úložiště, nikoliv na centralizované databáze, což je mnohem lepší způsob zabezpečení uživatelských dat. - -## Decentralizované sociální sítě na Ethereu {#ethereum-social-networks} - -Síť Ethereum se stala preferovaným nástrojem pro vývojáře, kteří vytvářejí decentralizovaná sociální média, a to díky popularitě tokenů (ERC-20/ERC-721) a obrovskému počtu uživatelů. Zde jsou některé příklady sociálních sítí běžících na Ethereu: - -### Peepeth {#peepeth} - -[Peepeth](https://peepeth.com/) je mikroblogovací platforma podobná Twitteru. Běží na blockchainu Ethereum a ukládá uživatelská data pomocí IPFS. - -Uživatelé mohou posílat krátké zprávy nazývané "peepy", které nelze smazat ani upravit. Můžete sbírat dýška nebo někomu na platformě dát dýško v etheru (ETH), aniž byste museli z aplikace odejít. - -### Mirror {#mirror} - -[Mirror](https://mirror.xyz/) je platforma pro psaní s podporou Web3, jejímž cílem je být decentralizovaná a vlastněná uživateli. Uživatelé platformy Mirror mohou číst a psát obsah zdarma jednoduše přihlášením pomocí svých peněženek. Také mohou sbírat publikovaný obsah a předplatit si své oblíbené tvůrce. - -Příspěvky publikované na Mirroru jsou trvale uloženy na Arweave, decentralizované úložné platformě, a mohou být vytvořeny jako sběratelské [nezaměnitelné tokeny (NFT)](/nft/) známé jako Writing NFT. Vytváření Writing NFT je pro tvůrce zcela zdarma a jejich převody probíhají na vrstvě 2 Etherea, což zajišťuje levné, rychlé a ekologicky šetrné transakce. - -### MINDS {#minds} - -[MINDS](https://www.minds.com/) je jednou z nejpoužívanějších decentralizovaných sociálních sítí. Funguje podobně jako Facebook a už má miliony uživatelů. - -K platbě za příspěvky na sociální sítí používají uživatelé nativní ERC-20 token $MIND. Uživatelé si tokeny $MIND mohou také vydělat, a to tím, že publikují obsah, který je u ostatních uživatelů populární, přispívají do ekosystému a přivedou na platformu další uživatele. - -## Web2 sociální sítě na Ethereu {#web2-social-networks-and-ethereum} - -[Web3](/web3/) nativní sociální platformy nejsou jediné, které se snaží začlenit technologii blockchainu do sociálních médií. I mnoho centralizovaných platforem plánuje integrovat Ethereum do své infrastruktury: - -### Reddit {#reddit} - -Reddit má tzv. [Community Points](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users), což jsou [ERC-20 tokeny](/developers/docs/standards/tokens/erc-20/), které mohou uživatelé dostat za publikování kvalitního obsahu a přispívání do online komunit (subredditů). Tyto tokeny lze v rámci daného subredditu utratit za exkluzivní výhody a výsady. Více informací najdete [zde](https://www.reddit.com/community-points/). Reddit na tomto projektu spolupracuje s Arbitrem, což je rollup [vrstvy W](/layer-2/) navržený ke škálování transakcí na Ethereu. - -Tento program už je spuštěn a na subredditu r/CryptoCurrency [běží verze Community Points nazvaná "Moons".](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Moons podle oficiálního popisu „odměňují uživatele za jejich příspěvky a komentáře a moderátory za jejich přínos na subredditu“. Jelikož tyto tokeny jsou na blockchainu (uživatelům jsou připisovány rovnou do jejich peněženek), jsou nezávislé na Redditu a nelze je uživatelům odebrat. - -Po dokončení beta fáze na testovací síti Rinkeby jsou Community Points v současné době na [Arbitrum Nova](https://nova.arbitrum.io/), blockchainu, který kombinuje vlastnosti [sidechainu](/developers/docs/scaling/sidechains/) a [optimistického rollupu](/developers/docs/scaling/optimistic-rollups/). Community Points mohou být kromě utracení za odemknutí speciálních funkcí také směněny za fiat na burzách. Množství Community Points, které uživatel vlastní, také určuje jeho vliv na rozhodování v rámci komunity. - -### Twitter {#twitter} - -V lednu 2021 Twitter Blue [zavedl podporu pro NFT](https://mashable.com/article/twitter-blue-nft-profile-picture), umožňující uživatelům připojit své peněženky a zobrazovat NFT jako profilové obrázky. V době psaní tohoto článku tato společnost také [oznámila plány](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) na vytvoření decentralizované sociální sítě. - -### Instagram {#instagram} - -V květnu 2022 [Instagram oznámil podporu pro NFT](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) na platformách Ethereum a Polygon. Uživatelé mohou nahrávat NFT na Instagram napřímo a to připojením své peněženky Ethereum. - -## Použití decentralizovaných sociálních sítí {#use-decentralized-social-networks} - -- **[Status.im](https://status.im/)** – _Status je bezpečná zprávová aplikace, která využívá open-source, peer-to-peer protokol a end-to-end šifrování k ochraně vašich zpráv před třetími stranami._ -- **[Mirror.xyz](https://mirror.xyz/)** – _Mirror je decentralizovaná platforma pro publikaci obsahu vlastněného uživateli postavená na Ethereu, která umožňuje uživatelům crowdfundovat nápady, monetizovat obsah a budovat komunity._ -- **[Lens Protocol](https://lens.xyz/)** – _Lens Protocol je komponovatelný a decentralizovaný sociální diagram, který pomáhá tvůrcům uchovat vlastnictví nad jimi vytvořeným obsahem kdekoliv v digitální zahradě decentralizovaného internetu._ -- **[Farcaster](https://farcaster.xyz/)** – _Farcaster je dostatečně decentralizovaná sociální síť. Je to otevřený protokol, který může podporovat více klientů, stejně jako e-mail._ - -## Další četba {#further-reading} - -### Články {#articles} - -- [Decentralizace sociálních médií: průvodce web3 stackem sociálních sítí](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) – _Coinbase Ventures_ -- [Sociální sítě jsou další velkou příležitostí pro decentralizaci](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Goertzel_ -- [Web3 má příslib decentralizovaných komunitně řízených sociálních sítí](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ -- [Přehled ekosystému blockchainových sociálních médií](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ -- [Jak může blockchain vyřešit otázku soukromí na sociálních sítích](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Prableen Bajpai_ -- [Sociální média přichází na blockchain](https://businesstechguides.co/what-are-decentralized-social-networks) — _Emmanuel Awosika_ -- [Dostatečná decentralizace pro sociální sítě](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Varun Srinivasan_ - -### Videa {#videos} - -- [Vysvětlení decentralizovaných sociálních médií](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ -- [DeSo Blockchain chce decentralizovat sociální média](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ -- [Budoucnost decentralizovaných sociálních médií s Balajim Srinivasanem, Vitalikem Buterinem a Juanem Benetem](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ - -### Komunity {#communities} - -- [Server Status na Discordu](https://discord.com/invite/3Exux7Y) -- [Server Mirror na Discordu](https://discord.com/invite/txuCHcE8wV) -- [subreddit r/CryptoCurrency](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/de/community/support/index.md b/src/content/translations/de/community/support/index.md deleted file mode 100644 index 22ce31d04b4..00000000000 --- a/src/content/translations/de/community/support/index.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -title: Ethereum-Support -description: Support im Ethereum-Ökosystem erhalten -lang: de ---- - -# Ethereum-Support {#support} - -## Offizieller Ethereum-Support {#official-support} - -Sind Sie auf der Suche nach dem offiziellen Ethereum-Support? Es ist wichtig, zu wissen, dass Ethereum dezentralisiert ist. Das bedeutet, dass Ethereum keiner zentralen Organisation, Entität oder Person gehört. Daher existieren auch keine offiziellen Supportkanäle. - -Es ist wichtig, die dezentrale Gestaltung von Ethereum zu verstehen, denn jeder, der behauptet, offizieller Support für Ethereum zu sein, versucht wahrscheinlich, Sie zu betrügen. Der beste Schutz vor Betrug ist, sich zu informieren und Sicherheit ernst zu nehmen. - - - Ethereum – Sicherheits- und Betrugsvorbeugung - - - - Mehr erfahren über die Grundlagen von Ethereum - - -Trotz des Mangels an offizieller Unterstützung sind viele Gruppen, Communitys und Projekte im gesamten Ethereum-Ökosystem gern bereit, zu helfen, und Sie können auf dieser Seite viele nützliche Informationen und Ressourcen finden. Haben Sie noch Fragen? Treten Sie dem [ethereum.org Discord](/discord/) bei und wir versuchen, Ihnen weiterzuhelfen. - -## Wallet-Support {#wallet-support} - -Haben Sie Probleme mit Ihrer Wallet? Die meisten Wallets haben spezielle Supportteams, die Ihnen helfen können: - -- [MetaMask](https://metamask.zendesk.com/hc/) -- [Argent](https://support.argent.xyz/hc/) -- [MyEtherWallet](https://help.myetherwallet.com/) - -_Das ist keine vollständige Liste. Brauchen Sie Hilfe bei der Suche nach Unterstützung für eine bestimmte Wallet? Treten Sie dem [ethereum.org-Discord](https://discord.gg/ethereum-org) bei, dann versuchen wir, Ihnen zu helfen._ - -Suchen Sie eine Ethereum-Wallet? [Sehen Sie sich unsere vollständige Liste der Ethereum-Wallets an](/wallets/find-wallet/). - -## dApps erstellen {#building-support} - -Erstellen kann durchaus schwer sein. Hier finden Sie einige Breiche mit Schwerpunkt auf Entwicklung mit erfahrenen Ethereum-Entwicklern, die Ihnen gerne helfen. - -- [Alchemy University](https://university.alchemy.com/#starter_code) -- [CryptoDevs-Discord](https://discord.gg/Z9TA39m8Yu) -- [Ethereum StackExchange](https://ethereum.stackexchange.com/) -- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) -- [Web3 University](https://www.web3.university/) -- [LearnWeb3](https://discord.com/invite/learnweb3) - -In unserem Bereich mit [Ethereum-Entwicklerressourcen](/developers/) finden Sie auch Dokumentationen und Entwicklungsleitfäden. - -### Tools {#dapp-tooling} - -Bezieht sich Ihre Frage auf ein bestimmtes Tool, Projekt oder eine Bibliothek? Die meisten Projekte haben Chat-Server oder Foren, die Unterstützung bieten. - -Hier sind einige beliebte Beispiele: - -- [Solidity](https://gitter.im/ethereum/solidity/) -- [ethers.js](https://discord.gg/6jyGVDK6Jx) -- [web3.js](https://discord.gg/GsABYQu4sC) -- [Hardhat](https://discord.gg/xtrMGhmbfZ) -- [Truffle](https://discord.gg/8uKcsccEYE) -- [Alchemy](http://alchemy.com/discord) -- [Tenderly](https://discord.gg/fBvDJYR) - -## Einen Knoten betreiben {#node-support} - -Wenn Sie einen Knoten oder Validator betreiben, finden Sie hier einige Communitys, die Ihnen den Einstieg erleichtern. - -- [EthStaker-Discord](https://discord.io/ethstaker) -- [EthStaker-Reddit](https://www.reddit.com/r/ethstaker) - -Die meisten Teams, die Ethereum-Clients entwickeln, haben auch eigene, öffentlich zugängliche Bereiche, in denen Sie Unterstützung erhalten und Fragen stellen können. - -### Ausführende Clients {#execution-clients} - -- [Geth](https://discord.gg/FqDzupGyYf) -- [Nethermind](https://discord.gg/YJx3pm8z5C) -- [Besu](https://discord.gg/p8djYngzKN) -- [Erigon](https://github.com/ledgerwatch/erigon/issues) - -### Konsens-Clients {#consensus-clients} - -- [Prysm](https://discord.gg/prysmaticlabs) -- [Nimbus](https://discord.gg/nSmEH3qgFv) -- [Lighthouse](https://discord.gg/cyAszAh) -- [Teku](https://discord.gg/7hPv2T6) -- [Lodestar](https://discord.gg/aMxzVcr) - -Sie können hier auch [lernen, wie ein Knoten betrieben wird](/developers/docs/nodes-and-clients/run-a-node/). - -## Häufig gestellte Fragen {#faq} - -#### Ich habe ETH an die falsche Wallet gesendet {#wrong-wallet} - -Eine auf Ethereum gesendete Transaktion ist unumkehrbar. Wenn Sie ETH an die falsche Wallet geschickt haben, gibt es leider keine Möglichkeit, diese Gelder zurückzuholen. Keine zentrale Organisation, Entität oder Person ist Eigentümer von Ethereum. Das bedeutet, dass auch niemand Transaktionen rückgängig machen kann. Deshalb ist es wichtig, dass Sie alle Transaktionen vor dem Versenden immer noch einmal überprüfen. - -#### Wie kann ich mein Ethereum-Giveaway erhalten? {#giveaway-scam} - -Ethereum-Giveaways sind Betrugsmaschen, die darauf abzielen, Ihr ETH zu stehlen. Lassen Sie sich nicht von Angeboten verleiten, die zu schön sind, um wahr zu sein. Wenn Sie ETH an eine Giveaway-Adresse schicken, erhalten Sie kein Giveaway und Sie können Ihr Geld nicht zurückfordern. - -[Mehr zum Thema Betrugsprävention](/security/#common-scams) - -#### Meine Transaktion steckt fest {#stuck-transaction} - -Transaktionen auf Ethereum können manchmal stecken bleiben, wenn Sie eine niedrigere Transaktionsgebühr eingereicht haben, als aufgrund der Netzwerknachfrage erforderlich ist. Viele Wallets bieten die Möglichkeit, dieselbe Transaktion mit einer höheren Transaktionsgebühr erneut zu übermitteln, damit die Transaktion bearbeitet werden kann. Alternativ können Sie eine ausstehende Transaktion abbrechen. Senden Sie dafür eine Transaktion an Ihre eigene Adresse und verwenden Sie dieselbe Nonce wie für die ausstehende Transaktion. - -[So beschleunigen Sie ausstehenden Transaktionen auf MetaMask oder brechen sie ab](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) - -[So stornieren Sie ausstehende Ethereum-Transaktionen](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) - -#### Wie kann ich Ethereum minen? {#mining-ethereum} - -Ethereum-Mining ist nicht mehr möglich. Das Mining wurde abgeschaltet, als Ethereum von Proof-of-Work zu Proof-of-Stake wechselte. Anstatt Miner hat Ethereum jetzt Validatoren. Validatoren setzen ETH ein und erhalten für das Staking des Netzwerkes eine Belohnung. - -#### Wie werde ich Staker/Validator? {#become-validator} - -Um ein Validator zu werden, müssen Sie 32 ETH in den Einlagenvertrag von Ethereum einzahlen und einen Validator-Knoten aufbauen. Weitere Informationen dazu finden Sie auf den [Staking-Seiten](/staking) und [dem Staking-Launchpad](https://launchpad.ethereum.org/). diff --git a/src/content/translations/de/contributing/translation-program/translators-guide/index.md b/src/content/translations/de/contributing/translation-program/translators-guide/index.md deleted file mode 100644 index 84bb29b5f75..00000000000 --- a/src/content/translations/de/contributing/translation-program/translators-guide/index.md +++ /dev/null @@ -1,293 +0,0 @@ ---- -title: Übersetzungsleitfaden -lang: de -description: Anweisungen und Tipps für ethereum.org-Übersetzer ---- - -# Übersetzungsleitfaden von ethereum.org {#style-guide} - -Der Übersetzungsleitfaden von ethereum.org enthält die wichtigsten Richtlinien, Anweisungen und Tipps für Übersetzer, die uns bei der Lokalisierung der Website helfen. - -Dieses Dokument dient als allgemeiner Leitfaden und ist nicht spezifisch für eine bestimmte Sprache. - -Wenn Sie Fragen, Vorschläge oder Feedback haben, wenden Sie sich bitte an translations@ethereum.org, senden Sie eine Nachricht an @ethdotorg auf Crowdin oder treten Sie [unserem Discord](https://discord.gg/ethereum-org) bei. Dort können Sie uns im Kanal #translations eine Nachricht senden oder sich an eines der Teammitglieder wenden. - -### Crowdin verwenden {#using-crowdin} - -Auf der Seite [Übersetzungsprogramm](/contributing/translation-program/#how-to-translate) finden Sie grundlegende Anweisungen, wie Sie dem Projekt in Crowdin beitreten und den Crowdin-Online-Editor verwenden können. - -Wenn Sie mehr über Crowdin und die Nutzung der erweiterten Funktionen erfahren möchten, finden Sie in der [Crowdin-Wissensdatenbank](https://support.crowdin.com/online-editor/) viele ausführliche Anleitungen und eine Übersicht über alle Crowdin-Funktionen. - -### Das Wesentliche der Botschaft erfassen {#capturing-the-essence} - -Vermeiden Sie bei der Übersetzung von ethereum.org-Inhalten wörtliche Übersetzungen. - -Es ist wichtig, dass die Übersetzung das Wesentliche einer Botschaft wiedergibt. Dazu gehört, dass bestimmte Formulierungen umformuliert oder beschreibende Übersetzungen verwendet werden, anstatt den Inhalt Wort für Wort zu übersetzen. - -Verschiedene Sprachen haben unterschiedliche Grammatikregeln, Konventionen und Wortfolgen. Achten Sie bei der Übersetzung darauf, wie die Sätze in den Zielsprachen aufgebaut sin. Vermeiden Sie eine wörtliche Übersetzung des englischen Quelltextes, da das zu einer ungewohnten Satzstruktur und schlechteren Lesbarkeit führen kann. - -Anstatt den Ausgangstext Wort für Wort zu übersetzen, empfiehlt es sich, den gesamten Satz zu lesen und ihn an die Konventionen der Zielsprache anzupassen. - -### Formell vs. informell {#formal-vs-informal} - -Wir verwenden die förmliche Anrede, die für alle Besucher stets höflich und angemessen ist. - -Durch die förmliche Anrede lässt sich vermeiden, dass Formulierungen inoffiziell oder beleidigend klingen. Zudem funktioniert sie unabhängig von Alter und Geschlecht des Besuchers. - -Die meisten indoeuropäischen und afroasiatischen Sprachen verwenden geschlechtsspezifische Personalpronomen der zweiten Person, die zwischen männlich und weiblich unterscheiden. Bei der Anrede von Benutzerinnen und Benutzern oder der Verwendung von Possessivpronomen können wir vermeiden, das Geschlecht anzunehmen, da die formale Anrede im Allgemeinen anwendbar und konsistent ist, unabhängig davon, wie er/sie/es sich identifiziert. - -### Einfaches und klares Vokabular und Bedeutung {#simple-vocabulary} - -Unser Ziel ist es, die Inhalte der Website für so viele Menschen wie möglich verständlich zu machen. - -In den meisten Fällen lässt sich das ganz einfach durch die Verwendung kurzer und einfacher Worte erreichen, die leicht verständlich sind. Wenn es für ein bestimmtes Wort in Ihrer Sprache mehrere mögliche Übersetzungen mit der gleichen Bedeutung gibt, ist die beste Option meist das kürzeste Wort, das die Bedeutung klar wiedergibt. - -### Schreibsystem {#writing-system} - -Ethereum.org ist in einer Reihe von Sprachen verfügbar, die alternative Schriftsysteme (oder Schreibschriften) zum Lateinischen verwenden. - -Der gesamte Inhalt sollte unter Verwendung des korrekten Schriftsystems für Ihre Sprache übersetzt werden und keine Wörter enthalten, die mit lateinischen Buchstaben geschrieben sind. - -Wenn Sie den Inhalt übersetzen, sollten Sie sicherstellen, dass die Übersetzungen einheitlich sind und keine lateinischen Zeichen enthalten. - -Ein gängiger Irrtum ist, dass Ethereum immer in Latein geschrieben werden sollte. Das ist meistens falsch. Nutzen Sie die Schreibweise von Ethereum in Ihrer Muttersprache (z. B. 以太坊 in Chinesisch, إيثيريوم in Arabisch usw.). - -**Die obigen Ausführungen gelten nicht für Sprachen, in denen Eigennamen in der Regel nicht übersetzt werden sollten.** - -### Metadaten der Seite übersetzen {#translating-metadata} - -Einige Seiten enthalten Metadaten wie "title", "lang", "description", "sidebar" usw. auf der Seite. - -Wir blenden beim Hochladen neuer Seiten in Crowdin die Inhalte aus, die Übersetzer nicht übersetzen sollen. Das bedeutet, dass alle Metadaten, die für Übersetzer in Crowdin sichtbar sind, auch übersetzt werden sollen. - -Seien Sie besonders aufmerksam, wenn Sie eine Zeichenfolgen übersetzen, deren Ausgangstext mit 'en' gekennzeichnet ist. Das steht für die Sprache, in der die Seite verfügbar ist. Das sollte mit dem [ISO-Sprachcode für Ihre Sprache](https://www.andiamo.co.uk/resources/iso-language-codes/) übersetzt werden. Diese Zeichenfolgen sollten immer mit lateinischen Buchstaben übersetzt werden, nicht mit der Schreibschrift der Zielsprache. - -Wenn Sie sich nicht sicher sind, welchen Sprachcode Sie verwenden sollten, können Sie das Translation Memory in Crowdin überprüfen oder den Sprachcode für Ihre Sprache auf der URL-Seite im Crowdin-Online-Editor finden. - -Einige Beispiele für Sprachcodes für die am weitesten verbreiteten Sprachen: - -- Arabisch - ar -- Vereinfachtes Chinesisch - zh -- Französisch - fr -- Hindi - hi -- Spanisch - es - -### Titel von externen Artikeln {#external-articles} - -Einige Strings enthalten Titel externer Artikel. Die meisten unserer Dokumentationsseiten für Entwickler enthalten Links zu externen Artikeln, um weiterführende Informationen zu bieten. Die Zeichenketten, die die Titel der Artikel enthalten, müssen unabhängig von der Sprache des Artikels übersetzt werden, um eine einheitliche Benutzererfahrung für die Besucher zu gewährleisten, die die Seite in ihrer Sprache ansehen. - -Im Folgenden finden Sie einige Beispiele dafür, wie diese Zeichenfolgen für Übersetzer aussehen und wie sie zu erkennen sind (Links zu den Artikeln finden Sie meist am Ende dieser Seiten im Abschnitt "Weiterführende Literatur"): - -![Titel von Artikeln in sidebar.png](./article-titles-in-sidebar.png) ![Titel von Artikeln in editor.png](./article-titles-in-editor.png) - -### Crowdin-Warnungen {#crowdin-warnings} - -Crowdin verfügt über eine eingebaute Funktion, die Übersetzer warnt, wenn sie im Begriff sind, einen Fehler zu machen. Crowdin warnt Sie automatisch, bevor Sie Ihre Übersetzung speichern, wenn Sie vergessen, ein Tag aus der Quelle einzubinden, Elemente übersetzen, die nicht übersetzt werden sollten, mehrere aufeinander folgende Leerzeichen hinzufügen, Ende-Satzzeichen vergessen usw. Wenn Sie eine solche Warnung sehen, gehen Sie zurück und überprüfen Sie die vorgeschlagene Übersetzung nochmals. - -**Ignorieren Sie diese Warnungen nicht, denn sie bedeuten in der Regel, dass etwas falsch ist oder dass in der Übersetzung ein wichtiger Teil des Ausgangstextes fehlt.** - -Ein Beispiel für eine Crowdin-Warnung, wenn Sie vergessen, ein Tag zur Übersetzung hinzuzufügen: ![Beispiel für eine Crowdin-Warnung](./crowdin-warning-example.png) - -### Umgang mit Tags und Codeausschnitten {#dealing-with-tags} - -Ein großer Teil des Quellinhalts enthält Tags und Variablen, die im Crowdin-Editor gelb hervorgehoben sind. Diese haben unterschiedliche Funktionen und sollten richtig angegangen werden. - -**Crowdin-Einstellungen** - -Um die Verwaltung von Tags zu erleichtern und diese direkt aus der Quelle zu kopieren, empfehlen wir Ihnen, Ihre Einstellungen im Crowdin-Editor zu ändern. - -1. Einstellungen öffnen ![Einstellungen im Editor öffnen](./editor-settings.png) - -2. Scrollen Sie nach unten zum Abschnitt „HTML-Tags Anzeige" - -3. Wählen Sie „Verstecken" ![Bitte „Verstecken" auswählen](./hide-tags.png) - -4. Klicken Sie auf „Speichern" - -Durch Auswahl dieser Option wird der vollständige Tag-Text nicht mehr angezeigt und durch eine Zahl ersetzt. Beim Übersetzen wird der exakte Tag automatisch in das Übersetzungsfeld kopiert, wenn der Tag angeklickt wird. - -**Links** - -Sie finden möglicherweise vollständige Links zu Seiten auf ethereum.org oder anderen Websites. - -Diese sollten mit der Quelle identisch sein und nicht verändert oder übersetzt werden. Wenn Sie einen Link übersetzen oder ihn in irgendeiner Weise verändern, selbst wenn Sie nur einen Teil davon entfernen, wie z. B. einen Schrägstrich (/), führt das zu fehlerhaften und unbrauchbaren Links. - -Am besten ist es, Links direkt aus der Quelle zu kopieren, entweder durch Anklicken oder mit der Schaltfläche „Copy Source" (Quelle kopieren) (Alt+C). - -![Beispiel für einen Link.png](./example-of-link.png) - -Links erscheinen im Quelltext auch in Form von Tags (z. B. <0> ). Wenn Sie mit dem Mauszeiger über das Tag fahren, zeigt der Editor den vollständigen Inhalt an. Manchmal stellen diese Tags auch Links dar. - -Es ist sehr wichtig, die Links aus der Quelle zu kopieren und die Reihenfolge nicht zu verändern. - -Wird die Reihenfolge der Tags geändert, wird damit die Verbindung, die sie darstellen, aufgebrochen. - -![Beispiel für Links in Tags.png](./example-of-links-inside-tags.png) - -**Tags und Variablen** - -Der Quelltext enthält viele verschiedene Arten von Tags, die immer aus der Quelle kopiert und nicht verändert werden sollten. Ähnlich wie oben sollte auch die Reihenfolge dieser Tags in der Übersetzung mit der Quelle übereinstimmen. - -Tags enthalten immer einen öffnenden und einen schließenden Tag. In den meisten Fällen sollte der Text zwischen öffnenden und schließenden Tags übersetzt werden. - -Beispiel: ``Dezentralisiert`` - -`` - _Öffnender Tag, der eine Fettformatierung bedingt_ - -Dezentralisiert – _Übersetzbarer Text_ - -`` – _Schließender Tag_ - -![Beispiel für „starke" Tags.png](./example-of-strong-tags.png) - -CodeAusschnitte sollten etwas anders behandelt werden als die anderen Tags, da sie Code enthalten, der nicht übersetzt werden sollte. - -Beispiel: ``Nonce`` - -`` – _Öffnender Tag, der einen Code-Ausschnitt enthält_ - -Nonce – _Nicht übersetzbarer Text_ - -`` – _Schließender Tag_ - -![Beispiel für Code-Ausschnitte.png](./example-of-code-snippets.png) - -Der Quelltext enthält auch verkürzte Tags, die nur Zahlen enthalten. Ihre Funktion ist dadurch nicht direkt ersichtlich. Sie können mit dem Mauszeiger über diese Tags fahren, um genau zu sehen, welche Funktion sie haben. - -Im folgenden Beispiel können Sie sehen, dass der Mauszeiger über dem <0> Tag zeigt, dass er `` darstellt und einen Code-Ausschnitt enthält. Daher sollte der Inhalt innerhalb dieser Tags nicht übersetzt werden. - -![Beispiel für mehrdeutige Tags.png](./example-of-ambiguous-tags.png) - -### Kurze vs. vollständige Formulierungen/Abkürzungen {#short-vs-full-forms} - -Auf der Website werden viele Abkürzungen verwendet, z. B. dApps, NFT, DAO, DeFi etc. Diese Abkürzungen werden im Englischen häufig verwendet und sind den meisten Besuchern der Website bekannt. - -Da es für diese und ähnliche Begriffe in der Regel keine etablierten Übersetzungen in anderen Sprachen gibt, ist es am besten, eine beschreibende Übersetzung der vollständigen Form anzugeben und die englische Abkürzung in Klammern hinzuzufügen. - -Übersetzen Sie diese Abkürzungen nicht, da die meisten Menschen damit nicht vertraut sind und die lokalisierten Versionen für die meisten Besucher nicht viel Sinn ergeben würden. - -Beispiel für die Übersetzung von dApps: - -- Dezentrale Anwendungen (dApps) → _Übersetzte Vollform (englische Abkürzung in Klammern)_ - -### Begriffe ohne etablierte Übersetzungen {#terms-without-established-translations} - -Für einige Begriffe gibt es möglicherweise keine etablierten Übersetzungen in anderen Sprachen und sie sind weithin unter dem englischen Originalbegriff bekannt. Diese Begriffe umfassen meist neuere Konzepte wie Proof-of-Work, Proof-of-Stake, Beacon Chain, Staking usw. - -Die Übersetzung dieser Begriffe kann zwar unnatürlich klingen, da aber die englische Version auch in anderen Sprachen häufig verwendet wird, ist es sehr empfehlenswert, sie zu übersetzen. - -Wenn Sie sie übersetzen, können Sie kreativ sein, beschreibende Übersetzungen verwenden oder einfach wörtlich übersetzen. - -**Es ist sinnvoll, die meisten Begriffe zu übersetzen, anstatt sie auf Englisch zu belassen, da diese neue Terminologie sich zukünftig stärker verbreitet, wenn mehr Menschen Ethereum und zugehörige Technologien nutzen. Wenn wir mehr Menschen aus der ganzen Welt für diesen Bereich gewinnen wollen, müssen wir eine verständliche Terminologie in so vielen Sprachen wie möglich anbieten, auch wenn wir sie selbst erstellen müssen.** - -### Schaltflächen und CTAs (Call to Action) {#buttons-and-ctas} - -Die Website enthält zahlreiche Schaltflächen, die anders übersetzt werden sollten als andere Inhalte. - -Schaltflächentext kann identifiziert werden, indem Sie sich die zugehörigen Kontext-Screenshots ansehen oder den Kontext im Editor überprüfen, der den Ausdruck „Button“ enthält. - -Die Übersetzungen für Schaltflächen sollten so kurz wie möglich sein, um Formatierungsfehler zu vermeiden. Außerdem sollten die Schaltflächenübersetzungen als Anweisung formuliert sein, d. h. einen Befehl oder eine Aufforderung darstellen. - -![Wie man eine Schaltfläche.png findet](./how-to-find-a-button.png) - -### Übersetzen für Inklusion {#translating-for-inclusivity} - -Die Besucher von ethereum.org kommen aus der ganzen Welt und haben ganz unterschiedliche Hintergründe. Die Sprache auf der Website sollte daher neutral, einladend für alle und nicht ausschließend sein. - -Ein wichtiger Aspekt dabei ist die Geschlechterneutralität. Das lässt sich leicht erreichen, indem die formale Anrede benutzt und geschlechtsspezifische Wörter in den Übersetzungen vermieden werden. - -Eine andere Möglichkeit der Inklusion ist der Versuch, für ein globales Publikum zu übersetzen, das nicht auf ein Land, eine Rasse oder eine Region festgelegt ist. - -Schließlich sollte die Sprache für jedes Publikum und Alter geeignet sein. - -## Sprachspezifische Übersetzungen {#language-specific-translations} - -Bei der Übersetzung ist es wichtig, die Grammatikregeln, Konventionen und die Formatierung in Ihrer Sprache zu befolgen und diese nicht von der Quelle zu übernehmen. Der Ausgangstext folgt den englischen Grammatikregeln und -konventionen, die in vielen anderen Sprachen nicht gelten. - -Sie sollten mit den Regeln für Ihre Sprache vertraut sein und entsprechend übersetzen. Wenn Sie Hilfe benötigen, wende Sie sich an uns. Wir unterstützen Sie dabei, Ressourcen zu finden, wie diese Elemente in Ihrer Sprache einzusetzen sind. - -Einige Beispiele dafür, worauf besonders zu achten ist: - -### Zeichensetzung, Formatierung {#punctuation-and-formatting} - -**Groß-/Kleinschreibung** - -- Es gibt große Unterschiede in der Groß- und Kleinschreibung in verschiedenen Sprachen. -- Im Englischen ist es üblich, alle Wörter in Titeln und Namen, Monaten und Tagen, Sprachnamen, Feiertagen usw. groß zu schreiben. In vielen anderen Sprachen ist das grammatikalisch nicht korrekt, da es abweichende Regeln für die Groß- und Kleinschreibung gibt. -- Einige Sprachen haben auch Regeln für die Großschreibung von Personalpronomen, Substantiven und bestimmten Adjektiven, die im Englischen nicht großgeschrieben werden. - -**Abstände** - -- Die Rechtschreibregeln legen die Verwendung von Leerzeichen für jede Sprache fest. Leerzeichen werden überall verwendet und folgen in jeder Sprache anderen Regeln. Leerzeichen gehören zu den am häufigsten falsch übersetzten Elementen. -- Einige häufige Unterschiede in den Abständen zwischen dem Englischen und anderen Sprachen: - - Leerzeichen vor Maßeinheiten und Währungen (z. B. USD, EUR, kB, MB) - - Leerzeichen vor Gradzeichen (z. B. °C, ℉) - - Leerzeichen vor einigen Satzzeichen, insbesondere vor der Ellipse (...) - - Leerzeichen vor und nach Schrägstrichen (/) - -**Listen** - -- Jede Sprache hat vielfältige und komplexe Regeln für die Erstellung von Listen. Diese können sich erheblich vom Englischen unterscheiden. -- In einigen Sprachen muss das erste Wort jeder neuen Zeile groß geschrieben werden, während in anderen Sprachen neue Zeilen mit Kleinbuchstaben beginnen sollten. Viele Sprachen haben auch unterschiedliche Regeln für die Groß- und Kleinschreibung in Listen, je nach Länge der einzelnen Zeilen. -- Das Gleiche gilt für die Interpunktion von Zeilenelementen. Das Endzeichen in Listen kann, je nach Sprache, ein Punkt (**.**), ein Komma (**,**) oder ein Semikolon (**;**) sein. - -**Anführungszeichen** - -- In den Sprachen werden viele verschiedene Anführungszeichen verwendet. Das einfache Kopieren der englischen Anführungszeichen aus der Quelle ist oft nicht korrekt. -- Zu den gängigsten Arten von Anführungszeichen gehören: - - „Beispieltext“ - - ‚Beispieltext’ - - »Beispieltext« - - “Beispieltext” - - ‘Beispieltext’ - - «Beispieltext» - -**Bindestriche und Gedankenstriche** - -- Im Englischen wird ein Bindestrich (-) verwendet, um Wörter oder verschiedene Teile eines Wortes zu verbinden, während ein Gedankenstrich (–) verwendet wird, um einen Bereich abzugrenzen oder eine Pause zu signalisieren. -- Viele Sprachen haben unterschiedliche Regeln für die Verwendung von Bindestrichen und Gedankenstrichen, die es zu beachten gilt. - -### Formate {#formats} - -**Zahlen** - -- Der Hauptunterschied bei der Schreibweise von Zahlen in verschiedenen Sprachen ist das Trennzeichen für Dezimalstellen und Tausender. Als Tausendertrennzeichen kann das ein Punkt, ein Komma oder ein Leerzeichen verwendet werden. Ebenso verwenden einige Sprachen einen Dezimalpunkt, andere ein Dezimalkomma. - - Einige Beispiele für große Zahlen: - - Englisch – **1,000.50** - - Spanisch – **1.000,50** - - Französisch – **1 000,50** -- Ebenfalls wichtig bei der Übersetzung von Zahlen ist das Prozentzeichen. Es kann auf verschiedene Weise geschrieben werden: **100%**, **100 %** oder **%100**. -- Und abschließend können auch negative Zahlen je nach Sprache unterschiedlich dargestellt werden: -100, 100-, (100) oder [100]. - -**Datumsangaben** - -- Bei der Übersetzung von Datumsangaben gibt es eine Reihe von Unterschieden und Überlegungen, die von der jeweiligen Sprache abhängen. Dazu gehören das Datumsformat, das Trennzeichen, die Großschreibung und führende Nullen. Es gibt auch Unterschiede zwischen den Datumsangaben in voller Länge und den numerischen Daten. - - Einige Beispiele für verschiedene Datumsformate: - - Englisch UK (dd/mm/yyyy) – 1st January, 2022 - - Englisch US (mm/dd/yyyy) – January 1st, 2022 - - Chinesisch (yyyy-mm-dd) – 2022 年 1 月 1 日 - - Französisch (dd/mm/yyyy) – 1er janvier 2022 - - Italienisch (dd/mm/yyyy) – 1º gennaio 2022 - - Deutsch (dd/mm/yyyy) – 1. Januar 2022 - -**Währungen** - -- Die Übersetzung von Währungen kann aufgrund der unterschiedlichen Formate, Konventionen und Umrechnungen eine Herausforderung darstellen. In der Regel sollten die Währungen mit der Quelle übereinstimmen. Sie können Ihre Landeswährung und die Umrechnung in Klammern hinzufügen, um dem Leser mehr Informationen zu bieten. -- Zu den wichtigsten Unterschieden bei der Schreibweise von Währungen in verschiedenen Sprachen gehören die Platzierung von Symbolen, Kommas und Dezimalpunkten, Abstände und Abkürzungen oder die Verwendung von Symbolen. - - Symbolplatzierung: $100 oder 100$ - - Dezimal-Kommas vs. Dezimal-Punkte: 100,50$ oder 100.50$ - - Abstände: 100$ oder 100 $ - - Abkürzungen oder Symbole: 100 $ oder 100 USD - -**Maßeinheiten** - -- Als allgemeine Regel gilt, dass die Maßeinheiten aus der Quelle beibehalten werden sollten. Wenn in Ihrem Land ein anderes System verwendet wird, können Sie die Umrechnung in Klammern angeben. -- Abgesehen von der Lokalisierung von Maßeinheiten sollte ebenfalls beachtet werden, wie unterschiedlich die Herangehensweise bei diesen Einheiten in den verschiedenen Sprachen ist. Der Hauptunterschied ist der Abstand zwischen der Zahl und der Einheit, der je nach Sprache unterschiedlich sein kann. Beispiele hierfür sind 100kB vs. 100 kB oder 50ºF vs. 50 ºF. - -### Zusammenfassung {#conclusion} - -Das Übersetzen von ethereum.org ist eine gute Gelegenheit, die verschiedenen Aspekte von Ethereum kennenzulernen. - -Versuchen Sie, beim Übersetzen langsam vorzugehen. Bleiben Sie locker und haben Sie Spaß dabei. - -Vielen Dank, dass Sie sich am Übersetzungsprogramm beteiligen und uns helfen, die Website einem breiteren Publikum zugänglich zu machen. Die Ethereum-Community ist global, und wir freuen uns, dass Sie ein Teil davon sind. diff --git a/src/content/translations/de/dao/index.md b/src/content/translations/de/dao/index.md deleted file mode 100644 index 6ce219cfa9a..00000000000 --- a/src/content/translations/de/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: Dezentrale autonome Organisationen (DAO) -description: Eine Übersicht über DAOs auf Ethereum -lang: de -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: Eine Repräsentation eines Abstimmungsvorschlags in einer DAO. -summaryPoint1: Communitys im Besitz ihrer Mitglieder ohne zentrale Führung. -summaryPoint2: Ein sicherer Weg, um mit Fremden im Internet zusammenzuarbeiten. -summaryPoint3: Ein sicherer Ort, um Mittel für einen bestimmten Zweck bereitzustellen. ---- - -## Was sind DAOs? {#what-are-daos} - -Eine DAO ist eine kollektiv geführte und durch die Blockchain verwaltete Organisation, die auf eine gemeinsame Mission hinarbeitet. - -DAOs ermöglichen es uns, mit Gleichgesinnten rund um den Globus zusammenzuarbeiten, ohne unser Vertrauen in das Wohlwollen einer Führungskraft setzen zu müssen, die die Fonds oder Operationen verwaltet. Es gibt keinen Geschäftsführer, der Geld nach Lust und Laune ausgeben kann, und keinen Finanzchef, der die Buchhaltung manipulieren kann. Stattdessen bestimmen in den Code eingebaute Blockchain-basierte Regeln, wie die Organisation arbeitet und wie die Mittel ausgegeben werden. - -Die Finanzverwaltung ist integriert und niemand kann ohne die Zustimmung der Gruppe darauf zugreifen. Entscheidungen werden durch Vorschläge und Abstimmungen geregelt, um sicherzustellen, dass jeder in der Organisation ein Mitspracherecht hat, und alles geschieht transparent On-Chain. - -## Warum brauchen wir DAOs? {#why-dao} - -Ein gemeinsam mit anderen Personen ein Unternehmen zu gründen und dafür Gelder und Finanzierungsmöglichkeiten bereitzustellen, benötigt viel Vertrauen in die Menschen, mit denen Sie arbeiten. Doch es ist alles andere als leicht, jemandem zu vertrauen, den Sie nur über das Internet kennen. Mit DAOs müssen Sie anderen in der Gruppe nicht vertrauen, sondern nur dem DAO-Code, der vollständig transparent und für jeden einsehbar ist. - -Das eröffnet viele neue Möglichkeiten für globale Zusammenarbeit und Koordination. - -### Ein Vergleich {#dao-comparison} - -| DAO | Ein herkömmliches Unternehmen | -| ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------- | -| In der Regel flache Strukturen und vollständig demokratisiert | In der Regel hierarchisch | -| Abstimmung durch die Gruppe erforderlich, um Veränderungen zu implementieren | Veränderungen können je nach Struktur durch einzelne Parteien verlangt oder durch offene Abstimmungen beschlossen werden | -| Nach der Stimmenauszählung wird das Ergebnis wird automatisch ohne vertrauenswürdige Dritte implementiert | Sofern Abstimmungen erlaubt sind, werden Stimmen intern gezählt und das Ergebnis muss manuell umgesetzt werden | -| Angebotene Dienste werden automatisch auf dezentrale Weise abgewickelt (etwa die Verteilung gemeinnütziger Mittel) | Erfordert die Abwicklung durch Personen oder zentral kontrollierte automatische Abläufe, die anfällig für Manipulation sind | -| Alle Aktivitäten sind transparent und vollständig öffentlich | Aktivitäten sind normalerweise unternehmensintern, begrenzte Einsicht für die Öffentlichkeit | - -### Beispiele für DAOs {#dao-examples} - -Für ein besseres Verständnis finden Sie im Folgenden Beispiele für den Einsatz einer DAO: - -- Eine Wohltätigkeitsorganisation – Sie können von jedem auf der Welt Spenden annehmen und darüber abstimmen, welche Zwecke finanziert werden sollen. -- Kollektives Eigentum – Sie können physische oder digitale Vermögenswerte erwerben und die Mitglieder können über deren Verwendung abstimmen. -- Unternehmen und Zuschüsse: Sie könnten einen Risikofonds gründen, der Investitionskapital bündelt und über zu unterstützende Unternehmen abstimmt. Das zurückgezahlte Geld könnte später unter den DAO-Mitgliedern neu verteilt werden. - -## Wie funktionieren DAOs? {#how-daos-work} - -Das Fundament einer DAO ist ihr Smart Contract, der das Regelwerk der Organisation festhält und die Schatzkammer verwaltet. Sobald ein Smart Contract auf Ethereum aktiv ist, können die Regeln ausschließlich per Abstimmung geändert werden. Vorgänge, die nicht durch die Regeln und Logik des Codes abgedeckt sind, schlagen fehl. Da auch die Finanzverwaltung durch den Smart Contract definiert ist, kann niemand das Geld ohne die Zustimmung der Gruppe ausgeben. Daher benötigen DAOs keine zentrale Instanz. Stattdessen trifft die Gruppe gemeinsam Entscheidungen, wobei Zahlungen bei positiver Abstimmung automatisch genehmigt werden. - -Möglich wird dies durch die Manipulationssicherheit veröffentlichter Smart Contracts. Da alle Vorgänge öffentlich sind, sind unbemerkte Änderungen am Code (also den Regeln der DAO) unmöglich. - - - Mehr zu Smart Contracts - - -## Ethereum und DAOs {#ethereum-and-daos} - -Ethereum ist aus einer Reihe von Gründen die perfekte Plattform für DAOs: - -- Der Ethereum-eigene Konsens ist so weit verbreitet und etabliert, dass Unternehmen dem Netzwerk vertrauen können. -- Der Code eines Smart Contracts kann nach seiner Veröffentlichung nicht mehr geändert werden, auch nicht von seinen Eigentümern. Damit kann die DAO nach den Regeln arbeiten, mit denen sie programmiert wurde. -- Smart Contracts können Geldmittel senden und empfangen. Andernfalls wäre für die Verwaltung der Geldmittel der Gruppe ein vertrauenswürdiger Vermittler erforderlich. -- Die Ethereum-Community ist bekannt dafür, dass es um Zusammenarbeit und nicht um Wettbewerb geht. Daher können sich bewährte Verfahren und Unterstützungssysteme schnell herausbilden. - -## DAO-Verwaltung {#dao-governance} - -Um DAOs zu verwalten, sind vorher zahlreiche Überlegungen notwendig – etwa wie Abstimmungen und Vorschläge funktionieren sollen. - -### Delegation {#governance-delegation} - -Die Delegation ist die DAO-Variante repräsentativer Demokratie. Tokenbesitzer delegieren Stimmen an Nutzer, die sich selbst nominieren und sich verpflichten, auf dem aktuellen Stand zu bleiben und das Protokoll zu betreuen. - -#### Bekanntes Beispiel {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) – Um sie zu vertreten, können ENS-Besitzer ihre Stimmen an engagierte Communitymitglieder delegieren. - -### Automatische Transaktionsverwaltung {#governance-example} - -In vielen DAOs werden Transaktionen automatisch ausgeführt, wenn eine Mehrheit der Mitglieder zustimmt. - -#### Bekanntes Beispiel {#governance-example} - -[Nouns](https://nouns.wtf) – Sofern die Gründer kein Veto einlegen, wird eine Transaktion in Nouns DAO automatisch ausgeführt, sofern ein Stimmquorum erreicht wird und die Mehrheit zustimmt. - -### Multisig-Verwaltung {#governance-example} - -Zwar können DAOs Tausende Mitglieder haben, doch die Gelder befinden sich meist in einer Wallet, auf die 5–20 aktive Communitymitglieder Zugriff haben und die in der Regel vertrauenswürdig und öffentlich bekannt sind (öffentliche Identitäten, die der Community bekannt sind). Nach einer erfolgreichen Abstimmung führen die Multisig-Unterzeichner den Community-Willen aus. - -## DAO-Gesetze {#dao-laws} - -Wyoming hat 1977 die LCC eingeführt, die Unternehmer schützt und ihre Haftung beschränkt. Kürzlich hat der Bundesstaat außerdem ein DAO-Gesetz verabschiedet, das den Rechtsstatus von DAOs festlegt. Aktuell verfügen (in den USA) Wyoming, Vermont und die Jungferninseln über eine Form von DAO-Gesetzen. - -#### Bekanntes Beispiel {#law-example} - -[CityDAO](https://citydao.io) – CityDAO hat durch Wyomings DAO-Gesetz 40 Hektar Land in der Nähe des Yellowstone Nationalparks gekauft. - -## DAO-Mitgliedschaft {#dao-membership} - -Für die Mitgliedschaft in einer DAO gibt es verschiedene Modelle. Über die Mitgliedschaft wird festgelegt, wie Abstimmungen und andere wesentliche Bereiche der DAO funktionieren. - -### Token-basierte Mitgliedschaft {#token-based-membership} - -In der Regel völlig frei von Berechtigungen, je nach verwendetem Token. Meistens können diese Governance-Token an einer dezentralen Börse berechtigungsfrei gehandelt werden. Andere müssen erworben werden, durch die Bereitstellung liquider Mittel oder eine andere Form des „Arbeitsnachweises“. In jedem Fall gewährt der Besitz des Tokens Zugang zur Abstimmung. - -_In der Regel werden sie zur Steuerung umfangreicher dezentraler Protokolle und/oder von Token selbst verwendet._ - -#### Bekanntes Beispiel {#token-example} - -[MakerDAO](https://makerdao.com) – MakerDAOs Token MKR wird an zahlreichen dezentralisierten Börsen angeboten, sodass jeder Tokens und damit Stimmrechte für die zukünftige Ausrichtung von Maker kaufen kann. - -### Anteilsbasierte Mitgliedschaft {#share-based-membership} - -Anteilsbasierte DAOs sind stärker reglementiert, aber immer noch recht offen. Alle potenziellen Mitglieder können Anträge stellen, um der DAO beizutreten. Dafür wird meist eine Gegenleistung in Form von Tokens oder geleisteter Arbeit angeboten. Anteile stehen für direkte Stimmrechte und Eigentum. Mitglieder können jeder aussteigen und erhalten einen proportionalen Anteil an der Schatzkammer. - -_Findet in der Regel Anwendung für kleinere, auf den Menschen ausgerichtete Organisationen wie Wohltätigkeitsorganisationen, Gewerkschaften und Investmentclubs. Sie können auch Protokolle und Token regeln._ - -#### Bekanntes Beispiel {#share-example} - -[MolochDAO](http://molochdao.com/) – MolochDAO ist auf die Finanzierung von Ethereum-Projekten ausgerichtet. Gefordert wird ein Antrag auf Mitgliedschaft, damit die Gruppe beurteilen kann, ob Interessenten über das nötige Fachwissen und Kapital verfügen, um fundierte Entscheidungen über potenzielle Zuschussempfänger zu treffen. Es ist nicht möglich, den Zugang zur DAO einfach auf dem freien Markt zu kaufen. - -### Reputationsbasierte Mitgliedschaft {#reputation-based-membership} - -Reputation ist ein Nachweis der Teilnahme und gewährt Stimmrechte im DAO. Im Gegensatz zur token- oder anteilsbasierten Mitgliedschaft übertragen reputationsbasierte DAOs keine Vermögenswerte an Mitwirkende. Reputation kann weder gekauft, übertragen noch delegiert werden. DAO-Mitglieder können Reputation nur durch Teilnahme erwerben. On-Chain-Abstimmungen sind frei zugänglich. Jedes potenzielle Mitglied kann einen Antrag auf Beitritt zur DAO und Vergütung seiner Mitwirkung in Form von Reputation und Token stellen. - -_Typischerweise für die dezentrale Entwicklung und Steuerung von Protokollen und dApps verwendet, aber auch gut geeignet für eine Vielzahl von Organisationen wie Wohltätigkeitsorganisationen, Arbeiterkollektive, Investmentclubs usw._ - -#### Bekanntes Beispiel {#reputation-example} - -[DXdao](https://DXdao.eth.link) – DXdao ist ein globales und souveränes Kollektiv, das seit 2019 dezentralisierte Protokolle und Anwendungen entwickelt und administriert. Zur Koordinierung und Verwaltung der Geldmittel wird auf eine reputationsbasierte Administration gesetzt und ein holografischer Konsens verwendet. Somit ist es nicht möglich, sich die Entscheidungsmacht über die Organisation zu erkaufen. - -## DAO – Beitritt und Gründung {#join-start-a-dao} - -### Beitritt zu einer DAO {#join-a-dao} - -- [DAOs der Ethereum-Community](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [DAO-Liste von DAOHaus](https://app.daohaus.club/explore) -- [DAO-Liste von tally.xyz](https://www.tally.xyz) - -### Gründung einer DAO {#start-a-dao} - -- [Eine DAO mit DAOHaus gründen](https://app.daohaus.club/summon) -- [Starte eine Governor DAO mit Tally](https://www.tally.xyz/add-a-dao) -- [Eine von Aragon betriebene DAO gründen](https://aragon.org/product) -- [Eine Kolonie gründen](https://colony.io/) -- [Erstellen einer DAO mit dem holografischen Konsens von DAOstack](https://alchemy.daostack.io/daos/create) - -## Weiterführende Informationen {#further-reading} - -### DAO-Artikel {#dao-articles} - -- [Was ist eine DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) -- [Das DAO-Handbuch](https://daohandbook.xyz) -- [Haus der DAOs](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) -- [Was ist eine DAO und wofür ist sie da?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) -- [Wie man eine DAO-basierte digitale Community gründet](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) -- [Was ist eine DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) -- [Was ist holografischer Konsens?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) – [DAOstack](https://daostack.io/) -- [DAOs sind keine Unternehmen: Wo die Dezentralisierung in autonomen Organisationen wichtig ist von Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) -- [DAOs, DACs, DAs und mehr: Ein unvollständiger Terminologie-Guide](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Ethereum Blog](https://blog.ethereum.org) - -### Videos {#videos} - -- [Was ist eine DAO in der Kryptowirtschaft?](https://youtu.be/KHm0uUPqmVE) -- [Kann eine DAO eine Stadt bauen?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/src/content/translations/de/decentralized-identity/index.md b/src/content/translations/de/decentralized-identity/index.md deleted file mode 100644 index 596d3fa22ce..00000000000 --- a/src/content/translations/de/decentralized-identity/index.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: Dezentralisierte Identität -description: Was ist eine dezentralisierte Identität und warum ist sie wichtig? -lang: de -template: use-cases -emoji: ":id:" -sidebarDepth: 2 -image: ../../../../assets/eth-gif-cat.png -summaryPoint1: Traditionelle Identitätssysteme haben die Ausgabe, Wartung und Kontrolle Ihrer Identifikatoren zentralisiert. -summaryPoint2: Eine dezentralisierte Identität beseitigt die Abhängigkeit von zentralisierten Dritten. -summaryPoint3: Dank Krypto haben Benutzer jetzt die Werkzeuge, um ihre eigenen Identifikatoren und Bescheinigungen wieder auszugeben, zu halten und zu kontrollieren. ---- - -Identität untermauert praktisch jeden Aspekt Ihres heutigen Lebens. Die Nutzung von Online-Diensten, die Eröffnung eines Bankkontos, die Teilnahme an Wahlen, der Kauf von Immobilien, die Sicherung von Arbeit – all dies erfordert den Nachweis Ihrer Identität. - -Traditionelle Identitätsmanagementsysteme verlassen sich jedoch seit langem auf zentralisierte Vermittler, die Ihre Identifikatoren und [Attestierungen](#what-are-attestations) ausstellen, halten und kontrollieren. Das bedeutet, dass Sie Ihre identitätsbezogenen Informationen nicht kontrollieren können und nicht entscheiden können, wer Zugriff auf personenbezogene Daten (PII) hat, und wie viel Zugriff diese Parteien haben. - -Um diese Probleme zu lösen, haben wir dezentrale Identitätssysteme, die auf öffentlichen Blockchains wie Ethereum basieren. Eine dezentralisierte Identität erlaubt es den Menschen, ihre identitätsbezogenen Informationen zu verwalten. Durch dezentralisierte Identitätslösungen können _Sie_ Identifikatoren erschaffen und Ihre Attestierungen sowohl beanspruchen als auch über sie verfügen, ohne dabei auf zentrale Autoritäten, wie Dienstleister oder Regierungen, vertrauen zu müssen. - -## Was ist Identität? {#what-is-identity} - -Identität bedeutet das Selbstempfinden eines Individuums, definiert durch einzigartige Charaktereigenschaften. Identität bezieht sich auf ein _Individuum_, d. h. eine eigenständige Person. Identität könnte sich auch auf andere nicht-menschliche Entitäten, wie eine Organisation oder Behörde, beziehen. - -## Was sind Identifikatoren? {#what-are-identifiers} - -Ein Identifikator ist eine Information, die als Attribut einer bestimmten Identität oder von Identitäten fungiert. Beispiele für allgemeine Identifikatoren: - -- Name -- Sozialversicherungsnummer/Steuernummer -- Mobiltelefonnummer -- Geburtsdatum und -ort -- Zugangsdaten für eine digitale Identifikation, z. B. E-Mail-Adressen, Benutzernamen, Avatare - -Diese traditionellen Beispiele von Identifikatoren werden von zentralen Stellen herausgegeben, gehalten und kontrolliert. Sie brauchen die Erlaubnis Ihrer Regierung, um Ihren Namen zu ändern, oder die einer Social-Media-Plattform, um Ihren Benutzernamen zu ändern. - -## Was ist eine Attestierung? {#what-are-attestations} - -Eine Attestierung ist ein Anspruch einer Entität gegenüber einer anderen Entität. Wenn Sie in den Vereinigten Staaten leben, bestätigt der Führerschein des Fahrzeugministeriums (eine Entität), dass Sie (eine andere Entität) berechtigt sind, ein Auto zu fahren. - -Attestierungen unterscheiden sich von Identifikatoren. Eine Attestierung _enthält_ Identifikatoren für den Verweis auf eine bestimmte Identität und stellt einen Anspruch gegenüber einem Attribut im Zusammenhang mit dieser Identität. Ihr Führerschein hat also Identifikatoren (Name, Geburtsdatum, Adresse), ist aber zugleich auch die Attestierung Ihres gesetzlichen Fahrrechts. - -### Was sind dezentralisierte Identifikatoren? {#what-are-decentralized-identifiers} - -Klassische Identifikatoren, wie beispielsweise Ihr bürgerlicher Name oder Ihre E-Mail-Adresse, sind von Dritten abhängig - von Regierungen und E-Mail-Anbietern. Dezentralisierte Identifikatoren (DIDs) sind anders - sie werden nicht von einer zentralen Stelle ausgegeben, verwaltet oder kontrolliert. - -Dezentralisierte Identifikatoren werden von Individuen ausgegeben, gehalten und kontrolliert. Ein [Ethereum-Konto](/developers/docs/accounts/) ist ein Beispiel für einen dezentralisierten Identifikator. Sie haben die Möglichkeit, so viele Konten zu erstellen, wie Sie möchten, ohne dass Sie eine Erlaubnis von Dritten benötigen und ohne dass diese Konten in einem zentralen Register gespeichert werden müssen. - -Dezentralisierte Identifikatoren werden auf sogenannten dezentralen Ledgern (Blockchains) oder Peer-to-Peer-Netzwerken gespeichert. Das macht DIDs [weltweit eindeutig, auflösbar mit hoher Verfügbarkeit und kryptographisch verifizierbar](https://w3c-ccg.github.io/did-primer/). Ein dezentralisierter Identifikator kann mit verschiedenen Entitäten verknüpft werden, darunter Personen, Organisationen oder staatliche Einrichtungen. - -## Was ermöglicht dezentralisierte Identifikatoren? {#what-makes-decentralized-identifiers-possible} - -### 1. Öffentliche Schlüssel-Infrastruktur (Public Key Infrastructure, PKI) {#public-key-infrastructure} - -Öffentliche Schlüssel-Infrastruktur (PKI) ist ein Maß zur Informationssicherheit, die einen [öffentlichen Schlüssel](/glossary/#public-key) und [einen privaten Schlüssel](/glossary/#private-key) für eine Entität generiert. Öffentliche Schlüssel-Kryptografie wird in Blockchain-Netzwerken verwendet, um Benutzeridentitäten zu authentifizieren und das Eigentum an digitalen Gütern nachzuweisen. - -Einige dezentralisierte Identifikatoren, wie z. B. ein Ethereum-Konto, haben öffentliche und private Schlüssel. Der öffentliche Schlüssel identifiziert den Controller des Kontos, während die privaten Schlüssel Nachrichten für dieses Konto signieren und entschlüsseln können. Die öffentliche Schlüssel-Infrastruktur stellt Beweise zur Verfügung, die zur Authentifizierung von Entitäten und zur Verhinderung von Identitätsdiebstahl und Nachahmung der Entitäten dient. Dabei werden [Kryptografische Unterschriften](https://andersbrownworth.com/blockchain/public-private-keys/) genutzt, um alle Ansprüche zu verifizieren. - -### 2. Dezentralisierte Datenspeicher {#decentralized-datastores} - -Eine Blockchain dient als überprüfbares Datenregister: ein offenes, dezentralisiertes Informationsarchiv, welches in keiner Weise Vertrauen benötigt. Die Existenz öffentlicher Blockchains macht es überflüssig, Identifikatoren in zentralisierten Registern zu speichern. - -Wenn jemand die Gültigkeit eines dezentralen Identifikators bestätigen muss, kann er den zugehörigen öffentlichen Schlüssel in der Blockchain finden. Dies unterscheidet sich von traditionellen Identifikatoren, die eine Authentifizierung durch Dritte erfordern. - -## Wie ermöglichen dezentralisierte Identifikatoren und Attestierungen dezentralisierte Identitäten? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} - -Die dezentralisierte Identität repräsentiert die Vorstellung, dass identitätsbezogene Informationen selbstkontrolliert, privat und übertragbar sein sollten. Dabei stellen dezentralisierte Identifikatoren und Attestierungen die Grundbausteine dar. - -Im Zusammenhang mit dezentralisierten Identitäten sind Attestierungen (auch bekannt als [nachprüfbare Berechtigungsnachweise](https://www.w3.org/TR/vc-data-model/)) manipulationssichere, kryptografisch überprüfbare Angaben des Emittenten. Jede Attestierung oder jeder nachprüfbarer Berechtigungsnachweis einer Entität (z. B. einer Organisation) wird mit ihrer DID in Zusammenhang gebracht. - -Da DIDs auf der Blockchain gespeichert sind, kann jeder die Gültigkeit einer Attestierung überprüfen, indem man die DID des Emittenten auf Ethereum überprüft. Im Grunde funktioniert die Blockchain von Ethereum wie ein globales Verzeichnis, das die Überprüfung von DIDs, die mit bestimmten Entitäten verbunden sind, ermöglicht. - -Dezentralisierte Identifikatoren sind der Grund dafür, dass Attestierungen selbstkontrolliert und überprüfbar sind. Auch wenn der Emittent nicht mehr existiert, wird der Inhaber immer einen Nachweis über die Herkunft und Gültigkeit der Attestierung haben. - -Dezentralisierte Identifikatoren sind auch entscheidend für den Schutz von persönlichen Daten mittels dezentralisierter Identität. Zum Beispiel, wenn eine Person einen Nachweis über eine Attestierung (z. B. Führerschein) einreicht, müssen die Verifizierenden die Gültigkeit der Informationen nicht überprüfen. Stattdessen benötigt der Verifizierende nur kryptografische Garantien über die Echtheit der Attestierung und die Identität der emittierenden Organisation, um festzustellen, ob der Nachweis gültig ist. - -## Attestierungen im Zusammenhang mit einer dezentralisierten Identität {#types-of-attestations-in-decentralized-identity} - -Wie Informationen zu Attestierungen gespeichert und in einem auf Ethereum basierenden Ökosystem der Identität abgerufen werden, unterscheidet sich vom traditionellen Identitätsmanagement. Hier finden Sie einen Überblick einiger Ansätze zur Ausgabe, Speicherung und der Überprüfung von Attestierungen in dezentralisierten Identitätssystemen: - -### Off-Chain-Attestierungen {#off-chain-attestations} - -Eine Sorge bei der On-Chain-Speicherung von Attestierungen besteht darin, dass sie möglicherweise Informationen enthalten, die Einzelpersonen privat halten möchten. Diese öffentliche Art der Ethereum-Blockchain macht sie zum Speichern solcher Attestierungen wenig attraktiv. - -Die Lösung besteht darin, Attestierungen auszustellen, die von Benutzern „off-chain" in digitalen Wallets gehalten werden, aber mit der DID des Ausstellers unterschrieben werden, die „on-chain" gespeichert sind. Diese Attestierungen sind als sogenannte [JSON Web Token](https://en.wikipedia.org/wiki/JSON_Web_Token) kodiert und enthalten die digitale Signatur des Emittenten. Das ermöglicht eine einfache Überprüfung von Off-Chain-Ansprüchen. - -Hier ist ein hypothetisches Szenario zur Erklärung von Off-Chain-Attestierungen: - -1. Eine Universität (der Emittent) stellt eine Attestierung aus (ein digitales akademisches Zertifikat), unterzeichnet sie mit ihren Schlüsseln und gibt sie an Bob (den Identitätseigentümer) aus. - -2. Bob bewirbt sich für eine Stelle und möchte seine akademischen Qualifikationen gegenüber einem Arbeitgeber nachweisen. Aus diesem Grund teilt er seine Attestierung mit Hilfe seiner mobilen Wallet. Das Unternehmen (Verifizierender) kann dann die Gültigkeit der Attestierung überprüfen, indem es die Gültigkeit der DID des Emittenten (d. h. ihres öffentlichen Schlüssels auf Ethereum) bestätigt. - -### Off-Chain-Attestierungen mit dauerhaftem Zugriff {#offchain-attestations-with-persistent-access} - -Bei dieser Regelung werden Attestierungen in JSON-Dateien umgewandelt und off-chain gespeichert (idealerweise mit einem [dezentralen Cloud-Speicher](/developers/docs/storage/), einer Plattform wie IPFS oder Swarm). Ein [Hash](/glossary/#hash) der JSON-Datei wird jedoch on-chain gespeichert und über eine On-Chain-Datenerfassung mit einer DID verbunden. Die dazugehörige DID könnte entweder die des Emittenten der Attestierung oder des Empfängers sein. - -Dieser Ansatz macht es möglich, dass Attestierungen eine Blockchain-basierte Langlebigkeit erlangen, wobei Informationen zu Ansprüchen verschlüsselt und überprüfbar bleiben. Er erlaubt auch eine selektive Offenlegung, da der Inhaber des privaten Schlüssels die Informationen entschlüsseln kann. - -### On-Chain-Attestierungen {#onchain-attestations} - -On-Chain-Attestierungen werden in [Smart Contracts](/developers/docs/smart-contracts/) auf der Ethereum-Blockchain gehalten. Der Smart Contract (als Datenerfassung fungierend) ordnet eine Attestierung einem zugehörigen dezentralisierten On-Chain-Identifikator (einem öffentlichen Schlüssel) zu. - -Im Folgenden zeigt ein Beispiel, wie On-Chain-Attestierungen in der Praxis funktionieren könnten: - -1. Ein Unternehmen (XYZ Corp) plant, Eigentumsanteile mit einem Smart Contract zu verkaufen, möchte aber nur Käufer, die eine Hintergrundüberprüfung abgeschlossen haben. - -2. XYZ Corp kann das Unternehmen Hintergrundüberprüfungen durchführen lassen, um On-Chain-Attestierungen auf Ethereum auszugeben. Mit dieser Attestierung wird bestätigt, dass eine Person die Hintergrundüberprüfung bestanden hat, ohne dass persönliche Daten freigegeben werden. - -3. Durch den Verkauf von Aktien mittels Smart Contracts kann man den Datenerfassungsvertrag auf die Identität von geprüften Käufern hin untersuchen. Das macht es möglich, mit dem Smart Contract zu bestimmen, wer Aktien kaufen darf oder nicht. - -### Seelengebundene Token und Identität {#soulbound} - -[Seelengebundene Token](https://vitalik.ca/general/2022/01/26/soulbound.html) (nicht übertragbare NFTs) können verwendet werden, um Informationen zu sammeln, die eindeutig auf eine bestimmte Wallet zutreffen. Dies erzeugt eine einzigartige On-Chain-Identität, die an eine bestimmte Ethereum-Adresse gebunden ist, die Token enthalten könnte, welche wiederum bestimmte Leistungen (z. B. Abschluss eines bestimmten Online-Kurses oder das Bestehen eines Schwellenwertes in einem Spiel) oder eine Gemeinschaftsbeteiligung darstellen. - -## Vorteile dezentralisierter Identitäten {#benefits-of-decentralized-identity} - -1. Dezentralisierte Identitäten erhöhen die individuelle Kontrolle der Identifizierung von Informationen. Dezentralisierte Identifikatoren und Attestierungen können überprüft werden, ohne sich auf zentralisierte Behörden und Dienste Dritter zu verlassen. - -2. Dezentralisierte Identitätslösungen benötigen kein Vertrauen. Sie stellen eine nahtlose und die Privatsphäre schützende Methode zur Überprüfung und Verwaltung von Benutzeridentitäten dar. - -3. Dezentralisierte Identitäten nutzten die Blockchain-Technologie, die Vertrauen zwischen verschiedenen Parteien schafft und kryptografische Garantien bietet, um die Gültigkeit von Attestierungen nachzuweisen. - -4. Dezentralisierte Identitäten machen Identitätsdaten übertragbar. Benutzer speichern Attestierungen und Identifikatoren in mobilen Wallets und können sie mit jeder Partei ihrer Wahl teilen. Dezentralisierte Identifikatoren und Attestierungen sind nicht in der Datenbank der emittierenden Organisation gesperrt. - -5. Dezentralisierte Identitäten sollten gut mit den sich entwickelnden Null-Wissen-Technologien funktionieren, denn sie ermöglichen es Personen, Eigentum oder bestimmte Aktionen nachzuweisen, ohne dabei aufzudecken, was sie genau besitzen bzw. getan haben. Dies könnte sich zu einer schlagkräftigen Möglichkeit entwickeln, Vertrauen und Privatsphäre für bestimmte Anwendungen zu verbinden, wie z. B. Abstimmungsverhalten. - -6. Dezentralisierte Identitäten ermöglichen es Anti-Sybil-Mechanismen, zu identifizieren, ob eine Einzelperson vorgibt, mehrere Menschen zu sein, um ein bestimmtes System auszuspielen oder zu spammen. - -## Dezentralisierte Nutzungsmöglichkeiten von Identitäten {#decentralized-identity-use-cases} - -Dezentralisierte Identitäten haben viele potenzielle Nutzungsmöglichkeiten: - -### 1. Universale Log-Ins {#universal-dapp-logins} - -Dezentralisierte Identitäten können dazu beitragen, Passwort-basierte Logins durch [dezentrale Authentifizierung](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/) zu ersetzen. Dienstleister können Attestierungen an Benutzer verteilen, welche in einer Ethereum-Wallet gespeichert werden. Eine Beispielattestierung wäre ein [NFT](/nft/), welcher dem Inhaber Zugriff auf eine Online-Community gewährt. - -Eine [Anmeldung über Ethereum](https://login.xyz/) würde es Servern ermöglichen, das Ethereum-Konto des Benutzers zu bestätigen und die erforderliche Attestierung von seiner Account-Adresse einzuholen. Das bedeutet, dass Benutzer auf Plattformen und Websites zugreifen können, ohne sich lange Passwörter merken und das Online-Erlebnis für Benutzer verbessern zu müssen. - -### 2. KYC-Authentifizierung {#kyc-authentication} - -Die Nutzung vieler Online-Dienste erfordert von Einzelpersonen die Bereitstellung von Attestierungen und Berechtigungsnachweisen, wie zum Beispiel einen Führerschein oder nationalen Reisepass. Dieser Ansatz ist jedoch problematisch, da private Nutzerinformationen kompromittiert werden und Dienstleister die Echtheit der Attestierung nicht überprüfen können. - -Dezentralisierte Identitäten erlauben es Unternehmen, herkömmliche [Know-Your-Customer (KYC)](https://de.wikipedia.org/wiki/Know_your_customer)-Prozesse zu überspringen und Benutzeridentitäten mittels überprüfbarer Zugangsdaten zu authentifizieren. Dies senkt die Kosten des Identitätsmanagements und verhindert die Verwendung gefälschter Dokumentationen. - -### 3. Abstimmungen und Online-Communtitys {#voting-and-online-communities} - -Online-Abstimmungen und Social Media sind zwei neuartige Anwendungen für dezentralisierte Identitäten. Online-Wahlsysteme sind manipulationsanfällig, insbesondere wenn böswillige Akteure falsche Identitäten zur Abstimmung erschaffen. Einzelpersonen zu bitten, On-chain-Attestierungen vorzulegen, kann die Integrität von Online-Abstimmungsverfahren verbessern. - -Dezentralisierte Identitäten können dabei helfen, Online-Communitys zu schaffen, die frei von gefälschten Konten sind. Zum Beispiel müsste jeder Benutzer seine Identität mittels eines On-Chain-Identitätssystems, wie dem Ethereum Name Service, authentifizieren, womit die Gefahr durch Bots reduziert wird. - -### 4. Anti-Sybil-Schutz {#sybil-protection} - -Sybil-Angriffe beziehen sich auf einzelne Menschen, die das System glauben lassen wollen, sie seien mehrere Menschen, um ihren Einfluss zu erhöhen. [Zuschussgebende Anwendungen](https://gitcoin.co/grants/), die [quadratisches Abstimmen](https://www.radicalxchange.org/concepts/plural-voting/) nutzen, sind durch diese Sybil-Angriffe gefährdet, da der Wert des Zuschusses erhöht wird, wenn mehr Individuen für ihn stimmen. Dies wiederum spornt Nutzer an, ihre Beiträge auf viele Identitäten zu verteilen. Dezentralisierte Identitäten helfen, dies zu verhindern, indem sie jeden Teilnehmer beweisen lassen, dass sie wirklich menschlich sind, auch wenn dabei meist keine spezifischen privaten Informationen verlangt werden. - -## Dezentrale Identitäten verwenden {#use-decentralized-identity} - -Es gibt viele ehrgeizige Projekte, die Ethereum als Grundlage für dezentrale Identitätslösungen verwenden: - -- **[Ethereum Name Service (ENS)](https://ens.domains/)** - _Ein dezentralisiertes Namenssystem für maschinenlesbare On-chain-Identifikatoren, wie Ethereum Wallet-Adressen, Content-Hashes und Metadaten._ -- **[SpruceID](https://www.spruceid.com/)** - _Ein dezentralisiertes Identitätsprojekt, das es Benutzern erlaubt, digitale Identitäten mit Hilfe von Ethereum-Konten und ENS-Profilen zu kontrollieren, statt sich auf Dienste Dritter zu verlassen._ -- **[Ethereum Attestation Service (EAS)](https://attest.sh/)** - _Ein dezentralisiertes Ledger/Protokoll zum Erstellen von On-Ketten- oder Off-Kettenbescheinigungen über irgendetwas._ -- **[Proof of Humanity](https://www.proofofhumanity.id)** - _Proof of Humanity (Beweis des Menschseins) ist ein auf Ethereum basierendes System zur Überprüfung der sozialen Identität._ -- **[BrightID](https://www.brightid.org/)**- _Ein dezentralisiertes quelloffenes Netzwerk zur sozialen Identität, das versucht, die Identitätsüberprüfung durch die Schaffung und Analyse eines sozialen Diagramms zu reformieren._ -- **[Personennachweis-Passport](https://proofofpersonhood.com/)** - _Ein dezentraler digitaler Identitätsaggregator._ - -## Weiterführende Informationen {#further-reading} - -### Artikel {#articles} - -- [Blockchain-Nutzungsfälle: Blockchain in digitaler Identität](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_> -- [Was ist Ethereum ERC725? Eigenständiges Identitätsmanagement in der Blockchain](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Sam-Stadt_ -- [Wie die Blockchain das Problem der digitalen Identität lösen könnte](https://time.com/6142810/proof-of-humanity/)— _Andrew R. Chow_ -- [Was sind dezentralisierte Identitäten und warum sollten sie Sie interessieren?](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ - -### Videos {#videos} - -- [Dezentralisierte Identität (Bonus Livestream Session)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Ein großartiges Erklärungsvideo über dezentrale Identität von Andreas Antonopolous_ -- [Anmelden mit Ethereum und dezentralisierter Identität mit Ceramic, IDX, React, und 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _YouTube-Tutorial zum Aufbau eines Identitätsmanagementsystems zum Erstellen, Lesen und Aktualisieren des Profils von Benutzern mit ihrer Ethereum-Wallet von Nader Dabit_ -- [BrightID - Dezentralisierte Identität auf Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _Podcast Bankless Episode über BrightID, eine dezentrale Identitätslösung für Ethereum_ -- [Das Off-Chain-Internet: Dezentralisierte Identität & Überprüfbare Berechtigungsnachweise](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — EthDenver 2022 Präsentation von Evin McMullen - -### Communities {#communities} - -- [ERC-725 Allianz auf GitHub](https://github.com/erc725alliance) — _Unterstützer des ERC725-Standards zur Identitätsverwaltung in der Ethereum-Blockchain_ -- [SpruceID Discord Server](https://discord.com/invite/Sf9tSFzrnt) — _Community für Enthusiasten und Entwickler, die am Anmelden mit Ethereum arbeiten_ -- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Eine Community von Entwicklern, die zum Aufbau eines Rahmens für überprüfbare Daten für Anwendungen beitragen_ diff --git a/src/content/translations/de/defi/index.md b/src/content/translations/de/defi/index.md deleted file mode 100644 index 29e58aee18c..00000000000 --- a/src/content/translations/de/defi/index.md +++ /dev/null @@ -1,352 +0,0 @@ ---- -title: Dezentrales Finanzwesen (DeFi) -description: Eine Übersicht über DeFi auf Ethereum -lang: de -template: use-cases -emoji: ":money_with_wings:" -image: ../../../../assets/use-cases/defi.png -alt: Ein ETH-Logo aus Legosteinen. -sidebarDepth: 2 -summaryPoint1: Eine globale, offene Alternative zum aktuellen Finanzsystem. -summaryPoint2: Produkte, mit denen Sie Geld ausleihen, sparen, investieren, Handel treiben können und mehr. -summaryPoint3: Die Grundlage bildet Open-Source-Technologie, mit der jeder programmieren kann. ---- - -DeFi ist ein offenes und globales Finanzsystem für das Zeitalter des Internets – eine Alternative zu einem undurchsichtigen und streng kontrollierten System, das durch jahrzehntealte Infrastruktur und Prozesse zusammengehalten wird. Es bietet Kontrollmöglichkeiten und Transparenz über Ihr Geld. Zudem ermöglicht es Zugang zu globalen Märkten und Alternativen zu lokalen Währungen oder Banksystemen. DeFi-Produkte öffnen Finanzdienstleistungen für jeden mit einer Internetverbindung. Größtenteils sind sie im Besitz von den eigenen Benutzern, die auch die Verwaltung übernehmen. Bis dato sind viele Milliarden Dollar Kryptowährung durch DeFi-Anwendungen geflossen und das wird jeden Tag mehr. - -## Was ist DeFi? {#what-is-defi} - -DeFi ist ein Sammelbegriff für Finanzprodukte und Services, die für alle zugänglich sind, die Ethereum nutzen können – also jeder mit einer Internetverbindung. Mit DeFi sind Märkte immer offen. In diesem System gibt es keine zentralen Behörden, die Zahlungen blockieren oder Zugang zu irgendetwas verweigern können. Dienste, die früher langsam und wegen der erforderlichen menschlichen Interaktionen fehleranfällig waren, sind jetzt sicherer, da sie durch öffentlichen Code ausgeführt werden, den jeder prüfen und hinterfragen kann. - -Es gibt eine boomende Kryptowirtschaft, in der Sie Assets leihen und verleihen können, lang- und kurzfristige Positionen einnehmen, Zinsen verdienen und vieles mehr. Beispielsweise setzen Krypto-versierte Argentinier auf DeFi, um den Folgen der Hyperinflation zu entkommen. Und auch Unternehmen haben begonnen, ihre Mitarbeiter in Echtzeit via Krypto zu bezahlen. Es wurden sogar Darlehen im Wert von Millionen Dollar aufgenommen und bezahlt, ohne dass für die Beteiligten eine persönliche Identifizierung erforderlich gewesen wäre. - - - -## DeFi vs. das traditionelle Finanzsystem {#defi-vs-tradfi} - -Um das wahre Potenzial von DeFi erkennen zu können, ist es wichtig, die aktuellen Probleme des traditionellen Finanzsystems zu kennen. - -- Manchen Menschen ist die Möglichkeit zur Einrichtung eines Bankkontos oder zur Nutzung von Finanzdienstleistungen verwehrt. -- Der mangelnde Zugang zu Finanzdienstleistungen kann dazu führen, dass Menschen nicht aus ihrer Arbeitslosigkeit herauskommen. -- Traditionelle Finanzdienstleistungen können der Grund sein, dass Sie nicht bezahlt werden können. -- Ihre persönlichen Daten sind praktisch eine versteckte Gebühr für Finanzdienstleistungen. -- Regierungen und zentralisierte Institutionen können Märkte willkürlich schließen. -- Handelszeiten am Finanzmarkt sind häufig auf die Geschäftszeiten bestimmter Zeitzonen beschränkt. -- Transfers von Geldmitteln können aufgrund der Prozesse, die Interaktionen von Personen umfassen, Tage dauern. -- Bei vielen Finanzdienstleistungen sind oftmals Vermittler (z. B. Broker) zwischengeschaltet, für die Gebühren anfallen können. - -### Ein Vergleich {#defi-comparison} - -| DeFi | Traditionelles Finanzsystem | -| ------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Sie halten Ihr Geld selbst. | Ihr Geld liegt bei Dritten. | -| Sie kontrollieren, wofür Ihr Geld verwendet wird und wohin es fließt. | Sie müssen Unternehmen/Banken vertrauen, dass sie Ihr Geld nicht schlecht verwalten und beispielsweise Kredite an riskante Kreditnehmer vergeben. | -| Überweisungen erfolgen in wenigen Minuten. | Überweisungen können aufgrund von manuellen Prozessen Tage dauern. | -| Transaktionstätigkeiten erfolgen pseudonymisiert. | Finanzielle Vorgänge sind eng an Ihre Identität gekoppelt. | -| DeFi ist offen für jeden. | Sie müssen sich bewerben, um Finanzdienstleistungen in Anspruch nehmen zu können. | -| Märkte sind rund um die Uhr geöffnet. | Märkte schließen, da es Beschränkungen für die Arbeitszeit von Angestellten gibt. | -| Basiert auf dem Transparenzprinzip – jeder kann die Daten eines Produktes einsehen und überprüfen, wie das System funktioniert. | Finanzinstitute sind wie geschlossene Bücher: Es ist nicht möglich, ihre Kredithistorie, Aufzeichnungen der verwalteten Vermögenswerte oder Ähnliches einzusehen. | - - - DeFi-Apps entdecken - - -## Alles begann mit Bitcoin... {#bitcoin} - -Bitcoin war in vielerlei Hinsicht die erste DeFi-Anwendung. Mit Bitcoin können Sie den Wert selbst besitzen, kontrollieren und überall auf der Welt hinsenden. Bitcoin bietet vielen Menschen, die sich gegenseitig nicht vertrauen, die Möglichkeit, eine Einigung über einen aktuellen Transaktionsstatus und Stand aller Konten zu erzielen, ohne dass dafür ein vertrauenswürdiger Vermittler vonnöten ist. Bitcoin ist offen für jeden und niemand ist befugt, Regeln zu ändern. Die Regeln von Bitcoin, wie die Knappheit und Offenheit, sind in der Technologie niedergeschrieben. Es ist nicht wie im traditionellen Finanzwesen, wo Regierungen Geld drucken können, das Ihre Ersparnisse entwertet, und Unternehmen die Märkte schließen können. - -Darauf baut Ethereum auf. Wie bei Bitcoin, können die Regeln sich nicht ändern und jeder hat Zugang dazu. Doch zusätzlich macht Ethereum dieses digitale Geld programmierbar, und zwar mit[Smart Contracts](/glossary#smart-contract). Das bietet über das Speichern und Senden von Werten hinaus noch viele weitere Möglichkeiten. - - - -## Programmierbares Geld {#programmable-money} - -Das klingt merkwürdig... „Warum würde ich mein Geld programmieren wollen?“ Das ist tatsächlich eher ein Standardmerkmal der Token auf Ethereum. Jeder kann Logik in Zahlungen programmieren. Auf diese Weise erhalten Sie die Kontrolle und Sicherheit wie bei Bitcoin in Verbindung mit Dienstleistungen, die von Finanzinstituten bereitgestellt werden. Das eröffnet Möglichkeiten für Kryptowährungen, die mit Bitcoin nicht gegeben sind, wie z. B. das Vergeben oder Beanspruchen von Krediten, Terminplanung von Zahlungen, Investitionen in Indexfonds und vieles mehr. - - -
Machen Sie sich mit unseren Vorschlägen für DeFi-Anwendungen vertraut und testen sie, wenn Sie neu bei Ethereum sind.
- - DeFi-Apps entdecken - -
- -## Was kann man mit DeFi machen? {#defi-use-cases} - -Für fast alle Finanzdienstleistungen gibt es dezentrale Alternativen. Ethereum aber schafft zudem Möglichkeiten, komplett neue Finanzprodukte zu gestalten. Im Folgenden eine Liste mit Beispielen, die ständig länger wird: - -- [Geld rund um die Welt senden](#send-money) -- [Geld rund um die Welt „streamen“](#stream-money) -- [Zugang zu stabilen Währungen](#stablecoins) -- [Kredite mit hinterlegten Sicherheiten aufnehmen](#lending) -- [Kredite ohne hinterlegte Sicherheiten aufnehmen](#flash-loans) -- [Krypto-Sparkonten eröffnen](#saving) -- [Mit Token handeln](#swaps) -- [Das eigene Portfolio vergrößern](#investing) -- [Ihre Ideen finanzieren](#crowdfunding) -- [Versicherungen abschließen](#insurance) -- [Das eigene Portfolio verwalten](#aggregators) - - - -### Geld schnell um die ganze Welt senden {#send-money} - -Als Blockchain ist Ethereum für sichere und globale Transaktionen konzipiert. Wie auch Bitcoin macht Ethereum das weltweite Senden von Geld so einfach wie das Versenden einer E-Mail. Geben Sie einfach den [ENS-Namen](/nft/#nft-domains) des Empfängers (z. B. bob.eth) oder die Account-Adresse der Wallet ein und schon geht die Zahlung (typischerweise) innerhalb von Minuten direkt beim Empfänger ein. Zum Senden oder Empfangen von Zahlungen ist eine [Wallet](/wallets/) erforderlich. - - - Siehe Zahlungs-dApps - - -#### Geld um die Welt „streamen“... {#stream-money} - -Über Ethereum lässt sich auch Geld streamen. So können Sie das Gehalt für Personen sekündlich überweisen und geben ihnen damit Zugang zu ihrem verdienten Geld, wann immer sie es gerade benötigen. Ein weiterer Anwendungsfall wäre beispielsweise das Mieten von Objekten, wie z. B. Schließfächer oder E-Scooter, auf sekündlicher Basis. - -Und wenn Sie wegen der Volatilität kein [ETH](/eth/) senden oder streamen möchten, gibt es auf Ethereum alternative Währungen: Stablecoins. - - - -### Zugriff auf Stablecoins {#stablecoins} - -Die Volatilität von Kryptowährungen ist ein Problem für viele Finanzprodukte und allgemein für den Einsatz als Zahlungsmittel. Dieses Problem hat die DeFi-Community mit Stablecoins gelöst. Ihr Wert ist an ein anderes Asset gebunden, typischerweise beliebte Währungen wie der Dollar. - -Coins wie Dai oder USDC haben einen Wert der sich bis auf wenige Cent-Beträge am Wert des US-Dollars orientiert. Das macht sie perfekt für die Verzinsung/Veranlagung oder als Zahlungsmittel. Viele Menschen in Lateinamerika setzen auf Stablecoins als Mittel, um ihr Erspartes in Zeiten großer Unsicherheit werterhaltend zu schützen. - - - Mehr zu Stablecoins - - - - -### Kreditaufnahme {#lending} - -Es gibt zwei etablierte Möglichkeiten, um Geld von dezentralen Anbietern zu leihen: - -- Peer-to-Peer, das heißt der Kreditnehmer leiht direkt von einem bestimmten Kreditgeber. -- Pool-basiert, das heißt Kreditgeber stellen Geldmittel (Liquidität) für einen Pool bereit, aus dem Kreditnehmer die Mittel leihen können. - - - Siehe Lending-dApps - - -Auf dezentrale Kreditanbieter zurückzugreifen, bietet viele Vorteile... - -#### Geld leihen mit Privatsphäre {#borrowing-privacy} - -Bei der Vergabe und Inanspruchnahme von Krediten dreht sich heutzutage alles um die beteiligten Einzelpersonen. Banken müssen vor einer Kreditvergabe wissen, ob man wahrscheinlich in der Lage ist, den Kredit zurückzuzahlen. - -Eine dezentrale Kreditvergabe funktioniert vollständig ohne Identifikation der involvierten Parteien. Stattdessen muss der Kreditnehmer eine Sicherheit stellen, die der Kreditgeber automatisch erhält, wenn der Kredit nicht zurückgezahlt wird. Manche Plattformen akzeptieren sogar NFTs, also Non-Fungible Token, als Sicherheit. NFTs kann man sich wie eine Besitzurkunde für einen bestimmten Vermögenswert vorstellen. [Mehr zu NFTs](/nft/) - -Das ermöglicht es, ohne Kreditchecks und Preisgabe von privaten Informationen Geld zu borgen. - -#### Zugang zu globalen Geldmitteln {#access-global-funds} - -Wenn Sie auf einen dezentralen Kreditgeber setzen, erhalten Sie Zugang zu allen hinterlegten Assets überall auf der Welt und nicht nur zu denen, die im Depot Ihrer Bank oder Institution verwaltet werden. Damit werden Kredite leichter zugänglich und die Zinssätze verbessern sich. - -#### Steuervorteile {#tax-efficiencies} - -Wenn Sie Geld leihen, erhalten Sie Zugang zu Assets und müssen nicht Ihr ETH verkaufen (ein steuerpflichtiger Vorgang). Stattdessen können Sie ETH als Sicherheit für einen Stablecoin-Kredit verwenden. Damit erhalten Sie den benötigten Cashflow, ohne Ihre ETH verkaufen zu müssen. Stablecoins sind Token, die als Zahlungsmittel wesentlich besser geeignet sind, da sie anders als ETH keinen Wertschwankungen unterliegen. [Mehr zu Stablecoins](#stablecoins) - -#### Flash Loans {#flash-loans} - -Flash Loans, also Blitzkredite, sind eine experimentelle Form der dezentralen Kreditaufnahme. Dabei können Sie Geld leihen, ohne Sicherheiten oder persönliche Informationen hinterlegen zu müssen. - -Derzeit sind sie für den Otto Normalverbraucher nicht sehr leicht zugänglich, doch sie zeigen, was in der Zukunft für jeden möglich sein könnte. - -Flash Loans funktionieren unter der Prämisse, dass der Kredit innerhalb einer Transaktion beansprucht und auch wieder zurückgezahlt wird. Wenn er nicht zurückgezahlt werden kann, wird die Transaktion rückgängig gemacht – so als wäre nie etwas passiert. - -Das Geld, das dafür verwendet wird, ist meist in Liquiditäts-Pools (große Pools an Assets, die für das Leihen verwendet werden) gebunden. Wenn diese gebundenen Werte zu einem bestimmten Zeitpunkt gerade nicht verwendet werden, ergibt sich daraus für Dritte die Möglichkeit, diese Werte zu leihen, damit zu arbeiten und buchstäblich zum Zeitpunkt des Ausleihens wieder vollständig zurückzuzahlen. - -Das setzt voraus, dass viel Logik in eine sehr maßgeschneiderte Transaktion einfließen muss. Ein einfaches Beispiel wäre, einen Flash Loan einzusetzen, um eine große Menge eines bestimmten Assets zu einem niedrigen Preis zu borgen und es dann an einem anderen Handelsplatz zu einem höheren Preis zu verkaufen. - -Während einer einzelnen Transaktion passiert also Folgendes: - -- Sie leihen sich Betrag X von $asset zum Preis von $ 1,00 von Handelsplatz A. -- Sie verkaufen X von $asset auf Handelsplatz B für $ 1,10. -- Sie zahlen den Kredit bei Handelsplatz A zurück. -- Sie behalten den Profit abzüglich der Transaktionsgebühren. - -Gäbe es an Handelsplatz B kurzfristig zu wenig Angebot von Assets, wodurch Sie nicht in der Lage wären, genug zu verkaufen, um den ursprünglichen Kredit zurückzuzahlen, so würde die Transaktion schlichtweg einfach fehlschlagen. - -Um das obige Beispiel in der etablierten Finanzwelt umzusetzen, benötigten Sie sehr viel Geld. Diese Strategien des Geldverdienens sind jenen mit großem bestehenden Vermögen vorbehalten. Flash Loans sind ein Beispiel einer Zukunft, in der der Besitz von Geld nicht die Voraussetzung dafür ist, Geld zu verdienen. - -[Mehr zu Flash Loans](https://aave.com/flash-loans/) - - - -### Jetzt mit dem Kryptosparen beginnen {#saving} - -#### Darlehen {#lending} - -Sie können Ihrer Krypto in Echtzeit beim Wachsen zusehen, indem Sie sie verleihen und Zinsen verdienen. Aktuell sind diese Zinssätze um einiges höher als bei lokalen Banken (wenn Sie das Glück haben, Zugang dazu zu haben). Hier ein Beispiel: - -- Sie verleihen 100 Dai, ein [Stablecoin](/stablecoins/), an ein Produkt wie z. B. Aave. -- Sie erhalten einen Token, der für Ihr verliehenes Dai steht, also 100 Aave Dai (aDai). -- Ihr aDai steigt auf Grundlage der Zinssätze an und Sie können Ihr Guthaben in Ihrer Wallet wachsen sehen. Abhängig vom APR können Sie in Ihrer Wallet nach ein paar Tagen oder sogar Stunden ein Guthaben von beispielsweise 100,1234 ablesen. -- Sie können dann jederzeit normales Dai in Höhe Ihres aDai-Guthabens abheben. - - - Zu Lending-dApps - - -#### No-Loss-Lotterien {#no-loss-lotteries} - -No-Loss-Lotterien wie zum Beispiel PoolTogether sind ein lustiger und innovativer Weg, Geld zu sparen. - -- Sie kaufen 100 Tickets mit 100 Dai-Token. -- Sie erhalten 100 plDai, die für Ihre 100 Tickets stehen. -- Wird eines Ihrer Tickets als Gewinner gezogen, erhöht sich Ihr plDai-Guthaben um die Höhe des Gewinnpools. -- Wenn Sie nicht gewinnen, gehen Ihre 100 plDai in die Ziehung in der nächsten Woche über. -- Sie können natürlich jederzeit reguläres Dai in Höhe Ihres plDai-Guthabens abheben. - -Der Gewinnpool wird aus allen Zinsen gewonnen, die durch das Verleihen der Ticketanzahlungen wie im Beispiel zum Verleihen oben generiert wurden. - - - PoolTogether testen - - - - -### Token tauschen {#swaps} - -Auf Ethereum gibt es Tausende Token. Der Handel mit verschiedenen Token erfolgt über dezentrale Tauschbörsen (DEXs) und ist jederzeit möglich. Sie geben niemals die Kontrolle über Ihre Vermögenswerte aus der Hand. Das ist wie der Besuch einer Wechselstube, wenn Sie in ein anderes Land reisen. Doch die DeFi-Version ist immer geöffnet. Die Märkte sind rund um die Uhr an 365 Tagen im Jahr geöffnet. Die Technologie garantiert, dass es immer jemanden gibt, der einen Handel akzeptiert. - -Wenn Sie zum Beispiel die No-Loss-Lotterie PoolTogether (wie oben beschrieben) nutzen möchten, benötigen Sie einen Token wie Dai oder USDC. An diesen DEXs können Sie Ihr ETH gegen solche Token eintauschen. Sobald Sie fertig sind, ist es wieder möglich, diese Token zurückzutauschen. - - - Zu Token-Handesplätzen - - - - -### Erweitertes Trading {#trading} - -Für Trader, die sich mehr Kontrolle wünschen, gibt es fortgeschrittenere Optionen. Limit Orders, Perpetuals, Margin Trading und vieles mehr ist möglich. Mit dezentralem Trading erhalten Sie Zugang zu globaler Liquidität. Der Markt schließt nie und Sie haben immer volle Kontrolle über Ihre Assets. - -Wenn Sie sich für einen zentralen Handelsplatz entscheiden, müssen Sie Ihre Assets vor dem Handeln zuerst hinterlegen und darauf vertrauen, dass der Anbieter diese sicher verwahrt. Während Ihre Assets bei dem Anbieter hinterlegt sind, sind sie dem Risiko von Hackerangriffen ausgesetzt. - - - Zu Trading-dApps - - - - -### Das eigene Portfolio vergrößern {#investing} - -Auf Ethereum gibt es auch Produkte für das Portfoliomanagement, deren Ziel es ist, Ihr Portfolio mit einer Strategie Ihrer Wahl zu vergrößern. Das erfolgt automatisch, ist offen für jeden und Sie benötigen keinen realen Manager, der einen Anteil an Ihren Gewinnen beansprucht. - -Ein gutes Beispiel ist der [DeFi Pulse Index Fund (DPI)](https://defipulse.com/blog/defi-pulse-index/). Es handelt sich um einen Fonds, der automatisch ein Rebalancing durchführt, um sicherzustellen, dass Ihr Portfolio immer [die besten DeFi-Token nach Marktkapitalisierung](https://www.coingecko.com/en/defi) enthält. Sie werden niemals irgendwelche Details verwalten müssen und können jederzeit Abhebungen aus dem Fonds tätigen. - - - Zu Investment-dApps - - - - -### Eigene Ideen finanzieren {#crowdfunding} - -Ethereum ist die ideale Platform für Crowdfunding: - -- Potenzielle Geldgeber können von überall kommen – Ethereum und seine Token sind für jedermann offen, überall auf der Welt. -- Das System ist transparent, so dass Spendensammler beweisen können, wie viel Geld gesammelt wurde. Es lässt sich sogar nachverfolgen, wie die Mittel später ausgegeben werden. -- Spendensammler können automatische Erstattungen einrichten, wenn es beispielsweise eine bestimmte Frist und einen Mindestbetrag gibt, die bzw. der nicht eingehalten oder erreicht wird. - - - Zu Crowdfunding-dApps - - -#### Quadratische Finanzierung {#quadratic-funding} - -Ethereum ist Open-Source-Software und ein Großteil der bisherigen Arbeit wurde von der Community finanziert. Das hat zur Entwicklung eines interessanten neuen Fundraising-Modells geführt: die quadratische Finanzierung. Damit lässt sich die Art und Weise, wie wir in Zukunft alle Arten von öffentlichen Gütern finanzieren, verbessern. - -Über die quadratische Finanzierung wird sichergestellt, dass die Projekte mit dem größten individuellen Bedarf auch die meisten Mittel erhalten. Mit anderen Worten: Projekte, die das Leben der meisten Menschen verbessern können. So funktioniert es: - -1. Es gibt einen übereinstimmenden Pool an gespendeten Mitteln. -2. Eine öffentliche Finanzierungsrunde startet. -3. Menschen können ihre Nachfrage nach einem Projekt signalisieren, indem sie Geld spenden. -4. Sobald die Runde zu Ende ist, werden die Gelder aus dem übereinstimmenden Pool auf die Projekte verteilt. Die Projekte mit dem höchsten individuellen Bedarf erhalten den größten Teil aus dem übereinstimmenden Pool. - -Projekt A mit 100 Spenden zu je 1 Euro könnte also mehr Mittel erhalten als Projekt B mit einer einzelnen Spende von 10.000 Euro (abhängig von der Größe des übereinstimmenden Pools). - -[Zu quadratischer Finanzierung](https://wtfisqf.com) - - - -### Versicherung {#insurance} - -Eine dezentralisierte Versicherung zielt darauf ab, Versicherungen billiger und transparenter zu machen sowie Versicherungsfälle schneller auszuzahlen. Mit einem höherem Grad an Automatisierung wird der Versicherungsschutz erschwinglicher und die Auszahlungen erfolgen wesentlich schneller. Die Daten, die zur Entscheidung über Ihren Versicherungsfall genutzt werden, sind vollkommen transparent. - -Bei Ethereum-Produkten gibt es wie auch bei jeder anderen Software Fehler und Exploits. Derzeit liegt beispielsweise bei vielen Versicherungsprodukten in diesem Bereich der Schwerpunkt auf dem Schutz der Benutzer vor finanziellen Verlusten. Es gibt jedoch Projekte, die damit beginnen, einen Versicherungsschutz für alles Unwägbarkeiten aufzubauen, die das Leben uns bescheren kann. Ein gutes Beispiel ist die Ernteversicherung von Etherisc. Es wird versucht, [Kleinbauern in Kenia gegen Dürren und Überschwemmungen abzusichern](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Dezentrale Versicherungen können Landwirten, denen herkömmliche Versicherungen oft zu teuer sind, einen erschwinglichen Versicherungsschutz bieten. - - - Zu Versicherungs-dApps - - - - -### Aggregatoren und Portfoliomanager {#aggregators} - -Bei all diesen Entwicklungen brauchen Sie einen Weg, um alle Ihre Investitionen, Darlehen und Trades im Auge zu behalten. Es gibt eine Reihe von Produkten, mit denen Sie alle Ihre DeFi-Aktivitäten zentral koordinieren können. Das ist der Vorteil der offenen Architektur von DeFi. Teams können Schnittstellen entwickeln, über die Sie nicht nur Ihr Guthaben für alle Produkte sehen, sondern zusätzlich auch deren Funktionen nutzen können. Das finden Sie vielleicht nützlich, wenn Sie sich umfassender mit DeFi vertraut machen. - - - Zu Portfolio-dApps - - - - -## Wie funktioniert DeFi? {#how-defi-works} - -DeFi setzt Kryptowährungen und Smart Contracts ein, um Dienstleistungen anzubieten, die ohne Vermittler auskommen. In der Finanzwelt von heute fungieren Finanzinstitute als Garanten für Transaktionen. Das verleiht diesen Institutionen enorme Macht, da Ihr Geld durch die Institutionen fließt. Hinzu kommt, dass mehr als eine Milliarde Menschen auf der ganzen Welt nicht einmal Zugang zu einem Bankkonto haben. - -In DeFi ersetzt ein Smart Contract das Finanzinstitut in der Transaktion. Ein Smart Contract ist eine Art Ethereum-Konto, das Guthaben halten kann und dieses auf Grundlage bestimmter Bedingungen zurücksenden oder zurückerstatten kann. Niemand kann diesen Smart Contract mehr ändern, wenn er live ist – er läuft immer wie programmiert ab. - -Ein Vertrag, sprich Contract, mit dem ein Zuschuss oder Taschengeld bezahlt werden soll, könnte so programmiert werden, dass jeden Freitag Geld von Konto A auf Konto B überwiesen wird. Und das passiert solange, wie Konto A über die erforderlichen Mittel verfügt. Niemand kann den Vertrag ändern. Es ist nicht möglich, Konto C als Empfänger hinzufügen, um Geldmittel zu stehlen. - -Zudem sind die Contracts öffentlich und können von jedermann eingesehen und geprüft werden. Das bedeutet, dass schlechte Contracts meist sehr schnell von der Community überprüft werden. - -Daher ist es derzeit notwendig, den technisch versierten Mitgliedern der Ethereum-Community zu vertrauen, die Code lesen können. Die Open-Source-Community trägt dazu bei, dass die Entwickler stetig überprüft werden. Allerdings wird die Notwendigkeit dazu im Laufe der Zeit immer mehr abnehmen, da Smart Contracts leichter lesbar werden und neue Möglichkeiten zum Nachweis der Vertrauenswürdigkeit des Codes entwickelt werden. - -## Ethereum und DeFi {#ethereum-and-defi} - -Ethereum ist aus mehreren Gründen die perfekte Grundlage für DeFi: - -- Niemand ist Eigentümer von Ethereum oder der Smart Contracts, die darauf laufen. Und damit hat jeder die Möglichkeit, DeFi zu nutzen. Das bedeutet auch, dass niemand die Regeln für Sie ändern kann. -- Unter der Oberfläche sprechen alle DeFi-Produkte dieselbe Sprache: Ethereum. Daher können auch viele der Produkte nahtlos zusammenarbeiten. Sie können auf einer Platform Token verleihen und mit dem zinsakkumulierenden Token, den Sie dafür erhalten, auf dem Markt einer völlig anderen Anwendung handeln. Das ist ungefährt so, als würden Sie die Treuepunkte aus dem Supermarkt bei Ihrer Bank einzahlen. -- Token und Kryptowährungen sind Grundpfeiler von Ethereum: Ein verteiltes Ledger, die Nachvollziehbarkeit von Transaktionen und Eigentum – das liegt in der DNA von Ethereum. -- Ethereum ermöglicht völlige finanzielle Freiheit. Die meisten Produkte übernehmen niemals Eigentumsrechte an Ihren Geldmitteln, sodass Sie die Kontrolle nie aus der Hand geben. - -DeFi ist praktisch ein Ebenenmodell: - -1. Die Blockchain: Ethereum enthält den Transaktionsverlauf und den Status der Konten. -2. Die Assets: [ETH](/eth/) und die anderen Token (Währungen). -3. Die Protokolle – [Smart Contracts](/glossary/#smart-contract), die die Funktionalität bereitstellen, z.B. einen Dienst, der die dezentrale Ausleihe von Vermögenswerten ermöglicht. -4. [Die Anwendungen](/dapps/): Produkte die wir benutzen, um Protokolle zu verwalten und auf diese zuzugreifen. - -## DeFi aufbauen {#build-defi} - -DeFi ist eine Open-Source-Bewegung. DeFi-Protokolle und -Anwendungen sind für jeden offen, um sie zu überprüfen, aufzuspalten und zu verbessern. Durch diese kombinierten Ebenen oder Layer (sie teilen alle die gleiche Basis-Blockchain und Assets) können Protokolle vermischt und aufeinander abgestimmt werden, um neue einzigartige Möglichkeiten zu schaffen. - - - Mehr zum Erstellen von dApps - - -## Weiterführende Informationen {#futher-reading} - -### DeFi-Daten {#defi-data} - -- [DeFi Prime](https://defiprime.com/) -- [DeFi Llama](https://defillama.com/) -- [DeFi Rate](https://defirate.com/) - -### DeFi-Artikel {#defi-articles} - -- [Ein Leitfaden für Einsteiger in DeFi](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, 6. Januar 2020_ - -### Videos {#videos} - -- [Finanzmathematik – mehr erfahren über dezentralisierte Finanzmärkte](https://finematics.com/) – _Videos zu DeFi_ -- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _DeFi-Grundlagen: Alles, was Sie wissen müssen, um in diesem gelegentlich verblüffenden Bereich durchzustarten._ -- [Whiteboard-Krypto](https://youtu.be/17QRFlml4pA) _Was ist DeFi?_ - -### Communities {#communities} - -- [DeFi Llama Discord Server](https://discord.gg/buPFYXzDDd) -- [DeFi Pulse Discord Server](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/de/desci/index.md b/src/content/translations/de/desci/index.md deleted file mode 100644 index 333b0694732..00000000000 --- a/src/content/translations/de/desci/index.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: Dezentrale Wissenschaft (DeSci) -description: Eine Übersicht über dezentralisierte Wissenschaft auf Ethereum -lang: de -template: use-cases -emoji: ":microscope:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Eine globale, offene Alternative zum derzeitigen wissenschaftlichen System. -summaryPoint2: Technologie, die es Wissenschaftlern ermöglicht, Finanzierung zu erhalten, Experimente durchzuführen, Daten zu teilen, Erkenntnisse zu verbreiten und vieles mehr. -summaryPoint3: Baut auf der Open-Science-Bewegung auf. ---- - -## Was ist dezentralisierte Wissenschaft (DeSci)? {#what-is-desci} - -Dezentralisierte Wissenschaft (DeSci) ist eine Bewegung, die darauf abzielt, eine öffentliche Infrastruktur für die Finanzierung, Erstellung, Überprüfung, Anerkennung, Speicherung und Verbreitung von wissenschaftlichem Wissen fair und gerecht unter Verwendung des Web3-Stacks aufzubauen. - -DeSci zielt darauf ab, ein Ökosystem zu schaffen, in dem Wissenschaftler ermutigt werden, ihre Forschungsergebnisse offen zu teilen und Anerkennung für ihre Arbeit zu erhalten. Gleichzeitig wird Fachleuten, die ihre eigenen Leistungen einbringen möchten, der Zugang zur Forschung ermöglicht. DeSci arbeitet mit der Idee, dass wissenschaftliche Erkenntnisse für alle zugänglich und der Prozess der wissenschaftlichen Forschung transparent sein sollte. DeSci schafft ein dezentraleres und verteiltes wissenschaftliches Forschungsmodell, das widerstandsfähiger gegen Zensur und Kontrolle durch zentrale Behörden ist. DeSci hofft, eine Umgebung zu schaffen, in der neue und unkonventionelle Ideen gedeihen können, indem der Zugang zu Finanzierung, wissenschaftlichen Werkzeugen und Kommunikationskanälen dezentralisiert wird. - -Dezentralisierte Wissenschaft ermöglicht eine Vielzahl von Finanzierungsmöglichkeiten (von [DAOs](/dao/), [quadratischen Spenden](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) bis hin zu Crowdfunding und mehr), einen leichteren Zugang zu Daten und Methoden sowie Anreize für Reproduzierbarkeit. - -### Juan Benet - Die DeSci-Bewegung - - - -## Wie DeSci die Wissenschaft verbessert {#desci-improves-science} - -Eine unvollständige Liste von zentralen Problemen in der Wissenschaft und wie dezentralisierte Wissenschaft dazu beitragen kann, diese Probleme anzugehen - -| **Dezentralisierte Wissenschaft** | **Traditionelle Wissenschaft** | -| -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | -| Die Verteilung von Mitteln wird durch die Öffentlichkeit mithilfe von Mechanismen wie quadratischen Spenden oder DAOs bestimmt. | Kleine, geschlossene, zentralisierte Gruppen kontrollieren die Verteilung von Mitteln. | -| Sie arbeiten mit Kollegen aus der ganzen Welt in dynamischen Teams zusammen. | Finanzierungsorganisationen und Heimateinrichtungen beschränken Ihre Zusammenarbeit. | -| Finanzierungsentscheidungen werden online und transparent getroffen. Es werden neue Finanzierungsmechanismen erforscht. | Finanzierungsentscheidungen werden mit langer Bearbeitungszeit und begrenzter Transparenz getroffen. Es gibt nur wenige Finanzierungsmechanismen. | -| Die gemeinsame Nutzung von Labor-Services wird durch Web3-Primitiven vereinfacht und transparenter gestaltet. | Die gemeinsame Nutzung von Laborressourcen ist oft langsam und intransparent. | -| Es können neue Modelle für die Veröffentlichung entwickelt werden, die Web3-Primitiven für Vertrauen, Transparenz und universellen Zugang nutzen. | Sie veröffentlichen über etablierte Wege, die häufig als ineffizient, voreingenommen und ausbeuterisch eingestuft werden. | -| Sie können Token und Reputation für die Begutachtung von Arbeiten verdienen. | Ihre Begutachtung von Arbeiten ist unbezahlt und kommen profitorientierten Verlagen zugute. | -| Sie besitzen das geistige Eigentum (IP), das Sie generieren, und verteilen es gemäß transparenten Bedingungen. | Ihre Heimatinstitution ist Eigentümerin des von Ihnen generierten IP. Der Zugang zum IP ist nicht sichtbar. | -| Gemeinsame Nutzung aller Forschungsergebnisse, einschließlich der Daten aus erfolglosen Versuchen, indem alle Schritte in die Prozesskette aufgenommen werden. | Dies bedeutet, dass Forscher mit größerer Wahrscheinlichkeit nur Experimente mit erfolgreichen Ergebnissen veröffentlichen. | - -## Ethereum und DeSci {#ethereum-and-desci} - -Ein dezentralisiertes Wissenschaftssystem erfordert robuste Sicherheit, minimale Geld- und Transaktionskosten und ein reiches Ökosystem für die Anwendungsentwicklung. Ethereum liefert alles, was für den Aufbau eines dezentralen wissenschaftlichen Stacks erforderlich ist. - -## DeSci-Anwendungsfälle {#use-cases} - -DeSci baut das wissenschaftliche Toolset für Web2-Akademie in der digitalen Welt auf. Im Folgenden finden Sie eine Auswahl von Anwendungsfällen, die Web3 der wissenschaftlichen Gemeinschaft bieten kann. - -### Veröffentlichung (Publishing) {#publishing} - -Das wissenschaftliche Publizieren ist bekanntermaßen problematisch, weil es von Verlagen verwaltet wird, die auf die kostenlose Arbeit von Wissenschaftlern, Gutachtern und Redakteuren angewiesen sind, um die Veröffentlichungen zu erstellen, dann aber exorbitante Veröffentlichungsgebühren verlangen. Die Öffentlichkeit, die in der Regel indirekt durch Steuern für das Werk und die Veröffentlichungskosten gezahlt hat, kann oft nicht auf dasselbe Werk zugreifen, ohne den Verleger erneut zu bezahlen. Die Gesamtkosten für die Publikation einzelner wissenschaftlicher Arbeiten belaufen sich oft auf fünfstellige Beträge (USD), wodurch das gesamte Konzept wissenschaftlicher Erkenntnisse als [öffentliches Gut](https://www.econlib.org/library/Enc/PublicGoods.html) untergraben wird, während gleichzeitig enorme Gewinne für eine kleine Gruppe von Verlegern erzielt werden. - -Kostenlose und frei zugängliche Plattformen gibt es in Form von Preprint-Servern, wie [ArXiv](https://arxiv.org/). Diesen Plattformen mangelt es jedoch an Qualitätskontrollen, [anti-sybil mechanisms](https://csrc.nist.gov/glossary/term/sybil_attack). Sie verfolgen in der Regel keine Qualitätskriterien auf Artikelniveau, was bedeutet, dass sie in der Regel nur dazu dienen, die Arbeiten zu veröffenlichen, ehe sie bei einem traditionellen Verlag eingereicht werden. SciHub macht auch publizierte Arbeiten frei zugänglich. Dies geschieht jedoch nicht auf legalem Weg, sondern erst, nachdem die Verlage ihre Bezahlung erhalten haben und die Arbeit in ein strenges Urheberrecht verpackt wurde. Dies hinterlässt eine kritische Lücke für zugängliche wissenschaftliche Publikationen und empirischen Daten mit einem eingebetteten Legitimationsmechanismus und Motivationsmodell. Die Werkzeuge für den Aufbau eines solchen Systems gibt es in Web3. - -### Reproduzierbarkeit und Replizierbarkeit {#reproducibility-and-replicability} - -Reproduzierbarkeit und Replizierbarkeit sind die Grundvoraussetzungen für qualitativ hochwertige wissenschaftliche Erkenntnisse. - -- Reproduzierbare Ergebnisse können mehrfach nacheinander vom selben Team mit derselben Methodik erzielt werden. -- Reproduzierbare Ergebnisse können von einer anderen Gruppe mit demselben Versuchsaufbau erzielt werden. - -Neue Web3-native Tools können sicherstellen, dass Reproduzierbarkeit und Replizierbarkeit die Basis für Forschungsergebnisse sind. Damit können wir Qualitätsforschung in das technologische Umfeld der akademischen Welt einbinden. Web3 bietet die Möglichkeit, Zertifikate für jede analytische Komponente zu erstellen: die Rohdaten, die Berechnungsmaschine und das Anwendungsergebnis. Der Vorteil von Konsens-Systemen besteht darin, dass durch die Schaffung eines vertrauenswürdigen Netzwerks zur Pflege dieser Komponenten jeder Netzwerkteilnehmer für die Nachvollziehbarkeit der Berechnung und die Validierung jedes Ergebnisses verantwortlich sein kann. - -### Finanzierung {#funding} - -Das derzeitige Standardmodell der Wissenschaftsförderung besteht darin, dass Einzelpersonen oder Forschergruppen schriftliche Anträge bei einer Förderorganisation einreichen. Die Bewertung der Anträge und die anschließende Durchführung von Interviews mit den Antragstellern erfolgt durch ein kleines Gremium, das sich aus vertrauenswürdigen Personen zusammensetzt, bevor die Mittel an einen kleinen Kreis von Antragstellern vergeben werden. Dieses Modell führt nicht nur zu Engpässen, die manchmal zu jahrelangen Wartezeiten zwischen Antrag und Bewilligung führen. Es ist auch sehr anfällig für Voreingenommenheit, Eigeninteressen und Politik des Prüfungsausschusses. - -Studien haben gezeigt, dass die Bewilligungsgremien bei der Auswahl von qualitativ hochwertigen Anträgen schlecht abschneiden: Gleiche Anträge, die verschiedenen Gremien vorgelegt werden, führen zu sehr unterschiedlichen Ergebnissen. Aufgrund der Mittelknappheit konzentrierten sie sich auf einen kleineren Pool älterer Forscher mit intellektuell konservativeren Projekten. Dies hat zu einer extrem wettbewerbsorientierten Förderlandschaft geführt, die falsche Anreize setzt und die Innovation im Keim erstickt. - -Web3 hat das Potenzial, dieses kaputte Finanzierungsmodell zu durchbrechen, indem es mit verschiedenen Anreizmodellen experimentiert, die von DAOs und Web3 im Allgemeinen entwickelt werden. [Retroaktive Fördermittel für öffentliche Güter](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), [quadratische Förderung](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), [DAO Governance](https://www.antler.co/blog/daos-and-web3-governance) und [tokenisierte Anreizstrukturen](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) sind einige der Web3-Tools, die die Wissenschaftsförderung revolutionieren könnten. - -### IP-Eigentum und -Entwicklung {#ip-ownership} - -Geistiges Eigentum (IP) ist ein Hauptproblem der traditionellen Wissenschaft: Es bleibt in Universitäten stecken oder wird in Biotechs nicht genutzt und ist schwierig zu bewerten. Allerdings ist das Eigentum an digitalen Gütern (wie z. B. wissenschaftlichen Daten oder Aufsätzen) ein Bereich, in dem Web3 mit seinen [Non-Fungible Token (NFTs)](/nft/) eine sehr gute Lösung bietet. - -Auf die gleiche Weise, wie NFTs Einnahmen für zukünftige Transaktionen an den ursprünglichen Ersteller zurückgeben können, können Sie transparente Wertzuweisungsketten einrichten, um Forscher, Verwaltungsorgane (wie DAOs) oder sogar die Personen, deren Daten gesammelt werden, zu belohnen. - -[IP-NFTs](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) können auch als Schlüssel zu einem dezentralisierten Datenspeicher für die durchgeführten Forschungsexperimente fungieren und sich in die NFT- und [DeFi](/defi/)-Finanzierung einfügen (von der Fraktionalisierung bis zu Leihpools und Wertschätzung). Es ermöglicht auch nativen On-Chain-Einheiten als DAOs wie etwa [VitaDAO](https://www.vitadao.com/), direkt in der Kette zu recherchieren. Die Einführung von nicht übertragbaren ["soulbound"-Token](https://vitalik.ca/general/2022/01/26/soulbound.html) könnte ebenfalls eine wichtige Rolle in DeSci spielen, da sie es Einzelpersonen ermöglichen, ihre Erfahrung und ihre Referenzen in Verbindung mit ihrer Ethereum-Adresse nachzuweisen. - -### Datenspeicherung, Zugriff und Architektur {#data-storage} - -Wissenschaftliche Daten können durch Web3-Modelle viel leichter zugänglich gemacht werden, und die verteilte Speicherung erlaubt es der Forschung, katastrophale Ereignisse zu überleben. - -Ausgangspunkt muss ein System sein, auf das jede dezentrale Identität mit verifizierbaren Berechtigungsnachweisen zugreift. Dies ermöglicht die sichere Replikation sensibler Daten durch vertrauenswürdige Parteien, Redundanz und Widerstandsfähigkeit gegen Zensur, die Reproduktion von Ergebnissen und sogar die Möglichkeit der Zusammenarbeit mehrerer Parteien und das Hinzufügen neuer Daten zu einem Datensatz. Vertrauliche Datenverarbeitungsmethoden wie [Compute-to-Data](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol) bieten alternative Zugriffsmechanismen zur Replikation von Rohdaten und zur Schaffung vertrauenswürdiger Forschungsumgebungen für besonders sensible Daten. Trusted Research Environments (vertrauenswürdige Forschungsumgebungen) wurden [vom NHS](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) als bahnbrechende Lösung für Datenschutz und Zusammenarbeit genannt, da sie ein Ökosystem schaffen, in dem Forscher vor Ort sicher mit Daten arbeiten können, indem sie standardisierte Umgebungen für die gemeinsame Nutzung von Code und Verfahren verwenden. - -Flexible Web3-Datenlösungen unterstützen die oben genannten Szenarien. Sie bilden die Grundlage für eine wirklich offene Wissenschaft, in der Forscher ohne Zugangsbeschränkungen oder Gebühren öffentliche Güter schaffen können. Öffentliche Web3-Datenlösungen wie IPFS, Arweave und Filecoin werden für die Dezentralisierung optimiert. dClimate bietet beispielsweise universellen Zugang zu Klima- und Wetterdaten, auch von Wetterstationen und Vorhersagemodellen. - -## Machen Sie mit {#get-involved} - -Erkunden Sie Projekte und werden Sie Teil der DeSci-Gemeinschaft. - -- [DeSci.Global: globale Ereignisse und Termine](https://desci.global) -- [Blockchain für Science Telegram](https://t.me/BlockchainForScience) -- [Molecule: fördern und eigene Forschungsprojekte finanzieren lassen](https://discover.molecule.to/) -- [VitaDAO: langfristige Forschung finanziert durch gesponserte Forschungsverträge](https://www.vitadao.com/) -- [ResearchHub: wissenschaftliche Ergebnisse veröffentlichen und in Diskurs mit Partnern gehen](https://www.researchhub.com/) -- [LabDAO: Falten eines Proteins in Silizium](https://alphafodl.vercel.app/) -- [dClimate API: Klimadaten abfragen, die von einer dezentralen Gemeinschaft erfasst werden](https://api.dclimate.net/) -- [DeSci Foundation: DeSci Publishing Tool Builder](https://descifoundation.org/) -- [DeSci.World: One-Stop-Shop für Benutzer, mit dezentralisierter Wissenschaft](https://desci.world) -- [Flamming-Protokoll: Open-Source-Datenwirtschaft, die die kollaborative biomedizinische Entdeckung fördert](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [OceanDAO: DAO regelte die Finanzierung der datenbezogenen Wissenschaft](https://oceanprotocol.com/dao) -- [OpScientia: offene dezentrale wissenschaftliche Workflows](https://opsci.io/research/) -- [LabDAO: Falten eines Proteins in Silizium](https://alphafodl.vercel.app/) -- [Bio.xyz: Erhalten Sie Mittel für Ihr Biotech-DAO oder desci-Projekt](https://www.molecule.to/) -- [ResearchHub: Poste ein wissenschaftliches Ergebnis und führe ein Gespräch mit Partnern](https://www.researchhub.com/) -- [VitaDAO: Langfristige Forschung finanziert durch gesponserte Forschungsverträge](https://www.vitadao.com/) -- [Flamming-Protokoll: Open-Source-Datenwirtschaft, die die kollaborative biomedizinische Entdeckung fördert](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [Aktives Inferenz-Labor](https://www.activeinference.org/) -- [CureDAO: Community-eigene Gesundheitsplattform](https://docs.curedao.org/) -- [IdeaMarkets: Ermöglicht dezentralisierte wissenschaftliche Glaubwürdigkeit](https://ideamarket.io/) -- [DeSci Labs](https://www.desci.com/) - -Wir freuen uns über Vorschläge für neue Projekte, die in die Liste aufgenommen werden sollen – bitte lesen Sie dazu unsere [Listing Policy](/contributing/adding-desci-projects/)! - -## Weiterführende Informationen {#further-reading} - -- [DeSci Wiki von Jocelynn Pearl und Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) -- [Ein Leitfaden für die dezentrale Biotechnologie von Jocelynn Perl für die Zukunft von a16z](https://future.a16z.com/a-guide-to-decentralized-biotech/) -- [Die Argumente für DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) -- [Anleitung zu DeSci](https://future.com/what-is-decentralized-science-aka-desci/) -- [Dezentralisierte Wissenschaftsressourcen](https://www.vincentweisser.com/decentralized-science) -- [Die Biopharma-IP-NFTs von Molecule – Eine technische Beschreibung](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) -- [Aufbau zuverlässiger Wissenschaftssysteme von Jon Starr](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) -- [Die Entstehung der Biotech-DAOs](https://molecule.to/blog/the-emergence-of-biotech-daos) -- [Paul Kohlhaas – DeSci: die Zukunft der dezentralisierten Wissenschaft (Podcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) -- [Eine aktive Inferenz-Ontologie für die dezentralisierte Wissenschaft: von aufgestellten Sensemaking bis zu den epistemischen Commons](https://zenodo.org/record/6320575) -- [DeSci: die Zukunft der Forschung von Samuel Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) -- [Science Funding (Epilog: DeSci und neue Kryptoprimitive) von Nadia](https://nadia.xyz/science-funding) -- [Dezentralisierung ist eine Dezentralisierung der Arzneimittelentwicklung](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) - -### Videos {#videos} - -- [Was ist die dezentralisierte Wissenschaft?](https://www.youtube.com/watch?v=-DeMklVWNdA) -- [Gespräch zwischen Vitalik Buterin und dem Wissenschaftler Aubrey de Grey über den Schnittpunkt der Langlebigkeitsforschung und Kryptographie](https://www.youtube.com/watch?v=x9TSJK1widA) -- [Wissenschaftliche Veröffentlichung ist kaputt. Kann Web3 das reparieren?](https://www.youtube.com/watch?v=WkvzYgCvWj8) -- [Juan Benet - DeSci, unabhängige Labore und datenintensive Wissenschaft im großen Maßstab](https://www.youtube.com/watch?v=zkXM9H90g_E) -- [Sebastian Brunemeier – Wie DeSci die biomedizinische Forschung verändern kann & Risikokapital](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/de/developers/docs/mev/index.md b/src/content/translations/de/developers/docs/mev/index.md deleted file mode 100644 index a03ec376ce3..00000000000 --- a/src/content/translations/de/developers/docs/mev/index.md +++ /dev/null @@ -1,129 +0,0 @@ ---- -title: Maximaler extrahierbarer Wert (MEV) -description: Eine Einführung in den maximal extrahierbaren Wert (MEV) -lang: de ---- - -Der Maximal extrahierbare Wert (MEV) bezieht sich auf den maximalen Wert, der aus der Blockproduktion extrahiert werden kann und der über die Standard-Blockprämie und die Gasgebühren hinausgeht, indem Transaktionen in einem Block einbezogen, ausgeschlossen oder in der Reihenfolge geändert werden. - -### Durch Miner extrahierbarer Wert - -Dieses Konzept wurde erstmals im Rahmen des [Arbeitsnachweis](/developers/docs/consensus-mechanisms/pow/) angewandt und anfangs als „miner extractable value" bezeichnet. Das liegt daran, dass beim Arbeitsnachweis die Miner den Einschluss, den Ausschluss und die Reihenfolge von Transaktionen kontrollieren. Nach der Umstellung auf Proof-of-Stake über [Die Zusammenführung](/roadmap/merge) werden jedoch die Validierer für diese Rollen verantwortlich sein, und Mining wird nicht mehr möglich sein. Die Methoden der Wertextraktion werden auch nach dieser Umstellung fortbestehen, so dass eine Namensänderung erforderlich war. Um das gleiche Akronym der Kontinuität willen und gleichzeitig die gleiche grundlegende Bedeutung beizubehalten, wird jetzt der „maximal extrahierbare Wert" als umfassenderer Ersatz verwendet. - -## Voraussetzungen {#prerequisites} - -Stellen Sie sicher, dass Sie mit [Transaktionen](/developers/docs/transactions/), [Blöcken](/developers/docs/blocks/), [Gas](/developers/docs/gas/) und [Mining](/developers/docs/consensus-mechanisms/pow/mining/) vertraut sind. Eine Vertrautheit mit [dApps](/dapps/) und [DeFi](/defi/) ist ebenfalls hilfreich. - -## MEV-Extrahierung {#mev-extraction} - -Theoretisch kommt MEV ausschließlich den Minern zugute, da Miner die einzige Partei sind, welche die Ausführung einer profitablen MEV-Gelegenheit garantieren kann (zumindest in der aktuellen Proof-of-Work-Kette; dies wird sich nach [Die Zusammenführung](/roadmap/merge/) ändern). In der Praxis wird jedoch ein großer Teil des MEV von unabhängigen Netzwerkteilnehmern, den sogenannten „Suchenden", extrahiert Die Suchenden lassen komplexe Algorithmen auf Blockchain-Daten laufen, um profitable MEV-Möglichkeiten zu erkennen, und haben Bots, die diese profitablen Transaktionen automatisch an das Netzwerk übermitteln. - -Die Miner erhalten ohnehin einen Teil des vollen MEV-Betrags, weil die Suchenden bereit sind, hohe Gasgebühren zu zahlen (die an die Miner gehen), um im Gegenzug die Wahrscheinlichkeit zu erhöhen, dass ihre profitablen Transaktionen in einen Block aufgenommen werden. Unter der Annahme, dass die Suchenden ökonomisch rational handeln, wird die Gasgebühr, die ein Suchender zu zahlen bereit ist, bis zu 100 % seines MEV betragen (denn wenn die Gasgebühr höher wäre, würde der Suchende Geld verlieren). - -Bei einigen stark umkämpften MEV-Möglichkeiten wie [DEX-Arbitrage](#mev-examples-dex-arbitrage) müssen die Suchenden unter Umständen 90 % oder sogar mehr ihrer gesamten MEV-Einnahmen in Form von Gasgebühren an den Miner zahlen, weil so viele Leute denselben profitablen Arbitragehandel betreiben wollen. Denn nur wenn sie das Geschäft mit dem höchsten Gaspreis einreichen, ist gewährleistet, dass ihr Arbitragegeschäft zustande kommt. - -### Gas-Golfen {#mev-extraction-gas-golfing} - -Diese Dynamik hat dazu geführt, dass das „Gas Golfen" - also das Programmieren von Transaktionen so, dass sie möglichst wenig Gas verbrauchen - zu einem Wettbewerbsvorteil geworden ist, weil es den Suchenden ermöglicht, einen höheren Gaspreis festzulegen und gleichzeitig ihre gesamten Gasgebühren konstant zu halten (da Gasgebühren = Gaspreis \* verbrauchtes Gas). - -Einige bekannte Gas-Golf-Techniken sind: Verwenden von Adressen, die mit einer langen Reihe von Nullen beginnen (z. B. [0x0000000000C521824EaFf97Eac7B73B084ef9306](https://etherscan.io/address/0x0000000000c521824eaff97eac7b73b084ef9306)), da sie weniger Platz (und damit Gas) zum Speichern benötigen; und das Belassen kleiner [ERC-20](/developers/docs/standards/tokens/erc-20/)-Token-Guthaben in Verträgen, da es mehr Gas kostet, einen Speicher-Slot zu initialisieren (der Fall, wenn das Guthaben gleich 0 ist), als einen Speicherplatz zu aktualisieren. Die Suche nach weiteren Techniken zur Verringerung des Gasverbrauchs ist ein aktiver Research-Bereich unter den Forschern. - -### Generalisierte Vorläufer {#mev-extraction-generalized-frontrunners} - -Anstatt komplexe Algorithmen zu programmieren, um gewinnbringende MEV-Möglichkeiten zu erkennen, lassen einige Suchende generalisierte Vorläufer betreiben. Generalisierte Vorläufer sind Bots, die den Mempool beobachten, um profitable Transaktionen zu erkennen. Der Vorläufer kopiert den Code der potenziell profitablen Transaktion, ersetzt die Adressen durch die Adresse des Vorläufers und führt die Transaktion lokal aus, um zu überprüfen, ob die geänderte Transaktion zu einem Gewinn für die Adresse des Vorläufers führt. Wenn die Transaktion tatsächlich rentabel ist, reicht der Vorläufer die geänderte Transaktion mit der ersetzten Adresse und einem höheren Gaspreis ein als den der Original-Transaktion und erhält so den MEV des ursprünglichen Suchenden. - -### Flashbots {#mev-extraction-flashbots} - -Flashbots ist ein unabhängiges Projekt, das den Go-Ethereum-Client um einen Dienst erweitert, der es Suchenden ermöglicht, MEV-Transaktionen an Miner zu übermitteln, ohne sie dem öffentlichen Mempool zu offenzulegen. Dadurch wird verhindert, dass Transaktionen von allgemeinen Vorläufern ausgeführt werden. - -Zum jetzigen Zeitpunkt wird ein erheblicher Teil der MEV-Transaktionen über Flashbots abgewickelt, was bedeutet, dass allgemeine Vorläufer nicht mehr so effektiv sind wie früher. - -## MEV-Beispiele {#mev-examples} - -Der MEV taucht auf der Blockchain auf mehrere Arten auf. - -### DEX-Arbitrage {#mev-examples-dex-arbitrage} - -[Decentralized Exchange](/glossary/#dex) (DEX) Arbitrage ist die einfachste und bekannteste MEV-Möglichkeit. Infolgedessen ist sie auch die wettbewerbsfähigste. - -Das funktioniert so: Wenn zwei DEX einen Token zu zwei unterschiedlichen Preisen anbieten, kann jemand den Token auf dem DEX mit dem niedrigeren Preis kaufen und auf dem DEX mit dem höheren Preis in einer einzigen, atomaren Transaktion verkaufen. Dank der Mechanik der Blockchain ist dies eine echte, risikolose Arbitrage. - -[Hier ist ein Beispiel](https://etherscan.io/tx/0x5e1657ef0e9be9bc72efefe59a2528d0d730d478cfc9e6cdd09af9f997bb3ef4) einer profitablen Arbitrage-Transaktion, bei der ein Suchender 1.000 ETH in 1.045 ETH umwandelte, indem er die unterschiedlichen Preise des Paares ETH/DAI bei Uniswap ggü. Sushiswap ausnutzte. - -### Liquidationen {#mev-examples-liquidations} - -Eine weitere bekannte MEV-Möglichkeit sind Leihprotokoll-Liquidationen. - -Leihprotokolle wie Maker und Aave funktionieren, indem sie von den Nutzern verlangen, eine Art von Sicherheit zu hinterlegen (z.B. ETH). Die Nutzer können sich dann verschiedene Vermögenswerte und Token von anderen leihen, je nachdem, was sie brauchen (zum Beispiel können sie sich MKR leihen, wenn sie über einen Vorschlag der MakerDAO-Governance abstimmen wollen, oder SUSHI, wenn sie einen Teil der Handelsgebühren auf Sushiswap verdienen wollen), und zwar bis zu einem bestimmten Betrag ihrer hinterlegten Sicherheiten - zum Beispiel 30 % (der genaue Prozentsatz der Leihkraft wird durch das Protokoll festgelegt). Die Nutzer, von denen sie sich die anderen Token leihen, fungieren in diesem Fall als Verleiher. - -Da der Wert der Sicherheiten eines Kreditnehmers schwankt, ändert sich auch seine Kreditaufnahmefähigkeit. Wenn der Wert der geliehenen Vermögenswerte aufgrund von Marktschwankungen etwa 30 % des Wertes ihrer Sicherheiten übersteigt (auch hier wird der genaue Prozentsatz durch das Protokoll festgelegt), erlaubt das Protokoll in der Regel jedem, die Sicherheiten zu verwerten und die Kreditgeber sofort zu entschädigen (dies ist vergleichbar mit der Funktionsweise von [Margin Calls](https://www.investopedia.com/terms/m/margincall.asp) im traditionellen Finanzwesen). Im Falle einer Liquidation muss der Kreditnehmer in der Regel eine saftige Liquidationsgebühr zahlen, von der ein Teil an den Liquidator geht - hier kommt der MEV ins Spiel. - -Die Suchenden konkurrieren darum, die Blockchain-Daten so schnell wie möglich zu analysieren, um festzustellen, welche Kreditnehmer liquidiert werden können, und als Erste eine Liquidationstransaktion einzureichen und die Liquidationsgebühr für sich selbst zu kassieren. - -### Der Sandwich-Handel {#mev-examples-sandwich-trading} - -Der Sandwich-Handel ist eine weitere gängige Methode der MEV-Extraktion. - -Um ein Sandwich zu finden, wird ein Sucher den Mempool nach großen DEX-Geschäften beobachten. Nehmen wir zum Beispiel an, jemand möchte 10.000 UNI mit DAI auf Uniswap kaufen. Ein Handel dieser Größenordnung wird sich erheblich auf das UNI/DAI-Paar auswirken und den Kurs von UNI gegenüber DAI möglicherweise erheblich ansteigen lassen. - -Ein Sucher kann die ungefähre Preisauswirkung dieses großen Handels auf das Paar UNI/DAI berechnen und einen optimalen Kaufauftrag unmittelbar _vor_ dem großen Handel ausführen, indem er UNI billig kauft, und dann einen Verkaufsauftrag unmittelbar _nach_ dem großen Handel ausführen, indem er sie zu dem durch den großen Auftrag erzeugten höheren Preis verkauft. - -Sandwiching ist jedoch riskanter, da es nicht atomar (im Gegensatz zu DEX-Arbitrage, wie oben beschrieben) und anfällig für einen [Salmonellenangriff](https://github.com/Defi-Cartel/salmonella) ist. - -### NFT MEV {#mev-examples-nfts} - -MEV im NFT-Raum ist ein neu auftretendes Phänomen, das nicht unbedingt profitabel ist. - -Da NEU-Transaktionen jedoch auf derselben Blockchain stattfinden, die auch von allen anderen Ethereum-Transaktionen genutzt wird, können Suchende auch auf dem NFT-Markt ähnliche Techniken wie bei den traditionellen MEV-Möglichkeiten anwenden. - -Wenn es beispielsweise eine beliebte NFT-Abgabe gibt und ein Suchender eine bestimmte NFT oder eine Reihe von NFTs haben möchte, kann er eine Transaktion so programmieren, dass er der erste in der Schlange ist, um die NFT zu kaufen, oder er kann die gesamte Reihe von NFTs in einer einzigen Transaktion kaufen. Oder wenn ein NFT [fälschlicherweise zu einem niedrigen Preis](https://www.theblockcrypto.com/post/113546/mistake-sees-69000-cryptopunk-sold-for-less-than-a-cent) angeboten wird, kann ein Suchender anderen Käufern zuvorkommen und es billig ergattern. - -Ein prominentes Beispiel für NFT MEV entstand, als ein Sucher 7 Millionen Dollar ausgab, um [jeden einzelnen Cryptopunk zum Mindestpreis zu kaufen](https://etherscan.io/address/0x650dCdEB6ecF05aE3CAF30A70966E2F395d5E9E5). Ein Blockchain-Forscher [erläuterte auf Twitter](https://twitter.com/IvanBogatyy/status/1422232184493121538), wie der Käufer mit einem MEV-Anbieter zusammenarbeitete, um seinen Kauf geheim zu halten. - -### Der lange Schwanz {#mev-examples-long-tail} - -DEX-Arbitrage, Liquidationen und Sandwich-Trading sind allesamt sehr bekannte MEV-Möglichkeiten, die für neue Suchende wahrscheinlich nicht profitabel sein werden. Es gibt jedoch eine ganze Reihe weniger bekannter MEV-Möglichkeiten (NFT MEV ist wohl eine davon). - -Suchende, die gerade erst anfangen, können möglicherweise mehr Erfolg haben, wenn sie nach MEV in diesem längeren Schwanz suchen. Die [MEV-Jobbörse](https://github.com/flashbots/mev-job-board) von Flashbot listet einige neue Möglichkeiten auf. - -## Auswirkungen von MEV {#effects-of-mev} - -MEV ist nicht nur schlecht - es gibt sowohl positive als auch negative Folgen von MEV auf Ethereum. - -### Das Positive {#effects-of-mev-the-good} - -Viele DeFi-Projekte sind auf wirtschaftlich rationale Akteure angewiesen, um die Nützlichkeit und Stabilität ihrer Protokolle zu gewährleisten. DEX-Arbitrage stellt zum Beispiel sicher, dass die Nutzer die besten und korrektesten Preise für ihre Token erhalten, und Kreditprotokolle verlassen sich auf schnelle Liquidationen, wenn Kreditnehmer unter die Besicherungsquote fallen, um sicherzustellen, dass die Kreditgeber zurückbezahlt werden. - -Ohne rationale Suchende, die nach wirtschaftlichen Ineffizienzen suchen und diese beheben und die wirtschaftlichen Anreize der Protokolle nutzen, könnten DeFi-Protokolle und dApps im Allgemeinen nicht so robust sein, wie sie es heute sind. - -### Das Negative {#effects-of-mev-the-bad} - -Auf der Anwendungsebene führen einige Formen des MEV, wie der Sandwich-Handel, zu einer eindeutig schlechteren Erfahrung für die Nutzer. Nutzer, die sich in einem „Sandwich" befinden, müssen mit erhöhter Verzögerung und schlechterer Ausführung ihrer Geschäfte rechnen. - -Auf der Netzwerkebene führen verallgemeinerte Vorläufer und die von ihnen häufig durchgeführten Gaspreisauktionen (bei denen zwei oder mehr Vorläufer um die Aufnahme ihrer Transaktion in den nächsten Block konkurrieren, indem sie den Gaspreis ihrer eigenen Transaktionen schrittweise erhöhen) zu einer Überlastung des Netzwerks und hohen Gaspreisen für alle anderen, die versuchen, reguläre Transaktionen durchzuführen. - -Abgesehen von dem, was _innerhalb_ der Blöcke geschieht, kann MEV auch _zwischen_ den Blöcken schädliche Auswirkungen haben. Wenn der in einem Block verfügbare MEV die Standard-Blockbelohnung deutlich übersteigt, können Miner einen Anreiz haben, Blöcke zu reminen und den MEV für sich selbst einzunehmen, was zu einer Reorganisation der Blockchain und einer Instabilität des Konsenses führt. - -Diese Möglichkeit der Reorganisation der Blockchain wurde [bereits bei der Bitcoin-Blockchain](https://dl.acm.org/doi/10.1145/2976749.2978408) untersucht. Da sich die Bitcoin-Blockbelohnung halbiert und die Transaktionsgebühren einen immer größeren Teil der Blockbelohnung ausmachen, entstehen Situationen, in denen es für die Miner wirtschaftlich rational wird, auf die Belohnung des nächsten Blocks zu verzichten und stattdessen vergangene Blöcke mit höheren Gebühren zu bearbeiten. Mit dem Wachstum von MEV könnte die gleiche Situation bei Ethereum eintreten und die Integrität der Blockchain bedrohen. - -## Zustand der MEV {#state-of-mev} - -Die MEV-Förderung stieg Anfang 2021 sprunghaft an, was in den ersten Monaten des Jahres zu extrem hohen Gaspreisen führte. Das Auftauchen von Flashbots MEV-Relais hat die Effektivität von allgemeinen Vorläufern reduziert und die Gaspreisauktionen aus der Kette genommen, was die Gaspreise für normale Nutzer senkt. - -Während viele Suchende immer noch gutes Geld mit MEV verdienen, werden die Miner mit zunehmender Bekanntheit der Gelegenheiten und immer mehr Suchenden, die um dieselbe Gelegenheit konkurrieren, immer mehr MEV-Einnahmen erzielen (weil die gleiche Art von Gasauktionen, wie sie oben beschrieben wurden, auch in Flashbots stattfinden, wenn auch auf privater Basis, und die Miner die daraus resultierenden Gaseinnahmen erzielen). MEV gibt es auch nicht nur bei Ethereum, und da die Möglichkeiten bei Ethereum immer wettbewerbsfähiger werden, weichen die Suchenden auf andere Blockchains wie Binance Smart Chain aus, wo ähnliche MEV-Möglichkeiten wie bei Ethereum bestehen, aber weniger Wettbewerb herrscht. - -Mit dem Wachstum und der zunehmenden Beliebtheit von DeFi könnte MEV schon bald die Basisbelohnung eines Ethereum-Blocks deutlich übertreffen. Damit wächst die Möglichkeit, dass egoistische Blöcke zurückbleiben und der Konsens instabil wird. Einige sehen darin eine existenzielle Bedrohung für Ethereum, und die Abschreckung von egoistischem Mining ist ein aktives Forschungsgebiet in der Ethereum-Protokolltheorie. Eine Lösung, die derzeit untersucht wird, ist [MEV-Reward-Smoothing](https://ethresear.ch/t/committee-driven-mev-smoothing/10408). - -## Zugehörige Ressourcen {#related-resources} - -- [Flashbots GitHub](https://github.com/flashbots/pm) -- [MEV-Explore](https://explore.flashbots.net/) _Dashboard und Live-Transaktions-Explorer für MEV-Transaktionen_ - -## Weiterführende Informationen {#further-reading} - -- [Was ist Miner-Extractable Value (MEV)?](https://blog.chain.link/what-is-miner-extractable-value-mev/) -- [MEV und ich](https://research.paradigm.xyz/MEV) -- [Ethereum ist ein dunkler Wald](https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest/) -- [Flucht aus dem dunklen Wald](https://samczsun.com/escaping-the-dark-forest/) -- [Flashbots: Vorläufer in der MEV-Krise](https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752) -- [@bertcmillers MEV-Themen](https://twitter.com/bertcmiller/status/1402665992422047747) diff --git a/src/content/translations/de/developers/docs/nodes-and-clients/client-diversity/index.md b/src/content/translations/de/developers/docs/nodes-and-clients/client-diversity/index.md deleted file mode 100644 index 9dd6b3ba85b..00000000000 --- a/src/content/translations/de/developers/docs/nodes-and-clients/client-diversity/index.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -title: Client-Diversität -description: Eine ausführliche Erklärung über die Bedeutung der Client-Vielfalt für Ethereum. -lang: de -sidebarDepth: 2 ---- - -Das Verhalten eines Ethereum-Knotens wird durch die von ihm ausgeführte Client-Software gesteuert. Es gibt mehrere Ethereum-Clients auf Produktionsebene, die jeweils von verschiedenen Teams in verschiedenen Sprachen entwickelt und gepflegt werden. Die Clients werden nach einer gemeinsamen Spezifikation aufgebaut, die sicherstellt, dass die Clients nahtlos miteinander kommunizieren und die gleiche Funktionalität haben sowie ein gleichwertiges Nutzererlebnis bieten. Im Moment jedoch ist die Verteilung von Clients auf Knotenpunkte nicht gleich genug, um diese Netzwerkbefestigung auf sein volles Potenzial zu realisieren. Idealerweise teilen sich Nutzer ungefähr gleich über die verschiedenen Clients hinweg und bringen so viel Client-Vielfalt wie möglich ins Netzwerk. - -## Voraussetzungen {#prerequisites} - -Wenn Sie noch nicht wissen, was Nodes und Clients sind, lesen Sie [Nodes und Clients](/developers/docs/nodes-and-clients/). [Ausführungs-](/glossary/#execution-layer) und [Konsensebenen](/glossary/#consensus-layer) sind im Glossar definiert. - -## Warum gibt es mehrere Clients? {#why-multiple-clients} - -Es gibt mehrere, unabhängig voneinander entwickelte und gewartete Clients, weil die Client-Vielfalt das Netzwerk widerstandsfähiger gegen Angriffe und Fehler macht. Mehrere Clients sind die einzigartige Stärke von Ethereum – andere Blockchains verlassen sich auf die Unfehlbarkeit eines einzigen Clients. Es reicht jedoch nicht aus, einfach mehrere Clients zur Verfügung zu haben, sie müssen von der Community angenommen werden und die Anzahl der aktiven Knoten muss relativ gleichmäßig auf sie verteilt sein. - -## Warum ist die Client-Vielfalt wichtig? {#client-diversity-importance} - -Viele unabhängig voneinander entwickelte und gewartete Clients sind für die Sicherheit eines dezentralen Netzwerks unerlässlich. Lassen Sie uns die Gründe dafür untersuchen. - -### Fehler {#bugs} - -Ein Fehler in einem einzelnen Client stellt ein geringeres Risiko für das Netzwerk dar, wenn er nur eine Minderheit der Ethereum-Knoten repräsentiert. Bei einer annähernd gleichmäßigen Verteilung der Knoten auf viele Clients ist die Wahrscheinlichkeit, dass die meisten Clients von einem gemeinsamen Problem betroffen sind, gering. Das Netzwerk ist daher robuster. - -### Verteidigung gegen Angriffe {#resilience} - -Die Client-Vielfalt bietet auch eine gewisse Widerstandsfähigkeit gegen Angriffe. Ein Angriff, bei dem [ein bestimmter Client in einen bestimmten Bereich der Chain gelockt wird](https://twitter.com/vdWijden/status/1437712249926393858), dürfte zum Besipiel kaum erfolgreich sein, da andere Clients wahrscheinlich nicht auf die gleiche Weise ausgenutzt werden können und die kanonische Chain nicht beschädigt wird. Eine geringe Client-Vielfalt erhöht das Risiko, das mit einem Hack auf den dominanten Client verbunden ist. Die Client-Vielfalt hat sich bereits als wichtiger Schutz gegen böswillige Angriffe auf das Netzwerk erwiesen. So war beispielsweise der Denial-of-Service-Angriff von Shanghai im Jahr 2016 möglich, weil es den Angreifern gelang, den dominanten Client (Geth) dazu zu bringen, einen „Slow Disk I/O-Vorgang“ zehntausende Male pro Block auszuführen. Da auch alternative Clients online waren, die diese Schwachstelle nicht aufwiesen, konnte Ethereum dem Angriff widerstehen und weiterarbeiten, während die Schwachstelle in Geth behoben wurde. - -### Finalität von Proof-of-stake {#finality} - -Ein Fehler in einem Konsensclient mit mehr als 33 % der Ethereum-Knoten könnte verhindern, dass die Konsensebene finalisieren kann. Das bedeutet, dass die Nutzer nicht darauf vertrauen können, dass Transaktionen nicht irgendwann rückgängig gemacht oder geändert werden. Dies wäre für viele der auf Ethereum aufbauenden Anwendungen, insbesondere DeFi, sehr problematisch. - - Schlimmer noch, ein kritischer Fehler in einem Client mit einer Zweidrittelmehrheit könnte dazu führen, dass die Chain nicht korrekt geteilt und finalisiert wird. Dies wiederum würde dazu führen, dass eine große Anzahl von Validatoren auf einer ungültigen Chain stecken bleibt. Wenn sie sich der korrekten Chain wieder anschließen möchten, müssen diese Validatoren mit Slashing oder einem langsamen und teuren freiwilligen Rückzug und Reaktivierung rechnen. Das Ausmaß eines Slashings skaliert mit der Anzahl der schuldigen Knoten, wobei maximal eine Zweidrittelmehrheit geslashed werden kann (32 ETH). - -Obwohl dies unwahrscheinliche Szenarien sind, kann das Ethereum-Ökosystem das Risiko mindern, indem es die Verteilung der Clients auf die aktiven Knoten ausgleicht. Im Idealfall würde kein Konsensclient jemals einen Anteil von 33 % an der Gesamtzahl der Nodes erreichen. - -### Gemeinsame Verantwortung {#responsibility} - -Bei Mehrheitsclients fallen außerdem Personalkosten an. Ein kleines Entwicklungsteam wird dadurch stärker belastet und trägt mehr Verantwortung. Je geringer die Client-Vielfalt ist, desto größer ist die Last der Verantwortung für die Entwickler, die den Mehrheitsclient pflegen. Die Verteilung dieser Verantwortung auf mehrere Teams ist vorteilhaft für die Sicherheit des Knoten-Netzwerks und für das Personalnetzwerk von Ethereum. - -## Aktuelle Client-Vielfalt {#current-client-diversity} - -![Ein Tortendiagramm, das die Client-Vielfalt zeigt](./client-diversity.png) _Diagramm-Daten von [ethernodes.org](https://ethernodes.org) und [clientdiversity.org](https://clientdiversity.org/)_ - -Die beiden Tortendiagramme oben zeigen Momentaufnahmen der aktuellen Client-Vielfalt für die Ausführungs- und die Konsensschicht (zum Zeitpunkt der Erstellung im Januar 2022). Die Ausführungsebene wird überwiegend von [Geth](https://geth.ethereum.org/) dominiert, mit [Open Ethereum](https://openethereum.github.io/) an zweiter mit weitem Abstand, [Erigon](https://github.com/ledgerwatch/erigon) an dritter und [Nethermind](https://nethermind.io/) an vierter Stelle, wobei andere Clients weniger als 1 % des Netzwerks ausmachen. Der am häufigsten verwendete Client auf der Konsensschicht - [Prysm](https://prysmaticlabs.com/#projects) - ist nicht so dominant wie Geth, macht aber immer noch über 60 % des Netzwerks aus. [Lighthouse](https://lighthouse.sigmaprime.io/) und [Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) machen ca. 20 % bzw. ca. 14 % aus. Andere Clients werden nur selten verwendet. - -Die Daten der Ausführungsebene wurden am 23.01.2022 von [Ethernodes](https://ethernodes.org) bezogen. Die Daten für Konsensclients stammen von [Michael Sproul](https://github.com/sigp/blockprint). Die Daten der Konsensclients sind schwieriger zu beschaffen, da die Clients der Konsensschicht nicht immer eindeutige Spuren hinterlassen, anhand derer sie identifiziert werden können. Die Daten wurden mit einem Klassifizierungsalgorithmus generiert, der manchmal einige der Minderheitenclients vertauscht (siehe [hier](https://twitter.com/sproulM_/status/1440512518242197516) für weitere Einzelheiten). Im obigen Diagramm werden diese mehrdeutigen Klassifizierungen mit einem Entweder-Oder-Label behandelt (z. B. Nimbus/Teku). Nichtsdestotrotz ist es klar, dass die Mehrheit des Netzwerks Prysm verwendet. Bei den Daten handelt es sich um eine Momentaufnahme über einen festen Satz von Blöcken (in diesem Fall Beacon-Blöcke in den Slots 2048001 bis 2164916), und die Dominanz von Prysm war zeitweise höher, über 68 %. Obwohl es sich nur um Momentaufnahmen handelt, vermitteln die Werte im Diagramm einen guten allgemeinen Eindruck vom aktuellen Stand der Client-Vielfalt. - -Aktuelle Daten zur Client-Vielfalt für die Konsensebene sind jetzt unter [clientdiversity.org](https://clientdiversity.org/) verfügbar. - -## Ausführungsebene {#execution-layer} - -Bisher hat sich die Diskussion über die Client-Vielfalt hauptsächlich auf die Konsensschicht konzentriert. Auf den Ausführungsclient [Geth](https://geth.ethereum.org) entfallen jedoch derzeit rund 85 % aller Knoten. Dieser Prozentsatz ist aus denselben Gründen problematisch wie bei den Konsensclients. Zum Beispiel könnte ein Fehler in Geth, der die Transaktionsabwicklung oder die Konstruktion der Ausführungsnutzlast betrifft, dazu führen, dass Konsensclients problematische oder fehlerhafte Transaktionen abschließen. Daher wäre Ethereum sicherer mit einer gleichmäßigeren Verteilung der Ausführungsclients, idealerweise mit keinem Client, der mehr als 33 % des Netzwerks repräsentiert. - -## Verwenden eines Minderheitenclients {#use-minority-client} - -Um die Client-Vielfalt zu verbessern, müssen nicht nur einzelne Nutzer Minderheitenclients wählen, sondern auch Mining-/Validatoren-Pools und Institutionen wie die großen dApps und Börsen, um ihre Clients zu wechseln. Allerdings können alle Nutzer ihren Teil dazu beitragen, das derzeitige Ungleichgewicht auszugleichen und die Nutzung der gesamten verfügbaren Ethereum-Software zu forcieren. Nach der Zusammenführung müssen alle Knotenbetreiber einen Ausführungsclient und einen Konsensclient betreiben. Die Wahl von Kombinationen der unten vorgeschlagenen Clients wird dazu beitragen, die Client-Vielfalt zu erhöhen. - -### Ausführungs-Clients {#execution-clients} - -[Besu](https://www.hyperledger.org/use/besu) - -[Nethermind](https://downloads.nethermind.io/) - -[Erigon](https://github.com/ledgerwatch/erigon) - -[Go-Ethereum](https://geth.ethereum.org/) - -### Konsens-Clients {#consensus-clients} - -[Nimbus](https://nimbus.team/) - -[Lighthouse](https://github.com/sigp/lighthouse) - -[Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) - -[Lodestar](https://github.com/ChainSafe/lodestar) - -[Prysm](https://docs.prylabs.network/docs/getting-started) - -Technisch versierte Nutzer können dazu beitragen, diesen Prozess zu beschleunigen, indem sie mehr Anleitungen und Dokumentationen für Minderheitenclients schreiben und ihre Kollegen, die Knoten betreiben, ermutigen, von den dominanten Clients wegzugehen. Anleitungen für den Wechsel zu einem Minderheitskonsensclient finden Sie auf [clientdiversity.org](https://clientdiversity.org/). - -## Dashboards für Client-Vielfalt {#client-diversity-dashboards} - -Verschiedene Dashboards geben Echtzeit-Statistiken zur Client-Vielfalt für die Ausführungs- und Konsensebene. - -**Konsensebene:** - -- [Rated.network](https://www.rated.network/) -- [clientdiversity.org](https://clientdiversity.org/) **Ausführungsebene:** - -- [execution-diversity.info](https://execution-diversity.info/) -- [Ethernodes](https://ethernodes.org/) - -## Weiterführende Informationen {#further-reading} - -- [Client-Vielfalt auf der Konsensebene von Ethereum](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) -- [Ethereum-Zusammenführung: Führen Sie den Mehrheitsclient auf eigene Gefahr aus!](https://dankradfeist.de/ethereum/2022/03/24/run-the-majority-client-at-your-own-peril.html) – _Dankrad Fiest, 24. März 2022_ -- [Bedeutung der Client-Vielfalt](https://our.status.im/the-importance-of-client-diversity/) -- [Liste der Ethereum-Knotendienste](https://ethereumnodes.com/) -- [Die „Fünf Gründe“ für das Problem der Client-Vielfalt](https://notes.ethereum.org/@afhGjrKfTKmksTOtqhB9RQ/BJGj7uh08) -- [Ethereum-Vielfalt und wie man sie löst (YouTube)](https://www.youtube.com/watch?v=1hZgCaiqwfU) -- [clientdiversity.org](https://clientdiversity.org/) - -## Verwandte Themen {#related-topics} - -- [Einen Ethereum-Knoten betreiben](/run-a-node/) -- [Knotenpunkte und Clients](/developers/docs/nodes-and-clients/) diff --git a/src/content/translations/de/developers/docs/smart-contracts/anatomy/index.md b/src/content/translations/de/developers/docs/smart-contracts/anatomy/index.md deleted file mode 100644 index 5ab14209e58..00000000000 --- a/src/content/translations/de/developers/docs/smart-contracts/anatomy/index.md +++ /dev/null @@ -1,658 +0,0 @@ ---- -title: Anatomie von Smart Contracts -description: "Ein tiefgreifender Einblick in die Anatomie eines Smart Contracts: Funktionen, Daten und Variablen" -lang: de ---- - -Ein Smart Contract ist ein Programm, das auf einer Adresse auf Ethereum läuft. Ein solcher Vertrag besteht aus Daten und Funktionen, die nach dem Erhalt einer Transaktion ausgeführt werden können. Hier ein Überblick darüber, was einen Smart Contract ausmacht. - -### Voraussetzungen {#prerequisites} - -Sie sollten sich bereits mit [Smart Contracts](/developers/docs/smart-contracts/) vertraut gemacht haben. Die Informationen in diesem Dokument sind für Personen gedacht, die bereits mit Programmiersprachen wie JavaScript oder Python vertraut sind. - -## Daten {#data} - -Alle Vertragsdaten müssen einem Ort zugewiesen werden: entweder zu `storage` oder `memory`. Speicher in einem Smart Contract zu ändern ist ein kostenintensiver Prozess. Daher sollten Sie sich überlegen, wo Ihre Daten gespeichert werden sollen. - -### Speicher {#storage} - -Gleichbleibende Daten werden als Speicher oder Storage bezeichnet und über Zustandsvariablen dargestellt. Solche Daten werden dauerhaft auf der Blockchain gespeichert. Sie müssen den Typ deklarieren, damit der Contract beim Kompilieren verfolgen kann, wie viel Speicherplatz er auf der Blockchain benötigt. - -```solidity -// Solidity example -contract SimpleStorage { - uint storedData; // State variable - // ... -} -``` - -```python -# Vyper example -storedData: int128 -``` - -Wenn Sie bereits Erfahrung im Programmieren in objektorientierten Sprachen haben, werden Sie wahrscheinlich mit den meisten Typen vertraut sein. Allerdings sollte `address` neu für Sie sein, wenn Sie noch keine Erfahrung in der Ethereum-Entwicklung haben. - -Ein `adress`-Typ kann eine Ethereum-Adresse aufnehmen, was 20 Byte oder 160 Bit entspricht. Die Ausgabe erfolgt in hexadezimaler Schreibweise mit einem führenden 0x. - -Andere Typen umfassen: - -- boolesch -- Ganzzahl -- Festkommazahlen -- Byte-Arrays mit fester Größe -- Byte-Arrays mit dynamischer Größe -- Rationale und ganzzahlige Literale -- Zeichenfolgenliterale -- Hexadezimale Literale -- Enumerationen - -Weitere Erklärungen finden Sie in folgender Dokumentation: - -- [Vyper-Typen anzeigen](https://vyper.readthedocs.io/en/v0.1.0-beta.6/types.html#value-types) -- [Solidity-Typen anzeigen](https://solidity.readthedocs.io/en/latest/types.html#value-types) - -### Speicher {#memory} - -Werte, die nur für die Lebensdauer der Ausführung einer Vertragsfunktion gespeichert werden, werden als Memory Variables (Speichervariablen) bezeichnet. Da diese nicht dauerhaft auf der Blockchain gespeichert werden, sind sie wesentlich preiswerter. - -Erfahren Sie mehr darüber, wie die EVM Daten speichert (Aufbewahrung, Speicher und Stack), in den [Solidity-Dokumenten](https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html?highlight=memory#storage-memory-and-the-stack). - -### Umgebungsvariablen {#environment-variables} - -Zusätzlich zu den Variablen, die Sie in Ihrem Vertrag definieren, gibt es einige spezielle globale Variablen. Sie werden in erster Linie verwendet, um Informationen über die Blockchain oder aktuelle Transaktion bereitzustellen. - -Beispiele: - -| **Eigenschaft** | **Statusvariable** | **Beschreibung** | -| ----------------- | ------------------ | ----------------------------------------- | -| `block.timestamp` | uint256 | Aktueller Zeitstempel der Block-Epoche | -| `msg.sender` | address | Absender der Nachricht (aktueller Aufruf) | - -## Funktionen {#functions} - -Vereinfacht gesagt können Funktionen als Antwort auf eingehende Transaktionen Informationen erhalten oder festlegen. - -Es gibt zwei Arten von Functionsaufrufen: - -- `internal` – diese erstellen keinen EVM-Aufruf - - Auf interne Funktionen und Zustandsvariablen kann nur intern zugegriffen werden (d. h. innerhalb des aktuellen Vertrags oder von ihm abgeleiteter Verträge). -- `external` – diese erzeugen einen EVM-Aufruf - - Externe Funktionen sind Teil der Vertragsschnittstelle. Das bedeutet, dass sie aus anderen Verträgen und über Transaktionen aufgerufen werden können. Eine externe Funktion `f` kann nicht intern aufgerufen werden (z. B. `f()` funktioniert nicht, aber `this.f()` funktioniert). - -Sie können auch `public` oder `private` sein - -- `public`-Funktionen können intern aus dem Vertrag oder extern über Nachrichten aufgerufen werden. -- `private`-Funktionen sind nur für den Vertrag sichtbar, in dem sie definiert sind, und nicht in abgeleiteten Verträgen. - -Sowohl Funktionen als auch Statusvariablen können öffentlich oder privat gemacht werden. - -Hier ist eine Funktion zum Aktualisieren einer Zustandsvariable für einen Smart Contract: - -```solidity -// Solidity example -function update_name(string value) public { - dapp_name = value; -} -``` - -- Der Parameter `value` des Typs `string` wird an die Funktion `update_name` übergeben. -- Es wird `public` deklariert. Das bedeutet, dass jeder darauf zugreifen kann. -- `view` wird nicht deklariert, damit eine Änderung des Vertragsstatus möglich ist. - -### View-Funktionen {#view-functions} - -Diese Funktionen verpflichten sich, den Zustand der Vertragsdaten nicht zu ändern. Gängige Beispiele sind "Getter"-Funktionen, mit denen Sie z. B. den Kontostand eines Benutzers abfragen können. - -```solidity -// Solidity example -function balanceOf(address _owner) public view returns (uint256 _balance) { - return ownerPizzaCount[_owner]; -} -``` - -```python -dappName: public(string) - -@view -@public -def readName() -> string: - return dappName -``` - -Folgende Vorgänge werden als Modifikation des Zustands angesehen: - -1. In Zustandsvariablen schreiben -2. [Ereignisse ausgeben](https://solidity.readthedocs.io/en/v0.7.0/contracts.html#events) -3. [Weitere Verträge erstellen](https://solidity.readthedocs.io/en/v0.7.0/control-structures.html#creating-contracts) -4. `selfdestruct` verwenden -5. Ether über Aufrufe senden -6. Eine Funktion aufrufen, die nicht mit `view` oder `pure` markiert ist -7. Low-Level-Aufrufe verwenden -8. Inline-Assembly verwenden, die bestimmte Opcodes enthält - -### Konstruktorfunktionen {#constructor-functions} - -`constructor`-Funktionen werden nur einmal ausgeführt, wenn der Vertrag in die Blockchain integriert wird. In vielen klassenbasierten Programmiersprachen initialisieren diese Funktionen wie `constructor` oft Zustandsvariablen auf ihre angegebenen Werte. - -```solidity -// Solidity example -// Initializes the contract's data, setting the `owner` -// to the address of the contract creator. -constructor() public { - // All smart contracts rely on external transactions to trigger its functions. - // `msg` is a global variable that includes relevant data on the given transaction, - // such as the address of the sender and the ETH value included in the transaction. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties - owner = msg.sender; -} -``` - -```python -# Vyper example - -@external -def __init__(_beneficiary: address, _bidding_time: uint256): - self.beneficiary = _beneficiary - self.auctionStart = block.timestamp - self.auctionEnd = self.auctionStart + _bidding_time -``` - -### Integrierte Funktionen {#built-in-functions} - -Zusätzlich zu den Variablen, die Sie in Ihrem Vertrag definieren, gibt es einige spezielle integrierte Funktionen. Das offensichtlichste Beispiel ist: - -- `address.send()` – Solidity -- `send(address)` – Vyper - -Diese erlauben es Smart Contracts, ETH an andere Konten zu senden. - -## Funktionen entwickeln {#writing-functions} - -Ihre Funktion benötigt folgende Elemente: - -- Parametervariable und -typ (wenn Parameter akzeptiert werden) -- interne/externe Deklaration -- Deklaration von pure/view/payable -- Gibt den Typ zurück (wenn er einen Wert zurückgibt) - -```solidity -pragma solidity >=0.4.0 <=0.6.0; - -contract ExampleDapp { - string dapp_name; // Zustandsvariable - - // Wird aufgerufen, wenn der Vertrag bereitgestellt wird und initialisiert den Wert - constructor() public { - dapp_name = "Meine Beispiel-Dapp"; - } - - // Funktion holen - function read_name() public view returns(string) { - return dapp_name; - } - - // Funktion setzen - function update_name(string value) public { - dapp_name = value; - } -} -``` - -Ein vollständiger Smart Contract könnte so aussehen. Hier stellt die `constructor`-Funktion einen Anfangswert für die `dapp_name` -Variable bereit. - -## Ereignisse und Protokolle {#events-and-logs} - -Ereignisse ermöglichen Ihnen die Kommunikation mit Ihrem Smart Contract von Ihrem Frontend oder anderen verbundenen Anwendungen aus. Wenn eine Transaktion verifiziert wird, können Smart Contracts Events emittieren und Protokolle in die Blockchain schreiben, die das Frontend dann verarbeiten kann. - -## Kommentierte Beispiele {#annotated-examples} - -Das sind einige Beispiele in Solidity. Wenn Sie mit dem Code spielen möchten, können Sie mit ihm in [Remix](http://remix.ethereum.org) interagieren. - -### Hallo Welt {#hello-world} - -```solidity -// Bestimmt die Version von Solidity mit semantischer Versionierung. -// Learn more: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma -pragma solidity ^0.5.10; - -// Defines a contract named `HelloWorld`. -// Ein Smart contract ist eine Sammlung von Funktionen und Daten (sein Zustand). -// Einmal in die Blockchain integriert, befindet sich ein Contract an einer bestimmten Adresse der Ethereum-Blockchain. -// Erfahre mehr: https://solidity.readthedocs.io/de/v0.5.10/structure-of-a-contract.html -contract HelloWorld { - - // Deklariert eine Zustandsvariable `message` vom Typ `string`. - // Zustandsvariablen sind Variablen, deren Werte dauerhaft im Vertragsspeicher hinterlegt werden. - // Das Schlüsselwort `public` macht Variablen von außerhalb eines Contracts - // zugänglich und erzeugt eine Funktion, die andere Contracts oder Clients aufrufen können, um auf den Wert zuzugreifen. - string public message; - - // Ähnlich wie viele Klassen-basierte objektorientierte Sprachen, ist ein Konstruktor - // eine spezielle Funktion, die nur bei der Vertragserstellung ausgeführt wird. - // Konstruktoren werden verwendet, um die Vertragsdaten zu initialisieren. - // Erfahre mehr: https://solidity.readthedocs.io/de/v0.5.10/contracts. tml#constructors - constructor(string memory initMessage) public { - // Akzeptiert ein String Argument `initMessage` und setzt den Wert - // in die `message` Speichervariable des Contracts). - message = initMessage; - } - - // Eine öffentliche Funktion, die ein String-Argument akzeptiert - // und die Speichervariable `message` aktualisiert. - function update(string memory newMessage) public { - message = newMessage; - } -} -``` - -### Token {#token} - -```solidity -pragma solidity ^0.5.10; - -contract Token { - // Eine `Adresse` ist mit einer E-Mail-Adresse vergleichbar - sie wird verwendet, um ein Konto auf Ethereum zu identifizieren. - // Adressen können einen Smart Contract oder ein externes (Benutzer) Konto darstellen. - // Erfahre mehr: https://solidity.readthedocs.io/en/v0.5.10/types.html#address - address public owner; - - // Ein `mapping` ist im Wesentlichen eine Hashtabellen-Datenstruktur. - // Dieses `mapping` weist einer Adresse (dem Token-Halter) ein nicht signiertes Integer (dem Token-Halter) zu. - // Erfahre mehr: https://solidity.readthedocs.io/en/v0.5.10/types.html#mapping-types - mapping (address => uint) public balances; - - // Events ermöglichen die Protokollierung von Aktivitäten auf der Blockchain. - // Ethereum Clients können auf Events hören, um auf Änderungen des Contract-Zustands zu reagieren. - // Erfahre mehr: https://solidity.readthedocs.io/de/v0.5.10/contracts. tml#Events - event Transfer(address from, address to, uint amount); - - // Initialisiert die Vertragsdaten und setzt den `owner` - // auf die Adresse des Contract-Erstellers. - constructor() public { - // Alle Smart Contracts benötigen externe Transaktionen, um Funktionen auszuführen. - // `msg` ist eine globale Variable, die relevante Daten der gegebenen Transaktion enthält, - // wie die Adresse des Senders und der in der Transaktion enthaltene ETH Wert. - // Mehr erfahren: https://solidity.readthedocs.io/de/v0.5.10/units-and-global-variables.html#block-and-transaction-properties - owner = msg.sender; - } - - // Erstellt eine Menge neuer Tokens und sendet sie an eine Adresse. - function mint(address receiver, uint amount) public { - // `require` ist eine Kontrollstruktur, die benutzt wird, um bestimmte Bedingungen zu erzwingen. - // Wenn eine `require` Anweisung zu `false` auswertet, wird eine Ausnahme ausgelöst, - // welche alle Änderungen am Status während des aktuellen Aufrufs rückgängig macht. - // Erfahren Sie mehr: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions - - // Nur der Vertragsinhaber kann diese Funktion aufrufen - require(msg.sender == owner, "Sie sind nicht der Besitzer."); - - // Erzwingt eine maximale Menge an Token - require(amount < 1e60, "Maximale Ausgabe überschritten"); - - // Erhöht den Saldo von `Empfänger` um `Betrag`. - balances[receiver] += amount; - } - - // Sendet eine Menge vorhandener Token von einem beliebigen Anrufer an eine Adresse. - function transfer(address receiver, uint amount) public { - // Der Absender muss genug Token zum Senden besitzen - require(amount <= balances[msg.sender], "Insufficient balance."); - - // Tokensalden der beiden Adressen anpassen - balances[msg.sender] -= amount; - balances[receiver] += amount; - - // Sendet das zuvor definierte Event aus - emit Transfer(msg.sender, receiver, amount); - } -} -``` - -### Einzigartiges digitales Asset {#unique-digital-asset} - -```solidity -pragma solidity ^0.5.10; - -// Importiert Symbole aus anderen Dateien in den aktuellen Contract. -// In diesem Fall eine Reihe von Hilfsverträgen von OpenZeppelin. -// Erfahre mehr: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#importing-other-source-files - -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver. ol"; -import "../node_modules/@openzeppelin/contracts/introspection/ERC165.sol"; -import "../node_modules/@openzeppelin/contracts/math/SafeMath.sol"; - -// Das Schlüsselwort `is` wird verwendet, um Funktionen und Schlüsselwörter aus externen Smart Contracts zu erben. -// In diesem Fall erbt `CryptoPizza` von den `IERC721` und `ERC165` Contracts. -// Erfahre mehr: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#inheritance -contract CryptoPizza is IERC721, ERC165 { - // Verwendet OpenZeppelins SafeMath Bibliothek, um arithmetische Operationen sicher durchzuführen. - // Erfahre mehr: https://docs.openzeppelin.com/contracts/2. /api/math#SafeMath - using SafeMath for uint256; - - // Konstante Zustandsvariablen in Solidity sind vergleichbar mit anderen Sprachen - // du musst jedoch voneiner Expression zuweisen, die beim Kompilieren konstant ist. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constant-state-variables - uint256 constant dnaDigits = 10; - uint256 constant dnaModulus = 10 ** dnaDigits; - bytes4 private constant _ERC721_RECEIVED = 0x150b7a02; - - // Struct types let you define your own type - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#structs - struct Pizza { - string name; - uint256 dna; - } - - // Creates an empty array of Pizza structs - Pizza[] public pizzas; - - // Mapping from pizza ID to its owner's address - mapping(uint256 => address) public pizzaToOwner; - - // Mapping from owner's address to number of owned token - mapping(address => uint256) public ownerPizzaCount; - - // Mapping from token ID to approved address - mapping(uint256 => address) pizzaApprovals; - - // You can nest mappings, this example maps owner to operator approvals - mapping(address => mapping(address => bool)) private operatorApprovals; - - // Internal function to create a random Pizza from string (name) and DNA - function _createPizza(string memory _name, uint256 _dna) - // The `internal` keyword means this function is only visible - // within this contract and contracts that derive this contract - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#visibility-and-getters - internal - // `isUnique` is a function modifier that checks if the pizza already exists - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html#function-modifiers - isUnique(_name, _dna) - { - // Adds Pizza to array of Pizzas and get id - uint256 id = SafeMath.sub(pizzas.push(Pizza(_name, _dna)), 1); - - // Checks that Pizza owner is the same as current user - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions - - // note that address(0) is the zero address, - // indicating that pizza[id] is not yet allocated to a particular user. - - assert(pizzaToOwner[id] == address(0)); - - // Maps the Pizza to the owner - pizzaToOwner[id] = msg.sender; - ownerPizzaCount[msg.sender] = SafeMath.add( - ownerPizzaCount[msg.sender], - 1 - ); - } - - // Creates a random Pizza from string (name) - function createRandomPizza(string memory _name) public { - uint256 randDna = generateRandomDna(_name, msg.sender); - _createPizza(_name, randDna); - } - - // Generates random DNA from string (name) and address of the owner (creator) - function generateRandomDna(string memory _str, address _owner) - public - // Functions marked as `pure` promise not to read from or modify the state - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#pure-functions - pure - returns (uint256) - { - // Generates random uint from string (name) + address (owner) - uint256 rand = uint256(keccak256(abi.encodePacked(_str))) + - uint256(_owner); - rand = rand % dnaModulus; - return rand; - } - - // Returns array of Pizzas found by owner - function getPizzasByOwner(address _owner) - public - // Functions marked as `view` promise not to modify state - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#view-functions - view - returns (uint256[] memory) - { - // Uses the `memory` storage location to store values only for the - // lifecycle of this function call. - // Erfahre mehr: https://solidity.readthedocs.io/en/v0.5.10/introduction-to-smart-contracts.html#storage-memory-and-the-stack - uint256[] memory result = new uint256[](ownerPizzaCount[_owner]); - uint256 counter = 0; - for (uint256 i = 0; i < pizzas.length; i++) { - if (pizzaToOwner[i] == _owner) { - result[counter] = i; - counter++; - } - } - return result; - } - - // Transferiert Pizza und deren Besitzanspruch auf eine andere Adresse - function transferFrom(address _from, address _to, uint256 _pizzaId) public { - require(_from != address(0) && _to != address(0), "Invalid address."); - require(_exists(_pizzaId), "Pizza does not exist."); - require(_from != _to, "Cannot transfer to the same address."); - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - - ownerPizzaCount[_to] = SafeMath.add(ownerPizzaCount[_to], 1); - ownerPizzaCount[_from] = SafeMath.sub(ownerPizzaCount[_from], 1); - pizzaToOwner[_pizzaId] = _to; - - // Gibt ein Event aus, dass in dem importierten IERC721 Contract definiert ist - emit Transfer(_from, _to, _pizzaId); - _clearApproval(_to, _pizzaId); - } - - /** - * Übergibt auf sichere Weise den Besitzanspruch von gegebener Token ID an eine andere Adresse - * Wenn die Zieladresse ein Contract ist, muss dieser `onERC721Received` implementieren, - * was bei einem sicheren Transfer aufgerufen wird und den magischen Wert zurückgibt: - * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; - * ansonsten, wird die Transaktion abgewiesen. - */ - function safeTransferFrom(address from, address to, uint256 pizzaId) - public - { - // solium-disable-next-line arg-overflow - this.safeTransferFrom(from, to, pizzaId, ""); - } - - /** - * Übergibt auf sichere Weise den Besitzanspruch von gegebener Token ID an eine andere Adresse - * Wenn die Zieladresse ein Contract ist, muss dieser `onERC721Received` implementieren, - * was bei einem sicheren Transfer aufgerufen wird und den magischen Wert zurückgibt: - * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; - * ansonsten, wird die Transaktion abgewiesen. - */ - function safeTransferFrom( - address from, - address to, - uint256 pizzaId, - bytes memory _data - ) public { - this.transferFrom(from, to, pizzaId); - require(_checkOnERC721Received(from, to, pizzaId, _data), "Must implement onERC721Received."); - } - - /** - * Internal function to invoke `onERC721Received` on a target address - * The call is not executed if the target address is not a contract - */ - function _checkOnERC721Received( - address from, - address to, - uint256 pizzaId, - bytes memory _data - ) internal returns (bool) { - if (!isContract(to)) { - return true; - } - - bytes4 retval = IERC721Receiver(to).onERC721Received( - msg.sender, - from, - pizzaId, - _data - ); - return (retval == _ERC721_RECEIVED); - } - - // Burns a Pizza - destroys Token completely - // The `external` function modifier means this function is - // part of the contract interface and other contracts can call it - function burn(uint256 _pizzaId) external { - require(msg.sender != address(0), "Invalid address."); - require(_exists(_pizzaId), "Pizza does not exist."); - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - - ownerPizzaCount[msg.sender] = SafeMath.sub( - ownerPizzaCount[msg.sender], - 1 - ); - pizzaToOwner[_pizzaId] = address(0); - } - - // Returns count of Pizzas by address - function balanceOf(address _owner) public view returns (uint256 _balance) { - return ownerPizzaCount[_owner]; - } - - // Returns owner of the Pizza found by id - function ownerOf(uint256 _pizzaId) public view returns (address _owner) { - address owner = pizzaToOwner[_pizzaId]; - require(owner != address(0), "Invalid Pizza ID."); - return owner; - } - - // Approves other address to transfer ownership of Pizza - function approve(address _to, uint256 _pizzaId) public { - require(msg.sender == pizzaToOwner[_pizzaId], "Must be the Pizza owner."); - pizzaApprovals[_pizzaId] = _to; - emit Approval(msg.sender, _to, _pizzaId); - } - - // Returns approved address for specific Pizza - function getApproved(uint256 _pizzaId) - public - view - returns (address operator) - { - require(_exists(_pizzaId), "Pizza does not exist."); - return pizzaApprovals[_pizzaId]; - } - - /** - * Private function to clear current approval of a given token ID - * Reverts if the given address is not indeed the owner of the token - */ - function _clearApproval(address owner, uint256 _pizzaId) private { - require(pizzaToOwner[_pizzaId] == owner, "Must be pizza owner."); - require(_exists(_pizzaId), "Pizza does not exist."); - if (pizzaApprovals[_pizzaId] != address(0)) { - pizzaApprovals[_pizzaId] = address(0); - } - } - - /* - * Sets or unsets the approval of a given operator - * An operator is allowed to transfer all tokens of the sender on their behalf - */ - function setApprovalForAll(address to, bool approved) public { - require(to != msg.sender, "Cannot approve own address"); - operatorApprovals[msg.sender][to] = approved; - emit ApprovalForAll(msg.sender, to, approved); - } - - // Tells whether an operator is approved by a given owner - function isApprovedForAll(address owner, address operator) - public - view - returns (bool) - { - return operatorApprovals[owner][operator]; - } - - // Takes ownership of Pizza - only for approved users - function takeOwnership(uint256 _pizzaId) public { - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - address owner = this.ownerOf(_pizzaId); - this.transferFrom(owner, msg.sender, _pizzaId); - } - - // Checks if Pizza exists - function _exists(uint256 pizzaId) internal view returns (bool) { - address owner = pizzaToOwner[pizzaId]; - return owner != address(0); - } - - // Checks if address is owner or is approved to transfer Pizza - function _isApprovedOrOwner(address spender, uint256 pizzaId) - internal - view - returns (bool) - { - address owner = pizzaToOwner[pizzaId]; - // Disable solium check because of - // https://github.com/duaraghav8/Solium/issues/175 - // solium-disable-next-line operator-whitespace - return (spender == owner || - this.getApproved(pizzaId) == spender || - this.isApprovedForAll(owner, spender)); - } - - // Check if Pizza is unique and doesn't exist yet - modifier isUnique(string memory _name, uint256 _dna) { - bool result = true; - for (uint256 i = 0; i < pizzas.length; i++) { - if ( - keccak256(abi.encodePacked(pizzas[i].name)) == - keccak256(abi.encodePacked(_name)) && - pizzas[i].dna == _dna - ) { - result = false; - } - } - require(result, "Pizza with such name already exists."); - _; - } - - // Returns whether the target address is a contract - function isContract(address account) internal view returns (bool) { - uint256 size; - // Currently there is no better way to check if there is a contract in an address - // than to check the size of the code at that address. - // Siehe https://ethereum.stackexchange.com/a/14016/36603 - // für weitere Informationen zur Funktionsweise. - // TO-DO Verifizieren Sie dies nochmals, bevor Serenity eingeführt wird - //, da alle Adressen dann Contracts sein werden. - // solium-disable-next-line security/no-inline-assembly - assembly { - size := extcodesize(account) - } - return size > 0; - } -} -``` - -## Weiterführende Informationen {#further-reading} - -Sehen Sie sich auch die Dokumentationen zu Solidity und Vyper an, um einen umfassenderen Überblick über Smart Contracts zu erhalten: - -- [Solidity](https://solidity.readthedocs.io/) -- [Vyper](https://vyper.readthedocs.io/) - -## Verwandte Themen {#related-topics} - -- [Smart Contracts](/developers/docs/smart-contracts/) -- [Ethereum-Virtual Machine (EVM)](/developers/docs/evm/) - -## Verwandte Tutorials {#related-tutorials} - -- [Verkleinern von Verträgen, um die Vertragsgröße zu begrenzen](/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/) _– Einige praktische Tipps zur Reduzierung der Größe Ihres Smart Contracts_ -- [Protokollieren von Daten aus Smart Contracts mit Ereignissen](/developers/tutorials/logging-events-smart-contracts/) _– Eine Einführung in Smart-Contract-Ereigbnisse und wie Sie diese zur Datenprotokollierung verwenden können_ -- [Mit anderen Verträgen aus Solidity interagieren](/developers/tutorials/interact-with-other-contracts-from-solidity/) _– So können Sie einen Smart Contract aus einem bestehenden Vertrag aufbauen und mit ihm interagieren_ diff --git a/src/content/translations/de/developers/docs/standards/tokens/erc-20/index.md b/src/content/translations/de/developers/docs/standards/tokens/erc-20/index.md deleted file mode 100644 index 1481a71ccdd..00000000000 --- a/src/content/translations/de/developers/docs/standards/tokens/erc-20/index.md +++ /dev/null @@ -1,148 +0,0 @@ ---- -title: ERC-20 Token-Standard -description: -lang: de ---- - -## Einführung {#introduction} - -**Was ist ein Token?** - -Token können praktisch alles in Ethereum darstellen: - -- Reputationspunkte auf einer Online-Platform -- Fähigkeiten eines Charakters in einem Spiel -- Lotteriescheine -- Vermögenswerte wie Anteile an einer Firma -- Eine Fiat-Währung wie der US-Dollar -- Eine Goldunze -- und weitere... - -Diese mächtigen Eigenschaften von Ethereum sollten in einem stabilen Standard bereitgestellt werden, oder? Und genau das ist der Punkt, an dem ERC-20 ins Spiel kommt! Dieser Standard ermöglicht es Entwicklern, Token zu erstellen, die mit anderen Produkten und Services interagieren können. - -**Was ist ERC-20?** - -Der ERC-20 führt einen Standard für Fungible Token ein. Mit anderen Worten, sie haben eine Eigenschaft, bei der jeder Token in Bezug auf Typ und Wert anderen Token entspricht. Zum Beispiel verhält sich ein ERC-20-Token genau wie der ETH. Das bedeutet, dass ein Token immer dem Wert aller anderen Token entspricht. - -## Voraussetzungen {#prerequisites} - -- [Konten](/developers/docs/accounts) -- [Smart Contracts](/developers/docs/smart-contracts/) -- [Token-Standards](/developers/docs/standards/tokens/) - -## Hauptteil {#body} - -Der im November 2015 von Fabian Vogelsteller eingereichte ERC-20-Antrag (Ethereum Request for Comments 20) ist ein Token-Standard, der eine API für Tokens innerhalb von Smart Contracts implementiert. - -Beispielfunktionalitäten, die ERC-20 bietet: - -- Token von einem Konto auf ein anderes übertragen -- den aktuellen Token-Saldo eines Kontos abfragen -- den im Netz verfügbaren Gesamtvorrat an Token ermitteln -- genehmigen, ob ein Token-Betrag von einem Konto durch ein Drittkonto ausgegeben werden kann - -Wenn ein Smart Contract die folgenden Methoden und Ereignisse implementiert, kann er als ERC-20-Token-Vertrag bezeichnet werden und ist nach der Bereitstellung dafür verantwortlich, die erstellten Token auf Ethereum zu verfolgen. - -Von [EIP-20](https://eips.ethereum.org/EIPS/eip-20): - -#### Methoden {#methods} - -```solidity -function name() public view returns (string) -function symbol() public view returns (string) -function decimals() public view returns (uint8) -function totalSupply() public view returns (uint256) -function balanceOf(address _owner) public view returns (uint256 balance) -function transfer(address _to, uint256 _value) public returns (bool success) -function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) -function approve(address _spender, uint256 _value) public returns (bool success) -function allowance(address _owner, address _spender) public view returns (uint256 remaining) -``` - -#### Events {#events} - -```solidity -event Transfer(address indexed _from, address indexed _to, uint256 _value) -event Approval(address indexed _owner, address indexed _spender, uint256 _value) -``` - -### Beispiele {#web3py-example} - -Sehen wir uns an, wie wichtig ein Standard ist, um uns die Überprüfung jedes ERC-20-Token-Vertrags auf Ethereum zu erleichtern. Wir benötigen lediglich das Contract Application Binary Interface (ABI), um eine Schnittstelle zu einem beliebigen ERC-20-Token zu erstellen. Wie Sie unten sehen können, werden wir ein vereinfachtes ABI verwenden, um es zu einem Beispiel mit geringer Reibung zu machen. - -#### Web3.py Beispiel {#web3py-example} - -Stellen Sie zuerst sicher, dass Sie [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) Python-Bibliothek installiert haben: - -``` -pip install web3 -``` - -```python -from web3 import Web3 - - -w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) - -dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI -weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # Wrapped ether (WETH) - -acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11" # Uniswap V2: DAI 2 - -# Dies ist ein vereinfachtes Contract Application Binary Interface (ABI) eines ERC-20 Token Contracts. -# Es werden nur die Methoden verfügbar gemacht: balanceOf(address), decimals(), symbol() und totalSupply() -simplified_abi = [ - { - 'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], - 'name': 'balanceOf', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'decimals', - 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'symbol', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'totalSupply', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - } -] - -dai_contract = w3.eth.contract(address=w3.toChecksumAddress(dai_token_addr), abi=simplified_abi) -symbol = dai_contract.functions.symbol().call() -decimals = dai_contract.functions.decimals().call() -totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals -addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals - -# DAI -print("===== %s =====" % symbol) -print("Total Supply:", totalSupply) -print("Addr Balance:", addr_balance) - -weth_contract = w3.eth.contract(address=w3.toChecksumAddress(weth_token_addr), abi=simplified_abi) -symbol = weth_contract.functions.symbol().call() -decimals = weth_contract.functions.decimals().call() -totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals -addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals - -# WETH -print("===== %s =====" % symbol) -print("Total Supply:", totalSupply) -print("Addr Balance:", addr_balance) -``` - -## Weiterführende Informationen {#further-reading} - -- [EIP-20: ERC-20 Token Standard](https://eips.ethereum.org/EIPS/eip-20) -- [OpenZeppelin - Token](https://docs.openzeppelin.com/contracts/3.x/tokens#ERC20) -- [OpenZeppelin - ERC-20 Implementierung](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) diff --git a/src/content/translations/de/developers/docs/standards/tokens/erc-721/index.md b/src/content/translations/de/developers/docs/standards/tokens/erc-721/index.md deleted file mode 100644 index 7d7906ed488..00000000000 --- a/src/content/translations/de/developers/docs/standards/tokens/erc-721/index.md +++ /dev/null @@ -1,243 +0,0 @@ ---- -title: ERC-721 Nicht-fungibler Token-Standard -description: -lang: de ---- - -## Einführung {#introduction} - -**Was ist ein nicht-fungibler Token?** - -Ein nicht-fungibler Token (NFT) wird verwendet, um etwas oder jemanden auf eine einzigartige Weise zu identifizieren. Diese Art von Token ist perfekt, um auf Plattformen verwendet zu werden, die Sammelartikel anbieten, Zugang zu Schlüsseln, Lotteriekarten, nummerierten Plätzen für Konzerte und Sportspiele, etc. Diese spezielle Art von Token hat erstaunliche Möglichkeiten, so dass er einen angemessenen Standard verdient. Der ERC-721 hat dies gelöst! - -**Was ist ERC-721?** - -Der ERC-721 führt eine Norm für NFT ein, mit anderen Worten, diese Art von Token ist einzigartig und kann einen anderen Wert haben als ein anderer Token des gleichen Smart Contract, vielleicht wegen seines Alters, seiner Seltenheit oder auch so etwas wie sein visuelles Bild. Moment mal, visuell? - -Ja! Alle NFTs haben eine `uint256` Variable namens `TokenId` und bei jedem ERC-721 Contract muss das Paar aus `Kontaktadresse uint256 TokenId` global eindeutig sein. Eine dApp kann einen „Konverter" haben, der die `TokenId` als Eingabe verwendet und ein Bild von etwas Coolem ausgibt, wie Zombies, Waffen, Fertigkeiten oder Krypto-Kitties! - -## Voraussetzungen {#prerequisites} - -- [Konten](/developers/docs/accounts/) -- [Smart Contracts](/developers/docs/smart-contracts/) -- [Token-Standards](/developers/docs/standards/tokens/) - -## Hauptteil {#body} - -Der ERC-721 (Ethereum Request for Comments 721), im Januar 2018 von William Entriken, Dieter Shirley, Jacob Evans und Nastassia Sachs vorgeschlagen, ist ein nicht-fungibler Token-Standard, der eine API für Tokens innerhalb von Smart Contracts implementiert. - -Er bietet Funktionen wie die Übertragung von Token von einem Konto auf ein anderes, um den aktuellen Token-Saldo eines Kontos, den Eigentümer eines spezifischen Tokens sowie den Gesamtbestand der im Netzwerk verfügbaren Token abzurufen. Daneben gibt es auch einige andere Funktionalitäten wie zum Beispiel zu genehmigen, dass eine gewisse Menge an Token von einem Konto von einem Drittkonto verschoben werden kann. - -Wenn ein Smart Contract folgende Methoden und Ereignisse implementiert, kann er als ERC-721 nicht-fungibler Token-Vertrag bezeichnet werden. Einmal implementiert, werden mit ihm die erstellten Token auf Ethereum verfolgt. - -Aus [EIP-721](https://eips.ethereum.org/EIPS/eip-721): - -#### Methoden {#methods} - -```solidity - function balanceOf(address _owner) external view returns (uint256); - function ownerOf(uint256 _tokenId) external view returns (address); - function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; - function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; - function transferFrom(address _from, address _to, uint256 _tokenId) external payable; - function approve(address _approved, uint256 _tokenId) external payable; - function setApprovalForAll(address _operator, bool _approved) external; - function getApproved(uint256 _tokenId) external view returns (address); - function isApprovedForAll(address _owner, address _operator) external view returns (bool); -``` - -#### Events {#events} - -```solidity - event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); - event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); - event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); -``` - -### Beispiele {#web3py-example} - -Lassen Sie uns sehen, wie wichtig ein Standard ist, um es uns einfach zu machen, jeden ERC-721 Token-Vertrag auf Ethereum zu inspizieren. Wir benötigen nur das Application Binary Interface (ABI) des Vertrags, um eine Schnittstelle zu jedem ERC-721 Token zu erstellen. Wie Sie unten sehen können, werden wir ein vereinfachtes ABI verwenden, um es zu einem Beispiel mit geringer Reibung zu machen. - -#### Web3.py Beispiel {#web3py-example} - -Stellen Sie zuerst sicher, dass Sie [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) Python-Bibliothek installiert haben: - -``` -pip install web3 -``` - -```python -from web3 import Web3 -from web3._utils.events import get_event_data - - -w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) - -ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # CryptoKitties Contract - -acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # CryptoKitties Sales Auction - -# This is a simplified Contract Application Binary Interface (ABI) of an ERC-721 NFT Contract. -# Es werden nur folgende Methoden betrachtet: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply() -simplified_abi = [ - { - 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], - 'name': 'balanceOf', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'name', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], - 'name': 'ownerOf', - 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'symbol', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'totalSupply', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, -] - -ck_extra_abi = [ - { - 'inputs': [], - 'name': 'pregnantKitties', - 'outputs': [{'name': '', 'type': 'uint256'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [{'name': '_kittyId', 'type': 'uint256'}], - 'name': 'isPregnant', - 'outputs': [{'name': '', 'type': 'bool'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - } -] - -ck_contract = w3.eth.contract(address=w3.toChecksumAddress(ck_token_addr), abi=simplified_abi+ck_extra_abi) -name = ck_contract.functions.name().call() -symbol = ck_contract.functions.symbol().call() -kitties_auctions = ck_contract.functions.balanceOf(acc_address).call() -print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}") - -pregnant_kitties = ck_contract.functions.pregnantKitties().call() -print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}") - -# Nutzung des Transfer Event ABI um Informationen über übertragene Kitties zu erhalten. -tx_event_abi = { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'from', 'type': 'address'}, - {'indexed': False, 'name': 'to', 'type': 'address'}, - {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}], - 'name': 'Transfer', - 'type': 'event' -} - -# We need the event's signature to filter the logs -event_signature = w3.sha3(text="Transfer(address,address,uint256)").hex() - -logs = w3.eth.getLogs({ - "fromBlock": w3.eth.blockNumber - 120, - "address": w3.toChecksumAddress(ck_token_addr), - "topics": [event_signature] -}) - -# Notes: -# - 120 blocks is the max range for CloudFlare Provider -# - If you didn't find any Transfer event you can also try to get a tokenId at: -# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events -# Click to expand the event's logs and copy its "tokenId" argument - -recent_tx = [get_event_data(w3.codec, tx_event_abi, log)["args"] for log in logs] - -kitty_id = recent_tx[0]['tokenId'] # Paste the "tokenId" here from the link above -is_pregnant = ck_contract.functions.isPregnant(kitty_id).call() -print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}") -``` - -Der Krypto-Kitties-Vertrag hat neben den Standard-Events noch einige weitere interessante Events. - -Lassen Sie uns zwei dieser Events genauer ansehen, `Schwanger` und `Geburt`. - -```python -# Verwendung des Pregnant und Birth Events ABI um Informationen über neue Kitties zu erhalten. -ck_extra_events_abi = [ - { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'owner', 'type': 'address'}, - {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, - {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, - {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}], - 'name': 'Pregnant', - 'type': 'event' - }, - { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'owner', 'type': 'address'}, - {'indexed': False, 'name': 'kittyId', 'type': 'uint256'}, - {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, - {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, - {'indexed': False, 'name': 'genes', 'type': 'uint256'}], - 'name': 'Birth', - 'type': 'event' - }] - -# We need the event's signature to filter the logs -ck_event_signatures = [ - w3.sha3(text="Pregnant(address,uint256,uint256,uint256)").hex(), - w3.sha3(text="Birth(address,uint256,uint256,uint256,uint256)").hex(), -] - -# Here is a Pregnant Event: -# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog -pregnant_logs = w3.eth.getLogs({ - "fromBlock": w3.eth.blockNumber - 120, - "address": w3.toChecksumAddress(ck_token_addr), - "topics": [ck_event_signatures[0]] -}) - -recent_pregnants = [get_event_data(w3.codec, ck_extra_events_abi[0], log)["args"] for log in pregnant_logs] - -# Here is a Birth Event: -# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a -birth_logs = w3.eth.getLogs({ - "fromBlock": w3.eth.blockNumber - 120, - "address": w3.toChecksumAddress(ck_token_addr), - "topics": [ck_event_signatures[1]] -}) - -recent_births = [get_event_data(w3.codec, ck_extra_events_abi[1], log)["args"] for log in birth_logs] -``` - -## Beliebte NFTs {#popular-nfts} - -- [Etherscan NFT Tracker](https://etherscan.io/tokens-nft) Liste der Top-NFT auf Ethereum, nach Transfervolumen sortiert. -- [Krypto-Kitties](https://www.cryptokitties.co/) ist ein Spiel mit Fokus auf das Züchten und Sammeln liebenswerter Kreaturen, die wir Krypto-Kitties nennen. -- [Sorare](https://sorare.com/) ist ein Fantasie-Fußballspiel, bei dem es darum geht, limitierte Karten zu sammeln, Ihre Teams zu verwalten und gegeneinander anzutreten, um Preise zu gewinnen. -- [Der Ethereum Namen-Service (ENS)](https://ens.domains/) bietet einen sicheren & dezentralen Weg, Informationen mit Hilfe von verständlichen Namen auf und neben der Blockchains zu adressieren. -- [Unstoppable Domains](https://unstoppabledomains.com/) ist ein Unternehmen aus San Francisco, welches Domains auf Blockchains baut. Blockchain-Domains ersetzen Krypto-Adressen mit verständlichen und lesbaren Namen, um zensurresistente Websites zu ermöglichen. -- [Gods Unchained Cards](https://godsunchained.com/) ist ein TCG auf der Ethereum-Blockchain, welches NFTs verwendet, um In-Game-Assets als Eigentum zu verleihen. -- [Bored Ape Yacht Club](https://boredapeyachtclub.com) ist eine Sammlung von 10.000 einzigartigen NFTs, die nicht nur ein nachweislich seltenes Kunstwerk sind, sondern auch als Mitgliedschaftsmarke für den Club fungieren und den Mitgliedern Vergünstigungen und Vorteile bieten, die sich im Laufe der Zeit aufgrund der Bemühungen der Gemeinschaft erhöhen. - -## Weiterführende Informationen {#further-reading} - -- [EIP-721: ERC-721 Nicht-Fungibler Token-Standard](https://eips.ethereum.org/EIPS/eip-721) -- [OpenZeppelin - ERC-721 Dokumentation](https://docs.openzeppelin.com/contracts/3.x/erc721) -- [OpenZeppelin - ERC-721 Implementierung](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) -- [Alchemy NFT API](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) diff --git a/src/content/translations/de/developers/tutorials/how-to-view-nft-in-metamask/index.md b/src/content/translations/de/developers/tutorials/how-to-view-nft-in-metamask/index.md deleted file mode 100644 index ee670841bfc..00000000000 --- a/src/content/translations/de/developers/tutorials/how-to-view-nft-in-metamask/index.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: So zeigen Sie Ihren NFT in Ihrem Wallet an (Teil 3/3 der NFT-Tutorialreihe) -description: In diesem Tutorial wird beschrieben, wie Sie einen existierenden NFT auf MetaMask einsehen können. -author: "Sumi Mudgil" -tags: - - "NFTs" - - "ERC-721" - - "Alchemy" - - "Non Fungible Token" - - "Solidity" -skill: beginner -lang: de -published: 2021-04-22 ---- - -Dieses Tutorial ist Teil 3/3 der NFT-Tutorialreihe, in dem wir unseren neu geprägten NFT betrachten. Die allgemeine Anleitung ist für alle ERC-721-Token auf MetaMask anwendbar, auch im Mainnet oder einem Testnet. Wenn Sie lernen möchten, wie Sie Ihren eigenen NFT auf Ethereum prägen können, sollten Sie sich [Teil 1 zum Schreiben und Bereitstellen eines NFT-Smart-Contracts](/developers/tutorials/how-to-write-and-deploy-an-nft) ansehen. - -Herzlichen Glückwunsch! Sie haben es zum kürzesten und einfachsten Teil unserer NFT-Tutorialreihe geschafft. In diesem Teil erfahren Sie, wie Sie Ihren frisch geprägten NFT in einer virtuellen Geldbörse (Wallet) anzeigen können. Für dieses Beispiel verwenden wir MetaMask, da wir es bereits in den beiden vorangegangenen Teilen verwendet haben. - -Als Voraussetzung sollten Sie MetaMask bereits auf ihrem Handy oder in Ihrem Browser installiert haben und es sollte das Konto enthalten, für die Sie Ihre NFTs geprägt haben. Die App können Sie kostenlos auf [iOS](https://apps.apple.com/us/app/metamask-blockchain-wallet/id1438144202) oder [Android](https://play.google.com/store/apps/details?id=io.metamask&hl=de_US&gl=US) erhalten. - -## Schritt 1: Das Netzwerk auf Ropsten festlegen {#set-network-to-ropsten} - -Drücken Sie oben in der App auf die Schaltfläche "Wallet". Daraufhin werden Sie aufgefordert, ein Netzwerk auszuwählen. Da unser NFT im Ropsten-Netzwerk geprägt wurde, sollten Sie als Netzwerk Ropsten auswählen. - -![So legen Sie Ropsten als Netzwerk auf MetaMask fest](./ropstenMetamask.gif) - -## Schritt 2: Kollektion zu MetaMask hinzufügen {#add-nft-to-metamask} - -Sobald Sie sich im Ropsten-Netzwerk befinden, wählen Sie die Registerkarte "Collectibles" (Sammelbare Elemente) auf der rechten Seite und fügen Sie die NFT-Smart-Contract-Adresse und die ERC-721-Token-ID Ihres NFT hinzu. Sie können sie anhand des Transaktions-Hashes Ihres NFT, der im zweiten Teil unseres Tutorials bereitgestellt wurde, auf Etherscan finden. - -![So finden Sie Ihren Transaktions-Hash und die ERC-721-Token-ID](./findNFTEtherscan.png) - -Möglicherweise müssen Sie die Seite ein paar Mal aktualisieren, bis Sie den NFT sehen können. Aber keine Sorge, er wird da sein. - -![So laden Sie Ihren NFT in MetaMask hoch](./findNFTMetamask.gif) - -Glückwunsch! Sie haben erfolgreich einen NFT gepräft und können ihn jetzt sehen. Wir können es kaum erwarten zu sehen, wie Sie die NFT-Welt im Sturm erobern werden! diff --git a/src/content/translations/de/developers/tutorials/how-to-write-and-deploy-an-nft/index.md b/src/content/translations/de/developers/tutorials/how-to-write-and-deploy-an-nft/index.md deleted file mode 100644 index fdb0cc361cf..00000000000 --- a/src/content/translations/de/developers/tutorials/how-to-write-and-deploy-an-nft/index.md +++ /dev/null @@ -1,353 +0,0 @@ ---- -title: So erstellen und veröffentlichen Sie einen NFT (Teil 1/3 von unserer NFT-Tutorialreihe) -description: Dieses Tutorial ist Teil 1 einer Serie über NFTs, die Ihnen Schritt für Schritt zeigt, wie Sie einen Non Fungible Token (ERC-721 Token) Smart Contract mit Ethereum und Inter Planetary File System (IPFS) erstellen und veröffentlichen. -author: "Sumi Mudgil" -tags: - - "NFTs" - - "ERC-721" - - "Alchemy" - - "Solidity" - - "Smart Contracts" -skill: beginner -lang: de -published: 2021-04-22 ---- - -Mit NFTs ist die Blockchain ins Auge der Öffentlichkeit gerückt. Das ist nun eine ausgezeichnete Gelegenheit, sich selbst ein Bild über diesen Hype zu machen. Veröffentlichen Sie dafür Ihren eigenen NFT (ERC-721 Token) auf der Ethereum-Blockchain. - -Alchemy ist sehr stolz darauf, die größten Namen im NFT-Bereich zu unterstützen, darunter Makersplace (kürzlich wurde ein Rekordverkauf digitaler Kunstwerke bei Christie's für 69 Millionen USD verzeichnet), Dapper Labs (Entwickler von NBA Top Shot & Crypto Kitties), OpenSea (der weltweit größte NFT-Marktplatz), Zora, Super Rare, NFTfi, Foundation, Enjin, Origin Protocol, Immutable und viele mehr. - -In diesem Tutorial erfahren Sie, wie Sie im Ropsten-Testnet mithilfe von [MetaMask](https://metamask.io/), [Solidity](https://docs.soliditylang.org/en/v0.8.0/), [Hardhat](https://hardhat.org/), [Pinata](https://pinata.cloud/) und [Alchemy](https://alchemy.com/signup/eth) einen ERC-721-Smart Contract erstellen und bereitstellen (keine Sorge, wenn Sie jetzt noch nicht wissen, was das alles bedeutet, wir werden Ihnen das erklären). - -In Teil 2 dieses Tutorials erläutern wir, wie Sie mit diesem Smart Contract einen NFT prägen können, in Teil 3 wird behandelt, wie Sie Ihren NFT auf MetaMask anzeigen können. - -Wenn Sie zu irgendeinem Zeitpunkt Fragen haben, melden Sie sich gerne im [Alchemy Discord](https://discord.gg/gWuC7zB) oder rufen Sie die [NFT-API-Dokumentation von Alchemy](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api). - -## Schritt 1: Verbindung mit dem Ethereum-Netzwerk {#connect-to-ethereum} - -Es gibt eine Reihe von Möglichkeiten, Anfragen an die Ethereum Blockchain zu stellen, der Einfachheit halber verwenden wir ein kostenloses Konto bei [Alchemy](https://alchemy.com/signup/eth), einer Blockchain-Entwicklerplattform und API, die es uns ermöglicht, mit der Ethereum-Chain zu kommunizieren, ohne dass wir unsere eigenen Nodes betreiben müssen. - -In diesem Tutorial werden wir auch die Alchemy-Entwicklertools für die Überwachung und Analyse nutzen, um zu verstehen, was sich hinter unserer Smart-Contract-Bereitstellung verbirgt. Wenn Sie noch kein Alchemy-Konto haben, können Sie sich [hier](https://alchemy.com/signup/eth) kostenlos registrieren. - -## Schritt 2: App (und den API-Schlüssel) erstellen {#make-api-key} - -Sobald Sie ein Alchemy-Konto erstellt haben, können Sie einen API-Schlüssel generieren, indem Sie eine App erstellen. Dadurch können wir Anfragen an das Ropsten-Testnet stellen. In [diesem Leitfaden](https://docs.alchemyapi.io/guides/choosing-a-network) erfahren Sie mehr über Testnetzwerke. - -1. Klicken Sie in Ihrem Alchemy-Dashboard in der Navigationsleiste unter "Apps" auf "Create App" (App erstellen), um auf die Seite "Create App" (App erstellen) zu gelangen. - -![App erstellen](./create-your-app.png) - -2. Geben Sie Ihrer App einen Namen (wir haben uns für "My First NFT!" entschieden), eine kurze Beschreibung, wählen Sie "Staging" für die Umgebung (für die Buchhaltung Ihrer App) und "Ropsten" als Netzwerk. - -![App konfigrurieren und veröffentlichen](./configure-and-publish-your-app.png) - -3. Klicken Sie auf “Create app” (App erstellen) und schon sind Sie fertig. Die App sollte in der untenstehenden Tabelle erscheinen. - -## Schritt 3: Ethereum-Konto (Adresse) erstellen {#create-eth-address} - -Zum Versenden und Empfangen von Transaktionen benötigen Sie ein Ethereum-Konto. In diesem Tutorial verwenden wir MetaMask, eine virtuelle Wallet im Browser, mit der Sie Ihre Ethereum-Kontoadresse verwalten können. Wenn Sie mehr über Transaktionen auf Ethereum erfahren möchten, besuchen Sie [diese Seite](/developers/docs/transactions/) von der Ethereum Foundation. - -Sie können [hier](https://metamask.io/download.html) MetaMask kostenlos herunterladen und ein Konto erstellen. Wie Sie ein neues Konto erstellen oder wenn Sie bereits ein Konto haben, stellen Sie bitte sicher, dass Sie zum Ropsten-Testnet oben rechts wechseln (um sicherzustellen, dass Sie nicht mit echtem Geld handeln). - -![Ropsten als Netzwerk festlegen](./metamask-ropsten.png) - -## Schritt 4: Ether von einem Faucet hinzufügen {#step-4-add-ether-from-a-faucet} - -Um unseren Smart Contract in das Testnetzwerk integrieren zu können, benötigen wir ein paar Fake-ETH. Um ETH zu erhalten, können Sie zu [FaucETH](https://fauceth.komputing.org) navigieren und Ihre Ropsten-Kontoadresse eingeben. Klicken Sie dort auf "Request funds" (Geld anfordern), wählen Sie im Dropdown-Menü "Ethereum Testnet Ropsten" (Ethereum-Testnet Ropsten) und klicken Sie dann nochmals auf die Schaltfläche "Request funds" (Geld anfordern). Sie sollten kurz darauf ETH in Ihrem MetaMask-Konto sehen. - -## Schritt 5: Kontostand überprüfen {#check-balance} - -Um zu überprüfen, ob Sie das Guthaben erhalten haben, stellen wir eine [eth_getBalance](https://docs.alchemyapi.io/alchemy/documentation/alchemy-api-reference/json-rpc#eth_getbalance)-Anfrage über das [Composer-Tool von Alchemy](https://composer.alchemyapi.io?composer_state=%7B%22network%22%3A0%2C%22methodName%22%3A%22eth_getBalance%22%2C%22paramValues%22%3A%5B%22%22%2C%22latest%22%5D%7D). Das gibt den ETH-Betrag in unserem Wallet wieder. Nachdem Sie die Adresse Ihres MetaMask-Kontos eingegeben und auf “Send Request” (Anforderung senden) geklickt haben, sollten Sie eine Antwort ähnlich der Folgenden erhalten: - - `{"jsonrpc": "2.0", "id": 0, "result": "0xde0b6b3a7640000"}` - -**HINWEIS: **Dieses Ergebnis ist in Wei, nicht in ETH. Wei ist die kleinste Einheit von Ether. Die Umrechnung von Wei auf ETH ist: 1 ETH = 1018 Wei. Wenn wir also 0xde0b6b3a7640000 in eine Dezimalzahl konvertieren, erhalten wir 1\*1018 Wei und das entspricht 1 ETH. - -Puh! Unser Falschgeld ist da. - -## Schritt 6: Projekt initialisieren {#initialize-project} - -Zunächst müssen wir einen Ordner für unser Projekt erstellen. Navigieren Sie zur Befehlszeile und geben Sie Folgendes ein: - - mkdir my-nft - cd my-nft - -Jetzt, da wir uns in unserem Projektordner befinden, verwenden wir "npm init" um das Projekt zu starten. Wenn Sie npm noch nicht installiert haben, folgen Sie [dieser Anleitung](https://docs.alchemyapi.io/alchemy/guides/alchemy-for-macs#1-install-nodejs-and-npm) (wir brauchen auch [Node.js](https://nodejs.org/en/download/), also laden Sie das auch herunter). - - npm init - -Es spielt keine Rolle, wie Sie die Fragen zur Installation beantworten, aber wir haben es folgendermaßen gemacht: - - package name: (my-nft) - version: (1.0.0) - description: My first NFT! - entry point: (index.js) - test command: - git repository: - keywords: - author: - license: (ISC) - About to write to /Users/thesuperb1/Desktop/my-nft/package.json: - - { - "name": "my-nft", - "version": "1.0.0", - "description": "My first NFT!", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" - } - -Genehmigen Sie die Datei "package.json" und schon kann es losgehen. - -## Schritt 7: [Hardhat](https://hardhat.org/getting-started/#overview) installieren {#install-hardhat} - -Hardhat ist eine Entwicklungsumgebung zum Kompilieren, Bereitstellen, Testen und Debuggen Ihrer Ethereum-Software. Es hilft Entwicklern bei der lokalen Erstellung von Smart Contracts und dApps, bevor diese auf der Live-Chain bereitgestellt werden. - -Innerhalb unseres my-nft-Projektlaufs: - - npm install --save-dev hardhat - -Auf dieser Seite finden Sie weitere Informationen zur [Installationsanleitung](https://hardhat.org/getting-started/#overview). - -## Schritt 8: Hardhat-Projekt erstellen {#create-hardhat-project} - -Führen Sie folgeden Befehl in unserem Projektordner aus: - - npx hardhat - -Sie sollten dann eine Willkommensnachricht sehen und die Möglichkeit haben, auszuwählen, wie Sie fortfahren möchten. Wählen Sie "create an empty hardhat.config.js" (Leere hardhat.config.js erstellen) aus: - - 888 888 888 888 888 - 888 888 888 888 888 - 888 888 888 888 888 - 8888888888 8888b. 888d888 .d88888 88888b. 8888b. 888888 - 888 888 "88b 888P" d88" 888 888 "88b "88b 888 - 888 888 .d888888 888 888 888 888 888 .d888888 888 - 888 888 888 888 888 Y88b 888 888 888 888 888 Y88b. - 888 888 "Y888888 888 "Y88888 888 888 "Y888888 "Y888 - 👷 Welcome to Hardhat v2.0.11 👷‍ - ? Was möchten Sie tun? … - Create a sample project - ❯ Create an empty hardhat.config.js - Quit - -Darüber wird eine hardhat.config.js-Datei für uns generiert, in der alle Einstellungen für unser Projekt angeben werden (in Schritt 13). - -## Schritt 9: Projektordner hinzufügen {#add-project-folders} - -Um unser Projekt zu organisieren, erstellen wir zwei neue Ordner. Navigieren Sie in der Befehlszeile zum Stammverzeichnis Ihres Projekts und geben Sie Folgendes ein: - - mkdir contracts - mkdir scripts - -- contracts/ ist der Ort, an dem wir unseren NFT-Smart-Contract-Code aufbewahren werden. - -- scripts/ ist der Ort, an dem wir Skripte veröffentlichen und mit unseren Smart Contract interagieren. - -## Schritt 10: Vertrag schreiben {#write-contract} - -Nachdem unsere Umgebung nun eingerichtet ist, kommen wir zu spannenderen Dingen: _Wir schreiben unseren Smart-Contract-Code._ - -Öffnen sie das my-nft-Projekt in ihrem favorisierten Ordner (wir bevorzugen [VSCode](https://code.visualstudio.com/)). Smart Contracts werden in einer Sprache namens Solidity geschrieben. Damit werden wir auch unseren Smart Contract MyNFT.sol schreiben. - -1. Navigieren Sie zum Ordner `Contracts` (Verträge) und erstellen Sie eine neue Datei namens MyNFT.sol. - -2. Im Folgenden finden Sie den NFT-Smart-Contract-Code, der auf der ERC-721-Implementierung der [OpenZeppelin](https://docs.openzeppelin.com/contracts/3.x/erc721)-Bibliothek basiert. Kopieren Sie folgenden Inhalt und fügen Sie ihn in die Datei MyNFT.sol ein. - - ```solidity - //Contract based on [https://docs.openzeppelin.com/contracts/3.x/erc721](https://docs.openzeppelin.com/contracts/3.x/erc721) - // SPDX-License-Identifier: MIT - pragma solidity ^0.8.0; - - import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; - import "@openzeppelin/contracts/utils/Counters.sol"; - import "@openzeppelin/contracts/access/Ownable.sol"; - import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol"; - - contract MyNFT is ERC721URIStorage, Ownable { - using Counters for Counters.Counter; - Counters.Counter private _tokenIds; - - constructor() ERC721("MyNFT", "NFT") {} - - function mintNFT(address recipient, string memory tokenURI) - public onlyOwner - returns (uint256) - { - _tokenIds.increment(); - - uint256 newItemId = _tokenIds.current(); - _mint(recipient, newItemId); - _setTokenURI(newItemId, tokenURI); - - return newItemId; - } - } - ``` - -3. Weil wir Klassen der OpenZeppelin-Vertragsbibliothek erben, geben Sie `npm install @openzeppelin/contracts` in die Befehlszeile ein, um die Bibliothek in Ihrem Ordner zu installieren. - -Doch was _macht_ dieser Code denn genau? Sehen wir uns das gemeinsam Zeil für Zeile an. - -Am Anfang unseres Smart Contracts importieren wir drei [OpenZeppelin](https://openzeppelin.com/)-Smart-Contract-Klassen: - -- @openzeppelin/contracts/token/ERC721/ERC721.sol enthält eine Implementierung des ERC-721-Standards, den unser NFT-Smart-Contract erben wird. (Damit der NFT auch Gültikeit erlangt, muss Ihr Smart Contract alle Methoden des ERC-721-Standards implementieren.) In der Schnittstellendefinition [hier](https://eips.ethereum.org/EIPS/eip-721) erfahren Sie mehr über die vererbten ERC-721-Funktionen. - -- @openzeppelin/contracts/utils/Counters.sol stellt Zähler zur Verfügung, die jeweils nur um eins erhöht oder verringert werden können. Unser Smart Contract benutzt einen Zähler, um die Gesamtanzahl der geprägten NFTs zu überprüfen und eine eindeutige ID für unseren neuen NFT festzulegen. (Jedem NFT, der durch die Benutzung eines Smart Contracts geprägt wird, muss eine eindeutige ID zugewiesen werden. In diesem Beispiel wird unsere eindeutige ID einfach deterministisch über die Gesamtanzahl der existierenden NFTs bestimmt. Zum Beispiel hat der erste NFT, der mit unserem Smart Contract geprägt wird, die ID "1", unser zweiter NFT hat die ID "2" usw.) - -- @openzeppelin/contracts/access/Ownable.sol richtet eine [Zugriffskontrolle](https://docs.openzeppelin.com/contracts/3.x/access-control) in unserem Smart Contract ein, so dass nur der Besitzer des Smart Contracts (also Sie) NFTs prägen kann. (Hinweis, die Einbeziehung der Zugriffskontrolle ist optional. Wenn Sie möchten, dass mit Ihrem Smart Contract jeder NFTs prägen kann, entfernen Sie das Wort "Ownable" in Zeile 10 und "onlyOwner" in Zeile 17.) - -Nach unseren Importanweisungen haben wir unseren benutzerdefinierten Smart Contract, der überraschend kurz ist , denn er enthält nur einen Zähler, einen Konstruktor und eine einzige Funktion. Das ist unseren vererbten OpenZeppelin-Contracts zu verdanken, die einen Großteil der Methoden implementieren, die wir zur Erstellung eines NFT benötigen, wie `ownerOf`, was den Besitzer des NFT zurückgibt, und `transferFrom`, was das Eigentum an einem NFT von einem Konto zu einem anderen überträgt. - -Sie werden feststellen, dass wir in unserem ERC-721-Konstruktor zwei Zeichenfolgen übergeben: "MyNFT" und "NFT". Die erste Variable ist der Name des Smart Contracts und die zweite ist sein Symbol. Sie können jede der beiden Variablen benennen wie sie möchten. - -Schließlich haben wir unsere Funktion `mintNFT(address recipient, string memory tokenURI)`, mit der wir einen NFT prägen können. Sie werden bemerken, dass diese Funktion zwei Variablen benötigt: - -- `address recipient` gibt die Adresse an, die den frisch geprägten NFT erhalten soll. - -- `string memory tokenURI` ist eine Zeichenfolge, die auf ein JSON-Dokument zeigt, das die Metadaten des NFT beschreibt. Die Metadaten eines NFT, sind das Element, das den NFT wirklich zum Leben erwecken. Sie schaffen die Grundlage, dass ein NFT konfigurierbare Eigenschaften wie einen Namen, eine Beschreibung ein Bild und andere Attribute haben kann. In Teil 2 dieses Tutorials wird die Konfiguration dieser Metadaten beschrieben. - -`mintNFT` ruft bestimmte Methoden der vererbten ERC-721-Bibliothek auf und gibt eine Zahl zurück, die für die ID des frisch geprägten NFT steht. - -## Schritt 11: MetaMask und Alchemy mit ihrem Projekt mit Ihrem Projekt verbinden {#connect-metamask-and-alchemy} - -Nachdem wir nun eine MetaMask-Wallet und ein Alchemy-Konto erstellt uns unseren Smart Contract geschrieben haben, ist es an der Zeit, die drei Elemente miteinander zu verbinden. - -Jede Transaktion, die von Ihrer virtuellen Wallet gesendet wird, benötigt eine Signatur mit ihrem eindeutigen privaten Schlüssel. Um unser Programm mit dieser Berechtigung auszustatten, können wir unseren privaten Schlüssel (und Alchemy-API-Schlüssel) in einer Umgebungsdatei sicher abspeichern. - -Wenn Sie mehr über das Senden von Transaktionen erfahren möchten, schauen Sie sich [dieses Tutorial](/developers/tutorials/sending-transactions-using-web3-and-alchemy/) über das senden von Transaktionen mit Web3 an. - -Installieren Sie zuerst das dotenv-Paket in Ihrem Projektverzeichnis: - - npm install dotenv --save - -Danach erstellen Sie eine `.env`-Datei im Hauptverzeichnis des Projekts und fügen den privaten Schlüssel von MetaMask und die HTTP-URL der Alchemy-API hinzu. - -- Befolgen Sie [diese Anweisungen](https://metamask.zendesk.com/hc/en-us/articles/360015289632-How-to-Export-an-Account-Private-Key), um Ihren privaten Schlüssel aus MetaMask zu importieren. - -- Unten wird erläutert, wie Sie die HTTP-URL der Alchemy-API erhalten und in die Zwischenablage kopieren. - -![Alchemy-API-URL kopieren](./copy-alchemy-api-url.gif) - -Ihre `.env`-Datei sollte nun wie folgt aussehen: - - API_URL="https://eth-ropsten.alchemyapi.io/v2/your-api-key" - PRIVATE_KEY="your-metamask-private-key" - -Um nun die Verbindung mit unserem Code zu erstellen, werden wir diese Variablen in der Datei hardhat.config.js in Schritt 13 referenzieren. - - -Führen Sie keinen Commit für .env aus. Stellen Sie sicher, dass Sie Ihre .env-Datei niemals an andere weitergeben, denn damit würden Sie Ihre geheimen Daten weitergeben. Wenn Sie die Versionskontrolle verwenden, fügen Sie Ihre Env-Datei zu einer Datei gitignore hinzu. - - -## Schritt 12: Ethers.js installieren {#install-ethers} - -Ethers.js ist eine Bibliothek, die es einfacher macht, mit Ethereum zu interagieren und Anfragen zu stellen. Dafür schließt sie [Standard-JSON-RPC-Methoden](/developers/docs/apis/json-rpc/) in benutzerfreundlichere Methoden ein. - -Hardhat macht es sehr einfach [Plug-ins](https://hardhat.org/plugins/) für zusätzliche Tools und erweiterte Funktionen zu integrieren. Wir werden das [Ethers-Plug-in](https://hardhat.org/plugins/nomiclabs-hardhat-ethers.html) für die Bereitstellung von Verträgen nutzen ([Ethers.js](https://github.com/ethers-io/ethers.js/) bietet einige sehr saubere Methoden zur Bereitstellung von Verträgen). - -Geben Sie Folgendes in Ihrem Projektverzeichnis ein: - - npm install --save-dev @nomiclabs/hardhat-ethers ethers@^5.0.0 - -Im nächsten Schritt benötigen wir auch Ether in unserer hardhat.config.js. - -## Schritt 13: hardhat.config.js aktualisieren {#update-hardhat-config} - -Wir haben bisher mehrere Abhängigkeiten und Plug-ins hinzugefügt. Jetzt müssen wir hardhat.config.js aktualisieren, damit unser Projekt über alle diese Abhängigkeiten informiert wird. - -Aktualisieren Sie Ihre hardhat.config.js so, dass sie wie folgt aussieht: - - /** - * @type import('hardhat/config').HardhatUserConfig - */ - require('dotenv').config(); - require("@nomiclabs/hardhat-ethers"); - const { API_URL, PRIVATE_KEY } = process.env; - module.exports = { - solidity: "0.8.1", - defaultNetwork: "ropsten", - networks: { - hardhat: {}, - ropsten: { - url: API_URL, - accounts: [`0x${PRIVATE_KEY}`] - } - }, - } - -## Schritt 14: Vertrag kompilieren {#compile-contract} - -Um sicherzugehen, dass so weit alles funktioniert, sollten wir unseren Vertrag erstellen. Die Aufgabe compile ist eine der integrierten Hardhat-Aufgaben. - -Führen Sie folgenden Befehl in der Befehlszeile aus: - - npx hardhat compile - -Möglicherweise erhalten Sie eine Warnung, dass die SPDX-Lizenzkennung nicht in Quelldatei angegeben sei. Doch darüber brauchen Sie sich keine Sorgen zu machen. Alles andere sieht hoffentlich gut aus. Falls nicht, können Sie jederzeit eine Nachricht im [Alchemy Discord](https://discord.gg/u72VCg3) hinterlassen. - -## Schritt 15: Bereitstellungsskript schreiben {#write-deploy} - -Nun, da unser Vertrag geschrieben und unsere Konfigurationsdatei einsatzbereit ist, ist es an der Zeit, das Skript zur Bereitstellung des Vertrags zu schreiben. - -Navigieren Sie zum Ordner `scripts/` und erstellen Sie eine neue Datei namens `deploy.js`. Fügen Sie folgende Inhalte hinzu: - -```js -async function main() { - const MyNFT = await ethers.getContractFactory("MyNFT") - - // Start deployment, returning a promise that resolves to a contract object - const myNFT = await MyNFT.deploy() - await myNFT.deployed() - console.log("Contract deployed to address:", myNFT.address) -} - -main() - .then(() => process.exit(0)) - .catch((error) => { - console.error(error) - process.exit(1) - }) -``` - -Hardhat erklärt in seinem [Vertragstutorial](https://hardhat.org/tutorial/testing-contracts.html#writing-tests) sehr gut, was die einzelnen Codezeilen bewirken. Wir haben diese Erklärungen hier übernommen. - - const MyNFT = await ethers.getContractFactory("MyNFT"); - -Eine ContractFactory in ethers.js ist eine Abstraktion, die dazu dient, neue Smart Contracts einzusetzen. So ist MyNFT eine Factory für Instanzen von unseren NFT-Vertrag. Wenn Sie das hardhat-ethers-Plug-in verwenden, werden die Instanzen ContractFactory und Contract standardmäßig mit dem ersten Unterzeichner verbunden. - - const myNFT = await MyNFT.deploy(); - -Mit dem Aufruf von deploy() über eine ContractFactory wird die Bereitstellung gestartet. Zurückgegeben wird eine Referenz, die auf einen Vertrag zeigt. Das ist das Objekt, das eine Methode für jede unserer Smart-Contract-Funktionen enthält. - -## Schritt 16: Vertragsbereitstellung {#deploy-contract} - -Nun sind wir endlich bereit, unseren Smart Contract bereitzustellen. Navigieren Sie zurück zu Ihrem Stammverzeichnis und führen Sie Folgendes über die Befehlszeile aus: - - npx hardhat --network ropsten run scripts/deploy.js - -Sie sollten dann etwas sehen wie: - - Contract deployed to address: 0x81c587EB0fE773404c42c1d2666b5f557C470eED - -Wenn wir den [Ropsten-Etherscan](https://ropsten.etherscan.io/) aufrufen und nach unserer Vertragsadresse suchen, sollten wir sehen, dass sie erfolgreich bereitgestellt wurde. Wenn sie nicht sofort angezeigt wird, haben Sie etwas Geduld, denn dieser Vorgang kann einige Zeit in Anspruch nehmen. Die Transaktion wird ungefähr so aussehen: - -![Transaktionsadresse auf Etherscan einsehen](./etherscan-transaction.png) - -Die Absenderadresse sollte mit der Adresse ihres MetaMask-Kontos übereinstimmen und in der Empfängeradresse sollte "Contract Creation" (Vertragserstellung) stehen. Wenn wir auf die Transaktion klicken ,sehen wir unsere Vertragsadresse im Empfängerfeld: - -![Vertragsadresse auf Etherscan anzeigen](./etherscan-contract.png) - -Großartig! Sie haben soeben Ihren NFT-Smart-Contract auf der Ethereum-Chain bereitgestellt. - -Um zu verstehen, was im Verborgenen vor sich geht, navigieren wir zur Explorer-Registerkarte in unserem [Alchemy-Dashboard](https://dashboard.alchemyapi.io/explorer). Wenn Sie mehrere Alchemy-Apps besitzen, filtern Sie nach Apps und wählen Sie "MyNFT" aus. - -![Mit dem Explorer-Dashboard von Alchemy Aufrufe einsehen, die im Verborgenen erfolgen](./alchemy-explorer.png) - -Hier sehen Sie eine Handvoll JSON-RPC-Aufrufe, die Hardhat/Ethers implementiert hat, als wir die .deploy()-Funktion aufgerufen haben. Zwei wichtige Funktionen, die hier aufzuführen sind, ist die [eth_sendRawTransaction](/developers/docs/apis/json-rpc/#eth_sendrawtransaction), die eine Anforderung zum Schreiben unseres Smart Contracts auf der Ropsten-Chain ist, und [eth_getTranscationByHash](/developers/docs/apis/json-rpc/#eth_gettransactionbyhash), die eine Anforderung ist, um Informationen über unsere Transaktion zu lesen, die vom Hash gegeben werden (ein typisches Muster beim Senden von Transaktionen). Wenn Sie mehr über das Senden von Transaktionen erfahren möchten, schauen Sie sich diese Anleitung an: [Transaktionen mit Web3 senden](/developers/tutorials/sending-transactions-using-web3-and-alchemy/). - -Damit sind wir am Ende vom ersten Teil dieses Tutorials. In [Teil 2 werden wir mit unserem Smart Contract interagieren, indem wir einen NFT prägen](/developers/tutorials/how-to-mint-an-nft/). In [Teil 3 werden wir Ihnen zeigen, wie Sie Ihren NFT in Ihrer Ethereum-Wallet sehen können](/developers/tutorials/how-to-view-nft-in-metamask/). diff --git a/src/content/translations/de/history/index.md b/src/content/translations/de/history/index.md deleted file mode 100644 index 97ae7a5b231..00000000000 --- a/src/content/translations/de/history/index.md +++ /dev/null @@ -1,517 +0,0 @@ ---- -title: Geschichte und Forks von Ethereum -description: Eine Geschichte der Ethereum-Blockchain, einschließlich der wichtigsten Meilensteine, Veröffentlichungen und Abspaltungen. -lang: de -sidebarDepth: 1 ---- - -# Die Geschichte von Ethereum {#the-history-of-ethereum} - -Ein Zeitstrang aller wichtigsten Meilensteine, Forks und Aktualisierungen der Ethereum-Blockchain. - - - -Forks entstehen, wenn größere technische Aktualisierungen oder Änderungen am Netzwerk vorgenommen werden müssen – sie gehen in der Regel aus Ethereum-Verbesserungsvorschlägen (EIPs) hervor und ändern die „Regeln“ des Protokolls. - -Wenn für eine Standardsoftware eine Aktualisierung benötigt wird, veröffentlicht der Hersteller lediglich eine neue Version für den Endbenutzer. Blockchains arbeiten anders, da es keinen alleinigen Besitzer gibt. Ethereum-Clients müssen ihre Software aktualisieren, um die neuen Fork-Regeln zu implementieren. Plus Block Ersteller (Miner in einer Proof-of-Work Umgebung, Validatoren in einer Proof-of-Stake Umgebung) und Nodes erstellen neue Blöcke und müssen diese, entsprechend der neuen Richtlinien, validieren. Mehr zu Konsensmechanismen -Diese Regeländerungen können eine vorübergehende Aufspaltung des Netzwerks verursachen. Neue Blöcke konnen nach den neuen oder den alten Regeln erzeugt werden. Forks werden in der Regel im Voraus vereinbart, damit die Clients die Änderungen einheitlich übernehmen und der Fork mit den Upgrades zur Main Chain wird. In seltenen Fällen können jedoch Meinungsverschiedenheiten über Forks dazu führen, dass das Netzwerk dauerhaft gespalten wird – am bekanntesten ist die Entstehung von Ethereum Classic durch den DAO Fork. - - - -Springen Sie direkt zu Informationen über einige besonders wichtige vergangene Upgrades: [Die Beacon Chain](/roadmap/beacon-chain/); [Die Zusammenführung](/roadmap/merge/); und [EIP-1559](#london) - -Suchen Sie nach weiteren Protokoll-Upgrades? [Erfahren Sie mehr über anstehende Upgrades auf der Ethereum-Roadmap](/roadmap/). - - - -## 2023 {#2023} - -### Shanghai {#shanghai} - - - -#### Zusammenfassung {#shanghai-summary} - -Das Shanghai-Update ebnete den Weg für Staking-Auszahlungen auf der Ausführungsebene. Die Fusion mit dem Capella-Upgrade ermöglichte es Blöcken, Auszahlungen zu akzeptieren, wodurch Stakern erlaubt wurde, ihre ETH von der Beacon Chain auf der Ausführungsebene abzuheben. - - - -
    -
  • EIP-3651Führt die COINBASE-Adresse ein
  • -
  • EIP-3855Neue PUSH0-Anweisung
  • -
  • EIP-3860Initcode-Größenlimit
  • -
  • EIP-4895Beacon Chain Push-Abhebungen als Operationen
  • -
  • EIP-6049Veraltet SELFDESTRUCT
  • -
- -
- -- [Lesen Sie die Spezifikation für das Shanghai-Upgrade](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/shanghai.md) - ---- - -### Capella {#capella} - - - -#### Zusammenfassung {#capella-summary} - -Das Capella-Update war das drittgrößte Upgrade für die Konsensebene (Beacon Chain) und ermöglichte Staking-Abhebungen. Mit Capella, das gleichzeitig mit dem Upgrade der Ausführungsebene, Shanghai, erfolgte, wurde die Staking-Abhebungsfunktion zur Verfügung gestellt. - -Das Upgrade für die Konsensebene ermöglichte es Stakern, die bei der ersten Einzahlung keine Abhebungen vornehmen durften, Abhebungen vorzunehmen. - -Das Upgrade hat auch eine automatische Kontenbereinigungsfunktion bereitgestellt, die kontinuierlich Validator-Konten auf verfügbare Prämienzahlungen oder vollständige Abhebungen überprüft und verarbeitet. - -- [Mehr zu Staking-Auszahlungen](/staking/withdrawals/). -- [Lesen Sie die Spezifikationen für das Capella-Upgrade](https://github.com/ethereum/consensus-specs/blob/dev/specs/capella/) - - - -## 2022 {#2022} - -### Paris (Die Zusammenführung) {#paris} - - - -#### Zusammenfassung {#paris-summary} - -Das Paris-Upgrade wurde durch das Erreichen einer [endgültigen Gesamtschwierigkeit](/glossary/#terminal-total-difficulty) von 58750000000000000000000 auf der Proof-of-Work-Blockchain ausgelöst. Dies geschah am 15. September 2022 im Block 15537393 und löste das Paris-Upgrade im nächsten Block aus. Paris war der Übergang zur [Zusammenführung (The Merge)](/roadmap/merge/) – seine wichtigste Funktion bestand darin, den [Proof-of-Work](/developers/docs/consensus-mechanisms/pow)-Mining-Algorithmus und die damit verbundene Konsenslogik abzuschalten und stattdessen [Proof-of-Stake](/developers/docs/consensus-mechanisms/pos) einzuschalten. Paris selbst war ein Upgrade für die [Ausführungsclients](/developers/docs/nodes-and-clients/#execution-clients) (entspricht Bellatrix auf der Konsensebene), das ihnen ermöglichte, Anweisungen von ihren verbundenen [Konsensclients](/developers/docs/nodes-and-clients/#consensus-clients) entgegenzunehmen. Hierfür musste ein neuer Satz interner API-Methoden aktiviert werden, der gemeinsam als [Engine-API](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) bekannt ist. Dies war wohl das bedeutendste Upgrade in der Geschichte von Ethereum seit [Homestead](#homestead)! - -- [Lesen Sie die Spezifikation für das Paris-Upgrade](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/paris.md) - - - -
    -
  • EIP-3675Ermöglicht den Übergang des Ethereum-Netzwerks vom Konsensmechanismus Proof-of-Work (PoW) zum Proof-of-Stake (PoS).
  • -
  • EIP-4399 Die SCHWIERIGKEITEN mit der Wiederverwendung und Lesbarkeit des Opcodes werden durch den PREVRANDAO behoben
  • -
- -
- ---- - -### Bellatrix {#bellatrix} - - - -#### Zusammenfassung {#bellatrix-summary} - -Das Bellatrix-Upgrade war das zweite geplante Upgrade für die [Beacon Chain](/roadmap/beacon-chain), das die Blockchain auf die [die Zusammenführung](/roadmap/merge/) vorbereitete. Es setzt Validator-Strafen für Inaktivität und strafbare Vergehen auf alle ihre Werte. Bellatrix beinhaltet auch eine Aktualisierung der Fork-Choice-Regeln, um die Blockchain auf die Zusammenführung und den Übergang vom letzten Proof-of-Work-Block zum ersten Proof-of-Stake-Block vorzubereiten. Dies beinhaltet auch, dass die Konsensclients über die [Terminale Gesamtschwierigkeit](/glossary/#terminal-total-difficulty) von 58750000000000000000000 informiert werden. - -- [Lesen Sie die Spezifikation des Bellatrix-Upgrades](https://github.com/ethereum/consensus-specs/tree/dev/specs/bellatrix) - ---- - -### Gray Glacier {#gray-glacier} - - - -#### Zusammenfassung {#gray-glacier-summary} - -Das Gray Glacier Netzwerk-Upgrade hat die [Schwierigkeitsbombe](/glossary/#difficulty-bomb) um drei Monate nach hinten verschoben. Dies ist die einzige Änderung, die in diesem Upgrade eingeführt wurde, und ähnelt den [Arrow Glacier](#arrow-glacier) und [Muir Glacier](#muir-glacier) Upgrades. Ähnliche Änderungen wurden bei den Netzwerk-Upgrades [Byzantium](#byzantium),[Constantinople](#constantinople) und [London](#london) durchgeführt. - -- [EF Blog - Gray Glacier Upgrade-Ankündigung](https://blog.ethereum.org/2022/06/16/gray-glacier-announcement/) - - - -
    -
  • EIP-5133Verzögert die Explosion der Schwierigkeitsbombe bis Ende September 2022
  • -
- -
- - - -## 2021 {#2021} - -### Arrow Glacier {#arrow-glacier} - - - -#### Zusammenfassung {#arrow-glacier-summary} - -Das Arrow Glacier Netzwerk-Upgrade hat die [Schwierigkeitsbombe](/glossary/#difficulty-bomb) um mehrere Monate nach hinten geschoben. Dies ist die einzige Änderung, die mit diesem Upgrade eingeführt wird, und ähnelt dem [Muir Glacier](#muir-glacier)-Upgrade. Ähnliche Änderungen wurden bei den Netzwerk-Upgrades [Byzantium](#byzantium),[Constantinople](#constantinople) und [London](#london) durchgeführt. - -- [EF Blog – Ankündigung des Arrow Glacier-Upgrades](https://blog.ethereum.org/2021/11/10/arrow-glacier-announcement/) -- [Ethereum Cat Herders – Ethereum Arrow Glacier-Upgrade](https://medium.com/ethereum-cat-herders/ethereum-arrow-glacier-upgrade-e8d20fa4c002) - - - -
    -
  • EIP-4345verzögert die Schwierigkeitsbombe bis Juni 2022
  • -
- -
- ---- - -### Altair {#altair} - - - -#### Zusammenfassung {#altair-summary} - -Das Altair-Upgrade war das erste geplante Upgrade für die [Beacon Chain](/roadmap/beacon-chain). Es wurde die Unterstützung für „Sync-Komitees“ hinzugefügt, die leichte Clients aktivierte und die Strafen für Inaktivität und Slashing von Validatoren erhöht, da die Entwicklung der Zusammenführung voranschritt. - -- [Lesen Sie die Spezifikation zum Altair-Upgrade](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) - -#### Fun Fact! {#altair-fun-fact} - -Altair war das erste große Netzwerk-Upgrade, für das es einen genauen Einführungszeitpunkt gab. Jedes vorherige Upgrade basierte auf einer angegebenen Blocknummer auf der Proof-of-Work-Chain, bei der die Blockzeiten variieren. Die Beacon Chain erfordert kein Lösen von Proof-of-Work und arbeitet stattdessen mit einem zeitbasierten Epochensystem, das aus 32 zwölfsekündigen „Slots" besteht, in denen Validatoren Blöcke vorschlagen können. Deshalb wussten wir genau, wann wir Epoche 74.240 erreichen würden und Altair live gehen würde! - -- [Blockzeit](/developers/docs/blocks/#block-time) - ---- - -### London {#london} - - - -#### Zusammenfassung {#london-summary} - -Das London-Upgrade führte die [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) ein, das den Markt für Transaktionsgebühren reformierte sowie Änderungen bei der Handhabung von Gasrückerstattungen und dem [Ice-Age](/glossary/#ice-age)-Zeitplan beinhaltete. - -- [Sind Sie ein dApp-Entwickler? Bitte aktualisieren Sie Ihre Bibliotheken und Werkzeuge.](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/london-ecosystem-readiness.md) -- [Lesen Sie die Ankündigung der Ethereum Foundation](https://blog.ethereum.org/2021/07/15/london-mainnet-announcement/) -- [Lesen Sie die Erklärung der Ethereum Cat Herder](https://medium.com/ethereum-cat-herders/london-upgrade-overview-8eccb0041b41) - - - -
    -
  • EIP-1559trägt zur Verbesserung der Marktbedingungen bei und senkt gleichzeitig die Transaktionsgebühren
  • -
  • EIP-3198zur Wiedergabe eines BASEFEE-Blockcodes
  • -
  • EIP-3529reduziert die Gasgebühren für EVM-Operationen
  • -
  • EIP-3541verhindert die Bereitstellung von Verträgen, verhindert, die mit 0xEF beginnen
  • -
  • EIP-3554plant, das Ice Age bis Dezember 2021 zu verlängern
  • -
- -
- ---- - -### Berlin {#berlin} - - - -#### Zusammenfassung {#berlin-summary} - -Mit dem Berlin-Upgrade wurden die Gaskosten für bestimmte EVM-Aktionen optimiert und die Unterstützung für mehrere Transaktionsarten erweitert. - -- [Lies die Ankündigung der Ethereum Foundation](https://blog.ethereum.org/2021/03/08/ethereum-berlin-upgrade-announcement/) -- [Lies die Erklärung der Ethereum Cat Herder](https://medium.com/ethereum-cat-herders/the-berlin-upgrade-overview-2f7ad710eb80) - - - -
    -
  • EIP-2565senkt die Gaskosten für ModExp
  • -
  • EIP-2718ermöglicht einen viel einfacheren Zugang zu den verschiedenen Transaktionsdiensten
  • -
  • EIP-2929Gaskostenerhöhung für Zustandszugriffs-Opcodes
  • -
  • EIP-2930fügt eine optionale Zugriffsliste hinzu
  • -
- -
- - - -## 2020 {#2020} - -### Entstehungsgeschichte der Beacon Chain {#beacon-chain-genesis} - - - -#### Zusammenfassung {#beacon-chain-genesis-summary} - -Die [Beacon Chain](/roadmap/beacon-chain/) benötigte zum sicheren Betrieb 16.384 Einzahlungen von 32 gestakten ETH. Dazu kam es am 27. November, was bedeutet, dass die Beacon Chain am 1. Dezember 2020 mit der Erzeugung von Blöcken begann. Dies ist ein wichtiger erster Schritt zur Verwirklichung der [Ethereum-Vision](/roadmap/vision/). - -[Die Ankündigung der Ethereum Foundation lesen](https://blog.ethereum.org/2020/11/27/eth2-quick-update-no-21/) - - - Die Beacon Chain - - ---- - -### Staking-Einzahlungsvertrag bereitgestellt {#staking-deposit-contract} - - - -#### Zusammenfassung {#deposit-contract-summary} - -Mit dem Staking-Einzahlungsvertrag wurde [Staking](/glossary/#staking) im Ökosystem von Ethereum eingeführt. Obwohl es sich um einen [Mainnet](/glossary/#mainnet)-Vertrag handelt, hatte er einen direkten Einfluss auf den Zeitplan für die Einführung der [Beacon Chain](/roadmap/beacon-chain/), einem wichtigen [Ethereum-Upgrade](/roadmap/). - -[Lies die Ankündigung der Ethereum Foundation](https://blog.ethereum.org/2020/11/04/eth2-quick-update-no-19/) - - - Staking - - ---- - -### Muir Glacier {#muir-glacier} - - - -#### Zusammenfassung {#muir-glacier-summary} - -Die Muir-Glacier-Fork führte eine Verzögerung in die [Schwierigkeitsbombe](/glossary/#difficulty-bomb) ein. Erhöhungen der Blockschwierigkeitsstufe des [Proof-of-Work](/developers/docs/consensus-mechanisms/pow/)-Konsensmechanismus drohten, die Nutzbarkeit von Ethereum zu verringern, indem die Wartezeiten für das Senden von Transaktionen und die Verwendung von dApps erhöht werden. - -- [Lies die Ankündigung der Ethereum Foundation](https://blog.ethereum.org/2019/12/23/ethereum-muir-glacier-upgrade-announcement/) -- [Lies die Erklärung der Ethereum Cat Herder](https://medium.com/ethereum-cat-herders/ethereum-muir-glacier-upgrade-89b8cea5a210) - - - -
    -
  • EIP-2384verzögert die Schwierigkeitsbombe um weitere 4.000.000 Blöcke, oder etwa 611 Tage.
  • -
- -
- - - -## 2019 {#2019} - -### Istanbul {#istanbul} - - - -#### Zusammenfassung {#istanbul-summary} - -Die Istanbul-Fork: - -- Optimierte die [Gaskosten](/glossary/#gas) für bestimmte Aktionen in der [EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine). -- Verbesserte Widerstandskraft gegen Denial-of-Service-Angriffe. -- Machte [Skalierungslösungen der Ebene 2](/developers/docs/scaling/#layer-2-scaling) basierend auf SNARKs und STARKs leistungsstärker. -- Aktivierte Ethereum und Zcash zur Interoperation. -- Ermöglichte Verträgen, kreativere Funktionen einzuführen. - -[Lies die Ankündigung der Ethereum Foundation](https://blog.ethereum.org/2019/11/20/ethereum-istanbul-upgrade-announcement/) - - - -
    -
  • EIP-152ermöglicht es dem Ethereum-Netzwerk, mit anonymen Währungen wie Zcash zu arbeiten, wodurch das Recht auf Privatsphäre geschützt werden kann.
  • -
  • EIP-1108eine günstigere Kryptographie zur Optimierung der Gaskosten.
  • -
  • EIP-1344schützt Ethereum vor Wiederholungsangriffen durch Hinzufügen des CHAINID -Opcodes.
  • -
  • EIP-1884die Optimierung der Gaspreis-Verfahrenscodes auf der Grundlage des Gasverbrauchs.
  • -
  • EIP-2028reduziert die Kosten für „CallData“, mit dem Ziel, mehr Daten in den Blöcken zu implementieren – gut für Layer-2-Skalierbarkeit.
  • -
  • EIP-2200 -weitere Änderungen der Gaspreisverfahrenscodes.
  • -
- -
- ---- - -### Constantinople {#constantinople} - - - -#### Zusammenfassung {#constantinople-summary} - -Die Constantinople-Fork: - -- Sie stellte sicher, dass die Blockchain nicht einfrieren konnte, bevor der [Proof-of-Stake](#beacon-chain-genesis) implementiert wurde. -- Optimierte die [Gas-](/glossary/#gas)-Kosten für bestimmte Aktionen in der [EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine). -- Fügte die Möglichkeit hinzu, mit Adressen zu interagieren, die noch nicht erstellt wurden. - -[Lies die Ankündigung der Ethereum Foundation](https://blog.ethereum.org/2019/02/22/ethereum-constantinople-st-petersburg-upgrade-announcement/) - - - -
    -
  • EIP-145optimiert die Kosten von bestimmten On-Chain-Aktionen.
  • -
  • EIP-1014erlaubt es Ihnen, Adressen zu verwenden, die noch nicht angelegt wurden.
  • -
  • EIP-1052optimiert die Kosten bestimmter On-Chain-Aktionen.
  • -
  • EIP-1234stellt sicher, dass die Blockchain vor dem Proof-of-Stake-Verfahren nicht eingefroren wird.
  • -
- -
- - - -## 2017 {#2017} - -### Byzantium {#byzantium} - - - -#### Zusammenfassung {#byzantium-summary} - -Die Byzantium-Fork: - -- Reduzierte die Block-[Mining](/developers/docs/consensus-mechanisms/pow/mining/)-Prämien von 5 auf 3 ETH. -- Verzögerte die [Schwierigkeitsbombe](/glossary/#difficulty-bomb) um ein Jahr. -- Fügte die Möglichkeit hinzu, nicht zustandsverändernde Aufrufe zu anderen Verträgen zu tätigen. -- Fügte bestimmte Kryptographie-Methoden hinzu, um [Layer-2-Skalierung](/developers/docs/scaling/#layer-2-scaling) zu ermöglichen. - -[Die Ankündigung der Ethereum Foundation lesen](https://blog.ethereum.org/2017/10/12/byzantium-hf-announcement/) - - - -
    -
  • EIP-140integriert den Operationscode REVERT.
  • -
  • EIP-658Statusfeld zu Transaktionsbelegen hinzugefügt, Erfolg oder Misserfolg anzuzeigen.
  • -
  • EIP-196integriert die elliptische Kurve sowie die Multiplikation mit einem Skalar, die die Verwendung von ZK-Snarks ermöglichen.
  • -
  • EIP-197fügt elliptische Kurven und Skalarmultiplikation hinzu, um ZK-Snarks zu ermöglichen.
  • -
  • EIP-198aktiviert Überprüfung der RSA-Signatur.
  • -
  • EIP-211fügt Unterstützung der Ausgabewerte eines Variableninhalts hinzu.
  • -
  • EIP-214integriert den Verfahrenscode, STATICCALL der nicht zustandsveränderte Aufrufe für andere Verträge erlaubt.
  • -
  • EIP-100ändert die Formel für die Einstellung des Schwierigkeitsgrades.
  • -
  • EIP-649verzögert die Schwierigkeitsbombe um ein Jahr und senkt die vollen Blockprämien von 5 auf 3 ETH.
  • -
- -
- - - -## 2016 {#2016} - -### Spurious Dragon {#spurious-dragon} - - - -#### Zusammenfassung {#spurious-dragon-summary} - -Die Spurious-Dragon-Fork war die zweite Reaktion auf die Denial-of-Service(DoS)-Angriffe auf das Netzwerk (September/Oktober 2016), einschließlich: - -- Abstimmen der Verfahrenscode-Preise, um zukünftige Angriffe auf das Netzwerk zu verhindern. -- Aktivierung von „Debloat“ (Wachstumsveringerung) für den Blockchain-Zustand. -- Hinzufügen von Replay-Angriffsschutz. - -[Lies die Ankündigung der Ethereum Foundation](https://blog.ethereum.org/2016/11/18/hard-fork-no-4-spurious-dragon/) - - - -
    -
  • EIP-155verhindert, dass Transaktionen von einer Ethereum-Blockchain wieder auf einer alternativen Blockchain gesendet werden. Beispiel: Eine Testnetz-Transaktion, die auf der Ethereum Haupt-Blockchain wiedergegeben wird.
  • -
  • EIP-160passt Preise des EXP-Verfahrenscodes an – und wirkt somit der Verlangsamung des Netzwerks durch rechenintensive Vertragsklauseln entgegen.
  • -
  • EIP-161ermöglicht das Löschen leerer Konten, die bei DOS-Attacken hinzugefügt wurden.
  • -
  • EIP-170ändert die maximale Codegröße, die ein Vertrag in der Blockchain haben kann, in 24576 Bytes.
  • -
- -
- ---- - -### Tangerine Whistle {#tangerine-whistle} - - - -#### Zusammenfassung {#tangerine-whistle-summary} - -Die Tangerine-Whistle-Fork war die erste Reaktion auf die Denial-of-Service(DoS)-Angriffe auf das Netzwerk (September/Oktober 2016), einschließlich: - -- Lösung der dringenden Probleme im Bereich der Netzwerkgesundheit im Zusammenhang mit unterbewerteten Verfahrenscodes. - -[Lies die Ankündigung der Ethereum Foundation](https://blog.ethereum.org/2016/10/18/faq-upcoming-ethereum-hard-fork/) - - - -
    -
  • EIP-150erhöht die Gaskosten der Verfahrenscodes, die bei Spam-Attacken verwendet werden können.
  • -
  • EIP-158reduziert die Zustandsgröße, indem sie eine große Anzahl leerer Konten entfernt, die aufgrund von Fehlern in früheren Versionen des Ethereum-Protokolls ursprünglich minimale Transaktionsgebühren enthielten.
  • -
- -
- ---- - -### DAO-Fork {#dao-fork} - - - -#### Zusammenfassung {#dao-fork-summary} - -Die DAO-Abspaltung war eine Reaktion auf den [DAO-Angriff 2016](https://www.coindesk.com/learn/understanding-the-dao-attack/), bei dem einem unsicheren [DAO](/glossary/#dao)-Vertrag durch einen Hack über 3,6 Millionen ETH entzogen wurden. Die Fork verschiebt das Guthaben aus dem fehlerhaften Vertrag in einen [neuen Vertrag](https://etherscan.io/address/0xbf4ed7b27f1d666546e30d74d50d173d20bca754) mit einer einzigen Funktion: Abheben. Jeder, der Geld verloren hat, konnte 1 ETH für jeden 100 DAO-Token in seiner Wallet abheben. - -Über diese Vorgehensweise wurde seitens der Ethereum-Community abgestimmt. Jeder ETH-Inhaber konnte über eine Transaktion auf [, einer Abstimmungsplattform,](https://web.archive.org/web/20170620030820/http://v1.carbonvote.com/) abstimmen. Die Entscheidung für die Fork erhielt mehr als 85 % der Stimmen. - -Einige Miner weigerten sich, die Abspaltung mitzutragen, da der Vorfall des DAO keinen Fehler im Protokoll darstellte. Sie gründeten daraufhin [Ethereum Classic](https://ethereumclassic.org/). - -[Lies die Ankündigung der Ethereum Foundation](https://blog.ethereum.org/2016/07/20/hard-fork-completed/) - ---- - -### Homestead {#homestead} - - - -#### Zusammenfassung {#homestead-summary} - -Die Homestead-Fork, die in die Zukunft schaute. Sie enthielt mehrere Protokolländerungen und eine Änderung des Netzwerks, die Ethereum die Möglichkeit gab, weitere Netzwerk-Upgrades durchzuführen. - -[Lies die Ankündigung der Ethereum Foundation](https://blog.ethereum.org/2016/02/29/homestead-release/) - - - -
    -
  • EIP-2ermöglicht es Bearbeitungen bei der Entwicklung von Smart Contracts vorzunehmen.
  • -
  • EIP-7 -führt einen neuen Verfahrenscode ein: DELEGATECALL
  • -
  • EIP-8präsentiert DEVP2P zur Erfüllung der Kompatibilitätsanforderungen
  • -
- -
- - - -## 2015 {#2015} - -### Frontier Thawing {#frontier-thawing} - - - -#### Zusammenfassung {#frontier-thawing-summary} - -Die Frontier-Thawing-Fork hob das 5.000 [Gas](/glossary/#gas)-Limit pro [Block](/glossary/#block) auf und setzte den Standardgaspreis auf 51 [gwei](/glossary/#gwei). Dies erlaubte Transaktionen – Transaktionen benötigen 21.000 Gas. Die [Schwierigkeitsbombe](/glossary/#difficulty-bomb) wurde eingeführt, um eine zukünftige harte Abspaltung zu [Proof-of-Stake](/glossary/#pos) sicherzustellen. - -- [Lies die Ankündigung der Ethereum Foundation](https://blog.ethereum.org/2015/08/04/the-thawing-frontier/) -- [Lesen Sie das Ethereum Protokoll-Update 1](https://blog.ethereum.org/2015/08/04/ethereum-protocol-update-1/) - ---- - -### Frontier {#frontier} - - - -#### Zusammenfassung {#frontier-summary} - -Frontier war live, aber soweit nur die Implementierung eines grundsätzlichen Rahmens des Ethereum-Projekts. Es folgte der erfolgreichen olympischen Testphase. Es war für technische Benutzer gedacht, speziell für Entwickler. [Blöcke](/glossary/#block) hatten ein [Gas](/glossary/#gas)-Limit von 5.000. Diese Zeit des „Auftauens" ermöglichte es den Minern, ihren Betrieb zu starten und für Early-Adopters, ihre Kunden zu installieren, ohne dies „überstürzen“ zu müssen. - -[Lies die Ankündigung der Ethereum Foundation](https://blog.ethereum.org/2015/07/22/frontier-is-coming-what-to-expect-and-how-to-prepare/) - - - -## 2014 {#2014} - -### Ether-Verkauf {#ether-sale} - - - -Ether ging offiziell 42 Tage lang in den Verkauf. Man konnte es mit BTC kaufen. - -[Lies die Ankündigung der Ethereum Foundation](https://blog.ethereum.org/2014/07/22/launching-the-ether-sale/) - ---- - -### Yellowpaper veröffentlicht {#yellowpaper} - - - -Das Yellowpaper, verfasst von Dr. Gavin Wood, ist eine technische Definition des Ethereum-Protokolls. - -[Yellowpaper anzeigen](https://github.com/ethereum/yellowpaper) - - - -## 2013 {#2013} - -### Whitepaper veröffentlicht {#whitepaper} - - - -Dieses einleitende Papier wurde ursprünglich 2013 von Vitalik Buterin, dem Gründer von Ethereum, vor dem Projektstart im Jahr 2015 veröffentlicht. - - - Whitepaper - diff --git a/src/content/translations/de/nft/index.md b/src/content/translations/de/nft/index.md deleted file mode 100644 index e0c6edc3282..00000000000 --- a/src/content/translations/de/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Non Fungible Token (NFT) -description: Ein Überblick über NFTs bei Ethereum -lang: de -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: Ein als Hologramm abgebildetes ETH-Logo. -summaryPoint1: Ein Weg, alles Einzigartige als eine Ethereum-basierte Anlage darzustellen. -summaryPoint2: NFTs geben Inhaltserstellern mehr Einfluss denn je. -summaryPoint3: Auf Grundlage von intelligenten Verträgen auf der Ethereum-Blockchain. ---- - -## Was sind NFTs? {#what-are-nfts} - -NFTs, also Non Fungible Token, sind Token, die individuell einzigartig sind. Jeder NFT hat unterschiedliche Eigenschaften (nicht-fungibel) und ist nachweislich nur begrenzt verfügbar. Das ist ein Unterschied zu Token wie beispielsweise ERC-20s, bei denen alle Token desselben Typs identisch sind und die gleichen Eigenschaften aufweisen ('fungibel'). Vermutlich ist es Ihnen egal, welche Dollarnote Sie in Ihrer Brieftasche haben, denn sie sind alle identisch und gleich viel wert. Im Gegensatz dazu _ist_ es nicht egal, welchen spezifischen NFT Sie besitzen, da alle individuelle Eigenschaften haben, die sie von anderen unterscheiden ('nicht-fungibel'). - -Die Einzigartigkeit eines jeden NFT ermöglicht die Tokenisierung von Dingen wie Kunst, Sammlerstücken oder sogar Immobilien. Dabei stellt jeder bestimmte einzigartige NFT einen bestimmten einzigartigen realen oder digitalen Gegenstand dar. Das Eigentum an einem Vermögenswert ist durch die Ethereum-Blockchain gesichert – niemand kann die Aufzeichnung des Eigentums ändern oder einen neuen NFT kopieren/einfügen. - - - -## Das Internet der Vermögenswerte {#internet-of-assets} - -NFTs und Ethereum lösen einige der Probleme, die heute mit dem Internet bestehen. Da alles digital wird, braucht es Möglichkeiten, die Eigenschaften physischer Objekte wie Knappheit, Einzigartigkeit und den Eigentumsnachweis digital nachzubilden. Dieser Eigentumsnachweis sollte dabei nicht von einer zentralen Organisation kontrolliert werden. Mit NFTs können Sie z. B. eine Musikdatei im MP3-Format besitzen, die nicht an eine bestimmte Musik-App eines Unternehmens gebunden ist, oder Sie können einen Social-Media-Handle besitzen, den Sie verkaufen oder tauschen können, welcher Ihnen aber nicht willkürlich von einem Plattformanbieter entzogen werden kann. - -Doch wie könnte ein Internet der NFTs im Vergleich zum Internet von heute aussehen? - -### Ein Vergleich {#nft-comparison} - -| Internet der NFTs | Das Internet heute | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Sie besitzen Ihre Vermögenswerte! Nur Sie können sie verkaufen oder eintauschen. | Sie leihen sich Vermögenswerte von anderen Organisationen aus. | -| NFTs sind digital einzigartig. Es ist nicht möglich, dass zwei NFTs identisch sind. | Die Kopie eines Objektes ist oft nicht vom Original zu unterscheiden. | -| Das Eigentum an einem NFT wird in der Blockchain gespeichert und kann von jedem überprüft werden. | Eigentumsnachweise von digitalen Objekten werden auf Servern gespeichert, die von Institutionen kontrolliert werden. Denen müssen Sie vertrauen. | -| NFTs sind Smart Contracts auf Ethereum. Das bedeutet, dass sie problemlos in anderen Smart Contracts und Anwendungen auf Ethereum verwendet werden können. | Unternehmen mit digitalen Objekten benötigen in der Regel ihre eigene geschützte Infrastruktur. | -| Inhaltsersteller können ihre Arbeit überall verkaufen und auf einen globalen Markt zugreifen. | Dabei sind die Ersteller von der Infrastruktur und Distribution der Plattform abhängig, die sie nutzen. Für diese gelten häufig Nutzungsbedingungen und geografische Einschränkungen. | -| Schöpfer von NFTs können die Eigentumsrechte an ihren eigenen Werken behalten und die Tantiemen direkt in dem NFT-Vertrag einarbeiten. | Plattformen, wie z. B. Musik-Streaming-Dienste, behalten einen Großteil der Verkaufserlöse ein. | - -## Wie funktionieren NFTs? {#how-nfts-work} - -Wie alle Token auf Ethereum werden auch NFTs von einem Smart Contract herausgegeben. Der Smart Contract entspricht einem von mehreren NFT-Standards (für gewöhnlich ERC-721 oder ERC-1155), die festlegen, welche Funktionen der Contract hat. Der Contract kann NFTs erzeugen ('mint') und weist sie einem spezifischen Besitzer zu. Die Eigentümerschaft wird im Contract definiert, indem bestimmte NFTs bestimmten Adressen zugeordnet werden. Der NFT hat eine eigene ID und in der Regel auch Metadaten, die den jeweiligen Token eindeutig machen. - -Wenn jemand einen NFT erstellt oder prägt, führt er in Wirklichkeit eine Funktion im Smart Contract aus, die seiner Adresse einen bestimmten NFT zuweist. Diese Informationen werden im Speicher des Contracts verwahrt, der Teil der Blockchain ist. Der Ersteller des Contracts kann zusätzliche Funktionen in den Vertrag einbauen, z. B. eine Begrenzung des Gesamtangebots oder die Festlegung von Tantiemen, die bei jeder Übertragung eines Tokens an den Ersteller zu zahlen sind. - -## Wofür werden NFTs verwendet? {#nft-use-cases} - -NFTs werden unter anderem für folgende Zwecke eingesetzt: - -- den Nachweis, dass Sie eine Veranstaltung besucht haben -- Bescheinigung, dass Sie einen Kurs absolviert haben -- Gegenstände aus Spielen, an denen Besitzrechte gehalten werden können -- digitale Kunst -- Tokenisierung von Vermögenswerten der realen Welt -- Nachweis Ihrer Online-Identität -- Zugangsbeschränkung zu Inhalten -- Ticketverkauf -- Dezentralisierung von Internet-Domänennamen -- Sicherheiten in DeFi - -Vielleicht sind Sie ein Künstler, der seine Werke mit Hilfe von NFTs verbreiten möchte, ohne die Kontrolle über die Werke zu verlieren und seine Gewinne an Zwischenhändler zu opfern. Sie können einen neuen Contract erstellen und die Anzahl der NFTs, ihre Eigenschaften und eine Verknüpfung zu bestimmten Kunstwerken angeben. Als Künstler können Sie in den Smart Contract einprogrammieren, welche Tantiemen Sie erhalten sollen (z. B. <Überweisung on 5 % des Verkaufspreises an den Vertragseigentümer, wenn ein NFT übertragen wird). Sie können außerdem jederzeit nachweisen, dass Sie die NFTs erstellt haben, weil Sie die Wallet besitzen, die den Vertrag eingesetzt hat. Ihre Käufer können leicht nachweisen, dass sie einen echten NFT aus Ihrer Sammlung besitzen, da ihre Walletadresse mit einem Token in Ihrem Smart Contract verknüpft ist. Sie können ihn im gesamten Ethereum-Ökosystem verwenden und sich auf seine Authentizität verlassen. - -Oder denken Sie ein Ticket für ein Sportevent. So wie ein Veranstalter für seine Veranstaltung entscheiden kann, wie viele Tickets verkauft werden, kann der Ersteller eines NFT entscheiden, wie viele Repliken existieren. Manchmal handelt es sich dabei um genaue Repliken, wie etwa 5.000 Eintrittskarten. Manchmal werden auch mehrere Stücke geprägt, die zwar sehr ähnlich sind, aber doch leichte Unterschiede aufweisen, wie z. B. ein Ticket mit einem zugewiesenem Sitzplatz. Diese können in Peer-to-Peer-Umgebungen gekauft und verkauft werden, ohne dass Zwischenhändler dafür bezahlt werden müssen. Dabei kann sich der Käufer durch Überprüfung der Adresse des Contracts stets von der Echtheit des Tickets überzeugen. - -Auf ethereum.org werden NFTs verwendet, um zu zeigen, dass Leute zu unserer GitHub-Ablage beigetragen oder an Calls teilgenommen haben, und wir haben sogar unseren eigenen NFT-Domainnamen. Wenn Sie einen Beitrag für ethereum.org leisten, können Sie ein POAP-NFT beanspruchen. Einige Krypto-Treffen nutzen POAPs als Zutrittskarte. [Mehr zum Beitragen](/contributing/#poap). - -![ethereum.org POAP](./poap.png) - -Diese Website hat einen alternativen Domainnamen ermöglicht durch NFTs, **ethereum.eth**. Unsere `.org`-Adresse wird zentral von einem Domain Name System Provider (DNS) verwaltet. ethereum`.eth` hingegen ist über den Ethereum Name Service (ENS) registriert. Und sie gehört uns und wird von uns verwaltet. [Schauen Sie sich unseren ENS-Datensatz an](https://app.ens.domains/name/ethereum.eth). - -[Mehr zu ENS](https://app.ens.domains) - - - -### NFT-Sicherheit {#nft-security} - -Die Sicherheit von Ethereum basiert auf Proof-of-Stake. Das System ist darauf ausgelegt, böswillige Handlungen mithilfe finanziell negativer Anreize zu verhindern und Ethereum dadurch Manipulationen gegenüber sicherer zu machen. Das macht NFTs überhaupt erst möglich. Sobald der Block, der Ihre NFT-Transaktion beinhaltet, endgültig festgelegt wird, würde es einen Angreifer Millionen von ETH kosten, um dies wieder zu ändern. Jeder, der Ethereum-Software ausführt, würde die unehrliche Manipulation mit einem NFT sofort erkennen können und der Angreifer würde eine finanzielle Strafe erhalten und ausgeschlossen werden. - -Sicherheitsprobleme mit NFTs stehen oft im Zusammenhang mit Phishing-Betrügereien, Schwachstellen bei Smart Contracts oder Benutzerfehlern (z. B. unbeabsichtigtes Veröffentlichen privater Schlüssel). Damit wird eine sichere Wallet für NFT-Besitzer umso wichtiger. - - - Weiteres zur Sicherheit - - -## Weiterführende Informationen {#further-reading} - -- [NFT-Leitfaden für Einsteiger](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, Januar 2020_ -- [EtherscanNFT Tracker](https://etherscan.io/nft-top-contracts) -- [ERC-721-Token-Standard](/developers/docs/standards/tokens/erc-721/) -- [ERC-1155-Token-Standard](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/de/refi/index.md b/src/content/translations/de/refi/index.md deleted file mode 100644 index 4b3bca14d01..00000000000 --- a/src/content/translations/de/refi/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: Regenerative Finanzen (ReFi) -description: Ein Überblick über ReFi und die aktuellen Anwendungsfälle. -lang: de -template: use-cases -emoji: ":recycle:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Ein alternatives, auf regenerativen Prinzipien beruhendes Wirtschaftssystem -summaryPoint2: Ein Versuch, Ethereum für die Lösung globaler Koordinationskrisen wie dem Klimawandel nutzbar zu machen -summaryPoint3: Ein Instrument zur drastischen Skalierung von Gütern für ökologischen Nutzen wie geprüften Kohlenstoffgutschriften ---- - -## Was ist ReFi? {#what-is-refi} - -**Regenerative Finanzen (ReFi)** ist eine Reihe von Instrumenten und Ideen, die auf Blockchains aufbauen und darauf abzielen, eine Wirtschaft zu schaffen, die regenerativ ist und nicht extraktiv oder ausbeuterisch. Schließlich erschöpfen extraktive Systeme die verfügbaren Ressourcen und brechen irgendwann zusammen. Ohne Regenerationsmechanismen fehlt ihnen die Widerstandsfähigkeit. ReFi geht von der Annahme aus, dass die Schaffung von Geldwerten entkoppelt werden muss von einer nicht nachhaltigen Entnahme von Ressourcen aus unserem Planeten und unseren Gemeinschaften. - -Stattdessen zielt ReFi darauf ab, ökologische, kommunale oder soziale Probleme zu lösen, indem es regenerative Kreisläufe schafft. Diese Systeme schaffen Werte für die Teilnehmer und kommen gleichzeitig den Ökosystemen und Gemeinschaften zugute. - -Eine der Grundlagen von ReFi ist das Konzept der regenerativen Wirtschaft, das von John Fullerton vom [Capital Institute](https://capitalinstitute.org) erdacht wurde. Er schlug acht miteinander verknüpfte Grundsätze vor, die der systemischen Gesundheit zugrunde liegen: - -![Acht miteinander verknüpfte Grundsätze](../../assets/use-cases/refi-regenerative-economy-diagram.png) - -ReFi-Projekte verwirklichen diese Prinzipien mithilfe von [Smart Contracts](/developers/docs/smart-contracts/) und [dezentralen Finanzen (DeFi)](/defi/), um Anreize für regenerative Verhaltensweisen zu schaffen, z. B. für die Wiederherstellung geschädigter Ökosysteme, und die Zusammenarbeit in großem Maßstab bei globalen Problemen wie Klimawandel und Verlust der Artenvielfalt zu erleichtern. - -ReFi überschneidet sich auch mit der Bewegung der [dezentralen Wissenschaft (DeSci)](/desci/), die Ethereum als Plattform für die Finanzierung, Erstellung, Überprüfung, Gutschrift, Speicherung und Verbreitung wissenschaftlicher Erkenntnisse nutzt. DeSci-Instrumente könnten sich als nützlich erweisen, um überprüfbare Standards und Praktiken für die Umsetzung und Überwachung regenerativer Aktivitäten wie das Pflanzen von Bäumen, die Entfernung von Plastik aus den Ozeanen oder die Wiederherstellung eines geschädigten Ökosystems zu entwickeln. - -## Tokenisierung von Kohlenstoffgutschriften {#tokenization-of-carbon-credits} - -Der **[freiwillige Kohlenstoffmarkt (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** ist ein Mechanismus zur Finanzierung von Projekten, die sich nachweislich positiv auf die Kohlenstoffemissionen auswirken, indem sie entweder laufende Emissionen reduzieren oder bereits emittierte Treibhausgase aus der Atmosphäre entfernen. Diese Projekte erhalten nach ihrer Verifizierung einen Vermögenswert, die so genannten "Kohlenstoffgutschriften", die sie an Einzelpersonen und Organisationen verkaufen können, die den Klimaschutz unterstützen wollen. - -Neben dem VCM gibt es auch mehrere staatlich verordnete Kohlenstoffmärkte ("Einhaltungs-Märkte"), die darauf abzielen, durch Gesetze oder Verordnungen innerhalb einer bestimmten Rechtsordnung (z. B. Land oder Region) einen Kohlenstoffpreis festzulegen und das Angebot an zu verteilenden Zertifikaten zu steuern. Die Märkte für die Einhaltung der Vorschriften bieten den Verursachern in ihrem Zuständigkeitsbereich Anreize zur Verringerung der Emissionen, aber sie sind nicht in der Lage, bereits emittierte Treibhausgase zu beseitigen. - -Trotz seiner Entwicklung in den letzten Jahrzehnten hat das VCM nach wie mit einigen Problemen zu kämpfen: - -1. Hochgradig fragmentierte Liquidität -2. Undurchsichtige Transaktionsmechanismen -3. Hohe Gebühren -4. Sehr langsame Handelsgeschwindigkeit -5. Mangelnde Skalierbarkeit - -Die Umstellung des VCM auf einen neuen, auf der Blockchain basierenden **digitalen Kohlenstoffmarkt (DCM)** könnte eine Gelegenheit sein, die bestehende Technologie für die Validierung, den Handel und den Verbrauch von Kohlenstoffgutschriften zu verbessern. Blockchains ermöglichen öffentlich überprüfbare Daten, den Zugang für einen breiten Nutzerkreis und mehr Liquidität. - -Bei ReFi-Projekten wird die Blockchain-Technologie eingesetzt, um viele der Probleme des traditionellen Marktes zu lindern: - -- **Die Liquidität konzentriert sich in einer kleinen Anzahl von Liquiditätspools**, die von jedem frei gehandelt werden können. Sowohl große Organisationen als auch einzelne Nutzer können diese Pools ohne manuelle Suche nach Verkäufern/Käufern, Teilnahmegebühren oder vorherige Registrierung nutzen. -- **Alle Transaktionen werden auf öffentlichen Blockchains aufgezeichnet**. Der Weg, den jede Emissionsgutschrift aufgrund von Handelsaktivitäten nimmt, ist für immer nachvollziehbar, sobald sie im DCM zur Verfügung gestellt wird. -- **Die Transaktionsgeschwindigkeit ist nahezu unmittelbar**. Die Beschaffung großer Mengen an Emissionsgutschriften über die herkömmlichen Märkte kann Tage oder Wochen dauern, während dies im DCM in wenigen Sekunden möglich ist. -- **Die Handelstätigkeit erfolgt ohne Zwischenhändler**, die hohe Gebühren verlangen. Digitale Emissionsgutschriften stellen eine [62%ige Kostenverbesserung im Vergleich zu entsprechenden traditionellen Gutschriften](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne) dar, so die Daten eines Analyseunternehmens. -- **Das DCM ist skalierbar** und kann die Anforderungen von Einzelpersonen und multinationalen Unternehmen gleichermaßen erfüllen. - -### Hauptbestandteile des DCM {#key-components-dcm} - -Die derzeitige Landschaft des DCM setzt sich aus vier Hauptkomponenten zusammen: - -1. Register wie [Verra](https://verra.org/project/vcs-program/registry-system/) und [Gold Standard](https://www.goldstandard.org/) sorgen dafür, dass Projekte, die Emissionsgutschriften erzeugen, auch zuverlässig sind. Sie betreiben auch die Datenbanken, in denen digitale Kohlenstoffgutschriften erzeugt und übertragen oder verbraucht werden können ("retired"). - -Es gibt eine neue Welle innovativer Projekte, die auf Blockchains aufbauen und versuchen, die Stellung der etablierten Unternehmen in diesem Sektor ins Wanken zu bringen. - -2. Kohlenstoffbrücken, auch bekannt als Tokenizer, sie bieten eine Technologie zur Darstellung oder Übertragung von Emissionsgutschriften aus traditionellen Registern in das DCM. Nennenswerte Beispiele sind [Toucan Protocol](https://toucan.earth/), [C3](https://c3.app/) und [Moss.Earth](https://moss.earth/). -3. Integrierte Dienste bieten den Endnutzern Gutschriften für die Vermeidung und/oder Beseitigung von Kohlenstoff, sodass sie den Umweltnutzen einer Gutschrift in Anspruch nehmen und ihre Unterstützung für den Klimaschutz mit der Welt teilen können. - -Einige, wie zum Beispiel [Klima Infinity](https://www.klimadao.finance/infinity) und [Senken](https://senken.io/) bieten eine breite Palette von Projekten an, die von Dritten entwickelt und unter etablierten Standards wie Verra veröffentlicht wurden. Andere wie [Nori](https://nori.com/) bieten nur bestimmte Projekte an, die nach ihrem eigenen Standard für Emissionsgutschriften entwickelt wurden, den sie ausgeben und für den sie einen eigenen Marktplatz haben. - -4. Das zugrundeliegende System und die Infrastruktur, die die Ausweitung von Wirkung und Effizienz der gesamten Lieferkette des Kohlenstoffmarktes erleichtern. [KlimaDAO](http://klimadao.finance/) stellt Liquidität als öffentliches Gut zur Verfügung (und ermöglicht es jedem, Emissionsgutschriften zu einem transparenten Preis zu kaufen oder zu verkaufen), schafft Anreize für einen erhöhten Durchsatz auf den Emissionshandelsmärkten und für die Stilllegung von Emissionsgutschriften durch Belohnungen und bietet benutzerfreundliche, interoperable Tools für den Zugriff auf Daten sowie für den Erwerb und die Stilllegung einer Vielzahl von tokenisierten Emissionsgutschriften. - -## ReFi über Kohlenstoffmärkte hinaus {#refi-beyond} - -Obwohl der Schwerpunkt derzeit auf Kohlenstoffmärkten im Allgemeinen und dem Übergang von VCM zu DCM im Besonderen liegt, ist der Begriff "ReFi" nicht auf Kohlenstoff beschränkt. Neben Kohlenstoffgutschriften können andere Umweltgüter entwickelt und mit Token versehen werden. Das bedeutet, dass auch andere negative externe Effekte in den Basisebenen zukünftiger Wirtschaftssysteme bepreist werden können. Darüber hinaus kann der regenerative Aspekt dieses Wirtschaftsmodells auch auf andere Bereiche angewandt werden, z. B. auf die Finanzierung öffentlicher Güter über quadratische Finanzierungsplattformen wie [Gitcoin](https://gitcoin.co/). Organisationen, die auf der Idee der offenen Beteiligung und der gerechten Verteilung von Ressourcen beruhen, ermöglichen es jedem, Geld in Open-Source-Softwareprojekte sowie in Bildungs-, Umwelt- und Gemeinschaftsprojekte zu stecken. - -Durch die Umlenkung des Kapitals weg von extraktiven Praktiken hin zu einem regenerativen Fluss können Projekte und Unternehmen, die soziale, ökologische oder kommunale Vorteile bieten und die bei der herkömmlichen Finanzierung möglicherweise nicht zum Zuge kommen, viel schneller und einfacher in Gang kommen und positive externe Effekte für die Gesellschaft erzeugen. Der Übergang zu diesem Finanzierungsmodell öffnet auch die Tür zu viel integrativeren Wirtschaftssystemen, in denen Menschen aller Bevölkerungsgruppen aktive Teilnehmer und nicht nur passive Beobachter werden können. ReFi bietet eine Vision von Ethereum als Mechanismus zur Koordinierung von Maßnahmen zur Bewältigung existenzieller Herausforderungen, denen unsere Spezies und alles Leben auf unserem Planeten gegenübersteht – als Grundlage für ein neues Wirtschaftsparadigma, das eine integrativere und nachhaltigere Zukunft für die kommenden Jahrhunderte ermöglicht. - -## Weitere Informationen zur ReFi - -- [Ein umfassender Überblick über Kohlenstoffwährungen und ihren Platz in der Wirtschaft](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) -- [Das Ministerium für die Zukunft, ein Roman über die Rolle einer kohlenstoffgestützten Währung bei der Bekämpfung des Klimawandels](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) -- [Ein ausführlicher Bericht der Taskforce für die Skalierung freiwilliger Kohlenstoffmärkte](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) -- [Kevin Owocki und Evan Miyazonos CoinMarketCap Glossar-Eintrag über ReFi](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/de/roadmap/beacon-chain/index.md b/src/content/translations/de/roadmap/beacon-chain/index.md deleted file mode 100644 index 307f4c86a90..00000000000 --- a/src/content/translations/de/roadmap/beacon-chain/index.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: Die Beacon Chain -description: Informieren Sie sich über die Beacon Chain – das Upgrade, mit dem Proof-of-Stake für Ethereum eingeführt wurde -lang: de -template: upgrade -image: ../../../../../assets/upgrades/core.png -summaryPoint1: Mit der Bacon Chain wurde Proof-of-Stake in das Ethereum Ökosystem eingeführt. -summaryPoint2: Sie wurde 2022 mit der ursprünglichen Ethereum Proof-of-Work Blockchain vereinigt. -summaryPoint3: Die Beacon Chain führte die Konsenslogik und das Block-Gossip-Protokoll ein, das nun Ethereum sichert. ---- - - - Die Beacon Chain, die am 1. Dezember 2020 an den Start ging, formalisierte Proof-of-Stake als Konsensmechanismus von Ethereum mit dem Merge Upgrade am 15. September 2022. - - -## Was ist die Beacon Chain? {#what-is-the-beacon-chain} - -Die Beacon Chain ist der Name der ursprünglichen Proof-of-Stake (Anteilsnachweis) Blockchain, die im Jahr 2020 eingeführt wurde. Sie wurde geschaffen, um sicherzustellen, dass die Proof-of-Stake Konsenslogik sicher und nachhaltig ist, bevor sie auf dem Ethereum Mainnet eingeführt wurde. Sie wurde daher neben dem ursprünglichen Proof-of-Work Konsens für Ethereum betrieben. Die Beacon Chain bestand aus 'leeren' Blöcken. Die Umstellung von Proof-of-Work (Arbeitsnachweis) auf den Proof-of-Stake (Anteilsnachweis) Mechanismus auf Ethereum erforderte jedoch, dass die Beacon Chain angewiesen wurde, Transaktionsdaten von Ausführungsklienten anzunehmen, sie zu Blockbündeln zusammenzuführen und sie dann mithilfe eines auf dem Proof-of-Stake-Mechanismus basierenden Konsensverfahrens in eine Blockchain zu organisieren. Zur gleichen Zeit haben die ursprünglichen Ethereum Clients ihr Mining, die Blockausbreitung und die Konsenslogik abgeschaltet und alles an die Beacon Chain übergeben. Dieses Ereignis wurde als [die Zusammenführung bekannt](/roadmap/merge/). Nachdem das Merge (Fusion)-Ereignis erfolgreich abgeschlossen war, existierten keine zwei Blockchains mehr. Stattdessen existierte nur noch ein Proof-of-Stake Ethereum, für das nun pro Knoten zwei verschiedene Klienten erforderlich waren. Die Beacon Chain ist nun die Konsensus-Ebene, ein Peer-to-Peer-Netzwerk von Konsens-Clients, das für den Block-Tratsch und die Konsensus-Logik zuständig ist, während die ursprünglichen Clients die Ausführungs-Ebene bilden, die für den Tratsch und die Ausführung von Transaktionen sowie die Verwaltung des Ethereum-Status verantwortlich ist. Die beiden Schichten können über die Engine-API miteinander kommunizieren. - -## Welche Funktion hat die Beacon Chain? {#what-does-the-beacon-chain-do} - -Die Beacon Chain ist die Bezeichnung für ein Kontenbuch, das das Netzwerk von Ethereum [Stakern](/staking/) leitete und koordinierte, bevor diese Staker mit der Validierung echter Ethereum-Blöcke begannen. Es werden jedoch keine Transaktionen verarbeitet oder Smart-Contract-Interaktionen abgewickelt, da dies in der Ausführungs-Ebene geschieht. Die Beacon Chain ist verantwortlich für Dinge wie die Handhabung von Blöcken und Bescheinigungen, die Ausführung des Fork-Choice-Algorithmus und die Verwaltung von Belohnungen und Strafen. Lesen Sie mehr auf unserer [Seite über die Architektur der Nodes](/developers/docs/nodes-and-clients/node-architecture/#node-comparison). - -## Auswirkungen der Beacon Chain {#beacon-chain-features} - -### Einführung ins Staking {#introducing-staking} - -Die Beacon Chain brachte [Proof-of-Stake](/developers/docs/consensus-mechanisms/pos/) zu Ethereum. Dieser Mechanismus sichert Ethereum und sorgt dafür, dass die Validatoren dabei ETH verdienen. In der Praxis bedeutet dies ETH einzusetzen, um die Validierungssoftware zu aktivieren. Als Staker führen Sie die Software aus die in der Chain neue Blöcke erstellt und validiert. - -Staking erfüllt denselben Zweck wie einst [Mining](/developers/docs/mining/), aber unterscheidet sich davon in vielerlei Hinsicht. Mining erforderte hohe Voraufwendungen in Form von mächtiger Hardware und hohem Energieverbrauch. Dies führte zu Skaleneffekten und förderte Zentralisierung. Mining sah auch keine Verpflichtung vor Vermögenswerte, als Sicherheiten zu sperren. Das Protokoll hatte dadurch weniger Möglichkeiten feindselige Akteure nach einer Attacke zu bestrafen. - -Der Wechsel zu Proof-of-Stake machte Ethereum wesentlich sicherer und dezentralisierte im Vergleich zu Proof-of-Work. Je mehr Menschen sich am Netzwerk beteiligen, desto dezentralisierter und sicherer wird es vor Angriffen. - -Und die Verwendung von Proof-of-Stake als Konsensmechanismus ist eine grundlegende Komponente für [das sichere, umweltfreundliche und skalierbare Ethereum, das wir jetzt haben](/roadmap/vision/). - - - Wenn Sie Interesse daran haben ein Validator zu werden und bei der Sicherung von Ethereum mitwirken wollen können Sie hier mehr über das Staking erfahren. - - -### Vorbereitung für Sharding {#setting-up-for-sharding} - -Seit die Beacon Chain mit dem ursprünglichen Ethereum Mainnet zusammengeführt wurde, hat die Ethereum Community damit begonnen das Netzwerk zu skalieren. - -Proof-of-Stake bietet den Vorteil, dass es zu jeder Zeit eine Registry aller zugelassener Blockproduzenten, die ETH eingesetzt haben, besitzt. Diese Registry bereitet den Weg teilen und herrschen anzuwenden, aber verlässlich spezifische Verantwortungen im Netzwerk zu teilen. - -Diese Verantwortung steht im Gegensatz zu Proof-of-Work, wo Miner keine Verantwortung gegenüber dem Netzwerk haben und jederzeit, ohne Auswirkungen, ihr Mining beenden und ihre Node-Software permanent abschalten konnten. Es gibt auch keine Registry bekannter Blockvorschläger und keinen verlässlichen Weg Verantwortung sicher im Netzwerk zu teilen. - -[Mehr zu Sharding](/roadmap/danksharding/) - -## Beziehung zwischen den Upgrades {#relationship-between-upgrades} - -Die Ethereum-Upgrades sind alle in gewisser Weise miteinander verbunden. Zusammenfassend wirkt sich die Beacon Chain auf weitere Upgrades wie folgt aus: - -### Beacon Chain und die Zusammenführung {#merge-and-beacon-chain} - -Zunächst existierte die Beacon Chain getrennt vom Ethereum Mainnet. Sie wurden im Jahre 2022 zusammengeführt. - - - Die Zusammenführung - - -### Shards und die Beacon Chain {#shards-and-beacon-chain} - -Sharding kann nur sicher in das Ethereum Ökosystem eingeführt werden, wenn ein Proof-of-Stake Konsensmechanismus aktiv ist. Die Beacon Chain, welche mit Mainnet zusammengeführt wurde, führte das Staking ein. Dieses ebnet den Weg für Sharding, was wiederum bei einer besseren Skalierung von Ethereum hilft. - - - Shard Chains - - -## Weiterführende Informationen - -- [Mehr über zukünftige Ethereum Upgrades](/roadmap/vision) -- [Mehr über die Knotenarchitektur](/developers/docs/nodes-and-clients/node-architecture) -- [Mehr über Proof-of-Stake](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/de/roadmap/future-proofing/index.md b/src/content/translations/de/roadmap/future-proofing/index.md deleted file mode 100644 index aad16a56033..00000000000 --- a/src/content/translations/de/roadmap/future-proofing/index.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: Zukunftssicherung von Ethereum -description: Diese Verbesserungen festigen Ethereum als widerstandsfähige und dezentrale Grundlage für die ungewisse Zukunft. -lang: de -image: ../../../../../assets/roadmap/roadmap-future.png -alt: "Ethereum-Roadmap" -template: roadmap ---- - -Einige Aspekte der Roadmap sind zwar nicht unmittelbar für die Skalierung oder Sicherheit von Ethereum erforderlich, legen jedoch den Grundstein für langfristige Stabilität und Zuverlässigkeit von Ethereum. - -## Quantenresistenz {#quantum-resistance} - -Wenn Quantencomputing Realität wird, wird einiges der Kryptographie, die das heutige Ethereum sichert, gefährdet sein. Obwohl Quantencomputer vermutlich noch Jahrzehnte davon entfernt sind, eine echte Bedrohung für die moderne Kryptographie darzustellen, wird Ethereum dennoch so entwickelt, dass es für die kommenden Jahrhunderte sicher ist. Dies bedeutet, dass Ethereum so schnell wie möglich [quantenresistent](https://consensys.net/blog/developers/how-will-quantum-supremacy-affect-blockchain/) gemacht werden soll. - -Die Herausforderung für Ethereum-Entwickler besteht darin, dass das aktuelle Proof-of-Stake-Protokoll auf einem sehr effizienten Signaturschema namens BLS basiert, um Stimmen für gültige Blöcke zu aggregieren. Dieses Signaturschema wird von Quantencomputern gebrochen, aber die quantenresistenten Alternativen sind nicht so effizient. - -Die in mehreren Bereichen von Ethereum zur Generierung kryptographischer Geheimnisse verwendeten ["KZG"-Verpflichtungsschemata](/roadmap/danksharding/#what-is-kzg) sind als quantenanfällig bekannt. Derzeit wird dies durch "vertrauenswürdige Setups" umgangen, bei denen viele Benutzer Zufälligkeit erzeugen, die von einem Quantencomputer nicht rückgängig gemacht werden kann. Die ideale Lösung wäre jedoch einfach, Quanten-sichere Kryptographie einzubauen. Es gibt zwei führende Ansätze, die effiziente Ersatzlösungen für das BLS-Schema werden könnten: [STARK-basierte](https://hackmd.io/@vbuterin/stark_aggregation) und [Gitter-basierte](https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-lattice-encryption-326ac66e3175) Signierung. Diese werden noch erforscht und prototypisiert. - - Lesen Sie über KZG und vertrauenswürdige Setups - -## Einfacheres und effizienteres Ethereum {#simpler-more-efficient-ethereum} - -Komplexität schafft Möglichkeiten für Fehler oder Schwachstellen, die von Angreifern ausgenutzt werden können. Ein Bestandteil des Fahrplans besteht daher darin, Ethereum zu vereinfachen, indem nicht mehr benötigter oder verbesserungsfähiger Code, der sich durch verschiedene Upgrades gehalten hat, entfernt wird. Eine schlankere, einfachere Codebasis ist für Entwickler leichter zu warten und zu verstehen. - -Es gibt mehrere Updates, die an der [Ethereum Virtual Machine (EVM)](/developers/docs/evm) vorgenommen werden, um sie einfacher und effizienter zu gestalten. Dazu gehört [das Entfernen des SELFDESTRUCT Opcodes](https://hackmd.io/@vbuterin/selfdestruct) - ein selten genutztes Kommando, das nicht mehr benötigt wird und unter bestimmten Umständen gefährlich zu verwenden sein kann, insbesondere in Kombination mit anderen zukünftigen Upgrades des Speichermodells von Ethereum. Auch unterstützen Ethereum-Clients noch einige alte Transaktionstypen, die nun vollständig entfernt werden können. Die Art und Weise, wie Gas berechnet wird, kann ebenfalls verbessert werden und effizientere Methoden für die Arithmetik, die einigen kryptographischen Operationen zugrunde liegt, können eingeführt werden. - -Ebenso können Updates an anderen Teilen der gegenwärtigen Ethereum-Clients vorgenommen werden. Ein Beispiel dafür ist, dass aktuelle Ausführungs- und Konsens-Clients eine andere Art der Datenkompression verwenden. Es wird viel einfacher und intuitiver sein, Daten zwischen Clients auszutauschen, wenn das Kompressionsschema im gesamten Netzwerk einheitlich ist. - -## Aktueller Fortschritt {#current-progress} - -Die meisten der für die Zukunftssicherung von Ethereum erforderlichen Upgrades befinden sich noch in der Forschungsphase und könnten mehrere Jahre von der Implementierung entfernt sein. Upgrades wie das Entfernen von SELF-DESTRUCT und die Harmonisierung des Kompressionsschemas, das in den Ausführungs- und Konsens-Clients verwendet wird, werden wahrscheinlich früher kommen als die Quantenresistente Kryptographie. - -**Weiterführende Informationen** - -- [Gas](/developers/docs/gas) -- [EVM](/developers/docs/evm) -- [Data structures](/developers/docs/data-structures-and-encoding) diff --git a/src/content/translations/de/roadmap/index.md b/src/content/translations/de/roadmap/index.md deleted file mode 100644 index d14de7ed99e..00000000000 --- a/src/content/translations/de/roadmap/index.md +++ /dev/null @@ -1,117 +0,0 @@ ---- -title: Ethereum-Roadmap -description: Der Weg zu mehr Skalierbarkeit, Sicherheit und Nachhaltigkeit für Ethereum. -lang: de -template: roadmap -image: ../../../../assets/roadmap/roadmap-main.png -alt: "Ethereum-Roadmap" -summaryPoints: -buttons: - - label: Weitere Upgrades - toId: welche-veränderungen-kommen-werden - - label: Bisherige Upgrades - to: /history/ - variant: Übersicht ---- - -Ethereum ist bereits eine leistungsstarke Plattform für die globale Koordinierung, aber sie wird immer noch verbessert. Ein ehrgeiziges Paket von Verbesserungen wird Ethereum von seiner derzeitigen Form zu einer vollständig skalierten, maximal widerstandsfähigen Plattform ausbauen. Diese Upgrades sind in der Ethereum-Roadmap dargelegt. - -**Um mehr über frühere Upgrades von Ethereum zu erfahren, besuchen Sie bitte unsere [History](/history/) Seite** - -## Welche Veränderungen stehen bei Ethereum an? {#what-changes-are-coming} - -Die Ethereum-Roadmap beschreibt die spezifischen Verbesserungen, die in Zukunft am Protokoll vorgenommen werden sollen. Insgesamt wird die Roadmap den Ethereum-Nutzern folgende Vorteile bringen: - - - - - - - - -## Warum braucht Ethereum eine Roadmap? {#why-does-ethereum-need-a-roadmap} - -Ethereum erhält regelmäßig Upgrades, die seine Skalierbarkeit, Sicherheit oder Nachhaltigkeit verbessern. Eine der Hauptstärken von Ethereum ist die Anpassung an neue Ideen, die aus Forschung und Entwicklung hervorgehen. Die Anpassungsfähigkeit gibt Ethereum die Flexibilität, sich neuen Herausforderungen zu stellen und mit den fortschrittlichsten technologischen Durchbrüchen Schritt zu halten. - - - -Die Roadmap ist vor allem das Ergebnis jahrelanger Arbeit von Forschern und Entwicklern - da das Protokoll sehr technisch ist - aber jede motivierte Person kann sich daran beteiligen. Die Ideen beginnen in der Regel als Diskussionen in einem Forum wie [ethresear.ch](https://ethresear.ch/), [Ethereum magicians](https://www.figma.com/exit?url=https%3A%2F%2Fethereum-magicians.org%2F) oder dem Eth R&D Discord Server. Dabei kann es sich um Reaktionen auf neu entdeckte Schwachstellen handeln, um Vorschläge von Organisationen, die auf der Anwendungsebene arbeiten (z. B. Dapps und Börsen), oder um bekannte Schwierigkeiten für Endnutzer (z. B. Kosten oder Transaktionsgeschwindigkeit). Wenn diese Ideen ausgereift sind, können sie als [Ethereum Improvement Proposals](https://eips.ethereum.org/) vorgeschlagen werden. Dies alles geschieht öffentlich, so dass sich jeder aus der Community jederzeit einbringen kann. - -[Mehr über Ethereum-Governance](/governance/) - - - - -

Was war ETH2?

- -

Der Begriff "Eth2" wurde häufig verwendet, um die Zukunft von Ethereum vor der Umstellung auf Proof-of-Stake zu beschreiben, aber er wurde zu Gunsten einer präziseren Terminologie abgeschafft. Ursprünglich wurde er verwendet, um das Ethereum-Netzwerk vor der Umstellung auf Proof-of-Stake und das Netzwerk danach zu unterscheiden, oder manchmal, um sich auf die verschiedenen Ethereum-Clients zu beziehen (Ausführungs-Clients wurden manchmal als ETH1-Clients und Consensus-Clients wurden manchmal als ETH2-Clients bezeichnet).

- -
- -## Wird sich die Roadmap von Ethereum im Laufe der Zeit ändern? {#will-ethereums-roadmap-change-over-time} - -Ja - ganz sicherlich. Die Roadmap ist der aktuelle Plan für das Upgrade von Ethereum, der sowohl kurzfristige als auch zukünftige Pläne umfasst. Wir gehen davon aus, dass sich die Roadmap ändern wird, wenn neue Informationen und Technologien verfügbar werden. - -Betrachten Sie die Roadmap von Ethereum als eine Reihe von Absichten zur Verbesserung von Ethereum; sie ist die beste Hypothese der Kernforscher und -entwickler über den optimalen Weg zur Weiterentwicklung von Ethereum. - -## Wann wird die Roadmap fertiggestellt sein? {#when-will-the-roadmap-be-finished} - -Ethereum wird einige Upgrades in den nächsten sechs Monaten implementieren (z.B. Staking withdrawals); andere haben eine geringere Priorität und werden wahrscheinlich erst in den nächsten 5-10 Jahren implementiert (z.B. Quantum Resistenz). Der genaue Zeitplan für die verschiedenen Upgrades lässt sich nur schwer vorhersagen, da an vielen Punkten der Roadmap parallel gearbeitet wird und die Entwicklung unterschiedlich schnell verläuft. Die Dringlichkeit einer Aufrüstung kann sich auch im Laufe der Zeit in Abhängigkeit von externen Faktoren ändern (z. B. kann ein plötzlicher Sprung in der Leistung und Verfügbarkeit von Quantencomputern die Dringlichkeit einer quantenresistenten Kryptographie erhöhen). - -Eine Möglichkeit, die Entwicklung von Ethereum zu betrachten, ist die Vergleichung mit der biologischen Evolution. Ein Netzwerk, das in der Lage ist, sich an neue Herausforderungen anzupassen und fit zu bleiben, wird eher erfolgreich sein als eines, das sich gegen Veränderungen sträubt, obwohl mit zunehmender Leistung, Skalierbarkeit und Sicherheit des Netzwerks immer weniger Änderungen am Protokoll erforderlich sein werden. - -## Muss ich etwas tun, wenn es ein Upgrade gibt? {#do-i-have-to-do-anything-when-there-is-an-upgrade} - -Upgrades haben in der Regel keine Auswirkungen auf die Endnutzer, außer dass sie ein besseres Nutzererlebnis, ein sichereres Protokoll und vielleicht mehr Optionen für die Interaktion mit Ethereum bieten. Endnutzer sind nicht verpflichtet, sich aktiv an einem Upgrade zu beteiligen, und müssen auch nichts zur Sicherung ihrer Assets tun. Die Betreiber von Nodes müssen ihre Clients aktualisieren, um sich auf ein Upgrade vorzubereiten. Einige Upgrades können zu Änderungen für Anwendungsentwickler führen. So können beispielsweise Aktualisierungen des Zeitablaufs dazu führen, dass Anwendungsentwickler historische Daten aus neuen Quellen abrufen. - -## Was ist mit The Verge, The Splurge, usw.? {#what-about-the-verge-splurge-etc} - -[Vitalik Buterin schlug eine Vision für die Ethereum-Roadmap](https://twitter.com/VitalikButerin/status/1588669782471368704) vor, die in mehrere Kategorien unterteilt war, die durch ihre Auswirkungen auf die Ethereum-Architektur miteinander verbunden sind. Sie enthielt: - -- The Merge: Upgrades im Zusammenhang mit dem Wechsel von Proof-of-Work zu Proof-of-Stake -- The Surge: Upgrades im Zusammenhang mit der Skalierbarkeit durch Rollups und Data Sharding -- The Scourge: Upgrades im Zusammenhang mit Zensurresistenz, Dezentralisierung und Protokollrisiken von MEV -- The Verge: Upgrades zur einfacheren Verifizierung von Blöcken -- The Purge: Aktualisierungen im Zusammenhang mit der Reduzierung der Rechenkosten für den Betrieb der Nodes und der Vereinfachung des Protokolls -- The Splurge: andere Upgrades, die nicht gut in die vorherigen Kategorien passen. - -Wir haben uns entschieden, diese Terminologie nicht zu verwenden, weil wir ein einfacheres und nutzerzentrierteres Modell verwenden wollten. Obwohl wir eine nutzerzentrierte Sprache verwenden, bleibt die Vision dieselbe wie die von Vitalik vorgeschlagene. - -## Wie verhält es sich mit Sharding? {#what-about-sharding} - -Beim Sharding wird die Ethereum-Blockchain so aufgeteilt, dass Untergruppen von Validatoren nur für einen Bruchteil der Gesamtdaten verantwortlich sind. Ursprünglich sollte Ethereum auf diese Weise skaliert werden. Allerdings haben sich die Rollups auf Layer 2 viel schneller entwickelt als erwartet und haben bereits eine Menge an Skalierung gebracht, und sie werden noch viel mehr leisten, wenn Proto-Danksharding implementiert ist. Das bedeutet, dass "Shard Chains" nicht mehr benötigt werden und von der Roadmap gestrichen wurden. - -## Suchen Sie nach spezifischen technischen Upgrades? {#looking-for-specific-technical-upgrades} - -- [Danksharding](/roadmap/danksharding) - Danksharding macht Layer-2-Rollups für Benutzer wesentlich billiger, indem es Ethereum-Blöcken "Blobs" von Daten hinzufügt. -- [Staking withdrawals](/staking/withdrawals) - Das Shanghai/Capella-Upgrade ermöglichte Auszahlungen für die Staking-Funktion auf Ethereum, so dass die Leute ihre investierten ETH freischalten konnten. -- [Single slot finality](/roadmap/single-slot-finality) - Anstatt fünfzehn Minuten zu warten, könnten Blöcke im selben Slot vorgeschlagen und abgeschlossen werden. Dies ist praktischer für Anwendungen und viel schwieriger zu attackieren. -- [Proposer-builder separation](/roadmap/pbs) - Die Aufteilung der Aufgaben der Blockbildung und des Blockvorschlags auf verschiedene Validatoren schafft einen faireren, zensurresistenteren und effizienteren Weg für Ethereum, einen Konsensus zu erzielen. -- [Secret leader election](/roadmap/secret-leader-election) - Durch geschickte Kryptographie kann sichergestellt werden, dass die Identität des aktuellen Blockantragstellers nicht bekannt gegeben wird, wodurch er vor bestimmten Arten von Angriffen geschützt ist. -- [Account abstraction](/roadmap/account-abstraction)- Die Kontoabstraktion ist eine Klasse von Upgrades, die Smart-Contract-Wallets direkt auf Ethereum unterstützen, anstatt komplexe Middleware zu verwenden. -- [Verkle trees](/roadmap/verkle-trees) - Verkle-Bäume sind eine Datenstruktur, die verwendet werden kann, um zustandslose Clients auf Ethereum zu ermöglichen. Diese "zustandslosen" Clients benötigen nur wenig Speicherplatz, sind aber dennoch in der Lage, neue Blöcke zu verifizieren. -- [Statelessness](/roadmap/statelessness) - zustandslose Clients können neue Blöcke verifizieren, ohne große Datenmengen speichern zu müssen. Dies bietet alle Vorteile des Betriebs einer Node mit nur einem kleinen Bruchteil der heutigen Kosten. diff --git a/src/content/translations/de/roadmap/merge/index.md b/src/content/translations/de/roadmap/merge/index.md deleted file mode 100644 index 660fde82a3c..00000000000 --- a/src/content/translations/de/roadmap/merge/index.md +++ /dev/null @@ -1,228 +0,0 @@ ---- -title: Die Zusammenführung -description: Erfahren Sie mehr über die Zusammenführung, als Mainnet Ethereum Proof-of-Stake einführte. -lang: de -template: upgrade -image: ../../../../../assets/upgrades/merge.png -summaryPoint1: Ethereum Mainnet verwendet Proof-of-Stake, aber das war nicht immer der Fall. -summaryPoint2: Der Wechsel vom ursprünglichen Proof-of-Work Mechanismus zu Proof-of-Stake wurde Zusammenführung genannt. -summaryPoint3: Die Zusammenführung bezieht sich auf das ursprüngliche Ethereum Mainnet, welches mit einer separaten Proof-of-Stake-Blockchain namens Beacon Chain vereinigt wurde, und somit nun beide als eine Blockchain existieren. -summaryPoint4: Die Zusammenführung reduzierte Ethereums Energieverbrauch um ca. 99,95 %. ---- - - - Die Zusammenführung wurde am 15. September 2022 durchgeführt. Dies vervollständigte Ethereums Übergang zu Proof-of-Stake, was Proof-of-Work offiziell abschaffte und den Energieverbrauch um ~99,95 % verringert hat. - - -## Was war die Zusammenführung? {#what-is-the-merge} - -Die Zusammenführung war das Verbinden der ursprünglichen Ausführungsschicht von Ethereum (das Mainnet das seit [Genesis](/history/#frontier) existierte) mit der neuen Proof-of-Stake Konsensschicht, der Beacon Chain. Damit entfällt das energieintensive Mining. Stattdessen wird das Netzwerk durch den Einsatz von Staked Ether gesichert. Ein wirklich spannender Schritt zur Verwirklichung der Ethereum-Vision: mehr Skalierbarkeit, Sicherheit und Nachhaltigkeit. - - - -Ursprünglich wurde die [Beacon Chain](/roadmap/beacon-chain/) getrennt vom [Mainnet](/glossary/#mainnet) betrieben. Das Ethereum-Mainnet, mit allen Konten, Kontoständen, Smart Contracts, und des Blockchain-Zustandes, wurde weiterhin durch [Proof-of-Work](/developers/docs/consensus-mechanisms/pow/) gesichert, auch wenn die Beacon Chain parallel dazu mit [Proof-of-Stake](/developers/docs/consensus-mechanisms/pos/) betrieben wurde. Die Zusammenführung fand statt, als diese beiden Systeme schließlich vereint wurden und Proof-of-Work permanent durch Proof-of-Stake ersetzt wurde. - -Stellen Sie sich Ethereum als ein Raumschiff vor, das gestartet wurde, bevor es für interstellare Reisen bereit war. Mit der Beacon Chain hat die Community einen neuen Motor und einen gehärteten Rumpf gebaut. Nach umfangreichen Tests war es an der Zeit, mitten im Flug den neuen Antrieb gegen den Alten auszutauschen. Dadurch wurde der neue effizientere Motor in das bestehende Raumschiff eingebaut, sodass noch einige Lichtjahre im Universum zurückgelegt werden können. - -## Die Zusammenführung mit dem Mainnet {#merging-with-mainnet} - -Proof-of-Work sicherte Ethereum Mainnet von Genesis bis zur Zusammenführung. Dies ermöglichte es der Ethereum Blockchain, an die wir alle gewöhnt sind, im Juli 2015 mit all ihren bekannten Merkmalen – Transaktionen, intelligente Verträge, Konten usw. – an den Start zu gehen. - -Während der gesamten Geschichte von Ethereum bereiteten sich Entwickler auf einen eventuellen Übergang von Proof-of-Work zu Proof-of-Stake vor. Am 1. Dezember 2020 wurde die Beacon Chain erstellt, die als separate Blockchain parallel zum Mainnet betrieben wurde. - -Die Beacon Chain hat ursprünglich keine Transaktionen von Mainnet verarbeitet. Stattdessen gelangte sie zu einem Konsens über ihren eigenen Zustand, indem sie sich auf aktive Validatoren und deren Kontostände einigte. Nach ausführlichen Tests war es für die Beacon Chain an der Zeit, Konsens über reale Daten zu erlangen. Nach der Zusammenführung wurde die Beacon Chain zur Konsens-Maschine für alle Netzwerkdaten, einschließlich der Transaktionen auf Ausführungsebene und der Kontostände. - -Die Zusammenführung stellte den offiziellen Wechsel zur Verwendung der Beacon Chain als Motor der Blockproduktion dar. Mining dient nicht länger als Mittel der Herstellung gültiger Blocks. Die Proof-of-Stake Validatoren haben stattdessen diese Rolle übernommen und sind jetzt für die Gültigkeit aller Transaktionen und das Vorschlagen von Blöcken verantwortlich. - -Keine Historie ging bei der Zusammenführung verloren. Als Mainnet mit der Beacon Chain zusammengeführt wurde, wurde auch die gesamte Transaktionshistorie von Ethereum zusammengeführt. - - -Der Übergang zu Proof-of-Stake änderte die Art und Weise wie Ether benutzt wird. Erfahren Sie mehr über Etherausgabe vor und nach der Zusammenführung. - - -### Benutzer und Halter {#users-holders} - -**Die Zusammenführung hat nichts für Halter/Benutzer geändert.** - -_Dies muss wiederholt werden_: Als Nutzer oder Halter von ETH oder irgendeines anderen digitalen Assets auf Ethereum, sowie nicht-Nodebetreibender Staker, **müssen Sie nichts mit Ihrem Guthaben oder Ihrer Wallet tun, um sich auf die Zusammenführung vorzubereiten.** ETH ist nur ETH. Es gibt kein „altes ETH“/„neues ETH“ oder „ETH1“/„ETH2“ und Wallets funktionieren nach der Zusammenführung genauso wie zuvor. Menschen, die anderes behaupten, sind sehr wahrscheinlich Betrüger. - -Trotz des Austauschs von Proof-of-Work blieb die gesamte Geschichte von Ethereum seit der Genesis intakt und durch den Übergang zu Proof-of-Stake unverändert. Jedes Guthaben in Ihrer Wallet vor dem Merge ist nach dem Merge weiterhin zugänglich. **Es ist keine Aktion zum Upgrade Ihrerseits erforderlich** - -[Mehr zu Ethereums Sicherheit](/security/#eth2-token-scam) - -### Node Operatoren und dApp Entwickler {#node-operators-dapp-developers} - - - -Zu den Schlüsselaktionen gehören: - -1. Betreiben Sie _sowohl_ einen Konsens-Client und einen Ausführungs-Client; Endpunkte von Drittanbietern, um Ausführungsdaten zu erhalten, funktionieren seit dem Merge nicht mehr. -2. Authentifizieren Sie sowohl die Ausführungs- als auch die Konsens-Clients mit einem gemeinsam genutzten JWT-Geheimnis, damit sie sicher kommunizieren können. -3. Legen Sie eine "Gebühr Empfänger"-Adresse fest, um Ihre verdienten Transaktionsgebühr-Tipps/MEV zu erhalten. - -Wenn Sie die ersten beiden obigen Elemente nicht abschließen, wird Ihre Node als "offline" betrachtet, bis beide Ebenen synchronisiert und authentifiziert sind. - -Wenn kein "Gebührenempfänger" gesetzt wird, kann sich dein Validator wie üblich verhalten, aber Sie werden auf unverbrannte Gebührentipps verzichten und alle MEV, die Sie sonst in Blöcken verdient hätten, die Ihr Validator vorschlägt. - - - - -Bis zum Merge reichte ein Client (wie Geth, Erigon, Besu oder Nethermind) aus, um ihn zu empfangen, validieren und Blöcke verbreiten, die vom Netzwerk vorgeschlagen werden. _Nach dem Merge_, ist die Gültigkeit von Transaktionen, die innerhalb einer ausführbaren Nutzlast enthalten sind, jetzt auch von der Gültigkeit des "Konsensblocks" abhängig, in dem er enthalten ist. - -Infolgedessen erfordert eine vollständige Ethereum-Node nun sowohl einen Ausführungs-Client als auch einen Konsens-Client. Diese beiden Clients arbeiten zusammen mit einer neuen Engine API. Die Engine API erfordert Authentifizierung mittels eines JWT Geheimnisses, das beiden Clients zur Verfügung gestellt wird, die eine sichere Kommunikation ermöglichen. - -Schlüssel-Aktionen beinhalten: - -- Installieren Sie einen Konsens-Client zusätzlich zu einem Ausführungs-Client -- Authentifizieren Sie die Ausführung und Konsens-Clients mit einem gemeinsam genutzten JWT-Geheimnis, so dass sie sicher miteinander kommunizieren können. - -Wenn Sie die ersten beiden obigen Elemente nicht abschließen, wird Ihre Node als "offline" betrachtet, bis beide Ebenen synchronisiert und authentifiziert sind. - - - - - -The Merge trat ein, indem es Änderungen an der Konsens-Methode mit sich brachte, darunter Änderungen an:< - -
    -
  • Block-Struktur
  • -
  • berücksichtigte Maßeinheiten/Messeziele in nicht monetären Einheiten (slot/block timing)
  • -
  • Opcode-Änderungen
  • -
  • Quellen des On-Chain-Zufalls
  • -
  • Begriffe wie safe head and finalized blocks
  • -
- -Weitere Informationen findest Du in diesem Blogartikel von Tim Heiko zum Thema The Merge Update: Welche Auswirkungen hat das Ereignis auf die Ethereum-Execution Layer?. - -
- -## Die Zusammenführung und der Energieverbrauch {#merge-and-energy} - -Die Zusammenführung markierte das Ende von Proof-of-Work für Ethereum und den Start der Ära eines nachhaltigeren und umweltfreundlicheren Ethereums. Ethereums Energieverbrauch reduzierte sich um geschätzte 99,95%, was Ethereum zu einer grünen Blockchain macht. Erfahren Sie mehr über [Ethereums Energieverbrauch](/energy-consumption/). - -## Die Zusammenführung und Skalierbarkeit {#merge-and-scaling} - -Die Zusammenführung ebnet auch den Weg für weitere Skalierungsupgrades, welche unter Proof-of-Work nicht möglich waren. Dies bringt Ethereum einen Schritt näher die volle Skalierung, Sicherheit und Nachhaltigkeit zu erreichen, die in der [Ethereum Vision](/roadmap/vision/) beschrieben ist. - -## Misverständnisse über die Zusammenführung {#misconceptions} - - - -Es gibt zwei Arten von Ethereum Nodes: Nodes die Blöcke vorschlagen können und Nodes die das nicht können. - -Nur ein kleiner Anteil der Nodes auf Ethereum können Blöcke vorschlagen. Diese Kategorie beinhaltet Mining Nodes bei Proof-of-Work (PoW) and Validator Nodes bei Proof-of-Stake (PoS). Sie erfordert wirtschaftliche Ressourcen (wie z. B. GPU Hash-Power bei Proof-of-Work oder eingesetztes ETH bei Proof-of-Stake) im Tausch für die Möglichkeit gelegentlich den nächsten Block vorzuschlagen und dafür Belohnungen zu erhalten. - -Die anderen Nodes des Netzwerkes (dies betrifft die Mehrheit der Nutzer) sind nicht dazu verpflichtet wirtschaftliche Ressourcen, die über einen Hobbycomputer mit 1-2 TB Speicherplatz und eine Internetverbindung hinausgehen, einzusetzen. Diese Nodes schlagen keine Blöcke vor, aber sie spielen immer noch eine entscheidende Rolle bei der Sicherung des Netzwerks, indem sie alle Blockvorschläger zur Rechenschaft ziehen, indem sie auf neue Blöcke hören und ihre Gültigkeit bei der Ankunft gemäß den Regeln des Netzwerkkonsenses überprüfen. Wenn der Block gültig ist, wird die Node ihn weiter über das Netzwerk verbreiten. Wenn der Block aus welchen Gründen auch immer ungültig ist, wird die Nodesoftware ihn als ungültig betrachten und seine Weitergabe stoppen. - -Jeder kann einen Knoten betreiben, der allerdings nicht erlaubt, andere Blöcke zu betreiben, egal welche Konsensmethode verwendet wird (PoW: Proof of Work oder PoS: Proof of Stake); es wird allen Nutzern dringend empfohlen, gegebenenfalls Knoten zu betreiben. Der Betrieb einer Node ist für Ethereum immens wertvoll und bietet jedem Einzelnen zusätzlichen Vorteil, der einen betreibt, wie etwa der Verbesserung der Sicherheit, der Privatsphäre und der Widerstandsfähigkeit der Zensur. - -Die Möglichkeit für jeden, einen eigenen Node zu betreiben, ist absolut essentiell zur Aufrechterhaltung der Dezentralisierung des Ethereum-Netzwerks. - -Mehr zum Betrieb eines eigenen Nodes - - - - - -Die Gasgebühren sind ein Produkt der Netznachfrage im Verhältnis zur Netzkapazität. Der Merge veraltete den Einsatz von Proof-of-Work für den Übergang zu Proof-of-Stake als Konsens, aber keine signifikante Änderung von Parametern, die direkt Einfluss auf Netzwerk-Kapazität oder Durchsatz haben. - -Mit einer Rollup-zentrierten Roadmap, die Bemühungen konzentrieren sich auf die Ausweitung der Nutzeraktivitäten auf Ebene 2, und gleichzeitig das Ebene 1 Mainnet als sichere dezentrale Abwicklungsschicht zu etablieren, die für die Speicherung von Rollup-Daten optimiert ist und dazu beiträgt, Rollup-Transaktionen exponentiell billiger zu machen. Der Übergang zu Proof-of-Stake ist ein entscheidender Vorläufer für die Umsetzung. Mehr zum Thema Gas-Kosten. - - - - -Die "Geschwindigkeit" einer Transaktion kann auf einige Arten gemessen werden, einschließlich der Zeit, die in einem Block und Zeit zur Fertigstellung enthalten sein soll. Beides ändert sich ein wenig, aber nicht in einer Weise, die die Nutzer bemerken werden. - -Historisch war es nach Proof-of-Work das Ziel, alle ~13.3 Sekunden einen neuen Block zu haben. Unter Proof-of-Stake stellen wir fest, dass Slots genau alle 12 Sekunden auftreten, wobei jeder von ihnen eine Möglichkeit für einen Validator ist, einen Block zu veröffentlichen. Die meisten Slots haben Blöcke, aber nicht unbedingt alle (d.h. ein Validator ist offline). Bei Proof-of-Stake werden Blöcke ~10% häufiger produziert als bei Proof-of-Work. Das war eine ziemlich unbedeutende Änderung und Benutzer werden es wahrscheinlich nicht bemerken. - -Proof-of-Stake führte das bisher nicht existierende Konzept der Transaktionsfinalität ein. Bei Proof-of-Work wird die Rückgängigmachung eines Blocks exponentiell schwieriger, wenn neue Blöcke auf vorherigen aufgebaut werden, aber es erreicht nie ganz Null. Unter Proof-of-Stake werden Blöcke in Epochen (6,4 Minuten Zeitspanne mit 32 Chancen für Blöcke) gebündelt, über die Validatoren abstimmen. Wenn eine Epoche endet, stimmen die Validatoren darüber ab, ob sie die Epoche als "gerechtfertigt" betrachten sollen. Wenn die Validatoren einverstanden sind, die Epoche zu rechtfertigen, wird sie in der nächsten Epoche fertiggestellt. Abgeschlossene Transaktionen rückgängig zu machen ist wirtschaftlich unrentabel, da sie mehr als ein Drittel der insgesamt eingesetzten ETH einsetzen und verbrennen müssten. - - - - - -Nach dem Zusammenführen hatten die Staker zunächst nur Zugriff auf Gebührentipps und MEV, die durch Blockvorschläge verdient wurden. Diese Belohnungen werden auf einem von Validatoren kontrollierten Konto gutgeschrieben, das nicht zum Einsatz kommt (bekannt als die Gebührenempfänger), und sind sofort verfügbar. Diese Belohnungen sind von den Protokollbelohnungen für die Erfüllung der Pflichten von Validatoren getrennt. - -Seit des Netzwerk-Upgrades namens Shanghai/Capella können die Staker nun einen Abhebungsadresse um automatische Auszahlungen von überschüssigem für Staking eingesetzten ETH zu erhalten (ETH über 32 aus Protokollbelohnungen). Mit diesem Upgrade wurde auch die Möglichkeit geschaffen, dass ein Validator sein gesamtes Guthaben beim Verlassen des Netzwerkes entsperren und zurückfordern kann. - -Mehr zu Staking-Auszahlungen - - - - -Seit das Shanghai/Capella-Upgrade Abhebungen ermöglicht, haben die Validatoren einen Anreiz, ihre Einsätze über 32 ETH abzuheben, da diese Gelder nicht zur Rendite beitragen und ansonsten gesperrt sind. Abhängig von der APR (bestimmt durch Gesamt-ETH abgesetzt), können sie dazu angehalten werden, ihre Validator(en) zu verlassen, um ihr gesamtes Guthaben zurückzugewinnen oder möglicherweise noch mehr mit ihren Prämien zu investieren, um mehr Ertrag zu erzielen. - -Eine wichtige Einschränkung ist, dass das Protokoll die Anzahl der Beendigungen von Prüfvorgängen begrenzt und nur eine bestimmte Anzahl von Prüfvorgängen pro Epoche (alle 6,4 Minuten) zulässig ist. Dieses Limit schwankt in Abhängigkeit von der Anzahl der aktiven Validatoren, liegt aber bei etwa 0,33% der insgesamt eingesetzten ETH, die an einem Tag aus dem Netzwerk entfernt werden können. - -Dadurch wird ein Massenexodus der für Staking eingesetzten Mittel verhindert. Darüber hinaus wird verhindert, dass ein potenzieller Angreifer, der Zugang zu einem großen Teil der gesamten ETH-Einsätze hat, ein "Slashing"-Vergehen begeht und alle verletzenden Validator-Guthaben in derselben Epoche abzieht, bevor das Protokoll die "Slashing"-Strafe durchsetzen kann. - -Der effektive Jahreszins ist auch bewusst dynamisch, damit ein Markt von Stakern abwägen kann, wie viel sie bereit sind, für die Sicherung des Netzwerks zu zahlen. Wenn die Rate zu niedrig ist, werden die Validatoren mit einer durch das Protokoll begrenzten Rate aussteigen. Nach und nach wird dadurch die APR für alle erhöht, die bleiben und wieder neue oder wiederkehrende Staker anziehen. - - -## Was ist mit "Eth2" passiert? {#eth2} - -Der Begriff "Eth2" ist veraltet. Nach der Zusammenführung von "Eth1" und "Eth2" in eine einzelne Chain gibt es keinen Grund mehr zwischen zwei Ethereum Netzwerken zu unterscheiden. Es gibt nur Ethereum. - -Um Unklarheiten zu minimieren, hat die Community diese Begriffe aktualisiert: - -- „Eth1“ ist nun der „Ausführungslayer“, der Transaktionen verarbeitet und ausführt. -- „Eth2“ ist nun der „Konsenslayer“, der den Proof-of-Stake-Konsens regelt. - -Diese aktualisierte Terminologie ändert lediglich die Benennungskonventionen. Die Ziele von Ethereum oder die Roadmap ändern sich dadurch nicht. - -[Mehr erfahren über die „Eth2“-Umbenennung](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) - -## Beziehung zwischen den Upgrades {#relationship-between-upgrades} - -Die Ethereum-Upgrades sind alle in gewisser Weise miteinander verbunden. Sehen wir uns nun an, welche Verbindung zwischen der Zusammenführung und anderen Upgrades besteht. - -### Die Zusammenführung und die Beacon Chain {#merge-and-beacon-chain} - -Die Zusammenführung stellt die formale Übernahme der Beacon Chain als neue Konsensschicht auf die ursprüngliche Mainnet-Ausführungsschicht dar. Seit dem Zusammenführen sind Validatoren der Sicherung vom Ethereum Mainnet zugewiesen, und das Minen auf [Proof-of-Work](/developers/docs/consensus-mechanisms/pow/) ist nicht mehr ein gültiges Mittel zur Blockproduktion. - -Blöcke werden stattdessen durch validierende Nodes vorgeschlagen, die ETH als Gegenleistung für das Recht auf Teilnahme am Konsens eingesetzt haben. Diese Upgrades setzten die Voraussetzungen für zukünftige Skalierbarkeitsverbesserungen, einschließlich Sharding. - - - Die Beacon Chain - - -### Die Zusammenführung und das Shanghai Upgrade {#merge-and-shanghai} - -Um den erfolgreichen Übergang zum Proof-of-Stake zu vereinfachen und zu maximieren, enthielt das Merge-Upgrade nicht bestimmte erwartete Funktionen, wie die Möglichkeit, eingesetztes ETH zurückzuziehen. Diese Funktion wurde mit dem Shanghai/Capella-Upgrade separat aktiviert. - -Für Neugierige: Erfahren Sie mehr darüber, [ was nach der Zusammenführung passiert](https://youtu.be/7ggwLccuN5s?t=101), präsentiert von Vitalik an der ETHGlobal-Veranstaltung im April 2021. - -### Die Zusammenführung und Sharding {#merge-and-data-sharding} - -Ursprünglich war geplant, vor der Zusammenführung an Sharding zu arbeiten, um die Skalierbarkeit zu verbessern. Mit dem Boom der [Layer-2-Skalierungslösungen](/layer-2/), hat sich die Priorität jedoch auf die Umwandlung von Proof-of-Work zu Proof-of-Stake, durch die Zusammenführung, verschoben. - -Pläne für die gemeinsame Nutzung entwickeln sich rasch, aber angesichts des Anstiegs und des Erfolgs von Lay-2-Technologien, um Transaktionsausführung zu skalieren, haben sich gemeinsame Pläne auf die Suche nach dem optimalen Weg zur Verteilung der Belastung durch die Speicherung komprimierter Rufdaten aus Rollup-Verträgen verlagert. Dies ermöglicht ein exponentielles Wachstum der Netzwerkkapazität. Dies wäre ohne den ersten Übergang zu Proof-of-Stake nicht möglich. - - - Sharding - - -## Weiterführende Informationen {#further-reading} - - - - diff --git a/src/content/translations/de/roadmap/scaling/index.md b/src/content/translations/de/roadmap/scaling/index.md deleted file mode 100644 index faa38f4e526..00000000000 --- a/src/content/translations/de/roadmap/scaling/index.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Ethereum zu skalieren -description: Rollups fassen Transaktionen off-chain zusammen und senken so die Kosten für den Nutzer. Die Art und Weise, wie Rollups derzeit Daten verwenden, ist jedoch zu teuer und schränkt ein, wie günstig Transaktionen sein können. Proto-Danksharding behebt das. -lang: de -image: ../../../../../assets/roadmap/roadmap-transactions.png -alt: "Ethereum-Roadmap" -template: roadmap ---- - -Ethereum wird mit Hilfe von [Layer 2s](/layer-2/#rollups) (auch bekannt als Rollups) skaliert, die Transaktionen zusammenfassen und den Output an Ethereum senden. Obwohl Rollups bis zu achtmal günstiger sind als das Ethereum Mainnet, kann man Rollups noch weiter optimieren, um die Kosten für die Endnutzer zu senken. Rollups stützen sich auch auf einige zentralisierte Komponenten, die mit zunehmender Reife der Rollups von den Entwicklern entfernt werden können. - - -
    -
  • Die heutigen Rollups sind ~3-8x günstiger als die Ethereum Layer 1
  • -
  • ZK-Rollups werden bald die Gebühren um ~40-100x senken
  • -
  • Bevorstehende Änderungen an Ethereum werden eine weitere ~100-1000-fache Skalierung ermöglichen
  • -
  • Benutzer könnten von Transaktionskosten unter $0.001 profitieren
  • -
-
- -## Daten günstiger machen {#making-data-cheaper} - -Rollups sammeln eine große Anzahl von Transaktionen, führen sie aus und übermitteln die Ergebnisse an Ethereum. Dabei entstehen viele Daten, die offen zugänglich sein müssen, damit jeder die Transaktionen selbst durchführen und überprüfen kann, ob der Rollup-Betreiber ehrlich war. Wenn jemand eine Unstimmigkeit feststellt, kann er eine Beschwerde einreichen. - -### Proto-Danksharding {#proto-danksharding} - -Rollup-Daten werden dauerhaft auf Ethereum gespeichert, was teuer ist. Über 90 % der Transaktionskosten, die die Nutzer für Rollups zahlen, sind auf diese Datenspeicherung zurückzuführen. Um die Transaktionskosten zu senken, können wir die Daten in einen neuen temporären "Blob"-Speicher verschieben. Blobs sind billiger, weil sie nicht dauerhaft sind; sie werden aus Ethereum gelöscht, sobald sie nicht mehr benötigt werden. Die langfristige Speicherung von Rollup-Daten obliegt denjenigen, die sie benötigen, wie Rollup-Betreibern, Börsen, Indexierungsdiensten usw. Das Hinzufügen von Blob-Transaktionen zu Ethereum ist Teil eines Upgrades, das als "Proto-Danksharding" bekannt ist. Es soll relativ bald - vielleicht Ende 2023 - ausgeliefert werden. - -Nachdem Blob-Transaktionen durch Proto-Danksharding Teil des Ethereum-Protokolls geworden sind, wird es möglich sein, viele Blobs zu Ethereum-Blöcken hinzuzufügen. Dies wird eine weitere erhebliche (>100x) Steigerung des Ethereum-Durchsatzes und eine Senkung der Transaktionskosten bedeuten. - -### Danksharding {#danksharding} - -Die zweite Stufe der Erweiterung von Blobdaten ist kompliziert, weil sie neue Methoden zur Überprüfung der Verfügbarkeit von Rollup-Daten im Netz erfordert und davon abhängt, dass die Validatoren ihre Zuständigkeiten für die Blockbildung und den Blockvorschlag voneinander trennen. Außerdem muss kryptografisch nachgewiesen werden, dass die Validatoren kleine Teilmengen der Blobdaten überprüft haben. - -Dieser zweite Schritt ist bekannt unter dem Namen [“Danksharding”](/roadmap/danksharding/). Es wird wahrscheinlich noch einige Jahre dauern, bis es vollständig umgesetzt ist. Danksharding stützt sich auf andere Entwicklungen wie die [Trennung von Blockbildung und Blockvorschlag](/roadmap/pbs) und neue Netzwerkdesigns, die es dem Netzwerk ermöglichen, die Verfügbarkeit von Daten effizient zu bestätigen, indem jeweils einige Kilobyte zufällig abgetastet werden, was als [data availability sampling (DAS)](/developers/docs/data-availability) bekannt ist. - -Mehr zu Danksharding - -## Rollups dezentralisieren {#decentralizing-rollups} - -[Rollups](/layer-2) sind bereits dabei, Ethereum zu skalieren. Ein [reichhaltiges Ökosystem von Rollup-Projekten](https://l2beat.com/scaling/tvl) ermöglicht es den Nutzern, schnell und kostengünstig Transaktionen durchzuführen und dabei eine Reihe von Sicherheitsgarantien zu bieten. Rollups wurden jedoch mit zentralisierten Sequenzern (Computer, die die gesamte Transaktionsverarbeitung und -aggregation durchführen, bevor sie an Ethereum übermittelt werden) gebootet. Dies ist anfällig für Zensur, da die Betreiber der Sequenzer sanktioniert, bestochen oder anderweitig kompromittiert werden können. Gleichzeitig unterscheiden sich [Rollups](https://l2beat.com) in der Art und Weise, wie sie die eingehenden Daten validieren. Am besten ist es, wenn die "Prüfer" Betrugs- oder Gültigkeitsnachweise vorlegen, aber noch sind nicht alle Rollups so weit. Selbst die Rollups, die Gültigkeits-/Betrugsnachweise verwenden, nutzen einen kleinen Pool von bekannten Prüfern. Daher besteht der nächste kritische Schritt bei der Skalierung von Ethereum darin, die Verantwortung für den Betrieb von Sequenzern und Prüfern auf mehr Personen zu verteilen. - -Mehr zu Rollups - -## Aktueller Fortschritt {#current-progress} - -Proto-Danksharding wird wahrscheinlich einer der ersten Punkte auf der Roadmap sein, der umgesetzt wird. Die für die Einrichtung erforderlichen dezentralen Berechnungsschritte sind bereits im Gange, und mehrere Kunden haben Prototypen für die Verarbeitung von Blob-Daten implementiert. Das vollständige Danksharding wird wahrscheinlich noch einige Jahre auf sich warten lassen, da es davon abhängt, dass zunächst einige andere Punkte der Roadmap abgeschlossen werden. Die Dezentralisierung der Rollup-Infrastruktur wird wahrscheinlich ein schrittweiser Prozess sein - es gibt viele verschiedene Rollups, die leicht unterschiedliche Systeme aufbauen und in unterschiedlichem Tempo vollständig dezentralisieren werden. diff --git a/src/content/translations/de/roadmap/security/index.md b/src/content/translations/de/roadmap/security/index.md deleted file mode 100644 index 14a3144df1e..00000000000 --- a/src/content/translations/de/roadmap/security/index.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: Ein sichereres Ethereum Netzwerk -description: Ethereum ist die sicherste und dezentralisierte Smart-Contract-Plattform, die es gibt. Es gibt jedoch immer noch Verbesserungen, die vorgenommen werden können, um Ethereum bis weit in die Zukunft hinein gegen jegliche Art von Angriffen zu wappnen. -lang: de -image: ../../../../../assets/roadmap/roadmap-security.png -alt: "Ethereum-Roadmap" -template: roadmap ---- - -Ethereum ist bereits eine äußerst sichere, dezentralisierte Smart-Contract-Plattform. Es gibt jedoch immer noch Verbesserungen, die vorgenommen werden können, um Ethereum bis weit in die Zukunft hinein gegen jegliche Art von Angriffen zu wappnen. Dazu gehören subtile Änderungen an der Art und Weise, wie Ethereum-Prüfer (Node) mit konkurrierenden Blöcken umgehen, sowie die Erhöhung der Geschwindigkeit, mit der das Netzwerk Blöcke als ["finalisiert"](/developers/docs/consensus-mechanisms/pos/#finality) betrachtet (was bedeutet, dass sie nicht ohne extreme wirtschaftliche Verluste für einen Angreifer verändert werden können). - -Es gibt zudem Verbesserungen, die das Zensieren von Transaktionen erheblich erschweren, indem sie den Block-Konstrukteur blind für den tatsächlichen Inhalt ihrer Blöcke machen, und neue Möglichkeiten, zu erkennen, wann ein Block-Prüfer zensiert. Zusammen werden diese Verbesserungen das Proof-of-Stake-Protokoll verbessern, so dass die Nutzer - von Privatpersonen bis hin zu Unternehmen - sofortiges Vertrauen in ihre Anwendungen, Daten und Vermögenswerte auf Ethereum haben. - -## Staking-Auszahlungen {#staking-withdrawals} - -Die Umstellung von Proof-of-Work auf Proof-of-Stake begann damit, dass die Ethereum-Pioniere ihre ETH in einem Hinterlegungsvertrag "verwahrten". Dieses ETH wird zum Schutz des Netzes verwendet. Dieses ETH kann jedoch bisher nicht freigeschaltet und an die Nutzer zurückgegeben werden. Die Erlaubnis, dieses ETH auszuzahlen, ist ein wichtiger Teil des Proof-of-Stake-Upgrades. Abgesehen davon, dass die Auszahlungen eine kritische Komponente eines voll funktionsfähigen Proof-of-Stake-Protokolls sind, ist das Zulassen von Auszahlungen auch vorteilhaft für die Sicherheit von Ethereum, da dies den Gutachtern ermöglicht, ihre ETH-Belohnungen für andere Zwecke als der Validierung von Transaktionen zu verwenden. Das bedeutet, dass Nutzer, die Liquidität wünschen, nicht auf Liquid Staking Derivate (LSD) angewiesen sind, die eine zentralisierende Kraft auf Ethereum ausüben können. Diese Aufrüstung soll bis zum 12. April 2023 abgeschlossen sein. - -Lesen Sie mehr über Auszahlungen - -## Angriff abwehren {#defending-against-attacks} - -Auch nach Abhebungen gibt es Verbesserungen, die am [Proof-of-Stake-Protokoll](/developers/docs/consensus-mechanisms/pos/) von Ethereum vorgenommen werden können. Eine davon ist [view-merge](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739) - ein sicherer "fork-choice"-Algorithmus, der bestimmte ausgeklügelte Arten von Angriffen erschwert. - -Eine Verkürzung der Zeit, die Ethereum für die Fertigstellung von Blöcken benötigt, würde eine bessere Nutzererfahrung bieten und ausgeklügelte "Reorg"-Angriffe verhindern, bei denen Angreifer versuchen, sehr aktuelle Blöcke umzuwandeln, um Profit zu machen oder bestimmte Transaktionen zu zensieren. [**Single slot finality (SSF)**](/roadmap/single-slot-finality/) ist eine Möglichkeit, die Abschlussverzögerung zu minimieren. Zurzeit besteht die Möglichkeit, dass ein Angreifer andere Validierer dazu bewegt, Blöcke in einem Zeitraum von 15 Minuten neu zu konfigurieren. Mit SSF ist dieser Zeitrahmen gleich 0. Nutzer, von Einzelpersonen bis hin zu Anwendungen und Börsen, profitieren von der schnellen Gewissheit, dass ihre Transaktionen nicht rückgängig gemacht werden, und das Netzwerk profitiert davon, dass eine ganze Klasse von Angriffen unterbunden wird. - -Lesen Sie mehr über die Endgültigkeit voneinzelnen Slots - -## Verteidigung gegen Zensur {#defending-against-censorship} - -Die Dezentralisierung verhindert, dass einzelne Personen oder kleine Gruppen von Prüfern zu viel Einfluss gewinnen. Neue Staking-Technologien können dazu beitragen, dass die Ethereum-Validatoren so dezentralisiert wie möglich bleiben und gleichzeitig vor Hardware-, Software- und Netzwerkausfällen geschützt sind. Dazu gehört auch Software, die die Verantwortung für die Validierung auf mehrere Nodes verteilt. Dies wird als **verteilte Validierungstechnologie (distributed validator technology / DVT)** bezeichnet. Für Staking-Pools besteht ein Anreiz, DVT zu verwenden, da es mehreren Computern ermöglicht, gemeinsam an der Validierung teilzunehmen, was zu zusätzlicher Redundanz und Fehlertoleranz führt. Außerdem werden die Validierungsschlüssel auf mehrere Systeme aufgeteilt, anstatt dass ein einzelner Operator mehrere Validatoren betreibt. Dies erschwert es unredlichen Betreibern, Angriffe auf Ethereum zu koordinieren. Insgesamt besteht die Idee darin, Sicherheitsvorteile zu erzielen, indem die Validatoren als _Gemeinschaften_ und nicht als Einzelpersonen betrieben werden. - -Lesen Sie mehr über verteilte Validierungstechnologie - -Die Implementierung der **Proposer-Builder-Separation (PBS)** wird die in Ethereum eingebauten Schutzmechanismen gegen Zensur drastisch verbessern. PBS ermöglicht es einem Validator, einen Block zu erstellen, und einem anderen, ihn über das Ethereum-Netzwerk zu veröffentlichen. Dadurch wird sichergestellt, dass die Gewinne aus professionellen, gewinnmaximierenden Blockbildungsalgorithmen gerechter über das Netzwerk verteilt werden und **verhindern, dass sich der Gewinn im Laufe der Zeit bei den leistungsstärksten institutionellen Stakern konzentriert**. Der Blockanbieter kann den profitabelsten Block auswählen, der ihm von einem Markt von Blockbauern angeboten wird. Um zu zensieren, müsste ein Blockvorschläger oft einen weniger profitablen Block wählen, was **wirtschaftlich betrachtet unlogisch und auch für den Rest der Validierer** im Netz offensichtlich wäre. - -Es gibt potenzielle Erweiterungen zu PBS, wie verschlüsselte Transaktionen und Inklusionslisten, die die Zensurresistenz von Ethereum weiter verbessern könnten. Diese machen den Blockersteller und den Vorschlagenden blind für die tatsächlichen Transaktionen, die in ihren Blöcken enthalten sind. - -Lesen Sie über die Trennung von Proposer und Builder - -## Schutz für Validatoren {#protecting-validators} - -Es ist möglich, dass ein raffinierter Angreifer bevorstehende Prüfer identifiziert und sie mit Spam attackiert, um sie daran zu hindern, Blöcke vorzuschlagen; dies ist als **Denial of Service (DoS)** Angriff bekannt. Die Implementierung von [**secret-leader-election (SLE)**](/roadmap/secret-leader-election) schützt vor dieser Art von Angriffen, indem verhindert wird, dass die Blockvorschläger im Voraus bekannt gegeben werden. Dabei wird eine Reihe von kryptografischen Zusagen, die Kandidaten für Blockvorschläge darstellen, ständig gemischt und deren Reihenfolge verwendet, um zu bestimmen, welcher Prüfer ausgewählt wird, und zwar so, dass nur die Prüfer selbst ihre Reihenfolge im Voraus erfahren. - -Lesen Sie über die geheime Wahl des Leiters - -## Aktueller Fortschritt {#current-progress} - -Die Sicherheitsverbesserungen in der Roadmap befinden sich in einem fortgeschrittenen Stadium der Entwicklung, werden aber voraussichtlich erst im Laufe der Zeit umgesetzt. Die nächsten Schritte für view-merge, PBS, SSF und SLE sind die Fertigstellung von Spezifikationen und der Beginn der Entwicklung von Prototypen. diff --git a/src/content/translations/de/roadmap/user-experience/index.md b/src/content/translations/de/roadmap/user-experience/index.md deleted file mode 100644 index 3e5a7f7e0be..00000000000 --- a/src/content/translations/de/roadmap/user-experience/index.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: Verbesserung der Benutzererfahrung -description: Für die meisten Menschen ist es immer noch zu kompliziert Ethereum zu benutzen. Um die Massenakzeptanz von Ethereum zu fördern, müssen die Eintrittsbarrieren drastisch gesenkt werden - die Nutzer müssen die Vorteile eines dezentralisierten, erlaubnisfreien und zensurresistenten Zugangs zu Ethereum nutzen können, der jedoch so reibungslos sein muss wie die Nutzung einer herkömmlichen Web2-App. -lang: de -image: ../../../../../assets/roadmap/roadmap-ux.png -alt: "Ethereum-Roadmap" -template: roadmap ---- - -Die Nutzung von Ethereum muss vereinfacht werden, von der Verwaltung von Schlüsseln und Wallets bis zur Initiierung von Transaktionen. Um die Massenakzeptanz zu erleichtern, muss Ethereum die Benutzerfreundlichkeit drastisch erhöhen, so dass die Nutzer einen erlaubnisfreien und zensurresistenten Zugang zu Ethereum mit der reibungslosen Erfahrung wie bei der Nutzung von Web2-Apps erleben können. - -## Jenseits von Seed-Phrasen {#no-more-seed-phrases} - -Ethereum-Konten sind durch ein Schlüsselpaar geschützt, das zur Identifizierung von Konten (öffentlicher Schlüssel) und zum Signieren von Nachrichten (privater Schlüssel) verwendet wird. Ein privater Schlüssel ist wie ein Master-Passwort; er ermöglicht den vollständigen Zugang zu einem Ethereum-Konto. Für Menschen, die eher mit Banken und Web2-Apps vertraut sind, welche die Konten im Namen des Nutzers verwalten, ist dies eine andere Art der Bedienung. Damit Ethereum die Massenakzeptanz erreicht, ohne sich auf zentralisierte Dritte zu verlassen, muss es einen unkomplizierten, reibungslosen Weg geben, wie ein Nutzer sein Vermögen in Verwahrung nehmen und die Kontrolle über seine Daten behalten kann, ohne sich mit Public-Private-Key-Kryptografie und Schlüsselverwaltung auskennen zu müssen. - -Die Lösung für dieses Problem ist die Verwendung von Smart Contract Wallets zur Interaktion mit Ethereum. Smart Contract Wallets bieten die Möglichkeit, Konten bei Verlust oder dem Diebstahl der Schlüssel zu schützen, Betrug besser aufzudecken und abzuwehren und ermöglichen neue Funktionen für Wallets. Obwohl es heute bereits Smart Contract Wallets gibt, ist es schwierig, diese zu erstellen, da das Ethereum-Protokoll sie besser unterstützen muss. Diese zusätzliche Unterstützung wird als Kontoabstraktion bezeichnet. - -Mehr zum Thema Kontenabstraktion - -## Nodes für jedermann - -Nutzer, die Nodes betreiben, müssen nicht darauf vertrauen, dass Dritte ihnen Daten zur Verfügung stellen, und sie können schnell, privat und ohne Erlaubnis mit der Ethereum-Blockchain interagieren. Allerdings erfordert der Betrieb einer Node derzeit technische Kenntnisse und viel Speicherplatz, so dass viele Menschen stattdessen auf Intermediäre vertrauen müssen. - -Es gibt mehrere Upgrades, die den Betrieb von Nodes wesentlich einfacher und weniger ressourcenintensiv machen werden. Die Art und Weise, wie Daten gespeichert werden, wird geändert, um eine platzsparendere Struktur zu verwenden, die als **Verkle Tree** bekannt ist. Außerdem werden mit [ statelessness](/roadmap/statelessness) oder [data expiry](/roadmap/statelessness/#data-expiry), Ethereum-Nodes nicht mehr Kopie der gesamten Ethereum-Statusdaten speichern müssen, was den Speicherplatzbedarf auf der Festplatte drastisch reduziert. [Light nodes](/developers/docs/nodes-and-clients/light-clients/) bietet viele Vorteile eine Full Node, kann aber problemlos auf Mobiltelefonen oder in einfachen Browseranwendungen ausgeführt werden. - -Lesen Sie über Verkle-Trees - -Mit diesen Upgrades werden die Hürden für den Betrieb einer Node praktisch auf Null reduziert. Die Nutzer werden von einem sicheren, erlaubnisfreien Zugang zu Ethereum profitieren, ohne dass sie nennenswerten Speicherplatz oder CPU auf ihrem Computer oder Mobiltelefon opfern müssen, und sie werden nicht auf Dritte angewiesen sein, wenn es um den Daten- oder Netzwerkzugang geht, wenn sie Apps verwenden. - -## Aktueller Fortschritt {#current-progress} - -Smart-Contract-Wallets sind bereits verfügbar, aber es sind noch weitere Verbesserungen erforderlich, um sie so dezentralisiert und erlaubnislos wie möglich zu gestalten. EIP-4337 ist ein ausgereifter Vorschlag, der keine Änderungen am Ethereum-Protokoll erfordert. Der für EIP-4337 erforderliche haupt Smart-Contract wurde im März 2023 bereitgestellt. - -Die vollständige Statelessness befindet sich noch in der Forschungsphase und ist wahrscheinlich noch einige Jahre von ihrer Umsetzung entfernt. Es gibt mehrere Meilensteine auf dem Weg zur vollständigen Statelessness, einschließlich data expiry, welche früher umgesetzt werden können. Andere Punkte der Roadmap wie zum Beispiel [ Verkle Trees](/roadmap/verkle-trees/) und [Proposer-builder separation](/roadmap/pbs/) müssen zuerst abgeschlossen werden. - -Verkle Tree Testnets sind bereits in Betrieb, und die nächste Phase besteht darin, Verkle Tree fähige Clients in privaten und dann in öffentlichen Testnets einzusetzen. Sie können dazu beitragen, den Fortschritt zu beschleunigen, indem Sie Kontrakte in die Testnets einbringen oder Testnet-Clients betreiben. diff --git a/src/content/translations/de/smart-contracts/index.md b/src/content/translations/de/smart-contracts/index.md deleted file mode 100644 index fc1c4353b81..00000000000 --- a/src/content/translations/de/smart-contracts/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Smart Contracts -description: Eine nicht-technische Einführung in Smart Contracts -lang: de ---- - -# Einführung in Smart Contracts {#introduction-to-smart-contracts} - -Smart Contracts sind die grundlegenden Bausteine der Anwendungsebene von Ethereum. Dabei handelt es sich um auf der Blockchain gespeicherte Computerprogramme, die einer "wenn dies, dann das"-Logik folgen und garantiert nach den in ihrem Code definierten Regeln ausgeführt werden und nach ihrer Erstellung nicht mehr verändert werden können. - -Nick Szabo hat den Begriff „Smart Contract" geprägt. Im Jahr 1994 schrieb er eine [Einführung in das Konzept](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html) und 1996 eine [Untersuchung der Möglichkeiten von Smart Contracts](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). - -Szabo stellte sich einen digitalen Marktplatz vor, auf dem automatische, kryptografisch gesicherte Prozesse Transaktionen und Geschäftsfunktionen ohne vertrauenswürdige Zwischenpersonen ermöglichen. Smart Contracts auf Ethereum realisieren eben diese Vision. - -### Vertrauen in herkömmliche Verträge {#trust-and-contracts} - -Eines der größten Probleme bei herkömmlichen Verträgen ist die Notwendigkeit, dass die Personen, denen Vertrauen entgegengebracht wird, die vertraglichen Regelungen auch einhalten. - -Hier ist ein Beispiel: - -Alice und Bob liefern sich ein Fahrradrennen. Nehmen wir an, Alice wettet mit Bob um 10 EUR, dass sie das Rennen gewinnt. Bob ist zuversichtlich, dass er gewinnt, und nimmt die Wette an. Am Ende fährt Alice weit vor Bob ins Ziel und ist die klare Siegerin. Doch Bob weigert sich, den Wetteinsatz zu bezahlen, und behauptet, Alice hätte betrogen. - -Dieses einfache Beispiel veranschaulicht, dass nicht kluge Vereinbarungen Probleme mit sich bringen können. Selbst wenn die Bedingungen der Vereinbarung erfüllt werden (z. B. Sie sind der Gewinner des Rennens), müssen Sie dennoch einer anderen Person vertrauen, dass die Vereinbarung erfüllt wird (z. B. Auszahlung des Wetteinsatzes). - -### Ein digitaler Verkaufsautomat {#vending-machine} - -Eine einfache Metapher für einen Smart Contract ist ein Verkaufsautomat, dessen Funktionsweise mit einem Smart Contract vergleichbar ist: konkrete Eingaben garantieren vorab festgelegte Leistungen. - -- Sie wählen ein Produkt. -- Der Verkaufautomat zeigt den Preis an. -- Sie zahlen den Preis. -- Der Automat prüft, ob Sie den richtigen Betrag bezahlt haben. -- Der Automat übergibt Ihnen Ihren Artikel. - -Der Verkaufsautomat gibt das gewünschte Produkt erst dann aus, wenn alle Anforderungen erfüllt sind. Wenn Sie beispielsweise kein Produkt auswählen oder nicht genug Geld einwerfen, gibt der Automat kein Produkt aus. - -### Automatische Ausführung {#automation} - -Der Hauptvorteil eines Smart Contracts besteht darin, dass er bestimmt eindeutigen Code ausführt, wenn bestimmte Bedingungen erfüllt sind. Es ist nicht nötig, auf einen Menschen zu warten, um das Ergebnis zu interpretieren oder zu verhandeln. Somit entfällt die Notwendigkeit von vertrauenswürdigen Vermittlern. - -Sie könnten zum Beispiel einen Smart Contract schreiben, der Gelder für ein Kind auf einem Treuhandkonto verwahrt und es dem Kind ermöglicht, nach einem bestimmten Datum über die Geldmittel zu verfügen. Wenn jemand versucht, das Guthaben vor diesem Datum abzuheben, führt der Smart Contract die Transaktion nicht aus. Sie könnten auch einen Vertrag aufsetzen, der Ihnen automatisch eine digitale Version des Fahrzeugbriefs aushändigt, wenn Sie den Händler bezahlen. - -### Vorhersehbare Ergebnisse {#predictability} - -Herkömmliche Verträge sind mehrdeutig, weil sie von Menschen ausgelegt und umgesetzt werden müssen. So könnten beispielsweise zwei Richter einen Vertrag unterschiedlich auslegen. Das könnte zu widersprüchlichen Entscheidungen und ungleichen Ergebnissen führen. Mit Smart Contracts ist das ausgeschlossen. Stattdessen führen sie alles genau auf Grundlage der programmierten Bedingungen aus, die dem Vertrag entsprechen. Diese Präzision bedingt, dass ein Smart Contract unter gleichen Umständen auch zum gleichen Ergebnis führt. - -### Öffentliche Aufzeichnung {#public-record} - -Smart Contracts sind nützlich für Prüfungen und die Nachverfolgung. Da sich die Smart Contracts von Ethereum auf einer öffentlichen Blockchain befinden, kann jeder umgehend die Übertragung von Vermögenswerten und weiterer damit verbundenen Informationen nachvollziehen. So können Sie beispielsweise überprüfen, ob jemand Geld an Ihre Adresse geschickt hat. - -### Schutz der Privatsphäre {#privacy-protection} - -Smart Contracts schützen zudem Ihre Daten. Da Ethereum ein pseudonymes Netzwerk ist (Transaktionen sind öffentlich an eine eindeutige kryptographische Adresse gebunden, nicht an eine Identität), können Sie Ihre Privatsphäre vor Beobachtern schützen. - -### Sichtbare Bedingungen {#visible-terms} - -Letztlich können Sie wie bei herkömmlichen Verträgen prüfen, was in einem Smart Contract steht, bevor Sie diesen unterschreiben (oder anderweitig damit interagieren). Die Transparenz eines Smart Contracts garantiert, dass er von jedem überprüft werden kann. - -## Anwendungsfälle für Smart Contracts {#use-cases} - -Smart Contracts können im Grunde alles, was auch Computerprogramme ausführen können. - -Sie können Berechnungen durchführen, Währungen erzeugen, Daten speichern, NFTs prägen, Mitteilungen senden und sogar Grafiken erstellen. Hier sind einige gängige reale Anwendungen: - -- [Stablecoins](/stablecoins/) -- [Einzigartige digitale Vermögenswerte erstellen und verteilen](/nft/) -- [Ein automatischer, offener Währungsumtausch](/get-eth/#dex) -- [Dezentralisiertes Gaming](/dapps/?category=gaming) -- [Eine Versicherungspolice mit automatisierter Auszahlung](https://etherisc.com/) -- [Ein Standard, der es Menschen ermöglicht, individuelle, interoperable Währungen zu schaffen](/developers/docs/standards/tokens/) - -## Eher der visuelle Lernende? {#visual-learner} - -Dann sehen Sie sich an, wie Finematics Smart Contracts erklären: - - - -## Weiterführende Informationen {#further-reading} - -- [So verändern Smart Contracts die Welt](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [Smart Contracts: die Blockchain-Technologie, die Anwälte ersetzen wird](https://blockgeeks.com/guides/smart-contracts/) -- [Smart Contracts für Entwickler](/developers/docs/smart-contracts/) -- [Lernen Sie, Smart Contracts zu programmieren](/developers/learning-tools/) -- [Ethereum-Experte werden – was ist ein Smart Contract?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/src/content/translations/de/social-networks/index.md b/src/content/translations/de/social-networks/index.md deleted file mode 100644 index 1cb86894c75..00000000000 --- a/src/content/translations/de/social-networks/index.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: Dezentralisierte soziale Netzwerke -description: Eine Übersicht über dezentralisierte soziale Netzwerke in der Ethereum-Blockchain -lang: de -template: use-cases -emoji: ":mega:" -sidebarDepth: 2 -image: ../../../../assets/ethereum-learn.png -summaryPoint1: Blockchain-basierte Plattformen für soziale Interaktionen und Content-Erstellung und -Verteilung. -summaryPoint2: Dezentralisierte Social-Media-Netzwerke schützen die Privatsphäre der Benutzer und erhöhen Datensicherheit. -summaryPoint3: Token und NFTs erschaffen neue Wege zur Monetarisierung von Inhalten. ---- - -Soziale Netzwerke spielen in unserer täglichen Kommunikation und Interaktion eine große Rolle. Allerdings hat die zentralisierte Kontrolle dieser Plattformen viele Probleme verursacht: Datenpannen, Server-Ausfälle, Ausschluss Einzelner, Zensur und Verstöße gegen die Privatsphäre sind einige der Kompromisse, die soziale Medien häufig machen. Um diese Probleme zu bekämpfen, bauen Entwickler soziale Netzwerke auf Ethereum auf. Dezentralisierte soziale Netzwerke können viele der Probleme der traditionellen sozialen Netzwerk-Plattformen beheben und die allgemeine Erfahrung der Benutzer verbessern. - -## Was sind dezentralisierte soziale Netzwerke? {#what-are-decentralized-social-networks} - -Dezentralisierte soziale Netzwerke sind Blockchain-basierte Plattformen, die es Benutzern ermöglichen, Informationen auszutauschen sowie Inhalte zu veröffentlichen und zu verteilen. Da diese Anwendungen auf der Blockchain laufen, sind sie dezentral und widerstandsfähig gegen Zensur und übermäßige Kontrolle. - -Viele dezentrale soziale Netzwerke existieren als Alternative zu schon etablierten Social-Media-Diensten wie Facebook, LinkedIn, Twitter und Medium. Aber soziale Netzwerke, die über die Blockchain laufen, verfügen über eine Reihe von Funktionen, die sie traditionellen sozialen Plattformen überlegen machen. - -### Wie funktionieren dezentralisierte soziale Netzwerke? {#decentralized-social-networks-overview} - -Dezentralisierte soziale Netzwerke sind eine Art von [dezentralisierten Anwendungen (dapps)](/dapps/), die mit [Smart Contracts](/developers/docs/smart-contracts/) betrieben werden und auf der Blockchain laufen. Der Vertragscode dient als Backend für diese Apps und definiert ihre Geschäftslogik. - -Traditionelle Social-Media-Plattformen basieren auf Datenbanken, um Benutzerinformationen, Programm-Code und andere Datenformen zu speichern. Dies jedoch führt zu immensen Risiken, da diese Systeme Einzelfehlerpunkte haben. Facebooks Server beispielsweise [ging letzes Jahr stundenlang offline](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact). Benutzer konnten die Plattform damit nicht nutzen. - -Dezentralisierte soziale Netzwerke existieren in einem Peer-to-Peer-Netzwerk, das Tausende von Knoten auf der ganzen Welt umfasst. Selbst wenn einige dieser Knoten brechen, kann das Netzwerk weiterlaufen, daher sind Anwendungen gegen Ausfälle resistenter. - -Mit der Verwendung von dezentralisierten Speichersystemen, wie [dem InterPlanetary File System (IPFS)](https://ipfs.io/), können soziale Netzwerke, die auf Ethereum aufgebaut sind, Benutzerinformationen vor Ausbeutung und böswilliger Nutzung schützen. Niemand wird Ihre persönlichen Informationen an Werbetreibende verkaufen, ebenso wenig können Hacker Ihre vertraulichen Daten stehlen. - -Viele Blockchain-basierte soziale Plattformen haben native Token, die die Monetarisierung ohne Werbeeinnahmen antreiben. Benutzer können diese Token kaufen, um auf bestimmte Funktionen zugreifen zu können, In-App-Käufe abzuschließen oder ihre liebsten Content-Ersteller zu unterstützen. - -## Vorteile dezentralisierter sozialer Netzwerke {#benefits} - -1. Dezentralisierte soziale Netzwerke sind zensurresistent und offen für alle. Dies bedeutet, dass Benutzer nicht willkürlich gebannt, von der Plattform ausgeschlossen oder eingeschränkt werden können. - -2. Dezentralisierte soziale Netzwerke basieren auf Open-Source-Idealen und stellen Quellcode für Anwendungen zur öffentlichen Kontrolle zur Verfügung. Durch die Abschaffung der Implementation von nicht-transparenten Algorithmen, die bei traditionellen Social Media üblich sind, können Blockchain-basierte soziale Netzwerke die Interessen von Benutzern und Erstellern verbinden. - -3. Dezentralisierte soziale Netzwerke eliminieren somit den „Zwischenhändler". Content-Ersteller haben direkten Besitz an ihren Inhalten. Sie interagieren direkt mit ihren Anhängern, Fans, Käufern und anderen Parteien und dabei steht einzig ein Smart Contract zwischen ihnen. - -4. Da dApps im Ethereum-Netzwerk ausgeführt werden, das durch ein globales Peer-to-Peer Netzwerk von Nodes unterstützt wird, kommt es bei dezentralisierten sozialen Netzwerken zu weniger Serverausfällen. - -5. Dezentralisierte soziale Plattformen bieten einen verbesserten Monetarisierungsrahmen für Content-Ersteller durch Non-fungible Token (NFTs), Krypto-Zahlungen in der App und vieles mehr. - -6. Dezentralisierte soziale Netzwerke bieten ihren Benutzern zudem ein hohes Maß an Privatsphäre und Anonymität. Zum Beispiel kann sich eine Person in ein Ethereum-basiertes soziales Netzwerk mit einem ENS-Profil oder einer Wallet einloggen, ohne personenbezogene Daten (PII) zu teilen, wie Namen, E-Mail-Adressen etc. - -7. Dezentralisierte soziale Netzwerke basieren auf dezentralisierter Speicherung und nicht auf zentralisierten Datenbanken, die wesentlich besser für die Sicherung von Benutzerdaten sind. - -## Dezentralisierte soziale Netzwerke auf Ethereum {#ethereum-social-networks} - -Das Ethereum-Netzwerk ist aufgrund der Beliebtheit seiner Token (ERC-20/ERC-721) und seiner enormen Benutzerbasis zum bevorzugten Werkzeug für Entwickler geworden. Hier sind einige Beispiele für Ethereum-basierte soziale Netzwerke: - -### Peepeth {#peepeth} - -[Peepeth](https://peepeth.com/) ist eine Microblogging-Plattform, ähnlich wie Twitter. Sie läuft auf der Ethereum-Blockchain und verwendet IPFS zur Speicherung von Benutzerdaten. - -Benutzer können kurze Nachrichten, „Peeps" genannt, senden, die nicht gelöscht oder geändert werden können. Ohne die App zu verlassen, können Sie auf der Plattform Unterstützung in Ether (ETH) sammeln oder jemand anderem eine Unterstützung zukommen lassen. - -### Mirror {#mirror} - -[Mirror](https://mirror.xyz/) ist eine web3-fähige Schreib-Plattform. Sie soll dezentralisiert sein und den Benutzern gehören. Benutzer können kostenlos auf Mirror lesen und schreiben, indem sie einfach ihre Wallets verbinden. Benutzer können auch Abfassungen sammeln und ihre Lieblingsschriftsteller abonnieren. - -Auf Mirror veröffentlichte Beiträge werden dauerhaft auf Arweave, einer dezentralen Speicherplattform, gespeichert und können als Sammlerstücke [nicht-fungible Token (NFTs)](/nft/) mit dem Namen „Writing NFTs" geprägt werden. Das Schreiben von NFTs ist für Autoren völlig kostenlos und das Sammeln geschieht auf Ethereum L2. Das macht Transaktionen kostengünstig, schnell und umweltfreundlich. - -### MINDS {#minds} - -[MINDS](https://www.minds.com/) ist eines der am häufigsten genutzten dezentralisierten sozialen Netzwerke. Es funktioniert wie Facebook und hat bereits Millionen von Benutzern gewonnen. - -Benutzer verwenden das native ERC-20-Token $MIND der Plattform, um für Artikel zu bezahlen. Benutzer können außerdem $MIND-Token verdienen, indem sie populäre Inhalte veröffentlichen, zum Ökosystem beitragen und andere auf die Plattform verweisen. - -## Soziale Web2-Netzwerke auf Ethereum {#web2-social-networks-and-ethereum} - -Native soziale [Web3](/web3/)-Plattformen sind nicht die einzigen, die versichern, Blockchain--Technologien in Social Media zu integrieren. Viele zentralisierte Plattformen planen auch, Ethereum in ihre Infrastruktur zu integrieren: - -### Reddit {#reddit} - -Auf Reddit gibt es [Community-Punkte](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users). Es handelt sich dabei um [ERC-20-Token](/developers/docs/standards/tokens/erc-20/), die Nutzer verdienen können, indem sie hochwertigen Inhalt veröffentlichen oder zu Online-Communitys (Subreddits) beitragen. Man kann diese Token innerhalb eines Subreddits verdienen, um [exklusive Privilegien zu erhalten](https://www.reddit.com/community-points/). Für dieses Projekt arbeitet Reddit mit Arbitrum zusammen, einem [Layer 2](/layer-2/)-Rollup für die Skalierung von Ethereum-Transaktionen. - -Das Programm ist bereits im Subreddit r/CryptoCurrency aktiv, [diese Version läuft mit ihrer Version von Community-Punkten namens "Moons"](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Gemäß der offiziellen Beschreibung belohnen Moons "Plakate, Kommentatoren und Moderatoren für deren Beiträge zum Subreddit". Da diese Token auf der Blockchain sind (Benutzer erhalten sie in Wallets), sind sie unabhängig von Reddit und können nicht entfernt werden. - -Nach Abschluss einer Beta-Phase auf dem Rinkeby-Testnet, sind Reddit Community-Punkte jetzt auf [Arbitrum Nova](https://nova.arbitrum.io/), einer Blockchain, die die Eigenschaftern einer [Sidechain](/developers/docs/scaling/sidechains/) und eines [optimistischen Rollups](/developers/docs/scaling/optimistic-rollups/) besitzt. Neben der Verwendung von Community-Punkten zum Freischalten spezieller Funktionen können Nutzer sie auch auf Börsen gegen Papierwährung tauschen. Außerdem bestimmt die Anzahl der Community-Punkte, die ein Benutzer besitzt, seinen Einfluss auf den Entscheidungsprozess innerhalb der Community. - -### Twitter {#twitter} - -Im Januar 2021 hat Twitter Blue [Unterstützung für NFTs](https://mashable.com/article/twitter-blue-nft-profile-picture)eingeführt, die es Benutzern erlaubt, ihre Wallets zu verbinden und NFTs als Profilbilder anzuzeigen. Zum Zeitpunkt des Schreibens hat das Social-Media-Unternehmen auch [Pläne angekündigt](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web), ein dezentralisiertes soziales Netzwerk für die Zukunft zu schaffen. - -### Instagram {#instagram} - -Im Mai 2022 [kündigte Instagram die Unterstützung für NFTs](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) auf Ethereum und Polygon an. Benutzer können NFTs direkt an Instagram schicken, indem sie ihre Ethereum-Wallet verbinden. - -## Nutzen Sie dezentralisierte soziale Netzwerke {#use-decentralized-social-networks} - -- **[Status.im](https://status.im/)** - _Status ist eine sichere Messaging-App, die quelloffen ist und Peer-to-Peer-Protokolle sowie Ende-zu-Ende-Verschlüsselung verwendet, um Ihre Nachrichten vor Dritten zu schützen._ -- **[Mirror.xyz](https://mirror.xyz/)** - _Mirror ist eine dezentralisierte, eigene Publishing-Plattform basierend auf Ethereum, die hilft, Ideen zu finanzieren, Inhalte zu monetarisieren und wertvolle Communitys aufzubauen._ -- **[Lens Protocol](https://lens.xyz/)** - _Lens Protocol ist ein zusammengesetztes und dezentralisiertes soziales Diagramm, welches Erstellern dabei hilft, das Eigentumsrecht ihres Inhalts zu behalten/zu übernehmen._ -- **[Farcaster](https://farcaster.xyz/)** - _Farcaster ist ein ausreichend dezentralisiertes soziales Netzwerk. Es ist ein offenes Protokoll, das viele Clients unterstützen kann, genau wie E-Mail._ - -## Weiterführende Informationen {#further-reading} - -### Artikel {#articles} - -- [Dezentralisierung sozialer Medien: eine Anleitung zum Web3 Social Stack](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _Coinbase Ventures_ -- [Soziale Netzwerke sind die nächste große Dezentralisierungsmöglichkeit](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Goertzel_ -- [Web3 verspricht dezentralisierte, Community-betriebene soziale Netzwerke](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ -- [Eine Übersicht über die Social-Media-Landschaft auf der Blockchain](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ -- [Wie Blockchain den Schutz der Privatsphäre in Social Media ermöglicht](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Prableen Bajpai_ -- [Soziale Netzwerke kommen auf die Blockchain](https://businesstechguides.co/what-are-decentralized-social-networks) — _Emmanuel Awosika_ -- [Ausreichende Dezentralisierung für soziale Netzwerke](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Varun Srinivasan_ - -### Videos {#videos} - -- [Dezentralisierte Social Media erklärt](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ -- [DeSo Blockchain möchte Social Media dezentralisieren](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ -- [Die Zukunft von dezentralisierten Social Media mit Balaji Srinivasan, Vitalik Buterin, Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ - -### Communities {#communities} - -- [Status Discord-Server](https://discord.com/invite/3Exux7Y) -- [Mirror Discord-Server](https://discord.com/invite/txuCHcE8wV) -- [r/Kryptowährung-Subreddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/de/staking/pools/index.md b/src/content/translations/de/staking/pools/index.md deleted file mode 100644 index f09a800d27b..00000000000 --- a/src/content/translations/de/staking/pools/index.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: Gepooltes Staking -description: Eine Übersicht darüber, wie man mit ETH-Pool-Staking beginnen kann -lang: de -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-pool.png -alt: Leslie, das Nashorn, wie es im Pool schwimmt. -sidebarDepth: 2 -summaryPoints: - - Staken Sie und verdienen Sie Belohnungen mit jedem ETH-Betrag, indem Sie Ihre Kräfte mit anderen bündeln - - Überspringen Sie den schwierigen Teil und vertrauen Sie den Validator-Betrieb einem Drittanbieter an - - Halten Sie Staking-Token in Ihrer eigenen Wallet ---- - -## Was sind Staking-Pools? {#what-are-staking-pools} - -Staking-Pools sind ein kollaborativer Ansatz, um es vielen Menschen mit kleineren ETH-Beträgen zu ermöglichen, die 32 ETH zu erhalten, die zur Aktivierung eines Satzes von Validator-Schlüsseln erforderlich sind. Die Pooling-Funktionalität wird innerhalb des Protokolls nicht nativ unterstützt, daher wurden separate Lösungen entwickelt, um diesen Bedarf zu decken. - -Einige Pools arbeiten mit Smart Contracts, bei denen Gelder in einen Vertrag eingezahlt werden können, der Ihren Einsatz (Stake) vertrauenswürdig verwaltet und verfolgt und Ihnen einen Token ausstellt, der diesen Wert widerspiegelt. Andere Pools beinhalten möglicherweise keine Smart Contracts und werden stattdessen außerhalb der Chain vermittelt. - -## Warum in einem Pool staken? {#why-stake-with-a-pool} - -Zusätzlich zu den Vorteilen, die wir in unserer [Einführung zum Staking](/staking/) beschrieben haben, bietet das Staking mit einem Pool einige konkrete Vorteile. - - - - - - - - - -## Bitte beachten {#what-to-consider} - -Gepooltes oder delegiertes Staking wird vom Ethereum-Protokoll nicht nativ unterstützt, aber angesichts der Nachfrage nach Benutzern, weniger als 32 ETH einzusetzen, wurde eine wachsende Zahl von Lösungen entwickelt, um diesen Bedarf zu befriedigen. - -Jeder Pool und die von verschiedenen Teams entwickelten Tools oder Smart Contracts haben jeweils eigene Vorteile und Risiken. Pools ermöglichen Benutzern, ihr ETH gegen einen Token zu tauschen, der für das ETH steht, das gestaked wurde. Der Token ist nützlich, weil er es den Nutzern ermöglicht, einen beliebigen ETH-Betrag in einen gleichwertigen Betrag eines renditetragenden Tokens zu tauschen, der auf dezentralen Börsen eine Rendite aus den auf die zugrunde liegende eingesetzte ETH angewendeten Staking-Belohnungen generiert (und umgekehrt), auch wenn die eigentliche ETH auf der Konsensebene eingesetzt bleibt. Dies bedeutet, dass Tauschvorgänge zwischen einem zinsbringenden gestaked-ETH-Produkt und "rohem ETH" in beide Richtungen schnell, einfach und nicht nur mit 32 ETH verfügbar sind. - -Allerdings kommt es mit diesen gestaketen ETH-Token zu kartellähnlichem Verhalten. Eine große Menge an gestaketem ETH gelangt unter Kontrolle einiger weniger zentralisierter Organisationen, anstatt sich auf viele unabhängige Individuen zu verteilen. Dies schafft die Möglichkeit für Zensur oder Wertentzug. Der Goldstandard für Staking sollte darin bestehen, dass Einzelpersonen Validatoren, wann immer möglich, auf ihrer eigenen Hardware betreiben. - -[Mehr zu den Risiken von Staking-Token](https://notes.ethereum.org/@djrtwo/risks-of-lsd). - -Attributindikatoren werden unten verwendet, um auf nennenswerte Stärken oder Schwächen hinzuweisen, die ein gelisteter Staking-Pool enthalten kann. Verwenden Sie diesen Abschnitt als Referenz dafür, wie wir diese Attribute definieren, während Sie einen Pool auswählen, dem Sie beitreten möchten. - - - -## Staking-Pools entdecken {#explore-staking-pools} - -Es gibt eine Vielzahl von Optionen, die Ihnen bei der Einrichtung helfen. Anhand der Indikatoren oben können Sie die Tools unten besser beurteilen. - - - - - -Hinweis: Es ist wichtig, einen Dienst zu wählen, der [Client-Diversität](/developers/docs/nodes-and-clients/client-diversity/) ernst nimmt, da das die Sicherheit des Netzwerks verbessert und Ihr Risiko begrenzt. Dienste, die nachweislich die Nutzung von Mehrheits-Clients einschränken, sind gekennzeichnet mit "Vielfalt der Ausführungskunden" and "Vielfalt der Konsenskunden". - -Haben Sie einen Vorschlag für einen Staking-Tool, der noch fehlt? Machen Sie sich mit unserer [Richtlinie zum Aufführen von Produkten](/contributing/adding-staking-products/) vertraut, um beurteilen zu können, ob Ihr Vorschlag geeignet ist. Senden Sie ihn uns dann zur Prüfung zu. - -## Häufig gestellte Fragen {#faq} - - -Typischerweise werden ERC-20 Staking-Token an Staker ausgegeben, die den Wert ihrer eingesetzten ETH plus Belohnungen darstellen. Denken Sie daran, dass Staking-Belohnungen grundsätzlich etabliert sind, verschiedene Pools Staking-Belohnungen allerdings nach leicht unterschiedlichen Methoden an ihre Benutzer verteilen. - - - -Sofort! Die Aktualisierung des Netzwerks auf Shanghai/Capella erfolgte im April 2023 und führte das Auszahlen von Staking-Mitteln ein. Validatoren haben nun die Möglichkeit, Staking-Pools, die sie unterstützen, zu verlassen und eine Auszahlung von ETH an ihre angegebene Adresse anzuweisen. Dies macht es möglich, Ihren Anteil am Stake gegen das zugrundeliegende ETH einzulösen. Bitte wenden Sie sich an Ihren Anbieter, um zu erfahren, wie er diese Funktionalität unterstützt. - -Alternativ dazu ermöglichen Pools, die einen ERC-20 Staking-Token verwenden, den Handel mit diesem Token auf dem freien Markt, so dass Sie Ihre Staking-Position verkaufen können, ohne tatsächlich ETH aus dem Staking-Vertrag zu entnehmen. - -Mehr zum Abheben von Staking - - - -Es gibt viele Ähnlichkeiten zwischen diesen gepoolten Staking-Optionen und zentralisierten Börsen, wie z. B. die Möglichkeit, kleine ETH-Beträge zu staken und sie zu bündeln, um Validatoren zu aktivieren. - -Im Gegensatz zu zentralisierten Börsen nutzen viele andere gepoolte Staking-Optionen Smart Contracts und/oder Staking-Token, bei denen es sich in der Regel um ERC-20-Token handelt, die Sie in Ihrer eigenen Wallet halten und wie jeden anderen Token kaufen oder verkaufen können. Dies bietet eine gewisse Souveränität und Sicherheit, da Sie die Kontrolle über Ihre Token besitzen. Allerdings haben Sie immer noch keine direkte Kontrolle über den Validator-Client, der in Ihrem Namen im Hintergrund Attestierungen ausgibt. - -Einige Pooling-Optionen sind im Hinblick auf die Nodes, die sie unterstützen, stärker dezentralisiert als andere. Um die Gesundheit und Dezentralisierung des Netzwerks zu fördern, werden Staker immer dazu ermutigt, einen Pooling-Service auszuwählen, der eine genehmigungsfreie, dezentrale Gruppe von Node-Betreibern ermöglicht. - - -## Weiterführende Informationen {#further-reading} - -- [Staking mit Rocket Pool – Staking-Übersicht](https://docs.rocketpool.net/guides/staking/overview.html) – _RocketPool-Dokumentation_ -- [Staking von Ethereum mit Lido](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Lido Hilfedokumente_ diff --git a/src/content/translations/de/staking/saas/index.md b/src/content/translations/de/staking/saas/index.md deleted file mode 100644 index 45a4395736b..00000000000 --- a/src/content/translations/de/staking/saas/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Staking als Service -description: Eine Übersicht darüber, wie man mit gepooltem ETH-Staking beginnen kann -lang: de -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-saas.png -alt: Leslie, das in den Wolken schwebende Nashorn. -sidebarDepth: 2 -summaryPoints: - - Drittanbieter als Node-Betreiber kümmern sich um den Betrieb Ihres Validator-Client - - Eine großartige Option für alle mit 32 ETH, die ungern mit der technischen Komplexität von Nodes umgehen - - Weniger Vertrauen, doch Ihre Auszahlungsschlüssel bleiben bei Ihnen ---- - -## Was ist unter Staking-as-a-Service, also Staking als Service zu verstehen? {#what-is-staking-as-a-service} - -Staking-as-a-Service („SaaS“) stellt eine Kategorie von Staking-Diensten dar, bei der Sie Ihre eigenen 32 ETH für einen Validator hinterlegen, aber den Node-Betrieb an einen Drittanbieter delegieren. In der Regel werden Sie in diesem Prozess durch die anfängliche Konfiguration geführt, einschließlich Schlüsselgenerierung und Hinterlegung, und dann laden Sie Ihre Signaturschlüssel für den Betreiber hoch. So kann der Service Ihren Validator in Ihrem Namen betreiben, für gewöhnlich gegen eine monatliche Gebühr. - -## Warum per Service staken? {#why-stake-with-a-service} - -Das Ethereum-Protokoll unterstützt keine Delegation von Staking, daher wurden diese Serviceleistungen aufgebaut, um die entsprechende Nachfrage zu befriedigen. Wenn Sie über 32 ETH zum Staking verfügen, sich aber davor scheuen, mit Hardware umzugehen, bieten SaaS-Dienste Ihnen die Möglichkeit, den schwierigen Teil zu delegieren, während Sie native Blockbelohnungen erhalten. - - - - - - - - - -## Bitte beachten {#what-to-consider} - -Es kommen immer mehr SaaS-Anbieter auf den Markt, die Ihnen beim Staking Ihrer ETH helfen. Doch alle haben ihre eigenen Vorteile und Risiken. Bei allen SaaS-Optionen müssen Sie im Vergleich zum Home-Staking mehr Vertrauen aufbringen. SaaS-Optionen können zusätzlichen Code haben, der die Ethereum-Clients umgibt, der nicht offen oder überprüfbar ist. SaaS beeinträchtigt zudem die Dezentralisierung des Netzwerks. Je nach Einstellung haben Sie möglicherweise keine Kontrolle über Ihren Validator – der Betreiber könnte mit Ihrem ETH unehrlich handeln. - -Attributindikatoren werden unten verwendet, um nennenswerte Stärken oder Schwächen eines gelisteten SaaS-Anbieters zu signalisieren. Nutzen Sie bei Ihrer Auswahl eines Diensts, dem Sie Ihr Staking anvertrauen möchten, diesen Abschnitt als Referenz dafür, wie wir diese Attribute definieren. - - - -## Erkunden Sie die Staking-Dienstleister {#saas-providers} - -Nachfolgend finden Sie einige verfügbare SaaS-Anbieter. Verwenden Sie die obigen Indikatoren für die Beurteilung dieser Dienste - - - -#### SaaS-Anbieter - - - -Hinweis: Es ist wichtig, dass sie die [Client-Diversität](/developers/docs/nodes-and-clients/client-diversity/) unterstützen, denn das erhöht die Netzsicherheit und begrenzt Ihre Risiken. Dienste, die nachweislich die Nutzung von Mehrheits-Clients einschränken, sind gekennzeichnet mit "Vielfalt der Ausführungskunden" and "Vielfalt der Konsenskunden". - -#### Schlüssel-Generatoren - - - -Sie haben einen Vorschlag zu einem SaaS-Anbieter, den wir noch nicht haben? Machen Sie sich mit unserer [Richtlinie zum Aufführen von Produkten](/contributing/adding-staking-products/) vertraut, um beurteilen zu können, ob Ihr Vorschlag geeignet ist. Senden Sie ihn uns dann zur Prüfung zu. - -## Häufig gestellte Fragen {#faq} - - -Die Vereinbarungen unterscheiden sich von Anbieter zu Anbieter. In der Regel werden Sie durch die Einrichtung aller benötigten Signaturschlüssel (einer pro 32 ETH) und das Hochladen dieser Schlüssel zu Ihrem Anbieter geleitet, damit dieser in Ihrem Namen validieren kann. Die Signaturschlüssel allein bieten nicht die Möglichkeit, Ihr Geld abzuheben, zu überweisen oder auszugeben. Sie bieten jedoch die Möglichkeit, Stimmen für einen Konsens abzugeben, was, wenn es nicht richtig gemacht wird, zu Offline-Strafen oder Slashing führen kann. - - - -Ja. Jedes Konto besteht aus BLS-Signaturschlüsseln und BLS-Abhebungsschlüsseln. Damit ein Validator den Zustand der Blockchain attestieren, an Synchronisierungsausschüssen teilnehmen und Blöcke vorschlagen kann, müssen die Signaturschlüssel für einen Validator-Kunden leicht zugänglich sein. Diese müssen in irgendeiner Form mit dem Internet verbunden sein und werden daher naturgemäß als "Hot Keys" betrachtet. Dies ist eine Voraussetzung für Ihren Validator, um attestieren zu können. Daher werden die Schlüssel, die zum Überweisen oder Abheben von Geldern verwendet werden, aus Sicherheitsgründen getrennt. - -Die BLS-Abhebungsschlüssel werden verwendet, um eine einmalige Nachricht zu signieren, die angibt, an welches Execution-Layer-Konto Staking-Belohnungen und ausgetretene Mittel gehen sollen. Sobald diese Nachricht gesendet wurde, werden die BLS-Abhebungsschlüssel nicht mehr benötigt. Stattdessen wird die Kontrolle über abgehobene Mittel dauerhaft an die von Ihnen angegebene Adresse delegiert. Auf diese Weise können Sie eine Abhebungsadresse festlegen, die durch Ihre eigene Cold Storage gesichert ist, um das Risiko für Ihre Validator-Fonds zu minimieren, selbst wenn jemand anderes die Signaturschlüssel Ihres Validators kontrolliert. - -Das Aktualisieren der Auszahlungsberechtigungen ist ein erforderlicher Schritt, um Auszahlungen zu ermöglichen\*. Dieser Prozess beinhaltet das Generieren der Abhebungsschlüssel mit Hilfe Ihrer Mnemonic Seed Phrase. - -Stellen Sie unbedingt sicher, dass Sie diesen Seed-Satz sicher aufbewahren, sonst können Sie Ihre Auszahlungsschlüssel nicht erstellen, wenn es soweit ist. - -\*Staker, die eine Auszahlungsadresse bei der ersten Einzahlung angegeben haben, müssen dies nicht einstellen. Bitte wenden Sie sich an Ihren SaaS-Anbieter, um Unterstützung bei der Vorbereitung Ihres Validators zu erhalten. - - - -Staking Auszahlungen wurden mit der Shanghai/Capella Aktualisierung im April 2023 eingeführt. Staker müssen (sofern nicht bereits bei der Ersteinzahlung geschehen) eine Auszahlungsadresse bereitstellen. Belohnungen werden daraufhin automatisch alle paar Tage in regelmäßigen Abständen ausgezahlt. - -Validatoren haben auch die Möglichkeit, ihre Tätigkeit als Validator zu beenden. Das ermöglicht die Auszahlung ihres restlichen ETH-Guthabens. Konten, die eine Auszahlungsadresse angegeben und den Austrittsprozess abgeschlossen haben, erhalten ihr gesamtes Guthaben bei der nächsten Validatorendurchsicht auf die angegebene Auszahlungsadresse. - -Mehr zu Staking-Abhebungen - - - -Durch die Nutzung eines SaaS-Anbieters vertrauen Sie den Betrieb Ihrer Nodes jemand anderem an. Dies birgt das Risiko einer schlechten Node-Leistung, auf die Sie keinen Einfluss haben. Falls Ihr Validator geslashed wird, wird Ihr Validator-Guthaben bestraft und zwangsweise aus dem Validator-Pool entfernt. - -Nach Abschluss des Slashing-/Austrittsprozesses werden diese Mittel an die dem Validator zugewiesene Auszahlungsadresse übertragen. Dies erfordert die Angabe einer Auszahlungsadresse zur Aktivierung. Diese Adresse kann bei der anfänglichen Einzahlung angegeben worden sein. Falls nicht, müssen die Auszahlungsschlüssel des Validators verwendet werden, um eine Nachricht zu unterschreiben, die eine Auszahlungsadresse angibt. Wenn keine Auszahlungsadresse angegeben wurde, bleibt das Guthaben bis zur Angabe gesperrt. - -Für weitere Informationen zu Garantien oder Versicherungsoptionen sowie zur Anleitung zur Bereitstellung einer Abhebungsadresse wenden Sie sich bitte an Ihren individuellen SaaS-Anbieter. Wenn Sie es vorziehen, die volle Kontrolle über Ihre Validator-Konfiguration zu haben, erfahren Sie mehr darüber, wie Sie Ihre ETH alleine einsetzen können. - - -## Weiterführende Informationen {#further-reading} - -- [Bewertung von Staking-Diensten](https://www.attestant.io/posts/evaluating-staking-services/) – _Jim McDonald 2020_ diff --git a/src/content/translations/de/staking/solo/index.md b/src/content/translations/de/staking/solo/index.md deleted file mode 100644 index d15d8250aa3..00000000000 --- a/src/content/translations/de/staking/solo/index.md +++ /dev/null @@ -1,203 +0,0 @@ ---- -title: Solo-Staking Ihres ETH -description: Ein Überblick darüber, wie Sie mit dem Solo-Staking Ihres ETH beginnen können -lang: de -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-solo.png -alt: Leslie das Nashorn auf ihrem eigenen Computerchip. -sidebarDepth: 2 -summaryPoints: - - Erhalten Sie maximale Belohnungen direkt vom Protokoll, indem Sie sicherstellen, dass Ihr Validator ordnungsgemäß funktioniert und online ist - - Benutzen Sie Hardware zu Hause und tragen Sie persönlich zur Sicherheit und Dezentralisierung des Ethereum-Netzwerks bei - - Vertrauen Sie niemandem und geben Sie niemals den Zugang zu Ihren Geldern weiter ---- - -## Was ist Solo-Staking? {#what-is-solo-staking} - -Solo-Staking ist das [Betreiben eines Ethereum-Knotens](/run-a-node/), der mit dem Internet verbunden ist, und das Hinterlegen von 32 ETH, um einen [Validator zu aktivieren](#faq), wodurch Sie direkt am Netzwerkkonsens teilnehmen können. - -**Das Solo-Staking erhöht die Dezentralisierung des Ethereum-Netzwerks **, damit Ethereum gegen Zensur resistenter und gegen Angriffe robuster wird. Andere Staking-Methoden können das Netzwerk nicht auf die gleiche Weise unterstützen. Das Solo-Staking ist die beste Staking-Option zur Absicherung von Ethereum. - -Ein Ethereum-Knoten besteht sowohl aus einem Client der Ausführungsschicht (Execution Layer, EL) als auch aus einem Client der Konsensschicht (Client Layer, CL). Diese Kunden sind Software, die mit einem gültigen Satz von Signaturschlüsseln zusammenarbeiten, um Transaktionen und Blöcke zu verifizieren, den korrekten Kopf der Kette zu bestätigen, Bestätigungen zu attestieren und Blöcke vorzuschlagen. - -Solo-Staker sind für den Betrieb der Hardware verantwortlich, die zum Ausführen dieser Clients erforderlich ist. Es wird dringend empfohlen, dafür einen fest zugeordneten Computer zu verwenden, den Sie von zu Hause aus betreiben, denn dies ist für die Gesundheit des Netzwerks sehr vorteilhaft. - -Ein Solo-Staker erhält Belohnungen direkt vom Protokoll dafür, dass sein Validator ordnungsgemäß funktioniert und online bleibt. - -## Warum Solo-Staken? {#why-stake-solo} - -Das Solo-Staking bringt mehr Verantwortung mit sich, bietet Ihnen aber die maximale Kontrolle über Ihre Mittel und Ihre Staking-Einstellungen. - - - - - - - -## Überlegungen vor dem Solo-Staking {#considerations-before-staking-solo} - -So sehr wir uns wünschen, dass das Solo-Staking für alle zugänglich und risikofrei wäre, spiegelt dies nicht die Realität wider. Es gibt einige praktische und ernsthafte Überlegungen, die Sie beachten sollten, bevor Sie sich entscheiden, Ihre ETH solo zu staken. - - - -Wenn Sie Ihren eigenen Knoten betreiben, sollten Sie einige Zeit damit verbringen, die Verwendung der von Ihnen gewählten Software zu erlernen. Dies umfasst das Lesen der relevanten Dokumentation und das Einstimmen auf die Kommunikationskanäle dieser Entwicklerteams. - -Je mehr Sie über die von Ihnen verwendete Software und die Funktionsweise von Proof-of-Stake (Stake-Nachweis) verstehen, desto weniger riskant ist es als Staker und desto einfacher wird es, alle Probleme zu beheben, die auf dem Weg als Node-Betreiber auftreten können. - - - -Das Einrichten von Nodes erfordert ein angemessenes Maß an Sicherheit bei der Arbeit mit Computern, obwohl neue Tools dies im Laufe der Zeit einfacher machen. Das Verständnis der Befehlszeilenschnittstelle ist hilfreich, aber nicht mehr unbedingt erforderlich. - -Es erfordert auch eine sehr einfache Hardware-Konfiguration und ein gewisses Verständnis der empfohlenen Mindestspezifikationen. - - - -Genauso wie private Schlüssel Ihre Ethereum-Adresse sichern, müssen Sie Schlüssel speziell für Ihren Validator generieren. Sie müssen sich informieren, wie Sie Seed-Phrasen oder private Schlüssel sicher aufbewahren.{' '} - -Ethereum-Sicherheit und Betrugsprävention - - - -Hardware fällt gelegentlich aus, Netzwerkverbindungen fallen aus und Client-Software muss gelegentlich aktualisiert werden. Die Node-Wartung ist unvermeidlich und erfordert von Zeit zu Zeit Ihre Aufmerksamkeit. Sie sollten sicher sein, dass Sie über alle erwarteten Netzwerk-Upgrades oder andere wichtige Client-Upgrades informiert sind. - - - -Ihre Belohnungen sind proportional zu der Zeit, in der Ihr Validator online ist und ordnungsgemäß attestiert. Ausfallzeiten führen zu Strafen, die proportional dazu sind, wie viele andere Validatoren gleichzeitig offline sind, aber führen nicht zum Slashing. Auch die Bandbreite spielt eine Rolle, da die Belohnungen für Bescheinigungen, die nicht rechtzeitig eingehen, gekürzt werden. Die Anforderungen sind unterschiedlich, es wird jedoch ein Minimum von 10 Mb/s Upload und Download empfohlen. - - - -Im Gegensatz zu Strafen für Inaktivität in Offline-Zeiten ist Slashing eine viel schwerwiegendere Strafe, die auf böswillige Vergehen beschränkt ist. Wenn Sie einen Minderheiten-Client mit Ihren Schlüsseln jeweils auf nur einer Maschine laden, wird das Risiko des Schrumpfens minimiert. Davon abgesehen müssen sich alle Staker der Risiken von Slashing bewusst sein. - - Mehr über Slashing und den Lebenszyklus von Validatoren - - - - - -## Wie es funktioniert {#how-it-works} - - - -Während Sie aktiv sind, erhalten Sie ETH-Prämien, die regelmäßig in Ihre Auszahlungsadresse eingezahlt werden. - -Wenn Sie möchten, können Sie als Validator aussteigen, wodurch die Notwendigkeit entfällt, online zu sein, und alle weiteren Belohnungen gestoppt werden. Ihr verbleibendes Guthaben wird dann an die Auszahlungsadresse, die Sie bei der Einrichtung angeben, ausgezahlt. - -[Mehr zu Staking-Auszahlungen](/staking/withdrawals/) - -## Beginnen Sie mit dem Staking-Launchpad {#get-started-on-the-staking-launchpad} - -Das Staking-Launchpad ist eine Open-Source-Anwendung, die Ihnen hilft, ein Staker zu werden. Es führt Sie durch die Auswahl Ihrer Clients, die Generierung Ihrer Schlüssel und die Hinterlegung Ihrer ETH nach Maßgabe des Staking-Einlagenvertrags. Eine Checkliste wird bereitgestellt, um sicherzustellen, dass Sie alles abgedeckt haben, um Ihren Validator sicher einzurichten. - - - -## Was bei Node- und Client-Konfigurations-Tools zu beachten ist {#node-tool-considerations} - -Es gibt eine wachsende Zahl von Tools und Dienstleistungen, die Ihnen helfen, Ihre ETH solo zu staken, aber sie sind mit unterschiedlichen Risiken und Vorteilen verbunden. - -Attributindikatoren werden unten verwendet, um auf nennenswerte Stärken oder Schwächen hinzuweisen, die ein gelistetes Staking-Tool haben kann. Verwenden Sie diesen Abschnitt als Referenz dafür, wie wir diese Attribute definieren, während Sie auswählen, welche Tools Sie bei Ihrer Staking-Reise unterstützen. - - - -## Erkunden Sie Tools zum Einrichten von Nodes und Clients {#node-and-client-tools} - -Es gibt eine Vielzahl von Optionen, die Ihnen bei der Einrichtung helfen. Verwenden Sie die obigen Indikatoren, um Sie durch die folgenden Tools zu führen. - - - -#### Node-Tools - - - -Bitte beachten Sie, wie wichtig es ist, einen [Minderheits-Client](/developers/docs/nodes-and-clients/client-diversity/) zu wählen, da er die Sicherheit des Netzwerks verbessert und Ihr Risiko begrenzt. Tools, mit denen Sie einen Minderheit-Client einrichten können, werden als „Multi-Client" bezeichnet. - -#### Schlüssel-Generatoren - -Diese Tools können als Alternative zur [Staking-Einlage-CLI](https://github.com/ethereum/staking-deposit-cli/) genutzt werden, um bei der Schlüsselgenerierung zu helfen. - - - -Haben Sie einen Vorschlag für einen Staking-Tool, der noch fehlt? Machen Sie sich mit unserer [Richtlinie zum Aufführen von Produkten](/contributing/adding-staking-products/) vertraut, um beurteilen zu können, ob Ihr Vorschlag geeignet ist. Senden Sie ihn uns dann zur Prüfung zu. - -## Erkunden Sie Solo-Staking-Anleitungen {#staking-guides} - - - -## Häufig gestellte Fragen {#faq} - -Das sind einige der häufigsten Fragen zum Thema Staking. Es ist lohnenswert sich damit auseinanderzusetzen. - - - -Ein Validator ist eine virtuelle Einheit, die auf Ethereum existiert und am Konsens des Ethereum-Protokolls teilnimmt. Validatoren werden durch ein Guthaben, einen öffentlichen Schlüssel und andere Eigenschaften dargestellt. Ein Validator-Client ist die Software, die im Namen des Validators handelt, indem sie seinen privaten Schlüssel hält und verwendet. Ein einzelner Validator-Client kann viele Schlüsselpaare enthalten und viele Validatoren steuern. - - - - -Jedes Schlüsselpaar, das einem Validator zugeordnet ist, erfordert genau 32 ETH, um aktiviert zu werden. Mehr ETH, die in einen einzigen Schlüsselsatz eingezahlt werden, erhöhen das Belohnungspotenzial nicht, da jeder Validator auf ein effektives Guthaben von 32 ETH begrenzt ist. Dies bedeutet, dass das Staking in Schritten von 32 ETH erfolgt, von denen jeder seinen eigenen Schlüsselsatz und sein eigenes Guthaben hat. - -Zahlen Sie nicht mehr als 32 ETH für einen einzelnen Validator ein. Sie wird Ihre Belohnungen nicht erhöhen. Wenn eine Auszahlungsadresse für den Validator festgelegt wurde, werden überschüssige Gelder über 32 ETH während des nächsten Validator-Sweeps automatisch an diese Adresse überwiesen. - -Wenn Ihnen Solo-Staking zu anspruchsvoll erscheint, ziehen Sie die Nutzung eines Staking-as-a-Service-Anbieters in Betracht, oder wenn Sie mit weniger als 32 ETH arbeiten, schauen Sie sich die Staking-Pools an. - - - -Wenn man offline geht, während das Netzwerk ordnungsgemäß abgeschlossen wird, führt dies NICHT zu Slashing. Es fallen kleine Strafen für Inaktivität an, wenn Ihr Validator für eine bestimmte Epoche (jeweils 6,4 Minuten lang) nicht verfügbar ist, um dies zu bestätigen, aber dies unterscheidet sich stark von Slashing. Diese Strafen sind etwas geringer als die Belohnung, die Sie verdient hätten, wenn der Validator zur Bestätigung verfügbar gewesen wäre, und Verluste können mit ungefähr der gleichen Zeit zurückerstattet werden, wenn Sie wieder online sind. - -Beachten Sie, dass Strafen für Inaktivität proportional dazu sind, wie viele Validatoren gleichzeitig offline sind. In Fällen, in denen ein großer Teil des Netzwerks auf einmal offline ist, sind die Strafen für jeden dieser Validatoren größer, als wenn ein einzelner Validator nicht verfügbar ist. - -In extremen Fällen, wenn das Netzwerk nicht mehr fertig gestellt wird, weil mehr als ein Drittel der Validatoren offline sind, werden diese Benutzer unter einem sogenannten quadratischen Inaktivitätsleck leiden, das einen exponentiellen Abfluss von ETH von Offline-Validierungskonten darstellt. Dies ermöglicht es dem Netzwerk, sich schließlich selbst zu heilen, indem es die ETH von inaktiven Validatoren verbrennt, bis deren Kontostand 16 ETH erreicht. An diesem ​​​​Punkt werden sie automatisch aus dem Validator-Pool herausgeworfen werden. Die verbleibenden Online-Validatoren werden schließlich wieder über 2/3 des Netzwerks verfügen und die qualifizierte Mehrheit haben, die erforderlich ist, um die Kette erneut abzuschließen. - - - -Kurz gesagt, dies kann nie vollständig garantiert werden, aber wenn Sie in gutem Glauben handeln, einen Minderheits-Client betreiben und Ihre Signaturschlüssel jeweils nur auf einem Computer aufbewahren, liegt das Slashing-Risiko bei nahezu null. - -Es gibt nur wenige spezifische Möglichkeiten, die dazu führen können, dass ein Validator geslashed und aus dem Netzwerk herausgeworfen wird. Zum Zeitpunkt des Verfassens dieses Artikels waren die aufgetretenen Slashings ausschließlich ein Produkt redundanter Hardware-Konfigurationen, bei denen Signaturschlüssel gleichzeitig auf zwei separaten Computern gespeichert werden. Dies kann unbeabsichtigt zu einer doppelten Abstimmung Ihrer Schlüssel führen. Das wiederum stellt ein strafbares Vergehen dar. - -Das Ausführen eines Clients mit qualifizierter Mehrheit (jeder Client, der von mehr als 2/3 des Netzwerks verwendet wird) birgt auch das Risiko eines potenziellen Slashing, falls dieser Client einen Fehler aufweist, der zu einer Chain-Fork führt. Dies kann zu einer fehlerhaften Fork führen, die abgeschlossen wird. Um zur beabsichtigten Kette zurückzukehren, müsste eine Surround-Abstimmung durchgeführt werden, indem man versucht, einen abgeschlossenen Block rückgängig zu machen. Auch dies ist ein strafbares Vergehen und kann einfach dadurch vermieden werden, dass stattdessen ein Minderheits-Client ausgeführt wird. - -Äquivalente Fehler in einem Minderheits-Client würden niemals abgeschlossen und würden daher niemals zu einer Surround-Abstimmung, sondern einfach zu Inaktivitätsstrafen, nicht zu Slashing. - - - - - -Einzelne Clients können in Bezug auf Leistung und Benutzeroberfläche leicht variieren, da jeder von verschiedenen Teams mit einer Vielzahl von Programmiersprachen entwickelt wird. Davon abgesehen ist keiner von ihnen „am besten" Bei allen Produktions-Clients handelt es sich um eine hervorragende Software, die alle die gleichen Kernfunktionen zur Synchronisierung und Interaktion mit der Blockchain ausführen. - -Da alle Produktions-Clients die gleiche Grundfunktionalität bieten, ist es sehr wichtig, dass Sie einen Minderheits-Client wählen, d. h. jeden Client, der derzeit NICHT von einer Mehrheit der Validatoren im Netzwerk verwendet wird. Dies mag kontraintuitiv klingen, aber wenn Sie einen Mehrheits- oder einen Client mit qualifizierter Mehrheit betreiben, besteht für Sie ein erhöhtes Risiko des Slashing im Falle eines Fehlers in diesem Client. Der Betrieb eines Minderheits-Client begrenzt diese Risiken drastisch. - -Erfahren Sie mehr darüber, warum Client-Diversität entscheidend ist - - - -Obwohl ein virtueller privater Server (VPS) als Ersatz für Heim-Hardware verwendet werden kann, spielen der physische Zugang und Standort Ihres Validator-Client eine Rolle. Zentralisierte Cloud-Lösungen wie Amazon Web Services oder Digital Ocean bieten den Vorteil, dass keine Hardware angeschafft und betrieben werden muss, was zur Zentralisierung des Netzwerks beiträgt. - -Je mehr Validator-Clients auf einer einzigen zentralisierten Cloud-Speicherlösung laufen, desto gefährlicher wird es für diese Benutzer. Jedes Ereignis, das diese Anbieter offline schaltet, sei es durch einen Angriff, behördliche Anforderungen oder nur Strom-/Internetausfälle, führt dazu, dass jeder Validator-Client, der sich auf diesen Server verlässt, gleichzeitig offline geht. - -Offline-Strafen sind proportional dazu, wie viele andere gleichzeitig offline sind. Die Verwendung eines VPS erhöht das Risiko, dass Offline-Strafen schwerwiegender sind, und erhöht Ihr Risiko von quadratischen Lecks oder Slashing, falls der Ausfall groß genug ist. Um Ihr eigenes Risiko und das Risiko für das Netzwerk zu minimieren, wird Benutzern dringend empfohlen, ihre eigene Hardware zu erwerben und zu betreiben. - - - - -Abhebungen jeglicher Art aus der Beaconchain erfordern die Angabe von Rücktrittsberechtigungen. - -Neue Staker setzen dies bei der Schlüsselgenerierung und Einzahlung. Bestehende Staker, die dies noch nicht eingestellt haben, können ihre Schlüssel aktualisieren, um diese Funktion zu unterstützen. - -Sobald die Auszahlungsdaten festgelegt sind, werden Prämienzahlungen (über den ursprünglichen 32) periodisch an die Auszahlungsadresse ausgezahlt. - -Um Ihr gesamtes Guthaben zu entsperren und zu erhalten, müssen Sie auch den Prozess des Verlassens Ihres Validators abschließen. - -Mehr zu Staking-Auszahlungen - - -## Weiterführende Informationen {#further-reading} - -- [Ethereums Client-Diversitätsproblem](https://hackernoon.com/Ethereums-Client-Diversitätsproblem) – _@emmanuelawosika 2022_ -- [Client-Diversität fördern](https://www.attestant.io/Posts/Client-Diversität-fördern/) – _Jim McDonald 2022_ -- [Client-Diversität auf der Konsensebene von Ethereum](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) – _jmcook.eth 2022_ -- [Anleitung: Ethereum-Validator-Hardware kaufen](https://www.youtube.com/watch?v=C2wwu1IlhDc) – _EthStaker 2022_ -- [Schritt für Schritt: Wie man dem Ethereum 2.0 Testnetz beitritt](https://kb.beaconcha.in/Guides/Tutorium-eth2-Multi-Client) - _ Butta_ -- [Eth2-Slashing-Präventionstipps](https://medium.com/prysmatic-labs/eth2-Slashing-Präventionstipps-f6faa5025f50) – _Raul Jordan 2020 _ diff --git a/src/content/translations/de/staking/withdrawals/index.md b/src/content/translations/de/staking/withdrawals/index.md deleted file mode 100644 index e989af698ec..00000000000 --- a/src/content/translations/de/staking/withdrawals/index.md +++ /dev/null @@ -1,218 +0,0 @@ ---- -title: Staking-Auszahlungen -description: Seite mit einer Zusammenfassung zu Staking-Push-Auszahlungen, wie sie funktionieren und was Staker tun müssen, um ihre Belohnungen zu erhalten -lang: de -template: staking -image: ../../../../../assets/staking/leslie-withdrawal.png -alt: Leslie das Nashorn mit ihren Staking-Auszahlungen -sidebarDepth: 2 -summaryPoints: - - Das Shanghai/Capella-Update ermöglichte Staking-Auszahlungen auf Ethereum - - Validatoren müssen eine Auszahlungsadresse angeben, um sie zu aktivieren - - Erträge werden alle paar Tage automatisch ausgezahlt - - Validatoren, die nicht mehr staken, erhalten ihr verbleibendes Guthaben ---- - - -Staking-Auszahlungen wurden mit dem Shanghai/Capella-Upgrade aktiviert, welches am 12. April 2023 durchgeführt wurde. Mehr über Shanghai/Capella erfahren - - -**Staking-Auszahlungen** beziehen sich auf die Übertragung von ETH von einem Validator-Konto in der Konsensschicht von Ethereum (der Beacon Chain) zur Ausführungsschicht, in der damit Transaktionen durchgeführt werden können. - -**Belohnungszahlungen für überschüssige Guthaben** über 32 ETH werden automatisch und regelmäßig an eine mit jedem Validator verknüpfte Auszahlungsadresse gesendet, sobald sie vom Benutzer angegeben wurde. Benutzer können auch das **Staking vollständig beenden** und damit ihr gesamtes Validator-Guthaben freigeben. - -## Staking-Belohnungen {#staking-rewards} - -Belohnungszahlungen werden automatisch für aktive Validator-Konten mit einem ausgeschöpften effektiven Guthaben von 32 ETH verarbeitet. - -Ein Guthaben über 32 ETH, das durch Belohnungen verdient wurde, trägt tatsächlich nicht zum Grundkapital bei oder erhöht das Gewicht dieses Validators im Netzwerk. Daher wird es automatisch alle paar Tage als Prämienzahlung abgehoben. Abgesehen von der einmaligen Angabe einer Auszahlungsadresse sind für diese Belohnungen keine weiteren Aktionen vom Validator erforderlich. Dies wird alles auf der Konsensschicht initiiert, daher ist in keinem Schritt Gas (Transaktionsgebühr) erforderlich. - -### Wie sind wir an diesem Punkt angelangt? {#how-did-we-get-here} - -In den letzten Jahren hat Ethereum mehrere Netzwerk-Upgrades durchlaufen und ist zu einem Netzwerk übergegangen, das durch ETH selbst gesichert ist, anstatt durch energieintensives Mining, wie es früher der Fall war. Die Teilnahme am Konsens auf Ethereum wird nun als „Staking" bezeichnet, da die Teilnehmer freiwillig ETH gesperrt haben und es „aufs Spiel setzen", um am Netzwerk teilnehmen zu können. Benutzer, die sich an die Regeln halten, werden belohnt, während Versuche, das System zu betrügen, bestraft werden können. - -Seit der Einführung des Staking-Einzahlungsvertrags im November 2020 haben einige mutige Ethereum-Pioniere freiwillig Gelder gesperrt, um „Validatoren" zu aktivieren, spezielle Konten, die das Recht haben, gemäß den Netzwerkregeln offiziell Blöcke zu beglaubigen und vorzuschlagen. - -Vor dem Shanghai/Capella-Upgrade konnten Sie Ihr gestaktes ETH nicht verwenden oder darauf zugreifen. Aber jetzt können Sie sich dafür entscheiden, Ihre Belohnungen automatisch auf ein ausgewähltes Konto zu erhalten, und Sie können auch jederzeit Ihr gestaktes ETH abheben. - -### Wie bereite ich mich vor? {#how-do-i-prepare} - - - -### Wichtige Hinweise {#important-notices} - -Die Angabe einer Auszahlungsadresse ist ein erforderlicher Schritt für jedes Validator-Konto, bevor es für die Abhebung von ETH aus seinem Guthaben infrage kommt. - - - Jedem Validatoren-Konto kann nur eine einzige Abhebungsadresse zugewiesen werden, und zwar nur einmal. Sobald eine Adresse ausgewählt und an die Konsensus-Ebene übermittelt wurde, lässt sich dieser Vorgang nicht mehr rückgängig machen. Überprüfen Sie die Besitzverhältnisse und die Richtigkeit der angegebenen Adresse, bevor Sie sie einreichen. - - -In der Zwischenzeit besteht keine Bedrohung für Ihre Gelder, wenn Sie dies nicht tun, vorausgesetzt, Ihre Mnemonic-/Seed-Phrase ist offline sicher aufbewahrt und wurde in keiner Weise kompromittiert. Wenn keine Auszahlungsinformationen hinzugefügt werden, bleibt das ETH einfach im Validator-Konto gesperrt, wie es bislang der Fall war, bis eine Auszahlungsadresse angegeben wird. - -## Das vollständige Beenden des Staking {#exiting-staking-entirely} - -Die Angabe einer Auszahlungsadresse ist erforderlich, bevor _irgendwelche_ Gelder aus dem Guthaben eines Validator-Kontos übertragen werden können. - -Benutzer, die das Staking vollständig beenden und ihr gesamtes Guthaben abheben möchten, müssen auch eine „freiwillige Ausstiegsnachricht" mit Validator-Schlüsseln unterzeichnen und übermitteln, die den Prozess des Ausstiegs aus dem Staking einleitet. Der Vorgang erfolgt mit Ihrem Validator-Client und wird an Ihren Konsens-Node übermittelt. Dafür fallen keine Gas-Kosten an. - -Der Prozess, bei dem ein Validator aus dem Staking aussteigt, dauert je nachdem, wie viele andere gleichzeitig aussteigen, unterschiedlich lange. Sobald der Vorgang abgeschlossen ist, ist dieses Konto nicht mehr dafür verantwortlich, Validator-Netzwerkaufgaben auszuführen, ist nicht mehr für Belohnungen berechtigt und hat sein ETH nicht mehr „aufs Spiel gesetzt". Zu diesem Zeitpunkt wird das Konto als vollständig „abhebbar" gekennzeichnet. - -Sobald ein Konto als „abhebbar" markiert wurde und Auszahlungsinformationen bereitgestellt wurden, gibt es nichts mehr, was ein Benutzer tun muss, außer zu warten. Konten werden automatisch und kontinuierlich von Block-Proposern auf berechtigte freigegebene Gelder durchsucht, und Ihr Kontoguthaben wird in voller Höhe (auch als „vollständiger Abzug" bekannt) während des nächsten Sweeps übertragen. - -## Wann sind Staking-Abhebungen aktiviert? {#when} - -Staking-Abhebungen sind live! Die Funktionalität für das Abheben wurden als Teil des Shanghai/Capella Upgrades vom 12. April 2023 aktiviert. - -Das Shanghai/Capella Upgrade ermöglicht ETH, das gestaked wurde, mit regulären Ethereum-Konten zurückzufordern. Dies schloss den Kreis hinsichtlich der Bereitstellung von Liquidität und brachte Ethereum einen Schritt näher auf seinem Weg, ein nachhaltiges, skalierbares, sicheres dezentralisiertes Ökosystem zu schaffen. - -- [Mehr zur Geschichte von Ethereum](/history/) -- [Mehr zur Ethereum-Roadmap](/roadmap/) - -## Wie funktionieren Auszahlungen? {#how-do-withdrawals-work} - -Ob ein bestimmter Validator zur Auszahlung berechtigt ist oder nicht, wird durch den Zustand des Validator-Kontos selbst bestimmt. Es ist zu keinem Zeitpunkt eine Benutzereingabe erforderlich, um zu bestimmen, ob eine Auszahlung für ein Konto eingeleitet werden sollte oder nicht - der gesamte Prozess wird automatisch von der Konsensschicht in einer kontinuierlichen Schleife durchgeführt. - -### Eher der visuelle Lernende? {#visual-learner} - -Sehen Sie sich diese Erklärung für die Abhebungen von Ethereum von Finematics an: - - - -### Validator „Sweeping" {#validator-sweeping} - -Es ist notwendig, dass ein Validator, der den nächsten Block vorschlagen soll, eine Warteschlange mit bis zu 16 zugelassenen Auszahlungen erstellt. Ursprünglich beginnt man mit dem Validator-Index 0 und prüft, ob es gemäß den Protokollregeln eine berechtigte Auszahlung für dieses Konto gibt. Ist dies der Fall, wird sie zur Warteschlange hinzugefügt. Der für den nächsten Block vorgesehene Validator knüpft ununterbrochen dort an, wo der vorherige aufgehört hat, und verfährt dabei in stetiger Reihenfolge. - - -Stellen Sie sich eine analoge Uhr vor. Der Zeiger der Uhr zeigt auf die Stunde, bewegt sich in eine Richtung, lässt keine Stunden aus und kehrt schließlich nach Erreichen der letzten Zahl wieder an den Anfang zurück.

-Stellen Sie sich nun vor, dass die Uhr statt 1 bis 12 die Zahlen 0 bis N hat (die Gesamtzahl der jemals auf der Konsensus-Ebene registrierten Validatoren-Konten, über 500.000 im Januar 2023).

-Der Zeiger auf der Uhr zeigt auf den nächstenValidator, der auf zulässige Abhebungen geprüft werden muss. Es beginnt bei 0 und schreitet rundherum fort, ohne irgendwelche Konten zu überspringen. Wenn der letzte Validator erreicht ist, beginnt der Zyklus von vorne. -
- -#### Überprüfung eines Kontos auf Auszahlungen {#checking-an-account-for-withdrawals} - -Bei der Durchsicht der Validatoren auf mögliche Auszahlungen bewertet der Vorschlagende jeden überprüften Validator mit einer kurzen Fragenreihe. Auf diese Weise wird entschieden, ob eine Auszahlung ausgelöst werden sollte und falls ja, wie viel ETH abgehoben werden soll. - -1. **Wurde eine Auszahlungsadresse angegeben?** Wenn keine Auszahlungsadresse angegeben wurde, wird das Konto übersprungen und keine Auszahlung eingeleitet. -2. **Hat der Validator den Prozess verlassen und ist das Guthaben abhebbar?** Sobald der Validator den Prozess komplett verlassen hat und der Zeitpunkt erreicht ist, in dem das Guthaben des Kontos als „abhebbar" gilt, wird eine vollständige Auszahlung veranlasst. Dies wird das gesamte verbleibende Guthaben an die Auszahlungsadresse übertragen. -3. **Ist der effektive Kontostand auf 32 begrenzt?** Falls das Konto Auszahlungsberechtigungen besitzt, noch nicht vollständig beendet ist und über 32 anstehende Belohnungen hat, wird eine teilweise Auszahlung vorgenommen. Dabei werden lediglich die über 32 hinausgehenden Belohnungen an die Auszahlungsadresse des Benutzers übertragen. - -Es gibt nur zwei Aktionen, die von Validatoren während des Lebenszyklus eines Validators durchgeführt werden, die diesen Ablauf direkt beeinflussen: - -- Bereitstellung von Auszahlungsberechtigungen, um eine Form von Auszahlung zu ermöglichen -- Verlassen des Netzwerks, was eine vollständige Auszahlung anstößt - -### Kostenfreies Gas {#gas-free} - -Dieser Ansatz für Staking-Auszahlungen vermeidet, dass Staker manuell eine Transaktion einreichen müssen, die eine bestimmte Menge an ETH zur Auszahlung anfordert. Das bedeutet, dass **kein Gas (Transaktionsgebühr) erforderlich** ist und Auszahlungen auch nicht um den bestehenden Blockplatz der Ausführungsschicht konkurrieren. - -### Wie oft erhalte ich meine Staking-Belohnungen? {#how-soon} - -In einem einzigen Block können maximal 16 Auszahlungen verarbeitet werden. Mit dieser Rate können pro Tag 115.200 Validator-Auszahlungen verarbeitet werden (vorausgesetzt, es werden keine Slots verpasst). Wie oben erwähnt, werden Validatoren ohne berechtigte Auszahlungen übersprungen, was die Zeit bis zum Abschluss des Durchlaufs verkürzt. - -Indem wir diese Berechnung erweitern, können wir die Zeit abschätzen, die benötigt wird, um eine bestimmte Anzahl von Auszahlungen zu verarbeiten: - - - -| Anzahl der Auszahlungen | Zeit bis zum Abschluss | -| :---------------------: | :--------------------: | -| 400,000 | 3,5 Tage | -| 500,000 | 4,3 Tage | -| 600,000 | 5,2 Tage | -| 700,000 | 6,1 Tage | -| 800,000 | 7,0 Tage | - - - -Wie Sie sehen, verlangsamt sich dieser Prozess, wenn mehr Validatoren im Netzwerk sind. Eine Zunahme von verpassten Slots könnte dies proportional verlangsamen, aber dies wird im Allgemeinen die langsamere Seite der möglichen Ergebnisse darstellen. - -## Häufig gestellte Fragen {#faq} - - -Nein, der Prozess zur Bereitstellung von Auszahlungsberechtigungen ist ein einmaliger Prozess und kann nach der Einreichung nicht mehr geändert werden. - - - -Durch die Einstellung einer Ausführungsebene wurden die Auszahlungsberechtigungen für diesen Validator dauerhaft geändert. Das bedeutet, dass die alten Berechtigungen nicht mehr funktionieren, und die neuen Berechtigungen zu einem Ausführungsschicht-Konto führen. - -Abhebungsadressen können entweder ein intelligenter Vertrag sein (durch seinen Code kontrolliert), oder ein externes Konto (EOA, kontrolliert durch seinen privaten Schlüssel). Aktuell existiert keine Möglichkeit für diese Konten, eine Nachricht zur Konsensschicht zurückzusenden, die eine Änderung der Validator-Anmeldeinformationen anzeigen würde. Eine solche Funktion einzuführen, würde das Protokoll unnötig komplizieren. - -Als Alternative zur Änderung der Auszahlungsadresse für einen bestimmten Validator können sich Benutzer dafür entscheiden, einen intelligenten Vertrag als ihre Auszahlungsadresse festzulegen, der Schlüsselrotationen handhaben könnte, wie zum Beispiel ein Safe. Benutzer, die ihre Mittel auf ihr eigenes extern kontrolliertes Konto (EOA) setzen, können einen vollständigen Ausstieg durchführen, um all ihre gestakten Mittel abzuheben, und dann mit neuen Anmeldeinformationen erneut staken. - - - - -Wenn Sie Teil eines Staking-Pools sind oder Staking-Token besitzen, sollten Sie sich bei Ihrem Anbieter erkundigen, wie Staking-Auszahlungen gehandhabt werden, da jeder Dienst anders funktioniert. - -Im Allgemeinen sollten Benutzer in der Lage sein, ihr zugrundeliegendes gestaktes ETH zurückzufordern oder zu ändern, welchen Staking-Anbieter sie nutzen. Wenn ein bestimmter Pool zu groß wird, können Mittel abgezogen, eingelöst und mit einem kleineren Anbieter neu gestaked werden. Oder, wenn Sie genug ETH angesammelt haben, könnten Sie von zu Hause aus staken. - - - - -Ja, solange Ihr Validator eine Auszahlungsadresse bereitgestellt hat. Diese muss einmal bereitgestellt werden, um Auszahlungen zu ermöglichen, danach werden Belohnungszahlungen automatisch alle paar Tage mit jedem Durchlauf des Validators ausgelöst. - - - - -Nein, wenn Ihr Validator noch aktiv im Netzwerk ist, erfolgt keine automatische Auszahlung. Dies erfordert das manuelle Einleiten eines freiwilligen Ausstiegs. - -Sobald ein Validator den Ausstiegsprozess abgeschlossen hat und vorausgesetzt, das Konto verfügt über Auszahlungsberechtigungen, wird das verbleibende Guthaben dann während des nächsten Validator-Durchlaufs abgehoben. - - - - -Auszahlungen sind darauf ausgelegt, automatisch durchgeführt zu werden und jegliches ETH zu übertragen, das nicht aktiv zum Staking beiträgt. Dies beinhaltet vollständige Salden für Konten, die den Ausstiegsprozess abgeschlossen haben. - -Es ist nicht möglich, manuell spezifische Mengen an ETH zur Auszahlung anzufordern. - - - - -Es wird empfohlen, dass Validatoren die Seite Staking Launchpad Withdrawals besuchen, auf der Sie weitere Details dazu finden, wie Sie Ihren Validator auf Auszahlungen vorbereiten können. Vorbereitung, Zeitpunkt der Ereignisse und weitere Details darüber, wie Auszahlungen funktionieren. - -Um Ihre Einrichtung zunächst auf einem Testnetz auszuprobieren, können Sie mit dem Goerli Testnet Staking Launchpad beginnen. - - - - -Nein. Sobald ein Validator ausgetreten ist und sein gesamtes Guthaben abgehoben wurde, werden alle zusätzlichen Einzahlungen auf diesen Validator automatisch während des nächsten Validator-Durchlaufs an die Auszahlungsadresse übertragen. Um ETH erneut zu staken, muss ein neuer Validator aktiviert werden. - - -## Weiterführende Informationen {#further-reading} - -- [Startplattform für Staking-Auszahlungen](https://launchpad.ethereum.org/withdrawals) -- [EIP-4895: Beacon-Kette implementiert Abhebungen als Operationen](https://eips.ethereum.org/EIPS/eip-4895) -- [Ethereum Cat Herders - Shanghai](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) -- [PEEPanEIP #94: Auszahlung von gestaktem ETH (Testing) mit Potuz & Hsiao-Wei Wang](https://www.youtube.com/watch?v=G8UstwmGtyE) -- [PEEPanEIP#68: EIP-4895: Beacon-Kette implementiert Abhebungen als Operationen mit Alex Stokes](https://www.youtube.com/watch?v=CcL9RJBljUs) -- [Verständnis der effektiven Bilanz des Validators](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/el/community/support/index.md b/src/content/translations/el/community/support/index.md deleted file mode 100644 index 42e87bf7c9f..00000000000 --- a/src/content/translations/el/community/support/index.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -title: Υποστήριξη Ethereum -description: Λάβετε υποστήριξη στο οικοσύστημα του Ethereum. -lang: el ---- - -# Υποστήριξη Ethereum {#support} - -## Επίσημη υποστήριξη του Ethereum {#official-support} - -Χρειάζεστε επίσημη υποστήριξη του Ethereum; Το πρώτο πράγμα που πρέπει να γνωρίζετε είναι ότι το Ethereum είναι αποκεντρωμένο. Αυτό σημαίνει ότι κανένας κεντρικός οργανισμός, οντότητα ή άτομο δεν κατέχει το Ethereum και γι' αυτό δεν υπάρχουν επίσημα κανάλια υποστήριξης. - -Η κατανόηση της αποκεντρωμένης φύσης του Ethereum είναι ζωτικής σημασίας, γιατί οποιοσδήποτε παρουσιάζεται ως επίσημη υποστήριξη για το Ethereum πιθανότατα προσπαθεί να σας εξαπατήσει! Η καλύτερη προστασία από απατεώνες είναι να εκπαιδευτείτε καλύτερα και να λάβετε σοβαρά υπόψη την ασφάλεια. - - - Ασφάλεια του Ethereum και πρόληψη κατά της απάτης - - - - Μάθετε τις βασικές αρχές του Ethereum - - -Παρά την έλλειψη επίσημης υποστήριξης, πολλές ομάδες, κοινότητες και έργα σε όλο το οικοσύστημα του Ethereum είναι πρόθυμοι να βοηθήσουν και μπορείτε να βρείτε πολλές χρήσιμες πληροφορίες και πόρους σε αυτήν τη σελίδα. Έχετε περισσότερες ερωτήσεις; Εγγραφείτε στο [ethereum.org Discord](/discord/) και θα προσπαθήσουμε να σας βοηθήσουμε. - -## Υποστήριξη πορτοφολιού {#wallet-support} - -Αντιμετωπίζετε πρόβλημα με το πορτοφόλι σας; Τα περισσότερα πορτοφόλια έχουν ειδικές ομάδες υποστήριξης που μπορούν να βοηθήσουν: - -- [MetaMask](https://metamask.zendesk.com/hc/) -- [Argent](https://support.argent.xyz/hc/) -- [MyEtherWallet](https://help.myetherwallet.com/) - -_Η παραπάνω λίστα δεν είναι ολοκληρωμένη. Χρειάζεστε βοήθεια υποστήριξης για συγκεκριμένο πορτοφόλι; Εγγραφείτε στο [ethereum.org discord](https://discord.gg/rZz26QWfCg) και θα προσπαθήσουμε να σας βοηθήσουμε._ - -Ενδιαφέρεστε για πορτοφόλι Ethereum; [Δείτε την πλήρη λίστα πορτοφολιών Ethereum](/wallets/find-wallet/). - -## Δημιουργία αποκεντρωμένων εφαρμογών {#building-support} - -Η υλοποίηση μπορεί να είναι δύσκολη. Δείτε παρακάτω ιστότοπους ανάπτυξης με έμπειρους προγραμματιστές Ethereum που μπορούν να σας βοηθήσουν. - -- [Alchemy University](https://university.alchemy.com/#starter_code) -- [CryptoDevs discord](https://discord.gg/Z9TA39m8Yu) -- [Ethereum StackExchange](https://ethereum.stackexchange.com/) -- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) -- [Web3 University](https://www.web3.university/) -- [LearnWeb3](https://discord.com/invite/learnweb3) - -Μπορείτε επίσης να βρείτε οδηγούς τεκμηρίωσης και ανάπτυξης στην ενότητα [Πόροι προγραμματιστών Ethereum](/developers/). - -### Εργαλεία {#dapp-tooling} - -Η ερώτησή σας αφορά σε συγκεκριμένο εργαλείο, έργο, ή βιβλιοθήκη; Τα περισσότερα έργα έχουν διακομιστές συνομιλίας ή φόρουμ αφιερωμένα στην υποστήριξή σας. - -Δείτε μερικά δημοφιλή παραδείγματα: - -- [Solidity](https://gitter.im/ethereum/solidity/) -- [ethers.js](https://discord.gg/6jyGVDK6Jx) -- [web3.js](https://discord.gg/GsABYQu4sC) -- [Hardhat](https://discord.gg/xtrMGhmbfZ) -- [Truffle](https://discord.gg/8uKcsccEYE) -- [Alchemy](http://alchemy.com/discord) -- [Tenderly](https://discord.gg/fBvDJYR) - -## Εκτέλεση κόμβου {#node-support} - -Αν εκτελείτε έναν κόμβο ή έναν επαληθευτή, δείτε παρακάτω μερικές κοινότητες που είναι αφιερωμένες να σας βοηθήσουν να ξεκινήσετε. - -- [EthStaker discord](https://discord.gg/ethstaker) -- [EthStaker reddit](https://www.reddit.com/r/ethstaker) - -Οι περισσότεροι από τους πελάτες του Ethereum έχουν επίσης ξεχωριστούς, δημόσιους χώρους, όπου μπορείτε να λάβετε υποστήριξη και να υποβάλλετε ερωτήσεις. - -### Λογισμικό πελάτη {#execution-clients} - -- [Geth](https://discord.gg/FqDzupGyYf) -- [Nethermind](https://discord.gg/YJx3pm8z5C) -- [Besu](https://discord.gg/p8djYngzKN) -- [Erigon](https://github.com/ledgerwatch/erigon/issues) - -### Προγράμματα συναίνεσης {#consensus-clients} - -- [Prysm](https://discord.gg/prysmaticlabs) -- [Nimbus](https://discord.gg/nSmEH3qgFv) -- [Lighthouse](https://discord.gg/cyAszAh) -- [Teku](https://discord.gg/7hPv2T6) -- [Lodestar](https://discord.gg/aMxzVcr) - -Μπορείτε επίσης να [μάθετε πώς να εκτελέσετε έναν κόμβο εδώ](/developers/docs/nodes-and-clients/run-a-node/). - -## Συχνές ερωτήσεις {#faq} - -#### Έχω στείλει ETH σε λάθος πορτοφόλι {#wrong-wallet} - -Μια συναλλαγή που αποστέλλεται στο Ethereum είναι μη αναστρέψιμη. Δυστυχώς, εάν έχετε στείλει ETH σε λάθος πορτοφόλι, δεν υπάρχει τρόπος να ανακτήσετε αυτά τα χρήματα. Κανένας κεντρικός οργανισμός, οντότητα ή πρόσωπο δεν κατέχει το Ethereum, πράγμα που σημαίνει ότι κανείς δεν μπορεί να επέμβει στις συναλλαγές. Επομένως, είναι ζωτικής σημασίας να ελέγχετε πάντα τις συναλλαγές σας πριν τις ολοκληρώσετε. - -#### Πώς μπορώ να διεκδικήσω το δώρο μου στο Ethereum; {#giveaway-scam} - -Τα δώρα στο Ethereum είναι απάτες που έχουν σχεδιαστεί για να κλέψουν τα ETH σας. Μη δελεάζεστε από προσφορές που φαίνονται πολύ καλές για να είναι αληθινές, εάν στείλετε ETH σε μια διεύθυνση προσφοράς δε θα λάβετε δώρο και δε θα μπορείτε να ανακτήσετε τα χρήματά σας. - -[Περισσότερα για την πρόληψη κατά της απάτης](/security/#common-scams) - -#### Η συναλλαγή μου καθυστερεί {#stuck-transaction} - -Οι συναλλαγές στο Ethereum μερικές φορές μπορεί να καθυστερούν εάν έχετε υποβάλει χαμηλότερες κρατήσεις συναλλαγής από αυτή που απαιτείται λόγω της ζήτησης του δικτύου. Πολλά πορτοφόλια παρέχουν επιλογή για εκ νέου υποβολή της ίδιας συναλλαγής, με υψηλότερη χρέωση για την επίσπευσή της. Εναλλακτικά, μπορείτε να ακυρώσετε μια εκκρεμή συναλλαγή στέλνοντας μια συναλλαγή στη δική σας διεύθυνση και χρησιμοποιώντας το ίδιο «nonce» με την εκκρεμή συναλλαγή. - -[Πώς να επιταχύνετε ή να ακυρώσετε μια εκκρεμή συναλλαγή στο MetaMask](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) - -[Πώς να ακυρώσετε τις εκκρεμείς συναλλαγές Ethereum](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) - -#### Πώς μπορώ να κρυπτορύξω Ethereum; {#mining-ethereum} - -Η κρυπτόρυξη στο Ethereum δεν είναι πλέον δυνατή. Η κρυπτόρυξη απενεργοποιήθηκε όταν το Ethereum πέρασε από την απόδειξη εργασίας στην απόδειξη συμμετοχής. Τώρα, αντί για κρυπτορύχους, το Ethereum έχει επικυρωτές. Οι επικυρωτές αποθηκεύουν το κεφάλαιό τους σε ETH και λαμβάνουν ανταμοιβές για την ασφάλεια του δικτύου. - -#### Πώς να κάνετε αποθήκευση κεφαλαίου/επικύρωση; {#become-validator} - -Για να γίνετε επικυρωτής, πρέπει να αποθηκεύσετε 32 ETH στο συμβόλαιο κατάθεσης του Ethereum και να δημιουργήσετε έναν κόμβο επικύρωσης. Περισσότερες πληροφορίες είναι διαθέσιμες στη [σελίδα αποθήκευσης κεφαλαίου](/staking) και στην [πλατφόρμα εκκίνησης αποθήκευσης κεφαλαίου](https://launchpad.ethereum.org/). diff --git a/src/content/translations/el/dao/index.md b/src/content/translations/el/dao/index.md deleted file mode 100644 index 1cc46c6c834..00000000000 --- a/src/content/translations/el/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: Αποκεντρωμένοι Αυτόνομοι Οργανισμοί (DAO) -description: Μια επισκόπηση των DAO στο Ethereum -lang: el -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: Αναπαράσταση ενός DAO που ψηφίζει για μια πρόταση. -summaryPoint1: Κοινότητες αποτελούμενες από μέλη χωρίς κεντρική εξουσία. -summaryPoint2: Ένας ασφαλής τρόπος συνεργασίας μεταξύ αγνώστων στο διαδίκτυο. -summaryPoint3: Ένα ασφαλές μέρος συγκέντρωσης κεφαλαίων για συγκεκριμένο σκοπό. ---- - -## Τι είναι οι DAO; {#what-are-daos} - -Ένας DAO είναι μια οργάνωση που διαχειρίζεται συλλογικά, διοικούμενη στην κρυπτοαλυσίδα και εργάζεται προς μια κοινή αποστολή. - -Οι DAO μας επιτρέπουν να εργαζόμαστε με άλλους χρήστες σε όλο τον κόσμο χωρίς να εμπιστευόμαστε έναν καλοπροαίρετο ηγέτη για να διαχειριστούμε τα κεφάλαια ή τις επιχειρήσεις. Δεν υπάρχει διευθύνων σύμβουλος που να μπορεί να δαπανήσει χρήματα για μια ιδιοτροπία του ή οικονομικός σύμβουλος που να μπορεί να χειραγωγήσει τα λογιστικά βιβλία. Αντιθέτως, οι κανόνες με βάση την κρυπτοαλυσίδα ενσωματώνονται στον κώδικα και καθορίζουν τον τρόπο λειτουργίας του οργανισμού και της δαπάνης των κεφαλαίων. - -Υπάρχουν ενσωματωμένα θησαυροφυλάκια στα οποία κανείς δεν έχει έγκριση πρόσβασης χωρίς την άδεια της ομάδας. Οι αποφάσεις λαμβάνονται μετά από προτάσεις και ψηφοφορίες για να διασφαλιστεί ότι όλοι στον οργανισμό έχουν λόγο και όλα συμβαίνουν με διαφάνεια στην κρυπτοαλυσίδα. - -## Πού εξυπηρετούν οι οργανισμοί DAO; {#why-dao} - -Η έναρξη ενός οργανισμού με κάποιον που έχει συμμετοχή στη χρηματοδότηση και τα χρήματα, απαιτεί μεγάλη εμπιστοσύνη στους ανθρώπους με τους οποίους συνεργάζεστε. Αλλά είναι δύσκολο να εμπιστευτείς κάποιον με τον οποίο έχεις έρθει σε επαφή μόνο στο διαδίκτυο. Με τη χρήση των οργανισμών DAO δε χρειάζεται να εμπιστεύεστε κανέναν άλλον στην ομάδα, παρά μόνο τον κώδικα του DAO, ο οποίος είναι 100% διαφανής και επαληθεύσιμος από οποιονδήποτε. - -Αυτό ανοίγει πάρα πολλές νέες ευκαιρίες για παγκόσμια συνεργασία και συντονισμό. - -### Σύγκριση {#dao-comparison} - -| DAO | Ένας παραδοσιακός οργανισμός | -| -------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| Συνήθως επίπεδη και πλήρως εκδημοκρατισμένη. | Συνήθως ιεραρχικά. | -| Απαιτείται ψηφοφορία από τα μέλη για τυχόν αλλαγές που πρόκειται να υλοποιηθούν. | Ανάλογα με τη δομή, μπορεί να ζητηθούν αλλαγές από ένα μόνο μέρος ή να υπάρξει ψηφοφορία. | -| Η καταμέτρηση των ψήφων και η εφαρμογή του αποτελέσματος γίνεται αυτόματα χωρίς την ύπαρξη αξιόπιστου διαμεσολαβητή. | Εάν επιτρέπεται η ψηφοφορία, οι ψήφοι καταμετρώνται εντός της εταιρείας και το αποτέλεσμα της ψηφοφορίας διεκπεραιώνεται χειρόγραφα. | -| Οι προσφερόμενες υπηρεσίες διεκπεραιώνονται αυτόματα με αποκεντρωμένο τρόπο (π.χ. διανομή φιλανθρωπικών κεφαλαίων). | Απαιτεί ανθρώπινο χειρισμό ή κεντρικά ελεγχόμενη αυτοματοποίηση, ευάλωτη σε χειραγώγηση. | -| Όλες οι δραστηριότητες είναι διαφανείς και πλήρως δημόσιες. | Η δραστηριότητα είναι συνήθως ιδιωτική και μη δημοσιεύσιμη σε όλα τα ενδιαφερόμενα μέρη. | - -### Παραδείγματα οργανισμών DAO {#dao-examples} - -Για να γίνει πιο κατανοητό, παραθέτουμε μερικά παραδείγματα για το πώς θα μπορούσαν να χρησιμοποιηθούν οι οργανισμοί DAO: - -- Φιλανθρωπία – θα μπορούσατε να δεχτείτε δωρεές από οποιονδήποτε στον κόσμο και να ψηφίσετε τον τρόπο ανάθεσης. -- Συλλογική ιδιοκτησία - θα μπορούσατε να αγοράσετε φυσικά ή ψηφιακά περιουσιακά στοιχεία και τα μέλη μπορούν να ψηφίσουν για τον τρόπο χρήσης. -- Επιχειρήσεις και επιχορηγήσεις - θα μπορούσατε να δημιουργήσετε ένα ταμείο χρηματοδότησης που συγκεντρώνει επενδυτικά κεφάλαια και ψηφίζει για τις επιχειρήσεις που θα υποστηρίξει. Τα επιστρεφόμενα χρήματα μπορούν αργότερα να αναδιανεμηθούν μεταξύ των μελών των οργανισμών DAO. - -## Πώς λειτουργούν οι DAO; {#how-daos-work} - -Η ραχοκοκαλιά ενός DAO είναι το έξυπνο συμβόλαιο του, το οποίο ορίζει τους κανόνες του οργανισμού και κατέχει το θησαυροφυλάκιο της ομάδας. Μόλις το συμβόλαιο δημοσιευτεί στο Ethereum, κανείς δεν μπορεί να αλλάξει τους κανόνες εκτός από μια ψηφοφορία. Αν κάποιος προσπαθήσει να τροποποιήσει κάτι που δεν καλύπτεται από τους κανόνες και τη λογική του κώδικα, θα αποτύχει. Και επειδή ο θησαυρός του καθορίζεται επίσης από το έξυπνο συμβόλαιό του, σημαίνει ότι κανείς δεν μπορεί να σπαταλήσει τα χρήματα χωρίς την έγκριση της ομάδας. Αυτό σημαίνει ότι οι DAO δε χρειάζονται κεντρική εξουσία. Αντιθέτως, η ομάδα λαμβάνει συλλογικές αποφάσεις και οι πληρωμές εγκρίνονται αυτόματα μετά από ψηφοφορία. - -Αυτό είναι δυνατό επειδή τα έξυπνα συμβόλαια είναι απαραβίαστα μόλις δημοσιευτούν στο Ethereum. Δεν μπορείτε απλά να επεξεργαστείτε τον κώδικα (τους κανόνες των DAO) χωρίς να το προσέξει κανείς επειδή όλα είναι δημόσια. - - - Περισσότερα για τα έξυπνα συμβόλαια - - -## Το Ethereum και οι DAO {#ethereum-and-daos} - -Το Ethereum είναι το ιδανικό θεμέλιο για DAO για διάφορους λόγους: - -- Η συναίνεση του Ethereum διαδοθεί και καθιερωθεί αρκετά ώστε οι οργανισμοί να εμπιστεύονται το δίκτυο. -- Ο κώδικας του έξυπνου συμβολαίου δεν μπορεί να τροποποιηθεί από τη στιγμή που θα δημοσιευθεί, ακόμη και από τους ιδιοκτήτες του. Αυτό επιτρέπει στον DAO να λειτουργεί σύμφωνα με τους κανόνες με τους οποίους έχει προγραμματιστεί. -- Τα έξυπνα συμβόλαια μπορούν να στέλνουν/λαμβάνουν κεφάλαια. Χωρίς αυτά θα χρειαζόσασταν έναν έμπιστο ενδιάμεσο για να διαχειριστείτε τα κεφάλαια της ομάδας. -- Η κοινότητα του Ethereum έχει αποδειχθεί ότι είναι ποιο συνεργατική παρά ανταγωνιστική, επιτρέποντας την ταχεία εμφάνιση βέλτιστων πρακτικών και συστημάτων υποστήριξης. - -## Διακυβέρνηση DAO {#dao-governance} - -Υπάρχουν πολλές συζητήσεις όταν διαχειρίζεται ένας DAO, όπως το πώς λειτουργούν οι ψηφοφορίες και οι προτάσεις. - -### Αντιπροσωπεία {#governance-delegation} - -Αντιπροσωπεία είναι σαν η εκδοχή σε DAO της αντιπροσωπευτικής δημοκρατίας. Οι κάτοχοι των ψηφιακών στοιχείων εκχωρούν ψήφους σε χρήστες που ορίζουν τους εαυτούς τους και δεσμεύονται να διαχειρίζονται το πρωτόκολλο και να παραμένουν ενημερωμένοι. - -#### Ένα δημοφιλές παράδειγμα {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) – Οι κάτοχοι ENS μπορούν να εκχωρήσουν τις ψήφους τους σε ενεργά μέλη της κοινότητας για να τους εκπροσωπούν. - -### Αυτόματη διακυβέρνηση συναλλαγής {#governance-example} - -Σε πολλούς DAO, οι συναλλαγές θα εκτελούνται αυτόματα εάν επιβεβαιωθεί η απαρτία μελών. - -#### Ένα δημοφιλές παράδειγμα {#governance-example} - -[Nouns](https://nouns.wtf) – Στο Nouns DAO, μια συναλλαγή εκτελείται αυτόματα εφόσον επιτευχθεί απαρτία των ψήφων και επικράτηση αυτών με πλειοψηφία, όσο δεν υπάρχει βέτο από τους ιδρυτές. - -### Διακυβέρνηση πολλαπλών υπογραφών {#governance-example} - -Καθώς οι DAOs μπορεί να έχουν χιλιάδες μέλη που ψηφίζουν, τα κεφάλαια μπορούν να διατηρούνται σε ένα πορτοφόλι που μοιράζονται 5-20 ενεργά μέλη της κοινότητας που είναι αξιόπιστα και συνήθως doxxed (δημόσιες ταυτότητες γνωστές στην κοινότητα). Μετά την ψηφοφορία, οι εξουσιοδοτημένοι υπογράφοντες εκτελούν τη βούληση της κοινότητας. - -## Νομοθεσία DAO {#dao-laws} - -Το 1977, το Wyoming εφηύρε την LLC, η οποία προστατεύει τους επιχειρηματίες και περιορίζει την ευθύνη τους. Πιο πρόσφατα, πρωτοστάτησαν στο νόμο DAO που θεσπίζει το νομικό καθεστώς για τους DAO. Επί του παρόντος το Wyoming, το Vermont και οι Παρθένοι Νήσοι διαθέτουν DAO νόμους σε κάποια μορφή. - -#### Ένα δημοφιλές παράδειγμα {#law-example} - -[CityDAO](https://citydao.io) – Η CityDAO χρησιμοποίησε το νόμο DAO του Wyoming για να αγοράσει 40 στρέμματα γης κοντά στο Εθνικό Πάρκο Yellowstone. - -## Μέλη DAO {#dao-membership} - -Υπάρχουν διάφοροι τύποι συμμετοχής μελών στους οργανισμούς DAO. Ο τύπος μέλους καθορίζει τον τρόπο συμμετοχής στις ψηφοφορίες αλλά και άλλα χαρακτηριστικά της συμμετοχής στον οργανισμό DAO. - -### Συμμετοχή βασισμένη σε ψηφιακό στοιχείο {#token-based-membership} - -Συνήθως χωρίς άδειες, ανάλογα με το ψηφιακό στοιχείο που χρησιμοποιείται. Κυρίως αυτά τα ψηφιακά στοιχεία διακυβέρνησης μπορούν να αποτελέσουν αντικείμενο ανταλλαγής χωρίς ανάγκη άδειας σε ένα αποκεντρωμένο ανταλλακτήριο. Άλλα πρέπει να αποκτώνται με την παροχή ρευστότητας ή με κάποια άλλη «απόδειξη εργασίας». Όπως και να χει, απλά κατέχοντας το ψηφιακό στοιχείο εγγυάται η πρόσβαση σε ψηφοφορίες. - -_Συνήθως χρησιμοποιείται για να καθοδηγούν ευρεία αποκεντρωμένα πρωτόκολλα και/ή ψηφιακά στοιχεία._ - -#### Ένα δημοφιλές παράδειγμα {#token-example} - -[MakerDAO](https://makerdao.com) – Το ψηφιακό στοιχείο του MakerDAO MKR είναι ευρέως διαθέσιμο σε αποκεντρωμένα ανταλλακτήρια και ο καθένας μπορεί να αγοράσει το δικαίωμα ψήφου στο μέλλον του πρωτοκόλλου Maker. - -### Συμμετοχή βασισμένη σε μετοχές {#share-based-membership} - -Οι DAO που βασίζονται σε μετοχές είναι περισσότερο κάτω από άδειες, αλλά ακόμα διατηρούνται ανοιχτοί. Κάθε υποψήφιο μέλος μπορεί να υποβάλει πρόταση για να ενταχθεί σε DAO, προσφέροντας συνήθως ένα συμβολικό ποσό ή εργασία. Ο αριθμός των μετοχών αντιπροσωπεύουν άμεσα τη δύναμη ψήφου και το ποσοστό ιδιοκτησίας. Τα μέλη μπορούν να αποχωρήσουν ανά πάσα στιγμή με το μερίδιο που τους αναλογεί, από το κοινό κεφάλαιο. - -_Συνήθως χρησιμοποιείται για πιο στενές και ανθρωποκεντρικές οργανώσεις, όπως τις φιλανθρωπικές οργανώσεις, τις συλλογικότητες των εργαζομένων και τους επενδυτικούς συλλόγους. Μπορεί επίσης να ρυθμίζει πρωτόκολλα και ψηφιακά στοιχεία._ - -#### Ένα δημοφιλές παράδειγμα {#share-example} - -[MolochDAO](http://molochdao.com/) – το MolochDAO επικεντρώνεται στη χρηματοδότηση έργων στο Ethereum. Απαιτούν μια πρόταση για την πρόσβαση μέλους, έτσι ώστε η ομάδα να μπορεί να αξιολογήσει αν υπάρχει η απαραίτητη εμπειρία και κεφάλαιο, για να προβεί όσο το δυνατόν σε ποιο σωστές αποφάσεις σχετικά με πιθανές χορηγίες. Δεν μπορείτε απλά να αγοράσετε πρόσβαση σε έναν DAO στην ανοικτή αγορά. - -### Συμμετοχή που βασίζεται στη δημοσιότητα {#reputation-based-membership} - -Η δημοσιότητα αποτελεί απόδειξη παρουσίας και παρέχει το δικαίωμα ψήφου στον DAO. Σε αντίθεση με τα μέλη σύμφωνα με τα ψηφιακά στοιχεία ή τις μετοχές τους, οι DAO που βασίζονται στη δημοσιότητα δε μεταβιβάζουν την ιδιοκτησία στους συμμετέχοντες. Η δημοσιότητα δεν μπορεί να αγοραστεί, να μεταβιβαστεί ή να εκχωρηθεί. Τα μέλη του DAO πρέπει να κερδίζουν τη φήμη τους μέσω της συμμετοχής τους. Η ψηφοφορία επί της αλυσίδας είναι χωρίς άδεια και τα μελλοντικά μέλη μπορούν ελεύθερα να υποβάλουν προτάσεις για να ενταχθούν σε DAO και να ζητήσουν να λάβουν δημοσιότητα και ψηφιακά στοιχεία ως ανταμοιβή σε αντάλλαγμα για τις συνεισφορές τους. - -_Συνήθως χρησιμοποιείται για την αποκεντρωμένη ανάπτυξη και διακυβέρνηση πρωτοκόλλων και dapp, αλλά είναι κατάλληλο και για ένα ποικίλο σύνολο οργανισμών, όπως φιλανθρωπικές οργανώσεις, συλλογικότητες εργαζομένων, επενδυτικούς συλλόγους κλπ._ - -#### Ένα δημοφιλές παράδειγμα {#reputation-example} - -[DXdao](https://DXdao.eth.link) – Το DXdao είναι ένα παγκόσμιο κυρίαρχο συλλογικό κατασκεύασμα και καθοδηγεί αποκεντρωμένα πρωτόκολλα και εφαρμογές από το 2019. Αξιολογεί τη διακυβέρνηση που βασίζεται στη δημοσιότητα και την ολογραφική συναίνεση για τον συντονισμό και τη διαχείριση των κεφαλαίων, πράγμα που σημαίνει ότι κανείς δεν μπορεί να αγοράσει την πορεία του για να επηρεάσει το μέλλον του. - -## Εγγραφή / έναρξη DAO {#join-start-a-dao} - -### Συμμετέχετε σε ένα DAO {#join-a-dao} - -- [Κοινότητα DAO στο Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [Λίστα DAOHaus για DAO](https://app.daohaus.club/explore) -- [Tally.xyz λίστα των DAO](https://www.tally.xyz) - -### Ξεκινήστε ένα DAO {#start-a-dao} - -- [Επίκληση ενός DAO με DAOHaus](https://app.daohaus.club/summon) -- [Ξεκινήστε Διακυβέρνηση DAO με το Tally](https://www.tally.xyz/add-a-dao) -- [Δημιουργία ενός DAO βασισμένου στο Aragon](https://aragon.org/product) -- [Ξεκινήστε μια αποικία](https://colony.io/) -- [Δημιουργήστε έναν DAO με την ολογραφική συναίνεση του DAOstack](https://alchemy.daostack.io/daos/create) - -## Περισσότερες πληροφορίες {#further-reading} - -### Άρθρα για DAO {#dao-articles} - -- [Τι είναι ένας DAO;](https://aragon.org/dao) – [Aragon](https://aragon.org/) -- [Το Εγχειρίδιο DAO](https://daohandbook.xyz) -- [Οίκος των DAO](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) -- [Τι είναι ένας DAO και τι αφορά;](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) -- [Πώς να ξεκινήσετε έναν DAO-Powered Digital Community](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) -- [Τι είναι ένας DAO;](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) -- [Τι είναι η ολογραφική συναίνεση;](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) -- [Οι DAO δεν είναι εταιρείες: όπου η αποκέντρωση σε αυτόνομους οργανισμούς έχει σημασία, από τον Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) -- [Οι DAO, DAC, DA και άλλοι: Ένας ατελής οδηγός ορολογίας](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Ιστολόγιο Ethereum](https://blog.ethereum.org) - -### Βίντεο {#videos} - -- [Τι είναι ένας DAO στα κρυπτονομίσματα;](https://youtu.be/KHm0uUPqmVE) -- [Μπορεί ένας DAO να χτίσει μια πόλη;](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/src/content/translations/el/decentralized-identity/index.md b/src/content/translations/el/decentralized-identity/index.md deleted file mode 100644 index 89e21cccc42..00000000000 --- a/src/content/translations/el/decentralized-identity/index.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: Αποκεντρωμένη ταυτότητα -description: Αποκεντρωμένη ταυτότητα και η σημασία της -lang: el -template: use-cases -emoji: ":id:" -sidebarDepth: 2 -image: ../../../../assets/eth-gif-cat.png -summaryPoint1: Τα παραδοσιακά συστήματα ταυτότητας διαχειρίζονται κεντρικά τα στοιχεία και τον έλεγχο των αναγνωριστικών σας. -summaryPoint2: Η αποκεντρωμένη ταυτότητα καταργεί την ανάγκη ύπαρξης κεντρικών τρίτων μερών. -summaryPoint3: Χάρη στα κρυπτονομίσματα, οι χρήστες διαθέτουν εργαλεία έκδοσης, διατήρησης και ελέγχου των αναγνωριστικών τους και καθώς και της επικύρωσης. ---- - -Η ταυτότητα στηρίζει σχεδόν κάθε πτυχή της ζωής σας σήμερα. Η χρήση διαδικτυακών υπηρεσιών, το άνοιγμα τραπεζικού λογαριασμού, η ψηφοφορία στις εκλογές, η αγορά ακινήτων, η εξασφάλιση εργασίας—όλα αυτά απαιτούν απόδειξη της ταυτότητάς σας. Η χρήση διαδικτυακών υπηρεσιών, το άνοιγμα τραπεζικού λογαριασμού, η ψηφοφορία στις εκλογές, η αγορά ακινήτων, η εξασφάλιση εργασίας—όλα αυτά απαιτούν απόδειξη της ταυτότητάς σας. - -Ωστόσο, τα παραδοσιακά συστήματα διαχείρισης ταυτοποίησης βασίζονται εδώ και πολύ καιρό σε κεντρικούς μεσάζοντες που εκδίδουν, κατέχουν και ελέγχουν τα αναγνωριστικά και [ τις βεβαιώσεις σας](#what-are-attestations). Αυτό σημαίνει ότι δεν μπορείτε να ελέγξετε τις πληροφορίες που σχετίζονται με την ταυτότητά σας ή να αποφασίσετε ποιος έχει πρόσβαση σε πληροφορίες προσωπικής ταυτοποίησης (PII) και πόση πρόσβαση έχουν αυτά τα μέλη. - -Για να λύσουμε αυτά τα προβλήματα, έχουμε αποκεντρωμένα συστήματα ταυτότητας που είναι χτισμένα σε δημόσια blockchains όπως το Ethereum. Η αποκεντρωμένη ταυτότητα επιτρέπει στα ίδια τα άτομα να διαχειρίζονται τις πληροφορίες που σχετίζονται με την ταυτότητά τους. Με αποκεντρωμένες λύσεις ταυτότητας, _μπορείτε_ να δημιουργήσετε αναγνωριστικά και να διεκδικήσετε και να κρατήσετε τις βεβαιώσεις σας χωρίς να βασίζεστε σε κεντρικές αρχές, όπως παρόχους υπηρεσιών ή κυβερνήσεις. - -## Τι είναι η ταυτότητα; {#what-is-identity} - -Ταυτότητα σημαίνει η αίσθηση του εαυτού ενός ατόμου, που ορίζεται από μοναδικά χαρακτηριστικά. Η ταυτότητα αναφέρεται στο να είσαι ένα _άτομο _, δηλ. μια ξεχωριστή ανθρώπινη οντότητα. Η ταυτότητα θα μπορούσε επίσης να αναφέρεται σε άλλες μην ανθρώπινες οντότητες, όπως έναν οργανισμό ή μια αρχή. - -## Τι είναι τα αναγνωριστικά; {#what-are-identifiers} - -Το αναγνωριστικό είναι ένα κομμάτι πληροφορίας που ενεργεί ως δείκτης μιας συγκεκριμένης ταυτότητας ή ιδιότητας. Τα κοινά αναγνωριστικά περιλαμβάνουν: - -- Όνομα -- Αριθμός κοινωνικής ασφάλισης/αριθμός φορολογικού μητρώου -- Αριθμός κινητού -- Ημερομηνία και τόπος γέννησης -- Ψηφιακά διαπιστευτήρια, π.χ. διευθύνσεις email, ονόματα χρηστών, άβαταρ - -Αυτά τα παραδοσιακά παραδείγματα αναγνωριστικών εκδίδονται, διατηρούνται και ελέγχονται από κεντρικές αρχές. Χρειάζεστε άδεια από την κυβέρνησή σας για να αλλάξετε το όνομά σας ή και από μια πλατφόρμα κοινωνικών μέσων για να αλλάξετε το όνομα χρήστη σας. - -## Τι είναι οι βεβαιώσεις; {#what-are-attestations} - -Μια βεβαίωση είναι μια ισχυρισμός που διατυπώνεται από μια οντότητα για μια άλλη οντότητα. Εάν ζείτε στις Ηνωμένες Πολιτείες, η άδεια οδήγησης που σας έχει εκδοθεί από το Υπουργείο Μηχανοκίνητων Οχημάτων (μία οντότητα) βεβαιώνει ότι εσείς (μια άλλη οντότητα) επιτρέπεται νόμιμα να οδηγείτε αυτοκίνητο. - -Οι βεβαιώσεις διαφέρουν από τα αναγνωριστικά. Μια βεβαίωση _περιέχει_ αναγνωριστικά για την αναφορά μιας συγκεκριμένης ταυτότητας και προβάλλει έναν ισχυρισμό σχετικά με ένα χαρακτηριστικό που σχετίζεται με αυτήν την ταυτότητα. Έτσι, η άδεια οδήγησής σας έχει αναγνωριστικά (όνομα, ημερομηνία γέννησης, διεύθυνση) αλλά είναι και η βεβαίωση σχετικά με το νόμιμο δικαίωμα οδήγησης σας. - -### Τι είναι τα αποκεντρωμένα αναγνωριστικά; {#what-are-decentralized-identifiers} - -Τα παραδοσιακά αναγνωριστικά όπως το νόμιμο όνομα ή η διεύθυνση ηλεκτρονικού ταχυδρομείου σας, βασίζονται σε τρίτα μέρη—κυβερνήσεις και παρόχους ηλεκτρονικών διευθύνσεων. Τα αποκεντρωμένα αναγνωριστικά (DID) είναι διαφορετικά—δεν εκδίδονται, διαχειρίζονται ή ελέγχονται από καμία κεντρική οντότητα. - -Τα αποκεντρωμένα αναγνωριστικά εκδίδονται, διατηρούνται και ελέγχονται από άτομα. Ένας [λογαριασμός Ethereum](/developers/docs/accounts/) είναι ένα παράδειγμα αποκεντρωμένου αναγνωριστικού. Μπορείτε να δημιουργήσετε όσους λογαριασμούς θέλετε χωρίς άδεια από κανέναν και χωρίς να χρειάζεται να τους αποθηκεύσετε σε κεντρικό αρχείο. - -Τα αποκεντρωμένα αναγνωριστικά αποθηκεύονται σε διανέμομενα λογιστικά βιβλία (blockchains) ή δίκτυα peer-to-peer. Αυτό καθιστά τα DID [παγκοσμίως μοναδικά, επιλύσιμα με υψηλή διαθεσιμότητα και κρυπτογραφικά επαληθεύσιμα](https://w3c-ccg.github.io/did-primer/). Ένα αποκεντρωμένο αναγνωριστικό μπορεί να συσχετιστεί με διαφορετικές οντότητες, συμπεριλαμβανομένων ατόμων, οργανισμών ή κυβερνητικών ιδρυμάτων. - -## Τι καθιστά τα αποκεντρωμένα αναγνωριστικά υλοποιήσιμα; {#what-makes-decentralized-identifiers-possible} - -### 1. Υποδομή Δημόσιου Κλειδιού (PKI) {#public-key-infrastructure} - -Το Public-key infrastructure (PKI) είναι ένα μέτρο ασφάλειας πληροφοριών που δημιουργεί ένα [δημόσιο κλειδί](/glossary/#public-key) και [ ένα ιδιωτικό κλειδί](/glossary/#private-key) για μια οντότητα. Η κρυπτογραφία δημόσιου κλειδιού χρησιμοποιείται σε δίκτυα blockchain για τον έλεγχο ταυτότητας των χρηστών και την απόδειξη της ιδιοκτησίας των ψηφιακών τους στοιχείων. - -Ορισμένα αποκεντρωμένα αναγνωριστικά, όπως ένας λογαριασμός Ethereum, διαθέτουν δημόσια και ιδιωτικά κλειδιά. Το δημόσιο κλειδί προσδιορίζει τον διαχειριστή του λογαριασμού, ενώ τα ιδιωτικά κλειδιά μπορούν να υπογράψουν και να αποκρυπτογραφήσουν μηνύματα για αυτόν τον λογαριασμό. Το PKI παρέχει αποδείξεις που απαιτούνται για τον έλεγχο ταυτότητας οντοτήτων και την αποτροπή πλαστοπροσωπίας και χρήσης πλαστών ταυτοτήτων, χρησιμοποιώντας τις [κρυπτογραφημένες υπογραφές](https://andersbrownworth.com/blockchain/public-private-keys/) για την επαλήθευση όλων των ενεργειών. - -### 2. Αποκεντρωμένα συστήματα δεδομένων {#decentralized-datastores} - -Μία blockchain χρησιμεύει ως ένα μητρώο δεδομένων που μπορεί να επαληθευτεί: δηλαδή ένα ανοιχτό, αξιόπιστο και αποκεντρωμένο αποθετήριο πληροφοριών. Η ύπαρξη δημόσιων blockchain εξαλείφει την ανάγκη αποθήκευσης αναγνωριστικών σε κεντρικά μητρώα. - -Εάν κάποιος χρειάζεται να επιβεβαιώσει την εγκυρότητα ενός αποκεντρωμένου αναγνωριστικού, μπορεί να αναζητήσει το σχετικό δημόσιο κλειδί στο blockchain. Αυτό διαφέρει από τα παραδοσιακά αναγνωριστικά που απαιτούν έλεγχο ταυτότητας από τρίτους. - -## Πώς τα αποκεντρωμένα αναγνωριστικά και οι βεβαιώσεις επιτρέπουν την αποκεντρωμένη ταυτότητα; {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} - -Η αποκεντρωμένη ταυτότητα είναι η ιδέα ότι οι πληροφορίες που σχετίζονται με την ταυτότητα πρέπει να είναι αυτοελεγχόμενες, απόρρητες και φορητές, με τα αποκεντρωμένα αναγνωριστικά και τις βεβαιώσεις να είναι τα κύρια δομικά τους στοιχεία. - -Στο πλαίσιο της αποκεντρωμένης ταυτότητας, οι βεβαιώσεις (επίσης γνωστές ως [Επαληθεύσιμα διαπιστευτήρια](https://www.w3.org/TR/vc-data-model/)) είναι στεγανές, κρυπτογραφικά επαληθεύσιμα από όλους. Κάθε βεβαίωση ή επαληθεύσιμο διαπιστευτήριο που εκδίδει μια οντότητα (π.χ. ένας οργανισμός) σχετίζεται με το DID της. - -Επειδή τα DID αποθηκεύονται στο blockchain, οποιοσδήποτε μπορεί να επαληθεύσει την εγκυρότητα μιας βεβαίωσης ελέγχοντας το DID του εκδότη στο Ethereum. Ουσιαστικά, το blockchain του Ethereum λειτουργεί σαν ένας παγκόσμιος κατάλογος που επιτρέπει την επαλήθευση των DID που σχετίζονται με συγκεκριμένες οντότητες. - -Τα αποκεντρωμένα αναγνωριστικά είναι ο λόγος που οι βεβαιώσεις είναι αυτοελεγχόμενες και επαληθεύσιμες. Ακόμα και αν ο εκδότης δεν υπάρχει πλέον, ο κάτοχος έχει πάντα την απόδειξη της προέλευσης και της εγκυρότητας της βεβαίωσης. - -Τα αποκεντρωμένα αναγνωριστικά είναι επίσης ζωτικής σημασίας για την προστασία του απορρήτου των προσωπικών πληροφοριών, μέσω της αποκεντρωμένης ταυτότητας. Για παράδειγμα, εάν ένα άτομο υποβάλει αποδεικτικό βεβαίωσης (άδεια οδήγησης), το μέρος επαλήθευσης δε χρειάζεται να ελέγξει την εγκυρότητα των πληροφοριών στο αποδεικτικό. Αντίθετα, ο επαληθευτής χρειάζεται μόνο κρυπτογραφημένες εγγυήσεις για τη γνησιότητα της βεβαίωσης και την ταυτότητα του οργανισμού που εκδίδει για να καθορίσει εάν η απόδειξη είναι έγκυρη. - -## Τύποι βεβαιώσεων αποκεντρωμένης ταυτότητας {#types-of-attestations-in-decentralized-identity} - -Ο τρόπος με τον οποίο αποθηκεύονται και ανακτώνται οι πληροφορίες βεβαίωσης σε ένα οικοσύστημα ταυτότητας που βασίζεται στο Ethereum, διαφέρει από την παραδοσιακή διαχείριση ταυτότητας. Ακολουθεί μια επισκόπηση διαφορετικών προσεγγίσεων για την έκδοση, την αποθήκευση και την επαλήθευση βεβαιώσεων σε αποκεντρωμένα συστήματα ταυτότητας: - -### Βεβαιώσεις εκτός αλυσίδας {#off-chain-attestations} - -Μια ανησυχία σχετικά με την αποθήκευση βεβαιώσεων στην αλυσίδα είναι ότι μπορεί να περιέχουν πληροφορίες που οι χρήστες θέλουν να διατηρήσουν ιδιωτικά. Ο δημόσιος χαρακτήρας του blockchain Ethereum καθιστά μη ελκυστική την αποθήκευση τέτοιων βεβαιώσεων. - -Η λύση είναι η έκδοση βεβαιώσεων, που τηρούνται από χρήστες εκτός αλυσίδας σε ψηφιακά πορτοφόλια, αλλά υπογεγραμμένες με το DID του εκδότη που είναι αποθηκευμένο στην αλυσίδα. Αυτές οι βεβαιώσεις κωδικοποιούνται ως [JSON Web Tokens](https://en.wikipedia.org/wiki/JSON_Web_Token) και περιέχουν την ψηφιακή υπογραφή του εκδότη, η οποία επιτρέπει την εύκολη επαλήθευση πληροφοριών εκτός αλυσίδας. - -Ακολουθεί ένα υποθετικό σενάριο που εξηγεί τις βεβαιώσεις εκτός αλυσίδας: - -1. Ένα πανεπιστήμιο (ο εκδότης) δημιουργεί μια βεβαίωση (ψηφιακό ακαδημαϊκό πιστοποιητικό), υπογράφει με τα κλειδιά του και την εκδίδει για τον Μπομπ (τον κάτοχο της ταυτότητας). - -2. Ο Μπομπ κάνει αίτηση για δουλειά και θέλει να αποδείξει τα ακαδημαϊκά του προσόντα σε έναν εργοδότη, γι' αυτό μοιράζεται τη βεβαίωση από το κινητό του πορτοφόλι. Η εταιρεία (ο επαληθευτής) μπορεί στη συνέχεια να επιβεβαιώσει την εγκυρότητα της βεβαίωσης ελέγχοντας το DID του εκδότη (δηλαδή το δημόσιο κλειδί του στο Ethereum). - -### Βεβαιώσεις εκτός αλυσίδας με μόνιμη πρόσβαση {#offchain-attestations-with-persistent-access} - -Σύμφωνα με αυτήν τη ρύθμιση, οι βεβαιώσεις μετατρέπονται σε αρχεία JSON και αποθηκεύονται εκτός αλυσίδας (ιδανικά σε μια πλατφόρμα [αποκεντρωμένης αποθήκευσης cloud](/developers/docs/storage/), όπως το IPFS ή το Swarm). Ωστόσο, ένα [αναγνωριστικό](/glossary/#hash) του αρχείου JSON αποθηκεύεται στην αλυσίδα και συνδέεται με ένα DID μέσω ενός μητρώου σε αυτή. Το σχετικό DID μπορεί να είναι είτε του εκδότη της βεβαίωσης είτε του παραλήπτη. - -Αυτή η προσέγγιση επιτρέπει στις βεβαιώσεις να αποκτήσουν διάρκεια με βάση το blockchain, διατηρώντας παράλληλα τις πληροφορίες των αξιώσεων κρυπτογραφημένες και επαληθεύσιμες. Επιτρέπει επίσης την επιλεκτική αποκάλυψη, καθώς ο κάτοχος του ιδιωτικού κλειδιού μπορεί να αποκρυπτογραφήσει τις πληροφορίες. - -### Βεβαιώσεις επί της αλυσίδας {#onchain-attestations} - -Οι βεβαιώσεις επί της αλυσίδας πραγματοποιούνται στα [έξυπνα συμβόλαια](/developers/docs/smart-contracts/) στο blockchain του Ethereum. Το έξυπνο συμβόλαιο (που λειτουργεί ως μητρώο) θα αντιστοιχίσει μια βεβαίωση σε ένα αντίστοιχο αποκεντρωμένο αναγνωριστικό στην αλυσίδα (ένα δημόσιο κλειδί). - -Ακολουθεί ένα παράδειγμα για να δείτε πώς οι βεβαιώσεις στην αλυσίδα λειτουργούν στην πράξη: - -1. Μια εταιρεία (XYZ Corp) σχεδιάζει να πουλήσει μετοχές ιδιοκτησίας χρησιμοποιώντας ένα έξυπνο συμβόλαιο, αλλά θέλει μόνο αγοραστές που έχουν ολοκληρώσει έναν έλεγχο. - -2. Η XYZ Corp μπορεί να ζητήσει από την εταιρεία να πραγματοποιεί ελέγχους ζητημάτων για την έκδοση πιστοποιήσεων επί της αλυσίδας στο Ethereum. Αυτή η βεβαίωση πιστοποιεί ότι ένα άτομο έχει περάσει τον έλεγχο χωρίς να αποκαλύψει τα προσωπικά στοιχεία του. - -3. Το έξυπνο συμβόλαιο της πώλησης μετοχών μπορεί να ελέγξει το συμβόλαιο μητρώου για τις ταυτότητες των αγοραστών που έχουν ελεγχθεί, καθιστώντας δυνατό να προσδιορίσει ποιος επιτρέπεται να αγοράσει μετοχές ή όχι. - -### Προσωπικά ψηφιακά στοιχεία και ταυτότητα {#soulbound} - -Τα [προσωπικά ψηφιακά στοιχεία](https://vitalik.ca/general/2022/01/26/soulbound.html) (μη μεταβιβάσιμα NFT) θα μπορούσαν να χρησιμοποιηθούν για τη συλλογή μοναδικών πληροφοριών για ένα συγκεκριμένο πορτοφόλι. Αυτό δημιουργεί αποτελεσματικά μια μοναδική ταυτότητα επί της αλυσίδας που συνδέεται με μια συγκεκριμένη διεύθυνση Ethereum που θα μπορούσε να περιλαμβάνει ψηφιακά στοιχεία που αντιπροσωπεύουν επιτεύγματα (π.χ. ολοκλήρωση κάποιου συγκεκριμένου διαδικτυακού μαθήματος ή μιας βαθμολογίας σε ένα παιχνίδι) ή συμμετοχή στην κοινότητα. - -## Πλεονεκτήματα της αποκεντρωμένης ταυτότητας {#benefits-of-decentralized-identity} - -1. Η αποκεντρωμένη ταυτότητα αυξάνει τον ατομικό έλεγχο των πληροφοριών αναγνώρισης. Τα αποκεντρωμένα αναγνωριστικά και οι βεβαιώσεις μπορούν να επαληθευτούν χωρίς να βασίζεστε σε κεντρικές αρχές και υπηρεσίες τρίτων. - -2. Οι αποκεντρωμένες λύσεις ταυτότητας διευκολύνουν μια αξιόπιστη, απρόσκοπτη και προστατευτική μέθοδο για την επαλήθευση και τη διαχείριση της ταυτότητας χρήστη. - -3. Η αποκεντρωμένη ταυτότητα αξιοποιεί την τεχνολογία blockchain, η οποία δημιουργεί εμπιστοσύνη μεταξύ των διαφορετικών μερών και παρέχει κρυπτογραφημένες εγγυήσεις για την απόδειξη της εγκυρότητας των βεβαιώσεων. - -4. Η αποκεντρωμένη ταυτότητα καθιστά τα δεδομένα ταυτότητας φορητά. Οι χρήστες αποθηκεύουν τις βεβαιώσεις και τα αναγνωριστικά στο πορτοφόλι του τηλεφώνου τους και μπορούν να τα μοιραστούν με οποιονδήποτε επιλέξουν. Τα αποκεντρωμένα αναγνωριστικά και οι βεβαιώσεις δεν είναι κλειδωμένα στη βάση δεδομένων του οργανισμού έκδοσης. - -5. Η αποκεντρωμένη ταυτότητα θα πρέπει να λειτουργεί καλά με τις αναδυόμενες τεχνολογίες μηδενικής γνώσης που θα επιτρέψουν στα άτομα να αποδείξουν ότι κατέχουν ή έχουν κάνει κάτι χωρίς να αποκαλύπτουν τι είναι αυτό. Αυτό θα μπορούσε να γίνει ένας ισχυρός τρόπος για να συνδυαστεί η εμπιστοσύνη και το απόρρητο για εφαρμογές όπως η ψηφοφορία. - -6. Η αποκεντρωμένη ταυτότητα επιτρέπει στους μηχανισμούς anti-Sybil να αναγνωρίζουν πότε ένας μεμονωμένος άνθρωπος προσποιείται ότι είναι πολλοί άνθρωποι για να παίξει ή να στείλει κακόβουλο περιεχόμενο σε κάποιο σύστημα. - -## Χρήσεις αποκεντρωμένης ταυτότητας {#decentralized-identity-use-cases} - -Η αποκεντρωμένη ταυτότητα έχει πολλές περιπτώσεις χρήσης όπως: - -### 1. Γενική σύνδεση {#universal-dapp-logins} - -Η αποκεντρωμένη ταυτότητα μπορεί να βοηθήσει στην αντικατάσταση των συνδέσεων που βασίζονται σε κωδικό πρόσβασης με [αποκεντρωμένο έλεγχο ταυτότητας](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). Οι πάροχοι υπηρεσιών μπορούν να εκδίδουν βεβαιώσεις στους χρήστες, οι οποίες μπορούν να αποθηκευτούν σε ένα πορτοφόλι Ethereum. Ένα παράδειγμα βεβαίωσης θα ήταν ένα [NFT](/nft/) που παρέχει στον κάτοχο πρόσβαση σε μια διαδικτυακή κοινότητα. - -Μια λειτουργία [Σύνδεση με Ethereum](https://login.xyz/) θα επέτρεπε στους διακομιστές να επιβεβαιώσουν τον λογαριασμό Ethereum του χρήστη και να ανακτήσουν την απαιτούμενη βεβαίωση από τη διεύθυνση του λογαριασμού τους. Αυτό σημαίνει ότι οι χρήστες μπορούν να έχουν πρόσβαση σε πλατφόρμες και ιστότοπους χωρίς να χρειάζεται να απομνημονεύουν μεγάλους κωδικούς πρόσβασης βελτιώνοντας τη διαδικτυακή εμπειρία. - -### 2. Πιστοποίηση KYC {#kyc-authentication} - -Η χρήση πολλών διαδικτυακών υπηρεσιών απαιτεί από τα άτομα να παρέχουν πιστοποιήσεις και διαπιστευτήρια, όπως άδεια οδήγησης ή διαβατήριο. Ωστόσο, αυτή η προσέγγιση είναι προβληματική επειδή οι ιδιωτικές πληροφορίες χρήστη, μπορεί να παραβιαστούν και οι πάροχοι υπηρεσιών δεν μπορούν να επαληθεύσουν τη γνησιότητα της πιστοποίησης. - -Η αποκεντρωμένη ταυτότητα επιτρέπει στις εταιρείες να παρακάμπτουν τις συμβατικές διαδικασίες [Know-Your-Customer (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) και να ελέγχουν την ταυτότητα των χρηστών μέσω επαληθεύσιμων διαπιστευτηρίων. Αυτό μειώνει το κόστος διαχείρισης ταυτότητας και αποτρέπει τη χρήση πλαστών εγγράφων. - -### 3. Ψηφοφορίες και διαδικτυακές κοινότητες {#voting-and-online-communities} - -Η διαδικτυακή ψηφοφορία και τα μέσα κοινωνικής δικτύωσης είναι δύο νέες εφαρμογές για αποκεντρωμένη ταυτότητα. Τα διαδικτυακά συστήματα ψηφοφορίας είναι επιρρεπή σε χειραγώγηση, ειδικά εάν κακόβουλοι παράγοντες δημιουργούν ψευδείς ταυτότητες για να ψηφίσουν. Ζητώντας από άτομα να παρουσιάσουν βεβαιώσεις on-chain μπορεί να βελτιώσει την ακεραιότητα των διαδικτυακών διαδικασιών ψηφοφορίας. - -Η αποκεντρωμένη ταυτότητα μπορεί να βοηθήσει στη δημιουργία διαδικτυακών κοινοτήτων χωρίς ψεύτικους λογαριασμούς. Για παράδειγμα, κάθε χρήστης μπορεί να χρειαστεί να πιστοποιήσει την ταυτότητά του χρησιμοποιώντας ένα σύστημα ταυτότητας on-chain, όπως η υπηρεσία ονομάτων Ethereum, μειώνοντας την πιθανότητα από ρομπότ. - -### 4. Προστασία Anti-Sybil {#sybil-protection} - -Οι επιθέσεις Sybil αναφέρονται σε μεμονωμένους ανθρώπους που ξεγελούν ένα σύστημα ώστε να πιστεύουν ότι είναι πολλά άτομα για να αυξήσουν την επιρροή τους. Οι [εφαρμογές παροχής επιχορηγήσεων](https://gitcoin.co/grants/) που χρησιμοποιούν [ την τετραγωνική ψηφοφορία](https://www.radicalxchange.org/concepts/plural-voting/) είναι ευάλωτα σε αυτές τις επιθέσεις Sybil, επειδή η αξία μιας επιχορήγησης αυξάνεται όταν περισσότερα άτομα την ψηφίζουν, παροτρύνοντας τους χρήστες να μοιράσουν τις συνεισφορές τους σε πολλές ταυτότητες. Οι αποκεντρωμένες ταυτότητες βοηθούν να αποφευχθεί κάτι τέτοιο, αυξάνοντας το βάρος σε κάθε συμμετέχοντα να αποδείξει ότι είναι πραγματικά άνθρωπος, αν και συχνά χωρίς να χρειάζεται να αποκαλύψει συγκεκριμένες προσωπικές πληροφορίες. - -## Χρήση αποκεντρωμένης ταυτότητας {#use-decentralized-identity} - -Υπάρχουν πολλά φιλόδοξα έργα που χρησιμοποιούν το Ethereum ως βάση για αποκεντρωμένες λύσεις ταυτότητας: - -- **[Υπηρεσία ονόματος Ethereum (ENS)](https://ens.domains/)** - _ Ένα αποκεντρωμένο σύστημα ονοματοδοσίας για αναγνωριστικά εντός αλυσίδας, αναγνώσιμα από μηχανή, όπως διευθύνσεις πορτοφολιού Ethereum, κατακερματισμοί περιεχομένου και μεταδεδομένα._ -- **[SpruceID](https://www.spruceid.com/)** - _Ένα έργο για αποκεντρωμένη ταυτότητα που επιτρέπει στους χρήστες να ελέγχουν την ψηφιακή ταυτότητα με λογαριασμούς Ethereum και προφίλ ENS αντί να βασίζονται σε υπηρεσίες τρίτων._ -- **[Υπηρεσία Επικύρωσης Ethereum (EAS)](https://attest.sh/)** - _Ένα αποκεντρωμένο ledger/πρωτόκολλο για την κατασκευή βεβαιώσεων επί ή εκτός της αλυσίδας για οτιδήποτε._ -- **[Απόδειξη ότι είσαι Άνθρωπος](https://www.proofofhumanity.id)** - _Η απόδειξη ότι είσαι Άνθρωπος (ή PoH) είναι ένα κοινωνικό σύστημα επαλήθευσης ταυτότητας που βασίζεται στο Ethereum._ -- **[BrightID](https://www.brightid.org/)** - _Αποκεντρωμένο, δίκτυο κοινωνικής ταυτότητας ανοιχτού κώδικα που επιδιώκει να μεταρρυθμίσει την επαλήθευση ταυτότητας μέσω της δημιουργίας και ανάλυσης ενός κοινωνικού γραφήματος._ -- **[Διαβατήριο απόδειξης προσωπικότητας](https://proofofpersonhood.com/)** - _Ένας αποκεντρωμένος φορέας συγκέντρωσης ψηφιακών ταυτοτήτων._ - -## Περισσότερες πληροφορίες {#further-reading} - -### Άρθρα {#articles} - -- [Περιπτώσεις χρήσης Blockchain: Blockchain στην ψηφιακή ταυτότητα](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ -- [Τι είναι το Ethereum ERC725; Ανεξάρτητη διαχείριση ταυτότητας στο Blockchain](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Sam Town_ -- [Πώς το Blockchain θα μπορούσε να λύσει το πρόβλημα της ψηφιακής ταυτότητας](https://time.com/6142810/proof-of-humanity/) — _Andrew R. Τσόου_ -- [Τι είναι η αποκεντρωμένη ταυτότητα και γιατί πρέπει να σας ενδιαφέρει;](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ - -### Βίντεο {#videos} - -- [Αποκεντρωμένη ταυτότητα (Bonus Livestream Session)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Ένα υπέροχο επεξηγητικό βίντεο για την αποκεντρωμένη ταυτότητα από τον Ανδρέα Αντωνόπουλο_ -- [Συνδεθείτε με το Ethereum και την αποκεντρωμένη ταυτότητα με Ceramic, IDX, React και 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _Οδηγός YouTube σχετικά με τη δημιουργία ενός συστήματος διαχείρισης ταυτότητας για τη δημιουργία, την ανάγνωση και την ενημέρωση του προφίλ ενός χρήστη χρησιμοποιώντας το πορτοφόλι του Ethereum από τον Nader Dabit_ -- [BrightID - Αποκεντρωμένη ταυτότητα στο Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _Επεισόδιο podcast χωρίς τράπεζα που συζητά το BrightID, μια αποκεντρωμένη λύση ταυτότητας για το Ethereum_ -- [Το Διαδίκτυο εκτός αλυσίδας: Αποκεντρωμένη ταυτότητα & Επαληθεύσιμα διαπιστευτήρια](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — Παρουσίαση EthDenver 2022 από την Evin McMullen - -### Κοινότητες {#communities} - -- [ERC-725 Alliance στο GitHub](https://github.com/erc725alliance) — _Υποστηρικτές του προτύπου ERC725 για τη διαχείριση ταυτότητας στο blockchain Ethereum_ -- [Διακομιστής SpruceID Discord](https://discord.com/invite/Sf9tSFzrnt) — _Κοινότητα για λάτρεις και προγραμματιστές που εργάζονται με τον τρόπο Σύνδεσης στο Ethereum_ -- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Μια κοινότητα προγραμματιστών που συμβάλλουν στη δημιουργία ενός πλαισίου για επαληθεύσιμα δεδομένα για εφαρμογές_ diff --git a/src/content/translations/el/defi/index.md b/src/content/translations/el/defi/index.md deleted file mode 100644 index a8bad2c4a6e..00000000000 --- a/src/content/translations/el/defi/index.md +++ /dev/null @@ -1,352 +0,0 @@ ---- -title: Αποκεντρωμένη τραπεζική (DeFi) -description: Μια επισκόπηση της DeFi στο Ethereum -lang: el -template: use-cases -emoji: ":money_with_wings:" -image: ../../../../assets/use-cases/defi.png -alt: Το λογότυπο Eth κατασκευασμένο από τούβλα lego. -sidebarDepth: 2 -summaryPoint1: Μια παγκόσμια, ανοικτή εναλλακτική λύση στο τρέχον χρηματοπιστωτικό σύστημα. -summaryPoint2: Προϊόντα που σας επιτρέπουν να δανειστείτε, να αποθηκεύσετε, να επενδύσετε, να ανταλλάξετε και πολλά άλλα. -summaryPoint3: Βασίζεται σε τεχνολογία ανοιχτού κώδικα με την οποία ο καθένας μπορεί να προγραμματίσει. ---- - -Η DeFi είναι ένα ανοικτό, παγκόσμιο οικονομικό σύστημα που δημιουργήθηκε στην εποχή του διαδικτύου, μια εναλλακτική λύση σε ένα σύστημα που είναι αδιαφανές, αυστηρά ελεγχόμενο και συντηρείται εδώ και δεκαετίες από ξεπερασμένες υποδομές και διαδικασίες. Σας δίνει τη δυνατότητα να ελέγχετε και να παρακολουθείτε τα χρήματά σας. Σας παρέχει πρόσβαση στις παγκόσμιες αγορές καθώς και σε εναλλακτικές λύσεις στο τοπικό νόμισμά σας ή σε τραπεζικές επιλογές. Τα DeFi προϊόντα παρέχουν οικονομικές υπηρεσίες σε οποιοδήποτε διαθέτει σύνδεση στο διαδίκτυο. Οι υπηρεσίες αυτές ανήκουν και συντηρούνται κυρίως από τους χρήστες του. Μέχρι στιγμής κρυπτονομίσματα αξίας δεκάδων δισεκατομμυρίων δολαρίων διοχετεύονται διαμέσου των DeFi εφαρμογών και η εισροή τους αυξάνεται καθημερινά. - -## Τι είναι η DeFi; {#what-is-defi} - -H DeFi είναι ένας γενικός όρος για οικονομικά προϊόντα και υπηρεσίες που είναι προσβάσιμες σε οποιονδήποτε μπορεί να χρησιμοποιήσει το Ethereum, οποιονδήποτε με σύνδεση στο διαδίκτυο. Με τη DeFi, οι αγορές είναι πάντα ανοικτές και δεν υπάρχουν κεντρικές αρχές που να μπορούν να εμποδίσουν τις πληρωμές σας ή να σας απαγορεύσουν την πρόσβαση σε οτιδήποτε. Οι υπηρεσίες, που προηγουμένως ήταν αργές και με τη πιθανότητα ανθρώπινου σφάλματος, πλέον είναι αυτόματες, ασφαλέστερες και λειτουργούν με κώδικα που ο καθένας μπορεί να ελέγξει και να αξιολογήσει. - -Υπάρχει μια αναπτυσσόμενη κρυπτοοικονομία, όπου μπορείτε να δανείσετε, να δανειστείτε, μακροπρόθεσμα ή βραχυπρόθεσμα, να κερδίστε τόκους και πολλά άλλα. Όσοι Αργεντίνοι είναι γνώστες των κρυπτονομισμάτων έχουν χρησιμοποιήσει τη DeFi για να αποφύγουν τον υπερβολικό πληθωρισμό. Κάποιες εταιρίες έχουν αρχίσει να μεταφέρουν τον μισθό των υπαλλήλων τους άμεσα. Μερικοί έχουν λάβει και έχουν εξοφλήσει δάνεια αξίας εκατομμυρίων δολαρίων χωρίς να είναι απαραίτητη οποιαδήποτε ταυτοποίηση. - - - -## Αποκεντρωμένη ή Παραδοσιακή Τραπεζική {#defi-vs-tradfi} - -Ένας από τους καλύτερους τρόπους για να δούμε την προοπτική της DeFi είναι να κατανοήσουμε τα προβλήματα που υπάρχουν σήμερα. - -- Ορισμένοι δεν έχουν πρόσβαση ώστε να αποκτήσουν τραπεζικό λογαριασμό ή να κάνουν χρήση χρηματοοικονομικών υπηρεσιών. -- Η έλλειψη πρόσβασης σε χρηματοοικονομικές υπηρεσίες μπορεί να εμποδίσει τους ανθρώπους να βρουν εργασία. -- Οι χρηματοοικονομικές υπηρεσίες μπορούν να παρεμποδίσουν τις πληρωμές σας. -- Τα προσωπικά σας δεδομένα μπορούν να χρησιμοποιηθούν από τις χρηματοοικονομικές υπηρεσίες. -- Οι κυβερνήσεις και τα κεντρικά ιδρύματα έχουν την δυνατότητα να κλείσουν τις αγορές κατα βούληση. -- Οι ώρες συναλλαγών συχνά περιορίζονται στις εργάσιμες ώρες της συγκεκριμένης χρονικής ζώνης. -- Οι μεταφορές χρημάτων μπορεί να χρειαστούν αρκετές ημέρες λόγω εσωτερικών διαδικασιών από υπαλλήλους. -- Οι χρηματοοικονομικές υπηρεσίες κρατούν προμήθειες, επειδή οι ενδιάμεσες υπηρεσίες ζητούν το οικονομικό μερίδιό τους. - -### Σύγκριση {#defi-comparison} - -| DeFi | Παραδοσιακή Τραπεζική | -| ---------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Διατηρείτε οι ίδιοι τα χρήματά σας. | Τα χρήματά σας κατέχονται από εταιρείες. | -| Ελέγχετε πού στέλνονται τα χρήματά σας και πώς δαπανώνται. | Πρέπει να εμπιστεύεστε τις εταιρείες να μην κακοδιαχειρίζονται τα χρήματά σας, όπως ο δανεισμός σε ριψοκίνδυνους δανειολήπτες. | -| Οι μεταφορές κεφαλαίων πραγματοποιούνται σε λίγα λεπτά. | Οι πληρωμές για να εκτελεστούν μπορεί να χρειαστούν ημέρες λόγω μη αυτόματων διαδικασιών. | -| Η δραστηριότητα συναλλαγής είναι ανώνυμη. | Η οικονομική δραστηριότητα συνδέεται αυτόματα με την ταυτότητά σας. | -| Η DeFi είναι ανοιχτή σε οποιονδήποτε. | Πρέπει να κάνετε αίτηση ώστε να χρησιμοποιήσετε τις χρηματοπιστωτικές υπηρεσίες. | -| Οι αγορές είναι πάντα ανοικτές. | Οι αγορές κλείνουν επειδή οι υπάλληλοι έχουν ωράριο εργασίας. | -| Είναι φτιαγμένη ώστε να υπάρχει διαφάνεια και ο καθένας μπορεί να δει τα δεδομένα ενός προϊόντος και να επιθεωρήσει πώς λειτουργεί το σύστημα. | Τα χρηματοπιστωτικά ιδρύματα είναι κλειστά βιβλία: δεν μπορείτε να ζητήσετε να δείτε το ιστορικό των δανείων τους, το αρχείο των περιουσιακών τους στοιχείων που διαχειρίζονται και ούτω καθεξής. | - - - Εξερευνήστε εφαρμογές DeFi - - -## Η αρχή έγινε με το Bitcoin... {#bitcoin} - -Από πολλές απόψεις, το Bitcoin ήταν η πρώτη εφαρμογή DeFi. Το Bitcoin σας επιτρέπει να κατέχετε πραγματικά και να ελέγχετε την αξία του και να τη στέλνετε οπουδήποτε στον κόσμο. Αυτό επιτυγάνεται παρέχοντας μία λύση για ένα μεγάλο αριθμό ανθρώπων, που δεν εμπιστεύονται ο ένας τον άλλον, να συμφωνήσουν για ένα βιβλίο λογαριασμών χωρίς την ανάγκη ενός αξιόπιστου ενδιάμεσου φορέα. Το Bitcoin είναι ανοιχτό σε όλους και κανείς δεν έχει την εξουσία να αλλάξει τους κανόνες του. Οι κανόνες του Bitcoin, όπως η σπανιότητα και η διαφάνειά του, είναι γραμμένοι πάνω στην τεχνολογία. Δεν είναι σαν την παραδοσιακή χρηματοδότηση όπου οι κυβερνήσεις μπορούν να εκτυπώσουν χρήματα και να υποτιμούν τις αποταμιεύσεις σας και οι εταιρείες που μπορούν να κλείσουν τις αγορές. - -Το Ethereum βασίζεται σε αυτό. Όπως και στο Bitcoin, οι κανόνες δεν μπορούν να αλλάξουν για εσάς και όλοι έχουν πρόσβαση. Ακόμη, καθιστά αυτό το ψηφιακό χρήμα ικανό να προγραμματιστεί για να μπορείτε να το αξιοποιήσετε πέρα από την αποθήκευση και την αποστολή του, χρησιμοποιώντας τα [έξυπνα συμβόλαια](/glossary#smart-contract). - - - -## Προγραμματιζόμενα χρήματα {#programmable-money} - -Ακούγεται παράξενο... «γιατί να θέλω να προγραμματίσω τα χρήματά μου»; Ωστόσο, αυτό είναι περισσότερο μια προεπιλεγμένη δυνατότητα των ψηφιακών στοιχείων στο Ethereum. Οποιοσδήποτε μπορεί να προγραμματίσει κάτι λογικό σε πληρωμές. Έτσι, μπορείτε να πάρετε τον έλεγχο και την ασφάλεια του Bitcoin αναμειγνύοντας τις υπηρεσίες που παρέχονται από τα χρηματοπιστωτικά ιδρύματα. Αυτό σας επιτρέπει να κάνετε διάφορα με τα κρυπτονομίσματα που δεν μπορείτε να κάνετε με το Bitcoin, όπως να δανείσετε και να δανειστείτε, προγραμματισμό πληρωμών, επενδύσεις σε κεφάλαια και πολλά άλλα. - - -
Δείτε τις προτάσεις μας για τις DeFi εφαρμογές για να τις δοκιμάσετε, αν είστε νέοι στο Ethereum.
- - Εξερευνήστε εφαρμογές DeFi - -
- -## Τι μπορείτε να κάνετε με τη DeFi; {#defi-use-cases} - -Υπάρχει μια αποκεντρωμένη εναλλακτική λύση για τις περισσότερες χρηματοπιστωτικές υπηρεσίες. Αλλά το Ethereum δημιουργεί επίσης ευκαιρίες για τη δημιουργία εντελώς νέων χρηματοπιστωτικών προϊόντων. Πρόκειται για μια συνεχώς αυξανόμενη λίστα. - -- [Στείλτε χρήματα παγκοσμίως](#send-money) -- [Μεταδώστε χρήματα παγκοσμίως](#stream-money) -- [Πρόσβαση σε νομίσματα σταθερής αξίας](#stablecoins) -- [Κεφάλαια δανεισμού με εγγύηση](#lending) -- [Δανεισμός χωρίς εγγύηση](#flash-loans) -- [Αποταμίευση κρυπτονομισμάτων](#saving) -- [Συναλλαγές ψηφιακών στοιχείων](#swaps) -- [Αυξήστε το χαρτοφυλάκιό σας](#investing) -- [Χρηματοδότηση των ιδεών σας](#crowdfunding) -- [Αγορά ασφαλιστικών υπηρεσιών](#insurance) -- [Διαχείριση του χαρτοφυλακίου σας](#aggregators) - - - -### Στείλτε χρήματα παγκοσμίως γρήγορα {#send-money} - -Ως blockchain, το Ethereum έχει σχεδιαστεί για την αποστολή συναλλαγών με ένα ασφαλή και παγκόσμιο τρόπο. Όπως το Bitcoin, το Ethereum κάνει την αποστολή χρημάτων σε όλο τον κόσμο τόσο εύκολα, όπως την αποστολή email. Απλά εισαγάγετε το [όνομα ENS](/nft/#nft-domains) των παραληπτών σας (όπως bob.eth) ή τη διεύθυνση του λογαριασμού τους από το πορτοφόλι σας και η πληρωμή σας θα πάει απευθείας σε αυτούς σε μερικά λεπτά (συνήθως). Για να στείλετε ή να λάβετε πληρωμές, θα χρειαστείτε ένα [πορτοφόλι](/wallets/). - - - Δείτε τις dapps πληρωμών - - -#### Στείλτε χρήματα παγκοσμίως... {#stream-money} - -Μπορείτε επίσης να στείλετε χρήματα μέσω του Ethereum. Αυτό σας επιτρέπει να πληρώσετε το μισθό κάποιου σε δευτερόλεπτα, δίνοντάς του τη δυνατότητα να έχει πρόσβαση στα χρήματά του και να τα αξιοποιήσει όπως θέλει. Ή νοικιάστε κάτι σε δευτερόλεπτα όπως ένα ντουλάπι αποθήκευσης ή ένα ηλεκτρικό σκούτερ. - -Αν δε θέλετε να στείλετε ή να μεταδώσετε [ETH](/eth/) λόγω της μεταβαλλόμενης η αξία του, υπάρχουν εναλλακτικά νομίσματα στο Ethereum όπως τα κρυπτονομίσματα σταθερής αξίας. - - - -### Πρόσβαση σε νομίσματα σταθερής αξίας {#stablecoins} - -Η μεταβλητότητα των κρυπτονομισμάτων είναι ένα πρόβλημα για πολλά χρηματοοικονομικά προϊόντα και γενικές δαπάνες. Η κοινότητα του DeFi έλυσε αυτό το πρόβλημα με τα κρυπτονομίσματα σταθερής αξίας. Η αξία τους παραμένει συνδεδεμένη με ένα άλλο περιουσιακό στοιχείο, συνήθως ένα δημοφιλές νόμισμα όπως τα δολάρια. - -Νομίσματα όπως το Dai ή το USDC έχουν σταθερή τιμή σε σχέση με το δολάριο. Αυτό τα καθιστά ιδανικά για κέρδη ή λιανικό εμπόριο. Πολλοί στη Λατινική Αμερική χρησιμοποίησαν τα κρυπτονομίσματα σταθερής αξίας ως τρόπο προστασίας των αποταμιεύσεων τους, λόγω της μεγάλης αβεβαιότητας με τα νομίσματα που έχουν εκδοθεί από την κυβέρνηση. - - - Περισσότερα για τα κρυπτονομίσματα σταθερής αξίας - - - - -### Δανεισμός {#lending} - -Ο δανεισμός χρημάτων από αποκεντρωμένους παρόχους προσφέρεται με δύο κύριους τρόπους. - -- Το «peer-to-peer», που σημαίνει ότι ένας δανειολήπτης θα δανειστεί απευθείας από ένα συγκεκριμένο δανειστή. -- Το «pool-based» όπου οι δανειστές παρέχουν κεφάλαιο (ρευστότητα) σε μια δεξαμενή από την οποία μπορούν να δανειστούν οι δανειολήπτες. - - - Δείτε τις dapps δανεισμού - - -Υπάρχουν πολλά πλεονεκτήματα με τη χρήση ενός αποκεντρωμένου δανειστή... - -#### Δανειοληψία με ιδιωτικότητα {#borrowing-privacy} - -Σήμερα, ο δανεισμός και το δάνειο χρημάτων αφορούν τα άτομα που εμπλέκονται. Οι τράπεζες πρέπει να γνωρίζουν αν είναι δυνατόν να εξοφληθεί ένα δάνειο πριν να το παρέχουν. - -Ο αποκεντρωμένος δανεισμός λειτουργεί χωρίς κανένα από τα δύο μέρη να χρειάζεται να ταυτοποιηθεί. Αντίθετα, ο δανειολήπτης πρέπει να δηλώσει εγγυήσεις που θα λάβει αυτόματα ο δανειστής εάν το δάνειό του δεν αποπληρωθεί. Ορισμένοι δανειστές δέχονται ακόμη και NFT ως εγγύηση. Τα NFT είναι μια πράξη σε ένα μοναδικό περιουσιακό στοιχείο, όπως μια ζωγραφική. [Περισσότερα για τα NTF](/nft/) - -Αυτό σας επιτρέπει να δανειστείτε χρήματα χωρίς ελέγχους πιστοληπτικής ικανότητας ή την υποβολή προσωπικών δεδομένων. - -#### Πρόσβαση σε παγκόσμια κεφάλαια {#access-global-funds} - -Όταν χρησιμοποιείτε έναν αποκεντρωμένο δανειστή έχετε πρόσβαση σε κεφάλαια που κατατίθενται από όλο τον κόσμο, όχι μόνο τα κεφάλαια που ελέγχει η τράπεζα ή το ίδρυμα. Αυτό καθιστά τα δάνεια πιο προσβάσιμα και βελτιώνει τα επιτόκια. - -#### Φορολογικές αποδόσεις {#tax-efficiencies} - -Ο δανεισμός μπορεί να σας δώσει πρόσβαση σε κεφάλαια χωρίς να χρειάζεται να πουλήσετε τα ETH σας (ένα φορολογητέο γεγονός). Αντίθετα, μπορείτε να χρησιμοποιήσετε τα ETH ως εγγύηση για ένα δάνειο με κρυπτονόμισμα σταθερής αξίας. Αυτό σας προσφέρει τη ρευστότητα μετρητών που χρειάζεστε και σας επιτρέπει να κρατήσετε τα ETH σας. Τα κρυπτονομίσματα σταθερής αξίας είναι ψηφιακά στοιχεία που είναι ποιο σταθερά όταν χρειάζεστε μετρητά, καθώς δε μεταβάλλεται η αξία τους όπως το ETH. [Περισσότερα για τα κρυπτονομίσματα σταθερής αξίας](#stablecoins) - -#### Στιγμιαία δάνεια {#flash-loans} - -Τα στιγμιαία δάνεια είναι μια πιο πειραματική μορφή αποκεντρωμένου δανεισμού που σας επιτρέπουν να δανειστείτε χωρίς εγγύηση ή παροχή προσωπικών πληροφοριών. - -Δεν είναι ευρέως προσβάσιμα σε μη τεχνικούς χρήστες αυτή τη στιγμή, αλλά αναμένεται να χρησιμοποιηθούν από όλους στο μέλλον. - -Λειτουργεί κατά βάση ότι το δάνειο λαμβάνεται και εξοφλείται στο πλαίσιο της ίδιας συναλλαγής. Αν δεν μπορεί να αποπληρωθεί, η συναλλαγή επανέρχεται σαν να μη συνέβη ποτέ. - -Τα κεφάλαια που χρησιμοποιούνται συχνά διατηρούνται σε δεξαμενές ρευστότητας (μεγάλες δεξαμενές κεφαλαίων που χρησιμοποιούνται για δανεισμό). Εάν δε χρησιμοποιηθούν σε μια δεδομένη στιγμή, αυτό δημιουργεί μια ευκαιρία για κάποιον να δανειστεί αυτά τα κεφάλαια, διεξάγοντας επιχείρηση μαζί τους και να τους αποπληρώσει πλήρως κυριολεκτικά την ίδια στιγμή που τον δανείζουν. - -Αυτό σημαίνει ότι απαιτούνται αρκετά λογιστικά να συμπεριληφθούν, σε μια πολύ εξατομικευμένη συναλλαγή. Ένα απλό παράδειγμα είναι όταν κάποιος λαμβάνει ένα στιγμιαίο δάνειο ενός ψηφιακού στοιχείου σε μια τιμή, ώστε να μπορεί να το πουλήσει σε διαφορετικό ανταλλακτήριο υψηλότερη τιμή. - -Έτσι, σε μία μόνο συναλλαγή, συμβαίνουν τα εξής: - -- Δανειζόσαστε το ποσό X $asset στο $1.00 από το ανταλλακτήριο Α -- Πουλάτε τα Χ $asset στο ανταλλακτήριο Β για $1.10 -- Αποπληρώνετε το δάνειο στο ανταλλακτήριο Α -- Κρατάτε το κέρδος μείον τις κρατήσεις της συναλλαγής - -Αν στο ανταλλακτήριο B έπεσε ξαφνικά η αξία και ο χρήστης δεν ήταν σε θέση να αγοράσει αρκετά για να καλύψει το αρχικό δάνειο, η συναλλαγή απλά θα αποτύχει. - -Για να μπορέσετε να εφαρμόσετε το παραπάνω παράδειγμα στον παραδοσιακό χρηματοπιστωτικό κόσμο, θα χρειαστείτε ένα σεβαστό χρηματικό ποσό. Αυτές οι στρατηγικές κέρδους είναι προσβάσιμες μόνο σε εκείνους με τον υπάρχοντα πλούτο. Τα στιγμιαία δάνεια αποτελούν παράδειγμα ενός μέλλοντος όπου η κατοχή χρημάτων δεν αποτελεί απαραίτητα προϋπόθεση για κέρδος χρημάτων. - -[Περισσότερα για τα στιγμιαία δάνεια](https://aave.com/flash-loans/) - - - -### Αρχίστε να εξοικονομείτε με κρυπτονομίσματα {#saving} - -#### Δανεισμός {#lending} - -Μπορείτε να κερδίσετε τόκους με τα κρυπτονομίσματά σας, δανείζοντάς τα και παρακολουθώντας το κεφάλαιό σας να αυξάνεται σε πραγματικό χρόνο. Αυτή τη στιγμή τα επιτόκια είναι πολύ υψηλότερα από ότι είναι πιθανό να βρείτε στην τοπική σας τράπεζα (αν είστε αρκετά τυχεροί ώστε να έχετε πρόσβαση σε μία από αυτές). Δείτε ένα παράδειγμα: - -- Δανείζετε τα 100 Dai σας, ένα [κρυπτονόμισμα σταθερής αξίας](/stablecoins/), σε ένα προϊόν όπως το Aave. -- Λαμβάνετε 100 Aave Dai (aDai) τα οποία αντιστοιχούν σε ψηφιακό στοιχείο που δηλώνει πως δανείσατε τα Dai σας. -- Τα aDai σας θα αυξηθούν με βάση το επιτόκιο και μπορείτε να δείτε το υπόλοιπό σας να αυξάνεται στο πορτοφόλι σας. Ανάλογα το ετήσιο ποσοστό επιτοκίου, το υπόλοιπο του πορτοφολιού σας θα εμφανίζεται σαν 100.1234 μετά από λίγες ημέρες ή ακόμα και ώρες! -- Μπορείτε να κάνετε ανάληψη ένα ποσό των κανονικών Dai που είναι ίσο με το υπόλοιπό aDai σας ανά πάσα στιγμή. - - - Δείτε dapps για δανεισμό - - -#### Κληρώσεις λαχείων χωρίς απώλεια {#no-loss-lotteries} - -Οι κληρώσεις λαχείων χωρίς απώλεια, όπως το PoolTogether είναι ένας διασκεδαστικός και καινοτόμος νέος τρόπος για να εξοικονομήσετε χρήματα. - -- Αγοράζετε 100 εισιτήρια χρησιμοποιώντας 100 Dai. -- Λαμβάνετε 100 plDai που αντιπροσωπεύουν τα 100 εισιτήρια σας. -- Αν επιλεγεί ένα από τα εισιτήρια σας, το υπόλοιπό σας plDai θα αυξηθεί κατά το ποσό του βραβείου. -- Αν δεν κερδίσετε, τα 100 plDai περνούν στην κλήρωση της επόμενης εβδομάδας. -- Μπορείτε να κάνετε ανάληψη ένα ποσό των κανονικών Dai που είναι ίσο με το υπόλοιπό plDai σας ανά πάσα στιγμή. - -Το έπαθλο δημιουργείται από όλους τους τόκους που προκύπτουν από τη χορήγηση των καταθέσεων εισιτηρίων, όπως στο παραπάνω παράδειγμα δανειοδότησης. - - - Δοκιμάστε το PoolTogether - - - - -### Ανταλλαγή κρυπτονομισμάτων {#swaps} - -Υπάρχουν χιλιάδες ψηφιακά στοιχεία στο Ethereum. Τα αποκεντρωμένα χρηματιστήρια (DEXs) σας επιτρέπουν να ανταλλάξετε διαφορετικά ψηφιακά στοιχεία όποτε θέλετε. Δε χάνετε τον έλεγχο των στοιχείων σας. Αυτό είναι σαν να χρησιμοποιείτε ένα ανταλλακτήριο συναλλάγματος όταν επισκέπτεστε μια διαφορετική χώρα. Αλλά, η έκδοση DeFi ποτέ δεν κλείνει. Οι αγορές είναι ανοιχτές 24/7, 365 ημέρες το χρόνο και η τεχνολογία εγγυάται ότι θα υπάρχει πάντα κάποιος να αποδεχθεί τη συναλλαγή. - -Για παράδειγμα, εάν θέλετε να χρησιμοποιήσετε τη λοταρία χωρίς απώλειες PoolTogether (που περιγράφεται παραπάνω), θα χρειαστείτε ένα κρυπτονόμισμα όπως το Dai ή το USDC. Αυτά τα DEX σάς επιτρέπουν να ανταλλάξετε τα ETH σας με αυτά τα κρυπτονομίσματα και να τα επιστρέψετε ξανά με την ολοκλήρωση. - - - Δείτε ανταλλακτήρια κρύπτο - - - - -### Προχωρημένες συναλλαγές {#trading} - -Υπάρχουν περισσότερο προηγμένες επιλογές για έμπορους που θα προτιμούσαν λίγο περισσότερο έλεγχο. Εντολές limit, μόνιμες, συναλλαγές δανείου και άλλα είναι όλα δυνατά. Με τις αποκεντρωμένες συναλλαγές έχετε πρόσβαση σε μια παγκόσμια ρευστότητα, η αγορά δεν κλείνει ποτέ και έχετε πάντα τον έλεγχο των περιουσιακών σας στοιχείων. - -Όταν χρησιμοποιείτε ένα κεντρικό χρηματιστήριο, πρέπει να καταθέτετε τα περιουσιακά σας στοιχεία πριν από τη συναλλαγή και να τα εμπιστεύεστε σε αυτό. Ενώ τα περιουσιακά σας στοιχεία κατατίθενται, διατρέχουν κίνδυνο, καθώς τα κεντρικά ανταλλακτήρια αποτελούν ελκυστικούς στόχους για τους χάκερ. - - - Δείτε εφαρμογές συναλλαγών - - - - -### Αυξήστε το χαρτοφυλάκιό σας {#investing} - -Υπάρχουν προϊόντα διαχείρισης κεφαλαίων στο Ethereum που θα προσπαθήσουν να αυξήσουν το χαρτοφυλάκιό σας με βάση μια στρατηγική της δικής σας επιλογής. Αυτό είναι αυτόματο, ανοιχτό σε όλους και δε χρειάζεται ανθρώπινη μεσολάβηση που θα περικόψει τα κέρδη σας. - -Ένα καλό παράδειγμα είναι το [ταμείο DeFi Pulse Index (DPI)](https://defipulse.com/blog/defi-pulse-index/). Αυτό είναι ένα αμοιβαίο κεφάλαιο που ισορροπεί ξανά αυτόματα για να διασφαλίσει ότι το χαρτοφυλάκιό σας περιλαμβάνει πάντα [τα κορυφαία κρυπτονομίσματα DeFi ανά κεφαλαιοποίηση αγοράς](https://www.coingecko.com/en/defi). Δε χρειάζεται ποτέ να διαχειριστείτε καμία από τις λεπτομέρειες και μπορείτε να κάνετε ανάληψη από το ταμείο όποτε θέλετε. - - - Δείτε εφαρμογές επενδύσεων - - - - -### Χρηματοδότηση των ιδεών σας {#crowdfunding} - -Το Ethereum είναι μια ιδανική πλατφόρμα για crowdfunding: - -- Οι πιθανοί χρηματοδότες μπορούν να προέλθουν από οπουδήποτε. Το Ethereum και τα κρυπτονομίσματά του είναι ανοιχτά σε οποιονδήποτε και οπουδήποτε στον κόσμο. -- Είναι διαφανές, ώστε οι έρανοι να μπορούν να αποδείξουν πόσα χρήματα έχουν συγκεντρωθεί. Μπορείτε ακόμη και να εντοπίσετε πώς δαπανώνται τα κεφάλαια αργότερα. -- Οι έρανοι μπορούν να ορίσουν αυτόματες επιστροφές χρημάτων εάν, για παράδειγμα, υπάρχει συγκεκριμένη προθεσμία και ελάχιστο ποσό που δε θα συμπληρωθεί. - - - Δείτε εφαρμογές χρηματοδότησης - - -#### Τετραγωνική χρηματοδότηση {#quadratic-funding} - -Το Ethereum είναι λογισμικό ανοιχτού κώδικα και μεγάλο μέρος της δουλειάς μέχρι στιγμής έχει χρηματοδοτηθεί από την κοινότητα. Αυτό οδήγησε στην ανάπτυξη ενός ενδιαφέροντος νέου μοντέλου συγκέντρωσης κεφαλαίων: της τετραγωνικής χρηματοδότησης. Αυτό έχει τη δυνατότητα να βελτιώσει τον τρόπο με τον οποίο χρηματοδοτούμε όλα τα είδη δημόσιων αγαθών στο μέλλον. - -Η τετραγωνική χρηματοδότηση διασφαλίζει ότι τα έργα που λαμβάνουν τη μεγαλύτερη χρηματοδότηση, είναι αυτά με τη μεγαλύτερη ζήτηση. Με άλλα λόγια, έργα που μπορούν να βελτιώσουν τη ζωή των περισσότερων ανθρώπων. Δείτε πώς λειτουργεί: - -1. Υπάρχει μια αντίστοιχη δεξαμενή δωρεών. -2. Ξεκινά ένας γύρος δημόσιας χρηματοδότησης. -3. Οι χρήστες μπορούν να προωθήσουν ένα έργο δωρίζοντας κάποια χρήματα. -4. Μόλις ολοκληρωθεί ο γύρος, η αντίστοιχη δεξαμενή διανέμεται στα έργα. Εκείνοι με την περισσότερη ζήτηση λαμβάνουν το υψηλότερο ποσό από την αντίστοιχη δεξαμενή. - -Αυτό σημαίνει ότι το Έργο Α με τις 100 δωρεές του 1 δολαρίου θα μπορούσε να καταλήξει με περισσότερη χρηματοδότηση από το Έργο Β με μία μόνο δωρεά των 10.000 δολαρίων (ανάλογα με το μέγεθος της αντίστοιχης δεξαμενής). - -[Περισσότερα για την τετραγωνική χρηματοδότηση](https://wtfisqf.com) - - - -### Ασφαλιστικές υπηρεσίες {#insurance} - -Η αποκεντρωμένη ασφάλιση στοχεύει να κάνει τη δυνατότητα ασφάλισης φθηνότερη, ταχύτερη στην πληρωμή και πιο διαφανή. Με περισσότερη αυτοματοποίηση, η κάλυψη είναι πιο προσιτή και οι πληρωμές είναι πολύ πιο γρήγορες. Τα δεδομένα που χρησιμοποιούνται για την απόφαση σχετικά με την αξίωσή σας είναι απολύτως διαφανή. - -Τα προϊόντα Ethereum, όπως κάθε λογισμικό, μπορεί να υστερούν από σφάλματα και εκμεταλλεύσεις. Έτσι, αυτή τη στιγμή πολλά προϊόντα ασφάλισης στον χώρο, επικεντρώνονται στην προστασία των χρηστών τους από την απώλεια κεφαλαίων. Ωστόσο, υπάρχουν έργα που αρχίζουν να δημιουργούν κάλυψη για οτιδήποτε μπορεί να μας συμβεί. Ένα καλό παράδειγμα αυτού είναι η κάλυψη Crop της Etherisc που στοχεύει να [προστατέψει τους μικροκαλλιεργητές στην Κένυα από ξηρασίες και πλημμύρες](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Η αποκεντρωμένη ασφάλιση μπορεί να προσφέρει φθηνότερη κάλυψη για τους αγρότες που συχνά αποτιμώνται από την παραδοσιακή ασφάλιση. - - - Δείτε εφαρμογές ασφάλισης - - - - -### Aggregators και διαχειριστές πορτοφολιού {#aggregators} - -Με τόσα πολλά που συμβαίνουν, θα χρειαστείτε έναν τρόπο να παρακολουθείτε όλες τις επενδύσεις, τα δάνεια και τις συναλλαγές σας. Υπάρχουν πολλά προϊόντα που σας επιτρέπουν να συντονίζετε όλη τη δραστηριότητά σας στο DeFi από ένα μέρος. Αυτή είναι η ομορφιά της ανοιχτής αρχιτεκτονικής του DeFi. Οι ομάδες μπορούν να δημιουργήσουν διεπαφές όπου δεν μπορείτε απλώς να δείτε το υπόλοιπο κεφαλαίου σας στα προϊόντα, αλλά μπορείτε να χρησιμοποιήσετε και τις δυνατότητές τους. Μπορεί να σας φανεί χρήσιμο καθώς εξερευνάτε περισσότερο το DeFi. - - - Δείτε εφαρμογές χαρτοφυλακίου - - - - -## Πώς λειτουργεί η DeFi; {#how-defi-works} - -Το DeFi χρησιμοποιεί κρυπτονομίσματα και έξυπνα συμβόλαια για να παρέχει υπηρεσίες που δε χρειάζονται μεσάζοντες. Στον σημερινό οικονομικό κόσμο, τα χρηματοπιστωτικά ιδρύματα λειτουργούν ως εγγυητές των συναλλαγών. Αυτό δίνει σε αυτά τα ιδρύματα τεράστια δύναμη επειδή τα χρήματά σας ρέουν μέσω αυτών. Επιπλέον, δισεκατομμύρια άνθρωποι σε όλο τον κόσμο δεν μπορούν καν να έχουν πρόσβαση σε τραπεζικό λογαριασμό. - -Στο DeFi, ένα έξυπνο συμβόλαιο αντικαθιστά το χρηματοπιστωτικό ίδρυμα κατά τη συναλλαγή. Ένα έξυπνο συμβόλαιο είναι ένας τύπος λογαριασμού Ethereum που μπορεί να κρατήσει κεφάλαια και μπορεί να τα στείλει/επιστρέψει με βάση ορισμένες προϋποθέσεις. Κανείς δεν μπορεί να αλλάξει αυτό το έξυπνο συμβόλαιο όταν έχει δημοσιευτεί και θα εκτελείται πάντα όπως έχει προγραμματιστεί. - -Ένα συμβόλαιο που έχει σχεδιαστεί για να μοιράζει ένα επίδομα ή χαρτζιλίκι θα μπορούσε να προγραμματιστεί να στέλνει χρήματα από τον λογαριασμό Α στον λογαριασμό Β κάθε Παρασκευή. Και αυτό θα το κάνει μόνο εφόσον ο Λογαριασμός Α έχει τα απαιτούμενα κεφάλαια. Κανείς δεν μπορεί να αλλάξει το συμβόλαιο και να προσθέσει τον λογαριασμό Γ ως παραλήπτη για να κλέψει χρήματα. - -Τα συμβόλαια είναι επίσης διαθέσιμα δημόσια για επιθεώρηση και έλεγχο από οποιονδήποτε. Αυτό σημαίνει ότι τα κακόβουλα συμβόλαια θα ελεγχθούν σύντομα από την κοινότητα αρκετά γρήγορα. - -Αυτό σημαίνει ότι υπάρχει προς το παρόν ανάγκη να εμπιστευόμαστε τα πιο τεχνικά μέλη της κοινότητας του Ethereum που μπορούν να διαβάσουν κώδικα. Η κοινότητα που βασίζεται σε ανοιχτό κώδικα, βοηθάει τους προγραμματιστές να ελέγχουν αλλά αυτή η ανάγκη θα μειωθεί με την πάροδο του χρόνου, καθώς τα έξυπνα συμβόλαια γίνονται ευκολότερα στην ανάγνωση και αναπτύσσονται άλλοι τρόποι για την απόδειξη της αξιοπιστίας του κώδικα. - -## Ethereum και DeFi {#ethereum-and-defi} - -Το Ethereum είναι το τέλειο θεμέλιο για το DeFi για διάφορους λόγους: - -- Κανείς δεν κατέχει το Ethereum ή τα έξυπνα συμβόλαια που ισχύουν σε αυτό. Έτσι δίνεται σε όλους την ευκαιρία να χρησιμοποιήσουν το DeFi. Αυτό σημαίνει επίσης ότι κανείς δεν μπορεί να αλλάξει τους κανόνες για εσάς. -- Τα προϊόντα DeFi μιλούν όλα την ίδια γλώσσα στα παρασκήνια: Ethereum. Αυτό σημαίνει ότι πολλά από τα προϊόντα συνεργάζονται άψογα. Μπορείτε να δανείσετε κρυπτονομίσματα σε μια πλατφόρμα και να ανταλλάξετε το έντοκο κρυπτονόμισμα σε διαφορετική αγορά σε μια εντελώς διαφορετική εφαρμογή. Αυτό είναι σαν να μπορείτε να εξαργυρώσετε πόντους επιβράβευσης στην τράπεζά σας. -- Τα ψηφιακά στοιχεία και τα κρυπτονομίσματα είναι ενσωματωμένα στο Ethereum, ένα κοινό Ledger. Η παρακολούθηση των συναλλαγών και της ιδιοκτησίας είναι θέμα του Ethereum. -- Το Ethereum επιτρέπει πλήρη οικονομική ελευθερία. Τα περισσότερα προϊόντα δε θα αναλάβουν ποτέ τη φύλαξη των κεφαλαίων σας, αφήνοντάς σας τον έλεγχο. - -Μπορείτε να σκεφτείτε το DeFi σε επίπεδα: - -1. Το blockchain – Το Ethereum περιέχει το ιστορικό συναλλαγών και την κατάσταση των λογαριασμών. -2. Τα ψηφιακά στοιχεία – [ETH](/eth/) και τα άλλα κρύπτο (νομίσματα). -3. Τα πρωτόκολλα – [Έξυπνα συμβόλαια](/glossary/#smart-contract) που παρέχουν τη λειτουργικότητα, για παράδειγμα, μια υπηρεσία που επιτρέπει τον αποκεντρωμένο δανεισμό περιουσιακών στοιχείων. -4. [Οι εφαρμογές](/dapps/) – Τα προϊόντα που χρησιμοποιούμε για τη διαχείριση και την πρόσβαση στα πρωτόκολλα. - -## Δημιουργία DeFi {#build-defi} - -Το DeFi είναι ανοιχτού κώδικα. Τα πρωτόκολλα και οι εφαρμογές DeFi είναι όλα διαθέσιμα για επιθεώρηση, ενσωμάτωση και καινοτομία. Λόγω αυτής της πολυεπίπεδης στοίβας (όλες μοιράζονται την ίδια βασική κρυπτοαλυσίδα και τα ψηφιακά στοιχεία), τα πρωτόκολλα μπορούν να αναμειχθούν και να συνδυαστούν για να ξεκλειδώσουν μοναδικές ευκαιρίες. - - - Περισσότερα για τη δημιουργία dapp - - -## Περισσότερες πληροφορίες {#futher-reading} - -### Δεδομένα DeFi {#defi-data} - -- [DeFi Prime](https://defiprime.com/) -- [DeFi Llama](https://defillama.com/) -- [DeFi Rate](https://defirate.com/) - -### Άρθρα DeFi {#defi-articles} - -- [Οδηγός για αρχάριους για το DeFi](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, 6 Ιανουαρίου 2020_ - -### Βίντεο {#videos} - -- [Finematics - εκπαίδευση στην αποκεντρωμένη τραπεζική](https://finematics.com/) – _Βίντεο σε DeFi_ -- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _Τα βασικά για την DeFi: Όλα όσα χρειάζεται να μάθετε για να ξεκινήσετε σε αυτό τον ιδιαίτερα πολύπλοκο χώρο._ -- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _Τι είναι η DeFi;_ - -### Κοινότητες {#communities} - -- [DeFi Llama διακομιστής Discord](https://discord.gg/buPFYXzDDd) -- [DeFi Pulse διακομιστής Discord](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/el/desci/index.md b/src/content/translations/el/desci/index.md deleted file mode 100644 index b7298111a18..00000000000 --- a/src/content/translations/el/desci/index.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: Αποκεντρωμένη επιστήμη (DeSci) -description: Μια επισκόπηση της αποκεντρωμένης επιστήμης στο Ethereum -lang: el -template: use-cases -emoji: ":microscope:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Μια παγκόσμια, ανοικτή εναλλακτική λύση στο τρέχον επιστημονικό σύστημα. -summaryPoint2: Τεχνολογία που επιτρέπει στους επιστήμονες να αντλήσουν χρηματοδοτήσεις, να εκτελέσουν πειράματα, να μοιραστούν δεδομένα, ιδέες και πολλά άλλα. -summaryPoint3: Δημιουργία πάνω στο ανοιχτό επιστημονικό κίνημα. ---- - -## Τι είναι η αποκεντρωμένη επιστήμη (DeSci); {#what-is-desci} - -Η αποκεντρωμένη επιστήμη (DeSci) είναι ένα κίνημα που στοχεύει στη δημιουργία δημόσιας υποδομής για χρηματοδότηση, δημιουργία, αναθεώρηση, πίστωση, αποθήκευση και διάδοση της επιστημονικής γνώσης δίκαια και χρησιμοποιώντας την τεχνολογία Web3. - -Η DeSci στοχεύει να δημιουργήσει ένα οικοσύστημα όπου οι επιστήμονες θα έχουν κίνητρα να μοιράζονται ανοιχτά την έρευνά τους και να λαμβάνουν εύσημα για το έργο τους, επιτρέποντας ταυτόχρονα σε οποιονδήποτε να έχει πρόσβαση και να συνεισφέρει στην έρευνα εύκολα. Η DeSci βασίζεται στην ιδέα ότι η επιστημονική γνώση πρέπει να είναι προσβάσιμη σε όλους και ότι η διαδικασία της επιστημονικής έρευνας πρέπει να είναι διαφανής. Η DeSci δημιουργεί ένα πιο αποκεντρωμένο και κατανεμημένο μοντέλο επιστημονικής έρευνας, καθιστώντας το πιο ανθεκτικό στη λογοκρισία και τον έλεγχο από τις κεντρικές αρχές. Η DeSci ελπίζει να δημιουργήσει ένα περιβάλλον όπου νέες και αντισυμβατικές ιδέες μπορούν να ανθίσουν με την αποκέντρωση της πρόσβασης στη χρηματοδότηση, τα επιστημονικά εργαλεία και τα κανάλια επικοινωνίας. - -Η αποκεντρωμένη επιστήμη επιτρέπει περισσότερες διαφορετικές πηγές χρηματοδότησης (από [DAO](/dao/), [τετραγωνικές δωρεές](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) για χρηματοδότηση και άλλα), πιο προσβάσιμα δεδομένα και μεθόδους πρόσβασης, παρέχοντας κίνητρα για αναπαραγωγιμότητα. - -### Juan Benet - Το Κίνημα DeSci - - - -## Πώς το DeSci βελτιώνει την επιστήμη {#desci-improves-science} - -Μια ελλιπής λίστα βασικών προβλημάτων και πώς η αποκεντρωμένη επιστήμη μπορεί να βοηθήσει στην αντιμετώπιση αυτών των ζητημάτων - -| **Αποκεντρωμένη επιστήμη** | **Παραδοσιακή επιστήμη** | -| -------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | -| Η κατανομή των κεφαλαίων καθορίζεται από το κοινό χρησιμοποιώντας μηχανισμούς όπως οι τετραγωνικές δωρεές ή οι DAO. | Μικρές, κλειστές, κεντρικές ομάδες ελέγχουν στη διανομή των κεφαλαίων. | -| Συνεργάζεστε με χρήστες από όλο τον κόσμο σε δυναμικές ομάδες. | Οι χρηματοδοτικοί οργανισμοί και τα ιδρύματα του εσωτερικού περιορίζουν τις συνεργασίες σας. | -| Οι αποφάσεις χρηματοδότησης λαμβάνονται διαδικτυακά και με διαφάνεια. Διερευνώνται νέοι μηχανισμοί χρηματοδότησης. | Οι αποφάσεις χρηματοδότησης λαμβάνονται με μακρύ χρόνο διεκπεραίωσης και περιορισμένη διαφάνεια. Υπάρχουν λίγοι μηχανισμοί χρηματοδότησης. | -| Η κοινή χρήση εργαστηριακών υπηρεσιών γίνεται ευκολότερη και πιο διαφανής χρησιμοποιώντας το Web3. | Η κοινή χρήση εργαστηριακών πόρων είναι συχνά αργή και αδιαφανής. | -| Μπορούν να αναπτυχθούν νέα μοντέλα για δημοσίευση που χρησιμοποιούν Web3 για εμπιστοσύνη, διαφάνεια και γενική πρόσβαση. | Δημοσιεύετε μέσω καθιερωμένων οδών που συχνά αναγνωρίζονται ως αναποτελεσματικές, μεροληπτικές και εκμεταλλευτικές. | -| Μπορείτε να κερδίσετε ψηφιακά στοιχεία και φήμη για εργασία αξιολόγησης από χρήστες. | Η εργασία εξέτασης από χρήστες είναι δωρεάν, προς όφελος των κερδοσκοπικών εκδοτών. | -| Είστε κάτοχος της πνευματικής ιδιοκτησίας (IP) που δημιουργείτε και τη διανέμετε σύμφωνα με διαφανείς όρους. | Ο πάροχος της χώρας σας κατέχει την IP που δημιουργείτε. Η πρόσβαση στην IP δεν είναι διαφανής. | -| Κοινή χρήση όλης της έρευνας, συμπεριλαμβανομένων των δεδομένων από ανεπιτυχείς προσπάθειες, έχοντας όλα τα βήματα στην αλυσίδα. | Η μεροληψία δημοσίευσης σημαίνει ότι οι ερευνητές είναι πιο πιθανό να μοιραστούν πειράματα που είχαν επιτυχημένα αποτελέσματα. | - -## Το Ethereum και η DeSci {#ethereum-and-desci} - -Ένα αποκεντρωμένο επιστημονικό σύστημα θα απαιτήσει ισχυρή ασφάλεια, ελάχιστο χρηματικό κόστος, κόστος συναλλαγών και ένα πλούσιο οικοσύστημα για την ανάπτυξη εφαρμογών. Το Ethereum παρέχει όλα όσα χρειάζονται για τη δημιουργία μιας αποκεντρωμένης επιστήμης. - -## Χρήσεις της DeSci {#use-cases} - -Η DeSci δημιουργεί το επιστημονικό σύνολο εργαλείων για να ενσωματώσει τον ακαδημαϊκό χώρο του Web2 στον ψηφιακό κόσμο. Ακολουθεί ένα δείγμα περιπτώσεων χρήσης που μπορεί να προσφέρει το Web3 στην επιστημονική κοινότητα. - -### Δημοσίευση {#publishing} - -Είναι γνωστό πως η επιστημονική δημοσίευση είναι προβληματική, επειδή τη διαχειρίζονται εκδοτικοί οίκοι που βασίζονται σε δωρεάν εργασία από επιστήμονες, κριτικούς και συντάκτες για τη δημιουργία των εγγράφων, αλλά στη συνέχεια χρεώνουν υπέρογκα τέλη για τη δημοσίευση. Οι χρήστες, που συνήθως έχουν πληρώσει έμμεσα για το έργο και το κόστος δημοσίευσης μέσω της φορολογίας, συχνά δεν μπορούν να έχουν πρόσβαση στο ίδιο έργο χωρίς να πληρώσουν ξανά τον εκδότη. Τα συνολικά τέλη για τη δημοσίευση των μεμονωμένων επιστημονικών εργασιών είναι συχνά πενταψήφια ($USD), υπονομεύοντας την όλη έννοια της επιστημονικής γνώσης ως [ δημόσιο όφελος](https://www.econlib.org/library/Enc/PublicGoods.html) ενώ παράλληλα παράγει τεράστια κέρδη για μια μικρή ομάδα εκδοτών. - -Πλατφόρμες δωρεάν και ανοιχτής πρόσβασης υπάρχουν με τη μορφή διακομιστών προεκτύπωσης όπως το [ArXiv](https://arxiv.org/). Ωστόσο, αυτές οι πλατφόρμες στερούνται ποιοτικού ελέγχου, [μηχανισμών anti-sybil](https://csrc.nist.gov/glossary/term/sybil_attack) και δεν παρακολουθούν γενικά μετρήσεις σε επίπεδο άρθρου, δηλαδή συνήθως χρησιμοποιούνται μόνο για τη δημοσιοποίηση της εργασίας πριν από την υποβολή σε έναν παραδοσιακό εκδότη. Το SciHub παρέχει δωρεάν πρόσβαση στις δημοσιευμένες εργασίες, αλλά όχι νόμιμα και μόνο αφού οι εκδότες έχουν ήδη λάβει την πληρωμή τους και δημοσιεύσουν το έργο υπό αυστηρής νομοθεσίας περί πνευματικών δικαιωμάτων. Αυτό αφήνει ένα κρίσιμο κενό για πρόσβαση σε επιστημονικά έγγραφα και δεδομένα με ενσωματωμένο μηχανισμό νομιμότητας και ένα μοντέλο κινήτρων. Τα εργαλεία κατασκευής ενός τέτοιου συστήματος υπάρχουν στο Web3. - -### Αναπαραγωγικότητα και δυνατότητα αναπαραγωγής {#reproducibility-and-replicability} - -Η αναπαραγωγικότητα και η δυνατότητα αναπαραγωγής είναι τα θεμέλια της ποιοτικής επιστημονικής ανακάλυψης. - -- Αναπαραγόμενα αποτελέσματα μπορούν να επιτευχθούν πολλές φορές συνεχόμενα από την ίδια ομάδα χρησιμοποιώντας την ίδια μεθοδολογία. -- Δυνατότητα αναπαραγωγής μπορεί να επιτευχθεί από διαφορετική ομάδα χρησιμοποιώντας τα ίδια στοιχεία πειράματος. - -Τα νέα εγγενή εργαλεία Web3 μπορούν να διασφαλίσουν ότι η αναπαραγωγικότητα και η δυνατότητα αναπαραγωγής αποτελούν τη βάση της ανακάλυψης. Μπορούμε να συνδυάσουμε την ποιοτική επιστήμη στον τεχνολογικό ιστό του ακαδημαϊκού χώρου. Το Web3 προσφέρει τη δυνατότητα δημιουργίας βεβαιώσεων για κάθε στοιχείο ανάλυσης: τα πρωτογενή δεδομένα, την υπολογιστική μηχανή και το αποτέλεσμα της εφαρμογής. Η ομορφιά των συστημάτων συναίνεσης είναι ότι όταν δημιουργείται ένα αξιόπιστο δίκτυο για τη συντήρηση αυτών των στοιχείων, κάθε συμμετέχων του δικτύου μπορεί να είναι υπεύθυνος για την αναπαραγωγή του υπολογισμού και την επικύρωση κάθε αποτελέσματος. - -### Χρηματοδότηση {#funding} - -Το τρέχον πρότυπο μοντέλο για τη χρηματοδότηση της επιστήμης είναι ότι άτομα ή ομάδες επιστημόνων υποβάλλουν γραπτές αιτήσεις σε έναν οργανισμό χρηματοδότησης. Μια μικρή ομάδα έμπιστων ατόμων βαθμολογεί τις αιτήσεις και στη συνέχεια παίρνει συνέντευξη από τους υποψηφίους πριν χορηγήσει κεφάλαια σε μια μικρή μερίδα υποψηφίων. Εκτός από τη δημιουργία καθυστέρησης που μερικές φορές οδηγούν σε χρόνια αναμονής μεταξύ υποβολής αίτησης και λήψης επιχορήγησης, αυτό το μοντέλο είναι γνωστό ότι είναι πολύ ευάλωτο στις προκαταλήψεις, τα προσωπικά συμφέροντα και την πολιτική της επιτροπής αναθεώρησης. - -Μελέτες έχουν δείξει ότι οι επιτροπές αναθεώρησης επιχορηγήσεων κάνουν κακή δουλειά όσον αφορά την επιλογή προτάσεων υψηλής ποιότητας, καθώς οι ίδιες προτάσεις που δίνονται σε διαφορετικές ομάδες έχουν εξαιρετικά διαφορετικά αποτελέσματα. Καθώς η χρηματοδότηση γίνεται πιο σπάνια, συγκεντρώνεται σε μια μικρότερη δεξαμενή γνωστών ερευνητών με πιο ιδιαίτερα έργα. Το αποτέλεσμα έχει δημιουργήσει ένα υπερανταγωνιστικό τοπίο χρηματοδότησης, εδραιώνει διεστραμμένα κίνητρα και καταπνίγει την καινοτομία. - -Το Web3 έχει τη δυνατότητα να διαταράξει αυτό το μοντέλο χρηματοδότησης πειραματιζόμενο με διαφορετικά μοντέλα κινήτρων που αναπτύχθηκαν από τους DAO και γενικά το 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 κάνει εξαιρετικά χρησιμοποιώντας τα [μη εναλλάξιμα κρυπτοπαραστατικά (NFT)](/nft/). - -Με τον ίδιο τρόπο που τα NFT μπορούν να μεταφέρουν έσοδα από μελλοντικές συναλλαγές στον αρχικό δημιουργό τους, μπορείτε να δημιουργήσετε αλυσίδες απόδοσης της αξίας με πλήρη διαφάνεια για να επιβραβεύσετε τους ερευνητές, τους κυβερνητικούς φορείς (όπως τους DAO) ή ακόμα και τα υποκείμενα των οποίων τα δεδομένα συλλέγονται. - -Τα [IP-NFT](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) μπορούν επίσης να λειτουργήσουν ως κλειδί για ένα αποκεντρωμένο αποθετήριο δεδομένων των ερευνητικών πειραμάτων που διεξάγονται, συνδέοντας τη χρηματοοικονομική των NFT και της [DeFi](/defi/) (από την κλασματοποίηση έως τις ομάδες δανεισμού και εκτίμησης της αξίας). Επιτρέπει επίσης σε οντότητες στην αλυσίδα, τους DAO, όπως το [VitaDAO](https://www.vitadao.com/) να διεξάγουν έρευνα απευθείας σε αυτήν. Η εμφάνιση των μη μεταβιβάσιμων [ψηφιακών στοιχείων «soulbound»](https://vitalik.ca/general/2022/01/26/soulbound.html) μπορεί επίσης να παίξει σημαντικό ρόλο στο DeSci επιτρέποντας άτομα να αποδείξουν την εμπειρία και τα διαπιστευτήριά τους που συνδέονται με τη διεύθυνσή τους Ethereum. - -### Αποθήκευση δεδομένων, πρόσβαση και αρχιτεκτονική {#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 υποστηρίζουν τα παραπάνω σενάρια και παρέχουν τη βάση για μια πραγματικά ανοιχτή επιστήμη, όπου οι ερευνητές μπορούν να δημιουργούν δημόσια αγαθά χωρίς άδειες πρόσβασης ή χρεώσεις. Οι λύσεις δημόσιων δεδομένων Web3 όπως το IPFS, το Arweave και το Filecoin έχουν βελτιστοποιηθεί για αποκέντρωση. Το dClimate, για παράδειγμα, παρέχει καθολική πρόσβαση σε δεδομένα για το κλίμα και τον καιρό, μεταξύ άλλων από μετεωρολογικούς σταθμούς και προγνωστικά κλιματικά μοντέλα. - -## Λάβετε μέρος {#get-involved} - -Εξερευνήστε τα έργα και εγγραφείτε στην κοινότητα DeSci. - -- [DeSci.Global: Γενικές εκδηλώσεις και ημερολόγιο συναντήσεων.](https://desci.global) -- [Η κρυπτοαλυσίδα για την επιστήμη Telegram.](https://t.me/BlockchainForScience) -- [Molecule: Παρέχετε και λάβετε χρηματοδότηση για τα ερευνητικά σας έργα.](https://discover.molecule.to/) -- [VitaDAO: Λάβετε χρηματοδότηση μέσω συμφωνιών έρευνας με χορηγία για έρευνα μακροζωίας.](https://www.vitadao.com/) -- [ResearchHub: Δημοσιεύστε μια επιστημονική έρευνα και συμμετάσχετε σε μια συζήτηση.](https://www.researchhub.com/) -- [LabDAO: fold a protein in-silico](https://alphafodl.vercel.app/) -- [dClimate API: Αναζήτηση δεδομένων για το κλίμα που συλλέγονται από μια αποκεντρωμένη κοινότητα.](https://api.dclimate.net/) -- [DeSci Foundation: DeSci δημιουργία εργαλείου δημοσίευσης.](https://descifoundation.org/) -- [DeSci.World: Σύντομη αγορά για να δουν οι χρήστες και να ασχοληθούν με την αποκεντρωμένη επιστήμη.](https://desci.world) -- [Πρωτόκολλο Fleming: Οικονομικά δεδομένα ανοιχτού κώδικα υποστηρίζοντας τη συλλογική βιοϊατρική έρευνα.](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: fold a protein in-silico](https://alphafodl.vercel.app/) -- [Bio.xyz: Λάβετε χρηματοδότηση για το έργο βιοτεχνολογίας DAO ή desci.](https://www.molecule.to/) -- [ResearchHub: Δημοσιεύστε μια επιστημονική έρευνα και συμμετάσχετε σε μια συζήτηση.](https://www.researchhub.com/) -- [VitaDAO: Λάβετε χρηματοδότηση μέσω συμφωνιών έρευνας με χορηγία για έρευνα μακροζωίας.](https://www.vitadao.com/) -- [Πρωτόκολλο Fleming: Οικονομικά δεδομένα ανοιχτού κώδικα υποστηρίζοντας τη συλλογική βιοϊατρική έρευνα.](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/) -- [Εργαστήρια DeSci](https://www.desci.com/) - -Χαιρετίζουμε τις προτάσεις νέων έργων για τη λίστα. Δείτε την [πολιτική καταχώρισης](/contributing/adding-desci-projects/) για να ξεκινήσετε! - -## Περισσότερες πληροφορίες {#further-reading} - -- [DeSci Wiki των Jocelynn Pearl και Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) -- [Ένας οδηγός για την αποκεντρωμένη βιοτεχνολογία από την Jocelynn Pearl για το μέλλον του a16z](https://future.a16z.com/a-guide-to-decentralized-biotech/) -- [Η περίπτωση για την DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) -- [Οδηγός για DeSci](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) -- [Δημιουργώντας έμπιστα συστήματα επιστήμης του Jon Starr](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) -- [Η εμφάνιση των βιοτεχνολογικών DAO](https://molecule.to/blog/the-emergence-of-biotech-daos) -- [Paul Kohlhaas - DeSci: Το μέλλον της αποκεντρωμένης επιστήμης (podcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) -- [Μια ενεργή οντολογία συμπερασμάτων για την αποκεντρωμένη επιστήμη: από την εντοπιζόμενη αισθησιοποίηση στα επιστημικά κοινά](https://zenodo.org/record/6320575) -- [DeSci: Το μέλλον της έρευνας από τον Samuel Akinosho.](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) -- [Χρηματοδότηση επιστήμης (Επίλογος: Η DeSci και οι νέες μεθόδοι κρύπτο) από την 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 Gray σχετικά με τη διασταύρωση της έρευνας μακροζωίας και των κρυπτονομισμάτων.](https://www.youtube.com/watch?v=x9TSJK1widA) -- [Η επιστημονική δημοσίευση είναι προβληματική. Μπορεί το Web3 να το διορθώσει;](https://www.youtube.com/watch?v=WkvzYgCvWj8) -- [Juan Benet - DeSci, Ανεξάρτητα εργαστήρια & η Επιστήμη των δεδομένων μεγάλης κλίμακας.](https://www.youtube.com/watch?v=zkXM9H90g_E) -- [Sebastian Brunemeier - Πώς η DeSci μπορεί να τροποποιήσει τη Βιοϊατρική έρευνα & τα Επιχειρηματικά κεφάλαια.](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/el/nft/index.md b/src/content/translations/el/nft/index.md deleted file mode 100644 index 5f51d368594..00000000000 --- a/src/content/translations/el/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Μη Εναλλάξιμα Κρυπτοπαραστατικά (NFT) -description: Μια επισκόπηση των NFT στο Ethereum -lang: el -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: Ένα λογότυπο Eth που προβάλλεται μέσω ολογράμματος. -summaryPoint1: Ένας τρόπος για να αντιπροσωπεύσετε οτιδήποτε μοναδικό ως περιουσιακό στοιχείο με βάση το Ethereum. -summaryPoint2: Τα NFT δίνουν περισσότερη δύναμη στους δημιουργούς περιεχομένου από ποτέ. -summaryPoint3: Υποστηρίζονται από έξυπνα συμβόλαια στο blockchain του Ethereum. ---- - -## Τι είναι τα NFT; {#what-are-nfts} - -Τα NFT είναι μοναδικά ψηφιακά στοιχεία. Κάθε NFT έχει διαφορετικές ιδιότητες (μη εναλλάξιμες) και είναι πραγματικά σπάνιο. Αυτό διαφέρει από ψηφιακά στοιχεία όπως τα ERC-20 όπου κάθε ψηφιακό στοιχείο σε ένα σύνολο είναι πανομοιότυπο και έχει τις ίδιες ιδιότητες («εναλλάξιμα»). Δε σας νοιάζει ποιο συγκεκριμένο χαρτονόμισμα δολαρίου έχετε στο πορτοφόλι σας, γιατί είναι όλα πανομοιότυπα και αξίζουν το ίδιο. Ωστόσο, σας _ενδιαφέρει_ ποιο συγκεκριμένο NFT κατέχετε, επειδή όλα έχουν ξεχωριστές ιδιότητες που τα διακρίνουν από τα άλλα ("μη εναλλάξιμα"). - -Η μοναδικότητα κάθε NFT επιτρέπει τη δημιουργία ψηφιακών αντικειμένων όπως η τέχνη, τα συλλεκτικά αντικείμενα ή ακόμα και τα ακίνητα, όπου ένα συγκεκριμένο και μοναδικό NFT αντιπροσωπεύει κάποιο συγκεκριμένο, μοναδικό και πραγματικό στον κόσμο ή ψηφιακό αντικείμενο. Η κυριότητα ενός ψηφιακού στοιχείου εξασφαλίζεται από το blockchain του Ethereum – κανείς δεν μπορεί να τροποποιήσει το αρχείο ιδιοκτησίας ή να αντιγράψει/επικολλήσει ένα νέο NFT με τα ίδια χαρακτηριστικά. - - - -## Το διαδίκτυο των περιουσιακών στοιχείων {#internet-of-assets} - -Τα NFT και το Ethereum λύνουν μερικά από τα προβλήματα που υπάρχουν σήμερα στο διαδίκτυο. Καθώς όλα γίνονται πιο ψηφιακά, υπάρχει ανάγκη να καθοριστούν οι ιδιότητες των φυσικών αντικειμένων, όπως η σπανιότητα, η μοναδικότητα και η απόδειξη ιδιοκτησίας. με τρόπο που δεν ελέγχεται από ένα κεντρικό οργανισμό. Για παράδειγμα, με τα NFT μπορείτε να κατέχετε ένα τραγούδι mp3 που δεν αφορά συγκεκριμένη εφαρμογή μουσικής μιας εταιρείας ή μπορείτε να κατέχετε ένα αναγνωριστικό μέσων κοινωνικής δικτύωσης που μπορείτε να πουλήσετε ή να ανταλλάξετε, αλλά δεν μπορεί να αφαιρεθεί αυθαίρετα από τον πάροχο της πλατφόρμας. - -Δείτε παρακάτω μια σύγκριση ενός διαδικτύου με NFT, σε σύγκριση με το διαδίκτυο που οι περισσότεροι από εμάς χρησιμοποιούμε μεχρι σήμερα... - -### Σύγκριση {#nft-comparison} - -| Το διαδίκτυο με NFT | Το σημερινό διαδίκτυο | -| ---------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Τα ψηφιακά στοιχεία ανήκουν σε εσάς! Μόνο εσείς μπορείτε να τα πουλήσετε ή να τα μετατρέψετε. | Ενοικιάζετε ένα περιουσιακό στοιχείο από κάποιον οργανισμό. | -| Τα NFT είναι ψηφιακά μοναδικά στοιχεία, κανένα NFT δεν είναι ίδιο με κάποιο άλλο. | Ένα αντίγραφο μιας οντότητας συχνά δεν μπορεί να εξακριβωθεί από το πρωτότυπο. | -| Η κυριότητα ενός NFT αποθηκεύεται στην κρυπτοαλυσίδα και μπορεί να το επαληθεύσει οποιοσδήποτε. | Τα αρχεία ιδιοκτησίας των ψηφιακών στοιχείων αποθηκεύονται σε διακομιστές που ελέγχονται από ιδρύματα – πρέπει να λάβετε γραπτή εγγύηση. | -| Τα NFT είναι έξυπνα συμβόλαια στο Ethereum. Αυτό σημαίνει ότι μπορούν εύκολα να χρησιμοποιηθούν σε άλλα έξυπνα συμβόλαια και εφαρμογές στο Ethereum! | Οι εταιρείες με ψηφιακά αντικείμενα απαιτούν συνήθως σύμφωνα με τους δικούς τους κανόνες. | -| Οι δημιουργοί περιεχομένου μπορούν να πωλούν την εργασία τους οπουδήποτε και να έχουν πρόσβαση στην παγκόσμια αγορά. | Οι δημιουργοί βασίζονται στην υποδομή και τη διανομή των πλατφορμών που κάνουν χρήση. Συχνά υπόκεινται σε όρους χρήσης και σε γεωγραφικούς περιορισμούς. | -| Οι δημιουργοί NFT μπορούν να διατηρήσουν τα δικαιώματα ιδιοκτησίας της δουλειάς τους και να προγραμματίσουν τα δικαιώματα στο συμβόλαιο NFT. | Πλατφόρμες, όπως οι υπηρεσίες ροής μουσικής, διατηρούν την πλειονότητα των κερδών από τις πωλήσεις τους. | - -## Πώς λειτουργούν τα NFT; {#how-nfts-work} - -Όπως κάθε ψηφιακό στοιχείο που εκδίδεται στο Ethereum, τα NFT εκδίδονται με έξυπνο συμβόλαιο. Το έξυπνο συμβόλαιο συμμορφώνεται με ένα από τα πολλά πρότυπα NFT (κοινώς ERC-721 ή ERC-1155) που ορίζουν ποιες λειτουργίες θα έχει το συμβόλαιο. Το συμβόλαιο μπορεί να δημιουργήσει («κοπή») NFT και να τα εκχωρήσει σε συγκεκριμένο ιδιοκτήτη. Η κυριότητα ορίζεται στο συμβόλαιο με την αντιστοίχιση συγκεκριμένων NFT σε συγκεκριμένες διευθύνσεις. Το NFT έχει ένα αναγνωριστικό και συνήθως μεταδεδομένα που σχετίζονται με αυτό που το κάνουν μοναδικό. - -Όταν κάποιος δημιουργεί ή κόβει ένα NFT, εκτελεί πραγματικά μια λειτουργία στο έξυπνο συμβόλαιο που εκχωρεί ένα συγκεκριμένο NFT στη διεύθυνσή του. Αυτές οι πληροφορίες αποθηκεύονται στο χώρο αποθήκευσης του συμβολαίου, το οποίο αποτελεί μέρος της κρυπτοαλυσίδας. Ο δημιουργός του συμβολαίου μπορεί να καταχωρήσει πρόσθετα στοιχεία στο συμβόλαιο, για παράδειγμα να περιορίσει τη συνολική προσφορά ή να ορίσει ένα ποσοστό κρατήσεων που πρέπει να καταβάλλεται στον δημιουργό κάθε φορά που μεταφέρεται ένα ψηφιακό στοιχείο. - -## Πού χρησιμοποιούνται τα NFT; {#nft-use-cases} - -Τα NFT χρησιμοποιούνται για πολλά πράγματα, όπως: - -- πιστοποιούν τη συμμετοχή σας σε μια εκδήλωση -- πιστοποιούν ότι ολοκληρώσατε ένα μάθημα -- την κατοχή αντικειμένων από παιχνίδια -- ψηφιακή τέχνη -- ψηφιοποίηση πραγματικών αντικειμένων -- πιστοποίηση της διαδικτυακής σας ταυτότητας -- πρόσβαση σε περιεχόμενο -- εισιτήρια -- αποκεντρωμένα ονόματα τομέα διαδικτύου -- υποθήκες σε DeFi - -Ίσως, είστε ένας καλλιτέχνης που θέλει να μοιραστεί τη δουλειά του χρησιμοποιώντας NFT, χωρίς να χάσετε τον έλεγχο και να θυσιάσετε τα κέρδη σας σε μεσάζοντες. Μπορείτε να δημιουργήσετε ένα νέο συμβόλαιο και να καθορίσετε τον αριθμό των NFT, τις ιδιότητές τους και έναν σύνδεσμο προς κάποιο συγκεκριμένο έργο τέχνης. Ως καλλιτέχνης, μπορείτε να προγραμματίσετε στο έξυπνο συμβόλαιο τα δικαιώματα που πρέπει να λάβετε (π.χ. να μεταφέρεται το 5% της τιμής πώλησης στον κάτοχο του συμβολαίου, κάθε φορά που μεταβιβάζεται ένα NFT). Μπορείτε επίσης να αποδείξετε πάντα ότι δημιουργήσατε τα NFT επειδή σας ανήκει το πορτοφόλι που δημιούργησε το συμβόλαιο. Οι αγοραστές σας μπορούν εύκολα να αποδείξουν ότι κατέχουν ένα αυθεντικό NFT από τη συλλογή σας, επειδή η διεύθυνση του πορτοφολιού τους σχετίζεται με ένα ψηφιακό στοιχείο από το έξυπνο συμβόλαιό σας. Μπορούν να το χρησιμοποιήσουν σε όλο το οικοσύστημα Ethereum, σίγουροι για την αυθεντικότητά του. - -Ή σκεφτείτε ένα εισιτήριο για ένα αθλητικό γεγονός. Ακριβώς όπως ένας διοργανωτής μιας εκδήλωσης μπορεί να επιλέξει πόσα εισιτήρια θα πουλήσει, ο δημιουργός ενός NFT μπορεί να αποφασίσει πόσα αντίγραφα θα υπάρχουν. Μερικές φορές είναι ακριβή αντίγραφα, όπως 5000 εισιτήρια γενικής εισόδου. Μερικές φορές δημιουργούνται αρκετά πολύ παρόμοια, αλλά το καθένα ελαφρώς διαφορετικό, όπως ένα εισιτήριο για μια προκαθορισμένη θέση. Μπορούν να αγοράζονται και να πωλούνται από χρήστη σε χρήστη χωρίς να πληρώνουν τα πωλητήρια εισιτηρίων και ο αγοραστής είναι πάντα με τη διασφάλιση της γνησιότητας του εισιτηρίου ελέγχοντας τη διεύθυνση του συμβολαίου. - -Στο ethereum.org, τα NFT χρησιμοποιούνται για να αποδείξουν τη συνεισφορά στο αποθετήριο GitHub ή ότι έχουν παρακολουθήσει συναντήσεις, ενώ έχουμε ακόμη και το δικό μας όνομα τομέα NFT. Εάν συμβάλλετε στο ethereum.org, μπορείτε να διεκδικήσετε ένα POAP NFT. Ορισμένες συναντήσεις για κρυπτονομίσματα έχουν χρησιμοποιήσει POAP ως εισιτήρια. [Περισσότερα για τον τρόπο συνεισφοράς](/contributing/#poap). - -![ethereum.org POAP](./poap.png) - -Αυτός ο ιστότοπος διαθέτει επίσης ένα εναλλακτικό όνομα τομέα που υποστηρίζεται από NFT, το **ethereum.eth**. Η διεύθυνση μας `.org` διαχειρίζεται κεντρικά από έναν πάροχο απόδοσης ονομάτων τομέα (DNS), ενώ το ethereum`.eth` έχει καταχωρηθεί στο Ethereum μέσω της Yπηρεσίας Oνοματοδοσίας του Ethereum (ENS). Είναι ιδιοκτησία μας και διαχειρίζεται από εμάς. [Ελέγξτε την εγγραφή μας ENS](https://app.ens.domains/name/ethereum.eth) - -[Περισσότερα για το EMS](https://app.ens.domains) - - - -### Ασφάλεια NFT {#nft-security} - -Η ασφάλεια του Ethereum προέρχεται από την απόδειξη συμμετοχής. Το σύστημα έχει σχεδιαστεί για να αποθαρρύνει οικονομικά τις κακόβουλες ενέργειες, καθιστώντας το Ethereum ανθεκτικό στις παραβιάσεις. Αυτό είναι που καθιστά δυνατή την ύπαρξη των NFT. Μόλις ολοκληρωθεί το μπλοκ που περιέχει τη συναλλαγή του NFT σας, θα κόστιζε σε έναν κακόβουλο εκατομμύρια ETH για να το τροποποιήσει. Όποιος εκτελεί λογισμικό Ethereum θα είναι αμέσως σε θέση να ανιχνεύσει κακόβουλη παραβίαση με ένα NFT, ο οποίος θα τιμωρείται οικονομικά και θα απομακρύνεται. - -Τα ζητήματα ασφαλείας που σχετίζονται με τα NFT συχνά σχετίζονται με απάτες, με τρωτά σημεία των έξυπνων συμβολαίων ή σφάλματα χρήστη (όπως ακούσια έκθεση των ιδιωτικών κλειδιών), καθιστώντας την καλή ασφάλεια του πορτοφολιού κρίσιμη για τους ιδιοκτήτες NFT. - - - Περισσότερα για την ασφάλεια - - -## Περισσότερες πληροφορίες {#further-reading} - -- [Οδηγόε για αρχάριους στα NFT](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, Ιανουάριος 2020_ -- [Ανιχνευτής EtherscanNFT](https://etherscan.io/nft-top-contracts) -- [Πρότυπο κρυπτονομισμάτων ERC-721](/developers/docs/standards/tokens/erc-721/) -- [Πρότυπο κρυπτονομισμάτων ERC-1155](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/el/refi/index.md b/src/content/translations/el/refi/index.md deleted file mode 100644 index 486aa2860f5..00000000000 --- a/src/content/translations/el/refi/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: Αναγεννητική Τραπεζική (ReFi) -description: Μια επισκόπηση της ReFi και οι περιπτώσεις χρήσης της. -lang: el -template: use-cases -emoji: ":recycle:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Ένα εναλλακτικό οικονομικό σύστημα που βασίζεται σε αναγεννητικές αρχές. -summaryPoint2: Μια προσπάθεια αξιοποίησης του Ethereum για την επίλυση κρίσεων συντονισμού σε παγκόσμιο επίπεδο, όπως η κλιματική αλλαγή. -summaryPoint3: Ένα εργαλείο δραστικής κλιμάκωσης περιουσιακών στοιχείων οικολογικού οφέλους, όπως πιστοποιημένες αποτυπώσεις άνθρακα. ---- - -## Τι είναι η ReFi; {#what-is-refi} - -Η **Αναγεννητική τραπεζική (ReFi)** είναι ένα σύνολο εργαλείων και ιδεών που βασίζονται πάνω σε blockchain, στοχεύοντας στη δημιουργία οικονομιών που αναγεννιούνται και όχι από εξόρυξη ή εκμετάλλευση. Τελικά, τα συστήματα εξόρυξης εξαντλούν τους διαθέσιμους πόρους και καταρρέουν. Χωρίς αναγεννητικούς μηχανισμούς, τους λείπει η ανθεκτικότητα. Η ReFi λειτουργεί με την υπόθεση ότι η δημιουργία νομισματικής αξίας πρέπει να αποσυνδεθεί από τη μη βιώσιμη εξόρυξη πόρων από τον πλανήτη και τις κοινότητές μας. - -Αντίθετα, η ReFi στοχεύει στην επίλυση περιβαλλοντικών, κοινοτικών ή κοινωνικών προβλημάτων δημιουργώντας κύκλους αναγέννησης. Αυτά τα συστήματα δημιουργούν αξία για τους συμμετέχοντες ενώ ταυτόχρονα ωφελούν τα οικοσυστήματα και τις κοινότητες. - -Ένα από τα θεμέλια της ReFi είναι η έννοια της αναγεννητικής οικονομίας που πρωτοπαρουσιάστηκε από τον John Fullerton του [Capital Institute](https://capitalinstitute.org). Πρότεινε οκτώ αλληλένδετες αρχές που αποτελούν τη βάση της συστημικής υγείας: - -![Οκτώ αλληλένδετες αρχές](../../assets/use-cases/refi-regenerative-economy-diagram.png) - -Τα έργα ReFi υλοποιούν αυτές τις αρχές χρησιμοποιώντας [έξυπνα συμβόλαια](/developers/docs/smart-contracts/) και [αποκεντρωμένη χρηματοδότηση (DeFi)](/defi/) για δίνουν κίνητρα για αναγεννητικές συμπεριφορές, π.χ. την αποκατάσταση των υποβαθμισμένων οικοσυστημάτων και τη διευκόλυνση της μεγάλης κλίμακας συνεργασίας σε παγκόσμια ζητήματα όπως η κλιματική αλλαγή και η απώλεια βιοποικιλότητας. - -Η ReFi επικαλύπτεται επίσης με το κίνημα [αποκεντρωμένης επιστήμης (DeSci)](/desci/), το οποίο χρησιμοποιεί το Ethereum ως πλατφόρμα για τη χρηματοδότηση, τη δημιουργία, την αναθεώρηση, την πίστωση, την αποθήκευση και τη διάδοση της επιστημονικής γνώσης. Τα εργαλεία DeSci θα μπορούσαν να γίνουν χρήσιμα για την ανάπτυξη επαληθεύσιμων προτύπων και πρακτικών για την εφαρμογή και την παρακολούθηση αναγεννητικών δραστηριοτήτων όπως η φύτευση δέντρων, η αφαίρεση πλαστικού από τον ωκεανό ή η αποκατάσταση ενός υποβαθμισμένου οικοσυστήματος. - -## Tokenization των πιστώσεων άνθρακα {#tokenization-of-carbon-credits} - -Η **[εθελοντική αγορά άνθρακα (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** είναι ένας μηχανισμός χρηματοδότησης έργων με επαληθευμένο θετικό αντίκτυπο στις εκπομπές άνθρακα, είτε μειώνοντας τις συνεχιζόμενες εκπομπές είτε αφαιρώντας τα αέρια του θερμοκηπίου που ήδη εκπέμπονται, από την ατμόσφαιρα. Αυτά τα έργα λαμβάνουν ένα ψηφιακό στοιχείο που ονομάζεται «πιστώσεις άνθρακα» αφού επαληθευτούν, το οποίο μπορούν να πουλήσουν σε άτομα και οργανισμούς που θέλουν να υποστηρίξουν τις δράσεις για το κλίμα. - -Εκτός από το VCM, υπάρχουν επίσης αρκετές κυβερνητικές αγορές άνθρακα («αγορές συμμόρφωσης») που στοχεύουν στον καθορισμό της τιμής άνθρακα μέσω νόμων ή κανονισμών σε μια συγκεκριμένη δικαιοδοσία (π.χ. χώρα ή περιοχή), ελέγχοντας την παροχή αδειών που πρέπει να διανέμονται. Οι αγορές συμμόρφωσης δίνουν κίνητρα στους ρυπαίνοντες εντός της δικαιοδοσίας τους να μειώσουν τις εκπομπές, αλλά δεν είναι σε θέση να αφαιρέσουν τα αέρια του θερμοκηπίου που έχουν ήδη αποδεσμευτεί. - -Παρά την ανάπτυξή του τις τελευταίες δεκαετίες, το VCM συνεχίζει να υποφέρει από διάφορα ζητήματα: - -1. Υψηλή κατακερματισμένη ρευστότητα -2. Αδιαφανείς μηχανισμοί συναλλαγών -3. Υψηλές κρατήσεις -4. Πολύ αργή ταχύτητα συναλλαγών -5. Έλλειψη επεκτασιμότητας - -Η μετάβαση του VCM στη νέα **ψηφιακή αγορά άνθρακα (DCM)** που βασίζεται σε blockchain μπορεί να είναι μια ευκαιρία για την αναβάθμιση της υπάρχουσας τεχνολογίας για την επικύρωση, τη συναλλαγή και την κατανάλωση πιστώσεων άνθρακα. Οι blockchain επιτρέπουν την πρόσβαση σε δημόσια επαληθεύσιμα δεδομένα, σε ένα ευρύ φάσμα χρηστών, αποφέροντας περισσότερη ρευστότητα. - -Τα έργα ReFi χρησιμοποιούν τεχνολογία blockchain για να εξαλείψουν πολλά από τα προβλήματα της παραδοσιακής αγοράς: - -- **Η ρευστότητα συγκεντρώνεται σε έναν μικρό αριθμό δεξαμενών ρευστότητας** που μπορούν να συναλλάσσονται ελεύθερα από οποιονδήποτε. Μεγάλοι οργανισμοί καθώς και μεμονωμένοι χρήστες μπορούν να χρησιμοποιήσουν αυτές τις δεξαμενές χωρίς αυτόματες αναζητήσεις πωλητών/αγοραστών, τέλη συμμετοχής ή προηγούμενη εγγραφή. -- **Όλες οι συναλλαγές καταγράφονται σε δημόσιες κρυπτοαλυσίδες**. Η διαδρομή που ακολουθεί κάθε πίστωση άνθρακα λόγω της εμπορικής δραστηριότητας είναι ανιχνεύσιμη για πάντα μόλις γίνει διαθέσιμη στο DCM. -- **Η ταχύτητα συναλλαγής είναι σχεδόν άμεση**. Η εξασφάλιση μεγάλων ποσών πιστώσεων άνθρακα μέσω των αγορών παλαιού τύπου, μπορεί να διαρκέσει ημέρες ή εβδομάδες, αλλά αυτό μπορεί να επιτευχθεί σε λίγα δευτερόλεπτα με το DCM. -- **Η εμπορική δραστηριότητα πραγματοποιείται χωρίς μεσάζοντες**, οι οποίοι χρεώνουν υψηλές προμήθειες. Οι ψηφιακές πιστώσεις άνθρακα αντιπροσωπεύουν το [62% της βελτίωσης κόστους σε σύγκριση με τις αντίστοιχες παραδοσιακές πιστώσεις](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne), σύμφωνα με τα στοιχεία μιας εταιρείας ανάλυσης. -- **Το DCM είναι επεκτάσιμο** και μπορεί να καλύψει τις απαιτήσεις ιδιωτών και πολυεθνικών εταιρειών. - -### Βασικά στοιχεία του DCM {#key-components-dcm} - -Τέσσερα κύρια στοιχεία συνθέτουν το τρέχον τοπίο του DCM: - -1. Μητρώα όπως το [Verra](https://verra.org/project/vcs-program/registry-system/) και το [Gold Standard](https://www.goldstandard.org/) επιβεβαιώνουν ότι τα έργα που δημιουργούν πιστώσεις άνθρακα είναι αξιόπιστα. Διαχειρίζονται επίσης τις βάσεις δεδομένων από τις οποίες προέρχονται οι ψηφιακές πιστώσεις άνθρακα και μπορούν να μεταφερθούν ή να χρησιμοποιηθούν (αποσύρονται). - -Υπάρχει ένα νέο κύμα καινοτόμων έργων που χτίζονται σε blockchain που επιχειρούν να διαταράξουν τους κατεστημένους φορείς σε αυτόν τον τομέα. - -2. Γέφυρες άνθρακα, δηλαδή tokenizer, παρέχουν τεχνολογία για την αναπαράσταση ή τη μεταφορά πιστώσεων άνθρακα από παραδοσιακά μητρώα στο DCM. Αξιοσημείωτα παραδείγματα περιλαμβάνουν το [Πρωτόκολλο Toucan](https://toucan.earth/), [C3](https://c3.app/) και το [Moss.Earth](https://moss.earth/). -3. Οι ολοκληρωμένες υπηρεσίες προσφέρουν πιστώσεις αποφυγής ή/και αφαίρεσης άνθρακα στους τελικούς χρήστες, ώστε να μπορούν να διεκδικήσουν το περιβαλλοντικό όφελος μιας πίστωσης και να μοιραστούν την υποστήριξή τους στη δράση για το κλίμα με τον κόσμο. - -Ορισμένα, όπως το [Klima Infinity](https://www.klimadao.finance/infinity) και το [Senken](https://senken.io/) προσφέρουν μεγάλη ποικιλία έργων που αναπτύχθηκαν από τρίτους και εκδόθηκαν σύμφωνα με καθιερωμένα πρότυπα όπως το Verra και άλλα όπως το [Nori](https://nori.com/) προσφέρουν μόνο συγκεκριμένα έργα που έχουν αναπτυχθεί βάσει του δικού τους προτύπου πίστωσης άνθρακα, το οποίο εκδίδουν και για τα οποία έχουν τη δική τους αποκλειστική αγορά. - -4. Τα θεμέλια και οι υποδομές που διευκολύνουν την κλιμάκωση του αντίκτυπου και της αποτελεσματικότητας ολόκληρης της αλυσίδας εφοδιασμού της αγοράς άνθρακα. Το [KlimaDAO](http://klimadao.finance/) παρέχει ρευστότητα ως δημόσιο αγαθό (επιτρέποντας σε οποιονδήποτε να αγοράσει ή να πουλήσει πιστώσεις άνθρακα σε διαφανή τιμή), παρέχει κίνητρα για αυξημένη απόδοση των αγορών άνθρακα και συνταξιοδοτήσεις ως ανταμοιβή και παρέχει φιλικά προς τον χρήστη διαλειτουργικά εργαλεία για πρόσβαση σε δεδομένα, καθώς και για την απόκτηση και την απόσυρση μιας μεγάλης ποικιλίας πιστώσεων άνθρακα. - -## Η ReFi πέρα από τις αγορές άνθρακα {#refi-beyond} - -Αν και επί του παρόντος δίνεται μεγάλη έμφαση στις αγορές άνθρακα γενικά και στη μετάβαση του VCM στο DCM ειδικότερα εντός του χώρου, ο όρος «ReFi» δεν περιορίζεται αυστηρά στον άνθρακα. Άλλα περιβαλλοντικά πλεονεκτήματα πέρα από τις πιστώσεις άνθρακα μπορούν να αναπτυχθούν και να αναγνωριστούν, πράγμα που σημαίνει ότι άλλες αρνητικές εξωτερικές επιδράσεις μπορούν επίσης να αποτιμηθούν στα βασικά επίπεδα των μελλοντικών οικονομικών συστημάτων. Επιπλέον, η αναγεννητική πτυχή αυτού του οικονομικού μοντέλου μπορεί να εφαρμοστεί σε άλλους τομείς, όπως η χρηματοδότηση δημόσιων αγαθών μέσω τετραγωνικών πλατφορμών χρηματοδότησης όπως το [Gitcoin](https://gitcoin.co/). Οι οργανισμοί που βασίζονται στην ιδέα της ανοιχτής συμμετοχής και της δίκαιης κατανομής των πόρων δίνουν τη δυνατότητα σε όλους να διοχετεύουν χρήματα σε έργα λογισμικού ανοιχτού κώδικα, καθώς και σε εκπαιδευτικά, περιβαλλοντικά και κοινοτικά έργα. - -Μετατοπίζοντας την κατεύθυνση του κεφαλαίου μακριά από τις εξορυκτικές πρακτικές προς μια αναγεννητική ροή, τα έργα και οι εταιρείες που παρέχουν κοινωνικά, περιβαλλοντικά ή κοινοτικά οφέλη και που ενδέχεται να αποτύχουν τη χρηματοδότηση στην παραδοσιακή χρηματοδότηση, μπορούν να απογειωθούν και να δημιουργήσουν θετικές εξωτερικές επιδράσεις για την κοινωνία πολύ πιο γρήγορα και εύκολα. Η μετάβαση σε αυτό το μοντέλο χρηματοδότησης ανοίγει επίσης την πόρτα σε πολύ πιο περιεκτικά οικονομικά συστήματα, όπου άτομα όλων των δημογραφικών ομάδων μπορούν να γίνουν ενεργοί συμμετέχοντες και όχι απλώς παθητικοί παρατηρητές. Το ReFi προσφέρει ένα όραμα του Ethereum ως μηχανισμού συντονισμού δράσης στις υπαρξιακές προκλήσεις που αντιμετωπίζει το είδος μας και όλη η ζωή στον πλανήτη μας, ως το βασικό στρώμα ενός νέου οικονομικού παραδείγματος, που επιτρέπει ένα πιο περιεκτικό και βιώσιμο μέλλον για τους επόμενους αιώνες. - -## Διαβάστε περισσότερα για τη ReFi - -- [Μια επισκόπηση υψηλού επιπέδου των νομισμάτων άνθρακα και της θέσης τους στην οικονομία](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) -- [Το Υπουργείο για το Μέλλον, ένα μυθιστόρημα που παρουσιάζει το ρόλο ενός νομίσματος που υποστηρίζεται από άνθρακα στην καταπολέμηση της κλιματικής αλλαγής](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) -- [Λεπτομερής αναφορά από την Taskforce for Scaling Voluntary Markets Carbon](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) -- [Καταχώρηση στο γλωσσάρι του CoinMarketCap του Kevin Owocki και του Evan Miyazono στο ReFi](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/el/roadmap/beacon-chain/index.md b/src/content/translations/el/roadmap/beacon-chain/index.md deleted file mode 100644 index a9215b76a75..00000000000 --- a/src/content/translations/el/roadmap/beacon-chain/index.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: Η κύρια αλυσίδα (Beacon Chain) -description: Μάθετε για το beacon chain - την πρώτη σημαντική αναβάθμιση Eth2 σε Ethereum. -lang: el -template: upgrade -image: ../../../../../assets/upgrades/core.png -summaryPoint1: Η εφαρμογή της κύριας αλυσίδας δεν αλλάζει τίποτα για το Ethereum όπως το χρησιμοποιούμε μέχρι σήμερα -summaryPoint2: Θα κατευθύνει το δίκτυο -summaryPoint3: Θα προσθέσει τα αποδεικτικά επεξεργασίας (proof-of-stake) στο οικοσύστημα του Ethereum -summaryPoint4: Μπορεί να το γνωρίζετε αυτό ως "Φάση 0" σε τεχνικούς όρους ---- - - - Η κύρια αλυσίδα ανακοινώθηκε στις 1 Δεκεμβρίου το μεσημέρι UTC. Για να μάθετε περισσότερα, εξερευνήστε τα δεδομένα. Αν θέλετε να βοηθήσετε στην επικύρωση της αλυσίδας "chain", μπορείτε να δεσμεύσετε (stake) τα ETH σας. - - -## Τι ακριβώς κάνει η κύρια αλυσίδα; {#what-does-the-beacon-chain-do} - -Η κύρια αλυσίδα θα διεξάγει ή θα συντονίζει το διευρυμένο δίκτυο των [shards](/roadmap/danksharding/) και των [stakers](/staking/). Αλλά δεν θα είναι όπως το σημερινό [κεντρικό δίκτυο του Ethereum](/glossary/#mainnet). Δεν μπορεί να χειριστεί λογαριασμούς ή έξυπνα συμβόλαια. - -Ο ρόλος της κύρια αλυσίδας θα αλλάξει με την πάροδο του χρόνου, αλλά είναι ένα θεμελιώδες συστατικό για [ένα ασφαλές, βιώσιμο και κλιμακούμενο Ethereum προς το οποίο εργαζόμαστε](/roadmap/vision/). - -## Χαρακτηριστικά της κύριας αλυσίδας {#beacon-chain-features} - -### Παρουσιάζοντας το staking {#introducing-staking} - -Η κύρια αλυσίδα θα εισαγάγει το [proof-of-stake](/developers/docs/consensus-mechanisms/pos/) στο Ethereum. Ένα νέο τρόπο για να σας βοηθήσει να διατηρήσετε το Ethereum ασφαλές. Σκεφτείτε το σαν δημόσιο αγαθό που θα κάνει το Ethereum πιο υγιές και θα σας αποδώσει περισσότερο ETH κατά την παραγωγή του. Στην πράξη, θα σας εμπλέξει στην αποθήκευση (staking) ETH προκειμένου να ενεργοποιήσετε το λογισμικό επικύρωσης. Ως επικυρωτής θα επεξεργάζεστε συναλλαγές και θα δημιουργείτε νέα μπλοκ στην αλυσίδα (chain). - -Το Staking (αποθήκευση) και η λειτουργία σας ως επικυρωτής, είναι ευκολότερη από την [εξόρυξη](/developers/docs/mining/) (πώς είναι το δίκτυο ασφαλισμένο επί του παρόντος). Με την ελπίδα να βοηθήσει το Ethereum να γίνει πιο ασφαλές μακροπρόθεσμα. Όσο περισσότεροι άνθρωποι συμμετέχουν στο δίκτυο, τόσο πιο αποκεντρωμένο και ασφαλές από μια επίθεση θα μπορέσει να γίνει. - - -Αν ενδιαφέρεστε να γίνετε επικυρωτής και να βοηθήσετε στην ασφάλιση του Beacon Chain, μάθετε περισσότερα για το staking. - - -Αυτή είναι επίσης μια σημαντική αλλαγή για τη δεύτερη αναβάθμιση Eth2: [shard chains](/roadmap/danksharding/). - -### Ρύθμιση για τις shard chains {#setting-up-for-shard-chains} - -Οι shard chains θα είναι η δεύτερη αναβάθμιση του Eth2. Θα αυξήσουν τη χωρητικότητα του δικτύου και θα βελτιώσουν την ταχύτητα των συναλλαγών επεκτείνοντας το δίκτυο σε 64 blockchains. Η κύρια αλυσίδα είναι το πρώτο σημαντικό βήμα για την εισαγωγή των shard chains, επειδή απαιτούν το staking για να λειτουργήσουν με ασφάλεια. - -Τελικά η κύρια αλυσίδα θα είναι επίσης υπεύθυνη για την τυχαία ανάθεση στους stakers, την επικύρωση των shard chains. Αυτό είναι το κλειδί για να καταστήσει δύσκολο στους stakers να συμπράξουν και να αναλάβουν ένα shard. Το οποίο σημαίνει ότι έχουν [πιθανότητες λιγότερο από ένα 1 στο τρισεκατομμύριο](https://medium.com/@chihchengliang/minimum-committee-size-explained-67047111fa20). - -## Σχέση μεταξύ των αναβαθμίσεων {#relationship-between-upgrades} - -Οι αναβαθμίσεις του Eth2 είναι με κάποιο τρόπο αλληλένδετες. Ας ανακεφαλαιώσουμε λοιπόν πώς η κύρια αλυσίδα επηρεάζει τις άλλες αναβαθμίσεις. - -### Το κεντρικό δίκτυο και η κύρια αλυσίδα {#mainnet-and-beacon-chain} - -Η κύρια αλυσίδα αρχικά, θα υπάρχει ξεχωριστά στο κεντρικό δίκτυο του Ethereum που χρησιμοποιούμε σήμερα. Τελικά όμως θα συνδεθούν. Το σχέδιο είναι να "ενσωματωθεί" το κεντρικό δίκτυο στο σύστημα proof-of-stake που ελέγχεται και συντονίζεται από την κύρια αλυσίδα. - -Η ενσωμάτωση - -### Τα Shards και η κύρια αλυσίδα {#shards-and-beacon-chain} - -Οι Shard chains μπορούν να εισέλθουν με ασφάλεια στο οικοσύστημα του Ethereum μόνο με έναν μηχανισμό επαλήθευσης (proof-of-stake). Η κύρια αλυσίδα θα εισαγάγει το staking, ανοίγοντας το δρόμο για την αναβάθμιση της shard chain. - -Shard chains - - - -## Αλληλεπίδραση με την κύρια αλυσίδα {#interact-with-beacon-chain} - - diff --git a/src/content/translations/el/roadmap/merge/index.md b/src/content/translations/el/roadmap/merge/index.md deleted file mode 100644 index a330f80ddb5..00000000000 --- a/src/content/translations/el/roadmap/merge/index.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Ενσωμάτωση του κεντρικού δικτύου με το Eth2 -description: Μάθετε για την ενσωμάτωση - όταν το κεντρικό δίκτυο του Ethereum θα συνδεθεί με το Beacon Chain, το συντονισμένο σύστημα proof-of-stake. -lang: el -template: upgrade -image: ../../../../../assets/upgrades/merge.png -summaryPoint1: Τελικά το τρέχον κεντρικό δίκτυο του Ethereum θα "ενσωματωθεί" με τις υπόλοιπες αναβαθμίσεις του Eth2. -summaryPoint2: Η ενσωμάτωση αυτή θα συγχωνεύσει το κεντρικό δίκτυο του "Eth1" με το beacon chain του Eth2 και το σύστημα διαλογής (sharding system). -summaryPoint3: Αυτό θα σηματοδοτήσει το τέλος του proof-of-work για το Ethereum και την πλήρη μετάβαση στο proof of stake. -summaryPoint4: Μπορεί να το γνωρίζετε αυτό ως "Φάση 1.5" με τεχνικούς όρους. ---- - - - Με αυτή την αναβάθμιση θα ακολουθήσει η άφιξη των shard chains. Αλλά είναι η στιγμή που το όραμα του Eth2 θα υλοποιηθεί πλήρως – με μεγαλύτερη επεκτασιμότητα, ασφάλεια και επιβιωσιμότητα με την υποστήριξη ολόκληρου του δικτύου. - - -## Ποια είναι η ενσωμάτωση; {#what-is-the-docking} - -Είναι σημαντικό να θυμόμαστε ότι αρχικά, οι υπόλοιπες αναβαθμίσεις του Eth2 αποστέλλονται ξεχωριστά από το [κεντρικό δίκτυο](/glossary/#mainnet) - την αλυσίδα (chain) που χρησιμοποιούμε σήμερα. Το κεντρικό δίκτυο του Ethereum θα συνεχίσει να ασφαλίζεται με το λεγόμενο [proof-of-work](/developers/docs/consensus-mechanisms/pow/), ακόμη και όταν [η Beacon Chain](/roadmap/beacon-chain/) και οι [shard chains](/roadmap/danksharding/) θα εκτελούνται παράλληλα χρησιμοποιώντας το [proof of stake](/developers/docs/consensus-mechanisms/pos/). Η ενσωμάτωση θα πραγματοποιηθεί όταν αυτά τα δύο συστήματα θα συγχωνευτούν. - -Φανταστείτε το Ethereum να είναι ένα διαστημόπλοιο που δεν είναι αρκετά έτοιμο για ένα διαστρικό ταξίδι του. Με την Beacon Chain και τις shard chains η κοινότητα έχει χτίσει ένα νέο κινητήρα και ένα ποιο ανθεκτικό κύτος. Όταν έρθει η ώρα, το διαστημόπλοιο θα προσγειωθεί με αυτό το νέο σύστημα, έτσι ώστε να μπορεί να καταστεί έτοιμο να τεθεί σε σοβαρά έτη φωτός και να επικρατήσει στο σύμπαν. - -## Ενσωμάτωση κεντρικού δικτύου {#docking-mainnet} - -Όταν είναι έτοιμο, το κεντρικό δίκτυο του Ethereum θα "συνδεθεί" με την Beacon Chain και θα γίνει το δικό του σύστημα που θα χρησιμοποιεί το proof-of-stake αντί για το [proof of work](/developers/docs/consensus-mechanisms/pow/). - -Το Κεντρικό δίκτυο θα φέρει τη δυνατότητα να διαχειρίζεται Smart Contract με το σύστημα proof-of-stake, συν το πλήρες ιστορικό και την τρέχουσα κατάσταση του Ethereum, για να διασφαλιστεί ότι η μετάβαση θα είναι ομαλή για όλους τους κατόχους και τους χρήστες του ETH. - -## Μετά την ενσωμάτωση {#after-the-docking} - -Αυτό θα σηματοδοτήσει το τέλος του proof-of-work για το Ethereum και θα ξεκινήσει την εποχή ενός πιο βιώσιμου, φιλικού προς το περιβάλλον Ethereum. Σε αυτό το σημείο το Ethereum θα έχει την κλίμακα, την ασφάλεια και τη βιωσιμότητα που περιγράφεται στο [όραμα Eth2](/roadmap/vision/). - -## Σχέση μεταξύ των αναβαθμίσεων {#relationship-between-upgrades} - -Οι αναβαθμίσεις του Eth2 είναι με κάποιο τρόπο αλληλένδετες. Ας ανακεφαλαιώσουμε λοιπόν πώς η ενσωμάτωση επηρεάζει τις υπόλοιπες αναβαθμίσεις. - -### Η ενσωμάτωση και η κύρια αλυσίδα {#docking-and-beacon-chain} - -Μόλις συμβεί η ενσωμάτωση, οι stakers θα αφοσιωθούν στην επικύρωση του κεντρικού δικτύου του Ethereum. Ακριβώς όπως και με τις shard chains. [Η εξόρυξη](/developers/docs/consensus-mechanisms/pow/mining/) δεν θα απαιτείται πλέον και έτσι οι εξορύκτες πιθανότατα να επενδύσουν τα κέρδη τους στο νέο σύστημα proof-of-stake. - -Το Beacon Chain - -### Η ενσωμάτωση και οι shard chains {#docking-and-shard-chains} - -Με το κεντρικό δίκτυο να γίνεται ένα shard, η επιτυχής εφαρμογή των shard chains είναι κρίσιμη για αυτή την αναβάθμιση. Είναι πιθανό η μετάβαση να διαδραματίσει σημαντικό ρόλο βοηθώντας την κοινότητα να αποφασίσει αν θα ξεκινήσει μια δεύτερη αναβάθμιση για το sharding. Αυτή η αναβάθμιση θα κάνει τα άλλα shards όπως το Mainnet: θα είναι σε θέση να χειριστεί συναλλαγές και Smart Contract και όχι μόνο να παρέχει περισσότερα δεδομένα.Shard chains - -Shard chains diff --git a/src/content/translations/el/smart-contracts/index.md b/src/content/translations/el/smart-contracts/index.md deleted file mode 100644 index 505238b28a0..00000000000 --- a/src/content/translations/el/smart-contracts/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Έξυπνα συμβόλαια -description: Μια μη τεχνική εισαγωγή στα έξυπνα συμβόλαια -lang: el ---- - -# Εισαγωγή στα έξυπνα συμβόλαια {#introduction-to-smart-contracts} - -Τα έξυπνα συμβόλαια αποτελούν τα θεμελιώδη δομικά στοιχεία του επιπέδου εφαρμογών του Ethereum. Είναι προγράμματα υπολογιστών που είναι αποθηκευμένα στην κρυπτοαλυσίδα, τα οποία ακολουθούν τη λογική «αν συμβεί αυτό, τότε αυτό» και είναι εγγυημένα ότι εκτελούνται σύμφωνα με τους κανόνες που ορίζονται από τον κώδικά του, ο οποίος δεν μπορεί να αλλάξει από τη στιγμή που θα δημιουργηθεί. - -Ο Nick Szabo επινόησε τον όρο «έξυπνο συμβόλαιο». Το 1994, έγραψε [μια εισαγωγή σε αυτή την έννοια](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html) και το 1996 [μια ερεύνα για το τι θα μπορούσαν να κάνουν τα έξυπνα συμβόλαια](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). - -Ο Szabo οραματίστηκε μια ψηφιακή αγορά όπου οι αυτόματες και κρυπτογραφικά ασφαλείς διαδικασίες επιτρέπουν τις συναλλαγές και τις επιχειρηματικές λειτουργίες να πραγματοποιούνται χωρίς την ανάγκη αξιόπιστων μεσαζόντων. Τα έξυπνα συμβόλαια στο Ethereum κάνουν το όραμα πράξη. - -### Εμπιστοσύνη στα συμβατικά συμβόλαια {#trust-and-contracts} - -Ένα από τα μεγαλύτερα προβλήματα με ένα παραδοσιακό συμβόλαιο, είναι η ανάγκη ύπαρξης αξιόπιστων ατόμων για ορθά αποτελέσματα. - -Δείτε ένα παράδειγμα: - -Η Alice και ο Bob θα κάνουν έναν αγώνα ποδηλάτου. Ας πούμε ότι η Alice στοιχηματίζει με τον Bob $10 πως θα κερδίσει τον αγώνα. Ο Bob είναι σίγουρος ότι θα είναι νικητής και συμφωνεί με αυτό το στοίχημα. Στο τέλος, η Alice τελειώνει τον αγώνα πολύ μπροστά από τον Μπομπ και είναι η ξεκάθαρη νικήτρια. Αλλά ο Bob αρνείται να πληρώσει το στοίχημα, ισχυριζόμενος ότι η Alice έκλεψε στον αγώνα. - -Αυτό το χαζό παράδειγμα καταδεικνύει το πρόβλημα με οποιοδήποτε μη έξυπνο συμβόλαιο. Ακόμη και αν πληρούνται οι προϋποθέσεις της συμφωνίας (δηλ. είσαστε ο νικητής του αγώνα), θα πρέπει να εμπιστευθείτε ένα άλλο άτομο για να εκπληρώσει τη συμφωνία (δηλ. την πληρωμή του στοιχήματος). - -### Ένας ψηφιακός αυτόματος πωλητής {#vending-machine} - -Ένα απλό παράδειγμα έξυπνου συμβολαίου είναι μια μηχανή αυτόματης πώλησης, η οποία λειτουργεί κάπως παρόμοια με ένα έξυπνο συμβόλαιο όπου συγκεκριμένες ενέργειες εγγυώνται προκαθορισμένα αποτελέσματα. - -- Επιλέγετε ένα προϊόν -- Ο αυτόματος πωλητής εμφανίζει την τιμή -- Πληρώνετε το τίμημα -- Ο αυτόματος πωλητής επαληθεύει ότι πληρώσατε το σωστό ποσό -- Ο αυτόματος πωλητής σας δίνει το αντικείμενο σας - -Ο αυτόματος πωλητής θα σας δώσει το προϊόν σας μόνο όταν θα πληρούνται όλες οι προϋποθέσεις. Αν δεν επιλέξετε ένα προϊόν ή δεν εισάγετε αρκετά χρήματα, ο αυτόματος πωλητής δε θα σας δώσει το προϊόν. - -### Αυτόματη εκτέλεση {#automation} - -Το κύριο πλεονέκτημα ενός έξυπνου συμβολαίου είναι ότι εκτελεί πάντοτε τον σαφή κώδικα όταν πληρούνται συγκεκριμένες προϋποθέσεις. Δε χρειάζεται να περιμένουμε κάποιον να ερμηνεύσει ή να διαπραγματευτεί το αποτέλεσμα. Με αυτό τον τρόπο αφαιρείται η ανάγκη για αξιόπιστους μεσάζοντες. - -Για παράδειγμα, θα μπορούσατε να συντάξετε ένα έξυπνο συμβόλαιο που κρατά κεφάλαια αποταμίευσης για ένα παιδί, επιτρέποντάς το να αποσύρει αυτά τα κεφάλαια μετά από μια συγκεκριμένη ημερομηνία. Εάν προσπαθήσει να κάνει ανάληψη πριν από αυτή την ημερομηνία, το έξυπνο συμβόλαιο δε θα εκτελεστεί. Διαφορετικά, θα μπορούσατε να συντάξετε ένα συμβόλαιο που σας δίνει αυτόματα μια ψηφιακή έκδοση του τίτλου ενός αυτοκινήτου όταν πληρώσετε τον αντιπρόσωπο. - -### Προβλέψιμα αποτελέσματα {#predictability} - -Τα παραδοσιακά συμβόλαια είναι διφορούμενα επειδή βασίζονται στον άνθρωπο για την ερμηνεία και την εφαρμογή τους. Για παράδειγμα, δύο δικαστές πιθανός να ερμηνεύσουν διαφορετικά ένα συμβόλαιο, γεγονός που θα μπορούσε να οδηγήσει σε ασυνεπείς αποφάσεις και άνισα αποτελέσματα. Τα έξυπνα συμβόλαια αφαιρούν αυτή την πιθανότητα. Αντιθέτως, τα έξυπνα συμβόλαια εκτελούνται ακριβώς με βάση τους όρους που αναγράφονται στον κώδικα της σύμβασης. Αυτή η ακρίβεια σημαίνει ότι, δεδομένων των ίδιων περιστάσεων, ένα έξυπνο συμβόλαιο θα αποδώσει το ίδιο αποτέλεσμα. - -### Δημόσια εγγραφή {#public-record} - -Τα έξυπνα συμβόλαια είναι χρήσιμα στον έλεγχο και παρακολούθηση. Δεδομένου ότι τα έξυπνα συμβόλαια του Ethereum βρίσκονται σε δημόσια κρυπτοαλυσίδα, ο καθένας μπορεί να παρακολουθήσει άμεσα τις μεταφορές περιουσιακών στοιχείων και άλλες σχετικές πληροφορίες. Για παράδειγμα, μπορείτε να ελέγξετε ότι κάποιος έστειλε χρήματα στη διεύθυνσή σας. - -### Προστασία ιδιωτικότητας {#privacy-protection} - -Τα έξυπνα συμβόλαια προστατεύσουν επίσης το απόρρητό σας. Δεδομένου ότι το Ethereum είναι ένα δίκτυο με ψευδώνυμα (οι συναλλαγές σας συνδέονται δημοσίως με μια μοναδική κρυπτογραφημένη διεύθυνση και όχι με την ταυτότητά σας), μπορείτε να προστατεύσετε το απόρρητο σας από παρατηρητές. - -### Ορατοί όροι {#visible-terms} - -Τέλος, όπως τα παραδοσιακά συμβόλαια, μπορείτε να ελέγξετε τι υπάρχει σε ένα έξυπνο συμβόλαιο πριν το υπογράψετε (ή να το χειριστείτε διαφορετικά). Η διαφάνεια ενός έξυπνου συμβολαίου εγγυάται ότι ο καθένας μπορεί να το ελέγξει. - -## Χρήσεις ενός έξυπνου συμβολαίου {#use-cases} - -Τα έξυπνα συμβόλαια μπορούν να κάνουν ουσιαστικά οτιδήποτε μπορούν να κάνουν τα προγράμματα υπολογιστών. - -Μπορούν να εκτελέσουν υπολογισμούς, να δημιουργήσουν ένα νόμισμα, να αποθηκεύσουν δεδομένα, να δημιουργήσουν NFT, να επικοινωνήσουν, ακόμη και να δημιουργήσουν γραφικά. Δείτε μερικά δημοφιλή, αληθινά παραδείγματα: - -- [Κρυπτονομίσματα σταθερής αξίας](/stablecoins/) -- [Δημιουργία και διανομή μοναδικών ψηφιακών περιουσιακών στοιχείων](/nft/) -- [Ένα αυτόματο, ανοικτό ανταλλακτήριο νομισμάτων](/get-eth/#dex) -- [Αποκεντρωμένα παιχνίδια](/dapps/?category=gaming) -- [Μια πολιτική ασφάλισης που πληρώνει αυτόματα](https://etherisc.com/) -- [Ένα πρότυπο που επιτρέπει στους ανθρώπους να δημιουργήσουν προσαρμοσμένα και διαλειτουργικά νομίσματα](/developers/docs/standards/tokens/) - -## Περισσότερα από έναν εικονικό μαθητή; {#visual-learner} - -Δείτε τη Finematics να εξηγεί τα έξυπνα συμβόλαια: - - - -## Περισσότερες πληροφορίες {#further-reading} - -- [Πώς θα αλλάξουν τον κόσμο τα έξυπνα συμβόλαια](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [Έξυπνα Συμβόλαια: Η τεχνολογία blockchain που θα αντικαταστήσει τους δικηγόρους](https://blockgeeks.com/guides/smart-contracts/) -- [Έξυπνες συμβόλαια για προγραμματιστές](/developers/docs/smart-contracts/) -- [Μάθετε να συντάσσετε έξυπνα συμβόλαια](/developers/learning-tools/) -- [Mastering Ethereum - Τι είναι ένα έξυπνο συμβόλαιο;](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/src/content/translations/el/social-networks/index.md b/src/content/translations/el/social-networks/index.md deleted file mode 100644 index 6f4eab9508f..00000000000 --- a/src/content/translations/el/social-networks/index.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: Αποκεντρωμένα κοινωνικά δίκτυα -description: Μια επισκόπηση των αποκεντρωμένων κοινωνικών δικτύων στο Ethereum -lang: el -template: use-cases -emoji: ":mega:" -sidebarDepth: 2 -image: ../../../../assets/ethereum-learn.png -summaryPoint1: Πλατφόρμες βασισμένες στο Blockchain για κοινωνική αλληλεπίδραση, δημιουργία και διανομή περιεχομένου. -summaryPoint2: Τα αποκεντρωμένα κοινωνικά δίκτυα μέσων ενημέρωσης, προστατεύουν την ιδιωτικότητα των χρηστών και ενισχύουν την ασφάλεια των δεδομένων. -summaryPoint3: Τα κρυπτονομίσματα και τα NFT δημιουργούν νέους τρόπους δημιουργίας κέρδους από περιεχόμενο. ---- - -Τα κοινωνικά δίκτυα έχουν τεράστιο ρόλο στις καθημερινές μας επικοινωνίες και αλληλεπιδράσεις. Ωστόσο, ο κεντρικός έλεγχος αυτών των πλατφορμών έχει δημιουργήσει πολλά προβλήματα: παραβιάσεις δεδομένων, διακοπές του διακομιστή, de-platforming, λογοκρισία και παραβιάσεις των προσωπικών δεδομένων είναι μερικές από τις συνέπειες που τα μέσα κοινωνικής δικτύωσης κάνουν συχνά. Για την καταπολέμηση αυτών των θεμάτων, οι προγραμματιστές φτιάχνουν κοινωνικά δίκτυα στο Ethereum. Τα αποκεντρωμένα κοινωνικά δίκτυα μπορούν να διορθώσουν αρκετά από τα προβλήματα των παραδοσιακών πλατφορμών κοινωνικής δικτύωσης και να βελτιώσουν τη συνολική εμπειρία των χρηστών. - -## Αποκεντρωμένα κοινωνικά δίκτυα {#what-are-decentralized-social-networks} - -Τα αποκεντρωμένα κοινωνικά δίκτυα είναι πλατφόρμες βασισμένες στο blockchain που επιτρέπουν στους χρήστες να ανταλλάσσουν πληροφορίες, καθώς και να δημοσιεύουν και να διανέμουν περιεχόμενο σε ακροατήρια. Επειδή αυτές οι εφαρμογές λειτουργούν στο blockchain, μπορούν να αποκεντρωθούν και είναι ανθεκτικές στη λογοκρισία και τον αδικαιολόγητο έλεγχο. - -Πολλά αποκεντρωμένα κοινωνικά δίκτυα υπάρχουν ως εναλλακτικές λύσεις σε καθιερωμένες υπηρεσίες κοινωνικών μέσων, όπως το Facebook, το LinkedIn, το Twitter και το Medium. Ωστόσο, τα κοινωνικά δίκτυα που υποστηρίζονται από κρυπτοαλυσίδα έχουν μια σειρά από χαρακτηριστικά που τα τοποθετούν μπροστά από τις παραδοσιακές κοινωνικές πλατφόρμες. - -### Λειτουργία των αποκεντρωμένων κοινωνικών δικτύων {#decentralized-social-networks-overview} - -Τα αποκεντρωμένα κοινωνικά δίκτυα είναι μια κατηγορία [αποκεντρωμένων εφαρμογών (dapps)](/dapps/). Εφαρμογές που υποστηρίζονται από [έξυπνα συμβόλαια](/developers/docs/smart-contracts/) που αναπτύσσονται στην κρυπτοαλυσίδα. Ο κωδικός συμβολαίου χρησιμεύει ως υποστήριξη για αυτές τις εφαρμογές και καθορίζει την επιχειρηματική τους λογική. - -Οι παραδοσιακές πλατφόρμες μέσων κοινωνικής δικτύωσης βασίζονται σε βάσεις δεδομένων για την αποθήκευση των πληροφοριών χρήστη, του κώδικα προγράμματος και άλλων μορφών δεδομένων. Αυτό δημιουργεί ορισμένα σημεία αποτυχίας και προσθέτει σημαντική επικινδυνότητα. Για παράδειγμα, οι διακομιστές του Facebook [βγήκαν πέρυσι εκτός σύνδεσης για ώρες](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact), αποκόπτοντας τους χρήστες από την πλατφόρμα. - -Τα αποκεντρωμένα κοινωνικά δίκτυα υπάρχουν σε ένα δίκτυο από χρήστη σε χρήστη περιλαμβάνοντας χιλιάδες κόμβους σε όλο τον κόσμο. Ακόμα και αν κάποιοι κόμβοι αποτύχουν, το δίκτυο θα λειτουργεί αδιάκοπα, καθιστώντας τις εφαρμογές ανθεκτικές σε αστοχίες και διακοπές λειτουργίας. - -Χρησιμοποιώντας αποκεντρωμένα συστήματα αποθήκευσης όπως το [InterPlanetary File System (IPFS)](https://ipfs.io/), τα κοινωνικά δίκτυα που δημιουργήθηκαν στο Ethereum μπορούν να προστατεύσουν τις πληροφορίες των χρηστών από διαρροή και κακόβουλη χρήση. Κανείς δε θα πουλήσει τα προσωπικά σας στοιχεία σε διαφημιστές, ούτε οι χάκερ θα μπορούν να κλέψουν τα εμπιστευτικά σας στοιχεία. - -Πολλές πλατφόρμες κοινωνικής δικτύωσης που βασίζονται σε blockchain διαθέτουν δικό τους κρυπτονόμισμα ενισχύοντας τη δημιουργία εσόδων χωρίς τη χρήση διαφημίσεων. Οι χρήστες μπορούν να αγοράσουν αυτά τα ψηφιακά στοιχεία για να αποκτήσουν πρόσβαση σε ορισμένες λειτουργίες, να ολοκληρώσουν αγορές εντός της εφαρμογής ή να δώσουν συμβουλές στους αγαπημένους τους δημιουργούς περιεχομένου. - -## Πλεονεκτήματα αποκεντρωμένων κοινωνικών δικτύων {#benefits} - -1. Τα αποκεντρωμένα κοινωνικά δίκτυα είναι ανθεκτικά στη λογοκρισία και είναι ανοιχτά για όλους. Αυτό σημαίνει ότι οι χρήστες δεν μπορούν να αποκλειστούν, να τροποποιηθούν ή να περιοριστούν αυθαίρετα. - -2. Τα αποκεντρωμένα κοινωνικά δίκτυα έχουν δημιουργηθεί με εφαρμογές ανοιχτού κώδικα και καθιστούν τον πηγαίο κώδικά τους διαθέσιμο για δημόσιο έλεγχο. Καταργώντας την εφαρμογή αδιαφανών αλγορίθμων που είναι κοινά στα παραδοσιακά μέσα κοινωνικής δικτύωσης, αυτά που βασίζονται σε τεχνολογία blockchain μπορούν να ευθυγραμμίσουν τα ενδιαφέροντα των χρηστών και των δημιουργών πλατφορμών. - -3. Τα αποκεντρωμένα κοινωνικά δίκτυα εξαλείφουν τον «μεσάζοντα». Οι δημιουργοί περιεχομένου έχουν άμεση κυριότητα του περιεχομένου τους και αλληλεπιδρούν απευθείας με τους ακόλουθους, τους θαυμαστές, τους αγοραστές και άλλους, μόνο με τη μεσολάβηση του έξυπνου συμβολαίου μεταξύ τους. - -4. Καθώς οι dapp που εκτελούνται στο δίκτυο Ethereum, το οποίο υποστηρίζεται από ένα παγκόσμιο από χρήστη σε χρήστη δίκτυο κόμβων, τα αποκεντρωμένα κοινωνικά δίκτυα είναι λιγότερο επιρρεπή σε σφάλματα διακομιστή και διακοπές λειτουργίας. - -5. Οι αποκεντρωμένες πλατφόρμες κοινωνικής δικτύωσης προσφέρουν ένα βελτιωμένο πλαίσιο δημιουργίας εσόδων για δημιουργούς περιεχομένου, μέσω των μη εναλλάξιμων διακριτικών (NFT), πληρωμών κρυπτονομισμάτων εντός εφαρμογής και άλλων. - -6. Τα αποκεντρωμένα κοινωνικά δίκτυα προσφέρουν στους χρήστες υψηλό επίπεδο ιδιωτικότητας και ανωνυμίας. Για παράδειγμα, ένα άτομο μπορεί να συνδεθεί σε ένα κοινωνικό δίκτυο που βασίζεται στο Ethereum χρησιμοποιώντας ένα προφίλ ή πορτοφόλι ENS, χωρίς να χρειάζεται να μοιράζεται στοιχεία προσωπικής ταυτοποίησης (PII), όπως ονόματα, διευθύνσεις email κλπ. - -7. Τα αποκεντρωμένα κοινωνικά δίκτυα βασίζονται σε αποκεντρωμένη αποθήκευση και όχι σε κεντρικές βάσεις δεδομένων, οι οποίες είναι πολύ καλύτερες για την προστασία των δεδομένων χρήστη. - -## Αποκεντρωμένα κοινωνικά δίκτυα στο Ethereum {#ethereum-social-networks} - -Το δίκτυο Ethereum έχει γίνει το προτιμώμενο εργαλείο για προγραμματιστές που δημιουργούν αποκεντρωμένα μέσα κοινωνικής δικτύωσης, λόγω της δημοτικότητας των κρυπτονομισμάτων του (ERC-20/ERC-721) και της τεράστιας βάσης χρηστών του. Δείτε μερικά παραδείγματα κοινωνικών δικτύων που βασίζονται στο Ethereum: - -### Peepeth {#peepeth} - -Το [Peepeth](https://peepeth.com/) είναι μια πλατφόρμα microblogging παρόμοια με το Twitter. Λειτουργεί στο blockchain του Ethereum και χρησιμοποιεί IPFS για την αποθήκευση δεδομένων χρήστη. - -Οι χρήστες μπορούν να ανταλλάσουν σύντομα μηνύματα που ονομάζονται «Peeps», τα οποία δεν μπορούν να διαγραφούν ή να τροποποιηθούν. Μπορείτε να στείλετε χρήματα ή να λάβετε δωρεές σε οποιονδήποτε στην πλατφόρμα σε Ether (ETH) μέσα από την εφαρμογή. - -### Mirror {#mirror} - -Το [Mirror](https://mirror.xyz/) είναι μια πλατφόρμα γραφής με δυνατότητα web3 που στοχεύει να είναι αποκεντρωμένη και να ανήκει στους χρήστες. Οι χρήστες μπορούν να διαβάζουν και να γράφουν δωρεάν στο Mirror συνδέοντας απλά τα πορτοφόλια τους. Οι χρήστες μπορούν επίσης να συλλέγουν άρθρα και να εγγραφούν στους αγαπημένους τους συγγραφείς. - -Οι αναρτήσεις που δημοσιεύονται στο Mirror αποθηκεύονται μόνιμα στο Arweave, μια αποκεντρωμένη πλατφόρμα αποθήκευσης και μπορούν να κοπούν ως συλλεκτικά [μη εναλλάξιμα κρυπτοπαραστατικά (NFT)](/nft/) γνωστά ως Writing NFT. Τα Writing NFT είναι εντελώς δωρεάν για να δημιουργηθούν από τους συγγραφείς και η συλλογή τους γίνεται στο Ethereum L2, καθιστώντας τις συναλλαγές φθηνές, γρήγορες και φιλικές προς το περιβάλλον. - -### MINDS {#minds} - -Το [MINDS](https://www.minds.com/) είναι ένα από τα πιο χρησιμοποιούμενα αποκεντρωμένα κοινωνικά δίκτυα. Λειτουργεί όπως το Facebook και έχει ήδη συγκεντρώσει εκατομμύρια χρήστες. - -Οι χρήστες χρησιμοποιούν το κρυπτονόμισμα ERC-20 της πλατφόρμας $MIND για να πληρώσουν για αντικείμενα. Οι χρήστες μπορούν επίσης να κερδίσουν κρυπτονομίσματα $MIND δημοσιεύοντας δημοφιλές περιεχόμενο, συνεισφέροντας στο οικοσύστημα και παραπέμποντας άλλους στην πλατφόρμα. - -## Κοινωνικά δίκτυα Web2 στο Ethereum {#web2-social-networks-and-ethereum} - -Οι εγγενείς πλατφόρμες κοινωνικής δικτύωσης [Web3](/web3/) δεν είναι οι μόνες που προσπαθούν να ενσωματώσουν την τεχνολογία κρυπτοαλυσίδας στα μέσα κοινωνικής δικτύωσης. Πολλές κεντρικές πλατφόρμες σχεδιάζουν επίσης να ενσωματώσουν το Ethereum στην υποδομή τους: - -### 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/) που έχει σχεδιαστεί για την κλιμακωτή αναβάθμιση των συναλλαγών στο Ethereum. - -Το πρόγραμμα είναι ήδη σε λειτουργία, με το subreddit r/CryptoCurrency [που εκτελεί την έκδοση των σημείων κοινότητας που ονομάζεται "Moons"](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Σύμφωνα με την επίσημη περιγραφή, το Moons «επιβραβεύει αφίσες, σχολιαστές και συντονιστές για τη συνεισφορά τους στο subreddit». Επειδή αυτά τα κρυπτονομίσματα βρίσκονται στην κρυπτοαλυσίδα (οι χρήστες τα λαμβάνουν σε πορτοφόλια), είναι ανεξάρτητα από το Reddit και δεν μπορούν να αφαιρεθούν. - -Μετά την ολοκλήρωση μιας φάσης beta στο δίκτυο δοκιμών του Rinkeby, οι πόντοι της κοινότητας Reddit βρίσκονται τώρα σε [Arbitrum Nova](https://nova.arbitrum.io/), μια κρυπτοαλυσίδα που συνδυάζει τις ιδιότητες μιας [πλευρικής αλυσίδας](/developers/docs/scaling/sidechains/) και ενός [optimistic πακέτου ενημέρωσης](/developers/docs/scaling/optimistic-rollups/). Εκτός από τη χρήση πόντων κοινότητας για την πρόσβαση σε ειδικές λειτουργίες, οι χρήστες μπορούν επίσης να τους ανταλλάξουν με fiat σε ανταλλακτήρια. Επίσης, ο αριθμός των πόντων κοινότητας που κατέχει ένας χρήστης καθορίζει την επιρροή τους στη διαδικασία λήψης αποφάσεων εντός της κοινότητας. - -### Twitter {#twitter} - -Τον Ιανουάριο του 2021, το Twitter Blue [κυκλοφόρησε την υποστήριξη για NFT](https://mashable.com/article/twitter-blue-nft-profile-picture), επιτρέποντας στους χρήστες να συνδέουν τα πορτοφόλια τους και να εμφανίζουν τα NFT ως φωτογραφίες προφίλ. Τη στιγμή που γράφονται αυτές οι γραμμές, η εταιρεία κοινωνικών μέσων έχει επίσης [ανακοινώσει σχέδια](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) για τη δημιουργία ενός αποκεντρωμένου κοινωνικού δικτύου στο μέλλον. - -### Instagram {#instagram} - -Τον Μάιο του 2022, το [Instagram ανακοίνωσε υποστήριξη για NFT](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) στο Ethereum και το Polygon. Οι χρήστες μπορούν να δημοσιεύουν NFT απευθείας στο Instagram συνδέοντας το πορτοφόλι τους Ethereum. - -## Χρήση αποκεντρωμένων κοινωνικών δικτύων {#use-decentralized-social-networks} - -- **[Status.im](https://status.im/)** - _Το Status είναι μια ασφαλής εφαρμογή ανταλλαγής μηνυμάτων που χρησιμοποιεί το πρωτόκολλο ανοιχτού κώδικα, από χρήστη σε χρήστη και κρυπτογράφηση από άκρο σε άκρο για προστασία των μηνυμάτων σας από τρίτα μέρη._ -- **[Mirror.xyz](https://mirror.xyz/)** - _Το Mirror είναι αποκεντρωμένη, προσωπική πλατφόρμα δημοσιεύσεων, βασισμένη στο Ethereum, ώστε οι χρήστες να συγκεντρώνουν ιδέες, να δημιουργούν έσοδα από περιεχόμενο και να δημιουργούν κοινότητες υψηλής αξίας._ -- **[Το πρωτόκολλο Lens](https://lens.xyz/)** - _Το πρωτόκολλο Lens είναι αποκεντρωμένο κοινωνικό γράφημα που βοηθά τους δημιουργούς να αποκτήσουν την κυριότητα του περιεχομένου τους όπου και αν πάνε στον ψηφιακό κήπο του αποκεντρωμένου Διαδικτύου._ -- **[Farcaster](https://farcaster.xyz/)** - _Το Farcaster είναι επαρκώς αποκεντρωμένο κοινωνικό δίκτυο. Είναι ένα ανοιχτό πρωτόκολλο που μπορεί να υποστηρίξει πολλούς πελάτες, όπως και το email._ - -## Περισσότερες πληροφορίες {#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_ -- [Μια επισκόπηση του χώρου των μέσων κοινωνικής δικτύωσης σε Blockchain](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Cryptopedia Gemini_ -- [Πώς το Blockchain μπορεί να λύσει το απόρρητο των μέσων κοινωνικής δικτύωσης](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Prableen Bajpai_ -- [Τα δίκτυα κοινωνικών μέσων έρχονται στο Blockchain](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} - -- [Επεξήγηση αποκεντρωμένων μέσων κοινωνικής δικτύωσης](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ -- [Η DeSo Blockchain θέλει να αποκεντρώσει τα μέσα κοινωνικής δικτύωσης](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Τεχνολογία Bloomberg_ -- [Το μέλλον των αποκεντρωμένων μέσων κοινωνικής δικτύωσης των Balaji Srinivasan, Vitalik Buterin, Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ - -### Κοινότητες {#communities} - -- [Κατάσταση διακομιστή Discord](https://discord.com/invite/3Exux7Y) -- [Εναλλακτικός διακομιστής Discord](https://discord.com/invite/txuCHcE8wV) -- [r/CryptoCurrency subreddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/es/community/support/index.md b/src/content/translations/es/community/support/index.md deleted file mode 100644 index 2ad2e0a28dd..00000000000 --- a/src/content/translations/es/community/support/index.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -title: Soporte técnico de Ethereum -description: Explicación de cómo obtener soporte técnico en el ecosistema Ethereum. -lang: es ---- - -# Soporte técnico de Ethereum {#support} - -## Soporte oficial de Ethereum {#official-support} - -¿Está buscando el soporte técnico oficial de Ethereum? Lo primero que debe saber es que Ethereum está descentralizado. Eso significa que carece de organización centra y que ninguna entidad ni persona es dueña de Ethereum. Por lo tanto, no existen canales de soporte oficiales. - -Comprender la naturaleza descentralizada de Ethereum es vital, ya que todo aquel que afirme ser el soporte técnico oficial de Ethereum probablemente esté tratando de estafarle. La mejor manera de protegerse contra estafadores es enterarse bien y tomarse la seguridad en serio. - - - Seguridad en Ethereum y prevención de fraudes - - - - Aprenda los fundamentos de Ethereum. - - -A pesar de la falta de apoyo oficial, muchos grupos, comunidades y proyectos en todo el ecosistema Ethereum están deseosos de ayudar, y puede encontrar mucha información y recursos útiles en esta página. ¿Todavía le surgen algunas preguntas? Entonces, únase al chat [Discord de Ethereum.org](/discord/) e intentaremos ayudarle. - -## Soporte para la cartera {#wallet-support} - -¿Tiene problemas con su cartera? La mayoría de las carteras tienen equipos de soporte asignados que le pueden ayudar: - -- [MetaMask](https://metamask.zendesk.com/hc/) -- [Argent](https://support.argent.xyz/hc/) -- [MyEtherWallet](https://help.myetherwallet.com/) - -_Esta lista no es exhaustiva. ¿Necesita ayuda para encontrar soporte sobre una cartera específica? Únase al Discord de [ethereum.org](https://discord.gg/ethereum-org) e intentaremos ayudarle._ - -¿Busca una cartera de Ethereum? [Explore nuestra lista completa de carteras Ethereum](/wallets/find-wallet/). - -## Creación de DApps {#building-support} - -Crear puede ser difícil. A continuación, le indicamos algunos espacios centrados en el desarrollo con experimentados desarrolladores de Ethereum que estarán dispuestos a ayudarle. - -- [Alchemy University](https://university.alchemy.com/#starter_code) -- [Discord de CryptoDevs](https://discord.gg/Z9TA39m8Yu) -- [Ethereum Stackexchange](https://ethereum.stackexchange.com/) -- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) -- [Web3 University](https://www.web3.university/) -- [LearnWeb3](https://discord.com/invite/learnweb3) - -También puede encontrar documentación y guías de desarrollo en nuestra sección de recursos para desarrolladores de [Ethereum](/developers/). - -### Herramientas {#dapp-tooling} - -¿Su pregunta se refiere a una herramienta, proyecto o biblioteca en particular? La mayoría de los proyectos tienen servidores de chat o foros destinados a ayudarle. - -He aquí algunos ejemplos: - -- [Solidity](https://gitter.im/ethereum/solidity/) -- [ethers.js](https://discord.gg/6jyGVDK6Jx) -- [web3.js](https://discord.gg/GsABYQu4sC) -- [Hardhat](https://discord.gg/xtrMGhmbfZ) -- [Truffle](https://discord.gg/8uKcsccEYE) -- [Alchemy](http://alchemy.com/discord) -- [Tenderly](https://discord.gg/fBvDJYR) - -## Ejecución de un nodo {#node-support} - -Si está ejecutando un nodo o validador, estas son algunas comunidades dedicadas a ayudar a los usuarios en sus comienzos. - -- [Discord de EthStaker](https://discord.gg/ethstaker) -- [Reddit de EthStaker](https://www.reddit.com/r/ethstaker) - -La mayoría de los equipos que se encargan de la creación de clientes de Ethereum también cuentan con espacios especializados, orientados al público, en los que se puede obtener ayuda y hacer preguntas. - -### Clientes de ejecución {#execution-clients} - -- [Geth](https://discord.gg/FqDzupGyYf) -- [Nethermind](https://discord.gg/YJx3pm8z5C) -- [Besu](https://discord.gg/p8djYngzKN) -- [Erigon](https://github.com/ledgerwatch/erigon/issues) - -### Clientes de consenso {#consensus-clients} - -- [Prysm](https://discord.gg/prysmaticlabs) -- [Nimbus](https://discord.gg/nSmEH3qgFv) -- [Lighthouse](https://discord.gg/cyAszAh) -- [Teku](https://discord.gg/7hPv2T6) -- [Lodestar](https://discord.gg/aMxzVcr) - -También puede [aprender aquí a ejecutar su propio nodo](/developers/docs/nodes-and-clients/run-a-node/). - -## Preguntas más frecuentes {#faq} - -#### He enviado ETH a una cartera equivocada {#wrong-wallet} - -Una transacción enviada en Ethereum es irreversible. Desafortunadamente, si ha enviado ETH a la cartera equivocada, no hay forma de recuperar esos fondos. Debido a que no existe organización central, ni ninguna entidad ni persona al frente de Ethereum, nadie puede revertir las transacciones. Por lo tanto, es vital comprobar siempre sus transacciones antes de enviarlas. - -#### ¿Cómo puedo reclamar mi regalo en Ethereum? {#giveaway-scam} - -Los regalos de Ethereum son estafas diseñadas para robarle ETH. No se deje tentar por ofertas que parezcan demasiado buenas para ser verdad, si envía ETH a una dirección de regalo, no recibirá ningún ningún regalo, ni tampoco podrá recuperar sus fondos. - -[Más información acerca de la prevención de fraudes.](/security/#common-scams) - -#### Mi transacción está estancada {#stuck-transaction} - -Debido a la demanda de la red, las transacciones en Ethereum pueden a veces estancarse si ha pagado una comisión de la transacción inferior a la requerida. Muchas carteras proporcionan una opción para volver a enviar la misma transacción con una comisión de transacción más elevada y así poder procesar la transacción. Otra alternativa es cancelar una transacción pendiente enviando una transacción a su propia dirección y utilizando el mismo nonce que la transacción pendiente. - -[Cómo acelerar o cancelar una transacción pendiente en MetaMask.](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) - -[Cómo cancelar las transacciones pendientes de Ethereum.](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) - -#### ¿Cómo puedo minar Ethereum? {#mining-ethereum} - -Ya no se puede minar en Ethereum. La minería se desactivó cuando Ethereum pasó de la prueba de trabajo a la prueba de participación. Ahora, en lugar de mineros, Ethereum tiene validadores. Los validadores apuestan ETH y reciben recompensas por asegurar la red. - -#### ¿Cómo puedo convertirme en participante/validador? {#become-validator} - -Para convertirse en validador, debe apostar 32 ETH en el contrato de depósito de Ethereum y configurar un nodo de validación. Hay más información disponible en nuestras [páginas de participación](/staking) y en [la plataforma de lanzamiento de participación](https://launchpad.ethereum.org/). diff --git a/src/content/translations/es/contributing/translation-program/translators-guide/index.md b/src/content/translations/es/contributing/translation-program/translators-guide/index.md deleted file mode 100644 index b074313fefa..00000000000 --- a/src/content/translations/es/contributing/translation-program/translators-guide/index.md +++ /dev/null @@ -1,293 +0,0 @@ ---- -title: Guía para traductores -lang: es -description: Instrucciones y consejos para traductores de ethereum.org ---- - -# Guía de estilo de traducción de ethereum.org {#style-guide} - -La guía de estilo de traducción de ethereum.org reúne algunas de las pautas, instrucciones y consejos más importantes para que los traductores ayuden a localizar la página web. - -Este documento sirve de guía general y no es específico de ningún idioma. - -Si tiene alguna pregunta, sugerencia o comentario, no dude en contactarnos en translations@ethereum.org, enviar un mensaje a @ethdotorg en Crowdin, o [unirse a nuestro chat Discord](https://discord.gg/ethereum-org), donde puede enviarnos mensajes en el canal de #translations o contactar con cualquiera de los miembros del equipo. - -### Cómo utilizar Crowdin {#using-crowdin} - -Puede encontrar instrucciones básicas sobre cómo unirse al proyecto en Crowdin y cómo utilizar el editor en línea de Crowdin en la página [Programa de traducción](/contributing/translation-program/#how-to-translate). - -Si quiere saber más sobre Crowdin y usar alguna de sus funciones avanzadas, [la base de conocimientos de Crowdin](https://support.crowdin.com/online-editor/) contiene muchas guías detalladas y descripciones generales de todas las funciones de Crowdin. - -### Capturar la esencia del mensaje {#capturing-the-essence} - -Al traducir contenido de ethereum.org, evite las traducciones literales. - -Es importante que las traducciones capten la esencia del mensaje. Esto podría significar parafrasear ciertas oraciones, o recurrir a una traducción más descriptiva en lugar de traducir el contenido literalmente. - -Cada idioma tiene sus reglas gramáticas, usos y orden de palabras particulares. Al traducir, tenga en cuenta la estructura de las frases en el idioma de destino y evite traducir literalmente del inglés, ya que esto puede dar como resultado un texto mal estructurado que no se entiende bien. - -En lugar de traducir el texto original palabra por palabra, se recomienda leer la frase entera y adaptarla a los usos del idioma de destino. - -### ¿Estilo formal o informal? {#formal-vs-informal} - -Utilizamos el estilo formal (usted), ya que siempre resulta más educado y apropiado para dirigirse a todos los visitantes. - -El uso del estilo formal da un carácter más serio y menos ofensivo, y es apto para todo tipo de edad y género del visitante. - -La mayoría de los idiomas indoeuropeos y afro-asiáticos utilizan pronombres personales de segunda persona específicos para el género, que distinguen entre hombres y mujeres. Al dirigirnos al usuario o usar pronombres posesivos, podemos evitar el asumir el género del visitante, ya que el estilo formal suele siempre ser oportuno y coherente, independientemente de cómo se identifiquen. - -### Vocabulario y significado sencillo y claro {#simple-vocabulary} - -Nuestro objetivo es hacer que el contenido de la página web sea comprensible para el mayor número de personas posible. - -En la mayoría de los casos, esto se puede lograr fácilmente utilizando palabras breves y sencillas que se entiendan fácilmente. Si hay varias traducciones acertadas para una determinada palabra en el idioma local con el mismo significado, la mejor opción es la palabra más corta que refleja claramente el significado. - -### Sistema de escritura {#writing-system} - -Ethereum.org está disponible en varios idiomas, utilizando sistemas alternativos de escritura (o escribiendo scripts) al latín. - -Todo el contenido debe traducirse utilizando el sistema de escritura correcto para su idioma, y no debe incluir ninguna palabra, escrita usando caracteres latinos. - -Al traducir el contenido, debe asegurarse de que las traducciones sean consistentes y no incluyan ningún carácter latino. - -Una idea errónea común es que Ethereum debe estar siempre escrito en latín. Esto es incorrecto en la mayoría de los casos, por favor use la ortografía de Ethereum, nativa de su idioma (por ejemplo, en chino, اريوم en árabe, etc.). - -**Lo anterior no se aplica a los idiomas, donde los nombres propios no se traducen, por regla general.** - -### Traducir metadatos de la página {#translating-metadata} - -Algunas páginas contienen metadatos en la página, como 'title', 'lang', 'description', 'sidebar', etc. - -Ocultamos el contenido que los traductores nunca deberían traducir al subir nuevas páginas a Crowdin, por lo que todos los metadatos visibles para los traductores en Crowdin deberán traducirse. - -Por favor, tenga especial cuidado cuando traduzca cadenas cuyo texto origen sea 'en'. Esto representa el idoma en el que la página está disponible y deberá traducirse al [código ISO de idioma para su idioma](https://www.andiamo.co.uk/resources/iso-language-codes/). Estas cadenas de texto siempre deben traducirse usando caracteres latinos, y no el alfabeto nativo al idioma de destino. - -Si no está seguro que código de idioma usar, puede revisar la memoria de traducción en Crowdin, o buscar el código de idoma para su idioma en la URL de la página en el editor en línea de Crowdin. - -He aquí algunos ejemplos de códigos de idioma para los idiomas más hablados: - -- Árabe: ar -- Chino simplificado: zh -- Francés: fr -- Hindi: hi -- Español: es - -### Títulos de artículos externos {#external-articles} - -Algunas cadenas de texto contienen títulos de artículos externos. La mayoría de nuestras páginas de documentación para desarrolladores contienen enlaces a artículos externos para leer más. Las cadenas de texto que contienen títulos de artículos necesitan traducirse, al margen del idioma del artículo, para asegurar una experiencia de usuario más consistente a los visitantes que lean la página en su idioma nativo. - -Puede encontrar a continuación algunos ejemplos de estas cadenas de texto para traducción y cómo identificarlas (los enlaces a artículos se pueden encontrar en la parte inferior de estas páginas, en la sección de «Leer más»): - -![Títulos de artículos en sidebar.png](./article-titles-in-sidebar.png) ![Títulos de artículos en editor.png](./article-titles-in-editor.png) - -### Advertencias de Crowdin {#crowdin-warnings} - -Crowdin tiene una función incorporada que advierte a los traductores cuando están a punto de cometer un error. Crowdin le avisará automáticamente del error antes de guardar la traducción si ha cometido errores, como olvidarse de incluir una etiqueta del texto original; traducir elementos que no deberían traducirse; añadir varios espacios en blanco consecutivos; olvidar marcas de puntuación final; etc. Si ve una advertencia como esta, por favor retroceda y compruebe por segunda vez la traducción sugerida. - -**Nunca ignore estas advertencias, porque usualmente significan que algo está mal, o que en la traducción falta una parte del texto original.** - -Un ejemplo de una advertencia de Crowdin cuando olvida añadir una etiqueta a su traducción: ![Ejemplo de una advertencia de Crowdin](./crowdin-warning-example.png) - -### Trabajar con etiquetas y fragmentos de código {#dealing-with-tags} - -Gran parte del contenido en inglés contiene etiquetas y variables, que se destacan en amarillo en el editor de Crowdin.-. Estas funciones tienen diferentes funciones y deben abordarse correctamente. - -**Ajustes de Crowdin** - -Para facilitar la gestión de etiquetas y copiarlas directamente desde el inglés, le recomendamos cambiar su configuración en el editor de Crowdin. - -1. Abrir ajustes ![Cómo abrir los ajustes en el editor](./editor-settings.png) - -2. Desplácese hacia abajo hasta la sección «Mostrar etiquetas HTML». - -3. Seleccione «Ocultar». ![Seleccione «Ocultar».](./hide-tags.png) - -4. Haga clic en «Guardar». - -Al seleccionar esta opción, el texto completo de la etiqueta ya no se mostrará y se reemplazará por un número. Al hacer clic en esta etiqueta durante la traducción, se copiará automáticamente la etiqueta exacta en el campo de traducción. - -**Enlaces** - -Observará que hay enlaces completos a páginas de ethereum.org u otros sitios web. - -Estos deben ser idénticos a los enlaces de la versión original en inglés y no deben modificarse ni traducirse. Si traduce un enlace o lo modifica, aunque solo sea eliminando una parte del mismo, como un barra oblicua (/), inutilizará el enlace. - -La mejor manera de conservar los enlaces intactos es copiarlos directamente desde el texto original, ya sea haciendo clic en ellos o usando el botón «Copiar texto» (Alt+C). - -![Ejemplo de link.png](./example-of-link.png) - -Los enlaces también aparecen en el texto original en forma de etiquetas (es decir, <0> ). Si pasa el cursor sobre la etiqueta, el editor mostrará su contenido completo (a veces estas etiquetas representan enlaces). - -Es muy importante copiar los enlaces del texto original y no cambiar su orden. - -Si se cambia el orden de las etiquetas, el enlace que representan se inutilizará. - -![Ejemplo de enlaces dentro de tags.png](./example-of-links-inside-tags.png) - -**Etiquetas y variables** - -El texto original contiene muchos tipos diferentes de etiquetas, que siempre deben copiarse del texto original y no modificarse bajo ninguna circunstancia. Del mismo modo, el orden de estas etiquetas en la traducción también debería seguir siendo el mismo que en la versión original. - -Las etiquetas siempre contienen una etiqueta de apertura y otra de cierre. En la mayoría de los casos, el texto entre etiquetas de apertura y cierre debe traducirse. - -Ejemplo: ``Decentralized`` - -``: _Etiqueta de apertura que hace que el texto resalte en negrita_ - -Descentralizado: _texto traducible_ - -``: _Etiqueta de cierre_ - -![Ejemplo de «strong» tags.png](./example-of-strong-tags.png) - -Los fragmentos de código deben abordarse de forma ligeramente diferente a las demás etiquetas, ya que contienen código que no se debe traducir. - -Ejemplo: ``nonce`` - -``: _Etiqueta de apertura, que contiene un fragmento de código_ - -nonce - _Texto no traducible_ - -``: _etiqueta de cierre_ - -![Ejemplo de código snippets.png](./example-of-code-snippets.png) - -El texto original también contiene etiquetas acortadas, que solo contienen números, lo que significa que su función no es inmediatamente obvia. Puede pasar el cursor sobre estas etiquetas para ver qué función tienen exactamente. - -En el ejemplo de abajo, al pasar el cursor por la <0> etiqueta se muestra lo que representa `` y contiene un fragmento de código, por lo tanto el contenido dentro de estas etiquetas no debe traducirse. - -![Ejemplo de tags.png ambiguo](./example-of-ambiguous-tags.png) - -### Siglas y descripciones completas {#short-vs-full-forms} - -En el sitio web, se utilizan muchas siglas, como por ejemplo, dapps, NFT, DAO, DeFi, etc. Estas siglas se utilizan comúnmente en inglés y la mayoría de los visitantes del sitio web están familiarizados con ellas. - -Dado que no suelen tener una traducción oficial a otros idiomas, la mejor manera de traducir estos y otros términos similares es proporcionar una descripción completa y añadir la sigla en inglés entre paréntesis. - -No traduzca estas siglas o abreviaturas a su idioma nativo, ya que la mayoría de la gente no estaría familiarizada con ellas, y las versiones localizadas no tendrían mucho sentido para la mayoría de los visitantes. - -Ejemplo de cómo traducir dApps: - -- Aplicaciones descentralizadas (dApps) → _Traducida completa (abreviatura en inglés entre paréntesis)_ - -### Términos sin traducción oficial {#terms-without-established-translations} - -Puede que algunos términos aún no tengan una traducción oficial en otros idiomas, y sin embargo, se conozcan ampliamente por su denominación en inglés. Tales términos incluyen principalmente conceptos más nuevos, como proof-of-work (prueba de trabajo), proof-of-stake (prueba de participación), beacon chain (cadena de baliza), staking (participación), etc. - -Si bien la traducción de estos términos puede sonar antinatural, ya que la versión en inglés también se utiliza en otros idiomas, es altamente recomendable que se traduzcan. - -Al traducirlos, sea creativo con toda libertad, use traducciones descriptivas o simplemente tradúzcalos literalmente. - -**La razón por la que la mayoría de estos términos se deberían traducir, en lugar de dejar algunos en inglés, es el hecho de que esta nueva terminología se extenderá en el futuro, a medida que más personas empiecen a utilizar Ethereum y tecnologías relacionadas. Si queremos llegar a más personas de todo el mundo con este espacio, tenemos que proporcionar una terminología comprensible en tantos idiomas como sea posible, aunque necesitemos acuñar los términos nosotros mismos.** - -### Botones y comandos interactivos (CTA) {#buttons-and-ctas} - -El sitio web contiene numerosos botones, que deben traducirse de forma diferente a otros contenidos. - -El texto del botón se puede identificar viendo las capturas de pantalla de contexto, conectadas con la mayoría de las cadenas, o buscando el contexto en el editor, que incluye la frase «botón». - -Las traducciones para los botones deben ser lo más cortas posible, para evitar errores de formato. Asimismo, la traducción de los botones debe tener un sentido imperioso, es decir, dar una order o solicitar algo. - -![Cómo encontrar un button.png](./how-to-find-a-button.png) - -### Traducir de forma inclusiva {#translating-for-inclusivity} - -Los visitantes de ethereum.org vienen de todo el mundo y tienen diferentes orígenes. Por lo tanto, el lenguaje en el sitio web debería ser neutral, dar la bienvenida a todos y no excluir a nadie. - -Un aspecto importante a colación es la neutralidad entre hombres y mujeres. Esto puede lograrse fácilmente utilizando un estilo formal y evitando en las traducciones palabras específicas de género. - -Otra forma de inclusividad es intentar traducir para un público global, que no sea específico a ningún país, raza o región. - -Por último, las expresiones deben ser adecuadas a todos los públicos y edades. - -## Traducciones específicas del idioma {#language-specific-translations} - -Al traducir, es importante seguir las reglas gramaticales, usos y formatos utilizados en su idioma, en lugar de copiarlos de la versión original. El texto original sigue las normas y usos gramaticales del inglés, que no es aplicable a muchos otros idiomas. - -Debe conocer las reglas de su idioma y traducir aplicándolas. Si necesita ayuda, comuníquese con nosotros y le ayudaremos a encontrar algunos recursos de ayuda para utilizar estos elementos en su idioma. - -He aquí algunos ejemplos de aspectos especialmente importantes: - -### Puntuación y formato {#punctuation-and-formatting} - -**Uso de mayúsculas** - -- Hay grandes diferencias en el uso de mayúsculas en diferentes idiomas. -- En inglés, se escriben con mayúscula inicial todas las palabras en títulos y nombres, meses y días, nombres de idiomas, vacaciones, etc. En muchos otros idiomas, esto es gramaticalmente incorrecto, ya que tienen diferentes reglas de uso de mayúsculas. -- Algunos idiomas también tienen reglas sobre el uso de mayúsculas de pronombres personales, sustantivos y ciertos adjetivos, que no están se escriben con inicial en mayúscula en inglés. - -**Espaciado** - -- Las reglas de ortografía definen el uso de espacios en cada idioma. Dado que todos los idiomas se escriben con espacios, estas reglas son algunas de las más características y los espacios son algunos de los elementos que se suelen traducir mal. -- He aquí algunas diferencias comunes en el espaciado entre inglés y otros idiomas: - - Espacio antes de unidades de medición y divisas (por ejemplo, USD, EUR, kB, MB) - - Espacio antes de los signos de grado (por ejemplo, °C, °F) - - Espacio antes de algunos signos de puntuación, especialmente el paréntesis (…) - - Espacio antes y después de las barras (/) - -**Listas** - -- Cada idioma tiene un conjunto diverso y complejo de reglas para escribir listas. Pueden ser significativamente diferentes al inglés. -- En algunos idiomas, la primera palabra de cada nueva línea se escribe en mayúscula, mientras que en otros, las nuevas líneas deben comenzar en minúscula. Muchos idiomas también tienen reglas diferentes sobre el uso de mayúsculas en las listas, en función de la longitud de cada línea. -- Lo mismo se aplica a la puntuación de los elementos de línea. La puntuación final en las listas puede ser un punto (**.**), una coma (**,**) o un punto y coma (**;**), dependiendo del idioma. - -**Comillas** - -- Los idiomas utilizan muchas comillas diferentes. Utilizar las comillas inglesas no es correcto en muchos idiomas. -- He aquí algunos de los tipos de comillas más comunes: - - „texto de ejemplo“ - - ‚texto de ejemplo’ - - »texto de ejemplo« - - “texto de ejemplo” - - ‘texto de ejemplo’ - - «texto de ejemplo» - -**Guiones** - -- En inglés, un guión corto (-) se utiliza para unir palabras o diferentes partes de una palabra, mientras un guión medio (–) se utiliza para indicar una explicación o hacer una pausa. -- Muchos idiomas siguen unas reglas de uso de los guines diferentes, por lo tanto, deben cumplirse. - -### Formatos {#formats} - -**Números** - -- La principal diferencia en la escritura de números en diferentes idiomas es el separador utilizado para decimales y millares. Los millares se pueden expresar por punto, coma o espacio. Del mismo modo, algunos idiomas utilizan un punto decimal, mientras que otros usan una coma decimal. - - Algunos ejemplos de cifras de más de tres dígitos: - - En inglés: **1,000.50** - - En español: **1.000,50** - - En francés: **1000,50** -- Otra consideración importante a la hora de traducir números es el signo de porcentaje. Puede escribirse de diferentes maneras: **100%**, **100 %** o **%100**. -- Finalmente, los números negativos pueden mostrarse diferentemente, dependiendo del idioma: -100, 100-, (100) o [100]. - -**Fechas** - -- A la hora de traducir las fechas, hay una serie de consideraciones y diferencias basadas en el idioma. Estos incluyen el formato de fecha, separador, el uso de mayúsculas y los ceros al inicio. También hay diferencias entre las fechas completas y las numéricas. - - He aquí agunos ejemplos de diferentes formatos de fecha: - - Inglés británico (dd/mm/aaaa): 1st January, 2022 - - Inglés estadounidense (mm/dd/aaaa): January 1st, 2022 - - Chino (aaa-mm-dd): 2022 年 1 月 1 日 - - Francés (dd/mm/aaaa): 1er janvier 2022 - - Italian (dd/mm/yyyy): 1o gennaio 2022 - - Alemán (dd/mm/aaaa): 1. Januar 2022 - -**Divisas** - -- Traducir divisas puede ser un desafío, debido a los diferentes formatos, convenciones y conversiones. Como regla general, mantenga las mismas divisas que se mencionan en el texto original. Puede añadir su divisa local y poner su conversión entre paréntesis, para ayudar a su comprensión. -- Las principales diferencias en la escritura de divisas en diferentes idiomas incluyen la colocación de símbolos, comas decimales frente a puntos decimales, espacio, y siglas frente a descripciones completas. - - Colocación de símbolos: $100 o 100 $ - - Comas decimales o puntos decimales: 100,50 $ o 100.50$ - - Espacio: 100$ o 100 $ - - Abreviaturas, siglas o símbolos: 100 $ o 100 USD - -**Unidades de medición** - -- Como regla general, mantenga las mismas unidades de medición que se mencionan en el texto original. Si su país utiliza un sistema diferente, puede incluir la conversión entre corchetes. -- Aparte de la conversión de unidades de medición, también es importante señalar las diferencias en la forma en que los idiomas abordan estas unidades. La diferencia principal es el espacio entre el número y la unidad, que puede ser diferente, en función del idioma. Como por ejemplo, 100kB o 100 kB, 50 ºF o - -### Conclusión {#conclusion} - -Traducir ethereum.org representa una gran oportunidad para aprender sobre los diferentes aspectos de Ethereum. - -No traduzca con prisas y a lo loco. ¡No se complique la vida y diviértase! - -Gracias por participar en el Programa de Traducción y ayudarnos a hacer que el sitio web sea accesible a un público más amplio. La comunidad Ethereum es global, y estamos contentos de que forme parte de ella. diff --git a/src/content/translations/es/dao/index.md b/src/content/translations/es/dao/index.md deleted file mode 100644 index 918977c59e1..00000000000 --- a/src/content/translations/es/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: Organizaciones Autónomas Descentralizadas (DAO) -description: Una visión general de las DAO en Ethereum -lang: es -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: Imagen de una DAO votando una propuesta. -summaryPoint1: Comunidades con propiedad compartida por los miembros sin liderazgo centralizado. -summaryPoint2: Una forma segura de colaborar con desconocidos en Internet. -summaryPoint3: Un lugar seguro para dar fondos a una causa específica. ---- - -## ¿Qué son las DAO? {#what-are-daos} - -Una DAO es una organización de propiedad colectiva y gobernada mediante cadena de bloques que vela por una misión compartida. - -Las DAO nos permiten trabajar con personas de ideas afines a nosotros en todo el mundo sin tener que confiar en un líder benévolo para que administre los fondos u operaciones. No existe ningún director ejecutivo que pueda gastar los fondos a su antojo, ni ningún director financiero que pueda manipular la contabilidad. En lugar de eso, las reglas basadas en la cadena de bloques e integradas en el código son las que definen cómo funciona la organización y cómo se gastan los fondos. - -Han incorporado tesoros a los que nadie tiene autoridad para acceder sin la aprobación del grupo. Las decisiones se toman a través de propuestas y votaciones para asegurar que todos en la organización tengan voz, y que todo suceda de forma transparente en cadena. - -## ¿Por qué necesitamos DAO? {#why-dao} - -Emprender una organización conjunta, que involucre financiación y dinero requiere mucha confianza en las personas con las que se esté trabajando. No obstante, es difícil confiar en alguien con quien solo se ha interactuado en Internet. Con una DAO, no necesita confiar en nadie de su grupo, tan solo en el código de DAO, que es 100 % transparente y cualquier persona puede verificar. - -Así se abren nuevas oportunidades para la colaboración y coordinación globales. - -### Una comparación {#dao-comparison} - -| DAO | Una organización tradicional | -| ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | -| Suele ser plana y totalmente democratizada. | Suele ser jerárquica. | -| Los miembros votan previamente cualquier cambio que quieran emprender. | Dependiendo de la estructura, se pueden exigir cambios a un único grupo o se puede ofrecer la posibilidad de votarlos. | -| Los votos cuentan y los resultados se implementan automáticamente sin intermediarios de confianza. | Si se permite la votación, los votos se contabilizan internamente y el resultado de la votación debe ser tramitado manualmente. | -| Los servicios ofrecidos se gestionan automáticamente de forma descentralizada (por ejemplo, la distribución de fondos filantrópicos). | Requiere tramitación humana o centralización, propensa a la manipulación. | -| Toda la actividad es transparente y totalmente pública. | La actividad es normalmente privada y limitada al público. | - -### Ejemplos de DAO {#dao-examples} - -Para ayudar a que esto tenga más sentido, aquí hay algunos ejemplos de cómo se podría usar una DAO: - -- Una organización benéfica puede aceptar donaciones de cualquier persona en el mundo y votar por aquellas causas que quiera financiar. -- Como miembros de la propiedad colectiva, pueden comprar activos físicos o digitales y votar sobre cómo usarlos. -- Empresas y subvenciones: podría crear un fondo de riesgo que agrupe el capital de inversión y vote sobre las empresas a respaldar. El dinero reembolsado podría redistribuirse posteriormente entre los miembros de la DAO. - -## ¿Cómo funcionan las DAO? {#how-daos-work} - -La columna vertebral de una DAO son los contratos inteligentes, estos definen las reglas de la organización y la forma de administrar los activos atesorados. Una vez que el contrato está activo en Ethereum, nadie puede cambiar las reglas excepto con una votación. Si alguien intenta hacer algo que no está cubierto por las reglas y la lógica del código, no podrá hacerlo. Y dado que el tesoro está definido también por el contrato inteligente, nadie puede gastar el dinero sin la aprobación del grupo. Esto significa que las DAO no necesitan una autoridad central. En vez de ello, el grupo toma las decisiones colectivamente y los pagos se autorizan automáticamente cuando se aprueben los votos suficientes. - -Esto se consigue gracias a que los contratos inteligentes son a prueba de manipulación una vez que conectan con Ethereum. No puede editar el código (las reglas de la DAO) sin que la gente se dé cuenta, ya que todo es público. - - - Más sobre contratos inteligentes - - -## Ethereum y las DAO {#ethereum-and-daos} - -Ethereum es la base perfecta para las DAO por varias razones: - -- El propio consenso de Ethereum se distribuye y establece lo suficiente como para que las organizaciones confíen en la red. -- El código inteligente del contrato no puede ser modificado una vez se conecte, ni siquiera por sus propietarios. Esto permite a la DAO funcionar siguiendo las reglas con las que fue programada. -- Los contratos inteligentes pueden enviar/recibir fondos. Sin esto necesitará un intermediario de confianza para administrar los fondos del grupo. -- La comunidad Ethereum ha demostrado ser más colaborativa que competitiva, permitiendo que emerjan rápidamente las mejores prácticas y sistemas de apoyo. - -## Gobernanza de las DAO {#dao-governance} - -Muchas consideraciones entran en juego a la hora de gobernar una DAO, como las funciones de los votos y propuestas. - -### Delegación {#governance-delegation} - -La delegación es como la versión DAO de la democracia representativa. Los dueños de los tókenes delegan votos a los usuarios que se nominan a sí mismos y se comprometen a administrar el protocolo y a mantenerse informados. - -#### Un conocido ejemplo {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) – Los titulares de ENS pueden delegar sus votos a los miembros comprometidos de la comunidad para representarlos. - -### Gobernanza de transacciones automáticas {#governance-example} - -En muchas DAO, las transacciones se ejecutarán automáticamente si un conjunto de miembros vota afirmativamente. - -#### Un conocido ejemplo {#governance-example} - -[Nouns](https://nouns.wtf) – En Nouns DAO, una transacción se ejecuta automáticamente si se cumple un quórum de votos y la mayoría lo refrenda por voto, siempre y cuando no reciba el veto de los fundadores. - -### Gobernanza multifirma {#governance-example} - -Mientras que las DAO pueden tener miles de miembros votantes, los fondos pueden vivir en una cartera compartida por 5-20 miembros activos de la comunidad que suelen ser de confianza y "doxxed" (identidades públicas conocidas por la comunidad). Después de una votación, los firmantes multifirma ejecutan la voluntad de la comunidad. - -## Las Leyes de una DAO {#dao-laws} - -En 1977, Wyoming inventó la LLC (sociedad de responsabilidad limitada), que protege a los emprendedores y limita su responsabilidad. Más recientemente, promovieron la ley de las DAO que establece su estatus legal. Actualmente Wyoming, Vermont y las islas Vírgenes tienen alguna legislación que regula las DAO. - -#### Un conocido ejemplo {#law-example} - -La CityDAO utilizó la ley de las DAO de Wyoming para comprar 40 hectáreas de tierra cerca del Parque Nacional de Yellowstone. - -## Suscripción a una DAO {#dao-membership} - -Existen diferentes modelos de suscripción a una DAO. Los miembros pueden determinar cómo funciona la votación y otras partes clave de la DAO. - -### Inscripción basada en tókenes {#token-based-membership} - -Normalmente no tienen todos los permisos, dependiendo del token utilizado. La mayoría de estos tókenes de gobernanza pueden comerciarse sin permiso en un intercambio descentralizado. Otros deben ganarse proporcionando liquidez o alguna otra «prueba de trabajo». En cualquiera de los dos casos, simplemente conservar el token permite el acceso a las votaciones. - -_Normalmente se utiliza para gobernar protocolos o tókenes descentralizados en sí mismos._ - -#### Un conocido ejemplo {#token-example} - -[MakerDAO](https://makerdao.com) – El token de MakerDAO MKR está ampliamente disponible en intercambios descentralizados y cualquiera puede comprar para poder tener un voto en el futuro del protocolo Maker. - -### Inscripción basada en participaciones {#share-based-membership} - -Las DAO basadas en participaciones son más permisivas, pero aun así bastante abiertas. Cualquier miembro potencial puede presentar una propuesta para unirse a la DAO, generalmente ofreciendo un tributo de algún valor en forma de tókenes o trabajo. Las participaciones representan poder de voto directo y propiedad. Los miembros pueden salir en cualquier momento con su parte proporcional de la tesorería. - -_Normalmente se utiliza para organizaciones más estrechas, centradas en el ser humano, como organizaciones benéficas, colectivos de trabajadores y clubes de inversión. También se pueden gobernar protocolos y tókenes._ - -#### Un conocido ejemplo {#share-example} - -[MolochDAO](http://molochdao.com/) – MolochDAO se centra en la financiación de proyectos Ethereum. Requieren una propuesta de membresía para que el grupo pueda evaluar si tiene la experiencia y el capital necesarios para emitir juicios informados sobre posibles subvenciones. No se puede simplemente comprar acceso a la DAO en el mercado abierto. - -### Adhesión de miembros basada en la reputación {#reputation-based-membership} - -La reputación representa una prueba de participación y otorga poder de voto en la DAO. A diferencia de la adhesión de miembros basada en tókenes o en la participación, las DAO basadas en la reputación no transfieren la propiedad a colaboradores. La reputación no puede comprarse, transferirse ni delegarse; los miembros de la DAO deben ganarse la reputación mediante la participación. La votación en cadena se realiza sin permisos y los potenciales miembros pueden presentar propuestas libremente para unirse a la DAO y solicitar reputación y tókenes como recompensa a cambio de su contribución. - -_Suele usarse para el desarrollo descentralizado y la gobernanza de protocolos y DApps, pero resulta igualmente adecuado para un conjunto diverso de organizaciones, como las benéficas, los colectivos de trabajadores, o los grupos de inversión, entre otros._ - -#### Un conocido ejemplo {#reputation-example} - -[DXdao](https://DXdao.eth.link) – DXdao es un colectivo soberano global que construye y gobierna aplicaciones y protocolos descentralizados desde 2019. Goza de la gobernanza basada en la reputación y el consenso holográfico para coordinar y manejar fondos, por lo que nadie puede sumar capital para influenciar su futuro. - -## Crear/unirse a una DAO {#join-start-a-dao} - -### Unirse a una DAO {#join-a-dao} - -- [Comunidad Ethereum y DAO](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [Lista de DAOHaus de las DAO](https://app.daohaus.club/explore) -- [Lista Tally.xyz de DAO](https://www.tally.xyz) - -### Crear una DAO {#start-a-dao} - -- [Crear una DAO con DAOHaus](https://app.daohaus.club/summon) -- [Iniciar un gobernador DAO con Tally](https://www.tally.xyz/add-a-dao) -- [Crear una DAO impulsada por Aragon](https://aragon.org/product) -- [Empezar una colonia](https://colony.io/) -- [Crear una DAO con el consenso holográfico de DAOstack](https://alchemy.daostack.io/daos/create) - -## Para profundizar sobre el tema {#further-reading} - -### Artículos acerca de las DAO {#dao-articles} - -- [¿Qué es una DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) -- [El manual de las DAO](https://daohandbook.xyz) -- [La casa de las DAO](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) -- [¿Qué es una DAO y para qué sirve?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) -- [Cómo empezar una comunidad digital con una DAO](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) -- [¿Qué es una DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) -- [¿Qué es el consenso holográfico?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) -- [Las DAO no son corporaciones: donde la descentralización en organizaciones autónomas importa, por Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) -- [DAO, DAC, DA y más: una guía de terminología incompleta](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Blog de Ethereum](https://blog.ethereum.org) - -### Vídeos {#videos} - -- [¿Qué es una DAO en cripto?](https://youtu.be/KHm0uUPqmVE) -- [¿Puede una DAO construir una ciudad?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/src/content/translations/es/decentralized-identity/index.md b/src/content/translations/es/decentralized-identity/index.md deleted file mode 100644 index 5c30d07691f..00000000000 --- a/src/content/translations/es/decentralized-identity/index.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: Identidad descentralizada -description: "¿Qué es la identidad descentralizada y por qué es importante?" -lang: es -template: use-cases -emoji: ":id:" -sidebarDepth: 2 -image: ../../../../assets/eth-gif-cat.png -summaryPoint1: Los sistemas tradicionales de identidad han centralizado la emisión, mantenimiento y control de sus identificadores. -summaryPoint2: La identidad descentralizada elimina la dependencia de terceras partes centralizadas. -summaryPoint3: Gracias a la criptografía, los usuarios tienen ahora las herramientas para emitir, retener y controlar sus propios identificadores y certificaciones. ---- - -La identidad está detrás de prácticamente todos los aspectos de su vida. El uso de servicios en línea, la apertura de una cuenta bancaria, la votación en elecciones, la compra de propiedades, los contratos de empleo... Todo esto requiere demostrar su identidad. - -Sin embargo, los sistemas tradicionales de gestión de identidad dependen de intermediarios centralizados que emiten y controlan sus identificaciones y [certificados](#what-are-attestations). Esto significa que no puede controlar su información relacionada con su identidad ni decidir quién tiene acceso a su Información de Identificación Personal (PII) y cuánto acceso tienen estas partes. - -Para resolver estos problemas, hemos descentralizado los sistemas de identidad utilizando cadenas de bloques públicas como Ethereum. La identidad descentralizada permite a los individuos administrar la información relacionada con su identidad. Con soluciones de identidad descentralizada, _tú_ puede crear identificadores y reclamar y mantener sus certificados sin depender de autoridades centralizadas como proveedores de servicios o gobiernos. - -## Qué es la identidad? {#what-is-identity} - -Identidad significa el sentido del yo como individuo, definido por características únicas. La identidad se refiere a ser un _individuo_, es decir, una entidad humana única. La identidad también refiere entidades no humanas, como una organización o autoridad. - -## ¿Qué son los identificadores? {#what-are-identifiers} - -Un identificador es una pieza de información que actúa como un indicador a una identidad o identidad en particular. Los identificadores comunes incluyen: - -- Nombre -- Número de identificación fiscal/de seguridad social -- Número de teléfono móvil -- Fecha y lugar de nacimiento -- Credenciales de identificación digital, por ejemplo, direcciones de correo electrónico, nombres de usuario, avatares - -Estos ejemplos tradicionales de identificadores son emitidos, sostenidos y controlados por entidades centrales. Se necesita permiso del Gobierno para cambiar su nombre o el de una plataforma de redes sociales para cambiar el nombre de usuario. - -## ¿Qué son los certificados? {#what-are-attestations} - -Un certificado es una afirmación hecha por una entidad acerca de otra entidad. Si vive en Estados Unidos, su carné de conducir emitido por el Department of Motor Vehicles (una entidad) certifica que usted (otra entidad) está legalmente autorizado a conducir un coche. - -Los certificados son diferentes de los identificadores. Un certificado _contiene_ identificadores que hacen referencia a una identidad en particular, y hace una afirmación relacionada con esta identidad. Por lo tanto, su carné de conducir tiene identificadores (nombre, fecha de nacimiento, dirección), pero también es una afirmación sobre su derecho legal a conducir. - -### ¿Qué son los identificadores descentralizados? {#what-are-decentralized-identifiers} - -Los identificadores tradicionales como tu nombre jurídico o dirección de correo electrónico dependen de terceros: gobiernos y proveedores de correo electrónico. Los identificadores descentralizados (DID) son diferentes: no son emitidos, administrados o controlados por ninguna entidad central. - -Los identificadores descentralizados son emitidos, mantenidos y controlados por individuos. Una [cuenta Ethereum](/developers/docs/accounts/) es un ejemplo de un identificador descentralizado. Puede crear tantas cuentas como quiera sin el permiso de nadie y sin necesidad de almacenarlas en un registro central. - -Los identificadores descentralizados se almacenan en las cadenas de bloques o redes entre pares. Esto hace a los DIDs [globalmente únicos, resolubles con alta disponibilidad, y criptográficamente verificables](https://w3c-ccg.github.io/did-primer/). Un identificador descentralizado puede ser asociado con diferentes entidades, incluyendo personas, organizaciones o instituciones gubernamentales. - -## ¿Qué hace que los identificadores descentralizados sean posibles? {#what-makes-decentralized-identifiers-possible} - -### 1. Infraestructura de clave pública (ICP) {#public-key-infrastructure} - -La infraestructura de clave pública (ICP) es una medida de seguridad de la información que genera una [clave pública](/glossary/#public-key) y una [clave privada](/glossary/#private-key) para una entidad. La criptografía de clave pública se utiliza en las redes de cadena de bloques para autenticar las identidades del usuario y demostrar la propiedad de los activos digitales. - -Algunos identificadores descentralizados, como una cuenta de Ethereum, tienen claves públicas y privadas. La clave pública identifica al controlador de la cuenta, mientras que las claves privadas pueden firmar y descifrar mensajes para esta cuenta. Los ICP proporcionan pruebas necesarias para autenticar entidades y prevenir la suplantación y el uso de identidades falsas, utilizando [firmas criptográficas](https://andersbrownworth.com/blockchain/public-private-keys/) para verificar todas las reclamaciones. - -### 2. Almacenes de datos descentralizados {#decentralized-datastores} - -Una cadena de bloques sirve como un registro de datos verificables: un repositorio de información abierto, sin confianza y descentralizado. La existencia de cadenas de bloques públicas elimina la necesidad de almacenar identificadores en registros centralizados. - -Si alguien necesita confirmar la validez de un identificador descentralizado, puede buscar la clave pública asociada en la cadena de bloques. Esto es diferente de los identificadores tradicionales que requieren de terceros para autenticarse. - -## ¿Cómo hacen los identificadores descentralizados para generar certificaciones descentralizadas? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} - -La identidad descentralizada es la idea de que la información relacionada con la identidad debe ser autocontrolada, privada y portátil, siendo sus cimientos los identificadores descentralizados y los certificados. - -En el contexto de la identidad descentralizada, las certificaciones (también conocidas como [credenciales verificables](https://www.w3.org/TR/vc-data-model/)) son afirmaciones a prueba de manipulación, criptográficamente verificables realizadas por el emisor. Cada certificado o credencial verificable que una entidad (por ejemplo, una organización) emite está asociada con su CPI. - -Debido a que los CPI se almacenan en la cadena de bloques, cualquiera puede verificar la validez de un certificado comprobando el CPI del emisor en Ethereum. Esencialmente, la blockchain de Ethereum actúa como un directorio global que permite la verificación de CPIs asociados con ciertas entidades. - -Los identificadores descentralizados son la razón por la que se pueden autocontrolar y verificar los certificados. Incluso si el emisor ya no existe, el titular siempre tiene prueba de la procedencia y validez del certificado. - -Los identificadores descentralizados también son cruciales para proteger la privacidad de la información personal a través de la identidad descentralizada. Por ejemplo, si un individuo envía una prueba de un certificado (un carné de conducir), el grupo de verificación no necesita verificar la validez de la información en la prueba. En cambio, el verificador solo necesita garantías criptográficas de la autenticidad del certificado y de la identidad de la organización emisora para determinar si la prueba es válida. - -## Tipos de certificados en identidad descentralizada {#types-of-attestations-in-decentralized-identity} - -La forma en que se almacena y recupera la información de los certificados en un ecosistema de identidad basado en Ethereum es diferente de la gestión tradicional de la identidad. He aquí una visión general de los diversos enfoques para emitir, almacenar y verificar los certificados en sistemas de identidad descentralizados: - -### Certificados fuera de cadena {#off-chain-attestations} - -Un problema que conlleva el almacenamiento de certificados en la cadena es que pueden contener información que los individuos quieren mantener privados. La naturaleza pública de la cadena de bloques de Ethereum no facilita el almacenamiento de tales certificados. - -La solución es emitir certificados mantenidos por los usuarios fuera de la cadena en carteras digitales pero firmadas con el CPI del emisor almacenado en la cadena. Estos certificados están codificados como [JSON Web Tokens](https://en.wikipedia.org/wiki/JSON_Web_Token) y contienen la firma digital del emisor, lo que permite una verificación fácil de las reclamaciones fuera de la cadena. - -Este es un escenario hipotético para explicar los certificados fuera de la cadena: - -1. Una universidad (el emisor) genera un certificado (un certificado académico digital), firma con sus claves y lo emite a Bob (el titular de la identidad). - -2. Bob solicita un empleo y quiere demostrar sus cualificaciones académicas a un empleador, por lo que comparte la certificación desde su cartera. La compañía (el verificador) puede confirmar la validez del certificado comprobando el CPI del emisor (es decir, su clave pública en Ethereum). - -### Certificaciones fuera de cadena con acceso permanente {#offchain-attestations-with-persistent-access} - -Bajo este sistema, los cerficados se transforman en un archivo JSON y son almacenados off-chain (idealmente en una [plataforma de cloud descentralizada](/developers/docs/storage/) como IPFS o Swarm). Sin embargo, un hash [](/glossary/#hash) del archivo JSON se almacena en cadena y se enlaza con un CPI mediante un registro en la cadena. El CPI asociado podría ser el del emisor del certificado o el destinatario. - -Este enfoque permite que las certificaciones obtengan permanencia basada en la cadena de bloques, manteniendo la información de reclamaciones cifrada y verificable. También permite la divulgación selectiva, ya que el titular de la clave privada puede descifrar la información. - -### Certificados en la cadena {#onchain-attestations} - -Los certificados en la cadena se mantienen en [contratos inteligentes](/developers/docs/smart-contracts/) en la cadena de bloques de Ethereum. El contrato inteligente (actuando como un registro) enlazará un certificado a un identificador descentralizado correspondiente en la cadena (una clave pública). - -He aquí un ejemplo que ilustra cómo podrían funcionar en la práctica los certificados en la cadena: - -1. Una empresa (XYZ Corp) planea vender acciones utilizando un contrato inteligente, pero solo quiere compradores que hayan completado una comprobación de antecedentes. - -2. XYZ Corp puede hacer que la empresa realice comprobaciones de antecedentes para emitir certificados en cadena en Ethereum. Este certificado verifica que el individuo ha pasado la comprobación de antecedentes sin exponer ninguna información personal. - -3. El contrato inteligente de venta de acciones puede comprobar el contrato de registro para ver las identidades de los compradores examinados, haciendo posible que el contrato inteligente determine quién está autorizado a comprar acciones y quién no. - -### Los tókenes Souldbound y la identidad {#soulbound} - -[Los tókenes Soulbound](https://vitalik.ca/general/2022/01/26/soulbound.html) (NFT no transferibles) pueden utilizarse para recopilar información única en una cartera específica. Esto crea efectivamente una identidad única en cadena vinculada a una dirección particular de Ethereum que podría incluir tókenes representando logros (ej. terminar algún curso en línea específico o pasar un umbral de puntuación en un juego) o participación en la comunidad. - -## Beneficios de una identidad descentralizada {#benefits-of-decentralized-identity} - -1. La identidad descentralizada aumenta el control individual de la información identificativa. Los identificadores y certificados descentralizados pueden ser verificados sin depender de autoridades centralizadas o servicios de terceros. - -2. Las soluciones de identidad descentralizadas facilitan un método de protección de la privacidad, robusto y confiable para verificar y gestionar la identidad del usuario. - -3. La identidad descentralizada que utiliza la tecnología de cadena de bloques crea confianza entre diferentes partes y proporciona garantías criptográficas para probar la validez de las certificaciones. - -4. La identidad descentralizada permite la portabilidad de los datos de identidad. Los usuarios almacenan certificados e identificadores en la cartera móvil y los pueden compartir con cualquier otro según su criterio. Los identificadores descentralizados y los certificados no están bloqueados en la base de datos de la organización emisora. - -5. La identidad descentralizada debería funcionar bien con las tecnologías emergentes de conocimiento cero que permitan a los individuos demostrar que tienen o han hecho algo sin revelar lo que es esa cosa. Esta podría convertirse en una manera poderosa de combinar confianza y privacidad para aplicaciones como la votación. - -6. La identidad descentralizada permite aplicar mecanismos AntiSybil que detecten cuando un humano individual pretende ser varios humanos diferentes para jugar o hacer spam en algún sistema. - -## Casos de uso de identidad descentralizada {#decentralized-identity-use-cases} - -La identidad descentralizada tiene muchos casos potenciales de uso: - -### 1. Inicio de sesión universal {#universal-dapp-logins} - -La identidad descentralizada puede ayudar a reemplazar los inicios de sesión basados en contraseña con [autenticación descentralizada](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). Los proveedores de servicios pueden emitir certificados a los usuarios, los cuales pueden ser almacenados en una cartera de Ethereum. Un certificado de ejemplo sería un [NFT](/nft/) que otorga al titular acceso a una comunidad en línea. - -Una función [de inicio de sesión con Ethereum](https://login.xyz/) habilitaría entonces a los servidores para confirmar la cuenta de Ethereum del usuario y obtener la verificación necesaria desde la dirección de su cuenta. Esto significa que los usuarios pueden acceder a plataformas y sitios web sin tener que memorizar contraseñas largas y mejorar la experiencia en línea de los usuarios. - -### 2. Autenticación KYC {#kyc-authentication} - -El uso de muchos servicios en línea requiere que los individuos proporcionen certificados y credenciales, como un carné de conducir o pasaporte nacional. Pero este enfoque es problemático porque la información privada de los usuarios puede verse comprometida y los proveedores de servicios no pueden verificar la autenticidad del certificado. - -La identidad descentralizada permite a las empresas saltarse a los procesos [Conozca a Su Cliente (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) convencionales y autenticar identidades de usuario a través de credenciales verificables. Esto reduce el coste de la gestión de la identidad y evita el uso de documentación falsa. - -### 3. Votaciones y comunidades en línea {#voting-and-online-communities} - -Las votaciones en línea y las redes sociales son dos nuevas aplicaciones para la identidad descentralizada. Los esquemas de votación en línea son susceptibles de manipulación, especialmente si los actores maliciosos crean identidades falsas para votar. Pedir a las personas que presenten certificaciones en la cadena puede mejorar la integridad de los procesos de votación en línea. - -La identidad descentralizada puede ayudar a crear comunidades en línea libres de falsas cuentas. Por ejemplo, cada usuario podría tener que autenticar su identidad utilizando un sistema de identidad en la cadena, como el Ethereum Name Service, reduciendo la posibilidad de bots. - -### 4. Protección AntiSybil {#sybil-protection} - -Los ataques Sybil se refieren a seres humanos individuales engañando a un sistema para que piensen que son múltiples personas para aumentar así su influencia. [Las aplicaciones de concesión de subvenciones](https://gitcoin.co/grants/) que utilizan [votación cuadrática](https://www.radicalxchange.org/concepts/plural-voting/) son vulnerables a estos ataques de Sybil, porque el valor de una subvención aumenta cuando más personas votan por ella, incentivando a los usuarios a dividir sus contribuciones a través de muchas identidades. Las identidades descentralizadas ayudan a evitar esto aumentando la carga sobre cada participante para demostrar que son realmente humanos, aunque a menudo sin tener que revelar información privada específica. - -## Usos de la identidad descentralizada {#use-decentralized-identity} - -Hay muchos proyectos ambiciosos que utilizan Ethereum como base para soluciones de identidad descentralizada: - -- **[Ethereum Name Service (ENS)](https://ens.domains/)** - _Un sistema de nomenclatura descentralizado en la cadena, identificadores legibles por máquinas, como direcciones del cartera Ethereum, hashes de contenido y metadatos._ -- **[SpruceID](https://www.spruceid.com/)** - _Un proyecto de identidad descentralizado que permite a los usuarios controlar la identidad digital con cuentas de Ethereum y perfiles ENS en lugar de depender de servicios de terceros._ -- **[Servicio de Atestación de Ethereum (EAS)](https://attest.sh/)**: _Un registro/protocolo descentralizado para hacer atestaciones dentro o fuera de la cadena sobre cualquier cosa._ -- **[Proof of Humanity](https://www.proofofhumanity.id)** - _Proof of Humanity (o PoH) es un sistema de verificación de identidad social construido en Ethereum._ -- **[Brillo](https://www.brightid.org/)** - _Una red de identidad social descentralizada y de código abierto que busca reformar la verificación de identidad a través de la creación y el análisis de un gráfico social._ -- **[Proof-of-personhood Passport](https://proofofpersonhood.com/)** - _Un agregador de identidad digital descentralizado._ - -## Para profundizar sobre el tema {#further-reading} - -### Artículos {#articles} - -- [Casos de Uso de la cadena de bloques: Blockchain in Digital Identity](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ -- [¿Qué es Ethereum ERC725? Administración propia y soberana de identidades en la cadena de bloques](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Ciudad de Sam_ -- [Cómo la cadena de bloques podría resolver el problema de la identidad digital](https://time.com/6142810/proof-of-humanity/) — _Andrew R. Chow_ -- [¿Qué es la identidad descentralizada y por qué merece tu atención?](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ - -### Vídeos {#videos} - -- [Identidad descentralizada (bonificación de sesión Livestream)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Un vídeo muy aclarador de la identidad descentralizada explicado por Andreas_ -- [Iniciar sesión con Ethereum e Identity descentralizada con Ceramic, IDX, React, y 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _tutorial de YouTube sobre la construcción de un sistema de gestión de identidad para crear, leer, y actualizar el perfil de un usuario usando su cartera Ethereum por Nader Dabit_ -- [BrightID - Identidad descentralizada en Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _episodio de pódcast Bankless abordando BrightID, una solución de identidad descentralizada para Ethereum_ -- [Internet fuera de la cadena: Credenciales descentralizadas y verificables](https://www.youtube.com/watch?v=Ez_Bb6j87mg) — _EthDenver 2022 presentación de Evin McMullen_ - -### Comunidades {#communities} - -- [ERC-725 Alianza en GitHub](https://github.com/erc725alliance) — _Partidarios del estándar ERC725 para gestionar la identidad en la cadena de bloques Ethereum_ -- [Servidor SpruceID Discord](https://discord.com/invite/Sf9tSFzrnt) — _Comunidad para entusiastas y desarrolladores que trabajan en SpruceID con Ethereum_ -- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Una comunidad de desarrolladores que contribuyen a la construcción de un marco para datos verificables para aplicaciones_ diff --git a/src/content/translations/es/defi/index.md b/src/content/translations/es/defi/index.md deleted file mode 100644 index 53acb51695a..00000000000 --- a/src/content/translations/es/defi/index.md +++ /dev/null @@ -1,352 +0,0 @@ ---- -title: Finanzas descentralizadas (DeFi) -description: Una visión de las finanzas descentralizadas en Ethereum -lang: es -template: use-cases -emoji: ":money_with_wings:" -image: ../../../../assets/use-cases/defi.png -alt: Un logotipo de Ethereum hecho de bloques de Lego. -sidebarDepth: 2 -summaryPoint1: Una alternativa global y abierta al sistema financiero actual. -summaryPoint2: Productos que le permiten tomar prestado, ahorrar, invertir, comerciar y más. -summaryPoint3: Basado en tecnología de código abierto con la que cualquiera puede programar. ---- - -DeFi o Finanzas Descentralizadas es un sistema financiero global y abierto para la era de Internet, una alternativa al sistema anticuado, fuertemente controlado y mantenido por procesos e infraestructuras del siglo pasado. En DeFi, usted tiene el control y la total visibilidad sobre su dinero. Puede interactuar con mercados mundiales y alternativos a la moneda local o entidades bancarias de su país. Los productos en DeFi permiten el uso de servicios financieros a cualquier persona que tenga una conexión a Internet y además, dichos servicios son manejados y mantenidos por sus propios usuarios. Hasta el momento, miles de millones de dólares en criptomonedas han circulado a través de las aplicaciones DeFi y siguen aumentando cada día. - -## ¿Qué es DeFi? {#what-is-defi} - -DeFi es un término colectivo que se refiere a los diferentes productos y servicios financieros accesibles para cualquier usuario de Ethereum, cualquier persona con una conexión a Internet. Con DeFi, los mercados siempre se encuentran abiertos y no existen autoridades centralizadas que puedan bloquear las transacciones o denegar el acceso a cualquiera de los servicios. Estos servicios, anteriormente lentos y con riesgo de error humano, ahora son automáticos y más seguros debido a que son manejados por un código que cualquier persona puede inspeccionar y analizar. - -Existe una economía creciente criptográfica palpable, en la que se puede prestar, pedir prestado, a corto y a largo plazo, ganar intereses y mucho más. En Argentina, por ejemplo, los usuarios de criptomonedas han logrado escapar de la fuerte inflación que atañe al país a través del uso de las DeFi. Las empresas están empezando a pagar los salarios de sus empleados en tiempo real. Algunas personas han llegado a retirar y pagar préstamos de millones de dólares sin la necesidad de una identificación personal. - - - -## DeFi versus finanzas tradicionales {#defi-vs-tradfi} - -Una de las mejores maneras de determinar el potencial de las DeFi es entender los problemas que existen en la actualidad. - -- Algunas personas no tienen acceso a una cuenta bancaria o al uso de servicios financieros. -- La falta de acceso a servicios financieros puede impedir que las personas consigan un empleo. -- Los servicios financieros pueden bloquear sus transacciones de dinero. -- Sus datos personales son una carga oculta en los servicios financieros que usa. -- Los gobiernos y las instituciones centralizadas pueden cerrar los mercados a voluntad. -- Las horas de comercio están a menudo limitadas al horario laboral de una zona horaria específica. -- Las transferencias de dinero pueden tomar días debido a procesos humanos internos. -- Existe una prima al uso de servicios financieros debido a que las instituciones intermediarias necesitan su parte. - -### Una comparación {#defi-comparison} - -| DeFi | Finanzas tradicionales | -| ------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Usted guarda su dinero. | Las empresas guardan su dinero. | -| Usted controla el destino de su dinero y la manera en la cual se gasta. | Debe confiar en que las compañías no administren mal su dinero, como prestárselo a prestatarios no fiables. | -| Los fondos se transfieren en cuestión de minutos. | Los pagos pueden tomar días debido a procesos manuales. | -| La actividad financiera se realiza bajo un seudónimo. | La actividad financiera está fuertemente vinculada a su identidad. | -| DeFi está abierto a cualquier persona. | Debe solicitar el uso de los servicios financieros. | -| Los mercados siempre están abiertos. | Los mercados cierran debido a que los empleados necesitan descanso. | -| Construido sobre la transparencia: cualquier persona puede mirar los datos del producto e inspeccionar el funcionamiento del sistema. | Las instituciones financieras son como libros cerrados: no puede preguntar por el historial de préstamos, el registro de sus activos administrados, etc. | - - - Explorar las aplicaciones DeFi - - -## Todo empezó con Bitcoin... {#bitcoin} - -Bitcoin es en muchos sentidos la primera aplicación DeFi. Bitcoin permite poseer y controlar valor y mandarlo a cualquier parte del mundo. Lo hace a través de un registro público, que provee una forma para que grandes cantidades de personas, que no se conocen entre sí, puedan acordar diferentes transacciones sin la necesidad de un intermediario. Bitcoin está abierto a cualquier persona y nadie tiene la autoridad para cambiar sus reglas. Las reglas de Bitcoin, como su escasez y el acceso público, están escritas en su tecnología. No se asemeja a las finanzas tradicionales, donde los gobiernos pueden imprimir dinero que devalúa sus ahorros y las empresas pueden cerrar mercados. - -Ethereum se basa en esto. Al igual que Bitcoin, las reglas no pueden cambiar en contra de su voluntad y todo el mundo tiene acceso. Pero también hace que el dinero digital sea programable, a través del uso de [contratos inteligentes](/glossary#smart-contract), permitiendo que pueda ir más allá de simplemente almacenar y enviar valor. - - - -## Dinero programable {#programmable-money} - -Esto puede sonar extraño... ¿por qué querría programar mi dinero? Sin embargo, esto no es más que una característica natural de los tókenes en Ethereum. Cualquier persona puede programar operaciones lógicas dentro de los pagos. De esta manera, puede obtener el control y la seguridad de Bitcoin combinado con los servicios que proveen las instituciones financieras. Esto le permite realizar actividades con las criptomonedas que no podría hacer en Bitcoin como prestar o pedir un préstamo, planificar pagos, invertir en fondos indexados y más. - - -
Si es nuevo en Ethereum, explore y pruebe algunas de nuestras sugerencias de aplicaciones DeFi.
- - Explorar las aplicaciones DeFi - -
- -## ¿Qué puede hacer con DeFi? {#defi-use-cases} - -Existe una alternativa descentralizada para la mayoría de servicios financieros. Pero Ethereum también nos presenta la oportunidad de crear productos financieros completamente nuevos. Esta es una lista en constante crecimiento. - -- [Envíe dinero a cualquier parte del mundo](#send-money) -- [Pague sueldos en tiempo real desde y hacia cualquier parte del mundo](#stream-money) -- [Acceda a monedas estables](#stablecoins) -- [Pida préstamos de fondos usando garantías](#lending) -- [Pida préstamos sin garantías](#flash-loans) -- [Empiece a ahorrar en criptomonedas](#saving) -- [Comercie con tókenes](#swaps) -- [Haga crecer su portafolio](#investing) -- [Financie sus ideas](#crowdfunding) -- [Compre un seguro](#insurance) -- [Gestione su portafolio](#aggregators) - - - -### Envíe dinero a cualquier parte del mundo {#send-money} - -Como cadena de bloques, Ethereum está diseñado para realizar transacciones de una manera segura y con un alcance global. Al igual que Bitcoin, Ethereum hace que enviar dinero alrededor del mundo sea tan fácil como enviar un correo electrónico. Solo se necesita ingresar el [nombre ENS](/nft/#nft-domains) del beneficiario (p. ej. bob.eth) o la dirección de cuenta usando la cartera y este recibirá directamente el pago en cuestión de minutos (por lo general). Para enviar o recibir pagos, necesitará tener una [cartera](/wallets/). - - - Ver DApps de pagos - - -#### Pague sueldos en tiempo real desde y hacia cualquier parte del mundo... {#stream-money} - -Puede pagar sueldos en tiempo real usando Ethereum. Esto le permite pagarle a una persona su sueldo en cualquier momento, dándole acceso a su dinero cuando quiera que lo necesite. De la misma manera, también puede alquilar objetos como taquillas o patinetes eléctricos. - -Por último, si no quiere enviar o pagar en tiempo real usando [ETH](/eth/) debido a la volatilidad de su precio, existen otras divisas alternativas: «stablecoins» o monedas estables. - - - -### Acceso a monedas estables {#stablecoins} - -La volatilidad de las criptomonedas es un problema para muchos productos financieros y para el gasto en general. La comunidad DeFi ha resuelto este desafío a través del uso de las monedas estables. Su valor permanece vinculado a otro activo, generalmente una moneda popular como los dólares. - -Las monedas como Dai o USDC tienen un valor que varía en pocos céntimos del dólar. Esto las hace perfectas para acumular ganancias o comerciar. Muchas personas en Latinoamérica han utilizado las monedas estables como una forma de proteger sus ahorros frente a momentos de gran incertidumbre que involucran a las monedas emitidas por su gobierno. - - - Más sobre monedas estables - - - - -### Préstamos {#lending} - -Los préstamos de dinero de proveedores descentralizados se llevan a cabo de dos formas principales. - -- Entre pares (también conocido como P2P), en que un prestatario tomará prestado directamente de un prestamista específico. -- En función de las reservas (o «pools»), cuando los prestamistas proporcionan reservas (liquidez) a una reserva de la que los prestatarios pueden pedir préstamos. - - - Ver DApps de préstamos - - -El uso de un prestamista descentralizado tiene muchas ventajas... - -#### Préstamos privados {#borrowing-privacy} - -Hoy en día, los créditos y los préstamos de dinero giran totalmente en torno a las personas implicadas. Los bancos necesitan saber si es probable que pueda pagar un préstamo antes de autorizarlo. - -Los préstamos descentralizados funcionan sin que ninguna de las partes tenga que identificarse. En su lugar, el prestatario debe ofrecer una garantía que recibirá el prestamista automáticamente si el crédito no se cubre. Algunos prestamistas incluso aceptan NFT como garantía. Los NFT son una obra de un bien único, como un cuadro. [Más información sobre NFT](/nft/) - -Esto le permite pedir dinero prestado sin cheques de crédito ni entregar información privada. - -#### Acceso a los fondos globales {#access-global-funds} - -Cuando usted utiliza un prestamista o crédito descentralizado, tiene acceso a los fondos depositados de todo el mundo, no solo los fondos bajo custodia de su banco o institución elegida. Esto hace más accesibles los préstamos y mejora los tipos de interés. - -#### Eficiencias fiscales {#tax-efficiencies} - -Los préstamos pueden proporcionarle acceso a los fondos que necesita sin necesidad de vender sus ETH (operación imponible). En su lugar, puede usar ETH como garantía para obtener un préstamo de moneda estable. Esto le da el flujo de efectivo que necesita y le permite mantener sus ETH. Las monedas estables son tókenes mucho mejores para cuando necesita dinero ya que no fluctúan en valor como el ETH. [Más sobre las monedas estables](#stablecoins) - -#### Préstamos flash {#flash-loans} - -Los préstamos Flash son una forma experimental de préstamos descentralizados que le permiten pedir prestado sin garantías ni enviar información personal. - -Por el momento no son muy accesibles para las personas que no saben mucho de tecnología, pero están destinados a poder ser usados por todo el mundo en un futuro. - -Funcionan sobre la base de que el préstamo se retira y se reembolsa en la misma transacción. Si no se puede reembolsar, la transacción se revierte, como si nada hubiese pasado. - -Los fondos que se usan suelen ser retenidos en reservas (grandes reservas, o «pools», de fondos usadas para pedir préstamos). Si no se están usando en un momento determinado, esto le da a cualquiera la oportunidad de prestar fondos, encargarse de la transacción y pagar la totalidad del monto casi al mismo tiempo en que se prestan los fondos. - -Por esta razón, debe incluirse mucha lógica en una transacción muy específica. Un ejemplo sencillo: alguien puede estar usando un préstamo flash para pedir prestada cierta cantidad de un activo a un precio para poder venderlo luego en un intercambio diferente donde el precio es mayor. - -Esto es lo que ocurre en una transacción: - -- Pide prestado X cantidad de $asset a 1,00 $ de A -- Vende X $asset a B por 1,10 $ -- Paga el préstamo a A -- Conserva el beneficio menos la tarifa de transacción - -Si la oferta de B cayera repentinamente y el usuario no pudiera comprar la cantidad suficiente para cubrir el préstamo, la transacción sería fallida. - -Para hacer lo que describimos en el ejemplo de arriba pero en el mundo real necesitaría mucho dinero. Estas estrategias para hacer dinero solo son accesibles para aquellos que ya tienen dinero. Los préstamos flash son un ejemplo de un futuro en el que tener dinero no es necesariamente un requisito previo para ganar dinero. - -[Más información sobre los préstamos flash](https://aave.com/flash-loans/) - - - -### Empiece a ahorrar con criptomonedas {#saving} - -#### Préstamos {#lending} - -Puede ganar un interés en criptomonedas al prestar dinero: verá cómo aumentan sus fondos en tiempo real. Ahora mismo, las tasas de interés son mucho más altas de lo que probablemente pueda obtener en su banco local (si tiene la suerte suficiente de encontrar uno). Le mostramos un ejemplo: - -- Presta sus 100 Dai, [criptomoneda estable](/stablecoins/), a un producto como, por ejemplo, Aave. -- Recibirá 100 Aave Dai (aDai), que es un token que representa su Dai prestado. -- Sus tókenes aDai crecerán en base al tipo de interés y podrá ver cómo aumenta el valor total de su cartera. Dependiendo de la tasa efectiva anual (APR, por sus siglas en inglés), el valor de su cartera será aproximadamente de 100.1234 tras pocos días ¡o incluso horas! -- Puede retirar una cantidad de Dai que sea igual a sus fondos de aDai siempre que quiera. - - - Ver DApps de préstamos - - -#### Loterías sin pérdidas {#no-loss-lotteries} - -Las loterías sin pérdidas —como PoolTogether— son una nueva forma divertida e innovadora de ahorrar dinero. - -- Compra 100 boletos usando 100 tókenes Dai. -- Recibe 100 plDai, que representan sus 100 boletos. -- Si uno de sus boletos es elegido ganador, su saldo de plDai incrementará por el monto del fondo de premios. -- Si no gana, sus 100 plDai se pasarán al sorteo de la siguiente semana. -- Puede retirar una cantidad concreta de Dai que sea igual a la cantidad de sus fondos plDai cuando quiera. - -El fondo de premios es generado gracias al interés que se crea al prestar los depósitos de boletos, como en el ejemplo de préstamo de antes. - - - Probar PoolTogether - - - - -### Tókenes de intercambio {#swaps} - -Hay miles de tókenes en Ethereum. Los intercambios descentralizados (DEX) le permiten intercambiar diferentes tókenes siempre que quiera. Nunca abandonará el control de sus activos. Es como usar un intercambio de monedas cuando se visita un país diferente. Pero la versión DeFi nunca se cierra. Los mercados funcionan a todas horas, los 365 días del año; la tecnología se asegura de que siempre habrá alguien que aceptará un intercambio. - -Por ejemplo, si quiere usar la lotería sin pérdidas PoolTogether (explicada arriba) necesitará un token como Dai o USDC. Estos DEX le permiten cambiar sus ETH por tókenes y viceversa cuando haya acabado. - - - Ver intercambios de tókenes - - - - -### Transacciones avanzadas {#trading} - -Hay más opciones avanzadas para los inversores que quieren tener más control. Órdenes limitadas, perpetuas, operaciones de margen y muchas más. Con las transacciones descentralizadas obtiene acceso a la liquidez global; el mercado nunca se cierra, por lo que siempre tendrá el control de sus activos. - -Cuando usa un intercambio centralizado, tiene que depositar sus activos antes de la operación y confiar en ellos. A pesar de que sus activos sí son depositados, están en riesgo, ya que los intercambios descentralizados son objetivos atractivos para los hackers. - - - Ver DApps de transacciones - - - - -### Haga crecer su portafolio {#investing} - -Hay productos de gestión de fondos en Ethereum que tratarán de hacer crecer su portafolio basándose en la estrategia que usted elija. Este proceso es automático, abierto para todo el mundo y no necesita de un gestor humano que se haga cargo de sus ganancias. - -Un buen ejemplo es el [fondo DeFi Pulse Index (DPI)](https://defipulse.com/blog/defi-pulse-index/). Este es un fondo que se reequilibra automáticamente para asegurar que su portafolio siempre incluya [los mejores tókenes DeFi por capitalización de mercado](https://www.coingecko.com/en/defi). Nunca tendrá que gestionar ninguno de los detalles y puede retirar del fondo cuando usted quiera. - - - Ver DApps de inversión - - - - -### Financie sus ideas {#crowdfunding} - -Ethereum es una plataforma ideal para la recaudación de fondos: - -- Los financiadores potenciales pueden venir de cualquier sitio; Ethereum y sus tókenes están abiertos para cualquiera, en cualquier lugar del mundo. -- Es transparente, por lo que los recaudadores pueden demostrar cuánto dinero se ha recaudado. Incluso puede rastrear cómo se están usando los fondos. -- Los recaudadores pueden configurar reembolsos automáticos si, por ejemplo, hay una fecha límite y una cantidad mínima a la que no se ha llegado. - - - Ver DApps de recaudación de fondos - - -#### Financiación cuadrática {#quadratic-funding} - -Ethereum es un software de código abierto, y un montón del trabajo que se ha hecho hasta ahora se ha financiado gracias a la comunidad. Esto ha llevado al incremento de un nuevo modelo de financiamiento: financiación cuadrática. Tiene el potencial de mejorar la forma en que financiaremos todo tipo de bienes públicos en el futuro. - -El financiamiento cuadrático se asegura de que los proyectos que reciben el mayor financiamiento son aquellos con la demanda más única. En otras palabras, son proyectos que pretenden mejorar la vida de la mayoría de las personas. Así es como funciona: - -1. Hay una reserva de fondos donados. -2. Comienza una ronda de financiación pública. -3. Las personas pueden mostrar su interés en un proyecto donando alguna cantidad de dinero. -4. Una vez se termina la ronda, la reserva correspondiente se distribuye a los proyectos. Aquellos con una demanda única obtienen la mayor cantidad de los grupos correspondientes. - -Esto significa que el Proyecto A con sus 100 donaciones de 1 dólar puede terminar con mayor fondeo que el Proyecto B con una donación única de 10.000 dólares (en función del tamaño del grupo correspondiente). - -[Más información sobre la financiación cuadrática](https://wtfisqf.com) - - - -### Seguros {#insurance} - -El aseguramiento descentralizado tiene como objetivo hacer que el aseguramiento sea más barato, se pague más rápido y sea más transparente. Con más automatización, la cobertura es más asequible y los pagos son mucho más rápidos. Los datos usados para decidir sobre su solicitud son completamente transparentes. - -Los productos de Ethereum —al igual que el software— pueden sufrir virus y aprovechamiento. Ahora mismo hay muchos productos de seguros enfocándose en proteger a sus usuarios de pérdidas de fondos. Sin embargo, existen proyectos que empiezan a crear cobertura para todo lo que la vida nos depare. Un buen ejemplo es la cobertura de Etherisc Crop, que pretende [proteger a los pequeños agricultores en Kenia contra las sequías y las inundaciones](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). El aseguramiento descentralizado ofrece una cobertura más barata para los granjeros a los que se les cobra con precios fuera del de los seguros tradicionales. - - - Ver DApps de aseguramiento - - - - -### Agregadores y gestores de portafolios {#aggregators} - -Con tantas cosas en marcha, necesitará una forma de realizar un seguimiento de todas sus inversiones, préstamos y operaciones. Existen una gran cantidad de productos que le permiten coordinar toda su actividad de DeFi (Finanzas Descentralizadas) desde un solo lugar. Esta es la belleza de la arquitectura abierta de DeFi. Los equipos pueden crear interfaces en las que no solo puede ver sus saldos entre productos, sino que también puede usar sus funciones. Le resultará más útil a medida que explora más sobre DeFi. - - - Ver DApps de portafolios - - - - -## ¿Cómo funciona DeFi? {#how-defi-works} - -DeFi usa criptomonedas y contratos inteligentes para ofrecer servicios que no necesitan intermediarios. En el mundo financiero actual, las instituciones financieras actúan como los burócratas de las transacciones. Esto le da a estas instituciones mucho poder porque su dinero fluye a través de ellos. Además, hay miles de millones de personas alrededor del mundo que ni siquiera pueden abrir una cuenta bancaria. - -En DeFi, un contrato inteligente reemplaza a la institución financiera en la transacción. Un contrato inteligente es un tipo de cuenta de Ethereum que puede almacenar, enviar y reembolsar fondos basándose en ciertas condiciones. Nadie puede alterar un contrato inteligente cuando está en funcionamiento; siempre se ejecutará según lo programado. - -Un contrato que está diseñado para distribuir una prestación o una propina puede ser programado para enviar dinero desde la Cuenta A hasta la Cuenta B cada viernes. Y no cesará de realizar ese proceso siempre y cuando la Cuenta A tenga los fondos suficientes. Nadie puede cambiar el contrato y añadir una Cuenta C como destinatario para robar fondos. - -Los contratos son públicos para cualquiera que quiera inspeccionarlos. Así pues, los contratos malos se someterán al escrutinio de la comunidad en muy poco tiempo. - -Esto quiere decir que actualmente es necesario confiar en los miembros más técnicos de la comunidad de Ethereum, que pueden leer el código que hay detrás. Que la comunidad sea de código abierto ayuda a dejar a los desarrolladores bajo control, pero esta necesidad disminuirá con el tiempo a medida que los contratos inteligentes se vuelvan más fáciles de leer y se desarrollen otras formas de demostrar la fiabilidad del código. - -## Ethereum y DeFi {#ethereum-and-defi} - -Ethereum es la base perfecta para DeFi por varias razones: - -- Nadie es dueño de Ethereum ni de los contratos inteligentes que se ejecutan dentro de ella. Esto le da a todos la oportunidad de usar DeFi. Esto también implica que nadie puede cambiar las reglas que sigue. -- Todos los productos en DeFi, en el fondo, hablan el mismo idioma: Ethereum. Por eso, muchos productos funcionan juntos sin problemas. Puede prestar tókenes en una plataforma e intercambiar el token remunerado en un mercado diferente en una aplicación completamente distinta. Es como poder conseguir puntos de fidelidad en su banco. -- Los tókenes y las criptomonedas están construidas usando Ethereum, un libro de contabilidad compartido que lleva el registro de las transacciones y de los comprobantes de propiedad. -- Ethereum permite una total libertad financiera: la mayoría de los productos nunca se harán cargo de sus fondos, dejándole el control a usted. - -DeFi se puede dividir en varias capas: - -1. La cadena de bloques: Ethereum contiene el registro de transacciones y el estado de las cuentas. -2. Los activos: [ETH](/eth/) y otros tókenes (monedas). -3. Los protocolos, o [contratos inteligentes](/glossary/#smart-contract), brindan funcionalidad, como por ejemplo, un servicio que permite el préstamo descentralizado de activos. -4. [Las aplicaciones](/dapps/): los productos que usamos para gestionar y acceder a los protocolos. - -## Desarrollar DeFi {#build-defi} - -DeFi es un proyecto de código abierto. Puede inspeccionar, copiar e innovar todos los protocolos y aplicaciones de DeFi. Debido a su naturaleza de capas (todos comparten la misma cadena de bloques y los mismos activos), los protocolos pueden mezclarse y emparejarse para desbloquear combinaciones de oportunidades únicas. - - - Más información sobre el desarrollo de DApps - - -## Más información {#futher-reading} - -### Datos sobre DeFi {#defi-data} - -- [DeFi Prime](https://defiprime.com/) -- [DeFi Llama](https://defillama.com/) -- [DeFi Rate](https://defirate.com/) - -### Artículos sobre DeFi {#defi-articles} - -- [Guía sobre DeFi para principantes](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4), _Sid Coelho-Prabhu, 6 de enero de 2020_ - -### Vídeos {#videos} - -- [Finematics - Educación DeFi](https://finematics.com/) – _Vídeos sobre DeFi_ -- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) – _DeFi Básico: Todo lo que necesitas saber para empezar en este apabullante espacio._ -- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA)_¿Qué es DeFi?_ - -### Comunidades {#communities} - -- [Servidor Discord de DeFi Llama](https://discord.gg/buPFYXzDDd) -- [Servidor Discord de DeFi Pulse](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/es/desci/index.md b/src/content/translations/es/desci/index.md deleted file mode 100644 index 9cee3e69718..00000000000 --- a/src/content/translations/es/desci/index.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: Ciencia descentralizada (DesCi) -description: Un vistazo a la ciencia descentralizada en Ethereum -lang: es -template: use-cases -emoji: ":microscope:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Una alternativa global y abierta al sistema científico actual. -summaryPoint2: Tecnología que permite a científicos recaudar fondos, realizar experimentos, compartir información y distribuir ideas, entre otras cosas. -summaryPoint3: Se basa en el movimiento de la ciencia abierta. ---- - -## ¿Qué es la ciencia descentralizada (DeSci)? {#what-is-desci} - -La ciencia descentralizada (DeSci) es un movimiento cuyo objetivo es construir una infraestructura pública para financiar, crear, revisar, acreditar, almacenar y difundir el conocimiento científico de forma justa y equitativa utilizando el conjunto de herramientas Web3. - -DeSci pretende crear un ecosistema en el que se incentive a los científicos a compartir abiertamente sus investigaciones y recibir reconocimiento por su trabajo, al tiempo que se le permita a cualquiera acceder a la investigación y contribuir a ella con facilidad. DeSci se basa en la idea de que el conocimiento científico debe ser accesible para todos y que el proceso de investigación científica debe ser transparente. DeSci está creando un modelo de investigación científica más descentralizado y distribuido, haciéndolo más resistente a la censura y al control por parte de las autoridades centrales. DeSci espera crear un entorno en el que puedan florecer ideas nuevas y no convencionales, descentralizando el acceso a la financiación, a herramientas científicas y canales de comunicación. - -La ciencia descentralizada permite fuentes de financiación más diversas (de [DAO](/dao/), [donaciones cuadráticas](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) a la recaudación colaborativa de fondos, entre otros métodos), datos y métodos de acceso más accesibles, y al proporcionar incentivos para la reproducibilidad. - -### Juan Benet, el movimiento de DeSci - - - -## Cómo DeSci mejora la ciencia {#desci-improves-science} - -Una lista parcial de problemas clave en la ciencia y cómo la ciencia descentralizada puede ayudar a abordar estos problemas - -| **Ciencia descentralizada** | **Ciencia tradicional** | -| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -| La distribución de fondos la determina el público utilizando mecanismos como donaciones cuadráticas o DAO. | Grupos pequeños, cerrados y centralizados controlan la distribución de fondos. | -| Colabore con pares de todo el mundo en equipos dinámicos. | Las organizaciones de financiamiento y las instituciones locales limitan sus colaboraciones. | -| Las decisiones sobre financiamiento se toman en línea y con transparencia. Se exploran nuevos mecanismos de financiación. | Las decisiones de financiación se toman con un largo período de tiempo y una transparencia limitada. Existen mecanismos limitados de financiación. | -| Los servicios de laboratorio compartido más fáciles y transparentes utilizando las primitivas Web3. | Los recursos de laboratorio para compartir son a menudo lentos y opacos. | -| Se pueden desarrollar nuevos modelos de publicación que utilicen primitivas Web3 para dar confianza, transparencia y acceso universal. | Se publica a través de vías establecidas, reconocidas con frecuencia como ineficientes, sesgadas y manipulables. | -| Puede ganar tókenes y reputación por la tarea de revisión de pares. | La tarea de revisión de pares no se remunera, lo que beneficia solamente a los editores con ánimo de lucro. | -| La propiedad intelectual (IP) se genera y se distribuye de acuerdo a términos transparentes. | Solo su institución local es propietaria de la IP que usted genera. El acceso a la propiedad intelectual no es transparente. | -| Al poder tener todos los pasos en la cadena, se comparte todos los datos de la investigación, incluyendo los de esfuerzos fallidos. | Existe sesgo en la publicación porque que es más probable que los investigadores solo compartan experimentos que tuvieron resultados exitosos. | - -## Ethereum y DeSci {#ethereum-and-desci} - -Un sistema científico descentralizado requerirá una seguridad robusta, costos mínimos monetarios y de transacción y un rico ecosistema para el desarrollo de aplicaciones. Ethereum proporciona todo lo necesario para construir una pila (stack) de ciencia descentralizada. - -## Casos de uso de DeSci {#use-cases} - -DeSci está construyendo el conjunto de herramientas científicas para la transformación de la academia de Web2 hacia el mundo digital. A continuación se muestran algunos ejemplos de casos de uso que Web3 puede ofrecer a la comunidad científica. - -### Publicación {#publishing} - -La publicación científica es problemática porque se gestiona mediante la publicación de editoriales que emplean la labor sin ánimo de lucro de científicos, correctores y editores para generar las publicaciones por las que después cobran honorarios de publicación exorbitantes. El público, que generalmente ha pagado indirectamente por el trabajo y los costes de publicación a través de sus impuestos, a menudo no puede acceder a ese mismo trabajo sin pagar de nuevo al editor. Las tarifas totales por publicar documentos científicos individuales suelen ser en cifras de cinco dígitos (USD $), limitando todo el concepto de conocimiento científico como un [bien público](https://www.econlib.org/library/Enc/PublicGoods.html) y generando enormes ganancias para un pequeño grupo de editores. - -Existen plataformas gratuitas y de acceso abierto en forma de servidores de pre-impresión, [como ArXiv](https://arxiv.org/). Sin embargo, estas plataformas carecen de control de calidad, [mecanismos antiSybil](https://csrc.nist.gov/glossary/term/sybil_attack)y generalmente no rastrean métricas relacionadas con el artículo, lo que significa que generalmente sólo se utilizan para dar publicidad del trabajo antes de entregarlo a un editor tradicional. SciHub también hace que los documentos publicados sean de acceso gratuito, pero no legalmente, y sólo después de que los editores ya hayan realizado su pago y protegido el trabajo en estricta legislación sobre derechos de autor. Esto deja una brecha crítica para los documentos científicos y los datos accesibles con un mecanismo de legitimidad integrado y un modelo de incentivos. Las herramientas para construir un sistema de este tipo existen en Web3. - -### Reproducibilidad y replicabilidad {#reproducibility-and-replicability} - -La reproducibilidad y la replicabilidad son los fundamentos de un descubrimiento científico de calidad. - -- Un mismo equipo puede alcanzar los resultados reproducibles varias veces seguidas utilizando la misma metodología. -- Un grupo diferente puede alcanzar los resultados replicables usando la misma configuración experimental. - -Las nuevas herramientas nativas de Web3 pueden asegurar que la reproducibilidad y la replicabilidad sean la base del descubrimiento. Podemos aportar ciencia de calidad al tejido tecnológico de la academia. Web3 ofrece la posibilidad de crear certificaciones para cada componente de análisis: los datos en bruto, el motor de cálculo y el resultado de la aplicación. La belleza de los sistemas de consenso es que cuando se crea una red de confianza para mantener estos componentes, cada participante de la red puede ser responsable de reproducir el cálculo y validar cada resultado. - -### Financiación {#funding} - -El modelo estándar actual para la financiación de la ciencia es que los individuos o grupos de científicos presenten solicitudes por escrito a una agencia de financiación. Un pequeño panel de personas de confianza anota las solicitudes y luego entrevista a los candidatos antes de otorgar fondos a una pequeña parte de los solicitantes. Además de crear atascos que conllevan a veces años de tiempo de espera entre la solicitud y la recepción de una subvención, se sabe que este modelo es muy vulnerable a los sesgos, los intereses propios y la política del panel de revisión. - -Los estudios han demostrado que los paneles de revisión de subvenciones hacen un mal trabajo al seleccionar propuestas de alta calidad, ya que las mismas propuestas entregadas a diferentes paneles tienen resultados muy diferentes. A medida que la financiación se ha vuelto más escasa, se ha concentrado en un grupo más pequeño de investigadores más experimentados con proyectos intelectualmente más conservadores. El efecto ha creado un panorama de financiación altamente competitivo, enquistando incentivos perversos y ahogando la innovación. - -Web3 tiene el potencial de interrumpir este modelo de financiación roto al experimentar con diferentes modelos de incentivos desarrollados por DAO y Web3 en general. [Financiación retroactiva de bienes públicos](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), [financiación cuadrática](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), [Gobernanza de DAO](https://www.antler.co/blog/daos-and-web3-governance) y [estructuras de incentivos tokenizados](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) son algunas de las herramientas Web3 que podrían revolucionar la financiación de la ciencia. - -### Tenencia y desarrollo de la propiedad intelectual {#ip-ownership} - -La propiedad intelectual (PI) es un gran problema en la ciencia tradicional: desde estar atrapada en universidades o biotecnologías sin uso, hasta ser notoriamente difícil de valorar. Sin embargo, la propiedad de activos digitales (como los datos científicos o artículos) es algo que Web3 hace excepcionalmente bien usando [tókenes no fungibles (NFT)](/nft/). - -De la misma manera que los NFT pueden transferir ingresos de vuelta al creador original, puede establecer cadenas transparentes de atribución de valor para recompensar a investigadores, organismos gubernamentales (como DAO), o incluso a los sujetos cuyos datos se recolectan. - -[NFT-PI](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) pueden también funcionar como llave de un repositorio descentralizado de datos de las investigaciones experimentales en curso, conectarse a NFT y a financiación [DeFi](/defi/) (desde fraccionalización hasta reservas de préstamos y tasación de valor). También permite a entidades nativas en cadena como las DAO similares a [VitaDAO](https://www.vitadao.com/) realizar investigaciones directamente en cadena. La llegada de tókenes no trasnferibles ["soulbound" tokens](https://vitalik.ca/general/2022/01/26/soulbound.html) también puede desempeñar un rol importante en DeSci, permitiendo a las personas demostrar su experiencia y credenciales vinculadas a su dirección de Ethereum. - -### Almacenamiento de datos, acceso y arquitectura {#data-storage} - -Los datos científicos pueden ser mucho más accesibles usando patrones Web3, y el almacenamiento distribuido permite que la investigación sobreviva a eventos cataclísmicos. - -El punto de partida debe ser un sistema accesible por cualquier identidad descentralizada que posea las credenciales verificables adecuadas. Esto permite que partes de confianza repliquen los datos sensibles de forma segura, sumando mayor resistencia a la redundancia y a la censura, una reproducción de resultados, e incluso la posibilidad de que múltiples partes colaboren y añadan nuevos datos al conjunto de datos. Métodos de computación confidenciales como [computo-a-datos](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol) proporcionan mecanismos alternativos de acceso para replicación de datos sin procesar, creando "entornos de investigación de confianza" para los datos más sensibles. [La NHS](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) considera a los "entornos de investigación de confianza" como una solución de cara al futuro para la privacidad de datos y la colaboración mediante la creación de un ecosistema donde los investigadores pueden trabajar de forma segura con datos in situ utilizando entornos estandarizados para compartir código y prácticas. - -Las soluciones de datos de Web3 flexibles soportan los escenarios anteriores y proporcionan la base para una ciencia verdaderamente abierta, donde los investigadores pueden crear bienes públicos sin permisos de acceso o tasas. Las soluciones de datos públicos Web3 como IPFS, Arweave y Filecoin están optimizadas para la descentralización. dClimate, por ejemplo, proporciona acceso universal a los datos climáticos y meteorológicos, incluso de estaciones meteorológicas y modelos climáticos predecibles. - -## Participar {#get-involved} - -Explore proyectos y únase a la comunidad DeSci. - -- [DeSci.Global: calendario global de eventos y encuentros](https://desci.global) -- [Cadena de bloques para Science Telegram](https://t.me/BlockchainForScience) -- [Molecule: financie y reciba fondos para sus proyectos de investigación](https://discover.molecule.to/) -- [VitaDAO: recibe financiación a través de acuerdos de investigación patrocinados para la investigación de la longevidad](https://www.vitadao.com/) -- [ResearchHub: publique un resultado científico y participe en conversaciones con pares](https://www.researchhub.com/) -- [LabDAO: pliegue una proteína simulada por ordenador](https://alphafodl.vercel.app/) -- [dClimate API: consulta datos climáticos recopilados por una comunidad descentralizada](https://api.dclimate.net/) -- [DeSci Foundation: creador de herramientas de publicación DeSci](https://descifoundation.org/) -- [DeSci.World: ventanilla única para que los usuarios vean e interactúen con la ciencia descentralizada](https://desci.world) -- [Protocolo Fleming: economía de datos de código abierto que fomenta el descubrimiento biomédico colaborativo](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [OceanDAO: financiación regida por una DAO para la ciencia relacionada con datos](https://oceanprotocol.com/dao) -- [Opscientia: flujos de trabajo científicos descentralizados y abiertos](https://opsci.io/research/) -- [LabDAO: pliegue una proteína simulada por ordenador](https://alphafodl.vercel.app/) -- [Bio.xyz: consiga financiación para su DAO biotecnológico o su proyecto científico descentralizado](https://www.molecule.to/) -- [ResearchHub: publique un resultado científico y participe en conversaciones con pares](https://www.researchhub.com/) -- [VitaDAO: recibe financiación a través de acuerdos de investigación patrocinados para la investigación de la longevidad](https://www.vitadao.com/) -- [Protocolo Fleming: economía de datos de código abierto que fomenta el descubrimiento biomédico colaborativo](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [Laboratorio de inferencia activa](https://www.activeinference.org/) -- [CureDAO: Plataforma de salud de precisión propiedad de la comunidad](https://docs.curedao.org/) -- [IdeaMarkets: permite la credibilidad científica descentralizada](https://ideamarket.io/) -- [DeSci Labs](https://www.desci.com/) - -Estamos abiertos a recibir sugerencias sobre nuevos proyectos por incluir, por favor, ¡consulte nuestra [política de inclusión](/contributing/adding-desci-projects/) para empezar! - -## Para mayor información {#further-reading} - -- [DeSci Wiki por Jocelynn Pearl y Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) -- [Una guía para descentralizar la biotecnología de Jocelynn Pearl para el futuro de 16z](https://future.a16z.com/a-guide-to-decentralized-biotech/) -- [La oportunidad para la DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) -- [Guía de DeSci](https://future.com/what-is-decentralized-science-aka-desci/) -- [Recursos de ciencia descentralizados](https://www.vincentweisser.com/decentralized-science) -- [Los IP-NFT de la molécula Biopharma: una descripción técnica](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) -- [Construyendo sistemas sin confianza de la ciencia por Jon Starr](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) -- [La emergencia de los DAO de la biotecnología](https://molecule.to/blog/the-emergence-of-biotech-daos) -- [Paul Kohlhaas - DeSci: El futuro de la ciencia descentralizada (pódcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) -- [Una ontología de la inferencia activa para la ciencia descentralizada: de la obtención del sentido en contexto a las comunidades epistémicas](https://zenodo.org/record/6320575) -- [DeSci: El futuro de la investigación por Samuel Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) -- [La fundación científica (epílogo: DeSci y las nuevas primitivas cripto) por Nadia](https://nadia.xyz/science-funding) -- [La descentralización está provocando una disrupción en el desarrollo de fármacos](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) - -### Videos {#videos} - -- [¿Qué es la ciencia descentralizada?](https://www.youtube.com/watch?v=-DeMklVWNdA) -- [Conversación entre Vitalik Buterin y el científico Aubrey de Grey sobre la intersección de la investigación de la longevidad y las criptomonedas](https://www.youtube.com/watch?v=x9TSJK1widA) -- [La publicación científica está interrumpida. ¿Puede Web3 darle continuidad?](https://www.youtube.com/watch?v=WkvzYgCvWj8) -- [Juan Benet, DeSci, Laboratorios Independientes, & Ciencias de datos de gran escala](https://www.youtube.com/watch?v=zkXM9H90g_E) -- [Brunemeier: Cómo la ciencia descentralizada puede transformar la investigación biomédica y el capital de riesgo](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/es/developers/docs/mev/index.md b/src/content/translations/es/developers/docs/mev/index.md deleted file mode 100644 index e2ef170f80d..00000000000 --- a/src/content/translations/es/developers/docs/mev/index.md +++ /dev/null @@ -1,221 +0,0 @@ ---- -title: Valor máximo extraíble (MEV) -description: Introducción al valor máximo extraíble (MEV) -lang: es ---- - -El valor máximo extraíble (MEV) se refiere al valor máximo que se puede extraer de la producción de bloques por encima de la recompensa de bloques y las tarifas de gas estándares incluyendo, excluyendo y cambiando el orden de las transacciones en un bloque. - -### Valor extraíble del minero {#miner-extractable-value} - -El valor máximo extraíble se aplicó por primera vez en el contexto de [prueba de trabajo](/developers/docs/consensus-mechanisms/pow/), e inicialmente se refería a él como "valor extraíble de minero". Esto es porque en la prueba de trabajo, los mineros controlan la inclusión, la exclusión y el orden de las transacciones. No obstante, desde la transición a la prueba de participación a través de [La Fusión](/roadmap/merge), los validadores han sido responsables de estas funciones, y la minería ya no forma parte del protocolo Ethereum. Como los métodos de extracción de valor todavía existen, se utiliza en su lugar el término "valor máximo extraíble" actualmente. - -## Requisitos previos {#prerequisites} - -Asegúrese de estar familiarizado con las [transacciones](/developers/docs/transactions/), los [bloques](/developers/docs/blocks/), la [prueba de participación](/developers/docs/consensus-mechanisms/pos) y el [gas](/developers/docs/gas/). Familiarizarse con las [dApps](/dapps/) y [DeFi](/defi/) también le será muy útil. - -## Extracción de MEV {#mev-extraction} - -En teoría, el MEV se acumula por completo en los validadores porque son la única parte que puede garantizar la ejecución de una oportunidad rentable de MEV. De cualquier manera, en la práctica, una gran porción del MEV es extraído por participantes de la red independientes conocidos como "buscadores". Los buscadores ejecutan algoritmos complejos en datos de la cadena de bloques para detectar oportunidades rentables de MEV y tienen bots que en automático envían esas transacciones rentables a la red. - -Los validadores obtienen una parte de la cantidad total de MEV de todos modos porque los buscadores están dispuestos a pagar altas tarifas de gas (que van al validador) a cambio de una mayor probabilidad de incluir sus transacciones rentables en un bloque. Asumiendo que los buscadores son económicamente racionales, la tarifa de gas que estarán dispuestos a pagar será de un monto hasta un 100% del MEV del buscador ( porque si la tarifa de gas fuera más alta, el buscador estaría perdiendo dinero). - -Con eso, para algunas oportunidades de MEV altamente competitivas, como [arbitraje de DEX](#mev-examples-dex-arbitrage), los buscadores pueden tener que pagar el 90% o incluso más de sus ingresos totales de MEV en tarifas de gas al validador porque muchas personas quieren ejecutar la misma transacción de arbitraje rentable. Esto es porque la única manera de garantizar que esas transacciones de arbitraje se ejecuten es que envíen la transacción con el precio de gas más alto. - -### Gas golfing {#mev-extraction-gas-golfing} - -Está dinámica a hecho que ser bueno en el "gas golfing" —programar transacciones de manera que usen la menor cantidad de gas— sea una ventaja competitiva, pues permite a los buscadores fijar un precio de gas más alto, mientras mantienen sus tarifas de gas constantes (tarifas de gas = precio del gas \* gas usado). - -Algunas de las técnicas más conocidas del gas golfing incluyen usar direcciones que comiencen con una larga cadena de ceros (p. ej., [0x0000000000C521824EaFf97Eac7B73B084ef9306](https://etherscan.io/address/0x0000000000c521824eaff97eac7b73b084ef9306)), ya que usan menos espacio (y por lo tanto menos gas) de almacenamiento; y dejar saldos de tokens [ERC-20](/developers/docs/standards/tokens/erc-20/) pequeños en los contratos, ya que cuesta más gas inicializar un espacio de almacenamiento (si el saldo es 0) que actualizar un espacio de almacenamiento. Encontrar más técnicas para reducir el uso de gas es un área de investigación muy activa entre los investigadores. - -### Frontrunners generalizados {#mev-extraction-generalized-frontrunners} - -En vez de programar algoritmos complejos capaces de detectar oportunidades de MEV rentables, algunos buscadores ejecutan frontrunnes generalizados. Los frontrunnes generalizados son bots que observan la zona de espera, o mempool, para detectar transacciones rentables. El frontrunner copia el código de transacción potencialmente rentable, reemplaza las direcciones con la dirección del frontrunner y ejecuta la transacción localmente para verificar que la transacción modificada resulte en una ganancia para la dirección del frontrunner. Si la transacción es efectivamente rentable, el frontrunner entregará la transacción modificada con la dirección reemplazada y un precio de gas más alto eligiendo la transacción original ("frontrunning") y obteniendo el MEV del buscador original. - -### Flashbots {#mev-extraction-flashbots} - -Flashbots es un proyecto independiente que amplía los clientes de ejecución con un servicio que permite a los buscadores enviar transacciones de MEV a los validadores sin revelarlas a la zona de espera o mempool pública. Esto evita el frontrunning por parte de los frontrunners generalizados. - -## Ejemplos de MEV {#mev-examples} - -El MEV surge en la cadena de bloques de varias formas. - -### Arbitraje en DEX {#mev-examples-dex-arbitrage} - -El arbitraje en [exchanges descentralizados](/glossary/#dex) (DEX) es la oportunidad más simple y conocida de MEV. Como resultado, también es la más competitiva. - -Funciona así: si dos DEX ofrecen el mismo token a diferentes precios, alguien puede comprar el token en el DEX más barato y venderlo en el DEX de mayor precio en una sola transacción atómica. Gracias a las mecánicas de la cadena de bloques, esto es un verdadero arbitraje sin riesgos. - -[Este es un ejemplo](https://etherscan.io/tx/0x5e1657ef0e9be9bc72efefe59a2528d0d730d478cfc9e6cdd09af9f997bb3ef4) de una transacción de arbitraje rentable donde un buscador convirtió 1.000 ETH en 1,045 ETH aprovechando diferentes precios del par ETH/DAI en Uniswap vs. Sushiswap. - -### Liquidaciones {#mev-examples-liquidations} - -Las liquidaciones del protocolo de préstamos presentan otra muy conocida oportunidad de MEV. - -Los protocolos de préstamo como Maker y Aave requieren que los usuarios depositen alguna garantía o colateral (por ejemplo, ETH). Este colateral depositado se utiliza para luego hacer un préstamo a otros usuarios. - -Los usuarios pueden pedir prestados activos y tokens de otros dependiendo de lo que necesiten (por ejemplo, puede pedir prestado MKR si desea votar en una propuesta de gobernanza de MakerDAO) hasta un cierto porcentaje de la garantía depositada. Por ejemplo, si la cantidad del préstamo es de un máximo del 30%, un usuario que deposite 100 DAI en el protocolo puede pedir prestado por un valor de hasta 30 DAI de otro activo. El protocolo determina el porcentaje exacto de poder de endeudamiento, o préstamo. - -Como el valor del colateral de quien pide el préstamo fluctúa, también lo hace su poder de préstamo. Si, debido a las fluctuaciones del mercado, el valor de los activos prestados excede, digamos, el 30% del valor de su colateral (nuevamente, el porcentaje exacto está determinado por el protocolo), el protocolo típicamente permite a cualquiera liquidar el colateral, pagando al instante a los prestamistas (esto es similar al funcionamiento de las [llamadas de margen](https://www.investopedia.com/terms/m/margincall.asp) en las finanzas tradicionales). Si se liquida el colateral, el prestatario generalmente tiene que pagar una tasa de liquidación importante, parte de la cual va al liquidador, que es donde entra en juego la oportunidad de MEV. - -Los buscadores compiten para analizar datos de la cadena de bloques lo más rápido posible para determinar qué prestatarios pueden ser líquidados y ser los primeros en enviar una transacción de liquidación y hacerse de la tasa de liquidación. - -### Intercambio sándwich {#mev-examples-sandwich-trading} - -El intercambio sándwich es otro método común de extracción de MEV. - -Para esta operación, un buscador intentará localizar operaciones grandes en DEX en la zona de espera. Por ejemplo, supongamos que alguien quiere comprar 10.000 UNI con DAI en Uniswap. Una operación de esta magnitud tendrá un efecto significativo en el par UNI/DAI, lo que podría aumentar significativamente el precio de UNI en relación con DAI. - -Un buscador puede calcular el efecto de precio aproximado de esta gran operación en el par UNI/DAI y ejecutar una orden de compra óptima inmediatamente _antes_ de la gran transacción, comprando UNI barato y luego colocando una orden de venta inmediatamente _después_ de la gran transacción, vendiendo por el precio más alto causado por la orden grande. - -Sin embargo, el sandwiching, es más arriesgado, ya que no es atómico (a diferencia del arbitraje en DEX, como se describió anteriormente) y es propenso a un [ataque de salmonela](https://github.com/Defi-Cartel/salmonella). - -### MEV de NFT {#mev-examples-nfts} - -El MEV en el espacio de NFT es un fenómeno emergente y no es necesariamente rentable. - -Sin embargo, dado que las transacciones de NFT ocurren en la misma cadena de bloques compartida por todas las demás transacciones de Ethereum, los buscadores pueden utilizar técnicas similares a las utilizadas en oportunidades de MEV tradicionales en el mercado de NFT también. - -Por ejemplo, si hay un drop de NFT popular y un buscador quiere un cierto NFT o conjunto de NFT, puede programar una transacción de tal forma que sea la primera persona en la fila para comprar el NFT o puede comprar todo el conjunto de NFT en una sola transacción. O si un NFT es [erróneamente listado a un bajo precio](https://www.theblockcrypto.com/post/113546/mistake-sees-69000-cryptopunk-sold-for-less-than-a-cent), un buscador puede adelantarse a otros compradores con frontrunning y llevárselo barato. - -Un ejemplo prominente de MEV de NFT ocurrió cuando un buscador gastó USD 7 millones para [comprar](https://etherscan.io/address/0x650dCdEB6ecF05aE3CAF30A70966E2F395d5E9E5) todos los Cryptopunks al precio mínimo. Un investigador de la cadena de bloques [explicó en Twitter](https://twitter.com/IvanBogatyy/status/1422232184493121538) cómo el comprador trabajó con un proveedor de MEV para mantener su compra en secreto. - -### La cola larga {#mev-examples-long-tail} - -El arbitraje en DEX, las liquidaciones y las operaciones sándwich son oportunidades muy conocidas de MEV y es poco probable que sean rentables para los nuevos buscadores. Sin embargo, existe una larga cola de oportunidades de MEV menos conocidas (el MEV de NFT es posiblemente una de esas oportunidades). - -Los buscadores que acaben de iniciarse pueden encontrar más éxito buscando MEV en esta cola más larga. La [tabla de trabajo de MEV](https://github.com/flashbots/mev-job-board) de Flashbot muestra algunas oportunidades emergentes. - -## Efectos del MEV {#effects-of-mev} - -No todo sobre el MEV es malo: hay consecuencias tanto positivas como negativas para el MEV en Ethereum. - -### Lo positivo {#effects-of-mev-the-good} - -Muchos proyectos DeFi dependen de actores económicamente racionales para asegurar la utilidad y la estabilidad de sus protocolos. Por ejemplo, el arbitraje en DEX asegura que los usuarios obtengan los mejores y más correctos precios para sus tokens, y los protocolos de préstamo dependen de liquidaciones rápidas cuando los prestatarios caen por debajo de los ratios de colateralización para garantizar que los prestamistas reciban el pago. - -Sin que los buscadores racionales busquen y corrijan ineficiencias económicas y aprovechen los incentivos económicos de los protocolos, los protocolos de DeFi y las dApps en general podrían no ser tan robustos como lo son hoy en día. - -### Lo negativo {#effects-of-mev-the-bad} - -En la capa de aplicación, algunas formas de MEV, como las transacciones sándwich, dan como resultado una experiencia rotundamente peor para los usuarios. Los usuarios hechos sándwich se enfrentan a un aumento en los deslizamientos y a una peor ejecución de sus transacciones. - -En la capa de red, los frontrunners generalizados y las subastas de precio de gas en las que suelen participar (cuando dos o más frontrunners compiten para que su transacción se incluya en el siguiente bloque aumentando progresivamente el precio del gas de sus transacciones) dan como resultado congestión de la red y altos precios del gas para todos los demás que intentan realizar transacciones regulares. - -Más allá de lo que suceda _dentro de_ los bloques, el MEV puede tener efectos perjudiciales _entre_ los bloques. Si el MEV disponible en un bloque excede significativamente la recompensa de bloque estándar, se puede incentivar a los validadores a reorganzar los bloques y capturar el MEV para ellos mismos, causando la reorganización de la cadena de bloques y la inestabilidad del consenso. - -Esta posibilidad de reorganización de la cadena de bloques se ha [explorado previamente en la cadena de bloques de Bitcoin](https://dl.acm.org/doi/10.1145/2976749.2978408). A medida que la recompensa de bloque de Bitcoin se reduce a la mitad y las comisiones de transacción componen una porción cada vez más grande de la recompensa de bloque, surgen situaciones en las que se vuelve económicamente racional que los mineros renuncien a la recompensa del siguiente bloque y en su lugar reminen bloques pasados con tarifas más altas. Con el crecimiento del MEV, podría ocurrir el mismo tipo de situación en Ethereum, lo que amenaza la integridad de la cadena de bloques. - -## Estado del MEV {#state-of-mev} - -La extracción del MEV se disparó a principios de 2021, lo que dio lugar a precios extremadamente altos del gas en los primeros meses del año. El surgimiento del relay de MEV de Flashbots ha reducido la efectividad de los frontrunners generalizados y ha quitado de la cadena las subastas de gas, lo que resultó en la baja de precios del gas para los usuarios corrientes. - -Si bien muchos buscadores todavía están ganando buen dinero con el MEV, a medida que las oportunidades se vuelven más conocidas y más y más buscadores compiten por la misma oportunidad, los validadores capturarán más y más ingresos totales de MEV (porque el mismo tipo de subastas de gas que se describió originalmente anteriormente también ocurren en Flashbots, aunque de forma privada, y los validadores capturarán el ingreso resultante del gas). El MEV además no es exclusivo de Ethereum, y a medida que las oportunidades se vuelven más competitivas en Ethereum, los buscadores se están pasando a cadenas de bloques alternativas como Binance Smart Chain, donde existen oportunidades de MEV similares a las de Ethereum con menos competencia. - -Por otro lado, la transición de prueba de trabajo a prueba de participación y el esfuerzo continuo para escalar Ethereum utilizando rollups cambian el panorama de MEV de maneras que todavía no están claras. Todavía no es bien sabido cómo tener proponentes de bloques garantizados conocidos ligeramente de antemano cambia la dinámica de extracción de MEV en comparación con el modelo probabilístico en la prueba de trabajo o cómo esto se alterará cuando se implementen la [elección de líder secreto único](https://ethresear.ch/t/secret-non-single-leader-election/11789) y [tecnología de validador distribuido](/staking/dvt/). Del mismo modo, queda por ver qué oportunidades de MEV existen cuando la mayor parte de la actividad de los usuarios se aleje de Ethereum y se lleve a sus rollups y shards de capa 2. - -## MEV en la prueba de participación (PoS) de Ethereum {#mev-in-ethereum-proof-of-stake} - -Como se explicó, el MEV tiene implicaciones negativas para la experiencia general del usuario y la seguridad de la capa de consenso. Pero la transición de Ethereum a un consenso de prueba de participación (apodado "La Fusión") potencialmente introduce nuevos riesgos relacionados con el MEV: - -### Centralización de validadores {#validator-centralization} - -En Ethereum posterior a la Fusión, los validadores (habiendo hecho depósitos de seguridad de 32 ETH) llegan a un consenso sobre la validez de los bloques añadidos a la cadena de Baliza. Dado que 32 ETH pueden estar fuera del alcance de muchos, [unirse a un grupo de staking o participación](/staking/pools/) puede ser una opción más factible. No obstante, una distribución saludable de [participantes en solitario](/staking/solo/) es ideal, ya que mitiga la centralización de los validadores y mejora la seguridad de Ethereum. - -Sin embargo, se cree que la extracción de MEV es capaz de acelerar la centralización de los validadores. Esto se debe en parte a que, como los validadores [ganan menos por proponer bloques](/roadmap/merge/issuance/#how-the-merge-impacts-ETH-supply) que los mineros actualmente, la extracción de MEV puede [influir en gran medida en las ganancias de los validadores](https://github.com/flashbots/eth2-research/blob/main/notebooks/mev-in-eth2/eth2-mev-calc.ipynb) después de La Fusión. - -Es probable que los grupos de participación más grandes tengan más recursos para invertir en las optimizaciones necesarias para capturar oportunidades de MEV. Cuanto más MEV extraen estos grupos, más recursos tienen para mejorar sus capacidades de extracción de MEV (y aumentar los ingresos generales), esencialmente creando [economías de escala](https://www.investopedia.com/terms/e/economiesofscale.asp#). - -Con menos recursos a su disposición, los participantes en solitario pueden no poder beneficiarse de las oportunidades de MEV. Esto puede aumentar la presión sobre los validadores independientes para que se unan a poderosos grupos de participación para aumentar sus ganancias, reduciendo la descentralización en Ethereum. - -### Zonas de espera (mempools) con permisos {#permissioned-mempools} - -En respuesta a los ataques de sandwiching y frontrunning, los operadores podrían comenzar a realizar acuerdos fuera de la cadena con validadores para la privacidad de las transacciones. En lugar de enviar una posible transacción de MEV a la zona de espera o mempool pública, el trader la envía directamente al validador, que la incluye en un bloque y divide las ganancias con el trader. - -Los "pools o grupos oscuros" son una versión más grande de este arreglo y funcionan como zonas de espera con permiso y de solo acceso abiertas a los usuarios dispuestos a pagar ciertas tarifas. Esta tendencia disminuiría la falta de permisos y la no necesidad de confianza de Ethereum, y potencialmente transformaría la cadena de bloques en un mecanismo de "pago para jugar" que favorezca al mejor postor. - -Las zonas de espera con permisos también acelerarían los riesgos de centralización descritos en la sección anterior. Los grandes grupos que ejecutan múltiples validadores probablemente se beneficiarán de ofrecer privacidad de transacciones a los traders y los usuarios, aumentando sus ingresos de MEV. - -Combatir estos problemas relacionados con el MEV después de la Fusión de Ethereum es un área central de investigación. Hasta la fecha, dos soluciones propuestas para reducir el impacto negativo del MEV en la descentralización y la seguridad de Ethereum después de la Fusión son **Proposer-Builder Separation (PBS)** y la **Builder API**. - -### Separación proponente-constructor {#proposer-builder-separation} - -Tanto en la prueba de trabajo como en la prueba de participación, un nodo que construye un bloque lo propone para su adición a la cadena a otros nodos que participan en el consenso. Un nuevo bloque se convierte en parte de la cadena canónica después de que otro minero construye sobre él (en PoW) o recibe certificaciones de la mayoría de los validadores (en Pos). - -La combinación de roles de productor de bloques y proponente de bloques es lo que introduce la mayoría de los problemas relacionados con el MEV descritos anteriormente. Por ejemplo, los nodos de consenso son incentivados a desencadenar reorganizaciones de la cadena en ataques de bandidos de tiempo (time-bandit) para maximizar las ganancias de MEV. - -[La separación proponente-constructor](https://ethresear.ch/t/proposer-block-builder-separation-friendly-fee-market-designs/9725) (PBS) está diseñada para mitigar el impacto del MEV, especialmente en la capa de consenso. La principal característica de PBS es la separación de las reglas del productor de bloques y el proponente de bloques. Los validadores siguen siendo responsables de proponer y votar sobre los bloques, pero una nueva clase de entidades especializadas, llamadas **constructores de bloques**, tienen la tarea de ordenar transacciones y construir construcción. - -Bajo PBS, un constructor de bloques crea un paquete de transacciones y hace una oferta por su inclusión en un bloque de la Cadena de Baliza (como la "carga útil de ejecución"). El validador seleccionado para proponer el siguiente bloque luego comprueba las diferentes ofertas y elige el paquete con la tarifa más alta. PBS esencialmente crea un mercado de subastas, donde los constructores negocian con los validadores que venden espacio de bloques. - -Los diseños actuales de PBS utilizan un [esquema commit-reveal](https://gitcoin.co/blog/commit-reveal-scheme-on-ethereum/) en el que los constructores solo publican un compromiso criptográfico con el contenido de un bloque (encabezado de bloque) junto con sus ofertas. Después de aceptar la oferta ganadora, el proponente crea una propuesta de bloque firmada que incluye el encabezado del bloque. Se espera que el constructor de bloques publique el cuerpo completo del bloque después de ver la propuesta de bloque firmada, y también debe recibir suficientes [atestaciones](/glossary/#attestation) de los validadores antes de que se finalice. - -#### ¿Cómo mitiga la separación proponente-constructor el impacto del MEV? {#how-does-pbs-curb-mev-impact} - -La separación entre proponentes y constructores en el protocolo reduce el efecto del MEV en el consenso eliminando la extracción del MEV del ámbito de los validadores. En su lugar, los constructores de bloques que ejecuten hardware especializado capturarán las oportunidades de MEV en el futuro. - -Esto no excluye totalmente a los validadores de los ingresos relacionados con MEV no obstante, ya que los constructores deben pujar alto para que sus bloques sean aceptados por los validadores. De todas maneras, si los validadores ya no se centran directamente en optimizar los ingresos de MEV, la amenaza de ataques time-bandit se reduce. - -La separación entre proponentes y constructores también reduce los riesgos de centralización de MEV. Por ejemplo, el uso de un esquema commit-reveal elimina la necesidad de que los constructores confíen en que los validadores no robarán la oportunidad de MEV o la expondrán a otros constructores. Esto reduce la barrera para que los participantes en solitario se beneficien del MEV; de lo contrario, los constructores tenderían a favorecer grandes pools con reputación fuera de la cadena y a realizar acuerdos fuera de la cadena con ellos. - -Del mismo modo, los validadores no tienen que confiar en los constructores para que no retengan cuerpos de bloques o publiquen bloques no válidos porque el pago es incondicional. La tarifa del validador todavía se procesa incluso si el bloque propuesto no está disponible o es declarado no válido por otros validadores. En este último caso, el bloque simplemente se descarta, lo que obliga al constructor de bloques a perder todas las tarifas de transacción y los ingresos de MEV. - -### Builer API {#builder-api} - -Si bien la separación proponente-constructor promete reducir los efectos de la extracción de MEV, su implementación requiere cambios en el protocolo de consenso. Específicamente, la regla de [elección de bifurcación](/developers/docs/consensus-mechanisms/pos/#fork-choice) en la Cadena de Baliza tendría que actualizarse. La [Builder API](https://github.com/ethereum/builder-specs), de constructor, es una solución temporal destinada a proporcionar una implementación que funcione de la separación proponente-constructor, aunque con mayores suposiciones de confianza. - -La Builder API es una versión modificada de la [Engine API](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) utilizada por los clientes de capa de consenso para solicitar cargas útiles de ejecución a los clientes de la capa de ejecución. Como se describe en la [especificación del validador honesto](https://github.com/ethereum/consensus-specs/blob/dev/specs/bellatrix/validator.md), los validadores seleccionados para las tareas de propuesta de bloques solicitan un paquete de transacciones de un cliente de ejecución conectado, que incluyen en el bloque de la Cadena de Baliza propuesto. - -La Builder API también actúa como middleware entre los validadores y los clientes de la capa de ejecución; pero es diferente porque permite a los validadores de la Cadena de Baliza obtener bloques de entidades externas (en lugar de construir un bloque localmente utilizando un cliente de ejecución). - -A continuación se muestra una descripción general de cómo funciona la Builder API: - -1. La Builder API conecta al validador con una red de constructores de bloques que ejecutan clientes de capa de ejecución. Al igual que en PBS, los constructores son partes especializadas que invierten en la construcción de bloques que consumen muchos recursos y utilizan diferentes estrategias para maximizar los ingresos obtenidos de MEV + propina de prioridad. - -2. Un validador (que ejecuta un cliente de capa de consenso) solicita cargas útiles de ejecución junto con ofertas de la red de constructores. Las ofertas de los constructores contendrán el encabezado de la carga útil de ejecución —un compromiso criptográfico con el contenido de la carga útil— y una tarifa que se pagará al validador. - -3. El validador revisa las ofertas entrantes y elige la carga útil de ejecución con la tarifa más alta. Usando la Builder API, el validador crea una propuesta de bloque de baliza "ciega" que incluye solo su firma y el encabezado de carga útil de ejecución, y la envía al constructor. - -4. Se espera que el constructor que ejecuta la Builder API responda con la carga útil de ejecución completa al ver la propuesta de bloque ciega. Esto permite al validador crear un bloque de baliza "firmado", que propaga por toda la red. - -5. Aún se espera que un validador que utilice la Builder API construya un bloque localmente en caso de que el constructor de bloques no responda con prontitud, para que no se pierdan las recompensas de la propuesta de bloque. Sin embargo, el validador no puede crear otro bloque utilizando las transacciones ahora reveladas u otro conjunto, ya que equivaldría a _equivocación_ (firmar dos bloques dentro de la misma ranura), lo que es una ofensa que se puede acuchillar. - -Un ejemplo de implementación de la Builder API es [MEV Boost](https://github.com/flashbots/mev-boost), una mejora del [mecanismo de subasta de Flashbots](https://docs.flashbots.net/Flashbots-auction/overview/) diseñado para reducir las externalidades negativas de MEV en Ethereum. La subasta de Flashbots permite a los mineros en prueba de trabajo subcontratar el trabajo de construcción de bloques rentables a partes especializadas llamadas **buscadores**. - -Los buscadores buscan oportunidades lucrativas de MEV y envían paquetes de transacciones a los mineros junto con una [puja de precio sellado](https://en.wikipedia.org/wiki/First-price_sealed-bid_auction) para su inclusión en el bloque. El minero que ejecuta mev-geth, una versión bifurcada del cliente go-ethereum (Geth), solo tiene que elegir el paquete con más ganancias y minarlo como parte del nuevo bloque. Para proteger a los mineros del spam y las transacciones no válidas, los paquetes de transacciones pasan por **relayers** para su validación antes de llegar a los mineros. - -MEV Boost conserva el mismo funcionamiento de la subasta original de Flashbots, aunque con nuevas funciones diseñadas para el cambio de Ethereum a prueba de participación. Los buscadores todavía encuentran transacciones de MEV rentables para su inclusión en bloques, pero una nueva clase de partes especializadas, llamadas **constructores**, son responsables de agregar transacciones y paquetes en bloques. Un constructor acepta ofertas de precio sellado de los buscadores y ejecuta optimizaciones para encontrar la orden más rentable. - -El relayer sigue siendo responsable de validar los paquetes de transacciones antes de pasarlos al proponente. Sin embargo, MEV Boost introduce **escrows** responsables de proporcionar [disponibilidad de datos](/developers/docs/data-availability/) mediante el almacenamiento de cuerpos de bloques enviados por constructores y encabezados de bloque enviados por validadores. Aquí, un validador conectado a un relay solicita las cargas útiles de ejecución disponibles y utiliza el algoritmo de ordenación de MEV Boost para seleccionar el encabezado de la carga útil con la puja + propinas de MEV más valiosas. - -#### ¿Cómo mitiga la Builder API el impacto del MEV? {#how-does-builder-api-curb-mev-impact} - -El principal beneficio de la Builder API es su potencial para democratizar el acceso a las oportunidades de MEV. El uso de esquemas commit-reveal elimina las suposiciones de confianza y reduce las barreras de entrada para los validadores que buscan beneficiarse del MEV. Esto debería reducir la presión sobre los participantes en solitario para que se integren a grandes grupos de participación con el fin de aumentar las ganancias de MEV. - -La implementación generalizada de la Builder API fomentará una mayor competencia entre los constructores de bloques, lo que aumenta la resistencia a la censura. A medida que los validadores revisan las ofertas de varios constructores, el intento de un constructor de censurar una o más transacciones de usuario debe superar a todos los demás constructores sin censura para tener éxito. Esto aumenta drásticamente el costo de censurar a los usuarios y desalienta la práctica. - -Algunos proyectos, como MEV Boost, utilizan la Builder API como parte de una estructura general diseñada para proporcionar privacidad de las transacciones a ciertas partes, como los traders que intentan evitar los ataques de frontrunning/sandwiching. Esto se logra proporcionando un canal de comunicación privado entre los usuarios y los constructores de bloques. A diferencia de las zonas de espera o mempools con permisos descritas anteriormente, este enfoque es beneficioso por las siguientes razones: - -1. La existencia de múltiples constructores en el mercado hace que la censura sea poco práctica, lo que beneficia a los usuarios. Por el contrario, la existencia de pools oscuros centralizados y basadas en la confianza concentraría el poder en manos de unos pocos constructores de bloques y aumentaría la posibilidad de censura. - -2. El software de la Builder API es de código abierto, lo que permite a cualquier persona ofrecer servicios de creación de bloques. Esto significa que los usuarios no se ven obligados a usar ningún constructor de bloques en particular y mejora la neutralidad y la no necesidad de permisos de Ethereum. Además, los traders que buscan MEV no contribuirán inadvertidamente a la centralización mediante el uso de canales de transacciones privados. - -## Recursos relacionados {#related-resources} - -- [Documentos de Flashbots](https://docs.flashbots.net/) -- [Flashbots GitHub](https://github.com/flashbots/pm) -- [MEV-Explore:](https://explore.flashbots.net/) _Explorador del Panel de control y de transacciones en vivo para transacciones de MEV_ -- [mevboost.org:](https://www.mevboost.org/) _Rastreador con estadísticas en tiempo real para relays de MEV-Boost y constructores de bloques_ - -## Más información {#further-reading} - -- [¿Qué es el valor extraíble del minero (MEV)?](https://blog.chain.link/what-is-miner-extractable-value-mev/) -- [MEV y yo](https://www.paradigm.xyz/2021/02/mev-and-me) -- [Ethereum es un bosque oscuro](https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest/) -- [Escapar del bosque oscuro](https://samczsun.com/escaping-the-dark-forest/) -- [Flashbots: frontrunning en la crisis de MEV](https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752) -- [Hilos sobre MEV de @bertcmiller](https://twitter.com/bertcmiller/status/1402665992422047747) -- [MEV-Boost: Fusionar la arquitectura de Flashbots lista](https://ethresear.ch/t/mev-boost-merge-ready-flashbots-architecture/11177) -- [¿Qué es el impulso de MEV?](https://www.alchemy.com/overviews/mev-boost) -- [¿Por qué ejecutar mev-boost?](https://writings.flashbots.net/writings/why-run-mevboost/) -- [La Guía de Hitchhikers hacia Ethereum](https://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum) diff --git a/src/content/translations/es/developers/docs/networking-layer/index.md b/src/content/translations/es/developers/docs/networking-layer/index.md deleted file mode 100644 index d2370c9256d..00000000000 --- a/src/content/translations/es/developers/docs/networking-layer/index.md +++ /dev/null @@ -1,155 +0,0 @@ ---- -title: Capa de red -description: Introducción a la capa de red de Ethereum. -lang: es -sidebarDepth: 2 ---- - -Ethereum es una red de pares, o peer-to-peer, con miles de nodos que deben poder comunicarse entre sí utilizando protocolos estandarizados. La "capa de red" es la serie de protocolos que permiten que esos nodos se encuentren entre sí e intercambien información. Esto incluye el "gossiping" (comunicación uno a muchos) en la red, así como el intercambio de peticiones y respuestas entre nodos específicos (comunicación uno a uno). Cada nodo debe cumplir reglas específicas de red para asegurarse de enviar y recibir la información correcta. - -Hay dos partes en el software cliente (cliente de ejecución y cliente de consenso), cada una con su propia pila de red. Además de comunicarse con otros nodos de Ethereum, los clientes de ejecución y de consenso tienen que comunicarse entre sí. Esta página ofrece una explicación introductoria de los protocolos que permiten esta comunicación. - -Los clientes de ejecución gossipean transacciones sobre la red peer-to-peer de capa de ejecución. Esto requiere una comunicación encriptada entre pares autenticados. Cuando un validador es elegido para proponer un bloque, las transacciones del pool de transacciones local del nodo serán enviadas a los clientes de consenso a través de una conexión RPC local, que se empaquetará en bloques Beacon. Los clientes de consenso luego gossipearán bloques Beacon a través de su red p2p. Esto requiere dos redes p2p separadas: una que conecta clientes de ejecución para el gossiping de transacciones y otra que conecta clientes de consenso para el gossiping de bloques. - -## Requisitos previos {#prerequisites} - -Tener algún conocimiento sobre [nodos y clientes](/developers/docs/nodes-and-clients/) de Ethereum será útil para entender esta página. - -## Capa de ejecución {#execution-layer} - -Los protocolos de red de la capa de ejecución se dividen en dos pilas: - -- la pila de descubrimiento: construida sobre UDP, permite que un nuevo nodo encuentre pares a los que conectarse - -- la pila DevP2P: se asienta sobre TCP y permite a los nodos intercambiar información - -Ambas pilas funcionan en paralelo. La pila de descubrimiento alimenta nuevos participantes en la red, y la pila DevP2P permite sus interacciones. - -### Descubrimiento {#discovery} - -El descubrimiento es el proceso de encontrar otros nodos en la red. Esto se inicia utilizando un pequeño conjunto de nodos de arranque o bootnodes (nodos cuyas direcciones están [incrustadas](https://github.com/ethereum/go-ethereum/blob/master/params/bootnodes.go) en el cliente para que se puedan encontrar inmediatamente y conectar el cliente a los pares). Estos nodos de arranque solo existen para presentar un nuevo nodo a un conjunto de pares: este es su único propósito, no participan en tareas normales del cliente, como la sincronización de la cadena, y solo se utilizan la primera vez que se activa un cliente. - -El protocolo utilizado para las interacciones nodo-nodo de arranque es una forma modificada de [Kademlia](https://medium.com/coinmonks/a-brief-overview-of-kademlia-and-its-use-in-various-decentralized-platforms-da08a7f72b8f), que utiliza una [tabla de hash distribuida](https://en.wikipedia.org/wiki/Distributed_hash_table) para compartir listas de nodos. Cada nodo tiene una versión de esta tabla que contiene la información necesaria para conectarse a sus pares más cercanos. Esta "cercanía" no es geográfica; la distancia se define por la similitud del ID del nodo. La tabla de cada nodo se actualiza regularmente como una función de seguridad. Por ejemplo, en el [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5), los nodos del protocolo de descubrimiento también pueden enviar "anuncios" que muestran los subprotocolos que el cliente admite, lo que permite a los pares negociar sobre los protocolos que ambos pueden usar para comunicarse. - -El descubrimiento comienza con un juego de PING-PONG. Un PING-PONG exitoso "vincula" el nuevo nodo a un nodo de arranque. El mensaje inicial que alerta a un nodo de arranque de la existencia de un nuevo nodo que entra en la red es un `PING`. Este `PING` incluye información con hash sobre el nuevo nodo, el nodo de arranque y una marca de tiempo de caducidad. El nodo de arranque recibe el `PING` y devuelve un `PONG` que contiene el hash `PING`. Si los hashes `PING` y `PONG` coinciden, entonces se verifica la conexión entre el nuevo nodo y el nodo de arranque, y se dice que están "vinculados". - -Una vez unidos, el nuevo nodo puede enviar una solicitud `FIND-NEIGHBOURS` al nodo de arranque. Los datos devueltos por el nodo de arranque incluyen una lista de pares a los que el nuevo nodo puede conectarse. Si los nodos no se vinculan, la solicitud `FIND-NEIGHBOURS` fallará, por lo que el nuevo nodo no podrá entrar en la red. - -Una vez que el nuevo nodo recibe una lista de vecinos del nodo de arranque, comienza un intercambio PING-PONG con cada uno de ellos. Los PING-PONG exitosos vinculan el nuevo nodo con sus vecinos, lo que permite el intercambio de mensajes. - -``` -start client --> connect to bootnode --> bond to bootnode --> find neighbours --> bond to neighbours -``` - -Los clientes de ejecución están utilizando actualmente el protocolo de descubrimiento [Discv4](https://github.com/ethereum/devp2p/blob/master/discv4.md), y hay una iniciativa activa para migrar al protocolo [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5). - -#### ENR: Registros de nodos de Ethereum {#enr} - -El [Registro de nodos de Ethereum (ENR)](/developers/docs/networking-layer/network-addresses/) es un objeto que contiene tres elementos básicos: una firma (hash del contenido del registro hecho de acuerdo con algún esquema de identidad acordado), un número de secuencia que rastrea los cambios en el registro y una lista arbitraria de pares clave:valor. Este es un formato a prueba de futuro que permite un intercambio más fácil de información de identificación entre nuevos pares y es el formato preferido de [dirección de red](/developers/docs/networking-layer/network-addresses) para los nodos de Ethereum. - -#### ¿Por qué el descubrimiento se basa en UDP? {#why-udp} - -UDP no admite ninguna comprobación de errores, el reenvío de paquetes fallidos ni la apertura y cierre dinámicos de conexiones; en su lugar, solo dispara un flujo continuo de información a un objetivo, independientemente de si se recibe con éxito. Esta funcionalidad mínima también se traduce en una sobrecarga mínima, lo que hace que este tipo de conexión sea muy rápida. Para el descubrimiento, donde un nodo simplemente quiere dar a conocer su presencia para luego establecer una conexión formal con un par, UDP es suficiente. Sin embargo, para el resto de la pila de redes, UDP no es apto para el propósito. El intercambio de información entre los nodos es bastante complejo y, por lo tanto, necesita un protocolo más completo que pueda admitir el reenvío, la comprobación de errores, etc. La sobrecarga adicional asociada con TCP hace da valor a la funcionalidad adicional o hace que tenga sentido. Por lo tanto, la mayoría de la pila P2P opera a través de TCP. - -### DevP2P {#devp2p} - -DevP2P es en sí mismo toda una pila de protocolos que Ethereum implementa para establecer y mantener la red entre pares. Después de que nuevos nodos entran en la red, sus interacciones se rigen por protocolos de la pila [DevP2P](https://github.com/ethereum/devp2p). Todos estos se basan en TCP e incluyen el protocolo de transporte RLPx, el protocolo de cable y varios subprotocolos. [RLPx](https://github.com/ethereum/devp2p/blob/master/rlpx.md) es el protocolo que rige el inicio, la autenticación y el mantenimiento de sesiones entre nodos. RLPx codifica los mensajes utilizando RLP (Prefijo de Longitud Recursiva), que es un método muy eficiente en el uso de espacio para codificar los datos en una estructura mínima para el envío entre nodos. - -Una sesión RLPx entre dos nodos comienza con un apretón de manos criptográfico inicial. Esto implica que el nodo envíe un mensaje de autenticación, que luego es verificado por el par. Una vez que la verificación es exitosa, el par genera un mensaje de confirmación de autenticación para mostrar al nodo iniciador. Este es un proceso de intercambio de claves que permite a los nodos comunicarse de forma privada y segura. Un apretón de manos criptográfico exitoso hace que ambos nodos envíen un mensaje de "hola" el uno al otro "en el cable". El protocolo de cable se inicia mediante un intercambio exitoso de mensajes de saludo. - -Los mensajes de saludo contienen: - -- versión del protocolo -- ID del cliente -- puerto -- ID del nodo -- lista de subprotocolos compatibles - -Esta es la información necesaria para una interacción exitosa porque define qué capacidades se comparten entre ambos nodos y configura la comunicación. Hay un proceso de negociación de subprotocolos en el que se comparan las listas de subprotocolos compatibles con cada nodo y los que son comunes a ambos nodos se pueden utilizar en la sesión. - -Junto con los mensajes de saludo, el protocolo de cable también puede enviar un mensaje de "desconexión" que avisa a un par que la conexión se cerrará. El protocolo de cable también incluye mensajes PING y PONG que se envían periódicamente para mantener una sesión abierta. Por lo tanto, los intercambios entre RLPx y el protocolo de cable establecen los cimientos de la comunicación entre los nodos, proporcionando el andamiaje para que se intercambie información útil de acuerdo con un subprotocolo específico. - -### Subprotocolos {#sub-protocols} - -#### Protocolo de cable {#wire-protocol} - -Una vez que los pares están conectados y se ha iniciado una sesión RLPx, el protocolo de cable define cómo se comunican los pares. Inicialmente, el protocolo de cable definía tres tareas principales: sincronización de la cadena, propagación de bloques e intercambio de transacciones. Sin embargo, una vez que Ethereum cambió a la prueba de participación, la propagación de bloques y la sincronización de cadenas se convirtieron en parte de la capa de consenso. El intercambio de transacciones todavía está en el ámbito de los clientes de ejecución. El intercambio de transacciones se refiere al intercambio de transacciones pendientes entre nodos para que los mineros puedan seleccionar algunas de ellas para su inclusión en el siguiente bloque. Hay información detallada sobre estas tareas [aquí](https://github.com/ethereum/devp2p/blob/master/caps/eth.md). Los clientes que admiten estos subprotocolos los exponen a través del [JSON-RPC](/developers/docs/apis/json-rpc/). - -#### les (subprotocolo ligero de ethereum) {#les} - -Este es un protocolo mínimo para sincronizar clientes ligeros. Tradicionalmente, este protocolo rara vez se ha utilizado porque los nodos completos deben servir datos a los clientes ligeros sin ser incentivados. El comportamiento predeterminado de los clientes de ejecución no es servir datos de clientes ligeros sobre les. Hay más información disponible en la [especificación de Ies](https://github.com/ethereum/devp2p/blob/master/caps/les.md). - -#### Snap {#snap} - -El [protocolo snap](https://github.com/ethereum/devp2p/blob/master/caps/snap.md#ethereum-snapshot-protocol-snap) es una extensión opcional que permite a los pares intercambiar instantáneas de estados recientes, lo que les permite verificar los datos de la cuenta y el almacenamiento sin tener que descargar nodos intermedios de Merkle trie. - -#### Wit (protocolo testigo) {#wit} - -El [protocolo testigo](https://github.com/ethereum/devp2p/blob/master/caps/wit.md#ethereum-witness-protocol-wit) es una extensión opcional que permite el intercambio de testigos de estado entre pares, ayudando a sincronizar los clientes con la punta de la cadena. - -#### Whisper {#whisper} - -Whisper era un protocolo que tenía como objetivo ofrecer mensajes seguros entre pares sin escribir ninguna información en la cadena de bloques. Era parte del protocolo de cable DevP2P, pero ahora está obsoleto. Existen otros [proyectos relacionados](https://wakunetwork.com/) con objetivos similares. - -## La capa de consenso {#consensus-layer} - -Los clientes de consenso participan en una red separada entre pares con una especificación diferente. Los clientes de consenso necesitan participar en el gossiping de bloques para que puedan recibir nuevos bloques de sus pares y transmitirlos cuando sea su turno de proponer bloques. Como sucede con la capa de ejecución, esto primero requiere un protocolo de descubrimiento para que un nodo pueda encontrar pares y establecer sesiones seguras para intercambiar bloques, atestaciones, etc. - -### Descubrimiento {#consensus-discovery} - -Al igual que los clientes de ejecución, los clientes de consenso usan [discv5](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-discovery-domain-discv5) sobre UDP para encontrar pares. La implementación de la capa de consenso de discv5 difiere de la de los clientes de ejecución solo en que incluye un adaptador que conecta el discov5 a una pila [libP2P](https://libp2p.io/), dejando obsoleto DevP2P. Las sesiones RLPx de la capa de ejecución están obsoletas en favor del apretón de manos del canal seguro de ruido de libP2P. - -### ENR {#consensus-enr} - -El registro de nodos de Ethereum (ENR) de los nodos de consenso incluye la clave pública del nodo, la dirección IP, los puertos UDP y TCP y dos campos específicos de consenso: el bitfield de la subred de certificación y la clave `eth2`. El primero hace que sea más fácil para los nodos encontrar pares que participen en subredes de gossiping de certificación específicas. La clave `eth2` contiene información sobre qué versión de bifurcación de Ethereum está usando el nodo, lo que garantiza que los pares se conecten al Ethereum correcto. - -### libP2P {#libp2p} - -La pila libP2P admite todas las comunicaciones después del descubrimiento. Los clientes pueden marcar y escuchar en IPv4 y/o IPv6 como se define en su ENR. Los protocolos de la capa libP2P se pueden subdividir en los dominios gossip y req/resp. - -### Gossip {#gossip} - -El dominio de gossip incluye toda la información que tiene que difundirse rápidamente por toda la red. Esto incluye bloques de baliza (beacon), pruebas, certificaciones, salidas y salidas forzadas (slashings). Esto se transmite utilizando libP2P gossipsub v1 y se basa en varios metadatos que se almacenan localmente en cada nodo, incluido el tamaño máximo de las cargas útiles de gossip para recibir y transmitir. La información detallada sobre el dominio de gossip está disponible [aquí](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-gossip-domain-gossipsub). - -### Solicitud-respuesta {#request-response} - -El dominio de solicitud-respuesta (request-response) contiene protocolos para los clientes que solicitan información específica de sus pares. Algunos ejemplos incluyen solicitar a bloques de baliza específicos que coincidan con ciertos hashes raíz o dentro de un rango de ranuras. Las respuestas siempre se devuelven como bytes codificados SSZ con compresión rápida. - -## ¿Por qué el cliente de consenso prefiere SSZ en lugar de RLP? {#ssz-vs-rlp} - -SSZ significa serialización simple. Utiliza desplazamientos fijos que facilitan la decodificación de partes individuales de un mensaje codificado sin tener que decodificar toda la estructura, lo que es muy útil para el cliente de consenso, ya que puede extraer de manera eficiente partes específicas de información de los mensajes codificados. También está diseñado específicamente para integrarse con los protocolos de Merkle, con ventajas de eficiencia relacionadas para la Merkleización. Dado que todos los hashes en la capa de consenso son raíces de Merkle, esto contribuye a la mejora significativa. SSZ también garantiza representaciones únicas de valores. - -## Conexión de los clientes de ejecución y de consenso {#connecting-clients} - -Tanto los clientes de consenso como los de ejecución se ejecutan en paralelo. Necesitan estar conectados para que el cliente de consenso pueda proporcionar instrucciones al cliente de ejecución, y el cliente de ejecución pueda pasar paquetes de transacciones al cliente de consenso para incluirlos en los bloques de Baliza. La comunicación entre los dos clientes se puede lograr utilizando una conexión local de RPC. Una API conocida como [Engine-API](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) define las instrucciones enviadas entre los dos clientes. Dado que ambos clientes están detrás de una sola identidad de red, comparten un ENR (registro de nodos de Ethereum) que contiene una clave separada para cada cliente (clave eth1 y clave eth2). - -A continuación se muestra un resumen del flujo de control, con la pila de red relevante entre paréntesis. - -##### Cuando el cliente de consenso no es productor de bloques: - -- El cliente de consenso recibe un bloque a través del protocolo de gossiping de bloques (p2p de consenso) -- El cliente de consenso valida previamente el bloque, es decir, se asegura de que llegue de un remitente válido con los metadatos correctos -- Las transacciones en el bloque se envían a la capa de ejecución como una carga útil de ejecución (conexión local de RPC) -- La capa de ejecución ejecuta las transacciones y valida el estado en el encabezado del bloque (es decir, comprueba la coincidencia de los hashes) -- La capa de ejecución pasa los datos de validación a la capa de consenso, bloque que ahora se considera validado (conexión local RPC) -- La capa de consenso añade un bloque a la cabeza de su propia cadena de bloques y hace una verificación, transmitiendo la verificación en la red (p2p de consenso) - -##### Cuando el cliente de consenso es productor de bloques: - -- El cliente de consenso recibe un aviso de que es el próximo productor de bloques (p2p de consenso) -- La capa de consenso invoca el método `create block` en el cliente de ejecución (RPC local) -- La capa de ejecución accede a la zona de espera (mempool) completada por el protocolo de gossiping de la transacción (p2p de ejecución) -- El cliente de ejecución agrupa las transacciones en un bloque, ejecuta las transacciones y genera un hash de bloques -- El cliente de consenso agarra las transacciones y el hash de bloques del cliente de ejecución y los agrega al bloque de baliza (RPC local) -- El cliente de consenso transmite el bloque a través del protocolo de gossiping de bloque (p2p de consenso) -- Otros clientes reciben el bloque propuesto a través del protocolo de gossiping de bloque y lo validan como se describió anteriormente (p2p de consenso) - -Una vez que el bloque ha sido certificado por suficientes validadores, se añade a la cabeza de la cadena, se justifica y finalmente se finaliza. - -![](cons_client_net_layer.png) ![](exe_client_net_layer.png) - -Esquema de capa de red para clientes de consenso y ejecución, de [ethresear.ch](https://ethresear.ch/t/eth1-eth2-client-relationship/7248) - -## Más información {#further-reading} - -[DevP2P](https://github.com/ethereum/devp2p) [LibP2p](https://github.com/libp2p/specs) [Especificaciones de red de capa de consenso](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#enr-structure) [kademlia a discv5](https://vac.dev/kademlia-to-discv5) [kademlia paper](https://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf) [Introducción a Ethereum p2p](https://p2p.paris/en/talks/intro-ethereum-networking/) [Relación eth1/eth2](http://ethresear.ch/t/eth1-eth2-client-relationship/7248) [Video con detalles sobre La fusión y el cliente eth2](https://www.youtube.com/watch?v=zNIrIninMgg) diff --git a/src/content/translations/es/developers/docs/nodes-and-clients/client-diversity/index.md b/src/content/translations/es/developers/docs/nodes-and-clients/client-diversity/index.md deleted file mode 100644 index 5bb10bf1f26..00000000000 --- a/src/content/translations/es/developers/docs/nodes-and-clients/client-diversity/index.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -title: Diversidad de clientes -description: Explicación detallada sobre la importancia de la diversidad de clientes en Ethereum. -lang: es -sidebarDepth: 2 ---- - -El software ejecutado por el cliente, controla el comportamiento de un nodo de Ethereum. Hay diferentes niveles de producción de clientes de Ethereum, cada uno de ellos desarrollado y mantenido en varios idiomas por diferentes equipos. Los clientes han sido construidos con especificaciones similares que permiten la comunicación entre ellos, compartir rasgos comunes y ofrecer una experiencia al cliente similar. No obstante, en estos momentos, la distribución de clientes en los nodos no es del todo uniforme como para que el reforzamiento de la red opere a su máximo potencial. Idóneamente, los usuarios se dividen de manera uniforme a través de varios clientes para generar tanta diversidad de clientes como sea posible en la red. - -## Prerrequisitos {#prerequisites} - -Si aún quiere profundizar sobre qué son los nodos y clientes, acceda a la sección de [nodos y clientes](/developers/docs/nodes-and-clients/). Las capas de [ejecución](/glossary/#execution-layer) y [consenso](/glossary/#consensus-layer) se describen en el glosario. - -## ¿Por qué existen múltiples clientes? {#why-multiple-clients} - -La existencia de clientes múltiples, desarrollados y mantenidos de manera independiente se debe a que la diversidad de clientes permite que la red sea más resiliente frente a ataques o errores. Los clientes múltiples son una baza singular para Ethereum. Otras cadenas de bloques dependen de la infalibilidad de un solo cliente. Sin embargo, no es una tarea simple mantener múltiples clientes disponibles, ya que la comunidad debe adoptarlos y la cantidad de nodos disponibles deberá distribuirse lo más uniformemente posible entre ellos. - -## ¿Por qué es tan importante la diversidad de clientes? {#client-diversity-importance} - -Para garantizar el buen estado de una red descentralizada, es vital contar con varios clientes desarrollados y mantenidos de manera independiente. Entendamos por qué. - -### Errores {#bugs} - -Un error producido en un solo cliente es menos arriesgado para la red cuando se focaliza en una minoría de los nodos de Ethereum. Al haber una distribución equitativa de los nodos entre varios clientes, la probabilidad de que la mayoría de los clientes se vean afectados por una misma incidencia se reduce. Esto trae como resultado que la red sea más robusta. - -### Resiliencia frente a los ataques {#resilience} - -La diversidad de clientes también ofrece una mayor resiliencia frente a los ataques. Por ejemplo, si un ataque se dirige [a un cliente en particular](https://twitter.com/vdWijden/status/1437712249926393858) y a una ramificación específica de la cadena es poco probable que tenga éxito, ya que es muy improbable que otros clientes puedan verse afectados de la misma manera y que la cadena predilecta se mantenga incorrupta. La poca diversidad de clientes aumenta el riesgo de hackeos dirigidos al cliente dominante. Se ha probado que la diversidad de clientes es una forma de defensa de vital importancia ante ataques maliciosos contra la red. Por ejemplo, el ataque de servicios denegados de Shanghai de 2016 tuvo lugar debido a que los atacantes lograron forzar al cliente dominante (Geth), haciéndolo ejecutar una operación de disco ralentizado i/o decenas de miles de veces por bloque. Gracias a que clientes alternativos se encontraban en línea sin compartir los puntos débiles, Ethereum pudo resistir el ataque y continuar operando mientras se lograban reparar los fallos en Geth. - -### Finalidad de la prueba de participación {#finality} - -Un error en un cliente de consenso con más del 33 % de los nodos de Ethereum podría impedir que la capa de consenso finalizara, lo que significa que los usuarios no podrían confiar en que las transacciones no se revirtieran o cambiarían en algún momento. Esto podría ser bastante problemático para muchas de las aplicaciones contruidas en Ethereum, especialmente las DeFi. - - Peor aún, un error crítico en un cliente con dos tercios de mayoría haría que la cadena se dividiera y finalizara de manera incorrecta, haciendo que un gran número de validadores se vieran involucrados en una cadena inválida. Si los validadores quisieran reincorporarse a la cadena correcta, se verían afectados por recortes o por un lento y costoso proceso de retirada y reactivación voluntaria. La magnitud de los recortes aumenta en función del número de nodos culpables, con un máximo de dos tercios de la mayoría (32 ETH) recortados. - -A pesar de que es poco probable que se den estas situaciones, el ecosistema de Ethereum puede mitigar dichos riesgos igualando la distribución de clientes a través de los nodos activos. Idóneamente, ningún cliente de consenso podría alcanzar una participación del 33 % del total de los nodos. - -### Responsabilidad compartida {#responsibility} - -La tenencia de clientes mayoritarios también conlleva un costo humano. Esto supondría una sobrecarga de estrés y responsabilidades a un equipo de desarrollo a pequeña escala. Mientras haya menos diversidad de clientes, mayor será la carga de responsabilidades adjudicadas a los desarrolladores a cargo del cliente mayoritario. Distribuir la responsabilidad entre múltiples equipos favorece el bienestar tanto de los nodos de la red de Ethereum como de las personas involucradas. - -## Diversidad actual de clientes {#current-client-diversity} - -![Gráfico que muestra la diversidad de clientes](./client-diversity.png) _Diagrama de datos de [ethernodes.org](https://ethernodes.org) y [clientdiversity.org](https://clientdiversity.org/)_ - -Los dos gráficos de la parte superior muestran capturas del estado actual de la diversidad de clientes para las capas de ejecución y consenso (en el momento de su redacción en enero de 2022). La capa de ejecución está abrumadoramente dominada por [Geth](https://geth.ethereum.org/), [Open Ethereum](https://openethereum.github.io/) en un lejano segundo lugar, [Erigon](https://github.com/ledgerwatch/erigon) en tercero y [Nethermind](https://nethermind.io/) en el cuarto, además de la participación de otros clientes cuya participación representa menos del 1 % en la red. En la capa de consenso, el cliente de usado con mayor frecuencia es [Prysm](https://prysmaticlabs.com/#projects). A pesar de no ser tan predominante como Geth, representa más del 60 % de la red. [Lighthouse](https://lighthouse.sigmaprime.io/) y [Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) acaparan el 20 % y 14 % respectivamente, mientras que el uso del resto de los clientes es poco común. - -Los datos sobre la capa de ejecución se han sacado de [Ethernodes](https://ethernodes.org) el 23/01/2022. Los datos sobre la capa de consenso provienen de [Michael Sproul](https://github.com/sigp/blockprint). Los datos de clientes de consenso son más difíciles de obtener, porque los clientes de la capa de consenso no siempre tienen rastros inequívocos que se pueden utilizar para identificarlos. La información se ha creado gracias a un algoritmo de clasificación que en algunas ocasiones confunde a algunos de los clientes minoritarios (vea [aquí](https://twitter.com/sproulM_/status/1440512518242197516) para detalles adicionales). En el diagrama de la parte superior, estas clasificaciones ambiguas se indican con una etiqueta (p. ej.,: Nimbus/Teku). No obstante, es evidente que la mayoría de la red se ejecuta con Prysm. Los datos son una muestra de un determinado grupo de bloques (específicamente de los bloques baliza situados entre las ranuras 2048001 y 2164916) en los que el predominio de Prysm es relativamente mayor, sobrepasando el 68 %. A pesar de que solo son capturas, los valores presentes en el diagrama ofrecen una visión generalizada del estado actual de la diversidad de clientes. - -Los datos actualizados de diversidad de clientes para la capa de consenso ahora están disponibles en [clientdiversity.org](https://clientdiversity.org/). - -## Capa de ejecución {#execution-layer} - -Hasta el momento, el foco de la discusión sobre la diversidad de clientes se centraba en la capa de consenso. Sin embargo, actualmente, el cliente de ejecución [Geth](https://geth.ethereum.org), se encuentra a cargo de cerca del 85 % del total de los nodos. Estos son porcentajes críticos, tanto para el cliente de consenso como para el de ejecución. Por ejemplo, un error en Geth que afecte el manejo de las transacciones o un error en la construcción de la carga útil de ejecución podría generar una finalización de transacciones problemática o con errores para los clientes de consenso. Así pues, Ethereum podría ser mucho más saludable con una distribución más equitativa de clientes de ejecución, en donde, idóneamente, no haya ningún cliente con más del 33 % de la participación en la red. - -## Uso de clientes minoritarios {#use-minority-client} - -Para abordar la diversidad de clientes y escoger un cliente minoritario no solo se necesitan usuarios individuales, sino también reservas de minería/validación e instituciones como grandes DApps e intercambios para intercambiar clientes también. A pesar de ello, todos los usuarios pueden participar en el proceso de reequilibrar las disparidades actuales y normalizar el uso de todo el software disponible de Ethereum. Tras La Fusión, todos los operadores de nodo deberán ejecutar un cliente de ejecución y un cliente de consenso. Escoger alguna de las combinaciones de clientes sugeridas a continuación, ayudará a aumentar la diversidad de clientes. - -### Clientes de ejecución {#execution-clients} - -[Besu](https://www.hyperledger.org/use/besu) - -[Nethermind](https://downloads.nethermind.io/) - -[Erigon](https://github.com/ledgerwatch/erigon) - -[Go-Ethereum](https://geth.ethereum.org/) - -### Clientes de consenso {#consensus-clients} - -[Nimbus](https://nimbus.team/) - -[Lighthouse](https://github.com/sigp/lighthouse) - -[Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) - -[Lodestar](https://github.com/ChainSafe/lodestar) - -[Prysm](https://docs.prylabs.network/docs/getting-started) - -Los usuarios técnicos pueden acelerar este proceso con tutoriales y documentación relacionada a clientes minoritarios, invitando a otros operadores de nodos a migrar alejándose de los clientes dominantes. Las guías para migrar a un cliente de consenso minoritario están disponibles en [clientdiversity.org](https://clientdiversity.org/). - -## Paneles de control de diversidad de clientes {#client-diversity-dashboards} - -Hay varios paneles que ofrecen estadísticas en tiempo real sobre la diversidad de clientes en las capas de consenso y ejecución. - -**Capa de consenso:** - -- [Rated.network](https://www.rated.network/) -- [clientdiversity.org](https://clientdiversity.org/) **/Capa de ejecución:** - -- [execution-diversity.info](https://execution-diversity.info/) -- [Ethernodes](https://ethernodes.org/) - -## Más información {#further-reading} - -- [Diversidad de clientes en la capa de consenso de Ethereum](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) -- [Fusión de Ethereum: ejecute el cliente mayoritario bajo su propio riesgo!](https://dankradfeist.de/ethereum/2022/03/24/run-the-majority-client-at-your-own-peril.html), _Dankrad Fiest, 24 de marzo de 2022_ -- [La importancia de la diversidad de clientes](https://our.status.im/the-importance-of-client-diversity/) -- [Lista de servicios de nodos de Ethereum](https://ethereumnodes.com/) -- [Las cinco razones que explican el problema de la diversidad de clientes](https://notes.ethereum.org/@afhGjrKfTKmksTOtqhB9RQ/BJGj7uh08) -- [La diversidad de Ethereum y cómo resolverla (YouTube)](https://www.youtube.com/watch?v=1hZgCaiqwfU) -- [clientdiversity.org](https://clientdiversity.org/) - -## Temas relacionados {#related-topics} - -- [Cómo ejecutar un nodo de Ethereum](/run-a-node/) -- [Nodos y clientes](/developers/docs/nodes-and-clients/) diff --git a/src/content/translations/es/developers/docs/smart-contracts/anatomy/index.md b/src/content/translations/es/developers/docs/smart-contracts/anatomy/index.md deleted file mode 100644 index 361833489f9..00000000000 --- a/src/content/translations/es/developers/docs/smart-contracts/anatomy/index.md +++ /dev/null @@ -1,659 +0,0 @@ ---- -title: Anatomía de los contratos inteligentes -description: "Una mirada en profundidad a la anatomía de un contacto inteligente: Sus funciones, datos y variables." -lang: es ---- - -Un contrato inteligente es un programa que se ejecuta en una dirección en Ethereum. Están formados por datos y funciones, que se pueden ejecutar al recibir una transacción. A continuación encontrarás una visión general de lo que compone un contrato inteligente. - -### Requisitos previos {#prerequisites} - -Asegúrate de haber leído primero la documentación sobre los [contratos inteligentes](/developers/docs/smart-contracts/). Este documento asume que ya estás familiarizado con lenguajes de programación como JavaScript o Python. - -## Datos {#data} - -Cualquier dato del contrato debe asignarse a una ubicación: ya sea a `almacenamiento` o `memoria`. Es costoso modificar el almacenamiento en un contrato inteligente, por lo que debes considerar dónde deben ubicarse sus datos. - -### Almacenamiento {#storage} - -Los datos persistentes se denominan almacenamiento y se representan por variables de estado. Estos valores se almacenan permanentemente en la blockchain. Necesitas declarar el tipo de dato para que el contrato pueda llevar un seguimiento de la cantidad de almacenamiento en la blockchain que se necesitará cuando compile. - -```solidity -// ejemplo de Solidity -contract SimpleStorage { - uint storedData; // variable de estado - // ... -} -``` - -```python -# ejemplo de Vyper -storedData: int128 -``` - -Si ya has utilizado lenguajes de programación orientados a objetos, probablemente estarás familiarizado con la mayoría de tipos de datos. Sin embargo, la `dirección` debe ser nueva para ti si eres nuevo en el desarrollo de Ethereum. - -Una variable de tipo `dirección ` puede contener una dirección de Ethereum que equivale a 20 bytes o 160 bits. Devuelve en notación hexadecimal con un 0x al inicio. - -Otros tipos de variables incluyen: - -- booleano -- entero -- números de punto fijo -- matrices de bytes de punto fijo -- matrices de bytes de tamaño dinámico -- Literales de tipo real, racional o integradores -- Literales de cadenas de caracteres -- Literales en base hexadecimal -- Enumeraciones - -Para más explicación, echa un vistazo a la documentación: - -- [Ver los de tipo Vyper](https://vyper.readthedocs.io/en/v0.1.0-beta.6/types.html#value-types) -- [Ver los de tipo Solidity](https://solidity.readthedocs.io/en/latest/types.html#value-types) - -### Memoria {#memory} - -Los valores que sólo se almacenan durante la vida útil de la ejecución de una función de contrato se llaman variables de memoria. Dado que estos no se almacenan permanentemente en la blockchain, son mucho más baratos de usar. - -Obtén más información sobre cómo la EVM almacena datos (almacenamiento, memoria y pila) en la [documentación de Solidity](https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html?highlight=memory#storage-memory-and-the-stack). - -### Variables de entorno {#environment-variables} - -Además de las variables que se definen en su contrato, hay algunas variables globales especiales. Se utilizan principalmente para proporcionar información acerca de la cadena de bloques o la transacción actual. - -Ejemplos: - -| **Propiedad** | **Variable de estado** | **Descripción** | -| ----------------- | ---------------------- | -------------------------------------- | -| `block.timestamp` | uint256 | Marca de tiempo del bloque actual | -| `msg.sender` | dirección | Remitente del mensaje (llamada actual) | - -## Funciones {#functions} - -De una forma simplista, las funciones pueden obtener información o establecer información en respuesta a las transacciones entrantes. - -Existen dos tipos de llamadas de funciones: - -- `Internas`: Estas no crean una llamada a la EVM. - - Sólo se puede acceder a las funciones internas y a las variables de estado internamente (es decir, desde el contrato actual o los contratos que derivan de él) -- `Externas`: Estas crean una llamada a la EVM. - - Las funciones externas forman parte de la interfaz del contrato, lo que significa que se pueden llamar desde otros contratos y a través de transacciones. Una función externa `f` no puede llamarse internamente (es decir, `f()` no funciona, pero `this.f()` funciona). - -También pueden ser `públicas` o `privadas`. - -- las funciones `públicas` pueden llamarse internamente desde dentro del contrato o externamente a través de mensajes -- las funciones `privadas` solo son visibles para el contrato en el que están definidas y no en contratos derivados - -Tanto las funciones como las variables de estado pueden hacerse públicas o privadas. - -Aquí se ejemplifica una función para actualizar una variable de estado en un contrato: - -```solidity -// ejemplo de Solidity -function update_name(string value) public { - dapp_name = value; -} -``` - -- El parámetro `valor` del tipo `string` se transfiere a la función: `update_name` -- Se declara `pública`, lo que significa que cualquiera puede acceder a ella. -- No está declarada `view` para solo lectura, por lo que puede modificar el estado del contrato. - -### Funciones de visualización {#view-functions} - -Estas funciones no modifican el estado de los datos del contrato. Ejemplos comunes son las funciones "getter", que se pueden utilizar para recibir el saldo o balance de un usuario, por ejemplo. - -```solidity -// Ejemplo de Solidity -function balanceOf(address _owner) public view returns (uint256 _balance) { - return ownerPizzaCount[_owner]; -} -``` - -```python -dappName: public(string) - -@view -@public -def readName() -> string: - return dappName -``` - -Qué se considera modificar un estado: - -1. Escribir a variables de estado. -2. [Emisión de eventos](https://solidity.readthedocs.io/en/v0.7.0/contracts.html#events). -3. [Creando otros contratos](https://solidity.readthedocs.io/en/v0.7.0/control-structures.html#creating-contracts). -4. Usar la variable `selfdestruct`. -5. Enviae ethers mediante llamadas. -6. Llamar a cualquier función no marcada como sólo lectura `view` o `pure`. -7. Usar llamadas de bajo nivel. -8. Utilizando un ensamblaje en línea que contiene ciertos códigos de operador. - -### Constructor (funciones) {#constructor-functions} - -Las funciones `constructor` solo se ejecutan una vez cuando el contrato es implementado por primera vez. Al igual que ocurre con `constructor` en muchos otros lenguajes de programación basados en clases, estas funciones a menudo inicializan variables de estado a sus valores especificados. - -```solidity -// Ejemplo de Solidity -// Inicializa los datos del contrato, estableciendo el `propietario` -// Establece la dirección del creador del contrato -constructor() public { - // Todos los contratos inteligentes dependen de transacciones externas para activar sus funciones. - // `msg` es una variable global que incluye datos relevantes en la transacción dada, - // tales como la dirección del remitente y el valor ETH incluido en la transacción. - // Más información: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties - owner = msg.sender; -} -``` - -```python -# Ejemplo en Vyper - -@external -def __init__(_beneficiary: address, _bidding_time: uint256): - self.beneficiary = _beneficiary - self.auctionStart = block.timestamp - self.auctionEnd = self.auctionStart + _bidding_time -``` - -### Funciones integradas {#built-in-functions} - -Además de las variables y funciones que define en su contrato, hay algunas funciones especiales integradas. El ejemplo más obvio es: - -- `address.send()`: Solidity -- `send(address)` – Vyper - -Esto permite que los contratos envíen ETH a otras cuentas. - -## Funciones de escritura {#writing-functions} - -Tu función necesita: - -- parámetro de la variable y tipo de variable (si acepta parámetros) -- declaraciónde variable interna/externa -- declaración de variable de tipo pure/view/payable -- devuelve el tipo (valor, en caso de devolución) - -```solidity -pragma solidity >=0.4.0 <=0.6.0; - -contract ExampleDapp { - string dapp_name; // state variable - - // Called when the contract is deployed and initializes the value - constructor() public { - dapp_name = "My Example dapp"; - } - - // Get Function - function read_name() public view returns(string) { - return dapp_name; - } - - // Set Function - function update_name(string value) public { - dapp_name = value; - } -} -``` - -Un contrato completo podría verse así. Aquí la función `constructor` proporciona un valor inicial para la variable `dapp_name`. - -## Eventos y logs {#events-and-logs} - -Los eventos le permiten comunicarse con su contrato inteligente desde su front-end u otras aplicaciones de suscripción. Cuando se mina una transacción, los contratos inteligentes pueden emitir eventos y escribir registros en la cadena de bloques que el front-end puede procesar. - -## Ejemplos agregados {#annotated-examples} - -Estos son algunos ejemplos escritos en Solidity. Si quiere experimentar con el código, puede interactuar ellos en [Remix](http://remix.ethereum.org). - -### Hola mundo {#hello-world} - -```solidity -// Especifica la versión de Solidity, utilizando la versión semántica. -// Más información: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragmma -pragma solidity ^0.5.10; - -// Define un contrato llamado `HelloWorld`. -// Un contrato es una colección de funciones y datos (su estado). -// Una vez desplegado, un contrato reside en una dirección específica en la blockchain de Ethereum. -// Más información: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html -contract HelloWorld { - - // Declara una variable de estado `message` del tipo `string`. - // Las variables de estado son variables cuyos valores se almacenan permanentemente en el almacenamiento del contrato. - // La palabra clave `public` hace que las variables sean accesibles desde fuera de un contrato - // y crea una función que otros contratos o clientes pueden llamar para acceder al valor. - string public message; - - // Similar a muchos idiomas orientados a objetos basados en clases, un constructor es - // una función especial que sólo se ejecuta cuando se crea un contrato. - // Los constructores se utilizan para inicializar los datos del contrato. - // Más información: https://solidity.readthedocs.io/es/v0.5.10/contracts. tml#constructors - constructor(string memory initMessage) public { - // Acepta un argumento de cadena `initMessage` y establece el valor - // en la variable de almacenamiento `message` del contrato). - message = initMessage; - } - - // Una función pública que acepta un argumento de cadena - // y actualiza la variable de almacenamiento `message`. - function update(string memory newMessage) public { - message = newMessage; - } -} -``` - -### Token {#token} - -```solidity -pragma solidity ^0.5.10; - -contract Token { - // Una `dirección` es comparable a una dirección de correo electrónico - se usa para identificar una cuenta en Ethereum. - // Direcciones pueden representar un contrato inteligente o una cuenta externa (de usuario). - // Más información: https://solidity.readthedocs.io/en/v0.5.10/types.html#address - address public owner; - - // Un `mapping` es esencialmente una estructura de datos de tabla hash. - // Este `mapping` asigna un entero sin signo (el saldo del token) a una dirección (el titular del token). - // Más información: https://solidity.readthedocs.io/en/v0.5.10/types.html#mapping-types - mapping (address => uint) public balances; - - // Los eventos permiten registrar la actividad en la blockchain. - // Los clientes de Ethereum pueden escuchar eventos para reaccionar a los cambios de estado del contrato. - // Más información: https://solidity.readthedocs.io/es/v0.5.10/contracts. tml#events - event Transfer(address from, address to, uint amount); - - // Inicializa los datos del contrato establecer el `dueño` - // a la dirección del creador del contrato. - constructor() public { - // Todos los contratos inteligentes dependen de transacciones externas para activar sus funciones. - // `msg` es una variable global que incluye datos relevantes en la transacción dada, - // tales como la dirección del remitente y el valor ETH incluido en la transacción. - // Más información: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties - owner = msg.sender; - } - - // Crea una cantidad de nuevos tokens y los envía a una dirección. - function mint(address receiver, uint amount) public { - // `requiere` es una estructura de control utilizada para hacer cumplir ciertas condiciones. - // Si una instrucción `require` evalúa a `falso`, se activa una excepción, - // la cual revierte todos los cambios realizados en el estado durante la llamada actual. - // Más información: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions - - // Sólo el propietario del contrato puede llamar a esta función - require(msg.sender == owner, "You are not the owner."); - - // Impone una cantidad máxima de tokens - require(amount < 1e60, "Maximum issuance exceeded"); - - // Aumenta el saldo del `receiver` en `amount`. - balances[receiver] += amount; - } - - // Envía una cantidad de tokens existentes de cualquier llamante a una dirección. - function transfer(address receiver, uint amount) public { - // El remitente debe tener suficientes tokens para enviar - require(amount <= balances[msg.sender], "Insufficient balance."); - - // Ajusta el saldo del token de las dos direcciones - balances[msg.sender] -= amount; - balances[receiver] += amount; - - // Emite el evento definido anteriormente - emit Transfer(msg.sender, receiver, amount); - } -} -``` - -### Activo digital único {#unique-digital-asset} - -```solidity -pragma solidity ^0.5.10; - -// Importa símbolos de otros archivos al contrato actual. -// En este caso, una serie de contratos de ayuda de OpenZeppelin. -// Learn more: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#importing-other-source-files - -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; -import "../node_modules/@openzeppelin/contracts/introspection/ERC165.sol"; -import "../node_modules/@openzeppelin/contracts/math/SafeMath.sol"; - -// The `is` keyword is used to inherit functions and keywords from external contracts. -// En este caso, `CryptoPizza` hereda de los contratos `IERC721` y `ERC165`. -// Más información: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#inheritance -contract CryptoPizza is IERC721, ERC165 { - // Utiliza la librería SafeMath de OpenZeppelin para realizar operaciones aritméticas de forma segura. - // Más información: -https://docs.openzeppelin.com/contracts/3. /api/math#SafeMath - using SafeMath for uint256; - - // Las variables de estado constantes en Solidity son similares a otros idiomas - // pero debe asignar desde una expresión que es constante en el momento de compilar. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constant-state-variables - uint256 constant dnaDigits = 10; - uint256 constant dnaModulus = 10 ** dnaDigits; - bytes4 private constant _ERC721_RECEIVED = 0x150b7a02; - - // Struct types let you define your own type - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#structs - struct Pizza { - string name; - uint256 dna; - } - - // Creates an empty array of Pizza structs - Pizza[] public pizzas; - - // Mapping from pizza ID to its owner's address - mapping(uint256 => address) public pizzaToOwner; - - // Mapping from owner's address to number of owned token - mapping(address => uint256) public ownerPizzaCount; - - // Mapping from token ID to approved address - mapping(uint256 => address) pizzaApprovals; - - // You can nest mappings, this example maps owner to operator approvals - mapping(address => mapping(address => bool)) private operatorApprovals; - - // Internal function to create a random Pizza from string (name) and DNA - function _createPizza(string memory _name, uint256 _dna) - // The `internal` keyword means this function is only visible - // within this contract and contracts that derive this contract - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#visibility-and-getters - internal - // `isUnique` is a function modifier that checks if the pizza already exists - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html#function-modifiers - isUnique(_name, _dna) - { - // Adds Pizza to array of Pizzas and get id - uint256 id = SafeMath.sub(pizzas.push(Pizza(_name, _dna)), 1); - - // Checks that Pizza owner is the same as current user - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions - - // note that address(0) is the zero address, - // indicating that pizza[id] is not yet allocated to a particular user. - - assert(pizzaToOwner[id] == address(0)); - - // Maps the Pizza to the owner - pizzaToOwner[id] = msg.sender; - ownerPizzaCount[msg.sender] = SafeMath.add( - ownerPizzaCount[msg.sender], - 1 - ); - } - - // Creates a random Pizza from string (name) - function createRandomPizza(string memory _name) public { - uint256 randDna = generateRandomDna(_name, msg.sender); - _createPizza(_name, randDna); - } - - // Generates random DNA from string (name) and address of the owner (creator) - function generateRandomDna(string memory _str, address _owner) - public - // Functions marked as `pure` promise not to read from or modify the state - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#pure-functions - pure - returns (uint256) - { - // Generates random uint from string (name) + address (owner) - uint256 rand = uint256(keccak256(abi.encodePacked(_str))) + - uint256(_owner); - rand = rand % dnaModulus; - return rand; - } - - // Returns array of Pizzas found by owner - function getPizzasByOwner(address _owner) - public - // Functions marked as `view` promise not to modify state - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#view-functions - view - returns (uint256[] memory) - { - // Uses the `memory` storage location to store values only for the - // lifecycle of this function call. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/introduction-to-smart-contracts.html#storage-memory-and-the-stack - uint256[] memory result = new uint256[](ownerPizzaCount[_owner]); - uint256 counter = 0; - for (uint256 i = 0; i < pizzas.length; i++) { - if (pizzaToOwner[i] == _owner) { - result[counter] = i; - counter++; - } - } - return result; - } - - // Transfers Pizza and ownership to other address - function transferFrom(address _from, address _to, uint256 _pizzaId) public { - require(_from != address(0) && _to != address(0), "Invalid address."); - require(_exists(_pizzaId), "Pizza does not exist."); - require(_from != _to, "Cannot transfer to the same address."); - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - - ownerPizzaCount[_to] = SafeMath.add(ownerPizzaCount[_to], 1); - ownerPizzaCount[_from] = SafeMath.sub(ownerPizzaCount[_from], 1); - pizzaToOwner[_pizzaId] = _to; - - // Emits event defined in the imported IERC721 contract - emit Transfer(_from, _to, _pizzaId); - _clearApproval(_to, _pizzaId); - } - - /** - * Safely transfers the ownership of a given token ID to another address - * If the target address is a contract, it must implement `onERC721Received`, - * which is called upon a safe transfer, and return the magic value - * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; - * otherwise, the transfer is reverted. - */ - function safeTransferFrom(address from, address to, uint256 pizzaId) - public - { - // solium-disable-next-line arg-overflow - this.safeTransferFrom(from, to, pizzaId, ""); - } - - /** - * Safely transfers the ownership of a given token ID to another address - * If the target address is a contract, it must implement `onERC721Received`, - * which is called upon a safe transfer, and return the magic value - * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; - * otherwise, the transfer is reverted. - */ - function safeTransferFrom( - address from, - address to, - uint256 pizzaId, - bytes memory _data - ) public { - this.transferFrom(from, to, pizzaId); - require(_checkOnERC721Received(from, to, pizzaId, _data), "Must implement onERC721Received."); - } - - /** - * Internal function to invoke `onERC721Received` on a target address - * The call is not executed if the target address is not a contract - */ - function _checkOnERC721Received( - address from, - address to, - uint256 pizzaId, - bytes memory _data - ) internal returns (bool) { - if (!isContract(to)) { - return true; - } - - bytes4 retval = IERC721Receiver(to).onERC721Received( - msg.sender, - from, - pizzaId, - _data - ); - return (retval == _ERC721_RECEIVED); - } - - // Burns a Pizza - destroys Token completely - // The `external` function modifier means this function is - // part of the contract interface and other contracts can call it - function burn(uint256 _pizzaId) external { - require(msg.sender != address(0), "Invalid address."); - require(_exists(_pizzaId), "Pizza does not exist."); - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - - ownerPizzaCount[msg.sender] = SafeMath.sub( - ownerPizzaCount[msg.sender], - 1 - ); - pizzaToOwner[_pizzaId] = address(0); - } - - // Returns count of Pizzas by address - function balanceOf(address _owner) public view returns (uint256 _balance) { - return ownerPizzaCount[_owner]; - } - - // Returns owner of the Pizza found by id - function ownerOf(uint256 _pizzaId) public view returns (address _owner) { - address owner = pizzaToOwner[_pizzaId]; - require(owner != address(0), "Invalid Pizza ID."); - return owner; - } - - // Approves other address to transfer ownership of Pizza - function approve(address _to, uint256 _pizzaId) public { - require(msg.sender == pizzaToOwner[_pizzaId], "Must be the Pizza owner."); - pizzaApprovals[_pizzaId] = _to; - emit Approval(msg.sender, _to, _pizzaId); - } - - // Returns approved address for specific Pizza - function getApproved(uint256 _pizzaId) - public - view - returns (address operator) - { - require(_exists(_pizzaId), "Pizza does not exist."); - return pizzaApprovals[_pizzaId]; - } - - /** - * Private function to clear current approval of a given token ID - * Reverts if the given address is not indeed the owner of the token - */ - function _clearApproval(address owner, uint256 _pizzaId) private { - require(pizzaToOwner[_pizzaId] == owner, "Must be pizza owner."); - require(_exists(_pizzaId), "Pizza does not exist."); - if (pizzaApprovals[_pizzaId] != address(0)) { - pizzaApprovals[_pizzaId] = address(0); - } - } - - /* - * Sets or unsets the approval of a given operator - * An operator is allowed to transfer all tokens of the sender on their behalf - */ - function setApprovalForAll(address to, bool approved) public { - require(to != msg.sender, "Cannot approve own address"); - operatorApprovals[msg.sender][to] = approved; - emit ApprovalForAll(msg.sender, to, approved); - } - - // Tells whether an operator is approved by a given owner - function isApprovedForAll(address owner, address operator) - public - view - returns (bool) - { - return operatorApprovals[owner][operator]; - } - - // Takes ownership of Pizza - only for approved users - function takeOwnership(uint256 _pizzaId) public { - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - address owner = this.ownerOf(_pizzaId); - this.transferFrom(owner, msg.sender, _pizzaId); - } - - // Checks if Pizza exists - function _exists(uint256 pizzaId) internal view returns (bool) { - address owner = pizzaToOwner[pizzaId]; - return owner != address(0); - } - - // Checks if address is owner or is approved to transfer Pizza - function _isApprovedOrOwner(address spender, uint256 pizzaId) - internal - view - returns (bool) - { - address owner = pizzaToOwner[pizzaId]; - // Disable solium check because of - // https://github.com/duaraghav8/Solium/issues/175 - // solium-disable-next-line operator-whitespace - return (spender == owner || - this.getApproved(pizzaId) == spender || - this.isApprovedForAll(owner, spender)); - } - - // Check if Pizza is unique and doesn't exist yet - modifier isUnique(string memory _name, uint256 _dna) { - bool result = true; - for (uint256 i = 0; i < pizzas.length; i++) { - if ( - keccak256(abi.encodePacked(pizzas[i].name)) == - keccak256(abi.encodePacked(_name)) && - pizzas[i].dna == _dna - ) { - result = false; - } - } - require(result, "Pizza with such name already exists."); - _; - } - - // Returns whether the target address is a contract - function isContract(address account) internal view returns (bool) { - uint256 size; - // Currently there is no better way to check if there is a contract in an address - // than to check the size of the code at that address. - // En https://ethereum.stackexchange.com/a/14016/36603 - // podrás consultar más detalles sobre cómo funciona esto. - // TODO Verifica esto de nuevo antes de el lanzamiento de Serenity, porque todas las direcciones serán - // contratos entonces. - // solium-disable-next-line security/no-inline-assembly - assembly { - size := extcodesize(account) - } - return size > 0; - } -} -``` - -## Leer más {#further-reading} - -Revise la documentación de Solidity y Vyper para ver una descripción más completa de los contratos inteligentes: - -- [Solidity](https://solidity.readthedocs.io/) -- [Vyper](https://vyper.readthedocs.io/) - -## Temas relacionados {#related-topics} - -- [Contratos inteligentes](/developers/docs/smart-contracts/) -- [Máquina virtual de Ethereum](/developers/docs/evm/) - -## Tutoriales relacionados {#related-tutorials} - -- [Reducir el tamaño de los contratos para luchar contra el límite de tamaño del contrato](/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/) _: Algunos consejos prácticos para reducir el tamaño de tu contrato inteligente._ -- [Registro de datos de contratos inteligentes con eventos](/developers/tutorials/logging-events-smart-contracts/) _: Una introducción a los eventos de contratos inteligentes y cómo puede utilizarlos para registrar datos._ -- [Interactuar con otros contratos de Solidity](/developers/tutorials/interact-with-other-contracts-from-solidity/)_: Cómo implementar un contrato inteligente de un contrato existente e interactuar con él._ diff --git a/src/content/translations/es/developers/docs/standards/tokens/erc-20/index.md b/src/content/translations/es/developers/docs/standards/tokens/erc-20/index.md deleted file mode 100644 index b02118308d8..00000000000 --- a/src/content/translations/es/developers/docs/standards/tokens/erc-20/index.md +++ /dev/null @@ -1,149 +0,0 @@ ---- -title: Estándar de token ERC-20 -description: -lang: es ---- - -## Introducción {#introduction} - -**¿Qué es un token?** - -Los tokens pueden representar cualquier elemento virtualmente en Ethereum: - -- puntos de reputación en la plataforma online -- las habilidades de un personaje en un juego -- boletos de lotería -- activos financieros como una acción en una empresa -- una moneda fiat como el USD -- un lingote de oro -- y más... - -Una característica tan poderosa de Ethereum debe ser manejada con un estándar sólido, ¿verdad? ¡Ahí es exactamente donde el ERC desempeña su papel! Este estándar permite a los desarrolladores construir aplicaciones de token que son interoperables con otros productos y servicios. - -**¿Qué es el ERC-20?** - -El ERC-20 introduce un estándar para los tokens fungibles, es decir, tienen una propiedad que hace que cada token sea exactamente igual (en tipo y valor) que otro token. Por ejemplo, un token ERC-20 actúa igual que ETH, es decir, 1 token es y siempre será igual a todos los demás tokens. - -## Requisitos previos {#prerequisites} - -- [Cuentas](/developers/docs/accounts) -- [Contratos inteligentes](/developers/docs/smart-contracts/) -- [Estándares de token](/developers/docs/standards/tokens/) - -## Cuerpo {#body} - -El ERC-20 (Ethereum Request for Comments 20), propuesto por Fabian Vogelsteller en Noviembre 2015, es un estándar de token que implementa una API para tokens dentro de contratos inteligentes. - -Ejemplos de funcionalidades que proporciona ERC-20: - -- transferir tokens de una cuenta a otra -- obtener el saldo actual de tokens de una cuenta -- obtener el siministro total del token disponible en la red -- aprobar si una cantidad de tokens de una cuenta puede gastarse con una cuenta de terceros - -Si un contrato inteligente implementa los siguientes métodos y eventos, se puede llamar un contrato de token ERC-20, y una vez implementado, será el responsable de llevar un seguimiento de los tokens creados en Ethereum. - -Desde [EIP-20](https://eips.ethereum.org/EIPS/eip-20): - -#### Métodos {#methods} - -```solidity -function name() public view returns (string) -function symbol() public view returns (string) -function decimals() public view returns (uint8) -function totalSupply() public view returns (uint256) -function balanceOf(address _owner) public view returns (uint256 balance) -function transfer(address _to, uint256 _value) public returns (bool success) -function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) -function approve(address _spender, uint256 _value) public returns (bool success) -function allowance(address _owner, address _spender) public view returns (uint256 remaining) -``` - -#### Eventos {#events} - -```solidity -event Transfer(address indexed _from, address indexed _to, uint256 _value) -event Approval(address indexed _owner, address indexed _spender, uint256 _value) -``` - -### Ejemplos {#web3py-example} - -Vamos a ver cómo un estándar es tan importante para que las cosas sean sencillas para que inspeccionemos cualquier contrato de token de ERC-20 en Ethereum. Sólo necesitamos la Interfaz binaria de aplicaciones de contrato (ABI) para crear una interfaz a cualquier token ER-20. Como puedes ver a continuación, usaremos una ABI simplificada, para que sea un ejemplo de fricción bajo. - -#### Ejemplo de Web3.py {#web3py-example} - -Primero asegúrate de haber instalado [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) Python library: - -``` -pip install web3 -``` - -```python -from web3 import Web3 - - -w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) - -dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI -weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # Wrapped ether (WETH) - -acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11" # Uniswap V2: DAI 2 - -# This is a simplified Contract Application Binary Interface (ABI) of an ERC-20 Token Contract. -# It will expose only the methods: balanceOf(address), decimals(), symbol() and totalSupply() -simplified_abi = [ - { - 'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], - 'name': 'balanceOf', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'decimals', - 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'symbol', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'totalSupply', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - } -] - -dai_contract = w3.eth.contract(address=w3.to_checksum_address(dai_token_addr), abi=simplified_abi) -symbol = dai_contract.functions.symbol().call() -decimals = dai_contract.functions.decimals().call() -totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals -addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals - -# DAI -print("===== %s =====" % symbol) -print("Total Supply:", totalSupply) -print("Addr Balance:", addr_balance) - -weth_contract = w3.eth.contract(address=w3.to_checksum_address(weth_token_addr), abi=simplified_abi) -symbol = weth_contract.functions.symbol().call() -decimals = weth_contract.functions.decimals().call() -totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals -addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals - -# WETH -print("===== %s =====" % symbol) -print("Total Supply:", totalSupply) -print("Addr Balance:", addr_balance) -``` - -## Leer más {#further-reading} - -- [EIP-20: Estándar de token ERC-20](https://eips.ethereum.org/EIPS/eip-20) -- [Tokens de OpenZeppelin](https://docs.openzeppelin.com/contracts/3.x/tokens#ERC20) -- [OpenZeppelin: Implementación de ERC-20](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) -- [Alchemy: Guía de tokens ERC20 de Solidity](https://www.alchemy.com/overviews/erc20-solidity) diff --git a/src/content/translations/es/developers/docs/standards/tokens/erc-721/index.md b/src/content/translations/es/developers/docs/standards/tokens/erc-721/index.md deleted file mode 100644 index cebd04ea94e..00000000000 --- a/src/content/translations/es/developers/docs/standards/tokens/erc-721/index.md +++ /dev/null @@ -1,244 +0,0 @@ ---- -title: Estándar de token no fungible ERC-721 -description: -lang: es ---- - -## Introducción {#introduction} - -**¿Qué es un token no fungible o funcional?** - -Una ficha no funcional (NFT) se utiliza para identificar algo o a alguien de una manera única. Este tipo de token es perfecto para ser usado en plataformas que ofrecen artículos recolectables, acceder a llaves, boletos de lotería, asientos numerados para conciertos y partidos deportivos, etc. Este tipo especial de token tiene unas posibilidades asombrosas, por lo que merece un estándar adecuado, el ERC-721 vino a solucionarlo. - -**¿Qué es ERC-721?** - -El ERC-721 introduce una norma para NFT, en otras palabras, este tipo de ficha es único y puede tener un valor diferente que otra ficha del mismo contrato inteligente, tal vez debido a su antigüedad, rareza o incluso a algo como su visualidad. Espera, ¿visual? - -¡Sí! Todos los NFT tienen una variable `uint256` llamada `tokenId`, así para cualquier Contrato ERC-721, el par `dirección del contrato, uint256 tokenId` debe ser único globalmente. Dicho esto, una dapp puede tener un "convertidor" que utilice el `tokenId` como entrada y produzca una imagen de algo atractivo, ¡como zombies, armas, habilidades o increíbles gatitos! - -## Requisitos previos {#prerequisites} - -- [Cuentas](/developers/docs/accounts/) -- [Contratos inteligentes](/developers/docs/smart-contracts/) -- [Estándares de token](/developers/docs/standards/tokens/) - -## Cuerpo {#body} - -El ERC-721 (Ethereum Request for Comments 721), propuesto por William Entriken, Dieter Shirley, Jacob Evans, Nastassia Sachs en enero de 2018, es un Estándar de Token No Fungible que implementa una API para tokens dentro de Smart Contracts. - -Proporciona funcionalidades como transferir tokens de una cuenta a otra, para obtener el saldo actual del token de una cuenta y además del suministro total del token disponible en la red. Además de estos también tiene otras funcionalidades como aprobar que una cantidad de token de una cuenta puede ser gastada por una cuenta de terceros. - -Si un contrato inteligente implementa los siguientes métodos y eventos, se puede llamar un Contrato de Token ERC-721, y una vez desplegado será el responsable de llevar un seguimiento de los tokens creados en Ethereum. - -De [EIP-721](https://eips.ethereum.org/EIPS/eip-721): - -#### Métodos {#methods} - -```solidity - function balanceOf(address _owner) external view returns (uint256); - function ownerOf(uint256 _tokenId) external view returns (address); - function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; - function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; - function transferFrom(address _from, address _to, uint256 _tokenId) external payable; - function approve(address _approved, uint256 _tokenId) external payable; - function setApprovalForAll(address _operator, bool _approved) external; - function getApproved(uint256 _tokenId) external view returns (address); - function isApprovedForAll(address _owner, address _operator) external view returns (bool); -``` - -#### Eventos {#events} - -```solidity - event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); - event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); - event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); -``` - -### Ejemplos {#web3py-example} - -Vamos a ver la importancia de un estándar para que inspeccionemos fácilmente cualquier contrato de token de ERC-721 en Ethereum. Sólo necesitamos la Interfaz binaria de aplicaciones de contrato (ABI) para crear una interfaz a cualquier Token ERC-721. Como puedes ver a continuación, usaremos un ABI simplificado, para que sea un ejemplo de fricción baja. - -#### Ejemplo de Web3.py {#web3py-example} - -Primero asegúrate de haber instalado [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) Python library: - -``` -pip install web3 -``` - -```python -from web3 import Web3 -from web3._utils.events import get_event_data - - -w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) - -ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # CryptoKitties Contract - -acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # CryptoKitties Sales Auction - -# This is a simplified Contract Application Binary Interface (ABI) of an ERC-721 NFT Contract. -# It will expose only the methods: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply() -simplified_abi = [ - { - 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], - 'name': 'balanceOf', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'name', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], - 'name': 'ownerOf', - 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'symbol', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'totalSupply', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, -] - -ck_extra_abi = [ - { - 'inputs': [], - 'name': 'pregnantKitties', - 'outputs': [{'name': '', 'type': 'uint256'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [{'name': '_kittyId', 'type': 'uint256'}], - 'name': 'isPregnant', - 'outputs': [{'name': '', 'type': 'bool'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - } -] - -ck_contract = w3.eth.contract(address=w3.to_checksum_address(ck_token_addr), abi=simplified_abi+ck_extra_abi) -name = ck_contract.functions.name().call() -symbol = ck_contract.functions.symbol().call() -kitties_auctions = ck_contract.functions.balanceOf(acc_address).call() -print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}") - -pregnant_kitties = ck_contract.functions.pregnantKitties().call() -print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}") - -# Using the Transfer Event ABI to get info about transferred Kitties. -tx_event_abi = { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'from', 'type': 'address'}, - {'indexed': False, 'name': 'to', 'type': 'address'}, - {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}], - 'name': 'Transfer', - 'type': 'event' -} - -# We need the event's signature to filter the logs -event_signature = w3.keccak(text="Transfer(address,address,uint256)").hex() - -logs = w3.eth.get_logs({ - "fromBlock": w3.eth.block_number - 120, - "address": w3.to_checksum_address(ck_token_addr), - "topics": [event_signature] -}) - -# Notes: -# - Increase the number of blocks up from 120 if no Transfer event is returned. -# - If you didn't find any Transfer event you can also try to get a tokenId at: -# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events -# Click to expand the event's logs and copy its "tokenId" argument -recent_tx = [get_event_data(w3.codec, tx_event_abi, log)["args"] for log in logs] - -if recent_tx: - kitty_id = recent_tx[0]['tokenId'] # Paste the "tokenId" here from the link above - is_pregnant = ck_contract.functions.isPregnant(kitty_id).call() - print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}") -``` - -El contrato de CryptoKitties tiene algunos eventos interesantes aparte de los estándar. - -Revisemos dos de ellos, `Embarazada` y `Nacimiento`. - -```python -# Usar la ABI de eventos de Embarazada y Nacimiento para obtener información sobre nuevos gatitos. -ck_extra_events_abi = [ - { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'owner', 'type': 'address'}, - {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, - {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, - {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}], - 'name': 'Pregnant', - 'type': 'event' - }, - { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'owner', 'type': 'address'}, - {'indexed': False, 'name': 'kittyId', 'type': 'uint256'}, - {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, - {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, - {'indexed': False, 'name': 'genes', 'type': 'uint256'}], - 'name': 'Birth', - 'type': 'event' - }] - -# We need the event's signature to filter the logs -ck_event_signatures = [ - w3.keccak(text="Pregnant(address,uint256,uint256,uint256)").hex(), - w3.keccak(text="Birth(address,uint256,uint256,uint256,uint256)").hex(), -] - -# Here is a Pregnant Event: -# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog -pregnant_logs = w3.eth.get_logs({ - "fromBlock": w3.eth.block_number - 120, - "address": w3.to_checksum_address(ck_token_addr), - "topics": [ck_event_signatures[0]] -}) - -recent_pregnants = [get_event_data(w3.codec, ck_extra_events_abi[0], log)["args"] for log in pregnant_logs] - -# Here is a Birth Event: -# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a -birth_logs = w3.eth.get_logs({ - "fromBlock": w3.eth.block_number - 120, - "address": w3.to_checksum_address(ck_token_addr), - "topics": [ck_event_signatures[1]] -}) - -recent_births = [get_event_data(w3.codec, ck_extra_events_abi[1], log)["args"] for log in birth_logs] -``` - -## NFT populares {#popular-nfts} - -- [Etherscan NFT Tracker](https://etherscan.io/tokens-nft) enumera los principales NFT en Ethereum por volumen de transferencias. -- [CryptoKitties](https://www.cryptokitties.co/) es un juego centrado en criables, coleccionables y tan adorables criaturas que llamamos CryptoKitties. -- [Sorare](https://sorare.com/) es un juego de fútbol de fantasía global en el que puedes coleccionar coleccionables de ediciones limitadas, gestiona tus equipos y compite para ganar premios. -- [Ethereum Name Service (ENS)](https://ens.domains/) ofrece un Nombre en forma descentralizada de abordar los recursos tanto dentro y fuera de la cadena de bloques utilizando nombres sencillos y legibles por humanos. -- [POAP](https://poap.xyz) entrega NFT gratis a las personas que asisten a eventos o completan acciones específicas. Los POAP se pueden crear y distribuir de forma gratuita. -- [Unstoppable Domains](https://unstoppabledomains.com/) es una empresa con sede en San Francisco que crea dominios en cadenas de bloques. Los dominios de cadena de bloques reemplazan las direcciones de criptomonedas por nombres legibles por humanos y se pueden usar para habilitar sitios web resistentes a la censura. -- [Tarjetas de Gods Unchained:](https://godsunchained.com/) TCG en la cadena de bloques de Ethereum que utiliza NFT para otorgar propiedad real en los activos del juego. -- [Bored Ape Yacht Club](https://boredapeyachtclub.com) es una colección de 10.000 NFT únicos que, además de ser obras de arte de probada rareza, actúa como token de membresía del club, lo que proporciona ventajas y beneficios a los miembros que aumentan con el tiempo como resultado de los esfuerzos de la comunidad. - -## Leer más {#further-reading} - -- [EIP-721: ERC-721 Estándar de token no fungible](https://eips.ethereum.org/EIPS/eip-721) -- [OpenZeppelin: Documentos de ERC-721](https://docs.openzeppelin.com/contracts/3.x/erc721) -- [OpenZeppelin: Implementación de ERC-721](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) -- [API de NFT de Alchemy](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) diff --git a/src/content/translations/es/developers/tutorials/how-to-view-nft-in-metamask/index.md b/src/content/translations/es/developers/tutorials/how-to-view-nft-in-metamask/index.md deleted file mode 100644 index ddac504c305..00000000000 --- a/src/content/translations/es/developers/tutorials/how-to-view-nft-in-metamask/index.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: Cómo visualizar su NFT en su cartera (parte 3/3 de la serie de tutoriales de NFT) -description: Este tutorial explica cómo visualizar un NFT en MetaMask -author: "Sumi Mudgil" -tags: - - "NTF" - - "ERC-721" - - "Alchemy" - - "tókenes no fungibles" - - "Solidity" -skill: beginner -lang: es -published: 2021-04-22 ---- - -Este tutorial es la parte 3/3 en la serie de tutoriales NFT, donde vemos nuestros NFT recién acuñados. Sin embargo, puede utilizar el tutorial general para cualquier token ERC-721 usando MetaMask, incluso en la red principal o cualquier red de prueba. Si quiere aprender a acuñar su propio NFT en Ethereum, debería revisar la [parte 1 en Cómo escribir & desplegar un contrato inteligente NFT](/developers/tutorials/how-to-write-and-deploy-an-nft)! - -¡Enhorabuena! Ha llegado a la parte más corta y sencilla de nuestra serie de tutoriales NFT sobre cómo ver su NFT recién acuñado en una cartera virtual. Utilizaremos MetaMask para este ejemplo, ya que es lo que usamos en las dos partes anteriores. - -Como requisito previo, ya debería tener MetaMask en su móvil instalado e incluir la cuenta a la que ha acuñado su NFT: puede obtener la aplicación gratis para [iOS](https://apps.apple.com/us/app/metamask-blockchain-wallet/id1438144202) o [Android](https://play.google.com/store/apps/details?id=io.metamask&hl=en_US&gl=US). - -## Paso 1: Establecer su red en Ropsten {#set-network-to-ropsten} - -En la parte superior de la aplicación, pulse el botón «Wallet» (Cartera) después de lo cual se le pedirá que seleccione una red. Como nuestro NFT se acuñó en la red Ropsten, lo más lógico es que seleccione Ropsten como su red. - -![Cómo configurar Ropsten como su red móvil MetaMask](./ropstenMetamask.gif) - -## Paso 2: Añadir su coleccionable a MetaMask {#add-nft-to-metamask} - -Una vez que esté en la red Ropsten, seleccione la pestaña «Collectibles» (Coleccionables) a la derecha y añada la dirección del contrato inteligente NFT y el identificador de token ERC-721 de su NFT, que podrá encontrar en Etherscan basándose en el hash de transacción de su NFT desplegado en la parte II de nuestro tutorial. - -![Cómo encontrar el hash de su transacción y el ID de token ERC-721](./findNFTEtherscan.png) - -Puede que necesite actualizar un par de veces la pantalla para ver su NFT, ¡pero estará ahí ! - -![Cómo subir su NFT a MetaMask](./findNFTMetamask.gif) - -¡Enhorabuena! Ha acuñado satisfactoriamente un NFT, ¡y ahora puede verlo! ¡Estamos deseando ver cómo va a arrasar en el universo NFT! diff --git a/src/content/translations/es/developers/tutorials/how-to-write-and-deploy-an-nft/index.md b/src/content/translations/es/developers/tutorials/how-to-write-and-deploy-an-nft/index.md deleted file mode 100644 index a8ffc22d6f5..00000000000 --- a/src/content/translations/es/developers/tutorials/how-to-write-and-deploy-an-nft/index.md +++ /dev/null @@ -1,353 +0,0 @@ ---- -title: Cómo escribir & y desplegar un NFT (parte 1/3 de la serie de tutoriales sobre NFT) -description: Este tutorial es la parte 1 de una serie sobre NFT que le indicará cómo escribir y desplegar un contrato inteligente de un token no fungible o NFT (ERC-721 token) paso a paso usando Ethereum y el sistema de archivos interplanetario (IPFS). -author: "Sumi Mudgil" -tags: - - "NTF" - - "ERC-721" - - "Alchemy" - - "Solidity" - - "contratos inteligentes" -skill: beginner -lang: es -published: 2021-04-22 ---- - -Los NFT ponen la cadena de bloques en el punto de mira y esto supone una excelente oportunidad para que usted le coja el tranquillo y publique su propio NFT (ERC-721 Token) en la cadena de bloques de Ethereum. - -Alchemy se enorgullece de promocionar a los protagonistas del espacio NFT, incluyendo Makersplace (que recientemente logró una venta récord de obras de arte digitales en Christie's por 69 millones de dólares), Dapper Labs (creadores de NBA Top Shot & Crypto Kitties), OpenSea (el mayor mercado de NFT del mundo), Zora, Super Rare, NFTfi, Foundation, Enjin, Origin Protocol e Immutable, entre muchos otros. - -En este tutorial, le guiaremos sobre cómo crear e implementar un contrato inteligente ERC-721 en la red de pruebas de Ropsten usando [MetaMask](https://metamask.io/), [Solidity](https://docs.soliditylang.org/en/v0.8.0/), [Hardhat](https://hardhat.org/), [Pinata](https://pinata.cloud/) y [Alchemy](https://alchemy.com/signup/eth) (no se preocupe si todo esto le suena a chino, lo iremos viendo en este tutorial). - -En la parte 2 de este tutorial, explicaremos cómo podemos utilizar nuestro contrato inteligente para acuñar un NFT, y en la parte 3 explicaremos cómo ver su NFT en MetaMask. - -Y, por supuesto, si le surge alguna duda en cualquier momento, no dude en consultar [Alchemy Discord](https://discord.gg/gWuC7zB) o visitar [los documentos de la API de NFT en Alchemy](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api)! - -## Paso 1: Conectarse a la red Ethereum {#connect-to-ethereum} - -Hay muchas maneras de hacer peticiones a la cadena de bloques Ethereum, pero para simplificarnos la vida, usaremos una cuenta gratuita en [Alchemy](https://alchemy.com/signup/eth), una plataforma de desarrollo de cadena de bloques y API que nos permite comunicarnos con la cadena Ethereum sin tener que ejecutar nuestros propios nodos. - -En este tutorial, también aprovecharemos las herramientas de desarrollo de Alchemy para monitorizar y analizar lo que está ocurriendo dentro de nuestro despliegue de contratos inteligentes. Si aún no tiene una cuenta de Alchemy, puede registrarse gratis en [aquí](https://alchemy.com/signup/eth). - -## Paso 2: Crear su aplicación (y llave API) {#make-api-key} - -Una vez que haya creado una cuenta de Alchemy, puede generar una clave de API creando una aplicación. Esto nos permitirá hacer solicitudes a la red de pruebas de Ropsten. Consulte [esta guía](https://docs.alchemyapi.io/guides/choosing-a-network) si tiene curiosidad para saber más sobre redes de pruebas. - -1. Navegue a la página «Crear App» en su tablero Alchemy pasando el cursor sobre «Apps» en la barra de navegación y haciendo clic en «Crear App». - -![Crear su app](./create-your-app.png) - -2. Dele un nombre a su aplicación (nosotros hemos elegido «My First NFT!» [Mi primer NFT]), ofrezca una descripción corta, seleccione «Staging» (Por fases) para el entorno (usado para la contabilidad de su aplicación), y elija «Ropsten» como red. - -![Configure y publíque su aplicación](./configure-and-publish-your-app.png) - -3. ¡Haga clic en «Crear app» y ya está! Su aplicación debería aparecer en la siguiente tabla. - -## Paso 3: Crear una cuenta Ethereum (dirección) {#create-eth-address} - -Necesitamos una cuenta Ethereum para enviar y recibir transacciones. Para este tutorial, usaremos MetaMask, una cartera virtual en el navegador usada para manejar la dirección de su cuenta Ethereum. Si quiere más información sobre cómo funcionan las transacciones en Ethereum, eche un vistazo a [esta página](/developers/docs/transactions/) de Ethereum Foundation. - -Puede descargar y crear una cuenta MetaMask gratis [aquí](https://metamask.io/download.html). Cuando esté creando una cuenta, o si ya tiene una cuenta, asegúrese de cambiarla a la «Ropsten Test Network» (red de pruebas de Robsten) en la parte superior derecha ( para que no tratemos con dinero real). - -![Configure Ropsten como su red](./metamask-ropsten.png) - -## Paso 4: Añadir ether de un faucet {#step-4-add-ether-from-a-faucet} - -Para desarrollar nuestro contrato inteligente en la red de prueba, necesitaremos algunos ETH de prueba. Para obtener ETH, puede ir a [FaucETH](https://fauceth.komputing.org) e introducir la dirección de su cuenta Ropsten, hacer clic en «Request funds» (Solicitar fondos) y luego en «Ethereum Testnet Ropsten» (Ropsten de red de prueba de Ethereum) antes de volver a hacer clic en el botón «Request funds». Deberían aparecer ETH en su cuenta de MetaMask poco después. - -## Paso 5: Comprobar su balance {#check-balance} - -Para comprobar que nuestro balance está ahí, hagamos una solicitud de [eth_getBalance](https://docs.alchemyapi.io/alchemy/documentation/alchemy-api-reference/json-rpc#eth_getbalance)usando [la herramienta de composición de Alchemy](https://composer.alchemyapi.io?composer_state=%7B%22network%22%3A0%2C%22methodName%22%3A%22eth_getBalance%22%2C%22paramValues%22%3A%5B%22%22%2C%22latest%22%5D%7D). Esto devolverá la cantidad de ETH a nuestra cartera. Después de introducir la dirección de su cuenta de MetaMask y hacer clic en «Send Request» (Enviar Solicitud), debería ver una respuesta como esta: - - `{"jsonrpc": "2.0", "id": 0, "result": "0xde0b6b3a7640000"}` - -\*\*NOTA: Este resultado es en wei no en ETH. Wei se usa como la denominación más pequeña de ether. La conversión de wei a ETH es 1 eth = 1018 wei. Así que si convertimos 0xde0b6b3a7640000 a decimal, obtenemos 1\*1018 wei, que es igual a 1 ETH. - -¡Fiu! Nuestro dinero de prueba está ahí sano y salvo. - -## Paso 6: Iniciar nuestro proyecto {#initialize-project} - -Primero, necesitaremos crear una carpeta para nuestro proyecto. Navegue hasta su línea de comandos y teclee: - - mkdir my-nft - cd my-nft - -Ahora que estamos dentro de nuestra carpeta de proyecto, usaremos npm init para iniciar el proyecto. Si no tiene instalado npm, siga[estas instrucciones](https://docs.alchemyapi.io/alchemy/guides/alchemy-for-macs#1-install-nodejs-and-npm) (también necesitaremos [Node.js](https://nodejs.org/en/download/), así que ¡descárgueselo también!). - - npm init - -Realmente no importa la respuesta que dé a las preguntas de instalación, he aquí un ejemplo de cómo lo hicimos nosotros: - - package name: (my-nft) - version: (1.0.0) - description: My first NFT! - entry point: (index.js) - test command: - git repository: - keywords: - author: - license: (ISC) - About to write to /Users/thesuperb1/Desktop/my-nft/package.json: - - { - "name": "my-nft", - "version": "1.0.0", - "description": "My first NFT!", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" - } - -Apruebe package.json y ¡ya puede comenzar! - -## Paso 7: Instalar [Hardhat](https://hardhat.org/getting-started/#overview) {#install-hardhat} - -Hardhat es un entorno de desarrollo para compilar, desplegar, probar y depurar su software Ethereum. Ayuda a los desarrolladores cuando construyen contratos inteligentes y dApps localmente antes de desplegarse en la cadena en vivo. - -Dentro de nuestro proyecto my-nft, ejecute: - - npm install --save-dev hardhat - -Revise esta página para más información acerca de las [intrucciones de instalación](https://hardhat.org/getting-started/#overview). - -## Paso 8: Crear proyecto Hardhat {#create-hardhat-project} - -Dentro de la carpeta de nuestro proyecto, ejecute: - - npx hardhat - -Entonces debería aparecer un mensaje de bienvenida y la opción de seleccionar lo que desea hacer. Seleccione «create an empty hardhat.config.js» (crear un hardhat.config.js vacío): - - 888 888 888 888 888 - 888 888 888 888 888 - 888 888 888 888 888 - 8888888888 8888b. 888d888 .d88888 88888b. 8888b. 888888 - 888 888 "88b 888P" d88" 888 888 "88b "88b 888 - 888 888 .d888888 888 888 888 888 888 .d888888 888 - 888 888 888 888 888 Y88b 888 888 888 888 888 Y88b. - 888 888 "Y888888 888 "Y88888 888 888 "Y888888 "Y888 - 👷 Bienvenido a Hardhat v2.0.11 👷‍ - ? ¿Qué es lo que quieres hacer? … - Create a sample project - ❯ Create an empty hardhat.config.js - Quit - -Esta acción nos creará un archivo hardhat.config.js, que es donde especificaremos todos los ajustes para nuestro proyecto (en el paso 13). - -## Paso 9: Añadir carpetas de proyecto {#add-project-folders} - -Para mantener nuestro proyecto organizado, crearemos dos nuevas carpetas. Navegue al directorio raíz de su proyecto en su línea de comandos y teclee: - - mkdir contracts - mkdir scripts - -- contratos/es donde guardaremos nuestro código de contrato inteligente NFT - -- scripts/ es donde mantendremos scripts para desplegar e interactuar con nuestro contrato inteligente - -## Paso 10: Escribir nuestro contrato {#write-contract} - -Ahora que nuestro entorno está configurado, es hora de dedicarse a cosas más emocionantes, como por ejemplo, _¡escribir nuestro código de contrato inteligente!_ - -Abra el proyecto my-nft en su editor favorito (a nosotros nos gusta [VSCode](https://code.visualstudio.com/)). Los contratos inteligentes están escritos en un lenguaje llamado Solidity que es el que utilizaremos para escribir nuestro contrato inteligente MyNFT.sol - -1. Vaya a la carpeta `contratos` y cree un nuevo archivo llamado MyNFT.sol - -2. A continuación se muestra nuestro código NFT de contrato inteligente, el cual se basa en la implementación ERC-721 de la biblioteca [OpenZeppelin](https://docs.openzeppelin.com/contracts/3.x/erc721). Copie y pegue el contenido de abajo en su archivo MyNFT.sol. - - ```solidity - //Contract based on [https://docs.openzeppelin.com/contracts/3.x/erc721](https://docs.openzeppelin.com/contracts/3.x/erc721) - // SPDX-License-Identifier: MIT - pragma solidity ^0.8.0; - - import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; - import "@openzeppelin/contracts/utils/Counters.sol"; - import "@openzeppelin/contracts/access/Ownable.sol"; - import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol"; - - contract MyNFT is ERC721URIStorage, Ownable { - using Counters for Counters.Counter; - Counters.Counter private _tokenIds; - - constructor() ERC721("MyNFT", "NFT") {} - - function mintNFT(address recipient, string memory tokenURI) - public onlyOwner - returns (uint256) - { - _tokenIds.increment(); - - uint256 newItemId = _tokenIds.current(); - _mint(recipient, newItemId); - _setTokenURI(newItemId, tokenURI); - - return newItemId; - } - } - ``` - -3. Como estamos heredando clases de la biblioteca de contratos de OpenZeppelin, en la línea de comandos, ejecute `npm install @openzeppelin/contracts` para instalar la biblioteca en nuestra carpeta. - -Entonces, ¿qué _hace_ exactamente este código? Descompongámoslo, línea por línea. - -En la parte superior de nuestro contrato inteligente, importamos tres clases de contrato inteligente de [OpenZeppelin](https://openzeppelin.com/): - -- @openzeppelin/contracts/token/ERC721/ERC721.sol contiene la implementación del estándar ERC-721, que nuestro contrato NFT heredará. (Para ser un NFT válido, su contrato inteligente debe implementar todos los métodos del estándar ERC-721.) Para obtener más información sobre las funciones ERC-721 heredadas, consulte la definición de interfaz [aquí](https://eips.ethereum.org/EIPS/eip-721). - -- @openzeppelin/contracts/utils/Counters.sol proporciona contadores que sólo pueden aumentar o disminuir un valor. Nuestro contrato inteligente utiliza un contador para hacer un seguimiento del número total de NFT acuñados y establecer el ID único en nuestro nuevo NFT. (A cada NFT acuñado usando un contrato inteligente se le debe asignar un identificador único—aquí nuestro identificador único sólo está determinado por el número total de NFT en existencia. Por ejemplo, el primer NFT que acuñamos con nuestro contrato inteligente tiene «1» por ID, nuestro segundo NFT tiene «2», etc.) - -- @openzeppelin/contracts/access/Ownable.sol establece un [control de acceso](https://docs.openzeppelin.com/contracts/3.x/access-control) en nuestro contrato inteligente, por lo que solo el propietario del contrato inteligente (usted) puede acuñar NFT. (Nota, incluir el control de acceso es totalmente una preferencia. Si quiere que alguien pueda acuñar un NFT usando su contrato inteligente, elimine la palabra «Ownable» [apropiable] en la línea 10 y «onlyOwner» [solo el propietario] en la línea 17.) - -Después de nuestras declaraciones de importación, tenemos nuestro contrato inteligente NFT personalizado, que es sorprendentemente corto — ¡sólo contiene un contador, un constructor y una sola función! Esto es gracias a nuestros contratos de OpenZeppelin heredados, los cuales implementan la mayoría de los métodos que necesitamos para crear un NFT, como `ownerOf` (dueño de) que indica el dueño del NFT, y `transferFrom` (transferir desde), que transfiere la propiedad del NFT de una cuenta a otra. - -En nuestro constructor ERC-721, notará que pasamos 2 cadenas, «MyNFT» y «NFT». La primera variable es el nombre del contrato inteligente, y la segunda es su símbolo. ¡Puede nombrar cada una de estas variables como quiera! - -Por último, tenemos nuestra función `mintNFT(address recipient, string memory tokenURI)` que nos permite acuñar un NFT. Notará que esta función toma dos variables: - -- `address recipient` especifica la dirección que recibirá su NFT recién acuñado - -- `string memory tokenURI` es una cadena que debe resolver un documento JSON que describe los metadatos de NFT. Los metadatos de un NFT es realmente lo que lo lleva a la vida, permitiéndole tener características configurables, como el nombre, descripción, imagen y otros atributos. En la parte 2 de este tutorial, describiremos cómo configurar estos metadatos. - -`mintNFT` llama a algunos métodos de la biblioteca ERC-721 heredada, y en última instancia muestra un número que representa el ID del NFT recién acuñado. - -## Paso 11: Conectar MetaMask & Alchemy a su proyecto {#connect-metamask-and-alchemy} - -Ahora que hemos creado una cartera de MetaMask, una cuenta de Alchemy y hemos escrito nuestro contrato inteligente, es hora de conectarlos a los tres. - -Cada transacción enviada desde su cartera virtual requiere una firma usando su clave privada única. Para proporcionar a nuestro programa este permiso, podemos almacenar nuestra clave privada (y la clave API de Alchemy) en un archivo de entorno. - -Si quiere ahondar sobre el envío de transacciones, consulte [este tutorial](/developers/tutorials/sending-transactions-using-web3-and-alchemy/) sobre el envío de transacciones usando web3. - -Primero, instale el paquete dotenv en el directorio de su proyecto: - - npm install dotenv --save - -Seguidamente, cree un archivo `.env` en el directorio raíz de nuestro proyecto y añádale nuestra clave privada MetaMask y HTTP Alchemy API URL. - -- Siga [estas instrucciones](https://metamask.zendesk.com/hc/en-us/articles/360015289632-How-to-Export-an-Account-Private-Key) para exportar tu clave privada desde MetaMask - -- Vea las indicaciones siguientes para obtener la URL de la API de Alchemy HTTP y cópiela en su portapapeles - -![Copie el URL de su API Alchemy](./copy-alchemy-api-url.gif) - -Su `.env` debería ser parecido a: - - API_URL="https://eth-ropsten.alchemyapi.io/v2/your-api-key" - PRIVATE_KEY="your-metamask-private-key" - -Para conectarlos a nuestro código, haremos referencia a estas variables en nuestro archivo hardhat.config.js en el paso 13. - - -¡No exponga su .env! Asegúrese de que nunca comparte ni expone su archivo .env con nadie, ya que ello conlleva revelar sus secretos. Si está haciendo un control de la versión, añada .env a un archivo gitignore. - - -## Paso 12: Instalar Ethers.js {#install-ethers} - -Ethers.js es una biblioteca que hace más fácil interactuar y hacer solicitudes a Ethereum combinando [métodos JSON-RPC estándar](/developers/docs/apis/json-rpc/) con métodos más amigables para el usuario. - -Hardhat hace que sea muy fácil integrar [plugins](https://hardhat.org/plugins/) para herramientas adicionales y una mayor funcionalidad. Aprovecharemos el [plugin de Ethers](https://hardhat.org/plugins/nomiclabs-hardhat-ethers.html) para desplegar contratos ([Ethers.js](https://github.com/ethers-io/ethers.js/) tiene algunos métodos de despliegue de contratos súper limpios). - -En el directorio de su proyecto teclee: - - npm install --save-dev @nomiclabs/hardhat-ethers ethers@^5.0.0 - -También necesitaremos ethers en nuestro hardhat.config.js en el siguiente paso. - -## Paso 13: Actualizar hardhat.config.js {#update-hardhat-config} - -Hasta el momento, hemos añadido varias dependencias y plugins, ahora necesitamos actualizar hardhat.config.js para que nuestro proyecto los reconozca. - -Actualice su hardhat.config.js para que se vea así: - - /** - * @type import('hardhat/config').HardhatUserConfig - */ - require('dotenv').config(); - require("@nomiclabs/hardhat-ethers"); - const { API_URL, PRIVATE_KEY } = process.env; - module.exports = { - solidity: "0.8.1", - defaultNetwork: "ropsten", - networks: { - hardhat: {}, - ropsten: { - url: API_URL, - accounts: [`0x${PRIVATE_KEY}`] - } - }, - } - -## Paso 14: Compilar nuestro contrato {#compile-contract} - -Para asegurarnos de que todo funciona hasta ahora, compilemos nuestro contrato. La tarea de compilación es una de las tareas de hardhat incorporadas. - -Desde la línea de comandos ejecute: - - npx hardhat compile - -Puede que reciba una advertencia sobre el identificador de licencia SPDX no proporcionado en el archivo fuente, pero no se preocupe si la recibe, ¡esperemos que todo lo demás esté correcto! Si no, siempre puede enviar un mensaje en el [discord de Alchemy](https://discord.gg/u72VCg3). - -## Paso 15: Escribir nuestro script de despliegue {#write-deploy} - -Ahora que nuestro contrato está escrito y nuestro archivo de configuración está listo, es hora de escribir nuestro script de despliegue del contrato. - -Vaya a la carpeta `scripts/` y cree un nuevo archivo llamado `deploy.js`, agregando los siguientes contenidos: - -```js -async function main() { - const MyNFT = await ethers.getContractFactory("MyNFT") - - // Start deployment, returning a promise that resolves to a contract object - const myNFT = await MyNFT.deploy() - await myNFT.deployed() - console.log("Contract deployed to address:", myNFT.address) -} - -main() - .then(() => process.exit(0)) - .catch((error) => { - console.error(error) - process.exit(1) - }) -``` - -Hardhat detalla excepcionalmente bien lo que hace cada una de estas líneas de código en su [tutorial de contratos](https://hardhat.org/tutorial/testing-contracts.html#writing-tests), aquí hemos adoptado sus explicaciones. - - const MyNFT = await ethers.getContractFactory("MyNFT"); - -Un ContractFactory en ethers.js es una abstracción utilizada para implementar nuevos contratos inteligentes, por lo que MyNFT aquí es una fábrica para las instancias de nuestro contrato NFT. Cuando se utiliza el plugin ContractFactory y las instancias de contrato del plugin de hardhat-ethers están conectadas al primer firmante por defecto. - - const myNFT = await MyNFT.deploy(); - -Ejecutar un despliegue() en un ContractFactory iniciará el despliegue y devolverá una Promesa que se resuelva a un Contrato. Este es el elemento que tiene un método para cada una de nuestras funciones de contrato inteligente. - -## Paso 16: Desplegar nuestro contrato {#deploy-contract} - -¡Ahora ya estamos listos para desplegar nuestro contrato inteligente! Navegue de nuevo a la raíz del directorio de su proyecto, y en la linea de comando ejecute: - - npx hardhat --network ropsten run scripts/deploy.js - -Debería mostrarse algo parecido a: - - Contract deployed to address: 0x81c587EB0fE773404c42c1d2666b5f557C470eED - -Si nos dirigimos al [Ropsten etherscan](https://ropsten.etherscan.io/) y buscamos la dirección de nuestro contrato deberíamos poder comprobar que se ha desplegado correctamente. Si no puede verla inmediatamente, por favor espere unos instantes, ya que puede llevar algún tiempo. La transacción tendrá un aspecto parecido a este: - -![Visualice la dirección de su transacción en Etherscan](./etherscan-transaction.png) - -La dirección de origen debe coincidir con la dirección de su cuenta de MetaMask y la dirección de destino dirá «Contract Creation» (Creación de contrato). Si hacemos clic en la transacción, veremos la dirección de nuestro contrato en la casilla To (para): - -![Visualice su dirección de contrato en Etherscan](./etherscan-contract.png) - -¡Síííííí! ¡Ha desplegado su primer contrato inteligente NFTen la cadena Ethereum! - -Para entender qué está pasando internamente, naveguemos a la pestaña del navegador en nuestro [panel Alchemy](https://dashboard.alchemyapi.io/explorer). Si dispone de varias aplicaciones de Alchemy, asegúrese de filtrar por aplicación y seleccione «MyNFT». - -![Ver llamadas realizadas internamente con el panel del explorador de Alchemy](./alchemy-explorer.png) - -Aquí verá un puñado de llamadas JSON-RPC que Hardhat/Ethers realizó internamente cuando ejecutamos a la función .deploy(). Dos aspectos importantes que debe tener en cuenta aquí son [eth_sendRawTransaction](/developers/docs/apis/json-rpc/#eth_sendrawtransaction), que es la solicitud de escribir nuestro contrato en la cadena Ropsten, y [eth_getTransactionByHash](/developers/docs/apis/json-rpc/#eth_gettransactionbyhash) que es una solicitud para leer información sobre nuestra transacción a partir de un hash (un patrón típico cuando realizamos transacciones). Para ahondar más sobre el envío de transacciones, consulte este tutorial en [Envío de transacciones mediante Web3](/developers/tutorials/sending-transactions-using-web3-and-alchemy/). - -Y así concluye la parte 1 de este tutorial. En la [parte 2, interactuaremos con nuestro contrato inteligente acuñando un NFT](/developers/tutorials/how-to-mint-an-nft/), y en la [parte 3 le enseñaremos a ver su NFT en su cartera de Ethereum](/developers/tutorials/how-to-view-nft-in-metamask/). diff --git a/src/content/translations/es/history/index.md b/src/content/translations/es/history/index.md deleted file mode 100644 index c4f9f2c02ed..00000000000 --- a/src/content/translations/es/history/index.md +++ /dev/null @@ -1,516 +0,0 @@ ---- -title: Historia y bifurcaciones de Ethereum -description: Una historia de la cadena de bloques de Ethereum, que incluye los principales hitos, lanzamientos y bifurcaciones. -lang: es -sidebarDepth: 1 ---- - -# La historia de Ethereum {#the-history-of-ethereum} - -Una cronología que incluye todos los principales hitos, bifurcaciones y actualizaciones de la cadena de bloques de Ethereum. - - - -Las bifurcaciones se producen cuando es necesario realizar actualizaciones o cambios técnicos importantes en la red; suelen provenir de las [propuestas de mejora de Ethereum (o EIP)](/eips/) y cambian las «reglas» del protocolo. - -Cuando se precisan actualizaciones en un software tradicional y controlado centralmente, la empresa publica una nueva versión para el usuario final. Las cadenas de bloque funcionan de manera diferente porque no hay propiedad central. Los clientes de Ethereum deben actualizar su software para implementar las nuevas reglas establecidas en la bifurcación. Además de creadores de bloques (los mineros en el mundo de las pruebas de trabajo y los validadores en el universo de las pruebas de participación) y los nodos, deben crearse bloques y validarlos con respecto a las reglas nuevas. Más información sobre los mecanismos de consenso - -Estos cambios en las normas pueden crear una división temporal en la red. Los bloques nuevos podrían producirse de acuerdo con las reglas nuevas o con las antiguas. Normalmente las bifurcaciones se acuerdan con antelación para que los clientes adopten los cambios a la vez. Además, de este modo las bifurcaciones actualizadas se convertirán en la cadena principal. Sin embargo, en casos excepcionales, los desacuerdos con respecto a las bifurcaciones pueden provocar que la red permanezca dividida. La más notable es la creación de Ethereum Classic con la [bifurcación DAO] (#dao-fork). - - - -Vaya directamente a la información sobre algunas de las actualizaciones anteriores más importantes: [La cadena de baliza](/upgrades); [La Fusión](/roadmap/merge/); y [EIP-1559](#london) - -¿Busca futuras actualizaciones del protocolo? [Descubra las próximas actualizaciones de la hoja de ruta de Ethereum](/roadmap/). - - - -## 2023 {#2023} - -### Shanghai {#shanghai} - - - -#### Resumen {#shanghai-summary} - -La actualizacion Shangai permite retirar la participación a la capa de ejecución. Junto con la actualización Capella, habilitó los bloques para aceptar las operaciones de retirada, que permitieran a los interesados retirar sus ETH provenientes de la cadena de baliza para ejecutarlos posteriormente. - - - -
    -
  • EIP-3651: inicia la direcciónCOINBASE
  • -
  • EIP-3855: nueva instrucciónPUSH0
  • -
  • EIP-3860: código iniciación límite y contador
  • -
  • EIP-4895: notificación cadena de baliza con retiradas como operaciones
  • -
  • EIP-6049 - Deprecate SELFDESTRUCT
  • -
- -
- -- [Lea la especificación de la actualización Shanghai](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/shanghai.md) - ---- - -### Capella {#capella} - - - -#### Resumen {#capella-summary} - -La actualizacion Capella es la tercera actualización importante a la capa de consenso (cadena de baliza), que le permite retirar su participación. Capella se produjo de forma sincrónica a la actualización de la capa de ejecución, Shanghai, y activó la funcionalidad de retirada de participaciones. - -Esta actualización de la capa de consenso aporta a los participantes que no proporcionaron credenciales de retirada en su depósito inicial la posibilidad de hacerlo ahora. - -La actualizacion también proporciona la funcionalidad de barrido automático de la cuenta, la cual procesa constantemente cuentas validadoras para cualquier pago de recompensa disponible o retiradas completas. - -- [Más información sobre la retirada de participaciones](/staking/withdrawals/). -- [Lea la especificacion de la actualizacion Capella](https://github.com/ethereum/consensus-specs/blob/dev/specs/capella/) - - - -## 2022 {#2022} - -### Paris (La Fusión) {#paris} - - - -#### Resumen {#paris-summary} - -El paso de la cadena de bloque de la prueba de trabajo a la [dificultad total terminal](/glossary/#terminal-total-difficulty) de 58750000000000000000000 originó La Fusión. Esto ocurrió en el bloque 15537393 el 15 de septiembre de 2022, y dio comienzo a la actualización Paris en el siguiente bloque. Paris supuso la transición denominada [La Fusión](/roadmap/merge/): cuya característica principal consistió en pasar del [algoritmo de minería y lógica de consenso asociada de la](/developers/docs/consensus-mechanisms/pow) prueba de trabajo [a la prueba de participación](/developers/docs/consensus-mechanisms/pos). Paris fue en sí una actualización a los [clientes de ejecución](/developers/docs/nodes-and-clients/#execution-clients) (equivalente a Bellatrix, en la capa de consenso) que les permitió recibir instrucciones de sus clientes de consenso conectados. Esto requirió que se activara un nuevo conjunto de métodos internos de API, conocido colectivamente como [Engine API](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md). Esta fue probablemente la actualización más significativa en la historia de Ethereum desde [Homestead](#homestead)! - -- [Lea la especificación de actualización Paris](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/paris.md) - - - -
    -
  • EIP-3675: consenso de actualización a la prueba de participación
  • -
  • EIP-4399: suplanta código operativo DIFFICULTY por PREVRANDAO
  • -
- -
- ---- - -### Bellatrix {#bellatrix} - - - -#### Resumen {#bellatrix-summary} - -La actualización Bellatrix fue la segunda actualización programada para la [cadena de baliza](/roadmap/beacon-chain), como prepración de la cadena para [La Fusión](/roadmap/merge/). Incorpora penalizaciones del validador a sus valores completos por inactividad y recortes por malas conductas. Bellatrix también incluye una actualización de las reglas de elección de la bifurcación para preparar la cadena de cara a La Fusión y la transición del último bloque de prueba de trabajo al primer bloque de prueba de participación. Esto incluye sensibilizar a los clientes sobre la dificultad total de la terminal [](/glossary/#terminal-total-difficulty) de 58750000000000000000000. - -- [Lea las especificaciones de actualización Bellatrix](https://github.com/ethereum/consensus-specs/tree/dev/specs/bellatrix) - ---- - -### Gray Glacier {#gray-glacier} - - - -#### Resumen {#gray-glacier-summary} - -La actualización de la red Gray Glacier hizo retroceder la [bomba de dificultad](/glossary/#difficulty-bomb) tres meses. Este es el único cambio introducido en esta actualización, y es similar en naturaleza a las actualizaciones [Arrow Glacier](#arrow-glacier) y [Muir Glacier](#muir-glacier). Se han llevado a cabo cambios similares en las actualizaciones de red [Byzantium](#byzantium),[Constantinople](#constantinople) y [London](#london). - -- [EF Blog: anuncio de actualización de Gray Glacier](https://blog.ethereum.org/2022/06/16/gray-glacier-announcement/) - - - -
    -
  • EIP-5133: retrasa la bomba de dificultad hasta septiembre de 2022
  • -
- -
- - - -## 2021 {#2021} - -### Arrow Glacier {#arrow-glacier} - - - -#### Resumen {#arrow-glacier-summary} - -La actualización de la red Arrow Glacier hizo retroceder la [bomba de dificultad](/glossary/#difficulty-bomb) varios meses. Este es el único cambio introducido en esta actualización, y es similar en naturaleza a la actualización de [Muir Glacier](#muir-glacier). Cambios similares han sido realizados en las actualizaciones de red [Byzantium](#byzantium),[Constantinopla](#constantinople) y [Londres](#london). - -- [Blog de EF: anuncio de actualización de Arrow Glacier](https://blog.ethereum.org/2021/11/10/arrow-glacier-announcement/) -- [Ethereum Cat Herders: actualización de Arrow Glacier de Ethereum](https://medium.com/ethereum-cat-herders/ethereum-arrow-glacier-upgrade-e8d20fa4c002) - - - -
    -
  • EIP-4345: retrasa la bomba de dificultad hasta junio de 2022
  • -
- -
- ---- - -### Altair {#altair} - - - -#### Resumen {#altair-summary} - -La actualización Altair fue la primera programada para la [cadena de baliza](/roadmap/beacon-chain). Añadió soporte para los «comités de sincronización», permitiendo clientes ligeros y un aumento de la inactividad del validador y de las penalizaciones de recorte a medida que avanzaba el desarrollo hacia La Fusión. - -- [Lea las especificaciones de actualización Altair](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) - -#### ¡Dato curioso! {#altair-fun-fact} - -Altair fue la primera gran actualización de red que ha tenido un periodo de implementación preciso. Cada una de las actualizaciones anteriores se habían basado en un número de bloques declarados en la cadena de prueba de trabajo, donde los tiempos de bloque varían. La cadena de baliza no requiere resolución para la prueba de trabajo y, en lugar de ello, funciona en un sistema épocas basado en el tiempo, que consiste en «ranuras» de tiempo de doce segundos durante los cuales los validadores pueden proponer bloques. Por esta razón sabíamos exactamente cuándo alcanzaríamos la época 74.240 y Altair vería la luz. - -- [Tiempo del bloque](/developers/docs/blocks/#block-time) - ---- - -### London {#london} - - - -#### Resumen {#london-summary} - -La actualización London introdujo [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559), que ha transformado el mercado de las comisiones de las transacciones, junto con cambios en la forma en que se manejan los reembolsos de gas y el plan [Era de hielo](/glossary/#ice-age). - -- [¿Es desarrollador de DApps? Asegúrese de actualizar sus bibliotecas y herramientas.](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/london-ecosystem-readiness.md) -- [Lea el anuncio de Ethereum Foundation.](https://blog.ethereum.org/2021/07/15/london-mainnet-announcement/) -- [Lea la explicación de Ethereum Cat Herders.](https://medium.com/ethereum-cat-herders/london-upgrade-overview-8eccb0041b41) - - - -
    -
  • EIP-1559: mejora el sector de las comisiones de las transacciones
  • -
  • EIP-3198: devuelve el BASEFEE de un bloque
  • -
  • EIP-3529: reduces reembolsos de gas para operaciones EVM
  • -
  • EIP-3541: evita lanzar contratos que empiecen por 0xEF
  • -
  • EIP-3554: retrasa la Era de hielo hasta diciembre de 2021
  • -
- -
- ---- - -### Berlin {#berlin} - - - -#### Resumen {#berlin-summary} - -La actualización Berlin optimizó el coste del gas para ciertas acciones de EVM, y aumentó la compatibilidad con múltiples tipos de transacciones. - -- [Leer el anuncio de Ethereum Foundation](https://blog.ethereum.org/2021/03/08/ethereum-berlin-upgrade-announcement/) -- [Leer la explicación de Ethereum Cat Herders](https://medium.com/ethereum-cat-herders/the-berlin-upgrade-overview-2f7ad710eb80) - - - -
    -
  • EIP-2565: reduce el gasto moderado ModExp de gas
  • -
  • EIP-2718: permite mejor soporte para múltiples tipos de transacciones
  • -
  • EIP-2929: incrementos en el coste del gas para códigos operativos de acceso a estados
  • -
  • EIP-2930: añade listas de acceso opcionales
  • -
- -
- - - -## 2020 {#2020} - -### El origen de la cadena de baliza {#beacon-chain-genesis} - - - -#### Resumen {#beacon-chain-genesis-summary} - -La [cadena de baliza](/roadmap/beacon-chain/) necesita 16.384 depósitos de 32 ETH apostados para enviarse de forma segura. Esto sucedió el 27 de noviembre, lo que significa que la cadena de baliza comenzó a producir su cadena de bloques a partir del 1 de diciembre de 2020. Este es un importante primer paso para lograr la[ vision de Ethereum](/roadmap/vision/). - -[Leer el anuncio de Ethereum Foundation](https://blog.ethereum.org/2020/11/27/eth2-quick-update-no-21/) - - - La cadena de baliza - - ---- - -### Contrato de depósito de participación implementado {#staking-deposit-contract} - - - -#### Resumen {#deposit-contract-summary} - -El contrato de depósito de participación introdujo la [participación](/glossary/#staking) en el ecosistema de Ethereum. A pesar de ser un contrato en la [red principal](/glossary/#mainnet), ha tenido impacto directo sobre la secuenciación de lanzamiento de la [cadena de baliza](/roadmap/beacon-chain/), una importante [ actualización de Ethereum](/roadmap/). - -[Leer el anuncio de Ethereum Foundation](https://blog.ethereum.org/2020/11/04/eth2-quick-update-no-19/) - - - Staking (apostar) - - ---- - -### Muir Glacier {#muir-glacier} - - - -#### Resumen {#muir-glacier-summary} - -La bifurcación Muir Glacier introdujo un retraso en la [bomba de dificultad](/glossary/#difficulty-bomb). El aumento de la dificultad del bloque del mecanismo de consenso de la [prueba de trabajo](/developers/docs/consensus-mechanisms/pow/) amenazó con degradar la usabilidad de Ethereum, debido al incremento de los tiempos de espera para enviar transacciones y utilizar DApps. - -- [Leer el anuncio de Ethereum Foundation](https://blog.ethereum.org/2019/12/23/ethereum-muir-glacier-upgrade-announcement/) -- [Leer la explicación de Ethereum Cat Herders](https://medium.com/ethereum-cat-herders/ethereum-muir-glacier-upgrade-89b8cea5a210) - - - -
    -
  • EIP-2384: retrasa la bomba de dificultad otros 4.000.000 bloques o ~611 días.
  • -
- -
- - - -## 2019 {#2019} - -### Istanbul {#istanbul} - - - -#### Resumen {#istanbul-summary} - -La bifurcación de Istanbul: - -- Optimizó el coste del [gas](/glossary/#gas) de ciertas acciones en la [EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine). -- Mejoró la resistencia al ataque de denegación de servicio. -- Realizó escalabilidad de [capa 2](/developers/docs/scaling/#layer-2-scaling) basada en SNARK y STARK más eficientes. -- Habilitó Ethereum y Zcash para que interoperasen. -- Permitió que los contratos introdujeran funciones más creativas. - -[Leer el anuncio de Ethereum Foundation](https://blog.ethereum.org/2019/11/20/ethereum-istanbul-upgrade-announcement/) - - - -
    -
  • EIP-152: permite a Ethereum funcionar con una moneda que mantiene la privacidad como Zcash.
  • -
  • EIP-1108: una criptografía más barata para mejorar los costes del gas gas.
  • -
  • EIP-1344: protege a Ethereum contra ataques de repetición al añadir CHAINID opcode.
  • -
  • EIP-1884: optimiza los precios del gas para el código de operación en función del consumo.
  • -
  • EIP-2028: reduce el coste de CallData para permitir más datos en bloques, lo que es productivo para la escalabilidad de capa 2.
  • -
  • EIP-2200: otras modificaciones del precio del gas del código de operación
  • -
- -
- ---- - -### Constantinople {#constantinople} - - - -#### Resumen {#constantinople-summary} - -La bifurcación Constantinople: - -- Garantizó que la cadena de bloques no se congelara antes de que se implementara la [prueba de participación](#beacon-chain-genesis). -- Optimizado el costo del [gas](/glossary/#gas) de ciertas acciones en la [EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine). -- Añadió la capacidad de interactuar con direcciones que aún no se han creado. - -[Leer el anuncio de Ethereum Foundation](https://blog.ethereum.org/2019/02/22/ethereum-constantinople-st-petersburg-upgrade-announcement/) - - - -
    -
  • EIP-145: optimizó el precio del gas en función del consumo.
  • -
  • EIP-1014: le permite interactuar con direcciones que aún no se han creado.
  • -
  • EIP-1052: optimiza el coste de ciertas acciones en cadena.
  • -
  • EIP-1234: se asegura de que la cadena de bloque no lo congele'antes de la prueba.
  • -
- -
- - - -## 2017 {#2017} - -### Byzantium {#byzantium} - - - -#### Resumen {#byzantium-summary} - -La bifurcación de Bizantium: - -- Redujo las recompensas de [minería](/developers/docs/consensus-mechanisms/pow/mining/) de bloques de 5 a 3 ETH. -- Retrasó un año la [bomba de dificultad](/glossary/#difficulty-bomb). -- Se ha añadido la habilidad para realizar llamadas «sin cambiar de estado» a otros contratos. -- Añadió ciertos métodos de criptografía para permitir [escalabilidad de capa 2](/developers/docs/scaling/#layer-2-scaling). - -[Leer el anuncio de Ethereum Foundation](https://blog.ethereum.org/2017/10/12/byzantium-hf-announcement/) - - - -
    -
  • EIP-140: añade el código de operaciónREVERT.
  • -
  • EIP-658: campo de estado añadido a los recibos de la transacción para indicar el éxito o el fracaso.
  • -
  • EIP-196: añade curva elíptica y multiplicación escalar para permitir ZK-Snarks.
  • -
  • EIP-197: añade curva elíptica y multiplicación escalar para permitir ZK-Snarks.
  • -
  • EIP-198: permite la verificación de firmas RSA.
  • -
  • EIP-211: añade soporte para valores de retorno de longitud variable.
  • -
  • EIP-214agrega el código STATICALL , permitiendo llamadas no cambiantes de estado a otros contratos.
  • -
  • EIP-100: cambia la fórmula de ajuste de dificultad.
  • -
  • EIP-649: retrasa la bomba de dificultad 1 año y reduce la recompensa de bloques de 5 a 3 ETH.
  • -
- -
- - - -## 2016 {#2016} - -### Spurious Dragon {#spurious-dragon} - - - -#### Resumen {#spurious-dragon-summary} - -La bifurcación Spurious Dragon fue la segunda respuesta a los ataques de denegación de servicio (DoS) a la red (septiembre/octubre de 2016) e incluye: - -- Ajuste de los precios del código de operación para evitar futuros ataques a la red. -- Activación de la «deflación» del estado de la cadena de bloques. -- Adición de la protección contra ataques de repetición. - -[Lea el anuncio de la Fundación Ethereum](https://blog.ethereum.org/2016/11/18/hard-fork-no-4-spurious-dragon/) - - - -
    -
  • EIP-155: evita que las transacciones de una cadena Ethereum se redifundan en una cadena alternativa, por ejemplo, una transacción de red de prueba que se reproduce en la cadena principal de Ethereum.
  • -
  • EIP-160: ajusta los precios del código operativo EXP: hace más difícil ralentizar la red a través de operaciones de contrato de elevado coste computacional.
  • -
  • EIP-161: permite eliminar cuentas vacías añadidas a través de los ataques DOS.
  • -
  • EIP-170: cambia el tamaño máximo del código que un contrato en la cadena de bloques puede tener a 24.576 bytes.
  • -
- -
- ---- - -### Tangerine Whistle {#tangerine-whistle} - - - -#### Resumen {#tangerine-whistle-summary} - -La bifurcación Tangerine Whistle fue la primera respuesta a los ataques de denegación de servicio (DoS) a la red (septiembre/octubre de 2016) e incluyó: - -- la gestión de problemas urgentes del buen estado de la red relacionados con códigos de operación depreciados. - -[Leer el anuncio de Ethereum Foundation](https://blog.ethereum.org/2016/10/18/faq-upcoming-ethereum-hard-fork/) - - - -
    -
  • EIP-150: aumenta el coste de gas de los códigos operativos que pueden utilizarse en ataques de spam.
  • -
  • EIP-158: reduce el tamaño del estado al eliminar un gran número de cuentas vacías que se pusieron en el estado depreciados debido a fallos en versiones anteriores del protocolo Ethereum.
  • -
- -
- ---- - -### La bifuración DAO {#dao-fork} - - - -#### Resumen {#dao-fork-summary} - -La bifurcación DAO surgió como respuesta al [ataque de DAO de 2016](https://www.coindesk.com/learn/understanding-the-dao-attack/) donde un contrato inseguro [DAO](/glossary/#dao) fue drenando más de 3,6 millones de ETH en un hackeo. La bifurcación movió los fondos del contrato defectuoso a un [nuevo contrato](https://etherscan.io/address/0xbf4ed7b27f1d666546e30d74d50d173d20bca754) con una única función: la de retirada. Cualquiera que haya perdido fondos podría retirar 1 ETH por cada 100 tókenes DAO en sus carteras. - -Esta acción fue votada por la comunidad Ethereum. Cualquier titular de ETH pudo votar a través de una transacción en [una plataforma de votación](https://web.archive.org/web/20170620030820/http://v1.carbonvote.com/). La decisión de realizar un fork obtuvo más del 85 % de los votos. - -Algunos mineros se negaron a bifurcar porque el incidente de la DAO no era un defecto en el protocolo. Pasaron a formar [Ethereum Classic](https://ethereumclassic.org/). - -[Leer el anuncio de Ethereum Foundation](https://blog.ethereum.org/2016/07/20/hard-fork-completed/) - ---- - -### Homestead {#homestead} - - - -#### Resumen {#homestead-summary} - -Homestead: la bifurcación con perspectivas de futuro. Incluyó varios cambios de protocolo y un cambio de red que concedió a Ethereum la capacidad de hacer más actualizaciones de red. - -[Leer el anuncio de Ethereum Foundation](https://blog.ethereum.org/2016/02/29/homestead-release/) - - - -
    -
  • EIP-2: edita el proceso de creación del contrato.
  • -
  • EIP-7: añade un nuevo código operativo: DELEGATECALL
  • -
  • EIP-8: introduce los requisitos de compatibilidad futura de devp2p
  • -
- -
- - - -## 2015 {#2015} - -### Deshielo Frontier {#frontier-thawing} - - - -#### Resumen {#frontier-thawing-summary} - -La bifurcación de deshielo Frontier elevó el limite del [gas](/glossary/#gas) de 5.000 por [bloque](/glossary/#block) y fijó el precio por defecto en 51 [gwei](/glossary/#gwei). Esto permitió que se realizaran transacciones que requiriesen 21.000 unidades de gas. La bomba de dificultad [](/glossary/#difficulty-bomb)se introdujo para asegurar un futuro de bifurcación dura a la [prueba de participación](/glossary/#pos). - -- [Leer el anuncio de Ethereum Foundation](https://blog.ethereum.org/2015/08/04/the-thawing-frontier/) -- [Lea la actualización 1 del protocolo de Ethereum](https://blog.ethereum.org/2015/08/04/ethereum-protocol-update-1/) - ---- - -### Frontier {#frontier} - - - -#### Resumen {#frontier-summary} - -Frontier fue una implementación en vivo, pero básica, del proyecto Ethereum. Siguió a la exitosa fase de pruebas Olympic. Estaba destinada a usuarios técnicos, específicamente a desarrolladores. [Los bloques](/glossary/#block) tenían un límite de [gas](/glossary/#gas) de 5.000. Este período de «deshielo» permitió a los mineros iniciar sus operaciones y a los primeros adoptantes instalar sus clientes sin tener que «precipitarse». - -[Leer el anuncio de Ethereum Foundation](https://blog.ethereum.org/2015/07/22/frontier-is-coming-what-to-expect-and-how-to-prepare/) - - - -## 2014 {#2014} - -### Venta de ether {#ether-sale} - - - -El ether salió oficialmente a la venta durante 42 días. Podía comprarse con BTC. - -[Leer el anuncio de Ethereum Foundation](https://blog.ethereum.org/2014/07/22/launching-the-ether-sale/) - ---- - -### Protocolo publicado {#yellowpaper} - - - -El protocolo, escrito por el Dr. Gavin Wood, es una definición técnica del protocolo de Ethereum. - -[Ver el protocolo](https://github.com/ethereum/yellowpaper) - - - -## 2013 {#2013} - -### Protocolo publicado {#whitepaper} - - - -Documento introductorio, publicado en el 2013 por Vitalik Buterin, fundador de Ethereum, antes del lanzamiento del proyecto en 2015. - - - Informe - diff --git a/src/content/translations/es/nft/index.md b/src/content/translations/es/nft/index.md deleted file mode 100644 index ab7c167f6a2..00000000000 --- a/src/content/translations/es/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Tókenes no fungibles (NFT) -description: Una visión general de los NFT en Ethereum -lang: es -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: Un logotipo Eth mostrado a través de un holograma. -summaryPoint1: Una forma de representar cualquier cosa exclusiva como un activo de Ethereum. -summaryPoint2: Los NFT están otorgando más poder a los creadores de contenido que nunca. -summaryPoint3: Impulsados por contratos inteligentes en la cadena de bloques de Ethereum. ---- - -## ¿Qué son los NFT? {#what-are-nfts} - -Los NFT son tókenes individualmente únicos. Cada NFT tiene diferentes propiedades (no fungibles) y es probable que no abunde. Es distinto de tókenes como el ERC-20, en el que cada token en el conjunto es idéntico y tiene las mismas propiedades (denominadas «fungibles»). A usted no le importa saber qué billete de un dólar tiene en su cartera en concreto, ya que todos son los billetes son idénticos y valen lo mismo. Pero, _sí_ le importaría saber qué NFT en concreto posee, porque cada uno tiene propiedades individuales que lo distinguen de los demás («no fungibles»). - -El carácter único de cada NFT permite la tokenización de cosas como arte, bienes coleccionables, o incluso bienes raíces, donde cada NFT específico es único y representa algo específico que es único en el mundo real o digital. El propietario de un activo está respaldado por la cadena de bloques de Ethereum y nadie puede modificar el registro de propiedad, ni copiar ni pegar un NFT nuevo. - - - -## El Internet de los activos {#internet-of-assets} - -Los NFT y Ethereum solucionan algunos de los problemas que existen hoy en día en Internet. Visto el entorno cada vez más digital en el que nos movemos, es necesario imitar las propiedades de los objetos físicos, tales como su escasez, su singularidad y la veracidad del derecho de propiedad. de una manera que no esté controlada por una organización centralizada. Por ejemplo, con los NFT, se pueden poseer archivos musicales en mp3, siempre que no pertenezcan a la aplicación específica de música propiedad de una empresa, o ser usuario de una red social que le permita vender o intercambiar archivos musicales, y que ningún proveedor de plataformas se lo pueda quitar arbitrariamente. - -El Internet de los NFT es comparable con el Internet que la mayoría de nosotros conocemos hoy en día... - -### Una comparación {#nft-comparison} - -| Internet con NFT | Internet actual | -| ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| ¡Usted es dueño de sus activos! Sólo usted puede venderlos o intercambiarlos. | Usted alquila un activo a alguna organización. | -| Los NFT son únicos digitalmente: no hay dos NFT iguales. | La copia de un elemento, muchas veces no se puede distinguir de la original. | -| El derecho de propiedad de un NFT está almacenado en la cadena de bloques para que cualquiera lo verifique. | Los registros con los derechos de propiedad de los objetos digitales se almacenan en servidores controlados por instituciones, y a usted no le queda otra alternativa que confiar en su palabra. | -| Los NFT son contratos inteligentes en Ethereum. Esto significa que pueden ser facilmente usados en otros contratos inteligentes y aplicaciones en Ethereum. | Las empresas con activos digitales suelen necesitar su propia infraestructura de «jardín cerrado». | -| Los creadores de contenido pueden vender su trabajo en cualquier lugar y acceder a un mercado global. | Los creadores dependen de la infraestructura y la distribución de las plataformas que usan. A menudo suelen estar sujetos a condiciones de uso y restricciones geográficas. | -| Los creadores de NFT pueden conservar los derechos de propiedad sobre sus obras, y programar derechos de autor directamente en el contrato del NFT. | Las plataformas (como los servicios de streaming de música) retienen la mayoría de las ganancias de las ventas. | - -## ¿Cómo funcionan los NFT? {#how-nfts-work} - -Como cualquier token emitido en Ethereum, los NFT se emiten mediante un contrato inteligente. El contrato inteligente se ajusta a uno de los distintos estándares de NFT que existen —los más comunes son el ERC-721 o el ERC-1155— y esto define las funciones que tiene el contrato. El contrato puede crear (acuñar) los NFT y asignarlos a un dueño específico. La propiedad del NFT viene definida dentro del contrato a través de un mapeo de trazabilidad que asigna un NFT concreto a una dirección específica. El NFT tiene un ID y suele llevar metadatos asociados, que lo convierten en un token único. - -Cuando alguien crea o acuña un NFT, lo que realmente están haciendo es ejecutar una función en el contrato inteligente que asigna ese NFT en particular a su dirección. Esta información se guarda en el almacenamiento interno del contrato que forma parte de la cadena de bloques. El creador del contrato puede incorporar la lógica adicional al contrato, por ejemplo, al limitar el número total de tókenes, o pedir derechos de autor que se le pagarán al creador cada vez que el token se transfiera. - -## ¿Para qué se usan los NFT? {#nft-use-cases} - -Los NFT se usan para muchas cosas, como por ejemplo: - -- demostrar la asistencia a un evento -- certificar que completó un curso -- definir la propiedad de artículos en un videojuego -- arte digital -- tokenización de activos del mundo real -- comprobar su identidad digital -- limitar el acceso a contenido -- venta de entradas -- crear nombres de dominio de Internet descentralizados -- usarlos como garantía en DeFi - -Tal vez usted es un artista que quiere compartir su arte a través de los NFT, sin perder el control de su propiedad intelectual ni sacrificar sus ganancias, dándoselas a intermediarios. Puede crear un nuevo contrato que especifique el número de NFT, sus propiedades y añadir un enlace a la obra de arte específica. Como artista, usted puede programar en su contrato inteligente los derechos de autor que debería recibir (por ejemplo, «transferir 5 % del precio de venta al dueño del contrato cada vez que se transfiera el NFT»). También podrá demostrar en todo momento que creó usted los NFT, al ser el propietario o la propietaria de la cartera utilizada en el contrato. Sus compradores podrán comprobar fácilmente que poseen un NFT auténtico de su colección, ya que la dirección de sus carteras estará asociada a un token en su contrato inteligente. Los pueden usar a través del ecosistema de Ethereum, confiando en su autenticidad. - -O pongamos, por ejemplo, una entrada a un evento deportivo. Al igual que el organizador de un evento puede escoger el número de entradas que va a vender, el creador de un NFT también puede decidir cuántas copias existirán. En algunos casos las copias son idénticas, como 5.000 entradas de admisión general. Algunas veces muchas copias acuñadas son muy similares, pero cada una difiere ligeramente, como una entrada con un asiento asignado. Estas se pueden comprar y vender entre pares directamente, sin tener que pasar por promotores o intermediarios de venta, porque pueden asegurarse de la autenticidad de la entrada revisando la dirección del contrato donde se crearon. - -Aquí en ethereum.org, utilizamos NFT para reconocer a las personas que han contribuido a nuestro repositorio de GitHub, su asistencia a las reuniones, e incluso tenemos nuestro NFT del nombre de nuestro dominio. Si contribuye a ethereum.org, puede reclamar un NFT POAP. Algunos eventos y encuentros de criptomonedas utilizan POAP (protocolos de prueba de asistencia) para sus entradas. [Más información sobre cómo contribuir](/contributing/#poap). - -![POAP de ethereum.org](./poap.png) - -El nombre de dominio alternativo de esta página web también funciona a través de NFT, **ethereum.eth**. Nuestra dirección `.org` está gestionada por un proveedor de sistemas de nombres de dominio (DNS), mientras que ethereum`.eth` está registrado en Ethereum a través del servicio de nombres de Ethereum (ENS). Este último es de nuestra propiedad y lo administramos nosotros mismos. [Échele un vistazo a nuestro registro de ENS](https://app.ens.domains/name/ethereum.eth) - -[Más información sobre ENS](https://app.ens.domains) - - - -### Seguridad de los NFT {#nft-security} - -La seguridad en Ethereum proviene de la prueba de participación. El sistema está diseñado para desincentivar económicamente acciones maliciosas, haciendo que Ethereum sea a prueba de manipulación y fraude. Esto es lo que hace que los NFT sean posibles. Una vez que finalice el bloque que contiene su transacción de NFT, le costaría a un atacante millones de ETH cambiarla. Cualquiera que ejecute el software Ethereum podría detectar inmediatamente una manipulación deshonesta con un NFT, y el causante recibiría una penalización económica y se le expulsaría. - -Las cuestiones de seguridad en relación a los NFT están casi siempre relacionadas con estafas de phishing, puntos flacos en los contratos inteligentes o errores de usuario (como exponer sus claves privadas sin darse cuenta), haciendo que la adopción de óptimas medidas de seguridad y la gestión de la cartera sean dos criterios fundamentales para los propietarios de NFT. - - - Más sobre seguridad - - -## Más información {#further-reading} - -- [Guía sobre NFT para principiantes](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d), _Linda Xie, enero del 2020_ -- [Rastreador EtherscanNFT](https://etherscan.io/nft-top-contracts) -- [Estándar de token ERC-721](/developers/docs/standards/tokens/erc-721/) -- [Estándar de token ERC-1155](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/es/refi/index.md b/src/content/translations/es/refi/index.md deleted file mode 100644 index 9bad6f914ce..00000000000 --- a/src/content/translations/es/refi/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: Finanzas regenerativas (ReFi) -description: Un panorama del ReFi y sus casos de uso actuales. -lang: es -template: use-cases -emoji: ":recycle:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Un sistema económico alternativo construido con principios regenerativos -summaryPoint2: Un intento de utilizar Ethereum para solucionar crisis de coordinación a escala global, como el cambio climático. -summaryPoint3: Una herramienta para escalar drásticamente activos de beneficio ecológico como créditos de carbon verificados. ---- - -## ¿Qué son las ReFi? {#what-is-refi} - -Las **Finanzas regenerativas (ReFi)** son un conjunto de herramientas e ideas construidas sobre cadenas de bloques, que buscan crear economías regenerativas, en lugar de extractivas o explotadoras. A la larga, los sistemas extractivos agotan los recursos disponibles y colapsan sin mecanismos regenerativos, carecen de resiliencia. ReFi opera con la creencia de que la creación de valor monetario debe separarse de la insostenible extracción de recursos de nuestro planeta y de nuestras comunidades. - -En cambio, el objetivo de las ReFi es solucionar problemas ambientales, comunales o sociales a través de la creación de ciclos regenerativos. Estos sistemas crean valor para los participantes, mientras que benefician simultáneamente a los ecosistemas y a las comunidades. - -Uno de los fundamentos de ReFi es el concepto de economías regenerativas, liderado por John Fullerton del [Capital Institute](https://capitalinstitute.org). Él propuso ocho principios interconectados que subyacen en la salud sistémica: - -![Ocho principios interconectados](../../assets/use-cases/refi-regenerative-economy-diagram.png) - -Los proyectos de ReFi adoptan estos principios usando [contratos inteligentes](/developers/docs/smart-contracts/) y [finanzas descentralizadas (DeFi)](/defi/) por medio de aplicaciones que incentivan comportamientos regenerativos, como por ejemplo, la restauración de ecosistemas degradados y la facilitación de una colaboración a gran escala en temas globales, como el cambio climático y la pérdida de la biodiversidad. - -ReFi también se solapa con el movimiento de [Ciencia descentralizada (DeSci)](/desci/), que usa a Ethereum como a una plataforma para financiar, crear, revisar, acreditar, guardar y diseminar conocimiento científico. Las herramientas DeSci pueden ser útiles para desarrollar estándares y prácticas verificables y así implementar y supervisar actividades regenerativas como plantar árboles, extraer plástico del mar o restaurar un ecosistema degradado. - -## Tokenización de créditos de carbono {#tokenization-of-carbon-credits} - -El **[mercado voluntario de carbono (conocido en inglés como VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** es un mecanismo de financiación de proyectos que tengan un impacto positivo verificado en la emisión del carbono, ya sea a través de la reducción de las emisiones actuales, o de la eliminación de gases de efecto invernadero que ya se hayan emitido a la atmósfera. Estos proyectos reciben un activo llamado «crédito de carbono» después de que hayan sido verificados, el cual pueden vender a personas y a organizaciones que quieran apoyar la causa climática. - -Además del VCM, también hay varios sectores de carbono de mandato gubernamental (denominados, sectores de cumplimiento) que pretenden establecer un precio del carbono a través de leyes y normativas con jurisdicción local (p. ej., país o región), controlando la asignación de permisos de distribución. Los mercados de cumplimiento incentivan a los contaminadores dentro de su jurisdicción a reducir las emisiones, pero ellos no son capaces de eliminar los gases de efecto invernadero que ya hayan sido emitidos. - -A pesar de su desarrollo en las recientes décadas, el VCM continúa padeciendo una variedad de problemas: - -1. Liquidez altamente fragmentada -2. Mecanismos de transacciones opacas -3. Tarifas altas -4. Velocidad de comercio muy lenta -5. Falta de escalabilidad - -Pasar del VCM al nuevo mercado digital de carbono (DCM) ** basado en bloque de cadenas ** puede ser una oportunidad para actualizar la tecnología existente y así validar, transaccionar y consumir créditos de carbono. Las cadenas de bloques permiten comprobar públicamente la información, dan acceso a un amplio número de usuarios y que haya más liquidez. - -Los proyectos de ReFi emplean tecnología de cadena de bloques para aliviar los numerosos problemas del mercado tradicional: - -- ** La liquidez se concentra en un número pequeño de reservas (fondos) de liquidez** que cualquiera puede comercializar libremente. Corporaciones, así como también usuarios individuales pueden usar estas reservas sin un manual de búsqueda para vendedores/compradores, comisiones de participación o registro previo. -- **Todas las transacciones se registran en cadenas de bloques públicas**. La ruta que cada crédito de carbono toma debido a la actividad comercial tiene trazabilidad desde el momento en que se pone a disposición en el DCM. -- **La velocidad de transacción es casi instantánea**. Asegurar grandes cantidades de créditos de carbono a través mercados tradicionales puede llevar días, si no semanas, sin embargo esto se puede lograr en unos segundos en el DCM. -- **Actividad de comercialización ocurre sin ningún intermediario**, que cobra tarifas altas. Los créditos de carbono digital representan un [ una mejora del coste del 62 %, comparado con el equivalente de créditos tradicionales](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne), de acuerdo con los datos de una empresa de analítica. -- **El DCM es escalable** y puede cumplir las demandas de los individuos y empresas multinacionales por igual. - -### Componentes clave del DCM {#key-components-dcm} - -Los cuatro componentes mayores que conforman el panorama actual del DCM son: - -1. Registros como [Verra](https://verra.org/project/vcs-program/registry-system/) y [ Gold Standard](https://www.goldstandard.org/) se aseguran de que los proyectos que crean créditos de carbono sean fiables. Estos también operan las bases de datos en las que se originan los créditos digitales de carbono y donde estos pueden transferirse o utilizarse (retirarse). - -Hay una nueva ola de proyectos innovadores que se están construyendo en las cadenas de bloques, que están intentando alterar la incumbencia en este sector. - -2. También conocidos como puentes de carbono, los tokenizadores, proporcionan la tecnología que representa o transfiere los créditos de carbono de registros tradicionales al DCM. Ejemplos notables incluyen [Protocolo de Toucan](https://toucan.earth/),[C3](https://c3.app/), y [Moss.Earth](https://moss.earth/). -3. Servicios integrados a favor del medio ambiente ofrecen créditos de anulación y/o eliminación de emisiones de carbono a los consumidores, para que ellos puedan reclamar los beneficios ambientales de un crédito y así apoyar la causa climática con el resto del mundo. - -Algunos como [Klima Infinity](https://www.klimadao.finance/infinity) y [Senken](https://senken.io/) ofrecen una amplia variedad de proyectos desarrollados por terceras personas y emitidos bajo estándares ya establecidos como el Verra; otros como [Nori](https://nori.com/) solo ofrecen proyectos específicos bajo su propio estándar de créditos de carbono, los que ellos mismos emiten y para los que tienen una plataforma intermediaria dedicada. - -4. La infraestructura y los cauces subyacentes que facilitan la escalabilidad del impacto y la eficiencia de toda la cadena de suministros del mercado de carbono. [KlimaDAO](http://klimadao.finance/) suministra liquidez como bien público (permitiendo que cualquier persona pueda comprar o vender créditos de carbono a un precio transparente), incentiva el crecimiento del rendimiento de los mercados de carbono y retiradas con recompensas, y ofrece herramientas fáciles de usar e interoperables para que el usuario pueda acceder a datos relacionados, así como adquirir y retirar una gran variedad de créditos de carbono tokenizados. - -## ReFi más allá de los mercados de carbono {#refi-beyond} - -Aunque hay actualmente un gran énfasis en los mercados de carbono en general y en pasar del VCM al DCM en particular dentro del espacio, el término «ReFi» no está estrictamente limitado al carbono. Se pueden desarrollar y tokenizar otros activos ambientales más alla de los créditos de carbono, lo que significaría que a otras consecuencias negativas también se les podría poner un precio dentro de las capas bases de futuros sistemas económicos. Aún más, el aspecto regenerativo de este modelo económico puede aplicarse a otras áreas, como a la financiación de bienes públicos a través de plataformas de financiación cuadrática como [Gitcoin](https://gitcoin.co/). Las organizaciones que están construidas sobre la idea de participación abierta y distribución equitativa de recursos empoderan a todos a canalizar el dinero hacia proyectos de código abierto, así también como hacia proyectos de enfoque educacional, ambiental y comunitario. - -Al alejar el rumbo del capital de las prácticas extractivas y redirigirlo hacia un flujo regenerativo, los proyectos y empresas ―que proporcionan beneficios sociales, ambientales y comunales, y que podrían no obtener fondos a través de finanzas tradicionales― pueden despegar y generar consecuencias positivas para la sociedad mucho más rápida y fácilmente. Pasar a este modelo de financiación también abre la puerta a sistemas económicos mucho más inclusivos, donde personas de todas las áreas demográficas pueden ser participantes activos en lugar de ser solo meros observadores pasivos. ReFi ofrece una visión de Ethereum como mecanismo para la acción coordinada en contra de los desafíos existenciales a los que se enfrenta nuestra especie y toda vida en nuestro planeta, como la capa base de un nuevo paradigma económico, permitiendo un futuro más inclusivo y sostenible por siglos venideros. - -## Bibliografía para saber más sobre las ReFi - -- [Un panorama general detallado de las monedas y activos de carbono y su lugar en la economía](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) -- [«El ministerio del futuro», una novela que muestra el papel de una moneda respaldada por carbono en su lucha contra el cambio climático.](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) -- [Un informe detallado por el grupo de trabajo sobre la optimización de los mercados voluntarios de carbono (VCM).](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) -- [Entrada sobre las ReFi en el glosario de CoinMarketCap de Kevin Owocki y Evan Miyazono](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/es/roadmap/beacon-chain/index.md b/src/content/translations/es/roadmap/beacon-chain/index.md deleted file mode 100644 index fb9220dba4c..00000000000 --- a/src/content/translations/es/roadmap/beacon-chain/index.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: La cadena de baliza -description: "Descubra todo lo relacionado con la cadena de baliza: la actualización que introdujo la prueba de participación en Ethereum." -lang: es -template: upgrade -image: ../../../../../assets/upgrades/core.png -summaryPoint1: La cadena de baliza ha introducido la prueba de participación en el ecosistema de Ethereum. -summaryPoint2: Se fusionó con la cadena de prueba de trabajo original de Ethereum en septiembre de 2022. -summaryPoint3: La cadena de baliza introdujo la lógica de consenso y bloqueó el protocolo de cotilleo que ahora asegura Ethereum. ---- - - - La cadena de baliza enviada el 1 de diciembre de 2020 formalizó la prueba de participación como mecanismo de consenso de Ethereum con la actualización a La Fusión el 15 de septiembre de 2022. - - -## ¿Qué es la cadena de baliza? {#what-is-the-beacon-chain} - -La cadena de baliza es el nombre original de la cadena de bloques de la prueba de participación que fue lanzada en 2020. Fue creada para mostrar que la lógica de consenso de la prueba de participación era segura y sostenible, antes de habilitarla en la red principal de Ethereum. Por esta razón, estuvo funcionando paralelamente con la prueba de trabajo de Ethereum. La Cadena de Baliza fue una cadena de bloques 'vacios', pero al cambiar a prueba de trabajo y al cambiar a prueba de participación en Ethereum requiere instrucciones a la Cadena de Baliza para aceptar data de transacciones de clientes de ejecución, juntarlos en bloques y después organizarlos en la cadena de bloques usando un mecanismo de consenso usando una base prueba de participación. Al mismo tiempo, los clientes originales de Ethereum apagaron su minería, propagación de bloques y lógica de consenso, confiándolo todo a la cadena de baliza. A este evento se le denominó [La Fusión](/roadmap/merge/). Una vez producida La Fusión, ya no había dos cadenas de bloques. En lugar de ello, solo había una prueba de participación en Ethereum, que ahora requiere dos clientes diferentes por nodo. La cadena de baliza es ahora la capa de consenso, una red entre pares de clientes de consenso que maneja el bloque de intercambio de información y la lógica de consenso, mientras que los clientes originales forman la capa de ejecución, que es la responsable del intercambio de información y de la ejecución de transacciones, y de la gestión del estado de Ethereum. Las dos capas pueden comunicarse entre sí usando Engine API. - -## ¿Qué hace la cadena de baliza? {#what-does-the-beacon-chain-do} - -Cadena de baliza es el nombre que se le ha dado a un libro mayor de cuentas que dirigía y coordinaba la red de [participantes](/staking/) de Ethereum antes de que esos participantes comenzaran a validar bloques reales de Ethereum. No procesa transacciones ni maneja interacciones de contratos inteligentes, porque eso se esta haciendo a través de la capa de ejecución. La cadena de baliza es responsable de cosas como la gestión de bloques y certificaciones, de la ejecución del algoritmo de bifurcación y de la gestión de recompensas y penalizaciones. Lea más en nuestra [página de arquitectura de nodos](/developers/docs/nodes-and-clients/node-architecture/#node-comparison). - -## El impacto de la cadena de baliza {#beacon-chain-features} - -### Introducción a la participación {#introducing-staking} - -La cadena de baliza introdujo la [prueba de participación](/developers/docs/consensus-mechanisms/pos/) en Ethereum. Esta mantiene la seguridad de Ethereum y permite a los validadores obtener más ETH en el proceso. En la práctica, la participación supone comprometer ETH para poder activar el software de validación. Como participante, se encargará de ejecutar el software que crea y valida los nuevos bloques de la cadena. - -La participación cumple un propósito similar al que solía realizar la [minería](/developers/docs/mining/), pero con muchas diferencias entre ambos. La minería requería de una inversión inicial significativa destinada a la adquisición de un productivo hardware y a cubrir los gastos de consumo energético, lo que derivó en economías de escala y en la promoción de la centralización. La minería tampoco requería la retención de activos colaterales, lo que limitaba los alcances del protocolo a castigar las acciones incorrectas solo tras un ataque. - -La transición de Ethereum a la prueba de participación hace que la red sea significativamente más segura y descentralizada en comparación con la prueba de trabajo. Cuantas más personas participan en la red, más descentralizada y menos segura frente a ataques se vuelve. - -Y usando la prueba de participación como un mecanismo de consenso es un componente fundamental para [la seguridad, respecto al medio ambiente y la escalabilidad de Ethereum que tenemos ahora](/roadmap/vision/). - - - Si le interesa convertirse en validador y contribuir con la seguridad de Ethereum, obtenga más información sobre la participación. - - -### Preparación para la fragmentación {#setting-up-for-sharding} - -Al producirse la fusión entre la cadena de baliza y la red principal de Ethereum, la comunidad de Ethereum comenzó a interesarse por la escalabilidad de la red. - -La prueba de participación ofrece las ventajas de contar con un registro de todos los productores de bloques aprobados en cualquier período de tiempo, todos ellos con ETH en participación. Este registro establece el escenario para la posibilidad de «dividir y vencer», pero determina de manera precisa la derivación de responsabilidades de la red. - -Esta responsabilidad se diferencia de la responsabilidad de la prueba de trabajo, en donde los mineros no tenían obligaciones con la red, quienes podían detener la minería y desactivar el software del nodo permanentemente sin que esto tuviera repercusiones. Tampoco existía un registro de quién proponía los bloques, por lo que no había forma de dividir apropiadamente las responsabilidades de la red. - -[Más sobre la fragmentación](/roadmap/danksharding/) - -## Relación entre actualizaciones {#relationship-between-upgrades} - -Las actualizaciones de Ethereum están interrelacionadas de alguna manera. Por tanto y a modo de recapitulación, veamos cómo la cadena de baliza influye en otras actualizaciones. - -### La cadena de baliza y La Fusión {#merge-and-beacon-chain} - -En sus comienzos, la cadena de baliza existía de manera independiente a la red principal de Ethereum, pero se fusionaron en 2022. - - - La Fusión - - -### Los fragmentos y la cadena de baliza {#shards-and-beacon-chain} - -La fragmentación solo podría implementarse en el ecosistema de Ethereum de manera segura a través del mecanismo de consenso de la prueba de participación. La cadena de baliza introdujo apuestas, que se «fusionaron» con la red principal, allanando el camino para la fragmentación y así contribuir a una mayor escalabilidad de Ethereum. - - - Cadenas de fragmentos - - -## Más información - -- [Más sobre las futuras actualizaciones de Ethereum](/roadmap/vision) -- [Más sobre arquitectura de nodos](/developers/docs/nodes-and-clients/node-architecture) -- [Más sobre la prueba de participación](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/es/roadmap/future-proofing/index.md b/src/content/translations/es/roadmap/future-proofing/index.md deleted file mode 100644 index a3f04d16c86..00000000000 --- a/src/content/translations/es/roadmap/future-proofing/index.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: Ethereum garantía futura -description: Estas actualizaciones consolidan a Ethereum como el fundamento descentralizado y resiliente del futuro, en todas sus formas. -lang: es -image: ../../../../../assets/roadmap/roadmap-future.png -alt: "Hoja de ruta de Ethereum" -template: roadmap ---- - -Algunas partes de la hoja de ruta no son obligatorias para escalar o asegurar a Ethereum a corto plazo, pero preparan la estabilidad y fiabilidad de Ethereum en el futuro. - -## Resistencia cuántica {#quantum-resistance} - -Parte de la criptografía que asegura el presente de Ethereum se alterará cuando la computación cuántica se haga realidad. Aunque es probable que la computación cuántica esté a décadas de distancia de ser una amenaza genuina para la criptografía moderna, Ethereum se está construyendo para ser segura por los siglos de los siglos. Esto significa hacer a [Ethereum cuántico resistente](https://consensys.net/blog/developers/how-will-quantum-supremacy-affect-blockchain/) tan pronto como sea posible. - -El desafío al que se enfrentan los desarrolladores de Ethereum es que el protocolo actual de prueba de participación se base en una estrategia de firmas muy eficiente conocida como BLS para añadir votos en bloques válidos. Las computadoras cuánticas son capaces de descodificar esta estrategia de firmas, no obstante, las alternativas cuántico-resistentes no son tan eficientes. - -Las [estrategias comprometidas «KZG»](/roadmap/danksharding/#what-is-kzg) que Ethereum utiliza en múltiples ocasiones para generar secretos criptográficos tienen vulnerabilidad cuántica. Actualmente, esto se evita usando «configuraciones seguras» en las que muchos usuarios generan una aleatoriedad a la que las computadoras cuánticas no pueden aplicar ingeniería inversa. De cualquier forma, la solución idónea sería incorporar simplemente criptografía cuántica segura. Hay dos enfoques principales que podrían convertirse en sustituciones eficientes de las estrategias BLS: [el basado en STARK](https://hackmd.io/@vbuterin/stark_aggregation) y [el basado en redes](https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-lattice-encryption-326ac66e3175) de firmas. Se siguen investigando y elaborando prototipos. - - Lea acerca de KZG y las configuraciones seguras - -## Ethereum más simple y eficiente {#simpler-more-efficient-ethereum} - -La complejidad crea oportunidades para errores o vulnerabilidades que los intrusos pueden explotar. En consecuencia, parte de la hoja de ruta está simplificando Ethereum y eliminando el código que ha estado pendiente de varias actualizaciones, pero que ya no se necesita o que ahora puede mejorarse. A los desarrolladores les resulta más sencillo y dinámico mantener y razonar una base de código. - -Se realizarán múltiples actualizaciones a la [Máquina Virtual de Ethereum (EVM)](/developers/docs/evm) para hacerla más simple y eficiente. Estas incluyen [eliminar el código operativo AUTODESTRUCTOR](https://hackmd.io/@vbuterin/selfdestruct): un comando rara vez usado que no se necesita más y que, en algunas circunstancias, puede llegar a ser peligroso, especialmente si se combina con otras actualizaciones futuras del modelo de almacenamiento de Ethereum. Los clientes de Ethereum aún apoyan algunos tipos de transacciones antiguas que ahora pueden eliminarse completamente. La forma en que se calcula el gas también se puede mejorar y se pueden implementar métodos más eficientes para la aritmética que respalda ciertas operaciones criptográficas. - -Igualmente, hay actualizaciones que pueden hacerse en otras áreas para los clientes actuales de Ethereum. Un ejemplo es que la ejecución actual y los clientes de consenso usan un tipo diferente de comprensión de la información. Será mucho más fácil e intuitivo compartir datos entre clientes si la estrategia de compresión está unificada en toda la red. - -## Progreso actual {#current-progress} - -La mayoría de las actualizaciones requeridas para la garantía futura de Ethereum están aún en fase de investigación y su implementación aún puede tardar varios años. Actualizaciones como eliminar SELF-DESTRUCT y armonizar la estrategia de comprensión usada en la ejecución y en los clientes de consenso probablemente lleguen antes que la criptografía cuántica resistente. - -**Más información** - -- [Gas](/developers/docs/gas) -- [EVM](/developers/docs/evm) -- [Estructura de datos](/developers/docs/data-structures-and-encoding) diff --git a/src/content/translations/es/roadmap/index.md b/src/content/translations/es/roadmap/index.md deleted file mode 100644 index 221d75b9b55..00000000000 --- a/src/content/translations/es/roadmap/index.md +++ /dev/null @@ -1,117 +0,0 @@ ---- -title: Hoja de ruta de Ethereum -description: El camino hacia una mayor escalabilidad, seguridad y sostenibilidad para Ethereum. -lang: es -template: roadmap -image: ../../../../assets/roadmap/roadmap-main.png -alt: "Hoja de ruta de Ethereum" -summaryPoints: -buttons: - - label: Actualizaciones futuras - toId: "¿Qué cambios están pendientes?" - - label: Actualizaciones anteriores - to: /history/ - variant: borrador ---- - -Ethereum ya es una plataforma poderosa para la coordinación global, pero aún se está mejorando. Un conjunto ambicioso de mejoras actualizará Ethereum de su forma actual a una plataforma de máxima resiliencia a escala completa. Estas actualizaciones se establecen en la hoja de ruta de Ethereum. - -**Para obtener más información sobre las actualizaciones anteriores de Ethereum, visite nuestra página [Historia](/history/)** - -## ¿Qué cambios le esperan a Ethereum? {#what-changes-are-coming} - -La hoja de ruta de Ethereum describe las mejoras específicas que se harán en el protocolo en el futuro. En general, la hoja de ruta traerá los siguientes beneficios a los usuarios de Ethereum: - - - - - - - - -## ¿Por qué Ethereum necesita una hoja de ruta? {#why-does-ethereum-need-a-roadmap} - -Ethereum se actualiza periódciamente para mejorar su escalabilidad, seguridad o sostenibilidad. Uno de los principales puntos fuertes de Ethereum es la adaptación a medida que surgen nuevas ideas de la investigación y el desarrollo. La adaptabilidad le da a Ethereum la flexibilidad para hacer frente a los desafíos emergentes y mantenerse al día con los avances tecnológicos más avanzados. - - - -La hoja de ruta es principalmente el resultado de años de trabajo de investigadores y desarrolladores, dado que el protocolo es muy técnico. No obstante cualquier persona motivada puede participar. Las ideas suelen comenzar como debates en un foro como [ethresear.ch](https://ethresear.ch/), [Ethereum magicians](https://www.figma.com/exit?url=https%3A%2F%2Fethereum-magicians.org%2F) o en el servidor de Discord de EthR&D. Pueden haber respuestas a nuevos puntos flacos que se descubren, sugerencias de organizaciones que trabajan en la capa de aplicaciones (como DApps e intercambios) o disuasiones conocidas para los usuarios finales (como costes o velocidades de transacción). Cuando estas ideas maduren, se pueden proponer como [propuestas de mejora de Ethereum o EIP] (https://eips.ethereum.org/). Todo esto se hace en público para que cualquier persona de la comunidad pueda intervenir en cualquier momento. - -[Más información sobre la gobernanza de Ethereum](/gobernanza/) - - - - -

¿Qué era ETH2?

- -

El término Eth2 se usaba comúnmente para describir el futuro de Ethereum antes del cambio a la prueba de participación, pero se eliminó gradualmente a favor de una terminología más precisa.Originalmente se usó para diferenciar la red Ethereum antes del cambio a la prueba de participación y la red después, o a veces para referirse a los diferentes clientes de Ethereum (los clientes de ejecución a veces se denominaban clientes ETH1 y los clientes de consenso a veces se denominaban clientes ETH2).

- -
- -## ¿Cambiará la hoja de ruta de Ethereum con el tiempo? {#will-ethereums-roadmap-change-over-time} - -Sí, casi seguro que sí. La hoja de ruta es el plan actual para actualizar Ethereum, que cubre los planes a corto plazo y futuros. Esperamos que la hoja de ruta cambie a medida que se disponga de nueva información y tecnología. - -Piense en la hoja de ruta de Ethereum como un conjunto de intenciones para mejorar Ethereum; es la mejor hipótesis de los principales investigadores y desarrolladores sobre el camino más óptimo de Ethereum. - -## ¿Cuándo terminará la hoja de ruta? {#when-will-the-roadmap-be-finished} - -Ethereum implementará algunas actualizaciones en los próximos seis meses (por ejemplo, retiradas de participación); otras tienen una prioridad más baja y es probable que no se implementen durante los próximos 5-10 años (por ejemplo, la resistencia cuántica). Dar un tiempo preciso de cada actualización es complicado de predecir, ya que muchos elementos de la hoja de ruta se trabajan en paralelo y se desarrollan a diferentes velocidades. La urgencia de una actualización también puede cambiar con el tiempo dependiendo de factores externos (por ejemplo, un salto repentino en el rendimiento y la disponibilidad de los ordenadores cuánticos puede hacer que la criptografía resistente a los cuánticos sea más urgente). - -Una forma de pensar en el desarrollo de Ethereum es por analogía con la evolución biológica. Es más probable que una red que sea capaz de adaptarse a los nuevos desafíos y mantener la aptitud tenga más éxito que la resistente al cambio, aunque a medida que la red se vuelve cada vez más eficiente, escalable y segura, se requerirán menos cambios en el protocolo. - -## ¿Tengo que hacer algo cuando haya una actualización? {#do-i-have-to-do-anything-when-there-is-an-upgrade} - -Las actualizaciones tienden a no afectar a los usuarios finales, excepto al proporcionar mejores experiencias de usuario y un protocolo más seguro y tal vez más opciones sobre cómo interactuar con Ethereum. Los usos finales no están obligados a participar activamente en una actualización, ni están obligados a hacer nada para asegurar sus activos. Los operadores de nodos tendrán que actualizar sus clientes de cara a una actualización. Algunas actualizaciones pueden provocar cambios para los desarrolladores de aplicaciones. Por ejemplo, las actualizaciones de caducidad del historial pueden llevar a los desarrolladores de aplicaciones a obtener datos históricos de nuevas fuentes. - -## ¿Y qué pasa con The Verge, The Splurge, etc? {#what-about-the-verge-splurge-etc} - -[Vitalik Buterin propusó una visión para la hoja de ruta de Ethereum](https://twitter.com/VitalikButerin/status/1588669782471368704) que estaba organizada en varias categorías vinculadas por sus efectos a la arquitectura de Ethereum. Incluía: - -- The Merge: actualizaciones relacionadas con el cambio de prueba de trabajo a prueba de participación -- The Surge: actualizaciones relacionadas con la escalabilidad mediante acumulaciones y fragmentación de datos. -- The Scourge: mejoras relacionadas con la resistencia a la censura, la descentralización y los riesgos de protocolo de MEV. -- The Verge: actualizaciones relacionadas con la verificación de bloques más fácilmente. -- The Purge: actualizaciones relacionadas con la reducción de los costes computacionales de la ejecución de los nodos y la simplificación del protocolo. -- The Splurge: otras actualizaciones que no encajan bien en las categorías anteriores. - -Decidimos no usar esta terminología porque queríamos usar un modelo más simple y centrado en el usuario. Aunque utilizamos un lenguaje centrado en el usuario, la visión sigue siendo la misma que la propuesta por Vitalik. - -## ¿Qué pasa con la fragmentación? {#what-about-sharding} - -La fragmentación está dividiendo la cadena de bloques de Ethereum para que los subconjuntos de validadores solo sean responsables de una fracción del total de datos. Originalmente, esta iba a ser la forma de escalar Ethereum. Sin embargo, las acumulaciones de la capa 2 se han desarrollado mucho más rápido de lo esperado y ya han proporcionado mucha escalabilidad, y proporcionarán mucha más después de que se implemente ProtoDanksharding. Esto significa que ya no se necesitan «cadenas fragmentadas» y se han eliminado de la hoja de ruta. - -## ¿Busca actualizaciones técnicas específicas? {#looking-for-specific-technical-upgrades} - -- [Danksharding](/roadmap/danksharding): Danksharding hace que las acumulaciones de capa 2 sean mucho más baratas para los usuarios al añadir «masas» de datos a los bloques de Ethereum. -- [Retiradas de participación](/staking/withdrawals): la actualización de Shanghai/Capella posibilitó las retiradas de participación en Ethereum, lo que permitió a las personas desbloquear su ETH en participación. -- [Finalidad de una sola ranura](/roadmap/single-slot-finality): en lugar de esperar quince minutos, los bloques podrían proponerse y finalizarse en la misma ranura. Esto resulta más práctico para las aplicaciones y mucho más difícil de atacar. -- [Separación entre proponentes y constructores](/roadmap/pbs): dividir las tareas de construcción de bloques y propuestas de bloques entre validadores separados crea una forma más justa, más resistente a la censura y eficiente para que Ethereum llegue a un consenso. -- [Eleccion de líder secreto](/roadmap/secret-leader-election): se puede utilizar una criptografía inteligente para garantizar que la identidad del actual proponente de bloques no se haga pública, protegiéndolos de ciertos tipos de ataques. -- [Abstracción de cuenta](/roadmap/account-abstraction): la abstracción de cuenta es una clase de actualización que admite carteras de contratos inteligentes de forma nativa en Ethereum, en lugar de tener que usar middleware complejo. -- [Árboles de Verkle](/roadmap/verkle-trees): los árboles de Verkle son una estructura de datos que se puede utilizar para habilitar clientes sin estado en Ethereum. Estos clientes «sin estado» requerirán una pequeña cantidad de espacio de almacenamiento, pero aún así podrán verificar nuevos bloques. -- [Sin estado](/roadmap/statelessness): los clientes sin estado podrán verificar nuevos bloques sin tener que almacenar grandes cantidades de datos. Esto proporcionará todos los beneficios de ejecutar un nodo con solo una pequeña fracción de los costes actuales. diff --git a/src/content/translations/es/roadmap/merge/index.md b/src/content/translations/es/roadmap/merge/index.md deleted file mode 100644 index 63a8692d639..00000000000 --- a/src/content/translations/es/roadmap/merge/index.md +++ /dev/null @@ -1,228 +0,0 @@ ---- -title: La Fusión -description: Conozca más sobre La Fusión y sobre cuándo la red principal de Ethereum implementará la prueba de participación. -lang: es -template: upgrade -image: ../../../../../assets/upgrades/merge.png -summaryPoint1: La red principal de Ethereum usa prueba de participación, pero esto no fue siempre el caso. -summaryPoint2: La actualización del mecanismo original de prueba de trabajo a prueba de participación se denominó «La fusión». -summaryPoint3: La Fusión se refiere a la fusión original de la red principal de Ethereum con una cadena de bloques de prueba de participación independiente llamada la cadena de bloques, que ahora existe como una cadena. -summaryPoint4: La Fusión reduce el consumo de energía de Ethereum en un ~99.95%. ---- - - - La Fusión se ejecutó el 15 de septiembre de 2022. Esto completó la transición de Ethereum al consenso de prueba de participación, dejando de lado oficialmente la prueba de trabajo y reduciendo el consumo de energía en un ~99,95%. - - -## ¿Qué es La Fusión? {#what-is-the-merge} - -La fusión fue la unión de la capa de ejecución inicial de Ethereum (la red principal que ha existido desde el [génesis](/history/#frontier)) con su nueva capa de consenso de prueba de participación, la cadena de baliza. Eliminó la necesidad de la minería conun consumo intensivo de energía y, en su lugar, permitió asegurar la red utilizando ETH apostados. Es un paso verdaderamente emocionante para hacer la visión de Ethereum una realidad: más escalabilidad, seguridad y sostenibilidad. - - - -Inicialmente, la [cadena de baliza](/roadmap/beacon-chain/) se lanzó de manera separada de la [red principal](/glossary/#mainnet). La red principal de Ethereum, con todas sus cuentas, balances, contratos inteligentes y estado de la cadena de bloques, continúa siendo asegurdad por el mecanismo de [prueba de participación](/developers/docs/consensus-mechanisms/pow/), incluso cuando la cadena de baliza se ejecuta en paralelo usando la [prueba de participación](/developers/docs/consensus-mechanisms/pos/). La Fusión se produce cuando estos dos sistemas finalmente se unen, siendo la prueba de trabajo permanentemente remplazada por la prueba de participación. - -Imagina que Ethereum es una nave espacial que es lanzada antes de estar lista para un viaje interestelar. Con la cadena de baliza, la comunidad construyó un nuevo motor y un chasis más fuerte. Después de muchas pruebas, casi ha llegado el momento de cambiar el nuevo motor por el antiguo en pleno vuelo. De este modo, el nuevo motor, más eficiente, se integrará en la nave existente, preparada para recorrer grandes distancias y conquistar el universo. - -## Acoplamiento con la red principal {#merging-with-mainnet} - -Prueba de trabajo aseguraba la red principal de Ethereum desde sus orígenes hasta La Fusión. Esto permitió que la cadena de bloques de Ethereum que todos usamos se creara en julio de 2015 con todas sus características familiares: transacciones, contratos inteligentes, cuentas, etc. - -A lo largo de la historia de Ethereum, los desarrolladores han trabajado duro para preparar una eventual transición del algoritmo de consenso prueba de trabajo a prueba de participación. El 1 de diciembre de 2020 se creó la cadena de baliza, que desde entonces existe como una cadena de bloques independiente de la red principal, funcionando en paralelo. - -La cadena de baliza no ha estado procesando las transacciones de la red principal. En su lugar, ha ido consensuando su propio estado de acuerdo con los validadores activos y los saldos de sus cuentas. Tras numerosas pruebas, ha llegado el momento de que la cadena de baliza alcance el consenso con datos reales. Tras La Fusión, la cadena de baliza se convierte en el motor de consenso para todos los datos de la red, incluyendo las transacciones de capa de ejecución y los balances de cuenta. - -La Fusión representa la transición oficial al uso de la cadena de baliza como el mecanismo de producción de bloques. El minado deja de ser el mecanismo de producción de bloques válidos. En lugar de ello, los validadores de la prueba de participación han asumido este rol y ahora son los responsables de procesar la validez de todas transacciones y de proponer nuevos bloques. - -El historial no se ha perdido tras La Fusión. Ya que la red principal se fusionó con la cadena de baliza, también se produjo una fusión de todo el historial de transacciones de Ethereum. - - -Esta transición a la prueba de participación ha cambiado la forma en la que se emiten Ethers. Más información sobre la emisión de ether antes y después de La Fusión. - - -### Usuarios y titulares {#users-holders} - -**La Fusión no cambió nada para los titulares/usuarios.** - -_Es necesario repetirlo_: Como usuarios o titulares de ETH o cualquier otro activo digital de Ethereum, así como aquellos participantes que no operan en nodos, **no es necesario realizar ninguna acción relacionada con sus fondos, cartera o cuenta para La Fusión.** ETH sigue siendo ETH. No existirán tales cosas como «old ETH»/«new ETH» ni «ETH1»/«ETH2». Las carteras seguirán funcionando exactamente igual que como lo hacían antes de La Fusión. Las personas que sugieran lo contrario, probablemente sean estafadores. - -A pesar de intercambiar la prueba de trabajo y transicionar a la prueba de participación, el historial completo de Ethereum se mantiene intacto y sin alteraciones desde su creación. Todos los fondos que tengas en tu cartera antes de La Fusión siguen siendo accesibles después de la misma. **No se requiere ninguna actualización por su parte.** - -[Más información sobre la seguridad de Ethereum](/security/#eth2-token-scam) - -### Operadores de nodos y desarrolladores de DApps {#node-operators-dapp-developers} - - - -Las principales medidas son las siguientes: - -1. Ejecutar un cliente de consenso _both_ y un cliente de ejecución; las terminales de terceros para obtener datos de ejecución ya no funcionarán después de La Fusión. -2. Se autenticarán tanto el cliente de ejecución como el de consenso al compartir un JWT secreto que les permite comunicarse entre sí. -3. Establecer una dirección «receptora de la comisión» para recibir las propinas de las comosiones de transacciones ganadas/MEV. - -Si no se completan los dos puntos anteriores, el nodo se verá como «desconectado» hasta que ambas capas estén sincronizadas y autenticadas. - -Si no se establece un «receptor de las comisiones», el validador seguirá comportandose como de costumbre, pero se perderán las propinas de las comisiones no consumidas y cualquier MEV que se hubiera ganado en los bloques que propone el validador. - - - - -Hasta el momento de La Fusión, un cliente de ejecución (como Geth, Erigon, Besu o Nethermind) era suficiente para recibir, validar y propagar los bloques divulgados por la red principal. _Tras La Fusión_, la validez de las transacciones contenidas en las cargas de ejecución ahora también dependerán de la validación del «bloque de consenso» que estas contienen. - -Como resultado de ello, un nodo completo de Ethereum ahora requiere tanto de un cliente de ejecución como de un cliente de consenso. Estos dos clientes trabajan juntos utilizando una nueva Engine API. La Engine API requiere la autenticación mediante un JWT secreto, que se proporciona a ambos clientes permitiendo una comunicación segura. - -Las acciones clave incluyen: - -- La instalación de un cliente de consenso adicional al cliente de ejecución. -- La autenticación de los clientes de ejecución y consenso con un JWT secreto compartido para permitir que estos se comuniquen entre sí de manera segura. - -Si no se completan los pasos anteriores, su nodo aparecerá como «desconectado» hasta que ambas capas estén sincronizadas y autenticadas. - - - - - -La Fusión vino con cambios en el consenso, que también incluye cambios relacionados con:< - -
    -
  • estructura de bloque
  • -
  • secuenciación de bloques/ranuras
  • -
  • cambios en el código operativo
  • -
  • fuentes de aleatoriedad en cadena
  • -
  • concepto de cabeza segura y bloques finalizados
  • -
- -Para obtener más información, eche un vistazo a esta publicación en el blog de Tim Beiko sobre Cómo afecta La Fusión a la capa de aplicación de Ethereum. - -
- -## La Fusión y el consumo de energía {#merge-and-energy} - -La Fusión pone fin a la prueba de trabajo de Ethereum, dando paso al inicio de una era con un Ethereum más sostenible y ecológico. El consumo de energía de Ethereum se redujo en un 99,95% aproximadamente, haciendo de Ethereum una cadena de bloques ecológica. Más información sobre [el consumo de energía de Ethereum](/energy-consumption/). - -## La Fusión y la fragmentación {#merge-and-scaling} - -La Fusión coloca a Ethereum en una nueva fase de actualizaciones escalables que no podrían realizarse bajo el mecanismo de prueba de trabajo, lo que permite que Ethereum dé un paso importante en la consecución de los objetivos de escalabilidad, seguridad y sustentabilidad contenidos en la [Visión de Ethereum](/roadmap/vision/). - -## Conceptos erróneos sobre La Fusión {#misconceptions} - - - -Hay dos tipos de nodos en Ethereum: los que pueden proponer bloques y los que no. - -Los nodos que proponen bloques son solo un pequeño número total de todos los nodos de Ethereum. Esta categoría incluye los nodos mineros bajo prueba de trabajo (PoW) y los nodos validadores bajo prueba de participación (PoS). Esta categoría requiere comprometer recursos económicos (como el poder de hash de la GPU en una prueba de trabajo o ETH depositado en prueba de participación) a cambio de poder proponer ocasionalmente el siguiente bloque y ganar recompensas del protocolo. - -Los demás nodos de la red (es decir, la mayoría) no necesitan comprometer ningún recurso económico más allá de un ordenador de consumo con 1-2 TB de almacenamiento disponible y una conexión a Internet. Estos nodos no proponen bloques, pero siguen desempeñando un papel fundamental en la seguridad de la red, al tener un registro de todos los nodos que sí proponen bloques analizando la inclusión de nuevos y verificando su validez a su llegada, de acuerdo con las reglas de consenso de la red. Si el bloque es válido, el nodo continúa propagándolo por la red. Si el bloque no es válido por cualquier motivo, el software del nodo lo ignorará como no válido y detendrá su propagación. - -Cualquier persona bajo cualquier mecanismo de consenso (prueba de trabajo o prueba de participación) puede ejecutar un nodo que no produzca bloques; se recomienda encarecidamente para todos los usuarios si tienen los medios. Ejecutar un nodo es inmensamente valioso para Ethereum y aporta beneficios adicionales a cualquier persona que ejecute uno, como la mejora de la seguridad, la privacidad y la resistencia a la censura. - -La capacidad de cualquier persona tiene de ejecutar su propio nodo es absolutamente esencial para mantener la descentralización de la red Ethereum. - -Más información sobre cómo ejecutar su propio nodo. - - - - - -Las tarifas de gas son producto de la demanda de la red en relación con la capacidad de la misma. La Fusión dejó obsoleto el uso del mecanismo de prueba de trabajo, permitiendo la transición a la prueba de participación para el consenso, pero no cambió de manera significativa ninguno de los parámetros que influyen de manera directa la capacidad o rendimiento de la red. - -Con una hoja de ruta centrada en las acumulaciones, los esfuerzos se están centrando en escalar la actividad del usuario en la capa 2, al tiempo que se le permite la red principal de la capa 1 ser una capa de liquidación descentralizada segura optimizada para el almacenamiento de datos de la acumulación y así ayudar a hacer que las transacciones sean exponencialmente más baratas. La transición a la prueba de participación es un precursor fundamental para conseguirlo. Más información sobre el gas y las tarifas. - - - - -La «velocidad» de una transacción puede medirse de varias maneras, incluyendo el tiempo de inclusión en un bloque y el tiempo de finalización. Ambas cosas cambian ligeramente, aunque no de forma perceptible para los usuarios. - -Históricamente, en la prueba de trabajo, el objetivo era tener un nuevo bloque cada ~13,3 segundos. Con la prueba de participación, los intervalos ocurren cada 12 segundos, y cada uno de ellos constituye una oportunidad para que el validador publique un bloque. La mayoría de las ranuras tienen bloques, aunque no necesariamente todos (por ejemplo , un validador está desconectado). Con la prueba de participación, los bloques se producen con más de 10 % de frecuencia en comparación con la prueba de trabajo. Esto es un cambio relativamente insignificante, con pocas probabilidades de ser percibido por los usuarios. - -La prueba de participación introduce el concepto de finalidad de la transacción que no existía anteriormente. Con la prueba de trabajo, la posibilidad de revertir un bloque se hace exponencialmente más difícil, con cada bloque aprobado siendo minado como complemento de la transacción, aunque nunca suele llegar a cero. En la prueba de participación, los bloques se agrupan en épocas (periodos de tiempo de 6,4 minutos que contienen 32 oportunidades para los bloques) que los validadores votan. Cuando termina una época, los validadores votan si la consideran «justificada». Si los validadores están de acuerdo en justificarla, se finaliza en la siguiente. Deshacer las transacciones finalizadas es económicamente inviable ya que requeriría obtener y quemar más de un tercio del total de ETH depositado. - - - - - -Inicialmente, después de La Fusión, los participantes solo podían acceder a las propinas de tarifas y MEV que se ganaban como resultado de las propuestas de bloques. Estas recompensas se acreditan a una cuenta sin participación controlada por el validador (conocida como el destinatario de la tarifa), y están disponibles de inmediato. Estas recompensas están separadas de las recompensas del protocolo para realizar las tareas de validación. - -Desde la mejora de la red Shanghai/Capella, los participantes pueden designar una dirección de retirada para comenzar a recibir pagos automáticos de cualquier saldo en exceso (más de 32 ETH por recompensas del protocolo). Esta actualización también permitió a los validadores desbloquear y reclamar el total de su saldo al salir de la red. - -Más información sobre la retirada de participaciones. - - - - -Desde que la actualización Shanghai/Capella activó las retiradas, los validadores tienen el incentivo de retirar su saldo excedente de participación por encima de los 32 ETH, pues estos fondos no suman al rendimiento y sólo están bloqueados. Dependiendo de la tasa efectiva anual (o APR, según sus siglas en inglés), que viene determinada por el total de ETH depositado, se puede animar a su(s) validadores a reclamar todo su saldo o potencialmente apostar aún más usando sus recompensas para ganar más rendimiento. - -Un detalle importante que cabe recalcar es que el ritmo de las salidas de un validador total las limita el protocolo, y sólo puede salir cierto número de validadores por época (cada 6,4 minutos). Este límite fluctúa dependiendo del número de validadores activos, pero llega a aproximadamente el 0,33 % del total de ETH en participación que puede salir de la red en un solo día. - -Esto evita un éxodo masivo de fondos en participación. Además, evita que un potencial atacante con acceso a una gran parte del total de ETH en participación actúe de mala fe y que se pueda recortar/retirar todo el saldo del validador causante en la misma época, antes de que el protocolo pueda hacer cumplir la penalización mediante recorte. - -La APR también es intencionalmente dinámica, lo que permite a un mercado de participantes equilibrar cuánto están dispuestos a que se les pague para ayudar a proteger la red. Si la tasa es muy baja, los validadores se retirarán a un ritmo limitado por el protocolo. Poco a poco, esto aumentará la APR para todos los que se queden, atrayendo a nuevos participantes o a los que regresen. - - -## ¿Qué pasó con «Eth2»? {#eth2} - -El término «Eth2» ha quedado obsoleto. Al fusionar Eth1 y Eth2 en una sola cadena, no hay necesidad de distinguir entre dos redes de Ethereum; es solo Ethereum. - -Para evitar mayor confusión, la comunidad ha actualizado estos términos: - -- «Eth1» es ahora la«capa de ejecución», que se encarga de las transacciones y ejecución. -- «Eth2» ahora es la «capa de consenso», que maneja el consenso de prueba de participación. - -Estas actualizaciones de terminología solo cambian la nomenclatura, no alteran los objetivos ni el itinerario de Ethereum. - -[Más información acerca del cambio de nombre a «Eth2»](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) - -## Relación entre actualizaciones {#relationship-between-upgrades} - -Las actualizaciones de Ethereum están interrelacionadas de alguna manera. Recapitulemos pues, sobre cómo se relaciona La Fusión con otras actualizaciones. - -### La Fusión y la cadena de baliza {#merge-and-beacon-chain} - -La Fusión representa la adopción formal de la cadena de baliza como la nueva capa de consenso de la capa de ejecución original de la red principal. Desde La Fusión, se asignan validadores para proteger la red principal de Ethereum y el minado de la [prueba de trabajo](/developers/docs/consensus-mechanisms/pow/) deja de ser el medio válido para la producción de bloques. - -En su lugar, los bloques serán propuestos desde un nodo validado que tenga ETH apostados a cambio del derecho de participar en el consenso. Estas actualizaciones sientan las bases para futuras mejoras de escalabilidad, incluida la fragmentación. - - - La cadena de baliza - - -### La Fusión y actualización Shanghai {#merge-and-shanghai} - -Con la intención de simplificar y maximizar los esfuerzos centrados en una transición fructífera a la prueba de participación, la actualización de La Fusión no incluirá algunas características previamente anticipadas, como la posibilidad de retirar ETH apostados. Esta funcionalidad se habilitó de forma separada con la actualización Shanghai/Capella. - -Aquellos que quieran saber más, pueden ver la charla [Lo que ocurrirá después de La Fusión](https://youtu.be/7ggwLccuN5s?t=101), que dio Vitalik, en el evento ETHGlobal en abril de 2021. - -### La fusión y la fragmentación {#merge-and-data-sharding} - -Originalmente, el plan era trabajar en la fragmentación antes de La Fusión para abordar la escalabilidad. No obstante, con la proliferación de las [soluciones escalables de capa 2](/layer-2/), las prioridades se reorientaron a pasar de prueba de trabajo a prueba de participación. - -Los planes de fragmentación están evolucionando rápidamente, pero dado el auge y el éxito de las tecnologías de capa 2 para escalar la ejecución de transacciones, los planes de fragmentación han pasado a buscar la forma más óptima de distribuir la carga de almacenar los datos comprimidos de las llamadas procedentes de las acumulaciones, permitiendo un crecimiento exponencial de la capacidad de la red. Esto no sería posible sin pasar primero a la prueba de participación. - - - Fragmentación - - -## Más información {#further-reading} - - - - diff --git a/src/content/translations/es/roadmap/scaling/index.md b/src/content/translations/es/roadmap/scaling/index.md deleted file mode 100644 index dd9f84cccab..00000000000 --- a/src/content/translations/es/roadmap/scaling/index.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Escalar en Ethereum -description: Las acumulaciones agrupan transacciones en lotes y lo hacen fuera de la cadena, reduciendo costes para el usuario. Sin embargo, la forma en que las acumulaciones gestionan los datos es muy cara en estos momentos, limitando con ello la posibilidad de tener transacciones baratas. Proto-anksharing se encarga de solucionarlo. -lang: es -image: ../../../../../assets/roadmap/roadmap-transactions.png -alt: "Hoja de ruta de Ethereum" -template: roadmap ---- - -Ethereum escala utilizando las [capas 2](/layer-2/#rollups)(también conocidas como acumulaciones o «rollups»), que agrupan transacciones y envían el resultado a Ethereum. Aunque las acumulaciones son hasta ocho veces más baratas que la red principal de Ethereum, es posible optimizarlas aún más para reducir costes para los usuarios finales. Las acumulaciones dependen de algunos componentes centralizados que los desarrolladores podrán eliminar en la medida en que dichas acumulaciones maduren. - - -
    -
  • Actualmente las acumulaciones son ~3-8x más baratas que la capa 1 de Ethereum
  • -
  • Las acumulaciones ZK pronto reducirán un ~40-100 las tarifas.
  • -
  • Los próximos cambios en Ethereum traerán un incremento de ~100-1.000 en escalabilidad.
  • -
  • Los usuarios deberían beneficiarse con transacciones que cuesten menos de 0,001 USD.
  • -
-
- -## Abaratar los datos {#making-data-cheaper} - -Las acumulaciones agrupan un gran número de transacciones, las ejecutan y envían los resultados a Ethereum. Esto genera una gran cantidad de datos que necesitan estar disponibles para todos, de forma que cualquiera pueda ejecutar las transacciones por sí mismo y verificar que el operador de la acumulación ha actuado con honestidad. Si alguien encuentra una discrepancia, puede denunciarla. - -### ProtoDanksharding {#proto-danksharding} - -Los datos de las acumulaciones se almacenan en Ethereum de forma permanente, lo que tiene un coste elevado. Más del 90 % del coste de la transacción que los usuarios pagan en las acumulaciones se debe a este almacenamiento de datos. Para reducir los costes de las transacciones, podemos trasladar los datos a un nuevo almacenamiento temporal masivo. Las masas de datos son más baratas, ya que no son permanentes; se eliminan de Ethereum una vez que ya no se necesitan. Almacenar datos de las acumulaciones a largo plazo se convierte en una responsabilidad de las personas que los necesitan, como los operadores de acumulación, los intercambios, los servicios de indexación, etc. Añadir transacciones masivas a Ethereum es parte de una actualización conocida como «ProtoDanksharding». Se espera que esté lista relativamente pronto, tal vez a finales de 2023. - -Después de que las transacciones masivas se hayan convertido en parte del protocolo Ethereum a través de ProtoDanksharding, se podrán añadir muchas masas a los bloques de Ethereum. Esto traerá otro aumento sustancial (>x 100) del rendimiento de Ethereum y una reducción en los costes de transacción. - -### Danksharding {#danksharding} - -La segunda fase de expansión de los datos guardados masivamente es complicada, porque requiere nuevos métodos para comprobar si los datos de las acumulaciones están disponibles en la red y depende de que se puedan separar las responsabilidades de los validadores en la construcción y propuesta de bloques. También requiere una forma de demostrar criptográficamente que los validadores han verificado pequeños subconjuntos de los datos masivos. - -Este segundo paso es conocido como [«Danksharding»](/roadmap/danksharding/). Es probable que aún tarde varios años en implementarse en su totalidad. Danksharding se basa en otros desarrollos como [separar la construcción y la propuesta de bloques](/roadmap/pbs) y nuevos diseños de red que permitan a la red confirmar eficientemente que los datos están disponibles, muestreando aleatoriamente unos cuantos kilobytes cada vez, lo que se denomina [muestreo de disponibilidad de datos (DAS)](/developers/docs/data-availability). - -Más información sobre la fragmentación. - -## Descentralizar las acumulaciones {#decentralizing-rollups} - -Las [acumulaciones](/layer-2) ya están escalando en Ethereum. Un ecosistema rico en [proyectos sobre acumulaciones](https://l2beat.com/scaling/tvl) permite que los usuarios hagan una transacción rápida y económica, con un rango de garantías de seguridad. Sin embargo, las acumulaciones se han implementado inicialmente utilizando secuenciadores centralizados (ordenadores que realizan todo el procesamiento de transacciones y la agregación antes de enviarlas a Ethereum). Esto los hace vulnerables a la censura, porque los operadores de los secuenciadores pueden ser sancionados, sobornados o verse expuestos a riesgos. Al mismo tiempo, [las acumulaciones se diferencian](https://l2beat.com) en la forma en que validan los datos entrantes. La mejor forma es que los «probadores» presenten pruebas de fraude o pruebas de validez, pero no todas las acumulaciones están a ese nivel. Incluso aquellas acumulaciones que utilizan pruebas de validez/fraude utilizan un pequeño grupo de probadores conocidos. Por lo tanto, el siguiente paso crítico en la escalabilidad de Ethereum es distribuir la responsabilidad de ejecutar secuenciadores y probadores entre más personas. - -Más información sobre las acumulaciones. - -## Progreso actual {#current-progress} - -Es probable que ProtoDanksharding sea uno de los primeros componentes de la hoja de ruta en implementarse. Los pasos en computación descentralizada necesarios para configurarlo ya están en marcha y varios clientes han implementado prototipos para manejar datos en masa. Es probable que el Danksharding completo aún no vea la luz en varios años, ya que depende de que se completen varios otros elementos de la hoja de ruta en primer lugar. Descentralizar la infraestructura de acumulaciones seguramente será un proceso gradual: hay muchas acumulaciones distintas que están construyendo sistemas ligeramente diferentes y se descentralizarán totalmente a diferentes velocidades. diff --git a/src/content/translations/es/roadmap/security/index.md b/src/content/translations/es/roadmap/security/index.md deleted file mode 100644 index 3752a65445e..00000000000 --- a/src/content/translations/es/roadmap/security/index.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: Un Ethereum más seguro -description: Ethereum es la plataforma de contratos inteligentes más segura y descentralizada que existe. Sin embargo, todavía se pueden hacer mejoras para que Ethereum siga resistiendo a cualquier tipo de ataque en el futuro. -lang: es -image: ../../../../../assets/roadmap/roadmap-security.png -alt: "Hoja de ruta de Ethereum" -template: roadmap ---- - -Ethereum ya es una plataforma de contratos inteligentes muy segura y descentralizada. Sin embargo, todavía se pueden hacer mejoras para que Ethereum siga resistiendo a cualquier tipo de ataque en el futuro. Esto incluye cambios sutiles en la forma en que los clientes de Ethereum gestionan los bloques en conflicto, así como aumentar la velocidad a la que la red considera que los bloques están ["finalizados"](/developers/docs/consensus-mechanisms/pos/#finality) (lo que significa que no pueden cambiarse sin pérdidas económicas extremas para un atacante). - -También hay mejoras que dificultan mucho más la censura de transacciones al hacer que los proponentes de bloques desconozcan el contenido real de sus bloques, y nuevos métodos para identificar cuándo un cliente está censurando. Juntas, estas mejoras actualizarán el protocolo de la prueba de participación, de manera que los usuarios, desde individuos hasta corporaciones, tengan confianza instantánea en sus aplicaciones, datos y activos en Ethereum. - -## Retiradas de participaciones {#staking-withdrawals} - -La actualización de prueba de trabajo a prueba de participación comenzó con los pioneros de Ethereum apostando su ETH en un contrato de depósito. Ese ETH se usó para proteger la red. Sin embargo, ese ETH no se puede desbloquear y devolver a los usuarios. Permitir la retirada de ETH es una parte crítica de la mejora de la prueba de participación. Además de que las retiradas son un componente crítico de un protocolo de prueba de participación completamente funcional, permitir las retiradas también es beneficioso para la seguridad de Ethereum, ya que permite a los participantes usar sus recompensas de ETH para otros fines que no sea la participación. Esto significa que los usuarios que desean liquidez no tienen que depender de los derivados de participación líquida (LSD) que pueden ser una fuerza centralizadora en Ethereum. Está previsto que se complete esta actualización el 12 de abril de 2023. - -Descubra más cosas sobre las retiradas. - -## Defenderse contra ataques {#defending-against-attacks} - -Incluso después de las retiradas, hay mejoras que se pueden hacer en el protocolo [de prueba de participación](/developers/docs/consensus-mechanisms/pos/) de Ethereum. Uno se lo conoce como [view-merge](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739): un algoritmo de elección de bifurcación más seguro que dificulta ciertos ataques sofisticados. - -Reducir el tiempo que Ethereum tarda en finalizar bloques podría proveer una mejor experiencia de usuario y evitar ataques sofisticados «reorg», en los que los atacantes intentan reordenar bloques muy recientes para obtener beneficios o para censurar ciertas transacciones. [**Finalidad de ranura única (SSF)**](/roadmap/single-slot-finality/) es una forma de minimizar el retraso de finalización. En la actualidad hay 15 minutos de bloques en los que un atacante puede, en teoría, convencer a los otros validadores para reconfigurar. Con SSF, hay 0. Los usuarios, desde individuos hasta aplicaciones e intercambios, se benefician de una rápida garantía de que sus transacciones no se revertirán y de que la red se beneficia al cerrar toda una categoría de ataques. - -Más información sobre la finalidad de ranura única. - -## Defenderse contra la censura {#defending-against-censorship} - -La descentralización evita que los individuos o pequeños grupos de validadores se vuelvan demasiado influyentes. Las nuevas tecnologías de participación pueden ayudar a garantizar que los validadores de Ethereum se mantengan lo más descentralizados posible, al tiempo que los defienden contra fallos de hardware, software y red. Esto incluye el software que comparte las responsabilidades del validador a través de múltiples nodos. Esto se conoce como **tecnología de validador distribuido (DVT)**. Las participaciones agrupadas tienen incentivos a usar DVT, porque permite que múltiples ordenadores participen colectivamente en la validación, añadiendo redundancia y tolerancia a fallos. También divide las claves del validador en varios sistemas, en lugar de tener operadores individuales que ejecuten múltiples validadores. Esto hace que a los operadores deshonestos les resulte más difícil coordinar los ataques a Ethereum. En conjunto, la idea es obtener beneficios de seguridad ejecutando validadores como _comunidades_ en lugar de como individuos. - -Lea acerca de la tecnología de validación distribuida - -La implementación de la **separación proponente-constructor (PBS)** mejorará drásticamente la defensa integrada de Ethereum contra la censura. PBS permite a un validador crear un bloque y a otro transmitirlo a través de la red Ethereum. Esto asegura que las ganancias de los algoritmos de maximización de ganancias profesionales de construcción de bloques se compartan de manera más justa en toda la red, **evitando que la participación se concentre** con los participantes institucionales de mejor rendimiento a lo largo del tiempo. El proponente de bloques puede seleccionar el bloque más rentable que le ofrece un mercado de constructores de bloques. Para censurar, un proponente de bloques a menudo tendría que elegir un bloque menos rentable, que sería **económicamente irracional y también obvio para el resto de los validadores** en la red. - -Hay posibles complementos para PBS, como transacciones cifradas y listas de inclusión, que podrían mejorar aún más la resistencia a la censura de Ethereum. Esto hace que el constructor de bloques y el proponente no vean las transacciones reales incluidas en sus bloques. - -Más información acerca de la separación entre proponentes y constructores. - -## Proteger a los validadores {#protecting-validators} - -Es posible que un atacante sofisticado pueda identificar a los próximos validadores y enviarles correo basura para evitar que propongan bloques; esto se conoce como un ataque de **denegación de servicio (DoS)**. La implementación de [**elección de líder secreto (SLE)**](/roadmap/secret-leader-election) protegerá contra este tipo de ataque al evitar que los proponentes de bloques sean conocidos de antemano. Esto funciona mezclando continuamente un conjunto de compromisos criptográficos que representan a los proponentes de bloques candidatos y utilizando su orden para determinar qué validador se selecciona, de tal manera que solo los propios validadores conozcan su pedido por adelantado. - -Más información acerca de la elección del líder secreto. - -## Progreso actual {#current-progress} - -Las actualizaciones de seguridad en la hoja de ruta se encuentran en etapas avanzadas de investigación, aunque no se espera que se implementen aún próximamente. Los siguientes pasos para view-merge, PBS, SSF y SLE consisten en finalizar una especificación y comenzar a construir prototipos. diff --git a/src/content/translations/es/roadmap/user-experience/index.md b/src/content/translations/es/roadmap/user-experience/index.md deleted file mode 100644 index e816bfb627f..00000000000 --- a/src/content/translations/es/roadmap/user-experience/index.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: Mejorar la experiencia de usuario -description: "Todavía es demasiado complejo el uso de Ethereum para la mayoría de las personas. Para fomentar la adopción masiva, Ethereum debe reducir drásticamente sus barreras de entrada: los usuarios deben obtener los beneficios del acceso descentralizado, sin permiso y resistente a la censura a Ethereum, pero debe ser tan sencillo como usar una aplicación Web2 tradicional." -lang: es -image: ../../../../../assets/roadmap/roadmap-ux.png -alt: "Hoja de ruta de Ethereum" -template: roadmap ---- - -El uso de Ethereum debe simplificarse; desde la gestión de claves y carteras hasta el inicio de transacciones. Para facilitar la adopción masiva, Ethereum debe aumentar drásticamente la facilidad de uso, permitiendo a los usuarios experimentar un acceso sin permiso y resistente a la censura a Ethereum con la experiencia sin fricciones de usar aplicaciones Web2. - -## Más allá de las fases semilla {#no-more-seed-phrases} - -Las cuentas de Ethereum están protegidas por un par de claves que se utilizan para identificar las cuentas (clave pública) y firmar mensajes (clave privada). Una clave privada es una especie de contraseña maestra: permite el acceso completo a una cuenta de Ethereum. Esta es una forma diferente de operar para las personas más familiarizadas con los bancos y las aplicaciones Web2 que administran cuentas en nombre de un usuario. Para que Ethereum alcance la adopción masiva sin depender de terceros centralizados, debe haber una forma directa y sin fricciones de que un usuario tome la custodia de sus activos y mantenga el control de sus datos sin tener que entender la criptografía de claves público-privadas y la gestión de claves. - -La solución a esto es el uso de carteras de contratos inteligentes para interactuar con Ethereum. Las carteras de contratos inteligentes crean formas de proteger las cuentas en caso de pérdida o robo de las claves, suponen oportunidades para una mejor detección y defensa del fraude, y permiten que las carteras obtengan nuevas funciones. Aunque las carteras de contratos inteligentes existen hoy en día, son difíciles de construir porque el protocolo Ethereum necesita soportarlas mejor. Este soporte adicional se conoce como abstracción de cuentas. - -Más información sobre la abstracción de cuentas - -## Nodos para todos - -Los usuarios que ejecutan nodos no tienen que confiar en terceros para proporcionarles datos, y pueden interactuar de forma rápida, privada y sin permiso con la cadena de bloques de Ethereum. Sin embargo, ejecutar un nodo en este momento requiere conocimientos técnicos y destinar un espacio en disco considerable, lo que significa que muchas personas deben confiar en intermediarios en su lugar. - -Hay varias actualizaciones que simplificarán y reducirán la dependencia de recursos de la ejecución de los nodos. La forma en que se almacenan los datos se cambiará para utilizar una estructura más eficiente en el espacio conocida como **Verkle Tree**. Además, con [sin estado](/roadmap/statelessness) o [vencimiento de datos](/roadmap/statelessness/#data-expiry), los nodos de Ethereum no necesitarán almacenar una copia de todos los datos del estado de Ethereum, lo que reducirá drásticamente los requisitos de espacio en el disco duro. [Los nodos ligeros](/developers/docs/nodes-and-clients/light-clients/) ofrecerán muchos beneficios de ejecutar un nodo completo, pero se pueden ejecutar fácilmente en teléfonos móviles o dentro de simples aplicaciones de navegador. - -Más información acerca de los árboles Verkle - -Con estas actualizaciones, las barreras para ejecutar un nodo se reducen efectivamente a cero. Los usuarios se beneficiarán de un acceso seguro y sin permiso a Ethereum sin tener que sacrificar un considerable espacio en el disco o la CPU de su ordenador o teléfono móvil, ni tampoco tendrán que depender de terceros para acceder a los datos o a la red cuando utilicen aplicaciones. - -## Progreso actual {#current-progress} - -Las billeteras de contrato inteligente ya están disponibles, pero existen más actualizaciones necesarias para hacerlas todo lo descentralizadas y sin permisos como sea posible. EIP-4337 es una propuesta madura que no requiere ningún cambio en el protocolo de Ethereum. El principal contrato inteligente requerido para el EIP-4337 se desplegó en marzo de 2023. - -El sin estado total todavía está en la fase de investigación y es probable que su implementación aún esté a varios años vista. Hay varios hitos en el camino hacia el sin estado total, incluida la caducidad de los datos, que pueden implementarse antes. Antes deben completarse otros elementos de la hoja de ruta, como los [árboles de Verkle](/roadmap/verkle-trees/) y [la separación proponente-constructor](/roadmap/pbs/). - -Las redes de prueba del árbol de Verkle ya están en funcionamiento, y la siguiente fase consiste en ejecutar clientes habilitados para el árbol de Verkle en redes de prueba privadas y luego públicas. Puede ayudar a acelerar el progreso implementando contratos en las redes de prueba o ejecutando clientes de la red de prueba. diff --git a/src/content/translations/es/smart-contracts/index.md b/src/content/translations/es/smart-contracts/index.md deleted file mode 100644 index 6e47b362295..00000000000 --- a/src/content/translations/es/smart-contracts/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Contratos inteligentes -description: Una introducción sin tecnicismos a los contratos inteligentes -lang: es ---- - -# Introducción a los contratos inteligentes {#introduction-to-smart-contracts} - -Los contratos inteligentes son los bloques de construcción fundamentales de la capa de aplicación de Ethereum. Son programas informáticos almacenados en la cadena de bloques que siguen la lógica «si ocurre esto, entonces se produce aquello» y garantizan ejecutarse siguiendo las reglas definidas por su código, que no se puede cambiar una vez creado. - -Nick Szabo acuñó el término «contrato inteligente». En 1994, escribió [una introducción al concepto](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html), y en 1996 escribió [una exploración de lo que podrían hacer los contratos inteligentes](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). - -Szaba visualizó una plataforma intermediaria digital donde los procesos automáticos y criptográficamente seguros permitieran que transacciones y funciones de negocios se llevaran a cabo sin intermediarios de confianza. Los contratos inteligentes en Ethereum ponen esta visión en práctica. - -### Confianza en los contratos convencionales {#trust-and-contracts} - -Uno de los mayores problemas con un contrato convencional es la necesidad de tener individuos honestos que cumplan con lo acordado en el contrato. - -He aquí un ejemplo: - -Alicia y Bob están haciendo una carrera en bicicleta. Digamos que Alicia le apuesta a Bob 10 dólares de que ella le gane en la carrera. Bob está seguro de que él ganará, por eso acepta la apuesta. Al final, Alicia termina la carrera muy por delante de Bob y es la clara ganadora. Pero Bob se niega a pagar la apuesta, alegando que Alicia debe haber hecho trampa. - -Este sencillo ejemplo ilustra el problema de cualquier acuerdo no inteligente. Aunque se cumplan las condiciones del acuerdo (es decir, usted sea el ganador de la carrera), aún debe confiar en que la otra persona cumpla el acuerdo (es decir, que pague la apuesta). - -### Una máquina expendedora digital {#vending-machine} - -Una metáfora sencilla para un contrato inteligente es la de una máquina expendedora que funciona de forma similar a un contrato inteligente: aportes específicos garantizan resultados predeterminados. - -- Seleccione un producto -- La máquina expendedora muestra el precio. -- Usted paga el precio. -- La máquina expendedora comprueba que usted ha pagado la cantidad correcta. -- La máquina expendedora le da su artículo. - -La máquina expendedora solo dispensará el producto deseado después de que se hayan cumplido todos los requisitos. Si no selecciona un producto o inserta suficiente dinero, la máquina expendedora no le entregará su producto. - -### Ejecución automática {#automation} - -El principal beneficio de un contrato inteligente es que ejecuta determinísticamente un código sin ambigüedades cuando se cumplen ciertas condiciones. No hay necesidad de esperar a que un humano interprete o negocie el resultado. Esto elimina la necesidad de intermediarios de confianza. - -Por ejemplo, usted podría escribir un contrato inteligente que mantenga fondos en fideicomiso para un menor, permitiéndole retirar los fondos después de una fecha específica. Si se intenta retirar fondos antes de esa fecha, el contrato inteligente no se ejecutaría. O podría escribir un contrato que automáticamente le brinde una versión digital de un título de un coche cuando le pague al concesionario. - -### Resultados predecibles {#predictability} - -Los contratos tradicionales son ambiguos, porque dependen de que los humanos los interpreten y los implementen. Por ejemplo, dos jueces pueden interpretar un contrato de forma distinta, lo que puede dar paso a decisiones inconsistentes y resultados desiguales. Los contratos inteligentes eliminan esta posibilidad. Los contratos inteligentes, por el contrario, se ejecutan con precisión basándose en las condiciones estipuladas por escrito dentro del código del contrato. Esta precisión significa que dadas las mismas circunstancias, el contrato inteligente producirá el mismo resultado. - -### Registro público {#public-record} - -Los contratos inteligentes también son útiles para auditorías y seguimiento. Dado que los contratos inteligentes de Ethereum están en una cadena de bloques pública, cualquier persona puede realizar un seguimiento instantáneo de la transferencia de activos y de otros datos relacionados. Por ejemplo, puede consultar para ver que alguien envió dinero a su dirección. - -### Protección de la privacidad {#privacy-protection} - -Los contratos inteligentes también protegen su privacidad. Puesto que Ethereum es una red pseudónima (sus transacciones están vinculadas públicamente a una dirección criptográfica única, no a su identidad), puede proteger su privacidad frente a observadores. - -### Términos visibles {#visible-terms} - -Finalmente, así como con los contratos tradicionales, usted puede verificar el contenido de un contrato inteligente antes de firmarlo (o alternativamente, interactuar con él). La transparencia de un contato inteligente garantiza que cualquiera pueda examinarlo. - -## Casos de uso de contratos inteligentes {#use-cases} - -Los contratos inteligentes básicamente pueden hacer lo mismo que otros programas informáticos. - -Se pueden realizar cálculos, crear una divisa, almacenar datos, acuñar NFT, enviar comunicaciones e incluso generar gráficos. He aquí algunos ejemplos populares sacados del mundo real: - -- [Monedas estables](/stablecoins/) -- [Crear y distribuir activos digitales únicos](/nft/) -- [Un cambio de divisas automático y abierto](/get-eth/#dex) -- [Juegos descentralizados](/dapps/?category=gaming) -- [Una póliza de seguro que paga automáticamente](https://etherisc.com/) -- [Un estándar que permite a las personas crear divisas interoperables y personalizadas](/developers/docs/standards/tokens/) - -## ¿Es más bien de los que aprende viendo? {#visual-learner} - -Mire en este vídeo cómo Finematics explica los contratos inteligentes: - - - -## Más información {#further-reading} - -- [¿Cómo cambiarán el mundo los contratos inteligentes?](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [Contratos inteligentes: la tecnología de la cadena de bloques que remplazará a los abogados](https://blockgeeks.com/guides/smart-contracts/) -- [Contratos inteligentes para desarrolladores](/developers/docs/smart-contracts/) -- [Aprenda a redactar contratos inteligentes](/developers/learning-tools/) -- [Dominar Ethereum: ¿Qué es un contrato inteligente?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/src/content/translations/es/social-networks/index.md b/src/content/translations/es/social-networks/index.md deleted file mode 100644 index 0b86c341630..00000000000 --- a/src/content/translations/es/social-networks/index.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: Redes sociales descentralizadas -description: Una visión general de las redes sociales descentralizadas en Ethereum -lang: es -template: use-cases -emoji: ":mega:" -sidebarDepth: 2 -image: ../../../../assets/ethereum-learn.png -summaryPoint1: Plataformas basadas en la cadena de bloques para interacción social, creación y distribución de contenidos. -summaryPoint2: Las redes sociales descentralizadas protegen la privacidad del usuario y mejoran la seguridad de los datos. -summaryPoint3: Tókenes y NFT crean nuevas formas de monetizar contenido. ---- - -Las redes sociales juegan un enorme papel en nuestras comunicaciones e interacciones diarias. Sin embargo el control centralizado de estas plataformas ha generado importantes problemas: brechas en la custodia de datos, servidores fuera de servicio, desviaciones de las plataformas, censura y violación de la privacidad son algunos de los inconvenientes que suelen producir las redes sociales. Para combatir estos problemas, los desarrolladores están construyendo redes sociales en Ethereum. Las redes sociales descentralizadas pueden solucionar muchos de los problemas de las plataformas de redes sociales tradicionales y mejorar las experiencia de los usuarios de forma global. - -## ¿Qué son las redes sociales descentralizadas? {#what-are-decentralized-social-networks} - -Las redes sociales descentralizadas son plataformas basadas en la cadena de bloques que permiten a los usuarios intercambiar información, así como publicar y distribuir contenido al público. Dado que estas aplicaciones se ejecutan en la cadena de bloques, son capaces de ser descentralizadas y resistentes a la censura y al control indebido. - -Muchas redes sociales descentralizadas existen como alternativa a los servicios de redes sociales establecidas como Facebook, LinkedIn, Twitter, y Medium. No obstante, las redes sociales impulsadas por la cadena de bloques tienen una serie de características que les confieren ventajas sobre las plataformas sociales tradicionales. - -### ¿Cómo funcionan las redes sociales descentralizadas? {#decentralized-social-networks-overview} - -Las redes sociales descentralizadas son una clase [aplicaciones descentralizadas (DApps)](/dapps/) - aplicaiones impulsadas por [contratos inteligentes](/developers/docs/smart-contracts/) desplegados en la cadena de bloques. El código de contrato sirve como el backend para estas aplicaciones y define su lógica de negocio. - -Las plataformas tradicionales de redes sociales se basan en bases de datos para almacenar información del usuario, el código del programa y otras formas de datos. Aunque esto crea puntos únicos de fallo y supone un riesgo significativo. Por ejemplo, los servidores de Facebook, de forma notoria, [se desconectaron durante horas](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) el año pasado, dejando a los usuarios fuera de la plataforma. - -Las redes sociales descentralizadas existen en redes entre pares que comprenden miles de nodos alrededor del mundo. Incluso si algunos nodos fallan, la red se ejecutará sin interrupción, haciendo que las aplicaciones sean resistentes a fallos o cortes y apagones. - -Utilizando sistemas de almacenamiento descentralizados como [el sistema de archivos interplanetario IPFS](https://ipfs.io/), las redes sociales construidas sobre Ethereum pueden proteger la información del usuario de la explotación y el uso malicioso. Nadie venderá su información personal a los anunciantes, ni los hackers podrán robar sus datos confidenciales. - -Muchas plataformas de redes sociales basadas en la cadena de bloques tienen tókenes nativos que potencian la monetización a falta de ingresos publicitarios. Los usuarios pueden comprar esos tokens para acceder a ciertas características, completar compras en la aplicación o dar propinas a sus creadores de contenido favoritos. - -## Beneficios de las redes sociales descentralizadas {#benefits} - -1. Las redes sociales descentralizadas son resistentes a la censura y están abiertas a todos. Esto significa que los usuarios no pueden ser bloqueados, eliminados de la plataforma ni sufrir restricciones arbitrariamente. - -2. Las redes sociales descentralizadas se construyen sobre ideales de código abierto y hacen que el código fuente de las aplicaciones esté disponible para su inspección pública. Al eliminar la implementación de algoritmos opacos, comunes en las redes sociales tradicionales, las redes sociales basadas en la cadena de bloques alinean los intereses de los usuarios y creadores en la plataforma. - -3. Las redes sociales descentralizadas eliminan al intermediario. Los creadores son propietarios exclusivos de sus contenidos, y se comprometen directamente con sus seguidores, aficionados, compradores y otras partes, con la única mediación de un contrato inteligente entre ellos. - -4. Al tratarse de DApps que corren en la red Ethereum, que es una red global de nodos entre pares, las redes sociales descentralizadas son menos propensas a sufrir tiempos de inactividad por fallos o interrupciones de funcionamiento o cortes en servidores. - -5. Las plataformas sociales descentralizadas ofrecen un marco de monetización mejorado para los creadores de contenido a través de tókenes no fungibles (NFT), pagos con criptomonedas en la propia aplicación, entre otras ventajas. - -6. Las redes sociales descentralizadas proporcionan a los usuarios un alto nivel de privacidad y anonimato. Por ejemplo, un individuo puede iniciar sesión en una red social basada en la red Ethereum usando un perfil de ENS o una cartera, sin tener que compartir información personal identificable (PIII), como nombres, direcciones de correo electrónico, etc. - -7. Las redes sociales descentralizadas se basan en el almacenamiento descentralizado, no en bases de datos centralizadas, que son considerablemente mejores para salvaguardar los datos del usuario. - -## Redes sociales descentralizadas en Ethereum {#ethereum-social-networks} - -La red Ethereum se ha convertido en la herramienta preferida para los desarrolladores que crean redes sociales descentralizadas debido a la popularidad de sus tókenes (ERC-20/ERC-721) y su enorme base de usuarios. He aquí algunos ejemplos de redes sociales basadas en Ethereum: - -### Peepeth {#peepeth} - -[Peepeth](https://peepeth.com/) es una plataforma de microblogging similar a Twitter. Se ejecuta en la cadena de bloques de Ethereum y utiliza IPFS para almacenar datos de usuario. - -Los usuarios pueden enviar mensajes cortos llamados «Peeps», que no pueden ser borrados o modificados. Se puede obtener propinas en ether (ETH), o entregárselas a cualquiera de la plataforma, sin salir de la aplicación. - -### Mirror {#mirror} - -[Mirror](https://mirror.xyz/) es una plataforma de escritura con soporte web 3 con el propósito de ser descentralizada y que el usuario sea el propietario de su contenido. Los usuarios pueden leer y escribir gratis en Mirror simplemente conectando sus carteras. Los usuarios también pueden recopilar escritos y suscribirse a sus escritores favoritos. - -Las entradas publicadas en Mirror se almacenan permanentemente en Arwaeve, una plataforma de almacenamiento descentralizada, y puede ser acuñado como [tókenes no fungibles (NFT)](/nft/) coleccionables, conocidos como NFT de escritura. Los NFT de escritura son de creación completamente gratuita para los escritores, y la colección de los mismos es en una capa L2 de Ethereum, que permite que las transacciones sean baratas, rápidas y respetuosas con el medio ambiente. - -### MINDS {#minds} - -[MINDS](https://www.minds.com/) es una de las redes sociales descentralizadas más utilizadas. Funciona como Facebook y ya ha acumulado millones de usuarios. - -Los usuarios utilizan $MIND, token ERC-20 nativo de la plataforma, para pagar los artículos. Los usuarios también pueden ganar $MIND tókenes publicando contenido popular, contribuyendo al ecosistema y recomendado la plataforma a otros. - -## Redes sociales Web2 en Ethereum {#web2-social-networks-and-ethereum} - -Las plataformas sociales nativas [Web3](/web3/) no son las únicas que intentan incorporar la tecnología blockchain a las redes sociales. Muchas plataformas centralizadas también están planeando integrar Ethereum en su infraestructura: - -### Reddit {#reddit} - -Reddit ha promocionado [puntos promocionados en la comunidad](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users), que son [tókenes ERC-20](/developers/docs/standards/tokens/erc-20/) que los usuarios pueden ganar publicando contenido de calidad y contribuyendo a las comunidades en línea (subreddits). Puede canjear estos tókenes dentro de un subreddit para [obtener privilegios y beneficios exclusivos](https://www.reddit.com/community-points/). Para este proyecto, Reddit está trabajando con Arbitrum, un rollup de [capa 2](/layer-2/) diseñado para dar escalabilidad a las transacciones de Ethereum. - -El programa ya está activo, con el subreddit r/Criptomoneda [ejecutando su versión de puntos de comunidad llamada «Moons»](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Según la descripción oficial, los Moons «recompensan carteles, comentaristas y moderadores por sus contribuciones al subreddit». Debido a que estos tókenes están en la cadena de bloques (los usuarios los reciben en carteras), estos son independientes de Reddit y no se pueden quitar. - -Después de concluir una fase beta en la red de prueba de Rinkeby, los puntos de la comunidad de Reddit ahora están en [Arbitrum Nova](https://nova.arbitrum.io/), una cadena de bloques que combina las propiedades de una [cadena lateral](/developers/docs/scaling/sidechains/) y una [acumulación optimista](/developers/docs/scaling/optimistic-rollups/). Además de usar puntos comunitarios para desbloquear funciones especiales, los usuarios también pueden cambiarlos por moneda fiduciaria en los comercios o intercambios. Además, la cantidad de puntos de la comunidad que posee un usuario determina su influencia en el proceso de toma de decisiones dentro de la comunidad. - -### Twitter {#twitter} - -En enero de 2021, Twitter Blue [lanzó soporte para NFT](https://mashable.com/article/twitter-blue-nft-profile-picture), permitiendo a los usuarios conectar sus carteras y mostrar NFT como imágenes de perfil. En el momento de publicar este artículo, la empresa de redes sociales también [ha anunciado planes](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) para crear una red social descentralizada en el futuro. - -### Instagram {#instagram} - -En mayo de 2022, [Instagram anunció la compatibilidad con NFT](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) en Ethereum y Polygon. Los usuarios pueden publicar NFT directamente en Instagram conectando su cartera Ethereum. - -## Redes sociales descentralizadas en uso {#use-decentralized-social-networks} - -- **[Status.im](https://status.im/)** - _Status es una aplicación de mensajería segura que utiliza código abierto, protocolo entre pares y cifrado de extremo a extremo para proteger sus mensajes de terceros._ -- **[Mirror.xyz](https://mirror.xyz/)** - _Mirror es plataforma de publicación descentralizada con la propiedad asignada a los usuarios. Creada sobre Ethereum, los usuarios puedan financiar ideas, monetizar contenido y construir comunidades de alto valor._ -- **[Lens Protocol](https://lens.xyz/)** - _Lens Protocol es una red social de gráficos, compuesto y descentralizado, que ayuda a los creadores a tomar posesión de su contenido dondequiera que vayan en el jardín digital del Internet descentralizado._ -- **[Farcaster](https://farcaster.xyz/)**: _Farcaster es una red social suficientemente descentralizada. Es un protocolo abierto que puede soportar muchos clientes, al igual que el correo electrónico._ - -## Para profundizar sobre el tema {#further-reading} - -### Artículos {#articles} - -- [Descentralizar las redes sociales: una guía para el apilamiento social de web3](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _Coinbase Ventures_ -- [Las redes sociales son la gran oportunidad futura de descentralización](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Goertzel_ -- [Web3 contiene la promesa de redes sociales descentralizadas y alimentadas por la comunidad](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ -- [Un vistazo al panorama de las redes sociales en la cadena de bloques](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ -- [Cómo la cadena de bloques puede resolver la privacidad de las redes sociales](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Prableen Bajpai_ -- [Las redes sociales están llegando a la cadena de bloques](https://businesstechguides.co/what-are-decentralized-social-networks) — _Emmanuel Awosika_ -- [Descentralización suficiente para las redes sociales](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks): _Varun Srinivasan_ - -### Vídeos {#videos} - -- [Explicación sobre las redes sociales descentralizadas](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ -- [La cadena de bloques DeSo quiere descentralizar las redes sociales](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ -- [El futuro de las redes sociales descentralizadas con Balaji, Vitalik Buterin, Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ - -### Comunidades {#communities} - -- [Servidor Discord de Status](https://discord.com/invite/3Exux7Y) -- [Servidor Discord de Mirror](https://discord.com/invite/txuCHcE8wV) -- [r/Cryptocurrency subreddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/es/staking/pools/index.md b/src/content/translations/es/staking/pools/index.md deleted file mode 100644 index 38f631d883f..00000000000 --- a/src/content/translations/es/staking/pools/index.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: Participación agrupada -description: Una visión general de cómo empezar con la participación agrupada de ETH -lang: es -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-pool.png -alt: Leslie, el rinoceronte, nadando en la piscina. -sidebarDepth: 2 -summaryPoints: - - Participe y gane recompensas con cualquier cantidad de ETH uniendo fuerzas con otros - - Ahórrese la parte difícil y confíe el funcionamiento del validador a un tercero - - Almacene tókenes de participación en su propia cartera ---- - -## ¿Qué son las participaciones agrupadas? {#what-are-staking-pools} - -Las participaciones agrupadas son un enfoque colaborativo que permite a muchas personas con pequeñas cantidades de ETH obtener los 32 ETH necesarios para activar un conjunto de claves de validación. El protocolo no permite por defecto la funcionalidad de agrupación, por lo que se han creado soluciones por separado para satisfacer esta necesidad. - -Algunas agrupaciones operan utilizando contratos inteligentes, estos permiten depositar fondos en un contrato, que gestiona y rastrea su participación de forma fiable, y se emite un token que representa este valor. Puede que otras agrupaciones no comprendan contratos inteligentes y en su lugar se medien fuera de la red. - -## ¿Por qué debería participar en una agrupación? {#why-stake-with-a-pool} - -Además de las ventajas que hemos descrito en nuestra [introducción a las participaciones](/staking/), participar en una agrupación supone una serie de ventajas distintas. - - - - - - - - - -## Qué hay que tener en cuenta {#what-to-consider} - -El protocolo de ETH no admite de forma original las participaciones agrupadas o delegadas, pero dada la demanda de los usuarios de apostar menos de 32 ETH, se ha creado un número creciente de soluciones para satisfacer esta demanda. - -Cada reserva y las herramientas o contratos inteligentes que utilizan los han construido diferentes equipos, por eso cada uno conlleva sus propios riesgos y beneficios. Las reservas permiten a los usuarios cambiar sus ETH por tókenes que representan los ETH apostados. El token es útil, pues permite a los usuarios intercambiar cualquier cantidad de ETH a una cantidad equivalente a un token que genera rendimiento a partir de las recompensas de participación aplicadas al ETH apostado subyacente (y viceversa) en intercambios descentralizados, aunque el ETH actual permanezca apostado en la capa de consenso. Esto implica que cambiar de ida y vuelta un ETH apostado que genera rendimiento y un «ETH bruto» es rápido, fácil y no solo disponible en múltiplos de 32 ETH. - -Sin embargo, estos tókenes-ETH apostados tienden a generar conductas similares a un cártel en el que una gran cantidad de ETH apostados terminan en manos de unas pocas organizaciones centralizadas, en lugar de distribuirse entre muchos individuos independientes. Esto crea condiciones para la censura o la extracción de valor. La regla de oro para participar siempre debería ser que las personas ejecuten validadores en su propio hardware siempre que sea posible. - -[Más información sobre los riesgos de la participación de tókenes](https://notes.ethereum.org/@djrtwo/risks-of-lsd). - -Los indicadores de atributos se utilizan a continuación para señalar los puntos fuertes o débiles que puede tener una agrupación de participaciones de la lista. Utilice esta sección como referencia para saber cómo definimos estos atributos mientras elige un grupo al que unirse. - - - -## Explore las participaciones agrupadas {#explore-staking-pools} - -Existe una gran variedad de opciones disponibles para ayudarle con su configuración. Utilice los indicadores anteriores para guiarse a través de las herramientas siguientes. - - - - - -Es importante elegir un servicio que se tome en serio la [diversidad de clientes](/developers/docs/nodes-and-clients/client-diversity/), ya que mejora la seguridad de la red y limita el riesgo. Los servicios que tienen constatación de limitar el uso de cliente mayoritario están señalados con "diversidad de cliente de ejecución" y "diversidad de cliente de consenso". - -¿Tiene alguna sugerencia para una herramienta de participación no cubierta? Eche un vistazo a nuestra [política de listado de productos](/contributing/adding-staking-products/) para ver si le parece una opción aceptable y enviarla para su revisión. - -## Preguntas más frecuentes {#faq} - - -Normalmente los tókenes de participación ERC-20 se emiten a los participantes y representan el valor de sus ETH apostados más las recompensas. Tenga en cuenta que las diferentes agrupaciones repartirán las recompensas de las participaciones entre sus usuarios a través de métodos ligeramente diferentes, pero siempre se reparten. - - - -¡En cualquier momento! La actualización de red Shanghai/Capella se produjo en abril de 2023 e introdujo las retiradas de participaciones. Después de esta actualización, las cuentas de validador que respaldan las reservas de participación tendrán la posibilidad de salir y retirar ETH a su dirección de retirada designada. Esto permitirá la capacidad de canjear su parte de participación por el ETH subyacente. Compruebe con su proveedor la compatibilidad con esta funcionalidad. - -Alternativamente, los grupos que usan tókenes de participación ERC-20, permiten a los usuarios operar dicho token en el libre mercado, pudiendo vender la posición en participación, «retirándola» de forma eficaz sin tener que eliminar ETH del contrato de participación. - -Más sobre retiradas de participaciones - - - -Hay muchas semejanzas entre estas opciones de participación agrupada y los intercambios centralizados, como la posibilidad de apostar pequeñas cantidades de ETH y tenerlas juntas para activar validadores. - -A diferencia de los intercambios centralizados, muchas otras opciones de participación agrupadas utilizan contratos inteligentes y/o tókenes de participación, que son usualmente tókenes ERC-20 que pueden permanecer en la cartera, y comprarse o venderse como cualquier otro token. Esto ofrece una capa de soberanía y seguridad al darle el control sobre sus tókenes, pero no le da el control directo sobre el cliente validador que certifica en su nombre en segundo plano. - -Algunas opciones de agrupamiento están más descentralizadas que otras cuando se trata de los nodos que las respaldan. Para promover la salud y la descentralización de la red, siempre se anima a los participantes a seleccionar un servicio de agrupación que permita un conjunto descentralizado de operadores de nodos sin permisos. - - -## Para profundizar sobre el tema {#further-reading} - -- [Participaciones con RocketPool: visión general de las participaciones](https://docs.rocketpool.net/guides/staking/overview.html) - _Documentos de RocketPool_ -- [Participaciones Ethereum con Lido](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Documentos de ayuda de Lido_ diff --git a/src/content/translations/es/staking/saas/index.md b/src/content/translations/es/staking/saas/index.md deleted file mode 100644 index bc2dd842bf0..00000000000 --- a/src/content/translations/es/staking/saas/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Participación como servicio -description: Una visión general de cómo empezar con la participación agrupada de ETH -lang: es -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-saas.png -alt: Leslie, el rinoceronte, flotando en las nubes. -sidebarDepth: 2 -summaryPoints: - - Nodos de terceros gestionan la operación de su cliente validador - - Excelente opción para cualquier persona con 32 ETH que no se sienta cómoda tratando con la complejidad técnica de ejecutar un nodo - - Desconfíe y mantenga la custodia de sus claves de retirada ---- - -## ¿Qué es participación como servicio (SaaS)? {#what-is-staking-as-a-service} - -La participación como servicio (SaaS), representa una categoría de servicios de participación donde deposita 32 ETH para la validación, pero se delegan las operaciones del nodo a un tercero. A cambio se le suele guiar por la configuración inicial, incluida la generación de claves y el depósito, para luego cargar las claves de firma al operador. Esto permite que el servicio maneje su validador en su nombre, generalmente, a cambio de una cuota mensual. - -## ¿Por qué debería participar con un servicio? {#why-stake-with-a-service} - -El protocolo de Ethereum no respalda originariamente la delegación de participaciones y, por tanto, estos servicios se han creado con el fin de cubrir esta demanda. Si tiene 32 ETH para participar, pero no domina con confianza el hardware, los servicios de participación (SaaS) le permiten delegar la parte técnica mientras gana recompensas de bloques nativos. - - - - - - - - - -## Qué hay que tener en cuenta {#what-to-consider} - -Hay un número creciente de proveedores de SAAS para ayudarle a apostar sus ETH, pero todos tienen sus propias ventajas y riesgos. Todas las opciones SaaS requieren suposiciones adicionales de confianza en comparación con la participación desde casa. Las opciones SaaS pueden suponer el uso de un codigo adicional para los clientes de Ethereum que no es abierto ni auditable. SaaS tambien causa un efecto perjudicial en la descentralizacion de la red. Dependiendo de la configuracion, se puede controlar o no la validacion: el operador puede actuar deshonestamente usando sus ETH. - -Los indicadores de atributos se utilizan para señalar las fortalezas o debilidades notables que puede tener un proveedor aprobado de SaaS. Utilice esta sección como referencia sobre cómo definimos estos atributos, mientras está eligiendo el servicio que le ayudará con su experiencia de participación. - - - -## Explorar proveedores de servicios de participación {#saas-providers} - -A continuación encontrará algunos proveedores SaaS disponibles. Utilice los indicadores de arriba para guiarse a través de estos servicios - - - -#### Proveedores SaaS - - - -Por favor, tenga en cuenta la importancia de elegir [clientes diversos](/developers/docs/nodes-and-clients/client-diversity/) ya que mejora la seguridad de la red y limita su riesgo. Los servicios que tienen constatación de limitar el uso de cliente mayoritario están señalados con "diversidad de cliente de ejecución" y "diversidad de cliente de consenso". - -#### Generadores de claves - - - -¿Tiene alguna sugerencia para un proveedor de participación como servicio que no hayamos mencionado? Eche un vistazo a nuestra [política de listado de productos](/contributing/adding-staking-products/) para ver si le parece una opción aceptable y enviarla para su revisión. - -## Preguntas más frecuentes {#faq} - - -Los acuerdos difieren de proveedor a proveedor, pero comúnmente se le guiará a través de la configuración de las claves de firma que necesite (una por 32 ETH), y subirlos a su proveedor para permitirles validar en su nombre. Las llaves de firma por sí solas no dan ninguna capacidad para retirar, transferir o gastar sus fondos. Sin embargo, sí proporcionan la capacidad de emitir votos a favor del consenso. Si no se hace correctamente, puede dar lugar a sanciones fuera de línea o a un recorte. - - - -Sí. Cada cuenta se compone de ambas claves BLS para firmar y claves BLS para retirar. Para que un validador certifique el estado de la cadena, participe en comités de sincronización y proponga bloques, las claves de firma deben ser fácilmente accesibles por el cliente validador. Estos deben estar conectados a Internet de alguna forma, y por lo tanto se consideran inherentemente como claves «calientes». Este es un requisito para que su validador pueda certificar y, por lo tanto, las claves utilizadas para transferir o retirar fondos están separadas por razones de seguridad. - -Las claves BLS de retirada se utilizan para firmar un mensaje de una sola vez que declara a qué cuenta de la capa de ejecución deberían ir las recompensas de participación y los fondos sacados. Una vez que este mensaje se difunda, las claves BLS de retirada ya no son necesarias. En cambio, el control sobre los fondos retirados se delega permanentemente a la dirección que usted proporcionó. Esto le permite establecer una dirección de retiro segura a través de su propio almacenamiento en frío, minimizando el riesgo para sus fondos de validador, incluso si alguien controla las claves de firmado de validador. - -Para habilitar la retirada, es necesario actualizar las credenciales\*. Este proceso implica generar las claves de retirada usando su frase mnemotécnica de recuperación. - -Asegúrese de hacer una copia de esta frase de recuperación de forma segura, o no podrá generar sus claves de retirada cuando llegue el momento. - -\*Los participantes que proporcionaran una dirección de retirada con depósito inicial no necesitan establecerla. Consulte con su proveedor de SaaS para obtener ayuda acerca de cómo preparar su validador. - - - -En abril de 2023, se habilitó la retirada de participaciones en la actualización Shanghai/Capella. Los participantes deben proporcionar una dirección de retirada (si no se proporciona en el depósito inicial), y los pagos de recompensas se distribuirán automáticamente de forma periódica cada pocos días. - -Los validadores también pueden salir como validadores, lo que desbloqueará su saldo restante en ETH para retirarlo. Las cuentas que hayan proporcionado una dirección de retirada de ejecución y hayan completado el proceso de salida recibirán su saldo completo a la dirección de retirada proporcionada durante el próximo barrido del validador. - -Más sobre los retiros de Staking - - - -Al usar un proveedor SaaS, está confiando la operación de su nodo a otra persona. Esto conlleva el riesgo de un funcionamiento deficiente del nodo, que no está bajo su control. En el caso de que recorte la actividad de su validador, el saldo de su validador será penalizado y eliminado forzosamente del grupo de validadores. - -Al finalizar el proceso de recorte y salida, estos fondos se transferirán a la dirección de retirada asignada al validador. Para habilitar la retirada, es preciso proporcionar una dirección. Puede haberse proporcionado en un depósito inicial. De lo contrario, se tendrán que usar las claves de retirada del validador para firmar un mensaje declarando una dirección de retirada. Si no se ha proporcionado ninguna dirección de retirada, los fondos permanecerán bloqueados hasta que se proporcione. - -Póngase en contacto con un proveedor individual de SaaS para obtener más detalles sobre cualquier garantía u opciones de seguridad, así como para obtener instrucciones de configuración de una dirección de retirada. Si prefiere tener control total de la configuración de su validador, infórmese sobre cómo apostar sus ETH en solitario. - - -## Para profundizar sobre el tema {#further-reading} - -- [Examen de los servicios de participación](https://www.attestant.io/posts/evaluating-staking-services/) - _Jim McDonald 2020_ diff --git a/src/content/translations/es/staking/solo/index.md b/src/content/translations/es/staking/solo/index.md deleted file mode 100644 index e3b0ba2edba..00000000000 --- a/src/content/translations/es/staking/solo/index.md +++ /dev/null @@ -1,203 +0,0 @@ ---- -title: Participación individual de su ETH -description: Una visión general de cómo empezar a postar su ETH individualmente -lang: es -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-solo.png -alt: Leslie, el rinoceronte, en su propio chip. -sidebarDepth: 2 -summaryPoints: - - Reciba el máximo de recompensas directamente del protocolo al mantener su validador conectado y funcionando correctamente - - Ejecute hardware doméstico y contribuya personalmente a la seguridad y a la descentralización de la red Ethereum. - - Desconfíe y no deje nunca de controlar las claves de sus fondos ---- - -## ¿Qué es staking individual? {#what-is-solo-staking} - -Participación individual es el acto de [ ejecutar un nodo Ethereum](/run-a-node/) conectado a Internet y depositar 32 ETH para activar un [validador](#faq), abriendo la posibilidad de participar directamente en el consenso de la red. - -**La participación en solitario aumenta la descentralización de la red Ethereum**, haciendo que Ethereum sea más resistente a la censura y robusto contra ataques. Puede que otros métodos de participación no ayuden a la red de la misma manera. La participación en solitario es la mejor opción de participación para asegurar Ethereum. - -Un nodo Ethereum consiste tanto en un cliente de capa de ejecución (EL), como en un cliente de capa de consenso (CL). Estos clientes son software que funcionan estrechamente entre sí, y adicionalmente con un par de claves de firma válidas, para verificar transacciones y bloques, certificar la cabeza correcta de la cadena, resumir verificaciones, y proponer bloques. - -Los participantes individuales conlleva la responsabilidad de operar el hardware necesario para ejecutar dichos clientes. Es muy recomendable utilizar una máquina específicamente dedicada a esto, que usted opere desde su hogar, algo que es extremadamente beneficioso para la salud de la red. - -El participante individual recibe las recompensas directamente desde el protocolo por mantener su validador funcionando correctamente y en línea. - -## ¿Por qué debería participar de forma individual? {#why-stake-solo} - -La participación en solitario conlleva más responsabilidad, pero proporciona el máximo control posible sobre los fondos y la configuración para realizarla. - - - - - - - -## Consideraciones antes de hacer una participación individual {#considerations-before-staking-solo} - -Por mucho que deseemos que la participación individual fuera accesible y libre de riesgos para todos, esta no es la realidad. Hay algunas consideraciones prácticas y serias que debemos tener en cuenta antes de elegir la participación individual de su ETH. - - - -Al operar su propio nodo debería invertir tiempo en aprender cómo utilizar el software que ha elegido. Esto implica leer la documentación pertinente y estar en sintonía con los canales de comunicación de los equipos de desarrollo relacionados. - -Cuanto más entienda sobre el software que está ejecutando y cómo funciona la prueba de participación, menos riesgo tendrá como participante, y le será más fácil solucionar cualquier incidente que pueda surgir en su función como operador de nodos. - - - -La configuración del nodo requiere un nivel de comodidad razonable al trabajar con ordenadores, aunque las nuevas herramientas lo facilitan con el tiempo. Entender la interfaz de la línea de comandos es útil, pero no estrictamente necesario. - -También requiere una configuración de hardware muy básica, y cierta comprensión de las especificaciones mínimas recomendadas. - - - -De la misma manera que las claves privadas protegen su dirección de Ethereum, necesitará generar claves específicamente para su validador. Debe entender cómo proteger cualquier frase semilla o clave secreta de forma efectiva.{' '} - -Seguridad y prevención de estafa Ethereum - - - -El hardware ocasionalmente falla, en las conexiones de red suceden desconexiones, y el software cliente ocasionalmente necesita actualizarse. El mantenimiento de nodos es inevitable y de vez en cuando requerirá tu atención. Conviene que esté al tanto de cualquier actualización de red prevista, o de otras actualizaciones críticas del software cliente. - - - -Sus recompensas son proporcionales al tiempo que su validador esté en línea y certifique correctamente. El tiempo de inactividad incurre en penalizaciones proporcionales a los validadores que estén desconectados al mismo tiempo, pero no ocasiona recortes. El ancho de banda también importa, ya que las recompensas disminuyen por las certificaciones que no se reciben a tiempo. Los requisitos variarán, pero se recomienda un mínimo de 10 Mb/s de descarga y carga. - - - -Distinta a las penalizaciones por inactividad por estar fuera de línea, el recorte es una penalización mucho más grave reservada para infracciones maliciosas. Al ejecutar un cliente minoritario con sus claves cargadas en una sola máquina cada vez, se reduce el riesgo de ser penalizado por recortes. Dicho esto, todos los participantes deben ser conscientes de los riesgos de los recortes. - - Más sobre recortes y el ciclo de vida del validador - - - - - -## Cómo funciona {#how-it-works} - - - -Mientras esté activo, obtendrá recompensas ETH que se depositarán periódicamente en su dirección de retirada. - -Si lo desea, puede salir como validador, lo que elimina el requisito de estar en línea y detiene cualquier recompensa adicional. Su saldo restante se retirará entonces a la dirección de retirada que usted designe durante la configuración. - -[Más sobre los retiros de Staking](/staking/withdrawals/) - -## Familiarícese con el Lanzador de participaciones {#get-started-on-the-staking-launchpad} - -El Lanzador de participaciones es una aplicación de código abierto que le ayudará a convertirse en un participante. Le guiará a través de la elección de sus clientes de software, a generar sus llaves y depositar su ETH en el contrato de depósito de participación. Se proporciona una lista de verificación para asegurarse de que ha cubierto todo para configurar su validador de forma segura. - - - -## Qué considerar respecto a las herramientas de configuración de nodos y clientes {#node-tool-considerations} - -Cada vez hay más herramientas y servicios para ayudarle a que usted haga una participación individual de su ETH, pero cada uno de ellos conlleva diferentes riesgos y beneficios. - -Los indicadores de atributos a continuación indican las fortalezas o debilidades que puede tener cada herramienta de participación. Utilice esta sección como referencia sobre cómo definimos estos atributos, mientras está eligiendo las herramientas que le ayudarán con su experiencia de participación. - - - -## Explora las herramientas de configuración de nodos y clientes {#node-and-client-tools} - -Hay una variedad de opciones disponibles para ayudarle con su configuración. Utilice los indicadores de arriba para guiarle a través de las herramientas que se muestran a continuación. - - - -#### Herramientas de nodo - - - -Por favor, tenga en cuenta la importancia de elegir un [cliente minoritario](/developers/docs/nodes-and-clients/client-diversity/) ya que mejora la seguridad de la red y limita su riesgo. Las herramientas que le permiten configurar un cliente minoritario se expresan como «multi-cliente». - -#### Generadores de claves - -Estas herramientas pueden utilizarse como alternativa a la [CLI de depósito de participación](https://github.com/ethereum/staking-deposit-cli/) para ayudar con la generación de claves. - - - -¿Tiene alguna sugerencia para una herramienta de participación no cubierta? Eche un vistazo a nuestra [política de listado de productos](/contributing/adding-staking-products/) para ver si le parece una opción aceptable y enviarla para su revisión. - -## Explorar guías de participación individual {#staking-guides} - - - -## Preguntas más frecuentes {#faq} - -Estas son algunas de las preguntas más comunes sobre la participación que vale la pena conocer. - - - -Un validador es una entidad virtual que vive en Ethereum y participa en el consenso del protocolo Ethereum. Los validadores están representados por un saldo, una clave pública y otras propiedades. Un cliente validador es el software que actúa en nombre del validador al mantener y utilizar su clave privada. Un solo cliente validador puede mantener muchos pares de claves y controlar muchos validadores. - - - - -Cada par de claves asociadas a un validador requieren exactamente 32 ETH para ser activadas. Más ETH depositado en un solo par de claves no incrementa el potencial de recompensas, ya que cada validador está limitado a un saldo efectivo de 32 ETH. Esto significa que la participación se realiza en incrementos de 32 ETH, cada uno con su propio conjunto de claves y saldo. - -No deposite más de 32 ETH para un solo validador. No aumentará sus recompensas. Si se ha establecido una dirección de retirada para el validador, cualquier exceso de fondos superior a 32 ETH se retirará automáticamente a esta dirección durante el próximo barrido del validador. - -Si la participación individual le parece demasiado exigente, plantéese el usar un proveedor de participación como servicio, o si está trabajando con menos de 32 ETH, plantéese los grupos de participación. - - - -El desconectarse cuando la red está finalizando correctamente NO producirá «recortes». Se le aplicarán ligeras penalizaciones por inactividad si su validador no está disponible para certificar una época determinada (a cada 6,4 minutos), que es muy diferente del «recorte». Estas penalizaciones son ligeramente inferiores a la recompensa que usted habría ganado si el validador hubiera estado disponible para certificar, y las pérdidas pueden devolverse al cabo del mismo tiempo aproximadamente en línea. - -Tenga en cuenta que las penalizaciones por inactividad son proporcionales a los validadores que estén fuera de línea al mismo tiempo. En casos en los que una gran parte de la red está desconectada a la vez, las penalizaciones para cada uno de estos validadores serán mayores que cuando un validador no esté disponible. - -En casos extremos, si la red se detiene con más de un tercio de los validadores fuera de línea como resultado, estos usuarios serán penalizados con lo que se conoce como una fuga cuadrática de inactividad, esto es, un drenaje exponencial de ETH de las cuentas de validadores fuera de línea. Esto permite que la red eventualmente se regenere al quemar ETH de validadores inactivos hasta que su balance alcance los 16 ETH, en cuyo momento serán expulsados automáticamente del grupo de validadores. Los validadores en línea restantes eventualmente comprenderán más de 2/3 la red de nuevo, satisfaciendo la supermayoría necesaria para finalizar la cadena una vez más. - - - -Francamente, esto es algo que no se puede garantizar al cien por cien, pero si se actúa de buena fe, se ejecuta un cliente minoritario y solo mantiene sus claves de firma en una máquina cada vez, el riesgo de sufrir «recortes» es prácticamente cero. - -Solo hay unas cuantas formas específicas de que un validador sea penalizado con «recortes» y expulsado de la red. A fecha de publicación de este blog, los «recortes» que se han producido han sido exclusivamente un producto de configuraciones de hardware redundantes donde las claves de firma se almacenan en dos máquinas separadas a la vez. Esto puede dar como resultado casualmente un doble voto de sus llaves, lo cual es una acción penalizada. - -Ejecutar un cliente de supermayoría (cualquier cliente utilizado por más de 2/3 la red) también tiene el riesgo de un potencial «recorte» en el caso de que este cliente tenga un error que resulte en una bifurcación de la cadena. Esto puede producir una bifurcación defectuosa que se finalice. Para revertir a la cadena prevista, se requeriría enviar un voto surround («envolvente») intentando deshacer un bloque finalizado. Esto también es una acción penalizada con «recorte» y que se puede evitar simplemente ejecutando un cliente minoritario en su lugar. - -Errores equivalentes en un cliente minoritario nunca finalizarán (bloques) y, por lo tanto, nunca resultarían en un voto surround («envolvente»), y simplemente resultaría en penalizaciones por inactividad, no de «recorte». - - - - - -Los clientes individuales pueden variar ligeramente en términos de funcionamiento e interfaz de usuario, ya que cada uno lo desarrollan diferentes equipos, utilizando una variedad de lenguajes de programación. Dicho esto, ninguno de ellos es el «mejor». Todos los clientes de producción son excelentes piezas de software, los cuales realizan las mismas funciones fundamentales para sincronizar e interactuar con la cadena de bloques. - -Dado que todos los clientes de producción proporcionan la misma funcionalidad básica, es en realidad es muy importante que elija un cliente minoritario, esto es, cualquier cliente que NO esté siendo usado actualmente por la mayoría de validadores de la red. Esto puede parecer poco intuitivo, pero el ejecutar un cliente en mayoría o supermayoría aumenta su riesgo de sufrir «recortes» en el caso de error en ese cliente. La ejecución de un cliente minoritario limita drásticamente estos riesgos. - -Más información sobre por qué la diversidad de clientes es crítica - - - -Aunque un servidor privado virtual (VPS) puede utilizarse en sustitución del hardware doméstico, el acceso físico y la ubicación de su cliente validador sí importa. Las soluciones centralizadas en la nube tales como Amazon Web Services (AWS) o Digital Ocean permiten la conveniencia de no tener que obtener y operar hardware, a expensas de centralizar la red. - -Cuantos más clientes validadores se ejecuten en una sola solución centralizada de almacenamiento en la nube, más peligroso será para estos usuarios. Cualquier evento que desconecte a estos proveedores, ya sea por un ataque, por exigencias regulatorias, o simplemente por interrupciones de energía o Internet, ocasionará que cada cliente validador que se base en estos servidores se desconecte al mismo tiempo. - -Las penalizaciones por estar fuera de línea son proporcionales a cuántos están fuera de línea al mismo tiempo. El uso de VPS aumenta enormemente el riesgo de que las penalizaciones por estar fuera de línea sean más severas, y aumenta su riesgo de fuga cuadrática o «recorte» en el caso de que la interrupción sea lo suficientemente importante. Para reducir su propio riesgo, y el riesgo para la red, se recomienda encarecidamente a los usuarios obtener y operar su propio hardware. - - - - -Las retiradas de cualquier tipo de la cadena de baliza requieren que se establezcan credenciales de retirada. - -Los nuevos participantes las establecen en el momento de la generación y el depósito de la clave. Los particpipantes existentes que no hayan configurado esta funcionalidad pueden actualizar sus claves para poder utilizarla. - -Una vez establecidas las credenciales de retirada, los pagos de recompensa (ETH acumulados por encima de los 32 iniciales) se distribuirán periódica y automáticamente a la dirección de retirada. - -Para desbloquear y recibir el saldo completo, también debe completar el proceso de salida de su validador. - -Más sobre los retiros de Staking - - -## Para profundizar sobre el tema {#further-reading} - -- [ El problema de la diversidad de clientes de Ethereum](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ -- [Controbuir a la diversidad de clientes](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ -- [Diversidad de clientes en la capa de consenso de Ethereum](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ -- [Guía: Cómo comprar hardware para un validador de Ethereum](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ -- [Paso a paso: Cómo unirse a la red de prueba de Ethereum 2.0](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _Butta_ -- [Consejos para la prevención de «recortes» de Eth2](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raúl Jordan 2020_ diff --git a/src/content/translations/es/staking/withdrawals/index.md b/src/content/translations/es/staking/withdrawals/index.md deleted file mode 100644 index 1d28717a561..00000000000 --- a/src/content/translations/es/staking/withdrawals/index.md +++ /dev/null @@ -1,218 +0,0 @@ ---- -title: Retiradas de participaciones -description: La página resume lo que son los «empujones de retirada», cómo funcionan y lo que los participantes deben hacer para obtener sus recompensas -lang: es -template: staking -image: ../../../../../assets/staking/leslie-withdrawal.png -alt: Leslie el rinoceronte con sus recompensas de participaciones -sidebarDepth: 2 -summaryPoints: - - La actualización Shanghai/Capella habilita las retiradas de participaciones en Ethereum - - Los operadores del validador deben proporcionar una dirección de retirada para habilitarla - - Las recompensas se distribuyen automáticamente cada tantos días - - Los validadores que salen completamente de las apuestas recibirán su balance restante ---- - - -Las retiradas de participaciones se habilitarán con la actualización de Shanghai/Capella que ocurrió el 12 de abril de 2023. Más información sobre Shanghai/Capella - - -**Las retiradas de participaciones** se refieren a las transferencias de ETH para la cuenta del validador en la capa de consenso de Ethereum (la cadena de baliza), a la capa de ejecución donde se pueden transferir. - -**Los pagos de recompensas del saldo excedente** de más de 32 ETH se enviará automática y regularmente a una dirección de retirada vinculada a cada validador, una vez proporcionada por el usuario. Los usuarios también pueden **dejar de apostar por completo**, desbloqueando todo su saldo del validador. - -## Recompensas de participaciones {#staking-rewards} - -Los pagos de recompensas se procesan automáticamente para cuentas de validadores activas con un saldo efectivo máximo de 32 ETH. - -Cualquier saldo por encima de 32 ETH ganado a través de recompensas no contribuye realmente al capital inicial, ni aumenta el peso de este validador en la red y, por lo tanto, se retira automáticamente como un pago de recompensa cada pocos días. Aparte de proporcionar una dirección de retiro una vez, estas recompensas no requieren ninguna acción del operador validador. Todo esto se inicia en la capa de consenso, por lo tanto no se requiere gas (tarifa de transacción) en ningún paso. - -### ¿Cómo hemos llegado hasta aquí? {#how-did-we-get-here} - -En los últimos años, Ethereum se ha sometido a varias actualizaciones de red que han hecho la transición a una red protegida por ETH en sí, en lugar de la minería con alto consumo nergético como era antes. Participar en el consenso en Ethereum se denomina ahora «participar», ya que los participantes han bloqueado voluntariamente ETH, poniéndolos «en juego» por la capacidad de participar en la red. Los usuarios que sigan las reglas serán recompensados, mientras que los intentos de hacer trampa podrán penalizarse. - -Desde el lanzamiento del contrato de depósito de participación en noviembre de 2020, algunos valientes pioneros de Ethereum han bloqueado voluntariamente fondos para activar «validadores»: cuentas especiales que tienen derecho a certificar formalmente y proponer bloques, siguiendo las reglas de la red. - -Antes de la actualización Shanghai/Capella, no se podía usar o acceder a sus ETH apostados. Pero ahora, puede optar por recibir automáticamente sus recompensas en una cuenta elegida y también puede retirar sus ETH apostados cuando quiera. - -### ¿Cómo me preparo? {#how-do-i-prepare} - - - -### Avisos importantes {#important-notices} - -Proporcionar una dirección de retirada es un paso obligatorio para cualquier cuenta de validdor antes de que sea elegible para que se retiren ETH de su saldo. - - - A cada cuenta de validador sólo se le puede asignar una dirección de retirada, una vez. Cuando se elige una dirección y se envía a la capa de consenso, no puede deshacerse ni cambiarse nuevamente. Vuelva a verificar la propiedad y la precisión de la dirección proporcionada antes de enviarla. - - -Mientras tanto no hay ninguna amenaza para sus fondos por no proporcionar esto, asumiendo que su frase mnemónica/de recuperación esté segura fuera de línea, y no se vea afectada de ninguna manera. Si no agrega las credenciales de retirada, simplemente dejará los ETH bloqueados en la cuenta del validador como ha estado hasta que se proporcione una dirección de retirada. - -## Salir completamente de la apuesta {#exiting-staking-entirely} - -Antes de que _los_ fondos puedan transferirse fuera del saldo de una cuenta de validación, es necesario proporcionar una dirección de retirada. - -Para abandonar la apuesta y recuperar todo su saldo, los usuarios deben enviar un mensaje de «salida voluntaria» firmado con sus claves de validación que iniciará el proceso de desvinculación de la apuesta. Esto se hace con su cliente validador y se envía a su nodo consenso, y no requiere gas. - -El proceso de un validador que sale de la apuesta lleva un tiempo variable, en función de la cantidad de peticiones de salida que se registren al mismo tiempo. Una vez completado, esta cuenta ya no tendrá la responsabilidad de realizar las tareas de la red de validación, no será elegible para recibir recompensas ni tendrá sus ETH «apostados». En ese momento, la cuenta se marcará como totalmente «retirable». - -Una vez que una cuenta se marca como «retirable» y se proporcionan las credenciales de retirada, no hay nada más que el usuario deba hacer aparte de esperar. Los proponentes de bloques barren de forma automática y continua las cuentas en busca de fondos que reúnan las condiciones de salida, y el saldo de su cuenta se transferirá en su totalidad (también conocido como «retirada completa») durante el próximo barrido. - -## ¿Cuándo se habilitarán las retiradas de apuestas? {#when} - -¡Las retiradas de apuestas ya están hablitadas! La funcionalidad de retirada se ha habilitado como parte de la actualización Shanghai/Capella que se lanzó el 12 de abril de 2023. - -La actualización Shanghai/Capella habilitó previamente que los ETH apostados se reclamen en las cuentas regulares de Ethereum. Con esto se cierra el ciclo de la liquidez y aproima un poco más a Ethereum en su intención de desarrollar un ecosistema descentralizado escalable, seguro y sostenible. - -- [Más sobre la historia de Ethereum](/history/) -- [Más sobre la hoja de ruta de Ethereum](/roadmap/) - -## ¿Cómo funcionan los pagos de las retiradas? {#how-do-withdrawals-work} - -La elegibilidad de un validador dado para una retirada o no, viene determinada por el estado de la cuenta del validador. No se necesita ninguna entrada de usuario en un momento dado para determinar si una cuenta debe tener una retirada iniciada o no (todo el proceso lo realiza automáticamente la capa de consenso en un bucle continuo). - -### ¿Es más bien de los que aprende viendo? {#visual-learner} - -Lea la explicación sobre retirads de apuestas en Ethereum hecha por Finematics: - - - -### «Barrido» del validador {#validator-sweeping} - -Cuando un validador está programado para proponer el siguiente bloque, se requiere construir una cola de retirada, de hasta 16 retiradas elegibles. Para ello se empieza originariamente con el índice del validador 0, que determina si hay una retirada elegible para esta cuenta según las reglas del protocolo y se añade a la cola, si existe. El validador establecido para proponer el siguiente bloque lo tomará ahí donde el último lo haya dejado y irá procesando las órdenes de manera indefinida. - - -Piense en un reloj analógico. La manecilla en el reloj marca la hora, avanza en un sentido, no se salta ninguna hora y, al alcanzar el último número, vuelve nuevamente al punto de inicio.

-Ahora en lugar del 1 al 12, imagine que el reloj tiene de 0 hasta N (el número total de cuentas validadoras que alguna vez se registraron en la capa de consenso, más de 500.000 en enero de 2023).

-La manecilla en el reloj apunta hacia el siguiente validador que necesita ser verificado antes de permitirle retiradas. Empieza a partir de 0, y avanza todo el camino alrededor sin saltarse ninguna cuenta. Cuando se alcance el último validador, el ciclo continúa volviendo al principio. -
- -#### Cómo comprobar si una cuenta es elegible para retirada {#checking-an-account-for-withdrawals} - -Mientras un proponente barre posibles retiradas a través de validadores, cada validador que se revisa se evalúa, a tenor de una pequeña serie de preguntas, para determinar si debe activarse una retirada, y de ser así, cuántos ETH se deberían retirar. - -1. **¿Se ha proporcionado una dirección de retirada?** Si no se ha proporcionado ninguna dirección, se omitirá la cuenta y no se iniciará ningún proceso de retirada. -2. **¿El validador ha salido y es apto para la retirada?** Si el validador ha salido completamente, y hemos llegado a la época en la que se considera que su cuenta es «retirable», entonces se procesará una retirada completa. Esto transferirá todo el saldo restante a la dirección de retirada. -3. **¿Supera el saldo efecto máximo los 32 ETH?** Si la cuenta tiene credenciales de retirada, no está completamente cerrada y tiene recompensas sobre los 32 en espera, se procesará una retirada parcial que sólo transfiere las recompensas por encima de 32 a la dirección de retirada del usuario. - -En el transcurso del ciclo de vida de un validador, solo hay dos acciones que puede emprender un validador que influyen directamente en este flujo: - -- Proporcionar credenciales de retirada para habilitar cualquier forma de retirada -- Salir de la red, que provocará una retirada completa - -### Gas gratis {#gas-free} - -Este enfoque a las retiradas de apuestas evita que los participantes tengan que presentar manualmente una transacción solicitando la retirada de una cantidad particular de ETH. Esto también significa que no se requiere **ningún gas (comisión de transacción)** y que las retiradas tampoco compiten por el espacio de bloque existente de la capa de ejecución. - -### ¿Con qué frecuencia obtendré mis recompensas de participación? {#how-soon} - -Se pueden procesar un máximo de 16 retiradas en un solo bloque. A ese ritmo, se pueden procesar 115.200 retiradas de validadores al día (asumiendo que no se pierda el turno). Como se mencionó anteriormente, se omitirá a los validadores sin retiradas elegibles, lo que reducirá el tiempo para finalizar el barrido. - -Ampliando este cálculo podemos estimar el tiempo que llevará el procesar un número determinado de retiradas: - - - -| Número de retiradas | Tiempo que llevará | -| :-----------------: | :----------------: | -| 400.000 | 3,5 días | -| 500.00 | 4,3 días | -| 600.000 | 5,2 días | -| 700.000 | 6,1 días | -| 800.000 | 7 días | - - - -Como puede ver, cuantos más validadores esten en la red, más se ralentiza el proceso. Un aumento en las vacantes podría ralentizar esto proporcionalmente, pero esto generalmente representará el lado más lento de los posibles resultados. - -## Preguntas más frecuentes {#faq} - - -No, el proceso para proporcionar credenciales de retirada es un proceso de una sola vez, y no se puede cambiar una vez presentado. - - - -Al establecer una capa de ejecución en una dirección de retirada, las credenciales de retirada para ese validador se cambian permanentemente. Esto significa que las credenciales antiguas ya no funcionarán, y las nuevas credenciales irán directamente a una cuenta de capa de ejecución. - -Las direcciones de retirada pueden ser un contrato inteligente (controlado por su código), o una cuenta de propietario externa (EOA, controlada por su clave privada). Actualmente estas cuentas no tienen forma de comunicar un mensaje de vuelta a la capa de consenso que señalaría un cambio de credenciales de validador, y añadir esta funcionalidad añadiría una complejidad innecesaria al protocolo. - -Como alternativa al cambio de la dirección de retirada para un validador en particular, los usuarios pueden optar por establecer un contrato inteligente como su dirección de retirada, la cual podría manejar la rotación clave, como una caja fuerte. Los usuarios que establezcan sus fondos en su propia EOA pueden realizar una salida completa para retirar todos sus fondos apostados, y luego volver a apostarlos usando nuevas credenciales. - - - - -Si forma parte de alguna reserva de participación o tiene tókenes de participación, debería consultarle a su proveedor los detalles de retiradas de participación, pues cada servicio opera de forma distinta. - -En general, los usuarios deberían tener la libertad de reclamar sus ETH apostados subyacentes, o cambiar de proveedor de apuestas. Si un grupo en particular se está volviendo demasiado grande, los fondos se pueden cerrar y canjear, y volver a apostarlos con un proveedor más pequeño. O, si ha acumulado suficientes ETH podría apostar desde casa. - - - - -Sí, siempre y cuando su validador haya proporcionado una dirección de retirada. Se debe proporcionar una vez para habilitar inicialmente cualquier retirada, luego los pagos de recompensa se activarán automáticamente cada pocos días con cada barrido del validador. - - - - -No, si su validador todavía está activo en la red, una retirada completa no se producirá automáticamente. Esto requiere iniciar manualmente una salida voluntaria. - -Una vez que un validador ha completado el proceso de salida ―asumiendo que la cuenta tenga credenciales de retirada― el saldo restante se retirará entonces durante el siguiente barrido del validador. - - - - -Las retiradas están diseñadas para producirse automáticamente, transfiriendo cualquier ETH que no contribuya activamente a la apuesta. Esto incluye saldos completos para cuentas que han completado el proceso de salida. - -No es posible solicitar manualmente la retirada de cantidades específicas de ETH. - - - - -Se recomienda a los operadores de validadores visitar la página Retiradas en la plataforma de lanzamiento de participaciones donde encontrarás más detalles sobre cómo preparar tu validador para retiradas. Preparado, el momento de los eventos y más detalles sobre cómo funcionan las retiradas. - -Para probar primero su configuración en una red de pruebas, visite el Lanzador de apuestas de red de prueba Goerli para empezar. - - - - -No. Una vez que un validador ha salido y su saldo total se ha retirado, cualquier fondo adicional depositado a ese validador se transferirá automáticamente a la dirección de retirada durante el próximo barrido del validador. Para volver a apostar ETH, se debe activar un validador nuevo. - - -## Más información {#further-reading} - -- [Retiradas en la plataforma de lanzamiento de participaciones](https://launchpad.ethereum.org/withdrawals) -- [EIP-4895: La cadena de baliza impulsa las retiradas como operaciones](https://eips.ethereum.org/EIPS/eip-4895) -- [ Ethereum Cat Herders - Shanghai](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) -- [PEEPanEIP #94: Retirada de ETH apostados (Prueba) con Potuz & Hsiao-Wei Wang](https://www.youtube.com/watch?v=G8UstwmGtyE) -- [PEEPanEIP#68: EIP-4895: La cadena de baliza impulsa retiradas como operaciones con Alex Stokes](https://www.youtube.com/watch?v=CcL9RJBljUs) -- [Entender el saldo de efectivo del validador](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/es/whitepaper/index.md b/src/content/translations/es/whitepaper/index.md deleted file mode 100644 index be371078fa5..00000000000 --- a/src/content/translations/es/whitepaper/index.md +++ /dev/null @@ -1,501 +0,0 @@ ---- -title: Guía de Ethereum -description: Una guía introductoria a Ethereum publicada en 2013 antes de su lanzamiento. -lang: es -sidebarDepth: 2 ---- - -# Guía de Ethereum {#ethereum-whitepaper} - -_Esta guía introductoria fue publicada originalmente en 2013 por Vitalik Buterin, el fundador de [Ethereum](/what-is-ethereum/), antes del lanzamiento del proyecto en 2015. Vale la pena señalar que Ethereum, al igual que muchos proyectos de software de código abierto impulsados por la comunidad, ha evolucionado desde su inicio._ - -_Aunque tenga varios años de antigüedad, mantenemos este documento porque sigue sirviendo como una referencia útil y una representación precisa de Ethereum y su visión. Para aprender sobre los últimos desarrollos de Ethereum, y cómo se hacen los cambios en el protocolo, recomendamos [esta guía](/learn/)._ - -## Un contrato inteligente de nueva generación y una plataforma de aplicación descentralizada {#a-next-generation-smart-contract-and-decentralized-application-platform} - -La publicación de Bitcoin en 2009 por parte de Satoshi Nakamoto a menudo se ha aclamado como un avance radical en el ámbito del dinero y las divisas, siendo el primer ejemplo de un activo digital que a la vez no tiene respaldo o [valor intrínseco](http://bitcoinmagazine.com/8640/an-exploration-of-intrinsic-value-what-it-is-why-bitcoin-doesnt-have-it-and-why-bitcoin-does-have-it/) ni un emisor o mando centralizado. Sin embargo, otra parte, quizás más importante, del experimento de Bitcoin es la tecnología subyacente de blockchain como una herramienta de consenso distribuido, aspecto del Bitcoin sobre el cual se está empezando rápidamente a centrar la atención. Las aplicaciones alternativas que se citan comunmente de la tecnología de blockchain incluyen el el uso de los activos digitales blockchain para representar divisas a medida e instrumentos financieros ([monedas coloreadas](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit)), la propiedad de un artefacto físico subyacente ([propiedad inteligente](https://en.bitcoin.it/wiki/Smart_Property)), activos no fungibles como nombres de dominio ([Namecoin](http://namecoin.org)), así como aplicaciones más complejas que involucran activos digitales controlados directamente por un fragmento de código que implementa reglas arbitrarias ([contratos inteligentes](http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/idea.html)) o incluso [organizaciones autónomas descentralizadas](http://bitcoinmagazine.com/7050/bootstrapping-a-decentralized-autonomous-corporation-part-i/) basadas en blockchain (DAO). Lo que Ethereum pretende es proporcionar una blockchain con un lenguaje integrado Turing completo y plenamente desarrollado que se puede usar para crear "contratos" que, a su vez, se pueden utilizar para codificar funciones arbitrarias de transición de estados, permitiendo a los usuarios crear cualquiera de los sistemas descritos anteriormente, así como otros que todavía no hemos imaginado, tan solo escribiendo la lógica en unas pocas líneas de código. - -## Introducción a Bitcoin y a los conceptos existentes {#introduction-to-bitcoin-and-existing-concepts} - -### Historial {#history} - -El concepto de moneda digital descentralizada, así como aplicaciones alternativas como los registros de propiedades, ha existido durante décadas. Los protocolos anónimos de dinero digital de los años ochenta y noventa, en su mayoría depentiendes de una primitiva criptográfica conocida como firma digital ciega, proporcionaron una moneda con un alto grado de privacidad, pero fallaron en gran medida al imponerse debido a su dependencia de un intermediario centralizado. En 1998, el [b-money](http://www.weidai.com/bmoney.txt) se convirtió en la primera propuesta para presentar la idea de crear dinero mediante la resolución de rompecabezas computaciones, así como del consenso descentralizado, pero la propuesta era escasa en detalles sobre cómo se podría implementar el consenso descentralizado en la práctica. En 2005, Hal Finney introdujo el concepto de [pruebas de trabajo reutilizables](http://nakamotoinstitute.org/finney/rpow/), un sistema que utiliza ideas del b-money junto con los rompecabezas computacionalmente difíciles Hashcash de Adam Back, para crear un concepto de criptomoneda. Sin embargo, una vez más se quedó por debajo del ideal al delegar la computación de confianza a un "backend". En 2009, una moneda descentralizada se implementó por primera vez en la práctica por Satoshi Nakamoto, combinando primitivas consolidadas para gestionar la propiedad a través de la criptografía de clave pública junto con un algoritmo de consenso para mantener un registro de quién es dueño de las monedas, conocido como "prueba de trabajo". - -El mecanismo detrás de la prueba de trabajo constituyó un avance en el área porque resolvió dos problemas al mismo tiempo. Primero, proporcionó un algoritmo de consenso simple y moderadamente efectivo, permitiendo que los nodos en la red aceptasen colectivamente un conjunto de actualizaciones canónicas al estado del libro de contabilidad de Bitcoin. Segundo, proporcionó un mecanismo para permitir la entrada libre en el proceso de consenso, resolviendo el problema político de decidir quién llega a influir en el consenso e impidiendo al mismo tiempo los ataques Sybil. Lo hace sustituyendo una barrera formal para la participación, por ejemplo, el requisito de estar registrado como una entidad única en una lista particular, por una barrera económica: el peso de un único nodo en el proceso de votación de consenso es directamente proporcional a la potencia de cálculo que aporta el nodo. Desde entonces, se ha propuesto un enfoque alternativo llamado _prueba de participación_, que calcula el peso de un nodo como la parte proporcional de sus monedas en propiedad y no sus recursos computacionales; la argumentación de los méritos relativos de ambos enfoques está fuera del alcance de este documento, pero hay que señalar que ambos pueden servir como la columna vertebral de una criptomoneda. - -Aquí puedes consultar una entrada del blog de Vitalik Buterin, el fundador de Ethereum, en [Prehistorial de Ethereum](https://vitalik.ca/general/2017/09/14/prehistory.html). [Aquí](https://blog.ethereum.org/2016/02/09/cut-and-try-building-a-dream/) hay otra entrada del blog con más contenido histórico. - -### Bitcoin como un sistema de transición de estados {#bitcoin-as-a-state-transition-system} - -![Transición de estado de Ethereum](../../../whitepaper/ethereum-state-transition.png) - -Desde un punto de vista técnico, el libro de contabilidad de una criptomoneda como Bitcoin se puede considerar un sistema de transición de estados, donde hay un "estado" que consiste en el estado de propiedad de todos los bitcoins existentes, y una "función de transición de estados" que toma un estado y una transacción y produce un nuevo estado como resultado. En un sistema bancario estándar, por ejemplo, el estado es una hoja de balance, una transacción es una petición para mover $X de A a B, y la función de transición de estado reduce el valor en la cuenta A en $X y aumenta el valor en la cuenta B en $X. Si la cuenta A tiene menos de $X en primer lugar, la función de transición de estado devuelve un error. Por lo tanto, se puede definir formalmente: - - APPLY(S,TX) -> S' o ERROR - -En el sistema bancario definido anteriormente: - - APPLY({ Alice: $50, Bob: $50 },"enviar $20 de Alice a Bob") = { Alice: $30, Bob: $70 } - -Pero: - - APPLY({ Alice: $50, Bob: $50 },"enviar $70 de Alice a Bob") = ERROR - -El "estado" en Bitcoin es el conjunto de todas las monedas (técnicamente, "transacciones de salida no gastadas" o UTXO por sus siglas en inglés) que han sido minadas y no se han gastado aún, junto con cada UTXO que tenga una denominación y un propietario (definido por una dirección de 20 bytes, que es esencialmente una clave pública criptográfica[fn. 1](#notas)). Una transacción contiene una o más entradas, donde cada entrada contiene una referencia a una UTXO existente y una firma criptográfica generada por la clave privada asociada con la dirección del propietario, y una o más salidas, donde cada salida contiene una nueva UTXO para ser añadida al estado. - -La función de transición de estado `APPLY(S,TX) -> S'` puede definirse aproximadamente como sigue: - -1. Para cada entrada en `TX`: - - - Si la UTXO referenciada no está en `S`, devolver un error. - - Si la firma proporcionada no coincide con el propietario de la UTXO, devolver un error. - -2. Si la suma de las denominaciones de todas las entradas UTXO es menor que la suma de las denominaciones de todas las salidas UTXO, devolver un error. -3. Devolver `S'` con todas las entradas UTXO eliminadas y todas las salidas UTXO añadidas. - -La primera mitad del primer paso impide a los emisores de transacciones que gasten monedas que no existen, la segunda mitad del primer paso impide que los emisores de transacciones gasten las monedas de otras personas, y el segundo paso hace cumplir la conservación del valor. Para poder utilizar esto para hacer pagos, el protocolo es el siguiente. Supongamos que Alice quiere enviar 11,7 BTC a Bob. En primer lugar, Alice buscará un conjunto de UTXO disponibles en su poder que sumen un total de al menos 11,7 BTC. En la práctica, Alice no será capaz de obtener exactamente 11,7 BTC; digamos que la cifra más pequeña que puede obtener es 6+4+2=12. A continuación, crea una transacción con estas tres entradas y dos salidas. La primera salida será 11,7 BTC con la dirección de Bob como propietario, y la segunda salida será el "cambio" restante de 0,3 BTC, siendo la propietaria la misma Alice. - -### Minería {#mining} - -![Bloques de Ethereum](../../../whitepaper/ethereum-blocks.png) - -Si tuviéramos acceso a un servicio centralizado de confianza, este sistema sería trivial de implementar; se podría exactamente como se ha descrito, usando el disco duro de un servidor centralizado para mantener el registro del estado. Sin embargo, con Bitcoin estamos tratando de construir un sistema monetario descentralizado, así que necesitaremos combinar el sistema de transición de estados con un sistema de consenso para asegurarse de que todo el mundo esté de acuerdo en el orden de las transacciones. El proceso de consenso descentralizado de Bitcoin requiere que los nodos que integran la red intenten producir continuamente paquetes de transacciones llamados "bloques". La red está pensada para producir aproximadamente un bloque cada diez minutos, donde cada bloque contiene una marca temporal, un nonce, una referencia (es decir, un hash de) al bloque anterior y una lista de todas las transacciones que han tenido lugar desde el bloque anterior. Con el tiempo, esto crea una "blockchain" persistente, cada vez mayor, que se actualiza constantemente para representar el último estado del libro de contabilidad de Bitcoin. - -El algoritmo para comprobar si un bloque es válido, expresado en este paradigma, es el siguiente: - -1. Evaluar si el bloque anterior al que hace referencia el bloque existe y es válido. -2. Evaluar que la marca temporal del bloque sea mayor que la del bloque anterior[fn. 2](#notes)y menos de 2 horas a futuro -3. Evaluar que la prueba de trabajo del bloque es válida. -4. Permitir que `S[0]` sea el estado al final del bloque anterior. -5. Supongamos que `TX` es la lista de transacciones del bloque con `n` transacciones. Para todo `i` de `0... -1`, asignar `S[i+1] = APPLY(S[i], X[i])` Si cualquier aplicación devuelve un error, salir y devolver false. -6. Devolver true, y asignar `S[n]` como estado al final de este bloque. - -Fundamentalmente, cada transacción en el bloque debe proporcionar una transición de estado válido de lo que era el estado canónico antes de que la transacción fuera ejecutada a otro nuevo estado. Obsérvese que el estado no se codifica en el bloque en modo alguno; es una abstracción pura que debe ser recordada por el nodo validador y solo puede ser calculada (de forma segura) para cualquier bloque empezando desde el estado de génesis y aplicando secuencialmente cada transacción en cada bloque. Además, hay que tener en cuenta que es importante el orden en el que el minero incluye transacciones en el bloque; si hay dos transacciones A y B en un bloque tal que B gasta un UTXO creado por A, entonces el bloque será válido si A viene antes que B pero no en caso contrario. - -La única condición de validación presente en la lista anterior que no se encuentra en otros sistemas es el requisito de la "prueba de trabajo". La condición concreta es que el hash SHA256 doble de cada bloque, tratado como un número de 256 bits, debe ser inferior a un objetivo ajustado dinámicamente, que en el momento de escribir estas líneas es aproximadamente 2187. El propósito de esto es hacer que la creación de bloques sea computacionalmente "difícil", impidiendo así que los atacantes de sybil reconstruyan todo el blockchain en su beneficio. Dado que SHA256 está diseñada para ser una función pseudoraleatoria completamente impredecible, la única forma de crear un bloque válido es mediante simple prueba y error, incrementando repetidamente el nonce y comprobando si el nuevo hash coincide. - -Para el objetivo actual de \~2187, la red debe hacer un promedio de \~269 intentos antes de encontrar un bloque válido; en general el objetivo se recalibra por la red cada 2016 blques, por lo que que en promedio se crea un bloque nuevo por parte de algún nodo en la red cada diez minutos. Para compensar a los mineros por este trabajo computacional, el minero de cada bloque tiene derecho a incluir una transacción dándose a si mismo 12,5 BTC creados de la nada. Además, si cualquier transacción tiene un valor total más alto en sus entradas que en sus salidas, la diferencia también se destina al minero como "tarifa de transacción". Por otra parte, este es también el único mecanismo por el cual se emiten BTC; el estado inicial no contenía monedas en absoluto. - -Para comprender mejor el propósito de la minería, examinemos que ocurre en el caso de un atacante malicioso. Puesto que se sabe que la criptografía subyacente de Bitcoin es segura, el atacante se enfoncará en una parte del sistema Bitcoin que no está protegida directamente por criptografía: el orden de las transacciones. La estrategia del atacante es simple: - -1. Envía 100 BTC a un vendedor a cambio de algún producto (preferiblemente un bien digital con entrega rápida) -2. Espera a la entrega del producto -3. Crea otra transacción en la que se envía los mismos 100 BTC a sí mismo -4. Trata de convencer a la red de que la transacción para sí mismo era la que tuvo lugar primero. - -Una vez que el paso (1) ha tenido lugar, tras unos minutos algún minero incluirá la transacción en un bloque, digamos el bloque número 270. Tras aproximadamente una hora, se habrán añadido cinco bloques más a la cadena tras ese bloque, con cada uno de esos bloques apuntando indirectamente a la transacción y así "confirmándola". En este punto, el vendedor aceptará el pago, lo tomará como finalizado y entregará el producto; ya que estamos asumiendo que se trata de un bien digital, la entrega es instantánea. Ahora, el atacante crea otra transacción en la que se envía 100 BTC a sí mismo. Si el atacante lo suelta sin más, la transacción no se procesará; los mineros intentarán ejecutar `APPLY(S, X)` y observarán que `TX` consume una UTXO que ya no está en el estado. En su lugar, el atacante crea una "bifurcación" del blockchain, comenzando por minar otra versión del bloque 270 apuntando al mismo bloque 269 como padre pero con la nueva transacción en lugar de la antigua. Dado que los datos del bloque son diferentes, esto requiere volver a hacer la prueba de trabajo. Además, la nueva versión del bloque 270 del atacante tiene un hash diferente, por lo que los bloques originales 271 a 275 no "apuntan" a él; por lo tanto, la cadena original y la nueva cadena del atacante están completamente separadas. La regla es que en una bifurcación se toma la blockchain más larga como la verdadera, y así los mineros legítimos trabajarán en la cadena 275 mientras el atacante por sí solo está trabajando en la cadena 270. Para que el atacante haga que su blockchain sea el más largo, necesitaría tener más poder computacional que el resto de la red combinada para alcanzarles (de ahí, "ataque del 51%"). - -### Árboles de Merkle {#merkle-trees} - -![SPV en Bitcoin](../../../whitepaper/spv-bitcoin.png) - -_Izquierda: Basta con presentar solo un pequeño número de nodos en un árbol de Merkle para demostrar la validez de una bifurcación._ - -_Derecha: Cualquier intento de cambiar cualquier parte del árbol de Merkle llevará eventualmente a una inconsistencia en algún lugar previo de la cadena._ - -Una característica importante de escalabilidad de Bitcoin es que el bloque se almacena en una estructura de datos multinivel. El "hash" de un bloque es en realidad solo el hash del encabezado del bloque, aproximadamente 200 bytes de datos que contienen la marca de tiempo, el nonce, el hash del bloque anterior y el hash raíz de una estructura de datos llamada el árbol de Merkle que almacena todas las transacciones en el bloque. Un árbol de Merkle es un tipo de árbol binario, compuesto por un conjunto de nodos con un gran número de nodos hoja en la parte inferior del árbol que contienen los datos subyacentes, un conjunto de nodos intermedios donde cada nodo es el hash de sus dos hijos, y finalmente un único nodo raíz, también formado por el hash de sus dos hijos, representando la parte "superior" del árbol. El propósito del árbol de Merkle es permitir que los datos en un bloque se entreguen fragmentados: un nodo solo puede descargar el encabezado de un bloque de una fuente, la pequeña parte del árbol relevante para ellos de otra fuente, y aún así tener la certeza de que todos los datos son correctos. La razón por la que esto funciona es que los hashes se propagan hacia arriba: si un usuario malicioso intenta insertar una transacción falsa en la parte inferior de un árbol Merkle, este cambio causará un cambio en el nodo anterior, y luego un cambio en el nodo anterior, finalmente cambiando la raíz del árbol y por lo tanto el hash del bloque, causando que el protocolo lo registre como un bloque completamente diferente (casi con total seguridad con una prueba de trabajo no válida). - -Se podría decir que el protocolo del árbol de Merkle es esencial para la sostenibilidad a largo plazo. Un "nodo completo" en la red Bitcoin, uno que almacene y procesa la totalidad de todos los bloques, ocupa unos 15 GB de espacio en disco en la red Bitcoin a fecha de abril de 2014, y está creciendo más de un gigabyte al mes. Actualmente, esto es viable para algunos ordenadores de escritorio y no para teléfonos, y más adelante en el futuro sólo las empresas y entusiastas podrán participar. Un protocolo conocido como "verificación de pago simplificada" (SPV) permite que existan otra clase de nodos, llamados "nodos ligeros", que descargan los encabezados del bloque, verifican la prueba de trabajo en los encabezados de bloque, y luego descargan solo las "bifurcaciones" asociadas con las transacciones que son relevantes para ellos. Esto permite que los nodos ligeros determinen con una sólida garantía de seguridad cuál es el estado de cualquier transacción de Bitcoin, y cuál es su saldo actual con tan solo descargar una pequeña porción de toda la blockchain. - -### Aplicaciones alternativas de la blockchain {#alternative-blockchain-applications} - -La idea de tomar el concepto subyacente de blockchain y aplicarla a otros conceptos también tiene un largo historial. En 1998, Nick Szabo publicó el concepto de [títulos de propiedad seguros con autoridad de propietario](http://nakamotoinstitute.org/secure-property-titles/), un documento que describe como "nuevos avances en la tecnología de bases de datos replicadas" permitirá un sistema basado en blockchain para almacenar un registro de quién es propietario de que terreno, creando un marco elaborado que incluye conceptos tales como la propiedad familiar, la posesión adversa y el impuesto sobre la tierra de Georgia. Lamentablemente, no había ningún sistema efectivo de bases de datos replicadas disponible en ese momento, por lo que el protocolo nunca se implementó en la práctica. Sin embargo, después de 2009, una vez que se desarrolló el consenso descentralizado de Bitcoin, un número de aplicaciones alternativas comenzaron a surgir rápidamente. - -- **Namecoin** - creada en 2010, [Namecoin](https://namecoin.org/) se describe como una base de datos de registro de nombres descentralizada. En protocolos descentralizados como Tor, Bitcoin y BitMessage, es necesario que haya una forma de identificar las cuentas de tal modo que otras personas puedan interactuar con ellas, pero en todas las soluciones existentes la única clase de identificador disponible es un hash pseudoaleatorio, como por ejemplo `1LW79wp5ZBqaHW1jL5TCiBCrhQYtHagUWy`. Idealmente, a uno le gustaría poder tener una cuenta con un nombre como "george". Sin embargo, el problema es que si una persona puede crear una cuenta llamada "george", entonces alguien puede usar el mismo proceso para registrar "george" para y suplantarle. La única solución es un paradigma primero-en-archivar, donde el primer registrador lo realiza satisfactoriamente y el segundo falla, un problema perfectamente adaptado para el protocolo de consenso de Bitcoin. Namecoin es la implementación más antigua y exitosa de un sistema de registro de nombres utilizando tal idea. -- **Monedas coloreadas** - el propósito de las [monedas coloreadas](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit) es servir como protocolo que permite a la gente crear sus propias monedas digitales, o, en el importante caso trivial de una moneda con una unidad, tokens digitales, en la blockchain de Bitcoin. En el protocolo de monedas coloreadas, alguien "emite" una nueva moneda al asignar públicamente un color a una UTXO de Bitcoin específica, y el protocolo define recursivamente el color de otras UTXO para que sean de color idéntico al de las entradas que la transacción que las creó ha gastado (algunas reglas especiales se aplican en el caso de entradas a color mixto). Esto permite a los usuarios tener carteras que contienen solo UTXO de un color específico y enviarlas por todo el mundo como bitcoins normales, rastreando hacia atrás por la blockchain para determinar el color de cualquier UTXO que reciban. -- **Metacoin**: La idea detrás de una metacoin es tener un protocolo que está montado sobre Bitcoin, usando transacciones de Bitcoin para almacenar las transacciones de metacoin, pero que tiene una función de transición de estado diferente, `APPLY'`. Dado que el protocolo metacoin no puede evitar que aparezcan transacciones de metacoin inválidas en la blockchain de Bitcoin, se añade una regla por la que si `APPLY'(S,TX)` devuelve un error, el protocolo por defecto aplica `APPLY'(S,TX) = S`. Esto proporciona un mecanismo fácil para crear un protocolo arbitrario de criptomonedas, con posibles características avanzadas que no pueden ser implementadas dentro del propio Bitcoin, pero con un coste de desarrollo muy bajo, ya que las complejidades de minado y trabajo en red ya las gestiona el protocolo Bitcoin. Las metacoins se han utilizado para implementar algunas clases de contratos financieros, registro de nombres e intercambio descentralizado. - -Por lo tanto, en general, hay dos enfoques para la construcción de un protocolo de consenso: construir una red independiente, o construir un protocolo sobre Bitcoin. El primer enfoque, aunque ha sido razonablemente exitoso en el caso de aplicaciones como Namecoin, es difícil de implementar; cada implementación individual necesita iniciar una blockchain independiente, además de construir y probar todas las transiciones de estado necesarias y el código de red. Además, predecimos que el conjunto de aplicaciones para la tecnología de consenso descentralizado seguirá una distribución de ley de potencias donde la gran mayoría de las aplicaciones serían demasiado pequeñas para garantizar su propia blockchain, y observamos que existen grandes clases de aplicaciones descentralizadas, en particular organizaciones autónomas descentralizadas, que necesitan interactuar entre sí. - -El enfoque basado en Bitcoin, por otra parte, tiene el defecto de que no hereda las características de verificación de pago simplificada de Bitcoin. SPV funciona en Bitcoin porque puede usar la profundidad de blockchain como indicador de validez; en algún momento, una vez que los antecesores de una transacción van lo suficientemente atrás, se puede afirmar con seguridad que fueron legítimamente parte del estado. Los metaprotocolos basados en blockchain, por otra parte, no pueden forzar a la blockchain a no incluir transacciones que no son válidas en el contexto de sus propios protocolos. Por lo tanto, una implementación de metaprotocolo SPV completamente segura necesitaría escanear hasta el comienzo de la blockchain de Bitcoin para determinar si ciertas transacciones son válidas. Actualmente, todas las implementaciones "ligeras" de los metaprotocolos basados en Bitcoin dependen de un servidor de confianza para proporcionar los datos, lo que es presumiblemente un resultado altamente subóptimo, especialmente cuando uno de los propósitos primarios de una criptomoneda es eliminar la necesidad de confianza. - -### Scripting {#scripting} - -Incluso sin ninguna extensión, el protocolo Bitcoin de hecho facilita una versión débil del concepto de "contratos inteligentes". La UTXO en Bitcoin puede ser propiedad no solo de una clave pública, sino también de un script más complicado expresado en un lenguaje simple de programación basado en pila. En este paradigma, una transacción que gaste esa UTXO debe proporcionar datos que satisfagan el script. De hecho, incluso el mecanismo público básico de propiedad de claves se implementa a través de un script: el script toma una firma de curva elíptica como entrada, lo verifica contra la transacción y la dirección que posee la UTXO, y devuelve 1 si la verificación es correcta y 0 en caso contrario. Existen otros scripts más complicados para varios casos de uso adicionales. Por ejemplo, se puede desarrollar un script que requiere firmas de dos de cada tres claves privadas para la validación ("multisig"), una configuración útil para cuentas corporativas, cuentas de ahorro seguras y algunos contextos de fideicomiso de comerciantes. Los scripts también pueden utilizarse para pagar recompensas por soluciones a problemas computacionales. y uno puede incluso construir un script que diga algo como: "este Bitcoin UTXO es tuyo si puedes proporcionar una prueba de SPV en la que enviaste una transacción de Dogecoin de esta denominación", permitiendo en esencia un intercambio descentralizado de criptomonedas. - -Sin embargo, el lenguaje de scripting implementado en Bitcoin tiene varias limitaciones importantes: - -- **Falta de completitud Turing**, es decir, mientras que hay un subconjunto grande de computación que el lenguaje de scripting de Bitcoin admite, no lo admite todo. La categoría principal que falta son los bucles. Esto se hace para evitar bucles infinitos durante la verificación de transacciones; teóricamente es un obstáculo superable para programadores de script, ya que cualquier bucle se puede simular simplemente repitiendo el código base muchas veces con un comando if, pero conduce a scripts que son muy ineficientes en términos de espacio. Por ejemplo, implementar un algoritmo alternativo de firma de la curva elíptica probablemente requeriría 256 rondas de multiplicación repetidas a incluir individualmente en el código. -- **Indiferencia al valor**: no hay forma de que un script UTXO proporcione un control detallado de la cantidad que se puede retirar. Por ejemplo, un caso de uso importante de un contrato de oráculo sería un contrato de cobertura, en el que A y B ponen 1000 dólares en BTC y después de 30 días el script envía 1000 dólares de BTC a A y el resto a B. Esto requeriría un oráculo para determinar el valor de 1 BTC en USD, pero aún así se trata de una mejora enorme en términos de confianza y e infraestructura con respecto a las soluciones totalmente centralizadas disponibles ahora. Sin embargo, dado que una UTXO es todo o nada, la única manera de lograr esto es a través de un hack muy ineficiente en el que tener muchas UTXO de diferentes denominaciones (por ejemplo, una UTXO de 2k para cada k de hasta 30) y hacer que el oráculo elija qué UTXO enviar a A y cuál a B. -- **Falta de estado**: una [UTXO se puede gastar o no gastar](https://bitcoin.org/en/glossary/unspent-transaction-output); no hay ninguna posibilidad de contratos multietapa o scripts que mantengan cualquier otro estado interno más allá de eso. Esto hace difícil hacer contratos de opciones multietapa, ofertas de intercambio descentralizadas o protocolos de compromiso criptográficos en dos etapas (necesarios para recompensas computacionales seguras). También significa que UTXO solo puede utilizarse para construir contratos únicos aislados y no más contratos "con estado" complejos, como organizaciones descentralizadas, y dificulta la implementación de metaprotocolos. El estado binario combinado con la indiferencia al valor también implica que otra aplicación importante, el límite de retiro, es imposible. -- **Ceguera a la Blockchain**: las UTXO son ciegas a los datos de la blockchain como el nonce, la marca temporal y el hash del bloque anterior. Esto limita severamente las aplicaciones en juegos de azar y otras categorías, al privar al lenguaje de scripting de una fuente potencialmente valiosa de aleatoriedad. - -Por tanto, consideramos tres enfoques para construir aplicaciones avanzadas encima de las criptomonedas: construir una nueva blockchain, usando scripting por encima de Bitcoin, y construyendo un metaprotocolo encima de Bitcoin. Construir una nueva blockchain permitiría libertad ilimitada al construir un conjunto de funcionalidades, pero a costa del tiempo de desarrollo, esfuerzo para ponerla en marcha, y seguridad. El uso de scripts es fácil de implementar y estandarizar, pero está muy limitado en sus capacidades, y los metaprotocolos, aunque sencillos, sufren de defectos en la escalabilidad. Con Ethereum, pretendemos construir un framework alternativo que proporcione mejoras aún mayores en cuanto a facilidad de desarrollo, así como como propiedades más robustas para clientes ligeros, al tiempo que permite a las aplicaciones compartir un entorno económico y la seguridad de la blockchain. - -## Ethereum {#ethereum} - -El propósito de Ethereum es crear un protocolo alternativo para construir aplicaciones descentralizadas, proporcionando un conjunto diferente de contrapartidas que creemos que serán muy útiles para un amplio abanico de aplicaciones descentralizadas, con especial énfasis en situaciones en las que el rápido tiempo de desarrollo, la seguridad para aplicaciones pequeñas y rara vez usadas y la capacidad de las diferentes aplicaciones para interactuar de manera muy eficiente son importantes. Ethereum lo logra construyendo lo que es esencialmente la capa fundacional abstracta definitiva: una blockchain con un lenguaje de programación Turing completo, que permite a cualquiera escribir contratos y aplicaciones descentralizadas donde pueden crear sus propias reglas reglas arbitrarias de propiedad, formatos de transacción y funciones de transición de estado. Una versión básica de Namecoin puede escribirse en dos líneas de código, y otros protocolos como monedas y sistemas de reputación se pueden incorporar en menos de veinte. Los contratos inteligentes, "cajas" criptográficas que contienen valor y sólo lo desbloquean si se cumplen ciertas condiciones también se pueden desarrollar por encima de la plataforma, con mucho más poder que el que ofrece el script de Bitcoin gracias a los poderes añadidos de completitud Turing, conocimiento del valor, conocimiento de la blockchain y estado. - -### Filosofía {#philosophy} - -El diseño en el que se basa Ethereum está pensado para seguir los siguientes principios: - -1. **Simplicidad**: el protocolo Ethereum debe ser tan simple como sea posible, incluso a costa de cierto almacenamiento de datos o uso del tiempo ineficientes.[fn. 3](#notes) Un programador promedio debería ser idealmente capaz de entender e implementar toda la especificación,[fn. 4](#notes) con objeto de comprender totalmente el potencial democratizador sin precedentes que la criptomoneda trae y profundizar en la visión de Ethereum como un protocolo abierto a todos. Cualquier optimización que añada complejidad no debe incluirse a menos que esa optimización proporcione un beneficio sustancial. -2. **Universalidad**: una parte fundamental de la filosofía de diseño de Ethereum es que Ethereum no tiene "funciones".[fn. 5](#notes) En su lugar, Ethereum proporciona un lenguaje interno de scripting Turing completo, que un programador puede usar para desarrollar cualquier contrato inteligente o transacción de cualquier tipo que se pueda definir matemáticamente. ¿Quieres inventar tu propio derivado financiero? Con Ethereum, puedes. ¿Quieres crear tu propia moneda? Establécela como un contrato en Ethereum. ¿Quieres configurar un Daemon o una red Skynet a gran escala? Puede que necesites tener unos cuantos miles de contratos entrelazados y asegurarte de alimentarlos generosamente para lograrlo, pero nada te lo impide con Ethereum al alcance de tu mano. -3. **Modularidad**: las partes del protocolo Ethereum deben diseñarse para ser tan modulares y separables como sea posible. En el transcurso del desarrollo, nuestro objetivo es crear un programa donde si uno fuera a hacer una pequeña modificación del protocolo en un solo lugar, la pila de la aplicación continuaría funcionando sin ninguna modificación adicional. Innovaciones como Ethash (consulta el [protocolo en el apéndice](https://ethereum.github.io/yellowpaper/paper.pdf#appendix.J) o [el artículo](https://github.com/ethereum/wiki/wiki/Ethash)), los árboles de Patricia modificados ([protocolo](https://ethereum.github.io/yellowpaper/paper.pdf#appendix.D), [wiki](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-Patricia-Tree)) y RLP ([YP](https://ethereum.github.io/yellowpaper/paper.pdf#appendix.B), [wiki](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-RLP)) deben ser y son, implementados como librerías separadas de funciones completas. Esto es así puesto que, aunque se usan en Ethereum e incluso si Ethereum no requiere ciertas funciones, estas funciones siguen siendo utilizables también en otros protocolos. El desarrollo de Ethereum debe de realizarse al máximo para beneficiar a todo el ecosistema de criptomonedas, no solo a sí mismo. -4. **Agilidad**: los detalles del protocolo de Ethereum no son inamovibles. Aunque seremos extremadamente prudentes a la hora de hacer modificaciones a construcciones de alto nivel, como por ejemplo la [hoja de ruta de sharding](https://ethresear.ch/t/sharding-phase-1-spec/1407/) y la ejecución abstracta, con disponibilidad de datos solo grabada en el consenso. Pruebas computacionales posteriores en el proceso de desarrollo pueden llevarnos a descubrir que ciertas modificaciones, p. ej., en la arquitectura de protocolo o en la máquina virtual de Ethereum (EVM), mejorasen sustancialmente la escalabilidad o seguridad. Si se encuentran estas oportunidades, las explotaremos. -5. **No discriminación** y **no censura**: el protocolo no debe intentar restringir o prevenir activamente categorías específicas de uso. Todos los mecanismos regulatorios del protocolo deben diseñarse para regular directamente el daño y no tratar de oponerse a aplicaciones específicas indeseables. Un programador puede incluso ejecutar un script en bucle infinito sobre Ethereum mientras esté dispuesto a seguir pagando la tarifa de transacción por paso computacional. - -### Cuentas de Ethereum {#ethereum-accounts} - -En Ethereum, el estado está compuesto por objetos llamados "cuentas", donde cada cuenta tiene una dirección de 20 bytes y transiciones de estado, que son transferencias directas de valor e información entre cuentas. Una cuenta de Ethereum contiene cuatro campos: - -- El **nonce**, un contador utilizado para asegurarse de que cada transacción solo se puede procesar una vez -- El **saldo ether** actual de la cuenta -- El **código de contrato** de la cuenta si está presente -- El **almacenamiento** de la cuenta (vacío por defecto) - -El "Ether" es el principal criptocombustible interno de Ethereum, y se utiliza para pagar las tarifas por transacción. En general, hay dos tipos de cuentas: **cuentas de propiedad externa**, controladas por claves privadas, y **cuentas de contrato**, controladas por su código de contrato. Una cuenta de propiedad externa no tiene código, y uno puede enviar mensajes desde una cuenta de propiedad externa creando y firmando una transacción; en una cuenta de contrato, cada vez que la cuenta de contrato recibe un mensaje, su código se activa, permitiéndola leer y escribir en el almacenamiento interno y enviar otros mensajes o crear contratos uno por uno. - -Obsérvese que los "contratos" en Ethereum no deben ser vistos como algo que debe ser "satisfecho" o "cumplido"; son más bien parecidos a "agentes autónomos" que viven dentro del entorno de ejecución de Ethereum, siempre ejecutando una pieza específica de código cuando un mensaje o transacción les da "un toque", y tienen control directo sobre su propio saldo ether y su propio almacén de clave/valor para hacer un seguimiento de las variables persistentes. - -### Mensajes y transacciones {#messages-and-transactions} - -El término "transacción" se utiliza en Ethereum para referirse al paquete de datos firmados que almacena un mensaje para ser enviado desde una cuenta de propiedad externa. Las transacciones contienen: - -- El destinatario del mensaje -- Una firma que identifica al remitente -- La cantidad de ether a transferir del remitente al destinatario -- Un campo de datos opcional -- Un valor `STARTGAS`, que representa el número máximo de pasos computacionales que se permite ejecuctar a la transacción -- Un valor `GASPRICE`, que representa la tarifa que el remitente paga por paso computacional - -Los tres primeros son campos estándar que se esperan en cualquier criptomoneda. El campo de datos no tiene ninguna función por defecto, pero la máquina virtual tiene un opcode que un contrato puede utilizar para acceder a los datos; como ejemplo de caso de uso, si un contrato está funcionando como un servicio de registro de dominio sobre la blockchain, entonces podría querer interpretar los datos que se le pasan como que contienen dos "campos", el primer campo sería un dominio a registra y el segundo campo es la dirección IP a la cual registrarlo. El contrato leería estos valores de los datos del mensaje y los guardaría adecuadamente en el almacenamiento. - -Los campos `STARTGAS` y `GASPRICE` son cruciales para el modelo antidenegación de servicio de Ethereum. Para prevenir bucles infinitos hostiles o accidentales u otro despilfarro computacional en el código, cada transacción tiene que establecer un límite de cuántos pasos computacionales de ejecución de código puede utilizar. La unidad fundamental de cálculo es el "gas"; en general, un paso computacional cuesta 1 gas, pero algunas operaciones cuestan cantidades más altas de gas porque son más caras computacionalmente o incrementan la cantidad de datos que deben almacenarse como parte del estado. También hay una tarifa de 5 gas por cada byte en los datos de la transacción. La intención del sistema de tarifas es obligar a un atacante a pagar proporcionalmente por cada recurso que consuma, incluyendo la computación, ancho de banda y almacenamiento; por lo tanto, cualquier transacción que lleve a la red a consumir una mayor cantidad de cualquiera de estos recursos debe tener una tarifa de gas aproximadamente proporcional al incremento. - -### Mensajes {#messages} - -Los contratos tienen la capacidad de enviar "mensajes" a otros contratos. Los mensajes son objetos virtuales que nunca se serializan y existen sólo en el entorno de ejecución de Ethereum. Un mensaje contiene: - -- El remitente del mensaje (implícito) -- El destinatario del mensaje -- La cantidad de ether a transferir junto con el mensaje -- Un campo de datos opcional -- Un valor de `STARTGAS` - -En esencia, un mensaje es como una transacción, excepto que la produce un contrato y no un actor externo. Un mensaje se crea cuando un contrato que se encuentra ejecutando código, ejecuta el opcode `CALL`, el cual genera y ejecuta un mensaje. Como en una transacción, un mensaje hace que la cuenta del destinatario ejecute su código. Así, los contratos pueden tener relaciones con otros contratos exactamente de la misma manera que los actores externos pueden hacerlo. - -Nótese que la cantidad de gas asignada por una transacción o contrato se aplica al gas total consumido por esa transacción y a todas sus subejecuciones. Por ejemplo, si un actor externo A envía una transacción a B con 1000 gas, y B consume 600 gas antes de enviar un mensaje a C, y la ejecución interna de C consume 300 gas antes de regresar, entonces B puede gastar otros 100 gas antes de quedarse sin gas. - -### Función de transición de estado de Ethereum {#ethereum-state-transition-function} - -![Transición de estado de Ether](../../../whitepaper/ether-state-transition.png) - -La función de transición de estado `APPLY(S,TX) -> S'` puede definirse como sigue: - -1. Comprobar si la transacción está bien formada (es decir, si tiene el número correcto de valores), la firma es válida, y el nonce coincide con el nonce en la cuenta del remitente. Si no, devuelve un error. -2. Calcular la tarifa de transacción como `STARTGAS * GASPRICE` y determinar la dirección de envío a partir de la firma. Restar la tarifa del saldo de la cuenta del remitente e incrementar el nonce del remitente. Si no hay suficiente saldo para gastar, devolver un error. -3. Inicializar `GAS = STARTGAS` y retirar una cierta cantidad de gas por byte para pagar por los bytes de la transacción. -4. Transferir el valor de la transacción desde la cuenta del remitente a la cuenta receptora. Si la cuenta receptora aún no existe, la crea. Si la cuenta receptora es un contrato, ejecutar el código del contrato hasta su terminación o hasta que la ejecución se quede sin gas. -5. Si la transferencia de valor falla porque el remitente no tenía suficiente dinero o se cabó el gas durante la ejecución del código, revertir todos los cambios de estado excepto el pago de las tarifas, y añadir las comisiones a la cuenta del minero. -6. En caso contrario, devolver las comisiones por todo el gas restante al remitente y enviar las tarifas pagadas por el gas consumido al minero. - -Por ejemplo, supongamos que el código del contrato es: - - if !self.storage[calldataload(0)]: - self.storage[calldataload(0)] = calldataload(32) - -Ten en cuenta que, en realidad, el código del contrato está escrito en el código de bajo nivel de la EVM; este ejemplo está escrito en Serpent, uno de nuestros lenguajes de alto nivel, para mayor claridad, que puede ser compilado a código de la EVM. Supongamos que el almacenamiento del contrato empieza vacío, y se envía una transacción con valor de 10 ether, 2000 gas, 0,001 de precio de gas ether y 64 bytes de datos, con los bytes 0-31 representando el número `2` y los bytes 32-63 representando la cadena `CHARLIE`.[fn. 6](#notes) El proceso para la función de transición de estado en este caso es el siguiente: - -1. Comprobar que la transacción es válida y está bien formada. -2. Comprobar que el remitente de la transacción tiene al menos 2000 \* 0,001 = 2 ether. Si los tiene, restar 2 ether de la cuenta del remitente. -3. Inicializar gas = 2000; suponiendo que la transacción tenga 170 bytes de longitud y que la tarifa por byte sea 5, restar 850 y quedarán 1150 gas. -4. Restar 10 ether más de la cuenta del remitente y añadirlos a la cuenta del contrato. -5. Ejecutar el código. En este caso es simple: comprueba si se utiliza el almacenamiento del contrato en índice `2`, observa que no, por lo que asigna al almacenamiento en el índice `2` el valor `CHARLIE`. Supongamos que esto consume 187 gas, así que la cantidad restante de gas es 1150 - 187 = 963 -6. Añadir 963 \* 0,001 = 0.963 ether de vuelta a la cuenta del remitente y devolver el estado resultante. - -Si no hubiera un contrato en el extremo receptor de la transacción, entonces la tarifa total de transacción sería simplemente igual al `GASPRICE` proporcionado multiplicado por la longitud de la transacción en bytes, y los datos enviados junto a la transacción serían irrelevantes. - -Ten en cuenta que los mensajes funcionan de forma equivalente a las transacciones en términos de revertirse: si la ejecución de un mensaje se queda sin gas, entonces la ejecución del mensaje y todas las demás ejecuciones activadas por esa ejecución, se revierten, pero las ejecuciones padres no necesitan revertirse. Esto significa que es "seguro" para un contrato llamar a otro contrato, como si A llama a B con G gas, entonces se garantiza que la ejecución de A perdería como máximo G gas. Por último, tener en cuenta que hay un opcode, `CREATE`, que crea un contrato; su mecánica de ejecución generalmente es similar a `CALL`, con la excepción de que la salida de la ejecución determina el código del contrato recién creado. - -### Ejecución de código {#code-execution} - -El código en los contratos de Ethereum está escrito en un lenguaje de bajo nivel bytecode basado en pila, conocido como "código de máquina virtual de Ethereum" o "código de la EVM". El código consiste en una serie de bytes, donde cada byte representa una operación. En general, la ejecución del código es un bucle infinito que consiste en ejecutar repetidamente la operación en el contador actual de programa (que comienza en cero) y luego incrementar el contador del programa en uno, hasta que se alcance el final del código o se detecte un error o una instrucción `STOP` o `RETURN`. Las operaciones tienen acceso a tres tipos de espacio en el que almacenar datos: - -- La **pila**, un contenedor «último en entrar, primero en salir» cuyos valores se pueden apilar y retirar -- **Memoria**, un array de bytes expandible infinitamente -- El **almacenamiento** a largo plazo del contrato, un almacén de clave/valor. A diferencia de la pila y la memoria, que se restablecen una vez termina la computación, el almacenamiento persiste a largo plazo. - -El código también puede acceder al valor, remitente y datos del mensaje entrante, así como datos del bloque de cabecera. El código también puede devolver un array de bytes de datos como salida. - -El modelo de ejecución formal de código de la EVM es sorprendentemente simple. Mientras que la máquina virtual de Ethereum está en ejecución, su estado computacional completo se puede definir por la tupla `(estado_del_bloque, transacción, mensaje, código, memoria, pila, pc, gas)`, donde `estado_del_bloque` es el estado global que contiene todas las cuentas e incluye saldos y almacenamiento. Al inicio de cada ronda de ejecución, la instrucción actual se encuentra tomando el `pc`-ésimo byte de `código` (o 0 si `pc >= len(code)`), y cada instrucción tiene su propia definición en términos de como afecta a la tupla. Por ejemplo, `ADD` retira dos elementos de la pila y apila su suma, reduce `gas` en 1 e incrementa `pc` en 1, y `SSSTORE` retira los dos elementos superiores de la pila e inserta el segundo elemento en el almacenamiento del contrato en el índice especificado por el primer elemento. Aunque hay muchas maneras de optimizar la ejecución de la máquina virtual de Ethereum mediante la compilación en tiempo de ejecución, una implementación básica de Ethereum puede hacerse en unos pocos cientos de líneas de código. - -### Blockchain y minería {#blockchain-and-mining} - -![Ethereum aplica diagrama de bloque](../../../whitepaper/ethereum-apply-block-diagram.png) - -La blockchain de Ethereum es en muchas maneras similar a la blockchain de Bitcoin, aunque tiene algunas diferencias. La diferencia principal entre Ethereum y Bitcoin en relación a la arquitectura blockchain es que, a diferencia de Bitcoin (que solo contiene una copia de la lista de la transacciones), los bloques de Ethereum contienen una copia tanto de la lista de transacciones como del estado más reciente. Aparte, hay dos valores, el número de bloque y la dificultad, que también se almacenan en el bloque. El algoritmo básico de validación de bloque en Ethereum es el siguiente: - -1. Comprobar si el bloque anterior referenciado existe y es válido. -2. Comprobar que la marca temporal del bloque es mayor que la del bloque anterior referenciado e inferior a 15 minutos en el futuro -3. Comprobar que el número de bloque, dificultad, raíz de la transacción, raíz "uncle" límite de gas (diversos conceptos específicos de bajo nivel de Ethereum) son válidos. -4. Comprobar que la prueba de trabajo del bloque es válida. -5. Dejar que `S[0]` sea el estado al final del bloque anterior. -6. Sea `TX` es la lista de transacciones del bloque, con `n` transacciones. Para todo `i` en `0...n-1`, asignar `S[i+1] = APPLY(S[i],TX[i])`. Si cualquier aplicación devuelve un error, o si el gas total consumido en el bloque hasta este punto excede el `GASLIMIT`, devolver un error. -7. Hacer que `S_FINAL` sea `S[n]`, pero añadiendo la recompensa de bloque pagada al minero. -8. Comprobar si la raíz del árbol Merkle del state `S_FINAL` es igual a la raiz del estado final proporcionada en la cabecera del bloque. Si es así, el bloque es válido; de lo contrario, no es válido. - -El enfoque puede parecer muy ineficiente a primera vista, porque necesita almacenar todo el estado con cada bloque, pero en realidad la eficiencia debe ser comparable a la de Bitcoin. La razón es que el estado se almacena en la estructura del árbol, y después de cada bloque sólo una pequeña parte del árbol necesita ser modificada. Por lo tanto, en general, entre dos bloques adyacentes la inmensa mayoría del árbol debe ser idéntico, y por lo tanto los datos pueden ser almacenados una vez y referenciados dos veces usando punteros (esto es, hashes de los subárboles). Un tipo especial de árbol conocido como "árbol Patricia" se utiliza para lograr esto incluyendo una modificación al concepto de árbol Merkle que permite que se inserten y eliminen nodos, y no solo que se cambien, de forma eficiente. Además, dado que toda la información de estado es parte del último bloque, no hay necesidad de almacenar todo el historial de la blockchain, una estrategia que, si se pudiera aplicar a Bitcoin, se calcular que proporcionaría entre 5-20 veces de ahorro de espacio. - -Una pregunta habitual es "dónde" se ejecuta el código del contrato, en términos del hardware físico. Esto tiene una respuesta simple: el proceso de ejecución del código del contrato es parte de la definición de la función de transición de estado, que es parte del algoritmo de validación de bloques, así que si una transacción se añade al bloque `B`, la ejecución del código generada por esa transacción se ejecutará por todos los nodos, ahora y en el futuro, que descarguen y validen el bloque `B`. - -## Aplicaciones {#applications} - -En general, hay tres tipos de aplicaciones sobre Ethereum. La primera categoría son las aplicaciones financieras, que ofrecen a los usuarios formas más potentes de gestionar y suscribir contratos con su dinero. Esto incluye submonedas, derivados financieros, contratos de cobertura, carteras de ahorros, testamentos e incluso, en última instancia, algunas clases de contratos de empleo a gran escala. La segunda categoría son aplicaciones semifinancieras en las que el dinero está presente, pero también hay una destacada parte no monetaria junto a lo que se está haciendo; un ejemplo perfecto son las recompensas autoaplicadas a soluciones a problemas computacionales. Por último, hay aplicaciones como el voto en línea y el gobierno descentralizado que no son en absoluto financieras. - -### Sistemas de Token {#token-systems} - -Los sistemas de tokens en blockchain tienen muchas aplicaciones que van desde submonedas que representan activos como el USD o el oro, hasta acciones de empresas, tokens individuales que representan una propiedad inteligente, cupones seguros infalsificables, e incluso sistemas de tokens sin ningún vínculo con un valor convencional en absoluto, utilizados como sistemas de puntos para incentivos. Los sistemas de token son sorprendentemente fáciles de implementar en Ethereum. El punto clave a entender es que una moneda, o sistema de token, de forma fundamental es una base de datos con una operación: restar X unidades de A y dar X unidades a B, con la disposición de que (1) A tuviera al menos X unidades antes de la transacción y (2) que la transacción sea aprobada por A. Todo lo que se necesita para implementar un sistema de token es implementar esta lógica en un contrato. - -El código básico para implementar un sistema de token en Serpent tiene este aspecto: - - def send(to, value): - if self.storage[msg.sender] >= value: - self.storage[msg.sender] = self.storage[msg.sender] - value - self.storage[to] = self.storage[to] + value - -Esta es en esencia una implementación literal de la función de transición de estado de un "sistema bancario" descrita más arriba en este documento. Hay que añadir algunas líneas de código adicionales para crear en primer lugar el paso inicial en el que se distribuyen las unidades de moneda y otros casos extremos, e idealmente se añadiría una función para permitir que otros contratos puedan consultar el saldo de una dirección. Pero eso es todo lo que hay que hacer. En teoría, los sistemas de token basados en Ethereum que actúan como submonedas pueden incluir potencialmente otra característica importante de la que carecen las metamonedas basadas en la cadena de Bitcoin: la capacidad de pagar las tarifas de transacción directamente en esa moneda. La forma en que se implementaría esto sería haciendo que el contrato mantendría un saldo de ether con el cual reembolsaría el ether utilizado para pagar comisiones al remitente, y recargaría este saldo recolectando las unidades de moneda interna que cobra en tarifas y revenderlas en una subasta en ejecución constante. Así, los usuarios necesitarían "activar" sus cuentas con ether, pero una vez que el ether está ahí, sería reutilizable porque el contrato lo reembolsaría cada vez. - -### Derivados financieros y monedas de valor estable {#financial-derivatives-and-stable-value-currencies} - -Los derivados financieros son la aplicación más común de un "contrato inteligente", y uno de los más sencillos de implementar en código. El desafío principal al implementar contratos financieros es que la mayoría de ellos requieren referencia a un teletipo de precio externo; por ejemplo, una aplicación muy deseable es un contrato inteligente que protege contra la volatilidad del ether (u otra criptomoneda) con respecto al dólar estadounidense, pero para hacer esto es necesario que el contrato sepa cuál es el cambio de ETH/USD. La forma más sencilla de hacer esto es a través de un contrato de "fuente de datos" gestionado por una entidad específica (p. ej., NASDAQ), y diseñado para que esa entidad tenga la capacidad de actualizar el contrato según sea necesario y que proporcione una interfaz que permite a otros contratos enviar un mensaje a ese contrato y recuperar una respuesta que proporcione el precio. - -Dado dicho ingrediente crítico, el contrato de cobertura sería siguiente: - -1. Esperar a que la parte A introduzca 1000 ether. -2. Esperar a que la parte B introduzca 1000 ether. -3. Almacenar el valor de 1000 ether en USD, calculados mediante consulta al contrato de fuente de datos, en el almacenamiento, digamos que es $x. -4. Después de 30 días, permitir a A o B "reactivar" el contrato para enviar $x en ether (calculado mediante consulta al contrato de la fuente de datos para obtener el nuevo precio) a A y el resto a B. - -Un contrato así tendría un gran potencial en el comercio en criptomonedas. Uno de los problemas principales que se citan sobre las criptomonedas es el hecho de que son volátiles; aunque muchos usuarios y comerciantes pueden querer la seguridad y conveniencia de operar con activos criptográficos, tal vez no quieran enfrentarse a la perspectiva de perder el 23 % del valor de sus fondos en un solo día. Hasta ahora, la solución más propuesta ha sido la de activos respaldados por emisores; la idea es que un emisor crea una submoneda en la que tiene derecho a emitir y retirar unidades, y proporcionar una unidad de la moneda a cualquiera que les proporcione (fuera de línea) una unidad de un activo subyacente especificado (p. ej., oro, USD). A continuación, el emisor se compromete a proporcionar una unidad del activo subyacente a cualquiera que envíe de vuelta una unidad del criptoactivo. Este mecanismo permite que cualquier activo no criptográfico se "eleve" a activo criptográfico, siempre que se pueda confiar en el emisor. - -En la práctica, sin embargo, los emisores no siempre son fiables, y en algunos casos la infraestructura bancaria es demasiado débil o demasiado hostil para que estos servicios existan. Los derivados financieros ofrecen una alternativa. Aquí, en lugar de un único emisor que proporciona los fondos para respaldar un activo, un mercado descentralizado de especuladores que apuestan a que el precio de un activo criptográfico de referencia (p. ej., ETH) subirá, desempeñará ese papel. A diferencia de los emisores, los especuladores no tienen la opción de suspender pagos en su parte del acuerdo, porque el contrato de cobertura mantiene sus fondos en fideicomiso. Nótese que este enfoque no está completamente descentralizado, dado que todavía se necesita una fuente de confianza para proporcionar el teletipo de precios, aunque presumiblemente incluso esto es una mejora enorme en términos de reducción de requisitos de infraestructura (a diferencia de ser un emisor, la emisión de una fuente de precios no requiere ninguna licencia y es probable que se pueda categorizar dentro de la libre expresión) y reducción del riesgo de fraude. - -### Sistemas de identidad y reputación {#identity-and-reputation-systems} - -La primera de todas las criptomonedas alternativas, [Namecoin](http://namecoin.org/), intentó usar una blockchain de tipo Bitcoin para proporcionar un sistema de registro de nombres, donde los usuarios pueden registrar sus nombres en una base de datos pública junto con otros datos. El caso de uso más citado es para un sistema [DNS](https://wikipedia.org/wiki/Domain_Name_System), que asigna nombres de dominio como "bitcoin.org" (o, en el caso de Namecoin, "bitcoin.bit") a una dirección IP. Otros casos de uso incluyen autenticación de correo electrónico y sistemas de reputación potencialmente más avanzados. Este es el contrato básico para proporcionar un sistema de registro de nombres similar a Namecoin en Ethereum: - - def register(name, value): - if !self.storage[name]: - self.storage[name] = value - -El contrato es muy sencillo; es tan solo una base de datos dentro de la red de Ethereum a la que se puede añadir datos, pero no modificarlos ni eliminarlos. Cualquiera puede registrar un nombre asignando cierto valor, y ese registro se queda para siempre. Un contrato de registro de nombres más sofisticado también tendrá una "función de cláusula" que permitiría a otros contratos consultarla, así como un mecanismo para que el "propietario" (es decir, el primer registrador) de un nombre pueda cambiar los datos o transferir la propiedad. Se puede incluso añadir reputación y funcionalidad «web-of-trust» por encima. - -### Almacenamiento de archivos descentralizado {#decentralized-file-storage} - -En los últimos años, han surgido una serie de empresas emergentes populares para almacenar archivos en línea, siendo Dropbox la más destacada, que buscan permitir a los usuarios subir una copia de seguridad de su disco duro y tener un servicio de copia de seguridad y permitir al usuario acceder a este a cambio de una cuota mensual. En este momento, sin embargo, el mercado de almacenamiento de archivos es a veces relativamente ineficiente; una mirada rápida a varias [soluciones existentes](http://online-storage-service-review.toptenreviews.com/) lo muestra, particularmente en el nivel de "valle inquietante" entre 20-200 GB, en el que ni se activan las cuotas gratuitas ni los descuentos de nivel empresarial, los precios mensuales del coste de almacenamiento de archivos son tan elevados que se paga más de lo que cuesta todo el disco duro en un solo mes. Los contratos de Ethereum pueden permitir el desarrollo de un ecosistema de almacenamiento de archivos descentralizado, donde los usuarios individuales pueden ganar pequeñas cantidades de dinero alquilando sus propios discos duros y el espacio no utilizado puede utilizarse para reducir aún más el coste del almacenamiento de archivos. - -La pieza clave fundamental de dicho dispositivo sería lo que hemos llamado el "contrato Dropbox descentralizado". Este contrato funciona como se indica a continuación. Primero, se dividen los datos deseados en bloques, cifrando cada bloque por privacidad, y se construye un árbol de Merkle a partir de ellos. Se crea entonces un contracto con la regla de que cada N bloques, el contrato elegirá un índice aleatorio en el árbol de Merkle (usando el hash del bloque anterior, accesible desde el código del contrato, como fuente de aleatoriedad), y dará X ether a la primera entidad que proporcione una transacción con una prueba de propiedad similar a la verificación de pago simplificado del bloque para ese índice específico del árbol. Cuando un usuario quiere volver a descargar su archivo, puede utilizar un protocolo de canal de micropago (p. ej., pagar 1 szabo por cada 32 kilobytes) para recuperar el archivo; la forma más eficiente de tarificación es que el pagador no publique la transacción hasta el final, y en su lugar reemplace la transacción por una ligeramente más lucrativa con el mismo nonce tras cada 32 kilobytes. - -Una característica importante del protocolo es que, aunque puede parecer que se confía en que muchos nodos aleatorios decidan no olvidar el archivo, se puede reducir ese riesgo a casi cero dividiendo el archivo en muchas piezas a través del compartido secreto, y observar los contratos para ver que cada pieza sigue en posesión de algunos nodos. Si un contrato sigue pagando dinero, esto proporciona una prueba criptográfica de que alguien todavía está almacenando el archivo. - -### Organizaciones autonómas descentralizadas {#decentralized-autonomous-organizations} - -El concepto general de una "organización autónoma descentralizada" (DAO por sus siglas en inglés) es el de una entidad virtual que tiene cierto número de miembros o accionistas que, quizás con una mayoría del 67 %, tienen el derecho a gastar los fondos de la entidad y modificar su código. Los miembros decidirían colectivamente el modo en el que la organización debe destinar sus fondos. Los métodos para destinar los fondos de una DAO podrían variar, desde recompensas y sueldos hasta mecanismos más exóticos, como una moneda interna para recompensar el trabajo. Esto esencialmente replica los elementos legales de una empresa tradicional o sin fines de lucro, pero utiliza solo tecnología criptográfica de blockchain para su cumplimiento. Hasta ahora, gran parte de las conversaciones alrededor de las DAO han tratado acerca del modelo "capitalista" de una "corporación autónoma descentralizada" (DAC por sus siglas en inglés), con accionistas que reciben dividendos y acciones negociables; una alternativa, tal vez descrita como una "comunidad autónoma descentralizada", haría que todos los miembros tuvieran una parte idéntica en la toma de decisiones y requeriría que el 67 % de los miembros existentes aceptaran agregar o eliminar un miembro. El requisito de que una persona puede ser miembro solo una vez necesitaría ser impuesto colectivamente por el grupo. - -Un esquema general de cómo implementar un DAO es el siguiente. El diseño más simple es simplemente una sección de código automodificable que cambia si dos tercios de los miembros están de acuerdo en un cambio. Aunque el código es teóricamente inmutable, esto se puede eludir fácilmente y tener mutabilidad de facto al tener fragmentos del código en contratos separados, y teniendo la dirección de a qué contratos llamar guardados en el almacenamiento modificable. En una implementación simple de dicho contrato DAO, habría tres tipos de transacción, diferenciadas por los datos proporcionados en la transacción: - -- `[0,i,K,V]` para registrar una propuesta con índice `i` para cambiar la dirección en el índice de almacenamiento `K` al valor `V` -- `[1,i]` para registrar un voto a favor de la propuesta `i` -- `[2,i]` para finalizar la propuesta `i` si tiene los suficientes votos - -El contrato tendría entonces cláusulas para cada una de ellas. Mantendría un registro de todos los cambios de almacenamiento abiertos, junto con una lista de quienes han votado por ellos. También tendría una lista de todos los miembros. Cuando cualquier cambio de almacenamiento alcanza el voto de dos tercios de los miembros, una transacción finalizadora podría ejecutar el cambio. Un esquema más sofisticado también tendría capacidad de voto incorporada para funciones tales como el envío de una transacción, añadir y borrar miembros, e incluso puede proporcionar una delegación de votos tipo [Democracia líquida](https://es.wikipedia.org/wiki/Democracia_l%C3%ADquida) (p. ej. cualquiera puede asignar a alguien para votar por él, y dicha asignación es transitiva, de modo que si A asigna a B y B asigna a C, entonces C determina el voto de A). Este diseño permitiría que la DAO crezca orgánicamente como una comunidad descentralizada, permitiendo a la gente a eventualmente delegar la tarea de filtrar quién sería miembro a especialistas, aunque a diferencia de lo que ocurre en el "sistema actual", los especialistas pueden aparecer y desaparecer a medida que los miembros individuales cambian sus posicionamientos. - -Hay un modelo alternativo para una corporación descentralizada, donde cualquier cuenta puede tener cero o más acciones, y se necesitan dos tercios de las acciones para tomar una decisión. Un esquema completo implicaría una función de gestión de activos, la posibilidad de hacer una oferta de compraventa de acciones y la capacidad de aceptar ofertas (preferiblemente con un mecanismo de casamiento de órdenes dentro del contrato). La delegación también existiría al estilo de la democracia líquida, generalizando el concepto de un "consejo directivo". - -### Otras aplicaciones {#further-applications} - -**1. Carteras de ahorro**. Supongamos que Alice quiere mantener sus fondos a salvo, pero le preocupa perder su clave privada o que alguien la hackee. Entonces pone ether en un contrato con Bob, un banco, como sigue: - -- Alice solo puede retirar un máximo del 1 % de los fondos por día. -- Bob por su parte solo puede retirar un máximo del 1 % de los fondos por día, pero Alice tiene la habilidad de hacer una transacción con su clave que elimine esta capacidad. -- Alice y Bob juntos pueden retirar cualquier cantidad. - -Normalmente, el 1 % diario es suficiente para Alice, y si Alice quiere retirar más, puede contactar con Bob para que le ayude. Si la clave de Alice es hackeada, se dirige a Bob con celeridad para trasladar los fondos a un nuevo contrato. Si pierde su clave, Bob podrá sacar los fondos eventualmente. Si Bob resulta ser malicioso, ella puede desactivar su capacidad para retirar fondos. - -**2. Seguro de cosecha**. Se puede hacer fácilmente un contrato de derivados financieros usando una fuente de datos meteorológicos en lugar de cualquier índice de precios. Si un agricultor de Iowa compra un derivado que paga a la inversa de acuerdo a la precipitación de Iowa, entonces si hay una sequía, el agricultor recibirá automáticamente dinero y, si llueve lo suficiente, el agricultor estará contento porque a sus cultivos les va a ir bien. Esto puede ampliarse a los seguros de desastres naturales en general. - -**3. Una fuente de datos descentralizada**. Para contratos financieros por diferencias, podría ser posible descentralizar la fuente de datos a través de un protocolo llamado [SchellingCoin](http://blog.ethereum.org/2014/03/28/schellingcoin-a-minimal-trust-universal-data-feed/). SchellingCoin funciona básicamente de la siguiente manera: N partes introducen en el sistema el valor de un ato determinado (p. ej. el precio del ETH/USD), los valores están ordenados, y todos aquellos entre el percentil 25 y el 75 obtienen un token como recompensa. Todo el mundo tiene el incentivo para proporcionar la respuesta que todos los demás les proporcionarán, y el único valor en el que un gran número de jugadores pueden estar de acuerdo de forma realista es el valor obvio por defecto: el verdadero. Esto crea un protocolo descentralizado que puede proporcionar teóricamente cualquier número de valores, incluidos el precio del ETH/USD, la temperatura en Berlín o incluso el resultado de un cálculo particularmente difícil. - -**4. Fideicomiso multifirma inteligente**. Bitcoin permite contratos de transacción multifirma donde, por ejemplo, tres de las cinco claves dadas pueden gastar los fondos. Ethereum permite más granularidad; por ejemplo, cuatro de cada cinco pueden gastarlo todo, tres de cada cinco pueden gastar hasta un 10 % al día y dos de cada cinco pueden gastar hasta 0,5 % al día. Además, la multifirma de Ethereum es asíncrona: dos partes pueden registrar sus firmas en la blockchain en diferentes momentos y la última firma enviará automáticamente la transacción. - -**5. Computación en la nube**. La tecnología EVM también puede utilizarse para crear un entorno de computación verificable que permite a los usuarios pedir a otros que realicen cálculos y, opcionalmente, pedir pruebas de que los cálculos en ciertos puntos de control seleccionados aleatoriamente se realizaron correctamente. Esto permite la creación de un mercado de computación en la nube donde cualquier usuario puede participar con su escritorio, portátil o servidor especializado, y el control por muestreo junto con depósitos de seguridad se pueden usar para asegurar que el sistema es de confianza (es decir, los nodos no pueden hacer trampa fructuosamente). Aunque tal sistema puede no ser adecuado para todas las tareas; las tareas que requieren un alto nivel de comunicación entre procesos, por ejemplo, no pueden ejecutarse fácilmente en una nube grande de nodos. Otras tareas, sin embargo, son mucho más fáciles de paralelizar; proyectos como SETI@home, folding@home y algoritmos genéticos pueden implementarse fácilmente sobre una plataforma de este tipo. - -**6. Apuestas entre pares**. Cualquier cifra de protocolos de apuestas entre pares, tal y como [ Cyberdice](http://www.cl.cam.ac.uk/~fms27/papers/2008-StajanoCla-cyberdice.pdf) de Frank Stajano y Richard Clayton, pueden implementarse en la blockchain de Ethereum. El protocolo de apuestas más simple en realidad es simplemente un contrato por diferencias en el siguiente hash de bloque, y a partir de ahí pueden construirse protocolos más avanzados, creando servicios de apuestas con tarifas cercanas a cero en donde no hay la posibilidad de hacer trampas. - -**7. Mercados de predicciones**. Habiendo un oráculo o SchellingCoin, los mercados de predicciones también son fáciles de implementar, y los mercados de predicciones junto con SchellingCoin podrían resultar en la primera aplicación de la [futarquía](http://hanson.gmu.edu/futarchy.html) como protocolo de gobierno para organizaciones descentralizadas. - -**8. Mercados descentralizados sobre la cadena**, usando el sistema de identidad y de reputación como base. - -## Miscelánea y dudas {#miscellanea-and-concerns} - -### Implementación de GHOST modificada {#modified-ghost-implementation} - -El protocolo del "subárbol observado voraz más pesado" (en inglés: Greedy Heaviest Observed Subtree, GHOST) es una innovación presentada por primera vez por Yonatan Sompolinsky y Aviv Zohar en [diciembre de 2013](https://eprint.iacr.org/2013/881.pdf). La motivación detrás de GHOST es que las blockchains con tiempos de confirmación rápidos actualmente sufren de una menor seguridad debido a una alta tasa de obsolescencia: puesto que los bloques tardan un cierto tiempo en propagarse a través de la red, si el minero A extrae un bloque y luego el minero B extrae otro bloque antes de que el bloque del minero A se propague a B, el bloque del minero B se desperdiciará y no contribuirá a la seguridad de la red. Además, hay un problema de centralización: si el minero A es una pool de minado con un 30 % de potencia de hash y el minero B tiene un 10 % de potencia de hash, el minero A tendrá el riesgo de producir un bloque obsoleto un 70 % del tiempo (ya que el 30 % restante del tiempo, el minero A produjo el último bloque y también obtendrá datos de minado inmediatamente) mientras que el minero B tendrá el riesgo de producir un bloque obsoleto 90 % del tiempo. Por tanto, si el intervalo de bloque es lo suficientemente corto como para que la tasa de obselescencia sea alta, A será sustancialmente más eficiente simplemente en virtud de su tamaño. Con estos dos efectos combinados, es muy probable que las blockchains que producen bloques rápidamente, hagan que una pool de minado, que tenga un porcentaje lo suficientemente grande de la potencia de hash de red, acabe teniendo el control de facto sobre el proceso de minado. - -Como describen Sompolinsky y Zohar, GHOST resuelve el primer problema de pérdida de seguridad de red al incluir bloques obsoletos en el cálculo de qué cadena es la "más larga"; es decir, no solo el padre y los ancestros adicionales de un bloque, sino que también los descendientes obsoletos del ancestro del bloque (en jerga de Ethereum, "uncles", es decir, tíos) se añaden al cálculo de qué bloque tiene la prueba de trabajo total más grande respaldándola. Para resolver el segundo problema del sesgo de la centralización, vamos más allá del protocolo descrito por Sompolinsky y Zohar, y también proporcionamos recompensas de bloque a los obsoletos: un bloque obsoleto recibe el 87,5 % de su recompensa base, y el sobrino que incluye el bloque obsoleto recibe el 12,5 % restante. Sin embargo, las tasas de transacción no se otorgan a los uncles. - -Ethereum implementa una versión simplificada de GHOST que solo desciende siete niveles. Concrétamente, se define como sigue: - -- Un bloque debe especificar un padre, y debe especificar 0 o más uncles -- Un uncle incluido en el bloque `B` debe tener las siguientes propiedades: -- Debe ser un hijo directo del antepasado del ancestro de generación `k`-ésima de `B`, donde `2 <= k <= 7`. -- No puede ser un ancestro de `B` -- Un uncle debe ser una cabecera de bloque válido, pero no necesita ser un bloque previamente verificado o incluso válido -- Un uncle debe ser diferente de todos los uncles incluidos en bloques anteriores y todos los demás uncles incluidos en el mismo bloque (no doble inclusión) -- Por cada uncle `U` en el bloque `B`, el minero de `B` recibe un 3,125 % adicional que se añade a su recompensa de coinbase y el minero de U obtiene el 93,75 % de una recompensa estándar de coinbase. - -Esta versión limitada de GHOST, que permite incluir uncles hasta un límite de 7 generaciones, se utilizó por dos razones. La primera, GHOST ilimitado incluiría demasiadas complicaciones en el cálculo de que uncles para un bloque determinado son válidos. La segunda, GHOST ilimitado con compensación como se usa en Ethereum elimina el incentivo de un minero para minar en la cadena principal y no la cadena de un atacante público. - -### Tarifas {#fees} - -Puesto que cada transacción publicada en la blockchain impone a la red el coste de la necesidad de descargarla y verificarla, es necesario algún mecanismo regulatorio, que normalmente implica tarifas de transacción, para prevenir abusos. El enfoque por defecto, utilizado en Bitcoin, es tener únicamente comisiones voluntarias, dependiendo de los mineros para que actúen como los guardianes y establezcan mínimos dinámicos. Este enfoque ha sido recibido muy favorablemente en la comunidad de Bitcoin, en particular porque está "basado en el mercado", permitiendo la oferta y la demanda entre los mineros y los remitentes de transacciones determinen el precio. El problema con esta forma de razonar es, no obstante, que el procesado de transacciones no es un mercado; aunque es intuitivamente atractivo interpretar el procesado de transacciones como un servicio que el que el minero ofrece al remitente, en realidad cada transacción que incluye un minero tendrá que ser procesada por todos los nodos de la red. por lo que la gran mayoría del coste del procesado de las transacciones es asumido por terceras partes y no el minero que está tomando la decisión de incluirla o no. Por lo tanto, es muy probable que ocurren problemas de la tragedia de los comunes. - -Sin embargo, resulta que este defecto en el mecanismo basado en el mercado, cuando se da un supuesto simplificador inexacto en particular, mágicamente se cancela. El argumento es el siguiente. Supongamos que: - -1. Una transacción conduce a `k` operaciones, ofreciendo la recompensa `kR` a cualquier minero que la incluya, donde `R` lo establece el remitente y `k` y `R` son (aproximadamente) visibles para el minero de antemano. -2. Una operación tiene un coste de procesamiento de `C` para cualquier nodo (es decir, todos los nodos tienen la misma eficiencia) -3. Hay `N` nodos de minado, cada uno con exactamente la misma potencia de procesamiento (es decir, `1/N` del total) -4. No existen nodos completos que no minen. - -Un minero estará dispuesto a procesar una transacción si la recompensa esperada es mayor que el coste. Por lo tanto, la recompensa esperada es de `kR/N` ya que el minero tiene una probabilidad de `1/N` de procesar el siguiente bloque, y el coste de procesamiento para el minero es simplemente `kC`. Por lo tanto, los mineros incluirán transacciones donde se cumpla que `kR/N > kC`, o `R > NC`. Nótese que `R` es la tarifa por operación proporcionada por el remitente y es por lo tanto un límite inferior al beneficio que el remitente obtiene de la transacción, y `NC` es el coste para toda la red del procesamiento de una operación. Por lo tanto, los mineros tienen el incentivo de incluir solo aquellas transacciones en las que el beneficio utilitario total supere al coste. - -Sin embargo, hay varias divergencias importantes de esas suposiciones en la realidad: - -1. El minero paga un coste mayor para procesar la transacción que otros nodos de verificación, ya que el tiempo de verificación adicional retrasa la propagación del bloque y por lo tanto aumenta la probabilidad de que el bloque se convierta en caducado. -2. Existen nodos completos que no minan. -3. La distribución de potencia de minado puede acabar siendo radicalmente desigualitaria en la práctica. -4. Los especuladores, enemigos políticos y dementes, cuya función de utilidad incluye causar daño a la red, existen y pueden establecer hábilmente contratos cuyo coste es mucho menor que el coste pagado por otros nodos de verificación. - -(1) proporciona una tendencia al minero a que incluya menos transacciones, e (2) incrementa `NC`; por lo tanto, estos dos efectos al menos parcialmente se cancelan entre sí.[¿Cómo?](https://github.com/ethereum/wiki/issues/447#issuecomment-316972260) (3) y (4) son el principal problema; para resolverlos, simplemente fijamos un límite reajustable: ningún bloque puede tener más operaciones que `BLK_LIMIT_FACTOR` veces el promedio de la media móvil exponencial a largo plazo. Específicamente: - - blk.oplimit = floor((blk.parent.oplimit \* (EMAFACTOR - 1) + - floor(parent.opcount \* BLK\_LIMIT\_FACTOR)) / EMA\_FACTOR) - -`BLK_LIMIT_FACTOR` y `EMA_FACTOR` son constantes que se les asignará respectivamente los valores 65 536 y 1,5 por el momento, pero probablemente se cambiará después de un análisis más en detalle. - -Hay otro factor que desincentiva los tamaños de bloques grandes en Bitcoin: los bloques grandes tardarán más en propagarse y por lo tanto tienen una mayor probabilidad de convertirse en caducados. En Ethereum, los bloques que consumen mucho gas también pueden tardar más en propagarse porque son físicamente más grandes y porque tardan más en procesar las transiciones del estado de la transacción para validarla. Este desincentivo por el retraso es una consideración significativa en Bitcoin, pero menos en Ethereum gracias al protocolo GHOST; por lo tanto, depender de límites de bloques regulados proporciona una base de referencia más estable. - -### Computación y completitud Turing {#computation-and-turing-completeness} - -Un apunte importante es que la máquina virtual de Ethereum es Turing-completa; esto significa que el código EVM puede codificar cualquier cómputo que se pueda llevar a cabo, incluyendo bucles infinitos. El código de EVM permite hacer bucles de dos maneras. En primer lugar, hay una instrucción `JUMP` que permite al programa saltar a un punto anterior del código, y una instrucción `JUMPI` para hacer saltos condicionales, lo que permite instrucciones como `while x < 27: x = x * 2`. En segundo lugar, los contratos pueden llamar a otros contratos, permitiendo potencialmente hacer bucles a través de la recursividad. Esto naturalmente conduce a un problema: ¿pueden los usuarios maliciosos esencialmente apagar a mineros y nodos completos obligándolos a entrar en un bucle infinito? El problema surge debido a un problema en las ciencias de la computación, conocido como el problema de la parada: no hay manera de determinar, en el caso general, si un programa dado se detendrá o no. - -Como se describe en la sección de transición de estados, nuestra solución funciona requiriendo que una transacción establezca un número máximo de pasos computacionales que se le permitirá ejecutar, y si la ejecución requiere de más cómputo, se revierte pero las comisiones aún así hay que pagarlas. Los mensajes funcionan del mismo modo. Para mostrar la motivación detrás de nuestra solución, consideremos los siguientes ejemplos: - -- Un atacante crea un contrato que ejecuta un bucle infinito, y a continuación envía una transacción que activa ese bucle al minero. El minero procesará la transacción, ejecutará el bucle infinito y esperará a que se quede sin gas. A pesar de que la ejecución se queda sin gas y se detiene a media ejecución, la transacción sigue siendo válida y el minero sigue recibiendo la tarifa del atacante por cada paso computacional. -- Un atacante crea un bucle infinito muy largo con la intención de forzar al minero a mantener la computación durante tanto tiempo que para el momento que la computación termina, habrán surgido varios bloques más y no será posible que el minero incluya la transacción para reclamar la tarifa. Sin embargo, el atacante tendrá que enviar un valor para `STARTGAS`, que limita el número de pasos computacionales que puede realizar la ejecución, así el minero sabrá por adelantado que la computación llevará un número excesivamente grande de pasos. -- Un atacante contempla un contrato con código similar a `send(A,contract.storage[A]); contract.storage[A] = 0`, y envía una transacción con el gas suficiente para ejecutar el primer paso pero no el segundo (es decir, hacer un retiro pero no dejar que el saldo se reduzca). El autor del contrato no necesita preocuparse por protegerse contra estos ataques, porque si la ejecución se detiene sin concluir, los cambios se revierten. -- Un contrato financiero funciona tomando la mediana de nueve fuentes de datos propietarias para minimizar el riesgo. Un atacante se apodera de una de las fuentes de datos, que está diseñada para ser modificable a través del mecanismo de llamada de dirección variable descrito en la sección sobre DAOs, y lo transforma para que ejecute un bucle infinito, tratando así de forzar que se quede sin gas cualquier intento de retirar fondos del contrato financiero. Sin embargo, el contrato financiero puede establecer un límite de gas en el mensaje para prevenir este problema. - -La alternativa a la completitud Turing es la incompletitud Turing, donde `JUMP` y `JUMPI` no existen y solo se permite que exista una copia de cada contrato en la pila de llamadas en un momento dado. Con este sistema, el sistema de tarifas descrito y las incertidumbres alrededor de la efectividad de nuestra solución podrían ser innecesarias, ya que el coste de ejecutar un contrato tendría el límite superior establecido por su tamaño. Adicionalmente, la incompletitud Turing no es ni siquiera una limitación tan grande; de todos los ejemplos de contrato que hemos concebido internamente, hasta ahora solo uno requiere de un bucle, e incluso ese bucle se podría eliminar haciendo 26 repeticiones de un fragmento de código de una línea. Dadas las serias implicaciones de la completitud Turing y su beneficio limitado, ¿por qué no sencillamente tener un lenguaje Turing-incompleto? En realidad, sin embargo, la incompletitud Turing dista de ser una solución idónea al problema. Para ver por qué, consideremos los siguientes contratos: - - C0: llamada(C1); llamada(C1); - C1: llamada(C2); llamada(C2); - C2: llamada(C3); llamada(C3); - ... - C49: llamada (C50); llamada(C50); - C50: (ejecutar un paso de un programa y guardar el cambio en el almacenamiento) - -Ahora, enviar una transacción a A. Así, en 51 transacciones, tenemos un contrato que ejecutaría 250 pasos computacionales. Los mineros podrían intentar detectar estas bombas lógicas por adelantado manteniendo un valor junto a cada contrato que especifique el número máximo de pasos computacionales que pueden realizar, y calculando esto para contratos que llaman a otros contratos recursivamente, pero eso requeriría que los mineros prohíban contratos que creen otros contratos (ya que la creación y ejecución de los 26 contratos anteriores se podría agrupar fácilmente en un único contrato). Otro punto problemático es que el campo de dirección de un mensaje es una variable, por lo que en general podría ni siquiera ser posible saber a qué otros contratos llamará con antelación un contrato dado. Por lo tanto, en resumen tenemos una conclusión sorprendente: la completidud Turing es sorprendentemente fácil de gestionar, y la falta de completidud Turing es al igual sorprendentemente difícil de gestionar a menos que existan exactamente los mismos controles, pero en ese caso, ¿por qué no dejar que el protocolo sea sin más Turing-completo? - -### Moneda y emisión monetaria {#currency-and-issuance} - -La red Ethereum incluye su propia moneda incorporada: ether, el cual cumple el doble propósito de proporcionar una capa de liquidez primaria para permitir un intercambio eficiente entre varios tipos de activos digitales y, aún más importante, el proporcionar un mecanismo para pagar tarifas de transacción. Para comodidad y para evitar futuras discusiones (ver el debate actual mBTC/uBTC/satoshi en Bitcoin), las denominaciones se preetiquetarán: - -- 1: wei -- 1012: szabo -- 1015: finney -- 1018: ether - -Esto se debe tomar como una versión expandida del concepto de "dólares" y "centavos" o "BTC" y "satoshi". En un futuro cercano, esperamos que "ether" se utilice para transacciones ordinarias, "finney" para microtransacciones y "szabo" y "wei" para análisis técnicos relativos a las tarifas e implementación de protocolos; las denominaciones restantes pueden ser útiles más tarde y no deben ser incluidas en los clientes en este punto. - -El modelo de emisión será el siguiente: - -- El Ether se lanzará en una venta de moneda al precio de 1000-2000 ether por BTC, un mecanismo destinado a financiar la organización Ethereum y pagar por el desarrollo que ha sido utilizado con éxito por otras plataformas como Mastercoin y NXT. Los primeros compradores se beneficiarán de grandes descuentos. Los BTC que se obtengan de la venta se utilizarán en su totalidad para pagar salarios y recompensas a los desarrolladores e invertirá en varios proyectos con ánimo y sin ánimo de lucro en el ecosistema Ethereum y de criptomonedas. -- 0,099 veces de la cantidad total vendida (60 102 216 ETH) se asignará a la organización para compensar a los primeros contribuyentes y pagar los gastos denominados en ETH antes del bloque génesis. -- 0,099 veces de la cantidad total vendida se mantendrá como una reserva a largo plazo. -- 0,26 veces de la cantidad total vendida se asignará a los mineros por año para siempre después de ese punto. - -| Grupo | en el lanzamiento tras | 1 año | tras 5 años | -| --------------------------------- | ---------------------- | ------ | ----------- | -| Unidades de moneda | 1,198X | 1,458X | 2,498X | -| Compradores | 83,5 % | 68,6 % | 40,0 % | -| Reserva gastada antes de la venta | 8,26 % | 6,79 % | 3,96 % | -| Reserva utilizada posventa | 8,26 % | 6,79 % | 3,96 % | -| Mineros | 0 % | 17,8 % | 52,0 % | - -**Tasa de crecimiento a largo plazo de la oferta (porcentaje)** - -![Inflación Ethereum](../../../whitepaper/ethereum-inflation.png) - -_A pesar de la emisión lineal de moneda, al igual que con Bitcoin a lo largo del tiempo la tasa de crecimiento de la oferta tiende sin embargo a cero_ - -Las dos opciones principales en el modelo anterior son: (1) la existencia y el tamaño de un fondo de dotación financiera y, (2) la existencia de una oferta lineal en crecimiento permanente, a diferencia de una oferta limitada como en Bitcoin. La justificación de un fondo de dotación financiera es la siguiente. Si el fondo de dotación no existiese, y la emisión lineal se redujera a 0,217 veces para proporcionar la misma tasa de inflación, entonces la cantidad total de ether sería un 16,5 % menos, por lo que cada unidad sería un 19,8 % más valiosa. Por lo tanto, en el equilibrio de 19,8 % se compraría más ether en la venta, por lo que cada unidad sería una vez más tan valiosa como antes. La organización también tendría 1,198 veces de BTC, que puede considerarse como dividido en dos porciones: el BTC original, y un 0,198 adicional. Por lo tanto, esta situación es _exactamente equivalente_ a la dotación, pero con una diferencia importante: la organización guarda exclusivamente BTC, y no tiene el incentivo para apoyar el valor de la unidad de ether. - -El modelo de crecimiento lineal permanente de la oferta reduce el riesgo de lo que algunos ven como una concentración excesiva de riqueza en Bitcoin, y da a los individuos que viven en el presente y a los que vivan el futuro una oportunidad justa de adquirir unidades de moneda, mientras que al mismo tiempo mantiene un fuerte incentivo para obtener y poseer el ether porque la "tasa de crecimiento de la oferta" como porcentaje sigue tendiendo a cero con el tiempo. También teorizamos que, dado que las monedas siempre se pierden con el tiempo debido a negligencias, muerte, etc, y que la pérdida de monedas pueden modelarse como un porcentaje de la oferta total por año, que la oferta de moneda total en circulación eventualmente se estabilizará en un valor igual a a la emisión anual dividida entre la tasa de pérdida (p. ej., a una tasa de pérdida de 1 %, una vez que el suministro alcance 26 veces, entonces 0,26 veces se minarán y 0,26 veces se perderán cada año, creando un equilibrio). - -Nótese que en el futuro, es probable que Ethereum cambie a un modelo de prueba de participación por seguridad, reduciendo el requisito de emisión a una cantidad de entre cero y 0,05 por año. En el caso de que la organización Ethereum pierda la financiación o desaparezca por cualquier otro motivo, dejamos abierto un "contrato social": cualquiera tiene derecho a crear una futura versión candidata de Ethereum, con la única condición de que la cantidad de ether debe ser como máximo igual a `60102216 * (1.198 + 0.26 * n)` donde `n` es el número de años posteriores al bloque génesis. Los creadores son libres de hacer una venta inicial de monedas o asignar de otra forma parte o toda la diferencia entre la expansión de oferta basada en prueba de participación (PoS, por sus siglas en inglés) y la expansión de oferta máxima permitida para pagar por el desarrollo. Las actualizaciones candidatas que no cumplan con el contracto social pueden ser justificadamente bifurcadas a versiones que lo cumplan. - -### Centralización del minado {#mining-centralization} - -El algoritmo de minado de Bitcoin funciona haciendo que los mineros calculen SHA256 en versiones ligeramente modificadas del encabezado del bloque millones de veces una y otra vez, hasta que finalmente un nodo encuentre una versión cuyo hash sea menor que el objetivo (actualmente alrededor de 2192). Sin embargo, este algoritmo de minado es vulnerable a dos formas de centralización. En primer lugar, el ecosistema minero ahora está dominado por los ASIC (circuitos integrados de aplicación específica), chips de ordenador diseñados para la tarea y, por lo tanto, miles de veces más eficientes en la tarea específica de minado de Bitcoin. Esto significa que el minado de Bitcoin ya no es una actividad altamente descentralizada e igualitaria, requiriendo millones de dólares de capital en la práctica para poder participar. En segundo lugar, la mayoría de los mineros de Bitcoin no realizan la validación de bloques localmente; en su lugar, dependen de un "pool" (grupo) de minado centralizado que proporciona los encabezados del bloque. Se puede argumentar que este problema es peor: en el momento de escribir estas líneas, los tres principales pools de minería controlan indirectamente aproximadamente el 50 % del poder de procesamiento en la red de Bitcoin, aunque esto lo mitiga el hecho de que los mineros pueden cambiar a otros pools de minado si un pool o coalición intentan un ataque del 51 %. - -El propósito actual de Ethereum es utilizar un algoritmo de minado donde los mineros tienen que obtener datos aleatorios del estado, computar aleatoriamente algunas transacciones seleccionadas de los últimos N bloques en la blockchain, y devolver el hash del resultado. Esto tiene dos ventajas importantes. Primero, los contratos de Ethereum pueden incluir cualquier tipo de cómputo, por lo que un ASIC Ethereum sería esencialmente un ASIC de cómputo general, es decir, una CPU mejor. Segundo, la minería requiere acceso a toda la blockchain, lo que obliga a los mineros a almacenar toda la blockchian y ser al menos capaces de verificar cada transacción. Esto elimina la necesidad de pools de minado centralizadas; aunque las pools de minado pueden seguir desempeñando el papel legítimo de equilibrar la aleatoriedad de la distribución de recompensas, esta función puede realizarse igualmente bien por pools entre pares sin ningún control central. - -Este modelo no ha sido probado, y puede haber dificultades a lo largo del camino para evitar ciertas optimizaciones inteligentes cuando se utiliza la ejecución del contrato como algoritmo de minado. Sin embargo, una característica notablemente interesante de este algoritmo es que permite a cualquiera "envenenar el pozo", al introducir un gran número de contratos en la blockchain específicamente diseñados para bloquear ciertos ASIC. Existen incentivos económicos para que los fabricantes de ASIC utilicen un truco así para atacarse mutuamente. Por tanto, la solución que estamos desarrollando es en última instancia, una solución adaptativa humana en vez de una solución puramente técnica. - -### Escalabilidad {#scalability} - -Una preocupación común en Ethereum es la cuestión de la escalabilidad. Al igual que Bitcoin, Ethereum sufre del defecto de que cada transacción tiene que ser procesada por cada nodo de la red. Con Bitcoin, el tamaño de la blockchain actual se sitúa en unos 15 GB, creciendo alrededor de 1 MB por hora. Si la red Bitcoin procesara las 2000 transacciones que procesa Visa por segundo, crecería 1 MB cada tres segundos (1 GB por hora, 8 TB por año). Es probable que Ethereum sufra un patrón de crecimiento similar, empeorado por el hecho de que habrá muchas aplicaciones funcionando encima del blockchain Ethereum, en lugar de solo una moneda como es el caso de Bitcoin, pero mitigado por el hecho de que los nodos completos de Ethereum necesitan almacenar sólo el estado en lugar de todo el historial de la blockchain. - -El problema con un tamaño tan grande de blockchain es el riesgo de centralización. Si el tamaño del blockchain aumenta hasta, digamos, 100 TB, entonces el escenario más factible sería que solo un pequeño número de grandes empresas ejecutarían nodos completos, y todos los usuarios normales usarían nodos SPV ligeros. En esta situación, surge el problema potencial de que los nodos completos se unieran y acordasen hacer trampas de algún modo rentable (p. ej., cambiando la recompensa por bloque, darse a si mismos BTC). Los nodos ligeros no tendrían forma de detectar esto inmediatamente. Por supuesto, probablemente existiría al menos un nodo completo honesto, y al cabo de unas horas la información sobre el fraude se iría filtrando a través de canales como Reddit, pero llegados a ese punto sería demasiado tarde: correspondería a los usuarios ordinarios organizar un esfuerzo para elaborar una lista negra de dichos bloques, un problema masivo y probablemente no factible de coordinación a una escala similar a la de lograr con éxito un ataque del 51 %. En el caso de Bitcoin, esto es actualmente un problema, pero existe una modificación de blockchain [propuesta por Peter Todd](https://web.archive.org/web/20140623061815/http://sourceforge.net/p/bitcoin/mailman/message/31709140/) que mitigará este problema. - -A corto plazo, Ethereum utilizará dos estrategias adicionales para hacer frente a este problema. Primero, dados los algoritmos de minado basados en blockchain, todos y cada uno de los mineros estarán obligados a ser nodos completos, creando un límite inferior en el número de nodos completos. Segundo, y no obstante más importante, incluiremos una raíz del árbol de estado intermedio en el blockchain después de procesar cada transacción. Incluso si la validación del bloque está centralizada, siempre y cuando exista un nodo de verificación honesto, el problema de la centralización se puede eludir a través de un protocolo de verificación. Si un minero publica un bloque inválido, el bloque o bien estará mal formateado, o el estado `S[n]` será incorrecto. Como se sabe que `S[0]` es correcto, debe haber algún primer estado `S[i]` que es incorrecto, donde `S[i-1]` es correcto. El nodo de verificación proporcionaría el índice `i`, junto con una "prueba de nulidad" consistente en el subconjunto de nodos de árbol Patricia que necesitan procesar `APPLY(S[i-1], X[i]) -> S[i]`. Los nodos podrían usar esos nodos Patricia para ejecutar esa parte del cómputo, y ver que el `S[i]` generado no coincide con el `S[i]` proporcionado. - -Otro ataque más sofisticado consistiría en que los mineros maliciosos publicasen bloques incompletos, por lo que ni siquiera existiría la información completa para determinar si los bloques son válidos o no. La solución a esto es un protocolos desafío-respuesta: los nodos de verificación emiten "desafíos" en forma de índices de transacción objetivo, y al recibir un nodo, un nodo ligero trata el bloque como no fiable hasta que otro nodo, ya sea minero u otro verificador, proporcione un subconjunto de nodos Patricia como prueba de validez. - -## Conclusión {#conclusion} - -El protocolo Ethereum fue concebido originalmente como una versión mejorada de una criptomoneda, proporcionando características avanzadas como fideicomiso sobre la blockchain, límites de retiro, contratos financieros, mercados de apuestas y similares a través de un lenguaje de programación de propósito muy general. El protocolo Ethereum no "implementaría" ninguna de las aplicaciones directamente, pero la existencia de un lenguaje de programación Turing completo significa que teóricamente pueden crearse contratos arbitrarios para cualquier tipo de transacción o aplicación. Lo más interesante de Ethereum, sin embargo, es que el protocolo Ethereum va mucho más allá de ser solo una moneda. Los protocolos en torno al almacenamiento de archivos descentralizado, la computación descentralizada y los mercados de predicción descentralizados, entre docenas de otros conceptos de este tipo, tienen el potencial de aumentar sustancialmente la eficiencia de la industria computacional y aportar un impulso masivo a otros protocolos peer-to-peer al añadir por primera vez una capa económica. Por último, también hay un considerable conjunto de aplicaciones que no guardan relación alguna con el dinero. - -El concepto de una función de transición de estado arbitraria implementada por el protocolo Ethereum proporciona una plataforma con un potencial único; en lugar de ser un protocolo de un solo propósito cerrado destinado a una serie específica de aplicaciones en el ámbito del almacenamiento de datos, apuestas o finanzas, Ethereum está abierto por diseño y creemos que es extremadamente adecuado para servir como una capa fundacional para un gran número de protocolos financieros y no financieros en los años venideros. - -## Notas y lecturas adicionales {#notes-and-further-reading} - -### Notas {#notes} - -1. Un lector sofisticado puede haber notado que una dirección de Bitcoin es el hash de la clave pública de la curva elíptica, y no la clave pública en sí. Sin embargo, es perféctamente legítimo en terminología criptográfica el referirse al hash de la clave pública como la clave pública en sí. Esto es porque la la criptografía de Bitcoin se puede considerar un algoritmo personalizado de firma digital, donde la clave pública consiste en el hash de la clave pública CCE, la firma consiste en la clave pública CCE concatenada con la firma CCE, y el algoritmo de verificación involucra verificar la clave pública ECC en la firma contra el hash de la clave pública ECC proporcionada como clave pública y después verificar la firma ECC contra la clave pública ECC. -2. Técnicamente, la mediana de los 11 bloques anteriores. -3. El protocolo Ethereum debe ser tan simple como práctico, pero puede que sea necesario tener un nivel bastante alto de complejidad, por ejemplo para escalar, para internalizar los costes de almacenamiento, ancho de banda y E/S, para seguridad, privacidad, transparencia, etc. Donde sea necesaria la complejidad, la documentación debe ser tan clara, concisa y actualizada como sea posible. para que alguien completamente sin conocimiento de Ethereum pueda aprender y convertirse en un experto. -4. Consulta el [documento amarillo](https://ethereum.github.io/yellowpaper/paper.pdf) de la máquina virtual Ethereum (que es útil como especificación y referencia para construir un cliente Ethereum desde cero), y también hay muchos temas en la [wiki de Ethereum](https://github.com/ethereum/wiki/wiki), tales como desarrollo de sharding, desarrollo del núcleo, desarrollo de dapp, investigación, Casper, I+D y protocolos de red. Para investigación y posible implementación en el futuro está [ethresearch.ch](https://ethresear.ch). -5. Otra forma de expresar esto es con abstracción. La [última hoja de ruta](https://ethresear.ch/t/sharding-phase-1-spec/1407/67) está planeando la ejecución abstracta, permitiendo que los motores de ejecución no tengan que seguir necesariamente una especificación canónica, sino que por ejemplo podría ser diseñados para una aplicación específica, así como para un shard. (Esta heterogeneidad de los motores de ejecución no está explícitamente señalada en la hoja de ruta. También está el sharding heterógeno, que conceptualizó Vlad Zamfir.) -6. Internamente, tanto 2 como "CHARLIE" son números, siendo este último representado en base 256 big-endian. Los números pueden ser como mínimo 0 y como máximo 2256-1. - -### Lecturas adicionales {#further-reading} - -1. [Valor intrínseco](http://bitcoinmagazine.com/8640/an-exploration-of-intrinsic-value-what-it-is-why-bitcoin-doesnt-have-it-and-why-bitcoin-does-have-it/) -2. [Propiedad inteligente](https://en.bitcoin.it/wiki/Smart_Property) -3. [Contratos inteligentes](https://en.bitcoin.it/wiki/Contracts) -4. [B-money](http://www.weidai.com/bmoney.txt) -5. [Pruebas de trabajo reutilizables](http://www.finney.org/~hal/rpow/) -6. [Títulos de propiedad seguros con autoridad del propietario](http://szabo.best.vwh.net/securetitle.html) -7. [Informe oficial de Bitcoin](http://bitcoin.org/bitcoin.pdf) -8. [Namecoin](https://namecoin.org/) -9. [Triángulo de Zooko](https://wikipedia.org/wiki/Zooko's_triangle) -10. [Informe oficial de monedas coloreadas](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit) -11. [Informe oficial de Mastercoin](https://github.com/mastercoin-MSC/spec) -12. [Corporaciones autónomas descentralizadas, Bitcoin Magazine](http://bitcoinmagazine.com/7050/bootstrapping-a-decentralized-autonomous-corporation-part-i/) -13. [Verificación de pago simplificada](https://en.bitcoin.it/wiki/Scalability#Simplifiedpaymentverification) -14. [Árboles de Merkle](https://wikipedia.org/wiki/Merkle_tree) -15. [Árboles de Patricia](https://wikipedia.org/wiki/Patricia_tree) -16. [GHOST](https://eprint.iacr.org/2013/881.pdf) -17. [StorJ y agentes autónomos, Jeff Garzik](http://garzikrants.blogspot.ca/2013/01/storj-and-bitcoin-autonomous-agents.html) -18. [Mike Hearn, sobre propiedad inteligente en el Turing Festival](http://www.youtube.com/watch?v=Pu4PAMFPo5Y) -19. [Ethereum RLP](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-RLP) -20. [Árboles de Merkle y Patricia en Ethereum](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-Patricia-Tree) -21. [Peter Todd sobre los árboles Merkle de suma](http://sourceforge.net/p/bitcoin/mailman/message/31709140/) - -_Para consultar la historia del libro blanco, ver https://github.com/ethereum/wiki/blob/old-before-deleting-all-files-go-to-wiki-wiki-instead/old-whitepaper-for-historical-reference.md_ - -_Ethereum, al igual que muchos proyectos de software de código abierto impulsados por la comunidad, ha evolucionado desde su concepción inicial. Para aprender sobre los últimos desarrollos de Ethereum, y cómo se hacen los cambios en el protocolo, recomendamos [esta guía](/learn/)._ diff --git a/src/content/translations/fa/community/support/index.md b/src/content/translations/fa/community/support/index.md deleted file mode 100644 index 4df502f0d2a..00000000000 --- a/src/content/translations/fa/community/support/index.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -title: پشتیبانی اتریوم -description: در اکوسیستم اتریوم پشتیبانی دریافت کنید. -lang: fa ---- - -# پشتیبانی اتریوم {#support} - -## پشتیبانی رسمی اتریوم {#official-support} - -آیا به دنبال پشتیبانی رسمی اتریوم هستید؟ اولین چیزی که باید بدانید این است که اتریوم غیرمتمرکز است. این بدان معناست که هیچ سازمان مرکزی، نهاد یا شخصی مالک اتریوم نیست و به همین دلیل، هیچ کانال پشتیبانی رسمی وجود ندارد. - -درک ماهیت غیرمتمرکز اتریوم بسیار مهم است زیرا هرکسی که ادعا می‌کند پشتیبان رسمی اتریوم است، احتمالاً سعی دارد از شما کلاهبرداری کند! بهترین محافظت در برابر کلاهبرداران، آموزش خود و جدی گرفتن امنیت است. - - - امنیت اتریوم و جلوگیری از کلاهبرداری - - - - اصول اتریوم را بیاموزید - - -علیرغم عدم پشتیبانی رسمی، بسیاری از گروه‌ها، جوامع و پروژه‌ها در سراسر اکوسیستم اتریوم با کمال میل به شما کمک می‌کنند و شما می‌توانید اطلاعات و منابع مفید زیادی را در این صفحه بیابید. هنوز سؤالی دارید؟ به [دیسکورد ethereum.org](/discord/) بپیوندید، و ما سعی می‌کنیم کمکتان کنیم. - -## پشتیبانی کیف پول {#wallet-support} - -با کیف پول خود مشکل دارید؟ اکثر کیف پول‌ها دارای تیم‌های پشتیبانی اختصاصی هستند که می‌توانند به شما کمک کنند: - -- [MetaMask](https://metamask.zendesk.com/hc/) -- [Argent](https://support.argent.xyz/hc/) -- [MyEtherWallet](https://help.myetherwallet.com/) - -_این یک فهرست جامع نیست. برای پیدا کردن پشتیبانی برای یک کیف پول خاص به کمک نیاز دارید؟ به [دیسکورد ethereum.org](https://discord.gg/ethereum-org) بپیوندید و ما سعی خواهیم کرد به شما کمک کنیم._ - -به دنبال کیف پول اتریوم می‌گردید؟ [فهرست کامل کیف پول‌های اتریوم ما را جستجو کنید](/wallets/find-wallet/). - -## ساخت برنامه‌های غیرمتمرکز (dappها) {#building-support} - -ساختن می‌تواند سخت باشد. در اینجا برخی از فضاهای متمرکز توسعه با توسعه‌دهندگان باتجربه‌ای وجود دارند که خوشحال می‌شوند به شما کمکی کنند. - -- [دانشگاه شیمی](https://university.alchemy.com/#starter_code) -- [دیسکورد CryptoDevs](https://discord.gg/Z9TA39m8Yu) -- [StackExchange اتریوم](https://ethereum.stackexchange.com/) -- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) -- [دانشگاه Web3](https://www.web3.university/) -- [LearnWeb3](https://discord.com/invite/learnweb3) - -همچنین می‌توانید مستندات و راهنمای توسعه را در بخش [منابع توسعه‌دهندگان اتریوم](/developers/) ما بیابید. - -### ابزارسازی {#dapp-tooling} - -آیا سؤال شما به ابزار، پروژه یا کتابخانه خاصی مربوط می‌شود؟ بیشتر پروژه‌ها دارای سرورهای چت یا انجمن‌هایی هستند که برای پشتیبانی از شما اختصاص داده‌شده‌اند. - -در اینجا برخی از نمونه‌های محبوب آورده شده است: - -- [Solidity](https://gitter.im/ethereum/solidity/) -- [ethers.js](https://discord.gg/6jyGVDK6Jx) -- [web3.js](https://discord.gg/GsABYQu4sC) -- [Hardhat](https://discord.gg/xtrMGhmbfZ) -- [Truffle](https://discord.gg/8uKcsccEYE) -- [Alchemy](http://alchemy.com/discord) -- [Tenderly](https://discord.gg/fBvDJYR) - -## راه‌اندازی یک گره {#node-support} - -اگر از یک گره یا یک اعتبارسنج استفاده می‌کنید، در اینجا چند انجمن وجود دارد که به شما در شروع کار کمک می‌کنند. - -- [دیسکورد EthStaker](https://discord.io/ethstaker) -- [ردیت EthStaker](https://www.reddit.com/r/ethstaker) - -اکثر تیم‌هایی که کلاینت های اتریومی را می‌سازند، فضاهای اختصاصی و عمومی دارند که می‌توانید از آنها پشتیبانی دریافت کنید و سؤال بپرسید. - -### کلاینت‌های اجرا {#execution-clients} - -- [Geth](https://discord.gg/FqDzupGyYf) -- [Nethermind](https://discord.gg/YJx3pm8z5C) -- [Besu](https://discord.gg/p8djYngzKN) -- [Erigon](https://github.com/ledgerwatch/erigon/issues) - -### کلاینت‌های اجماع {#consensus-clients} - -- [Prysm](https://discord.gg/prysmaticlabs) -- [Nimbus](https://discord.gg/nSmEH3qgFv) -- [Lighthouse](https://discord.gg/cyAszAh) -- [Teku](https://discord.gg/7hPv2T6) -- [Lodestar](https://discord.gg/aMxzVcr) - -همچنین می‌توانید [نحوه‌ی اجرای یک گره را در اینجا بیاموزید](/developers/docs/nodes-and-clients/run-a-node/). - -## پرسش‌های متداول {#faq} - -#### من به کیف پول اشتباهی اتر فرستاده‌ام {#wrong-wallet} - -تراکنش ارسال‌شده روی اتریوم برگشت‌ناپذیر است. متأسفانه اگر به کیف پول اشتباهی اتر ارسال کرده باشید، هیچ راهی برای برگرداندن آن وجود ندارد. هیچ سازمان مرکزی، نهاد یا شخصی مالک اتریوم نیست، به این معنی که هیچ‌کس نمی‌تواند تراکنش‌ها را برگشت دهد. بنابراین، همیشه ضروری است که تراکنش‌های خود را قبل از ارسال دوباره بررسی کنید. - -#### چگونه می‌توانم هدایای اتریوم خود را مطالبه کنم؟ {#giveaway-scam} - -هدایای اتریوم کلاهبرداری‌هایی است که برای سرقت اتریوم شما طراحی شده‌اند. در معرض وسوسه‌ی پیشنهادهایی که به نظر خیلی خوب و واقعی به نظر می‌رسند قرار نگیرید - اگر اتوریومی را به یک آدرس هدیه‌دهنده ارسال کنید، هدیه‌ای دریافت نخواهید کرد و نمی‌توانید وجوه خود را بازیابی کنید. - -[اطلاعات بیشتر در مورد پیشگیری از کلاهبرداری](/security/#common-scams) - -#### تراکنش من گیر کرده است {#stuck-transaction} - -اگر به دلیل تقاضای شبکه کارمزد تراکنش کمتری را نسبت به آنچه که لازم است ارسال کرده باشید، تراکنش‌های اتریوم گاهی ممکن است گیر کنند. بسیاری از کیف پول‌ها گزینه‌ای برای ارسال مجدد همان تراکنش با کارمزد تراکنش بالاتر را ارائه می‌دهند تا امکان پردازش تراکنش فراهم شود. از طرف دیگر، می‌توانید با ارسال یک تراکنش به آدرس خودتان و استفاده از nonce همان تراکنش معلق، یک تراکنش معلق را لغو کنید. - -[نحوه‌ی سرعت بخشیدن یا لغو تراکنش معلق در MetaMask](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) - -[چگونه تراکنش‌های معلق اتریوم را لغو کنیم؟](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) - -#### چگونه می‌توانم اتریوم را استخراج کنم؟ {#mining-ethereum} - -استخراج اتریوم دیگر امکان‌پذیر نیست. از زمانی که اتریوم از اثبات کار به اثبات سهام منتقل شد، استخراج ناممکن شد. اکنون به جای ماینر، اتریوم اعتبارسنج دارد. اعتبارسنجی‌ه اتر را به اشتراک می‌گذارند و برای ایمن کردن شبکه، پاداش سهام‌گذاری دریافت می‌کنند. - -#### چگونه می‌توانم یک سهام‌گذار/اعتبارسنج شوم؟ {#become-validator} - -برای تبدیل شدن به یک اعتبار‌سنج، باید 32 اتر در قرارداد سپرده‌گذاری کنید و یک گره‌ی اعتبارسنج راه‌اندازی کنید.‌ اطلاعات بیشتر در [صفحات سهام‌گذاری](/staking) و در [سکوی پرتاب سهام‌گذاری](https://launchpad.ethereum.org/) ما در دسترس است. diff --git a/src/content/translations/fa/dao/index.md b/src/content/translations/fa/dao/index.md deleted file mode 100644 index 4070404f338..00000000000 --- a/src/content/translations/fa/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: سازمان‌های خودمختار غیرمتمرکز (DAOها) -description: نگاهی کلی به DAOهای بر پایه اتریوم -lang: fa -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: تصویری از یک DAO در حال رأی دادن به یک پیشنهاد. -summaryPoint1: جوامع عضومحور بدون رهبری متمرکز. -summaryPoint2: راهی ایمن برای برقراری ارتباط با غریبه‌های اینترنتی. -summaryPoint3: محلی امن برای تخصیص وجه به یک هدف خاص. ---- - -## DAO چیست؟ {#what-are-daos} - -DAO یک سازمان تحت مالکیت جمعی و تحت کنترل بلاک چین است که در راستای یک ماموریت مشترک کار می کند. - -DAOها به ما این امکان را می دهند که بدون اعتماد به یک رهبر خیرخواه برای مدیریت سرمایه ها یا عملیات، با افراد همفکر در سراسر جهان کار کنیم. هیچ مدیر عاملی وجود ندارد که بتواند بودجه خود را صرف یک هوس کند یا مدیر مالی که بتواند کتاب ها را دستکاری کند. درعوض، قوانین مبتنی بر بلاک چین که در کد گنجانده شده است، نحوه عملکرد سازمان و نحوه خرج کردن بودجه را مشخص می کند. - -آن‌ها دارایی‌های یکپارچه‌ای تحت اختیار دارند که هیچ‌کس بدون تأیید گروه، اجازه‌ دسترسی به آن‌ها را ندارد. تصمیم‌ها با پیشنهادها و رأی‌گیری اداره می‌شوند تا اطمینان حاصل شود که همه در سازمان حق اظهار نظر دارند و همه چیز به‌طور شفاف در زنجیره اتفاق می‌افتد. - -## چرا به DAOها نیاز داریم؟ {#why-dao} - -راه‌اندازی یک سازمان با شخصی دیگر که نیازمند بودجه و پول است، نیاز به اعتماد زیادی به افرادی دارد که با آن‌ها کار می‌کنید. اما اعتماد کردن به کسی که با او فقط در اینترنت تعامل داشته‌اید آسان نیست. با استفاده از DAOها، نیازی به اعتماد به دیگر افراد گروه نیست؛ فقط کافی است از کد DAO مطمئن شوید که 100% شفاف است و توسط هر کسی قابل تأیید است. - -این موضوع فرصت‌های جدیدی را برای همکاری و هماهنگی در سطح جهانی ایجاد می‌کند. - -### یک مقایسه: {#dao-comparison} - -| DAO | یک سازمان سنتی | -| ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | -| معمولاً همه‌ی افراد آن در یک سطح هستند و کاملاً دموکراتیک است. | معمولاً دارای ساختار سلسله‌مراتبی است. | -| رأی‌گیری از اعضا برای اعمال هرگونه تغییر لازم است. | با توجه به ساختار سازمان، تغییرات را باید از مقامات رده‌بالا درخواست کرد یا ممکن است دراین‌باره رای‌گیری شود. | -| رأی‌ها شمرده می‌شود و نتیجه به‌طور خودکار بدون نیاز به واسطه‌ی مورد اعتماد اعلام می‌شود. | اگر رأی‌گیری انجام شود، رأی‌ها به‌صورت داخلی شمرده می‌شود و نتیجه‌ی رأی‌گیری باید به‌صورت دستی اعلام شود. | -| خدمات ارائه‌شده به‌طور خودکار و به‌صورت غیرمتمرکز انجام می‌شوند (به‌عنوان مثال، توزیع کمک‌های بشردوستانه). | نیازمند دخالت انسان یا اتوماسیونِ دارای کنترل مرکزی است، که مستعد دستکاری است. | -| تمام فعالیت‌ها شفاف و کاملاً عمومی است. | فعالیت‌ها معمولاً خصوصی است و دسترسی عمومی به آنها محدود است. | - -### نمونه‌های DAO {#dao-examples} - -برای درک بیشتر این موضوع، در اینجا چند مثال از موارد استفاده از DAO آورده شده است: - -- یک سازمان خیریه - می‌توانید از هر کس در دنیا اهدایی بپذیرید و تصمیم بگیرید برای چه کار خیری کمک کنید. -- مالکیت جمعی - می‌توان دارایی‌های دیجیتال یا فیزیکال خرید و اعضا می‌توانند به اینکه چطور از آنها استفاده کنند رای دهند. -- سرمایه‌گذاری‌های جسورانه و کمک‌های مالی به کسب‌وکارها – می‌توانید یک صندوق سرمایه‌گذاری جسورانه ایجاد کنید که منابع مالی را جمع‌آوری کند و به استارت‌آپ‌ها و کسب‌وکارهای نوپا تزریق کند. پول بازپرداخت‌شده می‌تواند بعداً بین اعضای DAO توزیع شود. - -## DAOها چگونه کار می‌کنند؟ {#how-daos-work} - -شالوده اصلی هر سازمان مستقل غیرمتمرکز، قرارداد هوشمند آن است که قوانین این سازمان را تعیین و خزانه گروه را نگاه می‌داد. هنگامی که قرارداد در اتریوم فعال می‌شود، هیچ‌کس نمی‌تواند قوانین را تغییر دهد مگر با رأی دادن. اگر کسی سعی کند کاری انجام دهد که توسط قوانین و منطق موجود در کد پوشش داده نشده باشد، با شکست مواجه خواهد شد. و از آنجا که خزانه‌داری نیز توسط قرارداد هوشمند تعریف می‌شود، به این معنی است که هیچ‌کس نمی‌تواند پول را بدون تأیید گروه خرج کند. این بدان معناست که DAOها نیازی به یک مرجع مرکزی ندارند. در عوض، گروه به صورت جمعی تصمیم می‌گیرد و پرداخت‌ها به صورت‌خودکار با تصویب آرا مجاز می‌شوند. - -این امر به این دلیل امکان‌پذیر است که قراردادهای هوشمند به محض فعال شدن روی اتریوم، ضد دستکاری هستند. شما نمی‌توانید کد (قوانین DAOها) را بدون اینکه مردم متوجه شوند ویرایش کنید، زیرا همه‌چیز عمومی است. - - - اطلاعات بیشتر درباره قراردادهای هوشمند - - -## اتریوم و DAOها {#ethereum-and-daos} - -اتریوم بنا به دلایلی زیربنای عالی برای DAOها است: - -- وفاق خود اتریوم به اندازه کافی توزیع و ایجاد شده است که سازمان‌ها بتوانند به شبکه اعتماد کنند. -- کد قرارداد هوشمند، حتی توسط صاحبان آن نمی‌تواند پس از فعال شدن تغییر داده شود. این موضوع به DAO اجازه می‌دهد تا بر اساس قوانینی که با آن برنامه‌ریزی شده است اجرا شود. -- قراردادهای هوشمند می‌توانند وجوه را ارسال یا دریافت کنند. بدون آن، شما برای مدیریت وجوه گروه به یک واسطه قابل‌اعتماد نیاز دارید. -- جامعه اتریوم ثابت کرده است که بیشتر مشارکتی است تا رقابتی، و اجازه می‌دهد که بهترین شیوه‌ها و سیستم‌های پشتیبانی به‌سرعت ظهور کنند. - -## حاکمیت DAO {#dao-governance} - -در زمان حاکمیت یک DAO، موارد بسیاری باید در نظر گرفته شوند، از جمله نحوه رای دادن و پیشنهادها. - -### نمایندگی {#governance-delegation} - -اصطلاح نمایندگی (Delegation) نسخه DAO از دموکراسی نمایندگی است. هولدرهای توکن، نمایندگی رای خود را به کاربرانی می‌دهند که خودشان را نامزد می‌کنند و پروتکل مورد نظر را مدیریت می‌کنند و همیشه در جریان امور هستند. - -#### یک مثال آشنا {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) - هولدرهای ENS می‌توانند نمایندگی رای‌های خود را به اعضا مشارکت‌کننده جامعه بسپارند تا نماینده آنان شوند. - -### حاکمیت خودکار تراکنش‌ {#governance-example} - -در بسیاری از DAOها، تراکنش ها در صورت کسب حدنصاب آرای اعضا، به صورت خودکار اجرا خواهند شد. - -#### یک نمونهٔ معروف {#governance-example} - -[Nouns](https://nouns.wtf) در Nouns DAO، تا زمانی که بنیان گذاران رای نداده باشند، اگر رای‌ها به حد نصاب برسند و اکثریت رای موافق داده باشند، یک تراکنش به طور خودکار اجرا می‌شود. - -### حاکمیت چند امضایی {#governance-example} - -با اینکه DAOها ممکن است هزاران عضو رای دهنده داشته باشند، وجوه را می‌توان در یک کیف پول مشترک بین ۵ تا ۲۰ عضو فعال جامعه که مورد اعتماد و معمولا داکس شده‌اند (هویت آشنا برای عموم) یافت. پس از اجرای یک رای، امضا کننده‌های کیف پول چند امضایی مورد نظر، خواسته جامعه را اجرا می‌کنند. - -## قوانین DAOها {#dao-laws} - -در سال ۱۹۷۷، وایومینگ LLC را اختراع کرد که از کارآفرینان محافظت کرده و مسئولیت آنها را محدود می‌کند. اخیراً، آنها پیشگام قانون DAO بودند که وضعیت قانونی را برای DAOها ایجاد می کند. در حال حاضر وایومینگ، ورمونت و جزایر ویرجین قوانین DAO را به نوعی دارند. - -#### یک نمونهٔ معروف {#law-example} - -[CityDAO](https://citydao.io) – CityDAO از قانون DAO وایومینگ برای خرید 40 هکتار زمین در نزدیکی پارک ملی یلوستون استفاده کرد. - -## عضویت در DAO {#dao-membership} - -روش‌های مختلفی برای عضویت در DAO وجود دارد. اعضا می‌توانند نحوه رأی‌گیری و سایر بخش‌های کلیدی DAO را تعیین کنند. - -### عضویت مبتنی بر توکن {#token-based-membership} - -بسته به توکن مورد استفاده، معمولاً بدون نیاز به هیچ نوع مجوز است. عمدتاً این توکن‌های حاکمیتی را می‌توان بدون مجوز در یک صرافی غیرمتمرکز معامله کرد. توکن‌های دیگری نیز هستند که باید از طریق ارائه‌ نقدینگی یا «اثبات کار» به نوع دیگر به دست آیند. در هر صورت، صرفا نگه داشتن این توکن‌ها امکان شرکت در رأی‌گیری‌ها را فراهم می‌کند. - -_این روش معمولاً برای کنترل پروتکل‌های نامتمرکز گسترده و/یا خود توکن‌ها استفاده می‌شود._ - -#### یک نمونهٔ معروف {#token-example} - -[MakerDAO](https://makerdao.com) – توکن MakerDAO به نام MKR به طور گسترده در صرافی های نامتمرکز در دسترس بوده و هر کس می تواند با خرید آن قدرت رأی دادن در خصوص آینده ی پروتکل Maker را به دست آورد. - -### عضویت مبتنی بر سهم {#share-based-membership} - -DAOهای مبتنی بر سهم مجوزهای بیشتری دارند، اما هنوز کاملاً باز هستند. هر عضو احتمالی می‌تواند پیشنهادی برای پیوستن به DAO ارائه کند، که معمولاً ادای احترامی با ارزش به شکل توکن یا کار ارائه می‌کند. سهام نشان‌دهنده قدرت مستقیم رأی دادن و مالکیت است. اعضا می توانند در هر زمان با سهم متناسب خود از خزانه خارج شوند. - -_معمولاً برای سازمان‌های یکپارچه‌تر و انسان‌محوری مانند مؤسسات خیریه، تعاونی‌های کارگری و باشگاه‌های سرمایه‌گذاری استفاده می‌شود. همچنین می‌تواند پروتکل‌ها و توکن‌ها را نیز کنترل کند._ - -#### یک نمونهٔ معروف {#share-example} - -[MolochDAO](http://molochdao.com/) – MolochDAO بر تأمین مالی پروژه‌های اتریوم متمرکز است. آن‌ها به پیشنهاد عضویت نیاز دارند تا گروه بتواند ارزیابی کند که آیا شما تخصص و سرمایه‌ی لازم برای انجام قضاوت‌های آگاهانه در مورد دریافت‌کنندگان بالقوه‌ی احتمالی را دارید یا خیر. شما نمی‌توانید بدون دردسر از بازار آزاد دسترسی به DAO را خریداری کنید. - -### عضویت مبتنی بر شهرت {#reputation-based-membership} - -شهرت در DAO نشان‌دهنده اثبات مشارکت است و قدرت رأی را اعطا می‌کند. برخلاف عضویت مبتنی بر توکن یا سهم، DAOهای مبتنی بر شهرت مالکیت را به مشارکت‌کنندگان منتقل نمی‌کنند. شهرت را نمی‌توان خرید، انتقال یا تفویض کرد. اعضای DAO باید از طریق مشارکت شهرت کسب کنند. رأی‌گیری روی زنجیره غیرمجاز است و اعضای بالقوه می‌توانند آزادانه برای پیوستن به DAO پیشنهاد ارسال کنند و درخواست کنند که به‌عنوان پاداش در ازای مشارکت‌های خود، شهرت و توکن دریافت کنند. - -_معمولاً برای توسعه و حاکمیت غیرمتمرکز پروتکل‌ها و dAppها استفاده می‌شود، اما در عین حال برای مجموعه متنوعی از سازمان‌ها مانند مؤسسات خیریه، گروه‌های کارگری، باشگاه‌های سرمایه‌گذاری و غیره مناسب است._ - -#### یک نمونهٔ معروف {#reputation-example} - -[DXdao](https://DXdao.eth.link) – DXdao یک سازمان تضامنی حاکمیتی جهانی است که از سال 2019 به ساختن و حکمرانی کردن بر پروتکل‌ها و برنامه‌های کاربردی غیرمتمرکز مشغول است. این سازمان از حاکمیت مبتنی بر شهرت و اجماع هولوگرافیک برای هماهنگی و مدیریت وجوه استفاده می‌کند، به این معنی که هیچ‌کس نمی‌تواند روش خود را برای تأثیرگذاری بر آینده آن بخرد. - -## پیوستن به / ایجاد یک DAO {#join-start-a-dao} - -### پیوستن به DAO {#join-a-dao} - -- [DAOهای جامعه اتریوم](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [فهرست DAOها از DAOHaus](https://app.daohaus.club/explore) -- [لیست Tally.xyz از DAO](https://www.tally.xyz) - -### یک DAO راه‌اندازی کنید {#start-a-dao} - -- [یک DAO را از DAOHaus فراخوانی کنید](https://app.daohaus.club/summon) -- [یک Governor DAO با Tally راه اندازی کنید](https://www.tally.xyz/add-a-dao) -- [یک DAO تحت پشتیبانی Aragon ایجاد کنید](https://aragon.org/product) -- [یک گروه تشکیل دهید](https://colony.io/) -- [با اجماع هولوگرافیک DAOstack یک DAO ایجاد کنید](https://alchemy.daostack.io/daos/create) - -## بیشتر بخوانید {#further-reading} - -### مقالات مرتبط با DAO {#dao-articles} - -- [DAO چیست؟](https://aragon.org/dao) – [Aragon](https://aragon.org/) -- [کتاب راهنمای DAO](https://daohandbook.xyz) -- [مجموعه DAOها](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) -- [DAO چیست و به چه دردی می‌خورد؟](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) -- [چگونه انجمن دیجیتالی تحت پشتیبانی DAO ایجاد کنیم؟](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) -- [DAO چیست؟](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) -- [اجماع هولوگرافیک چیست؟](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) -- [DAOها شرکت نیستند: جایی که تمرکززدایی در سازمان های خودمختار از سوی Vitalik اهمیت دارد](https://vitalik.ca/general/2022/09/20/daos.html) -- [DAO، DAC، DA و موارد دیگر: راهنمای اصطلاحات ناقص](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [بلاگ اتریوم](https://blog.ethereum.org) - -### ویدیوها {#videos} - -- [DAO در دنیای رمزارزها چیست؟](https://youtu.be/KHm0uUPqmVE) -- [آیا یک DAO می‌تواند یک شهر بسازد؟](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) diff --git a/src/content/translations/fa/decentralized-identity/index.md b/src/content/translations/fa/decentralized-identity/index.md deleted file mode 100644 index 9f5e61d1b7d..00000000000 --- a/src/content/translations/fa/decentralized-identity/index.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: هویت نامتمرکز -description: هویت نامتمرکز چیست و چرا اهمیت دارد؟ -lang: fa -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) برای یک موجودیت. رمزنگاری کلید عمومی در شبکه های بلاک چین برای احراز هویت کاربران و اثبات مالکیت دارایی های دیجیتال استفاده می شود. - -برخی از شناسه های غیرمتمرکز، مانند حساب اتریوم، دارای کلیدهای عمومی و خصوصی هستند. کلید عمومی کنترل کننده حساب را شناسایی می کند، در حالی که کلیدهای خصوصی می توانند پیام های این حساب را امضا و رمزگشایی کنند. PKI با استفاده از [امضاهای رمزنگاری](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 صادرکننده در اتریوم تأیید کند. اساساً، بلاک چین اتریوم مانند یک فهرست جهانی عمل می کند که تأیید DID های مرتبط با موجودیت های خاص را امکان‌پذیر می کند. - -شناسه های غیرمتمرکز دلیلی هستند که تصدیق ها خودکنترلی و قابل تأیید هستند. حتی اگر صادرکننده دیگر وجود نداشته باشد، هولدر همیشه مدرکی دال بر منشأ و اعتبار تصدیق دارد. - -شناسه های غیرمتمرکز نیز برای محافظت از حریم خصوصی اطلاعات شخصی از طریق هویت غیرمتمرکز بسیار مهم هستند. برای مثال، اگر فردی مدرکی مبنی بر تصدیق (گواهینامه رانندگی) ارائه دهد، طرف تأییدکننده نیازی به بررسی اعتبار اطلاعات موجود در مدرک ندارد. درعوض، تأییدکننده فقط به ضمانت‌های رمزنگاری درباره اصالت تصدیق و هویت سازمان صادرکننده نیاز دارد تا تشخیص دهد که آیا مدرک معتبر است یا خیر. - -## انواع تصدیق در هویت غیرمتمرکز {#types-of-attestations-in-decentralized-identity} - -نحوه ذخیره و بازیابی اطلاعات تصدیق در اکوسیستم هویت مبتنی بر اتریوم با مدیریت هویت سنتی متفاوت است. در اینجا مروری بر رویکردهای مختلف برای صدور، ذخیره و تأیید تصدیق در سیستم‌های هویت غیرمتمرکز است: - -### تصدیق های خارج از زنجیره {#off-chain-attestations} - -یکی از نگرانی‌های مربوط به ذخیره تصدیق ها به‌صورت آنچین این است که ممکن است حاوی اطلاعاتی باشند که افراد بخواهند خصوصی نگه دارند. ماهیت عمومی بلاک چین اتریوم، ذخیره چنین تصدیق‌هایی را جذاب نمی‌کند. - -راه حل، صدور گواهی است که توسط کاربران خارج از زنجیره در کیف پول های دیجیتال نگهداری می شود، اما با DID صادرکننده که به‌صورت آنچین ذخیره می شود، امضا شده است. این تصدیق‌ها به‌عنوان [JSON Web Token](https://en.wikipedia.org/wiki/JSON_Web_Token) کدگذاری می‌شوند و حاوی امضای دیجیتال صادرکننده هستند—که امکان تأیید آسان ادعاهای خارج از زنجیره را فراهم می‌کند. - -در اینجا یک سناریوی فرضی برای توضیح تصدیق‌های خارج از زنجیره وجود دارد: - -1. یک دانشگاه (صادرکننده) یک تصدیق (گواهی علمی دیجیتالی) تولید می کند، کلیدهای آن را امضا می کند و آن را برای باب (صاحب هویت) صادر می کند. - -2. باب برای کار درخواست می‌کند و می‌خواهد مدارک تحصیلی خود را به یک کارفرما ثابت کند، بنابراین تصدیق را از کیف پول تلفن همراه خود به اشتراک می‌گذارد. سپس شرکت (تأیید کننده) می‌تواند اعتبار تصدیق را با بررسی DID صادرکننده (یعنی کلید عمومی آن در اتریوم) تأیید کند. - -### تصدیق های خارج از زنجیره با دسترسی مداوم {#offchain-attestations-with-persistent-access} - -به این ترتیب، تصدیق‌ها به فایل‌های JSON تبدیل می‌شوند و خارج از زنجیره ذخیره می‌شوند (به طور ایده‌آل در یک پلت‌فرم [ذخیره‌سازی غیرمتمرکز ابر](/developers/docs/storage/)، مانند IPFS یا Swarm). با این حال، یک [هش](/glossary/#hash) از فایل JSON در زنجیره ذخیره می‌شود و از طریق یک رجیستری در زنجیره به یک DID مرتبط می‌شود. DID مرتبط می‌تواند صادرکننده تصدیق یا گیرنده باشد. - -این رویکرد تصدیق‌ها را قادر می‌سازد تا پایداری مبتنی بر بلاک چین را به دست آورند، در حالی که اطلاعات ادعاها را رمزگذاری شده و قابل تأیید نگه می‌دارد. همچنین امکان افشای انتخابی را فراهم می کند زیرا دارنده کلید خصوصی می تواند اطلاعات را رمزگشایی کند. - -### تصدیق‌های آنچین {#onchain-attestations} - -تصدیق‌های آنچین در [قراردادهای هوشمند](/developers/docs/smart-contracts/) در بلاک‌چین اتریوم برگزار می‌شود. قرارداد هوشمند (که به عنوان یک رجیستری عمل می کند) یک تصدیق را به یک شناسه غیرمتمرکز آنچین مربوطه (یک کلید عمومی) متصل می کند. - -در اینجا یک مثال برای نشان دادن نحوه عملکرد تصدیق‌های آنچین در عمل آورده شده است: - -1. یک شرکت (XYZ Corp) قصد دارد سهام مالکیت خود را با استفاده از یک قرارداد هوشمند بفروشد اما فقط خریدارانی را می خواهد که بررسی پیشینه را تکمیل کرده باشند. - -2. XYZ Corp می‌تواند شرکت را وادار کند که بررسی‌های پیشینه را برای صدور تصدیق‌های آنچین در اتریوم انجام دهد. این گواهی تأیید می کند که یک فرد بدون افشای هیچ گونه اطلاعات شخصی، بررسی پیشینه را گذرانده است. - -3. قرارداد هوشمند فروش سهام می تواند قرارداد ثبت را برای هویت خریداران غربال شده بررسی کند و این امکان را برای قرارداد هوشمند تعیین کند که چه کسی مجاز به خرید سهام است یا خیر. - -### توکن‌های Soulbound و هویت {#soulbound} - -[توکن‌های Soulbound](https://vitalik.ca/general/2022/01/26/soulbound.html) (NFT‌های غیرقابل انتقال) می‌توانند برای جمع‌آوری اطلاعات منحصر به فرد برای یک کیف پول خاص استفاده شوند. این به طور مؤثر یک هویت آنچین منحصر به فرد ایجاد می کند که به یک آدرس اتریوم خاص متصل می شود که می تواند شامل توکن هایی باشد که دستاوردها را نشان می دهد (به عنوان مثال اتمام یک دوره آنلاین خاص یا گذراندن یک امتیاز آستانه در یک بازی) یا مشارکت کامیونیتی. - -## مزایای هویت غیرمتمرکز {#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/) باشد که به دارنده اجازه دسترسی به یک انجمن آنلاین را می دهد. - -سپس یک تابع [Sign-In with Ethereum](https://login.xyz/) سرورها را قادر می‌سازد تا حساب اتریوم کاربر را تأیید کنند و گواهی لازم را از آدرس حساب خود دریافت کنند. این بدان معناست که کاربران می توانند بدون نیاز به حفظ رمزهای عبور طولانی به پلتفرم ها و وب سایت ها دسترسی داشته باشند و این تجربه آنلاین را برای کاربران بهبود می بخشد. - -### 2. احراز هویت KYC {#kyc-authentication} - -استفاده از بسیاری از خدمات آنلاین، افراد را ملزم به ارائه تصدیق ها و اعتبارنامه هایی مانند گواهینامه رانندگی یا پاسپورت ملی می کند. اما این رویکرد مشکل ساز است زیرا اطلاعات خصوصی کاربر می تواند به خطر بیفتد و ارائه دهندگان خدمات نمی توانند صحت تصدیق را تأیید کنند. - -هویت غیرمتمرکز به شرکت‌ها این امکان را می‌دهد که از فرآیندهای معمول [Know-Your-Customer (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) صرف‌نظر کنند و هویت کاربر را از طریق اعتبارنامه‌های قابل تأیید احراز هویت کنند. این امر هزینه مدیریت هویت را کاهش می دهد و از استفاده از اسناد جعلی جلوگیری می کند. - -### 3. رای گیری و کامیونیتی‌های آنلاین {#voting-and-online-communities} - -رای گیری آنلاین و سوشال مدیا دو کاربرد جدید برای هویت غیرمتمرکز هستند. طرح‌های رای‌گیری آنلاین مستعد دستکاری هستند، به‌ویژه اگر بازیگران بدخواه برای رای دادن هویت‌های جعلی ایجاد کنند. درخواست از افراد برای ارائه تصدیق های آنچین می تواند یکپارچگی فرآیندهای رای گیری آنلاین را بهبود بخشد. - -هویت غیرمتمرکز می تواند به ایجاد کامیونیتی‌های آنلاینی که عاری از حساب های جعلی هستند کمک کند. به عنوان مثال، هر کاربر ممکن است مجبور باشد هویت خود را با استفاده از یک سیستم هویت آنچین، مانند سرویس نام اتریوم، احراز هویت کند، که احتمال وجود ربات ها را کاهش می دهد. - -### 4. محافظت ضد سیبیل {#sybil-protection} - -حملات Sybil به افراد فردی اشاره دارد که یک سیستم را فریب می دهند تا فکر کنند چندین نفر هستند تا نفوذ خود را افزایش دهند. [برنامه های کمک هزینه](https://gitcoin.co/grants/) که از [رأی درجه](https://www.radicalxchange.org/concepts/plural-voting/) استفاده می کنند در برابر این حملات Sybil آسیب پذیر هستند زیرا ارزش کمک هزینه زمانی افزایش می یابد که افراد بیشتری به آن رأی می دهند و کاربران را تشویق می کند تا مشارکت های خود را در بسیاری از هویت ها تقسیم کنند. هویت‌های غیرمتمرکز با بالا بردن بار روی دوش هر شرکت‌کننده برای اثبات اینکه واقعاً انسان هستند، به جلوگیری از این امر کمک می‌کند، هرچند اغلب بدون نیاز به افشای اطلاعات خصوصی خاص. - -## از هویت غیرمتمرکز استفاده کنید {#use-decentralized-identity} - -پروژه های جاه طلبانه زیادی وجود دارد که از اتریوم به عنوان پایه ای برای راه حل های هویت غیرمتمرکز استفاده می کنند: - -- **[Ethereum Name Service (ENS)](https://ens.domains/)** - _یک سیستم نام‌گذاری غیرمتمرکز برای شناسه‌های روی زنجیره، قابل خواندن توسط ماشین، مانند آدرس‌های کیف پول اتریوم، هش محتوا و ابرداده._ -- **[SpruceID](https://www.spruceid.com/)** - _یک پروژه هویت غیرمتمرکز که به کاربران امکان می دهد به جای تکیه بر خدمات شخص ثالث هویت دیجیتال را با حساب های اتریوم و پروفایل های ENS کنترل کنند._ -- **[خدمات گواهی اتریوم (EAS)](https://attest.sh/)** - _یک دفتر کل/پروتکل غیرمتمرکز برای ایجاد گواهی‌های زنجیره‌ای یا خارج از زنجیره درباره هر چیزی._ -- **[Proof of Humanity](https://www.proofofhumanity.id)** - _Proof of Humanity (یا PoH) یک سیستم تأیید هویت اجتماعی است که بر روی اتریوم ساخته شده است._ -- **[BrightID](https://www.brightid.org/)** - _یک شبکه هویت اجتماعی غیرمتمرکز و منبع باز که به دنبال اصلاح تأیید هویت از طریق ایجاد و تجزیه و تحلیل یک نمودار اجتماعی است._ -- **[گذرنامه اثبات شخصیت](https://proofofpersonhood.com/)** - _یک جمع کننده هویت دیجیتال غیرمتمرکز._ - -## بیشتر بخوانید {#further-reading} - -### مقالات {#articles} - -- [موارد استفاده از بلاک چین: بلاک چین در هویت دیجیتال](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ -- [اتریوم ERC725 چیست؟ مدیریت هویت خودمختار در بلاک چین](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _سام تاون_ -- [چگونه بلاک چین می تواند مشکل هویت دیجیتال را حل کند](https://time.com/6142810/proof-of-humanity/) — _اندرو آر. چاو_ -- [هویت غیرمتمرکز چیست و چرا باید به آن اهمیت دهید؟](https://web3.hashnode.com/what-is-decentralized-identity) _آووسیکا_ - -### ویدیوها {#videos} - -- [هویت غیرمتمرکز (جلسه پخش زنده جایزه)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) - _یک ویدیوی توضیح دهنده عالی در مورد هویت غیرمتمرکز توسط آندریاس آنتونوپولوس_ -- [ورود با اتریوم و هویت غیرمتمرکز با Ceramic، IDX، React و 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _آموزش YouTube در مورد ایجاد یک سیستم مدیریت هویت برای ایجاد، خواندن و به روز رسانی نمایه کاربر با استفاده از کیف پول اتریوم توسط نادر دبیت_ -- [BrightID - هویت غیرمتمرکز در اتریوم](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _قسمت پادکست بدون بانک در مورد BrightID، یک راه حل هویت غیرمتمرکز برای اتریوم_ -- [اینترنت خارج از زنجیره: هویت غیرمتمرکز & اعتبار قابل تأیید](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — ارائه EthDenver 2022 توسط Evin McMullen - -### جوامع {#communities} - -- [اتحاد ERC-725 در 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/fa/defi/index.md b/src/content/translations/fa/defi/index.md deleted file mode 100644 index 0c4b9c09046..00000000000 --- a/src/content/translations/fa/defi/index.md +++ /dev/null @@ -1,352 +0,0 @@ ---- -title: امور مالی غیرمتمرکز (DeFi) -description: نگاهی کلی بر امور مالی غیرمتمرکز بر پایه‌ی اتریوم -lang: fa -template: use-cases -emoji: ":money_with_wings:" -image: ../../../../assets/use-cases/defi.png -alt: لوگوی اتر ساخته‌شده از آجرهای لگو. -sidebarDepth: 2 -summaryPoint1: یک جایگزین جهانی و آِزاد برای سیستم مالی فعلی. -summaryPoint2: محصولاتی برای استقراض، پس‌انداز، سرمایه‌گذاری، معامله و سایر موارد. -summaryPoint3: بر پایه‌ی فناوری متن‌باز که هر کسی می‌تواند برای آن برنامه‌نویسی کند. ---- - -امور مالی غیرمتمرکز (DeFi) یک سیستم مالی جهانی و آزاد است که برای عصر اینترنت ساخته شده است؛ جایگزینی برای سیستمی غیرشفاف که شدیداً تحت کنترل است و ده‌ها سال است به این شیوه اداره می‌شود. این سیستم کنترل و شفافیت در رابطه با پولتان را فراهم می‌کند. این سیستم همچنین بازارهای جهانی را در دسترس شما قرار می‌دهد و جایگزینی برای پول محلی یا گزینه‌های بانکی محلی شما ارائه می‌دهد. محصولات DeFi خدمات مالی را به روی هر شخصی که به اینترنت دسترسی دارد باز می‌کنند و به‌طور کلی متعلق به کاربران هستند و توسط آن‌ها اداره می‌شوند. تابه‌حال ده‌ها میلیارد دلار ارز رمزنگاری‌شده به سمت برنامه‌های کاربری DeFi روان‌شده‌اند و این رقم روز به روز افزایش می‌یابد. - -## DeFi چیست؟ {#what-is-defi} - -DeFi یک واژه‌ی کلی برای محصولات و خدمات مالی در دسترس هر کسی است که می‌تواند از اتریوم استفاده کند – یعنی هرکسی که به اینترنت دسترسی دارد. با DeFi بازارها همواره باز هستند و هیچ قدرت متمرکزی نمی‌تواند پرداخت‌ها را مسدود کند یا دسترسی شما را محدود کند. خدماتی که پیش‌تر کند و در ریسک خطای انسانی بودند حالا خودکار و ایمن‌تر هستند و توسط برنامه‌هایی انجام می‌شوند که هر کسی می‌تواند آن‌ها را بررسی کرده و ایمنی‌شان را بسنجد. - -اقتصاد ارزهای رمزنگاری‌شده بسیار روبه‌رشد است و در آن می‌توانید قرض بدهید، قرض بگیرید، خرید و فروش استقراضی انجام دهید، سود کسب کنید و کارهای دیگر انجام دهید. آرژانتینی‌های علاقه‌مند به ارزهای رمزنگاری‌شده از DeFi برای فرار از تورم فلج‌کننده استفاده کرده‌اند. شرکت‌ها پرداخت دستمزد‌ کارکنانشان به‌صورت آنلاین و در لحظه را شروع کرده‌اند. برخی افراد حتی میلیون‌ها دلار را بدون احراز هویت قرض گرفته‌اند و پس داده‌اند. - - - -## DeFi در مقابل امور مالی سنتی {#defi-vs-tradfi} - -یکی از بهترین راه‌های فهمیدن پتانسیل‌های DeFi، فهمیدن مشکلات امروزه است. - -- برخی مردم دسترسی به ساخت حساب بانکی یا استفاده از خدمات مالی ندارند. -- دسترسی پایین به خدمات مالی می‌تواند باعث شود مردم نتوانند مشغول به کار شوند. -- خدمات مالی می‌توانند مانع از پرداخت حقوق شما شوند. -- یکی از هزینه‌های پنهان خدمات مالی، اطلاعات شخصی شماست. -- دولت‌ها و نهادهای متمرکز می‌توانند هر زمان خواستند بازارها را ببندند. -- ساعات خرید و فروش اغلب محدود به ساعات اداری ویژه‌ یک منطقه‌ زمانی است. -- به دلیل رویه‌های انسانی، تراکنش‌های مالی ممکن است روزها طول بکشند. -- خدمات مالی کارمزد دارند چرا که نهادهای میانجی می‌خواهند سهم خود را دریافت کنند. - -### یک مقایسه: {#defi-comparison} - -| DeFi | امور مالی سنتی | -| ---------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -| شما مالک پول خود هستید. | پول‌ شما توسط شرکت‌ها نگهداری می‌شود. | -| شما کنترل می‌کنید که پولتان کجا برود و چگونه خرج شود. | شما باید به شرکت‌ها اعتماد کنید که پولتان را به شکل اشتباه مدیریت نکنند، مثلاً آن را به افراد پرریسک قرض ندهند. | -| جابجایی پول در چند دقیقه انجام می‌شود. | پرداخت‌ها ممکن است به دلیل فرایندهای دستی تا چند روز طول بکشد. | -| فعالیت تراکنش با نام مستعار انجام می‌شود. | فعالیت مالی کاملاً وابسته به هویت شخص است. | -| DeFi برای همه آزاد است. | شما باید برای استفاده از خدمات مالی درخواست بدهید. | -| بازارها همواره باز هستند. | بازارها بسته می‌شوند چرا که کارمندان نیاز به استراحت دارند. | -| بر پایه‌ی شفافیت ساخته‌شده‌است – هر کس می‌تواند اطلاعات محصول را نگاه کند و نحوه‌ی کار سیستم را بررسی کند. | نهادهای مالی همانند کتاب‌های بسته هستند: نمی‌توانید از آن‌ها درخواست کنید که تاریخچه‌ی وام‌ها، تاریخچه‌ی دارایی‌های مدیریت‌شده‌ی آن‌ها و غیره را ببینید. | - - - مشاهده‌ی برنامه‌های DeFi - - -## همه چیز با بیت‌کوین شروع شد... {#bitcoin} - -از خیلی جهات بیت‌کوین اولین برنامه‌ی DeFi محسوب می‌شود. بیت‌کوین به شما اجازه می‌دهد که ارزش را واقعاً در اختیار داشته باشید و کنترل کنید و برای هر کسی در هر کجای جهان بفرستید. بیت‌کوین این کار را با فراهم کردن راهی برای توافق بر یک دفترکل حاوی حساب‌های کاربری بدون نیاز به اعتماد به یک میانجی سوم برای تعداد زیادی آدم که به یکدیگر اعتماد ندارند انجام می‌دهد. بیت‌کوین برای همه آزاد است و هیچ‌کس نمی‌تواند برای آن قانون وضع کند. قوانین بیت‌کوین، مثل کمیابی و باز بودنش، در فناوری آن نهادینه شده‌اند. مانند امور مالی سنتی نیست که دولت‌ها بتوانند پول چاپ کنند که ارزش پس‌اندازهای شما کم شود و شرکت‌ها بتوانند بازارها را ببندند. - -اتریوم بر همین اساس ساخته شده‌است. همانند بیت‌کوین، قوانین برای شما و هر کسی که به آن دسترسی دارد تغییر نمی‌کند. اما با استفاده از [قراردادهای هوشمند](/glossary#smart-contract) این پول دیجیتال قابل‌برنامه‌نویسی شده‌است تا بتوانید کارهایی فراتر از نگهداری و انتقال ارزش انجام دهید. - - - -## پول قابل‌برنامه‌ریزی {#programmable-money} - -عجیب به نظر می‌رسد... «چرا باید بخواهم پولم را برنامه‌نویسی کنم؟» با این حال، این کار چیزی فراتر از ویژگی‌های پیش‌فرض توکن‌ها در اتریوم است. هر شخصی می‌تواند منطق را بر روی پرداخت‌ها برنامه‌نویسی کند. پس می‌توانید کنترل و ایمنی بیت‌کوین را در کنار خدمات ارائه‌شده توسط نهادهای مالی داشته باشید. با این ویژگی شما می‌توانید کارهایی با ارزهای رمزنگاری‌شده بکنید که با بیت‌کوین نمی‌توانستید انجام دهید؛ مثل قرض دادن و قرض گرفتن، برنامه‌ریزی کردن پرداخت‌ها، سرمایه‌گذاری در صندوق‌های سرمایه‌گذاری مبتنی بر شاخص و غیره. - - -
اگر تازه پا به جهان اتریوم گذاشته‌اید، نگاهی به پیشنهاد‌های ما برای برنامه‌های DeFi جهت استفاده بیاندازید.
- - مشاهده‌ی برنامه‌های DeFi - -
- -## با 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} - -نوسانات ارزهای رمزنگاری‌شده برای بسیاری از محصولات مالی و هزینه‌کردهای عمومی یک مشکل محسوب می‌شود. جامعه‌ی DeFi این مشکل را با پایدرز حل کرده است. ارزش آن‌ها به یک دارایی دیگر متصل است؛ عموماً به یک ارز مشهور مثل دلار. - -ارزهایی همچون Dai یا USDC ارزشی حدود یک دلار دارند. این موضوع باعث می‌شود برای کسب درآمد یا خرید عالی باشند. بسیاری از مردم در آمریکای لاتین از پایدارز به عنوان روشی برای حفاظت از پس‌انداز خود در دوران عدم‌اطمینان بسیار زیاد به ارزهایی که دولت خودشان ساخته است، استفاده کرده‌اند. - - - اطلاعات بیشتر درباره‌ی پایدارز - - - - -### قرض گرفتن {#lending} - -قرض گرفتن پول از فراهم‌کنندگان غیرمتمرکز به دو شکل است. - -- همتا به همتا، به این معنی که قرض‌گیرنده به‌طور مستقیم از یک قرض‌دهنده‌ی مشخص قرض می‌گیرد. -- بر پایه‌ی استخر که در آن قرض‌دهندگان وجوه (نقدینگی) را به یک استخر ارائه می‌دهند و قرض‌گیرندگان می‌توانند از آن قرض بگیرند. - - - مشاهده‌ی برنامه‌های غیرمتمرکز برای قرض گرفتن - - -مزایای بسیاری برای استفاده از یک قرض‌دهنده‌ی غیرمتمرکز وجود دارد... - -#### قرض گرفتن ضمن حفظ حریم خصوصی {#borrowing-privacy} - -امروزه قرض گرفتن و قرض دادن پول به‌کلی به افراد دخیل در آن مربوط است. بانک‌ها پیش از وام دادن به شما مطمئن می‌شوند که آیا وام را بازپرداخت می‌کنید یا خیر. - -قرض دادن غیرمتمرکز به احراز هویت هیچ‌یک از طرفین نیاز ندارد. در عوض، قرض‌گیرنده باید وثیقه‌ای بگذارد که قرض‌دهنده در صورت عدم بازپرداخت به‌صورت خودکار دریافتش خواهد کرد. برخی قرض‌دهندگان حتی NFTها را به عنوان وثیقه می‌پذیرند. NFT سندی برای یک دارایی یکتا است؛ مثلاً یک نقاشی. [اطلاعات بیشتر درباره‌ی NFT](/nft/) - -این ویژگی به شما امکان می‌دهد که بدون چک اعتباری یا دادن اطلاعات خصوصی، پول قرض بگیرید. - -#### دسترسی به سرمایه‌های جهانی {#access-global-funds} - -با استفاده از یک قرض‌دهنده‌ی غیرمتمرکز به سرمایه‌هایی از سراسر جهان دسترسی دارید، نه صرفاً سرمایه‌هایی که در اختیار بانک یا نهاد منتخبتان هستند. این موضوع باعث می‌شود که وام‌ها در دسترس‌تر بوده و نرخ بهره بهتر باشد. - -#### کارآیی مالیاتی {#tax-efficiencies} - -قرض گرفتن می‌تواند به شما اجازه دهد که از سرمایه‌هایی که نیاز دارید بدون فروختن اتر خود (که مالیات دارد) استفاده کنید. در عوض می‌توانید از ETH خود به‌عنوان وثیقه برای دریافت وام استیبل کوین استفاده کنید. با این کار جریان نقدینگی لازم را خواهید داشت و می‌توانید اتر خود را نگه‌داری کنید. پایدارزها توکن‌هایی هستند که هنگام نیاز به وجه نقد بسیار بهتر هستند، چون برخلاف اتر نوسانات ارزشی ندارند. [اطلاعات بیشتر درباره‌ی پایدارزها](#stablecoins) - -#### وام لحظه‌ای {#flash-loans} - -وام‌های لحظه‌ای یک شکل تجربی‌تر از قرض دادن غیرمتمرکز هستند که به شما اجازه می‌دهند بدون وثیقه گذاشتن یا در اختیار قرار دادن اطلاعات شخصی قرض بگیرید. - -این نوع از وام در حال حاضر به‌طور گسترده برای افراد غیرفنی در دسترس نیست، اما اشاره‌ای است برای این که در آینده چه اتفاقاتی می‌تواند برای همه ممکن باشد. - -این وام‌ها به این صورت کار می‌کنند که قرض‌ دادن و پس دادن قرض در یک تراکنش انجام می‌شود. اگر امکان بازپرداخت وام در لحظه نباشد، تراکنش برمی‌گردد، به گونه‌ای که گویی هرگز اتفاق نیافتاده است. - -پول‌هایی که اغلب استفاده می‌شوند در استخر‌های نقدینگی (استخرهای بزرگی از پول که برای قرض دادن استفاده می‌شوند) نگه‌داری می‌شوند. اگر این پول‌ها در لحظه‌ای مشخص در حال استفاده نباشند، یک فرصت برای شخصی دیگر ایجاد می‌شود که این پول‌ها را قرض بگیرد، با آن کسب‌وکاری برای خود بسازد و سپس همه‌ی پول را دقیقاً در زمانی که قرض گرفته بازپس‌دهد. - -این به این معناست که منطق بسیار زیادی را باید درون یک تراکنش مشخص گنجاند. یک مثال ساده می‌تواند این باشد که یک فرد، میزان زیادی از یک دارایی را با وام لحظه‌ای قرض بگیرد تا در صرافی دیگری با قیمتی بالاتر بفروشد. - -بنابراین در یک تراکنش، اتفاقات زیر رخ می‌دهند: - -- مقدار X $asset را به قیمت $1.00 از صرافی A قرض می‌گیرید -- X $asset را در صرافی B به قیمت $1.00 تومان به فروش می‌رسانید -- قرض خود را به صرافی A برمی‌گردانید -- سود خود منهای کارمزد تراکنش را نگه می‌دارید - -اگر عرضه‌ی صرافی B ناگهان افت کند و این کاربر نتواند به میزان کافی برای پوشش دادن قرضش از این صرافی خرید کند، تراکنش انجام نمی‌شود. - -برای این که بتوانید مثال پیش‌گفته را در نظام مالی سنتی دنیا انجام دهید، به مقدار بسیار زیادی پول نیاز دارید. این راهبردهای پول‌سازی تنها در دسترس افرادی هستند که سرمایه‌ی بسیار زیادی دارند. وام‌های لحظه‌ای نمونه‌ای از آینده‌ای هستند که داشتن پول از ملزومات پول درآوردن نخواهد بود. - -[اطلاعات بیشتر درباره‌ی وام‌های لحظه‌ای](https://aave.com/flash-loans/) - - - -### شروع پس‌انداز با ارزهای رمزنگاری‌شده {#saving} - -#### قرض دادن {#lending} - -شما می‌توانید از قرض دادن ارزهای رمزنگاری‌شده‌ی خود به دیگران بهره کسب کنید و رشد سرمایه‌تان را به چشم ببینید. در حال حاضر نرخ بهره‌ بسیار بیشتر از آن چیزی است که احتمالاً در بانک‌های محلی‌تان دریافت می‌کنید (البته اگر به حد کافی خوش‌شانس باشید که چنین بانکی نزدیکتان باشد). این مثال را ببینید: - -- شما 100 Dai، یک [پایدارز](/stablecoins/)، را به یک محصول مثل Aave قرض می‌دهید. -- شما 100 Aave Dai‏ (aDai) می‌گیرید. این توکن نمایش‌دهنده‌ی Dai قرض‌داده‌شده‌ی شما است. -- aDai شما بر اساس نرخ بهره زیاد می‌شود و می‌توانید شاهد افزایش میزان موجودی خود در کیف پولتان باشید. بسته به نرخ درصدی سالانه، موجودی کیف‌پول شما پس از چند روز یا حتی چند ساعت چیزی شبیه 100.1234 خواهد بود! -- شما می‌توانید به‌اندازه‌ی aDaiهای موجودی خود در هر زمانی از حساب خود Dai برداشت کنید. - - - مشاهده‌ی برنامه‌های غیرمتمرکز قرض‌دهی - - -#### بخت‌آزمایی‌های بدون باخت {#no-loss-lotteries} - -بخت‌آزمایی‌های بدون باخت مثل PoolTogether روشی جدید، خلاقانه و لذت‌بخش برای سود کردن با پول هستند. - -- شما 100 بلیط با 100 توکن Dai می‌خرید. -- 100 عدد plDai که نمایش‌دهنده‌ی 100 بلیطتان است دریافت می‌کنید. -- اگر یکی از بلیط‌های شما به عنوان بلیط برنده انتخاب شود، موجودی plDai شما به اندازه‌ی جایزه‌ی استخر افزایش می‌یابد. -- اگر برنده نشوید، 100 plDai شما به قرعه‌کشی هفته‌ی بعد منتقل می‌شود. -- می‌توانید به‌اندازه‌ی plDaiهایی که موجود دارید در هر زمانی از حساب خود Dai برداشت کنید. - -جایزه‌ی استخر از بهره‌ای که با قرض‌دهی سپرده‌ی بلیط‌ها همچو مثال قرض‌دهی بالا به دست می‌آید، تولید می‌شود. - - - PoolTogether را امتحان کنید - - - - -### مبادله‌ی توکن‌ها {#swaps} - -هزاران توکن روی اتریوم وجود دارند. صرافی‌های غیرمتمرکز (DEXها) به شما اجازه می‌دهند هر زمان که خواستید توکن‌های مختلف را مبادله کنید. شما هیچ وقت کنترل دارایی خود را از دست نمی‌دهید. این کار مثل مراجعه به صرافی در سفر به کشوری دیگر است. تفاوت در این است که صرافی‌های DeFi هرگز بسته نمی‌شوند. بازارها به‌صورت شبانه‌روزی در تمام 365 روز سال باز هستند و فناوری تضمین می‌کند همواره شخصی وجود داشته باشد که معامله را بپذیرد. - -برای مثال، اگر بخواهید از بخت‌آزمایی بدون باخت PoolTogether استفاده کنید (بالاتر توضیح داده‌ایم)، به توکنی مثل Dai یا USDC نیاز خواهید داشت. این صرافی‌های غیرمتمرکز به شما اجازه می‌دهند که اتر (ETH) خود را به این توکن‌ها تبدیل کنید و وقتی کارتان تمام شد به حالت اول تبدیل کنید. - - - مشاهده‌ی صرافی‌های توکن‌ها - - - - -### معامله‌ی پیشرفته {#trading} - -برای معامله‌گرانی که می‌خواهند کمی کنترل بیشتری داشته باشند، گزینه‌های پیشرفته‌تر در دسترس است. سفارش محدود، معاملات دائمی (perpetuals)، معاملات حاشیه‌ای (margin trading) و موارد دیگر امکان‌پذیر است. با مبادله‌ی غیرمتمرکز به نقدینگی جهانی متصل خواهید شد، بازار هرگز بسته نخواهد شد و همواره کنترل دارایی‌تان را در دست خواهید داشت. - -وقتی از صرافی‌های متمرکز استفاده می‌کنید مجبور هستید که دارایی‌تان را پیش از معامله به آن‌ها منتقل کنید و برای نگه‌داری دارایی‌تان به آن‌ها اعتماد کنید. دارایی‌های شما وقتی به صرافی‌های متمرکز منتقل شده‌اند در خطر هستند، چون صرافی‌های متمرکز اهداف جذابی برای هکرها هستند. - - - مشاهده‌ی برنامه‌های غیرمتمرکز معامله - - - - -### سبد خود را بزرگ کنید {#investing} - -محصولات مدیریت سرمایه‌ای روی اتریوم وجود دارد که سعی می‌کنند سبد سرمایه‌ای شما را بر اساس راهبرد انتخابی‌تان بزرگ کنند. این کار به‌صورت خودکار انجام می‌شود، برای همه آزاد است و نیازی به مدیریت انسانی ندارد که بخشی از سود را از آن خود کند. - -یک مثال خوب برای این موضوع [صندوق مبتنی بر شاخص DeFi Pulse‏ (DPI)](https://defipulse.com/blog/defi-pulse-index/) است. این صندوق به‌طور خودکار در موجودی خود تغییر ایجاد می‌کند تا مطمئن شود که سبد دارایی‌های شما همواره شامل [بهترین توکن‌های DeFi از نظر ارزش بازار](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} - -با در نظر گرفتن همه‌ی این مسائل، شما به راهی نیاز دارید که بتوانید بر همه‌ی سرمایه‌گذاری‌هایتان، وام‌هایتان و معاملاتتان نظارت داشته باشید. محصولاتی وجود دارند که به شما امکان می‌دهند بتوانید از یکجا بر همه‌ی فعالیت‌های DeFiتان نظارت کنید. این زیبایی مهندسی باز DeFi است. تیم‌ها می‌توانند رابط‌های کاربری‌ای بسازند که نه‌تنها بتوانید موجودی حساب‌هایتان را از طریق آن‌ها ببینید، بلکه بتوانید از ویژگی‌های آن‌ها نیز بهره ببرید. شاید وقتی در دنیای DeFi بیشتر کاوش کردید، این ویژگی را کارگشا بیابید. - - - مشاهده‌ی برنامه‌های غیرمتمرکز سبدگردانی - - - - -## DeFi چگونه کار می‌کند؟ {#how-defi-works} - -DeFi از ارزهای رمزنگاری شده و قرارداد هوشمند استفاده می‌کند تا خدماتی را بدون حضور میانجی ارائه دهد. در دنیای مالی امروز، نهادهای مالی به عنوان تضمین‌کننده های تراکنش‌ ها ایفای نقش می‌کنند. این موضوع به این نهادها قدرت بسیار زیادی می‌دهد، چرا که پول شما از دل آن‌ها می‌گذرد. به‌علاوه، میلیاردها انسان در سراسر جهان حتی نمی‌توانند حساب بانکی داشته باشند. - -در DeFi یک قرارداد هوشمند جایگزین نهادهای مالی در تراکنش‌‌ها می‌شود. قرارداد هوشمند نوعی حساب اتریوم است که می‌‌تواند سرمایه را در خود نگه‌داری کند و آن را در شرایط خاصی به شخصی بفرستد یا مسترد کند. هیچ‌کس نمی‌تواند وقتی قرارداد هوشمند در حال کار است آن را تغییر دهد – این قرارداد همواره به شکلی که برنامه‌نویسی شده کار خواهد کرد. - -یک قرارداد که برای واریز مقرری یا پول توجیبی طراحی شده‌ است، می‌تواند به گونه‌ای برنامه‌نویسی شود که هر جمعه از حساب A به حساب B پول واریز کند. و این کار را تا زمانی انجام خواهد داد که حساب A پول کافی داشته باشد. هیچ‌کس نمی‌‌تواند قرارداد را تغییر دهد و حساب C را به‌عنوان گیرنده اضافه کند تا پول بدزدد. - -به‌علاوه، قراردادها برای همه عمومی هستند تا هر کسی بتوانند آن‌ها را بررسی و امنیت‌سنجی کند. این بدین معنا است که قراردادهای بد اغلب خیلی زود مورد بررسی موشکافانه‌ی جامعه قرار می‌گیرند. - -این به این معنا است که در حال حاضر باید به افرادی که در جامعه‌ی اتریوم فنی‌تر هستند و می‌توانند کدها را بخوانند، بیشتر اعتماد کنیم. جامعه‌ی مبتنی بر متن‌باز کمک می‌کند که توسعه‌دهندگان تحت‌نظر باقی بمانند، اما وقتی قراردادهای هوشمند راحت‌تر قابل‌خواندن شوند و راه‌های دیگری برای سنجش اعتبار لازم کدها توسعه داده‌شوند، این نیاز از بین خواهد رفت. - -## اتریوم و DeFi {#ethereum-and-defi} - -به چند دلیل، اتریوم زیربنایی عالی برای DeFi است: - -- هیچ‌کس مالک اتریوم یا قراردادهای هوشمند روی آن نیست – این موضوع، فرصت استفاده از DeFi را در اختیار همه قرار می‌دهد. این موضوع همچنین به این معنا است که کسی نمی‌تواند قوانین را برای شخص شما عوض کند. -- محصولات DeFi همگی یک زبان مشترک در پشت‌صحنه دارند: اتریوم. این بدان معناست که بسیاری از محصولات در کنار هم و با هم کار می‌کنند. شما می توانید توکن‌ها را در یک پلتفرم قرض دهید و توکن‌های سودتان را در یک بازار متفاوت در یک برنامه‌ی کاملاً متفاوت مبادله کنید. چیزی شبیه نقد کردن امتیازات باشگاه مشتریان در بانک محلی‌تان. -- توکن‌ها و ارزهای رمزنگاری‌شده درون اتریوم که یک دفتر کل اشتراکی است قرار گرفته‌اند – نگه‌داری از تراکنش‌ها و تملک‌ها کار اتریوم است. -- اتریوم آزادی کامل مالی را در اختیار شما قرار می‌دهد – بیشتر محصولات هرگز کنترل سرمایه‌ی شما را به دست نمی‌گیرند و کنترل آن به‌طور کامل در اختیار شما خواهد بود. - -می‌توانید DeFi را در قالب چند لایه در نظر بگیرید: - -1. زنجیره‌ی بلوکی – اتریوم شامل تاریخچه‌ی تراکنش‌ها و وضعیت حساب‌ها است. -2. دارایی‌ها – [اتر (ETH)](/eth/) و دیگر توکن‌ها (ارزها). -3. پروتکل‌ها – [قراردادهای هوشمندی](/glossary/#smart-contract) که عملکرد را امکان‌پذیر می‌کنند؛ مثلاً خدمتی که امکان قرض دادن دارایی‌ها را به صورت غیرمتمرکز فراهم می‌کند. -4. [برنامه‌های کاربردی](/dapps/) – محصولاتی که برای مدیریت و دسترسی به پروتکل‌ها استفاده می‌کنیم. - -## DeFi را بسازید {#build-defi} - -DeFi یک جنبش متن‌باز است. پروتکل‌ها و برنامه‌های کاربردی DeFi همگی به روی شما باز هستند تا آن‌ها را بررسی کنید، فورک کنید، و روی آن‌ها خلاقیت به خرج دهید. به دلیل این ساختار لایه‌ای (که همگی از زنجیره‌ی بلوکی و دارایی‌های پایه یکسان استفاده می‌کنند)، پروتکل‌ها می‌توانند با یکدیگر ترکیب شده و تطبیق داده‌شوند تا فرصت‌‌های ترکیبی منحصربه‌فردی را ایجاد کنند. - - - اطلاعات بیشتر درباره‌ی ساختن برنامه‌‌های غیرمتمرکز - - -## بیشتر بخوانید {#futher-reading} - -### داده‌های DeFi {#defi-data} - -- [DeFi Prime](https://defiprime.com/) -- [DeFi Llama](https://defillama.com/) -- [نرخ DeFi](https://defirate.com/) - -### مقاله‌های DeFi {#defi-articles} - -- [راهنمای امور مالی غیرمتمرکز (DeFi) برای مبتدیان](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu، تاریخ 6 ژانویه 2020_ - -### ویدیوها {#videos} - -- [Finematics - decentralized finance education](https://finematics.com/) – _ویدیوهایی درباره‌ی DeFi_ -- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _مقدمات DeFi: هر آنچه لازم است برای شروع در این فضای کمابیش گیج‌کننده بدانید._ -- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA)‏ _DeFi چیست؟_ - -### جوامع {#communities} - -- [سرور دیسکورد DeFi Llama](https://discord.gg/buPFYXzDDd) -- [سرور دیسکورد DeFi Pulse](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/fa/desci/index.md b/src/content/translations/fa/desci/index.md deleted file mode 100644 index 5f81b225391..00000000000 --- a/src/content/translations/fa/desci/index.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: دانش نامتمرکز (دیسای) -description: مروری بر علم غیرمتمرکز در اتریوم -lang: fa -template: use-cases -emoji: ":microscope:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: یک جایگزین جهانی و باز برای سیستم علمی فعلی. -summaryPoint2: فناوری که دانشمندان را قادر می‌سازد بودجه جمع‌آوری کنند، آزمایش‌ها را انجام دهند، داده‌ها را به اشتراک بگذارند، بینش‌ها را توزیع کنند و موارد دیگر. -summaryPoint3: بر اساس جنبش علم باز است. ---- - -## علم غیرمتمرکز (DeSci) چیست؟ {#what-is-desci} - -علم غیرمتمرکز (DeSci) جنبشی است که هدف آن ایجاد زیرساخت عمومی برای تأمین مالی، ایجاد، بررسی، اعتباردهی، ذخیره و انتشار دانش علمی به طور عادلانه و عادلانه با استفاده از پشته Web3 است. - -هدف DeSci ایجاد اکوسیستمی است که در آن دانشمندان تشویق می شوند تا تحقیقات خود را آشکارا به اشتراک بگذارند و اعتبار کار خود را دریافت کنند و در عین حال به هر کسی اجازه دهد به راحتی به تحقیق دسترسی داشته باشد و در آن مشارکت کند. DeSci از این ایده استفاده می کند که دانش علمی باید در دسترس همه باشد و روند تحقیقات علمی باید شفاف باشد. DeSci در حال ایجاد یک مدل تحقیقات علمی غیرمتمرکز و توزیع‌شده‌تر است و آن را در برابر سانسور و کنترل مقامات مرکزی مقاوم‌تر می‌کند. DeSci امیدوار است با غیرمتمرکز کردن دسترسی به بودجه، ابزارهای علمی و کانال های ارتباطی، محیطی ایجاد کند که در آن ایده های جدید و غیر متعارف شکوفا شوند. - -علم غیرمتمرکز به منابع مالی متنوع‌تر (از [DAO](/dao/)، [کمک مالی درجه دوم](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) تا تأمین مالی جمعی و بیشتر)، داده‌ها و روش‌های دسترسی بیشتر، و با ارائه انگیزه‌هایی برای تکرارپذیری، اجازه می‌دهد. - -### خوان بنت - جنبش DeSci - - - -## چگونه DeSci علم را بهبود می بخشد {#desci-improves-science} - -فهرست ناقصی از مشکلات کلیدی در علم و اینکه چگونه علم غیرمتمرکز می تواند به رفع این مسائل کمک کند - -| **علم غیرمتمرکز** | **علم سنتی** | -| ---------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | -| توزیع وجوه توسط مردم با استفاده از مکانیسم هایی مانند کمک های مالی درجه دوم یا DAO ها تعیین می شود. | گروه های کوچک، بسته و متمرکز، توزیع وجوه را کنترل می کنند. | -| شما با همتایان خود از سراسر جهان در تیم های پویا همکاری می کنید. | سازمان های تامین مالی و موسسات خانگی همکاری های شما را محدود می کنند. | -| تصمیمات مالی به صورت آنلاین و شفاف گرفته می شود. مکانیسم های تامین مالی جدید بررسی شده است. | تصمیمات تامین مالی با مدت زمان طولانی و شفافیت محدود اتخاذ می شود. مکانیسم های مالی کمی وجود دارد. | -| اشتراک‌گذاری خدمات آزمایشگاهی با استفاده از Web3 اولیه آسان‌تر و شفاف‌تر شده است. | به اشتراک گذاری منابع آزمایشگاهی اغلب آهسته و مبهم است. | -| می توان مدل های جدیدی برای انتشار ایجاد کرد که از Web3 اولیه برای اعتماد، شفافیت و دسترسی جهانی استفاده می کنند. | شما از طریق مسیرهای مشخصی که اغلب به عنوان ناکارآمد، جانبدارانه و استثمارگر شناخته می شوند، منتشر می کنید. | -| شما می توانید نشانه ها و شهرت را برای کار بررسی همتا کسب کنید. | کار بازبینی شما بدون دستمزد است و به نفع ناشران سودآور است. | -| شما مالک مالکیت معنوی (IP) هستید که تولید می کنید و آن را طبق شرایط شفاف توزیع می کنید. | مؤسسه خانگی شما مالک IP تولید شده شما است. دسترسی به IP شفاف نیست. | -| به اشتراک گذاشتن تمام تحقیقات، از جمله داده‌های حاصل از تلاش‌های ناموفق، با داشتن تمام مراحل در زنجیره. | سوگیری انتشار به این معنی است که محققان احتمال بیشتری برای به اشتراک گذاشتن آزمایش هایی دارند که نتایج موفقیت آمیزی داشته اند. | - -## اتریوم و DeSci {#ethereum-and-desci} - -یک سیستم علمی غیرمتمرکز به امنیت قوی، حداقل هزینه های پولی و معاملاتی و یک اکوسیستم غنی برای توسعه برنامه نیاز دارد. اتریوم همه چیز مورد نیاز برای ایجاد یک پشته علمی غیرمتمرکز را فراهم می کند. - -## موارد استفاده DeSci {#use-cases} - -DeSci در حال ساخت مجموعه ابزار علمی برای ورود دانشگاه Web2 به دنیای دیجیتال است. در زیر نمونه‌ای از موارد استفاده است که Web3 می‌تواند به جامعه علمی ارائه دهد. - -### انتشار {#publishing} - -انتشار علم بسیار مشکل ساز است زیرا توسط مؤسسات انتشاراتی مدیریت می شود که برای تولید مقالات به نیروی کار رایگان دانشمندان، داوران و ویراستاران متکی هستند اما پس از آن هزینه های گزافی برای انتشار دریافت می کنند. عموم مردم که معمولاً به طور غیرمستقیم برای اثر و هزینه های انتشار از طریق مالیات پرداخت کرده اند، اغلب نمی توانند بدون پرداخت مجدد به ناشر به همان اثر دسترسی داشته باشند. مجموع هزینه‌های انتشار مقالات علمی منفرد اغلب پنج رقمی است ($USD) که کل مفهوم دانش علمی به‌عنوان [کالای عمومی را تضعیف می‌کند](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} - -تکرارپذیری و تکرارپذیری پایه های اکتشاف علمی با کیفیت هستند. - -- نتایج قابل تکرار را می توان چندین بار متوالی توسط یک تیم با استفاده از روش یکسان به دست آورد. -- نتایج قابل تکرار را می توان توسط گروهی متفاوت با استفاده از تنظیمات آزمایشی یکسان به دست آورد. - -ابزارهای جدید وب 3 می توانند اطمینان حاصل کنند که تکرارپذیری و تکرارپذیری اساس کشف هستند. ما می‌توانیم علم با کیفیت را در تار و پود فناوری دانشگاه ببافیم. 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 {#ip-ownership} - -مالکیت فکری (IP) یک مشکل بزرگ در علم سنتی است: از گیر افتادن در دانشگاه ها یا استفاده نشدن در بیوتکنولوژی گرفته تا ارزش گذاری بسیار سخت. با این حال، مالکیت دارایی‌های دیجیتال (مانند داده‌های علمی یا مقالات) چیزی است که Web3 با استفاده از [توکن غیرقابل تعویض (NFT)](/nft/)خوبی انجام می‌دهد. - -همانطور که NFTها می توانند درآمد معاملات آتی را به سازنده اصلی بازگردانند، شما می توانید زنجیره های انتساب ارزش شفاف را برای پاداش دادن به محققان، نهادهای حاکم (مانند DAO) یا حتی افرادی که داده های آنها جمع آوری شده است ایجاد کنید. - -[IP-NFTs](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) همچنین می تواند به عنوان کلیدی برای مخزن داده های غیرمتمرکز آزمایش های تحقیقاتی در حال انجام عمل کند و به NFT و [DeFi](/defi/) مالی (از تقسیم بندی تا استخرهای وام دهی و ارزیابی ارزش) متصل شود. همچنین به نهادهای داخلی زنجیره ای مانند DAO مانند [VitaDAO](https://www.vitadao.com/) اجازه می دهد تا تحقیقات را مستقیماً روی زنجیره انجام دهند. ظهور توکن‌های غیرقابل انتقال ["soulbound"](https://vitalik.ca/general/2022/01/26/soulbound.html) نیز ممکن است نقش مهمی در DeSci ایفا کند و به افراد اجازه می‌دهد تا تجربه و اعتبار خود را در ارتباط با آدرس اتریوم خود ثابت کنند. - -### ذخیره سازی داده ها، دسترسی و معماری {#data-storage} - -داده های علمی را می توان با استفاده از الگوهای Web3 بسیار در دسترس تر کرد و ذخیره سازی توزیع شده تحقیقات را قادر می سازد تا از رویدادهای فاجعه بار جان سالم به در ببرد. - -نقطه شروع باید سیستمی باشد که توسط هر هویت غیرمتمرکزی که دارای اعتبارنامه های قابل تایید مناسب است، قابل دسترسی باشد. این اجازه می‌دهد تا داده‌های حساس به‌طور ایمن توسط طرف‌های مورد اعتماد تکثیر شوند و مقاومت در برابر افزونگی و سانسور، بازتولید نتایج، و حتی امکان همکاری چندین طرف و افزودن داده‌های جدید به مجموعه داده را ممکن می‌سازد. روش‌های محاسباتی محرمانه مانند [محاسبه به داده](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 از سناریوهای بالا پشتیبانی می‌کنند و پایه‌ای را برای علوم باز واقعاً فراهم می‌کنند، جایی که محققان می‌توانند کالاهای عمومی را بدون مجوز دسترسی یا هزینه ایجاد کنند. راه حل های داده عمومی Web3 مانند IPFS، Arweave و Filecoin برای تمرکززدایی بهینه شده اند. به عنوان مثال، dClimate دسترسی جهانی به داده های آب و هوا و آب و هوا، از جمله ایستگاه های هواشناسی و مدل های پیش بینی آب و هوا را فراهم می کند. - -## مشارکت کنید {#get-involved} - -پروژه ها را کاوش کنید و به جامعه DeSci بپیوندید. - -- [DeSci.Global: رویدادهای جهانی و تقویم ملاقات](https://desci.global) -- [بلاک چین برای علم تلگرام](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: سازنده ابزار انتشارات DeSci](https://descifoundation.org/) -- [DeSci.World: فروشگاه تک مرحله ای برای مشاهده کاربران، درگیر شدن با علم غیرمتمرکز](https://desci.world) -- [پروتکل فلمینگ: اقتصاد داده منبع باز که به کشف مشترک زیست پزشکی کمک می کند](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 یا desci خود بودجه دریافت کنید](https://www.molecule.to/) -- [ResearchHub: یک نتیجه علمی را ارسال کنید و با همتایان خود گفتگو کنید](https://www.researchhub.com/) -- [VitaDAO: دریافت بودجه از طریق توافقنامه های تحقیقاتی حمایت شده برای تحقیقات طول عمر](https://www.vitadao.com/) -- [پروتکل فلمینگ: اقتصاد داده منبع باز که به کشف مشترک زیست پزشکی کمک می کند](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/) -- [DeSci Labs](https://www.desci.com/) - -ما از پیشنهادهایی برای فهرست کردن پروژه‌های جدید استقبال می‌کنیم - لطفاً برای شروع به خط مشی فهرست [](/contributing/adding-desci-projects/) ما نگاه کنید! - -## بیشتر بخوانید {#further-reading} - -- [DeSci Wiki توسط Jocelynn Pearl and Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) -- [راهنمای بیوتکنولوژی غیرمتمرکز توسط Jocelynn Pearl برای آینده a16z](https://future.a16z.com/a-guide-to-decentralized-biotech/) -- [مورد برای DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) -- [راهنمای DeSci](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) -- [ظهور DAOهای بیوتکنولوژی](https://molecule.to/blog/the-emergence-of-biotech-daos) -- [Paul Kohlhaas - DeSci: The Future of Science Decentralized (پادکست)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) -- [هستی‌شناسی استنتاج فعال برای علم غیرمتمرکز: از حس‌سازی موقعیت‌یافته تا عوام معرفتی](https://zenodo.org/record/6320575) -- [DeSci: The Future of Research اثر ساموئل آکینوشو](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) -- [تامین مالی علم (پایان: DeSci و رمزارزهای اولیه) توسط نادیا](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) -- [Juan Benet - DeSci، آزمایشگاههای مستقل، & علم داده در مقیاس بزرگ](https://www.youtube.com/watch?v=zkXM9H90g_E) -- [Sebastian Brunemeier - چگونه DeSci می تواند تحقیقات زیست پزشکی را تغییر دهد & سرمایه خطرپذیر](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/fa/developers/docs/nodes-and-clients/index.md b/src/content/translations/fa/developers/docs/nodes-and-clients/index.md deleted file mode 100644 index 3834eff6c43..00000000000 --- a/src/content/translations/fa/developers/docs/nodes-and-clients/index.md +++ /dev/null @@ -1,320 +0,0 @@ ---- -title: گره‌ها و کلاینت‌ها -description: نگاهی اجمالی بر گره‌ها و نرم‌افزار کلاینت اتریوم، به علاوه‌ی نحوه‌ی راه‌اندازی یک گره و علت انجام آن. -lang: fa -sidebarDepth: 2 ---- - -اتریوم یک شبکه‌ی توزیع‌شده از رایانه‌هایی است که نرم‌افزار را اجرا می‌کنند (به نام گره‌ها) که می‌تواند بلوک‌ها و داده‌های تراکنش را تأیید کنند. برای «اجرای» یک گره، به یک برنامه‌ی کاربردی که به عنوان کلاینت شناخته می‌شود در رایانه خود نیاز دارید. - -## پیش‌نیازها {#prerequisites} - -پیش از آن که نمونه‌ی کلاینت اتریوم خود را اجرا کنید و در این موضوع عمیق شوید باید [مبانی ماشین مجازی اتریوم](/developers/docs/evm/) و شبکه‌ی همتا به همتا را بدانید و متوجه شوید. به [معرفی اتریوم](/developers/docs/intro-to-ethereum/) ما نگاهی بیاندازید. - -If you're new to the topic of nodes, we recommend first checking out our user-friendly introduction on [running an Ethereum node](/run-a-node). - -## کلاینت‌ها و گره‌ها چه هستند؟ {#what-are-nodes-and-clients} - -«گره» به اجرای یک تکه از نرم‌افزار کلاینت گفته می‌شود. کلاینت یک پیاده‌سازی از اتریوم است که تمام تراکنش‌های هر بلوک را تأیید می‌کند، شبکه را ایمن نگه می‌دارد و داده‌ها را دقیق نگه می‌دارد. - -شما می‌توانید یک نمای در لحظه و زنده را از شبکه‌ی اتریوم را با نگاه به [نقشه‌ی گره‌ها](https://etherscan.io/nodetracker) ببینید. - -[کلاینت‌های اتریوم](/developers/docs/nodes-and-clients/#execution-clients) بسیاری در زبان‌های برنامه‌نویسی مختلفی مثل گو، Rust، جاوا اسکریپت، تایپ‌اسکریپت، پایتون، سی‌شارپ، دات‌نت، Nim و جاوا وجود دارند. همه‌ی این پیاده‌سازی‌ها مشخصات رسمی (در اصل [یلو پیپر اتریوم](https://ethereum.github.io/yellowpaper/paper.pdf)) را دنبال می‌کنند. این مشخصاتْ نحوه‌ی عملکرد شبکه‌ی اتریوم و زنجیره‌ی بلوکی را تعیین می‌کند. - -![کلاینت اجرا](./client-diagram.png) نمودار ساده شده‌ی ویژگی‌های کلاینت اتریوم. - -## انواع گره {#node-types} - -اگر می‌خواهید که [گره‌ی خودتان را اجرا کنید](/developers/docs/nodes-and-clients/run-a-node/) باید بدانید که گره‌های مختلفی وجود دارند که داده‌های مختلفی را استفاده می‌کنند. در واقع کلاینت‌ها می‌توانند سه نوع گره را اجرا کنند - سبک، کامل و آرشیو. گزینه‌های استراتژی‌های همگام‌سازی مختلف هم وجود دارند که زمان همگام‌سازی را سریع‌تر می‌کنند. همگام‌سازی به این اشاره دارد که با چه سرعتی می‌تواند به‌روزترین اطلاعات را در مورد وضعیت اتریوم دریافت کند. - -### گره‌ی کامل {#full-node} - -- داده‌های زنجیره بلوکی را کامل نگه‌داری می‌کند. -- در اعتبارسنجی بلوک‌ها شرکت می‌کند و همه‌ی وضعیت‌ها و بلوک‌ها را تأیید می‌کند. -- همه‌ی وضعیت‌ها می‌توانند از گره‌‌ی کامل استخراج شوند. -- در خدمت شبکه است و داده‌ها را در زمان درخواست ارائه می‌دهد. - -### گره‌ی سبک {#light-node} - -- زنجیره‌ی هدر را ذخیره و هر چیز دیگری را درخواست می‌کند. -- می‌تواند اعتبار داده‌ها را نسبت به ریشه‌های حالت در هدرهای بلوک تأیید کند. -- برای دستگاه‌های کم‌ظرفیت، مانند دستگاه‌های تعبیه‌شده یا تلفن‌های همراه، که توانایی ذخیره‌ی چندین گیگابایت داده‌های زنجیره بلوکی را ندارند، مفید است. - -### گره‌‌ی آرشیو {#archive-node} - -- هر چیزی که در گره کامل نگهداری می‌شود را ذخیره کرده و یک آرشیو کامل از وضعیت‌های تاریخی می‌سازد. وقتی می‌خواهید درخواستی بفرستید، مثل گرفتن موجودی حساب در بلوک شماره‌ی 4,000,000، یا به‌طور ساده و قابل‌اتکا [مجموعه‌ی تراکنش خود را بدون نیاز به استخراج آن‌ها با استفاده از OpenEthereum آزمایش کنید](https://openethereum.github.io/JSONRPC-trace-module#trace_callmany)، نیاز می‌شود. -- این داده‌ها واحدهای ترابایتی را نشان می‌دهند که گره‌های آرشیو را برای کاربران متوسط از ​​جذابیت می‌اندازد، اما می‌تواند برای سرویس‌هایی مانند جستجوگرهای بلوک، نگهدارندگان کیف پول و تجزیه و تحلیل زنجیره مفید باشند. - -همگام‌سازی کلاینت‌ها در هر حالتی غیر از آرشیو منجر به کاهش داده‌های زنجیره‌ی بلوکی می‌شود. این بدان معناست که هیچ آرشیوی از تمام وضعیت‌های تاریخی وجود ندارد اما گره‌ی کامل قادر است آنها را بنا به تقاضا بسازد. - -## چرا باید یک گره‌ی اتریوم را اجرا کنم؟ {#why-should-i-run-an-ethereum-node} - -اجرای یک گره به شما این امکان را می‌دهد که بدون نیاز به اعتماد و به شکل خصوصی از اتریوم ضمن پشتیبانی از اکوسیستم استفاده کنید. - -### مزایا برای شما {#benefits-to-you} - -اجرای گره‌ی خودتان شما را قادر می‌سازد از اتریوم به شکل واقعاً خصوصی، خودکفا و بدون نیاز به اعتماد استفاده کنید. نیازی نیست به شبکه اعتماد کنید زیرا می‌توانید داده‌ها را خودتان با کلاینت خود تأیید کنید. «اعتماد نکنید، اعتبارسنجی کنید» یک سخن مشهور مربوط به زنجیره‌ی بلوکی است. - -- گره‌ی شما تمام تراکنش‌ها و بلوک‌ها را با توجه به قوانین اجماع به تنهایی اعتبارسنجی می‌کند. این به این معنی است که شما نیازی به اتکا به هیچ گره‌ی دیگری در شبکه یا اعتماد تام به آن‌ها ندارید. -- شما نیازی به افشای آدرس و موجودیتان به گره‌های تصادفی ندارید. همه چیز می‌تواند با کلاینت خودتان بررسی شود. -- اگر از گره‌ی خودتان استفاده کنید برنامه‌ی غیرمتمرکزتان می‌تواند ایمن‌تر و خصوصی‌تر باشد. [MetaMask](https://metamask.io), [MyEtherWallet](https://myetherwallet.com) and some other wallets can be easily pointed to your own local node. -- شما می‌توانید نقاط پایانی فراخوانی رویه‌ای دوردست (RPC) سفارشی خود را برنامه‌ریزی کنید. -- شما می‌توانید با استفاده از **ارتباط بین پردازشی (IPC)** گره‌ی خود را متصل کنید یا برای بارگذاری برنامه‌ی خود به‌عنوان افزونه آن را بازنویسی کنید. با این روش تأخیر کمی خواهید داشت، که برای جایگزینی تراکنش‌های شما در سریع‌ترین زمان ممکن لازم است (یعنی پیش‌اجرا). - -![چگونه با استفاده از برنامه‌های کاربردی و گره‌ها به اتریوم دسترسی داشته باشید](./nodes.png) - -### مزایای شبکه {#network-benefits} - -داشتن مجموعه‌ی متنوعی از گره‌ها برای سلامت، امنیت و انعطاف‌پذیری عملیاتی اتریوم حائظ اهمیت است. - -- آن‌ها دسترسی به داده‌های زنجیره‌ی بلوکی را برای کلاینت‌های سبکی که به آن وابسته هستند فراهم می‌کنند. در پیک‌های استفاده‌ی زیاد، باید گره‌های کامل کافی برای همگام‌سازی گره‌های سبک وجود داشته باشد. گره‌های سبک همه‌ی زنجیره بلوکی را ذخیره نمی‌کنند و به جای آن داده‌ها را با [ریشه‌ی وضعیت درون هدر بلوک‌ها](/developers/docs/blocks/#block-anatomy) اعتبارسنجی می‌کنند. آن‌ها می‌توانند در صورت نیاز اطلاعات بیشتری را از بلوک‌ها درخواست کنند. -- گره‌های کامل قوانین اجماع اثبات کار را اجرا می‌کنند تا نتوان آن‌ها را فریب داد که بلوک‌هایی را بپذیرند که از آن‌ها پیروی نمی‌کنند. این کار امنیت بیشتری را در شبکه ایجاد می‌کند، چون اگر همه‌ی گره‌ها گره‌های سبک باشند که تأیید کامل را انجام نمی‌دهند، استخراج‌گرها می‌توانند به شبکه حمله کنند و برای مثال بلوک‌هایی با پاداش بالاتر بسازند. - -اگر یک گره‌ی کامل را اجرا کنید، کل شبکه‌ی اتریوم از آن سود می‌برد. - -## اجرای گره‌ی خودتان {#running-your-own-node} - -به اجرای کلاینت اتریوم خود علاقه دارید؟ - -For a beginner-friendly introduction visit our [run a node](/run-a-node) page to learn more. - -If you're more of a technical user, learn how to [spin up your own node](/developers/docs/nodes-and-clients/run-a-node/) with the command line! - -### پروژه‌ها {#projects} - -[**یک کلاینت انتخاب کنید و دستورالعمل‌هایش را اجرا کنید**](#clients) - -**ethnode -** **_یک گره‌ی اتریوم (geth یا OpenEthereum) را برای توسعه‌ی محلی اجرا کنید._** - -- [گیت‌هاب](https://github.com/vrde/ethnode) - -**DAppNode -** **_یک رابط کاربری گرافیکی سیستم‌عامل برای اجرای گره‌های Web3 شامل اتریوم و زنجیره‌ی بیکن روی دستگاه‌های مخصوص._** - -- [dappnode.io](https://dappnode.io) - -### منابع {#resources} - -- [اجرای گره‌های کامل اتریوم: راهنمایی کامل](https://medium.com/coinmonks/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _- جاستین لروکس، 7 نوامبر 2019_ -- [صفحه‌ی تقلب پیکربندی گره‌ها](https://dev.to/5chdn/ethereum-node-configuration-modes-cheat-sheet-25l8) _5 ژانویه 2019 - آفری شودن_ -- [چگونه یگ گره‌ی geth را نصب و اجرا کنیم](https://www.quiknode.io/guides/infrastructure/how-to-install-and-run-a-geth-node) _‏ 4 اکتبر 2020 - ساهیل سن_ -- [چگونه یک گره‌ی OpenEthereum (parity سابق)](https://www.quiknode.io/guides/infrastructure/how-to-run-a-openethereum-ex-parity-client-node) _‏22 سپتامبر 2020 - ساهیل سان_ - -## جایگزین‌ها {#alternatives} - -اجرای گره خود می‌تواند دشوار باشد و همیشه نیازی به اجرای نمونه‌ی خود ندارید. در این مورد شما می‌توانید از وب سرویس‌ طرف ثالث مثل [Infura](https://infura.io)،‏ [Alchemy](https://alchemyapi.io) یا [QuikNode](https://www.quiknode.io) استتفاده کنید. [ArchiveNode](https://archivenode.io/) هم یک گزینه‌ی جایگزین استکه امیدوار است داده‌های آرشیو روی زنجیره‌ی بلوکی اتریوم را برای توسعه‌دهندگان مستقلی که در غیر این صورت توانایی پرداخت آن را ندارند، به ارمغان بیاورد.‌ For an overview of using these services, check out [nodes as a service](/developers/docs/nodes-and-clients/nodes-as-a-service/). - -اگر شخصی یک گره‌ی اتریوم را با یک وب سرویس عمومی در انجمن شما اجرا می‌کند، می‌توانید کیف پول‌های سبک خود (مانند MetaMask) را [از طریق RPC سفارشی](https://metamask.zendesk.com/hc/en-us/articles/360015290012-Using-a-Local-Node) به یک گره‌ی انجمن هدایت کنید و نسبت به طرف ثالث مورد اعتماد تصادفی، حریم خصوصی بیشتری را حفظ کنید. - -از طرف دیگر، اگر کلاینت را اجرا می‌کنید، می‌توانید آن را با دوستان خود که ممکن است به آن نیاز داشته باشند به اشتراک بگذارید. - -## کلاینت‌های اجرا (پیشتر «کلاینت‌های Eth1») {#execution-clients} - -جامعه‌ی اتریوم چندین کلاینت اجرای متن‌باز (که قبلاً به عنوان «کلاینت‌های Eth1» یا فقط «کلاینت‌های اتریوم» شناخته می‌شدند) نگهداری می‌کند که توسط تیم‌های مختلف با استفاده از زبان‌های برنامه نویسی مختلف توسعه یافته‌اند. این کار باعث می‌شود شبکه قوی‌تر و پخش‌تر شود. هدف ایده‌آل دستیابی به تنوع بدون تسلط هیچ کلاینتی برای کاهش هر نقطه شکستی است. - -این جدول خلاصه‌ای از کلاینت‌های مختلف ارائه می‌دهد. همه‌ی آن‌ها در [آزمون کلاینت](https://github.com/ethereum/tests) قبول شده‌اند و به‌طور فعال نگهداری می‌شوند تا با ارتقاهای شبکه همگام بمانند. - -| کلاینت | زبان | سیستم‌عامل | شبکه‌ها | راهبرد همگام‌سازی | هرس کردن وضعیت | -| ------------------------------------------------------------------------- | --------------- | ----------------------- | -------------------------------------------- | ------------------- | ----------------------- | -| [Geth](https://geth.ethereum.org/) | Go | لینوکس، ویندوز، مک‌اواس | شبکه‌ی اصلی، Görli،‏ Rinkeby،‏ Ropsten | Snap, Full | آرشیو، هرس‌شده (Pruned) | -| [Nethermind](http://nethermind.io/) | سی‌شارپ، دات‌نت | لینوکس، ویندوز، مک‌اواس | شبکه‌ی اصلی، Görli، Rinkeby، Ropsten و بیشتر | Fast, Beam, Archive | آرشیو، هرس‌شده (Pruned) | -| [Besu](https://besu.hyperledger.org/en/stable/) | جاوا | لینوکس، ویندوز، مک‌اواس | Mainnet, Rinkeby, Ropsten, Görli, and more | سریع، کامل | آرشیو، هرس‌شده (Pruned) | -| [Erigon](https://github.com/ledgerwatch/erigon) | Go | لینوکس، ویندوز، مک‌اواس | شبکه‌ی اصلی، Görli، Rinkeby، Ropsten | Full | آرشیو، هرس‌شده (Pruned) | -| [OpenEthereum (Deprecated)](https://github.com/openethereum/openethereum) | Rust | لینوکس، ویندوز، مک‌اواس | شبکه‌ی اصلی، Kovan،‏ Ropsten و بیشتر | Warp، کامل | آرشیو، هرس‌شده (Pruned) | - -**دقت کنید که OpenEthereum‏[منسوخ شده است](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) و دیگر نگهداری نمی‌شود.** با احتیاط از آن استفاده کنید و ترجیحاً به پیاده‌سازی کلاینت دیگری بروید. - -برای شبکه‌های پشتیبانی‌شده‌ی بیشتر [شبکه‌های اتریوم](/developers/docs/networks/) را بخوانید. - -### مزایای پیاده‌سازی‌های مختلف {#advantages-of-different-implementations} - -هر کلاینت دارای موارد استفاده و مزایای منحصر به فردی است، بنابراین شما باید یکی را بر اساس ترجیحات خود انتخاب کنید. تنوع اجازه می‌دهد تا پیاده‌سازی‌ها بر روی ویژگی‌های مختلف و مخاطبان کاربر متمرکز شوند. ممکن است بخواهید کلاینت را بر اساس ویژگی‌ها، پشتیبانی، زبان برنامه‌نویسی یا مجوزها انتخاب کنید. - -#### Go Ethereum {#geth} - -Go Ethereum (به طور خلاصه geth) یکی از پیاده‌سازی‌های اصلی برای پروتکل اتریوم است. در حال حاضر، گسترده‌ترین کلاینت با بزرگترین پایگاه کاربران و ابزارهای متنوع برای کاربران و توسعه‌دهندگان است. به زبان Go نوشته‌شده، کاملاً متن باز است و مجوز آن تحت GNU LGPL v3 است. - -#### OpenEthereum {#openethereum} - -OpenEthereum یک کلاینت اتریوم سریع، غنی و پیشرفته مبتنی بر CLI است. برای ارائه زیرساخت‌های ضروری برای خدمات سریع و قابل اعتماد ساخته شده است که نیاز به همگام سازی سریع و حداکثر زمان به‌کار دارد. هدف OpenEthereum این است که سریع‌ترین، سبک‌ترین و امن‌ترین کلاینت اتریوم باشد. یک پایگاه کد تمیز و ماژولار برای موارد زیر است: - -- سفارشی‌سازی آسان. -- ادغام سبک در خدمات یا محصولات. -- حداقل حافظه و رد پای حافظه - -OpenEthereum با استفاده از زبان برنامه‌نویسی پیشرو Rust ساخته شده و مجوز آن تحت GPLv3 است. - -**دقت کنید که OpenEthereum‏[منسوخ شده است](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) و دیگر نگهداری نمی‌شود.** با احتیاط از آن استفاده کنید و ترجیحاً به پیاده‌سازی کلاینت دیگری بروید. - -#### Nethermind {#nethermind} - -Nethermind یک پیاده‌سازی اتریوم است که با پشته‌ی فناوری سی‌شارپ دات‌نت ایجاد شده و بر روی تمام پلتفرم‌های اصلی از جمله ARM اجرا می‌شود. این پیاده‌سازی کارکردی عادی با موارد زیر ارائه می‌دهد: - -- یک ماشین مجازی بهینه -- دسترسی به وضعیت -- شبکه و ویژگی‌های غنی مانند داشبوردهای Prometheus/Grafana، پشتیبانی از گزارش سازمانی seq، ردیابی JSON RPC، و افزونه‌های تجزیه و تحلیل. - -Nethermind همچنین [اسناد با جزییات](https://docs.nethermind.io)، پشتیبانی توسعه‌ی قوی، یک جامعه‌ی آنلاین و پشتیبانی 24 ساعته در 7 روز هفته برای کاربران پرمیوم دارد. - -#### Besu {#besu} - -هایپرلجر Besu یک کلاینت اتریوم در رده‌ی سازمانی برای شبکه‌های عمومی و مجوزدار است. این کلاینت تمام ویژگی‌های اصلی اتریوم، از ردیابی گرفته تا GraphQL را اجرا می‌کند، نظارت گسترده‌ای دارد و توسط ConsenSys پشتیبانی می‌شود، هم در کانال‌های جامعه باز و هم از طریق SLAهای تجاری برای شرکت‌ها. به زبان جاوا نوشته شده و دارای مجوز آپاچی 2.0 است. - -#### Erigon {#erigon} - -Erigon که قبلاً به عنوان Erigon شناخته می‌شد، یک فورک Go Ethereum است که هدفش سرعت و کارایی فضای دیسک است. Erigon یک پیاده‌سازی کاملاً بازسازی شده از Ethereum است که در حال حاضر به زبان Go نوشته شده است، اما پیاده‌سازی آن به زبان‌های دیگر برنامه‌ریزی شده است. هدف Erigon ارائه‌ی پیاده‌سازی سریع‌تر، ماژولارتر و بهینه‌تر اتریوم است. این کلاینت می‌تواند با بکارگیری کمتر از 2 ترابایت فضای دیسک، در کمتر از 3 روز، همگام‌سازی گره‌ی آرشیو کامل را انجام دهد - -### حالات همگام‌سازی {#sync-modes} - -برای پیگیری و تأیید داده‌های جاری در شبکه، کلاینت اتریوم باید با آخرین حالت شبکه همگام شود. این کار با دانلود داده‌ها از همتایان، تأیید رمزنگاری یکپارچگی آن‌ها و ایجاد یک پایگاه داده‌ی محلی زنجیره‌ی بلوکی انجام می‌شود. - -حالت‌های همگام‌سازی رویکردهای متفاوتی را برای این فرایند با بده‌بستان‌های مختلف نشان می‌دهند. کلاینت‌ها همچنین در پیاده‌سازی‌های الگوریتم‌های همگام‌سازی تفاوت دارند. برای جزئیات پیاده‌سازی، همیشه به مستندات رسمی کلاینت انتخابی خود مراجعه کنید. - -#### نگاهی اجمالی بر راهبردها {#overview-of-strategies} - -نگاهی اجمالی بر رویکردهای همگام‌سازی استفاده‌شده در شبکه‌ی اصلی کلاینت‌های آماده: - -##### همگام‌سازی کامل - -همگام‌سازی کامل همه‌ی بلوک‌ها (از جمله هدرها، تراکنش‌ها و رسیدها) را بارگیری می‌کند و با اجرای هر بلوک از پیدایش، وضعیت زنجیره‌ی بلوکی را به صورت تدریجی ایجاد می‌کند. - -- اعتماد را به حداقل می‌رساند و با تأیید هر تراکنش، بالاترین امنیت را ارائه می‌دهد. -- ٰبا افزایش تعداد تراکنش‌ها، پردازش همه تراکنش‌ها ممکن است روزها تا هفته‌ها طول بکشد. - -##### همگام‌سازی سریع - -همگام‌سازی سریع همه بلوک‌ها (از جمله هدرها، تراکنش‌ها و رسیدها) را دانلود می‌کند، همه هدرها را تأیید می‌کند، وضعیت را دانلود می‌کند و آن را در برابر هدرها تأیید می‌کند. - -- بر امنیت مکانیزم اجماع اتکا دارد. -- همگام‌سازی تنها چند ساعت زمان می‌برد. - -##### همگام‌سازی سبک - -حالت کلاینت سبک همه‌ی هدرهای بلوک و داده‌های‌ بلوک را بارگیری می‌کند و برخی را به‌طور تصادفی تأیید می‌کند. فقط نوک زنجیره را از نقاط بررسی مطمئن همگام‌سازی می‌کند. - -- با تکیه بر اعتماد به توسعه‌دهندگان و مکانیزم اجماع، تنها آخرین وضعیت را دریافت می‌کند. -- کلاینت ظرف چند دقیقه با وضعیت فعلی شبکه آماده استفاده است. - -[اطلاعات بیشتر درباره‌ی کلاینت‌های سبک](https://www.parity.io/blog/what-is-a-light-client/) - -##### همگام‌سازی فوری - -توسط geth پیاده‌سازی شده است. با استفاده از عکس‌های فوری پویا که توسط همتایان ارائه می‌شوند، تمام داده‌های حساب و ذخیره‌سازی را بدون بارگیری گره‌های درخت میانی بازیابی می‌کند و سپس درخت مرکل را به صورت محلی بازسازی می‌کند. - -- سریع‌ترین راهبرد همگام‌سازی که توسط geth توسعه داده شده است و هم‌اکنون حالت پیش‌فرض آن است -- صرفه‌جویی در مصرف حافظه و پهنای باند شبکه بدون به خطر انداختن امنیت. - -[اطلاعات بیشتر در مورد همگام‌سازی فوری](https://github.com/ethereum/devp2p/blob/master/caps/snap.md) - -##### همگام‌سازی Warp - -توسط OpenEthereum پیاده‌سازی شده است. گره‌ها به‌طور منظم یک عکس فوری از وضعیت بحرانی اجماع تولید می‌کنند و هر همتایی می‌تواند این عکس‌های فوری را از طریق شبکه دریافت کند و همگام‌سازی سریع را از این نقطه ممکن سازد. - -- سریع‌ترین حالت و حالت پیش‌فرض‌ همگام‌سازی OpenEthereum متکی به عکس‌های فوری ایستا است که توسط همتایان ارائه می‌شود. -- راهکاری مشابه همگام‌سازی فوری اما بدون مزایای امنیتی خاص. - -[اطلاعات بیشتر در مورد Warp](https://openethereum.github.io/Beginner-Introduction#warping---no-warp) - -##### همگام‌سازی Beam - -توسط Nethermind و Trinity پیاده‌سازی شده است. مانند همگام‌سازی سریع عمل می‌کند، اما داده‌های مورد نیاز برای اجرای آخرین بلوک‌ها را نیز بارگیری می‌کند، که به شما امکان می‌دهد ظرف چند دقیقه جستجوی زنجیره را شروع کنید. - -- ابتدا وضعیت را همگام‌سازی می‌کند و شما را قادر می‌سازد ظرف چند دقیقه RPC را درخواست کنید. -- هنوز در حال توسعه است و کاملاً قابل‌اعتماد نیست، همگام‌سازی پس‌زمینه کند شده است و پاسخ‌های RPC ممکن است شکست بخورند. - -[اطلاعات بیشتر درباره‌ی همگام‌سازی Beam](https://medium.com/@jason.carver/intro-to-beam-sync-a0fd168be14a) - -#### برپا کردن در کلاینت‌ها {#client-setup} - -کلاینت‌ها با توجه به نیازهای شما گزینه‌های پیکربندی غنی‌ای را ارائه می‌دهند. بر اساس سطح امنیت، داده‌های موجود و هزینه، موردی را انتخاب کنید که برای شما مناسب است. به غیر از الگوریتم همگام‌سازی، می‌توانید هرس (pruning) انواع مختلف داده‌های قدیمی را نیز تنظیم کنید. هرس امکان حذف داده‌های قدیمی را فراهم می‌کند، به‌عنوان مثال حذف گره‌های درخت وضعیت که از بلوک‌های اخیر غیرقابل‌دسترسی هستند. - -به مستندات یا صفحه‌ی راهنمای کلاینت توجه کنید تا بفهمید کدام حالت همگام‌سازی حالت پیش‌فرض است. شما می‌توانید زمانی که به‌طور کامل تنظیم شدید مدل همگام‌سازی ترجیحی را انتخاب کنید، مثل: - -**تنظیم همگام‌سازی سبک در [geth](https://geth.ethereum.org/) یا [ERIGON](https://github.com/ledgerwatch/erigon)** - -`geth --syncmode "light"` - -برای جزئیات بیشتر آموزش [اجرای گره‌ی سبک geth](/developers/tutorials/run-light-node-geth/) را مشاهده کنید. - -**تنظیم همگام‌سازی کامل با آرشیو در [Besu](https://besu.hyperledger.org/)** - -`besu --sync-mode=FULL` - -مانند هر پیکربندی دیگر، می توان آن را با پرچم راه‌اندازی (startup flag) یا در فایل پیکربندی تعریف کرد. یک مثال دیگر [Nethermind](https://docs.nethermind.io/nethermind/) است که از شما می‌خواهد پیکربندی را در اولین تنظیم اولیه انتخاب کنید و یک فایل پیکربندی ایجاد می‌کند. - -## کلاینت‌های اجماع («کلاینت‌های Eth2» سابق) {#consensus-clients} - -چندین کلاینت اجماع (که قبلاً به‌عنوان کلاینت‌های «Eth2» شناخته می‌شدند) وجود دارد که از [ارتقاهای اجماع](/roadmap/beacon-chain/) پشتیبانی می‌کنند. They are running the Beacon Chain and will provide proof-of-stake consensus mechanism to execution clients after [The Merge](/roadmap/merge/). - -| کلاینت | زبان | سیستم‌عامل | شبکه‌ها | -| ----------------------------------------------------------- | ---------- | ----------------------- | ---------------------------------------- | -| [Teku](https://pegasys.tech/teku) | جاوا | لینوکس، ویندوز، مک‌اواس | زنجیره‌ی بیکن، Goerli | -| [Nimbus](https://nimbus.team/) | Nim | لینوکس، ویندوز، مک‌اواس | زنجیره‌ی بیکن، Goerli | -| [Lighthouse](https://lighthouse-book.sigmaprime.io/) | Rust | لینوکس، ویندوز، مک‌اواس | زنجیره‌ی بیکن، Goerli،‏ Pyrmont | -| [Lodestar](https://lodestar.chainsafe.io/) | TypeScript | لینوکس، ویندوز، مک‌اواس | زنجیره‌ی بیکن، Goerli | -| [Prysm](https://docs.prylabs.network/docs/getting-started/) | Go | لینوکس، ویندوز، مک‌اواس | زنجیره‌ی بیکن، Gnosis،‏ Goerli،‏ Pyrmont | - -## سخت‌افزار {#hardware} - -نیازهای سخت‌افزاری بر اساس کلاینت متفاوت است اما معمولاً آن‌قدر زیاد نیست چون گره فقط باید همگام بماند. این را با استخراج که نیاز به توان پردازشی زیادی دارد اشتباه نگیرید. با این حال، سخت‌افزار قدرتمندتر زمان همگام‌سازی و عملکرد را بهبود می‌بخشد. بسته به نیازها و خواسته‌های شما، اتریوم می‌تواند بر روی رایانه، سرور خانگی، رایانه‌های تک‌بُرد یا سرورهای خصوصی مجازی در فضای ابری اجرا شود. - -یک راه ساده برای اجرای گره‌ی خودتان، استفاده از باکس‌های پلاگ اند پلی (plug and play) مثل [DAppNode](https://dappnode.io/) است. این باکسْ سخت‌افزار لازم برای اجرای کلاینت‌ها و برنامه‌هایی که به آن‌ها وابسته است را با یک رابط کاربری ساده ارائه می‌دهد. - -### الزامات {#requirements} - -پیش از نصب هر کلاینتی مطمئن شوید که رایانه‌ی شما منابع لازم را برای اجرای آن دارد. الزامات کمینه و پیشنهادی را می‌توانید در زیر ببینید، هر چند که بخش کلیدی آن فضای حافظه است. همگام‌سازی زنجیره‌ی بلوکی اتریوم بسیار به ورودی و خروجی حساس است. بهتر است که حتما درایو حالت جامد (SSD) داشته باشید. برای اجرای کلاینت اتریوم بر روی هارددیسک (HDD) شما نیاز به حداقل 8 گیگابایت رم دارید که به عنوان حافظه‌ی نهان استفاده کنید. - -#### الزامات حداقلی {#recommended-specifications} - -- پردازنده‌ با حداقل دو هسته -- حداقل 4 گیگابایت رم با یک درایو ذخیره‌سازی جامد (SSD)، ‎+8‏ گیگابایت اگر هارددیسک دارید -- پهنای باند 8 مگابیت بر ثانیه - -#### مشخصات پیشنهادی {#recommended-specifications} - -- پردازنده‌ی سریع با حداقل چهار هسته -- حداقل 16 گیگابایت رم -- درایو ذخیره‌سازی جامد (SSD) سریع با حداقل 500 گیگابایت فضای خالی -- پهنای باند بیش از 25 مگابیت بر ثانیه - -حالت همگام‌سازی که انتخاب می‌کنید بر فضای مورد نیاز تأثیر می‌گذارد، اما ما فضای دیسک مورد نیاز برای هر کلاینت را در زیر تخمین زده‌ایم. - -| کلاینت | فضای حافظه (همگام‌سازی سریع) | فضای حافظه (آرشیو کامل) | -| ------------ | ---------------------------- | ----------------------- | -| Geth | بیش از 400 گیگابایت | بیش از 6 ترابایت | -| OpenEthereum | بیش از 280 گیگابایت | بیش از 6 ترابایت | -| Nethermind | بیش از 200 گیگابایت | بیش از 5 ترابایت | -| Besu | بیش از 750 گیگابایت | بیش از 5 ترابایت | -| Erigon | اطلاق‌ناپذیر | بیش از 1 ترابایت | - -- توجه: Erigon همگام‌سازی سریع را انجام نمی‌دهد، اما هرس کامل امکان‌پذیر است (تقریبا 500 گیگابایت) - -![یک نمودار که نمایانگر گیگابایت لازم برای همگام‌سازی کامل رو به بالا است](./full-sync.png) - -![یک نمودار که نمایانگر گیگابایت لازم برای همگام‌سازی آرشیو رو به بالا است](./archive-sync.png) - -این نمودارها نشان می‌دهند الزامات حافظه چطور همواره در حال تغییر هستند. برای به‌روزترین داده‌ها برای geth و OpenEthereum [داده‌های همگام‌سازی کامل](https://etherscan.io/chartsync/chaindefault) و [داده‌های همگام‌سازی آرشیو](https://etherscan.io/chartsync/chainarchive) را مشاهده کنید. - -### اتریوم روی رایانه‌ی تک‌برد {#ethereum-on-a-single-board-computer} - -راحت‌ترین و ارزان‌ترین راه برای اجرای گره‌ی اتریوم استفاده از یک رایانه‌ی تک‌بردی با معماری ARM مانند Raspberry Pi است. [اتریوم روی ARM](https://twitter.com/EthereumOnARM) تصاویری از کلاینت‌های geth،‏ OpenEthereum،‏ Nethermind و Besu ارائه می‌دهد. این یک آموزش ساده برای [چگونه یک کلاینت ARM را بسازیم و بر پا کنیم](/developers/tutorials/run-node-raspberry-pi/) است. - -دستگاه‌های کوچک، مقرون به صرفه و کارآمد مانند این‌ها برای اجرای یک گره در خانه ایده آل هستند. - -## بیشتر بخوانید {#further-reading} - -اطلاعات بسیاری درباره‌ی کلاینت‌های اتریوم بر روی اینترنت وجود دارد. این‌ها چند منبع هستند که می‌توانند مفید باشند. - -- [اتریوم مقدماتی - بخش دوم - فهم گره‌ها](https://kauri.io/ethereum-101-part-2-understanding-nodes/48d5098292fd4f11b251d1b1814f0bba/a) _- ویل بارنز، 13 فوریه 2019_ -- [اجرای گره‌های کامل اتریوم: راهنمایی برای افراد کم انگیزه](https://medium.com/@JustinMLeroux/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _- جاستین لروکس، 7 نوامبر 2019_ -- [آنالیز نیازمندی‌های سخت‌افزار برای تبدیل شدن به یک گره‌ی کامل معتبر اتریوم](https://medium.com/coinmonks/analyzing-the-hardware-requirements-to-be-an-ethereum-full-validated-node-dc064f167902) _- آلبرت پالا، 24 سپتامبر 2018_ -- [اجرای یک گره Besu هایپرلجر بر شبکه‌ی اصلی اتریوم: مزایا، نیازمندی‌ها و راه‌اندازی](https://pegasys.tech/running-a-hyperledger-besu-node-on-the-ethereum-mainnet-benefits-requirements-and-setup/) _- فلیپ فراگی، 7 مه 2020_ - -## موضوعات مرتبط {#related-topics} - -- [بلوک‌ها](/developers/docs/blocks/) -- [شبکه‌ها](/developers/docs/networks/) - -## آموزش‌های مرتبط {#related-tutorials} - -- [اجرای یک گره با geth](/developers/tutorials/run-light-node-geth/) _- چگونه geth را بارگیری، نصب و اجرا کنیم. Covering syncmodes, the JavaScript console, and more._ -- [Raspberry Pi 4 خود را فقط با اتصال کارت MicroSD به یک گره‌ی اعتبارسنج تبدیل کنید - راهنمای نصب](/developers/tutorials/run-node-raspberry-pi/) _- Raspberry Pi 4 خود را متصل کنید، یک کابل اترنت وصل کنید، دیسک SSD را وصل کنید و دستگاه را روشن کنید تا Raspberry Pi 4 را به یک گره‌ی کامل اتریوم که لایه‌ی اجرا (شبکه‌ی اصلی) و / یا لایه‌ی اجماع (زنجیره‌ی بیکن / اعتبارسنج) را اجرا می‌کند تبدیل کنید._ diff --git a/src/content/translations/fa/developers/docs/nodes-and-clients/run-a-node/index.md b/src/content/translations/fa/developers/docs/nodes-and-clients/run-a-node/index.md deleted file mode 100644 index aebdf758575..00000000000 --- a/src/content/translations/fa/developers/docs/nodes-and-clients/run-a-node/index.md +++ /dev/null @@ -1,162 +0,0 @@ ---- -title: چرخاندن گره‌ی اتریوم خودتان -description: مقدمه‌ای عمومی بر اجرای نمونه‌ی خودتان از کلاینت اتریوم. -lang: fa -sidebarDepth: 2 ---- - -اجرای گره‌ی خودتان مزایای متنوعی برای شما دارد، امکانات جدیدی را در اختیارتان قرار می‌دهد و به پشتیبانی از اکوسیستم کمک می‌کند. این صفحه شما را برای چرخاندن گره‌ی خودتان و ایفای نقش برای اعتبارسنجی تراکنش‌های اتریوم راهنمایی می‌کند. - -## پیش‌نیازها {#prerequisites} - -شما باید بدانید که گره‌ی اتریوم چیست و چرا ممکن است بخواهید یک کلاینت را اجرا کنید. این موضوع در [گره‌ها و کلاینت‌ها](/developers/docs/nodes-and-clients/) بررسی شده است. - -If you're new to the topic of running a node, or looking for a less technical path, we recommend first checking out our user-friendly introduction on [running an Ethereum node](/run-a-node). - -## انتخاب یک رویکرد {#choosing-approach} - -اولین گام برای چرخاندن گره خودتان انتخاب رویکردتان است. شما باید کلاینت (نرم‌افزار)، محیط و پارامتر‌هایی که می‌خواهید با آن‌ها کار را شروع کنید انتخاب کنید. همه‌ی [کلاینت‌های شبکه‌ی اصلی](/developers/docs/nodes-and-clients/#advantages-of-different-implementations) را ببینید. - -#### تنظیمات کلاینت {#client-settings} - -پیاده‌سازی‌های کلاینت حالت‌های مختلف همگام‌سازی و گزینه‌های مختلف دیگر را فعال می‌کنند. [حالات همگام‌سازی](/developers/docs/nodes-and-clients/#sync-modes) نشانگر روش‌های مختلف دانلود و اعتبارسنجی داده‌های زنجیره‌ی بلوکی است. پیش از آغاز یک گره، شما باید تصمیم بگیرید که از کدام شبکه و کدام حالت همگام‌سازی استفاده نمایید. مهم‌ترین چیزی که باید به آن توجه کرد حافظه‌ی دیسک و زمان همگام‌سازی است که کلاینت نیاز دارد. - -تمام گزینه‌ها و ویژگی‌ها را می‌توان در مستندات کلاینت مشاهده کرد. پیکربندی‌های متنوع کلاینت می‌تواند با اجرای کلاینت با پرچم‌های متناظر تنظیم شود. برای اهداف آزمایشی، ممکن است ترجیح بدهید که کلاینت خود را روی شبکه‌ی تست اجرا کنید. [نگاه اجمالی بر شبکه‌های پشتیبانی‌شده را مشاهده کنید](/developers/docs/nodes-and-clients/#execution-clients). - -### محیط‌زیست و سخت‌افزار {#environment-and-hardware} - -#### محلی یا ابری {#local-vs-cloud} - -کلاینت‌های اتریوم می‌توانند روی رایانه‌های رده‌ی مصرف‌کننده کار کنند و برخلاف استخراج به سخت‌افزار خاصی نیاز ندارند. بنابراین، شما بر اساس نیاز خود گزینه‌های مختلفی برای بکارگیری دارید. برای ساده کردن، بیایید اجرای یک گره را هم در یک ماشین فیزیکی محلی و هم در یک سرور ابری بررسی کنیم: - -- ابر - - ارائه‌دهندگانْ زمان به‌کار (uptime) سرور بالا و آدرس‌های آی‌پی (IP) عمومی ثابت ارائه می‌دهند - - گرفتن سرور اختصاصی یا مجازی ممکن است راحت‌تر از ساختن سرور شخصی باشد - - بده‌بستان بر سر این است که به یک شخص ثالث - ارائه‌دهده‌ی سرور اعتماد کنیم - - به دلیل اندازه‌ی حافظه‌ی لازم برای گره‌ی کامل، هزینه‌ی اجاره‌ی سرور ممکن است بالا باشد -- سخت‌افزار شخصی - - رویکرد بی‌اعتمادتر و حاکمیتی‌تر - - سرمایه‌گذاری برای یک بار - - امکان خرید ماشین‌های پیش‌پیکربندی‌شده - - شما باید به‌طور فیزیکی دستگاه را آماده، نگهداری و احتمالاً عیب‌یابی کنید - -هر دو گزینه مزایای متفاوتی دارند که در بالا خلاصه شده است. اگر به دنبال راه‌حل ابری هستید، علاوه بر بسیاری از ارائه‌دهندگان سنتی پردازش ابری، خدماتی هم وجود دارند که بر روی بکارگیری گره‌ها متمرکز شده‌اند. برای مثال: - -- [QuikNode](https://www.quiknode.io/) -- [Blockdaemon](https://blockdaemon.com) -- [LunaNode](https://www.lunanode.com/) -- [Alchemy](https://www.alchemy.com/) - -#### سخت‌افزار {#hardware} - -با این حال، یک شبکه‌ی غیرمتمرکز و مقاوم در برابر سانسور نباید بر ارائه‌دهندگان ابری متکی باشد. برای اکوسیستم سالم‌تر است که هر کس با سخت‌افزار شخصی خودش گره را اجرا کند. ساده‌ترین راه استفاده از ماشین‌های پیش‌پیکربندی‌شده است: - -- [DappNode](https://dappnode.io/) -- [Avado](https://ava.do/) - -[الزامات فضای ذخیره‌سازی برای هر کلاینت و حالت همگام‌سازی](/developers/docs/nodes-and-clients/#requirements) را جهت اطلاع از حداقل فضای لازم و فضای توصیه‌شده بررسی کنید. به‌طور کلی، قدرت محاسباتی متوسط ​​باید کافی باشد. معمولاً مشکل از سرعت درایو است. در همگام‌سازی ابتدایی، کلاینت‌های اتریوم عملیات‌های خواندن و نوشتن بسیاری را انجام می‌دهند. در نتیجه درایو حالت جامد (SSD) به شدت پیشنهاد می‌شود. یک کلاینت ممکن است نتواند [حالت فعلی را بر روی هارددیسک همگام‌سازی کند](https://github.com/ethereum/go-ethereum/issues/16796#issuecomment-391649278) و همواره چند بلوک از شبکه‌ی اصلی عقب بماند. شما می‌توانید اکثر کلاینت‌ها را بر روی [یک رایانه‌ی تک‌بورد با ARM](/developers/docs/nodes-and-clients/#ethereum-on-a-single-board-computer/) اجرا کنید. همچنین می‌توانید از سیستم‌عامل [Ethbian](https://ethbian.org/index.html) برای Raspberry Pi 4 استفاده کنید. This lets you [run a client by flashing the SD card](/developers/tutorials/run-node-raspberry-pi/). بر اساس امکانات نرم‌افزار و سخت‌افزاری شما، زمان همگام‌سازی اولیه و نیازهای ذخیره‌سازی ممکن است متفاوت باشد. فراموش نکنید که [الزامات فضای ذخیره‌سازی و زمان همگام‌سازی](/developers/docs/nodes-and-clients/#recommended-specifications) را بررسی کنید. همچنین مطمئن شوید که اتصال اینترنت شما با [حد پهنای باند](https://wikipedia.org/wiki/Data_cap) محدود نشده باشد. توصیه می‌شود از یک اتصال نامحدود استفاده کنید، چون حجم پهنای لازم برای همگام‌سازی اولیه و پخش داده‌ها در شبکه ممکن است از حد مجاز تنظیم‌شده فراتر رود. - -#### سیستم‌عامل {#operating-system} - -همه‌ی کلاینت‌ها سیستم‌عامل‌های اصلی یعنی لینوکس، مک‌اواس و ویندوز را پشتیبانی می‌کنند. این بدان معناست که می‌توانید گره‌ها را با سیستم‌عاملی (OS) که برای شما مناسب‌تر است، روی رایانه‌های رومیزی یا سرورهای معمولی اجرا کنید. مطمئن شوید که سیستم‌عامل شما به‌روز است تا از مشکلات احتمالی و آسیب‌پذیری‌های امنیتی جلوگیری شود. - -## چرخاندن گره {#spinning-up-node} - -### دریافت نرم‌افزار کلاینت {#getting-the-client} - -ابتدا [نرم‌افزار کلاینت](/developers/docs/nodes-and-clients/#execution-clients) مدنظرتان را بارگیری کنید - -شما به‌راحتی می‌توانید یک برنامه‌ی کاربردی قابل‌اجرا یا بسته‌ی نصبی را بارگیری کنید که مناسب سیستم‌عامل و معماری شما باشد. همیشه امضاها و چک تجمیع بسته‌های بارگیری‌شده را بررسی کنید. برخی کلاینت‌ها مخازنی هم برای نصب و ارتقای آسان‌تر ارائه می‌دهند. در صورت ترجیح می‌توانید از منبع شروع به ساختن کنید. همه کلاینت‌ها متن‌باز هستند، بنابراین می‌توانید آن‌ها را با کامپایلر مناسب از کد منبع بسازید. - -باینری‌های قابل‌اجرا برای پیاده‌سازی های سرویس‌گیرنده شبکه‌ی اصلی پایدار را می‌توان از صفحات انتشار آن‌ها بارگیری کرد: - -- [Geth](https://geth.ethereum.org/downloads/) -- [OpenEthereum,](https://github.com/openethereum/openethereum/releases) -- [Nethermind](https://downloads.nethermind.io/) -- [Besu](https://besu.hyperledger.org/en/stable/) -- [Erigon](https://github.com/ledgerwatch/erigon) - -**دقت کنید که OpenEthereum‏[منسوخ شده است](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) و دیگر نگهداری نمی‌شود.** با احتیاط از آن استفاده کنید و ترجیحاً به پیاده‌سازی کلاینت دیگری بروید. - -### آغاز کلاینت {#starting-the-client} - -قبل از راه‌اندازی نرم‌افزار کلاینت اتریوم، آخرین بررسی را انجام دهید تا مطمئن شوید محیط شما آماده است. برای مثال، مطمئن شوید که: - -- فضای حافظه‌ی کافی با توجه به شبکه‌ و حالت همگام‌سازی انتخابی وجود دارد. -- حافظه و پردازنده توسط برنامه‌های دیگر استفاده نمی‌شود. -- سیستم‌عامل به آخرین نسخه‌ی خود به‌روز شده است. -- زمان و تاریخ سیستم درست است. -- روتر و فایروال شما اتصالات را در پورت‌های شنونده (listening ports) می‌پذیرند. به طور پیش‌فرض کلاینت‌های اتریوم از یک پورت شنونده (TCP) و یک پورت یابنده (UDP) که هر دو به‌طور پیش‌فرض روی 30303 هستند استفاده می‌کنند. - -کلاینت خود را ابتدا روی شبکه‌ی تست اجرا کنید تا مطمئن شوید که همه‌‌چیز به‌درستی کار می‌کند. [اجرای یک گره سبک geth‏](/developers/tutorials/run-light-node-geth/) باید کارگشا باشد. شما باید هرگونه تنظیمات کلاینت که به صورت پیش‌‌فرض وجود ندارند را در ابتدا مشخص کنید. می‌توانید از پرچم‌ها و فایل‌های پیکربندی برای مشخص کردن پیکربندی موردنظر استفاده کنید. برای اطلاع از جزئیات، مستندات کلاینت خود را بررسی کنید. اجرای کلاینت، توابع اصلی، نقاط پایانی انتخاب شده و جستجوی همتایان را آغاز می‌کند. پس از یافتن موفق همتایان، کلاینت شروع به همگام‌سازی می‌کند. داده‌ی کنونی زنجیره‌ی بلوکی زمانی آماده خواهد بود که کلاینت به‌طور موفقیت‌آمیز با وضعیت فعلی همگام‌سازی کرده باشد. - -### استفاده از کلاینت {#using-the-client} - -کلاینت‌ها ارائه‌دهنده‌ی نقاط پایانی وب سرویس RPC هستند که می‌توانید از آن‌ها برای کنترل کلاینت و ارتباط با شبکه‌ی اتریوم به اشکال مختلف استفاده کنید: - -- فراخوانی دستی آن‌ها با یک پروتکل مناسب (مثلاً استفاده از `curl`) -- ضمیمه کردن کنسول ارائه شده (مثلاً `geth attach`) -- پیاده‌سازی آن‌ها در برنامه‌های کاربردی - -کلاینت‌های مختلف پیاده‌سازی‌های مختلفی برای نقاط پایانی RPC دارند. اما برای JSON-RPC استانداردی وجود دارد که می‌توانید برای هر کلاینتی استفاده نمایید. برای مروری اجمالی، [مستندات JSON-RPC را بخوانید](https://eth.wiki/json-rpc/API). برنامه‌های کاربردی که نیاز به اطلاعات از شبکه‌ی اتریوم دارند می‌توانند از RPC استفاده کنند. برای مثال، کیف پول‌ معروف MetaMask به شما اجازه می‌دهد که [یک نمونه‌ی زنجیره‌ی بلوکی محلی را اجرا کنید و به آن متصل کنید](https://metamask.zendesk.com/hc/en-us/articles/360015290012-Using-a-Local-Node). - -#### دستیابی به RPC {#reaching-rpc} - -پورت پیش‌فرض JSON-RPC `8545` است اما می‌توانید پورت‌های نقاط پایانی محلی را در فایل پیکربندی مشخص کنید. در حالت پیش‌فرض، رابط RPC فقط در هاست محلی (localhost) رایانه‌ی شما قابل دسترسی است. برای اینکه بتوانید از راه دور به آن دسترسی داشته باشید، می‌توانید با تغییر آدرس به `0.0.0.0` آن را در معرض دید عموم قرار دهید. بدین ترتیب از طریق آدرس‌های آی‌پی (IP) محلی و عمومی قابل‌دسترسی خواهد بود. در بیشتر موارد، باید روی روتر خود بازارسالی پورت (port forwarding) را هم تنظیم کنید. - -شما باید این کار را با احتیاط انجام دهید، چون هر کسی در اینترنت اجازه می‌دهد گره‌ی شما را کنترل کند. اگر از کلاینت خود به عنوان کیف پول استفاده می‌کنید، بازیگران بداندیش می‌توانند به گره‌ی شما دسترسی پیدا کنند تا سیستم شما را خراب کنند یا سرمایه‌های شما را بدزدند. - -راه‌حل این مشکل، جلوگیری از تغییرپذیری روش‌های بالقوه خطرناک RPC است. برای مثال، با `geth` شما می‌توانید روش‌های تغییرپذیر را با پرچم مشخص کنید: `--http.api web3,eth,txpool`. - -همچنین می‌توانید با اشاره سرویس وب سرور، مانند Nginx، به آدرس محلی و پورت کلاینت خود، دسترسی به رابط RPC خود را میزبانی کنید. - -ساده‌ترین و بهترین راه از حیث حفظ حریم خصوصی برای تنظیم یک نقطه‌ی پایانی قابل‌دسترس این است که سرویس [Tor](https://www.torproject.org/) آنیون خود را داشته باشید. بدین ترتیب می‌توانید به RPC خارج از شبکه‌ی محلی خود بدون آدرس آی‌پی (IP) عمومی ثابت یا پورت‌های باز شده دسترسی پیدا کنید. برای انجام این کار: - -- `tor` را نصب کنید -- پیکربندی `torrc` را برای فعال‌سازی سرویس پنهان با آدرس RPC کلاینت و پورت خود ویرایش کنید -- سرویس `tor` را مجدداً راه‌اندازی کنید - -وقتی Tor را مجدداً راه‌اندازی می‌کنید، کلید‌های سرویس پنهان و نام میزبان را در نشانی مدنظرتان دریافت می‌کنید. از آن به بعد، RPC شما روی نام میزبان `.onion` قابل‌دسترسی خواهد بود. - -### گرداندن گره {#operating-the-node} - -شما باید به‌طور مرتب گره خود را کنترل کنید تا مطمئن شوید که به درستی کار می‌کند. ممکن است نیاز به انجام تعمیرات گاه‌به‌گاه داشته باشید. - -#### برخط نگه‌داشتن گره {#keeping-node-online} - -نیازی نیست که گره‌ی شما بی‌وقعه برخط باشد، اما باید آن را تا حد امکان برخط نگه دارید تا با شبکه همگام شود. برای راه‌اندازی مجدد می‌توانید آن را خاموش کنید، اما به خاطر داشته باشید که: - -- اگر وضعیت اخیر همچنان روی دیسک نوشته می‌شود، خاموش شدن می‌تواند تا چند دقیقه طول بکشد. -- خاموش شدن اجباری می‌تواند به پایگاه داده آسیب برساند. -- کلاینت شما با شبکه همگام نمی‌شود و با راه‌اندازی مجدد باید مجدداً همگام شود. - -_این موضوع روی گره‌های اعتبار سنج لایه‌ی اجماع اعمال نمی‌شود._ بُرون‌خط کردن گره‌ی شما بر تمام سرویس‌های وابسته به آن تأثیر می‌گذارد. اگر یک گره را برای _سهام‌گذاری_ اجرا می‌کنید باید سعی کنید زمان خاموشی را تا حد امکان پایین آورید. - -#### ساختن سرویس کلاینت {#creating-client-service} - -برای اجرای خودکار کلاینت در هنگام راه‌اندازی، ساختن سرویس را در نظر بگیرید. به‌عنوان مثال در سرورهای لینوکس، بهترین رویه ساخت سرویسی است که کلاینت را با پیکربندی مناسب، تحت کاربر با امتیازات محدود اجرا می‌کند و به‌طور خودکار مجدداً راه‌اندازی می‌شود. - -#### به‌روزرسانی کلاینت {#updating-client} - -شما باید نرم‌افزار کلاینت خود را با آخرین پچ‌های امنیتی، ویژگی‌ها و [EIPها](/eips/) به‌روز نگه‌دارید. خصوصاً قبل از انجام [فورک‌های سخت](/history/) مطمئن شوید که نسخه‌ی درست کلاینت را اجرا می‌کنید. - -#### اجرای سرویس‌های اضافه {#running-additional-services} - -اجرای گره خودتان به شما امکان می‌دهد از خدماتی استفاده کنید که نیاز به دسترسی مستقیم به RPC کلاینت اتریوم دارند. این‌ها سرویس‌هایی هستند که بر روی اتریوم ساخته شده‌اند مثل [راه‌حل‌های لایه‌‌ی 2](/developers/docs/scaling/#layer-2-scaling)، [کلاینت‌های اجماع] و سایر زیرساخت‌های اتریوم. - -#### نظارت بر گره {#monitoring-the-node} - -برای نظارت صحیح بر گره‌ی خود، جمع‌آوری معیارها را در نظر بگیرید. کلاینت‌ها نقاط‌ پایانی‌های معیارها را ارائه می‌دهند که شما بتوانید داده‌های جامعی درباره‌ی گره‌ی خود دریافت کنید. از ابزارهایی مثل [InfluxDB](https://www.influxdata.com/get-influxdb/) یا [Prometheus](https://prometheus.io/) برای ساخت پایگاه داده‌هایی استفاده کنید که می‌توانید با استفاده از نرم‌افزارهایی مثل [Grafana](https://grafana.com/) آن‌ها را تبدیل به بازنمایی بصری و نمودار کنید. تنظیمات زیادی برای استفاده از این نرم‌افزار و داشبوردهای مختلف Grafana وجود دارد تا بتوانید گره‌ی خود و شبکه را به‌طور کامل به شکل بصری بازنمایی کنید. به‌عنوان بخشی از نظارت خود، مطمئن شوید که عملکرد دستگاه خود را زیر نظر داشته باشید. در طول همگام‌‌سازی اولیه‌ی گره شما، ممکن است نرم‌افزار کلاینت برای پردازنده و رم بسیار سنگین باشد. علاوه بر Grafana می‌توانید از ابزارهایی که سیستم‌عاملتان به شما ارائه می‌دهد، مثل `htop` یا `uptime`، برای این کار استفاده کنید. - -## بیشتر بخوانید {#further-reading} - -- [تحلیل نیازهای سخت‌افزاری برای تبدیل شدن به یک گره‌ی کامل معتبر اتریوم](https://medium.com/coinmonks/analyzing-the-hardware-requirements-to-be-an-ethereum-full-validated-node-dc064f167902) _- آلبرت پالا، 24 سپتامبر 2018_ -- [اجرای گره‌های کامل اتریوم: راهنمایی برای افراد کم‌انگیزه](https://medium.com/@JustinMLeroux/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _- جاستین لروکس، 7 نوامبر 2019_ -- [اجرای یک گره‌ی Besu هایپرلجر روی شبکه‌ی اصلی اتریوم: مزایا، نیازمندی‌ها و راه‌اندازی](https://pegasys.tech/running-a-hyperledger-besu-node-on-the-ethereum-mainnet-benefits-requirements-and-setup/) _- فلیپ فراگی، 7 مه 2020_ -- [بکارگیری کلاینت اتریوم Nethermind با پشته‌ی نظارت](https://medium.com/nethermind-eth/deploying-nethermind-ethereum-client-with-monitoring-stack-55ce1622edbd) _- Nethermind.eth،‏ 8 جولای 2020_ - -## موضوعات مرتبط {#related-topics} - -- [گره‌ها و کلاینت‌ها](/developers/docs/nodes-and-clients/) -- [بلوک‌ها](/developers/docs/blocks/) -- [شبکه‌ها](/developers/docs/networks/) diff --git a/src/content/translations/fa/nft/index.md b/src/content/translations/fa/nft/index.md deleted file mode 100644 index 5657ccb8e14..00000000000 --- a/src/content/translations/fa/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: توکن‌های معاوضه‌ناپذیر (NFTها) -description: نگاهی کلی به NFTها در اتریوم -lang: fa -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: لوگوی اتر که با هولوگرام نمایش داده شده‌ است. -summaryPoint1: راهی برای نمایش دادن هر چیز بی‌همتا به‌عنوان یک دارایی مبتنی بر اتریوم. -summaryPoint2: "‏NFTها به تولیدکنندگان محتوا بیش از هر زمان دیگر قدرت می‌دهند." -summaryPoint3: با پشتیبانی قراردادهای هوشمند روی زنجیره‌ بلوکی اتریوم. ---- - -## NFT ها چه هستند? {#what-are-nfts} - -NFTها هر یک به صورت جداگانه منحصر به فرد هستند. هر NFT ویژگی های متفاوتی دارد (non-fungible) و این دلیلی بر کمیاب بودن آن است. این با توکن های دیگر مثل ERC-20 که در آن همه توکن هایی که در یک مجموعه هستند همسان اند و ویژگی های یکسانی دارند، متفاوت است ('fungible'). برای شما مهم نیست که دقیقا کدام اسکناس دلار در کیف پول‌تان است، زیرا همه آنها یکسان هستند و ارزش یکسانی دارند. با این حال، شما به اینکه کدام NFT خاص را دارید _اهمیت_ می‌دهید، زیرا هر کدام از آن ها مشخصات متفاوتی دارند که آن ها را نسبت به بقیه متمایز می‌کنند ('non-fungible'). - -منحصر به فرد بودن هر NFT امکان توکنیزه کردن چیزهایی مانند آثار هنری، اشیاء کلکسیونی یا حتی املاک و مستغلات را فراهم می‌کند؛ به این صورت یک NFT منحصر به فرد، برخی از اقلام خاص دنیای واقعی یا دیجیتالی را نمایندگی می‌کند. مالکیت یک دارایی توسط بلاکچین اتریوم تضمین می‌شود – هیچ‌کس نمی‌تواند سابقه‌ مالکیت را تغییر دهد یا یک NFT جدید را با کپی/پیست به وجود بیاورد. - - - -## اینترنت دارایی‌ها {#internet-of-assets} - -NFTها و اتریوم برخی از مشکلاتی را که امروزه در اینترنت وجود دارد حل می‌کنند. همان‌طور که همه‌چیز دیجیتالی‌تر می‌شود، نیاز به همتاسازی ویژگی‌های اقلام فیزیکی مانند نادر بودن، منحصربه‌فرد بودن و اثبات مالکیت وجود دارد، به شکلی که توسط هیچ سازمان متمرکزی کنترل نشود. برای مثال، با NFTها، شما میتوانید صاحب یک قطعه موسیقی که مخصوص اپلیکیشن موسیقی یک شرکت خاص نیست باشید، یا می‌توانید مالک نام کاربری شبکه اجتماعی خود باشید و این توانایی را داشته باشید که آن را بفروشید و یا معاوضه کنید، درحالی که ارائه دهنده پلتفرم نمی‌تواند آن را خودسرانه از شما بگیرد. - -اینترنت NFTها در مقایسه با اینترنت امروزی که اکثر ما استفاده می کنیم چنین به نظر می‌رسد... - -### یک مقایسه {#nft-comparison} - -| یک اینترنت NFT | اینترنت امروزی | -| -------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | -| شما مالک دارایی هایتان هستید! فقط شما می‌توانید آنها را بفروشید و یا مبادله کنید. | شما یک دارایی را از یک سازمان اجاره می‌کنید. | -| NFTها از نظر دیجیتالی منحصر به فرد هستند و هرگز دو NFT یکسان وجود ندارد. | یک نسخه کپی از یک موجودیت اغلب نمی‌تواند از نسخه اصلی تشخیص داده شود. | -| گواهی مالکیت یک NFT بر روی بلاکچین ذخیره می‌شود و قابل تایید همگان است. | سوابق مالکیت اقلام دیجیتال در سرورهایی که توسط سازمان ها کنترل می‌شوند ذخیره می‌شود - شما باید حرف آنها را قبول کنید. | -| NFTها قراردادهای هوشمند روی اتریوم هستند. یعنی آنها به راحتی می‌توانند در دیگر قراردادهای هوشمند و اپلیکیشن‌های غیرمتمرکز روی اتریوم استفاده شوند! | شرکت‌ های دارای اقلام دیجیتال، معمولا به زیرساخت اختصاصی «محدود و بسته» خود نیاز دارند. | -| سازندگان محتوا می‌توانند آثار خود را در هر جا بفروشند و می‌توانند به یک بازار جهانی دسترسی داشته باشند. | سازندگان به زیرساخت و توزیع پلتفرم‌هایی که استفاده می‌کنند متکی هستند. این‌ها اغلب مشمول شرایط استفاده و محدودیت‌های جغرافیایی هستند. | -| سازندگان NFT می‌توانند حقوق مالکیت کار خود را حفظ کنند و حق امتیاز را مستقیماً در قرارداد هوشمند NFT برنامه ریزی کنند. | پلتفرم‌هایی مانند سرویس‌های پخش موسیقی، اکثر سود حاصل از فروش را از آن خود می‌کنند. | - -## NFTها چگونه کار می‌کنند؟ {#how-nfts-work} - -مانند هر توکن دیگری که روی اتریوم ساخته می‌شود،NFTها هم توسط قراردادهای هوشمند ساخته میشوند. قرارداد هوشمند با یکی از چندین استاندارد NFT (معمولا ERC-1155 یا ERC-721) مطابقت دارد که مشخص می‌کند قرارداد هوشمند دارای چه توابعی است. قرارداد هوشمند می‌تواند NFT بسازد (ضرب کند) و آن را به یک مالک خاص اختصاص دهد. مالکیت در قرارداد هوشمند و از طریق نگاشت هر NFT به یک آدرس خاص تعیین میشود. هر NFT دارای یک ID و معمولاً ابرداده مرتبط با آن است که توکن خاص را منحصر به فرد می‌کند. - -هنگامی که شخصی یک NFT ایجاد یا ضرب می‌کند، در واقع در حال اجرای یک تابع در قرارداد هوشمند است که یک NFT خاص را به آدرس او اختصاص می دهد. این اطلاعات در حافظه قراداد ذخیره می‌شود، که قسمتی از بلاکچین است. سازنده قرارداد می‌تواند منطق اضافه ای در قرارداد بنویسد، به عنوان مثال محدود کردن تعداد توکن قابل تامین یا تعریف حق امتیازی که با هر بار انتقال توکن، به سازنده پرداخت شود. - -## NFTها برای چه مواردی مورد استفاده قرار می‌گیرند؟ {#nft-use-cases} - -NFTها کاربرد بسیاری دارند، از جمله: - -- اثبات اینکه شما در یک رویداد شرکت کرده اید -- گواهی این که شما دوره ای را گذرانده اید -- آیتم های قابل مالکیت در بازی ها -- هنر دیجیتال -- توکنیزه کردن دارایی های دنیای واقعی -- اثبات هویت دیجیتالی شما -- دریچه دسترسی به محتوا -- صدور بلیت -- نام دامنه های اینترنتی غیرمتمرکز -- وثیقه در امور مالی غیر متمرکز (DeFi) - -شاید شما هنرمندی هستید که می‌خواهید با استفاده از NFT، بدون از دست دادن کنترل و سودتان به واسطه ها، آثارتان را به اشتراک بگذارید. میتوانید قرارداد هوشمند جدیدی بسازید و تعداد NFT ها، مشخصات آن ها و لینک مربوط به یک کار هنری خاص را مشخص کنید. به عنوان یک هنرمند، شما می‌توانید حق امتیاز قابل پرداخت خود را در قرارداد هوشمند برنامه نویسی کنید (به عنوان مثال انتقال 5 درصد قیمت فروش به صاحب قرارداد، هر بار که یک NFT منتقل میشود). همچنین همیشه میتوانید ثابت کنید که شما سازنده NFTها هستید به این خاطر که مالک کیف پولی هستید که قرارداد را منتشر کرده است. خریداران شما به راحتی میتوانند اصالت NFT را که از مجموعه شما خریداری کرده اند اثبات کنند به این خاطر که کیف پول آنها به یکی از توکن ها در قرارداد هوشمند شما منتسب شده است. آنها میتوانند با خیالی آسوده نسبت به اصالت NFT شان، از آن توکن در سراسر اکوسیستم اتریوم استفاده کنند. - -و یا، بلیت یک رویداد ورزشی را در نظر بگیرید. درست همان‌طور که برگزارکننده‌ یک رویداد می‌تواند انتخاب کند که چند بلیت بفروشد، خالق یک NFT نیز می‌تواند تصمیم بگیرد که چه تعداد کپی وجود داشته باشد. گاهی این‌ها کپی‌هایی کاملاً شبیه به هم هستند، مانند 5000 بلیت پذیرش عمومی. گاهی اوقات چندین عدد ضرب می‌شود که بسیار شبیه به هم هستند، اما هر یک با دیگری کمی تفاوت دارد؛ مانند بلیت یک صندلی اختصاصی. بلیت ها را میتوان به شکل همتا به همتا و بدون نیاز به واسطه خرید و فروش کرد و خریدار همیشه میتواند اصالت بلیت ها را با چک کردن اعتبار آدرس قرارداد چک کند. - -در Ethereum.org، از NFTها برای نشان دادن مشارکت اعضا در GitHub ما یا شرکت در دورهمی ها استفاده میشود، و ما حتی دامنه NFT خودمان را داریم. اگر در ethereum.org مشارکت کنید، می‌توانید درخواست یک POAP NFT کنید. بعضی دورهمی های کریپتویی از PAOPها به عنوان بلیت استفاده کرده‌اند. [اطلاعات بیشتر در مورد مشارکت](/contributing/#poap). - -![ethereum.org POAP](./poap.png) - -همچنین این وبسایت یک دامنه جایگزین دارد که توسط NFTها پشتیبانی می‌شوند، **ethereum.eth**. آدرس `.org` ما اساساً توسط یک ارائه‌دهنده‌ سیستم نام دامنه (DNS) مدیریت می‌شود، در حالی که ethereum`.eth` از طریق سرویس نام اتریوم (ENS) در اتریوم ثبت شده‌ است. و تحت مالکیت و مدیریت ما است. [اطلاعات ENS ما را بررسی کنید](https://app.ens.domains/name/ethereum.eth) - -[اطلاعات بیشتر درباره‌ ENS](https://app.ens.domains) - - - -### امنیت NFT {#nft-security} - -امنیت اتریوم از اثبات سهام ناشی می‌شود. این سیستم به گونه‌ای طراحی شده است که از لحاظ اقتصادی از اقدامات خرابکارانه جلوگیری کند و اتریوم را ضد دستکاری کند. این همان چیزی است که NFT را ممکن می‌کند. هنگامی که بلوک حاوی تراکنش NFT شما نهایی شود، تغییر آن برای مهاجم، میلیون‌ها اتر هزینه خواهد داشت. هرکس که نرم‌افزار اتریوم را اجرا می‌کند، فوراً می‌تواند دستکاری خرابکارانه در NFT را تشخیص دهد و طرف خرابکار از نظر اقتصادی جریمه خواهد شد و اخراج می‌شود. - -مسائل امنیتی مربوط به NFTها اغلب به کلاهبرداری‌های فیشینگ، آسیب‌پذیری‌های قرارداد هوشمند یا خطاهای کاربر (مانند افشای ناخواسته کلیدهای خصوصی) مربوط می‌شود، که امنیت خوب برای کیف پول را برای دارندگان NFT ضروری می‌کند. - - - اطلاعات بیشتر در مورد امنیت - - -## بیشتر بخوانید {#further-reading} - -- [راهنمای NFT برای مبتدیان](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _لیندا ژی، ژانویه 2020_ -- [ردیاب EtherscanNFT](https://etherscan.io/nft-top-contracts) -- [استاندارد توکن ERC-721](/developers/docs/standards/tokens/erc-721/) -- [استاندارد توکن ERC-1155](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/fa/refi/index.md b/src/content/translations/fa/refi/index.md deleted file mode 100644 index 49d41ad62de..00000000000 --- a/src/content/translations/fa/refi/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: امور مالی بازتولیدکننده (ReFi) -description: مروری بر ReFi و موارد استفاده فعلی آن. -lang: fa -template: use-cases -emoji: ":recycle:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: یک سیستم اقتصادی جایگزین ساخته شده بر پایه اصول بازتولیدکننده -summaryPoint2: تلاشی برای استفاده از اتریوم برای حل چالش های هماهنگی در سراسر جهان مثل تغییرات آب و هوایی -summaryPoint3: ابزاری برای مقیاس‌پذیری قابل توجه دارایی های سودمند زیست محیطی مانند اعتبارات کربن تایید شده ---- - -## Refi چیست؟ {#what-is-refi} - -**امور مالی بازتولیدکننده (ReFi)**مجموعه ای از ابزار ها و ایده ها است که بر روی بستر بلاکچین ساخته شده اند که هدف آن تولید اقتصادهایی است که بازتولیدکننده باشند، نه استخراجی یا استثمارگر. در نهایت، سیستم های استخراجی منابع موجود را استفاده کرده و از بین می برند که بدون هیچگونه ساز و کار بازتولیدکننده، فاقد قدرت خواهند بود. عملکرد ReFi بر این پنداشت است که ایجاد ارزش پولی باید از استخراج ناپایدار منابع از سیاره و از جوامع ما جدا شود. - -در عوض، هدف ReFi حل مشکلات محیط زیستی، همگانی، یا اجتماعی به وسیله ایجاد چرخه های بازتولیدکننده می باشد. این سیستم ها در حالی که برای شرکت کنندگان ارزش تولید می کنند، به طور همزمان به اکوسیستم ها و جوامع هم سود می رسانند. - -یکی از پایه های ReFi مفهوم اقتصاد بازتولیدکننده است که توسط جان فولرتون از [موسسه کاپیتال](https://capitalinstitute.org) مطرح شد. او 8 اصل به هم پیوسته را که زیربنای سلامت سیستماتیک را تشکیل می دهند پیشنهاد کرد: - -![هشت اصل به هم پیوسته](../../assets/use-cases/refi-regenerative-economy-diagram.png) - -پروژه های Refi این اصول را هنگام استفاده از [قرارداد های هوشمند](/developers/docs/smart-contracts/) و اپلیکیشن‌های[ سیستم های مالی غیر متمرکز (DeFi)](/defi/) به عنوان محرکی برای رفتارهای بازتولیدکننده به کار می گیرند. به عنوان مثال احیا اکوسیستم های تنزل یافته و تقویت همکاری ها در مقیاس بزرگ برای مسائل جهانی مانند تغییرات آب و هوا و تقلیل تنوع زیستی جانوری. - -ReFi همچنین با جنبش [دانش غیرمتمرکز (DeSci)](/desci/) همپوشانی دارد، که از اتریوم به عنوان پلتفرمی برای فراهم کردن سرمایه، تولید کردن، بررسی کردن، اعتبار دادن، ذخیره کردن، و منتشر کردن دانش علمی استفاده می کند. ابزارهای DeSci می توانند برای توسعه استاندارد ها و شیوه های تحقیق پذیر برای اجرا کردن و نظارت کردن بر فعالیت های بازتولیدکننده مانند کاشتن درختان، جمع‌آوری پلاستیک از اقیانوس، یا احیای یک اکوسیستم تخریب شده مفید باشند. - -## توکنیزه کردن اعتبارات کربنی {#tokenization-of-carbon-credits} - -**[بازار داوطلبانه کربن (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** مکانیزمی است برای تامین مالی پروژه هائی که تاثیر مثبت تایید شده ای بر انتشار کربن می گذارند؛ یا مداوم انتشارشان را کاهش می دهند، یا گاز های گل خانه ای را که قبلا در جو منتشر شده اند حذف می‌کنند. پس از تایید این پروژه ها، آن ها یک دارائی به نام "اعتبارات کربن" دریافت می کنند، که می توانند آن ها را به افراد و سازمان هایی که میخواهند از اقدامات آب و هوایی حمایت کنند بفروشند. - -علاوه بر VCM، چندین بازار کربن دستوری از طرف دولت («بازارهای سازگاری) وجود دارد که هدف آن ها تعیین قیمت کربن از طریق قوانین و مقررات در یک حوزه قضایی بخصوص (مثلا در یک کشور یا منطقه)، جهت کنترل صدور مجوزهایی است که باید توزیع شوند. بازارهای سازگاری، در حوزه حقوقی خود، آلایندگان را جهت کاهش انتشار گاز های گلخانه ای تشویق می کنند، اما قادر به پاک کردن گاز های گلخانه ای از قبل منتشر شده نیستند. - -علی رقم توسعه آن در دهه های اخیر، VCM هنوز با چالش های متعددی مواجه است: - -1. پراکندگی زیاد نقدینگی -2. مکانیزم های غیر شفاف تراکنش -3. هزینه های بالا -4. سرعت بسیار پایین معاملات -5. عدم مقیاس پذیری - -انتقال VCM به **بازار جدید کربن دیجیتال (DCM)** مبتنی بر بلاک چین ممکن است شانسی برای ارتقا دادن تکنولوژی موجود برای معتبر ساختن، معامله کردن و مصرف کردن اعتبارات کربن باشد. بلاکچین‌ها به داده های قابل تایید عمومی اجازه دسترسی برای طیف گسترده ای از کاربرها، و نقدینگی بیشتر را می دهند. - -پروژه های Refi با به کار گیری تکنولوژی بلاکچین تعداد زیادی از مشکلات بازار های سنتی را تسهیل می کنند: - -- ** نقدینگی در تعداد محدودی از استخر های نقدینگی متمرکز شده است** که هر شخص می تواند آزادانه آن را مبادله کند. تشکیلات بزرگ همانند اشخاص می توانند از این استخر های نقدینگی بدون جستجوی دستی فروشندگان و خریداران، پرداخت هزینه های مشارکت یا هزینه ثبت نام، استفاده کنند. -- **تمامی تراکنش ها به روی بلاکچین‌های عمومی ثبت می شوند**. مسیری که هر یک از اعتبارات کربن جهت فعالیت مبادله طی می کند، به محض در دسترس بودن در DCM برای همیشه قابل ردیابی خواهد بود. -- **سرعت تراکنش تقریبا آنی می باشد**. تامین مقادیر زیاد اعتبارات کربن از طریق بازارهای ارثی می تواند چندین روز یا هفته به طول بینجامد، در حالی که از طریق DCM در عرض چند ثانیه میسر خواهد بود. -- **فعالیت مبادله تجاری بدون هرگونه واسطه انجام می گیرد**، که کارمزد بالایی را درخواست می کنند. به توجه به داده های یک شرکت تحلیلی، اعتبارهای کربن دیجیتال باعث [ بهبود 62% هزینه نسبت به اعتبار های کربن سنتی](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne) میشود. -- **DCM مقیاس پذیز است** و میتواند هم نیاز اشخاص و هم سازمان های بین المللی را بر طرف کند. - -### اجزای کلیدی DCM {#key-components-dcm} - -چشم انداز فعلی DCM شامل چهار جزء اصلی است: - -1. سازمان ها یا سیستم هایی مانند [Verra](https://verra.org/project/vcs-program/registry-system/) و [ Gold Standard](https://www.goldstandard.org/) از قابل اعتماد بودن پروژه هایی که اعتبارات کربن تولید می کنند اطمینان حاصل می کنند. آنها همچنین پایگاه های اطلاعاتی را مدیریت می کنند که اطلاعات کربن دیجیتال از آن ها منشأ می گیرد و می تواند منتقل یا مصرف شود (بازنشسته). - -موج جدیدی از پروژه های نوآورانه در حال ساخت بر روی بلاکچین‌ها وجود دارد که در حال تلاش برای ایجاد اختلال برای متصدیان در این بخش هستند. - -2. پل های کربنی، با نام مستعار مبدل توکن های دیجیتال، یک فناوری برای نمایش دادن یا انتقال اعتبارات کربن از سازمان های قدیمی به DCM را فراهم می کنند. مثال های قابل توجه شامل [Toucan Protocol](https://toucan.earth/)، [C3](https://c3.app/)، و [Moss.Earth](https://moss.earth/) می شوند. -3. خدمات یکپارچه، اجتناب کربن و/یا حذف اعتبارات را به کاربران نهایی ارائه می کند بنابراین آن ها می توانند اعتبار مزایای زیست محیطی را مطالبه کنند و حمایت خود را از اقدامات آب و هوایی را با دنیا به اشتراک بگذارند. - -بعضی شرکت ها مثل [کلیما اینفینیتی (Klima Infinity)](https://www.klimadao.finance/infinity) و [سنکن (Senken)](https://senken.io/) طیف گسترده ای از پروژه های توسعه یافته توسط شرکت های ثالت و اعتبار کربن صادر شده زیر نظر استاندارد هایی مثل Verra را ارائه میدهند؛ دیگران مثل [نوری (Nori)](https://nori.com/) تنها پروژه های خاص را که زیر نظر استاندارد خودشان توسعه یافته اند ارائه میدهند، که صادر کننده اعتبار کربن خودشان هستند و برای هر کدام بازارچه مخصوص به خود را دارند. - -4. چارچوب و زیرساخت اساسی که امکان مقیاس‌پذیری اثربخشی و بازده کل زنجیره تامین را در بازار کربن فراهم می کند. [KlimaDAO](http://klimadao.finance/) نقدینگی را به عنوان کالای عمومی تامین می‌کند (امکان خرید یا فروش اعتبار کربن با قیمتی شفاف را برای هر کس فراهم میکند)، مشوق برای افزایش فعالیت در بازارهای کربن و بازنشستگی اعتبارات را از طریق پاداش‌ها، و ابزارهای ساده و هم‌تراز برای دسترسی به اطلاعات و همچنین به‌دست آوردن و بازنشستگی طیف گسترده‌ای از اعتبارات کربن توکن‌سازی‌شده فراهم می‌کند. - -## Refi فراتر از بازارهای کربن {#refi-beyond} - -با اینکه هم اکنون تاکید زیادی روی بازارهای کربن به طور کلی، و به خصوص انتقال VCM به DCM در این حوزه وجود دارد، Refi به کربن محدود نمیشود. دیگر دارایی‌های زیست‌محیطی فراتر از اعتبارات کربن هم میتوانند توسعه و توکنیزه شوند، که امکان گنجاندن سایر اثرات جانبی نامطلوب را در سطوح پایه ای سیستم‌های اقتصادی آینده فراهم می‌کند. علاوه بر این، جنبه بازتولیدکنندگی این مدل اقتصادی را میتوان برای سایر بخش نیز بکار برد مثل تامین سرمایه کالاهای عمومی از طریق پلتفرم های تامین مالی درجه دوم مثل [گیتکوین](https://gitcoin.co/). سازمان هایی که بنیاد آن ها بر اساس ایده مشارکت آزاد و توزیع منصفانه منابع نهادینه شده است همه را قادر می‌سازند سرمایه ها را به سمت پروژه های نرم افزاری منبع-باز، و نیز پروژه‌های آموزشی، محیط زیستی و پروژه های جامعه محور سرازیر کنند. - -با تغییر مسیر جریان سرمایه از فعالیت‌های استخراجی به سوی جریان بازتولیدکننده، پروژه‌ها و شرکت‌هایی که مزایای اجتماعی، زیست محیطی یا محلی ارائه می‌کنند - و ممکن است در سیستم سنتی تامین سرمایه ناموفق باشند - می‌توانند از جا بلند شوند و تأثیرات مثبت جانبی را برای جامعه به شکل سریع‌تر و آسان‌تر ایجاد کنند. انتقال به این نوع تأمین سرمایه، همچنین فرصتی برای ایجاد سیستم‌های اقتصادی فراگیر ایجاد می‌کند که در آنها افراد همه بافت‌های جمعیتی می‌توانند به صورت فعال مشارکت کنند، به جای اینکه فقط به طور غیرفعال ناظر باشند. ReFi چشم اندازی از اتریوم را ارائه میدهد که از آن به عنوان مکانیسمی برای هماهنگی مقابله با چالش‌های پیش روی ما و حیات روی سیاره‌‌مان استفاده میشود- به عنوان لایه پایه‌ای یک پارادایم اقتصادی جدید در آینده، این مکانیسم یک آینده فراگیرتر و پایدارتر برای قرون آینده را ممکن می‌سازد. - -## مطالعه بیشتر درباره ReFi - -- [نگاه کلی به ارز های کربن و جایگاه آنها در اقتصاد](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) -- [وزارت آینده، رمانی که نقش ارزهای دارای پشتوانه کربن در مقابله با تغییرات اقلیمی را شرح می‌دهد](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) -- [یک گزارش مفصل از سوی Taskforce for Scaling Voluntary Carbon Markets](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) -- [توضیح واژه نامه CoinMarketCap از Kevin Owocki و Evan Miyazono درباره ReFi](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/fa/roadmap/beacon-chain/index.md b/src/content/translations/fa/roadmap/beacon-chain/index.md deleted file mode 100644 index 7385621a842..00000000000 --- a/src/content/translations/fa/roadmap/beacon-chain/index.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: زنجیره بیکن -description: در مورد زنجیره‌ی بیکن یاد بگیرید - ارتقایی که اثبات سهام را برای اتریوم به ارمغان می‌آورد. -lang: fa -template: upgrade -image: ../../../../../assets/upgrades/core.png -summaryPoint1: زنجیره‌ی بیکن هیچ چیز مربوط به اتریومی را که امروزه استفاده می‌کنیم، تغییر نمی‌دهد. -summaryPoint2: بلکه شبکه را متناسب کرده و به عنوان یک لایه اجماع عمل می‌کند. -summaryPoint3: اثبات سهام را به اکوسیستم اتریوم وارد می‌کند. -summaryPoint4: احتمالاً شما آن را در نقشه راه فنی تحت عنوان "فاز ۰" می شناسید. ---- - - - زنجیره بیکن در 1 دسامبر 2020، رأس ساعت 12 ظهر به وقت ساعت هماهنگ جهانی آغاز به کار کرد. برای یادگیری بیشتر، این داده ها را بکاوید. اگر می‌خواهید به اعتبارسنجی زنجیره کمک کنید، می‌توانید اتر خود را سهام‌گذاری کنید. - - -## زنجیره بیکن چه می‌کند؟ {#what-does-the-beacon-chain-do} - -زنجیره‌ی بیکن شبکه‌ی بسط‌یافته [خرده‌زنجیره‌ها](/roadmap/danksharding/) و [سهام‌گذارها](/staking/) را هدایت یا هماهنگ می‌کند. اما نظیر[شبکه اصلی اتریوم](/glossary/#mainnet) امروز نخواهد بود. قابلیت استفاده از حساب های کاربری و قرارداد های هوشمند را ندارد. - -نقش زنجیره‌ی بیکن در طی زمان تغییر می‌کند اما همچنان عنصری بنیادین برای [ اتریوم امن، پایدار و مقیاس پذیری که اکنون داریم به سویش پیش می‌رویم](/roadmap/vision/) باقی می‌ماند. - -## ویژگی های زنجیره بیکن {#beacon-chain-features} - -### درباره سهام گذاری {#introducing-staking} - -زنجیره بیکن ویژگی [اثبات مالکیت سهام](/developers/docs/consensus-mechanisms/pos/) را به اتریوم اضافه می‌ کند. این یک روشی جدید برای شماست که اتریوم را امن نگه دارید. از این روش می توان به عنوان چیزی عام المنفعه یاد کرد که قرار است اتریوم را سالم تر کند و در طی این فرایند اتر بیشتری را نصیب شما کند. در عمل این روش شما را وارد سهام گذاری اتر برای فعال سازی نرم افزار اعتبارسنج خواهد کرد. به عنوان اعتبارسنج، شما تراکنش ها را پردازش خواهید کرد و بلوک های جدیدی را در زنجیره خواهید ساخت. - -سهام گذاری و اعتبارسنج شدن آسان تر از [استخراج](/developers/docs/mining/) است (که در حال حاضر شبکه با آن امن شده است). و امیدواریم که این روش در دراز مدت، به ایمن تر کردن اتریوم کمک کند. هر چه افراد بیشتری در شبکه مشارکت کنند، شبکه نسبت به حملات ایمن تر و غیرمتمرکزتر خواهد شد. - - -اگر به اعتبارسنج شدن و کمک به ایمن‌سازی شبکه‌ی بیکن علاقمند دارید، درباره سهام‌گذاری بیشتر بدانید. - - -این موضوع هم‌چنین تغییری مهم برای ارتقای دیگری است: [خرده‌زنجیره‌ها](/roadmap/danksharding/). - -### راه اندازی زنجیره های شارد {#setting-up-for-shard-chains} - -بعد از ادغام شدن شبکه اصلی و زنجیره بیکن، ارتقای بعدی زنجیره شارد را به شبکه اثبات مالکیت سهام معرفی می‌کند. این زنجیره های "شارد" ظرفیت شبکه را افزایش می‌دهند و با توسعه شبکه به 64 زنجیره بلوکی سبب افزایش سرعت تراکنش ها می‌ شوند. زنجیره بیکن اولین قدم مهم در معرفی زنجیره های شارد است، چرا که این زنجیره ها برای عملکرد ایمن نیاز به سهام گذاری دارند. - -در نهایت زنجیره بیکن مسئولیت اختصاص دادن تصادفی سهام گذار ها را به اعتبارسنج ها در زنجیره های شارد نیز خواهد داشت. این امر در دشوار کردن تبانی و تصاحب زنجیره های شارد توسط سهام گذار ها نقش کلیدی دارد. خب، این یعنی آنها [شانسی کمتر از 1 در هزار میلیارد](https://medium.com/@chihchengliang/minimum-committee-size-explained-67047111fa20) خواهند داشت. - -## ارتباط میان ارتقاها {#relationship-between-upgrades} - -تمام ارتقاهای اتریوم تا حدودی با یکدیگر مرتبط هستند. پس بیایید دوباره خلاصه کنیم که زنجیره بیکن چگونه بر سایر ارتقاها تأثیر می‌گذارد. - -### شبکه اصلی و زنجیره بیکن {#mainnet-and-beacon-chain} - -زنجیره بیکن ابتدا، به شکل جدا از شبکه اصلی اتریوم که امروزه استفاده می‌کنیم وجود خواهد داشت. اما در نهایت با هم ادغام خواهند شد. نقشه این است که شبکه اصلی با سیستم گواهی اثبات مالکیت سهام "ادغام" شود، این کار ازطریق زنجیره بیکن هدایت و تنظیم می‌ شود. - - - ادغام - - -### زنجیره های شارد و زنجیره بیکن {#shards-and-beacon-chain} - -زنجیره های شارد تنها می‌توانند با داشتن یک مکانیسم توافق مجموعه اثبات مالکیت سهام به شکل ایمن وارد اکوسیستم اتریوم شوند. زنجیره بیکن سهام گذاری را معرفی خواهد کرد، که راه را برای ارتقای رنجیره های شارد هموار خواهد کرد. - - - زنجیره های شارد - - - - -## تعامل با زنجیره بیکن {#interact-with-beacon-chain} - - diff --git a/src/content/translations/fa/roadmap/merge/index.md b/src/content/translations/fa/roadmap/merge/index.md deleted file mode 100644 index 7f0c6dab178..00000000000 --- a/src/content/translations/fa/roadmap/merge/index.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: ادغام -description: درباره‎ ادغام بدانید - زمانی که شبکه‌ی اصلی اتریوم به سیستم اثبات سهامی می‌پیوندد که توسط زنجیره‌ی بیکن هماهنگ شده‌است. -lang: fa -template: upgrade -image: ../../../../../assets/upgrades/merge.png -summaryPoint1: سرانجام شبکه اصلی کنونی اتریوم با سیستم گواهی اثبات سهام زنجیره بیکن "ادغام" خواهد شد. -summaryPoint2: این نشانگر پایان گواهی کار و انتقال کامل به سیستم گواهی اثبات سهام برای اتریوم خواهد بود. -summaryPoint3: برنامه ریزی شده که ادغام پیش از رونمایی از زنجیره های شارد انجام شود. -summaryPoint4: ما پیش تر به این کار "داکینیگ" می‌ گفتیم. ---- - - - این ارتقا تغییر رسمی به سمت توافق گواهی اثبات سهام را نشان می‌دهد. این تغییر به انرژی بیشتری برای استخراج نیاز ندارد، در عوض سبب امن شدن شبکه از طریق سهام گذاری اتر می‌ شود. قدمی به‌واقع هیجان‌انگیز در راه تحقق چشم انداز اتریوم - مقیاس‌پذیری، امنیت، و پایداری بیشتر. - - -## ادغام چیست؟ {#what-is-the-docking} - -مهم است که به خاطر داشته باشیم که در ابتدا، [زنجیره‌ی بیکن](/roadmap/beacon-chain/) از [شبکه‌ی اصلی](/glossary/#mainnet) جدا شد - زنجیره‌ای که امروز از آن استفاده می‌‌کنیم. تأمین امنیت شبکه اصلی اتریوم همچنان ازطریق [گواهی کار](/developers/docs/consensus-mechanisms/pow/) انجام خواهد شد، حتی زمانی که زنجیره بیکن با استفاده از [گواهی اثبات سهام](/developers/docs/consensus-mechanisms/pos/) به صورت موازی اجرا می شود. ادغام زمانی است که این دو سیستم به یکدیگر می‌پیوندند. - -فرض کنید اتریوم یک سفینه فضاییست که برای ماجراجویی نجومی خود هنوز کاملاً آماده نشده است. با زنجیره بیکن، جامعه یک موتور تازه با بدنه قوی ساخته است. وقتی که زمانش برسد، سفینه فعلی به این سیستم جدید متصل و به یک سفینه ادغام می‌ شوند، آماده حرکت کردن برای سال های نوری به سمت کهکشان می‌ شود. - -## ادغام کردن شبکه اصلی {#docking-mainnet} - -زمانی که آماده شود، شبکه اصلی اتریوم با زنجیره بیکن "ادغام" می‌ شود، و به شارد خودش تبدیل می‌ شود که از گواهی اثبات سهام به جای [گواهی کار](/developers/docs/consensus-mechanisms/pow/) استفاده می‌ کند. - -شبکه اصلی برای حصول اطمینان از انتقال روان همه کاربران و دارندگان اتر، امکان اجرای قراردادهای هوشمند را علاوه بر تمام تاریخچه و وضعیت کنونی اتریوم در سیستم گواهی اثبات سهام فراهم خواهد کرد. - -## پس از ادغام {#after-the-merge} - -این نشانگر پایان گواهی کار برای اتریوم و آغاز عصر اتریومی پایدارتر و سازگارتر با محیط زیست خواهد بود. در این نقطه اتریوم یک قدم به دستیابی به مقیاس کامل، امنیت، و تاب‌آوری بیشتر که در [چشم‌انداز اتریوم 2](/roadmap/vision/) به آن اشاره شده است، نزدیک می‌‌شود. - -این نکته نیز مهم است که هدف اجرای عملیات ادغام، ساده‌‌سازی و تسریع انتقال از اثبات کار به اثبات سهام است. توسعه‌دهندگان در حال تمرکز بر روی تراکنشها، و کاهش ویژگی های جدیدی که سبب تاخیر در رسیدن به این هدف می‌شود، هستند. - -**این به این معنی هست که معدودی از ویژگی‌ها، مانند توانایی عقب‌نشینی سهام‌گذاری اتر باید کمی صبر کنند تا این ادغام تمام شود.** طبق برنامه‌ریزی یک «پاک‌سازی» ارتقا پس از ادغام برای پاسخ‌گویی به این ویژگی‌ها باید انجام شود، که قرار است خیلی زود بعد از ادغام اتفاق بیفتد. - -## ارتباط میان ارتقا‌ها {#relationship-between-upgrades} - -تمام ارتقاهای اتریوم تا حدودی با یکدیگر مرتبط هستند. پس بیایید نحوه‌ی ارتباط ادغام با سایر ارتقاها را مرور کنیم. - -### ادغام و زنجیره‌ی بیکن {#docking-and-beacon-chain} - -زمانی که ادغام اتفاق بیفتد، سهام‌گذاران برای معتبرسازی شبکه‌ی اصلی اتریوم تخصیص داده می‌شوند. دیگر نیازی به [استخراج](/developers/docs/consensus-mechanisms/pow/mining/) نخواهد بود، در نتیجه استخراجگران احتمالاً درآمد خود را در سهام گذاری سیستم جدید گواهی اثبات سهام سرمایه گذاری خواهند کرد. - - - زنجیره بیکن - - -### ادغام و پاک‌سازی پس از ادغام {#merge-and-post-merge-cleanup} - -بلافاصله پس از ادغام، برخی از ویژگی‌‌ها مانند برداشتن اتر سهام‌گذاری‌شده همچنان پشتیبانی نخواهند شد. این‌ موارد برای ارتقای جداگانه‌ای پس از پروژه‌ی ادغام برنامه‌ریزی شده‌اند. - -با [وبلاک توسعه و تحقیقات بنیاد اتریوم](https://blog.ethereum.org/category/research-and-development/) بروز بمانید. افراد کنجکاو می‌توانند [چه اتفاقی پس از ادغام می‌افتد](https://youtu.be/7ggwLccuN5s?t=101) که توسط ویتالیک در رویداد جهانی اتر در آوریل 2021 ارائه شده است را مشاهده کنند. - -### ادغام و خرده‌زنجیره‌‌ها {#docking-and-shard-chains} - -در ابتدا، برنامه این بود که روی خرده‌زنجیره‌ها قبل از ادغام کار شود - تا به نیاز مقیاس‌پذیری پاسخ داده شود. اما، با رشد چشمگیر [راه‌حل‌های لایه‌ی 2 مقیاس‌پذیری](/developers/docs/scaling/#layer-2-scaling)، اولویت به سمت تعویض اثبات سهام با اثبات کار تغییر کرده است. - -این یک ارزیابی مداوم از جامعه برای پاسخ به چندین دوره احتمالی از خده زنجیره های شارد برای امکان پذیر کردن مقیاس پذیری بی نهایت است. - - - زنجیره های شارد - - -## بیشتر بخوانید {#read-more} - - diff --git a/src/content/translations/fa/smart-contracts/index.md b/src/content/translations/fa/smart-contracts/index.md deleted file mode 100644 index d6c6acd80fc..00000000000 --- a/src/content/translations/fa/smart-contracts/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: قراردادهای هوشمند -description: یک مقدمه‌ی غیرفنی بر قراردادهای هوشمند -lang: fa ---- - -# مقدمه‌ای بر قراردادهای هوشمند {#introduction-to-smart-contracts} - -قرارداد های هوشمند بنیادی‌ترین اجزای سازنده لایه اپلیکیشن اتریوم هستند. آن ها برنامه های کامپیوتری دخیره شده بر روی بستر بلاکچین هستند که از منطق "اگر این بنابراین آن" پیروی می کنند و تضمین می شوند که بر اساس قوانین تعریف شده از سوی کد آن اجرا شوند و زمانی که ایجاد شدند دیگر قابل تغییر نخواهند بود. - -نیک سابو برای اولین بار آن‌ها را «قرارداد هوشمند» نامید. او در سال 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). - -سابو یک بازار دیجیتال را تجسم کرد که در آن فرایندهای خودکار و امن از نظر رمزنگاری، تراکنش ها و وظایف کسب و کار را قادر می‌سازند بدون واسطه های مورد اعتماد رخ دهند. قراردادهای هوشمند در اتریوم به این تجسم جامه‌ عمل می‌پوشانند. - -### اعتماد در قراردادهای متعارف {#trust-and-contracts} - -یکی از بزرگترین مشکلات قراردادهای سنتی، نیاز به افراد مورد اعتماد برای پیگیری نتایج قرارداد است. - -به‌عنوان مثال: - -آلیس و باب مسابقه دوچرخه‌سواری دارند. فرض کنید آلیس با باب 10 دلار شرط می‌بندد که در مسابقه برنده خواهد شد. باب مطمئن است که برنده خواهد بود و با شرط بندی موافقت می کند. در پایان، آلیس مسابقه را خیلی جلوتر از باب به پایان می‌رساند و مشخصاً برنده می‌شود. اما باب از پرداخت مبلغ شرط‌بندی امتناع می‌کند و ادعا می‌کند که آلیس حتماً تقلب کرده است. - -این مثال احمقانه، مشکل هر نوع توافق غیرهوشمند را نشان می‌دهد. حتی اگر شرایط توافق برآورده شود (یعنی شما برنده مسابقه شده باشید)، همچنان باید به شخص دیگری برای اجرای توافق اعتماد کنید (یعنی پرداخت مبلغ شرط‌بندی). - -### یک دستگاه فروش دیجیتال {#vending-machine} - -یک مثال ساده برای قرارداد هوشمند، دستگاه فروش خودکار است که تا حدودی شبیه به قرارداد هوشمند عمل می‌کند - ورودی‌های خاص خروجی‌های از پیش تعیین شده را تضمین می‌کنند. - -- شما یک محصول را انتخاب می‌کنید -- دستگاه فروش خودکار قیمت را نشان می دهد -- شما بهای آن را پرداخت می کنید -- دستگاه فروش خودکار تایید می کند که شما مبلغ درستی را پرداخت کرده اید -- وندینگ ماشین جنس را به شما می دهد - -دستگاه فروش خودکار فقط پس از برآورده شدن تمام الزامات، محصول مورد نظر را به شما می‌دهد. اگر محصولی را انتخاب نکنید یا پول کافی پرداخت نکنید، دستگاه فروش خودکار محصول را به شما تحویل نمی‌دهد. - -### اجرای خودکار {#automation} - -مزیت اصلی قراردادهوشمند این است که زمانی که شرایط مشخص موجود باشد، کد دستوری واضح و غیر مبهم را به طور قطعی اجرا می کند. نیازی نیست منتظر ماند تا انسان نتیجه را تفسیر یا راجع به آن مذاکره کند. این امر، نیاز به واسطه قابل اعتماد را از بین میبرد. - -به‌عنوان مثال، می‌توانید یک قرارداد هوشمند بنویسید که مبلغی را برای یک کودک نزد شخص ثالث نگه دارد و به او اجازه دهد پس از یک تاریخ خاص مبلغ را برداشت کند. اگر سعی کند وجه را قبل از تاریخ مشخص شده برداشت کند، قرارداد هوشمند اجرا نمیشود. یا می‌توانید قراردادی بنویسید که نسخه‌ی دیجیتالی سند خودرو را هنگام پرداخت قیمت معامله به فروشنده به‌طور خودکار به شما بدهد. - -### خروجی‌های قابل پیش‌بینی {#predictability} - -قراردادهای سنتی مبهم هستند زیرا تفسیر و اجرای آنها به عهده انسان است. برای مثال، دو قاضی ممکن است تفسیر متفاوتی از یک قرارداد یکسان داشته باشند،که میتواند منجر به تصمیمات ناسازگار و نتیجه نهایی نابرابر شود. قراردادهای هوشمند این احتمال را از بین میبرند. در عوض، قراردادهای هوشمند دقیقاً بر اساس شرایط نوشته شده در کد قرارداد اجرا می‌شوند. این دقت به این معنی است که در شرایط یکسان، قرارداد هوشمند نتیجه یکسان را به همراه خواهد داشت. - -### سابقه‌ی عمومی {#public-record} - -قراردادهای هوشمند برای حسابرسی و ردیابی مفید هستند. از آنجایی که قراردادهای هوشمند اتریوم بر روی یک بلاکچین عمومی قرار دارند، هر کس می‌تواند فوراً انتقال دارایی‌ها و سایر اطلاعات مرتبط را ردیابی کند. برای مثال، شما میتوانید چک کنید که آیا کسی به آدرس شما پول فرستاده است یا نه. - -### حفاظت از حریم خصوصی {#privacy-protection} - -قراردادهای هوشمند همچنین می‌توانند از حریم خصوصی شما محافظت کنند. از آنجا که اتریوم یک شبکه‌ مستعار است (تراکنش‌های شما به‌صورت عمومی به یک آدرس رمزنگاری منحصربه‌فرد مرتبط هستند، نه هویت شما)، می‌توانید از حریم خصوصی خود در برابر ناظران محافظت کنید. - -### قوانین مشخص {#visible-terms} - -در نهایت، مانند قراردادهای سنتی، شما قبل از امضای قرارداد هوشمند (یا هر نوع تعامل دیگر با آن) می‌توانید محتوای آن را بررسی نمایید. بخاطر شفافیت قراردادهای هوشمند میتوان آنها را موشکافانه بررسی کرد. - -## کاربردهای قراردادهای هوشمند {#use-cases} - -قراردادهای هوشمند اصولاً قادرند هر کاری را که توسط نرم‌افزارهای رایانه‌ای قابل انجام است انجام دهند. - -این کار دیگر می‌تواند انجام محاسبات، ایجاد واحد پولی، ذخیره‌ داده، استخراج توکن‌های غیرقابل معاوضه، برقراری ارتباط یا حتی ایجاد تصاویر گرافیکی باشد. در ادامه چند مثال معمول از دنیای واقعی آورده شده است: - -- [پایدارزها](/stablecoins/) -- [ایجاد و توزیع دارایی‌های یکتای دیجیتال](/nft/) -- [یک صرافی خودکار و باز یکاهای پولی](/get-eth/#dex) -- [بازی کردن غیرمتمرکز](/dapps/?category=gaming) -- [یک بیمه‌نامه که به‌صورت خودکار پرداخت می‌کند.](https://etherisc.com/) -- [استانداردی که به افراد امکان می‌دهد ارزهای سفارشی‌شده و قابل تعامل ایجاد کنند](/developers/docs/standards/tokens/) - -## فردی هستید که با توضیحات تصویری راحت‌ترید؟ {#visual-learner} - -Watch Finematics قراردادهای هوشمند را توضیح می‌دهد: - - - -## بیشتر بخوانید {#further-reading} - -- [چگونه قراردادهای هوشمند دنیا را تغییر خواهند داد](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [قردادهای هوشمند: فناوری زنجیره‌‌ی بلوکی که جایگزین وکلا خواهد شد](https://blockgeeks.com/guides/smart-contracts/) -- [قراردادهای هوشمند برای توسعه‌دهندگان](/developers/docs/smart-contracts/) -- [نحوه‌ی نوشتن قراردادهای هوشمند را بیاموزید](/developers/learning-tools/) -- [تبحر در اتریوم: یک قرارداد هوشمند چیست؟](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/src/content/translations/fa/social-networks/index.md b/src/content/translations/fa/social-networks/index.md deleted file mode 100644 index 6159583d7b1..00000000000 --- a/src/content/translations/fa/social-networks/index.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: شبکه های اجتماعی غیر متمرکز -description: بررسی اجمالی شبکه های اجتماعی غیرمتمرکز روی اتریوم -lang: fa -template: use-cases -emoji: ":mega:" -sidebarDepth: 2 -image: ../../../../assets/ethereum-learn.png -summaryPoint1: پلتفرم های مبتنی بر بلاک چین، برای تعامل اجتماعی و ایجاد و توزیع محتوا. -summaryPoint2: شبکه های رسانه اجتماعی غیرمتمرکز، از حریم خصوصی کاربران محافظت می کنند و امنیت داده ها را افزایش می دهند. -summaryPoint3: توکن ها و نیفتی ها راه های جدیدی برای کسب درآمد از محتوا ایجاد می کنند. ---- - -شبکه های اجتماعی نقش گسترده ای در ارتباطات و تعاملات روزانه ما دارند. اگرچه، کنترل متمرکز این پلتفرم‌ها مشکلات زیادی ایجاد کرده است که: نقض داده‌ها، قطع شدن سرورها، پلتفرم‌زدایی، سانسور و نقض حریم خصوصی برخی از مبادلاتی هستند که رسانه‌های اجتماعی اغلب انجام می‌دهند. برای مبارزه با این مشکلات، توسعه دهندگان در حال ساخت شبکه های اجتماعی بر روی اتریوم هستند. شبکه های اجتماعی غیرمتمرکز می توانند بسیاری از مشکلات پلتفرم های شبکه های اجتماعی سنتی را برطرف کنند و تجربه کلی کاربران را بهبود بخشند. - -## شبکه های اجتماعی غیرمتمرکز چی هستند؟ {#what-are-decentralized-social-networks} - -شبکه‌های اجتماعی غیرمتمرکز پلتفرم‌هایی مبتنی بر بلاک چین هستند که به کاربران امکان تبادل اطلاعات و همچنین انتشار و توزیع محتوا برای مخاطبان را می‌دهند. از آنجایی که این برنامه‌ها بر روی بلاک چین اجرا می‌شوند، می‌توانند غیرمتمرکز باشند و در برابر سانسور و کنترل بی‌رویه مقاوم باشند. - -بسیاری از شبکه‌های اجتماعی غیرمتمرکز به‌عنوان جایگزینی برای سرویس‌های رسانه‌های اجتماعی موجود تاسیس شده اند. مانند فیس‌بوک، لینکدین، توییتر و مدیوم . اما شبکه های اجتماعی مبتنی بر بلاک چین دارای تعدادی ویژگی هستند که آنها را از پلتفرم های اجتماعی سنتی برتری می دهد. - -### شبکه های اجتماعی غیرمتمرکز چگونه کار می کنند؟ {#decentralized-social-networks-overview} - -شبکه‌های اجتماعی غیرمتمرکز دسته‌ای از [برنامه‌های کاربردی غیرمتمرکز (dapps)](/dapps/) هستند که توسط [قراردادهای هوشمند](/developers/docs/smart-contracts/) مستقر در بلاک چین قدرت می‌گیرند. کد قرارداد به عنوان پشتیبان این برنامه ها عمل می کند و منطق تجاری آنها را تعریف می کند. - -پلتفرم‌های رسانه‌های اجتماعی سنتی برای ذخیره اطلاعات کاربر، کد برنامه و سایر اشکال داده به پایگاه‌های داده متکی هستند. که این باعث ایجاد نقاط شکست واحد می شود و خطر قابل توجهی را ایجاد می کند. به عنوان مثال، سرورهای فیس بوک سال گذشته به طرز بدنامی [برای ساعت ها آفلاین شدند](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) و کاربران را از پلتفرم قطع کردند. - -شبکه های اجتماعی غیرمتمرکز در یک شبکه همتا به همتا (peer-to-peer) وجود دارند که شامل هزاران گره در سراسر جهان است حتی اگر برخی از گره ها از کار بیفتند، شبکه بدون وقفه اجرا می شود و برنامه ها را در برابر خرابی ها و قطعی ها مقاوم می کند. - -با استفاده از سیستم‌های ذخیره‌سازی غیرمتمرکز مانند [سیستم فایل بین سیاره‌ای (IPFS به معنای فایل سیستم بین سیاره ای است که در واقع یک سیستم توزیع فایل همتا به همتا و غیر متمرکز است)](https://ipfs.io/)، شبکه‌های اجتماعی ساخته شده بر روی اتریوم می‌توانند از اطلاعات کاربر در برابر سوء استفاده و استفاده مخرب محافظت کنند هیچ کس اطلاعات شخصی شما را به تبلیغ کنندگان نمی فروشد و هکرها نیز نمی توانند اطلاعات محرمانه شما را بدزدند. - -بسیاری از پلتفرم‌های اجتماعی مبتنی بر بلاک چین دارای توکن‌های بومی هستند که در غیاب درآمد تبلیغاتی به کسب درآمد کمک می‌کنند. کاربران می‌توانند این توکن‌ها را برای دسترسی به برخی ویژگی‌ها، تکمیل خریدهای درون‌برنامه‌ای یا انعام به سازندگان محتوای مورد علاقه خود خریداری کنند. - -## مزایای شبکه های اجتماعی غیر متمرکز؟ {#benefits} - -1. شبکه های اجتماعی غیرمتمرکز در برابر سانسور مقاوم هستند و به روی همه باز هستند. این بدان معناست که کاربران را نمی توان خودسرانه ممنوع کرد، تغییر شکل داد یا محدود کرد. - -2. شبکه های اجتماعی غیرمتمرکز بر اساس ایده آل های اپن سورس ساخته شده اند و سورس کد برنامه ها را برای بازرسی عمومی در دسترس قرار می دهند. با حذف اجرای الگوریتم‌های غیرشفاف رایج در رسانه‌های اجتماعی سنتی، شبکه‌های اجتماعی مبتنی بر بلاک چین می‌توانند علایق کاربران و سازندگان پلتفرم را همسو کنند. - -3. شبکه های اجتماعی غیرمتمرکز «مرد میانی» (middle-man) را حذف می کنند. سازندگان محتوا مالکیت مستقیمی بر محتوای خود دارند و مستقیماً با دنبال‌کنندگان، طرفداران، خریداران و سایر طرف‌ها درگیر می‌شوند و چیزی جز یک قرارداد هوشمند در این بین ندارند. - -4. از آنجایی که برنامه‌هایی که در شبکه اتریوم اجرا می‌شوند، که توسط یک شبکه جهانی و همتا به همتا از گره‌ها پشتیبانی می‌شود، شبکه‌های اجتماعی غیرمتمرکز کمتر در معرض خرابی و قطعی سرور هستند. - -5. پلتفرم‌های اجتماعی غیرمتمرکز یک چارچوب بهبودیافته درآمدزایی را برای سازندگان محتوا از طریق توکن‌های غیرقابل تعویض (NFT)، پرداخت‌های رمزنگاری درون برنامه‌ای و موارد دیگر ارائه می‌کنند. - -6. شبکه های اجتماعی غیرمتمرکز سطح بالایی از حریم خصوصی و ناشناس بودن را برای کاربران فراهم می کند. به عنوان مثال، یک فرد می‌تواند با استفاده از نمایه یا کیف پول ENS به یک شبکه اجتماعی مبتنی بر اتریوم وارد شود - بدون اینکه نیازی به اشتراک‌گذاری اطلاعات شناسایی شخصی (PII) مانند نام، آدرس ایمیل و غیره باشد. - -7. شبکه‌های اجتماعی غیرمتمرکز به ذخیره‌سازی غیرمتمرکز متکی هستند، نه پایگاه‌های داده متمرکز، که برای حفاظت از داده‌های کاربر بسیار بهتر هستند. - -## شبکه های اجتماعی غیرمتمرکز در اتریوم {#ethereum-social-networks} - -شبکه اتریوم به دلیل محبوبیت توکن‌های آن (ERC-20/ERC-721) و پایگاه کاربر عظیم آن، به ابزاری مطلوب برای توسعه‌دهندگانی تبدیل شده است که رسانه‌های اجتماعی غیرمتمرکز ایجاد می‌کنند. در اینجا چند نمونه از شبکه های اجتماعی مبتنی بر اتریوم آورده شده است: - -### Peepeth {#peepeth} - -[Peepeth](https://peepeth.com/) یک پلت فرم microblogging مشابه توییتر است. بر روی بلاک چین اتریوم اجرا می شود و از IPFS (IPFS به معنای فایل سیستم بین سیاره ای است که در واقع یک سیستم توزیع فایل همتا به همتا و غیر متمرکز است) برای ذخیره داده های کاربر استفاده می کند. - -کاربران می توانند پیام های کوتاهی به نام "Peeps" ارسال کنند که قابل حذف یا تغییر نیستند. می‌توانید بدون ترک برنامه، نکاتی را جمع‌آوری کنید یا به هر کسی در پلتفرم در اتر (ETH) انعام دهید. - -### Mirror {#mirror} - -[Mirror](https://mirror.xyz/) یک پلتفرم نوشتاری دارای web3 فعال است که هدف آن غیرمتمرکز بودن و مالکیت کاربر است. کاربران می توانند با اتصال کیف پول خود به صورت رایگان در Mirror بخوانند و بنویسند. کاربران همچنین می توانند نوشته ها را درخواست کرده و همچنین نویسندگان مورد علاقه خود را دنبال کنند. - -پست‌های منتشر شده در Mirror به‌طور دائم در Arweave، یک پلت‌فرم ذخیره‌سازی غیرمتمرکز، ذخیره می‌شوند و می‌توانند به‌عنوان [توکن‌های غیرقابل تعویض قابل جمع‌آوری (NFT)](/nft/) به نام Writing NFT ذخیره شوند. گذاشتن NFT برای نویسندگان کاملاً رایگان است و جمع‌آوری آن بر روی Ethereum L2 انجام می‌شود – باعث می‌شود تراکنش‌ها ارزان، سریع و سازگار با محیط‌زیست باشند. - -### MINDS {#minds} - -[MINDS](https://www.minds.com/) یکی از پرکاربردترین شبکه های اجتماعی غیرمتمرکز است. مانند فیس بوک کار می کند و تاکنون میلیون ها کاربر را جذب کرده است. - -کاربران از رمز بومی ERC-20 پلتفرم $MIND برای پرداخت هزینه اقلام استفاده می کنند. کاربران همچنین می توانند با انتشار محتوای محبوب، کمک به اکوسیستم و ارجاع دیگران به پلتفرم، توکن های $MIND کسب کنند. - -## شبکه های اجتماعی Web2 در اتریوم {#web2-social-networks-and-ethereum} - -پلتفرم‌های اجتماعی بومی [Web3](/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 کار می‌کند، یک مجموعه [لایه ۲](/layer-2/) که برای مقیاس‌بندی تراکنش‌های اتریوم طراحی شده است. - -این برنامه در حال حاضر فعال است و زیر ردیت r/CryptoCurrency نسخه Community Points خود را به نام ["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، توییتر آبی [از NFTها پشتیبانی کرد](https://mashable.com/article/twitter-blue-nft-profile-picture) و به کاربران این امکان را داد تا کیف پول خود را به هم متصل کنند و NFTها را به عنوان عکس نمایه نمایش دهند. در زمان نگارش این مقاله، این شرکت رسانه های اجتماعی همچنین [از برنامه های](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) خود برای ایجاد یک شبکه اجتماعی غیرمتمرکز در آینده خبر داده است. - -### Instagram {#instagram} - -در می 2022، [اینستاگرام از NFT ها](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) در اتریوم و Polygon پشتیبانی کرد. کاربران می توانند با اتصال کیف پول اتریوم خود، NFT ها را مستقیماً به اینستاگرام ارسال کنند. - -## از شبکه های اجتماعی غیرمتمرکز استفاده کنید {#use-decentralized-social-networks} - -- **[Status.im](https://status.im/)** - _ یک برنامه پیام رسانی امن است که از یک پروتکل منبع باز، همتا به همتا و رمزگذاری سرتاسر برای محافظت از پیام های شما در برابر اشخاص ثالث استفاده می کند_. -- **[Mirror.xyz](https://mirror.xyz/)** - _ یک پلتفرم انتشار غیرمتمرکز و متعلق به کاربر است که بر پایه اتریوم ساخته شده است تا کاربران بتوانند بر روی ایده‌های خود سرمایه‌گذاری کنند، از محتوا کسب درآمد کنند و جوامع با ارزش بالا بسازند _. -- **[Lens Protocol](https://lens.xyz/)** - _ پروتکل لنز یک نمودار اجتماعی قابل ترکیب و غیرمتمرکز است که به سازندگان کمک می‌کند تا هر کجا که در باغ دیجیتال اینترنت غیرمتمرکز می‌روند، مالکیت محتوای خود را در دست بگیرند_. -- **[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} - -- [توضیح رسانه های اجتماعی غیرمتمرکز](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ -- [بلاک چین DeSo می خواهد رسانه های اجتماعی را غیرمتمرکز کند](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ -- [آینده رسانه های اجتماعی غیرمتمرکز با بالاجی سرینیواسان، ویتالیک بوترین، خوان بنت](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/content/translations/fa/staking/pools/index.md b/src/content/translations/fa/staking/pools/index.md deleted file mode 100644 index bb16b8de017..00000000000 --- a/src/content/translations/fa/staking/pools/index.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: سهام‌گذاری مشترک -description: مروری بر نحوه آغاز به کار سهام‌گذاری مشترک اتر -lang: fa -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-pool.png -alt: لسلی اسب آبی در حال شنا در استخر. -sidebarDepth: 2 -summaryPoints: - - از طریق تجمیع قوا با دیگران، هر چقدر اتریوم که می‌خواهید سهام‌گذاری کنید و پاداش کسب کنید - - بخش سخت را رها کنید و عملیات اعتبارسنجی را به شخص ثالث بسپارید - - توکن‌های سهامگذاری را در کیف‌پول خودتان نگه دارید ---- - -## استخر سهام‌گذاری چیست؟ {#what-are-staking-pools} - -استخر سهام‌گذاری یک رویکرد مبتنی بر همکاری است که به افراد بسیاری که مقادیر اتر کمتری دارند امکان می‌دهد 32 اتر لازم برای فعال کردن مجموعه‌ای از کلیدهای اعتبارسنجی را به دست آورند. عملکرد ادغام به‌طور بومی در پروتکل پشتیبانی نمی‌شود، بنابراین راه حل‌هایی به‌طور جداگانه برای رفع این نیاز ساخته شدند. - -برخی از استخرها با استفاده از قراردادهای هوشمند کار می‌کنند، که در آن می‌توان وجوه را به یک قرارداد واریز کرد، که بدون نیاز به اعتماد سهام شما را مدیریت و ردیابی می‌کند، و توکنی را برای شما صادر می‌کند که نشان‌دهنده این ارزش است. سایر استخرها ممکن است شامل قراردادهای هوشمند نباشند و در عوض به صورت خارج زنجیره واسطه شوند. - -## چرا بهتر است با استخر سهام‌گذاری کنیم؟ {#why-stake-with-a-pool} - -علاوه بر مزایایی که در [معرفی سهام‌گذاری](/staking/) بیان کردیم، سهام‌گذاری با استخر دارای چندین مزیت متمایز است. - - - - - - - - - -## آنچه باید در نظر گرفته شود {#what-to-consider} - -سهام‌گذاری مشترک یا تفویضی به‌طور بومی توسط پروتکل اتریوم پشتیبانی نمی‌شود، اما با توجه به تقاضای کاربران برای سهام‌گذاری کمتر از 32 اتر، راه‌حل‌های فزاینده‌ای برای پاسخگویی به این تقاضا ساخته شده است. - -هر استخر و ابزار یا قراردادهای هوشمند مورد استفاده‌ آنها توسط تیم های مختلف ساخته شده‌اند و هر کدام همراه با منافع و خطراتی هستند. استخرها کاربران را قادر می‌سازند تا اترهای خود را با توکنی که نمایانگر اتر سهامگذاری شده است تعویض کنند. این توکن مفید است زیرا به کاربران اجازه می دهد تا هر مقدار اتر دلخواه را با مقدار معادل یک توکن سودده مبادله کنند که سودی را از طریق پاداش‌های سهامگذاری اجرا شده بر روی اتر سهامگذاری شده اساسی (و بالعکس) در صرافی‌های غیرمتمرکز تولید می‌کند، حتی اگر اتر واقعی روی لایه اجماع ثابت بماند. این بدان معناست که مبادله مکرر بین محصول سودده‌ اتر سهامگذاری شده و "اتر خام" نه تنها در ضریب 32 اتر در دسترس است بلکه فرایندی سریع و آسان است. - -با این‌حال، این توکن‌های اتر سهامگذاری شده تمایل به ایجاد رفتارهای کارتل‌مانندی دارند که در آنجا مقدار زیادی از اتر سهامگذاری شده به جای اینکه در بین بسیاری از افراد مستقل پخش شود، تحت کنترل چند سازمان متمرکز قرار می‌گیرد. این اتفاق شرایطی را برای سانسور یا استخراج ارزش ایجاد می‌کند. استاندارد طلا برای سهامگذاری همیشه باید اشخاصی باشند که در هر زمان ممکن اعتبارسنج‌ها را بر روی سخت‌افزار خودشان اجرا کنند. - -[اطلاعات بیشتر درباره خطرات سهامگذاری توکن‌ها](https://notes.ethereum.org/@djrtwo/risks-of-lsd). - -شاخص‌های ویژگی در زیر برای نشان دادن نقاط قوت یا ضعف قابل توجهی که ممکن است یک استخر فهرست شده داشته باشد استفاده می‌شود. از این بخش به‌عنوان مرجعی برای نحوه تعریف این ویژگی‌ها هنگام انتخاب استخری برای پیوستن استفاده کنید. - - - -## استخرهای سهام‌گذاری را کاوش کنید {#explore-staking-pools} - -گزینه‌های مختلفی برای کمک به شما در راه‌اندازی وجود دارد. از شاخص‌های بالا برای راهنمایی به خود در مورد ابزارهای زیر استفاده کنید. - - - - - -لطفاً از اهمیت انتخاب سرویسی که [تنوع کاربر](/developers/docs/nodes-and-clients/client-diversity/) را جدی بگیرد غافل نشوید، زیرا امنیت شبکه را بهبود می‌بخشد و ریسک شما را محدود می‌کند. سرویس‌هایی که مدارکی از محدود کردن استفاده اکثریت کاربران را دارند با عنوان "تنوع کاربر اجرایی" و "تنوع کاربر اجماعی" نشان داده می‌شوند. - -ابزار سهامگذاری‌‌ می‌شناسید که نگنجانده‌ایم؟ [سیاست فهرست‌بندی محصول](/contributing/adding-staking-products/) ما را برای اطمینان از مناسب بودن آن و ثبت آن جهت بررسی مشاهده کنید. - -## پرسش‌های متداول {#faq} - - -معمولاً توکن‌های سهامگذاری ERC-20 برای سهامگذارانی چاپ می‌شوند که نمایانگر ارزش اتر سهامگذاری شده آنها به‌علاوه پاداش‌ باشند. در نظر داشته باشید که روش استخرهای مختلف برای توزیع پاداش‌های سهام‌گذاری بین کاربرانشان کمی با هم متفاوت است، اما این رویکرد رایج است. - - - -همین حالا! ارتقاءهای شانگهای/کاپلا در آوریل سال 2023 رخ دادند، و برداشت‌های سهامگذاری را به همراه داشتند. حساب‌های اعتبارسنج که استخرهای سهامگذاری را پشتیبانی می‌کنند، اکنون قادرند که خارج شوند و اتر را به آدرس برداشت تعیین شده خود برداشت کنند. این امر امکان پس گرفتن سهم خودتان از سهم‌گذاری مربوط به اتر مربوطه را فراهم می‌سازد. با ارائه‌دهنده‌تان بررسی کنید که چگونه این عملکرد را پیشتیبانی می‌کنند. - -از طرفی، استخرهایی که از توکن سهامگذاری ERC-20 استفاده می‌کنند به کاربرانشان امکان معامله این توکن در بازار آزاد معامله را می‌دهند، و به شما اجازه می‌دهند که موقعیت سهامگذاری خود را بفروشید، عملاً یعنی "برداشت کردن" بدون حذف اتر از قرارداد سهامگذاری. - -اطلاعات بیشتر درباره برداشت‌های سهامگذاری - - - -شباهت‌های زیادی بین این گزینه‌های سهام‌گذاری مشترک و صرافی‌های متمرکز وجود دارد؛ نظیر توانایی سهام‌گذاری مقادیر کم اتر و ترکیب کردن آن‌ها برای فعال‌سازی اعتبارسنج‌ها. - -برخلاف صرافی‌های متمرکز، بسیاری دیگر از گزینه‌های سهامگذاری مشترک از قراردادهای هوشمند و/یا توکن‌های سهامگذاری استفاده می‌کنند که معمولاً توکن‌های ERC-20 هستند که می‌توانید آنها را در کیف‌پول خود نگه دارید، و درست همانند هر توکن دیگری آنها را بخرید یا بفروشید. این کار با اعطای کنترل توکن‌هایتان به شما، لایه‌ای از حاکمیت و امنیت را ارائه می‌دهد، اما در عین حال روی کاربر اعتبارسنجی که از طرف شما در پس‌زمینه تصدیق می‌کند، کنترل مستقیمی ارائه نمی‌دهد. - -برخی از گزینه‌های ادغام از حیث گره‌هایی که آن‌ها را پشتیبانی می‌کنند غیرمتمرکزتر از سایرین هستند. برای ارتقای سلامت و عدم تمرکز شبکه، به سهام‌گذاران همواره توصیه می‌شود که سرویس ادغامی را انتخاب کنند که یک مجموعه غیرمتمرکز بدون مجوز از عملگرهای گره را فعال می‌کند. - - -## بیشتر بخوانید {#further-reading} - -- [ سهام‌گذاری با Rocket Pool - بررسی کلی سهام‌گذاری](https://docs.rocketpool.net/guides/staking/overview.html) _مستندات RocketPool _ -- [ سهام‌گذاری اتریوم با لیدو](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) _مستندات کمکی لیدو_ diff --git a/src/content/translations/fa/staking/saas/index.md b/src/content/translations/fa/staking/saas/index.md deleted file mode 100644 index b826bf4a92f..00000000000 --- a/src/content/translations/fa/staking/saas/index.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -title: سهام‌گذاری به‌عنوان یک خدمت -description: مروری بر نحوه شروع سهام‌گذاری مشترک اتر -lang: fa -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-saas.png -alt: لسلی اسب آبی شناور در میان ابرها. -sidebarDepth: 2 -summaryPoints: - - عملگرهای گره شخص ثالث، عملیات کلاینت اعتبارسنج شما را مدیریت می‌کنند - - گزینه‌ای عالی برای هر کسی با 32 اتر که برای کار با پیچیدگی فنی اجرای گره احساس راحتی نمی‌کند - - نیاز به اعتماد را کاهش دهید و از کلیدهای برداشت خود محافظت کنید ---- - -## سهام‌گذاری به‌عنوان سرویس چیست؟ {#what-is-staking-as-a-service} - -سهام‌گذاری به‌عنوان سرویس («SaaS») نشان‌دهنده دسته‌ای از خدمات سهام‌گذاری است که در آن شما 32 اتر خود را برای یک اعتبارسنج سپرده‌گذاری می‌کنید، اما عملیات گره را به یک عملگر شخص ثالث تفویض می‌کنید. این فرایند معمولاً شامل راهنمایی شدن از طریق راه‌اندازی اولیه، از جمله تولید و واریز کلید، و سپس بارگذاری کلیدهای امضای خود برای عملگر است. این کار به سرویس امکان می‌دهد تا اعتبارسنجتان را از طرف شما، و معمولاً در ازای هزینه‌ای ماهانه، مدیریت کند. - -## چرا بهتر است از طریق یک سرویس سهام‌گذاری کنیم؟ {#why-stake-with-a-service} - -پروتکل اتریوم به‌طور بومی از تفویض سهام پشتیبانی نمی‌کند، بنابراین این سرویس‌ها برای برطرف کردن این تقاضا ساخته شده‌اند. اگر 32 اتر برای سهام‌گذاری در اختیار دارید، اما در مواجهه با سخت‌افزار احساس راحتی نمی‌کنید، سرویس‌های SaaS به شما امکان می‌دهند تا زمانی که پاداش‌های بلوک بومی را دریافت می‌کنید، بخش سخت را تفویض کنید. - - - - - - - - - -## آنچه باید در نظر گرفته شود {#what-to-consider} - -تعداد فزاینده‌ای از ارائه‌دهندگان SaaS وجود دارند که در سهامگذاری اتر به شما کمک می‌کنند اما هرکدام از آنها مزایا و خطرات خاص خود را دارند. تمام گزینه‌های SaaS نیازمند فرضیه‌های اعتماد بیشتر در مقایسه با سهامگذاری خانگی هستند. گزینه‌های SaaS ممکن است کد اضافه‌ای داشته باشند که کاربرهای اتریوم را به طوری شکل می‌دهند که یا باز نیست یا قابل ممیزی نیست. همچنین SaaS تاثیر مخربی بر تمرکززدایی شبکه دارد. بسته به تنظیمات، ممکن است اعتبار‌سنج خود را کنترل نکنید - اپراتور با عدم صداقت می‌تواند از اتر شما استفاده کند. - -شاخص‌های ویژگی در زیر برای نشان دادن نقاط قوت یا ضعف قابل‌توجهی که ممکن است ارائه‌دهنده فهرست‌شده SaaS داشته باشد، استفاده می‌شود. از این بخش به عنوان مرجعی برای نحوه تعریف این ویژگی‌ها هنگام انتخاب سرویس برای کمک به خود در مسیر سهام‌گذاری استفاده کنید. - - - -## ارائه‌دهندگان خدمات سهام‌گذاری را مشاهده و بررسی کنید {#saas-providers} - -در زیر برخی از ارائه‌دهندگان SaaS قید شده‌اند. از شاخص‌های بالا برای راهنمایی درباره این خدمات استفاده کنید - - - -#### ارائه‌دهندگان SaaS - - - -لطفاً از اهمیت انتخاب سرویسی که [تنوع کلاینت](/developers/docs/nodes-and-clients/client-diversity/) را جدی بگیرد غافل نشوید، زیرا امنیت شبکه را بهبود می‌بخشد و ریسک شما را محدود می‌کند. سرویس‌هایی که مدارکی از محدود کردن استفاده اکثریت کاربران را دارند با عنوان "تنوع کاربر اجرایی" و "تنوع کاربر اجماعی" نشان داده می‌شوند. - -#### تولید‌کنندگان کلید - - - -یک ارائه‌دهنده سهام‌گذاری به‌عنوان خدمت را پیشنهاد می‌دهید که نگنجانده‌ایم؟ [سیاست فهرست‌بندی محصول](/contributing/adding-staking-products/) ما را برای اطمینان از مناسب بودن آن و ثبت آن جهت بررسی مشاهده کنید. - -## پرسش‌های متداول {#faq} - - -ترتیب امور بین ارائه‌دهندگان مختلف، متفاوت است، اما معمولاً راهنمایی می‌شوید که کلیدهای امضای مورد نیاز خود (یکی به‌ازای هر 32 اتر) را راه‌اندازی کنید، و آن‌ها را برای تأیید اعتبار از طرف خودتان، در ارائه‌دهنده‌ای بارگذاری کنید. کلیدهای امضا به تنهایی امکان برداشت، انتقال یا خرج کردن وجوه شما را ندارند. با این حال، آن‌ها توانایی رأی دادن برای حصول اجماع را فراهم می‌کنند، که اگر به درستی انجام نشود، می‌تواند منجر به جریمه آفلاین یا تقطیع شود. - - - -بله. هر حساب هم از کلیدهای امضای BLS و هم از کلیدهای برداشت BLS تشکیل شده است. برای اینکه اعتبارسنج وضعیت زنجیره را تأیید کند، در کمیته‌های همگام‌سازی شرکت کند و بلوک‌ها را پیشنهاد کند، کلیدهای امضا باید به آسانی توسط کلاینت اعتبارسنج قابل دسترسی باشند. این‌ها باید به شکلی به اینترنت متصل شوند، و بنابراین ذاتاً کلیدهای «داغ» در نظر گرفته می‌شوند. این یک الزام برای اعتبارسنج شماست تا بتواند تصدیق کند، و در نتیجه کلیدهای مورد استفاده برای انتقال یا برداشت وجه به دلایل امنیتی از هم جدا می‌شوند. - -کلیدهای برداشت BLS برای امضای پیام یک بار مصرفی که اعلام می‌کند پاداش‌های سهامگذاری و سرمایه خارج شده حساب باید به کدام لایه اجرایی بروند استفاده می‌شوند. به محض مخابره‌ این پیام، کلیدهای برداشت BLS دیگر مورد نیاز نیستند. در عوض کنترل وجوه برداشت شده، به صورت دائمی به آدرسی که شما ارائه داده اید منتقل و تفویض می‌شوند. با این کار می‌توانید آدرس برداشت را تنظیم کنید که متعلق به کیف‌پول سرد شما است تا خطر مربوط به وجوه اعتبارسنج خود را به حداقل برسانید حتی اگر شخص دیگری کلیدهای امضای اعتبارسنج شما را داشته باشد. - -بروزرسانی اطلاعات رمز برداشت، یک اقدام لازم برای فعالسازی امکان برداشت است. این فرایند شامل تولید کلیدهای برداشت با استفاده از عبارت بازیابی شما است. - -مطمئن شوید که پشتیبان امنی از این عبارت بازیابی دارید یا در هر زمان ممکن نخواهید توانست کلیدهای برداشت خود را تولید کنید. -/\*سهامگذارانی که آدرس برداشت را با واریز اولیه تدارک دیده‌اند نیازی به تنظیم این مورد ندارند. با ارائه دهنده سرویس SaaS خود برای راهنمایی در مورد نحوه راه اندازی اعتبار سنج خود تماس بگیرید. - - - -برداشت‌های سهامگذاری در ارتقاء شانگهای/کاپلا در آوریل 2023 پیاده‌سازی شدند. سهامگذاران باید یک آدرس برداشت ارائه کنند (البته اگر هنگام واریز اولیه ارائه نکرده‌اند)، و پرداخت پاداش‌ها به صورت خودکار طی دوره زمانی هر چند روز یک بار توزیع خواهند شد. - -اعتبارسنج‌ها همچنین می‌توانند به صورت کامل از نقش اعتبارسنج خارج شوند، که منجر به باز شدن موجودی اتر باقیمانده آنها برای برداشت خواهد شد. حساب‌هایی که یک آدرس برداشت اجرایی را ارائه کرده‌اند و فرایند خروج را تکمیل کرده‌اند تمام موجودی خود را در نوبت اعتبارسنج بعدی در آدرس برداشتی که ارائه کرده‌اند دریافت خواهند نمود. - -اطلاعات بیشتر درباره برداشت‌های سهامگذاری - - - -با استفاده از یک ارائه‌دهنده SaaS، عملیات گره خود را به شخص دیگری تفویض می‌کنید. این کار، خطر عملکرد ضعیف گره را به همراه دارد، که در کنترل شما نیست. در صورتی که اعتبارسنج شما مشمول تقطیع شود، موجودی اعتبارسنج شما جریمه می‌شود و قاطعانه از استخر اعتبارسنج حذف می‌شود. - -پس از تکمیل فرایند اسلشینگ/خروج، این وجوه به آدرس برداشت اختصاص یافته به اعتبارسنج منتقل خواهند شد. این امر نیاز به ارائه یک آدرس برداشت برای فعالسازی دارد. آدرس برداشت ممکن است در واریز اولیه ارائه شده باشد. اگر آدرس برداشت ارائه نشده بود، لازم است از کلیدهای برداشت اعتبارسنج برای امضای پیام مشخص کننده آدرس برداشت استقاده شود. اگر آدرس برداشت ارائه نشده باشد، وجوه تا زمان ارائه آدرس، غیر قبل برداشت خواهند بود. - -برای جزئیات بیشتر در مورد ضمانت‌ نامه ها یا بیمه و دستورالعمل‌هایی درباره نحوه ارائه آدرس برداشت، با ارائه‌دهنده سرویس SaaS تماس بگیرید. اگر ترجیح می‌دهید راه‌اندازی اعتبارسنج خود را کاملاً تحت کنترل داشته باشید، درباره نحوه به اشتراک گذاشتن اتر خود به‌صورت انفرادی بیشتر بدانید. - - -## بیشتر بخوانید {#further-reading} - -- [ارزیابی سرویس‌های سهام‌گذاری](https://www.attestant.io/posts/evaluating-staking-services/) - _جیم مک‌دونالد 2020_ diff --git a/src/content/translations/fa/staking/solo/index.md b/src/content/translations/fa/staking/solo/index.md deleted file mode 100644 index 9c5de2a9273..00000000000 --- a/src/content/translations/fa/staking/solo/index.md +++ /dev/null @@ -1,202 +0,0 @@ ---- -title: اتر خود را به‌صورت انفرادی سهام‌گذاری کنید -description: مروری بر نحوه‌ی آغاز سهام‌گذاری به‌صورت انفرادی -lang: fa -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-solo.png -alt: لسلی اسب آبی روی تراشه رایانه‌ای خودش. -sidebarDepth: 2 -summaryPoints: - - حداکثر پاداش را مستقیماً از پروتکل دریافت کنید تا اعتبارسنج خود را کارا و آنلاین نگه دارید - - سخت‌افزار خانگی را اجرا کنید و شخصاً امنیت و تمرکززدایی شبکه اتریوم را بیشتر کنید - - نیاز به اعتماد را حذف کنید و همیشه کلیدهای سرمایه خود را تحت کنترل داشته باشید ---- - -## سهام‌گذاری انفرادی چیست؟ {#what-is-solo-staking} - -سهام‌گذاری انفرادی به عمل [اجرای یک گره اتریوم](/run-a-node/) متصل به اینترنت و واریز 32 اتر برای فعال کردن یک [اعتبارسنج](#faq) گفته می‌شود، که به شما امکان می‌دهد به‌طور مستقیم در اجماع شبکه شرکت کنید. - -**سهامگذاری انفرادی، تمرکززدایی شبکه اتریوم را افزایش می‌دهد،** که منجر می‌شود اتریوم در برابر سانسور مقاوم‌تر و در مقابل مهاجمین مستحکم‌تر باشد. دیگر روش‌های سهامگذاری ممکن است به همین روش به شبکه کمک نکنند. سهامگذاری انفرادی بهترین گزینه سهامگذاری برای ایمن‌سازی اتریوم است. - -یک گره‌ی اتریوم از یک کلاینت لایه اجرا (EL) و یک کلاینت لایه اجماع (CL) تشکیل شده است. این کلاینت‌ها نرم‌افزارهایی هستند که همراه با مجموعه‌ای از کلیدهای امضاکننده معتبر، برای تأیید تراکنش‌ها و بلوک‌ها، تصدیق کردن سر درست زنجیره، جمع‌آوری تأییدیه‌ها و پیشنهاد بلوک‌ها با هم کار می‌کنند. - -سهام‌گذارهای انفرادی مسئول کار با سخت‌افزار مورد نیاز برای اجرای این کلاینت‌ها هستند. قویاً توصیه می‌شود از یک دستگاه اختصاصی که در خانه به کار گرفته شود برای این کار استفاده کنید - این کار برای سلامت شبکه بسیار مفید است. - -یک سهام‌گذار انفرادی در ازای اینکه اعتبارسنج خود را کارآمد و آنلاین نگه دارد، مستقیماً از پروتکل پاداش دریافت می‌کند. - -## چرا به‌صورت انفرادی سهام‌گذاری کنیم؟ {#why-stake-solo} - -سهامگذاری انفرادی مسئولیت‌ به همراه دارد اما حداکثر کنترل بر وجوه و تنظیمات سهامگذاری را به شما ارائه می‌دهد. - - - - - - - -## ملاحظات لازم قبل از سهام‌گذاری انفرادی {#considerations-before-staking-solo} - -درست است که ما آرزو می‌کنیم سهام‌گذاری انفرادی برای همه در دسترس و بدون ریسک باشد، اما واقعیت چنین نیست. چند موضوع عملی و جدی وجود دارد که باید قبل از انتخاب سهام‌گذاری انفرادی اتر خود در نظر داشته باشید. - - - -هنگام راه‌اندازی گره‌ی خود، باید مدتی را صرف یادگیری نحوه استفاده از نرم‌افزار انتخابی خود کنید. این کار شامل مطالعه‌ی مستندات مرتبط و هماهنگی با کانال‌های ارتباطی آن تیم‌های توسعه‌دهنده است. - -هرچه بیشتر در مورد نرم‌افزاری که در حال اجرا هستید و نحوه‌ی کار اثبات سهام اطلاعات بیشتری کسب کنید، ریسک آن به‌عنوان یک سهام‌گذار برایتان کمتر خواهد بود و رفع هرگونه مشکلی که ممکن است در طول مسیر به عنوان عملگر گره ایجاد شود آسان‌تر خواهد بود. - - - -راه‌اندازی گره به تسلط کافی در کار با رایانه نیاز دارد، گرچه ابزارهای جدید به مرور زمان این کار را آسان‌تر می‌کنند. درک رابط خط فرمان مفید است، اما دیگر به‌شدت موردنیاز نیست. - -تنظیمات سخت‌افزاری بسیار ابتدایی و درک حداقل مشخصات توصیه‌شده نیز لازم است. - - - -همان‌طور که کلیدهای خصوصی آدرس اتریوم شما را ایمن می‌کنند، باید کلیدهایی را به‌ویژه برای اعتبارسنج خود ایجاد کنید. باید بدانید که چگونه هر عبارت بازیابی یا کلید خصوصی را ایمن نگه دارید.{' '} - -امنیت اتریوم و پیشگیری از کلاهبرداری - - - -سخت‌افزار گهگاه خراب می‌شود، اتصالات شبکه بعضاً دچار مشکل می‌شوند و نرم‌افزار کلاینت هر از گاهی نیازمند ارتقا است. نگهداری از گره ناگزیر است و هر چند وقت یکبار نیازمند توجه شما خواهد بود. شما باید مطمئن باشید که از هرگونه ارتقای شبکه پیش‌بینی‌شده یا سایر ارتقاهای حیاتی مشتری آگاه هستید. - - - -پاداش‌های شما متناسب با زمانی است که اعتبارسنج شما آنلاین است و به‌درستی تصدیق می‌کند. زمان خاموشی متناسب با تعداد اعتبارسنج‌های دیگر که همزمان آفلاین هستند مشمول جریمه می‌شود، اما به برخورد شدید منجر نمی‌شود. پهنای باند نیز مهم است، زیرا پاداش برای تصدیق‌هایی که به موقع دریافت نمی‌شوند کاهش می‌یابد. الزامات متفاوت خواهد بود، اما حداقل سرعت 10 مگابیت بر ثانیه برای بارگذاری و بارگیری توصیه می‌شود. - - - -برخورد شدید که متفاوت از مجازات‌های عدم فعالیت برای آفلاین بودن است، مجازات بسیار جدی‌تری است که برای جرایم مخرب در نظر گرفته شده است. با اجرای یک کلاینت اقلیت با کلیدهایتان تنها روی یک دستگاه بارشده در آن واحد، ریسک برخورد شدید با شما به حداقل می‌رسد. همان‌طور که گفته شد، همه سهام‌گذاران باید از ریسک‌های برخورد شدید آگاه باشند. - -اطلاعات بیشتر درباره جریمه و چرخه‌ حیات اعتبارسنج - - - - - -## نحوه‌ی عملکرد {#how-it-works} - - - -زمانی که فعال باشد شما پاداش اتر دریافت خواهید کرد، که به صورت دوره‌ای به آدرس برداشت شما واریز می‌گردد. - -در صورت تمایل، می‌توانید دیگر اعتبارسنج نباشید؛ بدین ترتیب، نیاز به آنلاین بودن از بین می‌رود و دریافت هرگونه پاداش بیشتر متوقف می‌شود. موجودی باقیمانده شما نیز سپس به آدرس برداشتی که در زمان تنظیمات اختصاص داده بودید واریز خواهد شد. - -[اطلاعات بیشتر درباره برداشت‌های سهامگذاری](/staking/withdrawals/) - -## با Staking Launchpad کار را شروع کنید {#get-started-on-the-staking-launchpad} - -Staking Launchpad یک برنامه منبع‌باز است که به شما کمک می‌کند سهام‌گذار شوید. این شما را از طریق انتخاب کلاینت‌های خود، تولید کلیدهای خود و واریز اتر خود به قرارداد واریز سهام‌گذاری راهنمایی می‌کند. چک‌لیستی ارائه شده است تا مطمئن شوید همه چیز را برای راه‌اندازی اعتبارسنج خود به‌طور ایمن در نظر گرفته‌اید. - - - -## ملاحظات مربوط به ابزارهای راه‌اندازی گره و کلاینت {#node-tool-considerations} - -تعداد فزاینده‌ای از ابزارها و خدمات وجود دارد که به شما کمک می‌کند اتر خود را به‌صورت انفرادی به اشتراک بگذارید، اما هر کدام خطرات و مزایای متفاوتی دارند. - -شاخص‌های ویژگی در زیر برای نشان دادن نقاط قوت یا ضعف قابل توجهی که ممکن است یک استخر فهرست‌شده داشته باشد استفاده می‌شود. از این بخش به عنوان مرجعی برای نحوه تعریف این ویژگی‌ها هنگام انتخاب ابزارها برای کمک به خود در مسیر سهام‌گذاری استفاده کنید. - - - -## مشاهده و بررسی ابزارهای راه‌اندازی گره و کلاینت {#node-and-client-tools} - -گزینه های مختلفی برای کمک کردن به شما در راه‌اندازی وجود دارد.‌ از شاخص‌های بالا برای راهنمایی درباره ابزارهای زیر استفاده کنید. - - - -#### ابزارهای گره - - - -لطفاً از اهمیت انتخاب [کلاینت اقلیت](/developers/docs/nodes-and-clients/client-diversity/) غافل نشوید، زیرا امنیت شبکه را بهبود می‌بخشد و ریسک شما را محدود می‌کند. ابزارهایی که به شما امکان می‌دهند کاربر اقلیت را راه‌اندازی کنید با عنوان «چندکاربری» نشان داده می‌شوند. - -#### تولید‌کنندگان کلید - -این ابزارها می‌توانند به‌عنوان جایگزینی برای [Staking Deposit CLI](https://github.com/ethereum/staking-deposit-cli/) برای کمک به تولید کلید استفاده شوند. - - - -ابزار سهامگذاری‌‌ می‌شناسید که نگنجانده‌ایم؟ [سیاست فهرست‌بندی محصول](/contributing/adding-staking-products/) ما را برای اطمینان از مناسب بودن آن و ثبت آن جهت بررسی مشاهده کنید. - -## مشاهده‌ی راهنماهای سهام‌گذاری انفرادی {#staking-guides} - - - -## پرسش‌های متداول {#faq} - -اینها چند مورد از متداول‌ترین سؤالات مربوط به سهام‌گذاری هستند که ارزش دانستن دارند. - - - -یک اعتبارسنج یک موجود مجازی است که بر روی اتریوم زندگی می‌کند و در اجماع پروتکل اتریوم مشارکت می‌کند. اعتبارسنج‌ها با موجودی، کلید عمومی و سایر مشخصات نشان داده می‌شوند. کلاینت اعتبارسنج نرم‌افزاری است که با نگه داشتن و استفاده از کلید خصوصی آن، از طرف اعتبارسنج عمل می‌کند. یک کلاینت اعتبارسنج منفرد می‌تواند چندین جفت کلید را در خود نگه دارد و اعتبارسنج‌های زیادی را کنترل کند. - - - - -هر جفت کلید مرتبط با یک اعتبارسنج دقیقاً به 32 اتر نیاز دارد تا فعال شود. واریز کردن اتر بیشتر به یک مجموعه کلید، پتانسیل پاداش را افزایش نمی‌دهد، زیرا هر اعتبارسنج محدود به موجودی مؤثر 32 اتر است. این بدان معنی است که سهام‌گذاری با افزایش‌های 32 اتری انجام می‌شود که هر کدام مجموعه‌ای از کلیدها و موجودی خاص خود را دارند. - -بیش از 32 اتر برای یک اعتبارسنج واریز نکنید. این کار پاداش‌های شما را زیادتر نمی‌کند. اگر یک آدرس برداشت برای اعتبارسنج تنظیم شده‌ باشد، وجوه بیشتر از 32 اتر به صورت خودکار به این آدرس در طی نوبت اعتبارسنج بعدی واریز خواهد شد. - -اگر سهام‌گذاری انفرادی برای شما بسیار سخت به نظر می‌رسد، از یک ارائه‌دهنده‌ی سهام‌گذاری به‌عنوان سرویس استفاده کنید، یا اگر با کمتر از 32 اتر کار می‌کنید، استخرهای سهام‌گذاری را بررسی کنید. - - - -آفلاین شدن هنگامی که شبکه به درستی در حال نهایی‌سازی است، منجر به برخورد شدید نمی‌شود. اگر اعتبارسنج شما برای یک دوره معین (هر دوره 6.4 دقیقه) برای تصدیق کردن در دسترس نباشد، جریمه‌های عدم فعالیت کوچک اعمال می‌شود، اما این موضوع با برخورد شدید بسیار متفاوت است. این جریمه‌ها اندکی کمتر از پاداشی است که در صورت در دسترس بودن اعتبارسنج کسب می‌کردید، و ضررها را می‌توان با آنلاین بودن به مدت زمان تقریباً برابر دوباره به دست آورد. - -توجه داشته باشید که جریمه عدم فعالیت متناسب با تعداد اعتبارسنج‌هایی است که در آن واحد آفلاین هستند. در مواردی که بخش بزرگی از شبکه به‌طور همزمان آفلاین باشد، جریمه هر یک از این اعتبارسنج‌ها بیشتر از زمانی خواهد بود که یک اعتبارسنج منفرد در دسترس نباشد. - -در موارد شدید، اگر شبکه به دلیل آفلاین بودن بیش از یک سوم اعتبارسنج‌ها، نهایی کردن را متوقف کند، این کاربران دچار نشت عدم فعالیت درجه دوم شناخته می‌شود که تخلیه نمایی اتر از حساب‌های اعتبارسنج‌های آفلاین است. این کار، به شبکه امکان می‌دهد تا نهایتاً با سوزاندن اتریوم اعتبارسنج‌های غیرفعال خود را ترمیم کند تا زمانی که موجودی آنها به 16 اتر برسد، که در آن نقطه، آن‌ها به‌طور خودکار از استخر اعتبارسنج رانده می‌شوند. اعتبارسنج‌های آنلاین باقیمانده در نهایت بیش از 2/3 شبکه را دوباره تشکیل می‌دهند و اکثریت قابل‌توجه موردنیاز را برای نهایی کردن مجدد زنجیره برآورده می‌کنند. - - - -به‌طور خلاصه، این موضوع را هرگز نمی‌توان به‌طور کامل تضمین کرد، اما اگر با حسن نیت عمل کنید، یک کلاینت اقلیت را اجرا کنید و کلیدهای امضای خود را هر بار فقط در یک دستگاه نگه دارید، خطر برخورد شدید تقریباً صفر است. - -تنها چند راه خاص وجود دارد که می‌تواند منجر به برخورد شدید و رانده شدن از شبکه شود.‌ در زمان نگارش این مقاله، برخوردهای شدیدی که رخ داده‌اند صرفاً حاصل تنظیمات سخت‌افزاری اضافی بوده است که در آن کلیدهای امضا در دو دستگاه جداگانه ذخیره می‌شوند. این کار می‌تواند به‌طور ناخواسته منجر به رأی مضاعف از سمت کلیدهای شما شود، که یک تخلف مشمول برخورد شدید است. - -اجرای یک کلاینت با اکثریت قابل‌توجه (هر کلاینتی که بیش از 2/3 شبکه استفاده می‌کند) همچنین ریسک برخورد شدید بالقوه را در صورتی که کلاینت دارای اشکالی باشد که منجر به فورک زنجیره شود، در خود نهفته است. این موضوع می‌تواند منجر به فورک معیوب شود که نهایی می‌شود. برای تصحیح بازگشت به زنجیره موردنظر به ارسال رای فراگیر با تلاش برای لغو یک بلوک نهایی‌شده نیاز است. این موضوع هم یک تخلف مشمول برخورد شدید است و می‌توان به سادگی با اجرای یک کلاینت اقلیت به‌جای آن، از آن جلوگیری کرد. - -اشکالات برابر در کلاینت اقلیت هرگز نهایی نمی‌شوند و بنابراین هرگز منجر به رأی فراگیر نمی‌شوند و صرفاً منجر به جریمه‌های عدم فعالیت و نه برخورد شدید می‌شوند. - - - - - -کلاینت‌های فردی ممکن است از نظر عملکرد و رابط کاربری کمی متفاوت باشند، زیرا هر کدام توسط تیم‌های مختلف و با استفاده از زبان‌های برنامه‌نویسی مختلف توسعه یافته‌اند. همان‌طور که گفته شد، هیچ‌یک از آن‌ها «بهترین» نیستند. همه کلاینت‌های تولید نرم‌افزارهایی عالی هستند که همگی عملکردهای اصلی یکسانی را برای همگام‌سازی و تعامل با زنجیره‌‌ی بلوکی انجام می‌دهند. - -از آنجایی که همه‌ی کلاینت‌های تولید عملکردهای اولیه یکسانی را ارائه می‌دهند، در واقع بسیار مهم است که یک کلاینت اقلیت را انتخاب کنید، یعنی کلاینتی که در حال حاضر توسط اکثر اعتبارسنج‌ها در شبکه استفاده نمی‌شود. این کار ممکن است غیرمنطقی به نظر برسد، اما اجرای یک کلاینت اکثریت یا کلاینت اکثریت قابل‌توجه، شما را در معرض خطر برخورد شدید در صورت بروز اشکال در آن کلاینت قرار می‌دهد. اجرای یک کلاینت اقلیت، به‌شدت این خطرات را محدود می‌کند. - -درباره‌ی اینکه چرا تنوع کلاینت حیاتی است بیشتر بدانید - - - -گرچه یک سرور خصوصی مجازی (VPS) می‌تواند به عنوان جایگزینی برای سخت‌افزار خانگی استفاده شود، دسترسی فیزیکی و مکان کلاینت اعتبارسنجتان مهم است. راه‌حل‌های ابری متمرکز مانند Amazon Web Services یا Digital Ocean، به قیمت متمرکز کردن شبکه، راحتیِ بی‌نیازی از تهیه و اجرای سخت‌افزار را به همراه می‌آورند. - -هر چه کلاینت‌های اعتبارسنجی بیشتری روی یک راه‌حل ذخیره‌سازی ابری متمرکز واحد کار کنند، برای این کاربران خطرناک‌تر می‌شود. هر رویدادی که این ارائه‌دهندگان را آفلاین کند، خواه از طریق حمله، درخواست‌های نظارتی، یا صرفاً قطع برق/اینترنت، منجر به آفلاین شدن هر کلاینت اعتبارسنجی می‌شود که به این سرور متکی است و همزمان آفلاین می‌شود. - -جریمه‌های آفلاین بودن متناسب با تعداد کلاینت‌های دیگری است که همزمان آفلاین هستند. استفاده از VPS ریسک شدیدتر شدن جریمه‌های آفلاین بودن را تا حد زیادی افزایش می‌دهد و در صورتی که قطعی به اندازه کافی بزرگ باشد، خطر نشت درجه دوم یا کاهش را افزایش می‌دهد. برای به حداقل رساندن خطر خود و شبکه، به کاربران قویاً توصیه می‌شود که سخت‌افزار خود را تهیه کنند و اجرا کنند. - - - - -هر نوع برداشت از زنجیره بیکن نیازمند آن است که جزئیات رمز برداشت تنظیم شوند. - -سهامگذاران جدید این را در زمان تولید کلید و واریز تنظیم می‌کنند. سهامگذاران کنونی که قبلا این قسمت را تنظیم نکرده‌اند می‌توانند کلیدهایشان را برای پشتیبانی از این عملکرد ارتقا دهند. - -به محض تنظیم کردن اطالاعات رمز برداشت، پرداخت‌های پاداش (اتر جمع شده و بدست آمده از 32 اتر اولیه) به صورت دوره ای و به صورت خودکار به آدرس برداشت توزیع خواهد شد. - -برای باز کردن و بازپس‌گیری کل موجودی تان باید فرایند خروج از اعتبارسنج خود را نیز تکمیل کنید. - -اطلاعات بیشتر درباره برداشت‌های سهامگذاری - - -## بیشتر بخوانید {#further-reading} - -- [مشکل تنوع کلاینت اتریوم](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ -- [کمک به تنوع کلاینت‌ها](https://www.attestant.io/posts/helping-client-diversity/) - _جیم مک‌دونالد 2022_ -- [ تنوع کلاینت در لایه‌ی اجماع اتریوم](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ -- [گام‌به‌گام: نحوه‌ی پیوستن به شبکه‌ی آزمایشی اتریوم 2.0](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _بوتا_ -- [نکات پیشگیری از برخورد شدید Eth2](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _راول جردن 2020_ diff --git a/src/content/translations/fa/staking/withdrawals/index.md b/src/content/translations/fa/staking/withdrawals/index.md deleted file mode 100644 index 6bee3f0baa9..00000000000 --- a/src/content/translations/fa/staking/withdrawals/index.md +++ /dev/null @@ -1,218 +0,0 @@ ---- -title: برداشت‌ها از سهام‌گذاری -description: این صفحه به طور خلاصه بیان می‌کند که برداشت‌های سهامگذاری خودکار چه هستند، چطور کار می‌کنند، و سهامگذاران برای دریافت پاداش‌هایشان به چه کار باید انجام بدهند -lang: fa -template: staking -image: ../../../../../assets/staking/leslie-withdrawal.png -alt: لزلی (Leslie) کرگدن، با پاداش سهام گذاری‌اش -sidebarDepth: 2 -summaryPoints: - - ارتقاء شانگهای/کاپلا برداشت‌های سهامگذاری را روی اتریوم فعال کرد - - اپراتورهای اعتبارسنج باید یک آدرس برداشت را برای فعالسازی فراهم کنند - - پاداش ها هر چند روز یک بار به صورت خودکار توزیع می‌شوند - - اعتبارسنج‌هایی که از سهامگذاری کاملاً خارج می‌شوند موجودی باقیمانده خود را دریافت خواهند نمود ---- - - -برداشت‌های سهامگذاری همراه با ارتقاء شانگهای/کاپلا که در 12 آوریل 2023 رخ داد فعال شدند. اطلاعات بیشتر درباره شانگهای/کاپلا - - -**برداشت‌های سهامگذاری** اشاره به انتقال‌های اتر از یک حساب اعتبارسنج روی لایه اجماعی اتریوم (زنجیره بیکن) به لایه اجرایی که می‌تواند در آنجا معامله شود دارند. - -**پرداخت پاداش موجودی اضافه** بیشتر از 32 اتر به صورت خودکار و مرتب به آدرس برداشت متصل به هر اعتبارسنج، که قبلاً یک بار توسط کاربر فراهم شده است ارسال خواهد شد. کاربران همچنین می‌توانند **کاملاً از سهامگذاری خارج شوند**، که کل موجودی اعتبارسنج‌ آنها را باز خواهد کرد. - -## پاداش‌های سهام‌گذاری {#staking-rewards} - -پرداخت پاداش‌ها به صورت خودکار برای حساب‌های اعتبارسنج فعال همراه با حداکثر موجودی مؤثر 32 اتری پردازش می‌شوند. - -هرگونه موجودی بالاتر از 32 اتر که از طریق پاداش‌ها به دست می‌آید، در واقع به اصل کار کمک نمی‌کند یا وزن این اعتبارسنج را در شبکه افزایش نمی‌دهد، و بنابراین به‌طور خودکار هر چند روز یک‌بار به‌عنوان پرداخت پاداش برداشت می‌شود. جدا از ارائه یک باره‌ آدرس برداشت، این پاداش‌ها نیازی به هیچ اقدامی از سوی اپراتور اعتبارسنج ندارند. همه اینها در لایه اجماع فعال می‌شوند، بنابراین هیچ گسی (کارمزد معامله) در هیچ مرحله‌ای مورد نیاز نیست. - -### چطور به اینجا رسیدیم؟ {#how-did-we-get-here} - -اتریوم طی چند سال گذشته تحت چندین ارتقاء شبکه قرار گرفته است و به جای ماینینگ انرژی‌بر که در گذشته وجود داشت، به شبکه‌ای که توسط خود اتریوم ایمن‌سازی شده تبدیل شده است. مشارکت در اجماع روی اتریوم اکنون تحت عنوان "سهامگذاری" شناخته می شود، زیرا شرکت‌کنندگان به‌طور داوطلبانه اتر را قفل کرده‌اند، و آن را برای امکان مشارکت در شبکه "در وضعیت سهامگذاری" قرار داده‌اند. کاربرانی که از قوانین تبعیت می‌کنند پاداش می‌گیرند، و هر تلاشی برای تقلب می‌تواند جریمه شود. - -از زمان راه‌اندازی قرارداد سپرده‌گذاری سهام در نوامبر 2020، برخی از پیشگامان شجاع اتریوم به‌طور داوطلبانه وجوهی را برای فعالسازی «اعتبارسنج‌ها» قفل کرده‌اند، یعنی حساب‌های ویژه‌ای که بر اساس قوانین شبکه،‌حق تصدیق رسمی و پیشنهاد بلوک‌ها را دارند. - -قبل از ارتقاء شانگهای/کاپلا، نمی‌توانید به اتر سهامگذاری شده خود دسترسی داشته باشید یا از آن استفاده کنید. اما الان، می‌توانید انتخاب کنید که پاداش‌های خود را به صورت خودکار در یک حساب منتخب دریافت کنید، و نیز می‌توانید اتر سهامگذاری شده خود را هر زمان که بخواهید برداشت کنید. - -### چگونه آماده شوم؟ {#how-do-i-prepare} - - - -### اطلاعیه های مهم {#important-notices} - -ارائه یک آدرس برداشت، یک قدم ضروری برای هر حساب اعتبارسنج قبل از واجد شرایط بودن آن برای برداشت اتر از موجودی آن است. - - - هر حساب اعتبارسنج می‌تواند فقط یک بار تنها به یک آدرس برداشت اختصاص یابد. پس از انتخاب یک آدرس و ارسال آن به لایه اجماع، نمی‌توان آن را لغو کرد یا دوباره تغییر داد. مالکیت و صحت آدرس ارائه شده را قبل از ثبت دوباره بررسی کنید. - - -در این میان هیچ تهدیدی برای وجوه شما به دلیل ارائه نکردن این مورد وجود ندارد، با این فرض که عبارت بازیابی شما در محیطی آفلاین نگهداری می‌شود و به هیچ وجه به خطر نیفتاده است. عدم افزودن اطلاعات رمز برداشت صرفاً اتر را تا زمانی که آدرس برداشت ارائه شود در حساب اعتبارسنج قفل می‌کند. - -## خروج کامل از سهامگذاری {#exiting-staking-entirely} - -فراهم کردن آدرس برداشت قبل از اینکه _هر_ انتقال وجهی بتواند به خارج از موجودی حساب اعتبارسنج منتقل شود الزامی است. - -کاربرانی که قصد خروج کامل از سهامگذاری و برداشت کامل موجودی خود را دارند، باید پیام "خروج داوطلبانه" را که روند خروج از سهامگذاری را آغاز خواهد کرد با کلیدهای اعتبارسنج امضا و مخابره کنند. این امر با کاربر اعتبارسنج شما انجام می‌شود و در گره اجماع شما ثبت می‌شود، و نیازی به پرداخت گس ندارد. - -فرآیند خروج یک اعتبارسنج از سهامگذاری، بسته به تعداد دیگری که همزمان خارج می‌شوند، زمان متغیری را می‌طلبد. پس از تکمیل، این حساب دیگر مسئول انجام وظایف اعتبارسنج در شبکه نخواهد بود، و دیگر واجد شرایط دریافت پاداش‌ها نیست، و اتر آن دیگر "در وضعیت سهامگذاری" نیست. در این زمان حساب، نشان کاملاً "قابل برداشت" را دریافت خواهد کرد. - -هنگامی که یک حساب نشان "قابل برداشت" را دریافت کند، و اطلاعات رمز برداشت ارائه شدند، کاربر به غیر از انتظار کشیدن کار دیگری لازم نیست انجام بدهد. حساب‌ها به‌طور خودکار و به‌طور مداوم توسط پیشنهادکنندگان بلوک برای وجوه خارج شده واجد شرایط جابجا می‌شوند، و موجودی حساب شما به‌طور کامل (که به عنوان "برداشت کامل" نیز شناخته می‌شود) در جابجایی بعدی منتقل می‌شود. - -## برداشت‌های سهامگذاری چه موقع فعال می‌شوند؟ {#when} - -برداشت‌های سهامگذاری فعال هستند! عملکرد برداشت به عنوان بخشی از ارتقاء شانگهای/کاپلا که در تاریخ 12 آوریل 2023 روی داد فعال شد. - -ارتقاء شانگهای/کاپلا این امکان را فراهم کرد که اتر سهامگذاری شده در درون حساب‌های معمول اتریوم بازپس گرفته شود. این امر حلقه نقدینگی سهامگذاری را بست و اتریوم را یک قدم به مسیر ساختن یک اکوسیستم غیرمتمرکز پایدار، مقیاس‌پذیر و امن نزدیک‌تر کرد. - -- [اطلاعات بیشتر درباره تاریخچه اتریوم](/history/) -- [اطلاعات بیشتر درباره نقشه‌راه اتریوم](/roadmap/) - -## پرداخت برداشت‌ها چگونه انجام می‌شوند؟ {#how-do-withdrawals-work} - -اینکه آیا یک اعتبارسنج مشخص واجد شرایط برداشت است یا نه، توسط وضعیت خود حساب اعتبارسنج تعیین می‌شود. هیچ اطلاعاتی از سوی کاربر در هر زمان معین برای تعیین اینکه آیا یک حساب باید شروع به برداشت کند یا نه لازم نیست - کل فرآیند به طور خودکار توسط لایه اجماع در یک حلقه پیوسته انجام می‌شود. - -### فردی هستید که با توضیحات تصویری راحت‌ترید؟ {#visual-learner} - -این توضیحات برداشت‌های سهامگذاری اتریوم ارائه شده از سوی Finematics را مرور کنید: - - - -### «انتقال» بین اعتبارسنج‌ها {#validator-sweeping} - -زمانی که یک اعتبارسنج قرار است بلوک بعدی را پیشنهاد کند، باید یک صف برداشت ایجاد کند، نهایتاً تا 16 برداشت واجد شرایط. این کار با شروع با شاخص اعتبارسنج 0 انجام می‌شود، یعنی تعیین اینکه آیا برداشت واجد شرایطی برای این حساب طبق قوانین پروتکل وجود دارد یا نه، و در صورت وجود آن را به صف اضافه کند. کار اعتبارسنج تنظیم شده برای پیشنهاد بلوک بعدی از جایی که آخرین بلوک متوقف شده است ادامه می‌یابد و این روند به‌ترتیب به طور نامحدود پیش می‌رود. - - -به یک ساعت آنالوگ فکر کنید. عقربه روی آن به ساعت اشاره می‌کند، در یک جهت پیش می‌رود، از روی هیچ ساعتی نمی‌‌پرد و در نهایت پس از رسیدن به آخرین عدد، دوباره از ابتدا شروع به چرخیدن می‌کند.

-اکنون به جای اعداد 1 تا 12، تصور کنید ساعت دارای اعداد 0 تا N داشته باشد ( تا ژانویه 2023 تعداد کل حساب های اعتبارسنج که تا کنون در لایه اجماع ثبت شده اند، بیش از 500،000 بوده است).

-عقربه روی ساعت به اعتبارسنج بعدی اشاره می‌کند که باید برای برداشت‌های واجد شرایط بررسی شود. این روند از عدد 0 شروع می‌شود، و بدون پریدن و رد شدن از هر حساب تا آخر پیش می‌رود. وقتی که به آخرین اعتبارسنج دست یافت، چرخه پیوسته به آغاز مسیر باز می‌گردد. -
- -#### بررسی یک حساب برای برداشت {#checking-an-account-for-withdrawals} - -در حالی که یک پیشنهاددهنده در حال جابجایی بین اعتبارسنج‌ها برای برداشت‌های احتمالی است، هر اعتبارسنج که بررسی می‌شود با یک سری سوالات کوتاه ارزیابی می‌شود تا مشخص شود که آیا برداشت باید آغاز شود یا نه، و اگر چنین است، چه مقدار اتر باید برداشت شود. - -1. **آیا یک آدرس برداشت ارائه شده است؟** اگر هیچ آدرس برداشتی ارائه نشده است، از حساب عبور می‌کند و هیچ برداشتی انجام نمی‌شود. -2. ** آیا اعتبارسنج خارج شده و قابل برداشت است؟** اگر اعتبارسنج به طور کامل خارج شده باشد، و ما به ایپوکی رسیده باشیم که حساب آن "قابل برداشت" در نظر گرفته شود، برداشت کامل انجام می‌شود. با این کار کل موجودی باقیمانده به آدرس برداشت منتقل می‌شود. -3. **آیا موجودی مؤثر حداکثر 32 اتر است؟** اگر حساب دارای اطلاعات رمز برداشت باشد، به طور کامل از آن خارج نشده باشد، و دارای پاداش های در حال انتظار بالاتر از 32 باشد، یک برداشت جزئی پردازش خواهد شد که فقط پاداش‌های بالای 32 را به آدرس برداشت کاربر منتقل می‌کند. - -تنها دو اقدام وجود دارد که توسط اپراتورهای اعتبارسنج در طول چرخه عمر اعتبارسنج انجام می‌شود که مستقیماً بر این جریان تأثیر می‌گذارد: - -- ارائه اطلاعات رمز برداشت برای فعالسازی هر شکلی از برداشت -- خروج از شبکه، که منجر به برداشت کامل خواهد شد - -### بدون گس {#gas-free} - -این رویکرد برای برداشت‌های سهامگذاری از الزام سهامگذاران به ثبت دستی تراکنشی که درخواست برداشت مقدار خاصی از اتر را دارند، اجتناب می‌کند. این بدان معناست که **نیازی به گس (کارمزد تراکنش) نیست**، و برداشت‌ها نیز برای فضای بلوک لایه اجرایی موجود رقابت نمی‌کنند. - -### هر چند وقت یک‌بار پاداش‌های سهامگذاری را دریافت خواهم کرد؟ {#how-soon} - -حداکثر 16 برداشت را می‌توان در یک بلوک پردازش کرد. با این نرخ، می‌توان 115200 برداشت اعتبارسنج را در روز پردازش کرد (با فرض تلف نشدن هرگونه اسلات). همانطور که در بالا ذکر شد، اعتبارسنج‌های بدون حق برداشت نادیده گرفته می‌شوند، و زمان پایان جابجایی را کاهش می‌دهند. - -با گسترش این محاسبه، می‌توانیم زمان پردازش تعداد معینی از برداشت‌ها را تخمین بزنیم: - - - -| شمار برداشت ها | زمان تکمیل | -| :------------: | :--------: | -| 400,000 | 3.5 روز | -| 500,000 | 4.3 روز | -| 600,000 | 5.2 روز | -| 700,000 | 6.1 روز | -| 800,000 | 7.0 روز | - - - -می‌بینید که اعتبارسنج‌های بیشتر در شبکه سرعت آن را کاهش می‌دهند. افزایش در تعداد اسلات‌های از دست رفته می‌تواند سرعت را به نسبت کاهش دهد، اما این به طور کلی نشان‌دهنده سمت کندتر خروجی‌های احتمالی است. - -## پرسش‌های متداول {#faq} - - -نه، فرآیند ارائه اطلاعات رمز برداشت یک فرایند یک‌باره است و پس از ثبت دیگر قابل تغییر نیست. - - - -با تعیین یک آدرس برداشت لایه اجرا، اطلاعات رمز برداشت آن اعتبارسنج برای همیشه تغییر کرده است. این بدان معناست که اطلاعات رمز قدیمی دیگر عمل نمی‌کنند و اطلاعات رمز جدید به یک حساب لایه اجرا هدایت می‌شود. - -آدرس‌های برداشت می‌توانند یک قرارداد هوشمند (که توسط کد آن کنترل می‌شود)، یا یک حساب دارای مالکیت خارجی (EOA، که توسط کلید خصوصی آن کنترل می‌شود) باشند. در حال حاضر این حساب‌ها هیچ راهی برای انتقال یک پیام به لایه اجماع که نشان‌دهنده تغییر اطلاعات رمز اعتبارسنج باشد ندارند، و افزودن این قابلیت پیچیدگی زائدی را به پروتکل اضافه خواهد کرد. - -به‌عنوان یک راهکار جایگزین تغییر آدرس برداشت برای یک اعتبارسنج خاص، کاربران ممکن است یک قرارداد هوشمند را به‌عنوان آدرس برداشت خود تعیین کنند که می‌تواند چرخش کلید را انجام دهد، مثلاً یک گاوصندوق. کاربرانی که وجوه خود را روی EOA خود تنظیم می‌کنند، می‌توانند یک خروج کامل برای برداشت همه وجوه سهامگذاری شده خود انجام دهند، و سپس با استفاده از اطلاعات رمز جدید مجدداً سهامگذاری کنند. - - - - -اگر بخشی از یک استخر سهامگذاری هستید یا توکن‌های سهامگذاری را نگه می‌دارید، باید با ارائه‌دهنده خود درباره جزئیات بیشتر مربوط به نحوه انجام برداشت‌های سهامگذاری مشورت کنید، چون هر سرویس رویکرد متفاوتی دارد. - -در کل، کاربران باید آزاد باشند اتر سهامگذاری شده خود را پس بگیرند، یا اینکه ارائه‌دهنده‌ مورد استفاده خود را تغییر دهند. اگر یک استخر خاص بیش از حد بزرگ شود، وجوه را می‌توان خارج کرد، بازخرید کرد، و دوباره با یک ارائه‌دهنده کوچکتر سهامگذاری کرد. یا، اگر اتر کافی جمع‌آوری کرده‌اید می‌توانید بروید سراغ سهامگذاری در خانه. - - - - -بله، تا زمانی که اعتبارسنج شما یک آدرس برداشت ارائه کرده باشد. این باید یک بار ارائه شود تا در ابتدا هر شکلی از برداشت را فعال کند، سپس پرداخت‌های پاداش به طور خودکار هر چند روز یک‌بار با هر جابجایی اعتبارسنج فعال می‌شوتد. - - - - -نه، اگر اعتبارسنج شما همچنان در شبکه فعال باشد، برداشت کامل به صورت خودکار انجام نخواهد شد. این امر مستلزم آغاز دستی یک خروج داوطلبانه است. - -به محض اینکه اعتبارسنج فرایند خروج را تکمیل کرد و با فرض اینکه حساب دارای اطلاعات رمز برداشت است، باقیمانده موجودی سپس در طی انتقال اعتبارسنج بعدی برداشت خواهد شد. - - - - -برداشت‌ها به گونه‌ای طراحی شده‌اند که به‌طور خودکار انجام می شوند و هر اتر را که به طور فعال در سهامگذاری مشارکت ندارد منتقل می‌کنند. این امر شامل تمام موجودی حساب‌هایی است که فرایند خروج را تکمیل کرده‌اند. - -امکان درخواست دستی مقادیر خاصی از اتر برای برداشت وجود ندارد. - - - - -به اپراتورهای اعتبارسنج توصیه می‌شود از صفحه برداشت‌های سکوی پرتاب سهامگذاری بازدید کنند، که در آنجا جزئیات بیشتری درباره نجوه آماده‌سازی اعتبارسنج خود برای برداشت‌ها پیدا خواهید کرد. تهیه شده، زمان‌بندی رویدادها و اطلاعات بیشتر درباره چگونگی کار برداشت‌ها. - -برای امتحان اولیه تنظیمات خود در یک شبکه آزمایشی، به صفحه سکوی پرتاب سهامگذاری شبکه آزمایشی Goerli برای شروع مراجعه کنید. - - - - -خیر. به محض اینکه یک اعتبارسنج خارج شود و موجودی کامل آن برداشت شود، هرگونه وجوه اضافی که به آن اعتبارسنج سپرده می‌شود، به‌طور خودکار به آدرس برداشت منتقل خواهد شد. برای سهامگذاری مجدد اتر، یک اعتبارسنج جدید باید فعال شود. - - -## بیشتر بخوانید {#further-reading} - -- [برداشت‌های سکوی پرتاب سهامگذاری](https://launchpad.ethereum.org/withdrawals) -- [پروتکل EIP-4895: برداشت‌های زنجیره بیکن به‌عنوان عملیات‌ها](https://eips.ethereum.org/EIPS/eip-4895) -- [تیم ویراستاران اتریوم - شانگهای](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) -- [PEEPanEIP شماره 94: برداشت اتر سهامگذاری شده (آزمایشی) با Potuz & Hsiao-Wei Wang](https://www.youtube.com/watch?v=G8UstwmGtyE) -- [PEEPanEIP شماره 68: پروپوزال EIP-4895: برداشت‌های خودکار زنجیره بیکن به‌عنوان عملیات با الکس استوکس](https://www.youtube.com/watch?v=CcL9RJBljUs) -- [آشنایی با موجودی مؤثر اعتبارسنج](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/fa/zero-knowledge-proofs/index.md b/src/content/translations/fa/zero-knowledge-proofs/index.md deleted file mode 100644 index 05272a9e21b..00000000000 --- a/src/content/translations/fa/zero-knowledge-proofs/index.md +++ /dev/null @@ -1,212 +0,0 @@ ---- -title: اثبات‌های دانش-صفر -description: یک مقدمه غیرتخصصی درباره اثبات دانش صفر، برای مبتدی ها. -lang: fa ---- - -## اثبات دانش صفر چیست؟ {#what-are-zk-proofs} - -اثبات دانش صفر، روشی برای اثبات اعتبار یک گزاره بدون افشای خود گزاره است. «ثابت کننده» طرفی است که تلاش می کند ادعایی را ثابت کند، در حالی که «تایید کننده» مسئولیت تایید آن ادعا را دارد. - -اثبات دانش صفر اولین بار در سال 1985 در مقاله‌ای با عنوان [«پیچیدگی دانش سیستم‌های اثبات تعاملی»](http://people.csail.mit.edu/silvio/Selected%20Scientific%20Papers/Proof%20Systems/The_Knowledge_Complexity_Of_Interactive_Proof_Systems.pdf) مطرح شد که تعریفی از اثبات‌ دانش صفر ارائه می‌دهد که امروز به ‌طور گسترده مورد ارجاع قرار می‌گیرد: - -> یک پروتکل دانش صفر روشی است که به وسیلۀ آن یک طرف (اثبات‌کننده) می‌تواند به طرف دیگر (تاییدکننده) ثابت کند که چیزی درست است، بدون این‌ که هیچ اطلاعاتی جز این واقعیت که این عبارت خاص درست است فاش کند. - -اثبات‌های دانش صفر در طول سالیان بهبود یافته‌اند و اکنون در چندین اپلیکیشن در دنیای واقعی مورد استفاده قرار می‌گیرند. - -## چرا به اثبات دانش صفر نیاز داریم؟ {#why-zero-knowledge-proofs-are-important} - -اثبات‌ دانش صفر نشان‌دهندۀ یک پیشرفت چشمگیر در رمزنگاری کاربردی بود، زیرا وعدۀ بهبود امنیت اطلاعات برای افراد را می‌داد. در نظر بگیرید که چگونه می‌توانید ادعای خود (مثلاً «من شهروند کشور X هستم») را به یک طرف دیگر (مثلاً یک ارائه‌دهندۀ خدمات) اثبات کنید. برای اثبات ادعای خود می‌بایست «شواهدی» مانند پاسپورت ملی یا گواهینامۀ رانندگی ارائه دهید. - -اما این شیوه مشکلاتی دارد، بیش از همه، فقدان حریم خصوصی. زیرا اطلاعات شناسایی شخصی یا به‌اختصار PII اشتراک‌گذاری‌شده با سرویس‌های شخص ثالث، در پایگاه‌های دادۀ مرکزی ذخیره می‌شود که در برابر هک آسیب‌پذیرند. هم‌زمان با اهمیت یافتن سرقت هویت، درخواست‌ها برای ابزارهایی با قابلیت حفاظت بیشتر از حریم خصوصی به هنگام اشتراک‌گذاری اطلاعات حساس افزایش یافته است. - -اثبات دانش صفر با حذف نیاز به افشای اطلاعات برای اثبات اعتبار ادعاها، این مشکل را حل می‌کند. پروتکل دانش صفر، از گزاره (که «شاهد» نامیده می‌شود) به‌ عنوان ورودی استفاده می‌کند تا یک اثبات موجز برای اعتبار آن ایجاد کند. این اثبات، تضمین‌های محکمی برای صحت یک گزاره بدون افشای اطلاعات مورد استفاده در ایجاد آن ارائه می‌دهد. - -با رجوع به مثال قبلی، تنها مدرکی که برای اثبات ادعای شهروندی خود نیاز دارید، اثبات دانش صفر است. تاییدکننده تنها می‌بایست بررسی کند که آیا برخی از ویژگی‌های اثبات درست است یا نه تا متقاعد شود که گزارۀ اصلی نیز درست است. - -## اثبات دانش صفر چکونه کار میکند؟ {#how-do-zero-knowledge-proofs-work} - -اثبات دانش صفر به شما امکان می‌دهد که صحت یک گزاره را اثبات کنید، بدون این‌که محتوای آن گزاره را به اشتراک بگذارید یا چگونگی کشف حقیقت را فاش کنید. برای ممکن ساختن این امر، پروتکل‌های دانش صفر بر الگوریتم‌هایی تکیه می‌کنند که برخی داده‌ها را به ‌عنوان ورودی می‌گیرند و «درست» یا «نادرست» را به ‌عنوان خروجی برمی‌گردانند. - -یک پروتکل دانش صفر باید معیارهای زیر را برآورده کند: - -1. **کامل بودن**: اگر ورودی معتبر باشد، پروتکل دانش صفر همیشه پاسخ «درست» را برمی‌گرداند. از این رو، اگر گزارۀ اصلی درست باشد و اثبات‌کننده و تایید‌کننده صادقانه عمل کنند، اثبات را می‌توان پذیرفت. - -2. **صحت:** اگر ورودی نامعتبر باشد، از نظر تئوری غیرممکن است که پروتکل دانش صفر فریب بخورد تا پاسخ «درست» را بازگرداند. از این رو، یک اثبات‌کنندۀ دروغگو نمی‌تواند یک تاییدکنندۀ صادق را فریب دهد تا یک گزارۀ نامعتبر را معتبر بداند (مگر با یک احتمال ناچیز). - -3. **دانش صفر**: تاییدکننده، چیزی دربارۀ یک گزاره فراتر از اعتبار یا نادرستی آن یاد نمی‌گیرد (آن‌ها از گزاره، «دانش صفر» دارند). این الزام همچنین مانع می‌شود که تاییدکننده از طریق اثبات، به ورودی اصلی (محتوای گزاره) دست یابد. - -در شکل اولیه، یک اثبات دانش صفر از سه عنصر تشکیل شده است: **شاهد**،**چالش**، و **پاسخ**. - -- **شاهد**: با استفاده از اثبات دانش صفر، اثبات‌کننده می‌خواهد آگاهی خود از برخی اطلاعات محرمانه را اثبات کند. اطلاعات محرمانه، «شاهد» اثبات است، و آگاهی مفروض اثبات‌کننده درباره شاهد، مجموعه‌ای از پرسش‌ها را تعیین می‌کند که تنها از سوی یک طرف مطلع می‌تواند پاسخ داده شود. بنابراین، اثبات‌کننده فرایند اثبات را با انتخاب تصادفی یک پرسش، برآورد پاسخ و ارسال آن برای تاییدکننده آغاز می‌کند. - -- **چالش**: تاییدکننده به‌ طور تصادفی پرسش دیگری را از مجموعه انتخاب می‌کند و از اثبات‌کننده می‌خواهد که به آن پاسخ دهد. - -- **پاسخ**: اثبات‌کننده پرسش را می‌پذیرد، پاسخ را برآورد می‌کند و به تاییدکننده بازمی‌گرداند. پاسخ اثبات‌کننده، به تاییدکننده اجازه می‌دهد که بررسی کند آیا اولی واقعاً به شاهد دسترسی دارد یا خیر. برای اطمینان از این‌که اثبات‌کننده حدس‌های کورکورانه نمی‌زند و پاسخ‌های صحیحش از سر تصادف و شانس نیست، تاییدکننده سؤال‌های بیشتری می‌پرسد. با تکرار چندبارۀ این تعامل تا زمانی که رضایت تاییدکننده جلب شود، احتمال جعل شدن دانش شاهد از سوی اثبات کننده به میزان قابل توجهی کاهش می‌یابد. - -موارد بالا، ساختار یک «اثبات دانش صفر تعاملی» را شرح می‌دهد. پروتکل‌های اولیۀ دانش صفر از اثبات تعاملی استفاده می‌کردند، طبق این پروتکل‌ها، تایید اعتبار یک گزاره نیازمند ارتباط رفت و برگشتی میان اثبات‌کننده‌ها و تاییدکننده‌ها بود. - -یک مثال خوب که نحوۀ کار اثبات‌های تعاملی را روشن می‌کند، داستان معروف [غار علی بابا](https://en.wikipedia.org/wiki/Zero-knowledge_proof#The_Ali_Baba_cave) از ژان ژاک کویسکوتر است. در این داستان، پگی (اثبات‌کننده) می‌خواهد بدون فاش کردن عبارت رمز، به ویکتور (تاییدکننده) ثابت کند که آن عبارت را می‌داند تا دری جادویی را باز کند. - -### اثبات دانش صفر غیرتعاملی {#non-interactive-zero-knowledge-proofs} - -هرچند اثبات تعاملی یک انقلاب محسوب می‌شد، اما کارایی چندانی نداشت، زیرا مستلزم این بود که دو طرف در دسترس باشند و به‌ طور مکرر با هم تعامل داشته باشند. حتی اگر یک تاییدکننده به صداقت یک اثبات‌کننده اعتقاد داشته باشد، اثبات برای تایید مستقل در دسترس نخواهد بود (محاسبۀ یک اثبات جدید نیازمند مجموعۀ جدیدی از پیام‌ها بین اثبات‌کننده و تاییدکننده است). - -برای حل این مشکل، مانوئل بلوم، پل فلدمن و سیلویو میکالی اولین [اثبات‌های دانش صفر غیرتعاملی](https://dl.acm.org/doi/10.1145/62212.62222) را پیشنهاد کردند که در آن اثبات‌کننده و تاییدکننده یک کلید مشترک دارند. این کلید اجازه می‌دهد که اثبات‌کننده دانش خود از برخی اطلاعات (به‌ عنوان مثال شاهد) را بدون ارائۀ خود اطلاعات اثبات کند. - -برخلاف اثبات‌های تعاملی، اثبات‌های غیرتعاملی فقط به یک دور ارتباط بین شرکت‌کنندگان (اثبات‌کننده و تاییدکننده) نیاز دارند. اثبات‌کننده، برای محاسبۀ اثبات دانش صفر، اطلاعات محرمانه را به یک الگوریتم ویژه می‌فرستد. این اثبات برای تاییدکننده ارسال می‌شود، و تاییدکننده با استفاده از الگوریتم دیگری بررسی می‌کند که آیا اثبات‌کننده اطلاعات محرمانه را می‌داند یا خیر. - -اثبات غیرتعاملی، ارتباط بین اثبات‌کننده و تاییدکننده را کاهش می‌دهد و اثبات‌کننده‌های دانش صفر را کارآمدتر می‌کند. علاوه بر آن، به‌محض تولید هر اثبات، برای تایید اشخاص دیگر (به شرط داشتن کلید مشترک و الگوریتم تایید) در دسترس است. - -اثبات‌ غیرتعاملی پیشرفتی برای فناوری دانش صفر محسوب می‌شد و باعث توسعۀ سیستم‌های اثبات مورد استفادۀ امروزی شد. در زیر به معرفی انواع آن‌ می‌پردازیم: - -### انواع اثبات دانش صفر {#types-of-zero-knowledge-proofs} - -#### ZK-SNARKs {#zk-snarks} - -ZK-SNARK مخفف عبارت **Zero-Knowledge Succinct Non-Interactive Argument of Knowledge** است. پروتکل ZK-SNARK دارای ویژگی‌های زیر است: - -- **دانش صفر**: یک تاییدکننده می‌تواند یکپارچگی یک گزاره را بدون دانستن چیز دیگری در مورد آن گزاره تایید کند. تنها دانش تاییدکننده از گزاره، درست یا نادرست بودن آن است. - -- **موجز**: اثبات دانش صفر کوچک‌تر از شاهد، و به‌سرعت قابل تایید است. - -- **غیرتعاملی**: اثبات «غیرتعاملی» است، زیرا اثبات‌کننده و تاییدکننده فقط یک دور باهم تعامل دارند، برخلاف اثبات‌های تعاملی که به چندین دور ارتباط نیاز دارند. - -- **استدلال**: اثبات، شرط «صحت» را برآورده می‌کند، بنابراین تقلب بسیار بعید است. - -- **(از) دانش**: اثبات دانش صفر بدون دسترسی به اطلاعات محرمانه (شاهد) قابل ساخت نیست. برای اثبات‌کننده‌ای که شاهد ندارد، اگر نگوییم غیرممکن، اما دشوار است که یک اثبات دانش صفر معتبر را محاسبه کند. - -«کلید مشترک» که قبلاً به آن اشاره کردیم، به پارامترهای عمومی‌ اشاره دارد که اثبات‌کننده و تاییدکننده توافق می‌کنند از آن‌ها در تولید و تایید شواهد استفاده کنند. تولید پارامترهای عمومی (که در مجموع، به ‌عنوان رشتۀ مرجع مشترک یا به‌اختصار CRS شناخته می‌شود) به دلیل اهمیت آن در امنیت پروتکل، یک عملیات حساس است. اگر آنتروپی (تصادفی بودن) مورد استفاده در تولید CRS به دست یک اثبات‌کنندۀ نااهل بیفتد، ممکن است اثبات‌های تقلبی را محاسبه کنند. - -[محاسبات چندجانبه که به‌اختصار MPC گفته می‌شود](https://en.wikipedia.org/wiki/Secure_multi-party_computation)، راهی برای کاهش ریسک در تولید پارامترهای عمومی است. در این نوع محاسبات، چندین طرف در یک [مراسم راه‌اندازی مورد اعتماد](https://zkproof.org/2021/06/30/setup-ceremonies/amp/) شرکت می‌کنند، که در آن هر فرد مقادیری تصادفی برای تولید CRS ارائه می‌کند. تا زمانی که یک طرف صادق بخشی از آنتروپی خود را از بین ببرد، پروتکل ZK-SNARK سلامت محاسباتی را حفظ می‌کند. - -راه‌اندازی‌های مورد اعتماد، کاربران را ملزم می‌کنند در تولید پارامتر به شرکت‌کنندگان اعتماد کنند. با این حال، توسعۀ ZK-STARKs پروتکل‌های اثباتی را فعال کرده است که با یک راه‌اندازی غیرمعتمد کار می‌کنند. - -#### ZK-STARKs {#zk-starks} - -ZK-STARK مخفف عبارت **Zero-Knowledge Scalable Transparent Argument of Knowledge** است. ZK-STARKها مشابه ZK-SNARKها هستند، با این تفاوت که ویژگی‌های زیر را دارند: - -- **مقیاس‌پذیر**: در مواقعی که اندازۀ شاهد بزرگ‌تر است، ZK-STARK در ایجاد و تایید مدارک، سریع‌تر از ZK-SNARK عمل می‌کند. با بزرگ‌تر شدن شاهد، زمان‌ مورد نیاز برای اثبات و تایید توسط اثبات‌های STARK تنها اندکی افزایش پیدا می‌کند (زمان‌های اثبات‌کننده و تاییدکنندۀ SNARK با افزایش اندازۀ شاهد به صورت خطی افزایش می‌یابند). - -- **شفاف**: برای ایجاد پارامترهای عمومی به منظور اثبات و تایید، ZK-STARK به جای این‌که به راه‌اندازی مورد اعتماد متکی باشد، به تصادف قابل تایید عمومی متکی است. بنابراین، در مقایسه با ZK-SNARK شفاف‌تر هستند. - -ZK-STARKها، نسبت به ZK-SNARKها اثبات‌های بزرگ‌تری تولید می‌کنند، به این معنی که معمولاً منابع/هزینۀ بیشتری برای تایید نیاز دارند. با این حال، ممکن است در برخی موارد (مانند اثبات مجموعه داده‌های بزرگ)، ZK-STARK نسبت به ZK-SNARK مقرون‌به‌صرفه‌تر باشد. - -## موارد استفادۀ اثبات دانش صفر {#use-cases-for-zero-knowledge-proofs} - -### پرداخت‌های ناشناس {#anonymous-payments} - -پرداخت‌های کارت اعتباری اغلب برای چندین طرف، از جمله ارائه‌دهندۀ خدمات پرداخت، بانک‌ها و سایر اشخاص ذینفع (مانند مقامات دولتی) قابل مشاهده است. هرچند نظارت مالی برای شناسایی فعالیت‌های غیرقانونی مزیت‌هایی دارد، اما حریم خصوصی شهروندان عادی را نیز تضعیف می‌کند. - -رمزارزها به‌ عنوان ابزاری در خدمت کاربران، برای انجام معاملات محرمانه و همتا به همتا در نظر گرفته شده بودند. اما بیشتر تراکنش‌های ارزهای دیجیتال در بلاک‌چین‌های عمومی به طور آشکار قابل مشاهده‌اند. هویت‌ کاربران اغلب مستعار است یا به طور عمدی به هویت‌ دنیای واقعی آن‌ها مرتبط می‌شود (مثلاً با قرار دادن آدرس‌های ETH در پروفایل‌های توییتر یا گیت‌هاب)، یا ممکن است با استفاده از تجزیه و تحلیل داده‌های اولیه و آفچین، با هویت‌ دنیای واقعی آن‌ها مرتبط شود. - -«سکه‌های حریم خصوصی» خاصی وجود دارد که برای تراکنش‌های کاملاً ناشناس طراحی شده‌اند. بلاک‌چین‌های متمرکز بر حریم خصوصی، مانند Zcash و Monero، از جزئیات تراکنش، از جمله آدرس‌های فرستنده/گیرنده، نوع دارایی، مقدار، و جدول زمانی تراکنش محافظت می‌کنند. - -شبکه‌های بلاک‌چین متمرکز بر حریم خصوصی با استفاده از فناوری دانش صفر در پروتکل، به گره‌ها اجازه می‌دهند تا تراکنش‌ها را بدون نیاز به دسترسی به داده‌های تراکنش تایید کنند. - -اثبات‌ دانش صفر همچنین برای ناشناس کردن تراکنش‌ها در بلاک‌چین‌های عمومی استفاده می‌شود. به عنوان مثال، Tornado Cash یک سرویس غیرمتمرکز و غیرسرپرستی است که به کاربران اجازه می‌دهد تا تراکنش‌های محرمانه را در اتریوم انجام دهند. Tornado Cash از اثبات دانش صفر برای مخفی کردن جزئیات تراکنش و تضمین حریم خصوصی مالی استفاده می‌کند. متأسفانه، به این دلیل که ابزارهای حفظ حریم خصوصی «انتخابی» هستند، با فعالیت‌های غیرقانونی همراهند. برای غلبه بر این امر، حریم خصوصی در نهایت باید به پیش‌فرض در بلاک‌چین‌های عمومی تبدیل شود. - -### حفاظت از هویت {#identity-protection} - -سیستم‌های کنونی مدیریت هویت، اطلاعات شخصی را در معرض خطر قرار می‌دهند. اثبات دانش صفر به افراد کمک می‌کند تا هویت خود را تایید، و در عین حال از اطلاعات حساس محافظت کنند. - -اثبات دانش صفر به‌ویژه در زمینۀ [هویت غیرمتمرکز](/decentralized-identity/) مفید است. هویت غیرمتمرکز (که «هویت خودمختار» نیز نامیده می‌شود) توانایی کنترل دسترسی به شناسه‌های شخصی را به فرد می‌دهد. اثبات شهروندی بدون فاش کردن جزئیات شناسۀ مالیاتی یا اطلاعات گذرنامه، نمونۀ خوبی است که نشان می‌دهد چگونه فناوری دانش صفر هویت غیرمتمرکز را امکان‌پذیر می‌کند. - -### احراز هویت {#authentication} - -استفاده از خدمات آنلاین پلتفرم‌ها مستلزم اثبات هویت و حق دسترسی شما به آن پلتفرم‌ها است. این امر اغلب مستلزم ارائۀ اطلاعات شخصی مانند نام، آدرس ایمیل، تاریخ تولد و غیره است. همچنین ممکن است لازم باشد رمزهای عبور طولانی را به خاطر بسپارید یا در خطر از دست دادن دسترسی باشید. - -با این حال، اثبات‌ دانش صفر می‌تواند احراز هویت را هم برای پلتفرم‌ها و هم برای کاربران ساده‌ کند. هنگامی که یک ZK-proof با استفاده از ورودی‌های عمومی (مانند داده‌هایی که عضویت کاربر در پلتفرم را تایید می‌کند) و ورودی‌های خصوصی (مانند جزئیات کاربر) تولید شد، کاربر می‌تواند به‌سادگی آن را برای احراز هویت خود در زمانی که نیاز به دسترسی دارد ارائه کند. این امر تجربۀ کاربران را بهبود می‌بخشد و سازمان‌ها را از نیاز به ذخیرۀ حجم عظیمی از اطلاعات کاربران معاف می‌کند. - -### محاسبه قابل تایید {#verifiable-computation} - -محاسبات قابل تایید یکی دیگر از کاربردهای فناوری اثبات دانش صفر برای بهبود طرح‌های بلاک‌چین است. محاسبه قابل تایید به ما امکان می‌دهد ضمن حفظ نتایج قابل تایید، محاسبات را به نهاد دیگری برون‌سپاری کنیم. آن نهاد نتیجه را همراه با اثباتی که تایید می‌کند برنامه به‌درستی اجرا شده است، ارسال می‌کند. - -اهمیت اساسی محاسبه قابل تایید، در بهبود سرعت پردازش بلاک‌چین‌ها بدون کاهش امنیت است. درک این موضوع مستلزم دانستن تفاوت‌‌های راه‌حل‌های پیشنهادی برای مقیاس‌پذیری اتریوم است. - -[راه‌حل‌های مقیاس‌پذیری آنچین](/developers/docs/scaling/#on-chain-scaling)، مانند شاردینگ، نیاز به اصلاح گستردۀ لایۀ پایۀ بلاک‌چین دارند. با این حال، این رویکرد بسیار پیچیده است و اشتباهات در پیاده‌سازی می‌تواند مدل امنیتی اتریوم را تضعیف کند. - -[راه‌حل‌های مقیاس‌پذیری آفچین](/developers/docs/scaling/#off-chain-scaling) نیازی به طراحی مجدد پروتکل هستۀ اتریوم ندارند. در عوض، برای بهبود توان عملیاتی در لایۀ پایۀ اتریوم به یک مدل محاسباتی برون‌سپاری شده تکیه می‌کنند. - -در عمل این‌گونه کار می‌کنند: - -- اتریوم به جای پردازش هر تراکنش، اجرا را در یک زنجیرۀ جداگانه بارگذاری می‌کند. - -- پس از پردازش تراکنش‌ها، زنجیرۀ دیگر، نتایج را برای اعمال به حالت اتریوم برمی‌گرداند. - -در اینجا، مزیت این است که اتریوم نیازی به اجرا ندارد و فقط باید نتایج حاصل از محاسبات برون‌سپاری‌شده را در حالت خود اعمال کند. این امر ازدحام شبکه را کاهش می‌دهد و در عین حال سرعت تراکنش را بهبود می‌بخشد (پروتکل‌های آفچین برای اجرای سریع‌تر بهینه می‌شوند). - -زنجیره نیاز به روشی دارد تا معاملات آفچین را بدون اجرای مجدد آن‌ها اعتبارسنجی کند، در غیر این صورت ارزش اجرای آفچین از بین می‌رود. - -اینجا همان جایی است که محاسبه قابل تایید وارد عمل می‌شود. هنگامی که یک گره، تراکنشی را خارج از اتریوم اجرا می‌کند، برای اثبات صحت اجرای آفچین، اثبات دانش صفر را ارائه می‌دهد. این اثبات (که [اثبات اعتبار](/glossary/#validity-proof) نامیده می‌شود) معتبر بودن یک تراکنش را تضمین می‌کند و به اتریوم اجازه می‌دهد تا نتیجه را در حالت خود اعمال کند، بدون این‌که انتظار داشته باشد کسی آن را مورد تردید قرار دهد. - -[رول آپ‌های دانش صفر](/developers/docs/scaling/zk-rollups) و [ولیدیوم‌ها](/developers/docs/scaling/validium/) دو راه‌حل مقیاس‌پذیری آفچین هستند که از اثبات اعتبار برای ارائۀ مقیاس‌پذیری ایمن استفاده می‌کنند. این پروتکل‌ها هزاران تراکنش را به صورت آف‌چین اجرا می‌کنند و اثبات‌هایی را برای تایید در شبکۀ اتریوم ارائه می‌کنند. این نتایج را می‌توان بلافاصله پس از تایید اثبات اعمال کرد که به اتریوم اجازه می‌دهد تراکنش‌های بیشتری را بدون افزایش محاسبه در لایۀ پایه پردازش کند. - -### کاهش رشوه و تبانی در رای‌گیری آنچین {#secure-blockchain-voting} - -طرح‌های رای‌گیری بلاک‌چین ویژگی‌های مناسب زیادی دارند: آن‌ها کاملاً قابل ممیزی، ایمن در برابر حملات، مقاوم در برابر سانسور و عاری از محدودیت‌های جغرافیایی هستند. اما حتی طرح‌های رای‌گیری آنچین نیز از مشکل **تبانی** مصون نیستند. - -تبانی که به عنوان «هماهنگی برای محدود کردن رقابت آزاد از طریق فریب دادن، گول زدن و گمراه کردن دیگران» تعریف می‌شود، ممکن است از طریق یک طرف بدخواه که با ارائۀ رشوه بر رای‌گیری تاثیر می‌گذارد، عملی شود. به عنوان مثال، آلیس ممکن است از باب رشوه بگیرد تا به `گزینۀ B` رأی دهد، حتی اگر ترجیح خودش `گزینۀ A` باشد. - -رشوه و تبانی، اثربخشی هر فرایندی را که از رای دادن به عنوان مکانیسم سیگنال‌دهی استفاده می‌کند کاهش می‌دهد (به‌ویژه در جایی که کاربران می‌توانند نحوۀ رای دادن خود را ثابت کنند). این امر می‌تواند عواقب قابل توجهی داشته باشد، به‌ویژه در مواردی که آرا تعیین‌کنندۀ تخصیص منابع کمیاب هستند. - -برای مثال، [مکانیسم‌های تامین مالی ثانویه](https://www.radicalxchange.org/concepts/plural-funding/) برای سنجش و اولویت‌‌بندی گزینه‌های خاص از میان پروژه‌های مختلف نفع عمومی، بر اعانه‌ها تکیه می‌کنند. هر اعانه به عنوان یک «رای» برای یک پروژۀ خاص محسوب می‌شود و هر پروژه‌ای که رای بیشتری بیاورد وجوه بیشتری از استخر مربوطه دریافت می‌کند. - -استفاده از رای‌گیری آنچین، تامین مالی ثانویه را مستعد تبانی می‌کند: تراکنش‌های بلاک‌چین عمومی هستند، بنابراین رشوه‌دهندگان می‌توانند فعالیت آنچین رشوه‌گیران را بررسی کنند تا ببینند چگونه «رای داده‌اند». به این ترتیب، بودجۀ ثانویه دیگر ابزاری موثر برای تخصیص بودجه بر اساس ترجیحات جمعی جامعه نخواهد بود. - -خوشبختانه، راه‌حل‌های جدیدتر مانند MACI که مخفف Minimum Anti-Collusion Infrastructure (زیرساخت ضد تبانی حداقل) است، از اثبات دانش صفر استفاده می‌کنند تا رای‌گیری آنچین (مانند مکانیسم‌های تامین مالی ثانویه) را در برابر رشوه و تبانی مقاوم کنند. MACI مجموعه‌ای از قراردادهای هوشمند و اسکریپت‌ها است که به یک مدیر مرکزی (که «هماهنگ‌کننده» نامیده می‌شود) اجازه می‌دهند تا رای‌ها را _بدون_ افشای جزئیات نحوۀ رای دادن افراد جمع‌آوری و شمارش کند. با این حال، هنوز هم می‌توان شمارش صحیح آرا یا مشارکت یک فرد خاص در رای‌گیری را تایید کرد. - -#### MACI چگونه با اثبات دانش صفر کار می‌کند؟ {#how-maci-works-with-zk-proofs} - -در ابتدا، هماهنگ‌کننده قرارداد MACI را بر روی شبکۀ اتریوم قرار می‌دهد، پس از آن کاربران می‌توانند برای رای دادن (با ثبت کلید عمومی خود در قرارداد هوشمند) ثبت‌نام کنند. کاربران با ارسال پیام‌های رمزگذاری‌شده از طریق کلید عمومی خود در قرارداد هوشمند رای می‌دهند (از جمله معیارهای دیگر این است که یک رای معتبر باید با جدیدترین کلید عمومی مرتبط با هویت کاربر امضا شود). سپس، هماهنگ‌کننده پس از پایان دورۀ رای‌گیری، همۀ پیام‌ها را پردازش می‌کند، آرا را جمع‌آوری و نتایج را در زنجیره تایید می‌کند. - -در MACI، از اثبات‌های دانش صفر برای اطمینان از صحت محاسبه استفاده می‌شود، زیرا هماهنگ‌کننده نمی‌تواند به ‌طور نادرست آرا را پردازش و نتایج را محاسبه کند. این امر با درخواست از هماهنگ‌کننده برای ایجاد اثبات‌های ZK-SNARK به دست می‌آید که تایید می‌کند الف) همۀ پیام‌ها به‌درستی پردازش شده‌اند؛ ب) نتیجۀ نهایی با مجموع آرای _معتبر_ مطابقت دارد. - -بنابراین، حتی بدون به اشتراک گذاشتن آرای تک‌تک کاربران (که معمولاً اتفاق می‌افتد)، MACI صحت و سلامت نتایج محاسبه‌شده در فرایند شمارش آرا را تضمین می‌کند. این ویژگی در کاهش اثربخشی طرح‌های تبانی اساسی مفید است. در ادامه، این احتمال را با استفاده از مثال قبلی رشوه دادن باب به آلیس برای رای دادن به گزینۀ مد نظرش، بررسی می‌کنیم: - -- آلیس با ارسال کلید عمومی خود به یک قرارداد هوشمند، برای رای دادن ثبت‌نام می‌کند. -- آلیس در ازای دریافت رشوه از باب، با او توافق می‌کند که به `گزینۀ B` رای دهد. -- آلیس به `گزینۀ B` رای می‌دهد. -- آلیس به‌ طور محرمانه یک تراکنش رمزگذاری‌شده برای تغییر کلید عمومی مرتبط با هویت خود ارسال می‌کند. -- آلیس با استفاده از کلید عمومی جدید، پیام دیگری (رمزگذاری‌شده) مبنی بر رای دادن به `گزینۀ A` به قرارداد هوشمند می‌فرستد. -- آلیس تراکنشی را به باب نشان می‌دهد تا بگوید او به `گزینۀ B` رای داده است (که نامعتبر است، زیرا کلید عمومی دیگر با هویت آلیس در سیستم مرتبط نیست) -- در حین پردازش پیام‌ها، هماهنگ‌کننده رای آلیس برای `گزینۀ B` را نادیده می‌گیرد و تنها رای `گزینۀ A` را می‌شمارد. از این رو، تلاش باب برای تبانی با آلیس و دستکاری در رای‌گیری آنچین با شکست مواجه می‌شود. - -استفاده از MACI نیازمند اعتماد به هماهنگ‌کننده مبنی بر تبانی نکردن با رشوه‌دهندگان یا تلاش برای رشوه دادن رای‌دهندگان از سوی او است. هماهنگ‌کننده می‌تواند پیام‌های کاربران را رمزگشایی کند (برای ایجاد اثبات لازم است)، بنابراین آن‌ها می‌توانند نحوۀ رای دادن هر فرد را به‌ طور دقیق تایید کنند. - -اما در مواردی که هماهنگ‌کننده صادق است، MACI ابزاری قدرتمند برای تضمین سلامت رای‌گیری آنچین است. این امر بیان‌کنندۀ دلیل محبوبیت آن در میان برنامه‌های تامین مالی ثانویه (مانند [↗clr.fund](https://clr.fund/#/about/maci)) است که به‌شدت بر صحت آرای تک‌تک افراد متکی است. - -[درباره MACI بیشتر بیاموزید](https://github.com/privacy-scaling-explorations/maci/blob/master/specs/01_introduction.md). - -## معایب استفاده از اثبات دانش صفر {#drawbacks-of-using-zero-knowledge-proofs} - -### هزینه‌های سخت‌افزاری {#hardware-costs} - -تولید اثبات‌های دانش صفر شامل محاسبات بسیار پیچیده‌ای است که تنها در ماشین‌های تخصصی به بهترین وجه انجام می‌شود. از آنجایی که این ماشین‌ها گرانقیمت‌اند، اغلب در دسترس افراد عادی نیستند. به‌علاوه، برنامه‌هایی که می‌خواهند از فناوری دانش صفر استفاده کنند، می‌بایست هزینه‌های سخت‌افزاری را لحاظ کنند، که احتمال دارد باعث افزایش هزینه‌ها برای کاربران نهایی شود. - -### هزینه‌های تایید اثبات {#proof-verification-costs} - -تایید اثبات‌ها همچنین نیازمند محاسبه پیچیده است و هزینه‌های پیاده‌سازی فناوری دانش صفر در برنامه‌ها را افزایش می‌دهد. این هزینه به‌ویژه در زمینۀ اثبات محاسبه است. به‌ عنوان مثال، رول‌آپ‌های ZK برای تایید یک اثبات ZK-SNARK در اتریوم حدود 500000 گس هزینه برمی‌دارد و هزینه‌های ZK-STARKها از این رقم هم بالاتر است. - -### مفروضات اعتماد {#trust-assumptions} - -در ZK-SNARK، رشته مرجع مشترک (Common Reference String) یا همان پارامترهای عمومی، یک بار تولید می‌شود و از آن پس، برای استفادۀ طرف‌هایی که مایل به شرکت در پروتکل دانش صفر هستند در دسترس خواهند بود. پارامترهای عمومی از طریق یک مراسم راه‌اندازی مورد اعتماد ایجاد می‌شوند، که در آن شرکت‌کنندگان مورد اعتمادند. - -اما در واقع، هیچ راهی برای کاربران وجود ندارد تا صداقت شرکا را ارزیابی کنند و آن‌ها ناگزیدند به قول توسعه‌دهندگان اطمینان کنند. اما ZK-STARKها نیازی به مفروضات اعتماد ندارند زیرا تصادفی بودن استفاده‌شده در تولید رشته (استرینگ) به ‌طور عمومی قابل تایید است. در همین حال، محققان در حال کار بر روی راه‌اندازی بدون اعتماد برای ZK-SNARKها هستند تا امنیت مکانیسم‌های اثبات را افزایش دهند. - -### تهدیدات محاسبات کوانتومی {#quantum-computing-threats} - -ZK-SNARK از الگوریتم‌های رمزنگاری انحنای بیضوی ([ECDSA](/glossary/#ecdsa)) برای رمزگذاری استفاده می‌کند. هرچند الگوریتم ECDSA در حال حاضر امن است، توسعۀ رایانه‌های کوانتومی می‌تواند مدل امنیتی آن را در آینده با شکست مواجه کند. - -ZK-STARK در برابر تهدید محاسبه کوانتومی مصون در نظر گرفته می شود، زیرا برای رمزگذاری از هش‌های مقاوم در برابر برخورد استفاده می‌کند. برخلاف جفت‌ کلیدهای عمومی-خصوصی که در رمزنگاری انحنای بیضوی استفاده می‌شوند، شکستن هش مقاوم در برابر برخورد، برای الگوریتم‌های محاسبات کوانتومی دشوارتر است. - -## بیشتر بخوانید {#further-reading} - -- [دانشمند کامپیوتر یک مفهوم را در 5 سطح دشواری توضیح می‌دهد](https://www.youtube.com/watch?v=fOGdb1CTu5c) - _کانال یوتیوب Wired_ -- [بررسی اجمالی موارد استفاده برای اثبات‌ دانش صفر](https://appliedzkp.org/#Projects) - _تیم کاوش‌های حریم خصوصی و مقیاس‌پذیری_ -- [SNARKها در مقایسه با STARKها و SNARKهای بازگشتی](https://www.alchemy.com/overviews/snarks-vs-starks) — _خلاصه‌های کیمیاگری_ -- [اثبات دانش صفر: بهبود حریم خصوصی در یک بلاک‌چین](https://www.altoros.com/blog/zero-knowledge-proof-improving-privacy-for-a-blockchain/) - _دیمیتری لاورنوف_ -- [zk-SNARKها - یک مثال واقعی از دانش صفر و بررسی جامع آن](https://medium.com/coinmonks/zk-snarks-a-realistic-zero-knowledge-example-and-deep-dive-c5e6eaa7131c) - _آدام لوسیانو_ -- [ZK-STARKها - ایجاد اعتماد قابل تایید، حتی نسبت به رایانه‌های کوانتومی](https://medium.com/coinmonks/zk-starks-create-verifiable-trust-even-against-quantum-computers-dd9c6a2bb13d) - _آدام لوسیانو_ -- [مقدمه‌ای تقریبی دربارۀ چگونگی امکان zk-SNARKها](https://vitalik.ca/general/2021/01/26/snarks.html) - _ویتالیک بوترین_ -- [اثبات دانش صفر و نقش آن در بلاک‌چین چیست؟](https://www.leewayhertz.com/zero-knowledge-proof-and-blockchain/) - _لیوی هرتز_ diff --git a/src/content/translations/fi/dao/index.md b/src/content/translations/fi/dao/index.md deleted file mode 100644 index 458640ad120..00000000000 --- a/src/content/translations/fi/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: Hajautetut autonomiset organisaatiot (DAO) -description: Katsaus Ethereumissa oleviin DAOihin -lang: fi -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: Kuvitus, jossa hajautettu yhteisö äänestää ehdotuksesta. -summaryPoint1: Jäsenten omistamat yhteisöt ilman keskitettyä johtajuutta. -summaryPoint2: Turvallinen tapa tehdä yhteistyötä nettituttujen kanssa. -summaryPoint3: Turvallinen alusta sijoittaa varoja haluttuun kohteeseen. ---- - -## Mitä hajautetut autonomiset organisaatiot (DAO) ovat? {#what-are-daos} - -DAO on kollektiivisesti omistettu, blockchain-hallittu organisaatio, joka tavoittelee yhteisen tehtävän suorittamista. - -DAO luo mahdollisuuden työskennellä yhteisen näkemyksen jakavien ihmisten kanssa globaalisti, tarvitsematta luottaa varoja tai operaatioita hyväntahtoisen johtajan käsiin. Läsnäolo riittää. Yhteisöllä ei ole toimitusjohtajaa, joka voisi käyttää varoja varsin itsenäisesti haluamallaan tavalla tai talousjohtajaa ohjaamassa kirjanpidollista kulttuuria. Sen sijaan koodiin kirjatut lohkoketjuihin perustuvat säännöt määrittelevät, miten organisaatio toimii ja miten varoja käytetään. - -Järjestelmään on sisäänrakennettuna varannot, joihin kenelläkään ei ole pääsyä ilman ryhmän hyväksyntää. Päätöksenteko toteutetaan ehdotuksilla ja äänestyksillä sen varmistamiseksi, että kaikilla organisaatioissa on ääni, ja että kaikki tapahtuu avoimesti ketjussa. - -## Mihin hajautettuja autonomisia organisaatioita (DAO) tarvitaan? {#why-dao} - -Kun muodostat organisaation ja sijoitat varojasi sen toimintaan, tarvitaan paljon luottamusta henkilöihin, joiden kanssa työskentelet. On vaikea luottaa henkilöön - vain internetin välityksellä. DAOssa sinun ei tarvitse luottaa henkilöön ryhmässä, luotat DAOn koodiin, joka on 100% läpinäkyvä ja kenen tahansa tarkastettavissa. - -Globaalin yhteistyön mahdollisuudet ovat näin ollen lähes rajattomat. - -### Vertailu {#dao-comparison} - -| DAO | Perinteinen organisaatio | -| -------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | -| Matala ja täysin demokratisoitu organisaatiomalli. | Yleensä hierarkia. | -| Jäsenten on äänestettävä, jotta muutokset voidaan toteuttaa. | Organisoitumismallin mukaisesti muutoksia voidaan vaatia vain yhdeltä osapuolelta tai äänestystä voidaan vaihtoehtoisesti esittää. | -| Äänet laskettu ja lopputulos saatu aikaan automaattisesti ilman kolmansien osapuolien myötävaikutusta. | Jos äänestys menettelytapana, ääntenlasku ja lopputulos täytyy käsitellä manuaalisesti. | -| Tarjotut palvelut toteutetaan automaattisesti hajautettuna (vaikkapa esimerkiksi hyväntekeväisyysvarojen jakaminen). | Vaati manuaalikäsittelyä tai keskitetysti valvottua automaatiota, altis manipuloinnille. | -| Kaikki toiminta on läpinäkyvää ja täysin julkista. | Toiminta on tyypillisesti yksityistä ja kohdennetulle yleisölle tarkoitettua. | - -### Esimerkkejä DAOsta {#dao-examples} - -Jotta ymmärtäisit paremmin, esittelemme muutaman DAOn käyttötapauksen: - -- Hyväntekeväisyys – voidaan hyväksyä globaalit lahjoitukset ja äänestää siitä, mihin rahoitusta kohdennetaan. -- Yhteisomistus – voidaan ostaa fyysistä tai digitaalista omaisuutta ja jäsenet voivat äänestää siitä, miten niitä käytetään. -- Yritystoiminnan tukemisen rahastot - voit luoda yritysrahaston, jonne kerätään yhteistä investointipääomaa ja äänestetään tuen kohdentamisesta. Myöhemmin takaisinmaksettu raha voitaisiin jakaa uudelleen DAOn jäsenten kesken. - -## Kuinka DAOt toimivat? {#how-daos-work} - -DAOn selkäranka on sen älykäs sopimus, joka määrittelee organisaation säännöt ja huolehtii konsernin arvovarannoista. Kun sopimus on julkaistu Ethereumissa, sen sisältö on pysyvä. Vain äänestämällä muutoksesta voi muuttaa sääntöjä ja vaikuttaa sisältöön. Yritykset tehdä jotakin koodiin kirjoitetun logiikan vastaista epäonnistuvat. Älysopimukseen kirjatut ehdot määrittävät myös varojen käytön, joten siihen tarvitaan ryhmän hyväksyntä. Käytännössä se tarkoittaa sitä, että DAOt eivät tarvitse keskusjohtoisuutta toimiakseen. Sen sijaan päätökset tehdään yhteisesti ja maksut suoritetaan tai hylätään automaattisesti äänestysten perusteella. - -Tämä on mahdollista koska älysopimukset ovat suojattuja, eikä niitä voi "peukaloida" sen jälkeen, kun ne julkaistaan Ethereumissa. Koodin huomaamaton muokkaaminen on poissuljettu (DAOn säännöt). Kaikki on julkista ja avointa. - - - Lisätietoa älysopimuksista - - -## Ethereum ja DAOt {#ethereum-and-daos} - -Ethereum on täydellinen alusta DAOille useista syistä: - -- Ethereumin olemus on vakiintunut riittävästi, jotta organisaatiot voivat luottaa järjestelmään. -- Kun älysopimus on julkaistu, sitä ei voi huomaamatta muokata, edes sen omistajat. Tämä mahdollistaa DAOn toiminnan niillä säännöillä, joilla se on asetettu toimimaan. -- Älysopimukset voivat ottaa vastaan ja lähettää varoja. Ilman tätä ominaisuutta, tarvitsisit kolmannen osapuolen hallinnoimaan ryhmän varoja. -- Ethereum-yhteisö näyttää olevan enemmänkin yhteistyöyhteisö kuin kilpailuyhteisö, koska parhaat käytännöt jaetaan nopeasti kaikkien hyödyksi. - -## DAOn hallinto {#dao-governance} - -DAOn hallinnoinnissa on useita näkökohtia kuten, miten äänestysten ja ehdotuksien halutaan toimivan. - -### Valtuuttaminen {#governance-delegation} - -Valtuuttaminen on DAOn versiointi edustuksellisesta demokratiasta. Rahakkeiden haltijat delegoivat äänensä kanditaateille, jotka ovat ilmoittaneet halukkuutensa ja jotka sitoutuvat ohjaamaan protokollaa sekä pysymään ajan tasalla. - -#### Tunnettu esimerkki {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) – ENS-järjestelmän haltijat voivat siirtää äänensä työhön osallistuville yhteisön jäsenille. - -### Automaattinen transaktioiden hallinnointi {#governance-example} - -Monissa DAOissa tapahtumat suoritetaan automaattisesti, jos jäsenten päätösvaltaisuus on vahvistettu. - -#### Tunnettu esimerkki {#governance-example} - -[Nouns](https://nouns.wtf) – Nouns DAOssa transaktio käynnistetään automaattisesti, jos äänestys todetaan päätösvaltaiseksi ja enemmistö äänestää samansuuntaisesti, paitsi perustajajäsenten käyttäessä mahdollisuutta veto-oikeuteen. - -### Multisig-hallinnointi {#governance-example} - -Vaikka DAOlla voi olla tuhansia äänioikeutettuja jäseniä sen varat säilytetään lompakossa, jonka jakaa 5-20 aktiivista yhteisön luotettua ns. doxxed jäsentä (jäsenien julkiset profiilit ovat tunnettuja yhteisön sisällä). Äänestyksen jälkeen multisig-allekirjoittajat toteuttavat yhteisön tahdon. - -## DAOn lait {#dao-laws} - -Vuonna 1977 Wyoming keksi LLC:n, joka suojelee yrittäjiä ja rajoittaa heidän vastuutaan. Äskettäin samainen taho toimi pioneerina DAO-lain asettamisen, jolla määritellään DAOn laillinen status. Tällä hetkellä Wyomingilla, Vermontilla ja Neitsytsaarilla on DAO-lakeja jossain muodossa. - -#### Tunnettu esimerkki {#law-example} - -[CityDAO](https://citydao.io) – CityDAO hyödynsi Wyomingin DAO-lakia 40 hehtaarin maa-alueen ostossa lähellä Yellowstonen kansallispuistoa. - -## DAO-jäsenyys {#dao-membership} - -DAO-jäsenyydessä on erilaisia malleja. Jäsenyys määrittelee, miten äänestys toimii, DAOn muiden avainominaisuuksien ohella. - -### Rahakkeisiin perustuva jäsenyys {#token-based-membership} - -Ei yleensä vaadi luvitusta tai valtuuksia, rahakekohtaisia ehtoja löytyy. Useimmista näillä hallinnollisilla rahakkeilla voidaan käydä vapaasti kauppaa hajautetuilla vaihtotoreilla. Joissakin tapauksissa jäsenyys täytyy ansaita tarjoamalla likvidejä varoja tai esittämällä esimerkiksi proof-of-work -todisteen. Niin tai näin, rahakkeen omistaminen antaa oikeuden äänestämiseen. - -_Tämä menettelytapa kattaa laajasti hajautettuja protokollia ja rahakkeita._ - -#### Tunnettu esimerkki {#token-example} - -[MakerDAO](https://makerdao.com) – MakerDAOn tunnus on MKR on laajalti saatavilla hajautetun vaihdon pörsseissä. Kuka tahansa voi ostaa äänivaltaa Maker-protokollan tulevaisuuden hallintaan. - -### Jäsenosuus {#share-based-membership} - -Osuuksiin perustuvat DAOt vaativat enemmän käyttövaltuuksia, mutta ovat melko avoimia Voit anoa jäsenyyttä DAOon, ja luontevaa on tarjota vastikkeeksi yhteisölle jotakin arvonlisää, kuten vapaaehtoistyötä tai rahakkeita. Osuudet edustavat äänivaltaa ja omistajuutta. Jäsenet voivat poistua koska tahansa omaisuueränsä mukanaan. - -_Tyypillisiä jäseniä ovat tiiviit, ihmiskeskeiset organisaatiot, kuten hyväntekeväisyysyhdistykset, työosuuskunnat ja investoijat. Voi kattaa myös protokollia ja rahakkeita._ - -#### Tunnettu esimerkki {#share-example} - -[MolochDAO](http://molochdao.com/) – MolochDAO keskittyy Ethereum-projektien rahoittamiseen. Ryhmään jäseneksi kutsutaan. Jäsenet arvioivat kutsuttavan osaamista ja pääomien riittävyyttä sekä kapasiteettia tehdä arvioita potentiaalisista rahoitusehdokkaista. Et voi ostaa pääsyä DAOon avoimilta markkinoilta. - -### Maineeseen perustuva jäsenyys {#reputation-based-membership} - -Maineella on vaikutusta osallistumiseen ja äänivaltaan DAOssa. Toisin kuten rahakkeisiin tai osuuksiin perustuvassa jäsenyysmallissa, DAOissa, joihin hyväksytään maineen perusteella, omistajuus ei siirry osallistujille. Mainetta ei voi ostaa, siirtää tai osittaa: DAOn jäsenten on ansaittava maineensa osallistumisella. On-chain-äänestäminen on luvatonta, ja potentiaaliset jäsenet voivat vapaasti ehdottaa DAOon uusia jäseniä sekä anoa mainetta tai rahakkeita vastineeksi panoksestaan. - -_Käytetään tyypillisesti protokollien ja dAppsin hajautettuun kehittämiseen ja hallintoon, mutta sopii myös hyvin monenlaisiin järjestöihin, kuten hyväntekeväisyysjärjestöihin, työyhteisöihin, sijoitusklubeihin jne._ - -#### Tunnettu esimerkki {#reputation-example} - -[DXdao](https://DXdao.eth.link) – DXdao on suvereeni kollektiivinen järjestelmä, joka on hallinnoinut hajautettuja protokollia ja sovelluksia vuodesta 2019 alkaen. Se hyödyntää mainepohjaista hallintotapaa ja holografista konsensusta koordinoidakseen ja hallinnoidakseen varoja, joten kukaan ei voi ostaa siellä vaikutusvaltaa. - -## Liity DAOon tai perusta DAO (hajautettu itsenäinen yhteisö) {#join-start-a-dao} - -### Liity DAOon {#join-a-dao} - -- [Ethereum-yhteisön DAOt](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [DAOHausin lista DAOista](https://app.daohaus.club/explore) -- [Tally.xyz luettelo DAOista](https://www.tally.xyz) - -### Perusta DAO {#start-a-dao} - -- [Kutsu DAO DAOHausilla](https://app.daohaus.club/summon) -- [Käynnistä hallinnointi-DAO Tallyn avulla](https://www.tally.xyz/add-a-dao) -- [Luo Aragon-käyttöinen DAO](https://aragon.org/product) -- [Aloita seikkailu pioneerien kanssa](https://colony.io/) -- [Luo DAO DAOstackin holografisella konsensuksella](https://alchemy.daostack.io/daos/create) - -## Runsaasti lisää tietoa {#further-reading} - -### DAOn artikkelit {#dao-articles} - -- [Mikä DAO on?](https://aragon.org/dao) – [Aragon](https://aragon.org/) -- [DAO-käsikirja](https://daohandbook.xyz) -- [House of DAO](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metapeli](https://wiki.metagame.wtf/) -- [Mihin DAOa käytetään?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) -- [Miten aloittaa oma DAO-pohjainen digitaalinen yhteisö](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) -- [Mikä DAO on?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) -- [Mitä tarkoittaa holograafinen konsensus?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) – [DAOstack](https://daostack.io/) -- [DAOt eivät ole yrityksiä: kuinka hajauttaminen itsenäisissä organisaatioissa luo vaikuttavuutta, Vitalikia mukaellen](https://vitalik.ca/general/2022/09/20/daos.html) -- [DAOs, DACs, DAs and More: An Incomplete Terminology Guide – DAOt, DACt, DAt ja muita vastaavia: Epätäydellinen terminologia -opas](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Ethereum Blog](https://blog.ethereum.org) - -### Videoita {#videos} - -- [Mikä on DAOn rooli kryptoissa?](https://youtu.be/KHm0uUPqmVE) -- [Can a DAO Build a City? - Voisiko DAO rakentaa kaupungin?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/src/content/translations/fi/nft/index.md b/src/content/translations/fi/nft/index.md deleted file mode 100644 index f186014ac2b..00000000000 --- a/src/content/translations/fi/nft/index.md +++ /dev/null @@ -1,356 +0,0 @@ ---- -title: Ainutlaatuiset rahakkeet (NFT) -description: Yleiskatsaus Ethereum-järjestelmän NFT:ihin -lang: fi -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: Eth-logo hologrammina heijastettuna. -summaryPoint1: Tapa esittää mitä tahansa ainutlaatuista digitaalisena Ethereum-omaisuuseränä. -summaryPoint2: NFT:t antavat valtaa sisällöntuottajille ennen näkemättömällä tavalla. -summaryPoint3: Toimii Ethereum-lohkoketjun älysopimuksilla. ---- - -Digitaalinen taide ja keräilykokoelmat saavat aivan uutta voimaa ja näkyvyyttä NFT:n avulla. Digitaalisten taiteilijoiden liiketoiminta on muutoksessa kryptoyleisölle myynnin voimakkaan kasvun myötä. Julkkikset puolestaan huomaavat uuden tavan kohdata fanejaan. Digitaalinen taide on vain yksi keinoista hyödyntää NFT:itä. Niitä voidaan hyödyntää myös ainutlaatuisen omaisuuden omistajuuden todistamiseen. Esimerkkinä digitaalisen maailma tai reaalimaailman ei-korvattava token. - -Jos Andy Warhol olisi syntynyt 90-luvun lopulla, hän todennäköisesti olisi julkaissut rahakkeen Campbell's Soup -teoksesta NFT:nä. On vain ajan kysymys milloin Kanye vie Yeezys'n Ethereumiin. Jonakin päivänä saatat todentaa autosi omistajuuden NFTllä. - -## Mikä on NFT (non fungible token)? {#what-are-nfts} - -NFTt ova rahakkeita, joilla voidaan todentaa omistajuus ainulaatuiselle asialle, kohteelle tai kappaleelle. Rahakkeilla voidaan todentaa taiteen, keräilyesineiden, -kokoelmien ja jopa kiinteistöjen omistajuutta. Niillä voi olla vain yksi Ethereum-lohkoketjussa vahvistettu omistaja kerrallaan - kukaan ei voi muokata omistajuusrekisteriä tai tehdä kopiota olemassa olevasta NFTsta. - -NFT (non-fungible token) tarkoittaa uniikkia rahaketta, joka ei ole korvattavissa. Uniikki on termi, jota käytetään kuvaamaan yksilöllistä kappaletta kuten huonekalua, musiikkikappaletta tai tietokonettasi. Nämä asiat tai kappaleet ovat sikäli uniikkeja, koska ne sisältävät ainutlaatuisia ominaisuuksia. - -Vaihdettavat asiat tai kappaleet, toisin sanoen, voidaan vaihtaa vastaaviin, koska nykyarvo määrittää niitä enemmän kuin ainutlaatuiset ominaisuudet. Esimerkiksi, Etherit tai dollarit ovat vaihdettavissa koska 1 ETH / $1USD on vaihdettavissa vastaavaan 1 ETH / $1 USD. - - - -## Omaisuuserien internet {#internet-of-assets} - -NFTt ja Ethereum ratkaisevat joitakin interentin luomia ongelmia. Kaiken digitalisoituessa syntyy tarve erilaisten abstraktien ominaisuuksien omistajuuden todentamiseen. Muistettava on, että digitaaliset kappaleet usein toimivat yhdessä niihin liittyvän tuotteen kanssa. Et voi jälleenmyydä esim. iTunes mp3sta, jonka olet ostanut, tai et voi vaihtaa yrityksen bonuksia toisen vastaavan bonuksiin, vaikka markkinaa löytyisikin. - -Kuinka NFT muuttaa tiedon tallentamista, käsittelyä ja hyödyntämistä netissä. Vertailua nykywebiin. - -### Vertailu {#nft-comparison} - -| NFT internet | Internet tänään | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| NFTt ovat digitaalisesti ainutlaatuisia. | Kopio tiedostosta, kuten .mp3 tai .jpg, on sama kuin alkuperäinen. | -| Jokaisella NFTllä on omistaja, jonka omistajuus on julkisesti vahvistettu ja nähtävissä. | Digitaalisessa muodossa olevien asioiden/esineiden omistajuus tallennetaan instituutioiden servereille - sinun täytyy luottaa niihin. | -| NFTt toimivat yhteen minkä tahansa Ethereumiin rakennetun kanssa. NFTllä luotu pääsylippu voidaan myydä millä tahansa Ethereumin markkinalla. Vaihto täysin toisentyyppiseen NFTiin onnistuu. Voit vaihtaa taidetta vaikkapa pääsylippuun! | Yritysten, jotka käyttävät digitaalisia esineitä/asioita, tulee rakentaa oma infrastruktuuri niille. Esimerkiksi sovellus, joka myöntää digitaalisia pääsylippuja tapahtumiin, joutuu rakentamaan oman vaihtoalustan. | -| Sisällöntuottajat voivat myydä töitään missä tahansa ja heillä on pääsy globaaliin markkinaan. | Sisällöntuottajat/taiteilijat luottavat kolmansien alustoihin ja infraan, joka heillä on käytettävissään. Näihin liittyy usein käyttöehtoja tai -rajoituksia sekä maantieteellisiä rajoja. | -| Sisällöntuottajat/taiteilijat voivat todistaa oikeutensa teokseen ja saada jälleenmyynnistä rojalteja suoraan. | Alustat, kuten musiikin suoratoistopalvelut, pitävät itsellään suurimman osan myynnin tuotoista. | -| Esineitä voidaan hyödyntää yllättävillä tavoilla. Voit esimerkiksi käyttää digitaalista taideteosta kryptolainan vakuutena. | | - -### NFT esimerkkejä {#nft-examples} - -NFT-järjestelmä on suhteellisen uusi. Teoriassa, mikä tahansa uniikki asia, jonka omistajuus tulee todentaa, voidaan liittää NFTiin. Esimerkkejä NFTien soveltamisesta, helpottamaan ymmärtämistä: - -- [Ainutlaatuinen digitaalinen taideteos](https://foundation.app/artworks) -- [Ainutlaatuinen tennari, josta rajoitettu erä](https://www.metagrail.co/auctions/91cf83fb-3477-4155-aae8-6dcb9b853397) -- [Peliin liittyvä digitaalinen kohde](https://market.decentraland.org/) -- [Essee](https://zora.co/0x517bab7661C315C63C6465EEd1b4248e6f7FE183/145) -- [Digitaalinen keräilykokoelma](https://www.larvalabs.com/cryptopunks/details/1) -- [Verkkotunnus (domain)](https://app.ens.domains/name/ethereum.eth) -- [Pääsylippu tapahtumaan tai digitaalinen kuponki](https://www.yellowheart.io/) -- [Osta reaalimaailman tuotteita](https://www.tangible.store/) -- [Kiinteistömurto-osakkeet](https://realt.co/) -- [Tutkintotodistukset](https://www.degreecert.com/) -- [Musiikin rojaltit NFTin kautta](https://opulous.org/) -- [Siirry ansaintaan](https://yeticoineth.com/about.html) -- [Digitaalinen identiteetti](https://photochromic.io/) - -### ethereum.org sovelluksia {#ethereum-org-examples} - -Käytämme NFTeita tunnustuksena osallistujille ja meillä on jopa oma NFT-verkkotunnus. - -#### POAP (proof of attendance protocol) {#poaps} - -Osallistumalla ethereum.org kehitystyöhön, voit lunastaa POAP NFTn. Näin todistat osallistuneesi "tapahtumaan" tai täsmällisemmin kehitystyöhön, tavalla tai toisella. Joissakin krypto-tapaamisissa POAPia on käytetty pääsylippuna tapahtumaan. [Lisää osallistumisesta](/contributing/#poap). - -![ethereum.org POAP](./poap.png) - -#### ethereum.eth {#ethereum-dot-eth} - -Sivustolla on vaihtoehtoinen verkkotunnus, jota NFT tukee, **ethereum.eth**. Verkkotunnusjärjestelmän (DNS=domain name system) tarjoaja hallinnoi keskitetysti osoitetta `.org` , kun taas ethereum`.eth` on rekisteröity Ethereumille, Ethereumin palvelun kautta (ENS = Ethereum name system). Omistamme ja hallinnoimme sen. [Tarkista ENS-tietueemme](https://app.ens.domains/name/ethereum.eth) - -[Lisätietoa ENSsta](https://app.ens.domains) - -## Kuinka NFTt tomivat? {#how-nfts-work} - -NFTt eroavat ERC-20-rahakkeista, kuten DAI tai LINK, sillä jokainen yksittäinen rahake on täysin ainutlaatuinen. NFTt mahdollistavat omistajuuden määrittämisen tai omistajuuden vaatimisen mihin tahansa ainutlaatuiseen digitaaliseen dataan, ja Ethereumin lohkoketjussa hallitaan lokikirjaa omistajuudesta. NFT lyödään mistä tahansa digitaalisista esineistä tai edustamaan digitaalisesti reaalimaailman hyödykkeitä. NFT voisi edustaa seuraavasti: - -- Digitaalinen taide - - GIF-kuvat - - Keräilykokoelmat ja -esineet - - Musiikki - - Videot -- Reaalimaailman hyödykkeet - - Autoon liittyvät asiakirjat (omistajuus ja huoltohistoria) - - Tapahtumien pääsyliput - - Laskutus digitaalisella valuutalla - - Lainsäädäntöön perustuvat määrämuotoiset asiakirjat - - Allekirjoitukset -- Vaihtoehtoja ja mahdollisuuksia on loputtomasti! - -Omistajuutta hallitaan ainutlaatuisella IDllä sekä metatiedoilla, jotka ovat jäljittelemättömiä. NFTit lyödään (painetaan, luodaan) älysopimuksilla, jotka osoittavat omistajuutta ja hallitsevat NFTin omistajuuden siirtymistä. Kun joku luo tai lyö NFTn, hän suorittaa koodin, joka on tallennettu eri standardien mukaisiin älykkäisiin sopimuksiin kuten [ERC-721](/developers/docs/standards/tokens/erc-721/). Tieto lisätään lohkoketjuun, jossa NFTa hallinnoidaan. NFTn luomisen prosessi ylhäältä alas kuvataan seuraavasti: - -- Luodaan uusi lohko -- Tarkastetaan tiedot -- Tallennetaan tiedot lohkoketjuun - -NFTlla on joitakin erityisominaisuuksia: - -- Jokaisella rahakkeella on yksilöllinen tunnus, joka linkittää sen suoraan Ethereum-osoitteeseen. -- Rahakkeet eivät ole suoraan keskenään vaihdettavissa vaihtosuhteella 1:1. Kun taas 1 ETH on tarkalleen sama kuin toinen 1 ETH. Näin ei ole NFTn kohdalla. -- Jokaisella NFT-rahakkeella on omistaja ja tämä tieto on helposti todennettavissa. -- Tieto on tallennettu Ethereumiin ja sieltä käsin myytävissä tai ostettavissa millä tahansa Ethereum-pohjaisella NFT-markkinalla. - -Toisin sanoen, jos _omistaa_ NFTn: - -- Voit sujuvasti todistaa omistajuutesi. - - Todistus NFTn omistuksesta toimii samankaltaisesti kuin todistettaessa, että sinulla on Ethereitä tililläsi. - - Jos esimerkiksi ostat NFTn, omistajuus siirretään lompakkoosi vaikkapa julkisen osoitteesi kautta. - - Rahake osoittaa, että digitaalinen tiedostosi on alkuperäinen. - - Yksityinen avaimesi todistaa omistusoikeuden alkuperäiseen tiedostoon. - - Sisällön luojan julkinen avainen toimii kyseisen teoksen aitouden todistajana. - - Sisällön tai teoksen luojan julkinen avain on pysyvä osa teoksen digitaalisen rahakkeen historiaa. Hallussasi olevan sisällön tai teoksen luojan julkinen avain -tieto kertoo, kuka nimenomainen henkilö on luonut teoksen ja voi näin vaikuttaa sen markkina-arvoonkin (vastavoima väärennöksille). - - Toinen tapa ajatella, että omistat NFTn on allekirjoittaa viestit osoittaaksesi, että omistat osoitteen "takana" olevan yksityisavaimen. - - Kuten mainittua, yksityinen avaimesi on alkuperäisen kappaleen omistusoikeuden todiste. Tämä ilmentää sitä, että yksityiset avaimet osoitteen takana hallitsevat NFTia. - - Allekirjoitettua viestiä voidaan käyttää osoittamaan, että omistat ko. yksityiset avaimet paljastamatta niitä kenellekään ja samalla todisteena NFTn omistuksesta! -- Manipulointi on lähes mahdotonta! -- Voit myydä NFTn ja jossakin tapauksissa voit ansaita alkuperäisen teoksen tai sisällön luojan rojalteja edelleen myynnistä. -- Voit myös pitää hallussasi, tietäen, että omaisuus säilyy suojattuna Ethereumissa, valitsemassasi lompakossa. - -Jos _luot_ NFTn: - -- Voit helposti todistaa olevasi luoja. -- Määrität liikkeelle laskettavan lukumäärän. -- Voit ansaita rojalteja, joka kerta kun teos jälleenmyydään. -- Voit myydä sen millä tahansa NFT-markkinalla tai kahdenvälisessä verkossa (peer-to-peer). Myynti ei ole sidottu mihinkään yhteen alustaan ja et tarvitse kolmatta osapuolta välittäjäksi. - -### Liikkeelle laskettava painos- tai lukumäärä {#scarcity} - -NFTn luoja päättää kuinka runsaasti teoksesta tai asiasta luodaan kappaleita. - -Kuvittele esimerkkinä urheilutapahtuman pääsylippua. Kuten tapahtuman järjestäjä päättä kuinka monta lippua tapahtumaan myydään, NFTn luoja päättää kuinka monta alkuperäiskappaletta on olemassa. Joskus nämä ovat täsmällisiä kaksoiskappaleita kuten 5000 General Admission pääsylippua. Joskus luodut NFTt voivat olla hyvin samankaltaisia vain hiuksenhienoilla eroilla, kuten pääsylippu osoitetulla istumapaikalla. Jossakin tapauksessa luoja luo vain yhden NFTn, joka edustaa erittäin harvinaista asiaa tai esinettä. - -Kaikissa näissä tapauksissa NFTlla on yksilöllinen tunniste (kuten viivakoodi perinteisessä "lipussa"), ja vain yksi omistaja. Painosmäärän määrittely NFTlle on siis teoksen luojan arvioitava ja päätettävä asia. Teoksen tai sisällön luojalla voi olla tarve luoda vain yksi NFT teoksestaan tai syitä luoda tuhansia versioita siitä. Muista, että nämä tiedot ovat kaikki julkisia. - -### Rojaltit {#royalties} - -Jotkut NFTt tilittävät automaattisesti rojalteja luojalle, kun NFT myydään. Konsepti on edelleen kehittyvä, mutta se on jo yksi tehokkaimmista. [EulerBeats Originals](https://eulerbeats.com/) -omistajat ansaitsevat 8% rojaltin joka kerta, kun NFT myydään edelleen. Jotkut alustat kuten [Foundation](https://foundation.app) and [Zora](https://zora.co/), tuottavat myynnistä rojalteja taiteilijoille. - -Kaikki tämä toimii automaattisesti, joten teoksen tai sisällön luoja ansaitsee rojalteja omasta työstään, vaikkapa taiteesta ilman suurempia oheisponnistuksia. Teokset siirtyvät omistajalta toiselle sujuvasti. Tällä hetkellä rojaltien maksu on manuaalista ja epätarkkaa monessakin tapauksessa - monet teoksien tai sisältöjen luojat eivät ansaitse työstään sitä, mikä heidän kuuluisi ansaita. Mikäli NFTin on ohjelmoitu rojalti, sen tilitys toteutuu väistämättä kaupankäynnin yhteydessä. - -## Mihin NFTia voidaan käyttää? {#nft-use-cases} - -Lisätietoja pidemmälle viedyistä käyttötapauksista ja visioista, joihin Ethereum-pohjaisia NFTeita voidaan hyödyntää. - -- [Digitaalinen sisältö](#nfts-for-creators) -- [Pelien sisällä olevat kohteet, asiat ja tavarat (item)](#nft-gaming) -- [Verkkotunnusten nimet](#nft-domains) -- [Fyysiset, reaalimaailman tuotteet](#nft-physical-items) -- [Sijoitukset ja vakuudet](#nfts-and-defi) -- [Tokenporttaus](#tokengating) - - - -### Ansainnan oikeudenmukaisuuden varmistaminen luoville aloille ja sen työntekijöille {#nfts-for-creators} - -Kattavinta NFTien käyttö on digitaalisten sisältöjen toimialalla. Tämä johtuu perinteisen tulonjaon koetusta epäoikeudenmukaisuudesta ko. toimialalla. Sisällön ja teosten tuottajien ansainnan potentiaali häviää nyt käytettävissä oleviin alustoihin. - -Kun taiteilija julkaisee työn sosiaalisessa verkostossa, tuotot ohjautuvat lopulta mainostuloina alustalle. Taitelijat saavat toki näkyvyyttä työlleen, mutta laskuja sillä ei maksa. - -NFTin voima on uudenlaisessa alustataloudessa, jossa teoksen omistajuus pysyy tekijällä ja samalla näkyvyys on taattu. Omistajuus sisältyy itse teokseen. - -Kun sisältöä myydään, ansainta ohjautuu suoraan luojalle. Jos uusi sisällön tai teoksen omistaja myy NFTin, alkuperäinen teoksen luoja saa automaattisesti rojaltit itselleen. Tämä on varmistettu teoksen sisältämässä metadatassa, jota ei voi muokata. Data sisältää alkuperäisen luojan osoitteen. - - -
Tutki, osta tai luo omia NFT-toteutuksia
- - Tutustu NFT-taiteeseen - -
- -#### Copy-paste-ongelma {#nfts-copy-paste} - -Vastustajat tuovat usein esiin argumentin siitä, että NFTit "ovat tyhmiä", koska näyttökaappauksella voit hankkia itsellesi NFT-taidetta. "Katsokaa, nyt minulla on tuo kuva ilmaiseksi!" he naureskelevat. - -Kyllä toki. Mutta tekeekö googlattu kuvaleike Picasson Guernicasta oikeutta taiteilijalle ja sinulle: taiteen ja henkilön tekemän työn arvostukselle? - -Lopulta varsinainen teoksen ja työn arvo määräytyy markkinan mukaan, jolloin on hyvä muistaa oikeudenmukaisuus. Mitä enemmän sisältöä jaetaan, sitä enemmän se myöskin kerää arvostusta. - -Todellisen ja alkuperäisen asian tai teoksen omistamisella tulee olemaan aina enemmän arvoa kuin kopiolla. - - - -### Edistetään pelaamisen mahdollisuuksia {#nft-gaming} - -NFTt kiinnostavat pelien kehittäjiä. NFTt voivat välittää tietoa pelin kohteista (item), ruokkia peli-alaa ja luoda uudenlaisia etuja pelaajille. - -Tavanomaisissa peleissä voit jo nyt ostaa asioita tai kohteita käyttääksesi niitä pelissä. NFT-pelikohteen tai -asian voit jälleenmyydä pelin jälkeen ja saada käyttämäsi rahat takaisin. Saatatpa jopa ansaita lisää, jos kohteesta on tullut aiempaa halutumpi. - -Pelin kehittäjien toimiessa NFTin liikkeellelaskijana, jostakin kohteesta tai tavarasta, he voisivat ansaita rojaltin joka kerta, kun kohde jälleenmyydään avoimella markkinalla. Näin luodaan tahoja hyödyttävä liiketoimintamalli, jossa sekä pelaajat että pelien kehittäjät voivat ansaita toissijaisista NFT-markkinoista. - -Tämä johtaa siihen, että mikäli peliä ei ylläpidettäisi, hankkimasi keräilykohteet säilyvät omistuksessasi. - -Pelin kohteet pysyvät olemassa, vaikka itse peli päättyisi. Vaikka peliä ei enää pidettäisi yllä, sinun kohteesi ovat aina sinun hallinnassasi. Tämä tarkoittaa, että pelin sisältämistä esineistä tulee digitaalisia muistoesineitä ja niiden arvo on pelin ulkopuolella. - -Decentraland, virtuaalinen reality-peli, jossa NFTt edustavat tontteja tai kiinteistöjä, joita voit käyttää tarpeesi mukaan. - - -
Tutustu Ethereum-peleihin, joita NFTt boostaavat...
- - Tutki NFT-pelejä - -
- - - -### Kuinka teet Ethereum-osoitteesta mieleenpainuvamman {#nft-domains} - -Ethereum Name Service (ENS) käyttää NFTa tuottaakseen sinulle Ethereum-osoitteen, joka on helpompi muistaa: `mywallet.eth`. Tämä tarkoittaa, että voit pyytää jotakuta lähettämään sinut ETH `mywallet.eth` pikemminkin kuin `0x123456789.....`. - -Tämä toimii samalla tavalla kuin sivuston verkkotunnus, joka tekee IP-osoitteesta mieleenpainuvamman. Ja kuten verkkotunnuksilla, ENSlla on arvo, joka perustuu pituuteen ja merkityksellisyyteen. ENSn avulla et tarvitse verkkotunnusta omistuksen siirtämiseeen. Sen sijaan voit käydä kauppaa ENS-nimillä NFT-markkinalla. - -ENS-nimesi voi: - -- Vastaanottaa kryptoja ja muita NFTta. -- Osoittaa hajautetuille sivustoille kuten [ethereum.eth](https://ethereum.eth.link). [Lue lisää sivustosi hajauttamisesta](https://docs.ipfs.io/how-to/websites-on-ipfs/link-a-domain/#domain-name-service-dns) -- Tallentaa kaikki halutut tiedot mukaanlukien profiilitiedot kuten sähköpostisoitteet ja Twitter-käyttäjätiedot. - - - -### Fyysiset, reaalimaailman tuotteet {#nft-physical-items} - -Fyysisten esineiden muuttaminen virtuaalisiksi rahakkeiksi ei ole vielä kehittynyt samoin kuin niiden digitaaliset vastineet. On olemassa runsaasti hankkeita, jotka tutkivat esimerkiksi kiinteistöjen, one-of-a-kind -muotiesineiden ja vastaavien uniikkien tuotteiden virtualisoimista rahakkeiksi. - -Koska NFTt ovat pääasiassa omistajuus- tai uniikkiustodisteita, voit jonakin päivänä ostaa auton tai kodin käyttämällä Ethereitä ja saada omistukseen liittyvät asiakirjat NFTna vastineeksi (samassa siirtotapahtumassa). Kun digitalisaatio edistyy, voi olla tavallista, että Ethereum-lompakkosi on kotisi avain, joka avaa lukituksen käyttämällä omistajuustodistetta koodina avaukselle. - -Koska NFTn takana voi olla arvokkaita omaisuuseriä, kuten asuntoja tai autoja, voit käyttää sitä virtuaalilainojen hankkimiseen. Tämä hyödyttää erityisesti niitä, jotka eivät ole kryptovaluutta-rikkaita, mutta omistavat fyysisiä omaisuuseriä. [Lue lisää DeFista](/defi/) - - - -### NFT ja DeFi {#nfts-and-defi} - -NFT-maailma ja [hajautettu rahoitus (DeFi)](/defi/) hakevat synergiaa mielenkiintoisilla tavoilla. - -#### NFT-vakuudelliset lainat {#nft-backed-loans} - -On olemassa DeFi-sovelluksia, joiden avulla voit lainata rahaa vakuuden avulla. Esimerkiksi 10 ETH vakuudeksi voit lainata 5000 DAI ([vakaata kryptovaluuttaa](/stablecoins/)). Tämä takaa, että lainanantaja saa kryptonsa takaisin – jos lainanottaja ei maksa takaisin DAIta, vakuus lähetetään lainanantajalle. Kaikilla ei kuitenkaan ole tarpeeksi kryptoja käyttääkseen niitä vakuutena. - -Hankkeet alkavat tutkia NFTn käyttöä vakuutena. Kuvittele ostavasi harvinainen CryptoPunk NFTn takaisin - niiden arvo voi nousta $ 1000 päivässä. Käyttämällä tätä vakuutena, voit saada lainan samoilla säännöillä. Jos et maksa lainaa takaisin DAIna, omistamasi CryptoPunk lähetetään lainanantajalle vastineena tai vakuutena takaisinmaksusta. Käytäntö voisi toimia minkä tahansa kanssa, jonka muutat NFT-rahakkeeksi. - -Tämä ei ole ollenkaan vaikeaa Ethereumissa, koska molemmissa (NFT ja DeFi) on taustalla sama järjestelmäinfrasturktuuri. - -#### Osittainen omistajuus {#fractional-ownership} - -NFT-luojat voivat myös luoda osakkeita NFTlle. Sijoittajat ja fanit voivat hankkia osuuksia yhdestä NFTstä ilman, että heidän tarvitsee ostaa koko kohdetta. Tämä lisää mahdollisuuksia NFT-luojille ja keräilijöille. - -- NFTn osuuksia voidaan kaupata vaihtomarkkinoilla [DEXt](/defi/#dex) kuten Uniswap, eikä vain [NFT-markkinoilla](/dapps?category=collectibles). Se merkitsee enemmän ostajia ja myyjiä. -- NFTn kokonaishinta voidaan määritellä sen osuuksien perusteella. -- Sinulla on enemmän mahdollisuuksia omistaa ja hyötyä kohteistä, joista välität. On vaikeampaa hinnoitella NFTsta luopuminen. - -Tämä on vielä kokeellista, mutta voit oppia NFTn murto-osan omistamisesta seuraavilla vaihtotoreilla: - -- [NIFTEX](https://landing.niftex.com/) -- [NFTX](https://gallery.nftx.org/) - -Teoriassa tämä avaisi mahdollisuuden omistaa esimerkiksi osuus Picassoa. Sinusta tulisi osuudenomistaja Picasso NFTssa, jolloin sinulla on vaikutusvaltaa esimerkiksi tulonjakopäätöksiin. On todennäköistä että jonakin päivänä omistat murto-osan NFTsta ja hajautettu autonominen organisaatio (DAO) hallinnoi omaisuutta. - -Ethereum myötävaikuttaa vahvasti näihin organisaatioihin, jotka antavat tuntemattomille vaikkapa globaaleille osuuksienomistajille mahdollisuuden koordinoida toimintaansa ilman, että heidän tarvitsee välttämättä luottaa muihin ihmisiin. Tämä johtuu siitä, että pienintäkään kolikkoa ei voida käyttää ilman ryhmän hyväksyntää. - -Kuten mainittua, nämä ominaisuudet ovat kehittyviä. NFTt, DAOt ja muut rahakkeet ovat eri kehitysvaiheissa. Infrastruktuuri on jo olemassa ja toimii sujuvasti yhdessä, koska he puhuvat samaa kieltä: Ethereumia. Seuraa tilannetta. - -[Lisää DAOsta](/dao/) - -### Aitoustodistukset {#certificates} - -Yritykset, jotka tarjoavat väärennettyjä yliopistotodistuksia kuuluvat miljardibisnekseen, jota NFTt voivat auttaa torjumaan. NFTt voivat olla turvallinen ja nopea tapa varmentaa henkilön tutkintotiedot. - -[Etelä-Koreassa eräs yliopisto myöntää tutkintotodistuksia jo NFTna](https://forkast.news/headlines/south-korea-nfts-graduates-hoseo/), siinä toivossa, että NFTt parantavat hallinnollisten palvelujen saatavuutta ja estävät tutkintotodistusten väärentämisen. [Trinity Business School (TBS) Irlannissa suunnittelee NFT-tarjontaa vuodesta 2023 alkaen](https://trinitynews.ie/2022/04/business-school-to-offer-degree-nfts/). - - - -### Tokenporttaus {#tokengating} - -Tokenporttaus on tapa rajoittaa pääsyä johonkin ja NFTt ovat keinona avata pääsy. Käytön laajuus ja käyttötapa voivat vaihdella huomattavasti alustakohtaisesti, mutta suosittuja käyttötapauksia ovat yksityischatit ja e-commerce-tuotteet. - -Alusta, joka tokenporttaa, pyytää sinua luomaan yhteyden lompakollasi, jotta voit osoittaa vaaditun NFTn omistuksen. Jos sinulla on vaadittu NFT, pääsy hyväksytään. Jos taas ei ole, jäät "portille". NFTt ovat ainutlaatuisuuden vuoksi hyvä toteutustapa – et voi saada haluamaasi valeomistajuudella. - -Koska NFTt ovat Ethereumia, niitä voidaan käyttää tokenporttaukseen millä tahansa alustalla, joka ottaa NFTt käyttöön. Yksi omistamasi NFT voi siis avata pääsyn useisiin sisältöihin, yksityisiin chat-palveluihin ja eksklusiivisiin tuotteisiin eri sivustoilla ja sovelluksissa. - -Jos NFTn luomisessa ja jakamisessa on kyse yhteisö-sukupolvesta tai yhteisö-digitalisoinnista, tokenporttaamisessa on kyse yhteisö-huolenpidosta. On nähtävissä, että NFTitä käytetään enemmänkin jäsenyyden tai lojaalisuuden merkkinä - mainio tapa jakaa myös sen mukanaan tuomat palkkiot. - -#### Esimerkkejä: - -- [Collab.land](https://collab.land/) tokenporttaa Discord chat-palvelimet tai Telegram-ryhmät -- [Unlock protocol](https://unlock-protocol.com/) on protokolla tokenporttausta varten -- [Shopify](https://help.shopify.com/en/manual/products/digital-service-product/nfts) on kasvava lista sovelluksia, joiden avulla kauppiaat voivat tokenportata tuotteita ja alennuksia. - - - -## Ethereum ja NFTt (non-fungible-token) {#ethereum-and-nfts} - -Ethereum mahdollistaa NFTien toiminnan useista hyvistä syistä: - -- Transaktioiden historia ja rahakkeiden metatiedot ovat julkisesti todennettavissa - on helppo todistaa omistushistoria. -- Kun transaktio on vahvistettu, on melkein mahdotonta manipuloida tietoja omistuksen väärentämiseksi. -- Kaupankäynti NFTlla tapahtuu kahdenvälisesti, eikä siihen tarvita alustoja, jotka voivat ottaa huomattavia palkkioita korvauksena. -- Kaikki Ethereum tuotteet hyödyntävät samaa "backendiä". Toisin sanoen Ethereum-tuotteet ymmärtävät helposti toisiaan - NFTt ovat käytettävissä läpi tuotevalikoiman. Voit sujuvasti ostaa NFTn tuotteesta ja myydä sen toista NFTia vastaan. Sisällöntuottajana voit listata NFTt useista tuotteista samaan aikaan – jokaisella tuotteella on näin ajantasainen omistajuustieto. -- Ethereum ei koskaan "totaalisesti kaadu", joten rahakkeesi ovat myytävissä kaiken aikaan. - -## NFTien ympäristövaikutukset {#environmental-impact-nfts} - -NFTiden luonti ja siirtäminen ovat vain Ethereumin liiketoimia – NFTn lyöminen (minttaus), ostaminen, vaihtaminen tai kanssakäyminen NFTn kanssa ei suoraan kuluta energiaa. [The Mergen](/roadmap/merge) jälkeen Ethereumista on tullut matalaenerginen lohkoketju, mikä tarkoittaa, että sen ympäristövaikutukset ovat vähäisiä. - -[Lisätietoa Ethereumin energiankulutuksesta](/energy-consumption/). - -### Älä syytä NFT:itä {#nft-qualities} - -Koko NFT-ekosysteemi toimii, koska Ethereum on hajautettu ja turvallinen. - -Hajautuksen merkitys on siinä, että sinä ja muut voivat vahvistaa omistavansa jotakin. Kaikki tämä niin, ettei tarvitse luottaa kolmansiin osapuoliin tai myöntää heille oikeuksia. Hehän voivat määrätä omia sääntöjään halutessaan. Tämä tarkoittaa myös että NFTisi on käytettävissä monilla markkinoilla ja tuotekategorioissa. - -Kukaan ei voi "copy-pastettaa" NFTsi tai varastaa sitä. - -Nämä Ethereumin ominaisuudet tekevät uniikkien asioiden tai kohteiden digitaalisen omistamisen mahdolliseksi ja saat oikeudenmukaisen hinnan tuottamallesi sisällölle. Ethereum suojaa digitaalisia varantoja käyttämällä konseuskseen ['proof-of-stake -mekanismia'](/developers/docs/consensus-mechanisms/pos). Edellinen on vähähiilinen menetelmä sen määrittämiseksi, kuka voi lisätä lohkon tapahtumia ketjuun. Sitä pidetään varmempana kuin energiaintensiivistä vaihtoehtoa, ['proof-of-work -mekanismia'](/developers/docs/consensus-mechanisms/pow). NFTt liitettiin usein korkeaan energiankulutukseen, koska aiemmin Ethereum käytti varmistamiseen proof-of-work -mekanismia. Tämä ei enää pidä paikkaansa. - -#### NFTn lyöminen {#minting-nfts} - -Kun lyöt (mint) NFTn, tapahtuu muutamia asioita: - -- NFT täytyy olla varmistettuna omaisuuseränä lohkoketjussa. -- NFTn omistajan tilin saldo pitää olla päivitetty niin, että omaisuuserä sisältyy siihen. Tämä mahdollistaa kaupankäynnin jatkossa tai omistajuuden vahvistamisen. -- Transaktiot, jotka vahvistavat yllä olevat vaiheet, lisätään lohkoon ja ikuistetaan ketjun osaksi. -- Lohko tulee vahvistaa kaikkien verkoston osallistujien toimesta "oikeaksi". Tämä yhteisymmärrys poistaa välikäsien tarpeen, koska verkosto on yhtä mieltä siitä, että NFT on olemassa ja kuuluu sinulle. Se sijaitsee ketjussa, josta kuka tahansa voi asian varmistaa. Tällä tavoin Ethereum auttaa NFT-luojia saavuttamaan ansainnan oikeudenmukaisuutta. - -Lohkojen tuottajat ja varmentajat hoitavat kaikki nämä tehtävät. Ehdottajat lisäävät NFT-tapahtumasi lohkoketjuun ja lähettävät sen verkostolle. Varmentajat tarkastavat, että tapahtuma on validi ja lisäävät sen tietokantoihinsa. Kryptomaailma käyttää runsaasti kannustimia varmistamaan sen, että varmentajat toimivat eettisesti. Muuten kuka tahansa voisi väittää omistavansa NFTn, jonka juuri löit ja petollisesti siirtää sen omiin nimiinsä. - -#### NFTn turvallisuus {#nft-security} - -Ethereumin turvallisuus syntyy hajautetusta sijoittamisesta siihen. Järjestelmään on sisäänrakennettuna taloudellinen puolustus pahansuopia toimintoja vastaan, joten Ethereumia ei voi peukaloida. Tämä tekee NFTt mahdolliseksi. Kun NFT-tapahtumasi sisältävä lohko on valmis, hyökkääjälle maksaisi miljoonia ethereitä kyetä muuttamaan sitä. Ethereum-softat tunnistaisivat välittömästi epärehellisen NFTn muokkaus tai kaappausyrityksen ja vihamielistä toimijaa rangaistaisiin taloudellisesti sekä poistamalla hänet yhteisöstä. - -Turvallisuushaasteet, jotka liittyvät NFTeihin, ovat monesti kalasteluyrityksiä, älysopimuksen haavoittuvuuksia tai käyttäjien virheitä (kuten yksityisavaimen paljastaminen). Lompakkojen suojaus on keskeistä NFTen omistajille. - - - Lisää tietoturvasta ja suojauksesta - - -## Rakennettu NFTien kanssa {#build-with-nfts} - -Useimmat NFTt on rakennettu johdonmukaisesti [ERC-721](/developers/docs/standards/tokens/erc-721/)-standardilla. On kuitenkin myös muita standardeja, joihin saatat haluta tutustua. [ERC-1155](/developers/docs/standards/tokens/erc-1155/)-standardi mahdollistaa osittain korvattavissa olevat rahakkeet, jotka ovat hyödyllisiä esimerkiksi pelaamisessa. Viimeaikoina [EIP-2309](https://eips.ethereum.org/EIPS/eip-2309)-standardia on ehdotettu louhinnan huomattavaan tehostamiseen. Tämä standardi mahdollistaa niin monien rahakkeiden lyömistä (mint) kuin haluat yhdessä transaktiossa! - -## Lisää luettavaa {#further-reading} - -- [Crypto art data](https://cryptoart.io/data) – Richard Chen, päivitetään automaattisesti -- [OpenSea: The NFT Bible – OpenSea: NFT-Raamattu](https://opensea.io/blog/guides/non-fungible-tokens/) – _Devin Fizner, 10 tammikuu 2020_ -- [A beginner's guide to NFTs – Aloittelijan opas NFT-maailmaan](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, January 2020_ -- [Kaikki, mitä sinun tarvitsee tietää metaversesta](https://foundation.app/blog/enter-the-metaverse) – _Foundation team, foundation.app_ -- ["CryptoArtists" eivät vahingoita planeettaa](https://medium.com/superrare/no-cryptoartists-arent-harming-the-planet-43182f72fc61) -- [Ethereumin energiankulutus](/energy-consumption/) -- [Ethereum NFT APIt](https://www.alchemy.com/list-of/nft-apis-on-ethereum) – _Alchemy_ - - diff --git a/src/content/translations/fil/dao/index.md b/src/content/translations/fil/dao/index.md deleted file mode 100644 index 84d0c640849..00000000000 --- a/src/content/translations/fil/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: Mga decentralized autonomous organization (mga DAO) -description: Pangkalahatang-ideya ng mga DAO sa Ethereum -lang: fil -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: Representasyon ng botohan ng DAO sa isang panukala. -summaryPoint1: Mga komunidad ng mga miyembro na walang sentralisadong pamumuno. -summaryPoint2: Isang ligtas na paraan para makipag-collaborate sa mga hindi kakilala sa internet. -summaryPoint3: Isang lugar kung saan ligtas magbigay ng pondo para sa partikular na layunin. ---- - -## Ano ang mga DAO? {#what-are-daos} - -Ang DAO ay isang collectively-owned, blockchain-governed na organisasyon na naglalayong makamit ang iisang layunin. - -Ang mga DAO ay nagbibigay-daan sa atin na makipagtulungan sa mga kapwa natin sa buong mundo nang hindi kinakailangang umasa sa isang mapagmalasakit na pinuno para pamahalaan ang pera o operasyon. Walang CEO na gagastos sa pondo nang basta-basta o CFO na magmamanipula ng mga libro. Sa halip, ang mga blockchain-based na panuntunan na inilagay sa code ang nagtatakda sa kung paano gumagana ang organisasyon at paano ginagastos ang pondo. - -May mga built-in treasury ang mga ito na hindi maa-access ng kahit sino kung walang pahintulot mula sa grupo. Nagpapasya sa pamamagitan ng mga panukala at botohan para tiyaking may boses ang lahat sa organisasyon, at transparent na nangyayari ang lahat on-chain. - -## Bakit kailangan natin ang mga DAO? {#why-dao} - -Sa pagsisimula ng organisasyon kasama ng isang tao kung saan maglalabas ng pondo at pera, kailangang magtiwala nang husto sa mga makakatrabaho mo. Ngunit mahirap magtiwala sa isang taong nakausap mo lang sa internet. Sa pamamagitan ng mga DAO, hindi mo na kailangang magtiwala sa kahit sino sa grupo, kundi sa code lang mismo ng DAO, na 100% transparent at mave-verify ng kahit sino. - -Magbubukas ito ng maraming bagong oportunidad para sa global na collaboration at koordinasyon. - -### Paghahambing {#dao-comparison} - -| DAO | Isang tradisyonal na organisasyon | -| --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | -| Karaniwang pantay, at ganap na demokratiko. | Karaniwang may hirarkiya. | -| Kailangang magbotohan ang mga miyembro para ipatupad ang anumang pagbabago. | Depende sa structure, maaaring hilingin ang mga pagbabago mula sa iisang panig, o maaaring magkaroon ng botohan. | -| Bibilangin ang mga boto, at awtomatikong ipapatupad ang resulta kahit walang pinagkakatiwalaang intermediary. | Kung papayagan ang botohan, internal na binibilang ang mga boto, at dapat mano-manong pangasiwaan ang resulta ng botohan. | -| Awtomatikong decentralized ang pangangasiwa sa mga serbisyong iniaalok (halimbawa, pamamahagi ng philantropic funds). | Kailangang pangasiwaan ng tao, o ng centrally controlled automation, maaaring mamanipula. | -| Transparent at ganap na pampubliko ang lahat ng aktibidad. | Karaniwang pribado at hindi ipinapakita sa publiko ang aktibidad. | - -### Mga halimbawa ng DAO {#dao-examples} - -Upang mas madali itong maunawaan, narito ang ilang halimbawa kung paano maaaring gamitin ang DAO: - -- Charity – puwede kang tumanggap ng donasyon mula sa kahit sino sa mundo at bumoto sa kung aling mga layunin ang susuportahan. -- Collective ownership – puwede kang bumili ng mga physical at digital asset at puwedeng magbotohan ang mga miyembro sa kung paano gagamitin ang mga ito. -- Mga venture at grant – puwede kang bumuo ng venture fund kung saan pinagsama-sama ang kapital para sa investment at magbobotohan para pumili ng mga venture na susuportahan. Ang perang ibinayad ay maaaring i-redistribute sa mga miyembro ng DAO kalaunan. - -## Paano gumagana ang mga DAO? {#how-daos-work} - -Ang pundasyon ng isang DAO ay ang smart contract nito, na nagtatakda ng mga panuntunan ng organisasyon at nagpapanatili ng treasury ng grupo. Kapag live na ang kontrata sa Ethereum, walang sinumang makakapagbago ng mga panuntunan maliban sa pamamagitan ng boto. Kung may magtatangkang gumawa ng isang bagay na hindi saklaw ng mga panuntunan at logic sa code, hindi ito maisasagawa. At dahil itinatakda rin ng smart contract ang treasury, wala ring sinumang puwedeng gumastos ng pera nang walang pahintulot ng grupo. Ibig sabihin nito, hindi nangangailangan ang mga DAO ng isang sentral na awtoridad. Sa halip, ang grupo ay nagdedesisyon nang sama-sama, at ang mga pagbabayad ay awtomatikong pinapahintulutan kapag pumasa ang mga boto. - -Posible ito dahil hindi mababago ang mga smart contract kapag live na ang mga ito sa Ethereum. Hindi mo mae-edit nang basta-basta ang code (ang mga panuntunan ng DAO) nang hindi napapansin ng mga tao dahil ang lahat ay pampubliko. - - - Higit pa sa mga matalinong kontrata - - -## Ethereum at Mga DAO {#ethereum-and-daos} - -Ang Ethereum ang angkop na pundasyon para sa mga DAO dahil sa mga sumusunod: - -- Ipinapamahagi at napatunayan na ang sariling consensus ng Ethereum, kung kaya, mapagkakatiwalaan ng mga organisasyon ang network. -- Hindi na mababago ang smart contract code kapag live na ito, kahit ng mga may-ari nito. Dahil dito, tumatakbo ang DAO ayon sa mga panuntunang itinakda para dito. -- Nakakapagpadala/nakakatanggap ng pondo ang mga smart contract. Kung wala nito, kakailanganin mo ng mapagkakatiwalaang intermediary para pamahalaan ang pondo ng grupo. -- Napatunayan nang mas collaborative kaysa kompetitibo ang komunidad ng Ethereum, kung kaya, mabilis na lumalabas ang pinakamagagandang kagawian at mga support system. - -## Pamamahala ng DAO {#dao-governance} - -Maraming dapat isaalang-alang kapag namamahala ng DAO, tulad ng proseso ng pagboto at pagpapanukala. - -### Delegasyon {#governance-delegation} - -Ang delegasyon ay parang bersyon ng DAO ng representative democracy. Dine-delegate ng mga may-ari ng token ang kanilang mga boto sa mga user na nagpresenta ng kanilang sarili at nakatuon sa pangangalaga sa protocol at sa pananatiling updated. - -#### Isang kilalang halimbawa {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) – Maaaring i-delegate ng mga may-ari ng ENS ang kanilang mga boto sa mga aktibong miyembro ng komunidad upang katawanin sila. - -### Awtomatikong pamamahala ng transaksyon {#governance-example} - -Sa mga DAO, ang mga transaksyon ay awtomatikong isasagawa kung bumoto ng pabor ang isang partikular na bilang ng mga miyembro. - -#### Isang kilalang halimbawa {#governance-example} - -[Nouns](https://nouns.wtf) – Sa Nouns DAO, awtomatikong isasagawa ang transaksyon kung naabot ang isang partikular na bilang ng mga boto, at marami sa mga ito ang bumoto ng pabor, basta't hindi babaligtarin ng mga founder ang pasya. - -### Multisig na pamamahala {#governance-example} - -Bagama't may libo-libong miyembrong bumoboto sa mga DAO, puwedeng itabi ang pondo sa wallet na pinaghahatian ng 5-20 akitbong miyembro ng komunidad na pinagkakatiwalaan at karaniwang doxxed (mga pampublikong indibidwal na kilala ng komunidad). Matapos ang botohan, ipapatupad ng mga multisig signer ang kagustuhan ng komunidad. - -## Mga batas sa DAO {#dao-laws} - -Noong 1977, nilikha sa Wyoming ang LLC, na nagpoprotekta sa mga negosyante at nagbibigay limitasyon sa kanilang pananagutan. Kamakailan lang, ipinanukala rito ang batas sa DAO na nagtatakda ng legal na status para sa mga DAO. Sa kasalukuyan, may mga batas sa DAO ang Wyoming, Vermont, at Virgin Islands. - -#### Isang kilalang halimbawa {#law-example} - -[CityDAO](https://citydao.io) – Ginamit ng CityDAO ang batas sa DAO ng Wyoming para bumili ng 40 acres ng lupa malapit sa Yellowstone National Park. - -## Membership sa DAO {#dao-membership} - -May iba't ibang klase ng membership sa DAO. Itinatakda ng membership ang proseso ng botohan at ang iba pang mahahalagang aspeto ng DAO. - -### Token-based membership {#token-based-membership} - -Karaniwang ganap na walang pahintulot, depende sa token na ginamit. Maaaring i-trade nang walang pahintulot sa isang decentralized exchange ang karamihan sa mga governance token na ito. Kailangan namang kitain ang iba sa pamamagitan ng pagbibigay ng liquidity o iba pang 'patunay ng gawain'. Sa anumang paraan, makakaboto ka basta't mayroon kang mga token grant. - -_Karaniwang ginagamit para pamahalaan ang mga malawak at decentralized na protocol at/o mga token mismo._ - -#### Isang kilalang halimbawa {#token-example} - -[MakerDAO](https://makerdao.com) – Ang token ng MakerDAO na MKR ay malawakang makukuha sa mga decentralized exchange at puwedeng magbayad ang sinuman para magkaroon ng kapangyarihang bumoto para sa patutunguhan ng protocol ng Maker. - -### Membership na token-based {#share-based-membership} - -Sa mga share-based DAO, mas maraming pahintulot, pero medyo open pa rin ang mga ito. Ang sinumang interesadong maging miyembro ay maaaring magsumite ng proposal upang sumali sa DAO, at karaniwang nagbibigay ng tribute na may halaga, gaya ng mga token o gawa. Ang mga share ay nagbibigay ng kapangyarihan para bumoto nang direkta at ng pagmamay-ari. Puwede umalis ang mga miyembro kahit kailan at ibibigay sa kanila ang karampatang share nila ng treasury. - -_Karaniwan itong gamit sa mga organisasyon tulad ng mga charity, worker collective, at investment club. Maaari din nitong pamahalaan ang mga protocol at token._ - -#### Isang kilalang halimbawa {#share-example} - -[MolochDAO](http://molochdao.com/) – Ang MolochDAO ay nakatuon sa pagpopondo ng mga proyekto sa Ethereum. Kailangan ng grupo ng proposal para maging miyembro upang malaman nito kung may sapat kang kaalaman at kapital para magpasya tungkol sa mga potensyal na grantee. Hindi ka puwedeng bumili lang ng access sa DAO sa open market. - -### Membership na Reputation-based {#reputation-based-membership} - -Ang reputasyon ay nagpapakita ng patunay ng partisipasyon at nagbibigay ng kapangyarihang bumoto sa DAO. Hindi tulad ng token o share-based membership, hindi inililipat ng mga reputation-based DAO ang pagmamay-ari sa mga contributor. Hindi mabibili, mata-transfer, o made-delegate ang reputasyon. Dapat makuha ng mga miyembro ng DAO ang reputasyon sa pamamagitan ng pakikilahok. Hindi kailangan ng pahintulot sa on-chain na pagboto at magagawa ng mga nagnanais maging miyembro na magsumite ng mga proposal para makasali sa DAO at humiling na makatanggap ng reputasyon at mga token kapalit ng kanilang mga kontribusyon. - -_Karaniwan itong ginagamit para sa decentralized development at pamamahala ng mga protocol at dapp, pati na rin sa iba't ibang organisasyon tulad ng mga charity, worker collective, at investment club._ - -#### Isang kilalang halimbawa {#reputation-example} - -[DXdao](https://DXdao.eth.link) – Ang DXdao ay isang global sovereign collective na bumubuo at namamahala ng mga decentralized na protocol at application mula pa noong 2019. Ginagamit nito ang reputation-based governance at holographic consensus upang isaayos at pamahalaan ang mga pondo. Ibig sabihin nito, walang makakapagbayad para baguhin ang patutunguhan nito. - -## Sumali/magsimula ng DAO {#join-start-a-dao} - -### Sumali sa DAO {#join-a-dao} - -- [Mga Dao sa komunidad ng Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [Listahan ng Mga DAO ng DAOHaus](https://app.daohaus.club/explore) -- [Listahan ng Mga DAO ng Tally.xyz](https://www.tally.xyz) - -### Magsimula ng DAO {#start-a-dao} - -- [Mag-summon ng DAO gamit ang DAOHaus](https://app.daohaus.club/summon) -- [Magsimula ng Governor DAO gamit ang Tally](https://www.tally.xyz/add-a-dao) -- [Gumawa ng DAO na pinapagana ng Aragon](https://aragon.org/product) -- [Magsimula ng colony](https://colony.io/) -- [Gumawa ng DAO gamit ang holographic consensus ng DAOstack](https://alchemy.daostack.io/daos/create) - -## Karagdagang pagbabasa {#further-reading} - -### Mga artikulo ng DAO {#dao-articles} - -- [Ano ang DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) -- [Handbook ng DAO](https://daohandbook.xyz) -- [House of DAOs](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) -- [Ano and DAO at para saan ito?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) -- [Paaano Magsimula ng DAO na Pinapagana ng Digital na Komunidad](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) -- [Ano ang DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) -- [Ano ang Holographic Consensus?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) -- [Ang mga DAO ay hindi mga korporasyon: kung saan mahalaga ang decentralization sa mga autonomous na organisasyon, gawa ni Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) -- [Mga DAO, DAC, DA at Iba pa: Isang Hindi Kumpletong Gabay sa Terminolohiya](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Ethereum Blog](https://blog.ethereum.org) - -### Videos {#videos} - -- [Ano ang DAO sa crypto?](https://youtu.be/KHm0uUPqmVE) -- [Makakapagtayo ba ng Lungsod ang DAO?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/src/content/translations/fil/decentralized-identity/index.md b/src/content/translations/fil/decentralized-identity/index.md deleted file mode 100644 index 6f7b42b0266..00000000000 --- a/src/content/translations/fil/decentralized-identity/index.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: Decentralized na identity -description: Ano ang decentralized identity at bakit ito importante? -lang: fil -template: use-cases -emoji: ":id:" -sidebarDepth: 2 -image: ../../../../assets/eth-gif-cat.png -summaryPoint1: Ang mga tradisyonal na identity system ay nakasentro sa pagbibigay, pagpapanatili at pagkontrol ng iyong mga identifier. -summaryPoint2: Inaalis ng decentralized identity ang pagdepende sa mga centralized na third party. -summaryPoint3: Dahil sa crypto, mayroon na ulit ang mga user ng mga tool para ibigay, pangasiwaan at kontrolin ang sarili nilang mga identifier at attestation. ---- - -Sinusuportahan ng identity ang halos lahat ng aspeto ng buhay mo ngayon. Sa paggamit ng mga serbisyo online, pagbubukas ng bank account, pagboto sa halalan, pagbili ng property, at paghahanap ng trabaho, kailangan mong patunayan ang iyong identity. - -Gayunpaman, matagal nang umaasa ang mga tradisyonal na identity management system sa mga centralized intermediary na nagbibigay, nangangasiwa, at kumokontrol sa iyong mga identifier at [attestation](#what-are-attestations). Ibig sabihin ito ay hindi mo makokontrol ang impormasyong nauugnay sa iyong identity o hindi ka makakapagpasya sa kung sino ang may access sa personally identifiable information (PII) at kung gaano kalawak ang access ng mga partidong ito. - -Para maayos ang mga problemang ito, mayroon kaming mga decentralized identity system na ginawa sa mga pampublikong blockchain tulad ng Ethereum. Sa tulong ng decentralized identity, mapapamahalaan ng mga indibidwal ang kanilang impormasyong nauugnay sa identity. Gamit ang mga decentralized identity solution, maaari _kang_ gumawa ng mga identifier at make-claim at mapapangasiwaan mo ang iyong mga attestation nang hindi nakadepende sa mga central authority, tulad ng mga service provider at ng pamahalaan. - -## Ano ang identity? {#what-is-identity} - -Tumutukoy ang identity sa pagkakakilala ng isang indibidwal sa kanyang sarili, ayon sa mga natatanging katangian. Tumutukoy ang identity sa pagiging isang _indibidwal_, ibig sabihin, isang partikular na tao. Ang identity ay maaari ding tumukoy sa iba pang entidad na hindi tao, gaya ng isang organisasyon o awtoridad. - -## Ano ang mga identifier? {#what-are-identifiers} - -Ang identifier ay impormasyong nagsisilbing pointer sa partikular na identity o mga identity. Kasama sa mga karaniwang identifier ang: - -- Pangalan -- Social security number/tax ID number -- Numero ng cellphone -- Petsa at lugar ng kapanganakan -- Mga kredensyal sa digital identification, hal., email address, username, avatar - -Ang mga tradisyonal na halimbawang ito ng mga identifier ay ibinibigay, pinapangasiwaan at kinokontrol ng mga central entity. Kailangan mo ng pahintulot mula sa iyong pamahalaan para palitan ang pangalan mo o mula sa isang social media platform para palitan ang handle mo. - -## Ano ang mga attestiation? {#what-are-attestations} - -Ang attestation ay isang claim na ginawa ng isang entity tungkol sa isa pang entity. Kung nakatira ka sa Estados Unidos, ang lisensya sa pagmamaneho na ibinigay sa iyo ng Department of Motor Vehicles (isang entidad) ay nagpapatunay na ikaw (isa pang entidad) ay legal na pinapayagang magmaneho ng kotse. - -Magkaiba ang mga attestation at mga identifier. Ang attestation ay _may_ mga identifier para tumukoy ng partikular na identity, at gumagawa ng claim tungkol sa isang attribute na nauugnay sa identity na ito. Kung kaya, may mga identifier ang iyong lisensya sa pagmamaneho (pangalan, petsa ng kapanganakan, address) ngunit ito rin ang pagpapatunay tungkol sa iyong legal na karapatang magmaneho. - -### Ano ang mga decentralized identifier? {#what-are-decentralized-identifiers} - -Ang mga tradisyonal na identifier tulad ng iyong legal na pangalan o email address ay umaasa sa mga third party—mga pamahalaan at email provider. Naiiba ang decentralized identifiers (DIDs)—hindi ibinibigay, pinapamahalaan, o kinokontrol ang mga ito ng anumang sentral na entity. - -Ang mga decentralized identifier ay ibinibigay, pinapangasiwaan, at kinokontrol ng mga indibidwal. Ang [Ethereum account](/developers/docs/accounts/) ay halimbawa ng isang decentralized identifier. Maaari kang gumawa ng mga account hangga't gusto mo nang hindi humihingi ng pahintulot ng kahit sino at nang hindi kinakailangang i-store ang mga ito sa isang sentral na registry. - -Ang mga decentralized identifier ay sino-store sa mga distributed ledger (blockchain) o peer-to-peer network. Dahil dito, ang decentralized identifiers (DIDs) ay [walang katulad sa mundo, nareresolba at may high availability, at mave-verify sa pamamagitan ng cryptography](https://w3c-ccg.github.io/did-primer/). Maaaring iugnay ang decentralized identifier sa iba't ibang entity, kasama na ang mga tao, organisasyon, o mga institusyon ng pamahalaan. - -## Paano naging posible ang mga decentralized identifier? {#what-makes-decentralized-identifiers-possible} - -### 1. Public Key Infrastructure (PKI) {#public-key-infrastructure} - -Ang public-key infrastructure (PKI) ay isang hakbang para sa seguridad ng impormasyon na bumubuo ng [pampublikong key](/glossary/#public-key) at [ pribadong key](/glossary/#private-key) para sa isang entity. Ang public-key cryptography ay ginagamit sa mga blockchain network upang patunayan ang identity ng user at patunayan ang pagmamay-ari sa mga digital asset. - -May pampubliko at pribadong key ang ilang decentralized identifier, tulad ng Ethereum account. Tinutukoy ng pampublikong key ang controller ng account, habang magagawa ng mga pribadong key na mag-sign at mag-decrypt ng mga mensahe para sa account na ito. Ang public key insfrastructure (PKI) ay nagbibigay ng mga patunay na kinakailangan upang i-authenticate ang mga entity at pigilan ang pagpapanggap at paggamit ng mga pekeng identity, at gumagamit ng[mga cryptographic signature](https://andersbrownworth.com/blockchain/public-private-keys/) upang i-verify ang lahat ng claim. - -### 2. Mga decentralized datastore {#decentralized-datastores} - -Ang blockchain ay nagsisilbing registry ng nave-verify na data: bukas, hindi kailangang umasa sa third party, at desentralisadong repository ng impormasyon. Dahil sa mga pampublikong blockchain, hindi kailangang i-store ang mga identifier sa mga sentralisadong registry. - -Kung kailangang kumpirmahin ng sinuman ang validity ng isang decentralized identifier, puwede nilang hanapin ang nauugnay na pampublikong key sa blockchain. Iba ito sa mga tradisyonal na identifier na nangangailangan ng mga third party para mag-authenticate. - -## Paano nagbibigay-daan ang mga "decentralized identifier" at "attestation" sa decentralized identity? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} - -Tumutukoy ang decentralized identity sa pananaw na dapat pribado, portable, at ikaw mismo ang kumokontrol sa impormasyong nauugnay sa identity, at ang mga decentralized identifier at attestation ang mga pangunahing bahagi nito. - -Sa konteksto ng decentralized identity, ang mga attestation (kilala rin bilang [Mga Nave-verify na Kredensyal](https://www.w3.org/TR/vc-data-model/)) ay mga claim ng issuer na hindi mababago at mave-verify sa pamamagitan ng cryptography. Ang bawat "attestation" o "Nave-verify na Kredensyal" na ibinibigay ng isang entity (hal., isang organisasyon) ay iniuugnay sa decentralized identifier (DID) nito. - -Dahil naka-store ang decentralized identifiers (DIDs) sa blockchain, maaaring i-verify ng sinuman ang validity ng isang attestation sa pamamagitan ng pagsusuri sa DID ng issuer sa Ethereum. Sa madaling salita, ang blockchain ng Ethereum ay nagsisilbing pandaigdigang direktoryo na nagbibigay-daan sa pag-verify ng mga DID na nauugnay sa mga partikular na entity. - -Dahil sa mga decentralized identifier, mave-verify at ikaw mismo ang kokontrol sa mga attestation. Kahit wala na ang issuer ng attestation, palaging may patunay ang may-ari ng pinagmulan at validity ng attestation. - -Mahalaga rin ang mga decentralized identifier sa pagprotekta sa privacy ng personal na impormasyon sa pamamagitan ng decentralized identity. Halimbawa, kung magsusumite ang isang indibidwal ng patunay ng attestation (lisensya sa pagmamaneho), hindi kailangang suriin ng partidong nagve-verify ang validity ng impormasyon sa patunay. Kailangan lang ng verifier ng mga crytographic guarantee ng authenticity ng attestation at identity ng nagbigay na organisasyon para matukoy kung valid ang patunay. - -## Mga uri ng attestation sa decentralized identity {#types-of-attestations-in-decentralized-identity} - -Naiiba sa tradisyonal na pamamahala ng identity ang pag-store at pagkuha sa impormasyon ng attestation sa isang Ethereum-based na identity ecosystem. Narito ang pangkalahatang-ideya ng iba't ibang paraan ng pagbibigay, pag-store, at pag-verify ng mga attestation sa mga decentralized identity system: - -### Mga off-chain na attestation {#off-chain-attestations} - -Ang isang alalahanin sa pag-store ng mga attestation on-chain ay maaaring maglaman ang mga ito ng impormasyon na gustong panatilihing pribado ng mga indibidwal. Dahil pampubliko ang Ethereum blockchain, hindi mainam na i-store dito ang mga ganitong attestation. - -Ang solusyon ay magbigay ng mga attestation, na pinapangasiwaan ng mga user off-chain sa mga digital wallet, pero na-sign gamit ang DID ng issuer na na-store on-chain. Ang mga attestation na ito ay naka-encode bilang [mga JSON Web Token](https://en.wikipedia.org/wiki/JSON_Web_Token) at dapat maglaman ng digital signature ng issuer—na nagpapadali sa pag-verify ng mga off-chain na claim. - -Narito ang isang hypothetical na sitwasyon na nagpapaliwanag sa mga off-chain na attestation: - -1. May unibersidad (ang issuer) na gumawa ng attestation (isang digital na sertipikong pang-akademiko), na-sign ito gamit ang mga key nito, at ibinigay ito kay Bob (may-ari ng identity). - -2. Naghahanap ng trabaho si Bob at gusto niyang patunayan ang kanyang mga kwalipikasyong pang-akademiko sa isang employer, kaya ibinahagi niya ang attestation galing sa mobile wallet niya. Maaaring kumpirmahin ng kumpanya (ang verifier) ang validity ng attestation sa pamamagitan ng pagsusuri sa DID ng issuer (ibig sabihin, ang public key nito sa Ethereum). - -### Mga off-chain na attestation na may persistent access {#offchain-attestations-with-persistent-access} - -Sa ilalim ng pagsasaayos na ito, ang mga attestation ay ginagawang mga JSON file at sino-store off-chain (pinakamainam kung sa [decentralized cloud storage](/developers/docs/storage/) platform, tulad ng IPFS o Swarm). Gayunpaman, ang [ hash](/glossary/#hash) ng JSON file ay sino-store on-chain at nili-link sa DID sa pamamagitan ng isang on-chain registry. Ang nauugnay na DID ay maaaring galing sa issuer ng attestation o sa recipient. - -Sa tulong ng paraang ito, nagkakaroon ang mga attestation ng blockchain-based persistence at napapanatiling naka-encrypt at nave-verify ang impormasyon ng mga claim. Binibigyang-daan din nito ang selective na pagsisiwalat dahil maaaring i-decrypt ng may-ari ng pribadong key ang impormasyon. - -### Mga on-chain na attestation {#onchain-attestations} - -Ang mga on-chain na attestation ay pinapangasiwaan sa [mga smart contract](/developers/docs/smart-contracts/) sa Ethereum blockchain. Ang smart contract (nagsisilbing registry) ay magmamapa ng attestation sa kaukulang on-chain na decentralized identifier (isang pampublikong key). - -Narito ang isang halimbawa upang ipakita kung paano gumagana ang mga on-chain na attestation: - -1. Pinaplano ng isang kumpanya (XYZ Corp) na magbenta ng mga share sa pagmamay-ari gamit ang isang smart contract pero gusto lang nito ng mga buyer na sumailalim sa background check. - -2. Maaaring hilingin ng XYZ Corp sa kumpanyang nagsasagawa ng mga background check na magbigay ng mga on-chain na attestation sa Ethereum. Papatunayan ng attestation na ito na nakapasa ang indibidwal sa background check nang hindi inilalantad ang anumang personal na impormasyon. - -3. Maaaring suriin ng smart contract na nagbebenta ng mga share ang registry contract para sa mga identity ng mga na-screen na buyer, kung kaya, malalaman ng smart contract kung sino ang pinapahintulutang bumili ng mga shares o hindi. - -### Soulbound tokens at identity {#soulbound} - -Puwedeng gamitin ang [soulbound tokens](https://vitalik.ca/general/2022/01/26/soulbound.html)(mga non-transferable na NFT) upang kolektahin ang impormasyon na partikular sa isang wallet. Epektibo itong gumagawa ng natatanging on-chain na identity patungo sa isang partikular na Ethereum address na maaaring kinabibilangan ng mga token na kumakatawan sa mga napagtagumpayan (hal. pagtatapos ng ilang partikular na online na kurso o paglampas sa isang threshold score sa isang laro) o pakikilahok sa komunidad. - -## Mga benepisyo ng decentralized identity {#benefits-of-decentralized-identity} - -1. Sa tulong ng decentralized identity, mas makokontrol ng indibidwal ang nakakatukoy na impormasyon. Maaaring i-verify ang mga decentralized identifier at attestation nang hindi umaasa sa mga centralized na awtoridad at mga serbisyo ng third party. - -2. Ang mga decentralized identity solution ay tumutulong para magkaroon ng paraan para sa pag-verify at pamamahala ng identity ng user na hindi kailangang umasa sa third party, seamless, at nagpoprotekta sa privacy. - -3. Ginagamit ng decentralized identity ang teknolohiya ng blockchain, na bumubuo ng tiwala sa pagitan ng iba't ibang partido at nagbibigay ng mga cryptographic guarantee para patunayan ang validity ng mga attestation. - -4. Ginagawang portable ng decentralized identity ang data ng identity. Sino-store ng mga user ang mga attestation at identifier sa mobile wallet at maibabahagi nila ang mga ito sa anumang partidong gusto nila. Hindi rin nakapirmi ang mga decentralized identifier at attestation sa database ng nagbibigay na organisasyon. - -5. Magagamit ang decentralized identity sa mga bagong zero-knowledge technology na magbibigay-daan sa mga indibidwal na patunayan na pagmamay-ari o ginawa nila ang isang bagay nang hindi ibinubunyag kung ano ito. Ito ay maaaring maging pinakamahusay na paraan para pagsamahin ang tiwala at privacy para magamit sa mga bagay tulad ng pagboto. - -6. Binibigyang-daan ng decentralized identity ang mga mekanismo laban sa Sybil attack na tukuyin kapag may isang indibidwal na taong nagpapanggap bilang maraming tao para dayain o i-spam ang isang system. - -## Mga use case ng decentralized identity {#decentralized-identity-use-cases} - -Maraming posibleng use case ang decentralized identity: - -### 1. Mga universal login {#universal-dapp-logins} - -Makakatulong ang decentralized identity na palitan ang mga pag-log in gamit ang password ng [decentralized authentication](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). Maaaring magbigay ang mga service provider ng mga attestation sa mga user, na maso-store sa Ethereum wallet. Ang isang halimbawa ng attestation ay isang [NFT](/nft/) na nagbibigay sa may-ari ng access sa isang online na komunidad. - -Ang function na [Mag-sign in gamit ang Ethereum](https://login.xyz/) ay magbibigay-daan sa mga server na kumpirmahin ang Ethereum account ng user at kunin ang kinakailangang attestation mula sa account address niya. Ibig sabihin nito, maa-access ng mga user ang mga platform at website nang hindi kinakailangang tandaan ang mahahabang password at mapapahusay nito ang online experience ng mga user. - -### 2. KYC authentication {#kyc-authentication} - -Sa paggamit ng mga online na serbisyo, kailangang magbigay ng mga indibidwal ng mga attestation at kredensyal, tulad ng lisensya sa pagmamaneho o pambansang pasaporte. Ngunit nagdudulot ng problema ang paraang ito dahil maaaring makompromiso ang pribadong impormasyon ng user at hindi mave-verify ng mga service provider ang authenticity ng attestation. - -Binibigyang-daan ng decentralized identity ang mga kumpanya na iwasan ang mga karaniwang prosesong [Know-Your-Customer (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) at i-authenticate ang mga identity ng user sa pamamagitan ng Mga Nave-verify na Kredensyal. Pinapababa nito ang gastos sa pamamahala ng identity at pinipigilan nito ang paggamit ng pekeng dokumentasyon. - -### 3. Pagboto at mga online na komunidad {#voting-and-online-communities} - -Ang online na pagboto at social media ay dalawang bagong paggamit ng decentralized identity. Madaling mamanipula ang mga scheme ng online na pagboto, lalo kung gumawa ang mga mapanlokong actor ng mga pekeng identity para bumoto. Mapapaganda ng paghiling sa mga indibidwal na magpresenta ng mga on-chain na attestation ang integridad ng mga proseso ng online na pagboto. - -Makakatulong ang decentralized identity sa paggawa ng mga online na komunidad na walang pekeng account. Halimbawa, kailangang i-authenticate ng bawat user ang identity nila gamit ang isang on-chain na identity system, tulad ng Ethereum Name Service, na nagpapaliit sa posibilidad na mapasok ito ng mga bot. - -### 4. Proteksyon laban sa Sybil attack {#sybil-protection} - -Ang mga Sybil attack ay tumutukoy sa mga indibidwal na nagpapanggap bilang maraming tao para manlinlang ng isang system at mapalakas ang impluwensya nila. Ang [mga application na nagbibigay ng grant](https://gitcoin.co/grants/) na gumagamit ng [quadratic voting](https://www.radicalxchange.org/concepts/plural-voting/) ay madaling mabiktima ng mga Sybil attack na ito dahil madadagdagan ang halaga ng grant kapag mas maraming tao ang bumoto para dito, kaya nahihikayat ang mga user na hatiin ang kanilang mga kontribusyon sa maraming identity. Nakakatulong ang mga decentralized identity na iwasan ito sa pamamagitan ng pag-aatang sa bawat kalahok na patunayang totoong tao sila, bagama't madalas na ginagawa ito nang hindi kinakailangang isiwalat ang partikular na pribadong impormasyon. - -## Gamitin ang decentralized identity {#use-decentralized-identity} - -Maraming malalaking proyekto ang gumagamit ng Ethereum bilang pundasyon para sa mga decentralized identity solution: - -- **[Ethereum Name Service (ENS)](https://ens.domains/)** - _Isang decentralized naming system para sa mga identifier na on-chain at nababasa ng machine, tuld ng mga address sa Ethereum wallet, mga content hash, at metadata._ -- **[SpruceID](https://www.spruceid.com/)** - _Isang decentralized identity project na nagbibigay-daan sa mga user na kontrolin ang digital identity gamit ang mga Ethereum account at ENS profile sa halip na umasa sa mga serbisyo ng third party._ -- **[Ethereum Attestation Service (EAS)](https://attest.sh/)** - _Isang decentralized ledger/protocol para sa paggawa ng mga on-chain o off-chain na attestation tungkol sa anumang bagay._ -- **[Proof of Humanity](https://www.proofofhumanity.id)** - _Ang Proof of Humanity (o PoH) ay isang social identity verification system na ginawa sa Ethereum._ -- **[BrightID](https://www.brightid.org/)** - _ Isang decentralized at open-source na social identity network na naglalayong baguhin ang pag-verify ng identity sa pamamagitan ng paggawa at pagsusuri ng isang social graph._ -- **[Proof-of-personhood Passport](https://proofofpersonhood.com/)** - _Isang decentralized digital identity aggregator._ - -## Karagdagang pagbabasa {#further-reading} - -### Mga Artikulo {#articles} - -- [Mga Use Case ng Blockchain: Blockchain sa Digital Identity](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ -- [Ano ang Ethereum ERC725? Pamamahala ng Self-Sovereign Identity sa Blockchain](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) —_ Sam Town_ -- [Paano Malulutas ng Blockchain ang Suliranin sa Digital Identity](https://time.com/6142810/proof-of-humanity/) — _Andrew R. Chow_ -- [Ano ang Decentralized Identity at Bakit Dapat Kang Mag-alaala?](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ - -### Videos {#videos} - -- [Decentralized Identity (Bonus Livestream Session)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Isang magandang video na gawa ni Andreas Antonopolous na nagpapaliwanag sa decentralized identity_ -- [Mag-sign In sa Ethereum at Decentralized Identity gamit ang Ceramic, IDX, React, at 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _Tutorial sa YouTube na gawa ni Nader Dabit tungkol sa pagbuo ng management system para sa paggawa, pagbabasa, at pag-update ng profile ng isang user gamit ang kanyang Ethereum wallet_ -- [BrightID - Decentralized Identity sa Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM)— _Episode ng Bankless podcast kung saan pinag-uusapan ang BrightID, isang decentralized identity solution para sa Ethereum_ -- [The Off Chain Internet: Decentralized Identity at Mga Nave-verify na Kredensyal](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — Presentation ni Evin McMullen sa EthDenver noong 2022 - -### Mga Komunidad {#communities} - -- [ERC-725 Alliance sa GitHub](https://github.com/erc725alliance) — _Mga tagasuporta ng pamantayang ERC725 para sa pamamahala ng identity sa Ethereum blockchain_ -- [SpruceID Discord server](https://discord.com/invite/Sf9tSFzrnt) — _Komunidad para sa mga tagahanga at developer na nagtatrabaho sa Mag-sign in gamit ang Ethereum_ -- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Isang komunidad ng mga developer na tumutulong sa pagbuo ng framework para sa nave-verify na data para sa mga application_ diff --git a/src/content/translations/fil/defi/index.md b/src/content/translations/fil/defi/index.md deleted file mode 100644 index 15503bdf347..00000000000 --- a/src/content/translations/fil/defi/index.md +++ /dev/null @@ -1,352 +0,0 @@ ---- -title: Desentralisadong Pananalapi (DeFi) -description: Pangkalahatang-ideya ng DeFi sa Ethereum -lang: fil -template: use-cases -emoji: ":money_with_wings:" -image: ../../../../assets/use-cases/defi.png -alt: Logo ng Eth na gawa sa mga lego brick. -sidebarDepth: 2 -summaryPoint1: Isang pandaigdigan at bukas na alternatibo sa kasalukuyang sistemang pinansyal. -summaryPoint2: Mga produkto na nagbibigay-daan sa iyong manghiram, mag-ipon, mag-invest, mag-trade, at iba pa. -summaryPoint3: Nakabatay sa open-source na teknolohiyang magagamit ng kahit sino para mag-program. ---- - -Ang DeFi ay isang bukas at pandaigdigang sistemang pinansyal na binuo para sa panahon ng internet - isang alternatibo sa isang sistema na mahirap unawain, mahigpit na kontrolado, at pinagbubuklod ng infrastructure at mga prosesong ilang dekada nang ginagamit. Sa tulong nito makokontrol at makikita mo ang iyong pera. Binibigyan ka nito ng pagkakataong makita ang mga pandaigdigang market at mga alternatibo sa iyong lokal na currency o mga opsyon sa pagbabangko. Binubuksan ng mga produkto ng DeFi ang mga serbisyong pinansyal sa sinumang may koneksyon sa internet at ang karamihan sa mga ito ay pagmamay-ari at pinapanatili ng mga user ng mga ito. Sa ngayon, daan-daang bilyong dolyar ng crypto na ang dumaan sa mga DeFi application at patuloy itong dumarami araw-araw. - -## Ano ang DeFi? {#what-is-defi} - -DeFi ang tawag sa mga produkto at serbisyong pinansyal na maaring gamitin ng sinumang makakagamit ng Ethereum - kahit sinong may koneksyon sa internet. Sa DeFi, laging bukas ang mga market at walang centralized na awtoridad na makakapigil ng mga pagbabayad o hindi magbibigay sa iyo ng access sa kahit ano. Ang mga serbisyong dating mabagal at nanganganib dahil sa human error ay awtomatiko at mas ligtas na ngayon dahil pinapangasiwaan na ang mga ito ng code na masusuri at mabubusisi ng kahit sino. - -Lumalaki ang ekonomiya ng crypto, kung saan puwede kang magpautang, manghiram, mag-trade, kumita ng interes, at iba pa. Gumamit ng DeFi ang mga taga-Argentina na marunong sa crypto para takasan ang matinding pagtaas ng presyo. May mga kumpanya nang nagsimulang i-stream sa kanilang mga empleyado ang kanilang mga suweldo nang real time. May ibang nakahiram at nakapagbayad ng mga loan na milyong-milyong dolyar ang halaga nang hindi nangangailangan ng anumang personal identification. - - - -## DeFi vs tradisyonal na pinansya {#defi-vs-tradfi} - -Ang isa sa mga pinakamagandang paraan upang makita ang potensyal ng DeFi ay unawain ang mga problemang umiiral ngayon. - -- May mga tao na hindi pinagkakalooban ng access para gumawa ng bank account o gumamit ng mga serbisyong pinansyal. -- Ang kakulangan ng access sa mga serbisyong pinansyal ay maaaring nakakahadlang para makahanap ng trabaho ang mga tao. -- Maaaring mapigilan ng mga serbisyong pinansyal na makuha mo ang iyong suweldo. -- Isa sa mga nakatagong singil ng mga serbisyong pinansyal ay ang iyong personal na data. -- Maaaring ipasara ng mga pamahalaan at centralized institution ang mga market kapag gusto nila. -- Ang oras ng pag-trade ay karaniwang limitado sa oras ng negosyo ng partikular na time zone. -- Maaaring abutin nang ilang araw ang mga pag-transfer ng pera dahil sa mga internal na prosesong ginagawa ng tao. -- May premium ang mga serbisyong pinansyal dahil kailangan ng mga intermediary institution ang kanilang parte. - -### Pag-kumpara {#defi-comparison} - -| DeFi | Tradisyonal na pinansya | -| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Hawak mo ang iyong pera. | Ang iyong pera ay hawak ng mga kumpanya. | -| Kontrolado mo kung saan mapupunta ang iyong pera at kung paano ito gagastusin. | Kailangan mong magtiwalang hindi papabayaan ng mga kumpanya ang pera mo, tulad ng pagpapahiram nito sa mga hindi mapagkakatiwalaang nangungutang. | -| Nangyayari ang mga pag-transfer ng pondo sa loob ng ilang minuto. | Maaaring tumagal nang ilang araw ang mga pagbabayad dahil sa mga manula na proseso. | -| Gumagamit ng mga hindi tunay na pangalan sa mga aktibidad sa transaksyon. | Talagang konektado ang pinansyal na aktibidad sa iyong identity. | -| Ang DeFi ay bukas para sa lahat. | Kailangan mong mag-apply para magamit ang mga serbisyong pinansyal. | -| Ang mga market ay palaging bukas. | Nagsasara ang mga market dahil kailangang magpahinga ng mga empleyado. | -| Transparency ang pundasyon nito – puwedeng tingnan ng kahit sino ang data ng produkto at suriin kung paano gumagana ang system. | Ang mga pinansyal institusyon ay parang mga saradong libro: hindi mo maaaring tingnan ang kanilang kasaysayan ng pautang, record ng mga pinapamahalaan nilang asset, at iba pa. | - - - I-explore ang mga DeFi app - - -## Nagsimula ito sa Bitcoin... {#bitcoin} - -Sa maraming paraan, ang Bitcoin ang unang DeFi application. Talagang pinapayagan ka ng Bitcoin na magmay-ari at kontrolin ang halaga nito at ipadala ito kahit saan sa mundo. Ginagawa nito ito sa pamamagitan ng pagbibigay ng paraan para sa maraming tao, na hindi umaasa sa isa't isa, na sumang-ayon sa isang ledger ng mga account na hindi nangangailangan ng isang pinagkakatiwalaang intermediary. Ang Bitcoin ay bukas sa lahat at walang sinuman ang may awtoridad na baguhin ang mga panuntunan nito. Ang mga panuntunan ng Bitcoin, tulad ng kanyang kakapusan at pagiging bukas, ay nakalagay na sa teknolohiya. Hindi ito katulad ng tradisyonal na pinansya kung saan maaaring mag-print ang mga pamahalaan ng pera na nagpapababa sa halaga ng iyong ipon at mga kumpanyang maaaring magpasara ng mga market. - -Mas pinapahusay pa ito ng Ethereum. Tulad ng Bitcoin, hindi maaaring magbago ang mga panuntunan nang biglaan at may access ang lahat. Ngunit ito rin ang dahilan kung bakit programmable ang digital money, gamit ang [mga smart contract](/glossary#smart-contract), kung kaya, hindi lang pag-store at pagpapadala ng halaga ang magagawa mo. - - - -## Programmable na pera {#programmable-money} - -Medyo kakaiba itong pakinggan... "bakit ko gugustuhing i-program ang pera ko"? Ngunit, isa itong default na feature ng mga token sa Ethereum. Kahit sino ay maaaring mag-program ng logic sa mga pagbabayad. Kaya makukuha mo ang kontrol at seguridad ng Bitcoin pati ang mga serbisyong ibinibigay ng mga pinansyal na institusyon. Dahil dito, magagawa mo sa mga cryptocurrency ang mga bagay na hindi mo magagawa sa Bitcoin, tulad ng pagpapautang at panghihiram, pag-iiskedyul ng mga pagbabayad, pag-invest sa mga index fund at iba pa. - - -
Tingnan ang aming mga rekomendasyon para sa mga DeFi application na dapat subukan kung bago ka sa Ethereum.
- - I-explore ang mga DeFi app - -
- -## Ano ang magagawa mo sa DeFi? {#defi-use-cases} - -May decentralized na alternatibo sa karamihan sa mga serbisyong pinansyal. Ngunit nagbibigay din ang Ethereum ng pagkakataon para gumawa ng mga bagong-bagong pinansyal na produkto. Palaging nadaragdagan ang listahang ito. - -- [Magpadala ng pera sa iba't ibang bahagi ng mundo](#send-money) -- [Mag-stream ng pera sa iba't ibang bahagi ng mundo](#stream-money) -- [Ma-access ang mga stable na currency](#stablecoins) -- [Humiram ng pondo na may collateral](#lending) -- [Humiram nang walang collateral](#flash-loans) -- [Simulan ang pag-iipon ng crypto](#saving) -- [Mag-trade ng mga token](#swaps) -- [Palaguin ang iyong portfolio](#investing) -- [Pondohan ang iyong mga ideya](#crowdfunding) -- [Bumili ng insurance](#insurance) -- [Pamahalaan ang iyong portfolio](#aggregators) - - - -### Magpadala ng pera sa iba't ibang bahagi ng mundo nang mabilis {#send-money} - -Bilang isang blockchain, ang Ethereum ay idinisenyo para magpadala ng mga transaksyon sa ligtas at pandaigdigang paraan. Tulad ng Bitcoin, pinapadali ng Ethereum ang pagpapadala ng pera sa iba't ibang bahagi ng mundo, na parang nagpapadala lang ng email. Ilagay lang ang [ENS name](/nft/#nft-domains) (tulad ng bob.eth) ng recipient mo o ang kanyang account address mula sa iyong wallet at sa loob ng ilang minuto (karaniwan), direkta na niyang matatanggap ang bayad mo. Upang magpadala o tumanggap ng mga pagbabayad, kakailanganin mo ng [wallet](/wallets/). - - - Tingnan ang mga decentralized application (dapps) para sa pagbabayad - - -#### Mag-stream ng pera sa iba't ibang bahagi ng mundo... {#stream-money} - -Maaari ka ring mag-stream ng pera sa Ethereum. Binibigyang-daan ka nitong bayaran ang suweldo ng isang tao sa kada segundo, kaya agad niyang makukuha ang pera niya kapag kailangan niya ito. O magrenta ng isang bagay kada segundi, tulad ng storage locker o electric scooter. - -At kung ayaw mong magpadala o mag-stream ng [ETH](/eth/) dahil nagbabago-bago ang halaga nito, may mga alternatibong currency sa Ethereum: mga stablecoin. - - - -### Ma-access ang mga stable na currency {#stablecoins} - -Ang volatility ng cryptocurrency ay problema para sa maraming pinansyal na produkto at pangkalahatang paggastos. Inayos ito ng komunidad ng DeFi gamit ang mga stablecoin. Ipinapareho ang halaga ng mga ito sa isa pang asset, na karaniwang mas ginagamit na currency tulad ng dolyar. - -Ang mga coin tulad ng Dai o USDC ay may halagang nananatiling malapit sa isang dolyar. Dahil dito, mainam ito para sa pagkakaroon ng kita o retail. Maraming tao sa Latin America ang gumamit ng mga stablecoin bilang paraan para protektahan ang kanilang naipong pera sa panahon ng kawalan ng katiyakan pagdating sa mga currency na mula sa kanilang pamahalaan. - - - Iba pang detalye tungkol sa mga stablecoin - - - - -### Paghiram {#lending} - -Ang paghiram ng pera mula sa mga decentralized provider ay may dalawang pangunahing uri. - -- Peer-to-peer, na nangangahulugang direktang hihiram ang borrower sa isang partikular na lender. -- Pool-based kung saan nagbibigay ng pondo (liquidity) ang mga lender sa isang pool na mahihiraman ng mga borrower. - - - Tingnan ang dapps para sa panghihiram - - -Maraming benepisyo sa paggamit ng decentralized lender... - -#### Paghiram nang may privacy {#borrowing-privacy} - -Sa kasalukuyan, ang pagpapautang at panghihiram ng pera ay nauugnay sa mga indibidwal na may kinalaman dito. Kailangang malaman ng mga bangko kung malaman na mababayaran mo ang loan bago ito magpautang. - -Ang decentralized na pagpapautang ay nangyayari nang hindi kinakailangang magpakilala ng kahit aling panig. Sa halip, ang borrower ay dapat maglaan ng collateral na awtomatikong matatanggap ng lender kung sakali hindi mabayaran ang kanilang loan. May ilang lender na tumatanggap ng NFT bilang collateral. Ang mga NFT ay titulo para sa natatanging asset, tulad ng painting. [Iba pang detalye tungkol sa mga NFT](/nft/) - -Binibigyang-daan ka nitong humiram ng pera nang walang pagsusuri ng iyong credit o pagbibigay ng pribadong impormasyon. - -#### Access sa pandaigdigang pondo {#access-global-funds} - -Kapag gumamit ka ng decentralized lender, may access ka sa pondong idineposito sa iba't ibang bahagi ng mundo, hindi lang sa pondong hawak ng pinili mong bangko o institusyon. Pinapadali nito ang pagkuha ng mga loan at pinapababa nito ang interes. - -#### Tax-efficiencies {#tax-efficiencies} - -Kapag nanghiram, maa-access mo ang pondong kailangan mo nang hindi ibinebenta ang iyong ETH (isang taxable event). Sa halip, maaari mong gamitin ang ETH bilang collateral para sa stablecoin loan. Dahil dito, makukuha mo ang cash-flow na kailangan mo at hindi mawawala sa iyo ang ETH mo. Ang mga stablecoin ay mga token na mas mainam kapag kailangan mo ng cash dahil hindi nagbabago-bago ang halaga ng mga ito gaya ng ETH. [Iba pang detalye tungkol sa mga stablecoin.](#stablecoins) - -#### Mga flash loan {#flash-loans} - -Ang mga flash loan ay mas eksperimental na uri ng decentralized na pagpapautang kung saan puwede kang humiram kahit walang collateral o nang hindi nagbibigay ng anumang personal na impormasyon. - -Sa ngayon, hindi pa ito magagamit ng mga hindi maalam sa teknolohiya, pero ipinapahiwatig ng mga ito ang mga posibleng maisagawa ng lahat sa hinaharap. - -Gumagana ito kapag inutang ang loan at binayaran ito sa iisang transaksyon. Kung hindi ito mababayaran, bababalik sa dati ang transaksyon na parang walang nangyari. - -Ang pondo na kadalasang ginagamit ay nasa mga liquidity pool (malalaking grupo ng pondo na ginagamit para sa panghihiram). Kung hindi ginagamit ang mga ito sa ngayon, binibigyan nito ng pagkakataon ang isang tao na hiramin ang pondong ito, magnegosyo gamit ang mga ito, at bayaran ang mga ito nang buo sa halos parehong pagkakataon na hiniram ito. - -Ibig sabihin nito, maraming logic na dapat isama sa isang napaka-bespoke na transaksyon. Ang isang simpleng halimbawa ay ang paggamit ng isang tao ng flash loan para manghiram ng maraming asset sa isang presyo upang maibenta ito sa ibang exchange kung saan mas mataas ang presyo. - -Kung kaya, sa iisang transaksyon, ganito ang nangyayari: - -- Humiram ka ng halagang X ng $asset sa halagang $1.00 mula sa exchange A -- Ibinenta mo ang X na $asset sa exchange B sa halagang $1.10 -- Binayaran mo ang loan sa exchange A -- Makukuha mo ang kita maliban sa bayarin sa transaksyon - -Kung biglang bumaba ang supply ng exchange B at kulang ang binili ng user para sapatan ang orihinal na loan, hindi maisasagawa ang transaksyon. - -Para magawa ang halimbawa sa itaas sa tradisyonal na mundo ng pinansya, kakailanganin mo ng napakalaking halaga ng pera. Ang mga may pera lang ang makakagamit ng mga pamamaraang ito ng pagkakapera. Ang mga flash loan ay halimbawa ng kinabukasan kung saan hindi kailangang magkaroon ng pera para kumita ng pera. - -[Iba pang detalye tungkol sa mga flash loan](https://aave.com/flash-loans/) - - - -### Magsimulang mag-ipon gamit ang crypto {#saving} - -#### Pagpapautang {#lending} - -Maaari kang kumita ng interes sa iyong crypto sa pamamagitan ng pagpapautang nito at subaybayan ang paglago ng iyong pondo nang real time. Sa ngayon, mas mataas ang interes kaysa sa karaniwang makukuha mo sa iyong lokal na bangko (kung susuwertihin kang magkaroon ng access sa isang bangko). Narito ang isang halimbawa: - -- Ipapautang mo ang iyong 100 Dai, isang [stablecoin](/stablecoins/), sa isang produkto gaya ng Aave. -- Tatanggap ka ng 100 Aave Dai (aDai) na isang token na kumakatawan sa iyong ipinautang na Dai. -- Ang iyong aDai ay tataas base sa interes at makikita mo ang paglaki ng iyong balanse sa iyong wallet. Depende sa APR, maaaring maging 100.1234 ang balanse ng iyong wallet pagkatapos ng ilang araw o maging oras! -- Maaari kang mag-withdraw ng regular na Dai na katumbas ng iyong balanse sa aDai anumang oras. - - - Tingnan ang mga decentralized application (dapps) para sa pagpapautang - - -#### Mga no-loss lottery {#no-loss-lotteries} - -Ang mga no-loss lottery tulad ng PoolTogether ay masaya at bagong paraan upang mag-ipon ng pera. - -- Bibili ka ng 100 na ticket gamit ang 100 Dai token. -- Makakatanggap ka ng 100 plDai na kumakatawan sa iyong 100 ticket. -- Kung mananalo ang isa sa mga ticket mo, tataas ang iyong plDai balance ayon sa halaga ng prize pool. -- Kung hindi ka mananalo, maililipat ang iyong 100 plDai sa draw sa susunod na linggo. -- Maaari kang mag-withdraw ng regular na Dai na katumbas ng iyong plDai balance anumang oras. - -Ang prize pool ay mula sa lahat ng interes na kinikita mula sa pagpapautang ng mga ticket deposit tulad ng nabanggit sa halimbawa sa pagpapautang sa itaas. - - - Subukan ang PoolTogether - - - - -### Mag-exchange ng mga token {#swaps} - -May libo-libong token sa Ethereum. Sa tulong ng mga decentralized exchange (DEXs), mate-trade mo ang iba't ibang token kahit kailan mo gusto. Hinding-hindi mo bibitawan ang pagkontrol sa mga asset mo. Dito, para kang gumagamit ng currency exchange kapag pumunta sa ibang bansa. Ngunit hinding-hindi nagsasara ang bersyong DeFi. Ang mga market ay bukas 24/7, 365 araw kada taon at iginagarantiya ng teknolohiya na palaging may tatanggap ng trade. - -Halimbawa, kung nais mong gamitin ang no-loss lottery na PoolTogether (na inilalarawan sa itaas), kakailanganin mo ng token tulad ng Dai o USDC. Ang mga DEX na ito ay nagbibigay-daan sa iyo na i-swap ang iyong ETH sa mga token na iyon at i-swap ito ulit kapag tapos ka na. - - - Tingnan ang mga token exchange - - - - -### Advanced trading {#trading} - -Mayroong mga mas advanced na opsyon para sa mga trader na gusto ng kaunti pang kontrol. Ang mga limit order, perpetual, margin trading, at iba pa ay posibleng gawin. Sa pamamagitan ng Decentralized trading, magkakaroon ka ng access sa global na liquidity, hinding-hindi nagsasara ang market, palagi mong makokontrol ang mga asset mo. - -Kapag gumagamit ka ng centralized exchange, dapat mong ideposito ang mga asset mo bago mag-trade at dapat mong ipaubaya sa kanila ang mga ito. Habang nakadeposito ang iyong mga asset, nanganganib ang mga ito dahil mainit sa mata ng mga hacker ang mga centralized exchange. - - - Tingnan ang mga decentralized application (dapps) para sa trading - - - - -### Palaguin ang iyong portfolio {#investing} - -May mga produkto para sa pamamahala ng pondo sa Ethereum na susubukang palaguin ang iyong portfolio batay sa estratehiyang iyong pipiliin. Ito ay awtomatiko, bukas sa lahat, at hindi nangangailangan ng manager na makikihati sa iyong kita. - -Isang magandang halimbawa ang [ DeFi Pulse Index fund (DPI)](https://defipulse.com/blog/defi-pulse-index/). Ito ay isang pondo na awtomatikong nagre-rebalance upang tiyaking palaging makikita sa portfolio mo [ang mga nangungunang DeFi token ayon sa market capitalization](https://www.coingecko.com/en/defi). Hindi mo kailangang pamahalaan ang alinman sa mga detalye at puwede kang umalis sa pondo kung kailan mo gusto. - - - Tingnan ang mga decentralized application (dapps) para sa investment - - - - -### Pondohan ang iyong mga ideya {#crowdfunding} - -Magandang platform ang Ethereum para sa crowdfunding: - -- Maaaring manggagaling ang mga potensyal na funder kahit saan – bukas ang Ethereum at ang mga token nito para sa kahit sino at kahit saang sulok ng mundo. -- Transparent ito kaya maipapakita ng mga fundraiser kung magkano na ang naipong pera. At malalaman mo kung saan napupunta o nagagastos ang lahat ng ito. -- Maaaring mag-set up ang mga fundraiser ng mga awtomatikong refund kung, halimbawa, may tiyak na takdang oras at minimum na halaga na hindi natugunan. - - - Tingnan ang mga decentralized application (dapps) para sa crowdfunding - - -#### Kwadratik na pondo {#quadratic-funding} - -Ang Ethereum ay open source na software at marami sa mga naunang gawain nito ay pinondohan ng komunidad. Dahil dito, nagkaroon ng interesante at bagong fundraising model: ang quadratic funding. This has the potential to improve the way we fund all types of public goods in the future. - -Quadratic funding makes sure that the projects that receive the most funding are those with the most unique demand. In other words, projects that stand to improve the lives of the most people. Narito kung paano ito gumagana: - -1. May matching pool ng mga donasyon. -2. Magsisimula ang isang round ng public funding. -3. Maaaring ipahiwatig ng mga tao ang kanilang demand para sa isang proyekto sa pamamagitan ng pag-donate ng pera. -4. Kapag natapos na ang round, ang matching pool ay ipinapamahagi sa mga proyekto. Ang may pinakakakaibang demand ang makakakuha ng pinakamalaking halaga mula sa matching pool. - -Ibig sabihin nito, ang Proyekto A na may 100 na donasyon na nagkakahalaga ng 1 dolyar ay maaaring magkaroon ng mas maraming pondo kaysa sa Proyekto B na may isang donasyon na nagkakahalaga ng 10,000 dolyar (depende sa laki ng matching pool). - -[Iba pang detalye tungkol sa quadratic funding](https://wtfisqf.com) - - - -### Insurance {#insurance} - -Ang decentralized insurance ay may layuning gawing mas abot-kaya, mas pabilisin ang payout, at mas transparent ang insurance. Sa pamamagitan ng higit pang automation, mas abot-kaya ang coverage at mas mabibilis ang pay-out. Ang data na ginagamit upang magpasya sa iyong claim ay ganap na transparent. - -Ang mga produkto ng Ethereum, gaya ng anumang software, ay puwedeng magkaroon ng mga bug at puwedeng abusuhin. Kaya sa ngayon, maraming produkto ng insurance ang nakatuon sa pagprotekta sa mga user laban sa pagkawala ng pondo. Gayunpaman, may mga proyekto na nagsisimulang bumuo ng coverage para sa lahat ng puwede nating harapin sa buhay. Isang magandang halimbawa nito ay ang Crop cover ng Etherisc na may layuning [ protektahan ang maliliit na magsasaka sa Kenya laban sa tagtuyot at pagbaha](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Ang decentralized insurance ay maaaring magbigay ng mas abot-kayang presyo para sa mga magsasaka na kadalasang hindi kayang magbayad para sa tradisyonal na insurance. - - - Tingnan ang decentralized application (dapps) para sa insurance - - - - -### Mga aggregator at manager ng portfolio {#aggregators} - -Sa dami ng mga nangyayari, kakailanganin mo ng paraan upang subaybayan ang lahat ng iyong mga investment, loan, at trade. May iba't ibang produkto na nagbibigay-daan sa iyong i-coordinate ang lahat ng iyong aktibidad sa DeFi mula sa isang lugar. Ito ang kagandahan ng open architecture ng DeFi. Ang mga team ay maaaring bumuo ng mga interface kung saan hindi mo lang makikita ang iyong mga balanse sa iba't ibang produkto, maaari mo ring gamitin ang kanilang mga feature. Maaaring maging kapaki-pakinabang ito para sa iyo habang tinitingnan mo ang iba pang bahagi ng DeFi. - - - Tingnan ang decentralized application (dapps) para sa portfolio - - - - -## Paano gumagana ang DeFi? {#how-defi-works} - -Ang DeFi ay gumagamit ng mga cryptocurrency at smart contract upang magbigay ng mga serbisyong hindi nangangailangan ng mga intermediary. Sa kasalukuyang mundo ng pinansya, ang mga institusyong pinansyal ay nagsisilbing guarantor ng mga transaksyon. Binibigyan nito ang mga institusyong ito ng labis na kapangyarihan dahil dumadaan sa kanila ang pera mo. Dagdag pa rito, bilyon-bilyong tao sa buong mundo ang walang access sa bank account. - -Sa DeFi, pinapalitan ng smart contract ang pinansyal na institusyon sa transaksyon. Ang smart contract ay isang uri ng Ethereum account na maaaring humawak ng pondo at ipadala/ibalik ang mga ito base sa ilang partikular na kundisyon. Walang sinuman ang puwedeng magbago ng smart contract kapag live ito – palagi itong tatakbo ayon sa kung paano ito na-program. - -Ang isang kontrata na idinisenyo upang magbigay ng allowance o pocket money ay maaaring i-program na magpadala ng pera sa Account B mula sa Account A tuwing Biyernes. At gagawin lamang nito ito kung may sapat na pondo ang Account A. Walang sinuman ang puwedeng magbago ng kontrata at magdagdag ng Account C bilang recipient upang magnakaw ng pondo. - -Ang mga kontrata ay bukas din para tingnan at i-audit ng kahit sino. Ibig sabihin nito, madalas na masisiyasat kaagad ng komunidad ang hindi magagandang kontrata. - -Ito ay nangangahulugan na kailangan nating magtiwala sa mga mas teknikal na miyembro ng komunidad ng Ethereum na nakakapag-read ng code. Ang open-source based na komunidad ay tumutulong sa pagbabantay sa mga developer, pero hindi na ito masyadong kakailanganin sa paglipas ng panahon habang nagiging mas madaling i-read ang mga smart contract at gumagawa ng iba pang paraan para patunayan ang pagiging mapagkakatiwalaan ng code. - -## Ethereum at DeFi {#ethereum-and-defi} - -Ang Ethereum ang perpektong pundasyon para sa DeFi dahil sa mga sumusunod: - -- Walang nagmamay-ari sa Ethereum o sa mga smart contract na narito – binibigyan nito ang lahat ng pagkakataon na gumamit ng DeFi. Ibig sabihin din nito, walang makakapagbago ng mga panuntunan nang biglaan. -- Iisa ang language na ginagamit ng lahat ng produkto ng DeFi: Ethereum. Ibig sabihin, maayos na magagamit nang sama-sama ang marami sa mga produkto. Magagawa mong magpautang ng mga token sa isang platform at i-exchange ang token na may interes sa ibang market sa isang ganap na ibang application. Dito, para kang nagpapapalit ng loyalty points sa bangko mo. -- Ang mga token at cryptocurrency ay bahagi ng Ethereum, na isang nakabahaging ledger – magaling ang Ethereum sa pagsubaybay sa mga transaksyon at pagmamay-ari. -- Nagbibigay ng ganap na financial freedom ang Ethereum – hinding-hindi hahawakan ng karamihan sa mga produkto ang pondo mo, kaya ikaw talaga ang may kontrol. - -Maaaring isipin na may mga layer ang DeFi: - -1. Ang blockchain – na Ethereum ay naglalaman ng kasaysayan ng mga transaksyon at kalagayan ng mga account. -2. Ang mga asset –[ ETH](/eth/)at iba pang token (mga currency). -3. Ang mga protocol – [mga smart contract](/glossary/#smart-contract) na nagbibigay ng kakayahan, halimbawa, sa isang serbisyong nagpapahintulot ng decentralized na pagpapautang ng mga asset. -4. [Ang mga application](/dapps/) – ang mga produkto na ginagamit natin para pamahalaan at i-access ang mga protocol. - -## Gumawa ng DeFi {#build-defi} - -Ang DeFi ay isang open-source movement. Ang mga protocol at application ng DeFi ay bukas para i-inspect, i-fork, at pagandahin mo. Dahil sa layered stack na ito (gumagamit ang lahat ng ito ng parehong base blockchain at mga asset), ang mga protocol ay maaaring pagsama-samahin upang gumawa ng mga natatanging oportunidad. - - - Iba pang detalye tungkol sa mga decentralized application (dapps) para sa paggawa - - -## Karagdagang pagbabasa {#futher-reading} - -### DeFi data {#defi-data} - -- [DeFi Prime](https://defiprime.com/) -- [Defi Llama](https://defillama.com/) -- [DeFi Rate](https://defirate.com/) - -### Mga artikulo tungkol sa DeFi {#defi-articles} - -- [Gabay para sa mga baguhan sa DeFi](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, Enero 6, 2020_ - -### Videos {#videos} - -- [Finematics - edukasyon tungkol sa decentralized finance](https://finematics.com/) – _Mga video tungkol sa DeFi_ -- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _Mga pangunahing kaalaman sa DeFi: Lahat ng kailangan mong malaman para makapagsimula sa nakakalitong lugar na ito._ -- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA)_Ano ang DeFi?_ - -### Mga Komunidad {#communities} - -- [Discord server ng DeFi Llama](https://discord.gg/buPFYXzDDd) -- [Discord server ng DeFi Pulse](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/fil/desci/index.md b/src/content/translations/fil/desci/index.md deleted file mode 100644 index 5a648873f77..00000000000 --- a/src/content/translations/fil/desci/index.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: Decentralized science (DeSci) -description: Pangkalahatang-ideya ng decentralized science sa Ethereum -lang: fil -template: use-cases -emoji: ":microscope:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Isang pandaigdigan at bukas na alternatibo sa kasalukuyang sistemang siyentipiko. -summaryPoint2: Isang teknolohiyang nagbibigay-daan sa mga siyentipiko na lumikom ng pondo, magsagawa ng mga eksperimento, magbahagi ng data, magbahagi ng mga kaalaman, at iba pa. -summaryPoint3: Pinapalawig ang open science movement. ---- - -## Ano ang decentralized science (DeSci)? {#what-is-desci} - -Ang decentralized science (DeSci) ay isang kilusang naglalayong gumawa ng pampublikong infrastructure para sa pagpopondo, paggawa, pagsusuri, pagkilala, pag-store, at pagpapalaganap ng kaalaman sa agham nang patas at pantay-pantay gamit ang Web3 stack. - -Layunin ng DeSci na gumawa ng ecosystem kung saan hinihikayat ang mga siyentipikong hayagang ibahagi ang kanilang pananaliksik at kilalanin para sa kanilang gawa habang binibigyang-daan ang kahit sino na i-access at mag-contribute sa pananaliksik nang walang kahirap-hirap. Pinagbabatayan ng DeSci ang ideyang dapat naa-access ng lahat ang siyentipikong kaalaman at dapat transparent ang proseso ng siyentipikong pananaliksik. Gumagawa ang DeSci ng mas decentralized at mas malawak na model ng siyentipikong pananaliksik. Kung kaya, mas mahihirapan ang mga central authority na i-censor o kontrolin ito. Umaasa ang DeSci na makakagawa ito ng environment kung saan mabubuo ang mga bago at hindi pangkaraniwang ideya sa pamamagitan ng pag-decentralize sa access sa pondo, mga scientific tool, at mga channel ng komunikasyon. - -Nagbibigay-daan ang decentralized science sa mas diverse na pinagmumulan ng pondo (mula sa [mga DAO](/dao/), [quadratic donation](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) hanggang sa crowdfunding at iba pa), mas accessible na data at paraan ng pag-access, at sa pamamagitan ng pagbibigay ng mga insentibo para sa reproducibility. - -### Juan Benet - Ang DeSci Movement - - - -## Paano pinapaunlad ng DeSci ang agham {#desci-improves-science} - -Isang hindi kumpletong listahan ng mga pangunahing problema sa agham at kung paano makakatulong ang decentralized science na tugunan ang mga isyung ito - -| **Decentralized science** | **Tradisyonal na agham** | -| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | -| Ang distribusyon ng pondo ay tinutukoy ng publiko gamit ang mga mekanismo tulad ng mga quadratic donation o DAO. | Mga maliit, eksklusibo, at centralized na grupo ang kumokontrol sa distribusyon ng pondo. | -| Nakikipag-collaborate ka sa mga kasamahan mula sa iba't ibang panig ng mundo sa mga dynamic na team. | Nililimitahan ng mga funding organization at home institution ang mga pakikipag-collaborate mo. | -| Ginagawa online at nang transparent ang mga desisyon sa pondo. Tumitingin ng mga bagong mekanismo sa pagpopondo. | Matagal bago makuha ang mga desisyon sa pondo at limitado lang ang transparency. Iilan lang ang mga mekanismo sa pagpopondo. | -| Mas madali at mas transparent ang pagbabahagi ng mga serbisyo sa laboratoryo gamit ang Web3 primitives. | Madalas na mabagal at hindi gaanong malinaw ang pagbabahagi ng mga mapagkukunan para sa laboratoryo. | -| Maaaring mag-develop ng mga bagong model para sa paglalathala na gumagamit ng Web3 primitives para sa tiwala, transparency, at pangkalahatang access. | Naglalathala ka sa pamamagitan ng mga itinakdang pathway na madalas na kinikilalang hindi epektibo, may kinikilingan, at mapagsamantala. | -| Maaari kang kumita ng mga token at makilala para sa pagsusuri ng gawa ng mga kasamahan. | Hindi ka babayaran para sa iyong pagsusuri sa gawa ng mga kasamahan, kung kaya, ang mga for-profit publisher ang nakikinabang. | -| Ikaw ang nagmamay-ari sa intellectual property (IP) na ginagawa mo at maipapamahagi mo ito ayon sa mga transparent na tuntunin. | Ang home institution mo ang nagmamay-ari sa IP na ginagawa mo. Hindi transparent ang access sa IP. | -| Dahil on-chain ang lahat ng hakbang, ibinabahagi ang buong pananaliksik, kasama ang data mula sa mga hindi matagumpay na eksperimento. | Dahil sa publication bias, mas malamang na ibahagi ng mga mananaliksik ang mga eksperimentong naging matagumpay. | - -## Ethereum at DeSci {#ethereum-and-desci} - -Ang decentralized science system ay mangangailangan ng maigting na seguridad, maliit na monetary cost at transaction cost, at mahusay na ecosystem para sa pag-develop ng application. Ibinibigay ng Ethereum ang lahat ng kailangan para gumawa ng decentralized science stack. - -## Mga use case ng DeSci {#use-cases} - -Ginagawa ng DeSci ang scientific toolset na mag-o-onboard sa Web2 academia sa digital na mundo. Nasa ibaba ang mga halimbawa ng mga use case na maibibigay ng Web3 na siyentipikong komunidad. - -### Paglalathala {#publishing} - -Ang paglalathala ng mga siyentipikong pananaliksik ay kilala bilang nakakaligalig dahil pinapamahalaan ito ng mga publishing house na umaasa sa libreng trabaho ng mga siyentipiko, reviewer, at editor para mabuo ang mga pananaliksik, ngunit maniningil ng napakamahal na bayarin sa paglalathala. Kadalasan, hindi naa-access ng publiko, na karaniwang hindi direktang nagbayad para sa pananaliksik at mga gastos sa paglalathala sa pamamagitan ng pagbubuwis, ang mismong pananaliksik nang hindi nagbabayad sa publisher. Ang kabuuang bayarin para sa paglalathala ng bawat isang siyentipikong pananaliksik ay kadalasang halagang may limang digit ($USD), na sumisira sa konsepto ng siyentipikong kaalaman bilang [public good](https://www.econlib.org/library/Enc/PublicGoods.html) habang kumikita ng napakalaking halaga para sa mallit na grupo ng mga publisher. - -Mayroong mga libre at open-access na platform gaya ng mga pre-print server, [tulad ng ArXiv](https://arxiv.org/). Gayunpaman, ang mga platform na ito ay walang paraan ng pagkontrol sa kalidad, [mekanismo laban sa Sybil attack,](https://csrc.nist.gov/glossary/term/sybil_attack) at karaniwang hindi sinusubaybayan ang mga pamantayan sa antas ng artikulo. Ibig sabihin nito, karaniwang ginagamit lang ang mga ito para magsapubliko ng pananaliksik bago isumite sa tradisyonal na publisher. Sa SciHub, libreng makukuha ang mga nailathalang pananaliksik, pero hindi legal. Makukuha lang din ang mga pananaliksik kapag nabayaran na ang mga publisher at naprotektahan na ng mga ito ang pananaliksik sa mahigpit na batas sa copyright. Dahil dito, malaki ang pangangailangan para sa accessible na siyentipikong pananaliksik at data na may naka-embed na mekanismo ng pagiging lehitimo at model para sa insentibo. Makikita sa Web3 ang mga tool para makagawa ng ganitong system. - -### Reproducibility at replicability {#reproducibility-and-replicability} - -Ang reproductibility at replicability ay mga pundasyon ng de-kalidad na scientific discovery. - -- Maaaring makuha ang mga reproducible na resulta nang maraming magkakasunod na beses ng parehong team gamit ang parehong pamamaraan. -- Maaaring makuha ng ibang grupo ang mga replicable na resulta gamit ang parehong experimental setup. - -Tinitiyak ng mga bagong Web3-native tool na pundasyon ng pagtuklas ang reproducibility at replicability. Puwede nating ilagay ang de-kalidad na agham sa teknolohikal na aspeto ng akademya. Sa Web3, makakagawa ng mga attestation para sa bawat bahagi ng pagsusuri: ang raw data, computational engine, at resulta ng application. Ang maganda sa mga consensus sytem ay kapag gumawa ng pinagkakatiwalaang network para sa pagpapanatili ng mga bahaging ito, maaaring maging responsable ang bawat kasapi ng network sa pag-reproduce ng kalkulasyon at pag-validate sa bawat resulta. - -### Pagpopondo {#funding} - -Sa kasalukuyan, ang standard model para sa pagpopondo sa agham ay sumusulat ang mga indibidwal o grupo ng mga siyentipiko ng mga aplikasyon sa isang funding agency. Binibigyan ng puntos ng isang maliit na panel ng mga pinagkakatiwalaang indibidwal ang mga aplikasyon at pagkatapos ay kinakapanayam ng mga ito ang mga kandidato bago igawad ang pondo sa ilang aplikante. Bukod sa paggawa ng mga hadlang na humahantong sa napakatagal na panahon ng paghihintay sa pagitan ng pag-apply at pagtanggap ng grant, kilala ang model na ito na madaling maimpluwensyahan ng mga personal na opinyon, pansariling interes, at pulitika ng review panel. - -Ayon sa mga pag-aaral, hindi napipili ng mga grant review panel ang mga de-kalidad na proposal dahil labis na naiiba ang resulta noong ibinigay ang mga parehong proposal sa ibang mga panel. Dahil sa kakulangan saa pondo, mas kaunti na lamang ang napagbibigyan nito, at mas nakatutok sa mga mas matagal nang mga mananaliksik na may mga proyektong konserbatibo. Dahil dito, naging sobrang kompetitibo ang pagkuha ng pondo, nagtakda ng mga hindi katanggap-tanggap na insentibo, at nalimitahan ang inobasyon. - -May potensyal ang Web3 na baguhin ang hindi epektibong funding model na ito sa pamamagitan ng pagsubok sa iba't ibang model para sa insentibo na ginawa ng DAO at Web3. Ang [retroactive public goods funding](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), [quadratic funding](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), [DAO governance](https://www.antler.co/blog/daos-and-web3-governance) at [mga tokenized na incentive structure](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) ang ilan sa mga Web3 tool na maaaring bumago sa pagpopondo para sa agham. - -### Pagmamay-ari at pag-develop sa IP {#ip-ownership} - -Ang intellectual property (IP) ay malaking problema sa tradisyonal na agham: mula sa pagkapako sa mga unibersidad, o hindi paggamit sa mga ito sa mga biotech, hanggang sa kahirapan sa pagtantya sa halaga nito. Gayunpaman, bihasa ang Web3 pagdating sa pagmamay-ari sa mga digital asset (tulad ng siyentipikong data o mga artikulo) sa tulong ng [mga non-fungible token (NFTs)](/nft/). - -Tulad kung paano nagagawa ng mga NFT na ibalik ang kita para sa mga susunod pang transaksyon sa orihinal na creator, puwede kang magtakda ng mga transparent na value attribution chain para gantimpalaan ang mga mananaliksik, governing body (tulad ng mga DAO), o maging ang mga subject na pinagkukunan ng data. - -Ang [IP-NFTs](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) ay puwede ring maging susi sa repository ng decntralized data ng mga isinasagawang eksperimento sa pananaliksik, at puwede rin itong gamitin sa NFT at [DeFi](/defi/) financialization (mula sa fractionalization hanggang sa mga lending pool at value appraisal). Binibigyang-daan din nito ang mga native na on-chain na entity gaya ng mga DAO tulad ng [VitaDAO](https://www.vitadao.com/) na magsagawa ng pananaliksik nang direkta on-chain. Maaaring may mahalagang papel din sa DeSci ang pagdating ng mga non-transferable na ["soulbound" token](https://vitalik.ca/general/2022/01/26/soulbound.html) sa pamamagitan ng pagbibigay-daan sa mga indibidwal na patunayan ang kanilang karanasan at kredensyal na nauugnay sa kanilang Ethereum address. - -### Pag-store, pag-access, at architecture ng data {#data-storage} - -Ang siyentipikong data ay maaaring gawing mas accessible gamit ang mga pattern ng Web3, at binibigyang-daan ng malawak na storage na malampasan ng pananaliksik ang mga cataclysmic event. - -Dapat itong magsimula sa isang system na maa-access ng anumang decentralized identity na may hawak ng mga naaangkop at nave-verify na kredensyal. Dahil dito, secure na mare-replicate ng mga pinagkakatiwalaang partido ang sensitibong data, na nagbibigay-daan sa redundacy at paglaban sa censorship, reproduction ng mga resulta, at maging ang kakayahan ng maraming partido na mag-collaborate at magdagdag ng bagong data sa dataset. Ang mga paraan ng confidential computing tulad ng [compute-to-data](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol) ay nagbibigay ng mga alternatibong paraan ng pag-access sa pag-replicate ng raw data, na gumagawa ng mga Trusted Research Environment para sa mga pinakasensitibong data. Ang mga Trusted Research Environment ay [binanggit ng NHS](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) bilang future-facing solution para sa privacy ng data at collaboration sa pamamagitan ng paggawa ng ecosystem kung saan secure na magagamit ng mga mananaliksik ang data on-site gamit ang mga standardized na environment para sa pagbabahagi ng code at mga kagaiwan. - -Sinusuportahan ng mga flexible na Web3 data solution ang mga sitwasyong nabanggit at nagsisilbi itong pundasyon para sa ganap na Open Science, kung saan makakagawa ng public goods are mga mananaliksik nang hindi nangangailangan ng mga pahintulot para ma-access o mga bayarin. Ang mga Web3 public data solution tulad ng IPFS, Arweave, at Filecoin ay ginawa para sa decentralization. Halimbawa, nagbibigay ang dClimate ng pangkalahatang access sa data ng klima at lagay ng panahon, kabilang iyong mula sa mga weather station at mga predictive climate model. - -## Makibahagi {#get-involved} - -Tingnan ang mga proyekto at sumali sa komunidad ng DeSci. - -- [DeSci.Global: kalendaryo ng mga global event at meetup](https://desci.global) -- [Telegram ng Blockchain for Science](https://t.me/BlockchainForScience) -- [Molecule: Maglaan at makakuha ng pondo para sa iyong mga proyektong pananaliksik](https://discover.molecule.to/) -- [VitaDAO: makatanggap ng pondo sa pamamagitan ng mga sponsored na research agreement para sa longevity research](https://www.vitadao.com/) -- [ResearchHub: mag-post ng resulta ng siyentipikong pag-aaral at makipag-usap sa mga kapwa mananaliksik](https://www.researchhub.com/) -- [LabDAO: mag-fold ng protein in-silico](https://alphafodl.vercel.app/) -- [dClimate API: mag-query ng data ng klima na kinolekta ng decentralized community](https://api.dclimate.net/) -- [DeSci Foundation: builder ng tool sa paglalathala ng DeSci](https://descifoundation.org/) -- [DeSci.World: one-stop shop para tingnan at mag-engage ang mga user sa decentralized science](https://desci.world) -- [Fleming Protocol: open-source data economy na naghihikayat ng collaborative na biomedical discovery](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [OceanDAO: pagpopondo na pinapamahalaan ng decentralized autonomous organization (DAO) para sa agham na nauugnay sa data](https://oceanprotocol.com/dao) -- [Opscientia: mga bukas na workflow ng decentralized science](https://opsci.io/research/) -- [LabDAO: mag-fold ng protein in-silico](https://alphafodl.vercel.app/) -- [Bio.xyz: makakuha ng pondo para sa iyong biotech DAO o desci project](https://www.molecule.to/) -- [ResearchHub: mag-post ng resulta ng siyentipikong pag-aaral at makipag-usap sa mga kapwa mananaliksik](https://www.researchhub.com/) -- [VitaDAO: makatanggap ng pondo sa pamamagitan ng mga sponsored na research agreement para sa longevity research](https://www.vitadao.com/) -- [Fleming Protocol: open-source data economy na naghihikayat ng collaborative na biomedical discovery](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [Active Inference Lab](https://www.activeinference.org/) -- [CureDAO: Platform para sa Precision Health na Pagmamay-ari ng Komunidad](https://docs.curedao.org/) -- [IdeaMarkets: nagbibigay-daan sa decentralized scientific credibility](https://ideamarket.io/) -- [DeSci Labs](https://www.desci.com/) - -Tumatanggap kami ng mga mungkahi para sa mga bagong proyekto na ililista - tingnan ang aming [patakaran sa pagsasama sa listahan](/contributing/adding-desci-projects/) para magsimula! - -## Karagdagang pagbabasa {#further-reading} - -- [DeSci Wiki ni Jocelynn Pearl at ng Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) -- [Gabay sa decentralized biotech ni Jocelynn Pearl para sa a16z future](https://future.a16z.com/a-guide-to-decentralized-biotech/) -- [Ang sitwasyon para sa DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) -- [Gabay sa DeSci](https://future.com/what-is-decentralized-science-aka-desci/) -- [Mga mapagkukunan tungkol sa decentralized science](https://www.vincentweisser.com/decentralized-science) -- [Biopharma IP-NFTs ng Molecule - Isang Teknikal na Paglalarawan](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) -- [Paggawa ng mga Trustless na System of Science ni Jon Starr](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) -- [Ang Pag-usbong ng Biotech DAOs](https://molecule.to/blog/the-emergence-of-biotech-daos) -- [Paul Kohlhaas - DeSci: Ang Kinabukasan ng Decentralized Science (podcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) -- [Isang Ontolohiya ng Aktibong Inference para sa Decentralized Science: mula sa Situated Sensemaking hanggang sa Epistemic Commons](https://zenodo.org/record/6320575) -- [DeSci: Ang Kinabukasan ng Pananaliksik ni Samuel Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) -- [Pondo para sa Agham (Epilogo: DeSci at bagong crypto primitives) ni Nadia](https://nadia.xyz/science-funding) -- [Binabago ng Decentralization ang Pag-develop ng Gamot](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) - -### Videos {#videos} - -- [Ano ang Decentralized Science?](https://www.youtube.com/watch?v=-DeMklVWNdA) -- [Usapan sa pagitan ni Vitalik Buterin at ng siyentipikong si Aubrey de Grey tungkol sa intersection ng longevity research at crypto](https://www.youtube.com/watch?v=x9TSJK1widA) -- [Sira ang Pampublikasyon ng Siyentipiko. Maaayos Ba Ito ng Web3?](https://www.youtube.com/watch?v=WkvzYgCvWj8) -- [Juan Benet - DeSci, Independent Labs, at Large Scale Data Science](https://www.youtube.com/watch?v=zkXM9H90g_E) -- [Sebastian Brunemeier - Paano Mababago ng DeSci ang Biomedical Research at Venture Capital](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/fil/nft/index.md b/src/content/translations/fil/nft/index.md deleted file mode 100644 index 2c4c6cfc3e7..00000000000 --- a/src/content/translations/fil/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Non-fungible token (NFT) -description: Isang pangkalahatang-ideya ng mga NFT sa Ethereum -lang: fil -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: Logo ng Eth naka display via hologram. -summaryPoint1: Isang paraan para katawanin ang kahit anong natatangi bilang Ethereum-based asset. -summaryPoint2: Mas binibigyang-kakayahan ngayon ng mga NFT ang mga content creator. -summaryPoint3: Pinapagana ng mga smart contract sa Ethereum blockchain. ---- - -## Ano ang NFTs? {#what-are-nfts} - -Ang mga NFT ay mga token na magkakaiba. May iba't ibang property (non-fungible) ang bawat NFT at limitado lang ang bilang nito. Iba ito sa mga token tulad ng mga ERC-20 kung saan magkakapareho at may magkakaparehong property ('fungible') ang bawat token. Wala kang pakialam sa partikular na dollar bill sa wallet mo, dahil pare-pareho at magkakasing halaga ang mga ito. Gayunpaman, mahalaga _sa'yo_ kung aling partikular na NFT ang pagmamay-ari mo, dahil may mga natatanging property ang bawat isa, kung kaya, matutukoy mo ang pagkakaiba nito sa iba ('non-fungible'). - -Dahil sa pagiging natatangi ng bawat NFT, mato-tokenize ang mga bagay tulad ng art, mga collectible, o kahit real estate, kung saan kumakatawan ang isang partikular at natatanging NFT sa partikular na bagay sa totoong mundo o digital item. Sine-secure ng Ethereum blockchain ang pagmamay-ari sa isang asset – walang puwedeng magbago ng record ng pagmamay-ari o kumopya/mag-paste para gumawa ng bagong NFT. - - - -## Ang internet ng mga asset {#internet-of-assets} - -Nilulutas ng mga NFT at Ethereum ng ilan sa mga problema sa internet ngayon. Habang nagiging mas digital ang lahat, kailangang i-replicate ang mga property ng mga pisikal na item tulad ng kakapusan, pagiging natatangi, at patunay ng pagmamay-ari. sa paraang hindi kontrolado ng isang sentral na organisasyon. Halimbawa, gamit ang mga NFT, puwede kang magmay-ari ng music mp3 na hindi para lang sa partikular na music app ng isang kumpanya, o puwede kang magmay-ari ng isang social media handle na puwede mong ibenta o i-swap, pero hindi maaaring basta-basta kunin mula sa iyo ng isang platform provider. - -Ganito ang hitsura ng internet ng mga NFT kumpara sa internet na ginagamit ng karamihan sa atin ngayon... - -### Pag-kumpara {#nft-comparison} - -| Internet ng NFT | Ang internet sa kasalukuyan | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Pagmamay-ari mo ang iyong mga asset! Ikaw lang ang puwedeng magbenta at mag-swap sa mga ito. | Puwede kang magrenta ng asset mula sa isang organisasyon. | -| Ang mga NFT ay digitally unique, walang dalawang NFT na magkapareho. | Kadalasan, hindi mapag-iba sa orihinal ang kopya ng isang entity. | -| Ang pagmamay-ari sa isang NFT ay naka-store sa blockchain para ma-verify ng sinuman. | Ang mga record ng pagmamay-ari sa mga digital item ay naka-store sa mga server na kontrolado ng mga institusyon – dapat mo silang pagkatiwalaan. | -| Ang NFTs ay mga smart contracts sa Ethereum. Ibig sabihin, madali silang gamitin sa iba pang smart contract at app sa Ethereum! | Karaniwang kailangan ng mga kumpanya na may mga digital item ng sarili nilang "walled garden" infrastructure. | -| Magagawa ng mga content creator na ibenta ang kanilang gawa kahit saan at mag-access ng global market. | Umaasa ang mga creator sa infrastructure at distribusyon ng mga platform na ginagamit nila. Madalas na napapailalim ang mga ito sa mga tuntunin ng paggamit at mga limitasyon sa lokasyon. | -| Puwedeng panatilihin ng mga NFT creator ang mga karapatan sa pagmamay-ari sa sarili nilang gawa, at puwede nilang direktang ilagay ang mga royalty sa kontrata ng NFT. | Naitatabi ng mga platform, tulad ng mga serbisyo sa music streaming, ang malaking bahagi ng kita mula sa mga benta. | - -## Paano gumagana ang mga NFT? {#how-nfts-work} - -Tulad ng anumang token na inilabas sa Ethereum, ang mga NFT ay galing sa smart contract. Sumusunod ang smart contract sa isa sa ilang pamantayan ng NFT (karaniwang ERC-721 o ERC-1155) na nagtatakda kung ano ang mga function ng kontrata. Puwedeng lumikha ('mag-mint') ng mga NFT ang kontrata at italaga ang mga ito sa isang partikular na may-ari. Tinutukoy sa kontrata ang pagmamay-ari sa pamamagitan ng pagmamapa ng mga partikular na NFT sa mga partikular na address. Ang NFT ay may ID at nauugnay na metadata na nagbibigay ng kakaibang katangian sa token. - -Kapag gumawa o nag-mint ng NFT ang isang tao, nag-e-execute talaga siya ng function sa smart contract na nagtatalaga ng partikular na NFT sa address niya. Ang impormasyon na ito ay naka-store sa storage ng kontrata, na bahagi ng blockchain. Puwedeng magdagdag pa ang creator ng kontrata ng logic sa kontrata, halimbawa, na naglilimita ng kabuuang supply o na tumutukoy ng royalty na ibabayad sa creator sa tuwing may tina-transfer na token. - -## Saan ginagamit ang mga NFT? {#nft-use-cases} - -Ang mga NFT ay ginagamit para sa iba't ibang bagay, kabilang ang: - -- pagpapatunay na dumalo ka sa isang event -- pagpapatunay na natapos mo ang isang kurso -- mga ownable item para sa mga laro -- digital art -- pag-tokenize sa mga real-world asset -- pagpapatunay ng iyong online na pagkakakilanlan -- pagkontrol sa access sa content -- ticketing -- mga decentralized na internet domain name -- collateral sa DeFi - -Maaaring artist ka na gustong ibahagi ang gawa mo gamit ang mga NFT nang hindi nawawalan ng kontrol at nang hindi isinasakripisyo ang kita mo sa mga intermediary. Puwede kang gumawa ng bagong kontrata at tukuyin ang bilang ng mga NFT, mga property ng mga ito, at isang link sa ilang partikular na artwork. Bilang artist, puwede mong ilagay sa smart contract ang mga royalty na dapat ibayad sa iyo (halimbawa, i-transfer ang 5% ng sale price sa may-ari ng kontrata sa tuwing may tina-transfer na NFT). Palagi mo ring mapapatunayan na ginawa mo ang mga NFT dahil pagmamay-ari mo ang wallet na nag-deploy ng kontrata. Madaling mapapatunayan ng mga buyer mo na nagmamay-ari sila ng authentic na NFT galing sa koleksyon mo dahil nauugnay ang address ng wallet nila sa token sa smart contract mo. Magagamit nila ito sa buong Ethereum ecosystem nang may kumpiyansa sa authenticity nito. - -O parang ticket lang sa isang sporting event. Kung paanong mapipili ng organizer ng event kung gaano karaming ticket ang ibebenta, makakapagpasya ang creator ng NFT kung ilang replica ang mayroon. Kung minsan, mga exact replica ang mga ito, tulad ng 5000 General Admission ticket. Kung minsan, may ilang mini-mint na halos magkakatulad, pero may kaunting pagkakaiba, tulad ng ticket na may nakatalagang upuan. Maaaring bilhin at ibenta nang peer-to-peer ang mga ito nang hindi kinakailangang magbayad sa mga ticket handler at palaging sigurado ang buyer sa authenticity ng ticket sa pamamagitan ng pagtingin sa address ng kontrata. - -Sa ethereum.org, ginagamit ang mga NFT para ipakita na nag-contribute ang mga tao sa aming GitHub repository o sumali sa mga tawag, at mayroon din kaming sariling domain name para sa NFT. Kung magko-contribute ka sa ethereum.org, maaari kang mag-claim ng POAP NFT. May ilang crypto meetup na gumamit ng mga POAP bilang ticket. [Iba pang detalye tungkol sa pag contribute](/contributing/#poap). - -![ethereum.org POAP](./poap.png) - -Ang website na ito ay mayroon ding alternatibong domain name na pinapagana ng mga NFT, ang **ethereum.eth**. Ang aming `.org` address ay sentral na pinamamahalaan ng domain name system (DNS) provider, samantalang ang ethereum`.eth` ay nakarehistro sa Ethereum sa pamamagitan ng Ethereum Name Service (ENS). At pagmamay-ari at pinamamahalaan namin ito. [Tingnan ang aming ENS record](https://app.ens.domains/name/ethereum.eth) - -[Iba pang detalye tungkol sa ENS](https://app.ens.domains) - - - -### Seguridad ng NFT {#nft-security} - -Ang seguridad ng Ethereum ay mula sa proof-of-stake. Ang system na ito ay idinisenyo para ekonomikal na i-disincentivize ang mga nakakapinsalang pagkilos, kung kaya, tamper-proof ang Ethereum. Ginagawa nitong posible ang mga NFT. Kapag naisapinal na ang block na naglalaman ng iyong NFT transaction, kakailanganing gumastos ng milyon-milyong ETH ang attacker para mapalitan ito. Matutukoy kaagad ng sinumang nagpapatakbo ng Ethereum software ang hindi matapat na tampering sa NFT, at papatawan ng parusa sa ekonomikal na paraan at tatanggalin ang bad actor. - -Pinakamadalas na nauugnay sa mga phishing scam, vulnerability ng smart contract o error ng user (gaya ng hindi sinasadyang pagsisiwalat ng mga pribadong key) ang mga isyu sa seguridad kaugnay ng mga NFT, kung kaya, kritikal para sa mga may-ari ng NFT ang mainam na seguridad para sa wallet. - - - Iba pang detalye tungkol sa seguridad - - -## Karagdagang pagbabasa {#further-reading} - -- [Gabay ng baguhan sa mga NFT](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, Enero 2020_ -- [EtherscanNFT tracker](https://etherscan.io/nft-top-contracts) -- [ERC-721 token standard](/developers/docs/standards/tokens/erc-721/) -- [ERC-1155 token standard](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/fil/refi/index.md b/src/content/translations/fil/refi/index.md deleted file mode 100644 index 16c484f7397..00000000000 --- a/src/content/translations/fil/refi/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: Regenerative Finance (ReFi) -description: Pangkalahatang-ideya ng Regenerative Finance (ReFi) at mga kasalukuyang use case nito. -lang: fil -template: use-cases -emoji: ":recycle:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Isang alternatibong sistema ng ekonomiya na ibinatay sa mga prinsipyong regenerative -summaryPoint2: Isang pagsubok na gamitin ang Ethereum upang malutas ang mga pandaigdigang problema sa koordinasyon tulad ng pagbabago ng klima -summaryPoint3: Isang tool na susukatin nang husto ang mga ecological benefit asset tulad ng mga verified na carbon credit ---- - -## Ano ang ReFi? {#what-is-refi} - -Ang **regenerative finance (ReFi)** ay isang hanay ng mga tool at ideya na ibinatay sa mga blockchain, na naglalayong gumawa ng mga ekonomiya na regenerative, sa halip na extractive o exploitative. Kalaunan, mauubos ng mga extractive system ang mga resource na available, at magko-collapse ang mga ito. Kapag walang regenerative na mekanismo, walang resilience ang mga ito. Ipinagpapalagay sa ReFi na dapat i-decouple ang paggawa ng monetary value sa hindi sustainable na paghango ng mga resource mula sa ating planeta at mga komunidad. - -Sa halip, layunin ng ReFi na lutasin ang mga problemang pangkalikasan, pangkomunidad, o panlipunan sa pamamagitan ng paggawa ng mga regenerative cycle. Mapapakinabangan ng mga kalahok ang mga system na ito habang nakikinabang din sa mga ito ang mga ecosystem at komunidad. - -Ang isa sa mga pundasyon ng ReFi ay ang konsepto ng regenerative economics na unang ginamit ni John Fullerton ng [Capital Institute](https://capitalinstitute.org). Nagpanukala siya ng walong magkakaugnay na prinsipyo na sumusuporta sa systemic health: - -![Walong magkakaugnay na prinsipyo](../../assets/use-cases/refi-regenerative-economy-diagram.png) - -Isinasakatuparan ng mga proyekto sa ReFi ang mga prinsipyong ito gamit ang [mga smart contract](/developers/docs/smart-contracts/) at mga [decentralized finance (DeFi)](/defi/) application para hikayatin ang mga regenerative na kagaiwan, hal., pagpapanumbalik ng sigla ng mga napinsalang ecosystem, at pangasiwaan ang large-scale collaboration sa mga pandaigdigang isyu tulad ng pagbabago ng klima at pagkaubos ng biodiversity. - -May pagkakapareho ang ReFi sa [decentralized science (DeSci)](/desci/) movement, na gumagamit ng Ethereum bilang platform para pondohan, gawin, suriin, kilalanin, i-store, at ipakalat ang siyentipikong kaalaman. Ang mga tool sa DeSci ay maaaring maging kapaki-pakinabang para sa pagbuo ng mga nave-verify na pamantayan at pamamaraan para sa pagpapatupad at pagsusubaybay sa mga regenerative na aktibidad tulad ng pagtatanim ng mga puno, pag-aalis ng plastic sa karagatan, o pagpapanumbalik ng sigla ng napinsalang ecosystem. - -## Tokenization ng mga carbon credit {#tokenization-of-carbon-credits} - -Ang **[voluntary carbon market (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** ay mekanismo para pondohan ang mga proyekto na may napatunayang positibong epekto sa mga carbon emission, tulad ng pababain ang mga kasalukuyang emission o alisin ang mga greenhouse gas na nasa atmosphere na. Matapos ma-verify, makakatanggap ang mga proyektong ito ng asset na tinatawag na "mga carbon credit," na maibebenta ng mga ito sa mga indibidwal at organisasyong gustong suportahan ang mga pagsisikap para protektahan ang klima. - -Bukod sa VCM, may mga carbon market na itinatakda ng pamahalaan (‘mga compliance market’) na naglalayong magtakda ng carbon price sa pamamagitan ng mga batas o regulasyon sa isang partikular na hurisdiksyon (hal. bansa o rehiyon), na nagkokontrol sa supply ng mga permit na ipapamahagi. Hinihikayat ng mga compliance market ang mga polluter sa kanilang hurisdiksyon na bawasan ang mga emission, pero wala silang kakayahang alisin ang mga greenhouse gas na nasa atmosphere na. - -Kahit dine-develop ito sa mga nakaraang dekada, patuloy na nakakaranas ang VCM ng iba't ibang isyu: - -1. Labis na fragmented na liquidity -2. Mga hindi malinaw na mekanismo para sa transaksyon -3. Mahal na bayarin -4. Napakabagal na trading -5. Kakulangan sa scalability - -Ang paglipat ng VCM sa bagong blockchain-based **digital carbon market (DCM)** ay maaaring maging oportunidad upang ma-upgrade ang kasalukuyang teknolohiya para sa pag-validate, pag-transact at paggamit ng mga carbon credit. Nagbibigay-daan ang mga blockchain sa publicly verifiable data, access para sa iba't ibang user, at higit na liquidity. - -Gumagamit ang mga proyekto sa ReFi ng blockchain technology para solusyonan ang marami sa mga problema ng tradisyonal na market: - -- **Tinitipon ang liquidity sa iilang liquidity pool** na malayang mate-trade ng kahit sino. Ginagamit ng malalaking organisasyon, pati na rin ng mga indibidwal na user ang mga pool na ito nang hindi manual na naghahanap ng mga seller/buyer, bayarin sa paglahok, o paunang pagpaparehistro. -- **Nire-record ang lahat ng transaksyon sa mga pampublikong blockchain**. Ang daang tinatahak ng bawat carbon credit dahil sa aktibidad sa trading ay palaging masusubaybayan sa sandaling maging available ito sa digital carbon market (DCM). -- **Halos agaran ang bilis ng transaksyon**. Maaaring abutin nang ilang araw o linggo ang pagkuha ng maraming carbon credit sa pamamagitan ng mga legacy market, pero magagawa ito sa loob ng ilang segundo sa DCM. -- **Isinasagawa ang mga gawain sa trading nang walang intermediary**, na naniningil ng mahal na bayarin. Ayon sa data mula sa isang analytics firm, kumakatawan ang mga digital carbon credit sa [62% pagpapabuti sa gastos kumpara sa mga katumbas na tradisyonal na credit](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne). -- **Scalable ang DCM** at kaya nitong tugunan ang mga demand ng mga indibidwal at multinational corporation. - -### Mga pangunahing bahagi ng DCM {#key-components-dcm} - -Apat na pangunahing bahagi ang bumubuo sa kasalukuyang landscape ng DCM: - -1. Tinitiyak ng mga registry tulad ng [Verra](https://verra.org/project/vcs-program/registry-system/) at [Gold Standard](https://www.goldstandard.org/) na mapagkakatiwalaan ang mga proyektong gumagawa ng mga carbon credit. Nagpapatakbo rin ang mga ito ng mga database kung saan nagmumula ang mga digital carbon credit at maaaring i-transfer o maubos (hindi na gagamitin) ang mga ito. - -May bagong wave ng mga inobatibong proyekto na ibinabatay sa mga blockchain na sinusubukang baguhin ang mga kasalukuyang nasa sektor na ito. - -2. Ang mga carbon bridge, na kilala rin bilang mga tokenizer, ay nagbibigay ng teknolohiya upang ipakita o i-transfer sa DCM ang mga carbon credit mula sa mga tradisyonal na registry. Kabilang sa mga kilalang halimbawa ang [Toucan Protocol](https://toucan.earth/), [C3](https://c3.app/), at [Moss.Earth](https://moss.earth/). -3. Nag-aalok ang mga naka-integrate na serbisyo ng pag-iwas sa paglalabas ng carbon at/o credit sa pag-aalis sa mga end-user nang sa gayon ay makuha nila ang benepisyong pangkapaligiran ng isang credit at ibahagi sa mundo ang kanilang suporta sa mga pagsisikap para protektahan ang klima. - -May ilang serbisyo tulad ng [Klima Infinity](https://www.klimadao.finance/infinity) at [Senken](https://senken.io/) na nag-aalok ng iba't ibang uri ng mga proyektong binuo ng mga third party at inilabas sa ilalim ng mga itinakdang pamantayan tulad ng Verra; habang ang ibang serbisyo tulad ng [Nori](https://nori.com/) ay nag-aalok lang ng mga partikular na proyekto na ginawa sa ilalim ng sarili nilang pamantayan para sa carbon credit, na ibinibigay nila at pinaglalaanan nila ng sariling marketplace. - -4. Pinapangasiwaan ng mga kasalukuyang rail at infrastructure ang pagpapalawak ng epekto at kahusayan ng buong supply chain ng carbon market. Nagsu-supply ang [KlimaDAO](http://klimadao.finance/) ng liquidity bilang public good (nagbibigay-daan sa kahit sino na bumili o magbenta ng mga carbon credit sa transparent na presyo), nagbibigay ito ng mga reward kapalit ng mas mataas na throughput ng mga carbon market at pag-retire, at nagbibigay ito ng madaling gamiting interoperable tooling para ma-access ang data tungkol sa, pati na rin ang kumuha at mag-retire ng, iba't ibang tokenized na carbon credit. - -## Ang ReFi sa labas ng mga carbon market {#refi-beyond} - -Bagama't may matinding pagpapahalaga sa mga carbon market sa pangkalahatan at pag-transition ng VCM sa DCM partikular na sa loob ng space, hindi limitado sa carbon ang terminong “ReFi”. Maaaring gumawa at mag-tokenize ng iba pang environmental asset at hindi lang mga carbon credit. Ipinapahiwatig nitong maaari ding itakda ang presyo ng iba pang negatibong externality sa mga base layer ng mga susunod pang sistema ng ekonomiya. Dagdag pa rito, ang regenerative na aspeto ng economic model na ito ay maaaring gamitin sa iba't ibang aspeto, tulad ng pagsuporta sa pagpopondo sa mga public good sa pamamagitan ng mga quadratic funding platform gaya ng [Gitcoin](https://gitcoin.co/). Binibigyang-kakayahan ng mga organisasyon na ibinatay sa ideya ng pakikilahok na bukas sa lahat at pantay-pantay na pamamahagi ng mga resource ang lahat na maglaan ng pera sa mga proyekto sa open-source software, pati na rin sa mga proyektong pang-edukasyon, pangkalikasan, at pangkomunidad. - -Sa pamamagitan ng paglihis ng kapital sa mga extractive na kagawian at pagdirekta nito sa regenerative na flow, makakapagsimula nang mas mabilis at mas madali ang mga proyekto at kumpanya na nagbibigay ng mga benepisyong panlipunan, pangkapaligiran, o pangkomunidad—na posibleng hindi makakuha ng pondo sa tradisyonal na pinansya. Dahil sa pag-transition sa ganitong model ng pagpopondo, nagkakaroon din ng mga mas inklusibong sistema ng ekonomiya, kung saan ang mga tao mula sa bawat demograpiko ay puwedeng maging mga aktibong kalahok, sa halip na mga simpleng tagamasid lang. Ipinapakita ng ReFi ang Ethereum bilang mekanismo para sa pagsasaayos ng pagkilos sa mga banta sa pamumuhay na kinakaharap ng ating species at lahat ng buhay sa planeta natina ating planeta—bilang pangunahing haligi ng bagong uri ng ekonomiya, na nagbibigay daan sa mas matatag na kinabukasan sa mga susunod na siglo. - -## Karagdagang babasahin tungkol sa ReFi - -- [Isang high-level na pangkalahatang-ideya ng mga carbon currency at ang kanilang lugar sa ekonomiya](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) -- [The Ministry for the Future, na isang nobela na nagpapakita ng papel ng isang carbon-backed currency sa paglaban sa pagbabago ng klima](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) -- [Isang detalyadong ulat mula sa Taskforce for Scaling Voluntary Carbon Markets](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) -- [Ang CoinMarketCap Glossary entry nina Kevin Owocki at Evan Miyazono tungkol sa ReFi](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/fil/smart-contracts/index.md b/src/content/translations/fil/smart-contracts/index.md deleted file mode 100644 index 7b87df57dae..00000000000 --- a/src/content/translations/fil/smart-contracts/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Smarteng kontrata -description: Isang hindi teknikal na panimula sa mga smart contract -lang: fil ---- - -# Introduction to smart contracts {#introduction-to-smart-contracts} - -Ang mga smart contract ang mga pangunahing building block ng application layer ng Ethereum. Mga computer program ang mga ito na naka-store sa blockchain na sumusunod sa logic na "if this then that (kung ganito ang mangyayari, ito ang susunod na mangyayari)," at tiyak na mae-execute ang mga ito alinsunod sa mga panuntunan na tinukoy ng code nito, na hindi na mababago kapag nagawa na. - -Si Nick Szabo ang gumawa ng terminong "smart contract". Noong 1994, sumulat siya ng [panimula sa konsepto](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html), at noong 1996, sumulat siya ng [pagsusuri ng magagawa ng mga smart contract](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). - -Gusto ni Szabo ng digital marketplace kung saan binibigyang-daan ng mga awtomatiko at cryptographically-secure na proseso na maisagawa ang mga transaksyon at business fuction nang walang pinagkakatiwalaang intermediary. Isinasagawa ng mga smart contract sa Ethereum ang mithiing ito. - -### Tiwala sa mga conventional na kontrata {#trust-and-contracts} - -Ang isa sa pinakamalalaking problema sa tradisyonal na kontrata ang pangangailangan ng mga mapagkakatiwalaang indibidwal na tuparin ang mga resulta ng kontrata. - -Narito ang isang halimbawa: - -Sina Alice at Bob ay nagkakarera sakay ng bisikleta. Sabihin nating pumusta ng $10 si Alice kay Bob na siya ang mananalo sa karera. Tiwala si Bob na siya ang mananalo at pumayag siya sa pusta. Sa huli, naungusan ni Alice si Bob at siya ang nanalo. Pero ayaw ibigay ni Bob ang ipinusta, at inaakusahan niya si Alice na nandaya. - -Ipinapakita ng nakakatawang halimbawang ang problema sa anumang non-smart agreement. Kahit na matugunan ang mga kundisyon ng kasunduan (halimbawa, ikaw ang nanalo sa karera), kailangan mo pa rin magtiwala sa ibang tao na tuparin ang kasunduan (ibig sabihin, ibigay ang ipinusta). - -### A digital vending machine {#vending-machine} - -Maihahambing ang smart contract sa isang vending machine, na gumagana na halos katulad ng smart contract - kapag naglagay ng mga partikular na input, siguradong makukuha ang mga paunang natukoy na output. - -- Pipili ka ng produkto -- Ipapakita ng vending machine ang presyo -- Babayaran mo ang presyo -- Kukumpirmahin ng vending machine na tama ang binayad mong halaga -- Ibibigay sa iyo ng vending machine ang iyong item - -Ilalabas lang ng vending machine ang gusto mong produkto kapag natugunan ang lahat ng kahingian. Kung hindi ka pipili ng produkto o kulang ang ilalagay mong pera, hindi ilalabas ng vending machine ang iyong produkto. - -### Awtomatikong pag-execute {#automation} - -Ang pangunahing benepisyo ng smart contract ay tiyak nitong ine-execute ang malinaw na code kapag natugunan ang ilang partikular na kundisyon. Hindi mo kailangang maghintayng tao para i-interpret ang o makipag-usap tungkol sa resulta. Inaalis nito ang pangangailangan ng mga pinagkakatiwalaang intermediary. - -Halimbawa, maaari kang mag-write ng smart contract na nag-iingat ng pondo sa escrow para sa isang bata, na magbibigay-daan sa kanyang kunin ang pondo pagkatapos ng isang partikular na petsa. Kung susubukan niyang kunin ang pondo bago ang petsang iyon, hindi mae-execute ang smart contract. O maari kang mag-write ng kontrata na awtomatiko kang binibigyan ng digital na bersyon ng titulo ng kotse kapag binayaran mo ang dealer. - -### Mga predictable outcome {#predictability} - -Malabo ang mga tradisyonal na kontrata dahil umaasa ang mga ito sa mga tao upang unawain at ipatupad ang mga ito. Halimbawa, maaaring magkaiba ang interpretasyon ng dalawang hukom sa isang kontrata, na maaaring magresulta sa hindi magkakaayon na desisyon at hindi patas na resulta. Inaalis ng mga smart contract ang posibilidad na ito. Sa halip, ine-execute ang mga smart contract nang tumpak batay sa mga kundisyong nakasulat sa code ng kontrata. Dahil sa katumpakang ito, kapag pareho ang mga sitwasyon, iisang resulta ang ibibigay ng smart contract. - -### Pampublikong record {#public-record} - -Ang mga smart contract ay kapaki-pakinabang para sa mga audit at pagsubaybay. Dahil nasa pampublikong blockchain ang mga smart contract ng Ethereum, agad na masusubaybayan ng kahit sino ang mga pag-transfer ng asset at iba pang nauugnay na impormasyon. Halimbawa, puwede mong alamin kung may nagpadala ng pera sa iyong address. - -### Pagprotekta sa privacy {#privacy-protection} - -Pinoprotektahan din ng mga smart contract ang iyong privacy. Dahil isang pseudonymous network ang Ethereum (pampublikong nakaugnay ang iyong mga transaksyon sa isang natatanging cryptographic address, at hindi sa iyong identity), kaya mapoprotektahan mo ang iyong privacy mula sa mga observer. - -### Mga nakikitang tuntunin {#visible-terms} - -Sa wakas, tulad ng mga tradisyonal na kontrata, matitingnan mo ang laman ng smart contract bago mo ito lagdaan (o kaya ay mag-interact dito). Sinisigurado ng transparency ng smart contract na masusuri ito ng kahit sino. - -## Mga use case ng smart contract {#use-cases} - -Sa pangkalahatan, magagawa ng mga smart contract ang anumang bagay na magagawa ng mga computer program. - -Magagawa ng mga itong mag-compute, gumawa ng currency, mag-store ng data, mag-mint ng NFTs, magpadala ng komunikasyon at maging gumawa ng graphics. Narito ang ilan sa mga kilalang halimbawa sa totoong buhay: - -- [Stablecoins](/stablecoins/) -- [Paggawa at pamamahagi ng mga natatangign digital asset](/nft/) -- [Isang awtomatiko at bukas na currency exchange](/get-eth/#dex) -- [Decentralized gaming](/dapps/?category=gaming) -- [Isang insurance policy na awtomatikong nagbabayad](https://etherisc.com/) -- [Isang pamantayan na nagbibigay-daan sa mga tao na gumawa ng mga naka-customize at interoperable na currency](/developers/docs/standards/tokens/) - -## More of a visual learner? {#visual-learner} - -Panoorin ang paliwanag sa Finematics tungkol sa mga smart contract: - - - -## Karagdagang pagbabasa {#further-reading} - -- [Paano Mababago ng Mga Smart Contract ang Mundo](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [Mga Smart Contract: Ang Blockchain Technology na Papalit sa Mga Abogado](https://blockgeeks.com/guides/smart-contracts/) -- [Mga smart contract para sa mga developer](/developers/docs/smart-contracts/) -- [Matuto kung paano mag-write ng mga smart contract](/developers/learning-tools/) -- [Pagiging Bihasa sa Ethereum - Ano ang Smart Contract?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/src/content/translations/fil/social-networks/index.md b/src/content/translations/fil/social-networks/index.md deleted file mode 100644 index 88114462a36..00000000000 --- a/src/content/translations/fil/social-networks/index.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: Mga decentralized na social network -description: Pangkalahatang-ideya ng mga decentralized social network sa Ethereum -lang: fil -template: use-cases -emoji: ":mega:" -sidebarDepth: 2 -image: ../../../../assets/ethereum-learn.png -summaryPoint1: Mga blockchain-based na platform para sa social interaction, at paggawa at pamamahagi ng content. -summaryPoint2: Pinoprotektahan ng mga decentralized social media network ang privacy ng user at pinapaigting ng mga ito ang seguridad ng data. -summaryPoint3: Gumagawa ng mga bagong paraan ang mga token at NFT upang pagkakitaan ang content. ---- - -Malaki ang papel na ginagampanan ng mga social network sa ating pang-araw-araw na komunikasyon at pakikipag-ugnayan. Ngunit, ang centralized na kontrol ng mga platform na ito ay nagdulot ng maraming problema: ang mga data breach, mga pagbagsak ng server, pagtanggal sa platform, censorship, at mga pag-aabuso sa privacy ang ilan sa mga trade-off na kadalasang resulta sa social media. Upang labanan ang mga isyung ito, gumagawa ang mga developer ng mga social network sa Ethereum. Maaayos ng mga decentralized social network ang marami as mga problema ng tradisyonal na social networking platform at mapapaganda ng mga ito ang karanasan ng mga user sa pangkalahatan. - -## Ano ang mga decentralized social network? {#what-are-decentralized-social-networks} - -Ang mga decentralized social network ay mga blockchain-based platform na nagpapahintulot sa mga user na makipagpalitan ng impormasyon, pati na rin mag-publish at mamahagi ng content sa mga audience. Dahil tumatakbo sa blockchain ang mga application na ito, may kakayahan ang mga itong maging decentralized at maiiwasan ng mga ito ang censorship at hindi makatuwirang pagkontrol. - -Maraming decentralized social network ang nagsisilbing mga alternatibo sa mga kilala nang social media service tulad ng Facebook, LinkedIn, Twitter, at Medium. Ngunit may ilang feature ang mga blockchain-powered social network na nagpapalamang sa mga ito sa mga tradisyonal na social platform. - -### Paano gumagana ang mga decentralized social network? {#decentralized-social-networks-overview} - -Ang mga decentralized social network ay uri ng [mga decentralized application (dapps)](/dapps/) — mga application na pinapagana ng [mga smart contract](/developers/docs/smart-contracts/) na dineploy sa blockchain. Ang contract code ay nagsisilbing backend para sa mga app na ito at nagtatakda ng business logic ng mga ito. - -Umaasa ang mga tradisyonal na social media platform sa mga database upang mag-store ng impormasyon ng user, program code, at iba pang uri ng data. Ngunit gumagawa ito ng single point-of-failure at nagdudulot ng matinding panganib. Halimbawa, [ilang oras na naging offline](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) ang mga server ng Facebook noong nakaraang taon, na naging dahilan upang hindi mapuntahan ng mga user ang platform. - -Nasa peer-to-peer network ang mga decentralized social network na binubuo ng libo-libong node sa iba't ibang bahagi ng mundo. Kahit magkaproblema ang ilang node, hindi maaantala ang network, kaya hindi papalya at hihinto ang mga application. - -Sa paggamit ng mga decentralized storage system tulad ng [InterPlanetary File System (IPFS)](https://ipfs.io/), mapoprotektahan ng mga social network na ginawa sa Ethereum ang impormasyon ng user mula sa pang-aabuso at mapaminsalang paggamit. Hindi ibebenta ng kahit sino ang iyong personal na impormasyon sa mga advertiser, at hindi rin mananakaw ng mga hacker ang mga kumpidensyal mong detalye. - -Maraming blockchain-based social platform na may mga native token na nagpapatakbo ng monetization kapag walang kita mula sa advertising. Maaaring bilhin ng mga user ang mga token na ito para ma-access ang ilang partikular na feature, magsagawa ng mga in-app na pagbili, o bigyan ng tip ang mga paborito nilang content creator. - -## Mga benepisyo ng mga decentralized social network {#benefits} - -1. Hindi nase-censor at bukas sa lahat ang mga decentralized social network. Ibig sabihin nito, hindi puwedeng i-ban, tanggalin sa platform, o limitahan ang mga user nang walang maayos na dahilan. - -2. Ibinatay ang mga decentralized social network sa mga open-source ideal at ginagawa nitong available para masiyasat ng publiko ang source code. Sa pamamagitan ng pag-aalis ng pagpapatupad ng mga malabong algrithm na pangkaraniwan sa tradisyonal na social media, maiaayon ng mga blockchain-based social network ang mgaa interes ng mga user at mga creator sa platform. - -3. Inaalis ng mga decentralized social network ang "middle-man". Ang mga content creator ang direktang nagmamay-ari sa kanilang content, at direkta silang nakikipag-ugnayan sa mga follower, fan, buyer, at iba pang partido, gamit lang ang smart contract. - -4. Bilang mga decentralized application (dapps) na tumatakbo sa Ethereum network, na itinataguyod ng pandaigdigan at peer-to-peer na network ng mga node, maliit ang posibilidad na makaranas ng downtime at paghinto ng server ang mga decentralized social network. - -5. Nagbibigay ang mga decentralized social platform ng mas magandang framework ng monetization para sa mga content creator sa pamamagitan ng mga non-fungible token (NFTs), mga in-app na pagbabayad ng crypto, at iba pa. - -6. Sa mga decentralized social network, mataas na antas ng privacy at anonymity ang nakukuha ng mga user. Halimbawa, maaaring mag-sign in ang isang indibidwal sa isang Ethereum-based social network gamit ang ENS profile o wallet—nang hindi kinakailangang magbahagi ng personally identifiable information (PII), tulad ng pangalan, email address, at iba pa. - -7. Umaasa ang mga decentralized social network sa decentralized storage, at hindi sa mga centralized database, na maituturing na mas mainam para sa pag-iingat sa data ng user. - -## Mga decentralized social network sa Ethereum {#ethereum-social-networks} - -Ang Ethereum network na ang pinipiling tool ng mga developer na gumagawa ng decentralized social media dahil sa kasikatan ng mga token nito (ERC-20/ERC-721) at sa malaking bilang ng mga user nito. Narito ang ilang halimbawa ng mga Ethereum-based social network: - -### Peepeth {#peepeth} - -Ang [Peepeth](https://peepeth.com/) ay isang microblogging platform na katulad ng Twitter. Tumatakbo ito sa Ethereum blockchain at gumagamit ito ng IPFS para mag-store ng data ng user. - -Puwedeng magpadala ang mga user ng maiikling mensahe na tinatawag na "Peeps," na hindi made-delete o mababago. Maaari kang kumuha ng mga tip o magbigay ng tip sa kahit sino sa platform sa ether (ETH) nang hindi umaalis sa app. - -### Mirror {#mirror} - -Ang [Mirror](https://mirror.xyz/) ay isang web3-enabled writing platform na may layuning maging decentralized at pagmamay-ari ng mga user. Ang mga user ay maaaring magbasa at magsulat nang libre sa Mirror sa pamamagitan lang ng pagkonekta ng kanilang mga wallet. Maaari ding mangolekta ng mga sulatin ang mga user at mag-subscribe sa mga paborito nilang manunulat. - -Ang mga post na nailathala sa Mirror ay permanenteng iso-store sa Arweave, isang decentralized storage platform, at maaaring i-mint bilang mga collectable na [non-fungible token (NFTs)](/nft/) na tinatawag na Writing NFTs. Ganap na libre para sa mga manunulat ang paggawa ng Writing NFTs, at nangyayari ang pagkolekta sa isang Ethereum L2 — kung kaya, mura, mabilis, at environmentally friendly ang mga transaksyon. - -### MINDS {#minds} - -Ang [MINDS](https://www.minds.com/) ay isa sa mga pinakaginagamit na decentralized social network. Gumagana ito tulad ng Facebook at mayroon na itong milyong-milyong user. - -Ginagamit ng mga user ang native ERC-20 token na $MIND ng platform para bayaran ang mga item. Maaari ding kumita ang mga user ng mga $MIND token sa pamamagitan ng paglalathala ng sikat na content, pag-contribute sa ecosystem, at pag-refer ng iba sa platform. - -## Mga Web2 social network sa Ethereum {#web2-social-networks-and-ethereum} - -Hindi lang ang mga native social platform sa [Web3](/web3/) ang sumusubok na i-incorporate ang blockchain technology sa social media. Pinaplano rin ng maraming centralized platform na i-integrate ang Ethereum sa kani-kanilang infrastructure: - -### Reddit {#reddit} - -Mayroon ang Reddit ng [touted Community Points](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users), na [mga ERC-20 token](/developers/docs/standards/tokens/erc-20/) makukuha ng mga user sa pamamagitan ng pag-post ng de-kalidad na content at pag-contribute sa mga online na komunidad (mga subreddit). Mare-redeem mo ang mga token na ito sa isang subreddit upang [makakuha ng mga eksklusibong pribilehiyo at benepisyo](https://www.reddit.com/community-points/). Para sa proyektong ito, nakikipagtulungan ang Reddit sa Arbitrum, na isang [layer 2](/layer-2/) rollup na idinisenyo para sukatin ang mga transaksyon sa Ethereum. - -Live na ang programa, at nagpapatakbo ang subreddit na r/CryptoCurrency [ng bersyon nito ng Community Points na tinatawag na "Moons"](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Ayon sa opisyal na paglalarawan, "ginagantimpalaan ng Moons ang mga poster, commenter, at moderator para sa kanilang mga kontribusyon sa subreddit." Dahil ang mga token na ito ay nasa blockchain (natatanggap ng mga user ang mga ito sa kanilang mga wallet), hiwalay ang mga ito sa Reddit at hindi maaaring kunin. - -Matapos ang beta phase sa Rinkeby testnet, nasa [Arbitrum Nova](https://nova.arbitrum.io/) na ngayon ang Community Points sa Reddit, na isang blockchain na pinagsasama ang mga property ng [sidechain](/developers/docs/scaling/sidechains/) at [optimistic rollup](/developers/docs/scaling/optimistic-rollups/). Maliban sa paggamit ng Community Points para makuha ang mga espesyal na feature, maaari ding i-trade ng mga user sa fiat sa mga exchange. Gayudin, ang dami ng Community Points na pagmamay-ari ng isang user ang nagtatakda ng kanyang impluwensya sa proseso ng pagpapasya sa loob ng komunidad. - -### Twitter {#twitter} - -Noong Enero 2021, inilunsad ng Twitter Blue [ ang suporta para sa mga non-fungible token (NFTs)](https://mashable.com/article/twitter-blue-nft-profile-picture), na nagpapahintulot sa mga users na ikonekta ang kanilang mga wallet at ipakita ang NFTs bilang profile picture. Habang isinusulat ito, [nag-anunsyo rin ng mga plano](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) ang social media company na gumawa ng decentralized social network sa hinaharap. - -### Instagram {#instagram} - -Noong Mayo 2022, [inanunsyo ng Instagram ang suporta para sa NFTs sa Ethereum at Polygon](https://about.instagram.com/blog/announcements/instagram-digital-collectibles). Direktang mapo-post ng mga user ang NFTs sa Instagram sa pamamagitan ng pagkonekta ng kanilang Ethereum wallet. - -## Gumamit ng mga decentralized social network {#use-decentralized-social-networks} - -- **[Status.im](https://status.im/)** - _Ang Status ay isang secure na messaging app na gumagamit ng open-source, peer-to-peer protocol, at end-to-end encryption upang protektahan ang iyong mga mensahe mula sa mga third party._ -- **[Mirror.xyz](https://mirror.xyz/)** - _Ang Mirror ay isang decentralized publishing platform na pagmamay-ari ng mga user na ginawa sa Ethereum magawa ng mga user na mangalap ng mga ideya, pagkakitaan ang content, at bumuo ng mga high-value na komunidad._ -- **[Lens Protocol](https://lens.xyz/)** - _Ang Lens Protocol ay isang composable at decentralized social graph na tumutulong sa mga creator na maipakitang pagmamay-ari nila ang kanilang content saan man sila pumunta sa digital garden ng decentralized internet._ -- **[Farcaster](https://farcaster.xyz/)** - _Ang Farcaster ay isang sapat na decentralized na social network. Open protocol ito na puwedeng suportahan ang maraming client, katulad ng email._ - -## Karagdagang pagbabasa {#further-reading} - -### Mga Artikulo {#articles} - -- [Pag-decentralize sa social media: isang gabay sa web3 social stack](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _Coinbase Ventures_ -- [Ang Mga Social Network ang Susunod na Malaking Oportunidad para sa Decentralization](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Goertzel_ -- [Ang Web3 ang susi mga social network na decentralized at pinapatakbo ng komunidad](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ -- [Pangkalahatang-ideya ng Landscape ng Blockchain Social Media](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ -- "[Paano Malulutas ng Blockchain ang Problema sa Privacy sa Social Media](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Prableen Bajpai_." -- [Papunta na sa Blockchain ang Mga Social Media Network](https://businesstechguides.co/what-are-decentralized-social-networks) — _Emmanuel Awosika_ -- [Sapat na Decentralization para sa Mga Social Network](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Varun Srinivasan_ - -### Videos {#videos} - -- [Paliwanag Tungkol sa Decentralized Social Media](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ -- [Gustong I-decentralize ng DeSo Blockchain ang Social Media](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ -- [Ang Kinabukasan ng Decentralized Social Media kasama sina Balaji Srinivasan, Vitalik Buterin, Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ - -### Mga Komunidad {#communities} - -- [Discord Server ng Status](https://discord.com/invite/3Exux7Y) -- [Discord Server ng Mirror](https://discord.com/invite/txuCHcE8wV) -- [Subreddit na r/CryptoCurrency](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/fil/staking/pools/index.md b/src/content/translations/fil/staking/pools/index.md deleted file mode 100644 index 92a55c9a1b9..00000000000 --- a/src/content/translations/fil/staking/pools/index.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: Pooled staking -description: Pangkalahatang-ideya tungkol sa kung paano magsimula sa pooled staking ng ETH -lang: fil -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-pool.png -alt: Lumalangoy sa pool ang rhino na si Leslie. -sidebarDepth: 2 -summaryPoints: - - Mag-stake at makakuha ng mga reward sa anumang halaga ng ETH sa pamamagitan ng pakikipagtulungan sa iba - - Ipaubaya ang validator sa third party para sa mas madali at simpleng proseso - - Ilagay ang mga staking token sa sarili mong wallet ---- - -## Ano ang mga staking pool? {#what-are-staking-pools} - -Isang collaborative approach ang mga staking pool para payagan ang maraming may mas maliliit na halaga ng ETH na makuha ang 32 ETH na kailangan para ma-activate ang isang set ng mga key ng validator. Hindi native na sinusuportahan sa protocol ang pooling functionality, kaya hiwalay na gumawa ng mga solution para tugunan ang pangangailangang ito. - -May ilang pool na gumagamit ng mga smart contract, kung saan maaaring ideposito ang mga pondo sa isang contract, na namamahala at sumusubaybay sa stake mo nang hindi umaasa sa third party, at nagbibigay sa iyo ng token na kumakatawan sa halagang ito. Maaaring hindi gumagamit ang ibang pool ng mga smart contract at off-chain na lang isinasaayos. - -## Bakit dapat mag-stake sa isang pool? {#why-stake-with-a-pool} - -Bukod sa mga benepisyo na aming inilahad sa aming [panimula sa staking](/staking/), ang staking sa isang pool ay may iba't ibang natatanging benepisyo. - - - - - - - - - -## Ano ang dapat isaalang-alang {#what-to-consider} - -Ang pooled o delegated staking ay hindi native na sinusuportahan ng Ethereum protocol, ngunit dahil sa demand ng mga user na mag-stake ng wala pang 32 ETH, mas maraming solution ang binuo upang punan ang demand na ito. - -Ang bawat tool at ang mga tool o smart contract na ginagamit ng mga ito ay ginawa ng iba't ibang team, at may mga benepisyo at panganib ang bawat isa sa mga ito. Binibigyang-daan ng mga pool ang mga user na i-swap ang ETH nila sa token na kumakatawan sa staked ETH. Ang token ay kapaki-pakinabang dahil ito'y binibigyang-daan nito ang mga user na i-swap ang kahit anong halaga ng ETH sa yield-bearing token na may katumbas na halaga na kumikita mula sa mga reward sa staking na inilalapat sa kasalukuyang staked ETH (at vice versa) sa mga decentralized exchange kahit na ang mismong ETH ay mananatiling staked sa consensus layer. Nangangahulugan ito na ang pag-swap sa at mula sa yield-bearing staked-ETH product at "raw ETH" ay mabilis, madali, at hindi lang available sa mga multiple ng 32 ETH. - -Gayunpaman, ang mga staked-ETH token na ito ay karaniwang nagdudulot ng mga kagawiang mala-cartel kung saan nakokontrol ng ilang centralized na organisasyon ang malaking halaga ng staked ETH sa halip na sa maraming independiyenteng indibidwal. Dahil dito, nagkakaroon ng sitwasyong nagbibigay-daan sa censorship o pagkuha ng halaga. Sa staking, palaging ang pinakamainam na sitwasyon ay ang mga indibidwal ang nagpapatakbo ng mga validator sa sarili nilang hardware hangga't maaari. - -[Iba pang detalye tungkol sa mga panganib ng pag-stake ng mga token](https://notes.ethereum.org/@djrtwo/risks-of-lsd). - -Gumagamit ng mga attribute indicator sa ibaba para ipakita ang mga kapansin-pansing kalakasan o kahinaan ng isang nakalistang staking pool. Gamitin ang seksyong ito bilang sanggunian sa kung paano namin tinutukoy ang mga attribute na ito habang pumipili ka ng pool na sasalihan. - - - -## Tingnan ang mga staking pool {#explore-staking-pools} - -May iba't ibang opsyon na available upang tulungan ka sa iyong setup. Gamitin ang mga indicator sa itaas para magabayan ka sa mga tool sa ibaba. - - - - - -Tandaan ang kahalagahan ng pagpili ng serbisyo na seryoso sa [client diversity](/developers/docs/nodes-and-clients/client-diversity/), dahil pinapaigting nito ang seguridad ng network, at nililimitahan nito ang iyong panganib. Matutukoy ang mga serbisyo na may patunay ng paglilimita ng pangunahing paggamit ng client sa pamamagitan ng "execution client diversity" at "consensus client diversity." - -May mungkahi para sa staking tool na hindi namin nabanggit? Tingnan ang aming [patakaran sa product listing](/contributing/adding-staking-products/) para malaman kung ito ay angkop, at isumite ito para masuri. - -## Mga karaniwang itanong {#faq} - - -Karaniwang ibinibigay ang mga ERC-20 staking token sa mga staker na kumakatawan sa halaga ng kanilang staked ETH at mga reward. Tandaan na medyo magkakaiba ang paraan ng iba't ibang pool ng pamamahagi ng mga reward para sa staking sa kanilang mga user, pero pangkaraniwan ito. - - - -Ngayon na! Ang Shanghai/Capella network upgrade ay nangyari noong Abril 2023, at inilunsad nito ang mga pag-withdraw sa staking. Ang mga validator accounts na sumusuporta sa mga staking pool ngayon ay may kakayahang umalis at i-withdraw ang ETH at ilagay sa kanilang itinakdang withdrawal address. Dahil dito, magkakaroon ka ng kakayahang i-redeem ang bahagi mo sa stake para sa kasalukuyang ETH. Magtanong sa iyong provider upang malaman kung paano nila sinusuportahan ang functionality na ito. - -Binibigyang-daan naman ng mga pool na gumagamit ng ERC-20 staking token ang mga user na i-trade ang token na ito sa open market. Kung gayon, maibebenta mo ang iyong staking position at makakapag-"withdraw" ka nang hindi inaalis ang EH sa staking contract. - -Iba pang detalye tungkol sa mga pag-withdraw sa staking - - - -Maraming pagkakatulad ang mga opsyong ito sa pooled staking at mga centralized exchange, gaya ng kakayahang mag-stake ng maliliit na halaga ng ETH at pagsama-samahin ang mga ito upang mapagana ang mga validator. - -Hindi katulad ng mga centralized exchange, gumagamit ang maraming iba pang opsyon sa pooled staking ng mga smart contract a/o mga staking token, na karaniwang mga ERC-20 token na puwedeng ilagay sa sarili mong wallet, at mabili o maibenta gaya ng ibang token. Nagbibigay ito ng layer ng sovereignty at seguridad sa pamamagitan ng pagbibigay sa iyo ng kontrol sa iyong mga token, pero hindi ka pa rin nito bibigyan ng direktang kontrol sa validator client na nagpapatunay para sa iyo sa background. - -May ilang opsyon sa pooling na mas decentralized kumpara sa iba pagdating sa mga node na sumusuporta sa mga ito. Upang itaguyod ang kalagayan at decentralization ng network, palaging hinihikayat ang mga staker na pumili ng pooling service na nag-e-enable ng isang set ng mga node operator na hindi kailangan ng pahintulot at decentralized. - - -## Karagdagang pagbabasa {#further-reading} - -- [Pag-stake gamit ang Rocket Pool - Pangkalahatang-ideya ng Staking](https://docs.rocketpool.net/guides/staking/overview.html) - _Mga dokumento ng RocketPool_ -- [Pag-stake ng Ethereum gamit ang Lido](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Mga pantulong na dokumento ng Lido_ diff --git a/src/content/translations/fil/staking/saas/index.md b/src/content/translations/fil/staking/saas/index.md deleted file mode 100644 index 9bc9155ac85..00000000000 --- a/src/content/translations/fil/staking/saas/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Staking bilang serbisyo -description: Pangkalahatang-ideya tungkol sa kung paano magsimula sa pooled staking ng ETH -lang: fil -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-saas.png -alt: Lumulutang sa ulap ang rhino na si Leslie. -sidebarDepth: 2 -summaryPoints: - - Ang mga third-party node operator ang nangangasiwa sa operasyon ng iyong validator client - - Magandang opsyon para sa sinumang may 32 ETH na hindi kumportable sa pagiging teknikal at kumplikado ng pagpapatakbo ng node - - Iwasang umasa sa iba, at panatilihing hawak mo ang iyong mga withdrawal key ---- - -## Ano ang staking bilang serbisyo? {#what-is-staking-as-a-service} - -Ang Staking as a Service (“SaaS") ay kumakatawan sa kategorya ng mga serbisyo sa staking kung saan mo idineposito ang sarili mong 32 ETH para sa isang validator, ngunit itinatalaga mo ang operasyon ng node sa isang third-party operator. Kadalasan, sa prosesong ito, ginagabayan ka sa buong inisyal na pag-set up, na kinabibilangan ng paggawa at pag-deposit ng key, at pagkatapos ay ia-upload ng mga signing key mo sa operator. Sa tulong nito, papatakbuhin ng serbisyo ang iyong validator para sa iyo, na kadalasang may bayad kada buwan. - -## Bakit dapat mag-stake sa gamit ang isang serbisyo? {#why-stake-with-a-service} - -Hindi native na sinusuportahan ng Ethereum protocol ang pagtatalaga ng stake, kaya ginawa ang mga serbisyong ito para punan ang demand na ito. Kung mayroon kang 32 ETH na ise-stake, pero hindi ka kumportableng mangasiwa ng hardware, binibigyang-daan ka ng mga serbisyong SaaS na italaga ang mahirap na trabaho habang nakakakuha ka ng mga native na block reward. - - - - - - - - - -## Ano ang dapat isaalang-alang {#what-to-consider} - -Dumarami ang mga SaaS provider na tutulong sa iyong i-stake ang ETH mo, pero may kanya-kanyang benepisyo at panganib ang mga ito. Ang lahat ng opsyon sa SaaS ay nangangailangan ng mga karagdagang trust assumption kumpara sa home-staking. Ang mga opsyon sa Saas ay maaaring naglalagay ng karagdagang code sa mga Ethereum clients na hindi bukas o mao-audit. Mayroon ding hindi magandang epekto ang SaaS sa decentralization ng network. Depende sa setup, maaaring hindi mo kontrolado ang iyong validator - maaaring gamitin ng operator ang iyong ETH sa maling paraan. - -Ang mga attribute indicator ay ginagamit sa ibaba para ipakita ang mga kapansin-pansing kalakasan o kahinaas ng isang nakalistang SaaS provider. Gamitin ang seksyong ito bilang sanggunian sa pagtukoy ng mga katangian na ito habang pumipili ka ng serbisyong tutulong sa iyo sa iyong pag-stake. - - - -## Tingnan ang mga staking service provider {#saas-providers} - -Nasa ibaba ang ilang available na SaaS provider. Gamitin ang mga indicator sa itaas upang tulungan kang gamitin ang mga serbisyong ito - - - -#### Mga SaaS provider - - - -Tandaan ang kahalagahan ng pagsuporta sa [client diversity](/developers/docs/nodes-and-clients/client-diversity/) dahil pinapaigting nito ang seguridad ng network, at nililimitahan nito ang iyong panganib. Matutukoy ang mga serbisyo na may patunay ng paglilimita ng pangunahing paggamit ng client sa pamamagitan ng "execution client diversity" at "consensus client diversity." - -#### Mga Generator ng Key - - - -Mayroong mungkahi para sa staking-as-a-service provider na hindi namin napansin? Tingnan ang aming [patakaran sa product listing](/contributing/adding-staking-products/) para malaman kung ito ay angkop, at isumite ito para masuri. - -## Mga karaniwang itanong {#faq} - - -Mag-iiba ang mga usapan depende sa provider, pero karaniwan kang gagabayan sa pag-set up ng anumang signing key na kailangan mo (isa kada 32 ETH), at ia-upload ang mga ito sa iyong provider para payagan ang mga itong mag-validate para sa iyo. Hindi nagbibigay ang mga signing key ng anumang kakayahang mag-withdraw, mag-transfer, o gastusin ang iyong pondo. Gayunpaman, nagbibigay ang mga ito ng kakayahang bumoto para sa consensus, na kung hindi maayos na gagawin ay maaaring magdulot ng mga parusa offline o slashing. - - - -Oo. Ang bawat account ay binubuo ng mga BLS signing key at mga BLS withdrawal key. Upang magawa ng isang validator na patunayan ang kalagayan ng chain, lumahok sa mga sync committee at magmungkahi ng mga block, dapat maa-access kaagad ng validator client ang mga signing key. Dapat nakakonekta ang mga ito sa internet, at nang sa gayon ay maituturing na mga "hot" key. Isa itong kahingian para makapagpatunay ang iyong validator, kung kaya, pinaghihiwalay ang mga key na ginagamit para mag-transfer o mag-withdraw ng pondo para sa mga dahilang panseguridad. - -Ang mga BLS withdrawal key ay ginagamit upang mag-sign ng one-time na mensahe na nagtatakda kung saang execution layer account mapupunta ang mga staking reward at inilabas na pondo. Kapag na-broadcast na ang mensaheng ito, hindi na kailangan ang mga BLS withdrawal key. Sa halip, permanenteng itatalaga ang kontrol sa na-withdraw na pondo sa address na ibinigay mo. Binibigyang-daan ka nitong magtakda ng withdrawal address na naka-secure sa pamamagitan ng iyong sariling cold storage, na nagpapaliit sa posibilidad na manganib ang pondo ng iyong validator, kahit na may ibang nagkokontrol ng mga signing key ng iyong validator. - -Kailangang i-update ang mga kredensyal sa pag-withdraw para makapag-withdraw\*. Sa prosesong ito, gagawin ang mga withdrawal key gamit ang iyong mnemonic seed phrase. - -Tiyaking maingat mong iba-back up ang seed phrase na ito, kung hindi ay hindi mo magagawa ang iyong mga withdrawal key kapag kailangan na itong gawin. - -\*Hindi ito kailangang itakda ng mga staker na nagbigay ng withdrawal address na may inisyal na deposito. Magtanong sa iyong SaaS provider para sa suporta tungkol sa kung paano ihanda ang iyong validator. - - - -Inilunsad ang pag-withdraw sa staking sa Shanghai/Capella upgrade noong Abril 2023. Kailangang magbigay ng mga staker ng withdrawal address (kung hindi ito ibinigay sa inisyal na deposito), at awtomatikong sisimulang ipamahagi ang mga reward payment kada ilang araw. - -Puwede ring ganap na umalis ang mga validator bilang validator, na siyang mag-a-unlock ng natitirang nilang ETH balance para ma-withdraw. Matatanggap ng mga account na nagbigay ng execution withdrawal address at nakatapos ng proseso ng pag-alis ang kanilang buong balanse sa withdrawal address na ibinigay sa susunod na validator sweep. - -Iba pang detalye tungkol sa mga pag-withdraw sa staking - - - -Sa pamamagitan ng paggamit ng SaaS provider, ipinagkakatiwala mo ang operasyon ng node mo sa iba. May kaakibat itong panganib ng hindi magandang performance ng node, na hindi mo makokontrol. Kung ma-slash ang validator mo, papatawan ng parusa ang validator balance mo at puwersahang aalisin sa validator pool. - -Kapag natapos na ang proseso ng slashing/pag-alis, ita-transfer ang pondong ito sa withdrawal address na nakatalaga sa validator. Para ma-enable ito, kailangang magbigay ng withdrawal address. Maaaring naibigay na ito sa inisyal na deposito. Kung hindi, kakailanganing gamitin ang mga withdrawal key ng validator para mag-sign ng mensaheng nagdedeklara ng withdrawal address. Kung walang ibinigay na withdrawal address, hindi makukuha ang pondo hangga't hindi ito naibibigay. - -Makipag-ugnayan sa indibidwal na SaaS provider para sa iba pang detalye tungkol sa anumang guarantee o opsyon sa insurance, at para sa mga tagubilin sa kung paano magbigay ng withdrawal address. Kung gusto mong ikaw lang ang nagkokontrol ng iyong validator setup, magbasa pa tungkol sa kung paano i-solo stake ang iyong ETH. - - -## Karagdagang pagbabasa {#further-reading} - -- [Pagsusuri sa Mga Serbisyo sa Staking](https://www.attestant.io/posts/evaluating-staking-services/) - _Jim McDonald 2020_ diff --git a/src/content/translations/fil/staking/solo/index.md b/src/content/translations/fil/staking/solo/index.md deleted file mode 100644 index 58bd53d5678..00000000000 --- a/src/content/translations/fil/staking/solo/index.md +++ /dev/null @@ -1,203 +0,0 @@ ---- -title: I-solo stake ang iyong ETH -description: Pangkalahatang-ideya tungkol sa kung paano simulang i-solo stake ang iyong ETH -lang: fil -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-solo.png -alt: Ang rhino na si Leslie na nasa sarili niyang computer chip. -sidebarDepth: 2 -summaryPoints: - - Direktang makatanggap ng maximum rewards mula sa protocol para sa pagpapatakbo nang maayos sa iyong validator at pagpapanatili ritong online - - Patakbuhin ang home hardware at personal na magdagdag sa seguridad at decentralization ng Ethereum network - - Iwasang umasa sa iba, at huwag ibigay sa iba ang kontrol ng mga key sa pondo mo ---- - -## Ano ang solo staking? {#what-is-solo-staking} - -Ang solo staking ay tumutukoy sa [pagpapatakbo ng Ethereum node](/run-a-node/) na nakakonekta sa internet at pagdedeposito ng 32 ETH para mag-activate ng [validator](#faq), na nagbibigay sa iyo ng kakayahang direktang lumahok sa network consensus. - -**Pinapaigting ng solo staking ang decentralization ng Ethereum network**, kung kaya, mas naiiwasan ng Ethereum ang censorship at nalalabanan nito ang mga atake. Maaaring hindi makatulong sa network ang ibang paraan ng staking sa ganitong paraan. Ang solo staking ang pinakamainam na opsyon para sa pag-secure ng Ethereum. - -Ang isang Ethereum node ay binubuo ng execution layer (EL) client at consensus layer (CL) client. Ang mga client na ito ay mga software na nagtutulungan, kasama ang valid na set ng mga signing key, upang mag-verify ng mga transaksyon at mga block, patunayan ang tamang head ng chain, mag-aggregate ng mga attestation, at magmungkahi ng mga block. - -Ang mga solo staker ay responsable sa pagpapatakbo ng hardware na kinakailangan upang patakbuhin ang mga client na ito. Lubos na inirerekomendang gumamit ng nakalaang machine para dito na pinapatakbo mo sa tahanan–makakabuti ito para sa kalagayan ng network. - -Tinatanggap ng solo staker ang mga reward nang direkta mula sa protocol para sa maayos na pagpapatakbo sa kanyang validator at pagpapanatili ritong online. - -## Bakit dapat mag-solo stake? {#why-stake-solo} - -Sa solo staking, mas malaki ang responsibilidad mo pero makokontrol mo nang husto ang pondo at staking setup mo. - - - - - - - -## Mga dapat isaalang-alang bago mag-solo staking {#considerations-before-staking-solo} - -Kahit na gusto nating maging accessible at walang panganib ang solo staking para sa lahat, hindi ito makatotohanan. May ilang praktikal at seryosong bagay na dapat isaalang-alang bago piliing i-solo stake ang iyong ETH. - - - -Kapag pinapatakbo mo ang sarili mong node, dapat kang maglaan ng oras para alamin kung paano gamitin ang napili mong software. Kasama dito ang pagbabasa ng mga kaugnay na dokumentasyon at pagiging updated sa mga komunikasyon ng mga dev team. - -Kung mas nauunawaan mo ang software na iyong pinapatakbo at kung paano gumagana ang patunay ng stake, mas maliit ang panganib bilang staker, at mas madaling ayusin ang anumang problema na maaari mong kaharapin kalaunan bilang operator ng node. - - - -Kapag nagse-set up ng node, kailangang kumportableng gumamit ng mga computer, bagama't pinapadali ito ng mga bagong tool sa paglipas ng panahon. Makakatulong kung nauunawaan ang command-line interface, pero hindi na ito lubos na kinakailangan. - -Ito rin ay nangangailangan ng napaka-basic na hardware setup, at pag-unawa sa minimum na inirerekomendang specs. - - - -Tulad kung paano sine-secure ng mga pribadong key ang iyong Ethereum address, kakailanganin mong gumawa ng mga key na para mismo sa iyong validator. Dapat mong maunawaan kung paano panatilihing ligtas at secure ang anumang seed phrase o pribadong key.{' '} - -Seguridad at pag-iwas sa scam ng Ethereum - - - -May mga pagkakataon na papalya ang hardware, magkakaroon ng error sa mga koneksyon sa network, at may mga pagkakataong kakailanganing i-upgrade ang software ng client. Ang pangangalaga sa node ay hindi maiiwasan at kakailanganin mo itong bigyan ng pansin paminsan-minsan. Kakailanganin mong tiyaking magiging updated ka sa anumang inaasahang upgrade sa network, o iba pang mahahalagang pag-upgrade sa client. - - - -Ang iyong mga reward ay nakabatay sa oras na online ang iyong validator at maayos ang pag-attest. Magpapataw ng penalty para sa downtime na nakabatay sa bilang ng iba pang validator na offline sa parehong panahon, ngunit hindi ito magreresulta sa slashing. Ang bandwidth ay mahalaga rin, dahil nababawasan ang mga reward para sa mga attestation na hindi natatanggap sa tamang oras. Mag-iiba-iba ang mga kahingian, pero inirerekomenda ang hindi bababa sa 10 Mb/s na up at down. - - - -Naiiba sa mga penalty sa kawalan ng aktibidad na ipapataw dahil sa pagiging offline, ang slashing ay isang mas matinding penalty na ipinapataw para sa mga mapaminsalang pagkilos. Sa pamamagitan ng pagpapatakbo ng isang minority client nang naka-load ang iyong mga key sa iisang machine lang sa bawat pagkakataon, lumiliit ang panganib na makaranas ka ng slashing. Sa kabila nito, dapat alam ng lahat ng staker ang mga panganib ng slashing. - - Iba pang detalye tungkol sa slashing at validator lifecycle - - - - - -## Paano ito gumagana {#how-it-works} - - - -Habang aktibo ka, magkakaroon ka ng mga ETH reward, na ide-deposito paminsan-minsan sa iyong withdrawal address. - -Kung gusto mo, maaari kang umalis bilang validator, kung kaya, hindi mo na kailangang maging online at hindi mo na matatanggap ang anupamang reward. Ang iyong natitirang balanse ay iwi-withdraw sa withdrawal address na itatalaga mo sa panahon ng pag-set up. - -[Iba pang detalye tungkol sa mga pag-withdraw sa staking](/staking/withdrawals/) - -## Magsimula sa Staking Launchpad {#get-started-on-the-staking-launchpad} - -Ang Staking Launchpad ay isang open source na application na tutulong sa iyong maging staker. Gagabayan ka nito sa pagpili ng iyong mga client, paggawa ng mga key mo at pagdedeposito ng ETH mo sa staking deposit contract. May checklist na ibinibigay upang tiyakin na nagawa mo ang lahat para ligtas na ma-set up ang iyong validator. - - - -## Ano ang dapat isaalang-alang sa mga tool para sa node at client setup {#node-tool-considerations} - -Dumarami ang mga tool at serbisyo na tutulong sa iyong i-solo stake ang ETH mo, pero may iba't ibang panganib at benepisyo ang bawat isa sa mga ito. - -Ang mga attribute indicator ay ginagamit sa ibaba upang ipahiwatig ang mga kapansin-pansing kalakasan o kahinaan ng isang nakalistang staking tool. Gamitin ang seksyong ito bilang sanggunian sa kung paano namin tinutukoy ang mga attribute na ito habang pumipili ka ng mga tool na tutulong sa iyong staking journey. - - - -## Tingnan ang mga tool para sa pag-set up ng node at client {#node-and-client-tools} - -May iba't ibang opsyon na available upang tulungan ka sa iyong setup. Gamitin ang mga indicator sa itaas para magabayan ka sa mga tool sa ibaba. - - - -#### Mga tool para sa node - - - -Tandaan ang kahalagahan ng pagpili ng [minority client](/developers/docs/nodes-and-clients/client-diversity/) dahil pinapaigting nito ang seguridad ng network, at nililimitahan nito ang iyong panganib. Ang mga tool na nagbibigay-daan sa iyong mag-set up ng minority client ay tinutukoy bilang "multi-client." - -#### Mga Generator ng Key - -Ang mga tool na ito ay maaaring gamitin bilang alternatibo sa [Staking Deposit CLI](https://github.com/ethereum/staking-deposit-cli/) upang tumulong sa paggawa ng key. - - - -May mungkahi para sa staking tool na hindi namin nabanggit? Tingnan ang aming [patakaran sa product listing](/contributing/adding-staking-products/) para malaman kung ito ay angkop, at isumite ito para masuri. - -## Tingnan ang mga gabay sa solo staking {#staking-guides} - - - -## Mga karaniwang itanong {#faq} - -Ilan ito sa mga pinakakaraniwang tanong tungkol sa staking na mahalagang malaman. - - - -Ang validator ay isang virtual entity sa Ethereum at nakikilahok sa consensus ng Ethereum protocol. Ang mga validator ay kinakatawan ng isang balanse, pampublikong key, at iba pang property. Ang validator client ang software na kumikilos para sa validator sa pamamagitan ng pangangasiwa at paggamit sa pribadong key nito. Maaaring mangasiwa ang isang validator client ng maraming pares ng key, na nagkokontrol ng maraming validator. - - - - -Ang bawat key-pair na nauugnay sa isang validator ay nangangailangan ng eksaktong 32 ETH para ma-activate. Ang pagdedeposito ng mas maraming ETH sa isang set ng mga key ay hindi nagpapalaki sa posibildad na makakuha ng mga reward, dahil limitado ang bawat validator sa epektibong balanse na 32 ETH. Ibig sabihin nito, isinasagawa ang staking nang kada 32 ETH, kung saan may sariling set ng mga key at balanse ang bawat isa. - -Huwag magdeposito ng mahigit 32 ETH para sa isang validator. Hindi nito mapaparami ang iyong mga reward. Kung mayroon nang itinakdang withdrawal address para sa validator, ang sobrang pondo na higit sa 32 ETH ay awtomatikong iwi-withdraw sa address na ito sa susunod na validator sweep. - -Kung masyadong matrabaho para sa iyo ang solo staking, pag-isipang gumamit ng staking-as-a-service provider, o kung wala ka pang 32 ETH, tingnan ang mga staking pool. - - - -Ang pagiging offline kapag maayos na nagfa-finalize ang network ay HINDI magreresulta sa slashing. Magkakaroon ng maliliit na penalty para sa kawalan ng aktibidad kung ang iyong validator ay hindi available na magpatunay para sa isang partikular na epoch (tumatagal nang 6.4 minuto ang bawat isa), ngunit labis itong naiiba sa slashing. Ang mga penalty na ito ay bahagyang mas kaunti kaysa sa reward na maaari mo sanang makuha kung available para magpatunay ang validator, at mababawi ang mga pagkalugi sa pamamagitan ng halos katumbas na panahon ng pagiging online ulit. - -Tandaan na ang mga penalty para sa kawalan ng aktibidad ay nakabatay sa bilang ng mga validator na offline sa parehong panahon. Sa mga sitwasyon kung saan sabay-sabay na offline ang malaking bahagi ng network, mas malaki ang ipapataw na penalty para sa bawat isa sa mga validator na ito kumpara kung isang validator lang ang hindi available. - -Sa mga sukdulang sitwasyon, kung hihinto sa pag-finalize ang network dahil offline ang mahigit sa isang-katlo ng mga validator, mapeperhuwisyo ang mga user ng quadratic inactivity leak, na labis na pagkaubos ng ETH mula sa mga offline na validator account. Binibigyang-daan nito ang network na ayusin ang sarili nito sa pamamagitan ng paggamit ng ETH ng mga hindi aktibong validator hanggang sa maging 16 ETH ang kanilang balanse, at sa puntong iyon, awtomatiko silang aalisin sa validator pool. Kalaunan, mapupunan ulit ng mga natitirang online na validator ang 2/3 ng network, na siyang sasapat sa supermajority na kinakailangan para maisapinal ulit ang chain. - - - -Sa madaling salita, hindi ito ganap na masisigurado, ngunit kung kikilos ka nang walang masamang hangarin, magpapatakbo ka ng minority client at papanatilihin mo lang ang mga signing key mo sa isang machine sa bawat pagkakataon, halos zero ang tsansang masa-slash ka. - -Mayroon lang ilang partikular na paraan na maaaring magresulta sa pag-slash ng validator at pag-eject nito sa network. Habang isinusulat ito, ang mga slashing na nangyari ay produkto lang ng mga redundant na hardware setup kung saan sino-store ang mga signing key sa dalawang magkahiwalay na machine sa bawat pagkakataon. Ito ay maaaring hindi sinasadyang magresulta sa isang double vote mula sa iyong mga keys, na isang slashable offense. - -Ang pagpapatakbo ng isang supermajority client (anumang client na ginagamit ng mahigit 2/3 ng network) ay nagdadala rin ng panganib ng potensyal na pag-slash kung sakaling may bug ang client na ito na nagreresulta sa chain fork. Ito ay maaaring magdulot ng depektibong fork na maisasapinal. Upang maibalik sa tamang chain, kinakailangang magsumite ng surround vote sa pamamagitan ng pagsusumikap na bawiin ang isang naisapinal na block. Ito rin ay isang slashable offense at maaari itong maiwasan sa pamamagitan ng pagpapatakbo na lang ng isang minority client. - -Ang mga katumbas na bug sa isang minority client ay hindi kailanman maisasapinal at hindi kailanman magreresulta sa isang surround vote, at magdudulot lang ng mga penalty para sa kawalan ng aktibidad, hindi sa slashing. - - - - - -Maaaring medyo magkakaiba ang performance at user interface ng mga indibidwal na client, dahil ginawa ang bawat isa sa mga ito ng iba't ibang team gamit ang iba't ibang programming language. Gayunpaman, wala sa mga ito ang "pinakamahusay." Ang lahat ng production client ay magagandang uri ng software na nagsasagawa ng mga pangunahing function na mag-sync at mag-interact sa blockchain. - -Dahil ibinibigay ng lahat ng production client ang parehong basic functionality, napakahalaga na pumili ka ng minority client, ibig sabihin, anumang client na HINDI kasalukuyang ginagamit ng karamihan sa mga validator sa network. Maaaring hindi ito rasonable, pero ang pagpapatakbo ng majority o supermajority client ay maglalagay sa iyo sa mas malaking panganib ng slashing kung sakaling magkaroon ng bug sa client na iyon. Labis na nililimitahan ng pagpapatakbo ng minority client ang mga panganib na ito. - -Magbasa pa tungkol sa kung bakit mahalaga ang client diversity - - - -Bagama't maaaring gumamit ng virtual private server (VPS) bilang pamalit sa home hardware, ang pisikal na access at lokasyon ng iyong validator client ay mahalaga. Sa tulong ng mga centralized cloud solution tulad ng Amazon Web Services o Digital Ocean, hindi na kailangang kumuha at magpatakbo ng hardware, ngunit ang kapalit nito ay pag-centralize sa network. - -Kapag mas maraming validator client ang tumatakbo sa isang centralized cloud storage solution, mas magiging mapanganib ito para sa mga user na ito. Kapag nagkaroon ng anumang event na magpapa-offline sa mga provider na ito, isa mang atake, mga panregulatoryong demand, o simpleng pagkawala ng kuryente/internet, sabay-sabay na mag-o-offline ang bawat validator client na umaasa sa server na ito. - -Ang mga penalty sa pagiging offline ay nakabatay sa bilang ng iba pang provider na offline sa parehong panahon. Kapag gumamit ng VPS, mas mapapalaki ang panganib na mas magiging matindi ang ipapataw na penalty sa pagiging offline, at mapapalaki nito ang posibilidad na makaranas ka ng quadratic leaking o slashing kung sakaling maging masyadong malaki ang outage. Upang mapaliit ang panganib para sa iyo at sa network, lubos na hinihikayat ang mga user na kumuha at magpatakbo ng sarili nilang hardware. - - - - -Ang anumang uri ng withdrawal mula sa Beacon Chain ay nangangailangan ng pagtatakda ng mga kredensyal sa pag-withdraw. - -Itinatakda ito ng mga bagong staker sa panahon ng paggawa ng key at deposito. Puwedeng i-upgrade ng mga kasalukuyang staker na hindi pa nakapag-set nito ang kanilang mga key para masuportahan ang functionality na ito. - -Kapag naitakda na ang mga kredensyal sa pag-withdraw, ang mga reward payment (nalikom na ETH matapos ang unang 32) ay pana-panahong awtomatikong ipapamahagi sa withdrawal address. - -Upang ma-unlock at maibalik ang iyong buong balanse, dapat mo ring tapusin ang proseso ng pag-aalis ng iyong validator. - -Iba pang detalye tungkol sa mga pag-withdraw sa staking - - -## Karagdagang pagbabasa {#further-reading} - -- [Ang Problema ng Ethereum sa Client Diversity](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ -- [Pagtulong sa Client Diversity](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ -- [Client diversity sa consensus layer ng Ethereum](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ -- [Paano Dapat Gawin: Bumili ng Hardware para sa Ethereum Validator](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ -- [Step by Step: Paano sumali sa Ethereum 2.0 Testnet](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _Butta_ -- [Mga Tip para sa Pag-iwas sa Slashing sa Eth2](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raul Jordan 2020_ diff --git a/src/content/translations/fil/staking/withdrawals/index.md b/src/content/translations/fil/staking/withdrawals/index.md deleted file mode 100644 index af141e048f0..00000000000 --- a/src/content/translations/fil/staking/withdrawals/index.md +++ /dev/null @@ -1,218 +0,0 @@ ---- -title: Mga pag-withdraw ng stake -description: Page na nagbubuod sa kung ano ang mga pag-push withdraw sa staking, paano ito gumagana, at kung ano ang dapat gawin ng mga staker para makuha ang mga reward nila -lang: fil -template: staking -image: ../../../../../assets/staking/leslie-withdrawal.png -alt: Ang rhino na si Leslie kasama ng mga natanggap niyang reward mula sa staking -sidebarDepth: 2 -summaryPoints: - - Binigyang-daan ng Shanghai/Capella upgrade ang mga pag-withdraw sa staking sa Ethereum - - Upang magamit ang serbisyo, kinakailangan ng mga operator ng validator na magbigay ng withdrawal address - - Ang mga reward ay awtomatikong ipinapamahagi kada ilang araw - - Matatanggap ng mga validator na ganap na aalis sa staking ang kanilang natitirang balanse ---- - - -Ang pag-withdraw sa staking ay in-enable kasabay ng Shanghai/Capella ugrade na naganap noong Abril 12, 2023. Iba pang detalye tungkol sa Shanghai/Capella - - -Ang **mga pag-withdraw sa staking** ay tumutukoy sa mga pag-transfer ng ETH mula sa validator account na nasa consensus layer ng Ethereum (ang Beacon Chain), papunta sa execution layer kung saan ito magagamit sa mga transaksyon. - -Ang **mga reward payment para sa sobrang balanse** na mahigit 32 ETH ay awtomatiko at regular na ipapadala sa withdrawal address na naka-link sa bawat validator, kapag ibinigay na ito ng user. Ang mga user ay puwede ring **ganap na umalis sa staking**, na nagbubukas ng kanilang buong balanse bilang validator. - -## Mga reward mula sa staking {#staking-rewards} - -Ang mga reward payment ay awtomatikong ipinoproseso para sa mga aktibong validator account na may maxed out na effective balance na 32 ETH. - -Ang anumang balanse na mahigit 32 ETH na nakamit sa pamamagitan ng mga reward ay hindi talaga nagdadagdag sa pangunahing balanse, o hindi nagpapataas ng weight ng validator sa network, kaya, awtomatiko itong iwi-withdraw bilang reward payment kada ilang araw. Maliban sa pagbibigay ng withdrawal address isang beses, hindi kinakailangan ng anumang aksyon mula sa operator ng validator para sa mga reward na ito. Ito ay nagsisimula sa consensus layer, kung kaya, walang gas (bayarin sa transaksyon) na kinakailangan sa kahit anong hakbang. - -### Paano tayo nakarating dito? {#how-did-we-get-here} - -Sa mga nakaraang taon, ang Ethereum ay sumailalim sa ilang pag-upgrade sa network at nag-transition sa network na pinoprotektahan ng ETH mismo, sa halip ng energy-intensive mining tulad ng dati. Ang paglahok sa consensus sa Ethereum ay kinikilala na ngayon bilang "staking", dahil ang mga kalahok ay boluntaryong naglalagay ng kanilang ETH sa isang "stake" upang magkaroon ng kakayahan na makilahok sa network. Ang mga user na sumusunod sa mga panuntunan ay mabibigyan ng gantimpala, habang ang mga magtatangkang mandaya ay maaaring parusahan. - -Mula nang ilunsad ang staking deposit contract noong Nobyembre 2020, boluntaryong naglagay ang ilang matapang na nanguna sa Ethereum ng mga pondo upang i-activate ang "mga validator", na mga espesyal na account na may karapatang pormal na patunayan ang at magmungkahi ng mga block, alinsunod sa mga panuntunan ng network. - -Bago ang Shanghai/Capella upgrade, hindi mo magamit o ma-access ang iyong staked ETH. Ngunit ngayon, maaari mong piliin awtomatikong matanggap ang iyong mga reward sa isang piling account, at mawi-withdraw mo rin ang iyong staked ETH kung kailan mo gusto. - -### Paano ako maghahanda? {#how-do-i-prepare} - - - -### Mahahalagang paunawa {#important-notices} - -Ang pagbibigay ng withdrawal address ay isang kinakailangang hakbang para sa anumang validator account bago ito maging eligible na mag-withdraw ng ETH mula sa balanse nito. - - - Ang bawat validator account ay maaari lang magkaroon ng isang withdrawal address, nang isang beses lang. Kapag nakapili na ng address at naisumite na ito sa consensus layer, hindi na ito maaaring bawiin o baguhin ulit. I-double check ang pagmamay-ari at katumpakan ng address na ibinigay bago ito isumite. - - -Sa ngayon, walang banta sa pondo mo kung hindi mo ito ibibigay, basta't nananatiling ligtas offline ang iyong mnemonic/seed phrase, at hindi ito nakompromiso sa anumang paraan. Kung hindi maipapakita ang mga kredensyal sa pag-withdraw, hindi makukuha ang ETH sa validator account hangga't hindi nagbibigay ng withdrawal address. - -## Ganap na pag-alis sa staking {#exiting-staking-entirely} - -Kailangang magbigay ng withdrawal address bago ma-transfer ang _anumang_ pondo mula sa balanse ng validator account. - -Ang mga user na nagnanais na ganap na umalis sa staking at i-withdraw ang kanilang buong balanse ay kinakailangan ding mag-sign at mag-broadcast ng mensahe ng "boluntaryong pag-alis" gamit ang mga key ng validator para masimulan ang proseso ng pag-alis sa staking. Ito ay ginagawa gamit ang iyong validator client at isinusumite sa iyong consensus node, at hindi nangangailangan ng gas. - -Ang proseso ng pag-alis ng isang validator sa staking ay gumugugol ng iba't ibang oras, depende sa kung ilan pang validator ang umaalis sa parehong panahon. Kapag tapos na, ang account na ito ay hindi na magiging responsable sa pagganap ng mga tungkulin sa validator network, hindi na eligibile para sa mga reward, at hindi na rin nagse-"stake" ng kanilang ETH. Sa oras na ito, ang account ay ituturing na ganap nang "withdrawable". - -Kapag ang isang account ay na-flag na bilang "withdrawable", at nagbigay na ng mga kredensyal sa pag-withdraw, wala nang kailangang gawin ang user kundi maghintay. Ang mga account ay awtomatiko at tuloy-tuloy na isi-sweep ng mga block proposer para sa mga eligible na exited fund, at ita-transfer ang buong balanse ng iyong account (kilala rin bilang "full withdrawal") sa susunod na sweep. - -## Kailan pinapagana ang mga pag-withdraw sa staking? {#when} - -Live na ang mga pag-withdraw sa staking! Ang functionality ng pag-withdraw ay in-enable bilang bahagi ng Shanghai/Capella upgrade na naganap noong Abril 12, 2023. - -Ang Shanghai/Capella upgrade ang nagbigay-daan para maibalik ang staked ETH sa mga regular na Ethereum account. Sinubaybayan nito ang pag-stake ng liquidity, at inilapit nito ang Ethereum sa layunin nitong bumuo ng sustainable, scalable, at secure na decentralized ecosystem. - -- [Iba pang detalye tungkol sa kasaysayan ng Ethereum](/history/) -- [Iba pang detalye tungkol sa roadmap ng Ethereum](/roadmap/) - -## Paano gumagana ang mga withdrawal payment? {#how-do-withdrawals-work} - -Ang pagiging eligible ng isang partikular na validator para sa pag-withdraw ay tinutukoy sa pamamagitan ng kalagayan mismo ng validator account. Hindi kailangan ng anumang user input anumang oras upang matukoy kung dapat magsimula ng pag-withdraw ang account o hindi—ang buong proseso ay awtomatikong ginagawa ng consensus layer sa isang tuloy-tuloy na loop. - -### More of a visual learner? {#visual-learner} - -Tingnan ang paliwanag ng Finematics tungkol sa mga pag-withdraw sa staking ng Ethereum: - - - -### "Pag-sweep" ng validator {#validator-sweeping} - -Kapag nakaiskedyul ang isang validator na magmungkahi ng susunod na block, kailangan nitong gumawa ng withdrawal queue ng hanggang 16 na eligible withdrawal. Ito ay ginagawa sa pamamagitan ng pagsisimula sa validator index 0, pagtukoy kung may eligible withdrawal para sa account na ito batay sa mga panuntunan ng protocol, at pagdadagdag nito sa queue kung mayroon man. Ang validator na nakatakda na mag-propose ng susunod na bloke ay magpapatuloy kung saan iniwan ng huling bloke, at magpapatuloy ito nang sunod-sunod ng walang katapusan. - - -Para lang itong analog na orasan. Itinuturo ng kamay sa orasan ang oras, umuusad ito sa isang direksyon, wala itong nilalaktawang anumang oras, at sa huli ay bumabalik ito sa simula kapag naabot na nito ang huling numero.

-Ngayon, sa halip na 1 hanggang 12, isipin na may 0 hanggang N (ang kabuuang bilang ng mga validator account na nairehistro sa consensus layer, na mahigit 500,000 mula noong Enero 2023).

-Ituturo ng kamay sa orasan ang susunod na validator na kailangang tingnan kung may mga eligible withdrawal. Nagsisimula ito sa, at umuusad paikot nang hindi nilalaktawan ang anumang account. Kapag naabot na ang huling validator, babalik ang sa simula ang cycle. -
- -#### Pagtingin kung may mga withdrawal ang account {#checking-an-account-for-withdrawals} - -Habang sini-sweep ng isang proposer ang mga validator para sa mga posibleng withdrawal, inihahambing ang bawat sinusuring validator sa maikling serye ng mga tanong para tukuyin kung dapat mag-trigger ng withdrawal, at kung oo, kung gaano karaming ETH ang dapat i-withdraw. - -1. **Mayroon bang ibinigay na withdrawal address?** Kung wala pang withdrawal address na ibinigay, lalaktawan ang account at hindi magsisimula ng anumang withdrawal. -2. **Inalis at mawi-withdraw ba ang validator?** Kung ganap nang inalis ang validator, at naabot na natin ang epoch kung saan maituturing nang "mawi-withdraw" ang kanilang account, magpoproseso ng full withdrawal. Ita-transfer nito ang buong natitirang balanse sa withdrawal address. -3. **Umabot na ba sa 32 ang effective balance?** Kung ang account ay may mga kredensyal sa pag-withdraw, hindi pa ganap na naiaalis, at may nakatenggang mga reward na mahigit 32, magpoproseso ng isang partial withdrawal na nagta-transfer lang ng mga reward na mahigit 32 sa withdrawal address ng user. - -May dalawang aksyon lang na ginagawa ng mga validator operator sa buong life cycle ng isang validator na direktang nakakaapekto sa flow na ito: - -- Magbigay ng mga kredensyal sa pag-withdraw upang ma-enable ang anumang uri ng withdrawal -- Umalis sa network, na magti-trigger ng full withdrawal - -### Walang gas {#gas-free} - -Sa estratehiyang ito sa mga pag-withdraw sa staking, hindi hinihiling sa mga staker na manual na magsumite ng transaksyon na nagpapa-withdraw ng partikular na dami ng ETH. Ibig sabihin nito, **hindi kailangan ng gas (bayarin sa transaksyon)**, at hindi rin nakikipag-agawan ang mga withdrawal para sa kasalukuyang execution layer block space. - -### Gaano kadalas kong matatanggap ang aking mga staking reward? {#how-soon} - -Maaaring magproseso ng hanggang 16 na withdrawal sa isang block. Sa bilis na 'yon, puwedeng magproseso ng 115,200 validator withdrawal kada araw (kung walang nilaktawang slot). Tulad ng nabanggit sa itaas, lalaktawan ang mga validator na walang eligible na withdrawal, na magpapabilis sa pagtatapos ng sweep. - -Kapag pinalawak ang kalkulasyong ito, matatantya natin ang oras na kakailanganin upang magproseso ng partikular na bilang ng mga withdrawal: - - - -| Bilang ng mga withdrawal | Tagal bago makumpleto | -| :----------------------: | :-------------------: | -| 400,000 | 3.5 araw | -| 500,000 | 4.3 araw | -| 600,000 | 5.2 araw | -| 700,000 | 6.1 araw | -| 800,000 | 7.0 araw | - - - -Tulad ng nakikita mo, babagal ito habang dumarami ang mga validator sa network. Kapag dumami ang mga nilaktawang slot, babagal ito nang husto, pero karaniwan nitong kakatawanin ang mas mabagal na posibleng resulta. - -## Mga karaniwang itanong {#faq} - - -Hindi, ang proseso ng pagbibigay ng mga kredensyal sa pag-withdraw ay one-time process, at hindi na maaaring baguhin kapag naisumite na. - - - -Sa pamamagitan ng pagtatakda ng withdrawal address ng execution layer, permanente nang nabago ang mga kredensyal sa pag-withdraw ng validator na iyon. Ito ay nangangahulugan na hindi na gagana ang mga lumang kredensyal, at sa execution layer account didirekta ang mga bagong kredensyal. - -Ang mga withdrawal address ay maaaring maging smart contract (kontrolado ng code nito), o externally owned account (EOA, kontrolado ng pribadong key nito). Sa kasalukuyan, ang mga account na ito ay walang paraan para magpadala ng mensahe pabalik sa consensus layer na magpapahiwatig ng pagbabago sa mga kredensyal ng validator, at magiging kumplikado ang protocol kahit hindi naman dapat kapag idinagdag ang functionality na ito. - -Bilang alternatibo sa pagbabago ng withdrawal address para sa partikular na validator, maaaring piliin ng mga user na magtakda ng isang smart contract bilang kanilang withdrawal address na maaaring pangasiwaan ang pag-rotate ng key, tulad ng Safe. Ang mga user na nagtatakda ng kanilang pondo sa kanilang sariling EOA ay maaaring magsagawa ng ganap na pag-alis para i-withdraw ang lahat ng kanilang na-stake na pondo, at pagkatapos ay mag-stake ulit gamit ang mga bagong kredensyal. - - - - -Kung bahagi ka ng isang staking pool o may hawak kang mga staking token, dapat kang magtanong sa iyong provider ng iba pang detalye tungkol sa kung paano pinapangasiwaan ang mga pag-withdraw sa staking, dahil magkakaiba ang paraan ng pangangasiwa ng bawat serbisyo. - -Sa pangkalahatan, dapat malaya ang mga user na kunin ang kasalukuyan nilang staked ETH, o magpalit ng staking provider na ginagamit nila. Kung masyado nang nagiging malaki ang isang partikular na pool, puwedeng alisin, i-redeem, at i-stake ulit ang pondo sa mas maliit na provider. O, kung nakalikom ka na ng sapat na ETH, maaari kang mag-stake mula sa bahay. - - - - -Oo, basta't may ibinigay na withdrawal address ang iyong validator. Dapat itong ibigay nang isang beses para inisyal na ma-enable ang anumang withdrawal, pagkatapos ay awtomatikong mati-trigger kada ilang araw ang mga reward payment sa bawat validator sweep. - - - - -Hindi, kung ang iyong validator ay aktibo pa sa network, hindi magaganap nang awtomatiko ang full withdrawal. Para mangyari ito, kailangang manual na magsimula ng boluntaryong pag-alis. - -Kapag natapos na ng validator ang proseso ng pag-alis, at kung may mga kredensyal sa pag-withdraw ang account, ang natitirang balanse ay saka iwi-withdraw sa susunod na validator sweep. - - - - -Ang mga withdrawal ay idinisenyo upang awtomatikong maiproseso, at ililipat nito ang anumang ETH na hindi aktibong nagko-contribute sa stake. Kasama dito ang mga kumpletong balanse para sa mga account na natapos na ang proseso ng pag-alis. - -Hindi posibleng manual na hilingin ang partikular na halaga ng ETH na iwi-withdraw. - - - - -Inirerekomenda sa mga operator ng validator na bisitahin ang page na Mga Pag-withdraw sa Staking sa Launchpad kung saan ka makakakita ng iba pang detalye tungkol sa kung paano ihanda ang iyong validator para sa mga withdrawal. pagiging handa, timing ng mga event, at iba pang detalye tungkol sa kung paano gumagana ang mga withdrawal. - -Upang subukan muna ang iyong setup sa isang testnet, bisitahin ang Goerli Testnet Staking Launchpad para magsimula. - - - - -Hindi. Kapag umalis na ang isang validator at na-wtihdraw na ang kumpletong balanse nito, awtomatikong ita-transfer ang anumang karagdagang pondong idineposito sa validator na iyon sa withdrawal address sa susunod na validator sweep. Upang mag-stake ulit ng ETH, kailangang mag-activate ng bagong validator. - - -## Karagdagang pagbabasa {#further-reading} - -- [Mga Pag-withdraw sa Staking sa Launchpad](https://launchpad.ethereum.org/withdrawals) -- [EIP-4895: Mga Beacon chain push withdrawal bilang mga operasyon](https://eips.ethereum.org/EIPS/eip-4895) -- [Ethereum Cat Herders - Shanghai](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) -- [PEEPanEIP #94: Pag-withdraw sa Staked ETH (Testing) kasama sina Potuz at Hsiao-Wei Wang](https://www.youtube.com/watch?v=G8UstwmGtyE) -- [PEEPanEIP#68: EIP-4895: Mga Beacon chain push withdrawal bilang mga operasyon kasama si Alex Stokes](https://www.youtube.com/watch?v=CcL9RJBljUs) -- [Pag-unawa sa Validator Effective Balance](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/fr/community/support/index.md b/src/content/translations/fr/community/support/index.md deleted file mode 100644 index c1fe8e06cd3..00000000000 --- a/src/content/translations/fr/community/support/index.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -title: Assistance Ethereum -description: Obtenez de l'aide sur l'écosystème Ethereum. -lang: fr ---- - -# Assistance Ethereum {#support} - -## Asistance officielle Ethereum {#official-support} - -Vous recherchez l'assistance officielle Ethereum ? La première chose que vous devez savoir est le fait qu'Ethereum est décentralisé. Cela signifie qu'aucune organisation, entité ou personne n'est propriétaire d'Ethereum et, de ce fait, il n'existe aucune assistance officielle. - -Comprendre la nature décentralisée d'Ethereum est essentiel, car quiconque prétendant représenter l'assiatnce officielle d'Ethereum essaie probablement de vous escroquer ! La meilleure protection contre les arnaques consiste à vous informer et à prendre la sécurité au sérieux. - - - Sécurité d'Ethereum et prévention des arnaques - - - - Apprendre les fondamentaux d'Ethereum - - -Malgré le manque d'assistance officielle, de nombreux groupes, communautés et projets à travers l'écosystème Ethereum sont heureux de vous aider. Vous pouvez trouver beaucoup d'informations et de ressources utiles sur cette page. Vous avez d'autres questions ? Rejoignez le [Discord ethereum.org](/discord/) et nous essaierons de vous aider. - -## Assistance concernant votre portefeuille {#wallet-support} - -Vous rencontrez un problème avec votre portefeuille ? La plupart des portefeuilles ont des équipes d'assistance dédiées qui peuvent vous aider : - -- [MetaMask](https://metamask.zendesk.com/hc/) -- [Argent](https://support.argent.xyz/hc/) -- [MyEtherWallet](https://help.myetherwallet.com/) - -_Cette liste est non-exhaustive. Vous avez besoin d'aide pour trouver l'assistance pour un portefeuille spécifique ? Rejoignez le [Discord Ethereum.org](https://discord.gg/ethereum-org) et nous essaierons de vous aider._ - -Vous êtes à la recherche d'un portefeuille Ethereum ? [Explorez notre liste complète de portefeuilles Ethereum](/wallets/find-wallet/). - -## Créer des applications décentralisées {#building-support} - -Le développement d'une application décentralisée peut être difficile. Voici quelques espaces axés sur leur création, avec des développeurs Ethereum chevronnés qui seront heureux de vous faire part de leur expérience. - -- [Alchemy University](https://university.alchemy.com/#starter_code) -- [Discord CryptoDevs](https://discord.gg/Z9TA39m8Yu) -- [StackExchange Ethereum](https://ethereum.stackexchange.com/) -- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) -- [Web3 University](https://www.web3.university/) -- [LearnWeb3](https://discord.com/invite/learnweb3) - -Vous pouvez aussi consulter notre documentation ainsi que des guides de développement dans notre section [Ressources pour les développeurs Ethereum](/developers/). - -### Outils {#dapp-tooling} - -Votre question concerne un outil, un projet ou une bibliothèque en particulier ? La plupart des projets disposent de serveurs de discussion ou des forums dédiés au soutien des membres. - -Voici quelques exemples connus : - -- [Solidity](https://gitter.im/ethereum/solidity/) -- [ethers.js](https://discord.gg/6jyGVDK6Jx) -- [web3.js](https://discord.gg/GsABYQu4sC) -- [Hardhat](https://discord.gg/xtrMGhmbfZ) -- [Truffle](https://discord.gg/8uKcsccEYE) -- [Alchemy](http://alchemy.com/discord) -- [Tenderly](https://discord.gg/fBvDJYR) - -## Exécuter un nœud {#node-support} - -Si vous exécutez un nœud ou un validateur, voici quelques communautés qui sont consacrées à aider ceux qui débutent. - -- [Discord EthStaker](https://discord.gg/ethstaker) -- [Reddit EthStaker](https://www.reddit.com/r/ethstaker) - -La plupart des équipes qui créent des clients Ethereum disposent aussi d'espaces dédiés, ouverts au public, dans lesquels vous pouvez obtenir une aide et poser des questions. - -### Clients d'exécution {#execution-clients} - -- [Geth](https://discord.gg/FqDzupGyYf) -- [Nethermind](https://discord.gg/YJx3pm8z5C) -- [Besu](https://discord.gg/p8djYngzKN) -- [Erigon](https://github.com/ledgerwatch/erigon/issues) - -### Clients de consensus {#consensus-clients} - -- [Prysm](https://discord.gg/prysmaticlabs) -- [Nimbus](https://discord.gg/nSmEH3qgFv) -- [Lighthouse](https://discord.gg/cyAszAh) -- [Teku](https://discord.gg/7hPv2T6) -- [Lodestar](https://discord.gg/aMxzVcr) - -Vous pouvez aussi [apprendre comment exécuter un nœud ici](/developers/docs/nodes-and-clients/run-a-node/). - -## Questions fréquemment posées {#faq} - -#### J'ai transféré mes ETH vers le mauvais portefeuille {#wrong-wallet} - -Les transactions effectuées sur Ethereum sont irréversibles. Malheureusement, si vous avez envoyé des ETH au mauvais portefeuille, il n'y a aucun moyen de récupérer ces fonds. Aucune organisation centrale, entité ou personne n'est propriétaire d'Ethereum, ce qui signifie que personne ne peut annuler les transactions. Pour cette raison, il est primordial de vérifier deux fois vos transactions avant de les effectuer. - -#### Comment puis-je réclamer mon cadeau Ethereum ? {#giveaway-scam} - -Les concours Ethereum sont des arnaques conçues pour récupérer vos ETH. Ne vous laissez pas tenter par des offres qui semblent trop belles pour être vraies — si vous envoyez des ETH vers une adresse de « concours », vous ne recevrez pas de cadeau, et vous ne pourrez pas récupérer vos fonds. - -[En savoir plus sur la prévention des arnaques](/security/#common-scams) - -#### Ma transaction est bloquée {#stuck-transaction} - -Les transactions sur Ethereum peuvent parfois se bloquer si vous avez soumis des frais de transactions inférieurs à ceux requis en raison de la demande du réseau. De nombreux portefeuilles offrent la possibilité de renvoyer la même transaction avec des frais de transaction plus élevés, afin de permettre à celle-ci d'être traitée. Vous pouvez aussi annuler une transaction en cours en envoyant une transaction vers votre propre adresse en utilisant le même nonce que la transaction en cours. - -[Comment accélérer ou annuler une transaction en cours via MetaMask](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) - -[Comment annuler des transactions Ethereum en cours](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) - -#### Comment miner de l'Ethereum ? {#mining-ethereum} - -Le minage d'Ethereum n'est plus possible. Le minage a disparu lors du passage d'Ethereum de la preuve de travail à la preuve d'enjeu. Désormais, en place des mineurs, Ethereum dispose de validateurs. Les validateurs misent de l'ETH et reçoivent des récompenses pour la sécurisation du réseau. - -#### Comment devenir un staker/validateur ? {#become-validator} - -Pour devenir un validateur, vous devez miser 32 ETH dans le contrat de dépôt Ethereum et mettre en place un nœud de validateur. Davantage d'informations sont disponibles sur nos [pages de staking](/staking) et sur [la plateforme de lancement de staking](https://launchpad.ethereum.org/). diff --git a/src/content/translations/fr/contributing/translation-program/translators-guide/index.md b/src/content/translations/fr/contributing/translation-program/translators-guide/index.md deleted file mode 100644 index da91684fb41..00000000000 --- a/src/content/translations/fr/contributing/translation-program/translators-guide/index.md +++ /dev/null @@ -1,293 +0,0 @@ ---- -title: Guide à l'intention des traducteurs -lang: fr -description: Instructions et conseils pour les traducteurs d'ethereum.org ---- - -# Guide de style pour la traduction d'ethereum.org {#style-guide} - -Le guide de style pour la traduction d'ethereum.org contient les principales recommandations, directives et astuces pour ceux qui nous aident à traduire le site. - -Ce document sert de guide général et n'est spécifique à aucune langue. - -Si vous avez des questions, des suggestions ou des commentaires, n'hésitez pas à nous contacter à l'adresse translations@ethereum.org, à envoyer un message à @ethdotorg sur Crowdin ou à [rejoindre notre serveur Discord](https://discord.gg/ethereum-org), où vous pourrez nous envoyer un message dans le salon #translations ou contacter l'un des membres de l'équipe. - -### Utiliser Crowdin {#using-crowdin} - -Vous pouvez trouver les instructions de base pour rejoindre le projet sur Crowdin et sur l'utilisation de l'éditeur en ligne de la plateforme sur la [page du programme de traduction](/contributing/translation-program/#how-to-translate). - -Si vous souhaitez en savoir plus sur Crowdin et sur certaines de ses fonctionnalités avancées, la [base de connaissances de Crowdin](https://support.crowdin.com/online-editor/) contient de nombreux guides approfondis et des aperçus de toutes les fonctionnalités de Crowdin. - -### Capturer l'essence du message {#capturing-the-essence} - -Lors de la traduction du contenu d'ethereum.org, évitez les traductions littérales. - -Les traductions doivent capturer l'essence du message. Cela peut impliquer de reformuler certaines phrases ou d'utiliser des traductions descriptives plutôt que de traduire le contenu mot à mot. - -Chaque langue a ses règles grammaticales, ses conventions et sa syntaxe. Lors de la traduction, gardez à l'esprit la manière dont les phrases sont structurées dans la langue de destination et évitez de traduire littéralement la source anglaise, car cela peut conduire à une structure de phrase et une lisibilité de faible qualité. - -Au lieu de traduire le texte original mot pour mot, il est recommandé de lire la phrase entière et de l'adapter aux conventions de la langue de destination. - -### Formel vs. informel {#formal-vs-informal} - -Nous utilisons la forme formelle (le vouvoiement), car elle est toujours polie et appropriée pour tous les visiteurs. - -La forme formelle nous évite de paraître non officiels ou offensants et fonctionne quels que soient l'âge et le sexe du visiteur. - -À la deuxième personne, la plupart des langues indo-européennes et afro-asiatiques utilisent des pronoms personnels spécifiques au sexe, qui distinguent les hommes et les femmes. Lorsque nous nous adressons à l'utilisateur ou que nous utilisons un pronom possessif, nous pouvons éviter de supposer le sexe du visiteur avec la forme formelle, étant donné qu'elle est généralement applicable et cohérente, quelle que soit la façon dont il s'identifie. - -### Signification et vocabulaire simples et clairs {#simple-vocabulary} - -Notre objectif est de rendre le contenu du site accessible au plus grand nombre de personnes possible. - -La plupart du temps, il suffit d'utiliser des mots courts et simples qui sont faciles à comprendre. S'il y a plusieurs traductions possibles pour un certain mot, le meilleur choix sera souvent le mot le plus court reflétant clairement le sens. - -### Système d'écriture {#writing-system} - -Ethereum.org est disponible en plusieurs langues qui utilisent des systèmes d'écriture (ou des scripts) différents du système latin. - -Tout le contenu doit alors être traduit en utilisant le système d'écriture de votre langue et ne doit pas inclure de mots écrits en caractères latins. - -Lors de la traduction du contenu, vous devez vous assurer que les traductions sont cohérentes et n'incluent pas de caractères latins. - -Une idée reçue courante voudrait qu'« Ethereum » soit toujours écrit en latin. C'est généralement incorrect. Veuillez utiliser l'orthographe d'« Ethereum » native dans votre langue (ex : 以太坊 en chinois, إيثيريوم en arabe, etc.). - -**Ceci ne s'applique pas aux langues au sein desquelles il existe une règle proscrivant la traduction des noms propres.** - -### Traduction des métadonnées de la page {#translating-metadata} - -Certaines pages contiennent des métadonnées comme « title », « lang », « description », « sidebar », etc. - -Nous « cachons » le contenu que les traducteurs ne doivent jamais traduire lors du chargement de nouvelles pages sur Crowdin, ce qui signifie que toutes les métadonnées visibles aux traducteurs dans Crowdin doivent être traduites. - -Soyez particulièrement attentif lorsque vous traduisez des chaînes où le texte source est « en ». Ce texte indique la langue dans laquelle la page est disponible et doit donc être traduit par le [code de langue ISO correspondant à votre langue](https://www.andiamo.co.uk/resources/iso-language-codes/). Ces chaînes de caractères doivent toujours être traduites en utilisant des caractères latins, et non le script natif de la langue cible. - -Si vous n'êtes pas certain du code de langue à utiliser, vous pouvez vérifier la mémoire de traduction dans Crowdin ou trouver le code de votre langue dans l'URL de la page dans l'éditeur en ligne Crowdin. - -Voici quelques exemples de codes de langue pour les langues les plus parlées : - -- Arabe - ar -- Chinois simplifié - zh -- Français - fr -- Hindi - hi -- Espagnol - es - -### Titres des articles externes {#external-articles} - -Certaines chaînes de caractères contiennent des titres d'articles externes. La plupart de nos pages de documentation pour développeurs contiennent des liens vers des articles externes pour de plus amples détails. Les chaînes de caractères contenant les titres des articles doivent être traduites, quelle que soit la langue de l'article, afin d'assurer une expérience utilisateur plus cohérente pour les visiteurs qui consultent la page dans leur langue. - -Pour vous aider à les repérer, vous trouverez ci-dessous quelques exemples de ces chaînes (les liens vers les articles se trouvent principalement en bas de ces pages, dans la section « Further reading » [Lectures complémentaires]) : - -![Titres des articles dans sidebar.png](./article-titles-in-sidebar.png) ![Titres des articles dans editor.png](./article-titles-in-editor.png) - -### Avertissements Crowdin {#crowdin-warnings} - -Crowdin a une fonctionnalité intégrée qui avertit les traducteurs lorsqu'ils sont sur le point de faire une erreur. Crowdin vous en avertira automatiquement avant d'enregistrer votre traduction si vous oubliez d'inclure une balise de la source, de traduire des éléments qui ne devraient pas être traduits, d'ajouter plusieurs espaces consécutifs, d'oublier la ponctuation de fin, etc. Si un tel avertissement s'affiche, veuillez revenir en arrière et vérifier la traduction proposée. - -**N'ignorez jamais ces avertissements, car ils signifient généralement que quelque chose ne va pas ou qu'il manque un élément essentiel du texte source dans la traduction.** - -Voici un exemple d'avertissement Crowdin lorsque vous oubliez d'ajouter une balise à votre traduction : ![Exemple d'un avertissement dans Crowdin](./crowdin-warning-example.png) - -### Gérer les balises et les extraits de code {#dealing-with-tags} - -Une grande partie du contenu de la source contient des balises et des variables, surlignées en jaune dans l'éditeur Crowdin. Elles remplissent différentes fonctions et doivent être utilisées correctement. - -**Paramètres de Crowdin** - -Pour faciliter la gestion des tags et les copier directement à partir de la source, nous vous recommandons de modifier vos paramètres dans l'éditeur Crowdin. - -1. Ouvrez les paramètres de l'éditeur ![Comment ouvrir les paramètres de l'éditeur](./editor-settings.png) - -2. Allez à la section 'Affichage des tags HTML' - -3. Sélectionnez 'Masquer' ![Veuillez sélectionner 'Masquer'](./hide-tags.png) - -4. Cliquez sur 'Enregistrer' - -En sélectionnant cette option, le texte du tag complet ne sera plus affiché et sera remplacé par un nombre. Lors de la traduction, cliquer sur ce tag copiera automatiquement le tag exact dans le champ de traduction. - -**Liens** - -Vous pouvez remarquer des liens complets vers des pages d'ethereum.org ou d'autres sites web. - -Ceux-ci doivent rester identiques à la source sans changement ni traduction. Si vous traduisez un lien ou le modifiez d'une manière ou d'une autre, même uniquement en supprimant une partie de celui-ci, comme un slash (/), cela va casser les liens et les rendre inutilisables. - -La meilleure façon de gérer les liens est de les copier directement à partir de la source, soit en cliquant dessus, soit en utilisant le bouton « Copy Source » (Copier la source) (Alt+C). - -![Exemple de lien.png](./example-of-link.png) - -Les liens apparaissent également dans le texte source sous la forme de balises (c'est-à-dire <0> ). Si vous survolez la balise, l'éditeur affichera son véritable contenu. Parfois, ces balises désigneront des liens. - -Il est très important de copier les liens depuis le texte source et de ne pas modifier l'ordre des balises. - -Si l'ordre des balises est changé, le lien qu'elles représentent sera cassé. - -![Exemple de liens à l'intérieur de balises.png](./example-of-links-inside-tags.png) - -**Balises et variables** - -Le texte source contient de nombreux types de balises différentes, qui doivent toujours être copiées depuis la source et ne pas être modifiées. Comme expliqué plus haut, l'ordre des balises dans la traduction devrait également être le même que dans le texte source. - -Les balises comprennent toujours une balise ouvrante et une balise fermante. Et en général, le texte compris entre les deux balises doit être traduit. - -Exemple : ``Décentralisé`` - -`` - _Balise ouvrante qui fait apparaître le texte en gras_ - -Décentralisé - _Texte à traduire_ - -`` - _Balise fermante_ - -![Exemple de balises strong.png](./example-of-strong-tags.png) - -Les extraits de code doivent être abordés légèrement différemment des autres balises, car ils contiennent du code qui ne doit pas être traduit. - -Exemple : ``nonce`` - -`` - _Balise ouvrante, qui contient un extrait de code_ - -nonce - _Texte non traduisible_ - -`` - _Balise fermante_ - -![Exemple d'extraits de code.png](./example-of-code-snippets.png) - -Le texte source contient aussi des balises raccourcies. Elles contiennent uniquement des chiffres et leur fonction n'est donc pas directement identifiable. Vous pouvez survoler ces balises pour voir exactement ce à quoi elles servent. - -Dans l'exemple ci-dessous, vous pouvez voir que survoler la balise <0> nous permet de savoir qu'elle désigne en fait une balise `` et qu'elle contient un extrait de code. Le contenu de ces balises ne doit donc pas être traduit. - -![Exemple de balises ambiguës.png](./example-of-ambiguous-tags.png) - -### Formes courtes, formes complètes et abréviations {#short-vs-full-forms} - -De nombreuses abréviations sont utilisées sur le site, comme dApps, NFT, DAO, DeFi, etc. Ces abréviations sont couramment utilisées en anglais et les visiteurs du site web les connaissent généralement. - -Étant donné qu'elles n'ont souvent pas de traduction établie dans les autres langues, la meilleure façon d'adapter ces termes (ainsi que les termes qui gravitent autour) est de fournir une traduction descriptive de leur forme complète, puis d'ajouter l'abréviation entre parenthèses. - -Ne traduisez pas ces abréviations, car la plupart des gens ne les connaissent pas et les versions traduites n'auraient pas vraiment de sens pour la plupart des visiteurs. - -Exemple de la manière de traduire « dApps » : - -- Applications décentralisées (dApps) → _Forme complète traduite (abréviation anglaise entre parenthèses)_ - -### Termes sans traduction établie {#terms-without-established-translations} - -Certains termes peuvent ne pas avoir de traduction bien définie dans les autres langues et être largement connus sous leur forme anglaise. Ces termes incluent principalement des concepts récents, comme proof-of-work, proof-of-stake, Beacon Chain, staking, etc. - -La traduction de ces termes peut sembler peu naturelle, mais puisque la version anglaise est également couramment utilisée dans d'autres langues, il est fortement recommandé de les traduire. - -Lorsque vous traduisez ces termes, soyez créatifs, utilisez des traductions descriptives ou alors traduisez-les littéralement. - -**Le fait de traduire ces termes, plutôt que de les laisser en anglais, permettra à cette nouvelle terminologie de se généraliser à l'avenir, à mesure que de plus en plus de personnes utiliseront Ethereum et les technologies associées. Si nous voulons faire connaître ce domaine à plus de personnes à travers le monde, nous devons fournir une terminologie compréhensible dans un maximum de langues, quitte à la créer nous-mêmes.** - -### Boutons et appels à l'action (CTA) {#buttons-and-ctas} - -Le site contient de nombreux boutons, qui doivent être traduits différemment des autres contenus. - -Vous pouvez repérer un bouton et son contenu en visualisant les captures d'écran contextuelles, fournies avec la plupart des textes sources, ou bien en regardant le contexte de l'éditeur, qui inclura le terme « button » (bouton). - -Les traductions des boutons doivent être aussi courtes que possible pour éviter les problèmes de mise en forme. En outre, la traduction des boutons doit être impérative, c'est-à-dire exprimer un ordre ou une demande. - -![Comment repérer un bouton.png](./how-to-find-a-button.png) - -### Traduire de manière inclusive {#translating-for-inclusivity} - -Les visiteurs d'ethereum.org viennent de partout dans le monde et d'horizons différents. Le langage du site web devrait donc être neutre, accueillant pour tout le monde et inclusif. - -La neutralité de genre est un aspect important de cette démarche. Dans cette optique, préférez un langage formel lorsque vous vous adressez au visiteur, en évitant d'utiliser des termes genrés dans les traductions. - -Une autre forme d'inclusivité consiste à faire en sorte que la traduction s'adresse à un public mondial, et pas spécifiquement à un pays, une ethnie ou une région du monde. - -Enfin, le langage doit être adapté à tous les publics et tous les âges. - -## Traductions spécifiques à une langue {#language-specific-translations} - -Lors de la traduction, plutôt que de calquer simplement la source, il est important de suivre les règles de grammaire, les conventions et le formatage en vigueur dans votre langue. Le texte source suit les règles et conventions de la grammaire anglaise, qui ne sont pas applicables dans beaucoup d'autres langues. - -Vous devez donc avoir les règles de votre langue en tête afin de traduire correctement. Si vous avez besoin d'aide pour traduire certains éléments, contactez-nous et nous vous aiderons à trouver des ressources sur la façon dont ils doivent être adaptés à votre langue. - -Voici quelques exemples de ce à quoi vous devrez faire attention : - -### Ponctuation et mise en forme {#punctuation-and-formatting} - -**Majuscules** - -- Il existe de grandes différences entre les langues sur la façon d'utiliser les lettres majuscules. -- En anglais, il est courant de mettre en majuscule sur la première lettre de tous les mots contenus dans les titres, les noms, les mois, les jours, le nom des langues, les jours fériés, etc. Dans de nombreuses autres langues, c'est grammaticalement incorrect, car les règles sont différentes. -- Certaines langues ont aussi des règles sur la mise en majuscule des pronoms personnels, des noms communs et de certains adjectifs, qui ne portent pas de majuscule en anglais. - -**Espaces** - -- Les règles orthographiques définissent l'utilisation des espaces pour chaque langue. Ces règles sont souvent très spécifiques, et parce que les espaces sont utilisés partout, ils sont parmi les éléments les plus mal traduits. -- Voici quelques différences d'espacement fréquentes entre l'anglais et d'autres langues : - - Espace avant les unités de mesure et les devises (ex. USD, EUR, kB, MB) - - Espace avant le signe de degré (ex. °C, ℉) - - Espace avant certains signes de ponctuation, notamment l'ellipse (…) - - Espace avant et après les barres obliques (/) - -**Listes** - -- Chaque langue possède un ensemble de règles diverses et variées pour la rédaction des listes. Elles peuvent différer considérablement de l'anglais. -- Dans certaines langues, le premier mot de chaque nouvelle ligne doit avoir sa première lettre en majuscule, tandis que dans d'autres langues, les nouvelles lignes doivent commencer par une lettre minuscule. Plusieurs langues ont aussi différentes règles sur la présence de majuscule en début de ligne, en fonction de la longueur de celle-ci. -- Il en va de même pour la ponctuation en fin de ligne. Cela peut être un point (**.**), une virgule (**,**) ou un point-virgule (**;**), en fonction de la langue. - -**Guillemets** - -- Certaines langues utilisent différents signes pour les guillemets. Il est souvent incorrect de se contenter de recopier les guillemets anglais. -- Parmi les types de guillemets les plus courants, figurent : - - „texte d'exemple“ - - ‚texte d'exemple’ - - »texte d'exemple« - - “texte d'exemple” - - ‘texte d'exemple’ - - «texte d'exemple» - -**Tirets et traits d'union** - -- En anglais, le trait d'union (-) est utilisé pour joindre des mots ou différentes parties d'un mot, tandis que le tiret (–) est utilisé pour indiquer un intervalle ou une pause. -- Beaucoup de langues ont des règles différentes concernant les tirets et les traits d'union qui doivent être respectées. - -### Formats {#formats} - -**Nombres** - -- La principale différence entre les langues concernant les nombres écrits est le séparateur utilisé pour les nombres décimaux et celui des milliers. Pour les milliers, cela peut être un point, une virgule ou une espace. De la même manière, certaines langues utilisent un point pour les nombres décimaux, tandis que d'autres utilisent une virgule. - - Voici quelques exemples de grands nombres : - - Anglais – **1,000.50** - - Espagnol – **1.000,50** - - Français – **1 000,50** -- Une autre chose à prendre en considération lors de la traduction de nombres est le signe pourcentage. Il peut être écrit de différentes manières : **100%**, **100 %** ou encore **%100**. -- Enfin, les nombres négatifs peuvent aussi s'afficher différemment en fonction de la langue : -100, 100-, (100) ou [100]. - -**Dates** - -- Lors de la traduction des dates, il y a un certain nombre de différences à prendre en compte, en fonction de la langue. Il s'agit par exemple du format de date, du séparateur, de la présence de majuscules ou encore des zéros initiaux. Il y a aussi des différences entre les dates complètes et les dates numériques. - - Voici quelques exemples de différents formats de date : - - Anglais UK (jj/mm/aaaa) – 1er janvier 2022 - - Anglais US (mm/jj/aaaa) – janvier 1, 2022 - - Chinois (aaaa-mm-jj) – 2022 年 1 月 1 日 - - Français (jj/mm/aaaa) – 1er janvier 2022 - - Italien (jj/mm/aaaa) – 1º gennaio 2022 - - Allemand (jj/mm/aaaa) – 1. Januar 2022 - -**Devises** - -- Traduire des devises peut s'avérer difficile, en raison des différences de formats, de conventions et de conversions. En règle générale, veuillez garder la même devise que la source. Dans l'intérêt du lecteur, vous pouvez éventuellement ajouter votre devise locale ainsi que la conversion entre parenthèses. -- Les principales différences qui existent lors de l'écriture des devises dans différentes langues sont le placement des symboles, les virgules décimales par rapport aux points décimaux, l'espacement et les abréviations par rapport aux symboles. - - Emplacement du symbole : $100 ou 100$ - - Virgule décimale ou point décimal : 100,50$ ou 100.50$ - - Espacement : 100$ ou 100 $ - - Abréviation ou symbole : 100 $ ou 100 USD - -**Unités de mesure** - -- En règle générale, veuillez garder la même unité de mesure que dans le texte source. Si votre pays utilise un autre système, vous pouvez inclure la conversion entre parenthèses. -- Outre la localisation des unités de mesure, il est également important de tenir compte des différences dans la façon dont les langues abordent ces unités. La différence principale est l'espacement entre le nombre et l'unité, qui peut différer selon la langue. Par exemple, on observe cette différence entre 100kB, 100 kB, 50ºF et 50 ºF. - -### Conclusion {#conclusion} - -Traduire ethereum.org constitue une excellente occasion de découvrir les différents aspects d'Ethereum. - -Lors de la traduction, essayez de ne pas vous précipiter. Prenez votre temps et faites-vous plaisir ! - -Merci pour votre participation au programme de traduction et de nous aider à rendre le site accessible à un public plus large. La communauté Ethereum est internationale, et nous sommes heureux que vous en fassiez partie ! diff --git a/src/content/translations/fr/dao/index.md b/src/content/translations/fr/dao/index.md deleted file mode 100644 index 0ff17b1fa22..00000000000 --- a/src/content/translations/fr/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: Organisation autonome décentralisée (DAO) -description: Un aperçu des DAO sur Ethereum -lang: fr -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: Une représentation d'une DAO qui vote une proposition. -summaryPoint1: Des communautés appartenant à leurs membres sans pouvoir centralisé. -summaryPoint2: Un moyen sûr de collaborer avec des étrangers sur Internet. -summaryPoint3: Un endroit sûr pour engager des fonds pour une cause précise. ---- - -## Que sont les DAO ? {#what-are-daos} - -Une DAO est une organisation collectivement gérée par la blockchain et qui travaille à une mission partagée. - -Les DAO nous permettent de travailler avec des personnes partageant le même état d'esprit et dans le monde entier, sans pour autant faire confiance à un dirigeant bienveillant pour gérer les fonds ou les opérations. Il n'y a pas de Directeur Général qui puisse dépenser des fonds sur un caprice ou un Chef de la direction financière capable de manipuler les registres. Au lieu de cela, les règles basées sur la blockchain ont été intégrées dans le code et définissent comment fonctionne l'organisation et comment les fonds sont dépensés. - -Elles possèdent une trésorerie intégrée à laquelle personne ne peut accéder sans l'accord du groupe. Les décisions sont régies par des propositions et des votes pour s'assurer que tout le monde au sein de l'organisation a une voix et que tout se passe de manière transparente sur la chaîne. - -## Pourquoi avons-nous besoin des DAO ? {#why-dao} - -Créer une organisation avec quelqu'un qui injecte des fonds et de l'argent exige une grande confiance dans les personnes avec lesquelles vous travaillez. Mais il est difficile de faire confiance à une personne avec laquelle vous n’avez interagi que sur Internet. Avec les DAO, vous n'avez pas besoin de faire confiance à quelqu'un dans le groupe, juste au code de la DAO, qui est 100 % transparent et vérifiable par n'importe qui. - -Cela ouvre énormément de nouvelles possibilités de collaboration et de coordination au niveau mondial. - -### Une comparaison {#dao-comparison} - -| DAO | Organisation traditionnelle | -| --------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | -| Habituellement fixe, et pleinement démocratisée. | Généralement hiérarchique. | -| Vote requis par les membres pour que tout changement soit mis en œuvre. | Selon la structure, des changements peuvent être demandés par une seule personne et le vote peut être biaisé. | -| Votes comptabilisés et résultats mis en œuvre automatiquement sans intermédiaire de confiance. | Si les votes sont proposés, ils sont calculés en interne et les résultats des votes doivent être traités manuellement. | -| Les services offerts sont gérés automatiquement de manière décentralisée (par exemple la distribution de fonds philanthropiques). | Nécessite une manipulation humaine ou une automatisation centralisée sujette à la manipulation. | -| Toutes les activités sont transparentes et entièrement publiques. | L'activité est généralement privée et limitée au public. | - -### Exemples de DAO {#dao-examples} - -Pour aider votre compréhension, voici quelques exemples de la façon dont vous pourriez utiliser une DAO : - -- Un organisme caritatif – vous pouvez accepter les dons de n'importe qui dans le monde entier et voter pour les causes à financer. -- Propriété collective – vous pouvez acheter des actifs physiques ou numériques et les membres peuvent voter sur la façon de les utiliser. -- Ventures et subventions – vous pourriez créer un fonds de risque qui regroupe le capital d’investissement et qui votera pour savoir quelles les entreprises garder. L'argent perçu pourra plus tard être redistribué entre les membres de la DAO. - -## Comment fonctionnent les DAO ? {#how-daos-work} - -La colonne vertébrale d'une DAO est son contrat intelligent, qui définit les règles de l'organisation et détient la trésorerie du groupe. Une fois que le contrat est en vigueur sur Ethereum, personne ne peut modifier les règles autrement que par un vote. Si quelqu'un essaie de faire quelque chose qui n'est pas couvert par les règles et la logique dans le code, il échouera. Et, comme la trésorerie est également définie par le contrat intelligent, personne ne peut dépenser l'argent sans l'approbation du groupe. Cela signifie que les DAO n'ont pas besoin d'une autorité centrale. Au lieu de cela, le groupe prend des décisions collectives et les paiements sont autorisés automatiquement lorsque les votes sont passés. - -Ceci est possible parce que les contrats intelligents sont étanches à toute intrusion dès qu'ils sont mis en service sur Ethereum. Vous ne pouvez pas simplement modifier le code (les règles DAO) sans que les gens le remarquent puisque tout est public. - - - En savoir plus sur les contrats intelligents - - -## Ethereum et DAO {#ethereum-and-daos} - -Ethereum est une base parfaite pour les DAOs pour plusieurs raisons : - -- Le consensus propre à Ethereum est suffisamment distribué et établi pour que les organisations fassent confiance au réseau. -- Le code du contrat intelligent ne peut pas être modifié une fois en direct, même par ses propriétaires. Cela permet à la DAO de fonctionner selon les règles avec lesquelles elle a été programmée. -- Les contrats intelligents peuvent envoyer/recevoir des fonds. Sans cela, vous aurez besoin d'un intermédiaire de confiance pour gérer les fonds de groupe. -- La communauté Ethereum s'est révélée plus coopérative que compétitive, permettant ainsi l'émergence de pratiques exemplaires dotés d'une grande vitesse de développement. - -## Gouvernance de DAO {#dao-governance} - -Il existe de nombreuses considérations à prendre en compte au moment de gouverner une DAO, comme le fonctionnement du vote et des propositions. - -### Délégation {#governance-delegation} - -La délégation est la version DAO de la démocratie représentative. Les détenteurs de jetons délèguent des votes aux utilisateurs qui se désignent et s'engagent à gérer le protocole et à rester informés. - -#### Un exemple célèbre {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) – Les détenteurs d'ENS peuvent déléguer leurs votes à des membres de la communauté engagés pour les représenter. - -### Gouvernance automatique des transactions {#governance-example} - -Dans de nombreuse DAO, les transactions seront automatiquement exécutées si le quorum des membres vote par l'affirmative. - -#### Un exemple célèbre {#governance-example} - -[Nouns](https://nouns.wtf) – Dans Nouns DAO, une transaction est automatiquement exécutée si un quorum de votes est atteint et qu'une majorité vote par l'affirmative, tant qu'elle ne fait pas l'objet d'un véto de la part des fondateurs. - -### Gouvernance Multisig {#governance-example} - -Tandis que les DAO peuvent avoir des milliers de membres votants, les fonds peuvent se trouver dans un portefeuille partagé par 5 à 20 membres actifs de la communauté qui sont dignes de confiance et généralement doxxés (identités publiques connues de la communauté). Après un vote, les signataires multisig exécutent la volonté de la communauté. - -## Les lois des DAO {#dao-laws} - -En 1977, le Wyoming a créé la LLC, qui protège les entrepreneurs et limite leur responsabilité. Plus récemment, ils ont été les pionniers de la loi pour les DAO qui établit un statut juridique pour les DAO. Actuellement, le Wyoming, le Vermont et les Iles Vierges ont des lois portant sur les DAO sous une forme ou une autre. - -#### Un exemple célèbre {#law-example} - -[CityDAO](https://citydao.io) - CityDAO s'est servi de la loi DAO du Wyoming pour acheter 40 acres de terrain près du parc national de Yellowstone. - -## Adhésion à la DAO {#dao-membership} - -Il existe différents modèles pour adhérer à une DAO. L'adhésion peut déterminer comment fonctionne le vote et d'autres éléments clés de la DAO. - -### Adhésion basée sur des jetons {#token-based-membership} - -Habituellement cela se fait totalement sans permission, seulement en fonction du jeton utilisé. La plupart de ces jetons de gouvernance peuvent être échangés sans permission sur un échange décentralisé. D’autres doivent être gagnés en fournissant des liquidités ou une autre « preuve de travail ». Quoi qu’il en soit, il suffit de détenir le jeton pour donner accès au vote. - -_Généralement, cela est utilisé pour régir des protocoles décentralisés et/ou des jetons eux-mêmes._ - -#### Un exemple célèbre {#token-example} - -[MakerDAO](https://makerdao.com) – Le jeton MKR de MakerDAO est largement disponible sur les échanges décentralisés et tout le monde peut acheter un droit de vote sur le futur du protocole Maker. - -### Adhésion basée sur les actions {#share-based-membership} - -Les DAO basées sur les actions sont davantage soumises à l'autorisation, mais demeurent très ouvertes. Tous les membres potentiels peuvent soumettre une proposition pour rejoindre la DAO, offrant habituellement une contribution d'une certaine valeur sous la forme de jetons ou de travail. Les actions représentent le droit de vote direct et la propriété. Les membres peuvent sortir à tout moment avec leur part proportionnelle de la trésorerie. - -_Habituellement utilisé pour des organisations plus proches et axées sur l’humanité telles que les organismes de bienfaisance, les collectifs de travailleurs et les clubs d’investissement. Cela peut également concerner la gouvernance des protocoles et des jetons._ - -#### Un exemple célèbre {#share-example} - -[MolochDAO](http://molochdao.com/) – MolochDAO se concentre sur le financement de projets Ethereum. Ils requièrent une proposition d’adhésion afin que le groupe puisse évaluer si vous avez l’expertise et le capital nécessaires pour émettre des jugements éclairés sur les bénéficiaires potentiels. Vous ne pouvez pas vous contenter d'acheter l'accès à la DAO sur le marché ouvert. - -### Adhésion basée sur la réputation {#reputation-based-membership} - -Ici, la réputation représente une preuve de participation et accorde le droit de vote dans la DAO. Contrairement à une adhésion basée sur des jetons ou sur les actions, les DAO basées sur la réputation ne transfèrent pas la propriété aux contributeurs. En effet, la réputation ne peut pas être achetée, transférée ou déléguée  ; les membres de la DAO doivent mériter leur réputation par la participation. Le vote sur la chaîne est sans permission, les membres potentiels peuvent librement soumettre des propositions pour rejoindre la DAO et demander à recevoir de la réputation et des jetons en guise de récompense en échange de leurs contributions. - -_Habituellement utilisée pour le développement décentralisé et la gouvernance de protocoles et de DApps, cette méthode est également adaptée à divers autres types d'organisations, comme les organismes caritatifs, les collectifs de travailleurs, les clubs d'investissement, etc._ - -#### Un exemple célèbre {#reputation-example} - -[DXdao](https://DXdao.eth.link) – DXdao est une construction collective mondiale souveraine et régit les protocoles et applications décentralisés depuis 2019. Il tire parti de la gouvernance basée sur la réputation et du consensus holographique pour coordonner et gérer les fonds, ce qui signifie que personne ne peut acheter son entrée pour influencer son avenir. - -## Rejoindre/démarrer une DAO {#join-start-a-dao} - -### Rejoindre une organisation autonome décentralisée (DAO) {#join-a-dao} - -- [DAO de la communauté Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [Liste des DAO de DAOHauss](https://app.daohaus.club/explore) -- [Liste des DAO Tally.xyz](https://www.tally.xyz) - -### Démarrer une DAO {#start-a-dao} - -- [Invoquer une DAO avec DAOHaus](https://app.daohaus.club/summon) -- [Lancer une Governor DAO avec Tally](https://www.tally.xyz/add-a-dao) -- [Créer une DAO propulsée par Aragon](https://aragon.org/product) -- [Lancer une colonie](https://colony.io/) -- [Créer une DAO avec le consensus holographique de DAOstack](https://alchemy.daostack.io/daos/create) - -## Complément d'information {#further-reading} - -### Articles DAO {#dao-articles} - -- [Qu'est-ce qu'une DAO ?](https://aragon.org/dao) – [Aragon](https://aragon.org/) -- [Le Manuel DAO](https://daohandbook.xyz) -- [La maison des DAOs](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) -- [Qu'est-ce qu'une DAO et à quoi sert-elle ?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) -- [Comment démarrer une communauté numérique DAO](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) -- [Qu'est-ce qu'une DAO ?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) -- [Qu'est-ce que le Consensus holographique ?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) -- [Les DAO ne sont pas des entreprises : là où la décentralisation dans les organisations autonomes compte, par Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) -- [DAO, DAC, DA et plus : un guide terminologique incomplet](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Blog Ethereum](https://blog.ethereum.org) - -### Vidéos {#videos} - -- [Qu'est-ce qu'une DAO en cryptomonnaie ?](https://youtu.be/KHm0uUPqmVE) -- [Une DAO peut-elle bâtir une ville ?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/src/content/translations/fr/decentralized-identity/index.md b/src/content/translations/fr/decentralized-identity/index.md deleted file mode 100644 index d5ded648a63..00000000000 --- a/src/content/translations/fr/decentralized-identity/index.md +++ /dev/null @@ -1,188 +0,0 @@ ---- -title: Identité décentralisée -description: Qu’est-ce que l’identité décentralisée et pourquoi est-ce important ? -lang: fr -template: use-cases -emoji: ":id:" -sidebarDepth: 2 -image: ../../../../assets/eth-gif-cat.png -summaryPoint1: Les systèmes traditionnels d'identité centralisent l'émission, le maintien et le contrôle de vos identifiants. -summaryPoint2: L'identité décentralisée supprime la dépendance à l'égard de tiers centralisés. -summaryPoint3: Grâce à la crypto, les utilisateurs ont maintenant les outils pour émettre, conserver et contrôler à nouveau leurs propres identifiants et attestations. ---- - -L'identité sous-tend pratiquement tous les aspects de votre vie aujourd'hui. Utiliser les services en ligne, ouvrir un compte bancaire, voter aux élections, acheter des biens, en assurant l’emploi, tout cela nécessite de prouver votre identité. - -Cependant, les systèmes traditionnels de gestion d'identité reposent depuis longtemps sur des intermédiaires centralisés qui émettent, conservent et contrôlent vos identifiants et vos [attestations](#what-are-attestations). Cela signifie que vous ne pouvez pas contrôler les renseignements relatifs à votre identité ou décider qui a accès à des renseignements personnels identifiables (PII) et quel est le niveau d'accès de ces parties. - -Pour résoudre ces problèmes, nous avons des systèmes d'identité décentralisés construits sur des blockchains publiques comme Ethereum. L'identité décentralisée permet aux individus de gérer les informations relatives à leur identité. Avec des solutions d’identité décentralisées, _vous_ pouvez créer des identifiants et réclamer et détenir vos attestations sans compter sur les autorités centrales, comme les fournisseurs de services ou les gouvernements. - -## Qu'est-ce qu'une identité? {#what-is-identity} - -L'identité signifie le sentiment de soi d'un individu, défini par des caractéristiques uniques. L'identité désigne le fait d'être un _individu_, c'est-à-dire une entité humaine distincte. L'identité pourrait également se référer à d'autres entités non humaines, comme une organisation ou une autorité. - -## Que sont les identifiants ? {#what-are-identifiers} - -Un identificateur est une information qui sert de pointeur vers une identité particulière ou des identités. Les identifiants communs comprennent : - -- Nom -- Numéro de sécurité sociale/numéro d'identification fiscale -- Téléphone portable -- Date et lieu de naissance -- Identifiants numérique, par exemple les adresses e-mail, les noms d'utilisateur, les avatars - -Ces exemples traditionnels d’identifiants sont publiés, détenus et contrôlés par des entités centrales. Vous avez besoin de la permission de votre gouvernement pour changer votre nom ou de celle d'une plateforme de médias sociaux pour changer de poignée. - -## Que sont les attestations ? {#what-are-attestations} - -Une attestation est une déclaration faite par une entité sur une autre entité. Si vous vivez aux États-Unis, le permis de conduire qui vous a été délivré par le Department of Motor Vehicles (ministère des véhicules à moteur) (une entité) atteste que vous (une autre entité) êtes légalement autorisé à conduire une voiture. - -Les attestations sont différentes des identifiants. Une attestation \_contient_des identifiants pour référencer une identité particulière et émet une revendication à propos d'un attribut lié à cette identité. Ainsi, votre permis de conduire a des identifiants (nom, date de naissance, adresse) mais est aussi l'attestation de votre droit légal de conduire. - -### Que sont les identifiants décentralisés ? {#what-are-decentralized-identifiers} - -Les identificateurs traditionnels comme votre nom légal ou votre adresse de courriel dépendent de tierces parties – gouvernements et fournisseurs de courriel. Les identifiants décentralisés (DID) sont différents : ils ne sont pas délivrés, gérés ou contrôlés par une quelconque entité centrale. - -Des identifiants décentralisés sont émis, conservés et contrôlés par des individus. Un compte [Ethereum](/developers/docs/accounts/) est un exemple d'identifiant décentralisé. Vous pouvez créer autant de comptes que vous le souhaitez sans permission de personne et sans avoir à les stocker dans un registre central. - -Les identifiants décentralisés sont stockés sur des registres distribués (blockchains) ou sur des réseaux de pair-à-pair. Cela rend les DID [mondialement uniques, solubles avec une haute disponibilité, et vérifiables cryptographiquement](https://w3c-ccg.github.io/did-primer/). Un identifiant décentralisé peut être associé à différentes entités, y compris les personnes, les organisations ou les institutions gouvernementales. - -## Qu'est-ce qui rend possible les identifiants décentralisés ? {#what-makes-decentralized-identifiers-possible} - -### 1. Infrastructure à clé publique (ICP) {#public-key-infrastructure} - -L'infrastructure à clé publique (ICP) est une mesure de sécurité de l'information qui génère une [clé publique](/glossary/#public-key) et une [clé privée](/glossary/#private-key) pour une entité. La cryptographie à clé publique est utilisée dans les réseaux blockchain pour authentifier l'identité des utilisateurs et prouver la propriété des actifs numériques. - -Certains identifiants décentralisés, tels qu'un compte Ethereum, possèdent des clés publiques et privées. La clé publique identifie le contrôleur du compte, tandis que les clés privées peuvent signer et déchiffrer les messages pour ce compte. L'ICP fournit les preuves nécessaires pour authentifier les entités et empêcher l'usurpation d'identité et l'utilisation de fausses identités, en utilisant [des signatures cryptographiques](https://andersbrownworth.com/blockchain/public-private-keys/) pour vérifier toutes les demandes. - -### 2. Stockage de données décentralisé {#decentralized-datastores} - -Une blockchain sert de registre de données vérifiable : un registre d'informations ouvert, dénué de confiance et décentralisé. L'existence de blockchains publiques élimine la nécessité de stocker des identifiants dans des registres centralisés. - -Si quelqu'un a besoin de confirmer la validité d'un identifiant décentralisé, il peut consulter la clé publique associée sur la blockchain. Cela diffère des identifiants traditionnels qui nécessitent l'authentification par des tiers. - -## Comment les identifiants et les attestations décentralisés permettent-ils une identité décentralisée ? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} - -L'identité décentralisée est l'idée que les informations liées à l'identité doivent être autocontrôlées, privées et portables, les identifiants et les attestations décentralisés étant les principaux éléments constitutifs. - -Dans le contexte de l'identité décentralisée, les attestations (également connues sous le nom de [identifiants vérifiables](https://www.w3.org/TR/vc-data-model/)) sont des déclarations infalsifiables et vérifiables par cryptographie faites par l'émetteur. Chaque attestation ou identifiant vérifiable émis par une entité (par exemple, une organisation) est associé à son identité décentralisée (IDD). - -Les IDD étant stockées sur la blockchain, n'importe qui peut vérifier la validité d'une attestation en recoupant l'IDD de l'émetteur sur Ethereum. Essentiellement, la blockchain Ethereum agit comme un répertoire mondial qui permet de vérifier les IDD associées à certaines entités. - -Les identifiants décentralisés sont la raison pour laquelle les attestations sont autocontrôlées et vérifiables. Même si l'émetteur n'existe plus, le détenteur a toujours la preuve de la provenance et de la validité de l'attestation. - -Les identifiants décentralisés sont également essentiels pour protéger la confidentialité des informations personnelles grâce à l'identité décentralisée. Par exemple, si une personne soumet la preuve d'une attestation (un permis de conduire), la partie vérificatrice n'a pas besoin de vérifier la validité des informations contenues dans la preuve. Au lieu de cela, le vérificateur n'a besoin que de garanties cryptographiques de l'authenticité de l'attestation et de l'identité de l'organisation émettrice pour déterminer si la preuve est valide. - -## Types d'attestations dans l'identité décentralisée {#types-of-attestations-in-decentralized-identity} - -La façon dont les informations d'attestation sont stockées et récupérées dans un écosystème d'identité basé sur Ethereum est différente de la gestion d'identité traditionnelle. Voici un aperçu des différentes approches de l'émission, du stockage et de la vérification des attestations dans les systèmes d'identité décentralisés : - -### Attestations hors chaîne {#off-chain-attestations} - -L'une des préoccupations liées au stockage des attestations sur la chaîne est qu'elles peuvent contenir des informations que les personnes souhaitent garder privées. La nature publique de la blockchain Ethereum rend peu attrayant le stockage de telles attestations. - -La solution consiste à délivrer des attestations, détenues par les utilisateurs en dehors de la chaîne dans des portefeuilles numériques, mais signées avec le DID de l'émetteur stocké sur la chaîne. Ces attestations sont encodées en [JSON Web Tokens](https://en.wikipedia.org/wiki/JSON_Web_Token) et contiennent la signature numérique de l'émetteur, ce qui permet une vérification facile des revendications hors chaîne. - -Voici un scénario hypothétique pour expliquer les attestations hors de la chaîne : - -1. Une université (l'émetteur) génère une attestation (un certificat académique numérique), signe avec ses clés et la délivre à Bob (le propriétaire de l'identité). - -2. Bob postule à un emploi et veut apporter la preuve de ses diplômes universitaires à un employeur, il partage donc l'attestation de son portefeuille numérique. L'entreprise (le vérificateur) peut ensuite confirmer la validité de l'attestation en vérifiant le DID de l'émetteur (c'est-à-dire sa clé publique sur Ethereum). - -### Attestations hors chaîne avec accès persistant {#offchain-attestations-with-persistent-access} - -Dans ce cas, les attestations sont transformées en fichiers JSON et stockées hors chaîne ( idéalement sur une plateforme [de stockage cloud décentralisée](/developers/docs/storage/), telle que IPFS ou Swarm). Cependant, un [hachage](/glossary/#hash) du fichier JSON est stocké sur la chaîne et lié à un DID via un registre sur la chaîne. Le DID associé peut être soit celui de l'émetteur de l'attestation, soit celui du destinataire. - -Cette approche permet aux attestations d'obtenir une persistance basée sur la blockchain, tout en conservant les informations relatives aux demandes de remboursement chiffrées et vérifiables. Elle permet également une divulgation sélective puisque le détenteur de la clé privée peut déchiffrer les informations. - -### Attestations sur la chaîne {#onchain-attestations} - -Les attestations sur la chaîne sont détenues dans des [contrats intelligents](/developers/docs/smart-contracts/) sur la blockchain Ethereum. Le contrat intelligent (agissant comme un registre) associera une attestation à un identifiant décentralisé correspondant sur la chaîne (une clé publique). - -Voici un exemple pour montrer comment les attestations sur la chaîne pourraient fonctionner dans la pratique : - -1. Une entreprise (XYZ Corp) prévoit de vendre des parts de propriété à l'aide d'un contrat intelligent, mais ne veut que des acheteurs ayant effectué une vérification des antécédents. - -2. XYZ Corp peut demander à l'entreprise qui effectue les vérifications d'antécédents de délivrer des attestations sur la chaîne Ethereum. Cette attestation certifie qu'une personne a passé la vérification des antécédents sans exposer d'informations personnelles. - -3. Le contrat intelligent qui vend des actions peut vérifier dans le contrat de registre l'identité des acheteurs sélectionnés, ce qui permet au contrat intelligent de déterminer qui est autorisé à acheter des actions ou non. - -### Jetons d'âme et identité {#soulbound} - -[Les jetons d'âme](https://vitalik.ca/general/2022/01/26/soulbound.html) (NFT non transférables) pourraient être utilisés pour collecter des informations propres à un portefeuille spécifique. Cela crée effectivement une identité unique sur la chaîne, liée à une adresse Ethereum particulière, qui peut inclure des jetons représentant des réalisations (par exemple, terminer un cours en ligne spécifique ou atteindre un score seuil dans un jeu) ou la participation à une communauté. - -## Avantages d'une identité décentralisée {#benefits-of-decentralized-identity} - -1. L'identité décentralisée accroît votre contrôle sur vos informations personnelles d'identification. Les identifiants et attestations décentralisés peuvent être vérifiés sans dépendre des autorités centralisées et des services tiers. - -2. Les solutions d'identité décentralisées facilitent la vérification et la gestion de l'identité des utilisateurs de manière fiable, transparente et protègent la vie privée. - -3. L'identité décentralisée exploite la technologie blockchain, qui crée la confiance entre les différentes parties et fournit des garanties cryptographiques pour prouver la validité des attestations. - -4. L'identité décentralisée rend les données d'identité transférables. Les utilisateurs stockent des attestations et des identificateurs dans un portefeuille numérique et peuvent les partager avec n'importe quelle partie de leur choix. Les identifiants et attestations décentralisés ne sont pas verrouillés dans la base de données de l'organisme émetteur. - -5. L'identité décentralisée devrait bien fonctionner avec les technologies émergentes de connaissance zéro qui permettront aux individus de prouver qu'ils possèdent ou ont fait quelque chose sans révéler ce que c'est. Cela pourrait devenir un moyen puissant de combiner confiance et confidentialité pour des applications telles que le vote. - -6. L'identité décentralisée permet aux mécanismes anti-Sybil de détecter lorsqu'un individu se fait passer pour plusieurs autres afin de jouer ou de spammer un système. - -## Cas d'utilisation de l'identité décentralisée {#decentralized-identity-use-cases} - -L'identité décentralisée propose de nombreux cas d'utilisation potentiels : - -### 1. Connexions universelles {#universal-dapp-logins} - -L'identité décentralisée peut aider à remplacer les connexions par mot de passe par une [authentification décentralisée](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). Les fournisseurs de services peuvent délivrer des attestations aux utilisateurs, qui peuvent être stockées dans un portefeuille Ethereum. Un exemple d'attestation serait un [NFT](/nft/) accordant au titulaire l'accès à une communauté en ligne. - -Une fonction de [connexion avec Ethereum](https://login.xyz/) permettrait alors aux serveurs de confirmer le compte Ethereum de l'utilisateur et de récupérer l'attestation requise à partir de l'adresse de son compte. Cela signifie que les utilisateurs peuvent accéder aux plateformes et aux sites web sans avoir à mémoriser de longs mots de passe et améliore l'expérience en ligne des utilisateurs. - -### 2. Authentification KYC {#kyc-authentication} - -L'utilisation de nombreux services en ligne exige des personnes qu'elles fournissent des attestations et des justificatifs, tels qu'un permis de conduire ou un passeport national. Mais cette approche est problématique, car les informations privées des utilisateurs peuvent être compromises et les fournisseurs de services ne peuvent pas vérifier l'authenticité de l'attestation. - -L'identité décentralisée permet aux entreprises de se passer des processus classiques de [connaissance du client (Know-Your-Customer KYC)](https://en.wikipedia.org/wiki/Know_your_customer) et d'authentifier l'identité des utilisateurs au moyen d'identifiants vérifiables. Cela réduit le coût de la gestion de l'identité et empêche l'utilisation de faux documents. - -### 3. Votes et communautés en ligne {#voting-and-online-communities} - -Le vote en ligne et les médias sociaux sont deux nouvelles applications de l'identité décentralisée. Les systèmes de vote en ligne sont susceptibles d'être manipulés, notamment si des acteurs malveillants créent de fausses identités pour voter. Demander aux personnes de présenter des attestations sur la chaîne peut améliorer l'intégrité des processus de vote en ligne. - -L'identité décentralisée peut contribuer à créer des communautés en ligne exemptes de faux comptes. Par exemple, chaque utilisateur pourrait devoir authentifier son identité à l'aide d'un système d'identité sur la chaîne, comme le service de nom Ethereum, ce qui réduirait les possibilités de bots. - -### 4. Protection anti-sybil {#sybil-protection} - -Les attaques de type Sybil consistent à faire croire à un système que l'on est plusieurs personnes afin d'augmenter son influence. [Les applications d'octroi de subventions](https://gitcoin.co/grants/) qui utilisent [le vote quadratique](https://www.radicalxchange.org/concepts/plural-voting/) sont vulnérables à ces attaques de type « Sybil », car la valeur d'une subvention augmente lorsque davantage de personnes votent pour elle, ce qui incite les utilisateurs à répartir leurs contributions entre plusieurs identités. Les identités décentralisées permettent d'éviter cela en faisant peser sur chaque participant la charge de prouver qu'il est réellement humain, mais souvent sans avoir à révéler des informations privées spécifiques. - -## Utiliser une identité décentralisée {#use-decentralized-identity} - -Il existe de nombreux projets ambitieux utilisant Ethereum comme base pour des solutions d'identité décentralisée : - -- **[Ethereum Name Service (ENS)](https://ens.domains/)** - _Un système de nommage décentralisé pour les identifiants sur la chaîne, lisibles par machine, tels que les adresses de portefeuilles Ethereum, les hachages de contenu et les métadonnées._ -- **[SprunceID](https://www.spruceid.com/)** - _Un projet d'identité décentralisé qui permet aux utilisateurs de contrôler leur identité numérique avec des comptes Ethereum et des profils ENS au lieu de s'appuyer sur des services tiers._ -- **[Ethereum Attestation Service (EAS)](https://attest.sh/)** - _Un registre/protocole décentralisé pour faire des attestations en chaîne ou hors chaîne sur quoi que ce soit._ -- **[Preuve d'humanité](https://www.proofofhumanity.id)** - _Preuve d'humanité (ou PoH) est un système de vérification d'identité sociale construit sur Ethereum._ -- **[BrightID](https://www.brightid.org/)** - _Un réseau d'identité sociale décentralisé et open-source qui cherche à réformer la vérification d'identité par la création et l'analyse d'un graphe social._ -- **[Passeport de preuve d'identité ](https://proofofpersonhood.com/)** - _Un agrégateur d'identité numérique décentralisé._ - -## Complément d'information {#further-reading} - -### Articles {#articles} - -- [Cas d'utilisation de la Blockchain : Blockchain en identité numérique](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsensusSys_ -- [Qu'est-ce qu'Ethereum ERC725 ? Gestion des identités autonomes sur la Blockchain](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Sam Town_ -- [Comment la Blockchain pourrait-elle résoudre le problème de l'identité numérique](https://time.com/6142810/proof-of-humanity/) — _Andrew R. Chow_ -- [Qu'est-ce que l'identité décentralisée et pourquoi devriez-vous vous en préocupper ?](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ -- [Introduction à l'Identité Décentralisée](https://walt.id/white-paper/digital-identity)— _Dominik Beron_ - -### Vidéos {#videos} - -- [Identité décentralisée (Bonus Session Livestream)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Une formidable vidéo explicative sur l'identité décentralisée par Andreas Antonopolous_ -- [Connexion avec Ethereum et Decentralized Identity avec Ceramic, IDX, React, et 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _tutoriel YouTube sur la création d'un système de gestion d'identité pour créer, lire et mettre à jour un profil d'utilisateur en utilisant son portefeuille Ethereum par Nader Dabit_ -- [BrightID - Identité décentralisée sur Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _Épisode de podcast non bancaire parlant de BrightID, une solution d'identité décentralisée pour Ethereum_ -- [The Off Chain Internet : Identités décentralisées & Références vérifiables](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — Présentation EthDenver 2022 par Evin McMullen -- [Explication des Justificatifs Vérifiables](https://www.youtube.com/watch?v=ce1IdSr-Kig) - Vidéo explicative sur YouTube avec démonstration par Tamino Baumann - -### Communautés {#communities} - -- [ERC-725 Alliance sur GitHub](https://github.com/erc725alliance) — _Supporters de la norme ERC725 pour la gestion d'identité sur la blockchain Ethereum_ -- [Serveur Discord SpruceID](https://discord.com/invite/Sf9tSFzrnt) — _Communauté pour les adeptes et les développeurs travaillant sur la connexion avec Ethereum_ -- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Une communauté de développeurs contribuant à la construction d'un framework de données vérifiables pour les applications_ -- [walt.id](https://discord.com/invite/AW8AgqJthZ) — _Une communauté de développeurs et constructeurs travaillant sur des cas d'utilisation d'identité décentralisée dans diverses industries._ diff --git a/src/content/translations/fr/defi/index.md b/src/content/translations/fr/defi/index.md deleted file mode 100644 index 6183aa6d7cd..00000000000 --- a/src/content/translations/fr/defi/index.md +++ /dev/null @@ -1,352 +0,0 @@ ---- -title: Finance Décentralisée (DeFi) -description: Un aperçu de la DeFi sur Ethereum -lang: fr -template: use-cases -emoji: ":money_with_wings:" -image: ../../../../assets/use-cases/defi.png -alt: Un logo Eth fait en briques lego. -sidebarDepth: 2 -summaryPoint1: Une alternative mondiale ouverte au système financier actuel. -summaryPoint2: Des produits qui vous permettent d'emprunter, d'épargner, d'investir, d'échanger et plus encore. -summaryPoint3: Basé sur une technologie open-source avec laquelle n'importe qui peut programmer. ---- - -La DeFi est un système financier ouvert et mondial conçu pour l'ère de l'internet - une alternative à un système opaque, contrôlé rigoureusement et maintenu par des infrastructures et des processus vieux de plusieurs décennies. Il vous donne le contrôle et la visibilité de votre argent. Il vous offre une exposition aux marchés mondiaux et des alternatives à vos options bancaires ou monétaires locales. Les produits DeFi ouvrent des services financiers à toute personne disposant d'une connexion Internet et ils sont en grande partie la propriété de leurs utilisateurs. Jusqu'à présent, des dizaines de milliards de dollars de cryptomonnaies ont coulé à travers des applications DeFi et ils se développent chaque jour. - -## Qu'est-ce que la DeFi ? {#what-is-defi} - -DeFi est un terme collectif pour les produits et services financiers qui sont accessibles à toute personne qui peut utiliser Ethereum – toute personne disposant d'une connexion Internet. Avec la DeFi, les marchés sont toujours ouverts et il n'y a aucune autorités centralisée qui peut bloquer les paiements ou vous refuser l'accès à quoi que ce soit. Les services qui étaient auparavant lents et à risque d'erreurs humaines sont automatiques et plus sûrs maintenant qu'ils sont gérés par code que n'importe qui peut inspecter et contrôler. - -Il y a une économie de cryptomonnaies en plein essor où vous pouvez prêter, emprunter, long/court, gagner des intérêts, et plus. Les Argentins possédant des crypto-monnaies ont utilisé la DeFi pour échapper à l'inflation de leur pays. Les entreprises ont commencé à verser les salaires de leurs employés en temps réel. Certaines personnes ont même souscrit et remboursé des prêts d'une valeur de millions de dollars sans qu'il soit nécessaire de les identifier. - - - -## DeFi vs finance traditionnelle {#defi-vs-tradfi} - -L'une des meilleures façons de voir le potentiel de la DeFi est de comprendre les problèmes qui existent aujourd'hui. - -- Certaines personnes ne sont pas autorisées à créer un compte bancaire ou à utiliser des services financiers. -- Un manque d'accès aux services financiers peut empêcher les gens d'être employables. -- Les services financiers peuvent vous empêcher d'être payé. -- Des frais cachés de services financiers sont vos données personnelles. -- Les gouvernements et les institutions centralisées peuvent fermer les marchés à volonté. -- Les heures de trading sont souvent limitées aux heures de bureau sur un fuseau horaire spécifique. -- Les transferts d'argent peuvent prendre des jours en raison de processus humains internes. -- Il y a une prime pour les services financiers parce que les institutions intermédiaires ont besoin de leur part. - -### Une comparaison {#defi-comparison} - -| DeFi | La finance traditionnelle | -| -------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Vous détenez votre argent. | Votre argent est détenu par des entreprises. | -| Vous contrôlez où va votre argent et comment il est dépensé. | Vous devez faire confiance à des entreprises pour ne pas mal gérer votre argent, comme prêter à des emprunteurs risqués. | -| Les transferts de fonds se font en quelques minutes. | Les paiements peuvent prendre des jours en raison de processus manuels. | -| L'activité de la transaction est anonyme | L'activité financière est étroitement associée à votre identité. | -| La DeFi est ouverte à tout le monde. | Vous devez faire une demande pour utiliser les services financiers. | -| Les marchés sont toujours ouverts. | Les marchés ferment parce que les employés ont besoin de pauses. | -| Il est construit sur la transparence – tout le monde peut regarder les données d'un produit et inspecter le fonctionnement du système. | Les institutions financières sont des livres fermés : vous ne pouvez pas demander à voir leurs antécédents de prêts, un dossier de leurs actifs gérés, etc. | - - - Explorer la DeFi - - -## Et si on commençait avec Bitcoin... {#bitcoin} - -Bitcoin à bien des égards a été la première application de la DeFi. Bitcoin vous permet de posséder et de contrôler la valeur et de l'envoyer partout dans le monde. Il le fait en fournissant un moyen à un grand nombre de personnes, qui ne se font pas confiance les unes aux autres, de se mettre d'accord sur un grand livre de comptes sans avoir besoin d'un intermédiaire de confiance. Le Bitcoin est ouvert à tout le monde et personne n'a l'autorité nécessaire pour modifier ses règles. Les règles du Bitcoin, comme sa rareté et son ouverture, sont inscrites dans la technologie. Ce n'est pas comme la finance traditionnelle où les gouvernements peuvent imprimer de l'argent qui déprécie vos épargnes et où les entreprises peuvent fermer les marchés. - -L'Ethereum s'appuie sur cela. Comme le Bitcoin, les règles ne peuvent pas changer et tout le monde y a accès. Mais cela rend aussi cet argent numérique programmable, en utilisant [contrats intelligents](/glossary#smart-contract), vous pouvez donc aller au-delà du stockage et de la valeur d'envoi. - - - -## Monnaie programmable {#programmable-money} - -Cela semble étrange... « pourquoi je voudrais programmer mon argent » ? Cependant, il s'agit plutôt d'une fonctionnalité par défaut des jetons sur Ethereum. N'importe qui peut programmer une logique de paiement. Ainsi, vous pouvez obtenir le contrôle et la sécurité de Bitcoin mélangés avec les services fournis par les institutions financières. Cela vous permet de faire des choses avec des cryptomonnaies que vous ne pouvez pas faire avec des Bitcoins comme des prêts et des emprunts, des paiements, des investissements dans des fonds d'indice et plus encore. - - -
Explorez nos suggestions pour les applications de la DeFi pour essayer si vous êtes nouveau sur Ethereum.
- - Explorer la DeFi - -
- -## Que pouvez-vous faire avec la DeFi ? {#defi-use-cases} - -Il existe une alternative décentralisée à la plupart des services financiers. Mais Ethereum crée également des opportunités de création de produits financiers totalement nouveaux. Cette liste ne cesse de croître. - -- [Envoyer de l'argent partout dans le monde](#send-money) -- [Diffuser de l'argent dans le monde entier](#stream-money) -- [Accéder aux devises stables](#stablecoins) -- [Emprunter des fonds avec garantie](#lending) -- [Emprunter sans garantie](#flash-loans) -- [Démarrer des économies de cryptomonnaies](#saving) -- [Échanger des jetons](#swaps) -- [Développer votre portefeuille](#investing) -- [Financer vos idées](#crowdfunding) -- [Acheter une assurance](#insurance) -- [Gérer votre portefeuille](#aggregators) - - - -### Envoyer de l'argent partout dans le monde rapidement {#send-money} - -En tant que blockchain, Ethereum est conçu pour envoyer des transactions de manière sécurisée et globale. Tout comme Bitcoin, Ethereum vous permet d'envoyer de l'argent dans le monde entier aussi facilement qu'un un email. Entrez simplement le nom [ENS de votre destinataire](/nft/#nft-domains) (comme bob. th) ou l'adresse de leur compte à partir de votre portefeuille et votre paiement leur ira directement, en quelques minutes (habituellement). Pour envoyer ou recevoir des paiements, vous aurez besoin d'un [portefeuille](/wallets/). - - - Voir les applications de paiement - - -#### Diffuser de l'argent partout dans le monde... {#stream-money} - -Vous pouvez également diffuser de l'argent sur Ethereum. Cela vous permet de payer à quelqu'un son salaire en une seconde, lui donnant accès, ainsi, à son argent chaque fois qu'il en a besoin. Ou louer quelque chose presque instantanément comme un casier de stockage ou scooter électrique par exemple. - -Et si vous ne voulez pas envoyer ou diffuser des [ETH](/eth/) en raison de sa volatilité, Il existe des devises alternatives sur Ethereum: les stablecoins. - - - -### Accéder aux monnaies stables {#stablecoins} - -La volatilité des cryptomonnaies est un problème pour de nombreux produits financiers et les dépenses en générales. La communauté de la DeFi a résolu cela avec des stablecoins. Leur valeur reste indexée sur un autre actif, généralement une devise populaire comme le dollar par exemple. - -Les pièces comme Dai ou USDC ont une valeur qui reste stable à quelques centimes de dollars près. Cela les rend parfaits pour gagner ou revendre vos jetons. De nombreuses personnes en Amérique latine ont utilisés des pièces stables comme moyen de protéger leurs économies en cette période de grande incertitude avec leurs monnaies émises par le gouvernement. - - - En savoir plus sur les stablecoins - - - - -### Emprunter {#lending} - -L'emprunt de l'argent auprès de prestataires décentralisés se compose de deux variétés principales. - -- Pair-à-pair, ce qui signifie qu'un emprunteur empruntera directement auprès d'un prêteur spécifique. -- Basé sur une pool où les prêteurs fournissent des fonds (liquidités) à une réserve dans laquelle les emprunteurs peuvent emprunter. - - - Voir les dapp d'emprunt - - -Il y a de nombreux avantages à utiliser un prêteur décentralisé... - -#### Emprunter avec confidentialité {#borrowing-privacy} - -Aujourd'hui, le prêt et l'emprunt d'argent tournent autour des personnes impliquées. Les banques doivent savoir si vous êtes susceptible de rembourser un prêt avant de le prêter. - -Les prêts décentralisés fonctionnent sans que l’une ou l’autre des parties n’ait à s’identifier. Au lieu de cela, l'emprunteur doit placer une garantie que le prêteur recevra automatiquement si leur prêt n'est pas remboursé. Certains prêteurs acceptent même les NFT comme garanties. Les NFT sont un acte de propriété unique, comme une peinture par exemple. [Plus de détails sur les NFT](/nft/) - -Cela vous permet d'emprunter de l'argent sans chèques d'acompte et sans remise d'informations privées. - -#### Accès aux fonds mondiaux {#access-global-funds} - -Lorsque vous utilisez un prêteur décentralisé, vous avez accès aux fonds déposés du monde entier, pas seulement les fonds détenus par la banque ou l'institution que vous avez choisie. Cela rend les prêts plus accessibles et améliore les taux d'intérêt. - -#### Efficacité fiscale {#tax-efficiencies} - -L’emprunt peut vous donner accès aux fonds dont vous avez besoin sans devoir vendre votre ETH (un événement imposable). Au lieu de cela, vous pouvez utiliser ETH comme garantie pour un prêt stablecoin. Cela vous donne le flux de trésorerie dont vous avez besoin et vous permet de garder votre ETH. Les Stablecoins sont des jetons qui sont beaucoup plus intéressant quand vous avez besoin d'argent car ils ne fluctuent pas en valeur comme ETH. [Plus d'infos sur les stablecoins](#stablecoins) - -#### Prêts Flash {#flash-loans} - -Les prêts Flash sont une forme plus expérimentale de prêt décentralisé qui vous permet d'emprunter sans garantie ou sans fournir de renseignements personnels. - -Ils ne sont pas largement accessibles à tout le monde pour le moment, mais ils pourraient être un exemple de ce qui pourrait être possible pour tout le monde à l'avenir. - -Ils fonctionnent sur le fait que le prêt est contracté et remboursé dans le cadre de la même transaction. Si elle ne peut pas être remboursée, la transaction redevient nulle. C'est comme si elle n'avait jamais existé. - -Les fonds qui sont souvent utilisés sont détenus dans des pools de liquidités (gros réservoirs de fonds utilisés pour emprunter). S'ils ne sont pas utilisés à un moment donné, cela donne l'occasion à quelqu'un d'emprunter ces fonds, faire affaires avec eux, et les rembourser dans leur intégralité littéralement en même temps qu'ils sont empruntés. - -Cela signifie que beaucoup de logique doit être inclus dans une transaction sur mesure. Un exemple simple pourrait être une personne utilisant un prêt flash pour emprunter un actif à un prix unique afin de le vendre à un autre endroit où le prix est plus élevé. - -Donc, voici le déroulement d'une seule transaction : - -- Vous empruntez un montant de $assets à 1,00 $ par l'échange A -- Vous vendez X $asset sur l'échange B pour 1,10 $ -- Vous remboursez le prêt à l'échange A -- Vous conservez le profit moins les frais de transaction - -Si l'échange B chutait soudainement et que l'utilisateur n'était pas en mesure d'acheter suffisamment pour couvrir le prêt initial, la transaction échouerait tout simplement. - -Pour pouvoir faire ce qui précède dans le monde de la finance traditionnelle, vous auriez besoin d'une somme d'argent énorme. Ces stratégies pour gagner de l'argent ne sont accessibles qu'à ceux qui possèdent déjà une certaine richesse. Les prêts Flash sont un exemple d'avenir où avoir de l'argent n'est pas nécessairement une condition préalable pour gagner de l'argent. - -[Plus d'infos sur les prêts Flash](https://aave.com/flash-loans/) - - - -### Commencez à épargner avec des cryptomonnaies {#saving} - -#### Prêt {#lending} - -Vous pouvez gagner de l'intérêt sur votre cryptomonnaie en le prêtant et en voyant vos fonds croître en temps réel. En ce moment, les taux d'intérêt sont beaucoup plus élevés que ce que vous pourriez obtenir à votre banque locale (si vous avez la chance d'en avoir une). Voici un exemple : - -- Vous prêtez vos 100 Dai, un [stablecoin](/stablecoins/), à un produit comme Aave. -- Vous recevez 100 Aave Dai (aDai), ce qui représente votre Dai prêté. -- Votre aDai augmentera en fonction des taux d'intérêt et vous pourrez ainsi voir votre solde croître dans votre portefeuille. Dépendant de l'APR, le solde de votre portefeuille va lire quelque chose comme 100.1234 après quelques jours ou même quelques heures ! -- Vous pouvez retirer un montant de Dai égal à votre solde aDai à tout moment. - - - Voir les dApps de prêt - - -#### Loteries sans risque {#no-loss-lotteries} - -Les Loteries sans risque comme PoolTogether sont un moyen amusant et innovant d'épargner de l'argent. - -- Vous achetez 100 tiquets en utilisant 100 jetons Dai. -- Vous recevez 100 plDai représentant vos 100 billets. -- Si l'un de vos billets est tiré au sort, votre compte plDai augmentera du montant de la cagnotte. -- Si vous ne gagnez pas, vos 100 plDai sont remis en jeu pour le tirage au sort de la semaine suivante. -- Vous pouvez retirer un montant de Dai équivalent à votre compte plDai à n'importe quel moment. - -La cagnotte équivaut aux intérêts générés par les prêts effectués grâce aux achats de tiquets comme dans l'exemple au dessus. - - - Essayer PoolTogether - - - - -### Échanger des jetons {#swaps} - -Il existe des milliers de jetons sur Ethereum. Les échanges décentralisés (DEXs) vous permettent d'échanger des jetons quand vous le souhaitez. Vous gardez toujours le contrôle de vos actifs. C'est comme échanger des devises lorsque vous visitez un autre pays. Mais la version de la DeFi ne ferme jamais. Les marchés sont ouverts 24 heures sur 24, 365 jours par an, la technologie garantie qu'il y aura toujours quelqu'un pour accepter un échange. - -Par exemple, si vous voulez vous lancer dans une loterie sans risque (décrite au dessus), vous aurez besoin de jeton comme les Dai ou USDC. Les DEXs vous permettent d'échanger vos ETH avec des tokens, et de les reconvertir en ETH lorsque vous avez terminé. - - - Voir échanger des jetons - - - - -### Échanges avancés {#trading} - -Pour les traders qui aiment le contrôle, il existe des options avancées. Les ordres à cours limités, échanges perpétuels, le trading sur marge sont tous possibles. Avec le trading décentralisé, vous avez accès à des liquidités dans le monde entier, le marché est toujours ouvert et vous gardez à tout moment le contrôle sur vos actifs. - -Avec le trading centralisé, vous devez déposer vos actifs avant les échanges et faire confiance à un tier pour en prendre soin. Lorsqu'ils sont déposés, vos actifs courent un risque par ce que les centres d'échange sont des cibles très attractives pour les hackers. - - - Voir Applications décentralisées (dapps) - - - - -### Développer votre Portefeuille {#investing} - -Il existe des outils de gestion de fonds sur Ethereum qui vous permettront de développer votre portefeuille en vous appuyant sur la stratégie de votre choix. C'est automatique, ouvert à tous, et personne ne pourra vous demander de commission. - -Voilà un bon exemple [DeFi Pulse Index fund (DPI)](https://defipulse.com/blog/defi-pulse-index/). C'est un fond qui se rééquilibre automatiquement pour garantir qu'il inclue toujours [les jetons DeFi ayant la meilleure capitalisation boursière](https://www.coingecko.com/en/defi). Pas besoin de gérer les détails et vous pouvez retirer les fonds quand bon vous semble. - - - Voir les applications d'investissement dapps - - - - -### Financer vos projets {#crowdfunding} - -Ethereum est une plateforme idéale pour le crowdfunding: - -- Des investisseurs potentiels du monde entier - Ethereum et ses jetons sont ouverts à tous et partout. -- La transparence permet à tous les collecteurs de fonds de prouver combien ils ont levé. Vous pouvez aussi tracer l'utilisation des fonds levés. -- Les collecteurs de fonds peuvent mettre en place des remboursements automatiques. Par exemple si un montant minimum n'est pas atteint à la deadline du projet. - - - Voir les dapps de crowdfunding - - -#### Financements quadratiques {#quadratic-funding} - -Ethereum est un logiciel open source, une grand partie du travail à été financée par la communauté. Cela a conduit à la croissance d'un nouveau modèle de collecte de fond : le financement quadratique. Ce modèle a le potentiel d'améliorer la façon dont nous finançons tous les types de biens publics à l'avenir. - -Le financement quadratique veille à ce que les projets qui reçoivent le plus de financement soient ceux dont la demande est la plus unique. En d'autres termes, des projets qui visent à améliorer la vie du plus grand nombre de personnes. Voici comment ça marche : - -1. Il y a une cagnotte commune pour les fonds donnés. -2. Une série de financement public commence. -3. Les gens peuvent manifester leur demande pour un projet en donnant un peu d'argent. -4. Une fois que la série est terminée, la cagnotte commune est distribuée aux projets. Ceux avec la demande la plus unique obtiennent le plus gros montant de la cagnotte commune. - -Cela veut dire qu'un projet A avec ses 100 donneurs de 1 dollar pourrait finir avec plus de financement qu'un projet B avec un seul donneur de 10 000 dollars (selon la taille de la cagnotte correspondante). - -[En savoir plus sur le financement quadratique](https://wtfisqf.com) - - - -### Assurance {#insurance} - -L'assurance décentralisée vise à rendre l'assurance moins chère, plus rapide à rembourser et plus transparente. Avec davantage d'automatisation, la protection est plus abordable et les paiements sont beaucoup plus rapides. Les données utilisées pour décider de votre réclamation sont complètement transparentes. - -Les produits Ethereum, comme n'importe quel logiciel, peuvent souffrir de bugs et d'exploits. Actuellement, de nombreux produits d'assurance dans l'espace sont axés sur la protection de leurs utilisateurs contre la perte de fonds. Cependant, il y a des projets qui commencent à construire une couverture pour tous les événements de la vie. Un bon exemple de ceci est la couverture Etherisc's Crop qui vise à [protéger les petits agriculteurs kényans contre les sécheresses et les inondations](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Les assurances décentralisées peuvent offrir une couverture moins chère aux agriculteurs qui n'ont souvent pas les moyens d'accéder aux assurances traditionnelles. - - - Voir les assurances Dapps - - - - -### Agrégateurs et gestionnaires de portefeuille {#aggregators} - -Avec tant de choses en cours, vous aurez besoin d'un moyen de suivre tous vos investissements, vos prêts et vos transactions. Il y a une foule de produits qui vous permettent de coordonner toutes vos activités de DeFi à partir d'un seul endroit. C'est la beauté de l'architecture ouverte de DeFi. Les équipes peuvent construire des interfaces où vous ne pouvez pas simplement voir vos balances entre produits mais également utiliser leurs fonctionnalités. Vous pourriez trouver cela utile en explorant plus à propos de la DeFi. - - - Voir les dApps de portefeuille - - - - -## Comment est-ce que la DeFi marche ? {#how-defi-works} - -DeFi utilise des cryptomonnaies et des contrats intelligents pour fournir des services qui n'ont pas besoin d'intermédiaires. Dans le monde financier actuel, les institutions financières agissent en tant que garantes des transactions. Cela donne à ces institutions un immense pouvoir parce que votre argent circule à travers elles. De plus, des milliards de personnes dans le monde ne peuvent même pas accéder à un compte bancaire. - -Avec la DeFi, un contrat intelligent remplace l'institution financière dans la transaction. Un contrat intelligent est un type de compte Ethereum qui peut détenir des fonds et les envoyer/rembourser selon certaines conditions. Personne ne peut modifier ce contrat intelligent quand il est en ligne – il sera toujours exécuté comme programmé. - -Un contrat conçu pour distribuer une allocation ou de l'argent de poche pourrait être programmé pour envoyer de l'argent du compte A au compte B chaque vendredi. Et il le fera aussi longtemps et uniquement lorsque le compte A aura les fonds nécessaires. Personne ne peut modifier le contrat et ajouter le compte C comme bénéficiaire pour voler des fonds. - -Les contrats sont également publics pour toute personne voulant l'inspecter et le vérifier. Cela signifie que les mauvais contrats seront souvent et rapidement examinés par la communauté. - -Cela signifie qu'il est actuellement nécessaire de faire confiance aux membres les plus avancés de la communauté Ethereum qui peuvent lire du code. La communauté open-source aide à contrôler les développeurs, mais ce besoin diminuera avec le temps à mesure que les contrats intelligents deviennent plus faciles à lire et que d'autres moyens de prouver la fiabilité du code sont développés. - -## Ethereum et DeFi {#ethereum-and-defi} - -Ethereum est la fondation parfaite pour la DeFi pour plusieurs raisons: - -- Personne ne possède Ethereum ou les contrats intelligents qui s'y développent - c'est ce qui donne l'opportunité à n'importe qui d'utiliser la DeFi. Cela signifie que personne ne peut modifier les règles vous concernant. -- Au fond, tous les produits DeFi parlent le même langage : Ethereum. Tous les produits travaillent ensemble et de manière transparente. Vous pouvez prêter des tokens sur une plateforme et échanger les intérêts sur un autre marché ou sur une application complètement différente. C'est comme engranger des points de fidélité avec une banque. -- Les cryptomonnaies et les jetons sont incorporés à Ethereum, un registre partagé qui garde trace de toutes les transactions et les propriétés. -- Ethereum permet une totale liberté financière. La plupart des produits ne prendront jamais vos fonds en charge, ce qui vous laisse un contrôle total. - -Vous pouvez voir la DeFi comme des couches : - -1. La Blockchain, Ethereum qui trace l'historique des transactions et les états de comptes. -2. Les actifs [ETH](/eth/) et autres jetons (devises). -3. Les protocoles, [contrats intelligents](/glossary/#smart-contract) qui offrent des fonctionnalités comme les prêts d'actifs décentralisés. -4. [Les applications](/dapps/) les produits que vous utilisez pour accéder et gérer les protocoles. - -## Fabriquer une DeFi {#build-defi} - -DeFi est un mouvement open source. Les protocoles et applications DeFi sont ouverts et libres pour que vous puissiez les inspecter, fouiller et innover dessus. Grâce à cette superposition (ils partagent tous la même Blockchain et les mêmes ressources de base), les protocoles peuvent être mélangés et assemblés pour créer des combos d'opportunités uniques. - - - En savoir plus sur la fabrication de dapps - - -## Complément d'information {#futher-reading} - -### Données DeFi {#defi-data} - -- [DeFi Prime](https://defiprime.com/) -- [DeFi Llama](https://defillama.com/) -- [DeFi Rate](https://defirate.com/) - -### Articles DeFi {#defi-articles} - -- [Un guide de la DeFi pour débutants](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) - _Sid Coelho-Prabhu, 6 janvier 2020_ - -### Vidéos {#videos} - -- [Finematics - decentralized finance education](https://finematics.com/) _vidéos de DeFi_ -- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _Les bases de la DeFi : Tout ce que vous avez besoin de savoir pour commencer dans cet espace parfois déroutant_ -- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _Qu'est-ce que DeFi?_ - -### Communautés {#communities} - -- [Serveur Discord DeFi Llama](https://discord.gg/buPFYXzDDd) -- [Serveur Discord DeFi Pulse](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/fr/desci/index.md b/src/content/translations/fr/desci/index.md deleted file mode 100644 index 8414305d690..00000000000 --- a/src/content/translations/fr/desci/index.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: La science décentralisée (DeSci) -description: Présentation de la science décentralisée sur Ethereum -lang: fr -template: use-cases -emoji: ":microscope:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Une alternative globale et ouverte au système scientifique actuel. -summaryPoint2: Technologie qui permet aux scientifiques de recueillir des fonds, de mener des expériences, de partager des données, de diffuser des idées et plus encore. -summaryPoint3: S'appuie sur le mouvement science en libre accès. ---- - -## Qu'est-ce que la science décentralisée (DeSci) ? {#what-is-desci} - -La science décentralisée (DeSci) est un mouvement qui vise à construire une infrastructure publique en vue du financement, de la création, de l'examen, de l'attribution de crédits, du stockage et de la diffusion des connaissances scientifiques de manière juste et équitable en utilisant la pile Web3. - -La DeSci vise à créer un écosystème dans lequel les scientifiques sont incités à partager ouvertement leurs recherches et à être salués pour leurs travaux, tout en permettant à quiconque d'accéder et de contribuer facilement aux recherches. La DeSci part du principe que les connaissances scientifiques doivent être accessibles à tous et que le processus de recherche scientifique doit être transparent. La DeSci crée un modèle de recherche scientifique plus décentralisé et distribué, qui la rend plus résistante à la censure et au contrôle par les autorités centrales. La DeSci vise à créer un environnement où les idées nouvelles et non conventionnelles peuvent prospérer en décentralisant l’accès au financement, aux outils scientifiques et aux canaux de communication. - -La science décentralisée permet d'accéder à des sources de financement plus variées (des [DAO](/dao/), [dons quadratiques](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) aux financements participatifs et plus encore), des données et méthodes d'accès plus accessibles, et incite à la reproductibilité. - -### Juan Benet - Le Mouvement DeSci - - - -## En quoi la DeSci fait avancer la science {#desci-improves-science} - -Liste non exhaustive des principaux problèmes rencontrés par la science et comment la science décentralisée peut aider à les résoudre - -| **La science décentralisée** | **La science traditionnelle** | -| --------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | -| La répartition des fonds est déterminée par le public à l’aide de mécanismes tels que les dons quadratiques ou les DAO. | De petits groupes fermés et centralisés contrôlent la répartition des fonds. | -| Vous collaborez avec des pairs du monde entier dans des équipes dynamiques. | Les organismes de financement et les établissements d’origine limitent vos collaborations. | -| Les décisions de financement sont prises en ligne et en toute transparence. De nouveaux mécanismes de financement sont explorés. | Les décisions de financement sont longues à prendre et la transparence en la matière limitée. Il existe peu de mécanismes de financement. | -| Le recours aux primitives Web3 facilite le partage des services de laboratoire et les rend plus transparents. | Le partage des ressources des laboratoires est souvent lent et opaque. | -| Il est possible d'élaborer de nouveaux modèles de publication qui utilisent les primitives Web3 pour garantir confiance, transparence et accès universel. | Vous publiez par le biais de voies établies souvent considérées comme inefficaces, partiales et basées sur l'exploitation. | -| Vous pouvez gagner des jetons et consolider votre réputation en faisant un travail d'évaluation par les pairs. | Votre travail d'évaluation par les pairs n'est pas rémunéré, ce qui profite aux éditeurs à but lucratif. | -| Vous êtes détenteur de la propriété intellectuelle (PI) que vous créez et diffusez ces créations dans le respect de conditions transparentes. | Votre institution d'origine est propriétaire de la PI que vous générez. L'accès à la PI n'est pas transparent. | -| Partagez toutes les recherches, y compris les données issues de recherches infructueuses, en basculant toutes les étapes sur la chaîne. | Le biais de publication veut que les chercheurs soient plus susceptibles de partager des expériences qui ont donné des résultats positifs. | - -## Ethereum et la DeSci {#ethereum-and-desci} - -Pour développer des applications, un système scientifique décentralisé exigera une sécurité renforcée, des coûts monétaires et de transaction minimaux et un écosystème riche. Ethereum fournit tout ce qui est nécessaire pour construire une pile scientifique décentralisée. - -## Exemples d'utilisation de la DeSci {#use-cases} - -La DeSci met en place les outils scientifiques nécessaires pour faire basculer le milieu universitaire du Web2 vers le digital. Vous trouverez ci-dessous un échantillon d'exemples d'utilisation que le Web3 peut offrir à la communauté scientifique. - -### Publications {#publishing} - -Comme chacun le sait, les publications scientifiques posent problème car elles sont gérées par des maisons d'édition qui s'appuient sur le travail gratuit de scientifiques, de réviseurs et d'éditeurs pour produire des articles, mais qui facturent ensuite des frais d'édition exorbitants. Le public, qui a généralement financé indirectement le travail et les coûts de publication à travers les taxes et les impôts qu'il paie, ne peut souvent pas accéder à ce même travail sans payer l'éditeur à nouveau. Le montant total des frais de publication d'articles scientifiques individuels est souvent à cinq chiffres ($USD), ce qui sape le concept même de connaissance scientifique en tant que [bien public](https://www.econlib.org/library/Enc/PublicGoods.html) tout en permettant à un petit groupe d'éditeurs d'engranger d'énormes profits. - -Il existe des plateformes d'acès libre et gratuit sous forme de serveurs de pré-impression [comme ArXiv](https://arxiv.org/). Le contrôle qualité , de même que les [mécanismes anti-sybil](https://csrc.nist.gov/glossary/term/sybil_attack), font défaut sur ces plateformes, qui ne suivent généralement pas les paramètres de niveau article, ce qui signifie qu'ils ne sont généralement utilisés que pour faire connaître un travail avant de le soumettre à un éditeur classique. SciHub permet également d'accéder gratuitement aux articles publiés, mais pas légalement, et seulement après que les éditeurs ont été réglés et ont lié l'œuvre à une législation stricte sur le droit d'auteur. Les données et articles scientifiques accessibles associés à un mécanisme de légitimité et à un modèle incitatif intégrés manquent donc cruellement. Le Web3 offre les outils nécessaire pour construire un tel système. - -### Reproductibilité et réplicabilité {#reproducibility-and-replicability} - -La reproductibilité et la réplicabilité sont les fondements des découvertes scientifiques de qualité. - -- Des résultats reproductibles peuvent être obtenus plusieurs fois de suite par la même équipe en utilisant la même méthodologie. -- Des résultats reproductibles peuvent être obtenus par un autre groupe utilisant le même dispositif expérimental. - -Avec les nouveaux outils Web3 natifs, reproductibilité et réplicabilité sont à la base des découvertes. Le tissu technologique universitaire peut s'imprégner d'une science de qualité. Le Web3 offre la possibilité de créer des attestations pour chaque composant d'analyse : les données brutes, le moteur de calcul et le résultat de l'application. Les systèmes fonctionnant sur le mode du consensus ont ceci de fabuleux que lorsqu'un réseau de confiance est créé pour préserver ces composants, chaque participant au réseau peut être chargé de la reproduction du calcul et de la validation de chaque résultat. - -### Financement {#funding} - -Dans le cadre du modèle de financement actuel de la science, des personnes ou des groupes de scientifiques présentent des demandes de financement écrites à des organismes de financement. Un petit groupe de personnes de confiance notent les candidats, puis les interrogent avant d'attribuer des fonds à une fraction d'entre eux. Ce modèle, qui crée des goulets d'étranglement susceptibles de retarder de plusieurs années le traitement des demandes de subvention, est réputé être très vulnérable à l'orientation, aux intérêts personnels et à la politique du comité d’étude. - -Des études ont montré que les comités d'étude des demandes de subventions ont du mal à sélectionner les propositions de qualité. En effet, les mêmes propositions soumises à des comités différents donnent des résultats très différents. Le financement étant de plus en plus limité, il s’est concentré sur un groupe plus restreint de chercheurs plus âgés, porteurs de projets plus classiques sur le plan intellectuel. Cela a eu pour effet de créer un paysage de financement hyperconcurrentiel, d'ancrer des incitations perverses et d'étouffer l'innovation. - -Le Web3 a le potentiel d'ébranler ce modèle de financement dépassé en expérimentant différents modèles d'incitation développés par les DAO et le Web3 dans l'ensemble. [Le financement rétroactif de biens publics](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), [le financement quadratique](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), la [gouvernance de DAO](https://www.antler.co/blog/daos-and-web3-governance) et les [structures incitatives basées sur l'utilisation de jetons](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) sont quelques-uns des outils Web3 qui pourraient révolutionner le financement de la science. - -### Propriété et développement de la PI {#ip-ownership} - -La propriété intellectuelle (PI) pose problème dans la science traditionnelle : cantonnée aux universités ou inutilisée dans les entreprises de biotechnologie, elle est de surcroît et comme chacun le sait difficile à évaluer. Le Web3 est cependant particulièrement performant en matière de propriété des actifs numériques (notamment des données scientifiques ou des articles), grâce au recours aux [jetons non fongibles (NFTs)](/nft/). - -De la même manière que les NFT peuvent transmettre les recettes de futures transactions au créateur initial, vous pouvez établir des chaînes d'attribution de valeur transparentes pour récompenser les chercheurs, les organes directeurs (les DAO par exemple), ou même les personnes dont les données sont collectées. - -Les [NFT liés à la PI](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) peuvent également servir de clé d'accès à un référentiel de données décentralisé relatif aux expériences de recherche en cours, et puiser dans les NFT et le financement de la [DeFi](/defi/) (de la fractionalisation aux groupes de prêt et à l'estimation de la valeur). Ils permettent également aux entités nativement en chaîne, telles que les DAO comme [VitaDAO](https://www.vitadao.com/), de mener des recherches directement en chaîne. Les [jetons « soulbound » non transférables](https://vitalik.ca/general/2022/01/26/soulbound.html) peuvent également jouer un rôle important en matière de DeSci en permettant aux individus d'apporter la preuve de leur expérience et leurs identifiants liés à leur adresse Ethereum. - -### Stockage de données, accès et architecture {#data-storage} - -Les données scientifiques peuvent être rendues beaucoup plus accessibles en utilisant les modèles Web3, sachant que le stockage distribué permet aux recherches et études de survivre à des événements cataclysmiques. - -Le tout doit reposer sur un système accessible par toute identité décentralisée disposant d'identifiants vérifiables appropriés. Les données sensibles peuvent ainsi être répliquées en toute sécurité par des parties de confiance, ce qui permet de résister à la redondance et à la censure, de reproduire les résultats et même à plusieurs parties de collaborer et d'ajouter de nouvelles données à l'ensemble de données. Des méthodes de calcul confidentielles telles que [compute-to-data](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol) offrent des mécanismes d'accès alternatifs à la réplication des données brutes, créant des environnements de recherche fiables pour les données les plus sensibles. Les environnements de recherche fiables ont été [cités par le NHS](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) comme une solution de préservation de la confidentialité des données et de collaboration orientée vers l'avenir dans la mesure où ils créent un écosystème au sein duquel les chercheurs peuvent travailler en toute sécurité avec les données directement sur place en utilisant des environnements normalisés pour le partage de code et de pratiques. - -Les solutions Web 3 flexibles axées sur les données prennent en charge les scénarios ci-dessus et fournissent les bases d'une science réellement ouverte, où les chercheurs peuvent créer des biens publics sans autorisation d'accès ni frais. Les solutions Web3 relatives aux données publiques telles qu'IPFS, Arweave et Filecoin sont optimisées pour la décentralisation. dClimate, par exemple, fournit un accès universel aux données climatiques et météorologiques, y compris à partir de stations météo et de modèles climatiques prédictifs. - -## Participer {#get-involved} - -Explorer les projets et rejoindre la communauté DeSci. - -- [DeSci.Global : calendrier des événements et des rencontres à l'échelle mondiale](https://desci.global) -- [La blockchain au service de la science avec Telegram](https://t.me/BlockchainForScience) -- [Molecule : Financer et recevoir des fonds pour vos projets de recherche](https://discover.molecule.to/) -- [VitaDAO : recevoir des fonds par le biais d'accords de recherche sponsorisés en vue de recherches sur la longévité](https://www.vitadao.com/) -- [Research Hub : publier un résultat scientifique et participer à une conversation avec des pairs](https://www.researchhub.com/) -- [LabDAO : plier une protéine in-silico](https://alphafodl.vercel.app/) -- [dClimate API : envoyer des requêtes concernant les données climatiques recueillies par une communauté décentralisée](https://api.dclimate.net/) -- [DeSci Foundation : fabricant d'outils de publication DeSci](https://descifoundation.org/) -- [DeSci.World : guichet unique grâce auquel les utilisateurs peuvent avoir une visibilité, échanger avec la science décentralisée](https://desci.world) -- [Protocole Fleming : économie des données open-source qui alimente la recherche biomédicale collaborative](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [OceanDAO : source de financement régi par une DAO pour les études scientifiques liées aux données](https://oceanprotocol.com/dao) -- [Opscientia : flux de travaux scientifiques décentralisés ouverts](https://opsci.io/research/) -- [LabDAO : plier une protéine in-silico](https://alphafodl.vercel.app/) -- [Bio.xyz : financer votre projet DAO ou desci biotech](https://www.molecule.to/) -- [Research Hub: publier un résultat scientifique et engager une conversation avec les pairs](https://www.researchhub.com/) -- [VitaDAO : recevoir des fonds pour mener des recherches sur la longévité par le biais d'accords de recherche sponsorisés](https://www.vitadao.com/) -- [Protocole Fleming : économie de données open-source qui alimente la découverte biomédicale collaborative](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [Active Inference Lab](https://www.activeinference.org/) -- [CureDAO : plateforme de santé de précision détenue par une communauté](https://docs.curedao.org/) -- [IdeaMarkets : pour une crédibilité scientifique décentralisée renforcée](https://ideamarket.io/) -- [DeSci Labs](https://www.desci.com/) - -Nous accueillons volontiers les suggestions de nouveaux projets à répertorier - veuillez consulter notre [politique d'inscription](/contributing/adding-desci-projects/) pour commencer ! - -## En savoir plus {#further-reading} - -- [DeSci Wiki par Jocelynn Pearl et Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) -- [Un guide sur la biotech décentralisée par Jocelynn Pearl pour a16z future](https://future.a16z.com/a-guide-to-decentralized-biotech/) -- [Arguments en faveur de la DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) -- [Guide relatif à la DeSci](https://future.com/what-is-decentralized-science-aka-desci/) -- [Ressources relatives à la science décentralisée](https://www.vincentweisser.com/decentralized-science) -- [Les IP-NFT de Molecule dans le domaine biopharmaceutique - Description technique](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) -- [Construire des systèmes scientifiques sans tiers de confiance par Jon Starr](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) -- [L’émergence des DAO biotech](https://molecule.to/blog/the-emergence-of-biotech-daos) -- [Paul Kohlhaas - DeSci : L'avenir de la science décentralisée (podcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) -- [Une ontologie des Inférences actives pour une science décentralisée : de la création de sens en situation aux biens communs épistémiques](https://zenodo.org/record/6320575) -- [DeSci : l'avenir de la recherche par Samuel Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) -- [Financement de la science (Épilogue : la DeSci et les nouvelles primitives dans les cryptomonnaies) par Nadia](https://nadia.xyz/science-funding) -- [La décentralisation perturbe développement des médicaments](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) - -### Vidéos {#videos} - -- [Qu'est-ce que la science décentralisée ?](https://www.youtube.com/watch?v=-DeMklVWNdA) -- [Conversation entre Vitalik Buterin et le scientifique Aubrey de Grey sur le croisement entre recherche sur la longévité et cryptomonnaie](https://www.youtube.com/watch?v=x9TSJK1widA) -- [La publication scientifique est en panne. Est-ce que le Web3 peut améliorer ?](https://www.youtube.com/watch?v=WkvzYgCvWj8) -- [Juan Benet - DeSci, laboratoires indépendants, & dcience des données à grande échelle](https://www.youtube.com/watch?v=zkXM9H90g_E) -- [Sebastian Brunemeier - Comment la DeSci peut transformer la recherche biomédicale & le capital risque](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/fr/developers/docs/mev/index.md b/src/content/translations/fr/developers/docs/mev/index.md deleted file mode 100644 index a7fec60bba6..00000000000 --- a/src/content/translations/fr/developers/docs/mev/index.md +++ /dev/null @@ -1,221 +0,0 @@ ---- -title: Valeur Extractible Maximale (Maximal extractable value - MEV) -description: Une introduction à la Valeur Extractible Maximale (Maximal extractable value - MEV) -lang: fr ---- - -La Valeur Extractible Maximale (MEV) représente la valeur maximale qui peut être extraite de la production d'un bloc au-delà de la récompense standard du bloc et des frais de gaz, en incluant, en excluant ou en modifiant l'ordre des transactions au sein d'un bloc. - -### Valeur extractible par minage {#miner-extractable-value} - -La valeur extractible maximale a été appliquée pour la première fois dans le contexte de [preuve de travail](/developers/docs/consensus-mechanisms/pow/), et initialement appelée « valeur extractible par les mineurs ». Ceci est dû au fait que dans la preuve de travail, les mineurs contrôlent les inclusions, exclusions et l'ordre des transactions. Cependant, depuis le passage à la preuve d'enjeu via [La Fusion](/roadmap/merge), les validateurs sont responsables de ces rôles, et le minage ne fait plus partie du protocole Ethereum. Les méthodes d'extraction de valeurs existent toujours, donc le terme « valeur extractible maximale » est maintenant utilisé à la place. - -## Prérequis {#prerequisites} - -Assurez-vous d'être à l'aise avec les concepts de [transactions](/developers/docs/transactions/), [blocs](/developers/docs/blocks/), [preuve d'enjeu](/developers/docs/consensus-mechanisms/pos) ainsi que [de gaz](/developers/docs/gas/). Se familiariser avec les [applications décentralisées (dApps)](/dapps/) et la [finance décentralisée (DeFi)](/defi/) peut également être utile. - -## Extraction MEV {#mev-extraction} - -En théorie, la MEV revient entièrement aux validateurs parce qu'ils sont la seule partie à pouvoir garantir l'exécution d'une MEV rentable. Cependant, en pratique, une grande partie des MEV est extraite par des participants indépendants du réseau qui sont appelés les « chercheurs ». Les chercheurs exécutent des algorithmes complexes sur les données de la blockchain pour détecter les opportunités MEV rentables et soumettent automatiquement au réseau ces transactions rentables via des programmes informatiques automatisés. - -Les validateurs obtiennent dans tous les cas une partie du montant total des MEV, puisque les chercheurs sont prêts à payer des frais de gaz élevés (revenant au validateur) en échange d'une plus grande probabilité d'inclure leurs transactions rentables dans un bloc. En supposant que les chercheurs soient économiquement rationnels, les frais de gaz qu'un chercheur est prêt à payer pourront atteindre 100 % du MEV du chercheur (parce que si les frais de carburant étaient plus élevés, le chercheur perdrait de l'argent). - -Ainsi, pour certaines opportunités MEV hautement compétitives, telles que [l'arbitrage DEX](#mev-examples-dex-arbitrage), les chercheurs devront parfois payer au validateur des frais de gaz, s'élevant à 90 % (ou même davantage) de leurs MEV totaux, car un grand nombre de personnes souhaitent utiliser le même négoce d'arbitrage. En effet, la seule façon de garantir que leur transaction d'arbitrage soit exécutée est de soumettre la transaction avec le prix de gaz le plus élevé. - -### Le gas-golfing {#mev-extraction-gas-golfing} - -Cette dynamique a fait du « gas-golfing » — le fait de programmer des transactions pour qu'elles utilisent le moins de gaz possible — un avantage concurrentiel, parce qu'il permet aux chercheurs de fixer un prix de gaz plus élevé tout en gardant leurs frais totaux constants (puisque les frais de gaz = prix du gaz \* gaz utilisé). - -Quelques techniques de gas-golfing bien connues consistent à : utiliser des adresses commençant par une longue chaîne de zéros (p. ex. [0x000000C521824EaFf97Eac7B73B084ef9306](https://etherscan.io/address/0x0000000000c521824eaff97eac7b73b084ef9306)) puisqu'elles occupent moins de place (et donc de gaz); ou bien laisser volontairement de petits soldes de jetons [ERC-20](/developers/docs/standards/tokens/erc-20/) dans les contrats, car il est plus cher d'initialiser un emplacement de stockage (ce qui se passe lorsque le solde est 0) que de le mettre à jour. Trouver de nouvelles techniques pour réduire la consommation de gaz est un domaine de recherche actif parmi les chercheurs. - -### Extracteurs embusqués (Frontrunners) {#mev-extraction-generalized-frontrunners} - -Plutôt que de programmer des algorithmes complexes pour détecter des opportunités MEV rentables, certains chercheurs exécutent des favoris généralisés. Les favoris généralisés sont des programmes automatiques qui scrutent le mempool pour détecter les transactions rentables. Le favori copiera le code de la transaction potentiellement rentable, remplacera les adresses par l'adresse du favori et exécutera la transaction localement pour vérifier doublement que la transaction modifiée génère un profit pour l'adresse du favori. Si la transaction est effectivement rentable, le favori soumettra la transaction modifiée avec l'adresse remplacée et un prix de carburant plus élevé devenant ainsi le favori de la transaction originale et ainsi obtenir le MEV du chercheur original. - -### Flashbots {#mev-extraction-flashbots} - -Flashbots est un projet indépendant qui étend les clients d'exécution avec un service qui permet aux chercheurs de soumettre des transactions MEV aux validateurs sans les révéler au mempool public . Cela empêche les transactions d'être exécutées par des favoris généralisés. - -## Exemples de MEV {#mev-examples} - -Les MEV apparaissent sur la blockchain de différentes façons. - -### Arbitrage DEX {#mev-examples-dex-arbitrage} - -[L'arbitrage sur les plateformes d'échanges décentralisées](/glossary/#dex) (DEX) est la possibilité MEV la plus simple et la plus connue. Par conséquent, c'est aussi le plus compétitif. - -Cela fonctionne ainsi : si deux DEX proposent un jeton à deux prix différents, quelqu'un peut acheter sur le DEX le jeton au prix le plus bas et le vendre au prix le plus élevé dans une transaction atomique unique. Grâce au mécanisme de la blockchain, c'est véritablement un arbitrage sans risque. - -[Voici l'exemple](https://etherscan.io/tx/0x5e1657ef0e9be9bc72efefe59a2528d0d730d478cfc9e6cdd09af9f997bb3ef4) d'une transaction d'arbitrage rentable où un chercheur a transformé 1 000 ETH en 1 045 ETH en profitant de prix différents de la paire ETH/DAI sur Uniswap vs. Sushiswap. - -### Liquidations {#mev-examples-liquidations} - -Les liquidations dans les protocoles de prêt représentent une autre occasion bien connue de MEV. - -Les protocoles de prêt comme Maker et Aave exigent que les utilisateurs déposent des garanties (par exemple ETH). Cette garantie déposée est ensuite utilisée pour prêter à d'autres utilisateurs. - -Les utilisateurs peuvent alors emprunter des actifs et des jetons à d'autres en fonction de ce dont ils ont besoin (p. ex. vous pourriez emprunter des MKR si vous voulez voter dans une proposition de gouvernance MakerDAO) jusqu'à un certain pourcentage de leur garantie déposée. Par exemple, si le montant d'emprunt est de 30 % maximum, un utilisateur qui dépose 100 DAI dans le protocole peut emprunter jusqu'à 30 DAI d'un autre actif. Le protocole détermine le pourcentage exact de pouvoir d'emprunt. - -La valeur des collatéraux d'un emprunteur fluctue, tout comme leur pouvoir d'emprunt. Si, en raison des fluctuations du marché, la valeur des actifs empruntés excède par exemple 30 % de la valeur de leur garantie (encore une fois, le pourcentage exact est déterminé par le protocole), le protocole permet généralement à quiconque de liquider la garantie et de rembourser instantanément les prêteurs (système similaire à la façon dont les [appels de marge](https://www.investopedia.com/terms/m/margincall.asp) fonctionnent dans la finance traditionnelle). En cas de liquidation, l'emprunteur doit généralement payer des frais de liquidation élevés, dont certains vont au liquidateur — c’est là que se trouve la possibilité du MEV. - -Les chercheurs rivalisent pour analyser les données de la blockchain le plus rapidement possible afin de déterminer quels emprunteurs peuvent être liquidés et être les premiers à soumettre une transaction de liquidation et à collecter les frais de liquidation pour eux-mêmes. - -### Échange Sandwich {#mev-examples-sandwich-trading} - -L'échange Sandwich est une autre méthode courante d'extraction MEV. - -Pour créer un sandwich, un chercheur va inspecter le mempool pour trouver des transactions DEX de grand volume. Par exemple, supposons que quelqu'un souhaite acheter 10 000 UNI avec DAI sur Uniswap. Un échange de cette ampleur aura un impact significatif sur la paire UNI/DAI, ce qui pourrait augmenter considérablement le prix de l'UNI par rapport à DAI. - -Un chercheur peut calculer l'impact approximatif en termes de prix de cette importante négociation sur la paire UNI/DAI et exécuter un ordre d'achat optimal immédiatement _avant_ le vaste échange en achetant ainsi des UNI à bon prix, puis exécuter un ordre de vente immédiatement _après_ l'échange en le vendant à un prix bien supérieur résultant de l'importance de l'ordre. - -Cependant, l'échange Sandwich est plus risqué, car il n'est pas atomique (contrairement à l'arbitrage DEX décrit ci-dessus) et est sujet à une [attaque à la salmonelle](https://github.com/Defi-Cartel/salmonella). - -### MEV sur NFT {#mev-examples-nfts} - -Le MEV dans l'espace NFT est un phénomène émergent et n'est pas nécessairement rentable. - -Cependant, étant donné que les transactions NFT se produisent sur la même blockchain partagée que toutes les autres transactions Ethereum, les chercheurs peuvent utiliser sur le marché des NFT des techniques similaires à celles traditionnellement utilisées pour les opportunités MEV. - -Par exemple, s'il y a une forte demande d'un NFT populaire et qu'un chercheur veut un certaine NFT ou un ensemble de NFT, il peut programmer une transaction de telle sorte qu'il soit le premier à acheter le NFT ou encore, il pourra acheter l'ensemble des NFT en une seule transaction. Ou si une NFT est [répertoriée par erreur à un prix bas](https://www.theblockcrypto.com/post/113546/mistake-sees-69000-cryptopunk-sold-for-less-than-a-cent), un chercheur peut faire face à d'autres acheteurs et la récupérer à moindre coût. - -Un exemple significatif de NFT MEV s'est produit lorsqu'un chercheur a dépensé 7 millions de dollars pour [acheter](https://etherscan.io/address/0x650dCdEB6ecF05aE3CAF30A70966E2F395d5E9E5) chaque Cryptopunk au prix plancher. Un chercheur en blockchain [a expliqué sur Twitter](https://twitter.com/IvanBogatyy/status/1422232184493121538) comment l'acheteur a travaillé avec un fournisseur MEV pour garder son secret d'achat. - -### La longue série {#mev-examples-long-tail} - -Les opérations d’arbitrage DEX, de liquidations et d'échange Sandwich sont toutes des opportunités MEV bien connues et ne sont pas susceptibles d’être rentables pour les nouveaux chercheurs. Cependant, il existe une longue série d'opportunités MEV moins connues (les NFT MEV sont sans aucun doute l'une de ces opportunités). - -Les chercheurs qui sont sur le point de débuter peuvent rencontrer davantage de succès en recherchant les MEV dans cette longue série. Le [MEV job board](https://github.com/flashbots/mev-job-board) de Flashbot liste certaines opportunités émergentes. - -## Effets du MEV {#effects-of-mev} - -MEV n’est pas que négatif. Il existe des conséquences positives et négatives concernant MEV sur Ethereum. - -### Les avantages {#effects-of-mev-the-good} - -De nombreux projets DeFi s'appuient sur des acteurs économiquement rationnels pour assurer l'utilité et la stabilité de leurs protocoles. Par exemple, l'arbitrage DEX garantit que les utilisateurs obtiennent le meilleur et le plus juste prix pour leurs jetons, et les protocoles de prêt reposent sur des liquidations rapides lorsque les emprunteurs tombent sous les ratios de garantie pour s'assurer que les prêteurs sont remboursés. - -Sans chercheurs rationnels qui cherchent et corrigent les inefficacités économiques et qui profitent des incitations économiques des protocoles, les protocoles DeFi et dApps en général peuvent ne pas être aussi robustes qu'ils le sont aujourd'hui. - -### Les inconvénients {#effects-of-mev-the-bad} - -À la couche de l'application, certaines formes de MEV, comme les échanges sandwich, entraînent sans équivoque une expérience pire pour les utilisateurs. Les utilisateurs qui sont pris en sandwichs sont confrontés à une augmentation du glissement et à une pire exécution pour leurs opérations. - -Au niveau de la couche réseau, les favoris généralisés et les ventes aux enchères de prix du gaz dans lesquelles ils se livrent souvent (lorsque deux ou plusieurs favoris rivalisent pour que leur transaction soit incluse dans le bloc suivant en augmentant progressivement le prix du gaz de leurs propres transactions) entraînent une congestion du réseau et des prix élevés de gaz pour tous les autres qui essaient de faire des transactions régulières. - -Au-delà de ce qui se passe _à l'intérieur des blocs_, le MEV peut avoir des effets nocifs _entre_ les blocs. Si le MEV disponible dans un bloc dépasse significativement la récompense standard du bloc, les validateurs peuvent être encouragés à réextraire des blocs et à capturer le MEV pour eux-mêmes, causant une réorganisation de la blockchain et une instabilité consensuelle. - -Cette possibilité de réorganisation de la blockchain a été [précédemment rencontrée sur la blockchain Bitcoin](https://dl.acm.org/doi/10.1145/2976749.2978408). Comme la récompense de bloc de Bitcoin est divisée en deux et les frais de transaction représentent une part plus grande de la récompense de bloc, des situations apparaissent où il devient économiquement rationnel pour les mineurs d'abandonner la récompense du prochain bloc et de réextraire les blocs passés avec des frais plus élevés. Avec la croissance du MEV, le même type de situation pourrait se produire avec Ethereum, menaçant l'intégrité de la blockchain. - -## État du MEV {#state-of-mev} - -L’extraction MEV a été organisée au début de 2021, ce qui a entraîné des prix de gaz extrêmement élevés au cours des premiers mois de l’année. L'émergence du relais MEV de Flashbots a réduit l'efficacité des favoris généralisés et en prenant les enchères sur les prix du gaz hors chaîne, a permis la baisse des prix de gaz pour les utilisateurs ordinaires. - -Bien que de nombreux chercheurs gagnent encore beaucoup d'argent avec la MEV, au fur et à mesure que les opportunités deviennent plus connues et que de plus en plus de chercheurs se font concurrence pour la même opportunité, les validateurs capteront de plus en plus le revenu total de la MEV (parce que le même type de ventes aux enchères de gaz, tel que décrit à l'origine ci-dessus, se produit également dans les Flashbots, bien que de manière privée, et les validateurs capteront le revenu des gaz qui en résulte). MEV n'est pas non plus l'apanage d'Ethereum et à mesure que les possibilités deviennent plus compétitives sur Ethereum, les chercheurs se déplacent vers des blockchains alternatifs comme Binance Smart Chain, où des possibilités MEV similaires à celles sur Ethereum existent mais avec moins de concurrence. - -D'autre part, la transition de la preuve de travail à la preuve d'enjeu et les efforts en cours pour faire évoluer Ethereum à l'aide de rollups modifient le paysage de la MEV d'une manière qui n'est pas encore très claire. On ne sait pas encore bien comment le fait que les promoteurs de blocs garantis soient connus légèrement à l'avance modifie la dynamique de l'extraction de la MEV par rapport au modèle probabiliste dans la preuve de travail ou comment cela sera perturbé lorsque [l'élection d'un leader secret unique](https://ethresear.ch/t/secret-non-single-leader-election/11789) et [la technologie de validateur distribué](/staking/dvt/) seront mis en œuvre. De même, il reste à voir quelles seront les opportunités de MEV lorsque la plupart des activités des utilisateurs seront transférées d'Ethereum vers ses rollups et shards de niveau 2. - -## MEV dans Ethereum Proof-of-Stake (PoS) {#mev-in-ethereum-proof-of-stake} - -Comme expliqué, la MEV a des implications négatives sur l'expérience globale de l'utilisateur et la sécurité de la couche de consensus. Mais la transition d'Ethereum vers un consensus de preuve d'enjeu (surnommé « La Fusion ») introduit potentiellement de nouveaux risques liés à la MEV : - -### Centralisation des validateurs {#validator-centralization} - -Dans l'Ethereum post-fusion, les validateurs (ayant effectué des dépôts de sécurité de 32 ETH) parviennent à un consensus sur la validité des blocs ajoutés à la chaîne Beacon. Puisque 32 ETH peuvent être hors de portée pour beaucoup, [joindre un pool de jalonnement](/staking/pools/) peut être une option plus réalisable. Néanmoins, une distribution saine de [solo stakers](/staking/solo/) est idéale, car elle atténue la centralisation des validateurs et améliore la sécurité d'Ethereum. - -Cependant, on pense que l'extraction des MEV est capable d'accélérer la centralisation des validateurs. C'est en partie parce que, comme les validateurs [gagnent moins pour proposer des blocs](/roadmap/merge/issuance/#how-the-merge-impacts-ETH-supply) que les mineurs actuellement, l'extraction de MEV peut grandement [influencer les gains des validateurs](https://github.com/flashbots/eth2-research/blob/main/notebooks/mev-in-eth2/eth2-mev-calc.ipynb) après La Fusion. - -Les pools de jalonnement plus importants auront probablement plus de ressources à investir dans les optimisations nécessaires pour saisir les opportunités de MEV. Plus ces pools extraient de MEV, plus ils disposent de ressources pour améliorer leurs capacités d'extraction de MEV (et augmenter leurs revenus globaux), créant essentiellement [des économies d'échelle](https://www.investopedia.com/terms/e/economiesofscale.asp#). - -Avec moins de ressources à leur disposition, il se peut que les stakers solos ne puissent pas profiter des opportunités des MEV. Cela pourrait accroître la pression sur les validateurs indépendants pour qu'ils rejoignent de puissants pools de jalonnement pour augmenter leurs revenus, réduisant ainsi la décentralisation d'Ethereum. - -### Mempools autorisés {#permissioned-mempools} - -En réponse aux attaques de type « sandwiching » et « frontrunning », les commerçants peuvent commencer à effectuer des transactions hors chaîne avec des validateurs pour assurer la confidentialité des transactions. Au lieu d'envoyer une transaction MEV potentielle au mempool public, le trader l'envoie directement au validateur, qui l'inclut dans un bloc et partage les bénéfices avec le trader. - -Les « dark pools » sont une version plus large de cet arrangement et fonctionnent comme des mempools à accès limité et autorisés, ouverts aux utilisateurs prêts à payer certains frais. Cette tendance diminuerait l'absence de permission et de confiance d'Ethereum et transformerait potentiellement la blockchain en un mécanisme « pay-to-play » qui favorise le plus offrant. - -Les mempools à autorisation accéléreraient également les risques de centralisation décrits dans la section précédente. Les grands pools qui exploitent plusieurs validateurs bénéficieront probablement de la confidentialité des transactions pour les commerçants et les utilisateurs, ce qui augmentera leurs revenus MEV. - -La lutte contre ces problèmes liés à la MEV dans l'Ethereum post-fusion est un domaine de recherche essentiel. À ce jour, deux solutions proposées pour réduire l'impact négatif du MEV sur la décentralisation et la sécurité d'Ethereum après la Fusion sont **Séparation Proposant-Constructeur (PBS)** et l'**API constructeur**. - -### Séparation entre le proposant et le constructeur {#proposer-builder-separation} - -Dans le cas de la preuve de travail et de la preuve d'enjeu, un nœud qui construit un bloc le propose aux autres nœuds participant au consensus pour qu'il soit ajouté à la chaîne. Un nouveau bloc devient partie intégrante de la chaîne canonique après qu'un autre mineur l'a construit (en PoW) ou qu'il a reçu les attestations de la majorité des validateurs (en Pos). - -La combinaison des rôles de producteur et de proposant de blocs est à l'origine de la plupart des problèmes liés à la MEV décrits précédemment. Par exemple, les nœuds de consensus sont incités à déclencher des réorganisations de chaînes lors d'attaques de type « time-bandit » afin de maximiser les gains MEV. - -[Proposer-builder separation](https://ethresear.ch/t/proposer-block-builder-separation-friendly-fee-market-designs/9725) (PBS) est conçu pour atténuer l'impact de la MEV, en particulier au niveau de la couche de consensus. La principale caractéristique de PBS est la séparation des règles relatives aux producteurs et aux proposants de blocs. Les validateurs sont toujours chargés de proposer et de voter sur les blocs, mais une nouvelle classe d'entités spécialisées, appelées **block builders**, sont chargées d'ordonner les transactions et de construire les blocs. - -Dans le cadre de la PBS, un constructeur de blocs crée un paquet de transactions et fait une offre pour son inclusion dans un bloc de la chaîne Beacon (en tant que « charge utile d'exécution »). Le validateur sélectionné pour proposer le bloc suivant vérifie alors les différentes offres et choisit le lot ayant le tarif le plus élevé. PBS crée essentiellement un marché aux enchères, où les constructeurs négocient avec les validateurs qui vendent de l'espace de bloc. - -Les conceptions actuelles de PBS utilisent un [schéma d'engagement-révélation](https://gitcoin.co/blog/commit-reveal-scheme-on-ethereum/) dans lequel les constructeurs ne publient qu'un engagement cryptographique sur le contenu d'un bloc (en-tête de bloc) avec leurs offres. Après avoir accepté l'offre gagnante, le proposant crée une proposition de bloc signée qui comprend l'en-tête de bloc. Le constructeur de blocs est censé publier le corps complet du bloc après avoir vu la proposition de bloc signée, et il doit également recevoir suffisamment d'[attestations](/glossary/#attestation) des validateurs avant qu'il ne soit finalisé. - -#### Comment la séparation proposant-constructeur atténue-t-elle l'impact de la MEV ? {#how-does-pbs-curb-mev-impact} - -La séparation entre le proposant et le constructeur dans le protocole réduit l'effet de la MEV sur le consensus en retirant l'extraction de la MEV de la compétence des validateurs. Ce sont plutôt les constructeurs de blocs utilisant du matériel spécialisé qui saisiront les opportunités de MEV à l'avenir. - -Cela n'exclut pas totalement les validateurs des revenus liés à la MEV, car les constructeurs doivent faire des offres élevées pour que leurs blocs soient acceptés par les validateurs. Néanmoins, les validateurs n'étant plus directement axés sur l'optimisation des revenus de la MEV, la menace des attaques de type « time-bandit » diminue. - -La séparation proposant-constructeur réduit également les risques de centralisation de la MEV. Par exemple, l'utilisation d'un schéma commit-reveal évite aux constructeurs de devoir faire confiance aux validateurs pour ne pas voler l'opportunité MEV ou l'exposer aux autres constructeurs. Cela réduit la barrière qui empêche les stakers solitaires de bénéficier de la MEV, sinon les constructeurs auraient tendance à favoriser les grands pools ayant une réputation hors chaîne et à conclure des accords hors chaîne avec eux. - -De même, les validateurs n'ont pas à faire confiance aux constructeurs pour qu'ils ne retiennent pas les corps de blocs ou ne publient pas de blocs invalides, car le paiement est inconditionnel. Les frais du validateur sont toujours traités même si le bloc proposé est indisponible ou déclaré invalide par d'autres validateurs. Dans ce dernier cas, le bloc est tout simplement rejeté, ce qui oblige le créateur du bloc à perdre tous les frais de transaction et les revenus de la MEV. - -### API pour les builders {#builder-api} - -Bien que la séparation des proposants et des constructeurs promette de réduire les effets de l'extraction des MEV, sa mise en œuvre nécessite des modifications du protocole de consensus. Plus précisément, la règle [fork choice](/developers/docs/consensus-mechanisms/pos/#fork-choice) de la chaîne de balises devrait être mise à jour. L'[API pour les builders](https://github.com/ethereum/builder-specs) est une solution temporaire visant à fournir une mise en œuvre fonctionnelle de la séparation proposer-bâtir, bien qu'avec des hypothèses de confiance plus élevées. - -L'API pour les builders est une version modifiée de l'API [Engine API](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) utilisée par les clients de la couche de consensus pour demander des charges utiles d'exécution aux clients de la couche d'exécution. Comme indiqué dans la [spécification du validateur honnête](https://github.com/ethereum/consensus-specs/blob/dev/specs/bellatrix/validator.md), les validateurs sélectionnés pour les tâches de proposition de bloc demandent un paquet de transactions à un client d'exécution connecté, qu'ils incluent dans le bloc de la chaîne Beacon proposé. - -L'API pour les builders fait également office d'intergiciel entre les validateurs et les clients de la couche d'exécution, mais elle est différente car elle permet aux validateurs de la chaîne Beacon de s'approvisionner en blocs auprès d'entités externes (au lieu de construire un bloc localement à l'aide d'un client d'exécution). - -Vous trouverez ci-dessous un aperçu du fonctionnement de l'API pour les builders : - -1. L'API pour les builders connecte le validateur à un réseau de constructeurs de blocs exécutant des clients de la couche d'exécution. Comme dans le cas de PBS, les constructeurs sont des parties spécialisées qui investissent dans la construction de blocs à forte intensité de ressources et utilisent différentes stratégies pour maximiser les revenus tirés des MEV + les pourboires prioritaires. - -2. Un validateur (qui exécute un client de la couche de consensus) demande des charges utiles d'exécution ainsi que des offres au réseau de constructeurs. Les offres des constructeurs contiendront l'en-tête de la charge utile d'exécution - un engagement cryptographique sur le contenu de la charge utile - et une redevance à payer au validateur. - -3. Le validateur examine les offres entrantes et choisit la charge utile d'exécution dont les frais sont les plus élevés. À l'aide de l'API pour les builders, le validateur crée une proposition de bloc Beacon "aveugle" qui comprend uniquement sa signature et l'en-tête de la charge utile d'exécution et l'envoie au builder. - -4. Le constructeur qui exécute l'API pour les builders est censé répondre avec la totalité de la charge utile d'exécution lorsqu'il voit la proposition de bloc aveuglé. Cela permet au validateur de créer un bloc Beacon « signé », qu'il propage à travers le réseau. - -5. Un validateur utilisant l'API pour les builders est toujours censé construire un bloc localement au cas où le constructeur de blocs ne répondrait pas rapidement, afin de ne pas manquer les récompenses de la proposition de bloc. Cependant, le validateur ne peut pas créer un autre bloc en utilisant les transactions maintenant révélées ou un autre ensemble, car cela reviendrait à _équivocation_ (signer deux blocs dans le même slot), ce qui est une infraction répréhensible. - -Un exemple d'implémentation de l'API pour les builders est [MEV Boost](https://github.com/flashbots/mev-boost), une amélioration du [mécanisme d'enchères Flashbots](https://docs.flashbots.net/Flashbots-auction/overview/) conçu pour freiner les externalités négatives de la MEV sur Ethereum. L'enchère Flashbots permet aux mineurs en proof-of-work d'externaliser le travail de construction de blocs rentables à des parties spécialisées appelées **searchers**. - -Les chercheurs recherchent des opportunités MEV lucratives et envoient des paquets de transactions aux mineurs avec une [offre à prix scellé](https://en.wikipedia.org/wiki/First-price_sealed-bid_auction) pour l'inclusion dans le bloc. Le mineur qui exécute mev-geth, une version bifurquée du client go-ethereum (Geth), n'a qu'à choisir le paquet qui rapporte le plus et le miner dans le cadre du nouveau bloc. Pour protéger les mineurs des spams et des transactions invalides, les paquets de transactions passent par des **relayers** pour validation avant d'arriver aux mineurs. - -MEV Boost conserve le même fonctionnement que la vente aux enchères Flashbots originale, mais avec de nouvelles fonctionnalités conçues pour le passage à la preuve d'enjeu d'Ethereum. Les chercheurs trouvent toujours des transactions MEV rentables à inclure dans les blocs, mais une nouvelle catégorie de parties spécialisées, appelées **constructeurs**, sont responsables de l'agrégation des transactions et des paquets en blocs. Un builder accepte les offres à prix scellés des chercheurs et effectue des optimisations pour trouver la commande la plus rentable. - -Le relayeur est toujours responsable de la validation des paquets de transactions avant de les transmettre au proposant. Cependant, MEV Boost introduit des **escrows** chargés de fournir [la disponibilité des données](/developers/docs/data-availability/) en stockant les corps de blocs envoyés par les constructeurs et les en-têtes de blocs envoyés par les validateurs. Ici, un validateur connecté à un relais demande les charges utiles d'exécution disponibles et utilise l'algorithme d'ordonnancement de MEV Boost pour sélectionner l'en-tête de charge utile avec l'offre la plus élevée + les conseils MEV. - -#### Comment l'API pour les builders atténue-t-elle l'impact de la MEV ? {#how-does-builder-api-curb-mev-impact} - -L'avantage principal de l'API pour les builders est son potentiel de démocratisation de l'accès aux opportunités MEV. L'utilisation de schémas commit-reveal élimine les hypothèses de confiance et réduit les barrières d'entrée pour les validateurs qui cherchent à bénéficier de la MEV. Cela devrait réduire la pression exercée sur les jalonneurs solitaires pour qu'ils s'intègrent à de grands pools de jalonnement afin d'augmenter les profits de la MEV. - -La mise en œuvre généralisée de l'API pour les builders favorisera une plus grande concurrence entre les constructeurs de blocs, ce qui augmentera la résistance à la censure. Comme les validateurs examinent les offres de plusieurs constructeurs, un constructeur qui a l'intention de censurer une ou plusieurs transactions d'utilisateurs doit surenchérir sur tous les autres constructeurs non censurés pour réussir. Cela augmente considérablement le coût de la censure des utilisateurs et décourage cette pratique. - -Certains projets, tels que MEV Boost, utilisent l'API pour les builders dans le cadre d'une structure globale conçue pour assurer la confidentialité des transactions à certaines parties, telles que les traders qui tentent d'éviter les attaques de type frontrunning/sandwiching. Pour ce faire, un canal de communication privé est mis en place entre les utilisateurs et les constructeurs de blocs. Contrairement aux mempools à autorisation décrits précédemment, cette approche est bénéfique pour les raisons suivantes : - -1. L'existence de multiples constructeurs sur le marché rend la censure peu pratique, ce qui profite aux utilisateurs. En revanche, l'existence de dark pools centralisés et basés sur la confiance concentrerait le pouvoir entre les mains de quelques constructeurs de blocs et augmenterait la possibilité de censure. - -2. Le logiciel API pour les builders est un logiciel libre, ce qui permet à quiconque de proposer des services de construction de blocs. Cela signifie que les utilisateurs ne sont pas obligés d'utiliser un constructeur de blocs particulier et cela améliore la neutralité et l'absence de permission d'Ethereum. De plus, les commerçants à la recherche de MEV ne contribueront pas par inadvertance à la centralisation en utilisant des canaux de transaction privés. - -## Ressources associées {#related-resources} - -- [Docs Flashbots](https://docs.flashbots.net/) -- [GitHub Flashbots](https://github.com/flashbots/pm) -- [MEV-Explore](https://explore.flashbots.net/) _Tableau de bord et explorateur de transactions en direct pour les transactions MEV_ -- [mevboost.org](https://www.mevboost.org/) - _Traqueur en temps réel avec statistiques pour les relais MEV-Boost et les constructeurs de blocs_ - -## Complément d'information {#further-reading} - -- [Qu'est-ce qu'une valeur extractible par minage (MEV) ?](https://blog.chain.link/what-is-miner-extractable-value-mev/) -- [MEV et moi](https://www.paradigm.xyz/2021/02/mev-and-me) -- [L'Ethereum est une Forêt Sombre](https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest/) -- [S'échapper de la forêt Sombre](https://samczsun.com/escaping-the-dark-forest/) -- [Flashbots : Devancer la crise des MEV](https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752) -- [@bertcmiller's MEV Threads](https://twitter.com/bertcmiller/status/1402665992422047747) -- [MEV-Boost : Fusionner l'architecture Flashbots](https://ethresear.ch/t/mev-boost-merge-ready-flashbots-architecture/11177) -- [Qu'est-ce que MEV Boost](https://www.alchemy.com/overviews/mev-boost) -- [Pourquoi exécuter mev-boost ?](https://writings.flashbots.net/writings/why-run-mevboost/) -- [Le Guide des randonneurs sur Ethereum](https://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum) diff --git a/src/content/translations/fr/developers/docs/networking-layer/index.md b/src/content/translations/fr/developers/docs/networking-layer/index.md deleted file mode 100644 index 9d7876ddefe..00000000000 --- a/src/content/translations/fr/developers/docs/networking-layer/index.md +++ /dev/null @@ -1,155 +0,0 @@ ---- -title: Couche de réseautage -description: Introduction à la couche réseau Ethereum. -lang: fr -sidebarDepth: 2 ---- - -Ethereum est un réseau pair-à-pair composé de milliers de nœuds qui doivent pouvoir communiquer entre eux en utilisant des protocoles standardisés. La « couche réseau » est la pile de protocoles qui permettent à ces nœuds de se trouver et d'échanger des informations. Cela inclut des informations de commutation (communication de type « d'une personne à plusieurs ») sur le réseau, ainsi que des échanges de requêtes et de réponses entre des nœuds spécifiques (communication de type « de personne à personne »). Chaque nœud doit adhérer à des règles de réseautage spécifiques pour s'assurer qu'il envoie et reçoit les informations correctes. - -Il existe deux types de logiciels clients (les clients d'exécution et les clients de consensus), chacun disposant de sa propre pile réseau. En plus de communiquer avec d’autres nœuds Ethereum, les clients d’exécution et de consensus doivent communiquer entre eux. Cette page est une introduction explicative des protocoles qui permettent cette communication. - -Les clients d'exécution font circuler des informations sur les transactions dans le réseau pair-à-pair de la couche d'exécution. Cela nécessite une communication chiffrée entre les pairs authentifiés. Lorsqu'un validateur est sélectionné pour proposer un bloc, les transactions depuis le pool de transactions locales du nœud seront transmises à des clients de consensus via une connexion RPC locale, qui sera empaquetée dans des blocs de chaîne phare. Les clients de consensus diffuseront ensuite les blocs de la chaîne phare au travers de leur réseau p2p. Deux réseaux p2p distincts sont donc nécessaires : un connecté au client d'exécution pour les commutations de transaction et un client de consensus pour les blocs de commutation. - -## Prérequis {#prerequisites} - -Une certaine connaissance des [nœuds et clients d'Ethereum](/developers/docs/nodes-and-clients/) sera utile pour comprendre cette page. - -## La couche d'exécution {#execution-layer} - -Les protocoles de réseau de la couche d'exécution sont divisés en deux piles : - -- la pile de découverte : s'appuie sur UDP et permet à un nouveau nœud de trouver des pairs auxquels se connecter - -- la pile DevP2P : s'appuie sur TCP et permet aux nœuds d'échanger des informations - -Les deux piles fonctionnent en parallèle. La pile de découverte alimente le réseau en nouveaux participants, et la pile DevP2P permet leurs interactions. - -### La découverte {#discovery} - -La découverte est le processus permettant de trouver d'autres nœuds sur le réseau. Il est amorcé en utilisant un petit ensemble de nœuds de démarrage (nœuds dont les adresses sont [codées en dur](https://github.com/ethereum/go-ethereum/blob/master/params/bootnodes.go) dans le client afin de pouvoir être trouvés immédiatement et de connecter le client à des pairs). Ces nœuds de démarrage n'existent que pour introduire un nouveau nœud à un ensemble de pairs - c'est leur seul objectif, ils ne participent pas aux tâches normales du client comme la synchronisation de la chaîne, et ils ne sont utilisés que lors du premier lancement d'un client. - -Le protocole utilisé pour les interactions des nœuds avec les nœuds de démarrage est une forme modifiée de [Kademlia](https://medium.com/coinmonks/a-brief-overview-of-kademlia-and-its-use-in-various-decentralized-platforms-da08a7f72b8f) qui utilise une [table de hachage distribué](https://en.wikipedia.org/wiki/Distributed_hash_table) pour partager des listes de nœuds. Chaque nœud dispose d'une version de cette table contenant les informations nécessaires pour se connecter à ses pairs les plus proches. Cette « proximité » n'est pas géographique - la distance est définie par la similitude de l'ID du nœud. Chaque table de nœud est régulièrement actualisée en tant que fonctionnalité de sécurité. Par exemple, dans [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5), les nœuds de protocole de découverte sont également en mesure d'envoyer des « publicités » qui affichent les sous-protocoles pris en charge par le client, ce qui permet aux pairs de négocier les protocoles qu'ils peuvent tous deux utiliser pour communiquer. - -Le processus de découverte commence par une partie de PING-PONG. Un PING-PONG réussi va « lier » le nouveau nœud à un nœud de démarrage. Le message initial qui avertit un nœud de démarrage de l'existence d'un nouveau nœud entrant sur le réseau est un `PING`. Ce `PING` inclut des informations hachées sur le nouveau nœud, le nœud de démarrage et une date d'expiration. Le nœud de démarrage reçoit le `PING` et retourne un `PONG` contenant le hachage `PING`. Si les hachages `PING` et `PONG` correspondent, alors la connexion entre le nouveau nœud et le nœud de démarrage est vérifiée et on dit qu'ils sont « liés ». - -Une fois lié, le nouveau nœud peut envoyer une requête `FIND-NEIGHBOURS` au nœud de démarrage. Les données retournées par le nœud de démarrage incluent une liste de pairs auxquels le nouveau nœud peut se connecter. Si les nœuds ne sont pas liés, la requête `FIND-NEIGHBOURS` échouera, de sorte que le nouveau nœud ne pourra pas entrer sur le réseau. - -Dès que le nouveau nœud reçoit une liste de voisins depuis le nœud de démarrage, il commence un échange PING-PONG avec chacun d'eux. Les PING-PONG réussissent à lier le nouveau nœud avec ses voisins, ce qui permet l’échange de messages. - -``` -démarrage du client --> connexion au nœud de démarrage --> lien avec le nœud de démarrage --> trouver les voisins --> liens avec les voisins -``` - -Les clients d'exécution utilisent actuellement le protocole de découverte [Discv4](https://github.com/ethereum/devp2p/blob/master/discv4.md) et des actions ont été entreprises pour migrer vers le protocole [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5). - -#### ENR : Ethereum Node Records (Registres des Nœuds Ethereum) {#enr} - -Le [registre des nœuds Ethereum (ENR : Ethereum Node Records)](/developers/docs/networking-layer/network-addresses/) est un objet qui contient trois éléments de base : une signature (hachage du contenu des registres selon un schéma d'identité convenu), un numéro de séquence qui suit les modifications apportées au registre, et une liste arbitraire de paires clé/valeur. Il s'agit d'un format à l'épreuve du futur qui permet de simplifier l'échange d'informations d'identification entre les nouveaux pairs. C'est également le format [d'adresse réseau](/developers/docs/networking-layer/network-addresses) préféré pour les nœuds Ethereum. - -#### Pourquoi le processus de découverte est-il basé sur UDP ? {#why-udp} - -UDP ne prend pas en charge le contrôle des erreurs, le renvoi des paquets en échec, ou l'ouverture et la fermeture dynamique des connexions. Il se contente d'envoyer un flux continu d'informations à une cible, qu'il soit ou non reçu avec succès. Cette fonctionnalité minimale se traduit également par un minimum de frais, ce qui rend ce type de connexion très rapide. Pour la découverte, où un nœud veut simplement faire connaître sa présence afin d'établir ensuite une connexion formelle avec un pair, UDP est suffisant. Cependant, pour le reste de la pile de réseaux, UDP n'est pas adapté. L'échange d'informations entre les nœuds est assez complexe et a donc besoin d'un protocole plus complet qui puisse prendre en charge le renvoi, la vérification des erreurs, etc. Les frais supplémentaires associés à TCP valent la peine de bénéficier de fonctionnalités supplémentaires. Par conséquent, la majorité de la pile P2P fonctionne sur TCP. - -### DevP2P {#devp2p} - -DevP2P est en lui-même une pile de protocoles qu'Ethereum implémente pour établir et maintenir le réseau de pair à pair. Une fois les nouveaux nœuds entrés sur le réseau, leurs interactions sont régies par des protocoles dans la pile [DevP2P](https://github.com/ethereum/devp2p). Ils reposent tous sur TCP et comprennent le protocole de transport RLPx, le protocole filaire et plusieurs sous-protocoles. [RLPx](https://github.com/ethereum/devp2p/blob/master/rlpx.md) est le protocole régissant l'initiation, l'authentification et la maintenance des sessions entre nœuds. RLPx code les messages à l'aide de RLP (Recursive Length Prefix), une méthode très efficace d'encodage des données dans une structure minimale pour l'envoi entre nœuds. - -Une session RLPx entre deux nœuds commence par une poignée de main cryptographique. Cela implique que le nœud envoie un message d'authentification qui est ensuite vérifié par le pair. En cas de vérification réussie, le pair génère un message de reconnaissance d'authentification à renvoyer au nœud initiateur. Il s'agit d'un processus d'échange de clés qui permet aux nœuds de communiquer en privé et en toute sécurité. Une poignée de main cryptographique réussie déclenche ensuite l'envoi par les deux nœuds d'un message « bonjour » « en mode filaire ». Le protocole filaire est initié par un échange réussi de messages de bienvenue. - -Les messages de bienvenue contiennent : - -- La version du protocole -- L'ID du client -- Le port -- L'ID du nœud -- La liste des sous-protocoles pris en charge - -Ce sont les informations requises pour une interaction réussie, car elles définissent les capacités qui sont partagées entre les deux nœuds et configurent la communication. Il existe un processus de négociation de sous-protocoles où les listes de sous-protocoles prises en charge par chaque nœud sont comparées ; ceux qui sont communs aux deux nœuds peuvent être utilisés dans la session. - -Outre les messages de bienvenue, le protocole filaire peut également envoyer un message de « déconnexion » qui avertit un pair que la connexion va être fermée. Le protocole filaire comprend également les messages PING et PONG qui sont envoyés périodiquement pour conserver une session ouverte. Les échanges de RLPx et de protocoles filaires établissent donc les bases de la communication entre les nœuds, fournissant l'échafaudage nécessaire à l'échange d'informations utiles selon un sous-protocole spécifique. - -### Sous-protocoles {#sub-protocols} - -#### Le protocole filaire {#wire-protocol} - -Une fois que les pairs sont connectés et qu'une session RLPx est entamée, le protocole filaire définit la façon dont les pairs communiquent. Initialement, le protocole filaire définissait trois tâches principales : synchronisation de chaînes, propagation de blocs et échange de transactions. Cependant, depuis qu'Ethereum est passé à la preuve d'enjeu, la propagation des blocs et la synchronisation des chaînes sont devenues partie intégrante de la couche de consensus. L'échange de transactions est toujours à la charge des clients d'exécution. L'échange de transactions fait référence à l'échange de transactions en attente entre les nœuds afin que les mineurs puissent sélectionner certains d'entre eux pour les inclure dans le bloc suivant. Des informations plus détaillées sur ces tâches sont disponibles [ici](https://github.com/ethereum/devp2p/blob/master/caps/eth.md). Les clients qui prennent en charge ces sous-protocoles les affichent via [JSON-RPC](/developers/docs/apis/json-rpc/). - -#### Les (sous-protocole ethereum léger) {#les} - -Il s'agit d'un protocole minimal destiné à synchroniser les clients légers. Jusqu'à présent, ce protocole a rarement été utilisé, dans la mesure où les nœuds complets sont contraints de servir des données à des clients légers sans être incités à le faire. Le comportement par défaut des clients d'exécution n'est pas de servir des données clientes légères via les. D'autres informations sont disponibles dans les [spécifications](https://github.com/ethereum/devp2p/blob/master/caps/les.md). - -#### Snap (protocole d'accrochage) {#snap} - -Le [protocole snap](https://github.com/ethereum/devp2p/blob/master/caps/snap.md#ethereum-snapshot-protocol-snap) est une extension optionnelle qui permet aux pairs d'échanger des instantanés d'états récents, permettant aux pairs de vérifier les données de compte et de stockage sans avoir à télécharger les nœuds intermédiaires d'arbre de Merkle. - -#### Wit (protocole de témoin) {#wit} - -Le [protocole de témoin](https://github.com/ethereum/devp2p/blob/master/caps/wit.md#ethereum-witness-protocol-wit) est une extension facultative qui permet l'échange de témoins d'état entre pairs, aidant à synchroniser les clients à la pointe de la chaîne. - -#### Whisper {#whisper} - -Whisper était un protocole visant à fournir une messagerie sécurisée entre pairs sans écrire aucune information sur la blockchain. Il faisait partie du protocole filaire DevP2P mais est maintenant obsolète. D'autres [projets connexes](https://wakunetwork.com/) existent avec des objectifs similaires. - -## La couche de consensus {#consensus-layer} - -Les clients de consensus participent à un réseau distinct de pair-à-pair avec une spécification différente. Les clients de consensus doivent participer à des commutateurs de blocs afin de recevoir des pairs de nouveaux blocs de leurs pairs et les diffuser quand c'est à leur tour de proposer un bloc. De la même manière que la couche d'exécution, cette approche nécessite d'abord un protocole de découverte afin qu'un nœud puisse trouver des pairs et établir des sessions sécurisées pour échanger des blocs, des attestations, etc. - -### La découverte {#consensus-discovery} - -Comme pour les clients d'exécution, les clients de consensus utilisent [discv5](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-discovery-domain-discv5) sur UDP pour trouver des pairs. L'implémentation de la couche de consensus de discv5 diffère de celle des clients d'exécution uniquement en ce qu'elle inclut un adaptateur connectant discv5 dans une pile [libP2P](https://libp2p.io/), dépréciant DevP2P. Les sessions de la couche d'exécution RLPx sont dépréciées au profit du système de liaison sécurisé libP2P. - -### ENRs {#consensus-enr} - -L'ENR pour les nœuds de consensus inclut la clé publique du nœud, l'adresse IP, les ports UDP et TCP et deux champs spécifiques au consensus : l'attestation bitfield du sous-réseau et la clé `eth2`. Le premier permet aux nœuds de trouver plus facilement des nœuds participant à des sous-réseaux de commutation d'attestations spécifiques. La clé `eth2` contient des informations sur la version de la fourche d'Ethereum que le nœud utilise, en s'assurant que les pairs se connectent au bon Ethereum. - -### libP2P {#libp2p} - -La pile libP2P prend en charge toutes les communications après la découverte. Les clients peuvent composer et écouter sur IPv4 et/ou IPv6 tel que défini dans leur ENR. Les protocoles de la couche libP2P peuvent être subdivisés en domaines de commutation et de questions/réponses. - -### Commutation {#gossip} - -Le domaine du commutateur inclut toutes les informations qui doivent se propager rapidement sur le réseau. Cela inclut les blocs de la chaîne phare, les preuves, les attestations, les sorties et les coupes. Les informations sont transmises à l'aide de libP2P gossipsub v1 et repose sur diverses métadonnées stockées localement sur chaque nœud, y compris la taille maximale des charges de commutation à recevoir et à transmettre. Des informations plus détaillées sur les domaines de commutation sont disponibles [ici](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-gossip-domain-gossipsub). - -### Question-réponse {#request-response} - -Le domaine question-réponse contient des protocoles pour les clients demandant des informations spécifiques à leurs pairs. Il peut s'agir, par exemple, de demander des blocs spécifiques de la chaîne phare correspondant à certains hachages de la racine ou se situant dans une gamme d'emplacements. Les réponses sont toujours renvoyées sous la forme d'octets encodés SSZ compressés par snappy. - -## Pourquoi le client de consensus préfère-t-il SSZ à RLP ? {#ssz-vs-rlp} - -SSZ signifie "sérialisation simple". Elle utilise des décalages fixes qui facilitent le décodage de parties individuelles d'un message encodé sans avoir à décoder toute la structure, ce qui est très utile pour le client de consensus qui peut récupérer efficacement des éléments d'information spécifiques à partir de messages codés. Elle est également conçue spécifiquement pour s’intégrer aux protocoles Merkle, cela se traduisant par des gains d'efficacité pour la Merkleization. Puisque tous les hachages de la couche de consensus sont des racines de Merkle, cela représente une amélioration significative. SSZ garantit également des représentations uniques de valeurs. - -## Connexion des clients d'exécution et de consensus {#connecting-clients} - -Les clients de consensus et d'exécution fonctionnent en parallèle. Ils doivent être connectés afin que le client de consensus puisse fournir des instructions au client d'exécution et que le client d'exécution puisse passer des paquets de transactions au client de consensus pour les inclure dans les blocs phares. Cette communication entre les deux clients peut être réalisée en utilisant une connexion RPC locale. Une API connue sous le nom de ['Engine-API'](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) définit les instructions envoyées entre les deux clients. Puisque les deux clients se trouvent derrière une seule identité de réseau, ils partagent un ENR (registre de nœuds Ethereum) qui contient une clé séparée pour chaque client (clé eth1 et clé eth2). - -Un résumé du flux de contrôle est affiché ci-dessous (la pile réseau pertinente apparaît entre parenthèses). - -##### Lorsque le client de consensus n'est pas le producteur de bloc : - -- Le client de consensus reçoit un bloc via le protocole de commutation (consensus p2p) -- Le client de consensus prévalide le bloc, c'est-à-dire qu'il s'assure qu'il est arrivé d'un expéditeur valide avec des métadonnées correctes -- Les transactions dans le bloc sont envoyées à la couche d'exécution en tant que charge d'exécution (connexion RPC locale) -- La couche d'exécution exécute les transactions et valide l'état dans l'en-tête du bloc (c'est-à-dire vérifie la correspondance des haches) -- La couche d'exécution transmet les données de validation à la couche de consensus, le bloc est maintenant considéré comme validé (connexion RPC locale) -- La couche de consensus ajoute un bloc à la tête de sa propre blockchain et l'atteste, diffusant l'attestation sur le réseau (consensus p2p) - -##### Lorsque le client de consensus est le producteur de bloc : - -- Le client de consensus reçoit une note l'informant qu'il est le prochain producteur de blocs (consensus p2p) -- La couche de consensus appelle la méthode `create block` dans le client d'exécution (RPC en local) -- La couche d'exécution accède au mempool de transaction qui a été alimenté par le protocole de commutation de transaction (exécution p2p) -- Le client d'exécution empaquette les transactions dans un bloc, exécute les transactions et génère un hachage du bloc -- Le client de consensus récupère les transactions et bloque le hachage du client d'exécution et les ajoute au bloc phare (RPC) -- Le client de consensus reçoit le bloc via le protocole de commutation (consensus p2p) -- Les autres clients reçoivent le bloc proposé via le protocole de commutation de bloc et le valident comme décrit ci-dessus (consensus p2p) - -Une fois le bloc attesté par suffisamment de validateurs, il est ajouté en tête de la chaîne, justifié et finalisé. - -![](cons_client_net_layer.png) ![](exe_client_net_layer.png) - -Le schéma de couche réseau pour les clients de consensus et d'exécution par [ethresear.ch](https://ethresear.ch/t/eth1-eth2-client-relationship/7248) - -## Complément d'information {#further-reading} - -[DevP2P](https://github.com/ethereum/devp2p) [LibP2p](https://github.com/libp2p/specs) [spécifications réseau de la couche de consensus](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#enr-structure) [kademlia to discv5](https://vac.dev/kademlia-to-discv5) [kademlia paper](https://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf) [introduction à Ethereum p2p](https://p2p.paris/en/talks/intro-ethereum-networking/) [relation eth1/eth2](http://ethresear.ch/t/eth1-eth2-client-relationship/7248) [vidéo sur les détails de La Fusion avec client eth2](https://www.youtube.com/watch?v=zNIrIninMgg) diff --git a/src/content/translations/fr/developers/docs/nodes-and-clients/client-diversity/index.md b/src/content/translations/fr/developers/docs/nodes-and-clients/client-diversity/index.md deleted file mode 100644 index 2268a230c82..00000000000 --- a/src/content/translations/fr/developers/docs/nodes-and-clients/client-diversity/index.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: Diversité des clients -description: Une explication de haut niveau sur l'importance de la diversité des clients Ethereum. -lang: fr -sidebarDepth: 2 ---- - -Le comportement d'un nœud Ethereum est contrôlé par le logiciel client qu'il exécute. Il existe plusieurs clients Ethereum de niveau production, chacun développé et mis à jour dans différentes langues par des équipes séparées. Les clients sont créés selon une spécification commune qui garantit que les clients communiquent entre eux de manière transparente, ont les mêmes fonctionnalités et offrent une expérience utilisateur équivalente. Cependant, pour le moment, la répartition des clients entre les nœuds n'est pas assez équilibrée pour réaliser cette fortification du réseau à son plein potentiel. Idéalement, les utilisateurs se divisent à peu près équitablement entre les différents clients pour apporter le plus de diversité possible au réseau. - -## Prérequis {#prerequisites} - -Si vous ne maîtrisez pas déjà ce que sont les nœuds et les clients, consultez la page [nœuds et clients](/developers/docs/nodes-and-clients/). [Exécution](/glossary/#execution-layer) et [couches de consensus](/glossary/#consensus-layer) sont définies dans le glossaire. - -## Pourquoi existe-t-il différents clients ? {#why-multiple-clients} - -De multiples clients, développés et mis à jour de manière indépendante, existent parce que la diversité des clients rend le réseau plus résistant aux attaques et aux bogues. La multitude de clients est une force propre à Ethereum - d'autres blockchains dépendent de l'infaillibilité d'un seul client. Cependant, il ne suffit pas de disposer de plusieurs clients, ceux-ci doivent être adoptés par la communauté et la totalité des nœuds actifs répartis relativement égale entre eux. - -## Pourquoi la diversité des clients est-elle importante ? {#client-diversity-importance} - -Disposer de nombreux clients développés et mis à jour de façon indépendante est vital pour la bonne santé d'un réseau décentralisé. Voyons pourquoi. - -### Bogues {#bugs} - -Un bogue dans un client individualisé est moins risqué pour le réseau lorsqu'il représente une minorité de nœuds Ethereum. Lorsque les nœuds sont répartis de façon à peu près égale entre de nombreux clients, la probabilité que la plupart des clients souffrent d'un problème commun est faible et, par conséquent, le réseau est plus robuste. - -### Résistance aux attaques {#resilience} - -La diversité des clients offre également une résilience aux attaques. Par exemple, une attaque qui viserait [un client spécifique](https://twitter.com/vdWijden/status/1437712249926393858) sur une branche particulière de la chaîne a peu de chance de réussir parce que les autres clients sont peu susceptibles d'être exploités de la même manière et que la chaîne canonique reste intacte. La faible diversité des clients augmente le risque associé à un piratage sur le client dominant. La diversité des clients s'est déjà avérée être une défense efficace contre les attaques malveillantes sur le réseau, par exemple l'attaque de Shanghai par déni de service en 2016 a pu être menée parce que les attaquants ont réussi à tromper le client dominant (Geth) en exécutant une opération sur disque i/o des dizaines de milliers de fois par bloc. Puisque des clients alternatifs étaient également en ligne et ne partageaient pas la vulnérabilité, Ethereum a pu résister à l'attaque et continuer à fonctionner pendant que la vulnérabilité de Geth était corrigée. - -### Finalité de la preuve d'enjeu {#finality} - -Un bogue dans un client de consensus avec plus de 33 % des nœuds Ethereum pourrait empêcher la finalisation de la chaîne phare, de sorte que les utilisateurs ne pourraient pas avoir confiance dans le fait que les transactions ne seraient pas annulées ou modifiées à un moment donné. Cela serait problématique pour de nombreuses applications basées sur Ethereum, en particulier pour la DeFi. - - Pire encore, un bogue critique dans un client avec une majorité des deux tiers pourrait causer le fractionnement et la finalisation incorrecte de la chaîne, entraînant le blocage d'un grand nombre de validateurs sur une chaîne invalide. S'ils souhaitent rejoindre la bonne chaîne, ces validateurs sont confrontés à un délestage ou à un retrait volontaire et à une réactivation lente et coûteuse. La magnitude d'un délestage est proportionnelle au nombre de nœuds impliqués avec une majorité des deux tiers sanctionnée au maximum (32 ETH). - -Bien que ces scénarios soient peu probables, l’écosystème Ethereum peut atténuer leurs risques en éliminant la distribution des clients sur les nœuds actifs. Idéalement, aucun client de consensus ne devrait pouvoir atteindre 33 % du total des nœuds. - -### Partager les responsabilités {#responsibility} - -Le fait d'avoir des clients majoritaires a aussi un coût humain. Il impose une pression et une responsabilité excessives à une petite équipe de développement. Plus la diversité des clients est limitée, plus la charge de responsabilité est importante pour les développeurs qui maintiennent le client majoritaire. La répartition de cette responsabilité entre plusieurs équipes est bénéfique pour la bonne santé du réseau de nœuds d'Ethereum et de son réseau d'utilisateurs. - -## Diversité actuelle de clients {#current-client-diversity} - -![Graphique Pie montrant la diversité des clients](./client-diversity.png) _Schéma issu des données de [ethernodes.org](https://ethernodes.org) et [clientdiversity.org](https://clientdiversity.org/)_ - -Les deux diagrammes ci-dessus montrent des instantanés de la diversité actuelle de clients pour l'exécution et les couches de consensus (au moment de l'écriture en janvier 2022). La couche d'exécution est dominée par [Geth](https://geth.ethereum.org/), avec [Open Ethereum](https://openethereum.github.io/) en seconde place, [Erigon](https://github.com/ledgerwatch/erigon) troisième et [Nethermind](https://nethermind.io/) quatrième, puis d'autres logiciels représentant moins de 1 % du réseau. Le client le plus couramment utilisé sur la couche de consensus - [Prysm](https://prysmaticlabs.com/#projects) - n'est pas aussi dominant que Geth mais représente toujours plus de 60 % du réseau. [Lighthouse](https://lighthouse.sigmaprime.io/) et [Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) représentent respectivement ~20 % et ~14 %, et les autres clients ne sont que rarement utilisés. - -Les données de la couche d'exécution ont été obtenues à partir de [Ethernodes](https://ethernodes.org) le 23/01/22. Les données pour les clients de consensus ont été obtenues à partir de [Michael Sproul](https://github.com/sigp/blockprint). Les données des clients du Consensus sont plus difficiles à obtenir dans la mesure où les clients de la Chaîne phare ne disposent pas toujours de traces claires susceptibles d'être utilisées pour les identifier. Les données ont été générées à l'aide d'un algorithme de classification qui, parfois, induit en erreur certains des clients minoritaires (voir [ici](https://twitter.com/sproulM_/status/1440512518242197516) pour plus de détails). Dans le diagramme ci-dessus, ces classifications ambiguës sont traitées avec une étiquette de type soit/soit (par exemple Nimbus/Teku). Néanmoins, il est clair que la majorité du réseau utilise Prysm. Les données constituent un instantané sur un ensemble fixe de blocs (dans ce cas, les blocs de la chaîne phare pour les emplacements 2048001 à 2164916) et la domination de Prysm a parfois même été plus élevée, dépassant les 68 %. Bien que ce ne soient que des instantanés, les valeurs du diagramme fournissent un bonne vision générale de l'état actuel de la diversité des clients. - -Des données mises à jour concernant la diversité des clients pour la couche de consensus sont maintenant disponibles sur [clientdiversity.org](https://clientdiversity.org/). - -## Couche d'exécution {#execution-layer} - -Jusqu’à présent, la conversation autour de la diversité des clients s’est principalement concentrée sur la couche de consensus. Cependant, le client d'exécution [Geth](https://geth.ethereum.org) compte actuellement pour environ 85 % de l'ensemble de tous les nœuds. Ce pourcentage est problématique pour les mêmes raisons que pour les clients de consensus. Par exemple, un bogue dans Geth affectant la gestion des transactions ou la construction de blocs d'exécution peut conduire les clients de consensus à finaliser des transactions problématiques ou avec des bogues. Ainsi, Ethereum serait plus sain avec une distribution plus uniforme des clients d'exécution, idéalement sans client représentant plus de 33 % du réseau. - -## Utiliser un client minoritaire {#use-minority-client} - -Pour résoudre le problème de la diversité des clients, il ne suffit pas que les utilisateurs individuels choisissent des clients minoritaires : il faut aussi que les pools de mineurs/validateurs et les institutions comme les principales dapps et les plateformes d'échange changent de clients. Cependant, tous les utilisateurs peuvent collaborer pour corriger le déséquilibre actuel et normaliser l'utilisation de tous les logiciels Ethereum disponibles. Après La Fusion, tous les opérateurs de nœuds seront requis pour exécuter un client d'exécution et un client de consensus. Le choix des combinaisons de clients suggérées ci-dessous contribuera à accroître la diversité des clients. - -### Clients d'exécution {#execution-clients} - -[Besu](https://www.hyperledger.org/use/besu) - -[Nethermind](https://downloads.nethermind.io/) - -[Erigon](https://github.com/ledgerwatch/erigon) - -[Akula](https://akula.app) - -[Go-Ethereum](https://geth.ethereum.org/) - -### Clients de consensus {#consensus-clients} - -[Nimbus](https://nimbus.team/) - -[Lighthouse](https://github.com/sigp/lighthouse) - -[Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) - -[Lodestar](https://github.com/ChainSafe/lodestar) - -[Prysm](https://docs.prylabs.network/docs/getting-started) - -Les utilisateurs techniques peuvent aider à accélérer ce processus en rédigeant plus de tutoriels et de documentation pour les clients minoritaires et ainsi encourager leurs pairs à migrer loin des clients dominants. Des guides pour basculer vers un client de consensus minoritaire sont disponibles sur [clientdiversity.org](https://clientdiversity.org/). - -## Tableaux de bord relatif à la diversité des clients {#client-diversity-dashboards} - -Plusieurs tableaux de bord donnent des statistiques en temps réel de la diversité des clients pour la couche d'exécution et la couche de consensus. - -**Couche de consensus:** - -- [Rated.network](https://www.rated.network/) -- [clientdiversity.org](https://clientdiversity.org/) - -**Couche d'exécution :** - -- [execution-diversity.info](https://execution-diversity.info/) -- [Ethernodes](https://ethernodes.org/) - -## Complément d'information {#further-reading} - -- [Diversité des clients sur la couche de consensus d'Ethereum](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) -- [La Fusion Ethereum : Exécutez le client majoritaire à vos risques et périls !](https://dankradfeist.de/ethereum/2022/03/24/run-the-majority-client-at-your-own-peril.html) – _Dankrad Fiest, 24 mars 2022_ -- [L'importance de la diversité des clients](https://our.status.im/the-importance-of-client-diversity/) -- [Liste des services de nœuds Ethereum](https://ethereumnodes.com/) -- [Cinq raisons au problème de la diversité des clients](https://notes.ethereum.org/@afhGjrKfTKmksTOtqhB9RQ/BJGj7uh08) -- [Diversité Ethereum et comment la résoudre (YouTube)](https://www.youtube.com/watch?v=1hZgCaiqwfU) -- [clientdiversity.org](https://clientdiversity.org/) - -## Sujets connexes {#related-topics} - -- [Exécuter un nœud Ethereum](/run-a-node/) -- [Nœuds et clients](/developers/docs/nodes-and-clients/) diff --git a/src/content/translations/fr/developers/docs/smart-contracts/anatomy/index.md b/src/content/translations/fr/developers/docs/smart-contracts/anatomy/index.md deleted file mode 100644 index e9864f02465..00000000000 --- a/src/content/translations/fr/developers/docs/smart-contracts/anatomy/index.md +++ /dev/null @@ -1,658 +0,0 @@ ---- -title: Anatomie des contrats intelligents -description: "Examen approfondi des composantes d'un contrat intelligent : les fonctions, les données et les variables." -lang: fr ---- - -Les contrats intelligents sont des programmes qui s'exécutent à une adresse sur Ethereum. Ils sont constitués de données et de fonctions qui peuvent s'exécuter lors de la réception d'une transaction. Cette page explique la composition d'un contrat intelligent. - -### Prérequis {#prerequisites} - -Assurez-vous de commencer par lire la page [Contrats intelligents](/developers/docs/smart-contracts/). Ce document part du principe que vous êtes déjà familiarisé avec des langages de programmation comme JavaScript ou Python. - -## Données {#data} - -Toute donnée relative à un contrat doit être affectée à un emplacement : soit `storage` soit `memory`. Il est coûteux de modifier le stockage dans un contrat intelligent. Vous devez donc décider de l'endroit où vous souhaitez conserver vos données. - -### Stockage {#storage} - -Les données persistantes sont appelées stockage et sont représentées par des variables d'état. Ces valeurs sont stockées en permanence sur la blockchain. Vous devez déclarer le type afin que le contrat puisse garder une trace de la quantité de stockage nécessaire sur la blockchain quand il compile. - -```solidity -// Solidity example -contract SimpleStorage { - uint storedData; // State variable - // ... -} -``` - -```python -# Vyper example -storedData: int128 -``` - -Si vous avez déjà programmé des langages orientés objet, vous serez probablement familiarisé avec la plupart des types. Cependant, le type `address` devrait être nouveau pour vous si vous commencez à développer pour Ethereum. - -Un type `address ` peut contenir une adresse Ethereum qui équivaut à 20 octets ou 160 bits, ce qui donne une adresse en notation hexadécimale commençant par 0x. - -Les autres types incluent les : - -- booléens ; -- nombres entiers ; -- numéros de points fixes ; -- tableaux d'octets de taille fixe ; -- tableaux d'octets de taille dynamique ; -- littéraux rationnels et entiers ; -- littéraux de chaîne ; -- nombres hexadécimaux ; -- énumérations. - -Pour plus d'explications, consultez les pages ci-dessous : - -- [Types Vyper](https://vyper.readthedocs.io/en/v0.1.0-beta.6/types.html#value-types) -- [Types Solidity](https://solidity.readthedocs.io/en/latest/types.html#value-types) - -### Mémoire {#memory} - -Les valeurs qui ne sont stockées que pendant la durée de l'exécution d'une fonction de contrat sont appelées variables de mémoire. Celles-ci n'étant pas stockées de façon permanente sur la blockchain, elles sont donc moins chères à utiliser. - -Pour en savoir plus sur la façon dont l'EVM conserve les données (stockage, mémoire et pile) consultez la documentation [Solidity](https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html?highlight=memory#storage-memory-and-the-stack). - -### Variables d'environnement {#environment-variables} - -En plus des variables que vous définissez sur votre contrat, il existent quelques variables globales spéciales. Elles sont principalement utilisées pour fournir des informations sur la blockchain ou la transaction en cours. - -Exemples : - -| **Propriété** | **Variable d'état** | **Description** | -| ----------------- | ------------------- | --------------------------------------- | -| `block.timestamp` | uint256 | Horodatage de la période du bloc actuel | -| `msg.sender` | address | Expéditeur du message (appel en cours) | - -## Fonctions {#functions} - -En termes simples, les fonctions peuvent obtenir ou définir des informations en réponse à des transactions entrantes. - -Il existe deux types d'appels de fonctions : - -- `internal` - Ces fonctions ne créent pas d'appel EVM - - Les fonctions internes et les variables d'état ne peuvent être accédées qu'en interne (c'est-à-dire à partir du contrat actuel ou des contrats qui en découlent) -- `external` - Ces fonctions créent un appel EVM - - Les fonctions externes font partie de l'interface du contrat, ce qui signifie qu'elles peuvent être appelées à partir d'autres contrats et via des transactions. Une fonction externe `f` ne peut pas être appelée en interne (par ex., `f()` ne fonctionne pas, mais `this.f()` fonctionne). - -Elles peuvent également être de type `public` ou `private` - -- Les fonctions `public` peuvent être appelées en interne à l'intérieur du contrat ou à l'extérieur via des messages -- Les fonctions `private` ne sont visibles que pour le contrat dans lequel elles sont définies et non dans les contrats dérivés - -Les fonctions et les variables d'état peuvent être rendues publiques ou privées - -Voici une fonction pour mettre à jour une variable d'état sur un contrat : - -```solidity -// Solidity example -function update_name(string value) public { - dapp_name = value; -} -``` - -- Le paramètre `value` de type `string` est passé dans la fonction : `update_name`. -- Il est déclaré `public`, ce qui signifie que n'importe qui peut y accéder. -- Il n'est pas déclaré comme `view`, il peut donc modifier l'état du contrat - -### Fonctions "view" {#view-functions} - -Ces fonctions promettent de ne pas modifier l’état des données du contrat. Les exemples courants sont les fonctions « getter » - vous pouvez utiliser ceci pour obtenir le solde d'un utilisateur par exemple. - -```solidity -// Solidity example -function balanceOf(address _owner) public view returns (uint256 _balance) { - return ownerPizzaCount[_owner]; -} -``` - -```python -dappName: public(string) - -@view -@public -def readName() -> string: - return dappName -``` - -Voici ce qui est considéré comme une modification d'état : - -1. Écriture dans les variables d'état -2. [Émission d'événements](https://solidity.readthedocs.io/en/v0.7.0/contracts.html#events) -3. [Création d'autres contrats](https://solidity.readthedocs.io/en/v0.7.0/control-structures.html#creating-contracts) -4. Utilisation d'`autodestruct` -5. Envoi d'ether via des appels -6. Appel d'une fonction non marquée `view` ni `pure` -7. Utilisation d'appels de bas niveau -8. Utilisation d'un assemblage en ligne conteant certains opcodes - -### Fonctions « constructor » {#constructor-functions} - -Les fonctions `constructor` ne sont exécutées qu'une seule fois lors du premier déploiement du contrat. Comme `constructor` dans de nombreux langages de programmation basés sur des classes, ces fonctions initialisent souvent les variables d'état à leurs valeurs spécifiées. - -```solidity -// Solidity example -// Initializes the contract's data, setting the `owner` -// to the address of the contract creator. -constructor() public { - // All smart contracts rely on external transactions to trigger its functions. - // `msg` is a global variable that includes relevant data on the given transaction, - // such as the address of the sender and the ETH value included in the transaction. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties - owner = msg.sender; -} -``` - -```python -# Vyper example - -@external -def __init__(_beneficiary: address, _bidding_time: uint256): - self.beneficiary = _beneficiary - self.auctionStart = block.timestamp - self.auctionEnd = self.auctionStart + _bidding_time -``` - -### Fonctions intégrées {#built-in-functions} - -En plus des variables et des fonctions que vous définissez pour votre contrat, il existe des fonctions spéciales intégrées. Exemple le plus évident : - -- `address.send()` - Solidity -- `send(address)` - Vyper - -Celles-ci permettent aux contrats d’envoyer des ETH à d’autres comptes. - -## Fonctions d'écriture {#writing-functions} - -Votre fonction a besoin des éléments suivants : - -- Paramètre variable et type (si elle accepte des paramètres) -- Déclaration de fonction internal/external -- Déclaration de fonction pure/view/payable -- Type de renvoi (si elle renvoie une valeur) - -```solidity -pragma solidity >=0.4.0 <=0.6.0; - -contract ExampleDapp { - string dapp_name; // state variable - - // Called when the contract is deployed and initializes the value - constructor() public { - dapp_name = "My Example dapp"; - } - - // Get Function - function read_name() public view returns(string) { - return dapp_name; - } - - // Set Function - function update_name(string value) public { - dapp_name = value; - } -} -``` - -Un contrat complet pourrait ressembler à cela. Ici la fonction `constructor` fournit une valeur initiale pour la variable `dapp_name`. - -## Événements et journaux {#events-and-logs} - -Les événements vous permettent de communiquer avec votre contrat intelligent depuis votre interface frontend ou d'autres applications abonnées. Lorsqu'une transaction est minée, les contrats intelligents peuvent émettre des événements et écrire des journaux sur la blockchain, que le frontend peut alors traiter. - -## Exemples annotés {#annotated-examples} - -Voici quelques exemples rédigés en Solidity. Si vous souhaitez jouer avec le code, vous pouvez interagir avec dans [Remix](http://remix.ethereum.org). - -### Hello world {#hello-world} - -```solidity -// Specifies the version of Solidity, using semantic versioning. -// Learn more: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma -pragma solidity ^0.5.10; - -// Defines a contract named `HelloWorld`. -// A contract is a collection of functions and data (its state). -// Once deployed, a contract resides at a specific address on the Ethereum blockchain. - // Declares a state variable `message` of type `string`. - // State variables are variables whose values are permanently stored in contract storage. - // The keyword `public` makes variables accessible from outside a contract - // and creates a function that other contracts or clients can call to access the value. - string public message; - - // Similar to many class-based object-oriented languages, a constructor is - // a special function that is only executed upon contract creation. - - // Constructors are used to initialize the contract's data. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constructors - constructor(string memory initMessage) public { - // Accepts a string argument `initMessage` and sets the value - // into the contract's `message` storage variable). - - message = initMessage; - } - - // A public function that accepts a string argument - // and updates the `message` storage variable. - function update(string memory newMessage) public { - message = newMessage; - } -} -``` - -### Jeton {#token} - -```solidity -pragma solidity ^0.5.10; - -contract Token { - // An `address` is comparable to an email address - it's used to identify an account on Ethereum. - // Addresses can represent a smart contract or an external (user) accounts. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#address - address public owner; - - // A `mapping` is essentially a hash table data structure. - // This `mapping` assigns an unsigned integer (the token balance) to an address (the token holder). - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#mapping-types - mapping (address => uint) public balances; - - // Events allow for logging of activity on the blockchain. - // Ethereum clients can listen for events in order to react to contract state changes. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#events - event Transfer(address from, address to, uint amount); - - // Initializes the contract's data, setting the `owner` - // to the address of the contract creator. - constructor() public { - // All smart contracts rely on external transactions to trigger its functions. - - // `msg` is a global variable that includes relevant data on the given transaction, - // such as the address of the sender and the ETH value included in the transaction. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties - owner = msg.sender; - } - - // Creates an amount of new tokens and sends them to an address. - function mint(address receiver, uint amount) public { - // `require` is a control structure used to enforce certain conditions. - // If a `require` statement evaluates to `false`, an exception is triggered, - // which reverts all changes made to the state during the current call. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions - - // Only the contract owner can call this function - require(msg.sender == owner, "You are not the owner."); - - // Enforces a maximum amount of tokens - require(amount < 1e60, "Maximum issuance exceeded"); - - // Increases the balance of `receiver` by `amount` - balances[receiver] += amount; - } - - // Sends an amount of existing tokens from any caller to an address. - function transfer(address receiver, uint amount) public { - // The sender must have enough tokens to send - require(amount <= balances[msg.sender], "Insufficient balance."); - - // Adjusts token balances of the two addresses - balances[msg.sender] -= amount; - balances[receiver] += amount; - - // Emits the event defined earlier - emit Transfer(msg.sender, receiver, amount); - } -} -``` - -### Actif numérique unique {#unique-digital-asset} - -```solidity -pragma solidity ^0.5.10; - -// Imports symbols from other files into the current contract. -// In this case, a series of helper contracts from OpenZeppelin. -// Learn more: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#importing-other-source-files - -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; -import "../node_modules/@openzeppelin/contracts/introspection/ERC165.sol"; -import "../node_modules/@openzeppelin/contracts/math/SafeMath.sol"; - -// The `is` keyword is used to inherit functions and keywords from external contracts. -// In this case, `CryptoPizza` inherits from the `IERC721` and `ERC165` contracts. -// Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#inheritance -contract CryptoPizza is IERC721, ERC165 { - // Uses OpenZeppelin's SafeMath library to perform arithmetic operations safely. - // Learn more: https://docs.openzeppelin.com/contracts/2.x/api/math#SafeMath - using SafeMath for uint256; - - // Constant state variables in Solidity are similar to other languages - // but you must assign from an expression which is constant at compile time. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constant-state-variables - uint256 constant dnaDigits = 10; - uint256 constant dnaModulus = 10 ** dnaDigits; - bytes4 private constant _ERC721_RECEIVED = 0x150b7a02; - - // Struct types let you define your own type - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#structs - struct Pizza { - string name; - uint256 dna; - } - - // Creates an empty array of Pizza structs - Pizza[] public pizzas; - - // Mapping from pizza ID to its owner's address - mapping(uint256 => address) public pizzaToOwner; - - // Mapping from owner's address to number of owned token - mapping(address => uint256) public ownerPizzaCount; - - // Mapping from token ID to approved address - mapping(uint256 => address) pizzaApprovals; - - // You can nest mappings, this example maps owner to operator approvals - mapping(address => mapping(address => bool)) private operatorApprovals; - - // Internal function to create a random Pizza from string (name) and DNA - function _createPizza(string memory _name, uint256 _dna) - // The `internal` keyword means this function is only visible - // within this contract and contracts that derive this contract - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#visibility-and-getters - internal - // `isUnique` is a function modifier that checks if the pizza already exists - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html#function-modifiers - isUnique(_name, _dna) - { - // Adds Pizza to array of Pizzas and get id - uint256 id = SafeMath.sub(pizzas.push(Pizza(_name, _dna)), 1); - - // Checks that Pizza owner is the same as current user - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions - - // note that address(0) is the zero address, - // indicating that pizza[id] is not yet allocated to a particular user. - - assert(pizzaToOwner[id] == address(0)); - - // Maps the Pizza to the owner - pizzaToOwner[id] = msg.sender; - ownerPizzaCount[msg.sender] = SafeMath.add( - ownerPizzaCount[msg.sender], - 1 - ); - } - - // Creates a random Pizza from string (name) - function createRandomPizza(string memory _name) public { - uint256 randDna = generateRandomDna(_name, msg.sender); - _createPizza(_name, randDna); - } - - // Generates random DNA from string (name) and address of the owner (creator) - function generateRandomDna(string memory _str, address _owner) - public - // Functions marked as `pure` promise not to read from or modify the state - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#pure-functions - pure - returns (uint256) - { - // Generates random uint from string (name) + address (owner) - uint256 rand = uint256(keccak256(abi.encodePacked(_str))) + - uint256(_owner); - rand = rand % dnaModulus; - return rand; - } - - // Returns array of Pizzas found by owner - function getPizzasByOwner(address _owner) - public - // Functions marked as `view` promise not to modify state - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#view-functions - view - returns (uint256[] memory) - { - // Uses the `memory` storage location to store values only for the - // lifecycle of this function call. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/introduction-to-smart-contracts.html#storage-memory-and-the-stack - uint256[] memory result = new uint256[](ownerPizzaCount[_owner]); - uint256 counter = 0; - for (uint256 i = 0; i < pizzas.length; i++) { - if (pizzaToOwner[i] == _owner) { - result[counter] = i; - counter++; - } - } - return result; - } - - // Transfers Pizza and ownership to other address - function transferFrom(address _from, address _to, uint256 _pizzaId) public { - require(_from != address(0) && _to != address(0), "Invalid address."); - require(_exists(_pizzaId), "Pizza does not exist."); - require(_from != _to, "Cannot transfer to the same address."); - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - - ownerPizzaCount[_to] = SafeMath.add(ownerPizzaCount[_to], 1); - ownerPizzaCount[_from] = SafeMath.sub(ownerPizzaCount[_from], 1); - pizzaToOwner[_pizzaId] = _to; - - // Emits event defined in the imported IERC721 contract - emit Transfer(_from, _to, _pizzaId); - _clearApproval(_to, _pizzaId); - } - - /** - * Safely transfers the ownership of a given token ID to another address - * If the target address is a contract, it must implement `onERC721Received`, - * which is called upon a safe transfer, and return the magic value - * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; - * otherwise, the transfer is reverted. - */ - function safeTransferFrom(address from, address to, uint256 pizzaId) - public - { - // solium-disable-next-line arg-overflow - this.safeTransferFrom(from, to, pizzaId, ""); - } - - /** - * Safely transfers the ownership of a given token ID to another address - * If the target address is a contract, it must implement `onERC721Received`, - * which is called upon a safe transfer, and return the magic value - * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; - * otherwise, the transfer is reverted. - */ - function safeTransferFrom( - address from, - address to, - uint256 pizzaId, - bytes memory _data - ) public { - this.transferFrom(from, to, pizzaId); - require(_checkOnERC721Received(from, to, pizzaId, _data), "Must implement onERC721Received."); - } - - /** - * Internal function to invoke `onERC721Received` on a target address - * The call is not executed if the target address is not a contract - */ - function _checkOnERC721Received( - address from, - address to, - uint256 pizzaId, - bytes memory _data - ) internal returns (bool) { - if (!isContract(to)) { - return true; - } - - bytes4 retval = IERC721Receiver(to).onERC721Received( - msg.sender, - from, - pizzaId, - _data - ); - return (retval == _ERC721_RECEIVED); - } - - // Burns a Pizza - destroys Token completely - // The `external` function modifier means this function is - // part of the contract interface and other contracts can call it - function burn(uint256 _pizzaId) external { - require(msg.sender != address(0), "Invalid address."); - require(_exists(_pizzaId), "Pizza does not exist."); - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - - ownerPizzaCount[msg.sender] = SafeMath.sub( - ownerPizzaCount[msg.sender], - 1 - ); - pizzaToOwner[_pizzaId] = address(0); - } - - // Returns count of Pizzas by address - function balanceOf(address _owner) public view returns (uint256 _balance) { - return ownerPizzaCount[_owner]; - } - - // Returns owner of the Pizza found by id - function ownerOf(uint256 _pizzaId) public view returns (address _owner) { - address owner = pizzaToOwner[_pizzaId]; - require(owner != address(0), "Invalid Pizza ID."); - return owner; - } - - // Approves other address to transfer ownership of Pizza - function approve(address _to, uint256 _pizzaId) public { - require(msg.sender == pizzaToOwner[_pizzaId], "Must be the Pizza owner."); - pizzaApprovals[_pizzaId] = _to; - emit Approval(msg.sender, _to, _pizzaId); - } - - // Returns approved address for specific Pizza - function getApproved(uint256 _pizzaId) - public - view - returns (address operator) - { - require(_exists(_pizzaId), "Pizza does not exist."); - return pizzaApprovals[_pizzaId]; - } - - /** - * Private function to clear current approval of a given token ID - * Reverts if the given address is not indeed the owner of the token - */ - function _clearApproval(address owner, uint256 _pizzaId) private { - require(pizzaToOwner[_pizzaId] == owner, "Must be pizza owner."); - require(_exists(_pizzaId), "Pizza does not exist."); - if (pizzaApprovals[_pizzaId] != address(0)) { - pizzaApprovals[_pizzaId] = address(0); - } - } - - /* - * Sets or unsets the approval of a given operator - * An operator is allowed to transfer all tokens of the sender on their behalf - */ - function setApprovalForAll(address to, bool approved) public { - require(to != msg.sender, "Cannot approve own address"); - operatorApprovals[msg.sender][to] = approved; - emit ApprovalForAll(msg.sender, to, approved); - } - - // Tells whether an operator is approved by a given owner - function isApprovedForAll(address owner, address operator) - public - view - returns (bool) - { - return operatorApprovals[owner][operator]; - } - - // Takes ownership of Pizza - only for approved users - function takeOwnership(uint256 _pizzaId) public { - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - address owner = this.ownerOf(_pizzaId); - this.transferFrom(owner, msg.sender, _pizzaId); - } - - // Checks if Pizza exists - function _exists(uint256 pizzaId) internal view returns (bool) { - address owner = pizzaToOwner[pizzaId]; - return owner != address(0); - } - - // Checks if address is owner or is approved to transfer Pizza - function _isApprovedOrOwner(address spender, uint256 pizzaId) - internal - view - returns (bool) - { - address owner = pizzaToOwner[pizzaId]; - // Disable solium check because of - // https://github.com/duaraghav8/Solium/issues/175 - // solium-disable-next-line operator-whitespace - return (spender == owner || - this.getApproved(pizzaId) == spender || - this.isApprovedForAll(owner, spender)); - } - - // Check if Pizza is unique and doesn't exist yet - modifier isUnique(string memory _name, uint256 _dna) { - bool result = true; - for (uint256 i = 0; i < pizzas.length; i++) { - if ( - keccak256(abi.encodePacked(pizzas[i].name)) == - keccak256(abi.encodePacked(_name)) && - pizzas[i].dna == _dna - ) { - result = false; - } - } - require(result, "Pizza with such name already exists."); - _; - } - - // Returns whether the target address is a contract - function isContract(address account) internal view returns (bool) { - uint256 size; - // Currently there is no better way to check if there is a contract in an address - // than to check the size of the code at that address. - // Voir https://ethereum.stackexchange.com/a/14016/36603 - // pour plus de détails sur le fonctionnement. - // TODO Vérifiez cela à nouveau avant la version Serenity, car toutes les adresses seront alors contractuelles - // . - // solium-disable-next-line security/no-inline-assembly - assembly { - size := extcodesize(account) - } - return size > 0; - } -} -``` - -## Complément d'information {#further-reading} - -Consultez la documentation Solidity et Vyper pour une vue d'ensemble plus complète des contrats intelligents : - -- [Solidity](https://solidity.readthedocs.io/) -- [Vyper](https://vyper.readthedocs.io/) - -## Sujets connexes {#related-topics} - -- [Contrats intelligents](/developers/docs/smart-contracts/) -- [Machine virtuelle Ethereum (EVM)](/developers/docs/evm/) - -## Tutoriels connexes {#related-tutorials} - -- [Réduire les contrats pour respecter la limite de taille](/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/) _ - Quelques conseil pratiques pour réduire la taille de votre contrat intelligent_ -- [Consigner les données des contrats intelligents avec des événements](/developers/tutorials/logging-events-smart-contracts/) _- Introduction aux événements de contrats intelligents et comment vous pouvez les utiliser pour consigner les données_ -- [Interagir avec d'autres contrats Solidity](/developers/tutorials/interact-with-other-contracts-from-solidity/) _- Comment déployer et interagir avec un contrat intelligent à partir d'un contrat existant_ diff --git a/src/content/translations/fr/developers/docs/standards/tokens/erc-20/index.md b/src/content/translations/fr/developers/docs/standards/tokens/erc-20/index.md deleted file mode 100644 index c8c532ec13d..00000000000 --- a/src/content/translations/fr/developers/docs/standards/tokens/erc-20/index.md +++ /dev/null @@ -1,149 +0,0 @@ ---- -title: Norme de jeton ERC-20 -description: -lang: fr ---- - -## Introduction {#introduction} - -**Qu'est ce qu'un jeton ?** - -Un jeton peut représenter à peu près n'importe quoi sur Ethereum : - -- Des points de réputation sur une plateforme en ligne -- Les compétences d'un personnage de jeu -- Un billet de loterie -- Des actifs financiers, comme une action dans une société -- Une monnaie fiduciaire comme l'EUR -- Une once d'or -- Et plus encore... - -Un écosystème aussi puissant qu'Ethereum doit être géré selon une norme robuste, non ? C'est exactement là que l'ERC-20 joue son rôle ! Cette norme permet aux développeurs de construire des applications de jetons interopérables avec d'autres produits et services. - -**Qu'est-ce que l'ERC-20 ?** - -L'ERC-20 introduit une norme standard pour les Jetons Fongibles. En d'autres termes, ils disposent d'une propriété qui fait que chaque jeton est exactement le même (en termes de type et de valeur) qu'un autre jeton. Par exemple, un jeton ERC-20 agit exactement comme de l'ETH, ce qui signifie que 1 jeton est et sera toujours égal à tous les autres jetons. - -## Prérequis {#prerequisites} - -- [Comptes](/developers/docs/accounts) -- [Contrats intelligents](/developers/docs/smart-contracts/) -- [Normes de jetons](/developers/docs/standards/tokens/) - -## Présentation {#body} - -La demande de commentaires ERC-20, proposée par Fabian Vogelsteller en novembre 2015, est une norme de jeton qui implémente une API pour les jetons au sein des contrats intelligents. - -Exemples de fonctionnalités fournies par ERC-20 : - -- transférer des jetons d'un compte à un autre -- obtenir le solde actuel du jeton d'un compte -- obtenir la quantité totale du jeton disponible sur le réseau -- approuver si un montant de jeton d'un compte peut être dépensé par un compte tiers - -Si un contrat intelligent implémente les méthodes et les événements suivants, il peut être nommé Contrat de jeton ERC-20 et, une fois déployé, sera responsable d'effectuer un suivi des jetons créés sur Ethereum. - -De [EIP-20](https://eips.ethereum.org/EIPS/eip-20) : - -#### Méthodes {#methods} - -```solidity -function name() public view returns (string) -function symbol() public view returns (string) -function decimals() public view returns (uint8) -function totalSupply() public view returns (uint256) -function balanceOf(address _owner) public view returns (uint256 balance) -function transfer(address _to, uint256 _value) public returns (bool success) -function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) -function approve(address _spender, uint256 _value) public returns (bool success) -function allowance(address _owner, address _spender) public view returns (uint256 remaining) -``` - -#### Événements {#events} - -```solidity -event Transfer(address indexed _from, address indexed _to, uint256 _value) -event Approval(address indexed _owner, address indexed _spender, uint256 _value) -``` - -### Exemples {#web3py-example} - -Voyons pourquoi une norme est importante et pourquoi elle nous facilite le contrôle de tout contrat de jeton ERC-20 sur Ethereum. Nous avons juste besoin de l'interface binaire-programme (ABI) du contrat pour créer une interface à n'importe quel jeton ERC-20. Comme vous pouvez le voir ci-dessous, nous utiliserons une ABI simplifiée, pour en faire un exemple facile à comprendre. - -#### Exempl Web3.py {#web3py-example} - -Pour commencer, assurez-vous d'avoir installé la bibliothèque Python [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) : - -``` -pip install web3 -``` - -```python -from web3 import Web3 - - -w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) - -dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI -weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # Wrapped ether (WETH) - -acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11" # Uniswap V2: DAI 2 - -# This is a simplified Contract Application Binary Interface (ABI) of an ERC-20 Token Contract. -# It will expose only the methods: balanceOf(address), decimals(), symbol() and totalSupply() -simplified_abi = [ - { - 'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], - 'name': 'balanceOf', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'decimals', - 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'symbol', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'totalSupply', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - } -] - -dai_contract = w3.eth.contract(address=w3.to_checksum_address(dai_token_addr), abi=simplified_abi) -symbol = dai_contract.functions.symbol().call() -decimals = dai_contract.functions.decimals().call() -totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals -addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals - -# DAI -print("===== %s =====" % symbol) -print("Total Supply:", totalSupply) -print("Addr Balance:", addr_balance) - -weth_contract = w3.eth.contract(address=w3.to_checksum_address(weth_token_addr), abi=simplified_abi) -symbol = weth_contract.functions.symbol().call() -decimals = weth_contract.functions.decimals().call() -totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals -addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals - -# WETH -print("===== %s =====" % symbol) -print("Total Supply:", totalSupply) -print("Addr Balance:", addr_balance) -``` - -## Complément d'information {#further-reading} - -- [EIP-20 : ERC-20 Token Standard](https://eips.ethereum.org/EIPS/eip-20) -- [OpenZeppelin - Tokens](https://docs.openzeppelin.com/contracts/3.x/tokens#ERC20) -- [OpenZeppelin - Implémentation ERC-20](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) -- [Alchemy - Guide des jetons ERC20 Solidity](https://www.alchemy.com/overviews/erc20-solidity) diff --git a/src/content/translations/fr/developers/docs/standards/tokens/erc-721/index.md b/src/content/translations/fr/developers/docs/standards/tokens/erc-721/index.md deleted file mode 100644 index 0b865b316a8..00000000000 --- a/src/content/translations/fr/developers/docs/standards/tokens/erc-721/index.md +++ /dev/null @@ -1,244 +0,0 @@ ---- -title: Norme de jeton non fongible ERC-721 -description: -lang: fr ---- - -## Introduction {#introduction} - -**Qu'est-ce qu'un jeton non fongible (NFT) ?** - -Un NFT est utilisé pour identifier quelque chose ou quelqu'un d'une façon unique. Ce type de jeton est parfait pour une utilisation sur les plateformes proposant des objets de collection, clés d'accès, billets de loterie, sièges numérotés pour concerts et matchs sportifs, etc. Ce type spécial de jeton ayant des possibilités incroyables, il mérite donc une norme adéquate, comme l'ERC-721. - -**Qu'est-ce que l'ERC-721 ?** - -L'ERC-721 introduit une norme pour les NFT. En d'autres termes, ce type de jeton est unique et peut avoir une valeur différente de celle d'un autre jeton du même contrat intelligent, peut-être en raison de son âge, de sa rareté ou du visuel qui lui est associé. Visuel ? Vous avez dit visuel ? - -Oui ! Tous les NFT ont une variable `uint256` appelée `tokenId` ainsi, pour tout contrat ERC-721, la paire `contract address, uint256 tokenId` doit être globalement unique. Cela dit, une dApp peut avoir un « convertisseur » qui utilisent le `tokenld` comme entrée et affiche une image de quelque chose de cool, comme des zombies, des armes, des compétences ou des incroyables chatons ! - -## Prérequis {#prerequisites} - -- [Comptes](/developers/docs/accounts/) -- [Contrats intelligents](/developers/docs/smart-contracts/) -- [Normes de jetons](/developers/docs/standards/tokens/) - -## Présentation {#body} - -L'ERC-721 (pour "Ethereum Request for Comments 721") proposé par William Entriken, Dieter Shirley, Jacob Evans, Nastassia Sachs en janvier 2018, est une norme de jeton non fongible qui implémente une API pour les jetons des contrats intelligents. - -Elle fournit des fonctionnalités permettant de transférer des jetons d'un compte à un autre, ou d'obtenir le solde actuel d'un compte en jetons, le nom du propriétaire d'un jeton spécifique et le nombre total de jetons disponibles sur le réseau. En plus de celles-ci, il en existe d'autres pour, par exemple, approuver que des jetons provenant d'un compte soient déplacés par un compte tiers. - -Si un contrat intelligent implémente les méthodes et les événements suivants, il peut être nommé Contrat de jeton non fongible ERC-721 et, une fois déployé, sera responsable d'effectuer un suivi des jetons créés sur Ethereum. - -De [EIP-721](https://eips.ethereum.org/EIPS/eip-721) : - -#### Méthodes {#methods} - -```solidity - function balanceOf(address _owner) external view returns (uint256); - function ownerOf(uint256 _tokenId) external view returns (address); - function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; - function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; - function transferFrom(address _from, address _to, uint256 _tokenId) external payable; - function approve(address _approved, uint256 _tokenId) external payable; - function setApprovalForAll(address _operator, bool _approved) external; - function getApproved(uint256 _tokenId) external view returns (address); - function isApprovedForAll(address _owner, address _operator) external view returns (bool); -``` - -#### Événements {#events} - -```solidity - event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); - event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); - event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); -``` - -### Exemples {#web3py-example} - -Voyons comment une norme peut être si importante pour nous faciliter le contrôle de tout contrat de jeton ERC-721 sur Ethereum. Nous avons juste besoin de l'interface binaire-programme (ABI) du contrat pour créer une interface à n'importe quel jeton ERC-721. Comme vous pouvez le voir ci-dessous, nous utiliserons une ABI simplifiée, pour en faire un exemple de faible friction. - -#### Exemple Web3.py {#web3py-example} - -Pour commencer, assurez-vous d'avoir installé la bibliothèque Python [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation): - -``` -pip install web3 -``` - -```python -from web3 import Web3 -from web3._utils.events import get_event_data - - -w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) - -ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # CryptoKitties Contract - -acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # CryptoKitties Sales Auction - -# This is a simplified Contract Application Binary Interface (ABI) of an ERC-721 NFT Contract. -# It will expose only the methods: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply() -simplified_abi = [ - { - 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], - 'name': 'balanceOf', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'name', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], - 'name': 'ownerOf', - 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'symbol', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'totalSupply', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, -] - -ck_extra_abi = [ - { - 'inputs': [], - 'name': 'pregnantKitties', - 'outputs': [{'name': '', 'type': 'uint256'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [{'name': '_kittyId', 'type': 'uint256'}], - 'name': 'isPregnant', - 'outputs': [{'name': '', 'type': 'bool'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - } -] - -ck_contract = w3.eth.contract(address=w3.to_checksum_address(ck_token_addr), abi=simplified_abi+ck_extra_abi) -name = ck_contract.functions.name().call() -symbol = ck_contract.functions.symbol().call() -kitties_auctions = ck_contract.functions.balanceOf(acc_address).call() -print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}") - -pregnant_kitties = ck_contract.functions.pregnantKitties().call() -print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}") - -# Using the Transfer Event ABI to get info about transferred Kitties. -tx_event_abi = { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'from', 'type': 'address'}, - {'indexed': False, 'name': 'to', 'type': 'address'}, - {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}], - 'name': 'Transfer', - 'type': 'event' -} - -# We need the event's signature to filter the logs -event_signature = w3.keccak(text="Transfer(address,address,uint256)").hex() - -logs = w3.eth.get_logs({ - "fromBlock": w3.eth.block_number - 120, - "address": w3.to_checksum_address(ck_token_addr), - "topics": [event_signature] -}) - -# Notes: -# - Increase the number of blocks up from 120 if no Transfer event is returned. -# - If you didn't find any Transfer event you can also try to get a tokenId at: -# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events -# Click to expand the event's logs and copy its "tokenId" argument -recent_tx = [get_event_data(w3.codec, tx_event_abi, log)["args"] for log in logs] - -if recent_tx: - kitty_id = recent_tx[0]['tokenId'] # Paste the "tokenId" here from the link above - is_pregnant = ck_contract.functions.isPregnant(kitty_id).call() - print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}") -``` - -Le contrat CryptoKitties comporte des événements intéressants en dehors des événements standards. - -Vérifions deux d'entre eux, `Pregnant` et `Birth`. - -```python -# Using the Pregnant and Birth Events ABI to get info about new Kitties. -ck_extra_events_abi = [ - { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'owner', 'type': 'address'}, - {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, - {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, - {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}], - 'name': 'Pregnant', - 'type': 'event' - }, - { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'owner', 'type': 'address'}, - {'indexed': False, 'name': 'kittyId', 'type': 'uint256'}, - {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, - {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, - {'indexed': False, 'name': 'genes', 'type': 'uint256'}], - 'name': 'Birth', - 'type': 'event' - }] - -# We need the event's signature to filter the logs -ck_event_signatures = [ - w3.keccak(text="Pregnant(address,uint256,uint256,uint256)").hex(), - w3.keccak(text="Birth(address,uint256,uint256,uint256,uint256)").hex(), -] - -# Here is a Pregnant Event: -# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog -pregnant_logs = w3.eth.get_logs({ - "fromBlock": w3.eth.block_number - 120, - "address": w3.to_checksum_address(ck_token_addr), - "topics": [ck_event_signatures[0]] -}) - -recent_pregnants = [get_event_data(w3.codec, ck_extra_events_abi[0], log)["args"] for log in pregnant_logs] - -# Here is a Birth Event: -# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a -birth_logs = w3.eth.get_logs({ - "fromBlock": w3.eth.block_number - 120, - "address": w3.to_checksum_address(ck_token_addr), - "topics": [ck_event_signatures[1]] -}) - -recent_births = [get_event_data(w3.codec, ck_extra_events_abi[1], log)["args"] for log in birth_logs] -``` - -## NFT populaires {#popular-nfts} - -- [Etherscan NFT Tracker](https://etherscan.io/tokens-nft) répertorie les NFT les plus importants sur Ethereum en termes de volume de transferts. -- [CryptoKitties](https://www.cryptokitties.co/) est un jeu axé sur des créatures de collection adorables dont on peut faire l'élevage et que nous appelons CryptoKitties. -- [Sorare](https://sorare.com/) est un jeu de football mondial où vous pouvez collectionner des objets en édition limitée, gérer vos équipes et concourir pour gagner des prix. -- [Ethereum Name Service (ENS)](https://ens.domains/) offre un moyen sécurisé et décentralisé d'adresser des ressources à la fois sur et hors de la blockchain en utilisant des noms simples et lisibles. -- [POAP](https://poap.xyz) fournit des NFT gratuits aux personnes qui assistent à des événements ou accomplissent des actions spécifiques. Les POAP sont libres de création et de distribution. -- [Unstoppable Domains](https://unstoppabledomains.com/) est une société basée à San Francisco, qui construit des domaines sur des blockchains. Les domaines de blockchains remplacent les adresses des cryptomonnaies par des noms lisibles et peuvent être utilisés pour activer des sites Web résistants à la censure. -- [Gods Unchained Cards](https://godsunchained.com/) est un jeu de cartes à collectionner (JCC) de la blockchain Ethereum, qui utilise des NFT pour apporter une vraie propriété aux actifs en jeu. -- [Bored Ape Yacht Club](https://boredapeyachtclub.com) est une collection de 10 000 NFT uniques qui, en plus d'être une œuvre d'art remarquablement rare, agit en tant que jeton d’adhésion au club en fournissant aux membres des atouts et des avantages qui augmentent au fil du temps grâce aux efforts de la communauté. - -## Complément d'information {#further-reading} - -- [EIP-721: ERC-721 Non-Fungible Token Standard](https://eips.ethereum.org/EIPS/eip-721) -- [OpenZeppelin - ERC-721 Docs](https://docs.openzeppelin.com/contracts/3.x/erc721) -- [OpenZeppelin - Implémentation ERC-721](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) -- [API NFT d'Alchemy](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) diff --git a/src/content/translations/fr/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md b/src/content/translations/fr/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md deleted file mode 100644 index 8a59082b9d5..00000000000 --- a/src/content/translations/fr/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md +++ /dev/null @@ -1,298 +0,0 @@ ---- -title: "Waffle: Bouchonnage dynamique et tests de contrats" -description: Tutoriel Waffle avancé pour utiliser le bouchonnage dynamique et tester les appels de contrat -author: "Daniel Izdebski" -tags: - - "waffle" - - "contrats intelligents" - - "solidity" - - "test" - - "bouchonnage" -skill: intermediate -lang: fr -published: 2020-11-14 ---- - -## À quoi sert ce tutoriel ? {#what-is-this-tutorial-about} - -Dans ce tutoriel, vous apprendrez comment : - -- utiliser le bouchonnage dynamique -- tester les interactions entre contrats intelligents - -Prérequis : - -- vous savez déjà écrire un simple contrat intelligent en `Solidity` -- vous vous débrouillez en `JavaScript` et en `TypeScript` -- vous avez fait d'autres tutoriels `Waffle` ou vous connaissez deux ou trois choses à ce sujet - -## Bouchonnage dynamique {#dynamic-mocking} - -Pourquoi le bouchonnage dynamique est-il utile ? Eh bien, il nous permet de rédiger des tests unitaires plutôt que des tests d'intégration. Qu'est-ce que cela signifie ? Cela signifie que nous n'avons pas à nous soucier des dépendances des contrats intelligents, donc que nous pouvons tous les tester de façon isolée. Laissez-moi vous montrer comment procéder. - -### **1. Projet** {#1-project} - -Avant de commencer, nous avons besoin de préparer un simple projet node.js : - -```bash -mkdir dynamic-mocking -cd dynamic-mocking -mkdir contracts src - -yarn init -# or if you're using npm -npm init -``` - -Commençons par ajouter typescript et les dépendances de test - mocha & chai : - -```bash -yarn add --dev @types/chai @types/mocha chai mocha ts-node typescript -# or if you're using npm -npm install @types/chai @types/mocha chai mocha ts-node typescript --save-dev -``` - -Maintenant, ajoutons `Waffle` et `ethers`: - -```bash -yarn add --dev ethereum-waffle ethers -# or if you're using npm -npm install ethereum-waffle ethers --save-dev -``` - -La structure de votre projet devrait ressembler à ceci : - -``` -. -├── contracts -├── package.json -└── test -``` - -### **2. Contrat intelligent** {#2-smart-contract} - -Pour démarrer un bouchonnage dynamique, nous avons besoin d'un contrat intelligent avec des dépendances. Ne t'inquiètes pas, nous assurons tes arrières ! - -Voici un contrat intelligent simple écrit en `Solidity` dont le seul but est de vérifier si nous sommes riches. Il utilise un jeton ERC20 pour vérifier si nous avons suffisamment de jetons. Mettez-le dans `./contracts/AmIRichAlready.sol`. - -```solidity -pragma solidity ^0.6.2; - -interface IERC20 { - function balanceOf(address account) external view returns (uint256); -} - -contract AmIRichAlready { - IERC20 private tokenContract; - uint public richness = 1000000 * 10 ** 18; - - constructor (IERC20 _tokenContract) public { - tokenContract = _tokenContract; - } - - function check() public view returns (bool) { - uint balance = tokenContract.balanceOf(msg.sender); - return balance > richness; - } -} -``` - -Comme nous voulons utiliser le bouchonnage dynamique, nous n'avons pas besoin de tout l'ERC20, c'est pourquoi nous utilisons l'interface IERC20 avec une seule fonction. - -Il est temps de créer ce contrat ! Pour cela, nous utiliserons le `Waffle`. Tout d'abord, nous allons créer un simple fichier de configuration `waffle.json` qui spécifie les options de compilation. - -```json -{ - "compilerType": "solcjs", - "compilerVersion": "0.6.2", - "sourceDirectory": "./contracts", - "outputDirectory": "./build" -} -``` - -Nous sommes désormais prêts à construire le contrat avec Waffle : - -```bash -npx waffle -``` - -Facile, n'est-ce pas? Dans le dossier `build/`, deux fichiers correspondant au contrat et à l'interface apparaissent. Nous les utiliserons plus tard pour les tests. - -### **3. Tests** {#3-testing} - -Nous allons créer un fichier appelé `AmIRichAlready.test.ts` pour le test actuel. Tout d'abord, nous devons gérer les importations. Nous en aurons besoin pour plus tard: - -```typescript -import { expect, use } from "chai" -import { Contract, utils, Wallet } from "ethers" -import { - deployContract, - deployMockContract, - MockProvider, - solidity, -} from "ethereum-waffle" -``` - -Sauf pour les dépendances JS, nous devons importer le contrat et l'interface précédemment créés : - -```typescript -import IERC20 from "../build/IERC20.json" -import AmIRichAlready from "../build/AmIRichAlready.json" -``` - -Waffle utilise `chai` pour le test. Cependant, avant de pouvoir l'utiliser, nous devons injecter les matchers de Waffle dans le chai lui-même : - -```typescript -use(solidity) -``` - -Nous devons implémenter la fonction `beforeEach()` qui réinitialisera l'état du contrat avant chaque test. Réfléchissons d'abord à ce dont nous avons besoin. Pour déployer un contrat, nous avons besoin de deux choses: un wallet et un contrat ERC20 déployé pour le passer comme argument pour le contrat `AmIRichAlready`. - -Premièrement, créons nous un portefeuille: - -```typescript -const [wallet] = new MockProvider().getWallets() -``` - -Ensuite, nous devons déployer un contrat ERC20. Voici la partie délicate - nous n'avons qu'une seule interface. C'est la partie où Waffle vient nous sauver. Waffle a une fonction magique `deployMockContract()` qui crée un contrat en utilisant uniquement le _abi_ de l'interface : - -```typescript -const mockERC20 = await deployMockContract(wallet, IERC20.abi) -``` - -Maintenant, avec le wallet et l'ERC20 déployé, nous pouvons continuer et déployer le contrat `AmIRichAlready`: - -```typescript -const contract = await deployContract(wallet, AmIRichAlready, [ - mockERC20.address, -]) -``` - -Avec tout cela, notre fonction `beforeEach()` est terminée. Pour l'instant, votre fichier `AmIRichAlready.test.ts` devrait ressembler à ceci : - -```typescript -import { expect, use } from "chai" -import { Contract, utils, Wallet } from "ethers" -import { - deployContract, - deployMockContract, - MockProvider, - solidity, -} from "ethereum-waffle" - -import IERC20 from "../build/IERC20.json" -import AmIRichAlready from "../build/AmIRichAlready.json" - -use(solidity) - -describe("Am I Rich Already", () => { - let mockERC20: Contract - let contract: Contract - let wallet: Wallet - - beforeEach(async () => { - ;[wallet] = new MockProvider().getWallets() - mockERC20 = await deployMockContract(wallet, IERC20.abi) - contract = await deployContract(wallet, AmIRichAlready, [mockERC20.address]) - }) -}) -``` - -Écrivons le premier test pour le contrat `AmIRichalready`. De quoi pensez-vous que notre test devrait traiter? Ouais, vous avez raison! Nous devrions vérifier si nous sommes déjà riches :) - -Mais attendez une seconde. Comment notre contrat fictif saura-t-il quelles valeurs retourner? Nous n'avons implémenté aucune logique pour la fonction `balanceOf()`. Là encore, Waffle peut nous aider. Notre contrat fictif a de nouveaux trucs fantaisistes maintenant : - -```typescript -await mockERC20.mock..returns() -await mockERC20.mock..withArgs().returns() -``` - -Avec cette connaissance, nous pouvons enfin écrire notre premier test : - -```typescript -it("returns false if the wallet has less than 1000000 tokens", async () => { - await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) - expect(await contract.check()).to.be.equal(false) -}) -``` - -Décomposons ce test en parties : - -1. Nous avons fixé notre contrat fictif ERC20 pour toujours retourner le solde de 999999 jetons. -2. Vérifiez si la méthode `contract.check()` retourne `false`. - -Nous sommes prêts à allumer la bête : - -![Un test réussi](test-one.png) - -Alors le test fonctionne, mais... il y a encore des choses à améliorer. La fonction `balanceOf()` retournera toujours 99999. Nous pouvons l'améliorer en spécifiant un portefeuille pour lequel la fonction devrait retourner quelque chose - tout comme un contrat réel : - -```typescript -it("returns false if the wallet has less than 1000001 tokens", async () => { - await mockERC20.mock.balanceOf - .withArgs(wallet.address) - .returns(utils.parseEther("999999")) - expect(await contract.check()).to.be.equal(false) -}) -``` - -Jusqu'à présent, nous avons testé seulement le cas où nous ne sommes pas assez riche. Essayons l'inverse: - -```typescript -it("returns true if the wallet has at least 1000001 tokens", async () => { - await mockERC20.mock.balanceOf - .withArgs(wallet.address) - .returns(utils.parseEther("1000001")) - expect(await contract.check()).to.be.equal(true) -}) -``` - -Vous exécutez les tests... - -![Deux tests réussis](test-two.png) - -Et voici où tu en es! Notre contrat semble fonctionner comme prévu :) - -## Test des appels de contrat {#testing-contract-calls} - -Résumons ce qui a été fait jusqu'à présent. Nous avons testé la fonctionnalité de notre contrat `AmIRichalready` et il semble qu'il fonctionne correctement. Cela signifie que nous avons terminé, n'est-ce pas? Pas exactement ! Waffle nous permet de tester encore plus notre contrat. Mais comment exactement ? Eh bien, dans l'arsenal de Waffle, il y a une correspondance entre `calledOnContract()` et `calledOnContractWith()`. Cela va nous permettre de vérifier si notre contrat a appelé le contrat fictif ERC20. Voici un test de base avec l'une de ces correspondance: - -```typescript -it("checks if contract called balanceOf on the ERC20 token", async () => { - await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) - await contract.check() - expect("balanceOf").to.be.calledOnContract(mockERC20) -}) -``` - -Nous pouvons aller encore plus loin et améliorer ce test avec l'autre matcher dont nous vous avons parlé: - -```typescript -it("checks if contract called balanceOf with certain wallet on the ERC20 token", async () => { - await mockERC20.mock.balanceOf - .withArgs(wallet.address) - .returns(utils.parseEther("999999")) - await contract.check() - expect("balanceOf").to.be.calledOnContractWith(mockERC20, [wallet.address]) -}) -``` - -Vérifions si les tests sont corrects : - -![Trois tests réussis](test-three.png) - -Super, tous les tests sont verts. - -Tester des appels de contrats avec Waffle est super facile. Et voici la meilleure partie. Ces matchers fonctionnent à la fois avec des contrats normaux et fictifs ! C'est parce que Waffle enregistre et filtre les appels EVM plutôt que d'injecter du code, comme c'est le cas des bibliothèques de test populaires pour d'autres technologies. - -## La fin {#the-finish-line} - -Félicitations ! Maintenant vous savez comment utiliser Waffle pour tester dynamiquement les appels de contrats et les contrats fictifs. Il y a beaucoup plus de fonctionnalités intéressantes à découvrir. Je recommande de plonger dans la documentation de Waffle. - -La documentation Waffle est disponible [here](https://ethereum-waffle.readthedocs.io/). - -Le code source de ce tutoriel est disponible [ici](https://github.com/EthWorks/Waffle/tree/master/examples/dynamic-mocking-and-testing-calls). - -Voici d'autres tutoriels qui pourraient vous intéresser : - -- [Tester des contrats intelligents avec Waffle](/developers/tutorials/testing-smart-contract-with-waffle/) diff --git a/src/content/translations/fr/history/index.md b/src/content/translations/fr/history/index.md deleted file mode 100644 index d48904580c9..00000000000 --- a/src/content/translations/fr/history/index.md +++ /dev/null @@ -1,516 +0,0 @@ ---- -title: Histoire et fourches d'Ethereum -description: Historique de la blockchain Ethereum, y compris les avancées majeures, les événements clés et les fourches. -lang: fr -sidebarDepth: 1 ---- - -# Historique d'Ethereum {#the-history-of-ethereum} - -Chronologie de tous les jalons, fourches et mises à jour majeures de la blockchain Ethereum. - - - -Les forks existent lorsque des mises à jour ou des changements techniques majeurs doivent être effectués sur le réseau – ils proviennent généralement des Propositions d'amélioration d'Ethereum (EIP) et modifient les « règles » du protocole. - -Lorsque des mises à niveau des logiciels traditionnels contrôlés centralement sont nécessaires, la société publie simplement une nouvelle version pour l'utilisateur final. Les blockchains fonctionnent différemment parce qu'il n'existe pas de propriété centralisée. Les clients Ethereum doivent mettre à jour leur logiciel pour implémenter les nouvelles règles de la fourche. En outre, les créateurs de blocs (les "mineurs" dans l'univers des preuves de travail, les "validateurs" dans celui des preuves d'enjeu) et les nœuds doivent créer des blocs et les valider conformément aux nouvelles règles. En savoir plus sur les mécanismes de consensus - -Ces changements de règles peuvent créer une scission temporaire dans le réseau. De nouveaux blocs peuvent être produits selon les nouvelles règles ou les anciennes. Les fourches font généralement l'objet d'un accord à l'avance afin que les clients adoptent les changements à l'unisson et que la fourche contenant les mises à niveau devienne la chaîne principale. Toutefois, dans de rares cas, les désaccords sur les forks peuvent causer une séparation permanente du réseau – plus particulièrement la création d'Ethereum Classic avec le fork DAO. - - - -Passer directement à l'information sur certaines des mises à jour passées particulièrement importantes : [La Chaîne phare](/roadmap/beacon-chain/); [La Fusion](/roadmap/merge/); et [EIP-1559](#london) - -Vous cherchez les prochaines mises à jour de protocole ? [Découvrez les mises à jour à venir sur la feuille de route Ethereum](/roadmap/). - - - -## 2023 {#2023} - -### Shanghai {#shanghai} - - - -#### Résumé {#shanghai-summary} - -La mise à jour Shanghai a ouvert la voie à des opérations de retrait et de basculement vers la couche d'exécution Couplée à la mise à jour Capella, cette mise à jour permet aux blocs d'accepter des opérations de retrait, permettant ainsi aux validateurs de retirer leur ETH de la chaîne phare et de le basculer vers la couche d'exécution. - - - -
    -
  • EIP-3651Démarre l'adresse COINBASE
  • -
  • EIP-3855Nouvelle instruction PUSH0
  • -
  • EIP-3860Limite et initcode à compteur
  • -
  • EIP-4895Retraits de la chaîne phare en tant qu'opérations
  • -
  • L'EIP-6049 - Désapprouve SELFDESTRUCT
  • -
- -
- -- [Lire les spécificités de la mise à jour Shanghai](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/shanghai.md) - ---- - -### Capella {#capella} - - - -#### Résumé {#capella-summary} - -La mise à jour Capella est la troisième mise à jour majeure vers la couche de consensus (Chaine phare). Elle a permis d'effectuer des retraits de mise en jeu. Capella est entrée en action en même temps que la mise à niveau de la couche d'exécution, Shanghai, et a activé la fonctionnalité de retrait de mise en jeu. - -Cette mise à jour de la couche de consensus a permis aux validateurs, qui n'avaient pas fourni de certificats de retrait lors du premier dépôt de le faire, et donc d'effectuer des retraits. - -La mise à jour a également permis la mise en place d'une fonctionnalité de balayage automatique de compte, qui traite continuellement les comptes de validateur pour tout paiement de récompenses ou retrait intégral disponible. - -- [En savoir plus sur les retraits de mise en jeu](/staking/withdrawals/). -- [Lire les spécifications de la mise à jour Capella](https://github.com/ethereum/consensus-specs/blob/dev/specs/capella/) - - - -## 2022 {#2022} - -### Paris (La Fusion) {#paris} - - - -#### Résumé {#paris-summary} - -La mise à jour de Paris a été déclenchée par le passage de la blockchain de preuve de travail à une [difficulté totale finale](/glossary/#terminal-total-difficulty) de 5875000000000000000. Cela s'est produit au bloc 15537393 le 15 septembre 2022, déclenchant la mise à jour du bloc suivant. Paris était la transition vers la [La Fusion](/roadmap/merge/) : sa principale fonctionnalité était de désactiver l'algorithme de minage [preuve de travail](/developers/docs/consensus-mechanisms/pow) et sa logique de consensus associée et d'activer la [preuve d'enjeu](/developers/docs/consensus-mechanisms/pos) à la place. Paris lui-même était une mise à jour vers les [clients d'exécution](/developers/docs/nodes-and-clients/#execution-clients) (équivalent de Bellatrix sur la couche de consensus) qui leur permettait de recevoir des instructions depuis leurs [clients de consensus](/developers/docs/nodes-and-clients/#consensus-clients) connectés. Cela nécessitait d'activer un nouvel ensemble de méthodes internes d'API, collectivement connues sous le nom d'[API Moteur](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md). C'est sans doute la mise à jour la plus significative de l'histoire d'Ethereum depuis [Homestead](#homestead) ! - -- [Lisez la spécification de la mise à jour Paris](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/paris.md) - - - -
    -
  • EIP-3675Mise à niveau du consensus vers la preuve d'enjeu
  • -
  • L'EIP-4399Supplante le code d'opération DIFFICULTY par PREVRANDAO
  • -
- -
- ---- - -### Bellatrix {#bellatrix} - - - -#### Résumé {#bellatrix-summary} - -La mise à jour de Bellatrix était la seconde mise à jour planifiée pour la [Chaîne Phare](/roadmap/beacon-chain), préparant la chaîne à [La Fusion](/roadmap/merge/). Elle porte les pénalités de validateur à leurs valeurs maximales en cas d'inactivité ou d'infractions sanctionnables. Bellatrix inclut également une mise à jour des règles de choix de fourche pour préparer la chaîne à La Fusion et à la transition du dernier bloc de preuve de travail vers le premier bloc de preuve d'enjeu. Cela inclut la sensibilisation des clients de consensus à la [difficulté totale du terminal](/glossary/#terminal-total-difficulty) de 5875000000000000000. - -- [Lire les spécifications de la mise à niveau Bellatrix](https://github.com/ethereum/consensus-specs/tree/dev/specs/bellatrix) - ---- - -### Gray Glacier {#gray-glacier} - - - -#### Résumé {#gray-glacier-summary} - -La mise à niveau Gray Glacier a retardé le déclenchement de la [bombe de difficulté](/glossary/#difficulty-bomb) de trois mois. Il s'agit de la seule modification apportée par cette mise à niveau. En essence, elle est donc très semblable aux mises à niveau [Arrow Glacier](#arrow-glacier) et [Muir Glacier](#muir-glacier). Des changements similaires avaient également été effectués lors des mises à niveau [Byzantium](#byzantium), [Constantinople](#constantinople) et [London](#london). - -- [Blog de l'Ethereum Foundation - Annonce de la mise à niveau Gray Glacier](https://blog.ethereum.org/2022/06/16/gray-glacier-announcement/) - - - -
    -
  • EIP-5133repousse l'explosion de la bombe de difficulté d'ici à septembre 2022
  • -
- -
- - - -## 2021 {#2021} - -### Arrow Glacier {#arrow-glacier} - - - -#### Résumé {#arrow-glacier-summary} - -La mise à niveau Arrow Glacier a retardé le déclenchement de la [bombe de difficulté](/glossary/#difficulty-bomb) de plusieurs mois. Il s'agit de la seule modification apportée par cette mise à niveau. En essence, elle est donc très semblable à la mise à niveau [Muir Glacier](#muir-glacier). Des changements similaires avaient également été effectués lors des mises à niveau [Byzantium](#byzantium), [Constantinople](#constantinople) et [London](#london). - -- [Blog de l'Ethereum Foundation - Annonce de la mise à niveau Arrow Glacier](https://blog.ethereum.org/2021/11/10/arrow-glacier-announcement/) -- [Ethereum Cat Herders - Mise à niveau Ethereum Arrow Glacier](https://medium.com/ethereum-cat-herders/ethereum-arrow-glacier-upgrade-e8d20fa4c002) - - - -
    -
  • EIP-4345reporte la bombe de difficulté jusqu'en juin 2022
  • -
- -
- ---- - -### Altair {#altair} - - - -#### Résumé {#altair-summary} - -La mise à niveau Altair était la première mise à niveau répertoriée pour la [chaîne phare](/roadmap/beacon-chain). La prise en charge des « comités de synchronisation » a été ajoutée, autorisant d'une part les clients légers et augmentant d'autre part les pénalités d'inactivité et de délestage des validateurs à mesure que le système évoluait vers la fusion. - -- [Lire les spécifications de la mise à niveau Altair](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) - -#### Anecdote ! {#altair-fun-fact} - -Altair a été la première mise à jour majeure du réseau à disposer d'un délai de mise en œuvre précis. Toutes les mises à niveau antérieures étaient basées sur un numéro de bloc déclaré sur la chaîne de preuve de travail, dans laquelle les durées de blocage varient. La chaîne phare ne nécessite pas de résoudre de preuve de travail, mais fonctionne sur la base d'un système de périodes composées de 32 créneaux de 12 secondes pendant lesquels les validateurs peuvent proposer des blocs. C'est pourquoi nous savions exactement quand nous atteindrions l'époque 74 240 et la date de sortie d'Altair ! - -- [Durée de blocage](/developers/docs/blocks/#block-time) - ---- - -### London {#london} - - - -#### Résumé {#london-summary} - -La mise à niveau London a introduit [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559), qui a réorganisé le marché des frais de transaction, ainsi que des changements dans le traitement des remboursements de gaz et le calendrier [Ice Age](/glossary/#ice-age). - -- [Êtes-vous un développeur d'applications décentralisées ? Assurez-vous de mettre à niveau vos bibliothèques et vos outils.](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/london-ecosystem-readiness.md) -- [Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2021/07/15/london-mainnet-announcement/) -- [Lire l'explication du site Ethereum Cat Herders](https://medium.com/ethereum-cat-herders/london-upgrade-overview-8eccb0041b41) - - - -
    -
  • EIP-1559améliore le marché des frais de transaction
  • -
  • EIP-3198permet le renvoi de BASEFEE depuis un bloc
  • -
  • EIP-3529 - réduit les remboursements de gas associés aux opérations de la machine virtuelle d'Ethereum (EVM)
  • -
  • EIP-3541 - empêche le déploiement de contrats commençant par 0xEF
  • -
  • EIP-3554prévoit de repousser l'Ce Age jusqu'au mois de décembre 2021
  • -
- -
- ---- - -### Berlin {#berlin} - - - -#### Résumé {#berlin-summary} - -La mise à niveau Berlin a optimisé le coût en gaz de certaines actions EVM et augmenté la prise en charge de plusieurs types de transactions. - -- [Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2021/03/08/ethereum-berlin-upgrade-announcement/) -- [Lire l'explication du site Ethereum Cat Herders](https://medium.com/ethereum-cat-herders/the-berlin-upgrade-overview-2f7ad710eb80) - - - -
    -
  • EIP-2565revoit à la baisse les coûts en gas ModExp
  • -
  • EIP-2718facilite la prise en charge de plusieurs types de transaction
  • -
  • L'EIP-2929revoit ses tarifs en gas à la hausse, pour les codes d'opération d'accès à l'état
  • -
  • EIP-2930ajoute des listes d'accès facultatives
  • -
- -
- - - -## 2020 {#2020} - -### Origine de la chaîne phare {#beacon-chain-genesis} - - - -#### Résumé {#beacon-chain-genesis-summary} - -La [chaîne phare](/roadmap/beacon-chain/) avait besoin de 16 384 dépôts de 32 ETH mis en jeu pour être déployée en toute sécurité. Cela s'est produit le 27 novembre, de sorte que la chaîne phare a commencé à produire des blocs le 1er décembre 2020. Ce fut une première étape importante dans la réalisation de la [vision Ethereum](/roadmap/vision/). - -[Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2020/11/27/eth2-quick-update-no-21/) - - - La chaîne phare - - ---- - -### Contrat de dépôt de mise en jeu déployé {#staking-deposit-contract} - - - -#### Résumé {#deposit-contract-summary} - -Le contrat de dépôt de mise en jeu a introduit la [mise en jeu](/glossary/#staking) dans l'écosystème Ethereum. Bien qu'il s'agisse d'un contrat sur le [réseau principal](/glossary/#mainnet), il a eu des conséquences directes sur le calendrier de lancement de la [chaîne phare](/roadmap/beacon-chain/), une importante [mise à niveau d'Ethereum](/roadmap/). - -[Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2020/11/04/eth2-quick-update-no-19/) - - - Mise en jeu - - ---- - -### Muir Glacier {#muir-glacier} - - - -#### Résumé {#muir-glacier-summary} - -La fourche Muir Glacier a entraîné un report de la [bombe de difficulté](/glossary/#difficulty-bomb). L'augmentation de la difficulté des blocs du mécanisme de consensus de [preuve de travail](/developers/docs/consensus-mechanisms/pow/) menaçait de dégrader l'utilisation d'Ethereum en allongeant les temps d'attente pour l'envoi de transactions et l'utilisation d'applications décentralisées. - -- [Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2019/12/23/ethereum-muir-glacier-upgrade-announcement/) -- [Lire l'explication du site Ethereum Cat Herders](https://medium.com/ethereum-cat-herders/ethereum-muir-glacier-upgrade-89b8cea5a210) - - - -
    -
  • EIP-2384retarde la bombe de difficulté pour 4 000 000 autres blocs, ou ~611 jours.
  • -
- -
- - - -## 2019 {#2019} - -### Istanbul {#istanbul} - - - -#### Résumé {#istanbul-summary} - -La fourche Istanbul a : - -- optimisé le coût de [gaz](/glossary/#gas) de certaines actions dans l'[EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine) ; -- amélioré la résilience face aux attaques par déni de service ; -- rendu plus performantes les solutions de [mise à l'échelle de la couche 2](/developers/docs/scaling/#layer-2-scaling) basées sur les SNARK et les STARK ; -- permis à Ethereum et Zcash d'interagir ; -- permis aux contrats d'introduire des fonctions plus créatives. - -[Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2019/11/20/ethereum-istanbul-upgrade-announcement/) - - - -
    -
  • EIP-152permet à Ethereum de travailler avec une devise préservant la vie privée comme Zcash.
  • -
  • EIP-1108cryptographie à bas coût pour l'optimisation des coûts de gas.
  • -
  • EIP-1344protège Ethereum contre les attaques replay en ajoutant le code d'opération CHAINID .
  • -
  • EIP-1884l'optimisation des prix du gaz opcode basée sur la consommation.
  • -
  • EIP-2028réduit le coût de CallData pour permettre plus de données en blocs – bon pour la mise à l'échelle de la couche 2.
  • -
  • EIP-2200autres modifications du prix du gaz opcode.
  • -
- -
- ---- - -### Constantinople {#constantinople} - - - -#### Résumé {#constantinople-summary} - -La fourche Constantinople a : - -- protégé la blockchain d'un blocage avant [l'implémentation de la preuve d'enjeu](#beacon-chain-genesis)  ; -- optimisé le coût de [gaz](/glossary/#gas) certaines actions dans l'[EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine) ; -- ajouté la possibilité d'interagir avec des adresses qui n'ont pas encore été créées. - -[Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2019/02/22/ethereum-constantinople-st-petersburg-upgrade-announcement/) - - - -
    -
  • EIP-145Optimise le coût de certaines actions en chaîne.
  • -
  • EIP-1014vous permet d'interagir avec des adresses qui n'ont pas encore été créées.
  • -
  • EIP-1052optimise le coût de certaines actions en chaîne.
  • -
  • EIP-1234s'assure que la blockchain ne gèle pas 'avant la preuve d'enjeu.
  • -
- -
- - - -## 2017 {#2017} - -### Byzantium {#byzantium} - - - -#### Résumé {#byzantium-summary} - -La fourche Byzantium a : - -- réduit les récompenses pour le [minage](/developers/docs/consensus-mechanisms/pow/mining/)des blocs de 5 à 3 ETH ; -- retardé la [bombe de difficulté](/glossary/#difficulty-bomb) d'un an ; -- ajouté la possibilité d'effectuer des appels sans changement d'état vers d'autres contrats ; -- ajouté certaines méthodes de cryptographie pour permettre la [mise à l'échelle de la couche 2](/developers/docs/scaling/#layer-2-scaling). - -[Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2017/10/12/byzantium-hf-announcement/) - - - -
    -
  • EIP-140ajoute le code d'opération REVERT.
  • -
  • EIP-658champ de statut ajouté aux reçus de transaction pour indiquer le succès ou l'échec.
  • -
  • EIP-196intègre la courbe elliptique ainsi que les algorithmes de multiplication scalaire, qui permettent d'utiliser ZK-Snarks.
  • -
  • EIP-197intègre la courbe elliptique ainsi que les algorithmes de multiplication scalaire, qui permettent d'utiliser ZK-Snarks.
  • -
  • EIP-198permet la vérification de la signature RSA.
  • -
  • EIP-211intègre le support pour les valeurs retournées de longueur variable.
  • -
  • L'EIP-214intègre le code d'opération STATICCALL, ce qui permettra aux autres contrats de ne pas changer l'état des Calls.
  • -
  • EIP-100change la formule d'ajustement de difficulté.
  • -
  • EIP-649retarde la bombe de difficulté de 1 an et réduit la récompense de bloc de 5 à 3 ETH.
  • -
- -
- - - -## 2016 {#2016} - -### Spurious Dragon {#spurious-dragon} - - - -#### Résumé {#spurious-dragon-summary} - -La fourche Spurious Dragon a été la deuxième réponse aux attaques par déni de service (DoS) sur le réseau (septembre/octobre 2016). Elle comprend les opérations suivantes : - -- Adaptation de la tarification du code d'opération pour éviter de futures attaques sur le réseau ; -- « Dégonflage » de l'état de la blockchain ; -- Ajout de la protection contre les attaques par rejeu. - -[Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2016/11/18/hard-fork-no-4-spurious-dragon/) - - - -
    -
  • EIP-155empêche les transactions d'une chaîne Ethereum d'être rediffusées sur une chaîne alternative, par exemple une transaction de réseau de test en cours de relecture sur la chaîne principale Ethereum.
  • -
  • EIP-160ajuste les prix de code d'opération EXP – rend plus difficile le ralentissement du réseau via des opérations de contrat coûteuses sur le plan du calcul.
  • -
  • EIP-161permet de supprimer les comptes vides ajoutés via les attaques DOS.
  • -
  • EIP-170modifie la taille de code maximale qu'un contrat sur la blockchain peut avoir – à 24576 octets.
  • -
- -
- ---- - -### Tangerine Whistle {#tangerine-whistle} - - - -#### Résumé {#tangerine-whistle-summary} - -La fourche Tangerine Whistle a été la première réponse aux attaques par déni de service (DoS) sur le réseau (septembre/octobre 2016). Elle comprend les opérations suivantes : - -- Résolution des problèmes urgents d'intégrité du réseau concernant les codes d'opération sous-évalués. - -[Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2016/10/18/faq-upcoming-ethereum-hard-fork/) - - - -
    -
  • EIP-150Augmente le coût en gaz des codes d'opération qui peuvent être utilisés dans les attaques anti-spam.
  • -
  • EIP-158réduit la taille de l'état en supprimant un grand nombre de comptes vides qui ont été mis dans l'état à très bas prix en raison de défauts dans les versions précédentes du protocole Ethereum.
  • -
- -
- ---- - -### Fourche DAO {#dao-fork} - - - -#### Résumé {#dao-fork-summary} - -La fourche DAO est la réponse à l'[attaque DAO de 2016](https://www.coindesk.com/learn/understanding-the-dao-attack/) au cours de laquelle le contrat non sécurisé d'une [DAO](/glossary/#dao) a été vidé de plus de 3,6 millions d'ETH lors d'un piratage. La fourche a déplacé les fonds du contrat défectueux vers un [nouveau contrat](https://etherscan.io/address/0xbf4ed7b27f1d666546e30d74d50d173d20bca754) avec une seule fonction : withdraw (retrait). Toute personne ayant perdu des fonds pouvait retirer 1 ETH pour chaque tranche de 100 jetons DAO dans son portefeuille. - -Ce plan d'action a été voté par la communauté Ethereum. Tout détenteur d'ETH a pu voter via une transaction sur [une plateforme de vote](https://web.archive.org/web/20170620030820/http://v1.carbonvote.com/). Plus de 85 % des votes étaient favorables à la fourche. - -Certains mineurs ont refusé la fourche car l'incident DAO ne résultait pas d'un défaut du protocole. Ils ont ensuite formé [Ethereum Classic](https://ethereumclassic.org/). - -[Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2016/07/20/hard-fork-completed/) - ---- - -### Homestead {#homestead} - - - -#### Résumé {#homestead-summary} - -La fourche Homestead qui regardait vers l'avenir. Elle comprenait plusieurs changements de protocole et un changement de réseau ayant permis à Ethereum de faire d'autres mises à niveau du réseau. - -[Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2016/02/29/homestead-release/) - - - -
    -
  • EIP-2modifie le processus de création de contrats.
  • -
  • EIP-7ajoute un nouveau code d'opération : DELEGATECALL
  • -
  • EIP-8présente DEVP2P, pour faire face aux exigences en matière de compatibilité
  • -
- -
- - - -## 2015 {#2015} - -### Frontier Thawing {#frontier-thawing} - - - -#### Résumé {#frontier-thawing-summary} - -La fourche Frontier Thawing a levé la [limite de gaz](/glossary/#gas) de 5 000 par [bloc](/glossary/#block) et défini le prix du gaz par défaut à 51 [gwei](/glossary/#gwei). Cela a permis de réaliser des transactions. Les transactions nécessitent 21 000 unités de gaz. La [bombe de difficulté](/glossary/#difficulty-bomb) a été introduite pour assurer une future fourche dure vers la [preuve d'enjeu](/glossary/#pos). - -- [Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2015/08/04/the-thawing-frontier/) -- [Lire la mise à jour du protocole Ethereum 1](https://blog.ethereum.org/2015/08/04/ethereum-protocol-update-1/) - ---- - -### Frontier {#frontier} - - - -#### Résumé {#frontier-summary} - -Frontier était une implémentation réelle, mais sans structure, du projet Ethereum. Elle faisait suite à la phase de tests réussie Olympic. Elle était destinée aux utilisateurs techniques, en particulier aux développeurs. Les [blocs](/glossary/#block) avaient une limite de [gaz](/glossary/#gas) de 5 000. La période « Thawing » a permis aux mineurs de démarrer leurs opérations et aux premiers adoptants d’installer leurs clients sans avoir à « se précipiter ». - -[Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2015/07/22/frontier-is-coming-what-to-expect-and-how-to-prepare/) - - - -## 2014 {#2014} - -### Vente d'ETH {#ether-sale} - - - -L'ETH a officiellement été en vente pendant 42 jours. Il était possible d'en acheter avec des BTC. - -[Lire l'annonce de l'Ethereum Foundation](https://blog.ethereum.org/2014/07/22/launching-the-ether-sale/) - ---- - -### Publication du Livre jaune {#yellowpaper} - - - -Le Livre jaune, rédigé par le Dr Gavin Wood, est une définition technique du protocole Ethereum. - -[Voir le Livre jaune](https://github.com/ethereum/yellowpaper) - - - -## 2013 {#2013} - -### Publication du Livre blanc {#whitepaper} - - - -Document d'introduction publié en 2013 par Vitalik Buterin, fondateur d'Ethereum, précédant le lancement du projet en 2015. - - - Livre blanc - diff --git a/src/content/translations/fr/nft/index.md b/src/content/translations/fr/nft/index.md deleted file mode 100644 index 5a2631c6f5c..00000000000 --- a/src/content/translations/fr/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Jetons non fongibles (NFT) -description: Un aperçu des NFT sur Ethereum -lang: fr -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: Un logo Eth affiché par hologramme. -summaryPoint1: Un moyen de représenter toute chose unique en tant qu'actif Ethereum. -summaryPoint2: Les NFT offrent plus de possibilités que jamais aux créateurs de contenus. -summaryPoint3: Propulsés par des contrats intelligents sur la blockchain Ethereum. ---- - -## Que sont les NFT ? {#what-are-nfts} - -Les NFT sont des jetons qui sont individuellement uniques. Chaque NFT a des propriétés différentes (non fongibles) et sa rareté est prouvée. Cela diffère des jetons tels que les ERC-20, pour lesquels chaque jeton d'un ensemble est identique et possède les mêmes propriétés ("fongible"). Vous ne vous souciez pas de savoir quel billet de banque vous avez dans votre portefeuille, parce qu'ils sont tous identiques et valent tous la même chose. Cependant, vous vous souciez de savoir quel NFT spécifique vous possédez, car ils ont tous des propriétés individuelles qui les distinguent des autres ("non fongibles"). - -Le caractère unique de chaque NFT permet la tokenisation de choses telles que l'art, les objets de collection ou même l'immobilier, où un NFT unique et spécifique représente un objet numérique ou réel unique et spécifique. La propriété d'un actif est sécurisée par la blockchain Ethereum – personne ne peut modifier le dossier de propriété ou copier/coller un nouveau NFT dans l'existence. - - - -## L'internet des ressources {#internet-of-assets} - -Les NFT et Ethereum résolvent certains des problèmes qui se posent aujourd'hui sur l'internet. Comme tout se digitalise de plus en plus, il est nécessaire de reproduire les propriétés des objets physiques comme la rareté, l'unicité et la preuve de propriété. Et cela d'une manière qui n'est pas contrôlée par une organisation centrale. Par exemple, avec les NFT, vous pouvez posséder un mp3 musical qui n'est pas spécifique à l'application musicale d'une entreprise, ou vous pouvez posséder un identifiant de média social que vous pouvez vendre ou échanger, mais qui ne peut pas vous être retiré arbitrairement par un fournisseur de plateforme. - -Voici à quoi ressemble un internet de NFT par rapport à l'internet que la plupart d'entre nous utilisons aujourd'hui... - -### Une comparaison {#nft-comparison} - -| Un internet NFT | Internet aujourd'hui | -| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Vous êtes propriétaire de vos biens ! Vous seul pouvez les vendre ou les échanger. | Vous louez un bien à une organisation. | -| Les NFT sont uniques sur le plan numérique ; il n'y aura jamais deux NFT identiques. | Une copie d'une entité ne peut souvent pas être distinguée de l'original. | -| La propriété d'un NFT est stockée sur la blockchain et peut être vérifiée par n'importe qui. | L'historique de propriété des articles numériques sont stockés sur des serveurs contrôlés par des institutions – vous devez les croire sur parole. | -| Les NFT sont des contrats intelligents sur Ethereum. Cela signifie qu'ils peuvent facilement être utilisés dans d'autres contrats intelligents et applications sur Ethereum ! | Les entreprises qui possèdent des produits numériques ont généralement besoin de leur propre infrastructure de type "jardin fermé". | -| Les créateurs de contenu peuvent vendre leur travail n'importe où et accéder à un marché mondial. | Les créateurs dépendent de l'infrastructure et de la distribution des plates-formes qu'ils utilisent. Celles-ci sont souvent soumises à des conditions d'utilisation et à des restrictions géographiques. | -| Les créateurs de NFT peuvent conserver les droits de propriété sur leur propre travail et programmer les redevances directement dans le contrat NFT. | Les plateformes, telles que les services de diffusion de musique en streaming, conservent la majorité des bénéfices tirés des ventes. | - -## Comment fonctionnent les NFT ? {#how-nfts-work} - -Comme tout jeton émis sur Ethereum, les NFT sont émis par un contrat intelligent. Le contrat intelligent est conforme à l'une des normes NFT (généralement ERC-721 ou ERC-1155) qui définissent les fonctions du contrat. Le contrat peut créer ("frapper") des NFT et les attribuer à un propriétaire spécifique. La propriété est définie dans le contrat en associant des NFT spécifiques à des adresses spécifiques. Le NFT possède un identifiant et, généralement, des métadonnées qui lui sont associées et qui rendent le jeton spécifique unique. - -Quand quelqu'un crée ou frappe un NFT, il exécute en réalité une fonction du contrat intelligent qui attribue un NFT spécifique à son adresse. Cette information est stockée dans la mémoire du contrat, qui fait partie de la blockchain. Le créateur du contrat peut intégrer une logique supplémentaire dans le contrat, par exemple en limitant l'offre totale ou en définissant une redevance à verser au créateur chaque fois qu'un jeton est transféré. - -## Comment les NFTs sont-ils utilisés ? {#nft-use-cases} - -Les NFT sont utilisés pour de nombreuses choses, notamment : - -- prouver que vous avez assisté à un événement -- certifier que vous avez suivi un cours -- objets possédés dans des jeux -- art numérique -- tokenisation d'actifs du monde réel -- prouver votre identité en ligne -- autoriser l'accès au contenu -- billetterie -- noms de domaines Internet décentralisés -- collatéral en DeFi - -Vous êtes peut-être un artiste qui souhaite partager ses œuvres à l'aide de NFT, sans en perdre le contrôle et sans sacrifier ses bénéfices à des intermédiaires. Vous pouvez créer un nouveau contrat et spécifier le nombre de NFT, leurs propriétés et un lien vers une œuvre d'art spécifique. En tant qu'artiste, vous pouvez programmer dans le contrat intelligent les redevances qui doivent vous être versées (par exemple, transférer 5 % du prix de vente au propriétaire du contrat à chaque fois qu'un NFT est transféré). Vous pouvez également toujours prouver que vous avez créé les NFT parce que vous possédez le portefeuille qui a déployé le contrat. Vos acheteurs peuvent facilement prouver qu'ils possèdent un authentique NFT de votre collection car leur adresse de portefeuille est associée à un jeton dans votre contrat intelligent. Ils peuvent l'utiliser dans l'écosystème Ethereum en ayant confiance dans leur authenticité. - -Par exemple, pensez à un billet pour un événement sportif. Tout comme l'organisateur d'un événement peut décider du nombre de billets à vendre, le créateur d'un NFT peut décider du nombre de répliques existantes. Il s'agit parfois de répliques exactes telles que 5 000 billets d'admission générale. Parfois, plusieurs très similaires sont créés, chacun légèrement différent, comme un billet avec un siège assigné. Ils peuvent être achetés et vendus de pair à pair sans avoir à payer de frais de billetterie et l'acheteur peut toujours s'assurer de l'authenticité du billet en vérifiant l'adresse du contrat. - -Sur ethereum.org, les NFT sont utilisés pour montrer que des personnes ont contribué à notre dépôt GitHub ou assisté à des appels, et nous avons même notre propre nom de domaine NFT. Si vous contribuez à ethereum.org, vous pouvez demander un POAP NFT. Certains rassemblements crypto ont utilisé des POAP comme billets. [Plus d'infos sur la contribution](/contributing/#poap). - -![POAP ethereum.org](./poap.png) - -Ce site web dispose également d'un nom de domaine alternatif NFT, **ethereum.eth**. Notre adresse `.org` est gérée de façon centralisée par un fournisseur de noms de domaine (DNS) alors que ethereum`.eth` est enregistré sur Ethereum par le service Ethereum Name Service (ENS). Nous en sommes les propriétaires et les gestionnaires. [Consulter notre dossier ENS](https://app.ens.domains/name/ethereum.eth) - -[Plus d'infos sur le service ENS](https://app.ens.domains) - - - -### Sécurité NFT {#nft-security} - -La sécurité d'Ethereum émane de la preuve d'enjeu. Le système est conçu pour décourager économiquement les actions malveillantes, ce qui rend Ethereum infalsifiable. C'est ce qui rend les NFT possibles. Une fois le bloc contenant votre transaction NFT finalisé, un attaquant devrait dépenser des millions d'ETH pour le modifier. Quiconque exécute un logiciel Ethereum serait immédiatement capable de détecter des manipulations malhonnêtes avec un NFT, et la personne malveillante serait économiquement pénalisée et rejetée. - -Les questions de sécurité concernant les NFT sont le plus souvent liées aux escroqueries par hameçonnage, aux vulnérabilités des contrats intelligents ou aux erreurs utilisateur (comme exposer par inadvertance des clés privées), rendant la sécurité du portefeuille critique pour les propriétaires de NFT. - - - En savoir plus sur la sécurité - - -## Complément d'information {#further-reading} - -- [A beginner's guide to NFTs](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, Janvier 2020_ -- [Traqueur de NFTs de Etherscan](https://etherscan.io/nft-top-contracts) -- [Norme de jeton ERC-721](/developers/docs/standards/tokens/erc-721/) -- [Norme de jeton ERC-1155](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/fr/refi/index.md b/src/content/translations/fr/refi/index.md deleted file mode 100644 index b44051fb479..00000000000 --- a/src/content/translations/fr/refi/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: Finance Régénérative (ReFi) -description: Une vue d'ensemble de la ReFi et de ses cas d'utilisation actuels. -lang: fr -template: use-cases -emoji: ":recycle:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Un système économique alternatif fondé sur des principes de régénération -summaryPoint2: Une tentative d'utilisation d'Ethereum pour résoudre les crises de coordination au niveau mondial, telles que le changement climatique -summaryPoint3: Un outil permettant une augmentation drastique des bénéfices écologiques tels que les crédits de carbone vérifiés ---- - -## Qu'est-ce que la ReFi ? {#what-is-refi} - -**La finance régénérative (ReFi)** est un ensemble d'outils et d'idées construits sur les blockchains, qui visent à créer des économies régénératives, plutôt qu'extractives ou exploitantes. Les systèmes extractifs finissent par épuiser les ressources disponibles et s'effondrent ; en l'absence de mécanismes de régénération, ils manquent de résilience. La ReFi part du principe que la création de valeur monétaire doit être dissociée de l'extraction non durable des ressources de notre planète et de nos communautés. - -Le ReFi vise plutôt à résoudre des problèmes environnementaux, communautaires ou sociaux en créant des cycles de régénération. Ces systèmes créent de la valeur pour les participants tout en bénéficiant aux écosystèmes et aux communautés. - -L'un des fondements de la ReFi est le concept d'économie régénératrice dont John Œilleton, du Capital Institute, a été le pionnier. Il a proposé [huit principes interconnectés](https://capitalinstitute.org/8-principles-regenerative-economy/) qui sous-tendent la santé systémique : - -![Huit principes interconnectés](../../assets/use-cases/refi-regenerative-economy-diagram.png) - -Les projets ReFi concrétisent ces principes en utilisant des [contrats intelligents](/developers/docs/smart-contracts/) et des [applications de finance décentralisée (DeFi)](/defi/) pour encourager les comportements régénérateurs, par exemple la restauration des écosystèmes dégradés, et faciliter la collaboration à grande échelle sur des questions mondiales telles que le changement climatique et la perte de biodiversité. - -La ReFi rejoint également le mouvement [science décentralisée (DeSci)](/desci/), qui utilise Ethereum comme plateforme pour financer, créer, réviser, créditer, stocker et diffuser des connaissances scientifiques. Les outils DeSci pourraient être utiles pour élaborer des normes et des pratiques vérifiables pour la mise en œuvre et le suivi d'activités régénératrices telles que la plantation d'arbres, l'élimination du plastique dans les océans ou la restauration d'un écosystème dégradé. - -## Tokenisation des crédits carbone {#tokenization-of-carbon-credits} - -Le **[marché volontaire du carbone (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** est un mécanisme de financement de projets qui ont un impact positif vérifié sur les émissions de carbone, soit en réduisant les émissions en cours, soit en éliminant les gaz à effet de serre déjà émis dans l'atmosphère. Après vérification, ces projets reçoivent un actif appelé "crédits carbone", qu'ils peuvent vendre à des particuliers et à des organisations désireux de soutenir l'action en faveur du climat. - -En plus du VCM, il existe également plusieurs marchés du carbone mandatés par les gouvernements ("marchés de conformité") qui visent à établir un prix du carbone par le biais de lois ou de réglementations au sein d'une juridiction particulière (par exemple, un pays ou une région), en contrôlant l'offre de permis à distribuer. Les marchés de conformité incitent les pollueurs relevant de leur juridiction à réduire leurs émissions, mais ils ne sont pas en mesure d'éliminer les gaz à effet de serre déjà émis. - -Malgré son développement au cours des dernières décennies, le VCM continue de souffrir d'une multitude de problèmes : - -1. Liquidité très fragmentée -2. Mécanismes de transaction opaques -3. Frais élevés -4. Vitesse de trading très lente -5. Manque de passage à l'échelle - -La transition du VCM vers le nouveau **marché numérique du carbone (DCM)** basé sur la blockchain pourrait être l'occasion de mettre à niveau la technologie existante pour la validation, la vente et la consommation des crédits carbone. Les blockchains permettent d'obtenir des données publiquement vérifiables, un accès pour un large éventail d'utilisateurs et une plus grande liquidité. - -Les projets utilisent la technologie de la blockchain pour atténuer de nombreux problèmes du marché traditionnel : - -- **La liquidité est concentrée sur un petit nombre de pools** où chacun peut commercer. Les grandes organisations comme les individus peuvent utiliser ces pools sans devoir rechercher manuellement des acheteurs/vendeurs, sans frais de participation ou sans enregistrement préalable. -- **Toutes les transactions sont enregistrées sur des blockchains publiques**. Le chemin que chaque crédit carbone prend en raison de l'activité de trading est retraçable à jamais dès qu'il est est rendu disponible dans le DCM. -- **La rapidité des transactions est quasiment instantanée**. Sécuriser de vastes quantités de crédits carbone via les marchés traditionnels peut prendre des jours ou des semaines, alors que ceci peut être réalisé en quelques secondes dans le DCM. -- **Les activités de trading ont lieu sans intermédiaires**, qui facturent des fortes commissions. Les crédits carbone numériques représentent une [amélioration du coût de 62% par rapport aux crédits traditionnels équivalents](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne), d'après les données d'une société d'analyse. -- **Le DCM peut passer à l'échelle** et répondre aussi bien aux attentes des individus que des entreprises multinationales. - -### Composants clés du DCM {#key-components-dcm} - -Quatre éléments majeurs composent le paysage actuel du DCM : - -1. Des registres tels que [Verra](https://verra.org/project/vcs-program/registry-system/) et [Gold Standard](https://www.goldstandard.org/) veillent à ce que les projets créant des crédits carbone soient fiables. Ils gèrent également les bases de données dans lesquelles les crédits carbone numériques sont créés, transférés ou utilisés. - -Une nouvelle vague de projets innovants est en train d'être développée sur des blockchains dans le but de bouleverser les acteurs établis de ce secteur. - -2. Ponts carbone, aussi appelées tokeniseurs, fournissent la technologie pour représenter ou transférer les crédits carbones depuis les registres traditionnels vers les DCM. [Toucan Protocol](https://toucan.earth/), [C3](https://c3.app/), and [Moss.Earth](https://moss.earth/) font partie des exemples remarquables. -3. Les services intégrés offrent des crédits d'évitement ou de suppression de carbone aux utilisateurs finaux afin qu'ils obtiennent le bénéfice environnemental de leur crédit et partagent leur soutien à l'action climatique avec le monde. - -Certains, comme [Klima Infinity](https://www.klimadao.finance/infinity) et [Senken](https://senken.io/), proposent une grande variété de projets développés par des tiers et émis conformément à des normes établies telles que Verra ; d'autres, comme [Nori](https://nori.com/), ne proposent que des projets spécifiques développés selon leur propre norme de crédit carbone, qu'ils émettent et pour laquelle ils ont leur propre marché dédié. - -4. Les rails et l'infrastructure sous-jacente qui facilitent la montée en charge de l'impact et de l'efficacité de l'ensemble de la chaîne d'approvisionnement du marché du carbone. [KlimaDAO](http://klimadao.finance/) fournit de la liquidité comme un bien public (permettant à quiconque d'acheter ou de vendre des crédits carbone à un prix transparent), stimule les flux sur les marchés carbone et les retraits via des récompenses, et fournit un outillage interopérable et convivial pour accéder aux données, acquérir et retirer, une grande variété de crédits carbone tokenisés. - -## La ReFi au-delà des marchés du carbone {#refi-beyond} - -Bien qu'il y ait actuellement une grande attention portée aux marchés du carbone en général et à la transition du VCM au DCM en particulier, le terme "ReFi" n'est pas strictement limité au carbone. D'autres actifs environnementaux en dehors des crédits carbone peuvent être développés et tokenisés, ce qui signifiera que d'autres externalités négatives pourront également être valorisées au sein des couches de base des futurs systèmes économiques. De plus, l'aspect régénératif de ce modèle économique peut être appliqué à d'autres domaines, tels que le financement des biens publics via des plateformes de financement quadratique comme [Gitcoin](https://gitcoin.co/). Les organisations qui reposent sur l'idée de participation ouverte et de distribution équitable des ressources permettent à chacun de contribuer financièrement aux projets de logiciels open-source, ainsi qu'aux projets éducatifs, environnementaux et communautaires. - -En orientant le capital loin des pratiques extractives et vers un flux régénératif, les projets et les entreprises qui fournissent des avantages sociaux, environnementaux ou communautaires - et qui pourraient échouer à obtenir un financement dans la finance traditionnelle - peuvent démarrer et générer des externalités positives pour la société beaucoup plus rapidement et facilement. La transition vers ce modèle de financement ouvre également la voie à des systèmes économiques beaucoup plus inclusifs, où les personnes de toutes les catégories démographiques peuvent devenir des participants actifs plutôt que de simples observateurs passifs. ReFi propose une vision d'Ethereum en tant que mécanisme de coordination de l'action face aux défis existentiels auxquels notre espèce et toute vie sur notre planète sont confrontées - en tant que couche de base d'un nouveau paradigme économique, permettant un avenir plus inclusif et durable pour les siècles à venir. - -## Lectures complémentaires sur la ReFi - -- [Une vue d'ensemble des monnaies carbone et de leur place dans l'économie](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) -- [The Ministry for the Future, un roman décrivant le rôle d'une monnaie adossée au carbone dans la lutte contre le changement climatique](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) -- [Un rapport détaillé du Groupe de travail pour l'expansion des marchés volontaires du carbone](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) -- [La ReFi sur le glossaire CoinMarketCap par Kevin Owocki et Evan Miyazono](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/fr/roadmap/beacon-chain/index.md b/src/content/translations/fr/roadmap/beacon-chain/index.md deleted file mode 100644 index bf9957c6992..00000000000 --- a/src/content/translations/fr/roadmap/beacon-chain/index.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: La chaîne phare -description: En savoir plus sur la chaîne phare - la mise à niveau qui a introduit la preuve d'enjeu d'Ethereum. -lang: fr -template: upgrade -image: ../../../../../assets/upgrades/core.png -summaryPoint1: La Chaîne phare a introduit la preuve d'enjeu dans l'écosystème Ethereum. -summaryPoint2: Elle a été fusionnée avec la chaîne originale de preuve de travail Ethereum en septembre 2022. -summaryPoint3: La Chaîne phare a introduit la logique de consensus et le protocole de commutation de bloc qui sécurise désormais Ethereum. ---- - - - La Chaîne phare a été présentée le 1er décembre 2020 et a formalisé la preuve d'enjeu comme mécanisme de consensus d'Ethereum avec La Fusion du 15 septembre 2022. - - -## Qu'est-ce que fut la Chaîne phare ? {#what-is-the-beacon-chain} - -La Chaîne phare était le nom de la blockchain originale par preuve d'enjeu qui a été lancée en 2020. Elle a été créé pour s'assurer que la logique de consensus par preuve d'enjeu était saine et durable avant de l'activer sur le réseau principal Ethereum. Par conséquent, elle a fonctionné aux côtés de l'Ethereum original de preuve de travail. La désactivation de la preuve de travail au profit de la preuve d'enjeu sur Ethereum nécessite d'indiquer à la Chaîne phare d'accepter les transactions de la chaîne Ethereum d'origine, de les regrouper en blocs, puis les organiser en blockchain en utilisant un mécanisme de consensus basé sur la preuve d'enjeu. Au même moment, les clients originaux d'Ethereum ont arrêté leur minage, la propagation du bloc et la logique de consensus, regroupant tout ceci sur la Chaîne phare. Cet événement était connu sous le nom de [La Fusion](/roadmap/merge/). Une fois la Fusion réalisée, il n'y avait plus deux blockchains mais une chaîne unique Ethereum de preuve d'enjeu. - -## Que fait la Chaîne phare ? {#what-does-the-beacon-chain-do} - -La Chaîne phare était le nom donné à un registre de comptes qui a mené et coordonné le réseau des [validateurs Ethereum](/staking/) avant que ces mêmes validateurs ne commencent à valider de véritables transactions Ethereum. Elle ne traitait pas les transactions ou ne gérait pas les interactions entre les contrats intelligents. - -Elle a introduit le moteur de consensus (ou « couche de consensus ») qui a pris la place du minage par preuve de travail sur Ethereum et a apporté de nombreuses améliorations significatives. - -La Chaîne phare était un composant fondamental pour [la sécurisation, le respect environnemental et l'évolutivité d'Ethereum](/roadmap/vision/). - -## Impact de la Chaîne phare {#beacon-chain-features} - -### Présentation de la preuve d'enjeu {#introducing-staking} - -La Chaîne phare introduit la [preuve d'enjeu](/developers/docs/consensus-mechanisms/pos/) dans Ethereum. Cela permet de sécuriser Ethereum et pour les validateurs de gagner plus d'ETH au cours du processus. En pratique, le staking implique de miser des ETH pour activer le logiciel de validation. En tant que validateur, vous exécutez le logiciel qui créé et valide de nouveaux blocs dans la chaîne. - -La mise en jeu a un objectif similaire au [minage](/developers/docs/mining/), mais diffère à plusieurs titres. Le minage nécessitait d’importantes dépenses initiales sous la forme d’une puissante consommation en matériel et énergie, entraînant des économies d’échelle et promouvant la centralisation. Le minage n'impliquait pas non plus l'obligation de bloquer les actifs en tant que garantie, ce qui limite la capacité du protocole à punir les mauvais acteurs après une attaque. - -La transition vers la preuve d'enjeu rend Ethereum nettement plus sûr et décentralisé par comparaison. Plus le nombre de participants sera élevé sur le réseau, plus celui-ci sera décentralisé et à l'abri des attaques. - - - Si vous souhaitez devenir validateur et aider à sécuriser Ethereum, familiarisez-vous avec le concept de mise en jeu. - - -### Mise en place de la fragmentation {#setting-up-for-sharding} - -Depuis que la Chaîne phare a fusionné avec le réseau principal Ethereum d'origine, la communauté Ethereum a commencé à chercher à mettre le réseau à niveau. - -La preuve d’enjeu présente l’avantage d’avoir un registre de tous les producteurs de blocs approuvés à un moment donné, chacun avec l’ETH en jeu. Ce registre ouvre la voie à la possibilité de diviser et de conquérir mais de manière fiable et de séparer les responsabilités spécifiques des réseaux. - -Cette responsabilité contraste avec la preuve de travail, où les mineurs n'ont aucune obligation à l'égard du réseau et pourraient arrêter de miner et fermer définitivement leur logiciel de nœud en un instant et sans répercussion. Il n'y a pas non plus de registre des soumissionnaires de blocs connus et aucun moyen fiable de séparer en toute sécurité les responsabilités des réseaux. - -[En savoir plus sur la fragmentation](/roadmap/danksharding/) - -## Relation entre les mises à niveau {#relationship-between-upgrades} - -Les mises à niveau Ethereum sont plus ou moins interdépendantes. Récapitulons donc comment la chaîne phare affecte les autres mises à niveau. - -### La Chaîne phare et La Fusion {#merge-and-beacon-chain} - -Au début, La Chaîne phare existait séparément du réseau principal Ethereum, mais ils ont été fusionnés en 2022. - - - La Fusion - - -### Fragments et chaîne phare {#shards-and-beacon-chain} - -La fragmentation ne peut s'ajouter en toute sécurité dans l'écosystème Ethereum que s'il existe un mécanisme de consensus sur la preuve d'enjeu. La Chaîne phare a introduit la notion de mise en jeu qui a « fusionnée » avec le réseau principal et a ouvert la voie à la fragmentation pour favoriser une plus grande évolutivité d'Ethereum. - - - Chaînes de fragments - - -## Complément d'information - -- [En savoir plus sur les futures mises à jour d'Ethereum](/roadmap/vision) -- [En savoir plus sur la preuve d'enjeu](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/fr/roadmap/merge/index.md b/src/content/translations/fr/roadmap/merge/index.md deleted file mode 100644 index 7b65250cbe0..00000000000 --- a/src/content/translations/fr/roadmap/merge/index.md +++ /dev/null @@ -1,224 +0,0 @@ ---- -title: La Fusion -description: En savoir plus sur La Fusion - quand le réseau principal Ethereum adopte la preuve d'enjeu. -lang: fr -template: upgrade -image: ../../../../../assets/upgrades/merge.png -summaryPoint1: Le réseau principal Ethereum utilise la preuve d'enjeu, mais cela n'a pas toujours été le cas. -summaryPoint2: La mise à niveau du mécanisme original de preuve de travail à celui de la preuve d'enjeu s'appelle La Fusion. -summaryPoint3: La Fusion fait référence à la fusion du réseau principal original Ethereum avec une blockchain distincte de preuve d'enjeu appelée la Chaîne phare, qui existe maintenant sous la forme d'une chaîne unique. -summaryPoint4: La Fusion a réduit la consommation d'énergie d'Ethereum de ~99,95 %. ---- - - - La Fusion a été réalisée le 15 septembre 2022. Cette étape a permis à Ethereum de passer à un consensus de preuve d'enjeu, de rendre officiellement obsolète la preuve de travail et de réduire sa consommation d'énergie d'environ 99,95 %. - - -## Qu'est-ce que La Fusion ? {#what-is-the-merge} - -La Fusion est la réunion de la couche d'exécution originale d'Ethereum (le réseau principal qui existe depuis [genesis](/history/#frontier)) avec sa nouvelle couche de consensus de preuve d'enjeu ; la Chaîne phare. Elle a également permis d'éliminer la nécessité d'un minage gourmand en énergie et de sécuriser le réseau via la mise en jeu d'ETH. Ce fut une étape vraiment passionnante dans la réalisation de la vision Ethereum - plus d'évolutivité, de sécurité et de durabilité. - - - -Initialement, la [Chaîne phare](/roadmap/beacon-chain/) était envoyée séparément du [réseau principal](/glossary/#mainnet). Le réseau principal Ethereum - avec tous ses comptes, ses soldes, ses contrats intelligents et l'état de la blockchain - continuait d'être sécurisé par [la preuve de travail](/developers/docs/consensus-mechanisms/pow/), même si la Chaîne Phare fonctionnait en parallèle en utilisant [la preuve d'enjeu](/developers/docs/consensus-mechanisms/pos/). La Fusion a été le moment où ces deux systèmes se sont finalement combinés, et la preuve de travail a été remplacée de façon permanente par la preuve d'enjeu. - -Imaginez qu'Ethereum est un vaisseau spatial qui a été lancé avant qu'il ne soit prêt pour un voyage interstellaire. Avec la Chaîne phare, la communauté a construit un nouveau moteur et un fuselage renforcé. Après de nombreux tests, il a été temps de remplacer à chaud le nouveau moteur par l'ancien en plein vol. Cela a permis de fusionner le nouveau moteur, plus efficace, avec le vaisseau existant, prêt à franchir plusieurs années-lumière et à conquérir l'univers. - -## La fusion avec le réseau principal {#merging-with-mainnet} - -La preuve de travail a sécurisé le réseau principal Ethereum de la genèse jusqu'à La Fusion. Cela a permis à la blockchain Ethereum que nous utilisons tous de voir le jour en juillet 2015 avec toutes ses fonctionnalités familières — transactions, contrats intelligents, comptes, etc. - -Tout au long de l'histoire d'Ethereum, les développeurs se sont préparés à une éventuelle transition de la preuve de travail à la preuve d'enjeu. Le 1er décembre 2020, la Chaîne phare a été créée comme une blockchain distincte du réseau principal et fonctionnant en parallèle. - -La Chaîne phare ne traitait pas à l'origine les transactions du réseau principal. Au lieu de cela, elle atteignait le consensus sur son propre état en reconnaissant les validateurs actifs et leurs soldes de compte. Après des tests approfondis, il était temps pour la Chaîne phare de parvenir à un consensus sur les données du monde réel. Après La Fusion, la Chaîne phare est devenue le moteur de consensus pour toutes les données du réseau, y compris les transactions de la couche d'exécution et les soldes des comptes. - -La Fusion représente le passage officiel à l'utilisation de la Chaîne phare comme moteur de production de blocs. Le minage n'est plus le moyen de produire des blocs valides. À la place, les validateurs de la preuve d'enjeu assurent ce rôle et sont chargés de traiter la validité de toutes les transactions et de proposer des blocs. - -Aucun historique n'a été perdu dans la Fusion. Au fur et à mesure que le réseau principal a fusionné avec la Chaîne phare, il a également fusionné la totalité de l'historique transactionnel d'Ethereum. - - -Cette transition vers la preuve d'enjeu a modifié la façon dont l'éther est émis. En savoir plus sur l'émission d'éthers avant et après la Fusion. - - -### Utilisateurs et détenteurs {#users-holders} - -**La Fusion n'a rien changé pour les détenteurs/utilisateurs.** - -_Ceci nécessite d'être répété _: en tant qu'utilisateur ou détenteur d'ETH ou de tout autre actif numérique sur Ethereum, ainsi que pour les stakers qui n'opèrent pas sur les nœuds, **vous n'avez pas besoin de faire quoi que ce soit avec vos fonds ou votre portefeuille pour vous rendre compte de La Fusion.**. L'ETH n'est que l'ETH. Il n'existe rien de tel que « les anciens ETH »/« les nouveaux ETH » ou « ETH1 »/« ETH2 » et les portefeuilles fonctionnent exactement de la même manière après La Fusion qu'auparavant — les personnes vous disant l'inverse sont probablement des escrocs. - -Malgré le passage de la preuve de travail vers la preuve d'enjeu, tout l'historique d'Ethereum depuis sa genèse reste intact et inaltéré depuis ladite transition. Tous les fonds détenus dans votre portefeuille avant La Fusion restent accessibles après La Fusion. **Aucune action n'est requise pour mettre à jour de votre côté.** - -[En savoir plus sur la sécurité et Ethereum](/security/#eth2-token-scam) - -### Opérateurs de nœuds et développeurs de dApps {#node-operators-dapp-developers} - - - -Les principaux éléments d'action incluent : - -1. Exécutez _à la fois_ un client de consensus et un client d'exécution  ; les points de terminaison tiers pour obtenir des données d'exécution ne fonctionnent plus depuis La Fusion. -2. Authentifier à la fois les clients d'exécution et de consensus avec un secret JWT partagé pour qu'ils puissent communiquer en toute sécurité. -3. Définissez une adresse 'destinataire des frais' pour recevoir vos frais de transaction ou MEV gagnés. - -Si vous ne remplissez pas les deux premiers éléments ci-dessus, votre nœud sera considéré comme « hors ligne » jusqu'à ce que les deux couches soient synchronisées et authentifiées. - -Ne pas définir un « destinataire de frais » permettra toujours à votre validateur de se comporter comme d'habitude, mais vous n'allez pas recevoir les frais non brûlés et autres MEV que vous auriez autrement gagnés avec les blocs que votre validateur propose. - - - - -Jusqu'au moment de La Fusion, un client d'exécution (comme Geth, Erigon, Besu ou Nethermind) suffisait pour recevoir, valider correctement et diffuser les blocs créés par le réseau. Après La Fusion, la validité des transactions contenues dans un bloc d'exécution dépend désormais également de la validité du « bloc de consensus » qu'il contient. - -Par conséquent, un nœud Ethereum complet nécessite maintenant à la fois un client d'exécution et un client de consensus. Ces deux clients travaillent ensemble en utilisant une nouvelle API Moteur. L'API Moteur nécessite une authentification à l'aide d'un secret JWT, qui est fourni aux deux clients permettant ainsi une communication sécurisée. - -Les éléments clés d'action incluent le fait : - -- D'installer un client de consensus en plus d'un client d'exécution -- D'authentifier les clients d'exécution et de consensus avec un secret JWT partagé pour qu'ils puissent communiquer en toute sécurité entre eux. - -Si vous ne répondez pas aux exigences ci-dessus, votre nœud apparaîtra comme « hors ligne » jusqu'à ce que les deux couches soient synchronisées et authentifiées. - - - - - -La Fusion a été réalisée avec des changements de consensus, qui impliquent également les changements liés à : - -- La structure de bloc -- Le slot/timing de bloc -- Les changements d'opcode -- Les sources en chaîne aléatoire -- Les concepts de _tête sécurisée_ et de _blocs finalisés_ - -Pour plus d'informations, veuillez consulter cet article de blog de Tim Beiko sur [Comment la Fusion impacte la couche d'application d'Ethereum](https://blog.ethereum.org/2021/11/29/how-the-merge-impacts-app-layer/). - - -## La Fusion et la consommation énergétique {#merge-and-energy} - -La Fusion marque la fin de la preuve de travail pour Ethereum, et le début de l'ère d'un Ethereum plus durable et plus écologique. La consommation énergétique d'Ethereum a chuté d'environ 99,95 %, faisant de l'Ethereum une blockchain verte. Apprenez-en plus à propos de [la consommation énergétique d'Ethereum](/energy-consumption/). - -## La Fusion et la fragmentation {#merge-and-scaling} - -La Fusion permet également de préparer le terrain pour d'autres améliorations des mises à niveau non envisageables avec la preuve de travail, en rapprochant Ethereum d'une étape de la réalisation d'évolutivité, de sécurité et de durabilité décrite dans le [plan de développement d'Ethereum](/roadmap/vision/). - -## Les idées fausses sur La Fusion {#misconceptions} - - -Il existe deux types de nœuds sur Ethereum : ceux qui peuvent proposer de nouveaux blocs, et ceux qui ne le peuvent pas. - -Les nœuds qui peuvent proposer des blocs représentent une petite fraction du nombre total de nœuds existants. Cette catégorie inclut les nœuds de minage sous preuve de travail (PoW) et les nœuds des validateurs sous preuve d'enjeu (PoS). Cette catégorie nécessite d'engager des ressources économiques (que ce soient le pouvoir d'hachage des GPU pour la preuve de travail ou des ETH mis en jeu par les validateurs en preuve d'enjeu) afin de pouvoir, occasionnellement, proposer un nouveau bloc et gagner les récompenses offertes par le protocole. - -Les autres nœuds sur le réseau (la majorité en fait) ne nécessitent pas d'engager des ressources économiques, exception faite d'un ordinateur grand public bénéficiant d'un ou deux TO de stockage disponible et d'une connexion internet. Ces nœuds ne proposent pas de blocs mais ils jouent quand même un rôle critique dans la sécurité du réseau, en tenant tous les promoteurs responsables de l'énumération des blocs déjà existants et de la vérification de la validité des nouveaux blocs, conformément aux règles de consensus du réseau. Si le bloc est valide, le noeud permettra sa diffusion sur le réseau. Si le bloc n'est pas valable pour une raison quelconque, le logiciel ne le considérera pas valable et empêchera sa propagation. - -Exécuter un noeud ne produisant pas de bloc est possible pour quiconque et ce, quel que soit le mécanisme de consensus (preuve de travail ou preuve d'enjeu). C'est même fortement encouragé pour l'ensemble des utilisateurs qui en ont les moyens. L'exécution d'un noeud est extrêmement précieuse pour Ethereum et permet à chaque personne qui opère son propre noeud de bénéficier d'avantages supplémentaires en matière de sécurité, de vie privée, et de résistance à la censure améliorées. - -La possibilité pour quiconque de pouvoir exécuter son propre noeud est absolument essentiel afin de maintenir la décentralisation du réseau Ethereum. - -[En savoir plus sur l'exécution de votre propre noeud](/run-a-node/) - - - - -Les frais de gaz sont le produit des demandes envoyées au réseau par rapport à sa capacité. La Fusion a rendu obsolète l'utilisation de la preuve de travail pour une transition vers le consensus par la preuve d'enjeu, mais elle n'a pas modifié de manière significative les paramètres qui influencent directement la capacité ou le débit du réseau. - -Avec une feuille de route axée sur les rollups, les efforts sont concentrés sur la mise à l'échelle de l'activité des utilisateurs sur la couche 2, tout en activant le réseau principal de couche 1 en tant que couche de règlement décentralisée, sécurisée et optimisée pour le stockage de données cumulatives afin de rendre les transactions rollups exponentiellement moins chères. La transition vers la preuve d'enjeu est une étape préalable essentielle afin de réaliser cela. [En savoir plus sur le gaz et les frais.](/developers/docs/gas/) - - - -La « vitesse » d'une transaction peut être mesurée de différentes façons, y compris le délai à inclure dans un bloc et le temps pour la finalisation. Ces deux facteurs sont légèrement modifiés, mais pas dans des proportions suffisantes pour que les utilisateurs le remarquent. - -Historiquement, concernant la preuve de travail, l'objectif était de permettre la création d'un nouveau bloc toutes les 13,3 secondes. Avec la preuve d'enjeu, cette production sera effective toutes les 12 secondes, ce qui constituera à chaque fois une opportunité pour un validateur de publier un nouveau bloc. La plupart des slots ont des blocs, mais pas nécessairement tous (lorsqu'un validateur est hors ligne). Avec la preuve d'enjeu, les blocs sont produits ~10 % plus fréquemment qu'avec la preuve de travail. Il s'agit d'un changement trop insignifiant pour qu'il soit réellement perçu par les utilisateurs. - -La preuve d’enjeu a introduit le concept de finalité des transactions qui n’existait pas auparavant. Avec la de preuve de travail, la possibilité d'inverser un bloc devient exponentiellement plus difficile avec chaque nouveau bloc créé, mais elle n'atteindra jamais zéro. Avec la preuve d'enjeu, les blocs sont regroupés dans des périodes (6,4 minutes de temps contenant 32 chances pour les blocs) sur lesquelles les validateurs votent. Lorsqu'une période se termine, les validateurs se prononcent sur la question de savoir s'il faut considérer la période comme « justifiée ». Si les validateurs acceptent de justifier la période, elle sera finalisée lors de la prochaine période. L'annulation des transactions finalisées n'est pas viable économiquement, car cela nécessiterait l'obtention et la combustion de plus d'un tiers du total de l'ETH misé. - - - - -Les récompenses d'ETH et de mise en jeu continuent d'être verrouillées sans possibilité d'être retirées. Les retraits sont prévus pour la prochaine mise à niveau Shanghai. - - - -Cela peut sembler contre-intuitif, au regard des éléments ci-dessus, dans la mesure où les retraits ne sont pas activés jusqu'à la mise à niveau Shanghai, mais les validateurs DOIVENT avoir un accès immédiat aux récompenses de frais/MEV gagnés lors des propositions de bloc. - -Le protocole émet l'ETH comme récompense à destination des validateurs pour avoir contribué au consensus. La couche de consensus représente l'ETH nouvellement émis, où un validateur a une adresse unique qui contient son ETH mis en jeu ainsi que ses récompenses de protocole. Ces ETH sont bloqués jusqu'à la mise à niveau Shanghai. - -L'ETH pour la couche d'exécution est comptabilisé séparément de la couche de consensus. Lorsque les utilisateurs exécutent des transactions sur le réseau principal Ethereum, ils doivent s'acquitter des frais de gaz en ETH, y compris une commission pour le validateur. Cet ETH se trouve déjà sur la couche d'exécution, n'est PAS nouvellement émis par le protocole, et est disponible immédiatement pour le validateur (étant donné qu'une adresse appropriée de « destinataire de frais » est fournie au logiciel client). - - - -Depuis que les retraits ont été activés suite à la mise à niveau Shanghai, tous les validateurs seront incités à retirer leur solde d'ETH si celui-ci est supérieur à 32, ces fonds ne permettant pas de générer un rendement complémentaire et qu'ils seront par ailleurs, verrouillés. En fonction de l'APR (déterminé par l'ETH total mis en jeu), ils peuvent être encouragés à quitter leur(s) validateur(s) pour récupérer leur solde en entier ou potentiellement en miser encore plus en utilisant leurs récompenses pour obtenir plus de rendement. - -Une mise en garde importante et nécessaire ici, les sorties complètes de validateur sont limitées par le protocole. Ainsi, uniquement six validateurs peuvent sortir par période (chaques 6,4 minutes, et ainsi 1 350 fois par jour, ou seulement environ 43 200 ETH par jour sur plus de 10 millions d'ETH misés). Cette limite de taux s’ajuste en fonction du total d'ETH mis en jeu et empêche un exode massif des fonds. De plus, il empêche un attaquant potentiel d'utiliser ses ETH mis en jeu pour commettre une attaque normalement punissable tout en retirant sa mise avant que le protocole ne puisse appliquer la sanction. - -L'APR a été rendue dynamique intentionnellement, afin de permettre aux stakers de trouver un équilibre concernant le montant de la rémunération qu'ils souhaitent percevoir pour aider à sécuriser le réseau. Lorsque les retraits seront activés et si le taux est trop bas, les validateurs se retireront à un taux limité par le protocole. Peu à peu, cela permettra d'élever l'APR pour tous ceux qui restent, attirant encore une fois de nouveaux stakers ou en permettant le retour d'anciens validateurs. - - -## Que devient « Eth2 » ? {#eth2} - -Le terme « Eth2 » est obsolète. Après avoir fusionné « Eth1 » et « Eth2 » dans une seule chaîne, il n'est plus nécessaire de faire la distinction entre deux réseaux Ethereum ; il n'existe plus qu'Ethereum. - -Pour limiter la confusion, la communauté a mis à jour ces termes : - -- « Eth1 » est maintenant « la couche d'exécution », qui gère les transactions et les exécutions. -- « Eth2 » est maintenant la « couche de consensus », qui gère le consensus de la preuve d'enjeu. - -Ces mises à jour d'ordre terminologique ne concernent que les conventions de nommage ; les objectifs et la feuille de route d'Ethereum restent inchangés. - -[En savoir plus sur le changement de nom « Eth2 »](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) - -## Relation entre les mises à niveau {#relationship-between-upgrades} - -Les mises à niveau Ethereum sont plus ou moins interdépendantes. Alors résumons comment la fusion est liée aux autres mises à niveau. - -### La Fusion et la chaîne phare {#merge-and-beacon-chain} - -La Fusion représente l'adoption formelle de la Chaîne phare comme nouvelle couche de consensus pour la couche d'exécution sur le réseau principal d'origine. Depuis La Fusion, les validateurs sont affectés au réseau principal sécurisé d'Ethereum et le minage par [preuve de travail](/developers/docs/consensus-mechanisms/pow/) n'est plus un moyen valide de production de blocs. - -Les blocs sont dès lors proposés par validation des nœuds qui ont misés l'ETH en échange du droit de participer au consensus. Ces mises à niveau permettent de préparer le terrain pour de futures améliorations d'évolutivité, y compris la fragmentation. - - - La Chaîne phare - - -### La Fusion et la mise à niveau de Shanghai {#merge-and-shanghai} - -Afin de simplifier et de permettre une transition aussi rapide et réussie que possible vers le système de preuve d'enjeu, la mise à jour vers La Fusion n'intègre pas certaines fonctionnalités anticipées telles que, par exemple, la possibilité de retirer les ETH bloqués sur la chaîne phare. La prochaine mise à niveau de Shanghai qui suivra la Fusion intégrera la possibilité de retirer les ETH bloqués sur chaîne phare. - -Restez à jour avec [la question de la planification de la mise à jour Shanghai sur GitHub](https://github.com/ethereum/pm/issues/450) ou le [Blog EF Recherche et Développement](https://blog.ethereum.org/category/research-and-development/). Pour ceux qui sont curieux, apprenez-en plus sur [Ce qui se passe après la fusion](https://youtu.be/7ggwLccuN5s?t=101), une présentation par Vitalik lors de l'événement ETHGlobal d'avril 2021. - -### La Fusion et la fragmentation {#merge-and-data-sharding} - -Initialement, l'objectif était de travailler sur la fragmentation avant la Fusion afin d'optimiser l'évolutivité d'Ethereum. Cela dit, avec l'expansion des [solutions d'évolutivité de la couche 2](/layer-2/), la priorité a été de passer de la preuve de travail à la preuve d'enjeu. - -Les plans liés à la fragmentation évoluent rapidement, mais compte tenu du développement et du succès rencontré par les technologies de couche 2 visant à augmenter l'évolutivité de l'exécution des transactions, ces plans de fragmentation ont été modifiés afin de trouver la meilleure manière de répartir le poids lié au stockage des données d'appel comprimées émanant des contrats roll-up et de permettre la croissance exponentielle du réseau. Cela ne serait pas possible sans opérer d'abord une transition vers le système de preuve d'enjeu. - - - Fragmentation - - -## Complément d'information {#further-reading} - - - - diff --git a/src/content/translations/fr/smart-contracts/index.md b/src/content/translations/fr/smart-contracts/index.md deleted file mode 100644 index b5b82c2e371..00000000000 --- a/src/content/translations/fr/smart-contracts/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Contrats intelligents -description: Une introduction non technique aux contrats intelligents -lang: fr ---- - -# Introduction aux contrats intelligents {#introduction-to-smart-contracts} - -Les contrats intelligents sont les éléments fondamentaux de la couche applicative d'Ethereum. Il s'agit de programmes informatiques stockés sur la blockchain qui suivent la logique "si ceci alors cela" et sont garantis de s'exécuter selon les règles définies par leur code, qui ne peut être modifié une fois créé. - -L'expression « contrat intelligent » a été utilisée en premier par Nick Szabo. En 1994, il a écrit [une introduction au concept](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html), et en 1996 il a écrit [une exploration à ce que les contrats intelligents pourraient faire](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). - -Szabo a imaginé un marché numérique où des processus automatiques et cryptographiquement sécurisés permettent aux transactions et aux fonctions commerciales de se dérouler sans intermédiaires de confiance. Les contrats intelligents Ethereum concrétisent cette vision. - -### La confiance dans les contrats conventionnels {#trust-and-contracts} - -L'un des problèmes majeurs d'un contrat classique est la nécessité que des personnes de confiance assurent le suivi des résultats du contrat. - -En voici un exemple : - -Alice et Bob font une course de vélo. Imaginons qu'Alice parie 10 € avec Bob qu'elle gagnera la course. Bob est sûr de gagner et accepte le pari. Finalement, Alice devance largement Bob et gagne de façon incontestable la course. Mais Bob refuse de payer le pari, prétendant qu'Alice a dû tricher. - -Cet exemple ridicule illustre le problème de tout accord non intelligent. Même si les conditions de l'accord sont remplies (ex. vous avez gagné la course), vous devez toujours faire confiance à une autre personne pour qu'elle respecte l'accord (ex. payer le pari). - -### Distributeur automatique numérique {#vending-machine} - -Nous pouvons comparer simplement un contrat intelligent à un distributeur automatique, qui fonctionne de manière assez similaire à un contrat intelligent ; des intrants spécifiques qui garantissent des résultats prédéterminés. - -- Vous choisissez un produit -- Le distributeur automatique affiche le prix -- Vous payez le prix -- Le distributeur automatique vérifie que vous avez payé le bon montant -- Le distributeur automatique vous remet votre article - -Le distributeur automatique ne distribuera le produit choisi que si toutes les conditions sont remplies. Si vous ne sélectionnez pas un produit ou que vous n'insérez pas le montant suffisant, le distributeur automatique ne distribuera pas le produit. - -### Exécution automatique {#automation} - -Le principal avantage d'un contrat intelligent est qu'il exécute de manière déterministe un code non ambigu lorsque certaines conditions sont remplies. Il n'est pas nécessaire d'attendre qu'un humain interprète ou négocie le résultat. Il n'est donc plus nécessaire de recourir à des intermédiaires de confiance. - -Par exemple, vous pouvez rédiger un contrat intelligent qui détient des fonds en fiducie pour un enfant, autorisant celui-ci à retirer des fonds seulement à partir d'une date précise. S'il essaie de se retirer avant cette date, le contrat intelligent ne s'exécutera pas. Vous pouvez également rédiger un contrat qui vous fournit automatiquement une version numérique du titre de propriété d'une voiture lorsque vous payez le concessionnaire. - -### Résultats prévisibles {#predictability} - -Les contrats traditionnels sont ambigus parce qu'ils dépendent de l'homme pour leur interprétation et leur mise en œuvre. Par exemple, deux juges peuvent interpréter un contrat différemment, ce qui peut conduire à des décisions incohérentes et à des résultats inégaux. Les contrats intelligents éliminent cette possibilité. En effet, les contrats intelligents s'exécutent précisément en fonction des conditions écrites dans le code du contrat. Cette précision signifie que, dans les mêmes circonstances, le contrat intelligent produit le même résultat. - -### Enregistrement public {#public-record} - -Les contrats intelligents sont utiles pour les audits et le suivi. Comme les contrats intelligents Ethereum sont sur une blockchain publique, tout le monde peut suivre instantanément les transferts d'actifs ainsi que toute autre information connexe. Vous pouvez par exemple vérifier si quelqu'un a envoyé de l'argent à votre adresse. - -### Protection de la vie privée {#privacy-protection} - -Les contrats intelligents protègent également votre vie privée. Ethereum étant un réseau pseudonyme (vos transactions sont liées publiquement à une adresse cryptographique unique, et non à votre identité), vous pouvez protéger votre vie privée. - -### Transparence des conditions {#visible-terms} - -Enfin, comme pour les contrats traditionnels, vous pouvez vérifier le contenu d'un contrat intelligent avant de le signer (ou d'interagir avec). La transparence d'un contrat intelligent garantit que tout le monde peut l'examiner. - -## Cas d'utilisation des contrats intelligents {#use-cases} - -Les contrats intelligents peuvent faire essentiellement tout ce que les programmes informatiques peuvent faire. - -Ils peuvent effectuer des calculs, produire de la monnaie, stocker des données, générer des NFT, envoyer des messages et même produire des visuels. Voici quelques exemples courants et concrets : - -- [Stablecoins](/stablecoins/) -- [Création et distribution d'actifs numériques uniques](/nft/) -- [Plateforme d'échange ouverte et automatisée](/get-eth/#dex) -- [Jeu décentralisé](/dapps/?category=gaming) -- [Police d'assurance qui paie automatiquement](https://etherisc.com/) -- [Norme qui permet aux gens de créer des devises personnalisées et interopérables](/developers/docs/standards/tokens/) - -## Davantage qu'un apprenant visuel ? {#visual-learner} - -Regardez Finematics expliquer les contrats intelligents : - - - -## Complément d'information {#further-reading} - -- [Comment les contrats intelligents vont changer le monde](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [Contrats intelligents : la technologie de la blockchain qui va remplacer les juristes](https://blockgeeks.com/guides/smart-contracts/) -- [Les contrats intelligents pour les développeurs](/developers/docs/smart-contracts/) -- [Apprenez à rédiger des contrats intelligents](/developers/learning-tools/) -- [Maîtriser Ethereum - Qu'est-ce qu'un contrat intelligent ?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/src/content/translations/fr/social-networks/index.md b/src/content/translations/fr/social-networks/index.md deleted file mode 100644 index 277905ad246..00000000000 --- a/src/content/translations/fr/social-networks/index.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: Les réseaux sociaux décentralisés -description: Un aperçu des réseaux sociaux décentralisés sur Ethereum -lang: fr -template: use-cases -emoji: ":mega:" -sidebarDepth: 2 -image: ../../../../assets/ethereum-learn.png -summaryPoint1: Plateformes basées sur la blockchain pour les interactions sociales, la création et la distribution de contenu. -summaryPoint2: Les médias décentralisés protègent la confidentialité des utilisateurs et améliorent la sécurité des données. -summaryPoint3: Les jetons et les NFT créent de nouvelles façons de monétiser le contenu. ---- - -Les réseaux sociaux jouent un rôle considérable dans nos communications et interactions quotidiennes. Cependant, le contrôle centralisé de ces plates-formes a créé de nombreux problèmes : fuites de données, pannes de serveur, censure et violations de la vie privée sont souvent des compromis que les réseaux sociaux font. Pour lutter contre ces problèmes, les développeurs construisent des réseaux sociaux sur Ethereum. Les réseaux sociaux décentralisés peuvent résoudre bon nombre des problèmes des plates-formes traditionnelles et améliorer l'expérience globale des utilisateurs. - -## Qu'est-ce qu'un réseau social décentralisé ? {#what-are-decentralized-social-networks} - -Les réseaux sociaux décentralisés sont des plateformes basées sur la blockchain qui permettent aux utilisateurs d'échanger des informations ainsi que de publier et de distribuer du contenu au public. Parce que ces applications s'exécutent sur la blockchain, elles sont capables d'être décentralisées et résistantes à la censure et au contrôle excessif. - -De nombreux réseaux sociaux décentralisés existent comme alternatives aux services de médias sociaux établis, tels que Facebook, LinkedIn, Twitter et Medium. Les réseaux sociaux basés sur la blockchain ont un certain nombre de caractéristiques qui les placent devant les plates-formes traditionnelles. - -### Comment fonctionnent les réseaux sociaux décentralisés ? {#decentralized-social-networks-overview} - -Les réseaux sociaux décentralisés sont une classe d'applications [décentralisées (dapps)](/dapps/)— des applications gérées par des [contrats intelligents](/developers/docs/smart-contracts/) déployés sur la blockchain. Le code du contrat sert de backend pour ces applications et définit leur logique commerciale. - -Les plateformes de réseaux sociaux traditionnels se fondent sur des bases de données pour stocker des informations sur l’utilisateur, le code du programme et d’autres formes de données. Mais cela crée un point de vulnérabilité et comporte des risques significatifs. Par exemple, les serveurs de Facebook [sont devenus inaccessible pendant des heures](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) l'année dernière, coupant les utilisateurs de leur plateforme. - -Les réseaux sociaux décentralisés existent sur un réseau peer-to-peer regroupant des milliers de nœuds à travers le monde. Même si certains nœuds se coupent, le réseau fonctionnera sans interruption, rendant les applications résistantes aux pannes et aux défaillances. - -En utilisant des systèmes de stockage décentralisés comme [le système de fichiers interplanétaires (IPFS)](https://ipfs.io/), les réseaux sociaux basés sur Ethereum peuvent protéger les informations des utilisateurs contre l'exploitation et l'utilisation malveillante de leurs données. Personne ne vendra vos informations personnelles à des annonceurs, et les pirates informatiques ne pourront pas non plus voler vos informations confidentielles. - -De nombreuses plateformes basées sur la blockchain ont des tokens natifs qui alimentent la monétisation en l'absence de revenus publicitaires. Les utilisateurs peuvent acheter ces tokens pour accéder à certaines fonctionnalités, effectuer des achats dans l'application ou donner des conseils à leurs créateurs de contenu préférés. - -## Les avantages des réseaux sociaux décentralisés {#benefits} - -1. Les réseaux sociaux décentralisés sont résistants à la censure et ouverts à tous. Cela signifie que les utilisateurs ne peuvent pas être bannis ou censurés de manière arbitraire. - -2. Les réseaux sociaux décentralisés sont construits en open-source et rendent le code source des applications visibles afin de le vérifier. En éliminant l'implémentation d'algorithmes opaques communs aux réseaux sociaux traditionnels, les réseaux sociaux basés sur la blockchain peuvent aligner les intérêts des utilisateurs et des créateurs de plateformes. - -3. Les réseaux sociaux décentralisés éliminent les « intermédiaires ». Les créateurs de contenu ont une propriété directe sur leur contenu et s'engagent directement auprès des abonnés, des fans, des acheteurs et les autres parties, avec un contrat intelligent entre les deux. - -4. En tant que dApps fonctionnant sur le réseau Ethereum, qui est soutenu par un réseau mondial de nœuds peer-to-peer, les réseaux sociaux décentralisés sont moins sensibles aux arrêts de serveur et aux interruptions. - -5. Les plates-formes sociales décentralisées offrent un cadre de monétisation amélioré pour les créateurs de contenu par le biais de jetons non-fongibles (NFT), des paiements en crypto-monnaies dans l'application et bien davantage. - -6. Les réseaux sociaux décentralisés offrent aux utilisateurs un niveau élevé de respect de la vie privée et d'anonymat. Par exemple, une personne peut se connecter à un réseau social basé sur Ethereum à l'aide d'un profil ou d'un portefeuille d'ENS - sans avoir à partager des informations personnelles identifiables (PII), comme les noms, les adresses e-mail, etc. - -7. Les réseaux sociaux décentralisés reposent sur un stockage décentralisé, et non sur des bases de données centralisées, ce qui est nettement mieux pour protéger les données des utilisateurs. - -## Réseaux sociaux décentralisés sur Ethereum {#ethereum-social-networks} - -Le réseau Ethereum est devenu l'outil de prédilection des développeurs qui créent des réseaux sociaux décentralisés en raison de la popularité de ses jetons (ERC-20/ERC-721) et de son énorme base d'utilisateurs. Voici quelques exemples de réseaux sociaux basés sur Ethereum : - -### Peepeth {#peepeth} - -[Peepeth](https://peepeth.com/) est une plateforme de microblog similaire à Twitter. Il fonctionne sur la blockchain Ethereum et utilise IPFS pour stocker les données des utilisateurs. - -Les utilisateurs peuvent envoyer des messages courts appelés « Peeps », qui ne peuvent pas être supprimés ou modifiés. Vous pouvez collecter des dons ou donner des dons à n'importe qui sur la plateforme en Ether (ETH) sans quitter l'application. - -### Mirror {#mirror} - -[Mirror](https://mirror.xyz/) est une plateforme de rédaction d'article compatible avec le Web3 qui vise à être décentralisée et détenue par les utilisateurs. Les utilisateurs peuvent lire et écrire gratuitement sur Mirror en connectant simplement leurs portefeuilles. Les utilisateurs peuvent également collecter des articles et s'abonner à leurs auteurs préférés. - -Les articles publiés sur Mirror sont stockés en permanence sur Arweave, une plate-forme de stockage décentralisée, et peuvent être frappés en tant que [jetons non fongibles (NFT) collectionnable](/nft/) connus sous le nom de Writing NFTs. La création des Writing NFTs est entièrement gratuite pour les auteurs, et la collection est stockée sur une couche 2 d'Ethereum — rendant les transactions peu coûteuses, rapides et écologiques. - -### MINDS {#minds} - -[MINDS](https://www.minds.com/) est l'un des réseaux sociaux décentralisés les plus utilisés. Il fonctionne comme Facebook et a déjà rassemblé des millions d’utilisateurs. - -Les utilisateurs utilisent le jeton ERC-20 natif de la plateforme $MIND pour payer des items. Les utilisateurs peuvent également gagner des jetons $MIND en publiant du contenu populaire, en contribuant à l'écosystème et en amenant d'autres personnes sur la plateforme. - -## Les réseaux sociaux Web2 sur Ethereum {#web2-social-networks-and-ethereum} - -Les plateformes Web3 natives [Web3](/web3/) ne sont pas les seules à essayer d'intégrer la technologie blockchain dans leurs réseaux sociaux. De nombreuses plates-formes centralisées prévoient également d'intégrer Ethereum dans leur infrastructure : - -### Reddit {#reddit} - -Reddit a [utilisé les Points Communautaires](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users), qui sont des jetons [ERC-20](/developers/docs/standards/tokens/erc-20/) que les utilisateurs peuvent gagner en publiant du contenu de qualité et en apportant des contributions dans les communautés en ligne (subreddits). Vous pouvez échanger ces jetons dans un subreddit pour [obtenir des privilèges et des avantages exclusifs](https://www.reddit.com/community-points/). Pour ce projet, Reddit travaille avec Arbitrum, un rollup [layer 2](/layer-2/) conçu pour mettre à l'échelle les transactions Ethereum. - -Le programme est déjà en ligne, avec le subreddit r/CryptoCurrency [exécutant sa version de Points Communautaires appelée « Moons »](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Par description officielle, Moons « récompensent les affichages, les commentaires, et les modérateurs pour leurs contributions au subreddit ». Parce que ces jetons sont sur la blockchain (les utilisateurs les reçoivent dans des portefeuilles), ils sont indépendants de Reddit et ne peuvent pas être retirés. - -Au terme d'une phase bêta sur le réseau de test Rinkeby, les Points de la Communauté Reddit sont maintenant sur [Arbitrum Nova](https://nova.arbitrum.io/), une blockchain qui combine les propriétés d'une chaine latérale [](/developers/docs/scaling/sidechains/) et d'un [Rollup optimisé](/developers/docs/scaling/optimistic-rollups/). En plus d'utiliser des Points Communautaires pour débloquer des fonctionnalités spéciales, les utilisateurs peuvent également les échanger contre des monnaies officielles. De plus, le nombre de Points Communautaires qu'un utilisateur possède détermine son influence sur le processus décisionnel au sein de la communauté. - -### Twitter {#twitter} - -En janvier 2021, Twitter Blue [a déployé la prise en charge des NFT](https://mashable.com/article/twitter-blue-nft-profile-picture), permettant aux utilisateurs de connecter leurs portefeuilles et d'afficher les NFT sous forme de photos de profil. Lors de la rédaction, l'entreprise de médias sociaux a également [annoncé des plans](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) pour créer un réseau social décentralisé à l'avenir. - -### Instagram {#instagram} - -En mai 2022, [Instagram a annoncé le support des NFT](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) sur Ethereum et Polygon. Les utilisateurs pourront publier des NFT directement sur Instagram en connectant leur portefeuille Ethereum. - -## Utiliser les réseaux sociaux décentralisés {#use-decentralized-social-networks} - -- **[Status](https://status.im/)** - _Status est une application de messagerie sécurisée qui utilise un code open source, un protocole peer-to-peer et un chiffrement de bout en bout pour protéger vos messages contre des tiers._ -- **[Mirror.xyz](https://mirror.xyz/)** - _Mirror est une plateforme de publication, détenue par les utilisateurs, décentralisée et basée sur Ethereum pour permettre aux utilisateurs de financer des projets, de monétiser du contenu et de construire des communautés de grande valeur._ -- **[Lens Protocol](https://lens.xyz/)** - _Lens Protocol est un graphe social décentralisé et modulaire qui aide les créateurs à prendre en main leur contenu où qu'ils aillent dans le jardin numérique de l'internet décentralisé._ -- **[Farcaster](https://farcaster.xyz/)** - _Farcaster est un réseau social suffisamment décentralisé. C'est un protocole ouvert qui peut supporter de nombreux clients, tout comme l'e-mail._ - -## Lectures additionnelles {#further-reading} - -### Articles {#articles} - -- [Décentralisation des réseaux sociaux : guide relatif à la pile sociale du web3](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _Coinbase Ventures_ -- [Social Networks Are the Next Big Decentralization Opportunity](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Goertzel_ -- [Web3 holds the promise of decentralized, community-powered social networks](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ -- [An Overview of the Blockchain Social Media Landscape](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ -- [How Blockchain Can Solve Social Media Privacy](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Prableen Bajpai_ -- [Social Media Networks Are Coming To The Blockchain](https://businesstechguides.co/what-are-decentralized-social-networks) — _Emmanuel Awosika_ -- [Décentralisation suffisante pour les réseaux sociaux](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Varun Srinivasan_ - -### Vidéos {#videos} - -- [Decentralized Social Media Explained](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ -- [DeSo Blockchain Wants to Decentralize Social Media](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_ - -### Communautés {#communities} - -- [Serveur Discord de Status](https://discord.com/invite/3Exux7Y) -- [Serveur Discord de Mirror](https://discord.com/invite/txuCHcE8wV) -- [r/CryptoMonnaie subreddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/fr/staking/pools/index.md b/src/content/translations/fr/staking/pools/index.md deleted file mode 100644 index 859bbe61178..00000000000 --- a/src/content/translations/fr/staking/pools/index.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: Mise en jeu mutualisée -description: Un aperçu de la façon de débuter avec la mise en jeu d'ETH mutualisée -lang: fr -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-pool.png -alt: Leslie le rhinocéros nage dans la piscine. -sidebarDepth: 2 -summaryPoints: - - Misez et gagnez des récompenses avec n'importe quel montant d'ETH en joignant vos forces à celles des autres - - Laissez de côté la partie difficile et confiez la validation des opérations à une tierce partie - - Conservez vos jetons de staking dans votre propre portefeuille ---- - -## Que sont les groupes d'enjeu ? {#what-are-staking-pools} - -Les groupes d'enjeux offrent une approche collaborative permettant à de nombreuses personnes ayant de petites quantités d'ETH de rassembler les 32 ETH nécessaires pour activer un jeu de clés de validateur. Le concept de groupes d'enjeux n'est pas pris en charge de manière native par le protocole. Des solutions ont donc été élaborées séparément pour répondre à ce besoin. - -Certains pools fonctionnent à l'aide de contrats intelligents, dans lesquels les fonds peuvent être déposés. Ceux-ci gèrent et suivent votre mise en jeu sans intermédiaire de confiance, et vous remettent un jeton représentant la valeur de votre mise. D'autres pools n'utilisent pas de contrats intelligents et sont, au contraire, gérés hors chaîne. - -## Pourquoi miser via un pool ? {#why-stake-with-a-pool} - -En plus des avantages que nous avons décrits dans notre [introduction à la mise en jeu](/staking/), la mise en jeu mutualisée offre un certain nombres d'avantages spécifiques. - - - - - - - - - -## Éléments importants {#what-to-consider} - -La mise en jeu mutualisée ou déléguée n'est pas prise en charge nativement par le protocole Ethereum, mais compte tenu de la demande des utilisateurs de miser moins de 32 ETH, un nombre croissant de solutions ont été construites pour répondre à cette demande. - -Chaque pool et les outils ou contrats intelligents qu'ils utilisent ont été élaborés par différentes équipes, et chacun présente des avantages et des risques. Les pools permettent aux utilisateurs d'échanger leur ETH contre un jeton représentant l'ETH mis en jeu. Ce jeton est utile car il permet aux utilisateurs d'échanger n'importe quel montant d'ETH avec un montant équivalent d'un jeton porteur d'intérêts qui génère des rendements à partir des récompenses de staking appliqués aux ETH sous-jacents (et vice versa) sur les plateformes d'échanges décentralisées alors même que l'ETH réel reste mis en jeu sur la couche consensus. Cela signifie que les échanges entre un produit ETH mis en jeu générateur de rendement et l'« ETH brut» sont rapides, faciles et pas uniquement disponibles en multiples de 32 ETH. - -Toutefois, ces jetons d'ETH mis en jeu ont tendance à créer des comportements assimilables à des cartels où de vastes montants d'ETH mis en jeu finissent sous le contrôle de quelques organisations centralisées plutôt que réparties à travers de nombreux individus indépendants. Cela crée les conditions d'une censure ou d'une extraction de valeur. La norme d'excellence pour la mise en jeu devrait toujours porter sur des personnes individuelles qui exécutent des nœuds validateurs sur leur propre matériel, dans la mesure du possible. - -[En savoir plus sur les risques de la mise en jeu de jetons](https://notes.ethereum.org/@djrtwo/risks-of-lsd). - -Les indicateurs d'attributs sont utilisés ci-dessous pour signaler des forces ou faiblesses notables qu'un groupe de mise en jeu mutualisé peut présenter. Utilisez cette section comme référence pour savoir comment nous définissons ces attributs lorsque vous choisissez un pool à rejoindre. - - - -## Explorez les pools de mise en jeu {#explore-staking-pools} - -De nombreuses options sont disponible pour vous aider dans votre configuration. Utilisez les indicateurs ci-dessus pour vous guider à travers les outils ci-dessous. - - - - - -Veuillez noter l'importance de choisir un service qui prend au sérieux [la diversité des clients](/developers/docs/nodes-and-clients/client-diversity/) , car elle améliore la sécurité du réseau et limite vos risques. Les services prouvant que l'utilisation d'un client majoritaire est limitée sont indiqués avec "diversité des clients d'exécution" et "diversité des clients de consensus." - -Vous souhaitez suggérer un outil de mise en jeu que nous avons manqué ? Consultez notre [politique de liste de produits](/contributing/adding-staking-products/) pour voir s'il conviendrait, et le soumettre à examen. - -## Questions fréquemment posées {#faq} - - -Généralement, des jetons de mise en jeu RC-20 sont émis à destination des participants et représentent la valeur de leur ETH mis en jeu et, en sus, les récompenses. Gardez en mémoire que les différents pools distribueront des récompenses de mise en jeu à leurs utilisateurs selon des règles différentes, mais c'est un sujet général. - - - -Et c'est déjà le cas ! La mise à niveau du réseau Shanghai/Capella a eu lieu en avril 2023 et a introduit des retraits de staking. Après cette mise à niveau, les comptes de validateur soutenant les pools de mise en jeu auront la possibilité de sortir et de retirer l'ETH à leur adresse de retrait désignée. Cela permet de racheter votre part de mise en jeu pour l'ETH. Vérifiez auprès de votre fournisseur de services pour savoir comment il supporte cette fonctionnalité. - -Alternativement, les pools qui utilisent les jetons de staking ERC-20 permettent à leurs utilisateurs d'échanger ce jeton sur le marché ouvert, vous permettant de vendre votre position de mise, en retirant sans pour autant supprimer l'ETH du contrat de staking. - -En savoir plus sur les retraits de mise en jeu. - - - -Il existe de nombreuses similitudes entre ces options de mise en jeu mutualisée et les échanges centralisés, comme la capacité de mettre en jeu de petites quantités d'ETH et de les regrouper pour activer les validateurs. - -Contrairement aux plateformes d'échanges centralisés, beaucoup d'autres options de mise en jeu mutualisée utilisent des contrats intelligents et/ou des jetons de staking, qui sont habituellement des jetons ERC-20 pouvant être détenus dans votre propre portefeuille, et achetés ou vendus comme n'importe quel autre jeton. Cela vous offre une couche de souveraineté et de sécurité en vous donnant le contrôle de vos jetons, mais ne vous donne toujours pas de contrôle direct sur le client de validateur qui atteste en votre nom en arrière-plan. - -Certaines options de mise en commun sont plus décentralisées que d'autres concernant les nœuds qui les soutiennent. Pour promouvoir la santé et la décentralisation du réseau, les validateurs sont toujours encouragés à sélectionner un service de mutualisation offrant un ensemble décentralisé d'opérateurs de nœuds sans permission. - - -## Lectures complémentaires {#further-reading} - -- [L'Annuaire de la mise en jeu sur Ethereum.](https://www.staking.directory/) - _Eridian and Spacesider_ -- [Staking with Rocket Pool - Staking Overview](https://docs.rocketpool.net/guides/staking/overview.html) - _RocketPool docs_ -- [Staking Ethereum With Lido](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Aide Lido docs_ diff --git a/src/content/translations/fr/staking/saas/index.md b/src/content/translations/fr/staking/saas/index.md deleted file mode 100644 index eb008f0e2ba..00000000000 --- a/src/content/translations/fr/staking/saas/index.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -title: Mise en jeu en tant que service -description: Un aperçu de la façon de débuter avec la mise en jeu ETH mutualisée -lang: fr -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-saas.png -alt: Leslie le rhinocéros flottant dans les nuages. -sidebarDepth: 2 -summaryPoints: - - Les opérateurs de nœuds tiers gèrent le fonctionnement de votre client de validateur - - Excellente option pour toute personne disposant de 32 ETH et ne se sentant pas à l'aise face à la complexité technique du fonctionnement d'un nœud - - Réduire la confiance et conserver la garde de vos clés de retrait ---- - -## Qu'est-ce que la mise en jeu en tant que service ? {#what-is-staking-as-a-service} - -Staking as a service ("la mise en jeu en tant que service, ou SaaS”) est une catégorie de services de mise en jeu au sein de laquelle vous déposez vos propres 32 ETH pour un validateur, mais déléguez les opérations de nœuds à un opérateur tiers. Ce processus implique généralement d'être guidé à travers la configuration initiale, y compris la génération de clés et le dépôt, puis de télécharger vos clés de signature à l'opérateur. Cela permet au service d'exploiter votre validateur en votre nom, généralement moyennant des frais mensuels. - -## Pourquoi miser via un service? {#why-stake-with-a-service} - -Le protocole Ethereum ne soutient pas nativement la délégation de mise en jeu. Ces services ont donc été construits pour répondre à cette demande. Si vous avez 32 ETH à miser, mais que vous ne vous sentez pas à l'aise avec le matériel, les services SaaS vous permettent de déléguer la partie complexe pendant que vous gagnez des récompenses de bloc natif. - - - - - - - - - -## Ce que vous devez prendre en compte {#what-to-consider} - -Il existe un nombre croissant de fournisseurs de services SaaS pour vous aider à miser votre ETH, mais chacun présente ses propres avantages et risques. Toutes les options SaaS requièrent des hypothèses de confiance supplémentaires par rapport à la mise en jeu individuelle depuis le domicile. Les options Saas peuvent contenir du code supplémentaire qui n'est ni ouvert ni auditable, pour les clients Ethereum. Le SaaS a également un effet préjudiciable sur la décentralisation du réseau. Selon la configuration, il se peut que vous ne contrôliez pas votre validateur - l'opérateur pourrait agir malhonnêtement en utilisant votre ETH. - -Les indicateurs sont listés ci-dessous pour signaler les forces ou faiblesses notables d'un fournisseur SaaS répertorié. Utilisez cette section comme référence pour définir ces indicateurs pendant que vous choisissez un pool à rejoindre. - - - -## Explorer les fournisseurs de services de mise en jeu {#saas-providers} - -Vous trouverez ci-dessous quelques fournisseurs SaaS disponibles. Utilisez les indicateurs ci-dessus pour vous guider à travers les outils ci-dessous - - - -#### Fournisseurs SaaS - - - -Veuillez noter l'importance de choisir un service qui prend au sérieux [la diversité des clients](/developers/docs/nodes-and-clients/client-diversity/) , car elle améliore la sécurité du réseau et limite vos risques. Les services prouvant que l'utilisation d'un client majoritaire est limitée sont indiqués avec "diversité des clients d'exécution" et "diversité des clients de consensus." - -#### Générateurs de clés - - - -Avez-vous une suggestion concernant un fournisseur de mise en jeu en tant que service que nous avons manqué ? Consultez notre [politique de liste de produits](/contributing/adding-staking-products/) pour voir s'il conviendrait, et le soumettre à examen. - -## Questions fréquemment posées {#faq} - - -Les dispositions varient d'un fournisseur à l'autre, mais en général, vous serez guidé à travers la configuration de toutes les clés de signature dont vous avez besoin (un par 32 ETH), afin de les télécharger à votre fournisseur et lui permettre de les valider en votre nom. Les clés de signature seules ne donnent aucune possibilité de retirer, de transférer ou de dépenser vos fonds. Cependant, elles donnent la possibilité de voter pour le consensus, ce qui, si ce n'est pas fait correctement, peut entraîner des pénalités de mise hors ligne ou de délestage. - - - -Oui. Chaque compte est composé à la fois de clés de signature BLS (Boneh-Lynn-Shachamet) et de clés de retrait BLS. Pour qu'un validateur puisse attester de l'état de la chaîne, participer à des comités de synchronisation et proposer des blocs, les clés de signature doivent être facilement accessibles par un client validateur. Celles-ci doivent être connectées à Internet sous une forme ou une autre, et sont donc par nature considérées comme des clés « chaudes ». Ceci est une exigence pour que votre validateur puisse attester. Par conséquent les clés utilisées pour transférer ou retirer des fonds sont séparées pour des raisons de sécurité. - -Les clés de retrait BLS sont utilisées pour signer un message unique qui indique à quel compte de couche d'exécution les récompenses de mise en jeu de compte et les fonds sortis doivent être envoyés. Une fois ce message diffusé, les clés de retrait BLS ne sont plus nécessaires. Au lieu de cela, le contrôle des fonds retirés est délégué de façon permanente à l'adresse que vous avez fournie. Cela vous permet de définir une adresse de retrait sécurisée via votre propre portefeuille de stockage à froid, minimisant le risque pour les fonds de votre validateur, même si quelqu'un d'autre contrôle les clés de signature de votre validateur. - -La mise à jour des identifiants de retrait est une étape nécessaire pour activer les retraits\*. Ce processus consiste à générer les clés de retrait en utilisant votre phrase de récupération mnémotechnique. - -Assurez-vous que vous que cette phrase de récupération soit sauvegardée en toute sécurité ou vous ne pourrez pas générer vos clés de retrait le moment venu. - -Les stakers qui ont fourni une adresse de retrait avec le dépôt initial n'ont pas besoin de la définir. Consultez votre fournisseur SaaS pour obtenir une assistance sur la façon de préparer votre validateur. - - - -Les retraits de prises ont été mis en œuvre lors de la mise à niveau de Shanghai/Capella en avril 2023. Après cela, les personnes qui misent doivent fournir une adresse de retrait (si elle n'est pas fournie avec le dépôt initial) et les paiements de récompense commenceront automatiquement à être distribués de façon périodique à intervalles de quelques jours. - -Les validateurs peuvent également se retirer entièrement en tant que validateur, ce qui débloquera leur solde ETH restant pour le retrait. Les comptes qui ont fourni une adresse de retrait d’exécution et terminé le processus de sortie recevront tout leur solde à l’adresse de retrait fournie lors du prochain balayage du validateur. - -En savoir plus sur les retraits de mise en jeu - - - -En utilisant un fournisseur SaaS, vous confiez l'exploitation de votre nœud à quelqu'un d'autre. Cela s'accompagne du risque de mauvaise performance du nœud, qui n'est pas sous votre contrôle. Dans le cas où votre validateur est banni, votre solde de validateur sera pénalisé et supprimé de force du groupe de validateurs. - -Une fois le processus de coupure ou de sortie terminé, ces fonds seront transférés à l'adresse de retrait assignée au validateur. Cela nécessite de fournir une adresse de retrait à activer. Il se peut que l'adresse de retrait ait été fournie sur dépôt initial. Sinon, les clés de retrait du validateur devront être utilisées pour signer un message indiquant une adresse de retrait. Si aucune adresse de retrait n'a été fournie, les fonds resteront verrouillés jusqu'à ce qu'ils soient fournis. - -Communiquez avec un fournisseur individuel de SaaS pour obtenir davantage de détails sur n'importe quelles garanties ou options d'assurance ainsi que des instructions sur la façon de fournir une adresse de retrait. Si vous préférez contrôler complètement la configuration de votre validateur, apprenez-en plus sur la façon de miser votre ETH de manière individuelle. - - -## Complément d'information {#further-reading} - -- [L'Annuaire de la mise en jeu sur Ethereum.](https://www.staking.directory/) - _Eridian and Spacesider_ -- [Helping Client Diversity](https://www.attestant.io/posts/evaluating-staking-services/) - _Jim McDonald 2020_ diff --git a/src/content/translations/fr/staking/solo/index.md b/src/content/translations/fr/staking/solo/index.md deleted file mode 100644 index 7d87aa33382..00000000000 --- a/src/content/translations/fr/staking/solo/index.md +++ /dev/null @@ -1,204 +0,0 @@ ---- -title: Misez votre ETH de manière individuelle -description: Un aperçu de la façon de commencer à miser votre ETH de manière individuelle -lang: fr -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-solo.png -alt: Leslie le rhinocéros sur sa puce d'ordinateur. -sidebarDepth: 2 -summaryPoints: - - Recevoir directement du protocole un maximum de récompenses pour le maintien de votre validateur en bon état de fonctionnement et en ligne - - Faites fonctionner votre propre matériel et contribuez ainsi à la sécurité et la décentralisation du réseau Ethereum - - Supprimez le tiers de confiance et gardez en permanence le contrôle sur vos fonds ---- - -## Qu'est-ce que la mise en jeu individuelle ? {#what-is-solo-staking} - -La mise en jeu individuelle consiste à [faire fonctionner un noeud Ethereum](/run-a-node/) connecté à Internet et à déposer 32 ETH pour activer un [validateur](#faq), vous donnant la possibilité de participer directement au consensus du réseau. - -**Le staking individuel augmente la décentralisation du réseau Ethereum**, rendant Ethereum plus résistant à la censure et robuste contre les attaques. D'autres méthodes de mises en jeu peuvent ne pas aider le réseau de la même manière. La mise en jeu individuelle est la meilleure option de staking pour sécuriser Ethereum. - -Un nœud Ethereum est constitué à la fois d'un client de couche d'exécution (EL) et d'un client de consensus (CL). Ces clients sont des logiciels qui se coordonnent, avec un ensemble valide de clés de signature, pour vérifier les transactions et les blocs, attester de la tête de la chaîne, agréger les attestations et proposer des blocs. - -Les validateurs individuels sont responsables du fonctionnement du matériel nécessaire à l'exécution de ces clients. Pour cela, il est fortement recommandé d'utiliser une machine dédiée que vous opérez depuis chez vous - c'est extrêmement bénéfique pour la santé du réseau. - -Un validateur individuel reçoit des récompenses directement du protocole pour le maintien de son validateur en bon état de fonctionnement et en ligne. - -## Pourquoi miser de manière individuelle ? {#why-stake-solo} - -La mise en jeu individuelle demande plus de responsabilités, mais vous donne un contrôle maximal sur vos fonds et votre configuration de mise en jeu. - - - - - - - -## Considérations avant de miser de manière individuelle {#considerations-before-staking-solo} - -Bien que nous souhaitions que la mise en jeu individuelle soit accessible et sans risque pour tout le monde, la réalité est différente. Diverses considérations pratiques et sérieuses sont à garder à l'esprit avant de choisir de miser vos ETH de manière individuelle. - - - -Lorsque vous opérerez votre propre nœud, vous devrez passer du temps à apprendre à utiliser le logiciel que vous avez choisi. Cela implique de lire la documentation adéquate et d'être connecté aux canaux de communication de ses équipes de développeurs. - -Mieux vous comprendrez le logiciel que vous exécutez et comment la preuve d'enjeu fonctionne, moins ce sera risqué pour vous, et plus il vous sera facile de résoudre toute sorte de problèmes qui peuvent survenir en tant qu'opérateur de nœud. - - - -La configuration des nœuds nécessite un niveau d'aisance raisonnable dans le travail avec des ordinateurs, bien que de nouveaux outils apparaissent au fil du temps pour rendre cela plus facile. Comprendre l'interface de ligne commande est utile, mais n'est plus strictement nécessaire. - -Il faut également faire un petit peu de configuration matérielle et posséder une certaine compréhension des spécifications minimales recommandées. - - - -Tout comme la façon dont les clés privées sécurisent votre adresse Ethereum, vous devrez générer des clés spécifiques pour votre validateur. Vous devez comprendre comment conserver toutes vos phrases de récupération ou vos clés privées en sécurité.{' '} - -Sécurité d'Ethereum et prévention des escroqueries - - - -Le matériel tombe parfois en panne, tout comme les connexions réseau, et les logiciels client ont parfois besoin d'être mis à jour. La maintenance des nœuds est inévitable et nécessitera occasionnellement votre attention. Il est préférable de se tenir au courant de toutes les mises à niveau du réseau prévues, ou d'autres mises à jour critiques des logiciels client. - - - -Vos récompenses sont proportionnelles au temps passé par votre validateur en ligne et au fait qu'il atteste correctement. Tout temps passé hors ligne s'accompagne de pénalités proportionnelles au nombre de validateurs qui se trouvent hors ligne au même moment, mais ne donne pas lieu à des sanctions de délestage (slashing). La bande passante est également un facteur important, car les récompenses sont réduites pour les attestations qui ne sont pas reçues à temps. Les exigences varient, mais un minimum de 10 Mbit/s est recommandé (débits descendant et montant). - - - -Les sanctions de délestage (slashing) diffèrent des pénalités d'inactivité (applicables si un validateur est hors ligne). Ce sont des pénalités bien plus graves, réservées aux délits ayant un caractère malveillant. Exécuter un client minoritaire en ayant vos clés chargées sur un seul appareil à la fois permet de minimiser le risque de délestage. Cela étant dit, toute personne plaçant des ETH doit être consciente du risque de délestage. - -Plus de détails sur le slashing et le cycle de vie du validateur - - - - - -## Fonctionnement {#how-it-works} - - - -Lorsque vous êtes actif, vous gagnerez des récompenses ETH, qui seront déposées périodiquement dans votre adresse de retrait. - -Si vous le désirez, vous pouvez vous retirer en tant que validateur, ce qui élimine l'obligation d'être en ligne et met fin à toute autre récompense. Votre solde restant sera alors retiré à l'adresse de retrait que vous avez désignée lors de la configuration. - -[En savoir plus sur les retraits de mise en jeu](/staking/withdrawals/) - -## Commencer avec la plateforme de lancement de la mise en jeu {#get-started-on-the-staking-launchpad} - -La plateforme de lancement de la mise en jeu est une application open source qui vous aidera à devenir un validateur. Elle vous guidera dans le choix de vos clients, génèrera vos clés et déposera vos ETH dans le contrat de dépôt des mises en jeu. Une liste de vérification est fournie pour vous assurer que vous avez fait le tour de la question pour installer votre validateur en toute sécurité. - - - -## Éléments à prendre en compte avec les outils de configuration de nœud et de client {#node-tool-considerations} - -Un nombre croissant d'outils et de services vous aident à miser vos ETH, mais chacun comporte des risques et des avantages différents. - -Les indicateurs d'attributs sont utilisés ci-dessous pour signaler des forces ou faiblesses notables d'un outil de mise en jeu répertorié. Utilisez cette section comme référence pendant que vous choisissez les outils qui vous aideront dans votre parcours de mise en jeu. - - - -## Explorer les outils de configuration de noeud et de client {#node-and-client-tools} - -Il existe une variété d'options disponibles pour vous aider dans votre configuration. Utilisez les indicateurs ci-dessus pour vous guider à travers les outils ci-dessous. - - - -#### Outils de nœud - - - -Veuillez noter l'importance de choisir un [client minoritaire](/developers/docs/nodes-and-clients/client-diversity/) , car cela améliore la sécurité du réseau et limite vos risques. Les outils qui permettent de configurer un client minoritaire sont désignés comme "multi-client." - -#### Générateurs de clés - -Ces outils peuvent être utilisés en alternative à [l'interface de dépôt de mise en jeu](https://github.com/ethereum/staking-deposit-cli/) pour vous aider à générer vos clés. - - - -Vous souhaitez suggérer un outil de mise en jeu que nous avons manqué ? Consultez notre [politique de liste de produits](/contributing/adding-staking-products/) pour voir s'il conviendrait, et le soumettre à examen. - -## Explorer les guides de mise en jeu individuelle {#staking-guides} - - - -## Questions fréquemment posées {#faq} - -Voici quelques-unes des questions les plus fréquentes relatives à la mise en jeu qui valent la peine d'être connues. - - - -Un validateur est une entité virtuelle existant sur Ethereum et participant au consensus du protocole Ethereum. Les validateurs sont représentés par un solde, une clé publique et d'autres propriétés. Un client de validateur est le logiciel qui agit au nom du validateur en détenant et en utilisant sa clé privée. Un même client peut contenir plusieurs paires de clés, contrôlant de nombreux validateurs. - - - - -Chaque paire de clés associée à un validateur nécessite exactement 32 ETH pour être activée. Déposer plus d'ETH sur un même ensemble de clés n'augmente pas le potentiel de récompense, car chaque validateur est limité à un solde effectif de 32 ETH. Cela signifie que la mise en jeu se fait par tranches de 32 ETH, chacune avec son propre jeu de clés et son propre solde. - -Ne déposez pas plus de 32 ETH pour un seul validateur. Cela n'augmentera pas vos récompenses. Si une adresse de retrait a été définie pour le validateur, Les fonds excédentaires de 32 ETH seront automatiquement retirés à cette adresse lors du prochain balayage de validateur. - -Si la mise en jeu individuelle vous semble trop exigeante, envisagez d'utiliser un fournisseur de mise en jeu en tant que service, ou si vous possédez moins de 32 ETH, consultez les groupes d'enjeu. - - - -Se déconnecter pendant que le réseau se finalise correctement n'entraînera PAS de délestage. De petites pénalités d'inactivité sont encourues si votre validateur n'est pas disponible pour attester pendant une période donnée (d'une durée de 6,4 minutes chacune), mais cela reste très différent du délestage. Ces pénalités sont légèrement inférieures à la récompense que vous auriez obtenue si le validateur avait été disponible pour attester, et les pertes peuvent être récupérées avec un temps de remise en ligne à peu près équivalent. - -Notez que les pénalités d'inactivité sont proportionnelles au nombre de validateurs se trouvant hors ligne en même temps. Dans les cas où une grande partie du réseau est hors ligne en même temps, les pénalités pour chacun de ces validateurs seront plus importantes que lorsqu'un seul validateur est indisponible. - -Dans des cas extrêmes, si le réseau cesse de se finaliser parce que plus d'un tiers des valideurs sont hors ligne, ces utilisateurs subiront ce que l'on appelle une fuite d'inactivité quadratique, qui consiste en une fuite exponentielle d'ETH à partir de comptes de valideurs hors ligne. Cela permet au réseau de s'auto-régénérer en brûlant les ETH des validateurs inactifs jusqu'à ce que leur solde atteigne 16 ETH, après quoi ils seront automatiquement éjectés du pool de validateurs. Les validateurs en ligne restants comprendront finalement, à nouveau, 2/3 du réseau, satisfaisant ainsi la supermajorité nécessaire pour finaliser à nouveau la chaîne. - - - -Pour faire court, cela ne peut jamais être totalement garanti, mais si vous êtes de bonne foi, que vous utilisez un client minoritaire et que vous ne conservez vos clés de signature que sur une seule machine à la fois, le risque de subir un délestage est quasiment nul. - -Seuls quelques moyens spécifiques peuvent aboutir à ce qu'un validateur soit délesté et éjecté du réseau. À l'heure où nous écrivons ces lignes, les délestages qui se sont produits sont exclusivement le produit de configurations matérielles redondantes où les clés de signature sont stockées sur deux machines distinctes à la fois. Cela peut entraîner par inadvertance un double vote de vos clés, ce qui constitue une faute sanctionnable. - -L'exécution d'un client supermajoritaire (tout client utilisé par plus de 2/3 du réseau) comporte également le risque d'un délestage dans le cas où ce client présente un bogue qui entraîne une fouche de la chaîne. Cela peut aboutir à une fourche défectueuse qui sera finalisée. Pour revenir à la chaîne voulue, il faudrait soumettre un vote circulaire en essayant d'annuler un bloc finalisé. Il s'agit également d'une infraction passible de sanctions et peut être évité simplement, en utilisant, à la place, un client minoritaire. - -Des bogues équivalents dans un client minoritaire ne seraient jamais finalisés et ne donneraient donc jamais lieu à un vote circulaire, et entraîneraient simplement des pénalités d'inactivité, et non un délestage. - - - - - -Les clients individuels peuvent varier légèrement en termes de performances et d'interface utilisateur, car ils sont tous développés par des équipes différentes utilisant des langages de programmation variés. Ceci étant dit, aucun d'entre eux n'est "le meilleur". Tous les clients de production sont d'excellents logiciels, qui exécutent tous les mêmes fonctions de base pour se synchroniser et interagir avec la blockchain. - -Puisque tous les clients de production fournissent les mêmes fonctionnalités de base, il est en fait très important que vous choisissiez un client minoritaire, c'est-à-dire tout client qui n'est actuellement PAS utilisé par une majorité de valideurs sur le réseau. Cela peut sembler paradoxal, mais le fait d'utiliser un client majoritaire ou supermajoritaire vous expose à un risque accru de délestage en cas de bogue dans ce client. Utiliser un client minoritaire limite considérablement ces risques. - -En savoir plus sur les raisons pour lesquelles la diversité des clients est essentielle - - - -Bien qu'un serveur privé virtuel (VPS) puisse être utilisé en remplacement du matériel domestique, l'accès physique et l'emplacement de votre client validateur ont leur importance. Les solutions centralisées dans le cloud, telles que Amazon Web Services ou Digital Ocean, offrent la commodité de ne pas avoir à obtenir et à faire fonctionner du matériel, au détriment de la centralisation du réseau. - -Plus il y a de clients validateurs fonctionnant sur une seule solution de stockage en cloud centralisée, plus cela devient dangereux pour ces utilisateurs. Tout événement qui mettrait ces fournisseurs hors ligne, qu'il s'agisse d'une attaque, d'une demande réglementaire ou d'une simple panne de courant ou d'Internet, entraînera la mise hors ligne simultanée de tous les clients de validation qui dépendent de ce serveur. - -Les pénalités hors ligne sont proportionnelles au nombre de personnes se trouvant hors ligne au même moment. L'utilisation d'un VPS augmente considérablement le risque de voir les pénalités hors ligne devenir plus sévères, et accroît votre risque de fuite quadratique ou de délestage dans le cas où la panne serait suffisamment importante. Pour minimiser vos propres risques et ceux encourus par le réseau, les utilisateurs sont fortement encouragés à se procurer et à exploiter leur propre matériel. - - - - -Les retraits de quelque nature que ce soit de la Chaîne Phare (Beacon Chain) exigent que les identifiants de retrait soient définis. - -Les nouvelles personnes plaçant des ETH définissent ceci au moment de la génération et du dépôt de clés. Les stakers existants qui n'ont pas déjà défini cela peuvent mettre à jour leurs clés pour supporter cette fonctionnalité. - -Une fois que les identifiants de retrait sont définis, les paiements de récompense (ETH cumulés par rapport aux 32 initiaux) seront distribués périodiquement à l'adresse de retrait automatiquement. - -Pour déverrouiller et recevoir la totalité de votre solde, vous devez également terminer le processus de sortie de votre validateur. - -En savoir plus sur les retraits de mise en jeu - - -## Complément d'information {#further-reading} - -- [L'Annuaire de la mise en jeu sur Ethereum.](https://www.staking.directory/) - _Eridian and Spacesider_ -- [Ethereum's Client Diversity Problem](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ -- [Helping Client Diversity](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ -- [Client diversity on Ethereum's consensus layer](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ -- [How To: Shop For Ethereum Validator Hardware](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ -- [Step by Step: How to join the Ethereum 2.0 Testnet](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _Butta_ -- [Eth2 Slashing Prevention Tips](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raul Jordan 2020_ diff --git a/src/content/translations/fr/staking/withdrawals/index.md b/src/content/translations/fr/staking/withdrawals/index.md deleted file mode 100644 index 08d87e646bf..00000000000 --- a/src/content/translations/fr/staking/withdrawals/index.md +++ /dev/null @@ -1,218 +0,0 @@ ---- -title: Retraits de la mise en jeu -description: Page résumant ce que sont les retraits de staking, comment ils fonctionnent et ce que les stakers doivent faire pour obtenir leurs récompenses -lang: fr -template: staking -image: ../../../../../assets/staking/leslie-withdrawal.png -alt: Leslie le rhinocéros avec ses récompenses de staking -sidebarDepth: 2 -summaryPoints: - - La mise à niveau Shanghai/Capella a permis les retraits de staking sur Ethereum - - Les opérateurs validateurs doivent fournir une adresse de retrait pour l'activer - - Les récompenses sont automatiquement distribuées tous les deux ou trois jours - - Les validateurs qui quittent complètement le staking recevront leur solde restant ---- - - -Les retraits de staking ont été activés avec la mise à niveau Shanghai/Capella, qui a eu lieu le 12 avril 2023. Plus d'informations sur Shanghai/Capella - - -**Les retraits de staking** font référence aux transferts d'ETH depuis le compte d'un validateur sur la couche de consensus d'Ethereum (la chaîne phare) vers la couche d'exécution où ils peuvent être traités. - -**Les paiements des récompenses au dessus d'un solde** de 32 ETH seront automatiquement et régulièrement envoyés à une adresse de retrait liée à chaque validateur, une fois fourni par l’utilisateur. Les utilisateurs peuvent également **quitter le staking entièrement**, débloquer leur solde de validateur complet. - -## Récompenses de staking {#staking-rewards} - -Les paiements de récompenses sont traités automatiquement pour les comptes des validateurs actifs avec un solde effectif de 32 ETH maximum. - -Tout solde supérieur à 32 ETH gagné grâce aux récompenses ne contribue pas réellement au capital, ou à augmenter le poids de ce validateur sur le réseau, et se trouve donc automatiquement renvoyé après quelques jours lors du paiement des récompenses. À part fournir une adresse de retrait une seule fois, recevoir ces récompenses ne nécessite aucune action de la part de l'opérateur du nœud validateur. Tout cela est géré depuis la couche de consensus, donc aucun gaz (frais de transaction) n'est requis à aucune étape. - -### Comment sommes-nous arrivés là ? {#how-did-we-get-here} - -Au cours des dernières années, Ethereum a subi plusieurs mises à niveau de réseau en passant à un réseau sécurisé par ETH lui-même, plutôt que par un minage coûteux en énergie auparavant. Participer au consensus sur Ethereum est maintenant connu sous le nom de « staking », les participants ayant volontairement bloqué l'ETH, le mettant « en jeu » pour pouvoir participer au réseau. Les utilisateurs qui suivent les règles seront récompensés, tandis que les tentatives de triche peuvent être pénalisées. - -Depuis le lancement du contrat de dépôt en staking en novembre 2020, certains courageux pionniers d'Ethereum ont volontairement bloqué des fonds pour activer des comptes « validateurs », spéciaux qui ont le droit d'attester formellement et de proposer des blocs, en suivant les règles du réseau. - -Avant la mise à niveau de Shanghai/Capella, vous ne pouviez pas utiliser l'ETH déposé en staking. Mais désormais vous pouvez choisir de recevoir automatiquement vos récompenses dans un compte de votre choix, et vous pouvez également retirer vos ETH mis en jeu quand vous le souhaitez. - -### Comment puis-je me préparer ? {#how-do-i-prepare} - - - -### Informations importantes {#important-notices} - -Fournir une adresse de retrait est une étape requise pour tout compte de validateur avant d'être admissible à un retrait d'ETH sur son solde. - - - Chaque compte de validateur ne peut se voir attribué qu'une seule adresse de retrait. Une fois qu'une adresse est choisie et soumise à la couche de consensus, elle ne peut pas être annulée ou modifiée à nouveau. Vérifiez la propriété et l'exactitude de l'adresse fournie avant de la soumettre. - - -Le fait de ne pas fournir cette adresse ne pose aucun danger pour vos fonds pendant ce temps, à condition que votre phrase mnémonique/de récupération soit restée en sécurité hors-ligne, et n'ait été compromise d'aucune façon. Ne pas ajouter d’identifiants de retrait laissera simplement l’ETH verrouillé sur le compte du validateur tel qu'il était jusqu'à jusqu’à ce qu’une adresse de retrait soit fournie. - -## Quitter entièrement le staking {#exiting-staking-entirely} - -Fournir une adresse de retrait est nécessaire pour que _les fonds_ puissent être transférés sur un solde de compte de validateur. - -Les utilisateurs qui cherchent à quitter entièrement le staking et à retirer leur solde complet doivent également signer et diffuser un message de « sortie volontaire » avec des clés de validateur qui lanceront le processus de sortie de la mise en jeu. Ceci est exécuté avec votre client de validateur et soumis à votre nœud de consensus, et ne nécessite pas de gaz. - -Le processus d'un validateur sortant du staking prend un temps variable, en fonction du nombre d'autres individus sortant en même temps. Une fois terminé, ce compte ne sera plus responsable de l'exécution des tâches du réseau de validateur, ne sera plus admissible aux récompenses, et n'aura plus d'ETH « en jeu ». À ce moment, le compte sera marqué comme entièrement « retirable ». - -Une fois qu'un compte est marqué comme « retirable » et que les identifiants de retrait ont été fournis, un utilisateur n'a plus rien à faire d'autre qu'attendre. Les comptes sont automatiquement et continuellement balayés par les proposeurs de blocs pour les fonds sortis qui sont admissibles, et le solde de votre compte sera transféré en entier (également connu sous le nom de « retrait complet ») au cours du prochain balayage. - -## Quand les retraits de staking sont-ils activés ? {#when} - -Les retraits de staking sont disponibles ! La fonction de retrait a été activée dans le cadre de la mise à niveau Shanghai/Capella qui a eu lieu le 12 avril 2023. - -La mise à niveau Shanghai/Capella a permis de récupérer de l'Ether précédemment mis en jeu vers un compte Ethereum standard. Cela a fermé la boucle de la liquidité mise en jeu, et a fait avancer Ethereum sur son chemin de construction d'un écosystème durable, évolutif, sûr et décentralisé. - -- [En savoir plus sur l'histoire d'Ethereum](/history/) -- [En savoir plus sur la feuille de route d'Ethereum](/roadmap/) - -## Comment fonctionnent les paiements de retraits ? {#how-do-withdrawals-work} - -Le fait qu'un validateur donné soit éligible ou non pour un retrait est déterminé par l'état du compte du validateur lui-même. Aucune intervention de l'utilisateur n'est nécessaire à un moment donné pour déterminer si un compte doit faire l'objet d'un retrait ou non - l'ensemble du processus est effectué automatiquement par la couche de consensus en boucle continue. - -### Davantage qu'un apprenant visuel ? {#visual-learner} - -Consultez cette explication de Finematics sur les retraits de staking d'Ethereum : - - - -### « Balayage » du validateur {#validator-sweeping} - -Lorsqu'un validateur doit proposer le bloc suivant, il est tenu de constituer une file d'attente de retraits, pouvant aller jusqu'à 16 retraits éligibles. Pour ce faire, on commence par l'index 0 du validateur, on détermine s'il existe un retrait éligible pour ce compte selon les règles du protocole et on l'ajoute à la file d'attente si tel est le cas. Le validateur configuré pour proposer le bloc suivant reprendra là où le précédent s'est arrêté, progressant dans l'ordre indéfiniment. - - -Pensez à une horloge analogique. L'aiguille de l’horloge pointe vers l’heure, progresse dans une direction, ne saute pas d’heures, et finit par revenir au début après que le dernier nombre est atteint.

-Maintenant au lieu de 1 à 12, imaginez que l'horloge a 0 à N (le nombre total de comptes de validateur qui ont déjà été enregistrés sur la couche de consensus, plus de 500 000 en janvier 2023).

-L'aiguille de l’horloge pointe vers le prochain validateur qui doit être vérifié pour les retraits éligibles. Il commence à 0 et progresse tout autour sans sauter de compte. Lorsque le dernier validateur est atteint, le cycle reprend au début. -
- -#### Vérification des retraits sur un compte {#checking-an-account-for-withdrawals} - -Lorsqu'un proposant passe en revue les validateurs pour d'éventuels retraits, chaque validateur vérifié est évalué en fonction d'une courte série de questions afin de déterminer si un retrait doit être déclenché et, le cas échéant, quel montant d'ETH doit être retiré. - -1. **Une adresse de retrait a-t-elle été fournie ? ** Si aucune adresse de retrait n'a été fournie, le compte est ignoré et aucun retrait n'est effectué. -2. **Le validateur est-il sorti et peut-il être retiré ? ** Si le validateur est complètement sorti et que nous avons atteint l'époque où son compte est considéré comme « pouvant être retiré », alors un retrait complet sera effectué. Le solde total restant sera alors transféré à l'adresse de retrait. -3. **Le solde effectif est-il plafonné à 32 ? ** Si le compte dispose d'identifiants de retrait, qu'il n'est pas entièrement clôturé et que des récompenses supérieures à 32 sont en attente, un retrait partiel sera effectué et ne transférera que les récompenses supérieures à 32 à l'adresse de retrait de l'utilisateur. - -Seules deux actions entreprises par les opérateurs de validateurs au cours du cycle de vie d'un validateur influencent directement ce flux : - -- Fournir des justificatifs de retrait pour permettre toute forme de retrait -- Sortir du réseau déclenchera un retrait complet - -### Sans gaz {#gas-free} - -Cette approche des retraits de staking évite d'obliger les stakers à soumettre manuellement une transaction demandant le retrait d'une quantité particulière d'ETH. Cela signifie qu'aucun **gaz (frais de transaction)** n'est requis, et les retraits ne concurrencent pas non plus l'espace de bloc existant de la couche d'exécution. - -### À quelle fréquence recevrai-je mes récompenses de mise en jeu ? {#how-soon} - -Un maximum de 16 retraits peut être traité en un seul bloc. À ce rythme, 115 200 retraits de validateurs peuvent être traités par jour (en supposant qu'il n'y ait pas de créneaux manqués). Comme indiqué ci-dessus, les validateurs n'ayant pas effectué de retraits éligibles seront ignorés, ce qui réduira le temps nécessaire pour terminer le balayage. - -En élargissant ce calcul, nous pouvons estimer le temps nécessaire pour traiter un nombre donné de retraits : - - - -| Nombre de retraits | Délai d'exécution | -| :----------------: | :---------------: | -| 400 000 | 3,5 jours | -| 500 000 | 4,3 jours | -| 600 000 | 5,2 jours | -| 700 000 | 6,1 jours | -| 800 000 | 7,0 jours | - - - -Comme vous pouvez le constater, ce processus ralentit au fur et à mesure que le nombre de validateurs augmente sur le réseau. Une augmentation des crénaux manqués pourrait ralentir proportionnellement ce phénomène, mais cela représente généralement le côté le plus lent des résultats possibles. - -## Questions fréquemment posées {#faq} - - -Non, la procédure de fourniture des identifiants de retrait est une procédure unique, qui ne peut être modifiée une fois qu'elle a été soumise. - - - -En définissant l'adresse de retrait d'une couche d'exécution, les identifiants de retrait de ce validateur ont été modifiés de manière permanente. Cela signifie que les anciens identifiants ne fonctionneront plus et que les nouveaux identifiants renvoient à un compte de la couche d'exécution. - -Les adresses de retrait peuvent être soit un contrat intelligent (contrôlé par son code), soit un compte détenu en externe (EOA, contrôlé par sa clé privée). Actuellement, ces comptes n'ont aucun moyen de communiquer un message à la couche de consensus qui signalerait un changement d'identifiant du validateur, et l'ajout de cette fonctionnalité compliquerait inutilement le protocole. - -En guise d'alternative au changement d'adresse de retrait pour un validateur particulier, les utilisateurs peuvent choisir de définir un contrat intelligent comme adresse de retrait, qui pourrait gérer la rotation des clés, comme un coffre-fort. Les utilisateurs qui ont placé leurs fonds sur leur propre EOA peuvent effectuer une sortie complète pour retirer tous leurs fonds misés, puis effectuer une nouvelle mise en utilisant de nouveaux identifiants. - - - - -Si vous faites partie d'un groupe d'enjeux ou si vous détenez des jetons de mise en jeu, vous devez vous renseigner auprès de votre fournisseur pour savoir comment les retraits de mise en jeu sont gérés, car chaque service fonctionne différemment. - -En général, les utilisateurs sont censés être libres de récupérer leur ETH sous-jacent mis en jeu, ou de changer le fournisseur de mise en jeu qu'ils utilisent. Si un groupe particulier devient trop important, les fonds peuvent être retirés, rachetés, et remisés auprès d'un fournisseur plus petit. Ou, si vous avez accumulé suffisamment d'ETH, vous pouvez miser depuis chez vous. - - - - -Oui, à condition que votre validateur ait fourni une adresse de retrait. Elle doit être fournie une fois pour permettre tout retrait initialement, puis les paiements de récompenses seront automatiquement déclenchés tous les deux ou trois jours avec chaque balayage des validateurs. - - - - -Non, si votre validateur est toujours actif sur le réseau, un retrait total ne se fera pas automatiquement. Pour cela, il faut déclencher manuellement une sortie volontaire. - -Une fois qu'un validateur a terminé le processus de sortie, et en supposant que le compte possède des identifiants de retrait, le solde restant sera alors retiré lors du prochain balayage du validateur. - - - - -Les retraits sont conçus pour être effectués automatiquement, en transférant tous les ETH qui ne contribuent pas activement à la mise. Cela comprend le solde complet pour les comptes qui ont terminé de processus de sortie. - -Il n'est pas possible de demander manuellement le retrait de quantités spécifiques d'ETH. - - - - -Il est recommandé aux opérateurs de validateurs de consulter la page Staking Launchpad Withdrawals où vous trouverez plus de détails sur la façon de préparer votre validateur aux retraits, le calendrier des événements, et davantage d'informations sur le fonctionnement des retraits. - -Pour commencer en testant votre configuration sur un réseau de test, visitez la Platforme de lancement pour la mise en jeu sur le réseau de test Goerli. - - - - -Non. Une fois qu'un validateur est sorti et que son solde total a été retiré, tous les fonds supplémentaires déposés sur ce validateur seront automatiquement transférés à l'adresse de retrait lors du prochain balayage du validateur. Pour remettre en jeu l'ETH, un nouveau validateur doit être activé. - - -## Complément d'information {#further-reading} - -- [Retraits de la plateforme de lancement de la mise en jeu](https://launchpad.ethereum.org/withdrawals) -- [EIP-4895 : la chaîne phare signale les retraits comme des opérations](https://eips.ethereum.org/EIPS/eip-4895) -- [Ethereum Cat Herders - Shanghai](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) -- [PEEPanEIP #94 : Retrait de l'ETH misé (Testing) avec Potuz & Hsiao-Wei Wang](https://www.youtube.com/watch?v=G8UstwmGtyE) -- [PEEPanEIP#68 : EIP-4895 : Retraits de la chaîne de balises en tant qu'opérations avec Alex Stokes](https://www.youtube.com/watch?v=CcL9RJBljUs) -- [Comprendre le Solde Effectif du Validateur](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/hi/dao/index.md b/src/content/translations/hi/dao/index.md deleted file mode 100644 index d593892ba7b..00000000000 --- a/src/content/translations/hi/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: विकेन्द्रीकृत स्वायत्त संगठन (DAO) -description: इथेरियम पर DAO का अवलोकन -lang: hi -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: किसी प्रस्ताव पर मतदान करने वाले DAO का प्रतिनिधित्व। -summaryPoint1: केंद्रीकृत नेतृत्व के बिना सदस्य के स्वामित्व वाले समुदाय। -summaryPoint2: इंटरनेट पर अजनबियों के साथ सहयोग करने का एक सुरक्षित तरीका। -summaryPoint3: किसी विशिष्ट उद्देश्य के लिए धन जमा करने के लिए एक सुरक्षित स्थान। ---- - -## DAO क्या होते हैं? {#what-are-daos} - -DAO एक सामूहिक स्वामित्व वाला, ब्लॉकचेन-शासित संगठन है जो एक साझा मिशन की दिशा में काम करता है। - -DAO हमें धन या संचालन के प्रबंधन के लिए किसी परोपकारी नेता पर भरोसा किए बिना दुनिया भर में समान विचारधारा वाले लोगों के साथ काम करने की अनुमति देते हैं। इनमें ऐसा कोई CEO नहीं होता जो मनमर्जी से पैसा खर्च कर सके या CFO जो बही-खातों में हेर-फेर कर सके। इसके बजाय, कोड में अंतर्निहित ब्लॉकचेन-आधारित नियम परिभाषित करते हैं कि संगठन कैसे काम करता है और धन कैसे खर्च किया जाता है। - -उनके पास बिल्ट-इन तिजोरी होते हैं जिन्हें समूह की स्वीकृति के बिना किसी को भी एक्सेस करने का अधिकार नहीं है। निर्णय प्रस्तावों और मतदान द्वारा शासित होते हैं ताकि यह सुनिश्चित किया जा सके कि संगठन में सभी के पास एक आवाज हो, और सब कुछ पारदर्शी रूप से ऑन-चेन होता है। - -## हमें DAO की जरूरत क्यों है? {#why-dao} - -किसी ऐसे व्यक्ति के साथ एक संगठन शुरू करना जिसमें फंडिंग और पैसा शामिल हो, उन लोगों पर बहुत अधिक विश्वास की आवश्यकता होती है जिनके साथ आप काम कर रहे हैं। लेकिन किसी ऐसे व्यक्ति पर भरोसा करना मुश्किल है जिसके साथ आपका परिचय केवल इंटरनेट द्वारा हुआ हो। DAO के साथ आपको समूह में किसी और पर भरोसा करने की आवश्यकता नहीं है, केवल DAO का कोड, जो कि 100% पारदर्शी और किसी के द्वारा सत्यापित किया जा सकता है। - -यह वैश्विक सहयोग और समन्वय के लिए कई नए अवसर खोलता है। - -### एक तुलना {#dao-comparison} - -| डीएओ | एक पारंपरिक संगठन | -| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -| आम तौर पर फ्लैट, और पूरी तरह से लोकतांत्रिक। | आमतौर पर पदानुक्रमित। | -| किसी भी परिवर्तन को लागू करने के लिए सदस्यों द्वारा मतदान आवश्यक है। | संरचना के आधार पर, एक एकल पार्टी से परिवर्तन की मांग की जा सकती है, या मतदान की पेशकश की जा सकती है। | -| वोटों का मिलान किया जाता है, और परिणाम बिना किसी विश्वसनीय मध्यस्थ के स्वचालित रूप से लागू किया जाता है। | यदि मतदान की अनुमति है, तो वोटों की आंतरिक रूप से गणना की जाती है, और मतदान के परिणाम को मैन्युअल रूप से नियंत्रित किया जाता है। | -| दी जाने वाली सेवाओं को विकेन्द्रीकृत तरीके से स्वचालित रूप से नियंत्रित किया जाता है (उदाहरण के लिए परोपकारी धन का वितरण)। | मानव संचालन की आवश्यकता है, या केंद्र द्वारा नियंत्रित स्वचालन, हेरफेर की संभावना है। | -| सभी गतिविधियां पारदर्शी और पूरी तरह सार्वजनिक हैं। | गतिविधि आम तौर पर निजी होती है, और जनता तक सीमित मात्रा मे होती है। | - -### DAO के उदाहरण {#dao-examples} - -इसे और अधिक समझने में मदद करने के लिए, यहां कुछ उदाहरण दिए गए हैं कि आप DAO का उपयोग कैसे कर सकते हैं: - -- दान – आप दुनिया में किसी से भी दान स्वीकार कर सकते हैं और वोट कर सकते हैं कि किन कारणों से फंड करना है। -- सामूहिक स्वामित्व – आप भौतिक या डिजिटल संपत्ति खरीद सकते हैं और सदस्य उनका उपयोग कैसे करें, इस पर मतदान कर सकते हैं। -- उद्यम और अनुदान – आप एक उद्यम निधि बना सकते हैं जो निवेश पूंजी को जमा करती है और उपक्रमों पर वोट देती है। चुकाए गए धन को बाद में DAO-सदस्यों के बीच पुनर्वितरित किया जा सकता है। - -## DAO कैसे काम करते हैं? {#how-daos-work} - -DAO का सहारा उसका स्मार्ट अनुबंध है, जो संगठन के नियमों को परिभाषित करता है और समूह के खजाने को होल्ड करता है। एक बार इथेरियम पर अनुबंध लाइव हो जाने पर, कोई भी वोट के अलावा नियमों को बदल नहीं सकता है। अगर कोई ऐसा कुछ करने की कोशिश करता है जो कोड में नियमों और तर्क से नहीं आता है, तो वह असफल हो जाएगा। और क्योंकि ट्रेजरी को स्मार्ट अनुबंध द्वारा भी परिभाषित किया जाता है, इसका मतलब है कि कोई भी समूह की मंजूरी के बिना पैसा खर्च नहीं कर सकता है। इसका मतलब यह है कि DAO को केंद्रीय प्राधिकरण की जरूरत नहीं है। इसके बजाय समूह सामूहिक रूप से निर्णय लेते है और वोट पास होने पर भुगतान स्वचालित रूप से अधिकृत होते हैं। - -यह संभव है क्योंकि इथेरियम पर लाइव होने के बाद स्मार्ट अनुबंध टैम्पर-प्रूफ होते हैं। आप लोगों के देखे बिना कोड (DAO नियम) को संपादित नहीं कर सकते क्योंकि सब कुछ सार्वजनिक होता है। - - - स्मार्ट अनुबंध के बारे में अधिक जानकारी - - -## इथेरियम और DAO {#ethereum-and-daos} - -इथेरियम कई कारणों से DAO के लिए एकदम सही आधार है: - -- इथेरियम की अपनी सर्वसम्मति नेटवर्क पर भरोसा करने के लिए संगठनों के लिए पर्याप्त रूप से वितरित और स्थापित की गई है। -- स्मार्ट अनुबंध कोड को एक बार लाइव होने के बाद संशोधित नहीं किया जा सकता, यहां तक कि इसके मालिक भी नहीं कर सकते। यह DAO को उन नियमों के अनुसार चलने की अनुमति देता है जिनके साथ इसे प्रोग्राम किया गया था। -- स्मार्ट अनुबंध धन भेज/प्राप्त कर सकते हैं। इसके बिना आपको समूह निधियों का प्रबंधन करने के लिए एक विश्वसनीय मध्यस्थ की आवश्यकता होगी। -- इथेरियम समुदाय प्रतिस्पर्धी की तुलना में अधिक सहयोगी साबित हुआ है, जिससे सर्वोत्तम प्रथाओं और समर्थन प्रणालियों को जल्दी से उभरने की अनुमति मिलती है। - -## DAO शासन {#dao-governance} - -DAO को संचालित करते समय कई बातों पर विचार किया जाता है, जैसे कि मतदान और प्रस्ताव कैसे काम करते हैं। - -### प्रतिनिधान {#governance-delegation} - -प्रतिनिधान लोकतंत्र के DAO संस्करण की तरह है। टोकन धारक उन उपयोगकर्ताओं को वोट देते हैं जो खुद को नामांकित करते हैं और प्रोटोकॉल को चलाने और सूचित रहने के लिए प्रतिबद्ध होते हैं। - -#### एक प्रसिद्ध उदाहरण {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) – ENS धारक अपने वोट समुदाय के सदस्यों को उनका प्रतिनिधित्व करने के लिए सौंप सकते हैं। - -### स्वचालित लेनदेन शासन {#governance-example} - -कई DAO में, यदि सदस्यों का एक कोरम सकारात्मक वोट करता है तो लेन-देन स्वचालित रूप से निष्पादित हो जाएगा। - -#### एक प्रसिद्ध उदाहरण {#governance-example} - -[Nouns](https://nouns.wtf) – Nouns DAO में, एक लेन-देन स्वचालित रूप से निष्पादित किया जाता है यदि वोटों का एक कोरम पूरा हो जाता है और बहुमत के वोट सकारात्मक होते हैं, जब तक कि यह संस्थापकों द्वारा वीटो नहीं किया जाता है। - -### मल्टीसिग शासन {#governance-example} - -जबकि DAO में हजारों वोटिंग सदस्य हो सकते हैं, फंड 5-20 सक्रिय सामुदायिक सदस्यों द्वारा साझा किए गए वॉलेट में रह सकते हैं, जो भरोसेमंद होते हैं और आमतौर पर डॉक्स किए जाते हैं (सार्वजनिक पहचान समुदाय के लिए जानी जाती है)। एक वोट के बाद, मल्टीसिग साइनर्स समुदाय की इच्छा को पूरा करते हैं। - -## DAO कानून {#dao-laws} - -1977 में व्योमिंग ने LLC का आविष्कार किया, जो उद्यमियों की सुरक्षा करता है और उनके दायित्व को सीमित करता है। हाल ही में, उन्होंने DAO कानून का बीड़ा उठाया है जो DAO के लिए कानूनी स्थिति स्थापित करता है। वर्तमान में व्योमिंग, वर्मोंट और वर्जिन द्वीप समूह में किसी न किसी रूप में DAO कानून हैं। - -#### एक प्रसिद्ध उदाहरण {#law-example} - -[CityDAO](https://citydao.io) – CityDAO ने येलोस्टोन नेशनल पार्क के पास 40 एकड़ जमीन खरीदने के लिए व्योमिंग के DAO कानून का इस्तेमाल किया। - -## DAO की सदस्यता {#dao-membership} - -DAO सदस्यता के लिए अलग-अलग मॉडल हैं। सदस्यता यह निर्धारित कर सकती है कि मतदान कैसे काम करता है और DAO के अन्य प्रमुख भाग क्या है। - -### टोकन आधारित सदस्यता {#token-based-membership} - -आमतौर पर पूरी तरह से बिना अनुमति के और इस्तेमाल किए गए टोकन पर निर्भर करता है। अधिकतर इन गवर्नेंस टोकन का विकेंद्रीकृत एक्सचेंज पर बिना अनुमति के कारोबार किया जा सकता है। दूसरों को तरलता प्रदान करके या किसी अन्य 'काम का प्रमाण' प्रदान करके अर्जित किया जाना चाहिए। किसी भी तरह से, केवल टोकन धारण करने से मतदान तक पहुंच प्राप्त होती है। - -_आमतौर पर व्यापक विकेन्द्रीकृत प्रोटोकॉल और/या टोकन को स्वयं नियंत्रित करने के लिए उपयोग किया जाता है।_ - -#### एक प्रसिद्ध उदाहरण {#token-example} - -[MakerDAO](https://makerdao.com) – MakerDAO का टोकन MKR विकेन्द्रीकृत एक्सचेंजों पर व्यापक रूप से उपलब्ध है और कोई भी निर्माता प्रोटोकॉल के भविष्य पर मतदान शक्ति प्राप्त कर सकता है। - -### शेयर-आधारित सदस्यता {#share-based-membership} - -शेयर-आधारित DAO अधिक अनुमति वाले हैं, लेकिन फिर भी काफी खुले हैं। कोई भी संभावित सदस्य DAO में शामिल होने के लिए एक प्रस्ताव प्रस्तुत कर सकता है, आमतौर पर टोकन या काम के रूप में कुछ मूल्य की श्रद्धांजलि अर्पित करता है। शेयर प्रत्यक्ष मतदान शक्ति और स्वामित्व को दर्शाते हैं। सदस्य ट्रेजरी के अपने आनुपातिक हिस्से के साथ किसी भी समय बाहर निकल सकते हैं। - -_आम तौर पर अधिक घनिष्ठ, मानव-केंद्रित संगठनों जैसे दान, कार्यकर्ता सामूहिक, और निवेश क्लबों के लिए उपयोग किया जाता है। प्रोटोकॉल और टोकन को भी नियंत्रित कर सकते हैं।_ - -#### एक प्रसिद्ध उदाहरण {#share-example} - -[MolochDAO](http://molochdao.com/) – MolochDAO - इथेरियम परियोजनाओं के वित्तपोषण पर केंद्रित है। उन्हें सदस्यता के लिए एक प्रस्ताव की आवश्यकता होती है ताकि समूह यह आकलन कर सके कि क्या आपके पास संभावित अनुदानकर्ताओं के बारे में सूचित निर्णय लेने के लिए आवश्यक विशेषज्ञता और पूंजी है। आप खुले बाजार में केवल DAO तक पहुंच नहीं खरीद सकते। - -### प्रतिष्ठा-आधारित सदस्यता {#reputation-based-membership} - -DAO में, प्रतिष्ठा इस बात का प्रमाण है कि आपने कुछ काम किया है और मतदान शक्ति प्रदान करता है। टोकन या शेयर-आधारित सदस्यता के विपरीत, प्रतिष्ठा-आधारित DAO योगदानकर्ताओं के स्वामित्व को स्थानांतरित नहीं करते हैं। प्रतिष्ठा को खरीदा, स्थानांतरित या प्रत्यायोजित नहीं किया जा सकता है; DAO सदस्यों को भागीदारी के माध्यम से प्रतिष्ठा अर्जित करनी चाहिए। ऑन-चेन मतदान अनुमतिहीन है और संभावित सदस्य स्वतंत्र रूप से DAO में शामिल होने के लिए प्रस्ताव प्रस्तुत कर सकते हैं और अपने योगदान के बदले में पुरस्कार के रूप में प्रतिष्ठा और टोकन प्राप्त करने का अनुरोध कर सकते हैं। - -_आम तौर पर विकेन्द्रीकृत विकास और प्रोटोकॉल और dapps के शासन के लिए इस्तेमाल किया, लेकिन यह भी अच्छी तरह से दान, कार्यकर्ता सामूहिक, निवेश क्लब, आदि जैसे संगठनों के एक विविध सेट के लिए अनुकूल।_ - -#### एक प्रसिद्ध उदाहरण {#reputation-example} - -[DXdao](https://DXdao.eth.link) – 2019 के बाद से एक वैश्विक संप्रभु सामूहिक भवन और विकेंद्रीकृत प्रोटोकॉल और अनुप्रयोगों को नियंत्रित कर रहा है। यह धन के समन्वय और प्रबंधन के लिए प्रतिष्ठा-आधारित शासन और होलोग्राफिक आम सहमति का लाभ उठाता है, जिसका अर्थ है कि कोई भी अपने भविष्य को प्रभावित करने में अपना रास्ता नहीं खरीद सकता है। - -## DAO में शामिल हों / शुरू करें {#join-start-a-dao} - -### डीएओ में शामिल हों {#join-a-dao} - -- [इथेरियम समुदाय DAO](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [DAOHaus के DAO की सूची](https://app.daohaus.club/explore) -- [DAO की Tally.xyz सूची](https://www.tally.xyz) - -### DAO शुरू करें {#start-a-dao} - -- [DAOHaus के साथ एक DAO को बुलाओ](https://app.daohaus.club/summon) -- [Tally के साथ एक गवर्नर DAO शुरू करें](https://www.tally.xyz/add-a-dao) -- [Aragon-संचालित DAO बनाएं](https://aragon.org/product) -- [कॉलोनी शुरू करो](https://colony.io/) -- [DAOstack की होलोग्राफिक आम सहमति के साथ एक DAO बनाएं](https://alchemy.daostack.io/daos/create) - -## अग्रिम पठन {#further-reading} - -### DAO आलेख {#dao-articles} - -- [DAO क्या है?](https://aragon.org/dao) – [Aragon](https://aragon.org/) -- [DAO हैंडबुक](https://daohandbook.xyz) -- [DAO का घर](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [मेटागेम](https://wiki.metagame.wtf/) -- [DAO क्या है और इसका उपयोग किसके लिए होता है?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) -- [DAO-संचालित डिजिटल समुदाय कैसे शुरू करें](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) -- [DAO क्या है?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [कॉइनमार्केटकैप](https://coinmarketcap.com) -- [क्या है होलोग्राफिक सहमति?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) -- [DAO निगम नहीं हैं: जहां विटालिक द्वारा स्वायत्त संगठनों में विकेंद्रीकरण मायने रखता है](https://vitalik.ca/general/2022/09/20/daos.html) -- [DAO, DAC, DA और बहुत कुछ: एक अधूरी शब्दावली गाइड](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [इथेरियम ब्लॉग](https://blog.ethereum.org) - -### वीडियो {#videos} - -- [क्रिप्टो में DAO क्या है?](https://youtu.be/KHm0uUPqmVE) -- [क्या कोई DAO एक शहर बना सकता है?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/src/content/translations/hi/decentralized-identity/index.md b/src/content/translations/hi/decentralized-identity/index.md deleted file mode 100644 index 0b595065e63..00000000000 --- a/src/content/translations/hi/decentralized-identity/index.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: डिसेंट्रलाइज आइडेंटिटी -description: विकेन्द्रीकृत पहचान क्या है, और यह महत्वपूर्ण क्यों है? -lang: hi -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} - -पहचानकर्ता एक जानकारी का टुकड़ा है जो विशेष पहचान या पहचानों की ओर इंगित करता है। सामान्य पहचानकर्ता में शामिल हैं: - -- नाम -- सामाजिक सुरक्षा संख्या/कर ID संख्या -- मोबाइल नंबर -- जन्म की तारीख और जन्म स्थान -- डिजिटल पहचान प्रमाणपत्र, जैसे कि ईमेल पते, प्रयोक्ता नाम, अवतार - -ये पारंपरिक पहचानकर्ताओं के उदाहरण हैं जो केंद्रीय संघटितताओं द्वारा जारी, रखे और नियंत्रित किए जाते हैं। अपने सरकार से अपने नाम को बदलने के लिए या फिर एक सोशल मीडिया प्लेटफ़ॉर्म से अपने हैंडल को बदलने के लिए आपको अनुमति लेने की आवश्यकता होगी। - -## साक्ष्य क्या होते हैं? {#what-are-attestations} - -साक्ष्य एकत्रित किया गया दावा होता है जिसमें एक एकाधिकरण द्वारा किसी दूसरे एकाधिकरण के बारे में कहा जाता है। यदि आप संयुक्त राज्य अमेरिका में रहते हैं, तो आपको वाहन विभाग (एक एकाधिकरण) द्वारा जारी की गई ड्राइवर की लाइसेंस यह प्रमाणित करती है कि आप (दूसरे एकाधिकरण) कानूनी रूप से गाड़ी चलाने की अनुमति प्राप्त करने के योग्य हैं। - -साक्ष्य पहचानकर्ताओं से भिन्न होते हैं। किसी साक्ष्य में एक विशिष्ट पहचान को संदर्भित करने के लिए पहचानकर्ताएँ _शामिल_ होती हैं और इस पहचान से संबंधित एक गुणवत्ता के बारे में दावा करती है। इस प्रकार, आपकी ड्राइवर के लाइसेंस में पहचानकर्ताएँ (नाम, जन्म तिथि, पता) होती हैं, लेकिन यह आपकी कानूनी रूप से गाड़ी चलाने का अधिकार होने की प्रमाणिका भी होती है। - -### विकेन्द्रीकृत पहचानकर्ताएँ क्या होती हैं? {#what-are-decentralized-identifiers} - -पारंपरिक पहचानकर्ताएँ जैसे कि आपका कानूनी नाम या ईमेल पता तीसरे पक्षों—सरकार और ईमेल प्रदाताओं पर निर्भर करती हैं। विकेन्द्रीकृत पहचानकर्ताएँ (DID) अलग होती हैं—उन्हें किसी भी केंद्रीय प्राधिकृतिकों द्वारा जारी, प्रबंधित या नियंत्रित नहीं किया जाता है। - -विकेन्द्रीकृत पहचानकर्ताएँ व्यक्तियों द्वारा जारी, रखी और नियंत्रित की जाती हैं। एक [इथेरियम खाता](/developers/docs/accounts/) किसी विकेंद्रीकृत पहचानकर्ता का एक उदाहरण है। आप जितने चाहें उतने खाते बना सकते हैं, किसी से भी अनुमति के बिना और किसी केंद्रीय पंजीकरण में उन्हें संग्रहित करने की आवश्यकता भी नहीं है। - -विकेन्द्रीकृत पहचानकर्ताओं को वितरित खाता बही (ब्लॉकचेन्स) या पीयर-टू-पीयर नेटवर्कों पर संग्रहित किया जाता है। इससे DID [वैश्विक रूप से अद्वितीय बनते हैं, उच्च उपलब्धता के साथ सुलझाया जा सकता है, और क्रिप्टोग्राफिक रूप से सत्यापित किया जा सकता है](https://w3c-ccg.github.io/did-primer/)। एक विकेन्द्रीकृत पहचानकर्ता को विभिन्न प्राधिकृतियों से जोड़ा जा सकता है, जिसमें लोग, संगठन या सरकारी संस्थान शामिल हो सकते हैं। - -## विकेन्द्रीकृत पहचानकर्ताओं को संभाव बनाने वाला क्या है? {#what-makes-decentralized-identifiers-possible} - -### १ सार्वजनिक कुंजी इन्फ्रास्ट्रक्चर (PKI) {#public-key-infrastructure} - -सार्वजनिक-कुंजी इन्फ्रास्ट्रक्चर (PKI) एक जानकारी सुरक्षा उपाय है, जो किसी इकाई के लिए एक [सार्वजनिक कुंजी](/glossary/#public-key) और [निजी कुंजी](/glossary/#private-key) उत्पन्न करता है। सार्वजनिक-कुंजी क्रिप्टोग्राफी को ब्लॉकचेन नेटवर्क में उपयोग किया जाता है, ताकि उपयोगकर्ता पहचानों की पुष्टि की जा सके और डिजिटल संपत्ति के स्वामित्व को साबित किया जा सके। - -कुछ विकेन्द्रीकृत पहचानकर्ताएँ, जैसे कि किसी इथेरियम खाता, में सार्वजनिक और निजी कुंजियाँ होती हैं। सार्वजनिक कुंजी खाते के नियंत्रक की पहचान करती है, जबकि निजी कुंजियाँ इस खाते के लिए संदेशों को हस्ताक्षर कर सकती हैं और उन्हें डिक्रिप्ट कर सकती हैं। PKI प्रमाण प्रदान करता है जो इकाइयों की पुष्टि करने और झूठी और नकली पहचानों का उपयोग रोकने के लिए [क्रिप्टोग्राफिक हस्ताक्षर](https://andersbrownworth.com/blockchain/public-private-keys/) का उपयोग करता है। - -### २ विकेन्द्रीकृत डेटास्टोर्स {#decentralized-datastores} - -ब्लॉकचेन एक सत्यापन योग्य डेटा रजिस्ट्री के रूप में काम करता है: किसी खुली, आत्मविश्वासहीन और विकेन्द्रीकृत जानकारी का संग्रहण। सार्वजनिक ब्लॉकचेन की मौजूदगी से केंद्रीकृत रजिस्ट्रियों में पहचानकर्ताओं को स्टोर करने की आवश्यकता समाप्त हो जाती है। - -यदि कोई किसी विकेन्द्रीकृत पहचानकर्ता की मान्यता की पुष्टि करना चाहता है, तो वे ब्लॉकचेन पर संबंधित सार्वजनिक कुंजी की जाँच कर सकते हैं। यह पारंपरिक पहचानकर्ताओं से अलग है जिसमे प्रमाणित करने के लिए तीसरे पक्षों की आवश्यकता होती है। - -## विकेन्द्रीकृत पहचानकर्ताएँ और साक्ष्य, विकेन्द्रीकृत पहचान को कैसे संभावित करते हैं? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} - -विकेन्द्रीकृत पहचान एक ऐसा विचार है, जिसमें पहचान संबंधित जानकारी को स्वयं नियंत्रित, निजी और पोर्टेबल होना चाहिए, जिसमें विकेन्द्रीकृत पहचानकर्ताएँ और साक्ष्य प्रमुख निर्माण ब्लॉक होते हैं। - -विकेंद्रीकृत पहचान के संदर्भ में, साक्ष्य (जिसे [सत्यापन करने योग्य क्रेडेंशियल](https://www.w3.org/TR/vc-data-model/) के रूप में भी जाना जाता है) जारीकर्ता द्वारा बनाये गए छेड़छाड़-प्रूफ, क्रिप्टोग्राफ़िक रूप से सत्यापन योग्य दावे हैं। प्रत्येक साक्ष्य या सत्यापित करने योग्य क्रेडेंशियल, जिसे एक इकाई (उदाहरण के लिए, एक संगठन) जारी करता है वो उनके DID ​​से जुड़ा होता है। - -क्योंकि DID ब्लॉकचेन पर संग्रहीत होते हैं, कोई भी इथेरियम पर जारीकर्ता के DID को क्रॉस-चेक करके साक्ष्य की वैधता की पुष्टि कर सकता है। अनिवार्य रूप से, इथेरियम ब्लॉकचेन एक वैश्विक निर्देशिका की तरह कार्य करता है जो निश्चित संस्थाओं से जुड़े DID के पुष्टिकरण को सक्षम बनाता है। - -विकेंद्रीकृत पहचानकर्ता ही वे कारण हैं जिनके कारण साक्ष्य स्व-नियंत्रित और पुष्टिकरण योग्य होते हैं। भले ही जारीकर्ता अब मौजूद नहीं है, फिर भी धारक के पास हमेशा साक्ष्य की उत्पत्ति और वैधता का प्रमाण रहता है। - -विकेंद्रीकृत पहचान में व्यक्तिगत जानकारी की गोपनीयता की रक्षा करना विकेंद्रीकृत पहचानकर्ता के लिए महत्वपूर्ण हैं। उदाहरण के लिए, यदि कोई व्यक्ति साक्ष्य (ड्राइवर का लाइसेंस) का प्रमाण प्रस्तुत करता है, तो सत्यापन करने वाले पक्ष को प्रमाण में जानकारी की वैधता की जांच करने की आवश्यकता नहीं होगी। इसके बजाय, प्रमाण वैध है या नहीं यह निर्धारित करने के लिए सत्यापनकर्ता को केवल साक्ष्य की प्रामाणिकता के क्रिप्टोग्राफिक गारंटी और जारी करने वाले संगठन की पहचान की आवश्यकता होती है। - -## विकेन्द्रीकृत पहचान में साक्ष्य के प्रकार {#types-of-attestations-in-decentralized-identity} - -इथेरियम-आधारित पहचान इकोसिस्टम में साक्ष्य के जानकारी को संग्रहीत और पुनर्प्राप्त करने का तरीका पारंपरिक पहचान प्रबंधन से अलग है। यहां विकेंद्रीकृत पहचान प्रणालियों में साक्ष्य जारी करने, भंडारण और पुष्टिकरण करने के विभिन्न तरीके दिए गए है: - -### ऑफ-चेन साक्ष्य {#off-chain-attestations} - -साक्ष्यों को ऑन-चेन संग्रहीत करने की एक चिंता यह है कि उनमें ऐसी जानकारी हो सकती है जिसे व्यक्ति गुप्त रखना चाहते हैं। इथेरियम ब्लॉकचेन की सार्वजनिक प्रकृति ऐसे सत्यापनों को संग्रहीत करना अनाकर्षक बनाती है। - -इसका समाधान यह है की साक्ष्य उपयोगकर्ता द्वारा ऑफ-चेन के एक डिजिटल वॉलेट में रखा जाये, जिसमें जारीकर्ता के ऑन-चेन DID द्वारा हस्ताक्षर हों। इन साक्ष्यों को [JSON वेब टोकन](https://en.wikipedia.org/wiki/JSON_Web_Token) के रूप में एन्कोड किया गया है और इसमें जारीकर्ता के डिजिटल हस्ताक्षर शामिल हैं—जो ऑफ-चेन दावों के आसान सत्यापन की अनुमति देता है। - -ऑफ-चेन सत्यापन को समझाने के लिए यहां एक काल्पनिक परिदृश्य दिया गया है: - -1. एक विश्वविद्यालय (जारीकर्ता) एक साक्ष्य (एक डिजिटल शैक्षिक प्रमाणपत्र) उत्पन्न करता है, अपनी कुंजियों से हस्ताक्षर करता है, और इसे बॉब (पहचान मालिक) को जारी करता है। - -2. बॉब एक नौकरी के लिए आवेदन करता है और एक नियोक्ता को अपनी शैक्षिक योग्यता साबित करना चाहता है, इसलिए वह अपने मोबाइल वॉलेट से साक्ष्य साझा करता है। कंपनी (सत्यापक) फिर जारीकर्ता की DID (अर्थात, इथेरियम पर इसकी सार्वजनिक कुंजी) की जाँच करके साक्ष्य की मान्यता की पुष्टि कर सकती है। - -### स्थायी पहुंच के साथ ऑफ-चेन साक्ष्य {#offchain-attestations-with-persistent-access} - -इस व्यवस्था के तहत प्रमाणिकरण को JSON फ़ाइलों में परिवर्तित किया जाता है और ऑफ-चेन (आदर्श रूप से एक [विकेन्द्रीकृत क्लाउड स्टोरेज](/developers/docs/storage/) प्लेटफ़ॉर्म पर, जैसे कि IPFS या Swarm) पर संग्रहीत किया जाता है। हालांकि, JSON फ़ाइल का [हैश](/glossary/#hash) ऑन-चेन संग्रहीत होता है और एक ऑन-चेन रजिस्ट्री के माध्यम से एक DID से लिंक किया जाता है। संबंधित DID साक्ष्य के जारीकर्ता या प्राप्तकर्ता में से किसी का भी हो सकता है। - -इस दृष्टिकोण से साक्ष्य को ब्लॉकचेन-आधारित स्थायिता प्राप्त होती है, जबकि दावों की जानकारी को एन्क्रिप्टेड और सत्यापन योग्य रखा जाता है। यह चयनात्मक प्रकटीकरण की भी अनुमति देता है क्योंकि निजी कुंजी का धारक जानकारी को डिक्रिप्ट कर सकता है। - -### ऑन-चेन साक्ष्य {#onchain-attestations} - -ऑन-चेन साक्ष्य इथेरियम ब्लॉकचेन पर [स्मार्ट अनुबंधों](/developers/docs/smart-contracts/) में रखे जाते हैं। स्मार्ट अनुबंध (रजिस्ट्री के रूप में कार्य करता है) किसी साक्ष्य को एक संबंधित ऑन-चेन विकेन्द्रीकृत पहचानकर्ता (एक सार्वजनिक कुंजी) से मैप करेगा। - -यहाँ एक उदाहरण है जो दिखाता है कि ऑन-चेन प्रमाणिकरण व्यावासिक रूप से कैसे काम कर सकते हैं: - -1. एक कंपनी (XYZ Corp) स्मार्ट अनुबंध का उपयोग करके स्वामित्व के हिस्से बेचने की योजना बना रही है, लेकिन केवल ऐसे खरीदार चाहती है जिन्होंने पृष्ठभूमि की जांच पूरी कर ली हो। - -2. XYZ Corp पृष्ठभूमि की जाँच करने वाली कंपनी को इथेरियम पर ऑन-चेन प्रमाणिकरण जारी करने की अनुमति दे सकती है। यह प्रमाणिकरण प्रमाणित करता है कि किसी व्यक्ति ने पृष्ठभूमि की जाँच बिना किसी व्यक्तिगत जानकारी को प्रकट किए पास की है। - -3. हिस्से बेचने वाला स्मार्ट अनुबंध स्क्रीन किए गए खरीदारों की पहचान के लिए रजिस्ट्री अनुबंध की जांच कर सकता है, जिससे स्मार्ट अनुबंध के लिए यह निर्धारित करना संभव हो जाता है कि किसे शेयर खरीदने की अनुमति है और किसे नहीं। - -### आत्मा-बंधित टोकन और पहचान {#soulbound} - -[आत्मा-बंधित टोकन](https://vitalik.ca/general/2022/01/26/soulbound.html) (अस्ठांतरित NFT) विशेष वॉलेट के लिए अद्वितीय जानकारी इकट्ठा करने के लिए प्रयुक्त किए जा सकते हैं। यह प्रभावी रूप से एक विशेष इथेरियम पते से बंधी एक अद्वितीय ऑन-चेन पहचान बनाता है जिसमें उपलब्धियों का प्रतिनिधित्व करने वाले टोकन शामिल हो सकते हैं (जैसे कि किसी विशेष ऑनलाइन पाठ्यक्रम को समाप्त करना या एक खेल में एक थ्रेशोल्ड स्कोर पास करना) या समुदाय में भागीदारी। - -## विकेन्द्रीकृत पहचान के लाभ {#benefits-of-decentralized-identity} - -1. विकेन्द्रीकृत पहचान व्यक्तिगत पहचान जानकारी को नियंत्रित करने में वृद्धि करती है। विकेन्द्रीकृत पहचानकर्ता और साक्ष्य केंद्रीय प्राधिकृत और तीसरे पक्ष की सेवाओं पर निर्भर नहीं होते हैं। - -2. विकेन्द्रीकृत पहचान समाधान उपयोगकर्ता की पहचान को सत्यापित करने और प्रबंधित करने के लिए विश्वासहीन, सीमारहित, और गोपनीयता संरक्षण विधि को सुगम बनाता है। - -3. विकेन्द्रीकृत पहचान ब्लॉकचेन प्रौद्योगिकी का उपयोग करती है, जो विभिन्न पक्षों के बीच विश्वास पैदा करती है और प्रमाणपत्र की मान्यता साबित करने के लिए क्रिप्टोग्राफिक गारंटी प्रदान करती है। - -4. विकेन्द्रीकृत पहचान, पहचान डेटा को पोर्टेबल बनाती है। उपयोगकर्ता प्रमाणपत्र और पहचानकर्ता को मोबाइल वॉलेट में स्टोर करते हैं और अपनी पसंद के किसी भी पक्ष के साथ साझा कर सकते हैं। विकेन्द्रीकृत पहचानकर्ता और प्रमाणपत्र, जारीकर्ता संगठन के डेटाबेस में लॉक नहीं हैं। - -5. विकेन्द्रीकृत पहचान उभरती हुई शून्य-ज्ञान प्रौद्योगिकियों के साथ अच्छी तरह काम करनी चाहिए जो व्यक्तियों को यह साबित करने में सक्षम करेगी कि वे किसी चीज़ के मालिक हैं या उन्होंने बिना यह बताए ऐसा कुछ किया है, जिससे उस चीज़ के बारे में पता चला। यह वोटिंग जैसे अनुप्रयोगों के लिए विश्वास और गोपनीयता को जोड़ने का एक शक्तिशाली तरीका बन सकता है। - -6. विकेन्द्रीकृत पहचान एंटी-सिबिल प्रक्रियाओं को तब पहचानने में सक्षम बनाती है जब कभी भी एक व्यक्ति किसी सिस्टम को गेम या स्पैम करने के लिए कई इंसान होने का नाटक कर रहा होता है। - -## विकेंद्रीकृत पहचान उपयोग-मामले {#decentralized-identity-use-cases} - -विकेंद्रीकृत आईडेंटिटी के अनेक प्रयोग हैं: - -### १ यूनिवर्सल लॉगिन {#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} - -बहुत सारी ऑनलाइन सेवाओं का उपयोग करने के लिए व्यक्तियों को साक्ष्य और क्रेडेंशियल प्रदान करना होता है, जैसे कि ड्राइविंग लाइसेंस या राष्ट्रीय पासपोर्ट। लेकिन यह दृष्टिकोण समस्यापूर्ण है क्योंकि निजी उपयोगकर्ता की जानकारी को संकट में डाला जा सकता है और सेवा प्रदाता प्रमाण की वास्तविकता की पुष्टि नहीं कर सकते। - -विकेंद्रीकृत पहचान, कंपनियों को पारंपरिक [Know-Your-Customer (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) प्रक्रियाओं को छोड़ने और सत्यापन योग्य प्रमाणों के माध्यम से उपयोगकर्ता की पहचान को प्रमाणित करने में सक्षम बनाती है। इससे पहचान प्रबंधन की लागत कम होती है और नकली दस्तावेज़ों का उपयोग रोका जाता है। - -### ३ मतदान और ऑनलाइन समुदाय {#voting-and-online-communities} - -ऑनलाइन मतदान और सोशल मीडिया, विकेंद्रीकृत पहचान के लिए दो नवीनतम अनुप्रयोग हैं। ऑनलाइन मतदान योजनाएं हेरफेर के प्रति संवेदनशील होती हैं, विशेष रूप से अगर भ्रष्ट अभिनेता वोट देने के लिए झूठी पहचान बनाते हैं। व्यक्तियों से ऑन-चेन प्रमाण प्रस्तुत करने के लिए कहने से ऑनलाइन वोटिंग प्रक्रियाओं की अखंडता में सुधार हो सकता है। - -विकेन्द्रीकृत पहचान नकली खातों से मुक्त ऑनलाइन समुदाय बनाने में मदद कर सकती है। उदाहरण स्वरूप, प्रत्येक उपयोगकर्ता को एक ऑन-चेन पहचान प्रणाली, जैसे कि इथेरियम नामक सेवा, का उपयोग करके अपनी पहचान सत्यापित करना होगा, जिससे बोट्स की संभावना कम हो जाती है। - -### 4. एंटी-सिबिल सुरक्षा {#sybil-protection} - -सिबिल हमलों से तात्पर्य है व्यक्तिगत मनुष्य एक सिस्टम को धोखा देकर यह सोचने में मजबूर करते हैं कि वे कई लोग हैं, ताकि उनका प्रभाव बढ़ सके। जो [अनुप्रेषण देने वाले अनुप्रयोग](https://gitcoin.co/grants/) [चतुर्भुजीय मतदान](https://www.radicalxchange.org/concepts/plural-voting/) का उपयोग करते हैं, वे इन सिबिल हमलों के प्रति संवेदनशील होते हैं क्योंकि जब अधिक व्यक्तियों ने इसके लिए मतदान किया, तो एक अनुदान का मूल्य बढ़ जाता है, जिससे प्रयोक्ताओं को अपने योगदान को कई पहचानों में विभाजित करने के लिए प्रोत्साहित किया जाता है। विकेंद्रीकृत पहचान अक्सर विशिष्ट निजी जानकारी प्रकट किए बिना ही प्रत्येक प्रतिभागी पर वास्तव में मानव होना साबित करने का बोझ बढ़ाकर इसे रोकने में मदद करती है। - -## विकेन्द्रीकृत पहचान का उपयोग करें {#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 क्या है? ब्लॉकचेन पर स्व-संप्रभु पहचान प्रबंधन](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _सैम टाउन_ -- [ब्लॉकचेन कैसे डिजिटल पहचान की समस्या को हल कर सकता है](https://time.com/6142810/proof-of-humanity/) — _एंड्रू आर. चाऊ_ -- [विकेन्द्रीकृत पहचान क्या है और आपको क्यों परवाह करनी चाहिए?](https://web3.hashnode.com/what-is-decentralized-identity) — _इमानुएल आवोसिका_ - -### वीडियो {#videos} - -- [विकेन्द्रीकृत पहचान (बोनस लाइवस्ट्रीम सत्र)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _एंड्रियास एंटोनोपुलस द्वारा विकेन्द्रीकृत पहचान पर एक श्रेष्ठ स्पष्टीकरण वीडियो_ -- [इथेरियम के साथ साइन इन और विकेन्द्रीकृत पहचान: Ceramic, IDX, React, और 3ID Connect के साथ](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _नाडर दाबित द्वारा एक उपयोगकर्ता की प्रोफ़ाइल बनाने, पढ़ने और अपडेट करने के लिए उनके इथेरियम वॉलेट का उपयोग करके पहचान प्रबंधन प्रणाली का निर्माण करने पर YouTube ट्यूटोरियल_ -- [BrightID - इथेरियम पर विकेन्द्रीकृत पहचान](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _बैंकलेस पॉडकास्ट एपिसोड जो BrightID की चर्चा करता है, एक इथेरियम के लिए विकेन्द्रीकृत पहचान समाधान है_ -- [ऑफ़ चेन इंटरनेट: विकेन्द्रीकृत पहचान & सत्यापन योग्य क्रेडेंशियल](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — ईथडेनवर 2022 प्रस्तुति, एविन मैकमलन द्वारा - -### समुदाय {#communities} - -- [ERC-725 गठबंधन 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/hi/defi/index.md b/src/content/translations/hi/defi/index.md deleted file mode 100644 index d6669eccb2f..00000000000 --- a/src/content/translations/hi/defi/index.md +++ /dev/null @@ -1,352 +0,0 @@ ---- -title: विकेन्द्रीकृत वित्त (DeFi) -description: इथेरियम पर DeFi का अवलोकन -lang: hi -template: use-cases -emoji: ":money_with_wings:" -image: ../../../../assets/use-cases/defi.png -alt: lego ब्रिक्स से बना Eth लोगो। -sidebarDepth: 2 -summaryPoint1: मौजूदा वित्तीय प्रणाली का एक वैश्विक, खुला विकल्प। -summaryPoint2: उत्पाद जो आपको उधार लेने, बचत करने, निवेश करने, व्यापार करने और बहुत कुछ करने देते हैं। -summaryPoint3: ओपन-सोर्स तकनीक पर आधारित, जिससे कोई भी प्रोग्राम कर सकता है। ---- - -DeFi एक खुली और वैश्विक वित्तीय प्रणाली है जिसे इंटरनेट युग के लिए बनाया गया है - एक ऐसी प्रणाली का विकल्प जो अपारदर्शी है, दृढ़तापूर्वक नियंत्रित है, और दशकों पुरानी बुनियादी सुविधाओं और प्रक्रियाओं द्वारा एक साथ रखी गई है। यह आपको आपके पैसे पर नियंत्रण और दृश्यता प्रदान करता है। यह आपको वैश्विक बाजारों और आपकी स्थानीय मुद्रा या बैंकिंग विकल्पों के विकल्प प्रदान करता है। DeFi उत्पाद इंटरनेट कनेक्शन वाले किसी भी व्यक्ति के लिए वित्तीय सेवाएं खोलते हैं और उनका स्वामित्व और रखरखाव बड़े पैमाने पर उनके उपयोगकर्ताओं द्वारा किया जाता है। अब तक अरबों डॉलर मूल्य की क्रिप्टो DeFi एप्लिकेशन के माध्यम से प्रवाहित हुई है और यह आंकड़े हर दिन बढ़ रहे हैं। - -## DeFi क्या है? {#what-is-defi} - -DeFi वित्तीय उत्पादों और सेवाओं के लिए एक सामूहिक शब्द है जो इथेरियम का उपयोग करने वाले किसी भी व्यक्ति के लिए पहुंच योग्य है – इंटरनेट कनेक्शन वाला कोई भी व्यक्ति। DeFi के साथ, बाजार हमेशा खुले रहते हैं और कोई केंद्रीकृत प्राधिकरण नहीं होता है जो भुगतान को रोक सकता है या आपको किसी भी चीज़ तक पहुंच से वंचित कर सकता है। सेवाएं जो पहले धीमी थीं और मानवीय त्रुटि के जोखिम में थीं, अब स्वचालित और सुरक्षित हैं क्योंकि उन्हें कोड द्वारा नियंत्रित किया जाता है जिसका कोई भी निरीक्षण कर सकता है और जांच कर सकता है। - -वहाँ एक तेजी से बढ़ती क्रिप्टो अर्थव्यवस्था है, जहाँ आप उधार दे सकते हैं, उधार ले सकते हैं, लंबी/छोटी, ब्याज कमा सकते हैं, और बहुत कुछ कर सकते हैं। क्रिप्टो-प्रेमी अर्जेंटीनावासियों ने बढ़ती मुद्रास्फीति से बचने के लिए DeFi का उपयोग किया है। कंपनियों ने अपने कर्मचारियों को उनके वेतन का वास्तविक समय में प्रसारण शुरू कर दिया है। कुछ लोगों ने तो बिना किसी व्यक्तिगत पहचान के ही लाखों डॉलर का कर्ज निकाल लिया और चुका दिया। - - - -## DeFi बनाम पारंपरिक वित्त {#defi-vs-tradfi} - -DeFi की क्षमता को देखने का एक सबसे अच्छा तरीका आज की समस्याओं को समझना है। - -- कुछ लोगों को बैंक खाता खोलने या वित्तीय सेवाओं का उपयोग करने की अनुमति नहीं दी जाती है। -- वित्तीय सेवाओं तक पहुंच की कमी लोगों को रोजगार पाने से रोक सकती है। -- वित्तीय सेवाएं आपको भुगतान प्राप्त करने से रोक सकती हैं। -- वित्तीय सेवाओं का छिपा हुआ शुल्क आपका व्यक्तिगत डेटा होता है। -- सरकारें और केंद्रीकृत संस्थान अपनी मर्जी से बाजारों को बंद कर सकते हैं। -- व्यापारिक घंटे अक्सर किसी विशिष्ट समय क्षेत्र के व्यवसायिक घंटों से सीमित होते हैं। -- आंतरिक मानवीय प्रक्रियाओं के कारण धन हस्तांतरण में कई दिन लग सकते हैं। -- वित्तीय सेवाओं के लिए एक प्रीमियम है क्योंकि मध्यस्थ संस्थानों को उनकी कटौती की जरूरत है। - -### एक तुलना {#defi-comparison} - -| DeFi | परंपरागत वित्त | -| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -| आप अपना पैसा रखते हैं। | आपका पैसा कंपनियों के पास होता है। | -| आप नियंत्रित करते हैं कि आपका पैसा कहां जाता है और इसे कैसे खर्च किया जाता है। | आपको कंपनियों पर भरोसा करना होगा कि वे आपके पैसे का दुरुपयोग न करें, जैसे जोखिम भरे उधारकर्ताओं को ऋण देना। | -| फंड ट्रांसफर मिनटों में होता है। | मैन्युअल प्रक्रियाओं के कारण भुगतान में कुछ दिन लग सकते हैं। | -| लेन-देन गतिविधि छद्मनामी है। | वित्तीय गतिविधि आपकी पहचान के साथ घनिष्ठ रूप से जुड़ी हुई है। | -| DeFi सभी के लिए खुला है। | आपको वित्तीय सेवाओं का उपयोग करने के लिए आवेदन करना होगा। | -| बाजार हमेशा खुले रहते हैं। | बाजार बंद हैं क्योंकि कर्मचारियों को ब्रेक की जरूरत है। | -| यह पारदर्शिता पर आधारित है – कोई भी उत्पाद के डेटा को देख सकता है और निरीक्षण कर सकता है कि सिस्टम कैसे काम करता है। | वित्तीय संस्थान बंद किताबें हैं: आप उनके ऋण इतिहास, उनकी प्रबंधित संपत्तियों का रिकॉर्ड इत्यादि देखने के लिए नहीं कह सकते। | - - - DeFi ऐप्स खोजें - - -## यह बिटकॉइन के साथ शुरू हुआ... {#bitcoin} - -बिटकॉइन कई तरीकों से पहला DeFi एप्लिकेशन था। बिटकॉइन आपको वास्तविकता से मूल्य का स्वामित्व और नियंत्रण करने की अनुमति देता है और आप उसे दुनियाभर में कहीं भी भेज सकते हैं। यह बड़ी संख्या में लोगों को, जो एक-दूसरे पर भरोसा नहीं करते हैं, किसी विश्वसनीय मध्यस्थ की आवश्यकता के बिना खातों के बही-खाते पर सहमत होने का एक तरीका प्रदान करके ऐसा करता है। बिटकॉइन किसी भी व्यक्ति के लिए खुला है और किसी को नियमों को बदलने का अधिकार नहीं है। बिटकॉइन के नियम, जैसे कि इसकी संकीर्णता और इसका खुलापन, प्रौद्योगिकी में लिखे गए हैं। यह पारंपरिक वित्त की तरह नहीं है जहाँ सरकारें मुद्रा छाप सकती हैं जिससे आपकी बचतों की मूल्य कम हो और कंपनियाँ बाजारों को बंद कर सकती हैं। - -इथेरियम इस पर आधारित है। बिटकॉइन की तरह, नियम आपके साथ बदल नहीं सकते और सभी को पहुँच प्राप्त है। लेकिन यह [स्मार्ट अनुबंध](/glossary#smart-contract) का उपयोग करके इस डिजिटल मनी को प्रोग्राम करने योग्य भी बनाता है, ताकि आप मूल्य को संग्रहीत करने और भेजने से आगे बढ़ सकें। - - - -## प्रोग्रामयोग्य मुद्रा {#programmable-money} - -यह अजीब लग रहा है... "मैं अपने मुद्रा को प्रोग्राम क्यों करना चाहूँगा"? हालाँकि, यह इथेरियम पर टोकन्स की एक डिफ़ॉल्ट सुविधा मात्र है। कोई भी भुगतान में तर्क प्रोग्राम कर सकता है। इस तरह आप बिटकॉइन की नियंत्रण और सुरक्षा को वित्तीय संस्थानों द्वारा प्रदान की जाने वाली सेवाओं के साथ मिला सकते हैं। यह आपको क्रिप्टोकरेंसी के साथ ऐसी चीजें करने की अनुमति देता है जो आप बिटकॉइन के साथ नहीं कर सकते, जैसे कि उधार देना और उधार लेना, भुगतानों की योजना बनाना, सूची निवेश में निवेश करना और आदि। - - -
अगर आप इथेरियम में नए हैं, तो DeFi एप्लिकेशन्स के लिए हमारे सुझावों का अन्वेषण करें।
- - DeFi ऐप्स खोजें - -
- -## 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/) की आवश्यकता होगी। - - - भुगतान संबंधित dapps देखें - - -#### दुनियाभर में मुद्रा प्रवाहित करें... {#stream-money} - -आप इथेरियम पर भी मुद्रा प्रवाहित कर सकते हैं। यह आपको किसी का वेतन प्रति सेकंड भुगतान करने की अनुमति देता है, जिससे उन्हें उनके मुद्रा तक कभी भी पहुँचने की सुविधा होती है। या फिर किसी चीज़ को सेकंडों में किराये पर दें, जैसे कि एक स्टोरेज लॉकर या इलेक्ट्रिक स्कूटर। - -और यदि आप [ETH](/eth/) को भेजना या स्ट्रीम नहीं करना चाहते हैं क्योंकि इसका मूल्य कितना बदल सकता है, तो इथेरियम पर वैकल्पिक मुद्राएं हैं: स्थिर मुद्राएँ। - - - -### स्थिर मुद्राएँ प्राप्त करें {#stablecoins} - -क्रिप्टोकरेंसी की अस्थिरता बहुत सारे वित्तीय उत्पादों और सामान्य खर्चों के लिए एक समस्या है। DeFi समुदाय ने स्थिर मुद्राओं से इस समस्या को हल किया है। उनका मूल्य एक दूसरे संपत्ति से जुड़ा रहता है, आमतौर पर डॉलर जैसी लोकप्रिय मुद्रा के साथ। - -मुद्राएँ जैसे कि Dai या USDC का मूल्य डॉलर के कुछ सेंट के भीतर ही रहता है। यह उन्हें कमाई या खुदरा के लिए उत्तम बनाता है। लैटिन अमेरिका में कई लोगों ने अपनी सरकार द्वारा जारी मुद्राओं के साथ बड़ी अनिश्चितता के समय में अपनी बचत को सुरक्षित रखने के तरीके के रूप में स्थिर मुद्राओं का उपयोग किया है। - - - स्थिर मुद्राओं पर अधिक जानकारी - - - - -### उधार {#lending} - -विकेंद्रीकृत प्रदाताओं से पैसा उधार लेना दो मुख्य प्रकारों में आता है। - -- पीयर-टू-पीयर, यानी एक उधारकर्ता सीधे एक विशिष्ट उधारदाता से मुद्रा उधार लेगा। -- पूल-आधारित, जहां ऋणदाता पूल में निधियाँ (लिक्विडिटी) प्रदान करते हैं, जिससे उधारकर्ता उधार ले सकते हैं। - - - उधार लेने वाले dapps देखें - - -विकेंद्रीकृत ऋणदाता का उपयोग करने के कई फायदे हैं... - -#### गोपनीयता के साथ उधार लेना {#borrowing-privacy} - -आज, पैसा उधार देना और उधार लेना संबंधित व्यक्तियों के इर्द-गिर्द घूमता है। बैंकों को ऋण देने से पहले यह जानना आवश्यक है कि आपके द्वारा ऋण चुकाने की संभावना है या नहीं। - -विकेंद्रीकृत ऋण किसी भी पक्ष की पहचान बताए बिना काम करता है। इसके बजाय, उधारकर्ता को संपार्श्विक रखना होगा जो ऋणदाता को स्वचालित रूप से प्राप्त होगा यदि उनका ऋण चुकाया नहीं गया है। कुछ ऋणदाता NFT को संपार्श्विक के रूप में भी स्वीकार करते हैं। NFT एक पेंटिंग की तरह एक अद्वितीय संपत्ति का एक दस्तावेज है। [NFT पर अधिक जानकारी](/nft/) - -यह आपको क्रेडिट जांच या निजी जानकारी सौंपे बिना मुद्रा उधार लेने की अनुमति देता है। - -#### वैश्विक निधियों तक पहुंच {#access-global-funds} - -जब आप एक विकेन्द्रीकृत ऋणदाता का उपयोग करते हैं तो आपके पास दुनिया भर से जमा किए गए धन तक पहुंच होती है, न कि केवल आपके चुने हुए बैंक या संस्थान की निगरानी में मौजूद धन तक। इससे ऋण अधिक सुलभ हो जाता है और ब्याज दरों में सुधार होता है। - -#### कर-दक्षताएँ {#tax-efficiencies} - -उधार लेने से आपको अपना ETH बेचने (एक कर योग्य घटना) की आवश्यकता के बिना आवश्यक धनराशि तक पहुंच मिल सकती है। इसके बजाय, आप स्थिर मुद्रा ऋण के लिए गिरवी के रूप में ETH का उपयोग कर सकते हैं। यह आपको आवश्यक नकदी प्रवाह प्रदान करता है और आपको आपके ETH को रखने की अनुमति देता है। स्थिर मुद्राएँ टोकन होती हैं जो बहुत अधिक अच्छी होती हैं जब आपको नकदी की आवश्यकता होती है क्योंकि उनकी मूल्य में ETH की तरह परिवर्तन नहीं होता। [स्थिर मुद्राओं पर अधिक जानकारी](#stablecoins) - -#### फ़्लैश ऋण {#flash-loans} - -फ्लैश ऋण विकेन्द्रीकृत ऋण का एक अधिक प्रयोगात्मक रूप है जो आपको गिरवी या कोई व्यक्तिगत जानकारी प्रदान किए बिना उधार देता है। - -वर्तमान में ये गैर-तकनीकी लोगों के लिए व्यापक रूप से उपलब्ध नहीं हैं, लेकिन ये संकेत देते हैं कि भविष्य में हर किसी के लिए क्या संभव हो सकता है। - -यह इस आधार पर काम करता है कि ऋण लिया गया है और उसी लेनदेन के भीतर वापस भुगतान किया गया है। यदि इसे वापस भुगतान नहीं किया जा सकता है, तो लेन-देन ऐसे वापस आ जाता है जैसे कि कभी कुछ हुआ ही नहीं। - -वे निधि जो अक्सर उपयोग मे लाए जाते हैं, वे लिक्विडिटी पूल में रखे जाते हैं (बड़े पूल जिन्हें उधार लेने के लिए उपयोग किया जाता है)। अगर उन्हें किसी दिए गए समय पर उनका उपयोग नहीं किया जा रहा है, तो यह किसी के लिए एक अवसर पैदा करता है कि वे इन फंड्स को उधार ले सकते हैं, उनके साथ व्यापार कर सकते हैं और उन्हें पूरी तरह से उसी समय मे चुकाने का अवसर पैदा करता है। - -इसका मतलब है कि एक विशिष्ट लेन-देन में कई तरह के तर्क शामिल किए जाने चाहिए। एक साधारण उदाहरण यह हो सकता है कि कोई व्यक्ति एक कीमत पर अधिक से अधिक संपत्ति उधार लेने के लिए फ्लैश लोन का उपयोग कर रहा हो ताकि वे इसे एक अलग एक्सचेंज पर बेच सकें जहां कीमत अधिक हो। - -तो एक ही लेन-देन में, निम्नलिखित होता है: - -- आप $1.00 पर $asset की X राशि को एक्सचेंज A से उधार लेते हैं -- आप X $asset को $1.10 पर एक्सचेंज B पर बेचते हैं -- आप उधार की राशि को एक्सचेंज A को वापस करते हैं -- आप लाभ को लेनदेन शुल्क घटाकर रखते हैं - -अगर एक्सचेंज B की आपूर्ति अचानक घट जाती है और उपयोगकर्ता मूल ऋण को कवर करने के लिए पर्याप्त खरीदारी करने में सक्षम नहीं होता, तो लेनदेन विफल हो जाएगा। - -उपरोक्त उदाहरण को पारंपरिक वित्त दुनिया में करने के लिए, आपको बड़ी मात्रा में धन की आवश्यकता होती है। ये पैसे कमाने की रणनीतियाँ केवल उन्हीं तक पहुँचती हैं जिनके पास पहले से ही धन है। फ्लैश ऋण एक ऐसे भविष्य का उदाहरण है जहाँ पैसे कमाने के लिए पैसे होना आवश्यक नहीं है। - -[फ़्लैश ऋण पर अधिक जानकारी](https://aave.com/flash-loans/) - - - -### क्रिप्टो के साथ बचत शुरू करें {#saving} - -#### ऋण {#lending} - -आप अपने क्रिप्टो पर ब्याज कमा सकते हैं उसे उधार देकर और अपने फंड्स को वास्तविक समय में बढ़ते हुए देख सकते हैं। अभी ब्याज दरें आपके स्थानीय बैंक में मिलने वाली संभावना से कहीं अधिक हैं (यदि आप इतने भाग्यशाली हैं कि इस तक पहुंच पाने में सक्षम हैं)। यहाँ पर एक उदाहरण है: - -- आप अपने 100 Dai, एक [स्थिर मुद्रा](/stablecoins/), Aave जैसे उत्पाद को उधार देते हैं। -- आपको 100 Aave Dai (aDai) प्राप्त होता है, जो आपके उधार दिए गए Dai का प्रतिनिधित्व करने वाला एक टोकन है। -- ब्याज दरों के आधार पर आपका aDai बढ़ेगा और आप अपने वॉलेट में अपना बैलेंस बढ़ता हुआ देख सकते हैं। एपीआर पर निर्भर करते हुए, आपके वॉलेट का बैलेंस कुछ दिनों या घंटों के बाद 100.1234 ऐसा कुछ दिखाई देगा! -- आप किसी भी समय नियमित Dai की राशि निकाल सकते हैं जो आपके aDai बैलेंस के बराबर है। - - - लेनदेन वाले dapps देखें - - -#### नो-लॉस लॉटरी {#no-loss-lotteries} - -PoolTogether जैसी नो-लॉस लॉटरी पैसे बचाने का एक मज़ेदार और नया तरीका है। - -- आप 100 Dai टोकन का उपयोग करके 100 टिकट खरीदते हैं। -- आपको 100 plDai प्राप्त होते हैं जो आपके 100 टिकटों का प्रतिनिधित्व करते हैं। -- यदि आपके टिकटों में से एक को विजेता के रूप में चुना जाता है, तो आपका plDai बैलेंस पुरस्कार पूल की राशि से बढ़ जाएगा। -- यदि आप नहीं जीतते हैं, तो आपका 100 plDai अगले सप्ताह के ड्रा में चला जाएगा। -- आप किसी भी समय नियमित Dai की राशि निकाल सकते हैं जो आपके plDai बैलेंस के बराबर है। - -पुरस्कार पूल टिकट जमा को उधार देने से उत्पन्न सभी ब्याज से उत्पन्न होता है जैसे कि ऊपर दिए गए उधार के उदाहरण में। - - - PoolTogether आज़माएँ - - - - -### एक्सचेंज टोकन {#swaps} - -इथेरियम पर हजारों टोकन हैं। विकेंद्रीकृत एक्सचेंज (DEX) आपको जब चाहें विभिन्न टोकन का व्यापार करने की सुविधा देते हैं। आप कभी भी अपने संपत्तियों का नियंत्रण नहीं छोड़ते हैं। यह किसी अन्य देश की यात्रा के समय मुद्रा एक्सचेंज का उपयोग करने की तरह है। लेकिन DeFi संस्करण कभी बंद नहीं होता। बाज़ार साल के 24/7, 365 दिन खुले रहते हैं और प्रौद्योगिकी गारंटी देती है कि व्यापार स्वीकार करने के लिए हमेशा कोई न कोई होगा। - -उदाहरण के लिए, अगर आप नो-लॉस लॉटरी PoolTogether (ऊपर वर्णित) का उपयोग करना चाहते हैं, तो आपको Dai या USDC जैसे टोकन की आवश्यकता होगी। ये DEX आपको अपने ETH को उन टोकन के लिए स्वैप करने और काम पूरा होने पर फिर से वापस करने की अनुमति देते हैं। - - - टोकन एक्सचेंजेस देखें - - - - -### उन्नत व्यापार {#trading} - -उन व्यापारियों के लिए अधिक उन्नत विकल्प हैं जो थोड़ा अधिक नियंत्रण पसंद करते हैं। लिमिट आदेश, स्थायी आदेश, मार्जिन व्यापार और अन्य सभी संभावित हैं। विकेन्द्रीकृत व्यापार के साथ आपको वैश्विक तरलता तक पहुंच मिलती है, बाजार कभी बंद नहीं होता है, और आप हमेशा अपनी संपत्ति के नियंत्रण में होते हैं। - -जब आप एक केंद्रीकृत एक्सचेंज का उपयोग करते हैं तो आपको व्यापार से पहले अपनी संपत्ति जमा करनी होगी और उनकी देखभाल करने के लिए केंद्रीकृत एक्सचेंज पर भरोसा करना होगा। जब आपकी संपत्ति जमा की जाती है, वे जोखिम में हैं क्योंकि केंद्रीकृत एक्सचेंज हैकर्स के लिए आकर्षक लक्ष्य हैं। - - - ट्रेडिंग dapps देखें - - - - -### अपने पोर्टफोलियो को बढ़ाएं {#investing} - -इथेरियम पर फंड प्रबंधन उत्पाद हैं जो आपकी पसंद की रणनीति के आधार पर आपके पोर्टफोलियो को बढ़ाने की कोशिश करेंगे। यह स्वचालित है, सभी के लिए खुला है, और आपके मुनाफे में कटौती करने वाले मानव प्रबंधक की आवश्यकता नहीं है। - -एक अच्छा उदाहरण [DeFi पल्स इंडेक्स फंड (DPI) है](https://defipulse.com/blog/defi-pulse-index/)। यह एक ऐसा फंड है जो यह सुनिश्चित करने के लिए स्वचालित रूप से पुनर्संतुलन करता है कि आपके पोर्टफोलियो में हमेशा [बाजार पूंजीकरण द्वारा शीर्ष DeFi टोकन](https://www.coingecko.com/en/defi) शामिल हों। आपको कभी भी किसी भी विवरण का प्रबंधन नहीं करना पड़ता है और आप जब चाहें फंड से निकाल सकते हैं। - - - निवेश के dapps देखें। - - - - -### अपने विचारों को वित्तपोषित करें {#crowdfunding} - -इथेरियम क्राउडफंडिंग के लिए एक आदर्श मंच है: - -- संभावित फंडर कहीं से भी आ सकता है - इथेरियम और इसके टोकन दुनिया में कहीं भी, किसी के लिए भी खुले हैं। -- यह पारदर्शी है ताकि धन जुटाने वाले साबित कर सकें कि कितना धन जुटाया गया है। आप यह भी पता लगा सकते हैं कि बाद में धन कैसे खर्च किया जा रहा है। -- फंड जुटाने वाले स्वचालित रिफंड सेट कर सकते हैं, उदाहरण के लिए, एक विशिष्ट समय सीमा और न्यूनतम राशि जो पूरी नहीं होती है। - - - क्राउडफंडिंग dapps देखें - - -#### द्विघात निधिकरण {#quadratic-funding} - -इथेरियम ओपन सोर्स सॉफ्टवेयर है और अब तक के बहुत सारे काम समुदाय द्वारा वित्त पोषित किए गए हैं। इससे एक दिलचस्प नए धन उगाहने वाले मॉडल का विकास हुआ है: द्विघात निधिकरण। This has the potential to improve the way we fund all types of public goods in the future. - -Quadratic funding makes sure that the projects that receive the most funding are those with the most unique demand. In other words, projects that stand to improve the lives of the most people. यहां बताया गया है कि यह कैसे काम करता है: - -1. दान की गई निधियों का एक मिलान पूल है। -2. सार्वजनिक वित्त पोषण का एक दौर शुरू होता है। -3. लोग कुछ पैसे दान करके एक परियोजना के लिए अपनी मांग का संकेत दे सकते हैं। -4. एक बार राउंड खत्म होने के बाद, मैचिंग पूल को परियोजनाओं में वितरित किया जाता है। सबसे अनूठी मांग वाले लोगों को मैचिंग पूल से सबसे अधिक राशि मिलती है। - -इसका मतलब यह है कि प्रोजेक्ट A अपने 1 डॉलर के 100 दान के साथ, B की तुलना में जो 10,000 डॉलर (मिलान पूल के आकार पर निर्भर) के एकल दान के साथ अधिक फंडिंग के साथ समाप्त हो सकता है। - -[द्विघात निधिकरण पर अधिक जानकारी](https://wtfisqf.com) - - - -### बीमा {#insurance} - -विकेन्द्रीकृत बीमा का उद्देश्य बीमा को सस्ता, भुगतान करने में तेजी और अधिक पारदर्शी बनाना है। अधिक स्वचालन के साथ, कवरेज अधिक सस्ती है और भुगतान बहुत तेज है। आपके दावे पर निर्णय लेने के लिए उपयोग किया जाने वाला डेटा पूरी तरह से पारदर्शी है। - -इथेरियम उत्पाद, किसी भी सॉफ्टवेयर की तरह, सॉफ्टवेयर बग और शोषण से पीड़ित हो सकते हैं। इसलिए अभी इस क्षेत्र में बहुत सारे बीमा उत्पाद अपने उपयोगकर्ताओं को धन के नुकसान से बचाने पर ध्यान केंद्रित करते हैं। हालांकि, ऐसी परियोजनाएं हैं जो जीवन में सब कुछ के लिए कवरेज का निर्माण करना शुरू कर रही हैं। इसका एक अच्छा उदाहरण Etherisc का फसल कवर है जिसका उद्देश्य सूखे और बाढ़ के खिलाफ [केन्या में छोटे किसानों की रक्षा](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc) करना है। विकेन्द्रीकृत बीमा उन किसानों के लिए सस्ता कवर प्रदान कर सकता है जिनकी कीमत अक्सर बीमा से बाहर होती है। - - - dapps बीमा देखें - - - - -### एग्रीगेटर और पोर्टफोलियो प्रबंधक {#aggregators} - -इतना कुछ होने के साथ, आपको अपने सभी निवेशों, ऋणों और ट्रेडों पर नज़र रखने का एक तरीका चाहिए। ऐसे कई उत्पाद हैं जो आपको एक ही स्थान से अपनी सभी DeFi गतिविधि का समन्वय करने देते हैं। यह DeFi की खुली वास्तुकला की सुंदरता है। टीम इंटरफेस का निर्माण कर सकती है जहां आप न केवल उत्पादों में अपना संतुलन देख सकते हैं, आप उनकी सुविधाओं का भी उपयोग कर सकते हैं। जैसा कि आप DeFi के बारे में अधिक पता लगाते हैं, आपको यह उपयोगी लग सकता है। - - - पोर्टफोलियो dapps देखें - - - - -## DeFi कैसे काम करता है? {#how-defi-works} - -DeFi उन सेवाओं को प्रदान करने के लिए क्रिप्टोकरेंसी और स्मार्ट अनुबंधों का उपयोग करता है जिनमें मध्यस्थों की आवश्यकता नहीं होती है। आज की वित्तीय दुनिया में, वित्तीय संस्थान लेनदेन के गारंटर के रूप में कार्य करते हैं। इससे इन संस्थानों को अत्यधिक शक्ति मिलती है क्योंकि आपका पैसा उनके माध्यम से प्रवाहित होता है। साथ ही दुनिया भर में अरबों लोग बैंक खाते तक भी पहुंच नहीं पा सकते हैं। - -DeFi में, एक स्मार्ट अनुबंध लेनदेन में वित्तीय संस्थान की जगह लेता है। एक स्मार्ट अनुबंध एक प्रकार का इथेरियम खाता है जो धन रख सकता है और कुछ शर्तों के आधार पर उन्हें भेज/धनवापसी कर सकता है। कोई भी उस स्मार्ट अनुबंध को बदल नहीं सकता है जब यह लाइव होता है – यह हमेशा प्रोग्राम के अनुसार चलेगा। - -एक अनुबंध जो भत्ता या पॉकेट मनी देने के लिए डिज़ाइन किया गया है, उसे हर शुक्रवार को खाता A से खाता B में पैसा भेजने के लिए प्रोग्राम किया जा सकता है। और यह केवल तब तक ऐसा करेगा जब तक खाता A के पास आवश्यक धन है। कोई भी अनुबंध को बदल नहीं सकता है और धन चोरी करने के लिए प्राप्तकर्ता के रूप में खाता C जोड़ सकता है। - -किसी के निरीक्षण और लेखा परीक्षा के लिए अनुबंध भी सार्वजनिक हैं। इसका मतलब है कि खराब अनुबंध अक्सर सामुदायिक जांच के दायरे में बहुत जल्दी आएंगे। - -इसका मतलब यह है कि वर्तमान में इथेरियम समुदाय के अधिक तकनीकी सदस्यों पर भरोसा करने की आवश्यकता है जो कोड पढ़ सकते हैं। ओपन-सोर्स आधारित समुदाय डेवलपर्स को नियंत्रण में रखने में मदद करता है, लेकिन समय के साथ यह आवश्यकता कम हो जाएगी क्योंकि स्मार्ट अनुबंध पढ़ना आसान हो जाएगा और कोड की विश्वसनीयता साबित करने के अन्य तरीके विकसित हो जाएंगे। - -## इथेरियम और DeFi {#ethereum-and-defi} - -इथेरियम कई कारणों से DeFi के लिए एकदम सही नींव है: - -- कोई भी इथेरियम या उस पर आश्रित स्मार्ट अनुबंधों का मालिक नहीं है – यह हर किसी को DeFi का उपयोग करने का अवसर देता है। इसका मतलब यह भी है कि कोई भी आप पर लागू नियमों को नहीं बदल सकता है। -- DeFi उत्पाद पर्दे के पीछे एक ही भाषा बोलते हैं: इथेरियम। इसका मतलब है कि कई उत्पाद एक साथ निर्बाध रूप से काम करते हैं। आप एक प्लेटफ़ॉर्म पर टोकन उधार दे सकते हैं और ब्याज वाले टोकन को एक अलग बाज़ार में एक पूरी तरह से अलग एप्लिकेशन पर एक्सचेंज कर सकते हैं। यह आपके बैंक में लॉयल्टी पॉइंट्स को कैश करने में सक्षम होने जैसा है। -- टोकन और क्रिप्टोकरेंसी को इथेरियम में बनाया गया है, जो एक साझा बहीखाता है – लेनदेन और स्वामित्व का ट्रैक रखना इथेरियम की तरह है। -- इथेरियम पूर्ण वित्तीय स्वतंत्रता की अनुमति देता है – अधिकांश उत्पाद कभी भी आपके धन की कस्टडी नहीं लेंगे, जिससे आप नियंत्रण में रह जाएंगे। - -आप परतों में DeFi के बारे में सोच सकते हैं: - -1. ब्लॉकचेन – इथेरियम में लेनदेन इतिहास और खातों की स्थिति शामिल है। -2. संपत्ति – [ETH](/eth/) और अन्य टोकन (मुद्राएं)। -3. प्रोटोकॉल – [स्मार्ट अनुबंध](/glossary/#smart-contract) जो कार्यक्षमता प्रदान करते हैं, उदाहरण के लिए, एक सेवा जो परिसंपत्तियों के विकेन्द्रीकृत उधार की अनुमति देती है। -4. [एप्लिकेशन](/dapps/) – वे उत्पाद जिनका उपयोग हम प्रोटोकॉल को प्रबंधित करने और एक्सेस करने के लिए करते हैं। - -## DeFi का निर्माण करें {#build-defi} - -DeFi एक ओपन-सोर्स गतिविधि है। DeFi प्रोटोकॉल और एप्लिकेशन आपके लिए निरीक्षण, फोर्क और नवाचार करने के लिए खुले हैं। इस स्तरित स्टैक के कारण (वे सभी एक ही आधार ब्लॉकचेन और संपत्ति साझा करते हैं), प्रोटोकॉल को अद्वितीय कॉम्बो अवसरों को अनलॉक करने के लिए मिश्रित और मिलान किया जा सकता है। - - - dapps के निर्माण पर अधिक जानकारी - - -## अग्रिम पठन {#futher-reading} - -### DeFi डाटा {#defi-data} - -- [DeFi प्राइम](https://defiprime.com/) -- [DeFi Llama](https://defillama.com/) -- [DeFi रेट](https://defirate.com/) - -### DeFi लेख {#defi-articles} - -- [DeFi के लिए एक शुरुआती मार्गदर्शिका](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _सीड कोएल्हो-प्रभु 6 जनवरी, 2020_ - -### वीडियो {#videos} - -- [फिनेमैटिक्स - विकेन्द्रीकृत वित्त शिक्षा](https://finematics.com/) – _DeFi पर वीडियो_ -- [डेफिएंट](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _DeFi की मूल बातें: इस क्षेत्र में शुरुआत करने के लिए आपको जो कुछ जानने की जरूरत है।_ -- [व्हाइटबोर्ड क्रिप्टो](https://youtu.be/17QRFlml4pA) – _DeFi क्या है?_ - -### समुदाय {#communities} - -- [DeFi Llama Discord सर्वर](https://discord.gg/buPFYXzDDd) -- [DeFi Pulse Discord सर्वर](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/hi/desci/index.md b/src/content/translations/hi/desci/index.md deleted file mode 100644 index 70e40f3e46f..00000000000 --- a/src/content/translations/hi/desci/index.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: विकेंद्रित विज्ञान (DeSci) -description: इथेरियम पर विकेन्द्रीकृत विज्ञान का अवलोकन -lang: hi -template: use-cases -emoji: ":microscope:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: वर्तमान वैज्ञानिक प्रणाली के लिए एक वैश्विक, खुला विकल्प। -summaryPoint2: एक तकनीक जो वैज्ञानिकों को धन जुटाने, प्रयोग चलाने, डेटा साझा करने, अंतर्दृष्टि वितरित करने और बहुत कुछ करने में सक्षम बनाती है। -summaryPoint3: खुले विज्ञान आंदोलन पर निर्माण आधारित है। ---- - -## विकेन्द्रीकृत विज्ञान (DeSci) क्या है? {#what-is-desci} - -विकेन्द्रीकृत विज्ञान (DeSci) एक आंदोलन है जिसका उद्देश्य Web3 स्टैक का उपयोग करके वैज्ञानिक ज्ञान को निष्पक्ष और समान रूप से वित्त पोषण, निर्माण, समीक्षा, क्रेडिट, भंडारण और प्रसार के लिए सार्वजनिक बुनियादी ढांचे का निर्माण करना है। - -DeSci का उद्देश्य एक पारिस्थितिकी तंत्र बनाना है जहां वैज्ञानिकों को खुले तौर पर अपने शोध को साझा करने और अपने काम के लिए क्रेडिट प्राप्त करने के लिए प्रोत्साहित किया जाता है, जबकि किसी को भी आसानी से अनुसंधान तक पहुंचने और योगदान करने की अनुमति मिलती है। DeSci इस विचार से काम करता है कि वैज्ञानिक ज्ञान हर किसी के लिए सुलभ होना चाहिए और वैज्ञानिक अनुसंधान की प्रक्रिया पारदर्शी होनी चाहिए। DeSci एक अधिक विकेन्द्रीकृत और वितरित वैज्ञानिक अनुसंधान मॉडल बना रहा है, जिससे यह केंद्रीय अधिकारियों द्वारा सेंसरशिप और नियंत्रण के लिए अधिक प्रतिरोधी बनाया गया है। DeSci एक ऐसा वातावरण बनाने की उम्मीद करता है जहां नए और अपरंपरागत विचार वित्त पोषण, वैज्ञानिक उपकरणों और संचार चैनलों तक पहुंच को विकेंद्रीकृत करके पनप सकते हैं। - -विकेन्द्रीकृत विज्ञान अधिक विविध वित्त पोषण स्रोतों ([DAO](/dao/), [द्विघात दान](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) से क्राउडफंडिंग और अधिक) के लिए अनुमति देता है, अधिक सुलभ, डेटा और विधियों तक पहुंच, और प्रजनन क्षमता के लिए प्रोत्साहन प्रदान करता है। - -### जुआन बेनेट - DeSci गतिविधि - - - -## DeSci विज्ञान में सुधार कैसे करता है {#desci-improves-science} - -विज्ञान में प्रमुख समस्याओं की एक अधूरी सूची और कैसे विकेंद्रीकृत विज्ञान इन मुद्दों को संबोधित करने में मदद कर सकता है - -| **विकेन्द्रीकृत विज्ञान** | **पारंपरिक विज्ञान** | -| ---------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | -| धन का वितरण जनता द्वारा द्विघात दान या DAO जैसे तंत्र का उपयोग करके निर्धारित किया जाता है। | छोटे, बंद, केंद्रीकृत समूह धन के वितरण को नियंत्रित करते हैं। | -| आप गतिशील टीमों में दुनिया भर के साथियों के साथ सहयोग करते हैं। | फंडिंग संगठन और घरेलू संस्थान आपके सहयोग को सीमित करते हैं। | -| फंडिंग के फैसले ऑनलाइन और पारदर्शी तरीके से किए जाते हैं। नए वित्तपोषण तंत्र का पता लगाया जाता है। | फंडिंग के फैसले लंबे समय और सीमित पारदर्शिता के साथ किए जाते हैं। कुछ वित्त पोषण तंत्र मौजूद हैं। | -| Web3 आदिमों का उपयोग करके प्रयोगशाला सेवाओं को साझा करना आसान और अधिक पारदर्शी बनाया गया है। | प्रयोगशाला संसाधनों को साझा करना अक्सर धीमा और अपारदर्शी होता है। | -| प्रकाशन के लिए नए मॉडल विकसित किए जा सकते हैं जो विश्वास, पारदर्शिता और सार्वभौमिक पहुंच के लिए Web3 आदिम का उपयोग करते हैं। | आप स्थापित तरीकों से प्रकाशित होते हैं जिन्हें अक्सर अकुशल, पक्षपातपूर्ण और शोषणकारी माना जाता है। | -| आप पीयर-समीक्षा कार्य के लिए टोकन और प्रतिष्ठा अर्जित कर सकते हैं। | आपका पीयर-समीक्षा कार्य अवैतनिक है, जिससे लाभकारी प्रकाशकों को लाभ होता है। | -| आप उस बौद्धिक संपदा (IP) के मालिक हैं जिसे आप उत्पन्न करते हैं और इसे पारदर्शी शर्तों के अनुसार वितरित करते हैं। | आपका गृह संस्थान आपके द्वारा उत्पन्न बौद्धिक संपदा IP का मालिक है। बौद्धिक संपदा IP तक पहुँच पारदर्शी नहीं है। | -| सभी चरणों को ऑन-चेन करके, असफल प्रयासों से डेटा सहित सभी शोध को साझा करना। | प्रकाशन पूर्वाग्रह का मतलब है कि शोधकर्ताओं को उन प्रयोगों को साझा करने की अधिक संभावना है जिनके परिणाम सफल थे। | - -## इथेरियम और DeSci {#ethereum-and-desci} - -एक विकेन्द्रीकृत विज्ञान प्रणाली को मजबूत सुरक्षा, न्यूनतम मौद्रिक और लेनदेन लागत, और आवेदन विकास के लिए एक समृद्ध पारिस्थितिकी तंत्र की आवश्यकता होगी। इथेरियम एक विकेन्द्रीकृत विज्ञान स्टैक के निर्माण के लिए आवश्यक सब कुछ प्रदान करता है। - -## DeSci उपयोग के मामले {#use-cases} - -DeSci Web2 शिक्षा जगत को डिजिटल दुनिया में शामिल करने के लिए वैज्ञानिक टूलसेट का निर्माण कर रहे है। नीचे उपयोग के मामलों का एक नमूना दिया गया है जिसे Web3 वैज्ञानिक समुदाय को पेश कर सकता है। - -### प्रकाशन {#publishing} - -विज्ञान प्रकाशन प्रसिद्ध रूप से समस्याग्रस्त है क्योंकि इसका प्रबंधन ऐसे प्रकाशकों द्वारा किया जाता है जो पेपर तैयार करने के लिए वैज्ञानिकों, समीक्षकों और संपादकों के मुफ्त श्रम पर निर्भर होते हैं लेकिन फिर अत्यधिक प्रकाशन शुल्क लेते हैं। जनता, जो आम तौर पर कराधान के माध्यम से काम और प्रकाशन लागत के लिए अप्रत्यक्ष रूप से भुगतान करती है, अक्सर प्रकाशक को दोबारा भुगतान किए बिना उसी काम तक नहीं पहुंच पाती है। व्यक्तिगत विज्ञान पत्रों को प्रकाशित करने की कुल फीस अक्सर पाँच अंक ($USD) होती है, जो [सार्वजनिक हित](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 में DAO और 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 ​​स्वामित्व और विकास {#ip-ownership} - -पारंपरिक विज्ञान में बौद्धिक संपदा (IP) एक बड़ी समस्या है: विश्वविद्यालयों में अटके रहने या बायोटेक में अनुपयोगिता होने से लेकर मूल्य निर्धारण में बेहद कठिन होने तक। हालांकि, डिजिटल संपत्तियों (जैसे कि वैज्ञानिक डेटा या लेख) के स्वामित्व को Web3 ने [गैर-सघटनक टोकन (NFT)](/nft/) का उपयोग करके असाधारण रूप से अच्छी तरह से करता है। - -जिस तरह से NFT भविष्य के लेनदेन के लिए राजस्व को मूल निर्माता को वापस भेज सकता है, उसी तरह आप शोधकर्ताओं, शासी निकायों (जैसे DAO), या यहां तक ​​कि उन विषयों को पुरस्कृत करने के लिए पारदर्शी मूल्य अनुदान श्रृंखला स्थापित कर सकते हैं जिनका डेटा एकत्र किया गया है। - -[IP-NFT](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) किए जा रहे अनुसंधान प्रयोगों के विकेन्द्रीकृत डेटा भंडार की कुंजी के रूप में भी कार्य कर सकता है, और NFT और [DeFi](/defi/) वित्तीयकरण (विभाजन से ऋण पूल और मूल्य मूल्यांकन तक) में प्लग कर सकता है। यह मूल रूप से ऑन-चेन संस्थाओं जैसे DAO जैसे [VitaDAO](https://www.vitadao.com/) को सीधे ऑन-चेन अनुसंधान करने की अनुमति देता है। गैर-हस्तांतरणीय ["सोलबाउंड" टोकन](https://vitalik.ca/general/2022/01/26/soulound.html) का आगमन भी अनुमति देकर DeSci में एक महत्वपूर्ण भूमिका निभा सकता है, व्यक्तियों को अपने इथेरियम पते से जुड़े अपने अनुभव और साख को प्रमाणित करने की अनुमति मिल सकती है। - -### डेटा भंडारण, पहुंच और वास्तुकला {#data-storage} - -Web3 पैटर्न का उपयोग करके वैज्ञानिक डेटा को बहुत अधिक सुलभ बनाया जा सकता है, और वितरित भंडारण अनुसंधान को प्रलयकारी घटनाओं से बचने में सक्षम बनाता है। - -शुरुआती बिंदु एक प्रणाली होनी चाहिए जिसमें कोई भी विकेन्द्रीकृत पहचान, सही प्रमाणनीय प्रमाणपत्र रखने वाला व्यक्ति पहुँच सकता है। यह संवेदनशील डेटा को विश्वसनीय पार्टियों द्वारा सुरक्षित रूप से दोहराने की अनुमति देता है, जिससे अतिरेक और सेंसरशिप प्रतिरोध, परिणामों का पुनरुत्पादन, और यहां तक कि कई पार्टियों के लिए डेटासेट में सहयोग करने और नए डेटा को जोड़ने की क्षमता भी सक्षम होती है। [कम्प्यूट-टू-डेटा](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 डेटा समाधान उपरोक्त परिदृश्यों का समर्थन करते हैं और वास्तव में ओपन साइंस के लिए आधार प्रदान करते हैं, जहां शोधकर्ता बिना एक्सेस अनुमति या शुल्क के सार्वजनिक सामान बना सकते हैं। IPFS, Arweave और Filecoin जैसे Web3 सार्वजनिक डेटा समाधान विकेंद्रीकरण के लिए अनुकूलित हैं। उदाहरण के लिए, dClimate, वैश्विक स्तर पर जलवायु और मौसम का डाटा प्रदान करता है जिसमें मौसम केंद्र और जलवायु का अनुमान लगाने वाले मॉडल का भी डाटा शामिल है। - -## शामिल हों {#get-involved} - -परियोजनाओं का अन्वेषण करें और DeSci समुदाय में शामिल हों। - -- [DeSci.Global: वैश्विक ईवेंट और मीटअप कैलेंडर](https://desci.global) -- [साइंस 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: DeSci प्रकाशन उपकरण बिल्डर](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 या DeSci परियोजना के लिए वित्त पोषित करें](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/) -- [DeSci Labs](https://www.desci.com/) - -हम नई परियोजनाओं को सूचीबद्ध करने के लिए सुझावों का स्वागत करते हैं - कृपया शुरू करने के लिए हमारी [लिस्टिंग नीति](/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/) -- [DeSci केस](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) -- [DeSci के लिए गाइड](https://future.com/what-is-decentralized-science-aka-desci/) -- [विकेन्द्रीकृत विज्ञान संसाधन](https://www.vincentweisser.com/decentralized-science) -- [Molecule Biopharma IP-NFT - एक तकनीकी विवरण](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) -- [विज्ञान की विश्वसनीय प्रणालियों का निर्माण, जॉन स्टार द्वारा](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) -- [बायोटेक DAO का उद्भव](https://molecule.to/blog/the-emergence-of-biotech-daos) -- [पॉल कोल्हास - 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) -- [DeSci: सैमुअल अकिनोशो द्वारा द फ्यूचर ऑफ रिसर्च](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) -- [विज्ञान वित्त पोषण (उपसंहार: DeSci और नए क्रिप्टो आदिम) - लेखक नादिया द्वारा](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) -- [जुआन बेनेट - DeSci, स्वतंत्र लैब्स, & बड़े पैमाने पर डेटा साइंस](https://www.youtube.com/watch?v=zkXM9H90g_E) -- [सेबस्टियन ब्रुनेमीयर - DeSci बायोमेडिकल रिसर्च & वेंचर कैपिटल को कैसे बदल सकता है](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/hi/nft/index.md b/src/content/translations/hi/nft/index.md deleted file mode 100644 index 2af48cc6984..00000000000 --- a/src/content/translations/hi/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: अपूरणीय टोकन (NFT) -description: एथेरियम पर NFT का अवलोकन -lang: hi -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: होलोग्राम के माध्यम से एक Eth लोगो प्रदर्शित किया जा रहा है। -summaryPoint1: किसी भी अनूठी वस्तु को एथेरियम-आधारित सम्पत्ति के रूप में प्रस्तुत करने का एक तरीका। -summaryPoint2: कंटेंट निर्माताओं को NFT पहले से कहीं ज़्यादा मज़बूत कर रहे हैं। -summaryPoint3: एथेरियम ब्लॉकचेन पर स्मार्ट अनुबंध द्वारा संचालित। ---- - -## NFTs क्या हैं? {#what-are-nfts} - -NFT वे टोकन हैं जो सब खास रूप से अलग हैं। प्रत्येक NFT में अलग-अलग गुण होते हैं (अविनिमेय) और यह साबित किया जा सकता है कि वे दुर्लभ हैं। यह ERC-20 जैसे टोकन से अलग है जहां सेट में प्रत्येक टोकन समान होता है और उसमें समान गुण होते हैं ('विनिमेय')। आपको इस बारे में फ़र्क नहीं पड़ता कि आपके बटुए में डॉलर का कौनसा नोट है, क्योंकि वे सभी एक जैसे होते हैं और उनका मूल्य समान होता है। हालांकि, आपको _यह_ फ़र्क पड़ेगा कि आपके पास कौनसा विशेष NFT है, क्योंकि उन सभी में व्यक्तिगत गुण होते हैं जो उन्हें दूसरों से अलग करते हैं ('अविनिमेय')। - -प्रत्येक NFT की खासियतों जैसे कि कला, संग्रहणीय वस्त्र या यहां तक कि संपत्ति के टोकनीकरण को सक्षम बनाती है, जहां एक विशेष अद्वितीय NFT कुछ विशेष असली दुनिया की या फिर डिजिटल वस्तु दिखाता है। किसी संपत्ति का मालिकाना हक इथेरियम ब्लॉकचेन द्वारा सुरक्षित किया जाता है - कोई भी स्वामित्व के रिकॉर्ड को संशोधित नहीं कर सकता है और ना ही एक नई NFT को कॉपी/पेस्ट कर अस्तित्व में ला सकता है। - - - -## संपत्तियों का इंटरनेट {#internet-of-assets} - -NFT और इथेरियम आज के समय में इंटरनेट पर मौजूद समस्याओं का समाधान करते हैं। जैसे-जैसे सब डिजिटल होता जा रहा है, हमें ज़रूरत है कि हम भौतिक वस्तुओं के गुणों जैसे कि कमी, विशिष्टता और स्वामित्व के प्रमाण को डिजिटल वस्तुओं के लिए हुबहू दोहरायें। एक ऐसे तरीके में जिसमें केंद्रीय संगठन द्वारा नियंत्रण नहीं होता। उदाहरण के लिए, NFT के साथ आप एक संगीत mp3 के मालिक बन सकते हैं जो किसी विशिष्ट कंपनी के स्पष्ट संगीत ऐप से संबंधित नहीं है या आप एक सोशल मीडिया हैंडल के मालिक बन सकते हैं जिसे आप बेच सकते हैं या बदल सकते हैं, लेकिन यह आपके पास से एक प्लेटफ़ॉर्म प्रदाता द्वारा अनियमित रूप से छीना नहीं जा सकता है। - -आज हम में से अधिकांश लोग जिस इंटरनेट का उपयोग करते हैं, उसकी तुलना में NFT का इंटरनेट इस प्रकार है... - -### एक तुलना {#nft-comparison} - -| एक NFT इंटरनेट | इंटरनेट आज | -| ----------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| आप अपनी संपत्ति के मालिक हैं! केवल आप ही उन्हें बेच सकते हैं या बदल सकते हैं। | आप किसी संगठन से किसी संपत्ति को किराए पर लेते हैं। | -| NFT डिजिटल रूप से अनूठे हैं, कोई भी दो NFT एक जैसे नहीं हैं। | अक्सर किसी इकाई की प्रतिलिपि और उसके मूल मे भेद पहचान नहीं की जा सकती। | -| NFT का स्वामित्व ब्लॉकचेन पर संग्रहित होता है जिसे कोई भी सत्यापित कर सकता है। | डिजिटल वस्तुओं के स्वामित्व रिकॉर्ड संस्थानों द्वारा नियंत्रित सर्वर पर संग्रहित किए जाते हैं, इसलिए – आपको उनकी बात पर विश्वास करना पड़ता है। | -| NFT इथेरियम पर मौजूद स्मार्ट अनुबंध हैं। इसका मतलब वो इथेरियम पर आसानी से दूसरे स्मार्ट अनुबंध एवं ऐप्लिकेशन में इस्तेमाल किए जा सकते है! | डिजिटल आइटम वाली कंपनियों को आमतौर पर अपने स्वयं के "दीवार वाले बगीचे" बुनियादी ढांचे की आवश्यकता होती है। | -| कंटेंट निर्माता कहीं भी अपना काम बेच सकते हैं और वैश्विक बाजार तक पहुंच सकते हैं। | निर्माता उनके द्वारा उपयोग किए जाने वाले प्लेटफ़ॉर्म के बुनियादी ढांचे और वितरण पर निर्भर करते हैं। ये अक्सर उपयोग की शर्तों और भौगोलिक प्रतिबंधों के अधीन होते हैं। | -| NFT निर्माता अपने काम पर स्वामित्व अधिकार और कार्यक्रम रॉयल्टी सीधे NFT अनुबंध में रख सकते हैं। | कुछ प्लेटफ़ॉर्म बिक्री से होने वाले अधिकांश लाभ को अपने पास रखते हैं, जैसे संगीत स्ट्रीमिंग सेवाएं। | - -## NFT कैसे काम करते हैं? {#how-nfts-work} - -इथेरियम पर जारी किए गए किसी टोकन की तरह, NFT को एक स्मार्ट अनुबंध द्वारा जारी किया जाता है। स्मार्ट अनुबंध कई NFT मानकों में से किसी एक मानक (अधिकतर ERC-721 या ERC-1155) के अनुरूप होता है जो अनुबंध के फंक्शन को परिभाषित करता है। अनुबंध NFT को बनाकर ('मिंट करके') उसे उसके मालिक को सौंप सकता है। विशिष्ट NFT को विशिष्ट पते से जोड़ कर अनुबंध में स्वामित्व दर्शाया जाता है। NFT का एक ID एवं मेटाडेटा उससे संबंधित होता है जो उस विशिष्ट टोकन को सबसे अलग बनाता है। - -जब कोई NFT बनाता है या उसे मिंट करता है, तब वो असली में स्मार्ट अनुबंध में एक फंक्शन को निष्पादित कर रहा होता है जो एक विशिष्ट NFT को अपने पते से जोड़ता है। यह जानकारी अनुबंध के भंडार में इकठ्ठा होती है जो कि ब्लॉकचेन का हिस्सा है। अनुबंध बनाने वाला अनुबंध में अतिरिक्त तर्क लिख सकता है, जैसे कि पूर्ण आपूर्ति को सीमित करना या हर स्थानांतरण पर बनाने वाले को कुछ रायल्टी देना। - -## NFT का उपयोग किसके लिए किया जाता है? {#nft-use-cases} - -NFT का इस्तेमाल कई क्षेत्रों में किया जाता है, जैसे: - -- यह पक्का करने में कि आपने आयोजन में भाग लिया -- यह प्रमाणित करने में कि आपने कोर्स पूरा किया है -- खेल के लिए स्वामित्व योग्य वस्तु के रूप में -- डिजिटल चित्र के रूप में -- असल दुनिया की संपत्ति को टोकन में बदलने में -- अपनी ऑनलाइन पहचान प्रमाणित करने में -- सामग्री तक पहुंच को रोकने में -- टिकट लेने में -- विकेंद्रीकृत इंटरनेट डोमेन नाम -- DeFi में कोलेटरल - -हो सकता है कि आप एक कलाकार हों जो बिना अपना नियंत्रण खोए और बिना किसी को अपना मुनाफा दिए, अपना काम साझा करना चाहता है। आप एक नया अनुबंध बनाकर उसमें NFT की संख्या, उसके गुण और विशिष्ट कला के लिंक का उल्लेख कर सकते है। कलाकार की तरह, आप स्मार्ट अनुबंध में आपको मिलने वाली रॉयल्टी प्रोग्राम कर सकते हैं (जैसे हर स्थानांतरण पर बिक्री मूल्य का 5 प्रतिशत अनुबंध निर्माता को मिलना)। आप यह भी साबित कर सकते है कि NFT आपने बनाया है, क्योंकि अनुबंध तैनात करने वाला वॉलेट आपका है। आपके खरीददार यह आसानी से साबित कर सकते है कि उनके पास आपके संग्रह का एक प्रमाणित NFT है, क्योंकि उनके वॉलेट का पता आपके स्मार्ट अनुबंध के टोकन से जुड़ा हुआ है। वो इसके प्रामाणिकता पर विश्वास करते हुए, इसका इस्तेमाल इथेरियम इकोसिस्टम में कहीं भी कर सकते है। - -या एक खेल की घटना के लिए टिकट को विचार करें। जिस तरह किसी कार्यक्रम का आयोजक चुन सकता है कि कितने टिकट बेचे जाएं, उसी तरह NFT का निर्माता यह तय कर सकता है कि कितनी प्रतिकृतियां मौजूद हैं। कभी-कभी यह सटीक प्रतिकृतियां होती हैं, जैसे 5000 सामान्य प्रवेश टिकट। कभी-कभी कई ऐसे खनन किए जाते हैं जो बहुत समान होते हैं, लेकिन हर एक थोड़ा अलग होता है, जैसे कि एक नियत सीट वाला टिकट। ये पीयर-टू-पीयर खरीदे और बेचे जा सकते हैं बिना टिकट हैंडलर्स को भुगतान किए और खरीदार हमेशा टिकट की मान्यता को कॉन्ट्रैक्ट पते की जांच करके टिकट की विश्वसनीयता के लिए आश्वासन दे सकता है। - -ethereum.org पर NFT का उपयोग यह दिखाने के लिए किया गया है कि लोगों ने हमारे Github रिपॉजिटरी में योगदान दिया है या कॉल में भाग लिया है और हमारे पास अपने खुद का NFT डोमेन नाम भी है। अगर आप ethereum.org में योगदान करते हैं, तो आप POAP NFT का दावा कर सकते हैं। कुछ क्रिप्टो मीटिंगों में POAP का इस्तेमाल टिकट के रूप में किया है। [योगदान पर अधिक](/contributing/#poap)। - -![ethereum.org POAP](./poap.png) - -इस वेबसाइट का एक वैकल्पिक कार्यक्षेत्र नाम है जो NFT द्वारा संचालित है, **ethereum.eth**। हमारा `.org` पता एक डोमेन नाम प्रणाली (DNS) प्रदाता द्वारा केन्द्रीय रूप से प्रबंधित किया जाता है जबकि ethereum`.eth` एथेरियम नाम सेवा (ENS) के माध्यम से एथेरियम पर पंजीकृत है। और इसका स्वामित्व और प्रबंधन हमारे द्वारा किया जाता है। [हमारे ENS रिकॉर्ड की जाँच करें](https://app.ens.domains/name/ethereum.eth) - -[ENS पर अधिक जानकारी](https://app.ens.domains) - - - -### NFT सुरक्षा {#nft-security} - -इथेरियम की सुरक्षा हिस्सेदारी के सबूत से आती है। इस प्रणाली को आर्थिक रूप से दुर्भावनापूर्ण कार्यों को प्रोत्साहित करने के लिए डिज़ाइन किया गया है, जिससे इथेरियम छेड़छाड़-सबूत बन जाता है। यही NFT को संभव बनाता है। एक बार जब आपके NFT लेनदेन वाले ब्लॉक को अंतिम रूप दिया जाता है, तो इसे बदलने के लिए एक हमलावर के लाखों ETH खर्च होंगे। इथेरियम सॉफ्टवेयर चलाने वाला कोई भी व्यक्ति तुरंत एक NFT के साथ बेईमान छेड़छाड़ का पता लगाने में सक्षम होगा और खराब अभिनेता को आर्थिक रूप से दंडित और बाहर निकाला जाएगा। - -NFT से संबंधित सुरक्षा मुद्दे अक्सर फ़िशिंग घोटालों, स्मार्ट अनुबंध कमजोरियों या उपयोगकर्ता त्रुटियों (जैसे अनजाने में निजी कुंजी को उजागर करना) से संबंधित होते हैं, जिससे NFT मालिकों के लिए अच्छी वॉलेट सुरक्षा महत्वपूर्ण हो जाती है। - - - सुरक्षा को और जानें - - -## अग्रिम पठन {#further-reading} - -- [NFT के लिए शुरुआती गाइड](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _लिंडा झी, जनवरी 2020_ -- [EtherscanNFT ट्रैकर](https://etherscan.io/nft-top-contracts) -- [ERC-721 टोकन मानक](/developers/docs/standards/tokens/erc-721/) -- [ERC-1155 टोकन मानक](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/hi/refi/index.md b/src/content/translations/hi/refi/index.md deleted file mode 100644 index 19953981ba6..00000000000 --- a/src/content/translations/hi/refi/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: पुनर्योजी वित्त (ReFi) -description: ReFi और इसके वर्तमान उपयोग मामलों का अवलोकन। -lang: hi -template: use-cases -emoji: ":recycle:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: पुनर्योजी सिद्धांतों पर निर्मित एक वैकल्पिक आर्थिक प्रणाली -summaryPoint2: इथेरियम का उपयोग करके जलवायु परिवर्तन जैसे वैश्विक स्तर के समन्वय संकटों को हल करने का प्रयास -summaryPoint3: सत्यापित कार्बन क्रेडिट जैसी पारिस्थितिक लाभ संपत्तियों को बड़े पैमाने पर बढ़ाने का एक उपकरण ---- - -## ReFi क्या है? {#what-is-refi} - -**पुनर्योजी वित्त (ReFi)** ब्लॉकचेन के शीर्ष पर निर्मित उपकरणों और विचारों का एक समूह है, जिसका उद्देश्य उन अर्थव्यवस्थाओं को बनाना है जो निष्कर्षण या शोषणकारी के बजाय पुनर्योजी हों। अंततः, निष्कर्षण प्रणालियाँ उपलब्ध संसाधनों को समाप्त कर देती हैं और ढह जाती हैं; पुनर्योजी तंत्र के बिना, उनमें लचीलेपन की कमी होती है। ReFi मानता है कि हमारे ग्रह और समुदायों से संसाधनों के अस्थायी निष्कासन से मौद्रिक मूल्य के निर्माण को अलग किया जाना चाहिए। - -इसके बजाय, ReFi पुनर्योजी चक्र बनाकर पर्यावरणीय, सांप्रदायिक या सामाजिक समस्याओं को हल करने का प्रयास करता है। ये प्रणालियां प्रतिभागियों के लिए मूल्य बनाती हैं और साथ ही समुदायों और पारिस्थितिकी तंत्र को लाभ पहुंचाती हैं। - -ReFi की नींव में से एक [कैपिटल इंस्टीट्यूट](https://capitalinstitute.org) के जॉन फुलर्टन द्वारा प्रवर्तित पुनर्योजी अर्थशास्त्र की अवधारणा है। उन्होंने आठ परस्पर जुड़े सिद्धांतों का प्रस्ताव रखा जो प्रणालीगत स्वास्थ्य का आधार हैं: - -![आठ परस्पर जुड़े सिद्धांत](../../assets/use-cases/refi-regenerative-economy-diagram.png) - -ReFi परियोजनाएं पुनर्योजी व्यवहारों को प्रोत्साहित करने के लिए [स्मार्ट अनुबंधों](/developers/docs/smart-contracts/) और [विकेन्द्रीकृत वित्त (DeFi)](/defi/)अनुप्रयोगों का उपयोग करके इन सिद्धांतों को साकार करती हैं, जैसे ख़राब पारिस्थितिकी तंत्र को बहाल करना, और जलवायु परिवर्तन और जैव विविधता हानि जैसे वैश्विक मुद्दों पर बड़े पैमाने पर सहयोग की सुविधा प्रदान करना। - -ReFi [केन्द्रीकृत विज्ञान (DeSci)](/desci/) आंदोलन के साथ भी मेल खाता है, जो इथेरियम को वैज्ञानिक ज्ञान को वित्त पोषित करने, निर्माण करने, समीक्षा करने, क्रेडिट देने, स्टोर करने और प्रसार करने के लिए एक मंच के रूप में उपयोग करता है। DeSci उपकरण पेड़ लगाने, समुद्र से प्लास्टिक हटाने या एक ख़राब पारिस्थितिकी तंत्र को बहाल करने जैसी पुनर्योजी गतिविधियों के लिए सत्यापन योग्य मानकों और प्रथाओं को विकसित करने, लागू करने और निगरानी करने के लिए उपयोगी हो सकते हैं। - -## कार्बन क्रेडिट का टोकनीकरण {#tokenization-of-carbon-credits} - -**[स्वैच्छिक कार्बन बाज़ार (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** उन परियोजनाओं के वित्तपोषण के लिए एक तंत्र है जो कार्बन उत्सर्जन पर सत्यापित सकारात्मक प्रभाव डालते हैं, या तो जारी उत्सर्जन को कम करते हैं, या पहले से ही वायुमंडल से उत्सर्जित ग्रीनहाउस गैसों को हटाते हैं। इन परियोजनाओं को सत्यापित होने के बाद "कार्बन क्रेडिट" नामक संपत्ति मिलती है, जिसे वे उन व्यक्तियों और संगठनों को बेच सकते हैं जो जलवायु क्रियावली का समर्थन करना चाहते हैं। - -VCM के अलावा, कई सरकार-निर्धारित कार्बन बाजार भी हैं (‘अनुपालन बाजार’) जो एक विशेष अधिकार क्षेत्र (जैसे देश या क्षेत्र) में कानूनों या विनियमन के माध्यम से कार्बन मूल्य की स्थापना का उद्देश्य रखते हैं, जिसमें वितरित होने वाले परमिट की आपूर्ति को नियंत्रित किया जाता है। अनुपालन बाजार अपने अधिकार क्षेत्र में प्रदूषकों को उत्सर्जन कम करने के लिए प्रेरित करते हैं, लेकिन वे पहले से ही उत्सर्जित ग्रीनहाउस गैसों को हटाने में सक्षम नहीं हैं। - -अधिक दशकों के विकास के बावजूद, VCM विभिन्न समस्याओं से जूझ रहा है: - -1. अत्यधिक टुकड़ा-टुकड़ा तरलता -2. अपारदर्शी लेन-देन तंत्र -3. उच्च शुल्क -4. बहुत धीमी व्यापार गति -5. स्केलेबिलिटी का अभाव - -VCM को नए ब्लॉकचेन आधारित **डिजिटल कार्बन बाजार (DCM)** में परिवर्तित करना कार्बन क्रेडिट को मान्यता प्राप्त करने, लेन-देन करने और उपयोग करने के लिए मौजूदा प्रौद्योगिकी को अपग्रेड करने का एक अवसर हो सकता है। ब्लॉकचेन्स सार्वजनिक रूप से सत्यापन योग्य डेटा, एक विस्तृत उपयोगकर्ता श्रेणी के लिए पहुंच और अधिक तरलता की अनुमति देते हैं। - -ReFi परियोजनाएं पारंपरिक बाजार की कई समस्याओं को दूर करने के लिए ब्लॉकचेन प्रौद्योगिकी का उपयोग करती हैं: - -- **तरलता कम संख्या में तरलता पूलों में केंद्रित होती है** जिनका कोई भी व्यक्ति स्वतंत्र रूप से व्यापार कर सकता है। बड़े संगठन और व्यक्तिगत उपयोगकर्ता इन पूलों का उपयोग बिना विक्रेता/खरीददार की मैन्युअल खोज, प्रतिभाग शुल्क या पूर्व पंजीकरण के कर सकते हैं। -- **सभी लेन-देन सार्वजनिक ब्लॉकचेन्स पर दर्ज होते हैं**। हर कार्बन क्रेडिट का पथ व्यापार गतिविधि के कारण हमेशा के लिए पता चलता है जैसे ही यह DCM में उपलब्ध होता है। -- **लेन-देन की गति लगभग तात्कालिक है**। पुराने बाजारों के माध्यम से बड़ी मात्रा में कार्बन क्रेडिट्स को सुरक्षित करना दिनों या सप्ताहों ले सकता है, लेकिन यह DCM में कुछ सेकंड में प्राप्त किया जा सकता है। -- **व्यापार गतिविधि बिना मध्यस्थों के होती है**, जो उच्च शुल्क लगाते हैं। डिजिटल कार्बन क्रेडिट्स एक विश्लेषण संगठन के डेटा के अनुसार [पारंपरिक क्रेडिट्स की तुलना में 62% लागत में सुधार](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne) प्रतिनिधित्व करते हैं। -- **DCM स्केलेबल है** और व्यक्तियों और बहुराष्ट्रीय कॉर्पोरेशनों की मांगों को समान रूप से पूरा कर सकता है। - -### DCM के मुख्य घटक {#key-components-dcm} - -DCM का वर्तमान परिदृश्य चार प्रमुख घटकों से बना है: - -1. रजिस्ट्रियां जैसे कि [Verra](https://verra.org/project/vcs-program/registry-system/) और [गोल्ड स्टैंडर्ड](https://www.goldstandard.org/) सुनिश्चित करती हैं कि कार्बन क्रेडिट बनाने वाली परियोजनाएं विश्वसनीय हैं। वे उन डेटाबेस को भी संचालित करते हैं जिनमें डिजिटल कार्बन क्रेडिट उत्पन्न होते हैं और उन्हें स्थानांतरित या उपयोग (सेवानिवृत्त) किया जा सकता है। - -ब्लॉकचेन पर निर्मित हो रही अभिनव परियोजनाओं की एक नई लहर चल रही है जो इस क्षेत्र में मौजूदा प्रतिष्ठित संगठनों को विघ्नित करने का प्रयास कर रही हैं। - -2. कार्बन ब्रिजेज, उर्फ टोकनाइज़र्स, पारंपरिक रजिस्ट्रीज से DCM में कार्बन क्रेडिट्स को प्रतिनिधित्व या स्थानांतरित करने की प्रौद्योगिकी प्रदान करते हैं। प्रमुख उदाहरणों में [टूकेन प्रोटोकॉल](https://toucan.earth/), [C3](https://c3.app/) और [Moss.Earth](https://moss.earth/) शामिल हैं। -3. एकीकृत सेवाएं अंत उपयोगकर्ताओं को कार्बन टालने और/या हटाने के क्रेडिट प्रदान करती हैं ताकि वे क्रेडिट का पारिस्थितिकी लाभ दावा कर सकें और जलवायु क्रियावली का समर्थन करने के लिए दुनिया के साथ साझा कर सकें। - -[Klima Infinity](https://www.klimadao.finance/infinity) और [Senken](https://senken.io/) जैसे कुछ Verra जैसे स्थापित मानकों के तहत तीसरे पक्ष द्वारा विकसित विभिन्न परियोजनाओं की एक चौड़ी श्रृंखला प्रदान करते हैं; जबकि [Nori](https://nori.com/) जैसे अन्य केवल उनके खुद के कार्बन क्रेडिट मानक के तहत विकसित विशिष्ट परियोजनाओं की प्रस्तावना करते हैं, जिसे वे जारी करते हैं और जिसके लिए उनके पास उनका स्वयं का समर्पित बाजार है। - -4. अंतर्निहित रेल्स और बुनियादी ढांचा जो कार्बन बाजार की पूरी आपूर्ति श्रृंखला के प्रभाव और कुशलता को बढ़ावा देने की सुविधा प्रदान करता है। [KlimaDAO](http://klimadao.finance/) एक सार्वजनिक सम्पत्ति के रूप में तरलता प्रदान करता है (किसी को भी पारदर्शी मूल्य पर कार्बन क्रेडिट्स खरीदने या बेचने की अनुमति देता है), कार्बन बाजारों और सेवानिवृत्तियों के बढ़ते प्रवाह को पुरस्कृत करता है, और टोकनाइज़ड कार्बन क्रेडिट्स के बारे में डेटा तक पहुंचने, प्राप्त करने और सेवानिवृत्त करने के लिए उपयोगकर्ता-अनुकूल अंतर-संचालित उपकरण प्रदान करता है। - -## कार्बन बाज़ारों से परे ReFi {#refi-beyond} - -हालांकि इस समय आम तौर पर कार्बन बाजारों पर और विशेष रूप से अंतरिक्ष के भीतर VCM को DCM में परिवर्तित करने पर मजबूत जोर है, "ReFi" शब्द पूरी तरह से कार्बन तक ही सीमित नहीं है। कार्बन क्रेडिट के अलावा अन्य पारिस्थितिकी तंत्र संपत्तियाँ भी विकसित और टोकनीकृत की जा सकती हैं, जिसका मतलब होगा कि अन्य नकारात्मक बाह्यताओं की कीमत भी भविष्य की आर्थिक प्रणालियों की आधार परतों के भीतर रखी जा सकती है। इसके अलावा, इस आर्थिक मॉडल का पुनर्योजी पहलु को अन्य क्षेत्रों में भी लागू किया जा सकता है, जैसे कि [Gitcoin](https://gitcoin.co/) जैसे वर्गीय वित्तपोषण प्लेटफार्मों के माध्यम से सार्वजनिक वस्तुओं का वित्तपोषण। खुली भागीदारी और संसाधनों के समान वितरण के विचार पर बने संगठन सभी को ओपन-सोर्स सॉफ्टवेयर परियोजनाओं के साथ-साथ शैक्षिक, पर्यावरण और समुदाय-संचालित परियोजनाओं के लिए धन जुटाने के लिए सशक्त बनाते हैं। - -पूंजी की दिशा को निष्कर्षण प्रथाओं से दूर पुनर्योजी प्रवाह की दिशा में बदलकर, वे परियोजनाएँ और कंपनियाँ जो सामाजिक, पर्यावरणीय, या सामुदायिक लाभ प्रदान करती हैं — और जो पारंपरिक वित्त में वित्त पोषण प्राप्त करने में असफल हो सकती हैं — जमीन पर उतर सकती हैं और वे अधिक तेज़ और आसानी से समाज के लिए सकारात्मक बाह्यताएं उत्पन्न कर सकते हैं। फंडिंग के इस मॉडल में परिवर्तन से अधिक समावेशी आर्थिक प्रणालियों का द्वार भी खुलता है, जहां सभी जनसांख्यिकी के लोग सक्रिय भागीदार बन सकते हैं बजाय केवल साक्षी बने रहने के। ReFi हमारी प्रजातियों और हमारे ग्रह पर सभी जीवन के सामने आने वाली अस्तित्वगत चुनौतियों पर कार्रवाई के समन्वय के लिए एक तंत्र के रूप में इथेरियम की एक दृष्टि प्रदान करता है — एक नए आर्थिक प्रतिमान की आधार परत के रूप में, जो आने वाली शताब्दियों के लिए अधिक समावेशी और टिकाऊ भविष्य को सक्षम बनाता है। - -## ReFi पर अतिरिक्त पाठन - -- [कार्बन मुद्राओं और अर्थव्यवस्था में उनके स्थान का एक उच्च-स्तरीय अवलोकन](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) -- [भविष्य के लिए मंत्रालय, जलवायु परिवर्तन से लड़ने में कार्बन-समर्थित मुद्रा की भूमिका को दर्शाने वाला एक उपन्यास है](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) -- [स्वैच्छिक कार्बन मार्केट की स्केलिंग के लिए टास्कफोर्स की एक विस्तृत रिपोर्ट](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) -- [ReFi पर केविन ओवॉकी और इवान मियाज़ोनो की CoinMarketCap शब्दावली प्रविष्टि](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/hi/roadmap/beacon-chain/index.md b/src/content/translations/hi/roadmap/beacon-chain/index.md deleted file mode 100644 index 6b0b33e2f44..00000000000 --- a/src/content/translations/hi/roadmap/beacon-chain/index.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: बीकन चेन -description: बीकन चेन के बारे में जानें - अपग्रेड जिसने हिस्सेदारी का सबूत एथेरियम पेश किया। -lang: hi -template: upgrade -image: ../../../../../assets/upgrades/core.png -summaryPoint1: बीकन चेन ने एथेरियम इकोसिस्टम के लिए हिस्सेदारी का सबूत पेश किया। -summaryPoint2: इसे सितंबर 2022 में ओरिजिनल एथेरियम काम का सबूत चेन के साथ मर्ज कर दिया गया था। -summaryPoint3: बीकन चेन ने सहमति तर्क और गॉसिप प्रोटोकॉल को पेश किया जो अब एथेरियम को सुरक्षित करता है। ---- - - - बीकन चेन 1 दिसंबर, 2020 को शिप कर दिया गया, और 15 सितंबर, 2022 को मर्ज अपग्रेड के साथ एथेरियम की सहमति तंत्र के रूप में औपचारिक रूप से हिस्सेदारी का सबूत दिया गया। - - -## बीकन चेन क्या था? {#what-is-the-beacon-chain} - -बीकन चेन ओरिजिनल हिस्सेदारी के सबूत ब्लॉकचेन का नाम था जिसे 2020 में लॉन्च किया गया था। एथेरियम मेननेट पर इसे सक्षम करने से पहले हिस्सेदारी के सबूत सहमति तर्क को सुनिश्चित करने के लिए बनाया गया था। इसलिए, इसे ओरिजिनल काम का सबूत एथेरियम के साथ चलाया गया। काम के सबूत को बंद करना और एथेरियम पर हिस्सेदारी के सबूत पर स्विच करने के लिए बीकन चेन को निर्देश देना आवश्यक है कि वे मूल एथेरियम चेन से लेनदेन स्वीकार करें, उन्हें ब्लॉक में बंडल करें और फिर उन्हें एक हिस्सेदारी के सबूत आधारित सहमति तंत्र का उपयोग करके एक ब्लॉकचेन में व्यवस्थित करें। उसी समय, ओरिजिनल एथेरियम क्लाइंट ने अपने माईनिंग, ब्लॉक प्रसार और सहमति तर्क को बंद कर दिया, और वह सब बीकन चेन को सौंप दिया। इस इवेंट को [मर्ज](/roadmap/merge/) के नाम से जाना जाता है। एक बार मर्ज हो जाने के बाद, अब दो ब्लॉकचेन काम नहीं कर रहे थे; केवल एक हिस्सेदारी का सबूत एथेरियम चेन थी। - -## बीकन चेन ने क्या किया? {#what-does-the-beacon-chain-do} - -इससे पहले कि उन स्टेकर्स ने वास्तविक एथेरियम लेनदेन को वैध मानना शुरू किया, बीकन चेन उन खातों के लेजर को दिया गया नाम था जो एथेरियम [स्टेकर्स](/staking/) के नेटवर्क का संचालन और समन्वय करते थे। यह लेनदेन को प्रोसेस नहीं करता था या स्मार्ट कॉन्ट्रैक्ट इंटरैक्शन को हैंडल नहीं करता था। - -इसने आम सहमति इंजन (या "सहमति परत") की शुरुआत की जिसने एथेरियम पर काम के सबूत माईनिंग का स्थान ले लिया और इसके साथ कई महत्वपूर्ण सुधार हुए। - -बीकन चेन [सुरक्षित, पर्यावरण के अनुकूल और स्केलेबल एथेरियम का एक मूलभूत घटक था जो अब हमारे पास है](/roadmap/vision/)। - -## बीकन चेन का प्रभाव {#beacon-chain-features} - -### प्रस्तुत है स्टेकिंग {#introducing-staking} - -बीकन चेन ने एथेरियम के लिए [हिस्सेदारी का सबूत](/developers/docs/consensus-mechanisms/pos/) की शुरुआत की। यह एथेरियम को सुरक्षित रखता है और इस प्रोसेस में सत्यापनकर्ता ज़्यादा ETH अर्जित करते हैं। व्यवहार में, स्टेकिंग, सत्यापनकर्ता सॉफ़्टवेयर को सक्रिय करने के लिए स्टेकिंग ETH शामिल करता है। एक स्टेकर के तौर पर, आप उस सॉफ़्टवेयर को चलाते हैं जो चेन में नए ब्लॉक बनाता और मान्य करता है। - -स्टेकिंग उसी तरह के उद्देश्य को पूरा करता है जिसका इस्तेमाल [माईनिंग](/Developers/docs/mining/) में किया जाता है, लेकिन यह कई मायनों में अलग है। माईनिंग के लिए शक्तिशाली हार्डवेयर और ऊर्जा खपत के रूप में बड़े अग्रिम व्यय की आवश्यकता होती है, जिसके परिणामस्वरूप बड़े व्यय (बड़ी आर्थिक इकाई) और केंद्रीकरण को बढ़ावा मिलता है। माईनिंग भी एसेट को आनुषंगिक के रूप में बंद करने की आवश्यकता के साथ नहीं आया, बल्कि इसका उद्देश्य हमले के बाद बुरे लोगों को दंडित करने की प्रोटोकॉल की क्षमता को सीमित करना है। - -हिस्सेदारी के सबूत में बदलाव ने एथेरियम को काम के सबूत की तुलना में बहुत ज़्यादा सुरक्षित और विकेंद्रीकृत बना दिया। जितने अधिक लोग नेटवर्क में भाग लेंगे, हमले से यह उतना ही अधिक विकेंद्रीकृत और सुरक्षित होगा। - - - यदि आप एक सत्यापनकर्ता बनने में रुचि रखते हैं और एथेरियम को सुरक्षित करने में मदद करते हैं, तो स्टेकिंग के बारे में और जानें। - - -### शार्डिंग सेट करना {#setting-up-for-sharding} - -चूँकि बीकन चेन का ओरिजिनल एथेरियम मेननेट के साथ मर्ज हो गया, इसलिए एथेरियम समुदाय ने नेटवर्क को स्केल करना शुरू कर दिया। - -हिस्सेदारी का सबूत किसी भी समय सभी स्वीकृत ब्लॉक उत्पादकों की रजिस्ट्री करने की सुविधा है, जिनमें से प्रत्येक ETH स्टेक पर है। यह रजिस्ट्री विभाजित करने और जीतने की क्षमता के लिए चरण निर्धारित करती है लेकिन विशिष्ट नेटवर्क ज़िम्मेदारियों को विश्वसनीय ढंग से बाँटती है। - -यह ज़िम्मेदारी काम का सबूत के विपरीत है, जहाँ माइनर्स का नेटवर्क के प्रति कोई दायित्व नहीं होता है और वे माईनिंग को रोक सकते हैं और अपने नोड सॉफ़्‍टवेयर को हमेशा के लिए बिना किसी प्रतिक्रिया के तुरंत बंद कर सकते हैं। ज्ञात ब्लॉक प्रस्तावकों की कोई रजिस्ट्री भी नहीं है और नेटवर्क ज़िम्मेदारियों को सुरक्षित रूप से विभाजित करने का कोई विश्वसनीय तरीका नहीं है। - -[शार्डिंग के बारे में अधिक जानकारी](/roadmap/danksharding/) - -## अपग्रेड के बीच संबंध {#relationship-between-upgrades} - -एथेरियम अपग्रेड कुछ हद तक परस्पर जुड़े हुए हैं। तो बीकन चेन दूसरे अपग्रेड को कैसे प्रभावित करता है, इसे दोबारा से बताएं। - -### बीकन चेन और मर्ज {#merge-and-beacon-chain} - -पहले, बीकन चेन एथेरियम मेननेट से अलग से उपलब्ध थी, लेकिन 2022 में उनका मर्ज कर दिया गया। - - - मर्ज - - -### शार्ड और बीकन चेन {#shards-and-beacon-chain} - -शार्डिंग केवल एथेरियम इकोसिस्टम में सुरक्षित रूप से हिस्सेदारी का सबूत आम सहमति तंत्र के साथ हिस्सेदारी कर सकती है। बीकन चेन ने स्टेकिंग की शुरुआत की, जिसे मेननेट के साथ 'मर्ज' कर दिया गया, जिससे एथेरियम को आगे बढ़ाने में मदद करने के लिए शार्डिंग का मार्ग प्रशस्त हुआ। - - - शार्ड चेन - - -## अतिरिक्त पाठ्यसामग्री - -- [एथेरियम के आगामी अपग्रेड संबंधी और जानकारी](/roadmap/vision) -- [हिस्सेदारी का सबूत के बारे में और जानकारी](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/hi/roadmap/merge/index.md b/src/content/translations/hi/roadmap/merge/index.md deleted file mode 100644 index f6b12606452..00000000000 --- a/src/content/translations/hi/roadmap/merge/index.md +++ /dev/null @@ -1,224 +0,0 @@ ---- -title: मर्ज -description: मर्ज के बारे में जानें - कब मेननेट एथेरियम ने हिस्सेदारी का सबूत अपनाया। -lang: hi -template: upgrade -image: ../../../../../assets/upgrades/merge.png -summaryPoint1: एथेरियम मेननेट हिस्सेदारी के सबूत का उपयोग करता है, लेकिन ऐसा हमेशा नहीं था। -summaryPoint2: ओरिजिनल काम के सबूत मैकेनिज़्म से हिस्सेदारी के सबूत में अपग्रेड को मर्ज कहा जाता था। -summaryPoint3: मर्ज का आशय है ओरिजिनल एथेरियम मेननेट को एक अलग हिस्सेदारी के सबूत ब्लॉकचेन के साथ मर्ज करना, जिसे बीकन चेन कहा जाता है, जो अब एक चेन के रूप में मौजूद है। -summaryPoint4: मर्ज ने एथेरियम की ऊर्जा खपत को ~99.95% तक कम कर दिया। ---- - - - मर्ज को 15 सितंबर, 2022 को निष्पादित किया गया था। इसने एथेरियम के हिस्सेदारी के सबूत सहमति के ट्रांजिशन को पूरा किया, आधिकारिक तौर पर काम के सबूत को हटा दिया और ऊर्जा की खपत को ~99.95% तक कम कर दिया। - - -## मर्ज क्या था? {#what-is-the-merge} - -मर्ज, एथेरियम की ओरिजिनल निष्पादन परत (मेननेट जो कि [उत्पत्ति](/history/#frontier) के बाद से मौजूद है) के साथ अपनी नई हिस्सेदारी के सबूत सहमति परत, बीकन चेन से जुड़ने की प्रक्रिया थी। इसने ऊर्जा-गहन माईनिंग की ज़रूरत को ख़त्म कर दिया और इसके बजाय नेटवर्क को स्टेक्ड ETH का उपयोग करके सुरक्षित करने में सक्षम बनाया। एथेरियम विज़न—अधिक स्केलेबिलिटी, सुरक्षा और स्थिरता को साकार करने में यह वास्तव में एक रोमांचक कदम था। - - - -प्रारंभ में, [बीकन चेन](/roadmap/beacon-chain/) को [मेननेट](/glossary/#mainnet) से अलग से भेजा जाता था। एथेरियम मेननेट को - उसके सभी खातों, बैलेंस, स्मार्ट अनुबंधों और ब्लॉकचेन स्थिति के साथ - [काम के सबूत](/developers/docs/consensus-mechanisms/pow/) के द्वारा सुरक्षित किया जाता रहेगा, भले ही [हिस्सेदारी के सबूत](/developers/docs/consensus-mechanisms/pos/) का उपयोग करके बीकन चेन समानांतर में चलती रहे। मर्ज तब हुआ जब ये दोनों सिस्टम अंत में एक साथ आए, और काम के सबूत को स्थायी रूप से हिस्सेदारी के सबूत से बदल दिया गया। - -कल्पना कीजिए कि एथेरियम एक स्पेसशिप है, जिसे तारों के बीच यात्रा करने से पहले लॉन्च किया गया था। बीकन चेन के साथ, समुदाय ने एक नया इंजन और एक कठोर पतवार बनाया है। महत्वपूर्ण परीक्षण के बाद, पुराने इंजन को मिड-फ़्लाइट के लिए नए इंजन से स्वैप करने का समय आ गया। इसने नए, ज़्यादा कुशल इंजन को मौजूदा शिप में मर्ज कर दिया जिससे यह कुछ गंभीर प्रकाश वर्ष के लिए डाला जा सके और ब्रह्मांड पर ले जाने के लिए तैयार हो सके। - -## मेननेट के साथ मर्ज करना {#merging-with-mainnet} - -काम के सबूत ने एथेरियम मेननेट को उत्पत्ति से मर्ज तक सुरक्षित रखा। इसने एथेरियम ब्लॉकचेन को अनुमति दी कि हम सभी जुलाई 2015 में इसकी सभी परिचित सुविधाओं—लेनदेन, स्मार्ट अनुबंध, खातों आदि के साथ अस्तित्व में आने के आदी हैं। - -एथेरियम के पूरे इतिहास में, डेवलपर काम के सबूत से हिस्सेदारी के सबूत तक एक अंतिम ट्रांज़िशन के लिए तैयार हैं। 1 दिसंबर, 2020 को बीकन चेन को समानांतर में चलने वाले मेननेट के लिए एक अलग ब्लॉकचेन के रूप में बनाया गया था। - -बीकन चेन मूल रूप से मेननेट लेनदेन को संसाधित नहीं कर रही थी। इसके बजाय, यह सक्रिय सत्यापनकर्ताओं और उनके खाते के बैलेंस पर सहमत होकर अपनी स्वयं की स्थिति पर आम सहमति बना रहा था। व्यापक परीक्षण के बाद, बीकन चेन के लिए वास्तविक दुनिया के डेटा पर आम सहमति तक पहुँचने का समय आ गया। मर्ज के बाद, बीकन चेन सभी नेटवर्क डेटा के लिए सहमति इंजन बन गई, जिसमें निष्पादन परत लेनदेन और खाता बैलेंस शामिल हैं। - -मर्ज ने ब्लॉक प्रोडक्शन के इंजन के रूप में बीकन चेन का उपयोग करने के लिए आधिकारिक स्विच का प्रतिनिधित्व किया। माईनिंग अब वैध ब्लॉक के उत्पादन का साधन नहीं है। इसके बजाय, हिस्सेदारी का सबूत सत्यापनकर्ताओं ने इस भूमिका को अपनाया है और अब सभी लेनदेन की वैधता को प्रोसेस करने और ब्लॉक प्रस्तावित करने के लिए ज़िम्मेदार हैं। - -मर्ज में कोई इतिहास नहीं खोया था। मेननेट का बीकन चेन के साथ मर्ज होने के बाद, इसने एथेरियम के संपूर्ण लेनदेन के इतिहास को भी मर्ज कर दिया। - - -हिस्सेदारी का सबूत के इस ट्राज़िशन से ईथर जारी करने का तरीका बदल गया। मर्ज से पहले और बाद में ईथर जारी करने के बारे में और जानें। - - -### उपयोगकर्ताओं और धारकों {#users-holders} - -**मर्ज से धारकों/उपयोगकर्ताओं के लिए कुछ भी नहीं बदला।** - -_यह दोहराया जा सकता है_: एथेरियम पर ETH या किसी अन्य डिजिटल एसेट के उपयोगकर्ता या धारक के साथ-साथ गैर-नोड-ऑपरेटिंग स्टेकर्स के रूप में, **मर्ज के लिए आपको अपने फंड या वॉलेट से कुछ भी करने की आवश्यकता नहीं है।** ETH तो ETH ही है। "पुराना ETH"/"नया ETH" या "ETH1"/"ETH2" जैसी कोई चीज़ नहीं है और वॉलेट मर्ज के बाद ठीक उसी तरह काम करते हैं जैसा वे पहले करते थे—ऐसा बताने वाले लोग संभावित स्कैमर्स हो सकते हैं। - -काम के सबूत को स्वाइप करने के बावजूद, उत्पत्ति के बाद से एथेरियम का संपूर्ण इतिहास बरकरार रहा और हिस्सेदारी के सबूत के ट्राज़िशन में कोई बदलाव नहीं हुआ। मर्ज से पहले आपके वॉलेट के फंड को मर्ज के बाद भी उपयोग किया जा सकता है। **आपकी ओर से अपग्रेड करने के लिए किसी एक्शन की ज़रूरत नहीं है।** - -[एथेरियम सुरक्षा के बारे में और जानकारी](/security/#eth2-token-scam) - -### नोड ऑपरेटर्स और डिसेंट्रलाइज़ एप्लिकेशन (dapp) डेवलपर {#node-operators-dapp-developers} - - - -मुख्य एक्शन आइटम्स में ये शामिल हैं: - -1. सहमति ग्राहक और निष्पादन ग्राहक _दोनों_ को चलाएँ; मर्ज के बाद निष्पादन डेटा प्राप्त करने के लिए थर्ड पार्टी के एंडपॉइंट अब काम नहीं करते हैं। -2. एक साझा JWT रहस्य के साथ निष्पादन और सहमति ग्राहक दोनों को प्रमाणित करें ताकि वे सुरक्षित रूप से संवाद कर सकें। -3. अपने अर्जित लेनदेन शुल्क सुझाव/MEV प्राप्त करने के लिए `शुल्क प्राप्तकर्ता` पता सेट करें। - -ऊपर दिए गए पहले दो आइटम्स पूरा न करने पर आपके नोड को "ऑफ़लाइन" के रूप में तब तक देखा जाएगा जब तक कि दोनों परतें सिंक और प्रमाणित नहीं हो जाती हैं। - -`शुल्क प्राप्तकर्ता` सेट नहीं करने पर भी आपके सत्यापनकर्ता को हमेशा की तरह व्यवहार करने की अनुमति मिलेगी, लेकिन आप असंतुलित शुल्क सुझाव और सभी MEV का लाभ नहीं ले पाएँगे जो आपने अन्यथा अपने सत्यापनकर्ता के प्रस्तावों में अर्जित किया होगा। - - - - -मर्ज होने तक, निष्पादन क्लाइंट (जैसे गेथ, एरिगॉन, बेसु या नेदरमाइंड) नेटवर्क द्वारा चर्चा किए जा रहे ब्लॉक को प्राप्त करने, ठीक से पुष्‍टि करने और प्रसारित करने के लिए पर्याप्त था। _मर्ज के बाद_, निष्पादन पेलोड के भीतर निहित लेनदेन की वैधता अब "सहमति ब्लॉक" की वैधता पर भी निर्भर करती है, जो इसमें शामिल है। - -परिणामस्वरूप, किसी पूर्ण एथेरियम नोड को अब निष्पादन क्लाइंट और सहमति ग्राहक दोनों की ज़रूरत होती है। ये दो क्लाइंट एक नए इंजन API का उपयोग करके एक साथ काम करते हैं। इंजन API को JWT रहस्य का उपयोग करके प्रमाणीकरण की आवश्यकता होती है, जो सुरक्षित संचार की अनुमति देने वाले दोनों क्लाइंट को प्रदान किया जाता है। - -मुख्य एक्शन आइटम्स में ये शामिल हैं: - -- निष्पादन क्लाइंट के अलावा एक सहमति ग्राहक इंस्टॉल करें -- एक साझा JWT रहस्य के साथ निष्पादन और सहमति ग्राहकों को प्रमाणित करें ताकि वे एक-दूसरे के साथ सुरक्षित रूप से संवाद कर सकें। - -ऊपर दिए गए आइटम्स पूरा न करने पर आपका नोड तब तक "ऑफ़लाइन" दिखाई देगा जब तक कि दोनों परतें सिंक और प्रमाणित नहीं हो जाती हैं। - - - - - -मर्ज सहमति में बदलाव के साथ आया, जिसमें निम्न से संबंधित बदलाव भी शामिल हैं: - -- ब्लॉक संरचना -- स्लॉट/ब्लॉक टाइमिंग -- ओपकोड बदलाव -- ऑन-चेन रैंडमनेस के स्रोत -- _सुरक्षित शीर्ष_ और _अंतिम रूप दिए गए ब्लॉक_ की अवधारणा - -अधिक जानकारी के लिए, टिम बीको के इस ब्लॉग पोस्ट को देखें [एथेरियम के एप्लिकेशन को मर्ज कैसे प्रभावित करता है] (https://blog.ethereum.org/2021/11/29/how-the-merge-impacts-app-layer/)। - - -## मर्ज और ऊर्जा की खपत {#merge-and-energy} - -मर्ज ने एथेरियम के लिए काम के सबूत की समाप्ति को चिह्नित किया और एक अधिक टिकाऊ, पर्यावरण के अनुकूल एथेरियम के युग की शुरुआत की। एथेरियम की ऊर्जा खपत में अनुमानित 99.95% की कमी आई है, जिससे एथेरियम एक ग्रीन ब्लॉकचेन बन गया है। [एथेरियम ऊर्जा खपत](/energy-consumption/) के बारे में और जानें। - -## मर्ज और स्केलिंग {#merge-and-scaling} - -मर्ज ने काम के सबूत के अंतर्गत संभव नहीं होने वाले अन्य स्केलेबिलिटी अपग्रेड के लिए स्टेज भी सेट किया है, जिससे एथेरियम अपने [एथेरियम विज़न](/roadmap/vision/) में बताए गए पूर्ण स्केल, सुरक्षा और स्थिरता पाने के लिए एक कदम और करीब आ गया है। - -## मर्ज के बारे में ग़लत धारणाएँ {#misconceptions} - - -एथेरियम नोड्स दो प्रकार के होते हैं: नोड्स जो ब्लॉक को प्रस्ताव दे सकते हैं और ऐसे नोड्स जो नहीं देते हैं। - -नोड्स जो ब्लॉक को प्रस्ताव देते हैं, एथेरियम पर कुल नोड्स की एक छोटी संख्या होती है। इस श्रेणी में काम का सबूत (PoW) के तहत माईनिंग नोड्स और हिस्सेदारी का सबूत (PoW) के तहत सत्यापनकर्ता नोड्स शामिल हैं। इस श्रेणी को कभी-कभी अगले ब्लॉक का प्रस्ताव देने और प्रोटोकॉल पुरस्कार अर्जित करने की क्षमता के बदले आर्थिक संसाधनों (जैसे हिस्सेदारी का सबूत में GPU हैश पावर या काम का सबूत में स्टेक्ड ETH) की आवश्यकता होती है। - -नेटवर्क पर अन्य नोड्स (अर्थात अधिकांश) को 1-2 TB के उपलब्ध स्टोरेज और इंटरनेट कनेक्शन वाले उपभोक्ता-श्रेणी के कंप्यूटर से परे किसी भी अन्य आर्थिक संसाधन को प्रतिबद्ध करने की आवश्यकता नहीं है। ये नोड्स ब्लॉक का प्रस्ताव नहीं देते हैं, लेकिन वे अभी भी सभी ब्लॉक प्रस्तावकों को नए ब्लॉक पर ध्‍यान देकर और नेटवर्क सहमति नियमों के अनुसार आगमन पर उनकी वैधता की पुष्टि करके जवाबदेह बनाकर नेटवर्क को सुरक्षित करने में महत्वपूर्ण भूमिका निभाते हैं। अगर ब्लॉक वैध है, तो नोड नेटवर्क के ज़रिए इसका प्रसार करना जारी रखता है। अगर ब्लॉक किसी भी कारण से अमान्य है, तो नोड सॉफ़्टवेयर इसे अमान्य मानकर इस पर ध्यान नहीं देगा और इसके प्रसार को रोक देगा। - -एक गैर-ब्लॉक-उत्पादक नोड चलाना किसी के लिए भी आम सहमति तंत्र (काम का सबूत या हिस्सेदारी का सबूत) के तहत संभव है; सभी उपयोगकर्ताओं के पास साधन होने पर इसे _पूरी तरह से प्रोत्साहित_ किया जाता है। कोई नोड चलाना एथेरियम के लिए बेहद महत्वपूर्ण है और इसे चलाने वाले किसी भी व्यक्ति को बेहतर सुरक्षा, गोपनीयता और सेंसरशिप प्रतिरोध जैसे अतिरिक्त लाभ मिलते हैं। - -एथेरियम नेटवर्क के विकेंद्रीकरण को बनाए रखने के लिए किसी भी व्यक्ति के लिए अपना स्वयं का नोड चलाने की क्षमता _होना आवश्यक_ है। - -[अपना खुद का नोड चलाने के बारे में और जानें](/run-a-node/) - - - - -गैस शुल्क नेटवर्क की क्षमता के सापेक्ष नेटवर्क की माँग का एक उत्पाद है। मर्ज ने काम का सबूत के उपयोग को हटा दिया, सहमति के लिए हिस्सेदारी का सबूत में बदल गया, लेकिन नेटवर्क क्षमता या थ्रूपुट को सीधे प्रभावित करने वाले किसी भी पैरामीटर को महत्वपूर्ण रूप से नहीं बदला। - -[रोलअप-केंद्रित रोडमैप](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698) के साथ, [परत 2](/परत-2/) पर उपयोगकर्ता गतिविधि को बढ़ाने पर ध्यान केंद्रित किया जा रहा है, परत 1 मेननेट को एक सुरक्षित विकेंद्रीत सेटमलमेंट परत के रूप में सक्षम करते हुए रोलअप डेटा स्टोरेज के लिए अनुकूलित किया गया है, ताकि रोलअप लेनदेन को तेज़ी से किफ़ायती बनाया जा सके। इसे समझने के लिए हिस्सेदारी के सबूत में ट्रांज़िशन की महत्वपूर्ण भूमिका होती है। [गैस और फीस के बारे में और जानकारी।](/डेवलपर/दस्तावेज़/गैस/) - - - -लेनदेन की "गति" को कुछ तरीकों से मापा जा सकता है, जिसमें ब्लॉक में शामिल होने का समय और फ़ाइनल रूप देने का समय शामिल है। ये दोनों थोड़ा बदलाव करते हैं, लेकिन इस तरह से नहीं कि उपयोगकर्ताओं का ध्यान जाए। - -ऐतिहासिक रूप से, काम के सबूत पर, हर ~13.3 सेकंड में एक नया ब्लॉक रखने का लक्ष्य था। हिस्सेदारी का सबूत के तहत, स्लॉट ठीक हर 12 सेकंड में आते हैं, जिनमें से प्रत्येक सत्यापनकर्ता के लिए एक ब्लॉक प्रकाशित करने का अवसर होता है। अधिकांश स्लॉट में ब्लॉक होते हैं, लेकिन ज़रूरी नहीं कि सभी में हों (अर्थात कोई सत्यापनकर्ता ऑफ़लाइन हो)। हिस्सेदारी के सबूत में, काम के सबूत की तुलना में ब्लॉक ~10% ज़्यादा बनते हैं। यह पूरी तरह से महत्वहीन बदलाव था और इस पर उपयोगकर्ताओं द्वारा ध्यान दिए जाने की संभावना नहीं है। - -हिस्सेदारी के सबूत ने लेनदेन की अंतिम अवधारणा पेश की जो पहले मौजूद नहीं थी। काम का सबूत में, किसी लेनदेन के शीर्ष पर माइन किए गए प्रत्येक पास होने वाले ब्लॉक के साथ ब्लॉक को वापस लाने की क्षमता तेज़ी से ज़्यादा मुश्किल होती जाती है, लेकिन यह कभी भी शून्य तक नहीं पहुँचती है। हिस्सेदारी का सबूत के तहत, ब्लॉक युग में बंडल किए जाते हैं (6.4 मिनट के समय में ब्लॉक के लिए 32 मौके होते हैं) जिस पर सत्यापनकर्ता वोट करते हैं। जब एक युग समाप्त होता है, तो सत्यापनकर्ता इस बात पर वोट करते हैं कि युग को 'सही' माना जाए या नहीं। अगर सत्यापनकर्ता युग को सही ठहराने के लिए सहमत होते हैं, तो इसे अगले युग में अंतिम रूप दिया जाता है। अंतिम लेनदेन को पूर्ववत करना आर्थिक रूप से ठीक नहीं है क्योंकि इसके लिए कुल स्टेक्ड ETH के एक तिहाई से ज़्यादा प्राप्त करने और हटाने की आवश्यकता होगी। - - - - -स्टेक्ड ETH और स्टेकिंग पुरस्कार वापस लेने की क्षमता के बिना लॉक किया जाना जारी है। आगामी शंघाई अपग्रेड के लिए निकासी का प्लान है। - - - -यह उपरोक्त नोट के विपरीत प्रतीत हो सकता है कि हटाए जाने को शंघाई अपग्रेड होने तक सक्षम नहीं किया गया है, लेकिन सत्यापनकर्ताओं के पास ब्लॉक प्रस्तावों के दौरान अर्जित शुल्क पुरस्कार/MEV तक तुरंत एक्सेस होती है। - -प्रोटोकॉल, सहमति में योगदान देने के लिए सत्यापनकर्ताओं को पुरस्कार के रूप में ETH जारी करता है। सहमति परत नए जारी किए गए ETH के लिए ज़िम्मेदार है, जहाँ एक सत्यापनकर्ता के पास एक यूनिक पता होता है जो उसके स्टेक्ड ETH और प्रोटोकॉल पुरस्कार रखता है। यह ETH शंघाई अपडेट होने तक लॉक है। - -निष्पादन परत पर ETH को सहमति परत से अलग रखा जाता है। जब उपयोगकर्ता एथेरियम मेननेट पर लेनदेन निष्पादित करते हैं, तो सत्यापनकर्ता को टिप सहित गैस को कवर करने के लिए ETH का भुगतान किया जाना चाहिए। यह ETH पहले से ही निष्पादन स्तर पर है, प्रोटोकॉल द्वारा नया जारी नहीं किया जा रहा है, और सत्यापनकर्ता के लिए तुरंत उपलब्ध है (क्लाइंट सॉफ़्टवेयर को एक उचित `शुल्क प्राप्तकर्ता` पता प्रदान किया गया है)। - - - -शंघाई अपग्रेड के बाद हटाना सक्षम करने के बाद, सभी सत्यापनकर्ताओं को 32 ETH से ऊपर के अपने स्टेकिंग बैलेंस को वापस लेने के लिए प्रोत्साहित किया जाएगा, क्योंकि ये फंड प्रोडक्शन में नहीं जुड़ते हैं और अन्यथा लॉक हो जाते हैं। APR (कुल ETH स्टेक्ड निर्धारित) के आधार पर, उन्हें अपने सत्यापनकर्ताओं से बाहर निकलने के लिए प्रोत्साहित किया जा सकता है ताकि वे अधिक उत्पादन अर्जित करने के लिए अपने पुरस्कारों का उपयोग करके अपना संपूर्ण बैलेंस या संभावित रूप से और भी अधिक स्टेक प्राप्त कर सकें। - -यहाँ एक महत्वपूर्ण चेतावनी, पूर्ण सत्यापनकर्ता निकास प्रोटोकॉल द्वारा सीमित दर हैं, इसलिए प्रति युग केवल छह सत्यापनकर्ता बाहर निकल सकते हैं (प्रत्येक 6.4 मिनट, इसलिए प्रति दिन 1350, या 10 मिलियन से अधिक ETH स्टेक्ड पर केवल ~43,200 ETH प्रति दिन)। यह दर सीमा कुल ETH स्टेक्ड आधार पर समायोजित होती है और फंड को बड़े पैमाने पर इधर से उधर जाने से रोकती है। इसके अलावा, यह एक संभावित हमलावर को एक स्लेशेबल अपराध करने के लिए अपने स्टेक का उपयोग करने से रोकता है और प्रोटोकॉल में स्लेशिंग पेनल्टी को लागू करने से पहले एक ही युग में अपने पूरे स्टेकिंग बैलेंस को बाहर कर देता है। - -APR को जानबूझकर डायनेमिक बनाया गया है, जिससे स्टेकर्स के मार्केट को बैलेंस करने की अनुमति मिलती है कि वे नेटवर्क को सुरक्षित करने में मदद के लिए कितना भुगतान करने को तैयार हैं। हटाना सक्षम होने पर, यदि दर बहुत कम है, तो सत्यापनकर्ता प्रोटोकॉल द्वारा सीमित दर पर बाहर निकल जाएँगे। धीरे-धीरे यह उन सभी के लिए APR बढ़ाएगा जो फिर से नए या लौटने वाले स्टेकर्स को आकर्षित कर रहे हैं। - - -## 'Eth2' का क्या हुआ? {#eth2} - -शब्द 'Eth2' को निकाल दिया गया है। 'Eth1' और 'Eth2' को एक ही चेन में मर्ज करने के बाद, अब दो एथेरियम नेटवर्क के बीच अंतर करने की कोई आवश्यकता नहीं है; वहाँ सिर्फ एथेरियम ही काफी है। - -भ्रम से बचने के लिए, समुदाय ने इन शर्तों को अपडेट किया है: - -- 'Eth1' अब 'निष्पादन परत' है, जो लेनदेन और निष्पादन को प्रबंधित करती है। -- 'Eth2' अब 'सहमति परत' है, जो हिस्सेदारी के सबूत को प्रबंधित करती है। - -ये शब्दावली अपडेट केवल नामकरण परंपराओं को बदलते हैं; इससे एथेरियम के लक्ष्य या रोडमैप नहीं बदलता है। - -['Eth2' का नाम बदलने के बारे में और जानें](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) - -## अपग्रेड के बीच संबंध {#relationship-between-upgrades} - -एथेरियम अपग्रेड कुछ हद तक परस्पर जुड़े हुए हैं। तो आइए दोहराते हैं कि मर्ज दूसरे अपग्रेड से कैसे संबंधित हैं। - -### मर्ज और बीकन चेन {#merge-and-beacon-chain} - -मर्ज ओरिजिनल मेननेट निष्पादन परत के लिए नई सहमति परत के रूप में बीकन चेन का औपचारिक रूप से अपनाने के बारे में बताता है। मर्ज के बाद से, एथेरियम मेननेट को सुरक्षित करने के लिए सत्यापनकर्ताओं को असाइन किया गया है, और [काम के सबूत](/developers/docs/consensus-mechanisms/pow/) पर माईनिंग अब ब्लॉक उत्पादन का वैध साधन नहीं है। - -इसके बजाय सहमति में भाग लेने के अधिकार के बदले स्टेक्ड ETH रखने वाले नोड्स को मान्य करके ब्लॉक प्रस्तावित किए जाते हैं। ये अपग्रेड भविष्य के स्केलेबिलिटी अपग्रेड के लिए स्टेज सेट करते हैं, जिसमें शार्डिंग भी शामिल है। - - - बीकन चेन - - -### मर्ज और शंघाई अपग्रेड {#merge-and-shanghai} - -हिस्सेदारी के सबूत के लिए एक सफल ट्रांज़िशन पर फ़ोकस करना आसान बनाने और अधिकतम करने के लिए, मर्ज अपग्रेड में कुछ अपेक्षित फ़ीचर शामिल नहीं थीं, जैसे कि स्टेक्ड ETH को वापस लेने की क्षमता। मर्ज को फ़ॉलो करने के लिए शंघाई अपग्रेड की योजना बनाई गई है, जो स्टेकर्स की वापस लेने की क्षमता को सक्षम करेगा। - -[GitHub पर शंघाई अपग्रेड प्लानिंग इश्यू](https://github.com/ethereum/pm/issues/450), या [EF रिसर्च एंड डेवलपमेंट ब्लॉग](https://blog.ethereum.org/category/research-and-development/) के साथ अप-टू-डेट रहें। उत्सुक लोग, [मर्ज के बाद क्या होता है](https://youtu.be/7ggwLccuN5s?t=101) के बारे में और जानें, जिसे वितालिक ने अप्रैल 2021 ETHGlobal इवेंट में प्रस्तुत किया था। - -### मर्ज और शार्डिंग {#merge-and-data-sharding} - -मूल रूप से, स्केलेबिलिटी का पता लगाने के लिए मर्ज से पहले शार्डिंग पर काम करने की योजना थी। हालाँकि, [परत 2 स्केलिंग समाधान](/layer-2/) में बढ़ोतरी के साथ, प्राथमिकता पहले काम के सबूत को हिस्सेदारी के सबूत में बदलने की हो गई है। - -शार्डिंग के लिए योजनाएँ तेज़ी से विकसित हो रही हैं, लेकिन लेनदेन निष्पादन को बढ़ाने के लिए परत 2 टेक्नोलॉजी में वृद्धि और सफलता को देखते हुए, नेटवर्क क्षमता में अत्यधिक वृद्धि की अनुमति देते हुए, रोलअप अनुबंधों से कंप्रेस कॉलडेटा को स्टोर करने की ज़िम्मेदारी को बाँटने के लिए शार्डिंग योजनाएँ सबसे बढ़िया तरीका खोजने की ओर अग्रसर हो गई हैं। यह पहले हिस्सेदारी के सबूत में बदलाव के बिना संभव नहीं होगा। - - - शार्डिंग - - -## अतिरिक्त पाठ्यसामग्री {#further-reading} - - - - diff --git a/src/content/translations/hi/smart-contracts/index.md b/src/content/translations/hi/smart-contracts/index.md deleted file mode 100644 index 1ff6e727627..00000000000 --- a/src/content/translations/hi/smart-contracts/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: स्मार्ट अनुबंध -description: स्मार्ट अनुबंधों का एक गैर-तकनीकी परिचय -lang: hi ---- - -# Introduction to smart contracts {#introduction-to-smart-contracts} - -स्मार्ट अनुबंध इथेरियम की एप्लिकेशन परत के मूलभूत निर्माण खंड हैं। वे ब्लॉकचेन पर संग्रहीत कंप्यूटर प्रोग्राम हैं जो "अगर यह है तो वह" तर्क का पालन करते हैं, और इसके कोड द्वारा परिभाषित नियमों के अनुसार निष्पादित होने की गारंटी देते हैं, जिन्हें एक बार बनाए जाने के बाद बदला नहीं जा सकता है। - -निक स्जाबो ने "स्मार्ट अनुबंध" शब्द गढ़ा। 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)। - -स्ज़ाबो ने एक डिजिटल बाज़ार की कल्पना की जहां स्वचालित, क्रिप्टोग्राफ़िक रूप से सुरक्षित प्रक्रियाएं विश्वसनीय मध्यस्थों के बिना लेनदेन और व्यावसायिक कार्यों को करने में सक्षम बनाती हैं। इथेरियम पर स्मार्ट अनुबंध इस कल्पना को अभ्यास में लाते हैं। - -### पारंपरिक अनुबंधों पर विश्वास {#trust-and-contracts} - -पारंपरिक अनुबंध के साथ एक सबसे बड़ी समस्या यह है की अनुबंध के परिणामों का अनुसरण करने के लिए विश्वसनीय व्यक्तियों की आवश्यकता है। - -उदाहरण: - -ऐलिस और बॉब साइकिल रेस कर रहे हैं। मान लीजिए कि ऐलिस ने बॉब से 10 डॉलर की शर्त लगाई कि वह रेस जीत जाएगी। बॉब को विश्वास है कि वह विजेता होगा और शर्त मान जाता है। अंत में, ऐलिस बॉब से काफी पहले दौड़ पूरी करती है और जीत जाती है। लेकिन बॉब ने शर्त पर भुगतान करने से इनकार कर दिया, यह दावा करते हुए कि ऐलिस ने बेईमानी की होगी। - -यह उदाहरण किसी भी मूर्ख समझौते की समस्या को दर्शाता है। भले ही समझौते की शर्तें पूरी हो जाएं (यानी आप दौड़ के विजेता हैं), फिर भी आपको समझौते को पूरा करने के लिए किसी अन्य व्यक्ति पर भरोसा करना होगा (यानी शर्त का भुगतान करना)। - -### A digital vending machine {#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/) - -## More of a visual learner? {#visual-learner} - -फाइनमैटिक्स को स्मार्ट अनुबंधों को समझाते हुए देखें: - - - -## अग्रिम पठन {#further-reading} - -- [कैसे स्मार्ट अनुबंध दुनिया को बदलेंगे](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [स्मार्ट अनुबंध: ब्लॉकचेन तकनीक जो वकीलों की जगह ले लेगा](https://blockgeeks.com/guides/smart-contracts/) -- [डेवलपर्स के लिए स्मार्ट अनुबंध](/developers/docs/smart-contracts/) -- [स्मार्ट-अनुबंध लिखना सीखें](/developers/learning-tools/) -- [इथेरियम में महारत हासिल करें - स्मार्ट अनुबंध क्या है?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/src/content/translations/hi/social-networks/index.md b/src/content/translations/hi/social-networks/index.md deleted file mode 100644 index 4c863f79964..00000000000 --- a/src/content/translations/hi/social-networks/index.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: डिसेंट्रलाइज सोशल नेटवर्क्स -description: इथेरियम पर विकेंद्रीकृत सोशल नेटवर्क का अवलोकन -lang: hi -template: use-cases -emoji: ":mega:" -sidebarDepth: 2 -image: ../../../../assets/ethereum-learn.png -summaryPoint1: सामाजिक संपर्क, सामग्री निर्माण और वितरण के लिए ब्लॉकचेन-आधारित प्लेटफ़ॉर्म। -summaryPoint2: विकेंद्रीकृत सोशल मीडिया नेटवर्क उपयोगकर्ता की गोपनीयता की रक्षा करते हैं और डेटा सुरक्षा बढ़ाते हैं। -summaryPoint3: टोकन और NFT सामग्री से कमाई करने के नए तरीके बनाते हैं। ---- - -सोशल नेटवर्क हमारे दैनिक संचार और इंटरैक्शन में एक अहम भूमिका निभाते हैं। हालाँकि, इन प्लेटफार्मों के केंद्रीकृत नियंत्रण ने कई समस्याएं पैदा की हैं: डेटा उल्लंघन, सर्वर आउटेज, प्लेटफॉर्म से हटाया जाना, सेंसरशिप और गोपनीयता उल्लंघन कुछ ऐसे ट्रेड-ऑफ हैं जो सोशल मीडिया अक्सर करते हैं। इन समस्याओं से निपटने के लिए, डेवलपर्स इथेरियम पर सोशल नेटवर्क बना रहे हैं। विकेंद्रीकृत सोशल नेटवर्क पारंपरिक सोशल नेटवर्किंग प्लेटफार्मों की कई समस्याओं को ठीक कर सकते हैं और उपयोगकर्ताओं के अनुभव में सुधार कर सकते हैं। - -## विकेंद्रीकृत सोशल नेटवर्क क्या हैं? {#what-are-decentralized-social-networks} - -विकेंद्रीकृत सोशल नेटवर्क ब्लॉकचेन-आधारित प्लेटफ़ॉर्म हैं जो उपयोगकर्ताओं को सूचनाओं के आदान-प्रदान के साथ-साथ दर्शकों को कंटेंट प्रकाशित और वितरित करने की अनुमति देते हैं। क्योंकि ये एप्लिकेशन ब्लॉकचेन पर चलते हैं, वे विकेंद्रीकृत होने और सेंसरशिप और अनुचित नियंत्रण का प्रतिरोध करने में सक्षम हैं। - -Facebook, LinkedIn, Twitter और Medium जैसी स्थापित सोशल मीडिया सेवाओं के विकल्प के रूप में कई विकेन्द्रीकृत सोशल नेटवर्क मौजूद हैं। लेकिन ब्लॉकचेन-संचालित सोशल नेटवर्क में कई विशेषताएं हैं जो उन्हें पारंपरिक सोशल प्लेटफार्मों से आगे रखती हैं। - -### विकेंद्रीकृत सोशल नेटवर्क कैसे काम करते हैं? {#decentralized-social-networks-overview} - -विकेंद्रीकृत सोशल नेटवर्क [विकेंद्रीकृत अनुप्रयोग (dapps)](/dapps/) का एक वर्ग है — ब्लॉकचेन पर तैनात [स्मार्ट अनुबंधों](/developers/docs/smart-contracts/) द्वारा संचालित अनुप्रयोग। अनुबंध कोड इन ऐप्स के लिए बैकएंड के रूप में कार्य करता है और उनके व्यावसायिक तर्क को परिभाषित करता है। - -पारंपरिक सोशल मीडिया प्लेटफ़ॉर्म यूज़र की जानकारी, प्रोग्राम कोड और डेटा के अन्य रूपों को संग्रहीत करने के लिए डेटाबेस पर निर्भर करते हैं। लेकिन यह एकल बिन्दु-ऑफ-फेलियर बनाता है और महत्वपूर्ण जोखिम पैदा करता है। जैसे, पिछले साल Facebook के सर्वर अज्ञात [रूप से घंटों के लिए](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) ऑफ़लाइन हो गए, जिससे उपयोगकर्ता को परेशानी हुई। - -विकेंद्रीकृत सोशल नेटवर्क एक पीयर-टू-पीयर नेटवर्क पर मौजूद हैं जिसमें दुनिया भर में हजारों नोड्स शामिल हैं। अगर कुछ नोड विफल भी हो जाएं, नेटवर्क निर्बाध रूप से चलता रहेगा, जिससे एप्लिकेशन विफलताओं और आउटेज के प्रति प्रतिरोधी रहेंगे। - -[इंटरप्लेनेटरी फाइल सिस्टम (IPFS)](https://ipfs.io/) जैसे विकेंद्रीकृत भंडारण प्रणालियों का उपयोग करके, इथेरियम पर निर्मित सामाजिक नेटवर्क यूज़र की जानकारी को शोषण और अनुचित उपयोग से बचा सकते हैं। ना कोई आपकी व्यक्तिगत जानकारी विज्ञापनदाताओं को बेचेगा, न ही हैकर्स आपकी गोपनीय जानकारी चुरा पाएंगे। - -कई ब्लॉकचेन-आधारित सोशल प्लेटफ़ॉर्म में मूल टोकन होते हैं जो विज्ञापन राजस्व के अभाव में मुद्रीकरण को शक्ति प्रदान करते हैं। यूज़र कुछ सुविधाओं का प्रयोग करने, इन-ऐप खरीदारी पूरी करने या अपने पसंदीदा कंटेंट बनाने वाले को टिप देने के लिए इन टोकन को खरीद सकते हैं। - -## विकेन्द्रीकृत सोशल नेटवर्क के लाभ {#benefits} - -1. विकेंद्रीकृत सोशल नेटवर्क सेंसरशिप-प्रतिरोधी हैं और सभी के लिए खुले हैं। इसका मतलब यह है कि यूज़र को मनमाने ढंग से प्रतिबंधित, प्लेटफॉर्म से हटाया या प्रतिबंधित नहीं किया जा सकता है। - -2. विकेंद्रीकृत सोशल नेटवर्क ओपन-सोर्स आदर्शों पर बनाए गए हैं और सार्वजनिक निरीक्षण के एप्लिकेशन के लिए स्रोत कोड उपलब्ध कराते हैं। पारंपरिक सोशल मीडिया में आम अपारदर्शी एल्गोरिथम के कार्यान्वयन को समाप्त करके, ब्लॉकचेन-आधारित सोशल नेटवर्क यूज़र और प्लेटफ़ॉर्म पे मौजूद रचनाकारों के हितों को संरेखित कर सकते हैं। - -3. विकेन्द्रीकृत सोशल नेटवर्क "बिचौलिए" को ख़त्म कर देते हैं। कंटेंट रचनाकारों का अपनी कंटेंट पर सीधा स्वामित्व होता है, और वे फॉलोवर्स, प्रशंसकों, खरीदारों और अन्य पक्षों के साथ सीधे जुड़ सकते हैं, बीच में एक स्मार्ट अनुबंध के अलावा कुछ भी नहीं होता है। - -4. चूंकि dapps इथेरियम नेटवर्क पर चल रहे हैं, जो नोड्स के वैश्विक, पीयर-टू-पीयर नेटवर्क द्वारा चलता है, विकेंद्रीकृत सोशल नेटवर्क सर्वर डाउनटाइम और आउटेज के प्रति कम संवेदनशील होते हैं। - -5. विकेंद्रीकृत सामाजिक प्लेटफ़ॉर्म्स गैर-सघटनक टोकन (NFT), ऐप में क्रिप्टो भुगतान और अन्य माध्यमों के माध्यम से सामग्री निर्माताओं के लिए सुधारित मौद्रिकीकरण ढांचा प्रदान करते हैं। - -6. विकेंद्रीकृत सोशल नेटवर्क यूज़र को उच्च स्तर की गोपनीयता और गुमनामी प्रदान करते हैं। उदाहरण के लिए, कोई व्यक्ति ENS प्रोफ़ाइल या वॉलेट का उपयोग करके इथेरियम-आधारित सोशल नेटवर्क में साइन इन कर सकता है — व्यक्तिगत पहचान योग्य जानकारी (PII), जैसे नाम, ईमेल पते आदि साझा किए बिना। - -7. विकेंद्रीकृत सोशल नेटवर्क विकेंद्रीकृत भंडारण पर भरोसा करते हैं, न कि केंद्रीकृत डेटाबेस पर, जो यूज़र के डेटा की सुरक्षा के लिए काफी बेहतर हैं। - -## इथेरियम पर विकेंद्रीकृत सोशल नेटवर्क {#ethereum-social-networks} - -इथेरियम नेटवर्क अपने टोकन (ERC-20/ERC-721) की लोकप्रियता और इसके विशाल यूजरबेस के कारण विकेन्द्रीकृत सोशल मीडिया बनाने वाले डेवलपर्स के लिए पसंदीदा उपकरण बन गया है। इथेरियम-आधारित सोशल नेटवर्क के कुछ उदाहरण: - -### Peepeth {#peepeth} - -[Peepeth](https://peepeth.com/) Twitter के समान एक माइक्रोब्लॉगिंग प्लेटफ़ॉर्म है। यह इथेरियम के ब्लॉकचेन पर चलता है और यूज़र डेटा संग्रहीत करने के लिए IPFS का उपयोग करता है। - -यूज़र "पीप्स" नामक छोटे संदेश भेज सकते हैं, जिन्हें हटाया या बदला नहीं जा सकता है। आप ऐप पर इथर (ETH) में प्लेटफॉर्म पर टिप्स एकत्र कर सकते हैं या किसी को भी टिप दे सकते हैं। - -### Mirror {#mirror} - -[Mirror](https://mirror.xyz/) एक web3-सक्षम लेखन मंच है जिसका विकेंद्रीकृत और उपयोगकर्ता-स्वामित्व वाला होना लक्ष्य है। यूज़र Mirror पर केवल अपने वॉलेट को कनेक्ट करके मुफ्त में पढ़ और लिख सकते हैं। यूज़र अपने पसंदीदा लेखक की सदस्यता ले सकते है और उनको सब्सक्राइब कर सकते हैं। - -Mirror पर प्रकाशित पोस्ट स्थायी रूप से एक विकेन्द्रीकृत भंडारण प्लेटफ़ॉर्म, Arweave पर संग्रहीत की जाती हैं, और इसे संग्रहणीय [नॉन-फंजिबल टोकन (NFT)](/nft/) के रूप में मिंट किया जा सकता है, जिसे राइटिंग NFT के रूप में जाना जाता है। NFT बनाना लेखकों के लिए पूरी तरह से मुफ़्त है, और संग्रह इथेरियम L2 पर होता है - जिससे लेनदेन सस्ता, तेज़ और पर्यावरण के अनुकूल रहता है। - -### MINDS {#minds} - -[MINDS](https://www.minds.com/) सबसे अधिक उपयोग किए जाने वाले विकेन्द्रीकृत सोशल नेटवर्क में से एक है। यह Facebook की तरह काम करता है और इसके लाखों यूज़र हैं। - -यूज़र वस्तुओं के भुगतान के लिए प्लेटफ़ॉर्म के मूल ERC-20 टोकन $MIND का उपयोग करते हैं। यूज़र लोकप्रिय कंटेंट प्रकाशित करके, इकोसिस्टम में योगदान करके और दूसरों को प्लेटफ़ॉर्म पर रेफर करके $MIND टोकन अर्जित कर सकते हैं। - -## इथेरियम पर Web2 सोशल नेटवर्क {#web2-social-networks-and-ethereum} - -[Web3](/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/) हैं जिन्हें यूज़र गुणवत्तापूर्ण सामग्री पोस्ट करके और ऑनलाइन समुदायों (सबरेडिट्स) में योगदान करके कमा सकते हैं। [विशिष्ट अधिकार और सुविधाएं प्राप्त करने के लिए](https://www.reddit.com/community-points/) आप इन टोकन को सबरेडिट के भीतर प्रयोग कर सकते हैं। इस प्रोजेक्ट के लिए, Reddit Arbitrum के साथ काम कर रहा है, जो इथेरियम लेनदेन को स्केल करने के लिए डिज़ाइन किया गया एक [परत 2](/layer-2/) रोलअप है। - -यह कार्यक्रम पहले से ही लाइव है, जिसमें r/CryptoCurrency सबरेडिट ["मून्स" नामक कम्युनिटी पॉइंट्स का अपना संस्करण चला रहा है](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki)। आधिकारिक विवरण के अनुसार, मून्स "पोस्टर, टिप्पणीकारों और मॉडरेटर को सबरेडिट में उनके योगदान के लिए पुरस्कृत करता है।" क्योंकि ये टोकन ब्लॉकचेन पर होते हैं (उपयोगकर्ता उन्हें वॉलेट में प्राप्त करते हैं), वे Reddit से स्वतंत्र हैं और उन्हें हटाया नहीं जा सकता है। - -रिंकीबी टेस्टनेट पर बीटा चरण के समापन के बाद, Reddit कम्युनिटी पॉइंट्स अब [आर्बिट्रम नोवा](https://nova.arbitrum.io/) पर हैं, एक ब्लॉकचेन जो एक [साइडचेन](/developers/docs/scaling/sidechains/) और एक [आशावादी रोलअप](/developers/docs/scaling/optimistic-rollups/) के गुणों को जोड़ता है। विशेष सुविधाओं को अनलॉक करने के लिए कम्युनिटी पॉइंट्स का उपयोग करने के अलावा, यूज़र एक्सचेंजों पर इसको फ़िएट में भी बदल सकते हैं। साथ ही, किसी यूज़र के पास मौजूद सामुदायिक अंकों की मात्रा समुदाय में निर्णय लेने की प्रक्रिया पर उनके प्रभाव को निर्धारित करती है। - -### Twiiter {#twitter} - -जनवरी 2021 में, Twitter ब्लू ने [NFT के लिए समर्थन शुरू किया](https://mashable.com/article/twitter-blue-nft-profile-picture), जिससे यूज़र अपने वॉलेट को कनेक्ट कर सकते हैं और NFT को प्रोफ़ाइल चित्र के रूप में प्रदर्शित कर सकते हैं। लेखन के समय, सोशल मीडिया कंपनी ने भविष्य में एक विकेन्द्रीकृत सोशल नेटवर्क [बनाने की योजना की भी घोषणा](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) की है। - -### Instagram {#instagram} - -मई 2022 में, [Instagram ने इथेरियम और पॉलीगॉन पर NFT के लिए समर्थन की घोषणा की](https://about.instagram.com/blog/announcements/instagram-digital-collectibles)। यूज़र अपने इथेरियम वॉलेट को कनेक्ट करके NFT को सीधे Instagram पर पोस्ट कर सकते हैं। - -## विकेंद्रीकृत सोशल नेटवर्क का उपयोग करना {#use-decentralized-social-networks} - -- **[Status.im](https://status.im/)** - _Status एक सुरक्षित मैसेजिंग ऐप है जो आपके संदेशों को तीसरे पक्षों से सुरक्षित रखने के लिए ओपन-सोर्स, पीयर-टू-पीयर प्रोटोकॉल और एंड-टू-एंड एन्क्रिप्शन का उपयोग करता है।_ -- **[Mirror.xyz](https://mirror.xyz/)** - _Mirror एक विकेन्द्रीकृत, यूज़र-स्वामित्व वाला प्रकाशन प्लेटफ़ॉर्म है जो यूज़र के विचारों को एकत्रित करने, कंटेंट का मुद्रीकरण करने और उच्च-मान वाले समुदायों का निर्माण करने के लिए इथेरियम पर बनाया गया है।_ -- **[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) - _कॉइनबेस वेंचर्स_ -- [सामाजिक नेटवर्क विकेंद्रीकरण का अगला बड़ा अवसर हैं](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _बेन गोएर्टज़ेल_ -- [Web3 विकेंद्रीकृत, समुदाय-संचालित सामाजिक नेटवर्क का वादा करता है](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _सुमित घोष_ -- [ब्लॉकचेन सोशल मीडिया लैंडस्केप का अवलोकन](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _जेमिनी क्रिप्टोपेडिया_ -- [ब्लॉकचेन सोशल मीडिया गोपनीयता को कैसे हल कर सकता है](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _प्रबलीन बाजपेयी_ -- [सोशल मीडिया नेटवर्क ब्लॉकचेन पर आ रहे हैं](https://businesstechguides.co/what-are-decentralized-social-networks) — _इमैनुएल अवोसिका_ -- [सामाजिक नेटवर्क के लिए पर्याप्त विकेंद्रीकरण](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _वरुण श्रीनिवासन_ - -### वीडियो {#videos} - -- [विकेंद्रीकृत सोशल मीडिया की व्याख्या](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ -- [DeSo ब्लॉकचेन सोशल मीडिया को विकेंद्रीकृत करना चाहता है](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ -- [विकेंद्रीकृत सोशल मीडिया का भविष्य बालाजी श्रीनिवासन, विटालिक ब्यूटिरिन, जुआन बेनेट](https://www.youtube.com/watch?v=DTxE9KV3YrE) के साथ — _ETHGlobal_ - -### समुदाय {#communities} - -- [Status Discord सर्वर](https://discord.com/invite/3Exux7Y) -- [Mirror Discord सर्वर](https://discord.com/invite/txuCHcE8wV) -- [r/CryptoCurrency सबरेडिट](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/hi/staking/pools/index.md b/src/content/translations/hi/staking/pools/index.md deleted file mode 100644 index d731aabadab..00000000000 --- a/src/content/translations/hi/staking/pools/index.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: जमा हुआ दाव -description: पूल किए गए ETH स्टेकिंग के साथ शुरुआत करने के तरीके का अवलोकन -lang: hi -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-pool.png -alt: लेस्ली राइनो पूल में तैर रहा है। -sidebarDepth: 2 -summaryPoints: - - दूसरों के साथ जुड़कर ETH की किसी भी राशि के साथ दांव लगाएं और पुरस्कार अर्जित करें - - कठिन भाग को छोड़ें और सत्यापनकर्ता कार्रवाई को किसी तृतीय-पक्ष को सौंपें - - अपने स्वयं के वॉलेट में स्टेकिंग टोकन रखें ---- - -## स्टेकिंग पूल क्या हैं? {#what-are-staking-pools} - -स्टेकिंग पूल एक सहयोगी दृष्टिकोण है जो कम ETH वाले लोगों को सत्यापनकर्ता कुंजी के एक सेट बनाने के लिए ज़रूरी 32 ETH प्राप्त करने की अनुमति देता है। पूलिंग कार्यक्षमता प्रोटोकॉल के भीतर मूल रूप से समर्थित नहीं है, इसलिए इस आवश्यकता को पूरा करने के लिए समाधान अलग से बनाए गए थे। - -कुछ पूल स्मार्ट अनुबंधों का उपयोग करके संचालित होते हैं, जहां धन को एक अनुबंध में जमा किया जा सकता है, जो बिना विश्वास है और आपकी हिस्सेदारी को ट्रैक करता है, और आपको एक टोकन जारी करता है जो इस मूल्य का प्रतिनिधित्व करता है। हो सकता है कि अन्य पूल में स्मार्ट अनुबंध शामिल न हों और इसके बजाय ऑफ़-चेन के माध्यम से मध्यस्थता की जाती हो। - -## पूल के माध्यम से स्टेक को लगाएं? {#why-stake-with-a-pool} - -[स्टेकिंग के लिए हमारे परिचय](/staking/) में उल्लिखित लाभों के अलावा, पूल के साथ दांव लगाना कई अलग-अलग लाभों के साथ आता है। - - - - - - - - - -## क्या विचार करना है {#what-to-consider} - -पूल या डेलिगेटेड स्टेकिंग मूल रूप से इथेरियम प्रोटोकॉल द्वारा समर्थित नहीं है, लेकिन उपयोगकर्ताओं के लिए 32 ETH से कम हिस्सेदारी की मांग को देखते हुए इस मांग को पूरा करने के लिए समाधानों की बढ़ती संख्या का निर्माण किया गया है। - -प्रत्येक पूल और उनके द्वारा उपयोग किए जाने वाले उपकरण या स्मार्ट अनुबंध विभिन्न टीमों द्वारा बनाए गए हैं, और प्रत्येक लाभ और जोखिमों के साथ आता है। पूल करने से उपयोगकर्ता अपने ETH को स्टेक किए गए ETH का प्रतिनिधित्व करने वाले टोकन के साथ अदला-बदली कर सकते है। टोकन उपयोगी है, क्योंकि यह उपयोगकर्ताओं को ETH की किसी भी राशि को उपज-असर टोकन की बराबर राशि में अदला-बदली करने की अनुमति देता है जो विकेन्द्रीकृत एक्सचेंजों पर अंतर्निहित दांव वाले ETH (और इसके विपरीत) पर लागू स्टेकिंग पुरस्कारों से वापसी उत्पन्न करता है, भले ही वास्तविक ETH आम सहमति परत पर दांव लगा रहता है। इसका मतलब है कि उपज-असर वाले स्टेक-ETH उत्पाद से आगे और पीछे अदला-बदली करें और "रॉ ETH" त्वरित, आसान है और न केवल 32 ETH के गुणकों में उपलब्ध है। - -हालाँकि, ये स्टेक किए गए ETH टोकन कार्टेल जैसे व्यवहार पैदा करते हैं जहां बड़ी मात्रा में दांव पर लगा ETH कई स्वतंत्र व्यक्तियों में फैलने के बजाय कुछ केंद्रीकृत संगठनों के नियंत्रण में समाप्त होता है। यह सेंसरशिप या मूल्य निष्कर्षण के लिए स्थितियां बनाता है। स्टेकिंग के लिए स्वर्ण मानक हमेशा उन व्यक्तियों को होना चाहिए जो जब भी संभव हो अपने स्वयं के हार्डवेयर पर सत्यापनकर्ता चला रहे हों। - -[टोकन स्टेकिंग के जोखिमों पर और जाने](https://notes.ethereum.org/@djrtwo/risks-of-lsd)। - -विशेषता संकेतकों का उपयोग नीचे सूचीबद्ध स्टॉकिंग पूल की उल्लेखनीय ताकत या कमजोरियों को इंगित करने के लिए किया जाता है। इस अनुभाग का उपयोग इस संदर्भ के रूप में करें कि जब आप शामिल होने के लिए पूल चुन रहे हों, तो हम इन विशेषताओं को कैसे परिभाषित करते हैं। - - - -## स्टेकिंग पूल को एक्सप्लोर करें {#explore-staking-pools} - -आपके सेटअप में आपकी मदद करने के लिए कई प्रकार के विकल्प उपलब्ध हैं। नीचे दिए गए उपकरणों के माध्यम से मार्गदर्शन करने में मदद करने के लिए उपरोक्त संकेतकों का इस्तेमाल करें। - - - - - -कृपया एक ऐसी सेवा चुनने के महत्व पर ध्यान दें जो [क्लाइंट विविधता](/developers/docs/nodes-and-clients/client-diversity/) को गंभीरता से लेती है, क्योंकि यह नेटवर्क की सुरक्षा में सुधार करती है और आपके जोखिम को सीमित करती है। जिन सेवाओं में बहुमत क्लाइंट उपयोग को सीमित करने के सबूत हैं, उन्हें "निष्पादन ग्राहक विविधता" और "सहमति ग्राहक विविधता" के साथ इंगित किया जाता है। - -क्या आपके पास स्टेकिंग टूल के बारे कोई सुझाव है जिसे हम भूल गए हैं? यह देखने के लिए हमारी [उत्पाद लिस्टिंग नीति](/contributing/adding-staking-products/) देखें कि क्या यह एक अच्छा फिट होगा और इसे समीक्षा के लिए सबमिट करें। - -## अक्सर पूछे जाने वाले सवाल {#faq} - - -आम तौर पर ERC -20 स्टेकिंग टोकन हितधारकों को जारी किए जाते हैं जो उनके दांव वाले ETH प्लस पुरस्कारों के मूल्य का प्रतिनिधित्व करते हैं। ध्यान रखें कि विभिन्न पूल अपने उपयोगकर्ताओं को थोड़ा अलग तरीकों से पुरस्कार वितरित करेंगे, लेकिन यह सामान्य विषय है। - - - -अभी! शंघाई/कैपेला नेटवर्क अपग्रेड अप्रैल 2023 में हुआ और स्टेकिंग निकासी की सुविधा शुरू की है। जो सत्यापनकर्ता खाते स्टेकिंग पूल का समर्थन कर रहे हैं, उनके पास अब ETH बाहर निकलने और अपने निर्दिष्ट निकासी पते पर वापस लेने की क्षमता है। यह अंतर्निहित ETH के लिए हिस्सेदारी के अपने हिस्से को स्टेक की क्षमता को सक्षम बनाता है। यह देखने के लिए अपने प्रदाता से संपर्क करें कि वे इस कार्यक्षमता का समर्थन कैसे करते हैं। - -वैकल्पिक रूप से, ERC -20 स्टेकिंग टोकन का उपयोग करने वाले पूल उपयोगकर्ताओं को खुले बाजार में इस टोकन का व्यापार करने की अनुमति देते हैं, जिससे आप अपनी स्टेकिंग स्थिति बेच सकते हैं, वास्तव में ETH को दांव अनुबंध से हटाए बिना प्रभावी रूप से "वापस" ले सकते हैं। - -स्टेकिंग निकासी पर अधिक जानकारी - - - -इन पूल किए गए स्टेकिंग विकल्पों और केंद्रीकृत एक्सचेंजों के बीच कई समानताएं हैं, जैसे कि ETH की छोटी मात्रा को दांव पर लगाने की क्षमता और सत्यापनकर्ताओं को सक्रिय करने के लिए उन्हें एक साथ बंडल करना। - -केंद्रीकृत एक्सचेंजों के विपरीत, कई अन्य पूल किए गए स्टेकिंग विकल्प स्मार्ट अनुबंध और/या स्टेकिंग टोकन का उपयोग करते हैं, जो आमतौर पर ERC -20 टोकन होते हैं जिन्हें आपके स्वयं के वॉलेट में रखा जा सकता है और किसी भी अन्य टोकन की तरह खरीदा या बेचा जा सकता है। यह आपको अपने टोकन पर नियंत्रण देकर संप्रभुता और सुरक्षा की एक लेयर प्रदान करता है, लेकिन फिर भी आपको पृष्ठभूमि में आपकी ओर से सत्यापित सत्यापनकर्ता क्लाइंट पर सीधा नियंत्रण नहीं देता है। - -कुछ पूलिंग विकल्प दूसरों की तुलना में अधिक विकेन्द्रीकृत होते हैं जब उन्हें वापस करने वाले नोड्स की बात आती है। नेटवर्क के स्वास्थ्य और विकेंद्रीकरण को बढ़ावा देने के लिए, हितधारकों को हमेशा एक पूलिंग सेवा का चयन करने के लिए प्रोत्साहित किया जाता है जो नोड ऑपरेटरों के अनुमति रहित विकेन्द्रीकृत सेट को सक्षम बनाता है। - - -## अग्रिम पठन {#further-reading} - -- [रॉकेट पूल के साथ स्टेकिंग - स्टेकिंग ओवरव्यू](https://docs.rocketpool.net/guides/staking/overview.html) - _रॉकेटपूल डॉक्स_ -- [लिडो के साथ इथेरियम स्टेक करें](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _लिडो सहायता दस्तावेज_ diff --git a/src/content/translations/hi/staking/saas/index.md b/src/content/translations/hi/staking/saas/index.md deleted file mode 100644 index 5722a818d05..00000000000 --- a/src/content/translations/hi/staking/saas/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: एक सेवा के रूप में स्टेकिंग -description: पूल किए गए ETH स्टेकिंग के साथ आरंभ करने का एक सिंहावलोकन -lang: hi -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-saas.png -alt: बादलों में तैरता हुआ राइनो लेस्ली। -sidebarDepth: 2 -summaryPoints: - - तीसरे पक्ष के नोड ऑपरेटर आपके सत्यापनकर्ता क्लाइंट के संचालन को संभालते हैं - - 32 ETH वाले किसी भी व्यक्ति के लिए बढ़िया विकल्प जो नोड चलाने की तकनीकी जटिलता से निपटने में सहज महसूस नहीं करता है - - भरोसा कम करें और अपनी निकासी कुंजियों की सुरक्षा बनाए रखें ---- - -## एक सेवा के रूप में स्टेकिंग क्या है? {#what-is-staking-as-a-service} - -स्टेकिंग एक सेवा के रूप में ("SaaS") ऐसी स्टेकिंग सेवाओं की एक श्रेणी का प्रतिनिधित्व करता है जहां आप एक सत्यापनकर्ता के लिए अपने 32 ETH जमा करते हैं, लेकिन नोड संचालन को आप तीसरे पक्ष के ऑपरेटर को सौंपते हैं। इस प्रक्रिया में आम तौर पर प्रारंभ में सेटअप के माध्यम से मार्गदर्शन किया जाता है, जिसमें कुंजी उत्पन्न करना और जमा करना, फिर ऑपरेटर को अपनी हस्ताक्षर कुंजियां अपलोड करना शामिल है। यह सेवा को आपकी ओर से आपके सत्यापनकर्ता को संचालित करने की अनुमति देती है, आमतौर पर मासिक शुल्क के लिए। - -## किसी सेवा के साथ स्टेकिंग क्यों? {#why-stake-with-a-service} - -इथेरियम प्रोटोकॉल मूल रूप से स्टेकिंग के प्रतिनिधित्व का समर्थन नहीं करता है, इसलिए इस मांग को पूरा करने के लिए इन सेवाओं का निर्माण किया गया है। अगर आपके पास 32 ETH स्टेक करने के लिए है, लेकिन आप हार्डवेयर से निपटने में सहज महसूस नहीं करते हैं, SaaS सेवाएं आपको कठिन भाग को सौंपने की अनुमति देती हैं जबकि आप मूल ब्लॉक पुरस्कार कमा रहे हैं। - - - - - - - - - -## क्या विचार करना है {#what-to-consider} - -आपके ETH को स्टेक करने में मदद करने के लिए SaaS प्रदाताओं की बढ़ती संख्या है, लेकिन उन सभी के अपने-अपने लाभ और जोखिम हैं। सभी SaaS विकल्पों में होम-स्टेकिंग की तुलना में अतिरिक्त विश्वास मान्यताओं की आवश्यकता होती है। Saas विकल्पों में इथेरियम क्लाइंटों को लपेटने वाला अतिरिक्त कोड हो सकता है जो स्वतंत्र या परीक्षण योग्य नहीं है। SaaS का नेटवर्क विकेंद्रीकरण पर भी हानिकारक प्रभाव पड़ता है। सेटअप पर निर्भर करते हुए, आप अपने सत्यापनकर्ता को नियंत्रित नहीं कर सकते - ऑपरेटर आपके ETH का उपयोग करके बेईमानी से कार्य कर सकता है। - -सूचीबद्ध SaaS प्रदाता की उल्लेखनीय शक्तियों या कमज़ोरियों का संकेत देने के लिए नीचे विशेषता संकेतकों का उपयोग किया जाता है। जब आप अपनी स्टेकिंग यात्रा में मदद के लिए कोई सेवा चुन रहे हों, तो इस अनुभाग का उपयोग संदर्भ के रूप में करें कि हम इन विशेषताओं को कैसे परिभाषित करते हैं। - - - -## स्टेकिंग सेवा प्रदाता को एक्सप्लोर करें {#saas-providers} - -नीचे कुछ उपलब्ध SaaS प्रदाता हैं। इन सेवाओं में मार्गदर्शन के लिए ऊपर दिए गए संकेतकों का उपयोग करें - - - -#### SaaS प्रदाता - - - -कृपया ध्यान दें कि [क्लाइंट विविधता](/developers/docs/nodes-and-clients/client-diversity/) का समर्थन महत्वपूर्ण है, क्योंकि यह नेटवर्क की सुरक्षा में सुधार और आपके जोखिम को सीमित करता है। जिन सेवाओं में बहुमत क्लाइंट उपयोग को सीमित करने के सबूत हैं, उन्हें "निष्पादन ग्राहक विविधता" और "सहमति ग्राहक विविधता" के साथ इंगित किया जाता है। - -#### कुंजी जनरेटर - - - -हमसे छूट गए किसी सेवा प्रदाता के रूप में स्टेकिंग के लिए सुझाव है? यह देखने के लिए हमारी [उत्पाद लिस्टिंग नीति](/contributing/adding-staking-products/) देखें कि क्या यह एक अच्छा फिट होगा और इसे समीक्षा के लिए सबमिट करें। - -## अक्सर पूछे जाने वाले सवाल {#faq} - - -विभिन्न प्रदाता-दर-प्रदाता की व्यवस्थाएं अलग-अलग होंगी, लेकिन आम तौर पर आपको किसी भी आवश्यक हस्ताक्षर कुंजी (प्रति 32 ETH में से एक) स्थापित करने और उन्हें आपकी ओर से मान्य करने की अनुमति देने के लिए, अपने प्रदाता पर अपलोड करने के माध्यम से निर्देशित किया जाएगा। अकेले हस्ताक्षर करने वाली कुंजियां आपके धन को निकालने, स्थानांतरित करने या खर्च करने की कोई क्षमता नहीं देती हैं। हालाँकि, वे आम सहमति के लिए मतदान डालने की क्षमता प्रदान करते हैं, जिसे अगर ठीक से नहीं किया गया तो ऑफ़लाइन दंड या कटौती हो सकती है। - - - -हां। प्रत्येक खाते में BLS हस्ताक्षर कुंजी और BLS निकासी कुंजी दोनों शामिल हैं। एक सत्यापनकर्ता के लिए श्रृंखला की स्थिति को प्रमाणित करने, सिंक समितियों में भाग लेने और ब्लॉक प्रस्तावित करने के लिए, सत्यापनकर्ता क्लाइंट द्वारा हस्ताक्षर कुंजी आसानी से पहुंच योग्य होनी चाहिए। ये किसी न किसी रूप में इंटरनेट से जुड़ा होना चाहिए और इसलिए इन्हें स्वाभाविक रूप से "हॉट" कुंजियां माना जाता है। यह आपके सत्यापनकर्ता के लिए एक आवश्यकता है ताकि प्रमाणित किया जा सके, और इस प्रकार सुरक्षा कारणों से धनराशि स्थानांतरित करने या निकालने के लिए उपयोग की जाने वाली कुंजियां अलग हो जाती हैं। - -BLS निकासी कुंजियों का उपयोग एक बार के संदेश पर हस्ताक्षर करने के लिए किया जाता है जो घोषित करता है कि निष्पादन परत खाता स्टेकिंग पुरस्कार और निकासित धनराशि को जाना चाहिए। एक बार जब यह संदेश प्रसारित हो जाता है, तो BLS निकासी कुंजियों की आवश्यकता नहीं रह जाती है। इसके बजाय, निकाली गई धनराशि पर नियंत्रण आपके द्वारा दिए गए पते पर स्थायी रूप से सौंप दिया जाता है। यह आपको अपने स्वयं के कोल्ड भंडारण के माध्यम से सुरक्षित निकासी पता सेट करने की अनुमति देता है, जिससे आपके सत्यापनकर्ता फंड के लिए जोखिम कम हो जाता है, भले ही कोई और आपके सत्यापनकर्ता हस्ताक्षर कुंजी को नियंत्रित करता हो। - -निकासी को सक्षम करने के लिए निकासी प्राधिकृतता को अपडेट करना एक आवश्यक कदम है\*। इस प्रक्रिया में निकासी कुंजियां उत्पन्न करने के लिए आपके नेमोनिक बीज वाक्यांश का उपयोग होता है। - -सुनिश्चित करें कि आप इस बीज वाक्यांश का सुरक्षित बैकअप बनाते हैं, नहीं तो आने वाले समय में आपके निकासी कुंजियां उत्पन्न करने में असमर्थ हो सकते हैं। - -\*जिन स्टेकर्स ने प्रारंभिक जमा के साथ निकासी का पता प्रदान किया है, उन्हें इसे सेट करने की आवश्यकता नहीं है। अपना सत्यापनकर्ता कैसे तैयार करें, इसके संबंध में सहायता के लिए अपने SaaS प्रदाता से संपर्क करें। - - - -अप्रैल 2023 में शंघाई/कैपेला अपग्रेड में स्टेकिंग निकासी लागू की गई थी। स्टेकर्स को एक निकासी पता प्रदान करने की आवश्यकता होती है (अगर प्रारंभिक जमा पर प्रदान नहीं किया गया है), और पुरस्कार भुगतान अपने आप नियमित अंतरालिक आधार पर कुछ दिनों में शुरू हो जाते हैं। - -सत्यापनकर्ता, सत्यापनकर्ता के रूप में भी पूरी तरह से बाहर निकल सकते हैं, जो निकासी के लिए उनके बचे हुए ETH शेष को अनलॉक कर देगा। जिन खातों ने निष्पादन निकासी पता प्रदान किया है और बाहर निकलने की प्रक्रिया पूरी कर ली है, उन्हें अगले सत्यापनकर्ता स्वीप के दौरान प्रदान किए गए निकासी पते पर उनकी पूरी शेष राशि प्राप्त होगी। - -स्टेकिंग निकासी पर अधिक जानकारी - - - -SaaS प्रदाता का उपयोग करके, आप अपने नोड का संचालन किसी और को सौंप रहे हैं। इसके साथ ही खराब नोड प्रदर्शन के जोखिम भी आता है, जो आपके नियंत्रण में नहीं होता है। अगर आपके सत्यापनकर्ता को स्लैश कर दिया जाता है, तो आपके सत्यापनकर्ता बैलेंस पर पेनल्टी लगाई जाएगी और सत्यापनकर्ता पूल से जबरन हटा दिया जाएगा। - -कटौती/बाहर निकलने की प्रक्रिया पूरी होने पर, ये धनराशि सत्यापनकर्ता को दिए गए निकासी पते पर स्थानांतरित कर दी जाएगी। इसे सक्षम करने के लिए निकासी पता प्रदान करना आवश्यक है। यह प्रारंभिक जमा पर प्रदान किया गया हो सकता है। अगर नहीं, तो निकासी पते की घोषणा करने वाले संदेश पर हस्ताक्षर करने के लिए सत्यापनकर्ता निकासी कुंजियों का इस्तेमाल करने की आवश्यकता होगी। अगर कोई निकासी पता प्रदान नहीं किया गया है, तो फंड तब तक लॉक रहेंगे, जब तक पता प्रदान नहीं किया जाता। - -सुरक्षा या बीमा विकल्पों के बारे में अधिक जानकारी और निकासी पता प्रदान करने के निर्देशों के लिए व्यक्तिगत SaaS प्रदाता से संपर्क करें। यदि आप अपने सत्यापनकर्ता सेटअप पर पूर्ण नियंत्रण रखना चाहते हैं, तो अपने ETH को अकेले दांव पर लगाने के तरीके के बारे में अधिक जानें। - - -## अग्रिम पठन {#further-reading} - -- [स्टेकिंग सेवाओं का मूल्यांकन](https://www.attestant.io/posts/evaluating-staking-services/) - _जिम मैकडॉनल्ड 2020_ diff --git a/src/content/translations/hi/staking/solo/index.md b/src/content/translations/hi/staking/solo/index.md deleted file mode 100644 index df1e7c1f19d..00000000000 --- a/src/content/translations/hi/staking/solo/index.md +++ /dev/null @@ -1,203 +0,0 @@ ---- -title: अकेले अपने ETH को दांव पर लगाएं -description: अपने ETH को अकेले दांव पर लगाना शुरू करने के तरीके का अवलोकन -lang: hi -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-solo.png -alt: लेस्ली राइनो अपने कंप्यूटर चिप पर। -sidebarDepth: 2 -summaryPoints: - - अपने सत्यापनकर्ता को ठीक से काम करने और ऑनलाइन रखने के लिए प्रोटोकॉल से सीधे अधिकतम पुरस्कार प्राप्त करें - - होम हार्डवेयर चलाएं और व्यक्तिगत रूप से इथेरियम नेटवर्क की सुरक्षा और विकेंद्रीकरण में जोड़ें - - विश्वास को हटा दें, और अपने धन की कुंजी का नियंत्रण कभी न छोड़ें ---- - -## सोलो स्टेकिंग क्या है? {#what-is-solo-staking} - -सोलो स्टेकिंग इंटरनेट से जुड़े एक [इथेरियम नोड को चलाने](/run-a-node/) और एक [सत्यापनकर्ता](#faq) को सक्रिय करने के लिए 32 ETH जमा करने का कार्य है, जिससे आपको नेटवर्क आम सहमति में सीधे भाग लेने की क्षमता मिलती है। - -**सोलो स्टेकिंग इथेरियम नेटवर्क के विकेंद्रीकरण को बढ़ाता है**, जिससे इथेरियम हमलों के खिलाफ अधिक सेंसरशिप-प्रतिरोधी और मजबूत हो जाता है। अन्य स्टेकिंग विधियां नेटवर्क को उसी तरह से मदद नहीं कर सकती हैं। इथेरियम को सुरक्षित करने के लिए सोलो स्टेकिंग सबसे अच्छा विकल्प है। - -एक इथेरियम नोड में एक निष्पादन परत (EL) क्लाइंट, साथ ही एक आम सहमति परत (CL) क्लाइंट दोनों होते हैं। ये क्लाइंट ऐसे सॉफ़्टवेयर हैं जो लेनदेन और ब्लॉक को सत्यापित करने, श्रृंखला के सही सिर को सत्यापित करने, एग्रीगेट एटेस्टेशन और ब्लॉक प्रस्तावित करने के लिए हस्ताक्षर कुंजी के एक वैध सेट के साथ एक साथ काम करते हैं। - -सोलो स्टेकर इन क्लाइंट्स को चलाने के लिए आवश्यक हार्डवेयर के संचालन के लिए जिम्मेदार हैं। इसके लिए एक समर्पित मशीन का उपयोग करने की अत्यधिक अनुशंसा की जाती है कि आप घर से काम करें-यह नेटवर्क के स्वास्थ्य के लिए बेहद फायदेमंद है। - -एक एकल हितधारक को अपने सत्यापनकर्ता को ठीक से काम करने और ऑनलाइन रखने के लिए प्रोटोकॉल से सीधे पुरस्कार प्राप्त होते हैं। - -## अकेले स्टेक क्यों करें? {#why-stake-solo} - -सोलो स्टेकिंग अधिक जिम्मेदारी के साथ आता है लेकिन आपको अपने फंड और स्टेकिंग सेटअप पर अधिकतम नियंत्रण प्रदान करता है। - - - - - - - -## सोलो स्टेकिंग से पहले विचाराधीन {#considerations-before-staking-solo} - -जितना हम चाहते हैं कि एकल सोलो स्टेकिंग सभी के लिए सुलभ और जोखिम मुक्त हो, यह वास्तविकता नहीं है। अपने ETH को अकेले दांव पर लगाने का विकल्प चुनने से पहले कुछ व्यावहारिक और गंभीर विचारों को ध्यान में रखना चाहिए। - - - -अपने स्वयं के नोड का संचालन करते समय आपको अपने द्वारा चुने गए सॉफ़्टवेयर का उपयोग करने के तरीके सीखने में कुछ समय बिताना चाहिए। इसमें प्रासंगिक दस्तावेज पढ़ना और उन डेवलपर टीमों के संचार चैनलों से अवगत होना शामिल है। - -जितना अधिक आप उस सॉफ़्टवेयर के बारे में समझते हैं जिसे आप चला रहे हैं और प्रूफ-ऑफ-स्टेक कैसे काम करता है, एक हितधारक के रूप में यह कम जोखिम भरा होगा और नोड ऑपरेटर के रूप में रास्ते में उत्पन्न होने वाली किसी भी समस्या को ठीक करना उतना ही आसान होगा। - - - -नोड सेटअप को कंप्यूटर के साथ काम करते समय एक उचित आराम स्तर की आवश्यकता होती है, हालांकि नए उपकरण समय के साथ इसे आसान बना रहे हैं। कमांड-लाइन इंटरफ़ेस की समझ सहायक है, लेकिन अब सख्ती से आवश्यक नहीं है। - -इसके लिए बहुत बुनियादी हार्डवेयर सेटअप की भी आवश्यकता होती है और न्यूनतम अनुशंसित विशिष्टताओं की कुछ समझ होती है। - - - -जैसे निजी कुंजियाँ आपके इथेरियम पते को सुरक्षित करती हैं, आपको विशेष रूप से अपने सत्यापनकर्ता के लिए कुंजियाँ उत्पन्न करने की आवश्यकता होगी। आपको यह समझना चाहिए कि किसी भी बीज वाक्यांशों या निजी कुंजियों को सुरक्षित कैसे रखा जाए।{' '} - -इथेरियम सुरक्षा और घोटाले की रोकथाम - - - -हार्डवेयर कभी-कभी विफल हो जाता है, नेटवर्क कनेक्शन त्रुटि देते हैं, और क्लाइंट सॉफ़्टवेयर को कभी-कभी अपग्रेड करने की आवश्यकता होती है। नोड रखरखाव अपरिहार्य है और कभी-कभी आपके ध्यान की आवश्यकता होगी। आप यह सुनिश्चित करना चाहेंगे कि आप किसी भी प्रत्याशित नेटवर्क अपग्रेड या अन्य महत्वपूर्ण क्लाइंट अपग्रेड से अवगत रहें। - - - -आपके पुरस्कार उस समय के समानुपाती होते हैं जब आपका सत्यापनकर्ता ऑनलाइन होता है और ठीक से सत्यापित होता है। डाउनटाइम एक ही समय में कितने अन्य सत्यापनकर्ता ऑफ़लाइन हैं, इसके अनुपात में दंड लगाता है, लेकिन इसके परिणामस्वरूप कटौती नहीं होती है। बैंडविड्थ भी मायने रखती है, क्योंकि समय पर सत्यापन नहीं मिलने पर पुरस्कार कम हो जाते हैं। आवश्यकताएं अलग-अलग होंगी, लेकिन कम से कम 10 Mb/s ऊपर और नीचे की सिफारिश की जाती है। - - - -ऑफ़लाइन होने के लिए निष्क्रियता दंड से अलग, दुर्भावनापूर्ण अपराधों के लिए कटौती एक अधिक गंभीर दंड है। एक समय में केवल एक मशीन पर अपनी कुंजियाँ लोड करके अल्पसंख्यक क्लाइंट चलाने से, कटौती का खतरा कम हो जाता है। कहा जा रहा है कि, सभी हितधारकों को कटौती के जोखिमों के बारे में पता होना चाहिए। - - सत्यापनकर्ता जीवनचक्र और कटौती कि अधिक जानकारी - - - - - -## यह कैसे काम करता है {#how-it-works} - - - -सक्रिय रहते हुए आप ETH पुरस्कार अर्जित करेंगे, जिसे समय-समय पर आपके निकासी पते में जमा किया जाएगा। - -यदि कभी वांछित हो, तो आप एक सत्यापनकर्ता के रूप में बाहर निकल सकते हैं जो ऑनलाइन होने की आवश्यकता को समाप्त करता है, और किसी भी अन्य पुरस्कार को रोकता है। फिर आपकी शेष राशि को उस निकासी पते पर वापस ले लिया जाएगा जिसे आप सेटअप के दौरान नामित करते हैं। - -[स्टेकिंग निकासी पर अधिक जानकारी](/staking/withdrawals/) - -## स्टेकिंग लॉन्चपैड पर आरंभ करें {#get-started-on-the-staking-launchpad} - -स्टेकिंग लॉन्चपैड एक ओपन सोर्स एप्लिकेशन है जो आपको एक हितधारक बनने में मदद करेगा। यह आपको अपने क्लाइंट्स को चुनने, अपनी कुंजियाँ उत्पन्न करने और अपने ETH को जमा करने के लिए मार्गदर्शन करेगा। यह सुनिश्चित करने के लिए एक चेकलिस्ट प्रदान की जाती है कि आपने अपने सत्यापनकर्ता को सुरक्षित रूप से सेट करने के लिए सब कुछ कवर किया है। - - - -## नोड और क्लाइंट सेटअप उपकरण के साथ जिसका विचार करना है {#node-tool-considerations} - -आपके ETH को एकल दांव अकेले स्टेकिंग पर लगाने में मदद करने के लिए उपकरणों और सेवाओं की बढ़ती संख्या है, लेकिन प्रत्येक अलग-अलग जोखिम और लाभ के साथ आते हैं। - -विशेषता संकेतकों का उपयोग नीचे उल्लेखनीय शक्तियों या कमजोरियों को इंगित करने के लिए किया जाता है जो एक सूचीबद्ध स्टेकिंग उपकरण में हो सकते हैं। इस अनुभाग का उपयोग एक संदर्भ के रूप में करें कि हम इन विशेषताओं को कैसे परिभाषित करते हैं, जबकि आप चुन रहे हैं कि आपकी स्टेकिंग यात्रा में मदद करने के लिए कौन से उपकरण हैं। - - - -## नोड और क्लाइंट सेटअप उपकरण का अन्वेषण करें {#node-and-client-tools} - -आपके सेटअप में आपकी मदद करने के लिए कई प्रकार के विकल्प उपलब्ध हैं। नीचे दिए गए उपकरणों के माध्यम से मार्गदर्शन करने में मदद करने के लिए उपरोक्त संकेतकों का इस्तेमाल करें। - - - -#### नोड उपकरण - - - -कृपया [अल्पसंख्यक क्लाइंट](/developers/docs/nodes-and-clients/client-diversity/) चुनने के महत्व पर ध्यान दें क्योंकि यह नेटवर्क की सुरक्षा में सुधार करता है, और आपके जोखिम को सीमित करता है। उपकरण जो आपको अल्पसंख्यक क्लाइंट सेटअप करने की अनुमति देते हैं, उन्हें "बहु-क्लाइंट" के रूप में निरूपित किया जाता है। - -#### कुंजी जनरेटर - -कुंजी उत्पन्न करने में मदद करने के लिए इन उपकरणों का उपयोग [स्टेकिंग डिपॉजिट CLI](https://github.com/ethereum/staking-deposit-cli/) के विकल्प के रूप में किया जा सकता है। - - - -क्या आपके पास स्टेकिंग टूल के बारे कोई सुझाव है जिसे हम भूल गए हैं? यह देखने के लिए हमारी [उत्पाद लिस्टिंग नीति](/contributing/adding-staking-products/) देखें कि क्या यह एक अच्छा फिट होगा और इसे समीक्षा के लिए सबमिट करें। - -## एकल स्टेकिंग गाइड का अन्वेषण करें {#staking-guides} - - - -## अक्सर पूछे जाने वाले सवाल {#faq} - -ये स्टेकिंग के बारे में कुछ सबसे सामान्य प्रश्न हैं जिनके बारे में जानना जरूरी है। - - - -सत्यापनकर्ता एक आभासी इकाई है जो इथेरियम पर रहता है और इथेरियम प्रोटोकॉल की आम सहमति में भाग लेता है। सत्यापनकर्ताओं को एक संतुलन, सार्वजनिक कुंजी और अन्य गुणों द्वारा दर्शाया जाता है। एक सत्यापनकर्ता क्लाइंट वह सॉफ्टवेयर है जो सत्यापनकर्ता की ओर से अपनी निजी कुंजी को पकड़कर और उपयोग करके कार्य करता है। एक एकल सत्यापनकर्ता क्लाइंट कई कुंजियों के जोड़े रख सकता है, कई सत्यापनकर्ताओं को नियंत्रित कर सकता है। - - - - -सत्यापनकर्ता से जुड़े प्रत्येक कुंजी-जोड़ी को सक्रिय होने के लिए ठीक 32 ETH की आवश्यकता होती है। कुंजियों के एक सेट में जमा अधिक ETH पुरस्कार क्षमता में वृद्धि नहीं करता है, क्योंकि प्रत्येक सत्यापनकर्ता 32 ETH के प्रभावी बैलेंस तक सीमित है। इसका मतलब यह है कि स्टेकिंग 32 ETH वृद्धि में की जाती है, प्रत्येक की कुंजी और बैलेंस का अपना सेट होता है। - -एकल सत्यापनकर्ता के लिए 32 ETH से अधिक जमा न करें। यह आपके पुरस्कारों में वृद्धि नहीं करेगा। यदि सत्यापनकर्ता के लिए निकासी पता सेट किया गया है, तो 32 ETH से अतिरिक्त धन अगले सत्यापनकर्ता स्वीप के दौरान स्वचालित रूप से इस पते पर वापस ले लिया जाएगा। - -यदि एकल स्टेकिंग आपके लिए बहुत अधिक मांग वाली लगती है, तो स्टेकिंग-सर्विस प्रदाता का उपयोग करने पर विचार करें, या यदि आप 32 ETH से कम के साथ काम कर रहे हैं, तो स्टेकिंग पूल देखें। - - - -जब नेटवर्क को ठीक से अंतिम रूप दिया जा रहा हो तो ऑफ़लाइन जाने से कटौती नहीं होगी। यदि आपका सत्यापनकर्ता किसी दिए गए युग (प्रत्येक 6.4 मिनट लंबे) के लिए सत्यापित करने के लिए उपलब्ध नहीं है, तो छोटे निष्क्रियता दंड लगाए जाते हैं, लेकिन यह कटौती से बहुत अलग है। ये दंड आपके द्वारा अर्जित पुरस्कार से थोड़ा कम हैं यदि सत्यापनकर्ता सत्यापित करने के लिए उपलब्ध था, और नुकसान को फिर से ऑनलाइन लगभग समान समय के साथ वापस अर्जित किया जा सकता है। - -ध्यान दें कि निष्क्रियता के लिए दंड इस बात के समानुपाती हैं कि एक ही समय में कितने सत्यापनकर्ता ऑफ़लाइन हैं। ऐसे मामलों में जहां नेटवर्क का एक बड़ा हिस्सा एक बार में ऑफ़लाइन है, इनमें से प्रत्येक सत्यापनकर्ता के लिए दंड एक एकल सत्यापनकर्ता अनुपलब्ध होने की तुलना में अधिक होगा। - -चरम मामलों में यदि नेटवर्क एक तिहाई से अधिक सत्यापनकर्ताओं के ऑफ़लाइन होने के परिणामस्वरूप अंतिम रूप देना बंद कर देता है, तो इन उपयोगकर्ताओं को एक द्विघात निष्क्रियता रिसाव के रूप में जाना जाता है, जो ऑफ़लाइन सत्यापनकर्ता खातों से ETH की घातीय निकासी है। यह नेटवर्क को अंततः निष्क्रिय सत्यापनकर्ताओं के ETH को जलाकर आत्म-उपचार करने में सक्षम बनाता है जब तक कि उनका बैलेंस 16 ETH तक नहीं पहुंच जाता है, जिस बिंदु पर उन्हें स्वचालित रूप से सत्यापनकर्ता पूल से निकाल दिया जाएगा। शेष ऑनलाइन सत्यापनकर्ताओं में अंततः 2/3 से अधिक नेटवर्क शामिल होगा, जो एक बार फिर श्रृंखला को अंतिम रूप देने के लिए आवश्यक सर्वोच्च बहुमत को संतुष्ट करेगा। - - - -संक्षेप में, इसकी कभी भी पूरी तरह से गारंटी नहीं दी जा सकती है, लेकिन यदि आप अच्छे विश्वास में कार्य करते हैं, एक अल्पसंख्यक क्लाइंट चलाते हैं और एक समय में केवल एक मशीन पर अपनी हस्ताक्षर कुंजी रखते हैं, तो कटौती होने का जोखिम लगभग शून्य है। - -केवल कुछ विशिष्ट तरीके हैं जिनके परिणामस्वरूप एक सत्यापनकर्ता को नेटवर्क से हटाया जा सकता है और बाहर निकाला जा सकता है। लेखन के समय, जो कटौती हुई है, वह विशेष रूप से अनावश्यक हार्डवेयर सेटअप का एक उत्पाद है जहां साइनिंग कुंजी एक बार में दो अलग-अलग मशीनों पर संग्रहीत की जाती हैं। यह अनजाने में आपकी कुंजियों से एक डबल वोट का परिणाम हो सकता है, जो एक कटौती निंदनीय अपराध है। - -एक सर्वोच्च बहुमत क्लाइंट (नेटवर्क के 2/3 से अधिक द्वारा उपयोग किए जाने वाले किसी भी क्लाइंट) को चलाने से इस क्लाइंट में बग होने की स्थिति में संभावित कटौती का जोखिम भी होता है जिसके परिणामस्वरूप चेन फोर्क होता है। इसके परिणामस्वरूप एक दोषपूर्ण फोर्क हो सकता है जिसे अंतिम रूप दिया जाता है। इच्छित श्रृंखला को वापस सही करने के लिए एक अंतिम ब्लॉक को पूर्ववत करने का प्रयास करके एक व्यापक वोट प्रस्तुत करने की आवश्यकता होगी। यह भी एक कटौती निंदनीय अपराध है और इसके बजाय अल्पसंख्यक क्लाइंट चलाकर इससे बचा जा सकता है। - -एक अल्पसंख्यक क्लाइंट में समकक्ष बग कभी भी अंतिम रूप नहीं देंगे और इस प्रकार कभी भी व्यापक वोट नहीं होगा, और इसके परिणामस्वरूप निष्क्रियता दंड होगा, कटौती नहीं। - - - - - -व्यक्तिगत क्लाइंट प्रदर्शन और यूज़र इंटरफ़ेस के संदर्भ में थोड़ा भिन्न हो सकते हैं, क्योंकि प्रत्येक को विभिन्न प्रोग्रामिंग भाषाओं का उपयोग करके विभिन्न टीमों द्वारा विकसित किया जाता है। कहा जा रहा है कि, उनमें से कोई भी "सर्वश्रेष्ठ" नहीं है। सभी उत्पादन ग्राहक सॉफ्टवेयर के उत्कृष्ट टुकड़े हैं, जो सभी ब्लॉकचेन के साथ सिंक करने और बातचीत करने के लिए एक ही मुख्य कार्य करते हैं। - -चूंकि सभी उत्पादन क्लाइंट एक ही बुनियादी कार्यक्षमता प्रदान करते हैं, इसलिए यह वास्तव में बहुत महत्वपूर्ण है कि आप एक अल्पसंख्यक क्लाइंट चुनें, जिसका अर्थ है कि कोई भी क्लाइंट जो वर्तमान में नेटवर्क पर अधिकांश सत्यापनकर्ताओं द्वारा उपयोग नहीं किया जा रहा है। यह उल्टा लग सकता है, लेकिन बहुमत या सर्वोच्च बहुमत क्लाइंट चलाने से आपको उस क्लाइंट में बग की स्थिति में कटौती का खतरा बढ़ जाता है। एक अल्पसंख्यक क्लाइंट चलाने से इन जोखिमों को काफी सीमित कर दिया जाता है। - -इस बारे में अधिक जानें कि क्लाइंट विविधता क्यों महत्वपूर्ण है - - - -यद्यपि एक वर्चुअल प्राइवेट सर्वर (VPS) का उपयोग होम हार्डवेयर के प्रतिस्थापन के रूप में किया जा सकता है, लेकिन आपके सत्यापनकर्ता क्लाइंट की भौतिक पहुंच और स्थान मायने रखता है। केंद्रीकृत क्लाउड समाधान जैसे Amazon Web Services या Digital Ocean नेटवर्क को केंद्रीकृत करने की कीमत पर हार्डवेयर प्राप्त करने और संचालित करने की सुविधा की अनुमति देते हैं। - -एकल केंद्रीकृत क्लाउड स्टोरेज समाधान पर चलने वाले अधिक सत्यापनकर्ता क्लाइंट, इन उपयोगकर्ताओं के लिए उतना ही खतरनाक हो जाता है। कोई भी घटना जो इन प्रदाताओं को ऑफ़लाइन ले जाती है, चाहे वह किसी हमले, विनियामक मांगों या सिर्फ बिजली/इंटरनेट आउटेज के कारण हो, इसके परिणामस्वरूप इस सर्वर पर निर्भर प्रत्येक सत्यापनकर्ता क्लाइंट एक ही समय में ऑफ़लाइन हो जाएगा। - -ऑफ़लाइन दंड इस बात के समानुपाती हैं कि एक ही समय में कितने अन्य ऑफ़लाइन हैं। VPS का उपयोग करने से जोखिम बढ़ जाता है कि ऑफ़लाइन दंड अधिक गंभीर होगा, और आउटेज काफी बड़ा होने की स्थिति में द्विघात लीक या कटौती का खतरा बढ़ जाता है। अपने जोखिम को कम करने के लिए, और नेटवर्क के लिए जोखिम कम करने के लिए, उपयोगकर्ताओं को अपने स्वयं के हार्डवेयर को प्राप्त करने और संचालित करने के लिए दृढ़ता से प्रोत्साहित किया जाता है। - - - - -बीकन चेन से किसी भी तरह की निकासी के लिए निकासी क्रेडेंशियल्स सेट करने की आवश्यकता होती है। - -नए हितधारकों ने इसे कुंजी-सृजन और जमा के समय निर्धारित किया। मौजूदा हितधारक जिन्होंने पहले से ही इसे सेट नहीं किया है, वे इस कार्यक्षमता का समर्थन करने के लिए अपनी कुंजियों को अपग्रेड कर सकते हैं। - -निकासी क्रेडेंशियल सेट हो जाने के बाद, इनाम भुगतान (प्रारंभिक 32 से अधिक संचित ETH) समय-समय पर निकासी पते पर स्वचालित रूप से वितरित किए जाएंगे। - -अपना पूरा बैलेंस वापस पाने और अनलॉक करने के लिए आपको अपने सत्यापनकर्ता से बाहर निकलने की प्रक्रिया भी पूरी करनी होगी। - -स्टेकिंग निकासी पर अधिक जानकारी - - -## अग्रिम पठन {#further-reading} - -- [इथेरियम की क्लाइंट विविधता समस्या](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ -- [क्लाइंट विविधता की मदद करना](https://www.attestant.io/posts/helping-client-diversity/) - _जिम मैकडॉनल्ड 2022_ -- [क्लाइंट विविधता इथेरियम की आम सहमति परत पर](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ -- [कैसे: इथेरियम सत्यापनकर्ता हार्डवेयर के लिए खरीदारी करें](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ -- [चरण दर चरण: इथेरियम 2.0 टेस्टनेट में कैसे शामिल हों](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _बुट्टा_ -- [Eth2 कटौती रोकथाम युक्तियाँ](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _रोल जॉर्डन 2020_ diff --git a/src/content/translations/hi/staking/withdrawals/index.md b/src/content/translations/hi/staking/withdrawals/index.md deleted file mode 100644 index b941d6bc630..00000000000 --- a/src/content/translations/hi/staking/withdrawals/index.md +++ /dev/null @@ -1,218 +0,0 @@ ---- -title: स्टेकिंग निकालना -description: पेज संक्षेप में बताता है कि पुश निकासी क्या हैं, वे कैसे काम करते हैं, और हितधारकों को अपने पुरस्कार प्राप्त करने के लिए क्या करने की आवश्यकता है -lang: hi -template: staking -image: ../../../../../assets/staking/leslie-withdrawal.png -alt: लेस्ली राइनो अपने स्टेकिंग पुरस्कारों के साथ -sidebarDepth: 2 -summaryPoints: - - शंघाई/कैपेला अपग्रेड ने इथेरियम पर स्टेकिंग निकासी को सक्षम किया - - सत्यापनकर्ता ऑपरेटरों को सक्षम करने के लिए एक निकासी पता प्रदान करना होगा - - पुरस्कार स्वचालित रूप से हर कुछ दिनों में वितरित किए जाते हैं - - सत्यापनकर्ता जो पूरी तरह से बाहर निकलते हैं, उन्हें अपना शेष बैलेंस प्राप्त होगा ---- - - -12 अप्रैल, 2023 को हुए शंघाई/कैपेला अपग्रेड के साथ निकासी को सक्षम किया गया था। शंघाई/कैपेला के बारे में अधिक जानकारी - - -**स्टेकिंग निकासी** इथेरियम की कन्सेन्सस सहमति परत (बीकन चेन) पर एक सत्यापनकर्ता खाते से ETH के हस्तांतरण का संदर्भ लें, निष्पादन परत तक जहां इसके साथ लेनदेन किया जा सकता है। - -32 ETH से अधिक की **अतिरिक्त शेष राशि का इनाम भुगतान** स्वचालित रूप से और नियमित रूप से उपयोगकर्ता द्वारा प्रदान किए जाने के बाद प्रत्येक सत्यापनकर्ता से जुड़े निकासी पते पर भेजा जाएगा। उपयोगकर्ता अपने पूर्ण सत्यापनकर्ता बैलेंस को अनलॉक करते हुए, **पूरी तरह से स्टेकिंग से बाहर निकल सकते हैं।** - -## स्टेकिंग पुरस्कार {#staking-rewards} - -इनाम भुगतान स्वचालित रूप से सक्रिय सत्यापनकर्ता खातों के लिए संसाधित होते हैं, जिसमें अधिकतम 32 ETH की प्रभावी शेष राशि होती है। - -पुरस्कारों के माध्यम से अर्जित 32 ETH से ऊपर की कोई भी शेष राशि वास्तव में मूलधन में योगदान नहीं करती है, या नेटवर्क पर इस सत्यापनकर्ता के वजन में वृद्धि नहीं करती है, और इस प्रकार हर कुछ दिनों में इनाम भुगतान के रूप में स्वचालित रूप से वापस ले ली जाती है। एक बार वापसी पता प्रदान करने के अलावा, इन पुरस्कारों को सत्यापनकर्ता ऑपरेटर से किसी भी कार्रवाई की आवश्यकता नहीं है। यह सब कन्सेन्सस सहमति परत पर शुरू किया जाता है, इस प्रकार किसी भी कदम पर कोई गैस (लेनदेन शुल्क) की आवश्यकता नहीं होती है। - -### हम यहां कैसे पहुंचे? {#how-did-we-get-here} - -पिछले कुछ वर्षों में इथेरियम ने ऊर्जा-गहन खनन के बजाय ETH द्वारा सुरक्षित नेटवर्क में संक्रमण करने वाले कई नेटवर्क उन्नयन किए हैं। इथेरियम पर आम सहमति में भाग लेना अब "स्टेकिंग" के रूप में जाना जाता है, क्योंकि प्रतिभागियों ने स्वेच्छा से ETH को लॉक कर दिया है, जिससे इसे नेटवर्क में भाग लेने की क्षमता के लिए "दांव" पर रखा गया है। नियमों का पालन करने वाले यूजर्स को पुरस्कार दिया जाएगा, जबकि ठगी की कोशिश करने वालों को दंडित किया जा सकता है। - -नवंबर 2020 में स्टेकिंग डिपॉजिट कॉन्ट्रैक्ट की शुरुआत के बाद से, कुछ बहादुर इथेरियम अग्रदूतों ने स्वेच्छा से "सत्यापनकर्ताओं" को सक्रिय करने के लिए धन को लॉक कर दिया है, विशेष खाते जिनके पास नेटवर्क नियमों का पालन करते हुए ब्लॉक को औपचारिक रूप से सत्यापित करने और प्रस्तावित करने का अधिकार है। - -शंघाई/कैपेला अपग्रेड से पहले, आप अपने दांव वाले ETH का उपयोग या एक्सेस नहीं कर सकते थे। लेकिन अब, आप अपने पुरस्कारों को स्वचालित रूप से एक चुने हुए खाते में प्राप्त करने के लिए ऑप्ट-इन कर सकते हैं, और आप जब चाहें अपने दांव वाले ETH को वापस भी ले सकते हैं। - -### मैं कैसे तैयारी करूं? {#how-do-i-prepare} - - - -### ज़रूरी सूचनाएं {#important-notices} - -निकासी पता प्रदान करना किसी भी सत्यापनकर्ता खाते के लिए एक आवश्यक कदम है, इससे पहले कि वह ETH को अपनी शेष राशि से वापस लेने के लिए पात्र हो। - - - प्रत्येक सत्यापनकर्ता खाते को केवल एक एकल निकासी पता, एक बार सौंपा जा सकता है। एक बार जब कोई पता चुना जाता है और आम सहमति परत में प्रस्तुत किया जाता है, तो इसे पूर्ववत नहीं किया जा सकता है या फिर से बदला नहीं जा सकता है। सबमिट करने से पहले प्रदान किए गए पते के स्वामित्व और सटीकता की दोबारा जांच करें। - - -इस बीच इसे प्रदान नहीं करने के लिए आपके धन को कोई खतरा नहीं है, यह मानते हुए कि आपका नेमोनिक / बीज वाक्यांश ऑफ़लाइन सुरक्षित रहा है, और किसी भी तरह से समझौता नहीं किया गया है। निकासी क्रेडेंशियल्स जोड़ने में विफलता केवल ETH को सत्यापनकर्ता खाते में लॉक कर देगी क्योंकि यह तब तक रहा है जब तक कि निकासी पता प्रदान नहीं किया जाता है। - -## स्टेकिंग से पूरी तरह से बाहर निकलना {#exiting-staking-entirely} - -_किसी भी_ धन को सत्यापनकर्ता खाते की शेष राशि से स्थानांतरित करने से पहले निकासी पता प्रदान करना आवश्यक है। - -पूरी तरह से स्टैकिंग से बाहर निकलने और अपना पूरा बैलेंस वापस लेने के इच्छुक उपयोगकर्ताओं को सत्यापनकर्ता कुंजी के साथ एक "स्वैच्छिक निकास" संदेश पर हस्ताक्षर और प्रसारण करना होगा, जो स्टैकिंग से बाहर निकलने की प्रक्रिया शुरू करेगा। यह आपके सत्यापनकर्ता क्लाइंट के साथ किया जाता है और आपके आम सहमति नोड में प्रस्तुत किया जाता है, और गैस की आवश्यकता नहीं होती है। - -एक सत्यापनकर्ता के स्टेकिंग से बाहर निकलने की प्रक्रिया में परिवर्तनीय मात्रा में समय लगता है, यह इस बात पर निर्भर करता है कि एक ही समय में कितने अन्य बाहर निकल रहे हैं। एक बार पूरा होने के बाद, यह खाता अब सत्यापनकर्ता नेटवर्क कर्तव्यों को पूरा करने के लिए जिम्मेदार नहीं होगा, अब पुरस्कारों के लिए योग्य नहीं है, और अब उनका ETH "दांव पर" नहीं है। इस समय खाते को पूरी तरह से "निकासी योग्य" के रूप में चिह्नित किया जाएगा। - -एक बार जब किसी खाते को "निकासी योग्य" के रूप में चिह्नित किया जाता है, और निकासी क्रेडेंशियल प्रदान किए जाते हैं, तो उपयोगकर्ता को प्रतीक्षा के अलावा और कुछ करने की आवश्यकता नहीं होती है। पात्र निकास निधियों के लिए ब्लॉक प्रस्तावकों द्वारा खातों को स्वचालित रूप से और लगातार स्वीप किया जाता है, और आपके खाते की शेष राशि को अगले स्वीप के दौरान पूर्ण रूप से (जिसे "पूर्ण निकासी" के रूप में भी जाना जाता है) स्थानांतरित कर दिया जाएगा। - -## स्टेकिंग निकासी कब सक्षम की जाती है? {#when} - -स्टेकिंग निकासी लाइव हैं! कैपेला अपग्रेड के हिस्से के रूप में निकासी कार्यक्षमता सक्षम की गई थी जो 12 अप्रैल, 2023 को । - -शंघाई/कैपेला अपग्रेड ने पहले से दांव पर लगाए गए ETH को नियमित इथेरियम खातों में पुनः प्राप्त करने में सक्षम बनाया। इसने स्टेकिंग लिक्विडिटी तरलता पर लूप को बंद कर दिया, और इथेरियम को एक स्थायी, स्केलेबल, सुरक्षित विकेन्द्रीकृत पारिस्थितिकी तंत्र के निर्माण की दिशा में अपनी यात्रा पर एक कदम करीब लाया। - -- [इथेरियम इतिहास के बारे में अधिक जानकारी](/history/) -- [इथेरियम रोडमैप के बारे में अधिक जानकारी](/roadmap/) - -## निकासी भुगतान कैसे काम करते हैं? {#how-do-withdrawals-work} - -दिया गया सत्यापनकर्ता निकासी के लिए पात्र है या नहीं, यह सत्यापनकर्ता खाते की स्थिति द्वारा ही निर्धारित किया जाता है। किसी भी समय यह निर्धारित करने के लिए किसी भी उपयोगकर्ता इनपुट की आवश्यकता नहीं होती है कि किसी खाते में निकासी शुरू की जानी चाहिए या नहीं - पूरी प्रक्रिया एक निरंतर लूप पर आम सहमति परत द्वारा स्वचालित रूप से की जाती है। - -### More of a visual learner? {#visual-learner} - -Finematics द्वारा स्टेकिंग निकासी करने वाले इथेरियम की इस व्याख्या को देखें: - - - -### सत्यापनकर्ता "स्वीपिंग" {#validator-sweeping} - -जब एक सत्यापनकर्ता अगले ब्लॉक का प्रस्ताव करने के लिए निर्धारित होता है, तो उसे 16 योग्य निकासी की निकासी कतार बनाने की आवश्यकता होती है। यह मूल रूप से सत्यापनकर्ता सूचकांक 0 से शुरू करके किया जाता है, यह निर्धारित करके कि प्रोटोकॉल के नियमों के अनुसार इस खाते के लिए कोई योग्य निकासी है या नहीं, और यदि है तो इसे कतार में जोड़ दिया जाता है। निम्नलिखित ब्लॉक को प्रस्तावित करने के लिए सेट किया गया सत्यापनकर्ता अनिश्चित काल तक प्रगति करते हुए वहीं से शुरू करेगा जहां आखिरी ब्लॉक छोड़ा गया था। - - -एक एनालॉग घड़ी के बारे में सोचें। घड़ी की सुई घंटे की ओर इशारा करती है, एक दिशा में आगे बढ़ती है, कोई भी घंटा नहीं छोड़ती है, और अंततः अंतिम संख्या तक पहुंचने के बाद फिर से शुरुआत में आ जाती है।

-अब 1 से 12 के बजाय, कल्पना करें कि घड़ी में 0 से N है (सत्यापनकर्ता खातों की कुल संख्या जो कभी भी आम सहमति परत पर पंजीकृत की गई है, जनवरी 2023 तक 500,000 से अधिक)।

-घड़ी की सुई अगले सत्यापनकर्ता को इंगित करती है जिसे पात्र निकासी के लिए जांचने की आवश्यकता है। यह 0 से शुरू होती है, और किसी भी खाते को छोड़े बिना चारों ओर आगे बढ़ती है। जब अंतिम सत्यापनकर्ता तक पहुंच जाता है, तो चक्र शुरुआत से फिर से जारी रहता है। -
- -#### निकासी के लिए खाते की जाँच करना {#checking-an-account-for-withdrawals} - -जबकि एक प्रस्तावक संभावित निकासी के लिए सत्यापनकर्ताओं के माध्यम से व्यापक है, जांच किए जा रहे प्रत्येक सत्यापनकर्ता का मूल्यांकन प्रश्नों की एक छोटी श्रृंखला के साथ किया जाता है ताकि यह निर्धारित किया जा सके कि क्या वापसी शुरू की जानी चाहिए, और यदि हां, तो कितना ETH वापस लिया जाना चाहिए। - -1. **क्या निकासी पता प्रदान किया गया है?** यदि कोई निकासी पता प्रदान नहीं किया गया है, तो खाता छोड़ दिया जाता है और कोई निकासी शुरू नहीं की जाती है। -2. **क्या सत्यापनकर्ता बाहर निकल जाता है और वापस लेने योग्य होता है?** यदि सत्यापनकर्ता पूरी तरह से बाहर निकल गया है, और हम उस अवधि में पहुंच गए हैं जहां उनके खाते को "वापस लेने योग्य" माना जाता है, तो एक पूर्ण निकासी संसाधित की जाएगी। यह पूरी शेष राशि को निकासी पते पर स्थानांतरित कर देगा। -3. **क्या प्रभावी बैलेंस 32 पर अधिकतम है?** यदि खाते में निकासी क्रेडेंशियल्स हैं, पूरी तरह से बाहर नहीं निकले हैं, और 32 प्रतीक्षा से ऊपर के पुरस्कार हैं, तो आंशिक वापसी संसाधित की जाएगी जो उपयोगकर्ता के निकासी पते पर केवल 32 से ऊपर के पुरस्कारों को स्थानांतरित करती है। - -सत्यापनकर्ता के जीवन चक्र के दौरान सत्यापनकर्ता ऑपरेटरों द्वारा की जाने वाली केवल दो क्रियाएं हैं जो इस प्रवाह को सीधे प्रभावित करती हैं: - -- निकासी के किसी भी रूप को सक्षम करने के लिए निकासी क्रेडेंशियल प्रदान करें -- नेटवर्क से बाहर निकलें, जो पूर्ण वापसी को ट्रिगर करेगा - -### गैस मुक्त {#gas-free} - -निकासी करने का यह दृष्टिकोण हितधारकों को ETH की एक विशेष राशि को वापस लेने का अनुरोध करते हुए मैन्युअल रूप से लेनदेन प्रस्तुत करने की आवश्यकता से बचाता है। इसका मतलब है कि किसी **गैस (लेनदेन शुल्क) की आवश्यकता नहीं है**, और निकासी भी मौजूदा निष्पादन परत ब्लॉक स्पेस के लिए प्रतिस्पर्धा नहीं करती है। - -### मुझे कितनी बार मेरे स्टेकिंग पुरस्कार मिलेंगे? {#how-soon} - -एक एकल ब्लॉक में अधिकतम 16 निकासी की प्रक्रिया की जा सकती है। उस दर पर, प्रति दिन 115,200 सत्यापनकर्ता निकासी संसाधित की जा सकती है (यह मानते हुए कि कोई स्लॉट छूटा नहीं है)। जैसा कि ऊपर उल्लेख किया गया है, योग्य निकासी के बिना सत्यापनकर्ताओं को छोड़ दिया जाएगा, जिससे स्वीप खत्म करने का समय कम हो जाएगा। - -इस गणना का विस्तार करते हुए, हम अनुमान लगा सकते हैं कि दी गई संख्या में निकासी को संसाधित करने में कितना समय लगेगा: - - - -| निकासी की संख्या | पूरा होने का समय | -| :--------------: | :--------------: | -| 400,000 | 3.5 दिन | -| 500,000 | 4.3 दिन | -| 600,000 | 5.2 दिन | -| 700,000 | 6.1 दिन | -| 800,000 | 7.0 दिन | - - - -जैसा कि आप देखते हैं कि यह धीमा हो जाता है क्योंकि नेटवर्क पर अधिक सत्यापनकर्ता होते हैं। छूटे हुए स्लॉट में वृद्धि इसे आनुपातिक रूप से धीमा कर सकती है, लेकिन यह आम तौर पर संभावित परिणामों के धीमे पक्ष का प्रतिनिधित्व करेगा। - -## अक्सर पूछे जाने वाले सवाल {#faq} - - -नहीं, निकासी क्रेडेंशियल प्रदान करने की प्रक्रिया एक बार की प्रक्रिया है, और एक बार जमा करने के बाद इसे बदला नहीं जा सकता है। - - - -निष्पादन परत निकासी पता सेट करके उस सत्यापनकर्ता के लिए निकासी क्रेडेंशियल्स स्थायी रूप से बदल दिए गए हैं। इसका मतलब है कि पुराने क्रेडेंशियल्स अब काम नहीं करेंगे, और नए क्रेडेंशियल्स एक निष्पादन परत खाते में हैं। - -निकासी पते या तो एक स्मार्ट अनुबंध (इसके कोड द्वारा नियंत्रित), या एक बाहरी स्वामित्व वाला खाता (EOA, इसकी निजी कुंजी द्वारा नियंत्रित) हो सकते हैं। वर्तमान में इन खातों के पास आम सहमति परत पर एक संदेश को वापस संवाद करने का कोई तरीका नहीं है जो सत्यापनकर्ता क्रेडेंशियल्स के परिवर्तन का संकेत देगा, और इस कार्यक्षमता को जोड़ने से प्रोटोकॉल में अनावश्यक जटिलता जुड़ जाएगी। - -किसी विशेष सत्यापनकर्ता के लिए निकासी पते को बदलने के विकल्प के रूप में, उपयोगकर्ता अपने निकासी पते के रूप में एक स्मार्ट अनुबंध सेट करना चुन सकते हैं जो कुंजी रोटेटिंग को संभाल सकता है, जैसे कि एक सेफ। जो उपयोगकर्ता अपने स्वयं के EOA में अपने फंड सेट करते हैं, वे अपने सभी दांव लगाए गए फंडों को वापस लेने के लिए पूर्ण निकासी कर सकते हैं, और फिर नए क्रेडेंशियल्स का उपयोग करके फिर से हिस्सेदारी कर सकते हैं। - - - - -यदि आप स्टेकिंग पूल का हिस्सा हैं या स्टेकिंग टोकन रखते हैं, तो आपको स्टेकिंग निकासी को कैसे प्रबंधित किया जाता है, इसके बारे में अधिक जानकारी के लिए अपने प्रदाता से जांच करनी चाहिए, क्योंकि प्रत्येक सेवा अलग तरह से संचालित होती है। - -सामान्य तौर पर, उपयोगकर्ताओं को अपने अंतर्निहित स्टेक ETH को पुनः प्राप्त करने के लिए स्वतंत्र होना चाहिए, या यह बदलना चाहिए कि वे किस स्टेकिंग प्रदाता का उपयोग करते हैं। यदि कोई विशेष पूल बहुत बड़ा हो रहा है, तो धनराशि को बाहर निकाला जा सकता है, पुनःस्टेक किया जा सकता और एक छोटे प्रदाता के साथ फिर से दांव पर लगाया जा सकता है। या, यदि आपने पर्याप्त ETH जमा किया है तो आप घर से दांव लगा सकते हैं। - - - - -हां, जब तक आपके सत्यापनकर्ता ने निकासी पता प्रदान किया है। शुरुआत में किसी भी निकासी को सक्षम करने के लिए इसे एक बार प्रदान किया जाना चाहिए, फिर प्रत्येक सत्यापनकर्ता स्वीप के साथ हर कुछ दिनों में इनाम भुगतान स्वचालित रूप से ट्रिगर हो जाएगा। - - - - -नहीं, यदि आपका सत्यापनकर्ता अभी भी नेटवर्क पर सक्रिय है, तो पूर्ण वापसी स्वचालित रूप से नहीं होगी। इसके लिए मैन्युअल रूप से स्वैच्छिक निकास शुरू करने की आवश्यकता होती है। - -एक बार जब एक सत्यापनकर्ता ने बाहर निकलने की प्रक्रिया पूरी कर ली है, और यह मानते हुए कि खाते में निकासी क्रेडेंशियल्स हैं, तो शेष राशि अगले सत्यापनकर्ता स्वीप के दौरान वापस ले ली जाएगी। - - - - -निकासी को स्वचालित रूप से पुश के लिए डिज़ाइन किया गया है, किसी भी ETH को स्थानांतरित करना जो सक्रिय रूप से हिस्सेदारी में योगदान नहीं दे रहा है। इसमें उन खातों के लिए पूर्ण शेष राशि शामिल है जिन्होंने बाहर निकलने की प्रक्रिया पूरी कर ली है। - -ETH की विशिष्ट मात्रा को वापस लेने के लिए मैन्युअल रूप से अनुरोध करना संभव नहीं है। - - - - -सत्यापनकर्ता ऑपरेटरों को स्टेकिंग लॉन्चपैड निकासी पृष्ठ पर जाने की सिफारिश की जाती है जहां आपको निकासी के लिए अपने सत्यापनकर्ता को तैयार करने के बारे में अधिक जानकारी मिलेगी। तैयार, घटनाओं का समय, और निकासी कैसे कार्य करती है, इसके बारे में अधिक जानकारी। - -पहले टेस्टनेट पर अपने सेटअप को आज़माने के लिए, आरंभ करने के लिए Goerli टेस्टनेट स्टेकिंग लॉन्चपैड पर जाएं। - - - - -नहीं। एक बार जब एक सत्यापनकर्ता बाहर निकल जाता है और उसकी पूरी शेष राशि वापस ले ली जाती है, तो उस सत्यापनकर्ता को जमा किया गया कोई भी अतिरिक्त धन स्वचालित रूप से अगले सत्यापनकर्ता स्वीप के दौरान निकासी पते पर स्थानांतरित कर दिया जाएगा। ETH को फिर से दांव पर लगाने के लिए, एक नया सत्यापनकर्ता सक्रिय होना चाहिए। - - -## अग्रिम पठन {#further-reading} - -- [स्टेकिंग लांच पैड निकासी](https://launchpad.ethereum.org/withdrawals) -- [EIP-4895: संचालन के रूप में बीकन चेन पुश निकासी](https://eips.ethereum.org/EIPS/eip-4895) -- [इथेरियम जटिलताएं - शंघाई](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) -- [PEEPanEIP #94: पोटुज़ और हसियाओ-वेई वांग के साथ स्टेक ETH निकासी (परीक्षण)](https://www.youtube.com/watch?v=G8UstwmGtyE) -- [PEEPanEIP#68: EIP-4895: एलेक्स स्टोक्स के साथ संचालन के रूप में बीकन चेन पुश निकासी](https://www.youtube.com/watch?v=CcL9RJBljUs) -- [सत्यापनकर्ता प्रभावी शेष को समझना](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/hr/roadmap/beacon-chain/index.md b/src/content/translations/hr/roadmap/beacon-chain/index.md deleted file mode 100644 index 4342818257e..00000000000 --- a/src/content/translations/hr/roadmap/beacon-chain/index.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: Beacon Chain -description: Saznajte vieše o nadogradnji Beacon Chain kojom je implementiran dokaz uloga u Ethereumu. -lang: hr -template: upgrade -image: ../../../../../assets/upgrades/core.png -summaryPoint1: Nadogradnja Beacon Chain implementirala je dokaz uloga u ekosustav Ethereuma. -summaryPoint2: Nadogradnja je objedinjena s izvornim lancem dokaza rada Ethereuma u rujnu 2022. -summaryPoint3: Nadogradnja Beacon Chain uvela je logiku koncenzusa i protokol blokiranja nagađanja koji sada pruža Ethereum. ---- - - - Nadogradnja Beacon Chain krenula je u implementaciju 1. prosinca 2020., dok je formalizacija dokaza uloga kao Ethereumovog mehanizma konsenzusa izvršena nadogradnjom The Merge 15. rujna 2022. - - -## Što je Beacon Chain? {#what-is-the-beacon-chain} - -Beacon Chain bio je naziv izvornog lanca blokova dokaza uloga koji je pokrenut u 2020. Nadogradnja je izrađena prije implementacije glavne mreže Ethereuma kako bi osigurao da je logika konsenzusa dokaza uloga točna i održiva. Ova nadogradnja aktivna je zajedno s izvornim dokazom rada Ethereuma. Isključivanje i uključivanje dokaza rada na Ethereumu zahtijevalo je upućivanje nadogradnje Beacon Chain da prihvati transakcije iz izvornog Ethereumovog lanca, da ih objedini u blokove i organizira u lance blokova koristeći se mehanizmom konsenzusa dokaza uloga. Istodobno, izvorni korisnici Ethereuma isključili su rudarenje, propagiranje bloka i logiku konsenzusa i predali to nadogradnji Beacon Chain. Taj je događaj poznat pod nazivom [The Merge (Spajanje)](/roadmap/merge/). Nako što se spajanje dogodilo, više nisu postojala dva lanca blokova – postojao je samo jedan lanac dokaza uloga Ethereuma. - -## Što radi Beacon Chain? {#what-does-the-beacon-chain-do} - -Beacon Chain predstavlja glavnu knjigu računa koji su proveli i koordinirali mrežu Ethereumovih [dionika](/staking/) prije nogo što su ti dionici započeli provoditi prave Ethereumove transakcije. Nadogradnja nije obrađivala transakcije ili interakcije pametnog ugovora. - -Nadogradnja uvodi procesor konsenzusa (ili „sloj konsenzusa”) koji je preuzeo mjesto rudarenja dokaza rada u Ethereumu i uveo mnoge značajne promjene. - -Beacon Chain bila je temeljna komponenta [sadašnjeg sigurnog, ekološkog i prilagodljivog Ethereuma](/roadmap/vision/). - -## Utjecaj nadogradnje Beacon Chain {#beacon-chain-features} - -### Osnove ulaganja {#introducing-staking} - -Beacon Chain uveo je u Ethereum [dokaz uloga](/developers/docs/consensus-mechanisms/pos/). Tako je zaštićen Ethereum, a validatori imaju mogućnost veće zarade ETH-a. U praksi, ulaganje znači ulaganje ETH-a kako bi se aktivirao softver validatora. Kao ulagač pokrećete softver koji izrađuje i potvrđuje nove blokove u lancu. - -Ulaganje ima sličnu ulogu kao i [rudarenje](/developers/docs/mining/), ali uz mnoge razlike. Rudarenje zahtijeva veća prethodna ulaganja u obliku snažnog hardvera i potrošnje energije i rezultira proporcionalnom zaradom kroz proizvodnju i naprednom centralizacijom. Rudarenje nije imalo zahtjev da se sredstva blokiraju kao pokriće te protokol tako nije mogao kazniti loše sudionike nakon napada. - -Prijelazom na dokaz uloga Ethereum je postao sigurniji i manje centraliziran u odnosu na dokaz rada. Što više ljudi sudjeluje u mreži, to će ona biti decentraliziranija i sigurnija od napada. - - - Ako želite postati validator i pomoći u zaštiti Ethereuma, ovdje saznajte više o ulaganju. - - -### Postavljanje razdjeljivanja {#setting-up-for-sharding} - -Od trenutka kada se Beacon Chain objedinio s izvornom glavnom mrežom Ethereuma, Ethereumova zajednica počela je tražiti mogućnost prilagođavanja mreže. - -Prednost dokaza uloga predstavlja dostupnost registra svih odobrenih izdavača blokova zajedno s ETH ulogom. Registar postavlja temelj mogućnosti pouzdanog dijeljenja i osvajanja određenih mrežnih odgovornosti. - -Razlika je i u odgovornost u odnosu na dokaz rada gdje rudari nisu imali obvezu prema mreži i mogli su zaustaviti rudarenje i trajno i trenutačno isključiti svoje čvorove bez ikakvih posljedica. Također, nema registra poznatih, blokiranih predlagača te pouzdanog načina sigurne podjele mrežnih odgovornosti. - -[Više o dijeljenju](/roadmap/danksharding/) - -## Odnos između nadogradnji {#relationship-between-upgrades} - -Sve nadogradnje Ethereuma donekle su međusobno povezane. Dakle, ponovimo ukratko kako Beacon Chain utječe na ostale nadogradnje. - -### Beacon Chain i spajanje {#merge-and-beacon-chain} - -U početku je Beacon Chain postojao odvojeno od glavne mreže Ethereuma. Godine 2022. konačno su objedinjeni. - - - Spajanje - - -### Djelići i Beacon Chain {#shards-and-beacon-chain} - -Razdjeljivanje se sigurno može uvesti u Ethereumov ekosustav samo ako je uspostavljen mehanizam konsenzusa dokaza uloga. Beacon Chain uveo je ulaganje objedinjeno s glavnom mrežom i tako pripremio teren za razdjeljivanje koje će pomoći u daljnjem prilagođavanju Ethereuma. - - - Lanci djelića - - -## Daljnje čitanje - -- [Više o budućim nadogradnjama Ethereuma](/roadmap/vision) -- [Više o dokazu uloga](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/hr/roadmap/merge/index.md b/src/content/translations/hr/roadmap/merge/index.md deleted file mode 100644 index 2a4efbf9c0d..00000000000 --- a/src/content/translations/hr/roadmap/merge/index.md +++ /dev/null @@ -1,224 +0,0 @@ ---- -title: Spajanje -description: Saznajte više o spajanju – kada je glavna mreža Ethereuma usvojila dokaz uloga. -lang: hr -template: upgrade -image: ../../../../../assets/upgrades/merge.png -summaryPoint1: Glavna mreža Ethereuma upotrebljava dokaz uloga, međutim, to nije uvijek bilo tako. -summaryPoint2: Nadogradnja izvornog mehanizma dokaza rada na dokaz uloga nazvana je The Merge (Spajanje). -summaryPoint3: Spajanjem je spojena izvorna glavna mreža Ethereumu sa zasebnim lancem blokova dokaza uloga (poznat pod nazivom Beacon Chain) u jedan lanac. -summaryPoint4: Spajanjem je potrošnja energije Ethereuma smanjena za približno 99,95 %. ---- - - - Spajanje je provedeno 15. rujna 2022. Dovršeni prijelaz Ethereuma na konsenzus dokaza uloga službeno je zamijenio dokaz rada i smanjio potrošnju energije za približno 99,95 %. - - -## Što je spajanje? {#what-is-the-merge} - -Spajanje predstavlja objedinjavanje izvornog izvršnog sloja Ethereuma (glavne mreže koja je postojala još od [geneze](/history/#frontier)) s novim slojem konsenzusa dokaza uloga pod nazivom Beacon Chain. Time se uklanja potreba za energetski intenzivnim rudarenjem i umjesto toga mreža se osigurava korištenjem ulagačkog ETH-a. To je bio dosta značajan korak vizije Ethereuma kao prilagodljivijeg, sigurnijeg i održivijeg. - - - -U početku je [Beacon Chain](/roadmap/beacon-chain/) bio odvojen od [glavne mreže](/glossary/#mainnet). Glavna mreža Ethereuma, sa svim svojim računima, stanjima, pametnim ugovorima i stanjima lanaca blokova, ostaje zaštićena [dokazom rada](/developers/docs/consensus-mechanisms/pow/), čak i za vrijeme paralelnog rada značajke Beacon Chain i njegova [dokaza uloga](/developers/docs/consensus-mechanisms/pos/). Spajanjem su ta dva sustava konačno objedinjena, pri čemu je dokaz rada trajno zamijenjen dokazom uloga. - -Zamislite Ethereum kao svemirski brod koji je izbačen u orbitu prije nogo što je bio spreman za zvjezdano putovanje. Uz Beacon Chain zajednica je izgradila novi stroj i ojačala njegov trup. Nakon iscrpnog testiranja, odlučeno je da je vrijeme za zamjenu starog stroja u radu novim. Time je uveden nov i učinkovitiji motor u postojeći brod koji mu omogućuje dodatne svjetlosne godine i osvajanje novih svjetova. - -## Spajanje s Mainnetom {#merging-with-mainnet} - -Dokaz rada štitio je glavnu mrežu Ethereuma od njegove geneze sve do spajanja. Time je omogućeno da se u srpnju 2015. uvede lanac blokova Ethereuma kojim se svi mi koristimo, sa svim poznatim značajkama – transakcijama, pametnim ugovorima, računima i drugim. - -Tijekom postojanja Ethereuma programeri su se pripremali za mogući prijelaz s koncepta dokaza rada na koncept dokaza uloga. Dana 1. prosinca 2020. Beacon Chain je formiran kao lanac blokova odvojen od glavne mreže u paralelnom radu. - -Beacon Chain nije obrađivao transakcije glavne mreže. Umjesto toga konsenzus je postizao agregiranjem aktivnih validatora i njihovih stanja računa. Nakon iscrpnog testiranja postalo je izvjesno da je vrijeme da Beacon Chain postiže konsenzus temeljem stvarnih podataka. Nakon spajanja Beacon Chain postao je procesor za konsenzus svih mrežnih podataka, uključujući transakcije izvršnog sloja i bilance računa. - -Spajanje je predstavljalo službeni prijelaz na Beacon Chain kao procesor proizvodnje bloka. Rudarenje više nije predstavljalo način kako proizvoditi valjane blokove. Umjesto toga, validatori dokaza uloga preuzeli su tu ulogu i sada su odgovorni za obradu valjanosti svih transakcija i predlaganje blokova. - -Spajanjem nisu izgubljeni povijesni podaci. Kako se glavna mreža objedinila s Beacon Chainom, tako je migrirana i cjelokupna povijest transakcija Ethereuma. - - -Prijelaz na dokaz uloga promijenio je način izdavanja Ethera. Saznajte više o izdavanju Ethera prije i nakon Spajanja. - - -### Korisnici i vlasnici {#users-holders} - -**Spajanjem nije promijenjeno ništa za vlasnike ili korisnike.** - -_Ponavljamo_: kao korisnik ili vlasnik ETH-a ili bilo kojeg drugog digitalnog novčanog sredstva na Ethereumu i kao dionik koji ne radi putem čvora, **zbog spajanja ne morate poduzeti nikakve mjere sa svojim sredstvima ili novčanikom u računu.** ETH je uvijek ETH. Ne postoji „stari ETH” ili „novi ETH” ili „ETH1” ili „ETH2”. Novčanici funkcioniraju na isti način poslije spajanja kao i prije – ako vam netko kaže drugačije, to je prevarant. - -Unatoč trajne zamjene dokaza rada i prijelaza na dokaz uloga, cjelokupna povijest Ethereuma od samih početaka ostala je nepromijenjen i potpuna. Sva sredstva u novčaniku prije spajanja i dalje su dostupna i nakon spajanja. **Zbog nadogradnje vi ne morate ništa učiniti.** - -[Više o sigurnosti Ethereuma](/security/#eth2-token-scam) - -### Rukovatelji čvora i programeri decentralizirane aplikacije (dapp) {#node-operators-dapp-developers} - - - -Ključne radnje sadržavaju: - -1. Zajedničko pokretanje konsenzus klijenta i izvršnog klijenta; kranje točke treće strane za preuzimanje podataka izvršavanja više ne funkcioniraju nakon spajanja. -2. Provjerite autentičnost klijenta za izvršavanje i konsenzus klijenta dijeljenom JWR tajnom kako bi sigurno mogli komunicirati. -3. Postavite adresu „primatelja naknade” kako biste primili svoju zarađenu napojnicu/MEV za naknadu za transakciju. - -Ako ne dovršite gornje dvije radnje, vaš će se čvor vidjeti kao „izvan mreže” sve dok oba sloja nisu sinkronizirana i dok im nije potvrđena autentičnost. - -Iako nije postavljen „primatelj naknade”, validator i dalje može raditi na uobičajeni način, ali vi nećete primiti napojnice za naknade ili MEV koje biste inače zaradili u blokovima koje vaš validator predloži. - - - - -Sve do spajanja bio je dovoljan samo klijent za izvršenje (npr. Geth, Erigon, Besu ili Nethermind) za primanje, odgovarajuću potvrdu i propagiranje blokova o kojima se nagađalo u mreži. Nakon spajanja potvrđivanje transakcija koje su dio izvršnog korisnog iznosa sada ovisi o valjanosti „bloka konsenzusa” u kojem se nalaze. - -Kao rezultat, čvor Ethereum sada zahtijeva i klijent za izvršenje i klijent za konsenzus. Ta dva klijenta zajednički funkcioniraju služeći se API-jem novog procesora. API procesora zahtijeva provjeru autentičnosti JWT tajnom koja se daje oboma klijentima glede sigurne komunikacije. - -Ključne radnje sadržavaju: - -- Instalaciju klijenta za konsenzus uz klijenta za izvršenje. -- Potvrdu autentičnosti klijenta za izvršenje i klijenta za konsenzus dijeljenom JWT tajnom kako bi mogli sigurno međusobno komunicirati. - -Ako ne dovršite gornje radnje, vaš će se čvor vidjeti kao „izvan mreže” sve dok oba sloja nisu sinkronizirana i dok im nije potvrđena autentičnost. - - - - - -Spajanje je izvršilo promjene konsenzusa koje su uključivale promjene: - -- strukture bloka -- vremena utora/bloka -- operacijskog programa -- izvora slučajne izvedbe u lancu -- koncept sigurnih blokova za dodavanje (safe head) i odobrenih blokova (finalized). - -Više informacija potražite u objavi Tima Beikoa: [How The Merge Impacts Ethereum’s Application Layer](https://blog.ethereum.org/2021/11/29/how-the-merge-impacts-app-layer/). - - -## Spajanje i potrošnja energije {#merge-and-energy} - -Spajanje predstavlja kraj ere dokaza rada u Ethereumu i početak održivijeg, ekološki prikladnijeg Ethereuma. Pad potrošnje energije Ethereuma procijenjen je na 99,95 %, čime je Ethereum postao zeleni lanac čvorova. Saznajte više o [potrošnji energije Ethereuma](/energy-consumption/). - -## Spajanje i skaliranje {#merge-and-scaling} - -Spajanje je postavilo temelje za nove nadogradnje skalabilnosti koje nisu bile moguće u konceptu dokaza rada. Tako se Ethereum približio potpunoj sigurnosti i održivosti koja je opisana u [Viziji Ethereuma](/roadmap/vision/). - -## Zablude o spajanju {#misconceptions} - - -Postoje dvije vrste čvorova u Ethereumu: čvorovi koji mogu predložiti blokove i čvorovi koji to ne mogu. - -Čvorovi koji mogu predložiti blokove samo su mali dio cjelokupne količine blokova u Ethereumu. Ta kategorija uključuje čvorove za rudarenje po konceptu dokaza rada (proof-of-work – PoW) i čvorove validatora po konceptu dokaza uloga (proof-of-stake – PoS). Ta kategorija zahtijeva predaju ekonomskih resursa (kao GPU hash snaga u dokazu rada ili ulogi ETH-a u dokazu uloga) u zamjenu za mogućnost povremenih prijedloga sljedećeg bloka i zarade nagrada protokola. - -Ostali čvorovi mreže (većina) ne moraju predati ekonomske resurse veće od uobičajenog korisničkog računala s 1 do 2 TB dostupnog prostora za pohranu i internetske veze. Ti čvorovi ne predlažu blokove, ali i dalje imaju kritičnu ulogu u zaštiti mreže jer praćenjem novih blokova i provjerom njihove valjanosti u skladu s pravilma konsenzusa mreže prilikom prispjeća održavaju sve predlagače blokova odgovornim. Ako je blok valjan, čvor nastavlja propagiranje u mreži. Ako blok nije valjan zbog nekog razloga, softver čvora ga odbacuje kao nevaljanog i zaustavlja njegovo propagiranje. - -Svatko može pokrenuti proizvodnju čvora bez bloka s bilo kojim mehanizmom konsenzusa (dokaz rada ili dokaz uloga) i preporučuje se svim korisnicima ako imaju tu mogućnost. Rad čvora od velike je vrijednosti za Ethereum i donosi dodatne koristi vlasnikau čvora u vidu poboljšane sigurnosti, zaštite privatnosti i otpornosti na cenzuru. - -Mogućnost da svaka osoba pokrene vlastiti čvor temeljni je čimbenik održavanja decentralizirane mreže Ethereuma. - -[Više o pokretanju vlastitog čvora](/run-a-node/) - - - - -Troškovi goriva proizvod su mrežnog zahtjeva povezanog s kapacitetom mreže. Spajanje je zamijenilo koncept dokaza rada prijelazom na dokaz uloga za konsenzuse. Međutim, ono nije značajno promijenilo parametre koji imaju izravan utjecaj na kapacitet ili propusnost mreže. - -S [planom razvoja objedinjavanja transakcija](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698) napori su usmjereni na skaliranje aktivnosti korisnika na [sloju 2](/layer-2/), dok je sloj 1 glavne mreže omogućen kao zaštićen, decentralizirani sloj odlučivanja optimiziran za pohranu podataka objedinjavanja transakcija kako bi cijena objedinjenih transakcija eksponencijalno padala. Da bi se to moglo provesti, prijelaz na dokaz uloga kritični je preduvjet. [Više o gorivu i troškovima.](/developers/docs/gas/) - - - -Brzina transakcije može se mjeriti na nekoliko načina, uključujući vrijeme do uključivanja u blok i vrijeme do finalizacije. Oba se neznatno mijenjaju, ali ne u mjeri koju će korisnici primijetiti. - -Povijesno, u konceptu dokaza rada cilj je bio dobiti novi blok približno svakih 13,3 sekundi. U konceptu dokaza uloga utori se pojavljuju točno svakih 12 sekundi, a što predstavlja mogućnost za validatora da objavi blok. Većina utora imaju blokove, ali to ne i svi (npr. validator je van mreže). U konceptu dokaza uloga blokovi se proizvode približno 10 % češće nego u konceptu dokaza rada. To je doista mala promjena i nije vjerojatno da će je korisnici primijetiti. - -Koncept dokaza uloga uveo je potpuno novi koncept konačnosti transakcije. U konceptu dokaza rada mogućnost reverzije bloka eksponencijalno se usložnjava sa svakim rudarenim blokom u transakciji, međutim ona nikada ne nestaje. U konceptu dokaza uloga blokovi su objedinjeni u epohe (razdoblje od 6,4 minuta sadrži 32 mogućnosti za blokove) za koje glasuju validatori. Kada se epoha završi, validatori glasuju smatra li se epoha „opravdanom”. Ako se validatori slože da je epoha opravdana, epoha se finalizira u sljedećoj epohi. Poništavanje finaliziranih transakcija ekonomski je neodrživo jer bi zahtijevalo prikupljanje i spaljivanje više od trećine ukupunih uloga ETH-a. - - - - -Uloženi ETH i nagrade za ulaganje i dalje su zaključani bez mogućnosti povlačenja. Povlačenje je planirano za sljedeću šangajsku nadogradnju. - - - -To se možda čini u suprotnosti s gore navedom informacijom da povlačenje sredstava nije moguće do šangajske nadogradnje, međutim, validatori IMAJU trenutačni pristup nagradama/MEV-ovima zarađenim tijekom predlaganja bloka. - -Protokol izdaje ETH kao nagradu validatorima za njihov doprinos u konsenzusu. Sloj konsenzusa računa se kao novoizdani ETH, pri čemu validator ima jedinstvenu adresu koja čuva uložene ETH-ove i nagrade za protokole. Taj je ETH blokiran do šangajske nadogradnje. - -ETH na sloju za izvršavanje računa se odvojeno od sloja konsenzusa. Kada korisnici provode transakcije na glavnoj mreži Ethereuma, ETH-om se mora platiti gorivo, uključujući i napojnicu za validatora. ETH je već na sloju za izvršavanje. Protokol ga NIJE izdao kao novog i trenutačno je dostupan validatoru (uz pretpostavku da je registrirana adresa „primatelja naknade” u klijentskom softveru). - - - -Nakon što se šangajskom nadogradnjom omogući povlačenje sredstava, svi će se validatori potaknuti da povuku svoju bilansu ulaganja iznad 32 ETH jer su ta sredstva blokirana i ne računaju se u prihod. Ovisno o kamatnoj stopi na godišnjoj razini (APR, koja je određena ukupnim ulogom ETH-a), validatorima se može savjetovati da napuste svoje validatore i zatraže svoju cjelokupnu bilancu ili možda ulože još više, iskorištavajući svoje nagrade, kako bi više zaradili. - -Važno upozorenje, protokol ograničava stopu potpunog izlaska validatora, pa tako izaći može samo šest validatora po Epohi (svakih 6,4 min, 1350 na dan, odnosno oko 43.200 ETH dnevno na 10 milijuna uloženih ETH-ova). To se ograničenje prilagođava ovisno o ukupnom ulogu ETH-a i sprječava masovno odlivanje sredstava. Nadalje, sprječava moguće napadače koji žele iskoristiti svoj ulog za kaznene napade i izvući svoju cjelokupnu bilancu ulaganja u istoj Epohi prije nego što protokol može nametnuti kaznu. - -Kamatna stopa na godišnjoj razini namjerno je dinamična kako bi dopustila tržištu ulagača da odluče koliko žele zaraditi za pomoć u zaštiti mreže. Kada je omogućeno povlačenje sredstava, ako je stopa preniska, validatori izlaze po stopi koju je ograničio protokol. Postupno će to povećati kamatnu stopu na godišnjoj razini za sve one koji ostanu i privući će nove ulagače i one koji se žele vratiti. - - -## Što se dogodilo s „Eth2”? {#eth2} - -Pojam „Eth2” je povučen. Nakoj spajanja „Eth1” i „Eth2” u jedan lanac, više nema potrebe za razdvajanjem dviju Ethereumovih mreža – postoji samo jedan Ethereum. - -Kako bi se izbjegla zabuna, zajednica je ažurila te pojmove: - -- „Eth1” sada je „sloj za izvršavanje” koji obrađuje transakcije i izvršavanja. -- „Eth2” sada je „sloj konsenzusa” koji obrađuje konsenzuse dokaza uloga. - -Te terminološke promjene mijenjaju samo naziv i ne utječu na ciljeve i plan razvoja Ethereuma. - -[Saznajte više o promjeni naziva „Eth2”](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) - -## Odnos između nadogradnji {#relationship-between-upgrades} - -Sve nadogradnje Ethereum donekle su međusobno povezane. Ponovimo kako se spajanje odnosi na druge nadogradnje. - -### Spajanje i Beacon Chain {#merge-and-beacon-chain} - -Spajanje predstavlja formalno usvajanje nadogradnje Beacon Chain kao novog sloja konsenzusa za izvorni sloj za izvršavanje glavne mreže. Od spajanja validatori se dodjeljuju kako bi zaštitili glavnu mrežu Ethereuma, a rudarenje temeljem [dokaza rada](/developers/docs/consensus-mechanisms/pow/) više nije valjan način proizvodnje bloka. - -Blokove sada predlažu validirajući čvorovi s ulogom ETH-a u zamjenu za pravo da sudjeluju u konsenzusu. Te nadogradnje postavljaju temelj za buduće nadogradnje prilagođavanja, uključujući razdjeljivanje. - - - Beacon Chain - - -### Spajanje i šangajska nadogradnja {#merge-and-shanghai} - -Kako bi se pojednostavila i maksimizirala usredotočenost na uspješan prijelaz na koncept dokaza uloga, nadogradnja spajanja nije sadržavala određene, očekivane značajke, kao mogućnost povlačenja uloženog ETH-a. Šangajska nadogradnja planira se nakon spajanja kako bi omogućila ulagačima da povuku sredstva. - -Pratite [problem sa šangajskom nadogradnjom na GitHubu](https://github.com/ethereum/pm/issues/450) ili [blog o razvoju i istraživanju EF-a](https://blog.ethereum.org/category/research-and-development/). Za znatiželjne, pogledajte prezentaciju [Što se događa nakon spajanja](https://youtu.be/7ggwLccuN5s?t=101) koju je održao Vitalik u travnju 2021. na događaju ETHGlobal. - -### Spajanje i razdjeljivanje {#merge-and-data-sharding} - -Izvorni je plan bio razvijati razdjeljivanje prije spajanja kako bi se riješio problem prilagođavanja. Međutim, uz procvat [rješenja za skaliranje sloja 2](/layer-2/), prioritet se prebacio na zamjenu koncepta dokaza rada u dokaz uloga. - -Planovi za razdjeljivanje brzo su se razvijali. Međutim, uzimajući u obzir rast i uspjeh tehnologija sloja 2 za skaliranje izvršavanja transakcija, planovi za razdjeljivanje prešli su u traženje najoptimalnijeg načina diobe opterećenja pohrane komprimiranih podataka iz poziva svih pametnih ugovora uz mogućnost eksponencijalnog rasta mrežnog kapaciteta. To ne bi bilo moguće bez prethodnog prelaska na koncept dokaza uloga. - - - Dijeljenje - - -## Daljnje čitanje {#further-reading} - - - - diff --git a/src/content/translations/hu/community/support/index.md b/src/content/translations/hu/community/support/index.md deleted file mode 100644 index 199dbebf118..00000000000 --- a/src/content/translations/hu/community/support/index.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -title: Ethereum támogatás -description: Kapjon támogatást az Ethereum-ökoszisztémában. -lang: hu ---- - -# Ethereum támogatás {#support} - -## Hivatalos Ethereum ügyfélszolgálat {#official-support} - -Egy hivatalos Ethereum ügyfélszolgálatot keres? Tudnia kell, hogy az Ethereum decentralizált. Nincs központi szervezet, entitás vagy ember, aki birtokolná az Ethereumot, ezért nincs hivatalos ügyfélszolgálat vagy támogatói csapat sem. - -Ezt azért is fontos megérteni, mert bárki jelentkezik Önnél, mint hivatalos ügyfélszolgálatos, az csak csaló lehet! A csalók ellen a legjobb védekezés az ismeretek szerzése és a biztonság komolyan vétele. - - - Ethereum-biztonság és átverés elleni védelem - - - - Ismerje meg az Ethereum alapjait - - -Amellett, hogy nincs hivatalos ügyfélszolgálat, számtalan csoport, közösség és projekt szeretne Önnek segíteni, illetve rengeteg hasznos információ és forrás áll rendelkezésre ezeken az oldalakon. További kérdése van? Csatlakozzon az [ethereum.org Discord](/discord/) csatornához, és megpróbálunk segíteni. - -## Tárca támogatás {#wallet-support} - -Gondjai vannak a tárcájával? A legtöbb tárcának van dedikált támogatói csapata, akik segítenek: - -- [MetaMask](https://metamask.zendesk.com/hc/) -- [Argent](https://support.argent.xyz/hc/) -- [MyEtherWallet](https://help.myetherwallet.com/) - -_Ez nem egy teljes lista. Segítségre van szüksége, hogy megtalálja az adott tárca támogatói csapatát? Csatlakozzon az [ethereum.org Discord](https://discord.gg/ethereum-org) csatornához, és megpróbálunk segíteni._ - -Ethereum-tárcát keres? [Fedezze fel az Ethereum-tárcák teljes választékát](/wallets/find-wallet/). - -## Dapp-fejlesztés {#building-support} - -A fejlesztés tele van kihívásokkal. Alább található néhány fejlesztőket támogató platform, tapasztalt Ethereum-fejlesztőkkel. - -- [Alchemy University](https://university.alchemy.com/#starter_code) -- [CryptoDevs discord](https://discord.gg/Z9TA39m8Yu) -- [Ethereum StackExchange](https://ethereum.stackexchange.com/) -- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) -- [Web3 University](https://www.web3.university/) -- [LearnWeb3](https://discord.com/invite/learnweb3) - -Emellett dokumentációkat és fejlesztői útmutatókat is talál az [Ethereum fejlesztői források](/developers/) szekcióban. - -### Eszközök {#dapp-tooling} - -A kérdése egy bizonyos eszközhöz, projekthez vagy könyvtárhoz kapcsolódik? A legtöbb projekt működtet csevegőszervereket vagy fórumokat ilyen célból. - -Néhány népszerű példa: - -- [Solidity](https://gitter.im/ethereum/solidity/) -- [ethers.js](https://discord.gg/6jyGVDK6Jx) -- [web3.js](https://discord.gg/GsABYQu4sC) -- [Hardhat](https://discord.gg/xtrMGhmbfZ) -- [Truffle](https://discord.gg/8uKcsccEYE) -- [Alchemy](http://alchemy.com/discord) -- [Tenderly](https://discord.gg/fBvDJYR) - -## Csomópontok futtatása {#node-support} - -Ha Ön csomópontot vagy validátort futtat, a következő közösségek segítenek belevágni. - -- [EthStaker discord](https://discord.io/ethstaker) -- [EthStaker reddit](https://www.reddit.com/r/ethstaker) - -Az Ethereum klienseket építő csapatok is dedikált, nyilvános fórumokkal rendelkeznek, ahol kérdezni lehet. - -### Végrehajtási kliensek {#execution-clients} - -- [Geth](https://discord.gg/FqDzupGyYf) -- [Nethermind](https://discord.gg/YJx3pm8z5C) -- [Besu](https://discord.gg/p8djYngzKN) -- [Erigon](https://github.com/ledgerwatch/erigon/issues) - -### Konszenzusos kliensek {#consensus-clients} - -- [Prysm](https://discord.gg/prysmaticlabs) -- [Nimbus](https://discord.gg/nSmEH3qgFv) -- [Lighthouse](https://discord.gg/cyAszAh) -- [Teku](https://discord.gg/7hPv2T6) -- [Lodestar](https://discord.gg/aMxzVcr) - -Tudja meg, hogy [futtathat csomópontot](/developers/docs/nodes-and-clients/run-a-node/). - -## Gyakran ismételt kérdések {#faq} - -#### Rossz tárcába küldtem az ETH-t {#wrong-wallet} - -Az Ethereumon küldött tranzakció visszavonhatatlan. Sajnos, ha rossz pénztárcába küldte az ETH-t, nincs mód arra, hogy visszaszerezze ezeket az összegeket. Nincs központi szervezet, entitás vagy személy, aki birtokolja az Ethereumot, tehát nincs, aki visszafordítaná a tranzakciót. Ezért létfontosságú, hogy mindig ellenőrizze a tranzakcióit, mielőtt elküldi azokat. - -#### Hogyan juthatok hozzá az Ethereum-ajándékhoz? {#giveaway-scam} - -Az Ethereum ajándékok csalások, amik el akarják lopni az Ön ETH-ját. Ne essen kísértésbe az olyan ajánlatoktól, amelyek túl szépnek tűnnek ahhoz, hogy igazak legyenek – ha az ETH-t egy ajándékcímre küldi, akkor nem kap ajándékot, és nem tudja visszaszerezni a pénzét. - -[Bővebben a csalás elkerüléséről](/security/#common-scams) - -#### A tranzakcióm beragadt {#stuck-transaction} - -A tranzakciók az Ethereumon néha várakoznak, ha a tranzakciós díj alacsonyabb, mint amit épp megkíván a hálózati kereslet. Számos tárcában lehetősége van újraküldeni ugyanazt a tranzakciót egy magasabb díjjal, hogy az át tudjon menni. Alternatívaként leállíthatja a függőben lévő tételt úgy, hogy egy tranzakciót küld a címéről és ugyanazt a Nonce-t használja, mint a függőben lévő tételnél. - -[Hogyan lehet felgyorsítani vagy leállítani a függő tranzakciókat a MetaMaskon](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) - -[Hogyan lehet leállítani a függőben lévő Ethereum-tranzakciókat](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) - -#### Hogyan lehet Ethereumot bányászni? {#mining-ethereum} - -Az Ethereum bányászat többé nem elérhető. Az Ethereum áttért a proof-of-work mechanizmusról a proof-of-stake-re, így a bányászat nem létezik. Ehelyett validátorok vannak. A validátorok letétbe helyeznek ETH-t és ezért jutalmakat kapnak, miközben biztosítják a hálózatot. - -#### Hogyan válhat letétbe helyezővé/validátorrá? {#become-validator} - -A validátornak 32 ETH-t kell letétbe helyezni az Ethereum letéti szerződésben és fel kell állítani egy csomópontot. További információk [a letétbehelyezésről szóló oldalon](/staking) és a[letéti launchpaden](https://launchpad.ethereum.org/) érhetők el. diff --git a/src/content/translations/hu/dao/index.md b/src/content/translations/hu/dao/index.md deleted file mode 100644 index e5d05700901..00000000000 --- a/src/content/translations/hu/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: Decentralizált autonóm szervezetek (DAO-k) -description: Az Ethereumon működő DAO-k áttekintése -lang: hu -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: Egy javaslatra történő DAO-szavazat ábrázolása. -summaryPoint1: Tagtulajdonú közösségek központi vezetők nélkül. -summaryPoint2: Biztonságos módja az interneten történő, ismeretlenekkel való együttműködésnek. -summaryPoint3: Egy biztonságos hely, ahol pénzét adott célokra fordíthatja. ---- - -## Mik azok a DAO-k? {#what-are-daos} - -A DAO egy kollektívan tulajdonolt, blokklánc által irányított szervezet, amely egy közös cél megvalósítására törekszik. - -A DAO-k lehetőséget biztosítanak számunkra, hogy hozzánk hasonló elhivatottságú emberekkel dolgozzunk a világ minden tájáról anélkül, hogy egy központi vezetőre bíznánk a pénzügyi és operatív működtetést. Nincs olyan vezérigazgató, aki a kedve szerint költhetné el az alapokat, vagy olyan pénzügyi vezető, aki manipulálhatná a könyvelést. Helyette a kódba épített, blokkláncon alapuló szabályok határozzák meg, hogyan működik a szervezet és kerülnek elköltésre az alapok. - -Beépített pénztárakkal rendelkeznek, amelyekhez a csoport jóváhagyása nélkül senkinek sincs jogosultsága hozzáférni. A döntéseket szavazatokkal és javaslatokkal hozzák meg, így biztosítva, hogy mindenki hangot adhasson véleményének a szervezeten belül és minden nyomon követhető legyen a blokkláncon. - -## Miért van szükségünk DAO-kra? {#why-dao} - -Egy pénzügyi forrásokat és pénzt igénylő szervezet indítása nagyon sok bizalmat igényel azon emberek vonatkozásában, akikkel együtt dolgozunk. Azonban nehéz megbízni valakiben, akivel csak az interneten keresztül léptünk kapcsolatba. A DAO-k esetében nem kell megbíznia a csoport többi tagjában, kizárólag a DAO kódjában, mely 100%-ban átlátható és bárki által ellenőrizhető. - -Ennek köszönhetően rengeteg lehetőség nyílik meg a globális együttműködésre és koordinációra. - -### Összehasonlítás {#dao-comparison} - -| DAO | Egy hagyományos szervezet | -| --------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | -| Általában lapos és teljesen demokratizált. | Rendszerint hierarchikus. | -| Bármely változtatás végrehajtásához a tagok szavazata szükséges. | A felépítésen alapszik, egyetlen tagtól is követelhető változás, vagy szavazásra is bocsátható a kérdés. | -| A szavazatokat összeszámolják, a szavazás eredményét pedig automatikusan végrehajtják egy megbízott közvetítő nélkül. | Ha megengedett a szavazás, akkor a szavazatokat a szervezeten belül összeszámolják, a szavazás eredményét pedig manuálisan végrehajtják. | -| A szolgáltatásokat automatikusan, decentralizált módon kezelik (például a humanitárius források elosztása). | Emberi közbenjárást igényel, vagy egy központilag irányított automata mechanizmus működteti, mely visszaélésre adhat lehetőséget. | -| Minden tevékenység átlátható és teljesen nyilvános. | A tevékenység jellemzően nem nyilvános, így korlátozott betekintést ad a nyilvánosság számára. | - -### Példák a DAO-ra {#dao-examples} - -Annak érdekében, hogy még érthetőbbé tegyük a DAO-k működését, az alábbiakban néhány példán keresztül bemutatjuk, mire is használhatók: - -- Adománygyűjtés – adományokat fogadhat a világ minden tájáról, és szavazás alapján eldönthető, hogy azokat mire fordítsák. -- Közös tulajdonlás – fizikai vagy digitális eszközöket szerezhet be, melyek felhasználásáról a tagok szavaznak. -- Kockázati tőke és támogatás – létrehozhat egy kockázatitőke-alapot, mely befektetési tőkét gyűjt, és szavazással válaszhatók ki a támogatandó vállalkozások. A visszaérkező összegeket pedig később szétoszthatják a DAO tagjai között. - -## Hogyan működnek a DAO-k? {#how-daos-work} - -A DAO szíve az az okosszerződés, mely meghatározza a szervezet szabályait és kezeli a csoport vagyonát. Amint a szerződés életbe lép az Ethereumon, csakis szavazás útján lehet módosítani a szabályokat. Ha valaki olyat próbál tenni, ami nem szerepel a szabályokban és a programlogikában, az meghiúsul. Mivel a társaság pénzügyeit is az okosszerződés határozza meg, ezért a csoport jóváhagyása nélkül senki sem költheti el a pénzösszegeket. Tehát a DAO-nak nincs szüksége központi hatóságra. Ehelyett a csoport közösen hoz döntéseket, a kifizetések pedig automatikusan jóváhagyásra kerülnek a szavazás eredményeként. - -Mindez azért lehetséges, mert az okosszerződést nem lehet önkényesen megváltoztatni vagy meghamisítani, amikor már életbe lépett az Ethereumon. Senki sem tudja módosítani a programkódot (a DAO szabályait) anélkül, hogy mások azt észre ne vennék, mivel minden nyilvános. - - - Többet az okos szerződésekről - - -## Az Ethereum és a DAO-k {#ethereum-and-daos} - -Az Ethereum tökéletes alapot szolgáltat a DAO-knak számtalan okból kifolyólag: - -- Az Ethereum saját konszenzusmechanizmusa kellőképpen kiterjedt és megalapozott ahhoz, hogy a szervezetek megbízzanak a hálózatban. -- Az okosszerződés tartalmát nem lehet módosítani, miután életbe lépett, még a tulajdonosok módosíthatják azt. Ennek következtében a DAO a meghatározott szabályok alapján fog működni. -- Az okosszerződések képesek pénzeszközöket küldeni és fogadni. Enélkül szükség lenne egy megbízható közvetítőre, aki a csoport eszközeit kezelné. -- Az Ethereum közössége bizonyítottan együttműködő, nem versenyszellemű, így a bevált gyakorlatok és a támogatórendszerek gyorsan kialakulnak. - -## A DAO irányítása {#dao-governance} - -A DAO irányításakor számtalan szempontot figyelembe kell venni, mint például a szavazás menete és a javaslatok kezelése. - -### Delegáció {#governance-delegation} - -A delegáció vagy felhatalmazás a DAO verziója a képviselőalapú demokráciának. A tokenek birtokosai átadják szavazati jogaikat olyan felhasználóknak, akik vállalják, hogy felügyelik a protokollt és tájékozódnak az ügyeket illetően. - -#### Egy híres példa {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) – az ENS-szel rendelkezők delegálhatják szavazati jogaikat a közösség elkötelezett tagjainak, hogy képviseljék őket. - -### Automatikus tranzakciókon alapuló irányítás {#governance-example} - -Számos DAO-nál a tranzakciók automatikusan végrehajtódnak, ha a tagok határozatképes létszámban megszavazzák azt. - -#### Egy híres példa {#governance-example} - -[Nouns](https://nouns.wtf) – A Nouns DAO-ban a tranzakciók automatikusan végbemennek, ha határozatképes létszám van jelen, a szavazatok többsége igenlő, illetve az alapítók nem vétózzák meg. - -### Több aláírásos irányítás {#governance-example} - -Miközben a DAO-knak ezernyi szavazattal rendelkező tagja lehet, az alapítványoknál lehetséges, hogy 5–20 aktív közösségi tag tartozik egy tárcához, akik az alapítvány megbízottjai, a személyazonosságukat pedig általában ismeri a közösség (doxxed). A szavazás után a kijelölt aláírók hajtják végre a közösség akaratát. - -## A DAO törvényei {#dao-laws} - -1977-ben Wyoming megalkotta a korlátolt felelősségű társasági formát, mely megvédi a vállalkozót és behatárolja a felelősségi körüket. Nemrég elsőként hozták létre a DAO-kra vonatkozó törvényt, mely jogi státuszt ad a DAO-knak. Jelenleg Wyoming, Vermont és a Virgin-szigetek rendelkeznek DAO-törvénnyel valamilyen formában. - -#### Egy híres példa {#law-example} - -[CityDAO](https://citydao.io) – A CityDAO 40 hektár földet vett a Yellowstone Nemzeti Park közelében Wyoming DAO-törvényével élve. - -## DAO-tagság {#dao-membership} - -A DAO-tagságra különféle modellek léteznek. A tagság meghatározza a szavazás menetét, illetve a DAO más kulcsfontosságú részleteit. - -### Tokenalapú tagság {#token-based-membership} - -Általában teljesen engedélymentes, a használt tokenen alapszik. Ezekkel az irányítási tokenekkel többnyire engedély nélkül lehet kereskedni a decentralizált tőzsdén. Más tokenek megszerzéséhez likviditást kell biztosítani vagy más munkaigazolás (proof-of-work) szükséges. Bármelyik módon is jut hozzá, a token maga biztosítja a szavazati jogot. - -_Főleg arra használják, hogy kiterjedt, decentralizált protokollokat és/vagy magukat a tokeneket irányítsák ezáltal._ - -#### Egy híres példa {#token-example} - -[MakerDAO](https://makerdao.com) – A MakerDAO tokenje, az MKR, széles körben elérhető a decentralizált tőzsdéken, s bárki beszerezheti azokat, hogy szavazati jogot nyerjen a Maker protokoll jövőjére vonatkozóan. - -### Részesedésalapú tagság {#share-based-membership} - -A részesedésalapú DAO-k sokkal inkább engedélyhez kötöttek, de még mindig elég nyitottak. Bármelyik leendő tag beadhat egy csatlakozási kérvényt, melyben általában felajánl valamilyen értéket tokenek vagy elvégzendő munka (például számítási kapacitás) formájában. A részesedés közvetlen szavazati és tulajdonjogot jelent. A tagok bármikor kiléphetnek az arányos részesedésükkel együtt. - -_Főleg a szorosabb szerveződésű, emberközpontú szervezetek használják, mint az adománygyűjtők, munkaközösségek és befektetési klubok. Ezt is használhatják protokollok és tokenek irányítására._ - -#### Egy híres példa {#share-example} - -[MolochDAO](http://molochdao.com/) – A MolochDAO az Ethereum-projektek támogatásával foglalkozik. A tagságot kérvényezni kell, melynek alapján a csoport eldönti, vajon az új tag rendelkezik a szükséges szakértelemmel és tőkével, hogy megfelelő döntést tudjon hozni a lehetséges támogatottakról. Nem lehetséges megvásárolni a DAO-tagságot a piacon. - -### Reputációalapú tagság {#reputation-based-membership} - -A reputáció a részvételt igazolja és szavazati jogot biztosít a DAO-ban. A token- és részesedésalapú tagsággal ellentétben a reputációalapú DAO nem ad tulajdonjogot a közreműködőknek. A reputációt nem lehet megvenni, átadni vagy delegálni; a DAO tagok a részvételükkel nyerik el azt. A láncon belüli szavazás nem engedélyhez kötött, a leendő tagok szabadon kérvényezhetik a DAO-hoz való csatlakozást, illetve azt, hogy a közreműködésükért cserébe reputációt és tokent kapjanak. - -_Főleg a protokollok és decentralizált alkalmazások (dapp) decentralizált fejlesztésére és irányítására használják, de ugyanúgy jól alkalmazható a különféle szervezeteknél, mint adománygyűjtés, munkaközösségek, befektetési klubok stb._ - -#### Egy híres példa {#reputation-example} - -[DXdao](https://DXdao.eth.link) – A DXdao egy független globális csoportosulás, amely 2019 óta épít és irányít decentralizált protokollokat és alkalmazásokat. Reputációalapú irányítást és holografikus konszenzust (szavazási módszer) használ arra, hogy forrásokat koordináljon és menedzseljen, tehát senki sem tudja megvásárolni a tagságot azért, hogy befolyásolja a DAO működését. - -## Csatlakozás DAO-hoz / DAO indítása {#join-start-a-dao} - -### DAO-hoz csatlakozás {#join-a-dao} - -- [Az Ethereum-közösséghez tartozó DAO-k](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [DAOHaus által listázott DAO-k](https://app.daohaus.club/explore) -- [Tally.xyz által listázott DAO-k](https://www.tally.xyz) - -### DAO indítása {#start-a-dao} - -- [Indítson DAO-t a DAOHaus-szal](https://app.daohaus.club/summon) -- [Indítson irányító DAO-t a Tally-vel](https://www.tally.xyz/add-a-dao) -- [Hozzon létre egy Aragon által működtetett DAO-t](https://aragon.org/product) -- [Hozzon létre csoportot a Colony-val](https://colony.io/) -- [Indítson DAO-t a DAOstack által biztosított holografikus konszenzussal](https://alchemy.daostack.io/daos/create) - -## További információ {#further-reading} - -### DAO-ról szóló cikkek {#dao-articles} - -- [Mi az a DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) -- [A DAO kézikönyv](https://daohandbook.xyz) -- [DAO-k háza](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) -- [Mi az a DAO és mire jó?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) -- [Hogyan lehet létrehozni egy DAO által működtetett digitális közösséget](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) -- [Mi az a DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) -- [Mi az a holografikus konszenzus?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) – [DAOstack](https://daostack.io/) -- [A DAO-k nem vállalatok: hol van a legnagyobb jelentősége a decentralizációnak az autonóm szervezetekben – Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) -- [DAO, DAC, DA és mások: egy nem teljes terminológiai útmutató](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) – [Ethereum Blog](https://blog.ethereum.org) - -### Videók {#videos} - -- [Mit jelent a DAO a kripto világában?](https://youtu.be/KHm0uUPqmVE) -- [Felépíthet egy várost egy DAO?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/src/content/translations/hu/decentralized-identity/index.md b/src/content/translations/hu/decentralized-identity/index.md deleted file mode 100644 index ecc0cee1975..00000000000 --- a/src/content/translations/hu/decentralized-identity/index.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: Nem központilag kibocsájtott identitás -description: Mi az a nem központilag kibocsátott identitás, és miért fontos? -lang: hu -template: use-cases -emoji: ":id:" -sidebarDepth: 2 -image: ../../../../assets/eth-gif-cat.png -summaryPoint1: A hagyományos identitásrendszerek központosították az azonosítók kiadását, karbantartását és ellenőrzését. -summaryPoint2: A decentralizált identitás megszünteti a centralizált harmadik felektől való függőséget. -summaryPoint3: A kriptonak köszönhetően, a felhasználóknak újra van eszközük, hogy tárolják és kezeljék a saját azonosítójukat és tanúsítványaikat. ---- - -A virtuális identitás az életünk minden részét meghatározza napjainkban. Online szolgáltatások használata, bankszámla nyitás, szavazás a választásokon, ingatlan vásárlása, munkavállalás – mindegyikhez az identitás igazolása szükséges. - -Azonban a hagyományos azonosításkezelési rendszerek hosszú ideje központosított szereplőkre támaszkodtak, akik kibocsátják, tárolják és kezelik az azonosítóinkat és [tanúsítványainkat](#what-are-attestations). Ez azt jelenti, hogy nem tudjuk irányítani az azonosítással kapcsolatos információinkat, és nem dönthetünk arról, hogy ki férhet hozzá a személyazonosító információinkhoz (PII), valamint hogy ezek a felek milyen mértékű hozzáférést kapnak. - -Ezen problémák megoldására decentralizált azonosítási rendszerek állnak rendelkezésre, amelyeket nyilvános blokkláncokon, például az Ethereumon, építettek. A decentralizált azonosítás lehetővé teszi az egyének számára, hogy kezeljék az azonosítással kapcsolatos információikat. A decentralizált azonosítási megoldásokkal _Ön is_ létrehozhat azonosítókat, illetve anélkül igényelhet és tárolhat tanúsítványokat, hogy központi hatóságokra, mint például szolgáltatók vagy kormányok, támaszkodna. - -## Mi az az identitás? {#what-is-identity} - -Az identitás az egyén önmagához való viszonyának értelmezése, egyedi jellemzők által meghatározva. Az identitás az _egyént_ jelenti, azaz egy különálló emberi entitást. Jelenthet még nem emberi entitást is, mint például egy szervezetet vagy hatóságot is. - -## Mik az azonosítók? {#what-are-identifiers} - -Az azonosító egy olyan információ, mely sajátos identitásra vagy identitásokra mutat rá. A hétköznapi azonosítók többek között: - -- Név -- Társadalombiztosítási szám / adószám -- Mobilszám -- Születési idő és hely -- Digitális azonosítók, mint e-mail-cím, felhasználói név, avatár - -Ezeket a hagyományos azonosítókat központi hatóságok bocsátják ki, tárolják és kontrollálják. Engedélyre van szükség a kormánytól ahhoz, hogy valaki megváltoztassa a nevét, vagy a közösségi média platformtól arra, hogy megváltoztassa a profilját. - -## Mi az a tanúsítás? {#what-are-attestations} - -A tanúsítás egy olyan állítás, melyet az egyik entitás ad a másikról. Az Amerikai Egyesült Államokban a vezetői engedélyt a Gépjárművekkel foglalkozó hivatal (egyik entitás) bocsátja ki, mellyel tanúsítja, hogy az illető személy (másik entitás) autót vezethet. - -A tanúsítás nem azonos az azonosítókkal. A tanúsításhoz _szükség van_ azonosítókra, hogy egy sajátos identitásra hivatkozzanak, és az ehhez tartozó valamilyen jellemzőről adjanak egy állítást. Tehát a jogosítvány tartalmaz azonosítókat (név, születési idő, cím), ugyanakkor tanúsítja az autóvezetési jogosultságot. - -### Mik azok a decentralizált azonosítók? {#what-are-decentralized-identifiers} - -A hagyományos azonosítók, mint a hivatalos név vagy e-mail-cím, harmadik személyen múlnak – a kormányokon és az e-mail-szolgáltatókon. A decentralizált azonosítók (DID) különböznek ezektől – ezeket nem egy központi hatóság állítja ki, kezeli vagy kontrollálja. - -A decentralizált azonosítókat az egyének állítják ki, kezelik és kontrollálják. Az [Ethereum-számla](/developers/docs/accounts/) is egy decentralizált azonosító. A felhasználó annyi számlát hozhat létre, amennyit csak akar, anélkül hogy bárki engedélyére szükség lenne vagy egy központ nyilvántartásban kellene tárolni azokat. - -A decentralizált azonosítókat elosztott főkönyveken (blokklánc) vagy peer-to-peer hálózatokon tárolják. Ennek okán a DID-ekre az jellemző, hogy [globálisan egyediek, sokrétűen felhasználhatók és kriptográfiával ellenőrizhetők](https://w3c-ccg.github.io/did-primer/). A decentralizált azonosító különféle entitásokhoz kapcsolódhat, mint emberek, szervezetek vagy kormányzati szervek. - -## Mi teszi lehetővé a decentralizált azonosítók használatát? {#what-makes-decentralized-identifiers-possible} - -### 1. Nyilvánoskulcs-infrastruktúra (PKI) {#public-key-infrastructure} - -A nyilvánoskulcs-infrastruktúra (PKI) egy olyan információbiztonsági lépés, amely az entitás számára egy [nyilvános kulcsot](/glossary/#public-key) és egy [privát kulcsot](/glossary/#private-key) hoz létre. A nyilvános kulcson alapuló kriptográfiát a blokklánchálózatok arra használják, hogy igazolják a felhasználók identitását és a digitális eszközök tulajdonjogát. - -Néhány decentralizált azonosító, mint amilyen az Ethereum-számla, egyaránt rendelkezik nyilvános és privát kulccsal. A nyilvános kulcs meghatározza a számla birtokosát, miközben a privát kulcs aláírhatja az adott számlához tartozó üzeneteket, illetve feloldhatja azok titkosítását. A PKI igazolja az entitások identitását, megakadályozza, hogy valaki más felöltse azt vagy hamisat használjon – mindezt a [kriptográfiai aláírás](https://andersbrownworth.com/blockchain/public-private-keys/) révén, amely minden állítást igazol. - -### 2. Decentralizált adattárolók {#decentralized-datastores} - -A blokklánc egy igazolható adatnyilvántartásként működik: az információk nyilvános, decentralizált tárhelye, melynek használatakor nem kell megbízni egy központi szereplő (jóhiszemű) magatartásában. A nyilvános blokkláncok létezése miatt nincs többé szükség arra, hogy az azonosítókat központi nyilvántartásokban tárolják. - -Ha valaki szeretné egy decentralizált azonosító érvényességét ellenőrizni, akkor a blokkláncon megkeresheti a hozzá tartozó nyilvános kulcsot. Ez különbözik a hagyományos azonosítóktól, ahol harmadik entitás tudja csak igazolni azt. - -## A decentralizált azonosítók és a tanúsítás hogyan teszi lehetővé a decentralizált identitást? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} - -A decentralizált identitás az az elképzelés, hogy az identitáshoz kapcsolódó információkat mindenki maga kontrollálja, azok privátak és hordozhatók, átvihetők, melynek az elsődleges építőkövei a decentralizált azonosítók és a tanúsítások. - -A decentralizált identitás kontextusában a tanúsítások (más néven [Igazolható bizonyítványok vagy hitelesítő adatok / VC](https://www.w3.org/TR/vc-data-model/)) olyan hamisításmentes, kriptográfiailag igazolható állítások, melyeket a kibocsátó készít. Minden tanúsítás vagy igazolható bizonyítvány, amit egy entitás (például egy szervezet) kiállít, az kapcsolódik az ő decentralizált azonosítójukhoz (DID). - -Mivel a DID-ek a blokkláncon vannak tárolva, ezért bárki ellenőrizni tudja a tanúsítás érvényességét azáltal, hogy megnézi az Ethereumon a kiállító DID-jét. Lényegében az Ethereum-blokklánc olyan, mint egy globális könyvtár, ahol az adott entitásokhoz kapcsolódó decentralizált azonosítókat igazolni lehet. - -A decentralizált azonosítók teszik lehetővé, hogy a tanúsításokat a kiállító maga kontrollálja és azok igazolhatók legyenek. Ha a kiállító már nem is létezik, a tanúsítást kapó entitás mindig rendelkezik annak eredetének és érvényességének bizonyítékával. - -A decentralizált azonosítók elengedhetetlenek abban is, hogy megvédjék a személyes adatok magán jellegét a decentralizált identitás révén. Például, ha egy egyén beadja egy tanúsítás bizonyítékát (egy vezetői engedélyt), akkor az azt igazoló félnek nem kell ellenőrizni a bizonyítékban található adatok érvényességét. Ehelyett az ellenőrző félnek csak a tanúsítás eredetiségének kriptográfiai garanciáira, valamint a kiállító szervezet identitására van szükség ahhoz, hogy a bizonyíték érvényességét megállapítsa. - -## A tanúsítások típusai a decentralizált identitás esetében {#types-of-attestations-in-decentralized-identity} - -A tanúsítások tárolása és visszakeresése az Ethereumon alapuló, identitáshoz kötődő ökoszisztémában eltérően működik, mint a hagyományos identitáskezelés. Különféle megközelítések léteznek, hogyan állítják ki, tárolják és igazolják a tanúsításokat a decentralizált identitást biztosító rendszerekben: - -### Blokkláncon kívüli tanúsítások {#off-chain-attestations} - -A blokkláncon való tanúsítástárolással kapcsolatban felmerül az a konszern, hogy olyan információkat tartalmazhat, melyeket az egyének privát módon szeretnének kezelni. Az ilyen tanúsítások tárolása az Ethereum-blokkláncon, annak nyilvános természete miatt nem előnyös. - -Erre az a megoldás, hogy a kiállított tanúsításokat a felhasználók láncon kívül tartják digitális tárcákban, de azok alá vannak írva a kiállító decentralizált azonosítójával (DID), mely a láncon belül elérhető. Ezeket a tanúsításokat [JSON Web Tokenként](https://en.wikipedia.org/wiki/JSON_Web_Token) kódolják, és tartalmazzák a kiállító digitális aláírását – így a láncon kívüli azonosítási igényeket könnyedén igazolni tudja. - -A következő példa elmagyarázza a láncon kívüli tanúsításokat: - -1. Egy egyetem (kiállító) létrehoz egy tanúsítást (egy digitális egyetemi diplomát), aláírja azt a kulcsaival, és átadja Bobnak (az identitás tulajdonosának). - -2. Bob egy állásra jelentkezik és igazolni akarja iskolai tanulmányait a munkaadónak, ezért megosztja vele a tanúsítást a mobil tárcájából. A vállalat (ellenőrző) ekkor megbizonyosodhat a tanúsítás érvényességéről azáltal, hogy megnézi a kiállító DID-jét (pl. az Ethereumon lévő nyilvános kulcsát). - -### Blokkláncon kívüli tanúsítások állandó eléréssel {#offchain-attestations-with-persistent-access} - -Ebben az elrendezésben a tanúsításokat átalakítják JSON file-okká és a láncon kívül tárolják (ideálisan egy [decentralizált felhőben](/developers/docs/storage/), mint a IPFS vagy a Swarm). Azonban a JSON-fájl [hash-kódja](/glossary/#hash) a láncon van eltárolva és egy DID-hez kapcsolódik egy láncon belüli nyilvántartáson keresztül. A kapcsolódó DID lehet a tanúsítás kiállítójáé vagy azé, aki azt kapta. - -Ez a megközelítés lehetővé teszi, hogy a tanúsítások állandóan elérhetők legyenek a blokkláncon, miközben a kapcsolódó információk titkosítottak és igazolhatók. Mivel a privát kulcs tulajdonosa titkosítani tudja az információt, ezért képes szelektív módon nyilvánossá tenni azt. - -### Blokkláncon belüli tanúsítások {#onchain-attestations} - -A blokkláncon belüli tanúsítások [okosszerződésekben](/developers/docs/smart-contracts/) vannak tárolva az Ethereum-blokkláncon. Az okosszerződés (ami nyilvántartásként működik) hozzáköti a tanúsítást egy kapcsolódó, láncon belüli decentralizált azonosítóhoz (egy nyilvános kulcshoz). - -A következő példa bemutatja, hogyan működik a láncon belüli tanúsítás a gyakorlatban: - -1. Egy cég (XYZ vállalat) azt tervezi, hogy egy okosszerződésen keresztül tulajdonosi részvényeket ad el, de csak olyan vásárlókat fogad el, akiknek a háttere ellenőrizve lett. - -2. XYZ vállalat a háttérellenőrzéssel megbízott cégtől láncon belüli tanúsításokat kap az Ethereumon. Ez a tanúsítás igazolja, hogy az egyén megfelelt az ellenőrzés során, de nem tárja fel semmilyen személyes adatát. - -3. A részvényeket eladó okosszerződés meg tudja nézni az átvilágított vevőkre vonatkozó nyilvántartási szerződést, így meghatározhatja, hogy kik vásárolhatnak részvényt. - -### Egyénhez kötött tokenek és identitás {#soulbound} - -Az [egyénhez kötött tokeneket](https://vitalik.ca/general/2022/01/26/soulbound.html) (nem átadható NFT-k) arra lehet használni, hogy egy adott tárcához tartozó egyedi információkat gyűjtsenek. Ez gyakorlatilag létrehoz egy egyedi, láncon belüli identitást, amely egy adott Ethereum-címhez kötődik, és eredményeket (mint egy online tanfolyam elvégzése vagy egy játékban elért szint) vagy közösségi részvételt jelentő tokeneket foglal magába. - -## A decentralizált identitás előnyei {#benefits-of-decentralized-identity} - -1. A decentralizált identitás növeli az egyénnek a saját azonosítói feletti kontrollját. A decentralizált azonosítók és tanúsítások anélkül igazolhatók, hogy egy központi hatóságra vagy egy harmadik fél által nyújtott szolgáltatásra kellene támaszkodni. - -2. A decentralizáltidentitás-megoldások úgy képesek igazolni és kezelni egy felhasználó identitását, hogy nem kell megbízni egy másik félben, zökkenőmentes és védi a magán jellegű információkat. - -3. A decentralizált identitás a blokklánc-technológiát felhasználva teremt bizalmat a különböző felek között és a tanúsítások érvényességét igazolva nyújt kriptográfiai garanciát. - -4. A decentralizált identitás átvihetővé, hordozhatóvá teszi a identitáshoz kapcsolódó adatokat. A felhasználók a mobil tárcájukban tárolják a tanúsításokat és azonosítókat, és eldönthetik, hogy kivel osztják meg azokat. A decentralizált azonosítók és tanúsítások nem az azokat kibocsátó szervezet adatbázisába vannak zárva. - -5. A decentralizált identitás jól illeszkedik a most kialakuló nulla tudású (zero-knowledge) technológiákhoz, mellyel az egyének anélkül tudják igazolni tulajdonukat vagy eredményeiket, hogy feltárnák, mi is az pontosan. Ez egy hatásos módja annak, hogy a bizalmat és a magán jelleget kombinálják olyan felhasználási módoknál, mint amilyen például a szavazás. - -6. A decentralizált identitás lehetővé teszi az anti-Sybil mechanizmust, feltárva azt, amikor egyetlen ember több személynek adja ki magát egy adott játékban vagy azért, hogy teleszemetelje (spam) a rendszert. - -## A decentralizált identitás alkalmazásai {#decentralized-identity-use-cases} - -A decentralizált identitás számtalan esetben alkalmazható: - -### 1. Univerzális bejelentkezés (login) {#universal-dapp-logins} - -A decentralizált identitás segít abban, hogy a jelszóalapú bejelentkezések helyett [decentralizált azonosítás](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/) legyen használható. A szolgáltatók tanúsításokat bocsáthatnak ki a felhasználóknak, amelyet az Ethereum-tárcájukban tárolnak. Például egy olyan tanúsítvány, ami egy [NFT](/nft/), és hozzáférést biztosít egy online közösséghez. - -Az [Ethereumba való bejelentkezés](https://login.xyz/) funkció ekkor lehető tenné a szervereknek, hogy megerősítsék a felhasználó Ethereum-számláját és lekérdezzék az ehhez szükséges tanúsításokat a számlacímükről. Ezáltal a felhasználónak nem kell hosszú jelszavakat megjegyeznie ahhoz, hogy különböző platformokat és weboldalakat érjen el, és így jobb felhasználói élményben lehet része. - -### 2. Ügyfél-azonosítás (KYC) {#kyc-authentication} - -Az online szolgáltatások használatakor a felhasználóknak tanúsításokat és hitelesítő adatokat kell megadniuk, mint például vezetői engedély vagy útlevél. Ez azonban aggodalomra adhat okot, mivel a magánjellegű információkkal visszaélhetnek, a szolgáltatók pedig nem tudják ellenőrizni a tanúsítások hitelességét. - -A decentralizált identitás révén a cégek elhagyhatják a hagyományos [ügyfél-azonosítást (KYC)](https://en.wikipedia.org/wiki/Know_your_customer), és ehelyett az ügyfelek identitását az igazolható bizonyítványok (VC) révén ellenőrizhetik. Ez csökkenti az azonosítások kezelésének költségét, és kivédi a hamis iratok használatát is. - -### 3. Szavazás és online közösségek {#voting-and-online-communities} - -Az online szavazás és a közösségi média két új alkalmazási területe a decentralizált identitásnak. Az online szavazások ki vannak téve a manipulációnak, főleg ha a rosszindulatú szereplők hamis identitásokat hoznak létre, hogy azokkal szavazzanak. A szavazás folyamatának integritását nagy mértékben növelné, ha az egyének a láncon belüli tanúsításokkal igazolnák magukat. - -A decentralizált identitás segít olyan online közösségek létrehozásában, melyek mentesek a hamis profiloktól. Például minden felhasználónak igazolnia kell a kilétét egy láncon belüli azonosítási rendszerrel, mint amilyen az Ethereum Névszolgáltatás (ENS), és így kizárhatók a nem emberi résztvevők (bot). - -### 4. Anti-Sybil védelem {#sybil-protection} - -A Sybil-támadás azt jelenti, hogy bizonyos egyének kijátsszák a rendszert, hogy az több embernek vegye őket, és így nagyobb befolyást tudjanak gyakorolni. A [támogatást adó alkalmazások](https://gitcoin.co/grants/), melyek [kvadratikus szavazást](https://www.radicalxchange.org/concepts/plural-voting/) használnak, sebezhetők ezekkel a Sybil-támadásokkal szemben, mert a támogatás összege növekszik, ha több szavazat érkezik rá. Ez pedig arra ösztönzi a résztvevőket, hogy több identitással vegyenek részt a folyamatban. A decentralizált identitás megakadályozza ezt, mivel a résztvevők könnyedén igazolhatják, hogy valódi emberek, és nem kell hozzá specifikus, magán jellegű információkat feltárniuk magukról. - -## Használjon decentralizált identitást {#use-decentralized-identity} - -Számtalan ambiciózus projekt használja az Ethereumot a decentralizált identitási megoldások alapjaként: - -- **[Ethereum Névszolgáltatás (ENS)](https://ens.domains/)** – _Egy decentralizált névadó rendszer a láncon belüli, gép által kiolvasható azonosítókra, mint amilyenek az Ethereum-tárcacímek, a tartalomra vonatkozó hash-kódok és a metaadatok._ -- **[SpruceID](https://www.spruceid.com/)** – _Egy decentralizált identitási projekt, mely lehetővé teszi, hogy a felhasználók a digitális identitásukat Ethereum-számlákkal és ENS-profilokkal kontrollálják ahelyett, hogy harmadik személyre támaszkodnának._ -- **[Ethereum tanúsítási szolgáltatás (EAS)](https://attest.sh/)** – _Egy decentralizált főkönyv/protokoll láncon belüli vagy láncon kívüli tanúsítások készítésére._ -- **[Proof of Humanity](https://www.proofofhumanity.id)** – _Az emberség igazolása (PoH) egy közösségi identitás igazolására készült rendszer, mely az Ethereumra épül._ -- **[BrightID](https://www.brightid.org/)** – _Egy decentralizált, nyílt forráskódú, közösségi identitási hálózat, amely új módot keres az azonosításra egy közösségi gráf megalkotásával és elemzésével._ -- **[Proof-of-personhood Passport](https://proofofpersonhood.com/)** - _Egy decentralizált, digitális identitásgyűjtemény._ - -## További olvasnivaló {#further-reading} - -### Cikkek {#articles} - -- [Blokklánc esettanulmányok: blokklánc a digitális identitás területén](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ -- [Mi az az Ethereum ERC725? Független identitáskezelés a blokkláncon](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Sam Town_ -- [Hogyan tudja a blokklánc megoldani a digitális identitás problémáját](https://time.com/6142810/proof-of-humanity/) — _Andrew R. Chow_ -- [Mi az a decentralizált identitás és miért érdemes figyelembe venni?](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ - -### Videók {#videos} - -- [Decentralizált identitás (Bonus Livestream Session)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Kiváló magyarázó videó a decentralizált identitásról Andreas Antonopoloustól_ -- [Az Ethereumba való bejelentkezés és a decentralizált identitás témája a Ceramic, IDX, React és 3ID Connect használatával](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _YouTube útmutató a személyazonosítási rendszer kiépítéséről, mely az Ethereum-tárca alapján létrehozza, kiolvassa és frissíti a felhasználó profilját – Nader Dabit_ -- [BrightID – Decentralizált identitás az Ethereumon](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _Bankless podcast epizód a BrightID-ról, ami egy decentralizált identitási megoldás az Ethereumon_ -- [A láncon kívüli internet: decentralizált identitás és igazolható bizonyítványok (VC)](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — EthDenver 2022 Evin McMullen prezentációja - -### Közösségek {#communities} - -- [ERC-725 szövetség a GitHubon](https://github.com/erc725alliance) — _Az ERC725 szabvány támogatói, mely az Ethereum-blokkláncon való identitáskezelést célozza_ -- [SpruceID Discord-szerver](https://discord.com/invite/Sf9tSFzrnt) — _Rajongók és fejlesztők közössége, akik az Ethereumba való bejelentkezés funkcióján dolgoznak_ -- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Fejlesztői közösség, melynek célja az alkalmazásokhoz szükséges igazolható adatok keretrendszerének kidolgozása_ diff --git a/src/content/translations/hu/defi/index.md b/src/content/translations/hu/defi/index.md deleted file mode 100644 index 5b582f83f82..00000000000 --- a/src/content/translations/hu/defi/index.md +++ /dev/null @@ -1,352 +0,0 @@ ---- -title: Decentralizált pénzügy (DeFi) -description: Az Ethereumon működő decentralizált pénzügyek (DeFi) áttekintése -lang: hu -template: use-cases -emoji: ":money_with_wings:" -image: ../../../../assets/use-cases/defi.png -alt: Egy LEGO építőkockákból készült Ethereum-logó. -sidebarDepth: 2 -summaryPoint1: Egy globális és nyitott alternatívája a jelenlegi pénzügyi rendszernek. -summaryPoint2: Olyan termékek, melyek révén kölcsönözhet, megtakaríthat, befektethet, kereskedhet és ez még nem minden. -summaryPoint3: Nyíltforráskódú technológián alapszik, melyre bárki fejleszthet megoldásokat. ---- - -A decentralizált pénzügyek (DeFi) egy nyílt és globális pénzügyi rendszer, mely az internet korához igazodik – alternatívája annak, ami alig átlátható, szorosan kontrollált és sok évtizedes infrastruktúrák és folyamatok tartják össze. A DeFi kontrollt és átláthatóságot biztosít a pénzeszközök felett. Lehetőséget ad arra, hogy a globális piacokon működjön és alternatívát biztosít a helyi valuták vagy bankolási lehetőségek helyett. A DeFi termékek mindenki számára elérhetővé teszik a pénzügyi szolgáltatásokat, aki internetkapcsolattal rendelkezik, és nagy arányban maguk a felhasználók tulajdonolják és kezelik ezeket. Eddig több tízmilliárd dollárnyi kripto áramlott keresztül a DeFi alkalmazásokon, és ez minden egyes nappal növekszik. - -## Mi az a DeFi? {#what-is-defi} - -A DeFi egy gyűjtőfogalom azokra a pénzügyi termékekre és szolgáltatásokra vonatkozóan, melyek mindenki számára elérhetők az Ethereum hálózatát használva – bárkinek, aki rendelkezik internetkapcsolattal. A DeFi révén a piacok állandóan nyitva vannak és nincs olyan központi hatóság, amely megakadályozhatna egy kifizetést vagy megtilthatná a hozzáférést valamilyen termékhez. Azok a szolgáltatások, melyek korábban lassúak voltak és az emberi hiba kockázatát hordozták magukban, most automatikusak és biztonságokat, mivel egy olyan programkód üzemelteti azokat, melyet bárki megvizsgálhat. - -Egy gyorsan fejlődő kriptogazdaság található itt, ahol Ön is adhat és vehet fel kölcsönt, kereskedhet long/short pozíciókkal, kamatoztathat stb. A kriptóhoz értő argentinok arra használták a DeFi-t, hogy kilépjenek a bénító inflációs helyzetből. Bizonyos vállalatok elkezdték a munkavállalóik fizetést valós időben átutalni (streaming). Néhány személy több millió dollárt érő hitelt vett fel és fizetett vissza anélkül, hogy bármilyen módon igazolnia kellett volna a személyazonosságát. - - - -## A DeFi és a hagyományos pénzügyek összehasonlítása {#defi-vs-tradfi} - -A DeFi-ban rejlő lehetőségeket talán úgy lehet legjobban megragadni, ha megértjük a jelenlegi problémákat. - -- Az emberek egy bizonyos rétege nem nyithat bankszámlát vagy használhat pénzügyi szolgáltatásokat. -- Ha valaki nem fér hozzá a pénzügyi szolgáltatásokhoz, akkor nem is tud munkát vállalni. -- A pénzügyi szolgáltatások megakadályozhatják, hogy Ön hozzáférjen a pénzeszközeihez. -- A pénzügyi szolgáltatások egyik rejtett ára, hogy hozzáférnek a személyes adataihoz. -- A kormányok és központi hatóságok bármikor lezárhatják a pénzügyi piacokat. -- A kereskedés időszaka gyakran egy adott időzónában meghatározott munkaidőre korlátozódik. -- Az átutalások több napig is eltarthatnak a közbenső, manuális folyamatok miatt. -- A pénzügyi szolgáltatásokért extra díjat kell fizetni, mert a közvetítő intézmények is kiveszik a részüket. - -### Összehasonlítás {#defi-comparison} - -| DeFi | Hagyományos pénzügyek | -| ------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | -| Ön rendelkezik a saját pénzeszközei felett. | Az Ön pénze a vállalatok kezében van. | -| Ön dönti el, hogy a pénzét hol tartja és mire költi el. | Meg kell bíznia a vállalatokban, hogy nem élnek vissza a pénzeszközeivel, például nem adják kölcsön azokat kockázatos ügyfeleknek. | -| A pénzeszközök átutalása perceken belül megtörténik. | Az átutalás napokig is eltarthat a manuális lépések miatt. | -| A tranzakciók nem közvetlen módon köthetők a személyazonossághoz. | A pénzügyi tevékenységek szorosan kapcsolódnak az identitáshoz. | -| A DeFi mindenki előtt nyitva áll. | A pénzügyi szolgáltatásokat igényelni kell. | -| A pénzpiacok mindig nyitva vannak. | A pénzpiacok bezárnak, mert az alkalmazottaknak pihenésre van szükségük. | -| Az átláthatóságra épül – bárki megtekintheti az adott termék adatait és megvizsgálhatja, hogyan működik a rendszer. | A pénzügyi intézmények zárt könyvek számunkra: nem kérheti el senki a hitelezési feljegyzéseiket, az eszközeik leltárát stb. | - - - Fedezze fel a DeFi alkalmazásokat - - -## Minden a Bitcoinnal kezdődött... {#bitcoin} - -A Bitcoin több szempontból is az első DeFi alkalmazás volt. A Bitcoin lehetővé tette, hogy a felhasználó valóban birtokolja és kontrollálja az értéket, és elküldje azt a világon bárhova. Ehhez pedig egy olyan módszert adott egy nagy létszámú, egymásban nem bízó csoport kezébe, amellyel közvetítő megbízása nélkül egyezhetnek meg a számlafőkönyv tartalmán. A Bitcoin mindenki számára nyitott és senki sem tudja megváltoztatni a szabályait. A szabályai, ahogy a végessége és a nyitottsága is bele van kódolva a technológiába. Ez teljesen eltér a hagyományos pénzügyektől, ahol a kormány pénzt nyomtathat, mely csökkenti a megtakarítások értékét, a cégek pedig lezárhatják a pénzügyi piacokat. - -Az Ethereum is erre épít. A Bitcoinhoz hasonlóan a szabályokat nem változtathatja meg senki, és mindenkinek van hozzáférése. Ezen felül a digitális pénzt programozhatóvá teszi az [okosszerződések](/glossary#smart-contract) által, így az értékek tárolásán és küldésén kívül sok másra is alkalmas. - - - -## Programozható pénz {#programmable-money} - -Ez furcsán hangzik... „miért akarnám programozni a pénzemet”? Ez azonban több, mint az Ethereum tokenjeinek alaptulajdonsága. Bárki programozhat valamilyen logikát a kifizetések kezelésébe. Így rendelkezhet a Bitcoin által nyújtott kontrollal és biztonsággal, a pénzügyi intézmények által nyújtott szolgáltatásokkal kombinálva azt. Lehetővé válik, hogy a kriptovalutával olyan műveleteket is véghezvigyen a felhasználó, amit a Bitcoin nem támogat, mint például kölcsön adás és kölcsön vétel, időzített kifizetések, indexalapokba való befektetés stb. - - -
Tekintse át azokat a DeFi alkalmazásokat, melyeket kipróbálásra javaslunk, amennyiben Ön most ismerkedik az Ethereummal.
- - Fedezze fel a DeFi alkalmazásokat - -
- -## Mit lehet csinálni a DeFi-ban? {#defi-use-cases} - -A legtöbb pénzügyi szolgáltatásnak létezik decentralizált alternatívája. Az Ethereum emellett olyan lehetőségeket teremt, hogy teljesen új pénzügyi termékek is létrejöhessenek. Ez egy folyamatosan bővülő lista. - -- [Pénzküldés a világ bármelyik pontjára](#send-money) -- [Pénzáramoltatás (streaming) a világon bárhova](#stream-money) -- [Stabil pénznemek használata](#stablecoins) -- [Kölcsönfelvétel fedezettel](#lending) -- [Kölcsönfelvétel fedezet nélkül](#flash-loans) -- [Megtakarítás kriptóval](#saving) -- [Kereskedés tokenekkel](#swaps) -- [Portfóliófejlesztés](#investing) -- [Közösségi elképzelések finanszírozása](#crowdfunding) -- [Biztosítás vásárlása](#insurance) -- [Portfóliókezelés](#aggregators) - - - -### Azonnali pénzküldés a világ bármelyik pontjára {#send-money} - -Az Ethereum-blokklánc úgy van kialakítva, hogy biztonságosan és globálisan kezeljen tranzakciókat. A Bitcoinhoz hasonlóan az Ethereumon is olyan könnyen lehet pénzt utalni, akár egy e-mailt elküldeni. Csak írja be a fogadó fél [ENS-nevét](/nft/#nft-domains) (például bob.eth) vagy számlacímét a tárcájában, és az utalás közvetlenül megérkezik hozzá általában percek alatt. Az utalások küldéséhez vagy fogadásához szükség van egy [tárcára](/wallets/). - - - Tovább a fizetési dappokhoz - - -#### Pénzáramoltatás (streaming) a világon bárhova... {#stream-money} - -Az Ethereumon pénzáramoltatásra is lehetőség van. Ez lehetővé teszi, hogy valós időben kapja meg valaki a fizetését, így a pénzeszközei mindig rendelkezésre állnak. Vagy kölcsönözhet is valamit addig, amíg azt használja, mint egy tárolóhely vagy elektromos robogó. - -Ha pedig nem akar [ETH-t](/eth/) küldeni vagy áramoltatni, mert annak változhat az értéke, akkor alternatív valuták is rendelkezésre állnak az Ethereumon: ezek a stabil érmék. - - - -### Stabil pénznemek használata {#stablecoins} - -A kriptovaluta változékonysága számos pénzügyi termék és általános költés esetén problémát okoz. A DeFi közösség ezt a stabil érmékkel oldotta meg. Ezek értéke hozzá van kötve egy másik eszközhöz, általában egy népszerű valutához, mint amilyen a dollár. - -Az olyan érmék értéke, mint a Dai vagy a USDC, csak néhány centtel változik. Ezért tökéletesen megfelelnek a munkabér kifizetésre vagy a kiskereskedelem számára. Dél-Amerikában számtalan ember használt stabil érméket, hogy megvédje a megtakarításait, amikor a kormányzat által kibocsátott valuták bizonytalan helyzetbe kerültek. - - - Bővebben a stabil érmékről - - - - -### Kölcsönfelvétel {#lending} - -A kölcsönfelvétel a decentralizált szolgáltatóktól kétféle módon valósulhat meg. - -- Peer-to-peer (P2P), amikor a kölcsön felvevője közvetlenül egy meghatározott kölcsönadótól kap pénzt. -- Gyűjtőszámlás (pool), amikor a kölcsönadó pénzeszközt biztosít (likviditás) a gyűjtőszámlának, amelytől a kölcsönvevők pénzt tudnak szerezni. - - - Tovább a kölcsönfelvételi dappokhoz - - -Számos előnye van annak, ha decentralizált kölcsönadót használunk... - -#### A kölcsönfelvétel magán jellegének megőrzése {#borrowing-privacy} - -Manapság a pénz kölcsönadása és -vétele az abban résztvevő egyének köré rendeződik. A bank tudni akarja, hogy vissza fogja-e fizetni a kölcsönt annak igénylője, mielőtt odaítélné neki. - -A decentralizált kölcsönzésnél a feleknek nem kell azonosítaniuk magukat. Ehelyett a kölcsönvevő fedezetet ad, melyet a kölcsönadó automatikusan megkap, ha a kölcsönt nem fizeti vissza. Néhány kölcsönadó NFT-ket is elfogad fedezet gyanánt. Az NFT-k olyan okiratok, melyek egy egyedi eszközhöz kapcsolódnak, mint például egy festmény. [Bővebben az NFT-kről](/nft/) - -Így anélkül lehet pénzt kölcsönözni, hogy hitelellenőrzést kellene végezni vagy személyes információkat átadni. - -#### Globális alapokhoz való hozzáférés {#access-global-funds} - -Amikor valaki decentralizált kölcsönadóhoz fordul, akkor az egész világon letétbe helyezett alapok válnak számára elérhetővé, nem csak azok az eszközök, melyeket a kiválasztott bankban vagy intézményben elhelyeztek. Ez sokkal elérhetőbbé teszi a kölcsönt és jobb kamatozást is biztosít. - -#### Adóhatékonyság {#tax-efficiencies} - -A kölcsönfelvétel révén hozzáférhet a szükséges eszközökhöz, így nem kell eladnia a rendelkezésére álló ETH-t (melynek adóvonzata van). Ehelyett használhatja az ETH-t fedezetként egy stabilérme-kölcsönhöz. Így a szükséges pénz is rendelkezésére áll, és az ETH-t is megtarthatja. A stabil érmék olyan tokenek, melyek előnyösebbek, ha készpénzre van szüksége, mert az értékük nem változik annyira, mint az ETH esetében. [Bővebben a stabil érmékről](#stablecoins) - -#### Villámkölcsönök {#flash-loans} - -A villámkölcsön a decentralizált kölcsönzés kísérleti jellegű formája, amikor fedezet nélkül, illetve bármiféle személyes adat átadása nélkül tud valaki kölcsönt felvenni. - -Ezek jelenleg nem érhetők el kiterjedt körben a nem technikai felhasználók között, de arrafelé mutatnak, ami a jövőben mindenki számára rendelkezésre fog állni. - -Azon az alapon működik, hogy a kölcsönt ugyanabban a tranzakcióban veszik fel és fizetik vissza. Ha nem tudják visszafizetni, akkor a tranzakció visszafordul, mintha nem is történt volna semmi. - -A kölcsönzéshez használt pénzeszközök likviditási gyűjtőszámlákon találhatók (nagy mennyiségű pénzeszközök kölcsönzési célra). Ha egy adott pillanatban nem használják azokat, akkor egy személynek lehetősége van kölcsönvenni az eszközöket, üzletet hajtani végre azokkal, és egyszerre visszafizetni azokat, szinte a kölcsönzéssel azonos időben. - -Ily módon rengeteg logikát kell belefoglalni egy ilyen magáért beszélő tranzakcióba. Erre egy egyszerű példa az lehet, hogy valaki arra használja a villámkölcsönt, hogy egy adott eszközből a lehető legtöbbet beszerezze egy adott áron, és eladja azt egy másik tőzsdén, ahol az ár magasabb. - -Így egyetlen tranzakcióban a következők történnek: - -- X összegű $asset-et kölcsönöz 1,00 $ értéken az A tőzsdén -- Az X összegű $asset-et eladja 1,10 $ értéken a B tőzsdén -- Visszafizeti a kölcsönt az A tőzsdének -- A profit mínusz a tranzakciós költség az Ön nyeresége - -Ha a B tőzsdén lévő kínálat hirtelen lezuhan, és a felhasználó nem tudott eleget vásárolni ahhoz, hogy lefedje az eredeti kölcsönt, akkor a tranzakció egyszerűen visszafordul. - -Ha a hagyományos pénzügyi világban szeretne ugyanilyen ügyletet végrehajtani, akkor hatalmas pénzösszegre van szüksége. Ezek a pénzkereső stratégiák csak azoknak elérhetők, akik már most is vagyonosak. A villámkölcsön egy olyan jövőt fest elénk, melyben a pénzcsinálásnak nem előfeltétele az, hogy az ember vagyonos legyen. - -[Bővebben a villámkölcsönökről](https://aave.com/flash-loans/) - - - -### Kezdjen el pénzt megtakarítani a kriptóval {#saving} - -#### Kölcsönadás {#lending} - -A rendelkezésére álló kriptovaluta kölcsönadásával kamatot kaphat, így pénzeszközei folyamatosan növekednek. Jelenleg a kamatráták sokkal magasabbak, mint a helyi bankokban (ha egyáltalán van elérhető bank a közelében). Itt egy példa: - -- Kölcsönadja a rendelkezésére álló 100 Dai-t, ami egy [stabil érme](/stablecoins/), egy olyan termékért, mint az Aave. -- Kap 100 Aave Dai-t (aDai), mely egy token, és a kölcsönadott Dai-t reprezentálja. -- Az aDai növekedni fog a kamatráta alapján, így Ön láthatja, ahogy az egyenlege növekszik a tárcájában. Az éves ráta (APR) függvényében az Ön tárcaegyenlege akár néhány napon vagy órán belül már 100,1234 összeget mutathat! -- Bármikor visszavonhat bármekkora Dai összeget, ami megegyezik az Ön aDai egyenlegével. - - - Tovább a kölcsönadási dappokhoz - - -#### Veszteség nélküli lottó {#no-loss-lotteries} - -A veszteség nélküli lottók, mint a PoolTogether, szórakoztató és innovatív módszerek a megtakarításokra. - -- Vásárol 100 jegyet 100 Dai tokenért. -- Kap 100 plDai-t, ami a 100 jegyet reprezentálja. -- Ha valamelyik jegyét kisorsolják, a plDai egyenlege megnövekszik a nyeremény összegével. -- Ha nem nyer, akkor a 100 plDai átgördül a következő heti sorsolásra. -- Bármikor visszavonhat bármekkora Dai összeget, ami megegyezik az Ön plDai egyenlegével. - -A rendelkezésre álló nyeremény abból a kamatból keletkezik, amit a jegyvásárláson összegyűjtött összeg kölcsönadásából szereznek, ahogy azt a fenti példa is mutatja. - - - Próbálja ki a PoolTogether lehetőséget - - - - -### Kereskedés a tokenekkel {#swaps} - -Az Ethereumon ezernyi token elérhető. A decentralizált tőzsdék (DEX) lehetővé teszik, hogy a felhasználók a különféle tokenekkel bármikor kereskedjenek. Eközben az eszközök feletti kontroll végig megmarad. Olyan, mint amikor az ember egy másik országba utazik és valutaváltót használ. Ugyanakkor a DeFi sosem zár be. A pénzpiacok folyamatosan nyitva vannak (az év 365 napján, napi 24 órában), a technológia pedig garantálja, hogy mindig van, aki elfogadja az ügyletet. - -Például, ha Ön szeretné használni a veszteség nélküli lottózást, a PoolTogether-t (ahogy fentebb írtuk), szüksége lesz Dai vagy USDC tokenre. A decentralizált tőzsdén átválthatja a kívánt ETH-összeget ezekre a tokenekre, majd vissza, amikor végzett az ügylettel. - - - Tovább a tokenes tőzsdékre - - - - -### Haladó szintű kereskedés {#trading} - -Haladóbb lehetőségek is rendelkezésre állnak azoknak a kereskedőknek, akik több kontrollt szeretnének. Lehetségesek a meghatározott áron történő vételi/eladási megbízások (limit order), határidős ügyletek, tőkeáttétes kereskedések és még sok más. A decentralizált kereskedés során Ön hozzáfér a globális likviditáshoz, a piac sosem zár be, az eszközök feletti kontroll pedig mindig az Ön kezében van. - -A centralizált tőzsdéken ehhez képest letétbe kell helyezni az eszközöket a kereskedés előtt, és meg kell bízni bennük, hogy azt megfelelően kezelik. Miközben az eszköz letétben van náluk, nincs biztonságban, mert a centralizált tőzsdék a hackerek kedvelt célpontjai. - - - Tovább a kereskedő dappokhoz - - - - -### Portfóliófejlesztés {#investing} - -Az Ethereumon találhatók olyan alapkezelő termékek, melyek az Ön által választott stratégia mentén megpróbálják megnövelni portfóliója értékét. Mindez automata, mindenki számára nyitott, és nem igényel kezelőt, aki a profitból levenné a saját részét. - -Egy jó példa erre a [DeFi Pulse Index fund (DPI)](https://defipulse.com/blog/defi-pulse-index/). Ez az alap automatikusan kiigazítja az Ön portfólióját, hogy az állandóan [a legjobb DeFi-tokeneket tartalmazza az aktuális piaci értékük alapján](https://www.coingecko.com/en/defi). Önnek nem kell foglalkoznia a részletekkel, és bármikor visszavonhatja pénzeszközeit az alapból. - - - Tovább a befektetési dappokhoz - - - - -### Közösségi elképzelések finanszírozása {#crowdfunding} - -Az Ethereum egy tökéletes platform arra, hogy a közösség segítségével finanszírozzon bizonyos elképzeléseket: - -- A lehetséges finanszírozók bárhonnan jöhetnek – az Ethereum és a tokenjei mindenkinek elérhetők, a világon bárhol. -- Átlátható, így az adománygyűjtők igazolni tudják, hogy mennyi pénz jött össze. Azt is nyomon lehet követni, hogy a pénz hogyan lett elköltve. -- Az adománygyűjtők automatikus visszatérítést is be tudnak állítani, például ha egy adott határidőre nem jön össze a minimális összeg. - - - Tovább a közösségi finanszírozás dappokhoz - - -#### Kvadratikus finanszírozás {#quadratic-funding} - -Az Ethereum egy nyílt forráskódú program, és az eddigi fejlesztések nagy részét a közösség finanszírozta. Ez vezetett el egy érdekes és új modellhez: a kvadratikus finanszírozáshoz. Ennek lehetősége van azt a módot továbbfejleszteni, ahogy a közjavak finanszírozását kezelhetjük. - -A kvadratikus finanszírozás gondoskodik arról, hogy azok a projektek kapják a finanszírozást, amelyre tényleg a legnagyobb az igény. Tehát azokat támogatjuk, amelyek a leginkább magasabb szintre emelik az emberek életét. Így működik: - -1. Az adományozott pénzösszegek egy alapba (matching pool) kerülnek. -2. Megkezdődik a nyilvános adománygyűjtés. -3. Az emberek úgy jelezhetik, hogy számukra fontos egy adott projekt, hogy pénzt adományoznak rá. -4. Az adománygyűjtés lezártával az alapot szétosztják a projektek között. Ebből az alapból az a projekt kapja a legmagasabb összeget, amelyre a leginkább igényt tartanak az adományozók. - -Eszerint az A projekt, mely 100 adományt kapott, egyenként 1 $ értékben, több finanszírozást kaphat az alapból, mint a B projekt, mely egyetlen adományt kapott 10 000 $ értékben (a kapott összeg az alap méretén múlik). - -[Bővebben a kvadratikus finanszírozásról](https://wtfisqf.com) - - - -### Biztosítások {#insurance} - -A decentralizált biztosítások célja, hogy azok olcsóbbak, sokkal átláthatóbbak legyenek, és gyorsabb legyen a kifizetés. Az automatizálásnak köszönhetően a biztosítás általi lefedettség megfizethetőbb, a kifizetések pedig gyorsabbak. Az igénybejelentéshez használt adatok teljesen transzparensek. - -Az Ethereum termékei, mint bármelyik szoftver, tartalmazhatnak hibákat és sebezhető pontokat. Emiatt jelenleg sok biztosítási megoldás a felhasználók eszközeinek elvesztése ellen ad védelmet. Ugyanakkor vannak olyan projektek, melyek elkezdtek kialakítani az élet többi eseményére vonatkozóan is biztosításokat. Egy jó példa erre az Etherisc's Crop biztosítása, melynek célja [a kisméretű, kenyai gazdálkodók védelme az aszály és az árvíz ellen](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). A decentralizált biztosítás olcsóbb megoldást tud kínálni a gazdálkodóknak, akiknek a hagyományos biztosítók általában megfizethetetlenek. - - - Tovább a biztosítási dappokhoz - - - - -### Gyűjtőhelyek és portfóliókezelők {#aggregators} - -Amikor ennyi minden zajlik, Önnek is szüksége lehet egy olyan megoldásra, mellyel a befektetéseit, kölcsöneit és kereskedéseit figyelemmel követheti. Rengeteg olyan termék elérhető, melyekkel egyetlen helyről tudja az összes DeFi tevékenységét koordinálni. Ez a DeFi nyílt architektúrájának szépsége. A csapatok olyan interface-eket építenek, melyekkel nemcsak az összes termék kapcsán láthatja az egyenlegét, hanem használhatja azok tulajdonságait is. Amint Ön is jobban elmélyül a DeFi világában, hasznosnak fogja ezt találni. - - - Tovább a portfóliós dappokhoz - - - - -## Hogyan működik a DeFi? {#how-defi-works} - -A decentralizált pénzügyek (DeFi) kriptovalutákat és okosszerződéseket használnak ahhoz, hogy közvetítő nélküli szolgáltatásokat adjanak. A mai pénzügyi világban a pénzintézetek garantálják a tranzakciókat. Ez nagy hatalmat ad az intézményeknek, mert a pénz rajtuk áramlik keresztül. Emellett emberek milliárdjai világszerte még bankszámlát sem tudnak nyitni maguknak. - -A DeFi-ban az okosszerződés helyettesíti a pénzintézetet a tranzakció során. Az okosszerződés egy olyan Ethereum-számla, mely pénzeszközöket tartalmaz és azokat elküldheti vagy visszaveheti bizonyos feltételek mentén. Miután az okosszerződés életbe lépett, már senki sem változtathatja meg – úgy fog működni, ahogy le lett programozva. - -Egy olyan szerződést, melynek lényege, hogy támogatást vagy zsebpénzt küldjön, le lehet programozni úgy, hogy A számláról B számlára rakjon pénzt minden pénteken. Ezt addig fogja csinálni, amíg az A számlán elegendő összeg található. Senki sem tudja megváltoztatni a szerződést úgy, hogy hozzáadja a C számlát és ellopja az összeget. - -A szerződések emellett teljesen nyilvánosak és bárki megvizsgálhatja azokat. Eszerint a rossz szerződések elég hamar a közösség vizsgálódása alá kerülnek. - -Ez valójában azt jelenti, hogy jelenleg az Ethereum-közösség technikailag képzettebb tagjaiban bízunk, akik el tudják olvasni a programkódot. A nyílt forráskódon alapuló közösség segít a fejlesztőket ellenőrzés alatt tartani, ami idővel szükségtelenné fog válni, ahogy az okosszerződéseket könnyebb lesz átlátni, és a programkód megbízhatóságára más igazolási módok is születnek. - -## Az Ethereum és a DeFi {#ethereum-and-defi} - -Az Ethereum tökéletes alapot biztosít a decentralizált pénzügyek (DeFi) számára: - -- Az Ethereumot és az azon működő okosszerződéseket senki sem birtokolja – tehát bárki használhatja a DeFi-t. Ebből adódik, hogy senki sem változtathatja meg a szabályokat. -- A DeFi termékek a háttérben ugyanazon a nyelven szólnak, ami az Ethereum. Emiatt a termékek nagy része zökkenőmentesen képes együttműködni. Az egyik platformon kölcsönadhat tokeneket, és kereskedhet a kamatozó tokenekkel egy teljesen másik piacon, teljesen másik alkalmazással. Ez olyan, mintha a bankjában a hűségpontokat készpénzre váltaná. -- A tokenek és kriptovaluták az Ethereum részei, mely egy megosztott főkönyv – fő jellemzője a tranzakciók és a tulajdonlás követhetősége. -- Az Ethereum tökéletes pénzügyi szabadságot ad – a legtöbb termék sosem fog felügyeletet gyakorolni az Ön eszközei felett, így a kontroll Önnél marad. - -A DeFi-t a következő rétegek szerint értelmezheti: - -1. A blokklánc – az Ethereum tartalmazza az összes tranzakciót és a számlák státuszát. -2. Az eszközök – [ETH](/eth/) és a többi token (valuták). -3. A protokollok – az [okosszerződések](/glossary/#smart-contract), melyek a műveleteket biztosítják, mint amilyen például egy szolgáltatás az eszközök decentralizált kölcsönadására. -4. [Az alkalmazások](/dapps/) – azok a termékek, melyek révén kezeljük és elérjük a protokollokat. - -## Építse Ön is a DeFi-t {#build-defi} - -A DeFi egy nyílt forráskódú kezdeményezés. A kapcsolódó protokollok és alkalmazások mind nyitottak az Ön számára, hogy megvizsgálja azokat, elágazásokat készítsen azokból vagy továbbfejlessze azokat. A rétegezett struktúra következtében (melynek részei ugyanarra az alap blokkláncra épülnek és ugyanazokat az eszközöket használják) a protokollokat össze lehet kötni, hogy egyedi lehetőségeket aknázzunk ki. - - - Bővebben a dappok építéséről - - -## További olvasnivaló {#futher-reading} - -### DeFi adatok {#defi-data} - -- [DeFi Prime](https://defiprime.com/) -- [DeFi Llama](https://defillama.com/) -- [DeFi Rate](https://defirate.com/) - -### Cikkek a DeFi-ról {#defi-articles} - -- [Útmutató kezdőknek a DeFi-ról](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, 2020. január 6._ - -### Videók {#videos} - -- [Finematics – decentralizált pénzügyi oktatás](https://finematics.com/) – _Videók a DeFi-ról_ -- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) – _A DeFi alapjai: minden, amit tudnia kell, hogy elboldoguljon ebben a néha rejtélyes világban._ -- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _Mi az a DeFi?_ - -### Közösségek {#communities} - -- [DeFi Llama Discord-szerver](https://discord.gg/buPFYXzDDd) -- [DeFi Pulse Discord-szerver](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/hu/desci/index.md b/src/content/translations/hu/desci/index.md deleted file mode 100644 index 09674ea3c53..00000000000 --- a/src/content/translations/hu/desci/index.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: Nem központosított kutatás (DeSci) -description: A decentralizált tudomány áttekintése az Ethereumon -lang: hu -template: use-cases -emoji: ":microscope:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Egy globális és nyitott alternatívája a jelenlegi tudományos rendszernek. -summaryPoint2: Olyan technológia, mely lehetővé teszi a tudósok számára, hogy finanszírozási alapot gyűjtsenek, kísérleteket végezzenek, megosszák az adatokat, kommunikálják elképzeléseiket stb. -summaryPoint3: A nyitott tudomány mozgalomra épül. ---- - -## Mi az a decentralizált tudomány (DeSci)? {#what-is-desci} - -A decentralizált tudomány (DeSci) egy olyan mozgalom, melynek célja a nyilvános infrastruktúra létrehozása a tudományos eredmények korrekt és egyenlő finanszírozása, létrehozása, véleményezése, hitelesítése, tárolása és terjesztése érdekében a web3-technológiára alapozva. - -A DeSci egy olyan ökoszisztémát akar megalkotni, ahol a tudósok ösztönözve vannak a kutatásaik nyilvános megosztására, munkájukért javadalmazásban részesülnek, miközben megengedik, hogy bárki könnyedén elérje és hozzájáruljon a kutatásukhoz. A DeSci azt az elképzelést váltja valósággá, hogy a tudományos ismeretek mindenkinek elérhetők, a tudományos kutatások pedig transzparensek legyenek. A DeSci egy decentralizáltabb és jobban elosztott tudományos kutatási modellt hoz létre, mely ellenállóbb a cenzúrával és a központi hatóságok irányításával szemben. A DeSci reményeink szerint egy olyan környezetet teremt, ahol az új és szokatlan elképzelések virágozni fognak azáltal, hogy a finanszírozáshoz, a tudományos eszközökhöz és a kommunikációs csatornákhoz való hozzáférést decentralizáljuk. - -A decentralizált tudomány sokrétűbb finanszírozási forrásokat (a [DAO-októl](/dao/) kezdve, [a kvadratikus adományozáson](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) keresztül a közösség általi finanszírozásig és még tovább), sokkal elérhetőbb adatokat és módszereket tesz lehetővé, miközben ösztönzi a reprodukálhatóságot is. - -### Juan Benet – A DeSci mozgalom - - - -## Hogyan fejleszti a DeSci a tudományt {#desci-improves-science} - -Következzen egy hozzávetőleges felsorolás a tudomány területén tapasztalt fő problémákról, és arról, hogy a decentralizált tudomány hogyan segíthet ezeken - -| **Decentralizált tudomány** | **Hagyományos tudomány** | -| --------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | -| A finanszírozási alapok elosztását a nyilvánosság határozza meg olyan módszerek alapján, mint a kvadratikus adományozás vagy a DAO-k. | Kicsi, zárt, központosított csoportok irányítják a finanszírozási források elosztását. | -| A tudósok dinamikus csapatokat alkotnak társaikkal, akik a világ bármelyik pontján lehetnek. | A finanszírozási alapok és a helyi intézmények behatárolják a kollaborációt. | -| A finanszírozási döntések online történnek és transzparensek. Új finanszírozási mechanizmusokat térképeznek fel. | A finanszírozási döntéseket hosszú átfutási idővel hozzák meg és korlátolt transzparencia jellemzi azokat. Kevés finanszírozási mechanizmus létezik. | -| A megosztott laboratóriumi szolgáltatások könnyebbek és átláthatóbbak a web3-alapok révén. | A megosztott laboratóriumi erőforrások gyakran lassúak és kevéssé átláthatók. | -| A publikálás új modelljei alakíthatók ki, amelyek a web3-alapokat használják a bizalom, átláthatóság és univerzális hozzáférés biztosítására. | Ön a meglévő publikációs utakat használja, melyekről gyakran mondják, hogy nem hatékonyak, elfogultak és kizsákmányolók. | -| Tokeneket és reputációt lehet szerezni a tudományos eredmények szakértői értékeléséért. | A szakértői értékelést nem fizetik meg, csak a profitorientált kiadók javát szolgálja. | -| A tudós birtokolja a szellemi tulajdont (IP), melyet ő hoz létre és transzparens feltételek szerint osztja meg azt. | Az intézmény birtokolja a szellemi tulajdont, amit a tudós létrehoz. Az ahhoz való hozzáférés nem egyértelmű. | -| A kutatás teljes egészét megosztják, beleértve a sikertelen erőfeszítések adatait is, mivel minden lépés a blokkláncon található. | A publikációk részrehajlók, mivel a kutatók nagyobb valószínűséggel osztják meg a sikeres eredményeket hozó kísérleteket. | - -## Az Ethereum és a DeSci {#ethereum-and-desci} - -A decentralizált tudományt kiszolgáló rendszer robosztus biztonságot, minimális pénzügyi és tranzakciós költséget, és az alkalmazásfejlesztést támogató gazdag ökoszisztémát igényel. Az Ethereum mindent megad ahhoz, hogy kialakuljon egy rendszer a decentralizált tudomány számára. - -## A DeSci alkalmazási területei {#use-cases} - -A DeSci egy olyan tudományos eszköztárat épít, amely be tudja vezetni a web2 akadémikus világát a digitális világba. Következzen néhány alkalmazási terület, amit a web3 ajánl a tudományos közösségnek. - -### Publikálás {#publishing} - -A tudományos publikálás közismerten problémás, mivel olyan kiadókon alapszik, amelyek a tudósok, szakértők és szerkesztők nem megfizetett munkájára építenek, hogy megszülessen a kézirat, utána pedig elképesztő kiadási díjakat számolnak fel érte. A nyilvánosság, aki általában közvetett módon fizet ezért a munkáért és a kiadási költségeiért az adózáson keresztül, sokszor nem éri el ugyanezt a munkát, csak ha a kiadónak újra fizet érte. Az egyéni tudományos munkák megjelentetésének teljes költsége sokszor öt számjegyű összeg (USD-ben kifejezve), amely aláássa a tudományos ismeret alapvető eszméjét, mint [közjó](https://www.econlib.org/library/Enc/PublicGoods.html), miközben hatalmas profitot generál a kiadók kis csoportjának. - -Ingyenes és nyílt hozzáférésű platformok állnak rendelkezésre pre-print szerverek (online könyvtárak) formájában, [mint amilyen az ArXiv is](https://arxiv.org/). Ugyanakkor ezek a platformok nem üzemeltetnek minőségi ellenőrzést, [anti-sybil mechanizmust](https://csrc.nist.gov/glossary/term/sybil_attack), és nem trekkelik a cikkszintű mérőszámokat, tehát csak valamilyen formában nyilvánosságra hozzák azt, amit utána átadnak a hagyományos kiadóknak. A SciHub a kiadott munkákat ingyen elérhetővé teszi, ugyanakkor nem legális módon, és csak azután, hogy a kiadók megkapták érte a fizetségüket és az adott munkát szigorú szerzői jogi szabályozásba csomagolják. Ez egy kritikus hiányosság az elérhető tudományos munkák és adatok terén, melyet egy beágyazott törvényességi mechanizmus és ösztönzési modell támaszt alá. Az ilyen rendszer megépítéséhez szükséges eszközök elérhetők a web3-ban. - -### Megismételhetőség és újbóli előállíthatóság {#reproducibility-and-replicability} - -A megismételhetőség és újbóli előállíthatóság a minőségi tudományos felfedezések alapkövei. - -- A megismételhető eredmények lényege, hogy egymás után többször elérhető ugyanaz az eredmény adott csapat által, adott módszertant használva. -- Az újbóli előállíthatóság lényege, hogy egy másik csapat is azonos eredményre jut ugyanazokat a kísérleti tényezőket használva. - -Az új web3 saját eszközei biztosítani tudják, hogy a megismételhetőség és újbóli előállíthatóság a felfedezés alapjaiként szolgálnak. Beleszőhetjük a minőségi tudományt az akadémikus világ technológiai szövetébe. A web3 képes minden egyes elemzési komponens esetében tanúsítást kreálni: a nyers adat, a számítási motor és az alkalmazás eredményei esetében. A konszenzuson alapuló rendszerek szépsége az, hogy amikor egy megbízható hálózat (trusted network) tartalmazza ezeket az összetevőket, akkor a hálózat minden egyes tagja felelős lehet azért, hogy újból előállítsa a számítást és validálja az eredményeket. - -### Finanszírozás {#funding} - -A jelenlegi elterjedt modell a tudományos tevékenységek finanszírozására az, hogy a tudósok egyénileg vagy csoportban írásos jelentkezést adnak be egy finanszírozással foglalkozó ügynökségnek. A megbízottak egy kis bizottsága pontozza a jelentkezéseket és interjút folytat a jelentkezőkkel, mielőtt finanszírozást biztosítana a jelentkezők egy kis részének. Amellett, hogy ez az eljárás szűk keresztmetszetet hoz létre, hiszen néha évekig is várni kell a jelentkezés és a támogatás elnyerése között, a módszer nagy mértékben sebezhető a részrehajlás, az önérdek és a bizottság politikai beállítottsága miatt. - -Az elemzések kimutatták, hogy ezek a bizottságok kvázi alkalmatlanok arra, hogy kiválasszák a jó minőségű jelentkezéseket, mivel ugyanazt a jelentkezést más-más bizottságok teljesen másképpen ítélik meg. Mivel a finanszírozási keretek szűkösek, ezért a tudományos tevékenység az idősebb kutatók kis csoportjára szűkül le, akik konzervatívabb projekteken dolgoznak. Ennek következtében egy szélsőségesen versenyző finanszírozási helyzet alakult ki, mely torz ösztönzésekkel és fullasztó innovációkkal jár. - -A web3 képes arra, hogy megbontsa ezt a megtört, torz finanszírozási modellt azáltal, hogy különféle ösztönzési módszereket tud alkalmazni, melyeket a DAO-k és a web3 résztvevők már széles körben alkalmaznak. [A retroaktív közjó-finanszírozás](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), [a kvadratikus finanszírozás](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), [a DAO-k általi irányítás](https://www.antler.co/blog/daos-and-web3-governance) és [a tokenizált ösztönzési struktúrák](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) csak néhány web3-eszköz, melyek forradalmasítani tudnák a tudományos finanszírozás világát. - -### A szellemi tulajdon (IP) birtoklása és fejlesztése {#ip-ownership} - -A szellemi tulajdon (IP) nagy probléma a hagyományos tudomány területén: onnantól kezdve, hogy az beragad az egyetemekre vagy nem használják a biotechnológiai tevékenységben, odáig, hogy hírhedten nehéz meghatározni annak értékét. Ugyanakkor a digitális eszközök tulajdonlására (mint amilyenek a tudományos adatok vagy cikkek) a web3 rendkívül jól használja a [nem helyettesíthető tokeneket (NFT)](/nft/). - -Ugyanazon a módon, ahogy az NFT-k képesek a jövőbeli tranzakciók után is fizetni az eredeti alkotónak, lehetséges transzparens értékteremtő láncokat meghatározni arra, hogy a kutatókat, az irányító szerveket (mint a DAO) vagy akár a kutatási adatokat biztosító személyeket díjazzák. - -[Az IP-NFT-k](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) arra is használhatók, hogy a kutatási kísérletek decentralizált adattárháza jöjjön létre, és bekerüljön az NFT- és [DeFi](/defi/)-alapú finanszírozásba (a töredékes forrásoktól a kölcsönalapok és az értékfelmérés felé mozdulva). Az eredetileg is láncon belül létező entitások, mint a DAO-k, például a [VitaDAO](https://www.vitadao.com/), végezhet kutatást közvetlenül a láncon. A nem átadható, [egyénhez kötött (soulbound) tokenek](https://vitalik.ca/general/2022/01/26/soulbound.html) kifejlődése szintén fontos lehet a DeSci számára, hogy a tudósok az Ethereum-címükhöz kapcsoltan bizonyítani tudják tapasztalataikat és hitelesítő adataikat. - -### Adattárolás, adatelérés és architektúra {#data-storage} - -A tudományos adatok sokkal hozzáférhetőbbek a web3-sémák használatával, a megosztott tárolás révén pedig a kutatások nem tudnak megsemmisülni a különféle kataklizmaesemények esetén. - -A kiindulópont egy olyan rendszer, melyet bármelyik decentralizált identitás elér, aki a szükséges igazolható bizonyítványokkal (VC) rendelkezik. Ennek következtében az bizalmas adatokat biztonságos módon tudják a megbízott felek replikálni, ellenállóbbak a duplikációval és a cenzúrával szemben, lehetséges az eredmények újbóli előállítása, ráadásul több résztvevő is kollaborálhat és új adatokat adhat a meglévőkhöz. A bizalmas adatokat kezelő számítástechnikai módszerek, mint a [compute-to-data](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol), alternatív hozzáférési lehetőséget biztosítanak a nyers adatok replikálására, illetve megbízható kutatási környezetet (TRE) alakítanak ki a legbizalmasabb adatok számára. A megbízható kutatási környezetekre (TRE) [az Országos Egészségügyi Szolgálat (NHS)](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) úgy hivatkozik, mint az adatok titkosságát figyelembe vevő és együttműködést támogató, innovatív megoldás, mivel egy olyan ökoszisztémát hoz létre, ahol a kutatók biztonságos módon dolgozhatnak az adatokkal helyben, és közben megoszthatják a programkódjaikat és gyakorlataikat. - -A rugalmas web3-adatkezelési megoldások támogatják ezeket a szcenáriókat, és egy valóban nyitott és nyilvános tudomány alapjait biztosítják, ahol a kutatók közjót hoznak létre, és nem kell hozzáférési engedélyeket vagy díjakat fizetniük. A web3 nyilvános adatmegoldásai, mint a IPFS, Arweave és Filecoin a decentralizációra vannak optimalizálva. A dClimate például univerzális hozzáférést biztosít a klíma- és időjárási adatokhoz, beleértve az időjárási állomásokat és a klíma-előrejelző modelleket. - -## Kapcsolódjon be {#get-involved} - -Fedezze fel a projekteket és csatlakozzon a DeSci közösségéhez. - -- [DeSci.Global: globális események és találkozók](https://desci.global) -- [Blockchain for Science Telegram](https://t.me/BlockchainForScience) -- [Molecule: Finanszírozás biztosítása és elnyerése a kutatási projektjére](https://discover.molecule.to/) -- [VitaDAO: hosszútávú kutatások finanszírozása a szponzorált kutatási megállapodások alapján](https://www.vitadao.com/) -- [ResearchHub: tudományos eredmények publikálása és azok megvitatása munkatársaival](https://www.researchhub.com/) -- [LabDAO: fehérjék számítógépes szimulációja](https://alphafodl.vercel.app/) -- [dClimate API: keresés a decentralizált közösség által gyűjtött klímaadatokban](https://api.dclimate.net/) -- [DeSci Foundation: DeSci publikációs eszközfejlesztés](https://descifoundation.org/) -- [DeSci.World: itt minden megtudható a decentralizált tudományról](https://desci.world) -- [Fleming Protocol: nyílt forráskódú adatgazdaság, amely fűti a kollaboratív orvosbiológiai felfedezéseket](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [OceanDAO: az adattal kapcsolatos tudományok DAO által irányított finanszírozása](https://oceanprotocol.com/dao) -- [Opscientia: nyílt, decentralizált, tudományos munkafolyamatok](https://opsci.io/research/) -- [LabDAO: fehérjék számítógépes szimulációja](https://alphafodl.vercel.app/) -- [Bio.xyz: finanszírozás szerzése a biotechnológiai DAO-jához vagy decentralizált tudományos projektjéhez](https://www.molecule.to/) -- [ResearchHub: tudományos eredmények publikálása és azok megvitatása munkatársaival](https://www.researchhub.com/) -- [VitaDAO: hosszútávú kutatások finanszírozása a szponzorált kutatási megállapodások alapján](https://www.vitadao.com/) -- [Fleming Protocol: nyílt forráskódú adatgazdaság, amely fűti a kollaboratív orvosbiológiai felfedezéseket](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [Active Inference Lab](https://www.activeinference.org/) -- [CureDAO: közösség által irányított, precíziós egészségi platform](https://docs.curedao.org/) -- [IdeaMarkets: decentralizált tudomány hitelességének támogatása](https://ideamarket.io/) -- [DeSci Labs](https://www.desci.com/) - -Örömmel vesszük, ha bárki új projektet javasol – kérjük, tekintsék meg a [listázási szabályzatot](/contributing/adding-desci-projects/)! - -## További olvasnivaló {#further-reading} - -- [DeSci Wiki Jocelynn Pearl és UltraRare által](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) -- [Útmutató a decentralizált biotechnológiához – Jocelynn Pearl (a16z future)](https://future.a16z.com/a-guide-to-decentralized-biotech/) -- [A DeSci ügye](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) -- [Útmutató a DeSci-hez](https://future.com/what-is-decentralized-science-aka-desci/) -- [A decentralizált tudomány forrásai](https://www.vincentweisser.com/decentralized-science) -- [Molecule Biopharma IP-NFT-k – technikai leírás](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) -- [Bizalom nélküli rendszer építése a tudomány számára – Jon Starr](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) -- [A biotechnológiai DAO-k megjelenése](https://molecule.to/blog/the-emergence-of-biotech-daos) -- [Paul Kohlhaas – DeSci: a decentralizált tudomány jövője (podcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) -- [Active Inference Ontology a decentralizált tudomány számára (a Situated Sensemaking-től az Epistemic Commons-ig)](https://zenodo.org/record/6320575) -- [DeSci: a kutatás jövője – Samuel Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) -- [A tudomány finanszírozása (Epilógus: a DeSci és az új kriptoalapok) – Nadia](https://nadia.xyz/science-funding) -- [A decentralizáció megbontja a gyógyszerfejlesztést](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) - -### Videók {#videos} - -- [Mi az a decentralizált tudomány?](https://www.youtube.com/watch?v=-DeMklVWNdA) -- [Beszélgetés Vitalik Buterin és a tudós Aubrey de Grey között a hosszútávú kutatás és a kripto találkozási pontjáról](https://www.youtube.com/watch?v=x9TSJK1widA) -- [A tudományos publikálás szét van szakítva. A web3 meg tudja vajon javítani?](https://www.youtube.com/watch?v=WkvzYgCvWj8) -- [Juan Benet – DeSci, független laboratóriumok és a nagy adat tudománya](https://www.youtube.com/watch?v=zkXM9H90g_E) -- [Sebastian Brunemeier – Hogyan tudja a DeSci átalakítani az orvosbiológiai kutatást és a kockázati tőkét](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/hu/developers/docs/blocks/index.md b/src/content/translations/hu/developers/docs/blocks/index.md deleted file mode 100644 index 2d4c3e51cc9..00000000000 --- a/src/content/translations/hu/developers/docs/blocks/index.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: Blokkok -description: Egy áttekintő a blokkokról az Ethereum blokkláncban - az adatstruktúrájukról, miért van rájuk szükség és hogyan készülnek. -lang: hu ---- - -A blokkok tranzakciókból álló csoportosítások a láncban lévő előző blokk hash-ével ellátva. Ez összeköti a blokkokat (egy lánccá), mivel a hasheket kriptográfiailag származtatjuk a blokk adatból. Ez megelőzi a csalásokat, mivel bármely blokkon történő változtatás érvénytelenítené az összes következő blokkot, mivel az összes többi hash megváltozna és bárki aki a blokkláncot futtatja észrevenné. - -## Előfeltételek {#prerequisites} - -A blokkok könnyen feldolgozhatók még a legkezdőbb felhasználóknak is. De ennek az oldalnak a jobb megértése érdekében javasoljuk, hogy először olvasd el a [Számlák](/developers/docs/accounts/), [Tranzakciók](/developers/docs/transactions/), és a [Bevezetés az Ethereumba](/developers/docs/intro-to-ethereum/) cikkeinket. - -## Miért kellenek a blokkok? {#why-blocks} - -Hogy biztosítsuk azt, hogy az Ethereum hálózat minden résztvevője egy szinkronizált állapotot tart fenn és megegyezik a pontos tranzakciós történetben, a tranzakciókat blokkokba rendezzük. Ez azt jelenti, hogy tucatnyi (vagy több száz) tranzakció felett van elköteleződés, egyetértés és szinkronizáció egyszerre. - -![Egy diagram, mely egy tranzakciót mutat egy blokkban ahogy az állapotot változatja](../../../../../developers/docs/blocks/tx-block.png) _Diagram átvéve az [Ethereum EVM illusztrálva](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ anyagból - -Az elkötelezettségek elosztásával elegendő időt adunk az összes hálózati résztvevőnek konszenzusra jutni: annak ellenére, hogy a tranzakciós kérelmek másodpercenként több tucatszor fordulnak elő, az Ethereum blokkjai körülbelül tizenöt másodpercenként köteleződnek el. - -## Hogy működnek a blokkok {#how-blocks-work} - -Hogy megőrizzük a tranzakciós történetet, a blokkoknak szigorú sorrendet kell betartaniuk (minden létrejövő új blokk tartalmaz egy referenciát a szülő blokkjára), és a blokkokban lévő tranzakciók is szigorú sorrendet követnek. Ritka esetek kivételével bármikor amikor a hálózat összes résztvevője egyetért a blokkok pontos számában és előzményeiben, és azon dolgozik, hogy az aktuális élő tranzakciós kérelmeket a következő blokkba csomagolja. - -Amint egy blokk össze van állítva (ki van bányászva) egy bányász által a hálózaton, tovább terjed a hálózat többi része számára; az összes csomópont hozzáfűzi ezt a blokkot a blokkláncukra és folytatódik a bányászat. A pontos blokk összeállítási (bányászati) folyamatot és az elköteleződés/konszenzus folyamatot jelenleg az Ethereum “proof-of-work” protokollja specifikálja. - -### Egy vizuális bemutató {#a-visual-demo} - - - -## A proof-of-work protokoll {#proof-of-work-protocol} - -A proof-of-work a következőket jelenti: - -- A bányászó csomópontoknak változó, de jelentős mértékű energiát, időt és számítási kapacitást kell fordítaniuk, hogy előállítsanak egy "törvényességi igazolást" egy adott blokkra, melyet a hálózatra terjesztenek. Ez segít megvédeni a hálózatot többek között \* a spam/szolgáltatás megtagadási támadásoktól, mivel az igazolásokat drága előállítani. -- A többi bányásznak, aki hall az érvényes igazolással rendelkező új blokkról, muszáj elfogadni az új blokkot, mint egy kanonikus következő blokkot a blokkláncon. -- A pontos idő, mely egy adott bányász számára szükséges, hogy előteremtse az igazolást, egy random változó nagy varianciával. Ez biztosítja azt, hogy valószínűtlen*, hogy két bányász egyszerre teremti meg az igazolást a következő felterjesztett blokkra; amikor egy bányász elkészít és tovább terjeszt egy igazolt blokkot, szinte teljesen biztosak lehetnek abban, hogy a hálózat elfogadja ezt a blokkot, mint egy következő kanonikus blokkok a blokkláncban, konfliktus nélkül* (habár van egy protokoll a nézeteltérések megoldására, arra az esetre amikor két igazolt blokkokból álló lánc egy időben elkészül). - -[Többet a bányászatról](/developers/docs/consensus-mechanisms/pow/mining/) - -## Mi van egy blokkban? {#block-anatomy} - -- Időbélyeg – a blokk kibányászásának ideje. -- Blokkszám – blokklánc hossza blokkokban. -- Nehézség – a blokk kibányászásához szükséges erőfeszítés. -- mixHash – a blokk egyedi azonosítója. -- Egy szülő hash – az előző blokk egyedi azonosítója (így kapcsolódnak össze a blokkok egy lánccá). -- Tranzakciós lista – a blokkban lévő tranzakciók listája. -- Állapot gyökér – a rendszer teljes állapota: számla egyenlegek, szerződés tárhely, szerződés kód és számla nonce-ok vannak benne. -- Nonce – egy hash, melyet ha kombinálunk a mixHash-sel, akkor be tudjuk bizonyítani, hogy végig ment a [proof-of-work](/developers/docs/consensus-mechanisms/pow/) folyamaton. - -## Blokkméret {#block-size} - -Utolsó fontos megjegyzés, hogy a blokkok maguk is korlátozott méretűek. Minden blokknak van egy blokk gáz limite, melyet a hálózat és a bányászok állítanak be közösen: az összes tranzakció által teljesen felhasznált gáznak a blokkban kevesebbnek kell lennie, mint a gáz limitnek. Ez fontos, mert ez azt jelenti, hogy a blokkok nem lehetnek tetszőlegesen nagyok. Ha a blokkok tetszőlegesen nagyok lehetnének, akkor a kevésbé teljesítőképes teljes csomópontok egyre kevésbé tudnának lépést tartani a hálózattal a tárhely és sebesség igények miatt. A blokk gáz limit a nulladik blokkban (block 0) 5,000-ről indult; bármely új blokkot bányászó bányász módosíthatja a gáz limitet 0,1%-ig bármely irányba a szülő blokk gáz limitétől. A gáz limit jelenleg 2018 Novemberében 8,000,000 körül mozog. - -## További olvasnivaló {#further-reading} - -_Ismersz olyan közösségi anyagot, amely segített neked? Módosítsd az oldalt és add hozzá!_ - -## Kapcsolódó témák {#related-topics} - -- [Bányászat](/developers/docs/consensus-mechanisms/pow/mining/) -- [Tranzakciók](/developers/docs/transactions/) -- [Gáz](/developers/docs/gas/) diff --git a/src/content/translations/hu/developers/docs/evm/index.md b/src/content/translations/hu/developers/docs/evm/index.md deleted file mode 100644 index 848ea8da40e..00000000000 --- a/src/content/translations/hu/developers/docs/evm/index.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: Ethereum virtuális gép (EVM) -description: Bevezetés az Ethereum virtuális gépbe és arról, hogy hogyan kapcsolódik az állapothoz, tranzakciókhoz és okosszerződésekhez. -lang: hu ---- - -Az EVM fizikai megtestesülését nem lehet úgy leírni, mint ahogy azt egy felhő vagy egy óceáni hullám esetében tennénk, de attól még _létezik_ egy egyedüli entitásként több ezer összekapcsolt számítógép által, melyek egy Ethereum klienst futtatnak. - -Az Ethereum protokoll létezésének kizárólagos célja, hogy ennek a speciális állapot gépnek biztosítsa a folyamatos, megszakítások nélküli és megváltoztathatatlan működését; ez az a környezet, amiben az össze Ethereum számla és okosszerződés él. A lánc bármely adott blokkján az Ethereumnak egy és csak egy 'kanonikus' állapota van, és az EVM határozza meg a szabályokat egy új érvényes állapot létrehozására blokkról blokkra. - -## Előfeltételek {#prerequisites} - -Alapvető számítástudományi fogalmak ismerete, mint például a [bájtok](https://wikipedia.org/wiki/Byte), [memória](https://wikipedia.org/wiki/Computer_memory), és a [stack]() szükségesek, hogy megértsd az EVM-et. Érdemes tisztában lenni egy pár kriptográfiai/blokklánc fogalommal úgy, mint a [hash függvények](https://wikipedia.org/wiki/Cryptographic_hash_function), [Proof-of-Work](https://wikipedia.org/wiki/Proof_of_work) és a [Merkle Fa](https://wikipedia.org/wiki/Merkle_tree). - -## Főkönyvtől az állapot gépig {#from-ledger-to-state-machine} - -Az 'elosztott főkönyv' analógiáját gyakran használjuk olyan blokkláncok jellemzésére, mint a Bitcoin, mely lehetővé egy decentralizált valuta létrehozását alapvető kriptográfiai eszközök használatával. Egy kriptovaluta úgy viselkedik, mint egy 'normál' valuta a szabályok miatt, melyek meghatározzák, hogy az adott illető mit vagy mit nem tehet, hogy megváltoztassa a főkönyvet. Például egy Bitcoin cím nem költhet el több bitcoint, mint amennyit előzőleg megkapott. Ezek a szabályok támasztják alá az összes Bitcoin tranzakciót és sok más blokkláncot is. - -Amíg az Ethereumnak megvan a saját natív kriptovalutája (Ether), mely ugyanazokat az intuitív szabályokat követi, emellett lehetőséget ad egy másik hathatós funkciónak: [az okosszerződéseknek](/developers/docs/smart-contracts/). Ehhez a bonyolultabb funkcióhoz egy szofisztikáltabb analógia szükségeltetik. Egy elosztott főkönyv helyett az Ethereum egy elosztott [állapot gép](https://wikipedia.org/wiki/Finite-state_machine). Az Ethereum állapota egy nagy adatstruktúra, mely nem csak a számlákat és az egyenlegeket tárolja, de egy _állapot gépet_ is, mely blokkról blokkra változhat egy előre meghatározott szabályrendszer szerint és tetszőleges gépi kódot tud végrehajtani. Az állatot blokkról blokkra történő megváltozásának specifikus szabályait az EVM rögzíti. - -![Egy diagram mely az EVM felépítését mutatja be](../../../../../developers/docs/evm/evm.png) _Diagram átvéve az [Ethereum EVM illusztrálva](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ anyagból - -## Az Ethereum állapot átmeneti függvény {#the-ethereum-state-transition-function} - -Az EVM úgy viselkedik, mint egy matematikai függvény: Adott egy bemenet, mely egy determinisztikus kimenetet generál. Ezért nagyon hasznos, ha az Ethereumot formálisabban úgy írjuk le, mint egy **állapot átmeneti függvényt**: - -``` -Y(S, T)= S' -``` - -Adott egy régebbi érvényes állapot `(S)` és egy új érvényes tranzakciókból álló halmaz `(T)`, az Ethereum állapot átmeneti függvény `Y(S, T)` létrehoz egy új érvényes kimeneti állapotot `S'` - -### Állapot {#state} - -Az Ethereum kontextusában az állapot egy hatalmas adatstruktúra, melyet úgy hívnak, hogy [módosított Merkle Patricia-fa](https://eth.wiki/en/fundamentals/patricia-tree), mely az összes [számlát](/developers/docs/accounts/) hashekkel köti össze és redukálja egy gyökér hash-é, melyet a blokklánc tárol. - -### Tranzakciók {#transactions} - -A tranzakciók számlákból származó kriptográfiailag aláírt instrukciók. A tranzakcióknak két típusa van: azok, amelyek üzenet hívásokat eredményeznek és azok melyek szerződés létrehozásokat. - -A szerződés létrehozás egy új szerződéses számla létrehozásával jár, mely a fordított [okosszerződés](/developers/docs/smart-contracts/anatomy/) bájtkódot tartalmazza. Amikor egy másik számla egy üzenet hívást intéz ehhez a szerződéshez, végrehajtja a bájtkódját. - -## EVM Utasítások {#evm-instructions} - -Az EVM egy [verem gépként](https://wikipedia.org/wiki/Stack_machine) fut 1024 elemes mélységgel. Minden egyes elem egy 256 bites szó, melyek a maximális kompatibilitásért lettek kiválasztva az SHA-3-256 hash rendszerrel. - -A végrehajtás alatt az EVM egy tranziens _memóriát_ tart fenn (mint egy szócímzett bájttömböt), mely nem folytatólagos a tranzakciók között. - -A szerződések azonban tartalmaznak egy Merkle Patricia _tárhely_ fát (mint egy szócímezhető szó tömböt), mely hozzá van rendelve a kérdéses számlához és része a globális állapotnak. - -A befordított okosszerződés bájtkód EVM [opcode-ként](https://www.ethervm.io/) fut le, melyek standard stack műveletek, mint a `XOR`, `AND`, `ADD`, `SUB`, stb. Az EVM egy pár blokklánc specifikus stack műveletet is implementál, mint az `ADDRESS`, `BALANCE`, `SHA3`, `BLOCKHASH`, stb. - -![Egy diagram, mely azt mutatja, hogy hol van szükség gázra az EVM műveleteknél](../../../../../developers/docs/gas/gas.png) _Diagramok átvéve az [Ethereum EVM illusztrálva](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ anyagból - -## EVM Implementációk {#evm-implementations} - -Az összes EVM implementációnak meg kell felelnie az Ethereum sárgakönyvben megfogalmazott specifikációnak. - -Az Ethereum 5 éves története alatt az EVM több revízió alatt átesett és számos EVM implementáció létezik különböző programozási nyelveken. - -Az összes [Ethereum kliens](/developers/docs/nodes-and-clients/#execution-clients) tartalmaz egy EVM implementációt. Továbbá több önálló implementáció létezik, többek között: - -- [Py-EVM](https://github.com/ethereum/py-evm) - _Python_ -- [evmone](https://github.com/ethereum/evmone) - _C++_ -- [ethereumjs-vm](https://github.com/ethereumjs/ethereumjs-vm) - _JavaScript_ -- [eEVM](https://github.com/microsoft/eevm) - _C++_ - -## További olvasnivaló {#further-reading} - -- [Ethereum Sárgakönyv](https://ethereum.github.io/yellowpaper/paper.pdf). -- [The Beigepaper](https://github.com/chronaeon/beigepaper) -- [Ethereum Virtuális Gép Opcode-ok](https://www.ethervm.io/) - -## Kapcsolódó témák {#related-topics} - -- [Gáz](/developers/docs/gas/) diff --git a/src/content/translations/hu/developers/docs/gas/index.md b/src/content/translations/hu/developers/docs/gas/index.md deleted file mode 100644 index da4e9235409..00000000000 --- a/src/content/translations/hu/developers/docs/gas/index.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Gáz és tranzakciós díjak -description: -lang: hu -incomplete: true -isOutdated: true ---- - -Az gáz (Gas) nélkülözhetetlen az Ethereum hálózaton. Ez az üzemanyag, amitől működik, ahogyan az autóknak is szükségük van benzinre, hogy menjenek. - -## Előfeltételek {#prerequisites} - -Hogy jobban megértsd ezt az oldalt, javasoljuk, hogy előbb olvasd el a [tranzakciókról](/developers/docs/transactions/) és az [EVM-ről](/developers/docs/evm/) szóló oldalakat. - -## Mi az a gáz? {#what-is-gas} - -A gáz a számítási erőfeszítés mértékegységét jelenti, mely bizonyos műveletek végrehajtásához szükséges az Ethereum hálózaton. - -Mivel minden egyes utalás az Ethereum hálózaton számítási erőforrást igényel, minden tranzakciónak van egy díja. A gáz a tranzakciós díj, ami szükséges a tranzakció sikeres lebonyolításához. - -![Egy diagram, mely azt mutatja, hogy hol van szükség gázra az EVM műveleteknél](../../../../../developers/docs/gas/gas.png) _Diagram átvéve az [Ethereum EVM illusztrálva](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ anyagból - -Lényegében a gáz díjakat az Ethereum natív valutájában, Etherben (ETH) lehet kifizetni. A gáz árak Gwei-ben vannak feltüntetve, mely az ETH-nek egy egysége - minden Gwei 0.000000001 ETH-tel egyenlő (10-9 ETH). Például ahelyett, hogy azt mondanánk, hogy a gáz 0.000000001 Ether-be kerül, azt mondjuk, hogy a gáz ára 1 Gwei. - -Az alábbi videó jó áttekintés ad, hogy miért van szükségünk a gázra: - - - -## Miért létezik az gáz? {#why-do-gas-fees-exist} - -Röviden, a gáz tartja biztonságban az Ethereum hálózatot. Azzal, hogy minden hálózaton végrehajtott számítás egy díjat von maga után, megelőzzük, hogy ártó személyek túlterheljék a hálózatot. Azért, hogy megelőzzük a véletlen vagy ártó szándékú végtelen ciklusokat vagy más számítási pazarlással járó kódot, minden egyes tranzakciónak be kell állítani egy határt, hogy mennyi számítási lépést hajthat végre a kódlefutás. A számítás alap mértékegysége a "gáz". - -Annak ellenére, hogy a tranzakciós díjak limitálva vannak, a nem felhasznált üzemanyag visszajut az utaló félhez. - -![Egy diagram, mely a fel nem használt gáz visszatérítését ábrázolja](../../../../../developers/docs/transactions/gas-tx.png) _Diagram átvéve az [Ethereum EVM illusztrálva](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ anyagból - -## További olvasnivaló {#further-reading} - -- [Ethereum gáz, blokkok és a tranzakciós díjpiac megértése](https://medium.com/@eric.conner/understanding-ethereum-gas-blocks-and-the-fee-market-d5e268bf0a0e) -- [Ethereum gáz oktató anyag](https://defiprime.com/gas) - -## Kapcsolódó eszközök {#related-tools} - -- [ETH üzemanyag állomás](https://ethgasstation.info/) _Vevő orientált metrikák az Ethereum gáz piacáról_ -- [Etherscan gáz követő felület](https://etherscan.io/gastracker) _Tranzakciós díj becslés_ -- [Bloxy gáz analitikája](https://stat.bloxy.info/superset/dashboard/gas/?standalone=true) _Ethereum gáz statisztikák_ - -## Kapcsolódó témák {#related-topics} - -- [Bányászat](/developers/docs/consensus-mechanisms/pow/mining/) diff --git a/src/content/translations/hu/developers/docs/nodes-and-clients/index.md b/src/content/translations/hu/developers/docs/nodes-and-clients/index.md deleted file mode 100644 index c2532636308..00000000000 --- a/src/content/translations/hu/developers/docs/nodes-and-clients/index.md +++ /dev/null @@ -1,233 +0,0 @@ ---- -title: Csomópontok és kliensek -description: Egy áttekintő az Ethereum csomópontokról és kliens szoftverekről, valamint egy csomópont felállításának menetéről és hogy miért is érdemes. -lang: hu -sidebarDepth: 2 -isOutdated: true ---- - -Ahhoz, hogy az Ethereum decentralziáltan tudjon működni, egy elosztott csomópontokból álló hálózatra van szüksége, mely blokkokat és tranzakciós adatokat tud érvényesíteni. Egy kliensnek nevezett alkalmazásra van szükséged az eszközödön, hogy egy csomópontot "futtass". - -## Előfeltételek {#prerequisites} - -Érdemes tisztában lenned a decentralizált hálózat fogalmával, mielőtt belemélyednél és futtatnád a saját Ethereum kliens példányodat. Nézd meg a [bevezetés az Ethereumba](/developers/docs/intro-to-ethereum/) cikket. - -## Mik azok a csomópontok és kliensek? {#what-are-nodes-and-clients} - -A "csomópont" egy szoftverre utal, melyet kliensnek hívunk. Egy kliens egy Ethereum implementáció, mely hitelesíti az összes tranzakciót az egyes blokkokban, így a hálózat biztonságos marad az adatok pedig pontosak. - -Valós idejű látványt kaphatsz az Ethereum hálózatról, ha megnézed a [csomópontok térképét](https://etherscan.io/nodetracker). - -Valamennyi [Ethereum kliens implementáció](/developers/docs/nodes-and-clients/#execution-clients) létezik különböző nyelveken. Ami közös van ezekben az implementációkban, hogy mindegyikük egy formális specifikációt követ. Ez a specifikáció mondja ki, hogyan működik az Ethereum hálózat és a blokklánc. - -![Eth1x kliens](../../../../../developers/docs/nodes-and-clients/client-diagram.png) Az Ethereum kliens funkciók egyszerűsített diagramja. - -## Csomópont típusok {#node-types} - -Ha saját csomópontot akarsz futtatni, akkor fontos megértened, hogy vannak különböző típusú csomópontok, amelyek eltérően fogyasztják az adatokat. Valójában a kliensek 3 különböző típusú csomópontot futtathatnak - kis méretű (light), teljes (full) és archív. Különböző szinkronizálási stratégiák is rendelkezésre állnak, amelyek gyorsabb szinkronizálási időt tesznek lehetővé. A szinkronizálás arra utal, hogy milyen gyorsan tudja elérni a legfrissebb információkat az Ethereum állapotáról. - -### Teljes csomópont {#full-node} - -- A teljes blokklánc adatot tárolja. -- Részt vesz a blokk validációban, hitelesíti az összes blokkot és állapotot. -- Az összes állapot levezethető egy teljes csomópontból. -- A hálózatot szolgálja ki, és kérésre adatot szolgáltat. - -### Kis méretű csomópont {#light-node} - -- A fejléc láncot tárolja, minden mást lekérdez. -- Hitelesíteni tudja az adat érvényességét az állapot gyökérhez képest a blokk fejlécekben. -- Hasznos alacsony kapacitású eszközök esetében, mint a beágyazott eszközök vagy mobil eszközök, amelyek nem tudnak több gigabájtnyi blokklánc adatot tárolni. - -### Archív csomópont {#archive-node} - -- Tárolja mindazt, ami a teljes csomóponton van, és archívumot épít a történelmi állapotokról. Akkor van rá szükség, ha valami olyasmit szeretnél lekérdezni, mint egy számla egyenleg a #4,000,000.-dik blokkban. -- Ezek az adatok terabájtnyi egységeket képviselnek, ami az archív csomópontokat kevésbé teszi vonzóvá az átlagos felhasználók számára, de hasznos lehet olyan szolgáltatások számára, mint a blokkfelfedezők, a pénztárca forgalmazói és a láncelemzések. - -A kliensek szinkronizálása az archívum kivételével bármilyen módban hiányos blokklánc adatokat eredményez. Ez azt jelenti, hogy a teljes történelmi állapotról nincs archívum, de a teljes csomópont igény szerint képes felépíteni őket. - -## Miért kellene egy Ethereum csomópontot futtatnom? {#why-should-i-run-an-ethereum-node} - -A csomópont futtatása lehetővé teszi az Ethereum bizalom nélküli és privát használatát, miközben támogatod az ökoszisztémát. - -### Az előnyök neked {#benefits-to-you} - -A saját csomópont futtatása lehetővé teszi az Ethereum valóban privát, önellátó és bizalom nélküli használatát. Nem kell megbíznod a hálózatban, mert az adatokat saját magad is ellenőrizheted a klienseddel. A "Ne bízz benne, hanem hitelesítsd" egy népszerű blokklánc mantra. - -- A csomópontod önállóan ellenőrzi az összes tranzakciót és blokkot, mely ellentmond a konszenzus szabályoknak. Ez azt jelenti, hogy nem kell semmilyen más csomópontra támaszkodnod a hálózatban vagy teljesen megbíznod bennük. -- Nem kell a címeidet és az egyenlegeidet véletlenszerű csomópontokra szivárogtatnod. Minden ellenőrizhető a saját klienseddel. -- A dappod biztonságosabb és privátabb lehet, ha saját csomópontot használsz. A [MetaMask](https://metamask.io), a [MyEtherWallet](https://myetherwallet.com) és néhány másik tárcát egyszerűen átirányíthatsz a helyi csomópontodra. - -![Hogyan férhetsz hozzá az Ethereumhoz az alkalmazásoddal és a csomópontoddal](../../../../../developers/docs/nodes-and-clients/nodes.png) - -### Hálózati előnyök {#network-benefits} - -A csomópontok sokfélesége fontos az Ethereum egészsége, biztonsága és működési rugalmassága szempontjából. - -- Kis méretű csomópontok számára szolgáltatnak blokklánc adatokat, melyek tőlük függnek. Magas használati csúcsok esetén elegendő teljes csomópontnak kell lennie a kis méretű csomópontok szinkronizálásához. A kis méretű csomópontok nem tárolják az egész blokkláncot, ehelyett az adatait hitelesítik a [blokk fejlécekben lévő állapot gyökereken](/developers/docs/blocks/#block-anatomy) keresztül. További információkat kérhetnek a blokkokról, ha szükségük van rá. -- A teljes csomópontok betartatják a proof-of-work konszenzus szabályait, így nem lehet őket becsapni olyan blokkok elfogadására, amelyek nem követik őket. Ez extra biztonságot nyújt a hálózatnak, mert ha az összes csomópont kis méretű csomópont lenne, amelyek nem végeznek teljes ellenőrzést, a bányászok megtámadhatnák a hálózatot, és adott esetben magasabb jutalommal rendelkező blokkokat hozhatnának létre. - -Ha teljes csomópontot futtatsz, az egész Ethereum hálózat profitál belőle. - -## Saját csomópont üzemeltetése {#running-your-own-node} - -### Projektek {#projects} - -[**Válassz ki egy klienst, és kövesd az utasításokat**](#kliensek) - -**ethnode -** **_Üzemeltess egy Ethereum csomópontot (Geth vagy Parity) lokális fejlesztéshez._** - -- [GitHub](https://github.com/vrde/ethnode) - -**DAppNode -** **_Egy operációs rendszer web3 csomópontok futtatására egy dedikált gépen, beleértve az Ethereumot is._** - -- [dappnode.io](https://dappnode.io) - -### Erőforrások {#resources} - -- [Running Ethereum Full Nodes: A Complete Guide](https://medium.com/coinmonks/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _Nov 7, 2019 - Justin Leroux_ -- [Node Configuration Cheat Sheet](https://dev.to/5chdn/ethereum-node-configuration-modes-cheat-sheet-25l8) _Jan 5, 2019 - Afri Schoeden_ -- [How To Install & Run a Geth Node](https://www.quiknode.io/guides/infrastructure/how-to-install-and-run-a-geth-node) _Oct 4, 2020 - Sahil Sen_ -- [How To Install & Run a OpenEthereum (fka. Parity) Node](https://www.quiknode.io/guides/infrastructure/how-to-run-a-openethereum-ex-parity-client-node) _Sept 22, 2020 - Sahil Sen_ - -## Alternatívák {#alternatives} - -A saját csomópont futtatása nehéz lehet, és nem mindig kell saját példányt futtatnod. Ebben az esetben használhatod egy harmadik fél API szolgáltatását, mint az [Infura](https://infura.io), [Alchemy](https://alchemyapi.io), vagy a [QuikNode](https://www.quiknode.io). Alternatívaként használhatod az [ArchiveNode-ot](https://archivenode.io/), ami egy közösség által finanszírozott archív csomópont, mely archív adatot fog szolgáltatni az Ethereum blokkláncról független fejlesztőknek, akik egyébként nem engedhetnék meg ezt maguknak. - -Ha valaki egy Ethereum csomópontot futtat egy nyilvános API-jal a közösségedben, akkor át tudod irányítani a könnyű tárcákat (mint a MetaMask) erre a közösségi csomópontra [egy egyedi RPC-n keresztül](https://metamask.zendesk.com/hc/en-us/articles/360015290012-Using-a-Local-Node) és nagyobb fokú adatvédelemben részesülhetsz. - -Másrészt, ha klienst futtatsz, megoszthatod azokat barátaiddal, akiknek szüksége lehet rá. - -## Kliensek {#execution-clients} - -Az Ethereumot úgy tervezték, hogy különböző kliensekkel rendelkezzen, amelyeket különféle csapatok fejlesztettek ki különböző programozási nyelvek felhasználásával. Ez erősebbé és sokszínűbbé teszi a hálózatot. Az ideális cél a sokszínűség elérése anélkül, hogy egy kliens dominálna és a hiba lehetőséget a lehető legkisebbre szűkítsük. - -Ez a táblázat összegezi a különböző klienseket. Az összesen aktívan dolgoznak, karbantartják és mind átment a [kliens teszteken](https://github.com/ethereum/tests). - -| Kliens | Nyelv | Operációs rendszerek | Hálózatok | Szinkronizációs stratégiák | Állapot elhagyás | -| ------------------------------------------------------------ | -------- | --------------------- | --------------------------------------------- | -------------------------- | ------------------- | -| [Geth](https://geth.ethereum.org/) | Go | Linux, Windows, macOS | Mainnet, Görli, Rinkeby, Ropsten | Gyors, teljes | Archív, csökkentett | -| [OpenEthereum](https://github.com/openethereum/openethereum) | Rust | Linux, Windows, macOS | Mainnet, Kovan, Ropsten, és még több | Warp, teljes | Archív, csökkentett | -| [Nethermind](http://nethermind.io/) | C#, .NET | Linux, Windows, macOS | Mainnet, Görli, Ropsten, Rinkeby, és még több | Gyors, teljes | Archív, csökkentett | -| [Besu](https://besu.hyperledger.org/en/stable/) | Java | Linux, Windows, macOS | Mainnet, Rinkeby, Ropsten, és Görli | Gyors, teljes | Archív, csökkentett | -| [Trinity](https://trinity.ethereum.org/) | Python | Linux, macOS | Mainnet, Görli, Ropsten, és még több | Full, Beam, Fast/Header | Archív | - -További információkért a támogatott hálózatokról olvasd el az [Ethereum hálózatok](/developers/docs/networks/) cikket. - -### A különböző implementációk előnyei {#advantages-of-different-implementations} - -Minden kliens egyedi felhasználási esetekkel és előnyökkel rendelkezik, ezért a saját preferenciáid alapján válassz egyet. A sokféleség lehetővé teszi, hogy a megvalósítások különféle jellemzőkre és felhasználói közönségre összpontosuljanak. Előfordulhat, hogy a klienseket a szolgáltatások, a támogatás, a programozási nyelv vagy a licencek alapján választod ki. - -#### Go Ethereum {#geth} - -A Go Ethereum (röviden Geth) az egyik eredeti Ethereum protokoll implementáció. Jelenleg ez a legelterjedtebb kliens a legnagyobb felhasználói bázissal és sokféle eszközzel a felhasználók és a fejlesztők számára. Go-ban van írva, teljesen nyílt forráskódú és a GNU LGPL v3 licensz alatt fut. - -#### OpenEthereum {#openethereum} - -Az OpenEthereum egy gyors, funkcióban gazdag és fejlett CLI alapú Ethereum kliens. Úgy lett kialakítva, hogy biztosítsa a gyors és megbízható szolgáltatások alapvető infrastruktúráját, amelyek gyors szinkronizálást és maximális üzemidőt igényelnek. Az OpenEthereum célja, hogy a leggyorsabb, legkönnyebb és a legbiztonságosabb Ethereum klienssé váljon. Egy tiszta, moduláris kódbázist biztosít: - -- egyszerű módosíthatóság. -- könnyű integráció a szolgáltatásokba vagy termékekbe. -- minimális memória és tárhely lábnyom. - -Az OpenEthereumot a legmodernebb Rust programozási nyelv használatával fejlesztették ki, és a GPLv3 licenc alatt áll. - -#### Nethermind {#nethermind} - -A Nethermind egy Ethereum implementáció, amelyet a C # .NET tech stackkel hoztak létre, és amely minden nagyobb platformon fut, beleértve az ARM-et is. Magas teljesítményt nyújt: - -- egy optimizált virtuális géppel -- állapot eléréssel -- hálózati és gazdag tulajdonságokkal, mint a Prometheus/Graphana dashboard-ok, seq vállalati logolási támogatás, JSON RPC nyomon követés, és analitikai plugin-ek. - -Ezenkívül a Nethermind egy [részletes dokumentációval](https://docs.nethermind.io) rendelkezik, valamint erős fejlesztői támogatással és egy 24/7-es támogatással a prémium tagok részére. - -#### Besu {#besu} - -A Hyperledger Besu egy vállalati szintű Ethereum kliens nyilvános és engedélyhez kötött hálózatokhoz. Az Ethereum főhálózat összes funkcióját támogatja, a nyomon követéstől a GraphQL-ig, átfogó felügyelettel rendelkezik, és a ConsenSys támogatja, mind a nyílt közösségi csatornákon, mind a vállalkozások számára elérhető kereskedelmi SLA-k révén. Java nyelven íródott és az Apache 2.0 licensz alatt fut. - -### Szinkronizációs módok {#sync-modes} - -- Teljes - letölti az összes blokkot (beleértve a fejléceket, a tranzakciókat és a nyugtákat), és minden blokk végrehajtásával fokozatosan generálja a blokklánc állapotát. -- Gyors (alapértelmezett) - letölti az összes blokkot (beleértve a fejléceket, a tranzakciókat és a nyugtákat is), ellenőrzi az összes fejlécet, letölti az állapotot és ellenőrzi a fejlécekhez képest. -- Light - letölti az összes blokkfejlécet, blokk adatot, és véletlenszerűen ellenőriz néhányat. -- Warp sync - 5000 blokkonként a csomópontok konszenzuskritikus snapshotot készítenek az adott blokk állapotáról. Bármely csomópont be tudja tölteni ezeket a snapshotokat a hálózaton keresztül, lehetővé téve a gyors szinkronizálást. [Többet a Warp-ról](https://openethereum.github.io/wiki/Warp-Sync-Snapshot-Format) -- Beam sync - olyan szinkronizálási mód, amely lehetővé teszi a gyorsabb haladást. Nem igényel hosszú várakozást a szinkronizálásnál, ehelyett idővel visszatölti az adatokat. [Többet a Beam-ről](https://medium.com/@jason.carver/intro-to-beam-sync-a0fd168be14a) -- Header sync - megbízható ellenőrző ponttal kezdheted a szinkronizálást egy újabb fejlécből, majd egy háttér folyamat betölti idővel a hiányosságokat - -Te határozod meg, hogy milyen módban szinkronizáljon, amikor felállítod: - -**Light szinkronizálás beállítása a [GETH-ben](https://geth.ethereum.org/)** - -`geth --syncmode "light"` - -**Header sync beállítása Trinity-ben** - -`trinity --sync-from-checkpoint eth://block/byhash/0xa65877df954e1ff2012473efee8287252eee956c0d395a5791f1103a950a1e21?score=15,835,269,727,022,672,760,774` - -## Hardver {#hardware} - -A hardverkövetelmények kliensenként eltérőek, de általánosságban nem magasak, mivel a csomópontoknak szinkronban kell lenniük. Nem összekeverendő a bányászattal, aminek sokkal magasabb számításteljesítmény-igénye van. Ámbár a szinkronizációs idő és teljesítmény erősebb hardverrel javul. Igénynek megfelelően, Ethereum futhat saját számítógépen, otthoni szerveren, virtuális privát szervereken, vagy akár a felhőben is. - -Egy egyszerű módja a saját csomópont futtatásának például egy 'plug and play' doboz: [DAppNode](https://dappnode.io/). Ez egy hardvert biztosít hogy klienseket és alkalmazásokat futtassunk, ettől függően egy egyszerű kezelőfelülettel. - -### Követelmények {#requirements} - -Mielőtt telepítenénk egy klienst, győződjünk meg róla, hogy a számítógépünk rendelkezik elegendő erőforrással. Minimális és ajánlott követelményeket lejjeb találjuk, azonban a tárhely kulcsfontosságú. Az Ethereum blokklánc szinkronizálása nagyon input/output igényes. A legjobb, ha SSD-vel (solid-state-drive) rendelkezünk. Az Ethereum kliens futtatásához merevlemezen (HDD), legalább 8GB RAM szükséges, mint gyorsítótár. - -#### Minimális követelmények {#recommended-specifications} - -- Processzor 2+ maggal -- Minimum 4GB RAM SSD esetén, egyébként 8GB+ -- 8MBit/s sávszélesség - -#### Ajánlott követelmények {#recommended-specifications} - -- Gyors processzor 4+ maggal -- 16GB+ RAM -- Gyors SSD legalább 500GB tárhellyel -- 25+ MBit/s sávszélesség - -Attól függően hogy melyik szoftvert és szinkronizációs módot használjuk, több száz GB tárhelyre lesz szükség. Körülbelüli értékeket lásd lent. - -| Kliens | Tárhely (gyors szinkron) | Tárhely (teljes archívum) | -| ------------ | ------------------------ | ------------------------- | -| Geth | 400GB+ | 4.7TB+ | -| OpenEthereum | 280GB+ | 4.6TB+ | -| Nethermind | 200GB+ | 3TB+ | -| Besu | 750GB+ | 4TB+ | - -![Egy diagram, mely megmutatja, hogy a teljes szinkronizációhoz szükséges adat idővel nő](../../../../../developers/docs/nodes-and-clients/full-sync.png) - -![Egy diagram, mely megmutatja, hogy az archív szinkronizációhoz szükséges adat idővel nő](../../../../../developers/docs/nodes-and-clients/archive-sync.png) - -A fenti értékek mutatják hogy mindig változik a tárhelykövetelmény. A lehető legfrissebb adatokat a Geth-ről és a Parityről lásd itt: [Teljes szinkronizációs adat](https://etherscan.io/chartsync/chaindefault) és [Archívált szinkronizációs adat](https://etherscan.io/chartsync/chainarchive). - -### Ethereum egy egykártyás számítógépen {#ethereum-on-a-single-board-computer} - -A lehető legkényelmesebb és legegyszerűbb módja egy Ethereum csomópont futtatásának ha egykártyás számítógépet használunk ARM architektúrával, mint mondjuk egy Raspberry Pi. [Ethereum ARM-en](https://twitter.com/EthereumOnARM) találunk képeket Geth Parity, Nethermind és Besu kliensekről. Egy egyszerű leírás arról, hogy [hogyan telepítsünk egy ARM klienst](/developers/tutorials/run-node-raspberry-pi/). - -A kicsi, olcsó, és hatékony eszközök mint ezek ideálisak egy otthoni csomópont futtatására. - -## Eth2 kliensek {#consensus-clients} - -Az [Eth2 fejlesztéseket](/roadmap/beacon-chain/) új kliensek támogatják. A Beacon Chain-nen fognak futni és az új [proof-of-stake](/developers/docs/consensus-mechanisms/pos/) konszenzus mechanizmust fogják támogatni. - -## További olvasnivaló {#further-reading} - -Az interneten rengeteg utasítás és információ található az Ethereum kliensekről, itt van néhány ami hasznos lehet. - -- [Ethereum 101 - Part 2 - Understanding Nodes](https://kauri.io/ethereum-101-part-2-understanding-nodes/48d5098292fd4f11b251d1b1814f0bba/a) _– Wil Barnes, 2019 Február 13._ -- [Running Ethereum Full Nodes: A Guide for the Barely Motivated](https://medium.com/@JustinMLeroux/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _– Justin Leroux, 2019 November 7._ -- [Analyzing the hardware requirements to be an Ethereum full validated node](https://medium.com/coinmonks/analyzing-the-hardware-requirements-to-be-an-ethereum-full-validated-node-dc064f167902) _– Albert Palau, 2018 Szeptember 24._ -- [Running a Hyperledger Besu Node on the Ethereum Mainnet: Benefits, Requirements, and Setup](https://pegasys.tech/running-a-hyperledger-besu-node-on-the-ethereum-mainnet-benefits-requirements-and-setup/) _– Felipe Faraggi, 2020 Május 7._ - -## Kapcsolódó témák {#related-topics} - -- [Blokkok](/developers/docs/blocks/) -- [Hálózatok](/developers/docs/networks/) - -## Kapcsolódó útmutatók {#related-tutorials} - -- [Csomópont futtatása Geth-tel](/developers/tutorials/run-light-node-geth/) _– Hogyan lehet letölteni, telepíteni és futtatni a Geth-et. Lefedi a szinkronizációs módokat, a JavaScript konzolt és még sok mást._ -- [Alakítsd át a Raspberry Pi 4-edet egy Eth 1.0 vagy egy Eth 2.0 csomóponttá csak a MicroSD kártya flashelésével - Telepítési útmutató](/developers/tutorials/run-node-raspberry-pi/) _– Flasheld a Raspberry Pi 4-et, csatlakoztass egy ethernet kábelt, csatlakoztasd az SSD-t, és kapcsold be az eszközt, hogy a Raspberry Pi 4 teljes Ethereum 1.0 vagy Ethereum 2.0 csomópontokká (beacon chain / validátor) váljon._ diff --git a/src/content/translations/hu/developers/docs/standards/tokens/erc-20/index.md b/src/content/translations/hu/developers/docs/standards/tokens/erc-20/index.md deleted file mode 100644 index 41fec3b9324..00000000000 --- a/src/content/translations/hu/developers/docs/standards/tokens/erc-20/index.md +++ /dev/null @@ -1,150 +0,0 @@ ---- -title: ERC-20 Token Szabvány -description: -lang: hu ---- - -## Bevezetés {#introduction} - -**Mi is az a token?** - -A tokenek gyakorlatilag bármit képviselhetnek az Ethereumon: - -- reputációs pontokat egy online platformon -- egy karakter képességeit egy játékban -- lottó szelvényeket -- pénzügyi eszközöket, mint például részesedést egy cégben -- fiat valutát, mint az USD -- egy uncia aranyat -- és még sok más... - -Egy ilyen erős Ethereum tulajdonságot egy szintén erős szabványnak kell kezelnie, igaz? És pontosan itt jön képbe az ERC-20 szerepe! Ez a szabvány lehetővé teszi a fejlesztők számára, hogy olyan token alkalmazásokat fejlesszenek, amelyek együttműködnek más termékekkel és szolgáltatásokkal. - -**Mi az az ERC-20?** - -Az ERC-20 bevezeti a Felcserélhető Token szabványt, vagyis a tokeneknek meg van az a tulajdonságuk, hogy minden egyes token pontosan ugyanaz (típusban és értékben), mint egy másik token. Például egy ERC-20 token úgy viselkedik, mint az ETH, vagyis 1 token egyenlő és egyenlő is marad az összes többi tokennel. - -## Előfeltételek {#prerequisites} - -- [Számlák](/developers/docs/accounts) -- [Okosszerződések](/developers/docs/smart-contracts/) -- [Token szabványok](/developers/docs/standards/tokens/) - -## Törzs {#body} - -Az ERC-20 (Ethereum Request for Comments 20), melyet Fabian Vogelsteller javasolt 2015 novemberében, egy Token Szabvány, mely egy API-t implementál a tokenek számára az okosszerződéseken belül. - -Olyan funkcionalitásokat tartalmaz, mint a token átutalás egyik számláról a másikra vagy a token jelenlegi egyenlege az adott számlán valamint a teljes elérhető token mennyiség a hálózaton. Emellett vannak más más funkciók is, mint például annak jóváhagyása, hogy egy harmadik fél számlája elkölthessen egy bizonyos mennyiségű tokent az adott számláról. - -Ha egy okosszerződés implementálja a következő metódusokat és eseményeket, akkor egy ERC-20 token szerződésnek lehet nevezni, és a telepítés után a létrejött tokenek számontartásáért lesz felelős az Ethereumon. - -Az [EIP-20-ból](https://eips.ethereum.org/EIPS/eip-20): - -#### Metódusok {#methods} - -```solidity -function name() public view returns (string) -function symbol() public view returns (string) -function decimals() public view returns (uint8) -function totalSupply() public view returns (uint256) -function balanceOf(address _owner) public view returns (uint256 balance) -function transfer(address _to, uint256 _value) public returns (bool success) -function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) -function approve(address _spender, uint256 _value) public returns (bool success) -function allowance(address _owner, address _spender) public view returns (uint256 remaining) -``` - -#### Események {#events} - -```solidity -event Transfer(address indexed _from, address indexed _to, uint256 _value) -event Approval(address indexed _owner, address indexed _spender, uint256 _value) -``` - -### Példák {#web3py-example} - -Nézzük meg, miért olyan fontos egy szabvány, hogy egyszerűbbé tegye számunkra azt, hogy bármely ERC-20 token szerződést megtekinthessük az Ethereumon. Csak a szerződés Application Binary Interface-ére (ABI) lesz szükség, hogy egy felületet készítsünk bármely ERC-20 tokennek. Ahogy lentebb látni fogod, egy egyszerűsített ABI-t használunk, hogy egy egyszerűbb példával éljünk. - -#### Web3.py példa {#web3py-example} - -Először győződj meg arról, hogy a [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) Python könyvtár telepítve van: - -``` -pip install web3 -``` - -```python -from web3 import Web3 - - -w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) - -dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI -weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # Wrapped ether (WETH) - -acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11" # Uniswap V2: DAI 2 - -# Ez egy ERC-20 token szerződés egyszerűsített Application Binary Interface-e (ABI). -# Csak a következő metódusokat tartalmazza: balanceOf(address), decimals(), symbol() és totalSupply() -simplified_abi = [ - { - 'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], - 'name': 'balanceOf', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'decimals', - 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'symbol', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'totalSupply', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - } -] - -dai_contract = w3.eth.contract(address=w3.toChecksumAddress(dai_token_addr), abi=simplified_abi) -symbol = dai_contract.functions.symbol().call() -decimals = dai_contract.functions.decimals().call() -totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals -addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals - -# DAI -print("===== %s =====" % symbol) -print("Total Supply:", totalSupply) -print("Addr Balance:", addr_balance) - -weth_contract = w3.eth.contract(address=w3.toChecksumAddress(weth_token_addr), abi=simplified_abi) -symbol = weth_contract.functions.symbol().call() -decimals = weth_contract.functions.decimals().call() -totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals -addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals - -# WETH -print("===== %s =====" % symbol) -print("Total Supply:", totalSupply) -print("Addr Balance:", addr_balance) -``` - -## További olvasnivaló {#further-reading} - -- [EIP-20: ERC-20 Token Szabvány](https://eips.ethereum.org/EIPS/eip-20) -- [OpenZeppelin - Tokenek](https://docs.openzeppelin.com/contracts/3.x/tokens#ERC20) -- [OpenZeppelin - ERC-20 Implementáció](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) -- [ConsenSys - ERC-20 Implementáció](https://github.com/ConsenSys/Tokens/blob/master/contracts/eip20/EIP20.sol) - -## Kapcsolódó témák {#related-topics} - -- [ERC-721](/developers/docs/standards/tokens/erc-721/) -- [ERC-777](/developers/docs/standards/tokens/erc-777/) -- [ERC-1155](/developers/docs/standards/tokens/erc-1155/) diff --git a/src/content/translations/hu/developers/docs/standards/tokens/erc-721/index.md b/src/content/translations/hu/developers/docs/standards/tokens/erc-721/index.md deleted file mode 100644 index 600365a947c..00000000000 --- a/src/content/translations/hu/developers/docs/standards/tokens/erc-721/index.md +++ /dev/null @@ -1,247 +0,0 @@ ---- -title: ERC-721 Nem Felcserélhető Token Szabvány -description: -lang: hu ---- - -## Bevezetés {#introduction} - -**Mi az a nem felcserélhető token?** - -Egy nem felcserélhető tokent (NFT) valaki vagy valami egyedi beazonosítására lehet használni. Ezt a token típust tökéletesen lehet használni olyan platformokon, melyek gyűjthető tárgyakat, hozzáférési kulcsokat, lottó szelvényeket, sorszámozott koncert jegyeket vagy sportesemény jegyeket stb. árulnak. Ez a speciális token típus csodás lehetőségeket rejt magában, így megérdemel egy rendes szabványt, az ERC-721 szolgál megoldásul! - -**Mi az az ERC-721?** - -Az ERC-721 bevezeti az NFT szabványt, vagyis ez a token típus egyedi és különböző értékekkel rendelkezhet, mint egy másik token ugyanabból az okosszerződésből, ami esetleg a korából, ritkaságából vagy a kinézetéből származik. Egy pillanat, kinézet? - -Igen! Minden NFT-nek van egy `uint256` változója `tokenId` néven, így minden ERC-721 szerződéshez tartozó `contract address-nek és a uint256 tokenId-nek` globálisan egyedinek kell lennie. Mondjuk egy dappnak lehet egy "konvertere", mely a `tokenId` változót használja bemenetre és kimenetként valami menő dolog képét adja vissza például zombikat, fegyvereket, képességeket vagy csodálatos kiscicákat! - -## Előfeltételek {#prerequisites} - -- [Számlák](/developers/docs/accounts/) -- [Okosszerződések](/developers/docs/smart-contracts/) -- [Token szabványok](/developers/docs/standards/tokens/) - -## Törzs {#body} - -Az ERC-721 (Ethereum Request for Comments 721), melyet William Entriken, Dieter Shirley, Jacob Evans és Nastassia Sachs javasolt 2018 januárjában, egy nem felcserélhető token szabványt vezet be, mely egy token API-t implementál az okosszerződéseken belül. - -Olyan funkcionalitásokat tartalmaz, mint a token átutalás egyik számláról a másikra, a token jelenlegi egyenlege az adott számlán, az adott token jelenlegi tulajdonosa valamint a teljes elérhető tokenmennyiség a hálózaton. Emellett vannak más más funkciók is, mint például annak jóváhagyása, hogy egy harmadik fél számlája átmozgasson egy bizonyos mennyiségű tokent az adott számláról. - -Ha egy okosszerződés implementálja a következő metódusokat és eseményeket, akkor egy ERC-721 nem felcserélhető token szerződésnek lehet nevezni, és a telepítés után a létrejött tokenek számontartásáért lesz felelős az Ethereumon. - -Az [EIP-721-ből](https://eips.ethereum.org/EIPS/eip-721): - -#### Metódusok {#methods} - -```solidity - function balanceOf(address _owner) external view returns (uint256); - function ownerOf(uint256 _tokenId) external view returns (address); - function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; - function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; - function transferFrom(address _from, address _to, uint256 _tokenId) external payable; - function approve(address _approved, uint256 _tokenId) external payable; - function setApprovalForAll(address _operator, bool _approved) external; - function getApproved(uint256 _tokenId) external view returns (address); - function isApprovedForAll(address _owner, address _operator) external view returns (bool); -``` - -#### Események {#events} - -```solidity - event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); - event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); - event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); -``` - -### Példák {#web3py-example} - -Nézzük meg, miért olyan fontos egy szabvány, hogy egyszerűbbé tegye számunkra azt, hogy bármely ERC-721 token szerződést megtekinthessük az Ethereumon. Csak a szerződés Application Binary Interface-ére (ABI) lesz szükség, hogy egy felületet készítsünk bármely ERC-721 tokennek. Ahogy lentebb látni fogod, egy egyszerűsített ABI-t használunk, hogy egy egyszerűbb példával éljünk. - -#### Web3.py példa {#web3py-example} - -Először győződj meg arról, hogy a [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) Python könyvtár telepítve van: - -``` -pip install web3 -``` - -```python -from web3 import Web3 -from web3.utils.events import get_event_data - - -w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) - -ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # CryptoKitties Szerződés - -acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # CryptoKitties Aukció - -# Ez az ERC-721 NFT szerződésnek az egyszerűsített Contract Application Binary Interface-e (ABI). -# Csak a következő metódusokat tartalmazza: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply() -simplified_abi = [ - { - 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], - 'name': 'balanceOf', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'name', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], - 'name': 'ownerOf', - 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'symbol', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'totalSupply', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, -] - -ck_extra_abi = [ - { - 'inputs': [], - 'name': 'pregnantKitties', - 'outputs': [{'name': '', 'type': 'uint256'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [{'name': '_kittyId', 'type': 'uint256'}], - 'name': 'isPregnant', - 'outputs': [{'name': '', 'type': 'bool'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - } -] - -ck_contract = w3.eth.contract(address=w3.toChecksumAddress(ck_token_addr), abi=simplified_abi+ck_extra_abi) -name = ck_contract.functions.name().call() -symbol = ck_contract.functions.symbol().call() -kitties_auctions = ck_contract.functions.balanceOf(acc_address).call() -print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}") - -pregnant_kitties = ck_contract.functions.pregnantKitties().call() -print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}") - -# Using the Transfer Event ABI to get info about transferred Kitties. -tx_event_abi = { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'from', 'type': 'address'}, - {'indexed': False, 'name': 'to', 'type': 'address'}, - {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}], - 'name': 'Transfer', - 'type': 'event' -} - -# Szükségünk van az esemény szignójára, hogy kiszűrjük a logokat -event_signature = w3.sha3(text="Transfer(address,address,uint256)").hex() - -logs = w3.eth.getLogs({ - "fromBlock": w3.eth.blockNumber - 120, - "address": w3.toChecksumAddress(ck_token_addr), - "topics": [event_signature] -}) - -# Megjegyzések: -# - a Cloudflare szolgáltatónak 120 blokk a maximum hatótávja -# - Ha nem találtál semmilyen Transfer eseményt, akkor a tokenId-t megkapthatod itt is: -# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events -# Kattints az esemény logok kiterjesztésére és másold ki a "tokenId" paraméterét - -recent_tx = [get_event_data(tx_event_abi, log)["args"] for log in logs] - -kitty_id = recent_tx[0]['tokenId'] # Paste the "tokenId" here from the link above -is_pregnant = ck_contract.functions.isPregnant(kitty_id).call() -print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}") -``` - -A CryptoKitties szerződésnek van egy pár érdekes eseménye, ami nem standard. - -Nézzünk meg kettőt közülük, `Pregnant` és `Birth`. - -```python -# A Pregnant és a Birth esemény ABI-ok használata, hogy infókat kapjunk meg az új cicákról. -ck_extra_events_abi = [ - { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'owner', 'type': 'address'}, - {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, - {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, - {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}], - 'name': 'Pregnant', - 'type': 'event' - }, - { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'owner', 'type': 'address'}, - {'indexed': False, 'name': 'kittyId', 'type': 'uint256'}, - {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, - {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, - {'indexed': False, 'name': 'genes', 'type': 'uint256'}], - 'name': 'Birth', - 'type': 'event' - }] - -# Szükségünk van az esemény szignójára, hogy kiszűrjük a logokat -ck_event_signatures = [ - w3.sha3(text="Pregnant(address,uint256,uint256,uint256)").hex(), - w3.sha3(text="Birth(address,uint256,uint256,uint256,uint256)").hex(), -] - -# Itt a Pregnant Event: -# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog -pregnant_logs = w3.eth.getLogs({ - "fromBlock": w3.eth.blockNumber - 120, - "address": w3.toChecksumAddress(ck_token_addr), - "topics": [ck_extra_events_abi[0]] -}) - -recent_pregnants = [get_event_data(ck_extra_events_abi[0], log)["args"] for log in pregnant_logs] - -# Itt a Birth Event: -# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a -birth_logs = w3.eth.getLogs({ - "fromBlock": w3.eth.blockNumber - 120, - "address": w3.toChecksumAddress(ck_token_addr), - "topics": [ck_extra_events_abi[1]] -}) - -recent_births = [get_event_data(ck_extra_events_abi[1], log)["args"] for log in birth_logs] -``` - -## Népszerű NFT-k {#popular-nfts} - -- [Etherscan NFT Tracker](https://etherscan.io/tokens-nft) legnagyobb forgalommal rendelkező NFT-k listája az Ethereumon. -- [CryptoKitties](https://www.cryptokitties.co/) egy játék, mely pároztatható, gyűjthető és imádnivaló lényekről szól, melyeket CryptoKittinek nevezünk. -- [Sorare](https://sorare.com/) egy globális fantáziafutball-játék, ahol korlátozott példányszámú gyűjtögetni valót gyűjthetsz, irányíthatod a csapataidat, és versenyezhetsz, hogy díjakat szerezz. -- [Az Ethereum Name Service (ENS)](https://ens.domains/) egy biztonságos & decentralizált módját kínálja az erőforrások kezelésére a blokkláncon vagy azon kívül egyszerű, emberek számára is olvasható nevek használatával. -- [Unstoppable Domains](https://unstoppabledomains.com/) egy San Francisco székhelyű vállalat, mely domain neveket fejleszt a blokkláncra. A blokklánc domainek a kriptovaluta-címeket ember által is olvasható nevekre cserélik, és használhatók cenzúra-ellenálló weboldalakhoz is. -- [Gods Unchained Cards](https://godsunchained.com/) egy TCG az Ethereum blokkláncon, mely NFT-ket használ, hogy valódi tulajdonjogot biztosítson a játékon belüli eszközökre. - -## További olvasnivaló {#further-reading} - -- [ERC-721: Nem Felcserélhető Token Szabvány](https://eips.ethereum.org/EIPS/eip-721) -- [OpenZeppelin - ERC-721 Dokumentáció](https://docs.openzeppelin.com/contracts/3.x/erc721) -- [OpenZeppelin - ERC-721 Implementáció](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) - -## Kapcsolódó témák {#related-topics} - -- [ERC-20](/developers/docs/standards/tokens/erc-20/) -- [ERC-777](/developers/docs/standards/tokens/erc-777/) -- [ERC-1155](/developers/docs/standards/tokens/erc-1155/) diff --git a/src/content/translations/hu/developers/docs/transactions/index.md b/src/content/translations/hu/developers/docs/transactions/index.md deleted file mode 100644 index 95f82609aa0..00000000000 --- a/src/content/translations/hu/developers/docs/transactions/index.md +++ /dev/null @@ -1,152 +0,0 @@ ---- -title: Tranzakciók -description: Egy áttekintő az Ethereum tranzakciókról – hogyan működnek, az adatszerkezetük és hogyan lehet őket elküldeni egy alkalmazáson keresztül. -lang: hu -isOutdated: true ---- - -A tranzakciók számlákból származó kriptográfiailag aláírt instrukciók. Egy számla tranzakciót indíthat, hogy frissítse az Ethereum hálózat állapotát. A legegyszerűbb tranzakció az ETH átutalása egyik számláról a másikra. - -## Előfeltételek {#prerequisites} - -Ennek az oldalnak a jobb megértése érdekében javasoljuk, hogy először olvasd el a [Számlák](/developers/docs/accounts/) és a [bevezetés az Ethereumba](/developers/docs/intro-to-ethereum/) című cikkeinket. - -## Mi az a tranzakció? {#whats-a-transaction} - -Az Ethereum tranzakció egy külső tulajdonú számla által kezdeményezett tevékenységre utal, más szóval egy számla, melyet egy ember kezel, nem pedig egy szerződés. Például ha Bob elküld Alice-nek 1 ETH-et, akkor Bob számláját terhelni kell, Alice számlájára pedig jóvá kell írni az összeget. Ez az állapotot megváltoztató művelet egy tranzakción belül történik. - -![Egy diagram, mely egy tranzakciót ábrázol, ahogy az megváltoztatja az állapotot](../../../../../developers/docs/transactions/tx.png) _Diagram átvéve az [Ethereum EVM illusztrálva](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ anyagból - -A tranzakciókat, melyek megváltoztatják az EVM állapotát, a teljes hálózat számára közvetíteni kell. Bármely csomópont kérvényezheti egy tranzakció végrehajtását az EVM-en; miután ez megtörténik, egy bányász végrehajtja a tranzakciót és továbbterjeszti az eredményül kapott állapotot a hálózat többi része számára. - -A tranzakcióknak van egy díja, és ki kell bányászni őket, hogy érvényessé váljanak. Hogy egyszerűbb legyen ez az áttekintő, a gáz díjak és a bányászat témaköröket máshol taglaljuk. - -Az elküldött tranzakció a következő információkat tartalmazza: - -- `recipient` – a fogadó cím (ha egy külső tulajdonú számla, akkor a tranzakció értéket továbbít. Ha egy szerződéses számla, akkor a tranzakció szerződés kódot fog végrehajtani) -- `signature` – a küldő azonosítója. Ez akkor jön létre, amikor a feladó privát kulcsa aláírja a tranzakciót, és megerősíti, hogy a küldő engedélyezte ezt a tranzakciót -- `value` – az átküldendő ETH mennyiség a küldőtől a címzettnek (WEI-ben, az ETH egységében megadva) -- `data` – opcionális mező tetszőleges adat megadására -- `gasLimit` – a maximális gáz egység, melyet a tranzakció elfogyaszthat. A gáz egységek számítási lépéseket reprezentálnak -- `gasPrice` – a díj, melyet a küldő fizet gáz egységenként - -A gáz a bányász által a tranzakció feldolgozásához szükséges számításra utal. A felhasználóknak egy díjat kell fizetniük ezért a számításért. A `gasLimit` és a `gasPrice` meghatározza a bányásznak fizetett maximális tranzakciós díjat. [Többet a gázról](/developers/docs/gas/). - -A tranzakció objektum nagyjából így néz ki: - -```js -{ - from: "0xEA674fdDe714fd979de3EdF0F56AA9716B898ec8", - to: "0xac03bb73b6a9e108530aff4df5077c2b3d481e5a", - gasLimit: "21000", - gasPrice: "200", - nonce: "0", - value: "10000000000", -} -``` - -De a tranzakció objektumot alá kell írni a küldő privát kulcsával. Ez bizonyítja, hogy a tranzakció kizárólag a küldőtől jöhetett és nem történt csalás. - -Egy Ethereum kliens, mint a Geth, fogja kezelni az aláírási folyamatot. - -Példa [JSON-RPC](https://eth.wiki/json-rpc/API) hívás: - -```json -{ - "id": 2, - "jsonrpc": "2.0", - "method": "account_signTransaction", - "params": [ - { - "from": "0x1923f626bb8dc025849e00f99c25fe2b2f7fb0db", - "gas": "0x55555", - "gasPrice": "0x1234", - "input": "0xabcd", - "nonce": "0x0", - "to": "0x07a565b7ed7d7a678680a4c162885bedbb695fe0", - "value": "0x1234" - } - ] -} -``` - -Példa válasz: - -```json -{ - "jsonrpc": "2.0", - "id": 2, - "result": { - "raw": "0xf88380018203339407a565b7ed7d7a678680a4c162885bedbb695fe080a44401a6e4000000000000000000000000000000000000000000000000000000000000001226a0223a7c9bcf5531c99be5ea7082183816eb20cfe0bbc322e97cc5c7f71ab8b20ea02aadee6b34b45bb15bc42d9c09de4a6754e7000908da72d48cc7704971491663", - "tx": { - "nonce": "0x0", - "gasPrice": "0x1234", - "gas": "0x55555", - "to": "0x07a565b7ed7d7a678680a4c162885bedbb695fe0", - "value": "0x1234", - "input": "0xabcd", - "v": "0x26", - "r": "0x223a7c9bcf5531c99be5ea7082183816eb20cfe0bbc322e97cc5c7f71ab8b20e", - "s": "0x2aadee6b34b45bb15bc42d9c09de4a6754e7000908da72d48cc7704971491663", - "hash": "0xeba2df809e7a612a0a0d444ccfa5c839624bdc00dd29e3340d46df3870f8a30e" - } - } -} -``` - -- a `raw` az aláírt tranzakció rekurzív hosszúságú prefixumban (RLP) enkódolva -- a `tx` az aláírt tranzakció JSON-ban - -A szignatúra hash-sel a tranzakcióról kriptográfiailag be lehet bizonyítani, hogy a küldőtől jött és továbbították a hálózatra. - -### A gázról {#on-gas} - -Ahogy korábban említettük, a tranzakciók [gáz](/developers/docs/gas/) költséget igényelnek a lefutáshoz. Egy egyszerű átutalás 21000 gáz egységet igényel. - -Így ahhoz, hogy Bob 1 ETH-et küldjön Alice-nek 200 Gwei `gasPrice` értékkel, a következő díjat kell kifizetnie: - -``` -200*21000 = 4,200,000 GWEI ---vagy-- -0.0042 ETH -``` - -Bob számláját **-1.0042 ETH** terhelés éri - -Alice számlájára **+1.0 ETH**-et írnak jóvá - -A bányász, aki feldolgozta a tranzakciót **+0.0042 ETH**-et fog kapni - -Az okosszerződés interakciók is gázt igényelnek. - -![Egy diagram, mely a fel nem használt gáz visszatérítését ábrázolja](../../../../../developers/docs/transactions/gas-tx.png) _Diagram átvéve az [Ethereum EVM illusztrálva](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ anyagból - -Minden fel nem használt gáz visszakerül a felhasználó számlájára. - -## Tranzakció életciklus {#transaction-lifecycle} - -Amikor elküld valaki egy tranzakciót, a következő történik: - -1. Amikor elküldesz egy tranzakciót, egy kriptográfiai hash jön létre: `0x97d99bc7729211111a21b12c933c949d4f31684f1d6954ff477d0477538ff017` -2. A tranzakciót ezután közvetítik a hálózatra, és sok más tranzakcióval rendelkező készletbe foglalják. -3. Egy bányásznak ki kell választania a tranzakciódat és belefoglalnia egy blokkba, hogy hitelesítse és "sikeresnek" minősítse. - - Lehet, hogy ennél a résznél várnod kell, ha a hálózaton nagy a forgalom és a bányászok nem tudnak lépést tartani. A bányászok, mindig a nagyobb `GASPRICE` értékű tranzakciót veszik előre, mivel megtarthatják a tranzakciós díjakat. -4. A tranzakciód kap egy blokk megerősítési számot is. Ez azoknak a blokkoknak a mennyisége, melyek azután jöttek létre, miután te tranzakciódat blokkba foglalták. Minél nagyobb ez a szám, annál nagyobb bizonyossággal lehet kimondani, hogy a tranzakciót feldolgozták és a hálózat elismeri. Ez azért van, mert néha a blokk, mely befoglalja a tranzakciódat, nem mindig jut el a láncig. - - Minél nagyobb a blokk megerősítési szám, annál nehezebb megváltoztatni a tranzakciót. Így nagyobb értékű tranzakcióknál, nagyobb blokk megerősítési szám az elvárt. - -## Egy vizuális bemutató {#a-visual-demo} - -Nézd meg, ahogy Austin átvezet a tranzakciókon, a gázon és a bányászaton. - - - -## További olvasnivaló {#further-reading} - -_Ismersz olyan közösségi anyagot, amely segített neked? Módosítsd az oldalt és add hozzá!_ - -## Kapcsolódó témák {#related-topics} - -- [Számlák](/developers/docs/accounts/) -- [Ethereum virtuális gép (EVM)](/developers/docs/evm/) -- [Üzemanyag](/developers/docs/gas/) -- [Bányászat](/developers/docs/consensus-mechanisms/pow/mining/) diff --git a/src/content/translations/hu/nft/index.md b/src/content/translations/hu/nft/index.md deleted file mode 100644 index 7f9dd4a4782..00000000000 --- a/src/content/translations/hu/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Nem helyettesíthető tokenek (NFT-k) -description: Az NFT-k áttekintése az Ethereum hálózaton -lang: hu -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: Egy Eth logó, amely hologram segítségével jelenik meg. -summaryPoint1: Egy módszer arra, hogy egyedi dolgokat Ethereum alapú javakként jelenítsünk meg. -summaryPoint2: Az NFT-k minden korábbinál nagyobb hatalmat adnak a tartalomgyártók kezébe. -summaryPoint3: Az Ethereum blokklánc okosszerződései által működtetve. ---- - -## Mik azok a nem helyettesíthető tőkenek (NFT)? {#what-are-nfts} - -Az NFT-k olyan tokenek, melyek teljesen egyediek. Minden egyes NFT más jellemzőkkel bír (nem helyettesíthető) és bizonyítottan véges. Különbözik más tokenektől, mint amilyen az ERC-20 is, ahol egy adott tokenszett minden eleme azonos és ugyanolyan jellemzőkkel bír (helyettesíthető). Nem számít, hogy az ember pénztárcájában konkrétan melyik bankjegy található, mert mindegyik azonos és ugyanolyan értékű. Az azonban _valóban_ számít, hogy Ön melyik NFT-t birtokolja, mert egyedi jellemzőik megkülönböztetik azokat egymástól (nem helyettesíthető). - -Az NFT-k egyedisége révén akár műtárgyak, gyűjthető tárgyak vagy ingatlanok is tokenné alakíthatók. Ekkor egy adott egyedi NFT egy specifikus, egyedi, valós vagy digitális tárgyat képvisel. Egy eszköz tulajdonjogát az Ethereum-blokklánc biztosítja – senki sem módosíthatja a tulajdonjog igazolását, vagy hozhat létre új NFT-t másolással és beillesztéssel. - - - -## Az eszközök internete {#internet-of-assets} - -Az NFT-k és az Ethereum megoldást jelent néhány, napjainkban az interneten jelen lévő problémára. Ahogy minden egyre digitálisabbá válik, egyre inkább szükség van a fizikai tárgyak bizonyos tulajdonságainak replikálására, mint például a ritkaság, az egyediség és a tulajdonjog bizonyítása. oly módon, hogy azt ne egy központi szervezet irányítsa. Például az NFT révén bárki birtokolhat olyan mp3 zenét, mely nem egy cég specifikus zenei alkalmazásához kötődik, illetve egy olyan oldalt a közösségi médiában, melyet eladhat vagy elcserélhet, de azt nem veheti el önkényesen a platform szolgáltatója. - -Így néz ki az NFT-k internete ahhoz az internethez képest, amelyet a többségünk minden nap használ... - -### Összehasonlítás {#nft-comparison} - -| Az NFT-k internete | Az internet ma | -| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Ön birtokolja az eszközeit! Egyedül Ön adhatja vagy cserélheti el azokat. | Eszközt bérel valamelyik szervezettől. | -| Az NFT-k digitálisan egyediek, nincs két azonos NFT. | Egy adott entitás másolatát gyakran nem lehet megkülönböztetni az eredetitől. | -| Az NFT tulajdonjogát a blokklánc tárolja, így bárki beazonosíthatja azt. | A digitális javak tulajdonjogi nyilvántartását intézmények által ellenőrzött szervereken tárolják – az ő szavukra kell hagyatkoznunk. | -| Az NFT-k okosszerződések az Ethereum hálózatán. Ez azt jelenti, hogy így könnyen fel lehet azokat használni más okosszerződésekben és alkalmazásokban az Ethereumon! | A digitális eszközöket birtokló vállalatoknak általában saját, falakkal védett infrastruktúrát kell kialakítaniuk. | -| A tartalomkészítők bárhol eladhatják munkáikat, és hozzáférhetnek a világpiachoz. | Az alkotók csak annak a felületnek a hálózatára és disztribúciójára támaszkodhatnak, amelyet használnak. Ezeknek gyakran felhasználási feltételei és földrajzi korlátai vannak. | -| Az NFT létrehozói megtarthatják tulajdonjogaikat saját munkájukat illetően, valamint belefoglalhatják a jogdíjfizetést az NFT szerződésbe. | Az online zeneszolgáltatók és a hasonló platformok megtartják a haszon túlnyomó részét. | - -## Hogyan működnek az NFT-k? {#how-nfts-work} - -Ahogy az Ethereumon létrehozott többi tokent, az NFT-ket is okosszerződések kreálják. Az okosszerződés a számos NFT-standard egyikét (általában ERC-721 vagy ERC-1155) alkalmazza, mely meghatározza a szerződés funkcióit. A szerződés létrehozza (minteli) az NFT-t, és egy adott tulajdonoshoz rendeli. A tulajdonjogot úgy határozza meg a szerződés, hogy az adott NFT-t adott címhez köti. Az NFT rendelkezik egy azonosítóval (ID) és jellemzően metaadatok kapcsolódnak hozzá, melyek egyedivé teszik az adott tokent. - -Amikor valaki létrehozza vagy minteli az NFT-t, akkor valójában az okosszerződés egy funkcióját indítja el, mely a címéhez rendeli az adott NFT-t. Ezt az információt a szerződés tárhelye őrzi a blokklánc részeként. A szerződés létrehozója egyéb logikát is belevehet a szerződésbe, mint például a kínálat korlátozása, illetve jogdíjfizetés az alkotónak minden alkalommal, amikor a token tulajdonost vált. - -## Mire használják az NFT-ket? {#nft-use-cases} - -Az NFT-ket számtalan esetben használják, ilyen például: - -- egy eseményen való részvétel igazolása -- egy elvégzett képzés bizonyítványa -- a játékokban birtokolható dolgok -- digitális művészet -- valós tárgyak tokenizálása -- online személyazonosság bizonyítása -- hozzáférés bizonyos tartalmakhoz -- jegyek -- decentralizált internetes domainnevek -- fedezet a decentralizált pénzügyekben (DeFi) - -Tegyük fel, hogy Ön egy művész, aki szeretné NFT-ként megosztani az alkotását, anélkül hogy elveszítené az ellenőrzést felette és közvetítőkre áldozná a profitját. Létrehozhat egy új szerződést, melyben megadja az NFT-k számát, jellemzőiket, és hozzákapcsolja az adott műalkotást. Beleírhatja az okosszerződésbe az Önnek járó jogdíjakat (pl. az eladási ár 5%-át utalják a szerződés tulajdonosának minden alkalommal, amikor az NFT gazdát cserél). Mindig képes lesz bizonyítani, hogy Ön hozta létre az NFT-ket, mert a birtokában van az a tárca, mely létrehozta a szerződést. A vásárlók is könnyedén bizonyíthatják, hogy eredeti NFT-vel rendelkeznek az Ön kollekciójából, mert a tárcáik címe hozzá van rendelve egy tokenhez az okosszerződésben. Az egész Ethereum-ökoszisztémában használhatják az NFT-t, teljes bizonyossággal az eredetiségét illetően. - -Vagy vegyünk például egy sporteseményre szóló jegyet. Ahogyan egy rendezvény szervezője eldöntheti, hogy hány jegyet ad el, úgy az NFT létrehozója is eldöntheti, hogy hány másolat létezhet. Néha ezek pontos másolatok, mint például 5000 darab nem helyre szóló belépőjegy. Néha több olyan jegyet is kiállítanak, amelyek nagyon hasonlóak, de mindegyik kissé különbözik, mint például kijelölt ülőhelyekre szóló jegyek. Ezeket vehetik és adhatják egymás között (peer-to-peer) anélkül, hogy fizetni kellene a jegyárusoknak, a vevő pedig a szerződés címét ellenőrizve mindig meggyőződhet a jegyek eredetiségéről. - -Az ethereum.org portálon NFT-t használunk arra, hogy igazoljuk a tagok közreműködését a Github gyűjteményhez (repóhoz) vagy a részvételüket bizonyos konferenciabeszélgetéseken, sőt, saját NFT domainnévvel is rendelkezünk. Ha Ön hozzájárul az ethereum.org felülethez, egy POAP NFT-t igényelhet. Bizonyos kriptotalálkozók POAP-ot (részvételt tanúsító protokollt) használnak jegy gyanánt. [Tudjon meg többet a hozzájárulásról](/contributing/#poap). - -![ethereum.org POAP](./poap.png) - -Ez a weboldal egy alternatív, NFT-k által működtetett domainnévvel is rendelkezik: **ethereum.eth**. Az `.org` címünket központilag egy domainnévrendszer (DNS) szolgáltató kezeli, míg az ethereum`.eth` cím az Ethereum Name Service (ENS) szolgáltatáson keresztül van regisztrálva az Ethereumra. Ezt a mi tulajdonunkban van, és mi kezeljük. [Tekintse meg az ENS-adatainkat](https://app.ens.domains/name/ethereum.eth) - -[Bővebben az ENS-ről](https://app.ens.domains) - - - -### Az NFT-k biztonsága {#nft-security} - -Az Ethereum biztonságát a letét bizonyítéka (vagyis a proof-of-stake) adja. A rendszert úgy tervezték, hogy gazdaságilag visszatartson a rosszindulatú cselekedetektől, így az Ethereum hamisíthatatlan. Ennek köszönhetően létezhetnek az NFT-k. Ha az NFT-tranzakciót tartalmazó blokk véglegesítetté válik, egy támadónak több millió ETH-ba kerülne megváltoztatni azt. Bárki, aki Ethereum-szoftvert futtat, azonnal képes lenne észlelni az NFT tisztességtelen manipulálását, és a csalárd szereplőt gazdaságilag megbüntetnék és kizárnák. - -Az NFT-kel kapcsolatos biztonsági problémák leggyakrabban adathalász csalásokhoz, okosszerződések sebezhetőségéhez vagy felhasználói hibákhoz (például a privát kulcsok véletlen felfedéséhez) kapcsolódnak, így a megfelelő tárcabiztonság kritikus fontosságú az NFT-tulajdonosok számára. - - - Bővebben a biztonságról - - -## További olvasnivaló {#further-reading} - -- [A beginner's guide to NFTs](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, 2020. január _ -- [EtherscanNFT trekker](https://etherscan.io/nft-top-contracts) -- [ERC-721 tokenszabvány](/developers/docs/standards/tokens/erc-721/) -- [ERC-1155 tokenszabvány](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/hu/refi/index.md b/src/content/translations/hu/refi/index.md deleted file mode 100644 index a863258242a..00000000000 --- a/src/content/translations/hu/refi/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: Regeneratív pénzügyek (ReFi) -description: A regeneratív pénzügyek (ReFi) áttekintése és jelenlegi használata. -lang: hu -template: use-cases -emoji: ":recycle:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Egy alternatív gazdasági rendszer, mely regeneratív elvekre épül -summaryPoint2: Az Ethereum kiaknázása a globális koordinációs krízisek megoldására, mint amilyen a klímaváltozás is -summaryPoint3: Az ökológiailag hasznos eszközök drasztikus skálázási lehetősége, mint amilyen az igazolt karbonkredit is ---- - -## Mik azok a regeneratív pénzügyek (ReFi)? {#what-is-refi} - -**A regeneratív pénzügyek (ReFi)** olyan blokkláncra épülő eszközök és eszmék összessége, melyek célja a regeneratív gazdaságok kialakítása a kitermelési vagy kizsákmányolási helyett. A kizsákmányoláson alapuló rendszerek végül felélik a rendelkezésre álló erőforrásokat és összeomlanak; a regeneratív mechanizmusok nélkül nem bírnak kellő rugalmassággal. A ReFi azon a feltételezésen alapszik, hogy a pénzügyi érték létrehozását el kell választani a bolygó és a közösségek erőforrásainak nem fenntartható kizsákmányolásától. - -Ehelyett a ReFi arra törekszik, hogy regeneratív ciklusok létrehozásával környezeti, közösségi és szociális problémákat oldjon meg. Ezek a rendszerek egyszerre teremtenek értéket a résztvevőknek, valamint az ökoszisztéma és a közösségek javait szolgálják. - -A ReFi egyik alapköve a regeneratív gazdaság koncepciója, melyet John Fullerton fogalmazott meg a [Capital Institute intézettől](https://capitalinstitute.org). Nyolc összefüggő elvet javasolt, melyek megalapozzák a rendszer egészségét: - -![A nyolc összefüggő elv](../../assets/use-cases/refi-regenerative-economy-diagram.png) - -A ReFi projektek ezeket az elveket valósítják meg az [okosszerződések](/developers/docs/smart-contracts/) és [a decentralizált pénzügyek (DeFi)](/defi/) alkalmazásainak segítségével, hogy ösztönözzék a regeneratív viselkedéseket, mint amilyen a lepusztult ökoszisztémák visszaállítása, illetve a nagy léptékű együttműködés elősegítése olyan globális problémák esetén, mint a klímaváltozás és a biodiverzitás-csökkenés. - -A ReFi egyúttal átfedésben van a [decentralizált tudomány (DeSci)](/desci/) mozgalommal, mely az Ethereumot használja platformként a tudományos ismeretek finanszírozása, létrehozása, értékelése, hitelesítése, tárolása és terjesztése céljából. A DeSci eszközök hasznosak lehetnek ahhoz, hogy a regeneratív tevékenységek (faültetés, a műanyagok összegyűjtése az óceánból, lepusztult ökoszisztémák visszaállítása) bevezetését és monitorozását igazolható szabványokkal és gyakorlatokkal támasszák alá. - -## A karbonkreditek tokenizálása {#tokenization-of-carbon-credits} - -Az **[önkéntes karbonpiac (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** olyan projektek finanszírozási mechanizmusa, melyek igazolhatóan pozitív hatást gyakorolnak a szén-dioxid kibocsátásra, akár az aktuális kibocsátás csökkentésével vagy a más kibocsátott üvegházhatású gázok lekötésével. Ezek a projektek egy karbonkreditnek nevezett eszközt kapnak az igazolási eljárás után, melyet olyan egyéneknek és szervezeteknek adhatnak el, akik támogatni szeretnék a klímára ható intézkedéseket. - -Az önkéntes karbonpiac (VCM) mellett számos kormányzat által kötelezővé tett karbonpiac is létezik, hogy törvényekkel vagy szabályozásokkal egy adott joghatóságon belül (pl. ország vagy régió) bevezessenek egy olyan karbonárat, mellyel kontrollálnák a kiadott karbonkibocsátási engedélyeket. Ezek a kötelező karbonpiacok arra ösztönzik a kibocsátókat az adott joghatóságon belül, hogy csökkentsék kibocsátásukat, de a már kibocsátott üvegházhatású gázok lekötésére nincs ráhatásuk. - -Az elmúlt évtizedek fejlődése ellenére a VCM továbbra is számtalan problémával küzd: - -1. A likviditás, vagyis az elérhető pénzeszközök nagyon szétdaraboltak -2. A tranzakciók működése nem átlátható -3. Magas díjak -4. A kereskedési sebesség nagyon lassú -5. A skálázhatóság nem megoldott - -A VCM átvitele az új, blokkláncalapú **digitális karbonpiacra (DCM)** egy jó lehetőség arra, hogy továbbfejlesszük a karbonkreditek validálásának, adásvételének és felhasználásának meglévő technológiáját. A blokkláncok lehetővé teszik a nyilvánosan igazolható adatokat, hozzáférést biztosítanak a felhasználók széles körének és nagyobb likviditást tudnak adni. - -A ReFi-projektek blokklánc technológiát használnak arra, hogy a hagyományos piac problémáit enyhítsék: - -- **A likviditás néhány alapban koncentrálódik,** amelyekkel bárki szabadon kereskedhet. A nagy szervezetek és az egyéni felhasználók ugyanúgy hasznosíthatják ezeket az alapokat, és nem kell hozzá kereskedőt fogadniuk, részvételi díjat fizetniük vagy regisztrálniuk. -- **Az összes tranzakció nyilvános blokkláncokon kerül rögzítésre**. Minden egyes karbonkredit mozgása nyomon követhető onnantól kezdve, hogy a DCM-en elérhetővé válik. -- **A tranzakciósebesség szinte azonnali**. A hagyományos piacokon napokig vagy hetekig tartana nagyobb mennyiségű karbonkredit beszerzése, amit a DCM-en pillanatok alatt el lehet érni. -- **A kereskedés közvetítők nélkül zajlik**, akik nagy díjakat számolnának fel ezért. A digitális karbonkreditek [62%-os költséghatékonyságot jelentenek a hagyományos kreditekhez képest](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne), derül ki egy elemzőcég adataiból. -- **A DCM skálázható** és képes egyaránt kielégíteni az egyének és a multinacionális vállalatok igényeit. - -### A digitális karbonpiac (DCM) fő komponensei {#key-components-dcm} - -A DCM jelenlegi struktúrája négy fő elemből áll: - -1. Nyilvántartások, mint a [Verra](https://verra.org/project/vcs-program/registry-system/) és a [Gold Standard](https://www.goldstandard.org/), biztosítják, hogy a projektek karbonkreditjei hitelesek legyenek. Emellett üzemeltetik az adatbázist, melyben a digitális karbonkreditek létrejönnek, és ezek átadhatók és felhasználhatók. - -A blokkláncra épülő, innovatív projektek egy újabb hulláma próbálja megbontani, újraalkotni a szektor hivatalnoki funkcióit is. - -2. Karbonhidak, vagyis tokenizálók, akik a hagyományos nyilvántartásokban tárolt karbonkrediteket megjelenítik vagy áttranszferálják a DCM-re. Ismert példa többek között a [Toucan Protocol](https://toucan.earth/), a [C3](https://c3.app/) és a [Moss.Earth](https://moss.earth/). -3. Integrált szolgáltatások, melyek karbonelkerülési és/vagy -eltávolítási krediteket ajánlanak a végfelhasználóknak, így nyilvánvaló a környezetre gyakorolt jótékony hatásuk és megoszthatják a világgal azt, hogy támogatják a klímával kapcsolatos intézkedéseket. - -Néhányan, mint amilyen a [Klima Infinity](https://www.klimadao.finance/infinity) és a [Senken](https://senken.io/), a projektek széles választékát kínálják, melyeket harmadik fél készített és olyan szabványok mentén bocsátott ki, mint a Verra. Mások, mint amilyen a [Nori](https://nori.com/) is, csak specifikus projekteket fejlesztenek a saját karbonkredit-szabványuk alapján, melyet ők bocsátanak ki és saját, erre specializált piacterükön kezelik. - -4. Infrastruktúra, amely lehetővé teszi a karbonpiac teljes ellátási láncának skálázhatóságát hatás és hatékonyság szempontjából. A [KlimaDAO](http://klimadao.finance/) likviditást biztosít közjó gyanánt (bárki vehet vagy adhat karbonkreditet transzparens áron), ösztönzi a karbonpiacok tranzakcióátvitelének növekedését és a karbonkreditek felhasználását, továbbá felhasználóbarát és interoperábilis eszközrendszert biztosít, hogy a tokenizált karbonkreditek széles választékáról elérhetők legyenek az adatok, illetve beszerzi és felhasználja azokat. - -## ReFi a karbonpiacokon túl {#refi-beyond} - -Bár jelenleg nagy hangsúlyt a karbonpiacokra általánosságban, valamint a VCM transzferálásáról a DCM-re, ugyanakkor a regeneratív pénzügyek (ReFi) nem korlátozódnak erre a területre. Más környezeti eszközöket is létre lehet hozni és tokenizálni, hogy újabb negatív externáliákat is be lehessen árazni a jövő gazdasági rendszerének részeként. Emellett e gazdasági modell regeneratív aspektusát fel lehet használni más területeken is, mint a közjavak finanszírozása kvadratikus finanszírozási platformokon, amilyen a [Gitcoin](https://gitcoin.co/) is. Azok a szervezetek, melyek a nyitott részvétel és az erőforrások egyenlő elosztásának eszméjére épültek, lehetővé teszik, hogy az emberek nyílt forráskódú szoftverprojekteknek, valamint oktatási, környezeti és közösség által irányított projekteknek juttassanak pénzt. - -Azzal, hogy a tőkét átirányítják a kizsákmányoló gyakorlatokból a regeneratív kezdeményezésekbe, elindulhatnak olyan projektek és cégek, melyek szociális, környezeti és közösségi előnyöket adnak – és valószínűleg a hagyományos pénzügyi rendszerben nem jutnának pénzhez –, így gyorsan és könnyedén pozitív externáliákat hozhatnak létre a társadalom számára. A finanszírozás ezen modelljére való átállás lehetőséget ad a sokkal befogadóbb gazdasági rendszerek számára, melyekben mindenféle demográfiai jellemzővel bíró ember aktív résztvevő lehet, nem csak passzív szemlélő. A ReFi az Ethereum vízióját kínálja arra vonatkozólag, hogy miként lehet összehangoltan cselekedni a lét kihívásait illetően, mely az emberi fajt és a bolygó minden élőlényét érinti – egy új gazdasági paradigma alaprétege, mely befogadóbb és fenntarthatóbb jövőt teremt. - -## További cikkek a ReFi-ról - -- [A karbonvaluták áttekintése és helyük a gazdaságban](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) -- [A Jövő Minisztériuma, egy regény a karbonalapú valuta szerepéről a klímaváltozás elleni harcban](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) -- [Részletes jelentés az önkéntes karbonpiacok skálázását megcélzó munkacsoporttól (TSVCM)](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) -- [Kevin Owocki és Evan Miyazono CoinMarketCap glosszáriumbejegyzése a ReFi-ről](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/hu/roadmap/beacon-chain/index.md b/src/content/translations/hu/roadmap/beacon-chain/index.md deleted file mode 100644 index ec98887b437..00000000000 --- a/src/content/translations/hu/roadmap/beacon-chain/index.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: A Beacon Chain -description: Tudj meg többet a beacon chainről - az Ethereum első nagy Eth2 fejlesztéséről. -lang: hu -template: upgrade -image: ../../../../../assets/upgrades/core.png -summaryPoint1: A beacon chain nem változtatja meg azt, ahogy az Ethereumot ma használjuk. -summaryPoint2: A hálózatot fogja koordinálni. -summaryPoint3: Bevezeti a proof-of-stake rendszert az Ethereum ökoszisztémába. -summaryPoint4: A technikai ütemtervekben "Fázis 0"-ként is ismerheted. ---- - - - A Beacon Chain december 1.-jén központi idő szerint délben indult el. További információért nézd meg az adatokat. Ha szeretnél segíteni a lánc érvényesítésében, akkor letétbe tudod helyezni az ETH-edet. - - -## Mit csinál a Beacon Chain? {#what-does-the-beacon-chain-do} - -A Beacon Chain fogja koordinálni vagy vezetni a [shardokból](/roadmap/danksharding/) és [stakerekből](/staking/) álló kiterjesztett hálózatot. De nem olyan lesz, mint jelenleg az [Ethereum főhálózat](/glossary/#mainnet). Nem fog tudni számlákat vagy okosszerződéseket kezelni. - -A Beacon Chain szerepe meg fog változni idővel, de egy olyan alapvető összetevője [ a biztonságos, fenntartható és skálázható Ethereumnak, amiért dolgozunk](/roadmap/vision/). - -## Beacon Chain tulajdonságok {#beacon-chain-features} - -### Letétbe helyezés bevezetése {#introducing-staking} - -A Beacon Chain bevezeti [proof-of-stake-et](/developers/docs/consensus-mechanisms/pos/) az Ethereum rendszerbe. Ez egy új módja annak, hogy elősegítsd az Ethereum biztonságát. Gondolj rá úgy, mint egy közjóra, ami egészségesebbé teszi az Ethereumot és közben még több ETH-et tudsz szerezni. A gyakorlatban ez úgy néz ki, hogy ETH-ot helyezel letétbe a validátor szoftver aktiválásához. Validátorként tranzakciókat fogsz feldolgozni és új blokkokat hozol létre a láncon. - -A letétbe helyezés és a validátorrá válás egyszerűbb, mint a [bányászat](/developers/docs/mining/) (ahogy jelenleg biztosítva van a hálózat). És remélhetőleg hosszútávon még biztonságosabbá teszi majd az Ethereumot. Minél több ember vesz részt a hálózatban, annál inkább decentralizáltabb és biztonságosabb lesz a támadásokkal szemben. - - -Ha érdekel a letétbe helyezés és szeretnél segíteni a Beacon Chain biztosításában, akkor tudj meg többet a letétbe helyezésről. - - -Ez a második Eth2 fejlesztésnél is fontos változás: [a shard láncoknál](/roadmap/danksharding/). - -### Shard láncok előkészítése {#setting-up-for-shard-chains} - -A shard láncok bevezetése lesz a második nagy Eth2 fejlesztés. Növelni fogják a hálózat kapacitását és a tranzakciós sebességet úgy, hogy 64 blokklánccal terjesztik ki a hálózatot. A Beacon Chain egy fontos első lépés a shard láncok bevezetésénél, mivel biztonságos működésükhöz a letétbe helyezés működése szükséges. - -Végsősoron a Beacon Chain lesz felelős azért, hogy véletlenszerűen kijelöljön letétbe helyezőket (stakereket) a shard láncok validálására. Ez kulcsfontosságú annak érdekében, hogy a letétbe helyezők ne fogjanak össze és ne tudják átvenni a hatalmat egy shard fölött. Nos, ez azt jelenti, hogy [kevesebb, mint 1 a billióhoz az esélye, hogy ez bekövetkezzen](https://medium.com/@chihchengliang/minimum-committee-size-explained-67047111fa20). - -## A fejlesztések közötti kapcsolat {#relationship-between-upgrades} - -Az Eth2 fejlesztések némileg összefüggnek. Foglaljuk össze tehát, hogy a Beacon Chain hogyan hat a többi fejlesztésre. - -### Főhálózat és a Beacon Chain {#mainnet-and-beacon-chain} - -A Beacon Chain eleinte különállóan fog létezni az Ethereum főhálózattól, melyet ma is használunk. De végül össze lesznek kapcsolva. A terv a főhálózat “dokkolása” a proof-of-stake rendszerhez, melyet a Beacon Chain vezérel és koordinál. - -A dokkolás - -### Shardok és a Beacon Chain {#shards-and-beacon-chain} - -A shard láncokat csak a proof-of-stake konszenzus mechnanizmussal lehet biztonságosan bevezetni az Ethereum ökoszisztémába. A Beacon Chain bevezeti a letétbe helyezést (staking) ezzel lekövezve a shard láncok bevezetéséhez szükséges utat. - -Shard láncok - - - -## Beacon Chain interakció {#interact-with-beacon-chain} - - diff --git a/src/content/translations/hu/roadmap/merge/index.md b/src/content/translations/hu/roadmap/merge/index.md deleted file mode 100644 index 60fe4688c41..00000000000 --- a/src/content/translations/hu/roadmap/merge/index.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Főhálózat dokkolása az Eth2-vel -description: Tudj meg többet a dokkolásról - amikor a főhálózati Ethereum csatlakozik a Beacon Chain által koordinált proof-of-stake rendszerhez. -lang: hu -template: upgrade -image: ../../../../../assets/upgrades/merge.png -summaryPoint1: Végül a jelenlegi Ethereum főhálózat "dokkolni" fog a többi Eth2 fejlesztéssel együtt. -summaryPoint2: A dokkolás egyesíti az "Eth1" főhálózatot a Beacon Chainnel és a sharding rendszerrel. -summaryPoint3: Ez a proof-of-work végét jeleni majd az Ethereumot tekintve, és a teljes átmenetet a proof-of-stake-be. -summaryPoint4: Úgy is ismerheted, mint a Fázis 1.5 a technikai ütemtervek szerint. ---- - - - Ezt a fejlesztést a shard láncok eljövetele fogja követni. De ez lesz az a pillanat, amikor az Eth2 vízió teljesen megvalósul – nagyobb skálázhatóság, biztonság és fenntarthatóság valamint letétbe helyezés, mely a teljes hálózatot biztosítja. - - -## Mi az a dokkolás? {#what-is-the-docking} - -Fontos megjegyezni, hogy eredetileg a többi Eth2 fejlesztés a [főhálózattól](/glossary/#mainnet) - azaz a lánctól, amit ma is használunk - külön kerül bevezetésre. Az Ethereum főhálózat biztonságát továbbra is a [proof-of-work](/developers/docs/consensus-mechanisms/pow/) szolgáltatja majd, még akkor is amikor [a Beacon Chain](/roadmap/beacon-chain/) és a [shard láncok](/roadmap/danksharding/) párhuzamosan futnak majd a [proof-of-stake](/developers/docs/consensus-mechanisms/pos/) használatával. A dokkolás az, amikor ez a két rendszer egybeolvad. - -Képzeld el, hogy az Ethereum egy űrhajó, ami még nem teljesen áll készen egy csillagközi utazásra. A Beacon Chainnel és a shard láncokkal a közösség egy új hajtóművet és egy erősebb hajótestet épített. Ha eljön az idő, a meglévő hajó dokkol ezzel az új rendszerrel, eggyé válik vele és készen áll arra, hogy néhány fényév alatt meghódítsa az univerzumot. - -## A főhálózat dokkolása {#docking-mainnet} - -Amikor minden készen áll, az Ethereum főhálózat "bedokkol" a Beacon Chainnel, a saját shardjává válik, amely proof-of-stake-et használ [proof-of-work](/developers/docs/consensus-mechanisms/pow/) helyett. - -A főhálózat lehetővé teszi majd az okosszerződések futtatását a proof-of-stake rendszeren, valamint magával hozza a jelenlegi Ethereum állapotot és történetet, ezzel biztosítva, hogy az összes ETH tulajdonos és felhasználó számára elakadásmentes legyen az átállás. - -## A dokkolás után {#after-the-docking} - -Ez a proof-of-work végét és egy fenntarthatóbb, környezetbarátabb korszak kezdetét fogja jelenteni az Ethereum számára. Ettől a ponttól kezdve az Ethereum skálázható, biztonságos és fenntartható lesz, ahogy az az [Eth2 vízió](/roadmap/vision/) szerint körvonalazódott. - -## A fejlesztések közötti kapcsolat {#relationship-between-upgrades} - -Az Eth2 fejlesztések némileg összefüggnek. Foglaljuk össze tehát, hogy a dokkolás hogyan hat a többi fejlesztésre. - -### Dokkolás és a Beacon Chain {#docking-and-beacon-chain} - -Amint megtörtént a dokkolás, a letétbe helyezőket kijelölik az Ethereum főhálózat validálására. Csakúgy, mint a shard láncoknál. [A bányászat](/developers/docs/consensus-mechanisms/pow/mining/) így feleslegessé válik, tehát a bányászok az új proof-of-stake rendszerben valószínűleg letétbe helyezésbe fektetik majd, amit kerestek. - -A Beacon Chain - -### Dokkolás és shard láncok {#docking-and-shard-chains} - -Mivel a főhálózat egy sharddá válik, a shard láncok sikeres implementációja kritikus ezen fejlesztési lépés szempontjából. Valószínű, hogy az átmenet egy fontos szerepet fog játszani, hogy a közösség eldöntse szeretne-e egy második sharding fejlesztést. Ez a fejlesztés a többi shardot is a főhálózathoz hasonlóvá teszi: képesek lesznek tranzakciókat és okosszerződéseket feldolgozni, nem csak több adatot biztosítani. - -Shard láncok diff --git a/src/content/translations/hu/smart-contracts/index.md b/src/content/translations/hu/smart-contracts/index.md deleted file mode 100644 index 688d8ad3c00..00000000000 --- a/src/content/translations/hu/smart-contracts/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Okosszerződések -description: Egy nem technikai bevezetés az okosszerződésekbe -lang: hu ---- - -# Bevezetés az okosszerződésekbe {#introduction-to-smart-contracts} - -Az okosszerződések az Ethereum alkalmazási rétegének alapvető építőkockái. Ezek olyan számítógépes programok, melyek a blokkláncon találhatók, feltételeket követve működnek (ha ez van, akkor ezt csinálom), és garantáltan a programkódja által definiált szabályok alapján végez műveleteket. E szabályokat nem lehet megváltoztatni, miután a szerződés életbe lépett. - -Az okosszerződés kifejezést Nick Szabo alkotta meg. 1994-ben írt egy cikket a [a koncepció lényegéről](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html), majd 1996-ban tovább taglalta, hogy [mire képes az okosszerződés](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). - -Szabo egy olyan digitális piacteret képzelt el, ahol automatikus, kriptográfiailag biztosított folyamatok lehetővé teszik tranzakciók és üzleti funkciók működését megbízott közvetítők nélkül. Az okosszerződések ezt a víziót valósítják meg az Ethereumon. - -### Bizalom a hagyományos szerződésekben {#trust-and-contracts} - -A hagyományos szerződéssel az a legnagyobb gond, hogy meg kell bízni a résztvevőkben, hogy végrehajtják a szerződés tartalmát. - -Következzen egy példa: - -Alice és Bob kerékpáron versenyeznek. Tegyük fel, Alice arra fogad Bobbal 10 $-ban, hogy ő maga fog nyerni. Bob magabiztos a saját nyerését illetően, ezért belemegy a fogadásba. Végül Alice sokkal hamarabb ér célba Bobhoz képest, egyértelműen ő a győztes. Bob azonban nem fizeti ki a fogadás összegét, mert szerinte Alice csalt. - -Ez az egyszerű példa a „nem okos” megegyezések problémáját illusztrálja. Még a megegyezés feltételei teljesülnek is (tehát Ön a verseny győztese), még mindig meg kell bíznia egy másik személyben, hogy teljesítse a megállapodást (azaz kifizesse a fogadás összegét). - -### Egy digitális ételautomata {#vending-machine} - -Az okosszerződésre egy egyszerű metafora lehet az ételautomata működése, melynél bizonyos beviteli értékek előre meghatározott eredménnyel járnak. - -- Ön kiválaszt egy terméket -- Az ételautomata kiírja az árat -- Ön kifizeti az árát -- Az ételautomata ellenőrzi, hogy a megfelelő összeget kapta meg -- Majd az automata kiadja a kért árut - -Az ételautomata csak az Ön által kért terméket adja oda, miután a feltételek teljesültek. Ha Ön nem választ ki terméket vagy nem dob be elég pénzt, akkor az automata nem adja ki a terméket. - -### Automatikus végrehajtás {#automation} - -Az okosszerződés legfontosabb előnye, hogy bizonyos feltételek fennállásakor egyértelműen végrehajt egy meghatározott programkódot. Nem kell várni az emberi beavatkozásra, hogy értelmezze vagy kitalálja az eredményt. Így nincs szükség megbízott közvetítőkre. - -Például írhat egy olyan okosszerződést, mely letétben tart pénzeszközt egy gyermek számára, melyet egy bizonyos dátum után kaphat meg. Ha hamarabb akarná megkapni, akkor az okosszerződés nem hajtaná azt végre. Vagy olyan okosszerződést is írhat, mely automatikusan biztosítja egy autó forgalmi engedélyének digitális verzióját, amint Ön kifizeti azt a kereskedőnek. - -### Előre meghatározott kimenetel {#predictability} - -A hagyományos szerződések nem egyértelműek, mert emberek értelmezik és hajtják végre azokat. Például két bíró teljesen másképpen is értelmezhet egy szerződést, mely eltérő döntésekhez és egyenlőtlen kimenetelhez vezethet. Az okosszerződések kizárják ezt a lehetőséget. Ehelyett az okosszerződések a szerződés kódjában megadott feltétek mentén pontosan végrehajtásra kerülnek. A pontosság azt is jelenti, hogy ugyanolyan körülmények között az adott okosszerződés ugyanazt az eredményt adja. - -### Nyilvános dokumentálás {#public-record} - -Az okosszerződéseket könnyedén lehet auditálni és követni. Mivel az Ethereum okosszerződései egy nyilvános blokkláncon találhatók, ezért bárki azonnal megnézheti az eszközök mozgását és a kapcsolódó információkat. Például Ön megnézheti, hogy valaki pénzt utalt az Ön címére. - -### Adatvédelem {#privacy-protection} - -Az okosszerződések védik az Ön adatait. Mivel az Ethereum egy olyan hálózat, ahol a tranzakciók nem közvetlen módon köthetők az identitáshoz (nyilvánosan egy egyedi kriptográfiai címhez tartoznak), így Ön is megőrizheti valódi kilétét mások előtt. - -### Látható feltételek {#visible-terms} - -Végül a hagyományos szerződéshez hasonlóan Ön ellenőrizheti az okosszerződés tartalmát, mielőtt aláírná azt (vagy valamilyen interakcióba lépne azzal). Az okosszerződés transzparens volta biztosítja, hogy bárki megvizsgálhatja annak részleteit. - -## Az okosszerződés alkalmazási területei {#use-cases} - -Az okosszerződések lényegében mindent végre tudnak hajtani, amit egy számítógépes program tud. - -Többek között képesek számításokat végezni, valutát létrehozni, adatot tárolni, NFT-ket kreálni (minting), üzeneteket küldeni és még ábrát vagy grafikont is tudnak készíteni. Következzen néhány népszerű példa a való életből: - -- [Stablecoin-ok](/stablecoins/) -- [Egyedi digitális eszközök létrehozása és szétosztása](/nft/) -- [Automatikus, nyílt valutaátváltás](/get-eth/#dex) -- [Decentralizált játékok](/dapps/?category=gaming) -- [Biztosítási szerződés, mely automatikus kifizetést alkalmaz](https://etherisc.com/) -- [Szabvány, melyet alapul véve az emberek egyéni, interoperábilis valutákat hoznak létre](/developers/docs/standards/tokens/) - -## Ön inkább vizuális típus? {#visual-learner} - -Nézze meg a videót, melyben a Finematics elmagyarázza az okosszerződések lényegét: - - - -## További olvasnivaló {#further-reading} - -- [Hogyan fogják az okosszerződések megváltoztatni a világot](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [Okosszerződések: a blokklánc-technológia, mely leváltja az ügyvédeket](https://blockgeeks.com/guides/smart-contracts/) -- [Okosszerződések fejlesztőknek](/developers/docs/smart-contracts/) -- [Tanulja meg, hogyan kell okosszerződéseket írni](/developers/learning-tools/) -- [Ismerje meg Ethereumot – Mi az az okosszerződés?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/src/content/translations/hu/social-networks/index.md b/src/content/translations/hu/social-networks/index.md deleted file mode 100644 index 905af66e9da..00000000000 --- a/src/content/translations/hu/social-networks/index.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: Nem központosított közösségi hálózatok -description: A decentralizált közösségi hálózatok áttekintése az Ethereumon -lang: hu -template: use-cases -emoji: ":mega:" -sidebarDepth: 2 -image: ../../../../assets/ethereum-learn.png -summaryPoint1: Blokkláncalapú platformok a közösségi kapcsolódás, tartalom-létrehozás és -terjesztés céljából. -summaryPoint2: A decentralizált közösségimédia-hálózatok megvédik a felhasználók privát adatait és növelik az adatbiztonságot. -summaryPoint3: A tokenek és NFT-k új lehetősége adnak a tartalom fizetőeszközzé alakításához. ---- - -A közösségi hálózatok komoly szerepet töltenek be a napi kommunikációban és kapcsolódásban. Ugyanakkor ezen platformok centralizált irányítása számos problémát teremtett: adatlopás, szerverleállás, kizárás a platformról, cenzúra és a magán jelleg megsértése csak néhány kompromisszum, amit a közösségi média gyakran elszenved. E problémák megoldása érdekében a fejlesztők az Ethereumon építenek közösségi hálózatokat. A decentralizált közösségi hálózatok a hagyományos platformok számtalan problémájára megoldást nyújtanak, ás javítják a felhasználói élményt is. - -## Mik azok a decentralizált közösségi hálózatok? {#what-are-decentralized-social-networks} - -A decentralizált közösségi hálózatok olyan blokkláncalapú platformok, melyeken a felhasználók kommunikálnak egymással, illetve tartalmat publikálnak és terjesztenek. Mivel ezek az alkalmazások a blokkláncon működnek, ezért képesek decentralizáltan üzemelni, ellenállnak a cenzúrának és a jogtalan kontrollnak. - -Számos decentralizált közösségi hálózat létezik az olyan közösségimédia-szolgáltatások alternatívájaként, mint a Facebook, LinkedIn, Twitter és Medium. Ugyanakkor a blokkláncon működtetett közösségi hálózatok olyan jellemzőkkel is bírnak, melyek a hagyományos platformok fölé helyezik őket. - -### Hogyan működnek a decentralizált közösségi hálózatok? {#decentralized-social-networks-overview} - -A decentralizált közösségi hálózatok valójában [decentralizált alkalmazások (dapp)](/dapps/), melyeket a blokkláncon létrehozott [okosszerződések](/developers/docs/smart-contracts/) működtetnek. A szerződés programkódja adja ezen alkalmazások hátterét és meghatározza azok üzleti logikáját. - -A hagyományos közösségimédia-platformok adatbázisokon alapulnak, melyek tárolják a felhasználói információkat, a programkódot és egyéb adatokat. Ez azonban bármilyen leállás esetén egy sebezhető pontot jelent és komoly kockázatot hordoz magában. Például előfordult már, hogy a Facebook szerverei [több órára leálltak](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact), ezzel elvágva a felhasználókat a platformtól. - -A decentralizált közösségi hálózatok egy peer-to-peer (P2P) hálózaton működnek, mely ezernyi csomópontot (node) tartalmaz szerte az egész világon. Ha néhány csomópont le is áll, a hálózat zavartalanul működik tovább, így az alkalmazásokat nem érintik a leállások és kimaradások. - -A decentralizált tárhelyek használatával, mint amilyen az [InterPlanetary File System (IPFS)](https://ipfs.io/), az Ethereumra épített decentralizált közösségi hálózatok képesek megvédeni a felhasználók adatait azok kihasználása és rosszindulatú felhasználása ellen. Senki sem tudja eladni a felhasználók személyes adatait a reklámcégeknek, és a hackerek sem tudják ellopni a bizalmas információkat. - -Számos blokkláncalapú közösségi platform rendelkezik saját tokenekkel, hogy a reklámbevétel helyett ezzel biztosítsa a pénzforrások létrehozását. A felhasználók megvehetik ezeket a tokeneket, hogy bizonyos funkciókat használhassanak, vásárolhassanak az alkalmazáson belül, vagy akár ezzel díjazzák a kedvenc tartalomkészítőiket. - -## A decentralizált közösségi hálózatok előnyei {#benefits} - -1. A decentralizált közösségi hálózatok ellenállnak a cenzúrának és bárki számára elérhetők. Tehát a felhasználókat nem lehet letiltani, kizárni a platformról vagy önkényesen korlátozni. - -2. A decentralizált közösségi hálózatok nyílt forráskódú elképzelésekre épülnek, az alkalmazások programkódját bárki megvizsgálhatja. A hagyományos közösségi médiára jellemző, nem átlátható algoritmusokat kizárva a blokkláncalapú közösségi hálózatok képesek összehangolni a felhasználók igényeit és a platform működtetőit. - -3. A decentralizált közösségi hálózatokban nincs szükség közvetítőre. A tartalomkészítők közvetlen tulajdonjoggal bírnak a tartalom felett, és közvetlenül kapcsolódnak a követőkkel, rajongókkal, vevőkkel és más résztvevőkkel, csupán egy okosszerződés van közöttük. - -4. Mivel a decentralizált alkalmazások (dapp) az Ethereum hálózatán működnek, melyet a csomópontok egy globális, peer-to-peer hálózata tart fenn, így a decentralizált közösségi hálózatok kevésbé vannak kitéve a szerverleállásnak vagy bármilyen kiesésnek. - -5. A decentralizált közösségi platformok egy fejlett bevételszerzési keretrendszert kínálnak a tartalomkészítőknek a nem helyettesíthető tokenek (NFT), az alkalmazáson belüli kriptofizetés és más eszközök révén. - -6. A decentralizált közösségi hálózatok magas fokú adatbiztonságot és anonimitást kínálnak a felhasználóknak. Például egy személy bejelentkezhet az Ethereumon alapuló közösségi hálózatra az ENS-profilja vagy a tárcája révén – anélkül, hogy bármilyen személyazonosításra alkalmas információt (PII) megosztana, mint a neve, e-mail-címe stb. - -7. A decentralizált közösségi hálózatok decentralizált adattároláson alapulnak, nem centralizált adatbázisokon, így jobban meg tudják védeni a felhasználók adatait. - -## A decentralizált közösségi hálózatok az Ethereumon {#ethereum-social-networks} - -Az Ethereum-hálózat lett a decentralizált közösségi média fejlesztőinek kedvelt helye, mivel népszerű tokenekkel (ERC-20/ERC-721) és masszív felhasználói bázissal rendelkezik. Néhány Ethereumon alapuló közösségi hálózat: - -### Peepeth {#peepeth} - -A [Peepeth](https://peepeth.com/) egy mikroblogoló, a Twitterhez hasonló platform. Az Ethereum blokkláncon működik, és IPFS-t használ a felhasználói adatok tárolására. - -A felhasználók rövid üzeneteket tudnak küldeni, amit „peep”-nek neveznek, és nem lehet törölni vagy módosítani azokat. Az alkalmazáson belül lehetséges borravalót gyűjteni vagy adni ether (ETH) formájában. - -### Mirror {#mirror} - -A [Mirror](https://mirror.xyz/) egy web3-alapú, decentralizált és a felhasználók által üzemeltetett íróplatform. A felhasználók ingyen olvashatnak és írhatnak azáltal, hogy a saját tárcáikkal kapcsolódnak. Emellett gyűjthetnek írásokat és feliratkozhatnak a kedvenc íróikra is. - -Az itt publikált írások állandóan elérhetők az Arweave révén, ami egy decentralizált tárhely, és gyűjthető [NFT (nem helyettesíthető token)](/nft/) készíthető belőlük, más néven szöveg NFT. A szöveg NFT-t az írók teljesen ingyen hozhatják létre, a gyűjtés pedig az Ethereumra épülő második blokkláncrétegen (L2) történik, így a tranzakciók olcsók, gyorsak és környezetbarátak. - -### MINDS {#minds} - -A [MINDS](https://www.minds.com/) az egyik legnépszerűbb decentralizált közösségi hálózat. A Facebookhoz hasonlóan működik, és milliónyi felhasználója van. - -A felhasználók a platform saját ERC-20 tokenjével $MIND fizetnek a dolgokért. A felhasználók szerezhetnek azáltal is $MIND tokent, hogy népszerű tartalmat publikálnak, hozzájárulnak az ökoszisztémához és ajánlják a platformot másoknak. - -## Web2 közösségi hálózatok az Ethereumon {#web2-social-networks-and-ethereum} - -Nem csak a [web3](/web3/) közösségi platformok használják a blokklánc-technológiát a közösségi médiához. Számos centralizált platform is integrálni szeretné az Ethereumot a saját infrastruktúrájába: - -### Reddit {#reddit} - -A Reddit olyan [közösségi pontokat](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users) használ, melyek [ERC-20 tokenek](/developers/docs/standards/tokens/erc-20/), és a felhasználók a minőségi tartalmak publikálására, illetve az online közösséghez (subreddit) való hozzájárulásra kapnak belőle. Ezeket a tokeneket a felhasználó egy subreddit fórumon belül be tudja váltani, hogy [különleges jogokat vagy bevételt szerezzen](https://www.reddit.com/community-points/). A Reddit az Arbitrummal működik együtt, amely egy olyan [második blokkláncréteg (L2)](/layer-2/), ami rollup segítségével teszi skálázhatóvá az Ethereum-tranzakciókat. - -A program már elérhető, az r/CryptoCurrency subreddit [a „Moons”-nak nevezett közösségi pontokkal üzemel](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). A hivatalos leírás szerint a Moons „a posztok készítőit, kommentálóit és a moderátorokat díjazza a subreddithez való hozzájárulásukért”. Mivel ezek a tokenek a blokkláncon vannak (a felhasználók tárcákba kapják azokat), ezért függetlenek a Reddittől, és nem lehet azokat elvenni. - -Miután a bétatesztelés lezárult a Rinkeby-teszthálózaton, a Reddit közösségi pontok elérhetővé válnak az [Arbitrum Nova](https://nova.arbitrum.io/) blokkláncon, ami a [melléklánc](/developers/docs/scaling/sidechains/) és az [optimista rollup](/developers/docs/scaling/optimistic-rollups/) jellemzőit kombinálja. A felhasználók nemcsak különleges funkciókra használhatják pontjaikat, hanem eladhatják azokat hagyományos valutáért is a tőzsdéken. Emellett az adott felhasználó közösségi pontjainak összege meghatározza, hogy a közösségen belül milyen mértékben vehetnek részt a döntésekben. - -### Twitter {#twitter} - -2021. januárjában elindult a Twitter Blue, amely [ támogatja az NFT-használatot](https://mashable.com/article/twitter-blue-nft-profile-picture), így a felhasználók hozzákapcsolhatják a tárcáikat és profilképként választhatnak onnan NFT-t. Ezt követően a közösségi média tulajdonos vállalata [bejelentette tervét](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web), hogy a jövőben decentralizált közösségi hálózatot hoz létre. - -### Instagram {#instagram} - -2022. májusában az [Instagram bejelentette, hogy támogatja az NFT-k használatát](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) az Ethereum- és a Polygon-hálózatokról. A felhasználók közvetlenül az Instagramra, az Ethereum-tárcájukhoz kapcsolódva posztolhatják az NFT-ket. - -## A decentralizált közösségi hálózatok használata {#use-decentralized-social-networks} - -- **[Status.im](https://status.im/)** – _A Status egy biztonságos üzenetküldő alkalmazás, mely nyílt forráskódú, peer-to-peer protokollt használ, és elejétől a végéig titkosítva van, hogy megvédje az üzeneteket._ -- **[Mirror.xyz](https://mirror.xyz/)** – _A Mirror egy decentralizált, felhasználók által működtetett publikáló platform az Ethereumon, hogy a felhasználók finanszírozást gyűjtsenek az ötleteiknek, bevételt kapjanak a tartalom után és értékes közösségeket építsenek._ -- **[Lens Protocol](https://lens.xyz/)** – _A Lens Protocol egy decentralizált közösségi gráf, ahol a tartalomkészítők tulajdonolják az általuk létrehozott tartalmat a decentralizált internet teljes hosszában._ -- **[Farcaster](https://farcaster.xyz/)** – _A Farcaster egy kellően decentralizált közösségi hálózat. Egy nyitott protokoll, amely több klienst is támogat, mint például az e-mail-funkció._ - -## További olvasnivaló {#further-reading} - -### Cikkek {#articles} - -- [A decentralizált közösségi média: útmutató a web3 közösségi alkalmazásokhoz](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _Coinbase Ventures_ -- [A közösségi hálózatok világa a következő nagy decentralizálási lehetőség](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Goertzel_ -- [A web3 megtartja ígéretét a decentralizált, közösség által működtetett közösségi hálózatokról](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ -- [A blokklánc közösségi média alkalmazásainak áttekintése](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ -- [Hogyan tudja a blokklánc megoldani a közösségi médiához kapcsolódó adatvédelmet](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Prableen Bajpai_ -- [A közösségi média hálózatok megérkeztek a blokkláncra](https://businesstechguides.co/what-are-decentralized-social-networks) — _Emmanuel Awosika_ -- [Elégséges decentralizáció a közösségi hálózatok számára](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Varun Srinivasan_ - -### Videók {#videos} - -- [A decentralizált közösségi média bemutatása](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ -- [DeSo a blokklánc decentralizálja a közösségi médiát](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ -- [A decentralizált közösségi média jövője – Balaji Srinivasan, Vitalik Buterin, Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ - -### Közösségek {#communities} - -- [Status Discord-szerver](https://discord.com/invite/3Exux7Y) -- [Mirror Discord-szerver](https://discord.com/invite/txuCHcE8wV) -- [r/CryptoCurrency subreddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/hu/staking/pools/index.md b/src/content/translations/hu/staking/pools/index.md deleted file mode 100644 index f8496d32caa..00000000000 --- a/src/content/translations/hu/staking/pools/index.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: Pooled staking -description: Áttekintés a letéti alapok használatáról -lang: hu -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-pool.png -alt: Leslie, a rinocérosz a medencében fürdik. -sidebarDepth: 2 -summaryPoints: - - Helyezzen letétbe bármennyi ETH-t és szerezzen jutalmakat másokkal együtt - - Hagyja a nehézségeket és bízza a validátor működtetését harmadik félre - - Tartsa a letétbe helyezett összegnek megfelelő tokeneket a saját tárcájában ---- - -## Mik azok a letéti alapok (staking pool)? {#what-are-staking-pools} - -A letéti alap egy olyan kollaboratív megközelítés, mely lehetővé teszi, hogy sok kis összegű ETH révén elérjék a 32 ETH küszöbértéket, ahol már fel tudnak állítani validátort. A letéti alap nem a protokoll része, más megoldások épültek ki, hogy ezt az igényt kielégítsék. - -Néhány letéti alap okosszerződéseket használ, ahol a pénzeszközöket a szerződésbe helyezik letétbe, így bizalomigény nélkül kezeli és követi a letét alakulását, és egy tokent ad, mely a letét értékét képviseli. Más alapok nem használnak okosszerződést, hanem a láncon kívül közvetítenek. - -## Miért jó a letéti alap használata? {#why-stake-with-a-pool} - -A [bevezetés a letétbe helyezésbe](/staking/) során elhangzott előnyök mellett a letéti alapok számos haszonnal járnak. - - - - - - - - - -## Mit kell figyelembe venni {#what-to-consider} - -A letéti alap vagy a delegáción alapuló letétbe helyezés nem része az Ethereum-protokollnak. Ugyanakkor a felhasználók igénye mentén, hogy 32 ETH-nál kisebb összeget adjanak letétbe, egyre több megoldás épül ki. - -Minden egyes alapot és az általuk használt eszközöket vagy okosszerződéseket különböző csapatok fejlesztik, így mind rendelkezik előnyökkel és kockázatokkal. Az alap lehetővé teszi, hogy a felhasználó egy tokent kapjon, ami a letétbe helyezett ETH-t reprezentálja. A token azért hasznos, mert a felhasználó bármennyi ETH-t átválthat egy azonos összegű, jövedelmet generáló tokenre, ami a háttérben lévő ETH letétbe helyezési jutalmaiból ad bevételt (és fordítva) a decentralizált tőzsdéken, még akkor is, ha az aktuális ETH a konszenzusrétegen van letétben. Eszerint a jövedelmet generáló, letétbe helyezett ETH-termék és az eredeti, nyers ETH között gyors és könnyű oda-vissza váltás lehetséges, és nem csak 32 ETH többszöröse érhető el. - -Ugyanakkor ezek a letétbe helyezett ETH tokenek kartellszerű viselkedésre hajlamosítanak, amikor ebből nagyobb összegek kevés centralizált szervezet kontrollja alá kerülnek, ahelyett hogy számtalan egyén között oszlanának el. Ez cenzúrára vagy értéklefölözésre ad lehetőséget. A letétbe helyezés aranyszabálya az, hogy egyének futtatják a validátorokat a saját hardverjükön. - -[A letétbe helyezést képviselő tokenek további kockázatairól](https://notes.ethereum.org/@djrtwo/risks-of-lsd). - -Alább különböző jellemzők mentén mutatjuk be a jelentős erősségeket vagy gyengeségeket, melyekkel a listázott letéti alapok rendelkezhetnek. Ez alapján Ön is megértheti, hogy e jellemzőket hogyan határoztuk meg, és így könnyebben választhat a letéti alapokból. - - - -## Fedezze fel a letéti alapokat {#explore-staking-pools} - -Számos olyan opció érhető el, amely biztosan kielégíti minden igényét. A fenti jellemzőket használva megértheti az alábbi eszközökben rejlő lehetőségeket. - - - - - -Olyan szolgáltatást válasszon, amely komolyan veszi a [kliensek diverzitását](/developers/docs/nodes-and-clients/client-diversity/), mert ez egyszerre javítja a hálózat biztonságát, és csökkenti az Ön kockázatát. Azok a szolgáltatók, akik korlátozzák a többségi klienseket használatát, a következő jellemzők alapján szűrhetők ki: sokrétű végrehajtás és sokrétű konszenzus - -Hiányolja valamelyik letétbe helyezési eszközt? Ha a [terméklistázó szabályzat](/contributing/adding-staking-products/) alapján úgy véli, hogy egy adott eszköz illeszkedne ide, akkor jelezze felénk. - -## Gyakran ismételt kérdések {#faq} - - -A letétbe helyezők ERC-20 letéti tokeneket kapnak, melyek a letétbe adott ETH-t képviselik, megnövelve azt a jutalmakkal. A különféle alapok a letéti jutalmakat különböző módon adják át a felhasználóknak, a folyamat lényege ugyanakkor közös. - - - -Most azonnal! A Shanghai/Capella-hálózatfrissítés 2023. áprilisban végbement, mely elérhetővé tette a letétek visszavonását. A letéti alapokhoz tartozó validátorszámlák ki tudnak lépni a letétbe helyezésből és vissza tudják vonni az ETH-t a megadott visszavonási címükre. Ez lehetővé teszi, hogy visszavegye a letétrészt a mögöttes ETH-ért cserébe. Ellenőrizze, hogy az adott szolgáltató hogyan támogatja ezt a funkcionalitást. - -Alternatívaként a letéti alapok ERC-20 letéti tokeneket használnak, hogy a felhasználó kereskedni tudjon azokkal a nyitott piacon. Ezzel eladhatja a letéti helyzetét, visszavonva a letétet anélkül, hogy a letéti szerződésben lévő ETH bárhova is átkerülne. - -Bővebben a letétbe helyezés visszavonásáról - - - -Számos hasonló vonás van a letéti alapok opciói és a centralizált tőzsdék között, mivel kis összeggel is részt lehet venni, melyek együtt hoznak létre egy validátort. - -A centralizált tőzsdékhez képes számos letéti alap használ okosszerződést és/vagy letéti tokeneket, olyan ERC-20 tokeneket, melyeket a felhasználó a tárcájában tarthat, és bármikor vehet vagy adhat el azokból. Ez függetlenséget és biztonságot jelent, mivel a felhasználó kontrollálja a tokenjeit, de még mindig nem tudja irányítani a validátorklienst, ami az ő nevében készít tanúsítást a háttérben. - -Néhány letéti alap sokkal decentralizáltabb, amikor az általuk használt csomópontokról van szó. A hálózat egészséges állapota és decentralizációja érdekében a letétbe helyezők olyan letéti alapokat válasszanak, amelyek engedélymentes, decentralizált csomópont-operátorokkal működnek. - - -## További olvasnivaló {#further-reading} - -- [Letétbe helyezés a Rocket Poollal – Áttekintés](https://docs.rocketpool.net/guides/staking/overview.html) – _RocketPool docs_ -- [Letétbe helyezés az Ethereumon a Lidoval](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Lido help docs_ diff --git a/src/content/translations/hu/staking/saas/index.md b/src/content/translations/hu/staking/saas/index.md deleted file mode 100644 index de5b74a6cb1..00000000000 --- a/src/content/translations/hu/staking/saas/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Staking, mint szolgáltatás -description: Egy áttekintő a pooled ETH staking elkezdéséről -lang: hu -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-saas.png -alt: Leslie, a rinocérosz a felhőkön lebeg. -sidebarDepth: 2 -summaryPoints: - - Az Ön validátorkliensét harmadik fél működteti csomópontok kezelésével - - Kiváló lehetőség bárkinek, aki rendelkezik 32 ETH összeggel, de nem szívesen bajlódna a csomópont technikai komplexitásával - - A bizalomigénye kevesebb, a visszavonási kulcsok az Ön saját felügyelete alatt állnak ---- - -## Mi az a letétbe helyezés mint szolgáltatás? {#what-is-staking-as-a-service} - -A letétbe helyezés, mint szolgáltatás (SaaS) egy olyan lehetőség, amikor a felhasználó letétbe teszi a saját 32 ETH összegét, hogy validátort működtessen, de a csomópont üzemeltetését egy harmadik félre bízza. E folyamat során a felhasználót végigvezetik a kezdeti beállításokon, beleértve a kulcs létrehozását, a letét elhelyezését, majd az aláíró kulcsok feltöltését az operátornak. A szolgáltatás így a felhasználó nevében működteti a validátort, általában egy havi díjért cserébe. - -## Miért jó a letéti szolgáltatás használata? {#why-stake-with-a-service} - -Az Ethereum-protokoll eredendően nem támogatja a letétbe helyezés delegálását, így ezek a szolgáltatások képesek ellátni ezt az igényt. Ha Ön letétbe helyezne 32 ETH-t, de nem szeretne a hardveres részével foglalkozni, az SaaS lehetővé teszi, hogy ezt a részét átadja másnak, miközben részesül a blokkjutalmakból. - - - - - - - - - -## Mit kell figyelembe venni {#what-to-consider} - -Az SaaS szolgáltatók száma egyre növekszik, ugyanakkor mind saját előnnyel és kockázattal bír. Az önálló stakinghez képest ezek az opciók mind extra bizalmat igényelnek. Az SaaS opciók rendelkezhetnek olyan hozzáadott programkóddal, melybe az Ethereum-klienst csomagolják, ami nem nyilvános vagy auditálható. Emellett negatív hatást gyakorolnak a hálózat decentralizálására. A beállítások függvényében Ön talán nem is bír kontrollal a validátora felett – az operátor rosszhiszeműen is eljárhat az Ön ETH-ját használva fel. - -Alább különböző jellemzők mentén mutatjuk be a jelentős erősségeket vagy gyengeségeket, melyekkel a listázott SaaS szolgáltatók rendelkezhetnek. Ez alapján Ön is megértheti, hogy e jellemzőket hogyan határoztuk meg, és így könnyebben választhat a szolgáltatók közül. - - - -## Fedezze fel, hogy kik nyújtanak letétbe helyezési szolgáltatást {#saas-providers} - -Néhány elérhető SaaS-szolgáltatót soroltunk fel alább. A fenti jellemzőket használva megértheti az alábbi szolgáltatásokban rejlő lehetőségeket - - - -#### SaaS-szolgáltatók - - - -Olyan szolgáltatót válasszon, aki támogatja a [kisebbségi klienseket](/developers/docs/nodes-and-clients/client-diversity/), mert ez egyszerre javítja a hálózat biztonságát, és csökkenti az Ön kockázatát. Azok a szolgáltatók, akik korlátozzák a többségi klienseket használatát, a következő jellemzők alapján szűrhetők ki: sokrétű végrehajtás és sokrétű konszenzus - -#### Kulcsgenerátorok - - - -Javasolna olyan SaaS-szolgáltatót, akit nem lát felsorolva? Ha a [terméklistázó szabályzat](/contributing/adding-staking-products/) alapján úgy véli, hogy egy adott eszköz illeszkedne ide, akkor jelezze felénk. - -## Gyakran ismételt kérdések {#faq} - - -Minden szolgáltatónál más elrendezés lehetséges, de általában végigvezetik a felhasználót az aláíró kulcsok létrehozásán (minden 32 ETH esetén egy kulcs), és feltöltik ezeket a szolgáltatónak, hogy a felhasználó nevében validáljon. Az aláíró kulcsok magukban nem teszik lehetővé, hogy a pénzeszközöket visszavonják, átutalják vagy elköltsék. Ugyanakkor lehetőséget adnak arra, hogy a konszenzust elősegítsék szavazással, amit ha nem végeznek megfelelően, akkor az kisebb büntetést vagy súlyos büntetéssel egybekötött kizárást von maga után. - - - -Igen. Minden számla tartalmaz BLS aláírási kulcsokat és BLS visszavonási kulcsokat. Annak érdekében, hogy egy validátor tanúsítani tudja a lánc státuszát, részt vehessen a szinkronizációs bizottságokban és blokkot javasoljon, az aláíró kulcsokat elérhetővé kell tenni a validátorkliensben. Valamilyen formában az internethez kell kapcsolódnia, ezért ezeket „forró” kulcsoknak tekinthetjük (online elérhetők). A validátor csak így tud tanúsításokat készíteni, ezért biztonsági okokból az a kulcs külön áll, amelyikkel a pénzeszközöket lehet átutalni vagy visszavonni. - -A BLS visszavonási kulcsok arra valók, hogy egy egyszeri üzenetet írjanak alá, melyik végrehajtási számlára kerüljön a letéti jutalom és a visszavont pénzeszköz. Amint ez az üzenet érvénybe lép, a BLS visszavonási kulcsokra többé nincs szükség. A kulcsok helyett a megadott cím gyakorol kontrollt a visszavont eszközök felett. Még ha valaki más is kontrollálja az aláíró kulcsokat, a visszavonási cím biztonságban van a felhasználó offline tárhelyén (cold storage), ami minimalizálja a validátor-pénzeszközök elvesztését. - -A visszavonási adatok megadása szükséges ahhoz, hogy a visszavonás lehetséges legyen\*. Ehhez létre kell hozni a visszavonási kulcsokat a felhasználó mnemonikus kulcsmondata segítségével. - -Ezt a kulcsmondatot mindig tartsa biztonságban, különben nem lesz képes létrehozni a visszavonási kulcsokat, amikor szükség lenne azokra. - -\*Azoknak a letéteseknek, akik már megadták a visszavonási címüket a folyamat kezdetén, nem kell ezt beállítani. Ellenőrizze az SaaS-szolgáltatójával, hogy hogyan kell a validátort beállítani. - - - -A letétek visszavonása a Shanghai/Capella frissítéssel vált elérhetővé 2023. áprilisban. A letéteseknek meg kell adniuk egy visszavonási címet (ha nem adták meg azt a letét kezdetekor), és a jutalmak automatikusan kiküldésre kerülnek néhány naponta. - -A validátorok ki is léphetnek a funkciójukból, ami felszabadítja a fennálló ETH-összeget a visszavonáshoz. Azok a számlák, amelyek megadták a visszavonási címet és teljesítették a kilépési folyamatot, a teljes egyenleget megkapják az adott címre a következő validátor-ellenőrzésnél. - -Bővebben a letétbe helyezés visszavonásáról - - - -Az SaaS-szolgáltatóval a felhasználó másra bízza a csomópontok üzemeltetését. Ez magába foglalja a gyenge csomópont-teljesítmény kockázatát, mivel az nem a felhasználó irányítása alá esik. Ha a validátor súlyos büntetést kap (slashing), akkor a validátor egyenlegéből elvonnak és kizárják a validálásból. - -A büntetés végrehajtása után a megmaradt pénzeszközök a validátor visszavonási címére kerülnek. Ehhez szükség van egy visszavonási címre. Előfordulhat, hogy ezt a letétbe helyezéskor már megadta. Ha nem, akkor a validátor-visszavonási kulcsokkal lehet aláírni egy üzenetet, amely közli a visszavonási címet. A pénzeszközök zárolva maradnak addig, amíg a visszavonási cím nem elérhető. - -Kérdezze meg az SaaS-szolgáltatóját a lehetséges garanciákról vagy biztosításokról, illetve arról, hogyan lehet a visszavonási címet megadni. Ha Ön szeretné teljes mértékben kontrollálni a validátor-beállításokat, akkor ismerje meg az önálló letétbe helyezést. - - -## További olvasnivaló {#further-reading} - -- [A letétbe helyezési szolgáltatások értékelése](https://www.attestant.io/posts/evaluating-staking-services/) – _Jim McDonald 2020._ diff --git a/src/content/translations/hu/staking/solo/index.md b/src/content/translations/hu/staking/solo/index.md deleted file mode 100644 index b74aa53fa50..00000000000 --- a/src/content/translations/hu/staking/solo/index.md +++ /dev/null @@ -1,203 +0,0 @@ ---- -title: Önálló letétbe helyezés -description: Az önálló letétbe helyezés áttekintése -lang: hu -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-solo.png -alt: Leslie, a rinocérosz a saját számítógépes chipjén. -sidebarDepth: 2 -summaryPoints: - - Szerezzen maximális jutalmat közvetlenül a protokolltól azért, hogy a validátorát megfelelően működteti és az folyamatosan online - - Működtessen az otthonából hardvert és támogassa személyesen az Ethereum hálózatának biztonságát és decentralizálását - - Nem kell másban megbíznia, és az eszközeihez tartozó kulcsok mindig az Ön kontrollja alatt állnak ---- - -## Mi az az önálló letétbe helyezés? {#what-is-solo-staking} - -Az önálló letétbe helyezés (solo staking) során a felhasználó egy [Ethereum csomópontot működtet](/run-a-node/) az internethez csatlakozva, letétbe helyez 32 ETH-t, hogy aktiváljon egy [validátort](#faq), így közvetlenül részt tud venni a hálózat konszenzusfolyamatában. - -**Az önálló letétbe helyezés növeli az Ethereum hálózatának decentralizációját**, így az ellenállóbb lesz a cenzúrával és a támadásokkal szemben. A többi letétbe helyezési módszer nem feltétlen segíti a hálózatot ugyanilyen módon. Az önálló letétbe helyezés a legjobb letéti opció az Ethereum biztosítására. - -Az Ethereum-csomópontot egy végrehajtási réteg (EL) klienst és egy konszenzus réteg (CL) klienst tartalmaz. Ezek a kliensek olyan szoftverek, amelyek együtt dolgoznak egy érvényes aláírókulcs-készlettel együtt, hogy érvényesítsék a tranzakciókat és a blokkokat, tanúsítsák a lánc státuszát, aggregálják a tanúsítványokat és blokkokat javasoljanak. - -Az önálló letétbe helyezők azért felelnek, hogy a kliensek futásához szükséges hardvert működtetik. Azt javasoljuk, hogy erre egy dedikált gépet használjanak, melyet otthonról üzemeltetnek, mert ez rendkívül hasznos a hálózat egészsége szempontjából. - -Az önálló letétbe helyező közvetlenül a protokolltól kap jutalmakat azért, hogy a validátora megfelelően működik és online van. - -## Miért legyek önálló letétbe helyező? {#why-stake-solo} - -Az önálló letétbe helyezés több felelősséggel jár, de teljes kontrollt biztosít a pénzeszközök és a staking felállítás felett. - - - - - - - -## Megfontolások, mielőtt belevágna az önálló stakingbe {#considerations-before-staking-solo} - -Bármennyire is szeretnénk, hogy az önálló letétbe helyezés elérhető és kockázatmentes legyen mindenkinek, ez nem a valóság. Mielőtt belevágna, komoly gyakorlati megfontolásokkal kell szembenéznie. - - - -Saját csomópont működtetéséhez meg kell tanulni a választott szoftver használatát. El kell olvasni a rendelkezésre álló dokumentációt és ráhangolni a fejlesztői csapatok kommunikációs csatornáira. - -Minél többet tud a választott szoftverről és a proof-of-stake működéséről, annál kevésbé kockázatos a letétbe helyezés, illetve a felmerülő problémák kezelése a csomópont-operátor szerepében. - - - -A csomópont beállításához egy bizonyos szintű számítógépes gyakorlat szükséges, habár az új eszközök egyre inkább megkönnyítik ezt a feladatot is. A parancssoros felhasználói felület (command-line interface) ismerete hasznos, de nem elengedhetetlen. - -Alapvető hardverösszeállításra, illetve a javasolt minimális specifikáció megértésére van szükség. - - - -Ahogy a privát kulcs biztosítja az Ethereum-címet, úgy a validátorhoz is létre kell hozni kulcsokat. Tudnia kell, hogyan tartsa a kulcsmondatokat vagy privát kulcsokat biztos helyen.{' '} - -Ethereum biztonság és csalásmegelőzés - - - -A hardver néha leáll, a hálózati kapcsolat hibára fut, a kliensszoftvert néha frissíteni kell. A csomópont karbantartása elkerülhetetlen, ezzel foglalkozni kell. Muszáj naprakésznek lennie minden várható hálózati frissítésről vagy más kritikus kliensfrissítésről. - - - -A jutalmazás annak arányában történik, hogy a validátor mennyi időt van online és megfelelő módon végzi-e a tanúsítást. A leállás miatti büntetések annak függvényében vannak megállapítva, hogy ugyanakkor hány validátor volt még offline, ez azonban nem von maga után súlyos büntetést és kizárást (slashing). A sávszélesség is számít, mert a tanúsításért járó jutalmak csökkenek, ha azok nem érkeznek meg időben. A szükséges paraméterek változhatnak, de érdemes legalább 10 Mb/s fel- és letöltési sebességgel számolni. - - - -Az inaktív állapot miatti büntetéstől különbözik a súlyos büntetéssel egybekötött kizárás (slashing), ami rosszhiszemű vétségekért jár. Ha kisebbségi klienst használ és a kulcsokat csak egy gépre tölti fel, akkor a slashing kockázata minimális. Ettől függetlenül minden letétbe helyezőnek szembe kell néznie a slashing kockázatával. - -Bővebben a slashingről és a validátor életciklusáról - - - - - -## Hogyan működik {#how-it-works} - - - -Mialatt Ön aktív, ETH jutalmakat kap, melyeket rendszeresen elhelyeznek a visszavonási számlán. - -Bármikor kiléphet a validátor szerepéből, így nem kell online lennie, és leállnak a jutalmak. Ekkor a maradék egyenlege visszatér a visszavonási címre, melyet a felállításnál adott meg. - -[Bővebben a letétbe helyezés visszavonásáról](/staking/withdrawals/) - -## Induljon el a Staking Launchpad segítségével {#get-started-on-the-staking-launchpad} - -A Staking Launchpad egy nyílt forráskódú alkalmazás, ami segít a letétbe helyezés folyamatában. Végigvezeti Önt a szükséges lépéseken, mint a kliensek kiválasztása, a kulcsok létrehozása és az ETH letétbe helyezése a letéti szerződésbe. Egy ellenőrzőlistán is végigveheti, hogy minden a rendelkezésre áll, hogy biztonsággal működjön a validátora. - - - -## Mit kell figyelembe venni a csomópont- és kliensbeállító eszközöknél {#node-tool-considerations} - -Az önálló letétbe helyezést segítő eszközök és szolgáltatások száma egyre növekszik, de mindnél áll fent kockázat, és ugyanúgy mind előnyökkel is jár. - -Alább különböző jellemzők mentén mutatjuk be a jelentős erősségeket vagy gyengeségeket, melyekkel a listázott letéti eszközök rendelkezhetnek. Ez alapján Ön is megértheti, hogy e jellemzőket hogyan határoztuk meg, és így könnyebben választhat a szükséges eszközök közül. - - - -## Fedezze fel a csomópont- és kliensbeállító eszközöket {#node-and-client-tools} - -Számos olyan opció érhető el, amely biztosan kielégíti minden igényét. A fenti jellemzőket használva megértheti az alábbi eszközökben rejlő lehetőségeket. - - - -#### Csomóponteszközök - - - -Olyan szolgáltatót válasszon, aki komolyan veszi a [kliensek diverzitását](/developers/docs/nodes-and-clients/client-diversity/), mert ez egyszerre javítja a hálózat biztonságát, és csökkenti az Ön kockázatát. Azok az eszközök, melyek a kisebbségi kliens beállítást támogatják, a többklienses jellemzővel vannak jelölve - -#### Kulcsgenerátorok - -Ezek alternatív eszközök a [Staking Deposit CLI](https://github.com/ethereum/staking-deposit-cli/) mellett, hogy a kulcsok le legyenek generálva. - - - -Hiányolja valamelyik letétbe helyezési eszközt? Ha a [terméklistázó szabályzat](/contributing/adding-staking-products/) alapján úgy véli, hogy egy adott eszköz illeszkedne ide, akkor jelezze felénk. - -## Nézze meg az önálló letétbe helyezés útmutatóit {#staking-guides} - - - -## Gyakran ismételt kérdések {#faq} - -Ezek a leggyakrabban felmerülő kérdések a letétbe helyezés kapcsán, melyről érdemes Önnek is tudnia. - - - -A validátor egy virtuális entitás, ami az Ethereumon működik és a protokoll konszenzusfolyamatában vesz részt. A validátort az egyenleg, a nyilvános kulcs és más tulajdonságok jellemzik. A validátorkliens az a szoftver, ami a validátor nevében működik, tárolva és felhasználva annak privát kulcsát. Egy validátorkliens több kulcspárt is tárolhat, így több validátort is üzemelhet. - - - - -A validátorhoz tartozó kulcspár pontosan 32 ETH összeget igényel ahhoz, hogy aktívvá váljon. Ha a kulcsokhoz több ETH kerül letétbe, az nem növeli meg a jutalmak lehetőségét, mert a validátor érvényes egyenlege 32 ETH. Tehát a letétbe helyezés 32 ETH összegenként történik, melyekhez saját kulcs és egyenleg tartozik. - -Egy validátorhoz ne kössön le többet, mint 32 ETH. Ez nem hoz több nyereséget. A validátor-ellenőrzés során a 32 ETH feletti rész automatikusan átkerül a visszavonási címre, ha az be van állítva a validátorhoz. - -Ha az önálló letétbe helyezés túl nagy erőfeszítést igényelne Öntől, akkor nézze meg a letétbe helyezés, mint szolgáltatás opcióit, vagy ha kevesebb mint 32 ETH összegről van szó, akkor fontolja meg a letéti alapok szolgáltatást. - - - -Nem vezet súlyos büntetéshez és kizáráshoz (slashing) az, ha a validátor offline, de a hálózat állapota megfelelő. Kis mértékű inaktivitási büntetések várhatók, ha a validátor nem elérhető a tanúsításhoz egy adott korszakban (mely 6,4 perc hosszú), ez azonban különbözik a súlyos büntetéssel járó kizárástól (slashing). A kis büntetések kicsit kevesebbek, mint az a jutalom, amit a validátor a tanúsításért kapott volna, az elvesztett pénzt pedig vissza lehet nyerni ugyanannyi online töltött idővel. - -Az inaktivitási büntetés mértéke függ attól, hogy ugyanabban az időben mennyi validátor van offline. Ha a hálózat nagy része mind egyszerre lesz offline, akkor a büntetés sokkal nagyobb ezen validátorok esetében, mintha csak egy validátor lenne elérhetetlen. - -Szélsőséges esetben, ha a hálózat nem tud állapotot frissíteni, mert a validátorok harmada offline van, akkor ezek a felhasználók a kvadratikus inaktivitási elszivárgást szenvedik el, vagyis a validátorszámlákról exponenciálisan kiáramlik az ETH. Ezzel a rendszer végül képes helyrebillenteni magát azáltal, hogy az inaktív validátorok ETH-jét elégeti, amíg az egyenlegük 16 ETH lesz és ezzel automatikusan kilökődnek a validátorok közül. A megmaradó online validátorok végül teljesítik a több mint 2/3 arányt, kielégítve a túlnyomó többség elvét, hogy a lánc állapota megint frissítve legyen. - - - -Röviden, bár nem lehet garantálni, de a slahing kockázata szinte nulla, hogy ha jóhiszeműen jár el, kisebbségi klienst használ, az aláíró kulcsokat pedig csak egy gépen tartja. - -Néhány specifikus eset van, amikor a validátor súlyos büntetést kap és kilökik a hálózatból. A korábbi eseteknél kizárólag redundáns hardver volt beállítva, és az aláíró kulcsokat két különböző gépen tárolták egyszerre. Ez akaratlanul is dupla szavazást eredményezhet a kulcsokkal, ami súlyos vétség. - -Egy többségi kliens használatával (amit a hálózat 2/3 használ) is nő a slashing kockázata, hogyha a kliensben hiba áll fenn, és emiatt egy láncelágazás jön létre. Hibás elágazást okozhat, ami a lánc állapotaként rögzítésre kerül. Ahhoz, hogy visszatérjen a valódi lánc állapotához, egy „surround” szavazatot kell leadni egy véglegesített blokk visszaállításával. Ez is egy súlyos vétség, és elkerülhető a kisebbségi kliensek használatával. - -A kisebbségi kliensben lévő hiba nem fog végleges állapotot eredményezni, így nem vezet ahhoz, hogy két különböző állapotra szavazzanak helyenként (surround szavazat), és egyszerű inaktivitási büntetéssel jár, nem slashinggel. - - - - - -Az egyéni kliensek esetében kicsit különböző a teljesítmény, a felhasználói felület, mivel mindet különböző csapatok fejlesztik, különböző programozási nyelveken. Így nincsen „legjobb” kliens. Az összes működő kliens kiváló szoftver, melyek működési elve azonos, hogy szinkronizáljanak és kapcsolódjanak a blokklánchoz. - -Mivel az összes kliens ugyanazokat az alapvető funkcionalitásokat kínálja, így fontos, hogy Ön egy kisebbségi klienst válasszon, tehát nem azokat, amelyeket a validátorok többsége használ. Ez talán ellentmond a logikus gondolkodásnak, de a többségi vagy szupertöbbségi kliensek használata miatt megnő a slaghing kockázata, ha a kliensben valamilyen hiba van. Ezt a kockázatot jelentősen lecsökkenti egy kisebbségi kliens használata. - -Tudjon meg többet arról, hogy kliensdiverzitás miért kritikus fontosságú - - - -Habár a virtuális privát szerver (VPS) használható az otthoni hardver helyett, a validátorkliens fizikai elérhetősége és helye igenis számít. A centralizált felhőszolgáltatások, mint az Amazon Web Services vagy a Digital Ocean, lehetővé teszik, hogy nem kell hardvert venni és működtetni, de ez hatással van a hálózat centralizáltságára. - -Minél több validátorkliens működik ugyanazon a centralizált felhőszolgáltatón, annál veszélyesebbé válik a felhasználóknak. Ha ezek a szolgáltatók bármilyen esemény miatt elérhetetlenné válnak, legyen akár támadás, szabályozási kötelezettség, áram- vagy internetleállás, az összes validátorkliens ugyanakkor lesz offline. - -Az offline büntetések arányosak azzal, hogy hány validátor van még offline ugyanakkor. A VPS használata megnöveli az offline büntetés várható mértékét, a kvadratikus elszivárgás vagy akár a slashing kockázatát is, ha a kimaradás kellően nagy mértékű. A saját és a hálózat kockázatát minimalizálandó a felhasználó jobban jár, ha saját hardvert szerez és üzemeltet. - - - - -A Beacon-láncról való visszavonáshoz be kell állítani a visszavonási adatokat. - -Az új letétesek ezt megtették a kulcsgenerálás és a letétbe helyezés során. A meglévő letétesek, akik még nem állították ezt be, frissíthetik a kulcsaikat ezzel a funkcióval. - -Amint a visszavonási adatok be vannak állítva, a jutalmak (a 32 ETH-en felüli rész) rendszeresen és automatikusan átkerülnek a visszavonási címre. - -A teljes egyenleg visszavonásához végig kell menni a validátorkiléptetési folyamaton. - -Bővebben a letétbe helyezés visszavonásáról - - -## További olvasnivaló {#further-reading} - -- [Az Ethereum-kliens diverzitásának problémája](https://hackernoon.com/ethereums-client-diversity-problem) – _@emmanuelawosika 2022._ -- [A kliensdiverzitás támogatása](https://www.attestant.io/posts/helping-client-diversity/) – _Jim McDonald 2022._ -- [Kliensdiverzitás az Ethereum konszenzus rétegén](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) – _jmcook.eth 2022._ -- [Hogyan kell: Ethereum validátorhardver vásárlása](https://www.youtube.com/watch?v=C2wwu1IlhDc) – _EthStaker 2022._ -- [Lépésről lépésre: hogyan kell csatlakozni az Ethereum 2.0 teszthálózathoz](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) – _Butta_ -- [Eth2 Slashing elkerülési tippek](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) – _Raul Jordan 2020._ diff --git a/src/content/translations/hu/staking/withdrawals/index.md b/src/content/translations/hu/staking/withdrawals/index.md deleted file mode 100644 index 1a3f1f3266b..00000000000 --- a/src/content/translations/hu/staking/withdrawals/index.md +++ /dev/null @@ -1,218 +0,0 @@ ---- -title: A letétbe helyezés visszavonása -description: A letétvisszavonás működésének és a jutalmak megszerzésének áttekintése -lang: hu -template: staking -image: ../../../../../assets/staking/leslie-withdrawal.png -alt: Leslie, a rinocérosz a letétbe helyezésből származó jutalmaival -sidebarDepth: 2 -summaryPoints: - - A Shanghai/Capella frissítés lehetővé tette a letétek visszavonását az Ethereumon - - A validátor operátorainak meg kell adni ehhez egy visszavonási címet - - A jutalmakat néhány naponta automatikusan átkerülnek - - A validátorok, akik teljesen kiszállnak a letétből, a maradék egyenleget visszakapják ---- - - -A letétek visszavonását a 2023. április 12-i Shanghai/Capella frissítés tette lehetővé. Bővebben a Shanghai/Capella frissítésről - - -**A letétek visszavonása** azt jelenti, hogy a validátorszámla ETH-egyenlege, ami az Ethereum konszenzusrétegén található (Beacon-lánc), áthelyezésre kerül a végrehajtási rétegre, ahol fel lehet használni. - -**A jutalmak kifizetése** 32 ETH felett automatikusan és rendszeresen megtörténik az egyes validátorokhoz tartozó visszavonási címre, ahogy azt a felhasználó beállította. A felhasználó **teljesen kiszállhat a letétbe helyezésből**, felszabadítva a teljes validátoregyenleget. - -## A letétbe helyezésből eredő jutalmak {#staking-rewards} - -Az aktív validátorszámlákra a jutalmak kifizetése automatikusan megtörténik, és maximum 32 ETH egyenleg marad azokon. - -A 32 ETH feletti összeg nem adódik hozzá az alaphoz, nem növeli a validátor súlyát a hálózaton, így automatikusan visszavonásra kerül jutalomként néhány naponta. A visszavonási címet rögzíteni kell, de ezen kívül a validátor működtetőjének nincs több teendője. Ez a konszenzusrétegen zajlik, ezért nincs gáz/tranzakciós díj vonzata egyik lépésnél sem. - -### Hogyan jutottunk el idáig? {#how-did-we-get-here} - -Az elmúlt években az Ethereum számos hálózati fejlesztésen esett át, hogy a hálózatot az ETH biztosítsa, és ne az erőforrás-igényes bányászás (mining). A konszenzusban való részvétel az Ethereumon a letétbe helyezés (staking), mivel a tagok önként lekötötték az ETH-t, hogy a hálózatban részt tudjanak venni. A szabályokat követő felhasználók jutalmakat nyernek, a visszaélést pedig bünteti a rendszer. - -A letétbe helyezési szerződés létrehozásával (2020. november) néhány bátor Ethereum-úttörő önként zárolta a pénzeszközeit, hogy validátorokként működjenek – ezek olyan különleges számlák, melyek hivatalosan tanúsíthatnak és javasolhatnak blokkot a hálózat szabályait követve. - -A Shanghai/Capella frissítés előtt nem lehetett használni vagy elérni ezt a lekötött ETH-t. Most azonban automatikusan áthelyeződnek a jutalmak a kiválasztott számlára, és a lekötést is bármikor fel lehet oldani. - -### Hogyan tudok erre felkészülni? {#how-do-i-prepare} - - - -### Fontos figyelmeztetések {#important-notices} - -A visszavonási cím megadása szükséges ahhoz, hogy a validátorszámla egyenlegéből ETH visszavonás történjen. - - - Minden validátorszámlához egyszer, egyetlen visszavonási cím adható meg. Amint ezt a címet kiválasztották és elküldték a konszenzus rétegnek, nem lehet visszahívni vagy megváltoztatni. Ellenőrizze le a cím tulajdonosát és pontosságát, mielőtt elküldi azt. - - -Eközben a pénzeszközöket nem fenyegeti veszély, ha nem adja meg a címet, feltéve, hogy a mnemonikus/kulcsmondat biztonságban van offline, és nincs kitéve veszélynek. Amíg nem tudja megadni a visszavonási adatokat, addig az ETH egyszerűen a validátorszámlán marad. - -## A letétbe helyezés felbontása {#exiting-staking-entirely} - -A visszavonási számlára van szükség ahhoz, _bármilyen_ pénzeszközt ki lehessen utalni a validátorszámla egyenlegéből. - -Azoknak a felhasználóknak, akik teljesen ki akarnak lépni a letétbe helyezéből és a teljes egyenleget vissza akarják vonni, a validátorkulcsokkal alá kell írniuk és ki kell adniuk egy önként kiszállok üzenetet, ezzel elindul a lezárás folyamata. Ezt a validátorkliens végzi és a konszenzus csomópontjára küldi el, így nem kell hozzá gáz/díj. - -A kilépés változó ideig tart, attól függően, hogy hányan akarnak ugyanakkor kiszállni. Amint végbemegy, ez a számla már nem végez validátori feladatokat, nem jár neki ezért jutalom, és a kapcsolódó ETH nincs letétbe helyezve. Ekkora a számla teljesen „visszavonhatóként” lesz megjelölve. - -Ha a visszavonható jelölés megtörtént és a visszavonási adatok meg lettek adva, akkor nincs több teendő. A blokkot javaslók automatikusan és folyamatosan ellenőrzik, mondhatni söprik a számlákat a kilépő pénzeszközöket vizsgálva, így a számla egyenlege teljes mértékben átvezetésre kerül a következő söprésnél. - -## Mikortól elérhető a letétek visszavonása? {#when} - -A letétek visszavonása elérhető! A funkcionalitást a Shanghai/Capella frissítés tette elérhetővé 2023. április 12-én. - -Ennek következtében a korábban letétbe helyezett ETH-t vissza lehet vonni a normális Ethereum-számlákra. Ez lezárta a letétek likviditásának témáját, és az Ethereumot egy lépéssel közelebb vitte a céljához, ami egy fenntartható, skálázható, biztonságot, decentralizált ökoszisztéma. - -- [Bővebben az Ethereum történetéről](/history/) -- [Bővebben az Ethereum fejlesztési terveiről](/roadmap/) - -## Hogyan működik a visszavonási kifizetés? {#how-do-withdrawals-work} - -A validátorszámla státusza mondja meg, hogy egy validátor jogosult-e a visszavonásra vagy sem. Nincs szükség a felhasználó közreműködésére, hogy a számla visszavonásra kerül-e vagy sem – a teljes folyamat automatikusan üzemel a konszenzus réteg által, egy állandóan működő ciklusban. - -### Ön inkább vizuális típus? {#visual-learner} - -Nézze meg az Ethereum letétvisszavonásról szóló magyarázatát a Finematics-tól: - - - -### Validátor-ellenőrzés vagy söprés {#validator-sweeping} - -Amikor egy adott validátor be van ütemezve, hogy a következő blokkot ő fogja javasolni, akkor készítenie kell egy 16 tételből álló visszavonási listát. Kezdve a 0 validátorindexel, meghatározza, hogy az adott számla a protokoll szabályai szerint visszavonásra jogosult-e, és ha igen, akkor beteszi a listába. A validátorcsoport ott száll be, ahol az előző abbahagyta és a végtelenségig folytatja. - - -Képzeljen el egy analóg módon működő órát. Az óramutató egy irányba halad és sorban végigmegy minden számon, majd miután elérte az utolsó számot, visszaér a kezdőpontra.

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

-Az óramutató a következő validátorra mutat, hogy leellenőrizze azt visszavonás szempontjából. A 0-nál kezdi és végigmegy az összes számlán. Amikor eléri az utolsó validátort, akkor a ciklus újra elindul. -
- -#### A számlák ellenőrzése visszavonási szempontból {#checking-an-account-for-withdrawals} - -Miközben a blokk javaslója a validátorokat ellenőrzi a lehetséges visszavonások miatt, minden validátornál néhány kérdéssel ellenőrzi, hogy kell-e visszavonást indítani, és mennyi ETH-t érint ez. - -1. **Van visszavonási cím megadva?** Ha nincs, akkor kihagyja a számlát, és nem lehet visszavonást kezdeményezni. -2. **A validátor kiszállt és visszavonható a számlája?** Ha a validátor kiszállt, és a számlája „visszavonhatóvá” vált, akkor egy teljes visszavonás történik. A teljes egyenlege átkerül a visszavonási címre. -3. **Az érvényes egyenleg 32 ETH?** Ha a számla rendelkezik visszavonási adatokkal, nem lépett ki a letétbe helyezésből, de jutalmak vannak a 32 ETH összegen túl, akkor egy részleges visszavonás indul, ami a 32 ETH feletti jutalmakat áthelyezi a visszavonási címre. - -Csak két döntés vagy cselekvés van, amit a validátor üzemeltetője meglép a validátor életciklusa során, és ezt a folyamatot közvetlenül befolyásolja: - -- A visszavonási adatok biztosítása, hogy bármit át lehessen vezetni -- A hálózatból való kilépés, ami egy teljes visszavonást indít el - -### Gáz/díjmentes {#gas-free} - -A letétek visszavonása anélkül zajlik, hogy a letétesnek tranzakciót kellene indítania, amiben adott mennyiségű ETH-t von ki. Ezért **nincs gáz/tranzakciós díj**, a visszavonások pedig nem versenyeznek, hogy bekerüljenek a végrehajtási réteg blokkjába. - -### Milyen gyakran kapom meg a letéti jutalmakat? {#how-soon} - -Egy blokkban maximum 16 visszavonást lehet végrehajtani. Ez alapján 115 200 validátor-visszavonást lehet egy nap alatt teljesíteni (ha minden slot eredményes). A visszavonásra nem jogosult validátárokat átugorják, ezért a teljes ellenőrzés kevesebb ideig tart. - -Ezt a kalkulációt kiterjesztve megbecsülhetjük, hogy egy adott számú visszavonást mennyi idő alatt lehet teljesíteni: - - - -| Visszavonások száma | Időszükséglet | -| :-----------------: | :-----------: | -| 400 000 | 3,5 nap | -| 500 000 | 4,3 nap | -| 600 000 | 5,2 nap | -| 700 000 | 6,1 nap | -| 800 000 | 7,0 nap | - - - -Ahogy látható, a feldolgozás lelassul, ahogy egyre több validátor van a hálózaton. A kihagyott slotok száma arányosan le tudja lassítani a folyamatot, de ez a lassabb verzióját mutatja a lehetséges kimenetnek. - -## Gyakran ismételt kérdések {#faq} - - -Nem, a visszavonási adatok megadása egyszeri, nem lehet változtatni azokon. - - - -A végrehajtási réteg visszavonási cím megadásával a validátor visszavonási adatai örökre megváltoztak. A korábbi adatok már nem működnek, az újak pedig a végrehajtási réteg számlájára mutatnak. - -A visszavonási cím lehet okosszerződés (melyet a programkódja irányít) vagy egy külső tulajdonú számla (EOA, melyet a privát kulcsa kontrollál). Ezek a számlák jelenleg nem tudnak üzenetet küldeni a konszenzusrétegnek, amely megváltoztatná a validátor hitelesítő adatait, ez a funkció pedig egy szükségtelen komplexitást adna a protokollhoz. - -Egy másik megoldás az adott validátorhoz tartozó visszavonási cím módosítására, ha a felhasználók okosszerződést választanak visszavonási címként, amely tudja kezelni a kulcsok rotálását, mint amilyen a Safe. Azok a felhasználók, akik a saját EOA számlájukra tették a pénzeszközöket, végezhetnek teljes kilépést, visszavonva az összes lekötött eszközt, majd újra letétbe helyezhetik az új hitelesítő adatokat használatával. - - - - -Ha Ön letéti alapokat vagy letéti tokeneket használ, ellenőrizze a szolgáltatójával, hogy hogyan kezelik a letétvisszavonást, mivel minden szolgáltatás másképp működik. - -Általánosságban a felhasználók szabadon visszavehetik a letétbe helyezett ETH-t vagy lecserélhetik a letéti szolgáltatójukat. Ha egy adott letéti alap túl nagy méretű lesz, akkor a pénzeszközöket ki lehet venni belőle és újra le lehet kötni egy kisebb szolgáltatóval. Ha pedig elég ETH gyűlt össze, akkor Önotthonról is végezhet letétbe helyezést. - - - - -Igen, ha a validátora megadta a visszavonási címet. Ezt egyszer kell megtenni, hogy a visszavonások teljesíthetők legyenek, utána a jutalmak automatikusan átkerülnek néhány naponta a validátorok ellenőrzésénél. - - - - -Nem, ha a validátor aktív a hálózaton, akkor a teljes visszavonás nem történik meg automatikusan. Az önkéntes kilépést manuálisan kell kezdeményezni. - -Amint a validátor végigvitte a kilépési folyamatot, a számlán pedig ott vannak a visszavonási adatok, akkor a maradék egyenleget átteszi a következő validátor-ellenőrzés. - - - - -A visszavonásokat úgy tervezték meg, hogy automatikusan minden olyan összeget áthelyezzenek, ami aktívan nem járul hozzá a letéthez. Ez érvényes a kilépő számlák teljes egyenlegére. - -Nem lehetséges manuálisan kérvényezni bizonyos mennyiségű ETH kivételét. - - - - -A validátor működtetők látogassanak el a Staking Launchpad Withdrawals oldalra, ahol a validátorok készítéséről további információkat találhatnak. Továbbá hogyan készüljenek fel, mi az események időzítése, pontosan hogyan működik a visszavonási funkció. - -Próbálja ki először a beállításait egy teszthálózaton, látogasson el a Goerli-teszthálózat Staking Launchpad oldalára. - - - - -Nem. Miután egy validátor kilépett, és a teljes egyenlegét kivette, az adott validátorra letétbe helyezett további összegek automatikusan átutalásra kerülnek a következő validátor-ellenőrzés során a visszavonási címre. Az ETH újbóli letétbe helyezéséhez egy új validátort kell aktiválni. - - -## További olvasnivaló {#further-reading} - -- [Staking Launchpad visszavonások](https://launchpad.ethereum.org/withdrawals) -- [EIP-4895: Beacon-lánc operációs műveletként intézi a visszavonásokat](https://eips.ethereum.org/EIPS/eip-4895) -- [Ethereum Cat Herders – Shanghai](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) -- [PEEPanEIP #94: A letétbe helyezett ETH visszavonása (tesztelés) – Potuz & Hsiao-Wei Wang](https://www.youtube.com/watch?v=G8UstwmGtyE) -- [PEEPanEIP#68: EIP-4895: Beacon-lánc operációs műveletként intézi a visszavonásokat – Alex Stokes](https://www.youtube.com/watch?v=CcL9RJBljUs) -- [A validátor valós egyenlegének megértése](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/hu/whitepaper/index.md b/src/content/translations/hu/whitepaper/index.md deleted file mode 100644 index b4f5f6769d0..00000000000 --- a/src/content/translations/hu/whitepaper/index.md +++ /dev/null @@ -1,501 +0,0 @@ ---- -title: Ethereum fehérkönyv -description: Az Ethereum bemutató kiadványa, melyet 2013-ban adtak ki az indulása előtt. -lang: hu -sidebarDepth: 2 ---- - -# Ethereum fehérkönyv {#ethereum-whitepaper} - -_Ezt a bemutató kiadványt eredetileg 2013-ban adta ki Vitalik Buterin, az [Ethereum](/what-is-ethereum/) alapítója, a projekt 2015-ös indulása előtt. Fontos megjegyezni, hogy az Ethereum sok másik közösség által vezetett, nyílt forráskódú szoftver projekthez hasonlóan, a kezdeti elindulás óta fejlődött._ - -_Noha több éve íródott, fenntartjuk ezt a kiadványt, mert továbbra is hasznos referenciaként szolgál és pontos ábrázolást mutat az Ethereumról és annak jövőképéről. Ha többet szeretnél megtudni az Ethereum legutóbbi fejlesztéseiről és az általunk elvégzett protokoll változtatásokról, akkor ezt az [útmutatót](/learn/) ajánljuk._ - -## Az okosszerződések és decentralizált alkalmazás platformok következő generációja {#a-next-generation-smart-contract-and-decentralized-application-platform} - -Satoshi Nakamoto 2009-ben történő Bitcoin fejlesztését gyakran a pénz és a pénznem radikális fejleményének nevezték, ez az első példa egy olyan digitális eszközre, amelynek egyszerre nincs háttér vagy [belső értéke](http://bitcoinmagazine.com/8640/an-exploration-of-intrinsic-value-what-it-is-why-bitcoin-doesnt-have-it-and-why-bitcoin-does-have-it/), valamint nincs központi kibocsájtója vagy irányítója. A Bitcoin kísérlet másik - vitathatatlanul fontosabb - része azonban az alapjául szolgáló blokklánc technológia, mint az elosztott konszenzus eszköze, és a figyelem gyorsan kezd áttérni a Bitcoin ezen másik aspektusára. A blokklánc technológia gyakran idézett alternatív alkalmazásai közé tartozik az blokkláncon lévő digitális eszközök használata az egyedi valuták és pénzügyi eszközök reprezentálására ([colored coins](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit)), a mögöttes fizikai eszköz tulajdonjoga ([smart property](https://en.bitcoin.it/wiki/Smart_Property)), nem felcserélhető eszközök, mint a domén nevek ([Namecoin](http://namecoin.org)), vagy a komplexebb alkalmazások, melyek digitális javak közvetlen irányítását vonják magukkal egy tetszőleges szabályrendszert követő kód alapján ([smart contracts](http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/idea.html)) vagy akár blokklánc alapú [decentralizált autonóm szervezetek](http://bitcoinmagazine.com/7050/bootstrapping-a-decentralized-autonomous-corporation-part-i/) (DAO-k). Az Ethereum egy olyan beépített, teljesen kidolgozott Turing-teljes programozási nyelvvel rendelkező blokkláncot szeretne nyújtani, amely használható olyan "szerződések" létrehozására, amelyek tetszőleges állapotátmeneti funkciók kódolására használhatóak, lehetővé téve a felhasználók számára a fent leírt rendszerek bármelyikének létrehozását, valamint sok olyan más dolgot is, melyre még nem gondoltunk, egyszerűen a logika pár sornyi kódként való leírásával. - -## Bevezetés a Bitcoinba és a létező fogalmakba {#introduction-to-bitcoin-and-existing-concepts} - -### Előzmények {#history} - -A decentralizált digitális valuta, valamint az alternatív alkalmazások, például az ingatlan-nyilvántartások fogalma évtizedek óta létezik. Az 1980-as és 1990-es évek anonim e-cash protokolljai, melyek főleg a Chaum féle vakításként ismert kriptográfiai primitívre támaszkodtak, egy magas fokú adatvédelemmel rendelkező valutát kínáltak, de a protokolloknak többnyire nem sikerült elterjedniük, mivel egy centralizált közvetítőre támaszkodtak. 1998-ban Wei Dai [b-money-je](http://www.weidai.com/bmoney.txt) vált az első javaslattá, mely bemutatta a pénz létrehozásának számítási kirakósok megoldásával történő ötletét, valamint a decentralizált konszenzust, de a javaslat kevés részletet tartalmazott arról, hogy hogyan lehetne megvalósítani a decentralizált konszenzust a gyakorlatban. 2005-ben Hal Finney bemutatta az [újrafelhasználható munkabizonyítékokat](http://nakamotoinstitute.org/finney/rpow/), egy olyan rendszert, amely a b-pénzből származó ötleteket és Adam Back számítási szempontból nehéz Hashcash rejtvényeit használta fel a kriptovaluta koncepciójának megalkotására, de az ideálistól ez is elmaradt azáltal, hogy egy megbízható számítási backendre támaszkodott. Először 2009-ben került bevezetésre a gyakorlatban egy decentralizált valuta Satoshi Nakamoto által, amely egyesítette az alapként szolgáló már létező primitíveket amik a tulajdonjog publikus kulcs kriptográfiával történő kezelésére szolgáltak, egy konszenzus algoritmussal, mely az érmék tulajdonosainak számontartására szolgál és amit "munkabizonyítéknak" nevezünk. - -A proof-of-work mögötti mechanizmus egy áttörés volt, mivel egyszerre két problémára is megoldást nyújtott. Egyrészt egy olyan egyszerű és mérsékelten hatékony konszenzus algoritmust biztosított, amely lehetővé teszi a hálózat csomópontjainak, vagyis a résztvevő számítógépeknek (node-ok), hogy kollektíven egyetértsenek a Bitcoin főkönyvi állapotának kanonikus frissítéseiről. Másrészt egy olyan mechanizmust biztosított, amely szabad belépést tesz lehetővé abba a konszenzus folyamatba, mely megoldja annak a politikai problémának az eldöntését, hogy ki befolyásolja a konszenzust, emellett a Sybil-támadásokat is megelőzi. Ezt úgy teszi meg, hogy a részvétel formális akadályát - mint például egy adott listán egyedi entitásként való nyilvántartásba vétel követelményét - gazdasági akadályokkal helyettesíti: egy résztvevő csomópont súlya a konszenzusos szavazási folyamatban közvetlenül arányos azzal a számítási erővel, amivel a csomópont rendelkezik. Azóta javaslattétel született egy alternatív megközelítésre, amit _letétbizonyítéknak_ hívnak, mivel a hálózaton résztvevő számítógép, vagy csomópont (node) súlyozását a valuta letétbe helyezésének arányában számítja ki, nem pedig annak számítási kapacitása alapján; a két megközelítés relatív előnyeinek megvitatása meghaladja ennek a cikknek a kereteit, de meg kell jegyezni, hogy mindkét megközelítés felhasználható egy kriptovaluta alapjaként. - -Itt egy blog bejegyzés Vitalik Buterintől, az Ethereum alapítójától az [Ethereum előtörténetéről](https://vitalik.ca/general/2017/09/14/prehistory.html). [Itt](https://blog.ethereum.org/2016/02/09/cut-and-try-building-a-dream/) egy másik blog bejegyzés további történetekkel. - -### Bitcoin, mint egy állapot átmeneti rendszer {#bitcoin-as-a-state-transition-system} - -![Ethereum állapot átmenet](../../../whitepaper/ethereum-state-transition.png) - -Technikai szempontból egy kriptovaluta, például a Bitcoin főkönyve egy állapot átmeneti rendszernek tekinthető, ahol van egy "állapot", amely számon tartja az összes létező bitcoin tulajdonosi státuszát, és egy "állapot átmeneti függvény", ami az állapothoz egy tranzakció hozzáadásával egy új állapotot eredményez. Például egy szabályos banki rendszerben az állapot a vagyonmérlegnek felel meg, a tranzakció egy kérvény $X összeg átmozgatására A-ból B-be, az állapot átmeneti függvény pedig csökkenti A számlájának értékét $X összeggel, valamint növeli B számlájának értékét $X összeggel. Ha az A számla kevesebb összeggel rendelkezik mint $X, akkor az állapot átmeneti függvény egy hiba jelzést ad vissza. Tehát így definiálható formálisan: - - APPLY(S,TX) -> S' or ERROR - -A fentiekben leírt banki rendszerben: - - APPLY({ Alice: $50, Bob: $50 },"küld $20 Alice-tól Bob-nak") = { Alice: $30, Bob: $70 } - -De: - - APPLY({ Alice: $50, Bob: $50 },"küld $70 Alice-tól Bob-nak") = ERROR - -A Bitcoin "állapota" az összes érme együttvéve (műszaki nyelven "elköltetlen tranzakciós kimenetek" vagy UTXO), amelyek ki lettek bányászva és még nem lettek elköltve. Minden UTXO-nak van egy névértéke és egy tulajdonosa (melyet egy 20 bájtos cím határoz meg, mely lényegében egy kriptográfiai publikus kulcs[fn. 1](#notes)). Egy tranzakció egy vagy több bemenetet tartalmaz, és mindegyik bemenet tartalmaz egy hivatkozást egy meglévő UTXO-ra és egy kriptográfiai aláírást, amelyet a tulajdonos címéhez társított privát kulcs hoz létre, és egy vagy több kimenetet, ahol minden egyes kimenet egy új UTXO-t tartalmaz, amik aztán hozzáadódnak az állapothoz. - -Az állapot átmeneti függvény `APPLY(S,TX) -> S'` nagyjából a következő módon definiálható: - -1. Minden egyes bemenetre a `TX-ben`: - - - Ha a hivatkozott UTXO nincs benne az `S-ben`, hiba visszaadása. - - Ha a szolgáltatott aláírás nem egyezik az UTXO tulajdonosának aláírásával, hiba visszaadása. - -2. Ha az összes bemeneti UTXO egység összege kisebb, mint az összes kimeneti UTXO egység összege, hiba visszaadása. -3. `S'` visszaadása az összes bemeneti UTXO elvételével és az összes UTXO hozzáadásával. - -Az első lépés első fele megakadályozza, hogy a tranzakciók feladói nem létező érméket költsenek el, az első lépés második fele pedig megakadályozza, hogy a tranzakciók feladói mások érméit költsék el, a második lépés pedig az érték megőrzését hajtja végre. Ahhoz, hogy ezt fizetésnél használjuk, a protokoll a következő. Tegyük fel, hogy Alice 11,7 BTC-t szeretne Bob-nak átutalni. Először Alice megkeresi az általa birtokolt elérhető UTXO-k egy olyan halmazát, melynek összege legalább 11.7 BTC. A valóságban Alice nem fog pont 11.7 BTC-t találni; mondjuk, hogy a legkisebb, amit megtalált 6+4+2=12. Ezután elkészít egy tranzakciót ezzel a három bemenettel és két kimenettel. Az első kimenet 11.7 BTC lesz, aminek Bob címe lesz a tulajdonosa, a második kimenet pedig a maradék 0.3 BTC "visszajáró", melynek maga Alice a tulajdonosa. - -### Bányászat {#mining} - -![Ethereum blokkok](../../../whitepaper/ethereum-blocks.png) - -Ha hozzáférnénk egy megbízható, központosított szolgáltatáshoz, ezt a rendszert jelentéktelen lenne megvalósítani; mivel ugyanezt pontosan a leírtak szerint lehetne kódolni, egy központosított, azaz centralizált szerver merevlemezén tárolva az állapotot. Azonban a Bitcoinnal egy decentralizált pénz rendszert próbálunk építeni, így az állapot átmeneti rendszert egy konszenzus rendszerrel kell kombinálnunk, hogy biztosítsuk, hogy mindenki egyetért a tranzakciók sorrendje felett. A Bitcoin decentralizált konszenzus folyamata elvárja a hálózat résztvevőitől, hogy folyamatosan tranzakciókból álló csomagokat próbáljanak készíteni, melyeket '"blokkoknak" hívunk. A hálózat nagyjából egy blokkot szándékozik gyártani minden tizedik percben, ahol minden egyes blokk tartalmaz egy időbélyeget, egy nonce-t, egy hivatkozást az előző blokkra (vagyis hash-t), és az összes olyan tranzakciót tartalmazó listát, melyek az előző blokk után következtek. Idővel egy tartós, folyamatosan növekvő "blokklánc" jön létre, mely folyamatosan frissül, hogy a Bitcoin főkönyv legutóbbi állapotát reprezentálja. - -A blokkok érvényességét ellenőrző algoritmust az alábbi paradigma szerint lehet kifejezni: - -1. Ellenőrizni, hogy a blokk által hivatkozott előző blokk létezik és érvényes. -2. Ellenőrizni, hogy a blokk időbélyege nagyobb-e, mint az előző blokké[fn. 2](#notes) és kevesebb mint 2 óra telt el azóta -3. Ellenőrizni, hogy a blokk munkabizonyítéka érvényes-e. -4. Legyen `S[0]` az előző blokk után lévő állapot. -5. Legyen `TX` a blokk tranzakciós listája `n` tranzakcióval. Minden `i-re` `0...n-1-ig`, `S[i+1] = APPLY(S[i],TX[i])` Ha bármely lépés hibát ad vissza, kilépni és false értéket visszaadni. -6. True visszaadása, és `S[n]` regisztrálása az állapotként a blokk végén. - -Lényegében a blokkban szereplő minden tranzakciónak érvényes állapot átmenetet kell biztosítania a tranzakció lefutása előtti kanonikus állapotból egy új állapotba. Fontos megjegyezni, hogy az állapot semmilyen módon nincs belekódolva a blokkba; pusztán absztrakció, amelyre a hálózat érvényesítő résztvevőjének emlékeznie kell, és bármely blokkra (biztonságosan) csak akkor számítható ki, ha a kezdeti állapotból indulunk ki, és minden tranzakciót egymás után lefuttatunk minden blokkban. Továbbá meg kell jegyezni, hogy az is számít, hogy a bányász a tranzakciókat milyen sorrendben helyezte el a blokkban; ha van két olyan A és B tranzakció a blokkban, ahol B az A által létrehozott UTXO-t költi el, a blokk akkor lesz érvényes, ha A előbb van mint B, fordítva nem. - -A fenti listában szereplő érvényességi feltételek közül egyedül a "munkabizonyíték" szükségessége nem található meg más rendszereknél. A pontos feltétel pedig az, hogy minden blokk dupla-SHA256 hashének, melyet egy 256 bites számként kezelünk, kisebbnek kell lennie, mint egy dinamikusan beállított célérték, mely ennek az anyagnak a megírása közben 2187. Ennek a célja, hogy a blokk létrehozása számítási szempontból "nehéz" legyen, és hogy ezáltal megakadályozza a sybil-támadókat, hogy átalakítsák a teljes blokkláncot a saját érdekükben. Mivel az SHA256-ot úgy tervezték, hogy egy teljesen megjósolhatatlan álvéletlen (pszeudo-random) függvény legyen, így a blokk létrehozásának egyetlen módja a próbaszerencse (trial and error), vagyis ismételten növelni kell a nonce-t és figyelni, hogy az új hash megfelelő-e. - -A jelenlegi 2187-es cél esetében, a hálózatnak átlagosan \~269 próbálkozást kell tennie, mielőtt valaki egy érvényes blokkot találna; általánosságban a hálózat minden 2016 blokk után újrakalibrálja a célt azért, hogy a hálózat egy résztvevője átlagosan minden tizedik percben egy új blokkot hozzon létre. Azért, hogy a bányászok kompenzálva legyenek ezért a számítási munkáért, minden blokk bányászát megilleti, hogy egy olyan tranzakciót tegyen a blokkba, amiben jóváír magának 12.5 BTC-t a semmiből. Továbbá ha bármely tranzakciónak nagyobb bemeneti egysége van, mint kimeneti, akkor a különbség a bányászokhoz került, mint egy "tranzakciós díj". Tulajdonképpen ez a BTC kibocsátásának egyetlen módja; a kezdeti állapot egyáltalán nem tartalmazott érméket. - -Hogy jobban megértsük a bányászat célját, nézzük meg, hogy mi történik egy rosszindulatú támadás esetében. Mivel a Bitcoin mögötti kriptográfia közismerten biztonságos, a támadó a rendszer azon részét fogja célba venni, melyet nem véd közvetlenül kriptográfia: a tranzakciók sorrendjét. A támadó stratégiája egyszerű: - -1. 100 BTC elküldése egy kereskedőnek valamilyen termékért cserébe (ideálisan egy digitális termék, gyors "kiszállítással") -2. Megvárni amíg megérkezik a termék -3. Egy másik tranzakció létrehozása, amiben ugyanazt a 100 BTC-t küldi el magának -4. Meggyőzni a hálózatot, hogy a saját magának intézett tranzakció volt előbb. - -Amint az (1) lépés befejeződött, pár perc múlva valamelyik bányász beteszi a tranzakciót egy blokkba, mondjuk a 270-es számúba. Nagyjából egy órával később, ezután a blokk után öt új blokk kerül hozzáadásra a lánchoz, és minden egyes blokk közvetetten hivatkozik a tranzakcióra, így "megerősítve" azt. Ezen a ponton a kereskedő elfogadja a kifizetést véglegesítettként és kiszállítja a terméket; mivel feltételezzük, hogy ez egy digitális termék, a szállítás azonnali. Ekkor a támadó egy új tranzakciót hoz létre, amiben 100 BTC-t küld magának. Ha a támadó egyszerűen elküldené a tranzakciót a világba, nem kerülne feldolgozásra; mert a bányászok megpróbálják a futtatni az `APPLY(S,TX)` függvényt és észreveszik, hogy a `TX` egy olyan UTXO-t akar felhasználni, ami már nem létezik az "állapot" szerint. Ehelyett a támadó csinál egy blokklánc "elágazást" (fork) úgy, hogy a 270-es blokknak egy új verzióját kezdi el bányászni, ami ugyanarra a 269-es "szülő" blokkra épül, de a régi helyett egy új tranzakcióval. Mivel a blokk adata különböző, így újra kell csinálni a "prrof-of-work"-öt. Továbbá a támadó 270-es számú új blokk verziója egy különböző hash-sel rendelkezik, így az eredeti blokkok 271-től 275-ig nem "hivatkoznak" rá; így az eredeti lánc és a támadó új lánca teljesen különböző. Az a szabály, hogy az elágazásban a hosszabb blokkláncot kell igaznak tekinteni, így a törvényesen bányászók a 275-ös láncon fognak tovább dolgozni, míg a támadó egyedül dolgozik a 270-es láncon. Ahhoz, hogy a támadó saját blokkláncát tehesse a leghosszabbá, több számítási kapacitással kell rendelkeznie, mint a hálózat többi résztvevőjének együttvéve, hogy utolérhesse őket (innen ered az "51%-os támadás"). - -### Merkle fák {#merkle-trees} - -![SPV Bitcoin-ban](../../../whitepaper/spv-bitcoin.png) - -_Bal: elegendő a csomópontok egy kis számát prezentálni a Merkle fában, hogy bizonyítsuk egy ág érvényességét._ - -_Jobb: bármely kísérlet, mely a Merkle fa egy részének megváltoztatására irányul, végül következetlenséghez fog vezetni valahol a láncon._ - -A Bitcoin egyik fontos skálázhatósági tulajdonsága, hogy a blokk egy több szintes adatstruktúrában van tárolva. A blokk hash valójában csak a blokk fejléc hashe, ez megközelítőleg 200 bájt adatot jelent, mely tartalmazza az időbélyeget, a nonce-t, az előző blokk hashét és a Merkle fának nevezett adat struktúra gyökér hashét, mely a blokkban lévő összes tranzakciót tárolja. A Merkle fa egyfajta bináris fa, ami csomópontokból áll; jelentős számú levél csomópontból a fa alján, amik az alapul szolgáló adatokat tartalmazzák, egy sor középső csomópontból, ahol minden csomópont két gyerekének a hashe, és végül egy gyökér csomópontból, amely szintén két gyerekének a hashéből keletkezett, és a fa "tetejét" reprezentálja. A Merkle fa célja, hogy lehetővé tegye a blokkban lévő adatok feldarabolását: egy csomópont letöltheti csak a blokk fejlécet egy forrásból; a fának számára releváns kis részét pedig egy másik forrásból, és mégis biztos lehet az adat helyességében. Az ok amiért ez működik az a hashek felfelé terjedése: ha egy rosszindulatú felhasználó megpróbál betenni egy hamis tranzakciót a Merkle fa aljára, az változást indít el az eggyel feljebb lévő csomópontban, mely megváltoztatja az afelett lévő csomópontot, végül a gyökér csomópont is megváltozik, így ezzel a blokk hash is, ebből kifolyólag a protokoll egy teljesen másik blokként regisztrálja azt (szinte biztosan érvénytelen munkabizonyítékkal). - -A Merkle fa protokoll vitathatatlanul elengedhetetlen a hosszú távú fenntarthatósághoz. Egy "teljes csomópontnak" a Bitcoin hálózatban, az amelyik az összes blokk egészét tárolja és feldolgozza, körülbelül 15 Gb lemezterülettel kell rendelkeznie a Bitcoin hálózatban 2014 áprilisában, és ez havonta 1 Gb-tal nő. Jelenleg ezt csak bizonyos asztali számítógépek tudják megvalósítani, telefonok nem, és a jövőben csak vállalkozások és hobbisták lesznek képesek részt venni. Egy "egyszerűsített fizetési hitelesítésnek (SPV)" nevezett protokoll lehetővé teszi egy másik csomópont típus létezését, melyeket "könnyű csomópontoknak" hívunk, ezek a hálózati résztvevők csak a blokk fejléceket töltik le, hitelesítik a munkabizonyítékot a blokk fejléceken és csak a számukra releváns tranzakciókhoz tartozó "ágakat" töltik le. Ez lehetővé teszi a könnyű csomópontoknak, hogy erős biztonsági garanciával meghatározhassák bármelyik Bitcoin tranzakció állapotát és aktuális egyenlegét, miközben a teljes blokklánc csak nagyon kis részét töltik le. - -### Alternatív blokklánc alkalmazások {#alternative-blockchain-applications} - -A mögöttes blokklánc másfajta koncepciókra történő alkalmazásának ötlete szintén hosszú történelemmel bír. 1998-ban Nick Szabo kiadta a [tulajdonosi jogokkal rendelkező biztonságos tulajdonok](http://nakamotoinstitute.org/secure-property-titles/) koncepciójával foglalkozó kiadványt. Ez a dokumentum leírja, hogy az "újdonságok a replikált adatbázis-technológiában" miként tesznek lehetővé egy blokklánc-alapú rendszert, mely nyilvántartja, hogy ki milyen földterülettel rendelkezik, létrehozva ezzel egy kidolgozott keretrendszert, amely magában foglalja az olyan fogalmakat, mint a homesteading, a hátrányos birtoklás és a George féle föld adó. Abban az időben sajnos nem állt rendelkezésre hatékony replikált adatbázis-rendszer, ezért a protokollt a gyakorlatban soha nem valósították meg. 2009-től azonban a Bitcoin decentralizált konszenzusának kialakulása után számos alternatív alkalmazás kezdett gyorsan megjelenni. - -- **Namecoin** - a 2010-ben létrehozott [Namecoint](https://namecoin.org/) legjobban egy decentralizált név regisztrációs adatbázisként lehet leírni. Az olyan decentralizált protokollokban, mint a Tor, a Bitcoin és a BitMessage azért, hogy más emberek kölcsönhatásba léphessenek velük a fiókok azonosítására van szükség valamilyen módon, de az összes létező megoldásban az egyetlen elérhető azonosítótípus egy pszeudorandom hash, például `1LW79wp5ZBqaHW1jL5TCiBCrhQYtHagUWy`. Ideális esetben olyan számlanevet szeretnénk használni, mint a "george". A probléma azonban az, hogy ha egy személy létrehozhat egy "george" nevű fiókot, akkor valaki más is végig mehet ugyanezen a folyamaton a "george" regisztrálásához, és annak adhatja ki magát. Az egyetlen megoldás a first-to-file paradigma, ahol az első regisztrálónak sikerül, a másodiknak pedig meghiúsul - ez a probléma tökéletesen megfelel a Bitcoin konszenzusprotokoll számára. A Namecoin a legrégebbi és a legsikeresebb név regisztrációs rendszer implementáció, mely ezen ötleten alapszik. -- **Colored coins** - a [colored coinok](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit) célja egy olyan protokoll megtestesítése, mely lehetővé teszi az emberek számára, hogy saját digitális valutát készítsenek - vagy az egy egységgel rendelkező valuták triviális és fontos esetében, digitális tokeneket a Bitcoin blokkláncon. A colored coins protokollban egy új pénznemet "bocsát ki" valaki azáltal, hogy nyilvánosan hozzárendel egy színt egy adott Bitcoin UTXO-hoz, és a protokoll rekurzív módon meghatározza a többi UTXO színét annak az inputnak a színével, amelyet az őket létrehozó tranzakció költött (néhány speciális szabály vonatkozik a vegyes színű bemenetekre). Ez lehetővé teszi a felhasználók számára, hogy csak bizonyos színű UTXO-t tartalmazó pénztárcákat tartsanak fenn, és a szokásos bitcoinokhoz hasonlóan küldjék el őket, visszakeresve a blokkláncon, hogy meghatározzák a kapott UTXO-k színét. -- **Metacoins** - a metacoin mögött az az ötlet áll, hogy legyen egy olyan protokoll, amely a Bitcoinra épült, és a Bitcoin tranzakciókat használja metacoin tranzakciók tárolására, de más állapotátmeneti függvénnyel rendelkezik, ami az `APPLY'`. Mivel a metacoin protokoll nem tudja megakadályozni, hogy érvénytelen metacoin tranzakciók jelenjenek meg a Bitcoin blokkláncon, bekerült az a szabály, hogy ha az `APPLY'(S,TX)` hibaüzenetet ad vissza, a protokoll az `APPLY'(S,TX) = S` alapértelmezett értékre áll be. Ez egy egyszerű mechanizmust biztosít egy tetszőleges kriptovaluta protokoll létrehozására, potenciálisan fejlett funkciókkal, amelyek nem valósíthatók meg a Bitcoin belsejében, de a fejlesztési költségek alacsonyak, mivel a bányászat és a hálózatépítés bonyolultságait már a Bitcoin protokoll kezeli. A metacoinokat használták már néhány pénzügyi szerződés fajtánál, név regisztrációnál és decentralizált tőzsdék esetében. - -Így általánosságban két megközelítés van egy konszenzus protokoll fejlesztésére: egy független hálózat építése és egy protokoll fejlesztése a Bitcoinra. Az előbbi megközelítést, ami bár meglehetősen sikeres a Namecoinhoz hasonló alkalmazások esetében, nehéz implementálni; minden egyedi implementációnak bootstrapelni kell egy független blokkláncot, illetve kifejleszteni és letesztelni a szükséges állapot átmenetet és a hálózati kódot. Továbbá arra számítunk, hogy a decentralizált konszenzus technológiát használó alkalmazások a hatványtörvény szerinti eloszlást fogják követni, ahol az alkalmazások túlnyomó többsége túl kicsi lesz ahhoz, hogy indokolt legyen egy saját blokkláncot fenntartaniuk, és megjegyezzük, hogy a decentralizált alkalmazásoknak nagy osztályai léteznek, különösen a decentralizált autonóm szervezetek, melyeknek interakcióba kell lépniük egymással. - -Másfelől a Bitcoin alapú megközelítésnek az a hátulütője, hogy nem örökli a a Bitcoin egyszerűsített fizetési hitelesítési tulajdonságait. Az SPV működik a Bitcoin esetében, mivel felhasználja a blokklánc mélységet, mint érvényességi proxy; egy ponton, amint a tranzakció ősei eleget mennek vissza, biztonsággal állítható, hogy érvényes részei az állapotnak. Másfelől a blokklánc alapú meta protokollok nem kényszeríthetik a blokkláncot, hogy ne tartalmazza azokat a tranzakciókat, melyek nem érvényesek a saját protokolljuk kontextusában. Ezért egy teljesen biztonságos SPV meta-protokoll megvalósításnak vissza kell hivatkoznia a Bitcoin blokklánc elejéig annak megállapítására, hogy biztos-e a tranzakciók érvényessége. Jelenleg a Bitcoin alapú meta-protokollok összes "könnyű" implementációja egy megbízott szerverre támaszkodik az adatszolgáltatásra, mely vitathatóan egy meglehetősen szuboptimális eredmény különösen akkor, amikor a kriptovaluták elsődleges célja a bizalom szükségletének megszüntetése. - -### Szkriptelés {#scripting} - -Még valamilyen kiterjesztés nélkül is a Bitcoin protokoll valóban meg tudja könnyíteni az "okosszerződések" egy gyenge változatának koncepcióját. A Bitcoinban lévő UTXO-kat nem csak publikus kulcsok birtokolhatják, hanem bonyolultabb szkriptek is, melyeket egy egyszerű stack alapú programozási nyelvvel lehet kifejezni. Ebben a paradigmában az UTXO-t elköltő tranzakcióknak adatokat kell szolgáltatni a szkriptek kielégítésére. Valójában még az alapvető publikus kulcs tulajdonjog mechanizmus is egy szkripten keresztül valósul meg: a szkript egy elliptikus görbe aláírást használ bemenetként, megerősíti a tranzakció és az UTXO-t birtokló cím szerint és 1-et ad vissza, ha az érvényesítés sikeres ellenkező esetben 0-át. Más bonyolultabb szkriptek is léteznek további különböző felhasználási esetekre. Például létre lehet hozni egy olyan szkriptet, mely három privát kulcsból kettő aláírását igényli az érvényesítéshez ("multisig"), a vállalati számlák, biztonságos megtakarítási számlák és néhány kereskedői letét számára hasznos beállítás. A szkriptek felhasználhatók a számítási problémák megoldásáért járó jutalmak kifizetésére is, sőt össze lehet állítani egy olyan szkriptet, amely valami olyasmit mond, hogy "ez a Bitcoin UTXO a tiéd, ha tudsz egy SPV bizonyítékot nyújtani arra, hogy nekem küldtél egy ilyen címletű Dogecoin tranzakciót", mely lényegében lehetővé teszi a decentralizált kereszt-kriptovaluta váltást. - -Azonban a Bitcoinban implementált szkript nyelvnek számos fontos megkötése van: - -- **Turing-teljesség hiánya** - vagyis, bár van egy nagy számítási részhalmaz, amelyet a Bitcoin szkriptnyelv támogat, közel sem támogat mindent. A fő kategória a hiányzó ciklusok. Ennek az az oka, hogy elkerüljük a végtelen ciklusokat a tranzakció ellenőrzések során; elméletileg ez egy leküzdhetetlen akadály a szkript programozók számára, mivel bármely ciklus szimulálható úgy, hogy egyszerűen megismételjük több alkalommal a mögöttes kódot egy if utasítással, de ez nagyon kis hatékonyságú szkriptekhez vezet. Például egy alternatív elliptikus görbe aláírás algoritmus implementálása valószínűleg 256 ismételt szorzási kört igényelne, mely mindegyike egyenként szerepelne a kódban. -- **Értékvakság** - nincs olyan UTXO szkript, mely képes lenne szofisztikáltan irányítani a kiutalható mennyiséget. Például egy orákulum szerződés hatékony felhasználási esete egy hedging szerződés lehetne, ahova A és B $1000 értékű BTC-t tesz be és 30 nappal később a szkript elküld $1000 értékű BTC-t A részére a maradékot pedig B részére. Ez egy orákulumot igényelne, mely meghatározná 1 BTC értékét USD-ben, de még így is hatalmas előrelépés a bizalom és infrastrukturális követelmények szempontjából a teljesen központosított megoldásokhoz képest, melyek elérhetőek jelenleg. Azonban mivel az UTXO mindent vagy semmit elven működik, ennek az egyedüli módja, ha sok UTXO-t használunk különböző egységekkel (pl.: egy 2k UTXO minden k-ra egészen 30-ig) és az O eldönti, hogy melyik UTXO-t küldi A-nak és melyiket B-nek. -- **Az állapot hiánya** - a [Egy UTXO lehet elköltött vagy elköltetlen](https://bitcoin.org/en/glossary/unspent-transaction-output); nincs lehetőség többlépcsős szerződésekre vagy szkriptekre, amelyek minden más belső állapotot ezen túl tartana. Ez megnehezíti a többlépcsős opciós szerződések, decentralizált csereajánlatok vagy kétlépcsős kriptográfiai elköteleződési protokollok létrehozását (ami szükséges a biztonságos számítási kompenzációhoz). Ez azt is jelenti, hogy az UTXO csak egyszerű, egyszeri szerződések és nem bonyolultabb "állapottal rendelkező" szerződések, például decentralizált szervezetek létrehozására használható, és a metaprotokollok megvalósítását megnehezíti. A bináris állapot az értékvaksággal kombinálva azt is jelenti, hogy egy másik fontos alkalmazás, a kiutalási limitek beállítása, sem lehetséges. -- **Blockchain-vakság** - Az UTXO nem tud az olyan blokklánc adatokról, mint a nonce, az időbélyeg vagy az előző blokk hash. Ez súlyosan korlátozza a szerencsejátékokban és számos más kategóriában történő alkalmazásokat azáltal, hogy megfosztja a szkript nyelvet a véletlenszerűség potenciálisan értékes forrásától. - -Így meglátásunk szerint háromféleképpen lehet fejlett alkalmazásokat fejleszteni egy kriptovalutára: új blokklánc indítása, a Bitcoin szkripting használata és egy meta protokoll fejlesztése Bitcoinra. Egy új blokklánc indítása lehetővé teszi a korlátlan szabadságot a funkciókészlet építésében, de a fejlesztési idő, a bootstrapping és a biztonság árán. A szkriptek használata egyszerűen megvalósítható és szabványosítható, de nagyon korlátozott a képességeiben, és a meta protokollok, míg egyszerűek, nehezen skálázhatóak. Az Ethereummal egy olyan alternatív keretrendszert szeretnénk létrehozni, mely még jobban megkönnyíti a fejlesztést, valamint erősebb könnyű kliens tulajdonságokkal rendelkezik, egyúttal az alkalmazásoknak egy közös gazdasági környezetet és blokklánc biztonságot biztosít. - -## Ethereum {#ethereum} - -Az Ethereum célja egy alternatív protokoll létrehozása decentralizált alkalmazások fejlesztésére, különböző kompromisszumokkal, amelyről úgy hisszük, hogy nagyon hasznos lesz a decentralizált alkalmazások nagy részének, különös tekintettel az olyan esetekre, ahol fontos a gyors fejlesztési idő, a biztonság a kisméretű és ritkán használt alkalmazások számára, és a különböző alkalmazások közötti nagyon hatékony együttműködés. Az Ethereum ezt úgy éri el, hogy felépíti azt, ami lényegében a végső absztrakt alapréteg: egy blokkláncot beépített Turing-teljes programozási nyelvvel, mely lehetővé teszi bárki számára az okosszerződés írást és a decentralizált alkalmazás fejlesztést, ahol létrehozhatják a saját tetszőleges tulajdonjogi szabályaikat, tranzakció formátumukat és az állapot átmeneti függvényeket. A Namecoin lecsupaszított verziója két sornyi kódból megírható, a többi protokoll, mint például a valuták és az identitás rendszerek pedig kevesebb, mint húsz sorból. Okosszerződések, olyan kriptográfiai "dobozok", melyek értéket tartalmaznak és csak akkor nyílnak ki amikor bizonyos feltételek teljesülnek, szintén építhetőek a platformra sokkal nagyobb erővel, mint amit a Bitcoin szkriptelés kínál, a Turing-teljesség, érték-tudatosság, blokklánc-tudatosság és az "állapot" hozzáadott ereje miatt. - -### Filozófia {#philosophy} - -Az Ethereum mögötti elgondolás az alábbi elveket szándékozik követni: - -1. **Egyszerűség**: az Ethereum protokollnak a lehető legegyszerűbbnek kell lennie, még az adattárolás vagy az időhatékonyság rovására is.[fn. 3](#notes) Egy átlagos programozó ideális esetben képes a teljes részletes leírást követni és implementálni,[fn. 4](#notes) annak érdekében, hogy teljes mértékben kiaknázhassuk a kriptovaluta példátlan demokratizálási potenciálját, és tovább terjesszük az Ethereum mint mindenki számára nyitott protokoll elképzelését. Az olyan optimalizálásokat, melyek a komplexitás növelésével járnak, nem szabad használni, kivéve ha az optimalizálás jelentős előnnyel jár. -2. **Univerzalitás**: az Ethereum design filozófia egyik alapvetése, hogy az Ethereumnak nincsenek "jellemző vonásai".[fn. 5](#notes) Ehelyett az Ethereum egy olyan Turing-teljes szkript nyelvet szolgáltat, mellyel a programozó bármilyen okosszerződést vagy tranzakció típust felépíthet, melyek matematikailag definiálhatóak. Szeretnéd feltalálni a saját pénzügyi származékos termékedet? Az Ethereummal megteheted. Szeretnéd létrehozni a saját valutádat? Hozd létre egy Ethereum szerződéssel. Szeretnél egy teljeskörű Daemont vagy Skynetet felállítani? Lehet, hogy szükséged lesz pár ezer összekapcsolódó szerződésre és számíts rá, hogy bőkezűen kell majd őket táplálnod, de semmi nem állíthat meg a karnyújtásnyira lévő Ethereummal. -3. **Modularitás**: az Ethereum protokoll részeit annyira modulárissá és szétválaszthatóvá kell tervezni, amennyire csak lehetséges. A fejlesztés során az a célunk, hogy egy olyan programot hozzunk létre, amiben ha valahol egy kisebb protokoll módosítást viszünk végbe, az alkalmazási verem (stack) továbbra is működni fog további módosítás nélkül. Az olyan innovációkat, mint az Ethash (lásd [Sárga Könyv Függelék](https://ethereum.github.io/yellowpaper/paper.pdf#appendix.J) vagy [wiki szócikk](https://github.com/ethereum/wiki/wiki/Ethash)), a módosított Patricia fák ([Sárga Könyv](https://ethereum.github.io/yellowpaper/paper.pdf#appendix.D), [wiki](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-Patricia-Tree)) és az RLP ([YP](https://ethereum.github.io/yellowpaper/paper.pdf#appendix.B), [wiki](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-RLP)) különálló, funkció-teljes könyvtárként kell alkalmazni, és így is vannak alkalmazva. Ennek az az oka, hogy annak ellenére, hogy az Ethereumban használjuk őket, még ha az Ethereum nem is igényli bizonyos funkcióit, ezek a funkciók más protokollok számára is hasznosak lehetnek. Az Ethereum fejlesztést úgy kell maximálisan elvégezni, hogy a teljes kriptovaluta ökoszisztéma javát szolgálja, ne csak a sajátját. -4. **Agilitás**: az Ethereum protokoll részletei nincsenek kőbe vésve. Azonban rendkívül megfontoltak leszünk a magas szintű konstrukciók megváltoztatását illetően, mint például a [sharding ütemterv](https://ethresear.ch/t/sharding-phase-1-spec/1407/) esetében a végrehajtás absztrahálása csak az adatok konszenzusos elérhetőségével fog történni. A fejlesztési folyamat során történő későbbi számítási tesztek arra a felfedezésre vezethetnek, hogy bizonyos módosítások például a protokoll felépítésében vagy az Ethereum Virtuális Gépben (EVM) jelentős mértékben növelhetik a skálázhatóságot vagy a biztonságot. Ha találunk ilyen lehetőségeket, akkor ki fogjuk használni őket. -5. **Megkülönböztetés-mentesség** és **cenzúra-mentesség**: a protokoll nem kísérelheti meg bizonyos használati kategóriák aktív betiltását vagy megelőzését. A protokoll összes szabályozási mechanizmusát arra kell tervezni, hogy közvetlenül a károkozást szabályozza nem pedig a bizonyos nemkívánatos alkalmazásokat. Egy programozó akár egy végtelen ciklusos szkriptet is futtathat az Ethereumon, amíg hajlandó fizetni a számítási lépések tranzakciós díját. - -### Ethereum számlák {#ethereum-accounts} - -Az Ethereumban az állapotot "számláknak" nevezett objektumok alkotják, ahol minden egyes számla egy 20-bájtos címmel rendelkezik és az állapot átmenetet a számlák közötti közvetlen érték és információ átutalás végzi. Az Ethereum számlák négy mezőt tartalmaznak: - -- A **nonce**, egy számláló, mely biztosítja, hogy minden tranzakció csak egyszer kerül feldolgozásra -- A számla jelenlegi **ether egyenlege** -- A számla **szerződés kódja**, ha van -- A számla **tárhelye** (alapértelmezetten üres) - -Az "Ether" az Ethereum elsődleges belső kripto-üzemanyaga és a tranzakciós díj kifizetésére lehet használni. Általánosságban kétfajta számlatípus létezik: **külső tulajdonú számlák**, melyeket privát kulcsok irányítanak és **szerződéses számlák**, melyeket a szerződés kódjuk irányít. Az külső tulajdonú számlának nincsen kódja, és az adott személy üzenetet küldhet egy külső tulajdonú számláról egy tranzakció létrehozásával és aláírásával; a szerződéses számla esetében minden esetben, amikor a szerződéses számla egy üzenetet kap aktiválódik a kódja, ennek hatására lehetővé teszi a belső tárhely írását és olvasását, új üzenetek küldését vagy szerződés létrehozást. - -Fontos megjegyezni, hogy az Ethereumban a "szerződésekre" nem úgy kell tekinteni, mint amit „teljesíteni” vagy „betartani” kell; inkább "autonóm ügynökök", akik az Ethereum végrehajtási környezetében élnek, és mindig végrehajtanak egy adott kóddarabot, amikor "megböki" őket egy a üzenet vagy tranzakció, és közvetlen ellenőrzésük alatt tartják saját Ether egyenlegüket és saját kulcsérték-adatbázisukat, a tartós változók nyomon követésére. - -### Üzenetek és tranzakciók {#messages-and-transactions} - -A "tranzakció" kifejezést az Ethereumban egy aláírt adat csomagra használjuk, ami egy külső tulajdonú számláról érkező üzenetet tartalmaz. A tranzakció a következőket tartalmazza: - -- Az üzenet címzettje -- A küldőt azonosító aláírás -- Az Ether összeg, amit a küldő át akar utalni a címzettnek -- Egy opcionális adat mező -- A `STARTGAS` érték, ami a tranzakció végrehajtás számítási lépéseinek maximális számát jelenti -- A `GASPRICE` érték, ami a számítási lépésenkénti díjat jelenti, amit a feladó fizet - -Az első három olyan alap mező, ami minden kripto valutánál megtalálható. Az adatmezőnek alapértelmezés szerint nincs funkciója, de a virtuális gép rendelkezik egy opkóddal, amelyet a szerződés használhat az adatok elérésére; mint például, amikor egy szerződés domain regisztrációs szolgáltatásként működik a blokkláncon, akkor úgy értelmezheti a hozzá érkező adatot, hogy az két "mezőt" tartalmaz, az első mező a regisztrálandó domain, a második mező pedig az IP-cím, amelyre regisztrálni kell. A szerződés elolvassa ezeket az adatokat az üzenetből, és a megfelelő helyükre helyezi el őket az adattárban. - -The `STARTGAS` és `GASPRICE` mezők kritikusak az Ethereum szolgáltatás megtagadása elleni modelljében. A véletlen vagy rosszindulatú végtelen ciklusok vagy más számítási kódveszteség megelőzésének érdekében minden tranzakciónak korlátot kell szabnia arra vonatkozóan, hogy a kódfuttatás hány számítási lépést használhat. A számítás alapvető egysége a "gas"; általában egy számítási lépés 1 gas-ba kerül, de egyes műveletek magasabb gas mennyiségbe kerülnek, mert számítási szempontból drágábbak, vagy növelik az állapot részeként tárolandó adatok mennyiségét. Továbbá minden egyes tranzakciós adatban található byte után 5 gas díj is felszámításra kerül. A díjrendszer célja, hogy megkövetelje a támadótól, hogy minden általa felhasznált erőforrásért arányosan fizessen, beleértve a számítást, a sávszélességet és a tárhelyet is; ennélfogva minden olyan tranzakció esetében, amelynek eredményeként a hálózat ezeknek az erőforrásoknak bármelyikét nagyobb mennyiségben fogyasztja, az erőforrások növekedésével nagyjából arányos gas költséggel kell számolni. - -### Üzenetek {#messages} - -A szerződéseknek meg van a lehetőségük, hogy "üzeneteket" küldjenek más szerződéseknek. Az üzenetek olyan virtuális objektumok, amik soha nincsenek szerializálva és csak az Ethereum futtatási környezetben léteznek. Az üzenet a következőket tartalmazza: - -- Az üzenet küldője (magától értetődő) -- Az üzenet címzettje -- Az üzenettel küldendő Ether összege -- Egy opcionális adat mező -- A `STARTGAS` érték - -Lényegében az üzenet olyan mint a tranzakció, kivéve, hogy nem a külső szereplő által lett létre hozva, hanem a szerződés által. Üzenet akkor jön létre, amikor a kódot jelenleg végrehajtó szerződés végrehajtja a `CALL` opkódot, amely előállítja és vére hajtja az üzenetet. Úgy mint a tranzakció, az üzenet is a kódja futtatására vezeti a címzett számlát. Ezáltal a szerződéseknek is ugyanúgy lehet kapcsolatuk másik szerződésekkel, mint a külső szereplőknek. - -Megjegyzendő, hogy a tranzakciók vagy szerződések által kiszabott gas díj vonatkozik a teljes gas összegre, amit az a tranzakció és az összes alvégrehajtási folyamat felhasznált. Például, ha egy külső szereplő A küld egy tranzakciót B-nek 1000 gas-al, és B 600 gas-t fogyaszt, mielőtt üzenetet küldene C-nek, és C belső végrehajtása 300 gas-t fogyaszt, mielőtt visszatérne, akkor B további 100 gas-t költhet, mielőtt kifogyna a gas-ból. - -### Ethereum állapotátmenet függvény {#ethereum-state-transition-function} - -![Ether állapot átmenet](../../../whitepaper/ether-state-transition.png) - -Az Ethereum állapotátmenet függvény, `APPLY(S,TX) -> S'` a következőképpen írható le: - -1. Ellenőrizni, hogy a tranzakció jól formált-e (azaz megfelelő-e az értékek száma), az aláírás érvényes-e, és a nonce megegyezik-e a feladó számláján szereplő nonce-al. Ha nem, hiba vissza adása. -2. Kiszámítani a tranzakciós díjat a következőképpen `STARTGAS * GASPRICE`, és meghatározni a küldő címet az aláírásból. Levonni a díjat a küldő fél számla egyenlegéről és növelni a küldő fél nonce-át. Ha nincs elegendő egyenleg, hiba vissza adása. -3. Beállítani a `GAS = STARTGAS` kezdőértéket és bizonyos mennyiségű, bájtonkénti gas-t elvenni a tranzakció bájtjainak kifizetéséhez. -4. Átutalni a tranzakció értékét a küldő számlájáról a fogadó számlájára. Ha a fogadó számla még nem létezik, létrehozni azt. Ha a fogadó számla egy szerződés, futtatni a szerződés kódját, addig amíg a tranzakció teljesül, vagy ameddig a végrehajtás során elfogy a gas. -5. Ha az érték átutalás azért nem sikerült, mert a feladónak nem volt elegendő pénze, vagy a kódfuttatás során elfogyott a gas, akkor minden állapotváltozást visszavonni, kivéve a díjak kifizetését, és a díjakat a bányász számlájához hozzáadni. -6. Máskülönben az összes fennmaradó gas díjat visszatéríteni a feladónak, az elfogyasztott gas-ért fizetett díjakat pedig elküldeni a bányásznak. - -Például tegyük fel, hogy a szerződés kódja: - - if !self.storage[calldataload(0)]: - self.storage[calldataload(0)] = calldataload(32) - -Megjegyzendő, hogy a valóságban a szerződés alacsony szintű EVM programozási nyelven van írva; ez a példa az érthetőség kedvéért az egyik magas szintű programozási nyelven, a Serpent-en íródott, és le lehet fordítani EVM kódra. Tegyük fel, hogy a szerződés tárhelye az elején üres, és egy 10 Ether értékű tranzakciót elküldenek 2000 gas-al, 0,001 Ether gas árral, és 64 bájtnyi adattal, ahol 0-31 bájtok a `2` számot ábrázolják, és 32-63 bájtok pedig a karakterláncot ábrázolják `CHARLIE`.[fn. 6](#notes) Az állapot átmeneti függvény folyamata ebben az esetben a következőképpen alakul: - -1. Ellenőrizni, hogy a tranzakció érvényes és jól formált. -2. Ellenőrizni, hogy a tranzakció küldőjének van legalább 2000 \* 0,001 = 2 Ethere. Ha igen, levonni 2 Ethert a küldő számlájáról. -3. A gas = 2000 kezdőérték beállítása; feltételezve, hogy a tranzakció 170 bájt hosszú és a bájtdíj 5, levonni 850-et úgy, hogy 1150 gas maradjon. -4. További 10 Ether levonása a küldő számlájáról, és annak hozzáadása a szerződés számlájához. -5. A kód futtatása. Ebben az esetben ez egyszerű: a kód ellenőrzi, hogy a szerződés tárhelye a `2` indexen van használva, ha észreveszi, hogy nem, akkor a tárhely indexet beállítja `2` az értéket pedig `CHARLIE`. Tegyük fel, hogy ez 187 gas-ba kerül, így a fennmaradó gas összeg 1150 - 187 = 963 -6. 963 \ \* 0,001 = 0,963 Ether visszaadása a feladó fiókjába, és visszatérés az eredményül kapott állapothoz. - -Ha a tranzakció fogadó oldalán nem lenne szerződés, akkor a teljes tranzakciós díj egyszerűen megegyezne a megadott `GASPRICE` szorozva a tranzakció hosszával bájtokban, és a tranzakcióval együtt elküldött adatok lényegtelenek lennének. - -Megjegyzendő, hogy az üzenetek és a tranzakciók visszafordítása ugyanúgy működik: ha az üzenet végrehajtása során elfogy a gas, akkor az üzenet végrehajtása és az összes többi végrehajtás, amelyet az a végrehajtás váltott ki, visszaáll, de a szülő végrehajtásokat nem kell visszaállítani. Ez azt jelenti, hogy egy szerződés "biztonságosan" hívhat egy másik szerződést, mivel ha A G-gas-al hívja B-t, akkor A végrehajtása garantáltan legfeljebb G-gas veszteséget okoz. Végül megjegyzendő, hogy van egy műveleti kód (opcode) `CREATE`, ami létrehozza a szerződést; aminek a végrehajtási mechanikája általában hasonló a `CALL`-hoz, azaz híváshoz, azzal a kivétellel, hogy a végrehajtás kimenete határozza meg az újonnan létrehozott szerződés kódját. - -### Kód futtatás {#code-execution} - -Az Ethereum szerződésekben szereplő kód alacsony szintű, verem-alapú bájtkód nyelven íródott, amelyet "Ethereum virtuális gép kódnak" vagy "EVM kódnak" neveznek. A kód bájtok sorozatából áll, ahol mindegyik bájt egy műveletet képvisel. A kódfuttatás általában egy végtelen ciklus, ami a művelet ismételt végrehajtásából áll az aktuális programszámlálón (amely nullától kezdődik), majd eggyel növeli a programszámlálót addig, amíg el nem éri a kód végét, vagy egy hibát, illetve `STOP` vagy `RETURN` utasítást észlel. A műveletek háromféle helyhez férnek hozzá, ahol adatokat tárolhatnak: - -- A ** verem ** egy utolsóként be, elsőként ki (LIFO) tárolóhely, ahol az értékek rárakhatóak (push) és levehetőek (pop) a verem tetejéről -- ** Memória **, egy végtelenül bővíthető bájt tömb -- A szerződés hosszú távú ** tárhelye **, egy kulcs- és értéktároló. A veremtől és a memóriától eltérően, amelyek a számítás befejezése után nullázódnak, ez a tároló hosszú ideig fennmarad. - -A kód hozzáférhet a bejövő üzenet értékéhez, feladójához és adataihoz, valamint a blokk fejlécének adataihoz, és a kód egy bájt adattömböt is visszaadhat kimenetként. - -Az EVM kód formális végrehajtási modellje meglepően egyszerű. Amíg az Ethereum virtuális gép fut, teljes számítási állapota meghatározható a következő értéksorral: `(blokk_állapot, tranzakció, üzenet, kód, memória, verem, programszámláló(pc), gas)`, ahol a `blokk_állapot` az összes számlafiókot tartalmazó globális állapot, amely magában foglalja az egyenlegeket és a tárolóhelyeket. Minden egyes végrehajtási kör elején, az aktuális utasítás megtalálható a `kód`-nak (vagy 0 ha `pc >= len(code)`) a `programszámláló` -n meghatározott bájtja által, és minden utasításnak megvan a maga meghatározása abból a szempontból, hogy milyen hatással van az értéksorra. Például, `ADD` elvesz két elemet a veremből és visszarakja az összegüket, csökkenti a `gas` -t 1-el, és növeli a `programszámláló`-t 1-el, és a `SSTORE` leveszi a verem két legfelső elemét és behelyezi a második elemet a szerződés tárhelyébe az első elem által meghatározott indexen. Bár számos módja van az Ethereum virtuális gép végrehajtás optimalizálásának, futásidejű fordítással vagy másnéven röpfordítással, az Ethereum alapvető megvalósítása néhány száz kódsorban elvégezhető. - -### Blokklánc és bányászat {#blockchain-and-mining} - -![Ethereum alkalmazás blokkdiagram](../../../whitepaper/ethereum-apply-block-diagram.png) - -Az Ethereum blokklánc sok szempontból hasonló a Bitcoin blokklánchoz, bár vannak közöttük különbségek. A fő különbség az Ethereum és a Bitcoin között a blokklánc felépítésének tekintetében az, hogy a Bitcointól eltérően (amely csak a tranzakciós lista másolatát tartalmazza) az Ethereum blokkok tartalmazzák a tranzakciós lista és a legutóbbi állapot másolatát is. Emellett két másik érték, a blokk száma és a nehézsége is tárolva van a blokkban. Az Ethereum blokk érvényesítési algoritmusa a következő: - -1. Ellenőrizni, hogy az előző blokk, amire a blokk hivatkozik létezik és érvényes. -2. Ellenőrizni, hogy a blokk időbélyege nagyobb-e, mint az előző blokké és kevesebb mint 15 perc telt el azóta -3. Ellenőrizni, hogy a blokk száma, a nehézség, a tranzakció gyökér, a nagybácsi gyökér és a gas korlát (különféle alacsony szintű Ethereum-specifikus fogalmak) érvényesek-e. -4. Ellenőrizni, hogy a blokk proof-of-work-je érvényes-e. -5. Legyen `S[0]` az előző blokk után lévő állapot. -6. Legyen `TX` a blokk tranzakciós listája `n` tranzakcióval. Minden `i`-t a `0...n-1`, -ban beállítani `S[i+1] = APPLY(S[i],TX[i])`. Ha valamelyik alkalmazás hibát ad vissza, vagy a blokkban az eddig a pontig fogyasztott gáz összmennyisége túllépi a `GASLIMIT` értéket, hibát ad vissza. -7. Legyen az `S_FINAL` `S[n]`, de hozzáadva a bányásznak fizetett blokkjutalmat. -8. Ellenőrizd, hogy az `S_FINAL` állapot Merkle-fája azonos-e a blokk fejlécben megadott végleges állapottal. Ha igen, a blokk érvényes; ellenkező esetben nem az. - -A megközelítés első pillantásra nagyon hatékonytalannak tűnhet, mert minden blokkal a teljes állapotot kell tárolni, de a valóságban a hatékonyság a Bitcoinéhoz hasonló. Ennek az oka, hogy az állapot a fa struktúrájában tárolódik, és minden blokk után a fa csak egy kis részét kell megváltoztatni. Így általában két szomszédos blokk között a fa túlnyomó részének azonosnak kell lennie, ezért az adatokat egyszer kell tárolni és kétszer lehet rájuk hivatkozni mutatók (azaz részfák hash-jeinek) használatával. Ennek megvalósításához egy speciális "Patricia-fának" nevezett fát használnak, beleértve a Merkle-fa koncepciójának módosítását, amely lehetővé teszi a csomópontok hatékony beillesztését és törlését, nem csak megváltoztatását. Ezen túlmenően, mivel az összes állapotinformáció része az utolsó blokknak, nincs szükség a teljes blokklánc előzmények tárolására - egy stratégia, amely, ha alkalmazható lenne a Bitcoin-ra, 5-20-szoros megtakarítást eredményezne a térben. - -Gyakran feltett kérdés, hogy "hol" történik a szerződés kódjának végrehajtása, a fizikai hardver szempontjából. Erre egyszerű a válasz: a szerződés kódjának végrehajtási folyamata az állapotátmeneti függvény definíciójának része, amely a blokk érvényesítési algoritmus része, tehát ha egy tranzakciót hozzáadunk a `B` blokkhoz, akkor a tranzakció által létrehozott kód végrehajtását minden csomópont végrehajtja, most és a jövőben is, amelyek letöltik és érvényesítik a `B` blokkot. - -## Alkalmazások {#applications} - -Az Ethereumon általánosságban háromféle alkalmazás létezik. Az első kategória a pénzügyi alkalmazások, amelyek hatékonyabb módszereket kínálnak a felhasználóknak a pénzük kezelésére és szerződéskötésre. Ebbe beletartoznak a devizák, a derivatív pénzügyi eszközök, a fedezeti ügyletek, a takarék pénztárcák, végrendeletek, és végül akár teljes körű munkaszerződések egyes kategóriái. A második kategória a félig pénzügyi alkalmazások, amik kapcsolatosak a pénzzel, de a tevékenységeiknek van egy súlyos, nem pénzügyi oldala is; erre tökéletes példa az önérvényesítő jutalmak, a számítási problémák megoldásért. Végül vannak olyan alkalmazások, mint az online szavazás és a decentralizált irányítás, amelyek egyáltalán nem pénzügyi vonatkozásúak. - -### Token rendszerek {#token-systems} - -A blokkláncon való token vagyis zseton rendszereknek számos alkalmazása van, kezdve az olyan alvalutáktól, amik olyan eszközöket képviselnek, mint az USA Dollár vagy az arany, egészen a vállalati részvények, az okos tulajdont képviselő egyedi zsetonok, a biztonságos, hamisíthatatlan kuponok, és még olyan zseton rendszerekig is, amik semmilyen kapcsolatban nem állnak a hagyományos értékhez, csak a jutalmazás pontrendszereiként használják őket. A zseton rendszereket meglepően egyszerű módon létre lehet hozni az Ethereumon. Kulcsfontosságú megérteni azt, hogy a pénznem vagy a zseton rendszer alapvetően egy egy műveletből álló adatbázis: vonjon le X egységet A-ból, és adjon X egységet B-nek, azzal a feltétellel, hogy (1) A-nak a tranzakció előtt legalább X egysége volt és (2) a tranzakciót A jóváhagyta. A zseton rendszer megvalósításához mindössze annyi kell, hogy ezt a logikát beépítsék egy szerződésbe. - -Az alapkód a zsetonrendszer megvalósítására Serpent programnyelven a következőképpen néz ki: - - def send(to, value): - if self.storage[msg.sender] >= value: - self.storage[msg.sender] = self.storage[msg.sender] - value - self.storage[to] = self.storage[to] + value - -Ez lényegében a "bankrendszer" állapotátmeneti függvényének szó szerinti megvalósítását jelenti, amely ebben a dokumentumban fentebb már le lett írva. Néhány extra kódsort hozzá kell adni, hogy biztosítsuk a pénzegységek elosztásának kezdeti lépését, néhány másik szélsőséges esetben is, és ideális esetben egy függvényt is hozzáadunk, ami lehetővé teszi másik szerződéseknek, hogy lekérdezzék egy cím számlaegyenlegét. De ennyi az egész. Elméletileg a pénznemként működő Ethereum-alapú zsetonrendszerek tartalmazhatnak egy másik fontos jellemzőt, ami a Bitcoin-alapú blokkláncon található pénzeszközöknél hiányzik: a tranzakciós díjak közvetlen fizetése ugyanabban a pénznemben. Ez úgy lehetne megvalósítható, hogy a szerződés fenntartana egy Ether egyenleget, amelyből visszatérítené a feladónak a díjakra használt Ethert, és ezt az egyenleget úgy töltené fel, hogy összegyűjti a díjakra beszedett belső valutaegységeket, és egy folyamatosan futó aukción továbbértékesíti azokat. A felhasználóknak tehát Etherrel kellene "aktiválniuk" a számláikat, de onnantól, hogy az Ether ott van, újrafelhasználható, mert a szerződés minden alkalommal visszatérítené. - -### Pénzügyi derivatívák és stabil értékű valuták {#financial-derivatives-and-stable-value-currencies} - -A pénzügyi derivatívák az "intelligens szerződés" leggyakoribb alkalmazásai, és az egyik legegyszerűbben megvalósítható kóddal. A pénzügyi szerződések végrehajtása során az a fő kihívás, hogy többségük külső árfolyamra való hivatkozást igényel; például nagyon kívánatos alkalmazás egy olyan okos szerződés, amely fedezetet ad az Ether (vagy más kriptovaluta) árfolyamingadozására az amerikai dollárral szemben, de ehhez a szerződésnek tudnia kell az ETH / USD értékét. Ennek legegyszerűbb módja egy adott fél (pl. NASDAQ) által fenntartott "adatcsatorna" szerződés, amelynek célja, hogy az adott fél képes legyen a szerződés szükség szerinti frissítésére, és egy olyan felület biztosítása, amely lehetővé teszi más szerződések számára, hogy üzenetet küldjenek a szerződésnek, és választ kapjanak, ami tratalmazza az árat. - -Tekintettel erre a kritikus összetevőre, a fedezeti szerződés a következőképpen nézne ki: - -1. Megvárni, amíg az A fél berak 1000 Ethert. -2. Megvárni, amíg a B fél berak 1000 Ethert. -3. Az adatcsatorna szerződés lekérdezésén keresztül kiszámított 1000 Ether USD értékének rögzítése a tárolóhelyen, mondjuk, hogy ez $x. -4. 30 nap elteltével hagyni, hogy A vagy B "újraaktiválja" a szerződést úgy, hogy $x értékű Ethert küld (amelyet úgy számol ki, hogy újból lekérdezi az adatcsatorna szerződést az új árról) A-nak, a többit pedig B-nek. - -Egy ilyen szerződés jelentős potenciállal bírna a kriptokereskedelemben. Az egyik fő probléma, amire gyakran hivatkoznak a kriptovalutával kapcsolatban, hogy ingatag az árfolyama; bár sok felhasználó és kereskedő vágyik a kriptográfiai eszközök biztonságára és kényelmére, nem biztos, hogy szembe akar nézni azzal a lehetőséggel, hogy egyetlen nap alatt elveszítheti pénzeszközei értékének 23% -át. Eddig a leggyakrabban a kibocsátó által biztosított eszközöket javasolták; annak az elképzelésnek az alapján, hogy a kibocsátó létrehoz egy pénzeszközt, ahol joga van kibocsátani és visszavonni egységeket, és mindenkinek egy egységnyi pénzeszközt ad, aki (offline) cserébe ad neki egy meghatározott, egy egységnyi alapul szolgáló eszközt (pl. arany, USA Dollár). A kibocsátó ezután megígéri, hogy az alapul szolgáló eszköz egy egységét adja annak, aki visszaküldi a kripto eszköz egy egységét. Ez a mechanizmus lehetővé teszi minden nem kriptográfiai eszköz kriptográfiai eszközzé történő emelését, feltéve, hogy a kibocsátó megbízható. - -A gyakorlatban azonban a kibocsátók nem mindig megbízhatóak, és egyes esetekben a banki infrastruktúra túl gyenge vagy túl ellenséges ahhoz, hogy ilyen szolgáltatások létezzenek. A pénzügyi derivatívák alternatívát kínálnak. Itt ahelyett, hogy egyetlen kibocsátó biztosítaná az eszközök fedezetére szolgáló alaptőkét, a spekulánsok decentralizált piacon való fogadásai arról, hogy egy kriptográfiai referencia eszköz (pl. ETH) ára emelkedni fog-e játsszák azt a szerepet. A kibocsátóktól eltérően a spekulánsoknak nincs lehetőségük az ügylettel kapcsolatos kötelezettségük elmulasztására, mert a fedezeti szerződés letétben tartja pénzeszközeiket. Fontos megjegyezni, hogy ez a megközelítés nincs teljesen decentralizálva, mert még mindig megbízható forrásra van szükség az árjegyző szerepének betöltésére, bár már ez is vitathatatlanul hatalmas előrelépés az infrastruktúra-követelmények csökkentése szempontjából (ellentétben a kibocsátóval, az árfolyam-kiadáshoz nem szükséges licenc és valószínűleg a szólásszabadság kategóriájába sorolhatók), és a csalás lehetőségét is csökkenti. - -### Identitás és Hírnév Rendszerek {#identity-and-reputation-systems} - -A legkorábbi alternatív kriptovaluta, a, [Namecoin](http://namecoin.org/), egy Bitcoinhoz hasonló blokkláncot próbált meg használni egy névregisztrációs rendszer biztosításához, ahol a felhasználók a nevüket egy nyilvános adatbázisba regisztrálhatták több más adat mellett. A leggyakrabban idézett alkalmazási eset [DNS](https://wikipedia.org/wiki/Domain_Name_System) rendszerre, a domain nevek, például "bitcoin.org" (vagy a Namecoin esetében "bitcoin.bit") leképezése egy IP címre. Egyéb alkalmazási esetek például az e-mail autentikációk és a potenciálisan haladóbb reputációs rendszerek. Nézzünk egy alap szerződést, amely Namecoin-féle név regisztrációt biztosít az Ethereumon: - - def register(name, value): - if !self.storage[name]: - self.storage[name] = value - -A szerződés nagyon egyszerű; gyakorlatilag egy adatbázis az Ethereum hálózatban, amelyhez hozzá lehet adni, de nem lehet módosítani vagy törölni belőle. Bárki regisztrálhat nevet valamilyen értékkel, majd a regisztráció örökre megmarad. Egy kifonomultabb névregisztrációs szerződésben szerepelne egy "függvény kaluzula", amely engedné a többi szerződésnek a lekérdezést, valamint a név "tulajdonosának" (azaz az első regisztrálónak) egy mechanizmust, az adat módosítására vagy a tulajdonjog átadására. Bárki hozzáadhat reputációt és web-of-trust funkcionalitást a legfelső réteghez. - -### Decentralized fájltárhely {#decentralized-file-storage} - -Az elmúlt években számos népszerű online fájltárhely startup tűnt fel, amelyek közül az egyik legkiemelkedőbb a Dropbox, akik lehetővé teszik ügyfeleiknek, hogy a merevlemezük biztonsági mentését feltöltsék, majd a szolgáltatással tároltassák azt, majd a fehasználó havidíj ellenében férhet hozzá az adataihoz. Azonban ezen a ponton a fájltárhely piac relatív nem hatékony; ha megvizsgáljuk a különböző [meglévő megoldásokat](http://online-storage-service-review.toptenreviews.com/), láthatjuk, hogy különösen a "borzongások völgye", azaz a 20-200 GB szinten, ahol sem az ingyenes kvóták, sem a vállalati szintű kedvezmények nem jelennek meg, a mainstream fájltárolási költségek havi árszintje ott tart, hogy egy hónapért többet fizet az átlag felhasználó, mint egy teljes merevlemezért. Az Ethereum szerződések lehetővé teszik egy decentralizált fájl tárolási ökoszisztéma fejlesztését, ahol az egyes felhasználók kis mennyiségű pénzt kereshetnek azzal, hogy bérbeadják saját merevlemezüket és a használaton kívüli tárhelyüket, ezzel is lefelé hajtva a tárolás költségeit. - -Az ilyen eszközök kulcsfontosságú megerősítő eleme az általunk "decentralizált Dropbox szerződésnek" elnevezett megoldás. A szerződés a következő módon működik. Először a kívánt adatokat blokkokra bontjuk, adatvédelmi okokból ezeket titkosítjuk, majd egy Merkle-fát építünk belőle. Ezután létrehozunk egy szerződést azzal a szabállyal, hogy minden N blokkban a szerződés egy véletlen indexet választ ki a Merkle-fában (az előző blokk-hash segítségével a szerződés kódjából, véletlenszerűen), majd X ethert adunk az első entitásnak, hogy egy egyszerűsített fizetés hitelesítéssel lássa el a tranzakciót, például a blokk tulajdonjogát bizonyító elemmel az adott indexen a fában. Amikor egy felhasználó újra le szeretné tölteni a fájlt, egy mikrofizetési csatorna protokollt használhat (például 1 szabo 32 kilobyte adatért) a fájl lekérésére; a leginkább költséghatékony megközelítés az, amikor a fizető félnek csak a legvégén kell publikálnia a tranzakciót, ahelyett, hogy a tranzakciót egy kissé jövedelmezőbbre cserélné le ugyanazzal a nounce-al 32 kilobytonként. - -A protokoll egyik fontos jellemzője, hogy bár úgy tűnik, hogy valaki több véletlen csomópontot bíz meg azzal, hogy ne felejtse el a fájlt, a saját kockázatát a nullához közelire csökkentheti azzal, hogy a fájlt több részre bontja titkos megosztással, majd figyeli a szerződést, hogy lássa az egyes darabok továbbra is valamelyik csomópont birtokában vannak. Ha egy szerződés továbbra is fizet, akkor kriptográfiai bizonyíték van arra, hogy valaki továbbra is tárolja a fájlt. - -### Decentralizált Autonóm Szervezetek {#decentralized-autonomous-organizations} - -A "decentralizált autonóm szervezetek" általános koncepciója, hogy egy virtuális entitásnak, amely adott számú taggal vagy "részvényessel" rendelkezik, akár esetleg 67%-os többséggel, felhatalmazása lehet arra, hogy elköltse az entitás pénzeszközeit és módosítsa a kódját. A tagok együttesen dönthetik el, hogy a szervezet hogyan allokálja a pénzeszközöket. Egy DAO pénzeszközeinek allokálásának módszerei a pénzadománytól, fizetéseken át akár még egzotikusabb mechanizmusokig terjedhet, mint például egy belső valuta a munka elismerésére. Ez gyakorlatilag replikálja a hagyományos vállalatok vagy non-profit entitások jogi csapdáit, de a végrehajtásra kizárólag kriptográfiai blokklánc technológiát használ. Eddig a DAO-kkal kapcsolatban leginkább a kapitalista "decentralizált autonóm vállalat" (DAC) modelljéről beszéltünk, ahol a részvényesek osztalékot vagy kereskedhető részvényeket kapnak; azonban van egy alternatív, talán a "decentralizált autonóm közösség" fogalommal leírható értelmezés is, ahol a tagok egyenlő mértékben vesznek részt a döntéshozatalban, és a tagok 67%-ának beleegyezése szükséges ahhoz, hogy felvegyenek egy új tagot, vagy eltávolítsanak egy tagot. Azt a követelményt, hogy egy személy csak egy tagsággal rendelkezhet a csoportnak kollektíven kell érvényre juttatnia. - -A DAO-k kódolásának általános leírása a következő. A legegyszerűbb megoldás egy önmagát módosító kódelem alkalmazása, amely változik, ha a tagok kétharmada egyetért egy módosítással. Bár a kód elméletileg állandó, bárki megkerülheti, és de-facto megváltoztathatja, ha a kód darabjait külön szerződésekbe foglalja, majd a módosítható tárhelyen menti el azt a címet, amit a szerződéseknek meg kell hívni. Egy ilyen DAO szerződés egyszerű implementációjában három tranzakció típus lenne, amelyeket a tranzakcióban megadott adatok különböztetnek meg: - -- `[0,i,K,V]` ahol a javaslatot az `i` indexxel regisztrálják, hogy módosítsa a címet a `K` tárolási indexen `V` értékre -- `[1,i]` amely egy szavazatot regisztrál az `i` javaslat előnyben részesítésére -- `[2,i]` az `i` javaslat véglegesítésére, ha elég szavazat érkezett be - -A szerződésben ezután mindegyikre szerepel egy klauzula. Ezután rögzíti az összes nyitott tárolási módosítást, és azt a listát is, hogy ki szavazott rájuk. Tartalmazza a tagok listáját is. Amikor valamelyik tárolási módosításra a tagok kétharmada szavazott, a véglegesítési tranzakció hajtja végre a módosítást. Egy kifinomultabb vázban lehet beépített szavazási lehetőség is olyan funkciókra, mint például tranzakció küldése, tagok hozzáadása vagy eltávolítása, valamint lehetővé kell tenni egy [Liquid Democracy](https://wikipedia.org/wiki/Delegative_democracy)-stílusú szavazási delegálást is (azaz egyvalaki kijelölheti, hogy ki szavazzon helyette, majd a kijelölés átadható, tehát, ha A B-t bízza meg a szavazással, majd B C-t bízza meg, C határozza meg A szavazatát). A tervezés lehetővé teszi, hogy a DAO organikusan nőjjön decentralizált közösségként, és a tagok végül delegálhassák azt a feladatot egy specialistának, hogy kiszűrjék a tagokat, szemben a specialisták "jelenlegi rendszerével" akik a közösség egyes tagjait érintő változások függvényében könnyen ki- vagy beugorhatnak. - -Alternatív mód a decentralizált vállalat modell, amikor valamelyik számlán nulla vagy több részvény van, és a döntéshozatalhoz a részvények kétharmadára van szükség. Egy teljes vázban ideális esetben van egy eszközkezelő funkció, lehetőség részvények vásárlására vagy eladására szóló ajánlattételre, valamint lehetőség az ajánlatok elfogadására (lehetőség szerint a szerződésen belül egy ajánlat-egyeztető mechanizmussal). A delegálás szintén Liquid Democracy-stílusban létezik, általánosítva az "igazgatótanács" koncepciót. - -### További alkalmazások {#further-applications} - -**1. Tárcák mentése**. Tegyük fel, hogy Alice biztonságban szeretné tudni pénzeszközeit, azonban aggódik amiatt, hogy veszteség éri, vagy valaki feltöri a privát-kulcsát. Ethert helyez el egy szerződésben Bobbal, egy bankkal a következőképpen: - -- Alice egyedül naponta legfeljebb a pénzeszközök 1%-át tudja felvenni. -- Bob egyedül naponta a pénzeszközök legfeljebb 1%-át tudja felvenni, de Alicenak lehetősége van arra, hogy tranzakciót végezzen a kulcsával és zárolja ezt a lehetőséget. -- Alice és Bob együtt bármennyit fel tud venni. - -Alicenek általában elég naponta 1%, azonban, ha Alice-nak többre van szüksége, értesítheti Bobot, és segítséget kérhet. Ha Alicet támadás éri, Bobhoz siethet, és a pénzeszközöket egy új szerződésbe tudja átmozgatni. Ha elveszíti a kulcsát, Bob tudja végül kivenni az eszközöket. Ha Bob rosszindulatúan kezd viselkedni, Alice ki tudja kapcsolni, hogy Bob pénzt vehessen fel. - -**2. Termény-biztosítás**. Bárki készíthet könnyedén származtatott szerződést, ha az ár indexek helyett az időjárási adatokról érkező adat-feedet használja. Ha egy iowai farmer olyan származtatott ügyletet vásárol, ami fordítottan fizet az Iowában esett csapadék alapján, majd, ha szárazság van, a farmer automatikusan pénzhez jut, ha pedig elég eső esik, a farmer szintén jól jár, mert jó termése lesz. Ez általánosságban kiterjeszthető természeti csapásra vonatkozó biztosítással. - -**3. Egy decentralizált adat-feed**. A pénzügyi CFD-k (nyitó és záróérték közti különbség lekereskedése) esetében gyakorlatilag lehetőség van decentralizálni az adat-feed-et a következő protokollal [SchellingCoin](http://blog.ethereum.org/2014/03/28/schellingcoin-a-minimal-trust-universal-data-feed/). A SchellingCoin gyakorlatilag a következőképpen működik: N fél beteszi a rendszerbe egy adott bázis értékét (pl. ETH/USD árfolyam), az értékeket rendezik, és mindenki, aki 25% - 75% között van egy tokent kap jutalmul. Ez a rendszer mindenkit arra ösztönöz, hogy olyan választ adjon, mint a többiek, és az egyetlen érték, amiben a játékosok nagy száma realisztikusan egyet tud érteni a nyilvánvaló alap: azaz az igazság. Ez egy decentralizált protokollt hoz létre, amely elméletileg bármilyen számú értéket adhat, ideértve az ETH/USD árát, vagy a berlini hőmérsékletet vagy egy nehéz számítási feladat eredményét. - -**4. Okos, több aláírásos escrow**. A Bitcoin többaláírásos tranzakciós szerződéseket is enged, ahol például adott öt kulcsból három tudja elkölteni a pénzeszközöket. Az Ethereum ennél részletesebb lehetőségeket is kínál; például ötből négy mindent el tud költeni, ötből három naponta 10%-ot, ötből kettő pedig csak napi 0,5%-t. Továbbá az Ethereum több aláírásos megoldás aszinkron - két fél különböző időben tudja regisztrálni az aláírását a blokkláncon, az utolsó aláírás küldi el automatikusan a tranzakciót. - -**5. Felhőben történő számítás**. Az EVM technológia szintén használható hitelesíthető számítási környezet létrehozására, ahol a felhasználók megkérhetnek másokat számítások végzésére, majd opcionálisan kérhetnek bizonyítékot arra, hogy a számítások adott, véletlenszerűen kiválasztott ellenőrzési pontokon pontosan lettek elvégezve. Így létre lehet hozni egy felhő alapú számítási piacot, amelyen bármelyik felhasználó részt vehet az asztali gépével, laptopjával, vagy speciális szerverével, és együtt ellenőrizhetik szúrópróbaszerűen, hogy mely biztonsági letétek használhatók annak biztosítására, hogy a rendszer megbízható (azaz a csomópontok nem tudnak nyereségesen csalni). Bár egy ilyen rendszer nem feltétlenül felel meg minden feladatra; például nehézkes olyan feladatokat elvégezni nagyméretű felhőalapú csomópontokon, amelyek magasszintű, folyamat közbeni kommunikációt igényelnek. Más feladatokat azonban sokkal könnyebb párhuzamosan végezni; például a SETI@home, folding@home és általános algoritmusokat könnyebben meg lehet valósítani ilyen platformokon. - -**6. Peer-to-peer szerencsejáték**. Tetszőleges számú peer-to-peer szerencsejáték protokollt, például Frank Stajano és Richard Clayton [Cyberdice](http://www.cl.cam.ac.uk/~fms27/papers/2008-StajanoCla-cyberdice.pdf) protokollját, lehet megvalósítani Ethereum blokkláncon. A legegyszerűbb szerencsejáték protokoll egyszerűen egy CFD a következő blokk-hashre, ennél bonyolultabb protokollokat is lehet építeni, például szerencsejáték szolgáltatásokat nullához közeli díjakkal, ahol ki lehet zárni a csalás lehetőségét. - -**7. Kimenetelre fogadó piacok**. Az Oracle vagy SchellingCoin környezetben futó kimenetelre fogadó piacokat könnyen meg lehet valósítani; ezek a piacok a SchellingCoin-nal együtt az első [futarchy](http://hanson.gmu.edu/futarchy.html) mainstream alkalmazássá nőhetik ki magukat a decentralizált szervezetek irányítási protokolljaként. - -**8. On-chain decentralizált piacterek**, amelyek az azonosítás és elismerés rendszert használják alapként. - -## Egyebek és aggályok {#miscellanea-and-concerns} - -### Módosított GHOST implementáció {#modified-ghost-implementation} - -A "Greedy Heaviest Observed Subtree" (GHOST) innovatív protokollt Yonatan Sompolinsky és Aviv Zohar vezette be [2013 decemberében](https://eprint.iacr.org/2013/881.pdf). A GHOST mögötti motiváció az volt, hogy azokon a blokkláncokon, ahol a megerősítési idő gyors, a magas elavulási aránynak köszönhetően csökken a biztonság - mivel a blokknak bizonyos időre van szüksége a hálózaton való terjedéshez, ha A bányász kibányász egy blokkot, majd B bányász még azelőtt kibányász egy blokkot, hogy A bányász blokkja eljutna B bányászhoz, ez utóbbi blokkja feleslegessé válik, és nem járul hozzá a hálózat biztonságához. Továbbá van egy centralizációs probléma is: ha A bányász egy 30% hash-erejű bányász-pool, és B bányásznak 10% hash-ereje van, A bányásznak megvan az a kockázata, hogy az esetek 70%-ában elavult blokkot hozzon létre (mivel a fennmaradó 30% esetben A bányász hozta létre az utolsó blokkot, így azonnal bányászati adathoz jut), míg B bányász kockázata, hogy az esetek 90%-ában fog létrehozni elavult blokkot. Ezért ha a blokk intervallum elég rövid ahhoz, hogy a lejárati arány magas legyen, A jelentősen hatékonyabb lesz pusztán a mérete miatt. A két hatás kombinálásával az a blokklánc, amely gyorsan gyárt blokkokat valószínűleg vezetni fog egy bányász poolt, és elég nagy százalékot fog elfoglalni a hálózat hash-teljesítményéből, hogy de facto átvegye az irányítást a bányászási folyamat fölött. - -Ahogy Sompolinsky és Zohar is leírta, a GHOST megoldja a hálózat biztonságának elvesztését érintő első problémát azzal, hogy lejárt blokkokat is belevesz annak kiszámításába, hogy melyik lánc a "leghosszabb"; azaz nem csak a blokk szülőit és elődeit veszi figyelembe, hanem a blokk elődeinek nem élő leszármazottait is (Ethereum kifejezéssel élve "nagybácsikat") hozzáadja ahhoz a számításhoz, hogy melyik blokkon van a legtöbb proof-of-work. A centralizációval kapcsolatos második probléma megoldására túlhaladunk a Sompolinsky és Zohar által ismertetett protokollon, és blokk jutalmakat adunk az elavult blokkokra is: egy elavult blokk az alapjutalom 87,5%-át éri, míg az elavult blokkot tartalmazó unokaöccs megkapja a fennmaradó 12,5%-ot. A tranzakciós díjakat azonban nem kapják meg a nagybácsik. - -Az Ethereum a GHOST egy egyszerűsített verzióját implementálja, amely hét szintre megy le. A részletes meghatározást lásd itt: - -- Egy blokknak meg kell határoznia egy szülőt, és 0 vagy több nagybácsit -- Egy `B` blokkban lévő nagybácsinak a következő tulajdonságokkal kell rendelkeznie: -- Közvetlen leszármazottnak kell lennie a `k`-adik generációs `B` ősnek, ahol `2 <= k <= 7`. -- Nem lehet a `B` őse -- Egy nagybácsinak érvényes blokk fejlécnek kell lennie, de nem kell korábban hitelesített vagy érvényes blokknak lennie -- A nagybácsinak különböznie kell a korábbi blokkokban szereplő nagybácsiktól, illetve az ugyanabban a blokkban lévő más nagybácsiktól (nincs-dupla-szerepeltetés) -- Minden`U` nagybácsihoz a `B` blokkban, a `B` bányász további 3,125%-ot kap a coinbase jutalmához, és az U bánász 93,75% standard coinbase jutalomban részesül. - -A GHOST limitált verzióját, ahol legfeljebb 7 generációig szerepelhet nagybácsi, két ok miatt használtuk. Először is a korlátlan GHOST túl sok komplikációval járna annak kiszámításában, hogy egy adott blokkban mely nagybácsik érvényesek. Másodsorban a korlátlan GHOST, ahogy az Ethereumban használják, nem ösztönzi a bányászt, hogy a fő láncon bányásszon a nyilvános támadó által használt lánc helyett. - -### Díjak {#fees} - -Mivel minden blokkláncban közzétett tranzakció költséget ró a hálózatra a letöltés és a hitelesítés miatt, szükség van valamilyen szabályozó mechanizmusra, általában tranzakciós díjak beiktatását, hogy meg lehessen akadályozni a rosszindulatú viselkedést. A Bitcoinban is alkalmazott alapértelmezett megközelítés szerint tisztán önkéntes díjakra van szükség, ami a bányászokra támaszkodik abban, hogy őrizzék a biztonságot és dinamikus minimumokat állítsanak be. Ezt a megközelítést nagyon kedvezően fogadták a Bitcoin közösségben, különösen azért, mert "piaci-alapú", meghagyja a keresletet és a kínálatot a bányászok és a tranzakciók küldői között, és így meghatározza az árat. A probléma ezzel az érveléssel az, hogy a tranzakciók feldolgozása nem piac; bár intuitívan vonzó a tranzakció feldolgozását olyan szolgáltatásként értelmezni, amelyet a bányász kínál küldőnek, a valóságban minden olyan tranzakció, amelyhez bányász kell a hálózat minden csomópontján fel kell dolgozni, így a tranzakció feldolgozási költségének jelentős részét külső felek fizetik, és nem a bányász hozza meg azt a döntést, hogy foglalkozik-e vele vagy sem. Így nagyon valószínű a "közlegelő tragédiája" típusú problémák előfordulása. - -Azonban úgy tűnik, hogy a piaci alapú mechanizmus ezen hibája, amikor pontatlan egyszerűsítő feltételezéssel élnek, mágikusan megszünteti saját magát. Az érvelés a következő. Tegyük fel, hogy: - -1. Egy tranzakció `k` művelethez vezet, `kR` jutalmat kínál minden olyan bányásznak, aki szerepel benne, ahol az `R` értéket a küldő állítja be, és az `k` és `R` (durván) már előre látható a bányász oldalán. -2. Egy művelet feldolgozásához szükséges költség `C` bármely csomóponton (azaz az összes csomópont hatékonysága azonos) -3. `N` bányász csomópont van, mindegyik pontosan ugyanannyi feldolgozási teljesítménnyel (azaz `1/N` az összesből) -4. Nincs nem-bányászó teljes csomópont. - -Egy bányász akkor hajlandó feldolgozni a tranzakciót, ha a várható jutalom nagyobb, mint a költség. Így a várható jutalom `kR/N` mivel a bányásznak `1/N` esélye van feldolgozni a következő blokkot, és a bányász feldolgozási költsége `kC`. Következésképpen a bányászok olyan tranzakciókban fognak részt venni, ahol `kR/N > kC`, vagy `R > NC`. Ne feledjük, hogy `R` a küldő által műveletenként biztosított díj, amely alulról korlátozza azt az előnyt, amit a küldő a tranzakcióból nyer, és az `NC` pedig a műveletet feldolgozó teljes hálózat költsége. Következésképpen a bányászok csak olyan tranzakcióban érdekeltek, amelyen a teljes haszonelvű előny nagyobb, mint a költség. - -Azonban a valóságban számos fontos eltérés mutatkozik a feltételezésektől: - -1. A bányász nagyobb költséget fizet a tranzakció feldolgozásáért mint a többi, hitelesítést végző csomópont, mivel az extra hitelesítéshez szükséges idő késlelteti a blokk terjedését, és növeli annak az esélyét, hogy a blokk elavulttá válik. -2. Így létezik nem-bányászó teljes csomópont. -3. A bányászati teljesítmény eloszlás a gyakorlatban radikálisan egyenlőtlenné válhat. -4. A spekulánsok, politikai ellenségek és őrültek, akiknek a használati függvényei a hálózatra nézve káros elemeket tartalmaznak okosan olyan szerződéseket készíthetnek, amelyekben a költségeik sokkal alacsonyabbak, mint a többi hitelesítő csomópont által fizetett költségek. - -(1) olyan tendenciát biztosít a bányásznak, hogy kevesebb tranzakcióba vonódjon bele, és (2) növeli az `NC` értékét; következésképpen ez a két hatás legalább részben kiírtja egymást.[Hogyan?](https://github.com/ethereum/wiki/issues/447#issuecomment-316972260) (3) és (4) a fő probléma; megoldásukra egy egyszerű lebegő sapkát alkalmazunk: egyetlen blokkon sem lehet több művelet mint a hosszú távú exponenciális mozgóátlag `BLK_LIMIT_FACTOR` -szorosa. Különösképpen: - - blk.oplimit = floor((blk.parent.oplimit \* (EMAFACTOR - 1) + - floor(parent.opcount \* BLK\_LIMIT\_FACTOR)) / EMA\_FACTOR) - -A `BLK_LIMIT_FACTOR` és `EMA_FACTOR` állandó, beállításuk jelenleg 65536 és 1,5, amely további elemzés után változhat. - -Van még egy faktor, ami megszünteti a nagy blokkméretek iránti elköteleződést a Bitcoinban: a nagy blokkok terjedési ideje hosszabb, és így nagyobb eséllyel válnak elavulttá. Az Ethereumban a sok gázt fogyasztó blokkoknak is több időre van szüksége a terjedéshez, mivel egyrészt fizikailag hosszabbak, másrészt több időbe telik az állapot átmenet tranzakciók feldolgozásának validálása. Ez a késleltetési negatív ösztönző jelentős a Bitcoin esetében, de kevésbé az az Ethereum világában a GHOST protokoll miatt; következésképpen a szabályozott blokk limitekre való támaszkodás stabilabb alapkonfigurációt tesz lehetővé. - -### Számítási és Turing-teljesség {#computation-and-turing-completeness} - -Fontos megjegyezni, hogy az Ethereum virtuális gép Turing-teljes; azaz az EVM kód minden olyan számítást képes titkosítani, amelyet rejtve lehet elvégezni, ideértve a végtelen hurkokat is. Az EVm kód a hurkokat kétféleképpen teszi lehetővé. Egyfelől a `JUMP` utasítás lehetővé teszi a programnak, hogy visszaugorjon egy korábbi pontra a kódban, míg a `JUMPI` utasítás feltételhez kötött ugrást hajt végre, lehetővé téve a `while x < 27: x = x * 2` típusú állításokat. Másodsorban a szerződések más szerződéseket is meghívhatnak, ami potenciálisan lehetővé teszi a rekurzión keresztül történő hurkok alkalmazását. Ez természetesen egy problémát eredményez: a kártékony felhasználók lényegében le tudják állítani a bányászokat és a teljes csomópontokat azzal, hogy végtelen hurokba lépésre kényszerítik őket? A probléma a számítástechnikában megakadás problémaként ismert jelenség miatt jelentkezik: általánosságban nem lehet megmondani, hogy egy adott program mikor akad meg. - -Mint azt az állapot átmenet részben is leírtuk, a megoldásunk úgy működik, hogy egy tranzakcióban be kell állítani a maximálisan engedélyezett számítási lépések számát, és ha a futtatás tovább tart, a számítást visszatérítik, azonban díjat is kell fizetni. Az üzenetek hasonlóképpen működnek. A megoldás mögött húzódó motiváció bemutatására nézzük az alábbi példákat: - -- Egy támadó létrehoz egy szerződést, amely végtelen hurkot futtat, majd egy tranzakciót küld a bányásznak, amely aktiválja a hurkot. A bányász feldolgozza a tranzakciót, futtatja a végtelen hurkot, majd megvárja, amíg elfogy a gáz. Bár a futtatás kifogy a gázból és félúton megáll, a tranzakció továbbra is érvényes, és a bányász bekéri a díjat a támadótól minden számítási lépésért. -- Egy támadó egy nagyon hosszú végtelen hurkot hoz létre azzal a szándékkal, hogy a bányász olyan sokáig végezze a számítást, hogy a számítás végére pár új blokk is kikerüljön, és így lehetetlenné váljon a bányásznak a tranzakció belefoglalása, hogy díjat számíthasson fel. Azonban a támadónak be kell küldenie egy `STARTGAS` értéket, amely korlátozza a futtatásban használható számítások számát, így a bányász már előre tudni fogja, hogy a számítás jelentősen több lépésből fog állni. -- Egy támadó valami ilyesmit kódot lát a szerződésben `send(A,contract.storage[A]); contract.storage[A] = 0`, és pont annyi gázzal küldi el a tranzakciót, hogy futtatni lehessen az első lépést, de a másodikat már ne (azaz meglegyen a levétel, de az egyenleg ne csökkenjen le). A szerződés létrehozójának nem kell azon aggódnia, hogy védekezzen az ilyen támadások ellen, mivel, ha a futtatás félúton megáll, azok vissza lesznek térítve. -- Egy pénzügyi szerződés úgy működik, hogy kilenc tulajdonost illető adat -feed középértékét veszi a kockáztok minimalizálása érdekében. Amikor egy támadó átvesz egy adat-feed-et, amelyet úgy tervetek, hogy módosítható legyen a DAO részben ismertetett változó-cím-meghívás mechanizmuson keresztül, és átkonvertálja úgy, hogy végtelen hurokban fusson, és így megpróbál kikényszeríteni olyan próbálkozásokat amelyek pénzeszközöket kérnek a pénzügyi szerződéstől amíg ki nem fogy a gáz. Azonban a pénzügyi szerződésekben be lehet állítani gázkorlátot az üzeneten, és így meg lehet előzni a problémát. - -A Turing-teljesség alternatívája a Turing-nem-teljesség, ahol a `JUMP` és `JUMPI` nem létezik, és egyszerre csak egy szerződéspéldány létezhet a hívás-stackben. Ezzel a rendszerrel a korábban ismertetett díjrendszer és a megoldásunk hatékonyságával kapcsolatos bizonytalanságok nem feltétlenül szükségesek, mivel a szerződés futtatásának költségét annak mérete korlátozza be. Továbbá a Turing-nem-teljesség nem túl nagy limitáció; az általunk kitalált összes szerződés példa közül csupán egyhez volt szükség hurokra, és még ez az egy hurok is eltávolítható egy egysoros kódrészlet 26 ismétlésével. A Turing-teljesség súlyos implikációi, valamint a korlátozott haszon alapján, miért nincs egyszerűen egy Turing-nem-teljesség nyelv? A valóságban azonban a Turing-nem-teljesség messze van a probléma elegáns megoldásától. Hogy megértsük miért, nézzük meg a következő szerződéseket: - - C0: call(C1); call(C1); - C1: call(C2); call(C2); - C2: call(C3); call(C3); - ... - C49: call(C50); call(C50); - C50: (futtasson egy lépést a programból, majd rögzítse a változtatást a tárhelyen) - -Most, küldjön egy tranzakciót A-nak. Így 51 tranzakcióban van egy olyan szerződésünk, amely akár 250 számítási lépést is magában foglalhat. A bányászok megpróbálhatják már jóelőre kiszűrni ezeket a logikai bombákat, ha értéket tartanak minden szerződés mellett, amely meghatározza, hogy legfeljebb mennyi számítási lépést vehet fel, és kiszámítják ezt azokhoz a szerződésekhez, amelyek rekurzívan hívnak más szerződéseket, azonban ez arra kényszerítené a bányászokat, hogy letiltsák azokat a szerződéseket, amelyek más szerződéseket hoznak létre (mivel a fenti 26 szerződés létrehozása és futtatása könnyedén egy szerződésbe gyúrható). Másik problematikus pont, hogy az üzenet címmezője egy változó, tehát általánosságban idő előtt nem lehet megmondani, hogy milyen más szerződést fog meghívni egy adott szerződés. Ezért összességében meglepő következtetésre jutottunk: A Turing-teljességet meglepően könnyű kezelni, valamint a Turing-teljesség hiányát hasonlóképpen meglepően nehéz kezelni, kivéve, ha ugyanezeket a vezérlőket alkalmazzuk - de ebben az esetben miért ne legyen a protokoll Turing-teljes? - -### Valuta és kiadás {#currency-and-issuance} - -Az Ethereum rendszerben saját beépített valuta, az ether szolgál kettős célt, egyfelől egy elsődleges likviditási réteget biztosít a különböző digitális eszközök közötti hatékony váltáshoz, másfelől pedig fontos mechanizmust biztosít a tranzakciós költségek fizetésére. Kényelmi szempontból, valamint elkerülve a későbbi vitákat (lásd a jelenlegi mBTC/uBTC/satoshi vitát a Bitcoin-ban), a névértékeket előre felcímkézzük: - -- 1: wei -- 1012: szabo -- 1015: finney -- 1018: ether - -Ez a "dollár" és "cent", illetve a "BTC" és "satoshi" koncepció kibővített változataként értelmezhető. A közeljövőben az "ether" lesz használatos a hagyományos tranzakciókra, a "finney" a mikrotranzakciókra, a "szabo" és "wei" pedig a díjak és protokoll implementációkkal kapcsolatos technikai értekezésekben; a fennmaradó címletek pedig később lehetnek hasznosak, és jelenleg nem szerepelnek a kliensekben. - -A kiadási modell a következő: - -- Az Ether mint valuta egy BTC-hez viszonyítva 1000-2000 ether árfolyamon fog forogni; ez a mechanizmus az Ethereum szervezet forrásait biztosítja, valamint ezzel lehet fizetni a fejlesztésekért, amelyet más platformon, például a Mastercoin-on és az NXT-n már sikerrel használtak. A korai vásárlók nagyobb kedvezményekben részesülnek. Az eladásból kapott BTC-ket teljes mértékben a fejlesztők fizetésére és javadalmazására fordítják, valamint különböző for-profit és non-profit projektekbe fektetik az Ethereum és kriptovaluta ökoszisztémában. -- A teljes értékesített összeg (60102216 ETH) 0.099x-át a szervezet kapja a korai hozzájárulók kompenzálására, valamint ETH-ban denominált költségekre fordítják a genesis blokk előtt. -- A teljes értékesített összeg 0,099x részét hosszú távú tartalékba helyezik. -- A teljes értékesített összeg 0,26x része a bányászokhoz kerül évente, örökre ezután a pont után. - -| Csoport | induláskor | 1 év után | 5 év után | -| ------------------------------------- | ---------- | --------- | --------- | -| Valuta egység | 1,198X | 1,458X | 2,498X | -| Vásárlók | 83,5% | 68,6% | 40,0% | -| Értékesítés előtt elköltött tartalék | 8,26% | 6,79% | 3,96% | -| Értékesítés után felhasznált tartalék | 8,26% | 6,79% | 3,96% | -| Bányászok | 0% | 17,8% | 52,0% | - -**Hosszú távú kínálati növekedési ütem (százalék)** - -![Ethereum infláció](../../../whitepaper/ethereum-inflation.png) - -_A lineáris valuta kibocsátások ellenére, hasonlóan a Bitcoin-hoz időről időre a kínálati növekedési ütem nulla felé tart_ - -A fenti modellben két választási lehetőség van (1) egy felnagyítási-pool megléte és mérete, és (2) egy állandóan növekvő lineáris kereslet, szemben a Bitcoin esetében látható felső korlátos kínálattal. A felnagyítási-pool indoklása a következő. Ha nincs felnagyítási-pool, és a lineáris kibocsátás 0,217x-re csökken az infláció biztosítására, akkor az ether teljes mennyisége 16,5%-al lesz kevesebb, és minden egység 19,8%-al értékesebb lenne. Következésképpen a 19,8%-os egyensúlyban több ethert vásárolnak az értékesítés folyamán, így minden egység megőrzi korábbi értékét. A szervezet ezután 1,198x BTC-vel rendelkezik, amit két szeletre lehet bontani: az eredeti BTC és a további 0,198x rész. Következésképpen a helyzet _pontosan megegyezik_ a nagyítással, van azonban egy fontos különbség: a szervezetnél csupán BTC van, és így nincs ösztönözve arra, hogy támogassa az ether mértékegység értékét. - -Az állandó lineáris keresletnövekedés modell csökkenti a jelentő vagyonkoncentráció kockázatát a Bitcoinban, és lehetőséget biztosít a jelen és jövő vásárlóinak, hogy reális esélyük legyen valuta egységeket venni, ugyanakkor erősen ösztönöznek arra, hogy még több ethert vegyenek és tartsanak, mivel a "kereslet növekedési üteme" százalékosan idővel a nulla felé közelít. Azt is feltételezzük, hogy mivel óvatlanság, haláleset stb. miatt mindig van, aki elveszti a coinjait, és ez százalékosan is modellezhető az éves kínálat függvényében, a teljes forgalomban lévő valutakészlet végül a veszteség arányával elosztott éves kiadás értékével azonos értéken stabilizálódik (például ha a veszteség aránya 1%, amint a kínálat 26X, 0,26X lesz bányászva és 0,26x veszik el évente, és létrejön az egyensúly). - -Ne feledjük, hogy a jövőben valószínű, hogy az Ethereum proof-of-stake modellre vált a biztonság érdekében, és évi nulla és 0,05X közé csökken a kiadásra vonatkozó követelmény. Abban az esetben, ha az Ethereum szervezet elveszíti pénzeszközeit, vagy valamilyen más okból kifolyólag eltűnik, nyitva hagyunk egy "társadalmi szerződést": mindenkinek joga van létrehozni egy jövőbeli Ethereum verziót, azzal a feltétellel, hogy az ether mennyiségének `60102216 * (1.198 + 0.26 * n)` kell lennie, ahol az `n` a z évek számát jelöli a genesis blokk után. A létrehozók szabadon értékesíthetik crowd-sell formájában, illetve meghatározhatják a PoS-által hajtott kínálat növekedés és a maximálisan engedélyezett kínálat bővülés különbségét részben vagy egészben a fejlesztés költségeinek lefedésére. Azok a frissítések, amelyek nem felelnek meg a társadalmi szerződés követelményeinek forkolhatók a követelményeknek megfelelő verziókba. - -### A bányászat centralizálása {#mining-centralization} - -A Bitcoin bányászati algoritmusa úgy működik, hogy a bányászok SHA256 számításokat végeznek a blokk fejléc kissé módosított verzióin egymás után több milliószor, amíg végül egy csomópont egy olyan verzióhoz ér, amelynek hash értéke kevesebb mint a cél (jelenleg körülbelül 2192). Azonban ez a bányászati algoritmus a centralizáció két formájára sérülékeny. Először is a bányászati ökoszisztémát az ASIC-ok (alkalmazásspecifikus integrált körök), az erre a célra tervezett számítógép chipek dominálják, és ezért ezek többezerszer hatékonyabbak a Bitcoin bányászat során. Ez azt jelenti, hogy a Bitcoin bányászat már egyáltalán nem decentralizált és az egyenlőségen alapuló tér, és több millió dolláros tőkére van szükség ahhoz, hogy hatékonyan részt lehessen venni benne. Másodsorban a legtöbb Bitcoin bányász gyakorlatilag nem lokálisan validálja a blokkokat; hanem helyette egy centralizált bányász-poolra támaszkodnak a blokk fejlécek megadásakor. Ez a probléma azonban még rosszabb: a tartalom írásakor a legjobb három bányász-pool indirekt módon a feldolgozási teljesítmény körülbelül 50%-át irányítja, bár ezt némiképp enyhíti az a tény, hogy a bányászok átválthatnak egy másik pool-ra, ha a pool vagy a koalíció 51%-os támadással próbálkozik. - -Az Ethereumban jelenleg az a szándék, hogy olyan bányászati algoritmust használjanak, ahol a bányászoknak véletlenszerűen kell adatot lekérniük az állapotról, ki kell számítaniuk néhány random kiválasztott tranzakciót a blokklánc utolsó N blokkjáról, és vissza kell adniuk az eredmény hashjét. Ennek két fontos előnye van. Először is az Ethereum szerződésekben bármilyen számítás lehet, így egy Ethereum ASIC lényegében egy általános számításra használt ASIC - azaz egy jobb CPU. Másodszor a bányászatnak hozzá kell férnie a teljes blokklánchoz, ami arra kényszeríti a bányászokat, hogy a teljes blokkláncot tárolják, és legalább képesnek kell lenniük minden tranzakció hitelesítésére. Emiatt nincs szükség centralizált bányászati-poolokra; bár a bányászati-poolok továbbra is betöltik azt a legitim szerepet, hogy kizárják a jutalom elosztás véletlenszerűségét, ezt a funkciót egyenlően el tudják látni a peer-to-peer poolok, központi irányítás nélkül. - -Ez a modell még nincs tesztelve, és szembejöhetnek még nehézségek bizonyos okos optimalizálások elkerülése terén, amikor a szerződés futtatást bányászati algoritmusként használják. Azonban ennek az algoritmusnak egyik érdekes funkciója, hogy bárki "megmérgezheti a kutat", ha nagyszámú szerződést vezet be a blokkláncra, azért, hogy megakasszon bizonyos ASIC-okat. Az ASIC gyártók számára léteznek gazdasági ösztönzők arra, hogy ezzel a trükkel megtámadják egymást. Ezért az általunk fejlesztett megoldás végeredményben egy adaptív humán gazdasági megoldás, és nem pusztán technikai. - -### Méretezhetőség {#scalability} - -Az Ethereummal kapcsolatos gyakori aggály a méretezhetőség kérdése. A Bitcoinhoz hasonlóan az Ethereumnak megvan az a hibája, hogy a hálózatban minden csomópontnak fel kell dolgoznia a tranzakciókat. A Bitcoin esetében a jelenlegi blokklánc mérete körülbelül 15 GB, ami óránként mintegy 1 MB-vel nő. Ha a Bitcoin hálózatnak másodpercenként 2000 Visa tranzakciót kellene feldolgoznia, akkor három másodpercenként nőne 1 MB-val (1 GB óránként, 8 TB évente). Az Ethereumon is hasonló növekedési tempó figyelhető meg, amelyet még rosszabbá tesz az a tény, hogy számos alkalmazást futtatnak az Ethereum blokkláncán, szemben azzal, hogy a Bitcoin csak egy valuta, azonban javít rajta az, hogy az Ethereum teljes csomópontjainak csak az állapotot és nem a teljes blokklánc előzményt kell tárolniuk. - -A nagyméretű blokklánccal a centralizáció kockázata a fő probléma. Ha a blokklánc mérete mérete mondjuk 100 TB-ra nő, a legvalószínűbb forgatókönyv szerint csak nagyon kevés nagyvállalat tud majd teljes csomópontot futtatni, az összes hagyományos felhasználó pedig könnyű SPV-csomópontokat fog használni. Egy ilyen helyzetben felmerülhet a lehetséges aggály, hogy a teljes csomópontok összefoghatnak, és megállapodnak abban, hogy profitábilis módon csaljanak (például módosítsák a blokkok után járó jutalmat, vagy BTC-t adjanak maguknak). A könnyű csomópontok nem tudják ezt azonnal felismerni. Természetesen legalább egy becsületes teljes csomópont valószínűleg létezne, és a csalás kiderülése után néhány órával már a Reddit is tele lenne a hírrel, azonban ezen a ponton ez már túl késő lenne: a normál felhasználókon múlna, hogy szervezetten tiltólistára tegyék az adott blokkokat, azonban ez a koordinációs probléma jelentős és eléggé megoldhatatlan helyzetet teremtene, hasonlóan egy sikeres 50%-os támadás indításához. A Bitcoin esetében ez jelenleg probléma, de létezik rá blokklánc módosítási [javaslat Peter Todd-tól](https://web.archive.org/web/20140623061815/http://sourceforge.net/p/bitcoin/mailman/message/31709140/) amely enyhítene a problémán. - -A közeljövőben az Ethereum két további stratégiát fog használni a probléma megoldására. Először a blokklánc alapú bányászati algoritmusok miatt legalább minden bányász rá lesz kényszerítve, hogy teljes csomópont legyen, ami alacsonyabb korlátot hoz létre a teljes csomópontok viszonylatában. Másodszor, és még fontosabb módon egy közbenső állapot fa gyökeret szerepeltetünk a blokkláncban a tranzakciók feldolgozása után. Még akkor is, ha a blokk validálása centralizált, addig, amíg van becsületes csomópont, a centralizációs probléma megkerülhető a protokoll validálásával. Ha egy bánász érvénytelen blokkot tesz közzé, vagy a blokk nincs megfelelően formázva, vagy az `S[n]` állapot pontatlan. Mivel az `S[0]` kódnak pontos, kell lennie egy első `S[i]` állapotnak, ami hibás ott, ahol az `S[i-1]` pontos. A hitelesítő csomópont megadja az `i` indexet egy "proof of invalidity" (érvénytelenségi bizonyíték) bizonyítékkal, ami olyan Patricia fa csomópontokból áll, amelyeknek fel kell dolgozniuk a `APPLY(S[i-1],TX[i]) -> S[i]` kifejezést. A csomópontok használni tudják ezeket a Patricia csomópontokat a számítás egy részének futtatásához, és látni fogják, ha a generált `S[i]` nem egyezik a megadott `S[i]` értékkel. - -Egy másik, kifinomultabb támadásban rosszindulatú bányászok félkész blokkokat publikálnak, így a teljes információ nem is létezik annak megállapítására, hogy a blokk érvényes-e. A megoldás egy kihívásra reagáló protokoll: a hitelesítő csomópont cél tranzakciós indexek formájában "kihívásokat" adnak ki, majd amikor visszakapnak egy csomópontot, egy könnyű csomópont mindaddig érvénytelennek tekinti a blokkot, amíg egy másik csomópont, egy bányász, vagy egy másik hitelesítő vissza nem ad Patricia csomópont készleteket igazolva az érvényességet. - -## Következtetés {#conclusion} - -Az Ethereum protokollt eredetileg egy frissített kriptovaluta verziónak tekintették, ami haladó funkciókat is kínált, például blokkláncon lévő escrow-t, kivételi korlátokat, pénzügyi szerződéseket, szerencsejáték piacokat és hasonlókat egy nagyon általánosított programnyelven. Az Ethereum protokoll nem "támogatja" közvetlenül az alkalmazásokat, azonban a Turin-teljesség programnyelv megléte azt jelenti, hogy tetszőleges mennyiségű szerződés hozható létre bármilyen tranzakció típushoz vagy alkalmazáshoz. Még érdekesebb az Ethereummal kapcsolatban, hogy az Ethereum protokoll sokkal több puszta valutánál. A decentralizált fájl tárolással, számításokkal és kimenetelre fogadó piacokkal kapcsolatos protokollok több tucat hasonló koncepció mellett magukban rejtik a számítási ipar hatékonyságnövelésének potenciálját, és masszív lökést adnak más peer-to-peer protokolloknak egy korábban nem látott gazdasági réteg hozzáadásával. Végezetül pedig jelentős számú alkalmazás van, amely egyáltalán nem foglalkozik pénzzel. - -Az Ethereum protokollban implementált tetszőleges állapot átmenet függvény koncepciója egyedi potenciált rejtő platformot kínál; szemben a zártvégű, egycélú protokollokkal, amelyeket egy bizonyos típusú alkalmazásra fejlesztenek az adattárolás, pénzügy vagy szerencsejáték világában, az Ethereum egy alapvetően nyílt végű koncepció, és hiszünk abban, hogy kiválóan szolgál nagyon sok pénzügyi és nem pénzügyi protokoll alapozó rétegeként az elkövetkező években. - -## Jegyzetek és további olvasnivaló {#notes-and-further-reading} - -### Jegyzetek {#notes} - -1. A kifinomult olvasó észreveheti, hogy gyakorlatilag egy Bitcoin cím az elliptikus görbe nyilvános kulcs hash-e, és nem a nyilvános kulcs maga. Azonban gyakorlatilag teljesen legitim kriptográfiai terminológia a pubkey hash nyilvános kulcsként történő hivatkozása. Ez azért van, mert a Bitcoin kriptográfiáját tekinthetjük egy egyedi digitális aláírás algoritmusnak, ahol a nyilvános kulcs az ECC pubkey hashjéből áll, az aláírás az ECC pubkey és az ECC aláírás együttesen, a hitelesítő algoritmusban pedig az aláírásban lévő ECC pubkey-t a nyilvános kulcsként rendelkezésre bocsátott ECC pubkey hashhel vetik összes, majd az ECC aláírást az ECC pubkey értékével hitelesítik. -2. Gyakorlatilag a 11 előző blokk mediánja. -3. Az Ethereum protokollnak egyszerűnek és praktikusnak kell lennie, de elképzelhető, hogy viszonylag összetettnek kell lennie, például méretezhetőnek, hogy internalizálni lehessen a tárolás költségeit, a sávszélességet és I/O-t a biztonság, adatvédelem és átláthatóság stb. érdekében. Ahol a komplexitás elengedhetetlen, a dokumentációnak a lehető legegyértelműbbnek, átfogóbbnak és naprakészebbnek kell lennie, így bárki, aki nem járatos az Ethereumban meg tudja tanulni és szakértővé válhasson. -4. Lásd az Ethereum Virtuális Gépről szóló [Sárgakönyvet](https://ethereum.github.io/yellowpaper/paper.pdf) (amely hasznos specifikációkat tartalmaz, és referenciaként szolgálhat azoknak, akik a nulláról szeretnének Ethereum klienst építeni), továbbá számos témakör ismertetése is megtalálható az [Ethereum wiki oldalán](https://github.com/ethereum/wiki/wiki), például a shard- fejlesztés, fő fejlesztés, dapp fejlesztés, kutatás, Casper K&F, és hálózati protokollok. A kutatásról és a lehetséges jövőbeli implementációkról lásd: [ethresear.ch](https://ethresear.ch). -5. Ennek egy másik kifejezési módja az absztrakció. A [legfrissebb roadmap](https://ethresear.ch/t/sharding-phase-1-spec/1407/67) az absztrakt futtatás megtervezése, ahol a futtató motoroknak nem feltétlenül kell követniük egy kanonizáló specifikációt, de például testreszabható egy adott alkalmazáshoz vagy egy shard-hoz. (A futtató motorok heterogénsége nincs explicite leírva a roadmapban. Létezik heterogén sharding, amelyet Vlad Zamfir foglalt koncepcióba.) -6. Belső értelmezésben a 2 és "CHARLIE" szám, ez utóbbi big-endian bázis 256 reprezentáció. A számok 0-tól legfeljebb 2256-1-ig terjedhetnek. - -### További olvasnivaló {#further-reading} - -1. [Valódi érték](http://bitcoinmagazine.com/8640/an-exploration-of-intrinsic-value-what-it-is-why-bitcoin-doesnt-have-it-and-why-bitcoin-does-have-it/) -2. [Okos-tulajdonság](https://en.bitcoin.it/wiki/Smart_Property) -3. [Okosszerződések](https://en.bitcoin.it/wiki/Contracts) -4. [B-pénz](http://www.weidai.com/bmoney.txt) -5. [Újrahasznosítható proof-of-work](http://www.finney.org/~hal/rpow/) -6. [Biztonságos tulajdonság címek tulajdonosi rendelkezéssel](http://szabo.best.vwh.net/securetitle.html) -7. [Bitcoin fehérkönyv](http://bitcoin.org/bitcoin.pdf) -8. [Namecoin](https://namecoin.org/) -9. [Zooko háromszög](https://wikipedia.org/wiki/Zooko's_triangle) -10. [Colored coins fehérkönyv](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit) -11. [Mastercoin fehérkönyv](https://github.com/mastercoin-MSC/spec) -12. [Decentralizált autonóm vállalatok, Bitcoin Magazine](http://bitcoinmagazine.com/7050/bootstrapping-a-decentralized-autonomous-corporation-part-i/) -13. [Egyszerűsített fizetés hitelesítés](https://en.bitcoin.it/wiki/Scalability#Simplifiedpaymentverification) -14. [Merkle fák](https://wikipedia.org/wiki/Merkle_tree) -15. [Patricia fák](https://wikipedia.org/wiki/Patricia_tree) -16. [GHOST](https://eprint.iacr.org/2013/881.pdf) -17. [StorJ és Autonóm ügynökök, Jeff Garzik](http://garzikrants.blogspot.ca/2013/01/storj-and-bitcoin-autonomous-agents.html) -18. [Mike Hearn az Okos tulajdonságokról a Turing Fesztiválon](http://www.youtube.com/watch?v=Pu4PAMFPo5Y) -19. [Ethereum RLP](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-RLP) -20. [Ethereum Merkle Patricia fák](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-Patricia-Tree) -21. [Peter Todd a Merkle összeg fákról](http://sourceforge.net/p/bitcoin/mailman/message/31709140/) - -_A fehérkönyv történetéről lásd: https://github.com/ethereum/wiki/blob/old-before-deleting-all-files-go-to-wiki-wiki-instead/old-whitepaper-for-historical-reference.md_ - -_Az Ethereum sok másik közösség által vezetett, nyílt forráskódú szoftver projekthez hasonlóan, a kezdeti elindulás óta fejlődött. Ha többet szeretnél megtudni az Ethereum legutóbbi fejlesztéseiről és az általunk elvégzett protokoll változtatásokról, akkor ezt az [útmutatót](/learn/) ajánljuk._ diff --git a/src/content/translations/hy-am/nft/index.md b/src/content/translations/hy-am/nft/index.md deleted file mode 100644 index 0108dd78830..00000000000 --- a/src/content/translations/hy-am/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Անփոխարինելի տոկեններ (NFT) -description: Ակնարկ Էթերիումում գործող NFT-ների մասին -lang: hy-am -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: Eth-ի պատկերանշանը ցուցադրվաում է հոլոգրամի միջոցով։ -summaryPoint1: "Ցանկացած յուրօրինակ օբյեկտ որպես Էթերիումում գործող ակտիվ ներկայացնելու ձև:" -summaryPoint2: "NFT-ները ստեղծագործողներին նոր հնարավորություններ են ընձեռում:" -summaryPoint3: "Գործարկվում են Էթերիում բլոկչեյնի վրա գտնվող սմարթ կոնտրակտներով:" ---- - -## What are NFTs? {#what-are-nfts} - -NFT-ները ներկայումս մեծ արագությամբ նվաճում են թվային արվեստի աշխարհը: Թվային արվեստագետների կատարած վաճառքենրը մեծապես աճել են շուկայում նոր կրիպտոլսարանի հայտնվելու հաշվին: ՅՏ-երը տարբերվում են ERC-20 ստանդարտի տոկեններից նրանով, որ յուրաքանչյուր տոկեն յուրօրինակ է և չի բաժանվում մասերի: Ձեզ չի հետաքրքրում, թե կոնկրետ որ դոլլարի թղթադրամն է Ձեր դրամապանակում, քանի որ բոլորն էլ նույն արժեքն ունեն: Սակայն, Ձեզ հետաքրքրում է, թե կոնկրետ որ ՅՏ-ն եք ձեռք բերում, քանի որ դրանցից յուրաքանչյուրը յուրահատուկ է: - -Յուրաքանչյուր NFT-ի յուրահատկությունը թույլ է տալիս տոկենիզացնել այնպիսի պարագաներ, ինչպիսիք են արվեստի գործերը, հավաքածուները, կամ նույնիսկ անշարժ գույքը, որտեղ յուրաքանչյուր NFT ներկայացնում է իրական աշխարհից ինչ-որ յուրահատուկ առարկա: Ակտիվի սեփականության վկայականը պահապանվում է Էթերիում բլոկչեյնի միջոցով՝ ոչ ոք չի կարող այն փոփոխության ենթարկել, կամ արդեն եղած տոկենը պատճենել և նույն վկայականից ստանալ: - - - -## Ակտիվների ինտերնետ {#internet-of-assets} - -NFT-ներն ու Էթերիումը լուծում են համացանցում ներկայումս առկա որոշ խնդիրներ: Քանի որ ամեն ինչ գնալով տեղափոխվում է թվային հարթակ, ֆիզիկական առարկաների հատկանիշները, ինչպես օրինակ դրանց հազվագյուտությունը, սեփականության իրավունքն ու յուրօրինակությունը, թվային ձևաչափով ներկայացնել է պետք: այնպիսի ձևով, որ այն չի վերահսկվում որևէ կենտրոնական կազմակերպության կողմից: Օրինակ, NFT-ների միջոցով, Դուք կարող եք ձեռք բերել mp3 ձևաչափով երգ, որը որևէ կոնկրետ ընկերության հավելվածին յուրահատուկ չէ, կամ կարող եք ունենալ սոցիալական մեդիայի էջ, որը կարող եք փոխանակել կամ վաճառել, բայց որը չի կարող արգելափակվել հարթակը տրամադրողի կողմից: - -Ահա թե ինչ տեսք ունի NFT-ների հագեցած համացանցը, համեմատած մեծամասնության կողմից օգտագործվող համացանցի հետ... - -### A comparison {#nft-comparison} - -| NFT-ական համացանց | Համացանցն այսօր | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Դուք կառավարում եք Ձեր ակտիվներները: Միայն Դուք կարող եք դրանք փոխանակել կամ վաճառել: | Դուք որևէ կազմակերպությունից ակտիվ եք վարձում: | -| NFT-ները թվայնորեն յուրօրինակ են, գոյություն չունի իրար հետ նույնական երկու NFT: | Ցանկացած ֆայլի պատճեն օրիգինալ ֆայլի հետ նույնական է: | -| NFT-ի սեփականության վկայականը պահապանվում է բլոկչեյնում, և բոլորը կարող են հաստատել այն: | Թվային իրերի սեփականության վկայականները պահպանվում են տարբեր կառույցների կողմից վերահսկվող սերվերնում, այդպիսով Ձեր սեփականության իրավունքը վստահելով նրանց: | -| NFT-ները Էթերիումում գործող սմարթ կոնտրակներ են: Սա նշանակում է, որ դրանք հեշտությամբ կարող են օգտագործվել Էթերիումում գործող այլ սմարթ կոնտրակտների և հավելվածների կողմից: | Թվային ատկիվներով աշխատող ընկերությունները սովորաբար ունեն իրենց սեփական առանձին ենթակառուցվածքը: | -| Ստեղծագործողները կարող են ցանկացած վայրում վաճառել իրենց աշխատանքը ունենալով հասանելիություն գլոբալ շուկային: | Ստեղծագործողները ապավինում են այն ենթակառուցվածքների և վաճառքի հարթակների վրա, որոնցից օգտվում են: Դրանք երբեմն կարող են աշխարհագրական կամ օգտագործման պայմանների հետ կապված սահմանափակումների առարկա դառնալ: | -| ՅՏ Ստեղծագործողները կարող են պահպանել իրենց աշխատանքի նկատմամբ սեփականության իրավունքը և վերավաճառքից ուղղակիորեն ստանալ հոնորարներ, այդ ամեն ինչը ծրագրավորելով ՅՏ-ի կոնտրակտում: | Թվային իրերի վաճառքով զբաղվող ընկերությունները իրենց են պահում վաճառքից գոյացած եկամուտների մեծամասնությունը: | - -## Ինչպես են ՅՏ-երը աշխատում {#how-nfts-work} - -Ինչպես Էթերիումում թողարկված ցանկացած տոկեն, ՅՏ-երը նույնպես թողարկվում են սմարթ կոնտրակների միջոցով: Սմարթ կոնտրակտը համապատասխանեցվում է ՅՏ ստանդարտներից(օրինակ ERC-721 կամ ERC-1155) որևէ մեկին, որը սահմանում է թե ինչ գործառույթներ է տվյալ կոնտրակտը ունենալու: Կոնտրակտը կարող է ՅՏ թողարկել և դա սեփականաշնորհել ինչ-որ կոնկրետ անձի: Սեփականությունը սահմանվում է կոնտրակտում, որտեղ իրար հետ կապվում են ՅՏ-երը իրենց սեփականատերերի հասցեների հետ: NFT-ն ունի նույնականացման համար և մետատվյալներ, որոնք հենց դարձնում են այդ տոկենը յուրահատուկ: - -Երբ ինչ որ մեկը ՅՏ է ստեղծում կամ թողարկում, նրանք իրականում գործարկում են սմարթ կոնտրակտում առկա գործառույթ, որը այդ անձի հասցեին ինչ-որ ՅՏ է կցում: Տվյալները պահպանվում են կոնտրակտում, որը բլոկչեյնի մաս է կազմում: Կոնտրակտ ստեղծողը դրան կարող է հավելյալ հատկանիշներ ավելացնել, օրինակ ըընդհանուր պաշարները սահմանափակելու կամ ստեղծողին յուրաքանչյուր տոկենի փոխանցումից հոնորար վճարելու: - -## Ինչի համար են ՅՏ-երն օգտագործվում: {#nft-use-cases} - -ՅՏ-եևն օգտագործվում են շատ բաների համար, այդ թվում. - -- ապացույց, որ դուք ինչ-որ միջոցառման եք մասնակցել -- հավաստագիր, որ դուք տվյալ դասընթացն եք անցել -- որպես խաղերում ձեռք բերելի պարագաներ -- թվային արվեստ -- իրական աշխարհի ակտիվները տոկենիզացում -- ապացուցել ձեր օնլայն ինքնությունը -- որևէ բովանդակության հասանելություն ձեռք բերել -- որպես տոմսեր -- ապակենտրոնացված համացանցի դոմեյնային անուններ -- գրավ ապ-ֆինանսների հարթակում - -Գուցե դուք արտիստ եք, ով ցանկանում է կիսել իր աշխատանքը օգտագործելով NFT-ներ, առանց դրանց վրա վերահսկողությունը կորցնելու կամ եկամուտները միջնորդների հետ կիսելու: Դուք կարող եք նոր կոնտրակտ ստեղծել և նշել NFT-երի քանակի, դրանց հատկություններն և կցել ինչ-որ արվեստի հավաքածույի հղում: Որպես արտիստ, Դուք կարող եք սմարթ կոնտրակտում նշել հոնորարի չափը, որով պետք է վարձատրվեք(օրինակ՝ վաճառքի գնի 5 %-ը յուրաքանչյուր NFT-ի փոխանցումից): Դուք միշտ կարող եք ապացուցել, որ Դուք եք ստեղծել տրված NFT-ները, քանի որ դրամապանակը, որը տեղակայել է սմարթ կոնտրակտը բլոկչեյնում, Ձեզ է պատկանում: Ձեր գնորդները հեշտությամբ կարող են ապացուցել իրենց սեփականության իրավունքը ինչ-որ NFT-ի նկատմամբ, քանի որ նրանց դրամապանակների հասցեները կապված են այդ NFT-երի հետ կոնտրակում: Նրանք կարող են օգտագործել դա ամբողջ Էթերիում էկոհամակարգով, վստահ լինելով դրա բնօրինակության վրա: - -Կամ պատկերացրեք ինչ-որ սպորտային միջոցառման տոմս: Ինչպես որ միջոցառման կազմակերպիչը կարող է որոշել քանի տոմս պետք է վաճառել, այնպես էլ NFT-ի հեղինակը կարող է որոշել, թե քանի օրինակ է վաճառվելու: Երբեմն, դրանք իրարից չտարբերվող կրկնօրինակներ են, ինչպես օրինակ 5000 ընդհանուր ընդունելության տոմսեր: Երբեմն էլ, դրանք միանման են, բայց փոքր տարբերություններով: Օրինակ տարբեր տոմսերում տարբեր նստատեղ էր կարող են նշված լինել: Թվային իրերն ունեն տարբեր կիրառություններ: - -ethereum.org - ում, NFT-ներն օգտագործվում ցույց տալու համար, որ մարդիկ իրենց ներդրումն են ունեցել մեր GitHub պահոցում, կամ մասնակցել են մեր օնլայն հանդիպումներին: Մենք նույնիսկ մեր սեփական NFT դոմեյնի անունն ունենք: Եթե ​​դուք նպաստում եք ethereum.org-ին, կարող եք պահանջել POAP NFT: Որոշ կրիպտոմիջոցառումներ արդեն օգտագործել ՄԱԱ-երը որպես միջոցառման տոմսեր: [Ավելին նպաստելու մասին](/contributing/#poap). - -![ethereum.org POAP](./poap.png) - -Այս վեբկայքը նաև ունի այլընտրանքային դոմեյնի անուն, որն իրենից NFT է ներկայացնում՝ **ethereum.eth**: Մեր `.org` հասցեն վերահսկվում է DNS-ի կողմից, այնինչ ethereum`.eth`-ը գրանցված է Էթերիումում Էթերիումի անվանական Ծառայության(ԷԱԾ)-ի կողմից: Այն պատկանում է մեզ և վերահսկվում է մեր կողմից: [Ուսումնասիրեք մեր ԷԱԾ գրանցումները](https://app.ens.domains/name/ethereum.eth) - -[Ավելին՝ ԷԱԾ-ի (ENS) մասին](https://app.ens.domains) - - - -### NFT-ի անվտանգությունը {#nft-security} - -Էթերիումի անվտանգությունը հիմնված է Բաժնեմասային անվտանգության մեխանիզմի վրա: Համակարգը նախագծված է այնպես, որ մասնակիցների համար ֆինանսապես ձեռնտու չլինի փորձել խարդախություններ կատարել խանգարելով համակարգի բնականոն աշխատանքին, Էթերիումը դարձնելով հուսալի: Սրա շնորհիվ է, որ NFT-ները գոյություն ունեն: Հենց որ Ձեր NFT ստեղծման տրազակցիան պարունակող բլոկը հաստատվի, միլլիոնավոր Էթերներ կպահանջվնե այդ տրանզակցիան չեղարկելու կամ փոփոխելու համար: Էթերիումի ցանցի յուրաքանչյուր մասնակից ավտոմատ կերպով կհայտնաբերեր ՅՏ-ն կեղծել փորձողին, և վերջինս կտուգանվեր և կհեռացվեր ցանցից: - -NFT-ի հետ կապված անվտանգային հարցերը հիմանականում պայմանավորված են ֆիշինգներով, սմարթ կոնտրակտներում առկա թերություններով կամ օգտատերերի անզգուշությամբ, NFT սեփականատերերի համար լավ դրամապանակային անվտանգությունը օրհասական դարձնելով: - - - Ավելին՝ անվտանգության մասին - - -## Further reading {#further-reading} - -- [ՅՏ-երի ուղեցույց սկսնակների համար](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Լինդա Շի, Հունվար 2020_ -- [EtherscanNFT փնտրող](https://etherscan.io/nft-top-contracts) -- [ERC-721 տոկենի ստանդարտ](/developers/docs/standards/tokens/erc-721/) -- [ERC-1155 տոկենի ստանդարտ](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/id/community/support/index.md b/src/content/translations/id/community/support/index.md deleted file mode 100644 index 8597d145151..00000000000 --- a/src/content/translations/id/community/support/index.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -title: Dukungan Ethereum -description: Mendapatkan dukungan di ekosistem Ethereum. -lang: id ---- - -# Dukungan Ethereum {#support} - -## Dukungan resmi Ethereum {#official-support} - -Apakah Anda sedang mencari dukungan resmi Ethereum? Hal pertama yang harus Anda ketahui adalah bahwa Ethereum bersifat terdesentralisasi. Ini berarti tidak ada organisasi, entitas, atau orang sentral yang memiliki Ethereum, dan karena ini, tidak ada kanal dukungan resmi. - -Memahami sifat terdesentralisasi Ethereum sangat penting karena siapa pun yang mengklaim sebagai pemberi dukungan resmi Ethereum mungkin sedang mencoba menipu Anda! Perlindungan terbaik terhadap para penipu adalah mengedukasi diri Anda sendiri dan memperhatikan aspek keamanan dengan serius. - - - Keamanan dan pencegahan penipuan Ethereum - - - - Pelajari tentang fundamental Ethereum - - -Sekalipun kurang adanya dukungan resmi, banyak kelompok, komunitas, dan proyek di keseluruhan ekosistem Ethereum senang memberikan bantuan. - -## Dukungan dompet {#wallet-support} - -Mengalami masalah dengan dompet Anda? Kebanyakan dompet telah mendedikasikan tim dukungan yang dapat menolong: - -- [MetaMask](https://metamask.zendesk.com/hc/) -- [Argent](https://support.argent.xyz/hc/) -- [MyEtherWallet](https://help.myetherwallet.com/) - -_Ini bukanlah daftar yang lengkap. Perlu bantuan menemukan bantuan untuk dompet yang khusus? Bergabunglah dengan [discord ethereum.org](https://discord.gg/ethereum-org) dan kami akan mencoba menolong Anda._ - -Sedang mencari dompet Ethereum? [Jelajahi daftar lengkap dompet Ethereum kami](/wallets/find-wallet/). - -## Membangun dapps {#building-support} - -Membangun dapat bisa saja sulit. Berikut adalah beberapa lingkungan yang berfokus pengembangan dengan para pengembang Ethereum berpengalaman yang senang memberikan bantuan. - -- [Discord CryptoDevs](https://discord.gg/Z9TA39m8Yu) -- [StackExchange Ethereum](https://ethereum.stackexchange.com/) -- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) -- [Universitas Web3](https://www.web3.university/) - -Anda juga dapat menemukan dokumentasi dan panduan pengembangan di bagian [Sumber pengembang Ethereum](/developers/) kami. - -### Perangkat {#dapp-tooling} - -Apakah pertanyaan Anda terkait dengan peralatan, proyek, atau pustaka tertentu? Kebanyakan proyek memiliki peladen atau forum obrolan yang dikhususkan untuk mendukung Anda. - -Berikut adalah beberapa contoh populer: - -- [Solidity](https://gitter.im/ethereum/solidity/) -- [ethers.js](https://discord.gg/6jyGVDK6Jx) -- [web3.js](https://discord.gg/GsABYQu4sC) -- [Hardhat](https://discord.gg/xtrMGhmbfZ) -- [Truffle](https://discord.gg/8uKcsccEYE) -- [Alchemy](http://alchemy.com/discord) - -## Menjalankan node {#node-support} - -Jika Anda menjalankan node atau validator, berikut adalah beberapa komunitas yang dikhususkan untuk menolong Anda memulai. - -- [Discord EthStaker](https://discord.gg/ethstaker) -- [Reddit EthStaker](https://www.reddit.com/r/ethstaker) - -Kebanyakan tim yang membangun klien Ethereum juga telah mendedikasikan lingkungan untuk publik di mana Anda dapat mendapatkan dukungan dan mengajukan pertanyaan. - -### Klien eksekusi {#execution-clients} - -- [Geth](https://discord.gg/FqDzupGyYf) -- [Nethermind](https://discord.gg/YJx3pm8z5C) -- [Besu](https://discord.gg/p8djYngzKN) -- [Erigon](https://github.com/ledgerwatch/erigon/issues) - -### Klien konsensus {#consensus-clients} - -- [Prysm](https://discord.gg/prysmaticlabs) -- [Nimbus](https://discord.gg/nSmEH3qgFv) -- [Lighthouse](https://discord.gg/cyAszAh) -- [Teku](https://discord.gg/7hPv2T6) -- [Lodestar](https://discord.gg/aMxzVcr) - -Anda juga dapat [mempelajari cara menjalankan node di sini](/developers/docs/nodes-and-clients/run-a-node/). - -## Pertanyaan yang sering diajukan {#faq} - -#### Saya telah mengirim ETH ke dompet yang salah {#wrong-wallet} - -Transaksi yang dikirimkan di Ethereum tidak dapat dibalikkan. Sayangnya, jika Anda telah mengirim ETH ke dompet yang salah, tidak ada cara untuk mendapatkan kembali dana ini. Tidak ada satu organisasi, entitas, atau orang sentral yang memiliki Ethereum, yang berarti tidak ada satu pun yang dapat membalikkan transaksi. Oleh karena itu, sangat penting untuk selalu memeriksa ulang transaksi Anda sebelum mengirimkannya. - -#### Bagaimana saya dapat mengklaim hadiah Ethereum? {#giveaway-scam} - -Hadiah Ethereum adalah penipuan yang dirancang untuk mencuri ETH Anda. Jangan tergoda dengan penawaran yang tampak terlalu menggiurkan — jika Anda mengirim ETH ke suatu alamat hadiah, Anda tidak akan menerima hadiah, dan Anda tidak akan dapat mendapatkan dana Anda kembali. - -[Lebih lanjut tentang pencegahan penipuan](/security/#common-scams) - -#### Transaksi saya macet {#stuck-transaction} - -Transaksi di Ethereum dapat terkadang mengalami kemacetan jika Anda telah mengirimkan biaya transaksi yang lebih rendah dari yang diharuskan karena permintaan jaringan. Banyak dompet menyediakan opsi untuk mengirimkan kembali transaksi yang sama dengan biaya transaksi yang lebih tinggi untuk memungkinkan transaksi diproses. Sebagai alternatif, Anda dapat membatalkan transaksi berstatus tunggu dengan mengirimkan transaksi ke alamat Anda sendiri dan menggunakan nonce yang sama sebagai transaksi berstatus tunggu. - -[Cara mempercepat atau membatalkan transaksi berstatus tunggu di MetaMask](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) - -[Cara membatalkan transaksi Ethereum berstatus tunggu](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) - -#### Bagaimana cara menambang Ethereum? {#mining-ethereum} - -Kami tidak menyarankan membeli peralatan menambang jika Anda belum menambang Ethereum. Di ~Q3/Q4 2022, [penggabungan](/roadmap/merge/) akan terjadi, yang mengalihkan Ethereum dari bukti kerja ke bukti taruhan. Perubahan ini berarti menambang Ethereum tidak akan mungkin lagi. diff --git a/src/content/translations/id/contributing/translation-program/index.md b/src/content/translations/id/contributing/translation-program/index.md deleted file mode 100644 index 99c6dba1cdf..00000000000 --- a/src/content/translations/id/contributing/translation-program/index.md +++ /dev/null @@ -1,154 +0,0 @@ ---- -title: Program Penerjemahan -lang: id -description: Bagaimana berkontribusi pada Program Terjemahan ethereum.org ---- - -# Program Penerjemahan {#translation-program} - -Program Terjemahan adalah sebuah usaha kolaboratif untuk menerjemahkan ethereum.org ke berbagai bahasa untuk membuat situs web lebih mudah diakses oleh miliaran penutur non-Inggris di seluruh dunia. - -Kemajuan kami sejauh ini: - -- [**2.500+** penerjemah](/contributing/translation-program/acknowledgements/) -- [**40** bahasa ada di situs](/languages/) -- [**2,9 juta** kata telah diterjemahkan di 2021](/contributing/translation-program/acknowledgements/) - -Jika Anda ingin terlibat dan membantu kami mengembangkan komunitas Ethereum global dengan menerjemahkan situs web ke dalam bahasa Anda, ikuti langkah-langkah di bawah ini! - - - Lihat halaman Penghargaan Penerjemah kami, dan{" "} - ambil token POAP Anda! Jika Anda menerjemahkan ethereum.org pada tahun 2021, ada POAP unik yang menunggu Anda.{" "} - Selengkapnya tentang POAP - - -## Misi dan visi {#mission-and-vision} - -Komunitas Ethereum bertujuan untuk menjadi global dan inklusif, namun sebagian besar kontennya hanya melayani penutur bahasa Inggris, meninggalkan 6 miliar pembicara non-Inggris di dunia. Agar ethereum.org bertindak sebagai portal menuju ke Ethereum untuk komunitas di seluruh dunia, kami percaya menyediakan konten Ethereum dalam bahasa ibu mereka bagi penutur non-Inggris sangat penting. - -Program Terjemahan ethereum.org bertujuan untuk membuat Ethereum dapat diakses oleh semua orang dengan menerjemahkan ethereum.org dan konten Ethereum lainnya ke dalam sebanyak mungkin bahasa. - -**Misi kami** - -- Menyediakan versi terjemahan situs web untuk memberdayakan pengujung di seluruh dunia untuk belajar mengenai Ethereum dalam bahasa ibu mereka -- Memfasilitasi penyesuaian lebih banyak anggota ke komunitas Ethereum global -- Memungkinkan informasi dan pengetahuan Ethereum yang lebih mudah diakses dan dibagikan secara inklusif -- Memberdayakan anggota komunitas untuk mengontribusikan terjemahan ke Ethereum dan membuat tanda mereka di ekosistem -- Mengidentifikasi, menghubungkan dengan, dan menyediakan panduan kepada kontributor bergairah yang ingin terlibat dalam ekosistem - -**Visi kami** - -- Menerjemahkan konten penting untuk anggota komunitas Ethereum dari negara dan belahan dunia sebanyak mungkin -- Mendukung berbagi pengetahuan antar bahasa untuk menciptakan komunitas Ethereum yang lebih terinformasi dan terdidik -- Meningkatkan inklusivitas dan aksesibilitas Ethereum dengan menghilangkan hambatan bahasa yang menghalangi penutur non-Inggris bergabung dengan ekosistem - -## Cara menerjemahkan {#how-to-translate} - - - Kami menyarankan Anda untuk melihat Panduan Gaya Penerjemahan ethereum.org. Ini berisi beberapa panduan, instruksi, dan tips yang paling penting bagi para penerjemah dan bisa menjadi rujukan saat melokalkan situs web. - {" "}Lihat Panduan Gaya Penerjemahan - - -1. **[Bergabung dengan projek kami di Crowdin](https://crowdin.com/project/ethereum-org/invite)** - Anda harus masuk ke akun Crowdin atau mendaftar jika belum memilikinya. Yang diperlukan untuk mendaftar hanyalah akun email dan kata sandi. - -2. **Buka bahasa yang ingin Anda terjemahkan dan cari dokumen yang akan dikerjakan** - Konten situs web dibagi menjadi beberapa versi dokumen dan bahasa. Anda dapat memeriksa kemajuan setiap dokumen di sebelah kanan – jika kemajuan terjemahan di bawah 100%, silakan beri kontribusi! - - Tidak melihat bahasa Anda dicantumkan? [Buat masalah](https://github.com/ethereum/ethereum-org-website/issues/new/choose) atau ajukan pertanyaan di [Discord](https://discord.gg/ethereum-org) kami - - ![File yang diterjemahkan dan tidak diterjemahkan di Crowdin](./crowdin-files.png) - - Catatan tentang versi konten: kami menggunakan 'ember konten' di dalam Crowdin untuk membuat konten berprioritas tertinggi dirilis terlebih dahulu. Ketika Anda memeriksa sebuah bahasa, misalkan, [Filipina](https://crowdin.com/project/ethereum-org/fil#) Anda akan melihat folder untuk ember konten ("1. Halaman beranda", "2. Gunakan Halaman Ethereum", dll.). - - Kami mendorong Anda untuk menerjemahkan dalam urutan numerik ini (1 → 2 → 3 → ⋯) untuk memastikan halaman dengan dampak tertinggi diterjemahkan terlebih dahulu. - - [Pelajari selengkapnya tentang versi konten ethereum.org](/contributing/translation-program/content-versions/) - -3. **Terjemahkan** - Setelah memilih file yang ingin diterjemahkan, file itu akan terbuka di editor online. Jika belum pernah menggunakan Crowdin sebelumnya, Anda dapat menggunakan panduan cepat ini untuk melihat dasar-dasarnya. - - ![Editor online Crowdin](./online-editor.png) - - **_1 – Sidebar kiri_** - - - Belum diterjemahkan (merah) – teks yang belum dikerjakan. Ini adalah string yang harus Anda terjemahkan. - - Diterjemahkan (hijau) – teks yang telah diterjemahkan, tetapi belum ditinjau. Anda diperbolehkan untuk menyarankan terjemahan alternatif, atau memilih yang sudah ada dengan menggunakan tombol ‘’+’’ dan ‘’-‘‘ di editor. - - Disetujui (tanda centang) – teks yang telah ditinjau dan saat ini berada di situs web. - - Anda juga dapat menggunakan tombol di atas untuk mencari string tertentu, memfilternya berdasarkan status atau mengubah tampilan. - - **_2 – Area editor_** - - Area terjemahan utama – teks sumber ditampilkan di atas, dengan konteks dan tangkapan layar tambahan, jika tersedia. Untuk menyarankan terjemahan baru, masukkan terjemahan Anda di kolom ‘’Enter translation here’’ dan klik Save. - - Anda juga dapat menemukan terjemahan string dan terjemahan yang ada ke dalam bahasa lain di bagian ini, serta kecocokan memori terjemahan dan saran terjemahan mesin. - - **_3 – Sidebar kanan_** - - Di sinilah Anda dapat menemukan komentar, memasukkan entri memori terjemahan, dan glosarium. Tampilan default menunjukkan komentar dan memungkinkan penerjemah untuk berkomunikasi, mengangkat masalah, atau melaporkan terjemahan yang salah. - - Dengan menggunakan tombol di atas, Anda juga dapat beralih ke Translation Memory, tempat Anda dapat mencari terjemahan yang ada, atau ke Glosarium, yang terdiri dari deskripsi dan terjemahan standar istilah utama. - - Ingin mempelajari selengkapnya? Jangan ragu untuk memeriksa [dokumentasi tentang menggunakan editor online Crowdin](https://support.crowdin.com/online-editor/) - -4. **Proses peninjauan** - Setelah Anda menyelesaikan terjemahan (yaitu semua file untuk tampilan versi konten sudah 100%), layanan terjemahan profesional kami akan meninjau (dan berpotensi mengedit) konten. Setelah peninjauan selesai (yaitu kemajuan peninjauan sudah 100%), kami akan menambahkannya ke situs web. - - - Harap tdak menggunakan terjemahan mesin untuk menerjemahkan proyek tersebut. Semua terjemahan akan diulas sebelum ditambahkan ke situs web. Jika terjemahan usulan Anda didapati sebagai diterjemahkan mesin, terjemahan akan ditolak dan para kontributor yang sering menggunakan terjemahan mesin akan dikeluarkan dari proyek. - - -Ada pertanyaan? Atau ingin kolaborasi dengan tim kami atau penerjemah lainnya? Silakan posting di kanal #translations dari server [Discord ethereum.org](https://discord.gg/ethereum-org) kami - -Anda juga dapat menghubungi kami ke translations@ethereum.org - -Terima kasih atas partisipasi Anda dalam Program Terjemahan ethereum.org! - -**Jam kerja untuk para penerjemah** - -Ada jam kerja bagi para penerjemah pada hari Rabu kedua setiap bulannya. Ini diadakan di kanal suara #office-hours di [Discord ethereum.org](https://discord.gg/geKhWjtF), tempat Anda juga dapat menemukan waktu yang tepat dan detail tambahannya. - -Tujuan dari jam kerja adalah untuk memungkinkan para penerjemah kami menanyakan pertanyaan tentang proses penerjemahan, memberikan umpan balik tentang program, membagikan ide-ide mereka, atau hanya sekadar mengobrol dengan kami. Para peserta juga dapat belajar lebih banyak tentang program penerjemahan dan mendapatkan beberapa informasi tentang menjadi penerjemah ethereum.org. Terakhir, kami ingin menggunakan panggilan ini untuk mengomunikasikan pengembangan terkini tentang program penerjemahan dan membagikan tips serta instruksi kunci dengan para kontributor kami. - -Jika Anda adalah seorang penerjemah ethereum.org atau ingin menjadi salah satunya, silakan bergabung dengan kami dalam salah satu sesi ini. - - - Jika Anda membantu kami dengan terjemahan, Anda mungkin menemukan beberapa informasi yang berguna dalam Pertanyaan yang Sering Diajukan tentang terjemahan kami. - {" "}Pertanyaan yang Sering Diajukan tentang menerjemahkan ethereum.org - - -## Sumber Daya {#resources} - -### Panduan {#guides} - -- [Panduan Gaya Penerjemahan](/contributing/translation-program/translators-guide/) _– Instruksi dan tips untuk penerjemah ethereum.org_ -- [Pertanyaan yang Sering Diajukan tentang penerjemahan](/contributing/translation-program/faq/) _– Pertanyaan yang paling sering diajukan dan jawabannya tentang Program Penerjemahan ethereum.org_ -- [Versi konten](/contributing/translation-program/content-versions/) _– halaman mana yang termasuk dalam setiap versi konten ethereum.org_ - -### Perangkat {#tools} - -- [Portal Bahasa Microsoft](https://www.microsoft.com/en-us/language) _– berguna untuk menemukan dan memeriksa terjemahan standar istilah_ -- [Linguee](https://www.linguee.com/) _– mesin pencarian khusus terjemahan dan kamus yang memungkinkan pencarian berdasarkan kata atau frasa_ -- [Pencarian istilah Proz](https://www.proz.com/search/) _– database kamus terjemahan dan glosarium untuk istilah khusus_ -- [Eurotermbank](https://www.eurotermbank.com/) _– koleksi terminologi Eropa dalam 42 bahasa_ - -### Komunitas {#communities} - -- [Grup penerjemahan Discord khusus bahasa](https://discord.gg/ethereum-org) _– sebuah inisiatif untuk menghubungkan para penerjemah ethereum.org ke dalam Grup Penerjemahan_ -- [Grup penerjemah bahasa Mandarin](https://www.notion.so/Ethereum-org-05375fe0a94c4214acaf90f42ba40171) _– Halaman gagasan untuk memudahkan koordinasi di antara para penerjemah bahasa Mandarin_ - -### Pembaruan terbaru {#latest-updates} - -Untuk tetap mendapatkan info terkini tentang kemajuan Program Terjemahan terbaru, Anda dapat mengikuti [blog Yayasan Ethereum](https://blog.ethereum.org/): - -- [Pembaruan tonggak pencapaian Oktober 2021](https://blog.ethereum.org/2021/10/04/translation-program-update/) -- [Pembaruan tonggak pencapaian Desember 2020](https://blog.ethereum.org/2020/12/21/translation-program-milestones-updates-20/) -- [Pembaruan tonggak pencapaian Juli 2020](https://blog.ethereum.org/2020/07/29/ethdotorg-translation-milestone/) -- [Peluncuran Program Terjemahan Agustus 2019](https://blog.ethereum.org/2019/08/20/translating-ethereum-for-our-global-community/) - -## Terjemahan Launchpad Penaruhan Ethereum {#staking-launchpad} - -Komunitas terjemahan kami juga sedang mengerjakan [Launchpad Penaruhan](https://launchpad.ethereum.org/en/). Ini memperbolehkan siapa saja untuk mengatur validator Ethereum dan membantu mengamankan jaringan Ethereum. Launchpad saat ini terdiri dari 17 bahasa. - -Jika Anda tertarik, [ikuti projek terjemahan Launchpad Penaruhan Ethereum di Crowdin](https://crowdin.com/project/ethereum-staking-launchpad). Anda dapat [membuat masalah](https://github.com/ethereum/staking-launchpad/issues/new) di GitHub untuk meminta penambahan bahasa baru, jika bahasa Anda tidak tersedia di Crowdin. diff --git a/src/content/translations/id/dao/index.md b/src/content/translations/id/dao/index.md deleted file mode 100644 index dd17318e0b0..00000000000 --- a/src/content/translations/id/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: Organisasi otonom terdesentralisasi (DAO) -description: Gambaran umum tentang DAO di Ethereum -lang: id -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: Sebuah representasi DAO yang mengambil suara untuk sebuah usulan. -summaryPoint1: Komunitas yang dimiliki anggota tanpa kepemimpinan terpusat. -summaryPoint2: Cara yang aman untuk berkolaborasi dengan orang asing di internet. -summaryPoint3: Tempat yang aman untuk menyuntikkan dana untuk tujuan tertentu. ---- - -## Apa itu DAO? {#what-are-daos} - -DAO adalah organisasi yang dimiliki bersama, dikelola dengan rantai blok yang bertujuan untuk berbagi misi. - -DAO memungkinkan kita bekerja dengan orang-orang yang sepemikiran dari seluruh dunia tanpa harus mempercayai seorang pemimpin untuk mengelola dana atau menjalankan operasinya. Tidak ada seorang CEO yang bisa menghabiskan dana sembarangan atau CFO yang memanipulasi pembukuan. Selain itu, peraturan berbasis rantai blok dibuat dalam kode yang menunjukkan bagaimana organisasi bekerja dan bagaimana dananya digunakan. - -Mereka memiliki perbendaharaan bawaan yang tidak dapat diakses oleh siapa pun tanpa persetujuan grup. Keputusan diputuskan dengan proposal dan voting untuk meyakinkan semua orang di organisasi ini punya hak suara dan semua terjadi secara transparan di dalam rantai. - -## Mengapa kita membutuhkan DAO? {#why-dao} - -Memulai sebuah organisasi dengan seseorang yang melibatkan pendanaan dan uang membutuhkan kepercayaan besar terhadap orang-orang yang bekerja sama dengan Anda. Tetapi sulit untuk mempercayai seseorang yang jarang berinteraksi dengan Anda di internet. Dengan DAO, Anda tidak perlu mempercayai siapa pun di dalam grup, cukup percaya pada kode DAO-nya, yang 100% terbuka dan dapat diverifikasi oleh siapa saja. - -Ini membuka banyak peluang baru untuk kolaborasi dan koordinasi global. - -### Perbandingan {#dao-comparison} - -| DAO | Organisasi tradisional | -| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | -| Biasanya datar, dan sepenuhnya demokratis. | Biasanya berhierarki. | -| Pengambilan suara diperlukan oleh para anggotanya untuk mengimplementasikan perubahan apa pun. | Bergantung pada struktur, perubahan dapat diminta oleh satu pihak, atau pengambilan suara dapat ditawarkan. | -| Suara dihitung, hasilnya secara otomatis diimplementasikan tanpa memerlukan perantara terpercaya. | Jika pengambilan suara memungkinkan, suara dihitung secara internal, dan hasilnya harus ditangani secara manual. | -| Layanan yang ditawarkan ditangani secara otomatis dalam cara yang terdesentralisasi (misalnya pembagian dana amal). | Memerlukan penanganan manusia, atau otomatisasi yang dikontrol secara terpusat, yang cenderung mengarah pada manipulasi. | -| Semua aktivitas bersifat transparan dan diketahui secara umum. | Aktivitas umumnya bersifat privat, dan terbatas untuk diketahui publik. | - -### Contoh DAO {#dao-examples} - -Untuk membantu memahaminya, berikut adalah beberapa contoh cara menggunakan DAO: - -- Amal - Anda dapat menerima donasi dari siapapun di dunia atau memilih isu apa yang mau Anda danai. -- Kepemilikan bersama - Anda bisa memmbeli barang digital atau fisik para dan anggotabisa menentukan bagaimana menggunakan barang tersebut. -- Perusahaan patungan dan hibah – Anda dapat membuat dana patungan yang memasukkan dana modal dalam pool dan mengambil suara untuk menarik dananya. Uang yang dibayarkan kembali dapat dibagikan kembali nantinya di antara para anggota DAO. - -## Bagaimana cara kerja DAO? {#how-daos-work} - -Penyokong utama DAO adalah kontrak pintar, yang menentukan aturan organisasi dan pengelolaan dana bersama. Setelah kontrak dijalankan di Ethereum, tidak ada seorang pun yang dapat mengubah aturannya kecuali melalui pengambilan suara. Jika siapa pun mencoba melakukan sesuatu yang tidak tercakup dalam aturan dan logika kode, ini akan gagal. Dan karena perbendaharaan ditentukan oleh kontrak pintar juga, itu berarti tidak seorang pun dapat memakai uang kas tanpa persetujuan grup. Ini berarti DAO tidak memerlukan otoritas terpusat. Selain itu, keputusan kelompok ditentukan secara bersama, dan pembayaran otomatis disahkan ketika para pemilik suara sudah menentukan. - -Ini mungkin terjadi karena kontrak pintar bersifat tahan perubahan setelah dijalankan di Ethereum. Anda tidak bisa hanya mengedit kode (aturan DAO) tanpa diketahui orang-orang karena semua hal terbuka untuk publik. - - - Lebih lanjut tentang kontrak pintar - - -## Ethereum dan DAO {#ethereum-and-daos} - -Ethereum adalah fondasi sempurna untuk DAO dikarenakan beberapa alasan: - -- Konsensus yang dimiliki Ethereum terdistribusi dan cukup mapan jaringannya untuk dipercaya oleh organisasi. -- Kode kontrak pintar tidak dapat diubah setelah dijalankan, sekalipun oleh pemiliknya. Ini memungkinkan DAO dijalankan sesuai aturan yang dirpogram dengannya. -- Kontrak pintar dapat mengirim/menerima dana. Tanpa ini, Anda akan memerlukan perantara terpercaya untuk mengelola dana grup. -- Komunitas Ethereum telah terbukti lebih kolaboratif daripada kompetitif, yang memungkinkan praktik terbaik dan sistem dukungan dengan cepat berkembang. - -## Pengelolaan DAO {#dao-governance} - -Banyak pertimbangan dalam pengelolaan DAO, misalnya seperti bagaimana pemungutan suara dan bagaimana cara kerja proposal. - -### Delegasi {#governance-delegation} - -Delegasi dalam DAO seperti demokrasi perwakilan dalam dunia nyata. Pemegang token mendelegasikan suaranya kepada pengguna yang mereka nominasikan dan berkomitmen menjaga protokol serta terus memantaunya. - -#### Contoh yang terkenal {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) – Pemegang ENS bisa mendelegasikan suaranya kepada anggota komunitas yang mewakilinya. - -### Pengelolaan Transaksi Otomatis {#governance-example} - -Dalam beberapa DAO, transaksi akan terjadi secara otomatis jika para anggota secara quorum memilihnya. - -#### Contoh yang terkenal {#governance-example} - -[Nouns](https://nouns.wtf) – Dalam DAO Nouns, transaksi otomatis terjadi jika pemilik suara secara quorum memilih dan secara mayoritas menyepakati, selama pilihan itu tidak diveto oleh pada pendiri. - -### Pengelolaan Multisig {#governance-example} - -DAO bisa memiliki anggota hingga ribuan suara, dananya bisa disimpan dalam dompet yang kelola bersama oleh 5-20 anggota komunitas yang aktif, terpecaya, dan biasanya dikenal (identitas mereka diketahui publik). Setelah dipilih, penanda multisig melaksanakan amanat komunitas. - -## Hukum DAO {#dao-laws} - -Pada tahun 1977, negara bagian Wyoming menemukan LLC, bentuk usaha yang melindungi pengusaha dan membatasi tanggung jawab mereka. Belum lama ini, mereka mempelopori hukum DAO yang mengakui legalitas hukum bagi DAO. Kini, Wyoming, Vermont dan Virgin Islands punya hukum DAO dalam beberapa bentuk. - -#### Contoh yang terkenal {#law-example} - -[CityDAO](https://citydao.io) – CityDAO menggunakan hukum DAO Wyoming untuk membeli tanah seluas 40 acre di dekat Taman Nasional Yellowstone. - -## Keanggotaan DAO {#dao-membership} - -Ada berbagai model untuk keanggotaan DAO. Keanggotaan dapat menentukan cara kerja pengambilan suara dan bagian utamai DAO lainnya. - -### Keanggotaan berbasis token {#token-based-membership} - -Biasanya sepenuhnya tanpa izin, tergantung pada token yang digunakan. Biasanya, token pengelola ini bisa diperdagangkan tanpa izin di bursa terdesentralisasi. Pihak lain, bisa mendapatkan token ini dengan menyediakan likuiditas dana atau melakukan 'bukti kerja'. Dengan cara mana pun, cukup dengan memiliki token ini memberikan akses untuk mengambil suara. - -_Umumnya dipakai untuk mengatur protokol terdesentralisasi yang luas dan/atau token itu sendiri._ - -#### Contoh yang terkenal {#token-example} - -[MakerDAO](https://makerdao.com) – MKR, token MakerDAO tersedia di bursa terdesentralisasi dan bisa dibeli jika ingin punya hak suara di Protokol Maker. - -### Keanggotaan berbasis saham {#share-based-membership} - -DAO berbasis saham lebih diizinkan, tetapi masih cukup terbuka. Semua anggota bisa mengajukan usulan kepada DAO, biasanya disediakan imbalan berbentuk token atau karya. Saham mewakili hak memberikan suara secara langsung dan kepemilikan. Anggota bisa mundur kapan saja sesuai dengan porsi saham mereka. - -_Biasanya digunakan untuk organisasi yang interaksinya lebih erat dan berfokus pada manusia seperti badan amal, asosiasi pekerja, dan klub investasi. Dapat juga mengatur protokol serta token._ - -#### Contoh yang terkenal {#share-example} - -[MolochDAO](http://molochdao.com/) – MolochDAO berfokus pada pendanaan proyek Ethereum. Mereka membutuhkan proposal untuk keanggotaan, sehingga grup dapat menilai apakah Anda memiliki keahlian dan modal yang diperlukan untuk membuat penilaian yang tepat tentang calon penerima hibah. Anda tidak bisa membeli saja akses ke DAO ini di pasar terbuka. - -### Keanggotaan Berbasis Reputasi {#reputation-based-membership} - -Reputasi menunjukkan bukti partisipasi dan diganjar dengan hak suara dalam DAO. Tidak seperti token atau keanggotaan berbasis saham, DAO berbasis reputasi tidak bisa dipindahtangankan kepemilikannya kepada kontributor. Reputasi tak bisa dibeli, dipindahtangankan atau didelegasikan; anggota DAO harus memperolehnya dengan berpartisipasi. Pemungutan suara di dalam rantai itu tak perlu izin dan calon anggota bebas mengajukan usulan untuk bergabung ke dalam DAO dan mendapatkan reputasi dan token sebagai imbalan atas kontribusi mereka. - -_Umumnya digunakan untuk pengembangan dan pengelolaan protokol yang terdesentralisasi serta dapps, juga cocok untuk beragam organisasi seperti badan amal, kolektif pekerja, grup investasi dll._ - -#### Contoh yang terkenal {#reputation-example} - -[DXdao](https://DXdao.eth.link) – DXdao adalah protokol dan aplikasi terdesentralisasi yang berdaulat untuk kelompok pembuat dan pengelolaan sejak 2019. Aplikasi terdesentralisasi ini memanfaatkan pengelolaan berbasis reputasi dan konsensus holografik untuk mengoordinasi dan mengelola dana, artinya tak ada yang memengaruhi pilihan mereka di masa datang. - -## Bergabung / Mulai Buat DAO {#join-start-a-dao} - -### Bergabung dengan DAO {#join-a-dao} - -- [DAO komunitas Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [Daftar DAO DAOHaus](https://app.daohaus.club/explore) -- [Daftar DAO Tally.xyz](https://www.tally.xyz) - -### Memulai DAO {#start-a-dao} - -- [Memanggil DAO dengan DAOHaus](https://app.daohaus.club/summon) -- [Mulai Menglola DAO dengan Tally](https://www.tally.xyz/add-a-dao) -- [Membuat DAO yang didukung oleh Aragon](https://aragon.org/product) -- [Memulai koloni](https://colony.io/) -- [Membuat DAO dengan DAOstack konsensus holografik](https://alchemy.daostack.io/daos/create) - -## Bacaan lebih lanjut {#further-reading} - -### Artikel tentang DAO {#dao-articles} - -- [Apa itu DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) -- [Buku Pedoman DAO](https://daohandbook.xyz) -- [Rumah DAO](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) -- [Apa itu DAO dan apa kegunaannya?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) -- [Cara Memulai Komunitas Digital yang Didukung oleh DAO](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) -- [Apa itu DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) -- [Apa itu Konsensus Holografik?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) -- [DAO bukanlah perusahaan: desentralisasi adalah masalah organisasi terotomasi oleh Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) -- [DAO, DAC, DA dan lainnya: Panduan Terminologi Lengkap](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Ethereum Blog](https://blog.ethereum.org) - -### Video {#videos} - -- [Apa itu DAO dalam kripto?](https://youtu.be/KHm0uUPqmVE) -- [Bisakah DAO dipakai membangun sebuah kota?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/src/content/translations/id/decentralized-identity/index.md b/src/content/translations/id/decentralized-identity/index.md deleted file mode 100644 index 653ac147b59..00000000000 --- a/src/content/translations/id/decentralized-identity/index.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: Identitas terdesentralisasi -description: Apa yang dimaksud dengan indentitas terdesentralisasi, dan mengapa itu penting? -lang: id -template: use-cases -emoji: ":id:" -sidebarDepth: 2 -image: ../../../../assets/eth-gif-cat.png -summaryPoint1: Sistem Identitas konvensional memiliki penerbitan, pemeliharaan, dan kontrol yang tersentralisasi dari seluruh tanda pengenal Anda. -summaryPoint2: Identitas yang terdesentralisasi menghilangkan ketergantungan pada pihak ketiga yang tersentralisasi. -summaryPoint3: Berkat crypto, para pengguna sekarang memiliki perangkat untuk mengeluarkan, menahan, dan mengontrol pengenal dan pengesahan mereka sendiri sekali lagi. ---- - -Identitas menopang hampir setiap aspek kehidupan Anda hari ini. Menggunakan layanan daring, membuka akun bank, memberikan suara dalam pemilihan umum, membeli properti, mendapatkan pekerjaan—semua ini memerlukan pembuktian identitas Anda. - -Tetapi, sistem pengelolaan identitas telah bergantung pada pihak ketiga yang menerbitkan, menyimpan, dan mengendalikan tanda pengenal dan [pengesahan](#what-are-attestations) Anda. Ini berarti Anda tidak dapat mengontrol informasi terkait identitas Anda atau memutuskan siapa yang memiliki akses ke informasi pengenal pribadi (PII) dan seberapa banyak akses yang dimiliki pihak-pihak tersebut. - -Untuk mengatasi masalah ini, kami memiliki sistem identitas terdesentralisasi yang dibangun di atas rantai blok publik seperti Ethereum. Indentitas yang terdesentralisasi memungkinkan seseorang mengatur informasi terkait identitas mereka. Dengan solusi identitas yang terdesentralisasi, _Anda_ dapat membuat tanda pengenal dan mengklaim serta menyimpan pengesahan tanpa perlu bergantung pada oknum pusat, seperti penyedia layanan atau pemerintah. - -## Apa itu identitas? {#what-is-identity} - -Identitas berarti rasa diri individu, yang ditentukan oleh karakteristik unik. Identitas mengacu pada keberadaan _individu_, yaitu entitas manusia yang berbeda. Identitas juga bisa merujuk pada entitas non-manusia lainnya, misalnya organisasi atau otoritas. - -## Apa itu tanda pengenal? {#what-are-identifiers} - -Tanda pengenal adalah sepotong informasi yang bertindak sebagai penunjuk ke identitas atau identitas tertentu. Identifikasi umum meliputi: - -- Nama -- Nomor jaminan sosial/nomor ID pajak -- Nomor handphone -- Tanggal dan tempat lahir -- Kredensial identifikasi digital, misalnya, alamat email, nama pengguna, avatar - -Contoh tanda pengenal tradisional tersebut dikeluarkan, dipegang, dan dikendalikan oleh entitas pusat. Anda memerlukan izin dari pemerintah Anda untuk mengubah nama Anda atau dari platform media sosial untuk mengubah nama Anda. - -## Apa itu pengesahan? {#what-are-attestations} - -Sebuah pengesahan adalah suatu klaim yang dibuat oleh satu entitas terhadao entitas lainnya. Jika Anda hidup di Amerika Serikat, surat izin mengemudi yang diterbitkan untuk Anda dari departemen kendaraan bermotor (sebuah entitas) membuktikan bahwa Anda (entitas lainnya) telah diizinkan mengemudikan mobil secara legal. - -Pengesahan berbeda dari tanda pengenal. Sebuah pengesahan _memiliki_ tanda pengenal yang merujuk pada identitas tertentu, dan membuat klaim mengenai sebuah atribut yang terkait dengan identitas ini. Jadi, surat izin mengemudi Anda tidak hanya memiliki tanda pengenal (nama, tanggal lahir, alamat), namun juga memiliki pengesahan mengenai hak legal Anda untuk mengemudi. - -### Apa itu identifikasi terdesentralisasi? {#what-are-decentralized-identifiers} - -Tanda pengenal konvensional seperti nama legal Anda atau alamat email yang bergantung pada pihak-pihak ketiga - pemerintah dan penyedia layanan. Berbeda dengan berbagai tanda pengenal terdesentralisasi (DID), yang tidak diterbitkan. dikelola, atau dikendalikan oleh entitas pusat mana pun. - -Tanda pengenal terdesentralisasi diterbitkan, disimpan, dan dikendalikan oleh perorangan. Suatu [akun Ethereum](/developers/docs/accounts/) adalah sebuah contoh dari tanda pengenal yang terdesentralisasi. Anda dapat membuat akun-akun sebanyak yang Anda inginkan tanpa izin dari siapa pun dan tanpa perlu menyimpannya di suatu pusat penyimpanan. - -Tanda pengenal terdesentralisasi disimpan pada buku besar yang terdistribusi (rantai blok) atau jaringan peer-to-peer. Hal ini menjadikan DID (tanda pengenal terdesentralisasi) [unik secara global, mampu menyelesaikan masalah, dan dapat diverifikasi secara kriptografi](https://w3c-ccg.github.io/did-primer/). Sebuah tanda pengenal terdesentralisasi dapat diasosiasikan dengan entitas berbeda, seperti perorangan, organisasi, atau institusi pemerintahan. - -## Apa yang menjadikan tanda pengenal terdesentralisasi mungkin? {#what-makes-decentralized-identifiers-possible} - -### 1. Infrastruktur kunci publik (PKI) {#public-key-infrastructure} - -Infrastruktur kunci publik (PKI) adalah suatu informasi pengukuran keamanan yang menciptakan sebuah [kunci publik](/glossary/#public-key) dan [kunci pribadi](/glossary/#private-key) untuk sebuah entitas. Kriptografi dari kunci publik digunakan pada jaringan rantai blok untuk mengautentikasi identitas pengguna dan membuktikan kepemilikan dari aset digital. - -Beberapa tanda pengenal terdesentralisasi, contohnya adalah akun Ethereum, mempunyai kunci publik dan kunci privat. Kunci publik mengidentifikasi pengendali akun, sedangkan kunci privat dapat menandatangani dan mendekripsikan pesan yang ditujukan pada sebuah akun. Infrastruktur kunci publik (PKI) menyediakan bukti-bukti yang diperlukan untuk mengautentikasi berbagai entitas dan mencegah peniruan dan penggunaan identitas palsu, menggunakan [tanda tangan kriptografi](https://andersbrownworth.com/blockchain/public-private-keys/) untuk memverifikasi seluruh klaim. - -### 2. Penyimpanan data terdesentralisasi {#decentralized-datastores} - -Sebuah rantai blok berperan sebagai catatan data yang dapat diverifikasi: sebuah tempat penyimpanan yang terbuka, tanpa perlu kepercayaan, dan terdesentralisasi. Adanya rantai blok publik menghapuskan kebutuhan untuk menyimpan tanda pengenal di penyimpanan yang terpusat. - -Jika siapa pun perlu untuk mengonfirmasi validitas dari sebuah tanda pengenal terdesentralisasi, mereka dapat mencari kunci publik yang berasosiasi pada rantai blok tersebut. Hal ini berbeda dari tanda pengenal yang memerlukan pihak ketiga untuk melakukan autentikasi. - -## Bagaimana tanda pengenal terdesentralisasi dan pengesahan memungkinkan identitas yang terdesentralisasi? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} - -Identitas terdesentralisasi adalah ide bahwa informasi terkait identitas sebaiknya dikontrol secara mandiri, pribadi, dan mudah diakses, dengan tanda pengenal dan pengesahan yang menjadi blok bangunan utama. - -Dalam konteks identitas terdesentralisasi, pengesahan (juga dikenal dengan [Kredensial yang dapat diverifikasi](https://www.w3.org/TR/vc-data-model/)) merupakan pencegahan penyalahgunaan dengan klaim yang dibuat oleh penerbit dapat diverifikasi secara kriptogarfi. Setiap pengesahan atau kredensial yang dapat diverifikasi dari sebuah entitas (seperti organisasi) yang diterbitkan berasosiasi dengan DIDnya (tanda pengenal terdesentralisasi). - -Karena DID disimpan dalam rantai blok, semua orang dapat memverifikasi validitas dari sebuah pengesahan dengan melakukan cross-check pada DID penerbit di Ethereum. Pada dasarnya, rantai blok Ethereum berperan seperti penyimpanan global yang memungkinkan verifikasi DID yang berasosiasi dengan entitas tertentu. - -Indentitas terdesentralisasi adalah alasan berbagai pengesahan dapat dikendalikan mandiri dan dapat diverifikasi. Bahkan jika penerbit sudah tidak ada, pemegang selalu memiliki bukti dari pembentukan pengesahan dan validitasnya. - -Tanda pengenal terdesentralisasi juga penting untuk mengamankan privasi dari informasi pribadi melalui identitas yang terdesentralisasi. Sebagai contoh, jika seseorang mengajukan bukti dari sebuah pengesahan (surat izin mengemudi), pihak yang memverifikasi tidak perlu mengecek validitas informasi dari bukti tersebut. Melainkan, pihak yang memverifikasi hanya perlu jaminan kriptografi dari keaslian pengesahan dan identitas dari organisasi untuk menentukan bukti tersebut valid. - -## Tipe-tipe pengesahan dalam identitas terdesentralisasi {#types-of-attestations-in-decentralized-identity} - -Bagaimana informasi pengesahan disimpan dan dikumpulkan dalam ekosistem identitas berbasis Ethereum berbeda dari pengelolaan identitas konvensional. Berikut adalah garis besar dari berbagai pendekatan terkait penerbitan, penyimpanan, dan verifikasi pengesahan dalam sistem identitas terdesentralisasi: - -### Pengesahan di luar rantai {#off-chain-attestations} - -Salah satu pertimbangan terhadap penyimpanan pengesahan di dalam rantai adalah terdapatnya informasi seseorang yang ingin disimpan secara pribadi. Ethereum rantai blok yang bersifat publik menjadikannya tidak menarik untuk menyimpan pengesahan. - -Solusinya adalah penerbitan pengesahan yang dipegang oleh pengguna secara di luar rantai dalam dompet digital, namun ditanda tangani dengan DID penerbit yang disimpan di dalam rantai. Pengesahan ini dikodekan sebagai [Token Web JSON](https://en.wikipedia.org/wiki/JSON_Web_Token) dan mempunyai tanda tangan digital penerbit yang memudahkan verifikasi untuk klaim off-chain. - -Berikut adalah skenario hipotesis untuk menjelaskan pengesahan di luar rantai: - -1. Sebuah universitas (penerbit) membuat sebuah pengesahan (serifikat akademi digital), ditandai dengan kunci-kuncinya, dan diterbitkan untuk Bob (pemilik identitas). - -2. Bob melamar pekerjaan dan hendak membuktikan kualifikasi akademiknya pada penyedia kerja, jadi dia membagikan pengesahan dari dompet ponselnya. Perusahaan (yang memberifikasi) berikutnya dapat mengonfirmasi validitas dari pengesahan dengan memeriksa DID penerbit (seperti kunci publiknya di Ethereum). - -### Pengesahan di luar rantai dengan akses tetap {#offchain-attestations-with-persistent-access} - -Pada persetujuan ini, pengesahan diubah menjadi file JSON dan disimpan secara di luar rantai (idealnya pada platform [penyimpanan cloud terdesentralisasi](/developers/docs/storage/), seperti IPFS atau Swarm). Namun, [hash](/glossary/#hash) dari file JSON disimpan di dalam rantai dan ditautkan ke DID melalui registri di dalam rantai. DID yang terkait dapat berupa penerbit dari pengesahan tersebut atau penerimanya. - -Pendekatan ini memungkinkan sebuah pengesahan untuk mendapatkan persistensi berbasis rantai blok, sekaligus menjaga agar informasi klaim tetap terenkripsi dan dapat diverifikasi. Hal ini juga memungkinkan pemberitahuan rahasia terbatas karena pemegang kunci pribadi dapat mendekripsi informasi. - -### Pengesahan di dalam rantai {#onchain-attestations} - -Pengesahan di dalam rantai disimpan dalam [kontrak pintar](/developers/docs/smart-contracts/) pada rantai blok Ethereum. Kontrak pintar (bertindak sebagai catatan) akan memetakan pengesahan ke tanda pengenal terdesentralisasi di dalam rantai yang sesuai (sebuah kunci publik). - -Berikut contoh bagaimana cara kerja pengesahan di dalam rantai praktiknya: - -1. Sebuah perusahaan (XYZ Corp) berencana untuk menjual saham kepemilikan menggunakan kontrak pintar, namun hanya untuk pembeli yang telah menyelesaikan pemeriksaan latar belakang saja. - -2. XYZ Corp dapat meminta perusahaan melakukan pemeriksaan latar belakang untuk menerbitkan pengesahan di dalam rantai pada Ethereum. Pengesahan ini memastikan bahwa seseorang telah lulus pemeriksaan latar belakang tanpa mengungkap informasi pribadi apa pun. - -3. Kontrak pintar yang menjual saham dapat memeriksa kontrak catatan untuk identitas para pembeli yang telah disaring, memungkinkan kontrak pintar untuk menentukan siapa yang diizinkan untuk membeli saham atau tidak. - -### Token dan identitas soulbond {#soulbound} - -[Token soulbound](https://vitalik.ca/general/2022/01/26/soulbound.html) (NFT yang tidak dapat ditransfer) dapat digunakan untuk mengumpulkan informasi khas untuk dompet tertentu. Hal ini menciptakan identitas di dalam rantai unik secara efektif yang terikat pada alamat Ethereum khusus yang dapat menyertakan token yang mewakili pencapaian (seperti menyelesaikan beberapa kursus daring tertentu atau melewati skor ambang batas dalam permainan) atau partisipasi komunitas. - -## Manfaat dari identitas yang terdesentralisasi {#benefits-of-decentralized-identity} - -1. Identitas terdesentralisasi meningkatkan kontrol individu untuk mengidentifikasi informasi. Pengidentifikasi dan pengesahan terdesentralisasi dapat diverifikasi tanpa bergantung pada otoritas terpusat dan layanan pihak ketiga. - -2. Solusi identitas yang terdesentralisasi menyediakan sebuah metode yang tidak membutuhkan kepercayaan, tanpa gangguan, dan perlindungan privasi untuk memverivikasi dan mengatur identitas pengguna. - -3. Identitas terdesentralisasi memanfaatkan teknologi rantai blok yang membangun kepercayaan antar pihak yang berbeda dan memberikan kriptografi sebagai jaminan untuk membuktikan validitas dari pengesahan. - -4. Identitas yang terdesentralisasi menjadukan data identitas portable. Pengguna menyimpan pengesahan dan tanda pengenal di dompet berjalan dan dapat dibagikan dengan berbagai pihak yang mereka pilih. Tanda pengenal dan pengesahan yang terdesentralisasi tidak terkunci dalam database organisasi penerbit. - -5. Identitas terdesentralisasi seharusnya bekerja dengan baik dengan munculnya teknologi zero-knowledge yang akan memungkinkan berbagai pihak untuk membuktikan bahwa mereka memiliki atau telah melakukan sesuatu tanpa mengungkapkan apa sesuatu yang dimaksud. Hal tersebut dapat menjadi cara yang kuat untuk mengkombinasikan kepercayaan dan privasi untuk aplikasi seperti voting. - -6. Identitas yang terdesentralisasi memungkinkan mekanisme anti-Sybil untuk mengidentifikasi kapanpun seseorang berpura-pura menjadi beberapa orang untuk mempermainkan atau melakukan spam pada sejumlah sistem. - -## Pemanfaatan Identitas terdesentralisasi {#decentralized-identity-use-cases} - -Identitas yang terdesentralisasi memiliki berbagai pontesi yang dapat dimanfaatkan: - -### 1. Login secara menyeluruh {#universal-dapp-logins} - -Identitas terdesentralisasi dapat membantu menggantikan login berdasarkan kata sandi menjadi [autentikasi terdesentralisasi](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). Penyedia layanan dapat menerbitkan pengesahan pada pengguna, yang dapat disimpan dalam dompet Ethereum. Sebuah contoh pengesahan adalah [NFT](/nft/) menyetujui akses kepemilikan pada komunitas daring. - -Sebuah fungsi [Sign-in dengan Ethereum](https://login.xyz/) akan memungkinkan server untuk mengonfirmasi akun ethereum pengguna dan mencocokkan pengesahan yang dibutuhkan dari alamat akun mereka. Ini dimaksudkan bahwa pengguna dapat mengakses banyak platform dan situs web tanpa harus mengingat kata sandi yang panjang dan meningkatkan pengalaman daring pada para pengguna. - -### 2. Autentikasi KYC {#kyc-authentication} - -Penggunaan berbagai layanan daring mengharuskan seseorang untuk menyediakan pengesahan dan kredensial, seperti surat izin mengemudai atau paspor nasional. Namun, pendekatan ini dapat menimbulkan masalah karena informasi pribadi dari pengguna dapat disusupi dan penyedia layanan tidak dapat memverifikasi keaslian dari pengesahan. - -Identitas terdesentralisasi memungkinkan perusahaan melewati berbagai proses konvensional [Kenali Pelanggan Anda (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) dan mengautentikasi identitas pengguna melalui kredensial yang dapat diverifikasi. Ini mengurangi biaya manajemen identitas dan mencegah penggunaan dokumentasi palsu. - -### 3. Pemungutan suara dan komunitas daring {#voting-and-online-communities} - -Pemungutan suara daring dan media sosial adalah dua aplikasi terkini dari identitas terdesentralisasi. Skema pemungutan suara daring rentan terhadap manipulasi, terutama jika ada oknum jahat yang membuat identitas palsu untuk memilih. Meminta individu untuk menunjukkan pengesahan di dalam rantai dapat meningkatkan integritas proses pemungutan suara daring. - -Identitas terdesentralisasi dapat membantu menciptakan komunitas daring yang bebas dari akun palsu. Misalnya, setiap pengguna mungkin harus mengautentikasi identitas mereka menggunakan sistem identitas di dalam rantai, seperti Ethereum Name Service, sehingga mengurangi kemungkinan bot. - -### 4. Perlindungan Anti-Sybil {#sybil-protection} - -Serangan Sybil mengacu pada individu manusia yang menipu suatu sistem untuk berpikir bahwa mereka adalah beberapa orang untuk meningkatkan pengaruhnya. [Aplikasi grant-giving](https://gitcoin.co/grants/) yang menggunakan [voting kuadrat](https://www.radicalxchange.org/concepts/plural-voting/) rentan terhadap serangan Sybil ini karena nilai grant meningkat ketika lebih banyak orang memilihnya, mendorong pengguna untuk membagi kontribusi mereka mewakili banyak identitas. Identitas terdesentralisasi membantu mencegah hal ini dengan meningkatkan bobot pada setiap peserta untuk membuktikan bahwa mereka benar-benar manusia, meski sering kali tanpa harus mengungkapkan informasi pribadi tertentu. - -## Identitas terdesentralisasi {#use-decentralized-identity} - -Ada banyak proyek ambisius yang menggunakan Ethereum sebagai landasan untuk solusi identitas terdesentralisasi, diantaranya: - -- **[Layanan Nama Ethereum (ENS)](https://ens.domains/)** - _Sistem penamaan terdesentralisasi untuk tanda pengenal on-chain yang dapat dibaca mesin, seperti alamat dompet Ethereum, konten hash, dan metadata._ -- **[SpruceID](https://www.spruceid.com/)** - _Proyek identitas terdesentralisasi yang memungkinkan pengguna mengontrol identitas digital dengan akun Ethereum dan profil ENS daripada mengandalkan layanan pihak ketiga._ -- **[Layanan Pengesahan Ethereum (EAS)](https://attest.sh/)** - _Buku besar/protokol terdesentralisasi untuk membuat pengesahan di dalam rantai atau di luar rantai tentang segala hal._ -- **[Proof of Humanity (PoH)](https://www.proofofhumanity.id)** - _Bukti Kemanusiaan adalah sistem verifikasi identitas sosial yang dibangun di Ethereum._ -- **[BrightID](https://www.brightid.org/)** - _Jaringan identitas sosial open source yang terdesentralisasi, berupaya mereformasi verifikasi identitas melalui pembuatan dan analisis grafik sosial._ -- **[Proof-of-personhood Passport](https://proofofpersonhood.com/)** - _Aggregator identitas digital terdesentralisasi._ - -## Bacaan lebih lanjut {#further-reading} - -### Artikel {#articles} - -- [Kasus Penggunaan Rantai Blok: Rantai Blok dalam Identitas Digital](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ -- [Apa itu Ethereum ERC725? Manajemen Identitas Mandiri di Rantai Blok](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Sam Town_ -- [Bagaimana Rantai Blok Dapat Memecahkan Masalah Identitas Digital](https://time.com/6142810/proof-of-humanity/) — _Andrew R. Chow_ -- [Apa Itu Identitas Terdesentralisasi Dan Mengapa Anda Harus Peduli?](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ - -### Video {#videos} - -- [Identitas Terdesentralisasi (Bonus Livestream Session)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Video penjelasan yang bagus tentang identitas terdesentralisasi oleh Andreas Antonopolous_ -- [Masuk dengan Ethereum dan Identitas Terdesentralisasi dengan Ceramic, IDX, React, dan 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _Tutorial YouTube tentang membangun sistem manajemen identitas untuk membuat, membaca, dan memperbarui profil pengguna menggunakan dompet Ethereum mereka oleh Nader Dabit_ -- [BrightID - Identitas Terdesentralisasi di Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _Episode podcast Bankless membahas BrightID, solusi identitas terdesentralisasi untuk Ethereum_ -- [Internet Di Luar Rantai: Identitas yang terdesentralisasi & Kredensial yang Dapat Diverifikasi](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — Presentasi EthDenver 2022 oleh Evin McMullen - -### Komunitas {#communities} - -- [Aliansi ERC-725 di GitHub](https://github.com/erc725alliance) — _Pendukung standar ERC725 untuk mengelola identitas pada rantai blok Ethereum_ -- [Server Discord SpruceID](https://discord.com/invite/Sf9tSFzrnt) — _Komunitas untuk para penggemar dan pengembang yang bekerja pada sign-in dengan Ethereum_ -- [Lab Veramo](https://discord.gg/sYBUXpACh4) — _Komunitas developer yang berkontribusi membangun kerangka kerja untuk memungkinkan verifikasi data untuk aplikasi_ diff --git a/src/content/translations/id/defi/index.md b/src/content/translations/id/defi/index.md deleted file mode 100644 index 0bf268fa606..00000000000 --- a/src/content/translations/id/defi/index.md +++ /dev/null @@ -1,352 +0,0 @@ ---- -title: Keuangan terdesentralisasi (DeFi) -description: Gambaran umum tentang DeFi di Ethereum -lang: id -template: use-cases -emoji: ":money_with_wings:" -image: ../../../../assets/use-cases/defi.png -alt: Logo Eth yang terbuat dari batu bata lego. -sidebarDepth: 2 -summaryPoint1: Alternatif terbuka dan global untuk sistem keuangan saat ini. -summaryPoint2: Produk yang memungkinkan Anda meminjam, menyimpan, berinvestasi, berdagang, dan banyak lagi. -summaryPoint3: Berdasarkan teknologi sumber terbuka yang dengannya siapa pun dapat memrogram. ---- - -DeFi adalah sebuah sistem keuangan terbuka dan global yang dibangun untuk zaman internet – sebuah alternatif untuk sistem yang tidak tembus pandang, dikontrol dengan ketat, dan diselenggarakan bersama oleh infrastruktur dan proses yang berusia puluhan tahun. Sistem yang memberi Anda kontrol dan visibilitas atas uang Anda. Memberi Anda paparan tentang pasar global dan alternatif untuk mata uang lokal atau opsi perbankan Anda. Produk DeFi membuka layanan keuangan bagi siapa saja yang memiliki koneksi internet dan sebagian besar dimiliki dan dikelola oleh penggunanya. Sejauh ini kripto senilai puluhan miliar dolar telah mengalir melalui aplikasi DeFi dan terus berkembang setiap hari. - -## Apa itu DeFi? {#what-is-defi} - -DeFi adalah sebuah istilah kolektif untuk produk dan layanan keuangan yang dapat diakses oleh siapa saja yang dapat menggunakan Ethereum – siapa saja yang memiliki koneksi internet. Dengan DeFi, pasar selalu terbuka dan tidak ada otoritas terpusat yang dapat memblokir pembayaran atau menolak Anda mengakses apa pun. Layanan yang sebelumnya lambat dan berisiko terjadi kesalahan manusia menjadi otomatis dan lebih aman sekarang karena ditangani oleh kode yang dapat diperiksa dan diteliti oleh siapa saja. - -Ada ekonomi kripto yang sedang booming di luar sana, di mana Anda dapat memberi pinjaman, meminjam, melakukan long/short, mendapatkan bunga, dan banyak lagi. Orang-orang Argentina yang paham kripto telah menggunakan DeFi untuk menghindari inflasi yang melumpuhkan. Perusahaan telah mulai menyalurkan gaji karyawan mereka secara waktu nyata. Beberapa orang bahkan telah mengambil dan melunasi pinjaman senilai jutaan dolar tanpa perlu menunjukkan identifikasi pribadi. - - - -## DeFi vs keuangan tradisional {#defi-vs-tradfi} - -Salah satu cara terbaik untuk melihat potensi DeFi adalah dengan memahami permasalahan yang ada saat ini. - -- Beberapa orang tidak diberikan akses untuk membuat rekening bank atau menggunakan layanan keuangan. -- Kurangnya akses ke layanan keuangan dapat menghalangi orang-orang untuk dipekerjakan. -- Layanan keuangan dapat menghalangi Anda menerima pembayaran. -- Biaya tersembunyi dari layanan keuangan adalah data pribadi Anda. -- Pemerintah dan lembaga terpusat dapat menutup pasar sesuka hati. -- Jam perdagangan sering dibatasi pada jam kerja zona waktu tertentu. -- Pengiriman uang dapat memakan waktu berhari-hari karena proses internal manusia. -- Ada premi untuk layanan keuangan karena lembaga perantara membutuhkan pembayaran untuk jasa mereka. - -### Perbandingan {#defi-comparison} - -| DeFi | Keuangan tradisional | -| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Anda memegang uang Anda. | Uang Anda dipegang oleh perusahaan. | -| Anda mengontrol ke mana uang Anda pergi dan bagaimana uang itu dipakai. | Anda harus memercayai perusahaan untuk tidak salah dalam mengelola uang Anda, seperti memberi pinjaman kepada peminjam berisiko. | -| Transfer dana terjadi dalam hitungan menit. | Pembayaran dapat memakan waktu berhari-hari karena proses manual. | -| Aktivitas transaksi menggunakan nama samaran. | Aktivitas keuangan sangat berkaitan erat dengan identitas Anda. | -| DeFi terbuka untuk siapa saja. | Anda harus mengajukan permohonan untuk menggunakan layanan keuangan. | -| Pasar selalu terbuka. | Pasar tutup karena para karyawan perlu istirahat. | -| Dibangun di atas prinsip transparansi – siapa pun dapat melihat data produk dan memeriksa cara kerja sistem. | Lembaga keuangan adalah buku tertutup: Anda tidak dapat meminta untuk melihat riwayat pinjaman mereka, catatan aset yang mereka kelola, dan sebagainya. | - - - Jelajahi aplikasi DeFi - - -## Ini dimulai dengan Bitcoin... {#bitcoin} - -Bitcoin dalam banyak hal adalah aplikasi DeFi yang pertama. Bitcoin memungkinkan Anda benar-benar memiliki dan mengontrol nilai dan mengirimkannya ke mana saja di seluruh dunia. Ini dilakukan dengan menyediakan cara bagi sejumlah besar orang, yang tidak saling percaya, untuk menyepakati isi buku besar akun tanpa memerlukan perantara terpercaya. Bitcoin terbuka untuk siapa saja dan tidak ada yang memiliki wewenang untuk mengubah aturannya. Aturan Bitcoin, seperti kelangkaan dan keterbukaannya, ditulis ke dalam teknologi. Ini berbeda dengan keuangan tradisional di mana pemerintah dapat mencetak uang yang mengurangi nilai tabungan Anda dan perusahaan dapat menutup pasar. - -Ethereum dibangun di atas ini. Seperti Bitcoin, aturannya tidak dapat berubah terhadap Anda dan siapa pun yang memiliki akses. Namun itu juga membuat uang digital ini dapat diprogram, menggunakan [kontrak pintar](/glossary#smart-contract), sehingga Anda dapat lebih dari sekadar menyimpan dan mengirim nilai. - - - -## Uang yang dapat diprogram {#programmable-money} - -Ini terdengar aneh... "mengapa saya ingin memrogram uang saya"? Namun, ini lebih dari sekadar sebuah fitur default dari token di Ethereum. Siapa pun dapat memrogram logika ke dalam proses pembayaran. Sehingga Anda dapat memiliki kontrol dan keamanan Bitcoin yang digabungkan dengan layanan yang disediakan oleh lembaga keuangan. Ini memungkinkan Anda melakukan berbagai hal dengan mata uang kripto yang tidak dapat Anda lakukan dengan Bitcoin seperti memberi pinjaman dan mendapatkan pinjaman, menjadwalkan pembayaran, berinvestasi dalam reksadana indeks, dan banyak lagi. - - -
Jelajahi saran kami untuk aplikasi DeFi yang dapat dicoba jika Anda baru mengenal Ethereum.
- - Jelajahi aplikasi DeFi - -
- -## Apa yang dapat Anda lakukan dengan DeFi? {#defi-use-cases} - -Ada sebuah alternatif terdesentralisasi untuk kebanyakan layanan keuangan. Tetapi Ethereum juga menciptakan peluang untuk membuat produk keuangan yang benar-benar baru. Ini adalah sebuah daftar yang akan terus bertambah. - -- [Kirim uang ke seluruh dunia](#send-money) -- [Salurkan uang ke seluruh dunia](#stream-money) -- [Akses mata uang yang stabil](#stablecoins) -- [Pinjam dana dengan jaminan](#lending) -- [Pinjam tanpa jaminan](#flash-loans) -- [Mulai tabungan kripto](#saving) -- [Berdagang token](#swaps) -- [Kembangkan portofolio Anda](#investing) -- [Danai ide Anda](#crowdfunding) -- [Beli asuransi](#insurance) -- [Kelola portofolio Anda](#aggregators) - - - -### Kirim uang ke seluruh dunia dengan cepat {#send-money} - -Sebagai sebuah blockchain, Ethereum dirancang untuk mengirim transaksi dalam cara yang aman dan global. Seperti Bitcoin, Ethereum membuat pengiriman uang ke seluruh dunia semudah mengirimkan email. Cukup masukkan [nama ENS](/nft/#nft-domains) penerima Anda (seperti bob.eth) atau alamat akun mereka dari dompet Anda dan pembayaran Anda akan berpindah langsung ke mereka dalam hitungan menit (biasanya). Untuk mengirim atau menerima pembayaran, Anda akan memerlukan sebuah [dompet](/wallets/). - - - Lihat dapp pembayaran - - -#### Salurkan uang ke seluruh dunia... {#stream-money} - -Anda juga dapat menyalurkan uang melalui Ethereum. Ini memungkinkan Anda membayar gaji seseorang gaji dalam hitungan detik, yang memberi mereka akses ke uangnya kapan pun mereka membutuhkannya. Atau sewakan sesuatu dalam hitungan detik, seperti sebuah loker penyimpanan atau skuter listrik. - -Dan jika Anda tidak ingin mengirim atau menyalurkan [ETH](/eth/) karena perubahan jumlah nilainya, ada mata uang alternatif di Ethereum: stablecoin. - - - -### Akses mata uang yang stabil {#stablecoins} - -Volatilitas mata uang kripto adalah masalah bagi banyak produk keuangan dan pengeluaran umum. Komunitas DeFi telah mengatasi hal ini dengan stablecoin. Nilainya bersifat tetap dipatok dengan aset lainnya, biasanya mata uang yang populer seperti dolar. - -Produk koin seperti Dai atau USDC memiliki nilai yang tetap dalam cakupan beberapa sen dalam satu dolar. Ini menjadikannya sempurna sebagai sumber pendapatan atau untuk bisnis eceran. Banyak orang di Amerika Latin telah menggunakan stablecoin sebagai cara untuk melindungi tabungan mereka dalam masa ketidakpastian yang besar terhadap mata uang yang diterbitkan oleh pemerintah mereka. - - - Selengkapnya tentang stablecoin - - - - -### Meminjam {#lending} - -Layanan meminjam uang dari para penyedia terdesentralisasi hadir dalam dua variasi utama. - -- Peer-to-peer, yang berarti peminjam akan meminjam secara langsung dari pemberi pinjaman tertentu. -- Berbasis pool di mana para pemberi pinjaman menyediakan dana (likuiditas) ke sebuah pool yang darinya para peminjam dapat memperoleh pinjaman. - - - Lihat dapp peminjaman - - -Ada banyak keuntungan menggunakan pemberi pinjaman terdesentralisasi... - -#### Meminjam dengan privasi {#borrowing-privacy} - -Saat ini, memberi pinjaman dan meminjam uang semuanya berpusat pada para individu yang terlibat. Bank perlu tahu apakah kemungkinan besar Anda akan membayar kembali pinjaman sebelum pemberian pinjaman dilakukan. - -Pemberian pinjaman terdesentralisasi berlangsung tanpa mengharuskan kedua pihak menunjukkan identitas mereka. Sebaliknya, peminjam harus memasang jaminan yang akan diterima pemberi pinjaman secara otomatis jika pinjaman mereka tidak dilunasi. Beberapa pemberi pinjaman bahkan menerima NFT sebagai jaminan. NFT merupakan akta dari aset unit, seperti sebuah lukisan. [Selengkapnya tentang NFT](/nft/) - -Ini memungkinkan Anda meminjam uang tanpa pemeriksaan kredit atau menyediakan informasi pribadi. - -#### Akses ke dana global {#access-global-funds} - -Ketika Anda menggunakan pemberi pinjaman terdesentralisasi, Anda memiliki akses ke dana yang didepositokan dari seluruh dunia, bukan hanya dana dalam perwalian dari bank atau lembaga yang Anda pilih. Ini membuat pinjaman lebih mudah diakses dan meningkatkan tingkat bunga. - -#### Efisiensi pajak {#tax-efficiencies} - -Meminjam dapat memberi Anda akses ke dana yang diperlukan tanpa perlu menjual ETH Anda (kegiatan yang dipungut pajak). Sebagai gantinya, Anda dapat menggunakan ETH sebagai jaminan untuk pinjaman koin stabil. Ini memberi Anda aliran dana yang dibutuhkan dan memungkinkan Anda tetap menyimpan ETH. Stablecoin merupakan token yang jauh lebih baik saat Anda membutuhkan uang tunai karena nilainya tidak berfluktuasi seperti ETH. [Selengkapnya tentang stablecoin](#stablecoins) - -#### Pinjaman flash {#flash-loans} - -Pinjaman flash merupakan bentuk yang lebih bersifat ekprerimental dari pemberian pinjaman terdesentralisasi yang memungkinkan Anda meminjam tanpa memberikan jaminan atau menyediakan informasi pribadi apa pun. - -Pinjaman ini tidak dapat diakses oleh orang-orang non-teknis untuk saat ini, tetapi mengisyaratkan sesuatu yang mungkin dapat dilakukan oleh semua orang di masa mendatang. - -Cara kerjanya didasarkan pada pinjaman dikeluarkan dan dibayarkan kembali dalam transaksi yang sama. Jika pinjaman tidak dapat dibayarkan kembali, transaksi dibalikkan seolah-olah tidak pernah terjadi apa-apa. - -Dana yang sering digunakan disimpan dalam pool likuiditas (pool besar dari dana yang digunakan untuk peminjaman). Jika dana tidak digunakan pada saat tertentu, hal ini menciptakan peluang bagi seseorang untuk meminjam dana ini, mengadakan bisnis dengannya, dan membayarkannya kembali secara penuh hampir pada saat bersamaan dengan waktu peminjaman. - -Ini berarti banyak logika harus dimasukkan ke dalam transaksi yang sangat kustom. Sebuah contoh sederhana untuk ini mungkin adalah seseorang yang menggunakan pinjaman flash untuk meminjam sebesar nilai aset pada satu harga sehingga mereka dapat menjualnya pada bursa yang berbeda di mana harga jualnya lebih tinggi. - -Jadi dalam satu transaksi, hal berikut ini terjadi: - -- Anda meminjam sejumlah X dari $asset dengan nilai $1,00 dari bursa A -- Anda menjual X $asset pada bursa B dengan nilai $1,10 -- Anda membayarkan kembali pinjaman ke bursa A -- Anda menyimpan keuntungannya yang dikurangi biaya transaksi - -Jika pasokan bursa B menurun secara tiba-tiba dan pengguna tidak dapat membeli dengan nilai yang cukup untuk menutupi pinjaman aslinya, transaksinya akan gagal. - -Agar dapat melakukan contoh di atas dalam dunia keuangan tradisional, Anda akan membutuhkan jumlah yang sangat besar. Strategi penghasil uang ini hanya dapat dijangkau oleh mereka yang memiliki kekayaan. Pinjaman flash adalah sebuah contoh dari masa depan di mana kepemilikan sejumlah uang tidak harus merupakan prasyarat untuk menghasilkan uang. - -[Lebih lanjut tentang pinjaman flash](https://aave.com/flash-loans/) - - - -### Mulai menabung dengan kripto {#saving} - -#### Pemberian pinjaman {#lending} - -Anda dapat menghasilkan bunga pada kripto Anda dengan meminjamkannya dan melihat dana Anda bertambah dalam waktu nyata. Saat ini tingkat bunga jauh lebih tinggi daripada yang mungkin Anda dapatkan di bank lokal (jika Anda cukup beruntung untuk dapat mengakses tingkat bunga ini). Berikut contohnya: - -- Anda meminjamkan 100 Dai, [stablecoin](/stablecoins/), ke produk seperti Aave. -- Anda menerima 100 Aave Dai (aDai) yang merupakan sebuah token yang mewakili Dai Anda yang dipinjamkan. -- aDai Anda akan bertambah sesuai dengan tingkat bunga dan Anda dapat melihat saldo bertambah di dompet. Tergantung pada APR, saldo dompet Anda akan membaca sesuatu seperti 100,1234 setelah beberapa hari atau bahkan beberapa jam! -- Anda dapat menarik sejumlah Dai reguler yang setara dengan salso aDai Anda kapan saja. - - - Lihat dapp pemberi pinjaman - - -#### Lotre anti kerugian {#no-loss-lotteries} - -Lotre anti kerugian seperti PoolTogether merupakan cara baru yang menyenangkan dan inovatif untuk menyimpan uang. - -- Anda membeli 100 tiket dengan menggunakan 100 token Dai. -- Anda menerima 100 plDai yang mewakili 100 tiket Anda. -- Jika salah satu tiket Anda dipilih sebagai pemenangnya, saldo plDai Anda akan bertambah sebesar jumlah hadiah pool. -- Jika Anda kalah, 100 plDai Anda akan dilanjutkan untuk undian minggu depan. -- Anda dapat menarik sejumlah Dai reguler yang setara dengan salso plDai Anda kapan saja. - -Pool hadiah dibentuk oleh semua bunga yang dihasilkan oleh pemberian pinjaman deposito tiket seperti dalam contoh pemberian pinjaman di atas. - - - Cobalah PoolTogether - - - - -### Tukar token {#swaps} - -Ada ribuan token di Ethereum. Decentralized exchange (DEX) memungkinkan Anda memperdagangkan beragam token kapan pun yang Anda inginkan. Anda tidak pernah menyerahkan kontrol atas aset Anda. Ini seperti menggunakan bursa pertukaran mata uang ketika mengunjungi sebuah negara yang berbeda. Tetapi versi DeFi tidak pernah tutup. Pasarnya buka 24/7, 365 hari dalam setahun, dan teknologinya menjamin bahwa akan selalu ada seseorang yang menerima perdagangan. - -Misalnya, jika Anda ingin menggunakan lotre anti kerugian PoolTogether (yang dideskripsikan di atas), Anda akan memerlukan token seperti Dai atau USDC. DEX ini memungkinkan Anda menukar ETH dengan token tersebut dan menukarkannya kembali bila sudah selesai. - - - Lihat penukaran token - - - - -### Perdagangan tingkat lanjut {#trading} - -Ada lebih banyak opsi tingkat lanjut bagi para pedagang yang menginginkan sedikit kontrol yang lebih banyak. Batasi pesanan, metode perpetual, perdagangan margin, dan banyak lagi, semuanya dimungkinkan. Dengan Perdagangan terdesentralisasi, Anda mendapatkan akses ke likuiditas global, pasar yang tidak pernah tutup, dan Anda selalu mengontrol aset Anda. - -Ketika Anda menggunakan bursa terpusat, Anda harus mendepositokan aset Anda sebelum perdagangannya dilakukan dan mempercayakan mereka untuk mengelolanya. Ketika aset Anda didepositokan, aset ini berisiko karena bursa terpusat adalah sasaran yang empuk bagi para peretas. - - - Lihat dapp perdagangan - - - - -### Kembangkan portofolio Anda {#investing} - -Ada produk manajemen dana di Ethereum yang akan mencoba mengembangkan portofolio Anda berdasarkan strategi pilihan Anda. Ini bersifat otomatis, terbuka untuk semua orang, dan tidak memerlukan manajer manusia yang mengambil imbalan dari keuntungan Anda. - -Sebuah contoh yang baik untuk ini adalah [dana DeFi Pulse Index (DPI)](https://defipulse.com/blog/defi-pulse-index/). Ini adalah dana yang menyeimbangkan kembali secara otomatis untuk memastikan portofolio Anda selalu menyertakan [token DeFi teratas berdasarkan kapitalisasi pasar](https://www.coingecko.com/en/defi). Anda tidak perlu mengelola detail apa pun dan Anda dapat menarik dananya kapan pun Anda menginginkannya. - - - Lihat dapp investasi - - - - -### Danai ide Anda {#crowdfunding} - -Ethereum merupakan platform yang ideal untuk penggalangan dana: - -- Calon pemberi dana bisa berasal dari mana saja – Ethereum dan tokennya terbuka untuk siapa saja, di mana saja di dunia ini. -- Bersifat transparan sehingga penggalang dana dapat membuktikan berapa banyak uang yang telah dikumpulkan. Anda bahkan dapat melacak berapa banyak dana yang dipakai nantinya. -- Penggalang dana dapat menyiapkan pengembalian dana secara otomatis, misalnya, ada tenggat waktu tertentu dan jumlah minimum yang tidak dicapai. - - - Lihat dapp penggalangan dana - - -#### Pendanaan kuadrat {#quadratic-funding} - -Ethereum merupakan perangkat lunak sumber terbuka dan banyak usaha sejauh ini telah didanai oleh komunitas. Hal ini telah menyebabkan pertumbuhan sebuah model penggalangan dana baru yang menarik: pendanaan kuadrat. Hal ini berpotensi memperbaiki cara kita mendanai semua jenis barang publik di masa depan. - -Pendanaan kuadrat memastikan bahwa proyek yang menerima pendanaan terbanyak adalah proyek dengan permintaan paling unik. Dengan kata lain, proyek yang dibuat untuk meningkatkan kehidupan kebanyakan orang. Berikut cara kerjanya: - -1. Ada pool yang sesuai dengan dana yang didonasikan. -2. Satu giliran pendanaan publik dimulai. -3. Orang-orang dapat memberi isyarat permintaan mereka untuk sebuah proyek dengan menyumbangkan sejumlah uang. -4. Setelah gilirannya selesai, pool yang sesuai didistribusikan ke proyek. Proyek dengan permintaan terunik mendapatkan jumlah tertinggi dari pool yang sesuai. - -Ini berarti Proyek A dengan 100 sumbangannya senilai 1 dolar dapat menerima lebih banyak pendanaan daripada Proyek B dengan donasi tunggal senilai 10.000 dolar (bergantung pada ukuran pool yang sesuai). - -[Selengkapnya tentang pendanaan kuadrat](https://wtfisqf.com) - - - -### Asuransi {#insurance} - -Asuransi terdesentralisasi bertujuan untuk membuat asuransi lebih murah, lebih cepat dalam pencairan dananya, dan lebih transparan. Dengan lebih banyak otomatisasi, jaminannya lebih terjangkau, dan pencairan dananya jauh lebih cepat. Data yang digunakan untuk menentukan klaim Anda benar-benar transparan. - -Produk Ethereum, seperti perangkat lunak mana pun, dapat mengalami masalah karena bug dan eksploitasi. Jadi saat ini, banyak produk asuransi yang ada berfokus untuk melindungi penggunanya dari kerugian dana. Namun, ada proyek-proyek yang mulai membangun cakupan untuk segala hal yang dapat terjadi dalam kehidupan kita. Contoh yang bagus untuk ini adalah jaminan Etherisc Crop yang bertujuan [melindungi para petani kecil di Kenya terhadap bencana kekeringan dan banjir](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Asuransi terdesentralisasi dapat menyediakan jaminan yang murah bagi para petani yang sering ditolak oleh asuransi tradisional. - - - Lihat dapp asuransi - - - - -### Manajer agregator dan portofolio {#aggregators} - -Dengan begitu banyak hal yang terjadi, Anda akan memerlukan cara untuk tetap melacak semua investasi, pinjaman, dan perdagangan Anda. Ada sebuah host produk yang memungkinkan Anda mengkoordinir semua aktivitas DeFi dari satu tempat. Inilah keindahan dari arsitektur terbuka DeFi. Tim dapat menysusun antarmuka di mana Anda tidak hanya dapat melihat saldo di seluruh produk, Anda juga dapat menggunakan fiturnya. Anda mungkin menemukan manfaatnya saat menjelajahi lebih lanjut tentang DeFi. - - - Lihat dapp portofolio - - - - -## Bagaimana cara kerja DeFi? {#how-defi-works} - -DeFi menggunakan mata uang kripto dan kontrak pintar untuk menyediakan layanan yang tidak memerlukan perantara. Dalam dunia keuangan saat ini, lembaga keuangan bertindak sebagai penjamin transaksi. Ini memberi kekuasaan yang lebih besar bagi lembaga ini karena uang Anda mengalir melalui mereka. Ditambah lagi miliaran orang di seluruh dunia bahkan tidak dapat mengakses akun bank. - -Di DeFi, kontrak pintar menggantikan lembaga keuangan dalam transaksi. Kontrak pintar merupakan jenis akun Ethereum yang dapat menampung dana dan dapat mengirim/mengembalikan dananya berdasarkan kondisi tertentu. Tidak seorang pun dapat mengubah kontrak pintar bila sudah dijalankan – kontrak pintar akan selalu beroperasi seperti yang diprogramkan. - -Sebuah kontrak yang dirancang untuk menyalurkan uang jajan atau uang saku dapat diprogram untuk mengirim uang dari Akun A ke Akun B setiap hari Jum'at. Dan hanya akan melakukan itu selama Akun A memiliki dana yang dibutuhkan. Tidak seorang pun dapat mengubah kontrak dan menambahkan Akun C sebagai penerima untuk mencuri dana. - -Kontrak juga bersifat publik bagi siapa saja untuk diperiksa dan diaudit. Ini berarti kontrak yang buruk akan sering berada di bawah pemeriksaan komunitas dengan cukup cepat. - -Ini berarti saat ini ada kebutuhan untuk mempercayai anggota yang memiliki pengetahuan teknis lebih banyak di komunitas Ethereum yang dapat membaca kode. Komunitas berbasis open-source ini membantu mengawasi pengembang, tetapi kebutuhan ini akan berkurang seiring waktu karena kontrak pintar menjadi semakin mudah untuk dibaca dan cara lain untuk membuktikan keabsahan kode sedang dikembangkan. - -## Ethereum dan DeFi {#ethereum-and-defi} - -Ethereum adalah fondasi yang sempurna untuk DeFi dikarenakan beberapa alasan: - -- Tidak ada yang memiliki Ethereum atau kontrak pintar yang berjalan di dalamnya – ini memberi peluang bagi setiap orang untuk menggunakan DeFi. Ini juga berarti tidak ada seorang pun dapat mengubah aturan yang berkaitan dengan Anda. -- Semua produk DeFi berbicara dengan bahasa yang sama di belakang layar: Ethereum. Ini berarti banyak produk bekerja bersama secara mulus. Anda dapat meminjamkan token pada satu platform dan menukarkan token yang memiliki bunga di pasar yang berbeda pada sebuah aplikasi yang sama sekali berbeda. Ini seperti kemampuan untuk mencairkan poin loyalitas di bank Anda. -- Token dan mata uang kripto dibangun ke dalam Ethereum, buku besar bersama – melacak transaksi dan kepemilikan merupakan ciri khas Ethereum. -- Ethereum memungkinkan kebebasan finansial sepenuhnya – kebanyakan produk tidak akan pernah mengambil alih dana Anda, yang membuat Anda tetap memegang kontrol. - -Anda dapat membayangkan tentang DeFi dalam lapisan: - -1. Blockchain – Ethereum berisi riwayat transaksi dan state akun. -2. Aset – [ETH](/eth/) dan token lainnya (mata uang). -3. Protokol – [kontrak pintar](/glossary/#smart-contract) yang menyediakan fungsionalitas, misalnya, layanan yang memungkinkan pemberian pinjaman aset yang terdesentralisasi. -4. [Aplikasi](/dapps/) – produk yang kita gunakan untuk mengelola dan mengakses protokol. - -## Bangun DeFi {#build-defi} - -DeFi adalah gerakan sumber terbuka. Anda bisa memeriksa, melakukan fork, dan berinovasi pada semua protokol dan aplikasi DeFi. Karena tumpukan berlapis ini (semuanya berbagi blockchain dan aset dasar yang sama), protokol dapat digabungkan dan dicocokkan untuk membuka peluang kombo yang unik. - - - Lebih lanjut tentang membangun dapp - - -## Bacaan lebih lanjut {#futher-reading} - -### Data DeFi {#defi-data} - -- [DeFi Prime](https://defiprime.com/) -- [DeFi Llama](https://defillama.com/) -- [DeFi Rate](https://defirate.com/) - -### Artikel DeFi {#defi-articles} - -- [Panduan DeFi untuk pemula](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, 6 Januari, 2020_ - -### Video {#videos} - -- [Finematics - edukasi keuangan terdesentralisasi](https://finematics.com/) – _Video tentang DeFi_ -- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _Dasar-dasar DeFi: Semua hal yang perlu Anda ketahui untuk mulai menggunakan ruang yang terkadang membingungkan ini._ -- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _Apa itu DeFi?_ - -### Komunitas {#communities} - -- [Server Discord DeFi Llama](https://discord.gg/buPFYXzDDd) -- [Server Discord DeFi Pulse](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/id/desci/index.md b/src/content/translations/id/desci/index.md deleted file mode 100644 index 1ca21964004..00000000000 --- a/src/content/translations/id/desci/index.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: Ilmu Pengetahuan Terdesentralisasi (DeSci) -description: Gambaran umum tentang ilmu pengetahuan terdesentralisasi di Ethereum -lang: id -template: use-cases -emoji: ":microscope:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Sebuah alternatif global dan terbuka untuk sistem ilmiah saat ini. -summaryPoint2: Teknologi yang memperbolehkan ilmuwan untuk mengalangkan pendanaan, menjalankan eksperimen, membagikan data, mendistribusikan wawasan, dan lain-lain. -summaryPoint3: Membangun gerakan sains terbuka. ---- - -## Ilmu pengetahuan desentralisasi (DeSci)? {#what-is-desci} - -Ilmu pengetahuan terpusat (DeSci) adalah gerakan yang bertujuan untuk membangun infrastruktur publik untuk pendanaan, penciptaan, peninjauan, pengakuan, penyimpanan, dan penyebaran pengetahuan ilmiah secara adil dan merata menggunakan rangkaian Web3. - -DeSci bertujuan untuk menciptakan ekosistem di mana para ilmuwan mendapatkan insentif untuk berbagi penelitian mereka dan menerima pengakuan atas karya mereka, sambil memungkinkan siapa pun untuk dengan mudah mengakses dan berkontribusi pada penelitian tersebut. DeSci membuat gagasan bahwa pengetahuan ilmiah harus dapat dilihat oleh semua orang dan bahwa proses penelitian ilmiah harus transparan. DeSci menciptakan model penelitian ilmiah yang lebih terdesentralisasi dan disebarkan, sehingga lebih tahan terhadap sensor dan kontrol oleh otoritas pusat. DeSci berharap menciptakan lingkungan di mana gagasan baru dan tidak konvensional dapat berkembang dengan desentralisasi akses ke pendanaan, perangkat ilmiah, dan saluran komunikasi. - -Sains terdesentralisasi memungkinkan sumber pendanaan yang lebih beragam (dari [DAO](/dao/), [sumbangan kuadratik](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) hingga crowdfunding dan lainnya), akses data dan metode yang lebih mudah diakses, dan memberikan insentif untuk produktibilitas. - -### Juan Benet - Gerakan DeSci - - - -## Bagaimana Desentralisasi meningkatkan ilmu pengetahuan {#desci-improves-science} - -Berikut ini adalah daftar masalah utama dalam ilmu pengetahuan beserta bagaimana ilmu pengetahuan terdesentralisasi dapat membantu mengatasi masalah-masalah ini - -| **Ilmu pengetahuan tersentralisasi** | **Ilmu pengetahuan tradisional** | -| ---------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Distribusi dana ditentukan oleh masyarakat menggunakan mekanisme seperti sumbangan kuadratik atau DAO. | Distribusi pendanaan diawasi oleh grup-grup yang kecil, tertutup, dan tersentralisasi. | -| Anda dapat bergabung dengan hal-hal di seluruh dunia dalam tim yang dinamis. | Pendanaan organisasi dan institusi beranda yang membatasi kolaborasi anda. | -| Ketentuan pendanaan dibuat secara daring dan transparan. Mekanisme pendanaan baru telah tereksplorasi. | Ketentuan pendanaan dibuat dalam waktu yang lumayan lama dan keterbukaan yang terbatas. Hanya sedikit mekanisme pendanaan yang tersedia. | -| Berbagi layanan laboratorium menjadi lebih mudah dan transparan dengan menggunakan primitif Web3. | Berbagi sumber daya laboratorium seringkali lambat dan tidak transparan. | -| Model-model baru untuk penerbitan dapat dikembangkan yang menggunakan primitif Web3 untuk kepercayaan, keterbukaan, dan akses universal. | Anda mempublikasikan melalui cara yang telah ditentukan atau yang disebut sebuah hal yang tidak efisien, bias, dan eksploitasi. | -| Anda dapat mendapatkan token-token dan reputasi untuk kerja tinjauan oleh rekan sejawat. | Kerja peer-review anda tidak dibayar, untuk publikasi yang menggunakan keuntungan. | -| Anda memiliki hak kekayaan intelektual (IP) yang Anda hasilkan dan mendistribusikannya sesuai dengan ketentuan yang transparan. | Institusi asal Anda memiliki hak kepemilikan atas hak kekayaan intelektual (HKI) yang Anda hasilkan. Akses terhadap hak kekayaan intelektual (HKI) tidak transparan. | -| Berbagi seluruh penelitian, termasuk data dari upaya yang tidak berhasil, dengan menjalankan semua langkah di dalam rantai. | Pembatasan publikasi berarti para peneliti lebih cenderung berbagi eksperimen yang memiliki hasil yang sukses. | - -## Ethereum dan DeSci {#ethereum-and-desci} - -Sistem sains desentralisasi akan memerlukan keamanan yang besar, moneter yang minim dan biaya transaksi, dan sebuah ekosistem pengembangan aplikasi yang kaya. Ethereum menyediakan semua yang diperlukan untuk membangun stak sains desentralisasi. - -## Kasus penggunaan DeSci {#use-cases} - -Desentralisasi membangun peralatan sains dalam akademia Web2 menuju ke dunia digital. Berikut ini adalah contoh-contoh penggunaan yang dapat ditawarkan oleh Web3 kepada komunitas ilmiah. - -### Penerbitan {#publishing} - -Penerbitan ilmiah terkenal bermasalah karena dikelola oleh rumah penerbitan yang mengandalkan tenaga kerja gratis dari ilmuwan, para reviewer, dan editor untuk menghasilkan makalah-makalah, namun kemudian menarik biaya penerbitan yang sangat tinggi. Masyarakat umum, yang biasanya telah secara tidak langsung membayar untuk pekerjaan dan biaya penerbitan melalui pajak, sering kali tidak dapat mengakses pekerjaan yang sama tanpa membayar penerbit lagi. Total biaya penerbitan makalah ilmiah per individu seringkali mencapai angka lima digit ($USD), yang merusak konsep pengetahuan ilmiah sebagai [barang publik](https://www.econlib.org/library/Enc/PublicGoods.html) sambil menghasilkan keuntungan besar bagi sekelompok kecil penerbit. - -Platform-platform gratis dan akses terbuka ada dalam bentuk server pra-cetak, [seperti ArXiv](https://arxiv.org/). Namun, platform-platform ini kurang memiliki kontrol kualitas, [mekanisme anti-sybil](https://csrc.nist.gov/glossary/term/sybil_attack), dan umumnya tidak melacak metrik tingkat artikel, artinya biasanya hanya digunakan untuk memublikasikan karya sebelum diserahkan ke penerbit tradisional. SciHub juga membuat makalah-makalah yang telah diterbitkan dapat di akses secara gratis, namun tidak secara legal, dan hanya setelah penerbit telah menerima pembayaran mereka dan mengaplikasikan peraturan hak cipta yang ketat pada karya tersebut. Hal ini meninggalkan kesenjangan kritis terhadap makalah-makalah dan data ilmiah yang dapat diakses dengan mekanisme legitimasi dan model insentif yang tertanam. Alat-alat untuk membangun sistem seperti itu sudah ada dalam Web3. - -### Keterulangan dan replikasi {#reproducibility-and-replicability} - -Keterulangan dan replikasi adalah dasar dari penemuan ilmiah berkualitas. - -- Hasil yang dapat diulang dapat dicapai berulang kali oleh tim yang sama menggunakan metodologi yang sama. -- Hasil yang dapat direplikasi dapat dicapai oleh kelompok yang berbeda menggunakan pengaturan eksperimen yang sama. - -Perangkat baru yang berasal dari Web3 dapat memastikan bahwa keterulangan dan replikasi menjadi dasar dari penemuan. Kita dapat menyelaraskan ilmu pengetahuan berkualitas ke dalam kerangka teknologi akademis. Web3 menawarkan kemampuan untuk membuat pengesahan untuk setiap komponen analisis: data mentah, mesin komputasi, dan hasil aplikasi. Keindahan dari sistem konsensus adalah bahwa ketika jaringan tepercaya dibentuk untuk menjaga komponen-komponen ini, setiap peserta jaringan dapat bertanggung jawab untuk mereproduksi perhitungan dan memvalidasi setiap hasil. - -### Pendanaan {#funding} - -Model standar saat ini untuk pendanaan ilmu pengetahuan adalah bahwa individu atau kelompok ilmuwan membuat aplikasi tertulis kepada lembaga pendanaan. Sebuah panel kecil individu yang dipercayai menilai aplikasi-aplikasi tersebut, kemudian mewawancarai para calon sebelum memberikan dana kepada sebagian kecil dari para pelamar. Selain menciptakan hambatan yang mengakibatkan kadang-kadang tahunan waktu tunggu antara mengajukan permohonan dan menerima sumbangan, model ini dikenal rentan terhadap bias, kepentingan pribadi, dan politik dari panel peninjau. - -Studi telah menunjukkan bahwa panel peninjau hibah sering kali tidak efektif dalam memilih proposal berkualitas tinggi, karena proposal yang sama yang diberikan kepada panel-panel yang berbeda memiliki hasil yang sangat berbeda. Seiring dengan semakin langka dana pendanaan, dana tersebut telah terkonsentrasi dalam kelompok kecil peneliti senior dengan proyek-proyek yang lebih konservatif secara intelektual. Dampak ini menciptakan lanskap pendanaan yang sangat kompetitif sehingga mengakibatkan insentif yang tidak sehat dan meredam inovasi. - -Web3 memiliki potensi untuk mengganggu model pendanaan yang rusak ini dengan menguji model insentif berbeda yang dikembangkan oleh DAO dan Web3 secara luas. [Pendanaan barang publik retroaktif](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), [pendanaan kuadratik](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), [pengelolaan DAO](https://www.antler.co/blog/daos-and-web3-governance), dan [struktur insentif ter-tokenisasi](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) adalah beberapa perangkat Web3 yang dapat merevolusi pendanaan ilmiah. - -### Kepemilikan dan pengembangan Hak Kekayaan Intelektual (HKI) {#ip-ownership} - -Hak Kekayaan Intelektual (HKI) merupakan masalah besar dalam ilmu pengetahuan konvensional: mulai dari terjebak di universitas atau tidak digunakan di perusahaan bioteknologi, hingga sulitnya menilai nilai HKI dengan jelas. Namun, kepemilikan aset digital (seperti data atau artikel ilmiah) adalah sesuatu yang Web3 lakukan dengan sangat baik menggunakan [token non-fungible (NFT)](/nft/). - -Seperti halnya NFT dapat mengalirkan pendapatan dari transaksi masa depan kembali ke pembuat asli, Anda dapat membentuk rantai atribusi nilai yang transparan untuk memberikan imbalan kepada para peneliti, badan pengatur (seperti DAO), atau bahkan subjek yang datanya dikumpulkan. - -[IP-NFT](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) juga dapat berfungsi sebagai kunci untuk repositori data terdesentralisasi dari eksperimen penelitian yang sedang dilakukan, dan dapat terintegrasi dengan keuangan NFT dan [DeFi](/defi/) (dari fraksionasi hingga pool pemberian pinjaman dan penilaian nilai). Ini juga memungkinkan entitas yang ada di dalam rantai seperti DAO seperti [VitaDAO](https://www.vitadao.com/) untuk melakukan penelitian secara langsung di rantai dalam rantai. Kemunculan [token "soulbound"](https://vitalik.ca/general/2022/01/26/soulbound.html) yang tidak dapat ditransfer juga dapat berperan penting dalam DeSci dengan memungkinkan individu membuktikan pengalaman dan kredensial mereka yang terhubung dengan alamat Ethereum mereka. - -### Penyimpanan data, akses, dan arsitektur {#data-storage} - -Data ilmiah dapat diakses dengan lebih mudah menggunakan pola Web3, dan penyimpanan terdistribusi memungkinkan penelitian bertahan dari aksi-aksi krisis. - -Titik awal haruslah sebuah sistem yang dapat diakses oleh setiap identitas terdesentralisasi yang memegang kredensial yang dapat diverifikasi dengan benar. Ini memungkinkan data sensitif direplikasi secara aman oleh pihak yang tepercaya, memungkinkan redudansi dan ketahanan terhadap sensor, reproduksi hasil, bahkan kemampuan bagi beberapa pihak untuk berkolaborasi dan menambahkan data baru ke dalam dataset. Metode komputasi yang rahasia seperti [komputasi-ke-data](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol) memberikan mekanisme akses alternatif terhadap replikasi data mentah, menciptakan Lingkungan Penelitian Tepercaya untuk data yang paling sensitif. Lingkungan Penelitian Tepercaya telah dijadikan [referensi oleh NHS](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) sebagai solusi berorientasi masa depan untuk privasi data dan kolaborasi dengan menciptakan ekosistem di mana para peneliti dapat bekerja dengan data secara aman di tempat menggunakan lingkungan standar untuk berbagi kode dan praktik. - -Solusi data Web3 yang fleksibel mendukung skenario di atas dan memberikan dasar bagi Ilmu Pengetahuan yang Benar-benar Terbuka, di mana para peneliti dapat menciptakan barang-barang publik tanpa izin akses atau biaya. Solusi data publik Web3 seperti IPFS, Arweave, dan Filecoin dioptimalkan untuk desentralisasi. Contohnya, dClimate menyediakan akses universal ke data iklim dan cuaca, termasuk dari stasiun cuaca dan model iklim prediktif. - -## Ikut terlibat {#get-involved} - -Jelajahi proyek-proyek dan bergabunglah dengan komunitas DeSci. - -- [DeSci.Global: kalender acara global dan pertemuan](https://desci.global) -- [Rantai Blok untuk Ilmu Pengetahuan di Telegram](https://t.me/BlockchainForScience) -- [Molecule: Dana dan dapatkan pendanaan untuk proyek penelitian Anda](https://discover.molecule.to/) -- [VitaDAO: Terima pendanaan melalui perjanjian penelitian yang disponsori untuk penelitian kelangsungan hidup](https://www.vitadao.com/) -- [ResearchHub: Unggah hasil ilmiah dan terlibat dalam percakapan dengan rekan-rekan sejawat](https://www.researchhub.com/) -- [LabDAO: Melipat protein secara in-silico](https://alphafodl.vercel.app/) -- [dClimate API: Permintaan data iklim yang dikumpulkan oleh komunitas terdesentralisasi](https://api.dclimate.net/) -- [DeSci Foundation: Pembangun alat penerbitan DeSci](https://descifoundation.org/) -- [DeSci.World: pusat informasi untuk pengguna melihat dan terlibat dengan ilmu pengetahuan terdesentralisasi](https://desci.world) -- [Fleming Protocol: ekonomi data sumber terbuka yang mendukung penemuan biomedis kolaboratif](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [OceanDAO: Pendanaan yang diatur oleh DAO untuk ilmu pengetahuan terkait data](https://oceanprotocol.com/dao) -- [Opscientia: alur kerja ilmu pengetahuan terbuka dan terdesentralisasi](https://opsci.io/research/) -- [LabDAO: Melipat protein secara in-silico](https://alphafodl.vercel.app/) -- [Bio.xyz: dapatkan pendanaan untuk proyek bioteknologi atau proyek DeSci Anda melalui DAO](https://www.molecule.to/) -- [ResearchHub: Unggah hasil ilmiah dan terlibat dalam percakapan dengan rekan-rekan sejawat](https://www.researchhub.com/) -- [VitaDAO: Terima pendanaan melalui perjanjian penelitian yang disponsori untuk penelitian kelangsungan hidup](https://www.vitadao.com/) -- [Fleming Protocol: ekonomi data sumber terbuka yang mendukung penemuan biomedis kolaboratif](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [Lab Inferensi Aktif](https://www.activeinference.org/) -- [CureDAO: Platform Kesehatan Presisi yang Dimiliki oleh Komunitas](https://docs.curedao.org/) -- [IdeaMarkets: Memungkinkan kredibilitas ilmiah terdesentralisasi](https://ideamarket.io/) -- [Lab DeSci](https://www.desci.com/) - -Kami menyambut saran untuk proyek-proyek baru yang ingin ditampilkan - silakan lihat [kebijakan pendaftaran](/contributing/adding-desci-projects/) kami untuk memulai! - -## Bacaan lebih lanjut {#further-reading} - -- [DeSci Wiki oleh Jocelynn Pearl dan Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) -- [Panduan Bioteknologi Terdesentralisasi oleh Jocelynn Pearl untuk a16z future](https://future.a16z.com/a-guide-to-decentralized-biotech/) -- [Argumen untuk DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) -- [Panduan untuk DeSci](https://future.com/what-is-decentralized-science-aka-desci/) -- [Sumber daya ilmu pengetahuan terdesentralisasi](https://www.vincentweisser.com/decentralized-science) -- [IP-NFT Biopharma dari Molecule - Deskripsi Teknis](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) -- [Membangun Sistem Ilmu Pengetahuan yang Tidak Memerlukan Kepercayaan oleh Jon Starr](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) -- [Munculnya DAO Bioteknologi](https://molecule.to/blog/the-emergence-of-biotech-daos) -- [Paul Kohlhaas - DeSci: Masa Depan Ilmu Pengetahuan Terdesentralisasi (podcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) -- [Ontologi Inference Aktif untuk Ilmu Pengetahuan Terdesentralisasi: dari Pemahaman Situasional hingga Epistemik Bersama](https://zenodo.org/record/6320575) -- [DeSci: Masa Depan Penelitian oleh Samuel Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) -- [Pendanaan Ilmu Pengetahuan (Epilog: DeSci dan Primitif Kripto Baru) oleh Nadia](https://nadia.xyz/science-funding) -- [Desentralisasi Mengganggu Pengembangan Obat](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) - -### Video {#videos} - -- [Apa Itu Ilmu Pengetahuan Terdesentralisasi?](https://www.youtube.com/watch?v=-DeMklVWNdA) -- [Percakapan antara Vitalik Buterin dan ilmuwan Aubrey de Grey tentang persimpangan penelitian panjang umur dan kripto](https://www.youtube.com/watch?v=x9TSJK1widA) -- [Penerbitan Ilmiah Rusak. Dapatkah Web3 Memperbaikinya?](https://www.youtube.com/watch?v=WkvzYgCvWj8) -- [Juan Benet - DeSci, Laboratorium Independen, & dan Pengetahuan Data Skala Besar](https://www.youtube.com/watch?v=zkXM9H90g_E) -- [Sebastian Brunemeier - Bagaimana DeSci Dapat Mengubah Penelitian Biomedis & dan Modal Ventura](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/id/developers/docs/nodes-and-clients/index.md b/src/content/translations/id/developers/docs/nodes-and-clients/index.md deleted file mode 100644 index 70bc637bf91..00000000000 --- a/src/content/translations/id/developers/docs/nodes-and-clients/index.md +++ /dev/null @@ -1,318 +0,0 @@ ---- -title: Node dan klien -description: Gambaran umum tentang perangkat lunak node dan klien Ethereum, juga cara menyiapkan node dan mengapa Anda harus melakukannya. -lang: id -sidebarDepth: 2 ---- - -Ethereum adalah jaringan komputer terdistribusi yang menjalankan perangkat lunak (dikenal sebagai node) yang dapat memverifikasi blok dan data transaksi. Anda memerlukan satu aplikasi, yang dikenal sebagai klien, pada perangkat Anda untuk "menjalankan" sebuah node. - -## Prasyarat {#prerequisites} - -Anda harus memahami konsep jaringan peer-to-peer dan [dasar-dasar EVM](/developers/docs/evm/) sebelum menggali lebih dalam dan menjalankan instance klien Ethereum Anda sendiri. Coba lihat [pengantar Ethereum](/developers/docs/intro-to-ethereum/) kami. - -## Apa itu node dan klien? {#what-are-nodes-and-clients} - -"Node" merujuk pada satu bagian perangkat lunak yang dikenal sebagai satu klien. Klien adalah implementasi Ethereum yang memverifikasi semua transaksi di setiap blok, menjaga jaringan tetap aman dan data tetap akurat. - -Anda bisa melihat tampilan jaringan Ethereum secara nyata dengan melihat [peta node](https://etherscan.io/nodetracker) ini. - -Ada banyak [klien Ethereum](/developers/docs/nodes-and-clients/#execution-clients), dalam berbagai bahasa pemrograman seperti Go, Rust, JavaScript, Typescript, Python, C# .NET, Nim dan Java. Persamaan dari semua implementasi ini adalah semuanya mengikuti spesifikasi formal (pada awalnya [Yellow Paper Ethereum](https://ethereum.github.io/yellowpaper/paper.pdf)). Spesifikasi ini mengatur bagaimana jaringan Ethereum dan blockchain berfungsi. - -![Klien eksekusi](./client-diagram.png) Diagram yang disederhanakan tentang apa saja fitur klien Ethereum. - -## Jenis node {#node-types} - -Jika Anda ingin [menjalankan node sendiri](/developers/docs/nodes-and-clients/run-a-node/), Anda harus mengerti bahwa ada berbagai jenis node yang mengonsumsi data secara berbeda. Bahkan, klien dapat menjalankan 3 tipe node yang berbeda - ringan, penuh, dan arsip. Ada juga opsi strategi sinkronisasi berbeda yang memungkinkan waktu sinkronisasi yang lebih cepat. Sinkronisasi merujuk pada seberapa cepat prosesnya mendapat informasi paling terbaru pada state Ethereum. - -### Node penuh {#full-node} - -- Menyimpan data blockchain penuh. -- Berpartisipasi dalam validasi blok, memverifikasi semua blok dan state. -- Semua state bisa dikembangkan dari satu node penuh. -- Melayani jaringan dan menyediakan data sesuai permintaan. - -### Node Ringan {#light-node} - -- Menyimpan rantai header dan meminta semua hal lainnya. -- Bisa memverifikasi keabsahan data yang dibandingkan dengan root state dalam header blok. -- Berguna untuk perangkat dengan kapasitas rendah, seperti perangkat bawaan atau ponsel, yang tidak sanggup menyimpan data blokchain dalam ukuran gigabyte. - -### Node arsip {#archive-node} - -- Menyimpan semua data yang tersimpan dalam node penuh dan menyusun riwayat arsip state. Diperlukan jika Anda ingin menanyakan sesuatu seperti saldo akun pada blok #4.000.000, atau secara sederhana dan andal [menguji sekumpulan transaksi Anda sendiri tanpa menambangnya dengan mengggunakan OpenEthereum](https://openethereum.github.io/JSONRPC-trace-module#trace_callmany). -- Data ini mewakilkan unit terabita yang membuat node arsip kurang menarik bagi pengguna pada umumnya, tetapi dapat menolong untuk layanan seperti penjelajah blok, vendor dompet, dan analitik rantai. - -Mensinkronisasikan klien di mode mana saja selain arsip akan menghasilkan data blockchain yang terpangkas. Ini berarti, tidak ada arsip untuk semua state riwayat, tetapi node penuh dapat menyusunnya sesuai permintaan. - -## Mengapa Anda harus menjalankan satu node Ethereum? {#why-should-i-run-an-ethereum-node} - -Menjalankan node memungkinkan Anda menggunakan Ethereum tanpa membutuhkan kepercayaan dan secara privat sekaligus Anda mendukung ekosistem. - -### Keuntungan untuk Anda {#benefits-to-you} - -Menjalankan node sendiri memungkinkan Anda menggunakan Ethereum dengan cara yang benar-benar privat, mandiri, dan tidak membutuhkan kepercayaan. Anda tidak perlu mempercayai jaringan karena Anda bisa memverifikasi data sendiri dengan klien Anda. "Jangan percaya, lakukan verifikasi" adalah mantra blockchain yang populer. - -- Node Anda memverifikasi semua transaksi dan blok dibandingkan dengan aturan konsensus itu sendiri. Ini berarti Anda tidak harus mengandalkan node lain dalam jaringan atau sepenuhnya mempercayainya. -- Anda tidak akan harus membocorkan alamat dan saldo Anda ke node acak. Semua hal bisa dicek dengan klien Anda sendiri. -- Dapp Anda bisa lebih aman dan privat jika Anda menggunakan node Anda sendiri. [MetaMask](https://metamask.io), [MyEtherWallet](https://myetherwallet.com) and some other wallets can be easily pointed to your own local node. -- Anda dapat memrogram endpoint RPC kustom Anda sendiri. -- Anda dapat menghubungkan node Anda dengan menggunakan **Komunikasi Antar Proes (IPC)** atau menulis kembali node untuk memuat program Anda sebagai plugin. Ini menghasilkan latensi yang rendah, yang diperlukan untuk menggantikan transaksi Anda secepat mungkin (maksudnya frontrunning). - -![Bagaimana Anda mengakses Ethereum lewat aplikasi dan node Anda](./nodes.png) - -### Keuntungan jaringan {#network-benefits} - -Sebuah kumpulan node beragam penting untuk kesehatan, keamanan dan ketahanan operasional Ethereum. - -- Mereka menyediakan akses ke data blockchain untuk klien lightweight yang bergantung pada data tersebut. Pada puncak tinggi penggunaan, harus ada node penuh yang cukup untuk membantu sinkronisasi node ringan. Node ringan tidak menyimpan seluruh blockchain, melainkan memverifikasi data lewat [root state dalam header blok](/developers/docs/blocks/#block-anatomy). Mereka bisa meminta lebih banyak informasi dari blok jika mereka membutuhkannya. -- Node penuh melaksanakan aturan konsensus bukti kerja sehingga mereka tidak bisa ditipu untuk menerima blok yang tidak mengikutinya. Ini menyediakan keamanan ekstra dalam jaringan karena jika semua node berjenis node ringan, yang tidak melakukan verifikasi penuh, penambang bisa menyerang jaringan dan, sebagai contoh, membuat blok dengan imbalan yang lebih tinggi. - -Jika Anda menjalankan node penuh, seluruh jaringan Ethereum mendapat keuntungan darinya. - -## Menjalankan node milik Anda sendiri {#running-your-own-node} - -Tertarik menjalankan klien Ethereum Anda sendiri? - -For a beginner-friendly introduction visit our [run a node](/run-a-node) page to learn more. - -If you're more of a technical user, learn how to [spin up your own node](/developers/docs/nodes-and-clients/run-a-node/) with the command line! - -### Proyek {#projects} - -[**Pilih klien dan ikuti petunjuknya**](#clients) - -**ethnode -** **_Jalankan node Ethereum (Geth atau OpenEthereum) untuk pengembangan lokal._** - -- [GitHub](https://github.com/vrde/ethnode) - -**DAppNode -** **_Sebuah sistem operasi GUI untuk menjalankan node Web3, yang mencakup Ethereum dan rantai suar, pada satu mesin khusus._** - -- [dappnode.io](https://dappnode.io) - -### Sumber Daya {#resources} - -- [Menjalankan Node Penuh Ethereum: Sebuah Panduan Lengkap](https://medium.com/coinmonks/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _7 November 2019 - Justin Leroux_ -- [Lembaran Cheat Konfigurasi Node](https://dev.to/5chdn/ethereum-node-configuration-modes-cheat-sheet-25l8) _5 Januari 2019 - Afri Schoeden_ -- [Cara Menginstal dan Menjalankan Node Geth](https://www.quiknode.io/guides/infrastructure/how-to-install-and-run-a-geth-node) _4 Okt 2020 - Sahil Sen_ -- [Cara Menginstal dan Menjalankan Node OpenEthereum (fka. Parity)](https://www.quiknode.io/guides/infrastructure/how-to-run-a-openethereum-ex-parity-client-node) _22 Sept 2020 - Sahil Sen_ - -## Alternatif {#alternatives} - -Menjalankan node Anda sendiri dapat menjadi sulit dan Anda tidak selalu harus menjalankan instance Anda sendiri. Dalam kasus ini, Anda bisa menggunakan satu penyedia API pihak ketiga seperti [Infura](https://infura.io), [Alchemy](https://alchemyapi.io), atau [QuikNode](https://www.quiknode.io). Sebagai alternatifnya [ArchiveNode](https://archivenode.io/) adalah satu node Arsip yang didanai komunitas yang bertujuan membawa data arsip blockchain Ethereum kepada para pengembang independen yang sebaliknya tidak bisa mendapatkannya. For an overview of using these services, check out [nodes as a service](/developers/docs/nodes-and-clients/nodes-as-a-service/). - -Jika seseorang menjalankan node Ethereum dengan API publik dalam komunitas Anda, Anda bisa merujuk dompet ringan Anda (seperti MetaMask) ke node komunitas [melalui RPC Kustom](https://metamask.zendesk.com/hc/en-us/articles/360015290012-Using-a-Local-Node) dan mendapat lebih banyak privasi dari pada menggunakan beberapa pihak ketiga terpercaya acak. - -Di sisi lain, jika Anda menjalankan satu klien, Anda bisa membagikannya dengan teman Anda yang mungkin membutuhkannya. - -## Klien eksekusi (sebelumnya 'klien Eth1') {#execution-clients} - -Komunitas Ethereum memelihara beberapa klien eksekusi sumber terbuka (sebelumnya dikenal sebagai 'klien Eth1', atau 'klien Ethereum'), yang dikembangkan oleh berbagai tim menggunakan beragam bahasa pemrograman. Ini membuat jaringan lebih kuat dan lebih beragam. Tujuan idealnya adalah untuk mencapai keberagaman tanpa dominasi klien mana pun sehingga ini menurunkan jumlah titik kegagalan mana pun. - -Tabel ini meringkaskan berbagai jenis klien. Semuanya telah lulus [pengujian klien](https://github.com/ethereum/tests) dan secara aktif dipertahankan agar tetap yang terbaru dengan peningkatan jaringan. - -| Klien | Bahasa | Sistem operasi | Jaringan | Strategi sinkronisasi | Pemotongan state | -| ------------------------------------------------------------------------- | -------- | --------------------- | -------------------------------------------------------- | --------------------- | ---------------- | -| [Geth](https://geth.ethereum.org/) | Go | Linux, Windows, macOS | Jaringan Utama, Görli, Rinkeby, Ropsten | Snap, Full | Arsip, Dipotong | -| [Nethermind](http://nethermind.io/) | C#, .NET | Linux, Windows, macOS | Jaringan Utama, Görli, Ropsten, Rinkeby, dan banyak lagi | Fast, Beam, Archive | Arsip, Dipotong | -| [Besu](https://besu.hyperledger.org/en/stable/) | Java | Linux, Windows, macOS | Mainnet, Rinkeby, Ropsten, Görli, and more | Cepat, Penuh | Arsip, Dipotong | -| [Erigon](https://github.com/ledgerwatch/erigon) | Go | Linux, Windows, macOS | Jaringan Utama, Görli, Rinkeby, Ropsten | Full | Arsip, Dipotong | -| [OpenEthereum (Deprecated)](https://github.com/openethereum/openethereum) | Rust | Linux, Windows, macOS | Jaringan Utama, Kovan, Ropsten, dan banyak lagi | Warp, Penuh | Arsip, Dipotong | - -**Perhatikan bahwa OpenEthereum [telah menjadi usang](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) dan tidak lagi dipertahankan.** Gunakan dengan hati-hati dan lebih baik beralih ke implementasi klien lainnya. - -Untuk informasi lebih lanjut tentang jaringan yang didukung, baca tentang [jaringan Ethereum](/developers/docs/networks/). - -### Manfaat dari impelementasi berbeda {#advantages-of-different-implementations} - -Setiap klien mempunyai kasus penggunaan dan keuntungan yang unik, jadi Anda harus memilih salah satu berdasarkan preferensi Anda sendiri. Keberagaman memungkinkan implementasi difokuskan pada fitur dan audiens pengguna berbeda. Anda mungkin ingin memilih satu klien berdasarkan fitur, dukungan, bahasa pemrograman, atau lisensi. - -#### Go Ethereum {#geth} - -Go Ethereum (singkatannya Geth) adalah satu dari implementasi original protokol Ethereum. Saat ini, Geth adalah klien yang paling tersebar luas dengan basis pengguna terbesar dan keberagaman perangkat untuk para pengguna dan pengembang. Geth ditulis dalam Go, yang adalah sumber terbuka penuh dan terlisensi di bawah GNU LGPL v3. - -#### OpenEthereum {#openethereum} - -OpenEthereum adalah sebuah klien Ethereum cepat, kaya akan fitur, dan berbasis CLI tingkat lanjut. Dibangun guna menyediakan infrastruktur penting untuk layanan cepat dan dapat diandalkan yang membutuhkan sinkronisasi cepat dan uptime maksimum. Tujuan OpenEthereum adalah menjadi klien Ethereum tercepat, paling ringan, dan paling aman. Menyediakan basis kode yang bersih dan modular untuk: - -- kostumisasi yang mudah. -- integrasi ringan ke dalam layanan atau produk. -- memori minimal dan jejak penyimpanan. - -OpenEthereum dikembangkan menggunakan bahasa pemrograman Rust canggih dan terlisensi di bawah GPLv3. - -**Perhatikan bahwa OpenEthereum [telah menjadi usang](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) dan tidak lagi dipertahankan.** Gunakan dengan hati-hati dan lebih baik beralih ke implementasi klien lainnya. - -#### Nethermind {#nethermind} - -Nethermind adalah satu implementasi Ethereum yang dibuat dengan tumpukan teknologi C# .NET, beroperasi pada semua platform utama termasuk ARM. Implementasi ini menawarkan kinerja luar biasa dengan: - -- mesin virtual yang dioptimalkan -- akses state -- jaringan dan fitur yang kaya seperti dasbor Prometheus/Graphana, dukungan logging perusahaan seq, pelacakan JSON RPC, dan plugin analitik. - -Nethermind juga mempunyai [dokumentasi detil](https://docs.nethermind.io), dukungan pengembang yang kuat, komunitasi daring dan dukungan 24/7 yang tersedia untuk para pengguna premium. - -#### Besu {#besu} - -Hyperledger Besu adalah klien Ethereum standar perusahaan untuk jaringan publik dan berizin. Ia menjalankan seluruh fitur Jaringan Utama Ethereum, mulai dari pelacakan hingga GraphQL, memiliki pengawasan ektensif dan didukung oleh ConsenSys, baik di kanal komunitas terbuka maupun melalui SLA komersial untuk perusahaan. Ditulis dalam Java dan berlisensi Apache 2.0. - -#### Erigon {#erigon} - -Erigon, yang sebelumnya dikenal sebagai Erigon, adalah sebuah fork Go Ethereum yang diarahkan untuk efisiensi kecepatan dan pemakaian ruangan cakram. Erigon adalah sebuah implementasi yang sepenuhnya di buat kembali di Ethereum, yang saat ini ditulis dalam Go dengan implementasi dalam bahasa pemograman lain yang direncanakan. Tujuan Erigon adalah menyediakan implementasi Ethereum yang lebih cepat, lebih modular, dan lebih teroptimisasi. Ia dapat melakukan sinkronisasi node arsip penuh dengan menggunakan kurang dari 2 TB ruangan cakram, dalam waktu kurang dari 3 hari - -### Mode sinkronisasi {#sync-modes} - -Untuk mengikuti dan memverifikasi data saat ini di jaringan, klien Ethereum perlu melakukan sinkronisasi dengan state jaringan terkini. Ini dilakukan dengan mengunduh data dari para rekan sejawat, yang secara kriptografik memverifikasi integritas mereka, dan membangun basis data blockchain lokal. - -Mode sinkronisasi mewakili pendekatan berbeda terhadap proses ini dengan berbagai pertukaran. Klien juga bervariasi dalam implementasi algoritma sinkronisasinya. Mengaculah selalu pada dokumentasi resmi dari klien pilihan Anda untuk spesifikasi tentang implementasi. - -#### Gambaran umum strategi {#overview-of-strategies} - -Tinjauan umum pendekatan sinkronisasi yang digunakan dalam klien untuk Jaringan Utama: - -##### Sinkonisasi penuh - -Sinkronisasi penuh mengunduh semua blok (termasuk header, transaksi, dan bukti pembayaran) dan menghasilkan state blockchain yang terus bertambah dengan mengeksekusi setiap blok dari blok genesis. - -- Meminimalkan kepercayaan dan menawarkan keamanan tertinggi dengan memverifikasi setiap transaksi. -- Dengan meningkatnya jumlah transaksi, butuh waktu berhari-hari hingga berminggu-minggu untuk memroses semua transaksi. - -##### Sinkronisasi cepat - -Sinkronisasi cepat mengunduh semua blok (termasuk header, transaksi dan bukti pembayaran), memverifikasi semua header, dan mengunduh state dan memverifikasinya dengan membandingkannya terhadap header. - -- Mengandalkan keamanan mekanisme konsensus. -- Sinkronisasi memakan waktu hanya beberapa jam. - -##### Sinkronisasi ringan - -Mode klien ringan mengunduh semua header blok, data blok, dan memverifikasi beberapa secara acak. Hanya menyinkronkan ujung rantai dari pos pemeriksaan terpercaya. - -- Hanya mengambil state terbaru saat mengandalkan kepercayaan pada pengembang dan mekanisme konsensus. -- Klien siap dipakai dengan state jaringan saat ini dalam beberapa menit. - -[Lebih lanjut tentang klien Ringan](https://www.parity.io/blog/what-is-a-light-client/) - -##### Sinkronisasi snap - -Diimplementasikan oleh Geth. Dengan menggunakan foto - foto dinamis yang disediakan oleh para rekan sejawat, ia mengambilkan semua data akun dan penyimpanan tanpa mengunduh node trie menengah dan kemudian menyusun ulang trie Merkle secara lokal. - -- Strategi sinkronisasi tercepat yang dikembangkan oleh Geth, yang saat ini adalah versi defaultnya -- Menghemat pemakaian ruangan cakram dan bandwidth jaringan tanpa mengorbankan aspek keamanan. - -[Lebih lanjut tentang Snap](https://github.com/ethereum/devp2p/blob/master/caps/snap.md) - -##### Sinkronisasi warp - -Diimplementasikan oleh OpenEthereum. Node secara teratur menghasilkan foto state konsensus yang penting dan rekan sejawat mana pun dapat mengambilkan foto ini di jaringan, yang memungkinkan sinkronisasi cepat dari titik ini. - -- Mode sinkronisasi OpenEthereum yang tercepat dan default mengandalkan foto statis yang disediakan oleh para rekan sejawat. -- Strategi yang mirip dengan sinkronisasi snap, tetapi tanpa manfaat keamanan tertentu. - -[Lebih lanjut tentang Warp](https://openethereum.github.io/Beginner-Introduction#warping---no-warp) - -##### Sinkronisasi beam - -Diimplementasikan oleh Nethermind dan Trinity. Berfungsi seperti sinkronisasi cepat tetapi juga mengunduh data yang diperlukan untuk mengeksekusi blok terkini, yang memungkinkan Anda membuat query terhadap rantai dalam beberapa menit pertama sejak dimulai. - -- Menyinkronkan state terlebih dahulu dan memungkinkan Anda membuat kueri terhadap RPC dalam waktu beberapa menit. -- Masih dalam tahap pengembangan dan belum sepenuhnya bisa diandalkan, sinkronisasi latar belakang diperlambat dan respons RPC mungkin gagal. - -[Lebih lanjut tentang Beam](https://medium.com/@jason.carver/intro-to-beam-sync-a0fd168be14a) - -#### Pengaturan di klien {#client-setup} - -Klien menawarkan opsi konfigurasi yang kaya untuk menyesuaikan dengan kebutuhan Anda. Pilih salah satu yang paling sesuai dengan Anda berdasarkan tingkat keamanan, data yang tersedia, dan biayanya. Selain algoritma sinkronisasi, Anda juga dapat menentukan pemangkasan berbagai jenis data lama. Pemangkasan memungkinkan penghapusan data lama, contohnya menghilangkan node trie state yang tidak dapat dicapai dari blok terkini. - -Perhatikan dokumentasi klien atau halaman bantuan untuk menemukan mode sinkronisasi mana yang merupakan opsi defaultnya. Anda dapat menentukan tipe sinkronisasi yang lebih disukai ketika Anda melakukan penyiapan, dalam cara: - -**Menyiapkan sinkronisasi ringan di [GETH](https://geth.ethereum.org/) atau [ERIGON](https://github.com/ledgerwatch/erigon)** - -`geth --syncmode "light"` - -Untuk detail lebih lanjut, lihat tutorialnya di [menjalankan node ringan Geth](/developers/tutorials/run-light-node-geth/). - -**Menyiapkan sinkronisasi penuh dengan arsip di [Besu](https://besu.hyperledger.org/)** - -`besu --sync-mode=FULL` - -Sama seperti konfigurasi lainnya, ia dapat ditentukan dengan bendera startup atau dalam berkas konfigurasi. Contoh lainnya adalah [Nethermind](https://docs.nethermind.io/nethermind/) yang mendorong Anda untuk memilih konfigurasi pada saat inisiasi pertama dan membuat berkas konfigurasi. - -## Klien konsensus (sebelumnya klien 'Eth2') {#consensus-clients} - -Ada beberapa klien konsensus (sebelumnya dikenal sebagai klien 'Eth2') untuk mendukung [peningkatan konsensus](/roadmap/beacon-chain/). They are running the Beacon Chain and will provide proof-of-stake consensus mechanism to execution clients after [The Merge](/roadmap/merge/). - -| Klien | Bahasa | Sistem operasi | Jaringan | -| ----------------------------------------------------------- | ---------- | --------------------- | ------------------------------------ | -| [Teku](https://pegasys.tech/teku) | Java | Linux, Windows, macOS | Rantai Suar, Goerli | -| [Nimbus](https://nimbus.team/) | Nim | Linux, Windows, macOS | Rantai Suar, Goerli | -| [Lighthouse](https://lighthouse-book.sigmaprime.io/) | Rust | Linux, Windows, macOS | Rantai Suar, Goerli, Pyrmont | -| [Lodestar](https://lodestar.chainsafe.io/) | TypeScript | Linux, Windows, macOS | Rantai Suar, Goerli | -| [Prysm](https://docs.prylabs.network/docs/getting-started/) | Go | Linux, Windows, macOS | Rantai Suar, Gnosis, Goerli, Pyrmont | - -## Perangkat keras {#hardware} - -Kebutuhan perangkat keras berbeda untuk tiap klien tapi secara umum tidak terlalu tinggi karena node hanya perlu terus dalam kondisi tersinkronisasi. Jangan merancukannya dengan penambangan yang memerlukan lebih banyak daya komputasi. Akan tetapi, waktu sinkronisasi dan performa memang meningkat dengan perangkat keras yang lebih kuat. Bergantung kebutuhan dan keinginan Anda, Ethereum dapat dijalankan pada komputer, server rumah, komputer papan tunggal, atau server privat virtual di cloud. - -Satu cara mudah untuk menjalankan node Anda sendiri adalah menggunakan kotak 'colokkan dan jalankan' seperti [DAppNode](https://dappnode.io/). Menyediakan perangkat keras untuk menjalankan klien dan apllikasi yang bergantung padanya dengan antar muka pengguna sederhana. - -### Persyaratan {#requirements} - -Sebelum menginstal klien apa pun, pastikan komputer Anda punya sumber daya yang cukup untuk menjalankannya. Persayaratan minimum dan disarankan bisa ditemukan di bawah, akan tetapi bagian kuncinya adalah kapasitas penyimpanan disk. Menyinkronisasikan blockchain Ethereum sangat bergantung banyak pada input/output. Sangat disarankan untuk memiliki satu solid-state drive (SSD). Untuk menjalankan satu klien Ethereum pada HDD, Anda akan membutuhkan paling sedikit 8GB RAM untuk digunakan sebagai cache. - -#### Persayaratan minimum {#recommended-specifications} - -- CPU dengan 2+ inti -- RAM dengan ukuran minimum 4GB dengan satu SSD, 8 GB+ jika Anda punya satu HDD -- Bandwidth dengan kecepatan 8 MBit/d - -#### Spesifikasi yang direkomendasikan {#recommended-specifications} - -- CPU cepat dengan 4+ inti -- RAM berukuran 16 GB+ -- SSD cepat dengan kapasitas penyimpanan paling sedikit 500 GB -- Bandwidth dengan kecepatan 25+ MBit/d - -Mode sinkronisasi yang Anda pilih akan mempengaruhi persyaratan ukuran ruangan cakram, tapi kami telah memperkirakan ruangan cakram yang akan Anda perlukan untuk setiap klien di bawah ini. - -| Klien | Ukuran disk (sinkronisasi cepat) | Ukuran disk (arsip penuh) | -| ------------ | -------------------------------- | ------------------------- | -| Geth | 400GB+ | 6TB+ | -| OpenEthereum | 280GB+ | 6TB+ | -| Nethermind | 200GB+ | 5TB+ | -| Besu | 750GB+ | 5TB+ | -| Erigon | N/A | 1TB+ | - -- Catatan: Erigon tidak melakukan Sinkronisasi Cepat, tapi Pemangkasan Penuh masih memungkinkan (~500GB) - -![Sebuah bagan menunjukkan GB yang diperlukan untuk satu sinkronisasi penuh sedang populer](./full-sync.png) - -![Sebuah bagan menunjukkan GB yang diperlukan untuk satu sinkronisasi arsip sedang populer](./archive-sync.png) - -Bagan ini menunjukkan bagaimana persyaratan kapasitas penyimpanan selalu berubah. Untuk data Geth dan Parity yang paling terbaru, lihat [data sinkronisasi penuh](https://etherscan.io/chartsync/chaindefault) dan [ data sinkronisasi arsip](https://etherscan.io/chartsync/chainarchive). - -### Ethereum pada komputer papan tunggal {#ethereum-on-a-single-board-computer} - -Cara paling nyaman dan murah untuk menjalankan node Ethereum adalah menggunakan komputer papan tungggal dengan arstitektur ARM seperti Raspberry Pi. [Ethereum di ARM](https://twitter.com/EthereumOnARM) menyediakan gambar dari klien Geth, Parity, Nethermind, dan Besu. Ini adalah tutorial sederhana tentang [bagaimana menyusun dan menyiapkan klien ARM](/developers/tutorials/run-node-raspberry-pi/). - -Perangkat kecil, terjangkau dan efisien seperti ini, ideal untuk menjalankan node di rumah. - -## Bacaan lebih lanjut {#further-reading} - -Ada banyak informasi tentang klien Ethereum di internet. Berikut adalah beberapa sumber daya yang mungkin bisa membantu. - -- [Ethereum 101 - Bagian 2 - Memahami Node](https://kauri.io/ethereum-101-part-2-understanding-nodes/48d5098292fd4f11b251d1b1814f0bba/a) _– Wil Barnes, 13 Februari 2019_ -- [Menjalankan Node Penuh Ethereum: Panduan bagi Mereka yang Hampir Tidak Termotivasi](https://medium.com/@JustinMLeroux/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _– Justin Leroux, 7 November 2019_ -- [Menganalisis persyaratan perangkat keras untuk menjadi node tervalidasi penuh Ethereum](https://medium.com/coinmonks/analyzing-the-hardware-requirements-to-be-an-ethereum-full-validated-node-dc064f167902) _– Albert Palau, 24 September 2018_ -- [Menjalankan Node Hyperledger Besu di Jaringan Utama Ethereum: Keuntungan, Persyaratan, dan Penyiapan](https://pegasys.tech/running-a-hyperledger-besu-node-on-the-ethereum-mainnet-benefits-requirements-and-setup/) _– Felipe Faraggi, 7 Mei 2020_ - -## Topik terkait {#related-topics} - -- [Blok](/developers/docs/blocks/) -- [Jaringan](/developers/docs/networks/) - -## Tutorial terkait {#related-tutorials} - -- [Menjalankan Node dengan Geth](/developers/tutorials/run-light-node-geth/) _– Cara mengunduh, menginstal, dan menjalankan Geth. Covering syncmodes, the JavaScript console, and more._ -- [Ubah Raspberry Pi 4 Anda menjadi node validator cukup dengan mem-flash kartu MicroSD – Panduan instalasi](/developers/tutorials/run-node-raspberry-pi/) _– Flash Raspberry Pi 4, colokkan kabel ethernet, hubungkan SSD dan nyalakan perangkat untuk mengubah Raspberry Pi 4 menjadi node penuh Ethereum yang menjalankan lapisan eksekusi (Jaringan Utama) dan / atau lapisan konsensus (Rantai Suar / validator)._ diff --git a/src/content/translations/id/developers/docs/nodes-and-clients/run-a-node/index.md b/src/content/translations/id/developers/docs/nodes-and-clients/run-a-node/index.md deleted file mode 100644 index 7b07bf302b1..00000000000 --- a/src/content/translations/id/developers/docs/nodes-and-clients/run-a-node/index.md +++ /dev/null @@ -1,162 +0,0 @@ ---- -title: Jalankan node Ethereum Anda sendiri -description: Pengenalan umum untuk menjalankan instance klien Ethereum Anda sendiri. -lang: id -sidebarDepth: 2 ---- - -Menjalankan node Anda sendiri memberi Anda beragam manfaat, membuka peluang baru, dan membantu mendukung ekosistem. Halaman ini akan memandu Anda menjalankan node Anda sendiri dan mengambil bagian dalam memvalidasi transaksi Ethereum. - -## Prasyarat {#prerequisites} - -Anda harus mengerti apa yang dimaksud node Ethereum dan kenapa Anda ingin menjalankan kliennya. Ini dibahas di [Node dan klien](/developers/docs/nodes-and-clients/). - -If you're new to the topic of running a node, or looking for a less technical path, we recommend first checking out our user-friendly introduction on [running an Ethereum node](/run-a-node). - -## Memilih pendekatan {#choosing-approach} - -Langkah pertama dalam menjalankan node Anda adalah memilih pendekatan Anda. Anda harus memilih klien (perangkat lunaknya), lingkungan, dan parameter yang Anda inginkan untuk memulai. Lihat semua [klien Jaringan Utama](/developers/docs/nodes-and-clients/#advantages-of-different-implementations) yang tersedia. - -#### Pengaturan klien {#client-settings} - -Implementasi klien memungkinkan mode sinkronisasi yang berbeda dan beragam opsi lainnya. [Mode sinkronisasi](/developers/docs/nodes-and-clients/#sync-modes) mewakili metode pengunduhan dan pengesahan data rantai blok yang berbeda. Sebelum memulai node, Anda harus memutuskan jaringan dan mode sinkronisasi apa yang akan digunakan. Yang paling penting untuk dipertimbangkan adalah ruang disk dan waktu sinkronisasi yang dibutuhkan klien. - -Semua fitur dan opsi dapat ditemukan di dokumentasi klien. Beragam konfigurasi klien dapat diatur dengan mengeksekusi klien dengan bendera yang sesuai. Untuk kebutuhan pengujian, Anda mungkin memilih menjalankan klien pada salah satu jaringan testnet. [Lihat ringkasan jaringan yang didukung](/developers/docs/nodes-and-clients/#execution-clients). - -### Lingkungan dan perangkat keras {#environment-and-hardware} - -#### Lokal atau cloud {#local-vs-cloud} - -Klien Ethereum dapat dijalankan pada komputer kelas konsumen dan tidak membutuhkan perangkat keras khusus, contohnya seperti dalam penambangan. Oleh karena itu, Anda memiliki beragam opsi untuk menyebarkan berdasarkan kebutuhan Anda. Untuk menyederhanakannya, mari pikirkan tentang menjalankan node di mesin fisik lokal dan server cloud: - -- Cloud - - Penyedia menawarkan waktu aktif server yang tinggi, alamat IP publik yang statis - - Mendapatkan server terdedikasi atau virtual dapat memberi kenyamanan lebih dari pada membangunnya sendiri - - Sebagai gantinya mempercayai penyedia server pihak ketiga - - Karena ukuran penyimpanan untuk node penuh dibutuhkan, harga server yang disewakan mungkin menjadi tinggi -- Perangkat keras milik sendiri - - Pendekatan yang lebih tepercaya dan bebas - - Investasi satu kali - - Opsi untuk membeli mesin yang sudah dikonfigurasi - - Anda harus secara fisik menyiapkan, memelihara, dan berpotensi melakukan pencarian masalah pada mesin - -Kedua opsi tersebut memiliki kelebihan berbeda yang diringkas seperti di atas. Jika Anda mencari solusi cloud, sebagai tambahan dari banyak penyedia komputasi cloud tradisional, terdapat pula layanan yang berfokus pada menyebarkan node. Sebagai contoh: - -- [QuikNode](https://www.quiknode.io/) -- [Blockdaemon](https://blockdaemon.com) -- [LunaNode](https://www.lunanode.com/) -- [Alchemy](https://www.alchemy.com/) - -#### Perangkat keras {#hardware} - -Namun, jaringan terdesentralisasi yang tahan sensor seharusnya tidak bergantung pada penyedia cloud. Lebih sehat bagi ekosistem jika Anda menjalankan node Anda sendiri pada perangkat keras. Opsi termudahnya adalah mesin yang sudah dikonfigurasi seperti: - -- [DappNode](https://dappnode.io/) -- [Avado](https://ava.do/) - -Periksa [persyaratan ruang disk untuk setiap klien dan mode sinkronisasi](/developers/docs/nodes-and-clients/#requirements) minimum dan yang direkomendasikan. Secara umum, kekuatan komputasi sederhana seharusnya sudah cukup. Masalahnya biasanya pada kecepatan drive. Selama inisiasi sinkronisasi, klien Ethereum melakukan banyak operasi baca/tulis. Oleh karena itu, SSD sangat direkomendasikan. Klien bahkan mungkin [tidak dapat menyinkronkan state terkini pada HDD](https://github.com/ethereum/go-ethereum/issues/16796#issuecomment-391649278) dan tersangkut beberapa blok di belakang Jaringan Utama. Anda dapat menjalankan sebagian besar klien di sebuah [komputer papan tunggal dengan ARM](/developers/docs/nodes-and-clients/#ethereum-on-a-single-board-computer/). Anda juga dapat menggunakan sistem operasi [Ethbian](https://ethbian.org/index.html) untuk Raspberry Pi 4. This lets you [run a client by flashing the SD card](/developers/tutorials/run-node-raspberry-pi/). Berdasarkan pilihan perangkat lunak dan keras Anda, persyaratan waktu sinkronisasi dan penyimpanan awal mungkin beragam. Pastikan untuk [memeriksa persyaratan waktu sinkronisasi dan penyimpanan](/developers/docs/nodes-and-clients/#recommended-specifications). Juga pastikan koneksi internet Anda tidak dibatasi oleh [batas bandwidth](https://wikipedia.org/wiki/Data_cap). Disarankan untuk menggunakan koneksi tidak terbatas karena sinkronisasi dan data awal yang disiarkan ke jaringan dapat melebihi batas Anda. - -#### Sistem operasi {#operating-system} - -Semua klien mendukung sistem operasi utama - Linux, MacOS, Windows. Ini berarti Anda dapat menjalankan node pada desktop reguler atau mesin server dengan sistem operasi (OS) yang paling sesuai dengan kebutuhan Anda. Pastikan OS Anda merupakan versi terkini untuk menghindari masalah dan kerentanan keamanan potensial. - -## Menjalankan node {#spinning-up-node} - -### Mendapatkan perangkat lunak klien {#getting-the-client} - -Pertama, unduh [perangkat lunak klien](/developers/docs/nodes-and-clients/#execution-clients) yang Anda inginkan - -Anda cukup mengunduh aplikasi yang dapat dieksekusi atau paket instalasi yang sesuai dengan sistem dan arsitektur operasi Anda. Selalu verifikasi tanda tangan dan checksum dari paket yang diunduh. Beberapa klien juga menawarkan repositori untuk instalasi dan pembaruan yang lebih mudah. Jika Anda mau, Anda dapat membangun dari sumber. Semua klien adalah sumber terbuka sehingga Anda dapat membangun mereka dari kode sumber dengan pengkompilasi yang sesuai. - -Biner yang dapat dieksekusi untuk implementasi klien Jaringan Utama stabil dapat diunduh dari halaman rilisnya: - -- [Geth](https://geth.ethereum.org/downloads/) -- [OpenEthereum,](https://github.com/openethereum/openethereum/releases) -- [Nethermind](https://downloads.nethermind.io/) -- [Besu](https://besu.hyperledger.org/en/stable/) -- [Erigon](https://github.com/ledgerwatch/erigon) - -**Perhatikan bahwa OpenEthereum [telah menjadi usang](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) dan tidak lagi dipertahankan.** Gunakan dengan hati-hati dan lebih baik beralih ke implementasi klien lainnya. - -### Memulai klien {#starting-the-client} - -Sebelum memulai perangkat lunak klien Ethereum, lakukan pemeriksaan terakhir bahwa lingkungan Anda telah siap. Sebagai contoh, pastikan: - -- Ada ruang disk yang cukup jika dilihat dari jaringan dan mode sikronisasi yang dipilih. -- Memori dan CPU tidak terhambat oleh program lainnya. -- Sistem operasi diperbarui ke versi terkini. -- Sistem memiliki waktu dan tanggal yang tepat. -- Router dan firewall Anda menerima koneksi pada port pendengar. Secara default, klien Ethereum menggunakan port pendengar (TCP) dan port penemuan (UDP), keduanya pada 30303 secara default. - -Jalankan klien Anda pada testnet terlebih dahulu untuk menolong memastikan semuanya bekerja dengan benar. [Menjalankan node ringan Geth](/developers/tutorials/run-light-node-geth/) seharusnya membantu. Anda perlu mendeklarasikan pengaturan klien mana pun yang bukan default pada awalnya. Anda dapat menggunakan bendera atau berkas konfigurasi untuk mendeklarasikan konfigurasi yang diinginkan. Lihat dokumentasi klien Anda untuk eksekusi Klien khusus yang akan memulai fungsi inti, titik akhir terpilihnya, dan mulai mencari peer. Setelah berhasil menemukan peer, klien memulai sinkronisasi. Data rantai blok saat ini akan tersedia setelah klien berhasil disinkronisasikan dengan state saat ini. - -### Menggunakan klien {#using-the-client} - -Klien menawarkan titik akhir API RPC yang dapat Anda gunakan untuk mengontrol klien dan berinteraksi dengan jaringan Ethereum dalam berbagai cara: - -- Secara manual memanggil mereka dengan protokol yang sesuai (contohnya menggunakan `curl`) -- Melekatkan konsol yang disediakan (misalnya `geth attach`) -- Mengimplementasikan mereka dalam aplikasi - -Klien berbeda memiliki implementasi berbeda pada titik akhir RPC. Tetapi ada JSON-RPC standar yang dapat Anda gunakan dengan setiap klien. Untuk ringkasannya, [baca dokumen JSON-RPC](https://eth.wiki/json-rpc/API). Aplikasi yang membutuhkan informasi dari jaringan Ethereum dapat menggunakan RPC ini. Sebagai contoh, dompet populer MetaMask memungkinkan Anda [menjalankan instance rantai blok lokal dan terhubung dengannya](https://metamask.zendesk.com/hc/en-us/articles/360015290012-Using-a-Local-Node). - -#### Menjangkau RPC {#reaching-rpc} - -Port default JSON-RPC adalah `8545` tetapi Anda dapat memodifikasi port titik akhir lokalnya dalam berkas konfigurasi. Secara default, antarmuka RPC hanya dapat dijangkau pada host lokal komputer Anda. Untuk membuatnya dapat diakses dari jarak jauh, Anda mungkin ingin mengeksposnya ke publik dengan mengubah alamatnya ke `0.0.0.0`. Ini akan membuatnya dapat dijangkau melalui alamat IP lokal dan publik. Dalam kebanyakan kasus, Anda juga akan perlu menyiapkan port yang meneruskan ke router Anda. - -Anda harus melakukan ini dengan hati-hati karena ini akan memungkinkan siapa pun di internet mengontrol node Anda. Pelaku kejahatan dapat mengakses node Anda untuk menghentikan sistem Anda atau mencuri dana Anda jika Anda menggunakan klien Anda sebagai dompet. - -Cara mengatasinya adalah mencegah termodifikasinya metode RPC yang berpotensi berbahaya. Sebagai contoh, dengan `geth`, Anda dapat mendeklarasikan metode yang dapat dimodifikasi dengan bendera: `--http.api web3,eth,txpool`. - -Anda juga dapat menghost akses ke antarmuka RPC Anda dengan menunjukkan layanan server web, seperti Nginx, ke alamat dan port lokal klien Anda. - -Cara paling sederhana dan paling menjaga privasi adalah mengatur titik akhir yang dapat dicapai publik, Anda dapat melakukan host di layanan onion [Tor](https://www.torproject.org/) Anda sendiri. Ini akan memungkinkan Anda mencapai RPC di luar jaringan lokal Anda tanpa alamat IP publik yang statis ataupun port yang terbuka. Untuk melakukannya: - -- Instal `tor` -- Edit konfigurasi `torrc` untuk mengaktifkan layanan tersembunyi dengan alamat dan port RPC klien Anda -- Mulai ulang layanan `tor` - -Setelah Anda memulai ulang Tor, Anda akan mendapat kunci layanan tersembunyi dan sebuah nama host di direktori yang Anda inginkan. Dari situ, RPC Anda dapat dicapai dalam nama host `.onion`. - -### Mengoperasikan node {#operating-the-node} - -Anda harus mengawasi node Anda secara berkala untuk memastikannya berjalan dengan baik. Anda sesekali mungkin perlu melakukan pemeliharaan. - -#### Menjaga node tetap daring {#keeping-node-online} - -Node Anda tidak harus daring tanpa henti tetapi Anda harus menjaganya daring sebisa mungkin untuk membuatnya tetap tersinkronisasi dengan jaringan. Anda dapat mematikannya untuk memulai ulang tetapi ingatlah bahwa: - -- Mematikan dapat memakan waktu beberapa menit jika state terkininya masih ditulis dalam diska. -- Mematikan secara paksa dapat merusak basis data. -- Klien Anda akan tidak tersinkronisasi dengan jaringan dan akan membutuhkan sinkronisasi ulang ketika Anda memulainya kembali. - -_Ini tidak berlaku pada node validator lapisan konsensus._ Menjadikan node Anda luring akan berdampak pada semua layanan yang bergantung padanya. Jika Anda menjalankan node untuk tujuan _penaruhan_ Anda seharusnya mencoba meminimalisasi waktu henti sebisa mungkin. - -#### Membuat layanan klien {#creating-client-service} - -Pertimbangkan membuat layanan untuk menjalankan klien Anda secara otomatis saat memulai. Sebagai contoh pada server Linux, praktik yang baiknya adalah membuat layanan yang mengeksekusi klien dengan konfigurasi yang sesuai, di bawah pengguna dengan hak istimewa yang terbatas dan memulai ulang secara otomatis. - -#### Memperbarui klien {#updating-client} - -Anda perlu menjaga perangkat lunak klien Anda dalam versi terkini dengan patch keamanan, fitur-fitur, dan [EIPs](/eips/) terbaru. Terutama sebelum [fork keras](/history/), pastikan Anda menjalankan versi klien yang benar. - -#### Menjalankan layanan tambahan {#running-additional-services} - -Menjalankan node Anda sendiri memungkinkan Anda menggunakan layanan yang membutuhkan akses langsung ke RPC klien Ethereum. Layanan ini dibangun di atas Ethereum seperti [solusi lapisan 2](/developers/docs/scaling/#layer-2-scaling), klien konsensus, dan infrastruktur Ethereum lainnya. - -#### Memonitor node {#monitoring-the-node} - -"Untuk memonitor node Anda dengan benar, pertimbangkan mengoleksi metrik. Klien menyediakan titik akhir metrik sehingga Anda bisa mendapatkan data komprehensif tentang node Anda. Gunakan perangkat seperti [InfluxDB](https://www.influxdata.com/get-influxdb/) atau [Prometheus](https://prometheus.io/) untuk membuat basis data yang dapat Anda ubah menjadi visualisasi dan bagan pada perangkat lunak seperti [Grafana](https://grafana.com/). Terdapat banyak pengaturan untuk menggunakan perangkat lunak ini dan dasbor Grafana yang berbeda untuk memvisualisasikan node Anda dan jaringannya secara keseluruhan. Sebagai bagian dari pengawasan Anda, pastikan untuk memperhatikan performa mesin Anda. Selama sinkronisasi awal node Anda, perangkat lunak klien mungkin membebani CPU dan RAM. Sebagai tambahan pada Grafana, Anda dapat menggunakan perangkat yang ditawarkan OS Anda seperti `htop` atau `uptime` untuk melakukannya. - -## Bacaan lebih lanjut {#further-reading} - -- [Menganalisis persayaratan perangkat keras untuk menjadi node tervalidasi penuh Ethereum](https://medium.com/coinmonks/analyzing-the-hardware-requirements-to-be-an-ethereum-full-validated-node-dc064f167902) _– Albert Palau, 24 September 2018_ -- [Menjalankan Node Penuh Ethereum: Satu Panduan untuk Anda yang Sedikit Termotivasi](https://medium.com/@JustinMLeroux/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _– Justin Leroux, 7 November 2019_ -- [Menjalankan Node Hyperledger Besu pada Jaringan Utama Ethereum: Manfaat, Persyaratan, dan Persiapannya](https://pegasys.tech/running-a-hyperledger-besu-node-on-the-ethereum-mainnet-benefits-requirements-and-setup/) _– Felipe Faraggi, 7 Mei 2020_ -- [Menyebarkan Klien Nethermind Ethereum dengan Memonitor Stack](https://medium.com/nethermind-eth/deploying-nethermind-ethereum-client-with-monitoring-stack-55ce1622edbd) _– Nethermind.eth, 8 Juli 2020_ - -## Topik terkait {#related-topics} - -- [Node dan klien](/developers/docs/nodes-and-clients/) -- [Blok](/developers/docs/blocks/) -- [Jaringan](/developers/docs/networks/) diff --git a/src/content/translations/id/developers/docs/smart-contracts/anatomy/index.md b/src/content/translations/id/developers/docs/smart-contracts/anatomy/index.md deleted file mode 100644 index 22c4617e742..00000000000 --- a/src/content/translations/id/developers/docs/smart-contracts/anatomy/index.md +++ /dev/null @@ -1,658 +0,0 @@ ---- -title: Anatomi kontrak pintar -description: Penjabaran mendalam tentang anatomi kontak cerdas – fungsi, data, dan variabel. -lang: id ---- - -Kontrak pintar adalah program yang dijalankan pada sebuah alamat di Ethereum. Kontrak pintar terbuat dari data dan fungsi yang bisa dieksekusi saat menerima sebuah transaksi. Berikut adalah gambaran umum dari komponen yang menyusun sebuah kontrak pintar. - -### Prasyarat {#prerequisites} - -Pastikan Anda telah membaca tentang [kontrak pintar](/developers/docs/smart-contracts/) terlebih dahulu. Dokumen ini menganggap Anda telah terbiasa dengan bahasa pemrograman seperti JavaScript atau Python. - -## Data {#data} - -Setiap data kontrak harus ditetapkan ke suatu lokasi: baik ke `storage` atau `memory`. Untuk memodifikasi penyimpanan di sebuah kontrak pintar biayanya mahal, jadi Anda perlu mempertimbangkan tempat untuk menyimpan data Anda. - -### Penyimpanan {#storage} - -Data yang persisten dirujuk sebagai penyimpanan dan diwakilkan oleh variabel state. Nilai-nilai ini disimpan secara permanen di blockchain. Anda perlu mendeklarasikan jenisnya sehingga kontrak bisa tetap melacak kapasitas penyimpanan pada blockchain yang diperlukan kontrak ketika dikompilasi. - -```solidity -// Contoh Solidity -contract SimpleStorage { - uint storedData; // State variable - // ... -} -``` - -```python -# Vyper example -storedData: int128 -``` - -Jika Anda telah memprogram bahasa yang berorientasi objek, Anda mungkin akan lebih mengenal sebagian besar jenisnya. Namun `address` mungkin terdengar asing jika Anda seorang pengembang pemula di Ethereum. - -Suatu jenis `address` bisa menampung alamat Ethereum yang setara dengan 20 bita atau 160 bit. Alamat kembali dalam notasi heksadesimal dengan awalan 0x. - -Jenis lainnya meliputi: - -- boolean -- bilangan bulat -- angka poin tetap -- array bita berukuran tetap -- array bita berukuran dinamis -- Literal rasional dan bilangan bulat -- Literal string -- Literal heksadesimal -- Enum - -Untuk penjelasan lebih lanjut, lihat dokumen: - -- [Lihat jenis Vyper](https://vyper.readthedocs.io/en/v0.1.0-beta.6/types.html#value-types) -- [Lihat jenis Solidity](https://solidity.readthedocs.io/en/latest/types.html#value-types) - -### Memori {#memory} - -Nilai yang hanya disimpan selama masa eksekusi fungsi kontrak disebut variabel memori. Karena nilai ini tidak disimpan secara permanen di blockchain, lebih murah untuk digunakan. - -Pelajari selengkapnya tentang cara EVM menyimpan data (Penyimpanan, Memori, dan Tumpukan) di [dokumen Solidity](https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html?highlight=memory#storage-memory-and-the-stack). - -### Variabel lingkungan {#environment-variables} - -Selain variabel yang Anda tetapkan pada kontrak, ada beberapa variabel global khusus. Variabel ini terutama digunakan untuk memberikan informasi tentang blockchain atau transaksi saat ini. - -Contoh: - -| **Prop** | **Variabel state** | **Deskripsi** | -| ----------------- | ------------------ | ------------------------------------- | -| `block.timestamp` | uint256 | Stempel waktu epoch blok saat ini | -| `msg.sender` | alamat | Pengirim pesan (pemanggilan saat ini) | - -## Fungsi {#functions} - -Dalam istilah yang paling sederhana, fungsi bisa mendapatkan informasi atau mengatur informasi dalam menanggapi transaksi yang masuk. - -Ada dua jenis pemanggilan fungsi: - -- `internal` - ini tidak menghasilkan pemanggilan EVM - - Fungsi internal dan variabel state hanya bisa diakses secara internal (yaitu dari dalam kontrak saat ini atau kontrak yang diturunkan darinya) -- `external` - ini menghasilkan pemanggilan EVM - - Fungsi eksternal adalah bagian dari antarmuka kontrak, yang berarti bisa dipanggil dari kontrak lain dan melalui transaksi. Fungsi eksternal `f` tidak bisa dipanggil secara internal (yaitu `f()` tidak berfungsi, tapi `this.f()` dapat berfungsi). - -Fungsi pemanggilan juga bisa bersifat `public` atau `private` - -- Fungsi `public` bisa dipanggil secara internal dari dalam kontrak atau secara eksternal melalui message -- Fungsi `private` hanya terlihat untuk kontrak yang ditetapkan di dalam dan bukan dalam kontrak turunan - -Kedua fungsi dan variabel state ini bisa dibuat menjadi publik atau privat - -Berikut adalah fungsi untuk memperbarui variabel state dalam sebuah kontrak: - -```solidity -// Contoh Solidity -function update_name(string value) public { - dapp_name = value; -} -``` - -- `Nilai` parameter dari `string` jenis diteruskan ke dalam fungsi: `update_name` -- Fungsi dideklarasikan sebagai `public`, berarti siapa pun bisa mengaksesnya -- Fungsi tidak dideklarasikan sebagai `view`, sehingga bisa memodifikasi state kontrak - -### Fungsi view {#view-functions} - -Fungsi ini berjanji untuk tidak memodifikasi state dari data kontrak. Contoh umumnya adalah fungsi "pengambil" – Anda mungkin menggunakan ini untuk mendapatkan saldo pengguna sebagai contohnya. - -```solidity -// Contoh Solidity -function balanceOf(address _owner) public view returns (uint256 _balance) { - return ownerPizzaCount[_owner]; -} -``` - -```python -dappName: public(string) - -@view -@public -def readName() -> string: - return dappName -``` - -Apa yang dianggap sebagai memodifikasi state: - -1. Menulis ke dalam variabel state. -2. [Menerbitkan aksi](https://solidity.readthedocs.io/en/v0.7.0/contracts.html#events). -3. [Membuat kontrak lain](https://solidity.readthedocs.io/en/v0.7.0/control-structures.html#creating-contracts). -4. Menggunakan `selfdestruct`. -5. Mengirim eter melalui panggilan. -6. Memanggil fungsi apa pun yang tidak bertanda `view` atau `pure`. -7. Menggunakan pemanggilan level rendah. -8. Menggunakan perakitan sebaris yang berisi opcode tertentu. - -### Fungsi pembangun {#constructor-functions} - -Fungsi `constructor` hanya dijalankan sekali saat kontrak digunakan untuk pertama kalinya. Seperti `constructor` di banyak bahasa pemrograman berbasis kelas, fungsi ini sering menjalankan variabel state sesuai dengan nilai yang telah ditentukan. - -```solidity -// Contoh Solidity -// Jalankan data kontrak, siapkan `pemilik` -// sesuai dengan alamat dari pembuat kontrak. -constructor() public { - // Semua kontrak pintar bergantung pada transaksi eksternal untuk memicu fungsinya. - // `msg` adalah sebuah variabel global yang mencakup data relevan sesuai dengan transaksi yang telah disiapkan, - // seperti alamat dari pengirim dan nilai ETH yang termasuk dalam transaksi. - // Pelajari lebih banyak: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties - owner = msg.sender; -} -``` - -```python -# contoh Vyper - -@external -def __init__(_beneficiary: address, _bidding_time: uint256): - self.beneficiary = _beneficiary - self.auctionStart = block.timestamp - self.auctionEnd = self.auctionStart + _bidding_time -``` - -### Fungsi bawaan {#built-in-functions} - -Selain dari variabel dan fungsi yang Anda tetapkan pada kontrak Anda, ada beberapa fungsi bawaan spesial. Contoh paling jelas adalah: - -- `address.send()` – Solidity -- `send(address)` – Vyper - -Ini memungkinkan kontrak untuk mengirim ETH ke akun lain. - -## Menulis fungsi {#writing-functions} - -Fungsi Anda memerlukan: - -- variabel dan tipe parameter (jika fungsi menerima parameter) -- deklarasi internal/eksternal -- deklarasi pure/view/payable -- tipe pengembalian (jika fungsi mengembalikan nilai) - -```solidity -pragma solidity >=0.4.0 <=0.6.0; - -contract ExampleDapp { - string dapp_name; // state variable - - // Dipanggil saat kontrak disebarkan dan jalankan nilai - constructor() public { - dapp_name = "My Example dapp"; - } - - // Fungsi Get - function read_name() public view returns(string) { - return dapp_name; - } - - // Tetapkan Fungsi - function update_name(string value) public { - dapp_name = value; - } -} -``` - -Sebuah kontrak lengkap mungkin tampak seperti ini. Di sini, fungsi `constructor` menyediakan nilai awal untuk variabel `dapp_name`. - -## Aksi dan log {#events-and-logs} - -Aksi memungkinkan Anda berkomunikasi dengan kontrak pintar dari frontend Anda atau aplikasi berbayar lainnya. Ketika sebuah transaksi ditambang, kontrak pintar bisa menerbitkan aksi dan menulis log pada blockchain yang kemudian dapat diproses frontend. - -## Contoh dengan anotasi {#annotated-examples} - -Ini adalah beberapa contoh yang ditulis dalam Solidity. Jika Anda ingin bermain dengan kode tersebut, Anda dapat berinteraksi dengannya di [Remix](http://remix.ethereum.org). - -### Hello world {#hello-world} - -```solidity -// Tentukan versi Solidity, gunakan pembuatan versi semantik. -// Pelajari lebih banyak: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma -pragma solidity ^0.5.10; - -// Tentukan sebuah kontak bernama `HaloDunia`. -// Satu kontrak adalah koleksi dari fungsi dan data (statenya). -// Setelah disebarkan, sebuah kontrak tinggal di alamat spesifik pada blockchain Ethereum. -// Pelajari lebih banyak: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html -contract HelloWorld { - - // Deklarasikan `message` variabel state dari `string` tipe. - // Variabel state adalah variabel yang nilainya secara permanen disimpan dalam penyimpanan kontrak. - // Kata kunci `publik` membuat variabel dapat diakses dari luar kontrak - //dan menciptakan fungsi yang dengannya kontrak atau klien lain bisa memanggil untuk mengakses nilai. - string public message; - - // Sama seperti banyak bahasa berorientasi objek yang berbasis kelas, sebuah pembangun adalah - // sebuah fungsi spesial yang hanya dieksekusi saat pembuatan kontrak. - // Pembangun digunakan untuk menjalankan data kontrak. - // Pelajari lebih banyak: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constructors - constructor(string memory initMessage) public { - // Menerima satu argumen string `initMessage` dan tetapkan nilai - // ke dalam variabel penyimpanan `message` kontrak). - message = initMessage; - } - - // Sebuah fungsi publik yang menerima argumen string - // dan memperbarui variabel penyimpanan`message`. - function update(string memory newMessage) public { - message = newMessage; - } -} -``` - -### Token {#token} - -```solidity -pragma solidity ^0.5.10; - -contract Token { - //Sebuah `alamat` dapat disamakan dengan sebuah alamat email - ia digunakan untuk mengidentifikasi sebuah akun di Ethereum. - // Alamat bisa mewakilkan sebuah kontrak pintar atau satu akun (pengguna) eksternal. - // Pelajari lebih banyak: https://solidity.readthedocs.io/en/v0.5.10/types.html#address - address public owner; - - // Sebuah `mapping` adalah satu struktur data tabel hash. - // `mapping` ini menetapkan sebuah integer yang tidak ditentukan (saldo token) pada sebuah alamat (pemilik token). - // Pelajari lebih banyak: https://solidity.readthedocs.io/en/v0.5.10/types.html#mapping-types - mapping (address => uint) public balances; - - // Aksi memungkinkan logging aktivitas pada blockchain. - // Klien Ethereum bisa mendengarkan aksi untuk bereaksi dengan perubahan state kontrak. - // Pelajari lebih banyak: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#events - event Transfer(address from, address to, uint amount); - - // Jalankan data kontrak, siapkan `pemilik` - // di alamat dari pembuat kontrak. - constructor() public { - // Semua kontrak pintar bergantung pada transaksi eksternal untuk memicu fungsinya. - // `msg` adalah sebuah variabel global yang telah mencakup data relevan sesuai dengan transaksi yang telah disiapkan, - // seperti alamat dari pengirim dan nilai ETH yang termasuk dalam transaksi. - // Pelajari lebih banyak: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties - owner = msg.sender; - } - - // Membuat sejumlah token baru dan mengirimkan mereka ke satu alamat. - function mint(address receiver, uint amount) public { - // `require` is struktur kontrol yang digunakan untuk melaksanakan kondisi tertentu. - // Jika sebuah pernyataan `require` mengevaluasi ke `palsu`, satu pengecualian terpicu, - // yang membalikkan semua perubahan yang dibuat pada state selama pemanggilan saat ini. - //Pelajari lebih banyak: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions - - // Hanya pemilik kontrak yang bisa memanggil fungsi ini - require(msg.sender == owner, "You are not the owner."); - - // Melaksanakan sejumlah maksimum token - require(amount < 1e60, "Maximum issuance exceeded"); - - // Meningkatkan saldo dari `receiver` dalam `amount` - balances[receiver] += amount; - } - - // Mengirim sejumlah token yang ada dari pemanggil manapun ke satu alamat. - function transfer(address receiver, uint amount) public { - // Pengirim harus punya token cukup untuk mengirim - require(amount <= balances[msg.sender], "Insufficient balance."); - - // Sesuaikan saldo token dari dua alamat - balances[msg.sender] -= amount; - balances[receiver] += amount; - - // Terbitkan aksi yang telah ditentukan sebelumnya - emit Transfer(msg.sender, receiver, amount); - } -} -``` - -### Aset digital unik {#unique-digital-asset} - -```solidity -pragma solidity ^0.5.10; - -// Impor simbol dari berkas lain ke dalam kontrak saat ini. -// Dalam kasus ini, sejumlah kontrak penolong dari OpenZeppelin. -// Pelajari lebih banyak: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#importing-other-source-files - -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; -import "../node_modules/@openzeppelin/contracts/introspection/ERC165.sol"; -import "../node_modules/@openzeppelin/contracts/math/SafeMath.sol"; - -// Kata kunci `is` digunakan untuk mewarisi fungsi dan kata kunci dari kontrak eksternal. -// Dalam kasus ini, `CryptoPizza` mewarisi dari kontrak `IERC721` dan `ERC165`. -// Pelajari lebih banyak: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#inheritance -contract CryptoPizza is IERC721, ERC165 { - // Gunakan pustaka Safe Math OpenZeppelin untuk melakukan operasi aritmatika dengan aman. - // Pelajari lebih banyak: https://docs.openzeppelin.com/contracts/2.x/api/math#SafeMath - using SafeMath for uint256; - - // Variabel state konstan di Solidity sama dengan bahasa lainnya - // tapi Anda harus menetapkan satu ekpresi yang konstan pada waktu pengompilasian. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constant-state-variables - uint256 constant dnaDigits = 10; - uint256 constant dnaModulus = 10 ** dnaDigits; - bytes4 private constant _ERC721_RECEIVED = 0x150b7a02; - - // Struct types let you define your own type - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#structs - struct Pizza { - string name; - uint256 dna; - } - - // Creates an empty array of Pizza structs - Pizza[] public pizzas; - - // Mapping from pizza ID to its owner's address - mapping(uint256 => address) public pizzaToOwner; - - // Mapping from owner's address to number of owned token - mapping(address => uint256) public ownerPizzaCount; - - // Mapping from token ID to approved address - mapping(uint256 => address) pizzaApprovals; - - // You can nest mappings, this example maps owner to operator approvals - mapping(address => mapping(address => bool)) private operatorApprovals; - - // Internal function to create a random Pizza from string (name) and DNA - function _createPizza(string memory _name, uint256 _dna) - // The `internal` keyword means this function is only visible - // within this contract and contracts that derive this contract - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#visibility-and-getters - internal - // `isUnique` is a function modifier that checks if the pizza already exists - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html#function-modifiers - isUnique(_name, _dna) - { - // Adds Pizza to array of Pizzas and get id - uint256 id = SafeMath.sub(pizzas.push(Pizza(_name, _dna)), 1); - - // Checks that Pizza owner is the same as current user - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions - - // note that address(0) is the zero address, - // indicating that pizza[id] is not yet allocated to a particular user. - - assert(pizzaToOwner[id] == address(0)); - - // Maps the Pizza to the owner - pizzaToOwner[id] = msg.sender; - ownerPizzaCount[msg.sender] = SafeMath.add( - ownerPizzaCount[msg.sender], - 1 - ); - } - - // Creates a random Pizza from string (name) - function createRandomPizza(string memory _name) public { - uint256 randDna = generateRandomDna(_name, msg.sender); - _createPizza(_name, randDna); - } - - // Generates random DNA from string (name) and address of the owner (creator) - function generateRandomDna(string memory _str, address _owner) - public - // Functions marked as `pure` promise not to read from or modify the state - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#pure-functions - pure - returns (uint256) - { - // Generates random uint from string (name) + address (owner) - uint256 rand = uint256(keccak256(abi.encodePacked(_str))) + - uint256(_owner); - rand = rand % dnaModulus; - return rand; - } - - // Returns array of Pizzas found by owner - function getPizzasByOwner(address _owner) - public - // Functions marked as `view` promise not to modify state - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#view-functions - view - returns (uint256[] memory) - { - // Uses the `memory` storage location to store values only for the - // lifecycle of this function call. - // Pelajari lebih banyak: https://solidity.readthedocs.io/en/v0.5.10/introduction-to-smart-contracts.html#storage-memory-and-the-stack - uint256[] memory result = new uint256[](ownerPizzaCount[_owner]); - uint256 counter = 0; - for (uint256 i = 0; i < pizzas.length; i++) { - if (pizzaToOwner[i] == _owner) { - result[counter] = i; - counter++; - } - } - return result; - } - - // Mentransfer Pizza dan kepemilikan ke alamat lain - function transferFrom(address _from, address _to, uint256 _pizzaId) public { - require(_from != address(0) && _to != address(0), "Invalid address."); - require(_exists(_pizzaId), "Pizza does not exist."); - require(_from != _to, "Cannot transfer to the same address."); - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - - ownerPizzaCount[_to] = SafeMath.add(ownerPizzaCount[_to], 1); - ownerPizzaCount[_from] = SafeMath.sub(ownerPizzaCount[_from], 1); - pizzaToOwner[_pizzaId] = _to; - - // Terbitkan aksi yang ditentukan di kontrak IERC721 yang diimpor - emit Transfer(_from, _to, _pizzaId); - _clearApproval(_to, _pizzaId); - } - - /** - * Transfer dengan aman kepemilikan dari ID token yang disediakan ke alamat lain - * Jika alamat target adalah sebuah kontrak, ia harus mengimplementasi ``onERC721Received`, - * yang dipanggil saat satu transfer aman, dan mengembalikan nilai ajaib - * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; - * jika tidak, transfer dibalikkan. - */ - function safeTransferFrom(address from, address to, uint256 pizzaId) - public - { - // solium-disable-next-line arg-overflow - this.safeTransferFrom(from, to, pizzaId, ""); - } - - /** - * Transfer dengan aman kepemilikan dari ID token yang disediakan ke alamat lain - * Jika alamat target adalah satu kontrak, ia harus mengimplementasi `onERC721Received`, - * yang dipanggil saat satu transfer aman, dan mengembalikan nilai ajaib - * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; - * jika tidak, transfer dibalikkan. - */ - function safeTransferFrom( - address from, - address to, - uint256 pizzaId, - bytes memory _data - ) public { - this.transferFrom(from, to, pizzaId); - require(_checkOnERC721Received(from, to, pizzaId, _data), "Must implmement onERC721Received."); - } - - /** - * Fungsi internal untuk memohon `onERC721Received` pada satu alamat target - * Pemanggilan tidak dieksekusi jika alamat target bukan sebuah kontrak - */ - function _checkOnERC721Received( - address from, - address to, - uint256 pizzaId, - bytes memory _data - ) internal returns (bool) { - if (!isContract(to)) { - return true; - } - - bytes4 retval = IERC721Receiver(to).onERC721Received( - msg.sender, - from, - pizzaId, - _data - ); - return (retval == _ERC721_RECEIVED); - } - - // Bakar satu Pizza - hancurkan Token secara total - // Modifier fungsi `external` berarti fungsi ini adalah - // bagian dari antarmuka kontrak dan kontrak lain bisa memanggilnya - function burn(uint256 _pizzaId) external { - require(msg.sender != address(0), "Invalid address."); - require(_exists(_pizzaId), "Pizza does not exist."); - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - - ownerPizzaCount[msg.sender] = SafeMath.sub( - ownerPizzaCount[msg.sender], - 1 - ); - pizzaToOwner[_pizzaId] = address(0); - } - - // Kembalikan penghitungan Pizza lewat alamat - function balanceOf(address _owner) public view returns (uint256 _balance) { - return ownerPizzaCount[_owner]; - } - - // Kembalikan pemilik Pizza yang ditemukan id - function ownerOf(uint256 _pizzaId) public view returns (address _owner) { - address owner = pizzaToOwner[_pizzaId]; - require(owner != address(0), "Invalid Pizza ID."); - return owner; - } - - // Setujui alamat lain untuk mentransfer kepemilikan Pizza - function approve(address _to, uint256 _pizzaId) public { - require(msg.sender == pizzaToOwner[_pizzaId], "Must be the Pizza owner."); - pizzaApprovals[_pizzaId] = _to; - emit Approval(msg.sender, _to, _pizzaId); - } - - // Kembalikan alamat yang disetujui untuk Pizza spesifik - function getApproved(uint256 _pizzaId) - public - view - returns (address operator) - { - require(_exists(_pizzaId), "Pizza does not exist."); - return pizzaApprovals[_pizzaId]; - } - - /** - * Fungsi privat untuk menghapus persetujuan saat ini dari ID token yang disediakan - * Balikkan jika alamat yang disediakan memang bukan pemilik token - */ - function _clearApproval(address owner, uint256 _pizzaId) private { - require(pizzaToOwner[_pizzaId] == owner, "Must be pizza owner."); - require(_exists(_pizzaId), "Pizza does not exist."); - if (pizzaApprovals[_pizzaId] != address(0)) { - pizzaApprovals[_pizzaId] = address(0); - } - } - - /* - * Siapkan atau batalkan persetujuan untuk operator yang disediakan - * Seorang operator diizinkan untuk mentransfer semua token dari pengirim atas nama mereka - */ - function setApprovalForAll(address to, bool approved) public { - require(to != msg.sender, "Cannot approve own address"); - operatorApprovals[msg.sender][to] = approved; - emit ApprovalForAll(msg.sender, to, approved); - } - - // Beritahu apakah seorang operator disetujui oleh seorang pemilik yang disediakan - function isApprovedForAll(address owner, address operator) - public - view - returns (bool) - { - return operatorApprovals[owner][operator]; - } - - // Ambil kepemilikan Pizza - hanya untuk pengguna yang disetujui - function takeOwnership(uint256 _pizzaId) public { - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - address owner = this.ownerOf(_pizzaId); - this.transferFrom(owner, msg.sender, _pizzaId); - } - - // Periksa apakah Pizza ada - function _exists(uint256 pizzaId) internal view returns (bool) { - address owner = pizzaToOwner[pizzaId]; - return owner != address(0); - } - - // Periksa apakah alamat adalah pemilik atau disetujui untuk mentransfer Pizza - function _isApprovedOrOwner(address spender, uint256 pizzaId) - internal - view - returns (bool) - { - address owner = pizzaToOwner[pizzaId]; - // Disable solium check because of - // https://github.com/duaraghav8/Solium/issues/175 - // solium-disable-next-line operator-whitespace - return (spender == owner || - this.getApproved(pizzaId) == spender || - this.isApprovedForAll(owner, spender)); - } - - // Periksa apakah Pizza unik dan belum ada sama sekali - modifier isUnique(string memory _name, uint256 _dna) { - bool result = true; - for (uint256 i = 0; i < pizzas.length; i++) { - if ( - keccak256(abi.encodePacked(pizzas[i].name)) == - keccak256(abi.encodePacked(_name)) && - pizzas[i].dna == _dna - ) { - result = false; - } - } - require(result, "Pizza with such name already exists."); - _; - } - - // Kembalikan apakah alamat target adalah sebuah kontrak - function isContract(address account) internal view returns (bool) { - uint256 size; - // Currently there is no better way to check if there is a contract in an address - // than to check the size of the code at that address. - // Kunjungi https://ethereum.stackexchange.com/a/14016/36603 - // untuk lebih banyak detail tentang bagaimana ini bekerja. - // UNTUK DILAKUKAN Periksa ini lagi sebelum pelepasan Serenity, karena semua alamat akan menjadi - // kontrak kemudian. - // solium-disable-next-line security/no-inline-assembly - assembly { - size := extcodesize(account) - } - return size > 0; - } -} -``` - -## Bacaan lebih lanjut {#further-reading} - -Lihat dokumentasi Solidity dan Vyper untuk gambaran umum yang lebih lengkap tentang kontrak pintar: - -- [Solidity](https://solidity.readthedocs.io/) -- [Vyper](https://vyper.readthedocs.io/) - -## Topik terkait {#related-topics} - -- [Kontrak pintar](/developers/docs/smart-contracts/) -- [Mesin Virtual Ethereum](/developers/docs/evm/) - -## Tutorial terkait {#related-tutorials} - -- [Memperkecil kontrak untuk mengatasi batas ukuran kontrak](/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/) _– Beberapa tips praktis untuk mengurangi ukuran kontrak pintar Anda._ -- [Pembuatan log data dari kontrak pintar dengan aksi](/developers/tutorials/logging-events-smart-contracts/) _– Pengantar aksi kontrak pintar dan cara menggunakannya untuk log data._ -- [Berinteraksi dengan kontrak lain dari Solidity](/developers/tutorials/interact-with-other-contracts-from-solidity/) _– Cara menggunakan kontrak pintar dari kontrak yang sudah ada dan berinteraksi dengan kontrak pintar tersebut._ diff --git a/src/content/translations/id/developers/docs/standards/tokens/erc-20/index.md b/src/content/translations/id/developers/docs/standards/tokens/erc-20/index.md deleted file mode 100644 index feb5e6f7e6d..00000000000 --- a/src/content/translations/id/developers/docs/standards/tokens/erc-20/index.md +++ /dev/null @@ -1,148 +0,0 @@ ---- -title: Standar Token ERC-20 -description: -lang: id ---- - -## Pendahuluan {#introduction} - -**Apa itu Token?** - -Token bisa melambangkan hampir semua hal di Ethereum: - -- poin reputasi dalam sebuah platform online -- kemampuan suatu karakter dalam game -- tiket lotre -- aset keuangan seperti saham dalam sebuah perusahaan -- mata uang fiat seperti USD -- satu ons emas -- dan banyak lagi... - -Fitur yang begitu kuat dari Ethereum ini harus ditangani oleh standar yang juga kuat, bukan? Di situlah tepatnya ERC-20 memainkan perannya! Standar ini memungkinkan pengembang menyusun aplikasi token yang dapat bertukar informasi dengan produk dan layanan lainnya. - -**Apa itu ERC-20?** - -ERC-20 memperkenalkan sebuah standar untuk Token Fungible, dengan kata lain, mereka memiliki properti yang membuat tiap Token sama persis (dalam tipe dan nilai) dengan Token lainnya. Sebagai contoh, satu Token ERC-20 bertindak sama seperti ETH, berarti 1 Token adalah dan akan selalu sama dengan semua Token lainnya. - -## Prasyarat {#prerequisites} - -- [Akun](/developers/docs/accounts) -- [Kontrak Pintar](/developers/docs/smart-contracts/) -- [Standar token](/developers/docs/standards/tokens/) - -## Tubuh {#body} - -ERC-20 (Ethereum Request for Comments 20), yang diusulkan oleh Fabian Vogelsteller pada November 2015, adalah Standar Token yang menerapkan API untuk token dalam Kontrak Pintar. - -ERC-20 fungsionalitas percontohan menyediakan: - -- transfer token dati satu akun ke akun lainnya -- mendapatkan saldo token saat ini dari suatu akun -- mendapatkan total persediaan token yang tersedia di jaringan -- menyetujui apakah jumlah token dari suatu akun dapat dipakai oleh akun pihak ketiga - -Jika Kontrak Pintar menerapkan metode dan aksi berikut ini, kontrak tersebut dapat disebut sebagai Kontrak Token ERC-20 dan, setelah digunakan, kontrak ini akan bertanggungjawab untuk melacak token yang dibuat di Ethereum. - -Dari [EIP-20](https://eips.ethereum.org/EIPS/eip-20): - -#### Metode {#methods} - -```solidity -function name() public view returns (string) -function symbol() public view returns (string) -function decimals() public view returns (uint8) -function totalSupply() public view returns (uint256) -function balanceOf(address _owner) public view returns (uint256 balance) -function transfer(address _to, uint256 _value) public returns (bool success) -function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) -function approve(address _spender, uint256 _value) public returns (bool success) -function allowance(address _owner, address _spender) public view returns (uint256 remaining) -``` - -#### Aksi {#events} - -```solidity -event Transfer(address indexed _from, address indexed _to, uint256 _value) -event Approval(address indexed _owner, address indexed _spender, uint256 _value) -``` - -### Contoh {#web3py-example} - -Mari kita lihat bagaimana sebuah Standar begitu penting untuk mempermudah pemeriksaan Kontrak Token ERC-20 di Ethereum. Kita hanya memerlukan Application Binary Interface (ABI) Kontrak untuk membuat antarmuka untuk Token ERC-20 mana pun. Seperti yang dapat Anda lihat di bawah, kita akan menggunakan satu ABI yang disederhanakan, untuk membuatnya menjadi contoh bergesekan rendah. - -#### Contoh Web3.py {#web3py-example} - -Pertama-tama, pastikan Anda telah menginstal pustaka Python [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation): - -``` -pip install web3 -``` - -```python -from web3 import Web3 - - -w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) - -dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI -weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # Wrapped ether (WETH) - -acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11" # Uniswap V2: DAI 2 - -# Ini adalah sebuah Application Binary Interface (ABI) Kontrak yang disederhanakan dari sebuah Kontrak Token ERC-20. -# Kontrak hanya akan menampilkan metode: balanceOf(address), decimals(), symbol() and totalSupply() -simplified_abi = [ - { - 'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], - 'name': 'balanceOf', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'decimals', - 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'symbol', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'totalSupply', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - } -] - -dai_contract = w3.eth.contract(address=w3.toChecksumAddress(dai_token_addr), abi=simplified_abi) -symbol = dai_contract.functions.symbol().call() -decimals = dai_contract.functions.decimals().call() -totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals -addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals - -# DAI -print("===== %s =====" % symbol) -print("Total Supply:", totalSupply) -print("Addr Balance:", addr_balance) - -weth_contract = w3.eth.contract(address=w3.toChecksumAddress(weth_token_addr), abi=simplified_abi) -symbol = weth_contract.functions.symbol().call() -decimals = weth_contract.functions.decimals().call() -totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals -addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals - -# WETH -print("===== %s =====" % symbol) -print("Total Supply:", totalSupply) -print("Addr Balance:", addr_balance) -``` - -## Bacaan lebih lanjut {#further-reading} - -- [EIP-20: Standar Token ERC-20](https://eips.ethereum.org/EIPS/eip-20) -- [OpenZeppelin - Token](https://docs.openzeppelin.com/contracts/3.x/tokens#ERC20) -- [OpenZeppelin - Implementasi ERC-20](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) diff --git a/src/content/translations/id/developers/docs/standards/tokens/erc-721/index.md b/src/content/translations/id/developers/docs/standards/tokens/erc-721/index.md deleted file mode 100644 index 1213bc76765..00000000000 --- a/src/content/translations/id/developers/docs/standards/tokens/erc-721/index.md +++ /dev/null @@ -1,242 +0,0 @@ ---- -title: Standar Token Non-Fungible ERC-721 -description: -lang: id ---- - -## Pendahuluan {#introduction} - -**Apa itu Token Non-Fungible?** - -Token yang Tidak Dapat Dipertukarkan (NFT) digunakan untuk mengenali sesuatu atau seseorang dengan cara yang unik. Jenis Token ini tepat untuk digunakan pada platform yang menawarkan item yang dapat dikoleksi, kunci akses, tiket lotre, kursi bernomor untuk konser dan pertandingan olahraga, dll. Jenis Token spesial ini memiliki kemungkinan yang luar biasa sehingga layak mendapatkan Standar yang sesuai, ERC-721 hadir untuk memecahkannya! - -**Apa itu ERC-721?** - -ERC-721 memperkenalkan sebuah standar untuk NFT, dengan kata lain, tipe Token ini adalah unik dan bisa memiliki nilai yang berbeda dari Token lainnya yang berasal dari Kontrak Pintar yang sama, mungkin dikarenakan usia, keunikan, atau bahkan hal lain seperti visualnya. Tunggu, visualnya? - -Ya! Semua NFT memiliki variabel `uint256` yang disebut `tokenId`, sehingga untuk Kontrak ERC-721 mana pun, pasangan `contract address, uint256 tokenId` harus bersifat unik secara global. Anggap saja, dApp bisa memiliki "konverter" yang menggunakan `tokenId` sebagai input dan output gambar dari sesuatu yang keren, seperti zombi, senjata, kemampuan, atau anak kucing yang menakjubkan! - -## Prasyarat {#prerequisites} - -- [Akun](/developers/docs/accounts/) -- [Kontrak Pintar](/developers/docs/smart-contracts/) -- [Standar token](/developers/docs/standards/tokens/) - -## Tubuh {#body} - -ERC-721 (Ethereum Request for Comments 721), yang diusulkan oleh William Entriken, Dieter Shirley, Jacob Evans, Nastassia Sachs pada Januari 2018, adalah Standar Token yang Tidak Dapat Dipertukarkan yang menerapkan API untuk token di dalam Kontrak Pintar. - -ERC-721 ini menyediakan fungsionalitas seperti mentransfer token dari satu akun ke akun lainnya, mendapatkan informasi saldo token saat ini dari sebuah akun, mendapatkan pemilik token tertentu, dan juga informasi persediaan total dari token yang tersedia di jaringan. Selain itu, juga memiliki beberapa fungsionalitas lain seperti memberi persetujuan untuk pemindahan sejumlah token dari sebuah akun oleh akun pihak ketiga. - -Jika Kontrak Pintar menerapkan metode dan aksi berikut, kontrak itu dapat disebut Kontrak Token yang Tidak Dapat Dipertukarkan ERC-721 dan, setelah digunakan, akan bertanggungjawab untuk melacak token yang dibuat di Ethereum. - -Dari [EIP-721](https://eips.ethereum.org/EIPS/eip-721): - -#### Metode {#methods} - -```solidity - function balanceOf(address _owner) external view returns (uint256); - function ownerOf(uint256 _tokenId) external view returns (address); - function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; - function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; - function transferFrom(address _from, address _to, uint256 _tokenId) external payable; - function approve(address _approved, uint256 _tokenId) external payable; - function setApprovalForAll(address _operator, bool _approved) external; - function getApproved(uint256 _tokenId) external view returns (address); - function isApprovedForAll(address _owner, address _operator) external view returns (bool); -``` - -#### Aksi {#events} - -```solidity - event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); - event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); - event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); -``` - -### Contoh {#web3py-example} - -Mari kita lihat bagaimana sebuah Standar begitu penting untuk mempermudah pemeriksaan Kontrak Token ERC-721 di Ethereum. Kita hanya memerlukan Application Binary Interface (ABI) Kontrak untuk membuat antarmuka untuk Token ERC-721 mana pun. Seperti yang dapat Anda lihat di bawah, kita akan menggunakan satu ABI yang disederhanakan, untuk membuatnya menjadi contoh bergesekan rendah. - -#### Contoh Web3.py {#web3py-example} - -Pertama-tama, pastikan Anda telah menginstal pustaka Python [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation): - -``` -pip install web3 -``` - -```python -from web3 import Web3 -from web3._utils.events import get_event_data - - -w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) - -ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # CryptoKitties Contract - -acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # CryptoKitties Sales Auction - -# Ini adalah sebuah Kontrak Application Binary Interface (ABI) yang disederhanakan dari kontrak NFT ERC-721. -# Kontrak akan hanya menampilkan metode: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply() -simplified_abi = [ - { - 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], - 'name': 'balanceOf', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'name', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], - 'name': 'ownerOf', - 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'symbol', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'totalSupply', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, -] - -ck_extra_abi = [ - { - 'inputs': [], - 'name': 'pregnantKitties', - 'outputs': [{'name': '', 'type': 'uint256'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [{'name': '_kittyId', 'type': 'uint256'}], - 'name': 'isPregnant', - 'outputs': [{'name': '', 'type': 'bool'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - } -] - -ck_contract = w3.eth.contract(address=w3.toChecksumAddress(ck_token_addr), abi=simplified_abi+ck_extra_abi) -name = ck_contract.functions.name().call() -symbol = ck_contract.functions.symbol().call() -kitties_auctions = ck_contract.functions.balanceOf(acc_address).call() -print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}") - -pregnant_kitties = ck_contract.functions.pregnantKitties().call() -print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}") - -# Menggunakan ABI Aksi Transfer untuk mendapat informasi tentang Kitties yang ditransfer. -tx_event_abi = { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'from', 'type': 'address'}, - {'indexed': False, 'name': 'to', 'type': 'address'}, - {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}], - 'name': 'Transfer', - 'type': 'event' -} - -# Kita membutuhkan tanda tangan aksi untuk menyaring log -event_signature = w3.sha3(text="Transfer(address,address,uint256)").hex() - -logs = w3.eth.getLogs({ - "fromBlock": w3.eth.blockNumber - 120, - "address": w3.toChecksumAddress(ck_token_addr), - "topics": [event_signature] -}) - -# Catatan: -# - 120 blok adalah kisaran maksimum yang disediakan layanan Penyedia CloudFlare -# - Jika Anda tidak menemukan Transfer event apa pun, Anda juga dapat mendapatkan tokenId di: -# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events -# Klik untuk memperluas log aksi dan salin argumen "tokenId"nya - -recent_tx = [get_event_data(w3.codec, tx_event_abi, log)["args"] for log in logs] - -kitty_id = recent_tx[0]['tokenId'] # Paste the "tokenId" here from the link above -is_pregnant = ck_contract.functions.isPregnant(kitty_id).call() -print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}") -``` - -Kontrak CryptoKitties memiliki beberapa Aksi menarik selain dari aksi Standar. - -Mari kita lihat dua di antaranya, `Pregnant` dan `Birth`. - -```python -# Menggunakan ABI Aksi Pregnant dan Birth untuk mendapatkan informasi tentang Kitties baru. -ck_extra_events_abi = [ - { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'owner', 'type': 'address'}, - {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, - {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, - {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}], - 'name': 'Pregnant', - 'type': 'event' - }, - { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'owner', 'type': 'address'}, - {'indexed': False, 'name': 'kittyId', 'type': 'uint256'}, - {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, - {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, - {'indexed': False, 'name': 'genes', 'type': 'uint256'}], - 'name': 'Birth', - 'type': 'event' - }] - -# Kita membutuhkan tanda tangan aksi untuk menyaring log -ck_event_signatures = [ - w3.sha3(text="Pregnant(address,uint256,uint256,uint256)").hex(), - w3.sha3(text="Birth(address,uint256,uint256,uint256,uint256)").hex(), -] - -# Berikut adalah Aksi Pregnant: -# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog -pregnant_logs = w3.eth.getLogs({ - "fromBlock": w3.eth.blockNumber - 120, - "address": w3.toChecksumAddress(ck_token_addr), - "topics": [ck_event_signatures[0]] -}) - -recent_pregnants = [get_event_data(w3.codec, ck_extra_events_abi[0], log)["args"] for log in pregnant_logs] - -# Berikut adalah Aksi Birth: -# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a -birth_logs = w3.eth.getLogs({ - "fromBlock": w3.eth.blockNumber - 120, - "address": w3.toChecksumAddress(ck_token_addr), - "topics": [ck_event_signatures[1]] -}) - -recent_births = [get_event_data(w3.codec, ck_extra_events_abi[1], log)["args"] for log in birth_logs] -``` - -## NFT Populer {#popular-nfts} - -- [Pelacak NFT Etherscan](https://etherscan.io/tokens-nft) mendaftarkan NFT populer di Ethereum berdasarkan volume transfer. -- [CryptoKitties](https://www.cryptokitties.co/) adalah sebuah game yang berpusat pada mahluk yang dapat dikembangbiakkan, dikoleksi, dan begitu menggemaskan yang kita sebut CryptoKitties. -- [Sorare](https://sorare.com/) adalah sebuah game sepakbola fantasi global di mana Anda bisa mengumpulkan item koleksi edisi terbatas, mengatur tim Anda, dan berkompetisi untuk mendapatkah hadiah. -- [Layanan Nama Ethereum (ENS)](https://ens.domains/) menawarkan cara yang aman dan terdesentralisasi untuk mengelola sumber daya baik on dan off blockchain menggunakan nama yang sederhana dan mudah dimengerti. -- [Unstoppable Domains](https://unstoppabledomains.com/) adalah sebuah perusahaan berbasis di San Fransisco yang membangun domain di blockchain. Domain blockchain menggantikan alamat mata uang kripto dengan nama yang mudah dimengerti dan bisa digunakan untuk memungkinkan situs web yang tahan penyensoran. -- [Gods Unchained Cards](https://godsunchained.com/) adalah sebuah TCG pada blockchain Ethereum yang menggunakan NFT untuk membawa kepemilikan asli ke aset dalam game. -- [Bored Ape Yacht Club](https://boredapeyachtclub.com) adalah koleksi dari 10.000 NFT unik, yang, selain merupakan karya seni langkah yang terbukti, bertindak sebagai token keanggotaan klub, yang menyediakan fasilitas dan keuntungan yang bertambah seiring dengan waktu sebagai hasil dari usaha komunitas. - -## Bacaan lebih lanjut {#further-reading} - -- [EIP-721: Standar Token Non-Fungible ERC-721](https://eips.ethereum.org/EIPS/eip-721) -- [OpenZeppelin - Dokumen ERC-721](https://docs.openzeppelin.com/contracts/3.x/erc721) -- [OpenZeppelin - Implementasi ERC-721](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) diff --git a/src/content/translations/id/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md b/src/content/translations/id/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md deleted file mode 100644 index a31eb388702..00000000000 --- a/src/content/translations/id/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: Cara Menyiapkan Tellor sebagai Oracle Anda -description: Sebuah panduan untuk memulai mengintegrasikan oracle Tellor ke dalam protokol Anda -author: "Tellor" -lang: id -tags: - - "solidity" - - "kontrak pintar" - - "feed harga" - - "oracle" -skill: beginner -published: 2021-06-29 -source: Dokumen Tellor -sourceUrl: https://docs.tellor.io/tellor/ ---- - -Pop Quiz: Your protocol is just about finished, but it needs an oracle to get access to off chain data...What do you do? - -## Prasyarat (perangkat lunak) {#soft-prerequisites} - -Posting ini bertujuan untuk membuat akses ke feed oracle semudah dan sesederhana mungkin. Oleh karena itu, kami menggangap yang berikut ini kira - kira adalah tingkat kemahiran pengodean Anda untuk berfokus pada aspek oracle. - -Asumsi: - -- Anda dapat menavigasikan suatu terminal -- Anda memiliki npm yang telah terinstal -- Anda mengetahui cara menggunakan npm untuk mengelola dependensi - -Tellor adalah oracle sumber terbuka dan langsung yang siap untuk diimplementasikan. Panduan pemula ini ada untuk menampilkan kemudahan yang dengannya seseorang dapat memulai dan menjalankan Tellor, yang menyediakan proyek Anda dengan oracle yang sepenuhnya terdesentralisasi dan tahan penyensoran. - -## Gambaran umum {#overview} - -Tellor is an oracle system where parties can request the value of an off-chain data point (e.g. BTC/USD) and reporters compete to add this value to an on-chain data-bank, accessible by all Ethereum smart contracts. The inputs to this data-bank are secured by a network of staked reporters. Tellor utilizes crypto-economic incentive mechanisms, rewarding honest data submissions by reporters and punishing bad actors through the issuance of Tellor’s token, Tributes (TRB) and a dispute mechanism. - -Dalam tutorial ini, kita akan membahas: - -- Menyiapkan toolkit awal yang akan Anda butuhkan untuk memulai dan menjalankannya. -- Membahas suatu contoh sederhana. -- Merinci alamat testnet jaringan yang dapat Anda gunakan untuk menguji Tellor saat ini. - -## Menggunakan Tellor {#usingtellor} - -Hal pertama yang akan ingin Anda lakukan adalah menginstal perangkat dasar yang diperlukan untuk menggunakan Tellor sebagai oracle Anda. Use [this package](https://github.com/tellor-io/usingtellor) to install the Tellor User Contracts: - -`npm install usingtellor` - -Setelah diinstal, ini akan memungkinkan kontrak Anda untuk mewarisi fungsi dari kontrak 'UsingTellor'. - -Bagus! Now that you've got the tools ready, let's go through a simple exercise where we retrieve the bitcoin price: - -### Contoh BTC/USD {#btcusd-example} - -Wariskan kontrak UsingTellor, yang meneruskan alamat Tellor sebagai argumen konstruktor: - -Berikut contohnya: - -```solidity -import "usingtellor/contracts/UsingTellor.sol"; - -contract BtcPriceContract is UsingTellor { - - //This Contract now has access to all functions in UsingTellor - - bytes btcPrice; - bytes32 btcQueryId = 0x0000000000000000000000000000000000000000000000000000000000000002; - - constructor(address payable _tellorAddress) UsingTellor(_tellorAddress) public {} - - function setBtcPrice() public { - bool _didGet; - uint256 _timestamp; - - (_didGet, btcPrice, _timestamp) = getCurrentValue(btcQueryId); - } -} -``` - -**Want to try a different data feed? Check out the list of supported data feeds here: [Current Data Feeds](https://docs.tellor.io/tellor/integration/data-feed-ids)** - -## Alamat: {#addresses} - -Mainnet: [`0x88df592f8eb5d7bd38bfef7deb0fbc02cf3778a0`](https://etherscan.io/address/0x88df592f8eb5d7bd38bfef7deb0fbc02cf3778a0#code) - -#### Ingin melakukan beberapa pengujian terlebih dahulu? Lihat daftar di bawah untuk alamat testnet aktif kami: {#looking-to-do-some-testing-first-see-the-list-below-for-our-active-testnet-addresses} - -Rinkeby: [`0x88df592f8eb5d7bd38bfef7deb0fbc02cf3778a0`](https://rinkeby.etherscan.io/address/0x88df592f8eb5d7bd38bfef7deb0fbc02cf3778a0#code) - -Kovan: [`0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7`](https://kovan.etherscan.io/address/0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7#code) - -Ropsten: [`0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7`](https://ropsten.etherscan.io/address/0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7#code) - -Goerli: [`0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7`](https://goerli.etherscan.io/address/0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7#code) - -BSC Testnet: [`0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7`](https://testnet.bscscan.com/address/0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7#code) - -Polygon Mumbai Testnet: [`0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7`](https://mumbai.polygonscan.com/address/0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7/contracts#code) - -Arbitrum Testnet: [`0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7`](https://rinkeby-explorer.arbitrum.io/address/0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7) - -#### Untuk implementasi yang lebih kuat pada oracle Tellor, lihat daftar lengkap fungsi yang tersedia [di sini.](https://github.com/tellor-io/usingtellor/blob/master/README.md) {#for-a-more-robust-implementation-of-the-tellor-oracle-check-out-the-full-list-of-available-functions-here} diff --git a/src/content/translations/id/developers/tutorials/how-to-view-nft-in-metamask/index.md b/src/content/translations/id/developers/tutorials/how-to-view-nft-in-metamask/index.md deleted file mode 100644 index aa0de22a153..00000000000 --- a/src/content/translations/id/developers/tutorials/how-to-view-nft-in-metamask/index.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: Cara Melihat NFT Anda di Dompet Anda (Bagian 3/3 dari Seri Tutorial NFT) -description: Tutorial ini mendeskripsikan cara melihat suatu NFT yang ada di MetaMask! -author: "Sumi Mudgil" -tags: - - "NFT" - - "ERC-721" - - "Alchemy" - - "token yang tidak dapat dipertukarkan" - - "Solidity" -skill: beginner -lang: id -published: 2021-04-22 ---- - -Tutorial ini adalah Bagian 3/3 dalam seri Tutorial NFT, di mana kita melihat NFT kita yang baru dicetak. Namun, Anda dapat menggunakan tutorial umum untuk token ERC-721 mana pun dengan menggunakan MetaMask, termasuk pada Jaringan Utama atau jaringan percobaan mana pun. Jika Anda ingin belajar cara mencetak NFT Anda sendiri di Ethereum, Anda harus melihat [Bagian 1 tentang Cara Menulis & Menyebarkan kontrak pintar NFT](/developers/tutorials/how-to-write-and-deploy-an-nft)! - -Selamat! Anda telah sampai pada bagian terpendek dan termudah dari seri tutorial NFT kami — cara melihat NFT Anda yang baru dicetak di dompet virtual. Kita akan menggunakan MetaMask untuk contoh ini karena kita menggunakannya di kedua bagian sebelumnya. - -Sebagai prasyarat, Anda seharusnya telah menginstal MetaMask di ponsel, dan program/aps itu seharusnya memasukkan akun ke mana Anda mencetak NFT Anda — Anda dapat mendapatkan aplikasinya secara gratis di [iOS](https://apps.apple.com/us/app/metamask-blockchain-wallet/id1438144202) atau [Android](https://play.google.com/store/apps/details?id=io.metamask&hl=en_US&gl=US). - -## Langkah 1: Tetapkan jaringan Anda ke Ropsten {#set-network-to-ropsten} - -Pada bagian atas aplikasi, tekan tombol "Dompet", yang setelahnya Anda akan diminta untuk memilih jaringan. Karena NFT kita dicetak di jaringan Ropsten, Anda akan ingin memilih Ropsten sebagai jaringan Anda. - -![Cara menetapkan Ropsten sebagai jaringan Anda di MetaMask Seluler](./ropstenMetamask.gif) - -## Langkah 2: Tambahkan koleksi Anda ke MetaMask {#add-nft-to-metamask} - -Setelah Anda ada di jaringan Ropsten, pilih tab "Koleksi" di sebelah kanan dan tambahkan akun kontrak pintar NFT dan ID token ERC-721 NFT Anda — yang seharusnya Anda temukan di Etherscan berdasarkan hash transaksi dari NFT Anda yang disebar di Bagian II dari tutorial kami. - -![Cara menemukan hash transaksi dan ID token ERC-721 Anda](./findNFTEtherscan.png) - -Anda mungkin perlu merefresh beberapa kali untuk melihat NFT Anda — tetapi ia akan ada di sana ! - -![Cara mengunggah NFT Anda ke MetaMask](./findNFTMetamask.gif) - -Selamat! Anda telah berhasil mencetak NFT, dan Anda sekarang dapat melihatnya! Kami tidak sabar menunggu untuk melihat bagaimana Anda akan sukses di dunia NFT! diff --git a/src/content/translations/id/developers/tutorials/how-to-write-and-deploy-an-nft/index.md b/src/content/translations/id/developers/tutorials/how-to-write-and-deploy-an-nft/index.md deleted file mode 100644 index 5067307df02..00000000000 --- a/src/content/translations/id/developers/tutorials/how-to-write-and-deploy-an-nft/index.md +++ /dev/null @@ -1,353 +0,0 @@ ---- -title: Cara Menulis & Menyebarkan NFT (Bagian 1/3 dari Seri Tutorial NFT) -description: Tutorial ini adalah Bagian 1 dari seri NFT yang akan membawa Anda selangkah demi selangkah tentang cara menulis dan menyebarkan kontrak pintar Token yang Tak Dapat Dipertukarkan (token ERC-721) dengan menggunakan Ethereum dan Sistem Berkas Antar Planet (IPFS). -author: "Sumi Mudgil" -tags: - - "NFT" - - "ERC-721" - - "Alchemy" - - "Solidity" - - "kontrak pintar" -skill: beginner -lang: id -published: 2021-04-22 ---- - -Dengan NFT yang membawa rantai blok ke perhatian publik, sekarang adalah peluang yang sangat baik untuk memahami sensasinya sendiri dengan menerbitkan NFT Anda sendiri (Token ERC-721) di rantai blok Ethereum! - -Alchemy merasa sangat bangga karena memberdayakan nama-nama terbesar dalam area NFT, termasuk Makersplace (baru saja mencetak rekor penjualan karya seni digital di Christie's sebesar $69 Juta), Dapper Labs (pembuat NBA Top Shot & Crypto Kitties), OpenSea (pasar NFT terbesar di dunia), Zora, Super Rare, NFTfi, Foundation, Enjin, Origin Protocol, Immutable, dan banyak lagi. - -Dalam tutorial ini, kami akan memberi panduan lengkap tentang membuat dan menyebarkan kontrak pintar ERC-721 pada jaringan pengujian Ropsten dengan menggunakan [MetaMask](https://metamask.io/), [Solidity](https://docs.soliditylang.org/en/v0.8.0/), [Hardhat](https://hardhat.org/), [Pinata](https://pinata.cloud/) dan [Alchemy](https://alchemy.com/signup/eth) (jangan khawatir jika Anda belum memahami apa pun arti dari ini - kami akan menjelaskannya!). - -Dalam Bagian 2 dari tutorial ini kita akan melalui panduan cara menggunakan kontrak pintar kita untuk mencetak NFT, dan dalam Bagian 3, kami akan menjelaskan cara melihat NFT Anda di MetaMask. - -And of course, if you have questions at any point, don’t hesitate to reach out in the [Alchemy Discord](https://discord.gg/gWuC7zB) or visit [Alchemy's NFT API docs](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api)! - -## Langkah 1: Hubungkan ke jaringan Ethereum {#connect-to-ethereum} - -Ada beberapa cara untuk membuat permintaan ke rantai blok Ethereum, tetapi untuk mempermudah prosesnya, kita akan menggunakan akun gratis di [Alchemy](https://alchemy.com/signup/eth), suatu platform pengembang rantai blok dan API yang memungkinkan kita berkomunikasi dengan rantai Ethereum tanpa perlu menjalankan simpul Anda sendiri. - -Dalam tutorial ini, kita juga akan memanfaatkan perangkat pengembang Alchemy untuk pengawasan dan analitik untuk memahami apa yang terjadi di bawah hood dalam penyebaran kontrak pintar kita. Jika Anda belum memiliki akun Alchemy, Anda dapat mendaftar gratis [di sini](https://alchemy.com/signup/eth). - -## Langkah 2: Buat aplikasi Anda (dan kunci API) {#make-api-key} - -Setelah Anda membuat akun Alchemy, Anda dapat membuat kunci API dengan membuat aplikasi. Ini akan memungkinkan kita untuk membuat permintaan ke jaringan pengujian Ropsten. Lihat [panduan ini](https://docs.alchemyapi.io/guides/choosing-a-network) jika Anda penasaran untuk mempelajari lebih lanjut tentang jaringan pengujian. - -1. Arahkan ke halaman "Buat Aplikasi" di Dasbor Alchemy Anda dengan mengarahkan kursor ke "Aplikasi" di bar navigasi dan mengklik "Buat Aplikasi" - -![Buat aplikasi Anda](./create-your-app.png) - -2. Namai aplikasi Anda (kami memilih "NFT Pertamaku!"), berikan deskripsi pendek, pilih "Staging" untuk Lingkungannya (yang digunakan untuk pembukuan aplikasi Anda), dan pilih "Ropsten" untuk jaringan Anda. - -![Konfigurasikan dan publikasikan aplikasi Anda](./configure-and-publish-your-app.png) - -3. Klik "Buat aplikasi" dan selesai! Aplikasi Anda seharusnya muncul dalam tabel di bawah ini. - -## Langkah 3: Buat akun Ethereum (alamat) {#create-eth-address} - -Kita memerlukan akun Ethereum untuk mengirim dan menerima transaksi. Untuk tutorial ini, kita akan menggunakan MetaMask, dompet virtual dalam peramban yang digunakan untuk mengelola alamat akun Ethereum Anda. Jika Anda ingin memahami lebih lanjut tentang cara transaksi di Ethereum bekerja, lihat [halaman ini](/developers/docs/transactions/) dari yayasan Ethereum. - -Anda dapat mengunduh dan membuat akun MetaMask secara gratis [di sini](https://metamask.io/download.html). Saat Anda membuat akun, atau jika Anda sudah memiliki akun, pastikan untuk beralih ke "Jaringan Pengujian Ropsten" di kanan atas (sehingga kita tidak berurusan dengan uang asli). - -![Tetapkan Ropsten sebagi jaringan Anda](./metamask-ropsten.png) - -## Langkah 4: Tambahkan ether dari Keran {#step-4-add-ether-from-a-faucet} - -Untuk menyebarkan kontrak pintar kita ke jaringan uji, kita memerlukan beberapa ETH palsu. To get ETH you can go to the [FaucETH](https://fauceth.komputing.org) and enter your Ropsten account address, click “Request funds”, then select “Ethereum Testnet Ropsten” in the dropdown and finally click “Request funds” button again. Anda seharusnya akan melihat ETH dalam akun MetaMask Anda dengan segera! - -## Langkah 5: Periksa Saldo Anda {#check-balance} - -Untuk memeriksa ulang apakah saldo kita ada di sana, mari buat permintaan [eth_getBalance](https://docs.alchemyapi.io/alchemy/documentation/alchemy-api-reference/json-rpc#eth_getbalance) dengan menggunakan [peralatan komposer Alchemy](https://composer.alchemyapi.io?composer_state=%7B%22network%22%3A0%2C%22methodName%22%3A%22eth_getBalance%22%2C%22paramValues%22%3A%5B%22%22%2C%22latest%22%5D%7D). Ini akan mengembalikan jumlah ETH dalam dompet kita. Setelah Anda memasukkan alamat akun MetaMask Anda dan klik "Kirim Permintaan", Anda akan melihat respons seperti ini: - - `{"jsonrpc": "2.0", "id": 0, "result": "0xde0b6b3a7640000"}` - -**CATATAN: **Hasil ini dalam wei, bukan ETH. Wei digunakan sebagai denominasi terkecil dari ether. Konversi dari wei ke ETH adalah 1 eth = 1018 wei. Jadi jika kita mengonversi 0xde0b6b3a7640000 ke bentuk desimal, kita mendapatkan 1\*1018 wei, yang setara dengan 1 ETH. - -Fiuh! Uang palsu kita semuanya ada di sana. - -## Langkah 6: Inisialisasi proyek kami {#initialize-project} - -Pertama, kita perlu membuat folder untuk proyek kita. Navigasikan ke barisan perintah dan ketik: - - mkdir my-nft - cd my-nft - -Sekarang karena kita ada di dalam folder proyek kita, kita akan menggunakan npm init untuk menginisialisasi proyek. Jika Anda belum menginstal npm, ikuti [petunjuk ini](https://docs.alchemyapi.io/alchemy/guides/alchemy-for-macs#1-install-nodejs-and-npm) (kita juga memerlukan [Node.js](https://nodejs.org/en/download/), jadi unduh itu juga!). - - npm init - -Tidak jadi masalah bagaimana cara Anda menjawab pertanyaan instalasinya, berikut adalah cara kami melakukannya sebagai referensi: - - package name: (my-nft) - version: (1.0.0) - description: My first NFT! - entry point: (index.js) - test command: - git repository: - keywords: - author: - license: (ISC) - About to write to /Users/thesuperb1/Desktop/my-nft/package.json: - - { - "name": "my-nft", - "version": "1.0.0", - "description": "My first NFT!", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" - } - -Setujui package.json, dan kita siap untuk beraksi! - -## Langkah 7: Instal [Hardhat](https://hardhat.org/getting-started/#overview) {#install-hardhat} - -Hardhat adalah lingkungan pengembangan untuk mengkompilasi, menyebarkan, menguji, dan men-debug perangkat lunak Ethereum Anda. Lingkungan ini membantu pengembang saat membangun kontrak pintar dan dApps secara lokal sebelum menyebarkannya ke rantai sebenarnya. - -Di dalam proyek nft ku jalankan: - - npm install --save-dev hardhat - -Lihat halaman ini untuk detail lebih lanjut tentang [petunjuk penginstalan](https://hardhat.org/getting-started/#overview). - -## Langkah 8: Buat proyek Hardhat {#create-hardhat-project} - -Di dalam folder proyek kita jalankan: - - npx hardhat - -Lalu Anda seharusnya melihat pesan selamat datang dan opsi untuk memilih apa yang ingin Anda lakukan. Pilih "buat hardhat.config.js kosong": - - 888 888 888 888 888 - 888 888 888 888 888 - 888 888 888 888 888 - 8888888888 8888b. 888d888 .d88888 88888b. 8888b. 888888 - 888 888 "88b 888P" d88" 888 888 "88b "88b 888 - 888 888 .d888888 888 888 888 888 888 .d888888 888 - 888 888 888 888 888 Y88b 888 888 888 888 888 Y88b. - 888 888 "Y888888 888 "Y88888 888 888 "Y888888 "Y888 - 👷 Selamat datang di HardHat v2.0.11 👷‍ - ? What do you want to do? … - Create a sample project - ❯ Create an empty hardhat.config.js - Quit - -Ini akan menghasilkan berkas hardhat.config.js untuk kita yang merupakan tempat di mana kita akan menentukan semua penyiapan untuk proyek kita (pada langkah 13). - -## Langkah 9: Tambahkan folder proyek {#add-project-folders} - -Untuk menjaga proyek kita tetap terorganisir, kita akan membuat dua folder baru. Navigasikan ke direktori akar dari proyek Anda dalam barisan perintah dan ketik: - - mkdir contracts - mkdir scripts - -- contracts/ adalah tempat di mana kita akan menyimpan kode kontrak pintar NFT kita - -- scripts/ adalah tempat di mana kita akan menyimpan skrip untuk menyebarkan dan berinteraksi dengan kontrak pintar kita - -## Langkah 10: Tulis kontrak kita {#write-contract} - -Sekarang karena lingkungan kita sudah siap, mari beralih ke hal-hal yang lebih menyenangkan: _menulis kode kontrak pintar kita!_ - -Buka proyek nft ku dalam editor favorit Anda (kami menyukai [VSCode](https://code.visualstudio.com/)). Kontrak pintar ditulis dalam bahasa yang disebut Solidity yang akan kami gunakan untuk menulis kontrak pintar MyNFT.sol kami - -1. Navigasikan ke folder `contracts` dan buat berkas baru yang disebut MyNFT.sol - -2. Di bawah ini adalah kode kontrak pintar NFT kami, yang berdasarkan pada implementasi ERC-721 pustaka [OpenZeppelin](https://docs.openzeppelin.com/contracts/3.x/erc721). Salin dan tempelkan konten di bawah ke dalam berkas MyNFT.sol Anda. - - ```solidity - //Contract based on [https://docs.openzeppelin.com/contracts/3.x/erc721](https://docs.openzeppelin.com/contracts/3.x/erc721) - // SPDX-License-Identifier: MIT - pragma solidity ^0.8.0; - - import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; - import "@openzeppelin/contracts/utils/Counters.sol"; - import "@openzeppelin/contracts/access/Ownable.sol"; - import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol"; - - contract MyNFT is ERC721URIStorage, Ownable { - using Counters for Counters.Counter; - Counters.Counter private _tokenIds; - - constructor() ERC721("MyNFT", "NFT") {} - - function mintNFT(address recipient, string memory tokenURI) - public onlyOwner - returns (uint256) - { - _tokenIds.increment(); - - uint256 newItemId = _tokenIds.current(); - _mint(recipient, newItemId); - _setTokenURI(newItemId, tokenURI); - - return newItemId; - } - } - ``` - -3. Karena kami mewarisi kelas dari pustaka kontrak OpenZeppelin, dalam baris perintah Anda jalankan `npm install @openzeppelin/contracts` untuk menginstal pustaka ke dalam folder kita. - -Jadi, apa yang sebenarnya _dilakukan_ oleh kode ini? Mari kita uraikan, baris per baris. - -Pada bagian atas kontrak pintar kami, kami mengimpor tiga kelas kontrak pintar [OpenZeppelin](https://openzeppelin.com/): - -- @openzeppelin/contracts/token/ERC721/ERC721.sol berisi implementasi standar ERC-721, yang akan diwarisi oleh kontrak pintar NFT kita. (Untuk menjadi NFT valid, kontrak pintar Anda harus mengimplementasikan semua metode standar ERC-721.) Untuk mempelajari lebih lanjut tentang fungsi ERC-721 yang diwariskan, lihat definisi antarmuka [di sini](https://eips.ethereum.org/EIPS/eip-721). - -- @openzeppelin/contracts/utils/Counters.sol menyediakan penghitung yang hanya dapat ditambah atau dikurangi sebanyak satu. Kontrak pintar kami menggunakan penghitung untuk melacak jumlah total NFT yang dicetak dan menetapkan ID unik pada NFT baru kami. (Tiap NFT yang dicetak dengan menggunakan kontrak pintar harus diberikan ID unik — di sini ID unik kita hanya ditentukan berdasarkan jumlah total NFT yang ada. Sebagai contoh, NFT pertama yang kita cetak menggunakan kontrak pintar kita memiliki ID "1", NFT kedua kita memiliki ID "2", dst.) - -- @openzeppelin/contracts/access/Ownable.sol mengatur [kontrol akses](https://docs.openzeppelin.com/contracts/3.x/access-control) pada kontrak pintar kita, sehingga hanya pemilik kontrak pintar (Anda) yang dapat mencetak NFT. (Ingatlah, menyertakan kontrol akses hanya merupakan sebuah preferensi. Jika Anda ingin siapapun dapat mencetak NFT dengan menggunakan kontrak pintar Anda, hapus kata Ownable pada baris 10 dan onlyOwner pada baris 17.) - -Setelah kita mengimpor pernyataan, kita memiliki kontrak pintar NFT kustom kita, yang ternyata sangat pendek — hanya terdiri dari sebuah penghitung, sebuah konstruktor, dan fungsi tunggal! Ini semua berkat kontrak warisan OpenZeppelin kita, yang mengimplementasikan sebagian besar metode yang kita butuhkan untuk membuat NFT, seperti `ownerOf` yang mengembalikan pemilik NFT tersebut, dan `transferFrom`, yang mentransfer kepemilikan NFT dari satu akun ke akun lainnya. - -Pada konstruktor ERC-721 kita, Anda akan melihat kita melewati 2 string, "MyNFT" dan "NFT." Variabel pertama adalah nama kontrak pintarnya, dan yang kedua adalah simbolnya. Anda dapat menamai setiap variabel tersebut sesuka Anda! - -Finally, we have our function `mintNFT(address recipient, string memory tokenURI)` that allows us to mint an NFT! Anda dapat melihat fungsi ini memiliki dua variabel: - -- `address recipient` menentukan alamat yang akan menerima NFT Anda yang baru saja dicetak - -- `string memory tokenURI` adalah string yang seharusnya memecah menjadi dokumen JSON yang menjelaskan metadata NFT tersebut. Metadata NFT-lah yang menghidupkannya, memungkinkan NFT memiliki properti yang dapat dikonfigurasi, seperti nama, deskripsi, gambar, dan atribut lainnya. Pada bagian 2 dari tutorial ini, kami akan menjelaskan cara mengkonfigurasi metadata tersebut. - -`mintNFT` memanggil beberapa metode dari pustaka ERC-721 warisan, dan pada akhirnya mengembalikan angka yang merepresentasikan ID dari NFT yang baru saja dicetak. - -## Langkah 11: Hubungkan MetaMask & Alchemy ke proyek Anda {#connect-metamask-and-alchemy} - -Kini setelah kita membuat dompet MetaMask, akun Alchemy, dan menulis kontrak pintar kita, inilah waktunya menghubungkan ketiganya. - -Setiap transaksi yang dikirim dari dompet virtual Anda memerlukan tanda tangan menggunakan kunci pribadi unik Anda. Untuk menyediakan program kita dengan izin ini, kita dapat menyimpan kunci pribadi kita (dan kunci API Alchemy) dengan aman dalam sebuah berkas lingkungan. - -Untuk mempelajari lebih lanjut tentang mengirim transaksi, lihat [tutorial ini](/developers/tutorials/sending-transactions-using-web3-and-alchemy/) tentang mengirim transaksi dengan menggunakan web3. - -Pertama-tama, instal paket dotenv ke dalam direktori proyek Anda: - - npm install dotenv --save - -Then, create a `.env` file in the root directory of our project, and add your MetaMask private key and HTTP Alchemy API URL to it. - -- Ikuti [instruksi ini](https://metamask.zendesk.com/hc/en-us/articles/360015289632-How-to-Export-an-Account-Private-Key) untuk mengekspor kunci pribadi Anda dari MetaMask - -- Lihat di bawah ini untuk mendapatkan URL API Alchemy HTTP dan menyalinnya ke papan klip Anda - -![Salin URL API Alchemy Anda](./copy-alchemy-api-url.gif) - -Your `.env` should now look like this: - - API_URL="https://eth-ropsten.alchemyapi.io/v2/your-api-key" - PRIVATE_KEY="your-metamask-private-key" - -Untuk betul-betul menghubungkannya ke kode kita, kita akan mereferensikan variabel-variabel ini dalam berkas hardhat.config.js kita pada langkah ke-13. - - -Don't commit .env! Please make sure never to share or expose your .env file with anyone, as you are compromising your secrets in doing so. If you are using version control, add your .env to a gitignore file. - - -## Langkah 12: Instal Ethers.js {#install-ethers} - -Ethers.js adalah pustaka yang mempermudah interaksi dan pembuatan permintaan ke Ethereum dengan membungkus [metode JSON-RPC standar](/developers/docs/apis/json-rpc/) dengan metode yang lebih ramah pengguna. - -Hardhat menjadikannya sangat mudah untuk mengintegrasikan [Plugin](https://hardhat.org/plugins/) untuk perangkat tambahan dan fungsionalitas yang diperluas. Kita akan mengambil manfaat dari [plugin Ethers](https://hardhat.org/plugins/nomiclabs-hardhat-ethers.html) untuk penyebaran kontrak ([Ethers.js](https://github.com/ethers-io/ethers.js/) memiliki beberapa metode penyebaran kontrak yang sangat bersih). - -Dalam direktori proyek Anda, ketik: - - npm install --save-dev @nomiclabs/hardhat-ethers ethers@^5.0.0 - -Kita juga memerlukan ethers dalam hardhat.config.js kita di langkah selanjutnya. - -## Langkah 13: Perbarui hardhat.config.js {#update-hardhat-config} - -Kita sejauh ini telah menambahkan beberapa dependensi dan plugin, kini kita perlu memperbarui hardhat.config.js agar proyek kita mengenali mereka. - -Perbarui hardhat.config.js Anda agar terlihat seperti ini: - - /** - * @type import('hardhat/config').HardhatUserConfig - */ - require('dotenv').config(); - require("@nomiclabs/hardhat-ethers"); - const { API_URL, PRIVATE_KEY } = process.env; - module.exports = { - solidity: "0.8.1", - defaultNetwork: "ropsten", - networks: { - hardhat: {}, - ropsten: { - url: API_URL, - accounts: [`0x${PRIVATE_KEY}`] - } - }, - } - -## Langkah 14: Mengkompilasi kontrak kita {#compile-contract} - -Untuk memastikan segalanya berjalan baik sejauh ini, mari kita kompilasikan kontrak kita. Tugas untuk mengompilasi merupakan salah satu tugas bawaan hardhat. - -Dari barisan perintah jalankan: - - npx hardhat compile - -Anda mungkin mendapat peringatan mengenai pengenal lisensi SPDX tidak tersedia di berkas sumber, tetapi tidak perlu mengkhawatirkannya — semoga semua yang lainnya berjalan dengan baik! Jika tidak, Anda selalu dapat mengirim pesan di [discord Alchemy](https://discord.gg/u72VCg3). - -## Langkah 15: Tulis skrip penyebaran kita {#write-deploy} - -Kini setelah kontrak kita ditulis dan berkas konfigurasi kita siap, inilah waktunya menulis skrip penyebaran kontrak kita. - -Arahkan ke folder `skrip/` dan buat berkas baru yang disebut `deploy.js`, tambahkan konten berikut ke dalamnya: - -```js -async function main() { - const MyNFT = await ethers.getContractFactory("MyNFT") - - // Start deployment, returning a promise that resolves to a contract object - const myNFT = await MyNFT.deploy() - await myNFT.deployed() - console.log("Contract deployed to address:", myNFT.address) -} - -main() - .then(() => process.exit(0)) - .catch((error) => { - console.error(error) - process.exit(1) - }) -``` - -Hardhat melakukan pekerjaan luar biasa dalam menjelaskan apa yang dilakukan masing-masing baris kode ini dalam [Tutorial kontrak](https://hardhat.org/tutorial/testing-contracts.html#writing-tests) mereka, kami telah mengadopsi penjelasan mereka di sini. - - const MyNFT = await ethers.getContractFactory("MyNFT"); - -ContractFactory di ethers.js adalah abstraksi yang digunakan untuk menyebarkan kontrak pintar baru, jadi MyNFT di sini adalah pabrik untuk instance kontrak NFT kita. Saat menggunakan plugin hardhat-ethers, instance ContractFactory dan Contract terhubung ke penandatangan pertama secara default. - - const myNFT = await MyNFT.deploy(); - -Memanggil deploy() pada ContractFactory akan memulai penyebaran, dan mengembalikan Promise yang menyelesaikan ke Contract. Ini adalah objek yang memiliki metode untuk setiap fungsi kontrak pintar kita. - -## Langkah 16: Menyebarkan kontrak kita {#deploy-contract} - -Akhirnya kita siap untuk menyebarkan kontrak pintar kita! Navigasikan kembali ke akar direktori proyek Anda, dan dalam barisan perintah jalankan: - - npx hardhat --network ropsten run scripts/deploy.js - -Lalu, Anda seharusnya melihat sesuatu seperti ini: - - Contract deployed to address: 0x81c587EB0fE773404c42c1d2666b5f557C470eED - -If we go to the [Ropsten etherscan](https://ropsten.etherscan.io/) and search for our contract address we should be able to see that it has been deployed successfully. If you can't see it immediately, please wait a while as it can take some time. Transaksi akan terlihat seperti ini: - -![Lihat alamat transaksi Anda di Etherscan](./etherscan-transaction.png) - -Alamat From seharusnya sesuai dengan alamat akun MetaMask Anda dan alamat To akan berkata "Pembuatan Kontrak." Jika kita mengklik transaksi, kita akan melihat akun kontrak kita dalam field To: - -![Lihat akun kontrak Anda di Etherscan](./etherscan-contract.png) - -Yesssss! Anda baru saja menyebarkan kontrak pintar NFT Anda ke rantai Ethereum! - -Untuk memahami apa yang terjadi di bawah hood, mari navigasikan ke tab Penjelajah dalam [dasbor Alchemy](https://dashboard.alchemyapi.io/explorer) kita. Jika Anda memiliki beberapa aplikasi Alchemy, pastikan memilah berdasarkan aplikasi dan pilih "MyNFT". - -![Lihat pemanggilan yang dibuat "dibawah hood" dengan Dasbor Penjelajah Alchemy](./alchemy-explorer.png) - -Di sini Anda akan melihat beberapa panggilan JSON-RPC yang dibuat Hardhat/Ethers untuk kita saat kita memanggil fungsi .deploy(). Dua fungsi penting untuk dipanggil keluar di sini adalah [eth_sendRawTransaction](/developers/docs/apis/json-rpc/#eth_sendrawtransaction), yang merupakan permintaan untuk benar-benar menulis kontrak pintar kita pada rantai Ropsten, dan [eth_getTransactionByHash](/developers/docs/apis/json-rpc/#eth_gettransactionbyhash) yang merupakan permintaan untuk membaca informasi tentang transaksi kita berdasarkan hash (pola umum ketika mengirim transaksi). Untuk mempelajari lebih lanjut tentang mengirim transaksi, lihat tutorial ini [tentang mengirim transaksi dengan menggunakan Web3](/developers/tutorials/sending-transactions-using-web3-and-alchemy/). - -Itulah Bagian 1 untuk tutorial ini. Dalam [Bagian 2, kita akan berinteraksi dengan kontrak pintar kita dengan mencetak NFT](/developers/tutorials/how-to-mint-an-nft/), dan dalam [Bagian 3 kami akan menunjukkan kepada Anda cara melihat NFT Anda dalam dompet Ethereum Anda](/developers/tutorials/how-to-view-nft-in-metamask/)! diff --git a/src/content/translations/id/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md b/src/content/translations/id/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md deleted file mode 100644 index 53499b6dee9..00000000000 --- a/src/content/translations/id/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md +++ /dev/null @@ -1,298 +0,0 @@ ---- -title: "Waffle: Mocking dinamis dan percobaan memanggil kontrak pintar" -description: Tutorial tingkat lanjut Waffle untuk menggunakan mocking dinamis dan percobaan memanggil kontrak -author: "Daniel Izdebski" -tags: - - "waffle" - - "kontrak pintar" - - "solidity" - - "pengujian" - - "mocking" -skill: intermediate -lang: id -published: 2020-11-14 ---- - -## Apa yang akan di pelajari pada tutorial ini? {#what-is-this-tutorial-about} - -Pada tutorial ini, Anda akan belajar cara: - -- menggunakan mocking dinamis -- menguji interaksi antara kontrak pintar - -Asumsi: - -- Anda telah mengetahui bagaimana cara menulis kontrak pintar sederhana dalam `Solidity` -- Anda terbiasa dengan `JavaScript` dan `TypeScript` -- Anda telah menyelesaikan tutorial `Waffle` lainnya atau mengetahui beberapa hal tentangnya - -## Mocking dinamis {#dynamic-mocking} - -Mengapa mocking dinamis sangat berguna? Baiklah, hal ini mengizinkan kita menulis tes unit ketimbang tes yang terintegrasi. Apa maksudnya? Hal ini berarti bahwa kita tidak perlu khawatir tentang dependensi kontrak pintar, sehingga kita bisa menguji semuanya secara terisolasi. Saya akan menunjukan bagaimana cara Anda melakukannya. - -### **1. Proyek** {#1-project} - -Sebelum memulai, kita perlu menyiapkan proyek node.js sederhana: - -```bash -$ mkdir dynamic-mocking -$ cd dynamic-mocking -$ mkdir contracts src - -$ yarn init -# or if you're using npm -$ npm init -``` - -Mari kita mulai dengan menambah typescript dan menguji dependensi - mocha dan chai: - -```bash -$ yarn add --dev @types/chai @types/mocha chai mocha ts-node typescript -# atau jika anda menggunakan npm -$ npm install @types/chai @types/mocha chai mocha ts-node typescript --save-dev -``` - -Sekarang mari tambahkan `Waffle` dan `ether`: - -```bash -$ yarn add --dev ethereum-waffle ethers -# atau jika anda menggunakan npm -$ npm install ethereum-waffle ethers --save-dev -``` - -Struktur proyek Anda seharusnya terlihat seperti ini: - -``` -. -├── contracts -├── package.json -└── test -``` - -### **2. Kontrak pintar** {#2-smart-contract} - -Untuk memulai mocking dinamis, kita membutuhkan kontrak pintar dengan dependensi. Tenang, saya akan membantu! - -Berikut adalah kontrak pintar sederhana yang ditulis dalam `Solidity` yang tujuannya hanya memeriksa apakah kita kaya. Kontrak pintar ini menggunakan token ERC20 untuk memeriksa apakah kita memiliki token yang cukup. Letakan pada `./contracts/AmIRichAlready.sol`. - -```solidity -pragma solidity ^0.6.2; - -interface IERC20 { - function balanceOf(address account) external view returns (uint256); -} - -contract AmIRichAlready { - IERC20 private tokenContract; - uint public richness = 1000000 * 10 ** 18; - - constructor (IERC20 _tokenContract) public { - tokenContract = _tokenContract; - } - - function check() public view returns (bool) { - uint balance = tokenContract.balanceOf(msg.sender); - return balance > richness; - } -} -``` - -Karena kita mau menggunakan mocking dinamis, kita tidak memerlukan seluruh ERC20, itulah mengapa kita menggunakan antarmuka IERC20 dengan hanya satu fungsi. - -Saatnya membuat kontrak ini! Untuk itu, kita akan menggunakan `Waffle`. Pertama, kita akan membuat file konfigurasi `waffle.json` sederhana yang menentukan pilihan kompilasi. - -```json -{ - "compilerType": "solcjs", - "compilerVersion": "0.6.2", - "sourceDirectory": "./contracts", - "outputDirectory": "./build" -} -``` - -Sekarang, kita sudah siap untuk membuat kontrak menggunakan Waffle: - -```bash -$ npx waffle -``` - -Mudah, bukan? Dalam folder `build/`, dua file sesuai dengan kontrak dan antar mukanya muncul. Kita akan menggunakannya nanti untuk percobaan. - -### **3. Pengujian** {#3-testing} - -Mari kita buat file bernama `AmIRichAlready.test.ts` untuk tes yang sebenarnya. Pertama, kita harus menangani hasil impor. Kita akan membutuhkannya nanti: - -```typescript -import { expect, use } from "chai" -import { Contract, utils, Wallet } from "ethers" -import { - deployContract, - deployMockContract, - MockProvider, - solidity, -} from "ethereum-waffle" -``` - -Kecuali untuk dependensi JS, kita harus mengimpor kontrak dan antar muka yang kita bangun: - -```typescript -import IERC20 from "../build/IERC20.json" -import AmIRichAlready from "../build/AmIRichAlready.json" -``` - -Waffle menggunakan `chai` untuk pengujian. Namun, sebelum kita menggunakannya, kita harus menginjeksi matcher Waffle kedalam chai: - -```typescript -use(solidity) -``` - -Kita harus mengimplementasikan fungsi `beforeEach()` yang akan mengatur ulang state kontrak sebelum setiap tes dimulai. Pertama-tama mari kita pikirkan apa yang kita butuhkan untuk itu. Untuk menggunakan kontrak, kita membutuhkan dua hal: dompet dan kontrak ERC20 yang digunakan untuk meneruskannya sebagai argumen kontrak `AmIRichAlready`. - -Pertama, kita buat dompetnya: - -```typescript -const [wallet] = new MockProvider().getWallets() -``` - -Selanjutnya, kita harus menggunakan kontrak ERC20. Ini bagian sulitnya - kita hanya memiliki satu antarmuka. Di sinilah peran di mana Waffle datang menyelamatkan kita. Waffle memiliki fungsi `deployMockContract()` ajaib yang membuat kontrak dengan hanya menggunakan _abi_ dari antarmuka: - -```typescript -const mockERC20 = await deployMockContract(wallet, IERC20.abi) -``` - -Sekarang dengan dompet maupun ERC20 yang digunakan, kita akan lanjutkan dan menggunakan kontrak `AmIRichAlready`: - -```typescript -const contract = await deployContract(wallet, AmIRichAlready, [ - mockERC20.address, -]) -``` - -Secara keseluruhan, fungsi `beforeEach()` kita telah selesai. Sejauh ini file `AmIRichAlready.test.ts` Anda seharusnya telihat seperti ini: - -```typescript -import { expect, use } from "chai" -import { Contract, utils, Wallet } from "ethers" -import { - deployContract, - deployMockContract, - MockProvider, - solidity, -} from "ethereum-waffle" - -import IERC20 from "../build/IERC20.json" -import AmIRichAlready from "../build/AmIRichAlready.json" - -use(solidity) - -describe("Am I Rich Already", () => { - let mockERC20: Contract - let contract: Contract - let wallet: Wallet - - beforeEach(async () => { - ;[wallet] = new MockProvider().getWallets() - mockERC20 = await deployMockContract(wallet, IERC20.abi) - contract = await deployContract(wallet, AmIRichAlready, [mockERC20.address]) - }) -}) -``` - -Mari kita tulis tes pertama ke kontrak `AmIRichAlready`. Menurut Anda, tentang apa seharusnya tes kita? Ya, Anda benar! Kita harus memeriksa apakah kita sudah kaya :) - -Tapi tunggu dulu. Bagaimana kontrak mocked kita tahu nilai apa yang dikembalikan? Kita belum mengimplementasikan logika apa pun untuk fungsi `balanceOf()`. Sekali lagi, Waffle bisa membantu kita di sini. Kontrak mocked kita memiliki hal baru yang menarik sekarang: - -```typescript -await mockERC20.mock..returns() -await mockERC20.mock..withArgs().returns() -``` - -Dengan pengetahuan ini, akhirnya kita bisa menulis tes pertama kita: - -```typescript -it("returns false if the wallet has less than 1000000 tokens", async () => { - await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) - expect(await contract.check()).to.be.equal(false) -}) -``` - -Mari kita pecahkan tes ini ke dalam bagian-bagian: - -1. Kita atur kontrak mock ERC20 kita untuk selalu mengembalikan saldo 999999 token. -2. Periksa apakah metode `contract.check()` mengembalikan nilai `false`. - -Kita siap untuk menyalakannya: - -![Satu ujian lulus](test-one.png) - -Jadi testnya bekerja, namun... masih ada sedikit ruang untuk peningkatan. Fungsi `balanceOf()` akan selalu mengembalikan 99999. Kita bisa meningkatkannya dengan menentukan dompet yang ke mana fungsinya harus mengembalikan sesuatu - sama seperti kontrak sungguhan: - -```typescript -it("returns false if the wallet has less than 1000001 tokens", async () => { - await mockERC20.mock.balanceOf - .withArgs(wallet.address) - .returns(utils.parseEther("999999")) - expect(await contract.check()).to.be.equal(false) -}) -``` - -Sejauh ini, kita hanya mencoba kasus di mana kita tidak cukup kaya. Mari kita coba kebalikannya: - -```typescript -it("returns true if the wallet has at least 1000001 tokens", async () => { - await mockERC20.mock.balanceOf - .withArgs(wallet.address) - .returns(utils.parseEther("1000001")) - expect(await contract.check()).to.be.equal(true) -}) -``` - -Anda jalankan tesnya... - -![Dua ujian lulus](test-two.png) - -....dan ini dia! Kontrak kita tampak berjalan sebagaimana mestinya :) - -## Menguji pemanggilan kontrak {#testing-contract-calls} - -Mari kita ringkas apa yang telah kita lakukan sejauh ini. Kita telah menguji fungsionalitas kontrak `AmIRichAlready` kita dan tampaknya bekerja dengan benar. Artinya, kita telah selesai, bukan? Belum selesai! Waffle memungkinkan kita menguji kontrak bahkan lebih jauh lagi. Tapi, bagaimana persisnya? Dalam gudang senjata Waffle, ada matcher `calledOnContract()` dan `calledOnContractWith()`. Mereka akan memungkinkan kita memeriksa apakah kontrak kita memanggil kontrak mock ERC20. Berikut adalah tes dasarnya dengan salah satu matcher ini: - -```typescript -it("checks if contract called balanceOf on the ERC20 token", async () => { - await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) - await contract.check() - expect("balanceOf").to.be.calledOnContract(mockERC20) -}) -``` - -Kita bahkan bisa melangkah lebih jauh dan meningkatkan tes ini dengan matcher lain yang saya sebutkan sebelumnya: - -```typescript -it("checks if contract called balanceOf with certain wallet on the ERC20 token", async () => { - await mockERC20.mock.balanceOf - .withArgs(wallet.address) - .returns(utils.parseEther("999999")) - await contract.check() - expect("balanceOf").to.be.calledOnContractWith(mockERC20, [wallet.address]) -}) -``` - -Mari kita periksa apakah tesnya benar: - -![Tiga ujian lulus](test-three.png) - -Hebat, semua test berwarna hijau. - -Menguji pemanggilan kontrak dengan Waffle sangatlah mudah. Dan inilah bagian terbaiknya. Matcher ini bekerja baik dalam kontrak normal dan mocked! Itu karena Waffle mencatat dan menyaring pemanggilan EVM ketimbang menginjeksi kode, seperti dalam kasus pustaka pengujian populer untuk teknologi lainnya. - -## Garis Akhir {#the-finish-line} - -Selamat! Sekarang Anda tahu cara menggunakan Waffle untuk menguji pemanggilan kontrak dan kontrak mock secara dinamis. Ada fitur yang jauh lebih menarik untuk ditemukan. Saya menyarankan menyelam ke dalam dokumentasi Waffle. - -Dokumentasi Waffle tersedia [di sini](https://ethereum-waffle.readthedocs.io/). - -Sumber kode untuk tutorial ini bisa ditemukan [di sini](https://github.com/EthWorks/Waffle/tree/master/examples/dynamic-mocking-and-testing-calls). - -Tutorial yang mungkin juga Anda minati: - -- [Menguji kontrak pintar dengan Waffle](/developers/tutorials/testing-smart-contract-with-waffle/) diff --git a/src/content/translations/id/history/index.md b/src/content/translations/id/history/index.md deleted file mode 100644 index ae00475c36f..00000000000 --- a/src/content/translations/id/history/index.md +++ /dev/null @@ -1,516 +0,0 @@ ---- -title: Riwayat dan Fork Ethereum -description: Riwayat blockchain Ethereum termasuk tonggak sejarah, rilis, dan fork utama. -lang: id -sidebarDepth: 1 ---- - -# Riwayat Ethereum {#the-history-of-ethereum} - -Linimasa semua tonggak sejarah, fork, dan pembaruan utama dalam blockchain Ethereum. - - - -Garpu terjadi ketika ada perubahan atau peningkatan teknis yang signifikan yang perlu dilakukan pada jaringan - biasanya berasal dari Proposal Peningkatan Ethereum (EIP) dan mengubah "aturan" protokol. - -Ketika peningkatan diperlukan dalam perangkat lunak tradisonal yang dikontrol secara terpusat, perusahaan hanya akan menerbitkan versi terbarunya bagi pengguna akhir. Blockchain bekerja dengan cara yang berbeda karena tidak ada kepemilikan terpusat. Klien Ethereum harus memperbarui perangkat lunak mereka untuk mengimplementasikan aturan fork yang baru. Pembuat blok plus (penambang di dunia bukti kerja, validator di dunia bukti taruhan) dan node harus membuat blok dan memvalidasi aturan baru. Lebih lanjut tentang mekanisme konsensus - -Aturan-aturan ini dapat mengubah pemisahan sementara di jarinagn ini. Blok baru dapat dibuat berdasarkan peraturan baru atau lama. Fork biasanya disepakati sebelumnya sehingga klien mengadopsi perubahan secara bersamaan dan fork dengan peningkatan menjadi rantai utama. Namun, dalam kasus yang jarang terjadi, perselisihan mengenai garpu dapat menyebabkan jaringan terbagi secara permanen - yang paling terkenal adalah terciptanya Ethereum Classic dengan fork DAO. - - - -Langsung menuju informasi tentang beberapa peningkatan penting di masa lalu: [Rantai Suar](/roadmap/beacon-chain/); [Penggabungan](/roadmap/merge/); dan [EIP-1559](#london) - -Sedang mencari peningkatan protokol di masa mendatang? [Pelajari tentang upgrade mendatang pada peta perjalanan Ethereum](/roadmap/). - - - -## 2023 {#2023} - -### Shanghai {#shanghai} - - - -#### Ringkasan {#shanghai-summary} - -Peningkatan Shanghai membawa penarikan penaruhan ke Lapisan Eksekusi. Bersamaan dengan peningkatan Capella, ini memungkinkan blok menerima operasi penarikan, yang memungkinkan para staker menarik ETH mereka dari Rantai Suar ke lapisan eksekusi. - - - -
    -
  • EIP-3651Memulai alamat COINBASE menjadi hangat
  • -
  • EIP-3855Instruksi PUSH0 baru
  • -
  • EIP-3860Batasi dan ukur kode awal
  • -
  • EIP-4895Penarikan dorong rantai suar sebagai operasi
  • -
  • EIP-6049 - Hentikan SELFDESTRUCT
  • -
- -
- -- [Baca spesifikasi meningkatkan Shanghai](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/shanghai.md) - ---- - -### Capella {#capella} - - - -#### Ringkasan {#capella-summary} - -Peningkatan Capella adalah peningkatan utama ketiga pada lapisan konsensus (Rantai Suar) dan memungkinkan penarikan penaruhan. Capella terjadi secara bersamaan dengan upgrade lapisan eksekusi, Shanghai, dan mengaktifkan fungsionalitas penarikan penaruhan. - -Peningkatan lapisan konsensus ini membawa kemampuan bagi staker yang tidak menyediakan kredensial penarikan bersama setoran awal mereka untuk melakukannya, dengan demikian memungkinkan penarikan. - -Peningkatan ini juga menyediakan fungsionalitas pemindaian akun otomatis, yang terus-menerus memproses akun validator untuk pembayaran imbalan yang tersedia atau penarikan penuh. - -- [Lebih lanjut tentang penarikan penaruhan](/staking/withdrawals/). -- [Baca spesifikasi peningkatan Capella](https://github.com/ethereum/consensus-specs/blob/dev/specs/capella/) - - - -## 2022 {#2022} - -### Paris (Penggabungan) {#paris} - - - -#### Ringkasan {#paris-summary} - -Peningkatan Paris dipicu oleh rantai blok bukti kerja mencapai [total tingkat kesulitan terminal](/glossary/#terminal-total-difficulty) sebesar 58750000000000000000000. Hal ini terjadi pada blok 15537393 pada tanggal 15 September 2022, memicu peningkatan Paris pada blok berikutnya. Paris merupakan transisi [Penggabungan](/roadmap/merge/) fitur utamanya adalah mematikan algoritma penambangan [bukti kerja](/developers/docs/consensus-mechanisms/pow) dan logika konsensus terkait, serta sebagai gantinya mengaktifkan [bukti taruhan](/developers/docs/consensus-mechanisms/pos). Paris sendiri merupakan peningkatan untuk [klien eksekusi](/developers/docs/nodes-and-clients/#execution-clients) (setara dengan Bellatrix pada lapisan konsensus) yang memungkinkan mereka menerima instruksi dari [klien konsensus](/developers/docs/nodes-and-clients/#consensus-clients) yang terhubung. Untuk ini, diperlukan seperangkat metode API internal baru, yang secara kolektif dikenal sebagai [API Mesin](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md), untuk diaktifkan. Ini dapat dikatakan sebagai peningkatan paling signifikan dalam sejarah Ethereum sejak [Homestead](#homestead)! - -- [Baca spesifikasi peningkatan Paris](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/paris.md) - - - -
    -
  • EIP-3675Meningkatkan konsensus ke Bukti Taruhan
  • -
  • EIP-4399Ganti opcode KESULITAN dengan PREVRANDAO
  • -
- -
- ---- - -### Bellatrix {#bellatrix} - - - -#### Ringkasan {#bellatrix-summary} - -Peningkatan Bellatrix adalah peningkatan terjadwal kedua untuk [Rantai Suar](/roadmap/beacon-chain), mempersiapkan jaringan untuk [Penggabungan](/roadmap/merge/). Peningkatan ini membawa denda validator ke nilai penuh untuk ketidakaktifan dan pelanggaran yang dapat dipotong. Bellatrix juga mencakup pembaruan pada aturan pemilihan garpu untuk mempersiapkan jaringan untuk Penggabungan dan transisi dari blok bukti kerja terakhir ke blok bukti taruhan pertama. Hal ini mencakup membuat klien konsensus menyadari [total kesulitan terminal](/glossary/#terminal-total-difficulty) sebesar 58750000000000000000000. - -- [Baca spesifikasi peningkatan Bellatrix](https://github.com/ethereum/consensus-specs/tree/dev/specs/bellatrix) - ---- - -### Gray Glacier {#gray-glacier} - - - -#### Ringkasan {#gray-glacier-summary} - -Peningkatan jaringan Gray Glacier menunda [bomb kesulitan](/glossary/#difficulty-bomb) selama tiga bulan. Ini adalah satu-satunya perubahan yang dibolehkan dalam pembaruan ini, dan sifatnya serupa dengan pembaruan [Arrow Glacier](#arrow-glacier) dan [Muir Glacier](#muir-glacier). Perubahan serupa telah diterapkan pada peningkatan jaringan [Byzantium](#byzantium), [Konstatinopel](#constantinople) dan [London](#london). - -- [EF Blog - Pengumuman Pembaruan Gray Glacier](https://blog.ethereum.org/2022/06/16/gray-glacier-announcement/) - - - -
    -
  • EIP-5133menunda bom kesulitan hingga September 2022
  • -
- -
- - - -## 2021 {#2021} - -### Arrow Glacier {#arrow-glacier} - - - -#### Ringkasan {#arrow-glacier-summary} - -Peningkatan jaringan Arrow Glacier menjeda [bom kesulitan](/glossary/#difficulty-bomb) sebanyak beberapa bulan. Ini adalah satu-satunya perubahan yang diperkenalkan dalam peningkatan ini, dan sifatnya sama dengan peningkatan [Muir Glacier](#muir-glacier). Perubahan serupa telah diterapkan pada peningkatan jaringan [Byzantium](#byzantium), [Konstatinopel](#constantinople) dan [London](#london). - -- [Blog EF - Pengumuman Peningkatan Arrow Glacier](https://blog.ethereum.org/2021/11/10/arrow-glacier-announcement/) -- [Ethereum Cat Herders - Peningkatan Arrow Glacier Ethereum](https://medium.com/ethereum-cat-herders/ethereum-arrow-glacier-upgrade-e8d20fa4c002) - - - -
    -
  • EIP-4345menunda bom kesulitan hingga Juni 2022
  • -
- -
- ---- - -### Altair {#altair} - - - -#### Ringkasan {#altair-summary} - -Peningkatan Altair adalah peningkatan pertama yang terjadwal untuk [Rantai Suar](/roadmap/beacon-chain). Ini memberi tambahan dukungan untuk "komite sinkronisasi" — memungkinkan klien ringan, dan meningkatkan ketidakaktifan validator dan memotong hukuman saat pengembangan berkembang menuju Penggabungan. - -- [Baca spesifikasi peningkatan Altair](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) - -#### Fakta menyenangkan! {#altair-fun-fact} - -Altair adalah peningkatan besar dan pertama untuk jaringan yang memiliki waktu rollout yang pasti. Setiap peningkatan sebelumnya telah berdasarkan pada suatu nomor blok yang dideklarasikan pada rantai bukti kerja, dengan waktu blok yang bervariasi. Rantai Suar tidak mengharuskan penyelesaian bukti kerja, dan sebagai gantinya berfungsi pada sistem jangka waktu berbasis waktu yang terdiri dari 32 "slot" waktu dua belas detik di mana para validator dapat mengusulkan blok. Inilah alasan kami mengetahui secara pasti kapan kami akan mencapai jangka waktu 74.240 dan Altair mulai beroperasi! - -- [Waktu blok](/developers/docs/blocks/#block-time) - ---- - -### London {#london} - - - -#### Ringkasan {#london-summary} - -Peningkatan London memperkenalkan [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559), yang memperbarui pasar biaya transaksi, bersamaan dengan perubahan bagaimana pembayaran kembali gas ditangani dan jadwal untuk [Zaman Es](/glossary/#ice-age). - -- [Apakah Anda seorang pengembang dapp? Pastikan untuk meningkatkan pustaka dan peralatan Anda.](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/london-ecosystem-readiness.md) -- [Baca pengumuman Ethereum Foundation](https://blog.ethereum.org/2021/07/15/london-mainnet-announcement/) -- [Baca penjelasan Ethereum Cat Herder](https://medium.com/ethereum-cat-herders/london-upgrade-overview-8eccb0041b41) - - - -
    -
  • EIP-1559meningkatkan pasar biaya transaksi
  • -
  • EIP-3198mengembalikan BASEFEE dari blok
  • -
  • EIP-3529 - mengurangi pengembalian dana gas untuk pengoperasian EVM
  • -
  • EIP-3541 - mencegah penggunaan kontrak dengan 0xEF
  • -
  • EIP-3554menunda Zaman Es hingga Desember 2021
  • -
- -
- ---- - -### Berlin {#berlin} - - - -#### Ringkasan {#berlin-summary} - -Peningkatan Berlin mengoptimalkan harga gas untuk beberapa aksi EVM, dan meningkatkan dukungan pada beragam jenis transaksi. - -- [Baca pengumuman Yayasan Ethereum](https://blog.ethereum.org/2021/03/08/ethereum-berlin-upgrade-announcement/) -- [Baca penjelasan Ethereum Cat Herder](https://medium.com/ethereum-cat-herders/the-berlin-upgrade-overview-2f7ad710eb80) - - - -
    -
  • EIP-2565mengurangi biaya gas ModExp
  • -
  • EIP-2718memungkinkan dukungan yang lebih mudah untuk berbagai jenis transaksi
  • -
  • EIP-2929kenaikan biaya gas untuk opcode akses negara bagian
  • -
  • EIP-2930menambahkan daftar akses opsional
  • -
- -
- - - -## 2020 {#2020} - -### Genesis Rantai Suar {#beacon-chain-genesis} - - - -#### Ringkasan {#beacon-chain-genesis-summary} - -[Rantai Suar](/roadmap/beacon-chain/) memerlukan deposito 16384 dari 32 ETH yang ditaruhkan untuk diluncurkan secara aman. Ini terjadi pada 27 November yang berarti Rantai Suar mulai memproduksi blok pada 1 Desember 2020. Ini adalah langkah pertama yang penting untuk meraih [visi Ethereum](/roadmap/vision/). - -[Baca pengumuman Yayasan Ethereum](https://blog.ethereum.org/2020/11/27/eth2-quick-update-no-21/) - - - Rantai Suar - - ---- - -### Kontrak setoran penaruhan dibuat {#staking-deposit-contract} - - - -#### Ringkasan {#deposit-contract-summary} - -Kontrak setoran penaruhan memperkenalkan [penaruhan](/glossary/#staking) ke ekosistem Ethereum. Bahkan kontrak [Jaringan Utama](/glossary/#mainnet) memiliki dampak langsung pada linimasa peluncuran [Rantai Suar](/roadmap/beacon-chain/), yaitu [peningkatan Ethereum](/roadmap/) yang penting. - -[Baca pengumuman Yayasan Ethereum](https://blog.ethereum.org/2020/11/04/eth2-quick-update-no-19/) - - - Penaruhan - - ---- - -### Muir Glacier {#muir-glacier} - - - -#### Ringkasan {#muir-glacier-summary} - -Fork Gletser Muir memperkenalkan penundaan pada [bom kesulitan](/glossary/#difficulty-bomb). Peningkatan kesulitan blok mekanisme konsensus [bukti kerja](/developers/docs/consensus-mechanisms/pow/) mengancam akan menurunkan kegunaan Ethereum dengan meningkatkan waktu tunggu untuk mengirim transaksi dan menggunakan dapps. - -- [Baca pengumuman Yayasan Ethereum](https://blog.ethereum.org/2019/12/23/ethereum-muir-glacier-upgrade-announcement/) -- [Baca penjelasan Ethereum Cat Herder](https://medium.com/ethereum-cat-herders/ethereum-muir-glacier-upgrade-89b8cea5a210) - - - -
    -
  • EIP-2384menunda bom kesulitan selama 4.000.000 blok lagi, atau sekitar ~611 hari.
  • -
- -
- - - -## 2019 {#2019} - -### Istanbul {#istanbul} - - - -#### Ringkasan {#istanbul-summary} - -Garpu Istanbul: - -- Mengoptimalkan biaya [gas](/glossary/#gas) dari aksi tertentu di [EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine). -- Meningkatkan ketahanan terhadap serangan penolakan layanan. -- Membuat solusi [penskalaan Lapisan ke-2](/developers/docs/scaling/#layer-2-scaling) berdasarkan SNARK dan STARK berkinerja lebih baik. -- Memungkinkan Ethereum dan Zcash untuk saling bekerja sama. -- Kontrak yang diizinkan untuk memperkenalkan lebih banyak fungsi kreatif. - -[Baca pengumuman Yayasan Ethereum](https://blog.ethereum.org/2019/11/20/ethereum-istanbul-upgrade-announcement/) - - - -
    -
  • EIP-152memungkinkan Ethereum bekerja dengan mata uang yang menjaga privasi seperti Zcash.
  • -
  • EIP-1108kriptografi yang lebih murah untuk meningkatkan kinerja biaya gas.
  • -
  • EIP-1344melindungi Ethereum dari serangan ulang dengan menambahkan CHAINID opcode.
  • -
  • EIP-1884mengoptimalkan harga gas opcode berdasarkan konsumsi.
  • -
  • EIP-2028mengurangi biaya CallData untuk memungkinkan lebih banyak data dalam blok – baik untuk Penskalaan Lapisan ke-2.
  • -
  • EIP-2200penyesuaian harga gas opcode lainnya.
  • -
- -
- ---- - -### Constantinople {#constantinople} - - - -#### Ringkasan {#constantinople-summary} - -Fork Konstantinopel: - -- Memastikan rantai blok tidak membeku sebelum [bukti taruhan diimplementasikan](#beacon-chain-genesis). -- Mengoptimalkan biaya [gas](/glossary/#gas) dari aksi tertentu di [EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine). -- Menambahkan kemampuan untuk berinteraksi dengan alamat yang belum dibuat. - -[Baca pengumuman Yayasan Ethereum](https://blog.ethereum.org/2019/02/22/ethereum-constantinople-st-petersburg-upgrade-announcement/) - - - -
    -
  • EIP-145mengoptimalkan biaya tindakan di dalam rantai tertentu.
  • -
  • EIP-1014memungkinkan Anda berinteraksi dengan alamat yang belum dibuat.
  • -
  • EIP-1052mengoptimalkan biaya tindakan di dalam rantai tertentu.
  • -
  • EIP-1234memastikan rantai blok tidak membeku sebelum bukti taruhan.
  • -
- -
- - - -## 2017 {#2017} - -### Byzantium {#byzantium} - - - -#### Ringkasan {#byzantium-summary} - -Fork Byzantium: - -- Pengurangan imbalan [penambangan](/developers/docs/consensus-mechanisms/pow/mining/) blok dari 5 menjadi 3 ETH. -- Menunda [bom tingkat kesulitan](/glossary/#difficulty-bomb) selama satu tahun. -- Menambahkan kemampuan untuk melakukan panggilan yang tidak mengubah state ke kontrak lain. -- Menambahkan metode kriptografi tertentu untuk memungkinkan [penskalaan lapisan ke-2](/developers/docs/scaling/#layer-2-scaling). - -[Baca pengumuman Yayasan Ethereum](https://blog.ethereum.org/2017/10/12/byzantium-hf-announcement/) - - - -
    -
  • EIP-140menambahkan opcode REVERT.
  • -
  • EIP-658Bidang status ditambahkan ke tanda terima transaksi untuk menunjukkan keberhasilan atau kegagalan.
  • -
  • EIP-196menambahkan kurva elips dan perkalian skalar untuk memungkinkan ZK-Snarks.
  • -
  • EIP-197menambahkan kurva elips dan perkalian skalar untuk memungkinkan ZK-Snarks.
  • -
  • EIP-198memungkinkan verifikasi tanda tangan RSA.
  • -
  • EIP-211menambahkan dukungan untuk nilai pengembalian panjang variabel.
  • -
  • EIP-214menambahkan STATICCALL opcode, mengizinkan panggilan yang tidak mengubah status ke kontrak lain.
  • -
  • EIP-100mengubah formula penyesuaian tingkat kesulitan.
  • -
  • EIP-649penundaan bom tingkat kesulitan selama 1 tahun dan mengurangi hadiah blok dari 5 menjadi 3 ETH.
  • -
- -
- - - -## 2016 {#2016} - -### Spurious Dragon {#spurious-dragon} - - - -#### Ringkasan {#spurious-dragon-summary} - -Garpu Spurious Dragon adalah respons kedua terhadap serangan penolakan layanan (DoS) di jaringan (September/Oktober 2016) termasuk: - -- menyetel harga opcode untuk mencegah serangan di masa mendatang pada jaringan. -- memungkinkan "debloat" dari status rantai blok. -- menambahkan perlindungan terhadap serangan perulangan. - -[Baca pengumuman Yayasan Ethereum](https://blog.ethereum.org/2016/11/18/hard-fork-no-4-spurious-dragon/) - - - -
    -
  • EIP-155mencegah transaksi dari satu rantai Ethereum disiarkan ulang di rantai alternatif, misalnya transaksi jaringan percobaan yang diputar ulang di rantai Ethereum utama.
  • -
  • EIP-160menyesuaikan harga dari EXP opcode – mempersulit memperlambat jaringan melalui operasi kontrak yang mahal secara komputasi.
  • -
  • EIP-161memungkinkan penghapusan akun kosong yang ditambahkan melalui serangan DOS.
  • -
  • EIP-170mengubah ukuran kode maksimum yang dapat dimiliki oleh sebuah kontrak pada rantai blok – menjadi 24576 bita.
  • -
- -
- ---- - -### Tangerine whistle {#tangerine-whistle} - - - -#### Ringkasan {#tangerine-whistle-summary} - -Garpu Tangerine Whistle adalah respons pertama terhadap serangan denial of service (DoS) di jaringan (September/Oktober 2016) yang mencakup: - -- menangani masalah kesehatan jaringan yang mendesak mengenai kode operasi yang terlalu murah. - -[Baca pengumuman Yayasan Ethereum](https://blog.ethereum.org/2016/10/18/faq-upcoming-ethereum-hard-fork/) - - - -
    -
  • EIP-150meningkatkan biaya gas dari opcode yang dapat digunakan dalam serangan spam.
  • -
  • EIP-158mengurangi ukuran status dengan menghapus sejumlah besar akun kosong yang dimasukkan ke dalam status dengan biaya yang sangat rendah karena adanya kekurangan pada versi protokol Ethereum sebelumnya.
  • -
- -
- ---- - -### Garpu DAO {#dao-fork} - - - -#### Ringkasan {#dao-fork-summary} - -Garpu DAO merupakan respons terhadap [serangan DAO 2016](https://www.coindesk.com/learn/understanding-the-dao-attack/) di mana kontrak [DAO](/glossary/#dao) yang tidak aman dikuras dananya sebanyak lebih dari 3,6 juta ETH dalam peretasan saat itu. Garpu tersebut memindahkan dana dari kontrak bermasalah ke [kontrak baru](https://etherscan.io/address/0xbf4ed7b27f1d666546e30d74d50d173d20bca754) dengan satu fungsi tunggal: tarik. Siapa pun yang kehilangan dana dapat menarik 1 ETH untuk setiap 100 token DAO di dompet mereka. - -Tindakan ini dipilih oleh komunitas Ethereum. Setiap pemegang ETH dapat memilih melalui transaksi di [platform pemilihan](https://web.archive.org/web/20170620030820/http://v1.carbonvote.com/). Keputusan untuk melakukan fork mencapai lebih dari 85% suara. - -Beberapa penambang menolak melakukan garpu karena insiden DAO bukan merupakan kesalahan dalam protokol. Mereka kemudian membentuk [Ethereum Classic](https://ethereumclassic.org/). - -[Baca pengumuman Yayasan Ethereum](https://blog.ethereum.org/2016/07/20/hard-fork-completed/) - ---- - -### Homestead {#homestead} - - - -#### Ringkasan {#homestead-summary} - -Garpu Homestead yang melihat ke masa depan. Ini termasuk beberapa perubahan protokol dan perubahan jaringan yang memberi Ethereum kemampuan untuk melakukan peningkatan jaringan lebih lanjut. - -[Baca pengumuman Yayasan Ethereum](https://blog.ethereum.org/2016/02/29/homestead-release/) - - - -
    -
  • EIP-2melakukan pengeditan pada proses pembuatan kontrak.
  • -
  • EIP-7menambahkan opcode baru: DELEGATECALL
  • -
  • EIP-8memperkenalkan persyaratan kompatibilitas ke depan devp2p
  • -
- -
- - - -## 2015 {#2015} - -### Thawing frontier {#frontier-thawing} - - - -#### Ringkasan {#frontier-thawing-summary} - -Garpu thawing frontier mengangkat batas [gas](/glossary/#gas) 5.000 per [blok](/glossary/#block) blok dan menetapkan harga gas default menjadi 51 [gwei](/glossary/#gwei). Ini memungkinkan transaksi–transaksi membutuhkan 21.000 gas. [bom tingkat kesulitan](/glossary/#difficulty-bomb) diperkenalkan untuk memastikan garpu-tangan di masa depan untuk [bukti taruhan](/glossary/#pos). - -- [Baca pengumuman Yayasan Ethereum](https://blog.ethereum.org/2015/08/04/the-thawing-frontier/) -- [Baca Pembaruan Protokol Ethereum 1](https://blog.ethereum.org/2015/08/04/ethereum-protocol-update-1/) - ---- - -### Garis depan {#frontier} - - - -#### Ringkasan {#frontier-summary} - -Frontier adalah implementasi langsung, tetapi barebone dari proyek Ethereum. Ini mengikuti fase pengujian Olimpiade yang sukses. Ditujukan untuk pengguna teknis, khususnya pengembang. [Blok](/glossary/#block) memiliki batas [gas](/glossary/#gas) sebesar 5.000. Periode 'pencairan' ini memungkinkan penambang untuk memulai operasi mereka dan bagi pengguna awal untuk menginstal klien mereka tanpa harus 'terburu-buru'. - -[Baca pengumuman Yayasan Ethereum](https://blog.ethereum.org/2015/07/22/frontier-is-coming-what-to-expect-and-how-to-prepare/) - - - -## 2014 {#2014} - -### Penjualan Ether {#ether-sale} - - - -Ether secara resmi mulai dijual selama 42 hari. Anda dapat membelinya dengan BTC. - -[Baca pengumuman Yayasan Ethereum](https://blog.ethereum.org/2014/07/22/launching-the-ether-sale/) - ---- - -### Yellowpaper dirilis {#yellowpaper} - - - -Yellow Paper, yang ditulis oleh Dr. Gavin Wood, adalah definisi teknis dari protokol Ethereum. - -[Lihat Yellow Paper](https://github.com/ethereum/yellowpaper) - - - -## 2013 {#2013} - -### Kertas putih dirilis {#whitepaper} - - - -Makalah pengantar, diterbitkan pada tahun 2013 oleh Vitalik Buterin, pendiri Ethereum, sebelum peluncuran proyek pada tahun 2015. - - - Laporan Resmi - diff --git a/src/content/translations/id/nft/index.md b/src/content/translations/id/nft/index.md deleted file mode 100644 index b4975db81e3..00000000000 --- a/src/content/translations/id/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Token yang tidak dapat dipertukarkan (NFT) -description: Gambaran umum tentang NFT di Ethereum -lang: id -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: Logo Eth yang ditampilkan melalui hologram. -summaryPoint1: Cara untuk mewakili apa pun yang unik sebagai aset berbasis Ethereum. -summaryPoint2: NFT memberi lebih banyak pemberdayaan terhadap para pembuat konten daripada sebelumnya. -summaryPoint3: Digerakkan oleh kontrak pintar di rantai blok Ethereum. ---- - -## Apa itu NFT? {#what-are-nfts} - -NFT adalah token yang unik secara individual. Setiap NFT memiliki properti yang berbeda (tidak dapat dipertukarkan) dan terbukti langka. Ini berbeda dari token seperti ERC-20 di mana setiap token dalam satu set identik dan memiliki properti yang sama ('dapat dipertukarkan'). Anda tidak peduli dengan lembaran dolar kertas tertentu yang ada di dompet Anda, karena semuanya identik dan memiliki nilai yang sama. Namun, Anda _peduli_ dengan NFT tertentu yang Anda miliki, karena semuanya memiliki properti individual yang membedakan satu sama lain. - -Keunikan dari setiap NFT memungkinkan tokenisasi untuk berbagai hal seperti seni, koleksi, atau bahkan properti, yang mana satu NFT unik yang spesifik mewakili suatu item dunia nyata atau digital yang unik. Kepemilikan suatu aset diamankan oleh rantai blok Ethereum – tidak seorang pun dapat merubah catatan kepemilikan atau menyalin/menempel NFT baru untuk mengadakannya. - - - -## Internet aset {#internet-of-assets} - -NFT dan Ethereum memecahkan beberapa masalah yang ada di internet saat ini. Karena semuanya telah menjadi lebih digital, ada kebutuhan untuk meniru properti barang fisik seperti kelangkaan, keunikan, dan bukti kepemilikan. dalam cara yang tidak dikendalikan oleh organisasi pusat. Sebagai contoh, dengan NFT, Anda dapat memiliki file musik mp3 yang tidak terkait dengan aplikasi musik dari satu perusahaan tertentu, atau Anda dapat memiliki akun media sosial yang dapat Anda jual atau tukar, namun tidak dapat sembarangan diambil oleh penyedia platform. - -Inilah bagaimana teknologi yang terdiri dari NFT dibandingkan dengan teknologi yang kebanyakan dari kita gunakan saat ini... - -### Perbandingan {#nft-comparison} - -| Internet NFT | Internet saat ini | -| ----------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Aset Anda milik Anda! Hanya Anda yang dapat menjual atau menukarnya. | Anda menyewa suatu aset dari beberapa organisasi. | -| NFT secara digital unik, tidak ada dua NFT yang sama. | Salinan dari suatu entitas sering kali tidak dapat dibedakan dari aslinya. | -| Kepemilikan NFT disimpan pada rantai blok agar dapat diverifikasi oleh siapa saja. | Catatan kepemilikan barang digital disimpan di server yang dikendalikan oleh institusi – Anda harus mengikuti peraturan mereka untuk itu. | -| NFT adalah kontrak pintar di Ethereum. Ini berarti dapat digunakan dengan mudah dalam kontrak pintar dan aplikasi lain di Ethereum! | Perusahaan dengan barang digital biasanya memerlukan infrastruktur "taman tembok" sendiri. | -| Kreator konten dapat menjual karya mereka di mana saja dan dapat mengakses pasar global. | Kreator bergantung pada infrastruktur dan distribusi platform yang mereka gunakan. Tindakan ini sering kali tunduk pada ketentuan pembatasan penggunaan dan geografis. | -| Kreator NFT dapat mempertahankan hak kepemilikan atas karyanya sendiri, dan mengatur royalti secara langsung ke dalam kontrak NFT. | Platform, seperti layanan tayangan musik, mempertahankan sebagian besar keuntungan dari penjualan. | - -## Bagaimana cara kerja NFT? {#how-nfts-work} - -Seperti halnya token yang diterbitkan di Ethereum, NFT diterbitkan oleh sebuah kontrak pintar. Kontrak pintar sesuai dengan salah satu dari beberapa standar NFT (umumnya ERC-721 atau ERC-1155) yang mendefinisikan fungsi-fungsi yang dimiliki oleh kontrak tersebut. Kontrak dapat menciptakan ('mencetak') NFT dan menetapkannya kepada pemilik tertentu. Kepemilikan didefinisikan dalam kontrak dengan memetakan NFT spesifik ke alamat tertentu. NFT memiliki ID dan umumnya metadata yang terkait dengannya yang membuat token spesifik tersebut unik. - -Ketika seseorang menciptakan atau mencetak NFT, mereka sebenarnya menjalankan fungsi dalam kontrak pintar yang menetapkan NFT spesifik ke alamat mereka. Informasi ini disimpan dalam penyimpanan kontrak, yang merupakan bagian dari rantai blok. Kreator kontrak dapat menulis logika tambahan ke dalam kontrak, misalnya membatasi pasokan total atau menentukan royalti yang harus dibayarkan kepada pembuat setiap kali token ditransfer. - -## NFT digunakan untuk apa? {#nft-use-cases} - -NFT digunakan untuk banyak hal, termasuk: - -- membuktikan bahwa Anda menghadiri sebuah acara -- membuktikan bahwa Anda menyelesaikan sebuah kursus -- item yang dapat dimiliki dalam game -- seni digital -- melakukan tokenisasi aset dunia nyata -- membuktikan identitas daring Anda -- membatasi akses ke konten -- penjualan tiket -- nama domain internet terdesentralisasi -- jaminan dalam DeFi - -Mungkin Anda adalah seorang seniman yang ingin berbagi karya mereka menggunakan NFT, tanpa kehilangan kontrol dan mengorbankan keuntungan Anda kepada perantara. Anda dapat membuat kontrak baru dan menentukan jumlah NFT, propertinyaa, dan tautan ke beberapa karya seni khusus. Sebagai seniman, Anda dapat memprogram royalti yang seharusnya Anda terima ke dalam kontrak pintar (misalnya, mentransfer 5% dari harga penjualan ke pemilik kontrak setiap kali NFT ditransfer). Anda juga selalu dapat membuktikan bahwa Anda menciptakan NFT karena Anda memiliki dompet yang mendeploy kontrak tersebut. Pembeli Anda dengan mudah dapat membuktikan bahwa mereka memiliki NFT asli dari koleksi Anda karena alamat dompet mereka terkait dengan token dalam kontrak pintar Anda. Mereka dapat menggunakannya di seluruh ekosistem Ethereum, dengan keyakinan akan keasliannya. - -Atau pertimbangkan tiket untuk sebuah acara olahraga. Sama seperti penyelenggara sebuah acara dapat memilih berapa banyak tiket yang dapat dijual, pembuat NFT dapat memutuskan berapa banyak tiruan yang ada. Terkadang ini adalah tiruan yang sama persis, seperti 5000 tiket Masuk Umum. Terkadang ada beberapa dicetak sangat serupa, tetapi masing-masing sedikit berbeda, seperti tiket dengan kursi yang ditentukan. Tiket-tiket ini dapat dibeli dan dijual secara peer-to-peer tanpa membayar petugas tiket, dan pembeli selalu memiliki jaminan keaslian tiket dengan memeriksa alamat kontrak. - -Di ethereum.org, NFT digunakan untuk menunjukkan bahwa orang-orang telah berkontribusi pada repositori GitHub kami atau menghadiri panggilan, dan kami bahkan memiliki nama domain NFT kami sendiri. Jika Anda berkontribusi pada ethereum.org, Anda dapat memperoleh NFT POAP. Beberapa pertemuan kripto telah menggunakan POAP sebagai tiket. [Selengkapnya tentang berkontribusi](/contributing/#poap). - -![POAP ethereum.org](./poap.png) - -Situs web ini juga memiliki nama domain alternatif yang didukung oleh NFT, **ethereum.eth**. Alamat `.org` kami dikelola secara terpusat oleh sebuah penyedia sistem nama domain (DNS), sedangkan ethereum`.eth` terdaftar di Ethereum melalui Layanan Nama Ethereum (ENS). Dan ini dimiliki dan dikelola oleh kami. [Lihat catatan ENS kami](https://app.ens.domains/name/ethereum.eth) - -[Selengkapnya tentang ENS](https://app.ens.domains) - - - -### Keamanan NFT {#nft-security} - -Keamanan Ethereum berasal dari bukti taruhan. Sistem dirancang untuk memberikan insentif ekonomi yang mengurangi kemungkinan tindakan jahat, sehingga Ethereum menjadi tidak mungkin di palsukan. Inilah yang membuat NFT menjadi mungkin. Setelah blok yang berisi transaksi NFT Anda menjadi final, biaya yang diperlukan bagi penyerang untuk mengubahnya akan mencapai jutaan ETH. Setiap orang yang menjalankan perangkat lunak Ethereum akan segera dapat mendeteksi manipulasi yang tidak jujur terhadap NFT, dan pelaku kejahatan akan dikenakan hukuman ekonomi dan diusir. - -Masalah keamanan terkait NFT sering kali terkait dengan penipuan phishing, kerentanan kontrak pintar, atau kesalahan pengguna (seperti secara tidak sengaja mengekspos kunci pribadi), sehingga keamanan dompet yang baik menjadi sangat penting bagi pemilik NFT. - - - Lebih lanjut tentang keamanan - - -## Bacaan lebih lanjut {#further-reading} - -- [Panduan tentang NFT bagi pemula](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, Januari 2020_ -- [Pelacak NFT Etherscan](https://etherscan.io/nft-top-contracts) -- [Standar token ERC-721](/developers/docs/standards/tokens/erc-721/) -- [Token standar ERC-1155](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/id/refi/index.md b/src/content/translations/id/refi/index.md deleted file mode 100644 index fbe61df0344..00000000000 --- a/src/content/translations/id/refi/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: Keuangan Regeneratif (ReFi) -description: Gambaran umum tentang ReFi dan kasus penggunaannya saat ini. -lang: id -template: use-cases -emoji: ":recycle:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Sistem ekonomi alternatif yang didasarkan pada prinsip regeneratif -summaryPoint2: Upaya untuk memanfaatkan Ethereum untuk memecahkan krisis-krisis koordinasi tingkat global seperti perubahan iklim -summaryPoint3: Alat untuk meningkatkan skala aset manfaat ekologi secara drastis seperti kredit karbon terverifikasi ---- - -## Apa itu ReFi? {#what-is-refi} - -**Keuangan Regeneratif (ReFi)** adalah seperangkat perangkat dan ide yang dibangun di atas rantai blok, yang bertujuan untuk menciptakan ekonomi yang regeneratif, bukan ekstraktif atau eksploitatif. Hasilnya, sistem ekstraktif menguras sumber daya yang tersedia dan runtuh; tanpa mekanisme regeneratif, sistem ini tidak memiliki ketahanan. ReFi beroperasi dengan asumsi bahwa penciptaan nilai moneter harus dipisahkan dari ekstraksi sumber daya yang tidak berkelanjutan dari planet dan masyarakat kita. - -Sebaliknya, ReFi bertujuan untuk memecahkan masalah lingkungan, komunal, atau sosial dengan menciptakan siklus regeneratif. Sistem ini menciptakan nilai bagi para partisipan-partisipan sekaligus memberi manfaat bagi ekosistem dan masyarakat. - -Salah satu dasar dari ReFi adalah konsep ekonomi regeneratif yang dipelopori oleh John Fullerton dari [Capital Institute](https://capitalinstitute.org). Dia mengusulkan delapan prinsip yang saling berhubungan yang mendasari kesehatan sistemik: - -![Delapan prinsip yang saling terhubung](../../assets/use-cases/refi-regenerative-economy-diagram.png) - -Proyek ReFi merealisasikan prinsip-prinsip ini dengan menggunakan [kontrak pintar](/developers/docs/smart-contracts/) dan aplikasi [keuangan terdesentralisasi (DeFi)](/defi/) untuk mendorong perilaku regeneratif, misalnya memulihkan ekosistem yang rusak, dan memfasilitasi kolaborasi berskala besar pada isu-isu global seperti perubahan iklim dan hilangnya keanekaragaman hayati. - -ReFi juga meliputi gerakan [sains terdesentralisasi (DeSci)](/desci/), yang menggunakan Ethereum sebagai platform untuk membiayai, menciptakan, meninjau, kredit, menyimpan, dan menyebarkan pengetahuan ilmiah. Perangkat DeSci dapat berguna untuk mengembangkan standar dan praktik yang dapat diverifikasi untuk menerapkan dan memantau kegiatan regeneratif seperti menanam pohon, menghilangkan plastik dari lautan, atau memulihkan ekosistem yang rusak. - -## Tokenisasi kredit karbon {#tokenization-of-carbon-credits} - -**[Pasar Karbon Sukarela (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** adalah mekanisme untuk mendanai proyek-proyek yang memberikan dampak positif yang terverifikasi terhadap emisi karbon, baik untuk mengurangi emisi yang sedang berlangsung, maupun untuk menghilangkan gas rumah kaca yang telah dipancarkan dari atmosfer. Proyek-proyek ini menerima aset yang disebut "kredit karbon" setelah diverifikasi, yang dapat mereka jual kepada individu dan organisasi yang ingin mendukung aksi iklim. - -Selain VCM, ada juga beberapa pasar karbon yang diatur oleh pemerintah (‘pasar kepatuhan’) yang bertujuan untuk menetapkan harga karbon melalui undang-undang atau peraturan di dalam yurisdiksi tertentu (misalnya negara atau wilayah), mengendalikan pasokan izin yang akan didistribusikan. Pasar kepatuhan mendorong pencemar dalam yurisdiksi mereka untuk mengurangi emisi, tetapi mereka tidak mampu menghapus gas rumah kaca yang telah dikeluarkan. - -Terlepas dari perkembangannya selama beberapa dekade terakhir, VCM terus mengalami berbagai masalah: - -1. Likuiditas yang sangat terfragmentasi -2. Mekanisme transaksi yang tidak transparan -3. Biaya tinggi -4. Kecepatan perdagangan yang sangat lambat -5. Kurangnya skalabilitas - -Mengalihkan VCM ke **pasar karbon digital (DCM)** baru berbasis rantai blok mungkin menjadi peluang untuk meningkatkan teknologi yang ada untuk memvalidasi, melakukan transaksi, dan menggunakan kredit karbon. Rantai blok memungkinkan data yang dapat diverifikasi secara publik, akses untuk berbagai pengguna, dan likuiditas yang lebih tinggi. - -Proyek ReFi menggunakan teknologi rantai blok untuk mengatasi banyak masalah pasar tradisional: - -- **Likuiditas terkonsentrasi dalam sejumlah kecil pool likuiditas** yang dapat diperdagangkan secara bebas oleh siapa pun. Organisasi besar serta pengguna individu dapat menggunakan pool ini tanpa perlu melakukan pencarian manual untuk penjual/pembeli, biaya partisipasi, atau registrasi sebelumnya. -- **Semua transaksi dicatat di dalam rantai blok publik**. Jejak setiap kredit karbon yang dihasilkan oleh aktivitas perdagangan dapat dilacak selamanya begitu kredit tersebut tersedia dalam DCM. -- **Kecepatan transaksi hampir instan**. Mengamankan sejumlah besar kredit karbon melalui pasar-pasar tradisional bisa memakan waktu berhari-hari atau berminggu-minggu, tetapi ini dapat dicapai dalam beberapa detik di DCM. -- ** Aktivitas perdagangan terjadi tanpa perantara**, yang mengenakan biaya tinggi. Kredit karbon digital mewakili [peningkatan biaya sebesar 62% dibandingkan dengan kredit tradisional setara](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne), menurut data dari satu perusahaan analitik. -- ** DCM bersifat dapat diskalakan** dan dapat memenuhi permintaan baik dari individu maupun perusahaan multinasional. - -### Komponen kunci dari DCM {#key-components-dcm} - -Empat komponen utama membentuk lanskap saat ini dari DCM: - -1. Registri seperti [Verra](https://verra.org/project/vcs-program/registry-system/) dan [Gold Standard](https://www.goldstandard.org/) memastikan bahwa proyek-proyek yang menciptakan kredit karbon dapat diandalkan. Mereka juga mengoperasikan basis data di mana kredit karbon digital berasal dan dapat ditransfer atau digunakan (ditarik). - -Ada gelombang proyek inovatif baru yang dibangun di atas teknologi rantai blok yang berusaha mengganggu pemain utama di sektor ini. - -2. alias jembatan karbon tokenizers, atau pengolah token, menyediakan teknologi untuk mewakili atau mentransfer kredit karbon dari registri tradisional ke dalam DCM. Contoh-contoh yang mencolok termasuk [Toucan Protocol](https://toucan.earth/), [C3](https://c3.app/), dan [Moss.Earth](https://moss.earth/). -3. Layanan terintegrasi menawarkan kredit penghindaran dan/atau penghapusan karbon kepada pengguna akhir sehingga mereka dapat mengklaim manfaat lingkungan dari kredit tersebut dan berbagi dukungan terhadap tindakan iklim dengan dunia. - -Beberapa layanan seperti [Klima Infinity](https://www.klimadao.finance/infinity) dan [Senken](https://senken.io/) menawarkan berbagai proyek yang dikembangkan oleh pihak ketiga dan diterbitkan berdasarkan standar yang sudah mapan seperti Verra; sementara yang lain seperti [Nori](https://nori.com/) hanya menawarkan proyek spesifik yang dikembangkan berdasarkan standar kredit karbon mereka sendiri, yang mereka terbitkan dan untuknya mereka memiliki pasar tersendiri. - -4. Landasan dan infrastruktur dasar yang memfasilitasi peningkatan dampak dan efisiensi dari seluruh rantai pasokan pasar karbon. [KlimaDAO](http://klimadao.finance/) menyediakan likuiditas sebagai kebaikan publik (memungkinkan siapa pun untuk membeli atau menjual kredit karbon dengan harga yang transparan), memberikan insentif keluaran peningkatan pasar karbon dan penghapusan dengan imbalan, dan menyediakan perangkat yang mudah digunakan dan interoperabel untuk mengakses data tentang, serta mendapatkan dan menghapus, berbagai jenis kredit karbon yang diberikan dalam bentuk token. - -## ReFi di luar pasar karbon {#refi-beyond} - -Meskipun saat ini ada penekanan kuat pada pasar karbon secara umum dan khususnya pada peralihan dari VCM ke DCM di dalam ruang ini, istilah “ReFi” tidak secara ketat terbatas pada karbon. Aset lingkungan lainnya selain kredit karbon dapat dikembangkan dan di-tokenisasi, yang akan berarti eksternalitas negatif lainnya juga dapat dihargai dalam lapisan dasar dari sistem ekonomi di masa depan. Selain itu, aspek regeneratif dari model ekonomi ini dapat diterapkan pada bidang lain, seperti pendanaan barang publik melalui platform pendanaan kuadratik seperti [Gitcoin](https://gitcoin.co/). Organisasi yang dibangun berdasarkan gagasan partisipasi terbuka dan distribusi sumber daya yang adil memberdayakan semua orang untuk mengalirkan dana ke proyek perangkat lunak sumber terbuka, serta proyek pendidikan, lingkungan, dan berbasis komunitas. - -Dengan mengalihkan arah modal dari praktik ekstraktif ke aliran regeneratif, proyek dan perusahaan yang memberikan manfaat sosial, lingkungan, atau komunal - dan mungkin gagal mendapatkan pendanaan dalam keuangan tradisional - dapat dimulai dan menghasilkan dampak positif bagi masyarakat dengan lebih cepat dan mudah. Beralih ke model pendanaan ini juga membuka pintu menuju sistem ekonomi yang lebih inklusif, di mana orang dari berbagai latar belakang dapat menjadi peserta aktif daripada sekadar pengamat pasif. ReFi menawarkan visi tentang Ethereum sebagai mekanisme untuk mengkoordinasikan tindakan dalam menghadapi tantangan eksistensial yang dihadapi oleh spesies kita dan seluruh kehidupan di planet kita—sebagai lapisan dasar paradigma ekonomi baru, memungkinkan masa depan yang lebih inklusif dan berkelanjutan untuk berabad-abad yang akan datang. - -## Bacaan tambahan tentang ReFi - -- [Gambaran Umum Tentang Mata Uang Karbon dan Tempatnya dalam Ekonomi](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) -- [The Ministry for the Future adalah sebuah novel yang menggambarkan peran mata uang berbasis karbon dalam memerangi perubahan iklim](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) -- [Laporan rinci dari Satuan Tugas untuk Meningkatkan Pasar Karbon Sukarela](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) -- [Entri glosarium CoinMarketCap oleh Kevin Owocki dan Evan Miyazono tentang ReFi](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/id/roadmap/beacon-chain/index.md b/src/content/translations/id/roadmap/beacon-chain/index.md deleted file mode 100644 index b1405f4d2e8..00000000000 --- a/src/content/translations/id/roadmap/beacon-chain/index.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: Rantai Suar -description: Belajar tentang Rantai Suar - peningkatan yang memperkenalkan bukti taruhan Ethereum. -lang: id -template: upgrade -image: ../../../../../assets/upgrades/core.png -summaryPoint1: Rantai Suar memperkenalkan bukti taruhan ke dalam ekosistem Ethereum. -summaryPoint2: Rantai ini digabungkan dengan rantai bukti kerja Ethereum yang asli pada bulan September 2022. -summaryPoint3: Rantai Suar memperkenalkan logika konsensus dan protokol gosip blok yang sekarang mengamankan Ethereum. ---- - - - Rantai Suar dikirimkan pada tanggal 1 Desember 2020, dan meresmikan bukti taruhan sebagai mekanisme konsensus Ethereum dengan peningkatan Penggabungan pada tanggal 15 September 2022. - - -## Apa yang dimaksud dengan Rantai Suar? {#what-is-the-beacon-chain} - -Rantai Suar adalah nama rantai blok bukti taruhan asli yang diluncurkan pada tahun 2020. Ini dibuat untuk memastikan logika konsensus bukti taruhan yang baik dan berkelanjutan sebelum mengaktifkannya di Jaringan Utama Ethereum. Oleh karena itu, ia berjalan bersama dengan Ethereum bukti kerja yang asli. Rantai Suar adalah sebuah rantai blok 'kosong', tetapi mematikan bukti kerja dan mengaktifkan bukti taruhan pada Ethereum membutuhkan instruksi kepada Rantai Suar untuk menerima data transaksi dari klien eksekusi, menggabungkannya ke dalam blok-blok, dan kemudian mengaturnya ke dalam sebuah rantai blok dengan menggunakan sebuah mekanisme konsensus berbasis bukti taruhan. Pada saat yang sama, klien Ethereum yang asli mematikan penambangan, penyebaran blok, dan logika konsensus mereka, dan menyerahkan semuanya kepada Rantai Suar. Acara ini dikenal sebagai [Penggabungan](/roadmap/merge/). Setelah Penggabungan terjadi, tidak ada lagi dua rantai blok. Sebagai gantinya, hanya ada satu bukti taruhan Ethereum, yang sekarang membutuhkan dua klien yang berbeda per simpul. Rantai Suar sekarang menjadi lapisan konsensus, sebuah jaringan klien konsensus rekan-ke-rekan yang menangani gosip blok dan logika konsensus, sementara klien asli membentuk lapisan eksekusi, yang bertanggung jawab untuk menggosipkan dan mengeksekusi transaksi, dan mengelola status Ethereum. Kedua lapisan tersebut dapat berkomunikasi satu sama lain menggunakan API Engine. - -## Apa yang dilakukan oleh Rantai Suar? {#what-does-the-beacon-chain-do} - -Rantai Suar adalah nama yang diberikan kepada buku besar akun yang melakukan dan mengkoordinasikan jaringan [penaruh](/staking/) sebelum para penaruh tersebut mulai memvalidasi blok Ethereum yang sebenarnya. Lapisan ini tidak memproses transaksi atau menangani interaksi kontrak pintar karena hal itu dilakukan di lapisan eksekusi. Rantai Suar bertanggung jawab untuk hal-hal seperti penanganan blok dan pengesahan, menjalankan algoritma pilihan garpu, dan mengelola imbalan, dan penalti. Baca lebih lanjut di [halaman arsitektur simpul](/developers/docs/nodes-and-clients/node-architecture/#node-comparison). - -## Dampak Rantai Suar {#beacon-chain-features} - -### Memperkenalkan penaruhan {#introducing-staking} - -Rantai Suar memperkenalkan [bukti taruhan](/developers/docs/consensus-mechanisms/pos/) pada Ethereum. Hal ini membuat Ethereum tetap aman dan membuat validator mendapatkan lebih banyak ETH dalam prosesnya. Dalam praktiknya, penaruhan melibatkan penaruhan ETH untuk mengaktifkan perangkat lunak validator. Sebagai penaruh, Anda menjalankan perangkat lunak yang membuat dan memvalidasi blok baru dalam chain. - -Penaruhan memiliki tujuan yang serupa dengan [penambangan](/developers/docs/mining/), tetapi berbeda dalam banyak hal. Penambangan membutuhkan pengeluaran besar di muka dalam bentuk perangkat keras yang kuat dan konsumsi energi, yang menghasilkan skala ekonomi, dan mendorong sentralisasi. Penambangan juga tidak dilengkapi dengan persyaratan untuk mengunci aset sebagai jaminan, membatasi kemampuan protokol untuk menghukum pelaku kejahatan setelah terjadi serangan. - -Transisi ke bukti taruhan membuat Ethereum secara signifikan lebih aman dan terdesentralisasi dibandingkan dengan bukti kerja. Semakin banyak orang yang berpartisipasi dalam jaringan, semakin terdesentralisasi dan aman dari serangan. - -Dan menggunakan bukti taruhan sebagai mekanisme konsensus adalah komponen dasar untuk [Ethereum yang aman, ramah lingkungan, dan dapat diskalakan yang kita miliki saat ini](/roadmap/vision/). - - - Jika Anda tertarik untuk menjadi validator dan membantu mengamankan Ethereum, pelajari lebih lanjut tentang penaruhan. - - -### Menyiapkan untuk pecahan {#setting-up-for-sharding} - -Sejak Rantai Suar bergabung dengan Jaringan Utama Ethereum yang asli, komunitas Ethereum mulai mencari cara untuk penskalaan jaringan. - -Bukti taruhan memiliki keuntungan karena memiliki registri semua produsen blok yang disetujui pada waktu tertentu, masing-masing dengan ETH yang dipertaruhkan. Registri ini menetapkan panggung untuk kemampuan membagi dan menaklukkan, tetapi dengan andal membagi tanggung jawab jaringan tertentu. - -Tanggung jawab ini berbeda dengan bukti kerja, di mana penambang tidak memiliki kewajiban terhadap jaringan dan dapat berhenti menambang dan mematikan perangkat lunak simpul mereka secara permanen dalam sekejap tanpa ada konsekuensi. Juga tidak ada registri pengusul blok yang dikenal dan tidak ada cara yang dapat diandalkan untuk membagi tanggung jawab jaringan dengan aman. - -[Lebih lanjut tentang pecahan](/roadmap/danksharding/) - -## Hubungan antar peningkatan {#relationship-between-upgrades} - -Semua peningkatan Ethereum saling terkait. Jadi ayo kita ingat kembali bagaimana Rantai Suar memengaruhi peningkatan lainnya. - -### Rantai Suar dan Penggabungan {#merge-and-beacon-chain} - -Pada awalnya, Rantai Suar ada secara terpisah dari Jaringan Utama Ethereum, tetapi keduanya digabungkan pada tahun 2022. - - - Penggabungan - - -### Pecahan dan Rantai Suar {#shards-and-beacon-chain} - -Pecahan hanya dapat masuk ke dalam ekosistem Ethereum dengan aman dengan adanya mekanisme konsensus bukti taruhan. Rantai Suar memperkenalkan penaruhan, yang 'bergabung' dengan Jaringan Utama, membuka jalan bagi pecahan untuk membantu meningkatkan skala Ethereum. - - - Rantai shard - - -## Bacaan Lebih Lanjut - -- [Lebih lanjut tentang peningkatan Ethereum di masa depan](/roadmap/vision) -- [Lebih lanjut tentang arsitektur simpul](/developers/docs/nodes-and-clients/node-architecture) -- [Lebih lanjut tentang bukti taruhan](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/id/roadmap/future-proofing/index.md b/src/content/translations/id/roadmap/future-proofing/index.md deleted file mode 100644 index 84dd323805d..00000000000 --- a/src/content/translations/id/roadmap/future-proofing/index.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: Ethereum yang siap menghadapi masa depan -description: Peningkatan ini memperkuat Ethereum sebagai lapisan dasar terdesentralisasi yang tangguh untuk masa depan, apa pun yang akan terjadi. -lang: id -image: ../../../../../assets/roadmap/roadmap-future.png -alt: "Peta Perjalanan Ethereum" -template: roadmap ---- - -Beberapa bagian dari peta perjalanann tidak selalu diperlukan untuk penskalaan atau mengamankan Ethereum dalam waktu dekat, tetapi menyiapkan Ethereum untuk stabilitas dan keandalan jauh di masa depan. - -## Resistensi kuantum {#quantum-resistance} - -Beberapa kriptografi yang mengamankan Ethereum saat ini akan dikompromikan ketika komputasi kuantum menjadi kenyataan. Meskipun komputer kuantum mungkin masih beberapa dekade lagi untuk menjadi ancaman nyata bagi kriptografi modern, Ethereum dibangun untuk menjadi aman selama berabad-abad yang akan datang. Ini berarti membuat [Ethereum tahan kuantum](https://consensys.net/blog/developers/how-will-quantum-supremacy-affect-blockchain/) sesegera mungkin. - -Tantangan yang dihadapi oleh para pengembang Ethereum adalah protokol bukti taruhan saat ini bergantung pada skema tanda tangan yang sangat efisien yang dikenal sebagai BLS untuk mengumpulkan suara pada blok yang valid. Skema tanda tangan ini dipatahkan oleh komputer kuantum, tetapi alternatif tahan kuantum tidak seefisien itu. - -[Skema komitmen "KZG"](/roadmap/danksharding/#what-is-kzg) yang digunakan di beberapa tempat di seluruh Ethereum untuk menghasilkan rahasia kriptografi dikenal rentan terhadap kuantum. Saat ini, hal ini diakali dengan menggunakan "pengaturan tepercaya" di mana banyak pengguna menghasilkan keacakan yang tidak dapat direkayasa oleh komputer kuantum. Namun, solusi yang ideal adalah dengan menggabungkan kriptografi aman kuantum. Terdapat dua pendekatan utama yang dapat menjadi pengganti yang efisien untuk skema BLS: [berbasis STARK](https://hackmd.io/@vbuterin/stark_aggregation) dan [berbasis lattice](https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-lattice-encryption-326ac66e3175) untuk penandatanganan. Ini masih dalam tahap penelitian dan pembuatan prototipe. - - Baca tentang KZG dan pengaturan tepercaya - -## Ethereum yang lebih sederhana dan lebih efisien {#simpler-more-efficient-ethereum} - -Kompleksitas menciptakan peluang untuk bug atau kerentanan yang dapat dieksploitasi oleh penyerang. Oleh karena itu, bagian dari peta perjalanan adalah menyederhanakan Ethereum dan menghapus kode yang telah bertahan melalui berbagai peningkatan tetapi tidak lagi diperlukan atau sekarang dapat ditingkatkan. Basis kode yang lebih ramping dan sederhana lebih mudah dipelihara dan dipahami oleh pengembang. - -Ada beberapa pembaruan yang akan dilakukan pada [Mesin Virtual Ethereum (EVM)](/developers/docs/evm) untuk membuatnya lebih sederhana dan efisien. Ini termasuk [menghapus opcode SELFDESTRUCT](https://hackmd.io/@vbuterin/selfdestruct) - perintah yang jarang digunakan yang tidak lagi diperlukan dan dalam beberapa situasi dapat berbahaya untuk digunakan, terutama jika digabungkan dengan peningkatan lain di masa depan pada model penyimpanan Ethereum. Klien Ethereum juga masih mendukung beberapa jenis transaksi lama yang sekarang dapat dihapus sepenuhnya. Cara penghitungan gas juga dapat ditingkatkan dan metode yang lebih efisien untuk aritmatika yang mendasari beberapa operasi kriptografi dapat digunakan. - -Demikian pula, ada pembaruan yang dapat dilakukan pada bagian lain dari klien Ethereum saat ini. Salah satu contohnya adalah klien eksekusi dan konsensus saat ini menggunakan jenis kompresi data yang berbeda. Akan jauh lebih mudah dan lebih intuitif untuk berbagi data di antara klien ketika skema kompresi disatukan di seluruh jaringan. - -## Kemajuan saat ini {#current-progress} - -Sebagian besar peningkatan yang diperlukan untuk membuktikan Ethereum di masa depan masih dalam tahap penelitian dan mungkin masih beberapa tahun lagi untuk diimplementasikan. Peningkatan seperti menghapus SELF-DESTRUCT dan menyelaraskan skema kompresi yang digunakan dalam klien eksekusi dan konsensus kemungkinan besar akan hadir lebih cepat daripada kriptografi tahan kuantum. - -**Bacaan lebih lanjut** - -- [Gas](/developers/docs/gas) -- [EVM](/developers/docs/evm) -- [Struktur data](/developers/docs/data-structures-and-encoding) diff --git a/src/content/translations/id/roadmap/index.md b/src/content/translations/id/roadmap/index.md deleted file mode 100644 index efa35914e5c..00000000000 --- a/src/content/translations/id/roadmap/index.md +++ /dev/null @@ -1,117 +0,0 @@ ---- -title: Peta Perjalanan Ethereum -description: Jalan menuju peningkatan skalabilitas, keamanan, dan keberlanjutan Ethereum. -lang: id -template: roadmap -image: ../../../../assets/roadmap/roadmap-main.png -alt: "Peta Perjalanan Ethereum" -summaryPoints: -buttons: - - label: Peningkatan lebih lanjut - toId: perubahan-apa-yang-akan-terjadi - - label: Peningkatan sebelumnya - to: /history/ - variant: ikhtisar ---- - -Ethereum sudah menjadi platform koordinasi global yang kuat, tetapi masih terus ditingkatkan. Serangkaian peningkatan yang ambisius akan meningkatkan Ethereum dari bentuknya saat ini menjadi platform yang berskala penuh dengan ketahanan maksimal. Berbagai peningkatan ini diuraikan dalam peta jalan Ethereum. - -**Untuk mempelajari tentang peningkatan Ethereum sebelumnya, harap buka halaman [Sejarah](/history/) kami** - -## Perubahan apa yang akan terjadi pada Ethereum? {#what-changes-are-coming} - -Peta jalan Ethereum menguraikan peningkatan spesifik yang akan dilakukan pada protokol di masa depan. Secara keseluruhan, peta jalan ini akan memberikan manfaat berikut kepada pengguna Ethereum: - - - - - - - - -## Mengapa Ethereum membutuhkan peta jalan? {#why-does-ethereum-need-a-roadmap} - -Ethereum ditingkatkan secara rutin untuk meningkatkan skalabilitas, keamanan, atau keberlanjutannya. Salah satu kekuatan inti Ethereum adalah menyesuaikan dengan ide-ide baru yang muncul dari penelitian dan pengembangan. Kemampuan beradaptasi memberikan fleksibilitas kepada Ethereum untuk mengatasi tantangan yang muncul dan mengikuti terobosan teknologi yang paling canggih. - - - -Peta jalan ini sebagian besar adalah hasil kerja bertahun-tahun dari para peneliti dan pengembang - karena protokol ini sangat teknis - tetapi setiap orang yang berminat boleh ikut serta. Ide-ide biasanya dimulai dari diskusi di forum seperti [ethresear.ch](https://ethresear.ch/), [Ethereum magicians](https://www.figma.com/exit?url=https%3A%2F%2Fethereum-magicians.org%2F) atau server discord Eth R&D. Ide-ide tersebut mungkin tanggapan terhadap kerentanan baru yang ditemukan, saran dari organisasi yang bekerja di lapisan aplikasi (seperti dapps dan bursa pertukaran) atau dari perselisihan yang diketahui oleh pengguna akhir (seperti biaya atau kecepatan transaksi). Ketika sudah matang, ide-ide ini dapat diusulkan sebagai [Proposal Peningkatan Ethereum](https://eips.ethereum.org/). Semua ini dilakukan di ruang publik sehingga setiap anggota komunitas dapat memberi masukan kapan saja. - -[Selengkapnya tentang tata kelola Ethereum](/governance/) - - - - -

Apa itu ETH2?

- -

Istilah 'Eth2' sebelumnya digunakan untuk menggambarkan masa depan Ethereum sebelum beralih ke konsep bukti kepemilikan, tetapi istilah ini kemudian perlahan ditinggalkan karena ada terminologi lain yang lebih tepat. Istilah ini pada awalnya digunakan untuk membedakan jaringan Ethereum sebelum beralih ke konsep bukti kepemilikan dan jaringan setelahnya, atau terkadang digunakan untuk menyebut klien Ethereum yang lain (klien eksekusi terkadang disebut sebagai klien ETH1 dan klien konsensus terkadang disebut sebagai klien ETH2).

- -
- -## Apakah peta jalan Ethereum akan berubah seiring dengan waktu? {#will-ethereums-roadmap-change-over-time} - -Ya-hampir pasti. Peta jalan adalah rencana saat ini untuk meningkatkan Ethereum, yang mencakup rencana jangka pendek dan jangka panjang. Kami memperkirakan peta jalan ini akan berubah seiring dengan tersedianya informasi dan teknologi baru. - -Bayangkan peta jalan Ethereum sebagai sekelompok maksud untuk meningkatkan Ethereum; ini adalah hipotesis terbaik dari para peneliti dan pengembang inti tentang masa depan Ethereum yang paling optimal. - -## Kapan peta jalan ini akan berakhir? {#when-will-the-roadmap-be-finished} - -Ethereum akan mengimplementasikan beberapa peningkatan dalam enam bulan ke depan (misalnya, penarikan staking); peningkatan lainnya berprioritas lebih rendah dan kemungkinan besar tidak akan diimplementasikan dalam 5-10 tahun ke depan (misalnya, resistensi kuantum). Waktu yang tepat untuk setiap peningkatan sulit diprediksi karena banyak bagian dari peta jalan yang dikerjakan secara paralel dan dikembangkan dengan kecepatan yang berbeda. Urgensi peningkatan juga dapat berubah seiring waktu tergantung faktor eksternal (misalnya, lompatan mendadak kinerja dan ketersediaan komputer kuantum dapat menyebabkan lebih mendesaknya kebutuhan kriptografi quantum-resistant atau tahan terhadap serangan dari komputer kuantum). - -Salah satu cara berpikir untuk pengembangan Ethereum adalah dengan analogi evolusi biologis. Jaringan yang mampu beradaptasi dengan tantangan baru dan mempertahankan kondisinya lebih mungkin berhasil daripada jaringan yang menentang perubahan, meskipun seiring meningkatnya kinerja, skalabilitas, dan keamanan jaringan, makin sedikit perubahan protokol yang diperlukan. - -## Apakah ada yang harus saya lakukan ketika ada peningkatan? {#do-i-have-to-do-anything-when-there-is-an-upgrade} - -Peningkatan cenderung tidak berdampak pada pengguna akhir, kecuali meningkatkan pengalaman pengguna dan meningkatkan keamanan protokol serta mungkin lebih banyak opsi untuk cara berinteraksi dengan Ethereum. Pengguna akhir tidak diwajibkan untuk berpartisipasi aktif dalam peningkatan, dan juga tidak perlu melakukan apa pun untuk mengamankan aset mereka. Para operator simpul harus memperbarui klien mereka sebagai persiapan peningkatan. Beberapa peningkatan dapat menyebabkan perubahan bagi pengembang aplikasi. Misalnya, peningkatan pada masa kedaluwarsa riwayat dapat menyebabkan pengembang aplikasi mengambil data riwayat dari sumber referensi baru. - -## Bagaimana dengan The Verge, The Splurge, dll? {#what-about-the-verge-splurge-etc} - -[Vitalik Buterin mengajukan visi untuk peta jalan Ethereum](https://twitter.com/VitalikButerin/status/1588669782471368704) yang diorganisasikan dalam beberapa kategori yang dihubungkan dengan pengaruhnya terhadap arsitektur Ethereum. Termasuk di dalamnya: - -- Penggabungan: peningkatan yang terkait dengan peralihan dari konsep bukti kerja ke bukti kepemilikan -- Lonjakan: peningkatan yang terkait skalabilitas dengan rollup dan sharding pada data -- Ancaman: peningkatan yang terkait dengan resistansi terhadap sensor, desentralisasi, dan risiko protokol dari MEV -- The Verge: peningkatan yang terkait dengan mempermudah verifikasi blok -- Pembersihan: peningkatan yang terkait dengan penurunan biaya komputasi untuk menjalankan simpul dan menyederhanakan protokol -- The Splurge: peningkatan lain yang tidak cocok dengan kategori yang disebutkan sebelumnya. - -Kami memutuskan untuk tidak menggunakan terminologi ini karena kami ingin menggunakan model yang lebih sederhana dan lebih berpusat pada pengguna. Meskipun kami menggunakan istilah yang berpusat pada pengguna, visinya tetap sama dengan yang diajukan oleh Vitalik. - -## Bagaimana dengan sharding? {#what-about-sharding} - -Sharding adalah pemecahan rantai blok Ethereum agar subset validator hanya bertanggung jawab atas sebagian kecil dari total data. Metode ini awalnya dimaksudkan sebagai cara penskalaan Ethereum. Namun, rollup lapisan ke-2 telah berkembang jauh lebih cepat dari yang diperkirakan dan telah memberikan banyak penskalaan, serta akan memberikan lebih banyak lagi setelah penerapan Proto-Danksharding. Hal ini berarti "rantai pecahan" tidak diperlukan lagi dan telah dihapus dari peta jalan. - -## Mencari peningkatan teknis yang spesifik? {#looking-for-specific-technical-upgrades} - -- [Danksharding](/roadmap/danksharding) - Danksharding menyebabkan rollup lapisan ke-2 menjadi lebih murah bagi pengguna dengan menambahkan "blob" data ke blok Ethereum. -- [Penarikan staking](/staking/withdrawals) - Peningkatan Shanghai/Capella memungkinkan penarikan staking di Ethereum sehingga pengguna dapat membuka penguncian ETH yang ditaruh sebagai stake oleh mereka. -- [Finalitas ruang tunggal](/roadmap/single-slot-finality) - Daripada menunggu lima belas menit, blok bisa dipinang dan diselesaikan dalam ruang yang sama. Hal ini lebih praktis bagi aplikasi dan menjadi jauh lebih sulit untuk diserang. -- [Pemisahan pengusul-pembuat](/roadmap/pbs) - Memisahkan tugas pembuatan blok dan pengajuan blok pada berbagai validator akan menghasilkan cara yang lebih adil, lebih tahan sensor, dan efisien bagi Ethereum untuk mencapai konsensus. -- [Pemilihan pemimpin rahasia](/roadmap/secret-leader-election) - Kriptografi cerdas dapat digunakan untuk memastikan agar identitas pengusul blok terkini tidak diumumkan kepada publik sehingga melindunginya dari beberapa jenis serangan tertentu. -- [Abstraksi akun](/roadmap/account-abstraction) - Abstraksi akun adalah suatu tingkat peningkatan yang mendukung dompet kontrak pintar secara asli di Ethereum, sebagai pengganti penggunaan middleware yang rumit. -- [Pohon Verkle](/roadmap/verkle-trees) - Pohon Verkle adalah struktur data yang dapat digunakan untuk mengaktifkan klien tanpa keadaan di Ethereum. Klien "tanpa keadaan" ini hanya membutuhkan ruang penyimpanan yang sangat kecil, tetapi masih dapat memverifikasi blok baru. -- [Keadaan tanpa keadaan](/roadmap/statelessness) - klien tanpa keadaan akan dapat memverifikasi blok baru tanpa harus menyimpan data dalam jumlah besar. Hal ini akan memberikan semua manfaat menjalankan simpul dengan biaya yang sangat kecil dibandingkan dengan biaya yang berlaku saat ini. diff --git a/src/content/translations/id/roadmap/merge/index.md b/src/content/translations/id/roadmap/merge/index.md deleted file mode 100644 index a41c282fe05..00000000000 --- a/src/content/translations/id/roadmap/merge/index.md +++ /dev/null @@ -1,228 +0,0 @@ ---- -title: Penggabungan -description: Pelajari tentang Penggabungan - ketika Jaringan Utama Ethereum mengadopsi bukti taruhan. -lang: id -template: upgrade -image: ../../../../../assets/upgrades/merge.png -summaryPoint1: Jaringan Utama Ethereum menggunakan bukti taruhan, tetapi tidak selalu demikian. -summaryPoint2: Peningkatan dari mekanisme bukti kerja yang asli menjadi bukti taruhan disebut Penggabungan. -summaryPoint3: Penggabungan mengacu pada penggabungan Jaringan Utama Ethereum asli dengan rantai blok bukti taruhan terpisah yang disebut Rantai Suar, yang sekarang ada sebagai satu rantai. -summaryPoint4: Penggabungan ini mengurangi konsumsi energi Ethereum sebesar ~99,95%. ---- - - - Penggabungan telah dilaksanakan pada tanggal 15 September 2022. Hal ini menyelesaikan transisi Ethereum ke konsensus bukti taruhan, yang secara resmi tidak lagi menggunakan bukti kerja dan mengurangi konsumsi energi sebesar ~99,95%. - - -## Apa itu Penggabungan? {#what-is-the-merge} - -Penggabungan adalah penyatuan lapisan eksekusi asli Ethereum (Jaringan Utama yang telah ada sejak [genesis](/history/#frontier)) dengan lapisan konsensus bukti taruhan baru, Rantai Suar. Ini menghilangkan kebutuhan akan penambangan yang boros energi dan sebagai gantinya memungkinkan jaringan untuk diamankan menggunakan ETH yang dipertaruhkan. Ini adalah langkah yang sangat menarik dalam mewujudkan visi Ethereum - skalabilitas, keamanan, dan keberlanjutan yang lebih baik. - - - -Pada awalnya, [Rantai Suar](/roadmap/beacon-chain/) dikirim secara terpisah dari [Jaringan Utama](/glossary/#mainnet). Jaringan Utama Ethereum - dengan semua akun, saldo, kontrak pintar, dan status rantai blok - tetap diamankan oleh [bukti kerja](/developers/docs/consensus-mechanisms/pow/), bahkan saat Rantai Suar berjalan paralel menggunakan [bukti taruhan](/developers/docs/consensus-mechanisms/pos/). Penggabungan adalah saat kedua sistem ini akhirnya digabungkan, dan bukti kerja digantikan secara permanen oleh bukti taruhan. - -Bayangkan Ethereum adalah sebuah pesawat luar angkasa yang diluncurkan sebelum cukup siap untuk melakukan perjalanan antarbintang. Dengan Rantai Suar, komunitas membuat mesin baru dan lambung kapal yang dikeraskan. Setelah pengujian yang signifikan, tiba saatnya untuk menukar mesin baru dengan mesin lama di tengah penerbangan. Penggabungan mesin baru yang lebih efisien ke dalam kapal yang sudah ada memungkinkannya untuk menjelajah beberapa tahun cahaya dan menjelajahi alam semesta. - -## Penggabungan dengan Jaringan Utama {#merging-with-mainnet} - -Bukti kerja mengamankan Jaringan Utama Ethereum dari awal hingga Penggabungan. Hal ini memungkinkan rantai blok Ethereum yang kita semua kenal hadir pada bulan Juli 2015 dengan semua fitur-fiturnya yang sudah tidak asing lagi - transaksi, kontrak pintar, akun, dll. - -Sepanjang sejarah Ethereum, para pengembang mempersiapkan diri untuk transisi dari bukti kerja ke bukti taruhan. Pada tanggal 1 Desember 2020, Rantai Suar dibuat sebagai rantai blok yang terpisah dari Jaringan Utama, berjalan secara paralel. - -Rantai Suar pada awalnya tidak memproses transaksi Jaringan Utama. Sebaliknya, ia mencapai konsensus tentang keadaannya sendiri dengan menyetujui validator aktif dan saldo akun mereka. Setelah pengujian ekstensif, tiba saatnya bagi Rantai Suar untuk mencapai konsensus pada data dunia nyata. Setelah Penggabungan, Rantai Suar menjadi mesin konsensus untuk semua data jaringan, termasuk transaksi lapisan eksekusi dan saldo akun. - -Penggabungan ini merupakan peralihan resmi untuk menggunakan Rantai Suar sebagai mesin produksi blok. Penambangan tidak lagi menjadi sarana untuk menghasilkan blok yang valid. Sebagai gantinya, validator bukti taruhan telah mengadopsi peran ini dan sekarang bertanggung jawab untuk memproses keabsahan semua transaksi dan mengusulkan blok. - -Tidak ada sejarah yang hilang dalam Penggabungan. Ketika Jaringan Utama bergabung dengan Rantai Suar, Jaringan Utama juga menggabungkan seluruh sejarah transaksi Ethereum. - - -Transisi ke bukti taruhan ini mengubah cara penerbitan ether. Pelajari lebih lanjut tentang pengeluaran ether sebelum dan setelah Penggabungan. - - -### Pengguna dan pemegang {#users-holders} - -**Penggabungan tidak mengubah apa pun bagi pemegang/pengguna.** - -_Ini patut diulang_: Sebagai pengguna atau pemegang ETH atau aset digital lainnya di Ethereum, serta para staker non-simpul operator, **Anda tidak perlu melakukan apa pun dengan dana atau dompet Anda untuk mempertimbangkan Penggabungan.** ETH tetaplah ETH. Tidak ada yang namanya "ETH lama"/"ETH baru" atau "ETH1"/"ETH2" dan dompet bekerja sama persis setelah Penggabungan seperti yang mereka lakukan sebelumnya - orang yang memberi tahu Anda sebaliknya kemungkinan besar adalah penipu. - -Meskipun telah menukar bukti kerja, seluruh sejarah Ethereum sejak awal tetap utuh dan tidak diubah oleh transisi ke bukti taruhan. Semua dana yang tersimpan di dompet Anda sebelum Penggabungan masih dapat diakses setelah Penggabungan. **Tidak diperlukan tindakan untuk meningkatkan dari pihak Anda.** - -[Lebih lanjut tentang keamanan Ethereum](/security/#eth2-token-scam) - -### Operator simpul dan pengembang dapp {#node-operators-dapp-developers} - - - -Item-item tindakan utama meliputi: - -1. Jalankan _kedua_ klien konsensus dan klien eksekusi; titik akhir pihak ketiga untuk mendapatkan data eksekusi tidak lagi berfungsi sejak Penggabungan. -2. Autentikasi klien eksekusi dan konsensus dengan rahasia JWT bersama sehingga mereka dapat berkomunikasi dengan aman. -3. Tetapkan alamat `penerima biaya` untuk menerima tips biaya transaksi/MEV yang Anda peroleh. - -Tidak menyelesaikan dua hal pertama di atas akan mengakibatkan simpul Anda terlihat sebagai "offline" hingga kedua lapisan disinkronkan dan diautentikasi. - -Tidak menetapkan `penerima biaya` akan tetap memungkinkan validator Anda berperilaku seperti biasa, tetapi Anda akan kehilangan tips biaya yang tidak terbakar dan MEV yang seharusnya Anda dapatkan dari blok yang diajukan oleh validator Anda. - - - - -Hingga Penggabungan, klien eksekusi (seperti Geth, Erigon, Besu, atau Nethermind) sudah cukup untuk menerima, memvalidasi dengan benar, dan menyebarkan blok yang sedang digosipkan oleh jaringan. _Setelah Penggabungan_, validitas transaksi yang terkandung dalam muatan eksekusi sekarang juga bergantung pada validitas "blok konsensus" yang terkandung di dalamnya. - -Sebagai hasilnya, sebuah simpul Ethereum penuh sekarang membutuhkan klien eksekusi dan klien konsensus. Kedua klien ini bekerja bersama menggunakan API Engine yang baru. API Engine memerlukan autentikasi menggunakan rahasia JWT, yang disediakan untuk kedua klien yang memungkinkan komunikasi yang aman. - -Item-item tindakan utama meliputi: - -- Menginstal klien konsensus selain klien eksekusi -- Autentikasi klien eksekusi dan konsensus dengan rahasia JWT bersama sehingga mereka dapat berkomunikasi dengan aman satu sama lain. - -Tidak menyelesaikan item di atas akan mengakibatkan simpul Anda tampak "offline" hingga kedua lapisan disinkronkan dan diautentikasi. - - - - - -Penggabungan disertai dengan perubahan konsensus, yang juga mencakup perubahan yang terkait dengan:< - -
    -
  • struktur blok
  • -
  • pengaturan waktu ruang/blok
  • -
  • perubahan opcode
  • -
  • sumber keacakan di dalam rantai
  • -
  • konsep dari blok aman dan blok yang telah difinalisasi
  • -
- -Untuk informasi lebih lanjut, lihat tulisan blog ini oleh Tim Beiko tentang Bagaimana Penggabungan Memengaruhi Lapisan Aplikasi Ethereum. - -
- -## Penggabungan dan konsumsi energi {#merge-and-energy} - -Penggabungan ini menandai berakhirnya bukti kerja untuk Ethereum dan memulai era Ethereum yang lebih berkelanjutan dan ramah lingkungan. Konsumsi energi Ethereum turun sekitar 99,95%, menjadikan Ethereum sebagai rantai blok hijau. Pelajari lebih lanjut tentang [konsumsi energi Ethereum](/energy-consumption/). - -## Penggabungan dan penskalaan {#merge-and-scaling} - -Penggabungan juga membuka jalan untuk peningkatan skalabilitas lebih lanjut yang tidak mungkin dilakukan di bawah bukti kerja, mendekatkan Ethereum satu langkah lebih dekat untuk mencapai skala penuh, keamanan, dan keberlanjutan seperti yang diuraikan dalam [visi Ethereum](/roadmap/vision/)nya. - -## Kesalahpahaman tentang Penggabungan {#misconceptions} - - - -Ada dua jenis simpul Ethereum: simpul yang dapat mengusulkan blok dan simpul yang tidak. - -Simpul yang mengusulkan blok hanya sejumlah kecil dari total simpul di Ethereum. Kategori ini mencakup simpul penambangan di bawah bukti kerja (proof-of-work/PoW) dan simpul validator di bawah bukti kepemilikan (proof-of-stake/PoS). Kategori ini membutuhkan sumber daya ekonomi (seperti kekuatan hash GPU dalam bukti kerja atau ETH yang dipertaruhkan dalam bukti taruhan) sebagai imbalan atas kemampuan untuk sesekali mengusulkan blok berikutnya dan mendapatkan imbalan protokol. - -Simpul lain dalam jaringan (yaitu mayoritas) tidak perlu menyediakan sumber daya ekonomi apa pun di luar komputer kelas konsumen dengan penyimpanan yang tersedia sebesar 1-2 TB dan koneksi internet. Simpul-simpul ini tidak mengusulkan blok, tetapi mereka masih memiliki peran penting dalam mengamankan jaringan dengan meminta pertanggungjawaban dari semua pengusul blok dengan mendengarkan blok-blok baru dan memverifikasi keabsahannya pada saat kedatangan sesuai dengan aturan konsensus jaringan. Jika blok tersebut valid, simpul akan terus menyebarkannya melalui jaringan. Jika blok tidak valid karena alasan apa pun, perangkat lunak simpul akan mengabaikannya sebagai tidak valid dan menghentikan penyebarannya. - -Menjalankan simpul yang tidak memproduksi blok memungkinkan bagi siapa pun di bawah kedua mekanisme konsensus (bukti kerja atau bukti taruhan); ini sangat dianjurkan bagi semua pengguna jika mereka memiliki kemampuan. Menjalankan sebuah simpul sangat berharga bagi Ethereum dan memberikan manfaat tambahan bagi setiap individu yang menjalankannya, seperti peningkatan keamanan, privasi, dan ketahanan terhadap sensor. - -Kemampuan bagi siapa pun untuk menjalankan simpul mereka sendiri adalah mutlak penting untuk menjaga desentralisasi jaringan Ethereum. - -Lebih lanjut tentang menjalankan simpul Anda sendiri - - - - - -Biaya gas adalah produk dari permintaan jaringan relatif terhadap kapasitas jaringan. Penggabungan tidak lagi menggunakan bukti kerja, beralih ke bukti taruhan untuk konsensus, tetapi tidak secara signifikan mengubah parameter apa pun yang secara langsung memengaruhi kapasitas atau keluaran jaringan. - -Dengan peta perjalanan berbasis rollup, upaya difokuskan pada penskalaan aktivitas pengguna di lapisan ke-2, sambil memungkinkan Jaringan Utama lapisan ke-1 sebagai lapisan penyelesaian terdesentralisasi yang aman yang dioptimalkan untuk penyimpanan data rollup untuk membantu membuat transaksi rollup menjadi jauh lebih murah secara eksponensial. Transisi ke bukti taruhan merupakan langkah awal yang penting untuk mewujudkan hal ini. Lebih lanjut tentang gas dan biaya. - - - - -"Kecepatan" transaksi dapat diukur dengan beberapa cara, termasuk waktu untuk dimasukkan ke dalam blok dan waktu finalisasi. Kedua hal ini sedikit berubah, tetapi tidak begitu kentara bagi pengguna. - -Secara historis, pada bukti kerja, targetnya adalah memiliki blok baru setiap ~13,3 detik. Pada bukti taruhan, slot terjadi tepat setiap 12 detik, yang mana setiap slot merupakan kesempatan bagi validator untuk menerbitkan blok. Sebagian besar slot memiliki blok, tetapi belum tentu semuanya (misalnya, validator sedang offline). Pada bukti taruhan, blok diproduksi ~10% lebih sering dibandingkan dengan bukti kerja. Ini merupakan perubahan yang tidak terlalu signifikan dan kemungkinan tidak akan disadari oleh pengguna. - -Bukti taruhan memperkenalkan konsep finalitas transaksi yang sebelumnya tidak ada. Dalam bukti kerja, kemampuan untuk membalikkan sebuah blok menjadi lebih sulit secara eksponensial dengan setiap blok yang ditambang di atas transaksi, tetapi tidak pernah mencapai nol. Dalam bukti taruhan, blok digabungkan ke dalam periode waktu (rentang waktu 6,4 menit yang terdiri dari 32 peluang blok) yang akan dipilih oleh para validator. Ketika jangka waktu berakhir, para validator memberikan suara untuk memutuskan apakah jangka waktu tersebut 'dibenarkan' atau tidak. Jika validator setuju untuk membenarkan jangka waktu, maka epoch tersebut akan difinalisasi di jangka waktu berikutnya. Membatalkan transaksi yang telah difinalisasi tidak ekonomis karena akan memerlukan pengambilan dan pembakaran lebih dari sepertiga total ETH yang dipertaruhkan. - - - - - -Awalnya setelah Penggabungan, para staker hanya dapat mengakses tip biaya dan MEV yang diperoleh sebagai hasil dari usulan blok. Imbalan ini dikreditkan ke akun non-penaruhan yang dikendalikan oleh validator (dikenal sebagai penerima biaya), dan tersedia segera. Imbalan ini terpisah dari imbalan protokol untuk menjalankan tugas validator. - -Sejak upgrade jaringan Shanghai/Capella, para staker sekarang dapat menunjuk alamat penarikan untuk mulai menerima pembayaran otomatis dari saldo penaruhan berlebihan (ETH di atas 32 dari imbalan protokol). Upgrade ini juga memungkinkan kemampuan bagi validator untuk membuka kunci dan mengklaim seluruh saldo saat keluar dari jaringan. - -Lebih lanjut tentang penarikan staking - - - - -Sejak meningkatkan Shanghai/Capella mengizinkan penarikan, para validator memiliki insentif untuk menarik saldo penaruhan mereka yang melebihi 32 ETH, karena dana-dana tersebut tidak meningkatkan hasil dan sebaliknya terkunci. Tergantung pada APR (ditentukan oleh total ETH yang dipertaruhkan), mungkin ada insentif untuk keluar dari validatornya untuk mengklaim seluruh saldo atau bahkan mempertaruhkan lebih lagi menggunakan imbalannya untuk mendapatkan hasil lebih banyak. - -Namun, perlu dicatat bahwa keluar penuh dari validator dibatasi oleh protokol, dan hanya sejumlah terbatas validator yang diizinkan keluar setiap jangka waktu (setiap 6,4 menit). Batas ini bervariasi tergantung pada jumlah validator aktif, tetapi berjumlah sekitar 0,33% dari total ETH yang dipertaruhkan dapat keluar dari jaringan dalam satu hari. - -Hal ini mencegah terjadinya pengeluaran dana penaruhan secara massal. Selain itu, hal ini mencegah penyerang potensial yang memiliki akses ke sebagian besar total ETH yang dipertaruhkan untuk melakukan pelanggaran yang dapat dipotong dan keluar/menarik semua saldo validator yang melanggar pada jangka waktu yang sama sebelum protokol dapat memberlakukan hukuman pemotongan. - -APR juga disengaja dinamis, memungkinkan pasar para staker untuk menyeimbangkan seberapa banyak mereka bersedia dibayar untuk membantu mengamankan jaringan. Jika tingkatnya terlalu rendah, maka validator akan keluar dengan batas kecepatan yang ditentukan oleh protokol. Secara perlahan ini akan meningkatkan APR bagi semua yang tetap tinggal, menarik staker baru atau yang kembali lagi. - - -## Apa yang akan terjadi pada 'Eth2'? {#eth2} - -Istilah 'Eth2' telah dihentikan penggunaannya. Setelah menggabungkan 'Eth1' dan 'Eth2' menjadi satu rantai tunggal, tidak ada lagi kebutuhan untuk membedakan antara dua jaringan Ethereum; hanya ada Ethereum. - -Untuk mengurangi kebingungan, komunitas telah memperbarui istilah-istilah berikut ini: - -- 'Eth1' sekarang adalah 'lapisan eksekusi', yang menangani transaksi dan eksekusi. -- 'Eth2' sekarang adalah 'lapisan konsensus', yang menangani konsensus bukti taruhan. - -Pembaruan terminologi ini hanya mengubah konvensi penamaan; ini tidak mengubah tujuan atau peta jalan Ethereum. - -[Pelajari selengkapnya tentang penamaan ulang 'Eth2'](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) - -## Hubungan antar peningkatan {#relationship-between-upgrades} - -Semua peningkatan Ethereum saling terkait. Jadi mari kita ringkas bagaimana Penggabungan ini berhubungan dengan peningkatan lain. - -### Penggabungan dan Rantai Suar {#merge-and-beacon-chain} - -Pengabungan mewakili adopsi resmi Rantai Suar sebagai lapisan konsensus baru untuk lapisan eksekusi Jaringan Utama asli. Sejak Penggabungan, para validator ditugaskan untuk mengamankan Jaringan Utama Ethereum, dan penambangan menggunakan [bukti kerja](/developers/docs/consensus-mechanisms/pow/) tidak lagi merupakan cara yang valid untuk produksi blok. - -Blok diusulkan dengan memvalidasi simpul yang telah mempertaruhkan ETH dengan imbalan hak untuk berpartisipasi dalam konsensus. Peningkatan ini menyiapkan panggung untuk peningkatan skalabilitas di masa depan, termasuk pecahan. - - - Rantai Suar - - -### Penggabungan dan peningkatan Shanghai {#merge-and-shanghai} - -Untuk menyederhanakan dan memaksimalkan fokus pada transisi yang sukses ke bukti taruhan, peningkatan Penggabungan tidak menyertakan fitur-fitur tertentu yang telah diantisipasi seperti kemampuan untuk menarik ETH yang dipertaruhkan. Fungsionalitas ini diaktifkan secara terpisah dengan peningkatan Shanghai/Capella. - -Bagi mereka yang ingin tahu, pelajari selengkapnya tentang [Apa yang Terjadi Setelah Penggabungan](https://youtu.be/7ggwLccuN5s?t=101), yang disajikan oleh Vitalik pada acara ETHGlobal April 2021. - -### Penggabungan dan pecahan {#merge-and-data-sharding} - -Awalnya, rencananya adalah mengerjakan pecahan sebelum Penggabungan untuk mengatasi skalabilitas. Namun, dengan munculnya solusi penskalaan [lapisan ke-2](/layer-2/), prioritas berubah menjadi menggantikan bukti kerja dengan bukti taruhan terlebih dahulu. - -Rencana untuk pecahan berkembang dengan cepat, tetapi dengan munculnya dan keberhasilan teknologi lapisan ke-2 untuk meningkatkan eksekusi transaksi, rencana pecahan telah bergeser untuk menemukan cara yang paling optimal untuk mendistribusikan beban penyimpanan data panggilan terkompresi dari kontrak rollup, yang memungkinkan pertumbuhan kapasitas jaringan secara eksponensial. Hal ini tidak akan mungkin terjadi tanpa terlebih dahulu beralih ke bukti taruhan. - - - Pecahan - - -## Bacaan lebih lanjut {#further-reading} - - - - diff --git a/src/content/translations/id/roadmap/scaling/index.md b/src/content/translations/id/roadmap/scaling/index.md deleted file mode 100644 index ab29f99effd..00000000000 --- a/src/content/translations/id/roadmap/scaling/index.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Penskalaan Ethereum -description: Melakukan rollup transaksi batch secara bersamaan di luar rantai, sehingga mengurangi biaya bagi pengguna. Namun, cara rollup saat ini menggunakan data saat ini terlalu mahal, sehingga membatasi seberapa murah transaksi yang bisa dilakukan. Proto-Danksharding memperbaiki hal ini. -lang: id -image: ../../../../../assets/roadmap/roadmap-transactions.png -alt: "Peta Perjalanan Ethereum" -template: roadmap ---- - -Ethereum diskalakan menggunakan [lapisan ke-2](/layer-2/#rollups) (juga dikenal sebagai rollup), yang mengumpulkan transaksi secara bersamaan dan mengirimkan hasilnya ke Ethereum. Meskipun rollup hingga delapan kali lebih murah daripada Jaringan Utama Ethereum, Anda dapat mengoptimalkan rollup lebih lanjut untuk mengurangi biaya bagi pengguna akhir. Rollup juga bergantung pada beberapa komponen terpusat yang dapat dihapus oleh pengembang saat rollup sudah matang. - - -
    -
  • Rollup hari ini ~3-8x lebih murah daripada lapisan 1 Ethereum
  • -
  • Rollup ZK akan segera menurunkan biaya sebesar ~40-100x
  • -
  • Perubahan yang akan datang pada Ethereum akan memberikan penskalaan ~100-1000x lainnya
  • -
  • Pengguna harus mendapatkan keuntungan dari transaksi berharga kurang dari $0,001
  • -
-
- -## Membuat data lebih murah {#making-data-cheaper} - -Rollup mengumpulkan sejumlah besar transaksi, mengeksekusinya, dan mengirimkan hasilnya ke Ethereum. Hal ini menghasilkan banyak data yang harus tersedia secara terbuka sehingga siapa pun dapat melakukan transaksi untuk diri mereka sendiri dan memverifikasi bahwa operator rollup tersebut jujur. Jika seseorang menemukan ketidaksesuaian, mereka dapat mengajukan tantangan. - -### Proto-Danksharding {#proto-danksharding} - -Data rollup disimpan di Ethereum secara permanen, yang harganya mahal. Lebih dari 90% dari biaya transaksi yang dibayarkan pengguna pada rollup disebabkan oleh penyimpanan data ini. Untuk mengurangi biaya transaksi, kita dapat memindahkan data ke dalam penyimpanan 'blob' sementara yang baru. Blob lebih murah karena tidak permanen; data ini akan dihapus dari Ethereum setelah tidak lagi dibutuhkan. Menyimpan data rollup dalam jangka panjang menjadi tanggung jawab pihak-pihak yang membutuhkannya, seperti operator rollup, bursa, layanan pengindeksan, dll. Menambahkan transaksi blob ke Ethereum adalah bagian dari peningkatan yang dikenal sebagai "Proto-Danksharding". Transaksi blob diperkirakan akan dikirim dalam waktu dekat—mungkin pada akhir tahun 2023. - -Setelah transaksi blob menjadi bagian dari protokol Ethereum melalui Proto-Danksharding, maka akan dimungkinkan menambahkan banyak blob ke dalam blok Ethereum. Ini akan menjadi peningkatan substansial (>100x) pada keluaran Ethereum dan penurunan biaya transaksi. - -### Danksharding {#danksharding} - -Tahap kedua dari perluasan data blob cukup rumit karena membutuhkan metode baru untuk memeriksa data rollup yang tersedia di jaringan dan bergantung pada validator yang memisahkan tanggung jawab pembangunan blok dan proposal blok. Hal ini juga membutuhkan cara untuk membuktikan secara kriptografis bahwa validator telah memverifikasi subset data blob. - -Langkah kedua ini dikenal sebagai ["Danksharding"](/roadmap/danksharding/). Kemungkinan masih beberapa tahun lagi untuk dapat diimplementasikan secara penuh. Danksharding bergantung pada pengembangan lain seperti [pemisahan pembangunan blok dan proposal blok](/roadmap/pbs) dan desain jaringan baru yang memungkinkan jaringan secara efisien mengonfirmasi bahwa data tersedia dengan mengambil sampel beberapa kilobita secara acak dalam satu waktu, yang dikenal dengan nama [pengambilan sampel data (DAS)](/developers/docs/data-availability). - -Lebih lanjut tentang Danksharding - -## Desentralisasi rollup {#decentralizing-rollups} - -[Rollup](/layer-2) sudah menskalakan Ethereum. Ekosistem [yang kaya akan proyek rollup](https://l2beat.com/scaling/tvl) memungkinkan pengguna untuk bertransaksi dengan cepat dan murah, dengan berbagai jaminan keamanan. Namun, rollup telah di-bootstrap menggunakan sequencer terpusat (komputer yang melakukan semua pemrosesan dan agregasi transaksi sebelum mengirimkannya ke Ethereum). Hal ini rentan terhadap penyensoran, karena operator sequencer dapat dikenai sanksi, disuap, atau dikompromikan. Pada saat yang sama, [rollup bervariasi](https://l2beat.com) dalam cara mereka memvalidasi data yang masuk. Cara terbaik adalah "pemberi bukti" mengirimkan bukti kecurangan atau bukti validitas, tetapi belum semua rollup ada di sana. Bahkan rollup yang menggunakan bukti validitas/penipuan menggunakan kumpulan kecil pemberi bukti yang diketahui. Oleh karena itu, langkah penting berikutnya dalam penskalaan Ethereum adalah mendistribusikan tanggung jawab untuk menjalankan sequencer dan pembuktian kepada lebih banyak orang. - -Lebih lanjut tentang rollup - -## Kemajuan saat ini {#current-progress} - -Proto-Danksharding kemungkinan besar akan menjadi salah satu item peta perjalanan awal yang akan diimplementasikan. Langkah-langkah komputasi terdesentralisasi yang diperlukan untuk menyiapkannya sudah berjalan dan beberapa klien telah mengimplementasikan prototipe untuk menangani data blob. Danksharding penuh kemungkinan masih akan berlangsung beberapa tahun lagi, karena hal ini bergantung pada beberapa item peta perjalanan lainnya yang harus diselesaikan terlebih dahulu. Desentralisasi infrastruktur rollup kemungkinan besar akan menjadi proses yang bertahap - ada banyak rollup berbeda yang membangun sistem yang sedikit berbeda dan akan sepenuhnya terdesentralisasi dengan kecepatan yang berbeda. diff --git a/src/content/translations/id/roadmap/security/index.md b/src/content/translations/id/roadmap/security/index.md deleted file mode 100644 index 43971700bcf..00000000000 --- a/src/content/translations/id/roadmap/security/index.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: Ethereum yang lebih aman -description: Ethereum merupakan platform kontrak pintar yang paling aman dan terdesentralisasi yang pernah ada. Namun, masih diperlukan perbaikan yang dapat dilakukan agar Ethereum tetap tangguh terhadap segala tingkat serangan di masa depan. -lang: id -image: ../../../../../assets/roadmap/roadmap-security.png -alt: "Peta Perjalanan Ethereum" -template: roadmap ---- - -Ethereum merupakan platform kontrak pintar yang sudah sangat aman dan terdesentralisasi. Namun, masih diperlukan perbaikan yang dapat dilakukan agar Ethereum tetap tangguh terhadap segala jenis serangan di masa depan. Ini termasuk perubahan pada cara klien Ethereum menangani blok yang bersaing, serta meningkatkan kecepatan jaringan dengan menganggap blok menjadi ["final"](/developers/docs/consensus-mechanisms/pos/#finality) (yang berarti tidak dapat diubah tanpa kerugian ekonomi yang ekstrem bagi penyerang). - -Ada juga perbaikan yang membuat sensor transaksi menjadi lebih sulit dengan membuat pengusul blok tidak dapat melihat isi sebenarnya dari blok mereka, dan cara baru untuk mengidentifikasi kapan klien melakukan sensor. Bersama-sama, perbaikan ini akan meningkatkan protokol bukti taruhan sehingga pengguna dari individu hingga korporasi memiliki kepercayaan instan pada aplikasi, data, dan aset mereka di Ethereum. - -## Penarikan penaruhan {#staking-withdrawals} - -Peningkatan dari bukti kerja ke bukti taruhan dimulai dengan para perintis Ethereum "menaruhkan" ETH mereka dalam kontrak deposit. ETH tersebut digunakan untuk melindungi jaringan. Namun, ETH tersebut belum dapat dibuka kunci dan dikembalikan kepada pengguna. Memungkinkan ETH untuk ditarik adalah bagian penting dari peningkatan bukti taruhan. Selain penarikan menjadi komponen penting dari protokol bukti taruhan yang berfungsi penuh, memungkinkan penarikan juga baik untuk keamanan Ethereum karena memungkinkan para penaruh untuk menggunakan hadiah ETH mereka untuk tujuan non-penaruhan lainnya. Ini berarti pengguna yang menginginkan likuiditas tidak harus bergantung pada derivatif penaruhan likuid (LSD) yang dapat menjadi kekuatan sentralisasi di Ethereum. Peningkatan ini dijadwalkan selesai pada 12 April 2023. - -Baca tentang penarikan - -## Bertahan dari serangan {#defending-against-attacks} - -Bahkan setelah penarikan, masih ada perbaikan yang perlu dilakukan untuk protokol [bukti taruhan](/developers/docs/consensus-mechanisms/pos/) Ethereum. Salah satunya adalah yang dikenal sebagai [lihat-gabungkan](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739) - sebuah algoritma pilihan garpu yang lebih aman dalam membuat beberapa jenis serangan yang canggih lebih sulit. - -Mengurangi waktu yang dibutuhkan Ethereum untuk menyelesaikan blok akan memberikan pengalaman pengguna yang lebih baik dan mencegah serangan "reorg" yang canggih di mana penyerang mencoba mengacak blok yang sangat baru untuk mendapatkan keuntungan atau menyensor transaksi tertentu. [**Finalitas ruang tunggal (SSF)**](/roadmap/single-slot-finality/) adalah cara untuk meminimalisir keterlambatan finalisasi. Saat ini ada 15 menit blok yang secara teoritis dapat digunakan oleh penyerang untuk mengkonfigurasi ulang validator lain. Dengan SSF, hanya ada 0. Pengguna, dari individu hingga aplikasi dan bursa, mendapat manfaat dari jaminan cepat bahwa transaksi mereka tidak akan dibatalkan, dan jaringan mendapat manfaat dengan menutup seluruh kumpulan serangan. - -Baca tentang finalitas ruang tunggal - -## Bertahan melawan sensor {#defending-against-censorship} - -Desentralisasi mencegah individu atau kelompok kecil validator menjadi terlalu berpengaruh. Teknologi penaruhan baru dapat membantu memastikan validator Ethereum tetap se-desentralisasi mungkin sekaligus melindungi mereka dari kegagalan perangkat keras, perangkat lunak, dan jaringan. Ini termasuk perangkat lunak yang membagi tanggung jawab validator di beberapa simpul. Ini dikenal sebagai **teknologi validator terdistribusi (DVT)**. Pool penaruhan mendapat insentif untuk menggunakan DVT karena memungkinkan beberapa komputer untuk berpartisipasi secara kolektif dalam validasi, menambah redundansi dan toleransi kesalahan. Ini juga membagi kunci validator di beberapa sistem, daripada memiliki operator tunggal yang menjalankan beberapa validator. Ini mempersulit operator yang tidak jujur untuk mengoordinasikan serangan terhadap Ethereum. Secara keseluruhan, ide ini adalah untuk mendapatkan manfaat keamanan dengan menjalankan validator sebagai _komunitas_ daripada sebagai individu. - -Baca tentang teknologi validator terdistribusi - -Mengimplementasikan **pemisahan pengusul-pembangun (PBS)** akan sangat meningkatkan pertahanan bawaan Ethereum terhadap sensor. PBS memungkinkan satu validator untuk membuat blok dan yang lain untuk menyiarkannya ke seluruh jaringan Ethereum. Ini memastikan bahwa keuntungan dari algoritma pembangun blok profesional yang memaksimalkan keuntungan dibagi lebih adil di seluruh jaringan, **mencegah taruhan berkonsentrasi** dengan penaruh institusional berkinerja terbaik dari waktu ke waktu. Pengusul blok dapat memilih blok paling menguntungkan yang ditawarkan oleh pasar pembangun blok. Untuk menyensor, pengusul blok harus sering memilih blok yang kurang menguntungkan, yang **tidak akan rasional secara ekonomi dan juga jelas bagi validator lain** di jaringan. - -Ada tambahan potensial untuk PBS, seperti transaksi terenkripsi dan daftar inklusi, yang dapat meningkatkan resistensi sensor Ethereum. Ini membuat pembangun blok dan pengusul tidak dapat melihat transaksi sebenarnya yang termasuk dalam blok mereka. - -Baca tentang pemisahan pengusul-pembangun - -## Melindungi validator {#protecting-validators} - -Ada kemungkinan bahwa penyerang canggih dapat mengidentifikasi validator yang akan datang dan menyerang mereka untuk mencegah mereka mengusulkan blok; ini dikenal sebagai serangan **penolakan layanan (DoS)**. Mengimplementasikan [**pemilihan pemimpin rahasia (SLE)**](/roadmap/secret-leader-election) akan melindungi dari jenis serangan ini dengan mencegah pengusul blok diketahui sebelumnya. Ini bekerja dengan terus mengacak sekumpulan komitmen kriptografi yang mewakili proposer blok kandidat dan menggunakan urutan mereka untuk menentukan validator mana yang dipilih dengan cara yang hanya diketahui oleh validator itu sendiri sebelumnya. - -Baca tentang pemilihan pemimpin rahasia - -## Kemajuan saat ini {#current-progress} - -Peningkatan keamanan di peta perjalanan berada di tahap penelitian lanjutan, tetapi tidak diharapkan akan diimplementasikan dalam waktu dekat. Langkah selanjutnya untuk view-merge, PBS, SSF, dan SLE adalah menyelesaikan spesifikasi dan mulai membangun prototipe. diff --git a/src/content/translations/id/roadmap/user-experience/index.md b/src/content/translations/id/roadmap/user-experience/index.md deleted file mode 100644 index fb30d2ed155..00000000000 --- a/src/content/translations/id/roadmap/user-experience/index.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: Meningkatkan pengalaman pengguna -description: Masih terlalu rumit untuk menggunakan Ethereum bagi kebanyakan orang. Untuk mendorong adopsi massal, Ethereum harus secara drastis menurunkan hambatan masuknya - pengguna harus mendapatkan manfaat dari akses yang terdesentralisasi, tanpa izin, dan tahan sensor ke Ethereum, tetapi harus sama mudahnya dengan menggunakan aplikasi web2 tradisional. -lang: id -image: ../../../../../assets/roadmap/roadmap-ux.png -alt: "Peta Perjalanan Ethereum" -template: roadmap ---- - -Menggunakan Ethereum perlu disederhanakan; mulai dari mengelola kunci dan dompet hingga memulai transaksi. Untuk memfasilitasi adopsi massal, Ethereum harus secara drastis meningkatkan kemudahan penggunaan, sehingga pengguna dapat merasakan akses tanpa izin dan tanpa sensor ke Ethereum dengan pengalaman tanpa gesekan dalam menggunakan aplikasi Web2. - -## Di luar frasa benih {#no-more-seed-phrases} - -Akun Ethereum dilindungi oleh sepasang kunci yang digunakan untuk mengidentifikasi akun (kunci publik) dan menandatangani pesan (kunci pribadi). Kunci pribadi seperti kata sandi utama; kunci ini memungkinkan akses penuh ke akun Ethereum. Ini adalah cara pengoperasian yang berbeda untuk orang-orang yang lebih akrab dengan bank dan aplikasi Web2 yang mengelola akun atas nama pengguna. Agar Ethereum dapat mencapai adopsi massal tanpa bergantung pada pihak ketiga yang tersentralisasi, harus ada cara yang mudah dan tanpa gesekan bagi pengguna untuk menjaga aset mereka dan tetap mengontrol data mereka tanpa harus memahami kriptografi kunci publik-pribadi dan manajemen kunci. - -Solusi untuk hal ini adalah dengan menggunakan dompet kontrak pintar untuk berinteraksi dengan Ethereum. Dompet kontrak pintar menciptakan cara untuk melindungi akun jika kuncinya hilang atau dicuri, peluang untuk deteksi dan pertahanan yang lebih baik, dan memungkinkan dompet untuk mendapatkan fungsionalitas baru. Meskipun dompet kontrak pintar sudah ada saat ini, namun masih sulit untuk dibuat karena protokol Ethereum perlu mendukungnya dengan lebih baik. Dukungan tambahan ini dikenal sebagai abstraksi akun. - -Lebih lanjut tentang abstraksi akun - -## Simpul untuk semua orang - -Pengguna yang menjalankan node tidak perlu mempercayai pihak ketiga untuk memberikan data kepada mereka, dan mereka dapat berinteraksi dengan cepat, secara pribadi, dan tanpa izin dengan rantai blok Ethereum. Namun, menjalankan simpul saat ini membutuhkan pengetahuan teknis dan ruang disk yang besar, yang berarti banyak orang harus mempercayai perantara. - -Ada beberapa peningkatan yang akan membuat menjalankan node jauh lebih mudah dan jauh lebih sedikit menggunakan sumber daya. Cara penyimpanan data akan berubah untuk menggunakan struktur yang lebih efisien dalam penggunaan ruang yang dikenal sebagai **Pohon Verkle**. Dengan [keadaan tanpa status](/roadmap/statelessness) atau [kedaluwarsa data](/roadmap/statelessness/#data-expiry), simpul Ethereum tidak perlu menyimpan salinan seluruh data keadaan Ethereum, yang secara drastis mengurangi kebutuhan ruang hard disk. [Simpul ringan](/developers/docs/nodes-and-clients/light-clients/) akan menawarkan banyak manfaat dari menjalankan simpul penuh, tetapi dapat dijalankan dengan mudah pada ponsel seluler atau dalam aplikasi browser sederhana. - -Baca tentang pohon Verkle - -Dengan peningkatan ini, hambatan untuk menjalankan sebuah simpul dikurangi menjadi nol secara efektif. Pengguna akan mendapatkan keuntungan dari akses yang aman dan tanpa izin ke Ethereum tanpa harus mengorbankan ruang disk atau CPU yang signifikan di komputer atau ponsel mereka, dan tidak perlu bergantung pada pihak ketiga untuk akses data atau jaringan ketika mereka menggunakan aplikasi. - -## Kemajuan saat ini {#current-progress} - -Dompet kontrak pintar sudah tersedia, tetapi lebih banyak peningkatan diperlukan untuk membuatnya terdesentralisasi dan tanpa izin. EIP-4337 adalah proposal matang yang tidak memerlukan perubahan apa pun pada protokol Ethereum. Kontrak pintar utama yang diperlukan untuk EIP-4337 digunakan pada bulan Maret 2023. - -Kewarganegaraan penuh masih dalam tahap penelitian dan kemungkinan masih beberapa tahun lagi untuk diimplementasikan. Ada beberapa tonggak penting dalam perjalanan menuju keadaan tanpa kewarganegaraan penuh, termasuk masa berlaku data, yang dapat diimplementasikan lebih cepat. Item-item lain dalam peta perjalanan, seperti [Pohon Verkle](/roadmap/verkle-trees/) dan [Pemisahan Pembangun Penyedia](/roadmap/pbs/), perlu diselesaikan terlebih dahulu. - -Jaringan percobaan pohon Verkle sudah aktif dan berjalan, dan fase berikutnya adalah menjalankan klien yang diaktifkan pohon Verkle pada jaringan percobaan pribadi, kemudian publik. Anda dapat membantu mempercepat kemajuan dengan menggunakan kontrak ke jaringan percobaan atau menjalankan klien jaringan percobaan. diff --git a/src/content/translations/id/smart-contracts/index.md b/src/content/translations/id/smart-contracts/index.md deleted file mode 100644 index 3968dcce038..00000000000 --- a/src/content/translations/id/smart-contracts/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Kontrak pintar -description: Pengantar non-teknis untuk kontrak pintar -lang: id ---- - -# Pengantar kontrak pintar {#introduction-to-smart-contracts} - -Kontrak pintar adalah blok bangunan dasar dari lapisan aplikasi Ethereum. Mereka adalah program komputer yang disimpan di rantai blok yang mengikuti logika "jika ini maka itu", dan dijamin akan dieksekusi sesuai dengan aturan yang ditentukan oleh kode-kodenya, yang tidak dapat diubah setelah dibuat. - -Nick Szabo menciptakan istilah "kontrak pintar". Pada tahun 1994, ia menulis [pengantar konsep tersebut](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html), dan pada tahun 1996 ia menulis [eksplorasi tentang apa yang bisa dilakukan oleh kontrak pintar](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). - -Szabo membayangkan pasar digital di mana proses otomatis yang aman secara kriptografis memungkinkan transaksi dan fungsi bisnis terjadi tanpa perantara yang dapat dipercaya. Kontrak pintar Ethereum membuat mimpi ini menjadi nyata. - -### Kepercayaan dalam kontrak konvensional {#trust-and-contracts} - -Salah satu masalah terbesar dengan kontrak tradisional adalah kebutuhan terhadap individu yang bertanggung jawab untuk melaksanakan hasil kontrak. - -Berikut adalah contohnya: - -Alice dan Bob sedang ikut lomba sepeda. Anggaplah Alice bertaruh $10 dengan Bob bahwa dia akan memenangkan perlombaan. Bob yakin bahwa dia akan menjadi pemenang dan setuju untuk bertaruh. Pada akhirnya, Alice menyelesaikan lomba jauh di depan Bob dan jelas menang. Tetapi Bob menolak untuk membayar taruhannya, dengan klaim bahwa Alice pasti telah berbuat kecurangan. - -Contoh konyol ini menunjukkan masalah pada kesepakatan non-pintar mana pun. Bahkan jika persyaratan dari perjanjian tersebut terpenuhi (misalnya, Anda menjadi pemenang lombanya), Anda masih harus mempercayai pihak lain untuk memenuhi perjanjian tersebut (misalnya, membayar taruhan tersebut). - -### Mesin penjual otomatis digital {#vending-machine} - -Metafora sederhana untuk kontrak pintar adalah mesin penjual, yang bekerja entah bagaimana sama dengan kontrak pintar - input yang spesifik memastikan hasil yang telah ditentukan sebelumnya. - -- Anda memilih suatu produk -- Mesin penjual menampilkan harga -- Anda membayar harganya -- Mesin penjual memverifikasi bahwa Anda membayar jumlah yang tepat -- Mesin penjual memberikan barang Anda - -Mesin penjual hanya akan mengeluarkan produk yang Anda inginkan setelah semua persyaratan dipenuhi. Jika Anda tidak memilih produk atau memasukkan uang yang cukup, mesin penjual tidak akan memberikan produk yang Anda inginkan. - -### Eksekusi otomatis {#automation} - -Manfaat utama dari kontrak pintar adalah bahwa ia menjalankan kode yang tegas dan jelas ketika kondisi tertentu terpenuhi. Tidak perlu menunggu manusia untuk menginterpretasi atau merundingkan hasilnya. Ini menghilangkan keharusan terhadap perantara yang dipercaya. - -Contohnya, Anda dapat menulis kontrak pintar yang menyimpan dana di escrow untuk seorang anak, yang memungkinkan mereka untuk menarik dana tersebut setelah tanggal tertentu. Jika mereka mencoba menarik dana sebelum tanggal tersebut, kontrak pintar tidak akan dieksekusi. Atau Anda bisa menulis kontrak yang secara otomatis memberikan Anda versi digital dari surat kepemilikan mobil ketika Anda membayar kepada dealer. - -### Hasil yang dapat diprediksi {#predictability} - -Kontrak konvensional bersifat ambigu karena mengandalkan manusia untuk mengartikan dan melaksanakannya. Sebagai contoh, dua hakim bisa saja mengartikan kontrak dengan cara yang berbeda, yang dapat menghasilkan keputusan yang inkonsisten dan hasil yang tidak adil. Kontrak pintar menghilangkan kemungkinan ini. Sebagai gantinya, kontrak pintar membuat persis dengan ketentuan yang tertulis dalam kode kontrak. Ketepatan ini berarti bahwa dengan situasi yang sama, kontrak pintar akan membuat hasil yang sama. - -### Catatan umum {#public-record} - -Kontrak pintar berguna untuk audit dan pelacakan. Karena kontrak pintar Ethereum ada di rantai blok publik, siapa pun dapat dengan cepat melacak pemindahan aset dan informasi terkait lainnya. Sebagai contoh, Anda dapat memeriksa apakah seseorang telah mengirim uang ke alamat Anda. - -### Perlindungan privasi {#privacy-protection} - -Kontrak pintar juga melindungi privasi Anda. Karena Ethereum adalah jaringan dengan nama samaran (transaksi Anda terikat secara publik ke alamat kriptografik unik, bukan identitas Anda), Anda dapat melindungi privasi Anda dari pengintai. - -### Ketentuan yang terlihat {#visible-terms} - -Akhirnya, seperti kontrak tradisional, Anda dapat memeriksa isi kontrak pintar sebelum Anda menandatanganinya (atau berinteraksi dengannya). Transparansi kontrak pintar menjamin bahwa siapa pun dapat memeriksanya secara teliti. - -## Contoh penggunaan kontrak pintar {#use-cases} - -Kontrak pintar dapat melakukan pada dasarnya segala hal yang dapat dilakukan oleh program komputer. - -Mereka dapat melakukan komputasi, membuat mata uang, menyimpan data, mencetak NFT, mengirim komunikasi dan bahkan membuat grafik. Berikut adalah beberapa contoh penggunaan populer dan nyata: - -- [Stablecoin](/stablecoins/) -- [Membuat dan mendistribusikan aset digital unik](/nft/) -- [Bursa mata uang otomatis dan terbuka](/get-eth/#dex) -- [Aktivitas game terdesentralisasi](/dapps/?category=gaming) -- [Kebijakan asuransi yang melakukan pembayaran secara otomatis](https://etherisc.com/) -- [Standar yang memungkinkan orang untuk membuat mata uang yang disesuaikan dan dapat saling beroperasi](/developers/docs/standards/tokens/) - -## Selengkapnya tentang pelajar visual? {#visual-learner} - -Tonton Finematics menjelaskan kontrak pintar: - - - -## Bacaan lebih lanjut {#further-reading} - -- [Bagaimana Kontrak Pintar Akan Mengubah Dunia](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [Kontrak Pintar: Teknologi Rantai Blok Yang Akan Menggantikan Pengacara](https://blockgeeks.com/guides/smart-contracts/) -- [Kontrak pintar untuk pengembang](/developers/docs/smart-contracts/) -- [Belajar cara menulis kontrak pintar](/developers/learning-tools/) -- [Penguasaan Ethereum - Apa itu Kontrak Pintar?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/src/content/translations/id/social-networks/index.md b/src/content/translations/id/social-networks/index.md deleted file mode 100644 index 9bd2f7a55e4..00000000000 --- a/src/content/translations/id/social-networks/index.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: Jaringan sosial terdesentralisasi -description: Garis besar jaringan sosial desentralisasi di Ethereum -lang: id -template: use-cases -emoji: ":mega:" -sidebarDepth: 2 -image: ../../../../assets/ethereum-learn.png -summaryPoint1: Platform berbasis rantai blok untuk interaksi sosial, pembuatan konten, dan penyebaran konten. -summaryPoint2: Jaringan media sosial yang terdesentralisasi bisa melindungi privasi pengguna dan meningkatkan keamanan data. -summaryPoint3: Token dan NFT menciptakan cara baru dalam memonetisasi konten. ---- - -Jaringan sosial memainkan peran sangat penting dalam komunikasi dan interaksi kita sehari-hari. Namun, kontrol terpusat pada platform-platform ini telah menciptakan banyak masalah: pelanggaran data, gangguan server, pemblokiran, penyensoran, dan pelanggaran privasi adalah beberapa kompromi yang harus dibuat saat menggunakan media sosial. Untuk mengatasi masalah-masalah ini, para pengembang sedang membangun jaringan media sosial di Ethereum. Jaringan media sosial terdesentralisasi dapat mengatasi banyak masalah dari platform jaringan media sosial tradisional dan meningkatkan pengalaman pengguna secara keseluruhan. - -## Apa itu jaringan media sosial desentralisasi? {#what-are-decentralized-social-networks} - -Jaringan media sosial terdesentralisasi adalah platform berbasis rantai blok yang memungkinkan pengguna untuk bertukar informasi serta mempublikasikan dan mendistribusikan konten kepada audiens. Karena aplikasi-aplikasi ini berjalan di atas rantai blok, mereka mampu menjadi terdesentralisasi dan tahan terhadap sensor dan kendali yang tidak semestinya. - -Banyak jaringan media sosial terdesentralisasi ada sebagai alternatif untuk layanan media sosial yang sudah mapan, seperti Facebook, LinkedIn, Twitter, dan Medium. Namun, jaringan media sosial berbasis rantai blok memiliki sejumlah fitur yang membuatnya lebih unggul dari platform media sosial tradisional. - -### Bagaimana Jejaring Media Sosial Terdesentralisasi Bekerja? {#decentralized-social-networks-overview} - -Jaringan media sosial terdesentralisasi adalah kelas dari [aplikasi terdesentralisasi (dapps)](/dapps/)—aplikasi yang ditenagai oleh [kontrak pintar](/developers/docs/smart-contracts/) yang dideploy di rantai blok. Kode kontrak berfungsi sebagai layanan sistem pendukung jaringan untuk aplikasi-aplikasi ini dan mendefinisikan logika bisnis. - -Platform media sosial tradisional mengandalkan basis data untuk menyimpan informasi pengguna, kode program, dan bentuk data lainnya. Namun, hal ini menyebabkan satu titik kelemahan dan menciptakan risiko yang berbahaya. Sebagai contoh, server Facebook mengalami masalah dan [berhenti beroperasi selama beberapa jam](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) tahun lalu, memutus akses pengguna ke platform tersebut. - -Jaringan sosial terdesentralisasi ada di dalam jaringan peer-to-peer yang terdiri dari ribuan node di seluruh dunia. Meskipun beberapa node mengalami kegagalan, jaringan akan tetap berjalan tanpa henti, menjadikan aplikasi tahan terhadap kegagalan dan gangguan. - -Dengan menggunakan sistem penyimpanan terdesentralisasi seperti [InterPlanetary File System (IPFS)](https://ipfs.io/), jaringan sosial yang dibangun di atas Ethereum dapat melindungi informasi pengguna dari eksploitasi dan penggunaan jahat. Tidak ada yang akan menjual informasi pribadi Anda kepada pengiklan, dan peretas juga tidak akan dapat mencuri rincian rahasia Anda. - -Banyak platform sosial berbasis rantai blok memiliki token asli yang menggerakkan monetisasi dalam ketiadaan pendapatan dari iklan. Pengguna dapat membeli token ini untuk mengakses fitur-fitur tertentu, melakukan pembelian dalam aplikasi, atau memberikan tip kepada pembuat konten favorit mereka. - -## Berikut adalah beberapa manfaat dari jejaring sosial terdesentralisasi {#benefits} - -1. Jejaring sosial terdesentralisasi adalah tahan sensor dan terbuka bagi semua orang. Ini berarti pengguna tidak dapat dilarang, dihilangkan dari platform, atau dibatasi secara sewenang-wenang. - -2. Jejaring sosial terdesentralisasi dibangun dengan ideal sumber terbuka dan membuat kode sumber aplikasi tersedia untuk inspeksi publik. Dengan menghilangkan implementasi algoritma yang tidak transparan yang umumnya ada dalam media sosial tradisional, jejaring sosial berbasis rantai blok dapat menyelaraskan kepentingan pengguna dan pembuat platform. - -3. Jejaring sosial terdesentralisasi mengeliminasi peran "perantara". Para pencipta konten memiliki kepemilikan langsung atas kontennya, dan mereka berinteraksi langsung dengan pengikut, penggemar, pembeli, dan pihak lainnya, hanya melalui kontrak pintar sebagai perantara. - -4. Karena aplikasi terdesentralisasi (dapps) berjalan dalam jaringan Ethereum, yang tersedia secara global dalam jaringan simpul peer-to-peer, server jejaring sosial terdesentralisasi lebih jarang mati. - -5. Layanan jejaring media sosial terdesentralisasi menawarkan kerangka monetisasi yang lebih untuk pembuat konten, seperti token yang tidak dapat dipertukarkan (NFTs), pembayaran kripto dalam aplikasi dll. - -6. Jejaring media sosial terdesentralisasi memberi penggunanya privasi dan anonimitas yang ketat. Misalnya, seseorang bisa masuk dalam jaringan media sosial berbasis Ethereum menggunakan sebuah profil ENS atau dompet, tanpa harus menggunakan data pribadi teridentifikasi (PII), seperti nama atau alamat email dll. - -7. Jejaring media sosial terdesentralisasi menggunakan penyimpanan terdesentralisasi, bukan database terpusat, sehingga sangat bagus buat keamanan data pengguna. - -## Jaringan media sosial terdesentralisasi di Ethereum {#ethereum-social-networks} - -Jaringan Ethereum adalah jaringan yang disukai pengembang membuat media sosial terdesentralisasi karena popularitas tokennya (ERC-20/ERC-721) dan banyaknya penggunanya. Berikut contoh beberapa jejaring sosial berbasis Ethereum: - -### Peepeth {#peepeth} - -[Peepeth](https://peepeth.com/) adalah platform mikroblogging yang serupa dengan Twitter. Layanan ini berjalan di rantai blok Ethereum dan menggunakan IPFS untuk mengelola data penggunanya. - -Pengguna bisa mengirimkan pesan pendek yang disebut "Peeps", yang tidak bisa dihapus atau diubah. Anda bisa mengumpulkan tips dari siapa pun di platform dalam Ether (ETH), tanpa harus keluar dari aplikasinya. - -### Mirror {#mirror} - -[Mirror](https://mirror.xyz/) adalah layanan penulisan berbasis web3 yang ditujukan untuk terdesentralisasi dan dikelola penggunanya. Pengguna bisa membaca dan menulis dengan gratis di Mirror, hanya dengan menghubungkan dompet mereka. Pengguna juga bisa mengumpulkan tulisan dan berlangganan kepala penulis favaorit mereka. - -Tulisan yang diunggah di Mirror akan permamen dan disimpan di Arweave, layanan storage terdesentralisasi, dan bisa dicetak sebagai koleksi [token yang tidak dapat dipertukarkan (NFTs)](/nft/) yang disebut NFT berbasis Tulisan. Penulis bisa membuat NFT berbasis Tulisan dengan gratis sepenuhnya, dan koleksi akan dicetak di jaringan Ethereum L2 - yang membuat transksinya murah, cepat, dan mudah digunakan. - -### MINDS {#minds} - -[MINDS](https://www.minds.com/) adalah salah satu jejaring sosial terdesentralisasi yang paling banyak digunakan. Layanan ini seperti Facebook dan sudah meraup jutaan pengguna. - -Pengguna menggunakan token ERC-20 bawaan dari layanan ini yang disebut $MIND untuk membayar hal-hal yang diperlukan. Pengguna juga bisa mendapatkan token $MIND dengan mengunggah konten populer, berkontribusi dalam ekosistem, atau merekomendasikan layanan ini kepada temannya. - -## Jejaring Sosial Web2 di Ethereum {#web2-social-networks-and-ethereum} - -Jejaring sosial berbasis [Web3](/web3/) bukan hanya berusaha menggabungkan teknologi rantai blok ke dalam media sosial. Banyak layanan yang terpusat juga berencana menggabungkan Ethereum ke dalam infrastruktur mereka: - -### Reddit {#reddit} - -Reddit disebut [punya Community Points](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users), yang menggunakan [standar token ERC-20](/developers/docs/standards/tokens/erc-20/) dan bisa diperoleh penggunanya dengan mengunggah konten berkualitas dan berkontribusi dalam komunitas daringnya (subreddits). Anda dapat menukarkan token ini di dalam subreddit [untuk mendapatkan hak istimewa dan fasilitas eksklusif](https://www.reddit.com/community-points/). Untuk proyek ini, Reddit bekerjasama dengan Arbitrum, sebuah rollup [lapisan ke-2](/layer-2/) yang didesain untuk mengembangkan kemampuan transaksi di Ethereum. - -Proyek ini sudah berjalan, di ruang subreddit r/Mata Uang Kripto dan [token Community Points disebut dengan "Moons"](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Sesuai dengan deskripsi resminya, Moon disebut sebagai "imbalan bagi pengunggah, komentator, dan moderator untuk kontribusi mereka dalam subreddit." Karena token ini ada di rantai blok (pengguna menerimanya dalam dompet), mereka berhak dan bebas sehingga Reddit tidak bisa mengambil tokennya. - -Setelah menyelesaikan fase beta di jaringan percobaan Rinkeby, Reddit Community Points sekarang berada di [Arbitrum Nova](https://nova.arbitrum.io/), sebuah rantai blok yang menggabungkan sifat-sifat dari [rantai samping](/developers/docs/scaling/sidechains/) dan [rollup yang optimistis](/developers/docs/scaling/optimistic-rollups/). Selain menggunakan Community Points untuk mendapatkan fitur spesial, pengguna juga bisa memperjualbelikannya ke dalam mata uang fiat di bursa perdagangan. Selain itu, jumlah Community Points yang dimilik pengguna juga menunjukkan seberapa besar pengaruh mereka dalam pengambilan kebijakan di komunitas. - -### Twitter {#twitter} - -Pada Januari 2021, Twitter Blue [mulai mendukung untuk NFT](https://mashable.com/article/twitter-blue-nft-profile-picture), pengguna boleh menghubungkan dompet mereka dan memasang NFT sebagai gambar profilnya. Saat artikel ini ditulis, perusahaan media sosial ini juga sudah [mengumumkan rencana](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) mereka untuk membuat jejaring sosial yang terdesentralisasi di masa depan. - -### Instagram {#instagram} - -Pada Mei 2022, [Instagram mengumumkan mendukung NFT](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) di jaringan Ethereum dan Polygon. Pengguna bisa mengunggah NFT langsung di Instagram dengan cara menghubungkan dompet Ethereum mereka. - -## Contoh-contoh jejaring sosial terdesentralisasi {#use-decentralized-social-networks} - -- **[Status.im](https://status.im/)** - _Status adalah aplikasi pesan instan yang aman, sumber terbuka, menggunakan protokol peer-to-peer, dan enkripsi end-to-end untuk melindungi pesan dari pihak ketiga._ -- **[Mirror.xyz](https://mirror.xyz/)** - _Mirror adalah platform penerbitan terdesentralisasi milik pengguna yang dibangun di atas Ethereum bagi pengguna untuk melakukan crowdfunding ide, memonetisasi konten, dan membangun komunitas bernilai tinggi._ -- **[Lens Protocol](https://lens.xyz/)** - _Lens Protocol adalah layanan social graph yang dapat disusun dan terdesentralisasi yang membantu kreator menguasai konten mereka, di manapun mereka berada selama ada di internet yang terdesentralisasi._ -- **[Farcaster](https://farcaster.xyz/)** - _Farcaster adalah jejaring sosial yang cukup terdesentralisasi. Ini adalah protokol terbuka yang dapat mendukung banyak klien, sama seperti email._ - -## Bacaan lebih lanjut {#further-reading} - -### Artikel {#articles} - -- [Mendesentralisasi media sosial: panduan tentang kumpulan sosial web3](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _Coinbase Ventures_ -- [Jejaring Sosial Adalah Peluang Desentralisasi Besar Berikutnya](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Goertzel_ -- [Web3 menjanjikan jejaring sosial yang terdesentralisasi dan didukung komunitas](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ -- [Gambaran Lanskap Media Sosial Rantai Blok](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ -- [Bagaimana Rantai Blok Dapat Menyelesaikan Masalah Privasi Media Sosial](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Prableen Bajpai_ -- [Jaringan Media Sosial Akan Datang ke Rantai Blok](https://businesstechguides.co/what-are-decentralized-social-networks) — _Emmanuel Awosika_ -- [Desentralisasi yang Cukup untuk Jaringan Media Sosial](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Varun Srinivasan_ - -### Video {#videos} - -- [Pengertian Media Sosial Terdesentralisasi](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ -- [Rantai Blok DeSo Ingin Mendesentralisasi Media Sosial](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ -- [Masa Depan Media Sosial Terdesentralisasi dengan Balaji Srinivasan, Vitalik Buterin, Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ - -### Komunitas {#communities} - -- [Status Server Discord](https://discord.com/invite/3Exux7Y) -- [Mirror Server Discord](https://discord.com/invite/txuCHcE8wV) -- [r/Mata Uang Kripto subreddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/id/staking/pools/index.md b/src/content/translations/id/staking/pools/index.md deleted file mode 100644 index 67d1ff218d2..00000000000 --- a/src/content/translations/id/staking/pools/index.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: Penaruhan dari pengumpulan -description: Gambaran umum mengenai bagaimana cara memulai penaruhan untuk ETH dikumpulkan -lang: id -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-pool.png -alt: Leslie si Badak sedang berenang di kolam. -sidebarDepth: 2 -summaryPoints: - - Pasang taruhan dan dapatkan hadiah sejumlah berapa pun ETH dengan bergabung dalam tim dengan yang lain - - Lewati bagian yang susah dan percayakan kegiatan validator pada pihak ketiga - - Pegang penaruhan token di dompet Anda sendiri ---- - -## Apa itu pool penaruhan? {#what-are-staking-pools} - -Pool penaruhan adalah pendekatan kolaboratif yang memungkinkan banyak orang dengan jumlah ETH yang lebih kecil untuk mendapatkan 32 ETH yang diperlukan untuk mengaktifkan satu set kunci validator. Fungsionalitas pooling tidak didukung secara asli dalam protokol, sehingga solusi-solusi dibangun secara terpisah untuk mengatasi kebutuhan ini. - -Beberapa pool beroperasi menggunakan kontrak pintar, di mana dana dapat disimpan ke dalam kontrak, yang mengelola dan melacak taruhan Anda dengan aman, dan mengeluarkan token yang mewakili nilai tersebut. Pool lain mungkin tidak melibatkan kontrak pintar dan justru diatasi di luar rantai. - -## Mengapa melakukan taruhan dengan pool? {#why-stake-with-a-pool} - -Selain manfaat yang kami sebutkan dalam [pengantar tentang penaruhan](/staking/), melakukan penaruhan dengan pool memiliki sejumlah manfaat yang berbeda. - - - - - - - - - -## Apa yang perlu ditentukan {#what-to-consider} - -Pooled atau penaruhan yang didelegasikan tidak didukung oleh protokol Ethereum, tetapi mengingat permintaan pengguna untuk mempertaruhkan kurang dari 32 ETH, semakin banyak solusi yang dibuat untuk melayani permintaan ini. - -Setiap pool dan pearngkat atau kontrak pintar yang mereka gunakan telah dibangun oleh tim yang berbeda, dan masing-masing memiliki keuntungan dan risiko. Pool memungkinkan pengguna menukarkan ETH mereka dengan token yang mewakili ETH yang telah ditaruhkan. Token ini berguna karena memungkinkan pengguna untuk menukar sejumlah ETH dengan jumlah yang setara dengan token hasil yang menghasilkan imbal hasil dari imbalan penaruhan yang diterapkan pada ETH yang ditaruhkan (dan sebaliknya) pada bursa terpusat meskipun ETH yang sebenarnya tetap ditaruhkan pada lapisan konsensus. Ini berarti pertukaran bolak-balik dari produk ETH yang ditaruhkan yang menghasilkan hasil dan "ETH mentah" cepat, mudah, dan tidak hanya tersedia dalam kelipatan 32 ETH. - -Namun, token ETH yang dipertaruhkan ini cenderung menciptakan perilaku seperti kartel di mana sejumlah besar ETH yang dipertaruhkan berakhir di bawah kendali beberapa organisasi terpusat daripada tersebar di banyak individu independen. Hal ini menciptakan kondisi untuk sensor atau ekstraksi nilai. Standar emas untuk penaruhan seharusnya selalu individu menjalankan validator di perangkat keras mereka sendiri jika memungkinkan. - -[Lebih lanjut tentang risiko token penaruhan](https://notes.ethereum.org/@djrtwo/risks-of-lsd). - -Indikator atribut digunakan di bawah ini untuk menandakan kekuatan atau kelemahan yang mencolok yang mungkin dimiliki oleh pool penaruhan yang terdaftar. Gunakan bagian ini sebagai referensi untuk bagaimana kami mendefinisikan atribut ini ketika Anda memilih pool untuk bergabung. - - - -## Eksplorasi pool penaruhan {#explore-staking-pools} - -Terdapat berbagai pilihan yang tersedia untuk membantu Anda dengan pengaturan Anda. Gunakan petunjuk di atas untuk membantu Anda memandu melalui perangkat di bawah ini. - - - - - -Harap perhatikan pentingnya memilih layanan yang serius mengenai [diversitas klien](/developers/docs/nodes-and-clients/client-diversity/), karena ini meningkatkan keamanan jaringan dan membatasi risiko Anda. Layanan-layanan yang memiliki bukti pembatasan penggunaan mayoritas klien ditandai dengan "diversitas klien eksekusi" dan "diversitas klien konsensus." - -Punya saran untuk alat penaruhan yang kami lewatkan? Lihat [kebijakan daftar produk](/contributing/adding-staking-products/) kami untuk melihat apakah cocok, dan untuk mengirimkannya untuk ditinjau. - -## Pertanyaan yang sering diajukan {#faq} - - -Biasanya token penaruhan ERC-20 dikeluarkan untuk para penaruh yang mewakili nilai ETH yang mereka pertaruhkan ditambah hadiah. Perlu diingat bahwa berbagai pool akan mendistribusikan imbalan penaruhan kepada pengguna mereka melalui metode yang sedikit berbeda, tetapi tema umum ini tetap sama. - - - -Sekarang juga! Peningkatan jaringan Shanghai/Capella terjadi pada April 2023 dan memperkenalkan penarikan penaruhan. Akun validator yang mendukung pool penaruhan sekarang memiliki kemampuan untuk keluar dan menarik ETH ke alamat penarikan yang ditentukan. Ini memungkinkan Anda untuk menebus bagian Anda dari taruhan menjadi ETH yang mendasarinya. Periksa dengan penyedia Anda untuk melihat bagaimana mereka mendukung fungsionalitas ini. - -Sebagai alternatif, pool yang menggunakan token penaruhan ERC-20 memungkinkan pengguna untuk memperdagangkan token ini di pasar terbuka, sehingga Anda dapat menjual posisi penaruhan Anda, secara efektif "menarik diri" tanpa benar-benar menghapus ETH dari kontrak penaruhan. - -Lebih lanjut tentang penarikan penaruhan - - - -Terdapat banyak kesamaan antara pilihan pooled penaruhan ini dengan bursa terpusat, seperti kemampuan untuk melakukan penaruhan dengan jumlah ETH yang kecil dan menggabungkannya bersama untuk mengaktifkan validator. - -Tidak seperti bursa terpusat, banyak opsi penaruhan gabungan lainnya menggunakan kontrak pintar dan/atau token penaruhan, yang biasanya berupa token ERC-20 yang dapat disimpan di dompet Anda sendiri, dan dibeli atau dijual seperti token lainnya. Hal ini memberikan lapisan kedaulatan dan keamanan dengan memberikan Anda kendali atas token Anda, tetapi tetap tidak memberikan Anda kendali langsung atas klien validator yang membuktikan tanda tangan atas nama Anda di latar belakang. - -Beberapa pilihan pooling lebih terdesentralisasi daripada yang lain dalam hal simpul yang mendukungnya. Untuk mendorong kesehatan dan desentralisasi jaringan, para penaruh selalu didorong untuk memilih layanan pooling yang memungkinkan set kelompok simpul operator yang terdesentralisasi dan tanpa izin. - - -## Bacaan lebih lanjut {#further-reading} - -- [Penruhan dengan Rocket Pool - Ikhtisar Penaruhan](https://docs.rocketpool.net/guides/staking/overview.html) - _Dokumentasi RocketPool_ -- [Penaruhan Ethereum dengan Lido](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Dokumentasi bantuan Lido_ diff --git a/src/content/translations/id/staking/saas/index.md b/src/content/translations/id/staking/saas/index.md deleted file mode 100644 index e275b52b4fc..00000000000 --- a/src/content/translations/id/staking/saas/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Penaruhan sebagai layanan -description: Gambaran umum mengenai bagaimana cara memulai staking untuk pooled ETH -lang: id -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-saas.png -alt: Leslie si badak mengapung di awan. -sidebarDepth: 2 -summaryPoints: - - Operator simpul pihak ketiga menangani operasi dari klien validator Anda - - Pilihan yang bagus bagi siapa pun yang memiliki 32 ETH dan tidak merasa nyaman menghadapi kompleksitas teknis dalam menjalankan simpul - - Mengurangi kepercayaan, dan tetap memegang kendali kunci penarikan Anda ---- - -## Apa yang dimaksud dengan penaruhan sebagai layanan? {#what-is-staking-as-a-service} - -Penaruhan sebagai layanan ("SaaS") merupakan kategori layanan penguncian di mana Anda menyetor sendiri 32 ETH untuk validator, tetapi menugaskan operasi simpul kepada operator pihak ketiga. Proses ini biasanya melibatkan panduan dalam pengaturan awal, termasuk pembuatan kunci dan setoran, kemudian menampilkan kunci tanda tangan Anda ke operator. Ini memungkinkan layanan tersebut menggunakan validator Anda atas nama Anda, biasanya dengan membayar biaya bulanan. - -## Mengapa melakukan taruhan dengan layanan? {#why-stake-with-a-service} - -Protokol Ethereum tidak secara asli mendukung delegasi taruhan, sehingga layanan-layanan ini dibangun untuk memenuhi permintaan tersebut. Jika Anda memiliki 32 ETH untuk taruhan, namun tidak merasa nyaman menghadapi perangkat keras, layanan SaaS memungkinkan Anda menugaskan bagian yang sulit sementara Anda mendapatkan imbalan blok asli. - - - - - - - - - -## Apa yang perlu ditentukan {#what-to-consider} - -Ada semakin banyak penyedia SaaS yang dapat membantu Anda melakukan taruhan ETH, tetapi setiap penyedia memiliki manfaat dan risikonya sendiri. Semua pilihan layanan SaaS memerlukan keyakinan tambahan dibandingkan dengan penaruhan di beranda. Opsi Saas mungkin memiliki kode tambahan yang melingkupi klien Ethereum yang tidak terbuka atau dapat diaudit. SaaS juga berdampak buruk pada desentralisasi jaringan. Tergantung pada pengaturan, Anda mungkin tidak mengendalikan validator Anda - operator dapat bertindak tidak jujur dengan menggunakan ETH Anda. - -Indikator atribut digunakan di bawah ini untuk menandakan kekuatan atau kelemahan yang mencolok yang mungkin dimiliki oleh penyedia SaaS yang terdaftar. Gunakan bagian ini sebagai referensi untuk bagaimana kami mendefinisikan atribut-atribut ini saat Anda memilih layanan untuk membantu perjalanan penaruhan Anda. - - - -## Eksplorasi penyedia layanan penaruhan {#saas-providers} - -Berikut adalah beberapa penyedia layanan SaaS yang tersedia. Gunakan indikator-indikator di atas untuk membantu memandu Anda melalui layanan-layanan ini - - - -#### Penyedia layanan SaaS - - - -Harap perhatikan pentingnya mendukung [diversitas klien](/developers/docs/nodes-and-clients/client-diversity/) karena ini meningkatkan keamanan jaringan, dan membatasi risiko Anda. Layanan-layanan yang memiliki bukti pembatasan penggunaan mayoritas klien ditandai dengan "diversitas klien eksekusi" dan "diversitas klien konsensus." - -#### Pembangkit Kunci - - - -Punya saran untuk penyedia penaruhan sebagai layanan yang kami lewatkan? Lihat [kebijakan daftar produk](/contributing/adding-staking-products/) kami untuk melihat apakah cocok, dan untuk mengirimkannya untuk ditinjau. - -## Pertanyaan yang sering diajukan {#faq} - - -Perjanjian akan berbeda dari penyedia ke penyedia, tetapi umumnya Anda akan dipandu melalui pengaturan kunci tanda tangan yang Anda butuhkan (satu per 32 ETH), dan mengunggahnya ke penyedia Anda agar mereka dapat memvalidasi atas nama Anda. Kunci tanda tangan sendiri tidak memberikan kemampuan untuk menarik, mentransfer, atau menghabiskan dana Anda. Namun, kunci tanda tangan juga memberikan kemampuan untuk memberikan suara terhadap konsensus, yang jika tidak dilakukan dengan benar dapat mengakibatkan hukuman offline atau pemotongan. - - - -Ya. Setiap akun terdiri dari kunci BLS untuk tanda tangan dan kunci BLS untuk penarikan. Agar seorang validator dapat memberikan tanda tangan atas keadaan jaringan, berpartisipasi dalam komite sinkronisasi, dan mengajukan blok, kunci tanda tangan harus mudah diakses oleh klien validator. Kunci-kunci ini harus terhubung ke internet dalam bentuk tertentu, dan oleh karena itu secara inheren dianggap sebagai kunci "panas" (hot keys). Ini merupakan persyaratan agar validator Anda dapat memberikan tanda tangan, dan oleh karena itu kunci yang digunakan untuk mentransfer atau menarik dana dipisahkan karena alasan keamanan. - -Kunci penarikan BLS digunakan untuk menandatangani pesan satu kali yang menyatakan akun lapisan eksekusi mana yang harus menerima imbalan penaruhan dan dana yang ditarik. Setelah pesan ini disiarkan, kunci penarikan BLS tidak lagi diperlukan. Sebagai gantinya, kendali atas dana yang ditarik secara permanen didelegasikan ke alamat yang Anda berikan. Hal ini memungkinkan Anda untuk mengatur alamat penarikan yang diamankan melalui penyimpanan dingin (cold storage) milik Anda sendiri, meminimalkan risiko terhadap dana validator Anda, bahkan jika orang lain mengontrol kunci tanda tangan validator Anda. - -Memperbarui kredensial penarikan adalah langkah yang diperlukan untuk mengaktifkan penarikan\*. Proses ini melibatkan pembuatan kunci penarikan dengan menggunakan frase benih mnemonik Anda. - -Pastikan Anda mencadangkan frase benih ini dengan aman, jika tidak Anda tidak akan dapat menghasilkan kunci penarikan Anda saat waktunya tiba. - -\*Penaruh yang telah menyediakan alamat penarikan pada saat deposit awal tidak perlu mengatur ini. Hubungi penyedia SaaS Anda untuk mendapatkan dukungan mengenai cara menyiapkan validator Anda. - - - -Penarikan penaruhan diimplementasikan dalam peningkatan Shanghai/Capella pada April 2023. Para penaruh perlu menyediakan alamat penarikan (jika tidak disediakan saat deposit awal), dan pembayaran imbalan akan mulai didistribusikan secara otomatis secara berkala setiap beberapa hari. - -Para validator juga dapat sepenuhnya keluar sebagai validator, yang akan membuka kunci saldo ETH mereka yang tersisa untuk penarikan. Akun yang telah menyediakan alamat penarikan eksekusi dan menyelesaikan proses keluar akan menerima seluruh saldo mereka ke alamat penarikan yang disediakan selama sweep validator berikutnya. - -Lebih lanjut tentang penarikan penaruhan - - - -Dengan menggunakan penyedia SaaS, Anda mempercayakan operasi simpul Anda kepada pihak lain. Ini membawa risiko kinerja simpul yang buruk, yang tidak berada dalam kendali Anda. Jika validator Anda terkena pemotongan, saldo validator Anda akan dikenai hukuman dan secara paksa dihapus dari pool validator. - -Setelah selesai proses pemotongan hadiah/keluar, dana tersebut akan ditransfer ke alamat penarikan yang ditetapkan untuk validator tersebut. Ini memerlukan menyediakan alamat penarikan untuk diaktifkan. Alamat penarikan mungkin telah disediakan saat deposit awal. Jika tidak, kunci penarikan validator harus digunakan untuk menandatangani pesan yang menyatakan alamat penarikan. Jika tidak ada alamat penarikan yang disediakan, dana akan tetap terkunci sampai alamat penarikan diberikan. - -Hubungi penyedia SaaS secara individu untuk mendapatkan informasi lebih lanjut tentang jaminan atau opsi asuransi, dan petunjuk tentang cara menyediakan alamat penarikan. Jika Anda lebih suka memiliki kendali penuh atas pengaturan validator Anda, pelajari lebih lanjut tentang cara melakukan taruhan solo untuk ETH. - - -## Bacaan lebih lanjut {#further-reading} - -- [Menilai Layanan Penaruhan](https://www.attestant.io/posts/evaluating-staking-services/) - _Jim McDonald 2020_ diff --git a/src/content/translations/id/staking/solo/index.md b/src/content/translations/id/staking/solo/index.md deleted file mode 100644 index aaa71ba435e..00000000000 --- a/src/content/translations/id/staking/solo/index.md +++ /dev/null @@ -1,204 +0,0 @@ ---- -title: Lakukan taruhan solo untuk ETH Anda -description: Berikut adalah gambaran buat kamu cara memulai solo penaruhan ETH -lang: id -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-solo.png -alt: Leslie seekor badak dengan komputer chipnya sendiri. -sidebarDepth: 2 -summaryPoints: - - Terima imbalan maksimum langsung dari protokol dengan menjaga validator Anda berfungsi dengan baik dan tetap daring - - Jalankan perangkat keras di beranda dan secara pribadi berkontribusi pada keamanan dan desentralisasi jaringan Ethereum - - Hapus kepercayaan, dan jangan pernah menyerahkan kendali atas kunci dana Anda ---- - -## Apa yang dimaksud solo penaruhan? {#what-is-solo-staking} - -Solo penaruhan adalah tindakan [menjalankan simpul Ethereum](/run-a-node/) yang terhubung ke internet dan mendepositkan 32 ETH untuk mengaktifkan [validator](#faq), memberi Anda kemampuan untuk berpartisipasi secara langsung dalam konsensus jaringan. - -**Solo penaruhan meningkatkan desentralisasi jaringan Ethereum**, menjadikan Ethereum lebih tahan sensor dan tangguh terhadap serangan. Metode penaruhan lain mungkin tidak membantu jaringan dengan cara yang sama. Penaruhan solo adalah pilihan staking terbaik untuk mengamankan Ethereum. - -Sebuah simpul Ethereum terdiri dari klien lapisan eksekusi (EL) dan juga klien lapisan konsensus (CL). Klien-klien ini adalah perangkat lunak yang bekerja bersama, bersama dengan seperangkat kunci tanda tangan yang sah, untuk memverifikasi transaksi dan blok, memberikan kesaksian terhadap kepala rantai yang benar, menggabungkan kesaksian, dan mengajukan blok. - -Para penaruh solo bertanggung jawab atas mengoperasikan perangkat keras yang diperlukan untuk menjalankan klien-klien ini. Sangat disarankan untuk menggunakan mesin khusus untuk ini yang Anda operasikan dari beranda - ini sangat bermanfaat untuk kesehatan jaringan. - -Seorang penaruh solo menerima imbalan langsung dari protokol karena menjaga validator mereka berfungsi dengan baik dan tetap daring. - -## Mengapa taruhan solo? {#why-stake-solo} - -Penaruhan solo membawa tanggung jawab lebih besar tetapi memberikan Anda kendali maksimal atas dana dan pengaturan penaruhan Anda. - - - - - - - -## Pertimbangan sebelum melakukan penaruhan solo {#considerations-before-staking-solo} - -Seberapa pun kita berharap bahwa penaruhan solo dapat diakses dan bebas risiko bagi semua orang, kenyataannya tidak demikian. Ada beberapa pertimbangan praktis dan serius yang perlu diingat sebelum memutuskan untuk melakukan taruhan solo pada ETH Anda. - - - -Ketika mengoperasikan simpul Anda sendiri, Anda sebaiknya menghabiskan waktu untuk mempelajari cara menggunakan perangkat lunak yang telah Anda pilih. Hal ini melibatkan membaca dokumentasi yang relevan dan memperhatikan saluran komunikasi tim pengembang tersebut. - -Semakin Anda memahami tentang perangkat lunak yang Anda jalankan dan bagaimana bukti penaruhan bekerja, semakin minim risikonya sebagai penaruh, dan semakin mudah memperbaiki masalah yang mungkin muncul sepanjang jalan sebagai operator simpul. - - - -Pengaturan simpul memerlukan tingkat kenyamanan yang wajar saat bekerja dengan komputer, meskipun perangkat baru membuat ini menjadi lebih mudah seiring berjalannya waktu. Memahami antarmuka baris perintah bermanfaat, tetapi tidak lagi mutlak diperlukan. - -Ini juga memerlukan pengaturan perangkat keras yang sangat dasar, dan pemahaman tentang spesifikasi minimum yang direkomendasikan. - - - -Sama seperti kunci pribadi yang mengamankan alamat Ethereum Anda, Anda perlu menghasilkan kunci-kunci khusus untuk validator Anda. Anda harus memahami bagaimana cara menjaga frasa benih atau kunci pribadi tetap aman dan terlindungi.{' '} - -Keamanan Ethereum dan pencegahan penipuan - - - -Perangkat keras kadang-kadang mengalami kegagalan, koneksi jaringan terputus, dan perangkat lunak klien kadang-kadang perlu ditingkatkan. Pemeliharaan simpul tidak terhindarkan dan kadang-kadang akan memerlukan perhatian Anda. Anda akan ingin memastikan Anda tetap sadar akan semua peningkatan jaringan yang diantisipasi, atau peningkatan klien penting lainnya. - - - -Imbalan Anda sebanding dengan waktu validator Anda daring dan memberikan pembuktian dengan benar. Waktu tidak aktif menimbulkan hukuman sebanding dengan berapa banyak validator lain yang sedang offline pada saat yang sama, tetapi tidak mengakibatkan pemotongan. Lebar pita juga penting, karena imbalan dikurangi untuk pembuktian yang tidak diterima tepat waktu. Persyaratan akan bervariasi, tetapi disarankan memiliki setidaknya kecepatan unggah dan unduh 10 Mb/dtk. - - - -Berbeda dari hukuman ketidakaktifan karena offline, pemotongan merupakan hukuman yang jauh lebih serius yang diberikan untuk pelanggaran yang bersifat jahat. Dengan menjalankan klien minoritas dengan kunci Anda dimuat hanya pada satu mesin pada satu waktu, risiko pemotongan slashed Anda diminimalkan. Dengan demikian, semua staker harus menyadari risiko pemotongan. - - Lebih lanjut tentang pemotongan dan siklus validator - - - - - -## Cara kerjanya {#how-it-works} - - - -Saat aktif, Anda akan mendapatkan rewards ETH, yang akan secara berkala disetor ke alamat penarikan Anda. - -Jika diinginkan, Anda dapat keluar sebagai validator yang menghilangkan keharusan untuk daring, dan menghentikan segala hadiah lebih lanjut. Saldo Anda yang tersisa akan ditarik ke alamat penarikan yang Anda tentukan saat pengaturan. - -[Lebih lanjut tentang penarikan penaruhan](/staking/withdrawals/) - -## Mulai di Landasan Peluncuran Penaruhan {#get-started-on-the-staking-launchpad} - -Landasan Peluncuran Penaruhan adalah aplikasi sumber terbuka yang akan membantu Anda menjadi seorang penaruh. Aplikasi ini akan membimbing Anda dalam memilih klien, menghasilkan kunci Anda, dan mendepositkan ETH Anda ke kontrak deposit penaruhan. Daftar periksa disediakan untuk memastikan Anda telah mencakup semua yang diperlukan untuk mengatur validator dengan aman. - - - -## Apa yang perlu dipertimbangkan dalam perangkat pengaturan simpul dan klien {#node-tool-considerations} - -Ada sejumlah perangkat dan layanan yang semakin banyak membantu Anda untuk melakukan taruhan solo ETH, tetapi masing-masing memiliki risiko dan manfaat yang berbeda. - -Indikator atribut digunakan di bawah ini untuk menandakan kekuatan atau kelemahan yang signifikan yang mungkin dimiliki oleh perangkat penaruhan yang terdaftar. Gunakan bagian ini sebagai referensi untuk cara kami mendefinisikan atribut-atribut ini saat Anda memilih perangkat membantu perjalanan penaruhan Anda. - - - -## Jelajahi perangkat pengaturan simpul dan klien {#node-and-client-tools} - -Terdapat berbagai pilihan yang tersedia untuk membantu Anda dengan pengaturan Anda. Gunakan petunjuk di atas untuk membantu Anda memandu melalui perangkat di bawah ini. - - - -#### Perangkat simpul - - - -Harap perhatikan pentingnya memilih [klien minoritas](/developers/docs/nodes-and-clients/client-diversity/) karena ini meningkatkan keamanan jaringan dan membatasi risiko Anda. Perangkat yang memungkinkan Anda mengatur klien minoritas ditandai sebagai "multi-klien." - -#### Pembangkit Kunci - -Perangkat ini dapat digunakan sebagai alternatif untuk [CLI Deposit Penaruhan](https://github.com/ethereum/staking-deposit-cli/) untuk membantu dalam pembuatan kunci. - - - -Punya saran untuk alat penaruhan yang kami lewatkan? Lihat [kebijakan daftar produk](/contributing/adding-staking-products/) kami untuk melihat apakah cocok, dan untuk mengirimkannya untuk ditinjau. - -## Jelajahi panduan penaruhan solo {#staking-guides} - - - -## Pertanyaan yang sering diajukan {#faq} - -Berikut adalah beberapa pertanyaan umum tentang penaruhan yang layak diketahui. - - - -Seorang validator adalah entitas virtual yang ada di Ethereum dan berpartisipasi dalam konsensus protokol Ethereum. Validator direpresentasikan oleh saldo, kunci publik, dan properti lainnya. Sebuah validator klien adalah perangkat lunak yang bertindak atas nama validator dengan menyimpan dan menggunakan kunci pribadinya. Satu klien validator tunggal dapat menyimpan banyak pasangan kunci, mengendalikan banyak validator. - - - - -Setiap pasangan kunci yang terkait dengan validator memerlukan persis 32 ETH untuk diaktifkan. Penambahan ETH lebih banyak ke satu set kunci tidak meningkatkan potensi imbalankarena setiap validator dibatasi oleh saldo efektif 32 ETH. Ini berarti bahwa penaruhan dilakukan dalam penambahan 32 ETH, masing-masing dengan set kunci dan saldo yang terpisah. - -Jangan meletakkan lebih dari 32 ETH untuk satu validator. Ini tidak akan meningkatkan imbalan Anda. Jika alamat penarikan telah diatur untuk validator, dana yang berlebihan di atas 32 ETH akan secara otomatis ditarik ke alamat ini selama pembersihan validator berikutnya. - -Jika penaruhan solo terlalu menantang bagi Anda, pertimbangkan untuk menggunakan penyedia staking-as-a-service, atau jika Anda memiliki kurang dari 32 ETH, lihatlah pool penaruhan. - - - -Mengalami kehilangan koneksi saat jaringan sedang berjalan dengan baik dan stabil TIDAK akan mengakibatkan pemotongan. Denda kecil akibat ketidakaktifan (inactivity penalties) dikenakan jika validator Anda tidak tersedia untuk mengesahkan dalam suatu jangka waktu tertentu (setiap 6,4 menit), namun ini sangat berbeda dengan pemotongan. Denda ini sedikit lebih rendah daripada imbalan yang akan Anda peroleh jika validator tersedia untuk mengesahkan, dan kerugian dapat dikembalikan dengan waktu daring yang sekitar sama lamanya. - -Perlu dicatat bahwa denda atas ketidakaktifan berbanding lurus dengan jumlah validator yang tidak aktif pada saat bersamaan. Dalam kasus di mana sebagian besar jaringan tidak aktif secara bersamaan, denda untuk masing-masing validator ini akan lebih besar daripada saat satu validator tidak tersedia. - -Dalam kasus ekstrem di mana jaringan berhenti untuk mengkonfirmasi hasil akhir akibat lebih dari sepertiga validator tidak aktif, pengguna ini akan mengalami apa yang dikenal sebagai kebocoran inaktivitas kuadratik, yang merupakan pengurasan eksponensial ETH dari akun validator yang tidak aktif. Ini memungkinkan jaringan untuk akhirnya pulih sendiri dengan membakar ETH dari validator yang tidak aktif hingga saldo mereka mencapai 16 ETH, pada saat itu mereka akan secara otomatis dikeluarkan dari kolam validator. Validator yang tetap daring akhirnya akan terdiri dari lebih dari 2/3 dari jaringan lagi, memenuhi supermayoritas yang diperlukan untuk sekali lagi mengesahkan rantai. - - - -Secara singkat, ini tidak dapat dijamin sepenuhnya, tetapi jika Anda bertindak dengan itikad baik, menjalankan klien minoritas, dan hanya menyimpan kunci tanda tangan Anda di satu mesin pada satu waktu, risiko terkena potongan hampir nol. - -Hanya ada beberapa cara khusus yang dapat menyebabkan seorang validator terkena potongan dan dikeluarkan dari jaringan. Pada saat penulisan ini, pemotongan yang terjadi secara eksklusif merupakan hasil dari pengaturan perangkat keras yang berlebihan di mana kunci tanda tangan disimpan di dua mesin terpisah sekaligus. Ini dapat secara tidak sengaja mengakibatkan suara ganda dari kunci Anda, yang merupakan pelanggaran yang dapat mengakibatkan pemotongan. - -Menjalankan klien supermayoritas (klien yang digunakan oleh lebih dari 2/3 jaringan) juga memiliki risiko potensial pemotongan jika klien ini memiliki bug yang mengakibatkan terjadinya garpu pada rantai. Hal ini dapat mengakibatkan garpu yang cacat dan kemudian di-finalisasi. Untuk kembali ke rantai yang dimaksud, diperlukan pengajuan surround vote dengan mencoba untuk mengembalikan blok yang telah di-finalisasi. Ini juga merupakan tindakan yang dapat menyebabkan pemotongan dan dapat dihindari dengan menjalankan klien minoritas. - -Bugs serupa dalam klien minoritas tidak akan pernah difinalisasi dan oleh karena itu tidak akan mengakibatkan suara perkeliling, dan hanya akan mengakibatkan hukuman ketidakaktifan, bukan pemotongan. - - - - - -Masing-masing klien dapat memiliki perbedaan sedikit dalam hal kinerja dan antarmuka pengguna, karena masing-masing dikembangkan oleh tim yang berbeda menggunakan berbagai bahasa pemrograman. Meskipun demikian, tidak ada yang dianggap sebagai "terbaik." Semua klien produksi adalah perangkat lunak yang sangat baik, yang semuanya melakukan fungsi inti yang sama untuk menyinkronkan dan berinteraksi dengan rantai blok. - -Karena semua klien produksi menyediakan fungsionalitas dasar yang sama, sebenarnya sangat penting bagi Anda untuk memilih klien minoritas, yang berarti klien mana pun yang TIDAK sedang digunakan oleh sebagian besar validator di jaringan. Hal ini mungkin terdengar kontraproduktif, tetapi menjalankan klien mayoritas atau supermayoritas meningkatkan risiko Anda terkena pemotongan jika terjadi bug pada klien tersebut. Menjalankan klien minoritas secara signifikan mengurangi risiko tersebut. - -Pelajari lebih lanjut mengenai mengapa keragaman klien sangat penting di sini - - - -Meskipun server pribadi virtual (VPS) dapat digunakan sebagai pengganti perangkat keras di beranda, akses fisik dan lokasi klien validator Anda memang penting. Solusi cloud terpusat seperti Amazon Web Services atau Digital Ocean memungkinkan kenyamanan tanpa harus mendapatkan dan mengoperasikan perangkat keras, dengan biaya sentralisasi jaringan. - -Semakin banyak klien validator yang berjalan pada satu solusi penyimpanan cloud terpusat, semakin berbahaya bagi pengguna-pengguna ini. Setiap kejadian yang membuat penyedia ini offline, baik itu oleh serangan, tuntutan regulasi, atau gangguan daya/internet, akan menyebabkan setiap klien validator yang bergantung pada server ini menjadi offline secara bersamaan. - -Denda ketidakhadiran secara online sebanding dengan berapa banyak orang lain yang tidak online pada saat yang sama. Menggunakan VPS secara besar-besaran meningkatkan risiko bahwa denda ketidakhadiran daring akan lebih parah, dan meningkatkan risiko bocornya kuadrat atau pemotongan jika pemadaman cukup besar. Untuk meminimalkan risiko Anda sendiri dan risiko bagi jaringan, pengguna sangat disarankan untuk mendapatkan dan mengoperasikan perangkat keras mereka sendiri. - - - - -Penarikan apa pun dari Rantai Suar memerlukan pengaturan kredensial penarikan. - -Pemegang staking baru mengatur ini pada saat pembuatan kunci dan deposit. Pemegang penaruhan yang sudah ada yang belum mengatur ini dapat meningkatkan kunci mereka untuk mendukung fungsionalitas ini. - -Setelah kredensial penarikan diatur, pembayaran imbalan (ETH yang terakumulasi di atas 32 awal) akan secara berkala didistribusikan ke alamat penarikan secara otomatis. - -Untuk membuka dan menerima seluruh saldo Anda kembali, Anda juga harus menyelesaikan proses keluar dari validator Anda. - -Lebih lanjut tentang penarikan penaruhan - - -## Bacaan lebih lanjut {#further-reading} - -- [Masalah Keragaman Klien Ethereum](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ -- [Membantu Keragaman Klien](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ -- [Klien keragaman pada Ethereum Lapisan konsensus](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ -- [Caranya: Berbelanja Untuk Ethereum Validator Perangkat Keras](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ -- [Langkah demi Langkah: Cara Bergabung dengan Jaringan Percobaan Ethereum 2.0](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _Butta_ -- [Tips Pencegahan Pemotongan Eth2](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raul Jordan 2020_ diff --git a/src/content/translations/id/staking/withdrawals/index.md b/src/content/translations/id/staking/withdrawals/index.md deleted file mode 100644 index 6a573e4197b..00000000000 --- a/src/content/translations/id/staking/withdrawals/index.md +++ /dev/null @@ -1,218 +0,0 @@ ---- -title: Penarikan penaruhan -description: Halaman yang merangkum tentang penarikan tekan penaruhan, bagaimana cara kerjanya, dan apa yang harus dilakukan oleh staker untuk mendapatkan imbalan mereka -lang: id -template: staking -image: ../../../../../assets/staking/leslie-withdrawal.png -alt: Leslie si badak dengan imbalan penaruhannya -sidebarDepth: 2 -summaryPoints: - - Peningkatan Shanghai/Capella memungkinkan penarikan penaruhan di Ethereum - - Operator validator harus menyediakan alamat penarikan untuk mengaktifkan - - Imbalan secara otomatis didistribusikan setiap beberapa hari - - Validator yang keluar sepenuhnya dari penaruhan akan menerima sisa saldo mereka ---- - - -Penarikan penaruhan diaktifkan dengan peningkatan Shanghai/Capella yang terjadi pada 12 April 2023. Lebih lanjut tentang Shanghai/Capella - - -**Penarikan penaruhan** mengacu pada transfer ETH dari akun validator pada lapisan konsensus Ethereum (Rantai Suar), ke lapisan eksekusi di mana itu dapat ditransaksikan. - -**Pembayaran imbalan atas saldo yang berlebih** dari 32 ETH akan otomatis dan secara teratur dikirim ke alamat penarikan yang terhubung ke setiap validator, begitu pengguna menyediakannya. Pengguna juga dapat **keluar dari penaruhan sepenuhnya**, membuka kunci saldo validator mereka secara penuh. - -## Imbalan penaruhan {#staking-rewards} - -Pembayaran imbalan secara otomatis diproses untuk akun validator yang aktif dengan saldo efektif maksimal 32 ETH. - -Saldo di atas 32 ETH yang diperoleh melalui imbalan tidak benar-benar berkontribusi pada pokok, atau meningkatkan bobot validator ini di jaringan, dan dengan demikian secara otomatis ditarik sebagai pembayaran hadiah setiap beberapa hari. Selain memberikan alamat penarikan satu kali, hadiah ini tidak memerlukan tindakan apa pun dari operator validator. Ini semua dimulai pada lapisan konsensus, sehingga tidak ada gas (biaya transaksi) yang diperlukan pada langkah apa pun. - -### Bagaimana kita sampai di sini? {#how-did-we-get-here} - -Selama beberapa tahun terakhir, Ethereum telah mengalami beberapa kali peningkatan jaringan yang beralih ke jaringan yang diamankan oleh ETH itu sendiri, alih-alih penambangan yang boros energi seperti sebelumnya. Berpartisipasi dalam konsensus di Ethereum sekarang dikenal sebagai "penaruhan", karena para peserta telah secara sukarela mengunci ETH, menempatkannya "dipertaruhkan" untuk kemampuan berpartisipasi dalam jaringan. Pengguna yang mengikuti peraturan akan diberi penghargaan, sementara upaya untuk berbuat curang dapat dikenai sanksi. - -Sejak peluncuran kontrak penaruhan deposit pada November 2020, beberapa perintis Ethereum yang berani telah secara sukarela mengunci dana untuk mengaktifkan "validator", akun khusus yang memiliki hak untuk secara resmi membuktikan dan mengusulkan blok, mengikuti aturan jaringan. - -Sebelum peningkatan Shanghai/Capella, Anda tidak dapat menggunakan atau mengakses ETH yang Anda penaruhan. Namun sekarang, Anda bisa memilih untuk menerima reward secara otomatis ke akun yang Anda pilih, dan Anda juga bisa menarik ETH yang Anda pertaruhkan kapan pun Anda mau. - -### Bagaimana saya mempersiapkan diri? {#how-do-i-prepare} - - - -### Pemberitahuan Penting {#important-notices} - -Memberikan alamat penarikan adalah langkah yang diperlukan untuk setiap akun validator sebelum akun tersebut memenuhi syarat untuk menarik ETH dari saldonya. - - - Setiap akun validator hanya dapat diberikan satu alamat penarikan, satu kali. Setelah alamat dipilih dan dikirimkan ke lapisan konsensus, alamat tersebut tidak dapat dibatalkan atau diubah lagi. Periksa kembali kepemilikan dan keakuratan alamat yang diberikan sebelum mengirim. - - -Tidak ada tidak ada ancaman terhadap dana Anda untuk sementara waktu karena tidak menyediakan ini, dengan asumsi mnemonik/frase benih Anda tetap aman secara offline, dan tidak dikompromikan dengan cara apa pun. Kegagalan untuk menambahkan kredensial penarikan hanya akan membuat ETH terkunci di akun validator seperti sebelumnya sampai alamat penarikan diberikan. - -## Keluar dari penaruhan sepenuhnya {#exiting-staking-entirely} - -Memberikan alamat penarikan diperlukan sebelum _semua_ dana dapat ditransfer dari saldo akun validator. - -Pengguna yang ingin keluar dari penaruhan sepenuhnya dan menarik seluruh saldo mereka kembali juga harus menandatangani dan menyiarkan pesan "keluar secara sukarela" dengan kunci validator yang akan memulai proses keluar dari penaruhan. Ini dilakukan dengan klien validator Anda dan dikirimkan ke simpul konsensus Anda, dan tidak memerlukan gas. - -Proses keluarnya seorang validator dari penaruhan membutuhkan waktu yang bervariasi, tergantung pada berapa banyak validator yang keluar pada waktu yang sama. Setelah selesai, akun ini tidak lagi bertanggung jawab untuk melakukan tugas jaringan validator, tidak lagi memenuhi syarat untuk mendapatkan imbalan, dan tidak lagi memiliki ETH yang "dipertaruhkan". Pada saat ini, akun akan ditandai sebagai "dapat ditarik sepenuhnya". - -Setelah akun ditandai sebagai "dapat ditarik", dan kredensial penarikan telah diberikan, tidak ada lagi yang perlu dilakukan pengguna selain menunggu. Akun secara otomatis dan terus menerus dipindai oleh pengusul blokir untuk dana keluar yang memenuhi syarat, dan saldo akun Anda akan ditransfer secara penuh (juga dikenal sebagai "penarikan penuh") selama pemindaian berikutnya. - -## Kapan penarikan penaruhan diaktifkan? {#when} - -Penarikan penaruhan sudah aktif! Fungsionalitas penarikan dana diaktifkan sebagai bagian dari peningkatan Shanghai/Capella yang terjadi pada 12 April 2023. - -Peningkatan Shanghai/Capella memungkinkan ETH yang sebelumnya dipertaruhkan untuk diklaim kembali ke akun Ethereum biasa. Hal ini menutup lingkaran pada likuiditas penaruhan, dan membawa Ethereum selangkah lebih dekat dalam perjalanannya untuk membangun ekosistem terdesentralisasi yang berkelanjutan, terukur, dan aman. - -- [Lebih lanjut tentang sejarah Ethereum](/history/) -- [Lebih lanjut tentang peta perjalanan Ethereum](/roadmap/) - -## Bagaimana cara kerja pembayaran penarikan dana? {#how-do-withdrawals-work} - -Apakah validator tertentu memenuhi syarat untuk penarikan atau tidak, ditentukan oleh status akun validator itu sendiri. Tidak ada input pengguna yang diperlukan pada waktu tertentu untuk menentukan apakah suatu akun harus melakukan penarikan atau tidak-seluruh proses dilakukan secara otomatis oleh lapisan konsensus dalam sebuah loop yang berkesinambungan. - -### Selengkapnya tentang pelajar visual? {#visual-learner} - -Simak penjelasan mengenai penarikan penaruhan Ethereum dari Finematics berikut ini: - - - -### Validator "menyapu" {#validator-sweeping} - -Ketika validator dijadwalkan untuk mengajukan blok berikutnya, diperlukan antrean penarikan hingga 16 penarikan yang memenuhi syarat. Hal ini dilakukan dengan memulai dengan indeks validator 0, menentukan apakah ada penarikan yang memenuhi syarat untuk akun ini sesuai dengan aturan protokol, dan menambahkannya ke antrean jika ada. Validator yang ditetapkan untuk mengajukan blok berikutnya akan melanjutkan blok yang terakhir ditinggalkan, dan terus maju tanpa batas waktu. - - -Pikirkan tentang jam analog. Jarum jam menunjuk ke arah jam, bergerak ke satu arah, tidak melewatkan satu jam pun, dan akhirnya berputar ke awal lagi setelah angka terakhir tercapai.

-Sekarang, alih-alih 1 hingga 12, bayangkan jam memiliki 0 hingga N (jumlah total akun validator yang pernah terdaftar di lapisan konsensus, lebih dari 500.000 per Januari 2023).

-Jarum penunjuk pada jam menunjuk ke validator berikutnya yang perlu diperiksa untuk penarikan yang memenuhi syarat. Dimulai dari 0, dan berkembang terus tanpa melewatkan satu akun pun. Ketika validator terakhir tercapai, siklus berlanjut kembali ke awal. -
- -#### Memeriksa akun untuk penarikan dana {#checking-an-account-for-withdrawals} - -Ketika seorang pengusul menyisir validator untuk kemungkinan penarikan, setiap validator yang diperiksa akan dievaluasi berdasarkan serangkaian pertanyaan singkat untuk menentukan apakah penarikan harus dipicu, dan jika ya, berapa banyak ETH yang harus ditarik. - -1. **Apakah alamat penarikan sudah disediakan?** Jika tidak ada alamat penarikan yang disediakan, akun tersebut akan dilewati dan tidak ada penarikan yang dilakukan. -2. **Apakah validator keluar dan dapat ditarik kembali?** Jika validator telah keluar sepenuhnya, dan kami telah mencapai jangka waktu di mana akun mereka dianggap "dapat ditarik", maka penarikan penuh akan diproses. Ini akan mentransfer seluruh saldo yang tersisa ke alamat penarikan. -3. **Apakah saldo efektif telah mencapai 32?** Jika akun memiliki kredensial penarikan, belum sepenuhnya keluar, dan memiliki imbalan di atas 32 yang masih menunggu, maka penarikan sebagian akan diproses dan hanya akan mentransfer imbalan di atas 32 ke alamat penarikan pengguna. - -Hanya ada dua tindakan yang dilakukan oleh operator validator selama siklus hidup validator yang secara langsung memengaruhi alur ini: - -- Memberikan kredensial penarikan untuk memungkinkan segala bentuk penarikan -- Keluar dari jaringan, yang akan memicu penarikan penuh - -### Bebas gas {#gas-free} - -Pendekatan penarikan penaruhan ini menghindari keharusan penaruh untuk mengirimkan transaksi secara manual yang meminta penarikan ETH dalam jumlah tertentu. Ini berarti **tidak ada gas (biaya transaksi) yang diperlukan**, dan penarikan juga tidak bersaing untuk mendapatkan ruang blok lapisan eksekusi yang ada. - -### Seberapa sering saya akan mendapatkan imbalan penaruhan saya? {#how-soon} - -Maksimal 16 penarikan dapat diproses dalam satu blok. Pada tingkat tersebut, 115.200 penarikan validator dapat diproses per hari (dengan asumsi tidak ada slot yang terlewat). Seperti disebutkan di atas, validator yang tidak memenuhi syarat penarikan akan dilewati, sehingga mengurangi waktu untuk menyelesaikan penyisiran. - -Dengan memperluas perhitungan ini, kami dapat memperkirakan waktu yang dibutuhkan untuk memproses sejumlah penarikan tertentu: - - - -| Jumlah penarikan | Waktu untuk menyelesaikan | -| :--------------: | :-----------------------: | -| 400.000 | 3.5 hari | -| 500.000 | 4.3 hari | -| 600.000 | 5.2 hari | -| 700.000 | 6.1 hari | -| 800.000 | 7.0 hari | - - - -Seperti yang Anda lihat, hal ini melambat karena semakin banyak validator yang ada di jaringan. Peningkatan slot yang terlewatkan dapat memperlambat hal ini secara proporsional, tetapi ini secara umum akan mewakili sisi yang lebih lambat dari hasil yang mungkin terjadi. - -## Pertanyaan yang sering diajukan {#faq} - - -Tidak, proses untuk memberikan kredensial penarikan hanya dilakukan satu kali, dan tidak dapat diubah setelah diajukan. - - - -Dengan menetapkan alamat penarikan lapisan eksekusi, kredensial penarikan untuk validator tersebut telah diubah secara permanen. Ini berarti kredensial lama tidak akan berfungsi lagi, dan kredensial baru akan langsung menuju ke akun lapisan eksekusi. - -Alamat penarikan dapat berupa kontrak pintar (dikendalikan oleh kodenya), atau akun yang dimiliki secara eksternal (EOA, dikendalikan oleh kunci pribadinya). Saat ini akun-akun ini tidak memiliki cara untuk mengkomunikasikan pesan kembali ke lapisan konsensus yang akan menandakan perubahan kredensial validator, dan menambahkan fungsionalitas ini akan menambah kerumitan yang tidak perlu pada protokol. - -Sebagai alternatif untuk mengubah alamat penarikan untuk validator tertentu, pengguna dapat memilih untuk menetapkan kontrak pintar sebagai alamat penarikan mereka yang dapat menangani perputaran kunci, seperti Brankas. Pengguna yang menetapkan dana mereka ke EOA mereka sendiri dapat melakukan keluar sepenuhnya untuk menarik semua dana yang dipertaruhkan, dan kemudian melakukan penaruhan ulang dengan menggunakan kredensial baru. - - - - -Jika Anda merupakan bagian dari pool penaruhan atau memegang token penaruhan, Anda harus bertanya kepada penyedia Anda detail lebih lanjut tentang bagaimana penarikan penaruhan ditangani, karena setiap layanan beroperasi secara berbeda. - -Secara umum, pengguna harus bebas untuk mendapatkan kembali ETH yang mereka pertaruhkan, atau mengubah penyedia penaruhan yang mereka gunakan. Jika pool tertentu menjadi terlalu besar, dana dapat keluar, ditebus, dan dipertaruhkan kembali dengan penyedia yang lebih kecil. Atau, jika Anda telah mengumpulkan cukup banyak ETH, Anda dapat melakukan penaruhan dari beranda. - - - - -Ya, selama validator Anda telah memberikan alamat penarikan. Ini harus diberikan satu kali untuk mengaktifkan penarikan pertama kali, kemudian pembayaran imbalan akan secara otomatis dipicu setiap beberapa hari dengan setiap sapuan validator. - - - - -Tidak, jika validator Anda masih aktif di jaringan, penarikan penuh tidak akan terjadi secara otomatis. Hal ini membutuhkan proses keluar secara manual. - -Setelah validator menyelesaikan proses keluar, dan dengan asumsi akun tersebut memiliki kredensial penarikan, saldo yang tersisa kemudian akan ditarik pada saat pemindaian validator berikutnya. - - - - -Penarikan dirancang untuk didorong secara otomatis, mentransfer ETH apa pun yang tidak secara aktif berkontribusi pada taruhan. Ini termasuk saldo penuh untuk akun yang telah menyelesaikan proses keluar. - -Tidak dimungkinkan meminta ETH yang akan ditarik dengan jumlah tertentu secara manual. - - - - -Operator validator disarankan untuk mengunjungi halaman Penarikan Landasan Peluncuran Penaruhan tempat Anda akan menemukan detail lebih lanjut tentang cara mempersiapkan validator Anda untuk melakukan penarikan. yang dipersiapkan, waktu aksi, dan detail lebih lanjut tentang cara kerja penarikan. - -Untuk mencoba pengaturan Anda di jaringan percobaan terlebih dahulu, kunjungi Landasan Peluncuran Penaruhan Jaringan Percobaan Goerli untuk memulai. - - - - -Tidak. Setelah validator keluar dan saldo penuhnya telah ditarik, setiap dana tambahan yang disetorkan ke validator tersebut akan secara otomatis ditransfer ke alamat penarikan selama penyisiran validator berikutnya. Untuk taruhan ulang ETH, validator baru harus diaktifkan. - - -## Bacaan lebih lanjut {#further-reading} - -- [Penarikan Landasan Peluncuran Penaruhan](https://launchpad.ethereum.org/withdrawals) -- [EIP-4895: Rantai suar mendorong penarikan sebagai operasi](https://eips.ethereum.org/EIPS/eip-4895) -- [Penggembala Kucing Ethereum - Shanghai](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) -- [PEEPanEIP #94: Penarikan ETH yang Dipertaruhkan (Pengujian) dengan Potuz & Hsiao-Wei Wang](https://www.youtube.com/watch?v=G8UstwmGtyE) -- [PEEPanEIP#68: EIP-4895: Rantai Suar mendorong penarikan sebagai operasi bersama Alex Stokes](https://www.youtube.com/watch?v=CcL9RJBljUs) -- [Memahami Saldo Efektif Validator](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/ig/dao/index.md b/src/content/translations/ig/dao/index.md deleted file mode 100644 index 2c2c79d5752..00000000000 --- a/src/content/translations/ig/dao/index.md +++ /dev/null @@ -1,164 +0,0 @@ ---- -title: Otu zoro ezo n'enweghi otu onye nchikwa (DAOs) -description: Nkọwa ihe mere eme nke DAO na Ethereum -lang: ig -template: use-cases -emoji: ":handshake:" -image: ../../../../assets/use-cases/dao-2.png -alt: Nnọchite anya nke DAO na atụ vootu na amụma. -summaryPoint1: Ndị otu nwere obodo na-enweghị onye ndu etiti. -summaryPoint2: Ụzọ dị mma iji imekọ ihe ọnụ na ndị na-amabughị n'ịntanetị. -summaryPoint3: Ebe dị mma iji tinye ego maka otu ihe kpatara ya. ---- - -## Kedụ ihe bụ DAOs? {#what-are-daos} - -DAO bụ mkpokọta enwere blockchain na achị na-arụ ọrụ maka ọrụ nkekọrita. - -DAO na-enye anyị ohere ka anyị na ndị nwere otu obi na-arụkọ ọrụ gburugburu ụwa na-atụkwasịghị onye ndu nwere obi ebere ijikwa ego ma ọ bụ ọrụ. Ọ dịghị CEO nwere ike imefu ego na mkpali ma ọ bụ CFO onye nwere ike imegharia akwụkwọ. Kama, iwu dabere na blockchain tinye n'ime koodù na-akọwapụta otu nzukọ a si arụ ọrụ na otu esi emefu ego. - -Ha mere ụlọ akụ nke ọ nweghị onye nwere ikike ịnweta na-enweghị nkwado nke otu. A na-achịkwa mkpebi site na amụma na ịtụ vootu iji hụ na onye ọ bụla nọ na nzukọ a nwere olu, na ihe niile na-eme n'ụzọ doro anya n'ọnụ n'ọrụ. - -## Kedụ ihe mere anyị ji achọ DAOs? {#why-dao} - -Ịmalite nzukọ na onye na-agunye ego na ego chọrọ ntụkwasị obi dị ukwuu na ndị gị na ha na-arụkọ ọrụ. Mana ọ na-esi ike ịtụkwasị obi na onye gị na ya na-emekọrịta ihe sọ na ịntanetị naanị. Na DAO, ọ dịghị mkpa gị ịtụkwasị onye ọ bụla ọzọ obi n'ime otu ahụ, naanị Koodù DAO, nke bụ 100% na ụzọ doro anya na onye ọ bụla nwere ike ịnwaputa ya. - -Nke a na-emepe ọtụtụ ohere ọhụrụ maka mmekọ ihe ọnụ na nhazi zuru ụwa ọnụ. - -### Ntụnyere {#dao-comparison} - -| DAO | Nzukọ omenala | -| ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ | -| Ọ na-adịkarị larịị, ma nwekwa ọchịchị onye kwuo uche ya nke ọma. | Ọ na-abụkarị usoro ọkwa. | -| Ntuli aka nke ndị otu chọrọ maka mgbanwe ọ bụla a ga emejuputa. | Dabere na usoro, enwere ike ịchọ mgbanwe n'aka naanị otu, ma ọ bụ nwee ike ịnye ntuli aka. | -| Vootu a chịkọtara, wee mejuputa nsonaazụ ya na-akpaghị aka na-enweghị onye nnọchi anya ntụkwasị obi. | Ọ bụrụ na anabata ịtụ vootu, a na-agbakọ votu n'ime, na a ga eji aka nwere chịkwaa nsonaazụ ntuli aka. | -| A na-edozi ọrụ ndị a na-enye na akpaghị aka n'ụzọ enweghị isi (dịka ọmụmaatụ nkesa ego enyemaka). | Na-achọ njikwa mmadụ, ma ọ bụ na-nchịkwa akpaghị aka nke ọma, na-adịkarị mfe ịghọ gbuo ya. | -| Ọrụ niile dị n'uzo doro anya na ọha nille na ahụ ya. | Ihe omume bụ nanị nke onwe, na ọha anaghị ahụ ya. | - -### Ihe atụ DAO {#dao-examples} - -Iji nyere aka mee ka nke a nwee nghọta karịa, nke a bụ ọmụmaatụ ole na ole nke otu ị ga-esi jiri DAO: - -- Ọrụ ebere - ị nwere ike ịnabata onyinye sitere n'aka onye ọ bụla nọ n'ụwa wee mee ntuli aka maka ihe kpatara itinye ego. -- Nnwekọ mkpokọta - ị nwere ike ịzụta akụ anụ ahụ ma ọ bụ dijitalụ yana ndị otu nwere ike ịtụ vootu maka otu esi eji ha. -- Ahịa na onyinye - ị nwere ike ịmepụta ego achụmnta ego nke na-etinye ego ntinye ego na ntuli aka na azụmahịa ị ga-azụ. Enwere ike mechaa kesaa ego akwụghachi n'etiti ndị otu DAO. - -## Kedu ka DAO si arụ ọrụ? {#how-daos-work} - -Ọkpụkpụ azụ nke DAO bụ smart contract ya, nke na-akọwa iwu nke nzukọ ahụ ma na-ejide akụ nke otu. Ozugbo nkwekọrịta ahụ dị na Ethereum, ọ dịghị onye nwere ike ịgbanwe iwu ma e wezụga site na votu. Ọ bụrụ na onye ọ bụla nwaa ime ihe ekpuchighi site na iwu na mgbagha dị na na koodu ya, ọ ga-ada. Na n'ihi na a na-akọwa akụ site na smart contract kwa nke pụtara na ọ dịghị onye nwere ike imefu ego na-enweghị otu nkwado. Nke a pụtara na DAO achọghị ikike etiti. Kama, otu a na-eme mkpebi n'otu oge, a na-enye ikike ịkwụ ụgwọ na-akpaghị aka mgbe ntuli aka gafere. - -Nke a ga-ekwe omume n'ihi na nkwekọrịta smart bụ ihe aghaghị emetuwu aka mgbe ha ga adị na Ethereum. Ị nweghị ike dezie Koodù ahụ (iwu DAO) na-enweghị ndị mmadụ ga achọpụta n'ihi na ọha na ahụ ihe niile. - - - Ọzọ na smart contracts - - -## Ethereum na DAO {#ethereum-and-daos} - -Ethereum bụ ntọala zuru oke maka DAO maka ọtụtụ ihe kpatara ya: - -- A na-ekesa nkwekọrịta nke Ethereum ma guzosie ike maka òtù dị iche iche ịtụkwasị obi na netwọk ahụ. -- Enweghị ike ịgbanwe Koodù nkwekọrịta smart ozugbo ọ dị ndụ, ọbụlagodi ndị nwe ya. Nke a na-enye ohere ka DAO na arụ oru site na iwu e ji mee ya. -- Nkwekọrịta smart nwere ike izipu/nata ego. Na-enweghị nke a, ị ga-achọ onye etiti ntụkwasị obi iji jikwaa ego otu. -- Obodo Ethereum egosila na ha na-emekọ ihe ọnụ karịa asọmpi, na-enye ohere maka omume kachasị mma na usoro nkwado ka ọ pụta ngwa ngwa. - -## Ọchịchị DAO {#dao-governance} - -Enwere ọtụtụ ntule mgbe ị na-achị DAO, dị ka otu ịtụ vootu na atụmatụ si arụ ọrụ. - -### Ndị nnọchi anya {#governance-delegation} - -Ndị nnọchiteanya dị ka ụdị DAO nke ọchịchị onye kwuo uche ya. Ndị na-ejide Token na-enyefe votu nye ndị na-ahọpụta onwe ha ma na-agba mbọ na-elekọta usoro na mara ihe na aga. - -#### Ihe atụ ama ama {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) –Ndị jidere ENS nwere ike inyefe ndị otu obodo tinyere aka ha ọnụ ka ha nọchite anya ha. - -### Ọchịchị azụmahịa akpaaka {#governance-example} - -N'ọtụtụ DAO, a ga-eme azụmahịa na-akpaghị aka ma ọ bụrụ na ọnụ ọgụgụ ndị otu kwesịrị kwenyere vootu. - -#### Ihe atụ ama ama {#governance-example} - -[Nouns](https://nouns.wtf) – Na Nouns DAO, a na-eme azụmahịa na-akpaghị aka ma ọ bụrụ na ezutere vootu ọnụ ọgụgụ ndị otu kwesịrị yana ekwenye na ọtụtụ vootu, ọ bụrụhaala na ndị malitere nabatara ya. - -### Ọchịchị Multisig {#governance-example} - -Mgbe DAO nwere ike ịnwe ọtụtụ puku ndị otu na-eme ntuli aka, ego nwere ike ibi na akpa ego intaneti nke ndị otu obodo 5-20 na-arụsi ọrụ ike na-ekerịta bụ ndị a tụkwasịrị obi na a na egosi njirimara ha( njirimara ọha na eze obodo mara). Mgbe ntuli aka gasịrị, ndị na-edebanye aha multisig na-emezu uche nke obodo. - -## Iwu DAO {#dao-laws} - -Na 1977, Wyoming chepụtara LLC, nke na-echebe ndị ọchụnta ego ma kpachie ụgwọ ha ji. N'oge na-adịbeghị anya, ha sụrụ ụzọ iwu DAO nke na-eguzobe ọnọdụ iwu maka DAO. Ugbu a Wyoming, Vermont, na Virgin Islands nwere iwu DAO na udị ụfọdụ. - -#### Ihe atụ ama ama {#law-example} - -[CityDAO](https://citydao.io) - CityDAO jiri iwu Wyoming DAO iji zụta ala 40 dị nso na Ogige Mba Yellowstone. - -## Ndị otu DAO {#dao-membership} - -Enwere ụdị dị iche iche maka ndị otu DAO. Ndị otu nwere ike ikpebi ka ịtụ vootu si arụ ọrụ yana akụkụ ndị ọzọ dị mkpa nke DAO. - -### Otu dabere na token {#token-based-membership} - -Ọ na-abụkarị enweghị ikike, dabere na akara ejiri. Ọtụtụ n'ime akara Ọchịchị ndị a nwere ike ịre ahịa n'enweghị ikike na mgbanwe agbanweela. A ga-enweta ndị ọzọ site n'inye ego ma ọ bụ ụfọdụ 'ihe akaebe nke ọrụ' ọzọ. Ụzọ ọ bụla, nanị ijide akara ngosi na-enye ohere ịme ntuli aka. - -_A na-ejikarị chịkwaa ụkpụrụ na/ma ọ bụ akara n'onwe ha._ - -#### Ihe atụ ama ama {#token-example} - -[MakerDAO](https://makerdao.com) – token MakerDAO MKR dị ebe niile na mgbanwe ewepụghị isi nke na onye ọ bụla nwere ike zụta n'inwe ike ịtụ vootu na usoro ọdịnihu Onye kere. - -### Otu dabere na-ekekọrịta {#share-based-membership} - -DAO dabere na-ekekọrịta bụ ikike karịa, mana ka mepere emepe. Ndị otu ọ bụla na-atụ anya nwere ike ịnye atụmatụ ịbanye na DAO, na-enyekarị ụtụ nke ụfọdụ uru n'ụdị tokens ma ọ bụ ọrụ. Oke òkè na-anọchite anya ikike ịtụ vootu na onwiwe. Ndị otu nwere ike ị nwere oké nhata oké nke akụ ha pụọ n'oge ọ bụla. - -_A na-eji ya eme ihe maka njikọ chiri anya, ụlọ ọrụ na-ahụ maka mmadụ dịka ndị ọrụ ebere, mkpokọta ndị ọrụ, na klọb itinye ego. Nwere ike chịkwaa usoro na token kwa._ - -#### Ihe atụ ama ama {#share-example} - -[MolochDAO](http://molochdao.com/) – MolochDAO na-elekwasị anya na inye ego ọrụ Ethereum. Ha chọrọ atụmatụ maka ịbụ otu ka ndị otu ahụ wee nwee ike nyochaa ma ị nwere ọkachamara na isi ego dị mkpa iji mee mkpebi ziri ezi gbasara ndị nwere ike inye ego. Ịnweghị ike ịzụta ohere ịnweta DAO na ahịa mepere emepe. - -### Otu dabere na aha ọma {#reputation-based-membership} - -Aha ọma na-anọchi anya ihe akaebe nke ntinye aka ma nye ikike ịtụ vootu na DAO. N'adịghị ka token ma ọ bụ otu dabere na òkè, DAO dabere na aha ọma anaghị ebufe nwe ka ndị ntinye aka. Enweghị ike ịzụta aha ọma, bụ fere ma ọ bụ nyefee ya; Ndị òtù DAO ga-enwetari aha ọma site na ntinye aka. Ịtụ vootu na yinye bụ enweghị ikike na ndị na-atụ anya ndị otu nwere ike ịnyefe atụmatụ ịbanye na DAO ma rịọ ka ha nweta aha ọma na ego dị ka ụgwọ ọrụ maka mgbanwe maka ntinye aka ha. - -_A na-eji ya eme ihe maka mmepe enweghị isi na ọchịchị nke usoro na dapps, mana ọ dabara nke ọma na ụlọ ọrụ dị iche iche dị ka ndị ọrụ ebere, mkpokọta ndị ọrụ, klọb itinye ego, etc._ - -#### Ihe atụ ama ama {#reputation-example} - -[DXdao](https://DXdao.eth.link) – DXdao bụ ụlọ mkpokọta zuru ụwa ọnụ ma na-achịkwa ụkpụrụ na ngwa ewepụtara kemgbe 2019. Ọ na-eme ka ọchịchị dabere na aha ọma na nkwenye holographic iji chịkọta na jikwaa ego, nke pụtara na ọ nweghị onye nwere ike ịzụta ụzọ ha iji metụta ọdịnihu ya. - -## Soro / malite DAO {#join-start-a-dao} - -### Join a DAO {#join-a-dao} - -- [Obodo Ethereum DAO](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [Ndepụta DAOHaus nke DAO](https://app.daohaus.club/explore) -- [Ndepụta Tally.xyz nke DAO](https://www.tally.xyz) - -### Bido DAO {#start-a-dao} - -- [Kpọkọtanụ DAO site n'iji DAOHaus](https://app.daohaus.club/summon) -- [Jiri Tally malite Gọvanọ DAO](https://www.tally.xyz/add-a-dao) -- [Mepụta DAO Aragon kwadoro](https://aragon.org/product) -- [Malite otu obodo](https://colony.io/) -- [Mepụta DAO nwere nkwenye holographic nke DAOstack](https://alchemy.daostack.io/daos/create) - -## Further reading {#further-reading} - -### Akụkọ DAO {#dao-articles} - -- [Gịnị bụ DAO?](https://aragon.org/dao) - [Aragon](https://aragon.org/) -- [Akwụkwọ ntuziaka DAO](https://daohandbook.xyz) -- [Ụlọ nke DAO](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) - [Metagame](https://wiki.metagame.wtf/) -- [Kedu ihe bụ DAO na kedu ihe eji ya eme?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) - [DAOhaus](https://daohaus.club/) -- [Otu esi amalite Obodo Dijitalụ DAO Kwadoro](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) - [DAOhaus](https://daohaus.club/) -- [Kedu ihe bụ DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) - [Coinmarketcap](https://coinmarketcap.com) -- [Gịnị bụ Holographic Consensus?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) -- [DAO abụghị ụlọ ọrụ: ebe ntọhapụ na ụlọ ọrụ kwụụrụ onwe ya metụtara Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) -- [DAOs, DACs, DAs na Ndị Ọzọ: Ntuziaka Okwu Na-ezughị ezu](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Blọọgụ Ethereum](https://blog.ethereum.org) - -### Videos {#videos} - -- [Kedu ihe bụ DAO na crypto?](https://youtu.be/KHm0uUPqmVE) -- [DAO nwere ike wuo obodo?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) - [TED](https://www.ted.com/) diff --git a/src/content/translations/ig/nft/index.md b/src/content/translations/ig/nft/index.md deleted file mode 100644 index 1b5a70685a9..00000000000 --- a/src/content/translations/ig/nft/index.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -title: Tokin na-enweghị ike ịgbanwe (NFT) -description: Nlebaanya na NFT n'Ethereum -lang: ig -template: use-cases -emoji: ":frame_with_picture:" -image: ../../../../assets/infrastructure_transparent.png -alt: A na-egosipụta akara Eth site na hologram. -summaryPoint1: Ụzọ e ji egosipụta ihe ọbụla pụrụ iche dị ka akụ Ethereum. -summaryPoint2: NFT na-enye ndị na-ekepụta ihe ikike karịa ka ọ dị na mbụ. -summaryPoint3: Nke usoro ngwaọrụ kọmputa kwadoro na blọkchen Ethereum. ---- - -## Kedu ihe bụ NFTs? {#what-are-nfts} - -NFT bụ tokin nke pụrụ iche n'onwe ha. NFT ọbụla nwere akụrụngwa dị iche iche (nke e ji egosipụta nnwe) ma ọ dikwa ụkọ. Nke a dị iche na tokin dị ka ERC-20s ebe tokin ọbụla yiri onwe ya ma nwee otu akụrụngwa ('nwere ike igbanwe'). Ị chọghị ịma kpọmkwem ụgwọ dọla i nwere n'akpa ego ịntanetị, n'ihi na ha niile yiri onwe ha ma bụrụ otu ọnụ ahịa. Agbanyeghị, ị _na-eme_ na-elekọta NFTnke i nwere kpọmkwem, n'ihi na ha niile nwere akụrụngwa nkeonwe nke mere ka ya na ndị ọzọ dị iche ('nke apụghị igbanwe'). - -Ọdịiche nke NFT ọbụla na-eme ka akara na apụghị igbanwe ọbụla na-enye aka ịmepụta ihe dị ka nka, mkpokọta, maọbụ ụlọ ebe obibi ndị mmadụ, ebe otu NFT pụrụ iche na-anọchite anya ọtụtụ ihe a na-ahụ anya maọbụ akụrụngwa dijitalụ. Blọkchen Ethereum - o nweghị onye nwere ike ịgbanwee ndekọ nke nnwe maọbụ ṅomịa/ma doo NFT ọhụrụ ka o bidi dịwa. - - - -## Ịntanetị nke akụrụngwa {#internet-of-assets} - -NFTna Ethereum na-edozi ụfọdụ nsogbu nke dị na ịntanetị taa. Dị ka ihe niile na-adịzị na dijitalụ, ọ dị oke mkpa imegharị akụrụngwa nke ihe ana-ahụ anya dị ka ụkọ ihe, ọpụrụiche, nakwa ihe akaebe nke nnwe. n'ụzọ na-enweghị ụlọ ọrụ etiti nke na achịkwa ya. Iji maa atu, na NFT, i nwere ike inwe egwu mp3 na-abụghị maka ngwa egwu otu ụlọ ọrụ kpọmkwem, maọbụ i nwere ike inweta njikwa mgbasa ozi nke i nwere ike ree maọbụ gbanwee, mana onye na-ahụ maka nhiwe enweghị ike ịnapụ gị ya. - -Nke a bụ etu ịntanetị NFT si dị ma a tụnyere ya na ịntanetị ọtụtụ n'ime anyị na-eji taa... - -### Ntụnyere {#nft-comparison} - -| Ịntanetị NFT | Ịntanetị ụbọchị taa | -| ---------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | -| Gị nwe ihe onwunwe nke gị! Naanị gị nwere ike ire maọbụ gbanwee ha. | Ị gbazitere ego n'aka ụfọdụ ndị ụlọ ọrụ. | -| NFT bụ dijitalụ pụrụ iche, o nweghị NFT abụọ bụ otu ihe. | E nweghị ike ịchọpụta nke bụ nke n'etiti nke ezigbo na nke nṅomị. | -| E chedoro nnwe NFT na blọkchen ahụ ka onye ọbụla nwee ike inyocha ya. | A na-echekwa ndekọ onwunwe na sava nke ndị ụlọ ọrụ na-achịkwa - ị ga-ewererịrị okwu ha maka ya. | -| NFT bụ ngwa kọmputa n'Ethereum. Nke a pụtara na ọ ga-adị mfe iji ha na ngwa kọmputa ndị ọzọ nakwa dị n'Ethereum! | Ndi ụlọ ọrụ nwere akụrụngwa dijitalụ na-achọkarị akụrụngwa "ihe nhiwe" nke ha. | -| Ndị nkepụta nwere ike ire ihe nkepụta ha ebe ọbụla ma nwee ikike ire ahịa n'ahịa mba. | Ndị nkepụta na-adabere n'akụrụngwa na nkesa nke nhiwe ha na-eji. Ndị a na-adịkarị n'okpuru usoro ojiji yana mgbochi mpaghara. | -| Ndị nkepụta NFT nwere ike jigide ikike onwunwe nyere ihe ha kepụtara, ma mee ka e nwee ntụkwasị obi na ngwa NFT. | Nhiwe, dị ka ọrụ ndị na-eme ka e gee egwu, na-ejigide ọtụtụ nhiwe nke sitere n'ire ahịa. | - -## Kedu ka NFT si arụ ọrụ? {#how-nfts-work} - -Dị ka tokin ọbụla e nyere n'Ethereum, ngwa kọmputa na-enye NFT. Ngwa kọmputa na-ekwekọrọ n'otu n'ime usoro NFT (na-abụkarị ERC-721 maọbụ ERC-1155) nke na-akọwapụta ọrụ ngwa ahụ nwere. Ngwa ahụ nwere ike imepụta ('mint') NFT ma kenye ha n'aka onye nwe ya. A kọwara ikike nnwe na ngwa nkwekọrịta site n'idepụta NFT gaa na adreesị nke ọ bụ. NFT ahụ nwere Njirimara nkwa data meta nke metụtara ya nke mekwara ka tokin ahụ dịrị onwe ya iche. - -Mgbe mmadụ keputa maọbụ mepụta NFT, ha na-arụ ọrụ na ngwa kọmputa na-enye NFT ọbụla adreesị. E chedoro ozi a n'ebe nchedo ngwa ahụ, nke so na blọkchen. Onye nkepụta ngwa kọmputa ahụ nwere ike ide ihe ọzọ n'ime ngwa ahụ, iji maa atụ, ibelata mkpokọta ọnụọgụ nnyefe maọbụ ịkọpụta ụgwọ a ga-akwụ onye nkepụta mgbe ọbụla e nyefere tokin. - -## Kedu ihe a na-eji NFT eme? {#nft-use-cases} - -E ji NFT eme ọtụtụ ihe, gụnyere: - -- igosi na ị gara mmemme -- gosikwa na ị gụchara akwụkwọ -- ihe onwunwe maka egwuregwu -- ihe nka dijitalụ -- iji tokin goro akụ a na-ahụ anya -- igosi njirimara ịntanetị gị -- inweta ikike maka ịhụ ihe dị na ya -- inweta tiketi -- aha ngalaba ịntanetị na-enweghị onye isi -- ihe mbinye ego na DeFi - -Eleghị anya ị bụ onye omenka chọrọ iji NFT kesaa ọrụ ha, na-emeghị ka njikwa funarịa gị ma jirikwa ihe nrita gị chụọrọ ndị ọrụ etiti aja. I nwere ike mepụtakwa ngwa ọhụrụ ma kwuo NFT ole, akụrụngwa ha nakwa akara njikọ a ga-eji nweta ha na netwọk ọ bụ. Dị ka onye mmeputa, i nwekwara ike itinye na ngwa kọmputa ahụ ụgwọ ole a ga-akwụ gị (iji maa atụ, nye onye nwe ngwa kọmputa pasent 5 nke ego ole erere mgbe ọbụla e nyefere NFT). I nwekwara ike igosi na i mepụtara NFT n'ihi na ọ bụ gị nwe akpa ego ịntanetị ahụ dị na ngwa kọmputa ahụ. Ndị na-azụ gị ahịa nwekwara ike igosipụta na ha nwere ezigbo NFT sitere na mkpokọta gị maka tokin ngwa kọmputa gị metụtara adreesị tokin ha. Ha nwere ike iji ya n'ihe metụtara Ethereum, ma nwee ntụkwasị obi n'ịdị mma ya. - -Maọbụ tụlee tiketi maka maka mmemme egwuregwu. Dị ka etu onye nhazi ihe mmemme ga-esi nwee ike ịhọrọ ọtụtụ tiketi ọ ga-ere, onye nkepụta NFT nwere ike kpebie nṅomị ole ga-adi. Oge ụfọdụ ndị a bụ nṅomị yiri ibe ya, dị ka Tiketi Nnabata Ọha 5000. Oge ụfọdụ, a na-ekepụta ọtụtụ ndị yiri onwe ha, mana nke ọbụla dịtụ iche, dị ka tiketi nwere oche e kenyere ya. E nwere ike ịzụta ihe ndị a ma rekwaa ha na-akwụghị ndị na-ahụ maka tiketi ụgwọ ma onye na-azụ ahịa ji n'aka mgbe niile na tiketi ahụ bụ nke ezigbo ya site n'inyocha adreesị ngwa kọmputa. - -N'ethereum.org, a na-eji NFT egosi na ndị mmadụ enyela aka na nzube GitHub anyị maọbụ zaa oku, ma anyị enwetala aha ngalaba NFT aha. Ọ bụrụ na i nyere aka n'ethereum.org, i nwere ikwu maka isonye gị na POAP NFT. Ụfọdụ ebe nzube kripto JIRILA tiketi POAP. [Ihe ndị ọzọ na ntinye aka](/contributing/#poap). - -![POAP ethereum.org](./poap.png) - -Webụsaịtị a nwekwara aha ngalaba ọzọ nke NFT kwadoro, **ehereum.eth**. A na-eji `.org` naanị aha ngalaba onye nweta sistemụ achịzi adreesị anyị (DNS), ebe ethereum`.eth` e debenyere Ethereum site n'Aha Ọrụ Ethereum ahụ (ENS). Ọ bụ kwa anyị nwe ma na-ejikwa ya. [Lelee ndekọ ENS anyị](https://app.ens.domains/name/ethereum.eth) - -[Ihe ndị ọzọ n'Ethereum](https://app.ens.domains) - - - -### Nchekwa NFT {#nft-security} - -Nchekwa Ethereum na-esi n'ihe akaebe-nke-itinye ego abịa. E mere sistemụ a ka o wee belata ajọ akpamagwa, wee mee ka Ethereum ghara ịna-egbanwe. Nke a bụ ihe na-eme ka NFT dị ire. Ozugbo blọk azụmahịa NFT dị na ya bịara na njedebe, ọ ga-eri onye na-ezu ohi nde kwuru nde Ethereum igbanwe ya. Onye ọbụla na-eji ngwa Ethereum nwere ike ịchọpụta na a na-achọ aka itinye aka ná NFT n'ụzọ n'ezighị ezi, ma a ga-atakwa onye ahụ ahụhụ wee chụpụkwa ya. - -Okwu nchekwa metụtara NFT na-abukari ihe gbasara ozi maka iji aghụghọ nara mmadụ ihe, wepụta ngwa kọmputa maọbụ njehie onye ojiji (dị ka iwepụta igodo nkeonwe), na-eme ezigbo nchekwa akap ego ịntanetị taa akpụ nyere ndị nwe NFT. - - - Ihe ndị i ọzọ na nchekwa - - -## Further reading {#further-reading} - -- [ Ntuziaka onye mbido na NFT ohuru](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, Jenuwari 2020_ -- [Nnyocha EtherscanNft](https://etherscan.io/nft-top-contracts) -- [Ọkọlọtọ tokin ERC-721](/developers/docs/standards/tokens/erc-721/) -- [Ọkọlọtọ tokin ERC-1155](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/it/community/support/index.md b/src/content/translations/it/community/support/index.md deleted file mode 100644 index b62b4562136..00000000000 --- a/src/content/translations/it/community/support/index.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -title: Supporto Ethereum -description: Ottenere supporto nell'ecosistema Ethereum. -lang: it ---- - -# Supporto Ethereum {#support} - -## Supporto ufficiale di Ethereum {#official-support} - -Stai cercando il supporto ufficiale di Ethereum? La prima cosa che dovresti sapere è che Ethereum è decentralizzato. Questo significa che nessuna organizzazione centrale, entità o persona possiede Ethereum, e per questo non esistono canali di supporto ufficiali. - -Comprendere la natura decentralizzata di Ethereum è fondamentale perché chiunque affermi di essere il supporto ufficiale di Ethereum probabilmente sta cercando di truffarti! La migliore protezione contro i truffatori sta nell'educare sé stessi prendendo sul serio la sicurezza. - - - Sicurezza di Ethereum e prevenzione delle truffe - - - - Impara i fondamenti di Ethereum - - -Nonostante la mancanza di supporto ufficiale, molti gruppi, community e progetti nell'intero ecosistema di Ethereum sono lieti di aiutare e puoi trovare molte informazioni e risorse utili su questa pagina. Hai altre domande? Unisciti al [Discord di ethereum.org](/discord/) e faremo il possibile per aiutarti. - -## Supporto portafoglio {#wallet-support} - -Hai problemi con il tuo portafoglio? La maggior parte dei portafogli dispone di team di supporto dedicati che possono aiutare: - -- [MetaMask](https://metamask.zendesk.com/hc/) -- [Argent](https://support.argent.xyz/hc/) -- [MyEtherWallet](https://help.myetherwallet.com/) - -_Questo non è un elenco esaustivo. Hai bisogno di aiuto nel trovare il supporto per un portafoglio specifico? Unisciti a [server Discord di ethereum.org](https://discord.gg/ethereum-org) e proveremo ad aiutarti._ - -Cerchi un portafoglio Ethereum? [Esplora il nostro elenco completo di portafogli Ethereum](/wallets/find-wallet/). - -## Costruire dapps {#building-support} - -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) -- [Web3 University](https://www.web3.university/) -- [LearnWeb3](https://discord.com/invite/learnweb3) - -Puoi anche trovare la documentazione e le guide di sviluppo nella nostra sezione [risorse per sviluppatore Ethereum](/developers/). - -### Strumenti {#dapp-tooling} - -La tua domanda riguarda un particolare strumento, progetto o libreria? La maggior parte dei progetti hanno server di chat o forum dedicati al supporto. - -Ecco alcuni esempi più diffusi: - -- [Solidity](https://gitter.im/ethereum/solidity/) -- [ethers.js](https://discord.gg/6jyGVDK6Jx) -- [web3.js](https://discord.gg/GsABYQu4sC) -- [Hardhat](https://discord.gg/xtrMGhmbfZ) -- [Truffle](https://discord.gg/8uKcsccEYE) -- [Alchemy](http://alchemy.com/discord) -- [Tenderly](https://discord.gg/fBvDJYR) - -## Eseguire un nodo {#node-support} - -Se stai eseguendo un nodo o un validatore, ecco alcune community che sono dedicate ad aiutarti ad iniziare. - -- [EthStaker discord](https://discord.io/ethstaker) -- [EthStaker reddit](https://www.reddit.com/r/ethstaker) - -La maggior parte dei team che costruiscono client di Ethereum hanno anche spazi dedicati, rivolti al pubblico, dove è possibile ottenere supporto e fare domande. - -### Client di esecuzione {#execution-clients} - -- [Geth](https://discord.gg/FqDzupGyYf) -- [Nethermind](https://discord.gg/YJx3pm8z5C) -- [Besu](https://discord.gg/p8djYngzKN) -- [Erigon](https://github.com/ledgerwatch/erigon/issues) - -### Client di consenso {#consensus-clients} - -- [Prysm](https://discord.gg/prysmaticlabs) -- [Nimbus](https://discord.gg/nSmEH3qgFv) -- [Lighthouse](https://discord.gg/cyAszAh) -- [Teku](https://discord.gg/7hPv2T6) -- [Lodestar](https://discord.gg/aMxzVcr) - -Puoi anche [imparare ad eseguire un nodo qui](/developers/docs/nodes-and-clients/run-a-node/). - -## Domande frequenti {#faq} - -#### Ho inviato ETH al portafoglio sbagliato {#wrong-wallet} - -Una transazione inviata in Ethereum è irreversibile. Sfortunatamente, se hai inviato ETH al portafoglio sbagliato, non c'è modo di recuperare questi fondi. Nessuna organizzazione centrale, entità o persona possiede Ethereum, il che significa che nessuno può annullare le transazioni. Pertanto, è fondamentale ricontrollare sempre le tue transazioni prima di inviarle. - -#### Come posso reclamare il mio giveaway Ethereum? {#giveaway-scam} - -I giveaway Ethereum sono truffe progettate per rubare il vostro ETH. Non farti tentare da offerte che sembrano troppo belle per essere vere - se invii ETH a un indirizzo giveaway, non riceverai un giveaway e non potrai recuperare i tuoi fondi. - -[Maggiori informazioni sulla prevenzione delle truffe](/security/#common-scams) - -#### La mia transazione è bloccata {#stuck-transaction} - -Le transazioni su Ethereum a volte possono bloccarsi se hai inviato una commissione sulle transazioni inferiore a quella richiesta per la domanda di rete. Molti portafogli prevedono un'opzione per reinviare la stessa transazione con una commissione sulle transazioni più elevata per consentire l'elaborazione. In alternativa, è possibile annullare una transazione in sospeso inviando una transazione al proprio indirizzo e utilizzando lo stesso nonce della transazione in sospeso. - -[Come velocizzare o annullare una transazione in sospeso su MetaMask](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) - -[Come annullare le transazioni Ethereum in sospeso](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) - -#### Come posso fare mining in Ethereum? {#mining-ethereum} - -Il mining su Ethereum non è più possibile. Il mining è stato disattivato quando Ethereum è passato dal proof-of-work al proof-of-stake. Ora, invece dei miner, Ethereum ha i validatori. I validatori mettono ETH in staking e ricevono ricompense per proteggere la rete. - -#### Come divento uno staker/validatore? {#become-validator} - -Per diventare un validatore, devi mettere in staking 32 ETH nel contratto di deposito di Ethereum e configurare un nodo del validatore. Ulteriori informazioni sono disponibili sulle nostre [pagine di staking](/staking) e al [launchpad di staking](https://launchpad.ethereum.org/). diff --git a/src/content/translations/it/contributing/translation-program/translators-guide/index.md b/src/content/translations/it/contributing/translation-program/translators-guide/index.md deleted file mode 100644 index fe7969e34a5..00000000000 --- a/src/content/translations/it/contributing/translation-program/translators-guide/index.md +++ /dev/null @@ -1,293 +0,0 @@ ---- -title: Guida per i traduttori -lang: it -description: Istruzioni e suggerimenti per i traduttori di ethereum.org ---- - -# Guida di stile per la traduzione di ethereum.org {#style-guide} - -La guida di stile per la traduzione di ethereum.org contiene alcune linee guida, istruzioni e consigli più importanti per i traduttori che ci aiutano a localizzare il sito web. - -Questo documento funge da guida generale e non è specifico per nessuna lingua. - -In caso di domande, suggerimenti o feedback, non esitare a contattarci all'indirizzo translations@ethereum.org, inviare un messaggio a @ethdotorg su Crowdin oppure [unisciti al nostro Discord](https://discord.gg/ethereum-org), dove puoi inviarci un messaggio nel canale #traduzioni o contattare un membro del team. - -### Usare Crowdin {#using-crowdin} - -Puoi trovare le istruzioni di base su come partecipare al progetto in Crowdin e su come utilizzare l'editor online di Crowdin nella pagina del [Programma di traduzione](/contributing/translation-program/#how-to-translate). - -Se vuoi saperne di più su Crowdin e utilizzare alcune delle sue funzionalità avanzate, la [knowledge base di Crowdin](https://support.crowdin.com/online-editor/) contiene molte guide approfondite e panoramiche su tutte le funzionalità di Crowdin. - -### Cogliere l'essenza del messaggio {#capturing-the-essence} - -Quando traduci contenuti per ethereum.org, evita traduzioni letterali. - -È importante che le traduzioni colgano l'essenza del messaggio. Questo potrebbe significare riformulare alcune frasi o utilizzare traduzioni descrittive, invece di tradurre parola per parola. - -Le varie lingue hanno diverse regole grammaticali, convenzioni stilistiche o sintattiche. Quando traduci, presta attenzione a come sono strutturate le frasi nella lingua di destinazione ed evita di tradurre letteralmente l'originale in inglese, poiché ciò può tradursi in una sintassi e in una leggibilità delle frasi scarse. - -Invece di tradurre il testo di partenza parola per parola, consigliamo di leggere l'intera frase e di adattarla alle convenzioni della lingua di destinazione. - -### Formale vs. informale {#formal-vs-informal} - -Usiamo la forma di cortesia, sempre educata e appropriata per tutti i visitatori. - -L'uso della forma di cortesia ci consente di evitare di sembrare non ufficiali od offensivi e funziona indipendentemente dall'età e dal sesso del visitatore. - -La maggior parte delle lingue indoeuropee e afroasiatiche utilizzan pronomi personali di seconda persona specifici in base al sesso, che distinguono tra maschio e femmina. Quando ci rivolgiamo all'utente o utilizziamo pronomi possessivi, possiamo di evitare di indovinare il sesso del visitatore, poiché la forma di cortesia è generalmente applicabile e coerente, indipendentemente dal genere dell'interlocutore. - -### Vocabolario e significato semplici e chiari {#simple-vocabulary} - -Il nostro obiettivo è quello di rendere i contenuti sul sito comprensibili a quante più persone possibile. - -Nella maggior parte dei casi, ciò può essere ottenuto efficacemente utilizzando parole semplici e brevi, di facile comprensione. Se esistono più traduzioni possibili per una certa parola nella tua lingua con lo stesso significato, l'opzione migliore è molto spesso la parola più breve che riflette chiaramente il significato. - -### Sistema di scrittura {#writing-system} - -Ethereum.org è disponibile in diverse lingue, che utilizzano sistemi di scrittura (o script di scrittura) alternativi a quello latino. - -Tutti i contenuti dovrebbero essere tradotti utilizzando il sistema di scrittura corretto per la lingua specifica e non dovrebbero includere parole scritte con caratteri latini. - -Nel tradurre i contenuti, si dovrebbe fare in modo che le traduzioni siano coerenti e non includano caratteri latini. - -Un equivoco comune è che "Ethereum" debba essere scritto sempre in caratteri latini. Questa è un'idea errata: occorre utilizzare l'ortografia di Ethereum nativa in base alla lingua (ad es. 以太坊 in cinese, إيثيريوم in arabo, ecc.). - -**Quanto sopra non si applica alle lingue in cui i nomi propri non vanno generalmente tradotti.** - -### Tradurre i metadati della pagina {#translating-metadata} - -Alcune pagine contengono metadati sulla pagina, come 'title', 'lang', 'description', 'sidebar', ecc. - -Quando carichiamo le nuove pagine su Crowdin, nascondiamo i contenuti da non tradurre. Ciò significa che tutti i metadati visibili ai traduttori su Crowdin dovrebbero essere tradotti. - -Invitiamo a prestare particolare attenzione nella traduzione di stringhe il cui testo di origine è "en". Questa sigla rappresenta la lingua in cui la pagina è disponibile e dovrebbe essere tradotta con il [codice linguistico ISO della lingua di destinazione](https://www.andiamo.co.uk/resources/iso-language-codes/). Queste stringhe dovrebbero sempre essere tradotte usando caratteri latini, non lo script di scrittura nativo della lingua di destinazione. - -Se non sei sicuro/a di quale codice linguistico usare, puoi cercare nella memoria di traduzione su Crowdin oppure individuare il codice linguistico per la tua lingua nell'URl della pagina, nell'editor online di Crowdin. - -Alcuni esempi di codici linguistici per le lingue più diffuse: - -- Arabo - ar -- Cinese Semplificato - zh -- Francese - fr -- Hindi - hi -- Spagnolo - es - -### Titoli di articoli esterni {#external-articles} - -Alcune stringhe contengono titoli di articoli esterni. Gran parte delle nostre pagine di documentazione per sviluppatori contiene link ad articoli esterni, per ulteriori letture. Le stringhe contenenti titoli di articoli devono esser tradotte, indipendentemente dalla lingua dell'articolo, per assicurare un'esperienza dell'utente più coerente per i visitatori della pagina nella propria lingua. - -Di seguito puoi trovare alcuni esempi di come queste stringhe appaiono ai traduttori e come identificarle (i link agli articoli si trovano prevalentemente in fondo a queste pagine, nella sezione "Ulteriori letture"): - -![Titoli di articoli in sidebar.png](./article-titles-in-sidebar.png) ![Titoli di articoli in editor.png](./article-titles-in-editor.png) - -### Avvisi di Crowdin {#crowdin-warnings} - -Crowdin offre una funzionalità integrata che avvisa i traduttori quando stanno per commettere un errore. Crowdin ti avviserà automaticamente di questo prima di salvare la tua traduzione se dimentichi di includere un tag dal testo sorgente, se traduci elementi che non dovrebbero essere tradotti, se inserisci più spazi consecutivi, dimentichi la punteggiatura finale, ecc. Se visualizzi un avviso simile a questo, ti invitiamo a tornare indietro e ricontrollare la traduzione inserita. - -**Non ignorare mai questi avvisi, poiché solitamente significano che c'è qualcosa che non va o che manca una parte fondamentale del testo di partenza.** - -Un esempio di avviso di Crowdin quando dimentichi di aggiungere un tag nella tua traduzione: ![Esempio di avviso di Crowdin](./crowdin-warning-example.png) - -### Gestire tag e frammenti di codice {#dealing-with-tags} - -Molti dei contenuti di origine contengono tag e variabili, evidenziati in giallo nell'editor di Crowdin. Questi svolgono diverse funzioni e dovrebbero essere trattati correttamente. - -**Impostazioni di Crowdin** - -Per semplificare la gestione dei tag e copiarli direttamente dal testo di partenza, consigliamo di modificare le tue impostazioni nell'editor di Crowdin. - -1. Apri le impostazioni ![Come aprire le impostazioni nell'editor](./editor-settings.png) - -2. Scorri verso il basso fino alla sezione "HTML tags displaying” - -3. Seleziona "Hide"![Seleziona "Hide"](./hide-tags.png) - -4. Fai clic su "Save" - -Selezionando quest'opzione, il testo del tag completo non sarà più mostrato e sarà sostituito da un numero. Durante la traduzione, facendo clic su questo tag si copierà automaticamente lo stesso tag nel campo di traduzione. - -**Link** - -Potresti notare link completi a pagine su ethereum.org o altri siti web. - -Dovrebbero essere identici a quelli originali e non essere modificati o tradotti. Se traduci un link o lo modifichi in qualche modo, anche solo rimuovendone una parte, come un backslash (/), lo renderai corrotto o inutilizzabile. - -Il modo migliore per gestire i collegamenti è copiarli direttamente dal testo di partenza, facendo clic su di essi o utilizzando il pulsante "Copy Source" (Alt+C). - -![Esempio di link.png](./example-of-link.png) - -I link appaiono nel testo di partenza anche sotto forma di tag (cioè <0> ). Se passi sul tag, l'editor ne mostrerà il contenuto completo; talvolta questi tag rappresentano dei link. - -È molto importante copiare i link dal testo di partenza senza modificarne l'ordine. - -Se l'ordine dei tag viene modificato, il link corrispondente risulterà corrotto. - -![Esempio di link all'interno di tag.png](./example-of-links-inside-tags.png) - -**Tag e variabili** - -Il testo di partenza può contenere diversi tipi di tag, che dovrebbero sempre essere copiati dalla sorgente e mai modificati. Analogamente a quanto detto sopra, anche l'ordine di questi tag nella traduzione dovrebbe rimanere identico a quello del testo originale. - -I tag contengono sempre un tag d'apertura e uno di chiusura. In gran parte dei casi, il testo tra i tag d'apertura e di chiusura va tradotto. - -Esempio: ``Decentralizzato`` - -`` - _Tag d'apertura che rende il testo in grassetto_ - -Decentralizzato - _Testo traducibile_ - -`` - _Tag di chiusura_ - -![Esempio di tag "forti".png](./example-of-strong-tags.png) - -I frammenti di codice vanno trattati in maniera leggermente diversa rispetto agli altri tag, poiché contengono codice che non va tradotto. - -Esempio: ``nonce`` - -`` - _Tag d'apertura, contenente un frammento di codice_ - -nonce - _Testo non traducibile_ - -`` - _Tag di chiusura_ - -![Esempio di frammenti di codice.png](./example-of-code-snippets.png) - -Il testo di partenza contiene anche tag abbreviati, contenenti solo numeri, il che significa che la loro funzione non è immediatamente ovvia. Puoi passare su questi tag per vedere esattamente quale scopo assolvono. - -Nell'esempio seguente, passando con il mouse sul <0> tag puoi vedere che rappresenta `` e contiene un frammento di codice, quindi il contenuto non va tradotto. - -![Esempio di tag ambigui.png](./example-of-ambiguous-tags.png) - -### Formule/abbreviazioni brevi vs. complete {#short-vs-full-forms} - -Nel sito web sono usate molte abbreviazioni, es. dapp, NFT, DAO, DeFi, ecc. Queste abbreviazioni sono comunemente usate in inglese e gran parte dei visitatori del sito web ne è a conoscenza. - -Dal momento che di solito non esistono traduzioni attestate in altre lingue, il modo migliore per trattare questi termini e altri simili è quello di fornire una traduzione descrittiva della forma estesa e aggiungere l'abbreviazione inglese tra parentesi. - -Non tradurre queste abbreviazioni, poiché la maggior parte delle persone non le conoscerebbe e le versioni localizzate non avrebbero molto senso per la maggior parte dei visitatori. - -Esempio di come tradurre le dapp: - -- Applicazioni decentralizzate (dApp) → _Tradotto integralmente (abbreviazione tra parentesi)_ - -### Termini senza traduzioni attestate {#terms-without-established-translations} - -Alcuni termini potrebbero non avere traduzioni attestate in altre lingue e sono ampiamente noti con il termine originale in inglese. Tali termini includono principalmente concetti recenti, come Proof of Work, Proof of Stake, Beacon Chain, staking, ecc. - -Sebbene la traduzione di questi termini possa sembrare innaturale, poiché la versione inglese è comunemente usata anche in altre lingue, si consiglia vivamente di tradurli. - -Traducendoli, sentiti libero di essere creativo, usa traduzioni descrittive o semplicemente traducili in maniera letterale. - -**Il motivo per cui la maggior parte dei termini dovrebbe essere tradotta, invece di lasciarne alcuni in inglese, è il fatto che questa nuova terminologia diventerà più diffusa in futuro, man mano che più persone inizieranno a utilizzare Ethereum e le relative tecnologie. Se vogliamo coinvolgere più persone da tutto il mondo in questo spazio, dobbiamo fornire una terminologia comprensibile in quante più lingue possibili, anche se dobbiamo crearla noi stessi.** - -### Pulsanti e CTA {#buttons-and-ctas} - -Il sito web contiene numerosi pulsanti, che dovrebbero essere tradotti in modo diverso dagli altri contenuti. - -Il testo del pulsante può essere identificato visualizzando gli screenshot contestuali, associati a gran parte delle stringhe, o controllando il contesto nell'editor, che include l'espressione "button". - -Le traduzioni dei pulsanti dovrebbero essere il più possibile brevi, onde evitare mancate corrispondenze di formattazione. Inoltre, le traduzioni dei pulsanti dovrebbero essere in forma imperativa, ovvero indicare un comando o una richiesta. - -![Come trovare un pulsante.png](./how-to-find-a-button.png) - -### Tradurre per l'inclusività {#translating-for-inclusivity} - -I visitatori di ethereum.org provengono da tutto il mondo e da contesti sociali diversi. La lingua sul sito web deve quindi essere neutrale, accogliente per tutti e non esclusiva. - -A tale riguardo, un aspetto importante è la neutralità di genere. Questa è facilmente ottenibile usando uno stile formale ed evitando parole specifiche per il genere nelle traduzioni. - -Un'altra forma di inclusività consiste nel tentare di tradurre per un pubblico globale, non specifico a paesi, razze o regioni. - -Infine, la lingua dovrebbe essere adatta a qualsiasi pubblico e fascia di età. - -## Traduzioni specifiche in base alla lingua {#language-specific-translations} - -Quando si traduce è importante seguire le regole grammaticali, le convenzioni e la formattazione utilizzate nella propria lingua, anziché copiare quelle del testo originale. Il testo d'origine segue le regole e convenzioni della grammatica inglese, non applicabili a molte altre lingue. - -Dovresti essere a conoscenza delle regole per la tua lingua e tradurre di conseguenza. Se ti occorre aiuto, contattaci e ti aiuteremo a trovare risorse utili su come questi elementi dovrebbero essere usati nella tua lingua. - -Alcuni esempi di aspetti a cui prestare particolare attenzione: - -### Punteggiatura, formattazione {#punctuation-and-formatting} - -**Maiuscole/minuscole** - -- Esistono notevoli differenze nell'uso delle maiuscole/minuscole nelle varie lingue. -- In inglese, è comune usare la maiuscola per tutte le parole di titoli e nomi, mesi e giorni, nomi di lingue, festività, ecc. In molte altre lingue, questo è sbagliato dal punto di vista grammaticale, in quanto vigono regole diverse sull'uso delle maiuscole/minuscole. -- Alcune lingue hanno anche regole sull'uso della maiuscola per pronomi personali, sostantivi e alcuni aggettivi, che in inglese vengono scritti con l'iniziale minuscola. - -**Spaziatura** - -- Le regole ortografiche definiscono l'uso degli spazi per ogni lingua. Poiché gli spazi sono usati ovunque, queste regole sono alcune delle più distinte e gli spazi sono alcuni degli elementi maggiormente tradotti in modo improprio. -- Alcune differenze comuni nella spaziatura tra l'inglese e altre lingue: - - Spazio prima dell'unità di misura e delle valute (es. USD, EUR, kB, MB) - - Spazio prima dei segni di grado (es. °C, ℉) - - Spazio prima di certi segni di punteggiatura, specialmente i puntini di sospensione (…) - - Spazio prima e dopo le barre (/) - -**Elenchi** - -- Ogni lingua ha una diversa e complessa serie di regole per la redazione di elenchi. Questi possono differire significativamente rispetto all'inglese. -- In alcune lingue, la prima parola di ogni nuova riga deve essere maiuscola, mentre in altre le nuove righe devono iniziare con lettere minuscole. Molte lingue hanno anche regole differenti sull'uso delle maiuscole/minuscole negli elenchi, a seconda della lunghezza di ogni riga. -- Lo stesso si applica alla punteggiatura dei vari punti dell'elenco. La punteggiatura finale negli elenchi può essere un punto (**.**), una virgola (**,**) o un punto e virgola (**;**), a seconda della lingua. - -**Virgolette** - -- Le varie lingue usano tipi diversi di virgolette. Copiare semplicemente le virgolette inglesi dal segmento originale spesso è sbagliato. -- Tra i tipi più comuni di virgolette troviamo: - - „testo di esempio“ - - ‚testo di esempio’ - - »testo di esempio« - - “testo di esempio” - - ‘testo di esempio’ - - «testo di esempio» - -**Trattini lunghi e corti** - -- In inglese si utilizza un trattino corto (-) per unire parole o parti diverse di una parola e un trattino lungo (–) per indicare un intervallo o una pausa. -- Molte lingue hanno regole diverse per l'uso di trattini corti e lunghi, che dovrebbero essere osservate. - -### Formati {#formats} - -**Numeri** - -- La differenza principale nella scrittura dei numeri nelle varie lingue riguarda il separatore usato per decimali e migliaia. Per le migliaia, può essere un punto, una virgola o uno spazio. Analogamente, alcune lingue usano un punto decimale, mentre altre usano una virgola. - - Alcuni esempi di grandi numeri: - - Inglese – **1,000.50** - - Spagnolo – **1.000,50** - - Francese – **1 000,50** -- Un'altra considerazione importante sulla traduzione dei numeri riguarda il segno percentuale. Può essere scritto in diversi modi: **100%**, **100 %** o **%100**. -- Infine, i numeri negativi possono esser scritti diversamente, a secnda della lingua: -100, 100-, (100) o [100]. - -**Date** - -- Traducendo le date, esistono numerose considerazioni e differenze basate sulla lingua. Ciò include il formato della data, il separatore, l'uso di maiuscole e minuscole e gli zeri iniziali. Esistono anche differenze tra le date scritte per esteso e le date numeriche. - - Alcuni esempi di formati di data diversi: - - Inglese UK (gg/mm/aaaa) – 1st January, 2022 - - Inglese US (mm/gg/aaaa) – January 1st, 2022 - - Cinese (aaaa-mm-gg) – 2022 年 1 月 1 日 - - Francese (gg/mm/aaaa) – 1er janvier 2022 - - Italiano (gg/mm/aaaa) – 1º gennaio 2022 - - Tedesco (gg/mm/aaaa) – 1. Januar 2022 - -**Valute** - -- Tradurre le valute può essere complicato, a causa dei diversi formati, convenzioni e conversioni. Come regola generale, consigliamo di lasciare la valuta riportata nel testo originale. Puoi aggiungere la tua valuta locale e la conversione tra parentesi, per comodità del lettore. -- Le principali differenze nella scrittura delle valute nelle varie lingue riguardano il posizionamento dei simboli, l'uso di virgole o punti decimali, la spaziatura e l'uso di abbreviazioni o simboli. - - Posizionamento del simbolo: $100 o 100$ - - Virgole vs. punti decimali: 100,50$ o 100.50$ - - Spaziatura: 100$ o 100 $ - - Abbreviazioni vs. simboli: 100 $ o 100 USD - -**Unità di misura** - -- Come regola generale, consigliamo di lasciare le unità di misura come appaiono nel testo originale. Se il tuo paese usa un sistema differente, puoi includere la conversione tra parentesi. -- Oltre alla localizzazione delle unità di misura, è importante notare anche il diverso trattamento di tali unità nelle varie lingue. La differenza principale riguarda la spaziatura tra numero e unità, che può variare in base alla lingua. Esempi di ciò includono: 100kB o 100 kB, 50°F o 50 °F. - -### Conclusioni {#conclusion} - -Tradurre ethereum.org è una grande opportunità per conoscere i diversi aspetti di Ethereum. - -Quando traduci, cerca di non andare troppo in fretta. Prendila con calma e goditi l'esperienza! - -Grazie per aver partecipato al Programma di Traduzione e per averci aiutato a rendere il sito web accessibile a un pubblico più ampio. La comunità di Ethereum è globale e siamo felici che tu ne faccia parte! diff --git a/src/content/translations/it/dao/index.md b/src/content/translations/it/dao/index.md deleted file mode 100644 index 2e9b5b14d55..00000000000 --- a/src/content/translations/it/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: Organizzazioni autonome decentralizzate (DAO) -description: Una panoramica delle DAO su Ethereum -lang: it -template: use-cases -emoji: ":handshake:" -sidebarDepth: 3 -image: ../../../../assets/use-cases/dao-2.png -alt: Rappresentazione di una votazione DAO su una proposta. -summaryPoint1: Community posseduta dai membri, prive di leadership centralizzata. -summaryPoint2: Un modo sicuro per collaborare con sconosciuti su Internet. -summaryPoint3: Un luogo sicuro per impegnare fondi in una causa specifica. ---- - -## Cosa sono le DAO? {#what-are-daos} - -Una DAO è un'organizzazione posseduta collettivamente e governata dalla blockchain, che opera per realizzare una missione condivisa. - -Le DAO ci consentono di lavorare con persone con la stessa mentalità provenienti da tutto il mondo, senza doversi fidare di un capo benevolo, per la gestione di fondi od operazioni. Non esiste alcun CEO che possa spendere i fondi secondo i propri capricci, o CFO che possa manipolare i libri contabili. Invece, le regole basate sulla blockchain, integrate nel codice, definiscono il funzionamento dell'organizzazione e come vengono spesi i fondi. - -Contengono delle tesoriere integrate, a cui nessuno ha l'autorità di accedere senza l'approvazione del gruppo. Le decisioni sono governate da proposte e votazioni, per assicurarsi che tutti nell'organizzazione abbiano voce in capitolo, e che tutto si verifichi in modo trasparente sulla catena. - -## Perché abbiamo bisogno delle DAO? {#why-dao} - -Per avviare un'organizzazione con altre persone quando sono in ballo finanziamenti e denaro occorre riporre molta fiducia nei propri compagni di avventura. Ma è difficile fidarsi di qualcuno con cui hai interagito solo tramite Internet. Con le DAO non occorre fidarsi di nessun altro nel gruppo, bensì solamente del codice DAO, che è al 100% trasparente e verificabile da chiunque. - -Ciò apre molte opportunità di cooperazione e coordinamento a livello globale. - -### Un confronto {#dao-comparison} - -| DAO | Organizzazione tradizionale | -| --------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | -| Di solito orizzontale e completamente democratizzata. | Di solito gerarchica. | -| Votazione richiesta dai membri per l'implementazione di eventuali modifiche. | A seconda della struttura, le modifiche possono essere richieste da una sola parte oppure sottoposte a votazione. | -| Conteggio dei voti e implementazione automatica del risultato senza intermediari. | Se la votazione è consentita, i voti sono conteggiati internamente e l'esito della votazione deve essere gestito manualmente. | -| I servizi offerti vengono gestiti automaticamente in modo decentralizzato (ad esempio distribuzione di fondi filantropici). | Richiede manipolazione umana o automazione controllata centralmente, suscettibile di manipolazione. | -| Tutte le attività sono trasparenti e completamente pubbliche. | L'attività è tipicamente privata e limitata al pubblico. | - -### Esempi di DAO {#dao-examples} - -Per aiutarti a comprendere meglio, ecco alcuni esempi di come potresti utilizzare una DAO: - -- Beneficenza – potresti accettare donazioni da chiunque nel mondo e votare su quali cause finanziare. -- Proprietà collettiva – potresti acquistare beni fisici o digitali e i membri possono votare su come usarli. -- Iniziative e sovvenzioni – potresti creare un fondo di rischio che riunisce capitale di investimento e vota sulle iniziative da finanziare. Il denaro rimborsato potrebbe essere successivamente ridistribuito tra i membri del DAO. - -## Come funziona la DAO? {#how-daos-work} - -La spina dorsale di una DAO è il suo contratto intelligente, che definisce le regole dell'organizzazione e detiene il patrimonio del gruppo. Una volta che il contratto è attivo su Ethereum, nessuno può modificare le regole se non tramite voto. Nessuno può fare qualcosa che non sia previsto dalle regole e dalla logica del codice. E poiché anche il patrimonio è definito dal contratto intelligente, ciò significa che nessuno può spendere il denaro senza l'approvazione del gruppo. Questo significa che le DAO non hanno bisogno di un'autorità centrale. Al contrario, il gruppo prende le decisioni collettivamente e i pagamenti sono autorizzati automaticamente quando le proposte sono approvate dal voto. - -Ciò è possibile perché i contratti intelligenti sono a prova di manomissione, una volta che sono attivi su Ethereum. Non è possibile modificare il codice (le regole della DAO) senza che gli altri lo notino, perché tutto è pubblico. - - - Di più sui contratti intelligenti - - -## Ethereum e DAO {#ethereum-and-daos} - -Ethereum è la base perfetta per le DAO per una serie di motivi: - -- Il consenso di Ethereum è sufficientemente distribuito e affermato affinché le organizzazioni possano fidarsi della rete. -- Il codice del contratto intelligente non è modificabile una volta attivato, nemmeno dai suoi proprietari. Ciò permette alla DAO di funzionare secondo le regole con cui è stata programmata. -- I contratti intelligenti possono inviare/ricevere fondi. In caso contrario occorrerebbe un intermediario fidato per gestire i fondi del gruppo. -- La community di Ethereum si è dimostrata più collaborativa che competitiva, consentendo l'emergere rapido di migliori pratiche e sistemi di supporto. - -## Governance della DAO {#dao-governance} - -Ci sono molte considerazioni da fare governando una DAO, ad esempio, come funzionano le votazioni e le proposte. - -### Delegazione {#governance-delegation} - -Una delegazione è la versione della democrazia rappresentativa della DAO. I titolari di token delegano i voti agli utenti da loro stessi nominati e si impegnano a gestire il protocollo e a rimanere informati. - -#### Un celebre esempio {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) – I titolari di ENS possono delegare i propri voti a membri impegnati della community perché li rappresentino. - -### Governance automatica delle transazioni {#governance-example} - -In molte DAO, le transazioni saranno eseguite automaticamente se un quorum dei membri vota in modo affermativo. - -#### Un celebre esempio {#governance-example} - -[Nouns](https://nouns.wtf) – Nelle DAO di Nouns, una transazione è eseguita automaticamente al raggiungimento di un quorum di voti e una maggioranza di voti affermativi, se non ha ricevuto veti dai fondatori. - -### Governance multifirma {#governance-example} - -Mentre le DAO potrebbero avere migliaia di membri votanti, i fondi possono vivere in un portafoglio condiviso da 5-20 membri attivi della community, ritenuti affidabili e solitamente doxxati (identità pubbliche note alla community). Dopo un voto, i firmatari multifirma eseguono la volontà della community. - -## Leggi sulle DAO {#dao-laws} - -Nel 1977, il Wyoming inventò la LLC, che protegge gli imprenditori e ne limita le responsabilità. Più di recente, lo Stato è stato il pioniere della legge sulle DAO, che stabilisce lo status giuridico delle DAO. Al momento, Wyoming, Vermont e le Isole Vergini hanno una qualche forma di legge sulle DAO. - -#### Un celebre esempio {#law-example} - -[CityDAO](https://citydao.io) – CityDao ha utilizzato la legge sulle DAO del Wyoming per acquistare 40 acri di terreno nei pressi del Parco Nazionale di Yellowstone. - -## Aderire a una DAO {#dao-membership} - -Ci sono diversi modelli per aderire a una DAO. L'adesione può determinare come funziona il voto e altri aspetti chiave della DAO. - -### Adesione basata su token {#token-based-membership} - -In genere è completamente senza permessi, a seconda del token utilizzato. Questi token di governance possono essere per lo più scambiati senza permessi su uno scambio decentralizzato. Altri, invece, devono esser guadagnati fornendo liquidità o altri tipi di "Proof of Work". In entrambi i casi, la semplice detenzione del token garantisce l'accesso al voto. - -_Di solito usato per governare ampi protocolli decentralizzati e/o i token stessi._ - -#### Un celebre esempio {#token-example} - -[MakerDAO](https://makerdao.com) – Il token MKR di MakerDAO è ampiamente disponibile sugli scambi decentralizzati e chiunque può acquistare il potere di voto sul futuro del protocollo di Maker. - -### Adesione basata su quote {#share-based-membership} - -I DAO basati su quote sono maggiormente soggetti a permessi, ma comunque abbastanza aperti. Tutti i potenziali membri possono inviare una proposta di adesione alla DAO, solitamente offrendo un tributo di qualche valore sotto forma di token o di lavoro. Le quote rappresentano il potere di voto diretto e la proprietà. I membri possono uscire in qualsiasi momento con la propria quota proporzionale del patrimonio. - -_In genere usato per organizzazioni più compatte e incentrate sul fattore umano, come enti di beneficenza, collettivi di lavoratori e club di investimento. Può anche governare protocolli e token._ - -#### Un celebre esempio {#share-example} - -[MolochDAO](http://molochdao.com/) – MolochDAO si concentra sul finanziamento di progetti Ethereum. Richiede una proposta di adesione in modo che il gruppo possa valutare se il richiedente ha la competenza e il capitale necessari per formulare giudizi informati sui potenziali beneficiari. Non si può semplicemente acquistare l'accesso al DAO sul mercato. - -### Adesione basata sulla reputazione {#reputation-based-membership} - -La reputazione rappresenta la prova di partecipazione e conferisce potere di voto nella DAO. A differenza dell'adesione basata sui token o le quote, le DAO basate sulla reputazione non trasferiscono la proprietà ai collaboratori. La reputazione non può esser comprata, trasferita o delegata; i membri della DAO devono ottenere la reputazione tramite la loro partecipazione. Il voto su catena è privo di permessi e i potenziali membri possono inviare liberamente proposte per unirsi alla DAO e richiedere di ricevere reputazione e token come ricompensa in cambio dei loro contributi. - -_Tipicamente usati per lo sviluppo e la governance decentralizzati di protocolli e dApp, ma anche adatti a una serie eterogenea di organizzazioni, quali enti di beneficenza, collettivi di lavoratori, club d'investimento, etc._ - -#### Un celebre esempio {#reputation-example} - -[DXdao](https://DXdao.eth.link) – DXdao è un collettivo sovrano globale che dal 2019 crea e amministra protocolli e applicazioni decentralizzati. Sfrutta la governance basata sulla reputazione e il consenso olografico per coordinare e gestire i fondi, il che significa che nessuno può comprarsi il potere per influenzarne il futuro. - -## Aderisci a / Crea una DAO {#join-start-a-dao} - -### Aderisci a una DAO {#join-a-dao} - -- [Community di Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [Lista delle DAO di DAOHaus](https://app.daohaus.club/explore) -- [Elenco di DAO di Tally.xyz](https://www.tally.xyz) - -### Crea una DAO {#start-a-dao} - -- [Evoca una DAO con DAOHaus](https://app.daohaus.club/summon) -- [Crea una DAO di Governance con Tally](https://www.tally.xyz/add-a-dao) -- [Crea una DAO basata su Aragon](https://aragon.org/product) -- [Avvia una colonia](https://colony.io/) -- [Crea una DAO con il consenso olografico di DAOstack](https://alchemy.daostack.io/daos/create) - -## Letture consigliate {#further-reading} - -### Articoli sulle DAO {#dao-articles} - -- [Che cos'è una DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) -- [Il manuale delle DAO](https://daohandbook.xyz) -- [La casa delle DAO](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) -- [Che cos'è una DAO e a cosa serve?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) -- [Come avviare una comunità digitale basata su DAO](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) -- [Che cos'è una DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) -- [Cos'è il consenso olografico?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) -- [Le DAO non sono società: dove è importante la decentralizzazione nelle organizzazioni autonome, di Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) -- [DAO, DAC, DA e altro: una guida incompleta alla terminologia](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Blog di Ethereum](https://blog.ethereum.org) - -### Video {#videos} - -- [Che cos'è una DAO nel mondo delle criptovalute?](https://youtu.be/KHm0uUPqmVE) -- [Può una DAO costruire una città?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/src/content/translations/it/decentralized-identity/index.md b/src/content/translations/it/decentralized-identity/index.md deleted file mode 100644 index 30ff5f316ae..00000000000 --- a/src/content/translations/it/decentralized-identity/index.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: Identità decentralizzata -description: Cos'è l'identità decentralizzata e perché è importante? -lang: it -template: use-cases -emoji: ":id:" -sidebarDepth: 2 -image: ../../../../assets/eth-gif-cat.png -summaryPoint1: I sistemi di identità tradizionali hanno centralizzato l'emissione, manutenzione e controllo dei tuoi identificativi. -summaryPoint2: L'identità decentralizzata rimuove la dipendenza da terze parti centralizzate. -summaryPoint3: Grazie alle cripto, gli utenti, ora, hanno nuovamente gli strumenti per emettere, detenere e controllare i propri identificativi e attestazioni. ---- - -L'identità è virtualmente alla base di ogni aspetto della tua vita quotidiana. Utilizzare servizi online, aprire un conto bancario, votare alle elezioni, acquistare proprietà, garantire l'occupazione; tutte queste cose richiedono di dimostrare la propria identità. - -Tuttavia, i sistemi tradizionali di gestione dell'identità si sono affidati a lungo a intermediari centralizzati, che emettono, detengono e controllano i tuoi identificativi e le tue [attestazioni](#what-are-attestations). Ciò significa che non puoi controllare le informazioni sulla tua identità, o decidere chi abbia accesso alle tue informazioni personalmente identificabili (PII), né quanto accesso abbiano tali parti. - -Per risolvere questi problemi, abbiamo sistemi di identità decentralizzati, integrati sulle blockchain pubbliche come Ethereum. L'identità decentralizzata consente agli individui di gestire le proprie informazioni di identità. Con le soluzioni di identità decentralizzata, _tu_ puoi creare identificativi, rivendicando e detenendo le tue attestazioni, senza affidarti ad autorità centrali, quali fornitori di servizi o governi. - -## Cos'è l'identità? {#what-is-identity} - -L'identità indica il senso di sé della persona, definito da caratteristiche uniche. L'identità si riferisce all'essere un _individuo_, cioè, un'entità umana distinta. L'identità, inoltre, potrebbe riferirsi ad altre entità non umane, come un'organizzazione o un'autorità. - -## Cosa sono gli identificativi? {#what-are-identifiers} - -Un identificativo è un'informazione che agisce da puntatore, verso una o più identità in particolare. Tra gli identificativi comuni vi sono: - -- Nome -- Codice fiscale/partita IVA -- Numero telefonico -- Data e luogo di nascita -- Credenziali identificative digitali, come indirizzi email, nomi utente, avatar - -Questi esempi di identificativi tradizionali sono emessi, detenuti e controllati da entità centrali. Necessiti di un'autorizzazione dal tuo governo per modificare il tuo nome, o da una piattaforma social, per modificare il tuo pseudonimo. - -## Cosa sono le attestazioni? {#what-are-attestations} - -Un'attestazione, è una dichiarazione effettuata da un'entità, in merito a un'altra entità. Se vivi in Italia, la patente di guida rilasciata dal Dipartimento dei Trasporti Terrestri (un'entità), attesta che tu (un'altra entità), sei legalmente autorizzato a guidare un'auto. - -Le attestazioni sono differenti dagli identificativi. Un'attestazione _contiene_ degli identificativi, riferiti a un'identità in particolare, ed effettua una dichiarazione su di un attributo, relativo a tale identità. Quindi, la tua patente di guida contiene degli identificativi (nome, data di nascita, indirizzo), ma è anche l'attestazione sul tuo diritto legale alla guida. - -### Cosa sono gli identificativi decentralizzati? {#what-are-decentralized-identifiers} - -Gli identificativi tradizionali, come il tuo nome legale o l'indirizzo email, si affidano a terze parti: governi e fornitori di email. Gli identificativi decentralizzati (DID), sono differenti: non sono emessi, gestiti o controllati da alcuna entità centrale. - -Gli identificativi decentralizzati sono emessi, detenuti e controllati dagli individui. Un [conto di Ethereum](/developers/docs/accounts/) è un esempio di identificativo decentralizzato. Puoi creare quanti conti desideri senza l'autorizzazione di nessuno e senza doverli memorizzare in un registro centrale. - -Gli identificativi decentralizzati sono memorizzati su libri mastri distribuiti (le blockchain), o su reti tra pari. Ciò rende i DID [unici a livello globale, risolvibili con elevata disponibilità e crittograficamente verificabili](https://w3c-ccg.github.io/did-primer/). Un identificativo decentralizzato può essere associato a diverse entità, tra cui persone, organizzazioni, o istituzioni governative. - -## Cosa rende possibili gli identificativi decentralizzati? {#what-makes-decentralized-identifiers-possible} - -### 1. Infrastruttura a Chiave Pubblica (PKI) {#public-key-infrastructure} - -L'infrastruttura a chiave pubblica (PKI) è una misura di sicurezza delle informazioni che genera una [chiave pubblica](/glossary/#public-key) e una [chiave privata](/glossary/#private-key), per un'entità. La criittografia della chiave pubblica è utilizzata nelle reti blockchain per autenticare le identità degli utenti e dimostrare la proprietà delle risorse digitali. - -Alcuni identificativi decentralizzati, come un conto di Ethereum, includono chiavi pubbliche e private. La chiave pubblica identifica chi controlla il conto, mentre le chiavi private possono firmare e decrittografare i messaggi per tale conto. La PKI fornisce le prove necessarie per autenticare le entità e impedisce il furto di identità e l'utilizzo di identità false, utilizzando le [firme crittografiche](https://andersbrownworth.com/blockchain/public-private-keys/) per verificare tutte le dichiarazioni. - -### 2. Datastore decentralizzati {#decentralized-datastores} - -Una blockchain funge da registro di dati verificabili: una repository di informazioni aperta, affidabile e decentralizzata. L'esistenza delle blockchain pubbliche elimina l'esigenza di memorizzare gli identificativi nei registri centralizzati. - -Se qualcuno deve confermare la validità di un identificativo decentralizzato, può consultare la chiave pubblica associata sulla blockchain. Ciò differisce dagli identificativi tradizionali, che richiedono l'autenticazione da parte di terzi. - -## Come fanno le attestazioni e gli identificativi decentralizzati a consentire l'identità decentralizzata? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} - -L'identità decentralizzata è l'idea che le informazioni sull'identità dovrebbero essere controllate dall'individuo, private e portatili, con attestazioni e identificativi decentralizzati come blocchi di costruzione principali. - -Nel contesto dell'identità decentralizzata, le attestazioni (anche note come [Credenziali Verificabili](https://www.w3.org/TR/vc-data-model/)), sono a prova di manomissione, dichiarazioni crittograficamente verificabili, create dall'emittente. Ogni attestazione, o Credenziale Verificabile, emessa da un'entità (es., un'organizzazione), è assocata al suo DID. - -Poiché i DID sono memorizzati sulla blockchain, chiunque può verificare la validità di un'attestazione, tramite la verifica incrociata del DID dell'emittente, su Ethereum. Essenzialmente, la blockchain di Ethereum agisce da cartella globale, che consente la verifica dei DID associati a certe entità. - -Gli identificativi decentralizzati sono il motivo per cui le attestazioni sono controllate dagli individui e verificabili. Anche se l'emittente non esiste più, il titolare avrà sempre la prova della provenienza e validità dell'attestazione. - -Inoltre, gli identificativi decentralizzati sono fondamentali per la protezione della privacy delle informazioni personali, tramite l'identità decentralizzata. Ad esempio, se un individuo invia la prova di un'attestazione (una patente di guida), la parte che verifica non necessita di controllare la validità delle informazioni nella prova. Invece, chi verifica necessita soltanto delle garanzie crittografiche dell'autenticità dell'attestazione, e dell'identità dell'organizzazione emittente, per determinare se la prova sia valida. - -## Tipi di attestazioni nell'identità decentralizzata {#types-of-attestations-in-decentralized-identity} - -Le modalità di memorizzazione e recupero delle informazioni sull'attestazione, nell'ecosistema delle identità basato su Ethereum, differiscono dalla gestione tradizionale delle identità. Ecco una panoramica dei vari approcci all'emissione, memorizzazione e verifica delle attestazioni, nei sistemi di identità decentralizzati: - -### Attestazioni esterne alla catena {#off-chain-attestations} - -Un timore per la memorizzazione su catena è che potrebbero contenere informazioni che gli individui desiderano mantenere private. La natura pubblica della blockchain di Ethereum, rende poco attraente la memorizzazione di tali attestazioni. - -La soluzione è l'emissione di attestazioni, possedute all'esterno della catena dagli utenti nei portafogli digitali, ma firmate con il DID dell'emittente, memorizzato sulla catena. Tali attestazioni sono codificate come [Token Web in JSON](https://en.wikipedia.org/wiki/JSON_Web_Token) e contengono la firma digitale dell'emittente, che consente la facile verifica delle dichiarazioni esterne alla catena. - -Ecco uno scenario ipotetico per spiegare le attestazioni esterne alla catena: - -1. Un'università (emittente), genera un'attestazione (un certificato accademico digitale), firma le proprie chiavi e la emette a Bob (il titolare dell'identità). - -2. Bob si candida per un lavoro e desidera dimostrare le proprie qualifiche accademiche a un datore di lavoro, quindi, condivide l'attestazione dal proprio portafoglio mobile. L'azienda (verificatore), può quindi confermare la validità dell'attestazione, verificando il DID dell'emittente (cioè, la sua chiave pubblica su Ethereum). - -### Attestazioni esterne alla catena con accesso persistente {#offchain-attestations-with-persistent-access} - -In questo modo, le attestazioni sono trasformate in file JSON e memorizzate all'esterno della catena (idealmente, su una piattaforma di [archiviazione decentralizzata su cloud](/developers/docs/storage/), come IPFS o Swarm). Tuttavia, un [hash](/glossary/#hash) del file JSON è memorizzato sulla catena e collegato a un DID, tramite il registro sulla catena. Il DID associato potrebbe essere quello dell'emittente dell'attestazione, o del destinatario. - -Tale approccio consente alle attestazioni di ottenere persistenza basata sulla blockchain, mantenendo le informazioni delle dichiarazioni, crittografate e verificabili. Inoltre, consente la divulgazione selettiva, poiché il titolare della chiave privata può decrittografare le informazioni. - -### Attestazioni sulla catena {#onchain-attestations} - -Le attestazioni sulla catena sono detenute nei [contratti intelligenti](/developers/docs/smart-contracts/), sulla blockchain di Ethereum. Il contratto intelligente (che agisce da registro), mapperà un'attestazione a un identificativo decentralizzato corrispondente sulla catena (una chiave pubblica). - -Ecco un esempio per dimostrare il funzionamento in pratica delle attestazioni sulla catena: - -1. Un'azienda (XYZ Corp), pianifica la vendita delle quote di proprietà utilizzando un contratto intelligente, ma desidera soltanto gli acquirenti che abbiano completato una verifica dei trascorsi personali. - -2. XYZ Corp può far eseguire le verifiche dei trascorsi personali dall'azienda, per emettere le attestazioni sulla catena di Ethereum. Tale attestazione certifica che un individuo ha superato la verifica dei trascorsi personali, senza esporre alcuna informazione personale. - -3. Il contratto intelligente che vende le quote, può verificare il contratto del registro per le identità degli acquirenti verificati, rendendo possibile la determinazione di chi possa acquistare le quote e chi no. - -### Token vincolati e identità {#soulbound} - -I [token vincolati](https://vitalik.ca/general/2022/01/26/soulbound.html) (NFT non trasferibili), potrebbero essere utilizzati per raccogliere informazioni univoche, relative a un portafoglio specifico. Ciò, effettivamente, crea un'identità univoca sulla catena, vincolata a un indirizzo di Ethereum in particolare, che potrebbe includere i token rappresentanti obiettivi (ad esempio, concludere un certo corso online o superare una soglia di punteggio in un gioco), o la partecipazione della community. - -## Benefici dell'identità decentralizzata {#benefits-of-decentralized-identity} - -1. L'identità decentralizzata aumenta il controllo individuale sulle informazioni identificative. Le attestazioni e gli identificativi decentralizzati sono verificabili senza affidarsi ad autorità centrali e servizi di terze parti. - -2. Le soluzioni di identità facilitano un metodo affidabile, semplice e che protegge la privacy, per verificare e gestire l'identità dell'utente. - -3. L'identità decentralizzata sfrutta la tecnologia della blockchain, che crea fiducia tra parti differenti, fornendo garanzie crittografiche, per dimostrare la validità delle attestazioni. - -4. L'identità decentralizzata rende portatili i dati d'identità. Gli utenti memorizzano gli identificativi e le attestazioni nel portafoglio mobile, e possono condividerli con qualsiasi parte di loro scelta. Le attestazioni e gli identificativi decentralizzati non sono bloccati nel database dell'organizzazione emittente. - -5. L'identità decentralizzata dovrebbe funzionare bene con le tecnologie a conoscenza zero emergenti, che consentiranno agli individui di dimostrare di possedere o aver svolto qualcosa, senza rivelare di cosa si tratti. Questo potrebbe divenire un potente metodo per combinare fiducia ee privacy per le applicazioni, ad esempio, per le votazioni. - -6. L'identità decentralizzata consente ai meccanismi anti-Sybil, di identificre quando un umano sta pretendendo di essere più umani, per spammare o prendersi gioco di qualche sistema. - -## Casi d'uso dell'identità decentralizzata {#decentralized-identity-use-cases} - -L'identità decentralizzata ha molti possibili casi d'uso: - -### 1. Accessi universali {#universal-dapp-logins} - -L'identità decentralizzata può aiutare a sostituire gli accessi basati sulle password, con l'[autenticazione decentralizzata](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). I fornitori di servizi possono emettere attestazioni agli utenti, memorizzabili in un portafoglio di Ethereum. Un esempo di attestazione potrebbe essere un [NFT](/nft/) che conceda, al ttolare, l'accesso a una community online. - -Una funzionalità "[Accedi con Ethereum](https://login.xyz/)", consentirebbe poi ai server di confermare il conto di Ethereum dell'utente, e di recuperare l'attestazione necessaria dal relativo indirizzo del conto. Ciò significa che gli utenti possono accedere a piattaforme e siti web, senza dover memorizzare lunghe password, migliorando l'esperienza online degli utenti. - -### 2. Autenticazione KYC {#kyc-authentication} - -Utilizzare molti servizi online, impone agli individui di fornire attestazioni e credenziali, come una patente di guida o un passaporto nazionale. Tuttavia, questo approccio è problematico poiché le informazioni private di un utente possono essere compromesse e, i fornitori di servizi, potrebbero non riuscire a verificare l'autenticità dell'attestazione. - -L'identità decentralizzata consente alle aziende di saltare i convenzonali processi di [KYC, ossia Know-Your-Customer (Verifica della Clientela)](https://en.wikipedia.org/wiki/Know_your_customer) e di autenticare le identtà degli utenti tramite le Credenziali Verificabili. Ciò riduce i costi di gestione dell'identità, impedendo l'utilizzo di documenti falsi. - -### 3. Voti e community online {#voting-and-online-communities} - -Il voto online e i social, sono due applicazioni innovative per l'identità decentralizzata. Gli schemi di voto online sono suscettibili alla manipolazione, specialmente se degli utenti malevoli creano delle identità false per votare. Chiedere agli individui di presentare le attestazioni sulla catena, può migliorare l'integrità dei processi di voto online. - -L'identità decentralizzata può aiutare a creare delle community online prive di conti falsi. Ad esempio, ogni utente potrebbe dover autenticare la propria identità tramite un sistema di identità sulla catena, come il Servizio del Nome di Ethereum, riducendo la possibile presenza di bot. - -### 4. Protezione Anti-Sybil {#sybil-protection} - -Gli attacchi Sybil si riferiscono a individui che ingannano un sistema nel pensare che siano più persone, per incrementare la propria influenza. Le [applicazioni che concedono sovvenzioni](https://gitcoin.co/grants/), utilzzando i [voti quadratici](https://www.radicalxchange.org/concepts/plural-voting/), sono vulnerabili a tali attacchi Sybil, poiché il valore di una sovvenzione aumenta con gli individui che la votano, incentivando gli utenti a dividere i propri contributi, tra più identità. Le identità decentralizzate aiutano a prevenirli, incrementando l'onere su ogni partecipante, per dimostrare che siano realmente umani, sebbene spesso senza dover rilevare informazioni private specifiche. - -## Utilizzare l'identità decentralizzata {#use-decentralized-identity} - -Esistono molti progetti ambiziosi che utilizzano Ethereum come base, per le soluzioni di identità decentralizzata: - -- **[Servizio del Nome di Ethereum (ENS)](https://ens.domains/)**: _Un sistema di denominazione decentralizzato per gli identificativi su catena, leggibili dalle macchine, quali, indirizzi di portafogli di Ethereum, hash dei contenuti e metadati._ -- **[SpruceID](https://www.spruceid.com/)**: _Un progetto di identità decentralizzata che consente agli utenti di controllare l'identità digitale con i conti di Ethereum e i profili di ENS, piuttosto che affidarsi a servizi di terze parti._ -- **[Servizio di Attestazione di Ethereum (EAS)](https://attest.sh/)**: _Un libro mastro e protocollo decentralizzato per effettuare attestazioni sulla catena, o all'esterno di essa, su qualsiasi cosa._ -- **[Prova di Umanità](https://www.proofofhumanity.id)**: _La Prova di Umanità (o PoH), è un sistema di verifica dell'identità sociale, basato su Ethereum._ -- **[BrightID](https://www.brightid.org/)**: _Una rete decentralizzata e open source di identità sociale, ideata per riformare la verifica dell'identità tramite la creazione e analisi di un grafico sociale._ -- **[Passaporto di Prova di Personalità](https://proofofpersonhood.com/)**: _Un aggregatore decentralizzato di identità digitali._ - -## Lettura consigliate {#further-reading} - -### Articoli {#articles} - -- [Casi d'Uso della Blockchain: La Blockchain nell'Identità Digitale](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ -- [Cos'è l'ERC-725 di Ethereum? Gestione dell'Identità Sovrana Personale sulla Blockchain](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Sam Town_ -- [Come la Blockchain potrebbe risolvere il problema dell'Identità Digitale](https://time.com/6142810/proof-of-humanity/) — _Andrew R. Chow_ -- [Cos'è l'Identità Decentralizzata e Perché Dovrebbe Interessarti?](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ - -### Video {#videos} - -- [Identità Decentralizzata (Sessione Live Bonus)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Un ottimo video esplicativo sull'identità decentralizzata, di Andreas Antonopolous_ -- [Accedi con Ethereum e l'Identità Decentralizzata con Ceramic, IDX, React e 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _Tutorial di YouTube sulla creazione di un sistema di gestione dell'identità, per creare, leggere e aggiornare il profilo di un utente, utilizzandone il portafoglio di Ethereum; di Nader Dabit_ -- [BrightID: Identità Decentralizzata su Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _Episodio del podcast "Bankless", incentrato su BrightID, una soluzione di identità decentralizzata per Ethereum_ -- [L'Internet esterno alla Catena: Identità Decentralizzata e Credenziali Verificabili](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — Presentazione dell'EthDenver del 2022, di Evin McMullen - -### Community {#communities} - -- [ERC-725 Alliance su GitHub](https://github.com/erc725alliance) — _Sostenitori dello standard ERC-725 per la gestione dell'identità sulla blockchain di Ethereum_ -- [Server Discord di SpruceID](https://discord.com/invite/Sf9tSFzrnt) — _Community per appassionati e sviluppatori, al lavoro su "Accedi con Ethereum"_ -- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Una community di sviluppatori, che contribuiscono alla creazione di un quadro per i dati verificabili per le applicazioni_ diff --git a/src/content/translations/it/defi/index.md b/src/content/translations/it/defi/index.md deleted file mode 100644 index cc914fb58ec..00000000000 --- a/src/content/translations/it/defi/index.md +++ /dev/null @@ -1,352 +0,0 @@ ---- -title: Finanza decentralizzata (DeFi) -description: Una panoramica sulla DeFi su Ethereum -lang: it -template: use-cases -emoji: ":money_with_wings:" -image: ../../../../assets/use-cases/defi.png -alt: Logo di Eth, composto da mattoncini Lego. -sidebarDepth: 3 -summaryPoint1: Un'alternativa globale e aperta al sistema finanziario odierno. -summaryPoint2: Prodotti che ti consentono di prendere in prestito, risparmiare, investire, scambiare, e molto altro. -summaryPoint3: Basata sulla tecnologia open source, con cui chiunque può programmare. ---- - -La DeFi è un sistema finanziario aperto e globale, creato per l'era di Internet: un'alternativa a un sistema opaco, rigidamente controllato e tenuto insieme da infrastrutture e processi vecchi di decenni. Offre il controllo e la visibilità sul proprio denaro. Fornisce esposizione ai mercati globali e alternative alla tua valuta o alle opzioni bancarie locali. I prodotti della DeFi aprono i servizi finanziari a chiunque abbia una connessione a Internet, e sono prevalentemente posseduti e mantenuti dai loro utenti. Finora, decine di miliardi di dollari in criptovalute, sono confluiti per le applicazioni della DeFi, e crescono ogni giorno. - -## Cos'è la DeFi? {#what-is-defi} - -DeFi è un termine collettivo per i prodotti e servizi finanziari accessibili a chiunque possa utilizzare Ethereum: chiunque abbia una connessione a Internet. Con la DeFi, i mercati sono sempre aperti e non esistono autorità centralizzate, che possano bloccare i pagamenti, o negarti l'accesso a qualcosa. I servizi precedentemente lenti e soggetti a errori umani, sono ora automatici e più sicuri, venendo gestiti da codice ispezionabile ed esaminabile da chiunque. - -Là fuori c'è una criptoeconomia in forte espansione, in cui puoi assumere ed erogare prestiti, maturare interessi e molto altro. Gli esperti di criptovalute argentini hanno utilizzato la DeFi per sfuggire alla paralizzante inflazione. Le aziende hanno iniziato a trasmettere ai propri dipendenti, gli stipendi in tempo reale. Alcuni hanno persino estinto e pagato prestiti di milioni di dollari, senza necessità di alcuna informazione personale. - - - -## La DeFi e la finanza tradizionale {#defi-vs-tradfi} - -Uno dei metodi migliori per individuare il potenziale della DeFi, è comprendere i problemi odierni. - -- Alcune persone non sono autorizzate a configurare un conto bancario o utilizzare i servizi finanziari. -- La mancanza di accesso ai servizi finanziari può impedire alle persone di essere assunte. -- I servizi finanziari possono impedirti di ricevere pagamenti. -- Un pericolo nascosto dei servizi finanziari, riguarda i tuoi dati personali. -- Governi e istituzioni centralizzate possono chiudere i mercati a proprio piacimento. -- Gli orari di negoziazione sono spesso limitati alle ore lavorative di uno specifico fuso orario. -- I bonifici possono richiedere giorni, a causa dei processi umani interni. -- Esiste un sovrapprezzo sui servizi finanziari, poiché le istituzioni intermediarie hanno diritto alla propria parte. - -### Un confronto {#defi-comparison} - -| DeFi | Finanza tradizionale | -| ------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | -| Il titolare del tuo denaro, sei tu. | Il tuo denaro è detenuto dalle aziende. | -| Sei tu a controllare dove va il tuo denaro, e come viene speso. | Devi fidarti del fatto che le aziende non gestiscano male il tuo denaro, come nel caso di prestiti a soggetti a rischio. | -| I trasferimenti di fondi si verificano in pochi minuti. | I pagamenti possono richiedere giorni, a causa dei processi manuali. | -| L'attività di transazione è pseudonimizzata. | L'attività finanziaria è rigidamente associata alla tua identità. | -| La DeFi è aperta a tutti. | Devi fare richiesta per utilizzare i servizi finanziari. | -| I mercati sono sempre aperti. | I mercati chiudono, poiché i dipendenti necessitano di pause. | -| Si basa sulla trasparenza: chiunque può esaminare i dati di un prodotto e ispezionare il funzionamento del sistema. | Gli istituti finanziari sono libri chiusi: non puoi chiedere di visualizzarne lo storico dei prestiti o i registri delle risorse gestite, e così via. | - - - Esplora le app della DeFi - - -## Tutto è iniziato con Bitcoin... {#bitcoin} - -Bitcoin è considerabile, sotto molti aspetti, come la prima applicazione di DeFi. Bitcoin ti consente di possedere realmente e di controllare il valore, inviandolo in tutto il mondo. Infatti, fornisce un metodo, per grandi numeri di persone che non si fidano tra loro, di accordarsi su un libro mastro di conti, senza la necessità di un intermediario fidato. Bitcoin è aperto a tutti e nessuno ha l'autorità di modificarne le regole. Le regole di Bitcoin, come la sua scarsità e la sua apertura, sono scritte nella tecnologia. Non è come la finanza tradizionale, dove i governi possono stampare denaro che svaluta i tuoi risparmi e le aziende possono chiudere i mercati. - -Ethereum si basa su questo. Come per Bitcoin, le regole non sono modificabili e tutti vi hanno accesso. Inoltre, rende programmabile questo denaro digitale, utilizzando i [contratti intelligenti](/glossary#smart-contract), così che tu possa andare oltre l'archiviazione e l'invio di valore. - - - -## Denaro programmabile {#programmable-money} - -Sembra strano... "perché dovrei voler programmare il mio denaro"? Eppure, questa è più che altro una funzionalità predefinita dei token su Ethereum. Chiunque può programmare la logica nei pagamenti. Così, puoi ottenere il controllo e la sicurezza di Bitcoin, insieme ai servizi forniti dalle istituzioni finanziarie. Ciò consente di fare cose con le criptovalute che non potresti fare con Bitcoin, come assumere ed erogare prestiti, pianificare pagamenti, investire in fondi indicizzati, e molto altro. - - -
Esplora i nostri suggerimenti per le applicazioni della DeFi da provare, se sei nuovo su Ethereum.
- - Esplora le app di DeFi - -
- -## Cosa puoi fare con la DeFi? {#defi-use-cases} - -Esiste un'alternativa decentralizzata a gran parte dei servizi finanziari. Ma Ethereum, inoltre, offre l'opportunità di creare prodotti finanziari completamente nuovi. Questo è un elenco in continu espansione. - -- [Inviare denaro in tutto il mondo](#send-money) -- [Trasmettere denaro in tutto il mondo](#stream-money) -- [Accedere a valute stabili](#stablecoins) -- [Assumere fondi con garanzia](#lending) -- [Erogare fondi senza garanzia](#flash-loans) -- [Creare risparmi di criptovalute](#saving) -- [Scambiare token](#swaps) -- [Accrescere il proprio portafoglio](#investing) -- [Finanziare le proprie idee](#crowdfunding) -- [Acquistare assicurazioni](#insurance) -- [Gestire il proprio portafoglio](#aggregators) - - - -### Inviare denaro in tutto il mondo {#send-money} - -Essendo una blockchain, Ethereum è progettato per inviare le transazioni in modo sicuro e globale. Come Bitcoin, anche Ethereum rende l'invio di denaro in tutto il mondo, tanto facile quanto inviare un'email. È sufficiente inserire il [nome ENS](/nft/#nft-domains) del destinatario (come bob.eth), o l'indirizzo del suo conto, dal proprio portafoglio, e il pagamento arriverà (solitamente) in pochi minuti. Per inviare o ricevere pagamenti, necessiterai di un [portafoglio](/wallets/). - - - Visualizza le dApp di pagamento - - -#### Trasmettere denaro in tutto il mondo... {#stream-money} - -Su Ethereum, inoltre, è possibile trasmettere denaro. Ciò ti consente di pagare il salario di qualcuno in pochi secondi, consentendogli di accedere al proprio denaro quando necessario. Oppure, noleggiare qualcosa all'istante, come un magazzino o uno scooter elettrico. - -Se invece non vuoi inviare o trasmettere [ETH](/eth/) a causa della volatilità del suo valore, su Ethereum esistono delle valute alternative: le Stablecoin. - - - -### Accedere a valute stabili {#stablecoins} - -La volatilità delle criptovalute è un problema per molti prodotti finanziari e spese in generale. La community della DeFi lo ha risolto con le Stablecoin. Il loro valore resta ancorato a un'altra risorsa, solitamente, una valuta popolare come il dollaro americano. - -Monete come DAI o USDC, hanno un valore di pochi centesimi di dollaro. Ciò le rende perfette per guadagnare o per la vendita al dettaglio. In molti, in America Latina, le hanno utilizzate per proteggere i propri risparmi in periodi di grande incertezza per le valute emesse dal loro governo. - - - Altro sulle Stablecoin - - - - -### Assunzione di prestiti {#lending} - -L'assunzione di prestiti dai fornitori decentralizzati, si presenta in due varietà principali. - -- Tra pari: un debitore assume un prestito direttamente da un creditore specifico. -- In un gruppo: in cui creditori forniscono fondi (liquidità) a un gruppo, da cui i debitori possono assumere un prestito. - - - Vedi le dApp di assunzione di prestiti - - -Esistono molti vantaggi, derivati dall'utilizzo di un creditore decentralizzato... - -#### Assunzione di prestiti nell'anonimato {#borrowing-privacy} - -Oggi, assumere ed erogare prestiti, dipende esclusivamente dagli individui coinvolti. Prima di erogare un prestito, le banche devono sapere se è probabile che lo ripagherai. - -Il prestito decentraliizzato funzona senza l'identificazione di alcuna delle parti. Il debitore deve invece produrre garanzie reali, che il creditore riceverà automaticamente se il prestito non viene rimborsato. Alcuni creditori accettano persino NFT come garanzie. I NFT sono atti per risorse univoche, come un dipinto. [Di più sui NFT](/nft/) - -Questo ti consente di assumere un prestito senza controlli sul credito, o la trasmissione di informazioni private. - -#### Accedere a fondi globali {#access-global-funds} - -Ricorrendo a un creditore decentralizzato, hai accesso ai fondi depositati da tutto il mondo, non soltanto a quelli in custodia presso la banca o l'istituzione scelta. Ciò rende i prestiti più accessibili, migliorando i tassi d'interesse. - -#### Vantaggi fiscali {#tax-efficiencies} - -Assumere un prestito può concederti l'accesso ai fondi necessari, senza dover vendere i tuoi ETH (un evento imponibile). Puoi invece usare ETH come garanzia per un prestito di stablecoin. Così, benefici del flusso di cassa, pur mantenendo i tuoi ETH. Le Stablecoin sono token più adatti a quando necessiti di denaro contante, poiché non fluttuano in valore come gli ETH. [Di più sulle Stablecoin](#stablecoins) - -#### Prestiti istantanei {#flash-loans} - -I prestiti istantanei sono una forma più sperimentale di erogazione di prestiti decentralizzati, che ti consente di assumere prestiti senza garanzia, e senza fornire alcuna informazione personale. - -Al momento non sono ampiamente accessibili agli utenti non tecnici, ma danno un'idea di cosa potrebbe essere possibile per tutti, in futuro. - -Si basano sul fatto che il prestito è assunto e ripagato durante la stessa transazione. Se non può essere restituito, la transazione si ripristina, come se nulla fosse mai successo. - -Spesso, i fondi utilizzati sono mantenuti in gruppi di liquidità (grandi gruppi di fondi utilizzati per i prestiti). Se in un dato momento non sono utilizzati, ciò crea un'opportunità per qualcuno, di assumere il prestito di tali fondi, concluervi affari e ripagarli ineramente, letteralmente in contemporanea alla ricezione del prestito. - -Ciò significa che dev'essere inclusa molta logica, in una transazione ad hoc. Un semplice esempio potrebbe essere l'utilizzo di un prestito istantaneo per assumere il prestito di una risorsa a un prezzo, così da poterla rivendere su una piattaforma di scambio differente, dove il prezzo è maggiore. - -Quindi, in una singola transazione, avviene quanto segue: - -- Assumi il prestito di X $asset a $1,00 dalla piattaforma di scambio A -- Vendi X $asset sulla piattaforma di scambio B per $1,10 -- Ripaghi il prestito sulla piattaforma di scambio A -- Mantieni il profitto, a cui è sottratta la commissione sulla transazione - -Se l'offerta sulla piattaforma di scambio B cala improvvisamente, e l'utente non riesce ad acquistare abbastanza da coprire il prestito originale, la transazione non va semplicemente a buon fine. - -Per applicare l'esempio precedente nel mondo finanziario tradizionale, necessiteresti di un ingente importo di denaro. Queste strategie di guadagno sono accessibili soltanto a persone già ricche. I prestiti istantanei sono l'esempio ddi un futuro in cui possedere denaro non è necessariamente un prerequisito per guadagnare. - -[Di più sui prestiti istantanei](https://aave.com/flash-loans/) - - - -### Iniziare a risparmiare con le criptovalute {#saving} - -#### Erogare prestiti {#lending} - -Puoi maturare interessi sulle tue criptovalute, erogandole e accrescendo i tuoi fondi in tempo reale. Al momento, i tassi d'interesse sono molto superiori a quelli che potrebbero esserti offerti da una banca locale (se sei abbastanza fortunato da potervi accedere). Ecco un esempio: - -- Eroghi 100 DAI, una [Stablecoin](/stablecoins/), a un prodotto come Aave. -- Ricevi 100 Aave Dai (aDai), un token rappresentante le tue DAI erogate. -- Le tue aDai incrementerebbero a seconda dei tassi di interesse, e potresti visualizzare l'accrescimento del tuo saldo nel tuo portafoglio. A seconda dell'APR, il saldo del tuo portafoglio raggiungerebbe all'incirca 100,1234, doopo pochi giorni, o persino dopo poche ore! -- Puoi prelevare un importo di DAI regolare, pari al tuo saldo di aDai, in qualsiasi momento. - - - Consulta le dapp di erogazione di prestiti - - -#### Lotterie prive di perdita {#no-loss-lotteries} - -Le lotterie prive di perdita, come PoolTogether, sono un nuovo metodo divertente e innovativo, per risparmiare denaro. - -- Acquisti 100 biglietti, utilizzando 100 token DAI. -- Ricevi 100 plDai, rappresentanti i tuoi 100 biglietti. -- Se uno dei tuoi biglietti è estratto come vincitore, il tuo saldo di plDai incrementa, all'importo del montepremi. -- Se perdi, i tuoi 100 plDai sono aggiunti all'estrazione della settimana successiva. -- Puoi prelevare regolarmente un importo di DAI, pari al tuo saldo di plDai, in qualsiasi momento. - -Il montepremi si compone di tutti gli interessi generati dall'erogazione dei depositi dei ticket, come nel precedente esempio di erogazione dei prestiti. - - - Prova PoolTogether - - - - -### Scambiare token {#swaps} - -Esistono migliaia di token su Ethereum. Le piattaforme di scambio decentralizzate (DEX), consentono di scambiare token differenti, ogni volta che vuoi. Non rinunci mai al controllo delle tue risorse. Funzionano similmente al cambio di valuta, quando si visita un paese estero. Ma la versione della DeFi non chiude mai. I mercati sono aperti 24/7, 365 giorni l'anno e, la tecnologia, garantisce che ci sia sempre qualcuno che accetti uno scambio. - -Ad esempio, se desideri utilizzare la lotteria priva di perdite di PoolTogheter (descritta sopra), necessiterai di un token come DAI o USDC. Queste DEX ti consentono di scambiare i tuoi ETH per tali token, e viceversa quando hai finito. - - - Visualizza le piattaforme di scambio di token - - - - -### Trading avanzato {#trading} - -Esistono delle opzioni più avanzate per i trader che preferiscono avere un po' più di controllo. Ordini limitati, scambi perpetui, scambi con margine e molto altro, sono tutti possibili. Con il trading decentralizzato, hai accesso alla liquidità globale, i mercati non chiudono mai e mantieni sempre il controllo sulle tue risorse. - -Se utilizzi una piattaforma di scambio centralizzata, devi depositare le tue risorse prima di scambiarle e affidarti a essa, affinché se ne occupi. Mentre le tue risorse sono depositate, sono a rischio, poiché le piattaforme di scambio centralizzate sono bersagli attraenti per gli hacker. - - - Consulta le dapp di trading - - - - -### Fai crescere il tuo portafoglio {#investing} - -Su Ethereum, esistono dei prodotti di gestione dei fondi, che proveranno ad accrescere il tuo portafoglio, a seconda della strategia di tua scelta. Ciò è automatico, aperto a chiunque e non necessita di un responsabile umano, che riceva parte dei tuoi profitti. - -Un buon esempio è il [fondo DeFi Pulse Index (DPI)](https://defipulse.com/blog/defi-pulse-index/). Si tratta di un fondo che si ribilancia automaticamente per garantire che il tuo portafoglio includa sempre [i migliori token DeFi per capitalizzazione di mercato](https://www.coingecko.com/en/defi). Non dovrai mai gestire alcun dettaglio e potrai prelevare dai fondi, in qualsiasi momento. - - - Consulta le dapp d'investimento - - - - -### Finanzia le tue idee {#crowdfunding} - -Ethereum è una piattaforma ideale per il crowdfunding: - -- I potenziali finanziatori possono provenire da tutto il mondo: Ethereum e i suoi token sono aperti a chiunque, in tutto il mondo. -- È trasparente, così che i finanziatori possano dimostrare quanto denaro è stato raccolto. È persino possibile tracciare quanti fondi sono stati spesi in seguito. -- I finanziatori possono configurare dei rimborsi automatici se, ad esempio, ci sono scadenze specifiche o se un importo minimo non è soddisfatto. - - - Consulta le dapp di crowdfunding - - -#### Finanziamento quadratico {#quadratic-funding} - -Ethereum è un software open source e, finora, buona parte del lavoro è stata finanziata dalla community. Ciò ha comportato la crescita di un nuovo interessante modello di finanziamento: il finanziamento quadratico. Questo finanziamento ha il potenziale di migliorare il modo in cui finanzieremo tutti i tipi di beni pubblici in futuro. - -Il finanziamento quadratico assicura che i progetti che riceveranno più finanziamenti siano quelli con la domanda più unica. In sintesi, i progetti che cercano di migliorare la vita del maggior numero di persone. Ecco come funziona: - -1. È presente un gruppo corrispondente di fondi donati. -2. Una serie di finanziamenti pubblici è avviata. -3. Le persone possono segnalare la propria domanda per un progetto, donando del denaro. -4. Una volta terminata la serie, il gruppo corrisponente è distribuito ai progetti. Quelli con la domanda più unica, ricevono l'importo maggiore dal gruppo corrispondente. - -Ciò significa che il Progetto A, con le sue 100 donazioni da 1 dollaro, potrebbe ricevere maggiori finanziamenti del Progetto B, con una singola donazione da 10.000 dollari (a seconda delle dimensioni del gruppo corrispondente). - -[Di più sul finanziamento quadratico](https://wtfisqf.com) - - - -### Assicurazione {#insurance} - -Le assicurazioni decentralizzate mirano a rendere le assicurazioni più economiche, veloci da pagare e trasparenti. Con un'automazione maggiore, la copertura è più conveniente e i rimborsi sono molto più rapidi. I dati utilizzati per decidere in merito alle tue richieste, sono completamente trasparenti. - -I prodotti di Ethereum, come qualsiasi altro software, possono essere soggetti a bug ed exploit. Quindi, al momento, molti prodotti assicurativi nello spazio, si incentrano sulla protezione degli utenti dalla perdita dei fondi. Esistono però progetti che iniziano a proporre coperture contro tutti i possibili eventi che la vita può portare con sé. Un ottimo esempio è la copertura Etherisc's Corp, mirata a [proteggere i piccoli agricoltori in Kenya dalle siccità e le inondazioni](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). L'assicurazione decentralizzata può fornire coperture più economiche per gli agricoltori, spesso tagliati fuori dalle assicurazioni tradizionali. - - - Consulta le dApp assicurative - - - - -### Aggregatori e gestori di portfolio {#aggregators} - -Con così tante cose in ballo, necessiterai di un metodo per monitorare tutti i tuoi investimenti, prestiti e scambi. Esistono molti prodotti che ti consentono di coordinare tutte le tue attività di DeFi, da un singolo posto. È il bello dell'architettura aperta della DeFi. I team possono creare interfacce da cui puoi non soltanto visualizzare i tuoi saldi tra i vari prodotti, ma puoi anche utilizzarne le funzionalità. Potresti trovarlo utile, esplorando di più sulla DeFi. - - - Consulta le dapp del portfolio - - - - -## Come funziona la DeFi? {#how-defi-works} - -La DeFi utilizza le criptovalute e i contratti intelligenti per fornire servizi che non necessitano di intermediari. Nel mondo finanziario odierno, le istituzioni agiscono da garanti delle transazioni. Ciò dà alle istituzioni un immenso potere, poiché il denaro confluisce attraverso di esse. Inoltre, miliardi di persone in tutto il mondo non possono nemmeno accedere a un conto bancario. - -Nella DeFi, un contratto intelligente sostituisce l'istituzione finanziaria nella transazione. Un contratto intelligente è un tipo di conto di Ethereum, capace di detenere fondi e inviarli o rimborsarli, a seconda di certe condizioni. Nessuno può alterare tale contratto intelligente, una volta attivato: sarà eseguito per sempre così com'è stato programmato. - -Un contratto progettato per recapitare un'indennità o un salario, potrebbe essere programmato per inviare denaro dal Conto A al Conto B, ogni venerdì. E continuerà a farlo finché il Conto A conterrà i fondi necessari. Nessuno può modificare il contratto e aggiungere un Conto C come destinatario, per rubare i fondi. - -Inoltre, i contratti, sono pubblici per l'ispezione e controllo da parte di chiunque. Ciò significa che i contratti malevoli finiscono sotto esame della community, abbastanza rapidamente. - -Ciò significa che, al momento, è necessario affidarsi ai membri più tecnici della community di Ethereum, capaci di leggere il codice. La community basata sull'open source aiuta a mantenere sotto controllo gli sviluppatori, ma tale esigenza si ridurrà nel tempo, al semplificarsi della lettura dei contratti intelligenti, nonché allo sviluppo di altri metodi per dimostrare l'affidabilità del codice. - -## Ethereum e la DeFi {#ethereum-and-defi} - -Ethereum è la base perfetta per la DeFi, per diverse ragioni: - -- Nessuno possiede Ethereum o i contratti intelligenti che vi risiedono: ciò dà a tutti l'opportunità di utilizzare la DeFi. Ciò significa inoltre che nessuno può modificare le regole. -- I prodotti della DeFi parlano tutti la stessa lingua, dietro le quinte: Ethereum. Ciò significa che molti prodotti funzionano insieme, senza problemi. Puoi erogare token su una piattaforma e scambiare il token fruttifero di interessi in un altro mercato, su un'applicazione interamente differente. È esattamente come poter incassare punti fedeltà, presso la propria banca. -- I token e le criptovalute si basano su Ethereum, un libro contabile condiviso: tenere traccia delle transazioni e della proprietà è la specialità di Ethereum. -- Ethereum offre la massima libertà finanziaria: gran parte dei prodotti non assumerà mai la custodia sui tuoi fondi, lasciandoti il pieno controllo. - -Puoi pensare alla DeFi in termini di strati: - -1. La blockchain: Ethereum contiene lo storico delle transazioni e lo stato dei conti. -2. Le risorse: gli [ETH](/eth/) e gli altri token (valute). -3. I protocolli: [contratti intelligenti](/glossary/#smart-contract) che forniscono la funzionalità, ad esempio, un servizio che consente il prestito decentralizzato delle risorse. -4. [Le applicazioni](/dapps/): i prodotti che utilizziamo per gestire e accedere ai protocolli. - -## Creare DeFi {#build-defi} - -La DeFi è un movimento open source. I protocolli e le applicazioni della DeFi sono tutti aperti all'ispezione, biforcazione e innovazione, da parte di chiunque. Per questo stack stratificato (tutti condividono la stessa blockchain di base e le stesse risorse), i protocolli possono essere mescolati e abbinati, per offrire combinazioni e opportunità uniche. - - - Di più sulla creazione di dapp - - -## Ulteriori letture {#futher-reading} - -### Dati sulla DeFi {#defi-data} - -- [DeFi Prime](https://defiprime.com/) -- [DeFi Llama](https://defillama.com/) -- [DeFi Rate](https://defirate.com/) - -### Articoli sulla DeFi {#defi-articles} - -- [Una guida per principianti alla DeFi](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, 6 gennaio 2020_ - -### Video {#videos} - -- [Finematics: istruzione finanziaria decentralizzata](https://finematics.com/): _Viddeo sulla DeFi_ -- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq): _Fondamenti di DeFi: Tutto ciò che devi sapere per muovere i primi passi, in questo spazio talvolta sconcertante._ -- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _Cos'è la DeFi?_ - -### Community {#communities} - -- [Server Discord di DeFi Llama](https://discord.gg/buPFYXzDDd) -- [Server Discord di DeFi Pulse](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/it/deprecated-software/index.md b/src/content/translations/it/deprecated-software/index.md deleted file mode 100644 index 83ca4443abe..00000000000 --- a/src/content/translations/it/deprecated-software/index.md +++ /dev/null @@ -1,482 +0,0 @@ ---- -title: Software obsoleto -description: Software che è stato abbandonato dai suoi manutentori -lang: it -sidebarDepth: 2 ---- - -# Software obsoleto {#summary-deprecated-software} - -Questo è un elenco dei progetti e delle risorse chiave relativi ad Ethereum che sono diventati obsoleti o che non sono più mantenuti. È importante mettere in evidenza il lavoro obsoleto così che gli utenti possano trovare alternative valide e per evitare che vengano distribuite versioni malevoli. - -Questo elenco è curato dalla nostra comunità. Se c'è qualcosa di mancante o incorretto, si prega di modificare la pagina! - -## Proof of Work {#pow} - -[Proof of work ](/developers/docs/consensus-mechanisms/pow) è il motore di consenso che è stato implementato in Ethereum fino a settembre 2022. È diventato obsoleto quando Ethereum è passato al meccanismo di consenso basato su [proof-of-stake](/developers/docs/consensus-mechanisms/pos). Questo è stato raggiunto abbandonando le parti del software del client relative al mining in proof-of-work, incluso [Ethhash](/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethhash) (l'algoritmo di mining) e tutta la logica di consenso e la funzionalità di gossip del blocco che era stata originariamente integrata nei client di esecuzione. I client stessi non sono diventati obsoleti ma lo sono molti dei loro componenti principali. Il concetto di proof-of-work è stato abbandonato come effetto globale della rimozione delle relative componenti del software del client. - -## Software {#software} - -Questa sezione è dedicata ai software per desktop, per riga di comando o per server che sono diventati obsoleti. I tipi principali sono portafogli, ambienti di sviluppo integrati, linguaggi e client Ethereum. È assolutamente necessario fare attenzione a non installare software obsoleto a meno che non si sia certi che provenga dalla fonte originale, per esempio: un repository contenuto all'interno di https://github.com/ethereum. - -### OpenEthereum {#open-ethereum} - -

- -

- -Obsoleto dal luglio 2021 - -**Riepilogo** - -OpenEthereum è stata la seconda implementazione principale di Ethereum per numero di nodi. OpenEthereum ha svolto un ruolo importante come infrastruttura chiave per alcuni dei maggiori utenti di Ethereum come Etherscan e Gnosis Safe. La sua capacità di tracciamento lo distinguono dagli altri client, garantendo una sincronizzazione affidabile e veloce per i fornitori di dati. - -**Archivi** - -[Repo Github archiviati](https://github.com/openethereum/openethereum) - -**Storia** - -OpenEthereum è stata costruita da miner, fornitori di servizi e borse che necessitano di una sincronizzazione veloce e un tempo di attività massimo. OpenEthereum ha fornito l'infrastruttura di base essenziale per servizi veloci ed affidabili. - -**Alternative** - -[Confronta tutte le opzioni del client di esecuzione di Ethereum](/developers/docs/nodes-and-clients/#execution-clients). - -### Grid {#grid} - -

- -

- -Obsoldeto dal 10 dicembre 2020 - -**Riepilogo** - -Grid era una applicazione desktop basata su JavaScript che permetteva di accedere in modo sicuro ad Ethereum, IPFS e ad altre reti decentralizzate. Ha fornito un'interfaccia intuitiva per aiutare un pubblico meno tecnico ad interagire in modo sicuro con le dapp, aumentando l'accessibilità per tutti. - -**Archivi** - -[Repo Github archiviati](https://github.com/ethereum/grid) - -**Storia** - -Grid potrebbe essere visto come il successore di Mist, anche essa un'applicazione desktop standalone basata su JavaScript che includeva un nodo Geth. Grid ha rimosso l'aspetto del portafoglio e ha aggiunto un approccio in stile plugin per l'esecuzione di diversi tipi di nodi. - -**Alternative** - -[DAppNode](https://dappnode.io/) è una piattaforma per distribuire e ospitare dapp, client P2P e nodi blockchain. - -### Ethereum Studio {#ethereum-studio} - -

- -

- -Obsoleto dal 7 dicembre 2020 - -**Riepilogo** - -Ethereum Studio era un IDE basato sul web che permetteva agli utenti di creare e testare contratti intelligenti, così come di costruire i front-end per essi. - -**Archivi** - -[Repo Github archiviati](https://github.com/SuperblocksHQ/ethereum-studio) - -**Storia** - -Ethereum Studio è stato sviluppato per fornire agli utenti un IDE con una blockchain Ethereum ed un compilatore Solidity integrati. In aggiunta a questo ha fornito la possibilità di modificare il codice in tempo reale e di esportare dapp complete senza bisogno di un terminale. - -**Alternative** - -[Remix](https://remix.ethereum.org/) è un IDE web alternativo per lo sviluppo in Solidity. Inoltre il [Portale per sviluppatori](/developers/) ha strumenti per lo sviluppo su web e in locale, documentazione e molto altro. - -### Portafoglio Meteor Dapp {#meteor-dapp-wallet} - -

- -

- -Obsoleto dal 27 marzo 2019 - -**Riepilogo** - -Il portafoglio Meteor Dapp era un componente di Mist, un portafoglio di Ethereum per gestire i conti di Ethereum ed interagire con i contratti intelligenti. Per tanti anni l'interfaccia utente web del portafoglio Mereor Dapp è stata ospitata come sottodominio, "wallet.ethereum.org". - -Era incluso anche il contratto multifirma di Mist (codice Solidity), e il portafoglio Meteor Dapp presentava un'interfaccia utente per la sua configurazione e distribuzione. - -**Non obsoleto: multifirma di Mist distribuiti** - -Il contratto multifirma di Mist - distribuito come bytecode sulla Rete Principale di Ethereum da migliaia di utenti - continua ad essere usato per memorizzare e gestire valore senza incidenti. [Come interagire con un contratto multifirma di Mist](https://support.mycrypto.com/how-to/sending/how-to-interact-with-a-multisig-contract) fornisce una buona panoramica su come usare i contratti intelligenti. - -**Archivi** - -[Repo Github archiviati](https://github.com/ethereum/meteor-dapp-wallet) - -**Storia** - -Vedi Mist qui sotto. - -**Alternative** - -Visita la pagina dei [Portafogli di Ethereum](/wallets/) su ethereum.org. - -### Mist {#mist} - -

- -

- -Obsoleto dal 27 marzo 2019 - -**Riepilogo** - -Mist era un browser specializzato costruito con Electron che permetteva agli utenti di gestire conti di Ethereum e di interagire con dapp ospitate nel web tradizionale. - -**Archivi** - -[Repo Github archiviati](https://github.com/ethereum/mist) - -**Storia** - -Mist è stato un importante esperimento iniziale perché ha esplorato come gestire le chiavi di Ethereum, ha fatto conoscere agli utenti gli strumenti finanziari, come i contratti multifirma, e ha dimostrato com avrebbe funzionato il Web3. Ha anche mostrato agli utenti innovazioni come i blockies, grafiche carine e memorabili in stile 8-bit che rappresentano le chiavi di Ethereum. - -**Alternative** - -[MetaMask](https://metamask.io/) è un portafoglio nel browser che permette di gestire le chiavi di Ethereum e di interagire con le dapp. È disponibile come un'estensione per Google Chrome e Firefox ed è incluso nel [Browser Brave](https://brave.com/). - -### Mix {#mix} - -Obsoleto dall'11 agosto 2016 - -**Riepilogo** - -Mix era un IDE sviluppato in C++ che permetteva agli sviluppatori di costruire e distribuire contratti intelligenti su Ethrerum. - -**Archivi** - -[Repo Github archiviati](https://github.com/ethereum/mix) - -**Storia** - -Mix è stato la prima delle applicazioni legate ad Ethereum. Guarda questa [presentazione di Gavin Wood al Devcon0](https://www.youtube.com/watch?v=hcP_z_wBlaM). - -**Alternative** - -[Remix](https://remix.ethereum.org/) è un IDE ospitato su browser per lo sviluppo, il testing e la distribuzione di contratti intelligenti in Solidity. Ha anche una soluzione desktop. - -### Minimal {#minimal} - -Obsoleto dal 2020. - -**Riepilogo** - -Minimal era un'implementazione modulare della blockchain di Ethereum scritta in Go. - -**Archivi** - -[Repo Github archiviati](https://github.com/umbracle/minimal) - -**Storia** - -Minimal è stato sostituito da [polgon-sdk](https://github.com/0xPolygon/polygon-edge) - -### Hyperledger Burrow {#hyperledger-burrow} - -Obsoleto dal 2022. - -**Riepilogo** - -Hyperledger Burrow era un nodo blockchain autorizzato di contratti intelligenti di Ethereum. Eseguiva il codice dei contratti intelligenti dell'EVM di Ethereum e di WASM su macchine virtuali autorizzate. - -**Archivi** - -[Repo Github archiviati](https://github.com/hyperledger/burrow) - -### Mana-Ethereum {#mana-ethereum} - -**Riepilogo** - -Mana-Ethereum era un client Ethereum costruito usando Elixir. - -**Archivi** - -[Repo Github archiviati](https://github.com/mana-ethereum/mana) - -**Storia** - -Il repository GitHub di Mana-Ethereum non è stato esplicitamente archiviato, ma l'ultimo commit è del 2019. - -### Aleth (cpp-ethereum) {#aleth} - -Obsoleto dal 6 ottobre 2021 - -**Riepilogo** - -Aleth (precedentemente noto come cpp-ethereum) era un client di Ethereum scritto in C++. - -**Archivi** - -[Repo Github archiviati](https://github.com/ethereum/aleth) - -**Storia** - -Aleth è stato il terzo client più popolare per Ethereum prima di essere abbandonato il 6 ottobre 2021. - -**Alternative** - -[Geth](https://geth.ethereum.org/) è un noto client Ethereum alternativo. - -### Ethereum-H {#ethereum-h} - -**Archivi** - -Gli archivi di Ethereum-H sono stati rimossi da GitHub. - -**Storia** - -Ethereum-H era un client Ethereum scritto in Haskell. È stato abbandonato intorno al 2015. - -**Alternative** - -[Geth](https://geth.ethereum.org/), [Nethermind](http://nethermind.io/), [Besu](https://besu.hyperledger.org/en/stable/) e [Erigon](https://github.com/ledgerwatch/erigon) sono valide alternative di client Ethereum - non esiste attualmente un client in Haskell. - -### ruby-ethereum {#ruby-ethereum} - -**Archivi** - -[Repo GitHib di ruby-ethereum](https://github.com/cryptape/ruby-ethereum) - -**Storia** - -ruby-ethereum era un client Ethereum scritto in Ruby. È stato abbandonato intorno al 2018. - -**Alternative** - -[Geth](https://geth.ethereum.org/), [Nethermind](http://nethermind.io/), [Besu](https://besu.hyperledger.org/en/stable/) e [Erigon](https://github.com/ledgerwatch/erigon) sono valide alternative di client Ethereum. Non esiste più un client in Ruby attivo. - -### Parity {#parity} - -

- -

- -Obsoleto dal 2 giugno 2020 - -**Riepilogo** - -Parity era un client Ethereum scritto in Rust. - -**Archivi** - -[Repo Github archiviati](https://github.com/openethereum/parity-ethereum) - -**Storia** - -Essendo uno dei due principali client validi nei primi anni di Ethereum (l'altro era Geth), Parity costituiva una parte fondamentale dell'ecosistema. Durante gli attacchi di Shanghai del 2016, Parity ha permesso alla rete di Ethereum di continuare a operare mentre il funzionamento di client come Geth era stato interrotto dall'attacco, dimostrando l'importanza della diverstià dei client. - -**Alternative** - -[Erigon](https://github.com/ledgerwatch/erigon) Erigon (precedentemente chiamato Turbo-Geth) è un client Ethereum di nuova generazione sulla frontiera dell'efficienza scritto in Go. - -**Nota:** _il progetto successore al client Ethereum Parity era [OpenEthereum](https://github.com/openethereum/openethereum) **che intanto diventato obsoleto.**_ - -La risorsa ["Avvia il tuo nodo di Ethereum"](/developers/docs/nodes-and-clients/run-a-node/#getting-the-client) su ethereum.org include una sezione per scaricare, installare ed eseguire un client Ethereum. - -### Trinity {#trinity} - -

- -

- -Obsoleto dal 1° luglio 2021 - -**Riepilogo** - -Trinity era un client Ethereum basato su python che fungeva da strumento di ricerca e di formazione per la community. Un elevato numero di moduli basati su python legati a Trinity continuano ad essere mantenuti dallo stesso team, incluso [Py-EVM](https://github.com/ethereum/py-evm). - -**Archivi** - -[Repo Github archiviati](https://github.com/ethereum/trinity) - -**Storia** - -Trinity è stato il progetto successivo a [pyethereum](https://github.com/ethereum/pyethereum/tree/b704a5c6577863edc539a1ec3d2620a443b950fb), un client Ethereum iniziale basato su python. - -**Alternative** - -La risorsa ["Avvia il tuo nodo di Ethereum"](/developers/docs/nodes-and-clients/run-a-node/#getting-the-client) su ethereum.org include una sezione per scaricare, installare ed eseguire un client Ethereum. - -Il progetto [EthereumJS](https://github.com/ethereumjs) ha uno scopo di ricerca e formazione simile a Trinity. - -## Dapp e Servizi {#dapps-and-services} - -Questa sezione riguarda i servizi distribuiti sulla Rete Principale di Ethereum e su altre reti baste sull'EVM. Si tenga presente che le dapp e i servizi qui elencati potrebbero includere applicazioni DeFi che sono state hackerate o che potrebbero soffrire di vulnerabilità di sicurezza dovute alla mancanza di manutenzione, di cambiamenti nel protocollo, ecc. - -### Protocollo Cover {#cover-protocol} - -

- -

- -Chiuso nell'autunno del 2021 - -**Riepilogo** - -Cover era un protocollo assicurativo Defi che funziona su Ethereum e altre reti basate sull'EVM. - -**Archivi** - -[Sito Web](https://wayback.archive-it.org/17679/20211004074635/https://www.coverprotocol.com/) - -[Articoli Medium](https://wayback.archive-it.org/17679/20211004074633/https://coverprotocol.medium.com/) - -[Repo GitHub](https://github.com/CoverProtocol/cover-core-v1) - -[Documentazione](https://wayback.archive-it.org/17679/20211004074634/https://docs.coverprotocol.com/) - -### The DAO {#the-dao} - -Hackerato e chiuso nell'estate del 2016 - -**Riepilogo** - -The DAO era un contratto intelligente, una dapp e un forum per organizzare il finanziamento di progetti. Sfruttando una vulnerabilità, è stato svuotato della maggior parte degli ETH, portando ad una biforcazione dura organizzata dalla community per restituire gli ETH a chi li aveva depositati in The DAO. Il front-end della UX e il forum sono stati dismessi. - -**Archivi** - -[Archivio internet di "daohub.org" del 14 maggio 2016](https://web.archive.org/web/20160514105232/https://daohub.org/) - -**Storia** - -Sebbene The DAO sia fallito, il concetto è sopravvissuto. L'innovativo modello tecnico, sociale e di governance di base di The DAO è ampiamente utilizzato nelle community Defi, NFT e di progetti di finanziamento. - -["Biforcazione DAO" su ethereum.org](/history/#dao-fork) - -[Voce Wikipedia per "The DAO"]() - -**Alternative** - -["DAO" su ethereum.org](/dao/) - -[MolochDAO](https://www.molochdao.com/) - -[Gitcoin Grants](https://gitcoin.co/grants/) - -### SparkPool {#sparkpool} - -

- -

- -Chiuso nell'autunno del 2021 - -**Riepilogo** - -Con sede a Hangzhou, il servizio e la community di SparkPool sono stati uno dei più grandi pool di mining incentrati su Ethereum al mondo. - -**Archivi** - -**Storia** - -Associato alla community EthFans, il servizio è stato lanciato nel 2015. SparkPool è stato smantellato nell'autunno del 2021 a causa di norme giuridiche più rigorose. - -**Alternative** - -[Ethermine](https://ethermine.org/) - -## Documentazione e fonti informative {#documentation-and-information-sources} - -Esistono numerose fonti di documentazione, articoli, tutorial e forum che sono stati rimossi o ancora online ma non più mantenuti. Ne abbiamo selezionati alcuni che sono significativi o il cui attuale stato di "obsoleto" potrebbe portare a confusione o tentativi di truffe. - -### Legacy Wiki ed eth.wiki {#eth-wiki} - -**Riepilogo** - -Legacy Wiki ed eth.wiki erano wiki mantenute dalla Ethereum Foundation per la community più ampia. Erano principalmente orientate ad ospitare descrizioni dettagliate degli aspetti chiave della piattaforma Ethereum e al riepilogo delle tabelle di marcia tecniche. - -**Archivi** - -[Repo Github archiviato per eth.wiki](https://github.com/ethereum/eth-wiki) - -[Repo Github archiviato per Legacy Wiki](https://github.com/ethereum/wiki/wiki) - -**Storia** - -Legacy Wiki era un wiki GitHub ed un primissimo centro di contenuti tecnici (incluso il Whitepaper originale di Ethereum). Nel corso del tempo, gli sviluppatori di Ethereum hanno migrato la loro documentazione, le specifiche e le descrizioni tecniche ad altre piattaforme quali [Leggi la documentazione](https://readthedocs.org/) e i contenuti ospitati su GitHub. - -Nel 2019 e nel 2020, eth.wiki è divenuto il successore di Legacy Wiki, ma non si è creata una community duratura di collaboratori. - -**Alternative** - -Contenuto basato sulla community: [sito web Ethereum.org](/) - -I progetti software di Ethereum spesso ospitano la loro documentazione in [Leggi la documentazione](https://readthedocs.org/) - -Specifiche tecniche ospitate su GitHub: [EIP](https://github.com/ethereum/EIPs), [Specifiche di esecuzione](https://github.com/ethereum/execution-specs), [Specifiche di consenso](https://github.com/ethereum/consensus-specs) - -### forum.ethereum.org {#forum-ethereum-org} - -**Riepilogo** - -Il Forum della Community di Ethereum era un forum di discussione mantenuto dalla Ethereum Foundation ed ospitato su forum Vanilla. Usava il sottodominio "forum.ethereum.org". - -**Archivi** - -URL dell'archivio: [https://wayback.archive-it.org/16516/20210618210825/https://forum.ethereum.org/](https://wayback.archive-it.org/16516/20210618210825/https://forum.ethereum.org/) - -**Storia** - -Questo Forum è stato il primo forum "ufficiale" di discussione per la community di Ethereum. Insieme a [/r/ethereum](https://reddit.com/r/ethereum) e ad alcuni canali Skype, è stato un importante punto di coordinamento per sviluppatori, progettisti e organizzatori. Nel corso degli anni i partecipanti al Forum si sono spostati ed è divenuto più un posto per la community dei miner. - -**Alternative** - -[/r/ethereum](https://reddit.com/r/ethereum), e un gran numero di forum di DAO e di server Discord. - -## Canali Gitter {#gitter-channels} - -### AllCoreDevs {#allcorewdevs-gitter} - -**Riepilogo** - -AllCoreDevs su Gitter era il principale canale di comunicazione pubblico di coordinamento per gli [sviluppatori del nucleo dei client Ethereum](https://github.com/ethereum/pm/). - -**Archivi** - -[Canale ethereum/AllCoreDevs su Gitter](https://gitter.im/ethereum/AllCoreDevs) - -**Alternative** - -Si prega di utilizzare il canale "allcoredevs" sul [server Discord in EthR&D](https://discord.gg/qHv7AjTDuK) - -### EthereumJS {#ethereumjs-gitter} - -**Riepilogo** - -EthereumJS su Gitter era il principale canale di comunicazione pubblico di coordinamento per il [progetto EthereumJS](https://ethereumjs.github.io/). - -**Archivi** - -[canale ethereum/EthereumJS su Gitter](https://gitter.im/ethereum/ethereumjs) - -**Alternative** - -Utilizzare il [server Discord di EthereumJS](https://discord.gg/TNwARpR) diff --git a/src/content/translations/it/desci/index.md b/src/content/translations/it/desci/index.md deleted file mode 100644 index 6773f2eb666..00000000000 --- a/src/content/translations/it/desci/index.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: Scienza Decentralizzata (DeSci) -description: Una panoramica della scienza decentralizzata su Ethereum -lang: it -template: use-cases -emoji: ":microscope:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Un'alternativa globale e aperta al sistema scientifico corrente. -summaryPoint2: Una tecnologia che consente agli scienziati di raccogliere fondi, svolgere esperimenti, condividere dati, distribuire conoscenza, e molto altro. -summaryPoint3: Basata sul movimento della scienza aperta. ---- - -## Cos'è la scienza decentralizzata (DeSci)? {#what-is-desci} - -La scienza decentralizzata (DeSci) è un movimento che mira alla creazione di un'infrastruttura pubblica, per finanziare, creare, revisionare, accreditare, memorizzare e disseminare conoscenze scientifiche, in modo giusto ed equo, utilizzando lo stack del Web3. - -La DeSci vuole creare un ecosistema in cui gli scienziati siano incentivati alla condivisione aperta delle proprie ricerche, ricevendo credito per il proprio operato, pur consentendo a chiunque di accedere e contribuire facilmente alla ricerca. La DeSci sfrutta l'idea che la conoscenza scientifica dovrebbe essere accessibile a tutti e che il procedimento di ricerca scientifica dovrebbe essere trasparente. La DeSci punta a creare un modello di ricerca scientifica più decentralizzato e distribuito, rendendolo più resistente alla censura e al controllo delle autorità centrali. La DeSci spera di creare un ambiente in cui le idee innovative e non convenzionali, possano prosperare, decentralizzando l'accesso a finanziamenti, strumenti scientifici e canali di comunicazione. - -La scienza decentralizzata consente fonti di finanziamento più diversificate (dalle [DAO](/dao/) alle [donazioni quadratiche](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), fino al crowdfunding, e molto altro), accesso a dati e metodi più accessibile, fornendo incentivi per la riproducibilità. - -### Juan Benet: Il Movimento della DeSci - - - -## In che modo la DeSci migliora le scienze? {#desci-improves-science} - -Un elenco incompleto dei problemi chiave della scienza, e di come la scienza decentralizzata possa aiutare ad affrontarli - -| **Scienza decentralizzata** | **Scienza tradizionale** | -| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | -| La distribuzione dei fondi è determinata dal pubblico, utilizzando meccanismi quali le donazioni quadratiche o le DAO. | Piccoli gruppi chiusi e centralizzati controllano la distribuzione dei fondi. | -| Collabori con colleghi da tutto il mondo, all'interno di team dinamici. | Le organizzazioni di finanziamento e le istituzioni nazionali, limitano le tue collaborazioni. | -| Le decisioni di finanziamento sono effettuate online, e in modo trasparente. Sono esplorati nuovi meccanismi di finanziamento. | Le decisioni di finanziamento richiedono tempi lunghi e presentano una trasparenza limitata. Esistono pochi meccanismi di finanziamento. | -| La conivisione dei servizi di laboratorio è semplificata e resa più trasparente, utilizzando i primitivi del Web3. | La condivisione delle risorse di laboratorio è spesso lenta e opaca. | -| Possono essere sviluppati nuovi modelli di pubblicazione che sfruttano i primitivi del Web3, negli ambiti di fiducia, trasparenza e accesso universale. | La pubblicazione avviene tramite percorsi prestabiliti, frequentemente inefficienti, parziali e sfruttatori. | -| Puoi guadagnare token e reputazione, per la revisione del lavoro dei colleghi. | La revisione del lavoro non è pagata, a beneficio dei profitti degli editori. | -| Possiedi la proprietà intellettuale (IP) che generi, e la distribuisci secondo termini trasparenti. | L'istituzione nazionale possiede l'IP che generi. L'accesso all'IP non è trasparente. | -| L'intera ricerca è condivisa, inclusi i dati da tentativi infruttuosi, svolgendo tutti i passaggi sulla catena. | I pregiudizi di pubblicazione precludono che sia più probabile che i ricercatori condividano esperimenti dagli esiti positivi. | - -## Ethereum e la DeSci {#ethereum-and-desci} - -Un sistema di scienza decentralizzata necessiterà di una sicurezza robusta, costi finanziari e di transazione minimi, e un ricco ecosistema per lo sviluppo di applicazioni. Ethereum fornisce tutto il necessario per lo sviluppo di uno stack scientifico decentralizzato. - -## Casi d'uso della DeSci {#use-cases} - -La DeSci sta sviluppando gli strumenti scientifici per accogliere il mondo accademico del Web2, nel mondo digitale. Segue un campionamento dei casi d'uso che il Web3 può offrire alla comunità scientifica. - -### Pubblicazione {#publishing} - -La pubblicazione scientifica è notoriamente problematica, poiché è gestita da case editrici che si affidano al lavoro gratuito di scienziati, revisori ed editori, per generare i documenti, addebitando poi esorbitanti spese di pubblicazione. Il pubblico, che solitamente paga indirettamente i costi del lavoro e della pubblicazione tramite la tassazione, spesso, non può accedere allo stesso lavoro senza pagare nuovamente l'editore. Le spese totali per la pubblicazione di singoli documenti scientifici, superano spesso le cinque cifre ($USD), compromettendo l'intero concetto di conoscenza scientifica come un [bene comune](https://www.econlib.org/library/Enc/PublicGoods.html), e generando enormi profitti per un piccolo gruppo di editori. - -Esistono delle piattaforme libere e ad accesso aperto, nella forma di server pre-stampa, [come ArXiv](https://arxiv.org/). Tuttavia, tali piattaforme mancano del controllo di qualità, di [meccanismi anti-Sybil](https://csrc.nist.gov/glossary/term/sybil_attack) e, in genere, non monitorano i parametri degli articoli; ciò vuol dire che, spesso, sono utilizzate esclusivamente per pubblicizzare il lavoro, prima del suo invio all'editore tradizionale. Anche SciHub rende i documenti pubblicati liberamente accessibili, ma non legalmente, e soltanto dopo che gli editori hanno ricevuto il proprio pagamento, nonché dopo l'applicazione di rigide legislazioni sul diritto d'autore. Ciò crea un'importante lacuna per i documenti e dati scientifici accessibili, dotati di un meccanismo di legittimità e un modello d'incentivazione incorporati. Gli strumenti per creare un simile sistema, esistono nel Web3. - -### Riproducibilità e replicabilità {#reproducibility-and-replicability} - -La riproducibilità e la replicabilità sono alle basi della scoperta scientifica di qualità. - -- I risultati riproducibili possono essere ottenuti svariate volte di fila dallo stesso team, utilizzando la stessa metodologia. -- I risultati replicabili possono essere ottenuti da un gruppo differente, utilizzando le stesse attrezzature sperimentali. - -I nuovi strumenti nativi del Web3 possono assicurare che riproducibilità e replicabilità siano alla base della scoperta. Possiamo intessere la scienza di qualità nel tessuto tecnologico accademico. Il Web3 offre la capacità di creare attestazioni per ogni componente d'analisi: i dati grezzi, il motore di calcolo e il risultato dell'applicazione. La bellezza dei sistemi di consenso sta nel fatto che, quando una rete affidabile viene creata per mantenere tali componenti, ogni partecipante della rete può essere responsabile della riproduzone del calcolo e della convalida di ogni risultato. - -### Finanziamento {#funding} - -Il modello standard odierno per il finanziamento scientifico, prevede che individui o gruppi di scienziati, presentino richieste scritte a un'agenzia di finanziamento. Un piccolo comitato di individui fidati valuta le richieste e, in seguito, intervista i candidati, prima di concedere fondi a una piccola porzione di richiedenti. Oltre a creare rallentamenti che conducono, talvolta, ad anni d'attesa tra la richiesta e la ricezione della sovvenzione, questo modello è noto per essere molto vulnerabile ai pregiuizi, agli interessi personali e alle politiche del comitato di revisione. - -Degli studi hanno dimostrato che i comitati di revisione delle sovvenzioni, svolgono un lavoro mediocre nella selezione di proposte di alta qualità, poiché le stesse proposte, date a diversi comitati, producono risultati ampiamente differenti. Al ridursi dei finanziamenti, questi si concentrano su un gruppo più piccolo di ricercatori più anziani, con progetti intellettualmente più conservatori. L'effetto ha creato un panorama di finanziamento super competitivo, radicando incentivi perversi e asfissiando l'innovazione. - -Il Web3 ha il potenziale di sconvolgere tale modello corrotto di finanziamento, sperimentando con svariati modelli d'incentivazione, ampiamente sviluppati dalle DAO e dal Web3. Il [finanziamento retroattivo dei beni pubblici](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), il [finanziamento quadratico](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), la [governance delle DAO](https://www.antler.co/blog/daos-and-web3-governance) e le [strutture d'incentivazione tokenizzate](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design), sono solo alcuni degli strumenti del Web3 che potrebbero rivoluzionare il finanziamento scientifico. - -### Proprietà e sviluppo della IP {#ip-ownership} - -La proprietà intellettuale (IP), rappresenta un grosso problema per la scienza tradizionale: dall'essere bloccata nelle università o inutilizzata nelle aziende biotecnologiche, fino all'essere notoriamente difficile da valorizzare. Tuttavia, la proprietà delle risorse digitali (quali dati o articoli scientifici), è qualcosa che il Web3 gestisce eccezionalmente bene, utilizzando i [token non fungibili (NFT)](/nft/). - -Allo stesso modo in cui i NFT possono approvare entrate per le transazioni future al creatore originale, puoi stabilire catene di attribuzione del valore trasparenti, per ricompensare i ricercatori, i corpi governativi (come le DAO), o persino i soggetti di cui sono stati raccolti i dati. - -Inoltre, i [IP-NFT](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6), possono funzionare come chiavi a una repository di dati decentralizzati degli esperimenti di ricerca svolti, nonché collegarsi ai NFT e alla finanziarizzazione della [DeFi](/defi/) (dalla frazionalizzazione ai gruppi di erogazione di prestiti, fino alla perizia del valore). Inoltre, consente nativamente alle entità sulla catena, come le DAO (ad esempio, [VitaDAO](https://www.vitadao.com/)), di condurre le ricerche direttamente sulla catena. L'avvento dei [token "vincolati"](https://vitalik.ca/general/2022/01/26/soulbound.html) e non trasferibili, potrebbe ricoprire un importante ruolo anche nella DeSci, consentendo agli individui di dimostrare la propria esperienza e le proprie credenziali, collegate al proprio indirizzo di Ethereum. - -### Archiviazione, accesso e architettura dei dati {#data-storage} - -I dati scientifici possono essere resi ampiamente più accessibili, utilizzando i modelli del Web3, e l'archiviazione distribuita consente alle ricerche di sopravvivere a eventi catastrofici. - -Il punto di partenza dev'essere un sistema accessibile a qualsiasi identità che possieda delle credenziali verificabili adeguate. Ciò consente alle parti fidate di replicare in sicurezza i dati sensibili, consentendo la resistenza alla ridondanza e alla censura, la riproduzione dei risultati, e persino la capacità di numerose parti di collaborare e aggiungere nuovi dati al dataset. I metodi di calcolo confidenziali, come il "[compute-to-data](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol)" (dal calcolo ai dati), forniscono meccanismi d'accesso alternativo alla replicazione dei dati non elaborati, creando Ambienti di Ricerca Attendibili, per i dati più sensibili. Gli Ambienti di Ricerca Attendibili sono stati [citati dal NHS](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) come una soluzion rivolta al futuro, nei confronti dell'anonimato dei dati e della collaborazione, tramite la creazione di un'ecosistema in cui i ricercatori possano lavorare in sicurezza con i dati in loco, utilizzando ambienti standardizzati per la condivisione di codice e pratiche. - -Le soluzioni di dati flessibili del Web3, supportano gli scenari precedenti, fornendo le basi per una scienza realmente aperta, in cui i ricercatori possono creare beni collettivi, senza autorizzazioni o commissioni d'accesso. Le soluzioni di dati pubblici del Web3, come IPFS, Arweave e Filecoin, sono ottimizzate per la decentralizzazione. dClimate, ad esempio, fornisce l'accesso universale ai dati climatici e meteorologici, inclusi quelli provenienti da stazioni meteorologiche e da modelli climatici previsionali. - -## Partecipa {#get-involved} - -Esplora i progetti e unisciti alla community della DeSci. - -- [DeSci.Global: eventi globali e calendario di incontri](https://desci.global) -- [Telegram di "Blockchain for Science"](https://t.me/BlockchainForScience) -- [Molecule: finanzia e ricevi finanziamenti per i tuoi progetti di ricerca](https://discover.molecule.to/) -- [VitaDAO: ricevi finanziamenti tramite accordi di ricerca sponsorizzati per la ricerca sulla longevità](https://www.vitadao.com/) -- [ResearchHub: pubblica un risultato scientifico e conversa con i colleghi](https://www.researchhub.com/) -- [LabDAO: piega una proteina in-silico](https://alphafodl.vercel.app/) -- [dClimate API: interroga i dati climatici raccolti da una community decentralizzata](https://api.dclimate.net/) -- [DeSci Foundation: sviluppatore di strumenti di pubblicazione della DeSci](https://descifoundation.org/) -- [DeSci.World: negozio unico per gli utenti per visualizzare e impegnarsi con progetti di scienza decentralizzata](https://desci.world) -- [Fleming Protocol: economia dei dati open source che alimenta la scoperta biomedica collaborativa](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [OceanDAO: finanziamenti governati dalla DAO per la scienza relativa ai dati](https://oceanprotocol.com/dao) -- [Opscientia: flussi di lavoro scientifici decentralizzati e aperti](https://opsci.io/research/) -- [LabDAO: piega una proteina in silico](https://alphafodl.vercel.app/) -- [Bio.xyz: ricevi finanziamenti per la tua DAO biotecnologica o il tuo progetto di DeSci](https://www.molecule.to/) -- [ResearchHub: pubblica un risultato scientifico e conversa con i colleghi](https://www.researchhub.com/) -- [VitaDAO: ricevi finanziamenti tramite accordi di ricerca sponsorizzati per la ricerca di longevità](https://www.vitadao.com/) -- [Fleming Protocol: economia dei dati open source che alimenta la scoperta biomedica collaborativa](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [Active Inference Lab](https://www.activeinference.org/) -- [CureDAO: piattaforma sanitaria di precisione, gestita dalla community](https://docs.curedao.org/) -- [IdeaMarkets: la credibilità scientifica decentralizzata diventa realtà](https://ideamarket.io/) -- [DeSci Labs](https://www.desci.com/) - -Accogliamo suggerimenti per nuovi progetti da elencare: per iniziare, ti preghiamo di consultare la nostra [politica di inserzione](/contributing/adding-desci-projects/)! - -## Ulteriori letture {#further-reading} - -- [Wiki della DeSci, di Jocelynn Pearl e Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) -- [Una guida alle biotecnologie decentralizzate di Jocelynn Pearl, per il futuro a16z](https://future.a16z.com/a-guide-to-decentralized-biotech/) -- [Il caso della DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) -- [Guida alla DeSci](https://future.com/what-is-decentralized-science-aka-desci/) -- [Risorse scientifiche decentralizzate](https://www.vincentweisser.com/decentralized-science) -- [IP-NFT nella Biofarmaceutica di Molecule: una descrizione tecnica](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) -- [Creare sistemi scientifici attendibili, di Jon Starr](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) -- [L'Avvento delle DAO Biotecnologiche](https://molecule.to/blog/the-emergence-of-biotech-daos) -- [Paul Kohlhaas - DeSci: Il Futuro della Scienza Decentralizzata (podcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) -- [Ontologia di Inferenza Attiva per la Scienza Decentralizzata: dalla Creazione di Senso Situazionale al Populismo Epistemico](https://zenodo.org/record/6320575) -- [DeSci: Il Futuro della Ricerca, di Samuel Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) -- [Finanziamento Scientifico (Epilogo: DeSci e nuovi cripto-primitivi), di Nadia](https://nadia.xyz/science-funding) -- [La Decentralizzazione sta Sconvolgendo lo Sviluppo Farmaceutico](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) - -### Video {#videos} - -- [Cos'è la Scienza Decentralizzata?](https://www.youtube.com/watch?v=-DeMklVWNdA) -- [Conversazione tra Vitalik Buterin e lo scienziato Aubrey de Grey, sull'intersezione tra ricerca sulla longevità e le criptovalute](https://www.youtube.com/watch?v=x9TSJK1widA) -- [La Pubblicazione Scientifica È Corrotta. Il Web3 Può Correggerla?](https://www.youtube.com/watch?v=WkvzYgCvWj8) -- [Juan Benet - DeSci, Laboratori Indipenenti e Scienza dei Dati su Larga Scala](https://www.youtube.com/watch?v=zkXM9H90g_E) -- [Sebastian Brunemeier: Come la DeSci Può Trasformare la Ricerca Biomedica e il Capitale di Rischio](https://www.youtube.com/watch?v=qB4Tc3FcVbM) 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 deleted file mode 100644 index 4f6767562c5..00000000000 --- a/src/content/translations/it/developers/docs/consensus-mechanisms/pos/block-proposal/index.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -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 comprendere questa pagina, ti consigliamo di leggere a riguardo del [proof-of-stake](/developers/docs/consensus-mechanisms/pos/) e dell'[architettura dei blocchi](/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 firmando il numero dell'epoca corrente. `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](https://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/mev/index.md b/src/content/translations/it/developers/docs/mev/index.md deleted file mode 100644 index a83e467b7e8..00000000000 --- a/src/content/translations/it/developers/docs/mev/index.md +++ /dev/null @@ -1,221 +0,0 @@ ---- -title: Valore estraibile massimo (MEV) -description: Un'introduzione al valore estraibile massimo (MEV) -lang: it ---- - -Il valore estraibile massimo (MEV) si riferisce al valore massimo che può esser estratto dalla produzione del blocco, oltre alla ricompensa standard del blocco e alle commissioni sul gas, includendo, escludendo e cambiando l'ordine delle transazioni in un blocco. - -### Valore estraibile dal miner {#miner-extractable-value} - -Il valore estraibile massimo fu applicato per la prima volta nel contesto del [proof-of-work](/developers/docs/consensus-mechanisms/pow/) e fu inizialmente definito come "valore estraibile dal miner". Questo perché nel Proof of Work i miner controllano l'inclusione, l'esclusione e l'ordinamento della transazione. Tuttavia, a partire dalla transizione al proof-of-stake tramite [La Fusione](/roadmap/merge), i validatori sono responsabili di tali ruoli e il mining non fa più parte del protocollo di Ethereum. I metodi d'estrazione del valore però esistono ancora, quindi il termine usato adesso è invece "Valore estraibile massimo". - -## Prerequisiti {#prerequisites} - -Assicurati di essere familiare con le [transazioni](/developers/docs/transactions/), i [blocchi](/developers/docs/blocks/), il [proof-of-stake](/developers/docs/consensus-mechanisms/pos) e il [gas](/developers/docs/gas/). Anche la familiarità con [dApp](/dapps/) e [DeFi](/defi/) è utile. - -## Estrazione del MEV {#mev-extraction} - -In teoria, il MEV proviene interamente dai validatori poiché sono l'unica parte in grado di garantire l'esecuzione di un'opportunità di MEV redditizia. Nella pratica, tuttavia, una grande porzione del MEV è estratta da partecipanti indipendenti della rete, chiamati "ricercatori". I ricercatori eseguono algoritmi complessi sui dati della blockchain per rilevare opportunità di MEV redditizie e si servono di bot per inviare automaticamente tali transazioni redditizie alla rete. - -I validatori ottengono comunque una porzione dell'intero importo del MEV, poiché i ricercatori sono disposti a pagare commissioni sul gas maggiori (che vanno al validatore), in cambio di una maggiore probabilità d'inclusione delle loro transazioni profittevoli in un blocco. Supponendo che i ricercatori siano economicamente razionari, la commissione sul gas che un ricercatore è disposto a pagare sarà un importo fino al 100% del MEV del ricercatore (poiché se la commissione sul gas fosse stata maggiore, il ricercatore avrebbe perso denaro). - -Così, per alcune opportunità di MEV molto competitive, come l'[arbitraggio della DEX](#mev-examples-dex-arbitrage), i ricercatori potrebbero dover pagare il 90%, se non più, delle loro entrate totali del MEV in commissioni sul gas al validatore, poiché così tante persone vogliono eseguire lo stesso scambio d'arbitraggio profittevole. Questo è perché il solo modo per garantire che la loro transazione d'arbitraggio sia eseguita se inviano la transazione con il prezzo sul gas maggiore. - -### Golf del gas {#mev-extraction-gas-golfing} - -Questa dinamica ha reso esser bravi al "golf del gas", la programmazione delle transazioni così che usino l'importo minimo di gas, un vantaggio competitivo, poiché consente ai ricercatori di impostare un prezzo del gas maggiore, mantenendo costanti le proprie commissioni sul gas totali (poiché, commissioni sul gas = prezzo del gas \* gas usato). - -Alcune tecniche di golf del gas ben note includono: usare indirizzi che iniziano con una lunga stringa di zeri (es. [0x0000000000C521824EaFf97Eac7B73B084ef9306](https://etherscan.io/address/0x0000000000c521824eaff97eac7b73b084ef9306)) poiché richiedono meno spazio (e quindi gas) da archiviare; e lasciando piccoli saldi del token [ERC-20](/developers/docs/standards/tokens/erc-20/) nei contratti, poiché costa più gas inizializzare uno slot d'archiviazione (se il saldo è 0), piuttosto che aggiornarne uno. Individuare altre tecniche per ridurre il consumo di gas è un'area di ricerca attiva tra i ricercatori. - -### Frontrunner generalizzati {#mev-extraction-generalized-frontrunners} - -Anziché programmare algoritmi complessi per rilevare opportunità di MEV redditizie, alcuni ricercatori eseguono frontrunner generalizzati. I frontrunner generalizzati sono bot che tengono d'occhio il mempool per individuare le transazioni redditizie. Il frontrunner copierà il codice della transazione potenzialmente redditizia, sostituirà gli indirizzi con il proprio ed eseguirà la transazione localmente per verificare due volte che la transazione modificata risulti in un profitto all'indirizzo del frontrunner. Se la transazione è effettivamente redditizia, il precursore invierà la transazione modificata con l'indirizzo sostituito e un prezzo del gas maggiore, "precorrendo" la transazione originale e ottenendo il MEV originale del ricercatore. - -### Flashbot {#mev-extraction-flashbots} - -I flashbot sono un progetto indipendente che estende i client di esecuzione con un servizio che consente ai ricercatori di inviare le transazioni del MEV ai validatori senza rivelarle al mempool pubblico. Questo impedisce ai frontrunner generalizzati di eseguire frontrun sulle transazioni. - -## Esempi di MEV {#mev-examples} - -Il MEV emerge sulla blockchain in diversi modi. - -### Arbitraggio DEX {#mev-examples-dex-arbitrage} - -L'arbitraggio dello [scambio decentralizzato](/glossary/#dex) (DEX) è l'opportunità di MEV più semplice e più diffusa. Di conseguenza è anche la più competitiva. - -Funziona come segue: se due DEX offrono un token a due prezzi diversi, qualcuno può acquistare il token sul DEX al prezzo minore e rivenderlo sul DEX al prezzo maggiore in un'unica transazione atomica. Grazie ai meccanismi della blockchain, questo è vero e proprio arbitraggio privo di rischi. - -[Ecco un esempio](https://etherscan.io/tx/0x5e1657ef0e9be9bc72efefe59a2528d0d730d478cfc9e6cdd09af9f997bb3ef4) di una transazione di arbitraggio redditizia in cui un ricercatore ha trasformato 1.000 ETH in 1.045 ETH sfruttando i diversi prezzi della coppia ETH/DAI su Uniswap vs. Sushiswap. - -### Liquidazioni {#mev-examples-liquidations} - -Le liquidazioni del protocollo di prestito presentano un'altra opportunità di MEV ben nota. - -I protocolli di prestito come Maker e Aave richiedono agli utenti di depositare un qualche tipo di garanzia (es. ETH). Questa garanzia depositata è poi usata per concedere prestiti ad altri utenti. - -Gli utenti possono quindi prendere in prestito risorse e token dagli altri, a seconda delle loro esigenze (ad es. potresti prendere in prestito MKR se desideri votare in una proposta di governance di MakerDAO), fino a una certa percentuale della loro garanzia depositata. Ad esempio, se l'importo preso in prestito è un massimo del 30%, un utente che deposita 100 DAI nel protocollo può prendere in prestito fino all'equivalente di 30 DAI di un'altra risorsa. Il protocollo determina l'esatta percentuale di potenza presa in prestito. - -Al fluttuare del valore della garanzia di un debitore, fluttua anche la capacità di prestito. Se, a causa delle fluttuazioni del mercato, il valore degli attivi presi in presi in prestito supera, ad esempio, il 30% del valore della loro garanzia (anche in questo caso l'esatta percentuale è determinata dal protocollo), il protocollo consente tipicamente a chiunque di liquidare la garanzia, pagando istantaneamente i creditori (in modo simile al funzionamento dei [margini aggiuntivi](https://www.investopedia.com/terms/m/margincall.asp) nella finanza tradizionale). In caso di liquidazione, il debitore deve solitamente pagare una cospicua commissione di liquidazione, parte della quale va al liquidatore; ed è qui che risiede l'opportunità di MEV. - -I ricercatori competono per analizzare i dati della blockchain il più velocemente possibile per determinare quali debitori sono liquidabili ed essere i primi a inviare una transazione di liquidazione e raccogliere la commissione di liquidazione per se stessi. - -### Sandwich trading {#mev-examples-sandwich-trading} - -Il sandwich trading è un altro metodo comune di estrazione del MEV. - -Per eseguirlo, un ricercatore osserverà il mempool alla ricerca di scambi di DEX di notevole entità. Per esempio, supponiamo che qualcuno voglia comprare 10.000 UNI con DAI su Uniswap. Uno scambio di tale portata avrà un effetto significativo sulla coppia UNI/DAI, aumentando in modo potenzialmente importante il prezzo di UNI rispetto al DAI. - -Un ricercatore può calcolare l'effetto approssimativo del prezzo di questo scambio di ampia portata sulla coppia UNI/DAI ed eseguire un acquisto ottimale immediatamente _prima_ di esso, acquistando UNI a basso costo per poi eseguire l'ordine di vendita immediatamente _dopo_ lo scambio, vendendolo a un prezzo superiore, causato dallo stesso ordine. - -Il sandwiching, tuttavia, è più rischioso non essendo atomico (a differenza dell'arbitraggio di DEX, come descritto sopra) ed è soggetto a un [attacco di salmonella](https://github.com/Defi-Cartel/salmonella). - -### MEV nel mondo dei NFT {#mev-examples-nfts} - -Nel mondo dei NFT, il MEV è un fenomeno emergente e non necessariamente redditizio. - -Tuttavia, poiché le transazioni di NFT hanno luogo sulla stessa blockchain condivisa da tutte le transazioni di Ethereum, i ricercatori possono usare tecniche simili a quelle usate per le opportunità di MEV tradizionali anche nel mercato dei NFT. - -Per esempio, se si verifica un calo a livello di un NFT popolare e un ricercatore vuole un certo NFT o una serie di NFT, può programmare una transazione in modo tale da essere il primo ad acquistare il NTF o l'intera serie di NTF in una sola transazione. Oppure, se un NFT viene [erroneamente elencato a un prezzo basso](https://www.theblockcrypto.com/post/113546/mistake-sees-69000-cryptopunk-sold-for-less-than-a-cent), un ricercatore può scavalcare gli altri acquirenti e ottenerlo a buon mercato. - -Un esempio eloquente di MEV nel mondo dei NFT si è verificato quando un ricercatore ha speso $7 milioni per [comprare](https://etherscan.io/address/0x650dCdEB6ecF05aE3CAF30A70966E2F395d5E9E5) ogni singolo Cryptopunk al prezzo di base. Un ricercatore della blockchain [ha spiegato su Twitter](https://twitter.com/IvanBogatyy/status/1422232184493121538) come l'acquirente avesse lavorato con un fornitore di MEV per mantenere segreto l'acquisto. - -### La lunga coda {#mev-examples-long-tail} - -L'arbitraggio di DEX, le liquidazioni e il sandwich trading sono tutte opportunità di MEV ben note e difficilmente saranno redditizie per i nuovi ricercatori. Tuttavia, esiste una lunga coda di opportunità di MEV meno note (il MEV nel mondo dei NFT è probabilmente una di esse). - -I ricercatori che stanno muovendo i primi passi potrebbero avere maggiore successo ricercando MEV in questa lunga coda. La [MEV job board](https://github.com/flashbots/mev-job-board) del flashbot elenca alcune opportunità emergenti. - -## Effetti del MEV {#effects-of-mev} - -Il MEV non è una cosa negativa: su Ethereum ci sono conseguenze sia positive che negative connesse al MEV. - -### Aspetti positivi {#effects-of-mev-the-good} - -Molti progetti di DeFi si basano su attori economicamente razionali per assicurare l'utilità e stabilità dei loro protocolli. Per esempio, l'arbitraggio di DEX assicura che gli utenti ottengano i prezzi migliori e più corretti per i loro token, mentre i protocolli di prestito si basano su liquidazioni rapide quando i debitori scendono al di sotto dei coefficienti di garanzia per garantire il rimborso dei creditori. - -Senza ricercatori razionali che cercano e correggono le inefficienze economiche e sfruttano gli incentivi economici dei protocolli, i protocolli DeFi e le dApp in generale potrebbero perdere la robustezza che esibiscono oggi. - -### Aspetti negativi {#effects-of-mev-the-bad} - -A livello di applicazione, alcune forme di MEV, come il sandwich trading, si traducono in un'esperienza inequivocabilmente peggiore per gli utenti. Gli utenti che ricevono il sandwich subiscono un maggiore slittamento e una peggiore esecuzione delle loro operazioni. - -Al livello della rete, i precursori generalizzati e le aste del prezzo del gas, che spesso intraprendono (quando due o più precursori competono perché la propria transazione sia inclusa nel blocco successivo, aumentando progressivamente il prezzo del gas della loro transazione), risultano in congestione della rete e prezzi del gas elevati per chiunque altro sia provando a eseguire transazioni regolari. - -Oltre a ciò che si verifica _all'interno_ dei blocchi, il MEV può avere effetti deleteri _tra_ i blocchi. Se il MEV disponibile in un blocco supera significativamente la ricompensa standard del blocco, i validatori potrebbero essere incentivati a riorganizzare i blocchi e catturare da soli il MEV, causando la riorganizzazione della blockchain e l'instabilità del consenso. - -Questa possibile riorganizzazione della blockchain è stata [precedentemente esplorata sulla blockchain di Bitcoin](https://dl.acm.org/doi/10.1145/2976749.2978408). Poiché le metà delle ricompense del blocco e le commissioni di transazione di Bitcoin costituiscono una porzione sempre più consistente della ricompensa del blocco, si presentano situazioni in cui diventa economicamente razionale per i miner rinunciare alla ricompensa del blocco successivo e ri-minare invece i blocchi passati con commissioni maggiori. Con la crescita del MEV, la stessa tipologia di situazione potrebbe verificarsi in Ethereum, minacciando l'integrità della blockchain. - -## Stato del MEV {#state-of-mev} - -L'estrazione del MEV è aumentata a dismisura agli inizi del 2021, risultando in prezzi del gas estremamente elevati nei primi mesi dell'anno. L'emergere della trasmissione del MEV dei Flashbot ha ridotto l'efficienza dei precursori generalizzati e ha portato le aste del prezzo del gas al di fuori della catena, riducendo i prezzi del gas per gli utenti ordinari. - -Mentre molti ricercatori guadagnano ancora molto dal MEV, con il diffondersi delle opportunità e la competizione di sempre più ricercatori per la stessa opportunità, i validatori cattureranno sempre più ricavi totali del MEV (poiché lo stesso tipo di aste del gas originariamente descritte in precedenza, si verificano anche nei Flashbot, seppur privatamente, e i validatori cattureranno i ricavi di gas risultanti). Inoltre, il MEV non è un'esclusiva di Ethereum e, man mano che le opportunità su Ethereum diventano più competitive, i ricercatori si spostano su blockchain alternative come Binance Smart Chain, dove esistono opportunità di MEV simili a quelle di Ethereum ma con minore competizione. - -D'altra parte, la transizione dal proof-of-work al proof-of-stake e lo sforzo di ridimensionamento di Ethereum in corso usando i rollup stanno modificando il panorama del MEV in modi ancora piuttosto nebulosi. Non è ancora noto come il fatto di conoscere i propositori di blocchi garantiti lievemente in anticipo modifichi le dinamiche di estrazione del MEV rispetto al modello probabilistico nel proof-of-work, o come questo sarà sconvolto quando l'[elezione segreta di un singolo capo ](https://ethresear.ch/t/secret-non-single-leader-election/11789) e la [tecnologia distribuita del validatore](/staking/dvt/) saranno implementate. Similmente, resta da vedere quali opportunità del MEV esistono quando gran parte dell'attività degli utenti è portata via da Ethereum e sui suoi rollup e shard di livello 2. - -## MEV nel proof-of-stake (PoS) di Ethereum {#mev-in-ethereum-proof-of-stake} - -Come spiegato, il MEV ha implicazioni negative per l’esperienza complessiva degli utenti e per la sicurezza al livello di consenso. Ma la transizione di Ethereum al protocollo di consenso proof-of-stake (soprannominato “La Fusione”) introduce potenzialmente nuovi rischi legati al MEV: - -### Centralizzazione dei validatori {#validator-centralization} - -Dopo La Fusione di Ethereum, i validatori (dopo aver effettuato depositi di sicurezza di 32 ETH) raggiungono il consenso sulla validità dei blocchi aggiunti alla Beacon Chain. Dal momento che 32 ETH possono essere fuori dalla portata di molti, [unirsi a un pool di staking](/staking/pools/) può essere un'opzione più fattibile. Ciò nonostante, una sana distribuzione di [staker autonomi](/staking/solo/) è ideale, in quanto attenua la centralizzazione dei validatori e migliora la sicurezza di Ethereum. - -Tuttavia, si ritiene che l'estrazione del MEV sia in grado di accelerare la centralizzazione dei validatori. Questo è in parte dovuto al fatto che, poiché i validatori [guadagnano meno per i blocchi proposti](/roadmap/merge/issuance/#how-the-merge-impacts-ETH-supply) rispetto a quanto attualmente ottenuto dai miner, l'estrazione del MEV può notevolmente [influenzare i guadagni dei validatori](https://github.com/flashbots/eth2-research/blob/main/notebooks/mev-in-eth2/eth2-mev-calc.ipynb) dopo La Fusione. - -I pool di staking più grandi avranno probabilmente più risorse da investire nelle ottimizzazioni necessarie per cogliere le opportunità del MEV. Quanto più MEV questi pool estraggono, tanto più risorse avranno per migliorare le loro capacità di estrazione del MEV (e aumentare le entrate complessive), creando essenzialmente [economie di scala](https://www.investopedia.com/terms/e/economiesofscale.asp#). - -Con un minor numero di risorse a loro disposizione, gli staker autonomi potrebbero non essere in grado di trarre profitto dalle opportunità offerte dal MEV. Questo potrebbe aumentare la pressione sui validatori autonomi per unire potenti pool di staking per aumentare i loro guadagni, riducendo la decentralizzazione in Ethereum. - -### Mempool con permessi (permissioned) {#permissioned-mempools} - -In risposta agli attacchi di sandwiching e di frontrunning, i trader possono iniziare a condurre operazioni off-chain con validatori per la privacy delle transazioni. Invece di inviare una potenziale transazione MEV al mempool pubblico, il trader la invia direttamente al validatore, che la include in un blocco e divide i profitti con il trader. - -I “dark pool” sono una versione più ampia di questo accordo e funzionano come mempool di solo accesso, con permessi, aperti agli utenti disposti a pagare determinate commissioni. Questa tendenza diminuirebbe la mancanza di permessi e la mancanza di fiducia di Ethereum e trasformerebbe potenzialmente la blockchain in un meccanismo “pay-to-play” che favorisce il miglior offerente. - -I mempool con permessi accelererebbero anche i rischi di centralizzazione descritti nella sezione precedente. I grandi pool che eseguono più validatori trarranno probabilmente vantaggio dall'offrire la privacy delle transazioni ai trader e agli utenti, aumentando i loro ricavi in MEV. - -La lotta a questi problemi legati al MEV successivamente alla Fusione di Ethereum è un ambito centrale di ricerca. Ad oggi, due soluzioni proposte per ridurre l'impatto negativo del MEV sulla decentralizzazione e la sicurezza di Ethereum dopo La Fusione sono la **Separazione propositore-costruttore (PBS)** e l'**API Builder**. - -### Separazione propositore-costruttore {#proposer-builder-separation} - -Sia nel proof-of-of-work che nel proof-of-stake, un nodo che costruisce un blocco propone di aggiungerlo alla catena ad altri nodi che partecipano al consenso. Un nuovo blocco diventa parte della catena principale dopo che un altro miner costruisce sopra di esso (nella PoW) o riceve attestazioni dalla maggior parte dei validatori (nella Pos). - -La combinazione dei ruoli del produttore di blocchi e del propositore di blocchi è ciò che introduce la maggior parte dei problemi relativi al MEV descritti in precedenza. Ad esempio, i nodi di consenso sono incentivati a innescare le riorganizzazioni della catena in attacchi di time-bandit per massimizzare i guadagni di MEV. - -La [Separazione propositore-costruttore](https://ethresear.ch/t/proposer-block-builder-separation-friendly-fee-market-designs/9725) (PBS) è concepita per mitigare l'impatto del MEV, soprattutto al livello di consenso. La caratteristica principale della PBS è la separazione dei produttori di blocchi e le regole del propositore di blocchi. I validatori sono ancora responsabili di proporre e votare i blocchi, ma una nuova classe di entità specializzate, chiamati **costruttori di blocchi**, sono incaricati di ordinare transazioni e costruire i blocchi. - -Nella PBS, un costruttore di blocchi crea un pacchetto di transazioni e mette un'offerta per la sua inclusione in un blocco della Beacon Chain (come il “payload di esecuzione”). Il validatore selezionato per proporre il blocco successivo quindi controlla le diverse offerte e sceglie il pacchetto con la commissione più alta. La PBS crea essenzialmente un mercato d'asta, dove i costruttori negoziano con validatori che vendono lo spazio del blocco. - -Gli attuali progetti PBS utilizzano uno [schema commit-reveal](https://gitcoin.co/blog/commit-reveal-scheme-on-ethereum/) in cui i costruttori pubblicano solo un impegno crittografico per i contenuti di un blocco (intestazione del blocco) insieme alle loro offerte. Dopo aver accettato l'offerta vincente, il propositore crea una proposta di blocco firmata che include l'intestazione del blocco. Il costruttore di blocchi dovrebbe pubblicare il corpo completo del blocco dopo aver visualizzato la proposta del blocco firmata e, inoltre, deve ricevere abbastanza [attestazioni](/glossary/#attestation) dai validatori prima che sia finalizzata. - -#### In che modo la separazione propositore-costruttore riduce l’impatto del MEV? {#how-does-pbs-curb-mev-impact} - -La separazione del propositore e del costruttore riduce l’effetto del MEV sul consenso eliminando l’estrazione del MEV dal campo di applicazione dei validatori. Invece, da ora in poi saranno i costruttori di blocchi che eseguono hardware specializzato a cogliere le opportunità di MEV. - -Ciò, però, non esclude del tutto i validatori dal reddito relativo al MEV, poiché i costruttori devono offrire alti pagamenti per far accettare i propri blocchi dai validatori. Tuttavia, con i validatori non più direttamente focalizzati sull'ottimizzazione del reddito da MEV, la minaccia di attacchi di time-bandit si riduce. - -La separazione propositore-costruttore riduce anche i rischi di centralizzazione del MEV. Per esempio, l'uso di uno schema commit-reveal elimina la necessità per i costruttori di fidarsi del fatto che i validatori non ruberanno l'opportunità di MEV o non la esporranno ad altri costruttori. In questo modo si riduce la barriera per gli operatori autonomi di beneficiare del MEV, altrimenti i costruttori tenderebbero a favorire grandi pool con buona reputazione off-chain e a condurre delle trattative off-chain con loro. - -Allo stesso modo, i validatori non devono fidarsi del fatto che i costruttori non tratterranno i corpi dei blocchi o non pubblicheranno blocchi non validi perché il pagamento è incondizionato. La commissione del validatore continua a essere elaborata anche se il blocco proposto non è disponibile o è dichiarato non valido da altri validatori. In quest'ultimo caso, il blocco viene semplicemente scartato, costringendo il costruttore di blocchi a perdere tutte le commissioni di transazione e i ricavi di MEV. - -### API Builder {#builder-api} - -Mentre la separazione tra propositori e creatori promette di ridurre gli effetti dell'estrazione del MEV, la sua attuazione richiede modifiche al protocollo di consenso. In particolare, la regola [scelta della diramazione](/developers/docs/consensus-mechanisms/pos/#fork-choice) sulla Beacon Chain dovrebbe essere aggiornata. L'API [Builder](https://github.com/ethereum/builder-specs) è una soluzione temporanea volta a fornire un'implementazione funzionante della separazione propositore-costruttore, anche se con presupposti di fiducia più elevati. - -L'API Builder è una versione modificata dell'[API Engine](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) utilizzata dai client del livello di consenso per richiedere payload di esecuzione dai client del livello di esecuzione. Come indicato nella [specifica del validatore onesto](https://github.com/ethereum/consensus-specs/blob/dev/specs/bellatrix/validator.md), i validatori selezionati per i compiti di proposta dei blocchi richiedono un pacchetto di transazioni da un client di esecuzione connesso, che includono nel blocco della Beacon Chain proposto. - -L'API Builder funge anche da middleware tra validatori e client al livello di esecuzione, ma è diverso perché permette ai validatori sulla Beacon Chain di procurarsi blocchi da entità esterne (invece di costruire un blocco localmente utilizzando un client di esecuzione). - -Di seguito una panoramica di come funziona l'API Builder: - -1. L'API Builder collega il validatore a una rete di costruttori di blocchi che eseguono client del livello di esecuzione. Come nella PBS, i costruttori sono parti specializzate che investono nella costruzione di blocchi ad alta intensità di risorse e utilizzano diverse strategie per massimizzare i ricavi guadagnati dai MEV + mance di priorità. - -2. Un validatore (che esegue un client del livello di consenso) richiede payload di esecuzione insieme alle offerte dalla rete di costruttori. Le offerte dei costruttori conterranno l'intestazione del payload di esecuzione – un impegno crittografico per i contenuti del payload – e una commissione da pagare al validatore. - -3. Il validatore esamina le offerte in arrivo e sceglie il payload di esecuzione con la commissione più alta. Usando l'API Builder, il validatore crea una proposta di blocco Beacon "alla cieca" che include solo la sua firma e l'intestazione del payload di esecuzione e la invia al costruttore. - -4. Il costruttore che esegue l'API Builder dovrebbe rispondere con il payload di esecuzione completo quando si vede la proposta di blocco alla cieca. Questo permette al validatore di creare un blocco Beacon "firmato", che propaga in tutta la rete. - -5. Un validatore che utilizza l'API Builder dovrebbe ancora costruire un blocco localmente nel caso in cui il costruttore del blocco non risponda tempestivamente, in modo da non perdere le ricompense della proposta di blocco. Tuttavia, il validatore non può creare un altro blocco utilizzando le transazioni ormai rivelate o un altro set, in quanto equivarrebbe a un _equivoco_ (firmare due blocchi all'interno dello stesso slot), che è un illecito tagliabile. - -Un esempio di implementazione dell'API Builder è [MEV Boost](https://github.com/flashbots/mev-boost), un miglioramento rispetto al [meccanismo di asta di Flashbots](https://docs.flashbots.net/Flashbots-auction/overview/) progettato per frenare le esternalità negative del MEV su Ethereum. L'asta di Flashbots permette ai miner in proof-of-work di esternalizzare il lavoro di costruzione di blocchi redditizi ad entità specializzate chiamate **ricercatori**. - -I ricercatori cercano opportunità di MEV redditizie e inviano pacchetti di transazioni ai miner insieme a un'[offerta in busta chiusa](https://en.wikipedia.org/wiki/First-price_sealed-bid_auction) per l'inclusione nel blocco. Il miner che esegue mev-geth, una versione diramata del client go-ethereum (Geth), deve solo scegliere il pacchetto con il maggior profitto e minarlo come parte del nuovo blocco. Per proteggere i miner dallo spam e dalle transazioni non valide, i pacchetti di transazioni passano attraverso **relayer** per la convalida prima di arrivare ai miner. - -MEV Boost mantiene lo stesso funzionamento dell’asta originale di Flashbots, anche se con nuove funzionalità progettate per il passaggio di Ethereum al proof-of-stake. I ricercatori trovano ancora transazioni MEV redditizie per l'inclusione nei blocchi, ma una nuova classe di soggetti specializzati, chiamati **costruttori**, sono responsabili dell'aggregazione delle transazioni e dei pacchetti nei blocchi. Un costruttore accetta offerte in busta chiusa dai ricercatori ed esegue ottimizzazioni per trovare l'ordine più redditizio. - -Il relayer è ancora responsabile della convalida dei pacchetti di transazioni prima di trasmetterli al propositore. Tuttavia, MEV Boost introduce **escrow ** responsabili di fornire la [disponibilità di dati](/developers/docs/data-availability/) memorizzando i corpi dei blocchi inviati dai costruttori e le intestazioni dei blocchi inviati dai validatori. Qui, un validatore collegato a un relay chiede i payload di esecuzione disponibili e utilizza l'algoritmo di ordinamento di MEV Boost per selezionare l'intestazione del payload con l'offerta più alta + mance in MEV. - -#### Come fa l'API Builder a mitigare l'impatto del MEV? {#how-does-builder-api-curb-mev-impact} - -Il vantaggio principale dell'API Builder è il suo potenziale per democratizzare l'accesso alle opportunità del MEV. Il ricorso a sistemi di commit-reveal elimina le ipotesi di fiducia e riduce le barriere all’ingresso per i validatori che cercano di trarre vantaggio dai MEV. Ciò dovrebbe ridurre la pressione sugli staker autonomi per integrarsi con grandi pool di staking al fine di aumentare i profitti in MEV. - -L'implementazione generalizzata dell'API Builder incoraggerà una maggiore concorrenza tra i costruttori di blocchi, il che aumenta la resistenza alla censura. Dato che i validatori selezionano le offerte da più costruttori, un costruttore intenzionato a censurare una o più transazioni deve superare tutti gli altri costruttori senza censura per avere successo. Ciò aumenta drasticamente il costo della censura degli utenti e ne scoraggia la pratica. - -Alcuni progetti, come MEV Boost, utilizzano l'API Builder come parte di una struttura generale progettata per fornire privacy delle transazioni a determinate parti, come i trader che cercano di evitare attacchi frontrunning/sandwiching. Questo obiettivo è conseguito fornendo un canale di comunicazione privato tra gli utenti e i costruttori di blocchi. A differenza dei mempool con permessi (permissioned) descritti in precedenza, questo approccio è vantaggioso per i seguenti motivi: - -1. L'esistenza di più costruttori sul mercato rende la censura impraticabile, il che va a vantaggio degli utenti. Al contrario, l'esistenza di pool centralizzati e basati sulla fiducia concentrerebbe il potere nelle mani di pochi costruttori di blocchi e aumenterebbe la possibilità di censura. - -2. Il software API Builder è open-source e consente a chiunque di offrire servizi di costruttore di blocchi. Ciò significa che gli utenti non sono obbligati a utilizzare un particolare costruttore di blocca, migliorando la neutralità e la mancanza di permessi di Ethereum. Inoltre, i trader in cerca di MEV non contribuiranno inavvertitamente alla centralizzazione utilizzando canali di transazione privati. - -## Risorse correlate {#related-resources} - -- [Documentazione dei Flashbot](https://docs.flashbots.net/) -- [Flashbots GitHub](https://github.com/flashbots/pm) -- [MEV-Explore](https://explore.flashbots.net/) _Pannello di controllo ed esploratore live delle transazioni per transazioni MEV_ -- [mevboost.org](https://www.mevboost.org/) - _Tracker con statistiche in tempo reale per relay e costruttori di blocchi di MEV Boost_ - -## Ulteriori letture {#further-reading} - -- [What Is Miner-Extractable Value (MEV)?](https://blog.chain.link/what-is-miner-extractable-value-mev/) -- [MEV and Me](https://www.paradigm.xyz/2021/02/mev-and-me) -- [Ethereum is a Dark Forest](https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest/) -- [Escaping the Dark Forest](https://samczsun.com/escaping-the-dark-forest/) -- [Flashbots: Frontrunning the MEV Crisis](https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752) -- [@bertcmiller's MEV Threads](https://twitter.com/bertcmiller/status/1402665992422047747) -- [MEV-Boost: architettura Flashbots pronta per la Fusione](https://ethresear.ch/t/mev-boost-merge-ready-flashbots-architecture/11177) -- [Che cos'è MEV Boost?](https://www.alchemy.com/overviews/mev-boost) -- [Perché eseguire mev-boost?](https://writings.flashbots.net/writings/why-run-mevboost/) -- [The Hitchhikers Guide To Ethereum](https://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum) diff --git a/src/content/translations/it/developers/docs/networking-layer/index.md b/src/content/translations/it/developers/docs/networking-layer/index.md deleted file mode 100644 index 51054ee0e54..00000000000 --- a/src/content/translations/it/developers/docs/networking-layer/index.md +++ /dev/null @@ -1,155 +0,0 @@ ---- -title: Livello di rete -description: Un'introduzione al livello di rete di Ethereum. -lang: it -sidebarDepth: 2 ---- - -Ethereum è una rete in peer-to-peer con migliaia di nodi che devono poter comunicare gli uni con gli altri, usando dei protocolli standardizzati. Il "livello di rete" è lo stack di protocolli che consentono a quei nodi di trovarsi reciprocamente e scambiare informazioni. Questo comprende l'attività di "gossip” di informazioni (comunicazione da uno a molti) sulla rete, oltre alle richieste di scambio e le risposte tra nodi specifici (comunicazione uno a uno). Ogni nodo deve aderire a specifiche regole di rete per essere certo di inviare e ricevere le informazioni corrette. - -Il software del client si compone di due parti (i client d'esecuzione e di consenso), ognuna con il proprio distinto stack di rete. Oltre a comunicare con altri nodi di Ethereum, i client d'esecuzione e di consenso devono comunicare tra loro. Questa pagina presenta una spiegazione introduttiva ai protocolli che consentono questa comunicazione. - -I client d'esecuzione compiono gossip sulle transazioni sulla rete tra pari del livello d'esecuzione. Questo richiede la comunicazione crittografata tra i pari autenticati. Quando un validatore è selezionato per proporre un blocco, le transazioni dal pool di transazione locale del nodo saranno passate ai client del consenso tramite una connessione RPC locale, che sarà impacchettata in blocchi della Beacon. I client di consenso eseguiranno poi il gossip dei blocchi della Beacon Chain per la propria rete p2p. Questo richiede due reti p2p separate: una connessa ai client d'esecuzione per il gossip della transazione e una connessa ai client del consenso per il gossip del blocco. - -## Prerequisiti {#prerequisites} - -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} - -I protocolli di rete del livello d'esecuzione sono divisi in due stack: - -- lo stack di scoperta: basato su UDP, consente a un nuovo nodo di trovare i peer a cui connettersi - -- lo stack DevP2P: basato su TCP, consente ai nodi di scambiarsi informazioni - -Entrambi gli stack operano in parallelo. Lo stack di scoperta alimenta la nuova rete di partecipanti alla rete e lo stack DevP2P ne consente le interazioni. - -### Scoperta {#discovery} - -La scoperta è il processo con cui si trovano altri nodi nella rete. Questo processo è avviato usando una piccola serie di nodi d'avvio (nodi i cui indirizzi sono [codificati in modo fisso (hardcoded)](https://github.com/ethereum/go-ethereum/blob/master/params/bootnodes.go) nel client, così che siano immediatamente trovabili e connettano il client ai peer). Questi nodi di avvio esistono solo per introdurre un nuovo nodo a una serie di peer, questo è il loro solo obiettivo, non partecipano alle normali attività del client, come la sincronizzazione della catena, e sono usati solo la primissima volta in cui il client è avviato. - -Il protocollo usato per le interazioni tra nodo e nodo d'avvio è una forma modificata di [Kademlia](https://medium.com/coinmonks/a-brief-overview-of-kademlia-and-its-use-in-various-decentralized-platforms-da08a7f72b8f), che usa una [tabella di hash distribuita](https://en.wikipedia.org/wiki/Distributed_hash_table) per condividere elenchi di nodi. Ogni nodo ha una versione di questa tabella, contenente le informazioni necessarie per connettersi ai propri peer più vicini. Questa “vicinanza” non è geografica: la distanza è definita dalla somiglianza dell'ID del nodo. Come funzionalità di sicurezza, ogni tabella del nodo è aggiornata regolarmente. Ad esempio, nel [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5), i nodi del protocollo di scoperta sono anche capaci di inviare “annunci” che indicano i protocolli secondari supportati dal client, consentendo ai peer di negoziare i protocolli che usano entrambi per comunicare. - -La scoperta inizia con una partita di PING-PONG. Un PING-PONG di successo "lega" il nuovo nodo a un nodo d'avvio. Il messaggio iniziale che avvisa un nodo d'avvio dell'esistenza di un nuovo nodo che sta accedendo alla rete è un `PING`. Questo `PING` include le informazioni in hash sul nuovo nodo, il nodo d'avvio e una marca temporale di scadenza. Il nodo d'avvio riceve il PING e restituisce un `PONG` contenente l'hash del `PING`. Se gli hash del `PING` e del `PONG` corrispondono, allora la connessione tra il nuovo nodo e il nodo d'avvio è avvenuta e i due sono "legati". - -Una volta legato, il nuovo nodo può inviare una richiesta `FIND-NEIGHBOURS` al nodo d'avvio. I dati restituiti dal nodo d'avvio includono un elenco di peer a cui il nuovo nodo può connettersi. Se i nodi non sono legati, la richiesta `FIND-NEIGHBOURS` non andrà a buon fine, quindi il nuovo nodo non potrà accedere alla rete. - -Una volta che il nodo riceve un elenco di vicini dal nodo d'avvio, inizia con ognuno di essi, uno scambio di PING-PONG. I PING-PONG riusciti legano il nuovo nodo ai suoi vicini, consentendo lo scambio di messaggi. - -``` -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. - -#### Perché la scoperta è basata su UDP? {#why-udp} - -UDP non supporta le funzioni di controllo degli errori, reinvio di pacchetti non giunti a destinazione o apertura e chiusura dinamica delle connessioni, al contrario si limita a mandare un flusso continuo di informazioni a un destinatario, indipendentemente dal fatto che queste siano state correttamente ricevute. Questa funzionalità minima si traduce anche in overhead minimi, che rendono molto veloce questo tipo di connessione. Per la scoperta, in cui un nodo vuole solo comunicare la propria presenza per poter poi stabilire una connessione formale con un peer, UDP è sufficiente. Per il resto dello stack di rete, invece, UDP non è adatto. Lo scambio informativo tra nodi è abbastanza complesso e necessita dunque di un protocollo più completo di funzionalità, che possa supportare il reinvio, la verifica degli errori, etc. L’overhead aggiuntivo associato a TCP vale le maggiori funzionalità. Dunque, la maggioranza dello stack P2P opera su TCP. - -### DevP2P {#devp2p} - -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 "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: - -- versione del protocollo -- ID del client -- porta -- ID del nodo -- elenco di protocolli secondari supportati - -Queste sono le informazioni necessarie affinché l'interazione vada a buon fine, poiché definiscono quali capacità sono condivise tra entrambi i nodi e configurano la comunicazione. Esiste un processo di negoziazione secondario in cui vengono confrontati gli elenchi di protocolli secondari supportati da ogni nodo, potendo utilizzare nella sessione quelli comuni ad entrambi i nodi. - -Insieme ai messaggi di saluto, il protocollo via cavo può anche inviare un messaggio "disconnect" che avvisa un peer che la connessione sarà chiusa. Il protocollo via cavo prevede anche messaggi PING e PONG, inviati periodicamente per mantenere aperta una sessione. Gli scambi dei protocolli RLPx e via cavo stabiliscono dunque le fondamenta della comunicazione tra i nodi, fornendo l'impalcatura per le informazioni utili da scambiare secondo un protocollo secondario specifico. - -### Protocolli secondari {#sub-protocols} - -#### Protocollo via cavo {#wire-protocol} - -Una volta che i pari sono connessi e che una sessione RLPx è stata avviata, il protocollo via cavo definisce come comunicano i pari. Inizialmente, il protocollo via cavo definiva tre mansioni principali: la sincronizzazione della catena, la propagazione del blocco e lo scambio di transazioni. Tuttavia, una volta che Ethereum è passato al proof-of-stake, la propagazione dei blocchi e la sincronizzazione della catena sono divenuti parte del livello di consenso. Lo scambio di transazioni è ancora di competenza dei client d'esecuzione. Lo scambio di transazioni si riferisce allo scambio di transazioni in sospeso tra nodi, così che i miner possano selezionarne alcune da inserire nel blocco successivo. Le informazioni dettagliate su queste attività sono disponibili [qui](https://github.com/ethereum/devp2p/blob/master/caps/eth.md). I client che supportano questi protocolli secondari, li espongono tramite [JSON-RPC](/developers/docs/apis/json-rpc/). - -#### les (light ethereum subprotocol) {#les} - -Si tratta di un protocollo minimale per sincronizzare i client leggeri. Tradizionalmente, questo protocollo è stato raramente usato perché i nodi completi devono servire i dati ai client leggeri senza esser incentivati. Il comportamento predefinito dei client d'esecuzione prevede di non servire i dati al client leggero tramite les. Maggiori informazioni sono disponibili nelle [specifiche](https://github.com/ethereum/devp2p/blob/master/caps/les.md) di les. - -#### Snap {#snap} - -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} - -Il [witness protocol](https://github.com/ethereum/devp2p/blob/master/caps/wit.md#ethereum-witness-protocol-wit) è un'estensione facoltativa che consente lo scambio di testimoni di stato tra peer, aiutando a sincronizzare i client in cima alla catena. - -#### Whisper {#whisper} - -Whisper era un protocollo che mirava a consegnare messaggistica sicura tra peer senza scrivere alcuna informazione nella blockchain. Faceva parte del protocollo via cavo DevP2P, ma è ora considerato obsoleto. Esistono altri [progetti correlati](https://wakunetwork.com/) con obiettivi simili. - -## Il livello di consenso {#consensus-layer} - -I client di consenso partecipano a una rete peer-to-peer distinta, con specifiche differenti. I client di consenso devono partecipare al gossip dei blocchi, in modo da poter ricevere nuovi blocchi dai peer e trasmetterli quando tocca a loro proporre dei blocchi. Analogamente al livello d'esecuzione, questo richiede innanzitutto un protocollo di scoperta, così che un nodo possa trovare dei peer e stabilire sessioni sicure per lo scambio di blocchi, attestazioni, etc. - -### Scoperta {#consensus-discovery} - -Analogamente ai client d'esecuzione, i client di consenso usano [discv5](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-discovery-domain-discv5) su UDP per trovare i peer. L'implementazione del livello di consenso di discv5 differisce da quella dei client d'esecuzione solo perché include un adattatore che connette discv5 a uno stack [libP2P](https://libp2p.io/), deprecando DevP2P. Le sessioni di RLPx del livello d'esecuzione sono deprecate in favore dell’"handshaking" protetto del canale Noise di libP2P. - -### ENR {#consensus-enr} - -L'ENR dei nodi del consenso include la chiave pubblica del nodo, l'indirizzo IP, le porte UDP e TCP e due campi specifici per il consenso: il campo di bit della subnet d'attestazione e la chiave `eth2`. Il primo rende più semplice ai nodi trovare dei peer, partecipando a reti secondarie di gossip d'attestazione specifiche. La chiave `eth2` contiene le informazioni su quale versione della biforcazione di Ethereum il nodo sta usando, garantendo che i peer si connettano all'Ethereum giusto. - -### libP2P {#libp2p} - -Lo stack libP2P supporta tutte le comunicazioni dopo la scoperta. I client possono chiamare e ascoltare su IPv4 e/o IPv6, come definito nel loro EVR. I protocolli sul livello di libP2P sono suddivisibili nei domini di gossip e di req/resp. - -### Gossip {#gossip} - -Il dominio di gossip include tutte le informazioni che devono essere diffuse rapidamente tramite la rete. Questo include i blocchi Beacon, le prove, le attestazioni, le uscite e i tagli (slashing). La trasmissione avviene tramite libP2P gossipsub v1 e si affida a vari metadati memorizzati localmente in ogni nodo, tra cui la dimensione massima dei carichi utili di gossip da ricevere e trasmettere. Le informazioni dettagliate sul dominio del gossip sono disponibili [qui](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-gossip-domain-gossipsub). - -### Richiesta-risposta {#request-response} - -Il dominio di richiesta-risposta contiene i protocolli per i client che richiedono informazioni specifiche dai propri peer. Gli esempi includono la richiesta di blocchi Beacon specifici, corrispondenti a certi hash radice o entro un intervallo di slot. Le risposte sono sempre restituite come byte codificati SSZ con compressione Snappy. - -## Perché il client di consenso preferisce SSZ a RLP? {#ssz-vs-rlp} - -SSZ sta per simple serialization (serializzazione semplice). Usa offset fissi che semplificano la decodifica di singole parti di un messaggio codificato senza dover decodificare l'intera struttura, funzione molto utile per il client di consenso, che può quindi estrarre efficientemente specifiche informazioni dai messaggi codificati. È anche progettato specificamente per integrarsi ai protocolli di Merkle, con i relativi guadagni in termini di efficienza per la Merkle-zzazione. Poiché tutti gli hash nel livello di consenso sono radici di Merkle, si ottiene un miglioramento complessivo significativo. SSZ garantisce anche rappresentazioni univoche dei valori. - -## Connettere i client d'esecuzione e di consenso {#connecting-clients} - -I client del consenso e d'esecuzione, operano in parallelo. Devono esser connessi, così che il client del consenso possa fornire istruzioni al client d'esecuzione e che il client d'esecuzione possa passare pacchetti di transazioni al client del consenso per includerli nei blocchi della Beacon. La comunicazione tra i due client è ottenibile usando una connessione RPC locale. Un'API nota come [“Engine-API”](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) definisce le istruzioni inviate tra i due client. Poiché entrambi i client risiedono dietro un'identità di rete singola, condividono un ENR (Registro del Nodo di Ethereum), contenente una chiave separata per ogni client (chiave eth1 e chiave eth2). - -Un sommario del flusso di controllo è mostrato di seguito, con indicazione tra parentesi dello stack di rete rilevante. - -##### Quando il client di consenso non è un produttore di blocchi: - -- Il client di consenso riceve un blocco tramite il protocollo di gossip dei blocchi (consenso p2p) -- Il client di consenso convalida preventivamente il blocco, ovvero si assicura che provenga da un mittente valido con i metadati corretti -- Le transazioni nel blocco sono inviate al livello d'esecuzione come un payload d'esecuzione (connessione RPC locale) -- Il livello d'esecuzione esegue le transazioni e convalida lo stato nell'intestazione del blocco (ovvero verifica la corrispondenza degli hash) -- Il livello d'esecuzione ripassa i dati di convalida al livello di consenso, blocco ora considerato da convalidare (connessione RPC locale) -- Il livello di consenso aggiunge il blocco alla testa della propria blockchain e lo attesta, trasmettendo l'attestazione via rete (consenso p2p) - -##### Quando il client di consenso è un produttore di blocchi: - -- Il client di consenso riceve notifica che è il prossimo produttore di blocchi (consenso p2p) -- Il livello di consenso chiama il metodo `create block` nel client d'esecuzione (RPC locale) -- Il livello d'esecuzione accede al mempool delle transazioni, popolato dal protocollo di gossip della transazione (esecuzione p2p) -- Il client d'esecuzione impacchetta le transazioni in un blocco, esegue le transazioni e genera l'hash di un blocco -- Il client del consenso prende le transazioni e l'hash del blocco dal client d'esecuzione e li aggiunge al blocco della beacon (RPC locale) -- Il client di consenso trasmette il blocco al protocollo di gossip dei blocchi (consenso p2p) -- Gli altri client ricevono il blocco proposto tramite il protocollo di gossip dei blocchi e lo convalidano come descritto sopra (consenso p2p) - -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) - -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) - -## Letture consigliate {#further-reading} - -[DevP2P](https://github.com/ethereum/devp2p) [LibP2p](https://github.com/libp2p/specs) [Specifiche di rete del livello di consenso](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#enr-structure) [da kademlia a discv5](https://vac.dev/kademlia-to-discv5) [documentazione di kademlia](https://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf) [intro al p2p di Ethereum](https://p2p.paris/en/talks/intro-ethereum-networking/) [rapporto eth1/eth2](http://ethresear.ch/t/eth1-eth2-client-relationship/7248) [fusione e video dei dettagli del client di eth2](https://www.youtube.com/watch?v=zNIrIninMgg) 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 deleted file mode 100644 index f1eb052f9d1..00000000000 --- a/src/content/translations/it/developers/docs/nodes-and-clients/client-diversity/index.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -title: Diversità dei client -description: Una spiegazione generica dell'importanza della diversità di client di Ethereum. -lang: it -sidebarDepth: 2 ---- - -Il comportamento di un nodo di Ethereum è controllato dal software del client che esegue. Esistono diversi client di Ethereum di livello di produzione, ognuno sviluppato e mantenuto in diversi linguaggi da team distinti. I client sono costruiti su specifiche comuni che assicurano che i client comunichino senza problemi tra loro e abbiano le stesse funzionalità, fornendo un'esperienza utente equivalente. Tuttavia, al momento, la distribuzione dei client tra i nodi non è abbastanza equilibrata da realizzare in tutta la sua potenzialità questa fortificazione della rete. Idealmente, gli utenti dovrebbero dividersi approssimativamente in modo equo tra i vari client, per portare quanta più diversità dei client possibile alla rete. - -## Prerequisiti {#prerequisites} - -Se ancora non sai cosa sono i nodi e i client, dai un'occhiata a [nodi e client](/developers/docs/nodes-and-clients/). I livelli di [esecuzione](/glossary/#execution-layer) e [consenso](/glossary/#consensus-layer) sono definiti nel glossario. - -## Perché esistono diversi client? {#why-multiple-clients} - -Esistono diversi client sviluppati e mantenuti indipendentemente perché la diversità dei client rende la rete più resistente ad attacchi e bug. Diversi client sono una forza unica per Ethereum, mentre altre blockchain si affidano all'infallibilità di un singolo client. Tuttavia, non basta avere semplicemente diversi client disponibili, devono essere adottati dalla community e i nodi attivi totali devono essere distribuiti in modo relativamente uniforme tra loro. - -## Perché la diversità dei client è importante? {#client-diversity-importance} - -Avere molti client sviluppati e mantenuti indipendentemente è vitale per l'integrità di una rete decentralizzata. Vediamo perché. - -### Bug {#bugs} - -Un bug in un singolo client rappresenta un pericolo minore per la rete se rappresenta una minoranza di nodi di Ethereum. Con una distribuzione approssimativamente uniforme dei nodi tra molti client, la probabilità che gran parte dei client soffra di un problema comune è minima e, di conseguenza, la rete è più robusta. - -### Resistenza agli attacchi {#resilience} - -La diversità dei client offre anche resistenza agli attacchi. Ad esempio, un attacco che [inganna un client specifico](https://twitter.com/vdWijden/status/1437712249926393858) su un ramo particolare della catena, difficilmente riuscirà nel suo intento perché non è probabile che anche gli altri client siano vulnerabili allo stesso modo, e la catena canonica non viene quindi corrotta. Una bassa diversità dei client aumenta i rischi associati a un attacco sul client dominante. È stato dimostrato che la diversità dei client è una difesa importante contro gli attacchi malevoli sulla rete, ad esempio, l'attacco di denial of service di Shanghai nel 2016 è stato possibile perché gli utenti malevoli sono riusciti a ingannare il client dominante (Geth) facendogli eseguire un'operazione lenta di I/O su disco decine di migliaia di volte per blocco. Poiché online erano presenti anche altri client alternativi che non avevano la stessa vulnerabilità, Ethereum è riuscita a resistere all'attacco e a continuare a funzionare mentre veniva risolta la vulnerabilità di Geth. - -### Finalità del proof-of-stake {#finality} - -Un bug in un client di consenso con oltre il 33% dei nodi di Ethereum potrebbe impedire la finalizzazione del livello di consenso, il che significa che gli utenti non possono essere sicuri che le transazioni non vengano annullate o modificate ad un certo punto. Questo sarebbe molto problematico per molte delle app basate su Ethereum, in particolare, le DeFi. - - Ancora peggio, un bug critico in un client con una maggioranza di due terzi potrebbe causare la una divisione e finalizzazione errata della catena, bloccando un gran numero di validatori su una catena non valida. Se vogliono rientrare nella catena corretta, quei validatori devo sottoporsi a tagli (slashing) o a un prelievo volontario, costoso e lento, e alla riattivazione. L'ammontare del taglio (slashing) aumenta col numero di nodi colpevoli, potendo interessare al massimo una maggioranza di due terzi (32 ETH). - -Sebbene questi siano scenari improbabili, l'ecosistema di Ethereum può mitigarne il rischio equilibrando la distribuzione dei client tra i nodi attivi. Idealmente, nessun client del consenso dovrebbe mai raggiungere una quota del 33% dei nodi totali. - -### Responsabilità condivisa {#responsibility} - -Esiste anche un costo umano associato alla presenza di client di maggioranza. Essa comporta un eccesso di lavoro e responsabilità su un team di sviluppo di piccole dimensioni. Minore è la diversità dei client, maggiore l'onere di responsabilità per gli sviluppatori che mantengono il client di maggioranza. Distribuire la responsabilità tra diversi team è un bene sia per la salute della rete di nodi di Ethereum che per la sua rete di persone. - -## Attuale diversità dei client {#current-client-diversity} - -![Grafico a torta che mostra la diversità dei client](./client-diversity.png) _Dati del diagramma provenienti da [ethernodes.org](https://ethernodes.org) e [clientdiversity.org](https://clientdiversity.org/)_ - -I due grafici a torta di cui sopra mostrano le istantanee dell'attuale diversità dei client per i livelli d'esecuzione e del consenso (al momento della scrittura di questo testo, gennaio 2022). Il livello d'esecuzione è prevalentemente dominato da[Geth](https://geth.ethereum.org/), con distacco sul secondo, [Open Ethereum](https://openethereum.github.io/), [Erigon](https://github.com/ledgerwatch/erigon) in terza posizione e [Nethermind](https://nethermind.io/) quarto, con altri client che rappresentano meno dell'1% della rete. Il client più diffuso sul livello del consenso, [Prysm](https://prysmaticlabs.com/#projects), non è tanto dominante quanto Geth, ma rappresenta comunque oltre il 60% della rete. [Lighthouse](https://lighthouse.sigmaprime.io/) e [Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) rappresentano rispettivamente circa il 20% e circa il 14%, e gli altri client sono poco usati. - -I dati del livello di esecuzione sono stati ottenuti da [Ethernodes](https://ethernodes.org) il 23/01/2022. I dati per i client di consenso sono stati ottenuti da [Michael Sproul](https://github.com/sigp/blockprint). I dati del client di consenso sono più difficili da ottenere, perché i client del livello di consenso non sempre hanno tracce univoche che possono essere utilizzate per individuarli. I dati sono stati generati usando un algoritmo di classificazione che talvolta confonde alcuni dei client di minoranza (vedi [qui](https://twitter.com/sproulM_/status/1440512518242197516) per ulteriori dettagli). Nel diagramma precedente, queste classificazioni ambigue sono trattate classificate come alternative multiple (es. Nimbus/Teku). È comunque chiaro che la maggioranza della rete sta eseguendo Prysm. I dati sono un'istantanea su una serie fissa di blocchi (in questo caso i blocchi della Beacon Chain dallo slot 2048001 al 2164916) e in alcuni momenti la dominanza di Prysm è stata anche maggiore, superando il 68%. Nonostante siano solo istantanee, i valori nel diagramma forniscono una buona indicazione generale dello stato corrente della diversità dei client. - -I dati di diversità dei client aggiornati per il livello del consenso sono ora disponibili su [clientdiversity.org](https://clientdiversity.org/). - -## Livello di esecuzione {#execution-layer} - -Finora, la conversazione sulla diversità dei client si è concentrata sul livello del consenso. Tuttavia, il client d'esecuzione [Geth](https://geth.ethereum.org) rappresenta correntemente circa l'85% di tutti i nodi. Questa percentuale è problematica per gli stessi motivi dei client di consenso. Ad esempio, un bug su Geth che influenzi la gestione delle transazioni o la costruzione dei carichi utili d'esecuzione potrebbe condurre alla finalizzazione da parte dei client di consenso di transazioni problematiche o contenenti bug. Ethereum sarebbe più quindi più robusto con una distribuzione più equa dei client d'esecuzione, idealmente senza alcun client che rappresenti oltre il 33% della rete. - -## Usare un client di minoranza {#use-minority-client} - -Per "indirizzare" la diversità dei client non basta che i singoli utenti scelgano i client di minoranza, richiede che anche i pool di mining/validatori e le istituzioni come le dApp principali e gli scambi cambino client. Tuttavia, tutti gli utenti possono fare la propria parte nel correggere l'attuale disequilibrio e normalizzare l'uso di tutti i software di Ethereum disponibili. Dopo La Fusione, tutti gli operatori di nodi dovranno eseguire un client d'esecuzione e un client di consenso. Scegliere le combinazioni dei client suggerite di seguito aiuterà ad aumentare la diversità dei client. - -### Client di esecuzione {#execution-clients} - -[Besu](https://www.hyperledger.org/use/besu) - -[Nethermind](https://downloads.nethermind.io/) - -[Erigon](https://github.com/ledgerwatch/erigon) - -[Go-Ethereum](https://geth.ethereum.org/) - -### Client di consenso {#consensus-clients} - -[Nimbus](https://nimbus.team/) - -[Lighthouse](https://github.com/sigp/lighthouse) - -[Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) - -[Lodestar](https://github.com/ChainSafe/lodestar) - -[Prysm](https://docs.prylabs.network/docs/getting-started) - -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/). - -## Pannelli di controllo sulla diversità dei client {#client-diversity-dashboards} - -Diversi pannelli di controllo forniscono statistiche sulla diversità dei client in tempo reale per il livello d'esecuzione e di consenso. - -**Livello di consenso:** - -- [Rated.network](https://www.rated.network/) -- [clientdiversity.org](https://clientdiversity.org/) **Livello di esecuzione:** - -- [execution-diversity.info](https://execution-diversity.info/) -- [Ethernodes](https://ethernodes.org/) - -## Letture consigliate {#further-reading} - -- [Diversità dei client sul livello di consenso di Ethereum](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) -- [Fusione di Ethereum: esegui il client di maggioranza a tuo rischio!](https://dankradfeist.de/ethereum/2022/03/24/run-the-majority-client-at-your-own-peril.html) – _Dankrad Fiest, 24 marzo 2022_ -- [Importanza della diversità dei client](https://our.status.im/the-importance-of-client-diversity/) -- [Elenco di servizi di nodi Ethereum](https://ethereumnodes.com/) -- [I "Cinque Perché" del problema della diversità dei client](https://notes.ethereum.org/@afhGjrKfTKmksTOtqhB9RQ/BJGj7uh08) -- [Diversità di Ethereum e come risolverla (YouTube)](https://www.youtube.com/watch?v=1hZgCaiqwfU) -- [clientdiversity.org](https://clientdiversity.org/) - -## Argomenti correlati {#related-topics} - -- [Eseguire un nodo di Ethereum](/run-a-node/) -- [Nodi e client](/developers/docs/nodes-and-clients/) diff --git a/src/content/translations/it/developers/docs/smart-contracts/anatomy/index.md b/src/content/translations/it/developers/docs/smart-contracts/anatomy/index.md deleted file mode 100644 index e24b4fe710f..00000000000 --- a/src/content/translations/it/developers/docs/smart-contracts/anatomy/index.md +++ /dev/null @@ -1,658 +0,0 @@ ---- -title: Anatomia dei contratti intelligenti -description: "Uno sguardo approfondito all'anatomia di un contratto intelligente: le funzioni, i dati e le variabili." -lang: it ---- - -Un contratto intelligente è un programma eseguito a un indirizzo su Ethereum. È composto di dati e funzioni che entrano in esecuzione appena si riceve una transazione. Ecco una panoramica di cosa compone un contratto intelligente. - -### Prerequisiti {#prerequisites} - -Prima, assicurati di aver letto a riguardo dei [contratti intelligenti](/developers/docs/smart-contracts/). Questa pagina presuppone che si conoscano i linguaggi di programmazione come JavaScript o Python. - -## Dati {#data} - -Tutti i dati del contratto devono essere assegnati a una posizione: `storage` oppure ` memory`. Modificare l'archiviazione in un contratto intelligente è dispendioso, devi quindi considerare dove dovrebbero risiedere i tuoi dati. - -### Storage {#storage} - -I dati persistenti sono detti storage (o spazio di archiviazione) e sono rappresentati da variabili di stato. Questi valori sono memorizzati permanentemente nella blockchain. È necessario dichiarare il tipo così che il contratto possa tenere traccia di quanto storage è necessario sulla blockchain quando viene compilato. - -```solidity -// Esempio in Solidity -contract SimpleStorage { - uint storedData; // Variabile di stato - // ... -} -``` - -```python -# Esempio in Vyper -storedData: int128 -``` - -Se hai già programmato con linguaggi orientati agli oggetti, è probabile che tu abbia famigliarità con la maggior parte dei tipi, ma `address` potrebbe non essere noto se non hai mai sviluppato per Ethereum. - -Un tipo `address` può contenere un indirizzo Ethereum che equivale a 20 byte o 160 bit. Restituisce una notazione esadecimale preceduta da 0x. - -Altri tipi includono: - -- booleano -- numero intero -- numeri a virgola fissa -- array di byte a dimensione fissa -- array di byte di dimensioni dinamiche -- letterali interi e razionali -- stringhe -- letterali esadecimali -- enumerazioni - -Per ulteriori spiegazioni, consulta la documentazione: - -- [Vedi Vyper types](https://vyper.readthedocs.io/en/v0.1.0-beta.6/types.html#value-types) -- [Vedi Solidity types](https://solidity.readthedocs.io/en/latest/types.html#value-types) - -### Memory {#memory} - -I valori che vengono memorizzati solo per la durata di esecuzione di una funzione di contratto sono detti variabili di memoria. Dal momento che non sono memorizzati in modo permanente sulla blockchain, sono molto più economici da usare. - -Scopri di più su come l'EVM memorizza i dati (Archiviazione, Memoria e lo Stack), nella [documentazione di Solidity](https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html?highlight=memory#storage-memory-and-the-stack). - -### Variabili d'ambiente {#environment-variables} - -Oltre alle variabili che vengono definite nel contratto, sono presenti alcune variabili globali speciali. Vengono utilizzate principalmente per fornire informazioni sulla blockchain o sulla transazione corrente. - -Esempi: - -| **Proprietà** | **Variabile di stato** | **Descrizione** | -| ----------------- | ---------------------- | ------------------------------------------ | -| `block.timestamp` | uint256 | Data/ora dell'epoca del blocco corrente | -| `msg.sender` | address | Mittente del messaggio (chiamata corrente) | - -## Funzioni {#functions} - -In termini estremamente semplici, le funzioni possono ottenere informazioni o impostarle in risposta alle transazioni in arrivo. - -Ci sono due tipi di chiamata di funzione: - -- `internal` – non creano una chiamata all'EVM - - Le funzioni interne e le variabili di stato sono accessibili solo internamente (ovvero dall'interno del contratto corrente o dei contratti derivanti da esso). -- `external` – creano una chiamata all'EVM - - Le funzioni esterne fanno parte dell'interfaccia del contratto, quindi possono essere chiamate da altri contratti e tramite transazioni. Una funzione esterna `f` non può essere chiamata internamente (quindi `f()` non funziona, ma `this.f()` funziona). - -Possono anche essere `public` o `private` - -- Le funzioni `public` possono essere chiamate direttamente dall'interno del contratto o dall'esterno tramite messaggi -- Le funzioni `private` sono visibili solo per il contratto in cui sono definite e non da contratti derivati - -Sia le funzioni che le variabili di stato possono essere rese pubbliche o private - -Questa è una funzione per aggiornare una variabile di stato su un contratto: - -```solidity -// Esempio in Solidity -function update_name(string value) public { - dapp_name = value; -} -``` - -- Il parametro `value` di tipo `string` viene passato alla funzione: `update_name` -- È dichiarato `public` e quindi chiunque può accedervi -- Non è dichiarato `view`, quindi può modificare lo stato del contratto - -### Funzioni view {#view-functions} - -Queste funzioni promettono di non modificare lo stato dei dati del contratto. Tra gli esempi più comuni vi sono le funzioni "getter": puoi usarle ad esempio per ricevere un saldo dell'utente. - -```solidity -// Esempio in Solidity -function balanceOf(address _owner) public view returns (uint256 _balance) { - return ownerPizzaCount[_owner]; -} -``` - -```python -dappName: public(string) - -@view -@public -def readName() -> string: - return dappName -``` - -Ecco cosa è considerato modifica dello stato: - -1. Scrittura su variabili di stato. -2. [Emissione di eventi](https://solidity.readthedocs.io/en/v0.7.0/contracts.html#events). -3. [Creazione di altri contratti](https://solidity.readthedocs.io/en/v0.7.0/control-structures.html#creating-contracts). -4. Uso di `selfdestruct`. -5. Invio di ether tramite chiamate. -6. Chiamata di qualsiasi funzione non contrassegnata con `view` o `pure`. -7. Utilizzo di chiamate di basso livello. -8. Utilizzo di assembly inline contenente determinati opcode. - -### Funzioni constructor {#constructor-functions} - -Quando il contratto viene distribuito per la prima volta, le funzioni `constructor` sono eseguite solo una volta. Come accade per `constructor` in molti linguaggi di programmazione basati su classi, queste funzioni spesso inizializzano le variabili di stato ai valori specificati. - -```solidity -// Esempi in Solidity -// Inizializza i dati del contratto, impostando `owner` -// sull'indirizzo del creatore del contratto. -constructor() public { - // Tutti gli Smart Contract si basano su transazioni esterne per attivare le proprie funzioni. - // `msg` è una variabile globale che include dati sulla transazione specificata, - // come indirizzo del mittente e valore degli ETH inclusi nella transazione. - // Per saperne di più: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties - owner = msg.sender; -} -``` - -```python -# Esempio in Vyper - -@external -def __init__(_beneficiary: address, _bidding_time: uint256): - self.beneficiary = _beneficiary - self.auctionStart = block.timestamp - self.auctionEnd = self.auctionStart + _bidding_time -``` - -### Funzioni integrate {#built-in-functions} - -Oltre alle variabili che vengono definite nel contratto, sono presenti alcune funzioni speciali integrate. L'esempio più evidente è: - -- `address.send()` – Solidity -- `send(address)` – Vyper - -Queste, consentono ai contratti di inviare ETH agli altri conti. - -## Scrivere funzioni {#writing-functions} - -Una funzione ha bisogno di: - -- variabile e tipo di parametro (se accetta parametri) -- dichiarazione interna/esterna -- dichiarazione pure/view/payable -- tipo di valore restituito (se restituisce un valore) - -```solidity -pragma solidity >=0.4.0 <=0.6.0; - -contract ExampleDapp { - string dapp_name; // state variable - - // Called when the contract is deployed and initializes the value - constructor() public { - dapp_name = "My Example dapp"; - } - - // Get Function - function read_name() public view returns(string) { - return dapp_name; - } - - // Set Function - function update_name(string value) public { - dapp_name = value; - } -} -``` - -Un contratto completo potrebbe avere questa forma. Qui la funzione `constructor` fornisce un valore iniziale per la variabile `dapp_name`. - -## Eventi e log {#events-and-logs} - -Gli eventi ti consentono di comunicare con il tuo contratto intelligente dal tuo frontend o da altre applicazioni che prevedono un'iscrizione. Quando una transazione è minata, i contratti intelligenti possono emettere eventi e scrivere registri alla blockchain, che il frontend può poi elaborare. - -## Esempi commentati {#annotated-examples} - -Questi sono alcuni esempi scritti in Solidity. Se vuoi sperimentare con il codice, puoi interagire con questi esempi in [Remix](http://remix.ethereum.org). - -### Hello world {#hello-world} - -```solidity -// Specifica la versione di Solidity, utilizzando il controllo delle versioni semantico. -// Per saperne di più: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma -pragma solidity ^0.5.10; - -// Definisce un contratto chiamato `HelloWorld`. -// Un contratto è una raccolta di funzioni e dati (il suo stato). -// Una volta distribuito, un contratto risiede in un indirizzo specifico della blockchain Ethereum. -// Per saperne di più: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html -contract HelloWorld { - - // Dichiara una variabile di stato `message` di tipo `string`. - // Le variabili di stato sono variabili con valori memorizzati in modo permanente nello spazio di archiviazione (storage) del contratto. - // La parola chiave `public` rende le variabili accessibili dall'esterno di un contratto - // e crea una funzione che altri contratti o client possono chiamare per accedere al valore. - string public message; - - // Analogamente a molti linguaggi di programmazione basati su classi, un costruttore è - // una funzione speciale che viene eseguita solo al momento della creazione del contratto. - // I costruttori sono utilizzati per inizializzare i dati del contratto. - // Maggiori informazioni: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constructors - constructor(string memory initMessage) public { - // Accetta un argomento di tipo string `initMessage` e imposta il valore - // nella variabile di archiviazione `message` del contratto). - message = initMessage; - } - - // Funzione pubblica che accetta un argomento string - // e aggiorna la variabile di archiviazione `message`. - function update(string memory newMessage) public { - message = newMessage; - } -} -``` - -### Token {#token} - -```solidity -pragma solidity ^0.5.10; - -contract Token { - // Un 'address' è paragonabile a un indirizzo email. Viene usato per identificare un account su Ethereum. - // Gli indirizzi possono rappresentare uno Smart Contract o un account esterno (utente). - // Per saperne di più: https://solidity.readthedocs.io/en/v0.5.10/types.html#address - address public owner; - - // Un `mapping` è essenzialmente una struttura dati di tipo tabella hash. - // Questo `mapping` assegna un numero intero senza segno (il saldo del token) a un indirizzo (il proprietario del token). - // Per saperne di più: https://solidity.readthedocs.io/en/v0.5.10/types.html#mapping-types - mapping (address => uint) public balances; - - // Gli eventi consentono di registrare le attività sulla blockchain. - // I client Ethereum possono attendere gli eventi per reagire alle modifiche di stato del contratto. - // Ulteriori informazioni: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#events - event Transfer(address from, address to, uint amount); - - // Inizializza i dati del contratto, impostando `owner` - // sull'indirizzo del creatore del contratto. - constructor() public { - // Tutti gli Smart Contract si basano su transazioni esterne per attivare le proprie funzioni. - // `msg` è una variabile globale che include dati relativi alla transazione specificata, - // come l'indirizzo del mittente e il valore in ETH incluso nella transazione. - // Per saperne di più: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties - owner = msg.sender; - } - - // Crea una quantità di nuovi token e li invia a un indirizzo. - function mint(address receiver, uint amount) public { - // `require` è una struttura di controllo utilizzata per implementare determinate condizioni. - // Se un'istruzione `require` restituisce `false`, viene attivata un'eccezione, - // che ripristina tutte le modifiche apportate allo stato durante la chiamata corrente. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions - - // Only the contract owner can call this function - require(msg.sender == owner, "You are not the owner."); - - // Enforces a maximum amount of tokens - require(amount < 1e60, "Maximum issuance exceeded"); - - // Increases the balance of `receiver` by `amount` - balances[receiver] += amount; - } - - // Sends an amount of existing tokens from any caller to an address. - function transfer(address receiver, uint amount) public { - // Il mittente deve avere abbastanza token da inviare - require(amount <= balances[msg.sender], "Insufficient balance."); - - // Modifica i saldi di token dei due indirizzi - balances[msg.sender] -= amount; - balances[receiver] += amount; - - // Emette l'evento definito in precedenza - emit Transfer(msg.sender, receiver, amount); - } -} -``` - -### Risorsa digitale univoca {#unique-digital-asset} - -```solidity -pragma solidity ^0.5.10; - -// Importa simboli da altri file nel contratto corrente. -// In questo caso, una serie di contratti di supporto da OpenZeppelin. -// Per saperne di più: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#importing-other-source-files - -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; -import "../node_modules/@openzeppelin/contracts/introspection/ERC165.sol"; -import "../node_modules/@openzeppelin/contracts/math/SafeMath.sol"; - -// La parola chiave `is` viene utilizzata per ereditare funzioni e parole chiave da contratti esterni. -// In questo caso, `CryptoPizza` eredita dai contratti `IERC721` e `ERC165`. -// Per saperne di più: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#inheritance -contract CryptoPizza is IERC721, ERC165 { - // Utilizza la libreria SafeMath di OpenZeppelin per eseguire operazioni aritmetiche in modo sicuro. - // Ulteriori informazioni: https://docs.openzeppelin.com/contracts/2. /api/math#SafeMath - using SafeMath for uint256; - - // Le variabili di stato costanti in Solidity sono simili ad altri linguaggi - // ma devono essere assegnate da un'espressione che è costante al momento della compilazione. - // Scopri di più: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constant-state-variables - uint256 constant dnaDigits = 10; - uint256 constant dnaModulus = 10 ** dnaDigits; - bytes4 private constant _ERC721_RECEIVED = 0x150b7a02; - - // I tipi di struttura ti fanno definire il tuo tipo - // Scopri di più: https://solidity.readthedocs.io/en/v0.5.10/types.html#structs - struct Pizza { - string name; - uint256 dna; - } - - // Crea un insieme vuoto di strutture di Pizza - Pizza[] public pizzas; - - // Mappatura dall'ID della pizza all'indirizzo del suo proprietario - mapping(uint256 => address) public pizzaToOwner; - - // Mappatura dall'indirizzo del proprietario al numero di token posseduti - mapping(address => uint256) public ownerPizzaCount; - - // Mappatura dall'ID del token all'indirizzo approvato - mapping(uint256 => address) pizzaApprovals; - - // Puoi nidificare le mappature, questo esempio mappa le approvazioni da proprietario a operatore - mapping(address => mapping(address => bool)) private operatorApprovals; - - // Funzione interna per creare una Pizza casuale dalla stringa (nome) e dal DNA - function _createPizza(string memory _name, uint256 _dna) - // La parola chiave `internal` significa che questa funzione è visibile solo - // tra questo contratto e i contratti derivati da esso - // Scopri di più: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#visibility-and-getters - internal - // `isUnique` è un modificatore della funzione che verifica se la pizza esiste già - // Scopri di più: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html#function-modifiers - isUnique(_name, _dna) - { - // Aggiunge la Pizza all'insieme di Pizze e ottiene l'id - uint256 id = SafeMath.sub(pizzas.push(Pizza(_name, _dna)), 1); - - // Verifica che il proprietario della Pizza sia l'utente corrente - // Scopri di più: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions - - // nota che address(0) è l'indirizzo zero, - // indicando che pizza[id] non è ancora allocato a un utente in particolare. - - assert(pizzaToOwner[id] == address(0)); - - // Mappa la Pizza al proprietario - pizzaToOwner[id] = msg.sender; - ownerPizzaCount[msg.sender] = SafeMath.add( - ownerPizzaCount[msg.sender], - 1 - ); - } - - // Crea una Pizza casuale dalla stringa (nome) - function createRandomPizza(string memory _name) public { - uint256 randDna = generateRandomDna(_name, msg.sender); - _createPizza(_name, randDna); - } - - // Genera DNA casuale dalla stringa (nome) e dall'indirizzo del proprietario (creatore) - function generateRandomDna(string memory _str, address _owner) - public - // Le funzioni contrassegnate come `pure` promettono di non modificare lo stato o non leggere da esso - // Scopri di più: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#pure-functions - pure - returns (uint256) - { - // Genera uint casuale dalla stringa (nome) + indirizzo (proprietario) - uint256 rand = uint256(keccak256(abi.encodePacked(_str))) + - uint256(_owner); - rand = rand % dnaModulus; - return rand; - } - - // Restituisce l'insieme di Pizze trovate dal proprietario - function getPizzasByOwner(address _owner) - public - // Le funzioni contrassegnate come `view` promettono di non modificare lo stato - // Scopri di più: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#view-functions - view - returns (uint256[] memory) - { - // Usa la posizione d'archiviazione `memory` per memorizzare i valori solo per la durata - // di questa chiamata alla funzione. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/introduction-to-smart-contracts.html#storage-memory-and-the-stack - uint256[] memory result = new uint256[](ownerPizzaCount[_owner]); - uint256 counter = 0; - for (uint256 i = 0; i < pizzas.length; i++) { - if (pizzaToOwner[i] == _owner) { - result[counter] = i; - counter++; - } - } - return result; - } - - // Transfers Pizza and ownership to other address - function transferFrom(address _from, address _to, uint256 _pizzaId) public { - require(_from != address(0) && _to != address(0), "Invalid address."); - require(_exists(_pizzaId), "Pizza does not exist."); - require(_from != _to, "Cannot transfer to the same address."); - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - - ownerPizzaCount[_to] = SafeMath.add(ownerPizzaCount[_to], 1); - ownerPizzaCount[_from] = SafeMath.sub(ownerPizzaCount[_from], 1); - pizzaToOwner[_pizzaId] = _to; - - // Emits event defined in the imported IERC721 contract - emit Transfer(_from, _to, _pizzaId); - _clearApproval(_to, _pizzaId); - } - - /** - * Safely transfers the ownership of a given token ID to another address - * If the target address is a contract, it must implement `onERC721Received`, - * which is called upon a safe transfer, and return the magic value - * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; - * otherwise, the transfer is reverted. - */ - function safeTransferFrom(address from, address to, uint256 pizzaId) - public - { - // solium-disable-next-line arg-overflow - this.safeTransferFrom(from, to, pizzaId, ""); - } - - /** - * Safely transfers the ownership of a given token ID to another address - * If the target address is a contract, it must implement `onERC721Received`, - * which is called upon a safe transfer, and return the magic value - * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; - * otherwise, the transfer is reverted. - */ - function safeTransferFrom( - address from, - address to, - uint256 pizzaId, - bytes memory _data - ) public { - this.transferFrom(from, to, pizzaId); - require(_checkOnERC721Received(from, to, pizzaId, _data), "Must implement onERC721Received."); - } - - /** - * Funzione interna per invocare `onERC721Received` su un dato indirizzo - * La chiamata non è eseguita se l'indirizzo di destinazione non è un contratto - */ - function _checkOnERC721Received( - address from, - address to, - uint256 pizzaId, - bytes memory _data - ) internal returns (bool) { - if (!isContract(to)) { - return true; - } - - bytes4 retval = IERC721Receiver(to).onERC721Received( - msg.sender, - from, - pizzaId, - _data - ); - return (retval == _ERC721_RECEIVED); - } - - // Brucia una Pizza - distrugge completamente il Token - // Il modificatore della funzione `external` significa che questa funzione fa - // parte dell'interfaccia del contratto e che gli altri contratti possono chiamarla - function burn(uint256 _pizzaId) external { - require(msg.sender != address(0), "Indirizzo non valido."); - require(_exists(_pizzaId), "La Pizza non esiste."); - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Indirizzo non approvato."); - - ownerPizzaCount[msg.sender] = SafeMath.sub( - ownerPizzaCount[msg.sender], - 1 - ); - pizzaToOwner[_pizzaId] = address(0); - } - - // Restituisce il numero di Pizze per indirizzo - function balanceOf(address _owner) public view returns (uint256 _balance) { - return ownerPizzaCount[_owner]; - } - - // Restituisce il proprietario della Pizza trovato per id - function ownerOf(uint256 _pizzaId) public view returns (address _owner) { - address owner = pizzaToOwner[_pizzaId]; - require(owner != address(0), "ID della Pizza non valido."); - return owner; - } - - // Approva altri indirizzi per trasferire la proprietà della Pizza - function approve(address _to, uint256 _pizzaId) public { - require(msg.sender == pizzaToOwner[_pizzaId], "Dev'essere il proprietario della Pizza."); - pizzaApprovals[_pizzaId] = _to; - emit Approval(msg.sender, _to, _pizzaId); - } - - // Restituisce l'indirizzo approvato per la Pizza specifica - function getApproved(uint256 _pizzaId) - public - view - returns (address operator) - { - require(_exists(_pizzaId), "La Pizza non esiste."); - return pizzaApprovals[_pizzaId]; - } - - /** - * La funzione privata per cancellare l'approvazione corrente dell'ID di un dato token - * Si ripristina se l'indirizzo dato non è il proprietario del token - */ - function _clearApproval(address owner, uint256 _pizzaId) private { - require(pizzaToOwner[_pizzaId] == owner, "Dev'essere il proprietario della pizza."); - require(_exists(_pizzaId), "La Pizza non esiste."); - if (pizzaApprovals[_pizzaId] != address(0)) { - pizzaApprovals[_pizzaId] = address(0); - } - } - - /* - * Imposta o rimuove l'approvazione di un dato operatore - * Un operatore può trasferire tutti i token del mittente per conto suo - */ - function setApprovalForAll(address to, bool approved) public { - require(to != msg.sender, "Impossibile approvare il proprio indirizzo"); - operatorApprovals[msg.sender][to] = approved; - emit ApprovalForAll(msg.sender, to, approved); - } - - // Dice se un operatore è approvato da un dato proprietario - function isApprovedForAll(address owner, address operator) - public - view - returns (bool) - { - return operatorApprovals[owner][operator]; - } - - // Prende proprietà della Pizza - solo per gli utenti approvati - function takeOwnership(uint256 _pizzaId) public { - require(_isApprovedOrOwner(msg.sender, _pizzaId), "L'indirizzo non è approvato."); - address owner = this.ownerOf(_pizzaId); - this.transferFrom(owner, msg.sender, _pizzaId); - } - - // Verifica se la Pizza esiste - function _exists(uint256 pizzaId) internal view returns (bool) { - address owner = pizzaToOwner[pizzaId]; - return owner != address(0); - } - - // Verifica se l'indirizzo è il proprietario o è approvato per trasferire la Pizza - function _isApprovedOrOwner(address spender, uint256 pizzaId) - internal - view - returns (bool) - { - address owner = pizzaToOwner[pizzaId]; - // Disabilita il controllo di solium a causa di - // https://github.com/duaraghav8/Solium/issues/175 - // solium-disable-next-line operator-whitespace - return (spender == owner || - this.getApproved(pizzaId) == spender || - this.isApprovedForAll(owner, spender)); - } - - // Verifica se la Pizza è univoca e non esiste ancora - modifier isUnique(string memory _name, uint256 _dna) { - bool result = true; - for (uint256 i = 0; i < pizzas.length; i++) { - if ( - keccak256(abi.encodePacked(pizzas[i].name)) == - keccak256(abi.encodePacked(_name)) && - pizzas[i].dna == _dna - ) { - result = false; - } - } - require(result, "Una Pizza con quel nome esiste già."); - _; - } - - // Restituisce se l'indirizzo di destinazione è un contratto - function isContract(address account) internal view returns (bool) { - uint256 size; - // Correntemente non c'è modo migliore di verificare se esiste un contratto in un indirizzo - // se non controllare la dimensione del codice a quell'indirizzo. - // Visita https://ethereum.stackexchange.com/a/14016/36603 - // per maggiori dettagli sul funzionamento. - // TODO Controllare questo codice nuovamente prima del rilascio di Serenity, perché a quel punto - // tutti gli indirizzi saranno contratti. - // solium-disable-next-line security/no-inline-assembly - assembly { - size := extcodesize(account) - } - return size > 0; - } -} -``` - -## Letture consigliate {#further-reading} - -Dai un'occhiata alla documentazione di Solidity e Vyper per una panoramica più complessa dei contratti intelligenti: - -- [Solidity](https://solidity.readthedocs.io/) -- [Vyper](https://vyper.readthedocs.io/) - -## Argomenti correlati {#related-topics} - -- [Contratti intelligenti](/developers/docs/smart-contracts/) -- [Macchina virtuale Ethereum](/developers/docs/evm/) - -## Tutorial correlati {#related-tutorials} - -- [Ridimensionare i contratti per contrastare il limite di dimensioni del contratto](/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/): _Alcuni consigli pratici per ridurre le dimensioni del tuo contratto intelligente._ -- [Registrare dati dai contratti intelligenti con gli eventi](/developers/tutorials/logging-events-smart-contracts/): _Un'introduzione agli eventi dei contratti intelligenti e a come puoi usarli per registrare i dati._ -- [Interagire con gli altri contratti da Solidity](/developers/tutorials/interact-with-other-contracts-from-solidity/): _Come distribuire un contratto intelligente da un contratto esistente e interagirvi._ diff --git a/src/content/translations/it/developers/docs/standards/tokens/erc-20/index.md b/src/content/translations/it/developers/docs/standards/tokens/erc-20/index.md deleted file mode 100644 index 65e808f20ea..00000000000 --- a/src/content/translations/it/developers/docs/standards/tokens/erc-20/index.md +++ /dev/null @@ -1,149 +0,0 @@ ---- -title: Standard token ERC-20 -description: -lang: it ---- - -## Introduzione {#introduction} - -**Cos'è un token?** - -I token possono rappresentare praticamente tutto in Ethereum: - -- punti di reputazione in piattaforme online -- abilità di un personaggio di un videogioco -- biglietti della lotteria -- strumenti finanziari come una partecipazione in una società -- una valuta legale come il dollaro statunitense -- un'oncia d'oro -- e molto altro... - -Una caratteristica così potente di Ethereum deve essere gestita da uno standard robusto. Questo è esattamente il ruolo di ERC-20! Questo standard permette agli sviluppatori di creare applicazioni token interoperabili con altri prodotti e servizi. - -**Cos'è ERC-20?** - -ERC-20 introduce uno standard per i token fungibili. In altre parole, questi token hanno una proprietà che rende ogni token esattamente uguale (per tipo e valore) a un altro token. Per esempio, un token ERC-20 funziona esattamente come ETH, ossia 1 token è e sarà sempre uguale a tutti gli altri token. - -## Prerequisiti {#prerequisites} - -- [Conti](/developers/docs/accounts) -- [Contratti Intelligenti](/developers/docs/smart-contracts/) -- [Standard per i token](/developers/docs/standards/tokens/) - -## Corpo {#body} - -L'ERC-20 (Ethereum Request for Comments 20), proposto da Fabian Vogelsteller nel novembre del 2015, è uno Standard del Token che implementa un'API per i token nei Contratti Intelligenti. - -Esempio di funzionalità fornite da ERC-20: - -- trasferire token da un conto all'altro -- ottenere il saldo corrente di token di un conto -- richiedere la quantità totale di token disponibile sulla rete -- approvare se un importo di token da un conto è spendibile da un conto di terze parti - -Se un Contratto Intelligente implementa i seguenti metodi ed eventi, può esser definito un Contratto a Token ERC-20 e, una volta distribuito, sarà responsabile di tenere traccia dei token creati su Ethereum. - -Da [EIP-20](https://eips.ethereum.org/EIPS/eip-20): - -#### Metodi {#methods} - -```solidity -function name() public view returns (string) -function symbol() public view returns (string) -function decimals() public view returns (uint8) -function totalSupply() public view returns (uint256) -function balanceOf(address _owner) public view returns (uint256 balance) -function transfer(address _to, uint256 _value) public returns (bool success) -function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) -function approve(address _spender, uint256 _value) public returns (bool success) -function allowance(address _owner, address _spender) public view returns (uint256 remaining) -``` - -#### Eventi {#events} - -```solidity -event Transfer(address indexed _from, address indexed _to, uint256 _value) -event Approval(address indexed _owner, address indexed _spender, uint256 _value) -``` - -### Esempi {#web3py-example} - -Vediamo perché uno standard è così importante per semplificare l'ispezione dei contratti token ERC-20 su Ethereum. Ci serve solo la Contract Application Binary Interface (ABI) per creare un'interfaccia per qualsiasi token ERC-20. Come puoi vedere di seguito, useremo un'ABI semplificata per fornire un esempio semplice da capire. - -#### Esempio Web3.py {#web3py-example} - -Prima di tutto, controlla di avere installato la libreria Python [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation): - -``` -pip install web3 -``` - -```python -from web3 import Web3 - - -w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) - -dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI -weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # Wrapped ether (WETH) - -acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11" # Uniswap V2: DAI 2 - -# questa è un'ABI (Contract Application Binary Interface) semplificata per un contratto token ERC-20. -# It will expose only the methods: balanceOf(address), decimals(), symbol() and totalSupply() -simplified_abi = [ - { - 'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], - 'name': 'balanceOf', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'decimals', - 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'symbol', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'totalSupply', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - } -] - -dai_contract = w3.eth.contract(address=w3.to_checksum_address(dai_token_addr), abi=simplified_abi) -symbol = dai_contract.functions.symbol().call() -decimals = dai_contract.functions.decimals().call() -totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals -addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals - -# DAI -print("===== %s =====" % symbol) -print("Total Supply:", totalSupply) -print("Addr Balance:", addr_balance) - -weth_contract = w3.eth.contract(address=w3.to_checksum_address(weth_token_addr), abi=simplified_abi) -symbol = weth_contract.functions.symbol().call() -decimals = weth_contract.functions.decimals().call() -totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals -addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals - -# WETH -print("===== %s =====" % symbol) -print("Total Supply:", totalSupply) -print("Addr Balance:", addr_balance) -``` - -## Letture consigliate {#further-reading} - -- [EIP-20: Standard dei token ERC-20](https://eips.ethereum.org/EIPS/eip-20) -- [OpenZeppelin - Token](https://docs.openzeppelin.com/contracts/3.x/tokens#ERC20) -- [OpenZeppelin - Implementazione ERC-20](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) -- [Alchemy - Guida ai token ERC20 di Solidity](https://www.alchemy.com/overviews/erc20-solidity) diff --git a/src/content/translations/it/developers/docs/standards/tokens/erc-721/index.md b/src/content/translations/it/developers/docs/standards/tokens/erc-721/index.md deleted file mode 100644 index 2489f2553c8..00000000000 --- a/src/content/translations/it/developers/docs/standards/tokens/erc-721/index.md +++ /dev/null @@ -1,244 +0,0 @@ ---- -title: Standard token non fungibile ERC-721 -description: -lang: it ---- - -## Introduzione {#introduction} - -**Cos'è un token non fungibile?** - -Un token non fungibile (NFT) è usato per identificare inequivocabilmente qualcosa o qualcuno. Questo tipo di Token è perfetto su piattaforme che offrono oggetti collezionabili, chiavi di accesso, biglietti della lotteria, posti numerati per concerti o eventi sportivi ecc. Questo particolare tipo di token offre possibilità straordinarie quindi si merita uno standard vero e proprio, ed ERC-721 serve proprio per questo! - -**Cos'è ERC-721?** - -L'ERC-721 introduce uno standard per gli NFT; in altre parole, questo tipo di Token è unico e può avere un valore differente da un altro Token dallo stesso Contratto Intelligente, forse a causa della sua età, rarità o persino ad altro, come il suo aspetto. Cosa? Aspetto? - -Sì! Tutti gli NFT hanno una variabile `uint256` chiamata `tokenId`, quindi per i contratti ERC-721 la coppia `contract address, uint256 tokenId` deve essere unica a livello globale. Detto ciò, una dapp può avere un "convertitore" che utilizza il `tokenId` come input e restituisce l'immagine di qualcosa come zombie, armi, abilità o teneri gattini! - -## Prerequisiti {#prerequisites} - -- [Conti](/developers/docs/accounts/) -- [Contratti Intelligenti](/developers/docs/smart-contracts/) -- [Standard token](/developers/docs/standards/tokens/) - -## Corpo {#body} - -L'ERC-721 (Ethereum Request for Comments 721), proposto da William Entriken, Dieter Shirely, Jacob Evans e Nastassia Sachs a gennaio 2018, è uno Standard del Token Non Fungibile che implementa un'API per i token nei Contratti Intelligenti. - -Fornisce funzionalità come il trasferimento dei token da un conto all'altro, l'ottenimento del saldo corrente del token di un conto, l'ottenimento del proprietario di un token specifico, nonché l'offerta totale del token disponibile sulla rete. Oltre a ciò, ha alcune altre funzionalità, come approvare che un importo di token da un conto possa esser spostato da un conto di terze parti. - -Se un Contratto Intelligente implementa i seguenti metodi ed eventi, può esser definito un Contratto a Token Non Fungibile ERC-721 e, una volta distribuito, sarà responsabile di tenere traccia dei token creati su Ethereum. - -Da [EIP-721](https://eips.ethereum.org/EIPS/eip-721): - -#### Metodi {#methods} - -```solidity - function balanceOf(address _owner) external view returns (uint256); - function ownerOf(uint256 _tokenId) external view returns (address); - function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; - function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; - function transferFrom(address _from, address _to, uint256 _tokenId) external payable; - function approve(address _approved, uint256 _tokenId) external payable; - function setApprovalForAll(address _operator, bool _approved) external; - function getApproved(uint256 _tokenId) external view returns (address); - function isApprovedForAll(address _owner, address _operator) external view returns (bool); -``` - -#### Eventi {#events} - -```solidity - event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); - event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); - event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); -``` - -### Esempi {#web3py-example} - -Vediamo perché uno standard è così importante per semplificare l'ispezione dei contratti token ERC-721 su Ethereum. Ci serve solo la Contract Application Binary Interface (ABI) per creare un'interfaccia per qualsiasi token ERC-721. Come puoi vedere di seguito, useremo un'ABI semplificata per fornire un esempio semplice da capire. - -#### Esempio Web3.py {#web3py-example} - -Prima di tutto, controlla di avere installato la libreria Python [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation): - -``` -pip install web3 -``` - -```python -from web3 import Web3 -from web3._utils.events import get_event_data - - -w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) - -ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # CryptoKitties Contract - -acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # CryptoKitties Sales Auction - -# This is a simplified Contract Application Binary Interface (ABI) of an ERC-721 NFT Contract. -# It will expose only the methods: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply() -simplified_abi = [ - { - 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], - 'name': 'balanceOf', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'name', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], - 'name': 'ownerOf', - 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'symbol', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'totalSupply', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, -] - -ck_extra_abi = [ - { - 'inputs': [], - 'name': 'pregnantKitties', - 'outputs': [{'name': '', 'type': 'uint256'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [{'name': '_kittyId', 'type': 'uint256'}], - 'name': 'isPregnant', - 'outputs': [{'name': '', 'type': 'bool'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - } -] - -ck_contract = w3.eth.contract(address=w3.to_checksum_address(ck_token_addr), abi=simplified_abi+ck_extra_abi) -name = ck_contract.functions.name().call() -symbol = ck_contract.functions.symbol().call() -kitties_auctions = ck_contract.functions.balanceOf(acc_address).call() -print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}") - -pregnant_kitties = ck_contract.functions.pregnantKitties().call() -print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}") - -# Using the Transfer Event ABI to get info about transferred Kitties. -tx_event_abi = { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'from', 'type': 'address'}, - {'indexed': False, 'name': 'to', 'type': 'address'}, - {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}], - 'name': 'Transfer', - 'type': 'event' -} - -# We need the event's signature to filter the logs -event_signature = w3.keccak(text="Transfer(address,address,uint256)").hex() - -logs = w3.eth.get_logs({ - "fromBlock": w3.eth.block_number - 120, - "address": w3.to_checksum_address(ck_token_addr), - "topics": [event_signature] -}) - -# Notes: -# - Increase the number of blocks up from 120 if no Transfer event is returned. -# - If you didn't find any Transfer event you can also try to get a tokenId at: -# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events -# Click to expand the event's logs and copy its "tokenId" argument -recent_tx = [get_event_data(w3.codec, tx_event_abi, log)["args"] for log in logs] - -if recent_tx: - kitty_id = recent_tx[0]['tokenId'] # Paste the "tokenId" here from the link above - is_pregnant = ck_contract.functions.isPregnant(kitty_id).call() - print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}") -``` - -Il contratto CryptoKitties contiene alcuni eventi interessanti oltre a quelli standard. - -Diamo un'occhiata a due di questi, `Pregnant` e `Birth`. - -```python -# Viene usata l'ABI Pregnant e Birth Events per ottenere informazioni sui nuovi gattini. -ck_extra_events_abi = [ - { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'owner', 'type': 'address'}, - {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, - {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, - {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}], - 'name': 'Pregnant', - 'type': 'event' - }, - { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'owner', 'type': 'address'}, - {'indexed': False, 'name': 'kittyId', 'type': 'uint256'}, - {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, - {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, - {'indexed': False, 'name': 'genes', 'type': 'uint256'}], - 'name': 'Birth', - 'type': 'event' - }] - -# We need the event's signature to filter the logs -ck_event_signatures = [ - w3.keccak(text="Pregnant(address,uint256,uint256,uint256)").hex(), - w3.keccak(text="Birth(address,uint256,uint256,uint256,uint256)").hex(), -] - -# Here is a Pregnant Event: -# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog -pregnant_logs = w3.eth.get_logs({ - "fromBlock": w3.eth.block_number - 120, - "address": w3.to_checksum_address(ck_token_addr), - "topics": [ck_event_signatures[0]] -}) - -recent_pregnants = [get_event_data(w3.codec, ck_extra_events_abi[0], log)["args"] for log in pregnant_logs] - -# Here is a Birth Event: -# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a -birth_logs = w3.eth.get_logs({ - "fromBlock": w3.eth.block_number - 120, - "address": w3.to_checksum_address(ck_token_addr), - "topics": [ck_event_signatures[1]] -}) - -recent_births = [get_event_data(w3.codec, ck_extra_events_abi[1], log)["args"] for log in birth_logs] -``` - -## NFT più popolari {#popular-nfts} - -- [Etherscan NFT Tracker](https://etherscan.io/tokens-nft) elenca i principali NFT su Ethereum per volume di trasferimento. -- [CryptoKitties](https://www.cryptokitties.co/) è un gioco basato su creature a cui si può dare da mangiare, collezionabili e molto tenere chiamate CryptoKitties. -- [Sorare](https://sorare.com/) è un gioco di calcio fantasy globale in cui si possono collezionare oggetti in edizione limitata e gestire squadre, gareggiando per vincere premi. -- [The Ethereum Name Service (ENS)](https://ens.domains/) offre un modo sicuro e decentralizzato per indirizzare risorse sia all'interno che all'esterno della blockchain utilizzando nomi semplici e leggibili. -- [POAP](https://poap.xyz) offre NFT gratuiti alle persone che partecipano a eventi o completano azioni specifiche. I POAP sono creabili e distribuibili gratuitamente. -- [Unstoppable Domains](https://unstoppabledomains.com/) è un'azienda di San Francisco che crea domini sulle blockchain. I domini delle blockchain sostituiscono gli indirizzi della criptovaluta con nomi leggibili dall'uomo, che possono essere usati per creare siti web resistenti alla censura. -- [Gods Unchained Cards](https://godsunchained.com/) è un gioco di carte collezionabili sulla blockchain Ethereum che usa gli NFT per dare una proprietà reale alle risorse del gioco. -- [Bored Ape Yacht Club](https://boredapeyachtclub.com) è una raccolta di 10.000 NFT unici che, oltre a essere opere d'arte la cui rarità è dimostrata, fungono da token di appartenenza al club, fornendo ai membri vantaggi e benefici che possono aumentare nel tempo come risultato degli sforzi della community. - -## Letture consigliate {#further-reading} - -- [EIP-721: ERC-721 Non-Fungible Token Standard](https://eips.ethereum.org/EIPS/eip-721) -- [OpenZeppelin - ERC-721 Docs](https://docs.openzeppelin.com/contracts/3.x/erc721) -- [OpenZeppelin - ERC-721 Implementation](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) -- [API di Alchemy NFT](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) diff --git a/src/content/translations/it/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md b/src/content/translations/it/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md deleted file mode 100644 index 6804905ff4e..00000000000 --- a/src/content/translations/it/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md +++ /dev/null @@ -1,298 +0,0 @@ ---- -title: "Waffle: simulazioni dinamiche e test delle chiamate del contratto" -description: Tutorial avanzato su Waffle per usare la simulazione dinamica e testare le chiamate di contratto -author: "Daniel Izdebski" -tags: - - "waffle" - - "smart contract" - - "Solidity" - - "test" - - "simulazione" -skill: intermediate -lang: it -published: 2020-11-14 ---- - -## A cosa serve questo tutorial? {#what-is-this-tutorial-about} - -In questo tutorial imparerai come: - -- usare la simulazione dinamica -- testare interazioni tra Smart Contract - -Premesse: - -- sai già come scrivere un semplice Smart Contract in `Solidity` -- sai utilizzare `JavaScript` e `TypeScript` -- hai seguito altri tutorial di `Waffle<` o ne sai già qualcosa - -## Simulazione dinamica {#dynamic-mocking} - -Perché la simulazione dinamica è utile? Ci consente di scrivere unit test anziché test di integrazione. Cosa significa? Che non dobbiamo preoccuparci delle dipendenze tra gli Smart Contract, dunque possiamo testarli tutti in completo isolamento. Vediamo come. - -### **1. Progetto** {#1-project} - -Prima di iniziare dobbiamo preparare un semplice progetto node.js: - -```bash -mkdir dynamic-mocking -cd dynamic-mocking -mkdir contracts src - -yarn init -# or if you're using npm -npm init -``` - -Iniziamo aggiungendo dipendenze typescript e di test: mocha e chai: - -```bash -yarn add --dev @types/chai @types/mocha chai mocha ts-node typescript -# or if you're using npm -npm install @types/chai @types/mocha chai mocha ts-node typescript --save-dev -``` - -Ora aggiungiamo `Waffle` e `ethers`: - -```bash -yarn add --dev ethereum-waffle ethers -# or if you're using npm -npm install ethereum-waffle ethers --save-dev -``` - -La struttura del progetto sarà ora simile a: - -``` -. -├── contracts -├── package.json -└── test -``` - -### **2. Smart Contract** {#2-smart-contract} - -Per avviare la simulazione dinamica, serve uno Smart Contract con dipendenze. Nessun problema. - -Ecco un semplice Smart Contract scritto in `Solidity` con il solo scopo di controllare se siamo ricchi. Usa il token ERC20 per verificare se abbiamo abbastanza token. Inseriscilo in `./contracts/AmIRichAlready.sol`. - -```solidity -pragma solidity ^0.6.2; - -interface IERC20 { - function balanceOf(address account) external view returns (uint256); -} - -contract AmIRichAlready { - IERC20 private tokenContract; - uint public richness = 1000000 * 10 ** 18; - - constructor (IERC20 _tokenContract) public { - tokenContract = _tokenContract; - } - - function check() public view returns (bool) { - uint balance = tokenContract.balanceOf(msg.sender); - return balance > richness; - } -} -``` - -Poiché vogliamo usare la simulazione dinamica, non ci serve tutto ERC20, quindi usiamo l'interfaccia IERC20 con una sola funzione. - -È ora di creare questo contratto. Per questo useremo `Waffle`. Prima, creeremo un semplice file di configurazione `waffle.json` che specifichi le opzioni di compilazione. - -```json -{ - "compilerType": "solcjs", - "compilerVersion": "0.6.2", - "sourceDirectory": "./contracts", - "outputDirectory": "./build" -} -``` - -Ora siamo pronti a creare il contratto con Waffle: - -```bash -npx waffle -``` - -Facile, vero? Nella cartella `build/` sono comparsi due file corrispondenti al contratto e all'interfaccia. Li useremo dopo per i test. - -### **3. Test** {#3-testing} - -Creiamo un file chiamato `AmIRichAlready.test.ts` per il test reale. Prima di tutto, dobbiamo gestire le importazioni. Ci serviranno dopo: - -```typescript -import { expect, use } from "chai" -import { Contract, utils, Wallet } from "ethers" -import { - deployContract, - deployMockContract, - MockProvider, - solidity, -} from "ethereum-waffle" -``` - -A parte le dipendenze JS, dobbiamo importare il contratto e l'interfaccia creati: - -```typescript -import IERC20 from "../build/IERC20.json" -import AmIRichAlready from "../build/AmIRichAlready.json" -``` - -Waffle usa `chai` per il test. Tuttavia, prima di poterlo usare, dobbiamo inserire i matcher di Waffle in chai: - -```typescript -use(solidity) -``` - -Dobbiamo implementare la funzione `beforeEach()` che ripristinerà lo stato del contratto prima di ogni test. Prima pensiamo a cosa ci serve. Per distribuire un contratto servono due cose: un portafoglio e un contratto ERC20 distribuito da passare come argomento per il contratto `AmIRichAlready`. - -Prima creiamo un portafoglio: - -```typescript -const [wallet] = new MockProvider().getWallets() -``` - -Poi dobbiamo distribuire un contratto ERC20. Ecco la parte complicata: abbiamo solo un'interfaccia. Questa è la parte in cui Waffle ci viene in aiuto. Waffle ha la funzione magica `deployMockContract()` che crea un contratto usando solo l'_abi_ dell'interfaccia: - -```typescript -const mockERC20 = await deployMockContract(wallet, IERC20.abi) -``` - -Ora con il portafoglio e l'ERC20 distribuito, possiamo continuare e distribuire il contratto `AmIRichAlready`: - -```typescript -const contract = await deployContract(wallet, AmIRichAlready, [ - mockERC20.address, -]) -``` - -A questo punto, la funzione `beforeEach()` è finita. Il file `AmIRichAlready.test.ts` avrà il seguente aspetto: - -```typescript -import { expect, use } from "chai" -import { Contract, utils, Wallet } from "ethers" -import { - deployContract, - deployMockContract, - MockProvider, - solidity, -} from "ethereum-waffle" - -import IERC20 from "../build/IERC20.json" -import AmIRichAlready from "../build/AmIRichAlready.json" - -use(solidity) - -describe("Am I Rich Already", () => { - let mockERC20: Contract - let contract: Contract - let wallet: Wallet - - beforeEach(async () => { - ;[wallet] = new MockProvider().getWallets() - mockERC20 = await deployMockContract(wallet, IERC20.abi) - contract = await deployContract(wallet, AmIRichAlready, [mockERC20.address]) - }) -}) -``` - -Scriviamo il primo test per il contratto `AmIRichAlready`. Cosa pensi dovrebbe fare il test? Esatto! Dobbiamo controllare se siamo già ricchi :) - -Ma aspetta un attimo. Come farà il nostro contratto simulato a sapere che valori restituire? Non abbiamo implementato alcuna logica per la funzione `balanceOf()`. Di nuovo, Waffle ci viene in aiuto. Il nostro contratto simulato ha contenuto interessante: - -```typescript -await mockERC20.mock..returns() -await mockERC20.mock..withArgs().returns() -``` - -Con queste informazioni possiamo finalmente scrivere il primo test: - -```typescript -it("returns false if the wallet has less than 1000000 tokens", async () => { - await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) - expect(await contract.check()).to.be.equal(false) -}) -``` - -Dividiamo il test in due parti: - -1. Impostiamo il contratto ERC20 simulato per restituire il saldo di 999999 token. -2. Controlliamo se il metodo `contract.check()` restituisce `false`. - -Siamo pronti a scatenare la bestia: - -![Un test superato](test-one.png) - -Quindi il test funziona, ma... si può ancora migliorare. La funzione `balanceOf()` restituirà sempre 99999. Possiamo migliorarla specificando un portafoglio per cui la funzione deve restituire qualcosa, proprio come un vero contratto: - -```typescript -it("returns false if the wallet has less than 1000001 tokens", async () => { - await mockERC20.mock.balanceOf - .withArgs(wallet.address) - .returns(utils.parseEther("999999")) - expect(await contract.check()).to.be.equal(false) -}) -``` - -Finora, abbiamo testato solo il caso in cui non siamo abbastanza ricchi. Testiamo invece l'opposto: - -```typescript -it("returns true if the wallet has at least 1000001 tokens", async () => { - await mockERC20.mock.balanceOf - .withArgs(wallet.address) - .returns(utils.parseEther("1000001")) - expect(await contract.check()).to.be.equal(true) -}) -``` - -Esegui i test... - -![Due test superati](test-two.png) - -...ed ecco qui! Il nostro contratto sembra funzionare come previsto :) - -## Test delle chiamate del contratto {#testing-contract-calls} - -Ricapitoliamo cosa abbiamo fatto finora. Abbiamo testato la funzionalità del contratto `AmIRichAlready` che sembra funzionare correttamente. Quindi abbiamo finito, giusto? Non proprio. Waffle ci consente di testare il nostro contratto ancora più a fondo. Ma come esattamente? Beh, nell'arsenale di Waffle ci sono i matcher `calledOnContract()` e `calledOnContractWith()`. Ci consentiranno di verificare se il contratto ha chiamato il contratto simulato ERC20. Ecco un test di base con uno di questi matcher: - -```typescript -it("checks if contract called balanceOf on the ERC20 token", async () => { - await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) - await contract.check() - expect("balanceOf").to.be.calledOnContract(mockERC20) -}) -``` - -Possiamo andare persino oltre e migliorare questo test con l'altro matcher che ho indicato: - -```typescript -it("checks if contract called balanceOf with certain wallet on the ERC20 token", async () => { - await mockERC20.mock.balanceOf - .withArgs(wallet.address) - .returns(utils.parseEther("999999")) - await contract.check() - expect("balanceOf").to.be.calledOnContractWith(mockERC20, [wallet.address]) -}) -``` - -Controlliamo se i test sono corretti: - -![Tre test superati](test-three.png) - -Ottimo, tutti i test danno luce verde. - -Testare le chiamate di contratto con Waffle è facilissimo. Ma ecco la parte migliore. Questi matcher funzionano sia con contratti normali che simulati! Questo perché Waffle registra e filtra le chiamate all'EVM piuttosto che inserire il codice, come invece fanno librerie di testing popolari di altre tecnologie. - -## Il traguardo {#the-finish-line} - -Congratulazioni! Ora sai come usare Waffle per testare le chiamate di contratto e i contratti simulati dinamicamente. Ci sono funzionalità ben più interessanti da scoprire. Ti consiglio di tuffarti nella documentazione di Waffle. - -La documentazione di Waffle è disponibile [qui](https://ethereum-waffle.readthedocs.io/). - -Il codice sorgente di questo tutorial si può trovare [qui](https://github.com/EthWorks/Waffle/tree/master/examples/dynamic-mocking-and-testing-calls). - -Altri tutorial che potrebbero interessarti: - -- [Test di Smart Contract con Waffle](/developers/tutorials/testing-smart-contract-with-waffle/) diff --git a/src/content/translations/it/history/index.md b/src/content/translations/it/history/index.md deleted file mode 100644 index 1964b196ab8..00000000000 --- a/src/content/translations/it/history/index.md +++ /dev/null @@ -1,516 +0,0 @@ ---- -title: Storia e diramazioni di Ethereum -description: Storia della blockchain Ethereum che include le principali pietre miliari, versioni e diramazioni. -lang: it -sidebarDepth: 1 ---- - -# La storia di Ethereum {#the-history-of-ethereum} - -Un viaggio nel tempo per illustrare tutte le principali pietre miliari, diramazioni e gli aggiornamenti della blockchain di Ethereum. - - - -Le diramazioni si verificano quando è necessario apportare importanti aggiornamenti tecnici o modifiche alla rete; in genere derivano da proposte di miglioramento di Ethereum (EIP) e cambiano le "regole" del protocollo. - -Quando sono necessari aggiornamenti in software tradizionali controllati centralmente, l'azienda pubblica una nuova versione per l'utente finale. Le blockchain funzionano diversamente perché non esiste una proprietà centrale. I client di Ethereum devono aggiornare il proprio software e implementare le regole della nuova diramazione. Inoltre i creatori dei blocchi (miner in contesto Proof of Work e validatori in contesto Proof of Stake) e i nodi devono creare blocchi e convalidarli in base alle nuove regole. Maggiori informazioni sui meccanismi di consenso - -Queste modifiche alle regole potrebbero creare una divisione temporanea nella rete. I nuovi blocchi potrebbero essere creati in base alle nuove regole o a quelle vecchie. Le diramazioni di solito sono concordate in anticipo in modo che i client adottino le modifiche all'unisono e la diramazione legata agli upgrade diventi la catena principale. Tuttavia, in rari casi, disaccordi sulle diramazioni possono causare una divisione permanente della rete, come è successo con la creazione di Ethereum Classic con la diramazione DAO. - - - -Salta direttamente alle informazioni su alcuni degli ultimi aggiornamenti particolarmente importanti: [La Beacon Chain](/roadmap/beacon-chain/); [La Fusione](/roadmap/merge/) ed [EIP-1559](#london) - -Stai cercando i prossimi aggiornamenti di protocollo? [Scopri di più sui prossimi aggiornamenti, nella roadmap di Ethereum](/roadmap/). - - - -## 2023 {#2023} - -### Shanghai {#shanghai} - - - -#### Riepilogo {#shanghai-summary} - -L'aggiornamento di Shanghai ha portato i prelievi di staking al livello d'esecuzione. Insieme all'aggiornamento Capella, questo abiliterà i blocchi ad accettare le operazioni di prelievo, che consentono agli staker di prelevare i propri ETH dalla Beacon Chain al livello d'esecuzione. - - - -
    -
  • EIP-3651Avvia il riscaldamento dell'indirizzo di COINBASE
  • -
  • EIP-3855Nuova istruzione PUSH0
  • -
  • EIP-3860Limita e misura initcode
  • -
  • EIP-4895La Beacon Chain lancia i prelievi come operazioni
  • -
  • EIP-6049 - Depreca SELFDESTRUCT
  • -
- -
- -- [Leggi le specifiche dell'aggiornamento Shanghai](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/shanghai.md) - ---- - -### Capella {#capella} - - - -#### Riepilogo {#capella-summary} - -L'aggiornamento di Capella è il terzo aggiornamento principale al livello del consenso (Beacon Chain) e ha abilitato i prelievi di staking. Capella è avvenuto contemporaneamente all'aggiornamento del livello di esecuzione di Shanghai, e ha reso disponibili le funzioni di prelievo da staking. - -Questo aggiornamento del livello del consenso ha comportato la possibilità, per gli staker che non hanno fornito le credenziali di prelievo con il loro deposito iniziale, di fornirlo, consentendo dunque i prelievi. - -L'aggiornamento, inoltre, ha fornito la funzionalità di pulizia automatica dei conti, che elabora continuamente sui conti dei validatori qualsiasi pagamento di ricompense o prelievo completo disponibile. - -- [Maggiori informazioni sui prelievi in staking](/staking/withdrawals/). -- [Leggi le specifiche dell'aggiornamento Capella](https://github.com/ethereum/consensus-specs/blob/dev/specs/capella/) - - - -## 2022 {#2022} - -### Paris (la Fusione) {#paris} - - - -#### Riepilogo {#paris-summary} - -L'aggiornamento Paris è stato attivato dal passaggio da una blockchain proof-of-work di una [difficoltà totale terminale](/glossary/#terminal-total-difficulty) di 58750000000000000000000. Questo è avvenuto al blocco 15537393 il 15 settembre 2022, innescando l'aggiornamento Paris dal blocco successivo. Paris è stata la transizione [alla Fusione](/roadmap/merge/): la sua caratteristica principale è lo spegnimento dell'algoritmo di mining [proof-of-work](/developers/docs/consensus-mechanisms/pow) e della relativa logica di consenso, e l'attivazione della [proof-of-stake](/developers/docs/consensus-mechanisms/pos). Paris è stata un aggiornamento ai [client di esecuzione](/developers/docs/nodes-and-clients/#execution-clients) (equivalente a Bellatrix a livello di consenso) che ha permesso loro di ricevere istruzioni dai loro [client di consenso](/developers/docs/nodes-and-clients/#consensus-clients) collegati. Questo ha richiesto l'attivazione di una nuova serie di metodi API interni, collettivamente noti come l'[API Engine](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md). Questo è stato probabilmente l'aggiornamento più significativo nella storia di Ethereum dopo [Homestead](#homestead)! - -- [Leggi le specifiche dell'aggiornamento Paris](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/paris.md) - - - -
    -
  • EIP-3675Aggiorna il consenso al Proof-of-Stake
  • -
  • EIP-4399Sostituisce l'opcode DIFFICULTY con PREVRANDAO
  • -
- -
- ---- - -### Bellatrix {#bellatrix} - - - -#### Riepilogo {#bellatrix-summary} - -L'aggiornamento Bellatrix è stato il secondo aggiornamento programmato per la [Beacon Chain](/roadmap/beacon-chain), preparando la catena per [la Fusione](/roadmap/merge/). Porta le penalità dei validatori al valore pieno per inattività e azioni sanzionabili (slashing). Bellatrix include anche un aggiornamento alle regole di scelta della diramazione per preparare la catena per la Fusione e la transizione dall'ultimo blocco di proof-of-work al primo blocco proof-of-stake. A tale scopo occorre far sì che i client di consenso siano consapevoli della [difficoltà terminale totale](/glossary/#terminal-total-difficulty) di 58750000000000000000000. - -- [Leggi le specifiche dell'aggiornamento Bellatrix](https://github.com/ethereum/consensus-specs/tree/dev/specs/bellatrix) - ---- - -### Gray Glacier {#gray-glacier} - - - -#### Riepilogo {#gray-glacier-summary} - -L'aggiornamento della rete di Gray Glacier ha rimandato di tre mesi la [bomba di difficoltà](/glossary/#difficulty-bomb). Questa è l'unica modifica introdotta in questo aggiornamento ed è simile per natura agli aggiornamenti di [Arrow Glacier](#arrow-glacier) e [Muir Glacier](#muir-glacier). Modifiche simili sono state effettuate sugli aggiornamenti di rete [Byzantium](#byzantium), [Constantinople](#constantinople) e [London](#london). - -- [Blog dell'EF - Annuncio dell'aggiornamento Gray Glacier](https://blog.ethereum.org/2022/06/16/gray-glacier-announcement/) - - - -
    -
  • EIP-5133ritarda la bomba di difficoltà fino a settembre 2022
  • -
- -
- - - -## 2021 {#2021} - -### Arrow Glacier {#arrow-glacier} - - - -#### Riepilogo {#arrow-glacier-summary} - -L'aggiornamento di rete Arrow Glacier ha rimandato la [bomba di difficoltà](/glossary/#difficulty-bomb) di diversi mesi. Questo è l'unico cambiamento introdotto in questo aggiornamento, ed è simile nella sostanza all'aggiornamento [Muir Glacier](#muir-glacier). Modifiche simili sono state effettuate sugli aggiornamenti di rete [Byzantium](#byzantium), [Constantinople](#constantinople) e [London](#london). - -- [Blog dell'EF - Annuncio dell'aggiornamento Arrow Glacier](https://blog.ethereum.org/2021/11/10/arrow-glacier-announcement/) -- [Ethereum Cat Herders - Aggiornamento Ethereum Arrow Glacier](https://medium.com/ethereum-cat-herders/ethereum-arrow-glacier-upgrade-e8d20fa4c002) - - - -
    -
  • EIP-4345ritarda la bomba di difficoltà fino a giugno 2022
  • -
- -
- ---- - -### Altair {#altair} - - - -#### Riepilogo {#altair-summary} - -L'aggiornamento Altair è stato il primo aggiornamento pianificato per la [Beacon Chain](/roadmap/beacon-chain). Ha aggiunto il supporto per le "commissioni di sincronizzazione", abilitando i "client leggeri", aumentando le penalità per inattività e slashing per i validatori man mano che lo sviluppo procedeva verso la Fusione. - -- [Leggi le specifiche dell'aggiornamento di Altair](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) - -#### Curiosità! {#altair-fun-fact} - -Altair è stato il primo importante aggiornamento di rete che ha avuto un tempo di rollout esatto. Tutti gli aggiornamenti precedenti erano basati su un numero di blocco dichiarato su una catena proof-of-work, dove i tempi del blocco variavano. La Beacon Chain non richiede la risoluzione del proof-of-work e funziona invece su un sistema di epoche basato sul tempo che consiste in 32 "slot" di dodici secondi in cui i validatori possono proporre dei blocchi. Questo è il motivo per cui sapevamo esattamente quando avremmo raggiunto l'epoca 74.240 e Altair sarebbe diventato operativo! - -- [Tempo di blocco](/developers/docs/blocks/#block-time) - ---- - -### London {#london} - - - -#### Riepilogo {#london-summary} - -L'aggiornamento London ha introdotto l'[EIP-1559](https://eips.ethereum.org/EIPS/eip-1559), che ha riformato il mercato delle commissioni sulle transazioni, oltre a modificare come sono gestiti i rimborsi di carburante e la pianificazione di [Ice Age](/glossary/#ice-age). - -- [Sei uno sviluppatore di dapp? Assicurati di aggiornare le tue librerie e i tuoi strumenti.](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/london-ecosystem-readiness.md) -- [Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2021/07/15/london-mainnet-announcement/) -- [Leggi la spiegazione del Cat Herder di Ethereum](https://medium.com/ethereum-cat-herders/london-upgrade-overview-8eccb0041b41) - - - -
    -
  • EIP-1559migliora il mercato delle commissioni sulle transazioni
  • -
  • EIP-3198restituisce la BASEFEE da un blocco
  • -
  • EIP-3529 - riduce i rimborsi di carburante per le operazioni dell'EVM
  • -
  • EIP-3541 - impedisce la distribuzione dei contratti che iniziano con 0xEF
  • -
  • EIP-3554ritarda l'Era Glaciale fino a dicembre 2021
  • -
- -
- ---- - -### Berlin {#berlin} - - - -#### Riepilogo {#berlin-summary} - -L'aggiornamento Berlin ha ottimizzato i costi del carburante per certe azioni dell'EVM e ha aumentato il supporto per vari tipi di transazioni. - -- [Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2021/03/08/ethereum-berlin-upgrade-announcement/) -- [Leggi la spiegazione del Cat Herder di Ethereum](https://medium.com/ethereum-cat-herders/the-berlin-upgrade-overview-2f7ad710eb80) - - - -
    -
  • EIP-2565riduce il costo del carburante di ModExp
  • -
  • EIP-2718facilita il supporto per svariati tipi di transazioni
  • -
  • EIP-2929il costo del carburante aumenta per gli opcode d'accesso allo stato
  • -
  • EIP-2930aggiunge elenchi d'accesso facoltativi
  • -
- -
- - - -## 2020 {#2020} - -### Genesi della Beacon Chain {#beacon-chain-genesis} - - - -#### Riepilogo {#beacon-chain-genesis-summary} - -La [Beacon Chain](/roadmap/beacon-chain/) necessita di 16384 depositi da 32 ETH di staking per poter funzionare in sicurezza. Questo è successo il 27 novembre, quindi la Beacon Chain ha iniziato a produrre blocchi il 1° dicembre 2020. Questa è una prima fase importante nel percorso per raggiungere la [visione di Ethereum](/roadmap/vision/). - -[Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2020/11/27/eth2-quick-update-no-21/) - - - La beacon chain - - ---- - -### Distribuzione del contratto di deposito in staking {#staking-deposit-contract} - - - -#### Riepilogo {#deposit-contract-summary} - -Il contratto di deposito in staking ha introdotto lo [staking](/glossary/#staking) all'ecosistema di Ethereum. Nonostante fosse un contratto della [Rete principale](/glossary/#mainnet), ha avuto un impatto diretto sulla linea temporale per il lancio della [Beacon Chain](/roadmap/beacon-chain/), un importante [aggiornamento di Ethereum](/roadmap/). - -[Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2020/11/04/eth2-quick-update-no-19/) - - - Staking - - ---- - -### Muir Glacier {#muir-glacier} - - - -#### Riepilogo {#muir-glacier-summary} - -La diramazione Muir Glacier ha introdotto un ritardo nella [bomba di difficoltà](/glossary/#difficulty-bomb). Aumenta la difficoltà del blocco del meccanismo di consenso [Proof-of-Work](/developers/docs/consensus-mechanisms/pow/), che rischiava di peggiorare l'utilizzabilità di Ethereum, aumentando i tempi d'attesa per l'invio delle transazioni e l'uso delle dapp. - -- [Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2019/12/23/ethereum-muir-glacier-upgrade-announcement/) -- [Leggi la spiegazione del Cat Herder di Ethereum](https://medium.com/ethereum-cat-herders/ethereum-muir-glacier-upgrade-89b8cea5a210) - - - -
    -
  • EIP-2384ritarda la bomba di difficoltà per altri 4.000.000 blocchi, o circa 611 giorni.
  • -
- -
- - - -## 2019 {#2019} - -### Istanbul {#istanbul} - - - -#### Riepilogo {#istanbul-summary} - -La diramazione Instanbul: - -- Ha ottimizzato il costo del [carburante](/glossary/#gas) di certe azioni nell'[EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine). -- Ha migliorato la resilienza agli attacchi denial-of-service. -- Ha reso più performanti le soluzioni di [scalabilità di Livello 2](/developers/docs/scaling/#layer-2-scaling) basate su SNARK e STARK. -- Ha reso possibile l'interoperabilità tra Ethereum e Zcash. -- Ha consentito ai contratti di introdurre funzioni più creative. - -[Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2019/11/20/ethereum-istanbul-upgrade-announcement/) - - - -
    -
  • EIP-152consente a Ethereum di lavorare con valute di preservazione dell'anonimato, come Zcash.
  • -
  • EIP-1108crittografia più economica per migliorare i costi del carburante.
  • -
  • EIP-1344protegge Ethereum dagli attacchi di riproduzione, aggiungendo l'opcode CHAINID.
  • -
  • EIP-1884ottimizzazione dei prezzi del carburante dell'opcode basata sul consumo.
  • -
  • EIP-2028riduce il costo di CallData per consentire più dati nei blocchi, buono per il ridimensionamento del Livello 2.
  • -
  • EIP-2200altre alterazioni del prezzo del carburante dell'opcode.
  • -
- -
- ---- - -### Constantinople {#constantinople} - - - -#### Riepilogo {#constantinople-summary} - -La diramazione Constantinople: - -- Ha assicurato che la blockchain non si bloccasse prima dell'[implementazione del Proof-of-Stake](#beacon-chain-genesis). -- Ha ottimizzato il costo del [carburante](/glossary/#gas) di certe azioni nell'[EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine). -- Ha aggiunto la capacità di interagire con gli indirizzi non ancora creati. - -[Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2019/02/22/ethereum-constantinople-st-petersburg-upgrade-announcement/) - - - -
    -
  • EIP-145ottimizza i costi di certe azioni su catena.
  • -
  • EIP-1014consente di interagire con gli indirizzi che devono ancora essere creati.
  • -
  • EIP-1052ottimizza i costi di certe azioni su catena.
  • -
  • EIP-1234si assicura che la blockchain non si congeli prima del proof-of-stake.
  • -
- -
- - - -## 2017 {#2017} - -### Byzantium {#byzantium} - - - -#### Riepilogo {#byzantium-summary} - -La diramazione Byzantium: - -- Ha ridotto le ricompense del [mining](/developers/docs/consensus-mechanisms/pow/mining/) dei blocchi da 5 a 3 ETH. -- Ha ritardato di un anno la [bomba di difficoltà](/glossary/#difficulty-bomb). -- Ha aggiunto la capacità di effettuare chiamate che non modificano lo stato ad altri contratti. -- Ha aggiunto certi metodi crittografici per consentire la [scalabilità del livello 2](/developers/docs/scaling/#layer-2-scaling). - -[Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2017/10/12/byzantium-hf-announcement/) - - - -
    -
  • EIP-140aggiunge l'opcode REVERT.
  • -
  • EIP-658campo di stato aggiunto alle ricevute di transazione per indicare successo o fallimento.
  • -
  • EIP-196aggiunge la curva ellittica e la moltiplicazione scalare per consentire i ZK-SNARK.
  • -
  • EIP-197aggiunge la curva ellittica e la moltiplicazione scalare per consentire i ZK-SNARK.
  • -
  • EIP-198consente la verifica della firma RSA.
  • -
  • EIP-211aggiunge il supporto per i valori restituiti di lunghezza variabile.
  • -
  • EIP-214aggiunge l'opcode STATICCALL, consentendo chiamate che non modificano lo stato ad altri contratti.
  • -
  • EIP-100modifica la formula di regolazione della difficoltà.
  • -
  • EIP-649ritarda la bomba di difficoltà di 1 anno e riduce la ricompensa del blocco da 5 a 3 ETH.
  • -
- -
- - - -## 2016 {#2016} - -### Spurious Dragon {#spurious-dragon} - - - -#### Riepilogo {#spurious-dragon-summary} - -La diramazione Spurious Dragon è stata la seconda risposta agli attacchi denial of service (DoS) sulla rete (settembre/ottobre 2016) e ha reso possibile, tra l'altro: - -- l'ottimizzazione dei prezzi dell'opcode per impedire attacchi futuri alla rete; -- l'abilitazione di "debloat" dello stato della blockchain; -- l'aggiunta della protezione contro gli attacchi replay. - -[Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2016/11/18/hard-fork-no-4-spurious-dragon/) - - - -
    -
  • EIP-155impedisce la ritrasmissione delle transazioni da una catena di Ethereum su una catena alternativa, ad esempio che la transazione su una rete di prova venga riprodotta sulla catena principale di Ethereum.
  • -
  • EIP-160regola i prezzi dell'opcode EXP: complica il rallentamento della rete tramite operazioni del contratto computazionalmente costose.
  • -
  • EIP-161consente la rimozione dei conti vuoti aggiunti tramite attacchi DoS.
  • -
  • EIP-170modifica la dimensione massima del codice che un contratto sulla blockchain può avere, a 24576 byte.
  • -
- -
- ---- - -### Tangerine Whistle {#tangerine-whistle} - - - -#### Riepilogo {#tangerine-whistle-summary} - -La diramazione Tangerine Whistle è stata la prima risposta agli attacchi di denial of service (DoS) alla rete (settembre/ottobre 2016) e ha incluso: - -- gestire problemi urgenti di salute della rete relativi ai codici delle operazioni con prezzi troppo bassi. - -[Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2016/10/18/faq-upcoming-ethereum-hard-fork/) - - - -
    -
  • EIP-150aumenta i costi del carburante degli opcode utilizzabili negli attacchi di spam.
  • -
  • EIP-158riduce le dimensioni di stato rimuovendo un gran numero di conti vuoti messi nello stato a costo bassissimo a causa di bug nelle versioni precedenti del protocollo di Ethereum.
  • -
- -
- ---- - -### Diramazione OAD {#dao-fork} - - - -#### Riepilogo {#dao-fork-summary} - -La diramazione OAD è stata pensata come risposta all'[attacco OAD del 2016](https://www.coindesk.com/learn/understanding-the-dao-attack/), durante il quale un contratto [OAD](/glossary/#dao) non sicuro fu svuotato di oltre 3,6 milioni di ETH in un solo attacco. La diramazione ha spostato i fondi dal contratto difettoso a un [nuovo contratto](https://etherscan.io/address/0xbf4ed7b27f1d666546e30d74d50d173d20bca754) con una sola funzione: il prelievo. Chi aveva perso fondi ha potuto prelevare 1 ETH per ogni 100 token OAD nel proprio portafoglio. - -Questa iniziativa è stata votata dalla community di Ethereum. Ogni titolare di ETH ha potuto votare tramite una transazione su [una piattaforma di voto](https://web.archive.org/web/20170620030820/http://v1.carbonvote.com/). La decisione di creare la diramazione ha ottenuto oltre l'85% dei voti. - -Alcuni miner rifiutarono di creare la diramazione perché l'incidente DAO non era un difetto nel protocollo. Si sono riuniti per creare [Ethereum Classic](https://ethereumclassic.org/). - -[Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2016/07/20/hard-fork-completed/) - ---- - -### Homestead {#homestead} - - - -#### Riepilogo {#homestead-summary} - -La diramazione Homestead guardava al futuro. Includeva diverse modifiche al protocollo e un cambiamento che ha dato a Ethereum la possibilità di eseguire ulteriori aggiornamenti della rete. - -[Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2016/02/29/homestead-release/) - - - -
    -
  • EIP-2effettua modifiche al processo di creazione del contratto.
  • -
  • EIP-7aggiunge il nuovo opcode: DELEGATECALL
  • -
  • EIP-8introduce i requisiti di compatibilità progressiva a devp2p
  • -
- -
- - - -## 2015 {#2015} - -### Frontier thawing {#frontier-thawing} - - - -#### Riepilogo {#frontier-thawing-summary} - -La diramazione Frontier Thawing ha innalzato il limite di 5.000 [gas](/glossary/#gas) per [blocco](/glossary/#block) e ha impostato il prezzo predefinito del gas a 51 [gwei](/glossary/#gwei). Ciò ha reso possibili le transazioni, che richiedono 21.000 gas. La [bomba di difficoltà](/glossary/#difficulty-bomb) è stata introdotta per assicurare una hard-fork futura verso il [proof-of-stake](/glossary/#pos). - -- [Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2015/08/04/the-thawing-frontier/) -- [Leggi l'Aggiornamento 1 del Protocollo di Ethereum](https://blog.ethereum.org/2015/08/04/ethereum-protocol-update-1/) - ---- - -### Frontier {#frontier} - - - -#### Riepilogo {#frontier-summary} - -Frontier è stata un'implementazione operativa ma rudimentale del progetto Ethereum. È seguita alla positiva fase di test Olympic. Era destinata agli utenti tecnici, in particolare gli sviluppatori. I [blocchi](/glossary/#block) avevano un limite di 5.000 [gas](/glossary/#gas). Questo periodo di "disgelo" (dall'inglese thawing) ha consentito ai miner di iniziare la propria operatività e ai primi utilizzatori di installare i client senza fretta. - -[Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2015/07/22/frontier-is-coming-what-to-expect-and-how-to-prepare/) - - - -## 2014 {#2014} - -### Vendita di Ether {#ether-sale} - - - -Ether fu ufficialmente messo in vendita per 42 giorni. Lo potresti acquistare in Bitcoin. - -[Leggi l'annuncio della Ethereum Foundation](https://blog.ethereum.org/2014/07/22/launching-the-ether-sale/) - ---- - -### Pubblicazione dello yellowpaper {#yellowpaper} - - - -Lo Yellow Paper, redatto dal dott. Gavin Wood, è una definizione tecnica del protocollo Ethereum. - -[Consulta lo Yellow Paper](https://github.com/ethereum/yellowpaper) - - - -## 2013 {#2013} - -### Pubblicazione del whitepaper {#whitepaper} - - - -Il documento introduttivo, pubblicato nel 2013 da Vitalik Buterin, fondatore di Ethereum, prima del lancio del progetto nel 2015. - - - Whitepaper - diff --git a/src/content/translations/it/nft/index.md b/src/content/translations/it/nft/index.md deleted file mode 100644 index 4b57acb6fce..00000000000 --- a/src/content/translations/it/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Token non fungibili (NFT) -description: Una panoramica dei NFT su Ethereum -lang: it -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 3 -image: ../../../../assets/infrastructure_transparent.png -alt: Un logo Eth visualizzato tramite ologramma. -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. ---- - -## Cosa sono i NFT? {#what-are-nfts} - -Gli NFT sono token che sono singolarmente unici. Ogni NFT ha proprietà differenti (non fungibile) ed provatamente scarso. Questo è diverso dai token come gli ERC-20, dove ogni token di un insieme è identico e ha le stesse proprietà (fungibile). Tu non ti preoccupi di quale banconota da un dollaro hai nel tuo portafoglio, perché sono tutte identiche e hanno lo stesso valore. Tuttavia, tu _ti_ preoccupi di quale specifico NFT possiedi, perché ha proprietà individuali che lo distinguono dagli altri (non fungibile). - -L'unicità di ciascun NFT consente la tokenizzazione di oggetti come oggetti d'arte, oggetti da collezione, o persino beni immobili, dove un specifico NFT unico rappresenta uno specifico oggetto unico del mondo reale o digitale. La proprietà di una risorsa è protetta dalla blockchain Ethereum: nessuno può modificare il registro di proprietà o far esistere un nuovo NFT copiandolo/incollandolo. - - - -## L'Internet delle risorse {#internet-of-assets} - -Gli NFT ed Ethereum risolvono alcuni dei problemi esistenti 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à. in un modo che non sia controllato da un'organizzazione centrale. Per esempio, con gli NFT puoi possedere un mp3 di musica che non è specifico di un'app di una specifica azienda di musica, o puoi avere un handle di un social media che puoi vendere o scambiare, ma che non ti può essere tolto arbitrariamente da una piattaforma fornitrice. - -Ecco come appare un internet di NFT, rispetto all'Internet utilizzato oggi da molti di noi... - -### Un confronto {#nft-comparison} - -| Un Internet di NFT | L'internet di oggi | -| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Sei proprietario delle tue risorse! Solo tu puoi venderli o scambiarli. | Tu affitti una risorsa da un'organizzazione. | -| Gli NFT sono digitalmente univoci, non esistono due NFT uguali. | Una copia di un'entità spesso non può essere distinta dall'originale. | -| La proprietà di un NFT è memorizzata sulla blockchain e può essere verificata da chiunque. | I registri di proprietà degli oggetti digitali sono archiviati su server controllati da istituzioni - devi fidarti della loro parola. | -| Gli NFT sono contratti intelligenti su Ethereum. Questo significa che possono essere usati facilmente in altri contratti intelligenti e applicazioni su Ethereum! | Le aziende con articoli digitali di solito richiedono una propria infrastruttura a mo' di "giardino recintato". | -| 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 di NFT possono mantenere i diritti di proprietà sul proprio lavoro e programmare le royalty direttamente nel contratto NFT. | Le piattaforme, come i servizi di streaming musicale, mantengono la maggior parte dei profitti derivanti dalle vendite. | - -## Come funzionano gli NFT? {#how-nfts-work} - -Come qualsiasi altro token emesso su Ethereum, gli NFT sono emessi da un contratto intelligente. Il contratto intelligente è conforme a uno dei diversi standard NFT (di solito ERC-721 o ERC-1155) che definiscono le funzioni del contratto. Il contratto può creare ("coniare") NFT e assegnarli a un proprietario specifico. La proprietà è definita nel contratto mediante la mappatura di NFT specifici a indirizzi specifici. L'NFT ha un ID e tipicamente dei metadati associati che rendono unico il token specifico. - -Quando qualcuno crea o conia un NFT, in realtà sta eseguendo una funzione nel contratto intelligente che assegna uno specifico NFT al suo indirizzo. Queste informazioni vengono conservate nella memoria del contratto, che fa parte della blockchain. Il creatore del contratto può scrivere una logica aggiuntiva nel contratto, ad esempio limitando l'offerta totale o definendo delle royalty da pagare al creatore ogni volta che un token viene trasferito. - -## Per cosa sono utilizzati gli NFT? {#nft-use-cases} - -Gli NFT vengono utilizzati per molti scopi, tra cui: - -- dimostrare di aver partecipato a un evento -- certificare di aver completato un corso -- oggetti posseduti nei videogiochi -- arte digitale -- trasformare beni del mondo reale in token digitali -- dimostrare la propria identità online -- limitare l'accesso ai contenuti -- biglietti digitali -- nomi di dominio internet decentralizzati -- garanzia nella DeFi - -Forse sei un artista che vuole condividere il proprio lavoro utilizzando gli NFT, senza perdere il controllo e sacrificare i tuoi profitti agli intermediari. Puoi creare un nuovo contratto e specificare il numero di NFT, le loro proprietà e un collegamento ad alcune opere d'arte specifiche. In qualità di artista, puoi programmare nel contratto intelligente le royalty che ti devono essere pagate (ad esempio, trasferire il 5% del prezzo di vendita al proprietario del contratto ogni volta che un NFT viene trasferito). Inoltre, puoi sempre dimostrare di aver creato gli NFT perché possiedi il portafoglio che ha distribuito il contratto. I tuoi acquirenti possono facilmente dimostrare di possedere un NFT autentico della tua collezione perché l'indirizzo del loro portafoglio è associato a un token nel tuo contratto intelligente. Possono utilizzarlo in tutto l'ecosistema Ethereum, sicuri della sua autenticità. - -Oppure, 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. Questi possono essere acquistati e venduti peer-to-peer senza pagare i gestori dei biglietti e l'acquirente ha sempre la certezza dell'autenticità del biglietto controllando l'indirizzo del contratto. - -Su ethereum.org, gli NFT vengono utilizzati per dimostrare che le persone hanno contribuito al nostro archivio GitHub o hanno partecipato alle riunioni online, e abbiamo persino il nostro nome di dominio NFT. Se contribuisci a ethereum.org, puoi rivendicare un NFT POAP. Alcuni incontri nel mondo delle criptovalute hanno usato i POAP come biglietti. [Di più su come contribuire](/contributing/#poap). - -![POAP di ethereum.org](./poap.png) - -Questo sito web ha anche un nome di dominio alternativo basato sulla tecnologia 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) - -[Di più sull'ENS](https://app.ens.domains) - - - -### Sicurezza degli 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 finalizzato, modificarlo costerebbe milioni di ETH a un utente malevolo. Chiunque esegua il software di Ethereum potrebbe immediatamente rilevare la manomissione disonesta con 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. - - - Di più sulla sicurezza - - -## Letture consigliate {#further-reading} - -- [Una guida per principianti agli NFT](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, gennaio 2020_ -- [EtherscanNFT tracker](https://etherscan.io/nft-top-contracts) -- [Standard token ERC-721](/developers/docs/standards/tokens/erc-721/) -- [Standard token ERC-1155](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/it/refi/index.md b/src/content/translations/it/refi/index.md deleted file mode 100644 index 27f31f72ab9..00000000000 --- a/src/content/translations/it/refi/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: Finanza Rigenerativa (ReFi) -description: Una panoramica della ReFi e dei suoi attuali casi d'uso. -lang: it -template: use-cases -emoji: ":recycle:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Un sistema economico alternativo costruito su principi rigenerativi -summaryPoint2: Un tentativo di sfruttare Ethereum per risolvere crisi di coordinamento a livello globale come il cambiamento climatico -summaryPoint3: Uno strumento per scalare drasticamente le risorse del beneficio ecologico come i crediti di carbonio verificati ---- - -## Cos'è la ReFi? {#what-is-refi} - -**La finanza rigenerativa (ReFi)** è un insieme di strumenti e idee costruite su blockchain, che mirano a creare economie che siano rigenerative, piuttosto che estrattive o di sfruttamento. Alla fine, i sistemi estrattivi esauriscono le risorse disponibili e collassano; senza meccanismi rigenerativi, essi mancano di resilienza. La ReFi opera partendo dal presupposto che la creazione del valore monetario deve essere disaccoppiato dall'estrazione insostenibile di risorse del nostro pianeta e delle nostre comunità. - -La ReFi, invece, mira a risolvere i problemi ambientali, comunitari o sociali creando cicli rigenerativi. Questi sistemi creano valore ai partecipanti e allo stesso tempo portano benefici agli ecosistemi e alle comunità. - -Uno dei fondamenti della ReFi è il concetto di economia rigenerativa di cui è stato pioniere John Fullerton del [Capital Institute](https://capitalinstitute.org). Egli ha proposto otto principi interconnessi che sono alla base della salute sistemica: - -![Otto principi interconnessi](../../assets/use-cases/refi-regenerative-economy-diagram.png) - -I progetti di ReFi realizzano questi principi usando i [contratti intelligenti](/developers/docs/smart-contracts/) e le applicazioni di [finanza decentralizzata (DeFi)](/defi/) per incentivare comportamenti rigenerativi, per esempio il ripristino di ecosistemi degradati e facilitare la collaborazione su larga scala su questioni globali come il cambiamento climatico e la perdita di biodiversità. - -La ReFi si sovrappone anche al movimento della [scienza decentralizzata (DeSci)](/desci/), che usa Ethereum come una piattaforma per finanziare, creare, revisionare, accreditare, archiviare e diffondere la conoscenza scientifica. Gli strumenti DeSci potrebbero diventare utili per sviluppare standard e pratiche verificabili per mettere in atto e monitorare attività rigenerative come piantare alberi, togliere la plastica dall'oceano o ripristinare un ecosistema degradato. - -## Tokenizzazione dei crediti di carbonio {#tokenization-of-carbon-credits} - -Il **[mercato volontario del carbonio (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** è un meccanismo di finanziamento dei progetti che hanno un impatto positivo verificato sulle emissioni di carbonio, riducendo le emissioni in corso o rimuovendo i gas serra già emessi dall'atmosfera. Dopo che sono stati verificati, questi progetti ricevono una risorsa chiamata "credito di carbonio" che possono vendere a privati e organizzazioni che vogliono supportare la lotta contro il cambiamento climatico. - -Oltre al VCM, esistono anche diversi mercati del carbonio imposti dai governi ('mercati di conformità') che mirano a stabilire un prezzo del carbonio attraverso leggi o normative all'interno di particolari giurisdizioni (ad. es. paese o regione), controllando la fornitura dei permessi da distribuire. I mercati di conformità incentivano coloro che inquinano all'interno della loro giurisdizione a ridurre le emissioni, ma non sono in grado di eliminare i gas ad affetto serra che sono stati già emessi. - -Nonostante il suo sviluppo negli ultimi decenni, il VCM continua a soffrire di svariati problemi: - -1. Liquidità estremamente frammentata -2. Meccanismi di transazione opachi -3. Commissioni elevate -4. Velocità di trading molto lenta -5. Mancanza di scalabilità - -La transizione del VCM al nuovo **mercato digitale del carbonio (DCM)** basato sulla blockchain potrebbe essere un'opportunità per aggiornare la tecnologia esistente per convalidare, effettuare transazioni e consumare crediti di carbonio. Le blockchain consentono dati verificabili pubblicamente, l'accesso ad una vasta gamma di utenti e una maggiore liquidità. - -I progetti ReFi utilizzano la tecnologia blockchain per alleviare molti dei problemi del mercato tradizionale: - -- **La liquidità è concentrata in un numero ridotto di pool di liquidità** che possono essere scambiati liberamente da chiunque. Le grandi organizzazioni così come i singoli utenti possono usare questi pool senza dover fare ricerche manuali di venditori/acquirenti, senza commissioni di partecipazione o pre-registrazione. -- **Tutte le transazioni sono registrate su blockchain pubbliche**. Il percorso che ogni credito del carbonio compie grazie all'attività di trading è tracciabile per sempre non appena viene reso disponibile nel DCM. -- **La velocità della transazione è quasi istantanea**. Garantire grandi quantità di crediti di carbonio attraverso i mercati tradizionali può richiedere giorni o settimane, mentre nel DCM questo può avvenire in pochi secondi. -- **L'attività di trading avviene senza intermediari** che applicano commissioni elevate. Secondo i dati di una società di analisi, i crediti di carbonio digitale rappresentano un [miglioramento del costo di oltre il 62% rispetto agli equivalenti crediti tradizionali](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne). -- **Il DCM è scalabile** ed è in grado di soddisfare la domanda dei privati e delle multinazionali. - -### Componenti chiave del DCM {#key-components-dcm} - -Quattro componenti principali costituiscono l'attuale panorama del DCM: - -1. I registri come [Verra](https://verra.org/project/vcs-program/registry-system/) e [Gold Standard](https://www.goldstandard.org/) assicurano che i progetti che creano crediti di carbonio siano affidabili. Essi inoltre gestiscono i database nei quali i crediti di carbonio vengono creati e possono essere trasferiti o consumati (ritirati). - -C'è una nuova ondata di progetti innovativi costruiti su blockchain che stanno tentando di fermare gli operatori storici del settore. - -2. I carbon bridge, noti anche come tokenizzatori, forniscono una tecnologia per rappresentare o trasferire i crediti di carbonio dai registri tradizionali al DCM. Esempi noti includono il [Protocollo Toucan](https://toucan.earth/), [C3](https://c3.app/) e [Moss.Earth](https://moss.earth/). -3. I servizi integrati offrono agli utenti finali crediti per evitare e/o rimuovere emissioni di carbonio così che possano rivendicare il beneficio ambientale di un credito e condividere con il mondo il loro supporto alla lotta contro il cambiamento climatico. - -Alcuni, come [Klima Infinity](https://www.klimadao.finance/infinity) e [Senken](https://senken.io/), offrono un'ampia varietà di progetti sviluppati da terze parti e distribuiti secondo standard stabiliti come Verra; altri, come [Nori](https://nori.com/), offrono soltanto progetti specifici sviluppati secondo il loro standard di credito di carbonio, che sono loro ad emettere e per i quali hanno un loro mercato dedicato. - -4. I binari e le infrastrutture sottostanti che facilitano l'aumento dell'impatto e dell'efficienza dell'intera catena di approvvigionamento del mercato del carbonio. [KlimaDAO](http://klimadao.finance/) fornisce liquidità come bene pubblico (permettendo a chiunque di comprare o vendere i crediti di carbonio a un prezzo trasparente), incentiva l'aumento del volume dei mercati del carbonio e del ritiro delle ricompense, e fornisce strumenti interoperabili di facile utilizzo per accedere ai dati, nonché per acquisire e ritirare, una grande varietà di crediti di carbonio tokenizzati. - -## La ReFi oltre i mercati del carbonio {#refi-beyond} - -Sebbene al momento ci sia una forte enfasi sui mercati del carbonio in generale e sulla transizione dal VCM al DCM in particolare, il termine "ReFi" non è strettamente limitato al carbonio. Oltre ai crediti di carbonio, possono essere sviluppati e tokenizzati altre risorse ambientali, il che significa che è possibile stabilire il prezzo anche di altre esternalità negative nei livelli di base dei futuri sistemi economici. Inoltre, l'aspetto rigenerativo di questo modello economico può essere applicato ad altri settori, come il finanziamento di beni pubblici attraverso piattaforme di finanziamento quadratico come [Gitcoin](https://gitcoin.co/). Le organizzazioni che si basano sull'idea di una partecipazione aperta e di una distribuzione equa delle risorse consentono a tutti di destinare denaro a progetti di software open-source, nonché a progetti educativi, ambientali e comunitari. - -Spostando la direzione del capitale dalle pratiche estrattive verso un flusso rigenerativo, i progetti e le aziende che forniscono benefici sociali, ambientali o comunitari – e che potrebbero non ottenere finanziamenti con la finanza tradizionale – possono decollare e generare esternalità positive per la società molto più rapidamente e facilmente. Il passaggio a questo modello di finanziamento apre anche le porte a sistemi economici molto più inclusivi, in cui le persone di tutte le fasce demografiche possono diventare partecipanti attivi anziché semplici osservatori passivi. La ReFi offre una visione di Ethereum come meccanismo per coordinare l'azione sulle sfide esistenziali che la nostra specie e tutta la vita sul nostro pianeta devono affrontare, come livello di base di un nuovo paradigma economico, che consenta un futuro più inclusivo e sostenibile per i secoli a venire. - -## Letture di approfondimento sulla ReFi - -- [Una panoramica generale sulle valute di carbonio e sul loro ruolo nell'economia](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) -- [Il ministero per il futuro, un romanzo che illustra il ruolo di una moneta basata sul carbonio nella lotta al cambiamento climatico](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) -- [Un rapporto dettagliato della Taskforce per ridimensionamento dei mercati volontari del carbonio](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) -- [La voce del glossario CoinMarketCap di Kevin Owocki e Evan Miyazono sulla ReFi](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/it/roadmap/beacon-chain/index.md b/src/content/translations/it/roadmap/beacon-chain/index.md deleted file mode 100644 index 0db25c3185e..00000000000 --- a/src/content/translations/it/roadmap/beacon-chain/index.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: La Beacon Chain -description: Informati rigurado alla Beacon Chain - l'aggiornamento che ha introdotto la prova-di-interesse Ethereum. -lang: it -template: upgrade -image: ../../../../../assets/upgrades/core.png -summaryPoint1: La Beacon Chain ha introdotto il proof-of-stake nell'ecosistema Ethereum. -summaryPoint2: È stata fusa con la catena di proof-of-work originale di Ethereum nel settembre 2022. -summaryPoint3: La Beacon Chain ha introdotto la logica del consenso e il protocollo di gossip del blocco, che ora protegge Ethereum. ---- - - - 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'è la Beacon Chain? {#what-is-the-beacon-chain} - -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 fa la beacon chain? {#what-does-the-beacon-chain-do} - -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. - -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. - -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. - - -### Prepararsi allo sharding {#setting-up-for-sharding} - -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. - -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 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. - -[Maggiori informazioni sullo sharding](/roadmap/danksharding/) - -## Relazione tra gli aggiornamenti {#relationship-between-upgrades} - -Gli aggiornamenti di Ethereum sono tutti in qualche modo interconnessi. Quindi ricapitoliamo per vedere come la beacon chain incide sugli altri aggiornamenti. - -### Beacon Chain e La Fusione {#merge-and-beacon-chain} - -Inizialmente la Beacon Chain esisteva separatamente dalla Rete principale di Ethereum, ma le due sono state fuse nel 2022. - - - La fusione - - -### 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. - - - Shard chain - - -## Letture consigliate - -- [Maggiori informazioni sugli aggiornamenti futuri di Ethereum](/roadmap/vision) -- [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/future-proofing/index.md b/src/content/translations/it/roadmap/future-proofing/index.md deleted file mode 100644 index f65f3cc2d88..00000000000 --- a/src/content/translations/it/roadmap/future-proofing/index.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -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 deleted file mode 100644 index a0903439ba1..00000000000 --- a/src/content/translations/it/roadmap/index.md +++ /dev/null @@ -1,117 +0,0 @@ ---- -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: delineazione ---- - -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 deleted file mode 100644 index c9f55308670..00000000000 --- a/src/content/translations/it/roadmap/merge/index.md +++ /dev/null @@ -1,228 +0,0 @@ ---- -title: La Fusione -description: "Scopri La Fusione: quando la Rete principale di Ethereum ha adottato il Poof of stake." -lang: it -template: upgrade -image: ../../../../../assets/upgrades/merge.png -summaryPoint1: La Rete Principale di Ethereum usa il proof-of-stake, ma non è sempre stato così. -summaryPoint2: L'aggiornamento dal meccanismo originale di proof-of-work al proof-of-stake è stato chiamato La Fusione. -summaryPoint3: La Fusione si riferisce alla fusione della Rete Principale originale di Ethereum con una blockchain di proof-of-stake separata, detta Beacon Chain, ora esistenti come un'unica catena. -summaryPoint4: La Fusione ha ridotto il consumo energetico di Ethereum di circa il 99,95%. ---- - - - La Fusione è avvenuta il 15 settembre 2022. Ciò ha portato a termine la transizione di Ethereum al consenso di proof-of-stake, deprecando ufficialmente il proof-of-work e riducendo il consumo energetico di circa il 99,95%. - - -## In cosa ha consistito la Fusione? {#what-is-the-merge} - -La Fusione è stata l'unione del livello di esecuzione originale di Ethereum (la Rete principale che esisteva dalla [genesi](/history/#frontier)) con il suo nuovo livello di consenso di Proof of stake, la Beacon Chain. Ha eliminato la necessità di grandi quantità di energia richieste dal processo di mining, consentendo invece di proteggere la rete utilizzando l'ETH in staking. È stato un passo davvero emozionante nel realizzare la visione di Ethereum: maggiori scalabilità, sicurezza e sostenibilità. - - - -Inizialmente, la [Beacon Chain](/roadmap/beacon-chain/) veniva inviata separatamente dalla [Rete principale](/glossary/#mainnet). La Rete Principale di Ethereum, con tutti i suoi conti, saldi, contratti intelligenti e stati della blockchain, ha continuato a essere protetta dal [proof-of-work](/developers/docs/consensus-mechanisms/pow/), anche mentre la Beacon Chain veniva eseguita in parallelo, utilizzando il [proof-of-stake](/developers/docs/consensus-mechanisms/pos/). La Fusione si è verificata quando, finalmente, questi due sistemi si sono uniti e il Poof of Work è stata permanentemente sostituita dal Proof of stake. - -Immagina Ethereum come una nave lanciata prima di essere pronta per un viaggio interstellare. Con la Beacon Chain, la community ha costruito un nuovo motore e uno scafo più resistente. Dopo test significativi, è arrivato il momento di scambiare il vecchio motore con quello nuovo durante il volo. Questo ha aggiunto il nuovo e più efficiente motore nella nave esistente, consentendole di percorrere diversi anni luce e conquistare l'universo. - -## La fusione con la rete principale {#merging-with-mainnet} - -La Proof of Work ha protetto la Rete rrincipale di Ethereum dalla genesi alla Fusione. Questo ha consentito alla blockchain di Ethereum a cui siamo tutti abituati di venire alla luce, a luglio 2015, con tutte le sue funzionalità familiari: transazioni, contratti intelligenti, conti, etc. - -Nella storia di Ethereum, gli sviluppatori si sono preparati per un'eventuale transizione dal Proof of Work al Proof of stake. Il 1° dicembre 2020, la Beacon Chain è stata creata come una blockchain separata dalla Rete principale, eseguita in parallelo. - -Originariamente la Beacon Chain non elaborava le transazioni della Rete principale. Invece, stava raggiungendo il consenso sul proprio stato, concordando sui validatori attivi e i saldi dei loro conti. Dopo numerose prove, è giunto il momento che la Beacon Chain raggiunga il consenso sui dati del mondo reale. Dopo La Fusione, la Beacon Chain è divenuta il motore di consenso per tutti i dati della rete, incluse le transazioni del livello d'esecuzione e i saldi dei conti. - -La Fusione ha rappresentato il passaggio ufficiale all'uso della Beacon Chain come il motore della produzione del blocco. Il mining non è più il mezzo di produzione di blocchi validi. Invece, i validatori del Proof of stake hanno adottato questo ruolo e sono ora responsabili dell'elaborazione della validità di tutte le transazioni e della proposta dei blocchi. - -Con La Fusione, la cronologia non è andata perduta. Quando la Rete principale si è fusa con la Beacon Chain, ha unito anche l'intera cronologia delle transazioni di Ethereum. - - -Questa transizione al Proof of stake ha cambiato il metodo di emissione dell'ether. Scopri di più sull'emissione di ether prima e dopo La Fusione. - - -### Utenti e detentori {#users-holders} - -**La Fusione non ha modificato nulla per i detentori/utenti.** - -_Vale la pena ripeterlo_: Come utente o detentore di ETH o di qualsiasi altra risorsa digitale su Ethereum, nonché come staker non operatore di nodo, **non devi fare nulla coi tuoi fondi o il tuo portafoglio per approcciare La Fusione.** Gli ETH sono sempre ETH. Non esiste nulla del tipo "vecchi ETH"/"nuovi ETH" o "ETH1"/"ETH2" e i portafogli funzioneranno esattamente allo stesso modo dopo La Fusione. Le persone che dicono altro sono probabilmente truffatori. - -Nonostante il passaggio dal Proof of Work, l'intera cronologia di Ethereum dalla genesi è rimasta intatta e inalterata dalla transizione al Proof of stake. Qualsiasi fondo detenuto nel tuo portafoglio prima della Fusione è ancora accessibile dopo di essa. **Non è richiesta alcuna azione di aggiornamento da parte tua.** - -[Maggiori informazioni sulla sicurezza di Ethereum](/security/#eth2-token-scam) - -### Operatori di nodi e sviluppatori di dapp {#node-operators-dapp-developers} - - - -Gli elementi dell'azione chiave includono: - -1. Esegui _sia_ un client di consenso che uno di esecuzione; gli endpoint di terze parti per ottenere i dati di esecuzione non funzioneranno successivamente alla Fusione. -2. Autentica sia il client di esecuzione che quello di consenso con un segreto JWT condiviso, così che tu possa comunicare in sicurezza. -3. Imposta un indirizzo `fee recipient` per ricevere le mance/MEV di commissioni su transazioni che hai guadagnato. - -Non completare i primi due elementi farà sì che il tuo nodo risulti "offline" finché entrambi i livelli non saranno sincronizzati e autenticati. - -Non impostare un `fee recipient` consentirà comunque al tuo validatore di comportarsi come al solito, ma perderai le mance e qualsiasi MEV di commissioni non bruciate che avresti altrimenti ottenuto nei blocchi proposti dal tuo validatore. - - - - -Fino a La Fusione, un client di esecuzione (come Geth, Erigon, Besu o Nethermind) era sufficiente per ricevere, convalidare correttamente e propagare i blocchi oggetto di gossip dalla rete. _Dopo La Fusione_, la validità delle transazioni contenute in un payload di esecuzione dipende ora dalla validità del "blocco di consenso" in cui sono contenute. - -Di conseguenza, un nodo completo di Ethereum richiede ora sia un client di esecuzione che uno di consenso. Questi due client collaborano usando una nuova API Engine. L'API Engine richiede l'autenticazione usando un segreto JWT, fornito a entrambi i client, che consente la comunicazione sicura. - -Gli elementi d'azione chiave includono: - -- Installare un client di consenso oltre a un client di esecuzione -- Autenticare i client di esecuzione e di consenso con un segreto JWT condiviso, così che possano comunicare in sicurezza tra loro. - -Non completare i suddetti elementi farà sì che il tuo nodo risulti "offline", finché entrambi i livelli non saranno sincronizzati e autenticati. - - - - - -La Fusione è stata accompagnata da modifiche al consenso, incluse anche modifiche relative a:< - -
    -
  • 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. - -
- -## La Fusione e il consumo energetico {#merge-and-energy} - -Questa fase ha segnato la fine del Proof of Work per Ethereum e l'inizio di una rete Ethereum più sostenibile ed ecologica. Il consumo energetico di Ethereum si è ridotto di una stima del 99,95%, rendendo Ethereum una blockchain ecosostenibile. Scopri di più sul [consumo energetico di Ethereum](/energy-consumption/). - -## La Fusione e il ridimensionamento {#merge-and-scaling} - -La Fusione ha inoltre gettato le basi per ulteriori aggiornamenti di scalabilità, impossibili sotto il Poof of Work, portando Ethereum un po' più vicina al raggiungimento della completa scalabilità, sicurezza e sostenibilità delinate nella [visione di Ethereum](/roadmap/vision/). - -## Equivoci su La Fusione {#misconceptions} - - - -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); 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 gestire il proprio nodo è assolutamente essenziale per mantenere la decentralizzazione della rete di Ethereum. - -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 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. - - - - -La "velocità" di una transazione è misurabile in diversi modi, incluso il tempo di inclusione in un blocco e il tempo alla finalizzazione. Entrambi cambiano lievemente, ma non in modo apprezzabile dagli utenti. - -Storicamente, con il Poof of Work, l'obiettivo era avere un nuovo blocco ogni 13,3 secondi circa. Con il Poof of stake, gli slot si verificano precisamente ogni 12 secondi, e ciascuno rappresenta un'opportunità per un validatore di pubblicare un blocco. Gran parte degli slot contiene blocchi, ma non necessariamente tutti (cioè un validatore è offline). Nel Proof of stake, i blocchi sono prodotti a una frequenza del 10% circa maggiore che nel Proof of Work. Questo è stato un cambiamento abbastanza irrilevante ed è improbabile che sia notato dagli utenti. - -La Proof of stake ha introdotto il concetto di finalità della transazione che, precedentemente, non esisteva. Nel Proof of Work, la capacità di annullare un blocco diventa esponenzialmente più difficile all'aumentare dei blocchi minati su una transazione, ma non raggiunge mai lo zero. In modalità Proof of stake, i blocchi sono raggruppati in epoche (intervalli di 6,4 minuti contenenti 32 possibili blocchi), su cui votano i validatori. Quando termina un'epoca, i validatori votano se considerare l'epoca 'giustificata'. Se i validatori acconsentono a giustificare l'epoca, questa viene finalizzata nell'epoca successiva. Annullare le transazioni finalizzate è economicamente non redditizio, in quanto richiederebbe di ottenere e bruciare oltre un terzo dell'ETH in staking totale. - - - - - -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. - -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 - - - - -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. - -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, 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} - -Il termine 'Eth2' è stato superato. Dopo aver fuso 'Eth1' ed 'Eth2' in una singola catena, non vi è più alcun bisogno di distinguere tra le due reti di Ethereum; esiste solo Ethereum. - -Per limitare la confusione, la community ha aggiornato questi termini: - -- 'Eth1' è ora il 'livello di esecuzione' che gestisce le transazioni e l'esecuzione. -- 'Eth2' è ora il 'livello di consenso', che gestisce il consenso di Proof of stake. - -Questi aggiornamenti della terminologia cambiano solo le convenzioni di nomenclatura, senza alterare gli obiettivi né la tabella di marcia di Ethereum. - -[Scopri di più sulla rinominazione di 'Eth2'](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) - -## Relazione tra gli aggiornamenti {#relationship-between-upgrades} - -Gli aggiornamenti di Ethereum sono tutti in qualche modo interconnessi. Quindi, ricapitoliamo di come la Fusione si collega agli altri aggiornamenti. - -### La Fusione e la Beacon Chain {#merge-and-beacon-chain} - -La Fusione rappresenta l'adozione formale della Beacon Chain come nuovo livello di consenso al livello di esecuzione originale della Rete principale. A partire dalla Fusione, i validatori sono assegnati alla Rete principale sicura di Ethereum e il mining su [Proof of Work](/developers/docs/consensus-mechanisms/pow/) non è più un mezzo valido di produzione di blocchi. - -I blocchi sono invece proposti dai nodi di convalida, che ottengono ETH in staking in cambio del diritto di partecipare al consenso. Questi aggiornamenti stabiliscono le basi per gli aggiornamenti di scalabilità futuri, incluso lo sharding. - - - La beacon chain - - -### 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. Questa funzionalità è stata abilitata separatamente, con l'aggiornamento di Shanghai/Capella. - -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} - -Originariamente, il piano prevedeva di lavorare allo sharding prima della Fusione per risolvere la questione della scalabilità. Tuttavia, con il boom delle [soluzioni di ridimensionamento del livello 2](/layer-2/), la priorità si è spostata sul passaggio dal Proof of Work al Proof of stake. - -I piani per lo sharding si stanno evolvendo rapidamente, ma data la nascita e il successo delle tecnologie di livello 2 per scalare l'esecuzione delle transazioni, i piani per lo sharding hanno spostato l'attenzione sul trovare il modo ottimale per distribuire il carico per memorizzare i dati di chiamata compressi dai contratti di rollup, consentendo la crescita esponenziale della capacità di rete. Questo sarebbe impossibile senza prima passare al Proof of stake. - - - Sharding - - -## Letture consigliate {#further-reading} - - - - diff --git a/src/content/translations/it/roadmap/scaling/index.md b/src/content/translations/it/roadmap/scaling/index.md deleted file mode 100644 index 9e37af0687c..00000000000 --- a/src/content/translations/it/roadmap/scaling/index.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -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/security/index.md b/src/content/translations/it/roadmap/security/index.md deleted file mode 100644 index e0e213fde70..00000000000 --- a/src/content/translations/it/roadmap/security/index.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -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/user-experience/index.md b/src/content/translations/it/roadmap/user-experience/index.md deleted file mode 100644 index 00ed966ea9e..00000000000 --- a/src/content/translations/it/roadmap/user-experience/index.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -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 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 è una 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/smart-contracts/index.md b/src/content/translations/it/smart-contracts/index.md deleted file mode 100644 index 52da4b493f9..00000000000 --- a/src/content/translations/it/smart-contracts/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Contratti intelligenti -description: Un'introduzione semplificata ai contratti intelligenti -lang: it ---- - -# Introduzione ai contratti intelligenti {#introduction-to-smart-contracts} - -I contratti intelligenti sono gli elementi fondamentali che costituiscono il livello di applicazione di Ethereum. Si tratta di programmi informatici memorizzati sulla blockchain che seguono la logica "se questo, allora quello" ed è garantito che vengano eseguiti secondo le regole definite dal loro codice, che non può essere modificato una volta creato. - -Nick Szabo ha coniato il termine "smart contract" (contratto intelligente). Nel 1994 ha scritto [un'introduzione al concetto](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html) e, nel 1996, [un'esplorazione di ciò che i contratti intelligenti potrebbero fare](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). - -Szabo immaginava un marketplace digitale in cui processi automatici e crittograficamente sicuri consentissero di effettuare transazioni e funzioni commerciali senza intermediari fidati. I contratti intelligenti su Ethereum hanno messo in pratica questa visione. - -### La fiducia nei contratti tradizionali {#trust-and-contracts} - -Uno dei più grandi problemi di un contratto tradizionale è la necessità di persone fidate che portino a termine i risultati del contratto. - -Ecco un esempio: - -Alice e Bob stanno facendo una gara in bici. Diciamo che Alice scommette con Bob €10 che vincerà lei la gara. Bob è sicuro che sarà lui il vincitore, e accetta la scommessa. Alla fine, Alice finisce la gara prima di Bob ed è la vincitrice indiscussa. Ma Bob si rifiuta di pagare la scommessa, sostenendo che Alice abbia barato. - -Questo sciocco esempio illustra il problema di qualsiasi accordo “non intelligente”. Anche se le condizioni dell'accordo sono soddisfatte (quindi, hai vinto la gara), devi comunque fidarti del fatto che un'altra persona tenga fede all'accordo (ossia, pagare la scommessa). - -### Un distributore automatico digitale {#vending-machine} - -Una semplice metafora per un contratto intelligente è un distributore automatico, che funziona in modo simile a un contratto intelligente: degli input specifici garantiscono degli output predeterminati. - -- Selezioni un prodotto -- Il distributore automatico mostra il prezzo -- Tu paghi il prezzo -- Il distributore automatico verifica che tu abbia pago l'importo corretto -- Il distributore automatico ti dà il tuo articolo - -Il distributore automatico eroga il prodotto desiderato solo se sono soddisfatti tutti i requisiti. Se non selezioni un prodotto o non inserisci abbastanza denaro, il distributore automatico non ti darà il prodotto. - -### Esecuzione automatica {#automation} - -Il vantaggio principale di un contratto intelligente è che esegue in modo deterministico un codice non ambiguo quando vengono soddisfatte determinate condizioni. Non è necessario attendere che una persona interpreti o negozi il risultato. In questo modo si elimina la necessità di intermediari fidati. - -Ad esempio, potresti scrivere un contratto intelligente che detiene i fondi in custodia per un bambino, consentendogli di ritirarli dopo una data specifica. Se questi prova a prelevare i fondi prima della data specificata, il contratto intelligente non sarà eseguito. Oppure, potresti scrivere un contratto che ti consegni automaticamente una versione digitale del certificato di proprietà di un auto, al pagamento del concessionario. - -### Risultati prevedibili {#predictability} - -I contratti tradizionali sono ambigui perché si affidano all'uomo per interpretarli e attuarli. Ad esempio, due giudici potrebbero interpretare un contratto in modo diverso, il che potrebbe portare a decisioni discordanti e a risultati iniqui. I contratti intelligenti eliminano questa possibilità. Al contrario, i contratti intelligenti si eseguono precisamente secondo le condizioni scritte nel codice del contratto. Questa precisione fa sì che, date le stesse circostanze, il contratto intelligente produrrà lo stesso risultato. - -### Registro pubblico {#public-record} - -I contratti intelligenti sono utili per le verifiche e il monitoraggio. Poiché i contratti intelligenti di Ethereum si trovano su una blockchain pubblica, chiunque può monitorare istantaneamente i trasferimenti di risorse e altre informazioni correlate. Ad esempio, è possibile verificare se qualcuno ha inviato denaro al proprio indirizzo. - -### Protezione della privacy {#privacy-protection} - -I contratti intelligenti, inoltre, proteggono la tua privacy. Poiché Ethereum è una rete pseudonima (le tue transazioni sono pubblicamente legate a un indirizzo crittografico univoco, non alla tua identità), puoi proteggere la tua privacy dagli osservatori. - -### Termini visibili {#visible-terms} - -Infine, come per i contratti tradizionali, è possibile verificare il contenuto di un contratto intelligente prima di firmarlo (o d'interagire con esso in altro modo). La trasparenza di un contratto intelligente garantisce che chiunque possa esaminarlo. - -## Casi d'uso dei contratti intelligenti {#use-cases} - -I contratti intelligenti possono fare essenzialmente tutto ciò che possono fare i programmi informatici. - -Possono eseguire calcoli, creare valuta, memorizzare dati, coniare NFT, inviare comunicazioni e persino generare immagini. Ecco alcuni esempi popolari dal mondo reale: - -- [Stablecoin](/stablecoins/) -- [Creare e distribuire risorse digitali uniche](/nft/) -- [Una piattaforma di cambio di valute automatica e aperta](/get-eth/#dex) -- [Giochi decentralizzati](/dapps/?category=gaming) -- [Una polizza assicurativa che paga automaticamente](https://etherisc.com/) -- [Uno standard che consente la creazione di valute personalizzate e interoperabili](/developers/docs/standards/tokens/) - -## Preferisci un approccio visivo all'apprendimento? {#visual-learner} - -Guarda la spiegazione di Finematics sui contratti intelligenti: - - - -## Letture consigliate {#further-reading} - -- [In che modo i contratti intelligenti cambieranno il mondo](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [Contratti Intelligenti: La Tecnologia della Blockchain Che Sostituirà gli Avvocati](https://blockgeeks.com/guides/smart-contracts/) -- [Contratti intelligenti per sviluppatori](/developers/docs/smart-contracts/) -- [Impara a scrivere i contratti intelligenti](/developers/learning-tools/) -- [Padroneggiare Ethereum: Cos'è un Contratto Intelligente?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/src/content/translations/it/social-networks/index.md b/src/content/translations/it/social-networks/index.md deleted file mode 100644 index 78eb2134551..00000000000 --- a/src/content/translations/it/social-networks/index.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: Social network decentralizzati -description: Una panoramica dei social decentralizzati su Ethereum -lang: it -template: use-cases -emoji: ":mega:" -sidebarDepth: 2 -image: ../../../../assets/ethereum-learn.png -summaryPoint1: Piattaforme basate sulla blockchain per l'interazione sociale e la creazione e distribuzione di contenuti. -summaryPoint2: I social network decentralizzati proteggono l'anonimato degli utenti e migliorano la sicurezza dei dati. -summaryPoint3: Token e NFT creano nuovi modi per monetizzare i contenuti. ---- - -I social network rivestono un enorme ruolo nelle comunicazioni e interazioni quotidiane. Tuttavia, il loro controllo centralizzato ha creato numerosi problemi: fughe di dati, guasti dei server, de-platforming, censura e violazioni della privacy, sono solo alcuni dei compromessi intrapresi dai social. Per combattere tali problemi, gli sviluppatori stanno creando dei sociial network su Ethereum. I social decentralizzati possono risolvere molti dei problemi delle piattaforme tradizionali, migliorando l'esperienza complessiva degli utenti. - -## Cosa sono i social network decentralizzati? {#what-are-decentralized-social-networks} - -I social network decentralizzati sono piattaforme basate sulla blockchain che consentono agli utenti ddi scambiare informazioni, nonché di pubblicare e distribuire contenuti al pubblico. Poiché sono operate sulla blockchain, queste applicazioni possono essere decentralizzate e resistere alla censura, nonché al controllo indebito. - -Esistono molti social network decentralizzati alternativi ai servizi affermati, come Facebook, Linkedin, Twitter e Medium. Ma i social basati sulla blockchain presentano numerose funziionalità che li fanno preferire alle piattaforme tradizionali. - -### Come funzionano i social network decentralizzati? {#decentralized-social-networks-overview} - -I social network decentralizzati sono una classe di [applicazioni decentralizzate (dapp)](/dapps/): applicazioni basate su [contratti intelligenti](/developers/docs/smart-contracts/), e distribuite sulla blockchain. Il codice del contratto serve da interfaccia per tali app, definendone la logica aziendale. - -Le piattaforme social tradizionali si affidano ai database per memorzzare le informazioni degli utenti, il codice del programma e altre forme di dati. Ma ciò genera singoli punti di guasto, introducendo rischi significativi. Ad esempio, i server di Facebook sono tristemente [andati offline per ore](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact), l'anno scorso, impedendo agli utenti di acceddere alla piattaforma. - -I social network decentralizzati esistono su una rete tra pari, che comprende migliaia di nodi in tutto il mondo. Anche se alcuni nodi si guastano, la rete continuerà a funzionare, rendendo le applicazioni resistenti a guasti e malfunzionamenti. - -Utilizzando sistemi di archiviazione decentralizzata, come [il Sistema di File Interplanetari (IPFS)](https://ipfs.io/), i social basati su Ethereum possono proteggere le informazioni degli utenti da exploit e utilizzi malevoli. Nessuno venderà le tue informazioni personali agli inserzionisti, né gli hacker potranno rubare i tuoi dati riservati. - -Molte piattaforme social basate sulla blockchain includono dei token nativi, che alimentano la monetizzazione, in assenza di entrate pubblicitarie. Gli utenti possono acquistare tali token per accedere a certe funzionalità, completare acquisti in app o donare ai propri creatori di contenuti preferiti. - -## Benefici dei social network decentralizzati {#benefits} - -1. I social network decentralizzati sono resistenti alla censura e aperti a tutti. Ciò significa che gli utenti non possono essere bannati, cacciati o limitati arbitrariamente. - -2. I social network decentralizzati si basano su ideali open source e rendono disponibile il codice sorgente delle applicazioni, per l'ispezione pubblica. Eliminando l'implementazione di algoritmi opachi comuni nei social tradizionali, quelli basati sulla blockchain possono allinearsi agli interessi degli utenti e creatori della piattaforma. - -3. I social network ddecentralizzati eliminano l'intermediario. I creatori di contenuti hanno la proprietà diretta dei propri contenuti, impegnandosi direttamente con seguaci, fan, acquirenti e altre parti, con soltanto un contratto intelligente a separarli. - -4. Essendo dapp operate sulla rete di Ethereum, sostenuta da una rete di noti tra pari e globale, i social network decentralizzati sono meno suscettibili a inattività e malfunzionamenti dei server. - -5. Le piattaforme social offrono un quadro di monetizzazione migliorato per i creatori di contenuti, tramite token non fungibili (NFT), pagamenti in criptovalute integrati, e molto altro. - -6. I social decentralizzati permettono agli utenti livelli di privacy e anonimato elevati. Ad esempio, una persona può acceere a un social basato su Ethereum utilizzando un profilo ENS o un portafoglio, senza dover condividere informazioni personalmente identificabili (PII), quali nomi, indirizzi email, etc. - -7. I social decentralizzati si affidano all'archiviazione decentralizzata, non a database centralizzati, considderevolmente migliori per la salvaguardia dei dati degli utenti. - -## Social network decentralizzati su Ethereum {#ethereum-social-networks} - -La rete di Ethereum è diventata lo strumento preferito dagli sviluppatori, per la creazione di social decentralizzati, grazie alla popolarità dei suoi token (ERC-20/ERC-721), e la sua enorme base di utenza. Ecco alcuni esempi di social network basati su Ethereum: - -### Peepeth {#peepeth} - -[Peepeth](https://peepeth.com/) è una piattaforma di microblogging simile a Twitter. Opera sulla blockchain di Ethereum e utilizza IPFS per memorizzare i dati degli utenti. - -Gli utenti possono inviare brevi messaggi, detti "Peeps", che non possono essere eliminati o modificati. Puoi ricevere o dare mance sulla piattaforma in ether (ETH), senza abbandonare l'app. - -### Mirror {#mirror} - -[Mirror](https://mirror.xyz/) è una piattaforma di scrittura abilitata per Web3, che mira e essere decentralizzata e posseduta dagli utenti. Gli utenti possono leggere e scrivere liberamente su Mirror, semplicemente connettendo i propri portafogli. Inolte, gli utenti possono scrivere in gruppo e iscriversi ai propri scrittori preferiti. - -I post pubblicati su Mirror sono memorizzati permanentemente su Arweave, una piattaforma d'archiviazione decentralizzata, e possono essere coniati come [token non fungibili (NFT)](/nft/) collezionabili, noti come Writing NFT. I Writing NFT possono esser creati completamente gratis dagli scrittori, mentre la raccolta si verifica sun un L2 di Ethereum, rendendo le transazioni economiche, veloci ed ecosostenibili. - -### MINDS {#minds} - -[MINDS](https://www.minds.com/) è uno dei social decentralizzati più utilizzati. Funziona come Facebook e conta già di milioni di utenti. - -Gli utenti utilizzano il token ERC-20 nativo della piattaforma, $MIND, per pagare gli articoli. Inoltre, gli utenti, possono anche guadagnare token $MIND, pubblicando contenuti popolari, contribuendo all'ecosistema e riferendo altri alla piattaforma. - -## Social network Web2 su Ethereum {#web2-social-networks-and-ethereum} - -Le piattaforme social native del [Web3](/web3/) non sono le sole che stanno tentando di incorporare la tecnologia della blockchain nei social. Anche molte piattaforme centralizzate stanno pianificando di integrare Ethereum nella propria infrastruttura: - -### Reddit {#reddit} - -Reddit ha [pubblicizzato dei Punti della Community](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users): [token ERC-20](/developers/docs/standards/tokens/erc-20/) che gli utenti possono guadagnare, pubblicando contenuti di qualità e contribuendo alle community online (subreddit). Puoi riscattare tali token in una subreddit, per [ottenere privileggi e vantaggi esclusivi](https://www.reddit.com/community-points/). Per questo progetto, Reddit sta collaborando con Arbitrum, un rollup di [livello 2](/layer-2/) progettato per ridimensionare le transazioni di Ethereum. - -Il programma è già attivo: la subreddit r/CryptoCurrency [adopera la propria versione dei Punti della Community, detti "Moons"](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Secondo la descrizione ufficiale, i Moons "ricompensano pubblicatori, commentatori e moderatori, per i loro contributi alla subreddit." Poiché questi token si trovano sulla blockchain (gli utenti li ricevono nei portafogli), sono indipendenti da Reddit e non possono essere rimossi. - -Una volta conclusa la fase beta sulla rete di prova di Rinkeby, i Punti della Community di Reddit sono ora su [Arbitrum Nova](https://nova.arbitrum.io/), una blockchain che combina le proprietà di una [catena secondaria](/developers/docs/scaling/sidechains/) e di un [rollup ottimistico](/developers/docs/scaling/optimistic-rollups/). Oltre a utilizzare i Punti della Community per sbloccare funzionalità speciali, gli utenti possono anche scambiarli per valuta legale, nelle piattaforme di scambio. Inoltre, l'importo di Punti della Community posseduto da un utente, ne determina l'influenza sul processo di presa decisionale, all'interno della community. - -### Twitter {#twitter} - -A gennaio 2021, Twitter Blue [ha lanciato il supporto ai NFT](https://mashable.com/article/twitter-blue-nft-profile-picture), consentendo agli utenti di connettere i propri portafogli e di mostrare NFT come immagini di profilo. Al momento della scrittura, l'azienda che gestisce il social ha anche [annunciato piani](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) per la creazione di un social decentralizzato, in futuro. - -### Instagram {#instagram} - -A maggio 2022, [Instagram ha annunciato il supporto per i NFT](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) su Ethereum e su Polygon. Gli utenti possono pubblicare i NFT direttamente su Instagram, connettendo il proprio portafoglio di Ethereum. - -## Utilizzare i social decentralizzati {#use-decentralized-social-networks} - -- **[Status.im](https://status.im/)**: _Status è un'app di messaggistica sicura che utilizza un protocollo open source e tra pari, nonché la crittografia end-to-end per proteggere i tuoi messaggi dalle terze parti._ -- **[Mirror.xyz](https://mirror.xyz/)**: _Mirror è una piattaforma di pubblicazione decentralizzata e posseduta dagli utenti basata su Ethereum, per il crowdfunding delle idee, la monetizzazione dei contenuti e la creazione di community dal valore elevato._ -- **[Lens Protocol](https://lens.xyz/)**: _Lens Protocol è un grafico sociale componibile e decentralizzato che aiuta i creatori a prendere possesso dei propri contenuti, ovunque vadano nel proprio giardino digitale dell'Intenet decentralizzato._ -- **[Farcaster](https://farcaster.xyz/)**: _Farcaster è un social sufficientemente decentralizzato. È un protocollo aperto che supporta molti client, proprio come l'email._ - -## Lettura consigliate {#further-reading} - -### Articoli {#articles} - -- [Decentralizzare i social: una guida allo stack dei social di Web3](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _Coinbase Ventures_ -- [I social sono la prossima grande opportunità per la decentralizzazione](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) - _Ben Goertzel_ -- [Il Web3 detiene la promessa dei social decentralizzati e sostenuti dalla community](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) - _Sumit Ghosh_ -- [Una panoramica del panorama social della blockchain](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) - _Gemini Cryptopedia_ -- [In che modo la blockchain può risolvere la privacy dei social](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) - _Prableen Bajpai_ -- [I social stanno arrivando sulla blockchain](https://businesstechguides.co/what-are-decentralized-social-networks) - _Emmanuel Awosika_ -- [Decentralizzazione sufficiente per i social](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) - _Varun Srinivasan_ - -### Video {#videos} - -- [Social decentralizzati spiegati](https://www.youtube.com/watch?v=UdT2lpcGvcQ) - _Coinmarketcap_ -- [La blockchain DeSo vuole decentralizzare i social](https://www.youtube.com/watch?v=SG2HUiVp0rE) - _Bloomberg Technology_ -- [Il futuro dei social decentralizzati, con Balaji Srinivasan, Vitalik Buterin e Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) - _ETHGlobal_ - -### Community {#communities} - -- [Server Discord di Status](https://discord.com/invite/3Exux7Y) -- [Server Discord di Mirror](https://discord.com/invite/txuCHcE8wV) -- [Subreddit r/CryptoCurrency](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/it/staking/pools/index.md b/src/content/translations/it/staking/pools/index.md deleted file mode 100644 index 4f515891058..00000000000 --- a/src/content/translations/it/staking/pools/index.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: Staking in pool -description: Una panoramica di come iniziare con lo staking in pool di ETH -lang: it -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-pool.png -alt: Leslie il rinoceronte che nuota in piscina. -sidebarDepth: 2 -summaryPoints: - - Metti in stake e guadagna ricompense con qualsiasi importo di ETH unendo le forze con gli altri - - Salta la parte dura e affida l'operazione di validatore a una terza parte - - Possiedi token di staking nel tuo portafoglio ---- - -## Cosa sono i pool di staking? {#what-are-staking-pools} - -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 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} - -Oltre ai vantaggi che abbiamo delineato nella nostra [introduzione allo staking](/staking/), lo staking mediante un pool viene fornito con una serie di vantaggi distinti. - - - - - - - - - -## Cosa considerare {#what-to-consider} - -Lo staking in pool o delegato non è supportato nativamente dal protocollo di Ethereum, ma data la domanda degli utenti di mettere meno di 32 ETH in staking, sono state costruite sempre più soluzioni per soddisfare tale richiesta. - -Ogni pool e gli strumenti o i contratti intelligenti che utilizzano sono stati creati da team differenti e ognuno presenta i propri benefici e rischi. I pool consentono agli utenti di scambiare i propri ETH per un token che rappresenta gli ETH in staking. Il token è utile perché consente agli utenti di scambiare qualsiasi importo di ETH con un importo equivalente di un token fruttifero che genera un rendimento dalle ricompense di staking applicate agli ETH sottostanti (e viceversa) sulle borse decentralizzate, anche se gli ETH veri e propri rimangono in staking sul livello del consenso. Ciò significa che lo scambio da e verso un prodotto di ETH in staking che generi una resa e gli "ETH grezzi" è rapido, facile e non solo disponibile in multipli di 32 ETH. - -Tuttavia, questi token derivanti dagli ETH in staking tendono a creare comportamenti in stile cartello, in cui una grande quantità di ETH in staking finisce sotto il controllo di alcune organizzazioni centralizzate, piuttosto che distribuirsi a molti individui indipendenti. Ciò crea condizioni di censura o di estrazione del valore. Lo standard di riferimento per lo staking dovrebbe sempre prevedere l'esecuzione di validatori da parte di individui, sul proprio hardware, quando possibile. - -[Di più sui rischi dello staking di token](https://notes.ethereum.org/@djrtwo/risks-of-lsd). - -Gli indicatori d'attributo sono usati di seguito per segnalare notevoli punti di forza o debolezze che un pool di staking elencato potrebbe avere. Usa questa sezione come un riferimento per come definire tali attributi mentre stai scegliendo un pool cui unirti. - - - -## Esplora i pool di staking {#explore-staking-pools} - -Esistono una varietà di opzioni disponibili per aiutarti con la tua configurazione. Gli indicatori di cui sopra ti guideranno per gli strumenti seguenti. - - - - - -Sei pregato di notare l'importanza di scegliere un servizio che prenda sul serio la [diversità del client](/developers/docs/nodes-and-clients/client-diversity/), poiché essa migliora la sicurezza della rete e limita i tuoi rischi. I servizi aventi prova della limitazione dell'utilizzo dei client di maggioranza sono indicati con "diversità del client d'esecuzione" e "diversità del client del consenso." - -Hai un suggerimento per uno strumento di staking che abbiamo dimenticato? Dai un'occhiata alla nostra [politica di elenco dei prodotti](/contributing/adding-staking-products/) per verificare l'idoneità e sottoporcelo. - -## Domande frequenti {#faq} - - -Tipicamente, i token di staking ERC-20 sono emessi agli staker che rappresentano il valore dei loro ETH in staking più le ricompense. Tieni a mente che diversi pool distribuiranno ricompense di staking ai loro utenti tramite metodi lievemente differenti, ma questo è il tema comune. - - - -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à. - -In alternativa, i pool che utilizzano un token di staking ERC-20 consentono agli utenti di scambiare questo token sul mercato libero, permettendo di vendere la propria posizione di staking, "prelevando" i propri fondi di fatto senza rimuovere effettivamente ETH dal contratto di staking. - -Di più sui prelievi di staking - - - -Esistono molte somiglianze tra queste opzioni di staking in pool e le borse centralizzate, come la possibilità di mettere in staking piccole quantità di ETH e farle impacchettare insieme per attivare i validatori. - -A differenza delle borse centralizzate, molte altre opzioni di staking in pool utilizzano contratti intelligenti e/o token di staking, che di solito sono token ERC-20 che possono essere conservati nel proprio portafoglio e acquistati o venduti come qualsiasi altro token. Questo offre un livello di sovranità e sicurezza, dandoti il controllo dei tuoi token, ma non ti dà ancora il controllo diretto sul client del validatore che attesta per conto tuo in background. - -Alcune opzioni di pooling sono più decentralizzate di altre quando si tratta di nodi che le sostengono. Per promuovere la salute e la decentralizzazione della rete, gli staker sono sempre incoraggiati a selezionare un servizio di pooling che consenta una serie di operatori del nodo decentralizzati e privi di permessi. - - -## Approfondimenti {#further-reading} - -- [Staking con Rocket Pool - Panoramica sullo Staking](https://docs.rocketpool.net/guides/staking/overview.html) - _RocketPool docs_ -- [Staking di Ethereum con Lido](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Documentazione di supporto di Lido_ diff --git a/src/content/translations/it/staking/saas/index.md b/src/content/translations/it/staking/saas/index.md deleted file mode 100644 index ce29adcec52..00000000000 --- a/src/content/translations/it/staking/saas/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Staking come servizio -description: Una panoramica di come iniziare con lo staking in pool di ETH -lang: it -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-saas.png -alt: Leslie il rinoceronte che fluttua tra le nuvole. -sidebarDepth: 2 -summaryPoints: - - Gli operatori di nodi di terze parti gestiscono l'operazione del tuo client del validatore - - Ottima opzione per chiunque abbia 32 ETH e non si senta a proprio agio nell'affrontare la complessità tecnica dell'esecuzione di un nodo - - Riduce la fiducia e mantiene la custodia delle tue chiavi di prelievo ---- - -## Cos'è lo staking come un servizio? {#what-is-staking-as-a-service} - -Lo staking come un servizio ("SaaS") rappresenta una categoria di servizi di staking in cui depositi i tuoi 32 ETH per un validatore, ma deleghi le operazioni del nodo a un operatore di terze parti. Solitamente questo processo coinvolge la guida alla configurazione iniziale, inclusa la generazione della chiave e il deposito e il successivo caricamento delle tue chiavi di firma all'operatore. Questo consente al servizio di operare il tuo validatore per tuo conto, solitamente per una commissione mensile. - -## Perché mettere in staking con un servizio? {#why-stake-with-a-service} - -Il protocollo di Ethereum non supporta nativamente la delegazione dello staking, quindi questi servizi sono stati creati per soddisfare questa domanda. Se hai 32 ETH da mettere in staking, ma non hai dimestichezza con l'hardware, i servizi di SaaS ti consentono di delegare la parte hardware e ottenere le ricompense del blocco nativo. - - - - - - - - - -## Cosa considerare {#what-to-consider} - -Esiste un numero crescente di fornitori di SaaS per aiutarti a mettere i tuoi ETH in staking, ma tutti hanno i propri vantaggi e rischi. Tutte le opzioni dei SaaS richiedono ipotesi di fiducia aggiuntive rispetto allo staking domestico. Le opzioni di SaaS potrebbero contenere del codice aggiuntivo, avvolto dai client di Ethereum, che non è aperto o verificabile. I SaaS hanno inoltre un effetto negativo sulla decentralizzazione della rete. A seconda della configurazione, potresti non controllare il tuo validatore; l'operatore potrebbe agire in modo disonesto, utilizzando i tuoi ETH. - -Gli indicatori d'attributo sono usati di seguito per segnalare notevoli punti di forza o debolezze che un fornitore di SaaS elencato potrebbe avere. Usa questa sezione come un riferimento per come definiamo questi attributi mentre stai scegliendo un servizio per aiutarti con il tuo percorso di staking. - - - -## Esplora i fornitori del servizio di staking {#saas-providers} - -Di seguito alcuni fornitori di SaaS disponibili. Usa i suddetti indicatori per orientarti tra questi servizi - - - -#### Fornitori di SaaS - - - -Ricorda l'importanza di supportare la [diversità del client](/developers/docs/nodes-and-clients/client-diversity/) poiché migliora la sicurezza della rete e limita i tuoi rischi. I servizi aventi prova della limitazione dell'utilizzo dei client di maggioranza sono indicati con "diversità del client d'esecuzione" e "diversità del client del consenso." - -#### Generatori di chiavi - - - -Hai un suggerimento per un fornitore di staking come servizio che abbiamo dimenticato? Dai un'occhiata alla nostra [politica di elenco dei prodotti](/contributing/adding-staking-products/) per verificare l'idoneità e sottoporcelo. - -## 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. - - - -Sì. Ogni conto si compone sia di chiavi di firma che di chiavi di prelievo BLS. Affinché un validatore possa attestare allo stato della catena, partecipare ai comitati di sincronizzazione e proporre blocchi, le chiavi di firma devono essere prontamente accessibili dal client di un validatore. Queste devono esser connesse a Internet in qualche modo e sono dunque intrinsecamente considerate chiavi "calde". Questo è un requisito affinché il tuo validatore possa attestare e, dunque, le chiavi usate per trasferire o prelevare i fondi sono separate per motivi di sicurezza. - -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 consentire i prelievi\*. Questo processo comporta la generazione delle chiavi di prelievo, utilizzando la tua frase di seed mnemonica. - -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. - - - -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. - -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. - -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. - - -## Approfondimenti {#further-reading} - -- [Valutare i servizi di Staking](https://www.attestant.io/posts/evaluating-staking-services/) - _Jim McDonald 2020_ diff --git a/src/content/translations/it/staking/solo/index.md b/src/content/translations/it/staking/solo/index.md deleted file mode 100644 index 2644465265b..00000000000 --- a/src/content/translations/it/staking/solo/index.md +++ /dev/null @@ -1,203 +0,0 @@ ---- -title: Metti i tuoi ETH in staking in solo -description: Una panoramica di come iniziare a mettere in staking in solo i tuoi ETH -lang: it -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-solo.png -alt: Leslie il rinoceronte sul suo chip informatico. -sidebarDepth: 2 -summaryPoints: - - Ricevi le ricompense massime direttamente dal protocollo per mantenere il tuo validatore propriamente in funzione e online - - Opera hardware domestico e aggiungi personalmente alla sicurezza e decentralizzazione della rete di Ethereum - - Rimuovi la fiducia e non lasciar mai perdere il controllo delle chiavi dei tuoi fondi ---- - -## Cos'è lo staking in solo? {#what-is-solo-staking} - -Lo staking in solo è l'atto di [operare un nodo di Ethereum](/run-a-node/) connesso a Internet e depositare 32 ETH per attivare un [validatore](#faq), dandoti l'abilità di partecipare direttamente nel consenso della rete. - -**Lo staking in solo aumenta la decentralizzazione della rete di Ethereum**, rendendola più resistente alla censura e più robusto contro gli attacchi. Altri metodi di staking potrebbero non aiutare la rete nello stesso modo. Lo staking in solo è la migliore opzione di staking per proteggere Ethereum. - -Un nodo di Ethereum consiste sia nel client del livello di esecuzione (EL), che di un client del livello di consenso (CL). Questi client sono software che cooperano, insieme a una valida serie di chiavi di firma, per verificare le transazioni e i blocchi, attestare al capo corretto della catena, aggregare le attestazioni e proporre i blocchi. - -Gli staker in solo sono responsabili di operare l'hardware necessario a eseguire questi client. Si consiglia vivamente di usare una macchina dedicata per questo, che operi da casa, il che è estremamente vantaggioso per l'integrità della rete. - -Uno staker in solo riceve ricompense direttamente dal protocollo per mantenere il proprio validatore propriamente funzionante e online. - -## Perché mettere in staking in solitaria? {#why-stake-solo} - -Lo staking in solo richiede una maggiore responsabilità, ma fornisce il massimo controllo sui fondi e la configurazione di staking. - - - - - - - -## Considerazioni prima dello staking in solo {#considerations-before-staking-solo} - -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 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. - - Ulteriori informazioni sullo slashing e sul ciclo di vita dei validatori - - - - - -## Come funziona {#how-it-works} - - - -Quando saranno attivi, riceverai le ricompense in ETH, che saranno depositate periodicamente al tuo indirizzo di prelievo. - -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. - -[Di più sulle ricompense di staking](/staking/withdrawals/) - -## Inizia con il Launchpad di Staking {#get-started-on-the-staking-launchpad} - -Il Launchpad di Staking è un'applicazione open source che ti aiuterà a diventare uno staker. Ti guiderà per la scelta dei tuoi client, la generazione delle tue chiavi e il deposito dei tuoi ETH al contratto di deposito di staking. Una lista di controllo è fornita per assicurarsi che tu abbia coperto tutto per configurare in sicurezza il tuo validatore. - - - -## Cosa considerare con il nodo e gli strumenti di configurazione del client {#node-tool-considerations} - -Esistono sempre più strumenti e servizi per aiutarti a mettere i tuoi ETH in staking in solo, ma ognuno presenta diversi rischi e benefici. - -Gli indicatori di attributo sono usati di seguito per segnalare punti di forza e debolezze notevoli che uno strumento di staking elencato potrebbe avere. Usa questa sezione come un riferimento per come definire questi attributi mentre stai scegliendo quali strumenti usare per guidarti per il tuo percorso di staking. - - - -## Esplora gli strumenti del nodo e di configurazione del client {#node-and-client-tools} - -Esistono una varietà di opzioni disponibili per aiutarti con la tua configurazione. Gli indicatori di cui sopra ti guideranno per gli strumenti seguenti. - - - -#### Strumenti del nodo - - - -Ricorda l'importanza di scegliere un [client di minoranza](/developers/docs/nodes-and-clients/client-diversity/), poiché migliora la sicurezza della rete e limita i tuoi rischi. Gli strumenti che ti consentono di configurare il client di minoranza sono denotati come "multi-client". - -#### Generatori di chiavi - -Questi strumenti sono utilizzabili come un'alternativa alla [CLI di deposito di staking](https://github.com/ethereum/staking-deposit-cli/) per contribuire alla generazione di chiavi. - - - -Hai un suggerimento per uno strumento di staking che abbiamo dimenticato? Dai un'occhiata alla nostra [politica di elenco dei prodotti](/contributing/adding-staking-products/) per verificare l'idoneità e sottoporcelo. - -## Esplora le guide di staking in solo {#staking-guides} - - - -## Domande frequenti {#faq} - -Esistono alcune domande molto comuni sullo staking che meritano di essere affrontate. - - - -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 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. - - - -Andare offline quando la rete sta finalizzando correttamente NON comporterà alcun taglio. Vengono applicate piccole sanzioni di inattività se il tuo validatore non è disponibile ad attestare per una data epoca (ciascuna lunga 6,4 minuti), ma queste sono molto differenti dal taglio. Queste sanzioni sono lievemente inferiori alla ricompensa che avresti ottenuto se il validatore fosse stato disponibile ad attestare e le perdite possono esser riguadagnate approssimativamente nello stesso periodo di tempo online. - -Nota che le sanzioni per inattività sono proporzionali a quanti validatori sono offline contemporaneamente. Nei casi in cui una grande porzione della rete è offline in una volta sola, le sanzioni per ciascuno di questi validatori saranno maggiori rispetto a quando non è disponibile un singolo validatore. - -In casi estremi, se la rete interrompe la finalizzazione poiché più di un terzo dei validatori è offline, questi utenti subiranno quella che è nota come fuga d'inattività quadratica, una riduzione esponenziale di ETH dai conti offline dei validatori. Questo consente alla rete, eventualmente, di auto-curarsi bruciando gli ETH dei validatori inattivi finché il loro saldo non raggiunge i 16 ETH, e a quel punto saranno automaticamente espulsi dal pool del validatore. I validatori online rimanenti alla fine comprenderanno ancora oltre i 2/3 della rete, soddisfacendo la super maggioranza necessaria per finalizzare nuovamente la catena. - - - -In breve, non esiste una garanzia assoluta in questo senso, ma se agisci in buona fede, operi un client di maggioranza e mantieni le tue chiavi di firma solo su una macchina per volta, il rischio di esser tagliato è quasi pari a zero. - -Esistono solo alcuni modi specifici che possono risultare nel taglio e nell'espulsione di un validatore dalla rete. Al momento della scrittura, i tagli che si sono verificati sono stati esclusivamente un prodotto di configurazioni hardware ridondanti in cui le chiavi di firma erano memorizzate contemporaneamente su due macchine separate. Questo può risultare inavvertitamente in un voto doppio dalle tue chiavi, il che è un'infrazione tagliabile. - -Operare un client di super maggioranza (ogni client usato da oltre 2/3 della rete), preclude anch'esso un rischio di taglio potenziale nel caso in cui il client presenti un bug che risulti in una biforcazione della catena. Questo può risultare in una biforcazione difettosa che viene finalizzata. Correggere alla catena intesa richiederebbe l'invio di un voto di contorno, provando ad annullare un blocco finalizzato. Anche questa è un'infrazione tagliabile e può esser evitata semplicemente eseguendo invece un client di minoranza. - -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. - - - - - -I client individuali potrebbero variare lievemente in termini di prestazioni e interfaccia utente, poiché ognuno è sviluppato da team differenti che usano diversi linguaggi di programmazione. Detto ciò, nessuno di essi è il "migliore." Tutti i client di produzione sono eccellenti pezzi di software, che eseguono tutti le stesse funzioni fondamentali per sincronizzarsi e interagire con la blockchain. - -Poiché tutti i client di produzione forniscono la stessa funzionalità di base, è davvero molto importante che tu scelga un client di minoranza, vale a dire qualsiasi client che NON sia attualmente in uso da una maggioranza di validatori sulla rete. Questo potrebbe sembrare controintuitivo, ma operare un client di maggioranza o di super maggioranza espone maggiormente al rischio di tagli nel caso di un bug in quel client. Operare un client di minoranza riduce drasticamente tali rischi. - -Scopri di più sul perché la diversità dei client è fondamentale - - - -Sebbene un server privato virtuale (VPS) possa essere usato come sostitutivo dell'hardware domestico, l'accesso e la posizione fisici del client del validatore sono importanti. Le soluzioni centralizzate su cloud come Amazon Web Services o Digital Ocean offrono la convenienza di non dover ottenere e operare l'hardware, a spese della centralizzazione della rete. - -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. - - - - -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 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. - -Per sbloccare e ricevere il tuo intero saldo, devi inoltre completare il processo di uscita dal tuo validatore. - -Di più sulle ricompense di staking - - -## Approfondimenti {#further-reading} - -- [Problema di diversità dei client di Ethereum](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ -- [Aiutare la diversità dei client](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ -- [La diversità del client sul livello di consenso di Ethereum](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ -- [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_ diff --git a/src/content/translations/it/staking/withdrawals/index.md b/src/content/translations/it/staking/withdrawals/index.md deleted file mode 100644 index 7c8a9efcd50..00000000000 --- a/src/content/translations/it/staking/withdrawals/index.md +++ /dev/null @@ -1,218 +0,0 @@ ---- -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. - - - Ogni account validatore è assegnabile esclusivamente a un singolo indirizzo di prelievo, una sola volta. Una volta che un indirizzo è scelto e inviato al livello del consenso, ciò non è annullabile o nuovamente modificabile. 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 inviato al tuo nodo del consenso e non richiede gas. - -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, si muove in una direzione, non salta alcuna 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 account validatore registrati sul livello del consenso, oltre 500.000 a gennaio 2023).

-La lancetta dell'orologio punta al validatore successivo, che dev'essere controllato per verificare la presenza 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 token di staking, dovresti chiedere al tuo fornitore ulteriori dettagli su come vengono gestiti i prelievi dallo 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/content/translations/ja/community/support/index.md b/src/content/translations/ja/community/support/index.md deleted file mode 100644 index e19a26ce4ca..00000000000 --- a/src/content/translations/ja/community/support/index.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: イーサリアムサポート -description: イーサリアムエコシステムにおけるサポート -lang: ja ---- - -# イーサリアムサポート {#support} - -## イーサリアムの公式サポート {#official-support} - -イーサリアムの公式サポートをお探しの場合は、まず始めに、 イーサリアムは非集中的な分散型であるということをご理解ください。 イーサリアムは、中央組織、団体、または個人により所有されていないため、公式のサポートチャンネルはありません。 - -「イーサリアムの公式サポート」を称する人物は、詐欺であるおそれがあります。このため、イーサリアムの分散型の性質をご理解ください。 詐欺師から身を守るには、自分自身で学び、セキュリティを真剣に受け止めることが何よりも大切です。 - - - イーサリアムのセキュリティと詐欺対策 - - - - イーサリアムの基礎知識を学ぶ - - -公式サポートはありませんが、イーサリアムエコシステム全体で多くのグループ、コミュニティ、およびプロジェクトからサポートを受けることができます。このページに有用な情報やリソースを記載していますので、ご確認ください。 ご質問やご不明点がある場合は、 [ethereum.org Discord](/discord/)に参加すると、サポートできることがあると思います。 - -## ウォレットサポート {#wallet-support} - -ウォレットのことでお困りの場合は、 ほとんどのウォレットには専門のサポートチームがあり、対応してくれます。 - -- [MetaMask](https://metamask.zendesk.com/hc/) -- [Argent](https://support.argent.xyz/hc/) -- [MyEtherWallet](https://help.myetherwallet.com/) - -_このリストはすべてを網羅するものではありません。 特定のウォレットのサポートを探すのにお困りの場合は、 [ethereum.org Discord](https://discord.gg/ethereum-org)に参加すると、サポートできることがあると思います。_ - -イーサリアムウォレットをお探しの場合は、 [イーサリアムウォレットの全リスト](/wallets/find-wallet/)をご確認ください。 - -## 分散型アプリ(Dapp)の開発 {#building-support} - -開発では問題にぶち当たることもあります。 下記は、経験豊富なイーサリアムデベロッパーがいる、開発に特化したスペースです。 - -- [CryptoDevs discord](https://discord.gg/Z9TA39m8Yu) -- [Ethereum StackExchange](https://ethereum.stackexchange.com/) -- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) -- [Web3 University](https://www.web3.university/) - -また、[イーサリアムデベロッパー向けリソース](/developers/)セクションには、ドキュメントや開発ガイドが掲載されています。 - -### ツール {#dapp-tooling} - -ご質問が特定のツール、プロジェクト、ライブラリに関するものの場合は、 ほとんどのプロジェクトで、サポート専用のチャットサーバやフォーラムが用意されています。 - -下記は人気があるものの例です。 - -- [Solidity](https://gitter.im/ethereum/solidity/) -- [ethers.js](https://discord.gg/6jyGVDK6Jx) -- [web3.js](https://discord.gg/GsABYQu4sC) -- [Hardhat](https://discord.gg/xtrMGhmbfZ) -- [Truffle](https://discord.gg/8uKcsccEYE) -- [Alchemy](http://alchemy.com/discord) - -## ノードの運用 {#node-support} - -ノードを実行している場合やバリデータの方は、下記のコミュニティでサポートを受けることができます。 - -- [EthStaker discord](https://discord.gg/ethstaker) -- [EthStaker reddit](https://www.reddit.com/r/ethstaker) - -イーサリアムクライアントを構築しているチームの大半は、サポートを受けたり質問したりできる専用のパブリックスペースを持っています。 - -### 実行クライアント {#execution-clients} - -- [Geth](https://discord.gg/FqDzupGyYf) -- [Nethermind](https://discord.gg/YJx3pm8z5C) -- [Besu](https://discord.gg/p8djYngzKN) -- [Erigon](https://github.com/ledgerwatch/erigon/issues) - -### コンセンサスクライアント {#consensus-clients} - -- [Prysm](https://discord.gg/prysmaticlabs) -- [Nimbus](https://discord.gg/nSmEH3qgFv) -- [Lighthouse](https://discord.gg/cyAszAh) -- [Teku](https://discord.gg/7hPv2T6) -- [Lodestar](https://discord.gg/aMxzVcr) - -また、[ノードの運用方法についてはこちら](/developers/docs/nodes-and-clients/run-a-node/)をご覧ください。 - -## よくある質問 {#faq} - -#### 間違ったウォレットに ETH を誤送信してしまいましたが、どうすれば良いですか? {#wrong-wallet} - -イーサリアムで送信されたトランザクションはもとに戻すことはできません。 間違ったウォレットに ETH を送信してしまった場合、残念ながら、これらの資金を回収する方法はありません。 イーサリアムは、中央組織、団体、個人により所有されていないため、誰もトランザクションを取り消すことができません。 そのため、必ず送信前に細心の注意を払って、ダブルチェックを行ってください。 - -#### イーサリアムのプレゼントはどのように請求すれば良いですか? {#giveaway-scam} - -イーサリアムをプレゼントするというものは、ETH を盗もうと企てる詐欺です。 うま過ぎる話しには騙されないでください。プレゼントを受け取ろうと、相手先のアドレスに ETH を送金してしまった場合、プレゼントはもらえず、自分の資金を回収することもできません。 - -[詐欺防止に関する詳細](/security/#common-scams) - -#### トランザクションが処理されず、止まってしまっていますがどうすれば良いですか? {#stuck-transaction} - -イーサリアムのトランザクションは、必要とされるよりも低いトランザクションフィーを提示した場合、ネットワークの需要により、トランザクションが保留になってしまうことがあります。 多くのウォレットは、トランザクションが処理されるよう、トランザクションフィーの金額を上げて、同一トランザクションを再送信するオプションがあります。 もしくは、自分のアドレスにトランザクションを送信し、保留中のトランザクションと同じノンス (nonce)を使用することで、保留中のトランザクションをキャンセルすることができます。 - -[MetaMask のトランザクションを高速化またはキャンセルする方法](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) - -[保留中のイーサリアムのトランザクションをキャンセルする方法](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) - -#### イーサリアムのマイニング方法を教えてください {#mining-ethereum} - -イーサリアムのマイニングはできなくなりました。 イーサリアムのプルーフ・オブ・ワークからプルーフ・オブ・ステークへの移行に伴い、マイニングは停止されています。 現在は、マイナーの代わりとなるバリデータが活躍しており、 バリデータはネットワークの保護のため ETH をステーキングし、ステーキング報酬を受け取ります。 - -#### ステーカー/バリデータになるにはどうすればいいですか? {#become-validator} - -バリデータになるには、イーサリアムのデポジットコントラクトに 32 ETH を投資し、バリデータノードを設定する必要があります。 詳細については、[ステーキングのページ](/staking)と[ステーキングランチパッド](https://launchpad.ethereum.org/)をご覧ください。 diff --git a/src/content/translations/ja/contributing/translation-program/translators-guide/index.md b/src/content/translations/ja/contributing/translation-program/translators-guide/index.md deleted file mode 100644 index 7e9f8c7a551..00000000000 --- a/src/content/translations/ja/contributing/translation-program/translators-guide/index.md +++ /dev/null @@ -1,293 +0,0 @@ ---- -title: 翻訳者ガイド -lang: ja -description: ethereum.org翻訳者向けの説明とヒント ---- - -# ethereum.org 翻訳スタイルガイド {#style-guide} - -ethereum.org 翻訳スタイルガイドには、翻訳者向けの最も重要なガイドライン、説明、ヒントを記載しています。ウェブサイトのローカライズに役立ててください。 - -本ドキュメントは一般的なガイドであり、特定の言語に固有のものではありません。 - -ご質問やご意見などございましたら、translations@ethereum までお気軽にお問い合わせください。または Crowdin で@ethdotorg にメッセージを送るか、 [Discord](https://discord.gg/ethereum-org)に参加して、#translation チャンネルでメッセージ、またはチームメンバーに直接連絡を取ることも可能です。 - -### Crowdin の使用 {#using-crowdin} - -Crowdin でプロジェクトに参加する方法と Crowdin オンラインエディタの使い方については、 [翻訳プログラムページ](/contributing/translation-program/#how-to-translate)に基本的な事項が紹介されています。 - -Crowdin の詳細とその高度な機能の一部を使用したい場合は、 [Crowdin のナレッジベース](https://support.crowdin.com/online-editor/)に Crowdin のすべての機能の詳細なガイドと概要が記載されています。 - -### メッセージの本質を捉える {#capturing-the-essence} - -ethereum.org コンテンツを翻訳するときは、直訳はしないでください。 - -翻訳がメッセージの本質を捉えていることが重要です。 特定のフレーズを言い換えたり、コンテンツを文字どおりに直訳せずに説明的な翻訳などです。 - -言語によっては、それぞれの異なる文法、規則、単語の順序があります。 翻訳の際は、翻訳文がどのように構成されているかに留意してください。 英語のソースを一語一句、直訳しないでください。文の構成が不自然になったり、読みにくくなることがあります。 - -ソースを直訳するのではなく、 一度文章全体を読んで翻訳する言語の文法に合うように変えてください。 - -### フォーマルかインフォーマルか {#formal-vs-informal} - -常に、すべての訪問者に対して、丁寧かつ適切なフォーマルな形式を使います。 - -一般的な丁寧な文章を使用することで、翻訳文が非公式なものや攻撃的に捉えられず、訪問者の年齢や性別にかかわらず適用できます。 - -ほとんどのインドヨーロッパ語とアフロアジア語は、男性と女性を区別する性別固有の二人称代名詞を使用します。 ユーザーを指す場合、または所有代名詞を使用する場合、訪問者の性別を想定しないようにします。これは、訪問者が自分のジェンダーをどのように認識するかに関わらず、フォーマルな言葉は汎用でき、一貫しているためです。 - -### シンプルで明確な語彙と意味 {#simple-vocabulary} - -目標は、ウェブサイト上のコンテンツをできるだけ多くの人に理解してもらうことです。 - -短く簡単な用語を使用することによって、この目的を容易に達成できる場合が多いです。 ある単語に対して、同じ意味を持つ複数の翻訳がある場合、 最も短い単語で、意味を明確に反映しているものを選ぶようにします。 - -### 表記方法 {#writing-system} - -ethereum.org は多くの言語で利用可能で、ラテンではない翻訳言語で表記します。 - -すべてのコンテンツは、翻訳言語の適切な表記方法を使って翻訳し、ラテン文字を使用した単語を含めないでください。 - -コンテンツを翻訳する際には、翻訳に一貫性があり、ラテン文字が含まれていないことを意識してください。 - -よくある誤解には、イーサリウムを常に「Ethereum」とラテン文字で記載しなければならないというものがあります。 これは多くの場合誤りであり、日本語の場合は「イーサリアム」(他の言語では中国語「以太坊」 、アラビア語「إيثيريوم」など)と記載します。 - -**上記は、原則として固有名詞が翻訳されるべきでない言語には該当しません。** - -### ページのメタデータの翻訳 {#translating-metadata} - -ページによっては、「title」、「lang」、「description」、「sidebar」などのメタデータを含むものもあります。 - -Crowdin に新しいページをアップロードする際、翻訳者が翻訳すべきではないコンテンツは非表示にしています。つまり、Crowdin の翻訳者に表示される、これらのメタデータはすべて翻訳する必要があります。 - -ソースが「en」の文字列を翻訳する場合は特に注意してください。 これは、ページで利用可能な言語を表し、あなたの言語の [ISO 言語コード](https://www.andiamo.co.uk/resources/iso-language-codes/)に変更する必要があります(日本語の場合は「ja」)。 これらの文字列は翻訳先の言語に固有の文字を書くのではなく、ラテン文字を使う必要があります。 - -自分の言語コードが不明な場合は、 Crowdin で翻訳メモリを確認するか、Crowdin のオンラインエディタのページの URL で言語コードを確認することができます。 - -最も広く使われている言語コードの例: - -- アラビア語- ar -- 簡体字中国語 - zh -- フランス語 - fr -- ヒンディー語 - hi -- スペイン語 - es - -### 外部記事のタイトル {#external-articles} - -外部記事のタイトルを含む文字列もあります。 デベロッパー向けドキュメントページのほとんどには、外部記事へのリンクが含まれています。 訪問者が自分の言語でページを閲覧する際、より一貫性のあるユーザーエクスペリエンスとなるよう、記事が書かれている言語に関係なく、タイトルを翻訳する必要があります。 - -これらの文字列がどのように表示されるか、またこれらの識別方法を、以下に例として記載します(外部記事へのリンクは、主にページの下部の「参考文献」にあります)。 - -![外部記事のタイトルsidebar.png](./article-titles-in-sidebar.png) ![エディタの外部記事のタイトルeditor.png](./article-titles-in-editor.png) - -### Crowdin の警告 {#crowdin-warnings} - -Crowdin には、間違いを防ぐための翻訳者に警告する機能が組み込まれています。 ソースにあるタグがターゲットに入っていない、翻訳するべきではない要素を翻訳、複数の連続したスペース、文末の句読点がない場合など、翻訳を保存する前に Crowdin が自動的に警告します。 このような警告が表示された場合は、翻訳に戻り、警告メッセージを再確認してください。 - -**これらの警告は、通常は何かが間違っている、またはソーステキストの重要な部分が欠落していることを意味するため、無視しないでください。** - -Crowdin 警告の例(タグの追加漏れ):![Crowdinの警告例](./crowdin-warning-example.png) - -### タグとコードスニペット {#dealing-with-tags} - -多くのソースコンテンツにはタグと変数が含まれており、Crowdin エディタでは黄色にハイライト表示されます。 これらは異なる機能を提供し、それぞれ正しく翻訳する必要があります。 - -**Crowdin の設定** - -タグを簡単に管理し、ソースから直接コピーできるように、Crowdin のエディタで下記のように設定を変更することをお勧めします。 - -1. 設定を開きます![エディタで設定を開く方法](./editor-settings.png) - -2. [HTML tags displaying]までスクロールします - -3. [Hide]を選択します ![[Hide]を選択](./hide-tags.png) - -4. [Save]をクリックします - -この設定を選択すると、タグがフルで表示されなくなり、番号で表示されます。 翻訳時にこのタグをクリックすると、自動で翻訳フィールドにタグをコピーできます。 - -**リンク** - -ethereum.org または他のウェブサイトのページへのフルリンクがある場合があります。 - -リンクはソースと全く同じである必要があります。変更や翻訳はしないでください。 リンクの翻訳、変更、またはバックスラッシュ(/)の削除などの一部の変更だけでも、そのリンクは壊れ、機能しなくなります。 - -リンクを処理する場合、ソースから直接コピーするのが確実です。タグをクリックするか、\[Copy Source\] (Alt+C)を使用してください。 - -![リンクの例link.png](./example-of-link.png) - -また、リンクはタグ形式でソーステキストにも表示されます(例:<0>)。 タグにカーソルを合わせると、エディタはフルコンテンツが表示されます。これらのタグはリンクを指定している場合があります。 - -ソースからリンクをコピーして、タグの順序を変更しないことが非常に重要です。 - -タグの順序が変更されると、タグが表すリンクが壊れてしまいます。 - -![タグに囲まれたリンク例tags.png](./example-of-links-inside-tags.png) - -**タグおよび変数** - -ソーステキストには多くの異なる種類のタグが含まれており、これらは必ず変更せずに、ソースからコピーしてください。 上記と同様に、翻訳文のこれらのタグの順序もソースと同じである必要があります。 - -タグは常に開始タグと終了タグのペアです。 ほとんどの場合、タグの開始と終了の間のテキストは、翻訳する必要があります。 - -例: ``Decentralized`` - -`` - _テキストを太字にする開始タグ_ - -Decentralized - _翻訳するテキスト_ - -`` - _終了タグ_ - -![strongタグの例tags.png](./example-of-strong-tags.png) - -コードスニペットには、翻訳すべきではないコードが含まれているため、他のタグとは少し違ったアプローチをとります。 - -例: ``nonce`` - -`` - _コードスニペットの開始タグく_ - -nonce - _翻訳しないテキスト_ - -`` - _終了タグ_ - -![コードスニペットの例code snippets.png](./example-of-code-snippets.png) - -ソーステキストに数値のみの短縮タグも含まれている場合があり、そのタグの意味がすぐには分からない場合があります。 これらのタグにカーソルを合わせると、タグの意味や機能を確認できます。 - -以下の例では、 <0> タグにカーソルを合わせると、 ``が表示され、コードスニペットであることが分かります。そのため、これらのタグ内のテキストは翻訳しないでください。 - -![不明なタグの例tags.png](./example-of-ambiguous-tags.png) - -### 短縮語/略語 {#short-vs-full-forms} - -本ウェブサイトでは dapp、NFT、DAO、DeFi など多くの略語が使用されています。 これらの略語は英語で一般的に使用されており、ウェブサイトの多くの訪問者はそれらが何を意味するのか知っています。 - -これらの用語は、他の言語で確立された翻訳がないことが多いため、省略していない原語をフルで翻訳し、英語の略語を括弧で追加します。 - -括弧で記載する略語は翻訳しないでください。ほとんどの人は見慣れ無いでしょうし、翻訳されると多くの訪問者にとって、逆に意味をなさなくなってしまいます。 - -「dapp」の翻訳例: - -- Decentralized application (dapp) → _非省略形の用語の翻訳(英語の略語)_ - -### 確立された翻訳のない用語 {#terms-without-established-translations} - -いくつかの用語は、他の言語では確立された用語がない場合があり、元の英語の用語の方が広く知られていることがあります。 このような用語には、主に、proof-of-work、proof-of-stake、Beacon Chain、staking などを含む比較的新しい概念のものが含まれます。 - -英語版は他の言語でも使われているため、これらの用語を翻訳すると不自然さを感じることがありますが、 翻訳することを強く推奨します。 - -それらを翻訳するときは、クリエイティブな翻訳、説明的な翻訳、もしくは単に文字通りに翻訳します。 - -**大半の用語を英語ではなく、各言語に翻訳するのは、 イーサリアムと関連技術がより多くの人々に使われるにつれて、これらの新しい用語が将来、より広く普及するであろうという考えによるものです。 世界中のより多くの人々にイーサリアムを使用してもらうため、たとえ造語であっても可能な限り多くの言語で理解できる用語を提供する必要があります。** - -### ボタンと CTA {#buttons-and-ctas} - -本ウェブサイトには多数のボタンが含まれており、他のコンテンツとは異なる翻訳が必要です。 - -ボタンのテキストは、ほとんどの文字列同様、コンテキストのスクリーンショット、またはエディタのコンテキストで確認することができます。(エディタのコンテキストに「button」と記載)。 - -ボタンの翻訳は、書式の不一致を防ぐためにできるだけ短くする必要があります。 さらに、ボタンの翻訳は、コマンドやリクエストを示すものでなければなりません。 - -![ボタンを見つける方法button.png](./how-to-find-a-button.png) - -### 包括性を踏まえた翻訳 {#translating-for-inclusivity} - -ethereum.org には、世界中から、さまざまな背景を持った訪問者が来ます。 そのため、ウェブサイトは中立的、かつ非排他的、すべての人を歓迎するものである必要があります。 - -これの重要な側面は、ジェンダーの中立性です。 フォーマルな呼称を用いること、訳語に性別を特定するような言葉の使用は、避けてください。 - -もうひとつの包括性は、国や人種、地域に特有したものではなく、グローバルな読者に向けて翻訳しようとすることです。 - -最後に、すべての訪問者と年齢層に適している必要があります。 - -## 言語別の翻訳 {#language-specific-translations} - -翻訳するときは、ソースからコピーするのではなく、翻訳言語の文法ルール、規定、書式に従うことが重要です。 ソースは英語の文法ルールと規則に従っており、他の多くの言語には当てはまりません。 - -自分の言語のルールを意識し、それに応じて翻訳する必要があります。 サポートが必要な際は、ご連絡ください。あなたの翻訳言語で、これらがどのように使われるべきかについて調べる上でサポートをします。 - -特に注意すべき事例: - -### 句読点、書式設定 {#punctuation-and-formatting} - -**大文字表記** - -- 大文字表記は、言語により大きな違いがあります。 -- 英語では、タイトルや名前、月日、言語名、休日などですべての単語を大文字にするのが一般的です。 他の多くの言語では大文字・小文字の規則が異なるため、これは必ずしも文法的に正しくありません。 -- 人称代名詞や名詞、特定の形容詞を大文字にするルールがある言語もありますが、これらは英語では必ずしも大文字になりません。 - -**スペース** - -- 各言語のスペースの使用については、正書法に従ってください。 スペースはあらゆるところで使われているため、最も目立つものであり、またスペースは最も誤りが多い点の一つです。 -- 英語と他の言語のスペースの使用の一般的な違い: - - 単位と通貨(例: USD、EUR、kB、MB)の前のスペース - - 特殊記号の前のスペース(例:°C、°F) - - 句読点の前のスペース、特にエリプシス(…)の前のスペース - - スラッシュ(/)の前後のスペース - -**箇条書き** - -- 箇条書きに関して、言語により多様で複雑な規則があります。 これらは英語とは大幅に異なる場合があります。 -- ある言語では新しい行の最初の単語を大文字、またその他の言語では新しい行は小文字で始める必要があります。 各行の長さに応じて、箇条書きの大文字に関するルールも多くあります。 -- 同様のことが行項目の句読点にも当てはまります。 箇条書きの終止符は言語により、句点(**。**)、読点(**、**)、セミコロン(**;**)である場合があります。 - -**引用符** - -- 言語により、引用符が異なります。 ソースから英語の引用符をコピーするだけでは誤りとなる場合があります。 -- 最も一般的な種類の引用符には以下のものがあります。 - - „サンプルテキスト“ - - ‚サンプルテキスト’ - - »サンプルテキスト« - - “サンプルテキスト” - - ‘サンプルテキスト’ - - «サンプルテキスト» - -**ハイフンとダッシュ** - -- 英語では、単語間や単語の異なる部分を結合するためにハイフン(-)が使用されます。対して、範囲を示したり、中断を入れるためにダッシュ(-)が使用されます。 -- 言語により、ハイフンとダッシュの使用ルールが異なります。 - -### フォーマット {#formats} - -**数字** - -- 数字の表記に関する言語による主な違いは、小数と 3 桁の区切りに使用される区切り文字です。 千の単位の場合、ピリオド、カンマ、スペースが使われることがあります。 同様に、小数点を使用する言語もあれば、小数点にコンマを使用する言語もあります。 - - 数字の表記の例: - - 英語 ー **1,000.50** - - スペイン語 ー **1.000,50** - - フランス語 ー **1,000,50** -- 数字を翻訳する際、気を付けるべきもう一つ重要な事項は、パーセント記号です。 **100%**、**100 %**または**%100**と異なる表記方法があります。 -- 最後に、マイナスの数字は言語により、 -100、100-、(100)、または[100]と表記方法が異なります。 - -**日付** - -- 日付の翻訳は、言語により、いくつかの検討事項や違いがあります。 日付のフォーマット、区切り文字、大文字、先頭のゼロなどです。 全角と半角の違いもあります。 - - 日付のフォーマット例: - - イギリス英語(dd/mm/yyyy) - 1st January, 2022 - - アメリカ英語(mm/dd/yyyy) - January 1st, 2022 - - 中国語(yyyy-mm-dd) - 2022 年 1 月 1 日 - - フランス語(dd/mm/yyyy) - 1er janvier 2022 - - イタリア語(dd/mm/yyyy) - 1o gennaio 2022 - - ドイツ語(dd/mm/yyyy) - 1. Januar 2022 - -**通貨** - -- 通貨の翻訳は、フォーマット、規則、換算により困難な場合があります。 原則として、通貨はソースと同じにしてください。 読者が分かりやすいよう、括弧でローカルの通貨と換算した金額を追加しても構いません。 -- 通貨の表記に関する言語間の主な違いは、記号の位置、小数点または小数点にコンマを使用、スペース、および記号または略語での表記があります。 - - 記号の位置: $100または100$ - - 小数点にコンマを使用、または小数点: 100,50$または100.50$ - - スペース: 100$または 100 $ - - 記号または略語: 100 $または 100 USD - -**測定単位** - -- 原則として、単位はソースと同じにします。 あなたの国が別の単位を使用している場合は、括弧内に変換した数値と単位を記載することができます。 -- 測定単位以外にも、言語によるこれらの単位の表記方法の違いについても注意することも重要です。 主には、数字と単位のスペースが言語により異なります。 例: 100kB と 100 kB、 50ºF と 50 ºF など - -### まとめ {#conclusion} - -ethereum.org を翻訳することでイーサリアムのさまざまな側面について学ぶことができます。 - -翻訳するときは、慌てないようにしてください。 また気負わず、気楽に楽しむようにしてください。 - -ウェブサイトをより多くの方にご利用いただけるよう、翻訳プログラムにご貢献いただき、ありがとうございます。 イーサリアムコミュニティはグローバルです。あなたをコミュニティの一員として迎え入れることを嬉しく思います。 diff --git a/src/content/translations/ja/dao/index.md b/src/content/translations/ja/dao/index.md deleted file mode 100644 index 81bcb4fa334..00000000000 --- a/src/content/translations/ja/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: 分散型自律組織(DAO) -description: イーサリアムにおける分散型自律組織(DAO)の概要 -lang: ja -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: 提案に対する分散型自律組織(DAO)投票 -summaryPoint1: 中央集権的な制御がない、メンバー所有のコミュニティ -summaryPoint2: インターネットの見知らぬ人と協力する安全な方法 -summaryPoint3: 特定の目的に資金を委ねるのに安全な場所 ---- - -## 自律分散組織(DAO)とは {#what-are-daos} - -分散型自律組織(DAO)とは、共通の目的のために集団が共同で所有し、ブロックチェーンで管理された組織です。 - -分散型自律組織(DAO)は資金や運営の管理において、誰かを信用することなく、世界中の同じ志を持つ人々と共に働くことを可能します。 気まぐれに資金を使い込む CEO はいませんし、帳簿を操作できる CFO もいません。 誰かを依存・信用するのではなく、ブロックチェーンベースのルールがコード化され、組織の運営や資金の使われ方を定義しています。 - -グループの承認なしには誰もアクセスできない資金が組み込まれています。 意思決定は、提案と投票によって行われ、組織内の誰もが発言権を持つことが保障されています。また、何事においてもオンチェーン上で行われるため透明性が確保されています。 - -## 分散型自律組織(DAO)が必要な理由 {#why-dao} - -組織を誰かと一緒に組織を立ち上げるには、資金やお金が関わるため、相手との信頼関係が必要になります。 しかし、インターネット上でしか交流のない人を信用するのは難しいと思います。 分散型自律組織(DAO)では、グループ内の他の誰かを信用する必要はなく、100%透明で誰でも検証可能なコードだけを信用すれば大丈夫です。 - -これにより、グローバルなコラボレーションやコーディネーションに新たな可能性が広がりました。 - -### 比較 {#dao-comparison} - -| 分散型自律組織(DAO) | 従来の組織 | -| -------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -| 通常はフラットな組織で、完全に民主化 | 通常は階層的 | -| 変更を実行するには、メンバーによる投票が必要 | 組織構造によっては、単独の当事者から変更が要求されることがあり、または投票が行われる場合がある | -| 投票は集計され、結果は信頼できる仲介者なしに自動的に実行される | 投票が可能な場合、投票は内部で集計され、投票結果は手動での処理が必要 | -| 提供されるサービスは、自動的に分散化された方法で処理される(例えば慈善資金の分配) | 人間による処理、または集中管理された自動化を必要とし、改ざんされるおそれがある | -| すべてのアクティビティは透明で完全に公開 | 通常、アクティビティは非公開で、一般には非公開 | - -### 分散型自律組織(DAO)の事例 {#dao-examples} - -もう少し理解を深められるように、分散型自律組織(DAO)の使用方法についていくつか例をご紹介します。 - -- 慈善事業 – 世界中の誰からでも寄付を受け付け、資金の使い道を投票にて決定可能。 -- 共同所有 – 物理的またはデジタル資産を購入し、メンバーは資産の活用方法について投票できる。 -- ベンチャーキャピタルと助成 - 投資資金をプールし、投票により支援先ベンチャーを選択、ベンチャーファンドを作成可能。 返済金は後に分散型自律組織(DAO)のメンバー間で再配分できる。 - -## 分散型自律組織(DAO)の仕組み {#how-daos-work} - -組織のルールが定義され、グループの資産を保有するスマートコントラクトが、分散型自律組織(DAO)のバックボーンです。 このスマートコントラクトがイーサリアム上で稼働し始めると、投票以外では誰もルールを変更できません。 もし誰かがコードのルールやロジックでカバーされていないことを試みても失敗に終わります。 また、資産はスマートコントラクトによって定義されているため、グループの承認なしには誰も組織の資金を使うことができません。 つまり、分散型自律組織(DAO)は中央集権を必要とせず、 グループが集合的に決定を下し、投票が可決されると支払いが自動的に承認されます。 - -これが可能なのは、スマートコントラクトがイーサリアム上で稼働すると、改ざんができないためです。 すべてが公開されているので、コード(分散型自律組織のルール)を誰にも気づかれずに、変更することはできません。 - - - スマートコントラクトの詳細 - - -## イーサリアムと分散型自律組織(DAO) {#ethereum-and-daos} - -イーサリアムは、次の理由から分散型自律組織(DAO)の完璧な基盤となります。 - -- イーサリアム独自のコンセンサス形成は分散化されており、イーサリアムネットワークは組織が信頼できるまでに確立されている。 -- スマートコントラクトのコードは、一度実行されると所有者であっても修正できないため、 分散型自律組織(DAO)はプログラムされたルールで稼働する。 -- スマートコントラクトは、資金の送受信が可能。 これができないと、グループ資金を管理する信頼できる仲介者が必要となる。 -- イーサリアムのコミュニティは、競争的なものではなく、むしろ協調的であることが証明されており、最善の方法やサポートシステムが迅速に生みだされている。 - -## 分散型自律組織(DAO)ガバナンス {#dao-governance} - -分散型自律組織(DAO)のガバナンスには、投票や提案の仕組みなど様々な考慮事項があります。 - -### デリゲーション(委任) {#governance-delegation} - -デリゲーション(委任)とは、分散型自律組織版の議会制民主主義のようなものです。 トークン保有者は、プロトコルを管理し、最新情報を入手することをコミットする立候補者に投票権を委任します。 - -#### 有名な事例 {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) – ENS 保有者は、自分たちの代表として、コミュニティメンバーに投票を委任できます。 - -### 自動トランザクションガバナンス {#governance-example} - -多くの分散型自律組織(DAO)では、メンバーの賛成票が定足数を満たせば自動的にトランザクションが実行されます。 - -#### 有名な事例 {#governance-example} - -[Nouns](https://nouns.wtf) – Nouns DAO では、定足数を満たし、過半数が賛成票であれば、創設者が拒否権を行使しない限り、トランザクションは自動的に実行されます。 - -### マルチシグガバナンス {#governance-example} - -何千人もの投票権のあるメンバーが分散型自律組織(DAO)に在籍する一方、資金は 5 ~ 20 人のアクティブなメンバーが共有するウォレットに保有されている場合があります。これらのメンバーは信用されており、通常は個人情報が公開されています(コミュニティに公的な身元が公開)。 投票の結果をもって、マルチシグの署名者はコミュニティの意思を実施します。 - -## 分散型自律組織(DAO)法 {#dao-laws} - -1977 年にワイオミング州は、起業家を保護し、責任を有限にする合同会社(LLC)を制定しました。 近年では、ワイオミング州は分散型自律組織(DAO)の法的地位を確立する法律を制定し、パイオニアとなっています。 現在、ワイオミング州、バーモント州、ヴァージン諸島が、何らかの形の分散型自律組織(DAO)法があります。 - -#### 有名な事例 {#law-example} - -[CityDAO](https://citydao.io) – CityDAO は、ワイオミング州の分散型自律組織(DAO)法を利用して、イエローストーン国立公園近くの 40 エーカーの土地を購入しました。 - -## 分散型自律組織(DAO)のメンバーシップ {#dao-membership} - -分散型自律組織(DAO)のメンバーシップにはいくつかのモデルがあります。 メンバーシップにより、投票の仕組みや分散型自律組織の他の重要な部分を決定します。 - -### トークンベースのメンバーシップ {#token-based-membership} - -使用されるトークンにもよりますが、通常は完全にパーミッションレス型です。 ほとんどの場合、これらのガバナンストークンは、分散型取引所でパーミッションレスで取引できます。 それ以外のトークンは、流動性もしくはその他の「プルーフ・オブ・ワーク」を提供することで獲得する必要があります。 いずれにせよ、トークンの保持により投票権が付与されます。 - -_一般的には、広範な分散型プロトコルやトークン自体を管理するために使用されます。_ - -#### 有名な事例 {#token-example} - -[MakerDAO](https://makerdao.com) – MakerDAO のトークンである MKR は、分散型取引所で入手可能で、誰でも Maker プロトコルの将来についての投票権を購入により得ることができます。 - -### シェアベースのメンバーシップ {#share-based-membership} - -シェアベースの分散型自律組織(DAO)は、よりパーミッション型ではありますが、かなりオープンです。 分散型自律組織(DAO)への参加希望者は、トークンや作品といった何らかの価値のある物を提供することで、自分自身の参加を提案します。 シェアは、直接投票権と所有権を表します。 メンバーはいつでも、自分の保有する資産の持分を持って退会できます。 - -_一般的には、慈善団体やワーカーズ・コレクティブ、投資クラブなど、より密接な関係を持つ人間が中心となる組織に使われています。 また、プロトコルやトークンも管理できます。_ - -#### 有名な事例 {#share-example} - -[MolochDAO](http://molochdao.com/) - MolochDAO は主にイーサリアムプロジェクトの資金調達を行っています。 メンバーになるには、提案が必要となります。この提案によって、あなたが助成先候補に関して、十分な情報に基づいて判断できるだけの必要な専門知識と資本を持っているかどうかが評価されます。 オープン市場で権利を購入して、この分散型自律組織(DAO)に参加することはできません。 - -### レピュテーション(評価・評判)ベースのメンバーシップ {#reputation-based-membership} - -レピュテーション(評価・評判)とは、分散型自律組織(DAO)における参加証明と投票権の付与を表します。 トークンやシェアベースのメンバーシップとは異なり、レピュテーションベースの分散型自律組織(DAO)は所有権をコントリビューターに譲渡しません。 レピュテーションは購入、移管、または委任できず、分散型自律組織メンバーは参加を通じてレピュテーションを構築する必要があります。 オンチェーン投票はパーミッションレスで、メンバー候補は分散型自律組織(DAO)への参加を自由に提案でき、貢献の対価としてレピュテーションやトークンを受け取ることを要求することができます。 - -_主にプロトコルや分散型アプリ(Dapp)の分散型開発や分散型ガバナンスに利用されていますが、慈善団体、ワーカーズ・コレクティブ、投資クラブなど、多様な組織にも向いています。_ - -#### 有名な事例 {#reputation-example} - -[DXdao](https://DXdao.eth.link) - DXdao は、2019 年から分散型プロトコルやアプリケーションを構築し統治するグローバル・ソブリン団体です。 レピュテーションに基づくガバナンスとホログラフィック・コンセンサスを活用して資金を調整・管理しています。つまり、誰かが金銭的な手段を使って、DXdao の今後に影響をおよぼすことができません。 - -## DAO に参加する/DAO を立ち上げる {#join-start-a-dao} - -### 分散型自律組織(DAO)への参加 {#join-a-dao} - -- [イーサリアムコミュニティ分散型自律組織(DAO)](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [DAOHaus の分散型自律組織(DAO)リスト](https://app.daohaus.club/explore) -- [Tally.xyz の分散型自律組織(DAO)リスト](https://www.tally.xyz) - -### 分散型自律組織(DAO)を始める {#start-a-dao} - -- [DAOHaus で分散型自律組織(DAO)を招集](https://app.daohaus.club/summon) -- [Tally で Governor DAO を始める](https://www.tally.xyz/add-a-dao) -- [Aragon による分散型自律組織(DAO)を作成](https://aragon.org/product) -- [コロニーを始める](https://colony.io/) -- [DAOstack のホログラフィック・コンセンサスで DAO を作成](https://alchemy.daostack.io/daos/create) - -## 参考文献 {#further-reading} - -### 分散型自律組織(DAO)の関連記事 {#dao-articles} - -- [分散型自律組織(DAO)とは](https://aragon.org/dao) – [Aragon](https://aragon.org/) -- [DAO ハンドブック](https://daohandbook.xyz) -- [分散型自律組織(DAO)](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) -- [分散型自律組織(DAO)とは、およびその目的](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) -- [分散型自律組織(DAO)のデジタルコミュニティの作成方法](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) -- [分散型自律組織(DAO)とは](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) -- [ホログラフィック・コンセンサスとは](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) -- [分散型自律組織(DAO)とは企業ではなく、分散型の自律組織 – Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) -- [分散型自律組織(DAO)、分散型自律企業(DAC)、分散型アプリケーション(DA)など: 不完全な用語集](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [イーサリアムブログ](https://blog.ethereum.org) - -### 動画 {#videos} - -- [仮想通貨における分散型自律組織(DAO)とは](https://youtu.be/KHm0uUPqmVE) -- [分散型自律組織(DAO)で街はつくれるのか?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/src/content/translations/ja/decentralized-identity/index.md b/src/content/translations/ja/decentralized-identity/index.md deleted file mode 100644 index 6eea599d14f..00000000000 --- a/src/content/translations/ja/decentralized-identity/index.md +++ /dev/null @@ -1,184 +0,0 @@ ---- -title: 分散型アイデンティティ -description: 分散型アイデンティティとは、またこれが重要な理由 -lang: ja -template: use-cases -emoji: ":id:" -sidebarDepth: 2 -image: ../../../../assets/eth-gif-cat.png -summaryPoint1: 身元を証明するIDは中央集権的に発行、更新、管理されてきた従来のアイデンティティ制度 -summaryPoint2: 分散型アイデンティティにより、中央集権的なサードパーティへの依存から脱却 -summaryPoint3: 暗号技術により、今や再び自分自身のIDとアテステーションを発行、保持、管理することが可能 ---- - -身分を証明するアイデンティティは、今日の生活のほぼすべての側面の基盤となっています。 オンラインサービスの利用、銀行口座の開設、選挙での投票、不動産の購入、雇用の確保、これらすべてにおいて身分証明が必要です。 - -しかし、従来の身分証明書管理システムは、ID と[アテステーション](#are-attestations)を発行、保有、管理する中央管理型の仲介機関に長く依存してきました。 つまり、自分の身元証明に関する情報を自分自身で管理したり、誰が個人を特定できる情報(PII)にアクセスできるか、またこれらの機関がどのくらいアクセス権を持っているかを決めることはできないということです。 - -こうした問題を解決するために、イーサリアムのようなパブリックブロックチェーン上に分散型アイデンティティシステムを構築しています。 分散型アイデンティティでは、自分の身元証明に関する情報を管理することができます。 サービスプロバイダーや政府などの中央機関に依存することなく、*自分自身で*身分証明を作成し、本人であるというアテステーションを主張・保持することができます。 - -## アイデンティティとは? {#what-is-identity} - -アイデンティティとは、自分が自分であるという自覚で、その人が誰であるかということを表す性質や特徴により定義されます。 アイデンティティとは、*個*であること、すなわち一人の確たる人間存在であることを意味します。 またアイデンティティは、組織や行政機関などのように人間ではない存在を指すこともあります。 - -## ID とは {#what-are-identifiers} - -身分を証明する ID とは、特定のアイデンティティを指し示す情報のことです。 一般的な ID には、次のようなものがあります。 - -- 名前 -- 社会保障番号、納税者番号 -- 携帯電話番号 -- 生年月日と出生地 -- 電子メールアドレス、ユーザー名、アバターなどのデジタル身分証明書 - -上記のような例では、ID は中央機関や組織により発行、保持、管理されています。 氏名の変更には政府からの、ユーザー名の変更にはソーシャルメディアからの承認が必要です。 - -## アテステーションとは {#what-are-attestations} - -アテステーションとは、ある存在が別の存在に対して行われる証明を意味します。 例えばアメリカに住んでいる場合、車両管理局(ある存在)が、あなた(別の存在)が合法的に車の運転を許可されているということを証明するために運転免許証を発行します。 - -アテステーションは身分を証明する ID とは異なります。 アテステーションには、_特定のアイデンティティを参照するための ID を含み_、また当該アイデンティティに関連する属性についても証します。 つまり、運転免許証には身分を証明する ID(氏名、生年月日、住所)が含まれ、同時に、運転できるという法的権利(属性)に関しても証明します。 - -### 分散型 ID とは {#what-are-decentralized-identifiers} - -氏名やメールアドレスといった従来の ID は、政府やメールプロバイダーといったサードパーティに依存します。 分散型 ID (DID)は、中央集権組織により発行、管理、制御されないという点で異なります。 - -分散型 ID は、自分自身で発行、保有、管理することができます。 [イーサリアムアカウント](/developers/docs/accounts/)は、分散型 ID の一例です。 誰からの許可も不要で、また中央台帳に保存する必要もなく、好きなだけアカウントを作成することができます。 - -分散型 ID は、分散型台帳(ブロックチェーン)やピアツーピアネットワークに格納されるため、 分散型 ID は[世界的に一意で、高い可用性で解決可能で、暗号技術で検証可能](https://w3c-ccg.github.io/did-primer/)なものです。 分散型 ID は、人、組織、政府機関など、さまざまなエンティティに関連付けることができます。 - -## 分散型 ID を実現する技術 {#what-makes-decentralized-identifiers-possible} - -### 1. 公開鍵インフラストラクチャ(PKI) {#public-key-infrastructure} - -公開鍵インフラストラクチャ(PKI)とは、あるエンティティに対して[公開鍵](/glossary/#public-key)と[秘密鍵](/glossary/#private-key)を生成する情報セキュリティのことです。 公開鍵の暗号技術は、ブロックチェーンネットワークにおいて、ユーザーの身分を認証し、デジタル資産の所有権を証明するために使用されます。 - -イーサリアムアカウントなどの分散型 ID には、公開鍵と秘密鍵があるものがあります。 公開鍵はアカウントのコントローラを識別し、秘密鍵はこのアカウントのメッセージに署名および復号化します。 公開鍵インフラストラクチャ(PKI)は、[暗号署名](https://andersbrownworth.com/blockchain/public-private-keys/)を使用し、すべての主張を検証し、エンティティを認証し、なりすましや偽の ID の使用を防ぎます。 - -### 2. 分散型データストア {#decentralized-datastores} - -ブロックチェーンは、検証可能なデータレジストリとして、オープンかつ信頼性の高い、分散型の情報リポジトリとして機能します。 パブリックブロックチェーンにより、中央集権的なレジストリに ID を保存する必要がなくなります。 - -分散型 ID の正当性を確認する必要がある場合は、ブロックチェーンで関連する公開鍵を調べることができます。 ここが、サードパーティによる認証を必要とする従来の ID とは異なる点です。 - -## 分散型アイデンティティを可能にする分散型 ID とアテステーション {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} - -分散型アイデンティティとは、アイデンティティに関連する情報は自己管理され、プライベートでポータブルであるべきという考え方であり、分散型 ID とアテステーションにより成り立っています。 - -分散型アイデンティティの文脈では、アテステーション([検証可能な資格情報](https://www.w3.org/TR/vc-data-model/))とは、改ざんできず、暗号学的に検証できる発行者の主張です。 エンティティ(組織など)が発行するすべてのアテステーション、すなわち検証可能な資格情報は、その分散型 ID (DID)と紐づけられます。 - -分散型 ID (DID)はブロックチェーンに保存されるため、発行者の DID をイーサリアム上で照合すれば、誰でもアテステーションの正当性を確認することができます。 基本的に、イーサリアムのブロックチェーンは、特定のエンティティに関連する分散型 ID の検証を可能にするグローバルディレクトリのように機能します。 - -分散型 ID は、アテステーションが自己管理でき、検証可能である理由となります。 発行者が存在しなくなったとしても、ID の保有者は常にアテステーションの出所と正当性を証明することができます。 - -また、分散型 ID は個人情報のプライバシーを保護する上でも非常に重要になります。 例えば、個人がアテステーション(運転免許証)を提出する場合、検証者は証明書の情報の正当性を確認する必要はありません。 検証者は、アテステーションの正当性の暗号学的な保証と、発行組織のアイデンティティだけで証明書の正当性を判断できます。 - -## 分散型アイデンティティにおけるアテステーションの種類 {#types-of-attestations-in-decentralized-identity} - -イーサリアムベースの分散型アイデンティティにおいては、アテステーション情報をどのように保存し、取得するかは、従来のアイデンティティ管理とは異なります。 ここでは、分散型 ID システムにおけるアテステーションの発行、保管、検証のためのさまざまなアプローチの概要を説明します。 - -### オフチェーン・アテステーション {#off-chain-attestations} - -アテステーションをオンチェーンで保存する場合の懸念点として、個人が秘密にしたい情報が含まれている可能性があることが挙げられます。 イーサリアムのブロックチェーンはパブリックな性質を持っているため、個人情報が含まれるアテステーションを保存することは望ましくありません。 - -解決策としては、ユーザーがオフチェーンでデジタルウォレットに保有し、オンチェーンで保存されている発行者の分散型 ID (DID)で署名されたアテステーションを発行することです。 これらのアテステーションは[JSON ウェブトークン](https://en.wikipedia.org/wiki/JSON_Web_Token)としてエンコードされ、発行者のデジタル署名を含んでいるため、オフチェーンでの主張を簡単に検証することができます。 - -ここで、仮想シナリオを用いてオフチェーン・アテステーションの説明します。 - -1. 大学(発行者)は証明書(デジタル学術証明書)を生成し、大学の鍵で署名し、ボブ(アイデンティティ所有者)に発行します。 - -2. ボブは就職活動で、自分の学歴を雇用主に証明するため、モバイルウォレットからアテステーションを共有します。 企業(検証者)は、発行者の分散型 ID (イーサリアム上の公開鍵)を確認することで、アテステーションの正当性を確認することができます。 - -### 永続的なアクセスによるオフチェーン・アテステーション {#offchain-attestations-with-persistent-access} - -この方式のアテステーションでは、JSON ファイルに変換され、オフチェーンに保存されます(理想的には、IPFS や Swarm などの [分散型クラウドストレージ](/developers/docs/storage/) プラットフォーム上)。 ただし、JSON ファイルの[ハッシュ](/glossary/#hash)はオンチェーンに保存され、オンチェーンレジストリ経由で分散型 ID にリンクされています。 紐づけられる分散型 ID は、アテステーションの発行者または受取人のどちらかのものであることがあります。 - -このアプローチにより、アテステーションはブロックチェーンベースの永続性を得て、主張する情報を暗号化し検証可能な状態に保つことができます。 また、秘密鍵の保有者は情報を復号化できるため、選択的に開示することも可能です。 - -### オフチェーン・アテステーション {#onchain-attestations} - -オンチェーン・アテステーションは、イーサリアムのブロックチェーン上の[スマートコントラクト](/developers/docs/smart-contracts/)に保持されます。 スマートコントラクト(レジストリとして機能)は、アテステーションを該当するオンチェーン分散型 ID 公開鍵)にマッピングします。 - -ここでは、オンチェーン・アテステーションがどのように機能するか例を紹介します。 - -1. ある企業(XYZ Corp)は、スマートコントラクトを使用して所有権の株式を売却することを計画していますが、バックグラウンドチェックを通った買手のみを求めています。 - -2. XYZ Corp は、バックグラウンドチェックを行う会社に、イーサリアム上でオンチェーン・アテステーションを発行してもらうことができます。 このアテステーションは、個人情報を明かすことなくバックグラウンドチェックに通ったことを証明するものです。 - -3. 株式を売却するスマートコントラクトは、レジストリコントラクトで審査した買い手の身元を確認し、株式の買手を判断することができます。 - -### ソウルバウンド・トークンとアイデンティティ {#soulbound} - -[ソウルバウンドトークン](https://vitalik.ca/general/2022/01/26/soulbound.html)(譲渡不可の非代替性トークン)は、特定のウォレットに固有の情報の収集に使用される可能性があります。 これは、特定のイーサリアムアドレスに結びついた一意のオンチェーンアイデンティティを効果的に作成し、業績(例えば、特定のオンラインコースの修了や、ゲームで閾値のスコアの通過など)やコミュニティへの参加を表すトークンを含むことができます。 - -## 分散型アイデンティティの利点 {#benefits-of-decentralized-identity} - -1. 分散型アイデンティティは、自分自身の ID 情報をより管理することができます。 中央集権機関やサードパーティのサービスに依存することなく、分散型 ID とアテステーションを検証することができます。 - -2. 分散型アイデンティティのソリューションは、信頼性が高く、シームレスで、プライバシーを保護しつつ、ユーザーのアイデンティティの検証と管理を容易にします。 - -3. 分散型アイデンティティは、ブロックチェーン技術を活用し、異なる当事者間の信頼関係を構築し、暗号的にアテステーションの正当性を証明することができます。 - -4. 分散型アイデンティティは、アイデンティティデータのポータブル化を実現します。 ユーザーは、アテステーションと ID をモバイルウォレットに保存し、任意の相手と共有することができます。 分散型 ID とアテステーションは、発行組織のデータベースに保管されることはありません。 - -5. 分散型アイデンティティは、新しいゼロ知識証明技術とうまく機能すると考えられています。ゼロ知識証明とは、個人の所有または何かを行ったことを、それが何であるかを明かすことなく証明できるものです。 これは、投票などのアプリケーションでの応用において、信頼性とプライバシーを両立させる強力な方法となる可能性を秘めています。 - -6. 分散型アイデンティティは、一人の人間が複数の人間になりすましてゲームやスパムを行う場合、それを特定でき、シビル攻撃を防ぐことができます。 - -## 分散型アイデンティティのユースケース {#decentralized-identity-use-cases} - -分散型アイデンティティには、多くの潜在的なユースケースがあります。 - -### 1. ユニバーサルログイン {#universal-dapp-logins} - -分散型アイデンティティは、パスワードによるログインを[分散型認証](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/)に置き換えることができます。 サービスプロバイダーは、アテステーションを発行することができ、ユーザーはそれをイーサリアムのウォレットに保存できます。 アテステーションの例としては、[非代替性トークン(NFT)](/nft/)保有者にオンラインコミュニティへのアクセス許可などが挙げられます。 - -[イーサリアムでサインイン](https://login.xyz/)機能を使うと、サーバはユーザーのイーサリアムアカウントを確認し、アカウントアドレスから必要なアテステーションを取得することができます。 これにより、ユーザーは長いパスワードを記憶することなくプラットフォームやウェブサイトにアクセスでき、オンライン・エクスペリエンスを向上させることができます。 - -### 2. KYC 認証 {#kyc-authentication} - -オンラインサービスの多くを利用するには、運転免許証やパスポートなどのアテステーションを提出する必要があります。 しかし、この方法では、ユーザーの個人情報が漏洩するおそれがあり、サービスプロバイダーはアテステーションの正当性を確認できないという問題があります。 - -分散型アイデンティティにより、企業は従来の[本人確認(KYC)](https://en.wikipedia.org/wiki/Know_your_customer)プロセスを省略し、検証可能な資格情報を利用してユーザーのアイデンティティを認証することができます。 これにより、ID 管理のコストを削減し、偽造文書の使用を防ぐことができます。 - -### 3. 投票とオンラインコミュニティ {#voting-and-online-communities} - -オンライン投票とソーシャルメディアは、分散型アイデンティティの新しい適用です。 オンライン投票の仕組みでは、悪意ある者が偽の ID を作成し投票することで、改ざんされるおそれがあります。 個人に対してオンチェーン・アテステーションを求めることで、オンライン投票プロセスの信頼性を向上できます。 - -分散型アイデンティティは、偽アカウントのないオンラインコミュニティの構築に役立ちます。 例えば、ENS(イーサリアム・ネーム・サービス)のようなオンチェーンのアイデンティティシステムを使って認証させることで、ボットを減らすことができる可能性があります。 - -### 4. シビル攻撃の防御 {#sybil-protection} - -シビル攻撃とは、一人の人間が偽って複数の人間と思わせ、影響力を増大させることです。 [クアドラティック・ボーティング](https://www.radicalxchange.org/concepts/plural-voting/)を用いた[助成金授与アプリケーション](https://gitcoin.co/grants/)では、より多くの投票が集まることで助成金の価値が上がり、多くの ID を使って寄付するというインセンティブが働くため、こうしたシビル攻撃を受けやすくなっています。 分散型アイデンティティは、多くの場合、特定の個人情報を明らかにすることなく、各参加者自身が機械ではなく本当に人間であることを証明するという負担を高めることで、シビル攻撃の防止に役立ちます。 - -## 分散型アイデンティティの利用 {#use-decentralized-identity} - -分散型アイデンティティソリューションの基盤としてイーサリアムを使用する、大掛かりなプロジェクトが数多くあります。 - -- **[イーサリアム・ネーム・サービス(ENS)](https://ens.domains/)** - _イーサリアムウォレットアドレス、コンテンツハッシュ、メタデータなどのオンチェーン、機械読み取り可能な ID の分散型ネーミングシステム_ -- **[SpruceID](https://www.spruceid.com/)** - _サードパーティーのサービスに頼らず、イーサリアムアカウントと ENS プロファイルでデジタルアイデンティティを管理できるようにする分散型アイデンティティプロジェクト_ -- **[Proof of Humanity](https://www.proofofhumanity.id)** - _Proof of Humanity (PoH)は、イーサリアム上に構築されたソーシャル ID 認証システム_ -- **[BrightID](https://www.brightid.org/)** - _ソーシャルグラフの作成と分析を通じて、本人確認の改革を目指す分散型オープンソース・ソーシャルアイデンティティネットワーク_ -- **[Proof-of-personhood Passport](https://proofofpersonhood.com/)** - _分散型デジタル ID アグリゲーター_ - -## 参考文献 {#further-reading} - -### 記事 {#articles} - -- [ブロックチェーンの活用事例: デジタル ID におけるブロックチェーン](https://consensys.net/blockchain-use-cases/digital-identity/) —_ConsenSys_ -- [イーサリアム ERC725 とは ブロックチェーン上の自己主権型 ID 管理](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Sam Town_ -- [ブロックチェーンはデジタル ID 問題をどのように解決するか](https://time.com/6142810/proof-of-humanity/) — _Andrew R. Chow_ -- [分散型アイデンティティとは、注目に値する理由](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ - -### ビデオ {#videos} - -- [分散型アイデンティティ(ボーナスライブストリームセッション)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Andreas Antonopolous による分散型アイデンティティに関する秀逸な解説ビデオ_ -- [イーサリアムでサインインし、Ceramic、IDX、React、および 3ID Connect を使用した分散型 ID](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _Nader Dabit によるイーサリアムウォレットを使用したユーザープロファイルの作成、読み取り、更新の ID 管理システムの構築に関する YouTube チュートリアルビデオ_ -- [BrightID - イーサリアム上の分散型アイデンティティ](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _イーサリアムの分散型 ID ソリューション「BrightID」に関する Bankless ポッドキャスト_ -- [オフ・チェーン・インターネット: 分散型アイデンティティと検証可能な資格情報](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — Evin McMullen による EthDenver 2022 のプレゼンテーション - -### コミュニティ {#communities} - -- [GitHub 上の ERC-725 アライアンス](https://github.com/erc725alliance) — _イーサリアムのブロックチェーン上で ID を管理するための規格「ERC725」のサポーターコミュニティ_ -- [SpruceID Discord サーバ](https://discord.com/invite/Sf9tSFzrnt) — _「イーサリアムでサインイン」に取り組むファンやデベロッパーのためのコミュニティ_ -- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _アプリケーション向けの検証可能なデータのフレームワークの構築に貢献するデベロッパーのコミュニティ_ diff --git a/src/content/translations/ja/defi/index.md b/src/content/translations/ja/defi/index.md deleted file mode 100644 index 135db2c40f9..00000000000 --- a/src/content/translations/ja/defi/index.md +++ /dev/null @@ -1,352 +0,0 @@ ---- -title: 分散型金融(DeFi) -description: イーサリアムにおける分散型金融(DeFi)の概要 -lang: ja -template: use-cases -emoji: ":money_with_wings:" -image: ../../../../assets/use-cases/defi.png -alt: レゴブロックで作られたETHのロゴ -sidebarDepth: 2 -summaryPoint1: 現在の金融システムに変わる、グローバルで開かれた分散型金融。 -summaryPoint2: 借りる、貯蓄、投資、取引などを実現する製品。 -summaryPoint3: オープンソース技術に基づき、誰でもプログラミング可能。 ---- - -分散型金融(DeFi)は、インターネット時代に対応したオープンでグローバルな金融システムであり、不透明で厳しく管理された、何十年も前のインフラやプロセスのシステムを置き換えるものです。 自分のお金をコントロールし、可視化することができます。 グローバル市場に入ることができ、自国の通貨や銀行の選択肢の代替となります。 分散型金融(DeFi)製品は、インターネットの接続がある人であれば誰でも金融サービスを受けることができ、ほとんどがユーザーによって所有・維持されています。 これまでに数百億ドル相当の暗号資産が、分散型金融(DeFi)アプリケーションを経由しており、その額は日々増加しています。 - -## 分散型金融(DeFi)とは {#what-is-defi} - -分散型金融(DeFi)とは、イーサリアムを使用するすべての人が利用できる金融商品やサービスの総称です。 分散型金融(DeFi)では、市場は常に開かれており、支払いをブロックしたり、何かへのアクセスを拒否できる一元化された権限主体はありません。 以前は遅く、人的エラーのリスクがあったサービスが、誰でも検査・精査できるコードによって処理されるようになったため、自動的に実行され、かつ安全です。 - -そこには、貸し借り、ロング/ショート、利息の受取りなどが可能な、活況を呈している暗号経済があります。 暗号資産技術に詳しいアルゼンチン人は、深刻なインフレから逃れるために分散型金融(DeFi)を利用してきました。 企業は、従業員への賃金をリアルタイムでストリーミングするようになりました。 中には、本人確認なしで数百万ドルのローンを組み、完済した人もいます。 - - - -## 分散型金融(DeFi)と従来の金融システムとの比較 {#defi-vs-tradfi} - -分散型金融(DeFi)の可能性を知るための最良の方法の一つは、現在ある問題を理解することです。 - -- 銀行口座の開設や金融サービスの利用を認められていない人もいます。 -- 金融サービスへのアクセスができないと、雇用の妨げになります。 -- 金融サービスは、あなたをブロックし、支払いを受けることができないようにすることができます。 -- 金融サービスへの隠された料金には、利用者の個人情報があります。 -- 政府や中央集権機関が自由に市場を閉鎖することができます。 -- 取引時間は、しばしば特定の時間帯の営業時間に制限されます。 -- 内部の人的なプロセスにより、送金には数日かかる場合があります。 -- 仲介機関への分け前が必要なため、金融サービスには手数料が必要です。 - -### 比較 {#defi-comparison} - -| 分散型金融(DeFi) | 従来の金融システム | -| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | -| 自分でお金を保有します。 | 企業があなたのお金を保有します。 | -| 自分のお金がどこに行くか、どのように使われるかをコントロールすることができます。 | あなたのお金が不正に管理されたり、危険な借り手に貸しだされないなど、その企業を信用する他ありません。 | -| 資金の移動は数分で完了します。 | 支払いには手動の作業プロセスのために数日かかることがあります。 | -| トランザクションは仮名で行われます。 | 金融活動は、利用者の個人情報と密接に結びついています。 | -| 分散型金融(DeFi)は誰でも利用できます。 | 金融サービスの利用申請が必要です。 | -| 市場は常にオープンしています。 | 従業員の休息のため、市場が閉じる時間があります。 | -| 誰もが製品データを見て、システムがどのように機能しているかを調べることができる、透明性の高いシステムです。 | 金融機関はクローズド・ブックであり、融資の履歴や運用資産の記録などを見せてもらうことはできません。 | - - - 分散型金融(DeFi)アプリを探す - - -## 始まりはビットコイン... {#bitcoin} - -ビットコインは、いろいろな意味で最初の分散型金融(DeFi)アプリケーションでした。 ビットコインは、価値を実際に所有・管理でき、世界中のどこにでも送ることができます。 これは、お互いに信頼関係のない不特定多数の人々が、信頼できる仲介者を必要とせずに、口座台帳に合意する方法を提供することで実現しています。 ビットコインは誰にでも開かれており、誰もそのルールを変えることはできません。 希少性やオープン性などビットコインのルールは、テクノロジーに書き込まれています。 政府がお金を刷り、あなたの貯蓄の価値を下げてしまったり、企業が市場を閉鎖したりできる従来の金融とは違います。 - -イーサリアムはこの考えに基づいています。 ビットコインのように、あなたに関わるルールが変えられることなく、誰もがアクセスできます。 しかし、このデジタルマネーは、[スマートコントラクト](/glossary#smart-contract)を用いてプログラム可能になっており、単に価値を保有・送信したりする以上のことができます。 - - - -## プログラム可能な通貨 {#programmable-money} - -これは一見奇妙なことのように聞こえます。「なぜ自分のお金をプログラムする必要があるのでしょうか?」 しかし、これはむしろイーサリアムのトークンのデフォルト機能に過ぎません。 誰でも支払いに論理をプログラムすることができます。 プログラミングにより、金融機関が提供するサービスに、ビットコインのコントロールとセキュリティを混在させることができます。 貸し借りや支払いのスケジューリング、インデックスファンドへの投資など、ビットコインではできないことを暗号通貨で行うことができます。 - - -
イーサリアムを初めて使う方にお勧めの分散型金融(DeFi)アプリケーション
- - 分散型金融(DeFi)アプリを探す - -
- -## 分散型金融(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/)が必要です。 - - - 支払いの分散型アプリ(Dapp)を見る - - -#### 世界中へのお金の流通... {#stream-money} - -また、イーサリアムでお金を流通させることもできます。 これにより、誰かに給料を秒単位で支払うことができ、受取人は必要なときにいつでもお金にアクセスすることができます。 また、コインロッカーや電動自転車など、秒単位でレンタルすることもできます。 - -また、[ETH](/eth/)の価値がどれだけ変わるかわからないので、送金や流通はしたくないという方には、イーサリアムの代替通貨であるステーブルコインがあります。 - - - -### 安定した通貨へのアクセス {#stablecoins} - -暗号通貨の変動性は、多くの金融商品や一般歳出にとっては問題となります。 分散型金融(DeFi)コミュニティはこれをステーブルコインで解決しました。 ステーブルコインの価値は、別の資産、通常はドルのような一般的な通貨を担保にしています。 - -Dai や USDC のようなコインの価値変動は、1 ドルで数セントの範囲内です。 そのため、給与や小売業に最適です。 中南米では、政府が発行する通貨に大きな不安があるため、自分の貯蓄を守る手段として、多くの人々がステーブルコインを利用しています。 - - - ステーブルコインの詳細 - - - - -### 融資 {#lending} - -分散型プロバイダーからお金を借りるには、大きく分けて 2 種類あります。 - -- ピアツーピア: 借り手が特定の貸し手から直接借りることを意味します。 -- プールベース: 借り手が借り入れることができるプールに、貸し手が資金(流動性)を提供する方法です。 - - - 融資分散型アプリ(Dapp)を見る - - -分散型貸付業者の利用には、多くの利点があります。 - -#### プライバシーを守りながらの借り入れ {#borrowing-privacy} - -現在、お金の貸し借りは、すべて個人が中心となって行われています。 銀行は融資をする前に、借り手に返済する見込みがあるかどうかを見極める必要があります。 - -分散型融資は、どちらも自分の名前を名乗る必要がありません。 その代わり、借り手は担保を提供しなければならず、貸し手は返済されなかった場合に担保を自動的に受け取ることになります。 一部の貸し手では、非代替性トークン(NFT)を担保として受け入れています。 非代替性トークン(NFT)とは、美術絵画のような唯一無二の資産に対する証明です。 [非代替性トークン(NFT)の詳細](/nft/) - -これにより、クレジットチェックや個人情報を開示せずにお金を借りることができます。 - -#### グローバル資金へのアクセス {#access-global-funds} - -分散型金融機関を利用すると、あなたが選んだ銀行や金融機関に預けている資金だけでなく、世界中から入金された資金にアクセスすることができます。 これにより、ローンがより利用しやすくなり、金利も改善されます。 - -#### 課税効率 {#tax-efficiencies} - -ETH を売却(課税対象)することなく、必要な資金を借り入れることができます。 その代わり、ETH をステーブルコイン・ローンの担保として使うことができます。 これにより、必要なキャッシュフローを得ることができ、ETH をそのまま保有しておくことができます。 ステーブルコインは、ETH のように価値が変動しないので、現金が必要な時にはより適しているトークンです。 [ステーブルコインの詳細](#stablecoins) - -#### フラッシュローン {#flash-loans} - -フラッシュローンは、より実験的な分散型融資の形態で、担保や個人情報を提供することなく借り入れをすることができます。 - -今はまだ技術者以外の人は広く利用できませんが、将来的には誰もが利用できるようになる見込みがあります。 - -フラッシュローンは、借入と返済を同一のトランザクション内で行う仕組みです。 返すことができなければ、何もなかったかのようにトランザクションが元に戻ります。 - -よく使われる資金は、流動性プール(借り入れに使われる資金の大きなプール)に保管されています。 その瞬間に使われていなければ、誰かがその資金を借りてビジネスを行い、文字通り借りた瞬間に全額を返済するという機会が生まれます。 - -これには、多くのロジックを非常にオーダーメイドのトランザクションに含める必要があります。 簡単な例をあげると、フラッシュローンを利用して、ある価格で資産を借りて、価格の高い別の取引所で売ることができます。 - -そのため、1 つのトランザクションで次のようなことが起こります。 - -- X 個の$asset を A 取引所から$1.00 で借用 -- B 取引所で X 個の$asset 資産を 1.10 ドルで売却 -- 取引所 A に借入金を返済 -- トランザクションフィーを差し引いた利益を獲得 - -もし、取引所 B の供給量が急激に減少し、ユーザーが当初のローンをカバーするのに十分な量を購入できなかった場合は、単純にそのトランザクションは失敗します。 - -従来の金融の世界で上記の例を実行するには、莫大な資金が必要になります。 これらのお金儲けの戦略は、既存の富を持っている人にしかアクセスできません。 フラッシュローンは、お金を持っていることが必ずしもお金を稼ぐための前提条件ではないという未来の一例です。 - -[フラッシュローンの詳細](https://aave.com/flash-loans/) - - - -### 暗号資産で預金を始める {#saving} - -#### 貸付 {#lending} - -暗号通貨を貸すことで利息を得ることができ、資金が増えていく様子をリアルタイムで見ることができます。 現在の利息は、地元の銀行で得られる金利よりもはるかに高いです(運良く銀行を利用できた場合)。 次に例を示します。 - -- [ステーブルコイン](/stablecoins/)である 100 Dai を Aave のようなサービスに貸し付けます。 -- 貸した Dai を表すトークンである 100 Aave Dai (aDai)を受領します。 -- aDai は金利に基づいて増加し、あなたのウォレットで残高が増えていくのを見ることができます。 年換算利回りに応じて、数日後、あるいは数時間後にウォレットの残高が 100.1234 のように表示されます。 -- aDai 残高と同額の通常の Dai をいつでも引き出すことができます。 - - - 貸付サービスの分散型アプリ(Dapp)を見る - - -#### 損失がない宝くじ {#no-loss-lotteries} - -PoolTogether のような損失のない宝くじは、楽しく革新的な新しい貯蓄方法です。 - -- 100 Dai トークンを使って 100 枚のチケットを購入します。 -- 100 枚のチケットを表す 100 plDai を受領します。 -- チケットの 1 つが当選すると、あなたの plDai の残高は賞金プールの金額分だけ増えます。 -- 当選しなかった場合、100 枚の plDa は来週の抽選に繰り越されます。 -- いつでも plDai 残高と同額の通常の Dai を引き出すことができます。 - -賞金プールは、上記の貸し出しの例のように、チケットの預金を貸し出すことで発生するすべての利息によって生み出されます。 - - - PoolTogetherを試す - - - - -### トークンの交換 {#swaps} - -イーサリアムには何千ものトークンがあります。 分散型取引所(DEX)でいつでも異なるトークンを取引できます。 ご自身の資産の管理をあきらめる必要はありません。 これは、外国に行ったときに両替所を利用するようなものです。 しかし、分散型金融(DeFi)では両替所は閉じることはありません。 市場は 365 日 24 時間体制で、テクノロジーにより、取引を受け付ける人が常にいます。 - -例えば、上述の損失のない宝くじ PoolTogether を利用したい場合、Dai や USDC などのトークンが必要になります。 これらの分散型取引所では、自分の ETH をそれらのトークンと交換し、終了後また ETH に戻すことができます。 - - - トークン交換所を見る - - - - -### 高度な取引 {#trading} - -もう少しコントロールしたいというトレーダーのために、より高度なオプションも用意されています。 リミットオーダー、パーペチュアル、マージン取引などが可能です。 分散型取引では、グローバル・リクイディティにアクセスでき、市場が閉じることはなく、常に自分の資産をコントロールすることができます。 - -中央集権的な取引所を利用する場合は、取引を行う前に資産を預けて、その資産の管理を任せなければなりません。 中央の取引所はハッカーにとって魅力的なターゲットであるため、資産が預けられている間はリスクがあります。 - - - トレード分散型アプリ(Dapp)を見る - - - - -### ポートフォリオの拡大 {#investing} - -イーサリアムには、自分が選んだ戦略に基づいてポートフォリオを拡大を図るファンドマネジメント商品があります。 これは、自動的、誰にでも開かれていて、かつ管理者に利益の一部を取られる必要はありません。 - -その良い例が、[分散型金融 Pulse インデックスファンド(DPI)](https://defipulse.com/blog/defi-pulse-index/)です。 これは、常に[時価総額上位の分散型金融(DeFi)トークン](https://www.coingecko.com/en/defi)がポートフォリオに含まれるよう、自動的に入れ替える(リバランスする)ファンドです。 細かい管理をする必要がなく、好きな時にファンドから引き出すことができます。 - - - 投資分散型アプリ(Dapp)を見る - - - - -### アイデアへの資金供給 {#crowdfunding} - -イーサリアムはクラウドファンディングに理想的なプラットフォームです。 - -- 潜在的な資金提供者はどこからでも来ることができます - イーサリアムとそのトークンは世界中のすべての人に公開されています。 -- 透明性があるため、資金調達者がどれだけの資金を調達したかを証明できます。 あとでどのように資金が使われているかを追跡することもできます。 -- 出資者は、例えば、特定の期限や最低金額が達成されなかった場合、自動的に返金されるように設定することができます。 - - - クラウドファンディング分散型アプリ(Dapp)を見る - - -#### クオドラティック・ファンディング {#quadratic-funding} - -イーサリアムはオープンソースソフトウェアであり、これまでの作業の多くはコミュニティの資金提供を受けてきました。 これにより、クオドラティック・ファンディングという興味深い新しい資金調達モデルが成長しました。 将来的に、私達が公共財のすべてのタイプに資金を供給する方法を改善する可能性があるファンディングです。 - -クオドラティック・ファンディングでは、最もユニークな必要性があるプロジェクトが、最も多くの資金を受け取るようになっています。 つまり、ほとんどの人々の生活を向上させるためのプロジェクトです。 その仕組みは次のとおりです。 - -1. 寄付を集めて供与先を決めるためのマッチングプールがあります。 -2. 資金供与のラウンドが始まります。 -3. 人々は、お金を寄付することで、あるプロジェクトに対する必要性を示すことができます。 -4. ラウンドが終了すると、マッチングプールからプロジェクトに資金が分配供与されます。 最も多くの需要を獲得した人が、マッチングプールから最高額を得ることができます。 - -つまり、1 ドルの寄付が 100 件集まったプロジェクト A の方が、1 つの 1 万ドルの寄付に支援されたプロジェクト B よりも多くの資金を得られる可能性があるということです(マッチングプールの大きさによります)。 - -[クオドラティック・ファンディングの詳細](https://wtfisqf.com) - - - -### 保険 {#insurance} - -分散型保険は、保険料をより安く、より早く、より透明にすることを目指しています。 自動化が進めば、保険料はより手頃になり、支払いもより迅速になります。 保険請求を決定するために使用されるデータには、完全に透明性があります。 - -他のソフトウェアと同様、イーサリアム製品は、バグや不正搾取の問題があります。 そのため、現在のところ、この分野の保険商品の多くは、ユーザーが資金を失うことを防ぐことに重点を置いています。 しかし、人生で起こりうるあらゆることを補償するプロジェクトが始まっています。 その良い例が、[ケニアの零細農家を干ばつや洪水から守ることを目的とした](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc)Etherisc の生産物保証です。 分散型の保険は、従来の保険では値段が高過ぎて手がでないことが多い農民に、より安価な保険を提供することができます。 - - - 保険分散型アプリ(Dapp)見る - - - - -### アグリゲーターとポートフォリオマネージャー {#aggregators} - -多くのことが行われているため、すべての投資、ローン、取引を記録する方法が必要になります。 すべての分散型金融(DeFi)アクティビティを 1 つの場所で管理できる製品が多数あります。 これが分散型金融(DeFi)のオープンアーキテクチャーの魅力です。 製品すべての残高を確認できるだけでなく、その機能を利用できるインターフェースを構築することができます。 分散型金融(DeFi)をより深く知るための参考にしてみてください。 - - - ポートフォリオ分散型アプリ(Dapp)を見る - - - - -## 分散型金融(DeFi)の仕組み {#how-defi-works} - -分散型金融(DeFi)では、暗号通貨やスマートコントラクトを用いて、仲介を必要としないサービスを提供しています。 今日の金融世界では、金融機関がトランザクションの保証人の役割を果たしています。 このようにして、これらの機関は巨大な力を持つことになります。 さらに、世界中の何十億もの人々が、銀行口座にアクセスすることさえままならない現状があります。 - -分散型金融(DeFi)では、スマートコントラクトが金融機関の代わりにトランザクションを行います。 スマートコントラクトとは、イーサリアムの口座の一種で、資金を保有し、一定の条件に基づいて資金を送金/返金することができます。 スマートコントラクトが稼働すると、誰もそのスマートコントラクトを変更することはできず、常にプログラム通りに実行されます。 - -例えば、手当やお小遣いを渡すためのコントラクトが、毎週金曜日に口座 A から口座 B にお金を送るようにプログラムされているとします。 口座 A に必要な資金がある限り、それを実行します。 誰もコントラクトを変更して、口座 C を受取人として追加し、資金を盗むことはできません。 - -また、コントラクトは公開され、誰でも閲覧や監査が可能です。 つまり、悪質なコントラクトはすぐにコミュニティの監視下に置かれることが多いのです。 - -これは、現在のところ、コードを解読できるイーサリアムコミュニティの技術的なメンバーを信頼する必要があることを意味しています。 オープンソースベースのコミュニティは、デベロッパーをチェックするのに役立っていますが、スマートコントラクトが解読しやすくなり、コードの信頼性を証明する他の方法が開発されるにつれて、この必要性は時間とともに減少していくでしょう。 - -## イーサリアムと分散型金融(DeFi) {#ethereum-and-defi} - -イーサリアムは、さまざまな理由から分散型金融(DeFi)の基盤として最適です。 - -- イーサリアムやスマートコントラクトは誰かの所有物ではないため、誰もが分散型金融(DeFi)を利用することができます。 これはまた、誰もあなたに関するルールを変更できないことを意味します。 -- 分散型金融(DeFi)製品はすべて、舞台裏で同じ言語を話しており、その言語はイーサリアムです。 このため、多くの製品がシームレスに連携します。 あるプラットフォームでトークンを貸し出し、その利息付きトークンを全く別のアプリケーションで別の市場で交換することができます。 これは、銀行でポイントを現金化できるようなものです。 -- トークンと暗号通貨は、共有台帳であるイーサリアムに組み込まれています。トランザクションや所有権を追跡することは、イーサリアムの得意とするところです。 -- イーサリアムは完全な経済的自由を可能にします。ほとんどの製品はあなたの資金を管理することはなく、自分の資金を自分でコントロールすることができます。 - -分散型金融(DeFi)をレイヤーで考えてみましょう。 - -1. ブロックチェーン - イーサリアムには、トランザクション履歴やアカウント状態が記録されています。 -2. 資産 - [ETH](/eth/)とその他のトークン(通貨) -3. プロトコル - 機能を提供する[スマートコントラクト](/glossary/#smart-contract)、例えば、資産を分散して貸すことができるサービスなど -4. [アプリ](/dapps/) - プロトコルの管理やアクセスのために使用する製品 - -## 分散型金融(DeFi)の構築 {#build-defi} - -分散型金融(DeFi)はオープンソースのムーブメントです。 分散型金融(DeFi)のプロトコルとアプリケーションはすべて公開されており、ユーザーが検査、フォーク(分岐)、改変を行うことができます。 このようにレイヤー状になっているため(ベースとなるブロックチェーンや資産はすべて共通)、プロトコルを組み合わせ、ユニークな組み合わせでのチャンスを生み出すことができます。 - - - 分散型アプリ(Dapp)構築の詳細 - - -## 参考文献 {#futher-reading} - -### 分散型金融(DeFi)データ {#defi-data} - -- [DeFi Prime](https://defiprime.com/) -- [DeFi Llama](https://defillama.com/) -- [DeFi Rate](https://defirate.com/) - -### 分散型金融(DeFi)に関する記事 {#defi-articles} - -- [分散型金融(DeFi)入門](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu、2020 年 1 月 6 日_ - -### ビデオ {#videos} - -- [Finematics - 分散型金融に関する教育](https://finematics.com/) – _分散型金融(DeFi)に関するビデオ_ -- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _分散型金融(DeFi)の基本: 時に不可解な分散型金融を始めるために学ぶべきことすべて。_ -- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _分散型金融(DeFi)とは_ - -### コミュニティ {#communities} - -- [DeFi Pulse Discord server](https://discord.gg/buPFYXzDDd) -- [DeFi Pulse Discord server](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/ja/desci/index.md b/src/content/translations/ja/desci/index.md deleted file mode 100644 index e6f365d1c3e..00000000000 --- a/src/content/translations/ja/desci/index.md +++ /dev/null @@ -1,138 +0,0 @@ ---- -title: 分散型科学 (DeSci) -description: イーサリアム上の分散型科学の概要 -lang: ja -template: use-cases -emoji: ":microscope:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: 現在の科学に代わる、グローバルで開かれたシステム。 -summaryPoint2: 科学者が資金を調達し、実験を行い、データーを共有し、得られた見識を広めることなどを可能にする技術。 -summaryPoint3: オープンサイエンス運動の上に構築。 ---- - -## 分散型科学(DeSci)とは何か {#what-is-desci} - -分散型科学(DeSci)は Web3 スタックを用いることで、科学的知見に対する財政支援、そして科学的知見の創造、審査、認定、保管、普及のための、公平公正なインフラストラクチャの形成を目指す運動です。 - -DeSci は、科学者が自身の研究を公然と共有することにインセンティブを与えられ、そしてその仕事に対する名声を得られ、一方で誰もが簡単にその研究にアクセスし、さらに研究に貢献できるようなエコシステムの形成を目指しています。 DeSci は、科学的知識は誰にでもアクセス可能であり、科学研究のプロセスは透明であるべきという考えに則っています。 DeSci はより非中央集権的で分散型の科学研究モデルを形成することで、中央当局による検閲と管理に対する抵抗力を高めます。 DeSci は、資金調達、科学的ツール、コミュニケーション手段へのアクセスを分散化することによって、慣習にとらわれない新しいアイデアが繁栄する環境を作りたいと考えています。 - -分散型科学により、多様な資金調達方法([分散型自律組織](/dao/)、[クアドラティックドネーション](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531)、クラウドファンディングなど)が可能となることで、データや科学的手法へのアクセスが容易になり、さらに再現性へのインセンティブを付与することができます。 - -### Juan Benet - DeSci 運動 - - - -## いかにして DeSci が科学を向上させるのか {#desci-improves-science} - -科学の主要な問題点と、分散型科学でどのような解決が可能かをまとめた現時点におけるリストです。 - -| **分散型科学** | **従来の科学** | -| --------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | -| 資金分配は、クアドラティックドネーションや DAO などのメカニズムを用いて、大衆によって決定されます。 | 小規模で閉鎖的な中央集権化されたグループが、資金分配をコントロールします。 | -| 世界中の誰とでも、ダイナミックなチームを形成して、共同研究ができます。 | 資金提供団体や科学者の所属機関により、共同研究が制限されます。 | -| 資金調達の決定は、オンラインかつ透明性をもって実行されます。 新しい資金調達のメカニズムが検討されます。 | 資金調達の決定には長い時間がかかり、限られた透明性の中で実行しています。 資金調達のメカニズムはほぼ存在しません。 | -| Web3 のプリミティブを利用することで、研究所のサービスをより簡単かつ透過的に共有できます。 | 研究所のリソースを共有できるまでに時間がかかることが多く、その手続きも不透明です。 | -| Web3 プリミティブによって、信頼性と透明性が高く、かつ普遍的アクセスを実現する新たな出版モデルの開発が可能です。 | 非効率的でバイアスがあり、悪用されうる旧来の手続きによって研究成果が出版されます。 | -| 論文を査読することでトークンや評価を得ることができます。 | 研究者が無報酬で査読し、営利目的の出版社に利益を提供します。 | -| 科学者が自身の生み出した知的財産(IP)を所有し、透明性のある条件に従って配布します。 | 科学者が生み出した知的財産は所属機関が所有します。 知的財産へのアクセスは不透明です。 | -| 全手順をオンチェーンにすることで、失敗したデーターも含めて、すべての研究を共有できます。 | 出版バイアスとは、成功した実験ほど共有する傾向が強いというバイアスです。 | - -## イーサリアムと DeSci {#ethereum-and-desci} - -分散型科学のシステムには、堅牢なセキュリティ、最小限の金銭およびトランザクションコスト、そしてアプリケーション開発のための豊富なエコシステムが必要です。 イーサリアムは、分散型科学のスタックを構築するのに必要なものを全て備えています。 - -## DeSci のユースケース {#use-cases} - -DeSci は、Web2 アカデミアをデジタルワールドにオンボーディングさせるための科学的なツールセットを構築しています。 Web3 は、科学界にさまざまな利点を提供することができます。以下に一部のユースケースをご紹介します。 - -### 出版 {#publishing} - -科学論文の出版は顕著な問題を抱えており、その背景には、論文の作成にあたり、科学者、査読者、編集者を無報酬で働かせ、法外な出版料を請求する出版社の存在があります。 一般市民は税金という形で科学者の活動費と出版費を間接的に支払っていますが、通常は、出版社に対して追加で支払いを行わないと、出版物を閲覧することはできません。 個々の科学論文の出版にかかる総額は、通常米ドルで 5 桁に上り、[公共財](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} - -科学への資金提供における現在の標準モデルでは、個人や科学者のグループが資金配分機関に書面にて申請する手順となっています。 信頼できる少数の識者が申請書を採点し、その後候補者の面接を経て、評価の高かった一部の候補者に資金が提供されます。 助成金の申請から受領まで、時に年単位で待つことになるボトルネックを生み出すだけでなく、このモデルは、審査委員会による偏見、私欲、権力闘争に対して非常に脆弱であると言われています。 - -同じ提案であっても同委員会の担当者によって結果が大きく異なることがあり、優れた提案を選択するうえで助成金審査委員会は責務を果たしていないことが研究によって示されています。 資金調達が厳しくなる中で、資金の行く先は保守的なプロジェクトを行う少人数の上席研究者へと集中してきました。 その結果、非常に競争の激しい資金調達環境が生み出され、歪んだインセンティブを根付かせ、イノベーションを妨げることになりました。 - -DAO と 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)、[トークン化されたインセンティブ構造<0>](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design)などの Web3 ツールには、科学の資金調達に大変革をもたらす可能性があります。 - -### IP の所有権と開発 {#ip-ownership} - -従来の科学において知的財産(IP)は大きな問題となっています。大学で身動きが取れない状況に陥っていたり、バイオテクノロジー業界で応用されていなかったり、評価ができない状態になってしまっています。 しかし、Web3 が[非代替性トークン(NFT)](/nft/)を活用することで、デジタル資産(科学的データや論文など)を真に所有できるようになります。 - -NFT が将来の取引の収益を元の作成者に還元できるように、透明性のある価値の帰属チェーンを確立することができます。これにより、研究者や DAO のような管理団体、そしてデータの収集元となった被験者へも報酬を与えることができます。 - -[IP-NFT](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6)もまた研究実験の分散データレポジトリにアクセスするための鍵として機能し、NFT や[DeFi](/defi/)の金融化(資産の分散、融資プールと価値評価) へとつながります。 また、[VitaDAO](https://www.vitadao.com/)のようなネイティブにチェーン上に存在する DAO を使用することで、研究活動を直接オンチェーンで行うことができます。 譲渡不可の[「ソウルバウンド」トークン](https://vitalik.ca/general/2022/01/26/soulbound.html)の出現により、イーサリアムアドレスにリンクされた経験や経歴を個人が証明できるようになるため、DeSci で重要な役割を果たす可能性があります。 - -### データストレージ、アクセス、アーキテクチャ {#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 データソリューションは、上記のシナリオをサポートし、研究者がアクセス許可や手数料なしで公共財を作成できる真のオープンサイエンスの基盤を提供します。 IPFS、Arweave、Filecoin などの Web3 パブリックデータソリューションは、分散化のために最適化されています。 たとえば、dClimate は、気象観測所や予測気候モデルなどを含む、気候や気象データへの普遍的なアクセスを提供しています。 - -## 参加 {#get-involved} - -プロジェクトを探索し、DeSci コミュニティに参加してください。 - -- [DeSci.Global: グローバルなイベントとオフ会カレンダー](https://desci.global) -- [サイエンステレグラムのためのブロックチェーン](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 財団: DeSci 出版ツールビルダー](https://descifoundation.org/) -- [DeSci.World: ユーザーが閲覧して参加できる分散型科学のワンストップショップ](https://desci.world) -- [Fleming プロトコル: 共同のバイオメディカルの発見を促進するオープンソースのデータエコノミー](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [OceanDAO: データ関連科学のための、DAO に統制された資金調達](https://oceanprotocol.com/dao) -- [Opsciana: オープン分散型サイエンスワークフロー](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 プロトコル: 共同のバイオメディカルの発見を促進するオープンソースのデータエコノミー](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [Active Inference Lab](https://www.activeinference.org/) -- [CureDAO: コミュニティ所有のプレシジョンヘルスプラットフォーム](https://docs.curedao.org/) -- [IdeaMarkets: 分散型科学の信ぴょう性の有効化](https://ideamarket.io/) - -新しいプロジェクトを提案する際には[ポリシー一覧](/contributing/adding-desci-projects/)をご覧ください。 - -## 参考文献 {#further-reading} - -- [Jocelynn Pearl と Ultraare による DeSci Wiki](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) -- [Jocelynn Pearl による a16z の未来のための分散型バイオテックのガイド](https://future.a16z.com/a-guide-to-decentralized-biotech/) -- [DeSci のケース](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) -- [DeSci のガイド](https://future.com/what-is-decentralized-science-aka-desci/) -- [分散型科学のリソース](https://www.vincentweisser.com/decentralized-science) -- [Molecule の Biopharma IP-NFTs - 技術説明](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) -- [Jon Starr によるトラストレスな科学システムの構築](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) -- [バイオテクノロジー DAO の誕生](https://molecule.to/blog/the-emergence-of-biotech-daos) -- [Paul Kohlaas - 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) -- [DeSci: Samuel Akinosho による研究の未来](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) -- [サイエンスファンディング(エピローグ: DeSci と新しい暗号プリミティブ) by 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 - DeSci、Independent Labs、& Large Scale Data Science](https://www.youtube.com/watch?v=zkXM9H90g_E) -- [Sebastian Brunemeier - DeSci による生体医学研究 & ベンチャーキャピタルの転換](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/ja/developers/docs/consensus-mechanisms/pos/block-proposal/index.md b/src/content/translations/ja/developers/docs/consensus-mechanisms/pos/block-proposal/index.md deleted file mode 100644 index b67231ac8a0..00000000000 --- a/src/content/translations/ja/developers/docs/consensus-mechanisms/pos/block-proposal/index.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: ブロック提案 -description: イーサリアムのプルーフ・オブ・ステークにおけるブロックの提案方法についての説明 -lang: ja ---- - -ブロックは、ブロックチェーンにおける基本的な単位です。 ブロックとは、各ノード間で受け渡しされ、合意され、各ノードのデータベースに追加される情報を区切った単位です。 このページでは、ブロックがどのように生成されるのかを説明します。 - -## 前提知識 {#prerequisites} - -ブロックの提案は、プルーフ・オブ・ステークのプロトコルの一部です。 このページの内容を理解するためには、[プルーフ・オブ・ステーク](/developers/docs/consensus-mechanisms/pos/)および[ブロックのアーキテクチャ](/developers/docs/blocks/)を読んでおくとよいでしょう。 - -## 誰がブロックを生成するのか? {#who-produces-blocks} - -ブロックは、バリデータのアカウントが提案します。 バリデータのアカウントは、実行クライアントおよびコンセンサス・クライアントの一部としてバリデータ・ソフトウェアを実行し、少なくともデポジット・コントラクトの残高が少なくとも 32 イーサ以上であるノードのオペレータが管理します。 ただし、各バリデータがすべてのブロックを提案する訳ではありません。 イーサリアムでは、時間をスロットおよびエポック単位で把握します。 1 スロットは 12 秒であり、1 エポックは 32 スロット(6.4 分)です。 各スロットは、イーサリアムに新規ブロックを追加する期間を表します。 - -### 無作為の選出 {#random-selection} - -各スロットにおいてブロックを提案するために、1 名のバリデータがほぼ無作為に選出されます。 各ノードによる番号の生成が真に無作為であればノード間においてコンセンサスを実現することが不可能になるため、ブロックチェーンにおいては真の無作為性は存在しません。 むしろ、ここでの目的は、バリデータの選出プロセスを予測不可能にすることです。 イーサリアムでは、RANDAO と呼ばれるアルゴリズムを用いてバリデータ選出の無作為性を実現します。これは、ブロック提案者のハッシュと、ブロックごとに更新されるシードと混合するアルゴリズムです。 この混合された値に基づき、バリデータの全リストから特定のバリデータを選出します。 バリデータは、シードに対する特定の種類の不正操作から保護するために、2 エポック前の時点で選出が確定します。 - -バリデータは各スロットにおいて RANDAO に追加されますが、グローバルな RANDAO 値は各エポックにつき 1 回のみ更新されます。 次のブロック提案者のインデックスを算出するために、RANDAO 値はスロット番号とミックスされ、スロットごとに固有値が得られます。 特定のバリデータが選出される確率は、単に`1/N`(`N`は、アクティブなバリデータの合計数)ではありません。 これは、各バリデータの有効なイーサ残高によって加重されるためです。 有効な残高の上限は 32 イーサです(つまり、`残高<32イーサ`の場合、`残高=32イーサ`の場合よりも加重が低くなりますが、`残高>32`でああっても`残高=32イーサ`の場合よりも加重は大きくなりません。 - -各スロットにおいて選出されるブロック提案者は 1 名のみです。 通常、1 名のブロック生成者が、専用のスロットにおいて 1 つのブロックを生成し、リリースします。 同一スロットにおいて 2 つのブロックを生成することはスラッシングの対象となる不正行為であり、これを「曖昧化」と呼びます。 - -## ブロックはどのように生成されるのか? {#how-is-a-block-created} - -ブロック提案者は、自分がローカルで実行するフォーク選択のアルゴリズムの観点に基づき、チェーンの最も最近の先頭部分に構築される署名済みのビーコンブロックを送信すると想定されています。 フォーク選択のアルゴリズムは、ひとつ前のスロットで未処理であったキュー内のアテステーションすべてに適用され、その履歴から、累積したアテステーションの加重が最も大きいブロックを特定します。 特定されたブロックは、提案者が作成する新規ブロックに対する親ブロックとなります。 - -ブロック提案者は、自分のローカルなデータベースおよびチェーンビューに基づきデータを収集して、ブロックを作成します。 ブロックの内容は、以下のコードスニペットのように表示されます。 - -```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 -``` - -ブロック提案者が現在のエポック番号に署名することによって作成する検証可能なランダム値を`randao_reveal`フィールドで受け取ります。 `eth1_data`は、ブロック提案者における入金コントラクトのビューに対する投票であり、入金コントラクトのマークルツリーにおけるルートと、新規の入金に対する検証を可能にする入金件数の総数が含まれています。 `graffiti`は、ブロックにメッセージを追加するための使用できるオプション項目です。 `proposer_slashings`および `attester_slashings`は、提案者によるチェーンビューに基づき、特定のバリデータがスラッシュ対象の違反行為を実行したことを証明する項目です。 `deposits`は、ブロック提案者が認識しているバリデータによる新規の入金リストであり、`voluntary_exits`は、ブロック提案者がコンセンサスレイヤーのゴシップネットワークにおいて、退出を希望する意向を確認したバリデータのリストです。 `sync_aggregate`は、どのバリデータが、以前に同期委員会(軽量のクライアントデータを担当するバリデータのサブセット)に指定されたことがあり、データの署名を実行したことがあるのかを示すベクトルです。 - -`execution_payload`は、トランザクションに関する情報が実行クライアントとコンセンサス・クライアントとの間で受け渡されることを可能にします。 `execution_payload`は、ビーコンブロック内にネスティングされるブロックの実行データです。 `execution_payload`内の各フィールドは、イーサリアムのイエローペーパーで概説されたブロックの構造を反映しています。ただし、オマーブロックを含まず、`難易度`の代わりに`prev_randao`を含む点が異なります。 実行クライアントは、自身のゴシップネットワークで耳にしたトランザクションのローカルプールにアクセスすることができます。 これらのトランザクションはローカルで実行され、ポストステートと呼ばれる更新後の状態ツリーを生成します。 これらのトランザクションは、`execution_payload`において`トランザクション`という名称のリストに含まれており、当該のポストステートは`state-root`フィールドに書き込まれます。 - -これらのデータはすべてビーコンブロックで収集、署名された上で、ブロック提案者のピアユーザーのブロードキャストされ、受信したピアはさらにそのピアユーザーに送信します。 - -詳細については、[ブロックの構造](/developers/docs/blocks)をご覧ください。 - -## 生成されたブロックには、何が起きるのか? {#what-happens-to-blocks} - -生成されたブロックはブロック提案者のローカルデータベースに追加され、コンセンサスレイヤーのゴシップネットワークを通じてピアユーザーにブロードキャストされます。 ブロックを受け取ったバリデータは、そのブロックに含まれるデータを検証します。具体的には、親ブロックが適切かどうか、適切なスロットに対応しているか、提案者インデックスが予期されたものであるか、RANDAO 開示が有効か、および提案者がスラッシュ対象になっていないか、について確認します。 `execution_payload`のバンドルが解除され、バリデータの実行クライアントが当該リストに含まれるトランザクションを実行して、提案される状態変更についてチェックします。 当該ブロックがこれらのチェックにすべて合格した場合、各バリデータはブロックを自身の正規チェーンに追加します。 以上のプロセスを、次のスロットでも繰り返します。 - -## ブロック報酬 {#block-rewards} - -ブロック提案者は、この作業に対する報酬を獲得します。 `base_reward` は、アクティブなバリデータの数と、それらのバリデータにおける有効な残高に基づいて計算されます。 その上で、ブロック提案者は、当該ブロックに含まれる 1 件の有効なアテステーションごとに`base_reward`の一部を受け取ります。当該ブロックをアテステーションするバリデータの数が多ければ多いほど、ブロック提案者の報酬は増えます。 スラッシングが必要なバリデータを報告したユーザーに対しても報酬が提供されます。この報酬額は、スラッシングされたバリデータにおける`有効な残高の512分の1`となります。 - -[報酬およびペナルティの詳細](/developers/docs/consensus-mechanisms/pos/rewards-and-penalties) - -## 参考文献 {#further-reading} - -- [ブロック入門](/developers/docs/blocks/) -- [プルーフ・オブ・ステーク入門](/developers/docs/consensus-mechanisms/pos/) -- [イーサリアムにおけるコンセンサスの仕様](https://github.com/ethereum/consensus-specs) -- [ガスパー入門](/developers/docs/consensus-mechanisms/pos/) -- [イーサリアムのアップグレード](https://eth2book.info/) diff --git a/src/content/translations/ja/developers/docs/mev/index.md b/src/content/translations/ja/developers/docs/mev/index.md deleted file mode 100644 index c9851dbfc68..00000000000 --- a/src/content/translations/ja/developers/docs/mev/index.md +++ /dev/null @@ -1,221 +0,0 @@ ---- -title: 最大抽出可能価値(MEV) -description: 最大抽出可能価値(MEV)という概念を紹介する。 -lang: ja ---- - -最大抽出可能価値(MEV)とは、特定のブロックにおけるトランザクションの追加、削除、または順序変更により、ブロックの生成時において標準的なブロック報酬やガス代を超過して抽出できる最大の価値を指します。 - -### 採掘可能価値(MEV) {#miner-extractable-value} - -最大抽出可能価値(MEV)は、 [プルーフ・オブ・ワーク](/developers/docs/consensus-mechanisms/pow/)に基づき導入された概念であり、当初は「採掘可能価値(MEV)」と呼ばれていました。 プルーフ・オブ・ワークでは、トランザクションの追加、削除、および順序決定をマイナーが管理していたためです。 しかし、[マージ](/upgrades/merge)によるプルーフ・オブ・ステークへの移行後、バリデータがこれらの役割を担うようになり、マイニングはイーサリアムのプロトコルから削除されました。 しかし、価値採掘のための手段は依然として存在するため、現在は「最大抽出可能価値」という用語を用います。 - -## 前提知識 {#prerequisites} - -[トランザクション](/developers/docs/transactions/)、[ブロック](/developers/docs/blocks/)、[プルーフ・オブ・ステーク](/developers/docs/consensus-mechanisms/pos)、および[ガス](/developers/docs/gas/)について理解している必要があります。 また、[分散アプリケーション(Dapp)](/dapps/)や[分散型金融(DeFi)](/defi/)の知識も有用です。 - -## MEV の抽出 {#mev-extraction} - -理論的に言えば、利益を伴う MEV の抽出の実行を保証できるのはバリデータのみであるため、MEV が蓄積するのはバリデータにおいてのみです。 しかし実際には、抽出される MEV の大部分は「サーチャー」と呼ばれる独立したネットワーク参加者が獲得しています。 サーチャーは、ブロックチェーンのデータに対して複雑なアルゴリズムを実行して利益を伴う MEV の抽出機会を検出し、ボットを利用してこれらの利益を伴うトランザクションをネットワークに自動的に送信します。 - -サーチャーは、高額のガス代を(バリデータに)支払ってでも、発見した利益が期待できるトランザクションがブロックに追加される可能性を高めたいと考えるため、バリデータは発生した MEV 全体からその一部を獲得することができます。 サーチャーが経済的に合理的に行動すると仮定した場合、サーチャーが支払いたいと考えるガス代は、サーチャーが獲得できる MEV の 100%までになります(ガス代が MEV の 100%を越えれば、サーチャーは赤字になるため)。 - -ただし、[分散型取引所(DEX)の裁定取引](#mev-examples-dex-arbitrage)のように競争が激しい MEV の抽出機会の場合、非常に多くのユーザーが利益を伴う裁定取引を実行したいと考えるため、サーチャーは、この MEV における全収益の 90%あるいはそれ以上をバリデータに支払う必要がある場合があります。 裁定取引が実行できる唯一の保証は、最も高いガス代を持つトランザクションを送信することだからです。 - -### ガス・ゴルフ {#mev-extraction-gas-golfing} - -上記の力学に基づき、「ガス・ゴルフ(gas golfing)」(ガス代が最も安価になるようにトランザクションをプログラミングすること)の能力が競合上の優位性として確立されています。ガス・ゴルフにより、サーチャーはより高価なガス代を設定しつつ、ガス代の合計額を一定に抑えられるためです(ガス代=ガス価格 ÷ 使用ガス量)。 - -よく知られているガス・ゴルフのテクニックとしては、以下があります:多くのゼロを持つ文字列で始まるアドレス (例: [0x0000000000C521824EaFf97Eac7B73B084ef9306](https://etherscan.io/address/0x0000000000c521824eaff97eac7b73b084ef9306)) を使う方法では、保存スペースが小さくなるためガス代も低くなります。あるいは、少額の[ERC-20](/developers/docs/standards/tokens/erc-20/) トークン残高をコントラクトに残しておく方法もありますが、これは(残高が 0 の場合に)ストレージスロットを初期化すると、 ストレージスロットを更新する場合よりも多くのガスが消費される点を利用したものです。 サーチャーのコミュニティでは、ガスの使用量を減らすためのテクニックが活発に研究されています。 - -### 汎用フロントランナー {#mev-extraction-generalized-frontrunners} - -一部のサーチャーは、利益を伴う MEV 機会を検出するために複雑なアルゴリズムを開発する代わりに、汎用的なフロントランナーを実行します。 汎用フロントランナーとは、利益を伴うトランザクションを検出するためにメモリプールを監視するボットです。 汎用フロントランナーは、潜在的に利益を伴うトランザクションのコードをコピーし、フロントランナーのアドレスで置き換えた上でトランザクションをローカルで実行することで、修正後のトランザクションがフロントランナーのアドレスに収益をもたらすことをダブルチェックします。 このトランザクションが実際に利益をもたらすことが確認できれば、フロントランナーはアドレスを置き換えた修正後のトランザクションをより高いガス代と共に送信し、本来のトランザクションよりも「優位に立つ」ことで、本来のサーチャーが得ようとした MEV を獲得することができるのです。 - -### ブラッシュボット {#mev-extraction-flashbots} - -フラッシュボットは、実行クライアントを拡張する独立したプロジェクトであり、サーチャーに対して、パブリックのメモリプールに公開することなく、MEV トランザクションをバリデータに送信できるサービスを提供します。 このサービスを使用すれば、汎用フロントランナーを用いたトランザクションに実行を先回りされることを防ぐことができます。 - -## MEV の実例 {#mev-examples} - -ブロックチェーンにおいて MEV が発生するケースは、いくつかの種類があります。 - -### DEX における裁定取引 {#mev-examples-dex-arbitrage} - -[分散型取引所 (DEX)](/glossary/#dex)における裁定取引は、最もシンプルでよく知られている MEV の機会です。 このため、ユーザー間の競争も最も激しくなっています。 - -具体的には、以下のように発生します:2 カ所の DEX が同じトークンを異なる価格で提供している場合、より安価に設定した DEX でトークンを購入し、より高価に設定した DEX で売却すれば、1 回の不可分な取引で利益を得ることができます。 ブロックチェーンの仕組みにより、全くリスクを伴わない裁定取引が可能になります。 - -[これは](https://etherscan.io/tx/0x5e1657ef0e9be9bc72efefe59a2528d0d730d478cfc9e6cdd09af9f997bb3ef4)、Uniswap および Sushiswap における ETH/DAI ペアの価格差を利用して、サーチャーが 1,000ETH を 1,045ETH に変換して収益を得た裁定取引の例です。 - -### 清算 {#mev-examples-liquidations} - -貸出プロトコルによる精算も、よく知られた MEV 獲得機会のひとつです。 - -Maker や Aave のような貸出プロトコルでは、ユーザーは何らかの担保(例: ETH)を預入しなければなりません。 預け入れられた担保は、他のユーザーに貸し出されます。 - -ユーザーは、この仕組みを活用して、預け入れた担保に対する一定の上限額まで、自らの必要に応じて他のユーザーから資産やトークンを借り入れることができます(例: MakerDAO のガバナンス提案に投票するために、MKR を借り入れる場合)。 例えば、借入可能額が預け入れた担保の 30%までの場合、プロトコルに 100 DAI を預け入れれば、30 DAI の価値を持つ他の資産を借り入れることができます。 貸出プロトコルは、具体的な借入能力(担保に対する割合)を決定します。 - -借り手の担保価値が変動すれば、借入能力も上下します。 具体的には、市場の変動により借入資産の価値が担保価値の(例えば)30%を越えた場合(上述したように、実際の借入可能な割合は貸出プロトコルが決定します)、貸出プロトコルは通常、あらゆるユーザーに対してこの担保を精算し、瞬時に貸し手に払い戻すことを許可します(これは、伝統的な金融市場における[マージンコール](https://www.investopedia.com/terms/m/margincall.asp)の仕組みと同様です)。 一般に、担保が精算される場合に借り手は高額の精算手数料を支払う必要があり、この手数料の一部は清算人に支払われるため、MEV を獲得する機会が発生するのです。 - -サーチャーは、可能なかぎり高速にブロックチェーンのデータを分析することで、精算の対象となりうる借り手を特定し、精算トランザクションを他に先がけて送信し、精算手数料を回収するための競争を行っています。 - -### サンドイッチ取引 {#mev-examples-sandwich-trading} - -サンドイッチ取引もまた、一般的な MEV 抽出の方法です。 - -サーチャーは、サンドイッチ取引を念頭に置いて DEX における大型取引のメモリプールを監視します。 例えば、あるユーザーが Uniswap で、DAI を使って 10000 UNI を購入したい場合を考えてみましょう。 これほど大きな取引は、UNI/DAI ペアの為替レートに有意な影響を与えるものであり、対 DAI の UNI 価格を大きく上昇させる可能性があります。 - -サーチャーは、この大口取引による UNI/DAI ペアに対する大まかな価格効果を計算し、大口取引の*直前に*最適な買い注文を実行して UNI を安価で購入した上で、大口取引の*直後に* 売り注文を実行し、大口注文により値上がりした価格で売却することができます。 - -しかし、サンドイッチ取引は 1 回で完結できない取引であるため(この点が、上述の DEX における裁定取引とは異なります)よりリスクが大きく、[サルモネラ攻撃](https://github.com/Defi-Cartel/salmonella)の対象となりやすい欠点を持ちます。 - -### NFT を利用した MEV {#mev-examples-nfts} - -NFT を用いた MEV の抽出は、最近発生しつつある現象であり、必ずしも利益を伴う取引ではありません。 - -しかし、NFT のトランザクションは、その他すべてのイーサリアムのトランザクションと同一のブロックチェーン上で実行されるため、サーチャーは上記で紹介した従来の MEV 獲得のためのテクニックを NFT 市場でも応用することができます。 - -例えば、人気が高い NFT ドロップが実行され、サーチャーが特定の NFT あるいは複数の NFT を持つセットを獲得したい場合、この NFT の購入リストの先頭になるようにトランザクションをプログラミングしたり、1 回のトランザクションで当該 NFT のセット全体を購入したりすることができます。 また、NFT が [ミスにより低価格で出品](https://www.theblockcrypto.com/post/113546/mistake-sees-69000-cryptopunk-sold-for-less-than-a-cent)されている場合、サーチャーは他の購入者を先回りして取引を実行し、安価で手に入れることができます。 - -NFT を使った MEV 抽出の顕著な事例としては、あるサーチャーが 700 万ドルを投じて、Cryptopunk を底値ですべて[購入した](https://etherscan.io/address/0x650dCdEB6ecF05aE3CAF30A70966E2F395d5E9E5)ケースがあります。 この事例については、買い手が MEV プロバイダーと連携してどのようにこの購入を秘匿したかについて、あるブロックチェーン研究者が[ツイッター](https://twitter.com/IvanBogatyy/status/1422232184493121538)上で説明しています。 - -### ロングテール {#mev-examples-long-tail} - -DEX における裁定取引、精算、およびサンドイッチ取引はいずれも、よく知られた MEV の獲得機会であり、新規参入のサーチャーが利益を得られる可能性は低いです。 しかし、数は少ないものの、まだ一般的でない MEV の獲得機会も存在します(NFT による MEV 獲得も、そのひとつだと言えるかもしれません)。 - -サーチャーの分野に新たに参入したい方は、このロングテールの部分に焦点を当てることで、MEV を獲得できる可能性が高まるかもしれません。 フラッシュボットの[MEV 求人板](https://github.com/flashbots/mev-job-board)には、最近発生しつつある新たな MEV 獲得機会が掲載されています。 - -## MEV の影響 {#effects-of-mev} - -MEV は必ずしも絶対悪ではなく、イーサリアムにとってはよい影響と悪い影響の両方を持ちます。 - -### よい影響 {#effects-of-mev-the-good} - -多くの分散型金融(DeFi)プロジェクトは、プロトコルの有用性と安定性を確保するために、経済的合理性に基づいて行動するユーザーに依存しています。 DEX における裁定取引は、ユーザーが各自のトークンに対して最善かつ最も適切な価格を得られることを保証するメカニズムであり、貸出プロトコルは、借入可能な比率を超過した借り手にただちに精算を迫ることで、貸し手に対する返済を保証しています。 - -経済合理性に基づき行動するサーチャーが、経済的な非効率性を発見し、それを修正することで、当該プロトコルにおける経済的なインセンティブを獲得することができなければ、DeFi のプロトコルや Dapp は現在実現されている強じん性を維持できないでしょう。 - -### 悪い影響 {#effects-of-mev-the-bad} - -アプリケーションレイヤーにおいては、サンドイッチ取引をはじめとする一部の MEV 獲得方法はユーザーの利用体験を明らかに低下させます。 サンドイッチ取引に巻き込まれたユーザーは、スリッページの被害を受け、取引条件が悪化するでしょう。 - -ネットワークレイヤーにおいては、汎用フロントランナーやガス価格のオークションが頻繁に用いられるため(複数のフロントランナーが、次のブロックに追加されるトランザクションのガス代を吊り上げる競争を行う場合)、ネットワークの混雑が悪化するだけでなく、通常のトランザクションを実行したい他のすべてのユーザーにとってもガス代が上昇してしまいます。 - -MEV は、ブロック *内部における影響に加えて、複数のブロック*間においても悪影響をもたらす場合があります。 特定のブロック内において獲得できる MEV が標準的なブロック報酬を大きく上回る場合、バリデータにとっては、ブロックを再編成し、バリデータ自身が MEV を獲得しようというインセンティブが発生しうるため、ブロックチェーンの再編成を促し、コンセンサスの安定性が損なわれる可能性があります。 - -このブロックチェーンが再編成される可能性は、 [すでにビットコインのブロックチェーンにおいて発生しています](https://dl.acm.org/doi/10.1145/2976749.2978408)。 ビットコインのブロック報酬が半減し、ブロック報酬においてトランザクション手数料が占める割合がますます大きくなると、マイナーにとっては、次のブロックで得られる報酬よりも、より高額な手数料が期待できる過去のブロックを再採掘する方が経済的に合理的である状況が発生します。 MEV の抽出が一般化した場合、イーサリアムにおいても類似の状況が発生し、イーサリアム・ブロックチェーンの健全性が損なわれる可能性があります。 - -## MEV の現況 {#state-of-mev} - -MEV の抽出は、2021 年初頭から爆発的に増加し、同年 1 月から数ヶ月にわたりガス価格が大きく高騰しました。 しかし、フラッシュボットの MEV リレーが登場した結果、汎用フロントランナーの効果が薄れ、ガス代のオークションがオフチェーンで実行されるようになったため、通常のユーザーが支払うガス価格は低下しました。 - -現在も多くのサーチャーが MEV により充分な利益を得ているものの、MEV の抽出機会に対する認知度が高まり、同じ機会により多くのサーチャーが参加するようになるにつれ、MEV の総収益のうちバリデータの利益が占める割合はますます大きくなるでしょう(と言うのも、上記で説明したガス代のオークションと同様の状況は、非公開の取引を通じてフラッシュボットでも発生するため、その結果発生するガス収益はバリデータが獲得するためです)。 また、MEV が発生するのはイーサリアムに限りません。イーサリアムにおける MEV の獲得機会に対する競争が激化するにつれ、サーチャーは、同じような機会が存在し、より競争相手が少ないバイナンス・スマートチェーンなどの他のブロックチェーンに移行する傾向を強めています。 - -一方、プルーフ・オブ・ワークからプルーフ・オブ・ステークへの移行や、ロールアップならびにシャーディングを活用してイーサリアムのスケーリングを実現するための継続的な取り組みなどはいずれも、MEV を取り巻く環境を一変させるものですが、それらがどのような影響を及ぼすかは現時点では明確ではありません。 プルーフ・オブ・ワークの確率論的モデルとの比較において、保証済みのブロック提案者に対してやや事前に通知することが MEV 抽出の力学をどのように変化させるのか、あるいは、[1 名のシークレットリーダー選挙](https://ethresear.ch/t/secret-non-single-leader-election/11789)および[分散型バリデータ技術](https://github.com/ethereum/distributed-validator-specs)が実装された場合に、この環境がどのような影響を被るのかは、現在のところはっきりしていません。 同様に、大部分のユーザーアクティビティがイーサリアムの外部に移行し、L2 におけるロールアップやシャードで実行される場合、どのような MEV の抽出機会が残存するのかも不明です。 - -## イーサリアムのプルーフ・オブ・ステーク(PoS)における MEV {#mev-in-ethereum-proof-of-stake} - -上述したように、MEV は全般的なユーザー体験やコンセンサスレイヤーのセキュリティに悪影響を及ぼします。 しかし、イーサリアムにおけるプルーフ・オブ・ステークへの移行(「マージ」と呼ぶ)に伴い、MEV に関連して以下のような新たなリスクが発生する可能性があります: - -### バリデータの集中 {#validator-centralization} - -マージ後のイーサリアムにおいては、バリデータ(32 ETH のセキュリティ・デポジットを行ったユーザー)は、ビーコンチェーンに追加されたブロックの検証に対するコンセンサスに参加します。 多くのユーザーにとっては、32 ETH の負担は大きすぎるため、[ステーキングプールへの参加](/staking/pools/)がより現実的なオプションとなるかもしれません。 しかし、特定のユーザーのみにバリデータが集中することを回避し、イーサリアムのセキュリティを向上させるには、[ソロステーカー](/staking/solo/)の割合を健全に保つことが望ましいと言えます。 - -しかし、MEV の抽出機会により、特定のユーザーのみがバリデータとなる傾向が強まると考えられています。 この原因のひとつとして、現在のところ、バリデータはマイナーと比較すると[ブロックの提案により得られる収入が少ない](/upgrades/merge/issuance/#how-the-merge-impacts-ETH-supply)ため、MEV の抽出がマージ後における[バリデータの収益](https://github.com/flashbots/eth2-research/blob/main/notebooks/mev-in-eth2/eth2-mev-calc.ipynb)に対して大きな影響を与えると予想されるためです。 - -ステーキングプールの規模が大きくなればなるほど、MEV の抽出機会を活用するために必要な最適化に対してより多くのリソースを投じる傾向が高まるでしょう。 これらのプールから抽出できる MEV が大きくなればなるほど、バリデータは MEV の抽出能力を向上させるためにより多くのリソースを投じ、(さらに全体的な収益増を実現する)ことになるため、結果的に[規模の経済](https://www.investopedia.com/terms/e/economiesofscale.asp#)が実現されます。 - -ソロステーカーは、利用できるリソースが少ないために、MEV の機会から利益を得られなくなるかもしれません。 これにより、独立系のバリデータが収益を高めるために大規模なステーキングプールに参加する傾向が強まり、イーサリアムにおける分散化が損なわれる可能性があります。 - -### 許可済みのメモリプール {#permissioned-mempools} - -サンドイッチ取引やフロントランナー攻撃に対処するため、取引を行うユーザーは、トランザクションのプライバシーを維持するためにバリデータを伴う取引をオフチェーンで実行するようになるかもしれません。 MEV 抽出の可能性があるトランザクションを公開メモリプールに送信するのではなく、バリデータにトランザクションを直接送信する方法では、ブロックへの追加を担うバリデータと利益を共有することができます。 - -このような取り決めをより大規模にしたものが「ダークプール」であり、一定の手数料を支払う意思があるユーザーのみが参加する、許可済みでアクセスのみ可能なメモリプールとして機能します。 このようなメモリプールを活用する傾向が強まれば、イーサリアムにおけるパーミッションレス、トラストレスの特性が失われ、ブロックチェーンが最高額入札者にとって有利な「ペイ・トゥ・プレイ」のメカニズムに変質してしまう可能性があります。 - -さらに、許可済みのメモリプールは、上述したようにユーザーの集中化というリスクを強めます。 複数のバリデータが大規模なプールを実行する場合、取引者およびユーザーにとってはトランザクションのプライバシーを維持できるという利益が発生するため、MEV の収益が増加するでしょう。 - -マージ後のイーサリアムにおいては、これらの MEV 関連の問題にどう対処するかがリサーチコミュニティにおける核心的な課題となっています。 現在のところ、マージ後のイーサリアムにおいて MEV が及ぼす分散化およびセキュリティへの悪影響を軽減するためのソリューションとしては、**提案者と作成者の分離(PBS)**および**ビルダー API**が提案されています。 - -### ブロックにおける提案者と作成者の分離(PBS) {#proposer-builder-separation} - -プルーフ・オブ・ワークであれプルーフ・オブ・ステークであれ、ブロックを作成するノードは、作成したブロックをチェーンに追加することをコンセンサスに参加する他のノードに提案します。 新しいブロックは、他のマイナーがさらにその上にブロックを構築した場合(プルーフ・オブ・ワーク)、あるいは過半数のバリデータからアテステーションを受け取った場合(プルーフ・オブ・ステーク)に、正規のブロックチェーンに追加されます。 - -この記事で紹介した MEV に関する問題点の多くは、ブロックの作成者と提案者の役割が分離されていないことに由来しています。 例えば、コンセンサスに参加しているノードは、MEV による収益を最大化するために、タイムバンディット攻撃を使ってチェーンの再編成をトリガーするインセンティブを持っています。 - -[提案者と作成者の分離(PBS)](https://ethresear.ch/t/proposer-block-builder-separation-friendly-fee-market-designs/9725) は、特にコンセンサスレイヤーにおける MEV の影響を軽減するように設計されています。 PBS の主な機能は、ブロックの作成者と提案者に対するルールを分離することです。 バリデータがブロックの提案と投票に責任を負う点は変わりませんが、**ブロックビルダー**と呼ばれる専門の新たなエンティティ・クラスが導入され、トランザクションの順番付けと構築を担当することになります。 - -PBS では、ブロックビルダーがトランザクションバンドルを作成し、ビーコンチェーン・ブロックへの追加に対して(「実行ペイロード」として)入札を行います。 次のブロック提案者として選択されたバリデータは、これを受けて、様々な入札をチェックし、最も高額な手数料のバンドルを選択します。 つまり PBS は、ブロックスペースの販売価格についてビルダーとバリデーターが交渉するオークション市場を構築するものです。 - -現在の PBS の設計では、ブロックビルダーは入札において、当該ブロックのコンテンツ(ブロックヘッダー)に対する暗号コミットメントのみを公開する[コミットメント=公開スキーム](https://gitcoin.co/blog/commit-reveal-scheme-on-ethereum/)が採用されています。 提案者は、最高額の入札を受け入れた上で、ブロックヘッダーを含む署名済みのブロック提案を作成します。 ブロックビルダーは、署名済みのブロック提案を確認した後にブロック全体を公開すると想定されており、ブロック提案が最終決定される前に、バリデータから充分な数の[アテステーション](/glossary/#attestation)を得なければなりません。 - -#### 提案者と作成者の分離は、MEV の悪影響をどの程度緩和するか? {#how-does-pbs-curb-mev-impact} - -プロトコルにおいて提案者と作成者を分離することで、MEV の抽出がバリデータの作業範囲に含まれなくなるため、コンセンサスに対する MEV の影響を軽減することができます。 これにより、今後は専用のハードウェアを稼働させているブロックビルダーが MEV の抽出機会を得ることになります。 - -ただし、ブロックビルダーはバリデータによる承認を得るために入札額を高くしなければならないため、バリデータにとっても MEV に伴う収益がまったくゼロになるわけではありません。 しかし、バリデータは MEV による収益増を直接的な目標として行動しなくなるため、タイムバンディット攻撃の脅威を低下させることができます。 - -PBS はさらに、MEV による集中化のリスクを引き下げます。 例えば、コミット=公開スキームにより、ブロックビルダーは、バリデータが MEV の抽出機会を奪い取ったり、他の構築者に公開することを行わないユーザーである信頼する必要がなくなります。 これにより、ソロステーカーが MEV 抽出による利益を得る上での障壁が低くなります。そうでなければ、ブロックビルダーはオフチェーンでの評判が高い大規模なプールを選好し、オフチェーンでの取引が増加するトレンドが発生するでしょう。 - -同じように、バリデータの側も、支払いが必須であるため、ブロックビルダーがブロックボディを秘匿したり、無効なブロックを公開しないユーザーである信頼する必要がなくなります。 つまり、提案されたブロックが参照できない場合や、他のバリデータにより無効と宣言された場合でも、当初のバリデータの手数料は処理されるのです。 他のバリデータが無効と宣言した場合、当該ブロックは単に破棄され、ブロックビルダーはすべての取引手数料および MEV 収益を失うことになります。 - -### ビルダー API {#builder-api} - -PBS(提案者と作成者の分離)は、MEV の抽出に伴う悪影響を減らす効果が期待される一方で、実装にはコンセンサス・プロトコルの変更が必要です。 具体的には、ビーコンチェーンにおける[分岐の選択](/developers/docs/consensus-mechanisms/pos/#fork-choice)ルールを変更する必要があります。 [ビルダー API](https://github.com/ethereum/builder-specs)は、信頼性の前提がより高くなるものの、提案者と作成者を実務的に分離するための一時的なソリューションです。 - -ビルダー API は、コンセンサスレイヤーのクライアントが実行レイヤーのクライアントに対して実行ペイロードを請求する際に用いられる[エンジン API](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md)の修正バージョンです。 [正直なバリデータの仕様](https://github.com/ethereum/consensus-specs/blob/dev/specs/bellatrix/validator.md)に概要が記述されている通り、ブロック提案に関する職責のために選択されたバリデータは、接続された実行クライアントにトランザクションバンドルを要求し、そのバンドルを提案されたビーコンチェーンのブロックに追加します。 - -ビルダー API はさらに、バリデータと実行レイヤーのクライアントとの間のミドルウェアとして機能します。ただし、ビーコンチェーン上のバリデータが外部エンティティからブロックを調達できる(実行クライアントを用いてローカルでブロックを構築するのではない)点が異なります。 - -以下に、ビルダー API の仕組みについて簡単に説明します: - -1. ビルダー API により、バリデータは、実行レイヤーのクライアントを実行しているブロックビルダーのネットワークに接続されます。 PBS の場合と同様に、ビルダーは、リソース集約型のブロック構築への投資に特化し、MEV や優先度チップを通じた収益最大化のために様々な戦略を用いるユーザーで構成されます。 - -2. (コンセンサスレイヤーのクライアントを実行中である)バリデータは、ビルダーのネットワークからの入札と同時に、実行ペイロードを要求します。 ビルダーからの入札には、実行ペイロードヘッダー(ペイロードのコンテンツに対する暗号コミットメント)と、バリデータに支払う手数料が含まれています。 - -3. バリデータは、送信された入札をレビューした上で、最も手数料が高い実行ペイロードを選択します。 バリデータは、ビルダー API を用いて、各自の署名と実行ペイロードヘッダーのみが含まれている「ブラインド」のビーコン用ブロック提案を作成し、ビルダーに送り返します。 - -4. ビルダー API を実行しているビルダーは、ブラインドのブロック提案を確認した上で、完全な実行ペイロードで対応すると想定されています。 これにより、バリデータは「署名済み」のビーコンブロックを作成し、ネットワークに拡散することができます。 - -5. ビルダー API を使用するバリデータの場合でも、ブロックビルダーが迅速に対応しない場合にブロック提案に伴う報酬が受け取れない場合を避けるために、ローカルでブロックを構築する必要があります。 しかしバリデータは、この時点で公開されたトランザクションあるいは他のセットを用いて別のブロックを作成することはできません。これは*曖昧化*(同じスロット内の 2 つのブロックに署名すること)を発生させるため、スラッシングの対象である違反行為です。 - -ビルダー API の実装例としては、イーサリアムに対する MEV の悪影響を軽減するように[フラッシュボットのオークション機能](https://docs.flashbots.net/Flashbots-auction/overview/)を改善した[MEV Boost](https://github.com/flashbots/mev-boost)があります。 フラッシュボットのオークションでは、プルーフ・オブ・ワークを行うマイナーに対し、利益を伴うブロックを作成する作業を**サーチャー**と呼ばれる専門のユーザーに外注することが認められています。 - -サーチャーは、利益性が高い MEV の機会を発見するために、マイナーに対して[非公開の入札価格](https://en.wikipedia.org/wiki/First-price_sealed-bid_auction)と共にトランザクションバンドルを送信してブロックへの追加を求めます。 Go-Ethereum(Geth)クライアントの分岐後のバージョンである mev-geth を実行しているマイナーは、最も収益が大きいバンドルを選択し、それを新たなブロックの一部としてマイニングすればよいのです。 マイナーからスパムや無効のトランザクションから保護するため、トランザクションバンドルは、マイナーが受信する前に、**リレイヤー**による検証が行われます。 - -MEV Boost は、フラッシュボットにおける従来のオークションと同一の仕組みを採用していますが、イーサリアムにおけるプルーフ・オブ・ステークへの移行に対応した新機能が追加されています。 サーチャーが利益を伴う MEV トランザクションをブロックに追加しようとする点は同じですが、**ビルダー**と呼ばれる新たな専門ユーザーがトランザクションおよびバンドルをブロックにまとめる役割を担います。 ビルダーは、サーチャーから送信された非公開の入札価格を受け入れ、最適化を実行することで最も利益性が高い注文を決定します。 - -ここでもリレイヤーは、提案者に送信する事前にトランザクションを検証する責任を負う点は変わりません。 しかし MEV Boost では、ビルダーから送信されたブロックボディおよびバリデータから送信されたブロックヘッダーを保存することで、[データの可用性](/developers/docs/data-availability/)を提供する仕組みである**エスクロー**が導入されています。 エスクローでは、リレーに接続されたバリデータが利用可能な実行ペイロードを要求し、MEV Boost の注文アルゴリズムを用いて、入札価格および MEV チップが最も高いペイロードヘッダーを選択します。 - -#### ビルダー API は、どのように MEV の悪影響を軽減するのか? {#how-does-builder-api-curb-mev-impact} - -ビルダー API がもたらす利点の核心は、MEV の抽出機会を利用できるユーザー層を民主化しうるという点にあります。 コミット=公開スキームを採用することで、信頼性の前提が必要なくなり、MEV から利益を得たいと考えるバリデータにおける参入障壁が低くなります。 このため、ソロステーカーが MEV による収益増を目指す場合に、大規模なステーキングプールに参入しなければならないという圧力が少なくなるでしょう。 - -ビルダー API の実装が一般化すれば、ブロックビルダー間の競争が促進され、検閲耐性が高まるでしょう。 バリデータは、複数のビルダーからの入札をレビューするようになるため、1 件または複数のユーザートランザクションを検閲したいと考えるビルダーは、検閲の意図を持たないその他すべてのビルダーよりも高値を提示しなければならなくなります。 これにより、ユーザーを検閲するコストが劇的に上昇するため、検閲できるユーザーが減ると予想されます。 - -MEV Boost をはじめとするいくつかのプロジェクトでは、フロントランニングやサンドイッチ取引などを開始したいトレーダーなど、特定のユーザーにトランザクションのプライバシーを提供するという全般的な構造設計の一環としてビルダー API を採用しています。 これは、ユーザーとブロックビルダー間に非公開のコミュニケーションチャネルを提供することで達成されます。 上述の許可済みメモリプールの場合とは異なり、このアプローチは以下の点で有益だと言えます: - -1. 複数のビルダーが市場で共存することで、実務上検閲の意味がなくなるため、ユーザーにとって有益です。 反対に、集中型で信頼ベースのダークプールが存在する場合、数名のブロックビルダーに権力が集中し、検閲が発生する可能性が高まります。 - -2. ビルダー API のソフトウェアはオープンソースであるため、どのユーザーでもブロックビルダー関連のサービスを提供できます。 これにより、ユーザーは特定のブロックビルダーの使用を強制されることがないため、イーサリアムの中立性やパーミッションレス性が向上します。 さらい、MEV の獲得を目指すトレーダーが、非公開のトランザクションチャネルを利用することで意図せずに集中化を促進してしまうことがなくなります。 - -## 関連リソース {#related-resources} - -- [フラッシュボット関連文書](https://docs.flashbots.net/) -- [フラッシュボットの GitHub](https://github.com/flashbots/pm) -- [MEV-Explore](https://explore.flashbots.net/) - _MEV のトランザクションを対象とするダッシュボードおよび同時検索プログラム_ -- [mevboost.org](https://www.mevboost.org/) - _MEV-Boost リレーとブロックビルダーに関するリアルタイムの統計を提供するトラッカー_ - -## 参考文献 {#further-reading} - -- [採掘可能価値(MEV)とは何か?](https://blog.chain.link/what-is-miner-extractable-value-mev/) -- [MEV と私](https://research.paradigm.xyz/MEV) -- [イーサリアムはダークな森である](https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest/) -- [ダークな森から抜け出すには](https://samczsun.com/escaping-the-dark-forest/) -- [フラッシュボッツ: MEV 危機をフロントランニングするには](https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752) -- [@bertcmiller の MEV 関連スレッド](https://twitter.com/bertcmiller/status/1402665992422047747) -- [MEV-Boost: マージに対応した Flashbots のアーキテクチャ](https://ethresear.ch/t/mev-boost-merge-ready-flashbots-architecture/11177) -- [MEV Boost とは](https://www.alchemy.com/overviews/mev-boost) -- [mev-boost を実行する理由](https://writings.flashbots.net/writings/why-run-mevboost/) -- [イーサリアムへのヒッチハイク・ガイド](https://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum) diff --git a/src/content/translations/ja/developers/docs/networking-layer/index.md b/src/content/translations/ja/developers/docs/networking-layer/index.md deleted file mode 100644 index f2d427f9b3f..00000000000 --- a/src/content/translations/ja/developers/docs/networking-layer/index.md +++ /dev/null @@ -1,155 +0,0 @@ ---- -title: ネットワークレイヤー -description: イーサリアムネットワークレイヤー入門 -lang: ja -sidebarDepth: 2 ---- - -イーサリアムは、何千ものノードからなるピアツーピアネットワークですが、標準プロトコルを使用して、複数のノード間で直接的に相互に通信できる必要があります。 「ネットワークレイヤー」とは、これらのノードが互いを見つけて情報を交換可能とする為のプロトコルが集まったものです。 イーサリアムのネットワークレイヤーには、特定のノード間でのリクエストとレスポンスの交換(1 対 1 の通信)だけでなく、ネットワーク上での情報の「ゴシップ」(1 対多の通信)も含まれます。 各ノードは、正しい情報を送受信するために、特定のネットワークルールを遵守する必要があります。 - -クライアントソフトウェアには 2 つの部分(実行クライアントとコンセンサスクライアント)があり、それぞれ独自のネットワークスタックを備えています。 他のイーサリアムノードと通信するだけでなく、実行クライアントとコンセンサスクライアントは互いに通信する必要があります。 このページでは、初心者向けに、この通信を可能にするプロトコルを説明をします。 - -実行クライアントは、実行レイヤーのピアツーピアネットワーク上でトランザクションをゴシップします。 これには、認証されたピア同士の暗号化通信が必要です。 ブロックを提案するバリデータが選ばれると、そのノードのローカルトランザクションプールからトランザクションがローカル RPC 接続を介してコンセンサスクライアントに渡され、ビーコンブロックにパッケージ化されます。 コンセンサスクライアントはその後、ピアツーピアネットワーク上でビーコンブロックをゴシップします。 これは 2 つの別々のピアツーピアネットワークを必要とします。1 つはトランザクションゴシップのための実行クライアントを接続するもので、もう 1 つはブロックゴシップのためのコンセンサスクライアントを接続するものです。 - -## 前提知識 {#prerequisites} - -このページを理解する上で、あらかじめ、イーサリアム [ノードとクライアント](/developers/docs/nodes-and-clients/) についてある程度理解を深めておくと良いでしょう。 - -## 実行レイヤー {#execution-layer} - -実行レイヤーのネットワークプロトコルは、2 つのスタックに分割されています: - -- ディスカバリースタック: UDP 上に構築され、新しいノードがピアに接続できるようにする - -- DevP2P スタック:TCP 上に構築され、ノードが情報交換できるようにする - -両スタックは、並列的に動作します。 ディスカバリースタックは新しいネットワーク参加者をネットワークに送り込み、DevP2P スタックによって相互通信が可能になります。 - -### ディスカバリー(Discovery) {#discovery} - -ディスカバリーとは、ネットワークの他のノードを見つけるプロセスです。 これは、小規模なブートノード(クライアントをすぐに見つけピアに接続できるように、アドレスがクライアントに [ハードコードされている](https://github.com/ethereum/go-ethereum/blob/master/params/bootnodes.go)ノード)を使用してブートストラップされています。 これらのブートノードは、新しいノードをピアのセットに追加するためにのみ存在します。これが唯一の目的で、チェーンの同期などの通常のクライアントタスクには参加せず、クライアントが初回起動した時にのみ使用されます。 - -ノードとブートノードとのやり取りに使用されるプロトコルは、[Kademlia](https://medium.com/coinmonks/a-brief-overview-of-kademlia-and-its-use-in-various-decentralized-platforms-da08a7f72b8f)が修正された形式です。これは、[分散ハッシュテーブル](https://en.wikipedia.org/wiki/Distributed_hash_table)を使用してノードのリストを共有します。 各ノードには、最も近いピアに接続するために必要な情報を含む、分散ハッシュテーブルのバージョンがあります。 この「近さ」とは地理的なものではありません。ここでの距離はノードの ID の類似性によって定義されるものです。 各ノードのテーブルは、セキュリティ機能として定期的に更新されます。 例えば、 [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5)では、ディスカバリープロトコルのノードは、クライアントがサポートするサブプロトコルを表示する「広告」を送信することもでき、ピアは両者が通信に使用できるプロトコルについて取り決めることができます。 - -ディスカバリーは、PING-PONG から始まります。 ピンポンが成功すると、新しいノードはブートノードに「結合」されます。 ネットワークに入る新しいノードの存在をブートノードに通知する最初のメッセージは `PING` です。 この`PING`には、新しいノード、ブートノード、および期限切れのタイムスタンプに関するハッシュ化された情報が含まれています。 ブートノードは`PING`を受信し、 `PING` のハッシュを含む`PONG`を返します。 `PING`と`PONG`のハッシュが一致すると、新しいノードとブートノードの接続が確認され、「結合」されたと言うことになります。 - -一度結合されると、新しいノードはブートノードに`FIND-NEIGHBOURS`リクエストを送信できるようになります。 ブートノードから返されるデータには、新しいノードが接続できるピアのリストが含まれています。 ノードが結合されていない場合、`FIND-NEIGHBOURS`リクエストは失敗となるため、新しいノードはネットワークに入ることができません。 - -新しいノードは、ブートノードから近隣ノードのリストを受け取ると、それぞれのノードと PING-PONG を開始します。 PING-PONG が成功すると、新しいノードとその隣接ノードが結合され、メッセージの交換が可能になります。 - -``` -start client --> connect to bootnode --> bond to bootnode --> find neighbours --> bond to neighbours -``` - -実行クライアントは、現在[Discv4](https://github.com/ethereum/devp2p/blob/master/discv4.md)ディスカバリープロトコルを使っています。[Discv5](https://github.com/ethereum/devp2p/tree/master/discv5)プロトコルに移行するための積極的に取り組んでいます。 - -#### ENR: イーサリアムノードレコード(Ethereum Node Record) {#enr} - -[イーサリアムノードレコード (ENR)](/developers/docs/networking-layer/network-addresses/) とは、署名(合意された 認証スキームに従って作成されたレコード内容のハッシュ)、レコードへの変更を追跡するシーケンス番号、およびキーと値のペアの任意のリストという 3 つの基本要素を含むオブジェクトのことです。 これは、新しいピア間で識別情報の交換を容易にする、将来性のあるフォーマットで、イーサリアムノードの[ネットワークアドレス](/developers/docs/networking-layer/network-addresses)の優先フォーマットです。 - -#### ディスカバリーが UDP で構築されている理由 {#why-udp} - -UDP はエラーチェック、失敗したパケットの再送、接続の動的な開閉をサポートしません。UDP は、受信に成功したかどうかにかかわらず、単にターゲットに対して連続的な情報ストリームを送信するだけです。 こうした最小限の機能により、オーバーヘッドも最小限に抑えられ、接続は非常に高速になります。 ノードが単に自分の存在を知らせ、相手との正式な接続を確立するためのディスカバリーにとっては、UDP で十分に要件を満たすことができます。 しかし、ディスカバリー以外の残りのネットワークスタックにとっては、UDP では目的を満たすことはできません。 ノード間の情報交換は非常に複雑であるため、再送信やエラーチェックなどに対応できる、より高機能なプロトコルが必要です。 TCP に付随する追加のオーバーヘッドは、まさにこうした追加機能として必要な要件を満たしています。 したがって、P2P スタックの大部分は TCP で動作することになります。 - -### DevP2P {#devp2p} - -DevP2P は、それ自体がピアツーピアネットワークの確立と維持するためにイーサリアムが実装しているプロトコルのスタックをすべてを包括しています。 新しいノードがネットワークに参加した後、その相互通信は[DevP2P](https://github.com/ethereum/devp2p)スタックのプロトコルによって制御されます。 これらはすべて TCP 上にあり、RLPx トランスポートプロトコル、ワイヤプロトコル、およびいくつかのサブプロトコルが含まれています。 [RLPx](https://github.com/ethereum/devp2p/blob/master/rlpx.md)は、ノード間のセッションを開始、認証、維持するためのプロトコルです。 RLPx はデータをノード間で送信するための最小限の構造にエンコードする非常にスペース効率の良い RLP (再帰的な長さのプレフィックス)を使ってメッセージをエンコードします。 - -2 つのノード間の RLPx セッションは、最初の暗号化ハンドシェイクで始まります。 このプロセスには、ノードが auth メッセージを送信し、ピアによって検証されることが含まれます。 検証に成功すると、ピアは auth-acknowledgement メッセージを生成し、イニシエーター・ノードに返します。 これは、ノードが非公開で安全に通信できるようにするための鍵交換プロセスです。 暗号化ハンドシェイクが成功すると、両ノードに「Hello」メッセージを互いに「ワイヤ上」で送信するようにトリガーします。 Hello メッセージの交換に成功すると、ワイヤプロトコルが開始されます。 - -Hello メッセージには以下が含まれます。 - -- プロトコルバージョン -- クライアント ID -- ポート -- ノード ID -- サポートされるサブプロトコルのリスト - -これらは両ノード間で相互作用を成功させるために、共有される機能を定義し、通信を構成するのに必要な情報です。 各ノードがサポートするサブプロトコルのリストを比較し、両ノードに共通するものをセッションで使用できるようにするサブプロトコルネゴシエーションというプロセスがあります。 - -ワイヤプロトコルは、Hello メッセージとともに、接続が終了することを相手に警告する「切断」メッセージも送信することができます。 ワイヤプロトコルは、セッションを開いたままにするために定期的に送信される PING と PONG メッセージも含んでいます。 したがって、RLPx とワイヤプロトコルの交換は、ノード間の通信の基礎を確立し、特定のサブプロトコルに従って交換される有用な情報のための土台を提供します。 - -### サブプロトコル {#sub-protocols} - -#### ワイヤプロトコル {#wire-protocol} - -ピアが接続され、RLPx セッションが開始されると、ワイヤプロトコルはピアがどのように通信するかを定義します。 当初、ワイヤプロトコルは、チェーンの同期、ブロックの伝搬、トランザクションの交換という 3 つの主要なタスクを定義していました。 しかし、イーサリアムがプルーフ・オブ・ステーク(PoS)に移行すると、ブロック伝搬とチェーン同期はコンセンサスレイヤーの一部となりました。 トランザクションの交換は、依然として実行クライアントの範疇にあります。 トランザクションの交換とは、保留中のトランザクションをノード間で交換し、マイナーがその一部を次のブロックに含めるために選択できるようにすることです。 これらのタスクの詳細については、[こちら](https://github.com/ethereum/devp2p/blob/master/caps/eth.md)をご覧ください。 これらのサブプロトコルをサポートするクライアントは、[JSON-RPC](/developers/docs/apis/json-rpc/)を介してそれらを公開します。 - -#### ライト・イーサリアム・サブプロトコル(les) {#les} - -これは、ライトクライアントの同期用の最小限のプロトコルです。 フルノードはインセンティブなしにライトクライアントにデータを提供する必要があるため、従来このプロトコルはほとんど使用されてきませんでした。 実行クライアントのデフォルトの動作は、les でライトクライアントのデータを提供しないようになっています。 詳細については、les [仕様](https://github.com/ethereum/devp2p/blob/master/caps/les.md)をご確認ください。 - -#### スナップ(Snap) {#snap} - -[スナッププロトコル](https://github.com/ethereum/devp2p/blob/master/caps/snap.md#ethereum-snapshot-protocol-snap)は、ピアが最近の状態のスナップショットを交換できるようにするオプションの拡張機能で、ピアがマークルツリーの中間ノードをダウンロードせずにアカウントとストレージデータを検証できるようにするものです。 - -#### ウィットネスプロトコル(Wit) {#wit} - -[ウィットネスプロトコル](https://github.com/ethereum/devp2p/blob/master/caps/wit.md#ethereum-witness-protocol-wit) は、ピア間で状態のウィットネスを交換できるようにするオプションの拡張機能で、クライアントをチェーンの先頭に同期させるのに役立ちます。 - -#### ウィスパー(Whisper) {#whisper} - -ウィスパーは、ブロックチェーンに情報を書き込むことなくピア間で安全なメッセージングを提供することを目的としたプロトコルです。 DevP2P ワイヤープロトコルの一部でしたが、現在は非推奨となっています。 他にも同様の目的を持つ[関連プロジェクト](https://wakunetwork.com/)があります。 - -## コンセンサスレイヤー(consensus layer) {#consensus-layer} - -コンセンサスクライアントは、仕様が異なる別のピアツーピアネットワークに参加します。 コンセンサスクライアントは、ピアから新しいブロックを受け取り、自分がブロックを提案する番が来たらブロードキャストできるよう、ブロック・ゴシップに参加する必要があります。 実行レイヤーと同様に、ノードがピアを見つけてブロックや認証などを取引するための安全なセッションを確立できるよう、まずディスカバリー・プロトコルが必要です。 - -### ディスカバリ {#consensus-discovery} - -実行クライアントと同様に、コンセンサスクライアントもピアを見つけるために UDP 上の [discv5](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-discovery-domain-discv5) を使用します。 コンセンサスレイヤーの discv5 の実装は、discv5 を[libP2P](https://libp2p.io/)スタックに接続するアダプターを含んでおり、DevP2P を非推奨としている点のみ、実行クライアントの実装と異なります。 実行レイヤーの RLPx セッションは廃止され、libP2P のノイズセキュアチャネル・ハンドシェイクが採用されています。 - -### ENR {#consensus-enr} - -コンセンサスノードの ENR には、ノードの公開鍵、IP アドレス、UDP および TCP ポート、コンセンサス特有の 2 つのフィールド(認証サブネットビットフィールドと`eth2`)が含まれます。 前者は、ノードが特定の認証ゴシップ・サブネットワークに参加しているピアを見つけやすくします。 `eth2`キーには、ノードが使用しているイーサリアムフォークのバージョンに関する情報が含まれており、ピアが正しいイーサリアムに接続していることを確認できます。 - -### libP2P {#libp2p} - -libP2P スタックは、ディスカバリー後のすべての通信をサポートします。 クライアントは、ENR で定義された IPv4 および/または IPv6 でダイヤルおよびリッスンできます。 libP2P レイヤーのプロトコルは、ゴシップとリクエスト/レスポンスのドメインに細分化されます。 - -### ゴシップ(Gossip) {#gossip} - -ゴシップドメインは、ネットワーク全体に直ぐに広まる必要のあるすべての情報を含みます。 これには、ビーコンブロック、証明、アテステーション、イグジット、スラッシングが含まれます。 これは libP2P ゴシップサブ v1 を使って送信され、受信・送信するゴシップペイロードの最大サイズなどの各ノードにローカルに保存されている様々なメタデータに依存します。 ゴシップドメインに関する詳細な情報は、[こちら](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-gossip-domain-gossipsub)をご覧ください。 - -### リクエスト/レスポンス(Request-response) {#request-response} - -リクエスト/レスポンス・ドメインには、クライアントがピアに特定の情報を要求するためのプロトコルが含まれます。 例えば、あるルートハッシュに一致する特定のビーコンブロックや、スロット範囲内のビーコンブロックのリクエストなどがあります。 レスポンスは常に snappy(圧縮アルゴリズムの一つ)圧縮された SSZ エンコードバイトとして返されます。 - -## コンセンサスクライアントで RLP より SSZ が好まれる理由 {#ssz-vs-rlp} - -SSZ は、シンプル・シリアライゼーションの略です。 SSZ は、固定オフセットを使うことで、構造全体をデコードすることなく、エンコードされたメッセージの個々の部分を簡単にデコードすることができます。これは、エンコードされたメッセージから特定の情報を効率的に取得できるため、コンセンサスクライアントにとって非常に便利な機能です。 また、マークルプロトコルと統合するように特別に設計されており、マークル化に関連した効率化も得られます。 コンセンサスレイヤーのハッシュはすべてマークルルートであるため、これは大きな改善となります。 また、SSZ は値の一意性も保証します。 - -## 実行クライアントとコンセンサスクライアントの接続 {#connecting-clients} - -コンセンサスクライアントと実行クライアントは、並列に動作します。 コンセンサスクライアントが実行クライアントに指示を出し、実行クライアントがコンセンサスクライアントにトランザクション・バンドルを渡してビーコンブロックに含めることができるように、両者は接続されている必要があります。 両クライアント間の通信は、ローカル RPC 接続を使用して実現することができます。 [「エンジン API」](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) と呼ばれる API が、両クライアント間で送信される命令を定義します。 両クライアントは単一のネットワーク ID の背後に位置するため、各クライアントの個別のキー(eth1 キーと eth2 キー)を含む ENR(イーサリアムノードレコード)を共有します。 - -制御フローの概要を以下に示します。括弧内は関連するネットワークスタックです。 - -##### コンセンサスクライアントがブロック生成者でない場合: - -- コンセンサスクライアントがブロック・ゴシップ・プロトコル(コンセンサス p2p)を介してブロックを受信する -- コンセンサスクライアントはブロックを事前に検証し、確正しいメタデータを持つ有効な送信者からのものであることを確実にする -- ブロックのトランザクションが実行ペイロードとして実行レイヤーに送信される(ローカル RPC 接続) -- 実行レイヤーはトランザクションを実行し、ブロックヘッダーの状態を検証する(ハッシュ値の一致をチェックする) -- 実行レイヤーは検証データをコンセンサスレイヤーに返し、ブロックは検証済みとみなされる(ローカル RPC 接続) -- コンセンサスレイヤーはブロックを自分のブロックチェーンの先頭に追加して証明し、そのアテステーション(証明)をネットワーク上にブロードキャストする(コンセンサス p2p) - -##### コンセンサスクライアントがブロック生成者の場合: - -- コンセンサスクライアントが次のブロック生成者であることを通知される(consensus p2p) -- コンセンサスレイヤーが実行クライアントの`create block`メソッドを呼び出す(ローカル RPC) -- 実行レイヤーは、トランザクション・ゴシップ・プロトコルによって生成されたトランザクション・メンプールにアクセスする(実行 p2p) -- 実行クライアントはトランザクションをブロックにまとめ、トランザクションを実行し、ブロックハッシュを生成する -- コンセンサスクライアントは実行クライアントからトランザクションとブロックハッシュを取得し、ビーコンブロックに追加する(ローカル RPC) -- コンセンサスクライアントは、ブロック・ゴシップ・プロトコルでブロックをブロードキャストする(コンセンサス p2p) -- 他のクライアントが、ブロック・ゴシップ・プロトコルで提案されたブロックを受信し、上記のように検証する(コンセンサス p2p) - -十分な数のバリデータによってブロックが認証されると、チェーンの先頭に追加され、正当性が確認された後、最終的に確定(ファイナライズ)される。 - -![](cons_client_net_layer.png) ![](exe_client_net_layer.png) - -コンセンサスクライアントと実行クライアントのネットワークレイヤー概略図( [ethresear.ch](https://ethresear.ch/t/eth1-eth2-client-relationship/7248) より) - -## 参考文献 {#further-reading} - -[DevP2P](https://github.com/ethereum/devp2p) [LibP2p](https://github.com/libp2p/specs) [コンセンサスレイヤーネットワークの仕様](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#enr-structure) カデムリアから discv5[discv5](https://vac.dev/kademlia-to-discv5) [カデムリアペーパー](https://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf) [Ethereum ピアツーピア入門](https://p2p.paris/en/talks/intro-ethereum-networking/) [eth1eth2 の関係](http://ethresear.ch/t/eth1-eth2-client-relationship/7248) [マージと eth2 クライアントの詳細に関するビデオ](https://www.youtube.com/watch?v=zNIrIninMgg) diff --git a/src/content/translations/ja/developers/docs/smart-contracts/anatomy/index.md b/src/content/translations/ja/developers/docs/smart-contracts/anatomy/index.md deleted file mode 100644 index dffe514965f..00000000000 --- a/src/content/translations/ja/developers/docs/smart-contracts/anatomy/index.md +++ /dev/null @@ -1,658 +0,0 @@ ---- -title: スマートコントラクトの解剖学 -description: スマートコンタクトの構造、すなわち機能、データ、変数について詳しく調べます。 -lang: ja ---- - -スマートコントラクトは、イーサリアム上のアドレスで実行されるプログラムです。 それらはトランザクションの受信時に実行できるデータと関数で構成されています。 ここでは、スマートコントラクトの構成要素の概要を説明します。 - -### 前提知識 {#prerequisites} - -最初に、[スマートコントラクト](/developers/docs/smart-contracts/)を必ずお読みください。 このドキュメントは、JavaScript や Python などのプログラミング言語に精通していることを前提としています。 - -## データ {#data} - -すべてのコントラクトのデータは、`storage`または`memory`のいずれかのロケーションに割り当てる必要があります。 スマートコントラクトのストレージの変更にはコストがかかりますので、データをどこに格納するかを考える必要があります。 - -### ストレージ {#storage} - -永続データはストレージと呼ばれ、状態変数で表されます。 これらの値は、ブロックチェーンに永続的に保存されます。 コントラクトがコンパイル時に必要なブロックチェーンのストレージ容量を追跡できるように、型を宣言する必要があります。 - -```solidity -// Solidity example -contract SimpleStorage { - uint storedData; // State variable - // ... -} -``` - -```python -# Vyper example -storedData: int128 -``` - -オブジェクト指向言語でのプログラミングの経験がある場合は、ほとんどの型になじみがあるでしょう。 しかし、イーサリアムの開発が初めての場合、`address`は目新しいかもしれません。 - -`address`型は、20 バイトまたは 160 ビットに相当するイーサリアムアドレスを保持します。 先頭が 0x の 16 進数を返します。 - -その他の型には次のものがあります。 - -- ブール値 -- 整数 -- 固定小数点数 -- 固定サイズのバイト配列 -- 動的サイズのバイト配列 -- 有理数リテラルと整数リテラル -- 文字列リテラル -- 16 進数リテラル -- 列挙型 - -詳細については、以下のドキュメントをご覧ください。 - -- [Vyper の型を見る](https://vyper.readthedocs.io/en/v0.1.0-beta.6/types.html#value-types) -- [Solidity の型を見る](https://solidity.readthedocs.io/en/latest/types.html#value-types) - -### メモリ {#memory} - -コントラクト関数の実行期間にのみ保存される値は、メモリ変数と呼ばれます。 これらはブロックチェーンに永続的に保存されることはないため、低コストで使用できます - -EVM がデータ(ストレージ、メモリ、スタック)を格納する方法の詳細については、[Solidity のドキュメント](https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html?highlight=memory#storage-memory-and-the-stack)をご覧ください。 - -### 環境変数 {#environment-variables} - -コントラクトで定義した変数に加え、特別なグローバル変数がいくつかあります。 これらは主にブロックチェーンや現在のトランザクションに関する情報を提供するために使用されます。 - -例: - -| **プロパティ** | **状態変数** | **説明** | -| ----------------- | ------------ | ------------------------------------ | -| `block.timestamp` | uint256 | 現在のブロックエポックタイムスタンプ | -| `msg.sender` | address | メッセージの送信者(現在の呼び出し) | - -## 関数 {#functions} - -簡単に言うと、関数は受信トランザクションに応じて情報を取得したり、情報を設定したりすることができます。 - -関数呼び出しには、以下の 2 種類があります。 - -- `internal` - これらは EVM 呼び出しを作成しません。 - - internal 関数と状態変数は、内部(つまり、現在のコントラクト内またはそれから派生したコントラクト内)からのみアクセスできます。 -- `external` - これらは EVM 呼び出しを作成します。 - - external 関数はコントラクトインターフェイスの一部であり、他のコントラクトから呼び出したり、トランザクションを介して呼び出したりすることができます。 external 関数`f`を内部で呼び出すことはできません(つまり、`f()`は動作しませんが、`this.f()`は動作します)。 - -`public`または`private`にすることもできます。 - -- `public`関数は、コントラクト内から内部で呼び出すことも、メッセージを介して外部から呼び出すこともできます。 -- `private`関数は、それらが定義されているコントラクトからのみ参照できます。派生したコントラクトからは参照できません。 - -関数と状態変数はどちらも public または private にすることができます。 - -コントラクトの状態変数を更新するための関数は次のとおりです。 - -```solidity -// Solidity example -function update_name(string value) public { - dapp_name = value; -} -``` - -- `string`型のパラメータ`value`が`update_name`関数に渡されます。 -- `public`と宣言されており、誰でもアクセスできます。 -- `view`が宣言されていないため、コントラクトの状態を変更できます。 - -### View 関数 {#view-functions} - -これらの関数によって、コントラクトのデータの状態を変更しないことを指定します。 一般的な例としては、「getter」関数があります。例えば、これを使用してユーザーの残高を受け取ることができます。 - -```solidity -// Solidity example -function balanceOf(address _owner) public view returns (uint256 _balance) { - return ownerPizzaCount[_owner]; -} -``` - -```python -dappName: public(string) - -@view -@public -def readName() -> string: - return dappName -``` - -状態の変更と見なされるものは、以下のとおりです。 - -1. 状態変数への書き込み。 -2. [イベントの発行](https://solidity.readthedocs.io/en/v0.7.0/contracts.html#events)。 -3. [他のコントラクトの作成](https://solidity.readthedocs.io/en/v0.7.0/control-structures.html#creating-contracts)。 -4. `selfdestruct`の使用。 -5. 呼び出しによるイーサ(ETH)の送信。 -6. `view`や`pure`が指定されていない関数の呼び出し。 -7. 低レベル呼び出しの使用。 -8. 特定のオペコードを含むインラインアセンブリの使用。 - -### コンストラクタ関数 {#constructor-functions} - -`constructor`関数は、コントラクトが最初にデプロイされたときに 1 回だけ実行されます。 多くのクラスベースのプログラミング言語の`constructor`と同様に、これらの関数はしばしば、指定された値に状態変数を初期化します。 - -```solidity -// Solidity example -// Initializes the contract's data, setting the `owner` -// to the address of the contract creator. -constructor() public { - // All smart contracts rely on external transactions to trigger its functions. - // `msg` is a global variable that includes relevant data on the given transaction, - // such as the address of the sender and the ETH value included in the transaction. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties - owner = msg.sender; -} -``` - -```python -# Vyper example - -@external -def __init__(_beneficiary: address, _bidding_time: uint256): - self.beneficiary = _beneficiary - self.auctionStart = block.timestamp - self.auctionEnd = self.auctionStart + _bidding_time -``` - -### 組み込み関数 {#built-in-functions} - -コントラクトで定義した変数と関数に加え、特別な組み込み関数がいくつかあります。 最もわかりやすい例は、以下のとおりです。 - -- `address.send()` – Solidity -- `send(address)` – Vyper - -これらの関数により、コントラクトは他のアカウントに ETH を送信することができます。 - -## 関数を書く {#writing-functions} - -関数には以下のものが必要です。 - -- パラメータ変数と型(パラメータを受け取る場合) -- internal/external の宣言 -- pure/view/payable の宣言 -- 戻り値の型(値を返す場合) - -```solidity -pragma solidity >=0.4.0 <=0.6.0; - -contract ExampleDapp { - string dapp_name; // state variable - - // Called when the contract is deployed and initializes the value - constructor() public { - dapp_name = "My Example dapp"; - } - - // Get Function - function read_name() public view returns(string) { - return dapp_name; - } - - // Set Function - function update_name(string value) public { - dapp_name = value; - } -} -``` - -完全なコントラクトはこのようになります。 ここで、`constructor`関数は、`dapp_name`変数の初期値を提供します。 - -## イベントとログ {#events-and-logs} - -イベント(event)を使用すると、フロントエンドやその他のサブスクライブアプリケーションからスマートコントラクトと通信できます。 トランザクションがマイニングされると、スマートコントラクトはイベントを発行し、フロントエンドが処理できるログをブロックチェーンに書き込みます。 - -## 注釈付きの例 {#annotated-examples} - -Solidity で書かれた例を以下に示します。 コードを実行したい場合は、[Remix](http://remix.ethereum.org)で操作できます。 - -### Hello World {#hello-world} - -```solidity -// Specifies the version of Solidity, using semantic versioning. -// Learn more: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma -pragma solidity ^0.5.10; - -// Defines a contract named `HelloWorld`. -// A contract is a collection of functions and data (its state). -// Once deployed, a contract resides at a specific address on the Ethereum blockchain. -// Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html -contract HelloWorld { - - // Declares a state variable `message` of type `string`. - // State variables are variables whose values are permanently stored in contract storage. - // The keyword `public` makes variables accessible from outside a contract - // and creates a function that other contracts or clients can call to access the value. - string public message; - - // Similar to many class-based object-oriented languages, a constructor is - // a special function that is only executed upon contract creation. - // Constructors are used to initialize the contract's data. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constructors - constructor(string memory initMessage) public { - // Accepts a string argument `initMessage` and sets the value - // into the contract's `message` storage variable). - message = initMessage; - } - - // A public function that accepts a string argument - // and updates the `message` storage variable. - function update(string memory newMessage) public { - message = newMessage; - } -} -``` - -### トークン {#token} - -```solidity -pragma solidity ^0.5.10; - -contract Token { - // An `address` is comparable to an email address - it's used to identify an account on Ethereum. - // Addresses can represent a smart contract or an external (user) accounts. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#address - address public owner; - - // A `mapping` is essentially a hash table data structure. - // This `mapping` assigns an unsigned integer (the token balance) to an address (the token holder). - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#mapping-types - mapping (address => uint) public balances; - - // Events allow for logging of activity on the blockchain. - // Ethereum clients can listen for events in order to react to contract state changes. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#events - event Transfer(address from, address to, uint amount); - - // Initializes the contract's data, setting the `owner` - // to the address of the contract creator. - constructor() public { - // All smart contracts rely on external transactions to trigger its functions. - // `msg` is a global variable that includes relevant data on the given transaction, - // such as the address of the sender and the ETH value included in the transaction. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties - owner = msg.sender; - } - - // Creates an amount of new tokens and sends them to an address. - function mint(address receiver, uint amount) public { - // `require` is a control structure used to enforce certain conditions. - // If a `require` statement evaluates to `false`, an exception is triggered, - // which reverts all changes made to the state during the current call. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions - - // Only the contract owner can call this function - require(msg.sender == owner, "You are not the owner."); - - // Enforces a maximum amount of tokens - require(amount < 1e60, "Maximum issuance exceeded"); - - // Increases the balance of `receiver` by `amount` - balances[receiver] += amount; - } - - // Sends an amount of existing tokens from any caller to an address. - function transfer(address receiver, uint amount) public { - // The sender must have enough tokens to send - require(amount <= balances[msg.sender], "Insufficient balance."); - - // Adjusts token balances of the two addresses - balances[msg.sender] -= amount; - balances[receiver] += amount; - - // Emits the event defined earlier - emit Transfer(msg.sender, receiver, amount); - } -} -``` - -### 固有のデジタル資産 {#unique-digital-asset} - -```solidity -pragma solidity ^0.5.10; - -// Imports symbols from other files into the current contract. -// In this case, a series of helper contracts from OpenZeppelin. -// Learn more: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#importing-other-source-files - -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; -import "../node_modules/@openzeppelin/contracts/introspection/ERC165.sol"; -import "../node_modules/@openzeppelin/contracts/math/SafeMath.sol"; - -// The `is` keyword is used to inherit functions and keywords from external contracts. -// In this case, `CryptoPizza` inherits from the `IERC721` and `ERC165` contracts. -// Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#inheritance -contract CryptoPizza is IERC721, ERC165 { - // Uses OpenZeppelin's SafeMath library to perform arithmetic operations safely. - // Learn more: https://docs.openzeppelin.com/contracts/2.x/api/math#SafeMath - using SafeMath for uint256; - - // Constant state variables in Solidity are similar to other languages - // but you must assign from an expression which is constant at compile time. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constant-state-variables - uint256 constant dnaDigits = 10; - uint256 constant dnaModulus = 10 ** dnaDigits; - bytes4 private constant _ERC721_RECEIVED = 0x150b7a02; - - // Struct types let you define your own type - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#structs - struct Pizza { - string name; - uint256 dna; - } - - // Creates an empty array of Pizza structs - Pizza[] public pizzas; - - // Mapping from pizza ID to its owner's address - mapping(uint256 => address) public pizzaToOwner; - - // Mapping from owner's address to number of owned token - mapping(address => uint256) public ownerPizzaCount; - - // Mapping from token ID to approved address - mapping(uint256 => address) pizzaApprovals; - - // You can nest mappings, this example maps owner to operator approvals - mapping(address => mapping(address => bool)) private operatorApprovals; - - // Internal function to create a random Pizza from string (name) and DNA - function _createPizza(string memory _name, uint256 _dna) - // The `internal` keyword means this function is only visible - // within this contract and contracts that derive this contract - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#visibility-and-getters - internal - // `isUnique` is a function modifier that checks if the pizza already exists - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html#function-modifiers - isUnique(_name, _dna) - { - // Adds Pizza to array of Pizzas and get id - uint256 id = SafeMath.sub(pizzas.push(Pizza(_name, _dna)), 1); - - // Checks that Pizza owner is the same as current user - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions - - // note that address(0) is the zero address, - // indicating that pizza[id] is not yet allocated to a particular user. - - assert(pizzaToOwner[id] == address(0)); - - // Maps the Pizza to the owner - pizzaToOwner[id] = msg.sender; - ownerPizzaCount[msg.sender] = SafeMath.add( - ownerPizzaCount[msg.sender], - 1 - ); - } - - // Creates a random Pizza from string (name) - function createRandomPizza(string memory _name) public { - uint256 randDna = generateRandomDna(_name, msg.sender); - _createPizza(_name, randDna); - } - - // Generates random DNA from string (name) and address of the owner (creator) - function generateRandomDna(string memory _str, address _owner) - public - // Functions marked as `pure` promise not to read from or modify the state - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#pure-functions - pure - returns (uint256) - { - // Generates random uint from string (name) + address (owner) - uint256 rand = uint256(keccak256(abi.encodePacked(_str))) + - uint256(_owner); - rand = rand % dnaModulus; - return rand; - } - - // Returns array of Pizzas found by owner - function getPizzasByOwner(address _owner) - public - // Functions marked as `view` promise not to modify state - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#view-functions - view - returns (uint256[] memory) - { - // Uses the `memory` storage location to store values only for the - // lifecycle of this function call. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/introduction-to-smart-contracts.html#storage-memory-and-the-stack - uint256[] memory result = new uint256[](ownerPizzaCount[_owner]); - uint256 counter = 0; - for (uint256 i = 0; i < pizzas.length; i++) { - if (pizzaToOwner[i] == _owner) { - result[counter] = i; - counter++; - } - } - return result; - } - - // Transfers Pizza and ownership to other address - function transferFrom(address _from, address _to, uint256 _pizzaId) public { - require(_from != address(0) && _to != address(0), "Invalid address."); - require(_exists(_pizzaId), "Pizza does not exist."); - require(_from != _to, "Cannot transfer to the same address."); - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - - ownerPizzaCount[_to] = SafeMath.add(ownerPizzaCount[_to], 1); - ownerPizzaCount[_from] = SafeMath.sub(ownerPizzaCount[_from], 1); - pizzaToOwner[_pizzaId] = _to; - - // Emits event defined in the imported IERC721 contract - emit Transfer(_from, _to, _pizzaId); - _clearApproval(_to, _pizzaId); - } - - /** - * Safely transfers the ownership of a given token ID to another address - * If the target address is a contract, it must implement `onERC721Received`, - * which is called upon a safe transfer, and return the magic value - * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; - * otherwise, the transfer is reverted. - */ - function safeTransferFrom(address from, address to, uint256 pizzaId) - public - { - // solium-disable-next-line arg-overflow - this.safeTransferFrom(from, to, pizzaId, ""); - } - - /** - * Safely transfers the ownership of a given token ID to another address - * If the target address is a contract, it must implement `onERC721Received`, - * which is called upon a safe transfer, and return the magic value - * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; - * otherwise, the transfer is reverted. - */ - function safeTransferFrom( - address from, - address to, - uint256 pizzaId, - bytes memory _data - ) public { - this.transferFrom(from, to, pizzaId); - require(_checkOnERC721Received(from, to, pizzaId, _data), "Must implement onERC721Received."); - } - - /** - * Internal function to invoke `onERC721Received` on a target address - * The call is not executed if the target address is not a contract - */ - function _checkOnERC721Received( - address from, - address to, - uint256 pizzaId, - bytes memory _data - ) internal returns (bool) { - if (!isContract(to)) { - return true; - } - - bytes4 retval = IERC721Receiver(to).onERC721Received( - msg.sender, - from, - pizzaId, - _data - ); - return (retval == _ERC721_RECEIVED); - } - - // Burns a Pizza - destroys Token completely - // The `external` function modifier means this function is - // part of the contract interface and other contracts can call it - function burn(uint256 _pizzaId) external { - require(msg.sender != address(0), "Invalid address."); - require(_exists(_pizzaId), "Pizza does not exist."); - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - - ownerPizzaCount[msg.sender] = SafeMath.sub( - ownerPizzaCount[msg.sender], - 1 - ); - pizzaToOwner[_pizzaId] = address(0); - } - - // Returns count of Pizzas by address - function balanceOf(address _owner) public view returns (uint256 _balance) { - return ownerPizzaCount[_owner]; - } - - // Returns owner of the Pizza found by id - function ownerOf(uint256 _pizzaId) public view returns (address _owner) { - address owner = pizzaToOwner[_pizzaId]; - require(owner != address(0), "Invalid Pizza ID."); - return owner; - } - - // Approves other address to transfer ownership of Pizza - function approve(address _to, uint256 _pizzaId) public { - require(msg.sender == pizzaToOwner[_pizzaId], "Must be the Pizza owner."); - pizzaApprovals[_pizzaId] = _to; - emit Approval(msg.sender, _to, _pizzaId); - } - - // Returns approved address for specific Pizza - function getApproved(uint256 _pizzaId) - public - view - returns (address operator) - { - require(_exists(_pizzaId), "Pizza does not exist."); - return pizzaApprovals[_pizzaId]; - } - - /** - * Private function to clear current approval of a given token ID - * Reverts if the given address is not indeed the owner of the token - */ - function _clearApproval(address owner, uint256 _pizzaId) private { - require(pizzaToOwner[_pizzaId] == owner, "Must be pizza owner."); - require(_exists(_pizzaId), "Pizza does not exist."); - if (pizzaApprovals[_pizzaId] != address(0)) { - pizzaApprovals[_pizzaId] = address(0); - } - } - - /* - * Sets or unsets the approval of a given operator - * An operator is allowed to transfer all tokens of the sender on their behalf - */ - function setApprovalForAll(address to, bool approved) public { - require(to != msg.sender, "Cannot approve own address"); - operatorApprovals[msg.sender][to] = approved; - emit ApprovalForAll(msg.sender, to, approved); - } - - // Tells whether an operator is approved by a given owner - function isApprovedForAll(address owner, address operator) - public - view - returns (bool) - { - return operatorApprovals[owner][operator]; - } - - // Takes ownership of Pizza - only for approved users - function takeOwnership(uint256 _pizzaId) public { - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - address owner = this.ownerOf(_pizzaId); - this.transferFrom(owner, msg.sender, _pizzaId); - } - - // Checks if Pizza exists - function _exists(uint256 pizzaId) internal view returns (bool) { - address owner = pizzaToOwner[pizzaId]; - return owner != address(0); - } - - // Checks if address is owner or is approved to transfer Pizza - function _isApprovedOrOwner(address spender, uint256 pizzaId) - internal - view - returns (bool) - { - address owner = pizzaToOwner[pizzaId]; - // Disable solium check because of - // https://github.com/duaraghav8/Solium/issues/175 - // solium-disable-next-line operator-whitespace - return (spender == owner || - this.getApproved(pizzaId) == spender || - this.isApprovedForAll(owner, spender)); - } - - // Check if Pizza is unique and doesn't exist yet - modifier isUnique(string memory _name, uint256 _dna) { - bool result = true; - for (uint256 i = 0; i < pizzas.length; i++) { - if ( - keccak256(abi.encodePacked(pizzas[i].name)) == - keccak256(abi.encodePacked(_name)) && - pizzas[i].dna == _dna - ) { - result = false; - } - } - require(result, "Pizza with such name already exists."); - _; - } - - // Returns whether the target address is a contract - function isContract(address account) internal view returns (bool) { - uint256 size; - // Currently there is no better way to check if there is a contract in an address - // than to check the size of the code at that address. - // どのように動くかの詳細は、 - // https://ethereum.stackexchange.com/a/14016/36603 を確認する。 - // TODO すべてのアドレスが縮小されるので、 - // セレニティリリースの前に、ここをもう一度確認する。 - // solium-disable-next-line security/no-inline-assembly - assembly { - size := extcodesize(account) - } - return size > 0; - } -} -``` - -## 参考文献 {#further-reading} - -スマートコントラクトの全体的な概要については、Solidity と Vyper のドキュメントをご確認ください。 - -- [Solidity](https://solidity.readthedocs.io/) -- [Vyper](https://vyper.readthedocs.io/) - -## 関連トピック {#related-topics} - -- [スマートコントラクト](/developers/docs/smart-contracts/) -- [イーサリアム仮想マシン(EVM)](/developers/docs/evm/) - -## 関連チュートリアル {#related-tutorials} - -- [コントラクトのサイズ制限に対処するためのコントラクトのサイズ縮小](/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/) _- スマートコントラクトのサイズを小さくするための実用的なヒント_ -- [イベントを使用してスマートコントラクトからデータをログに記録](/developers/tutorials/logging-events-smart-contracts/) _- スマートコントラクトのイベントの紹介と、それを使ってデータをログに記録する方法_ -- [Solidity を使用した他のコントラクトとの連携](/developers/tutorials/interact-with-other-contracts-from-solidity/) _- 既存のコントラクトからスマートコントラクトをデプロイし、それを扱う方法_ diff --git a/src/content/translations/ja/developers/docs/standards/tokens/erc-20/index.md b/src/content/translations/ja/developers/docs/standards/tokens/erc-20/index.md deleted file mode 100644 index 67d938d39ae..00000000000 --- a/src/content/translations/ja/developers/docs/standards/tokens/erc-20/index.md +++ /dev/null @@ -1,148 +0,0 @@ ---- -title: ERC-20トークン規格 -description: -lang: ja ---- - -## はじめに {#introduction} - -**トークンとは何か?** - -トークンは、イーサリアムネットワークにおいて事実上あらゆるものを表現できます。 - -- オンラインプラットフォームにおける評価ポイント。 -- ゲーム内のキャラクターにおけるスキル。 -- 宝くじの券。 -- 企業の株式などの金融資産。 -- 米ドルをはじめとする法定通貨。 -- 金(ゴールド)1 オンス。 -- 等々。 - -イーサリアムにおいてこれほどの威力を持つ機能に対しては、必然的に堅牢な規格が必要です。 これこそ、ERC-20 規格が果たすべき役割なのです! この規格を用いることで、イーサリアム外の製品やサービスと相互運用できるトークンアプリを構築することが可能になります。 - -**ERC-20 とは何か?** - -ERC-20 規格は、代替性トークンを扱うための標準規格です。つまりこの規格では、ひとつのトークンが、その種類および値において他のトークンとまったく同じであるというプロパティを持たせることができます。 例えば、ERC-20 トークンは ETH とまったく同様に動作します。つまり、1 トークンは、現在および将来において常に、他のひとつのトークンと同等になります。 - -## 前提知識 {#prerequisites} - -- [アカウント](/developers/docs/accounts) -- [スマートコントラクト](/developers/docs/smart-contracts/) -- [トークンの基準](/developers/docs/standards/tokens/) - -## 規格の概要 {#body} - -ERC-20(Ethereum Request for Comments 20)は、スマートコントラクト内にトークン API として実装できるトークン規格として、ファビアン・ヴォゲルステラー氏により 2015 年 11 月に提案されました。 - -ERC-20 は、以下のような機能を提供します: - -- トークンを、ひとつのアカウントから他のアカウントに転送する。 -- アカウントにおける現在のトークン残高を取得する。 -- ネットワーク上で利用可能なトークンの総供給量を取得する。 -- 特定のアカウントにおけるトークンにつき、一定額をサードパーティのアカウントが使用できるか否かを承認する。 - -以下のメソッドおよびイベントを実装しているスマートコントラクトは ERC-20 トークンコントラクトと呼ぶことができ、デプロイされると、イーサリアム上で発行されたトークンの状況を追跡する責任を負います。 - -[EIP-20](https://eips.ethereum.org/EIPS/eip-20)から引用: - -#### メソッド {#methods} - -```solidity -function name() public view returns (string) -function symbol() public view returns (string) -function decimals() public view returns (uint8) -function totalSupply() public view returns (uint256) -function balanceOf(address _owner) public view returns (uint256 balance) -function transfer(address _to, uint256 _value) public returns (bool success) -function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) -function approve(address _spender, uint256 _value) public returns (bool success) -function allowance(address _owner, address _spender) public view returns (uint256 remaining) -``` - -#### イベント {#events} - -```solidity -event Transfer(address indexed _from, address indexed _to, uint256 _value) -event Approval(address indexed _owner, address indexed _spender, uint256 _value) -``` - -### 実例: {#web3py-example} - -イーサリアムの ERC-20 トークンコントラクトのコードを詳しく見ることで、これらの規格がイーサリアムのシンプルさを保証する上でどれだけ重要なのかを理解しておきましょう。 ERC-20 トークンを扱うインターフェイスを開発するには、当該コントラクトのアプリケーション・バイナリー・インターフェイス(ABI)を用いればよいです。 理解しやすいように、以下では簡略化した ABI を用いています。 - -#### Web3.py の実例: {#web3py-example} - -まず、 Python のライブラリから[Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation)をインストール済みであることを確認してください: - -``` -pip install web3 -``` - -```python -from web3 import Web3 - - -w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) - -dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI -weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # Wrapped ether (WETH) - -acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11" # Uniswap V2: DAI 2 - -# これはERC-20トークンのコントラクトのアプリケーション・バイナリ・インターフェース(ABI)を簡略化したものです。 -# It will expose only the methods: balanceOf(address), decimals(), symbol() and totalSupply() -simplified_abi = [ - { - 'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], - 'name': 'balanceOf', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'decimals', - 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'symbol', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'totalSupply', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - } -] - -dai_contract = w3.eth.contract(address=w3.to_checksum_address(dai_token_addr), abi=simplified_abi) -symbol = dai_contract.functions.symbol().call() -decimals = dai_contract.functions.decimals().call() -totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals -addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals - -# DAI -print("===== %s =====" % symbol) -print("Total Supply:", totalSupply) -print("Addr Balance:", addr_balance) - -weth_contract = w3.eth.contract(address=w3.to_checksum_address(weth_token_addr), abi=simplified_abi) -symbol = weth_contract.functions.symbol().call() -decimals = weth_contract.functions.decimals().call() -totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals -addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals - -# WETH -print("===== %s =====" % symbol) -print("Total Supply:", totalSupply) -print("Addr Balance:", addr_balance) -``` - -## 参考文献 {#further-reading} - -- [EIP-20:ERC-20 トークン規格](https://eips.ethereum.org/EIPS/eip-20) -- [OpenZeppelin - トークン](https://docs.openzeppelin.com/contracts/3.x/tokens#ERC20) -- [OpenZeppelin - ERC-20 の実装](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) diff --git a/src/content/translations/ja/developers/docs/standards/tokens/erc-721/index.md b/src/content/translations/ja/developers/docs/standards/tokens/erc-721/index.md deleted file mode 100644 index 057373feb45..00000000000 --- a/src/content/translations/ja/developers/docs/standards/tokens/erc-721/index.md +++ /dev/null @@ -1,244 +0,0 @@ ---- -title: ERC-721 非代替性トークン(NFT)規格 -description: -lang: ja ---- - -## はじめに {#introduction} - -**非代替性トークン(NFT)とは** - -非代替性トークン(NFT)は、固有の方法で、人や物を識別するために使われます。 この種類のトークンは、収集用のアイテム、アクセスキー、宝くじ、コンサートやスポーツ試合におけるシート番号付チケットなどを発行するプラットフォームに最も適しています。 この特殊なタイプのトークンはすばらしい可能性を秘めているため、専用の規格として ERC-721 を策定しました。 - -**ERC-721 とは何か?** - -ERC-721 は、NFT に対する標準規格です。つまり、この種類のトークンはそれぞれがユニークな存在であり、発行日、希少性、および外見などの点で、同一のスマートコントラクトで発行される他のトークンとは異なる値を持つことができます。 外見が違うとはどういう意味でしょう? - -はい! すべての NFT は、`tokenid`と呼ばれる`unit256`変数を持つため、ERC-721 を伴うコントラクトでは、`contract adress, unit 256 tokenid`のペアはグローバルに固有でなければなりません。 その上で、各 Dapp では、`tokenid`の入力から、ゾンビ、武器、スキル、あるいは可愛い子猫といったクールな画像を出力する「コンバーター」を搭載することができます。 - -## 前提知識 {#prerequisites} - -- [アカウント](/developers/docs/accounts/) -- [スマートコントラクト](/developers/docs/smart-contracts/) -- [トークン規格](/developers/docs/standards/tokens/) - -## 規格の概要 {#body} - -ERC-721(Ethereum Request for Comments 721)は、ウィリアム・エントリケン氏、ディーター・シャーリー氏、ジェイコブ・エバンス氏、ナスタシア・サックス氏により 2018 年 1 月に提案された、スマートコントラクト内で非代替性トークン(NFT)を取り扱うための API を実装するための規格です。 - -この規格により、複数アカウント間のトークンの転送、アカウントにおける現在のトークン残高の取得、トークン所有者の取得、およびネットワーク上で供給されているトークン総数の取得といった機能が提供されます。 さらに、特定のアカウントが所有するトークン残高のうち、サードパーティのアカウントが転送可能な上限の設定を承認するなど、その他の機能も提供されています。 - -以下のメソッドおよびイベントを実装したスマートコントラクトは ERC-721 非代替性トークン(NFT)コントラクトと呼ばれ、デプロイされると、イーサリアム上で作成されたトークンの状況を追跡する機能を提供します。 - -[EIP-721](https://eips.ethereum.org/EIPS/eip-721)から引用: - -#### メソッド {#methods} - -```solidity - function balanceOf(address _owner) external view returns (uint256); - function ownerOf(uint256 _tokenId) external view returns (address); - function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; - function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; - function transferFrom(address _from, address _to, uint256 _tokenId) external payable; - function approve(address _approved, uint256 _tokenId) external payable; - function setApprovalForAll(address _operator, bool _approved) external; - function getApproved(uint256 _tokenId) external view returns (address); - function isApprovedForAll(address _owner, address _operator) external view returns (bool); -``` - -#### イベント {#events} - -```solidity - event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); - event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); - event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); -``` - -### 例 {#web3py-example} - -イーサリアムネットワークにおける ERC-721 トークンコントラクトを詳しく検討することで、ネットワークをシンプルにする上でこれらの規格がいかに重要であるかが理解できるでしょう。 ERC-721 トークンを対象とするインターフェイスを開発するには、コントラクトのアブリケーション・バイナリ・インターフェイス(ABI)があれば十分です。 これからつまずかないように簡略化された ABI を使用した例をお見せします。 - -#### Web3.py の例 {#web3py-example} - -最初に、 Python ライブラリの[Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation)がインストールされていることを確認してください: - -``` -pip install web3 -``` - -```python -from web3 import Web3 -from web3._utils.events import get_event_data - - -w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) - -ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # CryptoKitties Contract - -acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # CryptoKitties Sales Auction - -# This is a simplified Contract Application Binary Interface (ABI) of an ERC-721 NFT Contract. -# これらのメソッドのみ提示します: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply() -simplified_abi = [ - { - 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], - 'name': 'balanceOf', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'name', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], - 'name': 'ownerOf', - 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'symbol', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'totalSupply', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, -] - -ck_extra_abi = [ - { - 'inputs': [], - 'name': 'pregnantKitties', - 'outputs': [{'name': '', 'type': 'uint256'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [{'name': '_kittyId', 'type': 'uint256'}], - 'name': 'isPregnant', - 'outputs': [{'name': '', 'type': 'bool'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - } -] - -ck_contract = w3.eth.contract(address=w3.toChecksumAddress(ck_token_addr), abi=simplified_abi+ck_extra_abi) -name = ck_contract.functions.name().call() -symbol = ck_contract.functions.symbol().call() -kitties_auctions = ck_contract.functions.balanceOf(acc_address).call() -print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}") - -pregnant_kitties = ck_contract.functions.pregnantKitties().call() -print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}") - -# Transfer Event ABIを使用して、転送されたKittiesの情報を取得する。 -tx_event_abi = { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'from', 'type': 'address'}, - {'indexed': False, 'name': 'to', 'type': 'address'}, - {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}], - 'name': 'Transfer', - 'type': 'event' -} - -# We need the event's signature to filter the logs -event_signature = w3.sha3(text="Transfer(address,address,uint256)").hex() - -logs = w3.eth.getLogs({ - "fromBlock": w3.eth.blockNumber - 120, - "address": w3.toChecksumAddress(ck_token_addr), - "topics": [event_signature] -}) - -# Notes: -# - 120 blocks is the max range for CloudFlare Provider -# - If you didn't find any Transfer event you can also try to get a tokenId at: -# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events -# Click to expand the event's logs and copy its "tokenId" argument - -recent_tx = [get_event_data(w3.codec, tx_event_abi, log)["args"] for log in logs] - -kitty_id = recent_tx[0]['tokenId'] # Paste the "tokenId" here from the link above -is_pregnant = ck_contract.functions.isPregnant(kitty_id).call() -print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}") -``` - -CryptoKitties のコントラクトには、標準的なイベント以外にもいくつか興味深いイベントが含まれています。 - -特に、`Pregnant`と `Birth`のイベントについて見てみましょう。 - -```python -# 妊娠・出産イベントABIを利用して、新しいキティーの情報を得る。 -ck_extra_events_abi = [ - { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'owner', 'type': 'address'}, - {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, - {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, - {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}], - 'name': 'Pregnant', - 'type': 'event' - }, - { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'owner', 'type': 'address'}, - {'indexed': False, 'name': 'kittyId', 'type': 'uint256'}, - {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, - {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, - {'indexed': False, 'name': 'genes', 'type': 'uint256'}], - 'name': 'Birth', - 'type': 'event' - }] - -# We need the event's signature to filter the logs -ck_event_signatures = [ - w3.sha3(text="Pregnant(address,uint256,uint256,uint256)").hex(), - w3.sha3(text="Birth(address,uint256,uint256,uint256,uint256)").hex(), -] - -# Here is a Pregnant Event: -# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog -pregnant_logs = w3.eth.getLogs({ - "fromBlock": w3.eth.blockNumber - 120, - "address": w3.toChecksumAddress(ck_token_addr), - "topics": [ck_event_signatures[0]] -}) - -recent_pregnants = [get_event_data(w3.codec, ck_extra_events_abi[0], log)["args"] for log in pregnant_logs] - -# Here is a Birth Event: -# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a -birth_logs = w3.eth.getLogs({ - "fromBlock": w3.eth.blockNumber - 120, - "address": w3.toChecksumAddress(ck_token_addr), - "topics": [ck_event_signatures[1]] -}) - -recent_births = [get_event_data(w3.codec, ck_extra_events_abi[1], log)["args"] for log in birth_logs] -``` - -## 人気が高い NFT の実例: {#popular-nfts} - -- [イーサスキャン NFT トラッカー](https://etherscan.io/tokens-nft)は、イーサリアムにおける NFT の取引量ランキングです。 -- [クリプトキティーズ](https://www.cryptokitties.co/)は、クリプトキティーと呼ばれる愛らしい生物を育て、収集するゲームです。 -- [ソラーレ](https://sorare.com/)は、グローバルなファンタジーフットボールゲームで、限定アイテムの収集、チームの管理、および試合を通じて賞品を獲得できます。 -- [ ENS(イーサリアムネームサービス)](https://ens.domains/)は、安全かつ分散型の方法により、ブロックチェーン内外のリソースにシンプルかつ人間が読み取り可能な名称を付与できるサービスです。 -- [POAP](https://poap.xyz)は、イベント参加や特定アクションの実行を行ったユーザーに対し、無料で NFT を提供できます。 POAP は自由に作成し、配布できます。 -- [アンストッパブル・ドメインズ](https://unstoppabledomains.com/)は、 サンフランシスコに本社を置く企業で、ブロックチェーン上のドメイン作成業務を行っています。 ブロックチェーン上のドメインは、暗号通貨のアドレスを人間が読み取り可能な名称に置き換えるもので、ウェブサイトに検閲耐性を持たせるために使用できます。 -- [ゴッズ・アンチェインド・カード](https://godsunchained.com/)は、イーサリアムブロックチェーン上の TCG で、NFT を使ってゲーム内アセットに真の所有権を提供しています。 -- [ボアード・エイプ・ヨット・クラブ](https://boredapeyachtclub.com)は、10,000 個の固有 NFT のコレクションであると同時にいわゆるレアな美術作品であり、同クラブの会員証であるトークンでもあります。会員は、初回特典に加えて、コミュニティ活動を行うことでより多くの特典を受け取ることができます。 - -## 参考文献 {#further-reading} - -- [EIP-721:ERC-721 非代替性トークン(NFT)規格](https://eips.ethereum.org/EIPS/eip-721) -- [OpenZeppelin - ERC-721 のドキュメンテーション](https://docs.openzeppelin.com/contracts/3.x/erc721) -- [OpenZeppelin - ERC-721 の実装](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) -- [Alchemy の NFT API](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) diff --git a/src/content/translations/ja/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md b/src/content/translations/ja/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md deleted file mode 100644 index 0f875c7d7b6..00000000000 --- a/src/content/translations/ja/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md +++ /dev/null @@ -1,298 +0,0 @@ ---- -title: "Waffleを使った動的モックアップの活用およびコントラクト呼び出しのテスト" -description: 動的モックアップの活用およびコントラクト呼び出しのテストについてのWaffle上級者向けチュートリアル -author: "Daniel Izdebski" -tags: - - "Waffle" - - "スマートコントラクト" - - "Solidity" - - "テスト" - - "モックアップ作成" -skill: intermediate -lang: ja -published: 2020-11-14 ---- - -## チュートリアルの内容 {#what-is-this-tutorial-about} - -このチュートリアルでは、以下について学びます: - -- 動的モックアップの使用方法 -- スマートコントラクト間のやりとりをテストする方法 - -前提知識: - -- `Solidity`でシンプルなスマートコントラクトを書ける -- `JavaScript`と`TypeScript`が扱える -- 他の`Waffle`のチュートリアルを受講したか、ある程度知識がある - -## 動的モックアップ {#dynamic-mocking} - -動的モックアップにはどのような利点があるでしょうか? まず、統合テストではなく、単体テストを書くことができるという点が挙げられます。 どういう意味かと言うと、 スマートコントラクトの依存関係について心配する必要がないので、個々のスマートコントラクトを完全に隔離した状態でテストできるのです。 それでは、その方法を具体的に見ていきましょう。 - -### **1. プロジェクト** {#1-project} - -まずはじめに、シンプルな node.js のプロジェクトを作成します。 - -```bash -$ mkdir dynamic-mocking -$ cd dynamic-mocking -$ mkdir contracts src - -$ yarn init -# or if you're using npm -$ npm init -``` - -次に、mocha と chai の依存関係をテストする typescript を追加します。 - -```bash -$ yarn add --dev @types/chai @types/mocha chai mocha ts-node typescript -# or if you're using npm -$ npm install @types/chai @types/mocha chai mocha ts-node typescript --save-dev -``` - -さらに、`Waffle`と`ethers`も追加します。 - -```bash -$ yarn add --dev ethereum-waffle ethers -# or if you're using npm -$ npm install ethereum-waffle ethers --save-dev -``` - -これにより、プロジェクトの構造は次のようになっているはずです: - -``` -. -├── contracts -├── package.json -└── test -``` - -### **2. スマートコントラクト** {#2-smart-contract} - -動的モックアップを使用するには、依存関係を含むスマートコントラクトが必要です。 こちらで用意してありますので、ご心配なく! - -今回は`Solidity`で書かれたシンプルなスマートコントラクトを使用しますが、このコントラクトの唯一の目的は、私たちがお金持ちであるかを確認することです。 つまり、十分な ERC-20 トークンを保有しているかどうかを確認するだけのスマートコントラクトです。 このコードを、`./contracts/AmIRichAlready.sol`に追加します。 - -```solidity -pragma solidity ^0.6.2; - -interface IERC20 { - function balanceOf(address account) external view returns (uint256); -} - -contract AmIRichAlready { - IERC20 private tokenContract; - uint public richness = 1000000 * 10 ** 18; - - constructor (IERC20 _tokenContract) public { - tokenContract = _tokenContract; - } - - function check() public view returns (bool) { - uint balance = tokenContract.balanceOf(msg.sender); - return balance > richness; - } -} -``` - -動的モックアップで使用するだけなので、ERC-20 全体は必要なく、関数を 1 つだけ持つ IERC-20 インターフェイスを使います。 - -さっそく、コントラクトをビルドしましょう! ビルドには、`Waffle`を使用します。 まず、コンパイルのオプションを指定するシンプルな`waffle.json`設定ファイルを作成します。 - -```json -{ - "compilerType": "solcjs", - "compilerVersion": "0.6.2", - "sourceDirectory": "./contracts", - "outputDirectory": "./build" -} -``` - -さて、Waffle でコントラクトをビルドする準備が整いました。 - -```bash -$ npx waffle -``` - -簡単ですね。 `build/`フォルダ内に、コントラクトとインターフェイスに対応する 2 つのファイルが現れました。 これらのファイルを使ってテストを行います。 - -### **3. テストを実行する** {#3-testing} - -実際にテストするために、`AmIRichAlready.test.ts`という名前のファイルを作成します。 まずはじめに、インポートを可能にしなければなりません。 これは、後ほど必要になります: - -```typescript -import { expect, use } from "chai" -import { Contract, utils, Wallet } from "ethers" -import { - deployContract, - deployMockContract, - MockProvider, - solidity, -} from "ethereum-waffle" -``` - -JS の依存関係の他に、ビルドしたコントラクトとインターフェイスをインポートする必要があります: - -```typescript -import IERC20 from "../build/IERC20.json" -import AmIRichAlready from "../build/AmIRichAlready.json" -``` - -Waffle では、`chai`を使ってテストを実行します。 ただしその前に、Waffle のマッチャーを chai に追加する必要があります: - -```typescript -use(solidity) -``` - -各テストの実行前にコントラクトの状態をリセットするため、`beforeEach()`関数を実装する必要があります。 まず、この関数には何が必要かを考えてみましょう。 コントラクトをデプロイするには、ウォレットと、`AmIRichAlready`コントラクトに引数として渡すためのデプロイされた ERC-20 コントラクトが必要です。 - -まず、ウォレットを作成します: - -```typescript -const [wallet] = new MockProvider().getWallets() -``` - -次に、ERC-20 コントラクトをデプロイする必要があります。 今のところ、私たちはインターフェイスしか持っていないので、工夫が必要になります。 ここで、Waffle が助けてくれます。 Waffle には、インターフェイスの*ABI*だけを使用してコントラクトを作成できる、魔法のような`deployMockContract()`関数が含まれているのです。 - -```typescript -const mockERC20 = await deployMockContract(wallet, IERC20.abi) -``` - -ウォレットとデプロイされた ERC-20 コントラクトの両方が準備できたので、さっそく`AmIRichAlready`コントラクトをデプロイしましょう: - -```typescript -const contract = await deployContract(wallet, AmIRichAlready, [ - mockERC20.address, -]) -``` - -これで、`beforeEach()`関数が作成できました。 現在のところ、 `AmIRichAlready.test.ts`のファイルは以下のようになっているはずです: - -```typescript -import { expect, use } from "chai" -import { Contract, utils, Wallet } from "ethers" -import { - deployContract, - deployMockContract, - MockProvider, - solidity, -} from "ethereum-waffle" - -import IERC20 from "../build/IERC20.json" -import AmIRichAlready from "../build/AmIRichAlready.json" - -use(solidity) - -describe("Am I Rich Already", () => { - let mockERC20: Contract - let contract: Contract - let wallet: Wallet - - beforeEach(async () => { - ;[wallet] = new MockProvider().getWallets() - mockERC20 = await deployMockContract(wallet, IERC20.abi) - contract = await deployContract(wallet, AmIRichAlready, [mockERC20.address]) - }) -}) -``` - -この`AmIRichAlready`コントラクトに対する初回のテストを書きましょう。 テストの対象は何にすべきだと思いますか? 言うまでもなく、 私たちがお金持ちであるかをチェックするのですね :) - -でもちょっと待ってください。 今作成したコントラクトでは、どのような値を返すべきかを指定していませんでした。 `balanceOf()`関数のロジックが実装されていないからです。 ここでも Waffle が助けてくれます。 モックアップを作成したコントラクトには、新たに以下のような素敵なコードが付け加えられています: - -```typescript -await mockERC20.mock..returns() -await mockERC20.mock..withArgs().returns() -``` - -これを知っていれば、最初のテストを書くことができます。 - -```typescript -it("returns false if the wallet has less than 1000000 tokens", async () => { - await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) - expect(await contract.check()).to.be.equal(false) -}) -``` - -このテストを、構成要素に分解してみましょう: - -1. モックアップの ERC-20 コントラクトは、常に、999999 トークンの残高を返すように設定します。 -2. `contract.check()`メソッドが、`false`を返すか確認します。 - -ようやく、テストを実行する準備ができました。 - -![1つのテストが合格](test-one.png) - -テストは実行されましたが・・・改善の余地がありますね。 `balanceOf()`関数は、常に 99999 を返します。 実際のコントラクトのように、関数が値を返すウォレットを指定するともっとテストらしくなるでしょう。 - -```typescript -it("returns false if the wallet has less than 1000001 tokens", async () => { - await mockERC20.mock.balanceOf - .withArgs(wallet.address) - .returns(utils.parseEther("999999")) - expect(await contract.check()).to.be.equal(false) -}) -``` - -このテストでは、今のところ、私たちが十分にお金持ちではない場合のみをチェックしています。 次に、その反対もチェックできるようにしてみましょう: - -```typescript -it("returns true if the wallet has at least 1000001 tokens", async () => { - await mockERC20.mock.balanceOf - .withArgs(wallet.address) - .returns(utils.parseEther("1000001")) - expect(await contract.check()).to.be.equal(true) -}) -``` - -テストを実行します・・・ - -![2つのテストが合格](test-two.png) - -そして・・・うまく行きました! 私たちのコントラクトは、意図したとおりに動作しているようです :) - -## コントラクトの呼び出しをテストする {#testing-contract-calls} - -これまでの進展をまとめておきましょう。 `AmIRichAlready`コントラクトの機能をテストし、正常に動作していることが確認できたようです。 これで終わりだろうって? いいえ、まだ少し残っています。 Waffe を使えば、さらに多くの事項をテストすることができます。 具体的に説明すると、 Waffle には`calledOnContract()`マッチャーと`calledOnContractWith()`マッチャーが搭載されています。 これらを使えば、作成したコントラクトがモックアップの ERC-20 コントラクトを呼び出したかどうかを確認できるのです。 いずれかのマッチャーを使用した基本的なテストは、次のようになります: - -```typescript -it("checks if contract called balanceOf on the ERC20 token", async () => { - await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) - await contract.check() - expect("balanceOf").to.be.calledOnContract(mockERC20) -}) -``` - -もう一方のマッチャーを使用することで、さらにこのテストを充実させることができます: - -```typescript -it("checks if contract called balanceOf with certain wallet on the ERC20 token", async () => { - await mockERC20.mock.balanceOf - .withArgs(wallet.address) - .returns(utils.parseEther("999999")) - await contract.check() - expect("balanceOf").to.be.calledOnContractWith(mockERC20, [wallet.address]) -}) -``` - -テストがうまく行ったか確認しましょう: - -![3つのテストが合格](test-three.png) - -幸いなことに、すべてのテストに合格しました。 - -Waffle を使えば、コントラクトの呼び出しをとても簡単にテストできます。 特にすばらしいのは、 これらのマッチャーを通常のコントラクトとモックアップのコントラクトの両方に使えることです! 他のテクノロジー向けの人気が高いテストライブラリと同じように、Waffle は、コードを挿入するのではなく、EVM 呼び出しを記録し、フィルタ処理を行うアプローチを採用しています。 - -## おわりに {#the-finish-line} - -おめでとうございます! これで、Waffle を使用して、コントラクトの呼び出しや、モックアップのコントラクトを動的にテストする方法を身に付けることができました。 この他にもたくさんの興味深い機能がありますので、 Waffle のドキュメンテーションに目を通すことをおすすめします。 - -Waffle のドキュメンテーションは、[こちら](https://ethereum-waffle.readthedocs.io/)から入手できます。 - -このチュートリアルのソースコードは、[こちら](https://github.com/EthWorks/Waffle/tree/master/examples/dynamic-mocking-and-testing-calls)からアクセスできます。 - -さらに、以下のチュートリアルをおすすめします: - -- [Waffle を使ってスマートコントラクトをテストする](/developers/tutorials/testing-smart-contract-with-waffle/) diff --git a/src/content/translations/ja/nft/index.md b/src/content/translations/ja/nft/index.md deleted file mode 100644 index be22b77aec9..00000000000 --- a/src/content/translations/ja/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: 非代替性トークン(NFT) -description: イーサリアムにおける非代替性トークン(NFT)の概要 -lang: ja -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: ホログラムを介して表示されているETHロゴ -summaryPoint1: イーサリアムベースのアセットとして、唯一無二なものをトークンとして表現する方法。 -summaryPoint2: NFTは、これまで以上に多くのコンテンツ・クリエイターを後押ししています。 -summaryPoint3: イーサリアムブロックチェーン上のスマートコントラクトを利用。 ---- - -## What are NFTs? {#what-are-nfts} - -NFT は、個別の固有性を持つトークンで、 それぞれ固有の特性(非代替性)があり、その希少性が証明されています。 これは、セット内のすべてのトークンが同一であり、同じ特性(代替性)を持つ ERC-20 トークンとは異なります。 例えば、財布の中にある 1 ドル札を例に考えてみましょう。1 ドル札はすべて同じであり、同一の価値を持つため、お札の種類を気にする必要はありません。 しかし、所有する NFT の種類は*重要です*。NFT にはそれぞれ固有の特性があり、他とは異なるからです(非代替性)。 - -各 NFT の一意性により、美術品、収集品、あるいは不動産などのトークン化が可能になり、NFT が現実世界やデジタル世界における固有のアイテムとなります。 NFT の所有権はイーサリアムブロックチェーンによって担保されており、誰も所有権の記録を勝手に変更したり、コピー&ペーストで NFT を複製することはできません。 - - - -## 資産のインターネット {#internet-of-assets} - -NFT とイーサリアムによって、現在のインターネットが持つ複数の課題を解決することができます。 あらゆるもののデジタル化が進むにつれて、希少性、独自性、所有権の証明などの物理的なアイテムの特性を複製する必要性が高まっており、 中央集権型の組織に管理されない形での実現を求められます。 例えば、NFT を使えば、特定の企業の音楽アプリに限定されない音楽の mp3 ファイルや、売買や交換ができるソーシャルメディア上のハンドル名を所有することができます。これらは、プラットフォーム提供者によって一方的に奪われることはありません。 - -ここで、今私たちが使用しているインターネットと、NFT のインターネットを比べてみましょう。 - -### 比較 {#nft-comparison} - -| 非代替性トークン(NFT)インターネット | 現在のインターネット | -| ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | -| 自分で資産を所有する。 売買や交換できるのは自分のみ。 | 組織から資産を賃借する。 | -| NFT は唯一無二のデジタル資産であり、全く同じ NFT は存在しない。 | コピーとオリジナルの区別が難しい。 | -| NFT の所有権はブロックチェーン上に保存され、誰でも確認できる。 | デジタルアイテムの所有権記録は、当該アイテムが属する組織のサーバに保存される。その扱いについては、属する組織の方針に従わなければならない。 | -| NFT の所有権はブロックチェーン上に保存され、誰でも確認できる。 つまり、イーサリアム上の他のスマートコントラクトやアプリで簡単に使用できる。 | 通常、デジタルアイテムを扱う企業には、独自のインフラ(「ウォールド・ガーデン」)が必要となる。 | -| コンテンツクリエイターはどこでも作品を販売し、世界市場にアクセスできる。 | クリエイターは、使用するプラットフォームのインフラと流通経路に依存する。 通常、利用規約や地理的制限に大きく影響を受ける。 | -| NFT の作成者は、自身の作品の所有権を保持し、ロイヤリティを NFT コントラクトに直接プログラムすることができる。 | 音楽ストリーミングサービスなどのプラットフォームは、売上が利益の大部分を占めている。 | - -## 非代替性トークン(NFT)の仕組み {#how-nfts-work} - -イーサリアム上で発行されるトークンと同様、NFT はスマートコントラクトによって発行されます。 スマートコントラクトは、コントラクトが持つ機能を定義した複数の NFT 規格(一般的には ERC-721 または ERC-1155)のいずれかに準拠しています。 コントラクトは NFT を作成(ミント)し、特定の所有者に割り当てることができます。 所有権は、特定の NFT を特定のアドレスにマッピングすることによってコントラクトで定義されます。 NFT には ID があり、通常は特定のトークンを一意にするメタデータが関連付けられています。 - -誰かが NFT を作成または生成する際、実際にはスマートコントラクト内の特定の関数を実行して、その NFT を自身のアドレスに割り当てています。 この情報は、ブロックチェーンの一部であるコントラクトのストレージに保存されます。 コントラクトの作成者は、コントラクト内に追加のロジックを記述することができます。例えば、総供給量の制限を設定したり、トークンが転送されるたびに作成者に支払われるロイヤリティを定義したりすることができます。 - -## 非代替性トークン(NFT)の使用方法 {#nft-use-cases} - -NFT は以下のような多数の用途に使用されます。 - -- イベントの参加証明 -- コースの修了証明 -- ゲームの所有可能アイテム -- デジタルアート -- 現実世界における資産のトークン化 -- オンライン ID の証明 -- コンテンツへのアクセス権 -- 発券 -- 分散型インターネットのドメイン名 -- DeFi の担保 - -例えばあなたが、NFT を使用して、権利を失ったり、仲介業者に利益を支払ったりすることなく、自分の作品を共有したいと考えているアーティストだとします。 新しいコントラクトを作成し、NFT の数、その特性、特定のアートワークへのリンクを指定することができます。 さらに、スマートコントラクトに、自分に支払われるべきロイヤリティをプログラムすることができます(例えば、NFT が譲渡されるたびに、販売価格の 5%をコントラクト所有者に譲渡する)。 また、コントラクトをデプロイしたウォレットを所有しているため、NFT を作成したことをいつでも証明することができます。 購入者のウォレットアドレスは、スマートコントラクト内のトークンと関連付けられているため、購入者はあなたのコレクションから本物の NFT を所有していることを簡単に証明することができます。 つまり、イーサリアムのエコシステム全体で、その信頼性を確信した上で使用できるということです。 - -あるいは、スポーツイベントのチケットを例に考えてみましょう。 イベントの主催者がチケットの販売枚数を決めるように、NFT の作成者はレプリカの数を決めることができます。 時には、5,000 枚の一般入場券のようなまったく同じレプリカも存在します。 例えば、座席指定のチケットのように、よく似ていてもそれぞれに微妙な違いがあるものが複数枚ミントされることもあります。 チケットの売買はピアツーピアで行われ、購入者はコントラクトアドレスを確認することで、常にチケットの正当性を確認することができます。 - -ethereum.org では、GitHub リポジトリへの貢献や電話会議への出席を示すために NFT が使用されており、独自の NFT ドメイン名も取得しています。 ethereum.org に貢献することで、POAP NFT(出席証明 NFT)を獲得できます。 一部のクリプトミートアップでは、チケットとして POAP が使用されています。 [貢献の詳細](/contributing/#poap) - -![ethereum.orgの出席証明プロトコル(POAP)](./poap.png) - -このウェブサイトには、NFT による代替ドメイン名**ethereum.eth**があります。 `.org`アドレスは、ドメインネームシステム(DNS)プロバイダーによって集中管理されていますが、ethereum`.eth`は、イーサリアム・ネーム・サービス(ENS)を介してイーサリアム上に登録されています。 つまり、私たち自身が所有、管理しているということです。 [ENS レコードの確認](https://app.ens.domains/name/ethereum.eth) - -[イーサリアム・ネーム・サービス(ENS)の詳細](https://app.ens.domains) - - - -### NFT のセキュリティ {#nft-security} - -イーサリアムのセキュリティは、プルーフ・オブ・ステークによって確保されています。 経済的なインセンティブによって悪意のある行為を抑止するように設計されており、その結果、改ざんを防止しています。 こうして、NFT が実現しています。 NFT のトランザクションを含むブロックが確定した後に攻撃者が変更しようとすると、数百万 ETH の費用がかかることになります。 イーサリアムのソフトウェアを実行している人なら誰でも、NFT に対する不正な改ざんを直ちに検出することができ、悪質な行為を行う者は、経済的なペナルティが課せられ、ネットワークから追放されます。 - -NFT に関連するセキュリティの問題の大半は、フィッシング詐欺、スマートコントラクトの脆弱性、ユーザーの過失(不注意で秘密鍵を公開するなど)のいずれかに関連しており、ウォレットのセキュリティが NFT 所有者にとって非常に重要になります。 - - - セキュリティの詳細 - - -## 参考文献 {#further-reading} - -- [非代替性トークン(NFT)初心者向けガイド](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, 2020 年 1 月_ -- [EtherscanNFT トラッカー](https://etherscan.io/nft-top-contracts) -- [ERC-721 トークン標準](/developers/docs/standards/tokens/erc-721/) -- [ERC-1155 トークン標準](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/ja/roadmap/beacon-chain/index.md b/src/content/translations/ja/roadmap/beacon-chain/index.md deleted file mode 100644 index 948bc59a196..00000000000 --- a/src/content/translations/ja/roadmap/beacon-chain/index.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: ビーコンチェーン -description: ビーコンチェーン - プルーフ・オブ・ステークのイーサリアム導入アップグレード -lang: ja -template: upgrade -image: ../../../../../assets/upgrades/core.png -summaryPoint1: イーサリアムエコシステムにプルーフ・オブ・ステークの導入を可能にしたのが、ビーコンチェーンです。 -summaryPoint2: 2022年9月にプルーフ・オブ・ワーク・チェーンのイーサリアムとマージ(統合)されました。 -summaryPoint3: ビーコンチェーンは、コンセンサスロジックとブロックゴシッププロトコルを導入し、現在はイーサリアムの安全性を保護しています。 ---- - - - ビーコンチェーンは、2020年12月にリリースされ、2022年9月15日のマージアップグレードでイーサリアムの合意メカニズムに、プルーフ・オブ・ステークとして正式に導入されました。 - - -## ビーコンチェーンとは {#what-is-the-beacon-chain} - -ビーコンチェーンは、2020 年に開始されたオリジナルのプルーフ・オブ・ステーク型ブロックチェーンの名称です。 当初は、イーサリアムメインネットに適用する前に、プルーフ・オブ・ステークのコンセンサスロジックが健全で持続可能であることを確認するために作成されました。 そのため、元来のプルーフ・オブ・ワークのイーサリアムと並行して稼働していました。 ビーコンチェーンは「空の」ブロックのチェーンだったので、イーサリアムでプルーフ・オブ・ワークを停止し、プルーフ・オブ・ステークへと切り替えるには、ビーコンチェーンで実行クライアントのトランザクションデータを受け入れ、ブロックにバンドルし、プルーフ・オブ・ステークに基づく合意メカニズムを使ってブロックチェーンに構成する必要がありました。 同時に、オリジナルのイーサリアムのクライアントは、マイニング、ブロック伝播、コンセンサスロジックを停止し、ビーコンチェーンへと継承させました。 これが[マージ](/roadmap/merge/)として知られるイベントです。 マージによって、2 つのブロックチェーンは プルーフ・オブ・ステークに統合され、現在は、ノードごとに 2 つの異なるクライアントが必要になりました。 ビーコンチェーンは現在、コンセンサスレイヤーであり、ブロックのゴシップとコンセンサスロジックを処理するコンセンサスクライアントのピアツーピアネットワークです。一方、元々のクライアントは実行レイヤーを形成し、トランザクションのゴシップと実行、そしてイーサリアムの状態を管理しています。 2 つのレイヤーは、エンジン API を使ってお互いに通信することができます。 - -## ビーコンチェーンとは {#what-does-the-beacon-chain-do} - -ビーコンチェーンは、イーサリアム [ステーカー](/staking/)のネットワークを実行、調整していたアカウントのレジャーに与えられた名前です。後に、このイーサリアム[ステーカー](/saking/)が実際のイーサリアムブロックの検証を開始しました。 ただし、ビーコンチェーンでは、トランザクションの処理やスマートコントラクトとのやりとりは行いません。代わりに、実行レイヤーがこれらの処理を行います ビーコンチェーンでは、ブロックとアテステーションの処理、フォーク選択アルゴリズムの実行、報酬とペナルティの管理などを行います。 詳細は、[ノードアーキテクチャのページ](/developers/docs/nodes-and-clients/node-architecture/#node-comparison)をご覧ください。 - -## ビーコンチェーンの影響 {#beacon-chain-features} - -### ステーキングの紹介 {#introducing-staking} - -ビーコンチェーンの稼働の伴い、 [プルーフ・オブ・ステーク](/developers/docs/consensus-mechanisms/pos/)がイーサリアムに導入されました。 イーサリアムの安全性が保たれ、バリデータはより多くの ETH を獲得することができるようになりました。 実際にバリデータソフトウェアを起動するには、ETH をステーキングすることになります。 ステーカーは、チェーンに新しいブロックを作成し、検証するバリデータソフトウェアを実行します。 - -ステーキングは、かつての[マイニング](/developers/docs/mining/)と同じ目的を果たしますが、その手法は多くの点で異なります。 マイニングには、強力なハードウェアや大量のエネルギーが必要であり、そのため、多額の先行投資が必要になります。その結果、規模の経済が生まれ、集中化が進みました マイニングにおいても、資産を担保としてロックする必要がなかったため、攻撃後に悪意のある行為者を罰するプロトコルの能力にも限界がありました。 - -プルーフ・オブ・ステークへの移行により、イーサリアムは従来のプルーフ・オブ・ワークに比べて、格段にセキュリティと分散性が向上しました。 ネットワークに参加する人が多いほど、より分散化され、攻撃の危険性が減少します。 - -また、コンセンサスメカニズムとしてプルーフ・オブ・ステークを使用することが、[安全で環境にやさしく、スケーラブルな現在のイーサリアム](/roadmap/vision/)を支える基盤となっています。 - - - バリデータになり、イーサリアムの安全性の確保にご興味がある場合は、ステーキングの詳細をご覧ください。 - - -### シャーディングの設定 {#setting-up-for-sharding} - -ビーコンチェーンが元来のイーサリアムメインネットに統合されてから、イーサリアムコミュニティはネットワークのスケーリングを模索し始めました。 - -プルーフ・オブ・ステークには、承認されたすべてのブロック作成者のレジストリを常に登録し、ETH をステーキングしているという利点があります。 このレジストリにより、特定のネットワークの責任を信頼おける方法で分割や制御することができます。 - -この責任において、プルーフ・オブ・ワークとは対照的です。プルーフ・オブ・ワークでは、マイナーはネットワークに対する義務を負わないため、ペナルティは一切なく、瞬時にマイニングを停止し、ノードソフトウエアを終了することができます。 ブロック提案者のレジストリもなく、ネットワークに関する責任を安全に分担する信頼できる方法もありません。 - -[シャーディングの詳細](/roadmap/danksharding/) - -## アップグレード間の関係 {#relationship-between-upgrades} - -イーサリアムのアップグレードはすべて、多少なりとも相互に関連しています。 ビーコンチェーンが他のアップグレードにどのように影響するか、まとめましょう。 - -### ビーコンチェーンとマージ {#merge-and-beacon-chain} - -当初、ビーコンチェーンはイーサリアムメインネットと別々に存在していましたが 2022 年に統合されました。 - - - マージ - - -### シャードとビーコンチェーン {#shards-and-beacon-chain} - -シャーディングは、プルーフ・オブ・ステークの合意メカニズムがあって、初めてイーサリアムのエコシステムに導入することができます。 ビーコンチェーンによりステーキングが可能となり、メインネットとの「マージ」により、将来イーサリアムを拡張するためのシャーディングへの布石を、ビーコンチェーンは導入しました。 - - - シャードチェーン - - -## 参考文献 - -- [イーサリアムの今後のアップグレードの詳細](/roadmap/vision) -- [ノードアーキテクチャの詳細](/developers/docs/nodes-and-clients/node-architecture) -- [プルーフ・オブ・ステークの詳細](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/ja/roadmap/future-proofing/index.md b/src/content/translations/ja/roadmap/future-proofing/index.md deleted file mode 100644 index e8435049fff..00000000000 --- a/src/content/translations/ja/roadmap/future-proofing/index.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: 将来性のあるイーサリアム -description: これらのアップグレードにより、イーサリアムは、将来何が起きようとも、回復力のある分散型のベースレイヤーとして確立されます。 -lang: ja -image: ../../../../../assets/roadmap/roadmap-future.png -alt: "イーサリアムロードマップ" -template: roadmap ---- - -イーサリアムのロードマップには、スケーリングやセキュリティの確保において短期的には必要のないものもありますが、長期的な視点においては、イーサリアムの安定性と信頼性を高めるために必要となるものです。 - -## 量子耐性 {#quantum-resistance} - -現在のイーサリアムを保護するの一部の暗号技術は、量子コンピューティングが実現した際に脆弱性が露呈する可能性があります。 量子コンピューターが現代の暗号技術にとって脅威となるには数十年かかると言われていますが、イーサリアムは今後何世紀にもわたって安全に運用することを目標にしています。 そのため、[イーサリアムの量子耐性](https://consensys.net/blog/developers/how-will-quantum-supremacy-affect-blockchain/)をできるだけ早く実現する必要があります。 - -イーサリアムのデベロッパーが直面している課題として、現在のプルーフ・オブ・ステークのプロトコルが、有効なブロックの投票を集約するために、非常に効率的な署名スキームである BLS に依存していることです。 この署名スキームは、量子コンピューターによって破られてしまう可能性があります。一方、量子耐性のある代替手段は、計算効率がそれほど良くありません。 - -イーサリアムでは、暗号秘密を生成するために[「KZG」コミットメントスキーム](/roadmap/danksharding/#what-is-kzg)が広く使われています。しかし、このスキームは量子コンピュータによって破られる可能性があります。 現在は、多くのユーザーが生成したランダム性を使用して「信頼できるセットアップ」として回避されており、量子コンピューターによるリバースエンジニアリングができないようになっています。 しかし、理想的には、量子安全暗号を組み込むことで、脆弱性を根本的に解決することが望まれます。 BLS スキームの効率的な代替となる可能性のある 2 つの主要なアプローチとして、[STARK ベース](https://hackmd.io/@vbuterin/stark_aggregation)と[ラティスベース](https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-lattice-encryption-326ac66e3175)の署名スキームがあります。 これらについては現在、研究および試作中です。 - - KZG と信頼できるセットアップについての詳細 - -## よりシンプルで効率的なイーサリアム {#simpler-more-efficient-ethereum} - -複雑なシステムでは、攻撃者が悪用できるバグや脆弱性が発生しやすくなります。 そのため、イーサリアムは、ロードマップの中で、不要なコードを削除したり、改善したりして、システムを簡素化することを目指しています。 無駄のないシンプルなコードベースにすることで、デベロッパーは保守、理解しやすくなります。 - -[イーサリアム仮想マシン(EVM)](/developers/docs/evm)をよりシンプルで効率的なものにするアップデートが予定されています。 その一環として、[SELFDESTRUCT オペコードが削除](https://hackmd.io/@vbuterin/selfdestruct)されます。このコマンドはめったに使用されなくなりましたが、状況によっては使用すると危険を伴う場合があります。例えば、特にイーサリアムのストレージモデルに対する将来のアップグレードと組み合わせた場合です。 イーサリアムクライアントは、現在でも完全に削除可能な古いトランザクションタイプをサポートしています。 また、ガスの計算方法も改善される予定です。暗号操作を支える算術演算に対して、より効率的な方法が導入されます。 - -同様に、現在のイーサリアムクライアントの他の部分もアップデートされる可能性があります。 一例として現在は、実行クライアントとコンセンサスクライアントが異なるデータ圧縮方式を使用しています。 この圧縮方式をネットワーク全体で統一すれば、クライアント間でのデータ共有がより簡単で直感的になります。 - -## 現在の進行状況 {#current-progress} - -イーサリアムの将来的な安全性を確保するために必要なアップグレードの多くは、まだ研究段階です。実装には数年かかると考えられており、 SELF-DESTRUCT の削除や、実行クライアントとコンセンサスクライアントで使用される圧縮方式の統一などのアップグレードは、量子耐性のある暗号よりも早く実現される可能性があります。 - -**参考文献** - -- [ガス](/developers/docs/gas) -- [EVM(イーサリアム仮想マシン)](/developers/docs/evm) -- [データ構造](/developers/docs/data-structures-and-encoding) diff --git a/src/content/translations/ja/roadmap/index.md b/src/content/translations/ja/roadmap/index.md deleted file mode 100644 index d4c595b2b25..00000000000 --- a/src/content/translations/ja/roadmap/index.md +++ /dev/null @@ -1,117 +0,0 @@ ---- -title: イーサリアムロードマップ -description: イーサリアムのスケーラビリティ、セキュリティ、サステナビリティを改善する工程 -lang: ja -template: roadmap -image: ../../../../assets/roadmap/roadmap-main.png -alt: "イーサリアムロードマップ" -summaryPoints: -buttons: - - label: 今後のアップグレード - toId: 予定されている変更 - - label: 過去のアップグレード - to: /history/ - variant: 概要 ---- - -イーサリアムは、すでにグローバルで協調して稼働している強力なプラットフォームですが、さらなる改善が進められています。 大胆な改善案が提案されており、イーサリアムは現在の形から、フルスケールで最大の復元力を備えたプラットフォームへとアップグレードされる予定です。 これらの一連のアップグレードは、イーサリアムのロードマップに記載されています。 - -**イーサリアムの過去のアップグレードについては、[履歴](/history/)のページをご覧ください。** - -## イーサリアムで予定されている変更点は何ですか? {#what-changes-are-coming} - -将来のプロトコルの具体的な改善案については、イーサリアムのロードマップに概要が描かれています。 このロードマップは、イーサリアムのユーザーに次のメリットをもたらします。 - - - - - - - - -## イーサリアムにロードマップが必要な理由は何ですか? {#why-does-ethereum-need-a-roadmap} - -イーサリアムは定期的にアップグレードされており、その結果、スケーラビリティ、セキュリティ、サステナビリティが向上しています。 イーサリアムの中核的な強みの 1 つとして、研究開発から生まれた新しいアイデアに適応できることです。 この適応性によって、イーサリアムは新たな課題に取り組んでおり、最先端の技術的ブレークスルーにも対応できる柔軟性を備えています。 - - - -イーサリアムのロードマップは、研究者と開発者たちが長年かけて築き上げてきたものです。このプロトコルは非常に技術的な内容ではあるものの、やる気があれば誰でも参加することができます。 新しいアイデアは、通常、[ethresear.ch](https://ethresear.ch/)、[イーサリアム・マジシャンズ](https://www.figma.com/exit?url=https%3A%2F%2Fethereum-magicians.org%2F) 、イーサリアム研究開発の Discord サーバーなどのフォーラムで議論されます。 議論の内容は、新たに見つかった脆弱性への対応、アプリケーションレイヤーで活動する組織(dApp や取引所など)からの提案、エンドユーザーにとっての既知の摩擦(コストやトランザクション速度など)への対応だったりします。 新しいアイデアが成熟すると、[イーサリアム改善提案](https://eips.ethereum.org/)として提案できます。 このアイデアの創出は、誰でも参加できるオープンなプロセスです。コミュニティのメンバーであれば、いつでも議論に参加できます。 - -[イーサリアムにおけるガバナンスの詳細](/governance/) - - - - -

ETH2とは何ですか?

- -

「Eth2」という用語は、プルーフ・オブ・ステークへ移行する前、イーサリアムの今後を説明するために広く使用されていましたが、より正確な用語の方が好ましいということで段階的に廃止されました。元々は、プルーフ・オブ・ステークへの移行前のネットワークと移行後のネットワークを区別するために使われていました。また、異なるイーサリアムクライアントを指す場合もありました。具体的には、実行クライアントをETH1クライアント、コンセンサスクライアントをETH2クライアントと呼んでいました。

- -
- -## イーサリアムのロードマップは時間とともに変化しますか? {#will-ethereums-roadmap-change-over-time} - -はい、ほぼ間違いなく変化します。 ロードマップは、現在のイーサリアムをアップグレードするための計画です。短期的および将来にわたる長期的な計画の両方をカバーしています。 新しい情報技術が使えるようになると、ロードマップも変更される可能性があります。 - -イーサリアムのロードマップは、イーサリアムを改善するための目的の集合と考えてください。 いわば、コアの研究者と開発者が考えた、イーサリアムが目指すべき最適なパスの仮説です。 - -## ロードマップに終わりはありますか? {#when-will-the-roadmap-be-finished} - -イーサリアムでは、今後 6 か月の間に、ステーキングの引き出しなどのアップグレードを実装します 。一方、耐量子暗号などのアップグレードは優先度が低く、今後 5〜10 年間は実装されないかもしれません。 イーサリアムは、多数のロードマップアイテムを同時に進めており、それぞれ異なる速度で開発されています。そのため、各アップグレードの正確なタイミングを予測するのは難しくなっています。 アップグレードの緊急性は、時間の経過とともに外部要因によって変化する可能性があります。例えば、量子コンピューターの性能と普及が急速に進むにつれて、耐量子暗号の緊急性がますます高まっていくかもしれません。 - -イーサリアムの発展を考えるには、生物学的進化を参考にするのも 1 つの方法です。 新しい課題に適応し、適応度を維持できるネットワークは、より成功する可能性が高くなります。そのため、ネットワークのパフォーマンスが上がるにつれて、スケーラブルで安全なプロトコルが必要になります。またプロトコルの変更を最小限に抑え、変化に対して耐性を持つことも重要です。 - -## アップグレードをするには、何が必要ですか? {#do-i-have-to-do-anything-when-there-is-an-upgrade} - -アップグレードは、基本的にエンドユーザーに影響しません。しかし、より良いユーザーエクスペリエンス、より安全なプロトコル、イーサリアムとのやり取りにおいてより多くの選択肢などを提供することについては、影響が考えられます。 エンドユーザーは、アップグレードについて何もする必要はありません。資産を保護するためにも、特別なことをする必要はありません。 ただし、ノードオペレーターは、アップグレードの準備のためにクライアントを更新する必要があります。 一部のアップグレードは、アプリケーションデベロッパーにとって変更となる可能性があります。 例えば、履歴の有効期限におけるアップグレードでは、アプリケーションデベロッパーは、新しい情報源から履歴データを取得することになります。 - -## バージやスプラージなどは何を指していますか? {#what-about-the-verge-splurge-etc} - -[ヴィタリック・ブテリンは、イーサリアムのロードマップの構想を提案しました](https://twitter.com/VitalikButerin/status/1588669782471368704)が、その内容は、イーサリアムのアーキテクチャへの影響別に、個別のカテゴリに分類されていました。 提案内容は、以下のとおりです。 - -- マージ: プルーフ・オブ・ワークからプルーフ・オブ・ステークへの移行に関連するアップグレード -- サージ: ロールアップとデータシャーディングによるスケーラビリティ向上に関連するアップグレード -- スカージ: MEV からの検閲耐性、分散化、プロトコルのリスクに関連するアップグレード -- バージ: ブロックの検証をより簡単にするアップグレード -- パージ: ノード実行における計算コストの削減とプロトコルの簡素化に関連するアップグレード -- スプラージ: これまでのカテゴリに分類できないその他のアップグレード - -よりシンプルでよりユーザーに寄り添ったモデルを目指すため、この用語は使用しないことにしました。 ヴィタリックが提案した構想はそのままですが、用語をよりユーザーにわかりやすいものに変更します。 - -## シャーディングとは何ですか? {#what-about-sharding} - -シャーディングでは、イーサリアムのブロックチェーンを分割する技術です。バリデータのサブセットは、それぞれのチェーンでデータを検証する役割を担います。 これは、もともとイーサリアムをスケーリングする方法として開発されました。 しかし、レイヤー 2 ロールアップの開発が予想以上に進み、すでにさまざまなスケーリング機能を提供できるようになりました。また、プロトダンクシャーディングの実装後には、さらに多くの機能を提供する予定となっているため、 「シャードチェーン」は不要になり、ロードマップから削除されました。 - -## 特定の技術アップグレードについての情報 {#looking-for-specific-technical-upgrades} - -- [ダンクシャーディング](/roadmap/danksharding) - ダンクシャーディングは、イーサリアムのブロックに「ブロブ」と呼ばれるデータを追加することで、ユーザーのレイヤー 2 ロールアップ使用料を大幅に削減します。 -- [ステーキングの引き出し](/saking/withdrawals) - 上海/カペラのアップグレードにより、イーサリアム上のステーキングした ETH を引き出せるようになりました。また、ステーキングした ETH のロックを解除できるようになりました。 -- [シングルスロット・ファイナリティ](/roadmap/single-slot-finality) - 15 分待たずに、同一のスロット内でブロックが提案され、ファイナライズが可能になります。 これにより、アプリにとっては利便性が向上し、攻撃がはるかに困難になります。 -- [プロポーザー/ビルダーセパレーション](/roadmap/pbs) - ブロックを構築するタスクとブロックを提案するタスクを別々のバリデータに分割することで、イーサリアムにおけるコンセンサス合意プロセスを、より効率的で公平にし、検閲耐性のあるものにします。 -- [シークレットリーダー選出](/roadmap/secret-leader-election) - 高度な暗号化を使い、現在のブロック提案者のアイデンティティが公開されないようにします。これにより、特定の攻撃タイプから保護できます。 -- [アカウント抽象化](/roadmap/account-abstraction) - アカウント抽象化はイーサリアムのアップグレードの一種です。複雑なミドルウェアを使用することなく、イーサリアム上でスマートコントラクトウォレットをネイティブにサポートします。 -- [バークルツリー](/roadmap/verkle-trees) - バークルツリーは、イーサリアム上でステートレスクライアントを可能にするために使用されるデータ構造です。 「ステートレス」クライアントは、ストレージ容量をあまり必要とせず、新しいブロックの検証が可能です。 -- [ステートレス](/roadmap/statelessness) - ステートレスクライアントは、大量のデータを保存しなくても新しいブロックを検証できます。 これにより、現在必要とされているコストが大幅に下がりますが、ノードを実行するメリットはそのまま得られます。 diff --git a/src/content/translations/ja/roadmap/merge/index.md b/src/content/translations/ja/roadmap/merge/index.md deleted file mode 100644 index 1d1eb6735c2..00000000000 --- a/src/content/translations/ja/roadmap/merge/index.md +++ /dev/null @@ -1,228 +0,0 @@ ---- -title: マージ -description: マージについて - イーサリアムメインネットへのプルーフ・オブ・ステークの導入 -lang: ja -template: upgrade -image: ../../../../../assets/upgrades/merge.png -summaryPoint1: イーサリアムメインネットは現在プルーフ・オブ・ステークを使用していますが、これまではそうではありませんでした。 -summaryPoint2: 旧プルーフ・オブ・ワークのメカニズムからプルーフ・オブ・ステークへのアップグレードはマージと呼ばれます。 -summaryPoint3: マージとは、元のイーサリアムメインネットが、ビーコンチェーンとよばれる別のプルーフ・オブ・ステークのブロックチェーンと統合(マージ)し、1つのチェーンになったことを意味します。 -summaryPoint4: マージによりイーサリアムのエネルギー消費が最大99.95%削減されました。 ---- - - - マージは、2022年9月15日に行われました。 これにより、イーサリアムはプルーフ・オブ・ステーク・コンセンサスへの移行を完了し、公式にプルーフ・オブ・ワークは廃止されました。この移行により、エネルギー消費量が最大99.95%削減されました。 - - -## マージとは {#what-is-the-merge} - -マージとは、イーサリアムの元の実行レイヤー ([誕生](/history/#frontier)から存在するメインネット) と、新規のプルーフ・オブ・ステークのコンセンサスレイヤーであるビーコンチェーンをマージ(統合)することでした。 これにより、エネルギー集約的なマイニングが不要になり、代わりにステーキングされた ETH を利用して、ネットワークのセキュリティが確保されるようになりました。 イーサリアムのビジョンである、より高性能なスケーラビリティ、より安心なセキュリティ、より高いレベルの持続可能性を実現するための、本当にエキサイティングなステップとなりました。 - - - -当初、[メインネット](/glossary/#mainnet)とは別に[ビーコンチェーン](/roadmap/beacon-chain/)がリリースされました。 メインネットでは[プルーフ・オブ・ワーク](/developers/docs/consensus-mechanisms/pow/)によりすべてのアカウント、残高、スマートコントラクトおよびブロックチェーンの状態の安全性が保たれ、それと同時に[プルーフ・オブ・ステーク](/developers/docs/consensus-mechanisms/pos/)を活用したビーコンチェーンが並行して稼働していました。 マージでは、これらの 2 つのシステムが最終的に統合され、プルーフ・オブ・ワークが永久にプルーフ・オブ・ステークに置き換わりました。 - -イーサリアムが、恒星間航行への準備が不十分で打ち上げられた宇宙船だと想像してみてください。 ビーコンチェーンによって、新型のエンジンと強化された船体が構築されました。 大規模なテストが行われた後、旧式のエンジンと新型のエンジンを飛行中に入れ替える時期となりました。 より効率的な新型のエンジンを既存の宇宙船にマージしたことにより、何光年もの長い宇宙への旅ができるようになったのです。 - -## メインネットとのマージ {#merging-with-mainnet} - -イーサリアムメインネットは、その誕生からマージまで、プルーフ・オブ・ワークにより保護されてきました。 プルーフ・オブ・ワークのもと、トランザクション、スマートコントラクト、アカウントなど、馴染みのあるすべての機能を備えた、イーサリアムのブロックチェーンが 2015 年 7 月に実現しました。 - -イーサリアムの歴史を通して、デベロッパーはプルーフ・オブ・ワークからプルーフ・オブ・ステークへの最終的な移行の準備を行ってきました。 2020 年 12 月 1 日、メインネットとは別のブロックチェーンとして、ビーコンチェーンが誕生し、メインネットと並行して稼働しました。 - -ビーコンチェーンは、もともとはメインネットのトランザクションの処理はせず、 代わりに、アクティブなバリデータとそのアカウント残高に合意することで、独自の状態でコンセンサスに達していました。 膨大なテストを経て、ビーコンチェーンは実世界のデータでのコンセンサスに用いる時が来ました。 マージ後は、ビーコンチェーンが実行レイヤーのトランザクションやアカウント残高を含む全てのネットワークデータのコンセンサスエンジンになりまりました。 - -マージは、ブロック生成のエンジンとしてビーコンチェーンを使用するという公式な変更になり、 マイニングは有効なブロックを生成する手段ではなくなりました。 代わりに、プルーフ・オブ・ステークのバリデータが、すべてのトランザクションの有効性とブロック生成の処理を担当することになりました。 - -マージにより、履歴は失われていません。 メインネットがビーコンチェーンにマージされ、イーサリアムのすべてのトランザクション履歴もマージされました。 - - -このプルーフ・オブ・ステークへの移行により、イーサ(ETH)の発行方法も変わりました。 マージ前後におけるイーサ(ETH)発行の詳細については、こちらをご覧ください。 - - -### ユーザーと所有者 {#users-holders} - -**保有者やユーザーにとっては、マージにより何かが変わったということはありません。** - -_繰り返しになりますが_、ETH やイーサリアム上の他のデジタル資産のユーザーや保有者、またノードを運用していないステイカーは、 **マージに伴い、資金やウォレットに何かをする必要はありません**。ETH は ETH のままです。 マージ後も、「古い ETH」/「新しい ETH」や「ETH1」/「ETH2」のようなものはなく、ウォレットは以前とまったく同じように動作します。そうでないと言う人は詐欺師の可能性があります。 - -プルーフ・オブ・ワークを停止し、プルーフ・オブ・ステークに移行した後も、イーサリアムの誕生以降の全トランザクション履歴はそのままで、変更されていません。 マージ以前にウォレットに保有されていた資金は、マージ後も引き続きご利用いただけます。 **ユーザーや保有者は、何かをアップグレードする必要はありません。** - -[イーサリアムセキュリティの詳細](/security/#eth2-token-scam) - -### マージと分散型アプリ(Dapp)のデベロッパー {#node-operators-dapp-developers} - - - -主なアクション項目は次のとおりです。 - -1. コンセンサスクライアントと実行クライアントの両方を実行します。実行データを取得するためのサードパーティーエンドポイントは、マージ以降は利用できなくなっています。 -2. 実行クライアントとコンセンサスクライアントが安全に通信できるように、共有の JWT シークレットで認証します。 -3. 獲得したトランザクションフィーのチップまたは MEV を受け取るための「フィーの受取人」のアドレスを設定します。 - -上記の最初の 2 つの項目が完了していないと、両方のレイヤーが同期および認証されるまで、ノードが「オフライン」として表示されてしまいます。 - -「フィーの受取人」を設定しなくても、バリデータは通常どおり動作しますが、バリデータが提案したブロックの未焼却のフィーのチップや獲得できたはずの MEV を逃すことになります。 - - - - -マージまでは、ネットワークから送信されるブロックを受信し、適切に検証し、伝搬するには、実行クライアント(Geth、Erigon、Besu、Nethermind など)だけで十分でした。 マージ後は、実行ペイロードに含まれるトランザクションの有効性は、それ自体の「コンセンサスブロック」の有効性にも依存します。 - -そのため、マージ後のイーサリアム・フルノードでは、今は実行レイヤクライアントとコンセンサスレイヤクライアントの両方が必要になります。 これらの 2 つのクライアントは、新しいエンジン API を使用して連携します。 エンジン API では、JWT シークレットを使用した認証が必要で、JWT シークレットは両方のクライアントに提供され、安全な通信が行われます。 - -主なアクションアイテムは以下の通りです。 - -- 実行クライアントに加え、コンセンサスクライアントをインストールする -- 実行クライアントとコンセンサスクライアントが安全に通信できるように、共有 JWT シークレットで認証する - -上記の項目が完了していないと、両方のレイヤーの同期と認証が完了するまで、ノードが「オフライン」のように表示されます。 - - - - - -マージにはコンセンサスに関連する変更も含まれており、下記に関連する変更も含まれています。< - -
    -
  • ブロック構造
  • -
  • スロットとブロックのタイミング
  • -
  • オペコードの変更
  • -
  • オンチェーンのランダム性に関するソース
  • -
  • セーフヘッド確定したブロックのコンセプト
  • -
- -詳細については、Tim Beiko によるブログ投稿マージがイーサリアムのアプリケーションレイヤーに与える影響をご覧ください。 - -
- -## マージとエネルギー消費 {#merge-and-energy} - -マージは、イーサリアムでのプルーフ・オブ・ワークの終わりを意味し、より持続可能で環境に優しいイーサリアムの時代をスタートさせました。 イーサリアムのエネルギー消費量は推定で 99.95%減少し、環境に優しいブロックチェーンとなりました。 [イーサリアムのエネルギー消費の詳細](/energy-consumption/) - -## マージとスケーリング {#merge-and-scaling} - -マージにより、プルーフ・オブ・ワークでは不可能だったスケーラビリティのさらなる向上が可能になったことで、[イーサリアムのビジョン](/roadmap/vision/)である完全なスケーラビリティ、セキュリティ、サステナビリティの達成に一歩近づくことになります。 - -## マージに関する誤解について {#misconceptions} - - - -イーサリアムのノードには、ブロックを提案できるノードとできないノードがあります。 - -ブロックを提案するノードは、イーサリアムの全ノードのうち、ごくわずかに過ぎません。 このカテゴリには、プルーフ・オブ・ワーク(PoW) のマイニングノードとプルーフ・オブ・ステーク(PoS) のバリデータノードがあります。 このカテゴリでは、時折次のブロックを提案し、プロトコル報酬を得る能力と引き換えに、経済的リソース(プルーフ・オブ・ワークでは GPU ハッシュパワー、プルーフ・オブ・ステークでは ETH のステーキング)を必要とします。 - -ネットワーク上の他のノード (例: 大多数)は、利用可能なストレージとインターネット接続の 1〜2TB の消費者グレードのコンピュータを超えて経済的なリソースを何もコミットする必要はありません。 これらのノードはブロックを提案しませんが、新しいブロックをリスニングし、ブロックの出現時にネットワークのコンセンサスルールに従って有効性を検証し、すべてのブロック提案者に責任を持たせます。このようにネットワークを保護する重要な役割を担っています。 ブロックが有効と判断されれば、ノードはそのブロックをネットワークを通じて伝搬し続けます。 何らかの理由でブロックが無効と判断された場合、ノードソフトウェアはそのブロックを無効とみなし、伝搬を停止させます。 - -両方の合意メカニズム(プルーフ・オブ・ワークまたはプルーフ・オブ・ステーク)のもとで、誰でもブロックを生成しないノードを実行できます。可能な限り多くのユーザーにノードの実行を推奨します。 ノードの運用はイーサリアムに非常に大きな貢献となり、セキュリティやプライバシー、検閲耐性を向上させるなど、ノードを運用するすべての人もその恩恵を受けることになります。 - -また、誰もが自分自身のノードを運用できることは、イーサリアムネットワークの分散化を維持するために不可欠です。 - -自分のノードを運用することについての詳細 - - - - - -ガス代は、ネットワーク容量に対するネットワーク需要の産物です。 マージにより、コンセンサスにプルーフ・オブ・ワークからプルーフ・オブ・ステークに移行しましたが、ネットワーク容量やスループットに直接影響するパラメーターは大幅に変更されませんでした。 - -ロールアップを中心としたロードマップでは、レイヤー 2でのユーザーアクティビティのスケーリングに集中して取り組み、レイヤー 1 メインネットをロールアップのデータ保存に最適化された安全な分散型決済レイヤーとして稼働させ、ロールアップトランザクションの大幅な低コスト化を目指しています。 プルーフ・オブ・ステークへの移行は、これを実現するための重要な布石となります。 ガスとフィーについての詳細 - - - - -トランザクションの「速度」は、ブロックに含まれるまでの時間や確定までの時間など、いくつかの方法で測定することができます。 いずれも若干の違いはありますが、ユーザーが気づくようなものではありません。 - -従来、プルーフ・オブ・ワークでの目標は約 13.3 秒ごとに新しいブロックを生成することでした。 プルーフ・オブ・ステークの下では、スロットが 12 秒ごとに正確に発生し、そのたびにバリデータがブロックを公開する機会があります。 ほとんどのスロットにはブロックがありますが、必ずしもすべてのスロットにブロックがあるわけではありません (例: バリデータがオフラインの場合など) 。 プルーフ・オブ・ステークでは、プルーフ・オブ・ワークに比べてブロックの生成頻度が 10%程度高くなっています。 これはかなり些細な変更のため、ユーザーが気付くほどではありません。 - -プルーフ・オブ・ステークにより、以前は存在しなかったトランザクションのファイナリティのコンセプトが導入されました。 プルーフ・オブ・ワークでは、トランザクションが含まれるブロックの改ざんは、新たなブロックがマイニングされるたびに、指数関数的に難しくなっていきますが、可能性が完全にゼロになることはありません。 プルーフ・オブ・ステークでは、ブロックはエポック(6.4 分間、この間に 32 ブロックが生成可能)に束ねられ、バリデータが投票します。 1 つのエポックの終了時に、バリデータはそのエポックを「正当」とみなすかどうか投票します。 バリデータがエポックの正当性に同意した場合、次のエポックで確定されます。 確定したトランザクションを取り消すには、ステーキングされた全 ETH の 3 分の 1 以上を取得し、焼却する必要があるため、経済的に不可能となります。 - - - - - -マージ後の初期段階では、ステーカーはブロック提案の結果として獲得したフィーチップと MEV のみにアクセスできました。 これらの報酬は、バリデータが管理する非ステーキングアカウント (フィーの受取人と呼ばれる) に入金され、すぐに利用できます。 これらの報酬は、バリデータの職務を遂行するためのプロトコル報酬と別です。 - -上海/カペラネットワークのアップグレード以降、 ステーカーは引き出しアドレスを指定して、超過しているステーキング残高(32ETH を越えた分のプロトコル報酬)の自動支払を受け取れるようになりました。 このアップグレードにより、バリデータがネットワークから抜け出すときに、ロックを解除して残高全体を回収できるようになりました。 - -ステーキングの引き出しについての詳細 - - - - -上海/カペラアップグレードにより出金が可能になってから、バリデータは 32ETH を超えるステーキング残高を出金するよう奨励されています。これらの資金は利回りに追加されず、ロックされているためです。 年換算利回り(ステークした ETH の合計により決定)によっては、バリデータをやめて残高を引き出すか、報酬を使ってさらにステーキングして、より多くの利回りを得ることもできます。 - -ステーキングの重要な注意点として、全バリデータの退出はプロトコルによってレート制限が設定されており、エポックごとに(6.4 分ごとに)退出できるバリデータの数は限られています。 この制限はアクティブなバリデータの数に応じて変動しますが、1 日の間にネットワークから退出できるのは、ステークされた ETH の合計の約 0.33%になります。 - -これにより、ステークされた資金の大量流出を防ぎます。 さらに、プロトコルがスラッシングペナルティを執行する前に、ステークされた全ての ETH の大部分にアクセスできる攻撃者がスラッシング対象の違反をして、同じエポック内で違反しているバリデータの残高をすべて終了または引き出してしまうことを防ぎます。 - -また、年換算利回りは意図的にダイナミックに設定されており、ステーカー市場がバリデータの報酬額をバランスよく調整できるようになっています。 レートが低すぎる場合は、ステーカーはプロトコルが制限するレート範囲内で退出していきます。 その結果、残っているステーカーの年換算利回りが徐々に上昇し、新しいステーカーを引き寄せたり、ステーカーが再度戻ってくることになります。 - - -## Eth2 の名称廃止 {#eth2} - -「Eth2」という用語は廃止されました。 「Eth1」と「Eth2」が単一チェーンに統合された今では、2 つのイーサリアムネットワークを区別する必要はなくなり「イーサリアム」のみとなりました。 - -混乱をなくすため、次の名称が変更になりました。 - -- 「Eth1」は「実行レイヤー」と名称が変わり、これはトランザクションと実行を処理するレイヤーです。 -- 「Eth2」は「コンセンサスレイヤー」となり、プルーフ・オブ・ステークのコンセンサスを処理するレイヤーです。 - -これらの用語の変更は、単に名称を変更するだけのものであり、イーサリアムの目標やロードマップには影響を及ぼしません。 - -[「Eth2」名称変更の詳細](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) - -## アップグレード間の関係 {#relationship-between-upgrades} - -イーサリアムのアップグレードはすべて、多少なりとも相互に関連しています。 マージと他のアップグレードがどのように関係しているか、まとめてみましょう。 - -### マージとビーコンチェーン {#merge-and-beacon-chain} - -マージにより、元のメインネットの実行レイヤーへ、新しくコンセンサスレイヤーとしてビーコンチェーンが正式に採用されました。 マージ以降、バリデータがイーサリアムメインネットの保護にあたり、[プルーフ・オブ・ワーク](/developers/docs/consensus-mechanisms/pow/)によるマイニングはブロック生成の有効な手段ではなくなっています。 - -ブロックは、コンセンサスに参加する権利を得るために、ETH をステーキングしたノードを検証することで提案されます。 これらのアップグレードは、シャーディングを含む将来のスケーラビリティのアップグレードの準備段階となります。 - - - ビーコンチェーン - - -### マージと上海アップグレード {#merge-and-shanghai} - -プルーフ・オブ・ステークへの移行を簡略化し、移行作業に最大限の注力を注ぐため、マージでは、ステーキングした ETH の引き出し機能など、いくつかの予定されたいた機能が対象外となりました。 この機能は別途、上海/カペラアップグレードのアップグレードで有効化されました。 - -さらにご興味のある方は、ヴィタリックが 2021 年 4 月の ETHGlobal イベントで発表した[マージ後の予定](https://youtu.be/7ggwLccuN5s?t=101)をご覧ください。 - -### マージとシャーディング {#merge-and-data-sharding} - -もともとの計画では、マージ前にシャーディングに取り組み、スケーラビリティに対応する予定でした。 しかし、[レイヤー 2 スケーリングソリューション](/layer-2/)の高まりにより、まずはプルーフ・オブ・ワークからプルーフ・オブ・ステークへの移行が優先されました。 - -シャーディング計画は急速に進展していますが、トランザクションの実行をスケールリングするレイヤー 2 技術の台頭と成功により、ロールアップコントラクトからの圧縮コールデータ(calldata)の保存を負荷分散する最適な方法を見つけることにシフトしています。これにより、ネットワーク容量を指数関数的に増やすことができるようになります。 プルーフ・オブ・ステークへの移行がなければ、これは実現不可能なことでした。 - - - シャーディング画像 - - -## 参考文献 {#further-reading} - - - - diff --git a/src/content/translations/ja/roadmap/scaling/index.md b/src/content/translations/ja/roadmap/scaling/index.md deleted file mode 100644 index da1520a4e27..00000000000 --- a/src/content/translations/ja/roadmap/scaling/index.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Scaling Ethereum -description: ロールアップでは、トランザクションをオフチェーンでまとめて処理することで、ユーザーのコスト削減を実現しています。 しかし、現在のロールアップでは、データを使用するコストが高く、トランザクションを安価にすることが難しいという課題があります。 これについては、プロトダンクシャーディングによって解決できます。 -lang: ja -image: ../../../../../assets/roadmap/roadmap-transactions.png -alt: "イーサリアムロードマップ" -template: roadmap ---- - -イーサリアムは、[レイヤー 2](/layer-2/#rollups)(ロールアップとも呼ばれます)と呼ばれるスケーリング技術で、トランザクションをまとめて処理し、出力をイーサリアムに送信します。 ロールアップでは、イーサリアムメインネットよりも最大 8 倍安価に取引を行うことができますが、ロールアップのさらなる最適化によって、さらにコストを削減できる可能性があります。 ただし、ロールアップには一部の集中化されたコンポーネントも含まれており、これはロールアップが成熟するにつれてデベロッパーによって取り除かれる予定です。 - - -
    -
  • 現在のロールアップはイーサリアムのレイヤー1よりも約3~8倍安い
  • -
  • ゼロ知識ロールアップはまもなく、約40~100倍安くなる予定
  • -
  • イーサリアムの今後の仕様変更により、さらに約100~1000倍のスケーリングが実現
  • -
  • ユーザーは、トランザクションのコストが0.001ドル未満というメリットを享受
  • -
-
- -## データ費用の削減 {#making-data-cheaper} - -ロールアップでは、大量のトランザクションをまとめて、その結果をイーサリアムに送信します。 これにより、大量のデータが生成されます。このデータは、誰でもアクセスできるように公開する必要があります。公開されているので、誰でも自分でトランザクションを実行し、ロールアップオペレーターが正直かどうかを確認することができます。 不一致を発見した場合、異議を申し立てることができます。 - -### プロトダンクシャーディング {#proto-danksharding} - -ロールアップのデータは、イーサリアム上に永続的に保存されるため、コストがかかります。 ユーザーは、ロールアップで支払うトランザクションコストの 90%以上を、データストレージに費やしています。 トランザクションコストを削減するため、新たに「ブロブ」と呼ばれる一時ストレージ領域にデータを移動できるようになりました。 ブロブは、永続的でないため、比較的コストが安くなっており、不要になるとイーサリアムから削除されます。 ロールアップデータの長期保存は、ロールアップオペレータ、取引所、インデックスサービスなど、それを必要とする人々の役割となります。 イーサリアムへのブロブトランザクションの追加は、「プロトダンクシャーディング」と呼ばれるアップグレードの一部であり、 2023 年後半の比較的早い時期にリリースされる予定です。 - -プロトダンクシャーディングによって、イーサリアムプロトコルにブロブトランザクションが組み込まれると、イーサリアムのブロックにたくさんのブロブを追加できるようになります。 これにより、イーサリアムのスループットが大幅に向上し(100 倍以上)、トランザクションのコストも下げることができます。 - -### ダークシャーディング {#danksharding} - -ブロブデータ拡張の第 2 段階は、大変複雑です。理由は、ロールアップデータがネットワーク上で利用可能であることを確認する新しい方法が必要だからです。また、バリデータの役割を分離して、ブロック構築とブロック提案に分けることも必要です。 さらに、バリデータがブロブデータの小さなサブセットを検証したことを暗号的に証明する方法も必要になります。 - -この 2 番目のステップは、[「ダンクシャーディング」](/roadmap/danksharding/)と呼ばれます。 完全に実装されるまでには、数年かかると予想されています。 ダンクシャーディングは、[ブロック構築とブロック提案を分離する](/roadmap/pbs)などの他の開発に依存しています。また、データが利用可能であることを効率的に確認するために、[データ可用性サンプリング(DAS)](/developers/docs/data-availability)と呼ばれる、数キロバイトのデータをランダムにサンプリングする新しいネットワーク設計も採用しています。 - -ダンクシャーディングの詳細 - -## 分散型ロールアップ {#decentralizing-rollups} - -[ロールアップ](/layer-2)は、イーサリアムのスケーラビリティ問題を解決する技術として、すでに実用化されています。 [ロールアッププロジェクトの豊富なエコシステム](https://l2beat.com/scaling/tvl)は、さまざまなセキュリティ保証を備えており、ユーザーは迅速かつ安価にトランザクションを実行できます。 しかし、ロールアップは、集中型のシーケンサー(トランザクションをイーサリアムに送信する前にすべてのトランザクション処理と集約を行うコンピューター)に依存しています。 シーケンサーは、オペレーターが制裁を受けたり、賄賂を受け取ったり、その他の方法で妨害される可能性があるため、検閲に対して脆弱です。 同時に、[ロールアップでは受信データを検証する方法が異なります](https://l2beat.com)。 最善の方法としては、「証明者」が不正証明または有効性証明を提出することですが、すべてのロールアップに備わっているわけではありません。 さらに、有効性証明および不正証明を使用するロールアップであっても、既知の証明者の小さなプールを使用するものがあります。 そのため、イーサリアムをスケーリングするための次の重要なステップは、シーケンサーと証明者を実行する責任をより多くの人々に分散することです。 - -ロールアップの詳細 - -## 現在の進行状況 {#current-progress} - -プロトダンクシャーディングは、ロードマップの初期段階で実装される予定です。 セットアップに必要な分散型の計算ステップはすでに開発済みです。また、いくつかのクライアントがブロブデータを処理できるプロトタイプも実装済みです。 完全なダンクシャーディングは、他のロードマップアイテムの完了を待つ必要があるため、おそらく数年先になるでしょう。 分散型ロールアップのインフラストラクチャは、段階的なプロセスを踏みます。たくさんの異なるロールアップが存在し、各システムで小さな違いがあります。そのため、それぞれ違った速度で完全に分散化されることになるでしょう。 diff --git a/src/content/translations/ja/roadmap/security/index.md b/src/content/translations/ja/roadmap/security/index.md deleted file mode 100644 index 726fb668ab1..00000000000 --- a/src/content/translations/ja/roadmap/security/index.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: より安全なイーサリアム -description: イーサリアムは、現存するスマートコントラクトプラットフォームの中で、最も安全かつ分散化されています。 しかし、将来にわたってあらゆるレベルの攻撃に対して耐性を維持するためには、改善すべき点がまだあります。 -lang: ja -image: ../../../../../assets/roadmap/roadmap-security.png -alt: "イーサリアムロードマップ" -template: roadmap ---- - -イーサリアムは、すでに非常に安全な分散型スマートコントラクトプラットフォームですが、 今後もあらゆる種類の攻撃に耐えられるように、まだまだ改善の余地があります。 具体的には、イーサリアムクライアントにおける競合ブロックの処理方法を少しだけ変更したり、ネットワークがブロックを [「確定済み」](/developers/docs/consensus-mechanisms/pos/#finality)(攻撃者が多大な経済的損失を受けないと変更できない)にする速度を上げたりするなどです。 - -また、ブロック提案者にブロックの実際の内容を見えないようにすることで、トランザクションの検閲をさらに困難にする改善策や、クライアントがいつ検閲を行ったかを識別する新しい方法もあります。 これらの改善策が合わさることで、プルーフ・オブ・ステークにおけるプロトコルがアップグレードされ、個人から企業のユーザーまで、イーサリアム上のアプリ、データ、資産から即座に信用を得ることができます。 - -## ステーキングの引き出し {#staking-withdrawals} - -イーサリアムのプルーフ・オブ・ワークからプルーフ・オブ・ステークへのアップグレードは、イーサリアムの先駆者たちが自分のイーサ(ETH)をデポジットコントラクトに「ステーキング」することで始まりました。 このステーキングに使われる ETH は、ネットワークの保護に使われます。 ただし、この ETH は、現時点ではロックされており、ユーザーに返すことはできません。 プルーフ・オブ・ステークのアップグレードでは、ステーキングした ETH の引き出しが可能になります。 これは、プルーフ・オブ・ステークのプロトコルが完全に機能するために重要な要素であり、ステーカーが ETH 報酬を自由に使えるようになることで、イーサリアムのセキュリティにも有益です。 なぜなら、ステーキングに流動性を求めるユーザーが、リキッドステーキングデリバティブ(LSD)に頼る必要がなくなるからです。LSD は、イーサリアムを集中化させる力になる可能性があります。 このアップグレードは、2023 年 4 月 12 日に完了する予定です。 - -引き出しについての詳細 - -## 攻撃からの防御 {#defending-against-attacks} - -引き出しが可能になった後にも、イーサリアムの[プルーフ・オブ・ステーク](/developers/docs/consensus-mechanisms/pos/)のプロトコルにはいくつかの改善点があります。 1 つは、[ビューマージ](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739)と呼ばれる、より安全なフォーク選択アルゴリズムです。 これにより、高度なタイプの攻撃をさらに防ぐことができます。 - -イーサリアムがブロックを確定させるまでの時間を短縮することで、ユーザーがより快適に利用できるようになります。また、攻撃者が、高度な「再編成」攻撃を行って直近のブロックの再シャッフルを試みることで、利益を得たり、特定のトランザクションを検閲しようとするのを防ぐことができます。 [**シングルスロット・ファイナリティ(SSF)**](/roadmap/single-slot-finality/)は、トランザクションが確定に至るまでの遅延時間を短縮する方法です。 現行のシステムでは、15 分以内に生成されたブロックは、理論上攻撃者が他のバリデータにブロックの再構成を誘導できます。 SSF では、この脆弱性が解消されます。 個人からアプリや取引所まで、全てのユーザーは、トランザクションが取り消されないという保証を迅速に受けられます。ネットワークでは、SSF によりあらゆる種類の攻撃を遮断することができます。 - -シングルスロット・ファイナリティの詳細 - -## 検閲からの防御 {#defending-against-censorship} - -分散化は、個人や少数のグループのバリデータが、過剰な影響力を持ってしまうことを防ぐ効果があります。 新たなステーキングの技術は、イーサリアムのバリデータを可能な限り分散化した状態に保ち、ハードウェア、ソフトウェア、ネットワークの障害から保護します。 この新たなステーキングの技術では、複数のノード間でバリデータの責任を共有するソフトウェアも対象になっています。 これを、**分散バリデータ技術(DVT)**と呼びます。 DVT により、複数のコンピュータが共同で検証を行うことで、冗長性とフォールトトレランスが向上します。そのため、ステーキングプールでは、DVT の使用が推奨されています。 DVT では、バリデータ鍵を複数のシステムに分割します。これにより、1 つのオペレータが複数のバリデータを実行できなくなり、 不正なオペレータによるイーサリアムへ攻撃が困難になります。 つまり、バリデータを個人ではなく、*コミュニティ*全体で実行することで、セキュリティを高めるというアイデアです。 - -分散バリデータ技術の詳細 - -**プロポーザー/ビルダーセパレーション(PBS)**の実装により、イーサリアムの検閲耐性が大幅に向上します。 PBS では、ブロックの作成とイーサリアムネットワーク全体へのブロードキャストを別々のバリデータが担います。 これにより、利益を最大化している専門家のブロック構築アルゴリズムによる利益の偏りを防ぎ、ネットワーク全体でより公平な利益分配を実現します。また、時間の経過とともに、最もパフォーマンスの高い機関投資家に**ステークが集中化することを防ぐ**ことができます。 ブロック提案者は、ブロックビルダーの市場から提供されたブロックの中から、最も収益性の高いものを選択できます。 しかし、検閲を行うためには、収益性の低いブロックを選択なければならない状況が頻繁に発生します。これは、**ネットワーク上の残りのバリデータにとっても利益が低く、経済的に不合理**な行為です。 - -イーサリアムの検閲耐性をさらに向上させるために、暗号化されたトランザクションや包含リストなどのアドオンが検討されています。 これらのアドオンを使うと、ブロックの構築者や提案者は、ブロックに含まれる実際のトランザクションを把握できなくなります。 - -プロポーザー/ビルダーセパレーションの詳細 - -## バリデータの保護 {#protecting-validators} - -高度な攻撃者は、次に担当するバリデータを特定して、ブロックの提案を阻止するためにスパムを送信してくる可能性があります。これは**サービス拒否(DoS)攻撃**と呼ばれるものです。 [**シークレットリーダー選出(SLE)**](/roadmap/secret-leader-election)が実装されれば、ブロック提案者を事前に知ることができなくなるため、このタイプの攻撃から保護することができます。 SLE は、候補のブロック提案者を表す暗号コミットメントのセットを、継続的にシャッフルして順番を決め、その順番でバリデータを選択します。この方法により、バリデータは自分の順番を事前に知ることができます。 - -シークレットリーダー選出の詳細 - -## 現在の進行状況 {#current-progress} - -ロードマップ上のセキュリティアップグレードの研究は進んでいますが、実装にはまだ時間がかかりそうです。 ビューマージ、PBS、SSF、SLE における次のステップは、仕様を決定し、プロトタイプの構築を開始することです。 diff --git a/src/content/translations/ja/roadmap/user-experience/index.md b/src/content/translations/ja/roadmap/user-experience/index.md deleted file mode 100644 index 2108503b4ab..00000000000 --- a/src/content/translations/ja/roadmap/user-experience/index.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: ユーザーエクスペリエンスの改善 -description: イーサリアムは、ほとんどの人にとって使いこなすのが難しいものです。 そのため、一般の人にも使ってもらえるように、イーサリアムへの参入障壁を大幅に下げる必要があります。ユーザーは、イーサリアムの分散型、パーミッションレス、検閲耐性といったアクセスのメリットを享受できるだけでなく、従来のWeb2アプリと同じように簡単に使えるようにする必要があります。 -lang: ja -image: ../../../../../assets/roadmap/roadmap-ux.png -alt: "イーサリアムロードマップ" -template: roadmap ---- - -イーサリアムを簡単に使用するためには、鍵やウォレットの管理からトランザクションの開始まで、さまざまな手順が必要です。 一般への普及を促進するには、これらの手順を簡略化して、イーサリアムを大幅に使いやすくする必要があります。また、Web2 アプリのようなスムーズなユーザーエクスペリエンスを提供することで、パーミッションレスで検閲耐性のあるアクセスを体験できるようにしなければなりません。 - -## シードフレーズを超えて {#no-more-seed-phrases} - -イーサリアムのアカウントは、 「公開鍵」でアカウントを特定し、「秘密鍵」でメッセージに署名します。この鍵のペアを利用して、イーサリアムのアカウントは保護されています。 秘密鍵は、マスターパスワードのようなものです。この鍵があれば、イーサリアムアカウントに完全にアクセスすることができます。 イーサリアムのアカウントの操作は、銀行や Web2 アプリのように、ユーザーに代わって口座を管理する仕組みとは異なるため、戸惑う人もいるでしょう。 集中化されているサードパーティに依存することなくイーサリアムを一般に普及させるには、ユーザーが公開鍵と秘密鍵による暗号化や鍵管理を理解しなくても、自分の資産を保管し、自分のデータを管理できる簡単でスムーズな方法が必要です。 - -これに対する解決策は、スマートコントラクトウォレットを使用してイーサリアムとやり取りすることです。 スマートコントラクトウォレットは、鍵の紛失や盗難に備えたアカウント保護、より優れた不正行為の検出や防御、新しい機能の追加など、さまざまなメリットをもたらします。 スマートコントラクトウォレットはすでに存在していますが、まだ使いにくいため、イーサリアムプロトコルがそれらをより便利に使えるようにサポートする必要があります。 この追加サポートは、アカウント抽象化と呼ばれています。 - -アカウント抽象化の詳細 - -## 誰でも使えるノード - -ノードを実行しているユーザーは、データを提供するサードパーティに依存せず、イーサリアムブロックチェーンと迅速かつプライバシーを保ち、パーミッションレスにやり取りができます。 しかし、現時点では、ノードを実行するには技術的な知識とかなりのディスク容量が必要でであるため、多くの人はノードを実行する代わりに仲介者に頼らざるを得ません。 - -ノードの実行をより簡単にし、リソースの消費を大幅に削減するアップグレードを予定しています。 データの格納方法は、 スペース効率の高い**バークルツリー**と呼ばれるス構造に変更する予定です。 また、[ステートレス](/roadmap/statelessness)や[データ有効期限](/roadmap/statelessness/#data-expiry)の導入により、イーサリアム ノードはイーサリアム状態データ全体のコピーを保存する必要がなくなり、ハードディスク容量を大幅に削減できます。 [ライトノード](/developers/docs/nodes-and-clients/light-clients/)は、フルノードを実行することで得られる多くのメリットを提供しますが、携帯電話や単純なブラウザアプリ内でも簡単に実行できるようになります。 - -バークルツリーについての詳細 - -これらのアップグレードにより、ノードの実行に対する障壁が事実上無くなります。 ユーザーは、コンピューターや携帯電話のディスク容量や CPU を気にせずに、イーサリアムに安全かつパーミッションレスにアクセスできるようになります。また、アプリを使用するときに、データやネットワークへのアクセスでサードパーティに依存する必要がなくなります。 - -## 現在の進行状況 {#current-progress} - -スマートコントラクトウォレットはすでに利用可能ですが、それらをできるだけ分散化してパーミッションレスにするには、さらなるアップグレードが必要です。 EIP-4337 は、イーサリアムのプロトコルへを変更せずに導入できる成熟した提案です。 EIP-4337 で必要となる主要なスマートコントラクトは、2023 年 3 月にデプロイされました。 - -完全なステートレスはまだ研究段階にあり、実装されるのは数年先になると考えられます。 データ有効期限を含む完全にステートレスになる工程には、いくつかのマイルストーンがあり、そのうちのいくつかは、近い将来に実装される可能性がありますが、 [バークルツリー](/roadmap/verkle-trees/)や[プロポーザー/ビルダーセパレーション](/roadmap/pbs/)などの他の工程が先に完了している必要があります。 - -バークルツリーのテストネットは、すでに稼働しています。次のフェーズでは、バークルツリーを有効にしたクライアントをプライベートテストネットで実行し、次にパブリックテストネットで実行します。 コントラクトをテストネットにデプロイしたり、テストネットでクライアントを実行したりすることで、開発を進めるお手伝いができます。 diff --git a/src/content/translations/ja/smart-contracts/index.md b/src/content/translations/ja/smart-contracts/index.md deleted file mode 100644 index 02311b84ed5..00000000000 --- a/src/content/translations/ja/smart-contracts/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: スマートコントラクト -description: スマートコントラクトの紹介(非テクニカル面) -lang: ja ---- - -# スマートコントラクト入門 {#introduction-to-smart-contracts} - -スマートコントラクトは、[イーサリアムアプリケーション](/dapps/) の基本的な構成要素です。 これらは、従来の契約をデジタルに変換できる、ブロックチェーンに保存されたコンピュータプログラムです。 スマートコントラクトは非常に論理的で、イフト(IF This Then That:もし「これ」ならば、「あれ」をする)の構造に従っています。 また、プログラムされた通りに正確に動作し、変更できません。 - -Nick Szabo は「スマートコントラクト」という用語を作りました。 1994 年、彼は[概念の紹介](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html)を書き、1996 年には[スマートコントラクトの可能性の探求](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html)を執筆しました。 - -Nick Szabo は、自動的で暗号的に安全なプロセスに基づいて構築されたデジタル市場を描きました。 トランザクションやビジネス機能が、仲介者なしに、管理者による承認を必要とせずに行われる世界です。 イーサリアムのスマートコントラクトは、このビジョンを実現したものです。 - -## スマートコントラクトとは {#what-are-contracts} - -*「弁護士ではないのに、 なぜコントラクト(契約)に関心を持たないといけないのか」*と思われている人もいるかもしれません。 ほとんどの人は、不必要に長い契約条件、または退屈な法的文書を念頭に置きます。 - -コントラクトとは、単なる合意です。 つまり、あらゆる形式の合意は、契約条件内に包含することができます。 多くの場合、口頭での合意や書面によるコントラクトは受け入れられますが、欠陥が含まれることがあります。 - -### 信頼とコントラクト {#trust-and-contracts} - -従来の契約における最大の問題の 1 つは、信頼できる個人が契約事項に遂行する必要があることです。 - -次に例を示します。 - -アリスとボブは自転車レースをしていると仮定します。 アリスは自分がレースに勝つと、10 ドル賭けるとします。 ボブは自分が勝者になると確信しており、賭けに同意します。 結果、アリスはボブよりも先にレースを終え、勝ちました。 しかし、ボブはアリスが不正をしたと主張して、賭けの支払いを拒否します。 - -この例は、スマートでない合意について問題を示しています。 たとえレースに勝って、契約の条件が満たされたとしても、他者が契約を履行すると(つまり、掛け金を支払う)信頼しなければなりません。 - -## スマートコントラクト {#smart-contracts} - -スマートコントラクトは、契約条件が満たされたときに自動的に実行するコンピュータコードに契約をデジタル化します。 - -### デジタル自動販売機 {#vending-machine} - -スマートコントラクトの単純なたとえとしては、特定の入力をすると所定の出力がされる自動販売機があり、これはスマートコントラクトと機能が多少似ています。 - -- 製品を選択 -- 自動販売機は製品の購入に必要な金額を表示 -- 正しい金額を挿入 -- 自動販売機は正しい金額を挿入されたことを確認 -- 自動販売機は選択された製品を出し販売 - -自動販売機は、すべての要件が満たされた後にのみ、希望の製品を出します。 商品を選択しない、または十分なお金を挿入しない場合は、自動販売機は商品を出しません。 - -### 自動実行 {#automation} - -通常の契約と比較し、スマートコントラクトの顕著なメリットの 1 つに、契約条件が満たされたときに結果が自動的に実行されることです。 誰かが実行するのを待つ必要はありません。 言い換えると、スマートコントラクトでは誰かを信頼する必要性はありません。 - -例えば、子どものためにエスクローで資金を保持し、所定の日付以降に子どもが資金を引き出すことができるスマートコントラクトを作成したとします。 所定の日付までに資金を引き出そうとしても、スマートコントラクトは実行されません。 または、車のディーラーの支払い完了時に、車両の所有権証明書のデジタル版を自動的に得るコントラクトを作ることもできます。 - -### 予測可能な結果 {#predictability} - -従来の契約における問題の最大のポイントの 1 つは、人的要因です。 例えば、2 人の裁判官は、従来の契約を異なって解釈する場合があります。 解釈の違いは、異なる判決を下し、結果が異なってしまう場合があります。 スマートコントラクトは、解釈が異なるという可能性を排除します。 スマートコントラクトは、コントラクトのコードに記載されている条件に基づいて正確に実行されるため、解釈の違いは生じません。 これは、同じ状況下ではスマートコントラクトは同じ結果を生み出すことを意味します。 - -### パブリックレコード {#public-record} - -スマートコントラクトは、監査や追跡にも役立ちます。 イーサリアムのスマートコントラクトは、パブリックブロックチェーン上にあるため、誰でも即座に資産移管やその他の関連情報を追跡することができます。 例えば、誰かがあなたのアドレスに送金したことを確認できます。 - -### プライバシーの保護 {#privacy-protection} - -スマートコントラクトはプライバシーも保護します。 イーサリアムは匿名のネットワークで、トランザクションは身元ではなく、一意の暗号アドレスが公開して紐づけられ、第三者からプライバシーを守ることができます。 - -### 契約条件の可視性 {#visible-terms} - -最後に、契約と同様、署名(またはスマートコントラクトとやり取り)する前に、スマートコントラクトの内容を確認できます。 さらに良いことに、契約条件の公の透明性により、誰でも契約条件を精査することができます。 - -## スマートコントラクトのユースケース {#use-cases} - -スマートコントラクトはブロックチェーン上にあるコンピュータプログラムです。 自動的に実行されます。 トランザクションを追跡し、それらの動きを予測し、匿名で使用することもできます。 素晴らしいですよね。 しかし、スマートコントラクトを何に使えるのでしょうか。 スマートコントラクトは、基本的に他のコンピュータプログラムと同じように何でも実行することができます。 - -計算を実行し、通貨を作成し、データを保存し、NFT をミントし、通信を送信し、画像を生成することさえできます。 以下に、よく使われているスマートコントラクトの実例を示します。 - -- [ステーブルコイン](/stablecoins/) -- [唯一無二なデジタルアセットの作成と配布](/nft/) -- [自動で開かれた為替](/get-eth/#dex) -- [分散型ゲーム](/dapps/?category=gaming) -- [自動的に支払いを行う保険契約](https://etherisc.com/) -- [カスタマイズされ、相互運用可能な通貨を作成するための標準](/developers/docs/standards/tokens/) - -## 映像で学びたい人向け {#visual-learner} - -Finematics によるスマートコントラクトの説明: - - - -## 参考文献 {#further-reading} - -- [スマートコントラクトが世界をどのように変えるか](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [スマートコントラクト: 弁護士を不要にするブロックチェーンテクノロジー](https://blockgeeks.com/guides/smart-contracts/) -- [デベロッパー向けスマートコントラクト](/developers/docs/smart-contracts/) -- [スマートコントラクトの作成方法を学ぶ](/developers/learning-tools/) -- [イーサリアムをマスター - スマートコントラクトとは](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/src/content/translations/ja/social-networks/index.md b/src/content/translations/ja/social-networks/index.md deleted file mode 100644 index 95a20b618cf..00000000000 --- a/src/content/translations/ja/social-networks/index.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: 分散型ソーシャルネットワーク -description: イーサリアム上の分散型ソーシャルネットワークの概要 -lang: ja -template: use-cases -emoji: ":mega:" -sidebarDepth: 2 -image: ../../../../assets/ethereum-learn.png -summaryPoint1: ソーシャル・インタラクションとコンテンツの作成と配信のためのブロックチェーンベースのプラットフォーム -summaryPoint2: 分散型ソーシャル・メディア・ネットワークは、ユーザーのプライバシーを保護し、データセキュリティを強化 -summaryPoint3: トークンと非代替性トークン(NFT)により、コンテンツを収益化する新しい方法の創出 ---- - -ソーシャルネットワークは、私たちの日常的なコミュニケーションにおいて大きな役割を果たしています。 ただし、これらのプラットフォームが集中管理されると、多くの問題が発生します。データ侵害、サーバの停止、 プラットフォーム解除、検閲、プライバシー侵害は、ソーシャルメディアが度々行うことがあり、トレードオフの一部となります。 これらの問題に対抗するため、デベロッパー達は現在イーサリアム上でソーシャルネットワークを構築しています。 分散型ソーシャルネットワークは、従来のソーシャルネットワーキングのプラットフォームが持つ多くの問題を解決し、ユーザーの全般的なエクスペリエンスの向上につながります。 - -## 分散型ソーシャルネットワークとは {#what-are-decentralized-social-networks} - -分散型ソーシャルネットワークは、ブロックチェーンベースのプラットフォームであり、ユーザーは情報を交換し、またコンテンツを公開および配布することができます。 これらのアプリケーションはブロックチェーン上で実行されるため、分散化され、検閲や不当な制御を防ぐことができます。 - -多くの分散型ソーシャルネットワークは、Facebook、LinkedIn、Twitter、Medium などの確立されたソーシャルメディアサービスの代替として存在しています。 しかし、ブロックチェーンを活用したソーシャルネットワークには、従来のプラットフォームよりも秀でた多くの機能があります。 - -### 分散型ソーシャルネットワークの仕組み {#decentralized-social-networks-overview} - -分散型ソーシャルネットワークは、[分散型アプリケーション(Dapp)](/dapps/)の一種です(分散型アプリケーションとは、ブロックチェーン上にデプロイされた[スマートコントラクト](/developers/docs/smart-contracts/)を活用したアプリケーション)。 コントラクトコードは、これらのアプリのバックエンドとして機能し、ビジネスロジックを定義します。 - -従来のソーシャルメディアのプラットフォームは、データベースに依存して、ユーザー情報やプログラムコードなどのデータを保存しています。 しかし、これは単一障害点となり、大きなリスクをもたらします。 例えば、昨年、Facebook のサーバが[何時間もオフライン](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact)となり、プラットフォームが遮断されたことはよく知られています。 - -分散型ソーシャルネットワークは、世界中の数千のノードからなるピアツーピアのネットワーク上に存在します。 一部のノードに障害が発生しても、ネットワークは途切れずに稼働できるため、障害や停電に強いアプリケーションを実現することができます。 - -[The InterPlanetary File System (IPFS) ](https://ipfs.io/)のような分散型ストレージシステムを使用すれば、イーサリアム上に構築されたソーシャルネットワークは、ユーザー情報を搾取や悪意のある用途から保護することができます。 個人情報が広告主に販売されることはありませんし、ハッカーが個人情報を盗み出すこともできません。 - -多くのブロックチェーンベースのソーシャル・プラットフォームは、広告収入がなくても収益化できるネイティブトークンを持っています。 ユーザーはこのトークンを購入することで、特定の機能を利用したり、アプリ内課金を行ったり、お気に入りのコンテンツクリエイターにチップをあげることができます。 - -## 分散型ソーシャルネットワークの利点 {#benefits} - -1. 分散型ソーシャルネットワークは、誰でも利用することができ、検閲耐性を実現します。 つまり、ユーザーアカウントを恣意的に禁止、またはプラットフォームへのユーザーアクセスの遮断や制限をすることはできません。 - -2. 分散型ソーシャルネットワークは、オープンソースの理想に基づいて構築されており、アプリケーションのソースコードは誰もが検閲できるように公開されています。 従来のソーシャル・メディアによくある不透明なアルゴリズムの実装を排除することで、ブロックチェーンベースのソーシャルネットワークは、ユーザーとプラットフォーム作成者の利害を一致させることができます。 - -3. 分散型ソーシャルネットワークには「仲介者 」が存在しません。 コンテンツ制作者は、コンテンツに対する直接的な所有権を持ち、フォロワー、ファン、購入者、その他の関係者と直接関わることができ、両者間にはスマートコントラクト以外のものは存在しません。 - -4. 分散型ソーシャルネットワークは、グローバルなピアツーピアネットワークであるイーサリアムネットワークで動作する分散型アプリ(Dapp)であるため、サーバのダウンタイムや機能停止の影響を受けにくい利点があります。 - -5. 分散型ソーシャル・プラットフォームでは、コンテンツ制作者は、非代替性トークン(NFT)、アプリ内暗号支払いなどを介した、より良い収益化フレームワークを享受することができます。 - -6. 分散型ソーシャルネットワークは、高度なプライバシーと匿名性を提供します。 例えば、名前や電子メールアドレスなどの個人を特定できる情報(PII)を共有せずに、イーサリアム・ネーム・サービス(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 に永久保存され、Writing NFT と呼ばれる収集可能な[非代替性トークン(NFT)](/nft/)としてミントすることができます。 ライターは完全に無料で Writing NFT を作成でき、非代替性トークン(NFT)の収集はイーサリアム L2 上で行われるため、安価で高速、かつ環境に優しいトランザクションができます。 - -### MINDS(マインズ) {#minds} - -[MINDS](https://www.minds.com/)は、最も利用されている分散型ソーシャルネットワークの一つです。 Facebook のような仕組みで、すでに数百万人のユーザーを獲得しています。 - -このプラットフォームのネイティブ ERC-20 トークンである$MINDを使って、ユーザーはアイテムの支払いができます。 また、ユーザーは、人気のあるコンテンツの公開、エコシステムへの貢献、他の人をこのプラットフォームに紹介することで、$MIND トークンを獲得することができます。 - -## イーサリアム上の Web2 ソーシャルネットワーク {#web2-social-networks-and-ethereum} - -[Web3](/web3/)ネイティブのソーシャルプラットフォームだけが、ブロックチェーン技術をソーシャルメディアに取り入れようとしているわけではありません。 また、多くの中央集権的なプラットフォームが、イーサリアムをプラットフォームのインフラに取り入れることを計画しています。 - -### Reddit(レディット) {#reddit} - -Reddit は、ERC-20 トークンである[コミュニティポイント](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users)を使っており、これはユーザーが良質のコンテンツを投稿し、オンラインコミュニティ(subreddit)に貢献することで獲得できます。 このトークンを使って、[subreddit 内での限定特典や特権](https://www.reddit.com/community-points/)を獲得することができます。 Reddit はイーサリアムのトランザクションをスケールアップする[レイヤー 2](/layer-2/)ロールアップである Arbitrum と連携しています。 - -このプログラムはすでに稼働しており、r/CryptoCurrency subreddit が[「Moons」というバージョンのコミュニティポイント](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki)を稼働しています。 公式の説明では、Moons は「subreddits への貢献に対して、投稿者、コメント投稿者、モデレーターに報酬を与える」というものです。 これらのトークンはブロックチェーン上にあるため(ユーザーはトークンをウォレットで受領)、Reddit から独立しており、奪われることはありません。 - -Rinkeby テストネットでのベータフェーズを終え、Reddit コミュニティポイントは、[サイドチェーン](/developers/docs/scaling/sidechains/)と[オプティミスティック・ロールアップ](/developers/docs/scaling/optimistic-rollups/)の特性を兼ね備えたブロックチェーンの[Arbitrum Nova](https://nova.arbitrum.io/)に移行しています。 コミュニティポイントは、様々な特典のために使用するほかに、取引所でフィアットと交換することも可能です。 また、ユーザーが所有するコミュニティポイントの量によって、コミュニティの意思決定に影響を与えられます。 - -### Twitter(ツイッター) {#twitter} - -2021 年 1 月、 [Twitter Blue は非代替性トークン(NFT)の対応を展開](https://mashable.com/article/twitter-blue-nft-profile-picture)し、ユーザーはウォレットを接続し、プロフィール写真に NFT を設定できるようになりました。 本稿執筆時点では、Twitter Blue は将来的に分散型ソーシャルネットワークを構築する[計画を発表](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web)しています。 - -### Instagram(インスタグラム) {#instagram} - -2022 年 5 月、[Instagram はイーサリアムと Polygon の非代替性トークン(NFT)の対応をすると発表](https://about.instagram.com/blog/announcements/instagram-digital-collectibles)しました。 イーサリアムのウォレットを接続することで、Instagram に直接 NFT を投稿することができます。 - -## 分散型ソーシャルネットワークの利用 {#use-decentralized-social-networks} - -- **[Status.im](https://status.im/)** - _Status は、オープンソースのピアツーピアプロトコルを使用し、エンドツーエンドの暗号化により、サードパーティからのメッセージの検閲を保護する、安全なメッセージングアプリ_ -- **[Mirror.xyz](https://mirror.xyz/)** - _Mirror は、ユーザーがアイデアをクラウドファンディングし、コンテンツを収益化し、価値の高いコミュニティを構築するための、イーサリアム上に構築されたユーザー所有の分散型出版プラットフォーム_ -- **[Lens Protocol](https://lens.xyz/)** - _Lens Protocol は、分散型インターネットのデジタルガーデンにおいて、制作者がどこにいても自分のコンテンツの所有権を持てるように支援する、構成可能で分散型のソーシャルグラフ_ -- **[Farcaster](https://farcaster.xyz/)** - _十分に分散化されたソーシャルネットワークで、 E メールのように、多くのクライアントをサポートできるオープンプロトコル_ - -## 参考文献 {#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} - -- [分散型ソーシャルメディアの説明](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ -- [ソーシャルメディアの分散化を目指す DeSo ブロックチェーン](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ -- [分散型ソーシャルメディアの未来 Balaji Srinivasan、Vitalik Buterin、Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ - -### コミュニティ {#communities} - -- [Status Discord サーバ](https://discord.com/invite/3Exux7Y) -- [Mirror Discord サーバ](https://discord.com/invite/txuCHcE8wV) -- [r/CryptoCurrency subreddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/ja/staking/pools/index.md b/src/content/translations/ja/staking/pools/index.md deleted file mode 100644 index 490556181a4..00000000000 --- a/src/content/translations/ja/staking/pools/index.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: ステーキングプール -description: ETHステーキングプールの始め方の概要 -lang: ja -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-pool.png -alt: プールで泳ぐサイのレスリー -sidebarDepth: 2 -summaryPoints: - - 他者と協力してETHをステーキングし、報酬を獲得 - - 難しいことは抜きにし、バリデータの運用をサードパーティに委任 - - 流動性トークンを自分のウォレットで保有 ---- - -## ステーキングプールとは {#what-are-staking-pools} - -ステーキングプールとは、少量の ETH を持つ人達が協力して、バリデータ鍵セットの有効化に必要な 32 ETH を取得する方法です。 プール機能はプロトコル上、ネイティブでサポートされていないため、別途ソリューションを構築され、需要に対応しています。 - -一部のプールはスマートコントラクトを使用して運営されており、資金をコントラクトに預けると、コントラクトは管理者による承認を必要とせず、トラストレスにステークを管理・追跡し、預け入れ資金を表すトークンを発行します。 その他のプールは、スマートコントラクトを使用せず、オフチェーンで仲介されます。 - -## ステーキングプールの利点 {#why-stake-with-a-pool} - -[ステーキング入門](/staking/)で概説したメリットに加えて、 プールへのステーキングには数多くの注目すべき利点があります。 - - - - 少額の持ち合わせしかなくても、 問題ありません。 32 ETHを必要とする単独でもステーキングとは異なり、ほとんどのステーキングプールでは他のステーカー達と協力できるので、実質的にどの額からでもステークすることができます。 - - - プールへのステーキングはトークンスワップと同じくらい簡単です。 ハードウェアのセットアップやノードのメンテナンスを心配する必要もありません。 プールはETHを預け入れると、ノードオペレータがバリデータを実行します。 そして、ノード運用の手数料を差し引いた報酬がコントリビューターに分配されます。 - - - 多くのステーキングプールは、ステーキングしたETHと報酬に対する権利を表すトークンを配布します。 これにより、分散型金融(DeFi)アプリケーションでの担保など、ステーキングしたETHを活用することができます。 - - - - - -## 考慮すべき事項 {#what-to-consider} - -ステーキングプール、または委任ステーキングは、イーサリアムプロトコルではネイティブでサポートされていませんが、32 ETH 未満のステーキングを行う需要を考慮し、ステーキングプールのソリューションの数が増えてきています。 - -各プールと使われるツールやスマートコントラクトは、異なるチームにより構築されているため、それぞれに異なるリスクと利点があります。 - -各ステーキングプールの顕著な長所や短所を示すため、下記の属性指標が使用されています。 参加するプールを選択する際に、これらの属性をどのように定義するかについての参考資料としてこのセクションをご利用ください。 - - - -## ステーキングプールを探す {#explore-staking-pools} - -セットアップにはさまざまなオプションが用意されています。 上記の指標を参考に、下記のツールをご利用ください。 - - -クライアントの多様性に真剣に取り組むサービスを選ぶことが、ネットワークのセキュリティを向上させ、ご自身のリスクを制限する上で、重要であることにご留意ください。 マジョリティを占めるクライアントを制限している証拠があるサービスは、「クライアントの多様性」として表示されます。 - - - - -ここに記載すべきステーキングツールをご存知の場合は [製品掲載ポリシー](/contributing/adding-staking-products/)を確認し、記載すべきかどうかをご確認の上、レビューに提出してください。 - -## よくある質問 {#faq} - - -通常、ステークしたETH額と報酬を表すERC-20の流動性トークンが、ステーカーに対して発行されます。 プールにより、ステーキング報酬の分配方法は多少異なりますが、ここでは共通点について話します。 - - - - -現在、イーサリアムバリデータから資金を引き出すことはできません。このため、現在のところ、流動性トークンを ETH 報酬(コンセンサスレイヤーにロックされている)に、引き換える機能が制限されています。 - -この代替方法として、ERC-20 の流動性トークンを利用するプールを使用すると、オープンマーケットでトークンを取引でき、ステーキングポジションを売却することができます。実際にステーキングコントラクトから ETH を取り除くことなく、効果的に「引き出す」ことができます。 - - - -これらのステーキングプールと、中央集権型取引所の間には多くの類似点があります。 例えば、複数の少額のステーキングをまとめて、バリデータを有効にすることなどです。 - -中央集権型取引所とは異なり、多くのステーキングプールでは、スマートコントラクトおよび/または流動性トークンを利用します。この流動性トークンは、通常は ERC-20 トークンで、他のトークンと同様に、購入・販売できます。 このトークンは自分自身で制御でき、主権とセキュリティを提供しますが、バックグラウンドで動作するバリデータクライアントを直接制御することはできません。 - -これをサポートするノードに関しては、他のものよりも分散化が進んでいるステーキングプールもあります。 ネットワークの健全化と分散化を促進するため、常にパーミッションレスかつ分散化されたノードオペレータを利用するプールサービスを選ぶことが推奨されています。 - - -## 参考文献 {#further-reading} - -- [Rocket Pool でステーキング - ステーキングの概要](https://docs.rocketpool.net/guides/staking/overview.html) - _RocketPool ドキュメント_ -- [Lido でイーサリアムをステーキング](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Lido ヘルプドキュメント_ diff --git a/src/content/translations/ja/staking/saas/index.md b/src/content/translations/ja/staking/saas/index.md deleted file mode 100644 index abef59a7799..00000000000 --- a/src/content/translations/ja/staking/saas/index.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: ステーキングサービス -description: ETHステーキングプールの始め方の概要 -lang: ja -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-saas.png -alt: 雲に浮かぶサイのレスリー -sidebarDepth: 2 -summaryPoints: - - サードパーティーのノードオペレータが、バリデータクライアントの運用を実施 - - 32 ETHを保有し、ノードを実行することの技術的な複雑さを回避したい方向けの選択肢 - - 信頼せず、必ず引き出し鍵を必ず保持すること ---- - -## ステーキングサービスとは {#what-is-staking-as-a-service} - -ステーキング・アズ・ア・サービス(SaaS)は、バリデータになるための 32 ETH を預け入れ、ノードの運用については、サードパーティに委任できるステーキングサービスのことです。 このプロセスでは通常、鍵の生成と預け入れを伴う初期セットアップを案内され、署名鍵をオペレータにアップロードします。 これは、通常は月額手数料で、バリデータの運用を代行するサービスです。 - -## サービスを使ってステークする利点 {#why-stake-with-a-service} - -イーサリアムのプロトコルは、ステーキングの委任をネイティブにはサポートしないため、これらのサービスは需要を満たすために作られたものです。 ステーキングする 32 ETH はあるものの、ハードウェアを扱うのが苦手な場合、ステーキング・アズ・ア・サービス(SaaS)を利用すると、難しい部分を委任しながらネイティブブロックの報酬を得ることができます。 - - - - イーサリアムコンセンサスに参加する自身の署名鍵セットを有効化するためのに、32 ETHを預け入れます。 ダッシュボードで進捗状況を監視し、ETH報酬が貯まっていくのを見ます。 - - - ハードウェア仕様、セットアップ、ノードメンテナンス、アップグレードに煩わされる必要はありません。 - 自身の署名情報をアップロードすることで、SaaSプロバイダーに難しい部分をアウトソースすることができ、わずかな手数料でバリデータを代行してもらうことができます。 - - - 多くの場合、ステークした資金の引き出しや送金を可能にする鍵へのアクセス権を手放す必要はありません。 これらは署名鍵とは異なり、別々に保管することで、ステーカーのリスクを制限することができます(ただし、完全に排除することはできません)。 - - - - - -## 考慮すべき事項 {#what-to-consider} - -ETH のステーキングを支援するステーキング・アズ・ア・サービス(SaaS)プロバイダーは増えていますが、それぞれ異なるリスクと利点があります。 - -各 SaaS プロバイダーの顕著な長所や短所を示すため、下記の属性指標が使用されています。 ステーキングに役立つサービスを選ぶ際に、これらの属性をどのように定義しているかの参考として、このセクションをご利用ください。 - - - -## ステーキングサービスプロバイダーを探す {#saas-providers} - -下記は、利用可能なステーキング・アズ・ア・サービス(SaaS)プロバイダーです。 上記の指標を参考に、これらのサービスをご利用ください。 - - -クライアントの多様性をサポートすることが、ネットワークのセキュリティを向上させ、ご自身のリスクを制限する上で、重要であることにご留意ください。 マジョリティを占めるクライアントを制限している証拠があるサービスは、「クライアントの多様性」として表示されます。 - - -#### ステーキングサービスプロバイダー - - - -#### キージェネレーター - - - -ここに記載すべきステーキング・アズ・ア・サービス(SaaS)プロバイダーをご存知の場合は [製品掲載ポリシー](/contributing/adding-staking-products/)を確認し、記載すべきかどうかをご確認の上、レビューに提出してください。 - -## よくある質問 {#faq} - - - 流れはプロバイダーによって異なりますが、一般的には、必要な署名鍵(32 ETHにつき1つの鍵)を設定し、プロバイダーにアップロードし、プロバイダーが代理で検証を行います。 署名鍵だけでは、あなたの資金を引き出したり、送金したり、使用することはできません。 ただし、コンセンサスのための投票はできるため、適切に行われない場合はオフラインでのペナルティやスラッシングにつながる可能性があります。 - - - - すべてのアカウントは、署名鍵引き出し鍵の両方で構成されています。 バリデータがチェーンの状態を証明し、同期し、ブロックを提案するには、バリデータクライアントが署名鍵に容易にアクセスできる必要があります。 これらは何らかの形でインターネットに接続されていなければならないため、本質的に「ホットキー」とみなされます。 署名鍵は、バリデータが証明できるようにするための必須の鍵であり、送金や引き出しに使用する鍵とは、セキュリティ上の理由から別のものになっています。 - -これらの鍵はすべて、24 語のニーモニックシードフレーズを使って、いつでも再現可能です。 必ずこのシードフレーズを安全にバックアップしておいてください。忘れてしまうと、引き出せる時が来たときに、引き出し鍵を生成することができません。 - - - - SaaSプロバイダーで32 ETHをステークした場合も、そのETHは正式なステーキングデポジットコントラクトに預け入れられます。 そのため、SaaSステーカーもソロスステーカーと同じく、現在のところ資金を引き出すことはできません。 つまり、ETHのステーキングは、現状では、一方通行の入金だけとなります。 ただし、これは上海アップグレードが行われるまでです。 - - - -SaaSプロバイダーを利用することは、ノードの運用を誰かに委ねるということです。 このため、ノードのパフォーマンスが低下するリスクが伴い、このリスクはご自身で制御することはできません。 バリデータがスラッシングされた場合は、自分のバリデータ残高にペナルティが課せられ、バリデータプールから強制的に取り上げられます。 また、これらの資金は、プロトコルレベルで引き出しが可能になるまでロックされます。 - -保証や保険のオプションの詳細については、各 SaaS プロバイダーにお問い合わせください。 バリデータのセットアップをご自身で完全に制御したい場合は、ETH のソロステークの方法についてさらに学びましょう。 - - -## 参考文献 {#further-reading} - -- [ステーキングサービスの評価](https://www.attestant.io/posts/evaluating-staking-services/) - _Jim McDonald 2020_ diff --git a/src/content/translations/ja/staking/solo/index.md b/src/content/translations/ja/staking/solo/index.md deleted file mode 100644 index 5c51fceac5f..00000000000 --- a/src/content/translations/ja/staking/solo/index.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: ETHのソロステーキング -description: ETHのソロステーキングする方法の概要 -lang: ja -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-solo.png -alt: コンピュータチップ上にサイのレスリー -sidebarDepth: 2 -summaryPoints: - - バリデータをオンラインで適切に稼働させ続けることで、プロトコルから直接最大限の報酬を獲得 - - 家庭用ハードウェアを稼働させ、イーサリアムネットワークのセキュリティと分散化に個人で貢献 - - 信頼せず、必ず自分の資金の鍵を自己管理すること ---- - -## ソロステーキングとは {#what-is-solo-staking} - -ソロステーキングとは、インターネットに接続された[イーサリアムノードを稼働](/run-a-node/)させ、32 ETH を預け入れ、[バリデータ](#faq)を起動し、ネットワークのコンセンサスに直接参加できるようになることです。 - -イーサリアムのノードは、実行レイヤー(EL)クライアントとコンセンサスレイヤー(CL) クライアントの両方で構成されています。 これらの 2 つのクライアントは、有効な署名鍵とともに、トランザクションとブロックの検証、正しい先頭チェーンの証明、アテステーションの集約、ブロックの提案などを行うソフトウェアです。 - -これらのクライアントを動かすために必要なハードウェアの運用は、ソロステーカーが責任をもって行います。 自宅で専用のマシンを使用することを強くお勧めします。これは、ネットワークの健全性にとって非常に有益なことです。 - -ソロステーカーは、オンラインでバリデータを適切に稼働させ続けることで、プロトコルから直接報酬を受け取ることができます。 - -## ソロステーキングの利点 {#why-stake-solo} - -ソロステーキングはより多くの責任を伴いますが、資金とステーキングのセットアップをご自身で最大限に制御することができます。 - - - - バリデータがオンラインの際は、ETH建ての報酬が中間マージンを取られずにプロトコルから直接獲得できます。 - - - 必ず、鍵は自分で管理してください。 リスクを最小限に抑え、ネットワークの健全性とセキュリティに最も貢献できるクライアントとハードウェアの組み合わせを選択してください。 サードパーティのステーキングサービスでは、これらの決定を委任できますが、常にサードパーティが最も安全な選択をするとは限りません。 - - - ソロステーキングは、ステーキング方法の中で、最も影響力があります。 自分自身のハードウェアでバリデータを実行することで、イーサリアムのプロトコルの堅牢性、分散性、安全性を強化することができます。 - - - -## ソロステーキングを行う前に考慮すべきこと {#considerations-before-staking-solo} - -ソロステーキングが誰にでも利用しやすく、リスクが無ければ良いのですが、現実はそうではありません。 ETH のソロステーキングを選択する前に、真剣かつ実践的に考慮すべき点がいくつかあります。 - - - - ノードを運用する際、選択したソフトウェアの使い方を把握するのに時間をかける必要があります。 そのためには、関連するドキュメントを読み、開発チームのコミュニケーションチャネルにも注意を向ける必要があります。 - 実行するソフトウェアやプルーフ・オブ・ステークがどのように機能するかを理解すればするほど、ステイカーのリスクは減り、ノードオペレータとして稼働する上で発生した問題を修正するのも容易になります。 - - - 新しいツールの登場により、徐々に容易にはなってきていますが、ノードのセットアップには、コンピュータの操作にある程度慣れている必要があります。 コマンドラインインターフェイスを理解していると便利ですが、厳密にはもう必要ありません。 - また、ハードウェアの基本的なセットアップと、最低限の推奨スペックをある程度理解する必要があります。 - - - 秘密鍵がイーサリアムアドレスを保護するのと同じように、バリデータ専用の鍵を生成する必要があります。 シードフレーズや秘密鍵を安全に保管する方法を理解する必要があります。 -

イーサリアムのセキュリティと詐欺対策

-
- - 現在のところ、ステークしたETHやバリデータ残高から、まだ報酬を引き出すことはできません。 引き出しは、次の上海アップグレードで計画されています。 ETHは少なくとも1~2年間はロックされることを想定しておく必要があります。 上海のアップグレード後は、ご希望に応じて、ステーキングの一部または全部を自由に引き出すことができます。 - - - ハードウェアが故障したり、ネットワーク接続に失敗したり、クライアントソフトウェアのアップグレードが必要になったりすることもあります。 ノードのメンテナンスは避けられないものであり、時にはあなたの注意を必要とすることがあります。 ネットワークのアップグレードや、クライアントの重要なアップグレードが予定されている場合は、常に注意しておく必要があります。 - - - 報酬は、バリデータがオンラインで適切に認証している時間に比例して支払われます。 ダウンタイムにより、同時にオフラインになった他のバリデータの数に比例したペナルティを負いますが、スラッシングは発生しません。 また、アテステーションが間に合わないと報酬が減少するため、帯域幅も重要です。 要件は様々ですが、最低でも上下10 Mb/sを推奨します。 - - - オフラインであることによる非稼働のペナルティとは異なり、スラッシングは悪質な不正にのみ適用される、より深刻なペナルティです。 鍵が読み込まれたマイノリティのクライアントを1台のマシンだけで運用する場合、スラッシングのリスクを最小限に抑えることができます。 とはいえ、すべてのステイカーはスラッシングのリスクを認識しておいてください。 - -

スラッシングとバリデータのライフサイクルの詳細

-
-
- - - -## 仕組み {#how-it-works} - - - -望まれるのであれば、バリデータを辞めると、オンラインである必要がなくなり、それ以降の報酬も停止します。 ただし、上海アップグレードまでは、資金の*引き出し*ができませんので、ご注意ください。 - -上海アップグレード後は、ご希望であれば、報酬だけでなく、ステーキングも引き出すことができるようになります。 - -## ステーキングランチパッドを開始する {#get-started-on-the-staking-launchpad} - -ステーキングランチパッドは、ステーキングを始めるのに便利なオープンソースアプリケーションです。 クライアントの選択、鍵の生成、ステーキングデポジットのコントラクトへの ETH の預け入れを案内してくれるアプリケーションです。 バリデータを安全にセットアップするためのチェックリストが提供されています。 - - - -## ノードとクライアントのセットアップツールで考慮すべきこと {#node-tool-considerations} - -ETH のソロステーキングを支援するツールやサービスは増えていますが、それぞれに異なるリスクと利点があります。 - -各ステーキングツールの顕著な長所や短所を示すため、下記の属性指標が使用されています。 ステーキングに役立つサービスを選ぶ際に、これらの属性をどのように定義しているかの参考として、このセクションをご利用ください。 - - - -## ノードとクライアントのセットアップツールの検討 {#node-and-client-tools} - -セットアップに役立つ様々なオプションが用意されています。 上記の指標を参考に、ツールを選択してください。 - - -マイノリティのクライアントを選択することが、ネットワークのセキュリティを向上させ、ご自身のリスクを制限する上で、重要であることにご留意ください。 少数派のクライアントを設定できるツールは、「マルチクライアント」 と表記されています。 - - -#### ノードツール - - - -#### キージェネレーター - -これらのツールは、[ステーキングデポジット CLI](https://github.com/ethereum/staking-deposit-cli/) の代替として、鍵の生成に使用できます。 - - - -ここに記載すべきステーキングツールをご存知の場合は [製品掲載ポリシー](/contributing/adding-staking-products/)を確認し、記載すべきかどうかをご確認の上、レビューに提出してください。 - -## ソロステーキングガイドを探索 {#staking-guides} - - - -## よくある質問 {#faq} - -これらは、ステーキングについての最も一般的な質問のいくつかで、知っておく価値があるものです。 - - - -バリデータとは、イーサリアム上で稼働し、イーサリアムプロトコルのコンセンサスに参加する仮想エンティティです。 バリデータは、残高、公開鍵、およびその他のプロパティで表されます。 バリデータクライアントは、バリデータに代わって機能するソフトウェアで、バリデータの秘密鍵を保持し使用します。 1 つのバリデータクライアントが複数の鍵ペアを保持し、複数のバリデータを制御することができます。 - - - - -バリデータに関連付けられたそれぞれの鍵ペアを、バリデータとして有効化するには、ちょうど32 ETHを必要とします。 バリデータにつき、有効残高が32 ETHに制限されているため、1つの鍵セットに対して、32 ETH超の預け入れがあった場合でも、報酬が高くなることはありません。 つまり、ステーキングは32 ETH単位で行われ、それぞれに鍵と残高が設定されています。 - -1 つのバリデータに、32 ETH を超える ETH を預け入れないでください。 報酬が増えることはなく、予定されている上海アップデートまで資金がロックされてしまいます。 - -ソロステーキングが難しい場合は、ステーキング・アズ・ア・サービス(SaaS)プロバイダーの利用をご検討ください。また、32 ETH 未満でステーキングを行う場合は、ステーキングプールをチェックしてみてください。 - - - -ネットワークが正しくファイナライズされているときにオフラインになっても、スラッシングは起こりません。 あるエポック(各6.4分間)の間、バリデータがオフラインで証明できない場合、わずかな非稼働によるペナルティが発生しますが、これはスラッシングとは異なるものです。 このペナルティは、バリデータがオンラインで証明できた場合に得られる報酬よりも若干少ない額になっており、ペナルティによる損失は再びオンラインに戻ると、ほぼ同等の時間をかけて取り戻すことができます。 - -注:非稼働によるペナルティは、同時にオフラインになったバリデータの数に比例します。 ネットワークの大部分が一度にすべてオフラインになった場合、各バリデータのペナルティは、単一のバリデータがオフラインになった場合よりも高額になります。 - -極端な場合、3 分の 1 超のバリデータがオフラインになり、ネットワークのファイナライズが停止してしまうと、クアドラティック非稼働消失(quadratic inactivity leak)と呼ばれる、オフラインのバリデータアカウントから ETH が指数関数的に消失する結果に見舞われることになります。 これにより、非稼働状態にあるバリデータの ETH 残高が 16 ETH に達するまで燃焼した時、バリデータのプールから自動的に排出され、最終的にネットワークを自己回復させることができます。 残りのオンライン状態のバリデータは、最終的にネットワークの 3 分の 2 以上を構成し、再びチェーンをファイナライズするために必要なスーパーマジョリティを満たすことになります。 - - - -要するに、完全には保証することはできませんが、誠実に振る舞い、少数派のクライアントを実行し、署名鍵を一度に1台のマシンにしか格納しないようにすれば、スラッシングされるリスクはほぼゼロになります。 - -バリデータがスラッシングされ、ネットワークから追放されるような具体的な原因は、ほんの数種類しかありません。 本稿執筆時点では、2 台のマシンに署名鍵が格納され、冗長化されたハードウェアでセットアップされた場合にのみ、スラッシングが発生しています。 この場合、誤って自分の鍵から二重投票してしまうことがあり、これはスラッシングの対象となります。 - -スーパーマジョリティのクライアント(ネットワークの 3 分の 2 以上で使用されているクライアント)を実行すると、このクライアントにチェーンフォークを引き起こすバグがあった場合、スラッシングの可能性があるというリスクも伴います。 その結果、誤ったフォークがファイナライズされてしまうことがあります。 意図したチェーンへと修正するには、サラウンド投票 (surround vote)を提出し、ファイナライズさえたブロックを元に戻す必要があります。 また、これはスラッシングの対象となる違反で、マイノリティのクライアントを実行するだけでこのリスクを回避することができます。 - -マイノリティのクライアントにおける同じようなバグでは、決してファイナライズされません。そのため、サラウンド投票(surrond vote)に至ることはなく、非稼働のペナルティは課されますが、スラッシングされることはありません。 - -

マイノリティのクライアントを実行する重要性についてもっと詳しく

-

スラッシング防止についてもっと知る

-
- - -各クライアントは、様々なプログラミング言語を用いて異なるチームにより開発されているため、パフォーマンスやユーザーインターフェースの観点で多少異なる場合があります。 とはいえ、どのクライアントが「ベスト」とは言い切れません。 リリースされているクライアントは、すべてブロックチェーンと同期し、相互作用するという同じコア機能を実行します。 - -すべてのリリースされているクライアントは同じ基本機能を提供するので、マイノリティのクライアント、つまりネットワーク上の大多数のバリデータで現在使用されていないクライアントを選ぶことが、実際のところ非常に重要です。 これは直感に反するように聞こえるかもしれませんが、マジョリティまたはスーパーマジョリティのクライアントを実行すると、そのクライアントにバグが発生した場合にスラッシングの危険性が高まります。 マイノリティのクライアントを稼働することで、こうしたリスクを大幅に軽減することができます。 - -クライアントの多様性が重要な理由についてもっと知る - - - -仮想プライベートサーバー (VPS)は自宅のハードウェアの代わりとして使用できますが、バリデータクライアントの物理的なアクセスや場所は重要です。 アマゾンウェブサービスやデジタルオーシャンなどの中央集権型のクラウドソリューションでは、ネットワークの中央集権化という犠牲のもとで、ハードウェアの入手や運用が不要となり、利便性を提供しています。 - -単一の中央集権型クラウドストレージソリューション上で動作するバリデータクライアントが多ければ多いほど、これらを使用しているユーザーにとって危険になります。 攻撃、規制要求、あるいは単なる停電/インターネットの停止にかかわらず、これらのプロバイダーがオフラインになるような障害があれば、このサーバに依存しているすべてのバリデータクライアントが同時にオフラインになることになるためです。 - -オフラインのペナルティは、同時にオフラインになった他のバリデータクライアントの数に比例します。 VPS を使用すると、オフラインのペナルティがより厳しくなり、停止が大規模になった場合にクアドラティックリークやスラッシングのリスクが大幅に高まります。 ご自身のリスク、およびネットワークへのリスクを最小限に抑えるため、ご自身でハードウェアを入手し、運用されることを強くお勧めします。 - - -## 参考文献 {#further-reading} - -- [イーサリアムのクライアント多様性問題](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ -- [クライアントの多様性の支援](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ -- [イーサリアムのコンセンサスレイヤーにおけるクライアントの多様性](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ -- [イーサリアムバリデータ用のハードウェアの購入方法](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ -- [イーサリアム 2.0 テストネットに参加するステップ・バイ・ステップ手順](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _Butta_ -- [Eth2 スラッシング防止のためのヒント](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raul Jordan 2020_ diff --git a/src/content/translations/km/nft/index.md b/src/content/translations/km/nft/index.md deleted file mode 100644 index b21a6b6c338..00000000000 --- a/src/content/translations/km/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: ថូខិនដែលមិនអាចផ្លាស់ប្តូរបាន (NFTs) -description: ទិដ្ឋភាពទូទៅនៃ NFTs នៅលើ Ethereum -lang: km -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: និមិត្តសញ្ញា Eth ត្រូវបានបង្ហាញតាមរយៈ hologram ។ -summaryPoint1: មធ្យោបាយដើម្បីតំណាងឱ្យអ្វីដែលប្លែកខុសគេជាទ្រព្យសកម្មដែលមានមូលដ្ឋានលើ Ethereum -summaryPoint2: NFTs នឹងផ្តល់អំណាចកាន់តែច្រើនដល់អ្នកបង្កើតមាតិកាជាងពេលមុនៗ -summaryPoint3: ដំណើរការដោយកិច្ចសន្យាឆ្លាតវៃនៅលើប្លុកឆេន Ethereum ---- - -## What are NFTs? {#what-are-nfts} - -NFT គឺជាថូខិនដែលមានលក្ខណៈខុសគ្នារៀងៗខ្លួន។ NFT នីមួយៗមានលក្ខណៈខុសៗគ្នា (មិនអាចផ្លាស់ប្តូរបាន) អាចថាកម្រក៏បាន។ វាខុសពីថូខិនដូចជា ERC-20s ដែលរាល់ថូខិននៅក្នុងសំណុំ មានលក្ខណៈសម្បត្តិដូចគ្នាបេះបិទ ('អាចផ្លាស់ប្តូរបាន')។ អ្នក​មិនដែល​ខ្វល់​ថា​លុយ​ដុល្លារមួយណា​ដែល​​នៅ​ក្នុង​កាបូប​របស់​អ្នក​ទេ ព្រោះ​វា​មានលក្ខណៈដូចគ្នា​ និង​តម្លៃ​ដូចគ្នា។ ផ្ទុយទៅវិញ អ្នក*ខ្វល់ខ្វាយ* អំពី NFT មួយណាដែលជារបស់អ្នក ពីព្រោះពួកវាទាំងអស់មានលក្ខណៈខុសៗគ្នាដែលអាចបែងចែកពីគ្នាបាន (មិនអាចផ្លាស់ប្តូរគ្នាបាន)។ - -ភាពប្លែកពីគេនៃ NFT នីមួយៗអនុញ្ញាតឱ្យមានការធ្វើថូខិនសម្រាប់របស់មួយចំនួន ដូចជាស្នាដៃសិល្បៈ វត្ថុប្រមូល ឬសូម្បីតែអចលនទ្រព្យ ដែល NFT តែមួយគត់ដែលតំណាងឱ្យវត្ថុនោះក្នុងពិភពពិត ឬឌីជីថល។ ភាពជាម្ចាស់នៃទ្រព្យសកម្មត្រូវបានធានាដោយប្លុកឆេន Ethereum - គ្មាននរណាម្នាក់អាចកែប្រែកំណត់ត្រានៃភាពជាម្ចាស់ ឬចម្លង NFT ថ្មីមួយទៀតបានទេ។ - - - -## អ៊ីនធឺណិតនៃទ្រព្យសកម្ម {#internet-of-assets} - -NFT និង Ethereum ដោះស្រាយបញ្ហាមួយចំនួនដែលមាននៅលើអ៊ីនធឺណិតសព្វថ្ងៃនេះ។ នៅពេលដែលអ្វីៗបំលែងទៅជាឌីជីថលកាន់តែច្រើន វាមានតម្រូវការក្នុងការចម្លងលក្ខណៈនៃវត្ថុនៅពិភពខាងក្រៅ ដូចជាភាពកម្រ ភាពប្លែក និងភស្តុតាងនៃភាពជាម្ចាស់។ តាមរបៀបដែលមិនគ្រប់គ្រងដោយស្ថាប័នកណ្តាលណាមួយ។ ជាឧទាហរណ៍ ជាមួយនឹង NFT អ្នកអាចក្លាយជាម្ចាស់តន្ត្រីចំរៀង mp3 មួយបទ ដែលមិនសម្រាប់តែកម្មវិធីតន្ត្រីរបស់ក្រុមហ៊ុនណាមួយទេ ឬក៏អ្នកអាចក្លាយជាម្ចាស់គណនីប្រព័ន្ធផ្សព្វផ្សាយសង្គមមួយ ដែលអ្នកអាចលក់ ឬប្តូរជាមួយអ្នកផ្សេងទៀតបាន ហើយអ្នកផ្តល់វេទិកានោះមិនអាចយកពីអ្នកតាមអំពើចិត្តបានទេ ។ - -នេះជារបៀបដែលអ៊ិនធឺណិតនៃ NFT ដំណើរការ បើប្រៀបធៀបទៅនឹងអ៊ីនធឺណិតដែលយើងប្រើសព្វថ្ងៃនេះ... - -### ការប្រៀបធៀប {#nft-comparison} - -| អ៊ីនធឺណិត NFT | អ៊ីនធឺណិតសព្វថ្ងៃ | -| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| អ្នកមានទ្រព្យសម្បត្តិរបស់អ្នក! មានតែអ្នកទេដែលអាចលក់ ឬប្តូរវាបាន។ | អ្នកជួលទ្រព្យសម្បត្តិពីស្ថាប័នមួយចំនួន។ | -| NFTs មានលក្ខណៈឌីជីថលដែលមានតែមួយគត់ ហើយគ្មាន NFTs ពីរដែលដូចគ្នានោះទេ។ | ជារឿយៗ យើងមិនអាចបែងចែកថា មួយណាជាច្បាប់ដើម មួយណាជាច្បាប់ចម្លងបានទេ។ | -| ភាពជាម្ចាស់នៃ NFT ត្រូវបានរក្សាទុកនៅលើប្លុកឆេន ដែលគ្រប់គ្នាអាចផ្ទៀងផ្ទាត់បាន។ | កំណត់ត្រាភាពជាម្ចាស់នៃវត្ថុឌីជីថលត្រូវបានរក្សាទុកនៅលើម៉ាស៊ីនមេដែលគ្រប់គ្រងដោយស្ថាប័ន – អ្នកត្រូវស្នើពួកគេដើម្បីបានវា។ | -| NFT គឺជាកិច្ចសន្យាឆ្លាតវៃនៅលើ Ethereum។ មានន័យថាពួកវាអាចប្រើជាមួយកិច្ចសន្យាឆ្លាតវៃ និងកម្មវិធីផ្សេងទៀតនៅលើ Ethereum បានយ៉ាងងាយស្រួល! | ជាធម្មតា ក្រុមហ៊ុនដែលមានវត្ថុឌីជីថលទាំងអស់នោះត្រូវការហេដ្ឋារចនាសម្ព័ន្ធ "សួនមានជញ្ជាំង" ផ្ទាល់ខ្លួនរបស់ពួកគេ។ | -| អ្នកបង្កើតមាតិកា អាចលក់ការងាររបស់ពួកគេនៅគ្រប់ទីកន្លែង និងអាចចូលទៅកាន់ទីផ្សារសកលបាន។ | អ្នកបង្កើតមាតិកាពឹងផ្អែកលើហេដ្ឋារចនាសម្ព័ន្ធ និងការចែកចាយនៃវេទិកាដែលពួកគេប្រើប្រាស់។ ទាំងនេះច្រើនតែស្ថិតនៅក្រោមលក្ខខណ្ឌនៃការប្រើប្រាស់ និងការរឹតបន្តឹងភូមិសាស្ត្រ។ | -| អ្នកបង្កើត NFT អាចរក្សាកម្មសិទ្ធិលើការងាររបស់ពួកគេ និងថ្លៃអាជ្ញាបណ្ណដោយផ្ទាល់ទៅក្នុងកិច្ចសន្យាឆ្លាតវៃ NFT នោះ។ | វេទិកាដូចជាសេវាកម្មចាក់តន្ត្រី ទទួលបានប្រាក់ចំណេញពីការលក់មួយភាគធំ។ | - -## តើ NFTs ដំណើរការយ៉ាងដូចម្តេច? {#how-nfts-work} - -ដូចថូខិនផ្សេងទៀតដែលបង្កើតនៅលើ Ethereum ដែរ NFT ត្រូវបានបង្កើតដោយកិច្ចសន្យាឆ្លាតវៃ។ កិច្ចសន្យាឆ្លាតវៃអនុលោមតាមស្តង់ដារ NFT ណាមួយក្នុងចំណោមស្តង់ដារជាច្រើន (ជាទូទៅ ERC-721 ឬ ERC-1155) ដែលកំណត់ថាកិច្ចសន្យានោះមានមុខងារអ្វីខ្លះ។ កិច្ចសន្យាអាចបង្កើត NFT ('mint') ហើយប្រគល់វាទៅម្ចាស់ណាម្នាក់។ ភាពជាម្ចាស់ត្រូវបានកំណត់នៅក្នុងកិច្ចសន្យានោះ ដោយភ្ជាប់ NFT នោះទៅកាន់អាសយដ្ឋានណាមួយ។ NFT មានលេខសម្គាល់ និងទិន្នន័យមេតាដែលភ្ជាប់ជាមួយវា ដែលធ្វើឱ្យវាមានលក្ខណៈខុសពី NFT ដទៃទៀត។ - -នៅពេលដែលមាននរណាម្នាក់បង្កើត (mints) NFT តាមពិតទៅ ពួកគេគ្រាន់តែដំណើរការមុខងារនៅក្នុងកិច្ចសន្យាឆ្លាតវៃដែលភ្ជាប់ NFT មួយនោះទៅកាន់អាសយដ្ឋានរបស់ពួកគេ។ ព័ត៌មាននេះត្រូវបានរក្សាទុកនៅក្នុងកន្លែងផ្ទុករបស់កិច្ចសន្យាឆ្លាតវៃដែលជាផ្នែកមួយនៃប្លុកឆេន ។ អ្នកបង្កើតអាចសរសេរតក្កវិជ្ជាបន្ថែមទៀតទៅក្នុងកិច្ចសន្យានោះ ឧទាហរណ៍កំណត់ចំនួនផ្គត់ផ្គង់សរុប ឬកំណត់ថ្លៃអាជ្ញាបណ្ណដែលត្រូវបង់ទៅអ្នកបង្កើតរាល់ពេលដែលថូខិនត្រូវបានផ្ទេរ។ - -## តើ NFTs ប្រើសម្រាប់អ្វី? {#nft-use-cases} - -NFT ត្រូវបានប្រើក្នុងករណីជាច្រើន រួមមាន៖ - -- បង្ហាញថាអ្នកបានចូលរួមក្នុងព្រឹត្តិការណ៍មួយ -- បញ្ជាក់ថាអ្នកបានបញ្ចប់វគ្គសិក្សា -- របស់របរប្រើប្រាស់នៅក្នុងហ្គេម -- ស្នាដៃសិល្បៈឌីជីថល -- ការធ្វើថូខិនតំណាងទ្រព្យសម្បត្តិពិភពពិត -- បញ្ជាក់អត្តសញ្ញាណអនឡាញរបស់អ្នក -- ចូលប្រើប្រាស់ទៅកាន់មាតិកា -- សំបុត្រ -- ឈ្មោះដូមែនអ៊ីនធឺណិតវិមជ្ឈការ -- ទ្រព្យបញ្ចាំនៅក្នុង DeFi - -ប្រហែល អ្នកគឺជាសិល្បករដែលចង់ចែករំលែកការងាររបស់អ្នកដោយប្រើ NFT ដោយមិនបាត់បង់ការគ្រប់គ្រង និងលះបង់ប្រាក់ចំណេញរបស់អ្នកទៅកាន់អន្តរការី។ អ្នកអាចបង្កើតកិច្ចសន្យាថ្មី និងបញ្ជាក់ពីចំនួន NFT លក្ខណៈសម្បត្តិរបស់ពួកវា និងតំណភ្ជាប់ទៅកាន់ការងារសិល្បៈជាមួយចំនួន។ ក្នុងនាមជាសិល្បករ អ្នកអាចរៀបចំកម្មវិធីទៅក្នុងកិច្ចសន្យាឆ្លាតវៃនូវថ្លៃអាជ្ញាបណ្ណដែលអ្នកគួរត្រូវបានបង់ (ឧ. ផ្ទេរ 5% នៃតម្លៃលក់ទៅឱ្យម្ចាស់កិច្ចសន្យារាល់ពេលដែល NFT ត្រូវបានផ្ទេរ)។ អ្នកក៏អាចបញ្ជាក់បានថាអ្នកបានបង្កើត NFT ណាមួយ ដោយសារតែអ្នកជាម្ចាស់កាបូបដែលបានធ្វើកិច្ចសន្យានោះ។ អ្នកទិញអាចបញ្ជាក់បានយ៉ាងងាយស្រួលថាពួកគេជាម្ចាស់ NFT ពិតប្រាកដពីក្នុងបញ្ជី NFT របស់អ្នក ពីព្រោះអាសយដ្ឋានកាបូបរបស់ពួកគេត្រូវបានភ្ជាប់ជាមួយថូខិននៅក្នុងកិច្ចសន្យាឆ្លាតវៃរបស់អ្នក។ ពួកគេអាចប្រើវានៅក្នុងប្រព័ន្ធអេកូរបស់ Ethereum ដោយជឿជាក់លើភាពត្រឹមត្រូវរបស់វា។ - -ឬពិចារណាលើសំបុត្រចូលរួមព្រឹត្តិការណ៍កីឡា។ អ្នករៀបចំព្រឹត្តិការណ៍នោះអាចកំណត់ចំនួនសំបុត្រដែលត្រូវលក់ អ្នកបង្កើត NFT អាចសម្រេចថាតើគួរមានសំបុត្រចម្លងប៉ុន្មាន។ ពេលខ្លះ ទាំងអស់នេះគឺជាការចម្លងដូចៗគ្នា ដូចជាសំបុត្រចូលរៀនទូទៅចំនួន 5000 សំបុត្រជាដើម។ ជួនកាលមានមួយចំនួនទៀតត្រូវបានបង្កើតឡើងមានភាពស្រដៀងគ្នាខ្លាំងណាស់ ប៉ុន្តែនីមួយៗមានភាពខុសគ្នាបន្តិចបន្តួច ដូចជាសំបុត្រលេខកៅអី។ អ្នកអាចទិញ និងលក់ពីមួយទៅមួយដោយមិនបង់ប្រាក់ដល់អ្នកចាត់ចែងសំបុត្រ ហើយអ្នកទិញត្រូវបានធានាពីភាពត្រឹមត្រូវនៃសំបុត្រដោយពិនិត្យមើលអាសយដ្ឋានកិច្ចសន្យានោះ។ - -នៅលើ ethereum.org, NFT ត្រូវបានប្រើដើម្បីបង្ហាញថានរណាបានចូលរួមចំណែកក្នុងឃ្លាំង GitHub របស់យើង ឬចូលរួមការជួបជុំ ហើយយើងថែមទាំងមានឈ្មោះដូមែន NFT ផ្ទាល់ខ្លួនរបស់យើងផងដែរ។ ប្រសិនបើអ្នករួមចំណែកដល់គេហទំព័រ ethereum.org អ្នកអាចទាមទារ POAP NFT ។ ការជួបជុំក្នុងសហគមន៍គ្រីបតូមួយចំនួនបានប្រើ POAP ជាសំបុត្រ។ [បន្ថែមទៀតអំពីការរួមចំណែក](/contributing/#poap) - -![ethereum.org POAP](./poap.png) - -គេហទំព័រនេះមានឈ្មោះដូមែនជំនួសដែលដំណើរការដោយ NFT **ethereum.eth** ។ អាសយដ្ឋាន `.org` របស់យើងត្រូវបានគ្រប់គ្រងដោយអ្នកផ្តល់សេវាឈ្មោះដែន (DNS) ចំណែកឯ ethereum`.eth` ត្រូវបានចុះឈ្មោះនៅលើ Ethereum តាមរយៈសេវាឈ្មោះ Ethereum (ENS)។ ហើយវាជាកម្មសិទ្ធិ និងគ្រប់គ្រងដោយពួកយើង។ [សូមពិនិត្យមើលកំណត់ត្រា ENS របស់យើង](https://app.ens.domains/name/ethereum.eth) - -[មើល​បន្ថែមទៀត​អំពី ENS](https://app.ens.domains) - - - -### សុវត្ថិភាព NFT {#nft-security} - -សុវត្ថិភាពរបស់ Ethereum កើតចេញពីភស្តុតាងនៃប្រាក់តម្កល់ (proof-of-stake)។ ប្រព័ន្ធ​នេះ​ត្រូវ​បាន​រចនា​ឡើង​ ដើម្បី​មិនលើកទឹកចិត្ត​ផ្នែក​សេដ្ឋកិច្ចចំពោះសកម្មភាព​បែបព្យាបាទដល់ប្រព័ន្ធ ដោយ​ធ្វើ​ឱ្យ Ethereum អាចការពារពីការរំខានទាំងនោះ។ នេះគឺជាអ្វីដែលធ្វើឱ្យ NFTs អាចធ្វើទៅបាន។ នៅពេលដែលប្លុកដែលផ្ទុកនូវប្រតិបត្តិការ NFT របស់អ្នកត្រូវបានបញ្ចប់សព្ធគ្រប់ អ្នកវាយប្រហារត្រូវចំណាយអស់រាប់លាន ETH ដើម្បីកែប្រែវាបាន។ នរណាម្នាក់ដែលដំណើរការកម្មវិធី Ethereum នឹងអាចរកឃើញការរំខានដោយទុច្ចរិតជាមួយ NFT ភ្លាមៗ ចំណែកឯតួអង្គអាក្រក់នឹងត្រូវទទួលពិន័យផ្នែកសេដ្ឋកិច្ច និងបណ្តេញចេញពីបណ្ដាញ។ - -បញ្ហាសុវត្ថិភាពទាក់ទងនឹង NFTs ច្រើនតែទាក់ទងនឹងការបោកប្រាស់ កំហុសកូដនៃកិច្ចសន្យាឆ្លាតវៃ ឬកំហុសរបស់អ្នកប្រើប្រាស់ (ដូចជាការលាតត្រដាងសោឯកជនដោយអចេតនា) ធ្វើឱ្យការពង្រឹងសុវត្ថិភាពកាបូបឱ្យកាន់តែប្រសើរមានសារៈសំខាន់សម្រាប់ម្ចាស់ NFT ។ - - - បន្ថែមទៀតអំពីសុវត្ថិភាព - - -## ការអានបន្ថែម {#further-reading} - -- [ការណែនាំសម្រាប់អ្នកចាប់ផ្តើមដំបូងចំពោះ NFTs](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie ខែមករា ឆ្នាំ 2020_ -- [កម្មវិធីតាមដាន EtherscanNFT](https://etherscan.io/nft-top-contracts) -- [ស្តង់ដារថូខិន ERC-721](/developers/docs/standards/tokens/erc-721/) -- [ស្តង់ដារថូខិន ERC-1155](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/kn/dao/index.md b/src/content/translations/kn/dao/index.md deleted file mode 100644 index da07c764eec..00000000000 --- a/src/content/translations/kn/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: ಡೀಸೆಂಟ್ರಲೈಜ್ಡ್ ಆಟೊನೊಮಸ್ ಆರ್ಗನೈಸೇಶನ್ಸ್ (DAO ಗಳು) -description: ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ DAO ಗಳ ಅವಲೋಕನ -lang: kn -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: ಪ್ರಸ್ತಾವನೆಯ ಮೇಲೆ DAO ಗಳ ಮತದಾನದ ಪ್ರಾತಿನಿಧ್ಯ. -summaryPoint1: ಕೇಂದ್ರೀಕೃತ ನಾಯಕತ್ವವಿಲ್ಲದ ಸದಸ್ಯ-ಮಾಲೀಕತ್ವದ ಸಮುದಾಯಗಳು. -summaryPoint2: ಇಂಟರ್ನೆಟ್ ಅಪರಿಚಿತರೊಂದಿಗೆ ಸಹಕರಿಸಲು ಸುರಕ್ಷಿತ ಮಾರ್ಗ. -summaryPoint3: ನಿರ್ದಿಷ್ಟ ಕಾರಣಕ್ಕಾಗಿ ಹಣವನ್ನು ಬದ್ಧಗೊಳಿಸಲು ಸುರಕ್ಷಿತ ಸ್ಥಳ. ---- - -## DAO ಗಳು ಎಂದರೇನು? {#what-are-daos} - -ಒಂದು DAO ಒಂದು ಸಮೂಹದ ಮಾಲಿಕರಾದ, ಬ್ಲಾಕ್‌ಚೇನ್-ಆಧಾರಿತ ಸಂಗಡಿಗರ ಸಂಸ್ಥೆ ಸಹಯೋಗಿಸುವ ಹಂಚಿಕೊಳ್ಳುವ ಉದ್ದೇಶಕ್ಕೆ ಕೆಲಸ ನಡೆಸುವುದು. - -ನಿಧಿಗಳು ಅಥವಾ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಪರೋಪಕಾರಿ ನಾಯಕನನ್ನು ನಂಬದೆ ಜಗತ್ತಿನಾದ್ಯಂತ ಸಮಾನ ಮನಸ್ಸಿನ ಜನರೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು DAO ಗಳು ನಮಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಡುತ್ತವೆ. ಹುಚ್ಚಾಟಿಕೆಗೆ ಹಣವನ್ನು ಖರ್ಚು ಮಾಡುವ ಯಾವುದೇ CEO ಅಥವಾ ಪುಸ್ತಕಗಳನ್ನು ಕುಶಲತೆಯಿಂದ ನಿರ್ವಹಿಸುವ CFO ಇಲ್ಲ. ಬದಲಾಗಿ, ಕೋಡ್‌ನಲ್ಲಿ ಇದ್ಧ ಬ್ಲಾಕ್‌ಚೈನ್ ಆಧಾರಿತ ನಿಯಮಗಳು ಸಂಸ್ಥೆಯು ಹಾಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಹಣವನ್ನು ಹಾಗೆ ಖರ್ಚುಮಾಡುತ್ತದೆ ಎಂಬುದನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ. - -ಅವರು ಗುಂಪಿನ ಅನುಮೋದನೆಯಿಲ್ಲದೆ ಯಾರೂ ಪ್ರವೇಶಿಸಲು ಅಧಿಕಾರವಿಲ್ಲದಂತಹ ಅಂತರ್ಗತ ಖಜಾನೆಗಳನ್ನು ಹೊಂದಿದ್ದಾರೆ. ನಿರ್ಧಾರಗಳನ್ನು ಪ್ರಸ್ತಾಪಗಳು ಮತ್ತು ಮತದಾನದ ಮೂಲಕ ನಿಯಂತ್ರಿಸಲಾಗುತ್ತದೆ, ಈ ಸಂಸ್ಥೆಯಲ್ಲಿ ಎಲ್ಲರಿಗೂ ಒಂದು ಧ್ವನಿ ಇದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಮತ್ತು ಎಲ್ಲವೂ ಚೈನ್‌ನಲ್ಲಿ ಪಾರದರ್ಶಕವಾಗಿ ನಡೆಯುತ್ತದೆ. - -## ನಮಗೆ DAO ಗಳು ಏಕೆ ಬೇಕು? {#why-dao} - -ಸಂಸ್ಥೆಯೊಂದನ್ನು ಸ್ಥಾಪಿಸುವುದು ಮತ್ತು ಅದು ಹಣ ಮತ್ತು ಹಣಕಾಸು ಒಳಗೊಂಡಿರುತ್ತದೆ ಎಂದರೆ ನೀವು ಕೆಲಸ ಮಾಡುತ್ತಿರುವ ಜನರಲ್ಲಿ ನಂಬಿಕೆಯನ್ನು ಹೊಂದಿರಬೇಕು. ಆದರೆ ನೀವು ಇಂಟರ್ನೆಟ್‍ನಲ್ಲಿ ಮಾತ್ರ ಸಂವಹನ ನಡೆಸಿದ ವ್ಯಕ್ತಿಯನ್ನು ನಂಬುವುದು ಕಷ್ಟ. DAO ಗಳೊಂದಿಗೆ, ನೀವು ಗುಂಪಿನಲ್ಲಿರುವ ಯಾರನ್ನೂ ನಂಬಬೇಕಾಗಿಲ್ಲ, DAO ನ ಕೋಡ್ ಅನ್ನು ಮಾತ್ರ ನಂಬಬೇಕು, ಅದು 100% ಪಾರದರ್ಶಕವಾಗಿದೆ ಮತ್ತು ಯಾರಾದರೂ ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಖಚಿತಪಡಿಸಬಹುದು. - -ಇದು ವಿಶ್ವಮಟ್ಟದ ಸಹಕಾರ ಮತ್ತು ಸಮನ್ವಯಕ್ಕಾಗಿ ಹೊಸ ಅವಕಾಶಗಳನ್ನು ತೆರೆಯುತ್ತದೆ. - -### ಒಂದು ಹೋಲಿಕೆ {#dao-comparison} - -| DAO | ಒಂದು ಸಾಂಪ್ರದಾಯಿಕ ಸಂಸ್ಥೆ | -| ----------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | -| ಸಾಮಾನ್ಯವಾಗಿ ಸಮತಟ್ಟಾದ, ಮತ್ತು ಸಂಪೂರ್ಣವಾಗಿ ಜನಪ್ರಭುತ್ವಗೊಳಿಸಲ್ಪಟ್ಟಿದೆ. | ಸಾಮಾನ್ಯವಾಗಿ ಕ್ರಮಾನುಗತ. | -| ಯಾವುದೇ ಬದಲಾವಣೆಗಳನ್ನು ಜಾರಿಗೆ ತರಲು ಸದಸ್ಯರಿಂದ ಮತದಾನದ ಅಗತ್ಯವಿದೆ. | ರಚನೆಗೆ ಅನುಗುಣವಾಗಿ, ಬದಲಾವಣೆಗಳನ್ನು ಏಕಪಕ್ಷೀಯವಾಗಿ ಬೇಡಿಕೆಯಿಡಬಹುದು ಅಥವಾ ಮತದಾನ ನಡೆಸಬಹುದು. | -| ಮತಗಳನ್ನು ಲೆಕ್ಕ ಹಾಕಲಾಗುತ್ತದೆ ಮತ್ತು ನಂಬಲರ್ಹವಾದ ಮಧ್ಯವರ್ತಿಯಿಲ್ಲದೆ ಫಲಿತಾಂಶವನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅನುಷ್ಠಾನಗೊಳಿಸಲಾಗುತ್ತದೆ. | ಮತದಾನವನ್ನು ಅನುಮತಿಸಿದರೆ, ಮತಗಳನ್ನು ಆಂತರಿಕವಾಗಿ ಎಣಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಮತದಾನದ ಫಲಿತಾಂಶವನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ನಿರ್ವಹಿಸಬೇಕು. | -| ಒದಗಿಸಲಾದ ಸೇವೆಗಳು ಒಂದು ಗುಂಪಿನ ಸದಸ್ಯರಿಂದ (ಉದಾಹರಣೆಗೆ, ಧಾರ್ಮಿಕ ನಿಧಿಯ ವಿತರಣೆ) ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನಿರ್ವಹಿಸಲ್ಪಡುತ್ತವೆ. | ಕುಶಲತೆಗೆ ಒಳಗಾಗುವ ಮಾನವ ನಿರ್ವಹಣೆ ಅಥವಾ ಕೇಂದ್ರೀಯ ನಿಯಂತ್ರಿತ ಯಾಂತ್ರೀಕೃತಗೊಂಡ ಅಗತ್ಯವಿರುತ್ತದೆ. | -| ಎಲ್ಲಾ ಚಟುವಟಿಕೆಗಳು ಪಾರದರ್ಶಕ ಮತ್ತು ಸಂಪೂರ್ಣ ಸಾರ್ವಜನಿಕವಾಗಿದೆ. | ಚಟುವಟಿಕೆಯು ಸಾಮಾನ್ಯವಾಗಿ ಖಾಸಗಿಯಾಗಿರುತ್ತದೆ ಮತ್ತು ಸಾರ್ವಜನಿಕರಿಗೆ ಸೀಮಿತವಾಗಿರುತ್ತದೆ. | - -### DAO ಉದಾಹರಣೆಗಳು {#dao-examples} - -ಇದನ್ನು ಹೆಚ್ಚು ಅರ್ಥಪೂರ್ಣವಾಗಿಸಲು ಸಹಾಯ ಮಾಡಲು, DAO ಅನ್ನು ನೀವು ಹೇಗೆ ಬಳಸಬಹುದು ಎಂಬ ಕೆಲವು ಉದಾಹರಣೆಗಳು ಇಲ್ಲಿವೆ: - -- ಒಂದು ಧರ್ಮಕಾರ್ಯ - ನೀವು ಜಗತ್ತಿನ ಯಾವುದೇ ಮೂಲದಿಂದ ದೇಣಿಗೆಗಳನ್ನು ಸ್ವೀಕರಿಸಬಹುದು ಮತ್ತು ಯಾವ ಕಾರಣಗಳಿಗೆ ನಿಧಿ ನೀಡಬೇಕೆಂದು ಮತ ಚಲಾಯಿಸಬಹುದು. -- ಸಾಮೂಹಿಕ ಮಾಲೀಕತ್ವ - ನೀವು ಭೌತಿಕ ಅಥವಾ ಡಿಜಿಟಲ್ ಸ್ವತ್ತುಗಳನ್ನು ಖರೀದಿಸಬಹುದು ಮತ್ತು ಸದಸ್ಯರು ಅವುಗಳನ್ನು ಹೇಗೆ ಬಳಸುವುದು ಎಂಬುದರ ಕುರಿತು ಮತ ಚಲಾಯಿಸಬಹುದು. -- ವೆಂಚರ್‌ಗಳು ಮತ್ತು ಅನುದಾನಗಳು - ನೀವು ಹೂಡಿಕೆ ಬಂಡವಾಳವನ್ನು ಪೂಲ್ ಮಾಡುವ ವೆಂಚರ್ ನಿಧಿಯನ್ನು ರಚಿಸಬಹುದು ಮತ್ತು ವೆಂಚರ್‌ಗಳಿಗೆ ಬ್ಯಾಕ್‌ಗೆ ಮತ ಹಾಕಬಹುದು. ಮರುಪಾವತಿ ಮಾಡಿದ ಹಣವನ್ನು ನಂತರ DAO-ಸದಸ್ಯರ ನಡುವೆ ಮರುಹಂಚಿಕೆ ಮಾಡಬಹುದು. - -## DAO ಗಳು ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತವೆ? {#how-daos-work} - -DAO ನ ಬೆನ್ನೆಲುಬು ಅದರ ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರ್ಯಾಕ್ಟ್ ಆಗಿದೆ, ಇದು ಸಂಸ್ಥೆಯ ನಿಯಮಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ ಮತ್ತು ಗುಂಪಿನ ಖಜಾನೆಯನ್ನು ಹೊಂದಿದೆ. ಒಮ್ಮೆ ಒಪ್ಪಂದವು ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ಲೈವ್ ಆಗಿದ್ದರೆ, ಮತವನ್ನು ಹೊರತುಪಡಿಸಿ ಯಾರೂ ನಿಯಮಗಳನ್ನು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಕೋಡ್‌ನಲ್ಲಿನ ನಿಯಮಗಳು ಮತ್ತು ತರ್ಕಕ್ಕೆ ಒಳಪಡದ ಏನಾದರೂ ಮಾಡಲು ಯಾರಾದರೂ ಪ್ರಯತ್ನಿಸಿದರೆ, ಅದು ವಿಫಲಗೊಳ್ಳುತ್ತದೆ. ಮತ್ತು ಖಜಾನೆ ಕೂಡ ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರ್ಯಾಕ್ಟ್ ನಿಂದ ನಿರ್ವಹಿಸಲ್ಪಡುವ ಕಾರಣ, ಗುಂಪಿನ ಅನುಮತಿ ಇಲ್ಲದೆ ಯಾರೂ ಹಣವನ್ನು ಖರ್ಚು ಮಾಡಲಾಗುವುದಿಲ್ಲ. ಇದರರ್ಥ DAO ಗಳಿಗೆ ಕೇಂದ್ರ ಪ್ರಾಧಿಕಾರದ ಅಗತ್ಯವಿಲ್ಲ. ಬದಲಾಗಿ, ಗುಂಪು ಒಗ್ಗೂಡಿ ನಿರ್ಧಾರಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಮತಗಳು ಯಶಸ್ವಿಯಾಗುತ್ತಿದ್ದಂತೆ ಪಾವತಿಗಳು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅನುಮತಿಸಲ್ಪಡುತ್ತವೆ. - -ಇದು ಸಾಧ್ಯ ಏಕೆಂದರೆ ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರ್ಯಾಕ್ಟ್ ಗಳು ಒಮ್ಮೆ ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ಲೈವ್‌ಗೆ ಹೋದರೆ ಅವುಗಳು ಟ್ಯಾಂಪರ್-ಪ್ರೂಫ್ ಆಗಿರುತ್ತವೆ. ಜನರು ಗಮನಿಸದೆ ನೀವು ಕೋಡ್ ಅನ್ನು (DAO ಗಳ ನಿಯಮಗಳು) ಸಂಪಾದಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ ಏಕೆಂದರೆ ಎಲ್ಲವೂ ಸಾರ್ವಜನಿಕವಾಗಿದೆ. - - - ಸ್ಮಾರ್ಟ್ ಒಪ್ಪಂದಗಳ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು - - -## ಇಥಿರಿಯಮ್ ಮತ್ತು DAO ಗಳ {#ethereum-and-daos} - -ಇಥಿರಿಯಮ್ ಹಲವಾರು ಕಾರಣಗಳಿಗಾಗಿ DAO ಗಳಿಗೆ ಪರಿಪೂರ್ಣ ಅಡಿಪಾಯವಾಗಿದೆ: - -- ಇಥಿರಿಯಮ್‍ನ ಸ್ವಂತ ಒಮ್ಮತವು ಸಂಸ್ಥೆಗಳು ನೆಟ್‌ವರ್ಕ್‌ಗೆ ನಂಬಿಕೆ ಇಡುವಷ್ಟು ವಿತರಣೆಯಾಗಿದೆ ಮತ್ತು ಸ್ಥಾಪಿತವಾಗಿದೆ. -- ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರ್ಯಾಕ್ಟ್ ಕೋಡ್ ಅನ್ನು ಅದರ ಮಾಲೀಕರಿಂದಲೂ ಒಮ್ಮೆ ಲೈವ್ ಆಗಿ ಮಾರ್ಪಡಿಸಲಾಗುವುದಿಲ್ಲ. ಇದು ಪ್ರೋಗ್ರಾಮ್ ಮಾಡಲಾದ ನಿಯಮಗಳ ಮೂಲಕ DAO ಅನ್ನು ನಡೆಸಲು ಅನುಮತಿಸುತ್ತದೆ. -- ಸ್ಮಾರ್ಟ್ ಒಪ್ಪಂದಗಳು ಹಣವನ್ನು ಕಳುಹಿಸಬಹುದು/ಸ್ವೀಕರಿಸಬಹುದು. ಇಲ್ಲದಿದ್ದರೆ, ಗುಂಪಿನ ಹಣವನ್ನು ನಿರ್ವಹಿಸಲು ನೀವು ನಂಬಲರ್ಹವಾದ ಮಧ್ಯವರ್ತಿಯ ಅಗತ್ಯವಿದೆ. -- ಇಥಿರಿಯಮ್ ಸಮುದಾಯವು ಸ್ಪರ್ಧಾತ್ಮಕಕ್ಕಿಂತ ಹೆಚ್ಚು ಸಹಕಾರಿಯಾಗಿದೆ ಎಂದು ಸಾಬೀತಾಗಿದೆ, ಇದು ಅತ್ಯುತ್ತಮ ಅಭ್ಯಾಸಗಳು ಮತ್ತು ಬೆಂಬಲ ವ್ಯವಸ್ಥೆಗಳು ತ್ವರಿತವಾಗಿ ಹೊರಹೊಮ್ಮಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. - -## DAO ಆಡಳಿತ {#dao-governance} - -DAO ಅನ್ನು ಆಡಳಿತ ಮಾಡುವಾಗ ಮತದಾನ ಮತ್ತು ಪ್ರಸ್ತಾವನೆಗಳು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ ಎಂಬಂತಹ ಹಲವು ಪರಿಗಣನೆಗಳು ಇವೆ. - -### ನಿಯೋಗ {#governance-delegation} - -ಪ್ರತಿನಿಧಿ ಪ್ರಜಾಪ್ರಭುತ್ವದ DAO ಆವೃತ್ತಿಯಂತೆ ನಿಯೋಗವು ಹೋಲುತ್ತದೆ. ಟೋಕನ್ ಹೊಂದಿರುವವರು ತಮ್ಮ ಮತಗಳನ್ನು ತಮ್ಮನ್ನು ನಾಮನಿರ್ದೇಶನ ಮಾಡಿಕೊಂಡ ಮತ್ತು ಪ್ರೋಟೋಕಾಲ್ ಅನ್ನು ನಿರ್ವಹಿಸುವ ಮತ್ತು ತಿಳಿದಿರಲು ಶ್ರಮಿಸುವ ಬಳಕೆದಾರರಿಗೆ ವಹಿಸುತ್ತಾರೆ. - -#### ಒಂದು ಪ್ರಸಿದ್ಧ ಉದಾಹರಣೆ {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) – ENS ಹೊಂದಿರುವವರು ತಮ್ಮ ಮತಗಳನ್ನು ತೊಡಗಿಸಿಕೊಂಡಿರುವ ಸಮುದಾಯದ ಸದಸ್ಯರಿಗೆ ವಹಿಸಬಹುದು ಅವರು ತಮ್ಮನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತಾರೆ. - -### ಸ್ವಯಂಚಾಲಿತ ವಹಿವಾಟು ಆಡಳಿತ {#governance-example} - -ಹಲವು DAO ಗಳಲ್ಲಿ, ಸದಸ್ಯರ ಒಂದು ನಿಗದಿತ ಗುಂಪು ಸಮ್ಮತಿಸಿದರೆ ವಹಿವಾಟುಗಳು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕಾರ್ಯಗತಗೊಳ್ಳುತ್ತವೆ. - -#### ಒಂದು ಪ್ರಸಿದ್ಧ ಉದಾಹರಣೆ {#governance-example} - -[ನೌನ್ಸ್](https://nouns.wtf) – ನೌನ್ಸ್ DAO ನಲ್ಲಿ, ವೋಟ್‌ಗಳ ಕೋರಂ ಅನ್ನು ಪೂರೈಸಿದರೆ ಮತ್ತು ಬಹುಪಾಲು ಮತಗಳು ದೃಢೀಕರಣವನ್ನು ಹೊಂದಿದ್ದರೆ, ಅದನ್ನು ಸಂಸ್ಥಾಪಕರು ವೀಟೋ ಮಾಡದಿರುವವರೆಗೆ ವಹಿವಾಟು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕಾರ್ಯಗತಗೊಳ್ಳುತ್ತದೆ. - -### ಮಲ್ಟಿಸಿಗ್ ಆಡಳಿತ {#governance-example} - -DAO ಗಳು ಸಾವಿರಾರು ಮತದಾನದ ಸದಸ್ಯರನ್ನು ಹೊಂದಿದ್ದರೂ, 5-20 ಸಕ್ರಿಯ ಸಮುದಾಯದ ಸದಸ್ಯರು ಹಂಚಿಕೊಂಡ ವಾಲೆಟ್‌ನಲ್ಲಿ ನಿಧಿಗಳು ವಾಸಿಸಬಹುದು, ಅವರು ವಿಶ್ವಾಸಾರ್ಹ ಮತ್ತು ಸಾಮಾನ್ಯವಾಗಿ ಡಾಕ್ಸ್‌ಡ್ (ಸಮುದಾಯಕ್ಕೆ ತಿಳಿದಿರುವ ಸಾರ್ವಜನಿಕ ಗುರುತುಗಳು). ಮತದ ನಂತರ, ಮಲ್ಟಿಸಿಗ್ ಸಹಿ ಮಾಡುವವರು ಸಮುದಾಯದ ಇಚ್ಛೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತಾರೆ. - -## DAO ನಿಯಮಗಳು {#dao-laws} - -1977 ರಲ್ಲಿ, ವ್ಯೋಮಿಂಗ್ LLC ಅನ್ನು ಕಂಡುಹಿಡಿದರು, ಇದು ಉದ್ಯಮಿಗಳನ್ನು ರಕ್ಷಿಸುತ್ತದೆ ಮತ್ತು ಅವರ ಹೊಣೆಗಾರಿಕೆಯನ್ನು ಮಿತಿಗೊಳಿಸುತ್ತದೆ. ತೀರಾ ಇತ್ತೀಚೆಗೆ, ಅವರು DAO ಗಳಿಗೆ ಕಾನೂನು ಸ್ಥಾನಮಾನವನ್ನು ಸ್ಥಾಪಿಸುವ DAO ಕಾನೂನಿಗೆ ಪ್ರವರ್ತಕರಾಗಿದ್ದಾರೆ. ಪ್ರಸ್ತುತ ವ್ಯೋಮಿಂಗ್, ವರ್ಮೊಂಟ್ ಮತ್ತು ವರ್ಜಿನ್ ದ್ವೀಪಗಳು ಕೆಲವು ರೂಪದಲ್ಲಿ DAO ಕಾನೂನುಗಳನ್ನು ಹೊಂದಿವೆ. - -#### ಒಂದು ಪ್ರಸಿದ್ಧ ಉದಾಹರಣೆ {#law-example} - -[CityDAO](https://citydao.io)- ಯೆಲ್ಲೊಸ್ಟೋನ್ ರಾಷ್ಟ್ರೀಯ ಉದ್ಯಾನವನದ ಬಳಿ 40 ಎಕರೆ ಭೂಮಿಯನ್ನು ಖರೀದಿಸಲು CityDAO ವ್ಯೋಮಿಂಗ್‌ನ DAO ಕಾನೂನನ್ನು ಬಳಸಿಕೊಂಡಿದೆ. - -## DAO ಸದಸ್ಯತ್ವ {#dao-membership} - -DAO ಸದಸ್ಯತ್ವಕ್ಕಾಗಿ ವಿವಿಧ ಮಾದರಿಗಳಿವೆ. ಸದಸ್ಯತ್ವವು ಮತದಾನವು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು DAO ಯ ಇತರ ಪ್ರಮುಖ ಭಾಗಗಳನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ. - -### ಟೋಕನ್ ಆಧಾರಿತ ಸದಸ್ಯತ್ವ {#token-based-membership} - -ಬಳಸಿದ ಟೋಕನ್ ಅನ್ನು ಅವಲಂಬಿಸಿ ಸಾಮಾನ್ಯವಾಗಿ ಸಂಪೂರ್ಣವಾಗಿ ಅನುಮತಿಯಿಲ್ಲ. ಹೆಚ್ಚಿನ ಈ ಆಡಳಿತ ಟೋಕನ್‌ಗಳನ್ನು ಡೆಸೆಂಟ್ರಲೈಸ್ಡ್ ಎಕ್ಸ್‌ಚೇಂಜ್‌ನಲ್ಲಿ ಅನುಮತಿ ಇಲ್ಲದೆ ವಹಿವಾಟು ಮಾಡಬಹುದು. ಇತರವುಗಳನ್ನು ಲಿಕ್ವಿಡಿಟಿ ಅಥವಾ ಇತರ ಕೆಲವು 'ಕೆಲಸದ ಪುರಾವೆ' ಒದಗಿಸುವ ಮೂಲಕ ಗಳಿಸಬೇಕು. ಹೇಗಾದರೂ, ಟೋಕನ್ ಹೊಂದಿರುವುದು ಸಾಕು ಮತದಾನಕ್ಕೆ ಪ್ರವೇಶವನ್ನು ನೀಡುತ್ತದೆ. - -_ವಿಶಾಲ ವಿಕೇಂದ್ರೀಕೃತ ಪ್ರೋಟೋಕಾಲ್‌ಗಳು ಮತ್ತು/ಅಥವಾ ಟೋಕನ್‌ಗಳನ್ನು ಸ್ವತಃ ನಿಯಂತ್ರಿಸಲು ಸಾಮಾನ್ಯವಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ._ - -#### ಒಂದು ಪ್ರಸಿದ್ಧ ಉದಾಹರಣೆ {#token-example} - -[MakerDAO](https://makerdao.com) – MakerDAO ಟೋಕನ್ MKR ಅನ್ನು ಡೆಸೆಂಟ್ರಲೈಸ್ಡ್ ಎಕ್ಸ್‌ಚೇಂಜ್‌ಗಳಲ್ಲಿ ವ್ಯಾಪಕವಾಗಿ ಲಭ್ಯವಿದೆ ಮತ್ತು ಯಾರಾದರೂ ಮೇಕರ್ ಪ್ರೋಟೋಕಾಲ್‍ನ ಭವಿಷ್ಯದ ಮೇಲೆ ಮತದಾನ ಶಕ್ತಿಯನ್ನು ಖರೀದಿಸಬಹುದು. - -### ಹಂಚಿಕೆ ಆಧಾರಿತ ಸದಸ್ಯತ್ವ {#share-based-membership} - -ಹಂಚಿಕೆ-ಆಧಾರಿತ DAO ಗಳು ಹೆಚ್ಚು ಅನುಮತಿ ಪಡೆದಿವೆ, ಆದರೆ ಇನ್ನೂ ಸಾಕಷ್ಟು ತೆರೆದಿರುತ್ತವೆ. ಯಾವುದೇ ಭವಿಷ್ಯದ ಸದಸ್ಯರು DAO ಗೆ ಸೇರಲು ಪ್ರಸ್ತಾಪವನ್ನು ಸಲ್ಲಿಸಬಹುದು, ಸಾಮಾನ್ಯವಾಗಿ ಟೋಕನ್‍ಗಳು ಅಥವಾ ಕೆಲಸದ ರೂಪದಲ್ಲಿ ಕೆಲವು ಮೌಲ್ಯದ ಒಂದು ಗೌರವವನ್ನು ನೀಡುತ್ತಾರೆ. ಷೇರುಗಳು ನೇರ ಮತದಾನದ ಶಕ್ತಿ ಮತ್ತು ಮಾಲೀಕತ್ವವನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತವೆ. ಸದಸ್ಯರು ತಮ್ಮ ಖಜಾನೆಯ ಅನುಪಾತದ ಪಾಲನ್ನು ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ನಿರ್ಗಮಿಸಬಹುದು. - -_ಸಾಮಾನ್ಯವಾಗಿ ಹತ್ತಿರದ, ಮಾನವ-ಕೇಂದ್ರಿತ ಸಂಸ್ಥೆಗಳಾದ ಚಾರಿಟಿಗಳು, ಕಾರ್ಮಿಕ ಸಮುದಾಯಗಳು ಮತ್ತು ಹೂಡಿಕೆ ಕ್ಲಬ್‌ಗಳಿಗಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ. ಪ್ರೋಟೋಕಾಲ್‌ಗಳು ಮತ್ತು ಟೋಕನ್‌ಗಳನ್ನು ಸಹ ನಿಯಂತ್ರಿಸಬಹುದು._ - -#### ಒಂದು ಪ್ರಸಿದ್ಧ ಉದಾಹರಣೆ {#share-example} - -[MolochDAO](http://molochdao.com/) - MolochDAO Ethereum ಯೋಜನೆಗಳಿಗೆ ಧನಸಹಾಯ ನೀಡುವುದರ ಮೇಲೆ ಕೇಂದ್ರೀಕೃತವಾಗಿದೆ. ಅವರಿಗೆ ಸದಸ್ಯತ್ವದ ಪ್ರಸ್ತಾಪದ ಅಗತ್ಯವಿರುತ್ತದೆ ಆದ್ದರಿಂದ ಸಂಭಾವ್ಯ ಅನುದಾನ ನೀಡುವವರ ಬಗ್ಗೆ ತಿಳುವಳಿಕೆಯುಳ್ಳ ತೀರ್ಪುಗಳನ್ನು ಮಾಡಲು ನೀವು ಅಗತ್ಯವಾದ ಪರಿಣತಿ ಮತ್ತು ಬಂಡವಾಳವನ್ನು ಹೊಂದಿದ್ದೀರಾ ಎಂದು ಗುಂಪು ನಿರ್ಣಯಿಸಬಹುದು. ನೀವು ಮುಕ್ತ ಮಾರುಕಟ್ಟೆಯಲ್ಲಿ DAO ಗೆ ಪ್ರವೇಶವನ್ನು ಖರೀದಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. - -### ಖ್ಯಾತಿ ಆಧಾರಿತ ಸದಸ್ಯತ್ವ {#reputation-based-membership} - -ಖ್ಯಾತಿ ಭಾಗವಹಿಸುವಿಕೆಯ ಪುರಾವೆಯನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ ಮತ್ತು DAO ಯಲ್ಲಿ ಮತದಾನ ಶಕ್ತಿಯನ್ನು ನೀಡುತ್ತದೆ. ಟೋಕನ್ ಅಥವಾ ಷೇರು ಆಧಾರಿತ ಸದಸ್ಯತ್ವದಂತಲ್ಲದೆ, ಖ್ಯಾತಿ-ಆಧಾರಿತ DAO ಗಳು ಮಾಲೀಕತ್ವವನ್ನು ಕೊಡುಗೆದಾರರಿಗೆ ವರ್ಗಾಯಿಸುವುದಿಲ್ಲ. ಖ್ಯಾತಿ ಖರೀದಿಸಲಾಗುವುದಿಲ್ಲ, ವರ್ಗಾಯಿಸಲಾಗುವುದಿಲ್ಲ ಅಥವಾ ಒಪ್ಪಿಸಲಾಗುವುದಿಲ್ಲ; DAO ಸದಸ್ಯರು ಭಾಗವಹಿಸುವ ಮೂಲಕ ಖ್ಯಾತಿ ಗಳಿಸಬೇಕು. ಒನ್-ಚೈನ್ ಮತದಾನವು ಅನುಮತಿಯಿಲ್ಲದೆ ಇದೆ ಮತ್ತು ಭವಿಷ್ಯದ ಸದಸ್ಯರು DAO ಗೆ ಸೇರಲು ಉಚಿತವಾಗಿ ಪ್ರಸ್ತಾಪಗಳನ್ನು ಸಲ್ಲಿಸಬಹುದು ಮತ್ತು ತಮ್ಮ ಕೊಡುಗೆಗಳಿಗೆ ಪ್ರತಿಫಲವಾಗಿ ಖ್ಯಾತಿ ಮತ್ತು ಟೋಕನ್‍ಗಳನ್ನು ಪಡೆಯಲು ಕೋರಬಹುದು. - -_ಸಾಮಾನ್ಯವಾಗಿ ಪ್ರೋಟೋಕಾಲ್‍ಗಳು ಮತ್ತು ಡಾಪ್‌ಗಳ ಡೆಸೆಂಟ್ರಲೈಸ್ಡ್ ಅಭಿವೃದ್ಧಿ ಮತ್ತು ಆಡಳಿತಕ್ಕಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ, ಆದರೆ ಚಾರಿಟಿಗಳು, ಕಾರ್ಮಿಕ ಸಮುದಾಯಗಳು, ಹೂಡಿಕೆ ಕ್ಲಬ್‌ಗಳು ಮುಂತಾದ ವೈವಿಧ್ಯಮಯ ಸಂಸ್ಥೆಗಳಿಗೂ ಸೂಕ್ತವಾಗಿದೆ._ - -#### ಒಂದು ಪ್ರಸಿದ್ಧ ಉದಾಹರಣೆ {#reputation-example} - -[DXdao](https://DXdao.eth.link) - DXdao ಜಾಗತಿಕ ಸಾರ್ವಭೌಮ ಸಾಮೂಹಿಕ ಕಟ್ಟಡವಾಗಿದೆ ಮತ್ತು 2019 ರಿಂದ ವಿಕೇಂದ್ರೀಕೃತ ಪ್ರೋಟೋಕಾಲ್‌ಗಳು ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿಯಂತ್ರಿಸುತ್ತದೆ. ಇದು ಖ್ಯಾತಿ ಆಧಾರಿತ ಆಡಳಿತ ಮತ್ತು ಹೊಲೋಗ್ರಾಫಿಕ್ ಒಮ್ಮತವನ್ನು ಬಳಸಿಕೊಂಡು ನಿಧಿಗಳನ್ನು ಒಗ್ಗೂಡಿಸಲು ಮತ್ತು ನಿರ್ವಹಿಸುತ್ತದೆ, ಅಂದರೆ ಯಾರೂ ತಮ್ಮ ಭವಿಷ್ಯವನ್ನು ಖರೀದಿಸುವ ಮೂಲಕ ಪ್ರಭಾವಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. - -## DAO ಗೆ ಸೇರಿ / ಪ್ರಾರಂಭಿಸಿ {#join-start-a-dao} - -### Join a DAO {#join-a-dao} - -- [ಇಥಿರಿಯಮ್ ಸಮುದಾಯ DAO ಗಳು](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [DAOHaus ನ DAOಗಳ ಪಟ್ಟಿ](https://app.daohaus.club/explore) -- [Tally.xyz DAOಗಳ ಪಟ್ಟಿ](https://www.tally.xyz) - -### DAO ಅನ್ನು ಪ್ರಾರಂಭಿಸಿ {#start-a-dao} - -- [DAOHaus ಜೊತೆಗೆ DAO ಅನ್ನು ಕರೆಸಿ](https://app.daohaus.club/summon) -- [ಟ್ಯಾಲಿಯೊಂದಿಗೆ ಗವರ್ನರ್ DAO ಅನ್ನು ಪ್ರಾರಂಭಿಸಿ](https://www.tally.xyz/add-a-dao) -- [ಅರಾಗೊನ್-ಚಾಲಿತ DAO ಅನ್ನು ರಚಿಸಿ](https://aragon.org/product) -- [ಕಾಲೋನಿ ಆರಂಭಿಸಿ](https://colony.io/) -- [DAOstack ನ ಹೊಲೊಗ್ರಾಫಿಕ್ ಒಮ್ಮತದೊಂದಿಗೆ DAO ಅನ್ನು ರಚಿಸಿ](https://alchemy.daostack.io/daos/create) - -## Further reading {#further-reading} - -### DAO ಆರ್ಟಿಕಲ್‍ಗಳು {#dao-articles} - -- [DAO ಎಂದರೇನು?](https://aragon.org/dao) – [ಅರಾಗೊನ್](https://aragon.org/) -- [DAO ಕೈಪಿಡಿ](https://daohandbook.xyz) -- [DAOಗಳ ಹೌಸ್](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) -- [DAO ಎಂದರೇನು ಮತ್ತು ಅದು ಯಾವುದಕ್ಕಾಗಿ?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) -- [DAO-ಚಾಲಿತ ಡಿಜಿಟಲ್ ಸಮುದಾಯವನ್ನು ಹೇಗೆ ಪ್ರಾರಂಭಿಸುವುದು](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) -- [DAO ಎಂದರೇನು?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) -- [ಹೊಲೊಗ್ರಾಫಿಕ್ ಒಮ್ಮತ ಎಂದರೇನು?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) -- [DAO ಗಳು ನಿಗಮಗಳಲ್ಲ: ಅಲ್ಲಿ ಸ್ವಾಯತ್ತ ಸಂಸ್ಥೆಗಳಲ್ಲಿ ವಿಕೇಂದ್ರೀಕರಣವು ವಿಟಾಲಿಕ್‌ನಿಂದ ಮುಖ್ಯವಾಗಿದೆ](https://vitalik.ca/general/2022/09/20/daos.html) -- [ಡಿಎಒಗಳು, ಡಿಎಸಿಗಳು, ಡಿಎಗಳು ಮತ್ತು ಇನ್ನಷ್ಟು: ಅಪೂರ್ಣ ಪರಿಭಾಷೆ ಮಾರ್ಗದರ್ಶಿ](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Ethereum Blog](https://blog.ethereum.org) - -### Videos {#videos} - -- [ಕ್ರಿಪ್ಟೋದಲ್ಲಿ DAO ಎಂದರೇನು?](https://youtu.be/KHm0uUPqmVE) -- [DAO ನಗರವನ್ನು ನಿರ್ಮಿಸಬಹುದೇ?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/src/content/translations/kn/decentralized-identity/index.md b/src/content/translations/kn/decentralized-identity/index.md deleted file mode 100644 index e8e13758521..00000000000 --- a/src/content/translations/kn/decentralized-identity/index.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: ವಿಕೇಂದ್ರೀಕರಿತ ಗುರುತು -description: ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು ಎಂದರೇನು, ಮತ್ತು ಅದು ಏಕೆ ಮುಖ್ಯವಾಗಿದೆ? -lang: kn -template: use-cases -emoji: ":id:" -sidebarDepth: 2 -image: ../../../../assets/eth-gif-cat.png -summaryPoint1: ಸಾಂಪ್ರದಾಯಿಕ ಗುರುತಿನ ವ್ಯವಸ್ಥೆಗಳು ನಿಮ್ಮ ಗುರುತಿಸುವಿಕೆಗಳ ವಿತರಣೆ, ನಿರ್ವಹಣೆ ಮತ್ತು ನಿಯಂತ್ರಣವನ್ನು ಕೇಂದ್ರೀಕರಿಸಿವೆ. -summaryPoint2: ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು ಕೇಂದ್ರೀಕೃತ ಮೂರನೇ ಪಕ್ಷಗಳ ಮೇಲಿನ ಅವಲಂಬನೆಯನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ. -summaryPoint3: ಕ್ರಿಪ್ಟೋಗೆ ಧನ್ಯವಾದಗಳು, ಬಳಕೆದಾರರು ಈಗ ಮತ್ತೊಮ್ಮೆ ತಮ್ಮದೇ ಆದ ಗುರುತಿಸುವಿಕೆಗಳು ಮತ್ತು ದೃಢೀಕರಣಗಳನ್ನು ವಿತರಿಸಲು, ಹಿಡಿದಿಡಲು ಮತ್ತು ನಿಯಂತ್ರಿಸಲು ಸಾಧನಗಳನ್ನು ಹೊಂದಿದ್ದಾರೆ. ---- - -ಗುರುತು ಇಂದು ನಿಮ್ಮ ಜೀವನದ ಪ್ರತಿಯೊಂದು ಅಂಶಕ್ಕೂ ಆಧಾರವಾಗಿದೆ. ಜಾಲತಾಣ ಸೇವೆಗಳನ್ನು ಬಳಸುವುದು, ಬ್ಯಾಂಕ್ ಖಾತೆಯನ್ನು ತೆರೆಯುವುದು, ಚುನಾವಣೆಗಳಲ್ಲಿ ಮತ ಚಲಾಯಿಸುವುದು, ಆಸ್ತಿ ಖರೀದಿಸುವುದು, ಉದ್ಯೋಗ ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವುದು - ಇವೆಲ್ಲವೂ ನಿಮ್ಮ ಗುರುತಿನ ಪುರಾವೆಯನ್ನು ಸೂಚಿಸುತ್ತವೆ. - -ಆದಾಗ್ಯೂ, ಸಾಂಪ್ರದಾಯಿಕ ಗುರುತಿನ ನಿರ್ವಹಣಾ ವ್ಯವಸ್ಥೆಗಳು ನಿಮ್ಮ ಗುರುತಿಸುವಿಕೆಗಳು ಮತ್ತು [ದೃಢೀಕರಣಗಳನ್ನು](#what-are-attestations), ನೀಡುವ, ಹಿಡಿದಿಟ್ಟುಕೊಳ್ಳುವ ಮತ್ತು ನಿಯಂತ್ರಿಸುವ ಕೇಂದ್ರೀಕೃತ ಮಧ್ಯವರ್ತಿಗಳ ಮೇಲೆ ದೀರ್ಘಕಾಲ ಅವಲಂಬಿಸಿವೆ. ಇದರರ್ಥ ನೀವು ನಿಮ್ಮ ಗುರುತಿನ ಸಂಬಂಧಿತ ಮಾಹಿತಿಯನ್ನು ನಿಯಂತ್ರಿಸಲಾಗುವುದಿಲ್ಲ ಅಥವಾ ಯಾರುಪರ್ಸನಲ್ಲಿ ಐಡೆಂಟಿಫೈಅಬಲೆ ಇನ್ಫಾರ್ಮಶನ್(PII) ಗೆ ಪ್ರವೇಶವನ್ನು ನಿರ್ಧರಿಸಲು ಅಥವಾ ಈ ಪಕ್ಷಗಳಿಗೆ ಎಷ್ಟು ಪ್ರವೇಶವಿದೆ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಲಾಗುವುದಿಲ್ಲ. - -ಈ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಲು, ನಾವು ಇಥಿರಿಯಮ್ ನಂತಹ ಸಾರ್ವಜನಿಕ ಬ್ಲಾಕ್‌ಚೈನ್‌ಗಳಲ್ಲಿ ನಿರ್ಮಿಸಲಾದ ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿನ ವ್ಯವಸ್ಥೆಗಳನ್ನು ಹೊಂದಿದ್ದೇವೆ. ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು ವ್ಯಕ್ತಿಗಳು ತಮ್ಮ ಗುರುತಿನ-ಸಂಬಂಧಿತ ಮಾಹಿತಿಯನ್ನು ನಿರ್ವಹಿಸಲು ಅನುಮತಿಸುತ್ತದೆ. ಡೀಸೆಂಟ್ರಲೈಸ್ಡ್ ಐಡೆಂಟಿಟಿ ಸಲಹೆಗಳೊಂದಿಗೆ, _ನೀವು_ ಸೇವಾ ಪೂರೈಕೆದಾರರು ಅಥವಾ ಸರ್ಕಾರಗಳಂತಹ ಕೇಂದ್ರೀಯ ಅಧಿಕಾರಿಗಳ ಮೇಲೆ ಅವಲಂಬಿಸದೆ ಗುರುತುಗಳು ಮತ್ತು ದೃಢೀಕರಣಗಳನ್ನು ರಚಿಸಬಹುದು ಮತ್ತು ಹೊಂದಬಹುದು. - -## ಗುರುತು ಎಂದರೇನು? {#what-is-identity} - -ಗುರುತಿನೆಂದರೆ ವ್ಯಕ್ತಿಯ ಸ್ವಯಂ ಭಾವನೆಯಾಗಿದ್ದು, ಅದು ಅನನ್ಯ ಗುಣಲಕ್ಷಣಗಳಿಂದ ನಿರೂಪಿಸಲ್ಪಟ್ಟಿದೆ. ಐಡೆಂಟಿಟಿಯು ಒಬ್ಬ _ವ್ಯಕ್ತಿಯನ್ನುl_ ಸೂಚಿಸುತ್ತದೆ, ಅಂದರೆ, ಒಂದು ವಿಶಿಷ್ಟವಾದ ಮಾನವ ಅಸ್ತಿತ್ವ. ಗುರುತು ಸಂಸ್ಥೆ ಅಥವಾ ಅಧಿಕಾರದಂತಹ ಇತರ ಮಾನವೇತರ ಘಟಕಗಳನ್ನು ಸಹ ಉಲ್ಲೇಖಿಸಬಹುದು. - -## ಗುರುತಿಸುವಿಕೆಗಳು ಯಾವುವು? {#what-are-identifiers} - -ಗುರುತಿಸುವಿಕೆಯು ಒಂದು ನಿರ್ದಿಷ್ಟ ಗುರುತು ಅಥವಾ ಗುರುತುಗಳಿಗೆ ಸೂಚಕವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಮಾಹಿತಿಯ ತುಣುಕು. ಸಾಮಾನ್ಯ ಗುರುತಿಸುವಿಕೆಗಳಲ್ಲಿ ಇವು ಸೇರಿವೆ: - -- ಹೆಸರು -- ಸಾಮಾಜಿಕ ಭದ್ರತಾ ಸಂಖ್ಯೆ/ ತೆರಿಗೆ ಐಡಿ ಸಂಖ್ಯೆ -- ಮೊಬೈಲ್ ಸಂಖ್ಯೆ -- ಹುಟ್ಟಿದ ದಿನಾಂಕ ಮತ್ತು ಸ್ಥಳ -- ಡಿಜಿಟಲ್ ಗುರುತಿನ ರುಜುವಾತುಗಳು, ಉದಾ., ಇಮೇಲ್ ವಿಳಾಸಗಳು, ಬಳಕೆದಾರ ಹೆಸರುಗಳು, ಅವತಾರಗಳು - -ಗುರುತಿಸುವಿಕೆಗಳ ಈ ಸಾಂಪ್ರದಾಯಿಕ ಉದಾಹರಣೆಗಳನ್ನು ಕೇಂದ್ರ ಘಟಕಗಳು ನೀಡುತ್ತವೆ, ಹಿಡಿದಿಟ್ಟುಕೊಳ್ಳುತ್ತವೆ ಮತ್ತು ನಿಯಂತ್ರಿಸುತ್ತವೆ. ನಿಮ್ಮ ಹೆಸರನ್ನು ಬದಲಾಯಿಸಲು ಅಥವಾ ನಿಮ್ಮ ಹ್ಯಾಂಡಲ್ ಅನ್ನು ಬದಲಾಯಿಸಲು ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮ ವೇದಿಕೆಯಿಂದ ನಿಮಗೆ ನಿಮ್ಮ ಸರ್ಕಾರದಿಂದ ಅನುಮತಿ ಬೇಕು. - -## ದೃಢೀಕರಣಗಳು ಎಂದರೇನು? {#what-are-attestations} - -ದೃಢೀಕರಣವು ಒಂದು ಘಟಕವು ಮತ್ತೊಂದು ಘಟಕದ ಬಗ್ಗೆ ಮಾಡಿದ ಹಕ್ಕು. ನೀವು ಯುನೈಟೆಡ್ ಸ್ಟೇಟ್ಸ್ ನಲ್ಲಿ ವಾಸಿಸುತ್ತಿದ್ದರೆ, ಮೋಟಾರು ವಾಹನಗಳ ಇಲಾಖೆ (ಒಂದು ಘಟಕ) ನಿಮಗೆ ನೀಡಿದ ಚಾಲನಾ ಪರವಾನಗಿಯು ನಿಮಗೆ (ಮತ್ತೊಂದು ಘಟಕ) ಕಾರನ್ನು ಓಡಿಸಲು ಕಾನೂನುಬದ್ಧವಾಗಿ ಅನುಮತಿಸಲಾಗಿದೆ ಎಂದು ದೃಢೀಕರಿಸುತ್ತದೆ. - -ದೃಢೀಕರಣಗಳು ಗುರುತಿಸುವಿಕೆಗಳಿಗಿಂತ ಭಿನ್ನವಾಗಿವೆ. ದೃಢೀಕರಣವು ಒಂದು ನಿರ್ದಿಷ್ಟ ಗುರುತನ್ನು ಉಲ್ಲೇಖಿಸಲು ಗುರುತಿಸುವಿಕೆಗಳನ್ನು _ಒಳಗೊಂಡಿರುತ್ತದೆ_, ಮತ್ತು ಈ ಗುರುತಿಗೆ ಸಂಬಂಧಿಸಿದ ಗುಣಲಕ್ಷಣದ ಬಗ್ಗೆ ಹಕ್ಕು ಸಾಧಿಸುತ್ತದೆ. ಆದ್ದರಿಂದ, ನಿಮ್ಮ ಚಾಲನಾ ಪರವಾನಗಿಯು ಗುರುತಿಸುವಿಕೆಗಳನ್ನು (ಹೆಸರು, ಹುಟ್ಟಿದ ದಿನಾಂಕ, ವಿಳಾಸ) ಹೊಂದಿದೆ ಆದರೆ ಚಾಲನೆ ಮಾಡುವ ನಿಮ್ಮ ಕಾನೂನುಬದ್ಧ ಹಕ್ಕಿನ ಬಗ್ಗೆ ದೃಢೀಕರಣವಾಗಿದೆ. - -### ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿಸುವಿಕೆಗಳು ಎಂದರೇನು? {#what-are-decentralized-identifiers} - -ನಿಮ್ಮ ಕಾನೂನು ಹೆಸರು ಅಥವಾ ಇಮೇಲ್ ವಿಳಾಸದಂತಹ ಸಾಂಪ್ರದಾಯಿಕ ಗುರುತಿಸುವಿಕೆಗಳು ಮೂರನೇ ಪಕ್ಷಗಳು-ಸರ್ಕಾರಗಳು ಮತ್ತು ಇಮೇಲ್ ಪೂರೈಕೆದಾರರನ್ನು ಅವಲಂಬಿಸಿರುತ್ತವೆ. ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿಸುವಿಕೆಗಳು (DIDs) ವಿಭಿನ್ನವಾಗಿವೆ - ಅವುಗಳನ್ನು ಯಾವುದೇ ಕೇಂದ್ರ ಘಟಕವು ನೀಡುವುದಿಲ್ಲ, ನಿರ್ವಹಿಸುವುದಿಲ್ಲ ಅಥವಾ ನಿಯಂತ್ರಿಸುವುದಿಲ್ಲ. - -ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿಸುವಿಕೆಗಳನ್ನು ವ್ಯಕ್ತಿಗಳು ನೀಡುತ್ತಾರೆ, ಹಿಡಿದಿಡುತ್ತಾರೆ ಮತ್ತು ನಿಯಂತ್ರಿಸುತ್ತಾರೆ. [ಎಥೆರಿಯಮ್ ಖಾತೆಯು](/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) ಉತ್ಪಾದಿಸುತ್ತದೆ. ಬಳಕೆದಾರರ ಗುರುತುಗಳನ್ನು ದೃಢೀಕರಿಸಲು ಮತ್ತು ಡಿಜಿಟಲ್ ಸ್ವತ್ತುಗಳ ಮಾಲೀಕತ್ವವನ್ನು ಸಾಬೀತುಪಡಿಸಲು ಬ್ಲಾಕ್‍ಚೈನ್ ನೆಟ್‍ವರ್ಕ್‍ಗಳಲ್ಲಿ ಸಾರ್ವಜನಿಕ-ಕೀ ಕ್ರಿಪ್ಟೋಗ್ರಫಿಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. - -ಇಥಿರಿಯಮ್ ಖಾತೆಯಂತಹ ಕೆಲವು ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿಸುವಿಕೆಗಳು ಸಾರ್ವಜನಿಕ ಮತ್ತು ಖಾಸಗಿ ಕೀಲಿಗಳನ್ನು ಹೊಂದಿವೆ. ಸಾರ್ವಜನಿಕ ಕೀಯು ಖಾತೆಯ ನಿಯಂತ್ರಕವನ್ನು ಗುರುತಿಸುತ್ತದೆ, ಆದರೆ ಖಾಸಗಿ ಕೀಗಳು ಈ ಖಾತೆಗೆ ಸಂದೇಶಗಳಿಗೆ ಸಹಿ ಮಾಡಬಹುದು ಮತ್ತು ಡಿಕ್ರಿಪ್ಟ್ ಮಾಡಬಹುದು. PKI ಘಟಕಗಳನ್ನು ದೃಢೀಕರಿಸಲು ಮತ್ತು ನಕಲಿ ಗುರುತುಗಳ ಆವರ್ತನ ಮತ್ತು ಬಳಕೆಯನ್ನು ತಡೆಗಟ್ಟಲು ಅಗತ್ಯವಾದ ಪುರಾವೆಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ, ಎಲ್ಲಾ ಹಕ್ಕುಗಳನ್ನು ಪರಿಶೀಲಿಸಲು [ಕ್ರಿಪ್ಟೋಗ್ರಾಫಿಕ್ ಸಹಿಗಳನ್ನು](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 ಡಿಐಡಿಯೊಂದಿಗೆ ಸಂಬಂಧ ಹೊಂದಿವೆ. - -DIDs ಡಿಐಡಿಗಳನ್ನು ಬ್ಲಾಕ್‍ಚೈನ್‍ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗಿರುವುದರಿಂದ, ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ವಿತರಕರ DID ಯನ್ನು ಅಡ್ಡ-ಪರಿಶೀಲಿಸುವ ಮೂಲಕ ಯಾರಾದರೂ ದೃಢೀಕರಣದ ಸಿಂಧುತ್ವವನ್ನು ಪರಿಶೀಲಿಸಬಹುದು. ಮೂಲಭೂತವಾಗಿ, ಇಥಿರಿಯಮ್ ಬ್ಲಾಕ್‍ಚೈನ್ ಜಾಗತಿಕ ಡೈರೆಕ್ಟರಿಯಂತೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಅದು ಕೆಲವು ಘಟಕಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ DID ಗಳ ಪರಿಶೀಲನೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. - -ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿಸುವಿಕೆಗಳು ದೃಢೀಕರಣಗಳು ಸ್ವಯಂ-ನಿಯಂತ್ರಿತ ಮತ್ತು ಪರಿಶೀಲಿಸಬಹುದಾದವುಗಳಾಗಲು ಕಾರಣವಾಗಿವೆ. ವಿತರಕರು ಇನ್ನು ಮುಂದೆ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದಿದ್ದರೂ, ಹೋಲ್ಡರ್ ಯಾವಾಗಲೂ ದೃಢೀಕರಣದ ಮೂಲ ಮತ್ತು ಸಿಂಧುತ್ವದ ಪುರಾವೆಗಳನ್ನು ಹೊಂದಿರುತ್ತಾರೆ. - -ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿನ ಮೂಲಕ ವೈಯಕ್ತಿಕ ಮಾಹಿತಿಯ ಗೌಪ್ಯತೆಯನ್ನು ರಕ್ಷಿಸಲು ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿಸುವಿಕೆಗಳು ಸಹ ನಿರ್ಣಾಯಕವಾಗಿವೆ. ಉದಾಹರಣೆಗೆ, ಒಬ್ಬ ವ್ಯಕ್ತಿಯು ದೃಢೀಕರಣದ ಪುರಾವೆಯನ್ನು (ಡ್ರೈವಿಂಗ್ ಲೈಸೆನ್ಸ್) ಸಲ್ಲಿಸಿದರೆ, ಪರಿಶೀಲಿಸುವ ಪಕ್ಷವು ಪುರಾವೆಯಲ್ಲಿನ ಮಾಹಿತಿಯ ಸಿಂಧುತ್ವವನ್ನು ಪರಿಶೀಲಿಸುವ ಅಗತ್ಯವಿಲ್ಲ. ಬದಲಾಗಿ, ಪುರಾವೆ ಮಾನ್ಯವಾಗಿದೆಯೇ ಎಂದು ನಿರ್ಧರಿಸಲು ಪರಿಶೀಲಕನಿಗೆ ದೃಢೀಕರಣದ ಸತ್ಯಾಸತ್ಯತೆ ಮತ್ತು ನೀಡುವ ಸಂಸ್ಥೆಯ ಗುರುತಿನ ಕ್ರಿಪ್ಟೋಗ್ರಾಫಿಕ್ ಖಾತರಿಗಳು ಮಾತ್ರ ಬೇಕಾಗುತ್ತವೆ. - -## ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿನಲ್ಲಿ ದೃಢೀಕರಣಗಳ ವಿಧಗಳು {#types-of-attestations-in-decentralized-identity} - -ಇಥಿರಿಯಮ್-ಆಧಾರಿತ ಗುರುತಿನ ಪರಿಸರ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ದೃಢೀಕರಣ ಮಾಹಿತಿಯನ್ನು ಹೇಗೆ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಹಿಂಪಡೆಯಲಾಗುತ್ತದೆ ಎಂಬುದು ಸಾಂಪ್ರದಾಯಿಕ ಗುರುತಿನ ನಿರ್ವಹಣೆಗಿಂತ ಭಿನ್ನವಾಗಿದೆ. ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿನ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ದೃಢೀಕರಣಗಳನ್ನು ನೀಡುವ, ಸಂಗ್ರಹಿಸುವ ಮತ್ತು ಪರಿಶೀಲಿಸುವ ವಿವಿಧ ವಿಧಾನಗಳ ಅವಲೋಕನ ಇಲ್ಲಿದೆ: - -### ಆಫ್-ಚೈನ್ ದೃಢೀಕರಣಗಳು {#off-chain-attestations} - -ದೃಢೀಕರಣಗಳನ್ನು ಸರಪಳಿಯಲ್ಲಿ ಸಂಗ್ರಹಿಸುವ ಒಂದು ಕಾಳಜಿಯೆಂದರೆ ಅವು ವ್ಯಕ್ತಿಗಳು ಖಾಸಗಿಯಾಗಿಡಲು ಬಯಸುವ ಮಾಹಿತಿಯನ್ನು ಒಳಗೊಂಡಿರಬಹುದು. ಇಥಿರಿಯಮ್ ಬ್ಲಾಕ್‍ಚೈನ್‍ನ ಸಾರ್ವಜನಿಕ ಸ್ವರೂಪವು ಅಂತಹ ದೃಢೀಕರಣಗಳನ್ನು ಸಂಗ್ರಹಿಸಲು ಆಕರ್ಷಕವಲ್ಲ. - -ಡಿಜಿಟಲ್ ವ್ಯಾಲೆಟ‌ಗಳಲ್ಲಿ ಬಳಕೆದಾರರು ಆಫ್-ಚೈನ್ ಹೊಂದಿರುವ ಆದರೆ ವಿತರಕರ DID ಯೊಂದಿಗೆ ಸಹಿ ಮಾಡಿದ ದೃಢೀಕರಣಗಳನ್ನು ನೀಡುವುದು ಪರಿಹಾರವಾಗಿದೆ. ಈ ದೃಢೀಕರಣಗಳನ್ನು [JASON Web ಟೋಕನ್‍ಗಳಾಗಿ](https://en.wikipedia.org/wiki/JSON_Web_Token) ಎನ್‍ಕೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ ಮತ್ತು ವಿತರಕರ ಡಿಜಿಟಲ್ ಸಹಿಯನ್ನು ಹೊಂದಿರುತ್ತದೆ - ಇದು ಆಫ್-ಚೈನ್ ಕ್ಲೈಮ್‍ಗಳ ಸುಲಭ ಪರಿಶೀಲನೆಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. - -ಆಫ್-ಚೈನ್ ದೃಢೀಕರಣಗಳನ್ನು ವಿವರಿಸಲು ಒಂದು ಕಾಲ್ಪನಿಕ ಸನ್ನಿವೇಶ ಇಲ್ಲಿದೆ: - -1. ವಿಶ್ವವಿದ್ಯಾಲಯ (ವಿತರಕ) ದೃಢೀಕರಣವನ್ನು (ಡಿಜಿಟಲ್ ಶೈಕ್ಷಣಿಕ ಪ್ರಮಾಣಪತ್ರ) ರಚಿಸುತ್ತದೆ, ಅದರ ಕೀಗಳೊಂದಿಗೆ ಸಹಿ ಮಾಡುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಬಾಬ್ (ಗುರುತಿನ ಮಾಲೀಕ) ಗೆ ನೀಡುತ್ತದೆ. - -2. ಬಾಬ್ ಕೆಲಸಕ್ಕೆ ಅರ್ಜಿ ಸಲ್ಲಿಸುತ್ತಾನೆ ಮತ್ತು ತನ್ನ ಶೈಕ್ಷಣಿಕ ಅರ್ಹತೆಗಳನ್ನು ಉದ್ಯೋಗದಾತರಿಗೆ ಸಾಬೀತುಪಡಿಸಲು ಬಯಸುತ್ತಾನೆ, ಆದ್ದರಿಂದ ಅವನು ತನ್ನ ಮೊಬೈಲ್ ವ್ಯಾಲೆಟ್ ನಿಂದ ದೃಢೀಕರಣವನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತಾನೆ. ಕಂಪನಿಯು (ಪರಿಶೀಲಕ) ವಿತರಕರ DID (ಅಂದರೆ, ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ಅದರ ಸಾರ್ವಜನಿಕ ಕೀ) ಅನ್ನು ಪರಿಶೀಲಿಸುವ ಮೂಲಕ ದೃಢೀಕರಣದ ಸಿಂಧುತ್ವವನ್ನು ದೃಢೀಕರಿಸಬಹುದು. - -### ನಿರಂತರ ಪ್ರವೇಶದೊಂದಿಗೆ ಆಫ್-ಚೈನ್ ದೃಢೀಕರಣಗಳು {#offchain-attestations-with-persistent-access} - -ಈ ವ್ಯವಸ್ಥೆಯಡಿಯಲ್ಲಿ ದೃಢೀಕರಣಗಳನ್ನು JASON ಫೈಲ್‍ಗಳಾಗಿ ಪರಿವರ್ತಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಆಫ್-ಚೈನ್ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ (IPFS ಅಥವಾ ಸ್ವರ್ಮ್‍ನಂತಹ [ವಿಕೇಂದ್ರೀಕೃತ ಕ್ಲೌಡ್ ಸ್ಟೋರೇಜ್](/developers/docs/storage/) ಪ್ಲಾಟ್‍ಫಾರ್ಮ್‍ನಲ್ಲಿ). ಆದಾಗ್ಯೂ, JASON ಫೈಲ್‍ನ [ಹ್ಯಾಶ್](/glossary/#hash) ಅನ್ನು ಸರಪಳಿಯಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಆನ್-ಚೈನ್ ರಿಜಿಸ್ಟ್ರಿ ಮೂಲಕ DID ಗೆ ಲಿಂಕ್ ಮಾಡಲಾಗುತ್ತದೆ. ಸಂಬಂಧಿತ DID ದೃಢೀಕರಣದ ವಿತರಕ ಅಥವಾ ಸ್ವೀಕರಿಸುವವರಾಗಿರಬಹುದು. - -ಈ ವಿಧಾನವು ದೃಢೀಕರಣಗಳಿಗೆ ಬ್ಲಾಕ್‍ಚೈನ್ ಆಧಾರಿತ ಸ್ಥಿರತೆಯನ್ನು ಪಡೆಯಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ, ಅದೇ ಸಮಯದಲ್ಲಿ ಕ್ಲೈಮ್ ಮಾಹಿತಿಯನ್ನು ಎನ್ಕ್ರಿಪ್ಟ್ ಮತ್ತು ಪರಿಶೀಲಿಸಬಹುದು. ಖಾಸಗಿ ಕೀಯನ್ನು ಹೊಂದಿರುವವರು ಮಾಹಿತಿಯನ್ನು ಡಿಕ್ರಿಪ್ಟ್ ಮಾಡಬಹುದಾದ್ದರಿಂದ ಇದು ಆಯ್ದ ಬಹಿರಂಗಪಡಿಸುವಿಕೆಗೆ ಅನುಮತಿಸುತ್ತದೆ. - -### ಆನ್-ಚೈನ್ ದೃಢೀಕರಣಗಳು {#onchain-attestations} - -ಆನ್-ಚೈನ್ ದೃಢೀಕರಣಗಳನ್ನು ಇಥಿರಿಯಮ್ ಬ್ಲಾಕ್‍ಚೈನ್‍ನಲ್ಲಿ [ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳಲ್ಲಿ](/developers/docs/smart-contracts/) ನಡೆಸಲಾಗುತ್ತದೆ. ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ (ರಿಜಿಸ್ಟ್ರಿಯಂತೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ) ಅನುಗುಣವಾದ ಆನ್-ಚೈನ್ ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿಸುವಿಕೆಗೆ (ಸಾರ್ವಜನಿಕ ಕೀ) ದೃಢೀಕರಣವನ್ನು ನಕ್ಷೆ ಮಾಡುತ್ತದೆ. - -ಆನ್-ಚೈನ್ ದೃಢೀಕರಣಗಳು ಪ್ರಾಯೋಗಿಕವಾಗಿ ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸಬಹುದು ಎಂಬುದನ್ನು ತೋರಿಸಲು ಒಂದು ಉದಾಹರಣೆ ಇಲ್ಲಿದೆ: - -1. ಒಂದು ಕಂಪನಿ (XYZ Corp) ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಮಾಲೀಕತ್ವದ ಷೇರುಗಳನ್ನು ಮಾರಾಟ ಮಾಡಲು ಯೋಜಿಸಿದೆ ಆದರೆ ಹಿನ್ನೆಲೆ ಪರಿಶೀಲನೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಿದ ಖರೀದಿದಾರರನ್ನು ಮಾತ್ರ ಬಯಸುತ್ತದೆ. - -2. ಇಥಿರಿಯಮ್ ನಲ್ಲಿ ಆನ್-ಚೈನ್ ದೃಢೀಕರಣಗಳನ್ನು ನೀಡಲು XYZ ಕಾರ್ಪ್ ಕಂಪನಿಯು ಹಿನ್ನೆಲೆ ಪರಿಶೀಲನೆಗಳನ್ನು ನಡೆಸಬಹುದು. ಯಾವುದೇ ವೈಯಕ್ತಿಕ ಮಾಹಿತಿಯನ್ನು ಬಹಿರಂಗಪಡಿಸದೆ ವ್ಯಕ್ತಿಯು ಹಿನ್ನೆಲೆ ಪರಿಶೀಲನೆಯಲ್ಲಿ ಉತ್ತೀರ್ಣನಾಗಿದ್ದಾನೆ ಎಂದು ಈ ದೃಢೀಕರಣವು ಪ್ರಮಾಣೀಕರಿಸುತ್ತದೆ. - -3. ಷೇರುಗಳನ್ನು ಮಾರಾಟ ಮಾಡುವ ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಸ್ಕ್ರೀನಿಂಗ್ ಖರೀದಿದಾರರ ಗುರುತುಗಳಿಗಾಗಿ ರಿಜಿಸ್ಟ್ರಿ ಒಪ್ಪಂದವನ್ನು ಪರಿಶೀಲಿಸಬಹುದು, ಇದರಿಂದಾಗಿ ಷೇರುಗಳನ್ನು ಖರೀದಿಸಲು ಯಾರಿಗೆ ಅನುಮತಿ ಇದೆ ಅಥವಾ ಇಲ್ಲವೇ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಲು ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗೆ ಸಾಧ್ಯವಾಗುತ್ತದೆ. - -### ಆತ್ಮಬಂಧಿತ ಸಂಕೇತಗಳು ಮತ್ತು ಗುರುತು {#soulbound} - -ನಿರ್ದಿಷ್ಟ ವ್ಯಾಲೆಟ್‍ಗೆ ವಿಶಿಷ್ಟವಾದ ಮಾಹಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸಲು ಸೋಲ್ [ಬೌಂಡ್ ಟೋಕನ್](https://vitalik.ca/general/2022/01/26/soulbound.html) ಗಳನ್ನು (ವರ್ಗಾವಣೆ ಮಾಡಲಾಗದ NFTಗಳು) ಬಳಸಬಹುದು. ಇದು ಸಾಧನೆಗಳನ್ನು ಪ್ರತಿನಿಧಿಸುವ ಟೋಕನ್‍ಗಳನ್ನು (ಉದಾಹರಣೆಗೆ, ಕೆಲವು ನಿರ್ದಿಷ್ಟ ಆನ್‍ಲೈನ್ ಕೋರ್ಸ್ ಅನ್ನು ಪೂರ್ಣಗೊಳಿಸುವುದು ಅಥವಾ ಆಟದಲ್ಲಿ ಆರಂಭಿಕ ಸ್ಕೋರ್ ಅನ್ನು ಪಾಸ್ ಮಾಡುವುದು) ಅಥವಾ ಸಮುದಾಯದ ಭಾಗವಹಿಸುವಿಕೆಯನ್ನು ಒಳಗೊಂಡಿರುವ ನಿರ್ದಿಷ್ಟ ಇಥಿರಿಯಮ್ ವಿಳಾಸಕ್ಕೆ ಬದ್ಧವಾಗಿರುವ ವಿಶಿಷ್ಟ ಆನ್-ಚೈನ್ ಗುರುತನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಸೃಷ್ಟಿಸುತ್ತದೆ. - -## ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿನ ಪ್ರಯೋಜನಗಳು {#benefits-of-decentralized-identity} - -1. ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು ಮಾಹಿತಿಯನ್ನು ಗುರುತಿಸುವ ವೈಯಕ್ತಿಕ ನಿಯಂತ್ರಣವನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ. ಕೇಂದ್ರೀಕೃತ ಪ್ರಾಧಿಕಾರಗಳು ಮತ್ತು ಮೂರನೇ ಪಕ್ಷದ ಸೇವೆಗಳನ್ನು ಅವಲಂಬಿಸದೆ ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿಸುವಿಕೆಗಳು ಮತ್ತು ದೃಢೀಕರಣಗಳನ್ನು ಪರಿಶೀಲಿಸಬಹುದು. - -2. ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿನ ಪರಿಹಾರಗಳು ಬಳಕೆದಾರರ ಗುರುತನ್ನು ಪರಿಶೀಲಿಸಲು ಮತ್ತು ನಿರ್ವಹಿಸಲು ವಿಶ್ವಾಸಾರ್ಹ, ತಡೆರಹಿತ ಮತ್ತು ಗೌಪ್ಯತೆ-ರಕ್ಷಿಸುವ ವಿಧಾನವನ್ನು ಸುಗಮಗೊಳಿಸುತ್ತವೆ. - -3. ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು ಬ್ಲಾಕ್ಚೈನ್ ತಂತ್ರಜ್ಞಾನವನ್ನು ಬಳಸಿಕೊಳ್ಳುತ್ತದೆ, ಇದು ವಿವಿಧ ಪಕ್ಷಗಳ ನಡುವೆ ವಿಶ್ವಾಸವನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ ಮತ್ತು ದೃಢೀಕರಣಗಳ ಸಿಂಧುತ್ವವನ್ನು ಸಾಬೀತುಪಡಿಸಲು ಕ್ರಿಪ್ಟೋಗ್ರಾಫಿಕ್ ಖಾತರಿಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ. - -4. ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು ಗುರುತಿನ ಡೇಟಾವನ್ನು ಪೋರ್ಟಬಲ್ ಮಾಡುತ್ತದೆ. ಬಳಕೆದಾರರು ದೃಢೀಕರಣಗಳು ಮತ್ತು ಗುರುತಿಸುವಿಕೆಗಳನ್ನು ಮೊಬೈಲ್ ವ್ಯಾಲೆಟ್‍ನಲ್ಲಿ ಸಂಗ್ರಹಿಸುತ್ತಾರೆ ಮತ್ತು ಅವರ ಆಯ್ಕೆಯ ಯಾವುದೇ ಪಕ್ಷದೊಂದಿಗೆ ಹಂಚಿಕೊಳ್ಳಬಹುದು. ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿಸುವಿಕೆಗಳು ಮತ್ತು ದೃಢೀಕರಣಗಳನ್ನು ನೀಡುವ ಸಂಸ್ಥೆಯ ಡೇಟಾಬೇಸ್‍ನಲ್ಲಿ ಲಾಕ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ. - -5. ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು ಉದಯೋನ್ಮುಖ ಶೂನ್ಯ-ಜ್ಞಾನ ತಂತ್ರಜ್ಞಾನಗಳೊಂದಿಗೆ ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸಬೇಕು, ಅದು ವ್ಯಕ್ತಿಗಳು ಆ ವಿಷಯ ಏನೆಂದು ಬಹಿರಂಗಪಡಿಸದೆ ತಮ್ಮ ಸ್ವಂತ ಅಥವಾ ಏನನ್ನಾದರೂ ಮಾಡಿದ್ದಾರೆ ಎಂದು ಸಾಬೀತುಪಡಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಮತದಾನದಂತಹ ಅಪ್ಲಿಕೇಶನ್‍ಗಳಿಗೆ ವಿಶ್ವಾಸ ಮತ್ತು ಗೌಪ್ಯತೆಯನ್ನು ಸಂಯೋಜಿಸಲು ಇದು ಪ್ರಬಲ ಮಾರ್ಗವಾಗಬಹುದು. - -6. ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು anti-Sybil ಸಿಬಿಲ್ ವಿರೋಧಿ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಒಬ್ಬ ವ್ಯಕ್ತಿಯು ಕೆಲವು ವ್ಯವಸ್ಥೆಯನ್ನು ಆಡಲು ಅಥವಾ ಸ್ಪ್ಯಾಮ್ ಮಾಡಲು ಅನೇಕ ಮಾನವರಂತೆ ನಟಿಸುತ್ತಿರುವಾಗ ಗುರುತಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. - -## ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿನ ಬಳಕೆ-ಪ್ರಕರಣಗಳು {#decentralized-identity-use-cases} - -ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು ಅನೇಕ ಸಂಭಾವ್ಯ ಬಳಕೆ-ಪ್ರಕರಣಗಳನ್ನು ಹೊಂದಿದೆ: - -### 1. ಸಾರ್ವತ್ರಿಕ ಲಾಗಿನ್‍ಗಳು {#universal-dapp-logins} - -ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು ಪಾಸ್‍ವರ್ಡ್ ಆಧಾರಿತ ಲಾಗಿನ್‍ಗಳನ್ನು [ವಿಕೇಂದ್ರೀಕೃತ ದೃಢೀಕರಣದೊಂದಿಗೆ](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/) ಬದಲಾಯಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಸೇವಾ ಪೂರೈಕೆದಾರರು ಬಳಕೆದಾರರಿಗೆ ದೃಢೀಕರಣಗಳನ್ನು ನೀಡಬಹುದು, ಇದನ್ನು ಇಥಿರಿಯಮ್ ವ್ಯಾಲೆಟ್‍ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಬಹುದು. ಆನ್‍ಲೈನ್ ಸಮುದಾಯಕ್ಕೆ ಹೋಲ್ಡರ್ ಗೆ ಪ್ರವೇಶವನ್ನು ನೀಡುವ [NFT](/nft/) ಒಂದು ಉದಾಹರಣೆ ದೃಢೀಕರಣವಾಗಿದೆ. - -[ಇಥಿರಿಯಮ್ ಕಾರ್ಯದೊಂದಿಗೆ ಸೈನ್-ಇನ್](https://login.xyz/) ನಂತರ ಬಳಕೆದಾರರ ಇಥಿರಿಯಮ್ ಖಾತೆಯನ್ನು ದೃಢೀಕರಿಸಲು ಮತ್ತು ಅವರ ಖಾತೆ ವಿಳಾಸದಿಂದ ಅಗತ್ಯ ದೃಢೀಕರಣವನ್ನು ಪಡೆಯಲು ಸರ್ವರ್ಗಳಿಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಇದರರ್ಥ ಬಳಕೆದಾರರು ದೀರ್ಘ ಪಾಸ್‍ವರ್ಡ್‍ಗಳನ್ನು ನೆನಪಿಟ್ಟುಕೊಳ್ಳದೆ ಪ್ಲಾಟ್ಫಾರ್ಮ್‍ಗಳು ಮತ್ತು ವೆಬ್‍ಸೈಟ್‍ಗಳನ್ನು ಪ್ರವೇಶಿಸಬಹುದು ಮತ್ತು ಬಳಕೆದಾರರಿಗೆ ಆನ್‍ಲೈನ್ ಅನುಭವವನ್ನು ಸುಧಾರಿಸುತ್ತದೆ. - -### 2. KYC ದೃಢೀಕರಣ {#kyc-authentication} - -ಅನೇಕ ಆನ್‍ಲೈನ್ ಸೇವೆಗಳನ್ನು ಬಳಸಲು ವ್ಯಕ್ತಿಗಳು ಚಾಲನಾ ಪರವಾನಗಿ ಅಥವಾ ರಾಷ್ಟ್ರೀಯ ಪಾಸ್ ಪೋರ್ಟ್‍ನಂತಹ ದೃಢೀಕರಣಗಳು ಮತ್ತು ರುಜುವಾತುಗಳನ್ನು ಒದಗಿಸಬೇಕಾಗುತ್ತದೆ. ಆದರೆ ಈ ವಿಧಾನವು ಸಮಸ್ಯಾತ್ಮಕವಾಗಿದೆ ಏಕೆಂದರೆ ಖಾಸಗಿ ಬಳಕೆದಾರರ ಮಾಹಿತಿಯು ರಾಜಿಯಾಗಬಹುದು ಮತ್ತು ಸೇವಾ ಪೂರೈಕೆದಾರರು ದೃಢೀಕರಣದ ಸತ್ಯಾಸತ್ಯತೆಯನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. - -ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು ಕಂಪನಿಗಳಿಗೆ ಸಾಂಪ್ರದಾಯಿಕ [ನೋ-ಯುವರ್-ಕಸ್ಟಮರ್ (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಬಿಟ್ಟುಬಿಡಲು ಮತ್ತು ಪರಿಶೀಲಿಸಬಹುದಾದ ರುಜುವಾತುಗಳ ಮೂಲಕ ಬಳಕೆದಾರರ ಗುರುತುಗಳನ್ನು ದೃಢೀಕರಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಇದು ಗುರುತಿನ ನಿರ್ವಹಣೆಯ ವೆಚ್ಚವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ನಕಲಿ ದಾಖಲೆಗಳ ಬಳಕೆಯನ್ನು ತಡೆಯುತ್ತದೆ. - -### 3. ಮತದಾನ ಮತ್ತು ಆನ್‍ಲೈನ್ ಸಮುದಾಯಗಳು {#voting-and-online-communities} - -ಆನ್‍ಲೈನ್ ಮತದಾನ ಮತ್ತು ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮಗಳು ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿನ ಎರಡು ಹೊಸ ಅಪ್ಲಿಕೇಶನ್‍ಗಳಾಗಿವೆ. ಆನ್‍ಲೈನ್ ಮತದಾನ ಯೋಜನೆಗಳು ಕುಶಲತೆಗೆ ಒಳಗಾಗುತ್ತವೆ, ವಿಶೇಷವಾಗಿ ದುರುದ್ದೇಶಪೂರಿತ ನಟರು ಮತ ಚಲಾಯಿಸಲು ಸುಳ್ಳು ಗುರುತುಗಳನ್ನು ರಚಿಸಿದರೆ. ಆನ್-ಚೈನ್ ದೃಢೀಕರಣಗಳನ್ನು ಪ್ರಸ್ತುತಪಡಿಸಲು ವ್ಯಕ್ತಿಗಳನ್ನು ಕೇಳುವುದರಿಂದ ಆನ‌ಲೈನ್ ಮತದಾನ ಪ್ರಕ್ರಿಯೆಗಳ ಸಮಗ್ರತೆಯನ್ನು ಸುಧಾರಿಸಬಹುದು. - -ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು ನಕಲಿ ಖಾತೆಗಳಿಂದ ಮುಕ್ತವಾದ ಆನ್‍ಲೈನ್ ಸಮುದಾಯಗಳನ್ನು ರಚಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಪ್ರತಿಯೊಬ್ಬ ಬಳಕೆದಾರರು ಇಥಿರಿಯಮ್ ನೇಮ್ ಸರ್ವೀಸ್‍ನಂತಹ ಆನ್-ಚೈನ್ ಗುರುತಿನ ವ್ಯವಸ್ಥೆಯನ್ನು ಬಳಸಿಕೊಂಡು ತಮ್ಮ ಗುರುತನ್ನು ದೃಢೀಕರಿಸಬೇಕಾಗಬಹುದು, ಇದು ಬಾಟ್‍ಗಳ ಸಾಧ್ಯತೆಯನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ. - -### 4. ಸಿಬಿಲ್ ವಿರೋಧಿ ರಕ್ಷಣೆ {#sybil-protection} - -ಸಿಬಿಲ್ ದಾಳಿಗಳು ವೈಯಕ್ತಿಕ ಮಾನವರು ತಮ್ಮ ಪ್ರಭಾವವನ್ನು ಹೆಚ್ಚಿಸಲು ತಾವು ಅನೇಕ ಜನರು ಎಂದು ಭಾವಿಸಿ ವ್ಯವಸ್ಥೆಯನ್ನು ಮೋಸಗೊಳಿಸುವುದನ್ನು ಸೂಚಿಸುತ್ತದೆ. [ಕ್ವಾಡ್ರಾಟಿಕ್ ಮತದಾನವನ್ನು](https://www.radicalxchange.org/concepts/plural-voting/) ಬಳಸುವ [ಅನುದಾನ-ನೀಡುವ ಅಪ್ಲಿಕೇಶನ್ಗಳು](https://gitcoin.co/grants/) ಈ ಸಿಬಿಲ್ ದಾಳಿಗೆ ಗುರಿಯಾಗುತ್ತವೆ ಏಕೆಂದರೆ ಹೆಚ್ಚಿನ ವ್ಯಕ್ತಿಗಳು ಅದಕ್ಕೆ ಮತ ಚಲಾಯಿಸಿದಾಗ ಅನುದಾನದ ಮೌಲ್ಯವು ಹೆಚ್ಚಾಗುತ್ತದೆ, ಬಳಕೆದಾರರು ತಮ್ಮ ಕೊಡುಗೆಗಳನ್ನು ಅನೇಕ ಗುರುತುಗಳಲ್ಲಿ ವಿಭಜಿಸಲು ಪ್ರೋತ್ಸಾಹಿಸುತ್ತದೆ. ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತುಗಳು ನಿರ್ದಿಷ್ಟ ಖಾಸಗಿ ಮಾಹಿತಿಯನ್ನು ಬಹಿರಂಗಪಡಿಸದೆಯೇ ಅವರು ನಿಜವಾಗಿಯೂ ಮಾನವರು ಎಂದು ಸಾಬೀತುಪಡಿಸಲು ಪ್ರತಿಯೊಬ್ಬ ಸ್ಪರ್ಧಿಯ ಮೇಲೆ ಹೊರೆಯನ್ನು ಹೆಚ್ಚಿಸುವ ಮೂಲಕ ಇದನ್ನು ತಡೆಗಟ್ಟಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. - -## ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತನ್ನು ಬಳಸಿ {#use-decentralized-identity} - -ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿನ ಪರಿಹಾರಗಳಿಗೆ ಅಡಿಪಾಯವಾಗಿ ಇಥಿರಿಯಮ್ ಅನ್ನು ಬಳಸುವ ಅನೇಕ ಮಹತ್ವಾಕಾಂಕ್ಷೆಯ ಯೋಜನೆಗಳಿವೆ: - -- **[ಇಥಿರಿಯಮ್ ನೇಮ್ ಸರ್ವಿಸ್ (ENS)](https://ens.domains/)** - _ಇಥಿರಿಯಮ್ ವ್ಯಾಲೆಟ್ ವಿಳಾಸಗಳು, ವಿಷಯ ಹ್ಯಾಶ್‍ಗಳು ಮತ್ತು ಮೆಟಾಡೇಟಾದಂತಹ ಆನ್-ಚೈನ್, ಯಂತ್ರ-ಓದಬಹುದಾದ ಗುರುತಿಸುವಿಕೆಗಳಿಗೆ ವಿಕೇಂದ್ರೀಕೃತ ನಾಮಕರಣ ವ್ಯವಸ್ಥೆ_ -- **[SpruceID](https://www.spruceid.com/)** - _ಮೂರನೇ ಪಕ್ಷದ ಸೇವೆಗಳನ್ನು ಅವಲಂಬಿಸುವ ಬದಲು ಇಥಿರಿಯಮ್ ಖಾತೆಗಳು ಮತ್ತು ENS ಪ್ರೊಫೈಲ್‍ಗಳೊಂದಿಗೆ ಡಿಜಿಟಲ್ ಗುರುತನ್ನು ನಿಯಂತ್ರಿಸಲು ಬಳಕೆದಾರರಿಗೆ ಅನುವು ಮಾಡಿಕೊಡುವ ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿನ ಯೋಜನೆ._ -- **[ಇಥಿರಿಯಮ್ ದೃಢೀಕರಣ ಸೇವೆ (ENS)](https://attest.sh/)** - _ ಯಾವುದೇ ವಿಷಯದ ಬಗ್ಗೆ ಆನ್-ಚೈನ್ ಅಥವಾ ಆಫ್-ಚೈನ್ ದೃಢೀಕರಣಗಳನ್ನು ಮಾಡಲು ವಿಕೇಂದ್ರೀಕೃತ ಲೆಡ್ಜರ್ / ಪ್ರೋಟೋಕಾಲ್._ -- **[ಮಾನವೀಯತೆಯ ಪುರಾವೆ](https://www.proofofhumanity.id)** - _ಮಾನವೀಯತೆಯ ಪುರಾವೆ (ಅಥವಾ PoH) ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ನಿರ್ಮಿಸಲಾದ ಸಾಮಾಜಿಕ ಗುರುತಿನ ಪರಿಶೀಲನಾ ವ್ಯವಸ್ಥೆಯಾಗಿದೆ._ -- **[BrightID](https://www.brightid.org/)** - _ಸಾಮಾಜಿಕ ಗ್ರಾಫ್‍ನ ರಚನೆ ಮತ್ತು ವಿಶ್ಲೇಷಣೆಯ ಮೂಲಕ ಗುರುತಿನ ಪರಿಶೀಲನೆಯನ್ನು ಸುಧಾರಿಸಲು ಪ್ರಯತ್ನಿಸುವ ವಿಕೇಂದ್ರೀಕೃತ, ಮುಕ್ತ-ಮೂಲ ಸಾಮಾಜಿಕ ಗುರುತಿನ ನೆಟ್‍ವರ್ಕ್._ -- **[ಪ್ರೂಫ್-ಆಫ್-ಪರ್ಸನಾಲಿಟಿ ಪಾಸ್‍ಪೋರ್ಟ್](https://proofofpersonhood.com/)** - _ವಿಕೇಂದ್ರೀಕೃತ ಡಿಜಿಟಲ್ ಗುರುತಿನ ಅಗ್ರಿಗೇಟರ್._ - -## Further reading {#further-reading} - -### ಲೇಖನಗಳು {#articles} - -- [ಬ್ಲಾಕ್‍ಚೈನ್ ಬಳಕೆಯ ಪ್ರಕರಣಗಳು: ಡಿಜಿಟಲ್ ಗುರುತಿನಲ್ಲಿ ಬ್ಲಾಕ್‍ಚೈನ್](https://consensys.net/blockchain-use-cases/digital-identity/)— _ConsenSys_ -- [ಏನಿದು ಇಥಿರಿಯಮ್ ERC725? ಬ್ಲಾಕ್‍ಚೈನ್‍ನಲ್ಲಿ ಸ್ವಯಂ-ಸಾರ್ವಭೌಮ ಗುರುತಿನ ನಿರ್ವಹಣೆ](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) - _ಸ್ಯಾಮ್ ಟೌನ್_ -- [ಡಿಜಿಟಲ್ ಗುರುತಿನ ಸಮಸ್ಯೆಯನ್ನು ಬ್ಲಾಕ್‍ಚೈನ್ ಹೇಗೆ ಪರಿಹರಿಸಬಹುದು](https://time.com/6142810/proof-of-humanity/) - _ಆಂಡ್ರ್ಯೂ ಆರ್_ -- [ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು ಎಂದರೇನು ಮತ್ತು ನೀವು ಏಕೆ ಕಾಳಜಿ ವಹಿಸಬೇಕು?](https://web3.hashnode.com/what-is-decentralized-identity) - _ಎಮ್ಯಾನುಯೆಲ್ ಅವೊಸಿಕಾ_ - -### Videos {#videos} - -- [ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು (ಬೋನಸ್ ಲೈವ್ ಸ್ಟ್ರೀಮ್ ಸೆಷನ್)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) - _ಆಂಡ್ರಿಯಾಸ್ ಆಂಟೊನೊಪೊಲಸ್ ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿನ ಬಗ್ಗೆ ಉತ್ತಮ ವಿವರಿಸುವ ವೀಡಿಯೊ_ -- [Ceramic, IDX, React, ಮತ್ತು 3ID ಕನೆಕ್ಟ್ ನೊಂದಿಗೆ ಇಥಿರಿಯಮ್ ಮತ್ತು ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿನೊಂದಿಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ](https://www.youtube.com/watch?v=t9gWZYJxk7c) - _ನಾಡರ್ ಡಾಬಿಟ್ ಅವರ ಎಥೆರಿಯಮ್ ವ್ಯಾಲೆಟ್ ಬಳಸಿ ಬಳಕೆದಾರರ ಪ್ರೊಫೈಲ್ ಅನ್ನು ರಚಿಸಲು, ಓದಲು ಮತ್ತು ನವೀಕರಿಸಲು ಗುರುತಿನ ನಿರ್ವಹಣಾ ವ್ಯವಸ್ಥೆಯನ್ನು ನಿರ್ಮಿಸುವ ಬಗ್ಗೆ ಯೂಟ್ಯೂಬ್ ಟ್ಯುಟೋರಿಯಲ್_ -- [BrightID - ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು](https://www.youtube.com/watch?v=D3DbMFYGRoM) - _ಇಥಿರಿಯಮ್‍ಗೆ ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿನ ಪರಿಹಾರವಾದ BrightID ಅನ್ನು ಚರ್ಚಿಸುವ ಬ್ಯಾಂಕ್ ಲೆಸ್ ಪಾಡ್ ಕಾಸ್ಟ್ ಸಂಚಿಕೆ_ -- [ಆಫ್ ಚೈನ್ ಇಂಟರ್ನೆಟ್: ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತು&; ಪರಿಶೀಲಿಸಬಹುದಾದ ರುಜುವಾತುಗಳು](https://www.youtube.com/watch?v=EZ_Bb6j87mg)— Evin McMullen ಅವರ EthDenver 2022 2022 ಪ್ರಸ್ತುತಿ - -### ಸಮುದಾಯಗಳು {#communities} - -- [GitHub ನಲ್ಲಿ ERC-725 ಮೈತ್ರಿ](https://github.com/erc725alliance) - _ ಇಥಿರಿಯಮ್ ಬ್ಲಾಕ್‍ಚೈನ್‍ನಲ್ಲಿ ಗುರುತನ್ನು ನಿರ್ವಹಿಸಲು ERC725 ಮಾನದಂಡದ ಬೆಂಬಲಿಗರು_ -- [SpruceID Discord ಸರ್ವರ್](https://discord.com/invite/Sf9tSFzrnt) - _ಇಥಿರಿಯಮ್ ನೊಂದಿಗೆ ಸೈನ್-ಇನ್ ನಲ್ಲಿ ಕೆಲಸ ಮಾಡುವ ಉತ್ಸಾಹಿಗಳು ಮತ್ತು ಡೆವಲಪರ್ ಗಳಿಗೆ ಸಮುದಾಯ_ -- [ವೆರಾಮೊ ಲ್ಯಾಬ್ಸ್](https://discord.gg/sYBUXpACh4) - _ಅಪ್ಲಿಕೇಶನ್‍ಗಳಿಗಾಗಿ ಪರಿಶೀಲಿಸಬಹುದಾದ ಡೇಟಾಕ್ಕಾಗಿ ಚೌಕಟ್ಟನ್ನು ನಿರ್ಮಿಸಲು ಕೊಡುಗೆ ನೀಡುವ ಡೆವಲಪರ್ ಗಳ ಸಮುದಾಯ_ diff --git a/src/content/translations/kn/defi/index.md b/src/content/translations/kn/defi/index.md deleted file mode 100644 index f992c7382e0..00000000000 --- a/src/content/translations/kn/defi/index.md +++ /dev/null @@ -1,351 +0,0 @@ ---- -title: ವಿಕೇಂದ್ರೀಕರಿತ ಹಣಕಾಸು (DeFi) -description: ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ DeFi ಯ ಅವಲೋಕನ -lang: kn -template: use-cases -emoji: ":money_with_wings:" -image: ../../../../assets/use-cases/defi.png -alt: ಲೆಗೊ ಇಟ್ಟಿಗೆಗಳಿಂದ ಮಾಡಿದ Eth ಲೋಗೋ. -sidebarDepth: 2 -summaryPoint1: ಪ್ರಸ್ತುತ ಹಣಕಾಸು ವ್ಯವಸ್ಥೆಗೆ ಜಾಗತಿಕ, ಮುಕ್ತ ಪರ್ಯಾಯ. -summaryPoint2: ಸಾಲ ಪಡೆಯಲು, ಉಳಿಸಲು, ಹೂಡಿಕೆ ಮಾಡಲು, ವ್ಯಾಪಾರ ಮಾಡಲು ಮತ್ತು ಹೆಚ್ಚಿನದನ್ನು ನಿಮಗೆ ಅನುಮತಿಸುವ ಉತ್ಪನ್ನಗಳು. -summaryPoint3: ಯಾರು ಬೇಕಾದರೂ ಪ್ರೋಗ್ರಾಂ ಮಾಡಬಹುದಾದ ಓಪನ್ ಸೋರ್ಸ್ ತಂತ್ರಜ್ಞಾನದ ಆಧಾರದ ಮೇಲೆ. ---- - -DeFi ಎಂಬುದು ಇಂಟರ್ನೆಟ್ ಯುಗಕ್ಕಾಗಿ ನಿರ್ಮಿಸಲಾದ ಮುಕ್ತ ಮತ್ತು ಜಾಗತಿಕ ಹಣಕಾಸು ವ್ಯವಸ್ಥೆಯಾಗಿದೆ - ಅಪಾರದರ್ಶಕ, ಬಿಗಿಯಾಗಿ ನಿಯಂತ್ರಿಸಲ್ಪಟ್ಟ ಮತ್ತು ದಶಕಗಳಷ್ಟು ಹಳೆಯ ಮೂಲಸೌಕರ್ಯ ಮತ್ತು ಪ್ರಕ್ರಿಯೆಗಳಿಂದ ಒಟ್ಟಿಗೆ ಹಿಡಿದಿಡಲ್ಪಟ್ಟ ವ್ಯವಸ್ಥೆಗೆ ಪರ್ಯಾಯವಾಗಿದೆ. ಇದು ನಿಮ್ಮ ಹಣದ ಮೇಲೆ ನಿಯಂತ್ರಣ ಮತ್ತು ಗೋಚರತೆಯನ್ನು ನೀಡುತ್ತದೆ. ಇದು ಜಾಗತಿಕ ಮಾರುಕಟ್ಟೆಗಳಿಗೆ ಮತ್ತು ನಿಮ್ಮ ಸ್ಥಳೀಯ ಕರೆನ್ಸಿ ಅಥವಾ ಬ್ಯಾಂಕಿಂಗ್ ಆಯ್ಕೆಗಳಿಗೆ ಪರ್ಯಾಯಗಳಿಗೆ ನಿಮಗೆ ಮಾನ್ಯತೆ ನೀಡುತ್ತದೆ. DeFi ಉತ್ಪನ್ನಗಳು ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕ ಹೊಂದಿರುವ ಯಾರಿಗಾದರೂ ಹಣಕಾಸು ಸೇವೆಗಳನ್ನು ತೆರೆಯುತ್ತವೆ ಮತ್ತು ಅವು ಹೆಚ್ಚಾಗಿ ತಮ್ಮ ಬಳಕೆದಾರರ ಒಡೆತನದಲ್ಲಿದೆ ಮತ್ತು ನಿರ್ವಹಿಸಲ್ಪಡುತ್ತವೆ. ಇಲ್ಲಿಯವರೆಗೆ ಹತ್ತಾರು ಶತಕೋಟಿ ಡಾಲರ್ ಮೌಲ್ಯದ ಕ್ರಿಪ್ಟೋ DeFi ಅಪ್ಲಿಕೇಶನ್‍ಗಳ ಮೂಲಕ ಹರಿದಿದೆ ಮತ್ತು ಅದು ಪ್ರತಿದಿನ ಬೆಳೆಯುತ್ತಿದೆ. - -## DeFi ಎಂದರೇನು? {#what-is-defi} - -DeFi ಎಂಬುದು ಹಣಕಾಸು ಉತ್ಪನ್ನಗಳು ಮತ್ತು ಸೇವೆಗಳ ಸಾಮೂಹಿಕ ಪದವಾಗಿದ್ದು, ಇಥಿರಿಯಮ್ ಅನ್ನು ಬಳಸಬಹುದಾದ ಯಾರಿಗಾದರೂ ಪ್ರವೇಶಿಸಬಹುದು - ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕ ಹೊಂದಿರುವ ಯಾರಿಗಾದರೂ. DeFi ನೊಂದಿಗೆ, ಮಾರುಕಟ್ಟೆಗಳು ಯಾವಾಗಲೂ ತೆರೆದಿರುತ್ತವೆ ಮತ್ತು ಪಾವತಿಗಳನ್ನು ನಿರ್ಬಂಧಿಸುವ ಅಥವಾ ನಿಮಗೆ ಯಾವುದಕ್ಕೂ ಪ್ರವೇಶವನ್ನು ನಿರಾಕರಿಸುವ ಯಾವುದೇ ಕೇಂದ್ರೀಕೃತ ಪ್ರಾಧಿಕಾರಗಳಿಲ್ಲ. ಈ ಹಿಂದೆ ನಿಧಾನವಾಗಿದ್ದ ಮತ್ತು ಮಾನವ ದೋಷದ ಅಪಾಯದಲ್ಲಿದ್ದ ಸೇವೆಗಳು ಈಗ ಸ್ವಯಂಚಾಲಿತ ಮತ್ತು ಸುರಕ್ಷಿತವಾಗಿವೆ, ಏಕೆಂದರೆ ಅವುಗಳನ್ನು ಯಾರಾದರೂ ಪರಿಶೀಲಿಸಬಹುದು ಮತ್ತು ಪರಿಶೀಲಿಸಬಹುದು. - -ಅಲ್ಲಿ ಪ್ರವರ್ಧಮಾನಕ್ಕೆ ಬರುತ್ತಿರುವ ಕ್ರಿಪ್ಟೋ ಆರ್ಥಿಕತೆ ಇದೆ, ಅಲ್ಲಿ ನೀವು ಸಾಲ ನೀಡಬಹುದು, ಸಾಲ ಪಡೆಯಬಹುದು, Long / short, ಬಡ್ಡಿಯನ್ನು ಗಳಿಸಬಹುದು ಮತ್ತು ಹೆಚ್ಚಿನದನ್ನು ಮಾಡಬಹುದು. ಕ್ರಿಪ್ಟೋ-ಬುದ್ಧಿವಂತ ಅರ್ಜೆಂಟೀನಾದವರು ಹಣದುಬ್ಬರದಿಂದ ಪಾರಾಗಲು DeFi ಅನ್ನು ಬಳಸಿದ್ದಾರೆ. ಕಂಪನಿಗಳು ತಮ್ಮ ಉದ್ಯೋಗಿಗಳಿಗೆ ತಮ್ಮ ವೇತನವನ್ನು ನೈಜ ಸಮಯದಲ್ಲಿ ಸ್ಟ್ರೀಮ್ ಮಾಡಲು ಪ್ರಾರಂಭಿಸಿವೆ. ಕೆಲವು ಜನರು ಯಾವುದೇ ವೈಯಕ್ತಿಕ ಗುರುತಿನ ಅಗತ್ಯವಿಲ್ಲದೆ ಲಕ್ಷಾಂತರ ಡಾಲರ್ ಸಾಲವನ್ನು ತೆಗೆದುಕೊಂಡು ಪಾವತಿಸಿದ್ದಾರೆ. - - - -## DeFi Vs ಸಾಂಪ್ರದಾಯಿಕ ಹಣಕಾಸು {#defi-vs-tradfi} - -DeFi ನ ಸಾಮರ್ಥ್ಯವನ್ನು ನೋಡುವ ಅತ್ಯುತ್ತಮ ಮಾರ್ಗವೆಂದರೆ ಇಂದು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಸಮಸ್ಯೆಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು. - -- ಕೆಲವು ಜನರಿಗೆ ಬ್ಯಾಂಕ್ ಖಾತೆಯನ್ನು ಸ್ಥಾಪಿಸಲು ಅಥವಾ ಹಣಕಾಸು ಸೇವೆಗಳನ್ನು ಬಳಸಲು ಪ್ರವೇಶವನ್ನು ನೀಡಲಾಗುವುದಿಲ್ಲ. -- ಹಣಕಾಸು ಸೇವೆಗಳ ಲಭ್ಯತೆಯ ಕೊರತೆಯು ಜನರನ್ನು ಉದ್ಯೋಗದಿಂದ ದೂರವಿರಿಸುತ್ತದೆ. -- ಹಣಕಾಸು ಸೇವೆಗಳು ನಿಮಗೆ ಹಣ ಪಡೆಯುವುದನ್ನು ತಡೆಯಬಹುದು. -- ಹಣಕಾಸು ಸೇವೆಗಳ ಗುಪ್ತ ಶುಲ್ಕವೆಂದರೆ ನಿಮ್ಮ ವೈಯಕ್ತಿಕ ಡೇಟಾ. -- ಸರ್ಕಾರಗಳು ಮತ್ತು ಕೇಂದ್ರೀಕೃತ ಸಂಸ್ಥೆಗಳು ಇಚ್ಛಾನುಸಾರ ಮಾರುಕಟ್ಟೆಗಳನ್ನು ಮುಚ್ಚಬಹುದು. -- ವ್ಯಾಪಾರದ ಸಮಯವು ಸಾಮಾನ್ಯವಾಗಿ ನಿರ್ದಿಷ್ಟ ಸಮಯ ವಲಯದ ವ್ಯವಹಾರ ಸಮಯಕ್ಕೆ ಸೀಮಿತವಾಗಿರುತ್ತದೆ. -- ಆಂತರಿಕ ಮಾನವ ಪ್ರಕ್ರಿಯೆಗಳಿಂದಾಗಿ ಹಣ ವರ್ಗಾವಣೆಗೆ ದಿನಗಳು ತೆಗೆದುಕೊಳ್ಳಬಹುದು. -- ಹಣಕಾಸು ಸೇವೆಗಳಿಗೆ ಪ್ರೀಮಿಯಂ ಇದೆ ಏಕೆಂದರೆ ಮಧ್ಯವರ್ತಿ ಸಂಸ್ಥೆಗಳಿಗೆ ಅವುಗಳ ಕಡಿತದ ಅಗತ್ಯವಿದೆ. - -### ಒಂದು ಹೋಲಿಕೆ {#defi-comparison} - -| DeFi | ಸಾಂಪ್ರದಾಯಿಕ ಹಣಕಾಸು | -| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | -| ನೀವು ನಿಮ್ಮ ಹಣವನ್ನು ಹಿಡಿದಿದ್ದೀರಿ. | ನಿಮ್ಮ ಹಣವನ್ನು ಕಂಪನಿಗಳು ಹೊಂದಿವೆ. | -| ನಿಮ್ಮ ಹಣ ಎಲ್ಲಿಗೆ ಹೋಗುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಹೇಗೆ ಖರ್ಚು ಮಾಡಲಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ನೀವು ನಿಯಂತ್ರಿಸುತ್ತೀರಿ. | ಅಪಾಯಕಾರಿ ಸಾಲಗಾರರಿಗೆ ಸಾಲ ನೀಡುವಂತಹ ನಿಮ್ಮ ಹಣವನ್ನು ದುರುಪಯೋಗಪಡಿಸಿಕೊಳ್ಳದಂತೆ ನೀವು ಕಂಪನಿಗಳನ್ನು ನಂಬಬೇಕು. | -| ಹಣದ ವರ್ಗಾವಣೆ ನಿಮಿಷಗಳಲ್ಲಿ ನಡೆಯುತ್ತದೆ. | ಹಸ್ತಚಾಲಿತ ಪ್ರಕ್ರಿಯೆಗಳಿಂದಾಗಿ ಪಾವತಿಗಳು ದಿನಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು. | -| ವಹಿವಾಟು ಚಟುವಟಿಕೆಯು ಗುಪ್ತನಾಮವಾಗಿದೆ. | ಹಣಕಾಸಿನ ಚಟುವಟಿಕೆಯು ನಿಮ್ಮ ಗುರುತಿನೊಂದಿಗೆ ಬಿಗಿಯಾಗಿ ಜೋಡಿಸಲ್ಪಟ್ಟಿದೆ. | -| DeFi ಯಾರಿಗಾದರೂ ಮುಕ್ತವಾಗಿದೆ. | ಹಣಕಾಸು ಸೇವೆಗಳನ್ನು ಬಳಸಲು ನೀವು ಅರ್ಜಿ ಸಲ್ಲಿಸಬೇಕು. | -| ಮಾರುಕಟ್ಟೆಗಳು ಯಾವಾಗಲೂ ತೆರೆದಿರುತ್ತವೆ. | ಉದ್ಯೋಗಿಗಳಿಗೆ ವಿರಾಮ ಬೇಕಾಗಿರುವುದರಿಂದ ಮಾರುಕಟ್ಟೆಗಳು ಮುಚ್ಚಲ್ಪಡುತ್ತವೆ. | -| ಇದು ಪಾರದರ್ಶಕತೆಯ ಮೇಲೆ ನಿರ್ಮಿಸಲಾಗಿದೆ - ಯಾರಾದರೂ ಉತ್ಪನ್ನದ ಡೇಟಾವನ್ನು ನೋಡಬಹುದು ಮತ್ತು ಸಿಸ್ಟಮ್ ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ಪರಿಶೀಲಿಸಬಹುದು. | ಹಣಕಾಸು ಸಂಸ್ಥೆಗಳು ಮುಚ್ಚಿದ ಪುಸ್ತಕಗಳಾಗಿವೆ: ನೀವು ಅವರ ಸಾಲದ ಇತಿಹಾಸ, ಅವರ ನಿರ್ವಹಿಸಿದ ಸ್ವತ್ತುಗಳ ದಾಖಲೆ ಮತ್ತು ಇತ್ಯಾದಿಗಳನ್ನು ನೋಡಲು ಕೇಳಲು ಸಾಧ್ಯವಿಲ್ಲ. | - - - DeFi ಅಪ್ಲಿಕೇಶನ್‍ಗಳನ್ನು ಅನ್ವೇಷಿಸಿ - - -## ಇದು ಬಿಟ್‍ಕಾಯಿನ್ ನೊಂದಿಗೆ ಪ್ರಾರಂಭವಾಯಿತು... {#bitcoin} - -ಅನೇಕ ರೀತಿಯಲ್ಲಿ ಬಿಟ್‍ಕಾಯಿನ್ ಮೊದಲ DeFi ಅಪ್ಲಿಕೇಶನ್ ಆಗಿತ್ತು. ಬಿಟ್‍ಕಾಯಿನ್ ನಿಮಗೆ ನಿಜವಾಗಿಯೂ ಮೌಲ್ಯವನ್ನು ಹೊಂದಲು ಮತ್ತು ನಿಯಂತ್ರಿಸಲು ಮತ್ತು ಅದನ್ನು ಪ್ರಪಂಚದಾದ್ಯಂತ ಎಲ್ಲಿಯಾದರೂ ಕಳುಹಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಪರಸ್ಪರ ನಂಬದ ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಜನರಿಗೆ ವಿಶ್ವಾಸಾರ್ಹ ಮಧ್ಯವರ್ತಿಯ ಅಗತ್ಯವಿಲ್ಲದೆ ಖಾತೆಗಳ ಲೆಡ್ಜರ್ನಲ್ಲಿ ಒಪ್ಪಲು ಒಂದು ಮಾರ್ಗವನ್ನು ಒದಗಿಸುವ ಮೂಲಕ ಇದು ಇದನ್ನು ಮಾಡುತ್ತದೆ. ಬಿಟ್‍ಕಾಯಿನ್ ಯಾರಿಗೂ ಮುಕ್ತವಾಗಿದೆ ಮತ್ತು ಅದರ ನಿಯಮಗಳನ್ನು ಬದಲಾಯಿಸುವ ಅಧಿಕಾರ ಯಾರಿಗೂ ಇಲ್ಲ. ಬಿಟ್‍ಕಾಯಿನ್ ನ ನಿಯಮಗಳು, ಅದರ ಕೊರತೆ ಮತ್ತು ಅದರ ಮುಕ್ತತೆಯಂತೆ, ತಂತ್ರಜ್ಞಾನದಲ್ಲಿ ಬರೆಯಲ್ಪಟ್ಟಿವೆ. ಇದು ಸಾಂಪ್ರದಾಯಿಕ ಹಣಕಾಸುನಂತೆ ಅಲ್ಲ, ಅಲ್ಲಿ ಸರ್ಕಾರಗಳು ನಿಮ್ಮ ಉಳಿತಾಯವನ್ನು ಅಪಮೌಲ್ಯಗೊಳಿಸುವ ಹಣವನ್ನು ಮುದ್ರಿಸಬಹುದು ಮತ್ತು ಕಂಪನಿಗಳು ಮಾರುಕಟ್ಟೆಗಳನ್ನು ಮುಚ್ಚಬಹುದು. - -ಇಥಿರಿಯಮ್ ಇದನ್ನು ನಿರ್ಮಿಸುತ್ತದೆ. ಬಿಟ್‍ಕಾಯಿನ್ ನಂತೆ, ನಿಯಮಗಳು ನಿಮ್ಮ ಮೇಲೆ ಬದಲಾಗಲು ಸಾಧ್ಯವಿಲ್ಲ ಮತ್ತು ಎಲ್ಲರಿಗೂ ಪ್ರವೇಶವಿದೆ. ಆದರೆ ಇದು [ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳನ್ನು](/glossary#smart-contract) ಬಳಸಿಕೊಂಡು ಈ ಡಿಜಿಟಲ್ ಹಣವನ್ನು ಪ್ರೋಗ್ರಾಮ್ ಮಾಡಬಹುದು, ಆದ್ದರಿಂದ ನೀವು ಮೌಲ್ಯವನ್ನು ಸಂಗ್ರಹಿಸುವುದು ಮತ್ತು ಕಳುಹಿಸುವುದನ್ನು ಮೀರಿ ಹೋಗಬಹುದು. - - - -## ಪ್ರೋಗ್ರಾಂ ಮಾಡಬಹುದಾದ ಹಣ {#programmable-money} - -ಇದು ವಿಚಿತ್ರವಾಗಿ ತೋರುತ್ತದೆ... "ನಾನು ನನ್ನ ಹಣವನ್ನು ಏಕೆ ಪ್ರೋಗ್ರಾಂ ಮಾಡಲು ಬಯಸುತ್ತೇನೆ"? ಆದಾಗ್ಯೂ, ಇದು ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ಟೋಕನ್‍ಗಳ ಡೀಫಾಲ್ಟ್ ವೈಶಿಷ್ಟ್ಯವಾಗಿದೆ. ಪಾವತಿಗಳಲ್ಲಿ ಯಾರು ಬೇಕಾದರೂ ತರ್ಕವನ್ನು ಪ್ರೋಗ್ರಾಂ ಮಾಡಬಹುದು. ಆದ್ದರಿಂದ ನೀವು ಹಣಕಾಸು ಸಂಸ್ಥೆಗಳು ಒದಗಿಸುವ ಸೇವೆಗಳೊಂದಿಗೆ ಬೆರೆತ ಬಿಟ್‍ಕಾಯಿನ್ ನ ನಿಯಂತ್ರಣ ಮತ್ತು ಭದ್ರತೆಯನ್ನು ಪಡೆಯಬಹುದು. ಸಾಲ ನೀಡುವುದು ಮತ್ತು ಸಾಲ ಪಡೆಯುವುದು, ಪಾವತಿಗಳನ್ನು ನಿಗದಿಪಡಿಸುವುದು, ಸೂಚ್ಯಂಕ ನಿಧಿಗಳಲ್ಲಿ ಹೂಡಿಕೆ ಮಾಡುವುದು ಮತ್ತು ಹೆಚ್ಚಿನವುಗಳಂತಹ ಬಿಟ್‍ಕಾಯಿನ್ ನೊಂದಿಗೆ ನೀವು ಮಾಡಲು ಸಾಧ್ಯವಾಗದ ಕ್ರಿಪ್ಟೋಕರೆನ್ಸಿಗಳೊಂದಿಗೆ ಕೆಲಸಗಳನ್ನು ಮಾಡಲು ಇದು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. - - -
ನೀವು ಇಥಿರಿಯಮ್‍ಗೆ ಹೊಸಬರಾಗಿದ್ದೀರಾ ಎಂದು ಪ್ರಯತ್ನಿಸಲು DeFi ಅಪ್ಲಿಕೇಶನ್‍ಗಳಿಗಾಗಿ ನಮ್ಮ ಸಲಹೆಗಳನ್ನು ಅನ್ವೇಷಿಸಿ.
- - DeFi ಅಪ್ಲಿಕೇಶನ್‍ಗಳನ್ನು ಅನ್ವೇಷಿಸಿ - -
- -## 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/) ಅಗತ್ಯವಿದೆ. - - - ಪಾವತಿ dapps ನೋಡಿ - - -#### ಪ್ರಪಂಚದಾದ್ಯಂತ ಹಣವನ್ನು ಸ್ಟ್ರೀಮ್ ಮಾಡಿ... {#stream-money} - -ನೀವು ಇಥಿರಿಯಮ್ ಮೂಲಕವೂ ಹಣವನ್ನು ಸ್ಟ್ರೀಮ್ ಮಾಡಬಹುದು. ಇದು ಯಾರಿಗಾದರೂ ಸೆಕೆಂಡಿಗೆ ಅವರ ಸಂಬಳವನ್ನು ಪಾವತಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ, ಅವರಿಗೆ ಅಗತ್ಯವಿರುವಾಗಲೆಲ್ಲಾ ಅವರ ಹಣವನ್ನು ಪ್ರವೇಶಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಅಥವಾ ಸ್ಟೋರೇಜ್ ಲಾಕರ್ ಅಥವಾ ಎಲೆಕ್ಟ್ರಿಕ್ ಸ್ಕೂಟರ್ ನಂತಹ ಏನನ್ನಾದರೂ ಬಾಡಿಗೆಗೆ ಪಡೆಯಿರಿ. - -ಮತ್ತು ನೀವು [ETH](/eth/) ಅನ್ನು ಕಳುಹಿಸಲು ಅಥವಾ ಸ್ಟ್ರೀಮ್ ಮಾಡಲು ಬಯಸದಿದ್ದರೆ ಏಕೆಂದರೆ ಅದರ ಮೌಲ್ಯವು ಎಷ್ಟು ಬದಲಾಗಬಹುದು, ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ಪರ್ಯಾಯ ಕರೆನ್ಸಿಗಳಿವೆ: ಸ್ಟೇಬಲ್‍ಕಾಯಿನ್‍ಗಳು. - - - -### ಸ್ಥಿರ ಕರೆನ್ಸಿಗಳನ್ನು ಪ್ರವೇಶಿಸಿ {#stablecoins} - -ಕ್ರಿಪ್ಟೋಕರೆನ್ಸಿ ಚಂಚಲತೆಯು ಬಹಳಷ್ಟು ಹಣಕಾಸು ಉತ್ಪನ್ನಗಳು ಮತ್ತು ಸಾಮಾನ್ಯ ವೆಚ್ಚಗಳಿಗೆ ಸಮಸ್ಯೆಯಾಗಿದೆ. DeFi ಸಮುದಾಯವು ಇದನ್ನು ಸ್ಟೇಬಲ್‍ಕಾಯಿನ್‍ಗಳೊಂದಿಗೆ ಪರಿಹರಿಸಿದೆ. ಅವುಗಳ ಮೌಲ್ಯವು ಮತ್ತೊಂದು ಆಸ್ತಿಗೆ ಜೋಡಿಸಲ್ಪಟ್ಟಿದೆ, ಸಾಮಾನ್ಯವಾಗಿ ಡಾಲರ್ ಗಳಂತಹ ಜನಪ್ರಿಯ ಕರೆನ್ಸಿ. - -Dai ಅಥವಾ USDCಯಂತಹ ನಾಣ್ಯಗಳು ಡಾಲರ್ನ ಕೆಲವು ಸೆಂಟ್‍ಗಳ ಒಳಗೆ ಉಳಿಯುವ ಮೌಲ್ಯವನ್ನು ಹೊಂದಿವೆ. ಇದು ಅವುಗಳನ್ನು ಗಳಿಕೆ ಅಥವಾ ಚಿಲ್ಲರೆ ವ್ಯಾಪಾರಕ್ಕೆ ಸೂಕ್ತವಾಗಿಸುತ್ತದೆ. ಲ್ಯಾಟಿನ್ ಅಮೆರಿಕಾದ ಅನೇಕ ಜನರು ತಮ್ಮ ಸರ್ಕಾರ ಹೊರಡಿಸಿದ ಕರೆನ್ಸಿಗಳೊಂದಿಗೆ ಹೆಚ್ಚಿನ ಅನಿಶ್ಚಿತತೆಯ ಸಮಯದಲ್ಲಿ ತಮ್ಮ ಉಳಿತಾಯವನ್ನು ರಕ್ಷಿಸುವ ಮಾರ್ಗವಾಗಿ ಸ್ಟೇಬಲ್ ಕಾಯಿನ್‍ಗಳನ್ನು ಬಳಸಿದ್ದಾರೆ. - - - ಸ್ಟೇಬಲ್‍ಕಾಯಿನ್‍ಗಳ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು - - - - -### ಸಾಲ ಪಡೆಯುವುದು {#lending} - -ವಿಕೇಂದ್ರೀಕೃತ ಪೂರೈಕೆದಾರರಿಂದ ಹಣವನ್ನು ಎರವಲು ಪಡೆಯುವುದು ಎರಡು ಪ್ರಮುಖ ವಿಧಗಳಲ್ಲಿ ಬರುತ್ತದೆ. - -- ಪೀರ್-ಟು-ಪೀರ್, ಅಂದರೆ ಸಾಲಗಾರನು ನಿರ್ದಿಷ್ಟ ಸಾಲದಾತರಿಂದ ನೇರವಾಗಿ ಸಾಲ ಪಡೆಯುತ್ತಾನೆ. -- ಸಾಲಗಾರರು ಸಾಲ ಪಡೆಯಬಹುದಾದ ಪೂಲ್‍ಗೆ ಸಾಲದಾತರು ಹಣವನ್ನು (liquidity ದ್ರವ್ಯತೆ) ಒದಗಿಸುವ ಪೂಲ್ ಆಧಾರಿತ. - - - ಎರವಲು dapps ನೋಡಿ - - -ವಿಕೇಂದ್ರೀಕೃತ ಸಾಲದಾತನನ್ನು ಬಳಸುವುದರಿಂದ ಅನೇಕ ಅನುಕೂಲಗಳಿವೆ... - -#### ಗೌಪ್ಯತೆಯೊಂದಿಗೆ ಸಾಲ ಪಡೆಯುವುದು {#borrowing-privacy} - -ಇಂದು, ಸಾಲ ನೀಡುವುದು ಮತ್ತು ಹಣವನ್ನು ಎರವಲು ಪಡೆಯುವುದು ಎಲ್ಲವೂ ಭಾಗಿಯಾಗಿರುವ ವ್ಯಕ್ತಿಗಳ ಸುತ್ತ ಸುತ್ತುತ್ತದೆ. ಸಾಲ ನೀಡುವ ಮೊದಲು ನೀವು ಸಾಲವನ್ನು ಮರುಪಾವತಿ ಮಾಡುವ ಸಾಧ್ಯತೆಯಿದೆಯೇ ಎಂದು ಬ್ಯಾಂಕುಗಳು ತಿಳಿದುಕೊಳ್ಳಬೇಕು. - -ವಿಕೇಂದ್ರೀಕೃತ ಸಾಲವು ಯಾವುದೇ ಪಕ್ಷವು ತಮ್ಮನ್ನು ಗುರುತಿಸಿಕೊಳ್ಳದೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಬದಲಾಗಿ, ಸಾಲಗಾರನು ತನ್ನ ಸಾಲವನ್ನು ಮರುಪಾವತಿಸದಿದ್ದರೆ ಸಾಲದಾತನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಪಡೆಯುವ ಮೇಲಾಧಾರವನ್ನು ಹಾಕಬೇಕು. ಕೆಲವು ಸಾಲದಾತರು NFT ಗಳನ್ನು ಮೇಲಾಧಾರವಾಗಿ ಸ್ವೀಕರಿಸುತ್ತಾರೆ. NFT ಗಳು ಚಿತ್ರಕಲೆಯಂತಹ ವಿಶಿಷ್ಟ ಸ್ವತ್ತಿನ ಕಾರ್ಯವಾಗಿದೆ. [NFT ಗಳ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು](/nft/) - -ಕ್ರೆಡಿಟ್ ಚೆಕ್ ಇಲ್ಲದೆ ಅಥವಾ ಖಾಸಗಿ ಮಾಹಿತಿಯನ್ನು ಹಸ್ತಾಂತರಿಸದೆ ಹಣವನ್ನು ಎರವಲು ಪಡೆಯಲು ಇದು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. - -#### ಜಾಗತಿಕ ನಿಧಿಗಳಿಗೆ ಪ್ರವೇಶ {#access-global-funds} - -ನೀವು ವಿಕೇಂದ್ರೀಕೃತ ಸಾಲದಾತರನ್ನು ಬಳಸುವಾಗ, ನೀವು ಆಯ್ಕೆ ಮಾಡಿದ ಬ್ಯಾಂಕ್ ಅಥವಾ ಸಂಸ್ಥೆಯ ವಶದಲ್ಲಿರುವ ನಿಧಿಗಳಿಗೆ ಮಾತ್ರವಲ್ಲ, ಪ್ರಪಂಚದಾದ್ಯಂತದ ಹಣವನ್ನು ನೀವು ಪ್ರವೇಶಿಸುತ್ತೀರಿ. ಇದು ಸಾಲಗಳನ್ನು ಹೆಚ್ಚು ಪ್ರವೇಶಿಸುವಂತೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ಬಡ್ಡಿದರಗಳನ್ನು ಸುಧಾರಿಸುತ್ತದೆ. - -#### ತೆರಿಗೆ-ದಕ್ಷತೆಗಳು {#tax-efficiencies} - -ಸಾಲ ಪಡೆಯುವುದು ನಿಮ್ಮ ETH (ತೆರಿಗೆ ವಿಧಿಸಬಹುದಾದ ಘಟನೆ) ಅನ್ನು ಮಾರಾಟ ಮಾಡುವ ಅಗತ್ಯವಿಲ್ಲದೆ ನಿಮಗೆ ಅಗತ್ಯವಿರುವ ನಿಧಿಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ನೀಡುತ್ತದೆ. ಬದಲಿಗೆ, ನೀವು ಸ್ಟೇಬಲ್ಕಾಯಿನ್ ಸಾಲಕ್ಕಾಗಿ ETH ಅನ್ನು ಮೇಲಾಧಾರವಾಗಿ ಬಳಸಬಹುದು. ಇದು ನಿಮಗೆ ಅಗತ್ಯವಿರುವ ನಗದು ಹರಿವನ್ನು ನೀಡುತ್ತದೆ ಮತ್ತು ನಿಮ್ಮ ETH ಅನ್ನು ಉಳಿಸಿಕೊಳ್ಳಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಸ್ಟೇಬಲ್‍ಕಾಯಿನ್‍ಗಳು ಟೋಕನ್‍ಗಳಾಗಿವೆ, ಏಕೆಂದರೆ ಅವು ETH ನಂತಹ ಮೌಲ್ಯದಲ್ಲಿ ಏರಿಳಿತಗೊಳ್ಳುವುದಿಲ್ಲವಾದ್ದರಿಂದ ನಿಮಗೆ ನಗದು ಅಗತ್ಯವಿದ್ದಾಗ ಹೆಚ್ಚು ಉತ್ತಮವಾಗಿರುತ್ತದೆ. [ಸ್ಟೇಬಲ್‍ಕಾಯಿನ್‍ಗಳ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು](#stablecoins) - -#### ಫ್ಲ್ಯಾಶ್ ಸಾಲಗಳು {#flash-loans} - -ಫ್ಲ್ಯಾಶ್ ಸಾಲಗಳು ವಿಕೇಂದ್ರೀಕೃತ ಸಾಲದ ಹೆಚ್ಚು ಪ್ರಾಯೋಗಿಕ ರೂಪವಾಗಿದ್ದು, ಅದು ಮೇಲಾಧಾರವಿಲ್ಲದೆ ಅಥವಾ ಯಾವುದೇ ವೈಯಕ್ತಿಕ ಮಾಹಿತಿಯನ್ನು ಒದಗಿಸದೆ ಸಾಲ ಪಡೆಯಲು ನಿಮಗೆ ಅವಕಾಶ ನೀಡುತ್ತದೆ. - -ಅವು ಇದೀಗ ತಾಂತ್ರಿಕೇತರ ಜನರಿಗೆ ವ್ಯಾಪಕವಾಗಿ ಲಭ್ಯವಿಲ್ಲ ಆದರೆ ಭವಿಷ್ಯದಲ್ಲಿ ಎಲ್ಲರಿಗೂ ಏನು ಸಾಧ್ಯ ಎಂಬುದರ ಬಗ್ಗೆ ಅವು ಸುಳಿವು ನೀಡುತ್ತವೆ. - -ಅದೇ ವಹಿವಾಟಿನೊಳಗೆ ಸಾಲವನ್ನು ಹೊರತೆಗೆಯಲಾಗುತ್ತದೆ ಮತ್ತು ಮರುಪಾವತಿಸಲಾಗುತ್ತದೆ ಎಂಬ ಆಧಾರದ ಮೇಲೆ ಇದು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಅದನ್ನು ಮರುಪಾವತಿಸಲು ಸಾಧ್ಯವಾಗದಿದ್ದರೆ, ವ್ಯವಹಾರವು ಏನೂ ಸಂಭವಿಸಿಲ್ಲ ಎಂಬಂತೆ ಹಿಂತಿರುಗುತ್ತದೆ. - -ಆಗಾಗ್ಗೆ ಬಳಸಲಾಗುವ ನಿಧಿಗಳನ್ನು ದ್ರವ್ಯತೆ ಕೊಳಗಳಲ್ಲಿ ಇರಿಸಲಾಗುತ್ತದೆ (ಸಾಲ ಪಡೆಯಲು ಬಳಸುವ ದೊಡ್ಡ ನಿಧಿಗಳ ಕೊಳಗಳು). ಒಂದು ನಿರ್ದಿಷ್ಟ ಸಮಯದಲ್ಲಿ ಅವುಗಳನ್ನು ಬಳಸದಿದ್ದರೆ, ಇದು ಯಾರಿಗಾದರೂ ಈ ಹಣವನ್ನು ಎರವಲು ಪಡೆಯಲು, ಅವರೊಂದಿಗೆ ವ್ಯವಹಾರ ನಡೆಸಲು ಮತ್ತು ಅವರು ಎರವಲು ಪಡೆದ ಅದೇ ಸಮಯದಲ್ಲಿ ಅಕ್ಷರಶಃ ಪೂರ್ಣವಾಗಿ ಮರುಪಾವತಿಸಲು ಅವಕಾಶವನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ. - -ಇದರರ್ಥ ಬಹಳ ಬೆಸ್ಪೋಕ್ ವಹಿವಾಟಿನಲ್ಲಿ ಬಹಳಷ್ಟು ತರ್ಕವನ್ನು ಸೇರಿಸಬೇಕು. ಒಂದು ಸರಳ ಉದಾಹರಣೆಯೆಂದರೆ, ಯಾರಾದರೂ ಫ್ಲ್ಯಾಶ್ ಲೋನ್ ಬಳಸಿ ಒಂದು ಬೆಲೆಗೆ ಹೆಚ್ಚು ಆಸ್ತಿಯನ್ನು ಎರವಲು ಪಡೆಯಬಹುದು, ಆದ್ದರಿಂದ ಅವರು ಅದನ್ನು ಬೆಲೆ ಹೆಚ್ಚಿರುವ ಬೇರೆ ವಿನಿಮಯ ಕೇಂದ್ರದಲ್ಲಿ ಮಾರಾಟ ಮಾಡಬಹುದು. - -ಆದ್ದರಿಂದ ಒಂದೇ ವ್ಯವಹಾರದಲ್ಲಿ, ಈ ಕೆಳಗಿನವು ಸಂಭವಿಸುತ್ತವೆ: - -- ನೀವು $asset X ಮೊತ್ತವನ್ನು ಎಕ್ಸ್ ಚೇಂಜ್ A ನಿಂದ $ 1.00 ಕ್ಕೆ ಎರವಲು ಪಡೆಯುತ್ತೀರಿ -- ನೀವು 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 ರಷ್ಟಿದೆ! -- ನಿಮ್ಮ aDai ಬ್ಯಾಲೆನ್ಸ್ ಗೆ ಸಮನಾದ ನಿಯಮಿತ Dai ಮೊತ್ತವನ್ನು ನೀವು ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಹಿಂಪಡೆಯಬಹುದು. - - - ಸಾಲ ನೀಡುವ Dappsಗಳನ್ನು ನೋಡಿ - - -#### ನಷ್ಟವಿಲ್ಲದ ಲಾಟರಿಗಳು {#no-loss-lotteries} - -ಪೂಲ್ ಟುಗೆದರ್ ನಂತಹ ನಷ್ಟವಿಲ್ಲದ ಲಾಟರಿಗಳು ಹಣವನ್ನು ಉಳಿಸಲು ಮೋಜಿನ ಮತ್ತು ನವೀನ ಹೊಸ ಮಾರ್ಗವಾಗಿದೆ. - -- ನೀವು 100 Dai ಟೋಕನ್‍ಗಳನ್ನು ಬಳಸಿ 100 ಟಿಕೆಟ್‍ಗಳನ್ನು ಖರೀದಿಸುತ್ತೀರಿ. -- ನಿಮ್ಮ 100 ಟಿಕೆಟ್‍ಗಳನ್ನು ಪ್ರತಿನಿಧಿಸುವ 100 plDai ಅನ್ನು ನೀವು ಸ್ವೀಕರಿಸುತ್ತೀರಿ. -- ನಿಮ್ಮ ಟಿಕೆಟ್‍ಗಳಲ್ಲಿ ಒಂದನ್ನು ವಿಜೇತರಾಗಿ ಆಯ್ಕೆ ಮಾಡಿದರೆ, ಬಹುಮಾನದ ಮೊತ್ತದಿಂದ ನಿಮ್ಮ plDai ಬ್ಯಾಲೆನ್ಸ್ ಹೆಚ್ಚಾಗುತ್ತದೆ. -- ನೀವು ಗೆಲ್ಲದಿದ್ದರೆ, ನಿಮ್ಮ 100 plDai ಮುಂದಿನ ವಾರದ ಡ್ರಾಗೆ ತಿರುಗುತ್ತದೆ. -- ನಿಮ್ಮ plDai ಬ್ಯಾಲೆನ್ಸ್ ಗೆ ಸಮನಾದ ನಿಯಮಿತ Dai ಮೊತ್ತವನ್ನು ನೀವು ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಹಿಂಪಡೆಯಬಹುದು. - -ಮೇಲಿನ ಸಾಲದ ಉದಾಹರಣೆಯಂತೆ ಟಿಕೆಟ್ ಠೇವಣಿಗಳನ್ನು ಸಾಲ ನೀಡುವ ಮೂಲಕ ಉತ್ಪತ್ತಿಯಾಗುವ ಎಲ್ಲಾ ಬಡ್ಡಿಯಿಂದ ಬಹುಮಾನದ ಪೂಲ್ ಅನ್ನು ಉತ್ಪಾದಿಸಲಾಗುತ್ತದೆ. - - - PoolTogether ಪ್ರಯತ್ನಿಸಿ - - - - -### ವಿನಿಮಯ ಟೋಕನ್‍ಗಳು {#swaps} - -ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ಸಾವಿರಾರು ಟೋಕನ್‍ಗಳಿವೆ. ವಿಕೇಂದ್ರೀಕೃತ ವಿನಿಮಯ ಕೇಂದ್ರಗಳು (DEXs) ನಿಮಗೆ ಬೇಕಾದಾಗ ವಿಭಿನ್ನ ಟೋಕನ್‍ಗಳನ್ನು ವ್ಯಾಪಾರ ಮಾಡಲು ನಿಮಗೆ ಅವಕಾಶ ನೀಡುತ್ತವೆ. ನಿಮ್ಮ ಸ್ವತ್ತುಗಳ ಮೇಲಿನ ನಿಯಂತ್ರಣವನ್ನು ನೀವು ಎಂದಿಗೂ ಬಿಟ್ಟುಕೊಡುವುದಿಲ್ಲ. ಇದು ಬೇರೆ ದೇಶಕ್ಕೆ ಭೇಟಿ ನೀಡಿದಾಗ ಕರೆನ್ಸಿ ವಿನಿಮಯವನ್ನು ಬಳಸುವಂತಿದೆ. ಆದರೆ ಡಿಫೈ ಆವೃತ್ತಿ ಎಂದಿಗೂ ಮುಚ್ಚುವುದಿಲ್ಲ. ಮಾರುಕಟ್ಟೆಗಳು ವರ್ಷದಲ್ಲಿ 24/7, 365 ದಿನಗಳು ಮತ್ತು ವ್ಯಾಪಾರವನ್ನು ಸ್ವೀಕರಿಸಲು ಯಾವಾಗಲೂ ಯಾರಾದರೂ ಇರುತ್ತಾರೆ ಎಂದು ತಂತ್ರಜ್ಞಾನವು ಖಾತರಿಪಡಿಸುತ್ತದೆ. - -ಉದಾಹರಣೆಗೆ, ನೀವು ನಷ್ಟವಿಲ್ಲದ ಲಾಟರಿ ಪೂಲ್ ಟುಗೆದರ್ (ಮೇಲೆ ವಿವರಿಸಲಾಗಿದೆ) ಬಳಸಲು ಬಯಸಿದರೆ, ನಿಮಗೆ Dai ಅಥವಾ USDCಯಂತಹ ಟೋಕನ್ ಅಗತ್ಯವಿದೆ. ಈ DEX ಗಳು ಆ ಟೋಕನ್‍ಗಳಿಗಾಗಿ ನಿಮ್ಮ ETH ಅನ್ನು ಬದಲಾಯಿಸಲು ಮತ್ತು ನೀವು ಮುಗಿದ ನಂತರ ಮತ್ತೆ ಹಿಂತಿರುಗಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತವೆ. - - - ಟೋಕನ್ ವಿನಿಮಯಗಳನ್ನು ನೋಡಿ - - - - -### ಸುಧಾರಿತ ವ್ಯಾಪಾರ {#trading} - -ಸ್ವಲ್ಪ ಹೆಚ್ಚು ನಿಯಂತ್ರಣವನ್ನು ಬಯಸುವ ವ್ಯಾಪಾರಿಗಳಿಗೆ ಹೆಚ್ಚು ಸುಧಾರಿತ ಆಯ್ಕೆಗಳಿವೆ. ಮಿತಿ ಆದೇಶಗಳು, ಶಾಶ್ವತಗಳು, ಮಾರ್ಜಿನ್ ಟ್ರೇಡಿಂಗ್ ಮತ್ತು ಹೆಚ್ಚಿನವು ಸಾಧ್ಯ. ವಿಕೇಂದ್ರೀಕೃತ ವ್ಯಾಪಾರದೊಂದಿಗೆ ನೀವು ಜಾಗತಿಕ ದ್ರವ್ಯತೆಗೆ ಪ್ರವೇಶವನ್ನು ಪಡೆಯುತ್ತೀರಿ, ಮಾರುಕಟ್ಟೆ ಎಂದಿಗೂ ಮುಚ್ಚುವುದಿಲ್ಲ, ಮತ್ತು ನೀವು ಯಾವಾಗಲೂ ನಿಮ್ಮ ಸ್ವತ್ತುಗಳ ನಿಯಂತ್ರಣದಲ್ಲಿದ್ದೀರಿ. - -ನೀವು ಕೇಂದ್ರೀಕೃತ ವಿನಿಮಯ ಕೇಂದ್ರವನ್ನು ಬಳಸುವಾಗ ನೀವು ವ್ಯಾಪಾರದ ಮೊದಲು ನಿಮ್ಮ ಸ್ವತ್ತುಗಳನ್ನು ಠೇವಣಿ ಮಾಡಬೇಕು ಮತ್ತು ಅವುಗಳನ್ನು ನೋಡಿಕೊಳ್ಳಲು ಅವರನ್ನು ನಂಬಬೇಕು. ನಿಮ್ಮ ಸ್ವತ್ತುಗಳನ್ನು ಠೇವಣಿ ಮಾಡುವಾಗ, ಕೇಂದ್ರೀಕೃತ ವಿನಿಮಯಗಳು ಹ್ಯಾಕರ್ ಗಳಿಗೆ ಆಕರ್ಷಕ ಗುರಿಗಳಾಗಿರುವುದರಿಂದ ಅವು ಅಪಾಯದಲ್ಲಿವೆ. - - - ಟ್ರೇಡಿಂಗ್ dapps ನೋಡಿ - - - - -### ನಿಮ್ಮ ಪೋರ್ಟ್‍ಫೋಲಿಯೊವನ್ನು ಬೆಳೆಸಿ {#investing} - -ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ನಿಧಿ ನಿರ್ವಹಣಾ ಉತ್ಪನ್ನಗಳು ಇವೆ, ಅದು ನಿಮ್ಮ ಆಯ್ಕೆಯ ಕಾರ್ಯತಂತ್ರದ ಆಧಾರದ ಮೇಲೆ ನಿಮ್ಮ ಪೋರ್ಟ್‍ಫೋಲಿಯೋವನ್ನು ಬೆಳೆಸಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ. ಇದು ಸ್ವಯಂಚಾಲಿತವಾಗಿದೆ, ಎಲ್ಲರಿಗೂ ಮುಕ್ತವಾಗಿದೆ, ಮತ್ತು ನಿಮ್ಮ ಲಾಭವನ್ನು ಕಡಿತಗೊಳಿಸುವ ಮಾನವ ವ್ಯವಸ್ಥಾಪಕರ ಅಗತ್ಯವಿಲ್ಲ. -ಇದಕ್ಕೆ ಉತ್ತಮ ಉದಾಹರಣೆಯೆಂದರೆ [DeFi ಪಲ್ಸ್ ಇಂಡೆಕ್ಸ್ ಫಂಡ್ (DPI)](https://defipulse.com/blog/defi-pulse-index/). ಇದು ನಿಮ್ಮ ಪೋರ್ಟ್‍ಫೋಲಿಯೊ ಯಾವಾಗಲೂ [ಮಾರುಕಟ್ಟೆ ಬಂಡವಾಳೀಕರಣದ ಮೂಲಕ ಉನ್ನತ DeFi ಟೋಕನ್‍ಗಳನ್ನು](https://www.coingecko.com/en/defi)ಒಳಗೊಂಡಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮರುಸಮತೋಲನಗೊಳಿಸುವ ಫಂಡ್ ಆಗಿದೆ. ನೀವು ಎಂದಿಗೂ ಯಾವುದೇ ವಿವರಗಳನ್ನು ನಿರ್ವಹಿಸಬೇಕಾಗಿಲ್ಲ ಮತ್ತು ನೀವು ಬಯಸಿದಾಗ ನಿಧಿಯಿಂದ ಹಿಂಪಡೆಯಬಹುದು. - - - ಹೂಡಿಕೆ dapps ನೋಡಿ - - - - -### ನಿಮ್ಮ ಆಲೋಚನೆಗಳಿಗೆ ಧನಸಹಾಯ ಮಾಡಿ {#crowdfunding} - -ಕ್ರೌಡ್ ಫಂಡಿಂಗ್ ಗೆ ಇಥಿರಿಯಮ್ ಸೂಕ್ತ ವೇದಿಕೆಯಾಗಿದೆ: - -- ಸಂಭಾವ್ಯ ನಿಧಿದಾರರು ಎಲ್ಲಿಂದ ಬೇಕಾದರೂ ಬರಬಹುದು - ಇಥಿರಿಯಮ್ ಮತ್ತು ಅದರ ಟೋಕನ್ ಗಳು ಯಾರಿಗಾದರೂ, ವಿಶ್ವದ ಎಲ್ಲಿಯಾದರೂ ತೆರೆದಿರುತ್ತವೆ. -- ಇದು ಪಾರದರ್ಶಕವಾಗಿದೆ ಆದ್ದರಿಂದ ನಿಧಿಸಂಗ್ರಹಕರು ಎಷ್ಟು ಹಣವನ್ನು ಸಂಗ್ರಹಿಸಲಾಗಿದೆ ಎಂಬುದನ್ನು ಸಾಬೀತುಪಡಿಸಬಹುದು. ಹಣವನ್ನು ಹೇಗೆ ಖರ್ಚು ಮಾಡಲಾಗುತ್ತಿದೆ ಎಂಬುದನ್ನು ನೀವು ನಂತರ ಪತ್ತೆಹಚ್ಚಬಹುದು. -- ಉದಾಹರಣೆಗೆ, ನಿರ್ದಿಷ್ಟ ಗಡುವು ಮತ್ತು ಕನಿಷ್ಠ ಮೊತ್ತವನ್ನು ಪೂರೈಸದಿದ್ದರೆ ನಿಧಿಸಂಗ್ರಹಕರು ಸ್ವಯಂಚಾಲಿತ ಮರುಪಾವತಿಗಳನ್ನು ಹೊಂದಿಸಬಹುದು. - - - ಕ್ರೌಡ್ ಫಂಡಿಂಗ್ dapps ನೋಡಿ - - -#### ಕ್ವಾಡ್ರಾಟಿಕ್ ಫಂಡಿಂಗ್ {#quadratic-funding} - -ಇಥಿರಿಯಮ್ ಓಪನ್ ಸೋರ್ಸ್ ಸಾಫ್ಟ್ವೇರ್ ಆಗಿದೆ ಮತ್ತು ಇಲ್ಲಿಯವರೆಗೆ ಬಹಳಷ್ಟು ಕೆಲಸಗಳಿಗೆ ಸಮುದಾಯವು ಧನಸಹಾಯ ನೀಡಿದೆ. ಇದು ಆಸಕ್ತಿದಾಯಕ ಹೊಸ ನಿಧಿಸಂಗ್ರಹ ಮಾದರಿಯ ಬೆಳವಣಿಗೆಗೆ ಕಾರಣವಾಗಿದೆ: ಕ್ವಾಡ್ರಾಟಿಕ್ ಫಂಡಿಂಗ್. This has the potential to improve the way we fund all types of public goods in the future. - -Quadratic funding makes sure that the projects that receive the most funding are those with the most unique demand. In other words, projects that stand to improve the lives of the most people. ಇದು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದು ಇಲ್ಲಿದೆ: - -1. ದೇಣಿಗೆ ನೀಡಿದ ನಿಧಿಗಳ ಸರಿಸಮಾನವಾದ ಪೂಲ್ ಇದೆ. -2. ಒಂದು ಸುತ್ತಿನ ಸಾರ್ವಜನಿಕ ಧನಸಹಾಯ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ. -3. ಜನರು ಸ್ವಲ್ಪ ಹಣವನ್ನು ದಾನ ಮಾಡುವ ಮೂಲಕ ಯೋಜನೆಗಾಗಿ ತಮ್ಮ ಬೇಡಿಕೆಯನ್ನು ಸೂಚಿಸಬಹುದು. -4. ರೌಂಡ್ ಮುಗಿದ ನಂತರ, ಮ್ಯಾಚಿಂಗ್ ಪೂಲ್ ಅನ್ನು ಯೋಜನೆಗಳಿಗೆ ವಿತರಿಸಲಾಗುತ್ತದೆ. ಅತ್ಯಂತ ವಿಶಿಷ್ಟ ಬೇಡಿಕೆಯನ್ನು ಹೊಂದಿರುವವರು ಮ್ಯಾಚಿಂಗ್ ಪೂಲ್‍ನಿಂದ ಹೆಚ್ಚಿನ ಮೊತ್ತವನ್ನು ಪಡೆಯುತ್ತಾರೆ. - -ಇದರರ್ಥ ಪ್ರಾಜೆಕ್ಟ್ A ತನ್ನ 100 ದೇಣಿಗೆಗಳೊಂದಿಗೆ 10,000 ಡಾಲರ್ ಗಳ ಏಕೈಕ ದೇಣಿಗೆಯೊಂದಿಗೆ ಪ್ರಾಜೆಕ್ಟ್ B ಗಿಂತ ಹೆಚ್ಚಿನ ಧನಸಹಾಯವನ್ನು ಪಡೆಯಬಹುದು (ಹೊಂದಾಣಿಕೆಯ ಕೊಳದ ಗಾತ್ರವನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ). - -[ಕ್ವಾಡ್ರಾಟಿಕ್ ಫಂಡಿಂಗ್ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು](https://wtfisqf.com) - - - -### ವಿಮೆ {#insurance} - -ವಿಕೇಂದ್ರೀಕೃತ ವಿಮೆಯು ವಿಮೆಯನ್ನು ಅಗ್ಗವಾಗಿ, ಪಾವತಿಸಲು ವೇಗವಾಗಿ ಮತ್ತು ಹೆಚ್ಚು ಪಾರದರ್ಶಕವಾಗಿಸುವ ಗುರಿಯನ್ನು ಹೊಂದಿದೆ. ಹೆಚ್ಚಿನ ಯಾಂತ್ರೀಕರಣದೊಂದಿಗೆ, ವ್ಯಾಪ್ತಿ ಹೆಚ್ಚು ಕೈಗೆಟುಕುತ್ತದೆ ಮತ್ತು ಪಾವತಿಗಳು ಬಹಳ ವೇಗವಾಗಿರುತ್ತವೆ. ನಿಮ್ಮ ಕ್ಲೈಮ್ ಅನ್ನು ನಿರ್ಧರಿಸಲು ಬಳಸುವ ಡೇಟಾ ಸಂಪೂರ್ಣವಾಗಿ ಪಾರದರ್ಶಕವಾಗಿದೆ. - -ಇಥಿರಿಯಮ್ ಉತ್ಪನ್ನಗಳು, ಯಾವುದೇ ಸಾಫ್ಟ್ವೇರ್ನಂತೆ, ದೋಷಗಳು ಮತ್ತು ಶೋಷಣೆಗಳಿಂದ ಬಳಲಬಹುದು. ಆದ್ದರಿಂದ ಇದೀಗ ಬಹಳಷ್ಟು ವಿಮಾ ಉತ್ಪನ್ನಗಳು ತಮ್ಮ ಬಳಕೆದಾರರನ್ನು ಹಣದ ನಷ್ಟದಿಂದ ರಕ್ಷಿಸುವತ್ತ ಗಮನ ಹರಿಸುತ್ತವೆ. ಆದಾಗ್ಯೂ, ಜೀವನವು ನಮ್ಮ ಮೇಲೆ ಎಸೆಯಬಹುದಾದ ಎಲ್ಲದಕ್ಕೂ ವ್ಯಾಪ್ತಿಯನ್ನು ನಿರ್ಮಿಸಲು ಪ್ರಾರಂಭಿಸುವ ಯೋಜನೆಗಳಿವೆ. ಇದಕ್ಕೆ ಉತ್ತಮ ಉದಾಹರಣೆಯೆಂದರೆ Etherisc's Crop cover - ಎಥೆರಿಸ್ಕ್ ನ ಬೆಳೆ ಹೊದಿಕೆ, ಇದು ಕೀನ್ಯಾದಲ್ಲಿ [ಸಣ್ಣ ಹಿಡುವಳಿದಾರ ರೈತರನ್ನು ಬರಗಾಲ ಮತ್ತು ಪ್ರವಾಹದಿಂದ ರಕ್ಷಿಸುವ](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc) ಗುರಿಯನ್ನು ಹೊಂದಿದೆ. ವಿಕೇಂದ್ರೀಕೃತ ವಿಮೆಯು ಸಾಂಪ್ರದಾಯಿಕ ವಿಮೆಯಿಂದ ಹೊರಗುಳಿದ ರೈತರಿಗೆ ಅಗ್ಗದ ರಕ್ಷಣೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ. - - - ವಿಮಾ dapps ನೋಡಿ - - - - -### ಅಗ್ರಿಗೇಟರ್ ಗಳು ಮತ್ತು ಪೋರ್ಟ್‍ಫೋಲಿಯೊ ಮ್ಯಾನೇಜರ್ ಗಳು {#aggregators} - -ಇಷ್ಟೆಲ್ಲಾ ನಡೆಯುತ್ತಿರುವಾಗ, ನಿಮ್ಮ ಎಲ್ಲಾ ಹೂಡಿಕೆಗಳು, ಸಾಲಗಳು ಮತ್ತು ವಹಿವಾಟುಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಲು ನಿಮಗೆ ಒಂದು ಮಾರ್ಗ ಬೇಕು. ನಿಮ್ಮ ಎಲ್ಲಾ ಡಿಫೈ ಚಟುವಟಿಕೆಯನ್ನು ಒಂದೇ ಸ್ಥಳದಿಂದ ಸಮನ್ವಯಗೊಳಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುವ ಉತ್ಪನ್ನಗಳ ಇದೆ. ಇದು ಡಿಫೈನ ಮುಕ್ತ ವಾಸ್ತುಶಿಲ್ಪದ ಸೌಂದರ್ಯವಾಗಿದೆ. ತಂಡಗಳು ಇಂಟರ್ಫೇಸ್‍ಗಳನ್ನು ನಿರ್ಮಿಸಬಹುದು, ಅಲ್ಲಿ ನೀವು ಉತ್ಪನ್ನಗಳಾದ್ಯಂತ ನಿಮ್ಮ ಸಮತೋಲನವನ್ನು ನೋಡಲು ಸಾಧ್ಯವಿಲ್ಲ, ನೀವು ಅವರ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಸಹ ಬಳಸಬಹುದು. ನೀವು DeFi ಬಗ್ಗೆ ಹೆಚ್ಚು ಅನ್ವೇಷಿಸುವಾಗ ಇದು ನಿಮಗೆ ಉಪಯುಕ್ತವಾಗಬಹುದು. - - - ಪೋರ್ಟ್‍ಫೋಲಿಯೊ dapps ನೋಡಿ - - - - -## DeFi ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ? {#how-defi-works} - -ಮಧ್ಯವರ್ತಿಗಳ ಅಗತ್ಯವಿಲ್ಲದ ಸೇವೆಗಳನ್ನು ಒದಗಿಸಲು ಡಿಫೈ ಕ್ರಿಪ್ಟೋಕರೆನ್ಸಿಗಳು ಮತ್ತು ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳನ್ನು ಬಳಸುತ್ತದೆ. ಇಂದಿನ ಹಣಕಾಸು ಜಗತ್ತಿನಲ್ಲಿ, ಹಣಕಾಸು ಸಂಸ್ಥೆಗಳು ವಹಿವಾಟಿನ ಖಾತರಿದಾರರಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ. ಇದು ಈ ಸಂಸ್ಥೆಗಳಿಗೆ ಅಪಾರ ಶಕ್ತಿಯನ್ನು ನೀಡುತ್ತದೆ ಏಕೆಂದರೆ ನಿಮ್ಮ ಹಣವು ಅವುಗಳ ಮೂಲಕ ಹರಿಯುತ್ತದೆ. ಜೊತೆಗೆ ಪ್ರಪಂಚದಾದ್ಯಂತದ ಶತಕೋಟಿ ಜನರು ಬ್ಯಾಂಕ್ ಖಾತೆಯನ್ನು ಸಹ ಪ್ರವೇಶಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. - -DeFi ನಲ್ಲಿ, ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ವ್ಯವಹಾರದಲ್ಲಿ ಹಣಕಾಸು ಸಂಸ್ಥೆಯನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ. ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಒಂದು ರೀತಿಯ ಇಥಿರಿಯಮ್ ಖಾತೆಯಾಗಿದ್ದು, ಅದು ಹಣವನ್ನು ಹಿಡಿದಿಟ್ಟುಕೊಳ್ಳಬಹುದು ಮತ್ತು ಕೆಲವು ಷರತ್ತುಗಳ ಆಧಾರದ ಮೇಲೆ ಅವುಗಳನ್ನು ಕಳುಹಿಸಬಹುದು / ಮರುಪಾವತಿ ಮಾಡಬಹುದು. ಆ ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಲೈವ್ ಆಗಿರುವಾಗ ಯಾರೂ ಅದನ್ನು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ - ಅದು ಯಾವಾಗಲೂ ಪ್ರೋಗ್ರಾಮ್ ಮಾಡಿದಂತೆ ಚಲಿಸುತ್ತದೆ. - -ಭತ್ಯೆ ಅಥವಾ ಪಾಕೆಟ್ ಹಣವನ್ನು ಹಸ್ತಾಂತರಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ ಒಪ್ಪಂದವನ್ನು ಪ್ರತಿ ಶುಕ್ರವಾರ ಖಾತೆ A ಯಿಂದ ಖಾತೆ B ಗೆ ಹಣವನ್ನು ಕಳುಹಿಸಲು ಪ್ರೋಗ್ರಾಂ ಮಾಡಬಹುದು. ಮತ್ತು ಖಾತೆ A ಅಗತ್ಯವಾದ ಹಣವನ್ನು ಹೊಂದಿರುವವರೆಗೆ ಮಾತ್ರ ಅದು ಅದನ್ನು ಮಾಡುತ್ತದೆ. ಹಣವನ್ನು ಕದಿಯಲು ಯಾರೂ ಒಪ್ಪಂದವನ್ನು ಬದಲಾಯಿಸಲು ಮತ್ತು ಖಾತೆ C ಅನ್ನು ಸ್ವೀಕರಿಸುವವರಾಗಿ ಸೇರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. - -ಯಾರಾದರೂ ಪರಿಶೀಲಿಸಲು ಮತ್ತು ಲೆಕ್ಕಪರಿಶೋಧನೆ ಮಾಡಲು ಒಪ್ಪಂದಗಳು ಸಾರ್ವಜನಿಕವಾಗಿವೆ. ಇದರರ್ಥ ಕೆಟ್ಟ ಒಪ್ಪಂದಗಳು ಆಗಾಗ್ಗೆ ಸಮುದಾಯದ ಪರಿಶೀಲನೆಗೆ ಬರುತ್ತವೆ. - -ಇದರರ್ಥ ಪ್ರಸ್ತುತ ಕೋಡ್ ಓದಬಲ್ಲ ಇಥಿರಿಯಮ್ ಸಮುದಾಯದ ಹೆಚ್ಚು ತಾಂತ್ರಿಕ ಸದಸ್ಯರನ್ನು ನಂಬುವ ಅವಶ್ಯಕತೆಯಿದೆ. ಓಪನ್-ಸೋರ್ಸ್ ಆಧಾರಿತ ಸಮುದಾಯವು ಡೆವಲಪರ್ ಗಳನ್ನು ನಿಯಂತ್ರಣದಲ್ಲಿಡಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ, ಆದರೆ ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳು ಓದಲು ಸುಲಭವಾಗುವುದರಿಂದ ಮತ್ತು ಕೋಡ್‍ನ ವಿಶ್ವಾಸಾರ್ಹತೆಯನ್ನು ಸಾಬೀತುಪಡಿಸಲು ಇತರ ಮಾರ್ಗಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸುವುದರಿಂದ ಈ ಅಗತ್ಯವು ಕಾಲಾನಂತರದಲ್ಲಿ ಕಡಿಮೆಯಾಗುತ್ತದೆ. - -## ಇಥಿರಿಯಮ್ ಮತ್ತು DeFi {#ethereum-and-defi} - -ಇಥಿರಿಯಮ್ ಹಲವಾರು ಕಾರಣಗಳಿಗಾಗಿ DeFi ಗೆ ಪರಿಪೂರ್ಣ ಅಡಿಪಾಯವಾಗಿದೆ: - -- ಇಥಿರಿಯಮ್ ಅಥವಾ ಅದರ ಮೇಲೆ ವಾಸಿಸುವ ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳನ್ನು ಯಾರೂ ಹೊಂದಿಲ್ಲ - ಇದು ಎಲ್ಲರಿಗೂ DeFi ಬಳಸಲು ಅವಕಾಶವನ್ನು ನೀಡುತ್ತದೆ. ಇದರರ್ಥ ನಿಮ್ಮ ಮೇಲಿನ ನಿಯಮಗಳನ್ನು ಯಾರೂ ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. -- DeFi ಉತ್ಪನ್ನಗಳು ತೆರೆಮರೆಯಲ್ಲಿ ಒಂದೇ ಭಾಷೆಯನ್ನು ಮಾತನಾಡುತ್ತವೆ: ಇಥಿರಿಯಮ್. ಇದರರ್ಥ ಅನೇಕ ಉತ್ಪನ್ನಗಳು ತಡೆರಹಿತವಾಗಿ ಒಟ್ಟಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತವೆ. ನೀವು ಒಂದು ಪ್ಲಾಟ್‍ಫಾರ್ಮ್‍ನಲ್ಲಿ ಟೋಕನ್‍ಗಳನ್ನು ಸಾಲವಾಗಿ ನೀಡಬಹುದು ಮತ್ತು ಬಡ್ಡಿ ನೀಡುವ ಟೋಕನ್ ಅನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ವಿಭಿನ್ನ ಅಪ್ಲಿಕೇಶನ್‍ನಲ್ಲಿ ಬೇರೆ ಮಾರುಕಟ್ಟೆಯಲ್ಲಿ ವಿನಿಮಯ ಮಾಡಿಕೊಳ್ಳಬಹುದು. ಇದು ನಿಮ್ಮ ಬ್ಯಾಂಕಿನಲ್ಲಿ ಲಾಯಲ್ಟಿ ಪಾಯಿಂಟ್‍ಗಳನ್ನು ನಗದು ಮಾಡಲು ಸಾಧ್ಯವಾಗುವಂತೆ. -- ಟೋಕನ್‍ಗಳು ಮತ್ತು ಕ್ರಿಪ್ಟೋಕರೆನ್ಸಿಯನ್ನು ಹಂಚಿಕೆಯ ಲೆಡ್ಜರ್ ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ನಿರ್ಮಿಸಲಾಗಿದೆ - ವಹಿವಾಟುಗಳು ಮತ್ತು ಮಾಲೀಕತ್ವದ ಮೇಲೆ ನಿಗಾ ಇಡುವುದು ಇಥಿರಿಯಮ್‍ನ ವಿಷಯವಾಗಿದೆ. -- ಇಥಿರಿಯಮ್ ಸಂಪೂರ್ಣ ಆರ್ಥಿಕ ಸ್ವಾತಂತ್ರ್ಯವನ್ನು ಅನುಮತಿಸುತ್ತದೆ - ಹೆಚ್ಚಿನ ಉತ್ಪನ್ನಗಳು ಎಂದಿಗೂ ನಿಮ್ಮ ಹಣವನ್ನು ವಶಕ್ಕೆ ತೆಗೆದುಕೊಳ್ಳುವುದಿಲ್ಲ, ನಿಮ್ಮನ್ನು ನಿಯಂತ್ರಣದಲ್ಲಿ ಬಿಡುತ್ತವೆ. - -ನೀವು ಪದರಗಳಲ್ಲಿ DeFi ಬಗ್ಗೆ ಯೋಚಿಸಬಹುದು: - -1. ಬ್ಲಾಕ್‍ಚೈನ್ - ಇಥಿರಿಯಮ್ ವಹಿವಾಟು ಇತಿಹಾಸ ಮತ್ತು ಖಾತೆಗಳ ಸ್ಥಿತಿಯನ್ನು ಒಳಗೊಂಡಿದೆ. -2. ಸ್ವತ್ತುಗಳು - [ETH](/eth/) ಮತ್ತು ಇತರ ಟೋಕನ್‍ಗಳು (ಕರೆನ್ಸಿಗಳು). -3. ಪ್ರೋಟೋಕಾಲ್‍ಗಳು - ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಒದಗಿಸುವ [ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳು](/glossary/#smart-contract), ಉದಾಹರಣೆಗೆ, ಸ್ವತ್ತುಗಳ ವಿಕೇಂದ್ರೀಕೃತ ಸಾಲಕ್ಕೆ ಅನುಮತಿಸುವ ಸೇವೆ. -4. [ಅಪ್ಲಿಕೇಶನ್ ಗಳು](/dapps/) - ಪ್ರೋಟೋಕಾಲ್ ಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಮತ್ತು ಪ್ರವೇಶಿಸಲು ನಾವು ಬಳಸುವ ಉತ್ಪನ್ನಗಳು. - -## DeFi ನಿರ್ಮಿಸಿ {#build-defi} - -DeFi ಒಂದು ಓಪನ್ ಸೋರ್ಸ್ ಚಳವಳಿಯಾಗಿದೆ. DeFi ಪ್ರೋಟೋಕಾಲ್ ಗಳು ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್‍ಗಳು ನಿಮಗೆ ಪರಿಶೀಲಿಸಲು, ಫೋರ್ಕ್ ಮಾಡಲು ಮತ್ತು ಆವಿಷ್ಕಾರ ಮಾಡಲು ಮುಕ್ತವಾಗಿವೆ. ಈ ಲೇಯರ್ಡ್ ಸ್ಟ್ಯಾಕ್ ಕಾರಣದಿಂದಾಗಿ (ಅವೆಲ್ಲವೂ ಒಂದೇ ಮೂಲ ಬ್ಲಾಕ್‍ಚೈನ್ ಮತ್ತು ಸ್ವತ್ತುಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತವೆ), ಪ್ರೋಟೋಕಾಲ್‍ಗಳನ್ನು ಮಿಶ್ರಣ ಮಾಡಬಹುದು ಮತ್ತು ಅನನ್ಯ ಕಾಂಬೋ ಅವಕಾಶಗಳನ್ನು ಅನ್‍ಲಾಕ್ ಮಾಡಲು ಹೊಂದಿಸಬಹುದು. - - - dapps ಗಳನ್ನು ನಿರ್ಮಿಸುವ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು - - -## Further reading {#futher-reading} - -### DeFi ಡೇಟಾ {#defi-data} - -- [DeFi ಪ್ರೈಮ್](https://defiprime.com/) -- [DeFi Llama](https://defillama.com/) -- [DeFi ದರ](https://defirate.com/) - -### DeFi ಲೇಖನಗಳು {#defi-articles} - -- [DeFi ಗೆ ಆರಂಭಿಕ ಮಾರ್ಗದರ್ಶಿ](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) - _ಸಿಡ್ ಕೊಯೆಲ್ಹೋ-ಪ್ರಭು, ಜನವರಿ 6, 2020_ - -### Videos {#videos} - -- [ಫೈನ್ಮ್ಯಾಟಿಕ್ಸ್ - ವಿಕೇಂದ್ರೀಕೃತ ಹಣಕಾಸು ಶಿಕ್ಷಣ](https://finematics.com/) - _DeFi ಕುರಿತ ವೀಡಿಯೊಗಳು_ -- [ದಿ ಡಿಫೆಂಟ್](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _DeFi ಬೇಸಿಕ್ಸ್: ಸಾಂದರ್ಭಿಕವಾಗಿ ಗೊಂದಲಮಯವಾಗಿರುವ ಈ ಜಾಗದಲ್ಲಿ ಪ್ರಾರಂಭಿಸಲು ನೀವು ತಿಳಿದುಕೊಳ್ಳಬೇಕಾದ ಎಲ್ಲವೂ._ -- [ವೈಟ್ಬೋರ್ಡ್ ಕ್ರಿಪ್ಟೋ](https://youtu.be/17QRFlml4pA)_DeFi ಎಂದರೇನು?_ - -### ಸಮುದಾಯಗಳು {#communities} - -- [DeFi Llama ಡಿಸ್ಕಾರ್ಡ್ ಸರ್ವರ್](https://discord.gg/buPFYXzDDd) -- [DeFi Pulse ಡಿಸ್ಕಾರ್ಡ್ ಸರ್ವರ್](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/kn/desci/index.md b/src/content/translations/kn/desci/index.md deleted file mode 100644 index 226773fc7c2..00000000000 --- a/src/content/translations/kn/desci/index.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: ವಿಕೇಂದ್ರೀಕರಿತ ವಿಜ್ಞಾನ (ಡಿಸೈ) -description: ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ವಿಕೇಂದ್ರೀಕೃತ ವಿಜ್ಞಾನದ ಒಂದು ಅವಲೋಕನ -lang: kn -template: use-cases -emoji: ":microscope:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: ಪ್ರಸ್ತುತ ವೈಜ್ಞಾನಿಕ ವ್ಯವಸ್ಥೆಗೆ ಜಾಗತಿಕ, ಮುಕ್ತ ಪರ್ಯಾಯ. -summaryPoint2: ವಿಜ್ಞಾನಿಗಳಿಗೆ ಅನ್ವಯಿಸಿಕೊಳ್ಳುವ ಹಣ ಸಂಗ್ರಹಣೆ, ಪ್ರಯೋಗಾಲೋಚನೆ ನಡೆಸುವುದು, ಡೇಟಾ ಹಂಚಿಕೆ ಮಾಡುವುದು, ಅರಿವುಗಳನ್ನು ಹರಡುವುದು, ಮತ್ತು ಇತರ ಕ್ರಿಯೆಗಳನ್ನು ಮುಗಿಸಿಕೊಳ್ಳುವ ತಂತ್ರಜ್ಞಾನ ಮತ್ತಷ್ಟು ಆಗಿದೆ. -summaryPoint3: ಮುಕ್ತ ವಿಜ್ಞಾನ ಚಳುವಳಿಗೆ ಆಧಾರವಾಗಿ ನಿರ್ಮಿಸಲಾಗುತ್ತದೆ. ---- - -## ಸ್ವತಂತ್ರ ವಿಜ್ಞಾನ (DeSci) ಎಂದರೇನು? {#what-is-desci} - -ಡಿಸೆಂಟ್ರಲೈಸ್ಡ್‌ ಸೈನ್ಸ್ (DeSci) Web3 ಸ್ಟ್ಯಾಕ್‌ನ ಬಳಕೆಯನ್ನು ಬಳಸಿ, ತರಬೇತಿಗೊಳಿಸುವ ಜನರ ಅನುಭವ ಸರಣಿ, ಸೃಷ್ಟಿಸುವ ಹಾಗೂ ಸಮೀಕ್ಷೆಯನ್ನು ಮಾಡುವುದು, ಪ್ರಶಸ್ತಿ ಪಡೆಯುವುದು, ಇಳಿಯುವುದು ಮತ್ತು ವಿಜ್ಞಾನಿಕ ಜ್ಞಾನವನ್ನು ನ್ಯಾಯವಾಗಿ ಮತ್ತು ಸಮಾನವಾಗಿ ಜನರಿಗೆ ಹಂಚಿಕೊಡುವುದು ಗುರಿಯಾಗಿದೆ. - -DeSci ವಿಜ್ಞಾನಿಗಳು ತಮ್ಮ ಸಂಶೋಧನೆಯನ್ನು ನಿಸ್ವಾರ್ಥವಾಗಿ ಪ್ರಖರವಾಗಿ ಹಂಚಿ ಅದರ ಕೃತಿಯನ್ನು ಗೌರವಿಸಲು ಪ್ರೇರಿಸುವ ಪರಿಸರವನ್ನು ಸೃಷ್ಟಿಸಲು ಉದ್ದೇಶಿಸುತ್ತಿದೆ. ಹೀಗೆಯೇ ಯಾವುದೇ ವ್ಯಕ್ತಿಗೂ ಸಂಶೋಧನೆಗೆ ಸುಲಭವಾದ ಪ್ರವೇಶವನ್ನೂ ಕೊಡುತ್ತದೆ ಮತ್ತು ಅದರಲ್ಲಿ ಭಾಗವಹಿಸುವುದೂ ಸಾಧ್ಯವಾಗುವ ಒಂದು ಪರಿಸರವನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ. ವಿಜ್ಞಾನದ ಜ್ಞಾನವು ಪ್ರತಿಯೊಬ್ಬರಿಗೂ ಸುಲಭವಾಗಿ ಹೊಂದಿಕೊಳ್ಳಬೇಕೆಂದು ಮತ್ತು ವಿಜ್ಞಾನ ಸಂಶೋಧನೆಯ ಪ್ರಕ್ರಿಯೆಯು ಪ್ರಾದೇಶಿಕವಾಗಿರಬೇಕೆಂದು ನಿರೀಕ್ಷೆಯನ್ನು ಅನುಸರಿಸುವ ವಿಚಾರದ ಆಧಾರದ ಮೇಲೆ DeSci ಕೆ ಕಾರ್ಯ ನಡೆಸುತ್ತದೆ. DeSci ಸಾಮಾಜಿಕ ಅಧ್ಯಯನ ಆಧಾರಿತ ಮತ್ತು ಪರಿಶೀಲಿಸುವ ಏಕೀಕೃತ ಮತ್ತು ವಿಸ್ತರಿಸಿದ ವಿಜ್ಞಾನಿಗೆ ಅನುಕೂಲವಾಗಿ ಹೊಸ ವಿಜ್ಞಾನ ಹಂತವನ್ನು ರೂಪಿಸುತ್ತಿದೆ, ಅದನ್ನು ಸೆಂಟ್ರಲ್ ಆಡಳಿತದ ಮೇಲೆ ನಿಗದಿಪಡಿಸುವ ಹಂತಕ್ಕಿಂತ ಹೆಚ್ಚಿನ ಹೋರಾಟ ಮಾಡಲು ಹೊಂದಿಕೊಳ್ಳುತ್ತಿದೆ. DeSci ಹೂಡಾಡುತ್ತಿರುವ ಆಶಿಸುವುದು, ಅನ್ವಯವಾದ ಹಣ ಸುಲಭವಾಗಿ ಹೊಂದಿಕೊಳ್ಳುವುದು, ವೈಜ್ಞಾನಿಕ ಉಪಕರಣಗಳನ್ನು ಮತ್ತು ಸಂಪರ್ಕ ಕೇಂದ್ರಗಳಿಗೆ ಅಪವಾದಕರ ಕಲ್ಪನೆಗಳ ಬೆಳವಣಿಗೆಗೆ ಒಂದು ಪರಿಸರ ರಚಿಸುವುದನ್ನುಕ್ಕೊಳ್ಳುವುದು. - -ವಿಕೇಂದ್ರೀಕೃತ ವಿಜ್ಞಾನವು ಹೆಚ್ಚು ವೈವಿಧ್ಯಮಯ ಧನಸಹಾಯ ಮೂಲಗಳನ್ನು ([DAOs](/dao/), [ಕ್ವಾಡ್ರಾಟಿಕ್ ದೇಣಿಗೆಗಳಿಂದ](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) ಕ್ರೌಡ್ ಫಂಡಿಂಗ್ ಮತ್ತು ಹೆಚ್ಚಿನವು), ಹೆಚ್ಚು ಪ್ರವೇಶಿಸಬಹುದಾದ ಪ್ರವೇಶ ಡೇಟಾ ಮತ್ತು ವಿಧಾನಗಳು ಮತ್ತು ಪುನರುತ್ಪಾದನೆಗೆ ಪ್ರೋತ್ಸಾಹಕಗಳನ್ನು ಒದಗಿಸುವ ಮೂಲಕ ಅನುಮತಿಸುತ್ತದೆ. - -### ಜುವಾನ್ ಬೆನೆಟ್ - ಡಿಸ್ಯೆ ಚಲನೆ - - - -## DeSci ವಿಜ್ಞಾನವನ್ನು ಹೇಗೆ ಸುಧಾರಿಸುತ್ತದೆ {#desci-improves-science} - -ವಿಜ್ಞಾನದಲ್ಲಿ ಮುಖ್ಯ ಸಮಸ್ಯೆಗಳ ಒಂದು ಅಪೂರ್ಣ ಪಟ್ಟಿ ಮತ್ತು ಈ ಸಮಸ್ಯೆಗಳನ್ನು ಸಮಾಧಾನ ಹೇಗೆ ಪಡೆಯಬೇಕೆಂದು ಸೂಕ್ತಿಸುವ ವಿಜ್ಞಾನ ವಿಕೇಂದ್ರೀಕೃತ ವಿಜ್ಞಾನ ಹೇಗೆ ಸಹಾಯ ಮಾಡಬಹುದು - -| **ವಿಕೇಂದ್ರೀಕೃತ ವಿಜ್ಞಾನ** | **ಸಾಂಪ್ರದಾಯಿಕ ವಿಜ್ಞಾನ** | -| ---------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | -| ಹಣದ ವಿತರಣೆಯು ಬೇರೆಯವರು ಬಳಸುವ ಕ್ವಾಡ್ರಾಟಿಕ್ ದಾನಗಳು ಅಥವಾ DAO ಗಳು ಮುಂತಾದ ಯಂತ್ರಗಳ ಮೂಲಕ ಪ್ರಜೆಗೆ ನಿರ್ಧರಿಸಲಾಗುತ್ತದೆ. | ಸಣ್ಣ, ಮುಚ್ಚಿದ, ಕೇಂದ್ರೀಕೃತ ಗುಂಪುಗಳು ನಿಧಿಯ ವಿತರಣೆಯನ್ನು ನಿಯಂತ್ರಿಸುತ್ತವೆ. | -| ನೀವು ವಿಶ್ವದ ವಿವಿಧ ದೇಶಗಳಿಂದ ಬಂದ ಸಹೋದ್ಯೋಗಿಗಳೊಂದಿಗೆ ಚಟುವಟಿಕೆಗಾಗಿ ಸೇರುತ್ತೀರಿ. | ಧನಸಹಾಯ ಸಂಸ್ಥೆಗಳು ಮತ್ತು ಗೃಹ ಸಂಸ್ಥೆಗಳು ನಿಮ್ಮ ಸಹಯೋಗವನ್ನು ಮಿತಿಗೊಳಿಸುತ್ತವೆ. | -| ನಿಧಿ ನಿರ್ಧಾರಣೆಗಳು ಆನ್‌ಲೈನ್ ಮತ್ತು ಪಾರದರ್ಶಕವಾಗಿ ಮಾಡಲ್ಪಡುತ್ತವೆ. ಹೊಸ ಹಣಕಾಸಿನ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಅನ್ವೇಷಿಸಲಾಗಿದೆ. | ನಿಧಿ ನಿರ್ಧಾರಣೆಗಳು ದೀರ್ಘ ವಿಮರ್ಶಾಕಾಲದಲ್ಲಿ ಮತ್ತು ಸೀಮಿತ ಪಾರದರ್ಶಕತೆಯಿಂದ ನಡೆದುಕೊಳ್ಳುತ್ತವೆ. ಕೆಲವು ಹಣಕಾಸಿನ ಕಾರ್ಯವಿಧಾನಗಳು ಅಸ್ತಿತ್ವದಲ್ಲಿವೆ. | -| ವೆಬ್ 3 ಮೂಲಕ ಶಾಲೆ ಸೇವೆಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳುವುದು ಹೆಚ್ಚು ಸುಲಭ ಮತ್ತು ಸ್ಪಷ್ಟವಾಗಿದೆ. | ಪ್ರಯೋಗಾಲಯ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಹಂಚುವುದು ಸುಮಾರು ನೆಟ್ಟಗಣ್ಣಿನಿಂದ ಮತ್ತು ಮಂದಬುದ್ಧಿಯಿಂದಾಗಿದೆ. | -| ಟ್ರಸ್ಟ್, ಪ್ರಕಾಶನೆಗೆ ಟ್ರಾನ್ಸ್‌ಪ್ಯಾರೆನ್ಸಿ ಮತ್ತು ವಿಶ್ವವ್ಯಾಪಿ ಪ್ರವೇಶಕ್ಕಾಗಿ ವೆಬ್ 3 ಮೂಲಭೂತ ಆಧಾರಗಳನ್ನು ಬಳಸುವ ಹೊಸ ಮಾದರಿಗಳನ್ನು ತಯಾರಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ. | ಅಸಮರ್ಥ, ಪಕ್ಷಪಾತ ಮತ್ತು ಶೋಷಣೆ ಎಂದು ಆಗಾಗ್ಗೆ ಒಪ್ಪಿಕೊಂಡಿರುವ ಸ್ಥಾಪಿತ ಮಾರ್ಗಗಳ ಮೂಲಕ ನೀವು ಪ್ರಕಟಿಸುತ್ತೀರಿ. | -| ಪೀರ್-ರಿವ್ಯೂ ಮಾಡುವ ಕೆಲಸಕ್ಕಾಗಿ ನೀವು ಟೋಕನ್‌ಗಳು ಮತ್ತು ಖ್ಯಾತಿಯನ್ನು ಗಳಿಸಬಹುದು. | ನಿಮ್ಮ ಪೀರ್-ರಿವ್ಯೂ ಕೆಲಸವು ಪಾವತಿಸದೆ, ಲಾಭದಾಯಕ ಪ್ರಕಾಶಕರಿಗೆ ಪ್ರಯೋಜನವನ್ನು ನೀಡುತ್ತದೆ. | -| ನೀವು ಬೌದ್ಧಿಕ ಆಸ್ತಿಯನ್ನು (IP) ಹೊಂದಿದ್ದೀರಿ ಮತ್ತು ಅದನ್ನು ಪಾರದರ್ಶಕ ನಿಯಮಗಳ ಪ್ರಕಾರ ವಿತರಿಸುತ್ತೀರಿ. | ನಿಮ್ಮ ಮನೆಯ ಸಂಸ್ಥೆಯು ನೀವು ಉತ್ಪಾದಿಸುವ IP ಅನ್ನು ಹೊಂದಿದೆ. IP ಗೆ ಪ್ರವೇಶವು ಪಾರದರ್ಶಕವಾಗಿಲ್ಲ. | -| ಎಲ್ಲ ಸಂಶೋಧನೆಯನ್ನು ಹಾಗೂ ಯಶಸ್ವೀಯಾಗಿರಲಿಲ್ಲದ ಪ್ರಯತ್ನಗಳ ಡೇಟಾವನ್ನು ಹೊಂದಿರುವ, ಅನ್ನುವ ಮೂಲಕವಾಗಿ ಎಲ್ಲ ಹೆಜ್ಜೆಗಳನ್ನು ಒಂದು-ಚೈನ್ ಮೇಲೆ ಹಂಚಿಕೊಳ್ಳುವುದು. | ಪಬ್ಲಿಕೇಷನ್ ಪಕ್ಷಪಾತ ಎಂದರೆ ಸಂಶೋಧಕರು ಯಶಸ್ವಿ ಫಲಿತಾಂಶಗಳನ್ನು ಹೊಂದಿರುವ ಪ್ರಯೋಗಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳುವ ಸಾಧ್ಯತೆ ಹೆಚ್ಚು. | - -## ಇಥಿರಿಯಮ್ ಮತ್ತು DeSci {#ethereum-and-desci} - -ಒಂದು ಅಕಂಪುನಿಯಂತೆಯೇ ವಿಜ್ಞಾನ ವ್ಯವಸ್ಥೆಗೆ ದೃಢವಾದ ಸುರಕ್ಷೆ, ಕನಿಷ್ಠ ಹಣ ಮತ್ತು ಲಂಚದ ಖರ್ಚುಗಳು ಮತ್ತು ಅರ್ಜನೆ ಅಭಿವೃದ್ಧಿಗಾಗಿ ಒಂದು ಸ್ಥಳೀಯವಾದ ಸರಪಡಿಯು ಅಗತ್ಯವಾಗುತ್ತದೆ. ಇಥಿರಿಯಮ್ ಒಂದು ಆಧಾರವಾದ ವಿಜ್ಞಾನ ಉಸಿರಾಟಕ್ಕೆ ಅನ್ಯತ್ರ ಬೇಕಾದ ಎಲ್ಲವನ್ನು ಒದಗಿಸುತ್ತದೆ. - -## DeSci ಬಳಕೆಯ ಪ್ರಕರಣಗಳು {#use-cases} - -DeSci Web2 ಅಕ್ಯಾಡೆಮಿಯನ್ನು ಡಿಜಿಟಲ್ ಪ್ರಪಂಚಕ್ಕೆ ಸೇರಿಸಲು ವಿಜ್ಞಾನಿಗಳ ಟೂಲ್‍ಸೆಟ್ ನಿರ್ಮಿಸುತ್ತಿದೆ. ಜ್ಞಾನಶಾಸ್ತ್ರ ಸಮುದಾಯಕ್ಕೆ Web3 ಅನ್ನು ಒದಗಿಸಬಹುದಾದ ಬಳಕೆಗಳ ಒಂದು ನಮೂದಾವಳಿ ಕೆಳಗೆ ಇದೆ. - -### ಪ್ರಕಟಿಸಲಾಗುತ್ತಿದೆ {#publishing} - -ವಿಜ್ಞಾನ ಪ್ರಕಟಣೆ ಯಜಮಾನಿಗಳ ಮೂಲಕ ನಿರ್ವಹಿಸಲ್ಪಟ್ಟ ಹಳೆಯದಾಗಿದೆ, ಯಾಕೆಂದರೆ ಅದು ವಿಜ್ಞಾನಿಗಳ, ವಿಮರ್ಶಕರ ಮತ್ತು ಸಂಪಾದಕರ ಮೂಲಕ ಉತ್ಪನ್ನಗೊಳ್ಳುವ ಪ್ರಬಂಧಗಳ ಮೇಲೆ ಮುಕ್ತಾಯವಿಲ್ಲದ ಕೆಲಸಕ್ಕೆ ನಿರರ್ಥಕಗಳನ್ನು ಆಧಾರಿಸಿರುವ ಪ್ರಕಟಣೆ ಶಿಸ್ತು ಆಯ್ಕೆಗೆ ಗೊತ್ತಾಗಿದೆ. ಪ್ರಕಟಣೆ ಹಂಚುವ ವ್ಯಯದ ಮೂಲಕ ಹಣ ಪಡೆದ ಜನರು ಸಾಮಾನ್ಯವಾಗಿ ಪ್ರಕಟಣೆಗೆ ಮತ್ತು ಪ್ರಕಟಣೆ ಖರ್ಚುಗಳಿಗೆ ನೇರವಾಗಿ ಪ್ರಮುಖವಾಗಿ ತೆರವಲ್ಲಿರುವ ಸಾರ್ವಜನಿಕರು, ಪ್ರಕಟಣೆಯನ್ನು ಮತ್ತೆ ಪ್ರಕಟಿಸುವುದಕ್ಕಾಗಿ ಪುನಃ ಪ್ರಕಟಕರಿಗೆ ಹಣ ಪಡೆದು ಪ್ರವೇಶಿಸುವುದಿಲ್ಲ. ವೈಯಕ್ತಿಕ ವಿಜ್ಞಾನ ಪತ್ರಿಕೆಗಳನ್ನು ಪ್ರಕಟಿಸುವ ಒಟ್ಟು ಶುಲ್ಕವು ಸಾಮಾನ್ಯವಾಗಿ ಐದು ಅಂಕಿಗಳು ($USD), ಇದು ವೈಜ್ಞಾನಿಕ ಜ್ಞಾನವನ್ನು [ಸಾರ್ವಜನಿಕ ಒಳಿತಾಗಿ](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-ಸ್ಥಳೀಯ ಉಪಕರಣಗಳು ಪುನರುತ್ಪಾದನೆ ಮತ್ತು ಪುನರಾವರ್ತನೆಯು ಆವಿಷ್ಕಾರದ ಆಧಾರವಾಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಬಹುದು. ನಾವು ಶೈಲಿಯನ್ನು ಅಕಡಮಿಯಾದ ವೈಜ್ಞಾನಿಕ ಸಚರಾಚರ ಕಪಡಿಗೆ ನೆಡಬಹುದು. ವೆಬ್3 ಪ್ರತಿ ವಿಶ್ಲೇಷಣಾ ಘಟಕಕ್ಕೆ ಪ್ರಮಾಣಿಕತೆಯನ್ನು ರಚಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಒದಗಿಸುತ್ತದೆ: ಅವೊಂದಕ್ಕೆ ಕ್ರಿಯಾಶೀಲಕವಾಗಿರುವ ನಿಗದಿತ ಮಾಹಿತಿ, ಗಣಕ ಇಂಜಿನ್, ಮತ್ತು ಅರ್ಜಿ ಫಲಿತಾಂಶ. ಒಪ್ಪಂದದ ವ್ಯವಸ್ಥೆಗಳ ಸೌಂದರ್ಯವೆಂದರೆ, ಈ ಘಟ್ಟಗಳನ್ನು ನಿರ್ವಹಿಸುವ ನಂತರ ನಂತರ ಯಾವುದೇ ವಿಶ್ವಸನೀಯ ನೆಟ್‍ವರ್ಕ್ ರಚನೆಗೆ ಒಂದು ನಿರ್ವಹಕರು ಪ್ರತಿಪುಷ್ಟಿಯನ್ನು ಮತ್ತು ಪ್ರತಿ ಫಲಿತಾಂಶವನ್ನು ಪರಿಶೀಲಿಸಲು ಜವಾಬ್ದಾರರಾಗಬಹುದು. - -### ಧನಸಹಾಯ {#funding} - -ಧನಸಹಾಯ ವಿಜ್ಞಾನಕ್ಕೆ ಪ್ರಸ್ತುತ ಪ್ರಮಾಣಿತ ಮಾದರಿಯೆಂದರೆ ವ್ಯಕ್ತಿಗಳು ಅಥವಾ ವಿಜ್ಞಾನಿಗಳ ಗುಂಪುಗಳು ನಿಧಿಸಂಸ್ಥೆಗೆ ಲಿಖಿತ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಮಾಡುತ್ತವೆ. ವಿಶ್ವಾಸಾರ್ಹ ವ್ಯಕ್ತಿಗಳ ಸಣ್ಣ ಸಮಿತಿಯು ಅರ್ಜಿಗಳನ್ನು ಸ್ಕೋರ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ನಂತರ ಅಭ್ಯರ್ಥಿಗಳ ಸಣ್ಣ ಭಾಗಕ್ಕೆ ಹಣವನ್ನು ನೀಡುವ ಮೊದಲು ಅಭ್ಯರ್ಥಿಗಳನ್ನು ಸಂದರ್ಶಿಸುತ್ತದೆ. ಅರ್ಜಿ ಸಲ್ಲಿಸುವುದರಲ್ಲಿ ಮತ್ತು ಅನುದಾನ ಪಡೆಯುವುದರಲ್ಲಿ ವರ್ಷಗಳವರೆಗೆ ಕಾಯುವ ವೇಳೆಗೆ ಹೇಳಿದ್ದರಿಂದ, ಈ ಮಾದರಿಯು ಪರೀಕ್ಷಾ ಪಟ್ಟಿಯ ಅಭಿರುಚಿಗಳು, ಆತ್ಮಹಿತಗಳು ಮತ್ತು ರಾಜಕೀಯಗಳಿಂದ ಉಂಟಾಗುವ ಭದ್ರತೆಗೆ ತುಂಬಾ ಕಾರಣಗಳಾಗಿವೆ ಎಂದು ತಿಳಿಯಲಾಗಿದೆ. - -ವಿವಿಧ ಪ್ಯಾನೆಲ್‌ಗಳಿಗೆ ನೀಡಿದ ಅದೇ ಪ್ರಸ್ತಾವನೆಗಳು ವಿಭಿನ್ನ ಫಲಿತಾಂಶಗಳನ್ನು ಹೊಂದಿರುವುದರಿಂದ ಅನುದಾನ ಪರಿಶೀಲನಾ ಫಲಕಗಳು ಉತ್ತಮ-ಗುಣಮಟ್ಟದ ಪ್ರಸ್ತಾವನೆಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡುವ ಕಳಪೆ ಕೆಲಸವನ್ನು ಮಾಡುತ್ತವೆ ಎಂದು ಅಧ್ಯಯನಗಳು ತೋರಿಸಿವೆ. ಧನಸಹಾಯವು ಹೆಚ್ಚು ವಿರಳವಾಗಿರುವುದರಿಂದ, ಇದು ಹೆಚ್ಚು ಬೌದ್ಧಿಕವಾಗಿ ಸಂಪ್ರದಾಯವಾದಿ ಯೋಜನೆಗಳೊಂದಿಗೆ ಹೆಚ್ಚು ಹಿರಿಯ ಸಂಶೋಧಕರ ಒಂದು ಸಣ್ಣ ಪೂಲ್ ಆಗಿ ಕೇಂದ್ರೀಕೃತವಾಗಿದೆ. ಪರಿಣಾಮವು ಹೈಪರ್-ಸ್ಪರ್ಧಾತ್ಮಕ ನಿಧಿಯ ಭೂದೃಶ್ಯವನ್ನು ಸೃಷ್ಟಿಸಿದೆ, ವಿಕೃತ ಪ್ರೋತ್ಸಾಹಗಳನ್ನು ಮತ್ತು ಹೊಸತನವನ್ನು ನಿಗ್ರಹಿಸುತ್ತದೆ. - -ವೆಬ್3 ಬ್ರಾಡ್ಲಿ ದೀರ್ಘಪ್ರಯಾಸಗಳು ಮತ್ತು 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 ಮಾಲೀಕತ್ವ ಮತ್ತು ಅಭಿವೃದ್ಧಿ {#ip-ownership} - -ಬೌದ್ಧಿಕ ಆಸ್ತಿ (IP) ಸಾಂಪ್ರದಾಯಿಕ ವಿಜ್ಞಾನದಲ್ಲಿ ಒಂದು ದೊಡ್ಡ ಸಮಸ್ಯೆಯಾಗಿದೆ: ವಿಶ್ವವಿದ್ಯಾನಿಲಯಗಳಲ್ಲಿ ಸಿಲುಕಿಕೊಳ್ಳುವುದರಿಂದ ಅಥವಾ ಬಯೋಟೆಕ್‌ಗಳಲ್ಲಿ ಬಳಕೆಯಾಗದಿರುವುದು, ಕುಖ್ಯಾತವಾಗಿ ಮೌಲ್ಯಯುತವಾಗಿ ಕಷ್ಟಕರವಾಗಿದೆ. ಆದಾಗ್ಯೂ, ಡಿಜಿಟಲ್ ಸ್ವತ್ತುಗಳ ಮಾಲೀಕತ್ವವು (ವೈಜ್ಞಾನಿಕ ಡೇಟಾ ಅಥವಾ ಲೇಖನಗಳಂತಹ) Web3 [ನಾನ್-ಫಂಜಿಬಲ್ ಟೋಕನ್‍ಗಳನ್ನು (NFTs)](/nft/) ಬಳಸಿಕೊಂಡು ಅಸಾಧಾರಣವಾಗಿ ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. - -NFT ಗಳು ಭವಿಷ್ಯದ ವಹಿವಾಟುಗಳಿಗೆ ಆದಾಯವನ್ನು ಮೂಲ ರಚನೆಕಾರರಿಗೆ ಹಿಂದಿರುಗಿಸುವ ರೀತಿಯಲ್ಲಿಯೇ, ಸಂಶೋಧಕರು, ಆಡಳಿತ ಮಂಡಳಿಗಳು (DAO ಗಳಂತಹವು) ಅಥವಾ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸಿದ ವಿಷಯಗಳಿಗೆ ಬಹುಮಾನ ನೀಡಲು ನೀವು ಪಾರದರ್ಶಕ ಮೌಲ್ಯ ಗುಣಲಕ್ಷಣ ಸರಪಳಿಗಳನ್ನು ಸ್ಥಾಪಿಸಬಹುದು. - -[IP-NFTs](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) ಕೈಗೊಳ್ಳಲಾಗುತ್ತಿರುವ ಸಂಶೋಧನಾ ಪ್ರಯೋಗಗಳ ವಿಕೇಂದ್ರೀಕೃತ ದತ್ತಾಂಶ ಭಂಡಾರಕ್ಕೆ ಕೀಲಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸಬಹುದು ಮತ್ತು NFT ಮತ್ತು [DeFi](/defi/) ವಾಣಿಜ್ಯೀಕರಣಕ್ಕೆ (ಫ್ರಾಕ್ಷನಲೈಸೇಶನ್‍ನಿಂದ ಸಾಲದ ಕೊಳಗಳು ಮತ್ತು ಮೌಲ್ಯ ಮೌಲ್ಯಮಾಪನದವರೆಗೆ) ಪ್ಲಗ್ ಮಾಡಬಹುದು. ಇದು [VitaDAO](https://www.vitadao.com/)ದಂತಹ DAOsಗಳಂತಹ ಸ್ಥಳೀಯವಾಗಿ ಆನ್-ಚೈನ್ ಘಟಕಗಳಿಗೆ ನೇರವಾಗಿ ಸರಪಳಿಯಲ್ಲಿ ಸಂಶೋಧನೆ ನಡೆಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ವರ್ಗಾವಣೆ ಮಾಡಲಾಗದ [ಸೋಲ್‌ಬೌಂಡ್" ಟೋಕನ್‌ಗಳ](https://vitalik.ca/general/2022/01/26/soulbound.html) ಆಗಮನವು ವ್ಯಕ್ತಿಗಳು ತಮ್ಮ ಅನುಭವ ಮತ್ತು ಅವರ Ethereum ವಿಳಾಸಕ್ಕೆ ಲಿಂಕ್ ಮಾಡಲಾದ ರುಜುವಾತುಗಳನ್ನು ಸಾಬೀತುಪಡಿಸಲು ಅನುಮತಿಸುವ ಮೂಲಕ DeSci ನಲ್ಲಿ ಪ್ರಮುಖ ಪಾತ್ರವನ್ನು ವಹಿಸಬಹುದು. - -### ಡೇಟಾ ಸಂಗ್ರಹಣೆ, ಪ್ರವೇಶ ಮತ್ತು ವಾಸ್ತುಶಿಲ್ಪ {#data-storage} - -ವೆಬ್3 ಮಾದರಿಗಳನ್ನು ಬಳಸಿಕೊಂಡು ವೈಜ್ಞಾನಿಕ ಡೇಟಾವನ್ನು ಹೆಚ್ಚು ಸುಲಭವಾಗಿ ಪ್ರವೇಶಿಸಬಹುದು ಮತ್ತು ವಿತರಣಾ ಸಂಗ್ರಹಣೆಯು ದುರಂತ ಘಟನೆಗಳನ್ನು ಬದುಕಲು ಸಂಶೋಧನೆಯನ್ನು ಶಕ್ತಗೊಳಿಸುತ್ತದೆ. - -ಆರಂಭಿಕ ಹಂತವು ಸರಿಯಾದ ಪರಿಶೀಲಿಸಬಹುದಾದ ರುಜುವಾತುಗಳನ್ನು ಹೊಂದಿರುವ ಯಾವುದೇ ವಿಕೇಂದ್ರೀಕೃತ ಗುರುತಿನ ಮೂಲಕ ಪ್ರವೇಶಿಸಬಹುದಾದ ಸಿಸ್ಟಮ್ ಆಗಿರಬೇಕು. ಇದು ಸೂಕ್ಷ್ಮ ಡೇಟಾವನ್ನು ವಿಶ್ವಾಸಾರ್ಹ ಪಕ್ಷಗಳಿಂದ ಸುರಕ್ಷಿತವಾಗಿ ಪುನರಾವರ್ತಿಸಲು ಅನುಮತಿಸುತ್ತದೆ, ಪುನರುಕ್ತಿ ಮತ್ತು ಸೆನ್ಸಾರ್ಶಿಪ್ ಪ್ರತಿರೋಧವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ, ಫಲಿತಾಂಶಗಳ ಪುನರುತ್ಪಾದನೆ ಮತ್ತು ಡೇಟಾಸೆಟ್‌ಗೆ ಹೊಸ ಡೇಟಾವನ್ನು ಸಹಯೋಗಿಸಲು ಮತ್ತು ಸೇರಿಸಲು ಬಹು ಪಕ್ಷಗಳ ಸಾಮರ್ಥ್ಯವನ್ನು ಸಹ ಅನುಮತಿಸುತ್ತದೆ. [ಕಂಪ್ಯೂಟ್-ಟು-ಡೇಟಾದಂತಹ](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol) ಗೌಪ್ಯ ಕಂಪ್ಯೂಟಿಂಗ್ ವಿಧಾನಗಳು Raw ಡೇಟಾ ಪುನರಾವರ್ತನೆಗೆ ಪರ್ಯಾಯ ಪ್ರವೇಶ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಒದಗಿಸುತ್ತವೆ, ಅತ್ಯಂತ ಸೂಕ್ಷ್ಮ ಡೇಟಾಕ್ಕಾಗಿ ವಿಶ್ವಾಸಾರ್ಹ ಸಂಶೋಧನಾ ಪರಿಸರವನ್ನು ರಚಿಸುತ್ತವೆ. ಕೋಡ್ ಮತ್ತು ಅಭ್ಯಾಸಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಪ್ರಮಾಣೀಕೃತ ಪರಿಸರವನ್ನು ಬಳಸಿಕೊಂಡು ಸಂಶೋಧಕರು ಸೈಟ್ನಲ್ಲಿ ಡೇಟಾದೊಂದಿಗೆ ಸುರಕ್ಷಿತವಾಗಿ ಕೆಲಸ ಮಾಡುವ ಪರಿಸರ ವ್ಯವಸ್ಥೆಯನ್ನು ರಚಿಸುವ ಮೂಲಕ ಡೇಟಾ ಗೌಪ್ಯತೆ ಮತ್ತು ಸಹಯೋಗಕ್ಕೆ ಭವಿಷ್ಯದ ಪರಿಹಾರವಾಗಿ ವಿಶ್ವಾಸಾರ್ಹ ಸಂಶೋಧನಾ ಪರಿಸರಗಳನ್ನು [NHS ಉಲ್ಲೇಖಿಸಿದೆ](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb). - -ಫ್ಲೆಕ್ಸಿಬಲ್ Web3 ಡೇಟಾ ಪರಿಹಾರಗಳು ಮೇಲಿನ ಸನ್ನಿವೇಶಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತವೆ ಮತ್ತು ನಿಜವಾದ ಓಪನ್ ಸೈನ್ಸ್‌ಗೆ ಅಡಿಪಾಯವನ್ನು ಒದಗಿಸುತ್ತವೆ, ಅಲ್ಲಿ ಸಂಶೋಧಕರು ಪ್ರವೇಶ ಅನುಮತಿಗಳು ಅಥವಾ ಶುಲ್ಕಗಳಿಲ್ಲದೆ ಸಾರ್ವಜನಿಕ ಸರಕುಗಳನ್ನು ರಚಿಸಬಹುದು. IPFS, Arweave ಮತ್ತು Filecoin ನಂತಹ Web3 ಸಾರ್ವಜನಿಕ ಡೇಟಾ ಪರಿಹಾರಗಳನ್ನು ವಿಕೇಂದ್ರೀಕರಣಕ್ಕಾಗಿ ಹೊಂದುವಂತೆ ಮಾಡಲಾಗಿದೆ. dClimate, ಉದಾಹರಣೆಗೆ, ಹವಾಮಾನ ಕೇಂದ್ರಗಳು ಮತ್ತು ಮುನ್ಸೂಚನೆಯ ಹವಾಮಾನ ಮಾದರಿಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ಹವಾಮಾನ ಮತ್ತು ಹವಾಮಾನ ಡೇಟಾಗೆ ಸಾರ್ವತ್ರಿಕ ಪ್ರವೇಶವನ್ನು ಒದಗಿಸುತ್ತದೆ. - -## ತೊಡಗಿಸಿಕೊಳ್ಳಿ {#get-involved} - -ಯೋಜನೆಗಳನ್ನು ಅನ್ವೇಷಿಸಿ ಮತ್ತು DeSci ಸಮುದಾಯಕ್ಕೆ ಸೇರಿ. - -- [DeSci.Global: ಜಾಗತಿಕ ಘಟನೆಗಳು ಮತ್ತು ಮೀಟಪ್ ಕ್ಯಾಲೆಂಡರ್](https://desci.global) -- [ವಿಜ್ಞಾನ ಗಾಗಿ ಬ್ಲಾಕ್‍ಚೈನ್ ಟೆಲಿಗ್ರಾಮ್](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: DeSci ಪಬ್ಲಿಷಿಂಗ್ ಟೂಲ್ ಬಿಲ್ಡರ್](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 ಅಥವಾ DeSci ಯೋಜನೆಗೆ ಧನಸಹಾಯ ಪಡೆಯಿರಿ](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/) -- [DeSci ಲ್ಯಾಬ್ಸ್](https://www.desci.com/) - -ಪಟ್ಟಿ ಮಾಡಲು ಹೊಸ ಯೋಜನೆಗಳಿಗೆ ಸಲಹೆಗಳನ್ನು ನಾವು ಸ್ವಾಗತಿಸುತ್ತೇವೆ - ಪ್ರಾರಂಭಿಸಲು ದಯವಿಟ್ಟು ನಮ್ಮ [ಪಟ್ಟಿ ನೀತಿಯನ್ನು](/contributing/adding-desci-projects/) ನೋಡಿ! - -## Further reading {#further-reading} - -- [DeSci Wiki ಜೋಸೆಲಿನ್ ಪರ್ಲ್ ಮತ್ತು ಅಲ್ಟ್ರಾರೇರ್ ಬರೆದ](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) -- [A 16 ಝಡ್ ಭವಿಷ್ಯಕ್ಕಾಗಿ ಜೋಸೆಲಿನ್ ಪರ್ಲ್ ಅವರಿಂದ ವಿಕೇಂದ್ರೀಕೃತ ಬಯೋಟೆಕ್ ಗೆ ಮಾರ್ಗದರ್ಶಿ](https://future.a16z.com/a-guide-to-decentralized-biotech/) -- [DeSci ಪ್ರಕರಣ](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) -- [DeSci ಗೆ ಮಾರ್ಗದರ್ಶಿ](https://future.com/what-is-decentralized-science-aka-desci/) -- [ವಿಕೇಂದ್ರೀಕೃತ ವಿಜ್ಞಾನ ಸಂಪನ್ಮೂಲಗಳು](https://www.vincentweisser.com/decentralized-science) -- [ಅಣುವಿನ ಬಯೋಫಾರ್ಮಾ IP-NFTs - ತಾಂತ್ರಿಕ ವಿವರಣೆ](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) -- [ಜಾನ್ ಸ್ಟಾರ್ ಅವರ ವಿಶ್ವಾಸಾರ್ಹ ವಿಜ್ಞಾನ ವ್ಯವಸ್ಥೆಗಳನ್ನು ನಿರ್ಮಿಸುವುದು](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) -- [ಬಯೋಟೆಕ್ DAO ಗಳ ಹೊರಹೊಮ್ಮುವಿಕೆ](https://molecule.to/blog/the-emergence-of-biotech-daos) -- [ಪಾಲ್ ಕೊಹ್ಲ್ಹಾಸ್ - 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) -- [DeSci: ಸ್ಯಾಮ್ಯುಯೆಲ್ ಅಕಿನೋಶೊ ಅವರ ಸಂಶೋಧನೆಯ ಭವಿಷ್ಯ](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) -- [ನಾಡಿಯಾ ಅವರಿಂದ ಸೈನ್ಸ್ ಫಂಡಿಂಗ್ (ಎಪಿಲಾಗ್: DeSci ಮತ್ತು ನ್ಯೂ ಕ್ರಿಪ್ಟೋ ಪ್ರಿಮಿಟೀವ್ಸ್)](https://nadia.xyz/science-funding) -- [ವಿಕೇಂದ್ರೀಕರಣವು ಔಷಧ ಅಭಿವೃದ್ಧಿಗೆ ಅಡ್ಡಿಪಡಿಸಿ](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) - -### Videos {#videos} - -- [ವಿಕೇಂದ್ರೀಕೃತ ವಿಜ್ಞಾನ ಎಂದರೇನು?](https://www.youtube.com/watch?v=-DeMklVWNdA) -- [ದೀರ್ಘಾಯುಷ್ಯದ ಸಂಶೋಧನೆ ಮತ್ತು ಕ್ರಿಪ್ಟೋದ ಸಂಕ್ಷೇಪದ ಬಗ್ಗೆ ವಿಟಾಲಿಕ್ ಬುಟೆರಿನ್ ಮತ್ತು ವಿಜ್ಞಾನಿ ಆಬ್ರೆ ಡಿ ಗ್ರೇ ನಡುವಿನ ಸಂಭಾಷಣೆ](https://www.youtube.com/watch?v=x9TSJK1widA) -- [ವೈಜ್ಞಾನಿಕ ಪ್ರಕಾಶನವು ಮುರಿದುಹೋಗಿದೆ. Web3 ಇದನ್ನು ಸರಿಪಡಿಸಬಹುದೇ?](https://www.youtube.com/watch?v=WkvzYgCvWj8) -- [ಜುವಾನ್ ಬೆನೆಟ್ - DeSci, ಇಂಡಿಪೆಂಡೆಂಟ್ ಲ್ಯಾಬ್ಸ್, & ಲಾರ್ಜ್ ಸ್ಕೇಲ್ ಡೇಟಾ ಸೈನ್ಸ್](https://www.youtube.com/watch?v=zkXM9H90g_E) -- [ಸೆಬಾಸ್ಟಿಯನ್ ಬ್ರೂನೆಮಿಯರ್ - DeSci ಬಯೋಮೆಡಿಕಲ್ ಸಂಶೋಧನೆ ಮತ್ತು & ಸಾಹಸೋದ್ಯಮ ಬಂಡವಾಳವನ್ನು ಹೇಗೆ ಪರಿವರ್ತಿಸಬಹುದು](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/kn/nft/index.md b/src/content/translations/kn/nft/index.md deleted file mode 100644 index 0b3af3e4efd..00000000000 --- a/src/content/translations/kn/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: ನಾನ್-ಫಂಜಿಬಲ್ ಟೋಕನ್‍ಗಳು (NFT) -description: ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ NFT ಗಳ ಅವಲೋಕನ -lang: kn -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: ಹೊಲೊಗ್ರಾಮ್ ಮೂಲಕ ಇಥ್ ಲೋಗೋವನ್ನು ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತಿದೆ. -summaryPoint1: ಇಥಿರಿಯಮ್ ಆಧಾರಿತ ಆಸ್ತಿಯಾಗಿ ಅನನ್ಯವಾದ ಯಾವುದನ್ನಾದರೂ ಪ್ರತಿನಿಧಿಸುವ ಒಂದು ಮಾರ್ಗ. -summaryPoint2: NFT ಗಳು ವಿಷಯ ಸೃಷ್ಟಿಕರ್ತರಿಗೆ ಹಿಂದೆಂದಿಗಿಂತಲೂ ಹೆಚ್ಚಿನ ಶಕ್ತಿಯನ್ನು ನೀಡುತ್ತಿವೆ. -summaryPoint3: ಇಥಿರಿಯಮ್ ಬ್ಲಾಕ್‍ಚೈನ್ ನಲ್ಲಿ ಸ್ಮಾರ್ಟ್ ಒಪ್ಪಂದಗಳಿಂದ ಚಾಲಿತವಾಗಿದೆ. ---- - -## What are NFTs? {#what-are-nfts} - -NFT ಗಳು ವೈಯಕ್ತಿಕವಾಗಿ ಅನನ್ಯವಾದ ಟೋಕನ್‍ಗಳಾಗಿವೆ. ಪ್ರತಿ NFT ವಿಭಿನ್ನ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಹೊಂದಿದೆ (ನಾನ್-ಫಂಜಿಯೆಬಲ್) ಮತ್ತು ವಿರಳವಾಗಿದೆ. ಇದು ERC-20s ನಂತಹ ಟೋಕನ್‍ಗಳಿಗಿಂತ ಭಿನ್ನವಾಗಿದೆ, ಅಲ್ಲಿ ಒಂದು ಸೆಟ್‍ನಲ್ಲಿರುವ ಪ್ರತಿಯೊಂದು ಟೋಕನ್ ಒಂದೇ ಆಗಿರುತ್ತದೆ ಮತ್ತು ಒಂದೇ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ ('ಫಂಜಿಬಲ್'). ನಿಮ್ಮ ವ್ಯಾಲೆಟ್ ನಲ್ಲಿ ಯಾವ ನಿರ್ದಿಷ್ಟ ಡಾಲರ್ ಬಿಲ್ ಇದೆ ಎಂಬುದರ ಬಗ್ಗೆ ನೀವು ತಲೆಕೆಡಿಸಿಕೊಳ್ಳುವುದಿಲ್ಲ, ಏಕೆಂದರೆ ಅವೆಲ್ಲವೂ ಒಂದೇ ಆಗಿರುತ್ತವೆ ಮತ್ತು ಒಂದೇ ಆಗಿರುತ್ತವೆ. ಆದಾಗ್ಯೂ, ನೀವು ಯಾವ ನಿರ್ದಿಷ್ಟ NFTಯನ್ನು _ಹೊಂದಿದ್ದೀರಿ_ ಎಂಬುದರ ಬಗ್ಗೆ ನೀವು ಕಾಳಜಿ ವಹಿಸುತ್ತೀರಿ, ಏಕೆಂದರೆ ಅವೆಲ್ಲವೂ ಇತರರಿಂದ ಪ್ರತ್ಯೇಕಿಸುವ ವೈಯಕ್ತಿಕ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಹೊಂದಿವೆ ('ನಾನ್-ಫಂಜಿಬಲ್'). - -ಪ್ರತಿ NFT ಯ ಅನನ್ಯತೆಯು ಕಲೆ, ಸಂಗ್ರಹಣೆಯ ವಸ್ತುಗಳು ಅಥವಾ ನಿಜವಾದ ಆಸ್ತಿ ಮುಂತಾದವುಗಳ ಟೋಕನೀಕರಣವನ್ನು ಸಾಧ್ಯವಾಗಿಸುತ್ತದೆ, ಇಲ್ಲಿ ಒಂದು ವಿಶೇಷ ಅನನ್ಯ NFT ಕೆಲವು ವಿಶೇಷ ಅನನ್ಯ ನಿಜವಾದ ಅಥವಾ ಡಿಜಿಟಲ್ ವಸ್ತುವನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ. ಆಸ್ತಿಯ ಮಾಲೀಕತ್ವವನ್ನು ಇಥಿರಿಯಮ್ ಬ್ಲಾಕ್‍ಚೈನ್‍ನಿಂದ ಸುರಕ್ಷಿತಗೊಳಿಸಲಾಗಿದೆ - ಮಾಲೀಕತ್ವದ ದಾಖಲೆಯನ್ನು ಯಾರೂ ಮಾರ್ಪಡಿಸಲು ಅಥವಾ ಹೊಸ NFT ಅನ್ನು ಅಸ್ತಿತ್ವಕ್ಕೆ ನಕಲಿಸಲು/ಅಂಟಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. - - - -## ಸ್ವತ್ತುಗಳ ಇಂಟರ್ನೆಟ್ {#internet-of-assets} - -NFTಗಳು ಮತ್ತು ಇಥಿರಿಯಮ್ ಇಂದು ಇಂಟರ್ನೆಟ್‍ನಲ್ಲಿ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಕೆಲವು ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸುತ್ತವೆ. ಎಲ್ಲವೂ ಹೆಚ್ಚು ಡಿಜಿಟಲ್ ಆಗುತ್ತಿದ್ದಾಗ, ಕೊರತೆ, ಅನನ್ಯತೆ ಮತ್ತು ಸ್ವಾಮ್ಯತೆಯ ಪ್ರಮಾಣವನ್ನು ಪ್ರತಿಸ್ಪರ್ಧಿಸಲು ಅವಶ್ಯವಿದೆ. ಕೇಂದ್ರೀಯ ಸಂಸ್ಥೆಯಿಂದ ನಿಯಂತ್ರಿಸಲ್ಪಡದ ರೀತಿಯಲ್ಲಿ ಇಲ್ಲ. ಉದಾಹರಣೆಗೆ, NFT ಗಳೊಂದಿಗೆ, ನೀವು ಯಾವುದೇ ಕಂಪನಿಯ ನಿರ್ದಿಷ್ಟ ಸಂಗೀತ ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ನಿರ್ದಿಷ್ಟವಾಗಿರದ ಸಂಗೀತ mp3 ಅನ್ನು ಹೊಂದಬಹುದು, ಅಥವಾ ನೀವು ಮಾರಾಟ ಮಾಡಬಹುದು ಅಥವಾ ವಿನಿಮಯ ಮಾಡಬಹುದಾದ ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮ ಹ್ಯಾಂಡಲ್ ಅನ್ನು ಹೊಂದಬಹುದು, ಆದರೆ ಇದನ್ನು ಯಾವುದೇ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಪೂರೈಕೆದಾರರಿಂದ ಯಾವುದೇ ಕಾರಣವಿಲ್ಲದೆ ತೆಗೆದುಕೊಳ್ಳಲಾಗುವುದಿಲ್ಲ. - -ಇಂದು ನಮ್ಮಲ್ಲಿ ಹೆಚ್ಚಿನವರು ಬಳಸುವ ಇಂಟರ್ನೆಟ್ಗೆ ಹೋಲಿಸಿದರೆ NFTಗಳ ಇಂಟರ್ನೆಟ್ ಹೇಗೆ ಕಾಣುತ್ತದೆ ಎಂಬುದು ಇಲ್ಲಿದೆ... - -### ಒಂದು ಹೋಲಿಕೆ {#nft-comparison} - -| NFT ಇಂಟರ್ನೆಟ್ | ಇಂದು ಇಂಟರ್ನೆಟ್ | -| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | -| ನಿಮ್ಮ ಸ್ವತ್ತುಗಳನ್ನು ನೀವು ಹೊಂದಿದ್ದೀರಿ! ನೀವು ಮಾತ್ರ ಅವುಗಳನ್ನು ಮಾರಾಟ ಮಾಡಬಹುದು ಅಥವಾ ವಿನಿಮಯ ಮಾಡಿಕೊಳ್ಳಬಹುದು. | ನೀವು ಯಾವುದೋ ಸಂಸ್ಥೆಯಿಂದ ಆಸ್ತಿಯನ್ನು ಬಾಡಿಗೆಗೆ ಪಡೆಯುತ್ತೀರಿ. | -| NFT ಗಳು ಡಿಜಿಟಲ್ ಅನನ್ಯವಾಗಿವೆ, ಯಾವುದೇ ಎರಡು NFT ಗಳು ಒಂದೇ ಆಗಿರುವುದಿಲ್ಲ. | ಒಂದು ಘಟಕದ ನಕಲನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಮೂಲದಿಂದ ಪ್ರತ್ಯೇಕಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. | -| NFTಯ ಮಾಲೀಕತ್ವವನ್ನು ಯಾರಾದರೂ ಪರಿಶೀಲಿಸಲು ಬ್ಲಾಕ್ಚೈನ್ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ. | ಡಿಜಿಟಲ್ ವಸ್ತುಗಳ ಮಾಲೀಕತ್ವದ ದಾಖಲೆಗಳನ್ನು ಸಂಸ್ಥೆಗಳು ನಿಯಂತ್ರಿಸುವ ಸರ್ವರ್ ಗಳಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ - ಅದಕ್ಕಾಗಿ ನೀವು ಅವರ ಮಾತನ್ನು ತೆಗೆದುಕೊಳ್ಳಬೇಕು. | -| NFT ಗಳು ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಆಗಿವೆ. ಇದರರ್ಥ ಅವುಗಳನ್ನು ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ಇತರ ಸ್ಮಾರ್ಟ್ ಒಪ್ಪಂದಗಳು ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್‍ಗಳಲ್ಲಿ ಸುಲಭವಾಗಿ ಬಳಸಬಹುದು! | ಡಿಜಿಟಲ್ ವಸ್ತುಗಳನ್ನು ಹೊಂದಿರುವ ಕಂಪನಿಗಳಿಗೆ ಸಾಮಾನ್ಯವಾಗಿ ತಮ್ಮದೇ ಆದ "ಗೋಡೆಯ ಉದ್ಯಾನ" ಮೂಲಸೌಕರ್ಯದ ಅಗತ್ಯವಿದೆ. | -| ವಿಷಯ ಸೃಷ್ಟಿಕರ್ತರು ತಮ್ಮ ಕೆಲಸವನ್ನು ಎಲ್ಲಿಯಾದರೂ ಮಾರಾಟ ಮಾಡಬಹುದು ಮತ್ತು ಜಾಗತಿಕ ಮಾರುಕಟ್ಟೆಯನ್ನು ಪ್ರವೇಶಿಸಬಹುದು. | ಸೃಷ್ಟಿಕರ್ತರು ಅವರು ಬಳಸುವ ಪ್ಲಾಟ್‍ಫಾರ್ಮ್‍ಗಳ ಮೂಲಸೌಕರ್ಯ ಮತ್ತು ವಿತರಣೆಯನ್ನು ಅವಲಂಬಿಸಿದ್ದಾರೆ. ಇವು ಹೆಚ್ಚಾಗಿ ಬಳಕೆಯ ನಿಯಮಗಳು ಮತ್ತು ಭೌಗೋಳಿಕ ನಿರ್ಬಂಧಗಳಿಗೆ ಒಳಪಟ್ಟಿರುತ್ತವೆ. | -| NFT ಸೃಷ್ಟಿಕರ್ತರು ತಮ್ಮ ಸ್ವಂತ ಕೆಲಸದ ಮೇಲೆ ಮಾಲೀಕತ್ವದ ಹಕ್ಕುಗಳನ್ನು ಉಳಿಸಿಕೊಳ್ಳಬಹುದು ಮತ್ತು ರಾಯಲ್ಟಿಯನ್ನು ನೇರವಾಗಿ NFT ಒಪ್ಪಂದಕ್ಕೆ ಪ್ರೋಗ್ರಾಂ ಮಾಡಬಹುದು. | ಮ್ಯೂಸಿಕ್ ಸ್ಟ್ರೀಮಿಂಗ್ ಸೇವೆಗಳಂತಹ ಪ್ಲಾಟ್‍ಫಾರ್ಮ್‍ಗಳು ಮಾರಾಟದಿಂದ ಹೆಚ್ಚಿನ ಲಾಭವನ್ನು ಉಳಿಸಿಕೊಳ್ಳುತ್ತವೆ. | - -## NFT ಗಳು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ? {#how-nfts-work} - -ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ನೀಡಲಾದ ಯಾವುದೇ ಟೋಕನ್‍ನಂತೆ, NFTs ಗಳನ್ನು ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ನಿಂದ ನೀಡಲಾಗುತ್ತದೆ. ಸ್ಮಾರ್ಟ್ ಒಪ್ಪಂದವು ಯಾವ ಕಾರ್ಯಗಳನ್ನು ಹೊಂದಿದೆ ಎಂಬುದನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವ ಹಲವಾರು NFT ಮಾನದಂಡಗಳಲ್ಲಿ (ಸಾಮಾನ್ಯವಾಗಿ ERC -721 ಅಥವಾ ERC -1155) ಒಂದಕ್ಕೆ ಅನುಗುಣವಾಗಿದೆ. ಒಪ್ಪಂದವು ('ಮಿಂಟ್') NFTಗಳನ್ನು ರಚಿಸಬಹುದು ಮತ್ತು ಅವುಗಳನ್ನು ನಿರ್ದಿಷ್ಟ ಮಾಲೀಕರಿಗೆ ನಿಯೋಜಿಸಬಹುದು. ನಿರ್ದಿಷ್ಟ NFT ಗಳನ್ನು ನಿರ್ದಿಷ್ಟ ವಿಳಾಸಗಳಿಗೆ ಮ್ಯಾಪಿಂಗ್ ಮಾಡುವ ಮೂಲಕ ಮಾಲೀಕತ್ವವನ್ನು ಒಪ್ಪಂದದಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ. NFT ID ಮತ್ತು ವಿಶಿಷ್ಟವಾಗಿ ಅದಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಮೆಟಾಡೇಟಾವನ್ನು ಹೊಂದಿದೆ, ಅದು ನಿರ್ದಿಷ್ಟ ಟೋಕನ್ ಅನ್ನು ಅನನ್ಯವಾಗಿಸುತ್ತದೆ. - -ಯಾರಾದರೂ NFTಯನ್ನು ರಚಿಸಿದಾಗ ಅಥವಾ ತಯಾರಿಸಿದಾಗ, ಅವರು ನಿಜವಾಗಿಯೂ ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ನಲ್ಲಿ ಒಂದು ಕಾರ್ಯವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತಿದ್ದಾರೆ, ಅದು ಅವರ ವಿಳಾಸಕ್ಕೆ ನಿರ್ದಿಷ್ಟ NFTಯನ್ನು ನಿಯೋಜಿಸುತ್ತದೆ. ಈ ಮಾಹಿತಿಯನ್ನು ಒಪ್ಪಂದದ ಸಂಗ್ರಹಣೆಯಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ, ಇದು ಬ್ಲಾಕ್‍ಚೈನ್ ನ ಭಾಗವಾಗಿದೆ. ಕಂಟ್ರಾಕ್ಟಿನ ಸೃಷ್ಟಿಕರ್ತನು ಕಂಟ್ರಾಕ್ಟಿನಲ್ಲಿ ಹೆಚ್ಚುವರಿ ಲೋಜಿಕ್ ಅನ್ನು ಬರೆಯಬಹುದು, ಉದಾಹರಣೆಗೆ ಒಟ್ಟು ಸರಬರಾಜನ್ನು ಸೀಮಿತಗೊಳಿಸುವುದು ಅಥವಾ ಪ್ರತಿ ಬಾರಿ ಟೋಕನ್ ವರ್ಗಾವಣೆಯಾಗುವಾಗ ಸೃಷ್ಟಿಕರ್ತರಿಗೆ ಪಾವತಿಸಬೇಕಾದ ರಾಯಲ್ಟಿಯನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವುದು. - -## NFT ಗಳನ್ನು ಯಾವುದಕ್ಕಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ? {#nft-use-cases} - -NFT ಗಳನ್ನು ಅನೇಕ ವಿಷಯಗಳಿಗೆ ಬಳಸಲಾಗುತ್ತದೆ, ಅವುಗಳೆಂದರೆ: - -- ನೀವು ಒಂದು ಕಾರ್ಯಕ್ರಮಕ್ಕೆ ಹಾಜರಾಗಿದ್ದೀರಿ ಎಂದು ಸಾಬೀತುಪಡಿಸುವುದು -- ನೀವು ಕೋರ್ಸ್ ಅನ್ನು ಪೂರ್ಣಗೊಳಿಸಿದ್ದೀರಿ ಎಂದು ಪ್ರಮಾಣೀಕರಿಸಿ -- ಆಟಗಳಿಗೆ ಮಾಲೀಕತ್ವದ ಐಟಂಗಳು -- ಡಿಜಿಟಲ್ ಕಲೆ -- ನೈಜ-ಪ್ರಪಂಚದ ಸ್ವತ್ತುಗಳನ್ನು ಟೋಕನ್ ಮಾಡುವುದು -- ನಿಮ್ಮ ಆನ್‍ಲೈನ್ ಗುರುತನ್ನು ಸಾಬೀತುಪಡಿಸುವುದು -- ವಿಷಯಕ್ಕೆ ಪ್ರವೇಶವನ್ನು ಪಡೆಯುವುದು -- ಟಿಕೆಟಿಂಗ್ -- ವಿಕೇಂದ್ರೀಕೃತ ಇಂಟರ್ನೆಟ್ ಡೊಮೇನ್ ಹೆಸರುಗಳು -- deFi ನಲ್ಲಿ ಮೇಲಾಧಾರ - -ಬಹುಶಃ ನೀವು ನಿಯಂತ್ರಣವನ್ನು ಕಳೆದುಕೊಳ್ಳದೆ ಮತ್ತು ಮಧ್ಯವರ್ತಿಗಳಿಗೆ ನಿಮ್ಮ ಲಾಭವನ್ನು ತ್ಯಾಗ ಮಾಡದೆ, NFT ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ತಮ್ಮ ಕೆಲಸವನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಬಯಸುವ ಕಲಾವಿದರಾಗಿರಬಹುದು. ನೀವು ಹೊಸ ಒಪ್ಪಂದವನ್ನು ರಚಿಸಬಹುದು ಮತ್ತು NFT ಗಳ ಸಂಖ್ಯೆ, ಅವುಗಳ ಗುಣಲಕ್ಷಣಗಳು ಮತ್ತು ಕೆಲವು ನಿರ್ದಿಷ್ಟ ಕಲೆಯ ಕೊಂಡಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು. ಕಲಾವಿದನಾಗಿ, ನೀವು ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್‌ಗೆ ನೀವು ಪಡೆಯಬೇಕಾದ ರಾಯಲ್ಟಿಗಳನ್ನು ಕಾರ್ಯನಿರ್ವಹಿಸಬಹುದು (ಉದಾಹರಣೆಗೆ, ಒಂದು NFT ಯನ್ನು ಪರಿವರ್ತಿಸಲ್ಪಟ್ಟಾಗ ಮಾರಾಟದ ಬೆಲೆಯ 5% ಅನ್ನು ಕಾಂಟ್ರಾಕ್ಟ್ ಮಾಲೀಕರಿಗೆ ವರ್ಗಾಯಿಸಿ). ಒಪ್ಪಂದವನ್ನು ನಿಯೋಜಿಸಿದ ವ್ಯಾಲೆಟ್ ಅನ್ನು ನೀವು ಹೊಂದಿರುವ ಕಾರಣ ನೀವು NFT ಗಳನ್ನು ರಚಿಸಿದ್ದೀರಿ ಎಂದು ನೀವು ಯಾವಾಗಲೂ ಸಾಬೀತುಪಡಿಸಬಹುದು. ನಿಮ್ಮ ಸಂಗ್ರಹದಿಂದ ಅವರು ಖರೀದಿಸಿದ NFT ಅಸಲಿಯಾದದ್ದು ಎಂದು ಅವರ ವಾಲೆಟ್ ವಿಳಾಸವು ನಿಮ್ಮ ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟಿನ ಟೋಕನ್‌ ಜೊತೆಗೆ ಸಂಪರ್ಕಪಟ್ಟಿದೆಯೆಂದು ಅವರು ಸುಲಭವಾಗಿ ಸಾಧಿಸಬಹುದು. ಅವರು ಅದನ್ನು ಇಥಿರಿಯಮ್ ಪರಿಸರ ವ್ಯವಸ್ಥೆಯಾದ್ಯಂತ ಬಳಸಬಹುದು, ಅದರ ದೃಢೀಕರಣದಲ್ಲಿ ವಿಶ್ವಾಸ ಹೊಂದಿದ್ದಾರೆ. - -ಅಥವಾ ಕ್ರೀಡಾಕೂಟಕ್ಕೆ ಟಿಕೆಟ್ ಅನ್ನು ಪರಿಗಣಿಸಿ. ಕಾರ್ಯಕ್ರಮದ ಸಂಘಟಕರು ಎಷ್ಟು ಟಿಕೆಟ್‌ಗಳನ್ನು ಮಾರಾಟ ಮಾಡಬೇಕೆಂದು ಆಯ್ಕೆ ಮಾಡುವಂತೆ, NFT ನ ಸೃಷ್ಟಿಕರ್ತರು ಎಷ್ಟು ಪ್ರತಿಕೃತಿಗಳು ಅಸ್ತಿತ್ವದಲ್ಲಿವೆ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಬಹುದು. ಕೆಲವೊಮ್ಮೆ ಇವು 5000 ಸಾಮಾನ್ಯ ಪ್ರವೇಶ ಟಿಕೆಟ್‌ಗಳಂತಹ ನಿಖರವಾದ ಪ್ರತಿಕೃತಿಗಳಾಗಿವೆ. ಕೆಲವೊಮ್ಮೆ ಹಲವಾರು ಹೋಲುವಂತಹವುಗಳನ್ನು ಮುದ್ರಿಸಲಾಗುತ್ತದೆ, ಆದರೆ ಪ್ರತಿಯೊಂದೂ ಸ್ವಲ್ಪ ವಿಭಿನ್ನವಾಗಿದೆ, ಉದಾಹರಣೆಗೆ ನಿಗದಿಪಡಿಸಿದ ಆಸನದೊಂದಿಗೆ ಟಿಕೆಟ್. ಇವುಗಳನ್ನು ಟಿಕೆಟ್ ನಿರ್ವಾಹಕರಿಗೆ ಹಣ ಪಾವತಿಸದೆ ಸಹಪಾಠಿಯಿಂದ ಸಹಪಾಠಿಗೆ ಖರೀದಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಖರೀದಿದವನು ಕಾಂಟ್ರಾಕ್ಟ್ ವಿಳಾಸವನ್ನು ಪರಿಶೀಲಿಸಿ ಟಿಕೆಟ್ ಅಸಲಿಯಾದದ್ದು ಎಂದು ಯಾವಾಗಲೂ ಖಾತರಿಯಾಗಿರುತ್ತದೆ. - -Ethereum.org ನಲ್ಲಿ, ಜನರು ನಮ್ಮ ಗಿಟ್‍ಹಬ್ ಭಂಡಾರಕ್ಕೆ ಕೊಡುಗೆ ನೀಡಿದ್ದಾರೆ ಅಥವಾ ಕರೆಗಳಿಗೆ ಹಾಜರಾಗಿದ್ದಾರೆ ಎಂದು ಪ್ರದರ್ಶಿಸಲು NFT ಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ, ಮತ್ತು ನಾವು ನಮ್ಮ ಸ್ವಂತ NFT ಡೊಮೇನ್ ಹೆಸರನ್ನು ಸಹ ಹೊಂದಿದ್ದೇವೆ. ನೀವು ethereum.org ಕೊಡುಗೆ ನೀಡಿದರೆ, ನೀವು POAP NFTಯನ್ನು ಕ್ಲೈಮ್ ಮಾಡಬಹುದು. ಕೆಲವು ಕ್ರಿಪ್ಟೋ ಮೀಟಪ್‍ಗಳು POAPಗಳನ್ನು ಟಿಕೆಟ್‍ಗಳಾಗಿ ಬಳಸಿವೆ. [ಕೊಡುಗೆ ನೀಡುವ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು](/contributing/#poap). - -![ethereum.org POAP](./poap.png) - -ಅವರ ವೆಬ್‍ಸೈಟ್ NFT ಗಳಿಂದ ಚಾಲಿತ ಪರ್ಯಾಯ ಡೊಮೇನ್ ಹೆಸರನ್ನು ಸಹ ಹೊಂದಿದೆ**ethereum.eth**. ನಮ್ಮ `.org` ವಿಳಾಸವನ್ನು ಡೊಮೇನ್ ನೇಮ್ ಸಿಸ್ಟಮ್ (DNS) ಪೂರೈಕೆದಾರರು ಕೇಂದ್ರೀಯವಾಗಿ ನಿರ್ವಹಿಸುತ್ತಾರೆ, ಆದರೆ ಇಥಿರಿಯಮ್`.ಇಥ್` ಅನ್ನು ಇಥಿರಿಯಮ್ ನೇಮ್ ಸರ್ವೀಸ್ (ENS) ಮೂಲಕ ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ನೋಂದಾಯಿಸಲಾಗಿದೆ. ಮತ್ತು ಇದು ನಮ್ಮ ಒಡೆತನದಲ್ಲಿದೆ ಮತ್ತು ನಿರ್ವಹಿಸಲ್ಪಡುತ್ತದೆ. [ನಮ್ಮ ENS ದಾಖಲೆಯನ್ನು ಪರಿಶೀಲಿಸಿ](https://app.ens.domains/name/ethereum.eth) - -[ENS ಬಗ್ಗೆ ಇನ್ನಷ್ಟು](https://app.ens.domains) - - - -### NFT ಭದ್ರತೆ {#nft-security} - -ಇಥಿರಿಯಮ್‍ನ ಭದ್ರತೆಯು proof-of-stake ನಿಂದ ಬರುತ್ತದೆ. ದುರುದ್ದೇಶಪೂರಿತ ಕ್ರಮಗಳನ್ನು ಆರ್ಥಿಕವಾಗಿ ಉತ್ತೇಜಿಸಲು ಈ ವ್ಯವಸ್ಥೆಯನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ, ಇದು ಇಥಿರಿಯಮ್ ಟ್ಯಾಂಪರ್-ಪ್ರೂಫ್ ಮಾಡುತ್ತದೆ. ಇದು NFT ಗಳನ್ನು ಸಾಧ್ಯವಾಗಿಸುತ್ತದೆ. ನಿಮ್ಮ NFT ವಹಿವಾಟನ್ನು ಒಳಗೊಂಡಿರುವ ಬ್ಲಾಕ್ ಅಂತಿಮಗೊಂಡ ನಂತರ ಅದನ್ನು ಬದಲಾಯಿಸಲು ಆಕ್ರಮಣಕಾರನಿಗೆ ಲಕ್ಷಾಂತರ ETH ವೆಚ್ಚವಾಗುತ್ತದೆ. ಇಥಿರಿಯಮ್ ಸಾಫ್ಟ್ ವೇರ್ ಅನ್ನು ಚಾಲನೆ ಮಾಡುವ ಯಾರಾದರೂ ತಕ್ಷಣವೇ NFTಯೊಂದಿಗೆ ಅಪ್ರಾಮಾಣಿಕ ತಿರುಚುವಿಕೆಯನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ, ಮತ್ತು ಕೆಟ್ಟ ನಟನಿಗೆ ಆರ್ಥಿಕವಾಗಿ ದಂಡ ವಿಧಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಹೊರಹಾಕಲಾಗುತ್ತದೆ. - -NFTಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ಭದ್ರತಾ ಸಮಸ್ಯೆಗಳು ಹೆಚ್ಚಾಗಿ ಫಿಶಿಂಗ್ ಹಗರಣಗಳು, ಸ್ಮಾರ್ಟ್ ಗುತ್ತಿಗೆ ದುರ್ಬಲತೆಗಳು ಅಥವಾ ಬಳಕೆದಾರ ದೋಷಗಳಿಗೆ ಸಂಬಂಧಿಸಿವೆ (ಅಜಾಗರೂಕತೆಯಿಂದ ಖಾಸಗಿ ಕೀಲಿಗಳನ್ನು ಬಹಿರಂಗಪಡಿಸುವುದು), NFT ಮಾಲೀಕರಿಗೆ ಉತ್ತಮ ವ್ಯಾಲೆಟ್ ಭದ್ರತೆಯನ್ನು ನಿರ್ಣಾಯಕವಾಗಿಸುತ್ತದೆ. - - - ಭದ್ರತೆಯ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು - - -## Further reading {#further-reading} - -- [NFT ಗಳಿಗೆ ಆರಂಭಿಕ ಮಾರ್ಗದರ್ಶಿ](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) - _ Linda Xie, January 2020_ -- [EtherscanNFT ಟ್ರ್ಯಾಕರ್](https://etherscan.io/nft-top-contracts) -- [ERC-721 ಟೋಕನ್ ಸ್ಟ್ಯಾಂಡರ್ಡ್](/developers/docs/standards/tokens/erc-721/) -- [ERC-1155 ಟೋಕನ್ ಸ್ಟ್ಯಾಂಡರ್ಡ್](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/kn/refi/index.md b/src/content/translations/kn/refi/index.md deleted file mode 100644 index 8214ba38cea..00000000000 --- a/src/content/translations/kn/refi/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: ಪುನರುತ್ಪಾದಕ ಹಣಕಾಸು (ReFi) -description: ReFi ಮತ್ತು ಅದರ ಪ್ರಸ್ತುತ ಬಳಕೆಯ ಪ್ರಕರಣಗಳ ಅವಲೋಕನ. -lang: kn -template: use-cases -emoji: ":ಮರುಬಳಕೆ:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: ಪುನರುತ್ಪಾದಕ ತತ್ವಗಳ ಮೇಲೆ ನಿರ್ಮಿಸಲಾದ ಪರ್ಯಾಯ ಆರ್ಥಿಕ ವ್ಯವಸ್ಥೆ -summaryPoint2: ಹವಾಮಾನ ಬದಲಾವಣೆಯಂತಹ ಜಾಗತಿಕ ಮಟ್ಟದ ಸಮನ್ವಯ ಬಿಕ್ಕಟ್ಟುಗಳನ್ನು ಪರಿಹರಿಸಲು ಇಥಿರಿಯಮ್ಅನ್ನು ಬಳಸಿಕೊಳ್ಳುವ ಪ್ರಯತ್ನ -summaryPoint3: ಪರಿಶೀಲಿಸಿದ ಕಾರ್ಬನ್ ಕ್ರೆಡಿಟ್‌ಗಳಂತಹ ಪರಿಸರ ಲಾಭದ ಸ್ವತ್ತುಗಳನ್ನು ತೀವ್ರವಾಗಿ ಅಳೆಯುವ ಸಾಧನ ---- - -## ReFi ಎಂದರೇನು? {#what-is-refi} - -**ಪುನರುತ್ಪಾದಕ ಹಣಕಾಸು (ReFi)** ಎಂಬುದು ಬ್ಲಾಕ್ಚೈನ್ಗಳ ಮೇಲೆ ನಿರ್ಮಿಸಲಾದ ಸಾಧನಗಳು ಮತ್ತು ಆಲೋಚನೆಗಳ ಒಂದು ಗುಂಪಾಗಿದೆ, ಇದು ಹೊರತೆಗೆಯುವ ಅಥವಾ ಶೋಷಕ ಮಾಡುವ ಬದಲು ಪುನರುತ್ಪಾದಕ ಆರ್ಥಿಕತೆಗಳನ್ನು ರಚಿಸುವ ಗುರಿಯನ್ನು ಹೊಂದಿದೆ. ಅಂತಿಮವಾಗಿ, ಹೊರತೆಗೆಯುವ ವ್ಯವಸ್ಥೆಗಳು ಲಭ್ಯವಿರುವ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಖಾಲಿ ಮಾಡುತ್ತವೆ ಮತ್ತು ಕುಸಿಯುತ್ತವೆ; ಪುನರುತ್ಪಾದಕ ಕಾರ್ಯವಿಧಾನಗಳಿಲ್ಲದೆ, ಅವು ಸ್ಥಿತಿಸ್ಥಾಪಕತ್ವವನ್ನು ಹೊಂದಿರುವುದಿಲ್ಲ. ನಮ್ಮ ಗ್ರಹ ಮತ್ತು ಸಮುದಾಯಗಳಿಂದ ಸಂಪನ್ಮೂಲಗಳ ಸಮರ್ಥನೀಯವಲ್ಲದ ಹೊರತೆಗೆಯುವಿಕೆಯಿಂದ ವಿತ್ತೀಯ ಮೌಲ್ಯದ ಸೃಷ್ಟಿಯನ್ನು ಬೇರ್ಪಡಿಸಬೇಕು ಎಂಬ ಊಹೆಯ ಮೇಲೆ ReFi ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. - -ಬದಲಿಗೆ, ReFi ಪುನರುತ್ಪಾದಕ ಚಕ್ರಗಳನ್ನು ರಚಿಸುವ ಮೂಲಕ ಪರಿಸರ, ಸಾಮುದಾಯಿಕ ಅಥವಾ ಸಾಮಾಜಿಕ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸುವ ಗುರಿಯನ್ನು ಹೊಂದಿದೆ. ಈ ವ್ಯವಸ್ಥೆಗಳು ಭಾಗವಹಿಸುವವರಿಗೆ ಮೌಲ್ಯವನ್ನು ಸೃಷ್ಟಿಸುತ್ತವೆ ಮತ್ತು ಜೀವವ್ಯವಸ್ಥೆಗಳು ಮತ್ತು ಸಮುದಾಯಗಳಿಗೆ ಪ್ರಯೋಜನವನ್ನುಂಟುಮಾಡುತ್ತವೆ. - -[ಕ್ಯಾಪಿಟಲ್ ಇನ್‍ಸ್ಟಿಟ್ಯೂಟ್‍ನ](https://capitalinstitute.org) ಜಾನ್ ಫುಲ್ಲರ್ಟನ್ ಅವರು ಪ್ರವರ್ತಕರಾದ ಪುನರುತ್ಪಾದಕ ಅರ್ಥಶಾಸ್ತ್ರದ ಪರಿಕಲ್ಪನೆಯು ReFi ನ ಅಡಿಪಾಯಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ. ಅವರು ವ್ಯವಸ್ಥಿತ ಆರೋಗ್ಯಕ್ಕೆ ಆಧಾರವಾಗಿರುವ ಎಂಟು ಅಂತರ್ಸಂಪರ್ಕಿತ ತತ್ವಗಳನ್ನು ಪ್ರಸ್ತಾಪಿಸಿದರು: - -![ಎಂಟು ಪರಸ್ಪರ ಸಂಬಂಧಿತ ತತ್ವಗಳು](../../assets/use-cases/refi-regenerative-economy-diagram.png) - -ಪುನರುತ್ಪಾದಕ ನಡವಳಿಕೆಗಳನ್ನು ಉತ್ತೇಜಿಸಲು [ಸ್ಮಾರ್ಟ್ ಒಪ್ಪಂದಗಳು](/developers/docs/smart-contracts/) ಮತ್ತು [ವಿಕೇಂದ್ರೀಕೃತ ಹಣಕಾಸು (ಡಿಫೈ)](/defi/) ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ReFi ರೀಫೈ ಯೋಜನೆಗಳು ಈ ತತ್ವಗಳನ್ನು ಅರಿತುಕೊಳ್ಳುತ್ತವೆ, ಉದಾಹರಣೆಗೆ ಅವನತಿ ಹೊಂದಿದ ಪರಿಸರ ವ್ಯವಸ್ಥೆಗಳನ್ನು ಪುನಃಸ್ಥಾಪಿಸುವುದು ಮತ್ತು ಹವಾಮಾನ ಬದಲಾವಣೆ ಮತ್ತು ಜೀವವೈವಿಧ್ಯತೆಯ ನಷ್ಟದಂತಹ ಜಾಗತಿಕ ವಿಷಯಗಳ ಮೇಲೆ ದೊಡ್ಡ ಪ್ರಮಾಣದ ಸಹಯೋಗವನ್ನು ಸುಗಮಗೊಳಿಸುವುದು. - -ವೈಜ್ಞಾನಿಕ ಜ್ಞಾನವನ್ನು ಹಣಕಾಸು, ರಚಿಸಲು, ಪರಿಶೀಲಿಸಲು, ಕ್ರೆಡಿಟ್ ಮಾಡಲು, ಸಂಗ್ರಹಿಸಲು ಮತ್ತು ಪ್ರಸಾರ ಮಾಡಲು ಇಥಿರಿಯಮ್ ಅನ್ನು ವೇದಿಕೆಯಾಗಿ ಬಳಸುವ [ವಿಕೇಂದ್ರೀಕೃತ ವಿಜ್ಞಾನ (DeSci)](/desci/) ಚಳವಳಿಯೊಂದಿಗೆ ರೀಫೈ ಅತಿಕ್ರಮಿಸುತ್ತದೆ. ಡಿಸ್ಯೆ ಉಪಕರಣಗಳು ಮರಗಳನ್ನು ನೆಡುವುದು, ಸಾಗರದಿಂದ ಪ್ಲಾಸ್ಟಿಕ್ ತೆಗೆಯುವುದು ಅಥವಾ ಹಾನಿಗೊಳಗಾದ ಪರಿಸರ ವ್ಯವಸ್ಥೆಯನ್ನು ಪುನಃಸ್ಥಾಪಿಸುವಂತಹ ಪುನರುತ್ಪಾದಕ ಚಟುವಟಿಕೆಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಮತ್ತು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಲು ಸಾಕ್ಷೀಕರಿಸಬಹುದಾದ ಮಾನದಂಡಗಳು ಮತ್ತು ಅಭ್ಯಾಸಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ಉಪಯುಕ್ತವಾಗಬಹುದು. - -## ಕಾರ್ಬನ್ ಕ್ರೆಡಿಟ್‌ಗಳ ಟೋಕನೈಸೇಶನ್ {#tokenization-of-carbon-credits} - -**[ಸ್ವಯಂಪ್ರೇರಿತ ಇಂಗಾಲದ ಮಾರುಕಟ್ಟೆ (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** ಇಂಗಾಲದ ಹೊರಸೂಸುವಿಕೆಯ ಮೇಲೆ ಸಕಾರಾತ್ಮಕ ಪರಿಣಾಮ ಬೀರುವ ಯೋಜನೆಗಳಿಗೆ ಧನಸಹಾಯ ನೀಡುವ ಕಾರ್ಯವಿಧಾನವಾಗಿದೆ, ನಡೆಯುತ್ತಿರುವ ಹೊರಸೂಸುವಿಕೆಯನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ ಅಥವಾ ವಾತಾವರಣದಿಂದ ಈಗಾಗಲೇ ಹೊರಸೂಸುವ ಹಸಿರುಮನೆ ಅನಿಲಗಳನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ. ಈ ಯೋಜನೆಗಳು ಪರಿಶೀಲಿಸಿದ ನಂತರ "ಕಾರ್ಬನ್ ಕ್ರೆಡಿಟ್‌ಗಳು" ಎಂಬ ಸ್ವತ್ತನ್ನು ಸ್ವೀಕರಿಸುತ್ತವೆ, ಅವರು ಹವಾಮಾನ ಕ್ರಿಯೆಯನ್ನು ಬೆಂಬಲಿಸಲು ಬಯಸುವ ವ್ಯಕ್ತಿಗಳು ಮತ್ತು ಸಂಸ್ಥೆಗಳಿಗೆ ಮಾರಾಟ ಮಾಡಬಹುದು. - -VCM ಜೊತೆಗೆ, ಹಲವಾರು ಸರ್ಕಾರಿ-ನಿರ್ದೇಶಿತ ಕಾರ್ಬನ್ ಮಾರುಕಟ್ಟೆಗಳು ('ಅನುಸರಣೆ ಮಾರುಕಟ್ಟೆಗಳು') ಸಹ ಇವೆ, ಇದು ಒಂದು ನಿರ್ದಿಷ್ಟ ನ್ಯಾಯವ್ಯಾಪ್ತಿಯೊಳಗೆ (ಉದಾ. ದೇಶ ಅಥವಾ ಪ್ರದೇಶ) ಕಾನೂನುಗಳು ಅಥವಾ ನಿಯಮಗಳ ಮೂಲಕ ಇಂಗಾಲದ ಬೆಲೆಯನ್ನು ಸ್ಥಾಪಿಸುವ ಗುರಿಯನ್ನು ಹೊಂದಿದೆ, ಇದು ಪರವಾನಗಿಗಳ ಪೂರೈಕೆಯನ್ನು ನಿಯಂತ್ರಿಸುತ್ತದೆ. ವಿತರಣೆ. ಕಾನೂನುಬದ್ಧ ಮಾರುಕಟ್ಟೆಗಳು ತಮ್ಮ ಅಧಿಕಾರ ವ್ಯಾಪ್ತಿಯಲ್ಲಿರುವ ಮಾಲಿನ್ಯಕಾರಕರಿಗೆ ಹೊರಸೂಸುವಿಕೆಯನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಪ್ರೋತ್ಸಾಹ ನೀಡುತ್ತವೆ, ಆದರೆ ಈಗಾಗಲೇ ಹೊರಸೂಸಲ್ಪಟ್ಟ ಹಸಿರುಮನೆ ಅನಿಲಗಳನ್ನು ತೆಗೆದುಹಾಕಲು ಅವು ಸಮರ್ಥವಾಗಿರುವುದಿಲ್ಲ. - -ಇತ್ತೀಚಿನ ದಶಕಗಳಲ್ಲಿ ಅದರ ಅಭಿವೃದ್ಧಿಯ ಹೊರತಾಗಿಯೂ, VCM ವಿವಿಧ ಸಮಸ್ಯೆಗಳಿಂದ ಬಳಲುತ್ತಿದೆ: - -1. ಹೆಚ್ಚು ವಿಭಜಿತ ದ್ರವ್ಯತೆ -2. ಅಪಾರದರ್ಶಕ ವಹಿವಾಟು ಕಾರ್ಯವಿಧಾನಗಳು -3. ಹೆಚ್ಚಿನ ಶುಲ್ಕ -4. ಬಹಳ ನಿಧಾನಗತಿಯ ವ್ಯಾಪಾರ ವೇಗ -5. ಸ್ಕೇಲಬಿಲಿಟಿಯ ಕೊರತೆ - -VCM ಅನ್ನು ಹೊಸ ಬ್ಲಾಕ್ಚೈನ್ ಆಧಾರಿತ **ಡಿಜಿಟಲ್ ಕಾರ್ಬನ್ ಮಾರುಕಟ್ಟೆಗೆ (DCM)** ಪರಿವರ್ತಿಸುವುದು ಇಂಗಾಲದ ಕ್ರೆಡಿಟ್ಗಳನ್ನು ಮೌಲ್ಯೀಕರಿಸಲು, ವಹಿವಾಟು ನಡೆಸಲು ಮತ್ತು ಬಳಸಲು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ತಂತ್ರಜ್ಞಾನವನ್ನು ನವೀಕರಿಸಲು ಒಂದು ಅವಕಾಶವಾಗಿದೆ. ಬ್ಲಾಕ್‌ಚೈನ್‌ಗಳು ಸಾರ್ವಜನಿಕವಾಗಿ ಪರಿಶೀಲಿಸಬಹುದಾದ ಡೇಟಾ, ವ್ಯಾಪಕ ಶ್ರೇಣಿಯ ಬಳಕೆದಾರರಿಗೆ ಪ್ರವೇಶ ಮತ್ತು ಹೆಚ್ಚಿನ ದ್ರವ್ಯತೆಗಾಗಿ ಅನುಮತಿಸುತ್ತದೆ. - -ಸಾಂಪ್ರದಾಯಿಕ ಮಾರುಕಟ್ಟೆಯ ಅನೇಕ ಸಮಸ್ಯೆಗಳನ್ನು ನಿವಾರಿಸಲು ReFi ರೀಫೈ ಯೋಜನೆಗಳು ಬ್ಲಾಕ್ ಚೈನ್ ತಂತ್ರಜ್ಞಾನವನ್ನು ಬಳಸುತ್ತವೆ: - -- **ಲಿಕ್ವಿಡಿಟಿ ಕಡಿಮೆ ಸಂಖ್ಯೆಯ liquidity pools -ದ್ರವ್ಯತೆ ಕೊಳಗಳಲ್ಲಿ ಕೇಂದ್ರೀಕೃತವಾಗಿದೆ**, ಅದನ್ನು ಯಾರು ಬೇಕಾದರೂ ಮುಕ್ತವಾಗಿ ವ್ಯಾಪಾರ ಮಾಡಬಹುದು. ದೊಡ್ಡ ಸಂಸ್ಥೆಗಳು ಹಾಗೂ ವೈಯಕ್ತಿಕ ಬಳಕೆದಾರರು ಈ ಗುಂಪುಗಳನ್ನು ಮಾರಾಟಗಾರರು/ಖರೀದಿದಾರರ ಕೈಗಾರಿಕ ಶೋಧಗಳಿಲ್ಲದೆ, ಭಾಗವಹಿಸುವಿಕೆ ಶುಲ್ಕಗಳು ಅಥವಾ ಮೊದಲಿನ ನೋಂದಣಿ ಇಲ್ಲದೆ ಬಳಸಬಹುದು. -- **ಎಲ್ಲಾ ವಹಿವಾಟುಗಳನ್ನು ಸಾರ್ವಜನಿಕ ಬ್ಲಾಕ್ ಚೈನ್ ಗಳಲ್ಲಿ ದಾಖಲಿಸಲಾಗುತ್ತದೆ**. ವ್ಯಾಪಾರ ಚಟುವಟಿಕೆಯಿಂದಾಗಿ ಪ್ರತಿ ಇಂಗಾಲದ ಕ್ರೆಡಿಟ್ ತೆಗೆದುಕೊಳ್ಳುವ ಮಾರ್ಗವನ್ನು DCMನಲ್ಲಿ ಲಭ್ಯವಾದ ಕೂಡಲೇ ಶಾಶ್ವತವಾಗಿ ಪತ್ತೆಹಚ್ಚಬಹುದು. -- **ವಹಿವಾಟಿನ ವೇಗವು ಬಹುತೇಕ ತ್ವರಿತವಾಗಿರುತ್ತದೆ**. ಪಾರಂಪರಿಕ ಮಾರುಕಟ್ಟೆಗಳ ಮೂಲಕ ದೊಡ್ಡ ಪ್ರಮಾಣದ ಇಂಗಾಲದ ಕ್ರೆಡಿಟ್ ಗಳನ್ನು ಪಡೆಯಲು ದಿನಗಳು ಅಥವಾ ವಾರಗಳು ತೆಗೆದುಕೊಳ್ಳಬಹುದು, ಆದರೆ ಇದನ್ನು DCMನಲ್ಲಿ ಕೆಲವೇ ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಸಾಧಿಸಬಹುದು. -- ಹೆಚ್ಚಿನ ಶುಲ್ಕವನ್ನು ವಿಧಿಸುವ **ಮಧ್ಯವರ್ತಿಗಳಿಲ್ಲದೆ ವ್ಯಾಪಾರ** ಚಟುವಟಿಕೆ ನಡೆಯುತ್ತದೆ. ಡಿಜಿಟಲ್ ಕಾರ್ಬನ್ ಕ್ರೆಡಿಟ್ಗಳು ಸಮಾನ ಸಾಂಪ್ರದಾಯಿಕ ಕ್ರೆಡಿಟ್ಗಳಿಗೆ ಹೋಲಿಸಿದರೆ [62% ವೆಚ್ಚ ಸುಧಾರಣೆಯನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತವೆ](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne) ಎಂದು ಒಂದು ವಿಶ್ಲೇಷಣಾತ್ಮಕ ಸಂಸ್ಥೆಯ ಡೇಟಾ ತಿಳಿಸಿದೆ. -- **DCM ಸ್ಕೇಲೆಬಲ್** ಮತ್ತು ವ್ಯಕ್ತಿಗಳು ಮತ್ತು ಬಹುರಾಷ್ಟ್ರೀಯ ನಿಗಮಗಳ ಬೇಡಿಕೆಗಳನ್ನು ಸಮಾನವಾಗಿ ಪೂರೈಸಬಹುದು. - -### DCMನ ಪ್ರಮುಖ ಅಂಶಗಳು {#key-components-dcm} - -DCMನ ಪ್ರಸ್ತುತ ಭೂದೃಶ್ಯವನ್ನು ನಾಲ್ಕು ಪ್ರಮುಖ ಅಂಶಗಳು ರೂಪಿಸುತ್ತವೆ: - -1. [Verra](https://verra.org/project/vcs-program/registry-system/) ಮತ್ತು [ಗೋಲ್ಡ್ ಸ್ಟ್ಯಾಂಡರ್ಡ್](https://www.goldstandard.org/) ನಂತಹ ರಿಜಿಸ್ಟ್ರಿಗಳು ಇಂಗಾಲದ ಕ್ರೆಡಿಟ್ ಗಳನ್ನು ರಚಿಸುವ ಯೋಜನೆಗಳು ವಿಶ್ವಾಸಾರ್ಹವಾಗಿವೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತವೆ. ಡಿಜಿಟಲ್ ಕಾರ್ಬನ್ ಕ್ರೆಡಿಟ್ ಗಳು ಹುಟ್ಟುವ ಡೇಟಾಬೇಸ್ ಗಳನ್ನು ಸಹ ಅವರು ನಿರ್ವಹಿಸುತ್ತಾರೆ ಮತ್ತು ವರ್ಗಾಯಿಸಬಹುದು ಅಥವಾ ಬಳಸಬಹುದು (ನಿವೃತ್ತ). - -ಬ್ಲಾಕ್ ಚೈನ್ ಗಳಲ್ಲಿ ನವೀನ ಯೋಜನೆಗಳ ಹೊಸ ಅಲೆಯನ್ನು ನಿರ್ಮಿಸಲಾಗುತ್ತಿದೆ, ಅದು ಈ ವಲಯದಲ್ಲಿ ಅಧಿಕಾರದಲ್ಲಿರುವವರನ್ನು ಅಡ್ಡಿಪಡಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದೆ. - -2. Carbon bridges ಕಾರ್ಬನ್ ಸೇತುವೆಗಳು, a.k.a. ಟೋಕನೈಜರ್‌ಗಳು, ಸಾಂಪ್ರದಾಯಿಕ ದಾಖಲಾತಿಗಳಿಂದ DCM ಗೆ ಕಾರ್ಬನ್ ಕ್ರೆಡಿಟ್‌ಗಳನ್ನು ಪ್ರತಿನಿಧಿಸಲು ಅಥವಾ ವರ್ಗಾಯಿಸಲು ತಂತ್ರಜ್ಞಾನವನ್ನು ಒದಗಿಸುತ್ತವೆ. ಗಮನಾರ್ಹ ಉದಾಹರಣೆಗಳಲ್ಲಿ [Toucan - ಟೌಕನ್ ಪ್ರೋಟೋಕಾಲ್](https://toucan.earth/), [C3](https://c3.app/), ಮತ್ತು [Moss.Earth](https://moss.earth/) ಸೇರಿವೆ. -3. ಸಂಯೋಜಿತ ಸೇವೆಗಳು ಅಂತ್ಯ-ಬಳಕೆದಾರರಿಗೆ ಕಾರ್ಬನ್ ತಪ್ಪಿಸುವಿಕೆ ಮತ್ತು/ಅಥವಾ ತೆಗೆಯುವಿಕೆ ಕ್ರೆಡಿಟ್‌ಗಳನ್ನು ನೀಡುತ್ತವೆ, ಅವರು ಕ್ರೆಡಿಟ್‌ನ ಪರಿಸರೀಯ ಲಾಭವನ್ನು ಹಕ್ಕು ಸ್ಥಾಪಿಸಬಹುದು ಮತ್ತು ವಿಶ್ವದೊಂದಿಗೆ ಹವಾಮಾನ ಕ್ರಮಗಳ ಬಗ್ಗೆ ತಮ್ಮ ಬೆಂಬಲವನ್ನು ಹಂಚಿಕೊಳ್ಳಬಹುದು. - -[ಕ್ಲಿಮಾ ಇನ್ಫಿನಿಟಿ](https://www.klimadao.finance/infinity) ಮತ್ತು [ಸೆಂಕೆನ್](https://senken.io/) ನಂತಹ ಕೆಲವು ಮೂರನೇ ಪಕ್ಷಗಳು ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ಮತ್ತು ವೆರಾದಂತಹ ಸ್ಥಾಪಿತ ಮಾನದಂಡಗಳ ಅಡಿಯಲ್ಲಿ ನೀಡಲಾದ ವಿವಿಧ ರೀತಿಯ ಯೋಜನೆಗಳನ್ನು ನೀಡುತ್ತವೆ; [Nori](https://nori.com/) ನೋರಿಯಂತಹ ಇತರರು ತಮ್ಮದೇ ಆದ ಕಾರ್ಬನ್ ಕ್ರೆಡಿಟ್ ಮಾನದಂಡದ ಅಡಿಯಲ್ಲಿ ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ ನಿರ್ದಿಷ್ಟ ಯೋಜನೆಗಳನ್ನು ಮಾತ್ರ ನೀಡುತ್ತಾರೆ, ಅದಕ್ಕಾಗಿ ಅವರು ತಮ್ಮದೇ ಆದ ಮೀಸಲಾದ ಮಾರುಕಟ್ಟೆಯನ್ನು ಹೊಂದಿದ್ದಾರೆ. - -4. ಇಂಗಾಲದ ಮಾರುಕಟ್ಟೆಯ ಸಂಪೂರ್ಣ ಪೂರೈಕೆ ಸರಪಳಿಯ ಪ್ರಭಾವ ಮತ್ತು ದಕ್ಷತೆಯ ಸ್ಕೇಲಿಂಗ್ ಅನ್ನು ಸುಗಮಗೊಳಿಸುವ ಆಧಾರವಾಗಿರುವ ಹಳಿಗಳು ಮತ್ತು ಮೂಲಸೌಕರ್ಯಗಳು. [KlimaDAO - ಕ್ಲಿಮಾಡಾವೊ](http://klimadao.finance/) ದ್ರವ್ಯತೆಯನ್ನು ಸಾರ್ವಜನಿಕ ಸರಕಾಗಿ ಪೂರೈಸುತ್ತದೆ (ಪಾರದರ್ಶಕ ಬೆಲೆಯಲ್ಲಿ ಇಂಗಾಲದ ಕ್ರೆಡಿಟ್ ಗಳನ್ನು ಖರೀದಿಸಲು ಅಥವಾ ಮಾರಾಟ ಮಾಡಲು ಯಾರಿಗಾದರೂ ಅವಕಾಶ ನೀಡುತ್ತದೆ), ಇಂಗಾಲದ ಮಾರುಕಟ್ಟೆಗಳ ಹೆಚ್ಚಳವನ್ನು ಉತ್ತೇಜಿಸುತ್ತದೆ ಮತ್ತು ಪ್ರತಿಫಲಗಳೊಂದಿಗೆ ನಿವೃತ್ತಿಗಳನ್ನು ಉತ್ತೇಜಿಸುತ್ತದೆ ಮತ್ತು ವಿವಿಧ ರೀತಿಯ ಟೋಕನೈಸ್ಡ್ ಕಾರ್ಬನ್ ಕ್ರೆಡಿಟ್ ಗಳ ಬಗ್ಗೆ ಡೇಟಾವನ್ನು ಪ್ರವೇಶಿಸಲು ಮತ್ತು ಸ್ವಾಧೀನಪಡಿಸಿಕೊಳ್ಳಲು ಮತ್ತು ನಿವೃತ್ತರಾಗಲು ಬಳಕೆದಾರ ಸ್ನೇಹಿ ಇಂಟರ್ ಆಪರೇಬಲ್ ಟೂಲಿಂಗ್ ಅನ್ನು ಒದಗಿಸುತ್ತದೆ. - -## ಇಂಗಾಲದ ಮಾರುಕಟ್ಟೆಗಳನ್ನು ಮೀರಿ ReFi {#refi-beyond} - -ಕಾರ್ಬನ್ ಮಾರುಕಟ್ಟೆಗಳ ಮೇಲೆ ಒತ್ತು ನೀಡುವ ಪ್ರವೃತ್ತಿ ಇದ್ದರೂ ಮತ್ತು ವಿಶೇಷವಾಗಿ ವಿಶ್ವ ಕಾರ್ಬನ್ ಮಾರುಕಟ್ಟೆಯನ್ನು VCM ಡೆವಲಪಿಂಗ್ ಕೌಂಟ್ರಿ ಮಾರುಕಟ್ಟೆಗೆ DCM ಪರಿವರ್ತಿಸುತ್ತಿರುವಾಗಲೂ, “ReFi” ಪದವು ಕೇವಲ ಕಾರ್ಬನ್‌ಗೆ ಸೀಮಿತವಾಗಿಲ್ಲ. ಇತರ ಪರಿಸರೀಯ ಆಸ್ತಿಗಳನ್ನು ಕಾರ್ಬನ್ ಕ್ರೆಡಿಟ್‌ಗಳ ಜೊತೆಗೆ ಅಭಿವೃದ್ಧಿಪಡಿಸಬಹುದು ಮತ್ತು ಟೋಕೆನೈಸ್ಡ್ ಮಾಡಬಹುದು, ಇದರಿಂದಾಗಿ ಭವಿಷ್ಯದ ಆರ್ಥಿಕ ವ್ಯವಸ್ಥೆಗಳ ಮೂಲ ಸ್ತರಗಳಲ್ಲಿ ಇತರ ನಕಾರಾತ್ಮಕ ಹೊರಗಿನ ವೆಚ್ಚಗಳನ್ನು ಕೂಡ ಬೆಲೆಗೆ ಇಡಬಹುದು. ಇದಲ್ಲದೆ, ಈ ಆರ್ಥಿಕ ಮಾದರಿಯ ಪುನರುತ್ಪಾದಕ ಅಂಶವನ್ನು ಇತರ ಕ್ಷೇತ್ರಗಳಿಗೆ ಅನ್ವಯಿಸಬಹುದು, ಉದಾಹರಣೆಗೆ [Gitcoin](https://gitcoin.co/) ಗಿಟ್‍ಕಾಯಿನ್‍ನಂತಹ ಕ್ವಾಡ್ರಾಟಿಕ್ ಫಂಡಿಂಗ್ ಪ್ಲಾಟ್‍ಫಾರ್ಮ್‍ಗಳ ಮೂಲಕ ಸಾರ್ವಜನಿಕ ಸರಕುಗಳಿಗೆ ಧನಸಹಾಯ. ಮುಕ್ತ ಭಾಗವಹಿಸುವಿಕೆ ಮತ್ತು ಸಂಪನ್ಮೂಲಗಳ ಸಮಾನ ವಿತರಣೆಯ ಕಲ್ಪನೆಯ ಮೇಲೆ ನಿರ್ಮಿಸಲಾದ ಸಂಸ್ಥೆಗಳು ಮುಕ್ತ-ಮೂಲ ಸಾಫ್ಟ್‌ವೇರ್ ಯೋಜನೆಗಳಿಗೆ, ಹಾಗೆಯೇ ಶೈಕ್ಷಣಿಕ, ಪರಿಸರ ಮತ್ತು ಸಮುದಾಯ-ಚಾಲಿತ ಯೋಜನೆಗಳಿಗೆ ಹಣವನ್ನು ತುಂಬಲು ಎಲ್ಲರಿಗೂ ಅಧಿಕಾರ ನೀಡುತ್ತವೆ. - -ಬಂಡವಾಳದ ದಿಕ್ಕನ್ನು ಹೊರತೆಗೆಯುವ ಅಭ್ಯಾಸಗಳಿಂದ ಪುನರುತ್ಪಾದಕ ಹರಿವಿನ ಕಡೆಗೆ ಬದಲಾಯಿಸುವ ಮೂಲಕ, ಸಾಮಾಜಿಕ, ಪರಿಸರ ಅಥವಾ ಸಾಮುದಾಯಿಕ ಪ್ರಯೋಜನಗಳನ್ನು ಒದಗಿಸುವ ಯೋಜನೆಗಳು ಮತ್ತು ಕಂಪನಿಗಳು-ಮತ್ತು ಸಾಂಪ್ರದಾಯಿಕ ಹಣಕಾಸುದಲ್ಲಿ ಹಣವನ್ನು ಸಾಧಿಸಲು ವಿಫಲವಾಗಬಹುದು-ನೆಲದಿಂದ ಹೊರಬರಬಹುದು ಮತ್ತು ಸಮಾಜಕ್ಕೆ ಧನಾತ್ಮಕ ಬಾಹ್ಯತೆಯನ್ನು ಉಂಟುಮಾಡಬಹುದು. ಹೆಚ್ಚು ವೇಗವಾಗಿ ಮತ್ತು ಸುಲಭವಾಗಿ. ನಿಧಿಯ ಈ ಮಾದರಿಗೆ ಪರಿವರ್ತನೆಯು ಹೆಚ್ಚು ಅಂತರ್ಗತ ಆರ್ಥಿಕ ವ್ಯವಸ್ಥೆಗಳಿಗೆ ಬಾಗಿಲು ತೆರೆಯುತ್ತದೆ, ಅಲ್ಲಿ ಎಲ್ಲಾ ಜನಸಂಖ್ಯಾಶಾಸ್ತ್ರದ ಜನರು ಕೇವಲ ನಿಷ್ಕ್ರಿಯ ವೀಕ್ಷಕರ ಬದಲಿಗೆ ಸಕ್ರಿಯ ಪಾಲ್ಗೊಳ್ಳುವವರಾಗಬಹುದು. ನಮ್ಮ ಜಾತಿಗಳು ಮತ್ತು ನಮ್ಮ ಗ್ರಹದಲ್ಲಿನ ಎಲ್ಲಾ ಜೀವಗಳು ಎದುರಿಸುತ್ತಿರುವ ಅಸ್ತಿತ್ವವಾದದ ಸವಾಲುಗಳ ಮೇಲೆ ಕ್ರಿಯೆಯನ್ನು ಸಂಘಟಿಸುವ ಕಾರ್ಯವಿಧಾನವಾಗಿ ReFi ಇಥಿರಿಯಮ್‍ನ ದೃಷ್ಟಿಯನ್ನು ನೀಡುತ್ತದೆ-ಹೊಸ ಆರ್ಥಿಕ ಮಾದರಿಯ ಮೂಲ ಪದರವಾಗಿ, ಮುಂಬರುವ ಶತಮಾನಗಳವರೆಗೆ ಹೆಚ್ಚು ಅಂತರ್ಗತ ಮತ್ತು ಸಮರ್ಥನೀಯ ಭವಿಷ್ಯವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. - -## ReFi ನಲ್ಲಿ ಹೆಚ್ಚುವರಿ ಓದುವಿಕೆ - -- [ಇಂಗಾಲದ ಕರೆನ್ಸಿಗಳ ಉನ್ನತ ಮಟ್ಟದ ಅವಲೋಕನ ಮತ್ತು ಆರ್ಥಿಕತೆಯಲ್ಲಿ ಅವುಗಳ ಸ್ಥಾನ](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) -- [ದಿ ಮಿನಿಸ್ಟ್ರಿ ಫಾರ್ ದಿ ಫ್ಯೂಚರ್, ಹವಾಮಾನ ಬದಲಾವಣೆಯ ವಿರುದ್ಧ ಹೋರಾಡುವಲ್ಲಿ ಇಂಗಾಲ-ಬೆಂಬಲಿತ ಕರೆನ್ಸಿಯ ಪಾತ್ರವನ್ನು ಚಿತ್ರಿಸುವ ಕಾದಂಬರಿ](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) -- [ಸ್ವಯಂಪ್ರೇರಿತ ಇಂಗಾಲದ ಮಾರುಕಟ್ಟೆಗಳನ್ನು ಸ್ಕೇಲಿಂಗ್ ಮಾಡುವ ಕಾರ್ಯಪಡೆಯ ವಿವರವಾದ ವರದಿ](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) -- [ಕೆವಿನ್ ಒವೊಕಿ ಮತ್ತು ಇವಾನ್ ಮಿಯಾಜೋನೊ ಅವರ ReFi ನಲ್ಲಿ ಕಾಯಿನ್‍ಮಾರ್ಕೆಟ್‍ಕ್ಯಾಪ್ ಪದಕೋಶ ನಮೂದು](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/kn/smart-contracts/index.md b/src/content/translations/kn/smart-contracts/index.md deleted file mode 100644 index 89f3ea0b5b0..00000000000 --- a/src/content/translations/kn/smart-contracts/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳು -description: ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳಿಗೆ ತಾಂತ್ರಿಕವಲ್ಲದ ಪರಿಚಯ -lang: kn ---- - -# Introduction to smart contracts {#introduction-to-smart-contracts} - -ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳು ಇಥಿರಿಯಮ್ ಅಪ್ಲಿಕೇಶನ್ ಪದರದ ಮೂಲಭೂತ ನಿರ್ಮಾಣ ಘಟಕಗಳಾಗಿವೆ. ಅವುಗಳು ಬ್ಲಾಕ್‌ಚೈನ್‌ನಲ್ಲಿ ಸಂಗ್ರಹವಾಗಿರುವ ಕಂಪ್ಯೂಟರ್ ಕಾರ್ಯಕ್ರಮಗಳಾಗಿವೆ, ಅವು "ಈಗಾಗಲೇ ಇದ್ದರೆ ಆಗ ಅದು" ಎಂಬ ತರ್ಕವನ್ನು ಅನುಸರಿಸುತ್ತವೆ ಮತ್ತು ಅದರ ಕೋಡ್‌ನಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ನಿಯಮಗಳ ಪ್ರಕಾರ ಕಾರ್ಯಗತಗೊಳ್ಳುವ ಖಾತರಿ ನೀಡುತ್ತವೆ, ಅದು ರಚಿಸಿದ ನಂತರ ಬದಲಾಯಿಸಲಾಗುವುದಿಲ್ಲ. - -ನಿಕ್ ಸ್ಜಾಬೊ "ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್" ಎಂಬ ಪದವನ್ನು ರಚಿಸಿದರು. 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). - -ಸ್ಝಾಬೊ ಅವರು ನಂಬಲಾಗದ ಮಧ್ಯವರ್ತಿಗಳಿಲ್ಲದೆ ಒಟಪೋಟವಾಗಿ, ಗುಪ್ತ ಸಂಖ್ಯಾತ್ಮಕವಾಗಿ ಸುರಕ್ಷಿತ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಬಳಸಿ ವಹಿವಾಟುಗಳು ಮತ್ತು ವ್ಯವಹಾರ ಕಾರ್ಯಗಳನ್ನು ನಡೆಯುವ ಒಂದು ಡಿಜಿಟಲ್ ಮಾರುಕಟ್ಟೆಯನ್ನು ಕಲ್ಪಿಸಿಕೊಂಡರು. ಎಥೆರಿಯಮ್ನಲ್ಲಿನ ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳು ಈ ದೃಷ್ಟಿಯನ್ನು ಕಾರ್ಯರೂಪಕ್ಕೆ ತಂದವು. - -### ಸಾಂಪ್ರದಾಯಿಕ ಒಪ್ಪಂದಗಳಲ್ಲಿ ನಂಬಿಕೆ {#trust-and-contracts} - -ಸಾಂಪ್ರದಾಯಿಕ ಒಪ್ಪಂದದ ಅತಿದೊಡ್ಡ ಸಮಸ್ಯೆಯೆಂದರೆ ವಿಶ್ವಾಸಾರ್ಹ ವ್ಯಕ್ತಿಗಳು ಒಪ್ಪಂದದ ಫಲಿತಾಂಶಗಳನ್ನು ಅನುಸರಿಸುವ ಅಗತ್ಯ. - -ಒಂದು ಉದಾಹರಣೆ ಇಲ್ಲಿದೆ: - -ಆಲಿಸ್ ಮತ್ತು ಬಾಬ್ ಬೈಸಿಕಲ್ ರೇಸ್ ನಡೆಸುತ್ತಿದ್ದಾರೆ. ಆಲಿಸ್ ತಾನು ಓಟವನ್ನು ಗೆಲ್ಲುತ್ತೇನೆ ಎಂದು ಬಾಬ್‍ಗೆ $10 ಬೆಟ್ಟಿಂಗ್ ಮಾಡುತ್ತಾಳೆ ಎಂದು ಹೇಳೋಣ. ಬಾಬ್ ಅವರು ವಿಜೇತರಾಗುತ್ತಾರೆ ಎಂಬ ವಿಶ್ವಾಸವಿದೆ ಮತ್ತು ಬೆಟ್ಟಿಂಗ್ ಗೆ ಒಪ್ಪುತ್ತಾರೆ. ಕೊನೆಯಲ್ಲಿ, ಆಲಿಸ್ ಬಾಬ್‍ಗಿಂತ ಮುಂಚಿತವಾಗಿ ರೇಸ್ ಅನ್ನು ಮುಗಿಸುತ್ತಾಳೆ ಮತ್ತು ಸ್ಪಷ್ಟ ವಿಜೇತಳಾಗಿದ್ದಾಳೆ. ಆದರೆ ಆಲಿಸ್ ಮೋಸ ಮಾಡಿರಬೇಕು ಎಂದು ಹೇಳಿ ಬಾಬ್ ಬೆಟ್ಟಿಂಗ್ ಪಾವತಿಸಲು ನಿರಾಕರಿಸುತ್ತಾನೆ. - -ಈ ಸರಳ ಉದಾಹರಣೆಯು ಯಾವುದೇ ಸ್ಮಾರ್ಟ್ ಅಲ್ಲದ ಒಪ್ಪಂದದ ಸಮಸ್ಯೆಯನ್ನು ವಿವರಿಸುತ್ತದೆ. ಒಪ್ಪಂದದ ಷರತ್ತುಗಳು ಪೂರೈತಾದರೂ (ಉದಾಹರಣೆಗೆ, ನೀವು ಓಟದ ಗೆದ್ದಿದ್ದರೆ), ನೀವು ಇನ್ನೊಬ್ಬ ವ್ಯಕ್ತಿಯನ್ನು ಒಪ್ಪಂದವನ್ನು ಪೂರೈಸಲು (ಉದಾಹರಣೆಗೆ, ಜೂಜಿನ ಮೇಲಿನ ಪಾವತಿ) ನಂಬಬೇಕು. - -### A digital vending machine {#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/) - -## More of a visual learner? {#visual-learner} - -ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳನ್ನು ಫೈನ್ಮ್ಯಾಟಿಕ್ಸ್ ವಿವರಿಸುವುದನ್ನು ವೀಕ್ಷಿಸಿ: - - - -## Further reading {#further-reading} - -- [ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳು ಜಗತ್ತನ್ನು ಹೇಗೆ ಬದಲಾಯಿಸುತ್ತವೆ](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳು: ವಕೀಲರನ್ನು ಬದಲಿಸುವ ಬ್ಲಾಕ್‍ಚೈನ್ ತಂತ್ರಜ್ಞಾನ](https://blockgeeks.com/guides/smart-contracts/) -- [ಡೆವಲಪರ್ ಗಳಿಗೆ ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳು](/developers/docs/smart-contracts/) -- [ಸ್ಮಾರ್ಟ್-ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳನ್ನು ಬರೆಯಲು ಕಲಿಯಿರಿ](/developers/learning-tools/) -- [ಇಥಿರಿಯಮ್ ಅನ್ನು ಕರಗತ ಮಾಡಿಕೊಳ್ಳುವುದು - ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಎಂದರೇನು?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/src/content/translations/kn/social-networks/index.md b/src/content/translations/kn/social-networks/index.md deleted file mode 100644 index 7f3216fc012..00000000000 --- a/src/content/translations/kn/social-networks/index.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: ವಿಕೇಂದ್ರೀಕರಿತ ಸಾಮಾಜಿಕ ಜಾಲಗಳು -description: ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್‍ಗಳ ಅವಲೋಕನ -lang: kn -template: use-cases -emoji: ":mega:" -sidebarDepth: 2 -image: ../../../../assets/ethereum-learn.png -summaryPoint1: ಸಾಮಾಜಿಕ ಸಂವಹನ ಮತ್ತು ವಿಷಯ ರಚನೆ ಮತ್ತು ವಿತರಣೆಗಾಗಿ ಬ್ಲಾಕ್‍ಚೈನ್ ಆಧಾರಿತ ವೇದಿಕೆಗಳು. -summaryPoint2: ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮ ನೆಟ್‍ವರ್ಕ್‍ಗಳು ಬಳಕೆದಾರರ ಗೌಪ್ಯತೆಯನ್ನು ರಕ್ಷಿಸುತ್ತವೆ ಮತ್ತು ಡೇಟಾ ಭದ್ರತೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತವೆ. -summaryPoint3: ಟೋಕನ್‍ಗಳು ಮತ್ತು NFTಗಳು ವಿಷಯವನ್ನು ಹಣಗಳಿಸಲು ಹೊಸ ಮಾರ್ಗಗಳನ್ನು ರಚಿಸುತ್ತವೆ. ---- - -ನಮ್ಮ ದೈನಂದಿನ ಸಂವಹನ ಮತ್ತು ಸಂವಹನಗಳಲ್ಲಿ ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್‍ಗಳು ಭಾರಿ ಪಾತ್ರ ವಹಿಸುತ್ತವೆ. ಆದರೆ, ಈ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳ ಕೇಂದ್ರೀಕೃತ ನಿಯಂತ್ರಣವು ಅನೇಕ ಸಮಸ್ಯೆಗಳನ್ನು ಉಂಟುಮಾಡಿದೆ: ಡೇಟಾ ಸೋರಿಕೆ, ಸರ್ವರ್ ಔಟ್‌ಏಜ್‌ಗಳು, ಡಿ-ಪ್ಲಾಟ್‌ಫಾರ್ಮಿಂಗ್, ಸೆನ್ಸಾರ್‌ಶಿಪ್ ಮತ್ತು ಗೌಪ್ಯತೆ ಉಲ್ಲಂಘನೆಗಳು ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮವು ಹಲವುವೇಳೆ ಮಾಡುವ ಕೆಲವು ಒಪ್ಪಂದಗಳಾಗಿವೆ. ಈ ಸಮಸ್ಯೆಗಳನ್ನು ಎದುರಿಸಲು, ಡೆವಲಪರ್ ಗಳು ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್‍ಗಳನ್ನು ನಿರ್ಮಿಸುತ್ತಿದ್ದಾರೆ. ಡೆಸೆಂಟ್ರಲೈಸ್ಡ್ ಸಾಮಾಜಿಕ ಜಾಲಗಳು ಸಾಂಪ್ರದಾಯಿಕ ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್‍ಗಳ ಸಮಸ್ಯೆಗಳಲ್ಲಿ ಹಲವನ್ನು ಸರಿಪಡಿಸಬಹುದು ಮತ್ತು ಬಳಕೆದಾರರ ಒಟ್ಟಾರೆ ಅನುಭವವನ್ನು ಸುಧಾರಿಸಬಹುದು. - -## ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್‍ಗಳು ಎಂದರೇನು? {#what-are-decentralized-social-networks} - -ಡೆಸೆಂಟ್ರಲೈಸ್ಡ್ ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್‍ಗಳು ಬ್ಲಾಕ್‌ಚೈನ್ ಆಧಾರಿತ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳಾಗಿವೆ, ಅದು ಬಳಕೆದಾರರಿಗೆ ಮಾಹಿತಿ ವಿನಿಮಯ ಮಾಡಲು ಮತ್ತು ಪ್ರೇಕ್ಷಕರಿಗೆ ವಿಷಯವನ್ನು ಪ್ರಕಟಿಸಲು ಮತ್ತು ವಿತರಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಈ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಬ್ಲಾಕ್‌ಚೈನ್‌ನಲ್ಲಿ ಚಲಿಸುವ ಕಾರಣ, ಅವು ಕೇಂದ್ರೀಕೃತಗೊಳಿಸದ ಮತ್ತು ಸೆನ್ಸಾರ್‌ಶಿಪ್ ಮತ್ತು ಅನಗತ್ಯ ನಿಯಂತ್ರಣಕ್ಕೆ ಪ್ರತಿರೋಧಕವಾಗಿರಬಲ್ಲವು. - -ಹಲವು ಡೆಸೆಂಟ್ರಲೈಸ್ಡ್ ಸಾಮಾಜಿಕ ಜಾಲಗಳು ಫೇಸ್‌ಬುಕ್, ಲಿಂಕೆಡಿನ್, ಟ್ವಿಟರ್ ಮತ್ತು ಮೀಡಿಯಂ ಮುಂತಾದ ಸ್ಥಾಪಿತ ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮ ಸೇವೆಗಳಿಗೆ ಪರ್ಯಾಯವಾಗಿ ಅಸ್ತಿತ್ವದಲ್ಲಿವೆ. ಆದರೆ ಬ್ಲಾಕ್‌ಚೈನ್-ಆಧಾರಿತ ಸಾಮಾಜಿಕ ಜಾಲಗಳು ಹಲವಾರು ಲಕ್ಷಣಗಳನ್ನು ಹೊಂದಿವೆ, ಅದು ಅವುಗಳನ್ನು ಸಾಂಪ್ರದಾಯಿಕ ಸಾಮಾಜಿಕ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳ ಮುಂದಿಡುತ್ತದೆ. - -### ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್‍ಗಳು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ? {#decentralized-social-networks-overview} - -ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್‍ಗಳು [ವಿಕೇಂದ್ರೀಕೃತ ಅಪ್ಲಿಕೇಶನ್‍ಗಳ (Dapps)](/dapps/) ಒಂದು ವರ್ಗವಾಗಿದೆ - ಬ್ಲಾಕ್‍ಚೈನ್‍ನಲ್ಲಿ ನಿಯೋಜಿಸಲಾದ [ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಗಳಿಂದ](/developers/docs/smart-contracts/) ಚಾಲಿತ ಅಪ್ಲಿಕೇಶನ್‍ಗಳು. ಕಾಂಟ್ರಾಕ್ಟ್ ಕೋಡ್ ಈ ಅಪ್ಲಿಕೇಶನ್‍ಗಳಿಗೆ ಬ್ಯಾಕ್ ಎಂಡ್ ಆಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಅವುಗಳ ವ್ಯವಹಾರ ತರ್ಕವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ. - -ಸಾಂಪ್ರದಾಯಿಕ ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮ ಪ್ಲಾಟ್‍ಫಾರ್ಮ್‍ಗಳ ಬಳಕೆದಾರರ ಮಾಹಿತಿ, ಪ್ರೋಗ್ರಾಂ ಕೋಡ್ ಮತ್ತು ಇತರ ರೀತಿಯ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸಲು ಡೇಟಾಬೇಸ್‍ಗಳನ್ನು ಅವಲಂಬಿಸಿವೆ. ಆದರೆ ಇದು ವೈಫಲ್ಯದ ಏಕ ಬಿಂದುಗಳನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ ಮತ್ತು ಗಮನಾರ್ಹ ಅಪಾಯವನ್ನು ಪರಿಚಯಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಫೇಸ್ಬುಕ್ನ ಸರ್ವರ್ಗಳು ಕಳೆದ ವರ್ಷ [ಗಂಟೆಗಳ ಕಾಲ ಆಫ್‍ಲೈನ್‍ಗೆ ಹೋದವು](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact), ಬಳಕೆದಾರರನ್ನು ಪ್ಲಾಟ್‍ಫಾರ್ಮ್‍ನಿಂದ ಕಡಿತಗೊಳಿಸಿದವು. - -ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ನೆಟ್‌ವರ್ಕ್‌ಗಳು ಜಗತ್ತಿನಾದ್ಯಂತ ಸಾವಿರಾರು ನೋಡ್‌ಗಳನ್ನು ಒಳಗೊಂಡಿರುವ ಪೀರ್-ಟು-ಪೀರ್ ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಅಸ್ತಿತ್ವದಲ್ಲಿವೆ. ಕೆಲವು ನೋಡ್‌ಗಳು ವಿಫಲವಾದರೂ, ನೆಟ್‌ವರ್ಕ್ ಅಡೆತಡೆಯಿಲ್ಲದೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಇದು ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ವೈಫಲ್ಯಗಳು ಮತ್ತು ಸ್ಥಗಿತಗಳಿಗೆ ನಿರೋಧಕವಾಗಿಸುತ್ತದೆ. - -[ಇಂಟರ್ಪ್ಲಾನೆಟರಿ ಫೈಲ್ ಸಿಸ್ಟಮ್ (IPFS)](https://ipfs.io/) ನಂತಹ ವಿಕೇಂದ್ರೀಕೃತ ಶೇಖರಣಾ ವ್ಯವಸ್ಥೆಗಳನ್ನು ಬಳಸಿಕೊಂಡು, ಎಥೆರಿಯಮ್ನಲ್ಲಿ ನಿರ್ಮಿಸಲಾದ ಸಾಮಾಜಿಕ ನೆಟ್ವರ್ಕ್ಗಳು ಬಳಕೆದಾರರ ಮಾಹಿತಿಯನ್ನು ಶೋಷಣೆ ಮತ್ತು ದುರುದ್ದೇಶಪೂರಿತ ಬಳಕೆಯಿಂದ ರಕ್ಷಿಸಬಹುದು. ನಿಮ್ಮ ವೈಯಕ್ತಿಕ ಮಾಹಿತಿಯನ್ನು ಯಾರೂ ಜಾಹೀರಾತುದಾರರಿಗೆ ಮಾರಾಟ ಮಾಡುವುದಿಲ್ಲ, ಹ್ಯಾಕರ್‌ಗಳು ನಿಮ್ಮ ಗೌಪ್ಯ ವಿವರಗಳನ್ನು ಕದಿಯಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. - -ಹಲವು ಬ್ಲಾಕ್‌ಚೈನ್-ಆಧಾರಿತ ಸಾಮಾಜಿಕ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳು ಜಾಹೀರಾತು ಆದಾಯದ ಅನುಪಸ್ಥಿತಿಯಲ್ಲಿ ಗಳಿಕೆಯನ್ನು ಸಾಧಿಸಲು ಸ್ಥಳೀಯ ಟೋಕನ್‌ಗಳನ್ನು ಹೊಂದಿವೆ. ಕೆಲವು ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಪ್ರವೇಶಿಸಲು, ಅಪ್ಲಿಕೇಶನ್‌ನಲ್ಲಿನ ಖರೀದಿಗಳನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಅಥವಾ ಅವರ ನೆಚ್ಚಿನ ವಿಷಯ ರಚನೆಕಾರರಿಗೆ ಸಲಹೆ ನೀಡಲು ಬಳಕೆದಾರರು ಈ ಟೋಕನ್‌ಗಳನ್ನು ಖರೀದಿಸಬಹುದು. - -## ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್‍ಗಳ ಪ್ರಯೋಜನಗಳು {#benefits} - -1. ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್‍ಗಳು ಸೆನ್ಸಾರ್ಶಿಪ್-ನಿರೋಧಕ ಮತ್ತು ಎಲ್ಲರಿಗೂ ಮುಕ್ತವಾಗಿವೆ. ಇದರರ್ಥ ಬಳಕೆದಾರರನ್ನು ನಿಷೇಧಿಸಲು, ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ಅಥವಾ ಅನಿಯಂತ್ರಿತವಾಗಿ ನಿರ್ಬಂಧಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. - -2. ಡೆಸೆಂಟ್ರಲೈಸ್ಡ್ ಸಾಮಾಜಿಕ ಜಾಲಗಳು ತೆರೆದ ಮೂಲದ ಆದರ್ಶಗಳ ಮೇಲೆ ನಿರ್ಮಿಸಲ್ಪಟ್ಟಿವೆ ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಮೂಲ ಕೋಡ್ ಅನ್ನು ಸಾರ್ವಜನಿಕ ಪರಿಶೀಲನೆಗಾಗಿ ಲಭ್ಯಗೊಳಿಸುತ್ತವೆ. ಸಾಂಪ್ರದಾಯಿಕ ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮದಲ್ಲಿ ಸಾಮಾನ್ಯವಾದ ಅಪಾರದರ್ಶಕ ಅಲ್ಗಾರಿದಮ್‌ಗಳ ಅನುಷ್ಠಾನವನ್ನು ತೆಗೆದುಹಾಕುವ ಮೂಲಕ, ಬ್ಲಾಕ್‌ಚೇನ್ ಆಧಾರಿತ ಸಾಮಾಜಿಕ ನೆಟ್‌ವರ್ಕ್‌ಗಳು ಬಳಕೆದಾರರು ಮತ್ತು ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ರಚನೆಕಾರರ ಹಿತಾಸಕ್ತಿಗಳನ್ನು ಜೋಡಿಸಬಹುದು. - -3. ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್‍ಗಳು "ಮಧ್ಯವರ್ತಿ"ಯನ್ನು ತೊಡೆದುಹಾಕುತ್ತವೆ. ವಿಷಯದ ಸೃಷ್ಟಿಕರ್ತರು ತಮ್ಮ ವಿಷಯದ ಮೇಲೆ ನೇರ ಒಡೆತನ ಹೊಂದಿದ್ದಾರೆ ಮತ್ತು ಅವರು ಫಾಲೋವರ್‌ಗಳು, ಅಭಿಮಾನಿಗಳು, ಖರೀದಿದಾರರು ಮತ್ತು ಇತರ ಪಕ್ಷಗಳೊಂದಿಗೆ ನೇರವಾಗಿ ಸಂವಹನ ನಡೆಸುತ್ತಾರೆ, ಅವುಗಳ ನಡುವೆ ಸ್ಮಾರ್ಟ್ ಕಾಂಟ್ರಾಕ್ಟ್ ಒಂದೇ ಇರುತ್ತದೆ. - -4. ಇಥಿರಿಯಮ್ ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಚಲಿಸುವ ಡ್ಯಾಪ್‌ಗಳಂತೆ, ಇದು ಜಾಗತಿಕ, ಪೀರ್-ಟು-ಪೀರ್ ನೋಡ್‌ಗಳ ಜಾಲದಿಂದ ನಡೆಸಲ್ಪಡುತ್ತದೆ, ಡೆಸೆಂಟ್ರಲೈಸ್ಡ್ ಸಾಮಾಜಿಕ ಜಾಲಗಳು ಸರ್ವರ್ ಡೌನ್‌ಟೈಮ್ ಮತ್ತು ಔಟ್‌ಏಜ್‌ಗಳಿಗೆ ಕಡಿಮೆ ಒಳಗಾಗುತ್ತವೆ. - -5. ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳು ವಿಷಯ ರಚನೆಕಾರರಿಗೆ ನಾನ್-ಫಂಜಿಬಲ್ ಟೋಕನ್‌ಗಳು (NFT ಗಳು), ಅಪ್ಲಿಕೇಶನ್‌ನಲ್ಲಿನ ಕ್ರಿಪ್ಟೋ ಪಾವತಿಗಳು ಮತ್ತು ಹೆಚ್ಚಿನವುಗಳ ಮೂಲಕ ಸುಧಾರಿತ ಹಣಗಳಿಕೆಯ ಚೌಕಟ್ಟನ್ನು ನೀಡುತ್ತವೆ. - -6. ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್‍ಗಳು ಬಳಕೆದಾರರಿಗೆ ಹೆಚ್ಚಿನ ಮಟ್ಟದ ಗೌಪ್ಯತೆ ಮತ್ತು ಅನಾಮಧೇಯತೆಯನ್ನು ನೀಡುತ್ತವೆ. ಉದಾಹರಣೆಗೆ, ಒಬ್ಬ ವ್ಯಕ್ತಿಯು ENS ಪ್ರೊಫೈಲ್ ಅಥವಾ ವ್ಯಾಲೆಟ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಇಥಿರಿಯಮ್-ಆಧಾರಿತ ಸಾಮಾಜಿಕ ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಬಹುದು-ಹೆಸರುಗಳು, ಇಮೇಲ್ ವಿಳಾಸಗಳು ಇತ್ಯಾದಿಗಳಂತಹ ವೈಯಕ್ತಿಕವಾಗಿ ಗುರುತಿಸಬಹುದಾದ ಮಾಹಿತಿಯನ್ನು (PII) ಹಂಚಿಕೊಳ್ಳದೆಯೇ. - -7. ಡೆಸೆಂಟ್ರಲೈಸ್ಡ್ ಸಾಮಾಜಿಕ ಜಾಲಗಳು ಕೇಂದ್ರೀಕೃತ ಡೇಟಾಬೇಸ್‌ಗಳಲ್ಲದೆ, ಕೇಂದ್ರೀಕೃತವಾಗಿರದ ಶೇಖರಣೆಯ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿವೆ, ಅದು ಬಳಕೆದಾರರ ಡೇಟಾವನ್ನು ರಕ್ಷಿಸಲು ಗಣನೀಯವಾಗಿ ಉತ್ತಮವಾಗಿದೆ. - -## ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ನೆಟ್ವರ್ಕ್ಗಳು {#ethereum-social-networks} - -ಇಥಿರಿಯಮ್ ನೆಟ್‍ವರ್ಕ್ ತನ್ನ ಟೋಕನ್‍ಗಳ ಜನಪ್ರಿಯತೆ (ERC -20 / ERC -721) ಜನಪ್ರಿಯತೆ ಮತ್ತು ಅದರ ಬೃಹತ್ ಬಳಕೆದಾರರ ನೆಲೆಯಿಂದಾಗಿ ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮವನ್ನು ರಚಿಸುವ ಡೆವಲಪರ್ಗಳಿಗೆ ಆದ್ಯತೆಯ ಸಾಧನವಾಗಿದೆ. ಇಥಿರಿಯಮ್ ಆಧಾರಿತ ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್‍ಗಳ ಕೆಲವು ಉದಾಹರಣೆಗಳು ಇಲ್ಲಿವೆ: - -### Peepeth {#peepeth} - -[Peepeth](https://peepeth.com/) ಟ್ವಿಟರ್ಗೆ ಹೋಲುವ ಮೈಕ್ರೋಬ್ಲಾಗಿಂಗ್ ಪ್ಲಾಟ್‍ಫಾರ್ಮ್ ಆಗಿದೆ. ಇದು ಇಥಿರಿಯಮ್ ಬ್ಲಾಕ್‍ಚೈನ್‍ನಲ್ಲಿ ಚಲಿಸುತ್ತದೆ ಮತ್ತು ಬಳಕೆದಾರರ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸಲು IPFS ಅನ್ನು ಬಳಸುತ್ತದೆ. - -ಬಳಕೆದಾರರು "ಪೀಪ್ಸ್" ಎಂದು ಕರೆಯಲ್ಪಡುವ ಸಣ್ಣ ಸಂದೇಶಗಳನ್ನು ಕಳುಹಿಸಬಹುದು, ಅದನ್ನು ಅಳಿಸಲು ಅಥವಾ ಮಾರ್ಪಡಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ತೊರೆಯದೆ ನೀವು Ether (ETH) ನಲ್ಲಿ ಪ್ಲಾಟ್‍ಫಾರ್ಮ್‍ನಲ್ಲಿ ಯಾರಿಗಾದರೂ ಸಲಹೆಯನ್ನು ಸಂಗ್ರಹಿಸಬಹುದು ಅಥವಾ ಸಲಹೆಯನ್ನು ನೀಡಬಹುದು. - -### Mirror {#mirror} - -[ Mirror](https://mirror.xyz/) ಮಿರರ್ ಎಂಬುದು Web3-ಸಕ್ರಿಯಗೊಳಿಸಿದ ಬರವಣಿಗೆ ವೇದಿಕೆಯಾಗಿದ್ದು, ಇದು ವಿಕೇಂದ್ರೀಕೃತ ಮತ್ತು ಬಳಕೆದಾರ ಮಾಲೀಕತ್ವದ ಗುರಿಯನ್ನು ಹೊಂದಿದೆ. ಬಳಕೆದಾರರು ತಮ್ಮ ವ್ಯಾಲೆಟ್‍ಗಳನ್ನು ಸಂಪರ್ಕಿಸುವ ಮೂಲಕ ಮಿರರ್ ನಲ್ಲಿ ಉಚಿತವಾಗಿ ಓದಬಹುದು ಮತ್ತು ಬರೆಯಬಹುದು. ಬಳಕೆದಾರರು ಬರವಣಿಗೆಯನ್ನು ಸಂಗ್ರಹಿಸಬಹುದು ಮತ್ತು ತಮ್ಮ ನೆಚ್ಚಿನ ಬರಹಗಾರರಿಗೆ ಚಂದಾದಾರರಾಗಬಹುದು. - -ಮಿರರ್ ನಲ್ಲಿ ಪ್ರಕಟವಾದ ಪೋಸ್ಟ್ ಗಳನ್ನು ವಿಕೇಂದ್ರೀಕೃತ ಶೇಖರಣಾ ವೇದಿಕೆಯಾದ Arweave ನಲ್ಲಿ ಶಾಶ್ವತವಾಗಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ರೈಟಿಂಗ್ NFTಗಳು ಎಂದು ಕರೆಯಲ್ಪಡುವ ಸಂಗ್ರಹಿಸಬಹುದಾದ [ನಾನಂಜಿಬಲ್ ಟೋಕನ್‍ಗಳಾಗಿ (NFTsಗಳು)](/nft/) ತಯಾರಿಸಬಹುದು. NFTಗಳನ್ನು ಬರೆಯುವುದು ಬರಹಗಾರರಿಗೆ ರಚಿಸಲು ಸಂಪೂರ್ಣವಾಗಿ ಉಚಿತವಾಗಿದೆ, ಮತ್ತು ಸಂಗ್ರಹವು ಇಥಿರಿಯಮ್ L2 ನಲ್ಲಿ ನಡೆಯುತ್ತದೆ - ವಹಿವಾಟುಗಳನ್ನು ಅಗ್ಗದ, ವೇಗದ ಮತ್ತು ಪರಿಸರ ಸ್ನೇಹಿಯನ್ನಾಗಿ ಮಾಡುತ್ತದೆ. - -### MINDS {#minds} - -[MINDS ](https://www.minds.com/)ಮೈಂಡ್ಸ್ ಹೆಚ್ಚು ಬಳಸಲಾಗುವ ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್‍ಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ. ಇದು ಫೇಸ್‍ಬುಕ್‍ನಂತೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಈಗಾಗಲೇ ಲಕ್ಷಾಂತರ ಬಳಕೆದಾರರನ್ನು ಸೆಳೆದಿದೆ. - -ಬಳಕೆದಾರರು ಐಟಂಗಳಿಗೆ ಪಾವತಿಸಲು ಪ್ಲಾಟ್‍ಫಾರ್ಮ್‍ನ ಸ್ಥಳೀಯ ERC -20 ಟೋಕನ್ $MIND ಅನ್ನು ಬಳಸುತ್ತಾರೆ. ಜನಪ್ರಿಯ ವಿಷಯವನ್ನು ಪ್ರಕಟಿಸುವ ಮೂಲಕ, ಪರಿಸರ ವ್ಯವಸ್ಥೆಗೆ ಕೊಡುಗೆ ನೀಡುವ ಮೂಲಕ ಮತ್ತು ಇತರರನ್ನು ವೇದಿಕೆಗೆ ಉಲ್ಲೇಖಿಸುವ ಮೂಲಕ ಬಳಕೆದಾರರು $MIND ಟೋಕನ್‍ಗಳನ್ನು ಗಳಿಸಬಹುದು. - -## ಇಥಿರಿಯಮ್‍ನಲ್ಲಿ Web2 ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್‍ಗಳು {#web2-social-networks-and-ethereum} - -[Web3](/web3/) ಸ್ಥಳೀಯ ಸಾಮಾಜಿಕ ಪ್ಲಾಟ್‍ಫಾರ್ಮ್‍ಗಳು ಮಾತ್ರ ಬ್ಲಾಕ್‍ಚೈನ್ ತಂತ್ರಜ್ಞಾನವನ್ನು ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮದಲ್ಲಿ ಸಂಯೋಜಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿಲ್ಲ. ಅನೇಕ ಕೇಂದ್ರೀಕೃತ ವೇದಿಕೆಗಳು ಇಥಿರಿಯಮ್ ಅನ್ನು ತಮ್ಮ ಮೂಲಸೌಕರ್ಯದಲ್ಲಿ ಸಂಯೋಜಿಸಲು ಯೋಜಿಸುತ್ತಿವೆ: - -### ರೆಡ್ಡಿಟ್ {#reddit} - -ರೆಡ್ಡಿಟ್ [ಕಮ್ಯುನಿಟಿ ಪಾಯಿಂಟ್ಸ್](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users) ಅನ್ನು ಹೊಂದಿದೆ, ಇದು [ERC -20 ಟೋಕನ್‍ಗಳಾಗಿವೆ](/developers/docs/standards/tokens/erc-20/), ಇದು ಗುಣಮಟ್ಟದ ವಿಷಯವನ್ನು ಪೋಸ್ಟ್ ಮಾಡುವ ಮೂಲಕ ಮತ್ತು ಆನ್‍ಲೈನ್ ಸಮುದಾಯಗಳಿಗೆ (ಸಬ್ರೆಡಿಟ್ಸ್) ಕೊಡುಗೆ ನೀಡುವ ಮೂಲಕ ಬಳಕೆದಾರರು ಗಳಿಸಬಹುದು. [ವಿಶೇಷ ಸವಲತ್ತುಗಳು](https://www.reddit.com/community-points/) ಮತ್ತು ಸವಲತ್ತುಗಳನ್ನು ಪಡೆಯಲು ನೀವು ಈ ಟೋಕನ್‍ಗಳನ್ನು ಸಬ್ರೆಡಿಟ್ ಒಳಗೆ ರಿಡೀಮ್ ಮಾಡಬಹುದು. ಈ ಯೋಜನೆಗಾಗಿ, ರೆಡ್ಡಿಟ್ ಇಥಿರಿಯಮ್ ವಹಿವಾಟುಗಳನ್ನು ಅಳೆಯಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ [ಲೇಯರ್ 2](/layer-2/) L2 ರೋಲಪ್ ಅರ್ಬಿಟ್ರಮ್ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತಿದೆ. - -ಪ್ರೋಗ್ರಾಂ ಈಗಾಗಲೇ ಲೈವ್ ಆಗಿದೆ, r/CryptoCurrency ಸಬ್ರೆಡಿಟ್ ತನ್ನ [ಸಮುದಾಯ ಬಿಂದುಗಳ ಆವೃತ್ತಿಯನ್ನು "ಮೂನ್ಸ್"](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki) ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ಅಧಿಕೃತ ವಿವರಣೆಯಲ್ಲಿ, ಮೂನ್ಸ್ "ಸಬ್ರೆಡಿಟ್‍ಗೆ ನೀಡಿದ ಕೊಡುಗೆಗಳಿಗಾಗಿ ಪೋಸ್ಟರ್ ಗಳು, ಕಾಮೆಂಟ್ ಮಾಡುವವರು ಮತ್ತು ಮಾಡರೇಟರ್ ಗಳಿಗೆ ಬಹುಮಾನ ನೀಡುತ್ತಾರೆ." ಈ ಟೋಕನ್‍ಗಳು ಬ್ಲಾಕ್‍ಚೈನ್‍ನಲ್ಲಿರುವುದರಿಂದ (ಬಳಕೆದಾರರು ಅವುಗಳನ್ನು ವ್ಯಾಲೆಟ್‍ಗಳಲ್ಲಿ ಸ್ವೀಕರಿಸುತ್ತಾರೆ), ಅವು ರೆಡ್ಡಿಟ್ ನಿಂದ ಸ್ವತಂತ್ರವಾಗಿವೆ ಮತ್ತು ಅವುಗಳನ್ನು ತೆಗೆದುಹಾಕಲಾಗುವುದಿಲ್ಲ. - -ರಿಂಕೆಬಿ ಟೆಸ್ಟ್‌ನೆಟ್‌ನಲ್ಲಿ ಬೀಟಾ ಹಂತವನ್ನು ಮುಗಿಸಿದ ನಂತರ, ರೆಡ್ಡಿಟ್ ಸಮುದಾಯದ ಅಂಕಗಳು ಈಗ [ಆರ್ಬಿಟ್ರಮ್ ನೋವಾ](https://nova.arbitrum.io/) ನಲ್ಲಿದೆ, ಇದು [ಸೈಡ್‌ಚೈನ್](/developers/docs/scaling/sidechains/) ಮತ್ತು [ಆಪ್‌ಟಿಮಿಸ್ಟಿಕ್ ರೋಲ್‌ಅಪ್](/developers/docs/scaling/optimistic-rollups/) ಗುಣಲಕ್ಷಣಗಳನ್ನು ಒಳಗೊಂಡಿರುವ ಬ್ಲಾಕ್‌ಚೈನ್ ಆಗಿದೆ. ವಿಶೇಷ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಅನ್‍ಲಾಕ್ ಮಾಡಲು ಸಮುದಾಯ ಪಾಯಿಂಟ್‍ಗಳನ್ನು ಬಳಸುವುದರ ಜೊತೆಗೆ, ಬಳಕೆದಾರರು ಅವುಗಳನ್ನು ಎಕ್ಸ್ ಚೇಂಜ್‍ಗಳಲ್ಲಿ ಫಿಯೆಟ್‍ಗಾಗಿ ವ್ಯಾಪಾರ ಮಾಡಬಹುದು. ಅಲ್ಲದೆ, ಬಳಕೆದಾರರು ಹೊಂದಿರುವ ಸಮುದಾಯ ಪಾಯಿಂಟ್ ಗಳ ಪ್ರಮಾಣವು ಸಮುದಾಯದೊಳಗಿನ ನಿರ್ಧಾರ ತೆಗೆದುಕೊಳ್ಳುವ ಪ್ರಕ್ರಿಯೆಯ ಮೇಲೆ ಅವರ ಪ್ರಭಾವವನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ. - -### ಟ್ವಿಟರ್ ಈಗ X {#twitter} - -ಜನವರಿ 2021 ರಲ್ಲಿ, ಟ್ವಿಟರ್ ಬ್ಲೂ [NFT ಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಹೊರತಂದಿತು](https://mashable.com/article/twitter-blue-nft-profile-picture), ಬಳಕೆದಾರರಿಗೆ ತಮ್ಮ ವ್ಯಾಲೆಟ್‍ಗಳನ್ನು ಸಂಪರ್ಕಿಸಲು ಮತ್ತು NFT ಗಳನ್ನು ಪ್ರೊಫೈಲ್ ಚಿತ್ರಗಳಾಗಿ ಪ್ರದರ್ಶಿಸಲು ಅನುವು ಮಾಡಿಕೊಟ್ಟಿತು. ಬರೆಯುವ ಸಮಯದಲ್ಲಿ, ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮ ಕಂಪನಿ ಭವಿಷ್ಯದಲ್ಲಿ ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ನೆಟ್‍ವರ್ಕ್ ರಚಿಸುವ [ಯೋಜನೆಗಳನ್ನು ಘೋಷಿಸಿದೆ.](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web). - -### ಇನ್ ಸ್ಟಾ ಗ್ರಾಮ್ {#instagram} - -ಮೇ 2022 ರಲ್ಲಿ, [ಇನ್ಸ್ಟಾಗ್ರಾಮ್ ಇಥಿರಿಯಮ್ ಮತ್ತು ಪಾಲಿಗಾನ್ನಲ್ಲಿ NFTಗಳಿಗೆ](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) ಬೆಂಬಲವನ್ನು ಘೋಷಿಸಿತು. ಬಳಕೆದಾರರು ತಮ್ಮ ಇಥಿರಿಯಮ್ ವ್ಯಾಲೆಟ್ ಅನ್ನು ಸಂಪರ್ಕಿಸುವ ಮೂಲಕ NFTಗಳನ್ನು ನೇರವಾಗಿ ಇನ್ಸ್ಟಾಗ್ರಾಮ್ಗೆ ಪೋಸ್ಟ್ ಮಾಡಬಹುದು. - -## ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ನೆಟ್ ವರ್ಕ್ ಗಳನ್ನು ಬಳಸಿ {#use-decentralized-social-networks} - -- **[ಸ್ಟೇಟಸ್.ಐಎಂ](https://status.im/)** - _ಸ್ಟೇಟಸ್ ಒಂದು ಸುರಕ್ಷಿತ ಸಂದೇಶ ಅಪ್ಲಿಕೇಶನ್ ಆಗಿದ್ದು, ಇದು ಮುಕ್ತ-ಮೂಲ, ಪೀರ್-ಟು-ಪೀರ್ ಪ್ರೋಟೋಕಾಲ್ ಮತ್ತು ಎಂಡ್-ಟು-ಎಂಡ್ ಎನ್‌ಕ್ರಿಪ್ಶನ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ನಿಮ್ಮ ಸಂದೇಶಗಳನ್ನು ಮೂರನೇ ಪಕ್ಷಗಳಿಂದ ರಕ್ಷಿಸುತ್ತದೆ._ -- **[Mirror.xyz](https://mirror.xyz/)** - _ - ಮಿರರ್ ಎಂಬುದು ವಿಕೇಂದ್ರೀಕೃತ, ಬಳಕೆದಾರ-ಮಾಲೀಕತ್ವದ ಪ್ರಕಾಶನ ವೇದಿಕೆಯಾಗಿದ್ದು, ಬಳಕೆದಾರರಿಗೆ ಕ್ರೌಡ್ ಫಂಡ್ ಕಲ್ಪನೆಗಳನ್ನು ಕ್ರೌಡ್ ಫಂಡ್ ಮಾಡಲು, ವಿಷಯವನ್ನು ಹಣಗಳಿಸಲು ಮತ್ತು ಹೆಚ್ಚಿನ ಮೌಲ್ಯದ ಸಮುದಾಯಗಳನ್ನು ನಿರ್ಮಿಸಲು ಇಥಿರಿಯಮ್ ನಲ್ಲಿ ನಿರ್ಮಿಸಲಾಗಿದೆ._ -- **[Lens Protocol](https://lens.xyz/)** - _ಲೆನ್ಸ್ ಪ್ರೋಟೋಕಾಲ್ ಎಂಬುದು ಸಂಯೋಜಿಸಬಹುದಾದ ಮತ್ತು ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ಗ್ರಾಫ್ ಆಗಿದ್ದು, ವಿಕೇಂದ್ರೀಕೃತ ಇಂಟರ್ನೆಟ್ನ ಡಿಜಿಟಲ್ ಉದ್ಯಾನದಲ್ಲಿ ಎಲ್ಲಿ ಹೋದರೂ ಸೃಷ್ಟಿಕರ್ತರು ತಮ್ಮ ವಿಷಯದ ಮಾಲೀಕತ್ವವನ್ನು ತೆಗೆದುಕೊಳ್ಳಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ._ -- **[ Farcaster](https://farcaster.xyz/)** - _ಫಾರ್ಕಾಸ್ಟರ್ ಸಾಕಷ್ಟು ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ನೆಟ್ವರ್ಕ್ ಆಗಿದೆ. ಇದು ಇಮೇಲ್ನಂತೆಯೇ ಅನೇಕ ಗ್ರಾಹಕರನ್ನು ಬೆಂಬಲಿಸುವ ಮುಕ್ತ ಪ್ರೋಟೋಕಾಲ್ ಆಗಿದೆ._ - -## Further reading {#further-reading} - -### ಲೇಖನಗಳು {#articles} - -- [ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮದ ವಿಕೇಂದ್ರೀಕರಣ: Web 3 ಸಾಮಾಜಿಕ ಸ್ಟ್ಯಾಕ್ ಗೆ ಮಾರ್ಗದರ್ಶಿ](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _ಕಾಯಿನ್ಬೇಸ್ ವೆಂಚರ್ಸ್_ -- [ಸಾಮಾಜಿಕ ನೆಟ್ ವರ್ಕ್ ಗಳು ಮುಂದಿನ ದೊಡ್ಡ ವಿಕೇಂದ್ರೀಕರಣ ಅವಕಾಶವಾಗಿದೆ](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) - _ Ben Goertzel_ -- [ವೆಬ್ 3 ವಿಕೇಂದ್ರೀಕೃತ, ಸಮುದಾಯ-ಚಾಲಿತ ಸಾಮಾಜಿಕ ನೆಟ್ ವರ್ಕ್ ಗಳ ಭರವಸೆಯನ್ನು ಹೊಂದಿದೆ](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) - _ಸುಮಿತ್ ಘೋಷ್_ -- [ಬ್ಲಾಕ್ ಚೈನ್ ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮ ಭೂದೃಶ್ಯದ ಅವಲೋಕನ](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) - _ಜೆಮಿನಿ ಕ್ರಿಪ್ಟೋಪೀಡಿಯಾ_ -- [ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮ ಗೌಪ್ಯತೆಯನ್ನು ಬ್ಲಾಕ್ ಚೈನ್ ಹೇಗೆ ಪರಿಹರಿಸಬಹುದು](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) - _ಪ್ರಬ್ಲೀನ್ ಬಾಜಪೇಯಿ_ -- [ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮ ನೆಟ್ ವರ್ಕ್ ಗಳು ಬ್ಲಾಕ್ ಚೈನ್ ಗೆ ಬರುತ್ತಿವೆ](https://businesstechguides.co/what-are-decentralized-social-networks) - _Emmanuel Awosika_ -- [ಸಾಮಾಜಿಕ ನೆಟ್ ವರ್ಕ್ ಗಳಿಗೆ ಸಾಕಷ್ಟು ವಿಕೇಂದ್ರೀಕರಣ](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) - _ ವರುಣ್ ಶ್ರೀನಿವಾಸನ್_ - -### Videos {#videos} - -- [ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮ ವಿವರಿಸಲಾಗಿದೆ](https://www.youtube.com/watch?v=UdT2lpcGvcQ) - _Coinmarketcap_ -- [DeSo ಬ್ಲಾಕ್ಚೈನ್ ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮವನ್ನು ವಿಕೇಂದ್ರೀಕರಿಸಲು ಬಯಸುತ್ತದೆ](https://www.youtube.com/watch?v=SG2HUiVp0rE) - _ಬ್ಲೂಮ್ಬರ್ಗ್ ಟೆಕ್ನಾಲಜಿ_ -- [ವಿಕೇಂದ್ರೀಕೃತ ಸಾಮಾಜಿಕ ಮಾಧ್ಯಮದ ಭವಿಷ್ಯ ಬಾಲಾಜಿ ಶ್ರೀನಿವಾಸನ್, ವಿಟಾಲಿಕ್ ಬುಟೆರಿನ್, ಜುವಾನ್ ಬೆನೆಟ್](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/content/translations/ko/dao/index.md b/src/content/translations/ko/dao/index.md deleted file mode 100644 index 3cf876ba8c9..00000000000 --- a/src/content/translations/ko/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: 탈중앙화 자율 조직(DAO) -description: 이더리움의 DAO 개요 -lang: ko -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: 제안에 투표하는 DAO의 표현. -summaryPoint1: 중앙화된 리더십이 없는 회원 소유 커뮤니티. -summaryPoint2: 인터넷에서 낯선 사람과 협업할 수 있는 안전한 방법. -summaryPoint3: 특정 목적을 위해 자금을 넣을 수 있는 안전한 장소. ---- - -## DAO란 무엇입니까? {#what-are-daos} - -DAO는 공동의 사명을 위해 일하는 집단 소유의, 블록체인 관리 조직입니다. - -DAO는 자금이나 운영을 관리하는 자비로운 리더를 신뢰하지 않고도, 우리가 전 세계의 비슷한 생각을 가진 사람들과 함께 일할 수 있게 해줍니다. 변덕스럽게 자금을 쓸 수 있는 CEO나 장부를 조작할 수 있는 CFO는 없습니다. 대신, 코드에 적용된 블록체인 기반 규칙은 조직의 작동 방식과 자금 사용 방식을 정의합니다. - -DAO는 그룹의 승인 없이는 누구도 접근할 수 없는 내장된 자산을 가지고 있습니다. 결정은 조직의 모든 사람이 목소리를 낼 수 있도록 하기 위해 제안과 투표를 통해 이루어지며, 모든 것이 온체인에서 투명하게 진행됩니다. - -## DAO가 필요한 이유는 무엇입니까? {#why-dao} - -누군가와 함께 자금과 돈을 포함하는 조직을 시작하려면 함께 일하는 사람들에 대한 많은 신뢰가 필요합니다. 그러나 인터넷에서만 교류한 사람을 신뢰하기는 어렵습니다. DAO를 사용하면 그룹에 있는 다른 사람을 신뢰할 필요가 없으며, 100% 투명하고 누구나 확인할 수 있는 DAO의 코드만 있으면 됩니다. - -이는 글로벌 협업 및 조정에 대해 다양한 새로운 기회를 열어줍니다. - -### 비교 {#dao-comparison} - -| 탈중앙화 자율 조직 | 기존의 조직 | -| -------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -| 일반적으로 수평적이고, 완전히 민주화되어 있습니다. | 일반적으로 계층적입니다. | -| 변경 사항을 구현하려면 회원의 투표가 필요합니다. | 구조에 따라 단독 주체가 변경을 요구하거나 투표가 제안될 수 있습니다. | -| 투표가 집계되고, 결과는 신뢰할 수 있는 중개자 없이 자동으로 구현됩니다. | 투표가 시행되는 경우, 투표는 내부적으로 집계되고 투표 결과는 수동으로 처리해야 합니다. | -| 제공되는 서비스는 탈중앙화된 방식으로 자동 처리됩니다(예: 자선 기금 분배). | 사람이 직접 처리하거나 중앙에서 제어되는 자동화가 필요하며 조작하기 쉽습니다. | -| 모든 활동은 투명하고 완전히 공개됩니다. | 활동은 일반적으로 비공개로 이루어지며 공개에 제한적입니다. | - -### DAO 예시 {#dao-examples} - -이해를 더 돕기 위해 다음은 DAO를 사용하는 방법에 대한 몇 가지 예시입니다. - -- 자선 활동 – 전 세계 모든 사람의 기부를 수락하고 기금의 원천에 대해 투표할 수 있습니다. -- 집합적 소유권 – 물리적 또는 디지털 자산을 구매할 수 있으며, 회원은 사용 방법에 대해 투표할 수 있습니다. -- 벤처 및 보조금 - 투자 자본을 모으고 벤처에 대한 투표를 지원하는 벤처 펀드를 만들 수 있습니다. 상환된 금액은 나중에 DAO 회원들에게 재분배될 수 있습니다. - -## DAO는 어떻게 작동하나요? {#how-daos-work} - -DAO의 중추는 조직의 규칙을 정의하고 그룹의 자금을 보유하는 스마트 계약입니다. 이더리움에서 계약이 실행되면 투표 외에는 누구도 규칙을 변경할 수 없습니다. 코드에 있는 규칙과 논리에서 다루지 않는 작업을 누군가 실행하려고 하면 실패합니다. 재무 또한 스마트 계약에 의해 정의되기 때문에 그룹의 승인 없이는 누구도 돈을 쓸 수 없습니다. 이는 DAO가 중앙 권한을 필요로 하지 않는다는 것을 의미합니다. 대신 그룹에서 공동으로 결정을 내리며 투표에서 통과되면 결제는 자동으로 승인됩니다. - -이것은 스마트 계약이 이더리움에서 실행되면 변조가 불가능하기 때문에 가능합니다. 모든 것은 공개되어 있기 때문에 다른 사람들이 눈치채지 못하게 코드(DAO 규칙)를 편집할 수 없습니다. - - - 스마트 계약에 대한 자세한 정보 - - -## 이더리움과 DAO {#ethereum-and-daos} - -이더리움은 여러 가지 이유로 DAO의 완벽한 기반입니다. - -- 이더리움 자체의 합의는 조직이 네트워크를 신뢰할 수 있을 만큼 충분히 분산되어있고, 형성되어 있습니다. -- 스마트 계약 코드는 이더리움에서 일단 활성화되면 소유자일지라도 수정할 수 없습니다. 이는 DAO가 프로그래밍된 규칙에 따라 실행될 수 있게 합니다. -- 스마트 계약은 자금을 보내고 받을 수 있습니다. 이것이 없다면 그룹 자금을 관리하기 위해 신뢰할 수 있는 중개자가 필요합니다. -- 이더리움 커뮤니티는 경쟁보다 협력적임이 입증되었으며, 모범 사례와 지원 시스템이 빠르게 등장할 수 있게 합니다. - -## DAO 거버넌스 {#dao-governance} - -투표 및 제안이 작동하는 방식과 같이 DAO를 관리할 때 많은 고려 사항이 있습니다. - -### 위임 {#governance-delegation} - -위임은 대의민주주의의 DAO 버전과 같습니다. 토큰 보유자는 자신을 지명하고, 프로토콜을 관리하고, 정보를 유지하기로 약속한, 사용자에게 투표를 위임합니다. - -#### 유명한 예시 {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) – ENS 보유자는 그들을 대표할 참여 커뮤니티 구성원에게 투표를 위임할 수 있습니다. - -### 자동 거래 거버넌스 {#governance-example} - -많은 DAO에서는 구성원의 정족수가 찬성하면 거래가 자동으로 실행됩니다. - -#### 유명한 예시 {#governance-example} - -[Noun](https://nouns.wtf) –Noun DAO에서는 설립자가 거부하지 않는 한 투표 정족수가 충족되고 과반수가 찬성하면 트랜잭션이 자동으로 실행됩니다. - -### 다중서명 거버넌스 {#governance-example} - -DAO에는 수천 명의 의결권을 가진 회원이 있을 수 있지만, 자금은 신뢰할 수 있고 일반적으로 공개된(커뮤니티에 알려진 공개 ID) 5~20명의 활동적인 커뮤니티 회원이 공유하는 지갑에 있을 수 있습니다. 투표이후에 다중서명자가 커뮤니티의 의지를 실행하게 됩니다. - -## DAO 법 {#dao-laws} - -1977년 와이오밍 주에서 기업가를 보호하고 책임을 제한하는 유한책임회사를 고안했습니다. 더 최근에는 DAO의 법적 상태를 확립하는 DAO 법을 제정하기도 했습니다. 현재 와이오밍, 버몬트 및 버진 아일랜드에는 어떤 형태로든 DAO 법률이 존재합니다. - -#### 유명한 예시 {#law-example} - -[CityDAO](https://citydao.io) - CityDAO는 와이오밍의 DAO 법을 사용하여 옐로스톤 국립공원 근처의 40에이커의 땅을 구입했습니다. - -## DAO 멤버십 {#dao-membership} - -DAO 멤버십에는 다양한 모델이 있습니다. 멤버십은 투표 방식과 DAO의 기타 주요 부분을 결정할 수 있습니다. - -### 토큰 기반 멤버십 {#token-based-membership} - -사용되는 토큰에 따라 일반적으로 완전한 권한이 없습니다. 대부분 이러한 거버넌스 토큰은 탈중앙화 거래소에서 허가 없이 거래될 수 있습니다. 나머지는 유동성 또는 기타 '작업 증명'을 제공하여 벌어야 합니다. 어느 방식이든, 단순히 토큰을 보유하면 투표에 대한 접근 권한이 부여됩니다. - -_일반적으로 광범위한 분산 프로토콜 및/또는 토큰 자체를 관리하는 데 사용됩니다._ - -#### 유명한 예시 {#token-example} - -[MakerDAO](https://makerdao.com) – MakerDAO의 토큰 MKR은 탈중앙화 거래소에서 널리 사용 가능하며, 누구나 구매하여 Maker 프로토콜의 미래에 대한 투표권을 가질 수 있습니다. - -### 주식 기반 멤버십 {#share-based-membership} - -주식 기반 DAO는 더 많은 권한이 있지만, 여전히 열려 있습니다. DAO 가입 희망자는 누구나 DAO에 가입하기 위한 제안을 제출할 수 있으며, 보통 토큰이나 작업의 형태로 어느 정도의 가치를 제공할 수 있습니다. 주식은 직접 의결권과 소유권을 나타냅니다. 회원들은 비례적 지분을 가지고 언제든지 탈퇴할 수 있습니다. - -_일반적으로 자선 단체, 근로자 집단 및 투자 클럽과 같이 보다 긴밀하고 인간 중심적인 조직에 사용됩니다. 프로토콜과 토큰도 관리할 수 있습니다._ - -#### 유명한 예시 {#share-example} - -[MolochDAO](http://molochdao.com/) - MolochDAO는 이더리움 프로젝트 펀딩에 중점을 두고 있습니다. 그룹에서는 잠재적 수혜자가 정보를 바탕으로 판단을 하는 데 필요한 전문 지식과 자본이 있는지 평가할 수 있도록 멤버십 제안을 요구합니다. 공개 시장에서 단순히 DAO에 대한 액세스 권한을 구매할 수는 없습니다. - -### 평판 기반 멤버십 {#reputation-based-membership} - -평판은 참여 사실을 나타내며 DAO에서 투표할 수 있는 권한을 제공합니다. 토큰 또는 주식 기반 멤버십과 다르게 평판 기반 DAO는 기여자에게 소유권을 이전하지 않습니다. 평판은 구매하거나 이전 또는 임의로 부여될 수 없으며 DAO 구성원이 참여를 통해 직접 획득해야 합니다. 온체인 투표에는 권한이 필요하지 않아 원하는 구성원은 자유롭게 DAO 가입 신청을 제출하고 기여에 대한 보상으로 거래소에서 평판과 토큰을 받도록 요청할 수 있습니다. - -_보통은 분산형 개발 및 프로토콜, 디앱의 운영 방식에 사용되지만, 자선 단체, 노동자 집단, 투자 동아리 등의 다양한 용도의 조직에도 적합합니다._ - -#### 유명한 예시 {#reputation-example} - -[DXdao](https://DXdao.eth.link) – DXdao는 세계적인 주권 집합체이며 2019년부터 분산형 프로토콜 및 애플리케이션을 운영해오고 있습니다. 자금을 조정하고 관리하기 위해 평판 기반 운영 방식과 홀로그래픽 합의 메커니즘을 활용하는데, 이는 그 누구도 미래에 영향을 미칠 수 없음을 의미합니다. - -## DAO 가입/시작 {#join-start-a-dao} - -### DAO 가입하기 {#join-a-dao} - -- [이더리움 커뮤니티 DAO](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [DAOHaus의 DAO 목록](https://app.daohaus.club/explore) -- [Tally.xyz DAO 명단](https://www.tally.xyz) - -### DAO 시작하기 {#start-a-dao} - -- [DAOHaus로 DAO 호출](https://app.daohaus.club/summon) -- [Tally로 거버너 DAO 시작하기](https://www.tally.xyz/add-a-dao) -- [Aragon 기반 DAO 만들기](https://aragon.org/product) -- [콜로니 시작하기](https://colony.io/) -- [DAOstack의 홀로그램 합의를 이용하여 DAO 만들기](https://alchemy.daostack.io/daos/create) - -## 더 읽을거리 {#further-reading} - -### DAO 기사 {#dao-articles} - -- [DAO란?](https://aragon.org/dao) – [Aragon](https://aragon.org/) -- [DAO 핸드북](https://daohandbook.xyz) -- [DAO의 집](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) -- [DAO란 무엇이며 무엇을 위한 것일까요?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) -- [DAO 기반 디지털 커뮤니티를 시작하는 방법](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) -- [DAO란?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) -- [홀로그램 합의란 무엇인가요?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) -- [DAO는 기업이 아닙니다: 비탈릭의 자율적 조직의 탈중앙화가 중요한 이유](https://vitalik.ca/general/2022/09/20/daos.html) -- [DAO, DAC, DA 그리고...: 완성되지 않은 용어 가이드](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [이더리움 블로그](https://blog.ethereum.org) - -### 영상 {#videos} - -- [암호화에서 DAO란 무엇입니까?](https://youtu.be/KHm0uUPqmVE) -- [DAO가 도시를 건설할 수 있을까요?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) - [TED](https://www.ted.com/) diff --git a/src/content/translations/ko/decentralized-identity/index.md b/src/content/translations/ko/decentralized-identity/index.md deleted file mode 100644 index 923f325a87a..00000000000 --- a/src/content/translations/ko/decentralized-identity/index.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: 분산 신원 증명 -description: 분산 신원 증명이란 무엇이며, 왜 중요할까요? -lang: ko -template: use-cases -emoji: ":id:" -sidebarDepth: 2 -image: ../../../../assets/eth-gif-cat.png -summaryPoint1: 기존의 신원 증명 시스템은 식별자의 발급, 점검, 제어를 한 곳으로 집중시켰습니다. -summaryPoint2: 분산 신원 증명을 사용하면 더 이상 중앙화된 제3자에 의존할 필요가 없어집니다. -summaryPoint3: 암호화폐 덕분에 사용자는 다시 한 번 자신의 식별자와 증명 정보를 발급, 소유, 제어할 도구를 갖게 되었습니다. ---- - -오늘날 신원 증명은 사실상 삶의 모든 부분을 뒷받침하고 있습니다. 온라인 서비스 이용, 은행 계좌 개설, 선거 투표, 재산 구매, 고용 보장 등 이 모든 활동에는 신원 증명이 필요합니다. - -그러나 기존 신원 관리 시스템은 오랜 기간동안 중앙 집권적인 중개자에게 의존해 왔으며, 중개자가 귀하의 신원과 인증 정보를 발급, 소유 및 [증명](#what-are-attestations)했습니다. 즉, 귀하의 신원 관련 정보를 직접 관리하거나 개인 식별 정보(PII)에 누가 얼마나 접근할 수 있는지 또한 귀하가 제어할 수 없다는 것을 의미합니다. - -이 문제를 해결하기 위해 이더리움과 같은 공개 블록체인에 분산 신원 증명 시스템이 도입되었습니다. 분산 신원 증명으로 개인이 직접 자신의 신원 관련 정보를 관리할 수 있습니다. 분산 신원 증명 솔루션을 통해 서비스 제공자나 정부 등 중앙 기관에 의존하지 않고도 자신의 식별자를 *직접* 제작하고 인증 정보를 획득, 소유할 수 있습니다. - -## 신원이란 무엇인가요? {#what-is-identity} - -신원은 개인의 고유한 정보를 바탕으로 정의되는 개인 증명 수단입니다. 신원은 _개인_, 즉 구별되는 인간 개체를 의미합니다. 또한 신원은 조직이나 기관과 같은 인간이 아닌 주체를 의미할 수도 있습니다. - -## 식별자란 무엇인가요? {#what-are-identifiers} - -식별자는 특정 신원의 포인터 역할을 하는 정보입니다. 일반적인 식별자는 다음과 같습니다. - -- 이름 -- 주민등록번호 및 납세자 식별 번호 -- 휴대 전화 번호 -- 생년월일 및 출생지 -- 이메일 주소, 사용자 이름, 프로필 사진 등의 디지털 신원 정보 - -이러한 기존 식별자는 중앙 기관에 의해 발급, 소유, 관리됩니다. 이름을 바꾸기 위해서는 정부의 허가가 필요하고, 닉네임을 바꾸기 위해서는 소셜 미디어 플랫폼의 허가를 받아야 합니다. - -## 증명이란 무엇인가요? {#what-are-attestations} - -증명이란 한 개체에 의해 만들어진 다른 개체에 대한 주장입니다. 예를 들어, 미국에 거주하는 경우 미국의 도로 교통 공단(한 주체)에서 발급한 운전 면허증은 본인(다른 주체)이 법적으로 자동차를 운전할 수 있음을 증명합니다. - -증명은 식별자와 다릅니다. 증명은 특정 신원을 파악할 수 있도록 신원 정보를 *포함*하며 그 신원과 관련된 정보를 주장합니다. 즉, 운전 면허증은 식별자(성명, 생년월일, 주소)를 포함할 뿐만 아니라 운전할 수 있는 법적 권리에 대한 증명이기도 합니다. - -### 분산 식별자는 무엇인가요? {#what-are-decentralized-identifiers} - -법적 이름 또는 이메일 주소 같은 기존 식별자는 정부와 이메일 제공자 같은 제3자에 의존합니다. 분산 식별자(DID)는 다릅니다. 중앙 개체에 의해 발급, 관리, 제어되지 않습니다. - -분산 식별자는 개인이 발급, 소유, 관리합니다. [이더리움 계정](/developers/docs/accounts/)은 분산 식별자의 예시입니다. 누군가의 허락 없이 원하는 만큼 많은 계정을 만들 수 있으며, 중앙 저장소에 보관해야 할 필요도 없습니다. - -분산 식별자는 분산 원장(블록체인) 또는 P2P 네트워크에 저장됩니다. 이는 DID를 [유일하고, 높은 가용성과 활용성을 지니며, 암호화 검증이 가능](https://w3c-ccg.github.io/did-primer/)하게 만듭니다. 분산 식별자는 개인, 조직 또는 정부 등 다른 개체와 연결될 수 있습니다. - -## 분산 식별자는 어떻게 가능한가요? {#what-makes-decentralized-identifiers-possible} - -### 1. 공개 키 기반 구조(PKI) {#public-key-infrastructure} - -공개 키 기반 구조(PKI)는 특정 주체를 위해 [공개 키](/glossary/#public-key) 와 [개인 키](/glossary/#private-key)를 생성하는 정보 보안 장치입니다. 공개 키 암호화 기법은 블록체인 네트워크에서 사용자의 신원을 인증하고 디지털 자산의 소유권을 증명하는 용도로 사용됩니다. - -이더리움 계정과 같은 일부 분산 식별자에는 공개 키와 개인 키가 있습니다. 공개 키는 계정의 제어자를 식별하는 반면, 개인 키는 이 계정의 메시지에 서명하거나 메시지를 해독할 수 있습니다. PKI는 주체를 인증하는 데 필요한 증명을 제공하고, [암호화 서명](https://andersbrownworth.com/blockchain/public-private-keys/)을 통해 모든 주장을 검증함으로써 명의 도용 및 허위 신원 사용을 방지합니다. - -### 2. 분산형 데이터 보관 {#decentralized-datastores} - -블록체인은 검증 가능한 데이터 레지스트리의 역할을 합니다. 즉, 개방되어 있고, (주로 중앙 집권적인) 특정 주체를 신뢰하지 않아도 되며, 탈중앙화된 정보 저장소입니다. 공용 블록체인은 중앙 집권적인 레지스트리에 식별 정보를 저장해야 할 필요를 제거합니다. - -분산 식별자의 유효성을 확인해야 하는 경우, 블록체인에서 연관된 공개 키를 조회해 볼 수 있습니다. 이것이 인증에 제3자가 필요한 기존의 식별자와 다른 점입니다. - -## 분산 식별자와 증명이 어떻게 분산 신원 증명을 가능하게 하나요? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} - -분산형 신원 증명은 신원 관련 정보는 소유자 본인이 제어하고 보호 및 이동 가능한 형태여야 한다는 아이디어를 분산형 식별 정보와 증명을 주요 기반으로 구현한 것입니다. - -분산형 신원 증명의 관점에서 증명(= [검증 가능한 인증 정보](https://www.w3.org/TR/vc-data-model/))이란, 발행자가 만든 위조 불가능하고 암호학적으로 검증 가능한 주장을 말합니다. 한 주체(예: 조직)에서 발급하는 모든 증명 또는 검증 가능한 인증 정보는 해당하는 DID에 연계됩니다. - -DID는 블록체인에 저장되기 때문에 누구든지 이더리움에서 발급자의 DID를 대조하여 증명의 유효성을 검증할 수 있습니다. 본질적으로 이더리움 블록체인은 특정 주체에 연계된 DID를 인증할 수 있게 하는 글로벌 디렉터리와 같은 역할을 합니다. - -분산형 식별 정보는 증명이 자체적으로 제어되고 검증될 수 있기 때문에 가능한 것입니다. 발급자가 더 이상 존재하지 않더라도 소유자는 언제든지 증명의 경로와 유효성을 검증할 수 있습니다. - -분산형 식별 정보는 또한 분산형 신원 증명을 통해 개인 정보를 보호하는 데에도 중요한 역할을 합니다. 예를 들어, 개인이 증명(운전 면허증 등)을 제출하는 경우 검증하는 주체는 증명에 포함된 정보의 유효성을 확인하지 않아도 됩니다. 대신, 검증자는 증명의 진위와 발급 기관의 신원에 대한 암호화 보증만 확인하면 증명이 유효한지 판단할 수 있습니다. - -## 분산형 신원 증명에서 증명 방식의 종류 {#types-of-attestations-in-decentralized-identity} - -이더리움 기반 신원 증명 생태계에서 증명 정보가 보관되고 제공되는 방법은 기존의 신원 관리 시스템과 다릅니다. 분산형 신원 증명 시스템에서 증명을 발급, 저장 및 인증하기 위한 다양한 접근 방식은 다음과 같습니다. - -### 오프체인 증명 {#off-chain-attestations} - -온체인으로 증명을 저장할 때 발생하는 문제점 중 하나는 해당 정보에 개인이 비공개로 유지하고자 하는 정보가 포함될 수도 있다는 부분입니다. 이더리움 블록체인은 공개적이라는 특성이 있기 때문에 이러한 증명을 저장하기에 부적절해 보일 수 있습니다. - -이 문제는 사용자가 디지털 지갑에서 오프체인으로 보유하고 있지만 온체인에 저장된 발급자의 DID로 서명된 증명을 발급함으로써 해결할 수 있습니다. 해당하는 증명은 [JSON 웹 토큰](https://en.wikipedia.org/wiki/JSON_Web_Token)으로 인코딩되고 발급자의 디지털 서명을 포함하므로, 간편하게 오프체인 클레임의 인증에 사용될 수 있습니다. - -다음은 오프체인 증명을 설명하는 가상 시나리오입니다. - -1. 한 대학교(발급자)가 증명(디지털 학위 증명서)을 생성한 후 대학교의 키로 서명하고, 이를 Bob(ID의 소유자)에게 발급합니다. - -2. Bob이 회사에 지원하기 위해 학위를 증명해야 할 때 모바일 지갑에서 해당 증명을 꺼내 회사에 제출할 수 있습니다. 회사(검증자)는 발급자의 DID(예: 이더리움 상의 공개 키)를 확인하여 증명의 유효성을 검증할 수 있습니다. - -### 영구 액세스 권한이 있는 오프체인 증명 {#offchain-attestations-with-persistent-access} - -오프체인 인증 방식에서 증명은 JSON 파일로 변환된 후 오프체인(이상적으로는 IPFS 또는 Swarm과 같은 [탈중앙화된 클라우드 스토리지](/developers/docs/storage/) 플랫폼)에 저장됩니다. 한편, 해당 JSON 파일의 [해시](/glossary/#hash) 값은 온체인으로 저장되며 온체인 레지스트리를 통해 DID에 링크됩니다. 연계되는 DID는 해당 증명의 발급자의 것이거나 수신인의 것일 수도 있습니다. - -이러한 방식은 증명이 블록체인 기반으로 영구 보관되는 동시에 민감한 정보는 암호화되어 필요시 검증할 수 있게 합니다. 또한 해당 증명은 개인 키의 소유자만이 복호화하여 정보를 확인할 수 있으므로, 선택적인 공개를 가능하게 합니다. - -### 온체인 증명 {#onchain-attestations} - -온체인 증명은 이더리움 블록체인의 [스마트 계약](/developers/docs/smart-contracts/)에서 이루어집니다. 스마트 계약(레지스트리 역할)은 해당하는 온체인의 분산형 식별 정보(공개 키)에 증명을 매핑합니다. - -아래는 온체인 증명이 실제로 어떻게 작동하는지를 보여주는 예시입니다. - -1. 한 기업(XYZ 회사)이 스마트 계약을 통해 주식을 판매하고자 하며, 신원이 증명된 사람에게만 구매를 허용하려고 합니다. - -2. XYZ 회사는 이더리움의 온체인 증명을 통해 개인의 신원 조회를 진행할 수 있습니다. 이러한 증명은 개인 정보를 노출하지 않고 개인의 신원 조회가 가능하게 합니다. - -3. 주식을 판매하는 스마트 계약은 레지스트리 계약에서 선별된 구매자의 신원을 확인할 수 있으므로 스마트 계약이 누가 주식을 살 수 있는지 여부를 결정할 수 있습니다. - -### 소울바운드 토큰과 신원 증명 {#soulbound} - -[소울바운드 토큰](https://vitalik.ca/general/2022/01/26/soulbound.html)(양도 불가한 NFT)은 특정 지갑에 국한된 고유한 정보를 수집하는 데 사용될 수 있습니다. 이는 개인적인 성취(특정 온라인 강의 완료 또는 게임에서 높은 점수 획득 등)나 특정 커뮤니티에 참여 등을 증명하기 위한 토큰과 같은 온체인 신원 증명이 특정 이더리움 주소에만 고유하게 소속될 수 있게 만듭니다. - -## 분산형 신원 증명의 장점 {#benefits-of-decentralized-identity} - -1. 분산형 신원 증명은 식별하는 정보에 대한 개인의 관리 권한을 강화합니다. 분산형 식별 정보 및 증명은 중앙 집권적인 기관이나 제3자 서비스에 의존하지 않고도 확인될 수 있습니다. - -2. 분산형 신원 증명 솔루션은 사용자 신원 관리 및 검증이 더욱 원활하고, 보호적이며, 특정 기관에 대한 신뢰 없이 이루어질 수 있게 합니다. - -3. 분산형 신원 증명은 블록체인 기술을 활용함으로써, 서로 다른 주체 간에 신뢰 관계를 구축하고, 증명의 유효성을 검증할 수 있는 암호화 기법을 제공합니다. - -4. 분산형 신원 증명은 신원 데이터를 휴대 가능하도록 합니다. 사용자는 증명 및 식별 정보를 모바일 지갑에 저장하고, 필요할 때 원하는 상대방과 공유할 수 있습니다. 분산형 식별 정보와 증명은 발행 기관의 특정 데이터베이스에 고정되지 않습니다. - -5. 분산형 신원 증명은 개인이 특정 정보를 공개하지 않고도 자신이 소유하거나 실행한 작업을 증명할 수 있게 하는 새로운 영지식 기술과 원활하게 작동합니다. 이는 투표와 같은 애플리케이션에 대한 신뢰와 개인 정보를 결합하는 강력한 방법이 될 수 있습니다. - -6. 분산형 신원 증명을 통해 반시빌(anti-Sybil) 메커니즘을 사용하여 한 사람이 게임 상에서 여러 사람인 것처럼 속이거나 특정 시스템을 스팸하는 행위를 식별할 수 있습니다. - -## 분산형 신원 증명 사용 사례 {#decentralized-identity-use-cases} - -분산형 신원 증명은 다양한 곳에 사용될 수 있습니다. - -### 1. 보편적 로그인 {#universal-dapp-logins} - -분산형 신원 증명은 비밀번호 기반 로그인을 [탈중앙화 인증](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/)으로 대체할 수 있게 합니다. 서비스 제공자는 사용자에게 증명을 발행할 수 있으며, 해당 증명은 이더리움 지갑에 저장됩니다. 증명의 예시로, 소유자가 특정 온라인 커뮤니티에 액세스할 수 있게 하는 [NFT](/nft/)가 있을 수 있습니다. - -그 후 [이더리움 로그인](https://login.xyz/) 기능은 서버가 사용자의 이더리움 계정을 확인하고 해당 계정 주소로부터 필요한 증명 정보를 가져올 수 있도록 합니다. 즉, 사용자는 긴 비밀번호를 기억하지 않고도 플랫폼이나 웹사이트에 액세스할 수 있으며, 이는 사용자의 온라인 환경을 향상합니다. - -### 2. KYC 인증 {#kyc-authentication} - -다양한 온라인 서비스를 사용하려면 개인은 운전면허증이나 여권과 같은 증명을 제공해야 합니다. 이러한 방식은 사용자의 개인 정보가 노출될 수 있고, 서비스 제공 업체가 자체적으로 증명을 인증할 수 없다는 문제가 있을 수 있습니다. - -분산형 신원 증명을 통해 회사는 기존의 [KYC(Know-Your-Customer)](https://en.wikipedia.org/wiki/Know_your_customer) 절차를 건너뛰고, 이른바 "검증 가능한 인증 정보"를 통해 사용자 인증을 진행할 수 있습니다. 이는 신원 관리 비용을 절감하는 한편 허위 문서의 사용 등을 방지합니다. - -### 3. 투표 및 온라인 커뮤니티 {#voting-and-online-communities} - -온라인 투표와 소셜 미디어는 분산형 신원 증명을 사용한 가장 놀라운 예시입니다. 온라인 투표는 특히 악의적인 사용자가 허위 신원을 만들어서 투표할 수 있기 때문에 조작에 취약합니다. 이때 개인이 온체인 증명을 제공하도록 요청한다면 온라인 투표 과정의 신뢰도를 개선할 수 있을 것입니다. - -분산형 신원 증명은 허위 계정이 불가능한 온라인 커뮤니티를 만들 수 있게 지원합니다. 예를 들어, 각 사용자가 ENS(이더리움 이름 서비스) 등의 온체인 신원 증명 시스템을 사용하여 신원을 증명하게 함으로써 허위 계정을 막을 수 있습니다. - -### 4. 반시빌(Anti-Sybil) 보호 {#sybil-protection} - -시빌(Sybil) 공격은 개인이 자신의 영향력을 늘리기 위해 여러 사람인 것처럼 시스템을 속이는 행위를 말합니다. [2차 투표](https://www.radicalxchange.org/concepts/plural-voting/)를 사용하는 [보조금 제공 애플리케이션](https://gitcoin.co/grants/)은 이러한 시빌 공격에 취약합니다. 더 많은 개인이 투표할 때 보조금의 가치가 증가하므로 사용자가 기여금을 여러 ID로 분할하도록 유도하기 때문입니다. 분산형 신원 증명은 특정 개인 정보를 공개하도록 요구하지 않는 경우가 많지만, 각 참가자가 실제 사용자임을 증명해야 하는 부담을 줌으로써 이를 방지하는 데 도움이 됩니다. - -## 분산 신원 증명을 사용하세요 {#use-decentralized-identity} - -분산 신원 증명 솔루션을 위한 기반으로 이더리움을 사용하는 야심 찬 프로젝트가 많이 있습니다. - -- **[이더리움 이름 서비스(ENS)](https://ens.domains/)** - _이더리움 지갑 주소, 콘텐츠 해시, 메타데이터 등 온체인 기반 컴퓨터용 식별 정보를 위한 탈중앙화 이름 시스템입니다._ -- **[SpruceID](https://www.spruceid.com/)** - _사용자가 제3자 서비스에 의존하지 않고 이더리움 계정과 ENS 프로필을 이용하여 디지털 신원을 직접 관리할 수 있도록 하는 분산 신원 증명 프로젝트입니다._ -- **[EAS(Ethereum Attestation Service)](https://attest.sh/)** - _모든 것에 대한 온체인 또는 오프체인 증명을 만들 수 있는 탈중앙화된 장부/프로토콜입니다._ -- **[인간 증명](https://www.proofofhumanity.id)** - _인간 증명(PoH: Proof of Humanity)은 이더리움 기반의 소셜 신원 증명 시스템입니다._ -- **[BrightID](https://www.brightid.org/)** - _소셜 그래프를 만들고 분석함으로써 신원 증명을 개혁하고자 하는 탈중앙화된 오픈소스의 소셜 신원 증명 네트워크입니다._ -- **[개인 증명 여권](https://proofofpersonhood.com/)** - _탈중앙화 디지털 신원 정보 종합 플랫폼입니다._ - -## 더 읽을 거리 {#further-reading} - -### 문서 {#articles} - -- [블록체인 사용 사례: 디지털 신원 증명 블록체인](https://consensys.net/blockchain-use-cases/digital-identity/) — *ConsenSys* -- [이더리움 ERC725란 무엇인가요? 블록체인의 자기 주권 신원 관리](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — *Sam Town* -- [블록체인은 어떻게 디지털 신원 문제를 해결하는가](https://time.com/6142810/proof-of-humanity/) — _Andrew R. Chow_ -- [분산 신원이란 무엇이며, 왜 중요한가?](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ - -### 영상 {#videos} - -- [분산 신원 증명 (보너스 실시간 세션)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s): _Andreas Antonopolous의 분산 신원 증명에 대한 설명 영상_ -- [Ceramic, IDX, React, 3ID Connect를 사용하여 이더리움과 분산 신원 증명에 로그인하기](https://www.youtube.com/watch?v=t9gWZYJxk7c): *Nader Dabit의 이더리움 지갑을 사용하여 사용자 프로필을 생성, 조회, 업데이트하기 위한 신원 관리 시스템을 구축하는 유튜브 튜토리얼* -- [BrightID - 이더리움의 분산 신원 증명](https://www.youtube.com/watch?v=D3DbMFYGRoM): *이더리움을 위한 분산 신원 증명 솔루션인 BrightID에 대해 얘기하는 Bankless 팟캐스트 에피소드* -- [오프체인 인터넷: 분산 신원 증명 & 검증 가능한 증명서](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — Evin McMullen의 2022년 EthDenver 발표 - -### 커뮤니티 {#communities} - -- [GitHub의 ERC-725 연합](https://github.com/erc725alliance): *이더리움 블록체인에서 신원 관리를 위한 ERC 725 표준의 지원자* -- [SpruceID 디스코드 서버](https://discord.com/invite/Sf9tSFzrnt): *이더리움 로그인을 개발 중인 개발자와 매니아의 커뮤니티* -- [Veramo Labs](https://discord.gg/sYBUXpACh4): *애플리케이션의 검증 가능한 데이터를 위한 프레임워크 개발자의 커뮤니티* diff --git a/src/content/translations/ko/defi/index.md b/src/content/translations/ko/defi/index.md deleted file mode 100644 index 4776c057c43..00000000000 --- a/src/content/translations/ko/defi/index.md +++ /dev/null @@ -1,352 +0,0 @@ ---- -title: 탈중앙화 금융(DeFi) -description: 이더리움의 디파이 개요 -lang: ko -template: use-cases -emoji: ":money_with_wings:" -image: ../../../../assets/use-cases/defi.png -alt: 레고 블록으로 만든 이더리움 로고. -sidebarDepth: 2 -summaryPoint1: 현재 금융 시스템에 대한 글로벌하고 개방적인 대안입니다. -summaryPoint2: 대출, 저축, 투자, 거래 등을 할 수 있는 제품입니다. -summaryPoint3: 누구나 프로그래밍할 수 있는 오픈 소스 기술을 기반으로 합니다. ---- - -디파이는 인터넷 시대에 맞게 구축된 개방적이고 글로벌한 금융 시스템이며, 수십 년 된 인프라와 프로세스에 의해 불투명하며 엄격하게 통제되어 함께 유지되는 시스템의 대안입니다. 그것은 당신에게 당신의 돈에 대한 통제력과 가시성을 제공합니다. 글로벌 시장으로의 진출과 현지 통화나 은행 옵션에 대한 대안도 제공합니다. 디파이 제품은 인터넷 연결이 되는 모든 사람에게 금융 서비스를 제공하며 대체로 사용자가 소유하고 관리합니다. 지금까지 수십억 달러 가치의 암호화폐가 디파이 애플리케이션을 통해 유입되었으며 매일 성장하고 있습니다. - -## 디파이가 무엇인가요? {#what-is-defi} - -디파이는 인터넷 연결이 되고 이더리움을 사용하는 모든 사람에게 접근 가능한 금융 제품과 서비스를 이르는 총칭입니다. 디파이를 사용하면 시장은 항상 열려 있고 결제를 막거나 모든 것에 접근할 수 있는 권한을 거부할 수 있는 중앙화된 기관이 없습니다. 이전에는 느리고 인적 오류 위험이 있었던 서비스가 이제 누구나 점검하고 면밀하게 검사할 수 있는 코드로 처리되어 자동적이고 더 안전합니다. - -대부, 대출, 롱/숏, 이자를 얻는 것 등이 가능한 유행 중인 암호화폐 경제가 있습니다. 암호화폐를 잘 아는 아르헨티나인들은 치명적인 인플레이션을 피하기 위해 디파이를 사용해 왔습니다. 기업들은 직원들의 임금을 실시간으로 스트리밍하기 시작했습니다. 어떤 사람들은 심지어 개인 신분증 없이 수백만 달러 상당의 대출을 받아 갚기도 했습니다. - - - -## 디파이 대 기존 금융 {#defi-vs-tradfi} - -디파이의 잠재력을 알 수 있는 가장 좋은 방법 중 하나는 현재 존재하는 문제를 이해하는 것입니다. - -- 일부 사람들에게는 은행 계좌를 개설하거나 금융 서비스를 이용할 수 있는 액세스 권한이 부여되지 않습니다. -- 금융 서비스에 대한 접근권이 없다면 사람들이 고용되지 못할 수 있습니다. -- 금융 서비스는 당신이 급여를 받지 못하게 할 수 있습니다. -- 금융 서비스의 숨겨진 요금은 당신의 개인 데이터입니다. -- 정부와 중앙화된 기관들은 마음대로 시장을 폐쇄할 수 있습니다. -- 거래 시간은 종종 특정 시간대의 영업 시간으로 제한됩니다. -- 송금은 내부 인적 프로세스로 인해 며칠이 걸릴 수 있습니다. -- 중개 기관은 그들의 몫이 필요하기 때문에 금융 서비스에는 할증료가 붙습니다. - -### 비교 {#defi-comparison} - -| 디파이 | 기존 금융 | -| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -| 당신이 돈을 소유합니다. | 기업이 당신의 돈을 소유합니다. | -| 당신이 돈이 어디로 송금되고 어떻게 소비되는지 통제합니다. | 미상환 위험이 있는 차용자에게 대출 등 기업이 돈을 잘못 관리하지 않으리라고 신뢰해야 합니다. | -| 자금 이체가 몇 분 내로 이루어집니다. | 결제는 수동 프로세스로 인해 며칠이 소요될 수 있습니다. | -| 트랜잭션 활동이 가명입니다. | 금융 활동은 당신의 신원과 밀접하게 연관되어 있습니다. | -| 디파이는 모두에게 열려 있습니다. | 금융 서비스를 이용하려면 신청해야 합니다. | -| 시장이 항상 열려 있습니다. | 직원들에게 휴식이 필요하기 때문에 시장이 문을 닫습니다. | -| 투명성을 기반으로 구축되었으며, 누구나 제품 데이터를 보고 시스템이 어떻게 작동하는지 검사할 수 있습니다. | 금융 기관은 알 수 없는 미스터리입니다. 대출 내역, 관리 자산에 대한 기록 등을 볼 수 없습니다. | - - - 디파이 앱 둘러보기 - - -## 그것은 비트코인으로 시작했습니다... {#bitcoin} - -여러 면에서 비트코인은 최초의 디파이 애플리케이션이었습니다. 비트코인으로 가치를 소유하고 통제하며 전 세계 어디서든 보낼 수 있습니다. 이것은 서로를 믿지 않는 많은 사람들에게 신뢰할 수 있는 중개자가 없이도 계정 장부에 합의할 수 있도록 방법을 제공하는 것으로 이뤄집니다. 비트코인은 누구에게나 열려 있으며 누구도 규칙을 변경할 권한이 없습니다. 희소성 및 개방성과 같은 비트코인의 규칙은 기술에 포함되어 있습니다. 정부가 화폐를 찍어내 개인이 저축한 돈의 가치가 낮아지고 기업이 시장을 폐쇄할 수 있는 기존 금융과는 다릅니다. - -이더리움은 이를 기반으로 합니다. 비트코인과 마찬가지로 규칙을 변경할 수 없으며 모든 사람이 액세스할 수 있습니다. 그러나 또한 [스마트 계약](/glossary#smart-contract)을 사용하여 이 디지털 화폐를 프로그래밍할 수 있게 함으로써, 가치를 저장하고 보내는 것 이상을 할 수 있습니다. - - - -## 프로그래밍 가능한 돈 {#programmable-money} - -이건 이상하게 들립니다. "왜 제가 돈을 프로그래밍하고 싶겠어요?" 그러나 이것은 이더리움 토큰의 기본 기능일 뿐입니다. 누구나 로직을 지불금으로 프로그래밍할 수 있습니다. 그래서 당신은 금융기관이 제공하는 서비스와 함께 비트코인의 통제권과 보안을 얻을 수 있습니다. 이것을 통해 비트코인으로 할 수 없는 대부와 대출, 결제 일정 수립, 인덱스 펀드에 투자하기 등과 같은 것들을 암호화폐로 할 수 있습니다. - - -
이더리움이 처음이시면 디파이 애플리케이션에 대한 제안을 살펴보세요.
- - 디파이 앱 둘러보기 - -
- -## 디파이로 무엇을 할 수 있나요? {#defi-use-cases} - -대부분의 금융 서비스에는 탈중앙화된 대안이 있습니다. 그러나 이더리움은 완전히 새로운 금융 상품을 만들 수 있는 기회도 제공합니다. 이 목록은 계속 늘어납니다. - -- [전 세계로 송금하기](#send-money) -- [전 세계로 돈을 스트리밍하기](#stream-money) -- [안정적인 통화에 액세스하기](#stablecoins) -- [담보로 자금 대출하기](#lending) -- [무담보 대출하기](#flash-loans) -- [암호화폐 저축 시작하기](#saving) -- [토큰 거래하기](#swaps) -- [포트폴리오 확장하기](#investing) -- [아이디어 자금 모으기](#crowdfunding) -- [보험 가입하기](#insurance) -- [포트폴리오 관리하기](#aggregators) - - - -### 전 세계로 빠르게 송금하세요 {#send-money} - -이더리움은 블록체인으로서 안전하고 글로벌하게 트랜잭션을 전송할 수 있도록 설계되었습니다. 비트코인과 마찬가지로 이더리움은 이메일을 보내는 것만큼 쉽게 전 세계로 돈을 송금할 수 있습니다. 수령인의 [ENS 이름](/nft/#nft-domains)(예: bob.eth) 또는 지갑의 계정 주소를 입력하기만 하면 몇 분 안에 수취인에게 직접 지급됩니다(보통은). 지불금을 보내거나 받으려면 [지갑](/wallets/)이 필요합니다. - - - 결제 디앱 보기 - - -#### 전 세계로 돈을 스트리밍하세요... {#stream-money} - -이더리움으로 돈을 스트리밍할 수도 있습니다. 이렇게 하면 누군가에게 초 단위로 월급을 지급하여 필요할 때마다 돈을 받을 수 있습니다. 또는 초 단위로 보관 사물함이나 전기 스쿠터를 빌릴 수 있습니다. - -그리고 가치가 변하는 정도 때문에 [ETH](/eth/)를 송금하거나 스트리밍하고 싶지 않다면, 이더리움에는 스테이블 코인이라는 대체 화폐가 있습니다. - - - -### 안정적인 화폐에 액세스하세요 {#stablecoins} - -암호 화폐 변동성은 많은 금융상품과 일반 지출에 문제가 됩니다. 디파이 커뮤니티는 스테이블 코인으로 이 문제를 해결했습니다. 그것의 가치는 보통 달러처럼 인기 있는 통화인 또 다른 자산에 고정되어 있습니다. - -다이 또는 USDC와 같은 코인의 가치는 몇 센트 이내입니다. 이런 점 때문에 스테이블 코인은 돈 버는 것 또는 소매업에 적합합니다. 라틴 아메리카의 많은 사람들은 정부가 발행한 화폐로 매우 불확실한 시기에 저축한 돈을 지키는 방법으로 스테이블 코인을 사용했습니다. - - - 스테이블 코인에 대해 더 보기 - - - - -### 대출 {#lending} - -탈중앙화된 제공자로부터 돈을 대출하는 것은 두 종류가 있습니다. - -- P2P, 대출자가 직접 특정 대출 기관에서 직접 대출하는 방식. -- 대출 기관에서 자산을 대출자가 대출할 수 있는 풀로 지급하는(유동성) 풀 기반. - - - 대출용 디앱 보기 - - -탈중앙화된 대출 기관을 사용하는 것은 이점이 많습니다. - -#### 개인 정보 보호를 통한 대출 {#borrowing-privacy} - -오늘날, 돈을 빌려주고 대출하는 것은 모두 관련된 개인들을 중심으로 돌아갑니다. 은행은 돈을 빌려주기 전에 당신이 대출을 상환할 수 있는지 알아야 합니다. - -탈중앙화 대출은 어느 당사자도 신원을 확인할 필요 없이 가능합니다. 대신 차주는 대출이 상환되지 않을 경우 대주에게 자동으로 지급되는 담보를 설정해야 합니다. 일부 대출 기관은 NFT를 담보로 받기도 합니다. NFT는 그림과 같은 고유 자산에 대한 증서입니다. [NFT에 대해 더 보기](/nft/) - -이를 통해 신용 확인이나 개인 정보 양도 없이 돈을 빌릴 수 있습니다. - -#### 글로벌 펀드에 대한 액세스 {#access-global-funds} - -탈중앙화된 대출 기관을 이용하면 선택하신 은행이나 기관에서 보관하는 자금 뿐만 아니라 전 세계에서 예치된 자산에 대한 액세스를 갖게 됩니다. 이것은 대출을 더 접근하기 쉽게 만들고 금리를 향상시킵니다. - -#### 조세 효율성 {#tax-efficiencies} - -대출을 통해 ETH(과세 대상 이벤트)를 판매하지 않고도 필요한 자금을 이용할 수 있습니다. 대신 스테이블 코인 대출을 위한 담보로 ETH를 사용할 수 있습니다. 이렇게 하면 필요한 현금 흐름이 생기고 ETH를 유지할 수 있습니다. 스테이블 코인은 ETH처럼 가치가 변동하지 않아 현금이 필요할 때 훨씬 좋은 토큰입니다. [스테이블 코인에 대해 더 보기](#stablecoins) - -#### 플래시 론 {#flash-loans} - -플래시 론은 보다 실험적인 형태의 탈중앙화 대출로, 담보나 개인 정보를 제공할 필요 없이 돈을 빌릴 수 있습니다. - -지금은 비전문가들이 쉽게 접근할 수 없지만, 모든 사람들에게 미래에 무엇이 가능한지 알려줍니다. - -동일한 트랜잭션 내에서 대출을 받고 갚는 것을 기준으로 작동합니다. 상환할 수 없는 경우 트랜잭션은 아무 일도 없었던 것처럼 되돌아갑니다. - -자주 사용되는 자금은 유동성 풀(대출에 사용되는 대규모 자금 풀)에 보관됩니다. 만약 자금이 주어진 순간에 사용되지 않는다면, 누군가 이 자금을 빌려서 자금으로 거래를 하고, 대출하는 동시에 자금으로 완전히 갚을 수 있는 기회가 생깁니다. - -맞춤형 트랜잭션에 많은 로직이 포함되어야 한다는 뜻입니다. 간단한 예로는 플래시 론을 사용하여 한 가격에 많은 자산을 대출하여 가격이 더 높은 다른 거래소에 판매할 수 있습니다. - -따라서 단일 트랜잭션에서 다음과 같은 일이 발생합니다. - -- 거래소 A에서 $1.00에 X 금액의 $asset을 대출합니다. -- 거래소 B에서 X $asset을 $1.10에 판매합니다. -- A를 교환하기 위해 대출금을 상환합니다. -- 당신은 거래 수수료를 제외한 수익을 갖게 됩니다. - -만약 B 거래소의 공급이 갑자기 감소하고 사용자가 원래 대출금을 감당할 수 있을 만큼 충분히 살 수 없다면, 트랜잭션은 간단히 실패할 것입니다. - -전형적인 금융 세계에서 위의 예시를 가능하게 하려면 엄청난 돈이 필요합니다. 이러한 돈벌이 전략은 기존의 부를 가진 사람들만이 접근할 수 있습니다. 플래시 론은 돈을 버는 것의 전제 조건이 돈을 소유하는 것이 아니라는 미래의 예시입니다. - -[플래시 론에 대해 더 보기](https://aave.com/flash-loans/) - - - -### 암호화폐로 저축을 시작하세요 {#saving} - -#### 대출 {#lending} - -빌려주는 것으로 암호화폐의 이자를 벌어 실시간으로 자산이 늘어가는 걸 볼 수 있습니다. 현재 이자율은 지역 은행에서 얻을 수 있는 것보다 훨씬 높습니다(운 좋게 은행에 갈 수 있다면). 예시는 다음과 같습니다. - -- Aave와 같은 제품에 [스테이블 코인](/stablecoins/)인 100다이를 빌려줍니다. -- 대출한 다이를 상징하는 토큰인 Aave 다이(aDai) 백 개를 받습니다. -- 이자율에 따라 aDai는 증가하고 지갑에서 잔고가 늘어가는 걸 보실 수 있습니다. 연이율에 따라 지갑 잔고는 며칠 또는 심지어 몇 시간 후에 100.1234와 같은 수치가 되어 있을 겁니다! -- 언제든지 aDai 잔액과 동일한 금액의 일반 다이를 인출할 수 있습니다. - - - 대출 디앱 보기 - - -#### 무손실 복권 {#no-loss-lotteries} - -풀투게더 같은 무손실 복권은 돈을 절약할 수 있는 재미있고 혁신적인 새로운 방법입니다. - -- 다이 토큰 100개로 티켓 100장을 구매합니다. -- 100장의 티켓과 동등한 100plDai를 받습니다. -- 당신의 티켓 중 하나가 승자로 선택되면 plDai 잔액은 상금 풀의 금액만큼 증가합니다. -- 이기지 못하면 당신의 100 plDai는 다음 주 추첨으로 넘어갑니다. -- 언제든지 plDai 잔액과 동일한 금액의 일반 다이를 인출할 수 있습니다. - -상금 풀은 위의 대출 예시와 같이 티켓 예금을 대출하여 발생하는 모든 이자로 생성됩니다. - - - 풀투게더 사용해보기 - - - - -### 토큰을 교환하세요 {#swaps} - -이더리움에는 수천 개의 토큰이 있습니다. 탈중앙화 거래소(DEX)를 사용하면 원할 때마다 다른 토큰을 거래할 수 있습니다. 자산에 대한 통제권을 포기하지 마세요. 이것은 마치 다른 나라를 방문할 때 환전소를 이용하는 것과 같습니다. 하지만 디파이 버전은 절대 문을 닫지 않습니다. 시장은 연중무휴로 365일 운영되며 기술 덕에 거래를 수락할 사람을 항상 구할 수 있습니다. - -예를 들어, 무손실 복권 풀투게더(위에서 설명함)를 사용하려면 다이 또는 USDC와 같은 토큰이 필요합니다. 이런 DEX를 사용하면 ETH를 토큰으로 교환할 수 있고 끝나면 반대로 토큰을 ETH로 교환할 수 있습니다. - - - 토큰 거래소 보기 - - - - -### 고급 거래 {#trading} - -더 많은 통제권을 원하는 거래자를 위한 고급 옵션이 있습니다. 지정가 주문, 무기한, 마진 거래 등이 모두 가능합니다. 분산 거래를 통해 글로벌 유동성에 접근할 수 있고 시장이 닫히지 않으며 항상 자산을 통제할 수 있습니다. - -중앙화 거래소를 이용하면 거래 전에 자산을 예치해야 하고, 그 자산을 책임질 거래소를 신뢰해야 합니다. 자산이 예치되어 있으면 중앙화 거래소는 해커에게 매력적인 대상이기 때문에 자산이 위험합니다. - - - 거래 디앱 보기 - - - - -### 포트폴리오를 확장하세요 {#investing} - -이더리움에는 선택한 전략에 따라 포트폴리오를 확장하는 펀드 관리 제품이 있습니다. 이것은 자동적이고 모두에게 공개되며, 수익의 일부를 가져가는 인간 관리자가 필요 없습니다. - -좋은 예가 [디파이 펄스 인덱스 펀드(DPI)](https://defipulse.com/blog/defi-pulse-index/)입니다. 이 펀드는 포트폴리오에 항상 [시가총액 기준 상위 디파이 토큰](https://www.coingecko.com/en/defi)이 포함되도록 자동으로 편입 종목을 재조정합니다. 세부 사항을 관리할 필요가 없으며 원할 때마다 펀드에서 인출할 수 있습니다. - - - 투자 디앱 보기 - - - - -### 아이디어 자금을 모으세요 {#crowdfunding} - -이더리움은 크라우드 펀딩을 위한 이상적인 플랫폼입니다. - -- 잠재적 후원자는 어디서든 나올 수 있습니다. 이더리움과 이더리움 토큰은 전 세계 어디든, 누구에게나 개방되어 있습니다. -- 투명하기 때문에 모금자가 얼마나 많은 돈이 모였는지 증명할 수 있습니다. 심지어 나중에 자금이 어떻게 사용되는지 추후에 추적할 수 있습니다. -- 예를 들면 모금자는 구체적인 기한과 최소 금액이 충족되지 않는 경우 자동 환불을 설정할 수 있습니다. - - - 크라우드 펀딩 디앱 보기 - - -#### 2차 펀딩 {#quadratic-funding} - -이더리움은 오픈 소스 소프트웨어이며 지금까지의 많은 작업물이 커뮤니티에서 자금을 지원받았습니다. 이는 2차 펀딩이라는 흥미롭고 새로운 모금 모델의 성장으로 이어졌습니다. 2차 펀딩은 미래에 모든 공공재 유형에 자금을 지원하는 방식을 개선할 잠재력이 있습니다. - -2차 펀딩은 가장 많은 자금을 받는 프로젝트가 가장 특이한 수요가 있는 프로젝트인지 확인합니다. 즉, 대부분의 사람들의 삶을 개선하기 위한 프로젝트입니다. 운영 방식은 다음과 같습니다. - -1. 기부된 자금의 매칭 풀이 있습니다. -2. 공개 펀딩이 시작됩니다. -3. 사람들은 돈을 기부하여 프로젝트에 대한 수요를 알릴 수 있습니다. -4. 펀딩 라운드가 끝나면 매칭 풀이 프로젝트에 분배됩니다. 가장 눈에 띄는 수요가 있는 프로젝트는 매칭 풀에서 가장 많은 금액을 얻습니다. - -이는 1달러의 기부를 100번 받은 프로젝트 A가 만 달러 기부를 한 번 받은 프로젝트 B보다 더 많은 펀딩을 받았다는 것을 의미합니다(매칭 풀의 크기에 따라 다름). - -[2차 펀딩에 대해 더 보기](https://wtfisqf.com) - - - -### 보험 {#insurance} - -탈중앙화 보험은 보험을 더 싸고, 더 빠르게 돈을 지불할 수 있고, 더 투명하게 하는 것을 목표로 합니다. 더 많은 자동화가 이뤄지면 보험이 더욱 저렴해지고 지불도 훨씬 빨라집니다. 당신의 청구를 결정하는 데 사용되는 데이터는 완전히 투명합니다. - -이더리움 제품은 다른 소프트웨어와 마찬가지로 버그와 악용에 시달릴 수 있습니다. 그래서 현재 이 분야의 많은 보험 상품들은 자금 손실로부터 사용자를 보호하는 데 초점을 맞추고 있습니다. 그러나 살면서 발생할 수 있는 모든 사안으로 보장 범위를 확장하는 프로젝트가 있습니다. 이것의 좋은 예는 [케냐의 소규모 농부들을 가뭄과 홍수로부터 보호하는 것](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc)을 목표로 하는 이더리스크의 농작물 보험입니다. 탈중앙화 보험은 종종 일반적인 보험에서 제외되는 농부들에게 더 저렴한 보험을 제공할 수 있습니다. - - - 보험 디앱 보기 - - - - -### 애그리게이터 및 포트폴리오 관리자 {#aggregators} - -많은 일이 진행됨에 따라 모든 투자, 대출 및 거래를 추적할 수 있는 방법이 필요할 것입니다. 한 곳에서 디파이 활동을 조율할 수 있는 여러 제품이 있습니다. 이것이 디파이의 개방형 아키텍처의 아름다움입니다. 팀에서 여러 제품 간의 잔액을 볼 수 있는 인터페이스를 구축할 수 있을 뿐만 아니라 기능을 사용할 수도 있습니다. 디파이에 대해 더 알아갈 수록 이것이 유용할 것입니다. - - - 포트폴리오 디앱 보기 - - - - -## 디파이는 어떻게 작동하나요? {#how-defi-works} - -디파이는 암호화폐와 스마트 계약으로 중개인이 필요 없는 서비스를 제공합니다. 오늘날의 금융 세계에서 금융 기관은 거래의 보증인 역할을 합니다. 돈이 금융 기관을 통해 흐르기 때문에 금융 기관이 엄청난 힘을 갖게 됩니다. 게다가 전 세계 수십억 명의 사람들은 은행 계좌에 접근할 수도 없습니다. - -디파이에서는 거래 시에 스마트 계약이 금융 기관을 대신합니다. 스마트 계약은 자금을 보유할 수 있고 특정 조건에 따라 송금/환불할 수 있는 일종의 이더리움 계정입니다. 스마트 계약이 실행 중에는 아무도 변경할 수 없습니다. 항상 프로그래밍된 대로 실행됩니다. - -용돈 혹은 주머닛돈을 나눠주도록 고안된 계약은 계정 A에서 계정 B로 매주 금요일에 송금하도록 프로그래밍될 수 있습니다. 그리고 계정 A에 필요한 자금이 있는 동안에만 그렇게 할 것입니다. 아무도 자금을 훔치기 위해 계약을 변경하고 계정 C를 수령인으로 추가할 수 없습니다. - -또한 계약을 누구나 검사하고 감사할 수 있습니다. 이는 불량 계약은 보통 매우 빠르게 커뮤니티의 면밀한 조사를 받게 된다는 의미입니다. - -이더리움 커뮤니티의 코드를 읽을 수 있는 기술자 멤버들을 더욱 신뢰해야 할 필요가 있다는 것입니다. 오픈 소스 기반 커뮤니티는 개발자들을 통제하는 데에 도움이 되지만, 스마트 계약이 읽기 쉬워지고 코드의 신뢰성을 증명할 다른 방법이 개발되어 그 필요성은 점점 줄어들 것입니다. - -## 이더리움과 디파이 {#ethereum-and-defi} - -이더리움이 디파이를 위한 완벽한 기반인 이유는 다음과 같습니다. - -- 아무도 이더리움이나 그것을 토대로 한 스마트 계약을 소유하지 않습니다. 이는 모두에게 디파이를 사용할 기회를 줍니다. 또한 아무도 규칙을 변경할 수 없습니다. -- 디파이 제품은 모두 동일하게 이더리움을 사용합니다. 이는 많은 제품이 원활하게 함께 작동한다는 것을 의미합니다. 한 플랫폼에서 토큰을 빌려주고 완전히 다른 애플리케이션에서 다른 시장의 이자가 붙는 토큰을 교환할 수 있습니다. 은행에서 로열티 포인트를 현금화할 수 있는 것과 같습니다. -- 토큰과 암호화폐는 공유된 장부인 이더리움에 내장되어 있습니다. 거래와 소유권을 추적하는 것은 이더리움의 특기입니다. -- 이더리움은 완전한 재정적 자유를 허용합니다. 대부분의 제품은 당신의 자금을 관리하지 않으므로 통제할 수 있습니다. - -디파이를 레이어 구조로 생각해 볼 수 있습니다. - -1. 블록체인 – 이더리움에 거래 내역과 계정 상태가 들어있습니다. -2. 자산 – [ETH](/eth/) 및 기타 토큰(화폐)입니다. -3. 프로토콜 – 예를 들어 자산의 탈중앙화 대출을 제공하는 서비스와 같은 기능을 제공하는 [스마트 계약](/glossary/#smart-contract)입니다. -4. [애플리케이션](/dapps/) – 프로토콜을 관리하고 액세스하는 데 사용하는 제품입니다. - -## 디파이를 구축하세요 {#build-defi} - -디파이는 오픈 소스 캠페인입니다. 디파이 프로토콜과 애플리케이션은 검사하고, 포크하고, 혁신할 수 있도록 누구에게나 열려 있습니다. 이러한 계층화된 스택(모두 동일한 베이스 블록체인과 자산을 공유함)으로 인해 프로토콜을 합치고 맞춰서 독특한 콤보 기회를 열 수 있습니다. - - - 디앱 구축에 대해 더 보기 - - -## 더 읽을 거리 {#futher-reading} - -### 디파이 데이터 {#defi-data} - -- [디파이 프라임](https://defiprime.com/) -- [디파이 라마](https://defillama.com/) -- [디파이 레이트](https://defirate.com/) - -### 디파이 기사 {#defi-articles} - -- [디파이 초보자 가이드](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _시드 코엘로-프라부, 2020년 1월 6일_ - -### 영상 {#videos} - -- [Finematics - 탈중앙화 금융 교육](https://finematics.com/) – _디파이에 대한 영상_ -- [디파이언트](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _디파이 기초: 가끔은 혼란스러운 이곳에서 시작하려면 알아야 할 모든 것._ -- [화이트보드 크립토](https://youtu.be/17QRFlml4pA) _디파이란 무엇인가요?_ - -### 커뮤니티 {#communities} - -- [디파이 라마 디스코드 서버](https://discord.gg/buPFYXzDDd) -- [디파이 펄스 디스코드 서버](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/ko/desci/index.md b/src/content/translations/ko/desci/index.md deleted file mode 100644 index 7e318e94182..00000000000 --- a/src/content/translations/ko/desci/index.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: 탈중앙화 과학(DeSci) -description: 이더리움의 탈중앙화 과학 개요 -lang: ko -template: use-cases -emoji: ":microscope:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: 현재 금융 시스템에 대한 글로벌하고 개방적인 대안입니다. -summaryPoint2: 과학자들이 자금을 모으고, 실험을 실행하고, 데이터를 공유하고, 통찰력을 배포할 수 있게 하는 기술. -summaryPoint3: 열린 과학 운동을 기반으로 합니다. ---- - -## 탈중앙화 과학(DeFi)이란 무엇인가요? {#what-is-desci} - -탈중앙화 과학(DeSci)은 Web3 스택을 사용하여 과학 지식을 공정하고 공평하게 자금 조달, 생성, 검토, 신용, 저장 및 보급하기 위한 공공 인프라를 구축하는 것을 목표로 하는 운동입니다. - -DeSci는 과학자들이 그들의 연구를 공개적으로 공유하고 그들의 작업에 대한 공로를 인정받도록 장려하는 동시에 누구나 연구에 쉽게 접근하고 기여할 수 있는 생태계를 만드는 것을 목표로 합니다. DeSci는 과학적 지식은 모든 사람이 접근할 수 있어야 하며 과학 연구 과정은 투명해야 한다는 생각을 바탕으로 합니다. DeSci는 더 탈중앙화 과학 연구 모델을 만들고 있으며, 중앙 당국의 검열과 통제에 더 저항하고 있습니다. DeSci는 자금, 과학 도구 및 통신 채널에 대한 접근을 탈중앙화 시킴으로써 새롭고 틀에 얽매이지 않는 아이디어가 번창할 수 있는 환경을 조성하기를 희망합니다. - -탈중앙화 과학은 더 다양한 자금을 허용합니다 ([다오](/dao/), [ 펀딩 등에 대한 이차 기부](https://papers.ssrn.com/sol3/papers.cfm?Abstract_id=2003531)), 더 접근 가능한 접근 데이터와 방법, 그리고 재현에 대한 보상 제공함으로써. - -### Juan Benet - DeSci 운동 - - - -## DeSci가 과학을 개선시키는 방법 {#desci-improves-science} - -과학의 주요 문제에 대한 불완전한 목록과 탈중앙화 과학이 이러한 문제를 해결하는 데 어떻게 도움이 될 수 있는지 - -| **탈중앙화된 과학** | **기존 과학** | -| --------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | -| 자금 분배는 이차 기부 또는 DAO와 같은 메커니즘을 사용하여 대중에 의해 결정됩니다. | 작고 폐쇄된 중앙 집권 그룹이 자금 분배를 통제합니다. | -| 여러분은 역동적인 팀으로 전 세계의 동료들과 협력합니다. | 자금 조달 기관과 가정 기관은 당신의 협력을 제한합니다. | -| 자금 조달 결정은 온라인에서 투명하게 이루어집니다. 새로운 자금 조달 메커니즘이 탐구되었습니다. | 자금 조달 결정은 긴 처리 시간과 제한된 투명성으로 이루어집니다. 자금 조달 메커니즘은 거의 존재하지 않습니다. | -| 실험실 서비스 공유는 Web3 기초 요소를 사용하여 더 쉽고 투명하게 만들어졌습니다. | 실험실 자원을 공유하는 것은 종종 느리고 불투명합니다. | -| 신뢰, 투명성 및 보편적 접근을 위해 Web3 기초 요소를 사용하는 새로운 출판 모델을 개발할 수 있습니다. | 여러분은 비효율적이고 편향적이고 착취적인 것으로 자주 인정되는 확립된 경로를 통해 출판합니다. | -| 동료 검토 작업으로 토큰과 명성을 얻을 수 있습니다. | 동료 검토 작업은 무급이며, 영리 출판사에 도움이 됩니다. | -| 여러분은 투명한 조건에 따라 생성하고 배포하는 지적 재산권(IP) 을 소유합니다. | 여러분의 홈 기관은 여러분이 생성한 IP를 소유합니다. IP에 대한 접근은 투명하지 않습니다. | -| 모든 단계를 체인에 연결함으로써 실패한 노력의 데이터를 포함한 모든 연구를 공유합니다. | 출판 편향은 연구자들이 성공적인 결과를 얻은 실험을 공유할 가능성이 더 높다는 것을 의미합니다. | - -## 이더리움과 DeSci {#ethereum-and-desci} - -탈중앙화 과학 시스템은 강력한 보안, 최소한의 통화 및 거래 비용, 그리고 애플리케이션 개발을 위한 풍부한 생태계를 요구할 것입니다. 이더리움은 탈중앙화 과학 스택을 구축하는 데 필요한 모든 것을 제공합니다. - -## DeSci 사용 사례 {#use-cases} - -DeSci는 Web2 학계를 디지털 세계로 전환하기 위한 과학적 도구 세트를 구축하고 있습니다. 아래는 Web3가 과학계에 제공할 수 있는 사용 사례 샘플입니다. - -### 출판 사업 {#publishing} - -과학 출판은 논문을 생성하기 위해 과학자, 평론가 및 편집자의 무료 노동에 의존하지만 엄청난 출판 비용을 부과하는 출판사에 의해 관리되기 때문에 문제가 있는 것으로 유명합니다. 보통 세금을 통해 작품과 출판 비용을 간접적으로 지불한 대중은 종종 출판사에 다시 지불하지 않고는 같은 작품에 접근할 수 없습니다. 개별 과학 논문 출판에 드는 총 비용은 종종 5자리 숫자($USD)이며, 이는 과학 지식의 전체 개념을 [ 공익](https://www.econlib.org/library/Enc/PublicGoods.html)과 동시에 소수의 출판사에게 막대한 이익을 창출합니다. - -무료 및 오픈 액세스 플랫폼은 [ArXiv와 같은](https://arxiv.org/) 사전 인쇄 서버의 형태로 존재합니다. 그러나 이러한 플랫폼은 품질 관리, [반시빌(anti-sybil) 메커니즘 mechanisms](https://csrc.nist.gov/glossary/term/sybil_attack)이 부족하며 일반적으로 기사 수준의 글을 추적하지 않습니다. 즉, 일반적으로 전통적인 출판사에 제출하기 전에 작업을 홍보하는 데만 사용됩니다. 탈중앙화 허브 는 또한 출판된 논문에 무료로 접근할 수 있도록 하지만, 법적으로는 접근하지 않으며, 출판사가 이미 지불을 받고 엄격한 저작권법으로 작품을 포장한 후에만 가능합니다. 이것은 내장된 합법 메커니즘과 보상 모델로 접근 가능한 과학 논문과 데이터에 중요한 격차를 남깁니다. 그러한 시스템을 구축하기 위한 도구는 Web3에 존재합니다. - -### 재생 가능성과 복제 가능성 {#reproducibility-and-replicability} - -재생 가능성과 복제 가능성은 양질의 과학적 발견의 기초입니다. - -- 재현 가능한 결과는 동일한 방법론을 사용하여 동일한 팀에서 연속으로 여러 번 달성할 수 있습니다. -- 동일한 실험 설정을 사용하여 다른 그룹에서 복제 가능한 결과를 얻을 수 있습니다. - -새로운 Web3 네이티브 도구는 재생 가능성과 복제 가능성이 검색의 기반이 되도록 보장할 수 있습니다. 우리는 학계의 기술 구조에 양질의 과학을 엮을 수 있습니다. Web3는 원시 데이터, 계산 엔진 및 응용 프로그램 결과와 같은 각 분석 구성 요소에 대한 증명을 만들 수 있는 기능을 제공합니다. 합의 시스템의 장점은 이러한 구성 요소를 유지하기 위해 신뢰할 수 있는 네트워크가 생성될 때, 각 네트워크 참가자는 계산을 재현하고 각 결과를 검증할 책임이 있다는 것입니다. - -### 펀딩 {#funding} - -과학 자금 조달을 위한 현재 표준 모델은 개인이나 과학자 그룹이 자금 조달 기관에 서면 신청서를 작성하는 것입니다. 신뢰할 수 있는 개인으로 구성된 소규모 패널이 응용 프로그램을 평가한 다음 지원자 중 일부에게 기금을 수여하기 전에 지원자를 인터뷰합니다. 보조금 신청과 수령 사이에 때때로 수년의 대기 시간으로 이어지는 병목 현상을 제외하고 이 모델은 검토 패널의 편견, 이기심 및 정치에 매우 취약한 것으로 알려져 있습니다. - -연구에 따르면 보조금 검토 패널은 다른 패널에 주어진 동일한 제안이 매우 다른 결과를 가지고 있기 때문에 고품질 제안을 선택하는 데 열악한 역할을 합니다. 자금이 더 부족해짐에 따라, 그것은 더 지적으로 보수적인 프로젝트를 가진 더 많은 고위 연구자들의 더 작은 풀에 집중되었습니다. 그 효과는 비뚤어진 보상을 확고히 하고 혁신을 억누르는 경쟁적인 자금 조달 환경을 조성했습니다. - -Web3는 DAO와 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)는 과학 자금에 혁명을 일으킬 수 있는 Web3 도구 중 일부입니다. - -### IP 소유권 및 개발 {#ip-ownership} - -지적 재산권(IP)은 대학에 갇히거나 생명공학에 사용되지 않는 것부터 평가하기 어려운 악명 높은 것까지 전통적인 과학에서 큰 문제입니다. 그러나 디지털 자산(과학 데이터 또는 기사와 같은) 의 소유권은 Web3가 [대체 불가능한 토큰(NFT)](/nft/)을 사용하여 예외적으로 잘 하는 것입니다. - -NFT가 향후 거래에 대한 수익을 원래 작성자에게 다시 전달할 수 있는 것과 같은 방식으로 연구자, 관리 기관(예: DAO) 또는 데이터를 수집한 주체에게 보상하기 위해 투명한 가치 귀속 체인을 설정할 수 있습니다. - -[IP-NFT](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6)는 또한 수행 중인 연구 실험의 분산된 데이터 저장소의 열쇠 역할을 할 수 있으며 NFT 및 [DeFi](/defi/) 금융화(금융에서 대출 풀 및 가치 평가까지)에 연결할 수 있습니다. 또한 [VitaDAO](https://www.vitadao.com/)와 같은 DAO와 같은 본질적으로 온체인 단체가 온 체인에서 직접 연구를 수행할 수 있습니다. 양도할 수 없는 ["soulbound" 토큰](https://vitalik.ca/general/2022/01/26/soulbound.html)의 출현은 또한 개인이 이더리움 주소와 연결된 경험과 자격 증명을 증명할 수 있도록 함으로써 DeFi 에서 중요한 역할을 할 수 있습니다. - -### 데이터 저장, 액세스 및 아키텍처 {#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 데이터 해결책은 위의 시나리오를 지원하고 연구자가 액세스 권한이나 수수료 없이 공공재 만들 수 있는 진정한 개방형 과학의 기반을 제공합니다. IPFS, Arweave 및 Filecoin과 같은 Web3 공용 데이터 해결책은 탈중앙화에 최적화되어 있습니다. 예를 들어, 기후변화는 기상 관측소와 예측 기후 모델을 포함한 기후 및 날씨 데이터에 대한 보편적인 접근을 제공합니다. - -## 참여하기 {#get-involved} - -프로젝트를 탐색하고 DeSci 커뮤니티에 가입하세요. - -- [DeSci.Global: 글로벌 이벤트 및 모임 일정](https://desci.global) -- [과학을 위한 블록체인 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/) -- [DeFi Foundation: DeFi 게시 도구 빌더](https://descifoundation.org/) -- [DeSci.World: 사용자가 보고, 탈중앙화 과학에 참여할 수 있는 원스톱 상점](https://desci.world) -- [플레밍 프로토콜: 협업 생물 의학 발견을 촉진하는 오픈 소스 데이터 경제](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 또는 desci 프로젝트에 자금을 지원받으세요](https://www.molecule.to/) -- [ResearchHub: 과학적 결과를 게시하고 동료들과 대화에 참여하세요](https://www.researchhub.com/) -- [VitaDAO: 장수 연구를 위한 후원 연구 계약을 통해 자금을 받으세요](https://www.vitadao.com/) -- [플레밍 프로토콜: 협업 생물 의학 발견을 촉진하는 오픈 소스 데이터 경제](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/) -- [DeSci Labs](https://www.desci.com/) - -우리는 새로운 프로젝트에 대한 제안을 환영합니다 - 시작하려면 [목록 정책](/contributing/adding-desci-projects/)을 보세요! - -## 더 읽을거리 {#further-reading} - -- [Jocelynn Pearl과 Ultrarare의 DeSci Wiki](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) -- [A16z 미래를 위한 Jocelynn Pearl의 분산형 생명공학 가이드](https://future.a16z.com/a-guide-to-decentralized-biotech/) -- [DeSci의 사례](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) -- [DeSci 가이드](https://future.com/what-is-decentralized-science-aka-desci/) -- [탈중앙화 과학 참고 자료](https://www.vincentweisser.com/decentralized-science) -- [분자의 바이오제약회사 IP-NFT - 기술 설명](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) -- [존 스타의 신뢰할 수 없는 과학 시스템 구축](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) -- [생명공학 DAO의 출현](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) -- [분산 과학을 위한 적극적인 추론 존재론: 위치한 감각 만들기에서 Epistemic Commons까지](https://zenodo.org/record/6320575) -- [DeSci: 사무엘 아키노쇼의 연구의 미래](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) -- [나디아의 과학 자금 조달 (끝맺음말: DeSci 및 새로운 암호화 기초 요소)](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) -- [후안 베넷 - DeSci, 독립 연구소 및 대규모 데이터 과학](https://www.youtube.com/watch?v=zkXM9H90g_E) -- [Sebastian Brunemeier - DeSci가 생물 의학 연구 및 벤처 캐피탈을 변화시킬 수 있는 방법](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/ko/nft/index.md b/src/content/translations/ko/nft/index.md deleted file mode 100644 index 4c5d1fb1f9b..00000000000 --- a/src/content/translations/ko/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: 대체 불가 토큰(NFT) -description: 이더리움의 NFT 개요 -lang: ko -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: 홀로그램을 통해 표시되고 있는 ETH 로고. -summaryPoint1: 이더리움 기반 자산으로 고유한 모든 것을 나타내는 방법입니다. -summaryPoint2: NFT는 콘텐츠 창작자에게 그 어느 때보다도 더 많은 힘을 실어주고 있습니다. -summaryPoint3: 이더리움 블록체인의 스마트 계약을 기반으로 구동됩니다. ---- - -## NFT란 무엇인가요? {#what-are-nfts} - -NFT는 개별적으로 고유한 토큰입니다. 각 NFT에는 서로 다른 특성이 있으며(대체 불가능성) 희소성을 입증할 수 있습니다. 한 집합의 모든 토큰이 동일하며 속성이 같은('대체 가능성') ERC-20 같은 토큰과 다릅니다. 종이 지폐는 외양과 가치가 모두 동일하기 때문에 지갑에서 지폐를 꺼낼 때 어떤 달러를 꺼낼지 고민하지 않습니다. 그러나 한 NFT는 다른 NFT와 구별되는 개별 특성을 가지고 있기 때문에('대체 불가능성') 어떤 NFT를 소유하고 있는지가 *중요*합니다. - -NFT는 저마다 고유성을 가지기 때문에 미술품, 수집품, 심지어 부동산 같은 사물의 토큰화가 가능합니다. 고유한 특정 NFT가 고유한 특정 실세계 또는 디지털 아이템을 나타내는 것이죠. 자산의 소유권은 이더리움 블록체인으로 보호되며, 소유권에 대한 기록을 수정하거나 새로운 NFT를 기존의 NFT에 복사하고 붙여 넣을 수 없습니다. - - - -## 자산 인터넷 {#internet-of-assets} - -NFT와 이더리움은 오늘날 인터넷이 직면한 일부 문제를 해결합니다. 모든 것이 디지털화됨에 따라 희소성, 고유성, 소유권 증명과 같은 물리적 물품의 특성을 복제할 필요가 있습니다. 하나의 중앙 조직이 통제하지 않는 방식으로 말이죠. 예를 들어 NFT를 사용하면 한 기업의 특정 음악 앱에 한정되지 않은 mp3 음악 파일을 소유하거나 사용자가 판매 또는 스왑할 수 있지만 플랫폼 제공자가 임의로 빼앗을 수 없는 SNS 핸들을 소유할 수 있습니다. - -NFT의 인터넷은 오늘날 대부분의 사람들이 사용하는 인터넷과 비교해 보면 다음과 같습니다. - -### 비교 {#nft-comparison} - -| NFT 인터넷 | 오늘날의 인터넷 | -| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | -| 사용자가 자기 자산을 소유합니다! 사용자만 자산을 팔거나 스왑할 수 있습니다. | 일부 조직으로부터 자산을 대여합니다. | -| NFT는 디지털상으로 고유하며, 두 개의 동일한 NFT는 존재할 수 없습니다. | 원본과 복사본을 구별할 수 없는 경우가 많습니다. | -| NFT 소유권은 블록체인에 저장되며 누구나 이를 검증할 수 있습니다. | 디지털 물품의 소유권 기록은 기관이 관리하는 서버에 저장되므로, 기관의 말을 믿어야 합니다. | -| NFT는 이더리움에 기반한 스마트 계약입니다. 즉, 이더리움의 다른 스마트 계약과 앱에서 간편하게 사용할 수 있습니다! | 디지털 물품을 보유한 회사는 일반적으로 "벽으로 둘러싸인 정원"과 같은 자체 인프라가 필요합니다. | -| 콘텐츠 창작자는 어디에서든 작품을 판매하고 글로벌 시장에 접근할 수 있습니다. | 창작자는 자신이 사용하는 플랫폼의 인프라와 배포에 의존합니다. 여기에는 종종 이용 약관 및 지리적 제약이 따릅니다. | -| NFT 창작자는 자신의 작품에 대한 소유권을 보유할 수 있으며 로열티를 NFT 계약에 직접 프로그래밍할 수 있습니다. | 음악 스트리밍 서비스와 같은 플랫폼이 매출 수익의 대부분을 유지합니다. | - -## NFT는 어떻게 작동하나요? {#how-nfts-work} - -이더리움에서 발행된 다른 토큰과 마찬가지로 NFT도 스마트 계약에 따라 발행됩니다. 스마트 계약은 계약 기능을 정의하는 NFT 표준(예: ERC-721, ERC-1155) 중 하나를 준수합니다. 계약은 NFT를 생성('민팅')하고 특정 소유자에게 이를 할당합니다. 소유권은 특정 NFT를 특정 주소에 매핑하여 계약에 정의됩니다. NFT에는 특정 토큰을 고유하게 만드는 ID와 일반적으로 이와 관련된 메타데이터가 부여됩니다. - -사용자가 NFT를 생성(민팅)하면 특정 NFT를 해당 주소에 할당하는 스마트 계약 내 기능이 실제로 실행됩니다. 이 정보는 블록체인의 일부인 계약의 스토리지에 저장됩니다. 계약 생성자는 총 공급량을 제한하거나 토큰을 이체할 때마다 창작자에게 지급되는 로열티를 정의하는 등 계약에 추가 로직을 작성할 수 있습니다. - -## NFT는 어디에 사용되나요? {#nft-use-cases} - -NFT는 다음과 같이 다양한 항목에 사용됩니다. - -- 행사 참여 증명 -- 강의 완강 인증 -- 소유할 수 있는 게임 아이템 -- 디지털 예술품 -- 실제 세계의 자산을 토큰화 -- 온라인 신원 확인 -- 콘텐츠 액세스 -- 티켓팅 -- 탈중앙 인터넷 도메인 이름 -- 디파이 담보 - -NFT를 사용하여 통제권과 수익을 중개인에게 부여하지 않고 작품을 공유하고자 하는 예술가가 있다고 가정해 보겠습니다. 새로운 계약을 생성하고 NFT의 수, 속성, 특정 작품에 대한 링크를 지정할 수 있습니다. 예술가는 지급받을 로열티를 스마트 계약에 프로그래밍할 수 있습니다(예: NFT 이체가 이루어질 때마다 판매가의 5%를 계약 소유자에게 지급). 또한 계약을 배포한 지갑을 소유하고 있기 때문에 언제든지 본인이 해당 NFT를 만들었음을 증명할 수 있습니다. 구매자는 지갑 주소가 예술가의 스마트 계약에 있는 토큰과 연계되어 있기 때문에 컬렉션 내 진품 NFT의 소유를 간편하게 증명할 수 있습니다. 구매자는 이더리움 생태계 전반에서 이를 사용하고 진품을 확신할 수 있습니다. - -또는 스포츠 대회의 티켓을 예로 들어 봅시다. 이벤트 주최자가 판매할 티켓의 수를 선택할 수 있는 것처럼 NFT의 제작자는 복제품의 수를 결정할 수 있습니다. 가끔 이는 5000장의 일반 입장권처럼 동일한 복제품이기도 합니다. 간혹 지정 좌석 티켓처럼 매우 비슷하지만 각각 조금씩 다르게 발행되기도 합니다. 이는 매표원에게 따로 돈을 내지 않고 P2P로 사고 팔 수 있으며 구매자는 항상 계약 주소를 확인하여 티켓의 진위성을 확신합니다. - -ethereum.org에서 NFT는 공식 Github 리포지토리에 기여했거나 모임에 참석했음을 증명하는 데 사용되며 이더리움에는 자체 NFT 도메인 이름이 있습니다. ethereum.org에 기여하셨다면 POAP NFT를 획득할 수 있습니다. 일부 암호화폐 밋업에서는 POAP를 입장권으로 사용하였습니다. [기여에 대해 자세히 알아보기](/contributing/#poap). - -![ethereum.org POAP](./poap.png) - -이 웹사이트에는 NFT로 작동하는 다른 도메인 네임인 **ethereum.eth**도 있습니다. 저희 `.org` 주소는 도메인 이름 시스템(DNS) 제공자가 중앙에서 관리하지만, ethereum`.eth`는 이더리움 이름 서비스(ENS)를 통해 이더리움에 등록됩니다. 이는 저희가 소유하고 관리합니다. [ENS 기록 확인하기](https://app.ens.domains/name/ethereum.eth) - -[ENS에 대해 자세히 알아보기](https://app.ens.domains) - - - -### NFT 보안 {#nft-security} - -이더리움의 보안은 지분 증명 시스템에 기반합니다. 이 시스템은 악의적인 행동의 경제적 이익을 제거하여 이더리움이 변조로부터 안전하도록 설계되었습니다. 덕분에 NFT가 존재할 수 있습니다. 사용자의 NFT 트랜잭션을 포함하는 블록이 최종 승인되면 공격자는 수백만 ETH를 사용해야 바꿀 수 있습니다. 이더리움 소프트웨어를 실행하는 누구든지 NFT에 대한 부정 변조를 즉시 감지할 수 있으며, 악의적인 사용자는 경제적인 불이익을 받고 방출될 수 있습니다. - -NFT와 관련된 보안 문제는 대부분 피싱 사기, 스마트 계약 취약점 또는 사용자의 실수(예: 실수로 개인 키 유출)와 관련 있기 때문에 NFT 소유자는 지갑의 보안을 강력하게 유지하는 것이 중요합니다. - - - 보안에 대한 추가 정보 - - -## 부록 {#further-reading} - -- [NFT 입문자 가이드](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _린다 시에, 2020년 1월_ -- [EtherscanNFT 트래커](https://etherscan.io/nft-top-contracts) -- [ERC-721 토큰 표준](/developers/docs/standards/tokens/erc-721/) -- [ERC-1155 토큰 표준](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/ko/refi/index.md b/src/content/translations/ko/refi/index.md deleted file mode 100644 index eae7ae50e6b..00000000000 --- a/src/content/translations/ko/refi/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: 재생금융(ReFi) -description: 리파이의 개요와 현재 사용 사례. -lang: ko -template: use-cases -emoji: ":recycle:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: 재생 원칙 위에 기반한 대안 경제 시스템 -summaryPoint2: 이더리움을 활용하여 기후 변화와 같은 범세계적인 공동 위기를 해결하기 위한 시도 -summaryPoint3: 검증된 탄소 배출권과 같은 생태계 효익 자산을 대폭 확장하는 도구 ---- - -## 리파이란 무엇인가요? {#what-is-refi} - -**리파이(재생금융, ReFi)**는 자원을 추출하거나 착취하는 대신 재생시키는 경제를 창출하는 것을 목표로 하는 블록체인 기반 도구 및 아이디어의 집합체입니다. 추출 시스템은 종국에 가용 자원을 고갈시키고 붕괴합니다. 재생 메커니즘이 없으면 시스템은 회복력이 떨어집니다. 리파이는 금전적 가치를 창출하기 위해 지구와 지역사회로부터 지속 불가능한 자원 추출을 계속해서는 안 된다는 가정하에 운영됩니다. - -대신 리파이는 재생 주기를 형성하여 환경, 지역사회 또는 사회적 문제를 해결하고자 합니다. 이러한 시스템은 참여자들에게 가치를 가져다주는 동시에 생태계와 지역사회를 이롭게 합니다. - -리파이의 기초 중 하나는 [Capital Institute](https://capitalinstitute.org)의 존 플러튼이 개척한 재생경제학의 개념입니다. 플러튼은 시스템 건전성의 기초이자 상호연결된 8가지 원칙을 제시했습니다. - -![여덟 가지 상호연결 원칙](../../assets/use-cases/refi-regenerative-economy-diagram.png) - -리파이는 [스마트 계약](/developers/docs/smart-contracts/)과 [탈중앙 금융(디파이, DeFi)](/defi/) 애플리케이션으로 이러한 원칙을 실현하여 저하된 생태계의 복원과 같은 재생 행동에 인센티브를 지급하고 기후 변화 및 생물다양성 유실과 같은 글로벌 문제에 대해 대규모 협업을 촉진합니다. - -또한 리파이는 과학적 지식의 자금 조달, 창출, 심사, 공적 부여, 저장, 확산을 위해 이더리움을 플랫폼으로 사용하는 [탈중앙 과학(디사이, DeSci)](/desci/) 운동과 궤를 같이합니다. 디사이 도구는 나무 심기, 바다에 버려진 플라스틱 제거하기 또는 훼손된 생태계 복원하기 같은 재생 활동을 구현하고 모니터링하기 위한 검증 가능한 표준과 관행을 개발하는 데 유용할 수 있습니다. - -## 탄소 크레딧의 토큰화 {#tokenization-of-carbon-credits} - -**[VCM(자발적 탄소 시장)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)**은 진행 중인 배출을 감축하거나 이미 배출된 온실가스를 대기에서 제거하는 등 탄소 배출과 관련해 검증된 긍정적 영향을 미치는 프로젝트에 펀딩하는 메커니즘입니다. 이러한 프로젝트는 검증 후 "탄소 크레딧"이라고 불리는 자산을 받을 수 있습니다. 크레딧은 기후 활동을 지원하려는 개인과 조직에 판매할 수 있습니다. - -VCM 외에도 국가나 지역 같은 특정 관할권 내의 법률이나 규제를 통해 탄소 가격을 책정하여 배포할 배출권의 공급을 통제하기 위한 정부 주도 의무 탄소 시장('규제 준수 시장')도 여러 개가 있습니다. 규제 준수 시장은 관할권 내 오염 유발자가 배출을 감축하도록 인센티브를 제공하지만, 이미 배출된 온실가스를 제거하지는 못합니다. - -최근 수십 년간 많이 발전했지만 VCM은 여전히 다음과 같은 문제를 겪고 있습니다. - -1. 유동성의 지나친 조각화 -2. 불투명한 거래 메커니즘 -3. 높은 수수료 -4. 매우 느린 거래 속도 -5. 부족한 확장성 - -VCM을 새로운 블록체인 기반 **DCM(디지털 탄소시장)**으로 전환하는 것은 탄소 크레딧의 검증, 거래, 사용을 위한 기존 기술을 업그레이드할 수 있는 기회일 수 있습니다. 블록체인을 이용하면 데이터를 공개적으로 검증할 수 있으며 다양한 사용자에 대한 액세스와 풍부한 유동성을 활용할 수 있습니다. - -리파이 프로젝트는 블록체인 기술을 활용하여 전통적인 시장의 수많은 문제를 완화합니다. - -- 누구나 자유롭게 거래할 수 있는 **소량의 유동성 풀로 유동성이 집중됩니다**. 개인 사용자는 물론 대형 조직도 판매자/구매자를 직접 찾는 수고나 참가비, 사전 등록 없이 이러한 풀을 이용할 수 있습니다. -- **모든 거래는 공개 블록체인에 기록됩니다**. 거래 활동에 따른 탄소 크레딧의 이전은 DCM에 등록되는 즉시 영구히 추적 가능합니다. -- **거래 속도는 거의 실시간으로 즉각적입니다**. 레거시 마켓을 통해 대량의 탄소 크레딧을 확보하려면 며칠에서 몇 주까지 소요될 수 있으나 DCM에서는 몇 초만에 가능합니다. -- **중개인 없이 거래 활동이 이루어져** 높은 수수료 부담이 없습니다. 한 분석 회사의 데이터에 따르면 디지털 탄소 크레딧은 [기존 크레딧과 비교했을 때 62% 더 비용 효율적](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne)입니다. -- **DCM은 확장 가능**하며 개인과 다국적 기업의 수요를 모두 충족할 수 있습니다. - -### DCM의 핵심 구성요소 {#key-components-dcm} - -현재 DCM은 네 가지 주요 요소로 구성됩니다. - -1. [베라(Verra)](https://verra.org/project/vcs-program/registry-system/) 및 [골드 스탠다드(Gold Standard)](https://www.goldstandard.org/) 같은 인증기관은 탄소 크레딧을 생성하는 프로젝트를 신뢰할 수 있는지 확인합니다. 또한 인증기관은 디지털 탄소 크레딧을 생성, 양도, 사용(소각)할 수 있는 데이터베이스도 운영합니다. - -이 분야에서는 기존 사업자들과 경쟁하기 위해 블록체인을 기반으로 설립된 프로젝트들이 혁신을 일으키는 새로운 물결이 일어나고 있습니다. - -2. 탄소 브릿지, 일명 토크나이저는 전통적인 인증기관의 탄소 크레딧을 나타내거나 DCM으로 전송하는 기술을 제공합니다. 대표적인 예로 [Toucan Protocol](https://toucan.earth/), [C3](https://c3.app/) 및 [Moss.Earth](https://moss.earth/)가 있습니다. -3. 통합 서비스는 최종 사용자에게 탄소 회피 및/또는 제거 크레딧을 제공하여 이들이 크레딧의 환경적 효용을 주장하고 기후 대응에 대한 자신의 지원을 전 세계에 알릴 수 있습니다. - -[Klima Infinity](https://www.klimadao.finance/infinity) 및 [Senken](https://senken.io/) 같은 일부 서비스는 제3자가 개발하고 베라(Verra) 같은 유명 탄소감축표준 기관이 발행한 다양한 프로젝트를 제공하며, [Nori](https://nori.com/) 등의 기타 서비스는 자체 탄소 크레딧 표준에 따라 개발된 특정 프로젝트만 제공합니다. 후자는 탄소 크레딧을 자체 발행하고 이를 위해 자체 전용 마켓플레이스를 운영합니다. - -4. 탄소 시장 전체 공급망의 영향과 효율성을 확장하는 기반 레일과 인프라를 들 수 있습니다. [KlimaDAO](http://klimadao.finance/)는 공공재로서 유동성을 공급하고(이에 따라 누구나 투명한 가격에 탄소 크레딧을 매매할 수 있음), 인센티브로 탄소 시장의 거래와 소각을 늘리며 다양한 토큰화 탄소 크레딧을 획득하고 소각할 수 있을 뿐만 아니라 관련 데이터에 액세스할 수 있는 사용자 친화적인 상호 운용 툴을 제공합니다. - -## 탄소 시장 너머의 리파이 {#refi-beyond} - -현재 일반적으로 탄소 시장이 주목받으며 특히 이 분야에서 VCM이 DCM으로 전환하고 있지만 "리파이"는 엄밀히 말해 탄소에만 국한되지 않습니다. 탄소 크레딧을 넘어선 다른 환경 자산이 개발 및 토큰화될 수 있습니다. 즉, 다른 부정적인 외부효과도 미래 경제 시스템의 기본 레이어 내에 가격 영향력을 가질 수 있습니다. 또한 이러한 경제 모델의 재생적인 측면은 [깃코인](https://gitcoin.co/)과 같은 제곱 펀딩(quadratic funding) 플랫폼을 통한 공공재 펀딩 등 타 영역에 적용될 수 있습니다. 문턱 없는 참여와 공평한 자원 분배에 기반한 조직은 누구든지 교육, 환경 및 지역사회 기반 프로젝트뿐만 아니라 오픈소스 소프트웨어 프로젝트에 투자할 수 있게 지원합니다. - -추출적 관행에서 재생적 흐름으로 자본의 방향을 바꿈으로써 사회, 환경 또는 공공 편익을 제공하며 전통적인 금융에서는 펀딩에 실패했을 수 있는 프로젝트와 기업이 훨씬 빠르고 수월하게 활동을 시작하고 사회를 위해 긍정적인 외부효과를 창출할 수 있습니다. 이러한 펀딩 모델로 전환하면 모든 계층의 사람들이 단순히 수동적인 관찰자에 머무는 대신 활발한 참여자가 되는 훨씬 포용적인 경제 시스템이 구현될 수 있습니다. 리파이는 새로운 경제 패러다임의 기본 계층으로서 인간과 지구상의 모든 생명체가 직면한 실존적 도전에 대한 대응을 조정하는 메커니즘이라는 이더리움의 비전을 실현하여 향후 수 세기 동안 더 포괄적이고 지속 가능한 미래를 가능하게 합니다. - -## 리파이 더 읽을거리 - -- [탄소 화폐의 개요와 경제적 지위](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) -- [The Ministry for the Future: 기후 변화에 대응하는 탄소 기반 화폐의 역할을 묘사한 소설](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) -- [자발적 탄소 시장의 확장을 위한 테스크포스 상세 보고서](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) -- [리파이에 대한 Kevin Owocki 및 Evan Miyazono의 코인마켓캡 용어집 항목](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/ko/smart-contracts/index.md b/src/content/translations/ko/smart-contracts/index.md deleted file mode 100644 index 510ea5a8c35..00000000000 --- a/src/content/translations/ko/smart-contracts/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: 스마트 계약 -description: 스마트 계약에 대한 비기술적 소개 -lang: ko ---- - -# 스마트 계약에 대한 소개 {#introduction-to-smart-contracts} - -스마트 계약은 이더리움 애플리케이션 레이어의 기본 구성요소입니다. 블록체인에 저장된 컴퓨터 프로그램인 스마트 계약은 "만약에 이러하면 그러하다"의 논리를 따르며 코드가 정의한 규칙을 준수하는 실행이 보장됩니다. 스마트 계약의 코드는 일단 생성되면 변경될 수 없습니다. - -닉 재보(Nick Szabo)는 "스마트 계약"이라는 용어를 만들었습니다. 1994년에 그는 [해당 개념에 대한 개요](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html)를 작성했으며 1996년에는 [스마트 계약이 무엇을 할 수 있는지 탐구](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html)했습니다. - -재보는 자동 암호화 보안 프로세스로 신뢰할 수 있는 중개인 없이 트랜잭션과 비즈니스 기능을 구현하는 디지털 마켓플레이스를 구상했습니다. 이더리움의 스마트 계약은 이러한 비전을 실행에 옮겼습니다. - -### 전통적인 계약의 신뢰 {#trust-and-contracts} - -전통적인 계약의 가장 큰 문제 중 하나는 신뢰할 수 있는 개인이 계약의 결과를 따라야 한다는 것입니다. - -다음과 같은 예제를 들어보겠습니다. - -앨리스와 밥이 자전거 경주를 하고 있습니다. 앨리스가 밥에게 그녀가 경주에서 이기는 데 10달러를 걸었다고 가정해 봅시다. 밥은 자신이 이길 것이라고 확신하고 내기에 동의합니다. 결국 앨리스는 밥보다 훨씬 앞서 경주를 마치고 확실한 승자가 됩니다. 그러나 밥은 앨리스가 속임수를 썼다고 주장하며 내기에 대한 지급을 거부합니다. - -이 간단한 예제는 스마트하지 않은 계약의 문제를 보여줍니다. 계약 조건이 충족되더라도(예: 귀하가 경주의 승자가 됨) 여전히 다른 상대방이 해당 계약을 이행할 것으로 신뢰해야 합니다(예: 내기에 대한 지급). - -### 디지털 자판기 {#vending-machine} - -스마트 계약에 대한 간단한 비유는 스마트 계약과 다소 유사하게 작동하는 자동 판매기가 될 수 있겠습니다. 즉, 특정 입력은 미리 결정된 출력을 보장합니다. - -- 직접 제품을 선택합니다. -- 자판기가 가격을 표시합니다 -- 구매자가 가격을 지불합니다 -- 구매자가 올바른 금액을 넣었는지 자판기가 확인합니다 -- 자판기가 물건을 지급합니다 - -자판기는 모든 요구 사항이 충족된 후에만 원하는 제품을 제공합니다. 상품을 선택하지 않거나 충분한 금액을 투입하지 않으면 자판기는 상품을 제공하지 않습니다. - -### 자동 실행 {#automation} - -스마트 계약의 대표적인 장점은 특정 조건이 달성되었을 때 명백한 코드를 결정론적으로 실행한다는 것입니다. 사람이 결과를 해석 또는 협상할 때까지 기다릴 필요가 없습니다. 덕분에 신뢰할 수 있는 중개인이 필요하지 않습니다. - -예를 들어, 자녀를 위해 조건부 날인 증서로 자금을 보관하는 스마트 계약서를 작성하여 특정 날짜 이후에 자금을 인출하게 할 수 있습니다. 지정된 날짜 이전에 출금하려는 경우, 스마트 계약이 실행되지 않습니다. 또는 딜러에게 차값을 지불하면 자동차 소유권의 디지털 버전이 자동으로 구매자에게 지급되는 계약서를 작성할 수도 있습니다. - -### 예측 가능한 결과 {#predictability} - -전통적인 계약은 해석과 이행에 있어 인간에 의존하기 때문에 모호합니다. 예를 들어 두 명의 판사가 계약서를 서로 다르게 해석하면 결정에 일관성이 없고 불평등한 결과를 초래할 수 있습니다. 스마트 계약은 이러한 가능성을 제거합니다. 대신 스마트 계약은 계약 코드 내에 작성된 조건에 따라 정확하게 실행됩니다. 이 정확도는 동일한 상황에서 스마트 계약이 동일한 결과를 생성한다는 것을 의미합니다. - -### 공공 기록 {#public-record} - -스마트 계약은 감사 및 추적에 용이합니다. 이더리움 스마트 계약은 공공 블록체인에 있으므로 누구든지 자산 전송 및 기타 관련 정보를 즉시 추적할 수 있습니다. 예를 들어, 누가 내 주소로 돈을 보냈는지 확인할 수 있습니다. - -### 개인 정보 보호 {#privacy-protection} - -또한 스마트 계약은 개인 정보를 보호합니다. 이더리움은 가명의 네트워크(귀하의 거래는 귀하의 신분이 아닌 고유한 암호화 주소에 공개적으로 연결됨)이기 때문에 감시자로부터 개인 정보를 보호할 수 있습니다. - -### 확인할 수 있는 용어 {#visible-terms} - -마지막으로, 전통적인 계약과 마찬가지로 스마트 계약에 서명하기 전에(또는 상호 작용하기 전에) 계약 내용을 확인할 수 있습니다. 스마트 계약은 투명성이 뛰어나 누구나 계약서를 검토할 수 있습니다. - -## 스마트 계약 사용 사례 {#use-cases} - -스마트 계약은 본질적으로 컴퓨터 프로그램이 할 수 있는 모든 작업을 수행할 수 있습니다. - -계산을 수행하고, 통화를 만들고, 데이터를 저장하고, NFT를 발행하며, 통신을 보내고, 그래픽을 생성할 수도 있습니다. 다음은 몇 가지 일반적인 실제 사례입니다. - -- [스테이블코인](/stablecoins/) -- [고유한 디지털 자산 생성 및 배포](/nft/) -- [자동 개방형 환전소](/get-eth/#dex) -- [탈중앙화 게임](/dapps/?category=gaming) -- [자동으로 지급되는 보험](https://etherisc.com/) -- [사용자가 상호 운용 가능한 맞춤형 통화를 만들 수 있게 하는 표준](/developers/docs/standards/tokens/) - -## 시각적으로 알아보고 싶습니까? {#visual-learner} - -스마트 계약에 대해 설명하는 Finematics 시청하기: - - - -## 부록 {#further-reading} - -- [스마트 계약이 세상을 바꾸는 방법](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [스마트 계약: 변호사를 대체할 블록체인 기술](https://blockgeeks.com/guides/smart-contracts/) -- [개발자를 위한 스마트 계약](/developers/docs/smart-contracts/) -- [스마트 계약 작성 방법 배우기](/developers/learning-tools/) -- [이더리움 마스터하기 - 스마트 계약이란 무엇입니까?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/src/content/translations/ko/social-networks/index.md b/src/content/translations/ko/social-networks/index.md deleted file mode 100644 index a7cad6b88c2..00000000000 --- a/src/content/translations/ko/social-networks/index.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: 분산형 소셜 네트워크 -description: 이더리움에서의 분산형 소셜 네트워크에 대한 개요 -lang: ko -template: use-cases -emoji: ":mega:" -sidebarDepth: 2 -image: ../../../../assets/ethereum-learn.png -summaryPoint1: 소셜 상호작용, 콘텐츠 창작 및 배포를 위한 블록체인 기반 플랫폼입니다. -summaryPoint2: 분산형 소셜 미디어 네트워크는 사용자의 개인 정보를 보호하고 데이터 보안을 강화합니다. -summaryPoint3: 토큰과 NFT는 콘텐츠를 통한 수익 창출의 새로운 방법을 만듭니다. ---- - -소셜 네트워크는 우리가 매일 소통하고 상호 작용하는 데 어마어마한 역할을 합니다. 하지만 중앙화된 플랫폼 제어 방식은 데이터 유출, 서버 장애, 플랫폼 불매 운동, 검열 및 개인 정보 보호 정책 위반 등의 문제를 지속적으로 야기해 왔습니다. 이러한 문제를 없애기 위해 개발자들은 이더리움에서 소셜 네트워크를 구축합니다. 분산형 소셜 네트워크는 기존 소셜 네트워크 플랫폼의 많은 문제점을 해결하고 사용자의 전체적인 환경을 개선할 수 있습니다. - -## 분산형 소셜 네트워크란 무엇인가요? {#what-are-decentralized-social-networks} - -분산형 소셜 네트워크는 사용자들이 정보를 교환할 수 있을 뿐만 아니라 콘텐츠를 게재하고 다른 사람들에게 배포할 수 있는 블록체인 기반의 플랫폼입니다. 이러한 애플리케이션은 블록체인을 기반으로 작동하기 때문에 탈중앙화 방식으로 운영되기에 적합하고 검열되지 않으며 과도한 통제에서 벗어날 수 있습니다. - -대부분의 분산형 소셜 네트워크는 Facebook, LinkedIn, Twitter 및 Medium 등 이미 서비스를 제공하고 있는 소셜 미디어 서비스의 대체적인 서비스로 활용됩니다. 하지만 블록체인 기반 소셜 네트워크에는 기존 소셜 플랫폼보다 뛰어난 많은 기능이 있습니다. - -### 분산형 소셜 네트워크는 어떻게 작동하나요? {#decentralized-social-networks-overview} - -분산형 소셜 네트워크는 블록체인 상에 배포된 [스마트 계약](/developers/docs/smart-contracts/) 기반의 애플리케이션인 [탈중앙화 애플리케이션(디앱)](/dapps/)의 일종입니다. 계약 코드는 해당 앱에 대한 백엔드로 제공되며 비즈니스 논리를 정의합니다. - -기존의 소셜 미디어 플랫폼은 사용자의 정보, 프로그램 코드 및 다른 형식의 데이터를 보관하기 위해 데이터베이스를 이용합니다. 하지만 여기에는 한 곳에서 문제가 발생하면 서비스가 중단된다는 심각한 문제가 있습니다. 예를 들어, 작년에 Facebook 서버가 [몇 시간 동안](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) 가동 중지되고 그동안 사용자들이 플랫폼을 이용할 수 없었던 사태가 발생했습니다. - -분산형 소셜 네트워크는 전 세계에 수천 개의 노드가 있는 P2P 네트워크 상에 존재합니다. 일부 노드에서 오류가 발생해도 네트워크는 중단되지 않고 작동하며, 애플리케이션이 고장과 정전에도 견뎌낼 수 있게 합니다. - -[IPFS(InterPlanetary File System)](https://ipfs.io/)와 같은 탈중앙화 스토리지 시스템을 사용하여, 이더리움상에 구축된 소셜 네트워크는 사용자 정보를 불법적이고 악의적인 이용으로부터 보호할 수 있습니다. 아무도 귀하의 개인 정보를 광고사에 판매하지 않으며, 해커 또한 비밀 정보를 훔칠 수 없습니다. - -다수의 블록체인 기반 소셜 플랫폼은 광고 매출 없이 이익 창출이 가능한 고유 토큰을 보유하고 있습니다. 사용자는 이러한 토큰을 구매하여 특정 기능에 액세스하거나, 앱 내 구매를 완료하고, 마음에 드는 콘텐츠 창작자에게 팁을 줄 수 있습니다. - -## 분산형 소셜 네트워크의 장점 {#benefits} - -1. 분산형 소셜 네트워크는 검열이 불가능하며 모두가 제약 없이 사용할 수 있습니다. 따라서 사용자는 서비스에서 차단되거나, 사용 금지 조치를 받거나, 임의로 제한받지 않습니다. - -2. 분산형 소셜 네트워크는 오픈 소스의 이상에 따라 구축되며, 애플리케이션의 소스 코드를 공개적으로 확인할 수 있게 합니다. 전통적인 소셜 미디어에 존재하는 일반적인 불투명한 알고리즘의 구현을 제거함으로써, 블록체인 기반의 소셜 네트워크는 사용자와 플랫폼 제작자의 기대에 더욱 부응할 수 있습니다. - -3. 분산형 소셜 네트워크에서는 "중개자"가 필요 없습니다. 콘텐츠 창작자는 콘텐츠에 대한 직접적인 소유권을 가지며, 팔로워, 팬, 구매자 및 다른 대상자들과 스마트 계약만을 통해 직접 관계를 맺게 됩니다. - -4. 노드의 글로벌 P2P 네트워크에서 유지되는 이더리움 네트워크에서 실행되는 디앱으로서의 분산형 소셜 네트워크는 서버 다운타임 및 중단의 영향을 적게 받습니다. - -5. 탈중앙화 소셜 플랫폼은 대체 불가능 토큰 (NFT), 앱 내 암호화폐 결제 등을 통해 컨텐츠 창작자에게 보다 나은 수익 창출 체계를 제공합니다. - -6. 분산형 소셜 네트워크는 사용자에게 높은 수준의 개인 정보 보호와 익명성을 제공합니다. 예를 들어, 한 개인은 이름, 이메일 주소 등과 같은 개인 식별 정보(PII)를 공유하지 않고 ENS 프로필이나 지갑을 사용해 이더리움 기반의 소셜 네트워크에 로그인할 수 있습니다. - -7. 분산형 소셜 네트워크는 중앙화 데이터베이스 대신 사용자의 데이터를 보다 안전하게 보호할 수 있는 탈중앙화 저장 공간을 이용합니다 - -## 이더리움 기반의 분산형 소셜 네트워크 {#ethereum-social-networks} - -이더리움 네트워크는 토큰(ERC-20/ERC-721)의 인기와 거대한 사용자 기반의 특성으로 인해 분산형 소셜 미디어를 만드는 개발자들이 선호하는 도구가 되어가고 있습니다. 이더리움을 기반으로 구축된 소셜 네트워크의 몇 가지 사례는 다음과 같습니다. - -### Peepeth {#peepeth} - -[Peepeth](https://peepeth.com/)는 Twitter와 비슷한 단편 블로그 플랫폼입니다. Peepeth는 이더리움 블록체인에서 실행되며 사용자 데이터를 저장하기 위해 IPFS를 사용합니다. - -사용자는 "Peeps"라는 짧은 메시지를 보낼 수 있으며, 이는 삭제하거나 수정할 수 없습니다. 앱에서 나가지 않고 플랫폼 상에서 이더(ETH)로 팁을 받거나 줄 수 있습니다. - -### Mirror {#mirror} - -[Mirror](https://mirror.xyz/)는 탈중앙화되고 사용자가 주인인 플랫폼이 되는 것을 목표로 하는 웹3 기반 글쓰기 플랫폼입니다. 사용자는 각자의 지갑에 연결하기만 하면 무료로 Mirror에서 메시지를 읽거나 작성할 수 있습니다. 사용자는 가장 좋아하는 작가를 구독하고 작품을 수집할 수도 있습니다. - -Mirror에 게시된 글은 탈중앙화 저장 공간 플랫폼인 Arweave에 영구적으로 저장되고, 글쓰기 NFT와 같은 수집물 [대체 불가 토큰(NFT)](/nft/)으로 발행될 수 있습니다. 글쓰기 NFT는 작가가 창작하는 작업에 대해 완전히 무료이며 수집은 이더리움 L2 상에서 일어나기 때문에 거래가 저렴하고, 빠르며, 친환경적으로 가능합니다. - -### MINDS {#minds} - -[MINDS](https://www.minds.com/)는 가장 많이 사용하는 분산형 소셜 네트워크 중 하나입니다. Facebook과 비슷한 방식으로 작동하며 이미 몇백만 명의 사용자를 보유하고 있습니다. - -사용자는 플랫폼 고유의 ERC-20 토큰 $MIND를 사용하여 아이템을 결제합니다. 사용자는 인기 콘텐츠를 게시하거나, 생태계에 기여, 다른 사용자에게 플랫폼을 추천하여 $MIND를 벌 수도 있습니다. - -## 이더리움을 사용하는 웹2 기반 소셜 네트워크 {#web2-social-networks-and-ethereum} - -블록체인 기술을 소셜 미디어에 통합하려는 시도는 [웹3](/web3/) 기반의 소셜 플랫폼이 아닌 곳에서도 이루어지고 있습니다. 다양한 중앙화 플랫폼 또한 이더리움을 해당 인프라에 통합하려는 계획을 세우고 있습니다. - -### 레딧 {#reddit} - -Reddit은 [ERC-20 토큰](/developers/docs/standards/tokens/erc-20/) 기반의 [커뮤니티 포인트](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users)를 보유하고 있으며, 사용자는 양질의 콘텐츠를 게시하거나 온라인 커뮤니티(서브레딧)에 기여함으로써 토큰을 받을 수 있습니다. 해당 토큰은 서브레딧 내에서 [특별한 혜택이나 특전](https://www.reddit.com/community-points/)을 받는 데 사용될 수 있습니다. 본 프로젝트를 위해 Reddit은 이더리움의 거래를 확장하기 위해 디자인된 [레이어 2](/layer-2/) 롤업인 Arbitrum과 협업하고 있습니다. - -해당 프로그램은 이미 ["Moons"라는 커뮤니티 포인트](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki)의 가상화폐 서브레딧에서 실제로 진행되고 있습니다. 공식 발표에 따르면, Moons는 "게시자, 코멘트 생성자, 중재자 등 서브레딧에 기여하고 있는 사람들에게 보상"을 제공하고 있습니다. 이 토큰은 블록체인 상에 존재하기 때문에(사용자는 지갑에 토큰을 받음) Reddit과는 독립적이며 제거할 수 없습니다. - -레딧 커뮤니티 포인트는 Rinkeby 테스트넷에서의 베타 테스트를 마치고, 이제 [아비트럼 노바](/developers/docs/scaling/sidechains/)와 [낙관적 롤업](/developers/docs/scaling/optimistic-rollups/)의 특성을 결합한 [Arbitrum Nova](https://nova.arbitrum.io/) 블록체인 상에서 운영되고 있습니다. 토큰은 커뮤니티 포인트에서의 특전 이외에, 실제 화폐와의 교환에도 사용될 수 있습니다. 또한 커뮤니티 포인트의 보유량이 많을수록 커뮤니티 내에서 의사결정 과정에 영향력을 키울 수 있습니다. - -### 트위터 {#twitter} - -2021년 1월, Twitter Blue는 [NFT에 대한 지원](https://mashable.com/article/twitter-blue-nft-profile-picture)을 발표했으며, 사용자가 지갑을 연결하고 NFT를 프로필 사진으로 표시할 수 있게 했습니다. 또한 최근, [분산형 소셜 네트워크 구축 계획을 발표](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web)하였습니다. - -### 인스타그램 {#instagram} - -2022년 5월, [인스타그램은 이더리움과 폴리곤의 NFT를 지원한다고 발표](https://about.instagram.com/blog/announcements/instagram-digital-collectibles)했습니다. 사용자들은 각자의 이더리움 지갑을 연결하여 인스타그램에 NFT를 직접 게시할 수 있게 되었습니다. - -## 분산형 소셜 네트워크 사용하기 {#use-decentralized-social-networks} - -- **[Status.im](https://status.im/)**: *Status는 오픈소스의 P2P 프로토콜과 종단 간 암호화 기술을 사용하여 제3자로부터 메시지를 보호하는 안전한 메시징 앱입니다.* -- **[Mirror.xyz](https://mirror.xyz/)**: *Mirror는 이더리움 기반의 탈중앙화, 사용자 소유형 퍼블리싱 앱으로, 사용자는 아이디어를 크라우드펀딩하고, 콘텐츠로 수익을 올리며, 고급 커뮤니티를 만들 수 있습니다.* -- **[Lens Protocol](https://lens.xyz/)**: *Lens Protocol은 탈중앙화된 구성 가능한 소셜 그래프로, 창작자가 탈중앙화 인터넷에 있는 디지털 가든의 어디에서든지 자신의 콘텐츠에 대한 소유권을 가질 수 있게 도와줍니다.* -- **[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} - -- [분산형 소셜 미디어 설명](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ -- [DeSo 블록체인은 소셜 미디어의 탈중앙화를 원한다](https://www.youtube.com/watch?v=SG2HUiVp0rE) — *Bloomberg 테크놀로지* -- [분산형 소셜 미디어의 미래 w/ Balaji Srinivasan, Vitalik Buterin, Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _이더리움 글로벌_ - -### 커뮤니티 {#communities} - -- [Status의 디스코드 서버](https://discord.com/invite/3Exux7Y) -- [Mirror의 디스코드 서버](https://discord.com/invite/txuCHcE8wV) -- [r/CryptoCurrency 서브 레딧](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/ko/staking/pools/index.md b/src/content/translations/ko/staking/pools/index.md deleted file mode 100644 index 6e53827a59b..00000000000 --- a/src/content/translations/ko/staking/pools/index.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: 풀 스테이킹 -description: 풀 ETH 스테이킹을 시작하는 방법에 대한 개요 -lang: ko -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-pool.png -alt: 수영장에서 수영하는 코뿔소 레슬리. -summaryPoints: - - 다른 사용자와 함께 ETH의 양과 관계없이 스테이킹하고 보상을 받으세요. - - 어려운 부분은 건너뛰고 검증자 작업은 제3자에게 맡기세요. - - 자신의 지갑에 유동성 토큰을 보관하세요. ---- - -## 스테이킹 풀이란 무엇인가요? {#what-are-staking-pools} - -스테이킹 풀은 적은 양의 ETH를 가진 많은 사람이 검증자 키의 세트를 활성화하기 위해 필요한 32 ETH를 얻을 수 있게 하는 협업 방식입니다. 풀링 기능은 프로토콜 내에서 기본적으로 지원되지 않으므로 솔루션은 이러한 요구 사항을 해결하기 위해 별도로 구축되었습니다. - -일부 풀은 자금을 계약에 예치할 수 있는 스마트 계약을 사용하여 운영되며, 이 계약은 귀하의 스테이킹을 신뢰 없이 관리 및 추적하고 이 가치를 나타내는 토큰을 발행합니다. 다른 풀에는 스마트 계약이 포함되지 않을 수 있으며 대신 오프체인에서 중개됩니다. - -## 풀로 스테이킹하는 이유는 무엇인가요? {#why-stake-with-a-pool} - -풀을 통한 스테이킹에는 [스테이킹 소개](/staking/)에서 설명한 이점 외에도 뚜렷한 장점이 많습니다. - - - - 돈이 많지 않다고요? 괜찮습니다. 대부분의 스테이킹 풀에서는 32 ETH가 필요한 솔로 스테이킹과 달리, 다른 스테이커와 협동하여 양에 상관없이 ETH를 가상으로 스테이킹할 수 있습니다. - - - 풀로 스테이킹하는 것은 토큰 교환만큼 쉽습니다. 하드웨어 설치와 노드 유지 작업에 대해 고려할 필요가 없습니다. 풀을 사용하여 노드 운영자가 검증자를 실행할 수 있도록 ETH를 예치할 수 있습니다. 그 후 노드 운영 수수료를 제외한 보상이 참여자에게 분배됩니다. - - - 대부분의 스테이킹 풀에서는 스테이킹한 ETH와 이에 대한 보상의 소유권을 주장할 수 있는 토큰을 제공합니다. 이를 통해 스테이킹한 ETH는 디파이 애플리케이션의 담보 등으로 사용할 수 있습니다. - - - - - -## 고려 사항 {#what-to-consider} - -풀 스테이킹 또는 대리 스테이킹은 이더리움 프로토콜이 기본적으로 지원하는 기능은 아니지만, 32 ETH보다 적은 금액을 스테이킹하는 사람들의 수요에 따라 점점 더 많은 솔루션이 구축되었습니다. - -사용되는 각 풀과 도구 또는 스마트 계약은 서로 다른 팀이 개발하였으며, 각각의 위험성과 장점이 따릅니다. - -아래의 속성 지표는 현재 목록에 있는 스테이킹 풀의 대표적인 강점 및 약점을 나타내기 위해 사용되었습니다. 참여할 풀을 선택할 때 이 섹션을 참고하여 이러한 속성이 정의되는 방법을 알아보세요. - - - -## 스테이킹 풀 살펴보기 {#explore-staking-pools} - -설정에 도움이 되는 다양한 옵션이 있습니다. 위의 지표를 사용하여 아래 도구에 대한 안내를 받으세요. - - -참고로, 클라이언트 다양성을 고려한 서비스의 선택은 네트워크의 보안을 강화하고 위험성을 최소화할 수 있으므로 매우 중요합니다. 대부분 클라이언트의 사용을 제한하는 것으로 밝혀진 서비스는 "다양한 클라이언트"로 표시됩니다. - - - - -저희가 놓친 스테이킹 풀을 제안하고 싶으신가요? 이더리움 [제품 나열 정책](/contributing/adding-staking-products/)을 확인하고 정책에 맞는 제품인 경우 검토를 위해 제출해 주세요. - -## 자주 묻는 질문 {#faq} - - -일반적으로 ERC-20 유동성 토큰은 스테이킹된 ETH와 보상의 가치를 나타내는 스테이커에게 발행됩니다. 각 풀마다 조금씩 다른 방식으로 스테이킹 보상을 사용자에게 분배하지만, 보통 앞서 말한 경우가 일반적입니다. - - - - -현재 이더리움 검증자로부터 자금을 인출할 수 없으며, 이로 인해 합의 계층에 고정된 ETH 보상에 대한 유동성 토큰을 실제로 상환할 수 있는 기능이 제한됩니다. - -그 대안으로, ERC-20 유동성 토큰을 사용하는 풀은 사용자가 오픈 마켓에서 이 토큰을 거래할 수 있게 허용하여 스테이킹 포지션을 판매함으로써 스테이킹 계약에서 ETH를 실제로 제거하지 않고도 실질적인 "출금"이 가능합니다. - - - -이러한 풀 스테이킹 옵션과 중앙화 거래소 간에는 다양한 유사점이 있으며, 적은 양의 ETH를 스테이킹하고 합쳐 검증자 역할을 활성화할 수 있도록 하는 것이 한 예시입니다. - -중앙화 거래소와는 달리, 다양한 스테이킹 풀 옵션에서 스마트 계약 및/또는 ERC-20 토큰의 일종으로 일반 토큰처럼 매매가 가능하며 지갑에 보관될 수 있는 유동성 토큰을 활용하고 있습니다. 이는 자신의 토큰에 대한 제어권을 제공하여 주도성과 보안성을 지닐 수 있게 하지만, 배경에서 귀하를 대신하여 증명하는 검증자 클라이언트에 대한 직접적인 제어권은 제공하지 않습니다. - -일부 풀링 옵션은 지원하는 노드에 관해 다른 풀보다 더욱 탈중앙화되어 있습니다. 네트워크의 양호한 상태와 탈중앙화를 장려하기 위해 스테이커는 항상 노드 운영자에게 권한이 집중되지 않는 탈중앙화 체계를 마련할 수 있는 풀링 서비스를 선택하는 것이 좋습니다. - - -## 더 읽을거리 {#further-reading} - -- [Rocket Pool을 통한 스테이킹 - 스테이킹 개요](https://docs.rocketpool.net/guides/staking/overview.html) - _RocketPool 문서_ -- [Lido를 통한 이더리움 스테이킹](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Lido 도움말 문서_ diff --git a/src/content/translations/ko/staking/saas/index.md b/src/content/translations/ko/staking/saas/index.md deleted file mode 100644 index 049b2268b98..00000000000 --- a/src/content/translations/ko/staking/saas/index.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -title: 서비스로서의 스테이킹 -description: 풀링된 ETH 스테이킹을 시작하는 방법에 대한 개요 -lang: ko -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-saas.png -alt: 구름 위에 떠 있는 코뿔소 레슬리 -summaryPoints: - - 제3자 노드 운영자가 검증자 클라이언트의 운영을 처리함 - - 32 ETH를 보유하고 있으며 노드를 실행하는 데 필요한 복잡한 기술에 친숙하지 않은 사용자에게 탁월한 옵션 - - 신뢰를 줄이고 출금 키에 대한 보관 유지 ---- - -## 서비스로서 스테이킹이란? {#what-is-staking-as-a-service} - -서비스로서 스테이킹(SaaS)은 귀하가 검증자를 위해 32 ETH를 예치하지만 노드 운영은 제3자 운영자에게 지정하는 스테이킹 서비스의 카테고리를 나타냅니다. 일반적으로 이 과정에는 키 생성 및 예치, 운영 업체에 서명 키 업로드와 같은 초기 설정에 대한 안내가 포함됩니다. 이를 통해 서비스가 귀하를 대신하여 검증자를 실행할 수 있으며, 일반적으로 매월 수수료가 부과됩니다. - -## 스테이킹을 서비스로 제공하는 이유 {#why-stake-with-a-service} - -이더리움 프로토콜 자체는 스테이크의 위임을 지원하지 않기 때문에 이러한 수요를 충족시키기 위해 스테이킹 서비스가 구축되었습니다. 스테이킹할 32 ETH가 있지만 하드웨어를 다루는 데 능숙하지 않은 경우, SaaS 서비스를 통해 어려운 부분은 맡기고 기존의 블록 보상은 계속해서 받을 수 있습니다. - - - - 소유하고 있는 32 ETH를 예치하여 이더리움 합의 메커니즘에 참여할 수 있는 서명 키 세트를 활성화하세요. 대시보드를 통해 ETH 보상이 적립되는 과정을 모니터링합니다. - - - 하드웨어 사양, 설치, 노드 점검 및 업그레이드는 더 이상 생각하지 않아도 됩니다. - SaaS 제공자의 서비스를 사용하면 자신의 서명 자격 증명을 업로드하여 어려운 부분을 외부에 대신 맡기고 적은 비용으로 귀하를 대신하여 검증자를 실행할 수 있게 합니다. - - - 대부분의 경우에 사용자는 스테이킹된 자금을 출금하거나 이전할 수 있게 하는 키에 대한 접근 권한을 포기하지 않아도 됩니다. 앞서 말한 키는 서명 키와는 다르며, 스테이커의 위험성을 최소화(제거하지는 않음)하도록 분리하여 저장할 수 있습니다. - - - - - -## 고려 사항 {#what-to-consider} - -ETH를 스테이킹할 수 있도록 도와주는 서비스형 스테이킹 제공 업체의 수는 점점 증가하고 있지만 각 업체마다 서로 다른 장점과 위험성이 있습니다. - -아래의 속성 지표는 현재 목록에 있는 SaaS 제공 업체의 대표적인 강점 및 약점을 나타내기 위해 사용되었습니다. 스테이킹 여정을 도와 줄 서비스를 선택할 때 이 섹션을 참고하여 이러한 속성이 정의되는 방법을 알아보세요. - - - -## 스테이킹 서비스 제공 업체 찾기 {#saas-providers} - -다음은 사용 가능한 SaaS 공급자입니다. 상단의 지표를 사용하면 해당 서비스를 둘러보는 데 도움이 됩니다. - - -참고로, 클라이언트 다양성에 대한 지원은 네트워크의 보안을 강화하고 위험성을 최소화할 수 있으므로 매우 중요합니다. 대부분 클라이언트의 사용을 제한하는 것으로 밝혀진 서비스는 "다양한 클라이언트"로 표시됩니다. - - -#### SaaS 제공업체 - - - -#### 키 생성기 - - - -저희가 놓친 서비스로서 스테이킹 제공 업체를 제안하고 싶으신가요? 이더리움 [제품 나열 정책](/contributing/adding-staking-products/)을 확인하고 정책에 맞는 제품인 경우 검토를 위해 제출해 주세요. - -## 자주 묻는 질문 {#faq} - - - 진행 방식은 업체별로 다를 수 있지만 일반적으로 필요한 서명 키(32 ETH 당 1개)를 설정하고 본인을 대신하여 검증자를 실행할 수 있게 제공 업체에 키를 업로드하도록 안내받게 됩니다. 서명 키만으로는 자금을 인출하거나 이체 또는 소비할 수 없습니다. 다만, 업체는 합의를 위한 투표에 참여할 수 있게 되며, 이는 적절하게 이루어지지 않는 경우에 오프라인에서 벌금 및 슬래싱을 받게 될 수 있습니다. - - - -네. 각 계정은 서명 키와 인출 키를 모두 포함하여 구성됩니다. 검증자가 체인의 상태를 증명하고, 그룹 동기화, 블록 제안 등을 용이하게 하기 위해서는 검증자 클라이언트가 서명 키에 쉽게 접근할 수 있어야 합니다. 이는 어떠한 형태로든 반드시 인터넷에 연결되어 있어야 하므로, 본질적으로 "핫(hot)"키로 고려됩니다. 이는 검증자가 증명되기 위해 필요한 구성 요소이며, 보안을 위해 자금 인출이나 이체를 위해 사용되는 키와 분리되어 있습니다. - -이 모든 키는 24개 단어로 구성된 시드 문구를 사용하여 언제든지 재생성될 수 있습니다. 이 시드 문구를 안전한 곳에 백업해 두십시오. 그렇지 않으면 필요할 때 인출 키를 생성할 수 없게 됩니다. - - - - SaaS 공급 업체를 통해 32 ETH를 스테이킹할 경우, 해당하는 ETH는 여전히 공식 스테이킹 예치 계약 상에 예치됩니다. 따라서 현재 SaaS 스테이커는 솔로 스테이커와 동일하게 인출이 제한됩니다. 이는 현재 ETH 스테이킹이 단방향 입금이라는 것을 의미합니다. 이는 상하이 업그레이드 이전까지 지속될 예정입니다. - - - -SaaS 공급 업체를 사용하면 노드의 운영을 타인에게 맡기게 됩니다. 이는 노드 성능이 양호하지 않을 수도 있는 리스크를 동반하며, 귀하가 제어할 수 없습니다. 검증자가 제거되는 경우, 검증자의 잔액에 불이익이 적용되고 강제적으로 검증자 풀에서 제외됩니다. 해당하는 자금은 프로토콜 수준에서 인출이 가능하게 될 때까지 잠기게 됩니다. - -각 SaaS 업체에 연락하여 보증이나 보험 옵션에 대한 자세한 내용을 안내 받으십시오. 검증자 설정을 완전히 제어하고자 하는 경우, ETH를 솔로 스테이킹하는 방법에 대해 자세히 알아보세요. - - -## 더 읽을거리 {#further-reading} - -- [스테이킹 서비스 평가하기](https://www.attestant.io/posts/evaluating-staking-services/) - _짐 맥도널드 2020_ diff --git a/src/content/translations/ko/staking/solo/index.md b/src/content/translations/ko/staking/solo/index.md deleted file mode 100644 index 65f49d0c60a..00000000000 --- a/src/content/translations/ko/staking/solo/index.md +++ /dev/null @@ -1,184 +0,0 @@ ---- -title: ETH를 솔로 스테이킹하기 -description: ETH 솔로 스테이킹을 시작하는 방법에 대한 개요 -lang: ko -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-solo.png -alt: 컴퓨터 칩 위의 코뿔쏘 레슬리 -summaryPoints: - - 검증자가 온라인에서 올바르게 작동하도록 유지하여 프로토콜에서 직접 최대 보상을 받으세요. - - 가정용 컴퓨터를 실행하고 이더리움 네트워크의 보안과 탈중앙화에 기여해 보세요. - - 특정 주체를 신뢰하지 않고 자금에 대한 제어권을 유지하세요. ---- - -## 솔로 스테이킹이란 무엇인가요? {#what-is-solo-staking} - -솔로 스테이킹은 인터넷에 연결된 [이더리움 노드를 실행](/run-a-node/)하고 32 ETH를 예치하여 [검증자](#faq)를 활성화하며, 네트워크 합의에 직접 참여할 수 있게 하는 기능입니다. - -이더리움 노드는 실행 계층(EL) 클라이언트와 합의 계층(CL) 클라이언트로 이루어져 있습니다. 해당하는 클라이언트는 유효한 서명 키와 함께 작동하는 소프트웨어이며, 블록과 거래를 확인하고, 올바른 체인의 헤드를 증명, 증명을 관리하거나 블록을 제안합니다. - -솔로 스테이커는 이러한 클라이언트를 실행하기 위해 필요한 하드웨어를 운영하는 역할을 맞습니다. 이 작업을 위해 집에서 작동하는 전용 컴퓨터를 사용할 것을 강력하게 추천합니다. 네트워크 상태에 큰 도움이 되기 때문입니다. - -솔로 스테이커는 검증자가 온라인에서 올바르게 작동하도록 유지하여 프로토콜에서 직접 보상을 받을 수 있습니다. - -## 솔로 스테이킹이 왜 필요한가요? {#why-stake-solo} - -솔로 스테이킹에는 더 많은 책임이 따르지만, 자금 및 스테이킹 설정에 대한 가장 많은 관리 권한을 제공합니다. - - - - 검증자가 온라인일 때 중간의 제3자에게 수수료를 떼어 주지 않고 프로토콜에서 직접 ETH 보상을 받을 수 있습니다. - - - 자신의 키를 직접 지키십시오. 리스크를 최소화하고 네트워크의 상태와 보안에 가장 크게 기여하는 클라이언트와 하드웨어 조합을 선택할 수 있습니다. 제3자 스테이킹 서비스는 귀하를 대신하여 이러한 결정을 내리지만, 가장 안전한 결정이 아닐 수도 있습니다. - - - 솔로 스테이킹은 가장 효과적인 스테이킹 방법입니다. 집에서 직접 검증자를 실행함으로써, 이더리움 프토토콜의 견고함, 탈중앙화 및 보안을 강화할 수 있습니다. - - - -## 솔로 스테이킹 전에 고려할 사항 {#considerations-before-staking-solo} - -솔로 스테이킹에 모두 접근할 수 있고 위험 부담이 없기를 바라지만, 현실은 이와 다릅니다. ETH를 솔로 스테이킹하기 전에 염두에 두어야 할 실용적이고 중요한 고려 사항이 있습니다. - - - - 자신의 노드를 직접 운영할 때 선택한 소프트웨어를 사용하는 방법에 대해 알아봐야 합니다. 여기에는 관련 문서를 읽거나 해당하는 개발 팀의 통신 채널에 주목하는 것도 포함됩니다. - 실행하는 소프트웨어와 지분 증명 작동의 원리를 잘 이해할수록 스테이커로서의 위험 부담이 낮아지며 노드 운영자로서 도중에 발생할 수 있는 문제를 더 쉽게 해결할 수 있습니다. - - - 새로운 도구를 통해 작업이 더 쉬워지더라도 노드를 설치하려면 컴퓨터를 사용하는 작업에 어느 정도 친숙해야 합니다. 명령줄 인터페이스를 이해하는 것이 도움은 되지만 더 이상 반드시 필요한 것은 아닙니다. - 또한 매우 기초적인 하드웨어 설치 및 최소 권장 사양에 대해 어느 정도 이해하고 있어야 합니다. - - - 개인 키가 이더리움 주소를 보호하는 방법처럼 검증자를 위한 특별한 키를 생성해야 합니다. 시드 문구 또는 개인 키를 안전하게 보호하는 방법을 반드시 이해해야 합니다. -

이더리움 보안 및 사기 방지

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

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

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

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

-

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

-
- - -개별 클라이언트는 다양한 팀들이 다양한 언어로 개발한 것이므로 성능과 사용성 면에서 차이를 보일 수 있습니다. 즉, "최고"의 클라이언트는 존재하지 않습니다. 모든 프로덕션 클라이언트는 우수한 소프트웨어이며 블록체인을 활용하고 동기화하기 위한 동일한 핵심 기능을 제공합니다. - -모든 프로덕션 클라이언트에서 동일한 기본 기능을 제공하기 때문에 소수 클라이언트를 선택하는 것이 매우 중요합니다. 즉, 현재 네트워크 상에서 아직 검증자들이 많이 사용하고 있지 않은 클라이언트를 선택하는 것이 중요합니다. 처음에는 와닿지 않을 수 있지만, 대다수 혹은 대규모 클라이언트를 실행하면 해당 클라이언트에 버그가 있는 경우에 슬래싱될 가능성이 높아집니다. 소수 클라이언트를 실행하면 이 리스크를 크게 줄입니다. - -클라이언트 다양성이 중요한 이유에 대해 자세히 알아보기 - - - -가상 사설 서버(VPS: Virtual Private Server)가 가정용 하드웨어 대신 사용될 수는 있지만, 검증자 클라이언트의 물리적인 액세스 및 위치가 실제로 중요합니다. 아마존 웹 서비스나 디지털 오션과 같은 중앙화된 클라우드 솔루션은 하드웨어를 직접 소유하고 운영하지 않아도 된다는 편리함을 제공하지만, 네트워크를 중앙화한다는 단점이 있습니다. - -하나의 중앙화된 클라우드 스토리지 솔루션에서 더 많은 검증자 클라이언트가 실행될수록 해당 사용자들은 위험해집니다. 해킹, 규제 또는 단순한 정전/인터넷 오류에 의해 해당 서비스가 오프라인이 되는 경우, 이 서버를 사용하는 모든 검증자 클라이언트도 동시에 오프라인이 됩니다. - -오프라인 패널티의 정도는 동시에 오프라인 상태에 있는 클라이언트 수에 비례합니다. 따라서 VPS를 사용하면 오프라인 패널티에 대한 리스크를 현저히 증가시키며, 고장이 대규모인 경우에 2차적 누출이나 슬래싱을 당할 리스크 또한 키웁니다. 귀하의 리스크와 네트워크의 리스크를 최소화하기 위해 사용자는 자신의 하드웨어를 확보하고 운영할 것을 강력히 권장합니다. - - -## 더 읽을거리 {#further-reading} - -- [이더리움의 클라이언트 다양성 문제](https://hackernoon.com/ethereums-client-diversity-problem) - *@emmanuelawosika 2022* -- [클라이언트 다양성 개선](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ -- [이더리움 합의 계층에서의 클라이언트 다양성](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ -- [사용법: 이더리움 검증자용 하드웨어 구매하기](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ -- [단계별: 이더리움 2.0 테스트넷에 참여하는 방법](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _Butta_ -- [Eth2 슬래싱 방지 팁](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raul Jordan 2020_ diff --git a/src/content/translations/ml/roadmap/beacon-chain/index.md b/src/content/translations/ml/roadmap/beacon-chain/index.md deleted file mode 100644 index b4fa0915b68..00000000000 --- a/src/content/translations/ml/roadmap/beacon-chain/index.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: ബീക്കൺ ചെയിൻ -description: പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് Ethereum അവതരിപ്പിച്ചിട്ടുള്ള അപ്‌ഗ്രേഡായ ബീക്കൺ ചെയിൻ സംബന്ധിച്ച് കൂടുതലറിയുക. -lang: ml -template: upgrade -image: ../../../../../assets/upgrades/core.png -summaryPoint1: ബീക്കൺ ചെയിൻ, Ethereum ഇക്കോസിസ്റ്റത്തിലേക്ക് പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് അവതരിപ്പിച്ചു. -summaryPoint2: ഇത് ഒറിജിനൽ Ethereum പ്രൂഫ് ഓഫ് വർക്ക് ശൃംഖലയുമായി 2022 സെപ്റ്റംബറിൽ ലയിപ്പിച്ചു. -summaryPoint3: ബീക്കൺ ചെയിൻ പൊതു യുക്തിയും Ethereum-ത്തെ ഇപ്പോൾ സുരക്ഷിതമാക്കുന്ന ബ്ലോക്ക് ഗോസിപ്പ് പ്രോട്ടോക്കോളും അവതരിപ്പിച്ചു. ---- - - - ബീക്കൺ ചെയിൻ 2020 ഡിസംബർ 1-ന് ഷിപ്പ് ചെയ്യുകയും 2022 സെപ്‌റ്റംബർ 15-ലെ ലയന അപ്‌ഗ്രേഡുമൊത്ത് Ethereum-ന്റെ പൊതു രീതിയായി പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് ഔദ്യോഗികമാക്കുകയും ചെയ്തു. - - -## ബീക്കൺ ചെയിൻ എന്തായിരുന്നു? {#what-is-the-beacon-chain} - -2020-ൽ സമാരംഭിച്ച യഥാർത്ഥ പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് ബ്ലോക്ക്‌ചെയിനിന്റെ പേരാണ് ബീക്കൺ ചെയിൻ. Ethereum മെയിൻനെറ്റിൽ പ്രവർത്തനസജ്ജമാക്കുന്നതിന് മുമ്പ്, പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് പൊതു യുക്തി മികച്ചതും സുസ്ഥിരവുമാണെന്ന് ഉറപ്പാക്കുന്നതിനാണ് ഇത് സൃഷ്ടിച്ചത്. അതിനാൽ തന്നെ, ഇത് ഒറിജിനൽ പ്രൂഫ് ഓഫ് വർക്ക് Ethereum-നൊപ്പം പ്രവർത്തിച്ചു. Ethereum-ൽ പ്രൂഫ് ഓഫ് വർക്ക് സ്വിച്ച് ഓഫ് ചെയ്യുന്നതിനും പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് ഓൺ ചെയ്യുന്നതിനും, ഒറിജിനൽ Ethereum ശൃംഖലയിൽ നിന്നുള്ള ഇടപാടുകൾ സ്വീകരിക്കാൻ ബീക്കൺ ചെയിനിന് നിർദ്ദേശം നൽകുകയും അവയെ ബ്ലോക്കുകളായി ബണ്ടിൽ ചെയ്യുകയും തുടർന്ന് ഒരു പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് അടിസ്ഥാനമാക്കിയുള്ള പൊതു രീതി ഉപയോഗിച്ച് ഒരു ബ്ലോക്ക്‌ചെയിനിൽ ക്രമീകരിക്കുകയും ചെയ്യേണ്ടതുണ്ട്. അതേ സമയം, ഒറിജിനൽ Ethereum കക്ഷികൾ അവയുടെ മൈനിംഗ്, ബ്ലോക്ക് പ്രൊപ്പഗേഷൻ, പൊതു യുക്തി എന്നിവ ഓഫാക്കി, അതെല്ലാം ബീക്കൺ ചെയിനിന് കൈമാറി. ഈ ഇവന്റ് [ലയനം](/roadmap/merge/) എന്ന് അറിയപ്പെട്ടു. ലയനം നടന്ന ശേഷം രണ്ട് ബ്ലോക്ക്‌ചെയിനുകൾ ഉണ്ടായിരുന്നില്ല; ഒരു പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് Ethereum ചെയിൻ മാത്രമാണ് ഉണ്ടായിരുന്നത്. - -## ബീക്കൺ ചെയിൻ എന്താണ് ചെയ്തത്? {#what-does-the-beacon-chain-do} - -യഥാർത്ഥ Ethereum ഇടപാടുകൾ സ്റ്റേക്കർമാർ ആധികാരികമാക്കാൻ തുടങ്ങുന്നതിന് മുമ്പ് Ethereum [സ്റ്റേക്കർമാരുടെ](/staking/) നെറ്റ്‌വർക്ക് നിർവഹിക്കുകയും ഏകോപിപ്പിക്കുകയും ചെയ്ത അക്കൗണ്ടുകളുടെ ഒരു ലെഡ്‌ജറിന് നൽകിയ പേരാണ് ബീക്കൺ ചെയിൻ. ഇത് ഇടപാടുകൾ പ്രോസസ്സ് ചെയ്യുകയോ മികച്ച കരാർ ഇടപെടലുകൾ കൈകാര്യം ചെയ്യുകയോ ചെയ്തില്ല. - -ഇത് Ethereum-ലെ പ്രൂഫ് ഓഫ് വർക്ക് മൈനിംഗിന്റെ സ്ഥാനത്ത് പൊതു എഞ്ചിൻ (അല്ലെങ്കിൽ "പൊതു വരി") അവതരിപ്പിക്കുകയും അതിൽ നിരവധി പ്രധാനപ്പെട്ട മെച്ചപ്പെടുത്തലുകൾ കൊണ്ടുവരികയും ചെയ്തു. - -[ഇപ്പോഴുള്ള സുരക്ഷിതവും പരിസ്ഥിതി സൗഹൃദപരവും വിപുലീകരിക്കാവുന്നതുമായ Ethereum](/roadmap/vision/) എന്നതിനുള്ള ഒരു അടിസ്ഥാന ഘടകമായിരുന്നു ബീക്കൺ ചെയിൻ. - -## ബീക്കൺ ചെയിൻ സ്വാധീനം {#beacon-chain-features} - -### സ്റ്റേക്കിംഗ് അവതരിപ്പിക്കുന്നു {#introducing-staking} - -ബീക്കൺ ചെയിൻ Ethereum-ന് [പ്രൂഫ് ഓഫ് സ്റ്റേക്ക്](/developers/docs/consensus-mechanisms/pos/) അവതരിപ്പിച്ചിരിക്കുന്നു. ഇത് Ethereum-ത്തെ സുരക്ഷിതമായി നിലനിർത്തുകയും വാലിഡേറ്റർമാർ പ്രക്രിയയിൽ കൂടുതൽ ETH നേടുകയും ചെയ്യുന്നു. പ്രായോഗികമായി, വാലിഡേറ്റർ സോഫ്റ്റ്‌വെയർ സജീവമാക്കുന്നതിന് സ്റ്റെയ്ക്കിങിൽ സ്റ്റെയ്ക്കിങ് ETH ഉൾപ്പെടുന്നു. ഒരു സ്റ്റേക്കർ എന്ന നിലയിൽ, ചെയിനിലെ പുതിയ ബ്ലോക്കുകൾ സൃഷ്ടിക്കുകയും സാധൂകരിക്കുകയും ചെയ്യുന്ന സോഫ്റ്റ്‌വെയർ നിങ്ങൾ പ്രവർത്തിപ്പിക്കും. - -വ്യത്യസ്‌തമായ രീതികളിൽ [മൈനിംഗ്](/developers/docs/mining/) ഉപയോഗിച്ചിരുന്ന സമാനമായ ഉദ്ദേശ്യമാണ് സ്റ്റേക്കിംഗ് നിർവഹിക്കുന്നത്. ഇക്കണോമീസ് ഓഫ് സ്‌കെയിലിംഗിന്റെ ഫലമുണ്ടാക്കുകയും കേന്ദ്രീകരണം പ്രോത്സാഹിപ്പിക്കുകയും ചെയ്തുകൊണ്ട് മൈനിംഗ് ശക്തമായ ഹാർഡ്‌വെയറിന്റെയും ഊർജ്ജ ഉപഭോഗത്തിന്റെയും രൂപത്തിൽ വലിയ മുൻകൂർ അടച്ചുതീർക്കേണ്ട ചെലവുകൾ ആവശ്യപ്പെടുന്നു. ഒരു ആക്രമണത്തിന് ശേഷം മോശം ആക്റ്റർമാരെ ശിക്ഷിക്കുന്നതിനുള്ള പ്രോട്ടോക്കോളിന്റെ കഴിവ് പരിമിതപ്പെടുത്തിക്കൊണ്ട്, ഈടായി ആസ്തികൾ ലോക്ക് ചെയ്യേണ്ട യാതൊരു ആവശ്യവും മൈനിംഗിൽ ഉണ്ടായിരുന്നുമില്ല. - -പ്രൂഫ് ഓഫ് സ്റ്റേക്കിലേക്കുള്ള മാറ്റം Ethereum-ത്തെ പ്രൂഫ് ഓഫ് വർക്കുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ കൂടുതൽ സുരക്ഷിതവും വികേന്ദ്രീകൃതവുമാക്കി. നെറ്റ്‌വർക്കിൽ കൂടുതൽ ആളുകൾ പങ്കെടുക്കുമ്പോൾ, അത് കൂടുതൽ വികേന്ദ്രീകൃതവും ആക്രമണങ്ങളിൽ നിന്ന് സുരക്ഷിതവുമാകും. - - - ഒരു വാലിഡേറ്ററാകാനും Ethereum സുരക്ഷിതമാക്കാൻ സഹായിക്കാനും നിങ്ങൾക്ക് താൽപ്പര്യമുണ്ടെങ്കിൽ, സ്റ്റെയ്ക്കിങ് എന്നതിനെക്കുറിച്ച് കൂടുതലറിയുക. - - -### ഷാർഡിംഗിനായി സജ്ജമാക്കുന്നു {#setting-up-for-sharding} - -ഒറിജിനൽ Ethereum മെയിൻനെറ്റുമായി ബീക്കൺ ചെയിൻ ലയിച്ചതിനാൽ, നെറ്റ്‌വർക്ക് സ്കെയിലിംഗ് ചെയ്യുന്നതിന് Ethereum കമ്മ്യൂണിറ്റി അന്വേഷിക്കാൻ തുടങ്ങി. - -സ്റ്റേക്കിൽ ETH ഉള്ള ഓരോന്നിലും ഏത് സമയത്തും അംഗീകൃത ബ്ലോക്ക് പ്രൊഡ്യൂസർമാരുടെ ഒരു രജിസ്‌ട്രി ഉണ്ടായിരിക്കുക എന്നതിന്റെ നേട്ടം പ്രൂഫ് ഓഫ് സ്റ്റേക്കിനുണ്ട്. ഈ രജിസ്‌ട്രി വിഭജിക്കാനും തരണം ചെയ്യാനുമുള്ള കഴിവിന് വേദിയൊരുക്കുന്നു, എന്നാൽ പ്രത്യേക നെറ്റ്‌വർക്ക് ഉത്തരവാദിത്തങ്ങളെ വിശ്വസനീയമായി വിഭജിക്കുന്നു. - -ഈ ഉത്തരവാദിത്തം പ്രൂഫ് ഓഫ് വർക്കിൽ നിന്ന് വ്യത്യാസപ്പെട്ടിരിക്കുന്നു, ഇവിടെ മൈനർമാർക്ക് നെറ്റ്‌വർക്കിനോട് ഒരുവിധ ബാധ്യതയുമില്ല, മാത്രമല്ല അനന്തരഫലം ഒന്നുമില്ലാതെ തൽക്ഷണം മൈനിംഗ് നിർത്താനും അവരുടെ നോഡ് സോഫ്റ്റ്‌വെയർ ശാശ്വതമായി ഓഫാക്കാനും കഴിയും. അറിയപ്പെടുന്ന ബ്ലോക്ക് നിർദ്ദേശകരുടെ രജിസ്ട്രിയും നെറ്റ്‌വർക്ക് ഉത്തരവാദിത്തങ്ങൾ സുരക്ഷിതമായി വിഭജിക്കാനുള്ള മാർഗ്ഗവുമില്ല. - -[ഷാർഡിംഗിനെക്കുറിച്ച് കൂടുതൽ](/roadmap/danksharding/) - -## നവീകരണങ്ങൾ തമ്മിലുള്ള ബന്ധം {#relationship-between-upgrades} - -Ethereum അപ്‌ഗ്രേഡുകളെല്ലാം ഏതാണ്ട് പരസ്പരബന്ധിതമാണ്. അതിനാൽ ബീക്കൺ ചെയിൻ മറ്റ് അപ്‌ഗ്രേഡുകളെ എങ്ങനെ ബാധിക്കുന്നുവെന്ന് നമുക്ക് വീണ്ടും നോക്കാം. - -### ബീക്കൺ ചെയിനും ലയനവും {#merge-and-beacon-chain} - -ആദ്യം, Ethereum മെയിൻനെറ്റിൽ നിന്ന് വേറിട്ടായിരുന്നു ബീക്കൺ ചെയിൻ ഉണ്ടായിരുന്നത്, എന്നാൽ അവ 2022-ൽ ലയിച്ചു. - - - ലയനം - - -### ഷാർഡുകളും ബീക്കൺ ചെയിനും {#shards-and-beacon-chain} - -ഒരു പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് പൊതു രീതി ഉണ്ടെങ്കില്‍ മാത്രമേ ഷാർഡിംഗിന് സുരക്ഷിതമായി Ethereum ഇക്കോസിസ്റ്റത്തിലേക്ക് പ്രവേശിക്കാൻ കഴിയൂ. ബീക്കൺ ചെയിൻ സ്റ്റെയ്ക്കിങ് അവതരിപ്പിച്ചു, Ethereum-ത്തെ കൂടുതൽ വിപുലമാക്കാൻ സഹായിക്കുന്നതിന് ഷാർഡിംഗിന് വഴിയൊരുക്കിക്കൊണ്ട് അത് മെയിൻനെറ്റിൽ 'ലയിച്ചു'. - - - ഷാർഡ് ചെയിനുകള്‍ - - -## കൂടുതൽ വായനയ്ക്ക് - -- [Ethereum-ന്റെ ഭാവി അപ്‌ഗ്രേഡുകൾ സംബന്ധിച്ച് കൂടുതൽ](/roadmap/vision) -- [പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് സംബന്ധിച്ച് കൂടുതൽ](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/ml/roadmap/merge/index.md b/src/content/translations/ml/roadmap/merge/index.md deleted file mode 100644 index eeff32b31a7..00000000000 --- a/src/content/translations/ml/roadmap/merge/index.md +++ /dev/null @@ -1,224 +0,0 @@ ---- -title: ലയനം -description: മെയിൻനെറ്റ് Ethereum പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് സ്വീകരിച്ചപ്പോഴുള്ള ലയനം സംബന്ധിച്ച് അറിയുക. -lang: ml -template: upgrade -image: ../../../../../assets/upgrades/merge.png -summaryPoint1: Ethereum മെയിൻനെറ്റ് പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് ഉപയോഗിക്കുന്നു, എന്നാൽ ഇത് എല്ലായ്പ്പോഴും അങ്ങനെയായിരുന്നില്ല. -summaryPoint2: ഒറിജിനൽ പ്രൂഫ് ഓഫ് വർക്ക് രീതിയിൽ നിന്ന് പ്രൂഫ് ഓഫ് സ്റ്റേക്കിലേക്കുള്ള അപ്‌ഗ്രേഡിനെ ലയനം എന്ന് വിളിക്കപ്പെടുന്നു. -summaryPoint3: ഇപ്പോൾ ഒറ്റ ചെയിനായി നിലവിലുള്ള, ബീക്കൺ ചെയിൻ എന്നുവിളിക്കുന്ന ഒരു പ്രത്യേക പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് ബ്ലോക്ക്‌ചെയിനുമായി ലയിക്കുന്ന ഒറിജിനൽ Ethereum മെയിൻനെറ്റിനെ ആണ് ലയനം പരാമർശിക്കുന്നത്. -summaryPoint4: ലയനം Ethereum-ന്റെ ഊർജ്ജ ഉപഭോഗം ~99.95% കുറച്ചു. ---- - - - 2022 സെപ്റ്റംബർ 15-ന് ലയനം നടപ്പിലാക്കി. ഇത് ഔദ്യോഗികമായി പ്രൂഫ് ഓഫ് വർക്ക് ഒഴിവാക്കുകയും ഊർജ്ജ ഉപഭോഗം ~99.95% കുറയ്ക്കുകയും ചെയ്ത് Ethereum-ന്റെ പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് പൊതു രീതിയിലേക്കുള്ള മാറ്റം പൂർത്തിയാക്കി. - - -## എന്തായിരുന്നു ലയനം? {#what-is-the-merge} - -പുതിയ പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് പൊതു വരിയായ ബീക്കൺ ചെയിനുമായി Ethereum-ന്റെ ഒറിജിനൽ പ്രയോഗ വരിയുടെ ([ജെനിസിസ്](/history/#frontier) മുതൽ നിലനിന്നിരുന്ന മെയിൻനെറ്റ്) കൂടിച്ചേരലായിരുന്നു ലയനം. ഊർജ്ജ തീവ്ര മൈനിംഗിനുള്ള ആവശ്യകത ഇത് ഇല്ലാതാക്കുകയും, പകരം സ്റ്റേക്ക് ചെയ്ത ETH ഉപയോഗിച്ച് നെറ്റ്‌വർക്കിനെ സുരക്ഷിതമാക്കാൻ പ്രാപ്തമാക്കുകയും ചെയ്തു. Ethereum വീക്ഷണമായ കൂടുതൽ വിപുകരണം, സുരക്ഷ, സുസ്ഥിരത എന്നിവ സാക്ഷാത്കരിക്കുന്നതിനുള്ള ഒരു ശരിക്കും ആവേശകരമായ ചുവടുവെപ്പായിരുന്നു അത്. - - - -തുടക്കത്തിൽ, [ബീക്കൺ ചെയിൻ](/roadmap/beacon-chain/) എന്നതിനെ [മെയിൻനെറ്റിൽ](/glossary/#mainnet) നിന്ന് പ്രത്യേകം ഷിപ്പ് ചെയ്തു. [പ്രൂഫ് ഓഫ് സ്റ്റേക്ക്](/developers/docs/consensus-mechanisms/pos/) ഉപയോഗിച്ച് സമാന്തരമായി ബീക്കൺ ചെയിൻ പ്രവർത്തിപ്പിക്കുമ്പോൾ കൂടിയും [പ്രൂഫ് ഓഫ് വർക്ക്](/developers/docs/consensus-mechanisms/pow/) മുഖേന Ethereum മെയിൻനെറ്റ് - അതിന്റെ അക്കൗണ്ടുകളും ബാലൻസുകളും സ്‌മാർട്ട് കരാറുകളും ബ്ലോക്ക്‌ചെയിൻ നിലയും സഹിതം - സുരക്ഷിതമായി തുടരും. ഈ രണ്ട് സംവിധാനങ്ങളും അവസാനം ഒരുമിച്ചപ്പോൾ ആയിരുന്നു ലയനം, പ്രൂഫ് ഓഫ് വർക്ക് എന്നതിന്റെ സ്ഥാനത്ത് ശാശ്വതമായി പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് സ്ഥാപിക്കപ്പെട്ടു. - -ഒരു ഇന്റർസ്റ്റെല്ലാർ യാത്രയ്ക്ക് തികച്ചും തയ്യാറാകുന്നതിന് മുമ്പ് ലോഞ്ച് ചെയ്ത ഒരു ബഹിരാകാശ കപ്പലാണ് Ethereum എന്ന് സങ്കൽപ്പിക്കുക. ബീക്കൺ ചെയിൻ ഉപയോഗിച്ച് കമ്മ്യൂണിറ്റി ഒരു പുതിയ എഞ്ചിനും കഠിനമാക്കിയ ഹലും നിർമ്മിച്ചു. ഗൗരവതരമായ പരിശോധനയ്ക്ക് ശേഷം, പഴയ ഒരു മിഡ്-ഫ്ലൈറ്റിനായി പുതിയ എഞ്ചിൻ ഹോട്ട്-സ്വാപ്പ് ചെയ്യാനുള്ള സമയമായിരുന്നു ഇത്. ഇത് കുറച്ച് പ്രധാനമായ പ്രകാശവർഷങ്ങൾ സ്ഥാപിക്കലും സമ്പൂർണ്ണമായ പരിഗണനയും പ്രാപ്തമാക്കിക്കൊണ്ട് പുതിയതും കൂടുതൽ കാര്യക്ഷമവുമായ എഞ്ചിനെ നിലവിലുള്ള ഷിപ്പിലേക്ക് ലയിപ്പിച്ചു. - -## മെയിൻനെറ്റുമായുള്ള ലയനം {#merging-with-mainnet} - -ലയനം വരെ ജെനിസിസിൽ നിന്ന് പ്രൂഫ് ഓഫ് വർക്ക് Ethereum മെയിൻനെറ്റിനെ സുരക്ഷിതമാക്കി. നമ്മളെല്ലാം ഉപയോഗിക്കുന്നതും പരിചിതവുമായ ഇടപാടുകൾ, സ്‌മാർട്ട് കരാറുകൾ, അക്കൗണ്ടുകൾ മുതലായ സവിശേഷതകൾ സഹിതം Ethereum ബ്ലോക്ക്‌ചെയിൻ 2015 ജൂലൈയിൽ നിലവിൽ വരാൻ ഇത് ഇടയാക്കി. - -Ethereum-ന്റെ ചരിത്രത്തിൽ ഉടനീളം, പ്രൂഫ് ഓഫ് വർക്കിൽ നിന്ന് പ്രൂഫ് ഓഫ് സ്റ്റേക്കിലേക്കുള്ള ഒരു അന്തിമമായ മാറ്റത്തിന് ഡെവലപ്പർമാർ തയ്യാറെടുത്തു. 2020 ഡിസംബർ 1-ന്, സമാന്തരമായി പ്രവർത്തിക്കുന്ന മെയിൻനെറ്റിന് പ്രത്യേകമായിട്ടുള്ള ഒരു ബ്ലോക്ക്‌ചെയിൻ ആയി ബീക്കൺ ചെയിൻ സൃഷ്ടിക്കപ്പെട്ടു. - -ബീക്കൺ ചെയിൻ യഥാർത്ഥത്തിൽ മെയിൻനെറ്റ് ഇടപാടുകൾ പ്രോസസ്സ് ചെയ്തിരുന്നില്ല. പകരം, സജീവ വാലിഡേറ്റർമാരെയും അവരുടെ അക്കൗണ്ട് ബാലൻസുകളേയും അംഗീകരിച്ചുകൊണ്ട് സ്വന്തം നിലയിൽ അത് ഒരു പൊതു രീതിയിൽ എത്തുകയായിരുന്നു. വിപുലമായ പരിശോധനയ്ക്ക് ശേഷം, യഥാർത്ഥ സാഹചര്യങ്ങളിലുള്ള ഡാറ്റയിലെ പൊതു രീതിയിലേക്ക് ബീക്കൺ ചെയിൻ എത്താനുള്ള സമയമായി. ലയനത്തിന് ശേഷം, പ്രയോഗ വരി ഇടപാടുകളും അക്കൗണ്ട് ബാലൻസുകളും ഉൾപ്പെടെ എല്ലാ നെറ്റ്‌വർക്ക് ഡാറ്റയുടെയും പൊതു എഞ്ചിനായി ബീക്കൺ ചെയിൻ മാറി. - -ബ്ലോക്ക് പ്രൊഡക്ഷന്റെ എഞ്ചിനായി ബീക്കൺ ചെയിൻ ഉപയോഗിക്കാനുള്ള ഔദ്യോഗിക സ്വിച്ചിനെയാണ് ലയനം പ്രതിനിധീകരിക്കുന്നത്. മൈനിംഗ് എന്നത് ഇനി സാധുവായ ബ്ലോക്കുകൾ ഉൽപ്പാദിപ്പിക്കുന്നതിനുള്ള മാർഗ്ഗമല്ല. പകരം, പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് വാലിഡേറ്റർമാർ ഈ ചുമതല സ്വീകരിച്ചുവെന്ന് മാത്രമല്ല ഇപ്പോൾ എല്ലാ ഇടപാടുകളുടെയും സാധുത പ്രോസസ്സ് ചെയ്യുന്നതിനും ബ്ലോക്കുകൾ നിർദ്ദേശിക്കുന്നതിനും ഉത്തരവാദിത്തവുമുണ്ട്. - -ലയനത്തിൽ ചരിത്രപരമായത് ഒന്നും നഷ്ടപ്പെട്ടില്ല. ബീക്കൺ ചെയിനുമായി മെയിൻനെറ്റ് ലയിച്ചതിനാൽ, Ethereum-ന്റെ മുഴുവൻ ഇടപാട് ചരിത്രവും ലയിപ്പിക്കപ്പെട്ടു. - - -പ്രൂഫ് ഓഫ് സ്റ്റേക്കിലേക്കുള്ള ഈ മാറ്റം ഈതർ ഇഷ്യൂ ചെയ്യുന്ന രീതി മാറ്റി. ലയനത്തിന് മുമ്പും ശേഷവുമുള്ള ഈതർ ഇഷ്യു ചെയ്യൽ സംബന്ധിച്ച് കൂടുതലറിയുക. - - -### ഉപയോക്താക്കളും ഹോൾഡർമാരും {#users-holders} - -**ഹോൾഡർമാർക്കും/ഉപയോക്താക്കക്കും ലയനം എന്തെങ്കിലും മാറ്റമുണ്ടാക്കില്ല.** - -_ഇക്കാര്യം ആവർത്തിക്കുന്നു_: ETH-ന്റെ അല്ലെങ്കിൽ Ethereum-ലെ മറ്റേതെങ്കിലും ഡിജിറ്റൽ ആസ്ഥിയുടെ ഉപയോക്താവ് അല്ലെങ്കിൽ ഹോൾഡർ അതുപോലെ നോൺ-നോഡ് ഓപ്പറേറ്റിംഗ് സ്റ്റേക്കർമാർ എന്ന നിലയിൽ, **ലയത്തിനായി അക്കൗണ്ടിലേക്ക് നിങ്ങളുടെ ഫണ്ടുകൾ അല്ലെങ്കിൽ വാലറ്റ് ഉപയോഗിച്ച് നിങ്ങൾ ഒന്നും ചെയ്യേണ്ടതില്ല.** ETH എന്നത് ETH മാത്രമാണ്. "പഴയ ETH"/"പുതിയ ETH" അല്ലെങ്കിൽ "ETH1"/"ETH2" എന്നിങ്ങനെയൊന്നുമില്ല, ലയനത്തിന് ശേഷം വാലറ്റുകൾ മുമ്പത്തേത് പോലെ തന്നെ പ്രവർത്തിക്കും—മറ്റുവിധത്തിൽ നിങ്ങളോട് പറയുന്ന ആളുകൾ തട്ടിപ്പുകാർ ആയിരിക്കാൻ സാധ്യതയുണ്ട്. - -പ്രൂഫ് ഓഫ് വർക്ക് ഒഴിവാക്കിയാൽ കൂടിയും, പ്രൂഫ് ഓഫ് സ്റ്റേക്കിലേക്കുള്ള മാറ്റത്തിലൂടെ തുടക്കം മുതലുള്ള Ethereum-ന്റെ മുഴുവൻ ചരിത്രവും മാറ്റമില്ലാതെ തുടരും. ലയനത്തിന് മുമ്പ് നിങ്ങളുടെ വാലറ്റിൽ സൂക്ഷിച്ചിരിക്കുന്ന എല്ലാ ഫണ്ടുകളും തുടർന്നും ആക്‌സസ് ചെയ്യാൻ കഴിയും. **അപ്‌ഗ്രേഡ് ചെയ്യുന്നതിന് നിങ്ങളുടെ ഭാഗത്തുനിന്ന് ഒരു നടപടിയും ആവശ്യമില്ല.** - -[Ethereum സുരക്ഷ സംബന്ധിച്ച് കൂടുതൽ](/security/#eth2-token-scam) - -### നോഡ് ഓപ്പറേറ്റർമാരും വികേന്ദ്രീകൃത ആപ്ലിക്കേഷൻ (dapp) ഡെവലപ്പർമാരും {#node-operators-dapp-developers} - - - -പ്രധാന പ്രവർത്തന ഇനങ്ങളിൽ ഉൾപ്പെടുന്നവ: - -1. ഒരു പൊതു കക്ഷിയും പ്രയോഗ കക്ഷിയും പ്രവർത്തിപ്പിക്കുക; പ്രയോഗ ഡാറ്റ കരസ്ഥമാക്കുന്നതിനുള്ള മൂന്നാം കക്ഷി എൻഡ്‌പോയിന്റുകൾ ലയനം മുതൽ ഇനി പ്രവർത്തിക്കില്ല. -2. സുരക്ഷിതമായി ആശയവിനിമയം നടത്താൻ സാധിക്കുന്നതിന് ഒരു പങ്കിട്ട JWT രഹസ്യം ഉപയോഗിച്ച് പ്രയോഗ, പൊതു കക്ഷികളെ ആധികാരികമാക്കുക. -3. നിങ്ങളുടെ സമ്പാദിച്ച ഇടപാട് ഫീസ് ടിപ്പുകൾ/MEV ലഭിക്കുന്നതിന് ഒരു `ഫീ സ്വീകർത്താവ്` വിലാസം സജ്ജമാക്കുക. - -മേൽപ്പറഞ്ഞ ആദ്യത്തെ രണ്ട് ഇനങ്ങൾ പൂർത്തിയാകാതിരിക്കുന്നത് രണ്ട് വരികളും സമന്വയിപ്പിക്കുകയും ആധികാരികമാക്കുകയും ചെയ്യുന്നതുവരെ നിങ്ങളുടെ നോഡ് "ഓഫ്‌ലൈൻ" ആയി കാണുന്നതിന് ഇടയാക്കും. - -ഒരു `ഫീ സ്വീകർത്താവ്` സജ്ജമാക്കാതിരിക്കുന്നത്, നിങ്ങളുടെ വാലിഡേറ്ററെ തുടർന്നും സാധാരണ പോലെ പ്രതികരിക്കാൻ അനുവദിക്കും, എന്നാൽ അൺബേൺഡ് ടിപ്പുകളും ബ്ലോക്കുകളിൽ നിങ്ങൾക്ക് മറ്റുവിധത്തിൽ സമ്പാദിക്കാൻ കഴിയുന്ന, നിങ്ങളുടെ വാലിഡേറ്റർ നിർദ്ദേശിക്കുന്ന ഏതൊരു MEV-കളും നഷ്ടമാകും. - - - - -ലയനം വരെ, നെറ്റ്‌വർക്ക് ഗോസിപ്പ് ചെയ്യുന്ന ബ്ലോക്കുകൾ സ്വീകരിക്കാനും ശരിയായി സാധൂകരിക്കാനും പ്രചരിപ്പിക്കാനും ഒരു പ്രയോഗ കക്ഷി (Geth, Erigon, Besu അല്ലെങ്കിൽ Nethermind പോലുള്ളവ) മാത്രം മതിയായിരുന്നു. _ലയനത്തിന് ശേഷം_, ഒരു പ്രയോഗ പേലോഡിൽ അടങ്ങിയിരിക്കുന്ന ഇടപാടുകളുടെ സാധുത ഇപ്പോൾ അതിൽ അടങ്ങിയിരിക്കുന്ന "പൊതു ബ്ലോക്കിന്റെ" സാധുതയെ ആശ്രയിച്ചിരിക്കുന്നു. - -തൽഫലമായി, ഒരു പൂർണ്ണ Ethereum നോഡിന് ഇപ്പോൾ ഒരു പ്രയോഗ കക്ഷിയും ഒരു പൊതു കക്ഷിയും ആവശ്യമാണ്. ഈ രണ്ട് ക്ലയന്റുകളും ഒരു പുതിയ എഞ്ചിൻ API ഉപയോഗിച്ച് ഒരുമിച്ച് പ്രവർത്തിക്കുന്നു. എഞ്ചിൻ API-യ്ക്ക് ഒരു JWT രഹസ്യം ഉപയോഗിച്ചുള്ള ആധികാരികമാക്കൽ ആവശ്യമാണ്, അത് സുരക്ഷിത ആശയവിനിമയം അനുവദിച്ചുകൊണ്ട് രണ്ട് ക്ലയന്റുകൾക്കും നൽകിയിരിക്കുന്നു. - -പ്രധാന പ്രവർത്തന ഇനങ്ങളിൽ ഉൾപ്പെടുന്നവ: - -- ഒരു പൊതു കക്ഷിക്ക് പുറമേ ഒരു പ്രയോഗ കക്ഷിയും ഇൻസ്റ്റാൾ ചെയ്യുക -- പരസ്‌പരം സുരക്ഷിതമായി ആശയവിനിമയം നടത്താൻ സാധിക്കുന്നതിന് ഒരു പങ്കിട്ട JWT രഹസ്യം ഉപയോഗിച്ച് പ്രയോഗ, പൊതു കക്ഷികൾ ആധികാരികമാക്കുക. - -മേൽപ്പറഞ്ഞ ഇനങ്ങൾ പൂർത്തിയാകാതിരിക്കുന്നത് രണ്ട് വരികളും സമന്വയിപ്പിക്കുകയും ആധികാരികമാക്കുകയും ചെയ്യുന്നതുവരെ നിങ്ങളുടെ നോഡ് "ഓഫ്‌ലൈൻ" ആയി കാണുന്നതിന് ഇടയാക്കും. - - - - - -പൊതു രീതിയിലെ മാറ്റങ്ങളോടെയാണ് ലയനം, ഇതിൽ ഇനിപ്പറയുന്നമായി ബന്ധപ്പെട്ട മാറ്റങ്ങളും ഉൾപ്പെടുന്നു: - -- ബ്ലോക്ക് ഘടന -- സ്ലോട്ട്/ബ്ലോക്ക് ടൈമിംഗ് -- ഓപ്‌കോഡ് മാറ്റങ്ങൾ -- ഓൺ-ചെയിൻ ക്രമരഹിതത്തിന്റെ ഉറവിടങ്ങൾ -- _സേഫ് ഹെഡ്_, _ഫൈനലൈസ്ഡ് ബ്ലോക്കുകൾ_ എന്ന ആശയം - -കൂടുതൽ വിവരങ്ങൾക്ക്, ടിം ബെയ്‌ക്കോയുടെ ഈ ബ്ലോഗ് പോസ്റ്റ് പരിശോധിക്കുക [Ethereum-ന്റെ ആപ്ലിക്കേഷൻ വരിയിൽ ലയനം ഉണ്ടാക്കിയ സ്വാധീനം](https://blog.ethereum.org/2021/11/29/how-the-merge-impacts-app-layer/). - - -## ലയനവും ഊർജ്ജ ഉപഭോഗവും {#merge-and-energy} - -ലയനം Ethereum-നുള്ള പ്രൂഫ് ഓഫ് വർക്കിന്റെ അവസാനത്തെ സൂചിപ്പിക്കുകയും, കൂടുതൽ സുസ്ഥിരവും പരിസ്ഥിതി സൗഹൃദവുമായ Ethereum-ത്തിനുള്ള യുഗം ആരംഭിക്കുകയും ചെയ്യും. Ethereum-ത്തെ ഒരു ഗ്രീൻ ബ്ലോക്ക്‌ചെയിനാക്കി മാറ്റിക്കൊണ്ട് Ethereum-ന്റെ ഊർജ്ജ ഉപഭോഗം ഏകദേശം 99.95% കുറഞ്ഞു. [Ethereum ഊർജ്ജ ഉപഭോഗം](/energy-consumption/) സംബന്ധിച്ച് കൂടുതലറിയുക. - -## ലയനവും സ്കെയിലിംഗും {#merge-and-scaling} - -[Ethereum വീക്ഷണത്തിൽ](/roadmap/vision/) വ്യക്തമാക്കിയിട്ടുള്ള മുഴുവൻ സ്കെയിലും സുരക്ഷയും സുസ്ഥിരതയും കൈവരിക്കുന്നതിന് ഒരു പടി കൂടി Ethereum-ത്തെ അടുപ്പിച്ചുകൊണ്ട് പ്രൂഫ് ഓഫ് വർക്കിന് കീഴിൽ സാധ്യമാകാത്ത കൂടുതൽ വിപുലീകൃത അപ്‌ഗ്രേഡുകൾ ലയനം സാധ്യമാക്കി. - -## ലയനം സംബന്ധിച്ച തെറ്റിദ്ധാരണകൾ {#misconceptions} - - -രണ്ട് തരം Ethereum നോഡുകൾ ഉണ്ട്: ബ്ലോക്കുകൾ നിർദ്ദേശിക്കാൻ കഴിയുന്ന നോഡുകളും അങ്ങനെയല്ലാത്ത നോഡുകളും. - -Ethereum-ലെ ആകെ നോഡുകളുടെ ഒരു ചെറിയ എണ്ണം മാത്രമാണ് ബ്ലോക്കുകൾ നിർദ്ദേശിക്കുന്ന നോഡുകൾ. ഈ വിഭാഗത്തിൽ പ്രൂഫ് ഓഫ് വർക്കിന് (PoW) കീഴിലുള്ള മൈനിംഗ് നോഡുകളും പ്രൂഫ് ഓഫ് സ്റ്റേക്കിന് (PoS) കീഴിലുള്ള വാലിഡേറ്റർ നോഡുകളും ഉൾപ്പെടുന്നു. ഈ വിഭാഗത്തിന് അടുത്ത ബ്ലോക്ക് ഇടയ്‌ക്കിടെ നിർദ്ദേശിക്കാനും പ്രോട്ടോക്കോൾ റിവാർഡുകൾ നേടാനുമുള്ള കഴിവിന് പകരമായി സാമ്പത്തിക റിസോഴ്‌സുകൾ (പ്രൂഫ് ഓഫ് വർക്കിൽ GPU ഹാഷ് പവർ അല്ലെങ്കിൽ പ്രൂഫ് ഓഫ് സ്റ്റേക്കിൽ സ്റ്റേക്ക്ഡ് ETH പോലുള്ളവ) ചുമതപ്പെടുത്തേണ്ടത് ആവശ്യമാണ്. - -നെറ്റ്‌വർക്കിലെ മറ്റ് നോഡുകൾ (അതായത്, ഭൂരിപക്ഷം) 1-2 TB ലഭ്യമായ സ്റ്റോറേജും ഇന്റർനെറ്റ് കണക്ഷനും ഉള്ള ഒരു ഉപഭോക്തൃ-ഗ്രേഡ് കമ്പ്യൂട്ടറിനപ്പുറം സാമ്പത്തിക റിസോഴ്‌സുകളൊന്നും ചുമതപ്പെടുത്തേണ്ട ആവശ്യമില്ല. ഈ നോഡുകൾ ബ്ലോക്കുകൾ നിർദ്ദേശിക്കുന്നില്ല, എന്നാൽ നെറ്റ്‌വർക്ക് പൊതു നിയമങ്ങൾ അനുസരിച്ച് പുതിയ ബ്ലോക്കുകൾക്കായി ശ്രദ്ധിക്കുകയും എത്തിച്ചേരുമ്പോൾ അവയുടെ സാധുത പരിശോധിച്ചുറപ്പിക്കുകയും ചെയ്തുകൊണ്ട് എല്ലാ ബ്ലോക്ക് പ്രൊപ്പോസർമാരെയും ഉത്തരവാദിത്തപ്പെടുത്തി നെറ്റ്‌വർക്ക് സുരക്ഷിതമാക്കുന്നതിൽ അവ ഇപ്പോഴും നിർണ്ണായകമായ പങ്ക് വഹിക്കുന്നു. ബ്ലോക്ക് സാധുവാണെങ്കിൽ, നോഡ് അത് നെറ്റ്‌വർക്കിലൂടെ വ്യാപിക്കുന്നത് തുടരുന്നു. ഏതെങ്കിലും കാരണത്താൽ ബ്ലോക്ക് അസാധുവാണെങ്കിൽ, നോഡ് സോഫ്‌റ്റ്‌വെയർ അതിനെ അസാധുവായി അവഗണിക്കുകയും അതിന്റെ വ്യാപനം നിർത്തുകയും ചെയ്യും. - -ഒരു നോൺ-ബ്ലോക്ക്-പ്രൊഡ്യൂസിംഗ് നോഡ് പ്രവർത്തിപ്പിക്കുന്നത് ഏതൊരു പൊതു രീതിക്ക് കീഴിലും ആർക്കും സാധ്യമാണ് (പ്രൂഫ് ഓഫ് വർക്ക് അല്ലെങ്കിൽ പ്രൂഫ് ഓഫ് സ്റ്റേക്ക്); അനുവദിക്കപ്പെടുന്നെങ്കിൽ എല്ലാ ഉപയോക്താക്കൾക്കായും ഇത് _ശക്തമായി പ്രോത്സാഹിപ്പിക്കുന്നു_. ഒരു നോഡ് പ്രവർത്തിപ്പിക്കുന്നത് Ethereum-ന് വളരെ വിലപ്പെട്ടതാണ്, കൂടാതെ മെച്ചപ്പെടുത്തിയ സുരക്ഷയും സ്വകാര്യതയും സെൻസർഷിപ്പ് പ്രതിരോധവും പോലെ അത് പ്രവർത്തിപ്പിക്കുന്ന ഏതൊരു വ്യക്തിക്കും അധിക ആനുകൂല്യങ്ങൾ നൽകുന്നു. - -Ethereum നെറ്റ്‌വർക്കിന്റെ വികേന്ദ്രീകരണം പരിപാലിക്കാൻ സ്വന്തം നോഡ് പ്രവർത്തിപ്പിക്കാനുള്ള കഴിവ് ഏതൊരാൾക്കും _തികച്ചും അത്യാവശ്യമാണ്_. - -[നിങ്ങളുടെ സ്വന്തം നോഡ് പ്രവർത്തിപ്പിക്കുന്നത് സംബന്ധിച്ച് കൂടുതൽ](/run-a-node/) - - - - -നെറ്റ്‌വർക്കിന്റെ ശേഷിയുമായി ബന്ധപ്പെട്ട നെറ്റ്‌വർക്ക് ഡിമാൻഡിന്റെ ഫലമാണ് ഗ്യാസ് ഫീസ്. പൊതു രീതിക്കുള്ള പ്രൂഫ് ഓഫ് സ്റ്റേക്കിലേക്ക് മാറിക്കൊണ്ട് ലയനം പ്രൂഫ് ഓഫ് വർക്കിന്റെ ഉപയോഗം ഒഴിവാക്കി, എന്നാൽ നെറ്റ്‌വർക്ക് ശേഷിയെയോ ത്രൂപുട്ടിനെയോ നേരിട്ട് സ്വാധീനിക്കുന്ന പാരാമീറ്ററുളെയൊന്നും കാര്യമായി മാറ്റിയില്ല. - -ഒരു [റോളപ്പ്-കേന്ദ്രീകൃത റോഡ്മാപ്പ്](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698) ഉപയോഗിച്ച്, [വരി-2](/വരി-2/)-ൽ ഉപയോക്തൃ ആക്റ്റിവിറ്റി അളക്കുന്നതിലാണ് ശ്രമങ്ങൾ കേന്ദ്രീകരിക്കുന്നത്, അതേസമയം റോളപ്പ് ഇടപാടുകൾ വളരെ ചെലവ് കുറഞ്ഞതാക്കാൻ സഹായിക്കുന്നതിന് റോളപ്പ് ഡാറ്റ സംഭരണത്തിനായി ഒപ്റ്റിമൈസ് ചെയ്‌ത ഒരു സുരക്ഷിത വികേന്ദ്രീകൃത സെറ്റിൽമെന്റ് വരിയായി വരി 1 മെയിൻനെറ്റ് പ്രാപ്‌തമാക്കുന്നു. ഇത് പൂർത്തീകരിക്കുന്നതിനുള്ള ഒരു നിർണ്ണായക സൂചനയാണ് പ്രൂഫ് ഓഫ് സ്റ്റേക്കിലേക്കുള്ള മാറ്റം. [ഗ്യാസിനെയും ഫീസിനെയും കുറിച്ച് കൂടുതൽ.](/developers/docs/gas/) - - - -ഒരു ഇടപാടിന്റെ "വേഗത" ഒരു ബ്ലോക്കിൽ ഉൾപ്പെടുത്തേണ്ട സമയവും അന്തിമമാക്കാനുള്ള സമയവും ഉൾപ്പെടെ ഏതാനും മാർഗ്ഗങ്ങളിലൂടെ അളക്കാൻ കഴിയും. ഇവ രണ്ടും ചെറുതായി മാറുന്നു, എന്നാൽ ഉപയോക്താക്കൾ ശ്രദ്ധിക്കുന്ന ഒരു രീതിയിലല്ല. - -ചരിത്രപരമായി, പ്രൂഫ് ഓഫ് വർക്കിൽ, ഓരോ ~13.3 സെക്കൻഡിലും ഒരു പുതിയ ബ്ലോക്ക് എന്നതായിരുന്നു ലക്ഷ്യം. പ്രൂഫ് ഓഫ് സ്റ്റേക്കിൽ, ഓരോ 12 സെക്കൻഡിലും കൃത്യമായി സ്ലോട്ടുകൾ സംഭവിക്കും, അതിൽ ഓരോന്നും ഒരു ബ്ലോക്ക് പ്രസിദ്ധീകരിക്കാൻ വാലിഡേറ്റർക്കുള്ള അവസരമാണ്. മിക്ക സ്ലോട്ടുകളിലും ബ്ലോക്കുകളുണ്ട്, എന്നാൽ എല്ലാം അനിവാര്യമല്ല (അതായത്, ഒരു വാലിഡേറ്റർ ഓഫ്‌ലൈനാണ്). പ്രൂഫ് ഓഫ് സ്റ്റേക്കിൽ, പ്രൂഫ് ഓഫ് വർക്കിനേക്കാൾ ~10% കൂടുതൽ ഇടവിട്ട് ബ്ലോക്കുകൾ നിർമ്മിക്കപ്പെടുന്നു. ഇത് ഉപയോക്താക്കൾ ശ്രദ്ധിക്കാൻ ഇടയില്ലാത്ത വളരെ നിസാരമായ ഒരു മാറ്റമായിരുന്നു. - -പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് മുമ്പ് ഇല്ലാതിരുന്ന ഇടപാട് അന്തിമനില ആശയം അവതരിപ്പിച്ചു. പ്രൂഫ് ഓഫ് വർക്കിൽ, ഒരു ഇടപാടിന് മുകളിൽ മൈൻ ചെയ്യുന്ന ഓരോ പാസിംഗ് ബ്ലോക്കിലും ഒരു ബ്ലോക്ക് റിവേഴ്‌സ് ചെയ്യാനുള്ള കഴിവ് തീർത്തും ബുദ്ധിമുട്ടായിരുന്നു, എന്നാൽ അത് ഒരിക്കലും പൂജ്യത്തിൽ എത്തുന്നില്ല. പ്രൂഫ് ഓഫ് സ്റ്റേക്കിൽ, വാലിഡേറ്റർമാർ വോട്ട് ചെയ്യുന്ന ഈപോച്ചുകളിലേക്ക് (ബ്ലോക്കുകൾക്കുള്ള 32 അവസരങ്ങൾ അടങ്ങിയ 6.4 മിനിറ്റ് സമയം) ബ്ലോക്കുകൾ ബണ്ടിൽ ചെയ്യുന്നു. ഒരു കാലം അവസാനിക്കുമ്പോൾ, വാലിഡേറ്റർമാർ കാലം 'ന്യായീകരിക്കത്തക്കത്' ആയി പരിഗണിക്കണോ എന്ന് വോട്ട് ചെയ്യുന്നു. വാലിഡേറ്റർമാർ കാലത്തിനെ ന്യായീകരിക്കാൻ സമ്മതിക്കുകയാണെങ്കിൽ, അത് അടുത്ത കാലത്തിൽ അന്തിമമാക്കപ്പെടും. ആകെ സ്റ്റേക്ക് ചെയ്ത ETH-ന്റെ മൂന്നിലൊന്ന് കരസ്ഥമാക്കുകയും ബേൺ ചെയ്യുകയും ചെയ്യുന്നതിനാൽ അന്തിമമാക്കിയ ഇടപാടുകൾ പഴയപടിയാക്കുന്നത് സാമ്പത്തികമായി ലാഭകരമല്ല. - - - - -സ്റ്റേക്ക് ചെയ്ത ETH-ഉം സ്റ്റെയ്ക്കിങ് റിവാർഡുകളും പിൻവലിക്കുന്നത് അസാധ്യമാക്കി ലോക്ക് ചെയ്തതായി തുടരും. വരാനിരിക്കുന്ന ഷാങ്‌ഹായ് അപ്‌ഗ്രേഡിനായി പിൻവലിക്കലുകൾ ആസൂത്രണം ചെയ്തിട്ടുണ്ട്. - - - -ഷാങ്ഹായ് അപ്‌ഗ്രേഡ് വരെ പിൻവലിക്കലുകൾ പ്രാപ്‌തമാക്കിയിട്ടില്ലെന്ന മേൽപ്പറഞ്ഞ കുറിപ്പിന് ഇത് വിരുദ്ധമായി തോന്നാം, എന്നാൽ ബ്ലോക്ക് പ്രൊപ്പോസലുകളുടെ സമയത്ത് നേടിയ ഫീസ് റിവാർഡുകൾ/MEV എന്നിവയിലേക്ക് വാലിഡേറ്ററുകൾക്ക് ഉടനടി ആക്‌സസ് ഉണ്ട്. - -പൊതു രീതിയിലേക്ക് സംഭാവന നൽകാൻ വാലിഡേറ്റർമാർക്ക് ഒരു റിവാർഡായി പ്രോട്ടോക്കോൾ ETH ഇഷ്യൂ ചെയ്യുന്നു. പുതുതായി ഇഷ്യൂ ചെയ്ത ETH-നായി വാലിഡേറ്റർക്ക് സ്റ്റേക്ക് ചെയ്ത ETH-ഉം പ്രോട്ടോക്കോൾ റിവാർഡുകളും ഉള്ള ഒരു സവിശേഷമായ വിലാസമുള്ള പൊതു വരി അക്കൗണ്ടുകൾ. ഷാങ്ഹായ് വരെ ഈ ETH ലോക്ക് ചെയ്തിരിക്കുന്നു. - -പ്രയോഗ വരിയിലെ ETH പൊതു വരിയിൽ നിന്ന് പ്രത്യേകമായി കണക്കാക്കുന്നു. Ethereum മെയിൻനെറ്റിൽ ഉപയോക്താക്കൾ ഇടപാടുകൾ നടത്തുമ്പോൾ, വാലിഡേറ്റർക്കുള്ള ടിപ്പ് ഉൾപ്പെടെ, ഗ്യാസ് കവർ ചെയ്യുന്നതിന് ETH നൽകണം. ഈ ETH ഇതിനകം തന്നെ പ്രയോഗ വരിയിലാണ്, പ്രോട്ടോക്കോൾ വഴി പുതുതായി നൽകുന്നതല്ല, വാലിഡേറ്ററിന് ഉടനടി ലഭ്യവുമാണ് (ക്ലയന്റ് സോഫ്‌റ്റ്‌വെയറിൽ ശരിയായ `ഫീ സ്വീകർത്താവ്` വിലാസം നൽകുന്ന സാഹചര്യത്തിൽ). - - - -ഷാങ്ഹായ് അപ്‌ഗ്രേഡ് പിൻവലിക്കലുകൾ പ്രാപ്‌തമാക്കിയ ശേഷം, 32 ETH-ന് മുകളിലുള്ള സ്റ്റെയ്ക്കിങ് ബാലൻസ് പിൻവലിക്കാൻ എല്ലാ വാലിഡേറ്റർമാരെയും പ്രേരിപ്പിക്കും, കാരണം ഈ ഫണ്ടുകൾ ആദായത്തിലേക്ക് ചേർക്കുന്നില്ല, മറ്റുവിധത്തിൽ ലോക്ക് ചെയ്യുന്നുമില്ല. APR-നെ ആശ്രയിച്ച് (സ്റ്റേക്ക് ചെയ്ത ആകെ ETH വഴി നിർണ്ണയിച്ചത്) അനുസരിച്ച്, അവരുടെ മുഴുവൻ ബാലൻസും വീണ്ടും ക്ലെയിം ചെയ്യുന്നതിന് അല്ലെങ്കിൽ കൂടുതൽ ആദായത്തിന് അവരുടെ റിവാർഡുകൾ ഉപയോഗിച്ച് സംഭവ്യമായി കൂടുതൽ സ്റ്റേക്ക് ചെയ്യാൻ വാലിഡേറ്ററിൽ(കൾ) നിന്ന് പുറത്തുകടക്കാൻ അവരെ പ്രേരിപ്പിച്ചേക്കാം. - -ഇവിടെ ശ്രദ്ധിക്കേണ്ട ഒരു പ്രധാന കാര്യം, പൂർണ്ണ വാലിഡേറ്റർ എക്‌സിറ്റുകൾ പ്രോട്ടോക്കോൾ വഴി പരിമിതപ്പെടുത്തിയിരിക്കുന്നു എന്നതാണ്, അതിനാൽ ഓരോ കാലവും ആറ് വാലിഡേറ്റർമാർ മാത്രമേ ഉണ്ടാകൂ (ഓരോ 6.4 മിനിറ്റിലും, അതിനാൽ പ്രതിദിനം 1350, അല്ലെങ്കിൽ സ്റ്റേക്ക് ചെയ്ത 10 ദശലക്ഷത്തിലധികം ETH-ൽ പ്രതിദിനം ~43,200 ETH മാത്രം). സ്റ്റേക്ക് ചെയ്ത ആകെ ETH-നെ ആശ്രയിച്ച് ഈ നിരക്ക് പരിധി ക്രമീകരിക്കുകയും ഫണ്ടുകളുടെ കൂട്ട പ്രയാണം തടയുകയും ചെയ്യുന്നു. കൂടാതെ, പ്രോട്ടോക്കോൾ സ്ലാഷിംഗ് പെനാൽറ്റി നടപ്പിലാക്കുന്നതിന് മുമ്പ് ഒരു സാധ്യതയുള്ള അറ്റാക്കർ ഒരു കുറവുവരുത്തൽ കുറ്റം ചെയ്യാനും സമാന കാലത്തിലെ ഒരു മുഴുവൻ സ്റ്റെയ്ക്കിംങിൽ നിന്ന് പുറത്തുകടക്കാനും അവരുടെ സ്റ്റേക്ക് ഉയോഗിക്കുന്നത് തടയുന്നു. - -നെറ്റ്‌വർക്ക് സുരക്ഷിതമാക്കാൻ സഹായിക്കുന്നതിന് അവർ എത്ര പണം നൽകാൻ തയ്യാറാണ് എന്നതിനെ സന്തുലിതമാക്കാൻ സ്റ്റേക്കർമാരുടെ ഒരു വിപണിയെ അനുവദിച്ചുകൊണ്ട് APR ഉദ്ദേശപരമായി തന്നെ ചലനാത്മകമാണ്. പിൻവലിക്കൽ പ്രാപ്‌തമാക്കുമ്പോൾ, നിരക്ക് വളരെ കുറവാണെങ്കിൽ, പ്രോട്ടോക്കോൾ മുഖേന പരിമിതപ്പെടുത്തിയ ഒരു നിരക്കിൽ വാലിഡേറ്റർമാർ പുറത്തുകടക്കും. ക്രമേണ, പുതിയ അല്ലെങ്കിൽ തിരികെ വരുന്ന സ്റ്റേക്കർമാരെ വീണ്ടും ആകർഷിച്ചുകൊണ്ട് ഇത് ശേഷിക്കുന്ന എല്ലാവർക്കുമായി APR സൃഷ്ടിക്കും. - - -## 'Eth2' എന്നതിന് എന്ത് സംഭവിച്ചു? {#eth2} - -'Eth2' എന്ന പദം ഒഴിവാക്കി. 'Eth1', 'Eth2' എന്നിവയെ ഒരൊറ്റ ശൃംഖലയിലേക്ക് ലയിപ്പിച്ച ശേഷം, ഇനിമേൽ രണ്ട് Ethereum നെറ്റ്‌വർക്കുകൾ തമ്മിൽ വേർതിരിക്കേണ്ട ആവശ്യമില്ല; Ethereum മാത്രമാണ് ഉള്ളത്. - -ആശയക്കുഴപ്പം കുറയ്ക്കാൻ, കമ്മ്യൂണിറ്റി ഈ പദങ്ങൾ അപ്ഡേറ്റ് ചെയ്തിട്ടുണ്ട്: - -- ഇടപാടുകളും പ്രയോഗവും കൈകാര്യം ചെയ്യുന്ന 'പ്രയോഗ വരി' ആണ് 'Eth1' ഇപ്പോൾ. -- പ്രൂഫ് ഓഫ് സ്റ്റേക്ക് കൺസെൻസസ് കൈകാര്യം ചെയ്യുന്ന 'പൊതു വരി' ആണ് 'Eth2' ഇപ്പോൾ. - -ഈ പദാവലി അപ്‌ഡേറ്റുകൾ പേരുനൽകൽ സമ്പ്രദായങ്ങളെ മാത്രമാണ് മാറ്റുന്നത്; ഇത് Ethereum-ന്റെ ലക്ഷ്യങ്ങളെയോ റോഡ്‌മാപ്പിനെയോ മാറ്റുന്നില്ല. - -['Eth2' പുനർനാമകരണം സംബന്ധിച്ച് കൂടുതലറിയുക](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) - -## നവീകരണങ്ങൾ തമ്മിലുള്ള ബന്ധം {#relationship-between-upgrades} - -Ethereum അപ്‌ഗ്രേഡുകളെല്ലാം ഏതാണ്ട് പരസ്പരബന്ധിതമാണ്. അതിനാൽ ലയനം മറ്റ് അപ്‌ഗ്രേഡുകളുമായി എങ്ങനെ ബന്ധപ്പെട്ടിരിക്കുന്നു എന്ന് വീണ്ടും നോക്കാം. - -### ലയനവും ബീക്കൺ ചെയിനും {#merge-and-beacon-chain} - -ഒറിജിനൽ മെയിൻനെറ്റ് പ്രയോഗ വരിയിലേക്ക് പുതിയ പൊതു വരിയായി ബീക്കൺ ചെയിൻ ഔപചാരികമായി സ്വീകരിക്കുന്നതിനെ ലയനം സൂചിപ്പിക്കുന്നു. ലയനം മുതൽ, Ethereum മെയിൻനെറ്റ് സുരക്ഷിതമാക്കുന്നതിലേക്ക് വാലിഡേറ്റർമാരെ നിയോഗിക്കുന്നു, [പ്രൂഫ് ഓഫ് വർക്കിലെ](/developers/docs/consensus-mechanisms/pow/) മൈനിംഗ് ഇനിമേൽ ഒരു സാധുതയുള്ള ബ്ലോക്ക് പ്രൊഡക്ഷൻ അർത്ഥമാക്കുന്നില്ല. - -പൊതുവായതിൽ പങ്കെടുക്കാനുള്ള അവകാശത്തിന് പകരമായി സ്റ്റേക്ക് ചെയ്ത ETH ഉള്ള നോഡുകൾ വാലിഡേറ്റ് ചെയ്തുകൊണ്ട് ബ്ലോക്കുകൾ നിർദ്ദേശിക്കപ്പെടുന്നു. ഈ അപ്‌ഗ്രേഡുകൾ ഷാർഡിംഗ് ഉൾപ്പെടെയുള്ള ഭാവിയിലെ വിപുലീകരണ അപ്‌ഗ്രേഡുകൾക്ക് വേദിയൊരുക്കുന്നു. - - - ബീക്കൺ ചെയിൻ - - -### ലയനവും ഷാങ്‌ഹായ് അപ്‌ഗ്രേഡും {#merge-and-shanghai} - -പ്രൂഫ് ഓഫ് സ്റ്റേക്കിലേക്കുള്ള വിജയകരമായ മാറ്റത്തിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നത് ലളിതമാക്കാനും പരമാവധിയാക്കാനും, ലയന അപ്‌ഗ്രേഡിൽ സ്റ്റേക്ക് ചെയ്ത ETH പിൻവലിക്കാനുള്ള കഴിവ് പോലുള്ള ചില പ്രതീക്ഷിച്ച സവിശേഷതകൾ ഉൾപ്പെടുത്തിയിട്ടില്ല. ഷാങ്ഹായ് അപ്‌ഗ്രേഡ് ലയനത്തെ പിന്തുടരാൻ ആസൂത്രണം ചെയ്തിരിക്കുന്നു, ഇത് സ്റ്റേക്കർമാർക്ക് പിൻവലിക്കാനുള്ള കഴിവ് പ്രാപ്‌തമാക്കും. - -[GitHub-ലെ ഷാങ്ഹായ് അപ്‌ഗ്രേഡ് പ്ലാനിംഗ് പ്രശ്‌നം](https://github.com/ethereum/pm/issues/450) അല്ലെങ്കിൽ [EF ഗവേഷണ, വികസന ബ്ലോഗ്](https://blog.ethereum.org/category/research-and-development/) വഴി വിവരങ്ങൾ അറിഞ്ഞിരിക്കുക. അറിയാൻ താൽപ്പര്യമുള്ളവർ, 2021 ഏപ്രിലിലെ ETHGlobal ഇവന്റിൽ വിറ്റാലിക് അവതരിപ്പിച്ച [ലയന ശേഷം എന്ത് സംഭവിക്കും](https://youtu.be/7ggwLccuN5s?t=101) എന്നത് സംബന്ധിച്ച് കൂടുതലൽ മനസ്സിലാക്കുക. - -### ലയനവും ഷാർഡിംഗും {#merge-and-data-sharding} - -പ്രാഥമികമായി, സ്കെയിലബിളിറ്റി പരിഹരിക്കുന്നതിന് ലയനത്തിന് മുമ്പ് ഷാർഡിംഗിൽ പ്രവർത്തിക്കാനായിരുന്നു പദ്ധതി. എന്നിരുന്നാലും, [വരി 2 സ്‌കെയിലിംഗ് സൊല്യൂഷനുകളുടെ](/layer-2/) മുന്നേറ്റത്തിൽ, പ്രൂഫ് ഓഫ് വർക്കിനെ ആദ്യം പ്രൂഫ് ഓഫ് സ്റ്റേക്കിലേക്ക് മാറ്റുന്നതിലേക്ക് മുൻഗണന മാറി. - -ഷാർഡിംഗിനുള്ള പദ്ധതികൾ അതിവേഗം വികസിച്ചുകൊണ്ടിരിക്കുന്നു, എന്നാൽ ഇടപാട് നിർവഹണം അളക്കുന്നതിനുള്ള വരി 2 സാങ്കേതികവിദ്യകളുടെ മുന്നേറ്റവും വിജയവും കണക്കിലെടുത്ത്, നെറ്റ്‌വർക്കിൽ ക്രമാതീതമായ വളർച്ച അനുവദിക്കുന്ന റോളപ്പ് കരാറുകളിൽ നിന്ന് കംപ്രസ് ചെയ്‌ത കോൾഡാറ്റ സൂക്ഷിക്കുന്നതിന്റെ ബുദ്ധിമുട്ട് ഒഴിവാക്കനുള്ള ഏറ്റവും മികച്ച മാർഗം കണ്ടെത്തുന്നതിലേക്ക് ഷാർഡിംഗ് പ്ലാനുകൾ മാറി. പ്രൂഫ് ഓഫ് സ്റ്റേക്കിലേക്ക് ആദ്യം മാറാതെ ഇത് സാധ്യമാകില്ല. - - - ഷാർഡിംഗ് - - -## കൂടുതൽ വായനയ്ക്ക് {#further-reading} - - - - diff --git a/src/content/translations/mr/dao/index.md b/src/content/translations/mr/dao/index.md deleted file mode 100644 index 90dce65acfe..00000000000 --- a/src/content/translations/mr/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: विकेंद्रीकृत स्वायत्त संगठन (DAO) -description: Ethereum वर DAO चे विहंगावलोकन -lang: mr -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: प्रस्तावावर मतदान करणाऱ्या DAO चे प्रतिनिधित्व. -summaryPoint1: केंद्रीकृत नेतृत्वाशिवाय सदस्यांच्या मालकीचे समुदाय. -summaryPoint2: इंटरनेट अनोळखी लोकांसह सहयोग करण्याचा एक सुरक्षित मार्ग. -summaryPoint3: विशिष्ट कारणासाठी निधी कमिट करण्यासाठी सुरक्षित ठिकाण. ---- - -## DAO म्हणजे काय? {#what-are-daos} - -DAO ही एक सामूहिक मालकीची, ब्लॉकचेन-शासित संस्था आहे जी सामायिक मिशनसाठी काम करते. - -DAO आम्हाला निधी किंवा ऑपरेशन्स व्यवस्थापित करण्यासाठी परोपकारी नेत्यावर विश्वास न ठेवता जगभरातील समविचारी लोकांसोबत काम करण्याची परवानगी देतात. एकही CEO नाही जो फुशारकीवर निधी खर्च करू शकेल किंवा पुस्तकांमध्ये फेरफार करू शकेल असा CFO नाही. त्याऐवजी, कोडमध्ये बेक केलेले ब्लॉकचेन-आधारित नियम संस्था कशी कार्य करते आणि निधी कसा खर्च केला जातो हे परिभाषित करतात. - -त्यांच्याकडे अंगभूत कोषागार आहेत ज्यात गटाच्या मान्यतेशिवाय प्रवेश करण्याचा अधिकार कोणालाही नाही. संस्थेतील प्रत्येकाचा आवाज आहे आणि सर्व काही पारदर्शकपणे ऑन-चेन होते हे सुनिश्चित करण्यासाठी प्रस्ताव आणि मतदानाद्वारे निर्णय नियंत्रित केले जातात. - -## आम्हाला DAO ची गरज का आहे? {#why-dao} - -निधी आणि पैशांचा समावेश असलेल्या एखाद्या व्यक्तीसह संस्था सुरू करण्यासाठी तुम्ही ज्या लोकांसह काम करत आहात त्यांच्यावर खूप विश्वास असणे आवश्यक आहे. परंतु तुम्ही ज्याच्याशी इंटरनेटवर संवाद साधला आहे अशा व्यक्तीवर विश्वास ठेवणे कठीण आहे. DAO सह तुम्हाला गटातील इतर कोणावरही विश्वास ठेवण्याची गरज नाही, फक्त DAO च्या कोडवर, जो 100% पारदर्शक आणि कोणाकडूनही पडताळण्यायोग्य आहे. - -हे जागतिक सहकार्य आणि समन्वयासाठी अनेक नवीन संधी उघडते. - -### एक तुलना {#dao-comparison} - -| DAO | पारंपारिक संघटना | -| ------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------- | -| सहसा सपाट, आणि पूर्णपणे लोकशाही. | सहसा श्रेणीबद्ध. | -| कोणतेही बदल अंमलात आणण्यासाठी सदस्यांना मतदान करणे आवश्यक आहे. | संरचनेनुसार, बदलांची मागणी एकमेव पक्षाकडून केली जाऊ शकते किंवा मतदानाची ऑफर दिली जाऊ शकते. | -| मते मोजली जातात आणि विश्वसनीय मध्यस्थाशिवाय निकाल आपोआप लागू होतो. | मतदानास परवानगी असल्यास, मतांची गणना अंतर्गत केली जाते आणि मतदानाचा निकाल स्वतः हाताळला जाणे आवश्यक आहे. | -| ऑफर केलेल्या सेवा विकेंद्रित पद्धतीने स्वयंचलितपणे हाताळल्या जातात (उदाहरणार्थ परोपकारी निधीचे वितरण). | मानवी हाताळणी, किंवा केंद्रीय नियंत्रित ऑटोमेशन आवश्यक आहे, हाताळणीसाठी प्रवण. | -| सर्व क्रियाकलाप पारदर्शक आणि पूर्णपणे सार्वजनिक आहेत. | अ‍ॅक्टिव्हिटी सामान्यत: खाजगी असते आणि लोकांपर्यंत मर्यादित असते. | - -### DAO उदाहरणे {#dao-examples} - -हे अधिक अर्थपूर्ण होण्यासाठी, तुम्ही DAO कसे वापरू शकता याची काही उदाहरणे येथे आहेत: - -- एक धर्मादाय - तुम्ही जगातील कोणाकडूनही देणगी स्वीकारू शकता आणि कोणत्या कारणासाठी निधी देऊ शकता यावर मत देऊ शकता. -- सामूहिक मालकी - तुम्ही भौतिक किंवा डिजिटल मालमत्ता खरेदी करू शकता आणि सदस्य त्यांचा वापर कसा करायचा यावर मत देऊ शकतात. -- उपक्रम आणि अनुदान - तुम्ही एक उपक्रम फंड तयार करू शकता जो गुंतवणूक भांडवल जमा करतो आणि उपक्रमांना परत मत देतो. परत केलेले पैसे नंतर DAO-सदस्यांमध्ये पुन्हा वितरित केले जाऊ शकतात. - -## DAO कसे काम करतात? {#how-daos-work} - -DAO चा कणा हा त्याचा स्मार्ट करार असतो, जो संस्थेचे नियम परिभाषित करतो आणि समूहाचा खजिना धारण करतो. एकदा करार Ethereum वर लाइव्ह झाल्यानंतर, मतदानाशिवाय कोणीही नियम बदलू शकत नाही. जर कोणी असे काहीतरी करण्याचा प्रयत्न केला ज्यामध्ये नियम आणि तर्कशास्त्राचा समावेश नाही, तो अयशस्वी होईल. आणि तिजोरीची व्याख्या स्मार्ट कॉन्ट्रॅक्टद्वारे देखील केली जाते याचा अर्थ असा आहे की गटाच्या मंजुरीशिवाय कोणीही पैसे खर्च करू शकत नाही. याचा अर्थ DAO ला केंद्रीय प्राधिकरणाची गरज नाही. त्याऐवजी, गट एकत्रितपणे निर्णय घेतो आणि जेव्हा मते पास होतात तेव्हा देयके आपोआप अधिकृत होतात. - -हे शक्य आहे कारण स्मार्ट कॉन्ट्रॅक्ट एकदा Ethereum वर लाइव्ह झाल्यावर ते छेडछाड-प्रूफ असतात. तुम्ही फक्त कोड (DAO नियम) संपादित करू शकत नाही कारण सर्व काही सार्वजनिक आहे. - - - हुशार करारांवर अधिक - - -## Ethereum आणि DAO {#ethereum-and-daos} - -अनेक कारणांमुळे DAO साठी Ethereum हा परिपूर्ण पाया आहे: - -- Ethereum चे स्वतःचे एकमत वितरित केले जाते आणि संस्थांना नेटवर्कवर विश्वास ठेवण्यासाठी पुरेसे स्थापित केले जाते. -- स्मार्ट कॉन्ट्रॅक्ट कोड लाइव्ह एकदा बदलला जाऊ शकत नाही, अगदी त्याच्या मालकांद्वारे. हे DAO ला प्रोग्राम केलेल्या नियमांनुसार चालवण्यास अनुमती देते. -- स्मार्ट कॉन्ट्रॅक्ट निधी पाठवू/प्राप्त करू शकतात. याशिवाय ग्रुप फंड व्यवस्थापित करण्यासाठी तुम्हाला एका विश्वासू मध्यस्थीची आवश्यकता असेल. -- Ethereum समुदायाने स्पर्धात्मकतेपेक्षा अधिक सहयोगी असल्याचे सिद्ध केले आहे, ज्यामुळे सर्वोत्तम पद्धती आणि समर्थन प्रणाली लवकर उदयास येऊ शकतात. - -## DAO शासन {#dao-governance} - -DAO ला चालवताना अनेक बाबी विचारात घेतल्या जातात, जसे की मतदान आणि प्रस्ताव कसे कार्य करतात. - -### शिष्टमंडळ {#governance-delegation} - -प्रतिनिधी मंडळ हे प्रातिनिधिक लोकशाहीच्या DAO आवृत्तीसारखे आहे. टोकन धारक स्वतःला नामनिर्देशित करणार्‍या वापरकर्त्यांना मते देतात आणि प्रोटोकॉलचे स्टीवर्डिंग आणि माहिती ठेवण्यासाठी वचनबद्ध असतात. - -#### एक प्रसिद्ध उदाहरण {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) – ENS धारक त्यांचे प्रतिनिधित्व करण्यासाठी गुंतलेल्या समुदाय सदस्यांना त्यांची मते देऊ शकतात. - -### स्वयंचलित व्यवहार शासन {#governance-example} - -अनेक DAO मध्ये, सदस्यांच्या कोरमने होकारार्थी मते दिल्यास व्यवहार आपोआप अंमलात येतील. - -#### एक प्रसिद्ध उदाहरण {#governance-example} - -[नावा](https://nouns.wtf) – नाव DAO मध्ये, मतांचा कोरम पूर्ण झाल्यास आणि बहुसंख्य मते होकारार्थी असल्यास व्यवहार आपोआप अंमलात आणला जातो, जोपर्यंत त्यावर व्हेटो केला जात नाही. संस्थापक. - -### मल्टीसिग गव्हर्नन्स {#governance-example} - -DAO मध्ये हजारो मतदान सदस्य असू शकतात, तरीही निधी 5-20 सक्रिय समुदाय सदस्यांद्वारे सामायिक केलेल्या वॉलेटमध्ये राहू शकतो जे विश्वासू आणि सहसा डॉक्स केलेले असतात (समुदायाला ज्ञात सार्वजनिक ओळख). मतदानानंतर, मल्टीसिग स्वाक्षरी करणारे समुदायाच्या इच्छेची अंमलबजावणी करतात. - -## DAO नियम {#dao-laws} - -1977 मध्ये, वायोमिंगने LLC चा शोध लावला, जे उद्योजकांचे संरक्षण करते आणि त्यांचे दायित्व मर्यादित करते. अगदी अलीकडे, त्यांनी DAO कायद्याचा पुढाकार घेतला जो DAO साठी कायदेशीर स्थिती स्थापित करतो. सध्या वायोमिंग, व्हरमाँट आणि व्हर्जिन बेटांवर काही स्वरूपात DAO कायदे आहेत. - -#### एक प्रसिद्ध उदाहरण {#law-example} - -[CityDAO](https://citydao.io) – CityDAO ने यलोस्टोन नॅशनल पार्कजवळ 40 एकर जमीन खरेदी करण्यासाठी वायोमिंगच्या DAO कायद्याचा वापर केला. - -## DAO सदस्यत्व {#dao-membership} - -DAO सदस्यत्वासाठी विविध मॉडेल्स आहेत. सदस्यत्व मतदान कसे कार्य करते आणि DAO चे इतर महत्त्वाचे भाग ठरवू शकते. - -### टोकन-आधारित सदस्यत्व {#token-based-membership} - -वापरलेल्या टोकनवर अवलंबून, सहसा पूर्णपणे परवानगी नसलेले. बहुतेक या गव्हर्नन्स टोकन्सचा विकेंद्रीकृत एक्सचेंजवर परवानगीशिवाय व्यापार केला जाऊ शकतो. इतरांना तरलता किंवा इतर काही ‘प्रूफ-ऑफ-वर्क’ प्रदान करून कमावले पाहिजे. कोणत्याही प्रकारे, फक्त टोकन धारण केल्याने मतदानासाठी प्रवेश मिळतो. - -_सामान्यत: व्यापक विकेंद्रित प्रोटोकॉल आणि/किंवा टोकन स्वतः नियंत्रित करण्यासाठी वापरले जाते._ - -#### एक प्रसिद्ध उदाहरण {#token-example} - -[MakerDAO](https://makerdao.com) – MakerDAO चे टोकन MKR विकेंद्रित एक्सचेंजेसवर मोठ्या प्रमाणावर उपलब्ध आहे आणि कोणीही मेकर प्रोटोकॉलच्या भविष्यावर मतदानाचा अधिकार विकत घेऊ शकतो. - -### शेअर-आधारित सदस्यत्व {#share-based-membership} - -शेअर-आधारित DAO ला अधिक परवानगी आहे, परंतु तरीही ते खुले आहेत. कोणतेही संभाव्य सदस्य DAO मध्ये सामील होण्यासाठी प्रस्ताव सादर करू शकतात, सामान्यतः टोकन किंवा कामाच्या स्वरूपात काही मूल्याची श्रद्धांजली देतात. शेअर्स थेट मतदानाची शक्ती आणि मालकी दर्शवतात. सभासद खजिन्यातील त्यांच्या प्रमाणानुसार वाटा घेऊन कधीही बाहेर पडू शकतात. - -_सामान्यतः धर्मादाय संस्था, कामगार समूह आणि गुंतवणूक क्लब यासारख्या अधिक जवळच्या, मानव-केंद्रित संस्थांसाठी वापरले जाते. प्रोटोकॉल आणि टोकन्स देखील नियंत्रित करू शकतात._ - -#### एक प्रसिद्ध उदाहरण {#share-example} - -[MolochDAO](http://molochdao.com/) – MolochDAO Ethereum प्रकल्पांना निधी देण्यावर लक्ष केंद्रित करते. त्यांना सदस्यत्वासाठी प्रस्तावाची आवश्यकता आहे जेणेकरुन संभाव्य अनुदान देणाऱ्यांबद्दल माहितीपूर्ण निर्णय घेण्यासाठी तुमच्याकडे आवश्यक कौशल्य आणि भांडवल आहे की नाही हे गट मूल्यांकन करू शकेल. तुम्ही फक्त खुल्या बाजारात DAO मध्ये प्रवेश खरेदी करू शकत नाही. - -### प्रतिष्ठा-आधारित सदस्यत्व {#reputation-based-membership} - -प्रतिष्ठा सहभागाचा पुरावा दर्शवते आणि DAO मध्ये मतदानाची शक्ती देते. प्रतिक किंवा शेअर-आधारित सदस्यत्वाच्या विपरीत, प्रतिष्ठा-आधारित DAO योगदानकर्त्यांना मालकी हस्तांतरित करत नाहीत. प्रतिष्ठा विकत घेतली जाऊ शकत नाही, हस्तांतरित केली जाऊ शकत नाही किंवा नियुक्त केली जाऊ शकत नाही; DAO सदस्यांनी सहभागातून प्रतिष्ठा मिळवली पाहिजे. ऑन-चेन मतदान अनुज्ञेय आहे आणि संभाव्य सदस्य मुक्तपणे DAO मध्ये सामील होण्यासाठी प्रस्ताव सबमिट करू शकतात आणि त्यांच्या योगदानाच्या बदल्यात प्रतिष्ठा आणि टोकन प्राप्त करण्याची विनंती करू शकतात. - -_सामान्यत: प्रोटोकॉल आणि dapps च्या विकेंद्रित विकासासाठी आणि प्रशासनासाठी वापरला जातो, परंतु धर्मादाय संस्था, कामगार समूह, गुंतवणूक क्लब इ. सारख्या विविध संस्थांसाठी देखील योग्य आहे._ - -#### एक प्रसिद्ध उदाहरण {#reputation-example} - -[DXdao](https://DXdao.eth.link) – DXdao ही एक जागतिक सार्वभौम सामूहिक इमारत आहे आणि 2019 पासून विकेंद्रित प्रोटोकॉल आणि अनुप्रयोग नियंत्रित करते. हे निधीचे समन्वय आणि व्यवस्थापन करण्यासाठी प्रतिष्ठा-आधारित प्रशासन आणि होलोग्राफिक सहमतीचा लाभ घेते, याचा अर्थ कोणीही त्याच्या भविष्यावर प्रभाव टाकण्याचा मार्ग विकत घेऊ शकत नाही. - -## DAO मध्ये सामील व्हा / सुरू करा {#join-start-a-dao} - -### Join a DAO {#join-a-dao} - -- [Ethereum समुदाय DAO](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [DAOHaus ची DAO ची यादी](https://app.daohaus.club/explore) -- [DAO ची Tally.xyz यादी](https://www.tally.xyz) - -### DAO सुरू करा {#start-a-dao} - -- [DAOHaus सह DAO ला बोलावा](https://app.daohaus.club/summon) -- [Tally सह गव्हर्नर DAO सुरू करा](https://www.tally.xyz/add-a-dao) -- [Aragon-सक्षम DAO तयार करा](https://aragon.org/product) -- [वसाहत सुरू करा](https://colony.io/) -- [DAOstack च्या होलोग्राफिक एकमताने DAO तयार करा](https://alchemy.daostack.io/daos/create) - -## Further reading {#further-reading} - -### DAO लेख {#dao-articles} - -- [DAO म्हणजे काय?](https://aragon.org/dao) – [Aragon](https://aragon.org/) -- [DAO पुस्तिका](https://daohandbook.xyz) -- [हाउस ऑफ DAO](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [मेटागेम](https://wiki.metagame.wtf/) -- [DAO म्हणजे काय आणि ते कशासाठी आहे?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) -- [DAO-सक्षम डिजिटल समुदाय कसा सुरू करावा](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) -- [DAO म्हणजे काय?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) -- [होलोग्राफिक कॉन्सेन्सस म्हणजे काय?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) -- [DAO कॉर्पोरेशन नाहीत: जेथे विटालिकद्वारे स्वायत्त संस्थांमध्ये विकेंद्रीकरण महत्त्वाचे आहे](https://vitalik.ca/general/2022/09/20/daos.html) -- [DAO, DAC, DA आणि बरेच काही: एक अपूर्ण शब्दावली मार्गदर्शक](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Ethereum ब्लॉग](https://blog.ethereum.org) - -### Videos {#videos} - -- [क्रिप्टोमध्ये DAO म्हणजे काय?](https://youtu.be/KHm0uUPqmVE) -- [DAO शहर तयार करू शकतो का?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/src/content/translations/mr/decentralized-identity/index.md b/src/content/translations/mr/decentralized-identity/index.md deleted file mode 100644 index 8e6ee2af0b5..00000000000 --- a/src/content/translations/mr/decentralized-identity/index.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: विकेंद्रित ओळख -description: विकेंद्रित ओळख म्हणजे काय आणि ते का महत्त्वाचे आहे? -lang: mr -template: use-cases -emoji: ":id:" -sidebarDepth: 2 -image: ../../../../assets/eth-gif-cat.png -summaryPoint1: पारंपारिक ओळख प्रणालींनी आपल्या अभिज्ञापकांचे जारी करणे, देखभाल आणि नियंत्रण केंद्रीकृत केले आहे. -summaryPoint2: विकेंद्रित ओळख केंद्रीकृत तृतीय पक्षावरील अवलंबित्व काढून टाकते. -summaryPoint3: क्रिप्टोचे आभार, वापरकर्त्यांकडे आता पुन्हा एकदा त्यांचे स्वतःचे अभिज्ञापक आणि साक्ष्यीकरण जारी करण्यासाठी, धरून ठेवण्यासाठी आणि नियंत्रित करण्यासाठी साधने आहेत. ---- - -ओळख आज तुमच्या जीवनातील अक्षरशः प्रत्येक पैलूवर आधारित आहे. ऑनलाइन सेवा वापरणे, बँक खाते उघडणे, निवडणुकीत मतदान करणे, मालमत्ता खरेदी करणे, रोजगार सुरक्षित करणे—या सर्व गोष्टींसाठी तुमची ओळख सिद्ध करणे आवश्यक आहे. - -तथापि, पारंपारिक ओळख व्यवस्थापन प्रणाली दीर्घकाळापासून केंद्रीकृत मध्यस्थांवर अवलंबून आहेत जे तुमचे अभिज्ञापक आणि [प्रमाणीकरण](#what-are-attestations) जारी करतात, ठेवतात आणि नियंत्रित करतात. याचा अर्थ तुम्ही तुमची ओळख-संबंधित माहिती नियंत्रित करू शकत नाही किंवा वैयक्तिकरित्या ओळखण्यायोग्य माहिती (PII) मध्ये कोणाचा प्रवेश आहे आणि या पक्षांना किती प्रवेश आहे हे तुम्ही ठरवू शकत नाही. - -या समस्यांचे निराकरण करण्यासाठी, आम्ही Ethereum सारख्या सार्वजनिक ब्लॉकचेनवर विकेंद्रित ओळख प्रणाली तयार केली आहे. विकेंद्रित ओळख व्यक्तींना त्यांची ओळख-संबंधित माहिती व्यवस्थापित करण्यास अनुमती देते. विकेंद्रित ओळख समाधानांसह, _आपण_ आयडेंटिफायर तयार करू शकता आणि सेवा प्रदाते किंवा सरकार यांसारख्या केंद्रीय प्राधिकरणांवर विसंबून न राहता तुमच्या साक्ष्यांवर दावा करू शकता. - -## ओळख म्हणजे काय? {#what-is-identity} - -ओळख म्हणजे एखाद्या व्यक्तीची स्वतःची भावना, अद्वितीय वैशिष्ट्यांद्वारे परिभाषित. ओळख म्हणजे एक _व्यक्ती_, म्हणजे, एक विशिष्ट मानवी अस्तित्व होय. ओळख इतर गैर-मानवी घटकांना देखील संदर्भित करू शकते, जसे की संस्था किंवा प्राधिकरण. - -## अभिज्ञापक काय आहेत? {#what-are-identifiers} - -आयडेंटिफायर हा माहितीचा एक तुकडा आहे जो विशिष्ट ओळख किंवा ओळख दर्शवण्यासाठी सूचक म्हणून कार्य करतो. सामान्य अभिज्ञापकांमध्ये हे समाविष्ट आहे: - -- नाव -- सामाजिक सुरक्षा क्रमांक/कर ID क्रमांक -- मोबाईल नंबर -- जन्मतारीख आणि ठिकाण -- डिजिटल ओळख ओळखपत्रे, उदा., ईमेल पत्ते, वापरकर्तानावे, अवतार - -आयडेंटिफायरची ही पारंपारिक उदाहरणे केंद्रीय संस्थांद्वारे जारी केली जातात, ठेवली जातात आणि नियंत्रित केली जातात. तुमचे नाव बदलण्यासाठी तुम्हाला तुमच्या सरकारकडून किंवा तुमचे हँडल बदलण्यासाठी सोशल मीडिया प्लॅटफॉर्मची परवानगी आवश्यक आहे. - -## प्रमाणीकरणे म्हणजे काय? {#what-are-attestations} - -प्रमाणीकरण म्हणजे एका घटकाने दुसर्‍या संस्थेबद्दल केलेला दावा. तुम्ही युनायटेड स्टेट्समध्ये रहात असल्यास, मोटार वाहन विभाग (एक संस्था) द्वारे तुम्हाला जारी केलेला चालक परवाना तुम्हाला (दुसऱ्या संस्थेला) कायदेशीररित्या कार चालवण्याची परवानगी आहे याची साक्ष देतो. - -साक्षांकन ओळखकर्त्यांपेक्षा भिन्न आहेत. एखाद्या प्रमाणिकरणामध्ये विशिष्ट ओळखीचा संदर्भ देण्यासाठी अभिज्ञापक _असतात_ आणि या ओळखीशी संबंधित विशेषताबद्दल दावा करते. त्यामुळे, तुमच्या ड्रायव्हिंग लायसन्समध्ये आयडेंटिफायर आहेत (नाव, जन्मतारीख, पत्ता) पण ते तुमच्या वाहन चालवण्याच्या कायदेशीर अधिकाराचे प्रमाणीकरण देखील आहे. - -### विकेंद्रीकृत अभिज्ञापक काय आहेत? {#what-are-decentralized-identifiers} - -तुमचे कायदेशीर नाव किंवा ईमेल पत्ता यांसारखे पारंपारिक अभिज्ञापक तृतीय पक्षांवर-सरकार आणि ईमेल प्रदात्यांवर अवलंबून असतात. विकेंद्रित अभिज्ञापक (DID) भिन्न आहेत - ते कोणत्याही केंद्रीय घटकाद्वारे जारी, व्यवस्थापित किंवा नियंत्रित केले जात नाहीत. - -विकेंद्रित अभिज्ञापक जारी केले जातात, आयोजित केले जातात आणि व्यक्तीद्वारे नियंत्रित केले जातात. [Ethereum खाते](/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) व्युत्पन्न करते. वापरकर्ता ओळख प्रमाणित करण्यासाठी आणि डिजिटल मालमत्तेची मालकी सिद्ध करण्यासाठी ब्लॉकचेन नेटवर्कमध्ये सार्वजनिक-की क्रिप्टोग्राफी वापरली जाते. - -काही विकेंद्रीकृत अभिज्ञापक, जसे की Ethereum खाते, सार्वजनिक आणि खाजगी की असतात. सार्वजनिक की खात्याच्या नियंत्रकाला ओळखते, तर खाजगी की या खात्यासाठी संदेश साइन आणि डिक्रिप्ट करू शकतात. PKI सर्व दाव्यांची पडताळणी करण्यासाठी [क्रिप्टोग्राफिक स्वाक्षरी](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 संग्रहित केल्यामुळे, कोणीही Ethereum वर जारीकर्त्याच्या DID ची क्रॉस-तपासणी करून अॅटेस्टेशनची वैधता सत्यापित करू शकतो. मूलत:, Ethereum ब्लॉकचेन जागतिक निर्देशिकेप्रमाणे कार्य करते जे विशिष्ट घटकांशी संबंधित DID चे सत्यापन सक्षम करते. - -विकेंद्रीकृत अभिज्ञापक हे प्रमाणीकरण स्वयं-नियंत्रित आणि सत्यापित करण्यायोग्य असण्याचे कारण आहेत. जरी जारीकर्ता यापुढे अस्तित्वात नसला तरीही, धारकाकडे नेहमी प्रमाणीकरणाच्या मूळ आणि वैधतेचा पुरावा असतो. - -विकेंद्रित ओळखीद्वारे वैयक्तिक माहितीच्या गोपनीयतेचे संरक्षण करण्यासाठी विकेंद्रीकृत अभिज्ञापक देखील महत्त्वपूर्ण आहेत. उदाहरणार्थ, एखाद्या व्यक्तीने साक्षांकनाचा पुरावा (ड्रायव्हिंग लायसन्स) सबमिट केल्यास, पडताळणी करणाऱ्या पक्षाला पुराव्यातील माहितीची वैधता तपासण्याची आवश्यकता नाही. त्याऐवजी, पडताळकाला पुरावा वैध आहे की नाही हे निर्धारित करण्यासाठी प्रमाणीकरणाची सत्यता आणि जारी करणाऱ्या संस्थेच्या ओळखीची क्रिप्टोग्राफिक हमी आवश्यक असते. - -## विकेंद्रित ओळख मध्ये प्रमाणीकरणाचे प्रकार {#types-of-attestations-in-decentralized-identity} - -Ethereum-आधारित ओळख इकोसिस्टममध्ये प्रमाणीकरण माहिती कशी संग्रहित आणि पुनर्प्राप्त केली जाते हे पारंपारिक ओळख व्यवस्थापनापेक्षा वेगळे आहे. विकेंद्रित ओळख प्रणालींमध्ये साक्ष्यीकरण जारी करणे, संचयित करणे आणि सत्यापित करणे यासाठी विविध दृष्टिकोनांचे विहंगावलोकन येथे आहे: - -### ऑफ-चेन प्रमाणपत्रे {#off-chain-attestations} - -ऑन-चेन साक्ष्यीकरण संचयित करण्याबाबत एक चिंतेची बाब म्हणजे त्यामध्ये व्यक्ती खाजगी ठेवू इच्छित असलेली माहिती असू शकते. Ethereum ब्लॉकचेनच्या सार्वजनिक स्वरूपामुळे अशी साक्ष्यीकरणे संग्रहित करणे अनाकर्षक बनते. - -डिजिटल वॉलेटमध्ये ऑफ-चेन वापरकर्त्यांद्वारे साक्षांकन जारी करणे हा उपाय आहे, परंतु जारीकर्त्याच्या DID ऑन-चेनमध्ये संग्रहित आहे. ही साक्षांकने [JSON वेब टोकन](https://en.wikipedia.org/wiki/JSON_Web_Token) म्हणून एन्कोड केलेली आहेत आणि त्यात जारीकर्त्याची डिजिटल स्वाक्षरी असते—ज्यामुळे ऑफ-चेन दाव्यांची सहज पडताळणी करता येते. - -ऑफ-चेन साक्ष्यीकरण स्पष्ट करण्यासाठी येथे एक काल्पनिक परिस्थिती आहे: - -1. विद्यापीठ (जारीकर्ता) एक प्रमाणीकरण (डिजिटल शैक्षणिक प्रमाणपत्र) व्युत्पन्न करते, त्याच्या की सह स्वाक्षरी करते आणि बॉब (ओळख मालक) यांना जारी करते. - -2. बॉब नोकरीसाठी अर्ज करतो आणि त्याला त्याची शैक्षणिक पात्रता नियोक्त्याला सिद्ध करायची आहे, म्हणून तो त्याच्या मोबाइल वॉलेटमधून साक्षांकन शेअर करतो. कंपनी (पडताळणीकर्ता) नंतर जारीकर्त्याचा DID (म्हणजे, Ethereum वरील सार्वजनिक की) तपासून साक्षांकनाच्या वैधतेची पुष्टी करू शकते. - -### सतत प्रवेशासह ऑफ-चेन साक्ष्यीकरण {#offchain-attestations-with-persistent-access} - -या व्यवस्थेअंतर्गत साक्ष्यीकरणे JSON फायलींमध्ये रूपांतरित केली जातात आणि ऑफ-चेन संग्रहित केली जातात (आदर्शपणे [विकेंद्रित क्लाउड स्टोरेज](/developers/docs/storage/) प्लॅटफॉर्मवर, जसे की IPFS किंवा Swarm). तथापि, JSON फाइलचा [हॅश](/glossary/#hash) ऑन-चेन संग्रहित केला जातो आणि ऑन-चेन रेजिस्ट्रीद्वारे DID शी लिंक केला जातो. संबंधित DID एकतर प्रमाणीकरण जारीकर्ता किंवा प्राप्तकर्त्याचा असू शकतो. - -हा दृष्टिकोन दाव्यांची माहिती एनक्रिप्टेड आणि सत्यापित करण्यायोग्य ठेवताना, ब्लॉकचेन-आधारित चिकाटी मिळविण्यासाठी साक्ष्यीकरणांना सक्षम करतो. हे निवडक प्रकटीकरणास देखील अनुमती देते कारण खाजगी की धारक माहिती डिक्रिप्ट करू शकतो. - -### ऑन-चेन प्रमाणपत्रे {#onchain-attestations} - -Ethereum ब्लॉकचेनवरील [स्मार्ट कॉन्ट्रॅक्ट](/developers/docs/smart-contracts/) मध्ये ऑन-चेन साक्ष्यीकरणे आयोजित केली जातात. स्मार्ट कॉन्ट्रॅक्ट (रेजिस्ट्री म्हणून काम करणे) संबंधित ऑन-चेन विकेंद्रीकृत अभिज्ञापक (सार्वजनिक की) चे प्रमाणीकरण मॅप करेल. - -ऑन-चेन साक्ष्यीकरण व्यवहारात कसे कार्य करू शकते हे दर्शवण्यासाठी येथे एक उदाहरण आहे: - -1. एक कंपनी (XYZ कॉर्प) स्मार्ट कराराचा वापर करून मालकीचे शेअर्स विकण्याची योजना आखत आहे परंतु केवळ पार्श्वभूमी तपासणी पूर्ण केलेल्या खरेदीदारांनाच हवे आहे. - -2. XYZ Corp कडे Ethereum वर ऑन-चेन अटेस्टेशन जारी करण्यासाठी पार्श्वभूमी तपासणी करणारी कंपनी असू शकते. हे प्रमाणीकरण प्रमाणित करते की एखाद्या व्यक्तीने कोणतीही वैयक्तिक माहिती उघड न करता पार्श्वभूमी तपासणी उत्तीर्ण केली आहे. - -3. समभाग विक्री करणारे स्मार्ट कॉन्ट्रॅक्ट स्क्रीन केलेल्या खरेदीदारांच्या ओळखीसाठी रेजिस्ट्री करार तपासू शकतात, ज्यामुळे कोणाला शेअर्स खरेदी करण्याची परवानगी आहे किंवा नाही हे स्मार्ट कॉन्ट्रॅक्टला निर्धारित करणे शक्य होते. - -### सोलबाउंड टोकन आणि ओळख {#soulbound} - -[सोलबाउंड टोकन](https://vitalik.ca/general/2022/01/26/soulbound.html) (नॉन-हस्तांतरणीय NFT) विशिष्ट वॉलेटसाठी अद्वितीय माहिती गोळा करण्यासाठी वापरली जाऊ शकतात. हे प्रभावीपणे विशिष्ट Ethereum पत्त्याशी बांधील एक अनन्य ऑन-चेन ओळख तयार करते ज्यामध्ये उपलब्धी दर्शविणारे टोकन समाविष्ट असू शकतात (उदा. काही विशिष्ट ऑनलाइन कोर्स पूर्ण करणे किंवा गेममध्ये थ्रेशोल्ड स्कोअर उत्तीर्ण करणे) किंवा समुदाय सहभाग. - -## विकेंद्रित ओळखीचे फायदे {#benefits-of-decentralized-identity} - -1. विकेंद्रित ओळख माहिती ओळखण्याचे वैयक्तिक नियंत्रण वाढवते. विकेंद्रित अभिज्ञापक आणि प्रमाणीकरण केंद्रीकृत प्राधिकरणे आणि तृतीय-पक्ष सेवांवर अवलंबून न राहता सत्यापित केले जाऊ शकतात. - -2. विकेंद्रित ओळख समाधाने वापरकर्ता ओळख सत्यापित आणि व्यवस्थापित करण्यासाठी विश्वासहीन, अखंड आणि गोपनीयता-संरक्षण पद्धती सुलभ करतात. - -3. विकेंद्रित ओळख ब्लॉकचेन तंत्रज्ञानाचा उपयोग करते, जे विविध पक्षांमध्ये विश्वास निर्माण करते आणि साक्ष्यीकरणांची वैधता सिद्ध करण्यासाठी क्रिप्टोग्राफिक हमी प्रदान करते. - -4. विकेंद्रित ओळख ओळख डेटा पोर्टेबल बनवते. वापरकर्ते मोबाइल वॉलेटमध्ये साक्ष्यीकरणे आणि अभिज्ञापक संग्रहित करतात आणि त्यांच्या आवडीच्या कोणत्याही पक्षासह सामायिक करू शकतात. विकेंद्रीकृत अभिज्ञापक आणि प्रमाणीकरण जारी करणार्‍या संस्थेच्या डेटाबेसमध्ये लॉक केलेले नाहीत. - -5. विकेंद्रित ओळख उदयोन्मुख शून्य-ज्ञान तंत्रज्ञानासह चांगले कार्य करते जे व्यक्तींना ती गोष्ट काय आहे हे उघड न करता स्वतःची मालकी किंवा काहीतरी केले आहे हे सिद्ध करण्यास सक्षम करेल. मतदानासारख्या अनुप्रयोगांसाठी विश्वास आणि गोपनीयता एकत्र करण्याचा हा एक शक्तिशाली मार्ग बनू शकतो. - -6. विकेंद्रीकृत ओळख सिबिल-विरोधी यंत्रणांना ओळखण्यासाठी सक्षम करते जेव्हा एक व्यक्ती अनेक मानव असल्याचे भासवत असते तेव्हा एखाद्या प्रणालीशी गेम किंवा स्पॅम करतात. - -## विकेंद्रित ओळख वापर प्रकरणे {#decentralized-identity-use-cases} - -विकेंद्रित ओळख अनेक संभाव्य वापर-केस आहेत: - -### 1. युनिव्हर्सल लॉगिन {#universal-dapp-logins} - -विकेंद्रीकृत ओळख पासवर्ड-आधारित लॉगिन [विकेंद्रित प्रमाणीकरण](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/) सह बदलण्यात मदत करू शकते. सेवा प्रदाते वापरकर्त्यांना साक्ष्यीकरण देऊ शकतात, जे Ethereum वॉलेटमध्ये संग्रहित केले जाऊ शकतात. धारकास ऑनलाइन समुदायामध्ये प्रवेश प्रदान करणारे एक उदाहरण प्रमाणीकरण हे [NFT](/nft/) असेल. - -[Ethereum सह साइन-इन](https://login.xyz/) फंक्शन नंतर सर्व्हरला वापरकर्त्याच्या Ethereum खात्याची पुष्टी करण्यास आणि त्यांच्या खात्याच्या पत्त्यावरून आवश्यक प्रमाणीकरण आणण्यास सक्षम करेल. याचा अर्थ वापरकर्ते लांब पासवर्ड लक्षात ठेवल्याशिवाय प्लॅटफॉर्म आणि वेबसाइट्समध्ये प्रवेश करू शकतात आणि वापरकर्त्यांसाठी ऑनलाइन अनुभव सुधारतात. - -### 2. KYC प्रमाणीकरण {#kyc-authentication} - -अनेक ऑनलाइन सेवा वापरण्यासाठी व्यक्तींना ड्रायव्हिंग लायसन्स किंवा राष्ट्रीय पासपोर्ट यांसारखी साक्षांकन आणि क्रेडेन्शियल प्रदान करणे आवश्यक आहे. परंतु हा दृष्टीकोन समस्याप्रधान आहे कारण खाजगी वापरकर्ता माहितीशी तडजोड केली जाऊ शकते आणि सेवा प्रदाते प्रमाणीकरणाची सत्यता सत्यापित करू शकत नाहीत. - -विकेंद्रित ओळख कंपन्यांना पारंपारिक [तुमचा-ग्राहक जाणून घ्या (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) प्रक्रिया वगळण्याची आणि पडताळणीयोग्य क्रेडेन्शियल्सद्वारे वापरकर्ता ओळख प्रमाणित करण्यास अनुमती देते. हे ओळख व्यवस्थापनाची किंमत कमी करते आणि बनावट कागदपत्रांचा वापर प्रतिबंधित करते. - -### 3. मतदान आणि ऑनलाइन समुदाय {#voting-and-online-communities} - -ऑनलाइन मतदान आणि सोशल मीडिया विकेंद्रित ओळखीसाठी दोन नवीन अनुप्रयोग आहेत. ऑनलाइन मतदान योजना हेराफेरीसाठी संवेदनाक्षम असतात, विशेषतः जर दुर्भावनापूर्ण अभिनेते मतदान करण्यासाठी खोटी ओळख निर्माण करतात. व्यक्तींना ऑन-चेन साक्षांकन सादर करण्यास सांगणे ऑनलाइन मतदान प्रक्रियेची अखंडता सुधारू शकते. - -विकेंद्रित ओळख ऑनलाइन समुदाय तयार करण्यात मदत करू शकते जे बनावट खात्यांपासून मुक्त आहेत. उदाहरणार्थ, प्रत्येक वापरकर्त्याला ऑन-चेन ओळख प्रणाली वापरून त्यांची ओळख प्रमाणित करावी लागेल, जसे की Ethereum नेम सेवा, बॉट्सची शक्यता कमी करते. - -### 4. अँटी-सिबिल संरक्षण {#sybil-protection} - -सिबिल हल्ल्यांचा संदर्भ आहे की वैयक्तिक मानव आपला प्रभाव वाढवण्यासाठी एकापेक्षा जास्त लोक आहेत असा विचार करून प्रणालीला फसवतात. [अनुदान देणारे अनुप्रयोग](https://gitcoin.co/grants/) जे [वापरतात चतुर्भुज मतदान](https://www.radicalxchange.org/concepts/plural-voting/) या सिबिल हल्ल्यांसाठी असुरक्षित आहेत कारण जेव्हा अधिक लोक त्यास मतदान करतात तेव्हा अनुदानाचे मूल्य वाढते, वापरकर्त्यांना त्यांचे योगदान अनेक ओळखींमध्ये विभाजित करण्यास प्रोत्साहन देते. विकेंद्रीकृत ओळख प्रत्येक सहभागीवर भार वाढवून ते खरोखरच मानव आहेत हे सिद्ध करण्यासाठी हे रोखण्यात मदत करतात, जरी अनेकदा विशिष्ट खाजगी माहिती उघड न करता. - -## विकेंद्रित ओळख वापरा {#use-decentralized-identity} - -विकेंद्रित ओळख सोल्यूशन्सचा पाया म्हणून Ethereum वापरणारे अनेक महत्त्वाकांक्षी प्रकल्प आहेत: - -- **[Ethereum नेम सेवा (ENS)](https://ens.domains/)** - _ऑन-चेन, मशीन-वाचनीय अभिज्ञापकांसाठी विकेंद्रित नामकरण प्रणाली, जसे की, Ethereum वॉलेट पत्ते, सामग्री हॅश आणि मेटाडेटा._ -- **[SpruceID](https://www.spruceid.com/)** - _एक विकेंद्रित ओळख प्रकल्प जे वापरकर्त्यांना तृतीय-पक्ष सेवांवर अवलंबून न राहता Ethereum खाती आणि ENS प्रोफाइलसह डिजिटल ओळख नियंत्रित करण्यास अनुमती देते._ -- **[Ethereum प्रमाणीकरण सेवा (EAS)](https://attest.sh/)** - _कोणत्याही गोष्टीबद्दल ऑन-चेन किंवा ऑफ-चेन साक्ष्यीकरण करण्यासाठी विकेंद्रीकृत लेजर/प्रोटोकॉल._ -- **[मानवतेचा पुरावा](https://www.proofofhumanity.id)** - _पुरावा मानवता (किंवा PoH) ही Ethereum वर तयार केलेली सामाजिक ओळख पडताळणी प्रणाली आहे._ -- **[BrightID](https://www.brightid.org/)** - _एक विकेंद्रित, ओपन-सोर्स सोशल आयडेंटिटी नेटवर्क सामाजिक आलेख निर्मिती आणि विश्लेषणाद्वारे ओळख पडताळणीमध्ये सुधारणा करू इच्छित आहे._ -- **[प्रुफ-ऑफ-पर्सनहुड पासपोर्ट](https://proofofpersonhood.com/)** - _विकेंद्रित डिजिटल ओळख एकत्रित करणारा._ - -## Further reading {#further-reading} - -### लेख {#articles} - -- [ब्लॉकचेन वापर प्रकरणे: डिजिटल आयडेंटिटीमध्ये ब्लॉकचेन](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ -- [Ethereum ERC725 म्हणजे काय? ब्लॉकचेनवर स्व-सार्वभौम ओळख व्यवस्थापन](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _सॅम टाउन_ -- [ब्लॉकचेन डिजिटल आयडेंटिटीची समस्या कशी सोडवू शकते](https://time.com/6142810/proof-of-humanity/) — _अँड्र्यू आर. चाऊ_ -- [विकेंद्रित ओळख म्हणजे काय आणि आपण काळजी का घ्यावी?](https://web3.hashnode.com/what-is-decentralized-identity) — _इमॅन्युएल अवोसिका_ - -### Videos {#videos} - -- [विकेंद्रित ओळख (बोनस लाइव्हस्ट्रीम सत्र)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _एक उत्तम एंड्रियास अँटोनोपोलस द्वारे विकेंद्रित ओळखीवरील स्पष्टीकरण व्हिडिओ_ -- [सिरेमिक, IDX, प्रतिक्रिया आणि 3ID कनेक्टसह Ethereum आणि विकेंद्रीकृत ओळख सह साइन इन करा](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _Nader Dabit द्वारे Ethereum वॉलेट वापरून वापरकर्त्याचे प्रोफाइल तयार करण्यासाठी, वाचण्यासाठी आणि अपडेट करण्यासाठी ओळख व्यवस्थापन प्रणाली तयार करण्यावर YouTube ट्यूटोरियल_ -- [BrightID - Ethereum वर विकेंद्रित ओळख](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _बँकलेस पॉडकास्ट भाग BrightID वर चर्चा करतो, a Ethereum साठी विकेंद्रित ओळख समाधान_ -- [द ऑफ चेन इंटरनेट: विकेंद्रीकृत ओळख आणि पडताळणीयोग्य क्रेडेन्शियल्स](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — एव्हिन मॅकमुलेन द्वारे EthDenver 2022 सादरीकरण - -### समुदाय {#communities} - -- [ERC-725 GitHub वर अलायन्स](https://github.com/erc725alliance) — _Ethereum ब्लॉकचेन वर ओळख व्यवस्थापित करण्यासाठी ERC725 मानकांचे समर्थक_ -- [SpruceID Discord सर्व्हर](https://discord.com/invite/Sf9tSFzrnt) — _Ethereum सह साइन-इनवर काम करणाऱ्या उत्साही आणि विकासकांसाठी समुदाय_ -- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _अनुप्रयोगांसाठी पडताळणी करण्यायोग्य डेटासाठी फ्रेमवर्क तयार करण्यात योगदान देणारा विकासकांचा समुदाय_ diff --git a/src/content/translations/mr/defi/index.md b/src/content/translations/mr/defi/index.md deleted file mode 100644 index 797e39281fe..00000000000 --- a/src/content/translations/mr/defi/index.md +++ /dev/null @@ -1,352 +0,0 @@ ---- -title: विकेंद्रीत अर्थव्यवस्था (DeFi) -description: Ethereum वर DeFi चे विहंगावलोकन -lang: mr -template: use-cases -emoji: ":money_with_wings:" -image: ../../../../assets/use-cases/defi.png -alt: लेगो विटांनी बनवलेला Eth लोगो. -sidebarDepth: 2 -summaryPoint1: सध्याच्या आर्थिक व्यवस्थेसाठी जागतिक, खुला पर्याय. -summaryPoint2: अशी उत्पादने जी तुम्हाला कर्ज घेऊ देतात, बचत करू देतात, गुंतवणूक करू शकतात, व्यापार करू शकतात आणि बरेच काही करू शकतात. -summaryPoint3: मुक्त-स्रोत तंत्रज्ञानावर आधारित ज्यासह कोणीही प्रोग्राम करू शकतो. ---- - -DeFi ही इंटरनेट युगासाठी तयार केलेली एक खुली आणि जागतिक आर्थिक प्रणाली आहे – अपारदर्शक, घट्टपणे नियंत्रित आणि दशकानुशतके जुन्या पायाभूत सुविधा आणि प्रक्रियांनी एकत्र ठेवलेल्या प्रणालीचा पर्याय. हे तुम्हाला तुमच्या पैशांवर नियंत्रण आणि दृश्यमानता देते. हे तुम्हाला जागतिक बाजारपेठा आणि तुमच्या स्थानिक चलन किंवा बँकिंग पर्यायांना एक्सपोजर देते. DeFi उत्पादने इंटरनेट कनेक्शन असलेल्या प्रत्येकासाठी आर्थिक सेवा उघडतात आणि त्या मोठ्या प्रमाणात त्यांच्या वापरकर्त्यांच्या मालकीच्या आणि देखरेखीच्या असतात. आतापर्यंत कोट्यवधी डॉलर्स किमतीचे क्रिप्टो DeFi ऍप्लिकेशन्समधून आले आहे आणि ते दररोज वाढत आहे. - -## DeFi म्हणजे काय? {#what-is-defi} - -DeFi ही आर्थिक उत्पादने आणि सेवांसाठी एक सामूहिक संज्ञा आहे जी Ethereum वापरू शकणार्‍या प्रत्येकासाठी प्रवेशयोग्य आहे – इंटरनेट कनेक्शन असलेले कोणीही. DeFi सह, बाजारपेठे नेहमी खुली असतात आणि कोणतेही केंद्रीकृत अधिकारी नाहीत जे पेमेंट ब्लॉक करू शकतात किंवा तुम्हाला कोणत्याही गोष्टीत प्रवेश नाकारू शकतात. पूर्वी धीमे आणि मानवी चुकांचा धोका असलेल्या सेवा आता स्वयंचलित आणि सुरक्षित आहेत कारण त्या कोडद्वारे हाताळल्या जातात ज्याची कोणीही तपासणी आणि छाननी करू शकते. - -तेथे एक भरभराट होत असलेली क्रिप्टो अर्थव्यवस्था आहे, जिथे तुम्ही कर्ज देऊ शकता, कर्ज घेऊ शकता, दीर्घ/लहान, व्याज मिळवू शकता आणि बरेच काही करू शकता. क्रिप्टो-जाणकार अर्जेंटिन्यांनी अपंग महागाईपासून बचाव करण्यासाठी DeFi चा वापर केला आहे. कंपन्यांनी त्यांच्या कर्मचार्‍यांना त्यांचे वेतन रिअल टाइममध्ये प्रवाहित करण्यास सुरुवात केली आहे. काही लोकांनी कोणत्याही वैयक्तिक ओळखीची गरज नसताना लाखो डॉलर्सची कर्जे काढली आणि फेडली. - - - -## DeFi वि पारंपारिक वित्त {#defi-vs-tradfi} - -DeFi ची क्षमता पाहण्याचा एक उत्तम मार्ग म्हणजे आज अस्तित्वात असलेल्या समस्या समजून घेणे. - -- काही लोकांना बँक खाते सेट करण्यासाठी किंवा आर्थिक सेवा वापरण्यासाठी प्रवेश दिला जात नाही. -- आर्थिक सेवांमध्ये प्रवेश नसल्यामुळे लोकांना नोकरी करण्यापासून रोखता येते. -- आर्थिक सेवा तुम्हाला पैसे मिळण्यापासून रोखू शकतात. -- आर्थिक सेवांचे छुपे शुल्क म्हणजे तुमचा वैयक्तिक डेटा. -- सरकार आणि केंद्रीकृत संस्था इच्छेनुसार बाजार बंद करू शकतात. -- व्यापाराचे तास अनेकदा विशिष्ट टाइम झोनच्या व्यावसायिक तासांपुरते मर्यादित असतात. -- मानवी अंतर्गत प्रक्रियेमुळे पैसे हस्तांतरित होण्यास काही दिवस लागू शकतात. -- आर्थिक सेवांसाठी प्रीमियम आहे कारण मध्यस्थ संस्थांना त्यांच्या कपातीची आवश्यकता आहे. - -### एक तुलना {#defi-comparison} - -| DeFi | पारंपारिक वित्त | -| ------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -| तुम्ही तुमचे पैसे धरा. | तुमचे पैसे कंपन्यांकडे आहेत. | -| तुमचा पैसा कुठे जातो आणि तो कसा खर्च होतो हे तुम्ही नियंत्रित करता. | जोखमीच्या कर्जदारांना कर्ज देण्यासारख्या तुमच्या पैशांचे गैरव्यवस्थापन न करण्यासाठी तुम्हाला कंपन्यांवर विश्वास ठेवावा लागेल. | -| निधीचे हस्तांतरण काही मिनिटांत होते. | मॅन्युअल प्रक्रियांमुळे पेमेंटला दिवस लागू शकतात. | -| व्यवहार क्रियाकलाप छद्मनाम आहे. | आर्थिक क्रियाकलाप आपल्या ओळखीशी घट्ट जोडलेले आहेत. | -| DeFi कोणासाठीही खुले आहे. | तुम्ही आर्थिक सेवा वापरण्यासाठी अर्ज करणे आवश्यक आहे. | -| बाजारपेठा नेहमी खुल्या असतात. | कर्मचार्‍यांना विश्रांतीची गरज असल्याने बाजारपेठा बंद होतात. | -| हे पारदर्शकतेवर आधारित आहे – कोणीही उत्पादनाचा डेटा पाहू शकतो आणि सिस्टम कसे कार्य करते याची तपासणी करू शकतो. | वित्तीय संस्था ही बंद पुस्तके आहेत: तुम्ही त्यांचा कर्जाचा इतिहास, त्यांच्या व्यवस्थापित मालमत्तेचा रेकॉर्ड इत्यादी पाहण्यास सांगू शकत नाही. | - - - DeFi अॅप्स एक्सप्लोर करा - - -## याची सुरुवात Bitcoin पासून झाली... {#bitcoin} - -Bitcoin हे अनेक प्रकारे पहिले DeFi ऍप्लिकेशन होते. Bitcoin तुम्हाला खरच स्वतःचे आणि मूल्य नियंत्रित करू देते आणि जगभरात कुठेही पाठवू देते. विश्वासू मध्यस्थाच्या गरजेशिवाय, मोठ्या संख्येने लोकांना, जे एकमेकांवर विश्वास ठेवत नाहीत, खात्यांच्या लेजरवर सहमत होण्यासाठी एक मार्ग प्रदान करून हे करते. Bitcoin कोणासाठीही खुले आहे आणि त्याचे नियम बदलण्याचा अधिकार कोणालाही नाही. Bitcoin चे नियम, जसे की त्याची कमतरता आणि त्याचे मोकळेपणा, तंत्रज्ञानामध्ये लिहिलेले आहेत. हे पारंपारिक फायनान्ससारखे नाही जिथे सरकार पैसे छापू शकतात जे तुमच्या बचतीचे अवमूल्यन करतात आणि कंपन्या बाजार बंद करू शकतात. - -यावर Ethereum तयार होतो. Bitcoin प्रमाणे, नियम तुमच्यावर बदलू शकत नाहीत आणि प्रत्येकाला प्रवेश आहे. परंतु ते [स्मार्ट कॉन्ट्रॅक्ट](/glossary#smart-contract) वापरून हे डिजिटल मनी प्रोग्राम करण्यायोग्य देखील बनवते, जेणेकरून तुम्ही मूल्य संचयित आणि पाठवण्यापलीकडे जाऊ शकता. - - - -## प्रोग्राम करण्यायोग्य पैसा {#programmable-money} - -हे विचित्र वाटते... "मला माझे पैसे का प्रोग्राम करायचे आहेत"? तथापि, Ethereum वरील टोकनचे हे फक्त एक डीफॉल्ट वैशिष्ट्य आहे. कोणीही पेमेंटमध्ये लॉजिक प्रोग्राम करू शकतो. त्यामुळे तुम्हाला Bitcoin चे नियंत्रण आणि सुरक्षा वित्तीय संस्थांद्वारे पुरवल्या जाणाऱ्या सेवांमध्ये मिसळून मिळू शकते. हे तुम्हाला क्रिप्टोकरन्सीसह अशा गोष्टी करू देते जे तुम्ही Bitcoin सह करू शकत नाही जसे की कर्ज देणे आणि कर्ज घेणे, पेमेंट शेड्यूल करणे, इंडेक्स फंडांमध्ये गुंतवणूक करणे आणि बरेच काही. - - -
तुम्ही Ethereum वर नवीन असाल तर वापरून पाहण्यासाठी DeFi ऍप्लिकेशन्ससाठी आमच्या सूचना एक्सप्लोर करा.
- - DeFi अॅप्स एक्सप्लोर करा - -
- -## आपण DeFi सह काय करू शकता? {#defi-use-cases} - -बहुतांश वित्तीय सेवांसाठी विकेंद्रित पर्याय आहे. परंतु Ethereum पूर्णपणे नवीन आर्थिक उत्पादने तयार करण्यासाठी संधी देखील निर्माण करते. ही एक सतत वाढत जाणारी यादी आहे. - -- [जगभर पैसे पाठवा](#send-money) -- [जगभरात पैसा प्रवाहित करा](#stream-money) -- [स्थिर चलनांमध्ये प्रवेश करा](#stablecoins) -- [संपार्श्विक सह निधी उधार घ्या](#lending) -- [तारण न घेता कर्ज घ्या](#flash-loans) -- [क्रिप्टो बचत सुरू करा](#saving) -- [व्यापार टोकन](#swaps) -- [तुमचा पोर्टफोलिओ वाढवा](#investing) -- [तुमच्या कल्पनांना निधी द्या](#crowdfunding) -- [विमा खरेदी करा](#insurance) -- [तुमचा पोर्टफोलिओ व्यवस्थापित करा](#aggregators) - - - -### जगभरात त्वरीत पैसे पाठवा {#send-money} - -ब्लॉकचेन म्हणून, Ethereum सुरक्षित आणि जागतिक मार्गाने व्यवहार पाठवण्यासाठी डिझाइन केलेले आहे. Bitcoin प्रमाणे, Ethereum जगभरात पैसे पाठवणे ईमेल पाठवण्याइतके सोपे करते. तुमच्या वॉलेटमधून फक्त तुमच्या प्राप्तकर्त्याचे [ENS नाव](/nft/#nft-domains) (जसे bob.eth) किंवा त्यांचा खाते पत्ता प्रविष्ट करा आणि तुमचे पेमेंट थेट त्यांच्याकडे काही मिनिटांत जाईल (सामान्यतः). पेमेंट पाठवण्यासाठी किंवा प्राप्त करण्यासाठी, तुम्हाला [वॉलेट](/wallets/) आवश्यक असेल. - - - पेमेंट dapps पहा - - -#### जगभरात पैसा प्रवाहित करा... {#stream-money} - -तुम्ही Ethereum वर पैसे देखील प्रवाहित करू शकता. हे तुम्हाला एखाद्याला त्यांचा पगार दुसऱ्याने अदा करू देते, त्यांना जेव्हा गरज असेल तेव्हा त्यांच्या पैशात प्रवेश मिळवून देते. किंवा स्टोरेज लॉकर किंवा इलेक्ट्रिक स्कूटरसारखे दुसरे काहीतरी भाड्याने घ्या. - -आणि जर तुम्ही [ETH](/eth/) पाठवू इच्छित नसाल किंवा प्रवाहित करू इच्छित नसाल कारण त्याचे मूल्य किती बदलू शकते, Ethereum वर पर्यायी चलने आहेत: स्टेबलकॉइन्स. - - - -### स्थिर चलनांमध्ये प्रवेश करा {#stablecoins} - -क्रिप्टोकरन्सीची अस्थिरता ही अनेक आर्थिक उत्पादने आणि सामान्य खर्चासाठी एक समस्या आहे. DeFi समुदायाने स्टेबलकॉइन्स सह याचे निराकरण केले आहे. त्यांचे मूल्य दुसर्‍या मालमत्तेवर टिकून राहते, सहसा डॉलर सारखे लोकप्रिय चलन. - -Dai किंवा USDC सारख्या नाण्यांचे मूल्य डॉलरच्या काही सेंट्समध्ये असते. हे त्यांना कमाई किंवा किरकोळ विक्रीसाठी योग्य बनवते. लॅटिन अमेरिकेतील बर्‍याच लोकांनी त्यांच्या सरकारने जारी केलेल्या चलनांसह मोठ्या अनिश्चिततेच्या काळात त्यांच्या बचतीचे संरक्षण करण्याचा एक मार्ग म्हणून स्टेबलकॉइन्सचा वापर केला आहे. - - - स्टेबलकॉइन्स वर अधिक - - - - -### कर्ज घेणे {#lending} - -विकेंद्रित प्रदात्यांकडून पैसे उधार घेणे दोन मुख्य प्रकारांमध्ये येते. - -- पीअर-टू-पीअर, म्हणजे कर्जदार विशिष्ट सावकाराकडून थेट कर्ज घेईल. -- पूल-आधारित जेथे कर्जदार कर्ज घेऊ शकतात अशा पूलला निधी (तरलता) प्रदान करतात. - - - उधारी dapps पहा - - -विकेंद्रित कर्जदार वापरण्याचे अनेक फायदे आहेत... - -#### गोपनीयतेसह कर्ज घेणे {#borrowing-privacy} - -आज, पैसे देणे आणि कर्ज घेणे हे सर्व गुंतलेल्या व्यक्तींभोवती फिरते. कर्ज देण्यापूर्वी तुम्ही कर्जाची परतफेड करण्याची शक्यता आहे की नाही हे बँकांना माहित असणे आवश्यक आहे. - -विकेंद्रित कर्ज देणे कोणत्याही पक्षाला स्वतःची ओळख न करता कार्य करते. त्याऐवजी, कर्जदाराने त्याच्या कर्जाची परतफेड न केल्यास कर्जदाराला आपोआप प्राप्त होणारी संपार्श्विकता ठेवली पाहिजे. काही सावकार संपार्श्विक म्हणून NFT देखील स्वीकारतात. NFT हे चित्रकलेप्रमाणे एका अनन्य मालमत्तेसाठी एक डीड आहे. [NFT वर अधिक](/nft/) - -हे तुम्हाला क्रेडिट चेकशिवाय किंवा खाजगी माहिती न देता पैसे उधार घेण्यास अनुमती देते. - -#### जागतिक निधीमध्ये प्रवेश {#access-global-funds} - -जेव्हा तुम्ही विकेंद्रित सावकार वापरता तेव्हा तुम्हाला तुमच्या निवडलेल्या बँकेच्या किंवा संस्थेच्या ताब्यातील निधीच नव्हे तर जगभरातून जमा केलेल्या निधीमध्ये प्रवेश असतो. यामुळे कर्जे अधिक सुलभ होतात आणि व्याजदर सुधारतात. - -#### कर-कार्यक्षमता {#tax-efficiencies} - -कर्ज घेतल्याने तुमचा ETH (करपात्र कार्यक्रम) विकल्याशिवाय तुम्हाला आवश्यक असलेल्या निधीमध्ये प्रवेश मिळू शकतो. त्याऐवजी, तुम्ही स्टेबलकॉइन कर्जासाठी संपार्श्विक म्हणून ETH वापरू शकता. हे तुम्हाला आवश्यक असलेला रोख प्रवाह देते आणि तुम्हाला तुमचा ETH ठेवू देते. स्टेबलकॉइन्स हे टोकन आहेत जे तुम्हाला जेव्हा रोखीची गरज असते तेव्हा ते जास्त चांगले असतात कारण ते ETH सारख्या मूल्यात चढ-उतार होत नाहीत. [स्टेबलकॉइन्स वर अधिक](#stablecoins) - -#### फ्लॅश कर्ज {#flash-loans} - -फ्लॅश कर्ज हे विकेंद्रित कर्जाचे अधिक प्रायोगिक स्वरूप आहे जे तुम्हाला संपार्श्विक किंवा कोणतीही वैयक्तिक माहिती प्रदान न करता कर्ज घेऊ देते. - -ते सध्या गैर-तांत्रिक लोकांसाठी मोठ्या प्रमाणावर प्रवेश करण्यायोग्य नाहीत परंतु ते भविष्यात प्रत्येकासाठी काय शक्य आहे याचा इशारा देतात. - -कर्ज काढले जाते आणि त्याच व्यवहारात परतफेड केले जाते या आधारावर ते कार्य करते. जर ते परत केले जाऊ शकले नाही, तर व्यवहार पूर्ववत होतो जणू काही घडलेच नाही. - -अनेकदा वापरले जाणारे निधी लिक्विडिटी पूलमध्ये (कर्ज घेण्यासाठी वापरले जाणारे निधीचे मोठे पूल) मध्ये ठेवले जातात. दिलेल्या क्षणी त्यांचा वापर केला जात नसल्यास, यामुळे एखाद्याला हे निधी उधार घेण्याची, त्यांच्यासोबत व्यवसाय करण्याची आणि कर्ज घेतलेल्या त्याच वेळी त्यांची अक्षरशः पूर्ण परतफेड करण्याची संधी निर्माण होते. - -याचा अर्थ असा आहे की अगदी योग्य व्यवहारात बरेच तर्क समाविष्ट केले पाहिजेत. एक साधे उदाहरण असे असू शकते की एखादी व्यक्ती फ्लॅश लोनचा वापर करून एका किमतीत जास्तीत जास्त मालमत्तेसाठी कर्ज घेते जेणेकरून ते ती वेगळ्या एक्सचेंजवर विकू शकतील जिथे किंमत जास्त असेल. - -त्यामुळे एकाच व्यवहारात पुढील गोष्टी घडतात: - -- तुम्ही एक्सचेंज A कडून $1.00 वर $asset X रक्कम कर्ज घेता -- तुम्ही X $asset एक्सचेंज B वर $1.10 मध्ये विकता -- तुम्ही A एक्सचेंज करण्यासाठी कर्जाची परतफेड करता -- तुम्ही व्यवहार शुल्क वजा नफा ठेवा - -जर एक्सचेंज B चा पुरवठा अचानक कमी झाला आणि वापरकर्ता मूळ कर्ज भरण्यासाठी पुरेशी खरेदी करू शकला नाही, तर व्यवहार अयशस्वी होईल. - -पारंपारिक वित्त जगात वरील उदाहरण करण्यास सक्षम होण्यासाठी, तुम्हाला खूप मोठ्या रकमेची आवश्यकता असेल. पैसे कमावण्याच्या या रणनीती केवळ विद्यमान संपत्ती असलेल्यांनाच उपलब्ध आहेत. फ्लॅश लोन हे भविष्याचे एक उदाहरण आहे जिथे पैसे कमावण्‍यासाठी पैसे असणे ही एक पूर्व शर्त नाही. - -[फ्लॅश कर्जावर अधिक](https://aave.com/flash-loans/) - - - -### क्रिप्टोसह बचत सुरू करा {#saving} - -#### कर्ज देणे {#lending} - -तुम्ही तुमच्या क्रिप्टोला कर्ज देऊन त्यावर व्याज मिळवू शकता आणि तुमचे फंड रिअल टाइममध्ये वाढताना पाहू शकता. सध्या तुम्हाला तुमच्या स्थानिक बँकेत मिळू शकणार्‍या व्याजदरापेक्षा कितीतरी जास्त व्याजदर आहेत (जर तुम्‍ही नशीबवान असल्‍यास ते अ‍ॅक्सेस करण्‍यास सक्षम असाल). येथे एक उदाहरण आहे: - -- तुम्ही Aave सारख्या उत्पादनाला तुमचे 100 Dai, [स्टेबलकॉइन](/stablecoins/) उधार देता. -- तुम्हाला 100 Aave Dai (aDai) मिळतात जे तुमच्या कर्ज घेतलेल्या दैचे प्रतिनिधित्व करणारे टोकन आहे. -- तुमची aDai व्याजदरांच्या आधारे वाढेल आणि तुम्ही तुमच्या वॉलेटमध्ये तुमची शिल्लक वाढताना पाहू शकता. APR वर अवलंबून, तुमचे वॉलेट शिल्लक काही दिवसांनी किंवा काही तासांनंतर 100.1234 सारखे वाचेल! -- तुम्ही कधीही नियमित Dai ची रक्कम काढू शकता जी तुमच्या aDai शिल्लक असेल. - - - कर्ज देणे dapps पहा - - -#### नो-तोटा लॉटरी {#no-loss-lotteries} - -PoolTogether सारख्या नो-लॉस लॉटरी पैसे वाचवण्याचा एक मजेदार आणि नाविन्यपूर्ण मार्ग आहे. - -- तुम्ही 100 Dai टोकन वापरून 100 तिकिटे खरेदी करता. -- तुम्हाला तुमच्या 100 तिकिटांचे प्रतिनिधित्व करणारे 100 plDai मिळतात. -- तुमच्या तिकिटांपैकी एक विजेते म्हणून निवडले गेल्यास, तुमची plDai शिल्लक बक्षीस पूलच्या रकमेने वाढेल. -- तुम्ही जिंकले नाही तर, तुमचे 100 जुने पुढील आठवड्याच्या ड्रॉवर रोल ओव्हर होतील. -- तुम्ही कधीही नियमित Dai ची रक्कम काढू शकता जी तुमच्या plDai शिल्लक असेल. - -बक्षीस पूल वरील कर्ज उदाहरणाप्रमाणे तिकीट ठेवींवर कर्ज देऊन व्युत्पन्न केलेल्या सर्व व्याजाने व्युत्पन्न केला जातो. - - - PoolTogether वापरून पहा - - - - -### टोकन एक्सचेंज करा {#swaps} - -Ethereum वर हजारो टोकन आहेत. विकेंद्रित एक्सचेंज (DEXs) तुम्हाला हवे तेव्हा भिन्न टोकन्सचा व्यापार करू देतात. तुम्ही तुमच्या मालमत्तेचे नियंत्रण कधीही सोडत नाही. हे वेगळ्या देशाला भेट देताना चलन विनिमय वापरण्यासारखे आहे. परंतु DeFi आवृत्ती कधीही बंद होत नाही. बाजार वर्षातील 24/7, 365 दिवस असतात आणि तंत्रज्ञान हमी देते की व्यापार स्वीकारण्यासाठी नेहमीच कोणीतरी असेल. - -उदाहरणार्थ, तुम्हाला नो-लॉस लॉटरी PoolTogether (वर वर्णन केलेले) वापरायचे असल्यास, तुम्हाला Dai किंवा USDC सारखे टोकन आवश्यक असेल. हे DEX तुम्हाला त्या टोकन्ससाठी तुमचा ETH स्वॅप करू देतात आणि तुमचे काम पूर्ण झाल्यावर पुन्हा परत येतात. - - - प्रतिक एक्सचेंज पहा - - - - -### प्रगत व्यापार {#trading} - -ज्या व्यापाऱ्यांना थोडे अधिक नियंत्रण आवडते त्यांच्यासाठी अधिक प्रगत पर्याय आहेत. मर्यादा ऑर्डर, शाश्वत, मार्जिन ट्रेडिंग आणि बरेच काही शक्य आहे. विकेंद्रित व्यापारामुळे तुम्हाला जागतिक तरलतेमध्ये प्रवेश मिळतो, बाजार कधीही बंद होत नाही आणि तुम्ही तुमच्या मालमत्तेवर नेहमी नियंत्रण ठेवता. - -जेव्हा तुम्ही केंद्रीकृत एक्सचेंज वापरता तेव्हा तुम्हाला तुमची मालमत्ता व्यापारापूर्वी जमा करावी लागते आणि त्यांची काळजी घेण्यासाठी त्यांच्यावर विश्वास ठेवावा लागतो. तुमची मालमत्ता जमा केली जात असताना, त्यांना धोका असतो कारण केंद्रीकृत एक्सचेंज हॅकर्ससाठी आकर्षक लक्ष्य असतात. - - - ट्रेडिंग dapps पहा - - - - -### तुमचा पोर्टफोलिओ वाढवा {#investing} - -Ethereum वर फंड मॅनेजमेंट उत्पादने आहेत जी तुमच्या पसंतीच्या धोरणावर आधारित तुमचा पोर्टफोलिओ वाढवण्याचा प्रयत्न करतील. हे आपोआप आहे, प्रत्येकासाठी खुले आहे आणि तुमच्या नफ्यातील एक मानवी व्यवस्थापकाची गरज नाही. - -याचे उत्तम उदाहरण म्हणजे [DeFi Pulse इंडेक्स फंड (DPI)](https://defipulse.com/blog/defi-pulse-index/). हा असा फंड आहे जो तुमच्या पोर्टफोलिओमध्ये नेहमी [मार्केट कॅपिटलायझेशननुसार शीर्ष DeFi टोकन्स](https://www.coingecko.com/en/defi) समाविष्ट असल्याची खात्री करण्यासाठी आपोआप पुनर्संतुलित होतो. तुम्हाला कधीही कोणताही तपशील व्यवस्थापित करण्याची गरज नाही आणि तुम्हाला पाहिजे तेव्हा तुम्ही फंडातून पैसे काढू शकता. - - - गुंतवणूक dapps पहा - - - - -### तुमच्या कल्पनांना निधी द्या {#crowdfunding} - -Ethereum हे क्राउडफंडिंगसाठी एक आदर्श व्यासपीठ आहे: - -- संभाव्य निधी कोठूनही येऊ शकतात - Ethereum आणि त्याचे टोकन जगात कोठेही, कोणासाठीही खुले आहेत. -- हे पारदर्शक आहे त्यामुळे निधी उभारणारे किती पैसे उभे केले आहेत हे सिद्ध करू शकतात. आपण नंतर ओळीच्या खाली निधी कसा खर्च केला जातो हे देखील शोधू शकता. -- उदाहरणार्थ, एखादी विशिष्ट अंतिम मुदत आणि किमान रक्कम पूर्ण न झाल्यास, निधी उभारणारे स्वयंचलित परतावा सेट करू शकतात. - - - क्राउडफंडिंग dapps पहा - - -#### चतुर्भुज निधी {#quadratic-funding} - -Ethereum हे ओपन सोर्स सॉफ्टवेअर आहे आणि आत्तापर्यंतच्या बर्‍याच कामांना समुदायाने निधी दिला आहे. यामुळे एक मनोरंजक नवीन निधी उभारणी मॉडेलची वाढ झाली आहे: चतुर्भुज निधी. This has the potential to improve the way we fund all types of public goods in the future. - -Quadratic funding makes sure that the projects that receive the most funding are those with the most unique demand. In other words, projects that stand to improve the lives of the most people. ते कसे कार्य करते ते येथे आहे: - -1. दान केलेल्या निधीचा एक जुळणारा पूल आहे. -2. सार्वजनिक निधीची फेरी सुरू होते. -3. लोक काही पैसे देऊन एखाद्या प्रकल्पाची मागणी दर्शवू शकतात. -4. फेरी संपल्यानंतर, जुळणारे पूल प्रकल्पांना वितरित केले जातात. सर्वात अनोखी मागणी असलेल्यांना मॅचिंग पूलमधून सर्वाधिक रक्कम मिळते. - -याचा अर्थ 1 डॉलरच्या 100 देणग्यांसह प्रोजेक्ट A ला 10,000 डॉलर्स (जुळणार्‍या पूलच्या आकारावर अवलंबून) एका देणगीसह प्रोजेक्ट B पेक्षा जास्त निधी मिळू शकतो. - -[चतुर्भुज निधीवर अधिक](https://wtfisqf.com) - - - -### विमा {#insurance} - -विकेंद्रित विम्याचे उद्दिष्ट विमा स्वस्त करणे, भरणे जलद करणे आणि अधिक पारदर्शक करणे आहे. अधिक ऑटोमेशनसह, अधिक कव्हरेज हे परवडणारे आहे आणि पे-आउट खूप जलद आहेत. तुमच्या दाव्यावर निर्णय घेण्यासाठी वापरलेला डेटा पूर्णपणे पारदर्शक आहे. - -Ethereum उत्पादने, कोणत्याही सॉफ्टवेअरप्रमाणे, दोष आणि शोषणांमुळे ग्रस्त होऊ शकतात. त्यामुळे सध्या अवकाशातील बरीच विमा उत्पादने त्यांच्या वापरकर्त्यांना निधीच्या नुकसानापासून संरक्षण देण्यावर लक्ष केंद्रित करतात. तथापि, जीवन आपल्यावर टाकू शकेल अशा प्रत्येक गोष्टीसाठी कव्हरेज तयार करण्यासाठी प्रकल्प सुरू होत आहेत. याचे उत्तम उदाहरण म्हणजे Etherisc चे क्रॉप कव्हर ज्याचा उद्देश [केनियामधील अल्पभूधारक शेतकऱ्यांना दुष्काळ आणि पुरापासून संरक्षण करणे](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc) आहे. विकेंद्रित विमा शेतकर्‍यांना स्वस्त कवच देऊ शकतो ज्यांची किंमत पारंपारिक विम्यापेक्षा जास्त आहे. - - - विमा dapps पहा - - - - -### एग्रीगेटर आणि पोर्टफोलिओ व्यवस्थापक {#aggregators} - -खूप काही चालू असताना, तुम्हाला तुमच्या सर्व गुंतवणुकीचा, कर्जाचा आणि व्यवहारांचा मागोवा ठेवण्याचा मार्ग आवश्यक आहे. अशी अनेक उत्पादने आहेत जी तुम्हाला तुमच्या सर्व DeFi क्रियाकलाप एकाच ठिकाणाहून समन्वयित करू देतात. हे DeFi च्या ओपन आर्किटेक्चरचे सौंदर्य आहे. कार्यसंघ असे इंटरफेस तयार करू शकतात जिथे तुम्ही केवळ उत्पादनांमध्ये तुमची शिल्लक पाहू शकत नाही, तुम्ही त्यांची वैशिष्ट्ये देखील वापरू शकता. तुम्ही DeFi चे अधिक एक्सप्लोर करत असताना तुम्हाला हे उपयुक्त वाटेल. - - - पोर्टफोलिओ dapps पहा - - - - -## DeFi कसे कार्य करते? {#how-defi-works} - -मध्यस्थांची गरज नसलेल्या सेवा प्रदान करण्यासाठी DeFi क्रिप्टोकरन्सी आणि स्मार्ट करार वापरते. आजच्या आर्थिक जगात, वित्तीय संस्था व्यवहारांचे हमीदार म्हणून काम करतात. यामुळे या संस्थांना प्रचंड शक्ती मिळते कारण तुमचा पैसा त्यांच्यामार्फत वाहतो. शिवाय जगभरातील अब्जावधी लोकांकडे बँक खाते देखील नाही. - -DeFi मध्ये, एक स्मार्ट करार व्यवहारात वित्तीय संस्थेची जागा घेते. स्मार्ट कॉन्ट्रॅक्ट हा Ethereum खात्याचा एक प्रकार आहे ज्यामध्ये फंड्स ठेवता येतात आणि काही अटींवर आधारित ते पाठवू/परतावा देऊ शकतो. लाइव्ह असताना ते स्मार्ट कॉन्ट्रॅक्ट कोणीही बदलू शकत नाही – ते नेहमी प्रोग्राम केलेले असते. - -भत्ता किंवा पॉकेटमनी देण्यासाठी डिझाइन केलेले करार प्रत्येक शुक्रवारी खाते A मधून खाते B मध्ये पैसे पाठवण्यासाठी प्रोग्राम केले जाऊ शकतात. आणि जोपर्यंत खाते A मध्ये आवश्यक फंड्स असेल तोपर्यंतच हे असे होईल. फंड्स चोरण्यासाठी कोणीही कॉन्ट्रॅक्ट बदलू शकत नाही आणि प्राप्तकर्ता म्हणून खाते C जोडू शकत नाही. - -कोणालाही तपासणी आणि ऑडिट करण्यासाठी करार देखील सार्वजनिक आहेत. याचा अर्थ असा होतो की खराब करार बर्‍याचदा सामुदायिक पडताळणीखाली येतात. - -याचा अर्थ असा आहे की सध्या कोड वाचू शकणार्‍या Ethereum समुदायाच्या अधिक तांत्रिक सदस्यांवर विश्वास ठेवण्याची गरज आहे. मुक्त-स्रोत आधारित समुदाय विकासकांवर नियंत्रण ठेवण्यास मदत करतो, परंतु ही गरज कालांतराने कमी होईल कारण स्मार्ट करार वाचणे सोपे होईल आणि कोडची विश्वासार्हता सिद्ध करण्याचे इतर मार्ग विकसित केले जातील. - -## Ethereum आणि DeFi {#ethereum-and-defi} - -Ethereum अनेक कारणांमुळे DeFi साठी परिपूर्ण पाया आहे: - -- Ethereum किंवा त्यावर चालणारे स्मार्ट कॉन्ट्रॅक्ट कोणाचेही नाही – यामुळे प्रत्येकाला DeFi वापरण्याची संधी मिळते. याचा अर्थ असा आहे की तुमच्यावरील नियम कोणीही बदलू शकत नाही. -- DeFi उत्पादने पडद्यामागील सर्व समान भाषा बोलतात: Ethereum. याचा अर्थ अनेक उत्पादने अखंडपणे एकत्र काम करतात. तुम्ही एका प्लॅटफॉर्मवर टोकन्स उधार देऊ शकता आणि पूर्णपणे वेगळ्या ऍप्लिकेशनवर वेगळ्या मार्केटमध्ये व्याज देणारे टोकन एक्सचेंज करू शकता. हे तुमच्या बँकेत लॉयल्टी पॉइंट्स कॅश करण्यास सक्षम असण्यासारखे आहे. -- टोकन आणि क्रिप्टोकरन्सी Ethereum मध्ये तयार केली जाते, एक सामायिक खाते – व्यवहार आणि मालकीचा मागोवा ठेवणे ही Ethereum ची गोष्ट आहे. -- Ethereum संपूर्ण आर्थिक स्वातंत्र्यास अनुमती देते - बहुतेक उत्पादने कधीही तुमच्या निधीची कस्टडी घेणार नाहीत, तुमच्यावर नियंत्रण ठेवून. - -तुम्ही लेयर्समध्ये DeFi चा विचार करू शकता: - -1. ब्लॉकचेन – Ethereumमध्ये व्यवहाराचा इतिहास आणि खात्यांची स्थिती असते. -2. मालमत्ता – [ETH](/eth/) आणि इतर टोकन (चलने). -3. प्रोटोकॉल – [स्मार्ट कॉन्ट्रॅक्ट्स](/glossary/#smart-contract) जे कार्यक्षमता प्रदान करतात, उदाहरणार्थ, एक सेवा जी मालमत्तेचे विकेंद्रित कर्ज देण्यास परवानगी देते. -4. [अनुप्रयोग](/dapps/) – आम्ही प्रोटोकॉल व्यवस्थापित करण्यासाठी आणि प्रवेश करण्यासाठी वापरतो ती उत्पादने. - -## DeFi तयार करणे {#build-defi} - -DeFi एक मुक्त-स्रोत चळवळ आहे. DeFi प्रोटोकॉल आणि ऍप्लिकेशन्स तुमच्यासाठी तपासणी, काटा आणि नवीन शोध घेण्यासाठी खुले आहेत. या स्तरित स्टॅकमुळे (ते सर्व समान बेस ब्लॉकचेन आणि मालमत्ता सामायिक करतात), अद्वितीय कॉम्बो संधी अनलॉक करण्यासाठी प्रोटोकॉल मिश्रित आणि जुळवले जाऊ शकतात. - - - Dapps तयार करण्याबद्दल अधिक - - -## Further reading {#futher-reading} - -### DeFi डेटा {#defi-data} - -- [DeFi प्राइम](https://defiprime.com/) -- [DeFi Llama](https://defillama.com/) -- [DeFi रेट](https://defirate.com/) - -### DeFi आर्टिकल्स {#defi-articles} - -- [DeFi साठी नवशिक्यांसाठी मार्गदर्शक](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _सिड कोएल्हो-प्रभू, 6 जानेवारी 2020_ - -### Videos {#videos} - -- [फाइनेमॅटिक्स - विकेंद्रित वित्त शिक्षण](https://finematics.com/) – _DeFi वर व्हिडिओ_ -- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _DeFi मूलभूत गोष्टी: या अधूनमधून गोंधळात टाकणाऱ्या जागेत प्रारंभ करण्यासाठी तुम्हाला जे काही माहित असणे आवश्यक आहे._ -- [व्हाइटबोर्ड क्रिप्टो](https://youtu.be/17QRFlml4pA) _DeFi म्हणजे काय?_ - -### समुदाय {#communities} - -- [DeFi Llama Discord सर्व्हर](https://discord.gg/buPFYXzDDd) -- [DeFi Pulse Discord सर्व्हर](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/mr/desci/index.md b/src/content/translations/mr/desci/index.md deleted file mode 100644 index 0eaa885718d..00000000000 --- a/src/content/translations/mr/desci/index.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: विकेंद्रित विज्ञान (DeSci) -description: Ethereum वर विकेंद्रित विज्ञानाचे विहंगावलोकन -lang: mr -template: use-cases -emoji: ":microscope:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: सध्याच्या वैज्ञानिक प्रणालीसाठी जागतिक, खुला पर्याय. -summaryPoint2: तंत्रज्ञान जे शास्त्रज्ञांना निधी उभारण्यास, प्रयोग चालविण्यास, डेटा सामायिक करण्यास, अंतर्दृष्टी वितरित करण्यास आणि बरेच काही करण्यास सक्षम करते. -summaryPoint3: मुक्त विज्ञान चळवळीवर तयार होते. ---- - -## विकेंद्रित विज्ञान (DeSci) म्हणजे काय? {#what-is-desci} - -विकेंद्रित विज्ञान (DeSci) ही एक चळवळ आहे ज्याचा उद्देश Web3 स्टॅकचा वापर करून वैज्ञानिक ज्ञानाचा न्याय्य आणि समानतेने निधी, निर्मिती, पुनरावलोकन, क्रेडिट, संग्रहण आणि प्रसार करण्यासाठी सार्वजनिक पायाभूत सुविधा निर्माण करणे आहे. - -DeSci चे उद्दिष्ट एक अशी परिसंस्था निर्माण करणे आहे जिथे शास्त्रज्ञांना त्यांचे संशोधन उघडपणे सामायिक करण्यासाठी आणि त्यांच्या कार्याचे श्रेय प्राप्त करण्यासाठी प्रोत्साहन दिले जाते आणि कोणालाही संशोधनात सहज प्रवेश आणि योगदान देण्याची परवानगी दिली जाते. DeSci वैज्ञानिक ज्ञान प्रत्येकासाठी प्रवेशयोग्य असावे आणि वैज्ञानिक संशोधनाची प्रक्रिया पारदर्शक असावी या कल्पनेवर कार्य करते. DeSci अधिक विकेंद्रित आणि वितरित वैज्ञानिक संशोधन मॉडेल तयार करत आहे, जे सेन्सॉरशिप आणि केंद्रीय प्राधिकरणांच्या नियंत्रणास अधिक प्रतिरोधक बनवत आहे. DeSci ला असे वातावरण निर्माण करण्याची आशा आहे जिथे नवीन आणि अपारंपरिक कल्पना निधी, वैज्ञानिक साधने आणि संप्रेषण चॅनेलच्या प्रवेशाचे विकेंद्रीकरण करून भरभराट करू शकतात. - -विकेंद्रित विज्ञान अधिक वैविध्यपूर्ण निधी स्रोतांना अनुमती देते ([DAO](/dao/) कडून, [चतुर्भुज देणग्या](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) क्राउडफंडिंग आणि अधिक), अधिक प्रवेशयोग्य प्रवेश डेटा आणि पद्धती आणि पुनरुत्पादनासाठी प्रोत्साहन प्रदान करून. - -### जुआन बेनेट - DeSci चळवळ - - - -## DeSci विज्ञान कसे सुधारते {#desci-improves-science} - -विज्ञानातील प्रमुख समस्यांची अपूर्ण यादी आणि विकेंद्रित विज्ञान या समस्यांचे निराकरण करण्यात कशी मदत करू शकते - -| **विकेंद्रित विज्ञान** | **पारंपारिक विज्ञान** | -| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------- | -| चतुर्भुज देणग्या किंवा DAO सारख्या यंत्रणेचा वापर करून निधीचे वितरण जनतेद्वारे निश्चित केले जाते. | लहान, बंद, केंद्रीकृत गट निधीचे वितरण नियंत्रित करतात. | -| तुम्ही डायनॅमिक संघांमध्ये जगभरातील समवयस्कांसह सहयोग करता. | निधी देणार्‍या संस्था आणि गृहसंस्था तुमचे सहकार्य मर्यादित करतात. | -| निधीचे निर्णय ऑनलाइन आणि पारदर्शकपणे घेतले जातात. नवीन निधीची यंत्रणा शोधली जाते. | निधीचे निर्णय दीर्घ टर्नअराउंड वेळ आणि मर्यादित पारदर्शकतेसह घेतले जातात. काही निधीची यंत्रणा अस्तित्वात आहे. | -| Web3 प्रिमिटिव्ह वापरून प्रयोगशाळा सेवा सामायिक करणे सोपे आणि अधिक पारदर्शक केले आहे. | प्रयोगशाळेतील संसाधने सामायिक करणे अनेकदा धीमे आणि अपारदर्शक असते. | -| प्रकाशनासाठी नवीन मॉडेल विकसित केले जाऊ शकतात जे विश्वास, पारदर्शकता आणि सार्वत्रिक प्रवेशासाठी Web3 आदिम वापरतात. | तुम्ही वारंवार अकार्यक्षम, पक्षपाती आणि शोषक म्हणून मान्य केलेल्या स्थापित मार्गांद्वारे प्रकाशित करता. | -| तुम्ही पीअर-पुनरावलोकन कार्यासाठी टोकन आणि प्रतिष्ठा मिळवू शकता. | तुमचे पीअर-पुनरावलोकन कार्य न भरलेले आहे, फायद्यासाठी प्रकाशकांना लाभदायक आहे. | -| तुम्ही व्युत्पन्न करत असलेल्या बौद्धिक संपत्तीचे (IP) मालक आहात आणि ते पारदर्शक अटींनुसार वितरित करता. | तुम्ही व्युत्पन्न केलेला IP तुमच्या गृहसंस्थेच्या मालकीचा आहे. IP वर एक्सेस पारदर्शक नाही. | -| अयशस्वी प्रयत्नांच्या डेटासह सर्व संशोधन सामायिक करणे, सर्व पायऱ्या ऑन-चेन करून. | प्रकाशन पूर्वाग्रह म्हणजे संशोधक यशस्वी परिणाम देणारे प्रयोग सामायिक करण्याची अधिक शक्यता असते. | - -## Ethereum आणि DeSci {#ethereum-and-desci} - -विकेंद्रित विज्ञान प्रणालीसाठी मजबूत सुरक्षा, किमान आर्थिक आणि व्यवहार खर्च आणि अनुप्रयोग विकासासाठी समृद्ध परिसंस्था आवश्यक असेल. विकेंद्रित विज्ञान स्टॅक तयार करण्यासाठी आवश्यक असलेली प्रत्येक गोष्ट Ethereum पुरवते. - -## DeSci वापर प्रकरणे {#use-cases} - -DeSci डिजिटल जगामध्ये Web2 अकादमीला ऑनबोर्ड करण्यासाठी वैज्ञानिक टूलसेट तयार करत आहे. खाली Web3 वैज्ञानिक समुदायाला ऑफर करू शकणार्‍या वापराच्या प्रकरणांचा नमुना आहे. - -### प्रकाशन {#publishing} - -विज्ञान प्रकाशन हे प्रसिद्धपणे समस्याप्रधान आहे कारण ते प्रकाशन संस्थांद्वारे व्यवस्थापित केले जाते जे शोधनिबंध तयार करण्यासाठी वैज्ञानिक, समीक्षक आणि संपादक यांच्या मोफत श्रमांवर अवलंबून असतात परंतु नंतर अत्याधिक प्रकाशन शुल्क आकारतात. ज्या लोकांनी सहसा अप्रत्यक्षपणे कामासाठी आणि प्रकाशनाच्या खर्चासाठी कर आकारणीद्वारे पैसे दिले आहेत, ते प्रकाशकाला पुन्हा पैसे दिल्याशिवाय त्याच कामात प्रवेश करू शकत नाहीत. वैयक्तिक विज्ञान पेपर प्रकाशित करण्यासाठी एकूण फी बहुतेकदा पाच आकडे ($USD) असते, जी म्हणून वैज्ञानिक ज्ञानाची संपूर्ण संकल्पना [सार्वजनिक हित](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 मध्ये DAO आणि 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 मालकी आणि विकास {#ip-ownership} - -बौद्धिक संपदा (IP) ही पारंपारिक विज्ञानातील एक मोठी समस्या आहे: विद्यापीठांमध्ये अडकून राहण्यापासून किंवा बायोटेकमध्ये न वापरल्या जाण्यापासून, कुप्रसिद्धपणे मूल्य देणे कठीण आहे. तथापि, डिजिटल मालमत्तेची मालकी (जसे की वैज्ञानिक डेटा किंवा लेख) ही Web3 [नॉन-फंगीबल टोकन्स (NFT)](/nft/) वापरून अपवादात्मकपणे चांगली कामगिरी करते. - -ज्या प्रकारे NFT भविष्यातील व्यवहारांसाठी महसूल मूळ निर्मात्याकडे पाठवू शकतात, त्याच प्रकारे तुम्ही संशोधक, प्रशासकीय संस्था (DAO सारख्या) किंवा ज्यांचा डेटा संकलित केला आहे अशा विषयांना पुरस्कृत करण्यासाठी पारदर्शक मूल्य विशेषता साखळी स्थापन करू शकता. - -[IP-NFT](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) देखील एक म्हणून कार्य करू शकतात हाती घेतलेल्या संशोधन प्रयोगांच्या विकेंद्रित डेटा भांडाराची गुरुकिल्ली, आणि NFT आणि [DeFi](/defi/) आर्थिककरण (फ्रॅक्शनलायझेशनपासून कर्ज पूल आणि मूल्य मूल्यांकनापर्यंत) प्लग इन करा. हे थेट ऑन-चेन संशोधन करण्यासाठी DAO सारख्या DAO जसे की [VitaDAO](https://www.vitadao.com/) ला देखील अनुमती देते. नॉन-हस्तांतरणीय ["सोलबाउंड" टोकन्स](https://vitalik.ca/general/2022/01/26/soulbound.html)चे आगमन देखील DeSci मध्ये महत्त्वपूर्ण भूमिका बजावू शकते आणि व्यक्तींना त्यांचे अनुभव आणि त्यांच्या Ethereum पत्त्याशी जोडलेले क्रेडेन्शियल्स सिद्ध करू शकतात. - -### डेटा स्टोरेज, ऍक्सेस आणि आर्किटेक्चर {#data-storage} - -Web3 पॅटर्नचा वापर करून वैज्ञानिक डेटा मोठ्या प्रमाणात प्रवेशयोग्य बनविला जाऊ शकतो आणि वितरीत स्टोरेज संशोधनास आपत्तीजनक घटनांमध्ये टिकून राहण्यास सक्षम करते. - -प्रारंभ बिंदू योग्य सत्यापित करण्यायोग्य क्रेडेन्शियल्स असलेल्या कोणत्याही विकेंद्रीकृत ओळखीद्वारे प्रवेशयोग्य प्रणाली असणे आवश्यक आहे. हे विश्वसनीय पक्षांद्वारे संवेदनशील डेटाची सुरक्षितपणे प्रतिकृती बनवण्याची अनुमती देते, रिडंडंसी आणि सेन्सॉरशिप प्रतिकार सक्षम करते, परिणामांचे पुनरुत्पादन आणि एकाधिक पक्षांना सहयोग करण्याची आणि डेटासेटमध्ये नवीन डेटा जोडण्याची क्षमता देखील सक्षम करते. सारख्या गोपनीय संगणकीय पद्धती [कम्प्युट-टू-डेटा](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 डेटा सोल्यूशन्स वरील परिस्थितींना समर्थन देतात आणि खरोखर मुक्त विज्ञानासाठी पाया प्रदान करतात, जेथे संशोधक प्रवेश परवानगी किंवा शुल्काशिवाय सार्वजनिक वस्तू तयार करू शकतात. Web3 सार्वजनिक डेटा सोल्यूशन्स जसे की IPFS, Arweave आणि Filecoin विकेंद्रीकरणासाठी ऑप्टिमाइझ केले आहेत. dClimate, उदाहरणार्थ, हवामान आणि हवामान डेटावर सार्वत्रिक प्रवेश प्रदान करते, ज्यामध्ये हवामान केंद्रे आणि हवामानाच्या अंदाज मॉडेल्सचा समावेश आहे. - -## यात सामील व्हा {#get-involved} - -प्रकल्प एक्सप्लोर करा आणि DeSci समुदायात सामील व्हा. - -- [DeSci.Global: जागतिक कार्यक्रम आणि भेटीचे कॅलेंडर](https://desci.global) -- [विज्ञान टेलिग्रामसाठी ब्लॉकचेन](https://t.me/BlockchainForScience) -- [रेणू: तुमच्या संशोधन प्रकल्पांसाठी निधी द्या आणि निधी मिळवा](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 फाउंडेशन: DeSci प्रकाशन साधन बिल्डर](https://descifoundation.org/) -- [DeSci.World: वापरकर्त्यांना विकेंद्रित विज्ञान पाहण्यासाठी, व्यस्त ठेवण्यासाठी वन-स्टॉप शॉप](https://desci.world) -- [फ्लेमिंग प्रोटोकॉल: ओपन-सोर्स डेटा इकॉनॉमी जी सहयोगात्मक बायोमेडिकल शोधांना चालना देते](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [OceanDAO: DAO डेटा-संबंधित विज्ञानासाठी निधी नियंत्रित करते](https://oceanprotocol.com/dao) -- [जाणीव: खुले विकेंद्रित विज्ञान कार्यप्रवाह](https://opsci.io/research/) -- [LabDAO: सिलिकोमध्ये प्रोटीन फोल्ड करा](https://alphafodl.vercel.app/) -- [Bio.xyz: तुमच्या बायोटेक DAO किंवा desci प्रकल्पासाठी निधी मिळवा](https://www.molecule.to/) -- [ResearchHub: वैज्ञानिक परिणाम पोस्ट करा आणि समवयस्कांशी संभाषण करा](https://www.researchhub.com/) -- [VitaDAO: दीर्घायुषी संशोधनासाठी प्रायोजित संशोधन कराराद्वारे निधी प्राप्त करा](https://www.vitadao.com/) -- [फ्लेमिंग प्रोटोकॉल: ओपन-सोर्स डेटा इकॉनॉमी जी सहयोगात्मक बायोमेडिकल शोधांना चालना देते](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/) -- [DeSci लॅब](https://www.desci.com/) - -आम्ही नवीन प्रकल्पांच्या सूचीसाठी सूचनांचे स्वागत करतो - कृपया प्रारंभ करण्यासाठी आमचे [सूची धोरण](/contributing/adding-desci-projects/) पहा! - -## Further reading {#further-reading} - -- [DeSci Wiki Jocelyn Pearl आणि Ultrarare द्वारे](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) -- [a16z भविष्यासाठी जोसेलिन पर्लद्वारे विकेंद्रित बायोटेकसाठी मार्गदर्शक](https://future.a16z.com/a-guide-to-decentralized-biotech/) -- [DeSci साठी केस](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) -- [DeSci साठी मार्गदर्शक](https://future.com/what-is-decentralized-science-aka-desci/) -- [विकेंद्रित विज्ञान संसाधने](https://www.vincentweisser.com/decentralized-science) -- [रेणूचे बायोफार्मा IP-NFT - एक तांत्रिक वर्णन](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) -- [जॉन स्टारद्वारे विश्वासार्ह विज्ञान प्रणाली तयार करणे](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) -- [बायोटेक DAO चा उदय](https://molecule.to/blog/the-emergence-of-biotech-daos) -- [पॉल कोल्हास - 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) -- [DeSci: सॅम्युअल अकिनोशो द्वारे संशोधनाचे भविष्य](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) -- [नादिया द्वारे विज्ञान निधी (उपसंहार: DeSci आणि नवीन क्रिप्टो प्रिमिटिव्स)](https://nadia.xyz/science-funding) -- [विकेंद्रीकरण औषधांच्या विकासात व्यत्यय आणत आहे](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) - -### Videos {#videos} - -- [विकेंद्रित विज्ञान म्हणजे काय?](https://www.youtube.com/watch?v=-DeMklVWNdA) -- [दीर्घायुष्य संशोधन आणि क्रिप्टोच्या छेदनबिंदूबद्दल विटालिक बुटेरिन आणि वैज्ञानिक ऑब्रे डी ग्रे यांच्यातील संभाषण](https://www.youtube.com/watch?v=x9TSJK1widA) -- [वैज्ञानिक प्रकाशन तुटलेले आहे. Web3 याचे निराकरण करू शकते?](https://www.youtube.com/watch?v=WkvzYgCvWj8) -- [जॉन बेनेट - DeSci, स्वतंत्र प्रयोगशाळा आणि लार्ज स्केल डेटा सायन्स](https://www.youtube.com/watch?v=zkXM9H90g_E) -- [सेबॅस्टियन ब्रुनेमेयर - DeSci बायोमेडिकल संशोधन कसे बदलू शकते आणि व्हेंचर कॅपिटल](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/mr/nft/index.md b/src/content/translations/mr/nft/index.md deleted file mode 100644 index 900a3625960..00000000000 --- a/src/content/translations/mr/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: नॉन-फंगीबल टोकन (NFT) -description: Ethereum वर NFT चे विहंगावलोकन -lang: mr -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: होलोग्रामद्वारे Ethचा लोगो प्रदर्शित केले जात आहे. -summaryPoint1: Ethereum-आधारित मालमत्ता म्हणून अद्वितीय कोणत्याही गोष्टीचे प्रतिनिधित्व करण्याचा एक मार्ग. -summaryPoint2: NFT सामग्री निर्मात्यांना पूर्वीपेक्षा अधिक शक्ती देत ​​आहेत. -summaryPoint3: Ethereum ब्लॉकचेनवर स्मार्ट कॉन्ट्रॅक्टद्वारे समर्थित. ---- - -## What are NFTs? {#what-are-nfts} - -NFT हे प्रतिक आहेत जे वैयक्तिकरित्या अद्वितीय आहेत. प्रत्येक NFT वेगवेगळे गुणधर्म (बुरशी नसलेले) असतात आणि ते दुर्मिळ असतात. हे ERC-20 सारख्या टोकनपेक्षा वेगळे आहे जेथे सेटमधील प्रत्येक टोकन एकसारखे असते आणि त्याचे गुणधर्म समान असतात ('फंगीबल'). तुमच्या वॉलेटमध्ये कोणते विशिष्ट डॉलरचे बिल आहे याची तुम्हाला पर्वा नाही, कारण ते सर्व एकसारखे आणि समान आहेत. तथापि, तुमच्या मालकीच्या कोणत्या विशिष्ट NFT ची काळजी तुम्ही _करता_, कारण त्या सर्वांकडे वैयक्तिक गुणधर्म आहेत जे त्यांना इतरांपेक्षा वेगळे करतात ('नॉन-फंजिबल'). - -प्रत्येक NFT ची विशिष्टता कला, संग्रहणीय वस्तू किंवा अगदी रिअल इस्टेट सारख्या गोष्टींचे टोकनीकरण सक्षम करते, जेथे एक विशिष्ट अद्वितीय NFT काही विशिष्ट अद्वितीय वास्तविक जग किंवा डिजिटल आयटमचे प्रतिनिधित्व करते. Ethereum ब्लॉकचेनद्वारे मालमत्तेची मालकी सुरक्षित केली जाते - कोणीही मालकीच्या रेकॉर्डमध्ये बदल करू शकत नाही किंवा नवीन NFT अस्तित्वात कॉपी/पेस्ट करू शकत नाही. - - - -## मालमत्तेचे इंटरनेट {#internet-of-assets} - -NFT आणि Ethereum आज इंटरनेटवर अस्तित्वात असलेल्या काही समस्यांचे निराकरण करतात. सर्व काही अधिक डिजिटल होत असताना, भौतिक वस्तूंचे गुणधर्म जसे की टंचाई, विशिष्टता आणि मालकीचा पुरावा यांची प्रतिकृती तयार करण्याची आवश्यकता आहे. केंद्रीय संस्थेद्वारे नियंत्रित नसलेल्या मार्गाने. उदाहरणार्थ, NFT सह, तुम्ही एका कंपनीच्या विशिष्ट संगीत अॅपसाठी विशिष्ट नसलेल्या संगीत mp3 चे मालक असू शकता किंवा तुम्ही एक सोशल मीडिया हँडल घेऊ शकता जे तुम्ही विकू शकता किंवा स्वॅप करू शकता, परंतु तुमच्याकडून अनियंत्रितपणे काढून घेतले जाऊ शकत नाही प्लॅटफॉर्म प्रदाता. - -आज आपल्यापैकी बरेच जण वापरत असलेल्या इंटरनेटच्या तुलनेत NFT चे इंटरनेट कसे दिसते ते येथे आहे... - -### एक तुलना {#nft-comparison} - -| एक NFT इंटरनेट | आज इंटरनेट | -| ----------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | -| तुम्ही तुमच्या मालमत्तेचे मालक आहात! फक्त तुम्ही ते विकू किंवा स्वॅप करू शकता. | तुम्ही एखाद्या संस्थेकडून मालमत्ता भाड्याने घेता. | -| NFT डिजिटली अद्वितीय आहेत, कोणतेही दोन NFT समान नाहीत. | खाद्या घटकाची प्रत सहसा मूळपासून वेगळी करता येत नाही. | -| NFT ची मालकी कोणीही सत्यापित करण्यासाठी ब्लॉकचेनवर संग्रहित केली आहे. | डिजिटल वस्तूंच्या मालकीचे रेकॉर्ड संस्थांद्वारे नियंत्रित सर्व्हरवर संग्रहित केले जातात - तुम्ही त्यासाठी त्यांचे शब्द घेणे आवश्यक आहे. | -| NFT हे Ethereum वरील स्मार्ट कॉन्ट्रॅक्ट आहेत. याचा अर्थ ते Ethereum वरील इतर स्मार्ट कॉन्ट्रॅक्ट आणि अॅप्समध्ये सहजपणे वापरले जाऊ शकतात! | डिजिटल वस्तू असलेल्या कंपन्यांना सहसा त्यांच्या स्वतःच्या "भिंतीच्या बाग" पायाभूत सुविधांची आवश्यकता असते. | -| सामग्री निर्माते त्यांचे कार्य कोठेही विकू शकतात आणि जागतिक बाजारपेठेत प्रवेश करू शकतात. | निर्माते ते वापरत असलेल्या प्लॅटफॉर्मच्या पायाभूत सुविधा आणि वितरणावर अवलंबून असतात. हे सहसा वापराच्या अटी आणि भौगोलिक निर्बंधांच्या अधीन असतात. | -| NFT निर्माते त्यांच्या स्वतःच्या कामावर मालकी हक्क राखू शकतात आणि थेट NFT करारामध्ये प्रोग्राम रॉयल्टी ठेवू शकतात. | प्लॅटफॉर्म, जसे की संगीत प्रवाह सेवा, विक्रीतून मिळालेला बहुतांश नफा राखून ठेवतात. | - -## NFT कसे कार्य करतात? {#how-nfts-work} - -Ethereum वर जारी केलेल्या कोणत्याही टोकनप्रमाणे, NFT स्मार्ट कॉन्ट्रॅक्टद्वारे जारी केले जातात. स्मार्ट कॉन्ट्रॅक्ट अनेक NFT मानकांपैकी (सामान्यत: ERC-721 किंवा ERC-1155) एकाशी सुसंगत आहे जे कराराची कार्ये परिभाषित करतात. करार ('मिंट') NFT तयार करू शकतो आणि त्यांना विशिष्ट मालकास नियुक्त करू शकतो. विशिष्ट पत्त्यांवर विशिष्ट NFT मॅप करून करारामध्ये मालकीची व्याख्या केली जाते. NFT मध्ये एक ID आहे आणि सामान्यत: त्याच्याशी संबंधित मेटाडेटा आहे जो विशिष्ट टोकन अद्वितीय बनवतो. - -जेव्हा एखादी व्यक्ती NFT तयार करते किंवा मिंट करते, तेव्हा ते त्यांच्या पत्त्यावर विशिष्ट NFT नियुक्त करणारे स्मार्ट करारातील फंक्शन खरोखर कार्यान्वित करत असतात. ही माहिती कॉन्ट्रॅक्टच्या स्टोरेजमध्ये साठवली जाते, जो ब्लॉकचेनचा भाग आहे. कराराचा निर्माता करारामध्ये अतिरिक्त तर्क लिहू शकतो, उदाहरणार्थ एकूण पुरवठा मर्यादित करणे किंवा प्रत्येक वेळी टोकन हस्तांतरित केल्यावर निर्मात्याला देय असलेली रॉयल्टी परिभाषित करणे. - -## NFT कशासाठी वापरतात? {#nft-use-cases} - -NFT चा वापर अनेक गोष्टींसाठी केला जातो, यासह: - -- आपण कार्यक्रमास उपस्थित राहिल्याचे सिद्ध करणे -- तुम्ही कोर्स पूर्ण केल्याचे प्रमाणित करा -- खेळांसाठी मालकीच्या वस्तू -- डिजिटल कला -- वास्तविक-जगातील मालमत्ता टोकन करणे -- आपली ऑनलाइन ओळख सिद्ध करणे -- सामग्रीमध्ये प्रवेश करणे -- तिकीट -- विकेंद्रित इंटरनेट डोमेन नावे -- DeFi मध्ये संपार्श्विक - -कदाचित तुम्ही असे कलाकार आहात ज्यांना NFT वापरून त्यांचे कार्य सामायिक करायचे आहे, नियंत्रण न गमावता आणि मध्यस्थांना तुमचा नफा बलिदान न देता. तुम्ही एक नवीन करार तयार करू शकता आणि NFT ची संख्या, त्यांचे गुणधर्म आणि काही विशिष्ट कलाकृतीची लिंक निर्दिष्ट करू शकता. कलाकार या नात्याने, तुम्ही स्मार्ट कॉन्ट्रॅक्टमध्ये तुम्हाला देय असलेली रॉयल्टी प्रोग्राम करू शकता (उदा. प्रत्येक वेळी NFT हस्तांतरित केल्यावर विक्री किमतीच्या 5% रक्कम करार मालकाला हस्तांतरित करा). तुम्ही नेहमी हे देखील सिद्ध करू शकता की तुम्ही NFT तयार केले आहे कारण तुमच्या मालकीचे वॉलेट आहे ज्याने करार तैनात केला आहे. तुमचे खरेदीदार सहजपणे सिद्ध करू शकतात की त्यांच्याकडे तुमच्या संग्रहातील एक प्रामाणिक NFT आहे कारण त्यांचा वॉलेट पत्ता तुमच्या स्मार्ट करारातील टोकनशी संबंधित आहे. ते Ethereum इकोसिस्टममध्ये त्याचा वापर करू शकतात, त्याच्या सत्यतेवर विश्वास ठेवतात. - -किंवा एखाद्या क्रीडा स्पर्धेसाठी तिकीट विचारात घ्या. ज्याप्रमाणे एखाद्या कार्यक्रमाचा आयोजक किती तिकिटे विकायची हे निवडू शकतो, त्याचप्रमाणे NFT चा निर्माता किती प्रतिकृती अस्तित्वात आहे हे ठरवू शकतो. काहीवेळा या अचूक प्रतिकृती असतात, जसे की 5000 सामान्य प्रवेश तिकिटे. काहीवेळा पुष्कळ टकसाळ असतात जे अगदी सारखे असतात, परंतु प्रत्येक थोडे वेगळे असते, जसे की नियुक्त केलेल्या सीटसह तिकीट. हे तिकिट हाताळणाऱ्यांना पैसे न देता पीअर-टू-पीअर खरेदी आणि विक्री करता येतात आणि खरेदीदार नेहमी कराराचा पत्ता तपासून तिकिटाच्या सत्यतेची खात्री देतो. - -ethereum.org वर, लोकांनी आमच्या GitHub रेपॉजिटरीमध्ये योगदान दिले आहे किंवा कॉल अटेंड केले आहेत हे दाखवण्यासाठी NFT चा वापर केला जातो आणि आम्हाला आमचे स्वतःचे NFT डोमेन नाव देखील मिळाले आहे. तुम्ही ethereum.org मध्ये योगदान दिल्यास, तुम्ही POAP NFT चा दावा करू शकता. काही क्रिप्टो मीटअप्सनी POAP चा तिकीट म्हणून वापर केला आहे. [योगदानाबद्दल अधिक](/contributing/#poap). - -![ethereum.org POAP](./poap.png) - -या वेबसाइटवर NFT, **ethereum.eth** द्वारे समर्थित पर्यायी डोमेन नाव देखील आहे. आमचा `.org` पत्ता डोमेन नेम सिस्टम (DNS) प्रदात्याद्वारे मध्यवर्तीरित्या व्यवस्थापित केला जातो, तर ethereum`.eth` Ethereum वर Ethereum नेम सेवेद्वारे (ENS) नोंदणीकृत आहे. आणि ते आमच्या मालकीचे आणि व्यवस्थापित केले आहे. [आमचे ENS रेकॉर्ड तपासा](https://app.ens.domains/name/ethereum.eth) - -[ENS वर अधिक](https://app.ens.domains) - - - -### NFT सुरक्षा {#nft-security} - -Ethereum ची सुरक्षितता प्रूफ-ऑफ-स्टेकमधून येते. सिस्टम दुर्भावनापूर्ण क्रियांना आर्थिकदृष्ट्या परावृत्त करण्यासाठी, Ethereum छेडछाड-प्रूफ बनवण्यासाठी डिझाइन केले आहे. हेच NFT शक्य करते. एकदा तुमचा NFT व्यवहार असलेला ब्लॉक अंतिम झाला की तो बदलण्यासाठी आक्रमणकर्त्याला लाखो ETH खर्च करावे लागतील. Ethereum सॉफ्टवेअर चालवणारा कोणीही NFT सह अप्रामाणिक छेडछाड शोधण्यात तत्काळ सक्षम असेल आणि वाईट अभिनेत्याला आर्थिक दंड आकारला जाईल आणि बाहेर काढले जाईल. - -NFT शी संबंधित सुरक्षा समस्या बहुतेकदा फिशिंग घोटाळे, स्मार्ट कॉन्ट्रॅक्ट भेद्यता किंवा वापरकर्ता त्रुटींशी संबंधित असतात (जसे की अनवधानाने खाजगी की उघड करणे), NFT मालकांसाठी चांगली वॉलेट सुरक्षा गंभीर बनवते. - - - सुरक्षिततेबद्दल अधिक - - -## Further reading {#further-reading} - -- [NFT साठी एक नवशिक्या मार्गदर्शक](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _लिंडा झी, जानेवारी 2020_ -- [EtherscanNFT ट्रॅकर](https://etherscan.io/nft-top-contracts) -- [ERC-721 टोकन मानक](/developers/docs/standards/tokens/erc-721/) -- [ERC-1155 टोकन मानक](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/mr/refi/index.md b/src/content/translations/mr/refi/index.md deleted file mode 100644 index d3d5612fab0..00000000000 --- a/src/content/translations/mr/refi/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: रीजनरेटिव्ह फायनान्स (ReFi) -description: ReFi आणि त्याच्या वर्तमान वापर प्रकरणांचे विहंगावलोकन. -lang: mr -template: use-cases -emoji: ":recycle:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: पुनरुत्पादक तत्त्वांवर आधारित पर्यायी आर्थिक व्यवस्था -summaryPoint2: हवामान बदलासारख्या जागतिक स्तरावरील समन्वय संकटांचे निराकरण करण्यासाठी Ethereum चा वापर करण्याचा प्रयत्न -summaryPoint3: सत्यापित कार्बन क्रेडिट्स सारख्या पर्यावरणीय फायद्याच्या मालमत्तेचे मोठ्या प्रमाणात स्केल करण्याचे साधन ---- - -## ReFi म्हणजे काय? {#what-is-refi} - -**रिजनरेटिव्ह फायनान्स (ReFi)** हा ब्लॉकचेनच्या शीर्षस्थानी तयार केलेल्या साधनांचा आणि कल्पनांचा एक संच आहे, ज्याचा उद्देश एक्सट्रॅक्टिव्ह किंवा शोषण करण्याऐवजी पुनरुत्पादक अर्थव्यवस्था निर्माण करणे आहे. अखेरीस, एक्सट्रॅक्टिव्ह सिस्टम उपलब्ध संसाधने कमी करतात आणि कोलमडतात; पुनरुत्पादक यंत्रणेशिवाय, त्यांच्यात लवचिकता नाही. ReFi आपल्या ग्रहातून आणि समुदायांमधुन संसाधनांच्या अनिश्चित उत्खननापासून आर्थिक मूल्याची निर्मिती करणे आवश्यक आहे या गृहीतकावर कार्य करते. - -त्याऐवजी, ReFi चे उद्दिष्ट पुनर्जन्म चक्र तयार करून पर्यावरणीय, सांप्रदायिक किंवा सामाजिक समस्या सोडवणे आहे. या प्रणाली एकाच वेळी इकोसिस्टम आणि समुदायांना लाभ देत असताना सहभागींसाठी मूल्य निर्माण करतात. - -[Capital Institute](https://capitalinstitute.org) च्या जॉन फुलरटन यांनी प्रवर्तित केलेली पुनर्निर्मिती अर्थशास्त्राची संकल्पना ReFi च्या पायांपैकी एक आहे. त्यांनी आठ परस्परसंबंधित तत्त्वे प्रस्तावित केली जी प्रणालीगत आरोग्यावर आधारित आहेत: - -![आठ परस्पर जोडलेली तत्त्वे](../../assets/use-cases/refi-regenerative-economy-diagram.png) - -[स्मार्ट कॉन्ट्रॅक्ट्स](/developers/docs/smart-contracts/) आणि [विकेंद्रित वित्त (DeFi)](/defi/) अनुप्रयोग वापरून ReFi प्रकल्प ही तत्त्वे ओळखतात पुनरुत्पादक वर्तनांना प्रोत्साहन द्या, उदा. बिघडलेली परिसंस्था पुनर्संचयित करणे आणि हवामान बदल आणि जैवविविधता नष्ट होणे यासारख्या जागतिक समस्यांवर मोठ्या प्रमाणावर सहकार्य करणे. - -ReFi [विकेंद्रित विज्ञान (DeSci)](/desci/) चळवळीला देखील ओव्हरलॅप करते, जे Ethereumचा वापर वित्तपुरवठा, निर्मिती, पुनरावलोकन, क्रेडिट, संग्रह आणि वैज्ञानिक ज्ञानाचा प्रसार करण्यासाठी व्यासपीठ म्हणून करते. DeSci साधने वृक्षारोपण, महासागरातून प्लास्टिक काढून टाकणे किंवा खराब झालेले पर्यावरण पुनर्संचयित करणे यासारख्या पुनरुत्पादक क्रियाकलापांची अंमलबजावणी आणि निरीक्षण करण्यासाठी पडताळणीयोग्य मानके आणि पद्धती विकसित करण्यासाठी उपयुक्त ठरू शकतात. - -## कार्बन क्रेडिटचे टोकनीकरण {#tokenization-of-carbon-credits} - -**[स्वैच्छिक कार्बन बाजार (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** ही कार्बन उत्सर्जनावर सत्यापित सकारात्मक प्रभाव पाडणारी, एकतर चालू उत्सर्जन कमी करते किंवा वातावरणातून आधीच उत्सर्जित होणारे हरितगृह वायू काढून टाकणारी प्रकल्पांना निधी पुरवणारी यंत्रणा आहे. या प्रकल्पांना त्यांची पडताळणी केल्यानंतर "कार्बन क्रेडिट्स" नावाची मालमत्ता मिळते, जी ते अशा व्यक्ती आणि संस्थांना विकू शकतात ज्यांना हवामान कृतीचे समर्थन करायचे आहे. - -VCM व्यतिरिक्त, अनेक सरकारी-अनिदेशित कार्बन मार्केट्स ('अनुपालन बाजार') देखील आहेत ज्यांचे उद्दिष्ट कायदे किंवा नियमांद्वारे एखाद्या विशिष्ट अधिकारक्षेत्रात (उदा. देश किंवा प्रदेश) द्वारे कार्बनची किंमत स्थापित करणे आहे, परवानग्यांचा पुरवठा नियंत्रित करणे वितरित केले. अनुपालन बाजार उत्सर्जन कमी करण्यासाठी त्यांच्या अधिकारक्षेत्रातील प्रदूषकांना प्रोत्साहन देतात, परंतु ते आधीच उत्सर्जित झालेले हरितगृह वायू काढून टाकण्यास सक्षम नाहीत. - -अलिकडच्या दशकात त्याचा विकास असूनही, VCM विविध समस्यांनी ग्रस्त आहे: - -1. उच्च खंडित तरलता -2. अपारदर्शक व्यवहार यंत्रणा -3. उच्च फी -4. खूप मंद ट्रेडिंग गती -5. स्केलेबिलिटीचा अभाव - -VCM ला नवीन ब्लॉकचेन-आधारित **डिजिटल कार्बन मार्केट (DCM)** मध्ये बदलणे ही कार्बन क्रेडिटचे प्रमाणीकरण, व्यवहार आणि वापरासाठी विद्यमान तंत्रज्ञान अपग्रेड करण्याची संधी असू शकते. ब्लॉकचेन सार्वजनिकरित्या पडताळण्यायोग्य डेटा, वापरकर्त्यांच्या विस्तृत श्रेणीसाठी प्रवेश आणि अधिक तरलतेसाठी परवानगी देतात. - -पारंपारिक बाजारातील अनेक समस्या दूर करण्यासाठी ReFi प्रकल्प ब्लॉकचेन तंत्रज्ञान वापरतात: - -- **लिक्विडिटी थोड्या संख्येने लिक्विडिटी पूलमध्ये केंद्रित आहे** ज्याचा कोणीही मुक्तपणे व्यापार करू शकतो. मोठ्या संस्था तसेच वैयक्तिक वापरकर्ते विक्रेते/खरेदीदार, सहभाग शुल्क किंवा पूर्व नोंदणीसाठी मॅन्युअल शोध न घेता हे पूल वापरू शकतात. -- **सर्व व्यवहार सार्वजनिक ब्लॉकचेनवर रेकॉर्ड केले जातात**. ट्रेडिंग अॅक्टिव्हिटीमुळे प्रत्येक कार्बन क्रेडिटचा मार्ग DCM मध्ये उपलब्ध होताच कायमचा शोधता येतो. -- **व्यवहाराची गती जवळजवळ त्वरित आहे**. लेगसी मार्केटद्वारे मोठ्या प्रमाणात कार्बन क्रेडिट्स सुरक्षित करण्यासाठी काही दिवस किंवा आठवडे लागू शकतात, परंतु हे DCM मध्ये काही सेकंदात साध्य केले जाऊ शकते. -- **व्यापार क्रियाकलाप मध्यस्थांशिवाय होतो**, जे जास्त शुल्क आकारतात. एका विश्लेषण फर्मच्या डेटानुसार डिजिटल कार्बन क्रेडिट्स [समान पारंपारिक क्रेडिटच्या तुलनेत 62% किमतीत सुधारणा](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne) दर्शवतात. -- **DCM स्केलेबल आहे** आणि व्यक्ती आणि बहुराष्ट्रीय कंपन्यांच्या मागण्या सारख्याच पूर्ण करू शकतात. - -### DCM चे प्रमुख घटक {#key-components-dcm} - -चार प्रमुख घटक DCM चे वर्तमान लँडस्केप बनवतात: - -1. [Verra](https://verra.org/project/vcs-program/registry-system/) आणि [गोल्ड स्टँडर्ड](https://www.goldstandard.org/) सारख्या नोंदणी कार्बन क्रेडिट्स तयार करणारे प्रकल्प विश्वसनीय आहेत याची खात्री करा. ते डेटाबेस देखील ऑपरेट करतात ज्यामध्ये डिजिटल कार्बन क्रेडिट्स उद्भवतात आणि हस्तांतरित किंवा वापरल्या जाऊ शकतात (निवृत्त). - -ब्लॉकचेनवर नाविन्यपूर्ण प्रकल्पांची एक नवीन लाट तयार केली जात आहे जी या क्षेत्रातील पदावर व्यत्यय आणण्याचा प्रयत्न करीत आहेत. - -2. कार्बन पूल, a.k.a. टोकनायझर्स, पारंपारिक रजिस्ट्रीमधून DCM मध्ये कार्बन क्रेडिट्सचे प्रतिनिधित्व किंवा हस्तांतरण करण्यासाठी तंत्रज्ञान प्रदान करतात. उल्लेखनीय उदाहरणांमध्ये [टूकन प्रोटोकॉल](https://toucan.earth/), [C3](https://c3.app/) आणि [Moss.Earth](https://moss.earth/) यांचा समावेश आहे. -3. एकात्मिक सेवा अंतिम वापरकर्त्यांना कार्बन टाळणे आणि/किंवा काढण्याचे क्रेडिट देतात जेणेकरुन ते क्रेडिटच्या पर्यावरणीय फायद्याचा दावा करू शकतील आणि त्यांचे हवामान कृतीचे समर्थन जगासोबत शेअर करू शकतील. - -काही जसे की [Klima Infinity](https://www.klimadao.finance/infinity) आणि [Senken](https://senken.io/) ऑफर करतात जे तृतीय पक्षांद्वारे विकसित केलेले आणि Verra सारख्या स्थापित मानकांनुसार जारी केलेले विविध प्रकारचे प्रकल्प; [Nori](https://nori.com/) सारखे इतर केवळ त्यांच्या स्वतःच्या कार्बन क्रेडिट मानकांनुसार विकसित केलेले विशिष्ट प्रकल्प ऑफर करतात, जे ते जारी करतात आणि ज्यासाठी त्यांचे स्वतःचे समर्पित मार्केटप्लेस आहे. - -4. अंतर्निहित रेल आणि पायाभूत सुविधा जे कार्बन मार्केटच्या संपूर्ण पुरवठा साखळीचा प्रभाव आणि कार्यक्षमता वाढवण्यास मदत करतात. [KlimaDAO](http://klimadao.finance/) सार्वजनिक हित म्हणून तरलतेचा पुरवठा करते (कोणालाही पारदर्शक किमतीवर कार्बन क्रेडिट्स खरेदी किंवा विकण्याची परवानगी देते), कार्बन मार्केटच्या वाढीव थ्रूपुटला प्रोत्साहन देते आणि यासह सेवानिवृत्ती बक्षिसे, आणि विविध प्रकारच्या टोकनाइज्ड कार्बन क्रेडिट्स बद्दल डेटा ऍक्सेस करण्यासाठी, तसेच प्राप्त आणि निवृत्त करण्यासाठी वापरकर्ता-अनुकूल इंटरऑपरेबल टूलिंग प्रदान करते. - -## कार्बन मार्केटच्या पलीकडे ReFi {#refi-beyond} - -जरी सध्या सर्वसाधारणपणे कार्बन मार्केट्सवर आणि विशेषत: अंतराळात VCM चे DCM मध्ये संक्रमण करण्यावर जोरदार जोर दिला जात असला तरी, “ReFi” हा शब्द काटेकोरपणे कार्बनपुरता मर्यादित नाही. कार्बन क्रेडिट्सच्या पलीकडे इतर पर्यावरणीय मालमत्ता विकसित आणि टोकनीकृत केल्या जाऊ शकतात, ज्याचा अर्थ भविष्यातील आर्थिक प्रणालींच्या मूलभूत स्तरांमध्ये इतर नकारात्मक बाह्यतेची किंमत देखील असू शकते. शिवाय, या आर्थिक मॉडेलचे पुनरुत्पादक पैलू इतर क्षेत्रांवर लागू केले जाऊ शकतात, जसे की [Gitcoin](https://gitcoin.co/) सारख्या चतुर्भुज निधी प्लॅटफॉर्मद्वारे सार्वजनिक वस्तूंचा निधी. खुल्या सहभागाच्या आणि संसाधनांच्या न्याय्य वितरणाच्या कल्पनेवर बांधलेल्या संस्था प्रत्येकाला मुक्त-स्रोत सॉफ्टवेअर प्रकल्प, तसेच शैक्षणिक, पर्यावरणीय आणि समुदाय-चालित प्रकल्पांसाठी पैसे खर्च करण्यास सक्षम करतात. - -भांडवलाची दिशा उत्खनन पद्धतींपासून दूर पुनर्जन्म प्रवाहाकडे वळवून, सामाजिक, पर्यावरणीय किंवा सांप्रदायिक फायदे प्रदान करणारे प्रकल्प आणि कंपन्या — आणि जे पारंपारिक वित्तपुरवठ्यात निधी मिळवण्यात अयशस्वी होऊ शकतात — जमिनीवरून उतरू शकतात आणि बरेच जलद आणि सहज समाजासाठी सकारात्मक बाह्यता निर्माण करू शकतात. निधीच्या या मॉडेलमध्ये संक्रमण केल्याने अधिक सर्वसमावेशक आर्थिक प्रणालींचे दरवाजे देखील खुले होतात, जेथे सर्व लोकसंख्याशास्त्रातील लोक केवळ निष्क्रिय निरीक्षकांऐवजी सक्रिय सहभागी होऊ शकतात. ReFi आपल्या प्रजातींना आणि आपल्या ग्रहावरील सर्व जीवसृष्टीसमोरील अस्तित्त्वात्मक आव्हानांवर समन्वय साधण्याची यंत्रणा म्हणून Ethereum चे दर्शन देते - नवीन आर्थिक प्रतिमानाचा आधारभूत स्तर म्हणून, येणाऱ्या शतकांसाठी अधिक समावेशक आणि टिकाऊ भविष्य सक्षम करते. - -## ReFi वर अतिरिक्त वाचन - -- [कार्बन चलने आणि अर्थव्यवस्थेतील त्यांचे स्थान यांचे उच्च-स्तरीय विहंगावलोकन](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) -- [द मिनिस्ट्री फॉर फ्युचर, हवामान बदलाशी लढण्यासाठी कार्बन-समर्थित चलनाची भूमिका दर्शविणारी कादंबरी](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) -- [स्केलिंग स्वैच्छिक कार्बन मार्केटसाठी टास्कफोर्सचा तपशीलवार अहवाल](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) -- [केविन ओवोकी आणि इव्हान मियाझोनोची ReFi वर CoinMarketCap शब्दावली एंट्री](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/mr/smart-contracts/index.md b/src/content/translations/mr/smart-contracts/index.md deleted file mode 100644 index 32ccc1868e7..00000000000 --- a/src/content/translations/mr/smart-contracts/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: स्मार्ट कॉन्ट्रॅक्ट -description: स्मार्ट कॉन्ट्रॅक्टचा एक गैर-तांत्रिक परिचय -lang: mr ---- - -# Introduction to smart contracts {#introduction-to-smart-contracts} - -स्मार्ट कॉन्ट्रॅक्ट्स हे Ethereum च्या ऍप्लिकेशन लेयरचे मूलभूत बिल्डिंग ब्लॉक्स आहेत. ते ब्लॉकचेनवर संग्रहित केलेले संगणक प्रोग्राम आहेत जे "जर हे तर ते" तर्काचे पालन करतात आणि त्यांच्या कोडद्वारे परिभाषित केलेल्या नियमांनुसार कार्यान्वित करण्याची हमी दिली जाते, जे एकदा तयार केल्यावर बदलता येत नाही. - -निक साबो यांनी "स्मार्ट कॉन्ट्रॅक्ट" हा शब्द तयार केला. 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). - -साबो ने एका डिजिटल मार्केटप्लेसची कल्पना केली जिथे स्वयंचलित, क्रिप्टोग्राफिकली-सुरक्षित प्रक्रिया विश्वसनीय मध्यस्थांशिवाय व्यवहार आणि व्यवसाय कार्ये करण्यास सक्षम करतात. Ethereumवरील स्मार्ट कॉन्ट्रॅक्ट्सने ही दृष्टी प्रत्यक्षात आणली. - -### पारंपारिक करारांवर विश्वास ठेवा {#trust-and-contracts} - -पारंपारिक करारातील सर्वात मोठी समस्या म्हणजे विश्वासार्ह व्यक्तींनी कराराच्या परिणामांचे पालन करणे आवश्यक आहे. - -येथे एक उदाहरण आहे: - -अॅलिस आणि बॉबची सायकल शर्यत आहे. एलिसने बॉबसोबत $10 ची पैज लावली की ती शर्यत जिंकेल. बॉबला खात्री आहे की तो जिंकेल आणि पैजेसाठी तयार होतो. शेवटी, अॅलिसने बॉबच्या पुढे शर्यत पूर्ण केली आणि ती स्पष्ट विजेता ठरली. परंतु अॅलिसने फसवणूक केली असावी असा दावा करून बॉबने पैज देण्यास नकार दिला. - -हे मूर्ख उदाहरण कोणत्याही गैर-स्मार्ट करारातील समस्या स्पष्ट करते. जरी कराराच्या अटींची पूर्तता झाली (म्हणजे तुम्ही शर्यतीतील विजेते असाल), तरीही तुम्ही करार पूर्ण करण्यासाठी दुसर्‍या व्यक्तीवर विश्वास ठेवला पाहिजे (म्हणजे पैजवर पेआउट). - -### A digital vending machine {#vending-machine} - -स्मार्ट कॉन्ट्रॅक्टसाठी एक साधे रूपक म्हणजे व्हेंडिंग मशीन, जे काहीसे स्मार्ट कॉन्ट्रॅक्टसारखेच कार्य करते - विशिष्ट इनपुट्स पूर्वनिर्धारित आउटपुटची हमी देतात. - -- तुम्ही उत्पादन निवडा -- व्हेंडिंग मशीन किंमत दाखवते -- तुम्ही किंमत द्या -- व्हेंडिंग मशीन तुम्ही योग्य रक्कम भरली आहे याची पडताळणी करते -- व्हेंडिंग मशीन तुम्हाला तुमची वस्तू देते - -व्हेंडिंग मशीन सर्व आवश्यकता पूर्ण झाल्यानंतरच तुमचे इच्छित उत्पादन वितरित करेल. तुम्ही एखादे उत्पादन न निवडल्यास किंवा पुरेसे पैसे न टाकल्यास, व्हेंडिंग मशीन तुमचे उत्पादन देणार नाही. - -### स्वयंचलित अंमलबजावणी {#automation} - -स्मार्ट कॉन्ट्रॅक्टचा मुख्य फायदा असा आहे की जेव्हा काही अटी पूर्ण केल्या जातात तेव्हा तो निश्चितपणे अस्पष्ट कोडची अंमलबजावणी करतो. परिणामाचा अर्थ लावण्यासाठी किंवा वाटाघाटी करण्यासाठी माणसाची वाट पाहण्याची गरज नाही. हे विश्वसनीय मध्यस्थांची गरज काढून टाकते. - -उदाहरणार्थ, तुम्ही एखाद्या मुलासाठी एस्क्रोमध्ये निधी ठेवणारा स्मार्ट करार लिहू शकता, ज्यामुळे त्यांना विशिष्ट तारखेनंतर पैसे काढता येतील. त्यांनी त्या तारखेपूर्वी पैसे काढण्याचा प्रयत्न केल्यास, स्मार्ट कराराची अंमलबजावणी होणार नाही. किंवा तुम्ही असा करार लिहू शकता जे तुम्ही डीलरला पैसे देता तेव्हा आपोआप तुम्हाला कारच्या शीर्षकाची डिजिटल आवृत्ती देते. - -### अंदाजे परिणाम {#predictability} - -पारंपारिक करार संदिग्ध आहेत कारण ते त्यांचा अर्थ लावण्यासाठी आणि अंमलात आणण्यासाठी मानवांवर अवलंबून असतात. उदाहरणार्थ, दोन न्यायाधीश एखाद्या कराराचा वेगळा अर्थ लावू शकतात, ज्यामुळे विसंगत निर्णय आणि असमान परिणाम होऊ शकतात. स्मार्ट कॉन्ट्रॅक्ट ही शक्यता काढून टाकतात. त्याऐवजी, स्मार्ट कॉन्ट्रॅक्ट्स कॉन्ट्रॅक्टच्या कोडमध्ये लिहिलेल्या अटींवर आधारित अचूकपणे अंमलात आणतात. या अचूकतेचा अर्थ असा आहे की समान परिस्थिती लक्षात घेता, स्मार्ट करार समान परिणाम देईल. - -### सार्वजनिक रेकॉर्ड {#public-record} - -स्मार्ट कॉन्ट्रॅक्ट ऑडिट आणि ट्रॅकिंगसाठी उपयुक्त आहेत. Ethereum स्मार्ट कॉन्ट्रॅक्ट सार्वजनिक ब्लॉकचेनवर असल्याने, कोणीही मालमत्ता हस्तांतरण आणि इतर संबंधित माहिती त्वरित ट्रॅक करू शकतो. उदाहरणार्थ, तुमच्या पत्त्यावर कोणीतरी पैसे पाठवले आहेत हे पाहण्यासाठी तुम्ही तपासू शकता. - -### गोपनीयता संरक्षण {#privacy-protection} - -स्मार्ट कॉन्ट्रॅक्ट तुमच्या गोपनीयतेचेही संरक्षण करतात. Ethereum हे एक छद्मनावी नेटवर्क असल्याने (तुमचे व्यवहार सार्वजनिकपणे एका अनन्य क्रिप्टोग्राफिक पत्त्याशी जोडलेले आहेत, तुमची ओळख नाही), तुम्ही तुमच्या गोपनीयतेचे निरीक्षकांपासून संरक्षण करू शकता. - -### दृश्यमान अटी {#visible-terms} - -शेवटी, पारंपारिक करारांप्रमाणे, तुम्ही स्वाक्षरी करण्यापूर्वी (किंवा अन्यथा त्याच्याशी संवाद साधण्यापूर्वी) स्मार्ट करारामध्ये काय आहे ते तपासू शकता. स्मार्ट कराराची पारदर्शकता हमी देते की कोणीही त्याची छाननी करू शकेल. - -## स्मार्ट करार वापर प्रकरणे {#use-cases} - -स्मार्ट कॉन्ट्रॅक्ट मूलत: संगणक प्रोग्राम करू शकतील असे काहीही करू शकतात. - -ते गणना करू शकतात, चलन तयार करू शकतात, डेटा संग्रहित करू शकतात, मिंट NFT, संप्रेषणे पाठवू शकतात आणि ग्राफिक्स तयार करू शकतात. येथे काही लोकप्रिय, वास्तविक-जगाची उदाहरणे आहेत: - -- [स्टेबलकॉइन्स](/stablecoins/) -- [अद्वितीय डिजिटल मालमत्ता तयार करणे आणि वितरित करणे](/nft/) -- [एक स्वयंचलित, खुले चलन विनिमय](/get-eth/#dex) -- [विकेंद्रित गेमिंग](/dapps/?category=gaming) -- [विमा पॉलिसी जी आपोआप भरली जाते](https://etherisc.com/) -- [एक मानक जे लोकांना सानुकूलित, इंटरऑपरेबल चलने तयार करू देते](/developers/docs/standards/tokens/) - -## More of a visual learner? {#visual-learner} - -फाइनेमॅटिक्स स्मार्ट कॉन्ट्रॅक्टचे स्पष्टीकरण पहा: - - - -## Further reading {#further-reading} - -- [स्मार्ट कॉन्ट्रॅक्ट जग कसे बदलतील](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [स्मार्ट कॉन्ट्रॅक्ट: ब्लॉकचेन तंत्रज्ञान जे वकीलांची जागा घेईल](https://blockgeeks.com/guides/smart-contracts/) -- [विकसकांसाठी स्मार्ट कॉन्ट्रॅक्ट](/developers/docs/smart-contracts/) -- [स्मार्ट-कॉन्ट्रॅक्ट लिहायला शिका](/developers/learning-tools/) -- [मास्टरिंग Ethereum - स्मार्ट ककॉन्ट्रॅक्ट म्हणजे काय?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/src/content/translations/mr/social-networks/index.md b/src/content/translations/mr/social-networks/index.md deleted file mode 100644 index 66a75e6fa62..00000000000 --- a/src/content/translations/mr/social-networks/index.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: विकेंद्रित सामाजिक जाळे -description: Ethereum वर विकेंद्रित सोशल नेटवर्कचे विहंगावलोकन -lang: mr -template: use-cases -emoji: ":mega:" -sidebarDepth: 2 -image: ../../../../assets/ethereum-learn.png -summaryPoint1: सामाजिक संवाद आणि सामग्री निर्मिती आणि वितरणासाठी ब्लॉकचेन-आधारित प्लॅटफॉर्म. -summaryPoint2: विकेंद्रित सोशल मीडिया नेटवर्क वापरकर्त्याच्या गोपनीयतेचे संरक्षण करतात आणि डेटा सुरक्षितता वाढवतात. -summaryPoint3: टोकन आणि NFT सामग्रीची कमाई करण्याचे नवीन मार्ग तयार करतात. ---- - -सोशल नेटवर्क्स आपल्या दैनंदिन संप्रेषणांमध्ये आणि परस्परसंवादांमध्ये मोठी भूमिका बजावतात. तथापि, या प्लॅटफॉर्मच्या केंद्रीकृत नियंत्रणाने अनेक समस्या निर्माण केल्या आहेत: डेटाचे उल्लंघन, सर्व्हर आऊटेजेस, डी-प्लॅटफॉर्मिंग, सेन्सॉरशिप आणि गोपनीयतेचे उल्लंघन हे काही ट्रेड-ऑफ आहेत जे सोशल मीडिया अनेकदा करतात. या समस्यांचा सामना करण्यासाठी, विकसक Ethereum वर सोशल नेटवर्क तयार करत आहेत. विकेंद्रित सोशल नेटवर्क्स पारंपारिक सोशल नेटवर्किंग प्लॅटफॉर्मच्या अनेक समस्यांचे निराकरण करू शकतात आणि वापरकर्त्यांचा एकूण अनुभव सुधारू शकतात. - -## विकेंद्रित सामाजिक नेटवर्क म्हणजे काय? {#what-are-decentralized-social-networks} - -विकेंद्रित सामाजिक नेटवर्क हे ब्लॉकचेन-आधारित प्लॅटफॉर्म आहेत जे वापरकर्त्यांना माहितीची देवाणघेवाण करण्यास तसेच प्रेक्षकांना सामग्री प्रकाशित आणि वितरित करण्यास अनुमती देतात. हे ऍप्लिकेशन्स ब्लॉकचेनवर चालत असल्यामुळे ते विकेंद्रित आणि सेन्सॉरशिप आणि अवाजवी नियंत्रणास प्रतिरोधक असण्यास सक्षम आहेत. - -अनेक विकेंद्रित सोशल नेटवर्क्स Facebook, LinkedIn, Twitter आणि Medium सारख्या प्रस्थापित सोशल मीडिया सेवांना पर्याय म्हणून अस्तित्वात आहेत. परंतु ब्लॉकचेन-संचालित सोशल नेटवर्क्समध्ये अनेक वैशिष्ट्ये आहेत जी त्यांना पारंपारिक सामाजिक प्लॅटफॉर्मच्या पुढे ठेवतात. - -### विकेंद्रित सामाजिक नेटवर्क कसे कार्य करतात? {#decentralized-social-networks-overview} - -विकेंद्रित सोशल नेटवर्क्स हे [विकेंद्रित अॅप्लिकेशन्स (dapps)](/dapps/)—[स्मार्ट कॉन्ट्रॅक्ट्स](/developers/docs/smart-contracts/) द्वारे समर्थित अॅप्लिकेशन्सचा एक वर्ग ब्लॉकचेनवर तैनात आहे. कॉन्ट्रॅक्ट कोड या अॅप्ससाठी बॅकएंड म्हणून काम करतो आणि त्यांचे व्यवसाय तर्क परिभाषित करतो. - -पारंपारिक सोशल मीडिया प्लॅटफॉर्म वापरकर्ता माहिती, प्रोग्राम कोड आणि डेटाचे इतर प्रकार संग्रहित करण्यासाठी डेटाबेसवर अवलंबून असतात. परंतु यामुळे एकल पॉइंट-ऑफ-अपयश निर्माण होते आणि लक्षणीय धोका निर्माण होतो. उदाहरणार्थ, Facebook चे सर्व्हर बदनामपणे [तास ऑफलाइन गेले](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) गेल्या वर्षी, प्लॅटफॉर्मवरून वापरकर्त्यांना कापले. - -विकेंद्रित सोशल नेटवर्क्स पीअर-टू-पीअर नेटवर्कवर अस्तित्वात आहेत ज्यात जगभरातील हजारो नोड्स आहेत. जरी काही नोड्स अयशस्वी झाले तरीही, नेटवर्क अखंडपणे चालेल, अनुप्रयोगांना अपयश आणि आउटेजला प्रतिरोधक बनवेल. - -[InterPlanetary File System (IPFS)](https://ipfs.io/) सारख्या विकेंद्रित स्टोरेज सिस्टमचा वापर करून, Ethereum वर तयार केलेली सोशल नेटवर्क वापरकर्त्याच्या माहितीचे शोषण आणि दुर्भावनापूर्ण वापरापासून संरक्षण करू शकते. कोणीही तुमची वैयक्तिक माहिती जाहिरातदारांना विकणार नाही, किंवा हॅकर्स तुमचे गोपनीय तपशील चोरू शकणार नाहीत. - -अनेक ब्लॉकचेन-आधारित सोशल प्लॅटफॉर्मवर नेटिव्ह टोकन्स आहेत जे जाहिरातींच्या कमाईच्या अनुपस्थितीत कमाई करतात. वापरकर्ते विशिष्ट वैशिष्ट्यांमध्ये प्रवेश करण्यासाठी, अॅप-मधील खरेदी पूर्ण करण्यासाठी किंवा त्यांच्या आवडत्या सामग्री निर्मात्यांना टिप देण्यासाठी ही टोकन खरेदी करू शकतात. - -## विकेंद्रित सामाजिक नेटवर्कचे फायदे {#benefits} - -1. विकेंद्रित सामाजिक नेटवर्क सेन्सॉरशिप-प्रतिरोधक आणि प्रत्येकासाठी खुले आहेत. याचा अर्थ वापरकर्त्यांना प्रतिबंधित, डिप्लॅटफॉर्म किंवा अनियंत्रितपणे प्रतिबंधित केले जाऊ शकत नाही. - -2. विकेंद्रित सामाजिक नेटवर्क मुक्त-स्रोत आदर्शांवर तयार केले जातात आणि सार्वजनिक तपासणीसाठी अनुप्रयोगांसाठी स्त्रोत कोड उपलब्ध करतात. पारंपारिक सोशल मीडियामध्ये सामान्य असलेल्या अपारदर्शक अल्गोरिदमची अंमलबजावणी काढून टाकून, ब्लॉकचेन-आधारित सोशल नेटवर्क वापरकर्ते आणि प्लॅटफॉर्म निर्मात्यांच्या हितसंबंधांना संरेखित करू शकतात. - -3. विकेंद्रित सामाजिक नेटवर्क "मध्यम-पुरुष" दूर करतात. सामग्री निर्मात्यांची त्यांच्या सामग्रीवर थेट मालकी असते आणि ते अनुयायी, चाहते, खरेदीदार आणि इतर पक्षांशी थेट गुंततात, त्यामध्ये स्मार्ट कराराशिवाय काहीही नसते. - -4. नोड्सच्या जागतिक, पीअर-टू-पीअर नेटवर्कद्वारे टिकून राहिलेल्या Ethereum नेटवर्कवर चालणारे dapps, विकेंद्रित सोशल नेटवर्क्स सर्व्हर डाउनटाइम आणि आउटेजसाठी कमी संवेदनशील असतात. - -5. विकेंद्रित सामाजिक प्लॅटफॉर्म सामग्री निर्मात्यांसाठी नॉन-फंगीबल टोकन्स (NFT), अॅप-मधील क्रिप्टो पेमेंट आणि बरेच काही द्वारे सुधारित कमाई फ्रेमवर्क ऑफर करतात. - -6. विकेंद्रित सामाजिक नेटवर्क वापरकर्त्यांना उच्च पातळीची गोपनीयता आणि निनावीपणा देतात. उदाहरणार्थ, एखादी व्यक्ती ENS प्रोफाईल किंवा वॉलेट वापरून Ethereum-आधारित सोशल नेटवर्कमध्ये साइन इन करू शकते — वैयक्तिकरित्या ओळखण्यायोग्य माहिती (PII), जसे की नावे, ईमेल पत्ते इत्यादी शेअर न करता. - -7. विकेंद्रित सामाजिक नेटवर्क विकेंद्रित स्टोरेजवर अवलंबून असतात, केंद्रीकृत डेटाबेसवर नाही, जे वापरकर्त्याच्या डेटाचे संरक्षण करण्यासाठी बरेच चांगले आहेत. - -## Ethereum वर विकेंद्रित सामाजिक नेटवर्क {#ethereum-social-networks} - -Ethereum नेटवर्क विकेंद्रित सोशल मीडिया तयार करणार्‍या डेव्हलपर्ससाठी त्याच्या टोकन्सच्या लोकप्रियतेमुळे (ERC-20/ERC-721) आणि त्याच्या प्रचंड वापरकर्ता आधारामुळे पसंतीचे साधन बनले आहे. Ethereum-आधारित सामाजिक नेटवर्कची काही उदाहरणे येथे आहेत: - -### Peepeth {#peepeth} - -[Peepeth](https://peepeth.com/) हे Twitter सारखेच मायक्रोब्लॉगिंग प्लॅटफॉर्म आहे. हे Ethereum ब्लॉकचेनवर चालते आणि वापरकर्ता डेटा संचयित करण्यासाठी IPFS वापरते. - -वापरकर्ते "पीप्स" नावाचे लघु संदेश पाठवू शकतात, जे हटविले किंवा सुधारित केले जाऊ शकत नाहीत. तुम्ही अॅप न सोडता इथर (ETH) मध्ये प्लॅटफॉर्मवर टिपा गोळा करू शकता किंवा कोणालाही टिप देऊ शकता. - -### Mirror {#mirror} - -[Mirror](https://mirror.xyz/) हे web3-सक्षम लेखन प्लॅटफॉर्म आहे ज्याचे उद्दिष्ट विकेंद्रित आणि वापरकर्त्याच्या मालकीचे आहे. वापरकर्ते त्यांचे वॉलेट कनेक्ट करून Mirror वर विनामूल्य वाचू आणि लिहू शकतात. वापरकर्ते लेखन गोळा करू शकतात आणि त्यांच्या आवडत्या लेखकांचे सदस्यत्व घेऊ शकतात. - -"Mirror" वर प्रकाशित केलेल्या पोस्ट्स विकेंद्रित स्टोरेज "Arweave" प्लॅटफॉर्मवर कायमस्वरूपी संग्रहित केल्या जातात, आणि संग्रह करण्यायोग्य [नॉन-फंजिबल टोकन (NFT)](/nft/) म्हणून लिहिल्या जाऊ शकतात. NFT लिहिणे लेखकांसाठी तयार करण्यासाठी पूर्णपणे विनामूल्य आहे, आणि संग्रह Ethereum L2 वर होतो — व्यवहार स्वस्त, जलद आणि पर्यावरणास अनुकूल बनवतात. - -### MINDS {#minds} - -[MINDS](https://www.minds.com/) हे सर्वाधिक वापरल्या जाणार्‍या विकेंद्रित सामाजिक नेटवर्कपैकी एक आहे. हे Facebook सारखे कार्य करते आणि आधीच लाखो वापरकर्ते मिळवले आहेत. - -वापरकर्ते आयटमसाठी देय देण्यासाठी प्लॅटफॉर्मचे मूळ ERC-20 टोकन $MIND वापरतात. वापरकर्ते लोकप्रिय सामग्री प्रकाशित करून, इकोसिस्टममध्ये योगदान देऊन आणि इतरांना प्लॅटफॉर्मवर संदर्भ देऊन $MIND टोकन देखील मिळवू शकतात. - -## Ethereum वर Web2 सामाजिक नेटवर्क {#web2-social-networks-and-ethereum} - -[Web3](/web3/) नेटिव्ह सोशल प्लॅटफॉर्म फक्त सोशल मीडियामध्ये ब्लॉकचेन तंत्रज्ञानाचा समावेश करण्याचा प्रयत्न करत नाहीत. अनेक केंद्रीकृत प्लॅटफॉर्म देखील त्यांच्या पायाभूत सुविधांमध्ये Ethereum समाकलित करण्याची योजना आखत आहेत: - -### 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/) जे वापरकर्ते दर्जेदार सामग्री पोस्ट करून आणि ऑनलाइन समुदायांमध्ये (सबरेडीट्स) योगदान देऊन कमवू शकतात. तुम्ही [अनन्य विशेषाधिकार आणि भत्ते मिळवण्यासाठी](https://www.reddit.com/community-points/) सबरेडीटमध्ये हे टोकन रिडीम करू शकता. या प्रकल्पासाठी, Reddit Arbitrum सोबत काम करत आहे, एक [लेयर 2](/layer-2/) रोलअप Ethereum व्यवहार मोजण्यासाठी डिझाइन केलेले आहे. - -r/क्रिप्टोकरंसी सबरेडिट ["मून" नावाच्या कम्युनिटी पॉइंट्सची आवृत्ती चालवत](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki) सह, कार्यक्रम आधीच लाइव्ह आहे. अधिकृत वर्णनानुसार, मून "पोस्टर, टिप्पणीकार आणि नियंत्रकांना त्यांच्या सबरेडीटमधील योगदानाबद्दल बक्षीस देतात." कारण हे टोकन ब्लॉकचेनवर आहेत (वापरकर्ते ते वॉलेटमध्ये प्राप्त करतात), ते Reddit पासून स्वतंत्र आहेत आणि काढून घेतले जाऊ शकत नाहीत. - -रिंकेबी टेस्टनेट वर बीटा फेज पूर्ण केल्यानंतर, Reddit समुदाय पॉइंट्स आता [Arbitrum Nova](https://nova.arbitrum.io/) वर आहेत, एक ब्लॉकचेन जे चे गुणधर्म एकत्र करते [साइडचेन](/developers/docs/scaling/sidechains/) आणि [आशावादी रोलअप](/developers/docs/scaling/optimistic-rollups/). विशेष वैशिष्‍ट्ये अनलॉक करण्‍यासाठी कम्युनिटी पॉइंट वापरण्‍यासोबतच, वापरकर्ते त्‍यांना एक्सचेंजेसवर फिएटसाठी ट्रेड देखील करू शकतात. तसेच, वापरकर्त्याच्या मालकीच्या कम्युनिटी पॉइंट्सचे प्रमाण समुदायातील निर्णय प्रक्रियेवर त्यांचा प्रभाव निर्धारित करते. - -### Twitter {#twitter} - -जानेवारी 2021 मध्ये, Twitter Blue ने [NFT साठी सपोर्ट रोलआउट केला](https://mashable.com/article/twitter-blue-nft-profile-picture), ज्यामुळे वापरकर्त्यांना त्यांचे वॉलेट आणि डिस्प्ले कनेक्ट करता येतात प्रोफाइल चित्रे म्हणून NFT. लेखनाच्या वेळी, सोशल मीडिया कंपनीने देखील आहे भविष्यात विकेंद्रित सामाजिक नेटवर्क तयार करण्यासाठी [योजना जाहीर केल्या](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web). - -### Instagram {#instagram} - -मे 2022 मध्ये, [Instagram ने Ethereum आणि बहुभुज वर NFT साठी समर्थन जाहीर केले](https://about.instagram.com/blog/announcements/instagram-digital-collectibles). वापरकर्ते त्यांचे Ethereum वॉलेट कनेक्ट करून थेट Instagram वर NFT पोस्ट करू शकतात. - -## विकेंद्रित सामाजिक नेटवर्क वापरा {#use-decentralized-social-networks} - -- **[Status.im](https://status.im/)** - _Status आहे सुरक्षित मेसेजिंग अॅप जे ओपन-सोर्स, पीअर-टू-पीअर प्रोटोकॉल आणि एंड-टू-एंड एन्क्रिप्शन वापरते जे तृतीय पक्षांकडून तुमचे संदेश सुरक्षित ठेवते._ -- **[Mirror.xyz](https://mirror.xyz/)** - _मिरर एक आहे विकेंद्रित, वापरकर्त्याच्या मालकीचे प्रकाशन प्लॅटफॉर्म Ethereum वर वापरकर्त्यांसाठी क्राउडफंड कल्पना, सामग्रीची कमाई आणि उच्च-मूल्य समुदाय तयार करण्यासाठी तयार केले आहे._ -- **[लेन्स प्रोटोकॉल](https://lens.xyz/)** - _लेन्स प्रोटोकॉल आहे विकेंद्रित इंटरनेटच्या डिजिटल बागेत निर्मात्यांना त्यांच्या सामग्रीची मालकी घेण्यास मदत करणारा आणि विकेंद्रित सामाजिक आलेख._ -- **[Farcaster](https://farcaster.xyz/)** - _Farcaster पुरेसे विकेंद्रित आहे सामाजिक नेटवर्क. हा एक खुला प्रोटोकॉल आहे जो ईमेल प्रमाणेच अनेक क्लायंटना समर्थन देऊ शकतो._ - -## Further reading {#further-reading} - -### लेख {#articles} - -- [सोशल मीडियाचे विकेंद्रीकरण: web3 सोशल स्टॅकसाठी मार्गदर्शक](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _कॉइनबेस व्हेंचर्स_ -- [सोशल नेटवर्क ही विकेंद्रीकरणाची पुढील मोठी संधी आहे](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _बेन गोर्टझेल_ -- [Web3 विकेंद्रित, समुदाय- समर्थित सोशल नेटवर्क्स](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _सुमित घोष_ -- [ब्लॉकचेन सोशल मीडिया लँडस्केपचे विहंगावलोकन](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _जेमिनी क्रिप्टोपीडिया_ -- [ब्लॉकचेन सोशल मीडिया गोपनीयता कशी सोडवू शकते](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _प्रबलेन बाजपेयी_ -- [सोशल मीडिया नेटवर्क्स ब्लॉकचेनवर येत आहेत](https://businesstechguides.co/what-are-decentralized-social-networks) — _इमॅन्युएल अवोसिका_ -- [सामाजिक नेटवर्कसाठी पुरेसे विकेंद्रीकरण](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _वरुण श्रीनिवासन_ - -### Videos {#videos} - -- [विकेंद्रित सोशल मीडियाचे स्पष्टीकरण](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ -- [DeSo ब्लॉकचेन सोशल मीडियाचे विकेंद्रीकरण करू इच्छिते](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _ब्लूमबर्ग तंत्रज्ञान_ -- [बालाजी श्रीनिवासन, व्हिटालिक बुटेरिन, जुआन बेनेट विरुद्ध विकेंद्रित सोशल मीडियाचे भविष्य](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ - -### समुदाय {#communities} - -- [Status Discord सर्व्हर](https://discord.com/invite/3Exux7Y) -- [Mirror Discord सर्व्हर](https://discord.com/invite/txuCHcE8wV) -- [r/CryptoCurrency subreddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/ms/dao/index.md b/src/content/translations/ms/dao/index.md deleted file mode 100644 index 2ebfaec74cb..00000000000 --- a/src/content/translations/ms/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: Organisasi autonomi terdesentralisasi (DAO) -description: Gambaran keseluruhan DAO pada Ethereum -lang: ms -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: Perwakilan pengundian DAO pada cadangan. -summaryPoint1: Komuniti milik ahli tanpa kepimpinan berpusat. -summaryPoint2: Cara selamat untuk bekerjasama dengan orang asing internet. -summaryPoint3: Tempat selamat untuk menjanjikan dana ke arah sebab tertentu. ---- - -## Apakah DAO? {#what-are-daos} - -DAO ialah sebuah organisasi yang ditadbir oleh blok rantai milik kolektif yang berusaha ke arah misi bersama. - -DAO membolehkan kami bekerja dengan individu yang sehaluan di seluruh dunia tanpa mempercayai pemimpin yang baik hati untuk menguruskan dana atau operasi. Tiada CEO yang boleh membelanjakan dana sesuka hati atau CFO yang boleh memanipulasi buku. Sebaliknya, peraturan berasaskan blok rantai yang tertulis dalam kod menentukan cara organisasi berfungsi dan cara dana dibelanjakan. - -Mereka mempunyai tabung terbina dalam yang tiada sesiapa yang mempunyai kuasa untuk mengakses tanpa kelulusan kumpulan. Keputusan ditadbir oleh cadangan dan pengundian untuk memastikan semua orang dalam organisasi mempunyai suara, dan segala-galanya berlaku secara telus dalam rantaian. - -## Mengapa kita memerlukan DAO? {#why-dao} - -Memulakan organisasi dengan seseorang yang melibatkan pembiayaan dan wang memerlukan banyak kepercayaan terhadap orang yang bekerjasama dengan anda. Tetapi sukar untuk mempercayai seseorang yang anda hanya pernah berinteraksi di internet. Dengan DAO anda tidak perlu mempercayai orang lain dalam kumpulan, hanya kod DAO, yang 100% telus dan boleh disahkan oleh sesiapa sahaja. - -Ini membuka begitu banyak peluang baharu untuk kerjasama dan penyelarasan global. - -### Satu perbandingan {#dao-comparison} - -| DAO | Sebuah organisasi tradisional | -| ------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------- | -| Biasanya rata, dan demokratik sepenuhnya. | Biasanya berhierarki. | -| Undian diperlukan oleh ahli untuk sebarang perubahan dilaksanakan. | Bergantung kepada struktur, perubahan boleh dituntut daripada parti tunggal, atau undian boleh ditawarkan. | -| Undi dikira, dan hasil dilaksanakan secara automatik tanpa perantara yang dipercayai. | Jika undi dibenarkan, undian akan dikira secara dalaman, dan hasil undian mesti dikendalikan secara manual. | -| Perkhidmatan yang ditawarkan dikendalikan secara automatik dengan cara terdesentralisasi (contohnya pengedaran dana dermawan). | Memerlukan pengendalian manusia, atau automasi terkawal secara pusat, terdedah pada manipulasi. | -| Semua aktiviti iadalah telus dan umum sepenuhnya. | Aktiviti biasanya peribadi, dan terhad kepada orang ramai. | - -### Contoh DAO {#dao-examples} - -Untuk membantu menjelaskan perkara ini, berikut adalah beberapa contoh cara anda boleh menggunakan DAO: - -- Kebajikan – anda boleh menerima sumbangan daripada sesiapa sahaja di dunia dan mengundi badan kebajikan yang ingin dibiayai. -- Pemilikan kolektif – anda boleh membeli aset fizikal atau digital dan ahli boleh mengundi untuk cara menggunakannya. -- Usaha niaga dan sumbangan – anda boleh membuat dana usaha niaga yang mengumpul modal pelaburan dan mengundi usaha niaga yang ingin dibiayai. Wang yang dibayar kemudian boleh diedarkan semula di kalangan ahli DAO. - -## Bagaimana DAO berfungsi? {#how-daos-work} - -Tulang belakang DAO ialah kontrak pintarnya, yang menentukan peraturan organisasi dan memegang perbendaharaan kumpulan. Sebaik sahaja kontrak bermula di Ethereum, tiada sesiapa yang boleh mengubah peraturan kecuali dengan undian. Jika sesiapa cuba melakukan sesuatu yang tidak dilindungi oleh peraturan dan logik dalam kod, tindakan ini akan gagal. Dan oleh kerana perbendaharaan juga ditakrifkan oleh kontrak pintar ini bermakna tiada sesiapa yang boleh membelanjakan wang tanpa kelulusan kumpulan. Ini bermakna bahawa DAO tidak memerlukan pihak berkuasa pusat. Sebaliknya, kumpulan membuat keputusan secara kolektif, dan pembayaran diluluskan secara automatik apabila undian lulus. - -Ini boleh dilakukan kerana kontrak pintar tidak boleh diubah sebaik sahaja kontrak dimulakan di Ethereum. Anda tidak boleh mengedit kod (peraturan DAO) tanpa diketahui oleh orang lain kerana semua tindakan adalah umum. - - - Lebih lanjut tentang kontrak pintar - - -## Ethereum dan DAO {#ethereum-and-daos} - -Ethereum merupakan asas yang sempurna untuk DAO atas beberapa sebab: - -- Konsensus Ethereum sendiri diedarkan dan ditubuhkan cukup untuk organisasi mempercayai rangkaian. -- Kod kontrak pintar tidak boleh diubah sebaik sahaja kontrak dimulakan, walaupun oleh pemiliknya. Ini membolehkan DAO dijalankan mengikut peraturan yang telah diprogramkan. -- Kontrak pintar boleh menghantar/menerima dana. Tanpa ini, anda memerlukan perantara yang dipercayai untuk menguruskan dana kumpulan. -- Komuniti Ethereum terbukti lebih bekerjasama dan tidak kompetitif, membolehkan amalan terbaik dan sistem sokongan dicapai dengan cepat. - -## Tadbir urus DAO {#dao-governance} - -Terdapat banyak pertimbangan apabila mentadbir urus DAO, contohnya cara mengundi dan cadangan berfungsi. - -### Delegasi {#governance-delegation} - -Delegasi adalah seperti demokrasi perwakilan versi DAO. Pemegang token mewakilkan undi kepada pengguna yang mencalonkan diri mereka dan komited untuk menguruskan protokol dan sedia termaklum. - -#### Contoh yang terkenal {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) – Pemegang ENS boleh mewakilkan undi mereka kepada ahli komuniti yang terlibat untuk mewakili mereka. - -### Tadbir urus transaksi automatik {#governance-example} - -Dalam banyak DAO, transaksi akan dilaksanakan secara automatik jika satu korum ahli mengundi bersetuju. - -#### Contoh yang terkenal {#governance-example} - -[Nouns](https://nouns.wtf) – Dalam DAO Nouns, transaksi dilaksanakan secara automatik jika satu korum undian dipenuhi dan majoriti mengundi untuk bersetuju, selagi ini tidak diveto oleh pengasas. - -### Tadbir urus multisig {#governance-example} - -Walaupun DAO mungkin mempunyai beribu-ribu ahli mengundi, dana boleh hidup dalam dompet yang dikongsi oleh 5-20 ahli komuniti aktif yang dipercayai dan biasanya identiti peribadi mereka dibuat umum. Selepas undian, penandatangan multisig melaksanakan kehendak masyarakat. - -## Undang-undang DAO {#dao-laws} - -Pada tahun 1977, Wyoming mencipta LLC, yang melindungi usahawan dan mengehadkan liabiliti mereka. Baru-baru ini, mereka merintis undang-undang DAO yang menubuhkan status undang-undang untuk DAO. Pada masa ini Wyoming, Vermont, dan Kepulauan Virgin mempunyai undang-undang DAO dalam beberapa bentuk. - -#### Contoh yang terkenal {#law-example} - -[CityDAO](https://citydao.io) – CityDAO menggunakan undang-undang DAO Wyoming untuk membeli 40 ekar tanah berhampiran Taman Negara Yellowstone. - -## Keahlian DAO {#dao-membership} - -Terdapat model yang berbeza untuk keahlian DAO. Keahlian boleh menentukan cara mengundi berfungsi dan bahagian utama DAO yang lain. - -### Keahlian berasaskan token {#token-based-membership} - -Biasanya tanpa izin sepenuhnya, bergantung kepada token yang digunakan. Kebanyakannya token tadbir urus ini boleh didagangkan tanpa izin pada pertukaran terdesentralisasi. Lain-lain mesti diperolehi dengan menyediakan mudah tunai atau 'bukti kerja'. Walau bagaimanapun, dengan hanya mempunyai token akan memberikan akses kepada pengundian. - -_Biasanya digunakan untuk mentadbir urus protokol dan/atau token yang terdesentralisasi secara luas._ - -#### Contoh yang terkenal {#token-example} - -[ MakerDAO](https://makerdao.com) – MKR token MakerDAO boleh didapati secara meluas di bursa tukaran berpusat dan sesiapa sahaja boleh membeli untuk mempunyai kuasa mengundi pada masa depan protokol Maker. - -### Keahlian berasaskan saham {#share-based-membership} - -DAO berasaskan saham lebih dibenarkan, tetapi masih agak terbuka. Mana-mana bakal ahli boleh mengemukakan cadangan untuk menyertai DAO, biasanya dengan menawarkan penghargaan yang bernilai dalam bentuk token atau kerja. Saham mewakili kuasa mengundi langsung dan pemilikan. Ahli boleh keluar pada bila-bila masa dengan bahagian saham perbendaharaan mereka. - -_Biasanya digunakan untuk organisasi yang ahlinya akrab dan berpusatkan manusia seperti badan amal, kolektif pekerja, dan kelab pelaburan. Juga boleh mentadbir protokol dan token._ - -#### Contoh yang terkenal {#share-example} - -[MolochDAO](http://molochdao.com/) – MolochDAO memberi tumpuan kepada pembiayaan protokol Ethereum. Mereka memerlukan cadangan untuk keahlian supaya kumpulan boleh menilai sama ada anda mempunyai kepakaran dan modal yang diperlukan untuk membuat penilaian termaklum mengenai pemberi berpotensi. Anda tidak boleh hanya membeli akses kepada DAO di pasaran terbuka. - -### Keahlian berasaskan reputasi {#reputation-based-membership} - -Reputasi mewakili bukti penyertaan dan memberikan kuasa mengundi dalam DAO. Tidak seperti token atau keahlian berasaskan saham, DAO berasaskan reputasi tidak memindahkan pemilikan kepada penyumbang. Reputasi tidak boleh dibeli, dipindahkan atau diwakilkan; ahli DAO mesti mendapat reputasi melalui penyertaan. Pengundian di rantaian tidak memerlukan keizinan dan bakal ahli bebas mengemukakan cadangan untuk menyertai DAO dan meminta untuk menerima reputasi dan token sebagai ganjaran atas sumbangan mereka. - -_Biasanya digunakan untuk pembangunan dan tadbir urus protokol dan dapp yang ternyahpusat, tetapi juga sesuai untuk pelbagai jenis organisasi seperti pertubuhan amal, kesatuan kolektif pekerja, kelab pelaburan, dan lain-lain._ - -#### Contoh yang terkenal {#reputation-example} - -[DXdao](https://DXdao.eth.link) – DXdao ialah sebuah kesatuan kolektif berdaulat global yang membina dan mentadbir urus protokol dan aplikasi ternyahpusat sejak 2019. Ia memanfaatkan tadbir urus berasaskan reputasi dan konsensus holografi untuk menyelaras dan menguruskan dana, bermakna tiada siapa yang boleh mempengaruhi masa depannya dengan menggunakan wang. - -## Sertai / mulakan DAO {#join-start-a-dao} - -### Sertai DAO {#join-a-dao} - -- [DAO komuniti Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [Senarai DAO oleh DAOHaus](https://app.daohaus.club/explore) -- [Senarai DAO oleh Tally.xyz](https://www.tally.xyz) - -### Mulakan DAO {#start-a-dao} - -- [Jelmakan DAO dengan DAOHaus](https://app.daohaus.club/summon) -- [Mulakan Governor DAO dengan Tally](https://www.tally.xyz/add-a-dao) -- [Cipta DAO yang didayakan Aragon](https://aragon.org/product) -- [Mulakan sebuah koloni](https://colony.io/) -- [Cipta DAO dengan konsensus holografi DAOstack](https://alchemy.daostack.io/daos/create) - -## Bacaan lanjut {#further-reading} - -### Artikel DAO {#dao-articles} - -- [Apakah itu DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) -- [Buku Panduan DAO](https://daohandbook.xyz) -- [Rumah DAO](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) -- [Apakah itu DAO dan apakah tujuannya?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) -- [Cara Memulakan Komuniti Digital Didayakan DAO](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) -- [Apakah itu DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) -- [Apakah itu Konsensus Holografi?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) -- [DAO bukan syarikat: penyahpusatan adalah penting dalam organisasi autonomi oleh Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) -- [DAO, DAC, DA dan Lebih Lagi: Panduan Terminologi Tidak Lengkap](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Blog Ethereum](https://blog.ethereum.org) - -### Videos {#videos} - -- [Apakah itu DAO dalam kripto?](https://youtu.be/KHm0uUPqmVE) -- [Bolehkah DAO Membina Bandar?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) - [TED](https://www.ted.com/) diff --git a/src/content/translations/ms/nft/index.md b/src/content/translations/ms/nft/index.md deleted file mode 100644 index a740ccec570..00000000000 --- a/src/content/translations/ms/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Token tidak sepiawai (NFT) -description: Gambaran umum mengenai NFT di Ethereum -lang: ms -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: Logo Eth dipaparkan menerusi hologram. -summaryPoint1: Satu cara untuk mewakili apa sahaja yang unik sebagai aset berasaskan Ethereum. -summaryPoint2: NFT memberi lebih banyak kuasa kepada pencipta kandungan dari sebelum ini. -summaryPoint3: Didayakan oleh kontrak pintar pada blok rantai Ethereum. ---- - -## Apakah itu NFT? {#what-are-nfts} - -NFT ialah token yang unik dari segi tersendiri. Setiap NFT mempunyai sifat berbeza (tidak sepiawai) dan terbukti terhad. Ini berbeza daripada token lain seperti ERC-20 iaitu setiap token dalam set adalah sama dan serupa sifatnya ('sepiawai'). Kita tidak kisah tentang wang kertas yang spesifik di dalam dompet fizikal kita, kerana semuanya serupa dan sama nilainya. Bagaimanapun, kita _tentu_ akan kisah tentang NFT spesifik yang dimiliki, kerana kesemua aset mempunyai sifat tersendiri yang membezakan satu NFT dari yang lain ('tidak sepiawai'). - -Keunikan setiap NFT membolehkan benda seperti karya seni, item koleksi ataupun hartanah ditukar menjadi token, iaitu satu NFT unik yang khusus mewakili item dunia nyata atau item digital yang unik. Pemilikan sesuatu aset dijamin oleh blok rantai Ethereum – tiada siapa dapat mengubah rekod pemilikan atau menyalin/menampal sesuatu NFT baharu sehingga wujud. - - - -## Aset Internet {#internet-of-assets} - -NFT dan Ethereum menyelesaikan beberapa masalah yang wujud dalam internet hari ini. Apabila segala-galanya menghampiri digitalisasi, terdapat keperluan untuk meniru sifat item fizikal seperti kekurangan, keunikan dan bukti pemilikan. dengan cara yang tidak dikawal oleh satu organisasi pusat. Sebagai contoh, dengan NFT, anda boleh memiliki muzik mp3 yang tidak spesifik hanya kepada aplikasi muzik milik sebuah syarikat, atau anda boleh memiliki nama pengguna di media sosial yang anda boleh tukarkan atau jual, tetapi penyedia platform tidak boleh merampasnya daripada anda. - -Beginilah rupa internet NFT jika dibandingkan dengan internet yang kita guna masa kini... - -### Satu perbandingan {#nft-comparison} - -| Internet NFT | Internet masa kini | -| -------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Aset anda adalah milik anda! Hanya anda yang boleh menjual atau menukarkannya. | Anda menyewa aset daripada organisasi tertentu. | -| Setiap NFT adalah unik dari segi digital, tidak ada dua NFT yang sama. | Salinan suatu entiti selalunya tidak dapat dibezakan daripada yang asal. | -| Pemilikan sesuatu NFT disimpan di dalam blok rantai untuk disahkan oleh sesiapa. | Rekod pemilikan barangan digital disimpan pada pelayan yang dikawal oleh institusi tertentu – anda terpaksa mempercayai mereka. | -| NFT ialah kontrak pintar di Ethereum. Ini bermakna ia boleh digunakan dalam kontrak pintar dan aplikasi lain di Ethereum dengan mudah! | Syarikat dengan item digital biasanya memerlukan infrastruktur "taman terkawal" sendiri. | -| Pencipta kandungan boleh menjual karya mereka di mana-mana dan boleh mengakses pasaran global. | Pencipta kandungan bergantung kepada pengagihan dan infrastruktur platform yang mereka guna. Semua ini seringkali tertakluk pada terma dan syarat juga batasan geografi. | -| Pencipta NFT boleh mengekalkan hak pemilikan ke atas hasil kerja mereka, dan boleh menetapkan royalti terus dalam kontrak NFT mereka. | Platform seperti perkhidmatan penstriman muzik mengekalkan sebahagian besar keuntungan daripada penjualan. | - -## Bagaimana NFT berfungsi? {#how-nfts-work} - -Seperti mana-mana token yang dikeluarkan di Ethereum, NFT juga dikeluarkan melalui kontrak pintar. Kontrak pintar ini mematuhi satu daripada beberapa piawai NFT (Biasanya ERC-721 atau ERC-1155) yang mentakrifkan fungsi kontrak itu. Kontrak itu boleh mencipta ('menempa') NFT dan memperuntukkan NFT itu kepada pemilik tertentu. Pemilikan ditakrifkan dalam kontrak dengan memetakan NFT tertentu kepada alamat tertentu. Setiap NFT mempunyai ID dan biasanya metadata yang dikaitkan dengannya menjadikan token itu unik. - -Apabila seseorang mencipta atau menempa NFT, mereka sebenarnya melaksanakan fungsi didalam kontrak pintar yang menetapkan sesuatu NFT kepada alamat spesifik. Maklumat ini disimpan dalam storan kontrak, iaitu sebahagian daripada blok rantai. Pencipta kontrak boleh menetapkan logik tambahan ke dalam kontrak, contohnya mengehadkan jumlah bekalan atau menentukan royalti untuk dibayar kepada pencipta setiap kali token itu dipindahkan. - -## Apakah kegunaan NFT? {#nft-use-cases} - -NFT digunakan untuk banyak perkara, termasuk: - -- membuktikan bahawa anda menghadiri acara -- mengesahkan bahawa anda telah menamatkan kursus -- barangan yang boleh dimiliki untuk permainan -- karya seni digital -- menjana token untuk aset dunia nyata -- membuktikan identiti dalam talian anda -- mengehadkan akses kepada kandungan -- pembelian tiket -- nama untuk domain internet ternyahpusat -- cagaran dalam DeFi - -Mungkin anda seorang artis yang ingin berkongsi hasil kerja menggunakan NFT, tanpa hilang kawalan atau mengorbankan keuntungan kepada orang tengah. Anda boleh mencipta kontrak baharu dan menentukan bilangan NFT, sifat NFT itu dan pautan kepada karya seni tertentu. Sebagai artis, anda boleh memprogramkan royalti yang sepatutnya dibayar ke dalam kontrak pintar (memindah 5% daripada harga jualan kepada pemilik kontrak cerdas setiap kali NFT itu dipindahkan). Anda juga boleh sentiasa membuktikan bahawa anda mencipta NFT itu kerana anda memiliki dompet yang mencipta kontrak tersebut. Pembeli anda boleh mengesahkan bahawa mereka memiliki NFT yang asli daripada koleksi anda dengan mudah kerana alamat dompet mereka dikaitkan dengan token dalam kontrak pintar anda. Mereka boleh menggunakannya dalam ekosistem Ethereum, yakin dengan keasliannya. - -Atau bayangkan tiket ke acara sukan. Sepertimana penganjur acara boleh memilih bilangan tiket untuk dijual, pencipta sesuatu NFT juga boleh memilih bilangan replika yang boleh wujud. Kadangkala ini merupakan replika yang tepat, seperti 5000 tiket Kemasukan Am. Kadangkala beberapa akan ditempa kelihatan serupa, tetapi setiap satu berbeza sedikit, seperti tiket dengan tempat duduk yang ditetapkan. Ia boleh dibeli dan dijual secara perangkai padan tanpa membayar pengendali tiket dan pembeli juga sentiasa mempunyai jaminan keaslian tiket dengan menyemak alamat kontrak. - -Di ethereum.org, NFT digunakan untuk menunjukkan bahawa orang telah menyumbang kepada repositori GitHub kami atau memenuhi panggilan, dan kami juga mempunyai nama domain NFT kami sendiri. Jika anda menyumbang kepada ethereum.org, anda boleh menuntut NFT POAP. Beberapa perjumpaan kripto telah menggunakan POAP sebagai tiket. [Maklumat lanjut tentang penyumbangan.](/contributing/#poap). - -![POAP ethereum.org](./poap.png) - -Laman web ini juga mempunyai nama domain alternatif yang didayakan oleh NFT, **ethereum.eth**. Alamat `.org` kami diuruskan secara berpusat oleh penyedia sistem nama domain (DNS), manakala ethereum`.eth` eth didaftarkan di Ethereum melalui Perkhidmatan Nama Ethereum (ENS). Ia dimiliki dan diurus oleh kami. [Semak rekod ENS kami](https://app.ens.domains/name/ethereum.eth) - -[Lebih lanjut mengenai ENS](https://app.ens.domains) - - - -### Keselamatan NFT {#nft-security} - -Keselamatan Ethereum adalah berasaskan bukti penaruhan. Sistem ini direka untuk menghalang tindakan berniat jahat secara ekonomi, menjadikan Ethereum kalis usikan. Ini yang membolehkan NFT wujud. Setelah blok yang mengandungi transaksi NFT anda dimuktamadkan, penyerang memerlukan berjuta-juta ETH untuk mengubahnya. Sesiapa yang menjalankan perisian Ethereum akan dapat mengesan usikan yang tidak jujur pada NFT secara serta-merta, dan pelaku jahat itu akan dihukum dari segi ekonomi dan dibuang. - -Isu keselamatan berhubung dengan NFT paling kerap berkaitan dengan penipuan pancingan data, kelemahan kontrak pintar atau kesilapan pengguna (seperti mendedahkan kunci persendirian secara tidak sengaja), oleh itu keselamatan dompet yang mantap adalah amat penting bagi pemilik NFT. - - - Maklumat lanjut tentang keselamatan - - -## Bacaan lanjut {#further-reading} - -- [Panduan pengguna baharu untuk NFT](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, Januari 2020_ -- [Penjejak NFT Etherscan](https://etherscan.io/nft-top-contracts) -- [Piawai token ERC-721](/developers/docs/standards/tokens/erc-721/) -- [Piawai token ERC-1155](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/nl/community/support/index.md b/src/content/translations/nl/community/support/index.md deleted file mode 100644 index c3554d57d38..00000000000 --- a/src/content/translations/nl/community/support/index.md +++ /dev/null @@ -1,114 +0,0 @@ ---- -title: Ethereum-ondersteuning -description: Krijg ondersteuning in het Ethereum-ecosysteem. -lang: nl ---- - -# Ethereum-ondersteuning {#support} - -## Officiële Ethereum-ondersteuning {#official-support} - -Zoekt u de officiële Ethereum-ondersteuning? Het eerste wat u moet weten is dat Ethereum gedecentraliseerd is. Dit betekent dat er geen centrale organisatie, entiteit of persoon eigenaar is van Ethereum, en daarom bestaan er geen officiële ondersteuningskanalen. - -Begrijpen van de gedecentraliseerde aard van Ethereum is van vitaal belang, omdat iedereen die beweert officiële steun voor Ethereum te zijn, waarschijnlijk probeert om u te bezwendelen! De beste bescherming tegen scammers is uzelf voor te lichten en veiligheid serieus te nemen. - - - Ethereum-beveiliging en -scampreventie - - - - Leer de Ethereum-basisprincipes - - -Ondanks het gebrek aan officiële ondersteuning, helpen veel groepen, gemeenschappen en projecten in het Ethereum-ecosysteem, waardoor u veel nuttige informatie en bronnen kunt vinden op deze pagina. Heeft u nog vragen? Neem deel aan de [ethereum.org Discord](/discord/) en we zullen proberen te helpen. - -## Ondersteuning voor portemonnee {#wallet-support} - -Een probleem met uw portemonnee? De meeste portemonnees hebben speciale ondersteuningsteams die kunnen helpen: - -- [MetaMask](https://metamask.zendesk.com/hc/) -- [Argent](https://support.argent.xyz/hc/) -- [MyEtherWallet](https://help.myetherwallet.com/) - -_Dit is geen uitputtende lijst. Hulp nodig bij het vinden van ondersteuning voor een specifieke portemonnee? Doe mee met de [ethereum.org discord](https://discord.gg/ethereum-org) en we zullen proberen te helpen._ - -Op zoek naar een Ethereum-portemonnee? [Ontdek onze volledige lijst van Ethereum-portemonnees](/wallets/find-wallet/). - -## Dapps maken {#building-support} - -Bouwen kan moeilijk zijn. Hier zijn enkele ontwikkelingsgerichte ruimtes met ervaren Ethereum-ontwikkelaars die graag helpen. - -- [CryptoDevs discord](https://discord.gg/Z9TA39m8Yu) -- [Ethereum StackExchange](https://ethereum.stackexchange.com/) -- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) -- [Web3 University](https://www.web3.university/) - -U kunt ook documentatie en ontwikkelgidsen vinden in onze sectie met [bronnen voor Ethereum-ontwikkelaars](/developers/). - -### Tools {#dapp-tooling} - -Heeft uw vraag betrekking op een specifieke tool, project of bibliotheek? De meeste projecten hebben chatservers of forums die u kunnen ondersteunen. - -Hier zijn enkele populaire voorbeelden: - -- [Solidity](https://gitter.im/ethereum/solidity/) -- [ethers.js](https://discord.gg/6jyGVDK6Jx) -- [web3.js](https://discord.gg/GsABYQu4sC) -- [Hardhat](https://discord.gg/xtrMGhmbfZ) -- [Truffle](https://discord.gg/8uKcsccEYE) -- [Alchemy](http://alchemy.com/discord) -- [Tenderly](https://discord.gg/fBvDJYR) - -## Een node uitvoeren {#node-support} - -Als u een node of validator uitvoert, zijn hier enkele gemeenschappen die u kunnen helpen om aan de slag te gaan. - -- [EthStaker discord](https://discord.gg/ethstaker) -- [EthStaker reddit](https://www.reddit.com/r/ethstaker) - -De meeste teams die Ethereum clients bouwen, hebben ook speciale op het publiek gerichte ruimtes waar u ondersteuning kunt krijgen en vragen kunt stellen. - -### Clients voor uitvoering {#execution-clients} - -- [Geth](https://discord.gg/FqDzupGyYf) -- [Nethermind](https://discord.gg/YJx3pm8z5C) -- [Besu](https://discord.gg/p8djYngzKN) -- [Erigon](https://github.com/ledgerwatch/erigon/issues) - -### Consensus clients {#consensus-clients} - -- [Prysm](https://discord.gg/prysmaticlabs) -- [Nimbus](https://discord.gg/nSmEH3qgFv) -- [Lighthouse](https://discord.gg/cyAszAh) -- [Teku](https://discord.gg/7hPv2T6) -- [Lodestar](https://discord.gg/aMxzVcr) - -U kunt hier ook [leren hoe u een node uitvoert](/developers/docs/nodes-and-clients/run-a-node/). - -## Veelgestelde vragen {#faq} - -#### Ik heb ETH naar de verkeerde portemonnee gestuurd {#wrong-wallet} - -Een transactie verzonden op Ethereum is onomkeerbaar. Helaas, als u ETH naar de verkeerde portemonnee heeft gestuurd, is er geen manier om deze fondsen terug te krijgen. Geen enkele centrale organisatie, entiteit of persoon bezit Ethereum, wat betekent dat niemand transacties kan omkeren. Daarom is het essentieel om uw transacties altijd opnieuw te controleren alvorens ze te verzenden. - -#### Hoe kan ik mijn Ethereum-giveaway claimen? {#giveaway-scam} - -Ethereum-giveaways zijn scams ontworpen om uw ETH te stelen. Word niet in de verleiding gebracht door aanbiedingen die te goed lijken om waar te zijn - als u ETH naar een giveaway-adres stuurt, ontvangt u geen giveaway en kunt u uw fondsen niet terugkrijgen. - -[Meer over scampreventie](/security/#common-scams) - -#### Mijn transactie is vastgelopen {#stuck-transaction} - -Transacties op Ethereum kunnen soms vast komen te zitten als u een lagere transactietarief heeft ingediend dan vereist is vanwege de netwerkvraag. Veel portemonnees bieden een optie om dezelfde transactie opnieuw in te dienen met een hoger transactietarief om de transactie te kunnen verwerken. Of u kunt een lopende transactie annuleren door een transactie naar uw eigen adres te sturen en dezelfde nonce te gebruiken als de lopende transactie. - -[Hoe een lopende transactie op MetaMask te versnellen of te annuleren](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) - -[Hoe lopende Ethereum transacties annuleren](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) - -#### Hoe kan ik Ethereum minen? {#mining-ethereum} - -Ethereum-mining is niet langer mogelijk. Mining werd uitgeschakeld toen Ethereum overschakelde van proof-of-work naar proof-of-stake. Nu heeft Ethereum validators in plaats van miners. Validators staken ETH en ontvangen staking-beloningen voor het beveiligen van het netwerk. - -#### Hoe word ik een staker/validator? {#become-validator} - -Om een validator te worden moet u 32 ETH staken in het Ethereum-stortingscontract en een validator-node instellen. Er is meer informatie beschikbaar op onze [staking-pagina's](/staking) en op [het staking launchpad](https://launchpad.ethereum.org/). diff --git a/src/content/translations/nl/dao/index.md b/src/content/translations/nl/dao/index.md deleted file mode 100644 index aa126317b82..00000000000 --- a/src/content/translations/nl/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: Gedecentraliseerde autonome organisaties (DAO's) -description: Een overzicht van DAO's op Ethereum -lang: nl -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: Een vertegenwoordiging van een DAO die over een voorstel stemt. -summaryPoint1: Gemeenschappen waarvan de leden eigenaar zijn en zonder gecentraliseerd leiderschap. -summaryPoint2: Een veilige manier om samen te werken met vreemdelingen op het internet. -summaryPoint3: Een veilige plek om fondsen aan te wenden voor een specifieke zaak. ---- - -## Wat zijn DAO's? {#what-are-daos} - -Een DAO is een collectieve, blockchain-gestuurde organisatie die werkt ten behoeve van een gedeelde missie. - -Met DAO's kunnen we met gelijkgestemde mensen over de hele wereld werken zonder dat we een leider hoeven te vertrouwen om de fondsen of activiteiten te beheren. Er is geen CEO die zelf zomaar geld kan uitgeven of een CFO die de boeken kan manipuleren. In plaats daarvan zijn er op blockchain-gebaseerde regels in de code opgenomen die definiëren hoe de organisatie werkt en hoe fondsen worden besteed. - -Ze hebben ingebouwde schatkisten die enkel toegankelijk zijn met toesteming van de groep. Besluiten worden bepaald door voorstellen en verkiezingen om ervoor te zorgen dat iedereen in de organisatie een stem heeft; dit alles gebeurt op transparante wijze on-chain. - -## Waarom hebben we DAO's nodig? {#why-dao} - -Het starten van een organisatie met iemand waarbij financiering en geld betrokken zijn, vereist veel vertrouwen in de mensen waarmee je werkt. Maar het is moeilijk om iemand te vertrouwen waar je enkel online contact mee hebt gehad. Met DAO's hoef je niemand anders in de groep te vertrouwen, alleen de DAO-code, die 100% transparant en controleerbaar is voor iedereen. - -Dit opent zoveel nieuwe mogelijkheden voor wereldwijde samenwerking en coördinatie. - -### Een vergelijking {#dao-comparison} - -| DAO | Een traditionele organisatie | -| ---------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | -| Meestal geen hiërarchie en volledig gedemocratiseerd. | Meestal met hiërarchie. | -| Er moet gestemd worden door de leden voor eventuele wijzigingen. | Afhankelijk van de hiërarchie kunnen veranderingen worden geëist door een enkele partij of persoon. | -| Stemmen worden automatisch geteld en het besluit wordt automatisch geïmplementeerd, zonder vertrouwde tussenpersoon. | Als stemming is toegestaan, worden stemmen intern geteld en moeten de stemresultaten handmatig worden afgehandeld. | -| Aangeboden diensten worden automatisch op een gedecentraliseerde manier behandeld (bijvoorbeeld distributie van filantropische fondsen). | Vereist menselijke afhandeling, of centraal gecontroleerde automatisering, vatbaar voor manipulatie. | -| Alle activiteiten zijn transparant en volledig open voor iedereen. | Activiteit is meestal privé en beperkt tot het publiek. | - -### Voorbeelden van DAO's {#dao-examples} - -Om dit zinvoller te maken, geven we hier een paar voorbeelden van hoe u een DAO zou kunnen gebruiken: - -- Een goed doel – je kunt donaties accepteren van wie dan ook ter wereld en stemmen op waar het geld voor gebruikt kan worden. -- Collectief eigendom - je zou fysieke of digitale activa kunnen kopen en leden kunnen stemmen over het gebruik ervan. -- Ondernemingen en subsidies – u zou een risicofonds kunnen creëren dat beleggingskapitaal poolt en stemt op ondernemingen om financieel te ondersteunen. Terugbetaald geld kan later opnieuw worden verdeeld onder DAO-leden. - -## Hoe werken DAO's? {#how-daos-work} - -De backbone van een DAO is de smart contract ervan die de regels van de organisatie definieert en de schatkist van de groep houdt. Zodra het contract live is op Ethereum, kan niemand meer de regels veranderen. De regels kunnen enkel veranderd worden door een stemming. Als iemand iets probeert te doen dat niet valt onder de regels en logica in de code, zal het mislukken. En omdat de schatkist ook in het slimme contract wordt gedefinieerd, betekent dat niemand het geld kan uitgeven zonder toestemming van de groep. Dit betekent dat DAO's geen centrale autoriteit nodig hebben. In plaats daarvan neemt de groep collectief besluiten en worden betalingen automatisch toegestaan wanneer er wordt ingestemd. - -Dit is mogelijk omdat smart contracts fraudebestendig zijn zodra ze live op Ethereum gaan. U kunt de code (de regels van DAO's) niet gewoon bewerken zonder dat mensen dat merken, omdat alles openbaar is. - - - Meer over slimme contracten - - -## Ethereum en DAO's {#ethereum-and-daos} - -Ethereum is de perfecte basis voor DAO's om een aantal redenen: - -- De eigen consensus van Ethereum is zo verdeeld en voldoende vastgesteld dat organisaties het netwerk kunnen vertrouwen. -- De code van een slim contract kan niet aangepast worden zodra deze live is, zelfs niet door de eigenaren. Hierdoor kan de DAO functioneren volgens de regels waarmee ze oorspronkelijk was geprogrammeerd. -- Slimme contracten kunnen geld verzenden en ontvangen. Zonder dit zou u een vertrouwde tussenpersoon nodig hebben om groepsfondsen te beheren. -- De Ethereum-gemeenschap heeft bewezen meer samen te werken dan concurrerend te zijn, waardoor beste praktijken en ondersteuningssystemen snel tot stand kunnen komen. - -## DAO-governance {#dao-governance} - -Bij het besturen van een DAO zijn veel overwegingen aan de orde, zoals hoe stemmen en voorstellen werken. - -### Delegatie {#governance-delegation} - -Delegatie is als de DAO-versie van representatieve democratie. Tokenhouders delegeren stemmen aan gebruikers die zichzelf nomineren en zich ertoe verbinden het protocol te beheren en op de hoogte te blijven. - -#### Een goed voorbeeld {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) – ENS-houders kunnen hun stemmen delegeren aan betrokken leden van de gemeenschap om ze te vertegenwoordigen. - -### Automatisch transactiebeheer {#governance-example} - -In veel DAO's worden transacties automatisch uitgevoerd als een quorum van de leden positief stemt. - -#### Een goed voorbeeld {#governance-example} - -[Nouns](https://nouns.wtf) - In Nouns DAO wordt een transactie automatisch uitgevoerd wanneer er een quorum van stemmen wordt behaald en een meerderheid positief stemt, zolang er geen veto wordt uitgesproken door de stichters. - -### Multisig bestuur {#governance-example} - -Hoewel DAO's mogelijk duizenden stemmende leden hebben, worden fondsen vaak bewaard in een portemonnee die gedeeld wordt door 5-20 actieve leden die vertrouwd worden door de gemeenschap. Deze leden zijn vaak ook gedoxxed (d.w.z. hun publieke identiteit is bekend bij de gemeenschap). Na een stemming voeren de multisig-signers de wil van de gemeenschap uit. - -## DAO-wetten {#dao-laws} - -In 1977 heeft Wyoming het LLC uitgevonden, dat ondernemers beschermt en hun aansprakelijkheid beperkt. Meer recentelijk hebben ze het voortouw genomen in de DAO-wetgeving die de juridische status van DAO's vaststelt. Op dit moment hebben Wyoming, Vermont en de Maagdeneilanden een of andere vorm van DAO-wetgeving. - -#### Een goed voorbeeld {#law-example} - -[CityDAO](https://citydao.io) – CityDAO gebruikte de DAO-wetgeving van Wyoming om 40 hectare land in de buurt van het Yellowstone nationaal park te kopen. - -## DAO-lidmaatschap {#dao-membership} - -Er zijn verschillende modellen voor een DAO-lidmaatschap. Lidmaatschap kan bepalen hoe stemmen en andere belangrijke delen van de DAO werken. - -### Op token gebaseerd lidmaatschap {#token-based-membership} - -Meestal volledig toestemmingsloos, afhankelijk van de gebruikte token. Meestal kunnen deze governance-tokens op een gedecentraliseerde exchange zonder toestemming worden verhandeld. Anderen moeten verdiend worden door middel van liquiditeit of een ander 'proof of work'. Hoe dan ook, alleen al het hebben van een token geeft toegang tot stemmen. - -_Meestal gebruikt om brede gedecentraliseerde protocollen en/of tokens zelf te besturen._ - -#### Een bekend voorbeeld {#token-example} - -[MakerDAO](https://makerdao.com) – De token MKR van MakerDAO is breed beschikbaar op gedecentraliseerde exchanges en iedereen kan hem kopen om een stem te hebben in de toekomst van het Maker-protocol. - -### Op aandelen gebaseerd lidmaatschap {#share-based-membership} - -Op aandelen gebaseerde DAO's vereisen meer toestemming, maar zijn nog steeds behoorlijk open. Elk toekomstig lid kan een voorstel indienen om zich bij de DAO aan te sluiten, meestal door waarde aan te bieden in de vorm van tokens of werk. Aandelen vertegenwoordigen directe stemkracht en eigendom. Leden kunnen op elk moment vertrekken met hun proportionele aandeel van de schatkist. - -_Meestal gebruikt voor hechtere, mensgerichtere organisaties zoals liefdadigheidsinstellingen, arbeiderscollectieven en beleggingsclubs. Kunnen ook protocollen en tokens regelen._ - -#### Een bekend voorbeeld {#share-example} - -[MolochDAO](http://molochdao.com/) – MolochDAO is gericht op het financieren van Ethereum-projecten. Zij vereisen een voorstel voor lidmaatschap, zodat de groep kan beoordelen of u over de nodige expertise en het nodige kapitaal beschikt om weloverwogen beslissingen te nemen over potentiële begunstigden. U kunt niet zomaar toegang tot de DAO op de open markt kopen. - -### Op reputatie gebaseerd lidmaatschap {#reputation-based-membership} - -Reputatie is een bewijs van deelname en geeft stemrecht in de DAO. Anders dan een op tokens of aandelen gebaseerd lidmaatschap, dragen op reputatie gebaseerde DAO's geen eigendomsrechten over aan de bijdragers. Reputatie kan niet worden gekocht, overgedragen of gedelegeerd; DAO-leden moeten reputatie verdienen door deelname. On-chain stemmen is vrij voor iedereen en toekomstige leden kunnen vrij voorstellen indienen om toe te treden tot de DAO en verzoeken om reputatie en tokens te ontvangen als beloning voor hun bijdragen. - -_Meestal gebruikt voor gedecentraliseerde ontwikkeling en governance van protocollen en dapps, maar ook goed geschikt voor een veelzijdige groep organisaties zoals liefdadigheidsinstellingen, arbeiderscollectieven, investeringsclubs, enz._ - -#### Een bekend voorbeeld {#reputation-example} - -[DXdao](https://DXdao.eth.link) – DXdao is een wereldwijd soeverein collectief dat sinds 2019 gedecentraliseerde protocollen en toepassingen bouwt en beheert. Het maakt gebruik van op reputatie gebaseerde governance en holografische consensus om fondsen te coördineren en te beheren, wat betekent dat niemand zomaar de toekomst ervan kan beïnvloeden door aankopen te doen. - -## Doe mee aan / start een DAO {#join-start-a-dao} - -### Doe mee aan een DAO {#join-a-dao} - -- [DAO's van de Ethereum-gemeenschap](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [Lijst van DAO's van DAOHaus](https://app.daohaus.club/explore) -- [Tally.xyz-lijst van DAO's](https://www.tally.xyz) - -### Start een DAO {#start-a-dao} - -- [Roep een DAO op met DAOHaus](https://app.daohaus.club/summon) -- [Start een Governor DAO met Tally](https://www.tally.xyz/add-a-dao) -- [Creëer een door Aragon mogelijk gemaakte DAO](https://aragon.org/product) -- [Start een kolonie](https://colony.io/) -- [Maak een DAO met de holografische consensus van DAOstack](https://alchemy.daostack.io/daos/create) - -## Verder lezen {#further-reading} - -### DAO-artikelen {#dao-articles} - -- [Wat is een DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) -- [Het DAO-handboek](https://daohandbook.xyz) -- [House of DAOs](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) -- [Wat is een DAO en waar is het voor?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) -- [Hoe een door een DAO mogelijk gemaakte digitale gemeenschap te starten](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) - [DAOhaus](https://daohaus.club/) -- [Wat is een DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) -- [Wat is holografische consensus?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) -- [DAOs are not corporations: where decentralization in autonomous organizations matters, van Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) -- [DAO's, DAC's, DA's en meer: een onvolledige terminologiegids](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Ethereum Blog](https://blog.ethereum.org) - -### Video's {#videos} - -- [Wat is een DAO in crypto?](https://youtu.be/KHm0uUPqmVE) -- [Kan een DOA een stad bouwen?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/src/content/translations/nl/decentralized-identity/index.md b/src/content/translations/nl/decentralized-identity/index.md deleted file mode 100644 index 2334651c686..00000000000 --- a/src/content/translations/nl/decentralized-identity/index.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: Gedecentraliseerde identiteit -description: Wat is gedecentraliseerde identiteit, en waarom is het belangrijk? -lang: nl -template: use-cases -emoji: ":id:" -sidebarDepth: 2 -image: ../../../../assets/eth-gif-cat.png -summaryPoint1: Traditionele identiteitssystemen hebben de uitgifte, het onderhoud en de controle van uw identificatiemiddelen gecentraliseerd. -summaryPoint2: Gedecentraliseerde identiteit verwijdert vertrouwen op gecentraliseerde derden. -summaryPoint3: Dankzij crypto hebben gebruikers nu de tools om hun eigen identificaties en attestaties uit te geven, bij te houden en te beheren. ---- - -Identiteit vormt vandaag de dag de basis van vrijwel elk aspect in uw leven. Gebruik maken van online diensten, een bankrekening openen, stemmen bij verkiezingen, onroerend goed kopen, een baan zekerstellen - al deze zaken vereisen uw identiteit. - -Traditionele identiteitsbeheersystemen hebben echter lang vertrouwd op gecentraliseerde tussenpersonen die uw identificatiegegevens en [attestaties](#what-are-attestations) uitgeven, bewaren en controleren. Dit betekent dat u uw identiteitsgerelateerde informatie niet kunt controleren of beslissen wie toegang heeft tot persoonlijke informatie (PII) en hoeveel toegang deze partijen precies hebben. - -Om deze problemen op te lossen, hebben we gedecentraliseerde identiteitssystemen gebouwd op openbare blockchains zoals Ethereum. Gedecentraliseerde identiteit stelt individuen in staat hun identiteitsgerelateerde informatie te beheren. Met gedecentraliseerde identiteitsoplossingen kunt _u_ zelf uw identificatiekenmerken creëren en houdt u zelf uw certificaten bij, zonder te vertrouwen op centrale autoriteiten, zoals dienstverleners of overheden. - -## Wat is identiteit? {#what-is-identity} - -Identiteit betekent iemands gevoel voor zichzelf, gedefinieerd door zijn unieke kenmerken. Identiteit verwijst naar het zijn van een _individu_, d.w.z. een afzonderlijke menselijke entiteit. Identiteit zou ook kunnen verwijzen naar andere niet-menselijke entiteiten, zoals een organisatie of autoriteit. - -## Wat zijn identicatiekenmerken? {#what-are-identifiers} - -Een identicatiekenmerk is een stuk informatie dat als aanwijzing dient voor een bepaalde identiteit of bepaalde identiteiten. Algemene identificatiekenmerken omvatten: - -- Naam -- Sociale-zekerheidsnummer/BTW-nummer -- Mobiel (telefoon)nummer -- Datum en plaats van geboorte -- Digitale identificatiegegevens, bijv. e-mailadressen, gebruikersnamen, avatars - -Deze traditionele identificatiekenmerken worden uitgegeven, beheerd en gecontroleerd door centrale entiteiten. U heeft toestemming nodig van uw regering om uw naam te veranderen of van een social media platform om uw gebruikersnaam te veranderen. - -## Wat zijn attesten? {#what-are-attestations} - -Een attest is een claim gedaan door een entiteit over een andere entiteit. Als u in de Verenigde Staten woont, dan attesteert het door de afdeling Motorvoertuigen (een entiteit) verstrekte rijbewijs dat u (een andere entiteit) legale toestemming heeft om in een auto te rijden. - -Attesten verschillen van identificatiekenmerken. Een attest _bevat_ identificatiekenmerken om te verwijzen naar een bepaalde identiteit en maakt een claim over een kenmerk dat gerelateerd is aan deze identiteit. Dus uw rijbewijs bevat identificatiekenmerken (naam, geboortedatum, adres), maar is ook het attest van uw wettelijke recht om te rijden. - -### Wat zijn gedecentraliseerde identificatiekenmerken? {#what-are-decentralized-identifiers} - -Traditionele identificatiekenmerken zoals uw wettelijke naam of e-mailadres vertrouwen op derde partijen — overheden en e-mailproviders. Gedecentraliseerde kenmerken (DID's) zijn anders — ze worden niet uitgegeven, beheerd of gecontroleerd door een centrale entiteit. - -Gedecentraliseerde identificatiekenmerken worden uitgegeven, beheerd en gecontroleerd door personen. Een [Ethereum-account](/developers/docs/accounts/) is een voorbeeld van een gedecentraliseerd identificatiekenmerk. U kunt zoveel accounts aanmaken als u wilt zonder enige toestemming van wie ook en zonder dat u ze hoeft op te slaan in een centraal register. - -Gedecentraliseerde identificatiekenmerken worden opgeslagen op gedistribueerde ledgers (blockchains) of peer-to-peer netwerken. Dit maakt DID's [wereldwijd uniek, oplosbaar met een hoge beschikbaarheid en cryptografisch verifieerbaar](https://w3c-ccg.github.io/did-primer/). Een gedecentraliseerd identificatiekenmerk kan worden geassocieerd met verschillende entiteiten, waaronder mensen, organisaties of overheidsinstellingen. - -## Wat maakt gedecentraliseerde identificatiekenmerken mogelijk? {#what-makes-decentralized-identifiers-possible} - -### 1. Publieke sleutel-infrastructuur (PKI) {#public-key-infrastructure} - -Publieke sleutel-infrastructuur (PKI) is een informatiebeveiligingsmaatregel die een [publieke sleutel](/glossary/#public-key) en [privé-sleutel](/glossary/#private-key) voor een entiteit genereert. Publieke sleutel-cryptografie wordt gebruikt in blockchain-netwerken om gebruikersidentiteiten te verifiëren en eigendom van digitale activa te bewijzen. - -Sommige gedecentraliseerde identificatiekenmerken, zoals een Ethereum-account, hebben publieke en privé-sleutels. De publieke sleutel identificeert de account-controller, terwijl de privé-sleutels berichten kunnen ondertekenen en decrypteren voor dit account. PKI biedt bewijzen die nodig zijn om entiteiten te verifiëren en impersonatie en het gebruik van valse identiteiten te voorkomen, met behulp van [cryptografische handtekeningen](https://andersbrownworth.com/blockchain/public-private-keys/) om alle claims te verifiëren. - -### 2. Gedecentraliseerde datastores {#decentralized-datastores} - -Een blockchain dient als een verifieerbaar dataregister: een open, betrouwbare en gedecentraliseerde opslagplaats van informatie. Het bestaan van openbare blockchains voorkomt de noodzaak om identificatiekenmerken op te slaan in gecentraliseerde registers. - -Als iemand de geldigheid van een gedecentraliseerd identificatiekenmerk moet bevestigen, kan hij de bijbehorende publieke sleutel op de blockchain zoeken. Dit is anders dan de traditionele identificatiekenmerken die door derden geauthenticeerd moeten worden. - -## Hoe maken gedecentraliseerde kenmerken en attesten gedecentraliseerde identiteit mogelijk? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} - -Gedecentraliseerde identiteit is het idee dat identiteitsgerelateerde informatie zelfbediend, privé en draagbaar moet zijn, waarbij gedecentraliseerde kenmerken en attesten de primaire bouwstenen zijn. - -In de context van een gedecentraliseerde identiteit zijn attesten (ook bekend als [Verifiable Credentials](https://www.w3.org/TR/vc-data-model/)) manipulatiebestendige, cryptografisch verifieerbare claims gemaakt door de uitgever. Elke bevestiging of Verifieerbare Legitimatie (Verifiable Credential) die entiteiten (bijv. een organisatie) uitgeven, is gekoppeld aan hun DID. - -Omdat DID's op de blockchain zijn opgeslagen, kan iedereen de geldigheid van een attest verifiëren door de DID van de uitgever op Ethereum te controleren. De Ethereum-blockchain gedraagt zich in wezen als een wereldwijde directory die de verificatie van DID's die gekoppeld zijn aan bepaalde entiteiten mogelijk maakt. - -Gedecentraliseerde identificatiekenmerken zijn de reden dat attesten zelfcontrolerend en verifieerbaar zijn. Zelfs als de uitgevende instelling niet meer bestaat, heeft de houder altijd bewijs van de herkomst en geldigheid van het attest. - -Gedecentraliseerde kenmerken zijn ook van cruciaal belang voor de bescherming van de privacy van persoonlijke informatie door middel van gedecentraliseerde identiteit. Als een persoon bijvoorbeeld een bewijs van een attest (een rijbewijs) indient, hoeft de verifiërende partij de geldigheid van informatie in het bewijs niet te controleren. In plaats daarvan heeft de verifiërende partij alleen cryptografische garanties nodig voor de authenticiteit van het attest en de identiteit van de uitgevende organisatie om te bepalen of het bewijs geldig is. - -## Soorten attesten in gedecentraliseerde identiteit {#types-of-attestations-in-decentralized-identity} - -Hoe attestinformatie wordt opgeslagen en opgehaald in een Ethereum-identiteitsecosysteem is anders dan bij traditioneel identiteitsbeheer. Hier is een overzicht van de verschillende benaderingen om attesten uit te geven, op te slaan en te verifiëren in gedecentraliseerde identiteitssystemen: - -### Off-chain attesten {#off-chain-attestations} - -Een nadeel van opslag van attesten on-chain is dat ze informatie kunnen bevatten die personen liever privé willen houden. De publieke aard van de Ethereum-blockchain maakt het onaantrekkelijk om dergelijke attesten bij te houden. - -De oplossing is het uitgeven van attesten, die worden bijgehouden door de gebruikers zelf (off-chain in digitale portemonnees), maar ondertekend met de DID van de uitgever, die on-chain is opgeslagen. Deze attesten worden versleuteld als [JSON Web Tokens](https://en.wikipedia.org/wiki/JSON_Web_Token) en bevatten de digitale handtekening van de uitgever — wat eenvoudige verificatie van off-chain claims mogelijk maakt. - -Hier is een hypothetisch scenario om off-chain attesten uit te leggen: - -1. Een universiteit (de uitgever) genereert een attest (een digitaal academisch certificaat), ondertekent het met zijn sleutels en geeft het uit aan Bob (de identiteitseigenaar). - -2. Bob solliciteert op een baan en wil zijn academische kwalificaties bewijzen aan een werkgever, dus deelt hij het attest vanuit zijn mobiele portemonnee. Het bedrijf (de verifiërende partij) kan dan de geldigheid van het attest bevestigen door de DID van de uitgever te controleren (d.w.z. de publieke sleutel ervan op Ethereum). - -### Off-chain attesten met persistente toegang {#offchain-attestations-with-persistent-access} - -Onder deze regeling worden attesten omgezet in JSON-bestanden en off-chain opgeslagen (in het ideale geval in een [gedecentraliseerde cloudopslagplatform](/developers/docs/storage/), zoals IPFS of Swarm). Een [hash](/glossary/#hash) van het JSON-bestand wordt echter on-chain opgeslagen en gekoppeld aan een DID via een on-chain register. De bijbehorende DID kan van de uitgever van het attest of van de ontvanger zijn. - -Deze aanpak maakt het mogelijk om voor attesten blockchain-gebaseerde persistentie te verkrijgen, terwijl informatie over claims versleuteld en verifieerbaar blijft. Het maakt ook een selectieve openbaarmaking mogelijk, aangezien de houder van de privé-sleutel de informatie kan decoderen. - -### On-chain attesten {#onchain-attestations} - -On-chain attesten worden bijgehouden in [smart contracts](/developers/docs/smart-contracts/) op de Ethereum-blockchain. Het smart contract (dat handelt als een register) zal een attest toewijzen aan een bijbehorend on-chain gedecentraliseerd identificatiekenmerk (een publieke sleutel). - -Hier is een voorbeeld om te laten zien hoe on-chain attesten in de praktijk zouden kunnen werken: - -1. Een bedrijf (XYZ Corp) is van plan eigendomsaandelen te verkopen met behulp van een smart contract, maar wil alleen kopers die een achtergrondcontrole hebben voltooid. - -2. XYZ Corp kan het bedrijf achtergrondcontroles laten uitvoeren om on-chain attesten op Ethereum uit te geven. Dit attest verklaart dat een persoon de achtergrondcontrole heeft doorstaan zonder dat enige persoonlijke gegevens zijn openbaargemaakt. - -3. Het smart contract dat de aandelen verkoopt kan het registercontract controleren voor de identiteit van gescreende kopers; dit maakt het mogelijk voor het smart contract om te bepalen wie de aandelen mag kopen en wie niet. - -### Zielsgebonden tokens en identiteit {#soulbound} - -[Zielsgebonden tokens](https://vitalik.ca/general/2022/01/26/soulbound.html) (niet-overdraagbare NFT's) kunnen worden gebruikt om informatie te verzamelen die uniek is voor een specifieke portemonnee. Dit creëert in feite een unieke on-chain identiteit gekoppeld aan een bepaald Ethereum-adres, dat tokens kan bevatten die prestaties (bijv. het voltooien van een specifieke online cursus of het verbreken van een score in een game) of deelname aan een gemeenschap vertegenwoordigen. - -## Voordelen van gedecentraliseerde identiteit {#benefits-of-decentralized-identity} - -1. Gedecentraliseerde identiteit verhoogt de individuele controle op identificatie-informatie. Gedecentraliseerde identificatiekenmerken en attesten kunnen worden geverifieerd zonder te vertrouwen op gecentraliseerde autoriteiten en diensten van derden. - -2. Gedecentraliseerde identiteitsoplossingen maken een betrouwbare, naadloze en privacy-beschermingsmethode mogelijk voor het verifiëren en beheren van de gebruikersidentiteit. - -3. Gedecentraliseerde identiteit benut blockchain-technologie, wat voor vertrouwen tussen verschillende partijen zorgt en cryptografische garanties biedt om de geldigheid van attesten te bewijzen. - -4. Gedecentraliseerde identiteit maakt identiteitsgegevens draagbaar. Gebruikers bewaren attesten en identificatiekenmerken in een mobiele portemonnee en kunnen deze delen met een partij van keuze. Gedecentraliseerde identificatiekenmerken en attesten zijn niet vergrendeld in de database van de uitgevende organisatie. - -5. Gedecentraliseerde identiteit moet goed werken met opkomende zero-knowledge-technologieën, die mensen in staat stellen om te bewijzen dat ze iets in bezit hebben of gedaan hebben zonder te onthullen wat het precies is. Dit zou een krachtige manier kunnen zijn om vertrouwen en privacy te combineren voor toepassingen zoals stemmen. - -6. Gedecentraliseerde identiteit maakt het voor het anti-Sybil-mechanisme mogelijk om te identificeren wanneer een individu zich voordoet als meerdere individuen om te gamen of om een systeem te spammen. - -## Use-cases voor gedecentraliseerde identiteit {#decentralized-identity-use-cases} - -Gedecentraliseerde identiteit heeft vele potentiële use-cases: - -### 1. Universele logins {#universal-dapp-logins} - -Gedecentraliseerde identiteit kan wachtwoordgebaseerde logins vervangen door [gedecentraliseerde authenticatie](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). Dienstverleners kunnen attesten uitgeven aan gebruikers, die kunnen worden opgeslagen in een Ethereum-portemonnee. Een voorbeeld hiervan is: een [NFT](/nft/) die de houder toegang geeft tot een online community. - -Een functie [Aanmelden met Ethereum](https://login.xyz/) zou dan de servers in staat stellen om het Ethereum-account van de gebruiker te bevestigen en het vereiste attest op te halen van zijn/haar accountadres. Dit betekent dat gebruikers toegang hebben tot platformen en websites zonder lange wachtwoorden te hoeven onthouden, en het verbetert de online ervaring voor gebruikers. - -### 2. KYC-verificatie {#kyc-authentication} - -Het gebruik van online diensten vereist dat personen attesten en andere gegevens moeten voorleggen, zoals een rijbewijs of een nationaal paspoort. Deze benadering is echter problematisch, omdat particuliere gebruikersinformatie in gevaar kan worden gebracht en dienstverleners de geldigheid van het attest niet kunnen verifiëren. - -Gedecentraliseerde identiteit staat bedrijven toe om de conventionele [Know-Your-Customer (KYC)](https://en.wikipedia.org/wiki/Know_your_customer)-processen over te slaan en gebruikersidentiteiten te verifiëren via Verifiable Credentials. Dit vermindert de kosten van identiteitsbeheer en voorkomt het gebruik van valse documenten. - -### 3. Stemmen en online gemeenschappen {#voting-and-online-communities} - -Online stemmen en sociale media zijn twee nieuwe toepassingen van gedecentraliseerde identiteit. Online verkiezingen zijn vatbaar voor manipulatie, vooral als kwaadwillige spelers valse identiteiten creëren om te kunnen stemmen. Mensen vragen om on-chain attesten te presenteren kan de integriteit van online stemprocessen verbeteren. - -Gedecentraliseerde identiteit kan helpen online gemeenschappen te creëren zonder valse accounts. Elke gebruiker zou bijvoorbeeld zijn/haar identiteit moeten verifiëren met behulp van een on-chain identiteitssysteem, zoals de Ethereum Name Service, waardoor de mogelijkheid van bots wordt verkleind. - -### 4. Anti-Sybil-bescherming {#sybil-protection} - -Sybil-aanvallen verwijzen naar individuele mensen die een systeem valselijk doen denken dat het om meerdere mensen gaat, om zo hun invloed te vergroten. [Subsidies toekennende applicaties](https://gitcoin.co/grants/) die gebruik maken van [kwadratisch stemmen](https://www.radicalxchange.org/concepts/plural-voting/) zijn kwetsbaar voor deze Sybil-aanvallen, omdat de waarde van een subsidie wordt verhoogd wanneer meer personen erop stemmen, wat gebruikers ertoe aanzet om hun bijdragen te verdelen over meerdere identiteiten. Gedecentraliseerde identiteiten helpen dit te voorkomen door de last voor elke deelnemer om te bewijzen dat hij of zij echt een mens is, te verhogen, vaak zonder dat het nodig is om specifieke privé-informatie te onthullen. - -## Gebruik gedecentraliseerde identiteit {#use-decentralized-identity} - -Er zijn veel ambitieuze projecten die Ethereum als basis voor gedecentraliseerde identiteitsoplossingen gebruiken: - -- **[Ethereum Name Service (ENS)](https://ens.domains/)** - _Een gedecentraliseerd benamingssysteem voor on-chain, machine-leesbare identificatiekenmerken, zoals Ethereum-portemonnee-adressen, content hashes en metadata._ -- **[SpruceID](https://www.spruceid.com/)** - _Een gedecentraliseerd identiteitsproject dat gebruikers in staat stelt om hun digitale identiteit te beheren met Ethereum-accounts en ENS-profielen, in plaats van te vertrouwen op diensten van derden._ -- **[Ethereum Attestation Service (EAS)](https://attest.sh/)** - _Een gedecentraliseerd grootboek/protocol voor het maken van on-chain of off-chain attestaties over wat dan ook._ -- **[Bewijs van Menselijkheid (PoH)](https://www.proofofhumanity.id)** - _Bewijs van Menselijkheid (of Proof of Humanity, PoH) is een sociaal identiteitsverificatiesysteem gebouwd op Ethereum._ -- **[BrightID](https://www.brightid.org/)** - _Een gedecentraliseerd, open-source sociaal identiteitsnetwerk dat probeert de identiteitsverificatie te hervormen door het creëren en analyseren van een sociale grafiek._ -- **[Proof-of-personhood-paspoort](https://proofofpersonhood.com/)** - _Een gedecentraliseerde digitale identiteitsaggregator._ - -## Verder lezen {#further-reading} - -### Artikels {#articles} - -- [Blockchain Use Cases: blockchain in digitale identiteit](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ -- [Wat is Ethereum ERC725? Zelf-soeverein identiteitsbeheer op de 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) — _Emmanuel Awosika_ - -### Video's {#videos} - -- [Gedecentraliseerde identiteit (Bonus Livestream Sessie)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) - _Een geweldige uitleg over gedecentraliseerde identiteit van Andreas Antonopolous_ -- [Aanmelden met Ethereum en gedecentraliseerde identiteit met Ceramic, IDX, React en 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) - _YouTube-tutorial over het opbouwen van een identiteitsbeheersysteem voor het creëren, lezen en bijwerken van gebruikersprofielen met behulp van Ethereum-portemonnees door Nader Dabit_ -- [BrightID - Gedecentraliseerde identiteit op Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _Bankless podcast over BrightID, een gedecentralisserde identiteitsoplossing voor Ethereum_ -- [The Off Chain Internet: Decentralized Identity & Verifiable Credentials](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — Presentatie op EthDenver 2022 door Evin McMullen - -### Gemeenschappen {#communities} - -- [ERC-725-alliantie op GitHub](https://github.com/erc725alliance) — _Voorstanders van de ERC725-standaard voor het beheer van identiteit op de Ethereum-blockchain_ -- [SpruceID Discord-server](https://discord.com/invite/Sf9tSFzrnt) — _Gemeenschap voor enthousiastelingen en ontwikkelaars die werken aan Aanmelden met Ethereum_ -- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Een gemeenschap van ontwikkelaars die bijdraagt aan het bouwen van een kader om gegevens te verifieren voor applicaties_ diff --git a/src/content/translations/nl/defi/index.md b/src/content/translations/nl/defi/index.md deleted file mode 100644 index ed2ce98188f..00000000000 --- a/src/content/translations/nl/defi/index.md +++ /dev/null @@ -1,352 +0,0 @@ ---- -title: Gedecentraliseerde financiën (DeFi) -description: Een overzicht van DeFi op Ethereum -lang: nl -template: use-cases -emoji: ":money_with_wings:" -image: ../../../../assets/use-cases/defi.png -alt: Een Eth-logo gemaakt van legostenen. -sidebarDepth: 2 -summaryPoint1: Een wereldwijd, open alternatief voor ons huidige financiële systeem. -summaryPoint2: Producten waarmee u kunt lenen, sparen, investeren, handelen en meer. -summaryPoint3: Gebaseerd op open-source-technologieën die iedereen kan gebruiken. ---- - -DeFi is een open en globaal financieel systeem gemaakt voor het internettijdperk. Het is een alternatief voor het huidige financiële systeem dat streng gecontrolleerd is en dat op een oude infrastructuur gebouwd is. Het geeft u volledige controlle en inzicht in uw geld. Het geeft u blootstelling aan de mondiale markten en alternatieven voor uw lokale valuta of bankopties. DeFi-producten stellen diensten open voor iedereen met een internetverbinding en zijn grotendeels het eigendom van en worden onderhouden door de gebruikers. Tot dusver zijn er al miljarden dollars aan crypto door DeFi-applicaties gestroomd en dit groeit nog elke dag. - -## Wat is DeFi? {#what-is-defi} - -DeFi is een collectieve term voor financiële producten en diensten die toegankelijk zijn voor iedereen die Ethereum kan gebruiken - iedereen met een internetverbinding. Met DeFi zijn de markten altijd open en is er geen gecentraliseerde autoriteit die betalingen kan blokkeren of de toegang van gebruikers kan weigeren. Diensten die voorheen traag waren en die het risico liepen op menselijke fouten, zijn automatisch en veiliger nu ze worden beheerd door middel van code die iedereen online kan bekijken. - -Er is een bloeiende cryptomarkt waar u kunt lenen, long/short kunt gaan, rente kunt verdienen, en meer. In crypto onderlegde Argentiniërs hebben DeFi gebruikt om te ontsnappen aan verlammende inflatie. Bedrijven zijn begonnen met het streamen van loon van hun werknemers in realtime. Sommige mensen zijn leningen ter waarde van miljoenen dollars aangegaan en hebben deze afbetaald, zonder dat daar enige persoonlijke identificatie voor nodig was. - - - -## Defi vs traditionele financiën {#defi-vs-tradfi} - -Een van de beste manieren om het potentieel van DeFi in te zien is het begrijpen van de problemen die vandaag de dag bestaan. - -- Er zijn mensen die geen toegang krijgen om een bankrekening te openen of gebruik te maken van andere financiële diensten. -- Het gebrek aan toegang tot financiële diensten kan mensen verhinderen om een baan te vinden. -- Financiële diensten kunnen u ervan weerhouden uitbetaald te worden. -- Verborgen kosten van financiële diensten hebben te maken met uw eigen persoonlijke data. -- Overheden en gecentraliseerde instellingen kunnen markten naar eigen wens doen sluiten. -- Handelstijden op de beurs zijn vaak beperkt tot de kantooruren van een bepaalde tijdszone. -- Als gevolg van interne menselijke processen kunnen geldoverdrachten dagen duren. -- Er is een premie voor financiële diensten, omdat intermediaire instellingen hun deel vereisen. - -### Een vergelijking {#defi-comparison} - -| DeFi | Traditionele financiën | -| ----------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| U heeft uw geld in bezit. | Uw geld wordt beheerd door bedrijven. | -| U controleert waar uw geld naartoe gaat en hoe het wordt uitgegeven. | Je moet erop vertrouwen dat bedrijven je geld niet verkeerd beheren, zoals het uitlenen aan risicovolle leners. | -| Geldoverboekingen vinden in enkele minuten plaats. | Betalingen kunnen dagen duren vanwege handmatige processen. | -| Transactieactiviteit is pseudoniem. | Financiële activiteit is nauw verbonden met uw identiteit. | -| Defi staat voor iedereen open. | U moet een aanvraag indienen om gebruik te maken van financiële diensten. | -| De markten zijn altijd open. | De markten sluiten omdat werknemers ook pauze's nodig hebben. | -| Het is gebaseerd op transparantie – iedereen kan de gegevens van een product bekijken en inspecteren hoe het systeem in elkaar zit. | Financiële instellingen zijn gesloten boeken: je kunt ze niet vragen om de geschiedenis van hun leningen, om een overzicht van hun beheerde activa, enzovoort. | - - - Verken DeFi apps - - -## Het begon allemaal met Bitcoin... {#bitcoin} - -Bitcoin was in vele opzichten de eerste DeFi-applicatie. Bitcoin laat u echt waarde bezitten en beheren en u kunt het overal ter wereld heen sturen. Het doet dit door een manier te bieden voor een groot aantal mensen die elkaar niet vertrouwen, om akkoord te gaan met een grootboekrekening zonder dat een vertrouwde tussenpersoon nodig is. Bitcoin is toegankelijk voor iedereen en niemand heeft de bevoegdheid om de regels te wijzigen. De regels van Bitcoin, zoals de schaarste en de openheid ervan, zijn in de technologie verwerkt. Het is niet zoals traditionele financiën waar regeringen geld kunnen bijprinten zodat jouw spaargeld devalueert, en waar bedrijven de markten zomaar kunnen sluiten. - -Ethereum bouwt hierop voort. Net als Bitcoin, kunnen de regels niet veranderen en heeft iedereen toegang. Maar het maakt dit digitale geld ook programmeerbaar met behulp van [slimme contracten](/glossary#smart-contract), zodat u veel meer kunt doen dan enkel het opslaan en verzenden van waarde. - - - -## Programmeerbaar geld {#programmable-money} - -Dit klinkt vreemd... "Waarom zou ik mijn geld willen programmeren"? Dit is echter meer dan een standaardkenmerk van tokens op Ethereum. Iedereen kan logica programmeren in betalingen. Zodat u de controle en veiligheid van Bitcoin kunt krijgen gemengd met de diensten die door financiële instellingen worden aangeboden. Dit laat u dingen doen met cryptocurrencies die u niet kunt doen met Bitcoin, zoals leningen geven en nemen, betalingen plannen, investeren in indexfondsen en veel meer. - - -
Verken onze suggesties voor DeFi-applicaties om uit te proberen als u nieuw bent bij Ethereum.
- - Verken DeFi-apps - -
- -## Wat kunt u doen met DeFi? {#defi-use-cases} - -Er is een gedecentraliseerd alternatief voor de meeste financiële diensten. Maar Ethereum creëert ook mogelijkheden om financiële producten te maken die volledig nieuw zijn. Dit is een steeds groter wordende lijst. - -- [Stuur geld over de hele wereld](#send-money) -- [Stream geld over de hele wereld](#stream-money) -- [Krijg toegang tot stabiele valuta](#stablecoins) -- [Leen geld met onderpand](#lending) -- [Leen geld zonder onderpand](#flash-loans) -- [Start met crypto sparen](#saving) -- [Handel in tokens](#swaps) -- [Maak uw portfolio groter](#investing) -- [Financier uw ideeën](#crowdfunding) -- [Koop verzekering](#insurance) -- [Beheer uw portfolio](#aggregators) - - - -### Stuur snel geld over de hele wereld {#send-money} - -Als blockchain is Ethereum ontworpen voor het op veilige en mondiale manier verzenden van transacties. Net als Bitcoin, maakt Ethereum het verzenden van geld over de hele wereld zo eenvoudig als het verzenden van een e-mail. Voer gewoon de [ENS-naam](/nft/#nft-domains) (zoals bob.eth) van uw ontvanger in of het accountadres van hun portemonnee, en uw betaling zal (doorgaans) direct in minuten naar hen gaan. Om betalingen te kunnen verzenden en/of ontvangen, heeft u een [portemonnee](/wallets/) nodig. - - - Zie betaling-dapps - - -#### Stream geld over de hele wereld... {#stream-money} - -U kunt ook geld over Ethereum streamen. Hiermee kunt u iemands salaris per seconde betalen, waardoor hij/zij toegang krijgt tot zijn/haar geld waar en wanneer hij/zij dat nodig heeft. Of iets huren per seconde, zoals een opslagplaats of een elektrische scooter. - -En als u niet [ETH](/eth/) wilt verzenden of streamen vanwege het feit dat de waarde kan veranderen, zijn er alternatieve valuta op Ethereum: stablecoins. - - - -### Krijg toegang tot stabiele valuta {#stablecoins} - -Volatiliteit van cryptocurrencies is een probleem voor veel financiële producten en algemene uitgaven. De DeFi-gemeenschap heeft dit opgelost met stalecoins. Hun waarde blijft gekoppeld aan een ander activum, meestal een populaire valuta zoals dollars. - -Munten als Dai of USDC hebben een waarde die binnen een paar cent van een dollar blijft. Dit maakt ze perfect voor verdienen of retail. Veel mensen in Latijns-Amerika hebben stablecoins gebruikt om hun spaargeld te beschermen in een tijd van grote onzekerheid met de door de overheid uitgegeven valuta. - - - Meer over stablecoins - - - - -### Lenen {#lending} - -Het lenen van geld van gedecentraliseerde aanbieders komt in twee hoofdvarianten. - -- Peer-to-peer, wat betekent dat een lener direct van een specifieke kredietgever zal lenen. -- Poolgebaseerd, waarbij kredietgevers fondsen (liquiditeit) aan een pool verstrekken waar leners van kunnen lenen. - - - Zie dapps voor lenen - - -Er zijn vele voordelen voor het gebruik van een gedecentraliseerd grootboek... - -#### Lenen met privacy {#borrowing-privacy} - -Vandaag gaat het bij het lenen en krediet verstrekken van geld allemaal om de personen die betrokken zijn. Banken moeten weten of u een lening kunt terugbetalen voordat u de lening krijgt. - -Gedecentraliseerde leningen werken zonder dat een van beide partijen zich hoeft te identificeren. In plaats daarvan moet de lener een onderpand stellen die de kredietverstrekker automatisch krijgt als de lening niet wordt terugbetaald. Sommige kredietverstrekkers accepteren zelfs NFT's als onderpand. NFT's zijn een akte voor een uniek goed, zoals een schilderij. [Meer over NFT's](/nft/) - -Dit stelt u in staat om geld te lenen zonder kredietcontroles of het geven van privé-gegevens. - -#### Toegang tot globale fondsen {#access-global-funds} - -Wanneer u een gedecentraliseerde kredietgever gebruikt, heeft u toegang tot fondsen die van over de hele wereld worden gestort, dus niet enkel de fondsen in de bewaring van uw gekozen bank of instelling. Dit maakt leningen toegankelijker en verbetert de rentevoet. - -#### Belastingefficiëntie {#tax-efficiencies} - -Lenen kan u toegang geven tot de fondsen die u nodig heeft zonder dat u ETH hoeft te verkopen (een belastbare gebeurtenis). In plaats daarvan kun je ETH gebruiken als onderpand voor een lening in stablecoins. Dit geeft u de cash-flow die u nodig heeft en laat u uw ETH behouden. Stablecoins zijn tokens die veel beter zijn voor wanneer u geld nodig heeft omdat ze niet fluctueren in waarde zoals ETH. [Meer over stablecoins](#stablecoins) - -#### Flash-leningen {#flash-loans} - -Flash-leningen zijn een experimentele vorm van gedecentraliseerde leningen, die u zonder onderpand laten lenen en waarbij u geen persoonlijke informatie hoeft te verstrekken. - -Ze zijn momenteel niet breed toegankelijk voor niet-technische mensen, maar ze laten zien wat er in de toekomst voor iedereen mogelijk is. - -Het is gebaseerd op het feit dat de lening in het kader van dezelfde transactie wordt aangegaan en terugbetaald. Als het niet kan worden terugbetaald, wordt de transactie teruggedraaid alsof er nooit iets is gebeurd. - -De fondsen die vaak worden gebruikt, worden gehouden in liquiditeitspools (grote pools van fondsen die worden gebruikt om te lenen). Als ze op een bepaald moment niet worden gebruikt, schept dit een kans voor iemand om dit geld te lenen. Deze persoon kan hier zijn zaken mee doen en de lening letterlijk terugbetalen op het moment dat de lening gedaan wordt. - -Dit betekent dat er veel logica in een op maat gemaakt transactie moet worden opgenomen. Een eenvoudig voorbeeld is iemand die een flash-lening gebruikt om veel van een activum te lenen tegen één prijs, zodat hij/zij dit kan verkopen op een andere exchange waar de prijs hoger is. - -Dus in één enkele transactie gebeurt het volgende: - -- U leent een X bedrag van $activum tegen $ 1,00 van exchange A -- U verkoopt X $activum op exchange B voor $ 1,10 -- U betaalt de lening terug aan exchange A -- U houdt de winst minus het transactietarief. - -Als het aanbod van exchange B plotseling afnam en de gebruiker niet genoeg kon kopen om de oorspronkelijke lening te dekken, zou de transactie gewoon mislukken. - -Om het bovenstaande voorbeeld in de traditionele financiële wereld te kunnen doen, zou u een enorme hoeveelheid geld nodig hebben. Deze strategieën voor het verdienen van geld zijn alleen toegankelijk voor mensen met bestaande rijkdom. Flash-leningen zijn een voorbeeld van een toekomst waarin het hebben van geld niet noodzakelijkerwijs een voorwaarde is voor het verdienen van geld. - -[Meer over flash-leningen](https://aave.com/flash-loans/) - - - -### Begin met het sparen van crypto {#saving} - -#### Uitlenen {#lending} - -U kunt rente verdienen op uw crypto door het uit te lenen en uw geld in realtime te laten groeien. Op dit moment liggen de rentetarieven veel hoger dan wat u waarschijnlijk bij uw lokale bank krijgt (als u geluk genoeg hebt om er toegang toe te hebben). Hier is een voorbeeld: - -- U leent uw 100 dai uit, een [stablecoin](/stablecoins/), voor een product als Aave. -- U ontvangt 100 Aave Dai (aDai), wat een token is dat uw uitgeleende Dai vertegenwoordigt. -- Uw aDai zal toenemen op basis van de rente en u zult uw saldo zien groeien in uw portemonnee. Afhankelijk van de APR, zal uw portemonneesaldo na een paar dagen of zelfs uren veranderen in iets als 100,1234! -- U kunt op elk gewenst moment een hoeveelheid normale Dai opnemen die gelijk is aan uw aDai-saldo. - - - Bekijk uitleen-dapps - - -#### Loterijen zonder verlies {#no-loss-lotteries} - -No-loss loterijen zoals PoolTogether zijn een leuke en innovatieve nieuwe manier om geld te besparen. - -- Je koopt 100 tickets met 100 Dai-tokens. -- Je ontvangt 100 plDai die je 100 tickets vertegenwoordigen. -- Als een van uw tickets als winnaar wordt gekozen, wordt uw plDai-saldo verhoogd met het bedrag van de prijzenpool. -- Als u niet wint, gaat uw 100 plDai over naar de loting van de volgende week. -- U kunt een hoeveelheid normale Dai opnemen die gelijk is aan uw plDai-saldo op elk moment. - -De prijzenpool wordt gegenereerd door alle rente die gegenereerd wordt door het lenen van ticketdeposito's, zoals in het bovenstaande leningvoorbeeld. - - - Probeer PoolTogether - - - - -### Exchange tokens {#swaps} - -Er zijn duizenden tokens op Ethereum. Gedecentraliseerde exchanges (DEX's) laten u verschillende tokens verhandelen wanneer u dat wilt. U geeft de controle over uw activa nooit op. Dit is net zoiets als het gebruik van een wisselkantoor bij een bezoek aan een ander land. Maar de DeFi-versie sluit nooit. De markten zijn 24/7, 365 dagen per jaar open en de technologie garandeert dat er altijd iemand is die een handel accepteert. - -Als u bijvoorbeeld de no-loss loterij PoolTogether wilt gebruiken (hierboven beschreven), heeft u een token nodig zoals Dai of USDC. Met deze DEX's kunt u uw ETH wisselen voor deze tokens en weer terug wanneer u klaar bent. - - - Bekijk token exchanges - - - - -### Geavanceerd handelen {#trading} - -Er zijn meer geavanceerde opties voor handelaren die van een beetje meer controle houden. Limietorders, perpetuals, margehandel en meer zijn allemaal mogelijk. Met gedecentraliseerd handelen krijgt u toegang tot wereldwijde liquiditeit, de markt sluit nooit af, en u heeft altijd de controle over uw geld. - -Wanneer u een gecentraliseerde exchange gebruikt, moet u uw geld storten vóór de transactie en erop vertrouwen dat de instelling goed voor het geld zal zorgen. Terwijl uw activa gestort worden, lopen ze risico omdat gecentraliseerde beurzen aantrekkelijke doelwitten zijn voor hackers. - - - Bekijk trading dapps - - - - -### Breid uw portfolio uit {#investing} - -Er zijn producten voor fondsbeheer op Ethereum die zullen proberen uw portefeuille te laten groeien op basis van een strategie naar eigen keuze. Dit is automatisch, open voor iedereen, en heeft geen menselijke manager nodig die een deel van uw winst afneemt. - -Een goed voorbeeld is het [DeFi Pulse Index-fonds (DPI)](https://defipulse.com/blog/defi-pulse-index/). Dit is een fonds dat automatisch in evenwicht blijft om ervoor te zorgen dat je portfolio altijd [de beste DeFi-tokens volgens marktkapitalisatie bevat](https://www.coingecko.com/en/defi). U hoeft nooit enige gegevens te beheren en u kunt zich uit het fonds terugtrekken wanneer u dat maar wilt. - - - Bekijk investering-dapps - - - - -### Financier uw ideeën {#crowdfunding} - -Ethereum is een ideaal platform voor crowdfunding: - -- Potentiële financierders kunnen overal vandaan komen - Ethereum en de bijbehorende tokens staan open voor iedereen, waar ook ter wereld. -- Het is transparant zodat fondsenwervers kunnen aantonen hoeveel geld er is bijeengebracht. U kunt zelfs achterhalen hoe het geld later wordt uitgegeven. -- Fundraisers kunnen automatische restituties instellen als er bijvoorbeeld een specifieke deadline en minimumbedrag is waar niet aan voldaan wordt. - - - Zie crowdfunding dapps - - -#### Kwadratische financiering {#quadratic-funding} - -Ethereum is open-source software en veel van het werk tot nu toe is gefinancierd door de gemeenschap. Dit heeft geleid tot de groei van een interessant nieuw fondsenwervingsmodel: kwadratische financiering. Dit heeft het potentieel om de toekomstige financiering van alle soorten collectieve goederen te verbeteren. - -Kwadratische financiering zorgt ervoor dat de projecten die het meeste worden gefinancierd, de projecten zijn met de meest unieke vraag. Met andere woorden, projecten die het leven van de meeste mensen zullen verbeteren. Zo werkt het: - -1. Er wordt een overeenkomende pool van geld gedoneerd. -2. Er begint een ronde van publieke financiering. -3. Mensen kunnen door geld te doneren een signaal afgeven dat ze een project willen. -4. Zodra de ronde voorbij is, wordt de overeenkomende pool onder alle projecten verdeeld. De projecten met de meest unieke vraag krijgen het hoogste bedrag uit de overeenkomende pool. - -Dit betekent dat Project A met zijn 100 donaties van 1 dollar uiteindelijk meer geld zou kunnen krijgen dan Project B met één donatie van 10, 00 dollar (afhankelijk van de grootte van de overeenkomende pool). - -[Meer over kwadratische financiering](https://wtfisqf.com) - - - -### Verzekering {#insurance} - -Gedecentraliseerde verzekeringen zijn bedoeld om verzekering goedkoper en sneller en transparanter te maken. Met meer automatisering is de dekking betaalbaarder en zijn de uitbetalingen veel sneller. De gegevens die gebruikt worden om uw claim te bepalen zijn volledig transparant. - -Ethereum-producten, zoals elke software, kunnen lijden onder bugs en exploits. Op dit moment zijn veel verzekeringsproducten op het netwerk dus gericht op de bescherming van hun gebruikers tegen geldverliezen. Er zijn echter projecten die dekking beginnen op te bouwen voor alles wat het leven ons aan moeilijkheden kan geven. Een goed voorbeeld hiervan is de dekking Etherisc voor gewassen die erop gericht is [kleine boeren in Kenia te beschermen tegen droogte en overstromingen](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Gedecentraliseerde verzekeringen kunnen boeren die vaak uit de traditionele verzekering worden geprijsd, goedkopere dekking aanbieden. - - - Zie verzekering-dapps - - - - -### Aggregators en portfoliobeheerders {#aggregators} - -Met alle drukte die u heeft, heeft u een manier nodig om al uw investeringen, leningen en transacties bij te houden. Er zijn een heleboel producten waarmee u al uw DeFi-activiteiten vanaf één plaats kunt coördineren. Dit is het mooie van de open architectuur van DeFi. Teams kunnen interfaces bouwen waar u uw saldo voor alle producten niet alleen kunt zien, u kunt hun functies ook nog eens gebruiken. U vindt dit misschien nuttig terwijl u meer kennis over Defi opbouwt. - - - Bekijk portfolio-dapps - - - - -## Hoe werkt DeFi? {#how-defi-works} - -DeFi gebruikt cryptocurrencies en slimme contracten om diensten te bieden waarbij geen tussenpersonen nodig zijn. In de financiële wereld van vandaag de dag staan financiële instellingen garant voor transacties. Dit geeft deze instellingen een enorme macht, omdat uw geld via hen gaat. Plus miljarden mensen over de hele wereld hebben geen toegang tot een bankrekening. - -In Defi vervangt een slim contract de financiële instelling in de transactie. Een slim contract is een type Ethereum-account dat fondsen kan bewaren en deze op basis van bepaalde voorwaarden kan versturen/terugbetalen. Niemand kan dat slimme contract veranderen - het zal altijd worden uitgevoerd zoals geprogrammeerd. - -Een contract dat ontworpen is om elke vrijdag een toelage of zakgeld uit te delen kan worden geprogrammeerd om geld over te maken van account A naar account B. En dat zal alleen gebeuren zolang de vereiste bedragen op account A beschikbaar zijn. Niemand kan het contract wijzigen en account C als ontvanger toevoegen om geld te stelen. - -Contracten zijn ook openbaar zodat iedereen ze kan inzien en controleren. Dit betekent dat slechte contracten vaak vrij snel onder gemeenschapstoezicht zullen komen te staan. - -Dit betekent dat er momenteel een noodzaak bestaat om de meer technische leden van de Ethereum-gemeenschap die code kunnen lezen, te vertrouwen. De open-source gebaseerde gemeenschap helpt ontwikkelaars in toom te houden, maar deze noodzaak zal afnemen in de loop van de tijd, aangezien slimme contracten gemakkelijker te lezen worden en er andere manieren worden ontwikkeld om de betrouwbaarheid van code te bewijzen. - -## Ethereum en DeFi {#ethereum-and-defi} - -Ethereum is de perfecte basis voor DeFi om een aantal redenen: - -- Niemand bezit Ethereum of de slimme contracten die erop bestaan – dit geeft iedereen de mogelijkheid om Defi te gebruiken. Dit betekent ook dat niemand de regels voor u kan wijzigen. -- DeFi-producten spreken allemaal dezelfde taal achter de schermen: Ethereum. Dit betekent dat veel van de producten naadloos kunnen samenwerken. U kunt tokens uitlenen op één platform en het rentedragende token in een andere markt uitwisselen op een heel andere applicatie. Dit lijkt op het in contanten opnemen van loyaliteitspunten bij uw bank. -- Tokens en cryptocurrency zijn ingebouwd in Ethereum, een gedeeld grootboek – het bijhouden van transacties is wat Ethereum uiteindelijk doet. -- Ethereum staat volledige financiële vrijheid toe – de meeste producten zullen nooit uw geld in bewaring nemen, zodat u de controle houdt. - -U kunt DeFi zien als verschillende lagen: - -1. De blockchain – Ethereum bevat de transactiegeschiedenis en staat van accounts. -2. De activa – [ETH](/eth/) en de andere tokens (valuta). -3. De protocollen – [slimme contracten](/glossary/#smart-contract) die de functionaliteit leveren, bijvoorbeeld een service die het mogelijk maakt om activa gedecentraliseerd uit te lenen. -4. [De applicaties](/dapps/) – de producten die we gebruiken om de protocollen te beheren en te raadplegen. - -## DeFi opbouwen {#build-defi} - -DeFi is een open-source beweging. De DeFi-protocollen en -applicaties staan allemaal open voor u om te inspecteren, te forken en te vernieuwen. Vanwege deze gelaagde stack (ze delen allemaal dezelfde basis-blockchain en activa), kunnen protocollen worden gemengd en gematched om unieke combo mogelijkheden te ontgrendelen. - - - Meer over het bouwen van dapps - - -## Verder lezen {#futher-reading} - -### DeFi-data {#defi-data} - -- [DeFi Prime](https://defiprime.com/) -- [DeFi Llama](https://defillama.com/) -- [DeFi Rate](https://defirate.com/) - -### DeFi-artikelen {#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_ - -### Video's {#videos} - -- [Finematics - voorlichting over gedecentraliseerde financiën](https://finematics.com/) - _Video's over Defi_ -- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _DeFi basics: Everything you need to know to get started in this occasionally baffling space._ -- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _Wat is DeFi?_ - -### Gemeenschappen {#communities} - -- [DeFi Llama Discord server](https://discord.gg/buPFYXzDDd) -- [DeFi Pulse Discord server](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/nl/desci/index.md b/src/content/translations/nl/desci/index.md deleted file mode 100644 index 1190d171329..00000000000 --- a/src/content/translations/nl/desci/index.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: Gedecentraliseerde wetenschap (DeSci) -description: Een overzicht van gedecentraliseerde wetenschap op Ethereum -lang: nl -template: use-cases -emoji: ":microscope:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Een wereldwijd, open alternatief voor het huidige wetenschappelijke systeem. -summaryPoint2: Technologie die wetenschappers in staat stelt om financiering te verwerven, experimenten uit te voeren, gegevens te delen, inzichten te verdelen en meer. -summaryPoint3: Bouwt op de open wetenschap-beweging. ---- - -## Wat is gedecentraliseerde wetenschap (DeSci)? {#what-is-desci} - -Gedecentraliseerde wetenschap (DeSci) is een beweging die als doel heeft om op eerlijke en rechtvaardige manier publieke infrastructuur op te bouwen voor financiering, creatie, beoordeling, erkenning, opslag en verspreiding van wetenschappelijke kennis door gebruik te maken van de Web3-stack. - -DeSci is gericht op het creëren van een ecosysteem waar wetenschappers worden aangemoedigd om openlijk hun onderzoek te delen en erkenning te ontvangen voor hun werk, terwijl iedereen makkelijk toegang kan krijgen tot en bijdragen aan het onderzoek. DeSci is bedoeld om ervoor te zorgen dat wetenschappelijke kennis voor iedereen toegankelijk moet zijn en dat het proces van wetenschappelijk onderzoek transparant moet zijn. DeSci creëert een meer gedecentraliseerd en verspreid wetenschappelijk onderzoeksmodel, waardoor het beter bestand is tegen censuur en controle door centrale autoriteiten. DeSci hoopt een omgeving te creëren waarin nieuwe en onconventionele ideeën tot bloei kunnen komen door de toegang tot financiering, wetenschappelijke hulpmiddelen en communicatiekanalen te decentraliseren. - -Gedecentraliseerde wetenschap voorziet in nieuwe soorten financieringsbronnen (van [DAOs](/dao/), [kwadratische donaties](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) tot crowdfunding en meer), toegankelijkere toegangsgegevens en methoden, en biedt stimulansen voor herproduceerbaarheid. - -### Juan Benet - De DeSci-beweging - - - -## Hoe DeSci de wetenschap verbetert {#desci-improves-science} - -Een onvolledige lijst van belangrijke problemen in de wetenschap en hoe gedecentraliseerde wetenschap kan helpen bij het aanpakken van deze kwesties - -| **Gedecentraliseerde wetenschap** | **Traditionele wetenschap** | -| ----------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | -| De verdeling van fondsen wordt bepaald door het publiek via het gebruik van mechanismen zoals kwadratische donaties of DAO's. | Kleine, gesloten, gecentraliseerde groepen controleren de verdeling van fondsen. | -| Je werkt samen met collega's van over de hele wereld in dynamische teams. | Financieringsorganisaties en instituten beperken je samenwerkingen. | -| Financieringsbesluiten worden online en op transparante manier genomen. Nieuwe financieringsmechanismen worden onderzocht. | Financieringsbesluiten gaan gepaard met een lange wachttijd en beperkte transparantie. Er bestaan maar weinig financieringsmechanismen. | -| Het delen van laboratoriumdiensten wordt gemakkelijker en transparanter gemaakt met behulp van Web3-primitieven. | Het delen van laboratoriumbronnen is vaak traag en ondoorzichtig. | -| Nieuwe publicatiemodellen kunnen ontwikkeld worden die gebruik maken van Web3-primitieven voor vertrouwen, transparantie en universele toegang. | Je publiceert via gevestigde routes die vaak erkend worden als inefficiënt, bevooroordeeld en uitbuitend. | -| Je kunt tokens en reputatie verdienen voor controle van het werk van collega's. | Je collegiale toetsingswerk is onbetaald, in het voordeel van winstmakende uitgevers. | -| Je bezit het intellectuele eigendom (IP) dat je genereert en verspreidt het volgens transparante voorwaarden. | Je thuisinstituut is eigenaar van het IP-adres dat je genereert. Toegang tot het IP is niet transparant. | -| Deling van al het onderzoek, met inbegrip van de gegevens uit mislukte inspanningen, door alle stappen in de keten te zetten. | Publicatiebias betekent dat onderzoekers meer de neiging hebben om experimenten te delen die succesvolle resultaten hebben opgeleverd. | - -## Ethereum en DeSci {#ethereum-and-desci} - -Een gedecentraliseerd wetenschappelijk systeem vereist robuuste beveiliging, minimale monetaire en transactiekosten en een breed ecosysteem voor aanvraagontwikkeling. Ethereum biedt alles aan wat nodig is om een gedecentraliseerde wetenschappelijke stack te bouwen. - -## DeSci-toepassingsscenario's {#use-cases} - -DeSci bouwt de wetenschappelijke toolset voor het onboarden van Web2-academica naar de digitale wereld. Hieronder staat een lijst van toepassingen die Web3 kan bieden aan de wetenschappelijke gemeenschap. - -### Publicatie {#publishing} - -Publicatie van wetenschap is befaamd problematisch omdat het wordt beheerd door uitgeverijen die afhankelijk zijn van onbetaald werk van wetenschappers, beoordelaars en redacteuren om de documenten te genereren, maar daarvoor vervolgens buitensporige publicatiekosten berekenen. Het publiek, dat meestal indirect voor het werk en de publicatiekosten heeft betaald door middel van belastingen, heeft vaak geen toegang tot datzelfde werk zonder de uitgever opnieuw te betalen. De totale kosten voor het publiceren van individuele wetenschappelijke documenten zijn vaak vijfcijferig ($ USD), wat het hele concept van wetenschappelijke kennis als [publiek goed](https://www.econlib.org/library/Enc/PublicGoods.html) ondermijnt, terwijl er door een kleine groep uitgevers enorme winsten gemaakt worden. - -Gratis en vrij toegankelijke platformen bestaan in de vorm van proefdrukservers, [zoals ArXiv](https://arxiv.org/). Deze platformen hebben echter geen kwaliteitscontrole, [anti-sybil mechanismen](https://csrc.nist.gov/glossary/term/sybil_attack), en volgen in het algemeen geen maatstaven op artikelniveau, wat betekent dat ze meestal alleen worden gebruikt om werk te publiceren voordat ze worden ingediend bij een traditionele uitgever. SciHub maakt gepubliceerde documenten ook gratis toegankelijk, maar niet legaal, en alleen nadat de uitgevers hun betaling al hebben gekregen en het werk hebben beschermd via strenge auteursrechtenwetgeving. Hierdoor resteert een belangrijke kloof voor toegankelijke wetenschappelijke documenten en gegevens met een geïntegreerd legitimatiemechanisme en stimulansenmodel. De hulpmiddelen voor het bouwen van een dergelijk systeem bestaan in Web3. - -### Reproduceerbaarheid en herhaalbaarheid {#reproducibility-and-replicability} - -Reproduceerbaarheid en herhaalbaarheid vormen de basis voor kwalitatieve wetenschappelijke ontdekkingen. - -- Reproduceerbare resultaten kunnen meerdere keren achter elkaar herhaald worden door hetzelfde team met gebruik van dezelfde methodiek. -- Herhaalbare resultaten kunnen behaald worden door verschillende groepen met gebruik van dezelfde experimentele opstelling. - -Nieuwe op Web3 gebaseerde tools kunnen ervoor zorgen dat reproduceerbaarheid en herhaalbaarheid de basis vormen van ontdekkingen. We kunnen hoogwaardige wetenschap verweven in de technologische structuur van de academische wereld. Web3 biedt de mogelijkheid om attesten af te geven voor elke analysecomponent: de onverwerkte gegevens, de berekeningskracht en het toepassingsresultaat. Het mooie van consensussystemen is, dat wanneer er een vertrouwd netwerk gemaakt wordt voor het onderhouden van deze componenten, elke deelnemer van dit netwerk verantwoordelijk gehouden kan worden voor het reproduceren van de berekening en het valideren van elk resultaat. - -### Financiering {#funding} - -Het huidige standaard model voor het financieren van wetenschap is dat personen of groepen van wetenschappers schriftelijke aanvragen indienen bij een financieringsinstantie. Een kleine groep van vertrouwde personen rangschikken de aanvragen en interviewen de kandidaten voordat er financiering toegewezen word aan een klein deel van de aanvragers. Afgezien nog van de creatie van knelpunten die leiden tot wel jaren van wachttijd tussen het moment van aanvraag en ontvangst van een subsidie, staat dit model bekend om de hoge kwetsbaarheid in termen van bevooroordeling, zelfinteresse en de politieke inslag van het evaluatiepanel. - -Onderzoek heeft uitgewezen dat evaluatiepanels voor subsidies hun taak van selectie van kwaliteitsvoorstellen slecht uitvoeren, omdat diezelfde voorstellen, voorgelegd aan verschillende panels, erg uiteenlopende uitkomsten hebben. Aangezien financiering steeds minder vaak voorkomt, wordt dit geconcentreerd in een kleinere groep van meer ervaren onderzoekers met in intellectueel opzicht conservatievere projecten. Het effect hiervan is het ontstaan van een extreem competitief financieringslandschap, met als gevolg het verankeren van perverse stimulansen en het verstikken van innovatie. - -Web3 heeft het potentieel dit gebroken financieringsmodel te doorbreken via experimentatie met verschillende stimulansenmodellen, grotendeels ontwikkeld door DAO's en Web3. [Retroactieve financiering van publieke goederen](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), [kwadratische financiering](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), [DAO bestuur](https://www.antler.co/blog/daos-and-web3-governance) en [getokeniseerde stimulansstructuren](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) zijn enkele van de Web3-tools die de wetenschappelijke financiering zouden kunnen revolutioniseren. - -### IP-eigendom en -ontwikkeling {#ip-ownership} - -Intellectueel eigendom (IP) is een groot probleem in traditionele wetenschap: van vastzitten in universiteiten of ongebruikt blijven in biotechs, tot het feit dat het heel moeilijk is om het de juiste waarde te geven. Eigendom van digitale activa (zoals wetenschappelijke gegevens of artikelen) is echter iets wat Web3 bijzonder goed doet met het gebruik van [niet-fungibele tokens (NFT)](/nft/). - -Net zoals NFT's de inkomsten van toekomstige transacties terug kunnen doorgeven aan de originele maker, kun je een transparante waardetoekenningsketen vaststellen voor het belonen van onderzoekers, bestuursorganen (zoals DAOs) of zelfs de personen wiens data verzameld worden. - -[IP-NFT's](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) kunnen ook dienst doen als de sleutel voor een gedecentraliseerde databank van de onderzoeksexperimenten die worden ondernomen, en aansluiten bij NFT en [DeFi](/defi/) financialisering (van fractionalisatie tot kredietpools en waardebepaling). Het maakt het ook mogelijk voor on-chain entiteiten zoals DAO's, bijvoorbeeld [VitaDAO](https://www.vitadao.com/), om onderzoek direct on-chain uit te voeren. De komst van niet-overdraagbare ["soulbound" tokens](https://vitalik.ca/general/2022/01/26/soulbound.html) speelt mogelijk ook een belangrijke rol in DeSci door personen de kans te geven hun ervaringen en de aan hun Ethereum-adres gekoppelde toegangsgegevens te bewijzen. - -### Gegevensopslag, toegang en architectuur {#data-storage} - -Wetenschappelijke gegevens kunnen veel toegankelijker worden gemaakt met het gebruik van Web3-patronen, en gedistribueerde gegevensopslag zorgt ervoor dat onderzoek catastrofale gebeurtenissen kan overleven. - -Het uitgangspunt moet een systeem zijn dat toegankelijk is voor eender welke gedecentraliseerde identiteit die de correcte verifieerbare toegangsgegevens heeft. Hiermee kunnen gevoelige gegevens op veilige manier gerepliceerd worden door betrouwbare partijen, wat redundantie en censuurbestendigheid, reproductie van resultaten, en zelfs de capaciteit voor meerdere partijen om samen te werken en nieuwe data toe te voegen aan de dataset mogelijk maakt. Vertrouwelijke berekeningsmethoden zoals [compute-to-data](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol) bieden alternatieve toegangsmechismen voor het repliceren van onbewerkte data, en creëren zo Trusted Research Environments voor de meest gevoelige data. Trusted Research Environments zijn [geciteerd door de NHS](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) als een toekomstgerichte oplossing voor gegevensprivacy en samenwerking door de creatie van een ecosysteem waarbij onderzoekers veilig met data kunnen werken op locatie met behulp van gestandaardiseerde omgevingen voor het delen van code en praktijken. - -Flexibele Web3-dataoplossingen ondersteunen de hierboven vermelde scenario's en vormen de basis voor daadwerkelijk Open Wetenschap, waarbij wetenschappers publieke goederen kunnen creëren zonder toegangsrechten of -kosten. Openbare Web3-dataoplossingen zoals IPFS, Arweave en Filecoin zijn geoptimaliseerd voor decentralisatie. dClimate biedt bijvoorbeeld universele toegang tot klimaat- en weergegevens, inclusief van weerstations en voorspellende klimaatmodellen. - -## Doe mee {#get-involved} - -Verken projecten en word lid van de DeSci-gemeenschap. - -- [DeSci.Global: kalender met wereldwijde evenementen en ontmoetingen](https://desci.global) -- [Blockchain voor Science Telegram](https://t.me/BlockchainForScience) -- [Molecule: financier en krijg financiering voor je onderzoeksprojecten](https://discover.molecule.to/) -- [VitaDAO: krijg financiering via gesponsorde onderzoeksovereenkomsten voor onderzoek naar lange levensduur](https://www.vitadao.com/) -- [ResearchHub: publiceer een wetenschappelijk resultaat en neem deel aan een gesprek met collega's](https://www.researchhub.com/) -- [LabDAO: vouw een eiwit in-silico](https://alphafodl.vercel.app/) -- [dClimate API: vraag klimaatgegevens op verzameld door een gedecentraliseerde gemeenschap](https://api.dclimate.net/) -- [DeSci Foundation: bouwer van tools voor het publiceren van DeSci](https://descifoundation.org/) -- [DeSci.World: one-stop shop voor gebruikers om te kijken naar en deel te nemen aan gedecentraliseerde wetenschap](https://desci.world) -- [Fleming Protocol: open-source data-economie die collaboratieve biomedische ontdekking stimuleert](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [OceanDAO: door DAO beheerde financiering voor datagerelateerde wetenschap](https://oceanprotocol.com/dao) -- [Opscientia: open gedecentraliseerde wetenschappelijke workflows](https://opsci.io/research/) -- [LabDAO: vouw een eiwit in-silico](https://alphafodl.vercel.app/) -- [Bio.xyz: krijg financiering voor jouw biotech-DAO of desci-project](https://www.molecule.to/) -- [ResearchHub: publiceer een wetenschappelijk resultaat en neem deel aan een gesprek met collega's](https://www.researchhub.com/) -- [VitaDAO: krijg financiering via gesponsorde onderzoeksovereenkomsten voor onderzoek naar lange levensduur](https://www.vitadao.com/) -- [Fleming Protocol: open-source data-economie die collaboratieve biomedische ontdekking stimuleert](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [Active Inference Lab](https://www.activeinference.org/) -- [CureDAO: precisiegezondheidsplatform in handen van de gemeenschap](https://docs.curedao.org/) -- [IdeaMarkets: maakt gedecentraliseerde wetenschappelijke geloofwaardigheid mogelijk](https://ideamarket.io/) -- [DeSci Labs](https://www.desci.com/) - -We verwelkomen suggesties voor nieuwe projecten om op de lijst te zetten - bekijk ons [lijstopnamebeleid](/contributing/adding-desci-projects/) om te beginnen! - -## Lees verder {#further-reading} - -- [DeSci Wiki van Jocelynn Pearl en Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) -- ['A guide to decentralized biotech' van Jocelynn Pearl voor a16z Future](https://future.a16z.com/a-guide-to-decentralized-biotech/) -- [Het belang van DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) -- [Handleiding voor DeSci](https://future.com/what-is-decentralized-science-aka-desci/) -- [Gedecentraliseerde wetenschapsbronnen](https://www.vincentweisser.com/decentralized-science) -- [Molecule’s Biopharma IP-NFTs - A Technical Description](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) -- ['Building Trustless Systems of Science' van Jon Starr](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) -- [The Emergence of Biotech DAOs](https://molecule.to/blog/the-emergence-of-biotech-daos) -- [Paul Kohlhaas - DeSci: The Future of Decentralized Science (podcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) -- [An Active Inference Ontology for Decentralized Science: from Situated Sensemaking to the Epistemic Commons](https://zenodo.org/record/6320575) -- ['DeSci: The Future of Research' van Samuel Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) -- ['Science Funding (Epilogue: DeSci and new crypto primitives)' van Nadia](https://nadia.xyz/science-funding) -- [Decentralisation is Disrupting Drug Development](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) - -### Video's {#videos} - -- [Wat is gedecentraliseerde wetenschap?](https://www.youtube.com/watch?v=-DeMklVWNdA) -- [Gesprek tussen Vitalik Buterin en wetenschapper Aubrey de Gray over het snijvlak van langlevenonderzoek en crypto](https://www.youtube.com/watch?v=x9TSJK1widA) -- [Wetenschappelijke publicaties zijn stukgelopen. Kan Web3 dit herstellen?](https://www.youtube.com/watch?v=WkvzYgCvWj8) -- [Juan Benet - DeSci, Independent Labs, & Large Scale Data Science](https://www.youtube.com/watch?v=zkXM9H90g_E) -- [Sebastian Brunemeier - How DeSci Can Transform Biomedical Research & Venture Capital](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/nl/nft/index.md b/src/content/translations/nl/nft/index.md deleted file mode 100644 index ee153f39c67..00000000000 --- a/src/content/translations/nl/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Niet-vervangbare tokens (NFT's) -description: Een overzicht van NFT's op Ethereum -lang: nl -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: Een Eth-logo dat via een hologram wordt weergegeven. -summaryPoint1: Een manier om iets unieks te vertegenwoordigen als een op Ethereum gebaseerd activum. -summaryPoint2: NFT's geven meer macht aan contentmakers dan ooit tevoren. -summaryPoint3: Mogelijk gemaakt door slimme contracten op de Ethereum-blockchain. ---- - -## What are NFTs? {#what-are-nfts} - -NFT's zijn tokens die elk uniek zijn. Elke NFT heeft verschillende eigenschappen (niet-fungibel) en is bewijsbaar schaars. Dit is anders dan tokens zoals bij ERC-20's, waarbij elk token in een set identiek is en dezelfde eigenschappen heeft ('fungibel'). Het maakt je niet uit welk specifiek dollarbiljet je in je portemonnee hebt, want ze zijn allemaal identiek en evenveel waard. Het maakt je echter _wel_ uit welke specifieke NFT je bezit, omdat ze allemaal individuele eigenschappen hebben die ze onderscheiden van andere ('niet-fungibel'). - -De uniciteit van elke NFT maakt tokenisering van zaken zoals kunst, verzamelobjecten, of zelfs vastgoed mogelijk, waarbij één unieke NFT een specifiek uniek item in de echte wereld of een specifiek uniek digitaal item vertegenwoordigt. Het eigendom van een asset wordt beveiligd door de Ethereum-blockchain – niemand kan het eigendomsverleden ervan aanpassen of een nieuw NFT in het leven roepen via kopiëren/plakken. - - - -## Het internet van activa {#internet-of-assets} - -NFT's en Ethereum lossen een aantal van de problemen op die op dit moment op het internet voorkomen. Naarmate alles digitaler wordt, is er een noodzaak om de eigenschappen van fysieke voorwerpen zoals schaarste, uniekheid en bewijs van eigendom te herhalen. op een manier die niet wordt gecontroleerd door een centrale organisatie. Bijvoorbeeld, met NFT's kun je een mp3-muzieknummer bezitten die niet eigen is aan de specifieke muziek-app van een bepaald bedrijf, of je kunt in het bezit zijn van een social media handle die je kunt verkopen of inwisselen, maar die niet willekeurig van je kan worden afgenomen door de provider van het platform. - -Dit is hoe het internet van NFT's eruitziet in vergelijking met het internet dat de meesten van ons tegenwoordig gebruiken... - -### Een vergelijking {#nft-comparison} - -| Het NFT-internet | Het internet vandaag | -| ----------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Je bezit je eigen assets! Enkel jij kunt ze verkopen of inwisselen. | Je huurt een asset van een bepaalde organisatie. | -| NFT's zijn digitaal uniek, geen twee NFT's zijn hetzelfde. | Een kopie van een entiteit kan doorgaans niet onderscheiden worden van het origineel. | -| Eigendom van een NFT is geregistreerd op de blockchain en kan door iedereen geverifieerd worden. | Eigendomsgegevens van digitale items worden opgeslagen op servers die worden beheerd door instellingen – die meestal gesloten zijn voor het publiek en die je dus maar moet vertrouwen. | -| NFT's zijn slimme contracten op Ethereum. Dit betekent dat ze eenvoudig gebruikt kunnen worden in andere slimme contracten en apps op Ethereum! | Bedrijven met digitale items hebben doorgaans hun eigen "walled garden"-infrastructuur nodig. | -| Content-makers kunnen hun werk overal verkopen en hebben toegang tot een wereldwijde markt. | Makers zijn afhankelijk van de infrastructuur en distributie van de platforms die ze gebruiken. Hiervoor zijn vaak voorwaarden en geografische beperkingen van kracht. | -| Makers van NFT's kunnen eigendomsrechten over hun eigen werk behouden, en royalties rechtstreeks in het NFT-contract programmeren. | Platforms, zoals muziekstreamingservices, behouden het grootste deel van de winst uit de verkoop. | - -## Hoe werken NFT's? {#how-nfts-work} - -Zoals alle tokens op Ethereum, worden NFT's verstrekt via een slim contract. Het slimme contract voldoet aan één of meerdere NFT-standaarden (doorgaans ERC-721 of ERC-1155) die bepalen welke functionaliteiten het contract heeft. Het contract kan NFT's creëren ('minten') en ze toewijzen aan een specifieke eigenaar. Eigendom is vastgelegd in het contract via het koppelen van een NFT aan een specifiek adres. De NFT heeft een ID en is doorgaans geassocieerd met metadata die dit specifieke token uniek maken. - -Wanneer iemand een NFT creëert of 'mint', voert hij/zij in werkelijkheid een functie uit in het slimme contract dat een specifiek NFT toewijst aan zijn/haar adres. Deze informatie is opgeslagen in het geheugen van het contract, dat deel uitmaakt van de blockchain. De maker van het contract kan extra logica in het contract schrijven, zoals bijvoorbeeld het limiteren van het totale aanbod of het definiëren van een royalty dat wordt betaald aan de maker elke keer dat het token wordt overgedragen. - -## Waar worden NFT's voor gebruikt? {#nft-use-cases} - -NFT's worden voor veel dingen gebruikt, waaronder: - -- aantonen dat je een evenement hebt bijgewoond -- certificeren dat je een cursus hebt afgerond -- bezitten van items voor games -- digitale kunst -- het tokeniseren van echte activa -- bewijzen van je online identiteit -- blokkeren van toegang tot inhoud -- ticketverkoop -- gedecentraliseerde (internet)domeinnamen -- onderpand in DeFi - -Misschien ben je een artiest die zijn werk wil delen via NFT's, zonder de controle te verliezen en inkomsten op te offeren aan tussenpersonen. Je kunt een nieuw contract aanmaken en het aantal NFT's, hun eigenschappen en een koppeling naar een uniek kunstwerk specifiëren. Als artiest kun je de royalty's waar je recht op hebt programmeren in het slimme contract (bijv. 5% van de verkoopprijs naar het contract van de eigenaar overmaken elke keer dat een NFT wordt overgedragen). Je kunt ook altijd bewijzen dat je de NFT's hebt gemaakt, want je bent in het bezit van de portemonnee via welke het contract is geïmplementeerd. Je kopers kunnen eenvoudig bewijzen dat ze een authentieke NFT uit jouw collectie bezitten, omdat het adres van hun portemonnee geassocieerd is met een token in jouw slimme contract. Ze kunnen het gebruiken in het hele Ethereum-ecosysteem en vertrouwen hebben in de authenticiteit ervan. - -Of neem bijvoorbeeld een kaartje voor een sportevenement. Net zoals een organisator van een evenement kan kiezen hoeveel tickets hij wil verkopen, kan de maker van een NFT beslissen hoeveel replica's er bestaan. Soms gaat het om exacte replica's, zoals 5000 algemene toelatingskaartjes. Soms worden er replica's gemaakt die zeer vergelijkbaar zijn, maar elk lichtjes verschillend van elkaar, zoals een ticket met een toegewezen zitplaats. Deze kunnen peer-to-peer worden gekocht en verkocht zonder ticketbeheerders te betalen, en de koper kan altijd de authenticiteit van het ticket garanderen door het controleren van het contractadres. - -Op ethereum.org worden NFT's gebruikt om te laten zien dat mensen hebben bijgedragen aan ons Github-archief of hebben deelgenomen aan gesprekken, en we hebben zelfs onze eigen NFT-domeinnaam. Als je een bijdrage levert aan ethereum.org, kun je een POAP-NFT claimen. Sommige crypto-bijeenkomsten hebben POAP's gebruikt als tickets. [Meer over bijdragen](/contributing/#poap). - -![ethereum.org POAP](./poap.png) - -Deze website heeft een alternatieve domeinnaam, mogelijk gemaakt door NFT's, **ethereum.eth**. Ons `.org`-adres wordt centraal beheerd door een aanbieder van domeinnaamsystemen (DNS), terwijl ethereum`.eth` is geregistreerd op Ethereum via de Ethereum Name Service (ENS). En het is eigendom van en wordt beheerd door ons. [Bekijk ons ENS-record](https://app.ens.domains/name/ethereum.eth) - -[Meer over ENS](https://app.ens.domains) - - - -### NFT-beveiliging {#nft-security} - -De veiligheid van Ethereum komt van proof-of-stake. Het systeem is ontworpen om kwaadaardige acties economisch te ontmoedigen, waardoor Ethereum manipulatiebestendig is. Dit is wat NFT's mogelijk maakt. Zodra het blok met jouw NFT-transactie wordt afgerond, zou het een aanvaller miljoenen ETH kosten om het te veranderen. Iedereen die Ethereum-software gebruikt, zou onmiddellijk in staat zijn om oneerlijke manipulatie met een NFT te detecteren, en de slechte speler wordt dan economisch gestraft en verwijderd. - -Beveiligingskwesties met betrekking tot NFT's hebben meestal te maken met phishing-scams, kwetsbaarheden van slimme contracten of gebruikersfouten (zoals het per ongeluk blootgeven van privésleutels), waardoor goede portemonneebeveiliging van cruciaal belang is voor NFT-eigenaren. - - - Meer over beveiliging - - -## Verder lezen {#further-reading} - -- [A beginner's guide to NFTs](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, januari 2020_ -- [EtherscanNFT tracker](https://etherscan.io/nft-top-contracts) -- [ERC-721-tokenstandaard](/developers/docs/standards/tokens/erc-721/) -- [ERC-1155-tokenstandaard](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/nl/refi/index.md b/src/content/translations/nl/refi/index.md deleted file mode 100644 index 58cda2ecd70..00000000000 --- a/src/content/translations/nl/refi/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: Regeneratieve Financiën (ReFi) -description: Een overzicht van ReFi en zijn huidige toepassingen. -lang: nl -template: use-cases -emoji: ":recycle:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Een alternatief economisch systeem gebouwd op regeneratieve principes -summaryPoint2: Een poging om Ethereum te benutten voor het oplossen van wereldwijde coördinatiecrisissen zoals de klimaatverandering -summaryPoint3: Een middel om activa met ecologisch voordeel, zoals geverifieerde koolstofkredieten, drastisch op te schalen ---- - -## Wat is ReFi? {#what-is-refi} - -**Regeneratieve financiën (ReFi)** is een set hulpmiddelen en ideeën gebouwd bovenop blockchains, met als doel het creëren van economieën die regeneratief zijn in plaats van extractief of exploitatief. Op termijn putten extractieve systemen de beschikbare bronnen uit en storten ze in elkaar; zonder regeneratieve mechanismen ontbreekt het hen aan veerkracht. ReFi steunt op het principe dat de creatie van geldwaarde losgekoppeld moet worden van de onduurzame extractie van grondstoffen van onze planeet en samenleving. - -In plaats daarvan tracht ReFi milieu-, samenlevings- en sociale problemen op te lossen door het creëren van regeneratieve cycli. Deze systemen creëren waarde voor deelnemers en bieden tegelijkertijd voordelen voor ecosystemen en gemeenschappen. - -Een van de grondbeginselen van ReFi is het concept van de regeneratieve economie gepionierd door John Fullerton van het [Capital Institute](https://capitalinstitute.org). Hij stelde acht onderling verbonden principes voor die aan de basis liggen van systemische gezondheid: - -![Acht onderling verbonden principes](../../assets/use-cases/refi-regenerative-economy-diagram.png) - -ReFi-projecten realiseren deze principes door gebruik te maken van [slimme contracten](/developers/docs/smart-contracts/) en [gedecentraliseerde financiën (DeFi)](/defi/)-applicaties om regeneratieve gedragingen te stimuleren, bijv. herstellen van gedegradeerde ecosystemen, en om grootschalige samenwerking te faciliteren voor wereldwijde problemen zoals klimaatverandering en biodiversiteitsverlies. - -ReFi overlapt ook met de [gedecentraliseerde wetenschap (DeSci)](/desci/)-beweging, die Ethereum gebruikt als platform om wetenschappelijke kennis te financieren, creëren, evalueren, erkennen, bewaren en verspreiden. DeSci-tools kunnen nuttig worden voor de ontwikkeling van verifieerbare standaarden en werkwijzen voor het implementeren en monitoren van regeneratieve activiteiten, zoals bomen planten, verwijderen van plastic uit de oceaan of herstellen van een gedegradeerd ecosysteem. - -## Tokenisatie van koolstofkredieten {#tokenization-of-carbon-credits} - -De **[vrijwillige koolstofmarkt (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** is een mechanisme voor het financieren van projecten die een verifieerbare, positieve impact hebben op koolstofuitstoot, hetzij door huidige emissies te reduceren, of door broeikasgassen die al werden uitgestoten uit de atmosfeer te verwijderen. Deze projecten krijgen een activum genaamd "koolstofkrediet" nadat ze geverifieerd zijn, dat ze kunnen verkopen aan personen en organisaties die klimaatactie willen steunen. - -In aanvulling op de VCM zijn er ook verschillende door de overheid opgelegde koolstofmarkten ('nalevingsmarkten') die als doel hebben om een prijs voor koolstof vast te leggen via wetten of reglementen in een bepaalde jurisdictie (bijv. een land of regio), om zo het aanbod van te verstrekken vergunningen te controleren. Nalevingsmarkten stimuleren vervuilers binnen hun jurisdictie om de uitstoot te verminderen, maar zijn niet in staat om broeikasgassen die al werden uitgestoten te verwijderen. - -Ondanks hun ontwikkeling in afgelopen decennia blijft de VCM onderhevig aan verschillende problemen: - -1. Zeer gefragmenteerde liquiditeit -2. Ondoorzichtige transactiemechanismen -3. Hoge tarieven -4. Zeer trage handelssnelheid -5. Gebrek aan schaalbaarheid - -Een transitie van de VCM naar de nieuwe op blockchain gebaseerde **digitale koolstofmarkt (DCM)** biedt een mogelijkheid om de bestaande technologie voor het controleren, verhandelen en opgebruiken van koolstofkredieten te verbeteren. Blockchains maken openbaar verifieerbare data, toegang voor een groot aantal gebruikers en meer liquiditeit mogelijk. - -ReFi-projecten gebruiken blockchaintechnologie om veel van de problemen in de traditionele markt te verlichten: - -- **Liquiditeit is geconcentreerd in een klein aantal liquiditeitspools** die door iedereen vrij verhandeld kunnen worden. Zowel grote organisaties als individuele gebruikers kunnen deze pools gebruiken zonder zelf te zoeken naar verkopers/kopers, deelnamekosten of registratie vooraf. -- **Alle transacties worden geregistreerd op openbare blockchains**. Het traject dat elk koolstofkrediet aflegt vanwege handelsactiviteiten blijft voor altijd traceerbaar zodra het beschikbaar wordt gemaakt in de DCM. -- **Transactiesnelheid is bijna ogenblikkelijk**. Het verzamelen van grote hoeveelheden koolstofkredieten via gevestigde markten kan dagen of zelfs weken duren, maar in de DCM kan dit in enkele seconden. -- **Handelsactiviteit vindt plaats zonder tussenpersonen**, die hoge kosten aanrekenen. Digitale koolstofkredieten vertegenwoordigen een [kostenreductie van 62% in vergelijking met traditionele kredieten](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne), volgens de gegevens van een analysebureau. -- **De DCM is schaalbaar** en kan tegemoetkomen aan de vraag van zowel personen als multinationals. - -### Belangrijkste onderdelen van de DCM {#key-components-dcm} - -Vier hoofdcomponenten vormen het huidige landschap van de DCM: - -1. Registers zoals [Verra](https://verra.org/project/vcs-program/registry-system/) en [Gold Standard](https://www.goldstandard.org/) verzekeren dat projecten die koolstofkredieten creëren betrouwbaar zijn. Ze beheren ook de databases waar digitale koolstofkredieten ontstaan en kunnen worden verhandeld of opgebruikt (afgeboekt). - -Er is een nieuwe golf van innovatieve projecten die worden gebouwd op blockchains en die proberen om de bestaande bedrijven in deze sector te ontwrichten. - -2. Koolstofbruggen, ook bekend als tokenisers, bieden technologie aan om koolstofkredieten te vertegenwoordgen of te verhandelen van traditionele registers naar de DCM. Noemenswaardige voorbeelden zijn [Toucan Protocol](https://toucan.earth/), [C3](https://c3.app/) en [Moss.Earth](https://moss.earth/). -3. Geïntegreerde diensten bieden eindgebruikers koolstofvermijdings- en/of -verwijderingskredieten aan zodat ze het milieuvoordeel van een krediet kunnen opeisen en hun steun aan klimaatactie kunnen delen met de wereld. - -Sommige, zoals [Klima Infinity](https://www.klimadao.finance/infinity) en [Senken](https://senken.io/), bieden een breed scala aan projecten aan die ontwikkeld zijn door externe partijen en uitgegeven worden door erkende standaarden zoals Verra; andere zoals [Nori](https://nori.com/) bieden enkel specifieke projecten aan die ontwikkeld zijn volgens hun eigen koolstofkredietstandaard, die ze uitgeven en waarvoor ze hun eigen specifieke marktplaats hebben. - -4. De onderliggende rails en infrastructuur die het opschalen van de impact en de efficiëntie van de hele aanvoerketen van de koolstofmarkt mogelijk maken. [KlimaDAO](http://klimadao.finance/) levert liquiditeit als een publiek goed (door iedereen toe te laten om koolstofkredieten te kopen of te verkopen tegen een transparante prijs), stimuleert een verhoogde capaciteit van koolstofmarkten en afboekingen via beloningen, en levert klantvriendelijke, interoperationele tools om toegang te krijgen tot gegevens over, en voor het verwerven en afboeken van, een breed scala aan getokeniseerde koolstofkredieten. - -## ReFi voorbij koolstofmarkten {#refi-beyond} - -Hoewel er momenteel een grote nadruk ligt op koolstofmarkten in het algemeen, en met name op de transitie van de VCM naar de DCM in dit veld, is de term "ReFi" niet strikt beperkt tot koolstof. Naast koolstofkredieten kunnen andere milieuactiva worden ontwikkeld en getokeniseerd, wat betekent dat andere negatieve externaliteiten ook in de basislagen van toekomstige economische systemen ingeprijst kunnen worden. Bovendien kan het regeneratieve aspect van dit economische model worden toegepast op andere domeinen, zoals het financieren van publieke goederen via kwadratische financieringsplatformen zoals [Gitcoin](https://gitcoin.co/). Organisaties die gebouwd zijn op het principe van open participatie en eerlijke verdeling van hulpbronnen, geven iedereen de macht om geld door te sluizen naar zowel open-source softwareprojecten, als educatieve, milieu-, en gemeenschapsgedreven projecten. - -Door de richting van kapitaal te verschuiven weg van extractieve praktijken naar een regeneratieve stroom, kunnen projecten en bedrijven die sociale, milieu- en gemeenschapsvoordelen leveren - en die er mogelijk niet in slagen om fondsen te verkrijgen via traditionele financiering - een realiteit worden en sneller en op eenvoudigere wijze positieve externaliteiten voor de samenleving verwezelijken. Overgaan op dit model van financiering opent ook de deur naar meer inclusieve economische systemen, waarin mensen uit alle demografische lagen actieve deelnemers kunnen worden en niet enkel passieve waarnemers hoeven te blijven. ReFi biedt een visie van Ethereum als een mechanisme voor het coördineren van actie op existentiële uitdagingen waarmee onze soort en al het leven op aarde mee geconfronteerd worden - als het grondbeginsel van een nieuw economisch paradigme dat een meer inclusieve en duurzame toekomst voor de komende eeuwen mogelijk maakt. - -## Aanvullende informatie over ReFi - -- [Een hoogwaardig overzicht van koolstofvaluta en hun plaats in de economie](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) -- [The Ministry for the Future, een roman die de rol van een koolstofgebaseerde valuta in de strijd tegen klimaatverandering beschrijft](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) -- [Een gedetailleerd rapport opgesteld door de Taskforce on Scaling Voluntary Carbon Markets](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) -- [CoinMarketCap-woordenlijstvermelding over ReFi van Kevin Owocki en Evan Miyazono](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/nl/roadmap/beacon-chain/index.md b/src/content/translations/nl/roadmap/beacon-chain/index.md deleted file mode 100644 index 174341455f5..00000000000 --- a/src/content/translations/nl/roadmap/beacon-chain/index.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: De Beacon Chain -description: Leer meer over de Beacon Chain - de upgrade die proof-of-stake Ethereum introduceerde. -lang: nl -template: upgrade -image: ../../../../../assets/upgrades/core.png -summaryPoint1: De Beacon Chain verandert niks aan de Ethereum die we nu gebruiken. -summaryPoint2: Het zal het netwerk coördineren en als consensuslaag fungeren. -summaryPoint3: Het introduceerde Proof-of-Stake in het Ethereum-ecosysteem. -summaryPoint4: U kent dit wellicht als "Fase 0" op technische routekaarten. ---- - - - De Beacon Chain werd op 1 december 2020 om 12:00 uur UTC verzonden. Bekijk de gegevens voor meer informatie. Als u wilt helpen met het valideren van de keten, kunt u uw ETH staken. - - -## Wat doet de Beacon Chain? {#what-does-the-beacon-chain-do} - -De Beacon Chain zal het uitgebreide netwerk leiden of coördineren tussen [shards](/roadmap/danksharding/) en [stakers](/staking/). Maar het zal niet zijn zoals het [Ethereum-hoofdnet](/glossary/#mainnet) dat we nu gebruiken. Het kan geen accounts of slimme contracten aan. - -Het doel van de Beacon Chain zal in de loop van de tijd veranderen, maar het is een fundamenteel onderdeel voor [het veilige, duurzame en haalbare Ethereum waar we naartoe werken.](/roadmap/vision/). - -## Beacon Chain-kenmerken {#beacon-chain-features} - -### Introductie van staken {#introducing-staking} - -De Beacon Chain zal [Proof-of-Stake](/developers/docs/consensus-mechanisms/pos/) introduceren bij Ethereum. Dit is een nieuwe manier waarbij u kunt helpen om Ethereum veilig te houden. Zie het als iets dat voor iedereen toegankelijk is en wat Ethereum beter maakt en waarmee je tegelijk meer ETH verdiend. In de praktijk betekent het dat het uw betrokkenheid vergt door het staken van ETH om zo de validatorsoftware te activeren. Als validator verwerkt u transacties en creëert u nieuwe blokken in de keten. - -Sstaken en een validator worden is makkelijker dan [mining](/developers/docs/mining/) (hoe het huidige netwerk nu beveiligd wordt). Hopelijk zal dit helpen om Ethereum op langere termijn veilig te maken. Hoe meer mensen meewerken aan het netwerk, hoe meer het zal decentraliseren en hoe veiliger het zal worden. - - -Als u geïnteresseerd bent om een validator te worden en de Beacon Chain te beveiligen, hier vindt u meer informatie over staken. - - -Dit is ook een belangrijke verandering voor een andere upgrade: [shardketens](/roadmap/danksharding/). - -### Opzetten van shardketens {#setting-up-for-shard-chains} - -Nadat het hoofdnet is samengevoegd met de Beacon Chain, zal de volgende upgrade shardketens introduceren in het proof-of-stake netwerk. Deze "shards" verhogen de capaciteit van het netwerk en verbeteren de transactiesnelheid door het netwerk uit te breiden naar 64 blockchains. De Beacon Chain is een belangrijke eerste stap voor het introduceren van shardketens, dit komt omdat staken noodzakelijk is voor de beveiliging. - -Uiteindelijk zal de Beacon Chain verantwoordelijk zijn voor het willekeurig selecteren van stakers om de shardketens te valideren. Dit is van essentieel belang om het voor stakers moeilijk te maken om te bedriegen en zich een shard toe te eigenen. Dit betekent eigenlijk dat ze [een kans hebben van minder dan 1 op een triljoen](https://medium.com/@chihchengliang/minimum-committee-size-explained-67047111fa20). - -## Relatie tussen upgrades {#relationship-between-upgrades} - -Alle Ethereum-upgrades zijn ietwat met elkaar verbonden. Laten we nu samenvatten hoe de Beacon Chain de andere upgrades beïnvloedt. - -### Het hoofdnet en de Beacon Chain {#mainnet-and-beacon-chain} - -In het begin zal de Beacon Chain apart bestaan van het Ethereum-hoofdnet dat we dagelijks gebruiken. Maar uiteindelijke zullen ze verbonden worden. Het plan is om het hoofdnet "samen te voegen" met het proof-of-stake systeem dat gecontroleerd en gecoördineerd wordt door de Beacon Chain. - - - De Merge - - -### Shards en de Beacon Chain {#shards-and-beacon-chain} - -Shardketens kunnen alleen op een veilige manier in het Ethereum-netwerk komen als er een proof-of-stake consensusmechanisme geïmplementeerd is. De Beacon Chain zal het staken introduceren en de weg vrijmaken voor de upgrade van de shardketen die zal volgen. - - - Shardketens - - - - -## Heb interactie met de Beacon Chain {#interact-with-beacon-chain} - - diff --git a/src/content/translations/nl/roadmap/merge/index.md b/src/content/translations/nl/roadmap/merge/index.md deleted file mode 100644 index b5152a204eb..00000000000 --- a/src/content/translations/nl/roadmap/merge/index.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: De merge -description: Lees meer over de merge - wanneer het hoofdnet van Ethereum wordt gevoegd bij het gecoördineerde proof-of-stake systeem Beacon Chain. -lang: nl -template: upgrade -image: ../../../../../assets/upgrades/merge.png -summaryPoint1: Uiteindelijk zal het huidige Ethereum-hoofdnet "fuseren" met het Beacon Chain proof-of-stake systeem. -summaryPoint2: Dit markeert het einde van proof-of-work voor Ethereum, en de volledige overgang naar proof-of-stake. -summaryPoint3: Het is de bedoeling dat dit voorafgaat aan de uitrol van shardketens. -summaryPoint4: Vroeger noemden we dit "de docking." ---- - - - Deze upgrade bevat de officiële overschakeling naar proof-of-stake consensus. Dit elimineert de noodzaak van energie-intensieve mining en in plaats daarvan beveiligt het het netwerk met gestakete ether. Een waarlijk opwindende stap in het realiseren van de Ethereum-visie - schaalbaarder, veiliger en duurzamer. - - -## Wat is de merge? {#what-is-the-docking} - -Het is belangrijk om te onthouden dat aanvankelijk de [Beacon Chain](/roadmap/beacon-chain/) apart werd verzonden van het [hoofdnet](/glossary/#mainnet) - de keten die we vandaag gebruiken. Het Ethereum-hoofdnet blijft beveiligd door [proof-of-work](/ontwikkelaars/docs/consensus-mechanismen/pow/), zelfs terwijl de Beacon Chain parallel draait met [proof-of-stake](/ontwikkelaars/docs/consensus-mechanisms/pos/). De merge is het moment wanneer beide systemen eindelijk samenkomen. - -Stel je voor dat Ethereum een ruimteschip is dat nog niet helemaal klaar is voor een interstellaire reis. Met de Beacon Chain heeft de gemeenschap een nieuwe motor en een geharde romp gebouwd. Als het zover is, zal het huidige schip aan dit nieuwe systeem koppelen en samensmelten tot één schip, klaar om serieuze lichtjaren te overbruggen en het heelal in te gaan. - -## Samenvoegen met het hoofdnet {#docking-mainnet} - -Als het klaar is, zal het Ethereum-hoofdnet "fuseren" met de Beacon Chain en zijn eigen shard worden die proof-of-stake gebruikt in plaats van [proof-of-work](/ontwikkelaars/docs/consensus-mechanismen/pow/). - -Het hoofdnet zal de mogelijkheid om slimme contracten uit te voeren in het proof-of-stake systeem brengen, plus de volledige geschiedenis en huidige staat van Ethereum, om ervoor te zorgen dat de overgang soepel verloopt voor alle ETH-houders en -gebruikers. - -## Na de merge {#after-the-merge} - -Dit zal het einde betekenen van proof-of-work voor Ethereum en het tijdperk beginnen van een duurzamer, milieuvriendelijker Ethereum. Op dit punt zal Ethereum een stap dichter zijn bij het bereiken van de volledige schaalgrootte, veiligheid en duurzaamheid zoals geschetst in de [Ethereum-visie](/roadmap/vision/). - -Het is belangrijk op te merken dat een implementatiedoel van de merge eenvoud is, om zo de overgang van proof-of-work naar proof-of-stake te versnellen. De ontwikkelaars richten hun inspanningen op deze overgang en minimaliseren extra functies die dit doel kunnen vertragen. - -**Dit betekent dat een paar functies, zoals de mogelijkheid om gestakete ETH terug te trekken, iets langer zullen moeten wachten nadat de merge is voltooid.**De plannen omvatten een "opschoning"-upgrade om deze functies aan te pakken, die naar verwachting zeer snel zal gebeuren nadat de merge is voltooid. - -## Relatie tussen upgrades {#relationship-between-upgrades} - -Alle Ethereum-upgrades zijn ietwat met elkaar verbonden. Laten we daarom samenvatten hoe de merge zich verhoudt tot de andere upgrades. - -### De merge en de Beacon Chain {#docking-and-beacon-chain} - -Zodra de merge plaatsvindt, zullen stakers worden toegewezen om het Ethereum-hoofdnet te valideren. [Mining](/ontwikkelaars/docs/consensus-mechanismen/pow/mining/) zal niet langer nodig zijn, dus miners zullen waarschijnlijk hun inkomsten investeren in het staken in het nieuwe proof-of-stake systeem. - - - De Baken Ketting - - -### De merge en de opschoning na de merge {#merge-and-post-merge-cleanup} - -Onmiddellijk na de merge zullen sommige functies, zoals het terugtrekken van gestakete ETH, nog niet ondersteund worden. Deze zijn gepland voor een latere upgrade die kort na de merge zal volgen. - -Blijf op de hoogte met de [EF-blog voor onderzoek en ontwikkeling](https://blog.ethereum.org/category/research-and-development/). Voor degenen die nieuwsgierig zijn, lees meer over [What Happens After the Merge](https://youtu.be/7ggwLccuN5s?t=101), gepresenteerd door Vitalik op het ETHGlobal-evenement in april 2021. - -### De merge en shardketens {#docking-and-shard-chains} - -Oorspronkelijk was het plan om aan shardketens te werken voor de merge, om de schaalbaarheid aan te pakken. Maar met de opkomst van [laag 2-schalingsoplossingen](/developers/docs/scaling/#layer-2-scaling) is de prioriteit verschoven naar het omwisselen van proof-of-work naar proof-of-stake via de merge. - -Dit zal een voortdurende beoordeling zijn van de gemeenschap over de noodzaak van mogelijk meerdere rondes van shardketens om eindeloze schaalbaarheid mogelijk te maken. - - - Shardketens - - -## Meer informatie {#read-more} - - diff --git a/src/content/translations/nl/smart-contracts/index.md b/src/content/translations/nl/smart-contracts/index.md deleted file mode 100644 index 9183e8c9dc5..00000000000 --- a/src/content/translations/nl/smart-contracts/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Smart contracts -description: Een niet-technische introductie tot smart contracts -lang: nl ---- - -# Inleiding tot smart contracts {#introduction-to-smart-contracts} - -Slimme contracten zijn de fundamentele bouwstenen van de applicatielaag van Ethereum. Het zijn computerprogramma's die zijn opgeslagen op de blockchain en die "als dit dan dat"-logica volgen en gegarandeerd worden uitgevoerd volgens de regels die zijn gedefinieerd in de code, die niet kan worden gewijzigd zodra deze is aangemaakt. - -Nick Szabo heeft de term "smart contract" bedacht. In 1994 schreef hij [een inleiding tot het concept](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html), en in 1996 schreef hij [een onderzoek van wat slimme contracten zouden kunnen doen](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). - -Szabo had een digitale marktplaats voor ogen waar automatische, cryptografisch beveiligde processen transacties en bedrijfsfuncties mogelijk maken zonder vertrouwde tussenpersonen. Slimme contracten op Ethereum brengen deze visie in de praktijk. - -### Vertrouwen in traditionele contracten {#trust-and-contracts} - -Een van de grootste problemen met een traditioneel contract is de noodzaak dat vertrouwde personen zich houden aan de resultaten van het contract. - -Hier is een voorbeeld: - -Alice en Bob houden een fietsrace. Laten we zeggen dat Alice $ 10 wed dat ze de race zal winnen. Bob heeft er alle vertrouwen in dat hij de winnaar zal zijn en gaat akkoord met de weddenschap. Uiteindelijk beëindigt Alice de race eerder dan Bob en is zij de duidelijke winnaar. Maar Bob weigert de weddenschap uit te betalen en beweert dat Alice heeft gesjoemeld. - -Dit dwaze voorbeeld illustreert het probleem van een niet-slimme overeenkomst. Zelfs als aan de voorwaarden van de overeenkomst wordt voldaan (d.w.z. je bent de winnaar van de race), moet je nog steeds een ander persoon vertrouwen om de overeenkomst uit te voeren (d.w.z. de uitbetaling van de weddenschap). - -### Een digitale verkoopautomaat {#vending-machine} - -Een eenvoudige metafoor voor een slim contract is een verkoopautomaat die op ongeveer dezelfde manier werkt als een slim contract: specifieke inputs garanderen een vooraf bepaalde output. - -- Je selecteert een product -- De verkoopautomaat toont de prijs -- Je betaalt de prijs -- De verkoopautomaat controleert of je het juiste bedrag hebt betaald -- De verkoopautomaat geeft je je item - -De verkoopautomaat zal het gewenste product pas afgeven als aan alle vereisten is voldaan. Als je geen product selecteert of niet genoeg geld invoert, zal de automaat het product niet afgeven. - -### Automatische uitvoering {#automation} - -Het belangrijkste voordeel van een slim contract is dat het deterministisch duidelijke code uitvoert wanneer aan bepaalde voorwaarden is voldaan. Het is niet nodig om te wachten tot een mens het resultaat interpreteert. Hierdoor zijn er geen vertrouwde tussenpersonen meer nodig. - -Je kunt bijvoorbeeld een slim contract opstellen dat fondsen in escrow houdt voor een kind, waarna het kind het geld kan opnemen na een bepaalde datum. Als het kind probeert om het geld op te nemen vóór de opgegeven datum, wordt het slimme contract simpelweg niet uitgevoerd. Of je kunt een contract opstellen waarbij je automatisch een digitale versie van het eigendomsbewijs van een auto krijgt wanneer je de dealer betaalt. - -### Voorspelbare resultaten {#predictability} - -Traditionele contracten zijn meerduidig omdat ze afhankelijk zijn van mensen om ze te interpreteren en uit te voeren. Twee rechters kunnen een contract bijvoorbeeld anders interpreteren, wat kan leiden tot inconsistente beslissingen en ongelijke uitkomsten. Slimme contracten nemen deze mogelijkheid weg. Slimme contracten worden in plaats daarvan precies uitgevoerd op basis van de voorwaarden die zijn geschreven in de code van het contract. Deze precisie betekent dat het slimme contract onder dezelfde omstandigheden, altijd hetzelfde resultaat zal opleveren. - -### Openbaar register {#public-record} - -Slimme contracten zijn ook nuttig voor audits en tracking. Omdat de slimme contracten van Ethereum op een openbare blockchain staan, kan iedereen informatie over activaoverdrachten en andere gerelateerde informatie direct bijhouden. Zo kun je bijvoorbeeld controleren of iemand geld naar jouw adres heeft gestuurd. - -### Privacybescherming {#privacy-protection} - -Slimme contracten beschermen ook je privacy. Omdat Ethereum een pseudonymeus netwerk is (een netwerk waar je transacties publiekelijk verbonden zijn aan een uniek cryptografisch adres, en niet aan je identiteit), kun je je privacy beschermen tegen observeerders. - -### Zichtbare voorwaarden {#visible-terms} - -Tot slot kun je, net als bij traditionele contracten, controleren wat er in een slim contract staat voordat je het ondertekent (of er anderszins mee interageert). De transparantie van een slim contract garandeert dat iedereen het kan onderzoeken. - -## Toepassingsscenario's voor slimme contracten {#use-cases} - -Slimme contracten kunnen in wezen alles doen wat computerprogramma's kunnen doen. - -Ze kunnen berekeningen uitvoeren, valuta creëren, gegevens opslaan, NFT's minten, communicatie uitzenden en zelfs afbeeldingen genereren. Hier zijn enkele populaire praktijkvoorbeelden: - -- [Stablecoins](/stablecoins/) -- [Creëren en distribueren van unieke digitale activa](/nft/) -- [Een automatische, open wisselkoers](/get-eth/#dex) -- [Gedecentraliseerde gaming](/dapps/?category=gaming) -- [Een verzekeringsbeleid dat automatisch uitbetaalt](https://etherisc.com/) -- [Een standaard waarmee mensen aangepaste, interoperabele valuta's kunnen maken](/developers/docs/standards/tokens/) - -## Leer je liever visueel? {#visual-learner} - -Bekijk slimme contracten uitgelegd door Finematics: - - - -## Verder lezen {#further-reading} - -- [Hoe smart contracts de wereld zullen veranderen](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [Smart contracts: de blockchain-technologie die advocaten zal vervangen](https://blockgeeks.com/guides/smart-contracts/) -- [Smart contracts voor ontwikkelaars](/developers/docs/smart-contracts/) -- [Leer smart contracts te schrijven](/developers/learning-tools/) -- [Ethereum begrijpen - Wat is een smart contract?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/src/content/translations/nl/social-networks/index.md b/src/content/translations/nl/social-networks/index.md deleted file mode 100644 index 98cfed241a9..00000000000 --- a/src/content/translations/nl/social-networks/index.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: Gedecentraliseerde sociale netwerken -description: Een overzicht van gedecentraliseerde sociale netwerken op Ethereum -lang: nl -template: use-cases -emoji: ":mega:" -sidebarDepth: 2 -image: ../../../../assets/ethereum-learn.png -summaryPoint1: Blockchain-gebaseerde platformen voor sociale interactie en het creëren en verspreiden van content. -summaryPoint2: Gedecentraliseerde sociale medianetwerken beschermen de privacy van gebruikers en verbeteren de gegevensbeveiliging. -summaryPoint3: Tokens en NFT's creëren nieuwe manieren om content te monetariseren. ---- - -Sociale netwerken spelen een grote rol in ons dagelijks leven. Een gecentraliseerde controle van deze platformen levert echter veel problemen op: gegevensinbreuken, serverstoringen, deplatforming, censuur en privacyschendingen zijn enkele van de nadelen van sociale media. Om deze zaken te bestrijden bouwen ontwikkelaars sociale netwerken op Ethereum. Gedecentraliseerde sociale netwerken kunnen veel van de problemen van traditionele sociale netwerken oplossen en de algehele ervaring van gebruikers verbeteren. - -## Wat zijn gedecentraliseerde sociale netwerken? {#what-are-decentralized-social-networks} - -Gedecentraliseerde sociale netwerken zijn op blockchain gebaseerde platformen die gebruikers in staat stellen informatie uit te wisselen en inhoud te publiceren/verspreiden naar doelgroepen. Omdat deze toepasingen op de blockchain draaien, kunnen ze gedecentraliseerd zijn en resistent tegen censuur en ongepaste controle. - -Veel gedecentraliseerde sociale netwerken bestaan als alternatieven voor populaire sociale mediadiensten, zoals Facebook, LinkedIn, Twitter en Medium. Maar de door blockchain aangedreven sociale netwerken hebben een aantal kenmerken die ze voorrang geven op traditionele sociale mediaplatformen. - -### Hoe werken gedecentraliseerde sociale netwerken? {#decentralized-social-networks-overview} - -Gedecentraliseerde sociale netwerken zijn een klasse van [gedecentraliseerde applicaties (dapps)](/dapps/) - applicaties aangedreven door [smart contracts](/developers/docs/smart-contracts/) geïmplementeerd op de blockchain. De contractcode dient als de backend voor deze apps en definieert hun bedrijfslogica. - -Traditionele sociale mediaplatformen vertrouwen op databases voor het opslaan van gebruikersinformatie, programmacode en andere vormen van gegevens. Dit creëert echter enkele punten van mislukking (single points-of-failure) en brengt een aanzienlijk risico met zich mee. Een berucht voorbeeld hiervan was [vorig jaar het uren offline gaan](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) van de servers van Facebook, wat verhinderde dat de gebruikers het platform konden gebruiken. - -Gedecentraliseerde sociale netwerken bestaan op een peer-to-peer netwerk bestaande uit duizenden nodes over de hele wereld. Zelfs als sommige nodes falen, functioneert het netwerk ononderbroken, waardoor toepassingen resistent blijven tegen fouten en storingen. - -Gebruik van gedecentraliseerde opslagsystemen zoals [het InterPlanetary File System (IPFS)](https://ipfs.io/), sociale netwerken die op Ethereum zijn gebouwd, kunnen gebruikersinformatie beschermen tegen uitbuiting en kwaadaardig gebruik. Niemand zal uw persoonlijke informatie aan adverteerders verkopen, noch zullen hackers uw vertrouwelijke gegevens kunnen stelen. - -Veel op blockchain gebaseerde sociale platformen hebben eigen tokens die inkomsten genereren zonder het gebruik van advertenties. Gebruikers kunnen deze tokens kopen om toegang te krijgen tot bepaalde functies, in-app aankopen te doen of hun favoriete content creators te steunen. - -## Voordelen van gedecentraliseerde sociale netwerken {#benefits} - -1. Gedecentraliseerde sociale netwerken zijn censuurbestendig en toegankelijk voor iedereen. Dit betekent dat gebruikers niet willekeurig kunnen worden verbannen, gedeplatformeerd of beperkt. - -2. Gedecentraliseerde sociale netwerken zijn gebouwd op open-source idealen en maken broncode voor applicaties beschikbaar voor publieke inspectie. Door de implementatie van ondoorzichtige algoritmen te elimineren die gebruikelijk zijn in traditionele sociale media, kunnen op blockchain-gebaseerde sociale netwerken de belangen van gebruikers en platformmakers op elkaar afstemmen. - -3. Gedecentraliseerde sociale netwerken elimineren de "tussenpersoon". Content creators zijn de directe eigenaars van hun content en hebben direct contact met hun volgers, fans, kopers en andere partijen, met niets anders dan een smart contract tussen hen. - -4. Zoals dapps die op het Ethereum-netwerk draaien, dat wordt ondersteund door een wereldwijd peer-to-peer netwerk van nodes, zijn gedecentraliseerde sociale netwerken minder gevoelig voor downtime en uitval van servers. - -5. Gedecentraliseerde sociale platformen bieden een verbeterd monetariseringskader voor creators via niet-vervangbare tokens (NFT's), in-app cryptobetalingen en meer. - -6. Gedecentraliseerde sociale netwerken bieden gebruikers een hoog niveau van privacy en anonimiteit. Een persoon kan zich bijvoorbeeld aanmelden bij een op Ethereum gebaseerd sociaal netwerk met behulp van een ENS-profiel of portemonnee - zonder andere persoonlijk identificeerbare informatie (PII), zoals namen, e-mailadressen, enz., te hoeven delen. - -7. Gedecentraliseerde sociale netwerken zijn afhankelijk van gedecentraliseerde opslag, niet van gecentraliseerde databases, en zijn dus aanzienlijk beter voor het beschermen van gebruikersgegevens. - -## Gedecentraliseerde sociale netwerken op Ethereum {#ethereum-social-networks} - -Het Ethereum-netwerk is de voorkeurstool geworden voor ontwikkelaars die gedecentraliseerde sociale media maken vanwege de populariteit van de tokens (ERC-20/ERC-721) en de massale gebruikersbasis. Hier zijn enkele voorbeelden van op Ethereum gebaseerde sociale netwerken: - -### Peepeth {#peepeth} - -[Peepeth](https://peepeth.com/) is een microbloggingplatform vergelijkbaar met Twitter. Het werkt op de Ethereum-blockchain en gebruikt IPFS om gebruikersgegevens op te slaan. - -Gebruikers kunnen korte berichten verzenden, ook wel "Peeps" genoemd, die niet kunnen worden verwijderd of gewijzigd. Je kunt tips vezamelen of versturen naar iedereen op het platform in ether (ETH) zonder de app te verlaten. - -### Mirror {#mirror} - -[Mirror](https://mirror.xyz/) is een web3-compatibel schrijfplatform dat streeft naar decentralisatie en eigenaarschap van gebruikers. Gebruikers kunnen op Mirror gratis lezen en schrijven door simpelweg hun portemonnee te verbinden. Gebruikers kunnen ook geschreven materiaal verzamelen en zich abonneren op hun favoriete schrijvers. - -Berichten op Mirror worden permanent opgeslagen op Arweave, een gedecentraliseerd opslagplatform, en kunnen worden gemint als verzamelbare [niet-vervangbare tokens (NFT's)](/nft/), ook wel bekend als Writing NFT's. Writing NFT's kunnen helemaal gratis door schrijvers gemaakt worden, en het verzamelen ervan gebeurt op een Ethereum L2 — waardoor transacties goedkoop, snel en milieuvriendelijk worden gemaakt. - -### MINDS {#minds} - -[MINDS](https://www.minds.com/) is een van de meest gebruikte gedecentraliseerde sociale netwerken. Het werkt als Facebook en heeft al miljoenen gebruikers bereikt. - -Gebruikers gebruiken het eigen ERC-20 token $MIND van het platform om voor items te betalen. Gebruikers kunnen ook $MIND-tokens verdienen door populaire content te publiceren, bij te dragen aan het ecosysteem en anderen naar het platform te verwijzen. - -## Web2 sociale netwerken op Ethereum {#web2-social-networks-and-ethereum} - -[Web3](/web3/) eigen sociale platformen zijn niet de enige die proberen de blockchain-technologie te integreren in sociale media. Veel gecentraliseerde platformen zijn ook van plan Ethereum te integreren in hun infrastructuur: - -### Reddit {#reddit} - -Reddit heeft [Community Points](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users) geïntroduceerd, wat [ERC-20-tokens](/developers/docs/standards/tokens/erc-20/) zijn die gebruikers kunnen verdienen door kwalitatieve inhoud te posten en bij te dragen aan online gemeenschappen (subreddits). Deze tokens kunt u binnen een subreddit inwisselen om [exclusieve privileges en voordelen](https://www.reddit.com/community-points/) te krijgen. Voor dit project werkt Reddit met Arbitrum, een [laag 2](/layer-2/) rollup die is ontworpen om Ethereum-transacties te schalen. - -Het programma is al live, met de r/CryptoCurrency subreddit [die zijn versie van gemeenschapspunten genaamd "Moons" draait](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Volgens de officiële beschrijving beloont Moons "posters, commentators en moderators voor hun bijdragen aan de subreddit." Omdat deze tokens op de blockchain staan (gebruikers ontvangen ze in hun portemonnee), zijn ze onafhankelijk van Reddit en kunnen ze niet worden weggenomen. - -Na het afsluiten van een bètafase op het Rinkeby-testnet, staan Reddit Community Points nu op [Arbitrum Nova](https://nova.arbitrum.io/), een blockchain die eigenschappen combineert van een [sidechain](/developers/docs/scaling/sidechains/) en een [optimistic rollup](/developers/docs/scaling/optimistic-rollups/). Naast het gebruik van gemeenschapspunten om speciale functies te ontgrendelen, kunnen gebruikers ze ook verhandelen op exchanges in ruil voor fiat. Ook bepaalt de hoeveelheid gemeenschapspunten die een gebruiker bezit diens invloed op het besluitvormingsproces binnen de gemeenschap. - -### Twitter {#twitter} - -In januari 2021 heeft Twitter Blue [ondersteuning voor NFT's](https://mashable.com/article/twitter-blue-nft-profile-picture) geïmplementeerd, waardoor gebruikers hun portemonnee kunnen verbinden en NFT's als profielfoto's kunnen gebruiken. Op het moment van dit schrijven heeft het socialemediabedrijf ook [plannen aangekondigd](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) om in de toekomst een gedecentraliseerd sociaal netwerk te creëren. - -### Instagram {#instagram} - -In mei 2022 [kondigde Instagram ondersteuning aan voor NFT's](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) op Ethereum en Polygon. Gebruikers kunnen NFT's direct op Instagram posten door hun Ethereum-portemonnee te verbinden. - -## Gebruik gedecentraliseerde sociale netwerken {#use-decentralized-social-networks} - -- **[Status.im](https://status.im/)** - _Status is een beveiligde communicatie-app die gebruik maakt van een open-source, peer-to-peer protocol en end-to-end versleuteling om uw berichten te beschermen tegen derden._ -- **[Mirror.xyz](https://mirror.xyz/)** - _Mirror is een gedecentraliseerd publicatieplatform in handen van gebruikers dat gebouwd is op Ethereum. Het is bedoeld voor gebruikers om ideeën te crowdfunden, content te verkopen en hoogwaardige gemeenschappen op te bouwen._ -- **[Lens Protocol](https://lens.xyz/)** - _Lens Protocol is een samen te stellen gedecentraliseerde sociale grafiek die creators helpt met hun eigendomsrecht op hun content, waar ze ook maar heen gaan in het digitale landschap van het gedecentraliseerde internet._ -- **[Farcaster](https://farcaster.xyz/)** - _Farcaster is een gedecentraliseerd sociaal netwerk. Het is een open protocol dat veel clients kan ondersteunen, net als e-mail._ - -## Lees verder {#further-reading} - -### Artikelen {#articles} - -- [Decentralizing social media: a guide to the web3 social stack](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _Coinbase Ventures_ -- [Social Networks Are the Next Big Decentralization Opportunity](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Goertzel_ -- [Web3 holds the promise of decentralized, community-powered social networks](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ -- [An Overview of the Blockchain Social Media Landscape](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ -- [How Blockchain Can Solve Social Media Privacy](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Prableen Bajpai_ -- [Social Media Networks Are Coming To The Blockchain](https://businesstechguides.co/what-are-decentralized-social-networks) — _Emmanuel Awosika_ -- [Sufficient Decentralization for Social Networks](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Varun Srinivasan_ - -### Video's {#videos} - -- [Decentralized Social Media Explained](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ -- [DeSo Blockchain Wants to Decentralize Social Media](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_ - -### Gemeenschappen {#communities} - -- [Status Discord Server](https://discord.com/invite/3Exux7Y) -- [Mirror Discord Server](https://discord.com/invite/txuCHcE8wV) -- [r/CryptoCurrency subreddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/nl/staking/pools/index.md b/src/content/translations/nl/staking/pools/index.md deleted file mode 100644 index f293997d58a..00000000000 --- a/src/content/translations/nl/staking/pools/index.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: Gepoolde staking -description: Een overzicht van hoe u aan de slag kunt met gepoolde ETH-staking -lang: nl -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-pool.png -alt: Leslie de neushoorn die in het zwembad zwemt. -sidebarDepth: 2 -summaryPoints: - - Stake en verdien beloningen met een willekeurig aantal ETH, door samen te werken met anderen - - Sla het moeilijke deel over en vertrouw validatoractiviteiten aan een derde toe - - Bewaar liquiditeitstokens in uw eigen portemonnee ---- - -## Wat zijn staking-pools? {#what-are-staking-pools} - -Staking-pools zijn een gezamenlijke aanpak om veel gebruikers met kleinere hoeveelheden ETH de mogelijkheid te bieden de 32 ETH te verkrijgen die nodig zijn om een set validatorsleutels te activeren. De pooling-functionaliteit wordt oorspronkelijk niet ondersteund binnen het protocol, dus er zijn oplossingen ontwikkeld om aan deze behoefte te voldoen. - -Sommige pools werken met smart contracts, waar fondsen kunnen worden gestort op een contract dat uw stake beheert en volgt zonder vertrouwenskwestie en u een token geeft die deze waarde vertegenwoordigt. Andere pools hebben mogelijk geen smart contracts en worden in plaats daarvan via de off-chain beheerd. - -## Waarom staken met een pool? {#why-stake-with-a-pool} - -Naast de voordelen die we hebben behandeld in onze [inleiding tot staking](/staking/), komt staking met een pool met nog een aantal andere duidelijke voordelen. - - - - Bent u geen whale? Geen probleem. De meeste staking-pools laten u vrijwel elke hoeveelheid ETH staken door samen te werken met andere stakers, in tegenstelling tot solo staking waar u 32 ETH voor nodig heeft. - - - Staken met een pool is net zo makkelijk als een token swap. U hoeft zich geen zorgen te maken over hardware-installatie en node-onderhoud. Pools maken het mogelijk voor u om uw ETH te storten, waardoor node-operators validators kunnen uitvoeren. Beloningen worden vervolgens verdeeld over alle bijdragers, minus een vergoeding voor de node-activiteiten. - - - Veel staking-pools geven een token dat een claim op uw gestakete ETH en de beloningen die het genereert, vertegenwoordigt. Dit stelt u in staat om gebruik te maken van uw gestakete ETH, bijvoorbeeld als onderpand in DeFi-applicaties. - - - - - -## Wat te overwegen {#what-to-consider} - -Gepoolde of gedelegeerde staking wordt oorspronkelijk niet door het Ethereum-protocol ondersteund, maar gezien de vraag die er bestaat van gebruikers die minder dan 32 ETH willen staken, is er een groeiend aantal oplossingen gebouwd om aan deze vraag te voldoen. - -Elke pool en de tools of smart contracts die ervoor gebruikt worden, zijn door verschillende teams opgebouwd, en elke pool heeft zijn eigen risico's en voordelen. - -Hieronder zijn attribuutindicatoren gebruikt om opmerkelijke sterke of zwakke punten te signaleren die een genoemde staking-pool kan hebben. Gebruik deze sectie als referentie voor hoe we deze attributen definiëren terwijl u een pool kiest om u bij aan te sluiten. - - - -## Onderzoek staking-pools {#explore-staking-pools} - -Er zijn verschillende opties beschikbaar om u te helpen met uw installatie. Gebruik de bovenstaande indicatoren om u te helpen de onderstaande tools door te nemen. - - -Houd rekening met het belang van het kiezen van een service die de diversiteit van clients serieus neemt, omdat dit de veiligheid van het netwerk verbetert en uw risico's beperkt. Services die bewijs hebben van het beperken van het gebruik van meerderheid-clients, zijn gemarkeerd als "diverse clients." - - - - -Heeft u een suggestie voor een staking-tool die we hebben gemist? Bekijk ons [productlijstbeleid](/contributing/adding-staking-products/) om te zien of het een goede fit is en om het ter beoordeling in te dienen. - -## Veelgestelde vragen {#faq} - - -Meestal worden ERC-20-liquiditeitstokens uitgegeven aan stakers die de waarde van hun gestakete ETH plus beloningen vertegenwoordigen. Houd in uw achterhoofd dat verschillende pools hun staking-beloningen verdelen onder hun gebruikers via ietwat verschillende methoden, maar dit is wat gebruikelijk is. - - - - -Fondsen opnemen van een Ethereum-validator is momenteel niet mogelijk, wat de mogelijkheid beperkt om uw liquiditeitstokens in te wisselen voor de ETH-beloningen die in de consensuslaag vergrendeld zitten. - -Of pools die gebruik maken van een ERC-20-liquiditeitstoken kunnen gebruikers dit token in de open markt laten verhandelen, waardoor u uw staking-positie kunt verkopen zonder daadwerkelijk ETH te verwijderen uit het staking-contract. - - - -Er zijn veel overeenkomsten tussen deze gepoolde staking-opties en gecentraliseerde exchanges, zoals de mogelijkheid om kleine hoeveelheden ETH te staken en deze te bundelen om validators te activeren. - -In tegenstelling tot gecentraliseerde exchanges gebruiken veel andere gepoolde staking-opties smart contracts en/of liquiditeitstokens, die meestal ERC-20-tokens zijn die in uw eigen portemonnee kunnen worden bewaard en net als elke andere token kunnen worden gekocht of verkocht. Dit biedt een laag van soevereiniteit en veiligheid door u de controle te geven over uw tokens, maar het geeft u nog steeds geen directe controle over de validator-client die namens u attesteert op de achtergrond. - -Sommige pooling-opties zijn meer gedecentraliseerd dan andere als het gaat om de nodes waarmee ze ondersteund worden. Om de gezondheid en decentralisatie van het netwerk te bevorderen, worden stakers altijd aangemoedigd om een poolingservice te selecteren die een gedecentraliseerde set node-operators zonder toestemming mogelijk maakt. - - -## Verder lezen {#further-reading} - -- [Staking met Rocket Pool - Staking Overview](https://docs.rocketpool.net/guides/staking/overview.html) - _RocketPool docs_ -- [Staking Ethereum With Lido](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Lido help docs_ diff --git a/src/content/translations/nl/staking/saas/index.md b/src/content/translations/nl/staking/saas/index.md deleted file mode 100644 index cbed0222c1b..00000000000 --- a/src/content/translations/nl/staking/saas/index.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: Staking-as-a-service -description: Een overzicht van hoe u aan de slag kunt met gepoolde ETH-staking -lang: nl -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-saas.png -alt: Leslie de neushoorn zweeft in de wolken. -sidebarDepth: 2 -summaryPoints: - - Node operators van derden beheren de werking van uw validator-client - - Geweldige optie voor iedereen met 32 ETH, die zich niet comfortabel voelt met de technische complexiteit van het draaien van een node - - Verminder het vertrouwen en bewaar zelf uw opnamesleutels ---- - -## Wat is staking-as-a-service? {#what-is-staking-as-a-service} - -Staking-as-a-service ("SaaS") is een categorie van stakingdiensten waarbij u uw eigen 32 ETH stort voor een validator, maar node-activiteiten naar een externe operator worden gedelegeerd. Dit proces omvat meestal een begeleiding door de initiële set-up, inclusief sleutelgeneratie en storting, met daarna het uploaden van uw ondertekeningssleutels naar de operator. Hiermee kan de service uw validator namens u beheren, meestal tegen een maandelijkse vergoeding. - -## Waarom staken met een service? {#why-stake-with-a-service} - -Het Ethereum-protocol ondersteunt zelf geen stake-delegering, daarom zijn deze diensten gebouwd om aan deze vraag te voldoen. Als u 32 ETH hebt om te staken, maar u zich niet op uw gemak voelt om met hardware om te gaan, kunt u met SaaS-diensten het moeilijke deel delegeren terwijl u eigen blokbeloningen verdient. - - - - Stort uw eigen 32 ETH om uw eigen set ondertekeningssleutels te activeren die zullen deelnemen aan de Ethereum-consensus. Volg uw voortgang met dashboards om de ETH-beloningen te zien accumuleren. - - - Vergeet hardwarespecificaties, installatie, node-onderhoud en upgrades. - Met SaaS-providers kunt u het moeilijke deel uitbesteden door uw eigen ondertekeningsgegevens te uploaden, waardoor namens u een validator kan worden uitgevoerd tegen een kleine vergoeding. - - - In veel gevallen hoeven gebruikers de toegang tot de sleutels voor het opnemen of overschrijven van gestakete fondsen niet op te geven. Deze zijn anders dan de ondertekeningssleutels en kunnen apart worden opgeslagen om uw risico als staker te beperken (maar niet te verwijderen). - - - - - -## Wat te overwegen {#what-to-consider} - -Er is een groeiend aantal staking-as-a-service providers om u te helpen uw ETH te staken, maar elk met verschillende risico's en voordelen. - -Attribuutindicatoren worden hieronder gebruikt om opmerkelijke of zwakke punten te signaleren die een genoemde SaaS-provider kan hebben. Gebruik deze sectie als referentie voor hoe we deze attributen definiëren, wanneer u een service kiest om u te helpen met uw staking-traject. - - - -## Verken staking-serviceproviders {#saas-providers} - -Hieronder staat een aantal beschikbare SaaS-providers. Gebruik bovenstaande indicatoren om u te helpen door de onderstaande services te gaan - - -Houd rekening met het belang van het ondersteunen van diversiteit van clients, omdat dit de veiligheid van het netwerk verbetert en uw risico's beperkt. Services die bewijs hebben van het beperken van het gebruik van meerderheid-clients zijn gemarkeerd als "diverse clients." - - -#### SaaS-providers - - - -#### Sleutelgenerators - - - -Heeft u een suggestie voor een staking-as-a-service provider die we gemist hebben? Bekijk ons [productlijstbeleid](/contributing/adding-staking-products/) om te zien of het een goede fit is en om het ter beoordeling in te dienen. - -## Veelgestelde vragen {#faq} - - - Regelingen zullen verschillen van provider tot provider, maar gewoonlijk wordt u begeleid bij het instellen van de benodigde ondertekeningssleutels (één per 32 ETH) en het uploaden ervan naar uw provider zodat ze namens u kunnen valideren. De ondertekeningssleutels alleen bieden geen mogelijkheid om uw geld op te nemen, over te schrijven of uit te geven. Ze bieden echter wel de mogelijkheid om op consensus te stemmen, wat kan leiden tot offline boetes of slashing als het niet juist wordt gedaan. - - - -Ja. Elk account bestaat uit sleutels voor ondertekening en opname. Om een validator de status van de chain te laten bevestigen, deel te laten nemen aan sync-comités en blokken te laten voorstellen, moeten de ondertekeningssleutels gemakkelijk toegankelijk zijn door een validator-client. Deze moeten op een of andere manier met het internet worden verbonden en worden dus per definitie beschouwd als "hot" keys. Dit is een vereiste voor uw validator om te kunnen attesteren, en dus zijn de sleutels die worden gebruikt om fondsen over te schrijven of op te nemen om veiligheidsredenen gescheiden. - -Al deze sleutels kunnen altijd op een reproduceerbare manier worden gegenereerd met behulp van uw uit 24 woorden bestaande mnemonische herstelzin. Zorg ervoor dat u uw herstelzin veilig bewaard, anders kunt u uw opnamesleutels niet genereren wanneer dat nodig is. - - - - Wanneer u 32 ETH staket met een SaaS-provider, wordt die ETH nog steeds gestort op het officiële staking-stortingscontract. Als zodaning zijn SaaS-stakers momenteel beperkt door dezelfde opnamebeperkingen als solo stakers. Dit betekent dat het staken van uw ETH momenteel een eenrichtings storting is. Dit zal het geval zijn tot aan de Shanghai upgrade. - - - -Door een SaaS-provider te gebruiken, vertrouwt u de werking van uw node toe aan iemand anders. Dit brengt het risico van slechte node-prestaties met zich mee, wat u niet kunt controleren. In het geval dat uw validator wordt geslashed, wordt uw validatorsaldo bestraft en onder dwang verwijderd uit de validator-pool. Deze fondsen wordt vergrendeld totdat opnames op protocolniveau worden ingeschakeld. - -Neem contact op met de individuele SaaS-providers voor meer informatie over garanties of verzekeringsopties. Als u liever de volledige controle over uw validatorinstallatie heeft, leer dan meer over hoe u uw ETH solo kunt staken. - - -## Verder lezen {#further-reading} - -- [Evaluating Staking Services](https://www.attestant.io/posts/evaluating-staking-services/) - _Jim McDonald 2020_ diff --git a/src/content/translations/nl/staking/solo/index.md b/src/content/translations/nl/staking/solo/index.md deleted file mode 100644 index 0ea708df44e..00000000000 --- a/src/content/translations/nl/staking/solo/index.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: Solo stake uw ETH -description: Een overzicht van hoe u moet beginnen met solo staking van uw ETH -lang: nl -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-solo.png -alt: Leslie de neushoorn op haar eigen computerchip. -sidebarDepth: 2 -summaryPoints: - - Ontvang maximale beloningen rechtstreeks uit het protocol voor het goed en online laten functioneren van uw validator - - Voer home-hardware uit en voeg persoonlijk toe aan de beveiliging en decentralisatie van het Ethereum-netwerk - - Verwijder vertrouwen en geef nooit de controle over de sleutels tot uw geld op ---- - -## Wat is solo staking? {#what-is-solo-staking} - -Solo staking is de handeling van het [uitvoeren van een Ethereum-node](/run-a-node/) aangesloten op het internet en het storten van 32 ETH om een [validator](#faq)te activeren, wat u de mogelijkheid geeft om rechtstreeks deel te nemen aan netwerkconsensus. - -Een Ethereum-node bestaat uit zowel een uitvoeringslaag (EL)-client, als een consensuslaag (CL)-client. Deze clients zijn software die naast elkaar werken, samen met een geldige set ondertekeningssleutels, om transacties en blokken te verifiëren, het juiste hoofd van de chain te attesteren en blokken voor te stellen. - -Solo stakers zijn verantwoordelijk voor het bedienen van de hardware die nodig is om deze clients uit te voeren. Het is ten zeerste aangeraden om hiervoor een speciale machine te gebruiken die u thuis bedient. Dit is zeer nuttig voor de gezondheid van het netwerk. - -Een solo staker ontvangt beloningen rechtstreeks uit het protocol voor het goed en online laten functioneren van zijn/haar validator. - -## Waarom solo staken? {#why-stake-solo} - -Solo staking brengt meer verantwoordelijkheid met zich mee, maar geeft u maximale controle over uw geld en staking-installatie. - - - - Verdien in ETH omgezette beloningen direct uit het protocol wanneer uw validator online is, zonder dat tussenpersonen een deel afpakken. - - - Bewaar je eigen sleutels. Kies de combinatie van clients en hardware waarmee u uw risico kunt minimaliseren en het best kunt bijdragen aan de gezondheid en beveiliging van het netwerk. Staking-diensten van derden nemen deze beslissingen voor u, en deze maken niet altijd de beste keuzes. - - - Solo staking is de meest impactvolle manier om te staken. Door thuis een validator op uw eigen hardware uit te voeren, versterkt u de robuustheid, decentralisatie en veiligheid van het Ethereum-protocol. - - - -## Overwegingen voordat u begint met solo staking {#considerations-before-staking-solo} - -We zouden heel graag willen dat solo staking toegankelijk en risicovrij zou zijn voor iedereen, maar dit is niet de realiteit. Er zijn enkele praktische en serieuze overwegingen om in gedachten te houden voordat u kiest voor het solo staken van uw ETH. - - - - Bij het beheren van uw eigen node moet u wat tijd besteden om te leren hoe u de software gebruikt die u heeft gekozen. Dit heeft betrekking op het lezen van relevante documentatie en letten op communicatiekanalen van die dev-teams. - Hoe meer u begrijpt van de software die u gebruikt en hoe proof-of-stake werkt, hoe minder risico's er zullen zijn als staker, en hoe makkelijker het zal zijn om problemen op te lossen die zich kunnen voordoen. - - - Node setup vereist een redelijk comfortniveau bij het werken met computers, hoewel nieuwe tools dit makkelijker maken na verloop van tijd. Het begrijpen van de opdrachtregelinterface is nuttig, maar niet langer strikt nodig. - Het vereist ook een zeer elementaire hardwareinstallatie en enig begrip van de aanbevolen minimum specificaties. - - - Net als hoe privé-sleutels uw Ethereum-adres beveiligen, moet u specifieke sleutels genereren voor uw validator. U moet begrijpen hoe u uw herstelzinnen en privé-sleutels veilig moet houden. -

Ethereum-beveiliging en -scampreventie

-
- - Het opnemen van gestakete ETH of beloningen van een validatorsaldo wordt nog niet ondersteund. Ondersteuning voor opnames is gepland voor de aankomende Shanghai upgrade. U moet er rekening mee houden dat uw ETH ten minste één tot twee jaar vergrendeld blijft. Na de Shanghai upgrade bent u vrij om delen of uw hele stake op te nemen, als u dat wenst. - - - Hardware faalt af en toe, netwerkverbindingen geven soms fouten en client-software moet soms bijgewerkt worden. Node-onderhoud is onvermijdelijk en vereist af en toe uw aandacht. U moet er zeker van zijn dat u op de hoogte blijft van alle verwachte netwerkupgrades of andere kritische client-upgrades. - - - Uw beloningen zijn in verhouding tot de tijd die uw validator online is en juist attesteert. Downtime leidt tot boetes in verhouding tot hoeveel andere andere validators offline zijn op hetzelfde moment, maar leidt niet tot slashing. Bandbreedte is ook van belang, omdat de beloningen verminderen voor attesten die niet op tijd worden ontvangen. De vereisten zullen verschillen, maar een minimum van +/- 10 MB/s wordt aanbevolen. - - - Anders dan inactiviteitsboetes voor offline zijn, is er ook slashing. Dit is een veel serieuzere boete gereserveerd voor kwaadwillige misdrijven. Door een minderheid-client met sleutels enkel op één machine tegelijk te gebruiken, wordt het risico op slashing geminimaliseerd. Toch moeten alle stakers zich bewust zijn van de risico's van slashing. - -

Meer over slashing en validatorlevenscyclus

-
-
- - - -## Hoe het werkt {#how-it-works} - - - -Indien ooit gewenst, kunt u stoppen als validator; hiermee hoeft u niet meer online te blijven, wat wel het verkrijgen van verdere beloningen stopt. Wees ervan bewust dat _opname_ van deze fondsen niet mogelijk zal zijn tot de geplande Shanghai upgrade. - -Na de Shanghai upgrade kunnen gebruikers zowel hun beloningen als hun stake opnemen als ze dat willen. - -## Aan de slag met het Staking Launchpad {#get-started-on-the-staking-launchpad} - -Het Staking Launchpad is een open-source applicatie die u helpt om een staker te worden. Het begeleidt u bij het kiezen van uw clients, het genereren van uw sleutels en het storten van uw ETH op het staking-stortingscontract. Er is een checklist beschikbaar om er zeker van te zijn dat u alles heeft ingevuld om uw validator veilig in te stellen. - - - -## Wat te overwegen met tools voor nodes en client-instelling {#node-tool-considerations} - -Er is een groeiend aantal tools en services om u te helpen als solo staker van uw ETH, maar elk heeft verschillende risico's en voordelen. - -Attribuutindicatoren worden hieronder gebruikt om opmerkelijke sterke of zwakke punten aan te geven die een genoemde staking tool kan hebben. Gebruik deze sectie als referentie voor hoe we deze attributen definiëren wanneer u een tool kiest om u te helpen op uw staking-traject. - - - -## Onderzoek tools voor nodes en de instelling van clients {#node-and-client-tools} - -Er zijn verschillende opties beschikbaar om u te helpen met uw installatie. Gebruik bovenstaande indicatoren om u door de onderstaande tools heen te leiden. - - -Houd rekening met het belang van het kiezen van een minoriteit-client, aangezien dit de veiligheid van het netwerk verbetert en uw risico beperkt. Tools die u in staat stellen om een minoriteit-client in te stellen worden aangeduid als "multi-client." - - -#### Node tools - - - -#### Sleutelgenerators - -Deze tools worden gebruikt als een alternatief voor de [Staking Deposit CLI](https://github.com/ethereum/staking-deposit-cli/), om u te helpen met het genereren van sleutels. - - - -Heeft u een voorstel voor een staking tool die we hebben gemist? Bekijk ons [productlijstbeleid](/contributing/adding-staking-products/) om te zien of het een goede fit zou zijn en om het ter beoordeling in te dienen. - -## Bekijk solo staking-handleidingen {#staking-guides} - - - -## Veelgestelde vragen {#faq} - -Dit zijn enkele van de meest voorkomende vragen over staking die de moeite waard zijn om te weten. - - - -Een _validator_ is een virtuele entiteit die op Ethereum bestaat en deelneemt aan de consensus van het Ethereum-protocol. Validators worden vertegenwoordigd door een saldo, een publieke sleutel en andere eigenschappen. Een _validator client_ is de software die namens de validator handelt door de privé-sleutel te bewaren en te gebruiken. Een enkele validator-client kan verschillende sleutelparen hebben die verschillende validators kunnen controleren. - - - - -Voor elk sleutelpaar gekoppeld aan een validator moet precies 32 ETH geactiveerd worden. Meer ETH gestort op een enkele set sleutels verhoogt het beloningspotentieel niet, aangezien elke validator is beperkt tot een effectief saldo van 32 ETH. Dit betekent dat staking wordt uitgevoerd in 32 ETH-incrementen, elk met zijn eigen set sleutels en saldo. - -Stort niet meer dan 32 ETH voor één enkele validator. Het zal je beloningen niet verhogen, en het wordt vergrendeld tot de geplande Shanghai update. - -Als solo staking u te veeleisend lijkt, overweeg dan om een staking-as-a-service provider te gebruiken, of als je met minder dan 32 ETH werkt, bekijk dan de staking pools. - - - -Offline gaan wanneer het netwerk correct wordt afgesloten, zal NIET resulteren in slashing. Kleine inactiviteitsboetes worden opgelopen als uw validator niet beschikbaar is gedurende een bepaalde tijdsperiode (elk 6,4 minuten lang), maar dit is heel anders dan slashing. Deze boetes zijn iets minder dan de beloning die u zou hebben verdiend als de validator beschikbaar was om te attesteren, en deze verliezen kunnen worden terugverdiend door ongeveer evenveel tijd weer online te blijven. - -Merk op dat boetes voor inactiviteit proportioneel zijn aan hoeveel validators tegelijkertijd offline zijn. In gevallen waarbij een groot deel van het netwerk tegelijk geheel offline is, zullen de boetes voor elk van deze validators groter zijn dan wanneer er een enkele validator niet beschikbaar is. - -In extreme gevallen, als het netwerk stopt met werken doordat meer dan een derde van de validators offline is, zullen deze gebruikers ondervinden wat bekend staat als een kwadratisch inactiviteitslek, wat een exponentiële afvoer van ETH van offline validator-accounts is. Dit stelt het netwerk in staat om zichzelf uiteindelijk te genezen door het verbranden van ETH van inactieve validators totdat hun saldo 16 ETH bereikt, op welk moment ze automatisch zullen worden verwijderd uit de validator-pool. De resterende online validators zullen uiteindelijk weer meer dan 2/3 van het netwerk omvatten, waarmee voldaan wordt aan de supermeerderheid die nodig is om de chain opnieuw te voltooien. - - - -Kort samengevat kan dit nooit volledig worden gegarandeerd, maar als u te goeder trouw handelt, een minderheid-client uitvoert en uw ondertekeningssleutels op slechts één machine tegelijk houdt, is het risico om geslashed te worden bijna nul. - -Er zijn slechts enkele specifieke manieren die ertoe kunnen leiden dat een validator geslashed en uit het netwerk verwijderd wordt. Op het moment van schrijven, zijn de slashings die zich hebben voorgedaan uitsluitend het resultaat geweest van overbodige hardware-instellingen waarbij ondertekeningssleutels op twee aparte machines tegelijk werden opgeslagen. Dit kan per ongeluk resulteren in een dubbele stem van uw sleutels, wat een overtreding is die tot slashing kan leiden. - -Het uitvoeren van een supermeerderheid-client (elke client die gebruikt wordt door meer dan 2/3 van het netwerk) houdt ook het risico in van een mogelijke slashing in het geval dat deze client een bug heeft die resulteert in een chain fork. Dit kan leiden tot een onjuiste fork die afgerond wordt. Om terug te corrigeren naar de beoogde chain moet u een surround vote indienen door te proberen een afgerond blok ongedaan te maken. Dit is ook een overtreding die tot slashing kan leiden; dit kan worden vermeden door simpelweg een minderheid-client te gebruiken. - -Gelijkwaardige bugs in een minderheid-client zouden nooit afgerond worden en zouden dus nooit resulteren in een surround vote; het zou simpelweg leiden tot inactiviteitsboetes, niet tot slashing. - -

Meer informatie over het belang van het uitvoeren van een minderheid-client.

-

Meer informatie over slashing-preventie

-
- - -Individuele clients kunnen wat betreft prestatie en gebruikersinterface lichtjes variëren, omdat ze elk ontwikkeld zijn door verschillende teams die verschillende programmeertalen gebruiken. Dat gezegd hebbende, is geen enkele de "beste" client. Alle productie-clients zijn uitstekende stukken software, die allemaal dezelfde kernfuncties uitvoeren om te synchroniseren en te communiceren met de blockchain. - -Aangezien alle productie-clients dezelfde basisfunctionaliteit bieden, is het in feite erg belangrijk dat u kiest voor een minderheid-client - dit betekent een client die op dit moment NIET wordt gebruikt door de meerderheid van de validators op het netwerk. Dit kan contraproductief klinken, maar met een meerderheid- of supermeerderheid-client heeft u een verhoogd risico op slashing in het geval van een bug in die client. Het uitvoeren van een minderheid-client beperkt deze risico's aanzienlijk. - -Meer informatie over de reden waarom client-diversiteit cruciaal is - - - -Hoewel een virtuele privé-server (VPS) kan worden gebruikt als vervanging voor thuishardware, zijn de fysieke toegang en locatie van uw validator-client ook van belang. Gecentraliseerde cloudoplossingen zoals Amazon Web Services of Digital Ocean maken het mogelijk om hardware niet zelf te hoeven verkrijgen en bedienen, ten koste van het centraliseren van het netwerk. - -Hoe meer validator-clients draaien op een enkele gecentraliseerde cloud-opslagoplossing, hoe gevaarlijker het wordt voor deze gebruikers. Elke gebeurtenis die deze providers offline haalt, of dat nu het geval is door aanvallen, regelgevingseisen of gewoon door stroom- en internetproblemen, zorgt ervoor dat elke validator-client die van deze server afhankelijk is tegelijkertijd offline gaat. - -Offline boetes zijn evenredig aan hoeveel andere validators er tegelijkertijd offline zijn. Het gebruik van een VPS verhoogt het risico dat offline boetes zwaarder zullen zijn, en verhoogt uw risico op kwadratische lekkage of slashing in het geval dat de uitval groot genoeg is. Om uw eigen risico en het risico voor het netwerk te minimaliseren, worden gebruikers sterk aangemoedigd om hun eigen hardware te verkrijgen en gebruiken. - - -## Verder lezen {#further-reading} - -- [Ethereum's Client Diversity Problem](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ -- [Helping Client Diversity](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ -- [Client diversity on Ethereum's consensus layer](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ -- [How To: Shop For Ethereum Validator Hardware](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ -- [Step by Step: How to join the Ethereum 2.0 Testnet](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _Butta_ -- [Eth2 Slashing Prevention Tips](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raul Jordan 2020_ diff --git a/src/content/translations/pcm/dao/index.md b/src/content/translations/pcm/dao/index.md deleted file mode 100644 index f9000230a32..00000000000 --- a/src/content/translations/pcm/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: Decentralized autonomous organisations (DAOs) -description: One kain yan about DAOs wey dey on top Ethereum -lang: pcm -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao.png -alt: One show of hau one DAO dey vote on top one proposal. -summaryPoint1: Kommunitis wey membas own and nor get one pesin wey dey kontrol evrytin. -summaryPoint2: One way wey bam wey u fit join pipol wey yu nor sabi for intanet witout wahala. -summaryPoint3: One ogbonge place wey bam yu fit put yor moni for somtin wey make sense. ---- - -## Wetin bi DAOs? {#what-are-daos} - -DAo na place wey evryon own, organizashon wey blockchain dey control wey dey work towads one shia mishon. - -Omo dis DAOs go helep us link one work wit dem wey get di same vibes wey wi get and wi nor go dey look pesin to bag awa moni abi tins wey wi dey run. Dey nor get pesin wey go run us street wit awa moni abi pesin wey go shange de book. Insted, na rules wey dey based on blockchain wey don enta di kode dey yan di way di organizashon dey work and hau dem dey spend moni. - -Dey don build dia treasuris in one kain way wey pesin nor fit enta dia moni if dem nor gri yu make yu do am. Desishons dey kontrolled based on proposals an voting make evrybody for the organizashon fit yan, and evrytin dey hapun openly for di chain. - -## Why e bi say wi nid DAOs? {#why-dao} - -Omo to bigin organisashon join pipol yu nor sabi nor bi play bikos moni dey involved and yu nor too sabi who all dis pipol sha bi an e go rikwaya trust die. E nor izy to biliv pesin wey yu and am just dey yarn for intanet wey yu nor even sabi wella. Wit DAOs yu nor nid sabi who dem bi, bikos all man go dey run on one kain ethical kode wey evrybody sabi and all man go dey si am and e dey 100% legit and verified. - -And e go mek say you fit synergize wit pipol ovaboard and all tins go dey run wella. - -### One kain komparison {#dao-comparison} - -| DAO | One normal organizashon | -| ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | -| E dey komon say e dey flat, and evrybody get di same pawa. | E dey waka sey na for up, down levels dem dey arrange am. | -| Voting dey important bcus say members suppose vote before any change fit happen. | Based on how e dey set, dem fit demand changes from one person alone, or dem fit offer voting" for Nigerian. | -| Dem kount di votes and di rizut dey waka automatically witout any pesin wey evrybody trust. | If dem alow make wi vote, dem go kount di votes inside, and di outcome of di voting go nid to dey handol manually. | -| Sarvis wey dem offa dey handol automatik, nor bi pesin dey kontrol-am, na so-so desentralizashon (like hau dem dey shia fri money). | If e require pesin to handle am or if e dey controlled by one central system wey fit dey manipulate am. | -| All activity na open book, evrybody fit si am. | Activity na usually private, and e no too dey reach public. | - -### DAO sample {#dao-examples} - -To make you understand the matter, si smoll way wey yu fit take yus DAO: - -- Charity - yu fit accept money from pesin wey dey anywia for dis world and vote wetin una go yus di money do. -- Na we get am - you fit buy things wey we si and di ones wey wi nor si and evrybody fit vote wetin wi go yus am do. -- Fri money - yu fit start associashon wey go gada money and pipol go vote wich biznes dem wan put di money. Wi fit give awa membas di money wey dem pay back. - -## Hau dis DAOs dey work? {#how-daos-work} - -Di tori of any DAO na hin contract wey sharp. na him go tell us the matter wey guide the organization and our money. Once our contract don dey live on Ethereum, nobody fit change am again except say we vote. If anybody try do something wey no dey inside our matter and the code, e go fail. Bikos say the matter sef dey inside the contract too e mean say norbody fit spend money if evrybody nor gri on top. E mean say DAOs no need one single oga. Instead na evrybody for the group dey make the decision and payment dey automatic wen di vote pass. - -This one possible becasue of say our smart contract no fit shake once they don dey live on Ethereum. Yu nor fit edit di kode (DAO matter) make anybody nor sabi bikos na evrythin wi go dey si. - - - More on smart kontracts - - -## Ethereum and DAOs {#ethereum-and-daos} - -Ethereum na di pafet foundashon for DAOs for diferen rizin: - -- Ethereum consensus dey distributed and them establish am for organization to trust the network. -- Person no fit change smart contract code once e don go live, even the owners no fit change the codes. Dis one deu alow DAO make dem run wit di rule wey dem don set. -- Smart contracts fit send and e fit risiv money. Without dis yu go nid person wey we trust to dey manage group money. -- The Ethereum komunity don show say na team work and no be competition and e don allow different support systems dey quickly. - -## DAO governance {#dao-governance} - -So many matter dey wey we go consider when you wan govern DAO, matter like voting and proposals work. - -### Delegashons {#governance-delegation} - -Delegashon be like the diferen pipol dey represent the DAO. People wey get token go allo others vote and choose theirself make everything dey move forward. - -#### Popula eksampol {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) - pipol wey get ENS fit allow pesin wey dey active for di komunity vote for dem. - -### Automatic transaction governance {#governance-example} - -For plenty DAOs, transakshon go do well if plenty pipol vote for am. - -#### Popula eksampol {#governance-example} - -[Nouns](https://nouns.wtf) - for Noun DAO, transakshon dey automatik if e don reach one kain numba of vote and na positive, as far as say di foundas nor yus veto pawa. - -### Multisig governance {#governance-example} - -DAO fit get plenty plenty people wey fit vote, e fit be say na 5-20 people wey dey active dey share the money wey dey the wallet(people wey dem know for public). After we vote na the multisig signers go execute wetin we don vote for. - -## DAO laws {#dao-laws} - -In 1977, Wyoming na hin invent the LLC wey dey protect entrepreneurs and e dey limit their liability. Na recently them push the DAO law wey establish legal status for DAOs. Nau na Wyoming, Vermont, and di Virgin Islands get DAO laws. - -#### Popula eksampol {#law-example} - -[CityDAO](https://citydao.io) – dem use Wyoming's DAO law take buy 40 acres of land near Yellowstone National Park. - -## DAO membership {#dao-membership} - -Difre models for DAO membership na im dey. Membership fit ditamin hau pipol go vote and some oda important part of di DAO. - -### Token-based membership {#token-based-membership} - -Dis one nor get pamishon, evrytin dipend on di token wey wi dey yus. We fit trade most of these token for decentralized exchange. You fit win oda tokens from liquidity abi anoda pruf of work. At all at all if you get the token, you go fit vote. - -_Dem dey use am govern big decentralized protocols or tokens._ - -#### Popula eksampol {#token-example} - -[MakerDAO](https://makerdao.com) – MakerDAO's token MKR dey available for decentralized exchanges and anyone fit buy am and e go get voting power for maker protocol future. - -### Share-based membership {#share-based-membership} - -Share based DAOs dey more permissioned but dem dey open. Anybody fit submit proposal say e wan join the DAO, dem fit offer different thing whether na work abi token. Shares reprisent voting pawa and membership. Membas fit komot at any taim wit dia own shia of di treasury. - -_Dem dey use am for more organization like charities, worker collective and investment club wey dey human focused. You fit govern protocols and tokens too._ - -#### Popula eksampol {#share-example} - -[MolochDAO](http://molochdao.com/) – MolochDAO dey focused on giving Ethereum projects money. Dem go ask for proposal to join so them fit evaluate if you get the kapital and expertise to make good decisions about dia grantees. Yu nor fit just but enta to di DAO for open market. - -### Reputashon-based membership {#reputation-based-membership} - -Reputashon show proof of participation and give voting power in the DAO. Inlike token or share based membership, reputation based DAOs no dey transfer ownership or contributors. You no fit buy reputation, you no fit transfer am and dem no fit give you so you gats work for the reputaion when you participate. Onchain voting na permissionless and people wey wan join fit submit proposals to join the DAO and dem fit ask to receive reputations and tokens as a reward in exchange for their contributions. - -_Dem dey use am for decentralized development and governance of protocols and dapps, but organization like charities, clubs dey use am too._ - -#### Popula eksampol {#reputation-example} - -[DXdao](https://DXdao.eth.link) - DXdao na global sovereign collective building and governing decentralized protocols and application since 2019. Dem dey leverage reputation based governance and holographic consensus to coordinate and manage funds, e mean say person no fit buy their way into influencing its future. - -## Join abi start DAO {#join-start-a-dao} - -### Join a DAO {#join-a-dao} - -- [Ethereum community DAOs](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [DAOhaus's list of DAOs](https://app.daohaus.club/explore) -- [Tallt.xyz list of DAOs](https://www.tally.xyz) - -### Start DAO {#start-a-dao} - -- [Summon DAO with DAOhaus](https://app.daohaus.club/summon) -- [Start Governor DAO with Tally](https://www.tally.xyz/add-a-dao) -- [Create Aragon powered DAO](https://aragon.org/product) -- [Start colony](https://colony.io/) -- [Create DAO with DAOstack holographic consensus](https://alchemy.daostack.io/daos/create) - -## Further reading {#further-reading} - -### DAO artikols {#dao-articles} - -- [Wetin be DAO](https://aragon.org/dao) - [ Aragon](https://aragon.org/) -- [DAO handbook](https://daohandbook.xyz) -- [ House of DAOs](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) - [ Metagame](https://wiki.metagame.wtf/) -- [ Wetin be DAO and wetin dem dey use am for?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) - [DAOhaus](https://daohaus.club/) -- [ Hau yu fit start DAO-powered Digital Komunity](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) - [DAOhaus](https://daohaus.club/) -- [ Wetin be DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) - [Coinmarketcap](https://coinmarketcap.com) -- [Wetin be Holographic Consensus?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [ DAOstack](https://daostack.io/) -- [DAOs no be corporations: where decentralization in autonomous organizations matter by vitalik](https://vitalik.ca/general/2022/09/20/daos.html) -- [DAOs, DACs, DAs and More: terminology guide wey no complete](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [ Ethereum Blog](https://blog.ethereum.org) - -### Videos {#videos} - -- [Wetin be DAO inside crypto?](https://youtu.be/KHm0uUPqmVE) -- [ Shey DAO fit build city?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) - [ TED](https://www.ted.com/) diff --git a/src/content/translations/pcm/nft/index.md b/src/content/translations/pcm/nft/index.md deleted file mode 100644 index 8e328fef50a..00000000000 --- a/src/content/translations/pcm/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Non-fungibol tokens(NFT) -description: Ovaview of NFTs for inside Ethereum -lang: pcm -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: Eth logo wey wi dey yus hologram show. -summaryPoint1: Na one way wey yu fit reprisent anytin wey dey unik as Ethereum-based asset. -summaryPoint2: NFTs dey give more pawa to kontent kreators pass any taim bifor. -summaryPoint3: Na smart contracts on top of Ethereum blockchain dey give di pawa. ---- - -## What are NFTs? {#what-are-nfts} - -NFTs na tokens wey ish dey unik on im own. Ish NFT get im own difren propatis (non-fungibol) and e dey very skarse. E dey difren from tokens such as ERC-20s wey be say evry token wey dey one set dey look di same den kom folow get di same propatis ('fungibol'). Yu nor dey kare for wich partikular dollar bill yu get for yor wallet, bikos dem bi di same tin and dem get di same worth. Anyhow e bi, yu*dey* kare for wich spesifik NFT yu get, bikos dem bi pesina propatis wey make dem fit stand out from odas (''non-fungibol). - -Di unikness wey ish NFT karry dey enabol make dem fit get yus token do tins like art, kollectibols, abi even real estate, wia one spesifik unik NFT reprisent some spesifik unik real world abi digital item. Ownaship of tins dey sekure by di Ethereum blockchain - norbody fit shange di rekord of ownaship abi kopy/paste a new NFT to existens. - - - -## Intanet wit difren assets {#internet-of-assets} - -NFTs and Ethereum dey solve some palava wey dey di intanet today. As evrytin dey turn digital di more, e dey impotant to replikate di propatis of fisika items like skarsity, unikness, and pruf of ownaship. for way wey one sentral organizashon nor fit kontrol. For eksampol, wit NFTs, yu fit own muzik mp3 wey nor dey spesifik to one kompany's spesifik muzik app, abi yu fit own soshial media handol wey yu fit sell abi swap, but nor fit dey komot from yu by platform provida. - -Si as intanet of NFTs dey compia to di intanet wey plenti of us dey yus today... - -### One kain komparison {#nft-comparison} - -| One NFT intanet | Di intanet tuday | -| --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Na yu get yor own assests! Na only yu fit sell abi swap dem. | Yu go rent asset from one organizashon. | -| NFTs dey digitally unik, nor two NFTs dey di same. | Yu nor fit distinguish one kopy of entity from di original. | -| Ownaship of NFT dey store for di blockchain for anyone to verify. | Ownaship rekords of digital items dey store for servers wey institushons dey kontrol - yu supose biliv dia word for am. | -| NFTs na smart contracts on Ethereum. E mean say wi fit yu dem izy for oda smart contracts and apps on Ethereum! | Companis wey get digital items usually rikwaya dem own "walled garden" infrastructure. | -| Kontent kreators fit sell dem work anywia and dem fit enta one global market. | Kreators dey dipend on di infrastructure and distribushon wey di platfoms wey dem yus provide for dem. Dis platfoms dey always subjet to terms of yus and geographical restricshons. | -| NFT kreators fit retain ownaship rite ova dem own work, and program royaltis directly into di NFT contract. | Platforms, like muzik streaming savis, dey kip di majority of profits from sales wey dem make. | - -## Hau NFTs dey work? {#how-nfts-work} - -Like any token issue on Ethereum, NFTs dey issue by smart contract. Di smart contract dey folow one of several NFT standads (normally ERC-721 abi ERC-1155) wey define di funshon wey di contract get. Di contract fit make ('mint') NFTs and give dem to one spesifik owna. Ownaship dey define for di contract by mappin spesifik NFTs to spesifik address. Di NFT get one ID and metadata normally wey join wit am, and dis one make Di spesifik token dey konfam. - -Wen pesin kreate abi mint one NFT, e mean say dem dey do one funshon inside di smart contract wey go assign one spesifik NFT to dia address. Dis informashon dey store inside di contract's storaj, wey bi part of di blockchain. Di pesin wey kreate di contract fit add extra logik for di contract, for eksampol dem fit limit di total supply abi define royalty wey dem go pay di kreator anytaim pesin dey transfa di token. - -## Wetin NFT dey for? {#nft-use-cases} - -Dem fit yus NFTs for plenti tins like: - -- pruf say yu go event -- proof say pesin finish a kourse -- ownabol items for games -- art wey dey digital -- tokenizin asset wey dey real-world -- pruf of identity for online -- e dey kontrol asess to kontent -- e good for ticketin -- e dey for desentralize intanet domain names -- e dey for kolateral for DeFi - -E fit bi say yu bi artist wey wont shia yor work yusing NFTs, witout luzin kontrol and sakrifisin yor profits to intamediaris. Yu fit kreate one new contrat and specify di nomba of NFTs, dia propatis, and one link to some spesifik artwork. As di artist, yu fit program inside di smart contract di royaltis wey yu supose dey paid (for eksampol, transfa 5% of di sale price give di contract owna anytaim pesin transfa di NFT). Yu fit always pruf say yu kreate di NFTs bikos yu get di wallet wey dey diploy di contract. Yor buyas fit izily pruf say dem get audintik NFT from yor koleshon bikos dem wallet address join wit one token for yor smart contract. Dem fit yus am akross di Ethereum ecosystem, and dem go get konfidens for di audinticity. - -Abi tink about one ticket for sporting event. Just like hau di organizer of one event fit shuse hau many tickets dem wan sell, di kreator of one NFT fit deside hau many replicas wont dey exist. Somtaims dem fit be exact replicas, like 5000 General Admishon ticket. Somtaims e dey mint several wey dey similar wella, but ish one difren smoll, like one ticket wit one assigned seat. Pipol fit buy and sell dem peer-to-peer witout paying ticket handlas and di pesin wey buy go always get asurans for di ticket audinticity as dem shek di contract address. - -For ethereum.org, dem dey yus NFTs to show say pipol don kontribute to awa GitHub repository abi attend kolls, and dem even get awa own NFT domain name. If yu kontribute to ethereum.org, yu fit klaim one POAP NFT. Some crypto meetups don yus POAPs as tickets. [More to dey kontribute](/contributing/#poap). - -![ethereum.org POAP](./poap.png) - -Dis website folow get alternative domain name powered by NFTs, **ethereum.eth**. Our`.org`address dey sentraly manaj by one domain name system (DNS) provida, but ethereum`.eth` don regista on Ethereum via di Ethereum Name Servis (ENS). And na wi own and dey manaj am. [Yu fit shek awa ENS rekord](https://app.ens.domains/name/ethereum.eth) - -[More on ENS](https://app.ens.domains) - - - -### NFT sekurity {#nft-security} - -Ethereum's Sikurity dey kome from Proof-of-stake. Di system dey design to ekonomikally komot bad akshon, e dey make Ethereum tamper-proof. Dis na wetin wey dey make NFTs possibol. Wons di block wey dey kontain yor NFT transakshon don finalize e go kost attacka millions of ETH to shange am. Anyone wey dey run Ethereum software immediately fit sabi dishonest tamperin wey dey wit one NFT, and dis bad pesin go ekonomikally dey penalize and eject. - -Sikurity issues wey rilate to NFTs dey often rilate to phishin skams, vulnerabilitis wey dey smart contracts abi user errors ( such as private key to dey ekspose), wey dey make good wallet sikurity kritical for NFT ownas dem. - - - More on sikurity - - -## Further reading {#further-reading} - -- [One biginna guide to NFTs](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) - _Linda Xiet, January 2020_ -- [EtherscanNFT tracker](https://etherscan.io/nft-top-contracts) -- [ERC-721 token standard](/developers/docs/standards/tokens/erc-721/) -- [ERC-1155 token standard](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/pl/community/support/index.md b/src/content/translations/pl/community/support/index.md deleted file mode 100644 index dc0d2953723..00000000000 --- a/src/content/translations/pl/community/support/index.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -title: Wsparcie Ethereum -description: Uzyskaj wsparcie w ekosystemie Ethereum. -lang: pl ---- - -# Wsparcie Ethereum {#support} - -## Oficjalne wsparcie Ethereum {#official-support} - -Szukasz oficjalnego wsparcia Ethereum? Pierwszą rzeczą, którą powinieneś wiedzieć, jest to, że Ethereum jest zdecentralizowane. Oznacza to, że żadna centralna organizacja, podmiot lub osoba nie jest właścicielem Ethereum i z tego powodu nie istnieją żadne oficjalne kanały wsparcia. - -Zrozumienie zdecentralizowanej natury Ethereum jest kluczowe, ponieważ każdy, kto twierdzi, że jest oficjalnym wsparciem Ethereum, prawdopodobnie próbuje cię oszukać! Najlepszą ochroną przed oszustami jest edukacja i poważne podejście do kwestii bezpieczeństwa. - - - Bezpieczeństwo Ethereum i zapobieganie oszustwom - - - - Poznaj podstawy Ethereum - - -Pomimo braku oficjalnego wsparcia, wiele grup, społeczności i projektów w całym ekosystemie Ethereum chętnie pomaga, a na tej stronie można znaleźć wiele przydatnych informacji i zasobów. Nadal masz pytania? Dołącz do [Discorda ethereum.org](/discord/), a my postaramy się pomóc. - -## Wsparcie portfela {#wallet-support} - -Masz problemy z portfelem? Większość portfeli ma dedykowane zespoły wsparcia, które mogą pomóc: - -- [MetaMask](https://metamask.zendesk.com/hc/) -- [Argent](https://support.argent.xyz/hc/) -- [MyEtherWallet](https://help.myetherwallet.com/) - -_Nie jest to pełna lista. Potrzebujesz pomocy w znalezieniu wsparcia konkretnego portfela? Dołącz do [Discorda ethereum.org](https://discord.gg/ethereum-org), a my postaramy się pomóc._ - -Szukasz portfela Ethereum? [ Zapoznaj się z naszą pełną listą portfeli Ethereum](/wallets/find-wallet/). - -## Budowanie zdecentralizowanych aplikacji {#building-support} - -Budowanie może być trudne. Oto kilka miejsc skoncentrowanych na rozwoju z doświadczonymi deweloperami Ethereum, którzy chętnie pomogą. - -- [Alchemy University](https://university.alchemy.com/#starter_code) -- [Discord CryptoDevs](https://discord.gg/Z9TA39m8Yu) -- [Ethereum StackExchange](https://ethereum.stackexchange.com/) -- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) -- [Web3 University](https://www.web3.university/) -- [LearnWeb3](https://discord.com/invite/learnweb3) - -Dokumentację i przewodniki dla deweloperów można również znaleźć w naszej sekcji [ Zasoby dla deweloperów Ethereum](/developers/). - -### Narzędzia {#dapp-tooling} - -Czy twoje pytanie dotyczy konkretnego narzędzia, projektu lub biblioteki? Większość projektów posiada serwery czatu lub fora poświęcone wsparciu. - -Oto kilka popularnych przykładów: - -- [Solidity](https://gitter.im/ethereum/solidity/) -- [ethers.js](https://discord.gg/6jyGVDK6Jx) -- [web3.js](https://discord.gg/GsABYQu4sC) -- [Hardhat](https://discord.gg/xtrMGhmbfZ) -- [Truffle](https://discord.gg/8uKcsccEYE) -- [Alchemy](http://alchemy.com/discord) -- [Tenderly](https://discord.gg/fBvDJYR) - -## Uruchamianie węzła {#node-support} - -Jeśli uruchamiasz węzeł lub walidator, oto kilka społeczności, które pomogą Ci zacząć. - -- [Discord EthStaker](https://discord.io/ethstaker) -- [Reddit EthStaker](https://www.reddit.com/r/ethstaker) - -Większość zespołów tworzących klienty Ethereum ma również dedykowane, publiczne przestrzenie, w których można uzyskać wsparcie i zadawać pytania. - -### Klienty wykonawcze {#execution-clients} - -- [Geth](https://discord.gg/FqDzupGyYf) -- [Nethermind](https://discord.gg/YJx3pm8z5C) -- [Besu](https://discord.gg/p8djYngzKN) -- [Erigon](https://github.com/ledgerwatch/erigon/issues) - -### Klienty konsensusu {#consensus-clients} - -- [Prysm](https://discord.gg/prysmaticlabs) -- [Nimbus](https://discord.gg/nSmEH3qgFv) -- [Lighthouse](https://discord.gg/cyAszAh) -- [Teku](https://discord.gg/7hPv2T6) -- [Lodestar](https://discord.gg/aMxzVcr) - -Możesz także [ dowiedzieć się, jak uruchomić węzeł tutaj](/developers/docs/nodes-and-clients/run-a-node/). - -## Najczęściej zadawane pytania (FAQ) {#faq} - -#### Wysłałem ETH do niewłaściwego portfela {#wrong-wallet} - -Transakcja wysłana na Ethereum jest nieodwracalna. Niestety, jeśli wysłałeś ETH do niewłaściwego portfela, nie ma sposobu na odzyskanie tych środków. Żadna centralna organizacja, podmiot ani osoba nie jest właścicielem Ethereum, co oznacza, że nikt nie może cofnąć transakcji. Dlatego ważne jest, aby zawsze dokładnie sprawdzać transakcje przed ich wysłaniem. - -#### Jak mogę odebrać wygraną w konkursie Ethereum? {#giveaway-scam} - -Konkursy z nagrodami Ethereum to oszustwa mające na celu kradzież twojego ETH. Nie daj się skusić ofertom, które wydają się zbyt piękne, aby były prawdziwe — jeśli wyślesz ETH na adres konkursowy, nie otrzymasz nagrody i nie będziesz w stanie odzyskać swoich środków. - -[Więcej informacji na temat zapobiegania oszustwom](/security/#common-scams) - -#### Moja transakcja utknęła {#stuck-transaction} - -Transakcje na Ethereum mogą czasami utknąć, jeśli złożyłeś niższą opłatę transakcyjną niż jest to wymagane ze względu na zapotrzebowanie sieci. Wiele portfeli oferuje opcję ponownego przesłania tej samej transakcji z wyższą opłatą transakcyjną, aby umożliwić przetworzenie transakcji. Alternatywnie możesz anulować oczekującą transakcję, wysyłając transakcję na swój własny adres i używając tego samego nonce, co oczekująca transakcja. - -[Jak przyspieszyć lub anulować oczekującą transakcję w MetaMask](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) - -[Jak anulować oczekujące transakcje Ethereum](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) - -#### Jak wydobywać Ethereum? {#mining-ethereum} - -Kopanie Ethereum nie jest już dłużej możliwe. Wydobywanie zostało wyłączone, gdy Ethereum przeszło z proof-of-work na proof-of-stake. Teraz, zamiast górników, Ethereum ma walidatorów. Walidatorzy stakują ETH i otrzymują nagrody za zabezpieczenie sieci. - -#### Jak zostać stakerem/walidatorem? {#become-validator} - -Aby zostać walidatorem, musisz zestakować 32 ETH w kontrakcie depozytowym Ethereum i skonfigurować węzeł walidatora. Więcej informacji można znaleźć na naszych[ stronach poświęconych stakingowi](/staking) oraz na[ launchpadzie stakingu](https://launchpad.ethereum.org/). diff --git a/src/content/translations/pl/dao/index.md b/src/content/translations/pl/dao/index.md deleted file mode 100644 index c5135811985..00000000000 --- a/src/content/translations/pl/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: Zdecentralizowane autonomiczne organizacje (DAO) -description: Przegląd DAO na Ethereum -lang: pl -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: Reprezentacja DAO głosującego nad wnioskiem. -summaryPoint1: Społeczności należące do członków bez scentralizowanego przywództwa. -summaryPoint2: Bezpieczny sposób współpracy z nieznajomymi w internecie. -summaryPoint3: Bezpieczne miejsce, w którym można przeznaczyć środki na określoną sprawę. ---- - -## Czym są DAO? {#what-are-daos} - -DAO to kolektywnie zarządzana organizacja blockchain działająca na rzecz wspólnej misji. - -DAO pozwalają nam pracować z podobnie myślącymi ludźmi na całym świecie bez ufania życzliwemu liderowi, który zarządza funduszami lub operacjami. Nie ma dyrektora generalnego, który mógłby wydawać fundusze według kaprysu, ani dyrektora finansowego, który mógłby manipulować księgami. Zamiast tego zasady oparte na łańcuchu bloków wpisane w kod określają sposób działania organizacji i sposób wydawania funduszy. - -Mają wbudowane skarbce, do których nikt nie ma prawa dostępu bez zgody grupy. Decyzje opierają się na propozycjach i głosowaniu, zapewniając, że każdy w organizacji ma głos, a wszystko odbywa się w sposób przejrzysty w łańcuchu. - -## Dlaczego potrzebujemy DAO? {#why-dao} - -Założenie organizacji z kimś, kto obejmuje fundusze i pieniądze, wymaga dużego zaufania do ludzi, z którymi pracujesz. Jednak trudno jest zaufać komuś, z kim miało się kontakt tylko przez Internet. Z DAO nie musisz ufać nikomu innemu w grupie, tylko kodowi DAO, który jest w 100% przejrzysty i weryfikowalny przez każdego. - -To otwiera tak wiele nowych możliwości globalnej współpracy i koordynacji. - -### Porównanie {#dao-comparison} - -| DAO | Tradycyjna organizacja | -| -------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | -| Zwykle równa i w pełni zdemokratyzowana. | Zwykle hierarchiczna. | -| Wymagane głosowanie zespołu, by wprowadzić zmianę. | W zależności od struktury można jedynie zażądać zmian od stronnictwa lub zaproponować głosowanie. | -| Głosy zostały podliczone, a wynik wdrożony automatycznie, bez zaufanego pośrednika. | Jeśli głosowanie jest ważne, głosy są podliczane wewnętrznie, a wyniki głosowania muszą być obsługiwane ręcznie. | -| Oferowane usługi są obsługiwane automatycznie w sposób zdecentralizowany (np. dystrybucja funduszy filantropijnych). | Wymaga obsługi przez człowieka lub centralnie sterowanej automatyki, podatnej na manipulację. | -| Wszystkie działania są przejrzyste i w pełni publiczne. | Aktywność jest zazwyczaj niepubliczna. | - -### Przykłady DAO {#dao-examples} - -W celu rozwiania niepewności poniżej podano kilka przykładów użycia DAO: - -- Organizacja charytatywna – możesz przyjmować datki od kogokolwiek na świecie i głosować na cele, które chcesz sfinansować. -- Zbiorowa własność – możesz kupić aktywa fizyczne lub cyfrowe, a członkowie mogą głosować nad tym, jak je wykorzystać. -- Przedsięwzięcia i granty – można utworzyć fundusz typu venture capital, który gromadzi kapitał inwestycyjny i głosuje nad przedsięwzięciami, które wesprzeć. Zwrócone pieniądze mogłyby następnie zostać rozdzielone między członków DAO. - -## Jak działa DAO? {#how-daos-work} - -Podstawą DAO jest inteligentny kontrakt, który określa zasady organizacji i kontroluje skarbiec grupy. Gdy kontrakt zostanie wdrożony na Ethereum, nikt nie może zmienić zasad bez wcześniejszego głosowania. Jeśli ktoś spróbuje zrobić coś niezgodnego z zasadami i logiką kodu, to się nie uda. Dlatego, że skarbiec jest zdefiniowany przez inteligentny kontrakt, nikt nie może też wydać pieniędzy bez zgody grupy. Oznacza to, że DAO nie potrzebują organu centralnego. Zamiast tego to grupa podejmuje wspólne decyzje, a wydatki są automatycznie autoryzowane w momencie przejścia głosowania. - -Jest to możliwe, ponieważ inteligentne kontrakty są zabezpieczone przed ingerencją osób niepowołanych po ich wdrożeniu na Ethereum. Nie możesz po prostu edytować kodu (zasad DAO) niepostrzeżenie, ponieważ wszystko jest publiczne. - - - Więcej na temat inteligentnych kontraktów - - -## Ethereum i DAO {#ethereum-and-daos} - -Ethereum jest idealną podstawą dla DAO z wielu powodów: - -- Konsensus własny Ethereum jest rozproszony i ustalony na tyle dla organizacji, aby mogły zaufać sieci. -- Inteligentny kod kontraktu nie może być modyfikowany, kiedy już został wdrożony, nawet przez jego właścicieli. Pozwala to DAO na stosowanie zasad, z którymi został zaprogramowany. -- Inteligentne kontrakty mogą wysyłać/odbierać środki. Bez tego byłby ci potrzebny zaufany pośrednik do zarządzania funduszami grupy (DAO). -- Społeczność Ethereum okazała się bardziej oparta na współpracy niż na konkurencyjności, co pozwoliło na szybkie pojawienie się najlepszych praktyk i systemów wsparcia. - -## Zarządzanie DAO {#dao-governance} - -Istnieje wiele czynników związanych z zarządzaniem DAO, takich jak sposób głosowania i składania wniosków. - -### Oddelegowywanie {#governance-delegation} - -Oddelegowywanie w DAO jest wersją demokracji przedstawicielskiej. Posiadacze tokenów delegują głosy użytkownikom, którzy się nominują i zobowiązują do kierowania protokołem i pozostawania na bieżąco z informacjami. - -#### Znany przykład {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) – posiadacze tokenów ENS mogą delegować swoje głosy zaangażowanym członkom społeczności, aby ich reprezentowali. - -### Automatyczne zarządzanie transakcjami {#governance-example} - -W wielu DAO transakcje będą automatycznie wykonywane, jeśli kworum członków zagłosuje za potwierdzeniem. - -#### Znany przykład {#governance-example} - -[Nouns](https://nouns.wtf) – w Nouns DAO transakcja jest automatycznie realizowana, jeżeli kworum głosów zostanie osiągnięte i większość głosów zostanie przyjęta, o ile nie zostanie wetowana przez założycieli. - -### Wielostronne zarządzanie {#governance-example} - -Podczas gdy DAO mogą mieć tysiące członków posiadających prawo głosu, fundusze mogą żyć w portfelu udostępnianym przez 5–20 aktywnych członków społeczności, którzy są zaufani i zazwyczaj doxxed (publiczne tożsamości znane społeczności). Po głosowaniu sygnatariusze multisig wykonują wolę społeczności. - -## Prawa DAO {#dao-laws} - -W 1977 r. w Wyoming powstały pierwsze spółki z ograniczoną odpowiedzialnością (LLC), które chronią przedsiębiorców i ograniczają ich odpowiedzialność. Ostatnio wprowadziły one ustawę DAO, która ustanawia status prawny DAO. Obecnie w Wyoming, Vermont i na Wyspach Dziewiczych obowiązuje w pewnej formie prawo DAO. - -#### Znany przykład {#law-example} - -[CityDAO](https://citydao.io) – CityDAO użył prawa DAO Wyoming, aby kupić 40 hektarów ziemi w pobliżu Parku Narodowego Yellowstone. - -## Członkostwo DAO {#dao-membership} - -Istnieją różne modele członkostwa w DAO. Członkostwo może decydować o tym, w jaki sposób działa głosowanie i inne kluczowe części DAO. - -### Członkostwo oparte na tokenach {#token-based-membership} - -Zazwyczaj w pełni bezpodstawne, w zależności od użytego tokena. W większości te tokeny zarządzania mogą być przedmiotem handlu bez pozwolenia na zdecentralizowaną wymianę. Inne muszą być zdobywane poprzez zapewnienie płynności lub innego proof of work. Tak czy inaczej, posiadanie tokena zapewnia dostęp do głosowania. - -_Zwykle używane do zarządzania szerokimi zdecentralizowanymi protokołami i/lub tokenami._ - -#### Znany przykład {#token-example} - -[MakerDAO](https://makerdao.com) – token MakerDAO-a jest powszechnie dostępny na zdecentralizowanych giełdach i każdy może kupić siłę głosu w przyszłości protokołu Makera. - -### Członkostwo oparte na akcjach {#share-based-membership} - -DAO oparte na akcjach są bardziej dozwolone, ale nadal dość otwarte. Każdy przyszły członek może złożyć wniosek o przystąpienie do DAO, oferując zwykle hołd pewnej wartości w postaci tokenów lub pracy. Akcje reprezentują bezpośrednie prawo głosu i własność. Członkowie mogą w każdej chwili zrezygnować, zabierając ze sobą swój proporcjonalny udział w majątku. - -_Zwykle używane w przypadku bardziej zbliżonych organizacji, takich jak organizacje charytatywne, spółdzielnie pracy i kluby inwestycyjne. Może również zarządzać protokołami i tokenami._ - -#### Znany przykład {#share-example} - -[MolochDAO](http://molochdao.com/) – MolochDAO koncentruje się na finansowaniu projektów Ethereum. Wymagają one wniosku o członkostwo, tak aby grupa mogła ocenić, czy ma Pan/Pani kapitał i wiedzę specjalistyczną niezbędną do dokonania świadomych ocen dotyczących potencjalnych grantów. Nie można kupić dostępu do DAO na otwartym rynku. - -### Członkostwo oparte na reputacji {#reputation-based-membership} - -Reputacja stanowi dowód udziału i przyznania uprawnień głosu w DAO. W przeciwieństwie do tokena lub członkostwa opartego na współdzieleniu, DAO oparte na reputacji nie przenoszą własności na współtwórców. Reputacja nie może być kupowana, przekazywana lub delegowana; członkowie DAO muszą zdobywać reputację poprzez uczestnictwo. Głosowanie w łańcuchu jest bezpodstawne, a przyszli członkowie mogą swobodnie zgłaszać propozycje przystąpienia do DAO i prosić o uzyskanie reputacji i żetonów jako nagrody w zamian za ich wkład. - -_Zwykle używane do zdecentralizowanego rozwoju protokołów i aplikacji oraz zarządzania nimi, ale również dobrze dostosowane do różnych organizacji takich jak organizacje charytatywne, spółdzielnie pracy, kluby inwestycyjne itp._ - -#### Znany przykład {#reputation-example} - -[DXdao](https://DXdao.eth.link) – DXdao jest niezależną globalną zbiorowością społeczną, od 2019 r. tworzącą zdecentralizowane protokoły i aplikacje i zarządzającą nimi. Umożliwia ona koordynację i zarządzanie środkami finansowymi, opierając się na reputacji oraz holograficznym konsensusie, co oznacza, że nikt nie może wkupić się we wpływanie na ich przyszłość. - -## Dołącz / rozpocznij DAO {#join-start-a-dao} - -### Dołącz do DAO {#join-a-dao} - -- [Ethereum Społeczność DAOs](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [Lista DAOHaus z DAOs](https://app.daohaus.club/explore) -- [Tally.xyz lista DAOs](https://www.tally.xyz) - -### Rozpocznij DAO {#start-a-dao} - -- [Przywołaj DAO z DAOHaus](https://app.daohaus.club/summon) -- [Uruchom gubernatora DAO z Tally](https://www.tally.xyz/add-a-dao) -- [Utwórz DAO napędzane Aragonem](https://aragon.org/product) -- [Rozpocznij kolonię](https://colony.io/) -- [Utwórz DAO z holograficznym konsensusem DAO-stack](https://alchemy.daostack.io/daos/create) - -## Przeczytaj także {#further-reading} - -### Artykuły DAO {#dao-articles} - -- [Co to jest DAO?](https://aragon.org/dao) - [Aragon](https://aragon.org/) -- [Podręcznik DAO](https://daohandbook.xyz) -- [House of DAOs](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) -- [Co to jest DAO i co to jest?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) -- [Jak założyć społeczność cyfrową w oparciu o DAO?](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) -- [Co to jest DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) -- [Co to jest konsensus holograficzny?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) -- [DAO nie są przedsiębiorstwami, w których decentralizacja w organizacjach autonomicznych ma znaczenie dla Vitalik.](https://vitalik.ca/general/2022/09/20/daos.html) -- [DAO, DAC, DA i więcej: Niekompletny przewodnik po terminologii](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Ethereum Blog](https://blog.ethereum.org) - -### Materiały wideo {#videos} - -- [Czym jest DAO w kryptowalutach?](https://youtu.be/KHm0uUPqmVE) -- [Czy DAO może zbudować miasto?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/src/content/translations/pl/decentralized-identity/index.md b/src/content/translations/pl/decentralized-identity/index.md deleted file mode 100644 index 6758dd26b19..00000000000 --- a/src/content/translations/pl/decentralized-identity/index.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: Zdecentralizowana tożsamość -description: Czym jest zdecentralizowana tożsamość i dlaczego jest ważna? -lang: pl -template: use-cases -emoji: ":id:" -sidebarDepth: 2 -image: ../../../../assets/eth-gif-cat.png -summaryPoint1: W tradycyjnych systemach tożsamościwydawanie, utrzymywanie i kontrola identyfikatorów są scentralizowane. -summaryPoint2: Tożsamość zdecentralizowana usuwa zależność od scentralizowanych podmiotów trzecich. -summaryPoint3: Dzięki crypto użytkownicy, po raz kolejny, mają teraz narzędzia do wydawania i kontrolowania własnych identyfikatorów i zaświadczeń. ---- - -Tożsamość stanowi dzisiaj podstawę praktycznie każdego aspektu życia. Korzystając z usług internetowych, otwierając konto bankowe, głosując w wyborach, kupując nieruchomości, zatrudniając się — zawsze musisz udowodnić swoją tożsamość. - -Jednak tradycyjne systemy zarządzania tożsamością od dawna polegają na scentralizowanych pośrednikach, którzy wydają, przechowują i kontrolują Twoje identyfikatory oraz [poświadczenia](#what-are-attestations). Oznacza to, że nie możesz kontrolować informacji związanych z tożsamością ani decydować, kto ma dostęp do informacji umożliwiających identyfikację osoby (PII) i jak duży jest ten dostęp. - -Te problemy rozwiązują zdecentralizowane systemy tożsamości oparte na publicznych łańcuchach bloków, takie jak Ethereum. Tożsamość zdecentralizowana umożliwia jednostkom zarządzanie informacjami związanymi z ich tożsamością. Dzięki zdecentralizowanym rozwiązaniom w zakresie tożsamości możesz _samodzielnie_ tworzyć identyfikatory oraz żądać swoich poświadczeń i przechowywać je bez polegania na organach centralnych, takich jak dostawcy usług lub rządy. - -## Co to jest tożsamość? {#what-is-identity} - -Tożsamość oznacza odczuwanie przez jednostkę własnego „ja”, określonego przez unikalne cechy. Tożsamość odnosi się do bytu, _odrębnej_ istoty ludzkiej. Tożsamość może odnosić się również do innych podmiotów, takich jak organizacja czy władza. - -## Co to są identyfikatory? {#what-are-identifiers} - -Identyfikator jest informacją, która wskazuje określoną lub określone tożsamości. Najczęstsze identyfikatory to: - -- Nazwa -- Numer ubezpieczenia społecznego/numer identyfikacji podatkowej (NIP) -- Numer telefonu komórkowego -- Data i miejsce urodzenia -- Cyfrowe dane identyfikacyjne, np. adresy e-mail, nazwy użytkowników, awatary - -Te tradycyjne przykłady identyfikatorów są wydawane, przechowywane i kontrolowane przez jednostki centralne. Potrzebujesz pozwolenia od swojego rządu, aby zmienić swoje imię i nazwisko, a od platformy mediów społecznościowych, aby zmienić swój identyfikator. - -## Co to są atesty? {#what-are-attestations} - -Poświadczenie jest oświadczeniem złożonym przez jeden podmiot na temat innego podmiotu. Jeśli mieszkasz w Stanach Zjednoczonych, prawo jazdy wydane przez departament pojazdów mechanicznych (jeden podmiot) potwierdza, że inny podmiot (Ty) jest uprawniony do prowadzenia samochodu. - -Poświadczenia to nie to samo, co identyfikatory. Poświadczenia _zawierają_ identyfikatory odnoszące się do określonej tożsamości oraz oświadczenie dotyczące atrybutu związanego z tą tożsamością. Tak więc prawo jazdy zawiera identyfikatory (nazwisko, data urodzenia, adres), ale jest również poświadczeniem o prawie do prowadzenia pojazdu. - -### Co to są zdecentralizowane identyfikatory? {#what-are-decentralized-identifiers} - -Tradycyjne identyfikatory, takie jak nazwa prawna lub adres e-mail, zależą od osób trzecich – rządów czy dostawców poczty elektronicznej. Decentralizowane identyfikatory (DID) są inne — nie są wydawane, zarządzane ani kontrolowane przez jakikolwiek podmiot centralny. - -Zdecentralizowane identyfikatory są wydawane, przechowywane i kontrolowane przez jednostki. [Konto Ethereum](/developers/docs/accounts/) jest przykładem zdecentralizowanego identyfikatora. Możesz utworzyć tyle kont, ile chcesz, nie pytając nikogo o zgodę i bez konieczności przechowywania ich w centralnym rejestrze. - -Zdecentralizowane identyfikatory są przechowywane w rozproszonych księgach (łańcuchach bloków) lub sieciach peer-to-peer. Dzięki temu DID-y są [globalnie unikalne, rozwiązywalne z wysoką dostępnością i kryptograficznie weryfikowalne](https://w3c-ccg.github.io/did-primer/). Zdecentralizowany identyfikator może być powiązany z różnymi podmiotami: z pojedynczymi osobami, organizacjami lub instytucjami rządowymi. - -## Co sprawia, że zdecentralizowane identyfikatory są możliwe? {#what-makes-decentralized-identifiers-possible} - -### 1. Infrastruktura klucza publicznego (PKI) {#public-key-infrastructure} - -Infrastruktura klucza publicznego (PKI) to środek bezpieczeństwa informacji, który generuje dla podmiotu [klucz publiczny](/glossary/#public-key) i [klucz prywatny](/glossary/#private-key). Kryptografia klucza publicznego jest wykorzystywana w sieciach łańcuchów bloków do uwierzytelniania tożsamości użytkowników i udawadniania własności zasobów cyfrowych. - -Niektóre zdecentralizowane identyfikatory, takie jak konto Ethereum, mają klucze publiczne i prywatne. Klucz publiczny identyfikuje kontrolera konta, a klucze prywatne mogą podpisywać i odszyfrowywać wiadomości dla tego konta. PKI zapewnia dowody potrzebne do uwierzytelniania podmiotów i zapobiegania podszywaniu się i używaniu fałszywych tożsamości, wykorzystując [podpisy kryptograficzne](https://andersbrownworth.com/blockchain/public-private-keys/) do weryfikacji wszystkich twierdzeń. - -### 2. Zdecentralizowane magazyny danych {#decentralized-datastores} - -Łańcuch bloków służy jako weryfikowalny rejestr danych: otwarte, niezaufane i zdecentralizowane repozytorium informacji. Istnienie publicznych łańcuchów bloków eliminuje potrzebę przechowywania identyfikatorów w scentralizowanych rejestrach. - -Aby potwierdzić ważność zdecentralizowanego identyfikatora, można wyszukać w łańcuchu bloków powiązany klucz publiczny. Jest to istotna różnica w porównaniu do tradycyjnych identyfikatorów, które wymagają uwierzytelniania stron trzecich. - -## W jaki sposób zdecentralizowane identyfikatory i poświadczenia umożliwiają zdecentralizowaną tożsamość? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} - -Zdecentralizowana tożsamość zakłada, że informacje związane z tożsamością powinny być samodzielnie kontrolowane, prywatne i przenośne, a zdecentralizowane identyfikatory i poświadczenia są podstawowymi elementami składowymi. - -W kontekście zdecentralizowanej tożsamości poświadczenia (znane również jako [weryfikowalne dane uwierzytelniające](https://www.w3.org/TR/vc-data-model/)) to odporne na manipulacje, możliwe do zweryfikowania kryptograficzne oświadczenia wydawcy. Każde poświadczenie lub możliwe do zweryfikowania dane uwierzytelniające podmiot (np. organizację) jest powiązane z odpowiednim identyfikatorem DID. - -Ponieważ identyfikatory DID są przechowywane w łańcuchu bloków, każdy może zweryfikować prawidłowość poświadczenia poprzez porównanie z DID wystawcy na Ethereum. Zasadniczo łańcuch bloków Ethereum działa jak globalny katalog umożliwiający weryfikację identyfikatorów DID powiązanych z określonymi podmiotami. - -Dzięki zdecentralizowanym identyfikatorom poświadczenia są niezależne i weryfikowalne. Nawet jeśli wydawca już nie istnieje, posiadacz zawsze ma dowód pochodzenia i prawidłowości poświadczenia. - -Zdecentralizowane identyfikatory mają również kluczowe znaczenie dla ochrony prywatności danych osobowych, z względu na zdecentralizowaną tożsamość. Jeśli na przykład osoba fizyczna przedstawia dowód poświadczenia (prawo jazdy), strona weryfikująca nie musi sprawdzać prawidłowości informacji w dowodzie. Zamiast tego weryfikator potrzebuje jedynie gwarancji kryptograficznych autentyczności poświadczenia i tożsamości organizacji, która je wydała, aby ustalić, czy dowód jest prawidłowy. - -## Rodzaje poświadczeń w zdecentralizowanej tożsamości {#types-of-attestations-in-decentralized-identity} - -Sposób, w jaki informacje o poświadczeniach są przechowywane i pobierane w ekosystemie tożsamości opartym na Ethereum, różni się od tradycyjnego zarządzania tożsamościami. Oto przegląd różnych podejść do wydawania, przechowywania i weryfikacji poświadczeń w zdecentralizowanych systemach tożsamości: - -### Poświadczenia poza łańcuchem {#off-chain-attestations} - -Jedną z obaw związanych z przechowywaniem poświadczeń w łańcuchu jest to, że mogą one zawierać informacje, które osoby fizyczne chcą zachować w tajemnicy. Publiczny charakter łańcucha bloków Ethereum sprawia, że jest on nieprzydatny do przechowywania takich poświadczeń. - -Rozwiązaniem jest wydawanie poświadczeń przechowywanych przez użytkowników poza łańcuchem, w portfelach cyfrowych, ale podpisanych identyfikatorem DID wydawcy przechowywanym w łańcuchu. Te poświadczenia są zakodowane jako [tokeny sieciowe JSON](https://en.wikipedia.org/wiki/JSON_Web_Token) i zawierają cyfrowy podpis wystawcy, co umożliwia łatwą weryfikację oświadczeń poza łańcuchem. - -Oto hipotetyczny scenariusz opisujący, jak działają poświadczenia poza łańcuchem: - -1. Uniwersytet (wydawca) generuje poświadczenie (cyfrowy certyfikat akademicki), podpisuje je swoimi kluczami i wydaje Bobowi (właścicielowi tożsamości). - -2. Bob ubiega się o pracę i chce udowodnić swoje kwalifikacje akademickie pracodawcy, dlatego udostępnia poświadczenie z mobilnego portfela. Przedsiębiorstwo (weryfikator) może następnie potwierdzić prawidłowość poświadczenia poprzez sprawdzenie DID wystawcy (tj. jego klucza publicznego na Ethereum). - -### Poświadczenia poza łańcuchem, z trwałym dostępem {#offchain-attestations-with-persistent-access} - -W takim układzie poświadczenia są przekształcane w pliki JSON i przechowywane poza łańcuchem (najlepiej na platformie [zdecentralizowanej pamięci masowej w chmurze](/developers/docs/storage/), takiej jak IPFS lub Swarm). Jednak plik JSON jest przechowywany w łańcuchu i powiązany z DID za pośrednictwem rejestru w łańcuchu. Powiązanym DID może być albo wystawca poświadczenia, albo odbiorca. - -Takie podejście umożliwia uzyskiwanie przez poświadczenia trwałości opartej na łańcuchu bloków, przy jednoczesnym zachowaniu zaszyfrowanych i weryfikowalnych informacji o oświadczeniach. Umożliwia to również selektywne ujawnienie, ponieważ posiadacz klucza prywatnego może odszyfrować informacje. - -### Poświadczenia w łańcuchu {#onchain-attestations} - -Poświadczenia w łańcuchu są przechowywane w [inteligentnych kontraktach](/developers/docs/smart-contracts/) w łańcuchu bloków Ethereum. Inteligentny kontrakt (działający jako rejestr) mapuje poświadczenie do odpowiedniego zdecentralizowanego identyfikatora w łańcuchu (klucza publicznego). - -Oto przykład pokazujący, w jaki sposób poświadczenia mogą działać w praktyce: - -1. Firma (XYZ Corp) planuje sprzedać akcje własnościowe za pomocą inteligentnego kontraktu, ale szuka tylko nabywców, którzy przeszli podstawową weryfikację. - -2. XYZ Corp może zlecić firmie wykonującej podstawowe weryfikacje wystawianie poświadczeń w łańcuchu na Ethereum. To poświadczenie potwierdza, że dana osoba przeszła podstawową weryfikację, ale bez ujawniania jakichkolwiek danych osobowych. - -3. Inteligentny kontrakt sprzedaży akcji może sprawdzić kontrakt rejestracji dla tożsamości sprawdzanych nabywców i określić, kto jest uprawniony do zakupu akcji. - -### Tokeny Soulbound i tożsamość {#soulbound} - -[Tokeny Soulbound](https://vitalik.ca/general/2022/01/26/soulbound.html) (niezbywalne NFT) mogą być używane do zbierania informacji unikatowych dla określonego portfela. W ten sposób tworzy się unikatową w łańcuchu tożsamość związaną z określonym adresem Ethereum, która może obejmować tokeny reprezentujące osiągnięcia (np. ukończenie określonego kursu online lub przekroczenie progowego wyniku w grze) albo zaangażowanie w działania społeczności. - -## Zalety zdecentralizowanej tożsamości {#benefits-of-decentralized-identity} - -1. Zdecentralizowana tożsamość zwiększa indywidualną kontrolę nad informacjami identyfikacyjnymi. Zdecentralizowane identyfikatory i poświadczenia można weryfikować bez polegania na scentralizowanych organach i usługach osób trzecich. - -2. Rozwiązania zdecentralizowanej tożsamości ułatwiają niezawodną, bezproblemową i chroniącą prywatność metodę weryfikacji i zarządzania tożsamością użytkownika. - -3. Zdecentralizowana tożsamość wykorzystuje technologię łańcucha bloków, która tworzy zaufanie między różnymi stronami i zapewnia gwarancje kryptograficzne potwierdzające prawidłowość poświadczeń. - -4. Zdecentralizowana tożsamość sprawia, że dane identyfikacyjne są przenośne. Użytkownicy przechowują poświadczenia i identyfikatory w portfelu mobilnym i mogą dzielić się z wybraną przez siebie stroną. Zdecentralizowane identyfikatory i poświadczenia nie są zablokowane w bazie danych organizacji wydającej. - -5. Zdecentralizowana tożsamość powinna dobrze funkcjonować z powstającymi technologiami o zerowej wiedzy, które umożliwią jednostkom udowodnienie, że są właścicielami lub zrobiły coś, nie ujawniając, co to jest. Mógłby to być znakomity sposób na połączenie zaufania i prywatności w takich zastosowaniach jak głosowanie. - -6. Zdecentralizowana tożsamość umożliwia mechanizmom obrony przed atakami typu Sybil identyfikację, kiedy jeden człowiek udaje wielu ludzi, aby grać lub spamować jakiś system. - -## Sposoby wykorzystywania zdecentralizowanej tożsamości {#decentralized-identity-use-cases} - -Zdecentralizowana tożsamość ma wiele potencjalnych zastosowań: - -### 1. Uniwersalne logowania {#universal-dapp-logins} - -Zdecentralizowana tożsamość może pomóc w zastąpieniu logowania opartego na hasłach [zdecentralizowanym uwierzytelnianiem](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). Dostawcy usług mogą wydawać użytkownikom poświadczenia, które można przechowywać w portfelu Ethereum. Przykładowym poświadczeniem może być token [NFT](/nft/) przyznający posiadaczowi dostęp do społeczności internetowej. - -Funkcja [logowania z Ethereum](https://login.xyz/) umożliwiłaby wtedy serwerom potwierdzenie konta Ethereum użytkownika i pobranie wymaganego poświadczenia z adresu jego konta. Oznacza to, że użytkownicy mogą uzyskać dostęp do platform i stron internetowych bez konieczności zapamiętywania długich haseł, co znacząco poprawia komfort działania w Internecie. - -### 2. Uwierzytelnianie KYC {#kyc-authentication} - -Korzystanie z wielu usług online wymaga od osób fizycznych dostarczenia poświadczeń i uwierzytelnień, takich jak prawo jazdy lub dowód osobisty. Podejście to jest jednak problematyczne, ponieważ informacje o użytkownikach prywatnych mogą być zagrożone, a usługodawcy nie mogą zweryfikować autentyczności poświadczenia. - -Zdecentralizowana tożsamość umożliwia firmom pominięcie konwencjonalnych procesów [KYC (Know-Your-Customer)](https://en.wikipedia.org/wiki/Know_your_customer) i uwierzytelnianie tożsamości użytkowników za pomocą weryfikowalnych poświadczeń. Zmniejsza to koszty zarządzania tożsamością i zapobiega stosowaniu fałszywej dokumentacji. - -### 3. Głosowanie i społeczności internetowe {#voting-and-online-communities} - -Głosowanie online i media społecznościowe to dwie nowatorskie aplikacje z wykorzystaniem zdecentralizowanej tożsamości. Systemy głosowania on-line są podatne na manipulacje, zwłaszcza jeśli złośliwe podmioty tworzą fałszywe tożsamości w celu oddania głosu. Zwracanie się do osób fizycznych o przedstawienie poświadczeń w łańcuchu może poprawić integralność procesów głosowania online. - -Zdecentralizowana tożsamość może pomóc w tworzeniu społeczności internetowych, które są wolne od fałszywych kont. Na przykład każdy użytkownik może być zmuszony do uwierzytelniania swojej tożsamości za pomocą systemu identyfikacji w łańcuchu, takiego jak usługa Ethereum Name Service, zmniejszając możliwość tworzenia botów. - -### 4. Ochrona przed atakami typu Sybil {#sybil-protection} - -Ataki typu Sybil polegają na tym, że pojedynczy człowiek oszukuje system, aby ten mylnie uznał, że jest wieloma osobami, w celu zwiększenia swoich wpływów. [Aplikacje przyznające dotacje](https://gitcoin.co/grants/), które używają [głosowania kwadratowego](https://www.radicalxchange.org/concepts/plural-voting/), są podatne na ataki typu Sybil, ponieważ wartość dotacji wzrasta, gdy więcej osób na nią głosuje, zachęcając użytkowników do podzielenia swojego wkładu na wiele tożsamości. Zdecentralizowane tożsamości pomagają temu zapobiec, zwiększając obciążenie każdego uczestnika, aby udowodnić, że naprawdę jest człowiekiem, choć często bez konieczności ujawniania konkretnych informacji prywatnych. - -## Zastosowania zdecentralizowanej tożsamości {#use-decentralized-identity} - -Istnieje wiele ambitnych projektów wykorzystujących Ethereum jako podstawę zdecentralizowanych rozwiązań w zakresie tożsamości: - -- **[Ethereum Name Service (ENS)](https://ens.domains/)** — _zdecentralizowany system nazewnictwa w łańcuchu, odczytywalnych maszynowo, takich jak adresy portfeli Ethereum, skróty treści i metadane._ -- **[SpruceID](https://www.spruceid.com/)** — _zdecentralizowany projekt tożsamości, który pozwala użytkownikom kontrolować tożsamość cyfrową za pomocą kont Ethereum i profili ENS, zamiast polegać na usługach stron trzecich._ -- **[Ethereum Attestation Service (EAS)](https://attest.sh/)** — _ Zdecentralizowany ledger/protokół umożliwiający tworzenie poświadczeń o dowolnym elemencie w łańcuchu lub poza nim._ -- **[Proof of Humanity (lub PoH)](https://www.proofofhumanity.id)** — _ system weryfikacji tożsamości społecznościowej oparty na Ethereum._ -- **[BrightID](https://www.brightid.org/)** — _sieć zdecentralizowanych tożsamości społecznościowych typu open source. Jej celem jest zreformowanie weryfikacji tożsamości poprzez tworzenie i analizę wykresu społecznego._ -- **[Proof-of-personhood Passport](https://proofofpersonhood.com/)** — _zdecentralizowany agregator tożsamości cyfrowych._ - -## Dalsza lektura {#further-reading} - -### Artykuły {#articles} - -- [Wykorzystanie łańcucha bloków: łańcuch bloków w tożsamości cyfrowej](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ -- [Co to jest Ethereum ERC725? Samodzielne zarządzanie tożsamością w łańcuchu bloków](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Sam Town_ -- [Jak łańcuch bloków może rozwiązać problem cyfrowej tożsamości](https://time.com/6142810/proof-of-humanity/) — _Andrew R. Chow_ -- [Co to jest zdecentralizowana tożsamość i dlaczego warto się nią zajmować?](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ - -### Materiały wideo {#videos} - -- [Zdecentralizowana tożsamość (oraz dodatkowa sesja transmisji na żywo)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _świetny film szkoleniowy na temat zdecentralizowanej tożsamości autorstwa Andreasa Antonopoulosa._ -- [Logowanie za pomocą Ethereum i zdecentralizowanej tożsamości za pomocą Ceramic, IDX, React i 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _samouczek YouTube pokazujący, jak zbudować system zarządzania tożsamością do tworzenia, odczytywania i aktualizowania profilu użytkownika przy użyciu portfela Ethereum autorstwa Nadera Dabita._ -- [BrightID — zdecentralizowana tożsamość w Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _odcinek podcastu Bankless omawiający BrightID, zdecentralizowane rozwiązanie tożsamości dla Ethereum._ -- [Internet poza łańcuchem: zdecentralizowana tożsamość i weryfikowalne dane uwierzytelniające](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — prezentacja EthDenver 2022 autorstwa Evina McMullena. - -### Społeczności {#communities} - -- [Sojusz ERC-725 na GitHub](https://github.com/erc725alliance) — _zwolennicy standardu ERC725 do zarządzania tożsamością w łańcuchu bloków Ethereum._ -- [Serwer Discord SpruceID](https://discord.com/invite/Sf9tSFzrnt) — _społeczność dla entuzjastów i programistów pracujących nad logowaniem za pomocą Ethereum._ -- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _społeczność programistów uczestniczących w budowaniu struktury weryfikowalnych danych dla aplikacji._ diff --git a/src/content/translations/pl/defi/index.md b/src/content/translations/pl/defi/index.md deleted file mode 100644 index 13d9331f832..00000000000 --- a/src/content/translations/pl/defi/index.md +++ /dev/null @@ -1,352 +0,0 @@ ---- -title: Zdecentralizowane finanse (DeFi) -description: Przegląd DeFi na Ethereum -lang: pl -template: use-cases -emoji: ":money_with_wings:" -image: ../../../../assets/use-cases/defi.png -alt: Logo ETH wykonane z klocków lego. -sidebarDepth: 2 -summaryPoint1: Globalna, otwarta alternatywa dla obecnego systemu finansowego. -summaryPoint2: Produkty, które umożliwiają pożyczanie, oszczędzanie, inwestowanie, handlowanie i nie tylko. -summaryPoint3: Technologia oparta na open source, przy pomocy której każdy może programować. ---- - -DeFi jest otwartym globalnym systemem finansowym stworzonym dla ery Internetu — alternatywą dla obecnego systemu, który jest nieprzejrzysty, ściśle kontrolowany oraz utrzymywany przez dziesięciolecia z wykorzystaniem przestarzałej infrastruktury i procesów. DeFi umożliwia użytkownikom kontrolę i śledzenie swoich pieniędzy. Zapewnia dostęp do globalnych rynków i alternatywę dla lokalnej waluty i opcji bankowych. Produkty DeFi udostępniają usługi finansowe każdemu, kto ma dostęp do Internetu. W dużej mierze należą do swoich użytkowników i są przez nich utrzymywane. Do tej pory przez aplikacje DeFi przepłynęły kryptowaluty o wartości kilkudziesięciu miliardów dolarów i ta kwota rośnie z każdym dniem. - -## Co to jest DeFi? {#what-is-defi} - -DeFi to określenie zestawu finansowych produktów i usług, które są otwarte dla każdego, kto ma dostęp do Ethereum — wystarczy połączenie z Internetem. Dzięki DeFi rynki są zawsze otwarte i nie ma scentralizowanych władz, które mogłyby zablokować płatności lub odmówić dostępu do czegokolwiek. Usługi, które wcześniej były powolne i narażone na ryzyko błędu ludzkiego, teraz są automatyczne i bezpieczniejsze, ponieważ są obsługiwane przez kod, który każdy może sprawdzić i przeanalizować. - -Jest tam kwitnąca gospodarka kryptowalutowa oSearch TMut, gdzie można pożyczać, kredytować, stosować długo- i krótkoterminowo, zarabiać na odsetkach i nie tylko. Argentyńczycy posługujący się kryptowalutami wykorzystali DeFi, aby uciec przed paraliżującą inflacją. Firmy zaczęły płacić swoim pracownikom wynagrodzenie, obliczając je w czasie rzeczywistym. Niektórzy ludzie biorą oraz spłacają pożyczki warte nawet miliony dolarów bez konieczności osobistej identyfikacji. - - - -## DeFi a tradycyjne finanse {#defi-vs-tradfi} - -Jednym z najlepszych sposobów na dostrzeżenie potencjału DeFi jest zrozumienie istniejących dziś problemów. - -- Wielu ludzi nie ma możliwości korzystania z bankowości i co za tym idzie — z usług finansowych. -- Brak dostępu do usług finansowych może uniemożliwić znalezienie zatrudnienia. -- Usługodawcy finansowi mogą zablokować Twoje wynagrodzenie. -- Ukrytą opłatą za usługi finansowe są Twoje dane osobowe. -- Rządy i scentralizowane instytucje mogą zamknąć rynki finansowe w dowolnym momencie. -- Godziny handlu są często ograniczone do godzin pracy poszczególnych stref czasowych. -- Przelewy pieniężne mogą trwać nawet kilka dni z powodu procesów zatwierdzania przez pracowników danej instytucji. -- Za korzystanie z usług finansowych płacimy prowizję, którą instytucje pobierają na potrzeby swojego funkcjonowania. - -### Porównanie {#defi-comparison} - -| DeFi | Tradycyjne finanse | -| -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | -| Twoje pieniądze rzeczywiście należą do Ciebie. | Twoje pieniądze są przetrzymywane przez korporacje. | -| Kontrolujesz, gdzie trafiają Twoje pieniądze i jak je wydajesz. | Musisz ufać firmom, że rozsądnie zarządzają Twoimi pieniędzmi i np. nie pożyczają ich ryzykownym kredytobiorcom. | -| Przelewy środków trwają kilka minut. | Płatności mogą trwać kilka dni z powodu czynnika ludzkiego. | -| Transakcje są pseudoanonimowe. | Cała aktywność finansowa jest ściśle związana z Twoją tożsamością. | -| Usługi DeFi są dostępne dla każdego. | Musisz złożyć wniosek o korzystanie z usług finansowych. | -| Rynki są zawsze otwarte. | Rynki zamykają się, gdyż do ich obsługi potrzebni są ludzi, a oni potrzebują przerw. | -| Wszystko opiera się na transparentności — każdy ma wgląd do kodu źródłowego i może sprawdzić, jak dokładnie działa system. | Instytucje finansowe utajniają historie swojej działalności: nie możesz sprawdzić, komu pożyczają, ile, kiedy, jak zarządzają aktywami itp. | - - - Odkryj aplikacje DeFi - - -## Wszystko zaczęło się od bitcoina... {#bitcoin} - -Bitcoin był pod wieloma względami pierwszą aplikacją DeFi. Bitcoin pozwala naprawdę posiadać i kontrolować wartość oraz wysyłać ją w dowolne miejsce na świecie. Jest to możliwe dzięki temu, że duża liczba osób, które sobie nie ufają, może uzgodnić księgę rachunkową bez potrzeby korzystania z zaufanego pośrednika. Bitcoin jest otwarty dla każdego i nikt nie ma prawa zmienić zasad jego działania. Zasady funkcjonowania bitcoinów, takie jak otwartość i transparentność, są wpisane do kodu źródłowego. Inaczej jest w przypadku tradycyjnych finansów, gdzie rządy mogą dodrukowywać pieniądze, co dewaluuje Twoje oszczędności, a instytucje mogą zamknąć rynki. - -Ethereum opiera się na tych zasadach. Podobnie jak w przypadku Bitcoin, są one ściśle określone i każdy może się z nimi zapoznać. Ale powoduje to również, że te cyfrowe pieniądze można programować za pomocą [inteligentnych kontraktów](/glossary#smart-contract), dzięki czemu można robić z nimi znacznie więcej niż tylko je przechowywać i wysyłać wartości. - - - -## Programowalne pieniądze {#programmable-money} - -To brzmi dziwnie... „Dlaczego mam programować moje pieniądze?” W ekosystemie Ethereum jest to jednak domyślna cecha wszystkich tokenów. Każdy może wprowadzić do systemu płatności dowolną logikę. Takie rozwiązanie nie tylko zapewnia bezpieczeństwo środków i ich kontrolę, jak w przypadku Bitcoin, ale także dostęp do usług finansowych. Umożliwia również używanie kryptowalut do działań niemożliwych w przypadku Bitcoin: pożyczania i bycia pożyczkodawcą, planowania płatności w czasie, inwestowania w fundusze i znacznie więcej. - - -
Zobacz nasze sugerowane aplikacje DeFi i przetestuj je, jeśli nie znasz jeszcze ekosystemu Ethereum.
- - Eksploruj aplikacje DeFi - -
- -## Co mogę robić w DeFi? {#defi-use-cases} - -Istnieje zdecentralizowana alternatywa dla większości usług finansowych. Ethereum oferuje również możliwość tworzenia całkowicie nowych produktów finansowych. Lista stale się powiększa. - -- [Wysyłanie pieniędzy do każdego zakątka świata](#send-money) -- [Udostępnianie środków na całym świecie](#stream-money) -- [Dostęp do stabilnych walut](#stablecoins) -- [Pożyczanie środków z zabezpieczeniem](#lending) -- [Pożyczanie bez zabezpieczenia](#flash-loans) -- [Zarabianie odsetek w kryptowalutach](#saving) -- [Handlowanie tokenami](#swaps) -- [Rozszerzenie portfolio inwestycyjnego](#investing) -- [Finansowanie swoich pomysłów](#crowdfunding) -- [Kupowanie ubezpieczenia](#insurance) -- [Zarządzanie swoim portfolio](#aggregators) - - - -### Wysyłaj pieniądze na drugi koniec świata niemal natychmiast {#send-money} - -Jako łańcuch bloków, platforma Ethereum jest stworzona do bezpiecznego przesyłania transakcji o globalnym zasięgu. Podobnie jak Bitcoin, Ethereum ułatwia wysyłanie pieniędzy na całym świecie, podobnie jak wysyłanie wiadomości e-mail. Wystarczy podać tylko nazwę odbiorcy w systemie [ENS](/nft/#nft-domains) (np. bob.eth) lub adres konta i zatwierdzić transakcję w swoim portfelu, a środki po kilku minutach (zazwyczaj) będą zaksięgowane u odbiorcy. Do wysyłania i odbierania płatności, potrzebny jest [portfel](/wallets/). - - - Zobacz d-aplikacje do płatności - - -#### Wysyłaj pieniądze do każdego zakątka świata... {#stream-money} - -Wysyłaj pieniądze na platformie Ethereum. Możesz zapłacić komuś w ciągu kilku sekund, dając mu dostęp do swoich pieniędzy, kiedy tylko będzie potrzebować. Albo wypożyczyć np. schowek lub skuter elektryczny niemal natychmiast. - -A jeśli nie chcesz używać do tego [ETH](/eth/), z uwagi na jego wartość bądź wahania kursowe, możesz użyć walut alternatywnych, nazywanych stabilnymi kryptowalutami. - - - -### Dostęp do stabilnych walut {#stablecoins} - -Zmienność kryptowalut jest problemem dla wielu produktów finansowych i ogólnych wydatków. W społeczności DeFi rozwiązaniem tego problemu są stabilne kryptowaluty. Ich wartość jest powiązana z innym aktywem, zazwyczaj z popularną walutą, taką jak dolar. - -Kryptowaluty takie jak Dai lub USDC mają wartość, której wahania pozostają w granicach kilku centów. To sprawia, że są idealne do zarabiania lub handlu detalicznego. Wiele osób w Ameryce Łacińskiej wykorzystywało monety stabilne jako sposób ochrony swoich oszczędności w czasach wielkiej niepewności w walutach emitowanych przez rząd. - - - Więcej o stabilnych kryptowalutach - - - - -### Pożyczanie {#lending} - -Pożyczanie pieniędzy od zdecentralizowanych pożyczkodawców odbywa się w dwóch głównych wariantach. - -- Peer-to-peer, co oznacza, że kredytobiorca będzie pożyczał bezpośrednio od konkretnego kredytodawcy. -- Na podstawie grupy, w której kredytodawcy przekazują środki (płynność) do puli kredytobiorców, od której kredytobiorcy mogą pożyczyć. - - - Sprawdź d-apliakcje pożyczkowe - - -Korzystanie ze zdecentralizowanego pożyczkodawcy ma wiele zalet... - -#### Pożyczki z ochroną prywatności {#borrowing-privacy} - -Dzisiaj udzielanie i pożyczanie pieniędzy opiera się na poznaniu interesantów. Zanim banki udzielą pożyczki, muszą wiedzieć, czy kredytobiorca będzie w stanie ją spłacić. - -Decentralizacja kredytów nie wymaga identyfikacji żadnej ze stron. Zamiast tego kredytobiorca musi zastawić zabezpieczenie, które pożyczkodawca otrzyma automatycznie, jeżeli pożyczka nie zostanie spłacona. Niektórzy kredytodawcy akceptują nawet NFT jako zabezpieczenie. Tokeny NFT są aktem własności unikatowego składnika majątku, takiego jak obraz. [Więcej o NFT](/nft/) - -Umożliwia to pożyczanie pieniędzy bez procedur bankowych ani przekazywania prywatnych danych. - -#### Dostęp do globalnych funduszy {#access-global-funds} - -Korzystanie ze zdecentralizowanego pożyczkodawcy umożliwia dostęp do funduszy zdeponowanych w dowolnym miejscu na świecie, nie tylko do lokalnych środków z wybranego banku czy instytucji. Dzięki temu pożyczki są łatwiej dostępne i lepiej oprocentowane. - -#### Efektywność podatkowa {#tax-efficiencies} - -Pożyczki mogą dać Ci dostęp do potrzebnych środków bez konieczności sprzedaży ETH (zdarzenie podlegające opodatkowaniu). Zamiast tego możesz użyć ETH jako zabezpieczenia kredytu na stablecoiny. Pozwala to utrzymać płynność finansową i zachować ETH. Stabilne kryptowaluty to tokeny, które są znacznie lepsze, kiedy potrzebujesz gotówki, ponieważ nie zmieniają wartości jak np. ETH. [Więcej o stabilnych kryptowalutach](#stablecoins) - -#### Pożyczki błyskawiczne {#flash-loans} - -Pożyczki błyskawiczne to bardziej eksperymentalna forma zdecentralizowanego kredytu, która umożliwia pożyczanie bez zabezpieczenia ani dostarczania jakichkolwiek danych osobowych. - -Obecnie ta forma pożyczek nie jest szeroko dostępna dla osób bez przygotowania technicznego, ale być może forma ta będzie w przyszłości dostępna dla wszystkich. - -Pożyczki błyskawiczne działają na zasadzie zaciągnięcia i spłaty w tej samej, jednej transakcji. Jeżeli spłata będzie niemożliwa, transakcja zostanie wycofana i stan portfeli będzie taki, jakby jej w ogóle nie było. - -Fundusze, które są często wykorzystywane, znajdują się w pulach płynności (duże pule funduszy wykorzystywane do zaciągania pożyczek). Jeżeli w danym momencie nie są używane, ktoś może je pożyczyć, wykorzystać i spłacić zobowiązania dosłownie w tym samym czasie. - -Oznacza to wiele logiki biznesowej, która musi być zawarta w pojedynczej transakcji. Prostym przykładem może być ktoś, kto używa pożyczki błyskawicznej, aby pożyczyć jak najwięcej aktywów po jednej cenie, i sprzedać je na innej giełdzie, gdzie cena jest wyższa. - -Tak więc w ramach jednej transakcji dzieje się to: - -- Pożyczasz ilość X zasobu $asset w cenie 1,00 USD na giełdzie A. -- Sprzedajesz ilość X zasobu $asset na giełdzie B po 1,10 USD. -- Spłacasz zobowiązanie na giełdzie A. -- Zatrzymujesz zysk dla siebie, opłacając koszty transakcyjne. - -Gdyby podaż na giełdzie B nagle spadła i użytkownik nie byłby w stanie kupić wystarczająco dużo, aby pokryć pierwotną pożyczkę, transakcja po prostu zakończyłaby się niepowodzeniem. - -Aby móc dokonać transakcji z powyższego przykładu to w tradycyjnym świecie finansowym, potrzebna jest ogromna kwota pieniędzy. Takie strategie finansowe są dostępne tylko dla posiadaczy ogromnego majątku. Pożyczki błyskawiczne pokazują, że w przyszłości takie strategie będą dostępne nie tylko dla najbogatszych uczestników rynku. - -[Więcej o pożyczkach błyskawicznych](https://aave.com/flash-loans/) - - - -### Zacznij oszczędzać za pomocą kryptowalut {#saving} - -#### Pożyczanie innym {#lending} - -Możesz zacząć zarabiać od swoich kryptowalut odsetki, które są naliczane w czasie rzeczywistym. Stopy zwrotu z kryptowalut są znacznie wyższe, niż te, które oferuje bank (jeżeli masz tyle szczęścia, by mieć do nich dostęp). Spójrz na poniższy przykład: - -- Możesz zdeponować swoje 100 Dai, [stabilną kryptowalutę](/stablecoins/), do produktu takiego jak Aave. -- W zamian otrzymujesz 100 Aave Dai (aDai), tokeny reprezentujące Twoje zdeponowane Dai. -- Ilość twoich aDai będzie się powiększać w zależności od stóp procentowych w produkcie, a Ty masz do nich wgląd w każdej chwili w swoim portfelu. W zależności od oprocentowania saldo Twojego portfela może wskazywać np. 100,1234 aDai już po paru dniach, a nawet godzinach! -- W każdej chwili możesz wymienić tokeny produktu z powrotem na oryginalne Dai. - - - Zobacz d-aplikacje pożyczkowe - - -#### Loterie bez przegranych {#no-loss-lotteries} - -Loterie bez przegranych, takie jak np. PoolTohether, są zabawną i innowacyjną metodą oszczędzania pieniędzy. - -- Kupujesz 100 biletów używając 100 tokenów Dai. -- Otrzymujesz 100 plDai, które reprezentują 100 biletów. -- Jeżeli jeden z Twoich biletów zostanie wylosowany jako zwycięski, Twoje saldo plDai zostanie powiększone o wartość puli nagród. -- Jeżeli nie wygrasz, Twoje 100 plDai przechodzi do następnej cotygodniowej loterii. -- W każdej chwili możesz wypłacić kwotę zwykłych Dai, która jest równa Twojemu saldu plDai. - -Pula nagród to suma wszystkich odsetek uzyskanych dzięki pożyczaniu biletów loteryjnych, tak samo jak w przykładzie z pożyczkami. - - - Wypróbuj PoolTogether - - - - -### Handel tokenami {#swaps} - -Na Ethereum są tysiące tokenów. Zdecentralizowane giełdy (DEX) umożliwiają handel różnymi tokenami, kiedy tylko chcesz. Nigdy nie rezygnujesz z kontroli nad swoimi zasobami. To tak jak korzystanie z kantoru podczas wizyty w innym kraju. Ale DeFi nigdy się nie zamyka. Rynki działają 24 godziny na dobę, 365 dni w roku, a technologia gwarantuje, że zawsze znajdzie się ktoś, kto zaakceptuje transakcję. - -Na przykład, jeśli chcesz skorzystać z loterii bez przegranych PoolTogether (opisanej powyżej), będziesz potrzebować tokena takiego jak Dai lub USDC. Zdecentralizowane giełdy dają Ci możliwość wymiany ETH na te tokeny i zamianę z powrotem, kiedy będziesz potrzebować. - - - Zobacz handel tokenami - - - - -### Handel dla zaawansowanych {#trading} - -Dla inwestorów, którzy lubią mieć nieco więcej kontroli, istnieją bardziej zaawansowane opcje. Zlecenia z limitem ceny, bezterminowe, transakcje z depozytem zabezpieczającym i inne — wszystko jest możliwe. Dzięki zdecentralizowanemu handlowi masz dostęp do globalnej płynności, rynki nigdy się nie zamykają i do tego zawsze to Ty kontrolujesz swoje środki. - -Na scentralizowanych giełdach musisz najpierw zdeponować swoje środki, a potem na czas obrotu zaufać danej platformie. Gdy Twoje środki są zdeponowane na scentralizowanej giełdzie, stają się atrakcyjnym celem dla hakerów, a Ty ponosisz ryzyko. - - - Zobacz d-aplikacje pożyczkowe - - - - -### Powiększ swoje portfolio {#investing} - -Na Ethereum są dostępne produkty do zarządzania funduszami, które będą próbować powiększać Twoje portfolio na podstawie wybranej strategii. To automatyczne, dostępne dla wszystkich rozwiązanie, które nie potrzebuje ludzkiego menedżera przejmującego część Twoich zysków. - -Dobrym przykładem jest [fundusz DeFi Pulse Index (DPI)](https://defipulse.com/blog/defi-pulse-index/). Jest to fundusz, który automatycznie przelicza saldo, aby Twoje portfolio zawsze zawierało [najlepsze tokeny DeFi według kapitalizacji rynkowej](https://www.coingecko.com/en/defi). Nigdy nie musisz zarządzać żadnymi szczegółami i możesz wycofać się z funduszu, kiedy tylko chcesz. - - - Zobacz d-aplikacje do obsługi inwestycji - - - - -### Sfinansuj swój pomysł {#crowdfunding} - -Ethereum jest idealną platformą do finansowania społecznościowego: - -- Potencjalni inwestorzy mogą pochodzić z dowolnego miejsca – Ethereum i jego tokeny są otwarte dla każdego, na całym świecie. -- Zbiórki są transparentne, nie ma możliwości utajnienia zebranej kwoty. Po zakończeniu zbiórki możesz nawet śledzić sposób wydatkowania zebranych pieniędzy. -- Podmioty dokonujące zbiórki mogą ustawić automatyczne refundacje, jeżeli na przykład w określonym terminie nie zostanie zebrana ustalona kwota. - - - Sprawdź d-aplikacje do finansowania społecznościowego - - -#### Finansowanie kwadratowe {#quadratic-funding} - -Ethereum jest oprogramowaniem open source i wiele działań zostało sfinansowanych przez społeczność. Zaowocowało to zwiększonym zainteresowaniem nowym kwadratowym modelem finansowania. Rozwiązanie to ma potencjał do zmiany sposobu, jak finansowane są projekty użyteczności publicznej. - -Dzięki quadratic funding, projekty z najbardziej unikalnym popytem, otrzymują najwyższe dotacje. Innymi słowy, są to projekty, które mają na celu poprawienie jakości życia największej liczby osób. Dowiedz się, jak to działa: - -1. Jest pewna pula dopasowana do przekazanych środków. -2. Rozpoczyna się runda finansowania publicznego. -3. Ludzie mogą sygnalizować swoje zainteresowanie projektem, przekazując pewną kwotę pieniędzy. -4. Po zakończeniu rundy następuje podział puli na projekty. Te, którymi interesowała się największa liczba osób, otrzymują z puli najwyższą kwotę. - -Oznacza to, że projekt A, który otrzymał 100 darowizn w wysokości 1 dolara, mógłby otrzymać więcej środków niż projekt B z pojedynczym darowizną 10 000 dolarów (w zależności od wielkości puli). - -[Więcej na temat finansowania kwadratowego](https://wtfisqf.com) - - - -### Ubezpieczenie {#insurance} - -Zdecentralizowane ubezpieczenia mają na celu obniżenie kosztów ubezpieczenia, szybsze wypłacanie odszkodowań i zwiększenie przejrzystości. Dzięki większej automatyzacji zakres jest znacznie większy, a wypłaty — znacznie szybsze. Dane wykorzystane do podjęcia decyzji w sprawie odszkodowania są całkowicie przejrzyste. - -Produkty Ethereum, podobnie jak każde oprogramowanie, mogą zawierać błędy i są narażone na oprogramowanie wykorzystujące luki. Dlatego obecnie wiele dostępnych produktów ubezpieczeniowych koncentruje się na ochronie użytkowników przed utratą środków. Jednak pojawiają się projekty, które zaczynają obejmować swoim zasięgiem wszystko, czym może nas zaskoczyć życie. Dobrym tego przykładem jest program Crop firmy Etherisc, którego celem jest [ochrona drobnych rolników w Kenii przed suszami i powodziami](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Zdecentralizowane ubezpieczenie może zapewnić tańszą ochronę ubezpieczeniową dla rolników, którzy często nie są uwzględniani przez tradycyjnych ubezpieczycieli. - - - Zobacz d-aplikacje ubezpieczeniowe - - - - -### Agregatory i zarządzanie portfelami {#aggregators} - -W wielu przypadkach będziesz potrzebować sposobu, aby śledzić wszystkie swoje inwestycje, pożyczki i transakcje. Istnieje mnóstwo produktów, które służą do koordynowania całej aktywności DeFi z jednego miejsca. Na tym polega piękno otwartej architektury DeFi. Zespoły mogą budować interfejsy, w których nie tylko widzisz swoje salda w różnych produktach, ale możesz również korzystać z ich funkcji. Może ci się to przydać, gdy będziesz poznawać kolejne części DeFi. - - - Zobacz portfolio d-aplikacji - - - - -## Jak działa DeFi? {#how-defi-works} - -DeFi wykorzystuje kryptowaluty i inteligentne kontrakty do świadczenia usług, które nie wymagają pośredników. W dzisiejszym świecie finansowym instytucje finansowe pełnią rolę gwarantów transakcji. Daje to tym instytucjom ogromną władzę, ponieważ przepływają przez nie Twoje pieniądze. Jednak miliardy ludzi na świecie nie mają dostępu do kont bankowych. - -W DeFi inteligentny kontrakt zastępuje instytucję finansową uczestniczącą w transakcji. Inteligentny kontrakt jest rodzajem konta Ethereum, na którym można przechowywać środki oraz wysyłać je i zwracać, gdy są spełnione określone warunki. Nikt nie może zmienić tego inteligentnego kontraktu, gdy jest aktywny — zawsze będzie działał zgodnie z programem. - -Kontrakt przeznaczony do wypłacania zasiłku lub kieszonkowego mógłby być zaprogramowany tak, aby w każdy piątek wysyłać pieniądze z konta A na konto B. Będzie to robić tylko wtedy, gdy na rachunku A będą wystarczające środki. Nikt nie może zmienić kontraktu i dodać konta C jako odbiorcy, aby wykraść środki. - -Poza tym kontrakty są publicznie dostępne — każdy może przeprowadzić kontrolę i audyt. Dlatego złe kontrakty będą często sprawdzane przez członków wspólnoty. - -Oznacza to, że obecnie trzeba zaufać członkom społeczności Ethereum, którzy mają wystaczającą wiedzę techniczną, aby czytać kod. Społeczność oparta na open-source pomaga programistom, sprawdzając ich pracę. Jednak z czasem potrzeba ta zmniejszy się: czytanie inteligentnych kontraktów będzie łatwiejsze i rozwiną się inne sposoby potwierdzenia wiarygodności kodu. - -## Ethereum i DeFi {#ethereum-and-defi} - -Ethereum jest doskonałym fundamentem dla DeFi z wielu powodów: - -- Nikt nie jest właścicielem Ethereum ani inteligentnych kontraktów, które są aktywne na platformie, dlatego każdy może korzystać z DeFi. Oznacza to również, że nikt nie może zmienić obowiązujących zasad. -- Wszystkie produkty DeFi mówią za kulisami tym samym językiem: Ethereum. Oznacza to, że wiele produktów ze sobą współpracuje. Możesz pożyczać tokeny na jednej platformie i wymieniać oprocentowany token na innym rynku w zupełnie innej aplikacji. To tak, jakby by można było wymieniać na gotówkę punkty lojalnościowe w konkretnym banku. -- Tokeny i kryptowaluty są wbudowane w Ethereum. Wspólna księga rachunkowa — śledzenie transakcji i własności — jest jedną z istotnych cech Ethereum. -- Ethereum pozwala na pełną wolność finansową — większość produktów nigdy nie będzie przejmować środków finansowych, pozostawiając Ci kontrolę nad nimi. - -Możesz myśleć o DeFi jak o systemie wielowarstwowym: - -1. Łańcuch bloków — Ethereum zawiera historię transakcji i stany kont. -2. Aktywa — [ETH](/eth/) i inne tokeny (waluty). -3. Protokoły — [inteligentne kontrakty](/glossary/#smart-contract), które zapewniają funkcjonalność, na przykład usługę pozwalającą na zdecentralizowane pożyczanie aktywów. -4. [Aplikacje](/dapps/) — produkty, których używamy do zarządzania protokołami i uzyskiwania dostępu do nich. - -## Pomóż nam budować DeFi {#build-defi} - -DeFi to ruch open-source. Protokoły i aplikacje DeFi są dla Ciebie otwarte: możesz je przeglądać, tworzyć i wprowadzać innowacje. Dzięki warstwowej konstrukcji (wszyscy mają ten sam podstawowy łańcuch bloków i zasoby), protokoły moża mieszać i dopasowywać, aby odblokować unikalne możliwości połączeń. - - - Więcej o tworzeniu d-aplikacji - - -## Dalsza lektura {#futher-reading} - -### Dane DeFi {#defi-data} - -- [DeFi Prime](https://defiprime.com/) -- [DeFi Llama](https://defillama.com/) -- [DeFi Rate](https://defirate.com/) - -### Artykuły o DeFi {#defi-articles} - -- [Przewodnik po DeFi dla początkujących](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) — _Sid Coelho-Prabhu, 6 stycznia 2020_ - -### Materiały wideo {#videos} - -- [Finematics — zdecentralizowana edukacja finansowa](https://finematics.com/) — _filmy wideo o DeFi_ -- [Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _Podstawy DeFi: wszystko, co musisz wiedzieć, aby zacząć korzystać z tej czasami zaskakującej przestrzeni._ -- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _Co to jest DeFi?_ - -### Społeczności {#communities} - -- [Serwer Discord DeFi Llama](https://discord.gg/buPFYXzDDd) -- [Serwer Discord DeFi Pulse](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/pl/desci/index.md b/src/content/translations/pl/desci/index.md deleted file mode 100644 index 65237856320..00000000000 --- a/src/content/translations/pl/desci/index.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: Zdecentralizowana nauka (DeSci) -description: Przegląd zdecentralizowanej nauki na Ethereum -lang: pl -template: use-cases -emoji: ":microscope:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Globalna, otwarta alternatywa dla obecnego systemu naukowego. -summaryPoint2: Technologia, która umożliwia naukowcom pozyskiwanie funduszy, prowadzenie eksperymentów, udostępnianie danych, rozpowszechnianie wniosków i wiele innych. -summaryPoint3: Opiera się na otwartych inicjatywach naukowych. ---- - -## Czym jest zdecentralizowana nauka (DeSci)? {#what-is-desci} - -Zdecentralizowana nauka (DeSci) jest ruchem, który ma na celu zbudowanie publicznej infrastruktury do finansowania, tworzenia, recenzowania, kredytowania, przechowywania i rozpowszechniania wiedzy naukowej w sposób uczciwy i sprawiedliwy przy użyciu stosu Web3. - -DeSci ma na celu stworzenie ekosystemu, w którym naukowcy są zachęcani do otwartego dzielenia się swoimi badaniami i otrzymują uznanie za swoją pracę, jednocześnie umożliwiając każdemu łatwy dostęp do badań i uczestniczenie w nich. DeSci działa w oparciu o ideę, że wiedza naukowa powinna być dostępna dla każdego, a proces badań naukowych powinien być przejrzysty. DeSci tworzy bardziej zdecentralizowany i rozproszony model badań naukowych, dzięki czemu są one bardziej odporne na cenzurę i kontrolę ze strony władz centralnych. DeSci to środowisko, w którym nowe i niekonwencjonalne pomysły mogą się rozwijać poprzez decentralizację dostępu do finansowania, narzędzi naukowych i kanałów komunikacji. - -Zdecentralizowana nauka umożliwia bardziej zróżnicowane źródła finansowania (od [DAO](/dao/), [kwadratowych darowizn](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) do finansowania społecznościowego i innych form), łatwiejszy dostęp do danych i metod, a także poprzez zapewnienie zachęt do odtwarzalności. - -### Juan Benet — ruch DeSci - - - -## Jak DeSci poprawia jakość nauki {#desci-improves-science} - -Lista wybranych kluczowych problemów naukowych oraz sposób, w jaki zdecentralizowana nauka może pomóc w ich rozwiązaniu - -| **Zdecentralizowana nauka** | **Tradycyjna nauka** | -| ---------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -| Podział środków jest określany przez opinię publiczną za pomocą takich mechanizmów jak kwadratowe darowizny lub DAO. | Małe, zamknięte, scentralizowane grupy kontrolują podział funduszy. | -| Współpraca z partnerami z całego świata w dynamicznych zespołach. | Organizacje finansujące i instytucje domowe ograniczają możliwości współpracy. | -| Decyzje dotyczące finansowania podejmowane są w Internecie i w przejrzysty sposób. Wykorzystywane są nowe mechanizmy finansowania. | Decyzje o finansowaniu zapadają po długim czasie i są mało przejrzyste. Istnieje niewiele mechanizmów finansowania. | -| Udostępnianie usług laboratoryjnych jest łatwiejsze i bardziej przejrzyste dzięki podstawowym usługom Web3. | Udostępnianie zasobów laboratoryjnych jest często powolne i nieprzejrzyste. | -| Można opracować nowe modele publikacji, w których wykorzystuje się podstawowe funkcje Web3 zapewniające zaufanie, przejrzystość i powszechny dostęp. | Publikowanie odbywa się w ramach ustalonych ścieżek, często uznawanych za nieefektywne, stronnicze i wyzyskujące. | -| Za recenzowanie prac można zdobyć tokeny i reputację. | Praca recenzencka jest nieodpłatna i przynosi korzyści wydawcom nastawionym na zysk. | -| Użytkownik jest właścicielem wygenerowanej przez siebie własności intelektualnej (IP) i rozpowszechnia ją na przejrzystych zasadach. | Właścicielem IP wygenerowanej przez użytkownika jest jego macierzysta instytucja. Dostęp do IP nie jest przejrzysty. | -| Dzielenie się wszystkimi badaniami, w tym danymi z nieudanych prób, poprzez udostępnianie wszystkich etapów w łańcuchu. | Tendencyjność publikacji oznacza, że badacze chętniej dzielą się eksperymentami, które przyniosły dobre wyniki. | - -## Ethereum i DeSci {#ethereum-and-desci} - -Zdecentralizowany system naukowy będzie wymagał solidnego bezpieczeństwa, minimalnych kosztów pieniężnych i transakcyjnych oraz bogatego ekosystemu do tworzenia zastosowań. Ethereum zapewnia wszystko, co jest potrzebne do stworzenia zdecentralizowanego systemu naukowego. - -## Przykłady zastosowań DeSci {#use-cases} - -DeSci buduje zestaw narzędzi naukowych, aby wprowadzić środowisko akademickie Web2 do świata cyfrowego. Poniżej przedstawiono przykłady zastosowań, jakie Web3 może zaoferować społeczności naukowej. - -### Publikowanie {#publishing} - -Publikacje naukowe są szczególnie problematyczne, ponieważ są zarządzane przez wydawnictwa, które polegają na darmowej pracy naukowców, recenzentów i redaktorów, aby stworzyć prace, ale następnie pobierają za nie wygórowane opłaty. Obywatele, którzy zwykle pośrednio zapłacili za dzieło i koszty publikacji poprzez podatki, często nie mogą uzyskać dostępu do tego samego dzieła bez ponownego zapłacenia wydawcy. Łączne opłaty za publikację poszczególnych prac naukowych są często pięciocyfrowe ($USD), podważając całą koncepcję wiedzy naukowej jako [dobra publicznego](https://www.econlib.org/library/Enc/PublicGoods.html), jednocześnie generując ogromne zyski dla małej grupy wydawców. - -Istnieją platformy wolnego i otwartego dostępu w postaci serwerów preprintów, [takich jak ArXiv](https://arxiv.org/). Jednak na takich platformach brakuje kontroli jakości, [mechanizmów antysybilistycznych](https://csrc.nist.gov/glossary/term/sybil_attack), a także nie śledzi się na ogół metryk poziomu artykułu. Oznacza to, że są one zwykle używane tylko do upublicznienia pracy przed jej złożeniem u tradycyjnego wydawcy. SciHub również udostępnia opublikowane prace za darmo, ale nie legalnie, i dopiero po tym, jak wydawcy pobiorą już zapłatę i obwarują pracę ścisłymi prawami autorskimi. Jest to istotna luka w przypadku dostępnych dokumentów i danych naukowych z wbudowanym mechanizmem legitymizacji i modelem zachęt. Narzędzia do budowy takiego systemu istnieją w Web3. - -### Odtwarzalność i powtarzalność {#reproducibility-and-replicability} - -Powtarzalność i odtwarzalność są podstawą odkryć naukowych wysokiej jakości. - -- Odtwarzalne wyniki mogą być wielokrotnie osiągane przez ten sam zespół przy użyciu tej samej metodologii. -- Powtarzalne wyniki może osiągnąć inna grupa stosująca ten sam układ eksperymentalny. - -Nowe narzędzia Web3 mogą zagwarantować, że powtarzalność i odtwarzalność są podstawą odkrycia. Można wpleść wysokiej jakości naukę w technologiczną tkankę środowiska akademickiego. Web3 oferuje możliwość tworzenia poświadczeń dla każdego składnika analizy: danych nieprzetworzonych, silnika przetwarzania i wyników aplikacji. Piękno systemów konsensualnych polega na tym, że w przypadku utworzenia zaufanej sieci w celu utrzymania tych komponentów, każdy uczestnik sieci może być odpowiedzialny za odtwarzanie obliczeń i walidację każdego wyniku. - -### Finansowanie {#funding} - -Obecny standardowy model finansowania nauki polega na tym, że osoby fizyczne lub grupy naukowców składają pisemne wnioski do agencji finansującej. Niewielki panel zaufanych osób ocenia wnioski, a następnie przeprowadza rozmowy z kandydatami przed przyznaniem środków finansowych niewielkiej części wnioskodawców. Oprócz tworzenia wąskich gardeł, które czasem prowadzą do wieloletniego oczekiwania między ubieganiem się o dotację a jej otrzymaniem, model ten jest znany jako wysoce podatny na stronniczość, interesy własne i politykę panelu weryfikacyjnego. - -Badania wykazały, że zespoły ds. przeglądu dotacji nie wykonują dobrej pracy w zakresie wyboru wniosków wysokiej jakości, ponieważ te same wnioski przekazane różnym zespołom przynoszą diametralnie różne wyniki. W miarę jak środki finansowe stają się coraz bardziej ograniczone, koncentrują się na mniejszej puli starszych naukowców proponujących projekty bardziej konserwatywne pod względem intelektualnym. Efektem tego jest powstanie hiperkonkurencyjnego systemu finansowania, który utrwala niepożądane zachęty i tłumi innowacje. - -Web3 ma potencjał, aby zakłócić ten wadliwy model finansowania poprzez eksperymentowanie z różnymi modelami motywacyjnymi opracowanymi przez DAO i Web3 w szerokim zakresie. [Finansowanie ze środków publicznych obowiązujące wstecz](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), [finansowanie kwadratowe](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), [zarządzanie DAO](https://www.antler.co/blog/daos-and-web3-governance) i [struktury motywacyjne oparte na tokenach](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) to przykłady narzędzi Web3, które mogą zrewolucjonizować finansowanie nauki. - -### Własność i rozwój własności intelektualnej (IP) {#ip-ownership} - -Własność intelektualna (IP) stanowi duży problem w tradycyjnej nauce: od utknięcia na uniwersytetach lub niewykorzystania w biotechnologii, po notoryczne trudności w wycenie. Jednak obsługa własności aktywów cyfrowych (takich jak dane naukowe lub artykuły) jest czymś, co Web3 robi wyjątkowo dobrze, używając [niezbywalnych tokenów (NFT)](/nft/). - -W ten sam sposób, w jaki NFT mogą przekazywać przychody z przyszłych transakcji z powrotem do pierwotnego twórcy, można ustanowić przejrzyste łańcuchy przypisywania wartości, aby nagradzać badaczy, organy zarządzające (jak DAO), a nawet podmioty, których dane są gromadzone. - -[IP-NFT](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) mogą również funkcjonować jako klucz do zdecentralizowanego repozytorium danych o podejmowanych eksperymentach badawczych, a także podłączać się do NFT i [DeFi](/defi/) finansjeryzacji (od frakcjonalizacji po pule pożyczkowe i wycenę wartości). Umożliwia również podmiotom działającym natywnie w łańcuchu, takim jak DAO [VitaDAO](https://www.vitadao.com/), prowadzenie badań bezpośrednio w łańcuchu. Pojawienie się niezbywalnych [tokenów „soulbound”](https://vitalik.ca/general/2022/01/26/soulbound.html) może również odgrywać ważną rolę w DeSci, umożliwiając jednostkom udowodnienie swojego doświadczenia i poświadczeń powiązanych z ich adresem Ethereum. - -### Przechowywanie danych, dostęp do nich i ich architektura {#data-storage} - -Dane naukowe mogą być znacznie bardziej dostępne dzięki wzorcom Web3, a rozproszona pamięć masowa umożliwia badaniom przetrwanie kataklizmów. - -Punktem wyjścia musi być system dostępny dla każdej zdecentralizowanej tożsamości, posiadający odpowiednie możliwe do zweryfikowania dane uwierzytelniające. Pozwala to na bezpieczne powielanie danych szczególnie chronionych przez zaufane strony, co umożliwia odporność na redundancję i cenzurę, powielanie wyników, a nawet zdolność wielu stron do współpracy i dodawania nowych danych do zbioru danych. Poufne metody obliczeniowe, takie jak [przetwarzanie do danych](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol), zapewniają alternatywne mechanizmy dostępu do replikacji surowych danych, tworząc zaufane środowiska badawcze dla najbardziej wrażliwych danych. [NHS uznało](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) Trusted Research Environments za przyszłościowe rozwiązanie w zakresie prywatności danych i współpracy poprzez stworzenie ekosystemu, w którym naukowcy mogą bezpiecznie pracować z danymi na miejscu przy użyciu standardowych środowisk do udostępniania kodu i praktyk. - -Elastyczne rozwiązania danych Web3 wspierają powyższe scenariusze i stanowią podstawę dla prawdziwie otwartej nauki, gdzie naukowcy mogą tworzyć dobra publiczne bez uprawnień dostępu lub opłat. Publiczne rozwiązania danych Web3, takie jak IPFS, Arweave i Filecoin, są zoptymalizowane do celów decentralizacji. Na przykład dClimate zapewnia powszechny dostęp do danych dotyczących klimatu i pogody, w tym danych pochodzących ze stacji meteorologicznych i modeli prognozowania klimatu. - -## Włącz się {#get-involved} - -Przeglądaj projekty i dołącz do społeczności DeSci. - -- [DeSci.Global: globalne wydarzenia i kalendarz spotkań](https://desci.global) -- [Łańcuch bloków dla Science Telegram](https://t.me/BlockchainForScience) -- [Molecule: finansuj i zdobywaj fundusze na swoje projekty badawcze](https://discover.molecule.to/) -- [VitaDAO: uzyskuj środki finansowe w ramach sponsorowanych umów badawczych na długotrwałe badania](https://www.vitadao.com/) -- [Research Hub: wysyłaj wyniki naukowe i angażuj się w rozmowy z partnerami](https://www.researchhub.com/) -- [LabDAO: projektuj białka in-silico (za pomocą komputera)](https://alphafodl.vercel.app/) -- [dClimate API: przeszukuj dane klimatyczne zebrane przez zdecentralizowaną społeczność](https://api.dclimate.net/) -- [Fundacja DeSci: konstruktor narzędzi do publikowania DeSci](https://descifoundation.org/) -- [DeSci.World: jedno miejsce dla użytkowników do przeglądania i angażowania się w zdecentralizowaną naukę](https://desci.world) -- [Protokół Fleminga: gospodarka danymi typu open-source, która wspiera wspólne odkrycia biomedyczne](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [OceanDAO: DAO finansuje naukę związaną z danymi](https://oceanprotocol.com/dao) -- [Opscientia: otwarty, zdecentralizowany przepływ prac naukowych](https://opsci.io/research/) -- [LabDAO: projektuj białka in-silico (za pomocą komputera)](https://alphafodl.vercel.app/) -- [Bio.xyz: zdobądź fundusze na swój biotechnologiczny projekt DAO lub desci](https://www.molecule.to/) -- [Research Hub: wysyłaj wyniki naukowe i angażuj się w rozmowy z partnerami](https://www.researchhub.com/) -- [VitaDAO: uzyskuj środki finansowe w ramach sponsorowanych umów badawczych na długotrwałe badania](https://www.vitadao.com/) -- [Protokół Fleminga: gospodarka danymi typu open-source, która wspiera wspólne odkrycia biomedyczne](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [Laboratorium aktywnego wnioskowania](https://www.activeinference.org/) -- [CureDAO: wspólnotowa platforma ds. zdrowia precyzyjnego](https://docs.curedao.org/) -- [IdeaMarkets: umożliwia zapewnienie zdecentralizowanej wiarygodności naukowej](https://ideamarket.io/) -- [Laboratoria DeSci](https://www.desci.com/) - -Mile widziane są propozycje nowych projektów do umieszczenia na liście — zapoznaj się z naszymi [zasadami umieszczania na liście](/contributing/adding-desci-projects/) i zaczynaj! - -## Przeczytaj także {#further-reading} - -- [Wiki DeSci opracowana przez Jocelynn Pearl i Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) -- [Przewodnik po zdecentralizowanej biotechnologii autorstwa Jocelynn Pearl dla 16z future](https://future.a16z.com/a-guide-to-decentralized-biotech/) -- [Problem dla DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) -- [Przewodnik po DeSci](https://future.com/what-is-decentralized-science-aka-desci/) -- [Zdecentralizowane zasoby naukowe](https://www.vincentweisser.com/decentralized-science) -- [IP-NFT Biopharma firmy Molecule — opis techniczny](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) -- [Budowanie Trustless Systems of Science autorstwa Jon Starr](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) -- [Pojawienie się organizacji DAO Biotech](https://molecule.to/blog/the-emergence-of-biotech-daos) -- [Paul Kohlhaas — DeSci: Przyszłość zdecentralizowanej nauki (podcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) -- [Ontologia aktywnego wnioskowania dla zdecentralizowanej nauki: od sytuacyjnego wyczuwania do wspólnoty epistemicznej](https://zenodo.org/record/6320575) -- [DeSci: Przyszłość badań naukowych autorstwa Samuela Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) -- [Finansowanie nauki (Epilog: DeSci i nowe pierwotne kryptowaluty) autorstwa Nadii](https://nadia.xyz/science-funding) -- [Decentralizacja zakłóca rozwój leków](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) - -### Materiały wideo {#videos} - -- [Co to jest zdecentralizowana nauka?](https://www.youtube.com/watch?v=-DeMklVWNdA) -- [Rozmowa Vitalika Buterina z naukowcem Aubreyem de Greyem o przenikaniu się długotrwałych badań i kryptowalut](https://www.youtube.com/watch?v=x9TSJK1widA) -- [Publikowanie tekstów naukowych nie działa prawidłowo. Czy można je naprawić za pomocą Web3?](https://www.youtube.com/watch?v=WkvzYgCvWj8) -- [Juan Benet - DeSci, Niezależne laboratoria i nauka o danych na wielką skalę](https://www.youtube.com/watch?v=zkXM9H90g_E) -- [Sebastian Brunemeier — Jak DeSci może przekształcać badania biomedyczne i kapitał podwyższonego ryzyka](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/pl/developers/docs/accounts/index.md b/src/content/translations/pl/developers/docs/accounts/index.md deleted file mode 100644 index 23554d299e4..00000000000 --- a/src/content/translations/pl/developers/docs/accounts/index.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: Konta Ethereum -description: Wyjaśnienie kont Ethereum – ich struktury danych i powiązania z kryptografią kluczy. -lang: pl -isOutdated: true ---- - -Konto Ethereum jest jednostką z saldem etheru (ETH), która może wysyłać transakcje na Ethereum. Konta mogą być kontrolowane przez użytkownika lub wdrażane jako inteligentne kontrakty. - -## Warunki wstępne {#prerequisites} - -Konta to bardzo przyjazny dla początkujących temat. Ale aby pomóc Ci lepiej zrozumieć tę stronę, zalecamy przeczytanie naszego [wprowadzenia do Ethereum](/developers/docs/intro-to-ethereum/). - -## Rodzaje kont {#types-of-account} - -Ethereum ma dwa typy kont: - -- Zewnętrznie posiadane – kontrolowane przez każdego, kto ma klucze prywatne -- Kontrakt – inteligentny kontrakt realizowany w sieci, kontrolowany kodem. Dowiedz się więcej o [inteligentnych kontraktach](/developers/docs/smart-contracts/) - -Oba typy kont mają możliwość: - -- Odbierania, przechowywania i wysyłania ETH i tokenów -- Interakcji z wdrożonymi inteligentnymi kontraktami - -### Kluczowe różnice {#key-differences} - -**Zewnętrznie posiadane** - -- Tworzenie konta nic nie kosztuje -- Może inicjować transakcje -- Transakcje pomiędzy kontami zewnętrznymi mogą być tylko przelewem ETH - -**Kontrakt** - -- Tworzenie konta wiąże się z kosztami, ponieważ korzystasz z pamięci sieciowej -- Może wysyłać transakcje tylko w odpowiedzi na otrzymanie transakcji -- Transakcje z konta zewnętrznie posiadanego na konto kontraktu mogą wyzwalać kod, który może wykonywać wiele różnych działań, takich jak przenoszenie tokenów lub nawet tworzenie nowego kontraktu - -## Konto – analiza {#an-account-examined} - -Konta Ethereum mają cztery pola: - -- `nonce` – licznik, który wskazuje liczbę transakcji wysłanych z konta. Pole to gwarantuje, że transakcje są przetwarzane tylko raz. Dla konta kontraktu pole to oznacza liczbę kontraktów utworzonych przez konto. -- `balance` – ilość Wei należących do tego adresu. Wei to najmniejszy nominał ETH; 1e+18 Wei przypada na jeden ETH. -- `codeHash` – wszystkie tego rodzaju fragmenty kodu zawarte są w bazie danych stanu do późniejszego pobrania. Dla kont kontraktów pole to jest kodem, który jest haszowany i przechowywany jako codeHash. Dla kont posiadanych zewnętrznie pole codeHash jest haszem pustego ciągu znaków (ang. string). -- `storageRoot` – jest znany także jako hasz pamięci. 256-bitowy skrót węzła głównego drzewa Merkle Patricia, który koduje zawartość pamięci konta (mapowanie między 256-bitowymi wartościami całkowitymi), zakodowany w trie jako mapowanie z 256-bitowego skrótu Keccak 256 -bitowe klucze liczb całkowitych do 256-bitowych wartości liczb całkowitych zakodowanych w RLP. To drzewo koduje hasz zawartości pamięci masowej tego konta i jest domyślnie puste. - -![Schemat przedstawiający skład konta](../../../../../developers/docs/accounts/accounts.png) _Schemat zaadaptowany z [Ilustracja Ethereum EVM](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ - -## Konta zewnętrzne i kluczowe pary {#externally-owned-accounts-and-key-pairs} - -Konto składa się z pary kluczy kryptograficznych: publicznego i prywatnego. Pomogą one udowodnić, że transakcja została faktycznie podpisana przez nadawcę i zapobiec fałszerstwom. Twój klucz prywatny jest tym, czego używasz do podpisywania transakcji, więc zapewnia Ci opiekę nad środkami powiązanymi z Twoim kontem. Tak naprawdę nigdy nie trzymasz kryptowaluty, trzymasz klucze prywatne – środki są zawsze w księdze Ethereum. - -Zapobiega to nadawaniu fałszywych transakcji przez złośliwe podmioty, ponieważ zawsze możesz zweryfikować nadawcę transakcji. - -Jeśli Alice chce wysłać ether ze swojego konta na konto Boba, Alice musi utworzyć prośbę o transakcję i wysłać ją do sieci w celu weryfikacji. Wykorzystanie kryptografii klucza publicznego przez Ethereum zapewnia, że ​​Alice może udowodnić, że pierwotnie zainicjowała żądanie transakcji. Bez mechanizmów kryptograficznych złośliwa Eve mogłaby po prostu publicznie rozesłać zapytanie, które wygląda jak „Wyślij 5 ETH z konta Alice na konto Eve”, i nikt nie byłby w stanie sprawdzić, czy nie pochodziło od Alice. - -## Tworzenie konta {#account-creation} - -Kiedy chcesz utworzyć konto, większość bibliotek wygeneruje losowy klucz prywatny. - -Klucz prywatny składa się z 64 znaków szesnastkowych i może być zaszyfrowany hasłem. - -Przykład: - -`fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036415f` - -Klucz publiczny jest generowany z klucza prywatnego przy użyciu algorytmu cyfrowego z krzywą eliptyczną. Otrzymujesz publiczny adres na swoje konto, biorąc ostatnie 20 bajtów klucza publicznego i dodając `0x` na początek. - -Oto przykład utworzenia konta w konsoli za pomocą `personal_newAccount` - -```go -> personal.newAccount() -Passphrase: -Repeat passphrase: -"0x5e97870f263700f46aa00d967821199b9bc5a120" - -> personal.newAccount("h4ck3r") -"0x3d80b31a78c30fc628f20b2c89d7ddbf6e53cedc" -``` - -[Dokumentacja GETH](https://geth.ethereum.org/docs) - -Możliwe jest pozyskanie nowych kluczy publicznych z Twojego klucza prywatnego, ale nie możesz uzyskać klucza prywatnego z kluczy publicznych. Oznacza to, że ważne jest, aby klucz prywatny był bezpieczny i, jak sugeruje nazwa, **PRYWATNE**. - -Potrzebujesz prywatnego klucza do podpisywania wiadomości i transakcji, które wygenerują podpis. Inni mogą wtedy wziąć podpis, aby uzyskać klucz publiczny, potwierdzając autora wiadomości. W swojej aplikacji możesz użyć biblioteki javascript do wysyłania transakcji do sieci. - -## Konto kontraktowe {#contract-accounts} - -Konta umowne mają również 42 znaki w układzie szesnastkowym: - -Przykład: - -`0x06012c8cf97bead5deae237070f9587f8e7a266d` - -Adres kontraktu jest zazwyczaj podany w momencie realizacji zamówienia do Ethereum Blockchain. Adres pochodzi z adresu twórcy i liczby transakcji wysłanych z tego adresu („nonce”). - -## Więcej o portfelach {#a-note-on-wallets} - -Konto nie jest portfelem. Portfel jest parą kluczy powiązaną z kontem będącym własnością użytkownika, która pozwala użytkownikowi na dokonywanie transakcji z konta lub zarządzanie nim. - -## Dodatkowo przeczytaj {#further-reading} - -_Wiesz o zasobach społecznościowych, które Ci pomogły? Wyedytuj tę stronę i dodaj je!_ - -## Powiązane tematy {#related-topics} - -- [Inteligentne kontrakty](/developers/docs/smart-contracts/) -- [Transakcje](/developers/docs/transactions/) diff --git a/src/content/translations/pl/developers/docs/blocks/index.md b/src/content/translations/pl/developers/docs/blocks/index.md deleted file mode 100644 index fadbae76870..00000000000 --- a/src/content/translations/pl/developers/docs/blocks/index.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: Bloki -description: Przegląd bloków w blockchainie Ethereum – ich struktura danych, dlaczego są potrzebne i jak są wytwarzane. -lang: pl ---- - -Bloki są zestawami transakcji z kryptograficznym skrótem poprzedniego bloku w łańcuchu. Łączy to bloki (w łańcuch), ponieważ skróty są kryptograficznymi pochodnymi danych umieszczanych w blokach. Zapobiega to nadużyciom, ponieważ pojedyncza zmiana w dowolnym, historycznym bloku unieważniłaby wszystkie bloki następujące po nim, gdyż zmianie uległyby kolejne kryptograficzne skróty, co wychwyciłby każdy, kto korzysta z blokchaina. - -## Wymagania wstępne {#prerequisites} - -Bloki to temat przyjazny dla nowicjuszy. Jednak, aby pomóc ci w lepszym zrozumieniu tej strony, zalecamy najpierw przeczytać o [kontach](/developers/docs/accounts/), [transakcjach](/developers/docs/transactions/), a także nasze [Wprowadzenie do Ethereum](/developers/docs/intro-to-ethereum/). - -## Dlaczego bloki? {#why-blocks} - -Aby zagwarantować, że wszyscy uczestnicy sieci Ethereum pozostają w zsynchronizowanym stanie i zgadzają się odnośnie do dokładnej historii transakcji, grupujemy transakcje w blokach. Oznacza to, że dziesiątki (lub setki) transakcji są zatwierdzane, uzgadniane i synchronizowane jednocześnie. - -![Diagram przedstawiający transakcję w bloku, która powoduje zmiany stanu](../../../../../developers/docs/blocks/tx-block.png) _Diagram zaadaptowany z [Ilustrowanego Ethereum EVM](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ - -Dzięki rozgraniczaniu zatwierdzeń (transakcji zatwierdzeniowych) dajemy wszystkim uczestnikom sieci wystarczający zapas czasu, aby osiągnęli konsensus: nawet jeżeli żądania transakcyjne nadchodzą z częstotliwością kilku na sekundę, każdy jeden blok Ethereum jest zatwierdzany co około piętnaście sekund. - -## Jak działają bloki {#how-blocks-work} - -Aby zachować historię transakcji, bloki są ściśle uporządkowane (każdy nowy blok zawiera odniesienie do bloku nadrzędnego), podobnie ściśle uporządkowane są transakcje wewnątrz bloków. Poza rzadkimi przypadkami w każdym dowolnym momencie wszyscy uczestnicy sieci uzgadniają dokładną liczbę i historię bloków, pracują również nad tym, aby grupować bieżące żądania transakcji w następnym bloku. - -Gdy dany blok jest już złożony (wydobyty) przez jakiegoś górnika w sieci, jest rozprowadzany do reszty sieci; wszystkie węzły dodają ten blok na koniec swojego blockchaina, a wydobywanie trwa nadal. Dokładny proces składania (wydobywania) bloków, jak i proces zatwierdzania/konsensusu, są obecnie określone protokołem "proof-of-work" sieci Ethereum. - -### Demo wizualne {#a-visual-demo} - - - -## Protokół proof-of-work (dowodu wykonanej pracy) {#proof-of-work-protocol} - -Proof-of-work oznacza, że: - -- Węzły wydobywcze muszą zużyć zmienne acz znaczne ilości energii, czasu i mocy obliczeniowej, aby wyprodukować „certyfikat legalności” dla bloku, który proponują sieci. Pomaga to w ochronie sieci m.in. przed spamem/atakami typu denial-of-service, ponieważ produkcja certyfikatów obarczona jest dużym kosztem. -- Inni górnicy, którzy dowiadują się o nowym bloku z ważnym certyfikatem legalności, muszą go zaakceptować jako kolejny, obowiązujący blok w blockchainie. -- Dokładna ilość czasu potrzebnego każdemu górnikowi, aby wytworzył certyfikat, jest zmienną losową o dużej wariancji. Gwarantuje to, że będzie mało prawdopodobne, aby dwaj górnicy równocześnie dokonali walidacji zaproponowanych, kolejnych bloków; gdy górnik produkuje i rozprowadza nowy, certyfikowany blok, może być pewien, że zostanie on zaakceptowany przez sieć jako następny, obowiązujący blok w łańcuchu, bez konfliktu (chociaż istnieje protokół służący do radzenia sobie z konfliktami, podobnie jak z sytuacjami, gdy dwa łańcuchy certyfikowanych bloków powstaną niemal w tym samym czasie). - -[Więcej o wydobywaniu](/developers/docs/consensus-mechanisms/pow/mining/) - -## Co znajduje się w bloku? {#block-anatomy} - -- znacznik czasowy – czas wydobycia bloku; -- numer bloku – długość łańcucha bloków wyrażona w blokach; -- trudność – wysiłek potrzebny do wydobycia bloku; -- mixHash – unikatowy identyfikator bloku; -- nadrzędny skrót kryptograficzny (ang. hash) – unikatowy identyfikator bloku poprzedzającego bieżący (w ten sposób bloki są łączone w łańcuch); -- lista transakcji – transakcje umieszczone w bloku; -- źródło stanu – stan całego systemu zawierającego: salda kont, magazyn kontraktów, kod kontraktów i jednokrotki (ang. nonces) kont; -- jednokrotka – kryptograficzny skrót, który – gdy zespolimy go z wartością mixHash – jest dowodem na fakt przejścia przez blok procesu [proof-of-work](/developers/docs/consensus-mechanisms/pow/). - -## Rozmiar bloku {#block-size} - -Ważna uwaga na zakończenie jest taka, że same bloki są ograniczone pod względem rozmiaru. Każdy blok wyposażony jest w limit paliwa, który ustalany jest wspólnie przez górników i sieć: całkowita ilość paliwa zużyta przez wszystkie transakcje w bloku musi być mniejsza od tego limitu. Jest to o tyle ważne, że gwarantuje, iż bloki nie mogą być dowolnie duże. Gdyby bloki mogły mieć dowolną wielkość, wtedy mniej wydajne, pełne węzły stopniowo przestawałyby nadążać za siecią z powodu wymogów odnośnie do przestrzeni i prędkości. Limit paliwowy bloku 0 został zainicjowany wartością 5000; każdy górnik, który wydobywa nowy blok może zmienić limit paliwowy względem limitu w bloku nadrzędnym do około 0,1% w każdą ze stron. Od listopada 2018 do dziś limit paliwowy wynosi około 8 000 000. - -## Dalsza lektura {#further-reading} - -_Znasz jakiś zasób społecznościowy, który ci pomógł? Wyedytuj tę stronę i dodaj go!_ - -## Powiązane tematy {#related-topics} - -- [Wydobywanie](/developers/docs/consensus-mechanisms/pow/mining/) -- [Transakcje](/developers/docs/transactions/) -- [Paliwo](/developers/docs/gas/) diff --git a/src/content/translations/pl/developers/docs/evm/index.md b/src/content/translations/pl/developers/docs/evm/index.md deleted file mode 100644 index b477bf77611..00000000000 --- a/src/content/translations/pl/developers/docs/evm/index.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: Maszyna Wirtualna Ethereum (EVM) -description: Wprowadzenie do maszyny wirtualnej Ethereum i jej powiązania ze stanem, transakcjami i inteligentnymi kontraktami. -lang: pl ---- - -Maszyna Wirtualna Ethereum (EVM) jest fizyczną instancją, która nie może być opisana w taki sam sposób, jak moglibyśmy wskazać na chmurę lub fale oceanu, ale _istnieje_ jako pojedynczy byt utrzymywany przez miliony połączonych komputerów, na których działa klient Ethereum. - -Protokół Ethereum istnieje wyłącznie w celu utrzymania niezakłóconej ciągłości i niezmienności operacji tej specjalnej maszyny stanów; jest to środowisko, w którym działają wszystkie konta oraz inteligentne kontrakty Ethereum. Każdy blok łańcucha Ethereum posiada jeden i tylko jeden stan „kanoniczny”, a EVM jest tym co definiuje zasady obliczeń nowego poprawnego stanu dla kolejnych bloków. - -## Wymagania wstępne {#prerequisites} - -Do zrozumienia EVM konieczna jest znajomość podstawowej terminologii informatycznej, takiej jak [bajty](https://wikipedia.org/wiki/Byte), [pamięć](https://wikipedia.org/wiki/Computer_memory) i [stos](). Równie pomocne może się okazać zaznajomienie się z takimi pojęciami, jak kryptografia, blockchain [funkcja haszująca](https://pl.wikipedia.org/wiki/Funkcja_skr%C3%B3tu), [Proof-of-Work](https://www.gpwinfostrefa.pl/czym-jest-proof-of-work/), [drzewo Merkle](https://pl.wikipedia.org/wiki/Drzewo_hash). - -## Od księgi głównej do maszyny stanowej {#from-ledger-to-state-machine} - -Analogia „księgi głównej” jest często używana w celu opisania blockchainów np. takich jak Bitcoin, które umożliwiają zdecentralizowanym walutom używanie fundamentalnych narzędzi kryptograficznych. Kryptowaluta zachowuje się, jak „normalna“ waluta poprzez zasady jakimi jest zarządzana, co ktoś może, a czego nie może robić, aby zmodyfikować księgę główną. Dla przykładu, adres Bitcoina nie może wydać więcej Bitcoinów, niż wcześniej otrzymał. Zasady te są podstawą wszystkich transakcji na Bitcoinie i wielu innych blockchainach. - -Choć Ethereum ma swoją własną kryptowalutę (Ether), która działa niemal dokładnie według tych samych intuicyjnych zasad, pozwala również stosować znacznie bardziej rozbudowaną funkcję: [inteligentne kontrakty](/developers/docs/smart-contracts/). Dla tej skomplikowanej funkcji wymagana jest bardziej wyszukana analogia. W odróżnieniu od rozproszonej księgi główne, Ethereum jest rozproszoną [maszyną stanową](https://pl.wikipedia.org/wiki/Automat_sko%C5%84czony). Stany Ethereum są wielkimi strukturami danych, które przechowują nie tylko wszystkie konta i ich salda, ale też _stan maszyny_, który może zmieniać się od bloku do bloku zgodnie z predefiniowanymi zasadami, i który może wykonywać dowolny kod maszynowy. Konkretne zasady zmiany stanu od bloku do bloku są zdefiniowane przez EVM. - -![Schemat przedstawiający strukturę EVM](../../../../../developers/docs/evm/evm.png) _Schemat zaadaptowany z [Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ - -## Funkcja przejścia stanów Ethereum {#the-ethereum-state-transition-function} - -EVM zachowuje się jak funkcja matematyczna: biorąc pod uwagę dane wejściowe, wytwarza deterministyczne dane wyjściowe. Dlatego bardziej pomocne jest bardziej formalne opisanie Ethereum jako posiadającego **funkcję zmiany stanu**: - -``` -Y(S, T)= S' -``` - -Uwzględniając stary ważny stan `(S)` oraz nowy zestaw ważnych transakcji `(T)`, funkcja zmiany stanu Ethereum `Y(S, T)` tworzy nowy prawidłowy stan wyjściowy `S'` - -### Stan {#state} - -W odniesieniu do Ethereum, stan jest olbrzymią strukturą danych nazywaną zmodyfikowanym [drzewem Merkle Patricia](https://eth.wiki/en/fundamentals/patricia-tree), która zachowuje wszystkie [konta](/developers/docs/accounts/) połączone haszami i zredukowane do pojedynczego haszu źródłowego przechowywanego na blockchainie. - -### Transakcje {#transactions} - -Transakcje są to pojedyncze kryptograficznie podpisane instrukcję pochodzące z kont użytkowników. Możemy wyróżnić dwa typy transakcji: te, których wynikiem są wywołania komunikatów, oraz te, których wynikiem jest utworzenie kontraktu. - -Rezultatem stworzenia nowego kontraktu jest stworzenie nowego konta kontaktu zawierającego skompilowany kod bitowy [inteligentnego kontraktu](/developers/docs/smart-contracts/anatomy/). Ilekroć inne konto wysyła wywołania komunikatów do tego kontraktu, wykonuje on kod bitowy. - -## Instrukcje EVM {#evm-instructions} - -EVM działa jako [maszyna stosu](https://pl.wikipedia.org/wiki/Automat_sko%C5%84czony), która posiada 1024 elementy. Każdy element jest 256-bitowym słowem, które zostało wybrane dla zmaksymalizowania kompatybilności z algorytmem SHA-3-256. - -![A diagram showing the make up of the stack](../../../../../developers/docs/evm/evm-stack.png) -_Diagram adapted from [Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ - -Removed as we should probably show memory and account storage too if showing stack--> - -Podczas wykonywania EVM przechowuje _pamięć_ przejściową (w postaci tablicy bajtów z adresami słów), która jednak nie jest trwała między transakcjami. - -Kontrakty jednak zawierają drzewo _pamięciowe_ Merkle Patricia (jako adresowalną tablicę słów), powiązane w wiadomości z odpowiednim kontem i częścią stanu globalnego. - -Skompilowany kod bitowy inteligentnego kontraktu wykonywany jest jako szereg [kodów operacyjnych](https://www.ethervm.io/) EVM, które przeprowadzają standardowe operacje na stosie, takie jak `XOR`, `AND`, `ADD`, `SUB` itp. EVM implementuje również szereg operacji stosu specyficznych dla blockchaina, takich jak `ADDRESS`, `BALANDCE`, `SHA3`, `BLOCKHASH` itp. - -![Schemat pokazujący, gdzie potrzebny jest gaz dla operacji EVM](../../../../../developers/docs/gas/gas.png) _Schemat zaadaptowany z [Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ - -## Implementacja EVM {#evm-implementations} - -Wszystkie implementacje EVM muszą być zgodne ze specyfikacją opisaną w Yellowpaper Ethereum. - -W ponad pięcioletniej historii Ethereum, EVM przeszło kilka gruntownych weryfikacji, w ciągu tego czasu znajdziemy również kilka implementacji EVM w różnych językach programowania. - -Wszyscy [klienci Ethereum](/developers/docs/nodes-and-clients/#execution-clients) posiadają implementacje EVM. Dodatkowo jest tu kilka samodzielnych implementacji, włącznie z: - -- [Py-EVM](https://github.com/ethereum/py-evm) - _Python_ -- [evmone](https://github.com/ethereum/evmone) - _C++_ -- [ethereumjs-vm](https://github.com/ethereumjs/ethereumjs-vm) - _JavaScript_ -- [eEVM](https://github.com/microsoft/eevm) - _C++_ - -## Dalsza lektura {#further-reading} - -- [Ethereum Yellowpaper](https://ethereum.github.io/yellowpaper/paper.pdf). -- [The Beigepaper](https://github.com/chronaeon/beigepaper) -- [Maszyna Wirtualna Ethereum (EVM) – kody operacyjne](https://www.ethervm.io/) - -## Tematy powiązane {#related-topics} - -- [Gaz](/developers/docs/gas/) diff --git a/src/content/translations/pl/developers/docs/gas/index.md b/src/content/translations/pl/developers/docs/gas/index.md deleted file mode 100644 index 81cf31bb924..00000000000 --- a/src/content/translations/pl/developers/docs/gas/index.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Gaz i opłaty -description: -lang: pl -incomplete: true -isOutdated: true ---- - -Gaz ma kluczowe znaczenie dla sieci Ethereum. To jest paliwo, które pozwala mu działać w taki sam sposób, jak samochód potrzebuje benzyny. - -## Warunki wstępne {#prerequisites} - -Aby lepiej zrozumieć tę stronę, zalecamy przeczytanie informacji na temat [transakcji](/developers/docs/transactions/) i [EVM](/developers/docs/evm/). - -## Co to jest gaz? {#what-is-gas} - -Gaz odnosi się do jednostki, która mierzy ilość wysiłku obliczeniowego wymaganego do wykonania określonych operacji w sieci Ethereum. - -Ponieważ każda transakcja Ethereum wymaga zasobów obliczeniowych do wykonania, każda transakcja wymaga opłaty. Gaz odnosi się do opłaty wymaganej do pomyślnego przeprowadzenia transakcji na Ethereum. - -![Schemat pokazujący, gdzie potrzebny jest nam gaz dla operacji EVM](../../../../../developers/docs/gas/gas.png) _Schemat zaadaptowany z [Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ - -Zasadniczo opłaty za gaz są uiszczane w walucie ojczystej Ethereum, eterze (ETH). Ceny gazu są oznaczane w Gwei, który sam jest nominałem ETH — każdy Gwei jest równy 0,00000001 ETH (10-9 ETH). Na przykład, zamiast mówić, że Twój gaz kosztuje 0,000000001 Ethera, możesz powiedzieć, że gaz kosztuje 1 Gwei. - -Film ten oferuje zwięzłe omówienie gazu i powodów jego istnienia: - - - -## Dlaczego istnieją opłaty za gaz? {#why-do-gas-fees-exist} - -Krótko mówiąc, opłaty za gaz pomagają utrzymać bezpieczeństwo sieci Ethereum. Wymagając opłaty za każde obliczenie wykonane w sieci, zapobiegamy spamowaniu sieci. Aby zapobiec przypadkowym lub wrogim nieskończonym pętlom lub innym stratom obliczeniowym w kodzie, każda transakcja musi ustawić limit kroków obliczeniowych wykonania kodu, których może użyć. Podstawową jednostką obliczeniową jest „gaz”. - -Chociaż transakcja zawiera limit, każdy gaz niewykorzystany w transakcji jest zwracany użytkownikowi. - -![Schemat pokazujący, w jaki sposób niewykorzystany gaz jest zwracany](../../../../../developers/docs/transactions/gas-tx.png) _Schemat zaadaptowany z [Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ - -## Dalsza lektura {#further-reading} - -- [Zrozumienie gazu Ethereum, bloków i rynku opłat](https://medium.com/@eric.conner/understanding-ethereum-gas-blocks-and-the-fee-market-d5e268bf0a0e) -- [Objaśnienia dotyczące gazu Ethereum](https://defiprime.com/gas) - -## Powiązane narzędzia {#related-tools} - -- [ETH Gas Station](https://ethgasstation.info/) _Sektory zorientowane na konsumentów dla rynku gazu Ethereum_ -- [Etherscan Gas Tracker](https://etherscan.io/gastracker) _Oszacowanie ceny gazu transakcji_ -- [Bloxy Gas Analytics](https://stat.bloxy.info/superset/dashboard/gas/?standalone=true) _Statystyki Gazu Ethereum_ - -## Tematy powiązane {#related-topics} - -- [Wydobywanie](/developers/docs/consensus-mechanisms/pow/mining/) diff --git a/src/content/translations/pl/developers/docs/nodes-and-clients/index.md b/src/content/translations/pl/developers/docs/nodes-and-clients/index.md deleted file mode 100644 index 5fbad68c95a..00000000000 --- a/src/content/translations/pl/developers/docs/nodes-and-clients/index.md +++ /dev/null @@ -1,233 +0,0 @@ ---- -title: Węzły i klienci -description: Przegląd węzłów Ethereum i oprogramowania klienta, a także jak skonfigurować węzeł i dlaczego powinieneś to zrobić. -lang: pl -sidebarDepth: 2 -isOutdated: true ---- - -Aby Ethereum działało w sposób zdecentralizowany, potrzebuje rozproszonej sieci węzłów, która może weryfikować bloki i dane transakcji. Potrzebujesz aplikacji znanej jako klient, aby „uruchomić węzeł”. - -## Wymagania wstępne {#prerequisites} - -Powinieneś zrozumieć koncepcję zdecentralizowanej sieci, zanim zagłębisz się w nią i uruchomisz własną instancję klienta Ethereum. Spójrz na nasze [wprowadzenie do Ethereum](/developers/docs/intro-to-ethereum/). - -## Czym są węzły i klienci? {#what-are-nodes-and-clients} - -„Węzeł” odnosi się do oprogramowania znanego jako klient. Klient jest implementacją Ethereum, która za zadanie ma weryfikację wszystkich transakcji w kolejnych blokach, utrzymywać bezpieczeństwo sieci i poprawność danych. - -Możesz zobaczyć widok sieci Ethereum w czasie rzeczywistym, patrząc na [mapę węzłów](https://etherscan.io/nodetracker). - -Wiele [implementacji klientów Ethereum](/developers/docs/nodes-and-clients/#execution-clients) istnieje w wielu językach. Cechą wspólną tych implementacji klienckich jest to, że wszystkie są zgodne z formalną specyfikacją. Ta specyfikacja określa, jak działa sieć Ethereum i blockchain. - -![Klient Eth1x](../../../../../developers/docs/nodes-and-clients/client-diagram.png) Uproszczony schemat funkcji klienta Ethereum. - -## Typy węzłów {#node-types} - -Jeśli chcesz uruchomić swój własny węzeł, powinieneś zrozumieć, że istnieją różne typy węzłów, które zużywają dane w inny sposób. W rzeczywistości klienci mogą uruchamiać 3 różne typy węzłów — lekki, pełny i archiwalny. Istnieją również opcje różnych strategii synchronizacji, które umożliwiają szybszą synchronizację. Synchronizacja odnosi się do tego, jak szybko może uzyskać najbardziej aktualne informacje o stanie Ethereum. - -### Pełny węzeł {#full-node} - -- Przechowuje pełne dane blockchainu. -- Uczestniczy w walidacji bloków, weryfikuje wszystkie bloki i stany. -- Wszystkie stany mogą pochodzić z pełnego węzła. -- Obsługuje sieć i dostarcza dane na żądanie. - -### Lekki węzeł {#light-node} - -- Przechowuje łańcuch nagłówków i żąda wszystkiego innego. -- Potrafi zweryfikować poprawność danych względem korzeni stanu w nagłówkach bloków. -- Przydatne dla urządzeń o niskiej przepustowości, takich jak urządzenia wbudowane lub telefony komórkowe, które nie stać na przechowywanie gigabajtów danych blockchainu. - -### Węzeł archiwum {#archive-node} - -- Przechowuje wszystko w pełnym węźle i buduje archiwum stanów historycznych. Potrzebne, jeśli chcesz zapytać o coś takiego jak saldo konta w bloku #4 000,000. -- Dane te reprezentują jednostki terabajtów, co sprawia, że ​​węzły archiwów są mniej atrakcyjne dla przeciętnych użytkowników, ale mogą być przydatne w przypadku usług takich jak eksploratory bloków, dostawcy portfeli i analizy łańcuchów. - -Synchronizowanie klientów w dowolnym trybie innym niż archiwum spowoduje wyczyszczenie danych łańcucha bloków. Oznacza to, że nie ma archiwum wszystkich stanów historycznych, ale cały węzeł jest w stanie budować je na żądanie. - -## Dlaczego należy uruchomić węzeł Ethereum? {#why-should-i-run-an-ethereum-node} - -Uruchomienie węzła pozwala Ci bezspornie i prywatnie korzystać z Ethereum podczas wspierania ekosystemu. - -### Korzyści dla Ciebie {#benefits-to-you} - -Prowadzenie własnego węzła umożliwia korzystanie z Ethereum w sposób naprawdę prywatny, samowystarczalny i pozbawiony zaufania. Nie musisz ufać sieci, ponieważ możesz samodzielnie zweryfikować dane ze swoim klientem. „Nie ufaj, sprawdź” jest popularną mantrą blockchainu. - -- Twój węzeł samodzielnie weryfikuje wszystkie transakcje i bloki pod kątem zasad konsensusu. Oznacza to, że nie musisz polegać na żadnych innych węzłach w sieci ani w pełni im zaufać. -- Nie będziesz musiał ujawniać swoich adresów i sald do przypadkowych węzłów. Wszystko można sprawdzić z własnym klientem. -- Twoja zdecentralizowana aplikacja może być bezpieczniejsza i bardziej prywatna, jeśli używasz własnego węzła. [MetaMask](https://metamask.io), [MyEtherWallet](https://myetherwallet.com) i kilka innych portfeli można łatwo skierować na swój własny lokalny węzeł. - -![Jak uzyskać dostęp do Ethereum za pośrednictwem aplikacji i węzłów](../../../../../developers/docs/nodes-and-clients/nodes.png) - -### Korzyści dla sieci {#network-benefits} - -Różnorodny zestaw węzłów jest ważny dla zdrowia, bezpieczeństwa i odporności operacyjnej Ethereum. - -- Zapewniają one dostęp do danych blockchainu dla niewielkich klientów, którzy od niego zależą. W szczytowych okresach użytkowania musi być wystarczająca liczba pełnych węzłów, aby ułatwić synchronizację lekkich węzłów. Lekkie węzły nie przechowują całego łańcucha bloków, zamiast tego weryfikują dane za pomocą [głównych stanów w nagłówkach bloków](/developers/docs/blocks/#block-anatomy). Mogą żądać więcej informacji od bloków, jeśli ich potrzebują. -- Pełne węzły wymuszają reguły konsensusu proof-of-work, więc nie można ich oszukać w celu zaakceptowania bloków, które ich nie przestrzegają. Zapewnia to dodatkowe bezpieczeństwo w sieci, ponieważ jeśli wszystkie węzły były lekkimi węzłami, które nie przeprowadzają pełnej weryfikacji, górnicy mogą zaatakować sieć i na przykład tworzyć bloki z wyższymi nagrodami. - -Jeśli uruchomisz pełny węzeł, korzysta z niego cała sieć Ethereum. - -## Uruchamianie własnego węzła {#running-your-own-node} - -### Projekty {#projects} - -[**Wybierz klienta i postępuj zgodnie z jego instrukcjami**](#clients) - -**ethnode —** **_uruchom węzeł Ethereum (Geth lub Parity) do celów rozwoju lokalnego._** - -- [GitHub](https://github.com/vrde/ethnode) - -**DAppNode —** **_system operacyjny do uruchamiania węzłów Web3, w tym Ethereum, na dedykowanym komputerze._** - -- [dappnode.io](https://dappnode.io) - -### Źródła {#resources} - -- [Uruchamianie pełnych węzłów Ethereum: kompletny przewodnik](https://medium.com/coinmonks/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _7 listopada 2019 r. – Justin Leroux_ -- [Schemat konfiguracji węzła](https://dev.to/5chdn/ethereum-node-configuration-modes-cheat-sheet-25l8) _5 stycznia, 2019 – Afryka Schoeden_ -- [Jak zainstalować i uruchomić węzeł Geth](https://www.quiknode.io/guides/infrastructure/how-to-install-and-run-a-geth-node) _4 października 2020 r. – Sahil Sen_ -- [Jak zainstalować i uruchomić węzeł OpenEthereum (poprzednio węzeł parzystości)](https://www.quiknode.io/guides/infrastructure/how-to-run-a-openethereum-ex-parity-client-node) _22 września 2020 r. – Sahil Sen_ - -## Alternatywy {#alternatives} - -Uruchamianie własnego węzła może być trudne i nie zawsze musisz uruchamiać własną instancję. W tym przypadku możesz użyć zewnętrznego dostawcy API, takiego jak [Infura](https://infura.io), [Alchemia](https://alchemyapi.io) lub [QuikNode](https://www.quiknode.io). Alternatywnie [ArchiveNode](https://archivenode.io/) to wspierany przez społeczność węzeł archiwizacji, który ma nadzieję na przekazanie danych archiwalnych w blockchain Ethereum niezależnym programistom, którzy w przeciwnym razie nie mogli sobie na nie pozwolić. - -Jeśli ktoś uruchamia węzeł Ethereum z publicznym API w Twojej społeczności, możesz wskazać swoje lekkie portfele (takie jak MetaMask) do węzła społeczności [za pośrednictwem niestandardowego RPC](https://metamask.zendesk.com/hc/en-us/articles/360015290012-Using-a-Local-Node) i zyskać większą prywatność niż korzystając z zaufanej trzeciej strony. - -Z drugiej strony, jeśli uruchamiasz klienta, możesz podzielić się nim ze znajomymi, którzy mogą tego potrzebować. - -## Klienci {#execution-clients} - -Ethereum jest zaprojektowany do oferowania różnych klientów, stworzonych przez różne zespoły przy użyciu różnych języków programowania. Dzięki temu sieć jest silniejsza i bardziej zróżnicowana. Idealnym celem jest osiągnięcie różnorodności bez zdominowania przez żadnego klienta w celu zmniejszenia pojedynczych punktów niepowodzenia. - -W tabeli przedstawiono podsumowanie poszczególnych klientów. Wszystkie z nich są aktywnie opracowywane, utrzymywane i przechodzą [testy klienckie](https://github.com/ethereum/tests). - -| Klient | Język | Systemy operacyjne | Sieci | Strategie synchronizacji | Wycinanie stanu | -| ------------------------------------------------------------ | -------- | --------------------- | ----------------------------------------- | ------------------------------ | --------------- | -| [Geth](https://geth.ethereum.org/) | Go | Linux, Windows, macOS | Mainnet, Görli, Rinkeby, Ropsten | Szybka, pełna | Archive, Pruned | -| [OpenEthereum](https://github.com/openethereum/openethereum) | Rust | Linux, Windows, macOS | Mainnet, Kovan, Ropsten i więcej | Warp, pełna | Archive, Pruned | -| [Nethermind](http://nethermind.io/) | C#, .NET | Linux, Windows, macOS | Mainnet, Görli, Ropsten, Rinkeby I więcej | Szybka, pełna | Archive, Pruned | -| [Besu](https://besu.hyperledger.org/en/stable/) | Java | Linux, Windows, macOS | Mainnet, Rinkeby, Ropsten, i Görli | Szybka, pełna | Archive, Pruned | -| [Trinity](https://trinity.ethereum.org/) | Python | Linux, macOS | Mainnet, Görli, Ropsten, Rinkeby i więcej | Pełna, wiązka, szybka/nagłówek | Archive | - -Więcej informacji o obsługiwanych sieciach znajdziesz w rozdziale [Sieci Ethereum](/developers/docs/networks/). - -### Zalety różnych implementacji {#advantages-of-different-implementations} - -Każdy klient ma unikalne przypadki i zalety, więc powinieneś wybrać jeden na podstawie własnych preferencji. Różnorodność pozwala implementacjom skupić się na różnych funkcjach i odbiorcach. Możesz wybrać klienta na podstawie funkcji, wsparcia, języka programowania lub licencji. - -#### Go Ethereum {#geth} - -Go Ethereum (w skrócie Geth) jest jedną z oryginalnych implementacji protokołu Ethereum. Obecnie jest to najbardziej rozpowszechniony klient z największą bazą użytkowników i różnorodnością narzędzi dla użytkowników i programistów. Jest napisany w Go, w pełni open source i licencjonowany na mocy GNU LGPL v3. - -#### OpenEthereum {#openethereum} - -OpenEthereum jest szybkim, bogatym w funkcje i zaawansowanym klientem Ethereum opartym na CLI. Został zbudowany w celu zapewnienia niezbędnej infrastruktury dla szybkich i niezawodnych usług, które wymagają szybkiej synchronizacji i maksymalnego czasu pracy. Celem OpenEthereum jest być najszybszy, najlżejszy i najbezpieczniejszy klient Ethereum. Zapewnia czystą, modułową bazę kodową pozwalającą na: - -- łatwe dostosowywanie. -- łatwą integrację z usługami lub produktami. -- minimalną ilość pamięci i miejsca przechowywania. - -OpenEthereum jest rozwijany przy użyciu najnowocześniejszego języka programowania Rust i licencjonowanego na licencji GPLv3. - -#### Nethermind {#nethermind} - -Nethermind to implementacja Ethereum stworzona za pomocą stosu technologicznego C# .NET, działająca na wszystkich głównych platformach, w tym ARM. Oferuje ona wspaniałe wyniki dzięki: - -- zoptymalizowanej maszynie wirtualnej -- dostępowi do stanu -- funkcjom sieciowym i bogatym funkcjom, takim jak pulpity nawigacyjne Prometheus/Graphana, obsługa rejestrowania sekwencyjnego dla przedsiębiorstw, śledzenie RPC JSON i wtyczki analityczne. - -Nethermind ma również [dokładną dokumentację](https://docs.nethermind.io), silne wsparcie dla programistów, społeczność online i wsparcie 24/7 dostępne dla użytkowników premium. - -#### Besu {#besu} - -Hyperledger Besu to klient Ethereum klasy korporacyjnej dla sieci publicznych i autoryzowanych. Obsługuje wszystkie funkcje sieci głównej Ethereum, od śledzenia do GraphQL, ma rozbudowany monitoring i jest obsługiwany przez ConsenSys, zarówno w otwartych kanałach społecznościowych, jak i poprzez komercyjne umowy SLA dla przedsiębiorstw. Jest napisany w Java i jest licencjonowany Apache 2.0. - -### Tryb synchronizacji {#sync-modes} - -- Pełna – pobiera wszystkie bloki (w tym nagłówki, transakcje i paragony) i generuje stan łańcucha bloków stopniowo poprzez wykonanie każdego bloku. -- Szybka (domyślna) – pobiera wszystkie bloki (w tym nagłówki, transakcje i paragony), weryfikuje wszystkie nagłówki i pobiera stan i weryfikuje go w nagłówkach. -- Lekki – pobiera wszystkie nagłówki bloków, dane bloków i weryfikuje niektóre losowo. -- Synchronizacja warp – co 5000 bloków, węzły wykonają migawkę o krytycznym znaczeniu dla konsensusu. Każdy węzeł może pobrać te zrzuty w sieci, umożliwiając szybką synchronizację. [Więcej o warp](https://openethereum.github.io/wiki/Warp-Sync-Snapshot-Format) -- Synchronizacja beam – tryb synchronizacji, który umożliwia szybsze działanie. Nie wymaga długich oczekiwań na synchronizację, zamiast tego wypełnia dane z upływem czasu. [Więcej o beam](https://medium.com/@jason.carver/intro-to-beam-sync-a0fd168be14a) -- Synchronizacja nagłówka – możesz użyć zaufanego punktu kontrolnego, aby rozpocząć synchronizację od nowszego nagłówka, a następnie pozostawić to procesowi w tle, aby ostatecznie wypełnić luki - -Typ synchronizacji określasz podczas konfiguracji, na przykład: - -**Konfigurowanie synchronizacji lekkiej w [GETH](https://geth.ethereum.org/)** - -`geth --syncmode "light"` - -**Konfigurowanie synchronizacji nagłówka w Trinity** - -`trinity --sync-from-checkpoint eth://block/byhash/0xa65877df954e1ff2012473efee8287252eee956c0d395a5791f1103a950a1e21?score=15,835,269,727,022,672,760,774` - -## Sprzęt {#hardware} - -Wymagania sprzętowe różnią się w zależności od klienta, ale zazwyczaj nie są wysokie, ponieważ węzeł musi po prostu pozostać zsynchronizowany. Nie należy mylić tego z wydobywaniem, które wymaga dużo większej mocy obliczeniowej. Jednak czas synchronizacji i wydajność poprawiają się dzięki mocniejszemu sprzętowi. W zależności od Twoich potrzeb i pragnień, Ethereum można uruchomić na Twoim komputerze, serwerze domowym, komputerach jednopłytowych lub wirtualnych serwerach prywatnych w chmurze. - -Prostym sposobem na uruchomienie własnego węzła jest użycie wtyczek „plug and play”, takich jak [DAppNode](https://dappnode.io/). Zapewnia sprzęt do uruchamiania klientów i aplikacji od nich zależnych z prostym interfejsem użytkownika. - -### Wymagania {#requirements} - -Przed zainstalowaniem klienta upewnij się, że komputer ma wystarczającą ilość zasobów, aby go uruchomić. Poniżej znajdują się minimalne i zalecane wymagania, jednak kluczowym elementem jest przestrzeń dyskowa. Synchronizacja blockchainu Ethereum jest bardzo intensywna pod kątem wejścia/wyjścia. Najlepiej mieć dysk półprzewodnikowy (SSD). Aby uruchomić klienta Ethereum na dysku twardym, potrzebujesz co najmniej 8 GB pamięci RAM jako pamięci podręcznej. - -#### Minimalne wymagania {#recommended-specifications} - -- Procesor z 2+ rdzeniami -- Minimum 4 GB RAM z SSD, 8 GB+ jeśli masz HDD -- Przepustowość 8 Mbit/s - -#### Zalecane specyfikacje {#recommended-specifications} - -- Szybki procesor z ponad 4 rdzeniami -- 16 GB+ RAM -- Szybki SSD z co najmniej 500 GB wolnego miejsca -- 25+ Mbit/s przepustowość - -W zależności od tego, które oprogramowanie i tryb synchronizacji mają być używane, potrzebne są setki GB przestrzeni dyskowej. Przybliżone wartości i wzrost można znaleźć poniżej. - -| Klient | Rozmiar dysku (szybka synchronizacja) | Rozmiar dysku (pełne archiwum) | -| --------------- | ------------------------------------- | ------------------------------ | -| Klient Ethereum | 400 GB+ | 4,7 TB+ | -| OpenEthereum | 280 GB+ | 4,6 TB+ | -| Nethermind | 200 GB+ | 3 TB+ | -| Besu | 750 GB+ | 4 TB+ | - -![Wykres pokazujący, że ilość GB potrzebna do pełnej synchronizacji ma tendencję wzrostową](../../../../../developers/docs/nodes-and-clients/full-sync.png) - -![Wykres pokazujący, że ilość GB potrzebna do synchronizacji archiwum ma tendencję wzrostową](../../../../../developers/docs/nodes-and-clients/archive-sync.png) - -Te wykresy pokazują, jak zawsze zmieniają się wymagania dotyczące przechowywania. Aby uzyskać najbardziej aktualne dane dla Geth i Parity, zobacz [pełną synchronizację danych](https://etherscan.io/chartsync/chaindefault) i [archiwum danych synchronizacji](https://etherscan.io/chartsync/chainarchive). - -### Ethereum na komputerze jednopłytowym {#ethereum-on-a-single-board-computer} - -Najbardziej wygodnym i tanim sposobem uruchomienia węzła Ethereum jest korzystanie z jednego komputera z architekturą ARM jak Raspberry Pi. [Ethereum na ARM](https://twitter.com/EthereumOnARM) dostarcza obrazy klientów Geth, Parity, Nethereumd i Besu. Oto prosty samouczek [jak zbudować i skonfigurować klienta ARM](/developers/tutorials/run-node-raspberry-pi/). - -Małe, niedrogie i wydajne urządzenia, takie jak te, są idealne do uruchomienia węzła w domu. - -## Klienci Eth2 {#consensus-clients} - -Pojawili się nowi klienci obsługujący [aktualizacje Eth2](/roadmap/beacon-chain/). Będą obsługiwać łańcuch śledzący i wspierać nowy mechanizm konsensusu [proof-of-stake](/developers/docs/consensus-mechanisms/pos/). - -## Dalsza lektura {#further-reading} - -W Internecie jest wiele instrukcji i informacji o klientach Ethereum, tutaj jest kilka, które mogą być pomocne. - -- [Ethereum 101 – Część 2 – Zrozumienie węzłów](https://kauri.io/ethereum-101-part-2-understanding-nodes/48d5098292fd4f11b251d1b1814f0bba/a) _–Wil Barnes, 13 lutego 2019_ -- [Uruchamianie pełnych węzłów Ethereum: kompletny przewodnik](https://medium.com/@JustinMLeroux/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _7 listopada 2019 r. – Justin Leroux_ -- [Analizowanie wymagań sprzętowych dla Ethereum w pełni zweryfikowany węzeł](https://medium.com/coinmonks/analyzing-the-hardware-requirements-to-be-an-ethereum-full-validated-node-dc064f167902) _– Albert Palau, 24 września 2018 r._ -- [Uruchomienie węzła Besu na Ethereum Mainnet: Korzyści, Wymagania i Ustawienia](https://pegasys.tech/running-a-hyperledger-besu-node-on-the-ethereum-mainnet-benefits-requirements-and-setup/) _– Felipe Faraggi, 7 maja 2020_ - -## Powiązane tematy {#related-topics} - -- [Bloki](/developers/docs/blocks/) -- [Sieci](/developers/docs/networks/) - -## Powiązane samouczki {#related-tutorials} - -- [Uruchamianie węzła za pomocą Geth](/developers/tutorials/run-light-node-geth/) _– Jak pobrać, zainstalować i uruchomić Geth. Omówienie trybów synchronizacji, konsoli JavaScript i więcej._ -- [Turn your Raspberry Pi 4 into an Eth 1.0 or Eth 2.0 node just by flashing the MicroSD card – Installation guide](/developers/tutorials/run-node-raspberry-pi/) _– Flash your Raspberry Pi 4, plug in an ethernet cable, connect the SSD disk and power up the device to turn the Raspberry Pi 4 into a full Ethereum 1.0 node or an Ethereum 2.0 node (beacon chain / validator)._ diff --git a/src/content/translations/pl/developers/docs/scaling/layer-2-rollups/index.md b/src/content/translations/pl/developers/docs/scaling/layer-2-rollups/index.md deleted file mode 100644 index 32ac3b95d60..00000000000 --- a/src/content/translations/pl/developers/docs/scaling/layer-2-rollups/index.md +++ /dev/null @@ -1,135 +0,0 @@ ---- -title: Pakiety zbiorcze warstwy 2 -description: Wprowadzenie do różnych rozwiązania skalowania warstwy 2 opracowywanych obecnie przez społeczność Ethereum. -lang: pl -incomplete: true -sidebarDepth: 3 ---- - -Warstwa 2 to zbiorczy termin dla rozwiązań zaprojektowanych, aby pomóc w skalowaniu aplikacji poprzez obsługę transakcji poza siecią główną Ethereum (warstwa 1), jednocześnie korzystając z solidnego zdecentralizowanego modelu bezpieczeństwa sieci głównej. Szybkość transakcji pogarsza się, gdy sieć jest zajęta, co może pogorszyć wrażenia użytkownika w przypadku niektórych rodzajów aplikacji zdecentralizowanych. A gdy sieć staje się coraz bardziej zajęta, ceny gazu rosną, ponieważ nadawcy transakcji starają się przelicytować się nawzajem. To może sprawić, że korzystanie z Ethereum będzie bardzo kosztowne. - -## Warunki wstępne {#prerequisites} - -Musisz dobrze się orientować we wszystkich podstawowych tematach i mieć zaawansowaną wiedzę na temat [skalowania Ethereum](/developers/docs/scaling/). Wdrażanie rozwiązań skalujących takich jak pakiety zbiorcze jest trudnym tematem, ponieważ technologia nie jest jeszcze sprawdzona w boju i nadal jest badana i rozwijana. - -## Dlaczego warstwa 2 jest potrzebna? {#why-is-layer-2-needed} - -- Niektóre przypadki użytkowania, takie jak gry blockchain, nie mają sensu z bieżącymi czasami transakcji -- Korzystanie z aplikacji blockchain może być niepotrzebnie kosztowne -- Żadne aktualizacje skalowalności nie powinny odbywać się kosztem decentralizacji ani bezpieczeństwa — warstwa 2 wykorzystuje Ethereum. - -## Pakiety zbiorcze {#rollups} - -Pakiety zbiorcze to rozwiązania, które wykonują transakcje poza głównym łańcuchem Ethereum (warstwa 1), ale publikują dane transakcji w warstwie 1. Ponieważ dane transakcji znajdują się w warstwie 1, możliwe jest zabezpieczenie pakietów zbiorczych przez warstwę 1. Dziedziczenie właściwości bezpieczeństwa warstwy 1, przy jednoczesnym wykonywaniu operacji poza warstwą 1, jest cechą definiującą pakiety zbiorcze. - -Trzy uproszczone właściwości pakietów zbiorczych: - -1. wykonanie transakcji poza warstwą 1 -2. data lub dowód transakcji znajduje się w warstwie 1 -3. kontrakt inteligentny pakietu zbiorczego w warstwie 1, który może wymusić wykonanie w warstwie 2 poprzez użycie danych transakcji w warstwie 1 - -Pakiety zbiorcze wymagają od „operatorów” wniesienia kaucji w kontrakcie pakiety zbiorczego. Zachęca to operatorów do weryfikowania i prawidłowego przeprowadzania transakcji. - -**Użyteczne ze względu na:** - -- obniżenie opłat dla użytkowników -- otwarte uczestnictwo -- szybką przepustowość transakcji - -Istnieją dwa typy pakietów zbiorczych z różnymi modelami zabezpieczeń: - -- **Pakiety zbiorcze o wiedzy zerowej**: uruchamiają obliczenia off-chain i przesyłają do łańcucha [**dowód ważności**](/glossary/#validity-proof) -- **Optymistyczne pakiety zbiorcze**: zakładają, że transakcje są domyślnie ważne i w razie problemów uruchamiają jedynie obliczenia za pośrednictwem [**dowodu oszustwa**](/glossary/#fraud-proof) - -### Pakiety zbiorcze o wiedzy zerowej {#zk-rollups} - -Pakiety zbiorcze o wiedzy zerowej, znane również jako pakiety zbiorcze, łączą setki transferów off-chain i generują dowód kryptograficzny, znany jako SNARK (succinct non-interactive argument of knowledge). Określa się to jako dowód ważności, który jest publikowany w warstwie 1. - -Inteligentny kontrakt pakietu zbiorczego ZK utrzymuje stan wszystkich transferów w warstwie 2, a stan ten może być aktualizowany tylko za pomocą dowodu ważności. To znaczy, że pakiety zbiorcze ZK potrzebują jedynie dowodu ważności, a nie wszystkich danych transakcji. W przypadku pakietu zbiorczego ZK walidacja bloku jest szybsza i tańsza, ponieważ zawiera mniej danych. - -W przypadku pakietu zbiorczego ZK nie ma opóźnień przy przenoszeniu środków z warstwy 2 do warstwy 1, ponieważ dowód ważności zaakceptowany przez kontrakt pakietu zbiorczego ZK już zweryfikował środki. - -Ponieważ pakiety zbiorcze ZK znajdują się w warstwie 2, mogą być zoptymalizowane w celu dalszego zmniejszenia rozmiaru transakcji. Na przykład konto jest reprezentowane przez indeks zamiast adres, co zmniejsza transakcję z 32 bajtów do zaledwie 4 bajtów. Transakcje są także zapisywane w Ethereum jako `calldata`, co ogranicza gaz. - -#### Zalety i wady {#zk-pros-and-cons} - -| Zalety | Wady | -| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | -| Szybszy czas osiągnięcia nieodwołalności, ponieważ stan jest natychmiast weryfikowany po przesłaniu dowodów do głównego łańcucha. | Niektóre nie obsługują EVM. | -| Niepodatne na ataki ekonomiczne, na które mogą być podatne [optymistyczne pakiety zbiorcze](#optimistic-pros-and-cons). | Obliczenia dowodu ważności są intensywne – nie warto ich przeprowadzać w przypadku aplikacji o niewielkiej aktywności w łańcuchu. | -| Są bezpieczne i zdecentralizowane, ponieważ dane, które są potrzebne do odzyskania stanu, są przechowywane w łańcuchu warstwy 1. | Operator może wpływać na zamawianie transakcji | - -#### Użycie pakietów zbiorczych ZK {#use-zk-rollups} - -Istnieje wiele implementacji pakietów zbiorczych ZK, które można zintegrować z własnymi aplikacjami zdecentralizowanymi: - -- [Loopring](https://loopring.org/#/) -- [Starkware](https://starkware.co/) -- [Matter Labs zkSync](https://zksync.io/) -- [Aztec 2.0](https://aztec.network/) -- [Sieć Hermez](https://hermez.io/) -- [zkTube](https://zktube.io/) - -### Optymistyczne pakiety zbiorcze {#optimistic-rollups} - -Optymistyczne pakiety zbiorcze są umieszczone równolegle do głównego łańcucha Ethereum w warstwie 2. Mogą one oferować ulepszenia skalowalności, ponieważ domyślnie nie dokonują żadnych obliczeń. Zamiast tego, po dokonaniu transakcji proponują nowy stan do sieci głównej, czyli „notarialnie” potwierdzają transakcję. - -W przypadku optymistycznych pakietów zbiorczych transakcje są zapisywane w łańcuchu Ethereum jako `calldata`, co optymalizuje je jeszcze bardziej dzięki ograniczeniu kosztów gazu. - -Ponieważ obliczanie to powolna, droga część korzystania z Ethereum, optymistyczne pakiety zbiorcze mogą przynieść nawet 10-100-krotną poprawę skalowalności zależną od transakcji. Ta liczba zwiększy się jeszcze bardziej wraz z wprowadzeniem [łańcuchów odłamkowych](/roadmap/danksharding). Wynika to z faktu, że w przypadku zakwestionowania transakcji dostępnych będzie więcej danych. - -#### Transakcje sporne {#disputing-transactions} - -Optymistyczne pakiety zbiorcze nie obliczają transakcji, więc potrzebny jest mechanizm zapewniający, że transakcje są legalne, a nie oszukańcze. W tym miejscu pojawiają się dowody oszustwa. Jeśli ktoś powiadomi o oszukańczej transakcji, pakiet zbiorczy wykryje oszustwo i uruchomi obliczenie transakcji przy użyciu dostępnych danych o stanie. Oznacza to, że możesz mieć dłuższy czas oczekiwania na potwierdzenie transakcji niż w przypadku pakietu zbiorczego ZK, ponieważ może być zakwestionowana. - -![Schemat pokazujący, co się dzieje, gdy dochodzi do oszukańczej transakcji w optymistycznym pakiecie zbiorczym w Ethereum](../../../../../../developers/docs/scaling/optimistic-rollups/optimistic-rollups.png) - -Gaz potrzebny do obliczenia dowodu oszustwa jest nawet refundowany. Ben Jones z Optimism opisuje istniejący system zabezpieczeń: - -"_każdy, kto mógłby podjąć działania, które trzeba by udowodnić jako nieuczciwe, aby zabezpieczyć swoje fundusze, wymaga złożenia kaucji. Zasadniczo bierzesz trochę ETH, blokujesz go i mówisz „Hej, obiecuję powiedzieć prawdę”... Jeśli nie powiem prawdy, a oszustwa zostaną udowodnione, pieniądze te zostaną odcięte. Niektóre z tych pieniędzy nie tylko zostaną odcięte, ale część z nich będzie zapłatą za gaz, który ludzie wydali, przeprowadzając dowód oszustwa_" - -Widać więc zachęty: uczestnicy są karani za prowadzenie oszustw i otrzymują zwrot kosztów za ich udowodnienie. - -#### Zalety i wady {#optimistic-pros-and-cons} - -| Zalety | Wady | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | -| Wszystko, co możesz zrobić na warstwie 1 Ethereum, możesz zrobić za pomocą optymistycznych pakietów zbiorczych ze względu na kompatybilność z EVM i Solidity. | Długi czas oczekiwania na transakcję on-chain ze względu na potencjalne kwestionowanie oszustwa. | -| Wszystkie dane transakcji są przechowywane w łańcuchu warstwy 1, co oznacza, że są bezpieczne i zdecentralizowane. | Operator może wpływać na zamawianie transakcji | - -#### Stosowanie optymistycznych pakietów zbiorczych {#use-optimistic-rollups} - -Istnieje wiele implementacji optymistycznych pakietów zbiorczych, które można zintegrować z własnymi aplikacjami zdecentralizowanymi: - -- [Optimism](https://optimism.io/) -- [Offchain Labs Arbitrum Rollup](https://offchainlabs.com/) -- [Sieć paliwowa](https://fuel.sh/) -- [Cartesi](https://cartesi.io) -- [Boba](https://boba.network/) - -## Rozwiązania hybrydowe {#hybrid-solutions} - -Istnieją rozwiązania hybrydowe, które łączą w sobie najlepsze elementy wielu technologii warstwy 2 i mogą oferować konfigurowalne kompromisy. - -### Używanie rozwiązań hybrydowych {#use-hybrid-solutions} - -- [Celer](https://www.celer.network/) - -## Dalsza lektura {#further-reading} - -- [Niekompletny przewodnik po pakietach zbiorczych](https://vitalik.ca/general/2021/01/05/rollup.html) -- [Zero-Knowledge Blockchain Scalability](https://ethworks.io/assets/download/zero-knowledge-blockchain-scaling-ethworks.pdf) - -**Pakiety zbiorcze ZK** - -**Optymistyczne pakiety zbiorcze** - -- [Wszystko, co musisz wiedzieć o optymistycznym pakiecie zbiorczym](https://research.paradigm.xyz/rollups) -- [OVM Deep Dive](https://medium.com/ethereum-optimism/ovm-deep-dive-a300d1085f52) -- [Jak faktycznie działa pakiet zbiorczy Optimism?](https://www.paradigm.xyz/2021/01/how-does-optimisms-rollup-really-work) - -**Rozwiązania hybrydowe** - -- [Adding Hybrid PoS-Rollup Sidechain to Celer’s Coherent Layer-2 Platform on Ethereum](https://medium.com/celer-network/adding-hybrid-pos-rollup-sidechain-to-celers-coherent-layer-2-platform-d1d3067fe593) - -_Znasz jakieś zasoby społeczności, które Ci pomogły? Wyedytuj tę stronę i dodaj je!_ diff --git a/src/content/translations/pl/developers/docs/smart-contracts/anatomy/index.md b/src/content/translations/pl/developers/docs/smart-contracts/anatomy/index.md deleted file mode 100644 index bdc5bf16790..00000000000 --- a/src/content/translations/pl/developers/docs/smart-contracts/anatomy/index.md +++ /dev/null @@ -1,662 +0,0 @@ ---- -title: Anatomia inteligentnych kontraktów -description: Szczegółowa analiza anatomii inteligentnego kontaktu – funkcji, danych i zmiennych. -lang: pl ---- - -Inteligentny kontrakt to program, który działa pod adresem Ethereum. Składają się z danych i funkcji, które można wykonać po otrzymaniu transakcji. Oto przegląd tego, co stanowi inteligentny kontrakt. - -### Warunki wstępne {#prerequisites} - -Upewnij się, że najpierw przeczytałeś o [inteligentnych kontraktach](/developers/docs/smart-contracts/). Ten dokument zakłada, że znasz już języki programowania, takie jak JavaScript lub Python. - -## Dane {#data} - -Wszelkie dane kontraktu muszą być przypisane do lokalizacji: do `storage ` lub `memory`. Modyfikacja pamięci masowej w inteligentnym kontrakcie jest kosztowna, więc musisz zastanowić się, gdzie powinny znajdować się Twoje dane. - -### Pamięć {#storage} - -Trwałe dane są nazywane pamięcią masową i są reprezentowane przez zmienne stanu. Te wartości są przechowywane na stałe w blockchain. Musisz zadeklarować typ, aby kontrakt mógł śledzić, ile pamięci w blockchainie potrzebuje podczas kompilacji. - -```solidity -// Przykład Solidity -contract SimpleStorage { - uint storedData; // Zmienna stanu - // ... -} -``` - -```python -# Przykład Vyper -storedData: int128 -``` - -Jeśli programowałeś już w językach obiektowych, prawdopodobnie znasz większość typów. Jednak `address` powinien być dla Ciebie nowy, jeśli dopiero zaczynasz programować w Ethereum. - -Typ `address` może zawierać adres Ethereum, który odpowiada 20 bajtom lub 160 bitom. Jest zwracany w zapisach szesnastkowych z wiodącym 0x. - -Inne typy: - -- boolean -- liczba całkowita -- fixed point numbers -- fixed-size byte arrays -- dynamically-sized byte arrays -- Rational and integer literals -- String literals -- Hexadecimal literals -- Enums - -Aby uzyskać więcej wyjaśnień, zapoznaj się z dokumentami: - -- [Zobacz typy Vyper](https://vyper.readthedocs.io/en/v0.1.0-beta.6/types.html#value-types) -- [Zobacz typy Solidity](https://solidity.readthedocs.io/en/latest/types.html#value-types) - -### Pamięć {#memory} - -Wartości przechowywane tylko przez cały okres wykonywania funkcji kontraktowej nazywane są zmiennymi pamięci. Ponieważ nie są one przechowywane na stałe w blockchain, są znacznie tańsze w użyciu. - -Dowiedz się więcej o tym, jak EVM przechowuje dane (magazyn, pamięć i stos) w [Dokumenty Solidity](https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html?highlight=memory#storage-memory-and-the-stack). - -### Zmienne środowiskowe {#environment-variables} - -Oprócz zmiennych, które definiujesz w kontrakcie, istnieją pewne specjalne zmienne globalne. Są one wykorzystywane głównie do dostarczania informacji na temat łańcucha bloków lub bieżącej transakcji. - -Przykłady: - -| **Prop** | **Zmienna stanu** | **Opis** | -| ----------------- | ----------------- | -------------------------------------- | -| `block.timestamp` | uint256 | Aktualny blok — znacznik czasu epoki | -| `msg.sender` | address | Nadawca wiadomości (bieżące wywołanie) | - -## Funkcje {#functions} - -W najbardziej uproszczonym ujęciu, funkcje mogą pobierać informacje lub ustawiać informacje w odpowiedzi na przychodzące transakcje. - -Istnieją dwa rodzaje wywołań funkcji: - -- `internal` – nie tworzą one wywołania EVM - - Do funkcji i zmiennych stanu internal można uzyskać dostęp wyłącznie wewnętrznie (tzn. z bieżącego kontraktu lub pochodzących od niego kontraktów) -- `external` – tworzą one wywołanie EVM - - Funkcje zewnętrzne są częścią interfejsu kontraktu, co oznacza, że mogą być wywoływane z innych kontraktów oraz poprzez transakcje. Funkcja zewnętrzna `f` nie może być wywołana wewnętrznie (tj. `f()` nie działa, ale `this.f()` działa). - -Mogą być także `public` lub `private` - -- Funkcje `public` mogą być wywoływane wewnętrznie w ramach kontraktu lub zewnętrznie za pośrednictwem wiadomości -- Funkcje `private` są widoczne tylko dla kontraktu, w którym są zdefiniowane, a nie w kontraktach zależnych - -Zarówno funkcje, jak i zmienne stanu mogą być publiczne lub prywatne - -Oto funkcja aktualizacji zmiennej stanu w kontrakcie: - -```solidity -// Przykład Solidity -function update_name(string value) public { - dapp_name = value; -} -``` - -- Parametr `value` typu `string` jest przekazywany do funkcji: `update_name` -- Jest zadeklarowany jako `public`, co oznacza, że każdy może uzyskać do niego dostęp -- Nie jest zadeklarowany `view`, więc może modyfikować stan kontraktu - -### Funkcje view {#view-functions} - -Funkcje te obiecują nie zmieniać stanu danych kontraktu. Typowe przykłady to funkcje „getter”, które można wykorzystać na przykład do uzyskania salda użytkownika. - -```solidity -// Przykład Solidity -function balanceOf(address _owner) public view returns (uint256 _balance) { - return ownerPizzaCount[_owner]; -} -``` - -```python -dappName: public(string) - -@view -@public -def readName() -> string: - return dappName -``` - -Co jest uważane za modyfikację stanu: - -1. Zapis do zmiennych stanu. -2. [Emisja zdarzeń](https://solidity.readthedocs.io/en/v0.7.0/contracts.html#events). -3. [Tworzenie innych kontraktów](https://solidity.readthedocs.io/en/v0.7.0/control-structures.html#creating-contracts). -4. Używanie `selfdestruct`. -5. Wysyłanie etheru za pomocą wywołań. -6. Wywołanie dowolnej funkcji nieoznaczonej `view` lub `pure`. -7. Używanie wywołań niskiego poziomu. -8. Korzystanie z asemblera wbudowanego, który zawiera określone kody operacji. - -### Funkcje constructor {#constructor-functions} - -`konstruktor` funkcje są wykonywane tylko raz w momencie pierwszego wdrożenia kontraktu. Podobnie jak `konstruktor` w wielu językach programowania opartych na klasie, funkcje te często inicjują zmienne stanu do ich określonych wartości. - -```solidity -// Przykład Solidity -// Inicjuje dane umowy, ustawia `właściciela` -// na adres twórcy kontraktu. -constructor() public { - // Wszystkie inteligentne kontrakty opierają się na transakcjach zewnętrznych, aby wyzwolić swoje funkcje. - // `msg` to zmienna globalna zawierająca odpowiednie dane dotyczące danej transakcji, - // takie jak adres nadawcy i wartość ETH zawarta w transakcji. - // Dowiedz się więcej: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties - owner = msg.sender; -} -``` - -```python -# Przykład Vyper - -@external -def __init__(_beneficiary: address, _bidding_time: uint256): - self.beneficiary = _beneficiary - self.auctionStart = block.timestamp - self.auctionEnd = self.auctionStart + _bidding_time -``` - -### Wbudowane funkcje {#built-in-functions} - -Oprócz zmiennych i funkcji, które definiujesz w kontrakcie, istnieje kilka specjalnych wbudowanych funkcji. Najbardziej oczywistym przykładem jest: - -- `address.send()` – Solidity -- `send(address)` – Vyper - -Pozwalają one na wysyłanie ETH do innych kont. - -## Pisanie funkcji {#writing-functions} - -Twoja funkcja wymaga: - -- zmiennej i typu parametru (jeżeli akceptuje parametry) -- deklaracji wewnętrznej/zewnętrznej -- deklaracji pure/view/payable -- typu zwrotów (jeśli zwraca wartość) - -```solidity -pragma solidity >=0.4.0 <=0.6.0; - -contract ExampleDapp { - string dapp_name; // state variable - - // Called when the contract is deployed and initializes the value - constructor() public { - dapp_name = "My Example dapp"; - } - - // Get Function - function read_name() public view returns(string) { - return dapp_name; - } - - // Set Function - function update_name(string value) public { - dapp_name = value; - } -} -``` - -Pełny kontrakt może wyglądać w ten sposób. Tutaj funkcja `constructor` zapewnia początkową wartość zmiennej `dapp_name`. - -## Zdarzenia i dzienniki {#events-and-logs} - -Zdarzenia pozwalają Ci komunikować się z inteligentnym kontraktem z Twojego frontendu lub innych aplikacji subskrybujących. Gdy transakcja zostanie wykopana, inteligentne kontrakty mogą emitować zdarzenia i zapisywać do blockchainu dzienniki, które frontend może następnie przetworzyć. - -## Przykłady z komentarzami {#annotated-examples} - -Są to niektóre przykłady napisane w Solidity. Jeśli chcesz pobawić się kodem, możesz wchodzić z nimi w interakcję w [Remix](http://remix.ethereum.org). - -### Witaj świecie {#hello-world} - -```solidity -// Określa wersję Solidity przy użyciu wersji semantycznej. -// Więcej informacji: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma -pragma solidity ^0.5.10; - -// Definiuje kontrakt o nazwie `HelloWorld`. -// Kontrakt jest zbiorem funkcji i danych (jego stanu). -// Po wdrożeniu kontrakt znajduje się pod określonym adresem w blockchainie Ethereum. -// Dowiedz się więcej: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html -contract HelloWorld { - - // Deklaruje zmienną stanu `message` typu `string`. - // zmienne stanu to zmienne, których wartości są stale przechowywane w pamięci kontraktów. - // Słowo kluczowe `public` udostępnia zmienne spoza kontraktu - // i tworzy funkcję, którą inne kontrakty lub klienci mogą wywołać, aby uzyskać dostęp do tej wartości. - ciąg wiadomości publicznych; - - // Podobne do wielu języków obiektowych opartych na klasie, konstruktorem jest - // specjalna funkcja, która jest wykonywana tylko w momencie tworzenia kontraktu. - // Konstruktory są używane do inicjowania danych kontraktu. - // Dowiedz się więcej: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constructors - constructor(string memory initMessage) public { - //Akceptuje argument ciągu `initMessage` i ustawia wartość - // na zmienną pamięci kontraktu `message`). - wiadomość = initMessage; - } - - // funkcja publiczna, która akceptuje argument ciągu - // i aktualizuje zmienną pamięci `message`. - function update(string memory newMessage) public { - message = newMessage; - } -} -``` - -### Token {#token} - -```solidity -pragma solidity ^0.5.10; - -contract Token { - // Adres porównywalny z adresem e-mail - jest używany do indentyfikacji konta w Ethereum. - // Adresy mogą reprezentować inteligentne kontrakty lub konta zewnętrzne (użytkowników). - // Dowiedz się więcej: https://solidity.readthedocs.io/en/v0.5.10/types.html#address - address public owner; - - // Mapowanie jest zasadniczo strukturą danych o postaci tablicy skrótów. - // To mapowanie przypisuje niepodpisaną liczbę całkowitą (saldo tokena) do adresu (posiadacza tokenu). - // Dowiedz się więcej: https://solidity.readthedocs.io/en/v0.5.10/types.html#mapping-types - mapowanie (adres => uint) publiczne saldo; - - // Wydarzenia pozwalają na rejestrowanie aktywności w blockchain. - // Klienci Ethereum mogą słuchać zdarzeń, aby reagować na zmiany stanu kontraktu. - // Dowiedz się więcej: https://solidity.readthedocs.io/en/v0.5.10/contracty. tml#events - Transferu zdarzeń (adres od, adres do kwoty uint); - - // inicjuje dane umowy, ustawienie `właściciela` - // na adres twórcy kontraktu. - constructor() public { - // Wszystkie inteligentne kontrakty opierają się na transakcjach zewnętrznych, aby wyzwolić swoje funkcje. - // `msg` to zmienna globalna zawierająca odpowiednie dane dotyczące danej transakcji, - // takie jak adres nadawcy i wartość ETH zawarta w transakcji. - // Dowiedz się więcej: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties - owner = msg.sender; - } - - // Tworzy liczbę nowych tokenów i wysyła je na adres. - function mint(address receiver, uint amount) public { - // `require` jest strukturą kontroli używaną do wymuszania pewnych warunków. - // Jeśli wyrażenie `require` oceni na `false`, wyzwalany jest wyjątek, - // który cofa wszystkie zmiany w stanie podczas bieżącego wywołąnia. - // Więcej informacji: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions - - // Tylko właściciel kontraktu może wywołać tę funkcję - require(msg.sender == owner, "You are not the owner."); - - // Wymusza maksymalną kwotę tokenów - require(amount < 1e60, "Maximum issuance exceeded"); - - // Zwiększa saldo `receiver` o `amount` - balances[receiver] += amount; - } - - // Wysyła kwotę istniejących tokenów od dowolnego wywołującego na adres. - function transfer(address receiver, uint amount) public { - // Nadawca musi mieć wystarczającą ilość tokenów, aby wysłać - require(amount <= balances[msg.sender], "Insufficient balance."); - - // Dostosowuje salda tokenów z dwóch adresów - balances[msg.sender] -= amount; - balances[receiver] += amount; - - // Emituje wydarzenie zdefiniowane wcześniej - emit Transfer(msg.sender, receiver, amount); - } -} -``` - -### Unikalne zasoby cyfrowe {#unique-digital-asset} - -```solidity -pragma solidity ^0.5.10; - -// Imports symbols from other files into the current contract. -// In this case, a series of helper contracts from OpenZeppelin. - - -// Learn more: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#importing-other-source-files - -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; -import "../node_modules/@openzeppelin/contracts/introspection/ERC165.sol"; -import "../node_modules/@openzeppelin/contracts/math/SafeMath.sol"; - -// The `is` keyword is used to inherit functions and keywords from external contracts. -// In this case, `CryptoPizza` inherits from the `IERC721` and `ERC165` contracts. - - -// Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#inheritance -contract CryptoPizza is IERC721, ERC165 { - // Uses OpenZeppelin's SafeMath library to perform arithmetic operations safely. - // Learn more: https://docs.openzeppelin.com/contracts/2.x/api/math#SafeMath - using SafeMath for uint256; - - // Constant state variables in Solidity are similar to other languages - // but you must assign from an expression which is constant at compile time. - - - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constant-state-variables - uint256 constant dnaDigits = 10; - uint256 constant dnaModulus = 10 ** dnaDigits; - bytes4 private constant _ERC721_RECEIVED = 0x150b7a02; - - // Struct types let you define your own type - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#structs - struct Pizza { - string name; - uint256 dna; - } - - // Creates an empty array of Pizza structs - Pizza[] public pizzas; - - // Mapping from pizza ID to its owner's address - mapping(uint256 => address) public pizzaToOwner; - - // Mapping from owner's address to number of owned token - mapping(address => uint256) public ownerPizzaCount; - - // Mapping from token ID to approved address - mapping(uint256 => address) pizzaApprovals; - - // You can nest mappings, this example maps owner to operator approvals - mapping(address => mapping(address => bool)) private operatorApprovals; - - // Internal function to create a random Pizza from string (name) and DNA - function _createPizza(string memory _name, uint256 _dna) - // The `internal` keyword means this function is only visible - // within this contract and contracts that derive this contract - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#visibility-and-getters - internal - // `isUnique` is a function modifier that checks if the pizza already exists - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html#function-modifiers - isUnique(_name, _dna) - { - // Adds Pizza to array of Pizzas and get id - uint256 id = SafeMath.sub(pizzas.push(Pizza(_name, _dna)), 1); - - // Checks that Pizza owner is the same as current user - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions - assert(pizzaToOwner[id] == address(0)); - - // Maps the Pizza to the owner - pizzaToOwner[id] = msg.sender; - ownerPizzaCount[msg.sender] = SafeMath.add( - ownerPizzaCount[msg.sender], - 1 - ); - } - - // Creates a random Pizza from string (name) - function createRandomPizza(string memory _name) public { - uint256 randDna = generateRandomDna(_name, msg.sender); - _createPizza(_name, randDna); - } - - // Generates random DNA from string (name) and address of the owner (creator) - function generateRandomDna(string memory _str, address _owner) - public - // Functions marked as `pure` promise not to read from or modify the state - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#pure-functions - pure - returns (uint256) - { - // Generates random uint from string (name) + address (owner) - uint256 rand = uint256(keccak256(abi.encodePacked(_str))) + - uint256(_owner); - rand = rand % dnaModulus; - return rand; - } - - // Returns array of Pizzas found by owner - function getPizzasByOwner(address _owner) - public - // Functions marked as `view` promise not to modify state - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#view-functions - view - returns (uint256[] memory) - { - // Uses the `memory` storage location to store values only for the - // lifecycle of this function call. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/introduction-to-smart-contracts.html#storage-memory-and-the-stack - uint256[] memory result = new uint256[](ownerPizzaCount[_owner]); - uint256 counter = 0; - for (uint256 i = 0; i < pizzas.length; i++) { - if (pizzaToOwner[i] == _owner) { - result[counter] = i; - counter++; - } - } - return result; - } - - // Transfers Pizza and ownership to other address - function transferFrom(address _from, address _to, uint256 _pizzaId) public { - require(_from != address(0) && _to != address(0), "Invalid address."); - require(_exists(_pizzaId), "Pizza does not exist."); - require(_from != _to, "Cannot transfer to the same address."); - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - - ownerPizzaCount[_to] = SafeMath.add(ownerPizzaCount[_to], 1); - ownerPizzaCount[_from] = SafeMath.sub(ownerPizzaCount[_from], 1); - pizzaToOwner[_pizzaId] = _to; - - // Emits event defined in the imported IERC721 contract - emit Transfer(_from, _to, _pizzaId); - _clearApproval(_to, _pizzaId); - } - - /** - * Safely transfers the ownership of a given token ID to another address - * If the target address is a contract, it must implement `onERC721Received`, - * which is called upon a safe transfer, and return the magic value - * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; - * otherwise, the transfer is reverted. - */ - function safeTransferFrom(address from, address to, uint256 pizzaId) - public - { - // solium-disable-next-line arg-overflow - this.safeTransferFrom(from, to, pizzaId, ""); - } - - /** - * Safely transfers the ownership of a given token ID to another address - * If the target address is a contract, it must implement `onERC721Received`, - * which is called upon a safe transfer, and return the magic value - * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; - * otherwise, the transfer is reverted. - */ - function safeTransferFrom( - address from, - address to, - uint256 pizzaId, - bytes memory _data - ) public { - this.transferFrom(from, to, pizzaId); - require(_checkOnERC721Received(from, to, pizzaId, _data), "Must implmement onERC721Received."); - } - - /** - * Internal function to invoke `onERC721Received` on a target address - * The call is not executed if the target address is not a contract - */ - function _checkOnERC721Received( - address from, - address to, - uint256 pizzaId, - bytes memory _data - ) internal returns (bool) { - if (!isContract(to)) { - return true; - } - - bytes4 retval = IERC721Receiver(to).onERC721Received( - msg.sender, - from, - pizzaId, - _data - ); - return (retval == _ERC721_RECEIVED); - } - - // Burns a Pizza - destroys Token completely - // The `external` function modifier means this function is - // part of the contract interface and other contracts can call it - function burn(uint256 _pizzaId) external { - require(msg.sender != address(0), "Invalid address."); - require(_exists(_pizzaId), "Pizza does not exist."); - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - - ownerPizzaCount[msg.sender] = SafeMath.sub( - ownerPizzaCount[msg.sender], - 1 - ); - pizzaToOwner[_pizzaId] = address(0); - } - - // Returns count of Pizzas by address - function balanceOf(address _owner) public view returns (uint256 _balance) { - return ownerPizzaCount[_owner]; - } - - // Returns owner of the Pizza found by id - function ownerOf(uint256 _pizzaId) public view returns (address _owner) { - address owner = pizzaToOwner[_pizzaId]; - require(owner != address(0), "Invalid Pizza ID."); - return owner; - } - - // Approves other address to transfer ownership of Pizza - function approve(address _to, uint256 _pizzaId) public { - require(msg.sender == pizzaToOwner[_pizzaId], "Must be the Pizza owner."); - pizzaApprovals[_pizzaId] = _to; - emit Approval(msg.sender, _to, _pizzaId); - } - - // Returns approved address for specific Pizza - function getApproved(uint256 _pizzaId) - public - view - returns (address operator) - { - require(_exists(_pizzaId), "Pizza does not exist."); - return pizzaApprovals[_pizzaId]; - } - - /** - * Private function to clear current approval of a given token ID - * Reverts if the given address is not indeed the owner of the token - */ - function _clearApproval(address owner, uint256 _pizzaId) private { - require(pizzaToOwner[_pizzaId] == owner, "Must be pizza owner."); - require(_exists(_pizzaId), "Pizza does not exist."); - if (pizzaApprovals[_pizzaId] != address(0)) { - pizzaApprovals[_pizzaId] = address(0); - } - } - - /* - * Sets or unsets the approval of a given operator - * An operator is allowed to transfer all tokens of the sender on their behalf - */ - function setApprovalForAll(address to, bool approved) public { - require(to != msg.sender, "Cannot approve own address"); - operatorApprovals[msg.sender][to] = approved; - emit ApprovalForAll(msg.sender, to, approved); - } - - // Tells whether an operator is approved by a given owner - function isApprovedForAll(address owner, address operator) - public - view - returns (bool) - { - return operatorApprovals[owner][operator]; - } - - // Takes ownership of Pizza - only for approved users - function takeOwnership(uint256 _pizzaId) public { - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - address owner = this.ownerOf(_pizzaId); - this.transferFrom(owner, msg.sender, _pizzaId); - } - - // Checks if Pizza exists - function _exists(uint256 pizzaId) internal view returns (bool) { - address owner = pizzaToOwner[pizzaId]; - return owner != address(0); - } - - // Checks if address is owner or is approved to transfer Pizza - function _isApprovedOrOwner(address spender, uint256 pizzaId) - internal - view - returns (bool) - { - address owner = pizzaToOwner[pizzaId]; - // Disable solium check because of - // https://github.com/duaraghav8/Solium/issues/175 - // solium-disable-next-line operator-whitespace - return (spender == owner || - this.getApproved(pizzaId) == spender || - this.isApprovedForAll(owner, spender)); - } - - // Check if Pizza is unique and doesn't exist yet - modifier isUnique(string memory _name, uint256 _dna) { - bool result = true; - for (uint256 i = 0; i < pizzas.length; i++) { - if ( - keccak256(abi.encodePacked(pizzas[i].name)) == - keccak256(abi.encodePacked(_name)) && - pizzas[i].dna == _dna - ) { - result = false; - } - } - require(result, "Pizza with such name already exists."); - _; - } - - // Returns whether the target address is a contract - function isContract(address account) internal view returns (bool) { - uint256 size; - // Currently there is no better way to check if there is a contract in an address - // than to check the size of the code at that address. - // See https://ethereum.stackexchange.com/a/14016/36603 - // for more details about how this works. - // TODO Check this again before the Serenity release, because all addresses will be - // contracts then. - - - // solium-disable-next-line security/no-inline-assembly - assembly { - size := extcodesize(account) - } - return size > 0; - } -} -``` - -## Dodatkowo przeczytaj {#further-reading} - -Sprawdź dokumentację Solidity i Vyper, aby uzyskać pełniejszy przegląd inteligentnych kontraktów: - -- [Solidity](https://solidity.readthedocs.io/) -- [Vyper](https://vyper.readthedocs.io/) - -## Powiązane tematy {#related-topics} - -- [Inteligentne kontrakty](/developers/docs/smart-contracts/) -- [Maszyna Wirtualna Ethereum](/developers/docs/evm/) - -## Powiązane samouczki {#related-tutorials} - -- [Zmniejszenie kontraktów w celu walki z limitem wielkości kontraktu](/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/) _ – kilka praktycznych wskazówek, jak zmniejszyć rozmiar inteligentnego kontraktu._ -- [Rejestrowanie danych z inteligentnych kontraktów za pomocą zdarzeń](/developers/tutorials/logging-events-smart-contracts/) _– wprowadzenie do zdarzeń inteligentnych kontraktów i jak możesz ich używać do rejestrowania danych._ -- [Interakcja z innymi umowami z Solidity](/developers/tutorials/interact-with-other-contracts-from-solidity/) _– jak wdrożyć inteligentny kontrakt z istniejącego kontraktu i wchodzić z nim w interakcje._ diff --git a/src/content/translations/pl/developers/docs/standards/tokens/erc-20/index.md b/src/content/translations/pl/developers/docs/standards/tokens/erc-20/index.md deleted file mode 100644 index 3072c176956..00000000000 --- a/src/content/translations/pl/developers/docs/standards/tokens/erc-20/index.md +++ /dev/null @@ -1,152 +0,0 @@ ---- -title: Standard tokena ERC-20 -description: -lang: pl ---- - -## Wprowadzenie {#introduction} - -**Czym jest token?** - -Tokeny mogą reprezentować praktycznie wszystko w Ethereum: - -- punkty reputacji na platformie internetowej -- umiejętności postaci w grze -- bilety na loterię -- aktywa finansowe, takie jak udział w spółce -- walutę fiducjarną, taką jak USD -- uncję złota -- i więcej... - -Tak potężna funkcja Ethereum musi być obsługiwana przez solidny standard, prawda? To jest dokładnie to, gdzie ERC-20 odgrywa rolę! Te standardy umożliwiają programistom tworzenie aplikacji tokenów, które mogą współpracować z innymi produktami i usługami. - -**Co to jest ERC-20?** - -ERC-20 wprowadza standard dla tokenów wymiennych, innymi słowy mają one właściwość, która sprawia, że każdy token jest dokładnie taki sam (pod względem typu i wartości) jak inny token. Na przykład token ERC-20 działa podobnie jak ETH, oznacza, że 1 token jest i będzie zawsze równy wszystkim pozostałym tokenom. - -## Warunki wstępne {#prerequisites} - -- [Konta](/developers/docs/accounts) -- [Inteligentne kontrakty](/developers/docs/smart-contracts/) -- [Standardy tokenów](/developers/docs/standards/tokens/) - -## Treść {#body} - -ERC-20 (Ethereum Request for Comments 20) zaproponowany przez Fabiana Vogelstellera w listopadzie 2015 r. jest standardem tokenów, który implementuje API dla tokenów w inteligentnych kontraktach. - -Zapewnia funkcje takie jak przesyłanie tokenów z jednego konta na drugie, uzyskanie aktualnego salda tokenów na koncie oraz całkowitą podaż tokenów dostępnych w sieci. Poza tym ma również kilka innych funkcji , takich jak zatwierdzanie, że ilość tokenów z konta może być wydana przez konto osoby trzeciej. - -Jeśli inteligentny kontrakt implementuje następujące metody i zdarzenia, można go nazwać kontraktem tokena ERC-20, a po wdrożeniu będzie odpowiedzialny za śledzenie utworzonych tokenów w Ethereum. - -Od [EIP-20](https://eips.ethereum.org/EIPS/eip-20): - -#### Metody {#methods} - -```solidity -function name() public view returns (string) -function symbol() public view returns (string) -function decimals() public view returns (uint8) -function totalSupply() public view returns (uint256) -function balanceOf(address _owner) public view returns (uint256 balance) -function transfer(address _to, uint256 _value) public returns (bool success) -function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) -function approve(address _spender, uint256 _value) public returns (bool success) -function allowance(address _owner, address _spender) public view returns (uint256 remaining) -``` - -#### Wydarzenia {#events} - -```solidity -event Transfer(address indexed _from, address indexed _to, uint256 _value) -event Approval(address indexed _owner, address indexed _spender, uint256 _value) - -``` - -### Przykłady {#web3py-example} - -Zobaczmy, dlaczego standard jest tak ważny, aby ułatwić nam sprawdza kontraktów z tokenami ERC-20 na Ethereum. Potrzebujemy tylko interfejsu binarnego Umowy (ABI), aby utworzyć interfejs dla każdego tokenu ERC-20. Jak możesz zobaczyć poniżej, użyjemy uproszczonego ABI, aby zmniejszyć złożoność przykładu. - -#### Przykład Web3.py {#web3py-example} - -Najpierw upewnij się, że zainstalowałeś [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) bibliotekę Pythona: - -``` -pip install web3 -``` - -```python -from web3 import Web3 - - -w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) - -dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI -weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # Wrapped ether (WETH) - -acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11" # Uniswap V2: DAI 2 - -# This is a simplified Contract Application Binary Interface (ABI) of an ERC-20 Token Contract. - -# It will expose only the methods: balanceOf(address), decimals(), symbol() and totalSupply() -simplified_abi = [ - { - 'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], - 'name': 'balanceOf', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'decimals', - 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'symbol', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'totalSupply', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - } -] - -dai_contract = w3.eth.contract(address=w3.toChecksumAddress(dai_token_addr), abi=simplified_abi) -symbol = dai_contract.functions.symbol().call() -decimals = dai_contract.functions.decimals().call() -totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals -addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals - -# DAI -print("===== %s =====" % symbol) -print("Total Supply:", totalSupply) -print("Addr Balance:", addr_balance) - -weth_contract = w3.eth.contract(address=w3.toChecksumAddress(weth_token_addr), abi=simplified_abi) -symbol = weth_contract.functions.symbol().call() -decimals = weth_contract.functions.decimals().call() -totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals -addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals - -# WETH -print("===== %s =====" % symbol) -print("Total Supply:", totalSupply) -print("Addr Balance:", addr_balance) -``` - -## Dalsza lektura {#further-reading} - -- [EIP-20: standard tokena ERC-20](https://eips.ethereum.org/EIPS/eip-20) -- [OpenZeppelin – tokeny](https://docs.openzeppelin.com/contracts/3.x/tokens#ERC20) -- [OpenZeppelin – implementacja ERC-20](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) -- [ConsenSys – wdrożenie ERC-20](https://github.com/ConsenSys/Tokens/blob/master/contracts/eip20/EIP20.sol) - -## Powiązane tematy {#related-topics} - -- [ERC-721](/developers/docs/standards/tokens/erc-721/) -- [ERC-777](/developers/docs/standards/tokens/erc-777/) -- [ERC-1155](/developers/docs/standards/tokens/erc-1155/) diff --git a/src/content/translations/pl/developers/docs/standards/tokens/erc-721/index.md b/src/content/translations/pl/developers/docs/standards/tokens/erc-721/index.md deleted file mode 100644 index 5ce01862327..00000000000 --- a/src/content/translations/pl/developers/docs/standards/tokens/erc-721/index.md +++ /dev/null @@ -1,248 +0,0 @@ ---- -title: ERC-721 – standard tokenów niewymiennych -description: -lang: pl ---- - -## Wprowadzenie {#introduction} - -**Czym jest niewymienny token (NFT)?** - -Niewymienne tokeny (NFT) służą do identyfikacji czegoś lub kogoś w unikalny sposób. Ten typ tokenu jest idealny do użycia na platformach, które oferują przedmioty kolekcjonerskie, klucze dostępu, bilety loteryjne, numerowane miejsca na koncerty i mecze sportowe itp. Ten specjalny rodzaj tokena ma niesamowite możliwości, dlatego zasługuje na odpowiedni standard, ERC-721 pojawił się, aby to rozwiązać! - -**Co to jest ERC-721?** - -ERC-721 wprowadza standard dla NFT, innymi słowy ten typ tokena jest unikalny i może mieć różną wartość niż inny token z tego samego inteligentnego kontraktu, być może ze względu na jego wiek, rzadkość, a nawet coś innego, jak jego wygląd. Czekaj, wizualnie? - -Tak! Wszystkie NFT mają zmienną `uint256` o nazwie `tokenId`, więc dla każdego kontraktu ERC-721, para `contract address, uint256 tokenId` musi być unikatowa globalnie. Dzięki temu zdecentralizowana aplikacja może mieć „konwerter”, który używa `tokenId` jako danych wejściowych i wyświetla obraz czegoś fajnego, takiego jak zombie, broń, umiejętności lub niesamowite kociaki! - -## Warunki wstępne {#prerequisites} - -- [Konta](/developers/docs/accounts/) -- [Inteligentne kontrakty](/developers/docs/smart-contracts/) -- [Standardy tokenów](/developers/docs/standards/tokens/) - -## Treść {#body} - -ERC-721 (Ethereum Request for Comments 721), zaproponowany przez Williama Entrikena, Dietera Shirleya, Jacoba Evansa, Nastassia Sachs w styczniu 2018 r. to standard tokenów niewymiennych, który implementuje interfejs API dla tokenów w ramach inteligentnych kontraktów. - -Zapewnia funkcje, takie jak transfer tokenów z jednego konta na drugie, uzyskanie aktualnego salda tokenów na koncie, uzyskanie informacji o właścicielu określonego tokena, a także o całkowitej podaży tokena dostępnej w sieci. Poza tym ma również kilka innych funkcji, takich jak zatwierdzanie, że ilość tokenu z konta może być wydana przez konto osób trzecich. - -Jeśli inteligentny kontrakt implementuje następujące metody i zdarzenia, można go nazwać kontraktem tokenów niewymiennych ERC-721 , a po wdrożeniu będzie odpowiedzialny za śledzenie utworzonych tokenów w Ethereum. - -Od [EIP-721](https://eips.ethereum.org/EIPS/eip-721): - -#### Metody {#methods} - -```solidity - function balanceOf(address _owner) external view returns (uint256); - function ownerOf(uint256 _tokenId) external view returns (address); - function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; - function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; - function transferFrom(address _from, address _to, uint256 _tokenId) external payable; - function approve(address _approved, uint256 _tokenId) external payable; - function setApprovalForAll(address _operator, bool _approved) external; - function getApproved(uint256 _tokenId) external view returns (address); - function isApprovedForAll(address _owner, address _operator) external view returns (bool); -``` - -#### Wydarzenia {#events} - -```solidity - event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); - event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); - event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); -``` - -### Przykłady {#web3py-example} - -Zobaczmy, dlaczego standard jest tak ważny, aby ułatwić nam sprawdza kontraktów z tokenami ERC-721 na Ethereum. Potrzebujemy tylko interfejsu binarnego Umowy (ABI), aby utworzyć interfejs dla każdego tokenu ERC-721. Jak możesz zobaczyć poniżej, użyjemy uproszczonego ABI, aby zmniejszyć złożoność przykładu. - -#### Przykład Web3.py {#web3py-example} - -Najpierw upewnij się, że zainstalowałeś [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) bibliotekę Pythona: - -``` -pip install web3 -``` - -```python -from web3 import Web3 -from web3.utils.events import get_event_data - - -w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) - -ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # CryptoKitties Contract - -acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # CryptoKitties Sales Auction - -# To jest uproszczony interfejs ABI kontraktu ERC-721 NFT. -# It will expose only the methods: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply() -simplified_abi = [ - { - 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], - 'name': 'balanceOf', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'name', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], - 'name': 'ownerOf', - 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'symbol', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'totalSupply', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, -] - -ck_extra_abi = [ - { - 'inputs': [], - 'name': 'pregnantKitties', - 'outputs': [{'name': '', 'type': 'uint256'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [{'name': '_kittyId', 'type': 'uint256'}], - 'name': 'isPregnant', - 'outputs': [{'name': '', 'type': 'bool'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - } -] - -ck_contract = w3.eth.contract(address=w3.toChecksumAddress(ck_token_addr), abi=simplified_abi+ck_extra_abi) -name = ck_contract.functions.name().call() -symbol = ck_contract.functions.symbol().call() -kitties_auctions = ck_contract.functions.balanceOf(acc_address).call() -print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}") - -pregnant_kitties = ck_contract.functions.pregnantKitties().call() -print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}") - -# Using the Transfer Event ABI to get info about transferred Kitties. -tx_event_abi = { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'from', 'type': 'address'}, - {'indexed': False, 'name': 'to', 'type': 'address'}, - {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}], - 'name': 'Transfer', - 'type': 'event' -} - -# We need the event's signature to filter the logs -event_signature = w3.sha3(text="Transfer(address,address,uint256)").hex() - -logs = w3.eth.getLogs({ - "fromBlock": w3.eth.blockNumber - 120, - "address": w3.toChecksumAddress(ck_token_addr), - "topics": [event_signature] -}) - -# Notes: -# - 120 blocks is the max range for CloudFlare Provider -# - If you didn't find any Transfer event you can also try to get a tokenId at: -# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events -# Click to expand the event's logs and copy its "tokenId" argument - -recent_tx = [get_event_data(tx_event_abi, log)["args"] for log in logs] - -kitty_id = recent_tx[0]['tokenId'] # Paste the "tokenId" here from the link above -is_pregnant = ck_contract.functions.isPregnant(kitty_id).call() -print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}") -``` - -Kontrakt CryptoKitties zawiera kilka ciekawych wydarzeń poza standardowymi. - -Sprawdźmy dwa z nich, `Pregnant ` i `Birth`. - -```python -# Używanie ABI zdarzeń Pregnant i Birth w celu uzyskania informacji o nowych kociakach. - -ck_extra_events_abi = [ - { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'owner', 'type': 'address'}, - {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, - {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, - {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}], - 'name': 'Pregnant', - 'type': 'event' - }, - { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'owner', 'type': 'address'}, - {'indexed': False, 'name': 'kittyId', 'type': 'uint256'}, - {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, - {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, - {'indexed': False, 'name': 'genes', 'type': 'uint256'}], - 'name': 'Birth', - 'type': 'event' - }] - -# We need the event's signature to filter the logs -ck_event_signatures = [ - w3.sha3(text="Pregnant(address,uint256,uint256,uint256)").hex(), - w3.sha3(text="Birth(address,uint256,uint256,uint256,uint256)").hex(), -] - -# Here is a Pregnant Event: -# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog -pregnant_logs = w3.eth.getLogs({ - "fromBlock": w3.eth.blockNumber - 120, - "address": w3.toChecksumAddress(ck_token_addr), - "topics": [ck_extra_events_abi[0]] -}) - -recent_pregnants = [get_event_data(ck_extra_events_abi[0], log)["args"] for log in pregnant_logs] - -# Here is a Birth Event: -# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a -birth_logs = w3.eth.getLogs({ - "fromBlock": w3.eth.blockNumber - 120, - "address": w3.toChecksumAddress(ck_token_addr), - "topics": [ck_extra_events_abi[1]] -}) - -recent_births = [get_event_data(ck_extra_events_abi[1], log)["args"] for log in birth_logs] -``` - -## Popularne NFT {#popular-nfts} - -- [Etherscan NFT Tracker](https://etherscan.io/tokens-nft) wyświetla listę najpopularniejszych NFT na Ethereum według wielkości transferów. -- [CryptoKitties](https://www.cryptokitties.co/) to gra skoncentrowana wokół rozmnażania, kolekcjonerskiego i słodkich stworzonek – CryptoKitties. -- [Sorare](https://sorare.com/) to globalna gra piłkarska fantasy, w której możesz zbierać limitowane edycje przedmiotów kolekcjonerskich, zarządzać swoimi zespołami i konkurować o zdobycie nagród. -- [Usługa Nazw Ethereum (ENS)](https://ens.domains/) oferuje bezpieczny i zdecentralizowany sposób na zajęcie się zasobami w i poza łańcuchem bloków przy użyciu prostych imiona czytelne dla człowieka. -- [Unstoppable Domains](https://unstoppabledomains.com/) jest to firma z San Francisco budująca domeny w blockchainach. Domeny blockchainu zastępują adresy kryptowalut nazwami czytelnymi dla człowieka i mogą być używane do włączenia stron odpornych na cenzurę. -- [Gods Unchained Cards](https://godsunchained.com/) to TCG w blockchainie Ethereum, który używa NFT do zapewnienia rzeczywistego prawa własności w grze. - -## Dalsza lektura {#further-reading} - -- [EIP-721: ERC-721 – standard tokenów niewymiennych](https://eips.ethereum.org/EIPS/eip-721) -- [OpenZeppelin – dokumentacja ERC-721](https://docs.openzeppelin.com/contracts/3.x/erc721) -- [OpenZeppelin – implementacja ERC-721](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) - -## Powiązane tematy {#related-topics} - -- [ERC-20](/developers/docs/standards/tokens/erc-20/) -- [ERC-777](/developers/docs/standards/tokens/erc-777/) -- [ERC-1155](/developers/docs/standards/tokens/erc-1155/) diff --git a/src/content/translations/pl/developers/docs/transactions/index.md b/src/content/translations/pl/developers/docs/transactions/index.md deleted file mode 100644 index 1262795a6ea..00000000000 --- a/src/content/translations/pl/developers/docs/transactions/index.md +++ /dev/null @@ -1,152 +0,0 @@ ---- -title: Transakcje -description: Przegląd transakcji Ethereum – sposób działania, struktury danych i metody wysyłania za pośrednictwem aplikacji. -lang: pl -isOutdated: true ---- - -Transakcje to podpisane kryptograficznie instrukcje od kont. Konto inicjuje transakcję, aby zaktualizować stan sieci Ethereum. Najprostszą transakcją jest przeniesienie ETH z jednego konta na drugie. - -## Warunki wstępne {#prerequisites} - -Aby lepiej zrozumieć tę stronę, zalecamy najpierw przeczytanie rozdziału Konta i naszego [Wprowadzenia do Ethereum](/developers/docs/intro-to-ethereum/). - -## Czym jest transakcja? {#whats-a-transaction} - -Transakcja Ethereum odnosi się do działania zainicjowanego przez konto będące własnością zewnętrzną, innymi słowy konto zarządzane przez człowieka, a nie przez kontrakt. Na przykład, jeśli Bob wysyła Alice 1 ETH, na koncie Boba musi się pojawić obciążenie, a na koncie Alice uznanie. Ta zmiana stanu ma miejsce w ramach transakcji. - -![Schemat pokazujący transakcję powodującą zmianę stanu](../../../../../developers/docs/transactions/tx.png) _Schemat zaadaptowany z [Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ - -Transakcje, które zmieniają stan EVM, muszą być transmitowane na całą sieć. Każdy węzeł może rozesłać prośbę o wykonanie transakcji na EVM; po tym wydarzeniu górnik wykona transakcję i roześle powstałą zmianę stanu do reszty sieci. - -Transakcje wymagają opłaty i muszą być wydobyte, aby stały się ważne. Aby uprościć ten przegląd, omówimy opłaty za gaz i wydobycie w innym miejscu. - -Przedłożona transakcja zawiera następujące informacje: - -- `recipient` – adres odbiorcy (w przypadku konta z właścicielem zewnętrznym transakcja przekaże wartość. W przypadku konta kontraktu transakcja wykona kod konta) -- `signature` – identyfikator nadawcy. Jest generowany, gdy klucz prywatny nadawcy podpisuje transakcję i potwierdza, że nadawca autoryzował tę transakcję -- `value` – kwota ETH do przelania od nadawcy do odbiorcy (w WEI, wartość nominalna ETH) -- `data` – opcjonalne pole do umieszczenia dowolnych danych -- `gasLimit` – maksymalna ilość jednostek gazu, które mogą zostać zużyte w trakcie transakcji. Jednostki gazu reprezentują kroki obliczeniowe -- `gasPrice` – opłata wnoszona przez nadawcę za jednostkę gazu - -Gaz jest odniesieniem do obliczeń wymaganych do przetworzenia transakcji przez górnika. Użytkownicy muszą wnieść opłatę za to obliczenie. `gasLimit` i `gasPrice` określają maksymalną opłatę transakcyjną na rzecz górnika. [Więcej o gazie](/developers/docs/gas/). - -Obiekt transakcji będzie wyglądał mniej więcej w ten sposób: - -```js -{ - from: "0xEA674fdDe714fd979de3EdF0F56AA9716B898ec8", - to: "0xac03bb73b6a9e108530aff4df5077c2b3d481e5a", - gasLimit: "21000", - gasPrice: "200", - nonce: "0", - value: "10000000000", -} -``` - -Obiekt transakcji musi być podpisany przy użyciu klucza prywatnego nadawcy. Dowodzi to, że transakcja mogła pochodzić jedynie od nadawcy i nie została wysłana w sposób oszukańczy. - -Klient Ethereum, taki jak Geth obsługuje ten proces podpisywania. - -Przykład wywołania [JSON-RPC](https://eth.wiki/json-rpc/API): - -```json -{ - "id": 2, - "jsonrpc": "2.0", - "method": "account_signTransaction", - "params": [ - { - "from": "0x1923f626bb8dc025849e00f99c25fe2b2f7fb0db", - "gas": "0x55555", - "gasPrice": "0x1234", - "input": "0xabcd", - "nonce": "0x0", - "to": "0x07a565b7ed7d7a678680a4c162885bedbb695fe0", - "value": "0x1234" - } - ] -} -``` - -Przykład odpowiedzi: - -```json -{ - "jsonrpc": "2.0", - "id": 2, - "result": { - "raw": "0xf88380018203339407a565b7ed7d7a678680a4c162885bedbb695fe080a44401a6e4000000000000000000000000000000000000000000000000000000000000001226a0223a7c9bcf5531c99be5ea7082183816eb20cfe0bbc322e97cc5c7f71ab8b20ea02aadee6b34b45bb15bc42d9c09de4a6754e7000908da72d48cc7704971491663", - "tx": { - "nonce": "0x0", - "gasPrice": "0x1234", - "gas": "0x55555", - "to": "0x07a565b7ed7d7a678680a4c162885bedbb695fe0", - "value": "0x1234", - "input": "0xabcd", - "v": "0x26", - "r": "0x223a7c9bcf5531c99be5ea7082183816eb20cfe0bbc322e97cc5c7f71ab8b20e", - "s": "0x2aadee6b34b45bb15bc42d9c09de4a6754e7000908da72d48cc7704971491663", - "hash": "0xeba2df809e7a612a0a0d444ccfa5c839624bdc00dd29e3340d46df3870f8a30e" - } - } -} -``` - -- `raw` to podpisana transakcja w kodowanym formacie RLP -- `tx` jest podpisaną transakcją w formacie JSON - -Dzięki skrótowi podpisu można udowodnić kryptograficznie, że transakcja pochodzi od nadawcy i została przesłana do sieci. - -### Gaz {#on-gas} - -Jak już wspomniano, wykonanie transakcji kosztuje [gaz](/developers/docs/gas/). Proste transakcje transferu wymagają 21 000 jednostek gazu. - -Więc aby Bob wysłał Alice 1 ETH przy `gasPrice` 200 Gwei, będzie musiał wnieść następującą opłatę: - -``` -200*21000 = 4 200 000 GWEI ---lub-- -0,0042 ETH -``` - -Konto Boba zostanie obciążone **-1,0042 ETH** - -Konto Alicji zostanie zasilone **+1,0 ETH** - -Górnik przetwarzający transakcję otrzyma **+0,0042 ETH** - -Gaz jest również potrzebny do każdej interakcji kontraktów inteligentnych. - -![Schemat przedstawiający sposób zwrotu kosztów niewykorzystanego gazu](../../../../../developers/docs/transactions/gas-tx.png) _Schemat zaadaptowany z [Ethereum EVM illustrated](https://takenobu-hs.github.io/downloads/ethereum_evm_illustrated.pdf)_ - -Gaz niewykorzystany w transakcji jest zwracany na konto użytkownika. - -## Cykl życiowy transakcji {#transaction-lifecycle} - -Po przesłaniu transakcji nastąpią następujące wydarzenia: - -1. Po wysłaniu transakcji kryptografia generuje hash: `0x97d99bc7729211111a21b12c933c949d4f31684f1d6954ff477d0477538ff017` -2. Transakcja jest następnie rozsyłana w sieci i włączana do puli obejmującej wiele innych transakcji. -3. Górnik musi wybrać transakcję i umieścić w bloku, aby ją zweryfikować transakcję i uznać za „udaną”. - - Możesz skończyć, oczekując na tym etapie, jeśli sieć jest zajęta i górnicy nie są w stanie nadążyć. Górnicy zawsze będą traktować priorytetowo transakcje z wyższą `GASPRICE`, ponieważ będą mogli zatrzymać opłaty. -4. Twoja transakcja otrzyma również numer potwierdzenia bloku. Jest to liczba bloków utworzonych od bloku, w którym Twoja transakcja została uwzględniona. Im większa liczba, tym większa pewność, że transakcja została przetworzona i rozpoznana przez sieć. Dzieje się tak dlatego, że czasami blok, w którym zawarta była Twoja transakcja, mógł nie trafić do łańcucha. - - Im większy numer potwierdzenia bloku, tym bardziej niezmienna jest transakcja. Tak więc w przypadku transakcji o wyższej wartości pożądane może być więcej potwierdzeń bloków. - -## Demo wizualne {#a-visual-demo} - -Zobacz, jak Austin przeprowadzi Cię przez transakcje, gaz i wydobycie. - - - -## Dalsza lektura {#further-reading} - -_Znasz jakieś zasoby społeczności, które Ci pomogły? Wyedytuj tę stronę i dodaj je!_ - -## Powiązane tematy {#related-topics} - -- [Konta](/developers/docs/accounts/) -- [Maszyna wirtualna Ethereum (EVM)](/developers/docs/evm/) -- [Paliwo](/developers/docs/gas/) -- [Wydobycie](/developers/docs/consensus-mechanisms/pow/mining/) diff --git a/src/content/translations/pl/developers/tutorials/deploying-your-first-smart-contract/index.md b/src/content/translations/pl/developers/tutorials/deploying-your-first-smart-contract/index.md deleted file mode 100644 index 67832c504f5..00000000000 --- a/src/content/translations/pl/developers/tutorials/deploying-your-first-smart-contract/index.md +++ /dev/null @@ -1,99 +0,0 @@ ---- -title: Wdrożenie pierwszego inteligentnego kontraktu -description: Wprowadzenie do wdrożenia pierwszego inteligentnego kontraktu w sieci testowej Ethereum -author: "jdourlens" -tags: - - "inteligentne kontrakty" - - "remix" - - "solidity" - - "pierwsze kroki" - - "wdrożenie" -skill: beginner -lang: pl -published: 2020-04-03 -source: EthereumDev -sourceUrl: https://ethereumdev.io/deploying-your-first-smart-contract/ -address: "0x19dE91Af973F404EDF5B4c093983a7c6E3EC8ccE" ---- - -Chyba jesteś tak samo podekscytowany jak my [wdrażaniem](/developers/docs/smart-contracts/deploying/) i interakcją z pierwszym [inteligentnym kontraktem](/developers/docs/smart-contracts/) na blockchainie Ethereum. - -Nie martw się, ponieważ jest to nasz pierwszy inteligentny kontrakt, wdrożymy go w [lokalnej sieci testowej](/developers/docs/networks/), więc wdrożenie nic nie kosztuje i możesz bawić się nim tyle, ile chcesz. - -## Pisanie kontraktu {#writing-our-contract} - -Pierwszym krokiem jest [odwiedzenie Remix](https://remix.ethereum.org/) i utworzenie nowego pliku. W lewej górnej części interfejsu Remix dodaj nowy plik i wprowadź żądaną nazwę pliku. - -![Dodawanie nowego pliku do interfejsu Remix](../../../../../developers/tutorials/deploying-your-first-smart-contract/remix.png) - -W nowym pliku wkleimy następujący kod. - -```solidity -pragma solidity 0.5.17; - -contract Counter { - - // Public variable of type unsigned int to keep the number of counts - uint256 public count = 0; - - // Function that increments our counter - function increment() public { - count += 1; - } - - // Not necessary getter to get the count value - function getCount() public view returns (uint256) { - return count; - } - -} -``` - -Jeśli masz doświadczenie w programowaniu, możesz łatwo odgadnąć, co robi ten program. Oto wyjaśnienie kolejnych wierszy: - -- Wiersz 3: Określamy kontrakt nazwą `Counter`. -- Wiersz 6: Nasz kontrakt przechowuje jedną niepodpisaną liczbę całkowitą o nazwie `count` zaczynając od 0. -- Wiersz 9: Pierwsza funkcja zmieni stan kontraktu i zwiększy `increment()` zmienną `count`>. -- Wiersz 14: Druga funkcja to tylko getter, który może odczytywać wartość zmiennej `count` poza inteligentnym kontraktem. Zauważ, że ponieważ zdefiniowaliśmy zmienną `count` jako publiczną, to nie jest konieczne, ale jest to przykład. - -To wszystko dotyczy naszego pierwszego prostego inteligentnego kontraktu. Jak możesz wiedzieć, wygląda to na klasę z języków programowania obiektowego takich jak Java lub C++. Nadszedł czas, aby pobawić się naszym kontraktem. - -## Wdrażanie kontraktu {#deploying-our-contract} - -Ponieważ napisaliśmy pierwszy inteligentny kontrakt, teraz wdrożymy go w blockchainie, aby móc się nim bawić. - -[Wdrażanie inteligentnego kontraktu w blockchainie](/developers/docs/smart-contracts/deploying/) to w rzeczywistości tylko wysłanie transakcji zawierającej kod skompilowanego inteligentnego kontraktu bez określania odbiorców. - -Najpierw [skompilujemy kontrakt](/developers/docs/smart-contracts/compiling/), klikając ikonę kompilacji po lewej stronie: - -![Ikona kompilacji na pasku narzędzi Remix](../../../../../developers/tutorials/deploying-your-first-smart-contract/remix-compile-button.png) - -Następnie kliknij przycisk kompilacji: - -![Przycisk kompilacji w Remix Solidity](../../../../../developers/tutorials/deploying-your-first-smart-contract/remix-compile.png) - -Możesz wybrać opcję „Automatyczna kompilacja”, aby umowa była zawsze kompilowana po zapisaniu zawartości w edytorze tekstowym. - -Następnie przejdź do ekranu wdrażania i uruchamiania transakcji: - -![Ikona wdrażania na pasku narzędzi Remix](../../../../../developers/tutorials/deploying-your-first-smart-contract/remix-deploy.png) - -Po przejściu do ekranu „wdróż i uruchom” transakcje sprawdź dokładnie, czy pojawia się nazwa Twojego kontraktu i kliknij Wdróż. Jak widać na górze strony, obecne środowisko to „Maszyna wirtualna JavaScript”, co oznacza, że ​​wdrożymy inteligentny kontrakt i będziemy nad nim pracować w lokalnym testowym blockchainie, aby móc testować szybciej i bez żadnych opłat. - -![Przycisk wdrażania w kompilatorze Remix Solidity](../../../../../developers/tutorials/deploying-your-first-smart-contract/remix-deploy.png) - -Po kliknięciu przycisku „Wdróż” na dole pojawi się Twój kontrakt. Kliknij strzałkę po lewej stronie, aby ją rozwinąć i wyświetlić zawartość kontraktu. To jest utworzona zmienna `counter`, funkcja `increment()` i getter `getCounter()`. - -Jeśli klikniesz przycisk `count` lub `getCount`, zostanie pobrana i wyświetlona zmienna `count`. Ponieważ funkcja `increment` nie została jeszcze wywołana, wyświetli 0. - -![Przycisk funkcji w kompilatorze Remix Solidity](../../../../../developers/tutorials/deploying-your-first-smart-contract/remix-function-button.png) - -Wywołajmy funkcję `increment`, klikając przycisk. Zobaczysz dzienniki transakcji, wyświetlone na dole okna. Zobaczysz, że dzienniki są inne, gdy naciśniesz przycisk pobierania danych zamiast przycisku `increment`. To dlatego, że odczyt danych w blockchainie nie wymaga żadnych transakcji (pisanie) ani opłat. Ponieważ tylko modyfikacja stanu łańcucha bloków wymaga dokonania transakcji: - -![Dziennik transakcji](../../../../../developers/tutorials/deploying-your-first-smart-contract/transaction-log.png) - -Po naciśnięciu przycisku inkrement, który wygeneruje transakcję, aby wywołać naszą funkcję `increment()`, jeśli ponownie klikniemy przycisk count lub getCount, odczytamy nowo zaktualizowany stan naszego inteligentnego kontraktu ze zmienną count większą niż 0. - -![Nowo zaktualizowany stan inteligentnego kontraktu](../../../../../developers/tutorials/deploying-your-first-smart-contract/updated-state.png) - -W następnym samouczku omówimy [jak dodawać zdarzenia do inteligentnych kontraktów](/developers/tutorials/logging-events-smart-contracts/). Rejestrowanie zdarzeń jest wygodnym sposobem debugowania inteligentnego kontraktu i zrozumienia, co się dzieje podczas wywoływania funkcji. diff --git a/src/content/translations/pl/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md b/src/content/translations/pl/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md deleted file mode 100644 index ed05983088e..00000000000 --- a/src/content/translations/pl/developers/tutorials/getting-started-with-ethereum-development-using-alchemy/index.md +++ /dev/null @@ -1,154 +0,0 @@ ---- -title: Pierwsze kroki programowania w Ethereum za pomocą Alchemy -description: "To jest przewodnik dla początkujących, jak rozpocząć programowanie w Ethereum za pomocą Alchemy. Przeprowadzimy Cię od rejestracji w Alchemy, przez wysłanie żądania w wierszu poleceń, do napisania pierwszego skryptu web3! Nie jest wymagane doświadczenie w programowaniu blockchain!" -author: "Elan Halpern" -tags: - - "pierwsze kroki" - - "javascript" - - "ethers.js" - - "węzły" - - "zapytania" - - "alchemy" -skill: beginner -lang: pl -published: 2020-10-30 -source: Średni -sourceUrl: https://medium.com/alchemy-api/getting-started-with-ethereum-development-using-alchemy-c3d6a45c567f ---- - -![Logo Ethereum i Alchemy](../../../../../developers/tutorials/getting-started-with-ethereum-development-using-alchemy/ethereum-alchemy.png) - -To jest przewodnik dla początkujących po rozpoczęciu programowania w Ethereum przy użyciu [Alchemy](https://alchemyapi.io/), wiodącej platformy dla twórców blockchainów wykorzystywanej przez miliony użytkowników z 70% najlepszych aplikacji blockchain, w tym Maker, 0x, MyEtherWallet, Dharma i Kyber. - -Zarejestruj się w Alchemy, aby napisać swój pierwszy skrypt web3! Nie jest wymagane doświadczenie w programowaniu blockchain! - -## 1\. Zarejestruj się na darmowym koncie Alchemy {#sign-up-for-a-free-alchemy-account} - -Tworzenie konta z Alchemy jest łatwe, [zarejestruj się za darmo tutaj](https://auth.alchemyapi.io/signup). - -## 2\. Utwórz aplikację Alchemy {#create-an-alchemy-app} - -Aby korzystać z produktów Alchemy, potrzebujesz klucza API do uwierzytelnienia swoich żądań. - -Możesz [tworzyć klucze API z panelu](http://dashboard.alchemyapi.io/). Aby utworzyć nowy klucz, przejdź do „Utwórz aplikację”, jak pokazano poniżej: - -Specjalne podziękowania dla [_ShapeShift_](https://shapeshift.com/) _za umożliwienie nam pokazania ich panelu!_ - -![Pulpit Alchemy](../../../../../developers/tutorials/getting-started-with-ethereum-development-using-alchemy/alchemy-dashboard.png) - -Wypełnij szczegóły w sekcji „Utwórz aplikację”, aby uzyskać swój nowy klucz. Możesz również zobaczyć aplikacje, które wcześniej stworzyłeś i aplikacje wykonane przez swój zespół tutaj. Pociągnij istniejące klucze, klikając „Wyświetl klucz” dla dowolnej aplikacji. - -![Utwórz aplikację za pomocą zrzutu ekranu Alchemy](../../../../../developers/tutorials/getting-started-with-ethereum-development-using-alchemy/create-app.png) - -Możesz również ściągnąć istniejące klucze API, umieszczając kursor myszy nad „Aplikacje” i wybierając jeden. Możesz tutaj „Wyświetlić klucz”, a także „Edytować aplikację”, aby dodać określone domeny do białej listy, zobaczyć kilka narzędzi dla programistów i wyświetlić dane analityczne. - -![Gif pokazuje użytkownikowi jak ściągnąć klucze API](../../../../../developers/tutorials/getting-started-with-ethereum-development-using-alchemy/pull-api-keys.gif) - -## 3\. Zgłoś żądanie z wiersza poleceń {#make-a-request-from-the-command-line} - -Współpracuj z blockchainem Ethereum przez Alchemy, używając JSON-RPC i curl. - -Dla żądań ręcznych, zalecamy zastosowanie `JSON-RPC` poprzez `POST`. Wystarczy przekazać nagłówek `Content-Type: application/json` i zapytanie jako treść `POST` z następującymi polami: - -- `jsonrpc`: wersja JSON-RPC - obecnie obsługiwana jest tylko `2.0`. -- `method`: metoda ETH API. [Zobacz materiały dot. API.](https://docs.alchemyapi.io/documentation/alchemy-api-reference/json-rpc) -- `params`: lista parametrów do przekazania do metody. -- `id`: identyfikator Twojego żądania. Zostanie zwrócony wraz z odpowiedzią, dzięki czemu można śledzić, do którego żądania należy odpowiedź. - -Poniżej znajduje się przykład, który można uruchomić z wiersza poleceń, aby uzyskać aktualną cenę gazu: - -```bash -curl [https://eth-mainnet.alchemyapi.io/v2/demo](https://eth-mainnet.alchemyapi.io/v2/demo) \ --X POST \ --H "Content-Type: application/json" \ --d '{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":73}' -``` - -**_UWAGA:_** _Zamień_ [_https://eth-mainnet.alchemyapi. o/v2/demo_](https://eth-mainnet.alchemyapi.io/jsonrpc/demo) _z własnym kluczem API_ [_https://eth-mainnet.alchemyapi.io/v2/your-api-key_](https://eth-mainnet.alchemyapi.io/jsonrpc/your-api-key)_._ - -**Wynik:** - -```json -{ "id": 73,"jsonrpc": "2.0","result": "0x09184e72a000" // 100000000000000000 } -``` - -## 4\. Skonfiguruj swojego klienta Web3 {#set-up-your-web3-client} - -**Jeśli masz istniejącego klienta,** zmień adres URL aktualnego dostawcy węzła na adres URL Alchemy z kluczem API: `"https://eth-mainnet.alchemyapi.io/v2/your-api-key"` - -**_UWAGA:_** Skrypty poniżej muszą być uruchomione w **kontekście węzłów** lub **zapisane w pliku**, nie uruchamiaj z wiersza poleceń. Jeśli nie masz jeszcze zainstalowanego węzła lub npm, sprawdź ten [przewodnik konfiguracji macs](https://app.gitbook.com/@alchemyapi/s/alchemy/guides/alchemy-for-macs). - -Istnieją tony [bibliotek Web3](https://docs.alchemyapi.io/guides/getting-started#other-web3-libraries) które możesz zintegrować z alchemy. zalecamy użycie [Alchemy Web3](https://docs.alchemy.com/reference/api-overview), upuszczonego zamiennika dla web3., zbudowany i skonfigurowany do bezproblemowej pracy z Alchemy. Zapewnia to wiele zalet, takich jak automatyczne próby i solidne wsparcie WebSocket. - -Aby zainstalować AlchemyWeb3.js, **przejdź do katalogu projektu** i uruchom: - -**Z Yarn:** - -``` -yarn dodaj @alch/alchemy-web3 -``` - -**Z NPM:** - -``` -npm install @alch/alchemy-web3 -``` - -Aby wejść w interakcję z infrastrukturą węzła Alchemy, uruchom w NodeJS lub dodaj to do pliku JavaScript: - -```js -const { createAlchemyWeb3 } = require("@alch/alchemy-web3") -const web3 = createAlchemyWeb3( - "https://eth-mainnet.alchemyapi.io/v2/your-api-key" -) -``` - -## 5\. Napisz swój pierwszy skrypt Web3! {#write-your-first-web3-script} - -Teraz, aby ubrudzić sobie ręce odrobiną programowania web3, napiszemy prosty skrypt, który wypisuje najnowszy numer bloku z sieci głównej Ethereum. - -1. **Jeśli jeszcze tego nie zrobiłeś, w swoim terminalu utwórz nowy katalog projektów i przejdź do niego:** - -``` -mkdir web3-examplecd web3-example -``` - -**2\. Zainstaluj zależność Alchemy web3 (lub dowolny web3) w swoim projekcie, jeśli jeszcze tego nie zrobiłeś:** - -``` -npm install @alch/alchemy-web3 -``` - -**3. Utwórz plik o nazwie** `index.js` **i dodaj następujące treści:** - -> Ostatecznie powinieneś zastąpić `demo` kluczem API Alchemy. - -```js -async function main() { - const { createAlchemyWeb3 } = require("@alch/alchemy-web3") - const web3 = createAlchemyWeb3("https://eth- mainnet.alchemyapi.io/v2/demo") - const blockNumber = await web3.eth.getBlockNumber() - console.log("The latest block number is " + blockNumber) -} -main() -``` - -Nie znasz rozwiązań asynchronicznych? Sprawdź to [Medium post](https://medium.com/better-programming/understanding-async-await-in-javascript-1d81bb079b2c). - -**4\. Uruchom go w swoim terminalu, używając węzła** - -``` -node index.js -``` - -**5. Powinieneś teraz zobaczyć najnowszy numer bloku w konsoli!** - -``` -The latest block number is 11043912 -``` - -**Woo! Gratulacje! Właśnie napisałeś swój pierwszy skrypt web3 używając Alchemy 🎉** - -Nie jesteś pewien, co zrobić dalej? Spróbuj wdrożyć pierwszy kontrakt inteligentny i popracuj, programując w Solidity [_Hello World Smart_](https://docs.alchemyapi.io/tutorials/hello-world-smart-contract) _Contract Guide, lub sprawdź, co wiesz o pulpicie nawigacyjnym za pomocą_ [_Dashboard Demo App_](https://docs.alchemyapi.io/tutorials/demo-app)_!_ - -_[Zarejestruj się przy użyciu Alchemy za darmo](https://auth.alchemyapi.io/signup), sprawdź naszą [dokumentację](https://docs.alchemyapi.io/), oraz najnowsze wiadomości, obserwuj nas na [Twitterze](https://twitter.com/AlchemyPlatform)_. diff --git a/src/content/translations/pl/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md b/src/content/translations/pl/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md deleted file mode 100644 index e1c4cdfa7ca..00000000000 --- a/src/content/translations/pl/developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/index.md +++ /dev/null @@ -1,236 +0,0 @@ ---- -title: Slither – narzędzie do znajdowania błędów w inteligentnych kontraktach -description: Jak używać Slither do automatycznego wyszukiwania błędów w inteligentnych kontraktach -author: Trailofbits -lang: pl -tags: - - "solidity" - - "inteligentne kontrakty" - - "ochrona" - - "testing" - - "analiza statyczna" -skill: advanced -published: 2020-06-09 -source: Tworzenie bezpiecznych kontraktów -sourceUrl: https://github.com/crytic/building-secure-contracts/tree/master/program-analysis/slither ---- - -## Jak używać Slither {#how-to-use-slither} - -Celem tego samouczka jest pokazanie, jak używać Slither do automatycznego wyszukiwania błędów w inteligentnych kontraktach. - -- [Instalacja](#installation) -- [Użycie wiersza poleceń](#command-line) -- [Wprowadzenie do analizy statycznej](#static-analysis): krótkie wprowadzenie do analizy statycznej -- [API](#api-basics): Opis API Pythona - -## Instalacja {#installation} - -Slither wymaga Pythona >= 3.6. Można go zainstalować za pomocą pip lub dockera. - -Slither przez pip: - -```bash -pip3 install --user slither-analyzer -``` - -Slither przez dockera: - -```bash -docker pull trailofbits/eth-security-toolbox docker run -it -v "$PWD":/home/trufflecon trailofbits/eth-security-toolbox -``` - -_Ostatnie polecenie uruchamia eth-security-toolbox w dockerze, który ma dostęp do bieżącego katalogu. Możesz zmienić pliki z hosta i uruchomić narzędzia na plikach z dockera_ - -Wewnątrz dockera uruchom: - -```bash -solc-select 0.5.11 cd /home/trufflecon/ -``` - -### Uruchom skrypt {#running-a-script} - -Aby uruchomić skrypt Pythona za pomocą Pythona 3: - -```bash -python3 script.py -``` - -### Wiersz poleceń {#command-line} - -**Skrypty wiersza poleceń a zdefiniowane przez użytkownika.** Slither jest wyposażony w zestaw predefiniowanych detektorów, które znajdują wiele częstych błędów. Wywołanie Slither z wiersza poleceń uruchomi wszystkie detektory, nie jest potrzebna szczegółowa wiedza na temat analizy statycznej: - -```bash -slither project_paths -``` - -Oprócz detektorów, Slither ma możliwości przeglądania kodu poprzez swoje narzędzia [drukarki](https://github.com/crytic/slither#printers) i [](https://github.com/crytic/slither#tools). - -Użyj [crytic.io](https://crytic.io), aby uzyskać dostęp do prywatnych detektorów i integracji GitHub. - -## Analiza statyczna {#static-analysis} - -Możliwości i projekt struktury analizy statycznej Slither zostały opisane w postach na blogu ([1](https://blog.trailofbits.com/2018/10/19/slither-a-solidity-static-analysis-framework/), [2](https://blog.trailofbits.com/2019/05/27/slither-the-leading-static-analyzer-for-smart-contracts/)) oraz w [dokumencie akademickim](https://github.com/trailofbits/publications/blob/master/papers/wetseb19.pdf). - -Istnieją różne postacie analizy statycznej Najprawdopodobniej zdajesz sobie sprawę, że kompilatory takie jak [clang](https://clang-analyzer.llvm.org/) i [gcc](https://lwn.net/Articles/806099/) zależą od tych technik badawczych, ale również stanowią one podstawę ([Infer](https://fbinfer.com/), [CodeClimate](https://codeclimate.com/), [FindBugs](http://findbugs.sourceforge.net/) i narzędzi opartych na formalnych metodach, takich jak [Frama-C](https://frama-c.com/) i [Polyspace](https://www.mathworks.com/products/polyspace.html). - -Nie dokonamy wyczerpującego przeglądu technik analizy statycznej. Zamiast tego skoncentrujemy się na tym, co jest potrzebne, aby zrozumieć, jak działa Slither tak, abyś mógł go skuteczniej używać, aby znaleźć błędy i zrozumieć kod. - -- [Reprezentacja kodu](#code-representation) -- [Analiza kodu](#analysis) -- [Reprezentacja pośrednia](#intermediate-representation) - -### Reprezentacja kodu {#code-representation} - -W przeciwieństwie do analizy dynamicznej, która rozważa pojedynczą ścieżkę wykonania, analiza statyczna rozważa wszystkie ścieżki naraz. W tym celu opiera się na innej reprezentacji kodu. Dwa najczęściej spotykane to abstrakcyjne drzewo składni (AST) i graf przepływu sterowania (CFG). - -### Abstrakcyjne drzewa składniowe (AST) {#abstract-syntax-trees-ast} - -AST są używane za każdym razem, gdy kompilator analizuje kod. Jest to prawdopodobnie najbardziej podstawowa struktura, na podstawie której można przeprowadzić analizę statyczną. - -Krótko mówiąc, AST jest ustrukturyzowanym drzewem, w którym zwyczajowo, każdy liść zawiera zmienną lub stałą, a węzły wewnętrzne są operandami lub operacjami przepływu sterowania. Rozważmy następujący kod: - -```solidity -function safeAdd(uint a, uint b) pure internal returns(uint){ - if(a + b <= a){ - revert(); - } - return a + b; -} -``` - -Odpowiedni AST jest pokazany w: - -![AST](../../../../../developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/ast.png) - -Slither używa AST eksportowanego przez solc. - -Choć prosty w budowie, AST jest strukturą zagnieżdżoną. Czasem jego przeanalizowanie nie jest proste. Na przykład, aby zidentyfikować operacje używane przez wyrażenie `a + b <= a`, musisz najpierw przeanalizować `<=`, a następnie `+`. Wspólnym podejściem jest stosowanie tak zwanego wzoru odwiedzającego, który rekursywnie przechodzi przez drzewo. Slither zawiera ogólnego odwiedzającego w [`ExpressionVisitor`](https://github.com/crytic/slither/blob/master/slither/visitors/expression/expression.py). - -Następujący kod używa `ExpressionVisitor` aby wykryć, czy wyrażenie zawiera dodatek: - -```python -from slither.visitors.expression.expression import ExpressionVisitor -from slither.core.expressions.binary_operation import BinaryOperationType - -class HasAddition(ExpressionVisitor): - - def result(self): - return self._result - - def _post_binary_operation(self, expression): - if expression.type == BinaryOperationType.ADDITION: - self._result = True - -visitor = HasAddition(expression) # expression is the expression to be tested -print(f'The expression {expression} has a addition: {visitor.result()}') -``` - -### Graf przepływu sterowania (CFG) {#control-flow-graph-cfg} - -Drugą najbardziej powszechną reprezentacją kodu jest graf przepływu sterowania. Jak sugeruje jego nazwa, jest to przedstawienie oparte na wykresie, które ujawnia wszystkie ścieżki wykonania. Każdy węzeł zawiera jedną lub wiele instrukcji. Krawędzie na wykresie reprezentują operacje przepływu sterowania (if/then/else, loop itp.). CFG naszego poprzedniego przykładu to: - -![CFG](../../../../../developers/tutorials/how-to-use-slither-to-find-smart-contract-bugs/cfg.png) - -CFG jest reprezentacją, na której opiera się większość analiz. - -Istnieje wiele innych reprezentacji kodów. Każda reprezentacja ma zalety i wady zgodnie z analizą, którą chcesz przeprowadzić. - -### Analiza {#analysis} - -Najprostszym rodzajem analiz, które możesz wykonać za pomocą Slither, są analizy składni. - -### Analiza składni {#syntax-analysis} - -Slither może nawigować przez różne elementy kodu i ich reprezentacje, aby znaleźć niespójności i wady za pomocą podejścia podobnego do dopasowania do wzorca. - -Na przykład następujące detektory szukają problemów związanych z składnią: - -- [Zastępowanie zmiennych stanu](https://github.com/crytic/slither/wiki/Detector-Documentation#state-variable-shadowing): porusza się iteracyjnie po wszystkich zmiennych stanu i sprawdza, czy któryś zastępuje zmienną z dziedziczonego kontraktu ([state.py#L51-L62](https://github.com/crytic/slither/blob/0441338e055ab7151b30ca69258561a5a793f8ba/slither/detectors/shadowing/state.py#L51-L62)) - -- [Nieprawidłowy interfejs ERC20](https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-erc20-interface): szukka nieprawidłowych sygnatur funkcji ERC20 ([incorrect_erc20_interface.py#L34-L55](https://github.com/crytic/slither/blob/0441338e055ab7151b30ca69258561a5a793f8ba/slither/detectors/erc/incorrect_erc20_interface.py#L34-L55)) - -### Analiza semantyczna {#semantic-analysis} - -W przeciwieństwie do analizy składni, analiza semantyczna sięga głębiej i analizuje „znaczenie” kodu. Rodzina ta obejmuje kilka szerokich rodzajów analiz. Prowadzą one do bardziej skutecznych i pożytecznych wyników, ale także są bardziej skomplikowane. - -Analizy semantyczne są wykorzystywane do najbardziej zaawansowanego wykrywania podatności na zagrożenia. - -#### Analiza zależności danych {#fixed-point-computation} - -Zmienna `variable_a` jest zależna od danych `variable_b`, jeśli istnieje ścieżka, dla której wartość `variable_a` jest zależna od `variable_b`. - -W poniższym kodzie zmienna `_a` jest zależna od `variable_b`: - -```solidity -// ... -variable_a = variable_b + 1; -``` - -Slither posiada wbudowane funkcje [zależności danych](https://github.com/crytic/slither/wiki/data-dependency) dzięki jego pośredniej reprezentacji (omówionej w dalszej części). - -Przykład użycia zależności od danych można znaleźć w [niebezpiecznym ścisłym detektorze równości](https://github.com/crytic/slither/wiki/Detector-Documentation#dangerous-strict-equalities). Tutaj Slither będzie szukał ścisłego porównania równości z niebezpieczną wartością ([wronct_strict_equality. y#L86-L87](https://github.com/crytic/slither/blob/6d86220a53603476f9567c3358524ea4db07fb25/slither/detectors/statements/incorrect_strict_equality.py#L86-L87)), i poinformuje użytkownika, że powinien użyć `>=` lub `<=` zamiast `==`, aby uniemożliwić atakującemu przechwycenie kontraktu. Spośród innych detektor uzna za niebezpieczną wartość zwrotną wywołania do `balanceOf(address)` ([invalid \_strict_equality. y#L63-L64](https://github.com/crytic/slither/blob/6d86220a53603476f9567c3358524ea4db07fb25/slither/detectors/statements/incorrect_strict_equality.py#L63-L64)) i użyje silnika zależności od danych, aby śledzić jego użycie. - -#### Obliczenia stałoprzecinkowe {#fixed-point-computation} - -Jeśli Twoja analiza nawiguje przez CFG i porusza się wzdłuż krawędzi, prawdopodobnie zobaczysz już odwiedzone węzły. Na przykład, jeśli pętla jest przedstawiona w poniższy sposób: - -```solidity -for(uint i; i < zakres; ++){ - variable_a += 1 -} -``` - -Twoja analiza będzie musiała wiedzieć, kiedy się zatrzymać. Tutaj są dwie główne strategie: (1) powtórzyć na każdym węźle skończoną liczbę razy, (2) obliczyć tak zwany punkt stały. Punkt stały zasadniczo oznacza, że analiza tego węzła nie dostarcza żadnych istotnych informacji. - -Przykład użytego puntu stałego można znaleźć w detektorach wielobieżności: Slither eksploruje węzły i szuka wywołań zewnętrznych, zapisuje i odczytuje w pamięci. Po osiągnięciu punktu stałego ([reentrancy.py#L125-L131](https://github.com/crytic/slither/blob/master/slither/detectors/reentrancy/reentrancy.py#L125-L131)), zatrzymuje eksplorację i analizuje wyniki, aby sprawdzić, czy występuje wielobieżność, sprawdzając różne jej wzorce ([reentrancy_benign. y](https://github.com/crytic/slither/blob/b275bcc824b1b932310cf03b6bfb1a1fef0ebae1/slither/detectors/reentrancy/reentrancy_benign.py), [reentrancy_read_before_write.py](https://github.com/crytic/slither/blob/b275bcc824b1b932310cf03b6bfb1a1fef0ebae1/slither/detectors/reentrancy/reentrancy_read_before_write.py), [reentrancy_eth.py](https://github.com/crytic/slither/blob/b275bcc824b1b932310cf03b6bfb1a1fef0ebae1/slither/detectors/reentrancy/reentrancy_eth.py)). - -Analizy pisania z wykorzystaniem efektywnego obliczania punktów stałych wymagają dobrego zrozumienia sposobu, w jaki analiza propaguje jej informacje. - -### Reprezentacja pośrednia {#intermediate-representation} - -Pośrednia reprezentacja (IR) to język mający być bardziej dostosowany do analizy statycznej niż oryginalny. Slither tłumaczy Solidity na własną IR: [SlithIR](https://github.com/crytic/slither/wiki/SlithIR). - -Zrozumienie SlithIR nie jest konieczne, jeśli chcesz tylko zapisać podstawowe kontrole. Jeśli jednak planuje się napisać zaawansowane analizy semantyczne, będzie to pomocne. Drukarki [SlithIR](https://github.com/crytic/slither/wiki/Printer-documentation#slithir) i [SSA](https://github.com/crytic/slither/wiki/Printer-documentation#slithir-ssa) pomogą Ci zrozumieć, jak kod jest przetłumaczony. - -## Podstawowe informacje o API {#api-basics} - -Slither ma interfejs API, który pozwala odkrywać podstawowe atrybuty kontraktu i jego funkcje. - -Aby załadować bazę kodu: - -```python -from slither import Slither -slither = Slither('/path/to/project') - -``` - -### Odkrywanie kontraktów i funkcji {#exploring-contracts-and-functions} - -Obiekt `Slither` zawiera: - -- `contracts (list(Contract)`: lista kontraktów -- `contracts_derived (list(Contract)`: lista kontraktów, które nie są dziedziczone przez inny kontrakt (podzbiór kontraktów) -- `get_contract_from_name (str)`: zwraca kontrakt z jego nazwy - -Obiekt `Contract` ma: - -- `name (str)`: nazwa kontraktu -- `functions (list(Function))`: lista funkcji -- `modifiers (list(Modifier))`: lista funkcji -- `all_functions_lated (list(Function/Modifier))`: lista wszystkich funkcji wewnętrznych osiągalnych przez kontrakt -- `inheritance (list(Contract))`: lista dziedziczonych kontraktów -- `get_function_from_signature (str)`: zwraca funkcję z jej podpisu -- `get_modifier_from_signature (str)`: zwraca modyfikator z jego podpisu -- `get_state_variable_from_name (str)`: zwraca zmienną stanową z jej nazwy - -Obiekt `Function` lub `Modifier` ma: - -- `name (str)`: nazwa funkcji -- `contract (contract)`: kontrakt, w którym zadeklarowana jest funkcja -- `nodes (list(Node))`: lista węzłów tworzących CFG funkcji/modyfikatora -- `entry_point (Node)`: punkt wejścia CFG -- `variables_read (list(Variable))`: lista odczytanych zmiennych -- `variables_written (list(Variable))`: lista zapisanych zmiennych -- `state_variables_read (list(StateVariable))`: lista odczytanych zmiennych stanu (podzbiór zmiennych`read) -- `state_variables_written (list(StateVariable))`: lista zapisanych zmiennych stanu (podzbiór zmiennych`written) diff --git a/src/content/translations/pl/developers/tutorials/interact-with-other-contracts-from-solidity/index.md b/src/content/translations/pl/developers/tutorials/interact-with-other-contracts-from-solidity/index.md deleted file mode 100644 index 2f60dcd772a..00000000000 --- a/src/content/translations/pl/developers/tutorials/interact-with-other-contracts-from-solidity/index.md +++ /dev/null @@ -1,178 +0,0 @@ ---- -title: Interakcje z innymi kontraktami od Solidity -description: Jak wdrożyć inteligentny kontrakt z istniejącego kontraktu i pracować na nim -author: "jdourlens" -tags: - - "inteligentne kontrakty" - - "solidity" - - "remix" - - "fabryki" - - "wdrożenie" - - "kompozycyjność" -skill: advanced -lang: pl -published: 2020-04-05 -source: EthereumDev -sourceUrl: https://ethereumdev.io/interact-with-other-contracts-from-solidity/ -address: "0x19dE91Af973F404EDF5B4c093983a7c6E3EC8ccE" ---- - -Z poprzednich samouczków dowiedzieliśmy się [jak wdrożyć swój pierwszy inteligentny kontrakt](/developers/tutorials/deploying-your-first-smart-contract/) i dodać do niego kilka funkcji, takich jak kontrola dostępu za pomocą modyfikatorów lub [obsługa błędów w Solidity](https://ethereumdev.io/handle-errors-in-solidity-with-require-and-revert/). Z tego samouczka dowiemy się, jak wdrożyć inteligentny kontrakt z istniejącego kontraktu i pracować na nim. - -Stworzymy kontrakt, który umożliwi każdemu posiadanie własnego inteligentnego kontraktu `Counter`, tworząc dla niego fabrykę o nazwie `CounterFactory`. Pierwszy jest kod naszego początkowego inteligentnego kontraktu `Counter`: - -```solidity -pragma solidity 0.5.17; - -contract Counter { - - uint256 private _count; - address private _owner; - address private _factory; - - - modifier onlyOwner(address caller) { - require(caller == _owner, "You're not the owner of the contract"); - _; - } - - modifier onlyFactory() { - require(msg.sender == _factory, "You need to use the factory"); - _; - } - - constructor(address owner) public { - _owner = owner; - _factory = msg.sender; - } - - function getCount() public view returns (uint256) { - return _count; - } - - function increment(address caller) public onlyFactory onlyOwner(caller) { - _count++; - } - -} -``` - -Zwróć uwagę, że nieznacznie zmodyfikowaliśmy kod kontraktu, aby śledzić adres fabryki i adres właściciela umowy. Gdy wywołasz kod kontraktu z innego kontraktu, msg.sender odniesie się do adresu naszej fabryki kontraktowej. Jest to **bardzo ważny punkt do zrozumienia**, ponieważ używanie kontraktu do interakcji z innymi kontraktami jest powszechną praktyką. Dlatego w skomplikowanych przypadkach należy zadbać o to, kto jest nadawcą. - -W tym celu dodaliśmy również modyfikator `onlyFactory`, który zapewnia, że ​​funkcja zmiany stanu może być wywołana tylko przez fabrykę, która przekaże oryginalny obiekt wywołujący jako parametr. - -W naszej nowej `CounterFactory`, która będzie zarządzać wszystkimi innymi licznikami, dodamy mapowanie, które skojarzy właściciela z adresem jego kontraktu counter: - -```solidity -mapping(address => Counter) _counters; -``` - -W Ethereum mapowanie jest równoważne obiektom w javascript, umożliwiają one mapowanie klucza typu A do wartości typu B. W tym przypadku mapujemy adres właściciela z instancją jego kontraktu counter. - -Utworzenie nowego kontraktu Counter dla kogoś będzie wyglądać tak: - -```solidity - function createCounter() public { - require (_counters[msg.sender] == Counter(0)); - _counters[msg.sender] = new Counter(msg.sender); - } -``` - -Najpierw sprawdzamy, czy osoba jest już właścicielem Counter. Jeśli nie jest właścicielem counter, natychmiastowo przekazujemy jego adres do konstruktora `Counter` i przypisujemy nowo utworzoną instancję do mapowania. - -Aby uzyskać liczbę konkretnego Counter, powinno to wyglądać tak: - -```solidity -function getCount(address account) public view returns (uint256) { - require (_counters[account] != Counter(0)); - return (_counters[account].getCount()); -} - -function getMyCount() public view returns (uint256) { - return (getCount(msg.sender)); -} -``` - -Pierwsza funkcja sprawdza, czy kontrakt Counter istnieje dla danego adresu, a następnie wywołuje metodę `getCount` z instancji. Druga funkcja: `getMyCount` to tylko krótki koniec do przekazania msg.sender bezpośrednio do funkcji `getCount`. - -Funkcja `increment` jest dość podobna, ale przekazuje oryginalnego nadawcę transakcji do kontraktu `Counter`: - -```solidity -function increment() public { - require (_counters[msg.sender] != Counter(0)); - Counter(_counters[msg.sender]).increment(msg.sender); - } -``` - -Zauważ, że jeśli zostaniesz wywołany wiele razy, nasz counter może paść ofiarą przepełnienia. Powinieneś użyć [biblioteki SafeMath](https://ethereumdev.io/using-safe-math-library-to-prevent-from-overflows/) w możliwie największym stopniu, aby chronić przed tym przypadkiem. - -Aby wdrożyć nasz kontrakt, musisz podać zarówno kod `CounterFactory`, jak i `Counter`. Podczas wdrażania na przykład w Remix musisz wybrać CounterFactory. - -Oto pełny kod: - -```solidity -pragma solidity 0.5.17; - -contract Counter { - - uint256 private _count; - address private _owner; - address private _factory; - - - modifier onlyOwner(address caller) { - require(caller == _owner, "You're not the owner of the contract"); - _; - } - - modifier onlyFactory() { - require(msg.sender == _factory, "You need to use the factory"); - _; - } - - constructor(address owner) public { - _owner = owner; - _factory = msg.sender; - } - - function getCount() public view returns (uint256) { - return _count; - } - - function increment(address caller) public onlyFactory onlyOwner(caller) { - _count++; - } - -} - -contract CounterFactory { - - mapping(address => Counter) _counters; - - function createCounter() public { - require (_counters[msg.sender] == Counter(0)); - _counters[msg.sender] = new Counter(msg.sender); - } - - function increment() public { - require (_counters[msg.sender] != Counter(0)); - Counter(_counters[msg.sender]).increment(msg.sender); - } - - function getCount(address account) public view returns (uint256) { - require (_counters[account] != Counter(0)); - return (_counters[account].getCount()); - } - - function getMyCount() public view returns (uint256) { - return (getCount(msg.sender)); - } - -} -``` - -Po skompilowaniu wybierz w sekcji wdrażanie Remix fabrykę do wdrożenia: - -![Wybór fabryki do wdrożenia w Remix](../../../../../developers/tutorials/interact-with-other-contracts-from-solidity/counterfactory-deploy.png) - -Następnie możesz pobawić się swoją fabryką kontraktową i sprawdzić, jak zmienia się wartość. Jeśli chcesz wywołać inteligentny kontrakt z innego adresu, musisz zmienić adres w wyborze konta w Remix. diff --git a/src/content/translations/pl/developers/tutorials/logging-events-smart-contracts/index.md b/src/content/translations/pl/developers/tutorials/logging-events-smart-contracts/index.md deleted file mode 100644 index baceecb5447..00000000000 --- a/src/content/translations/pl/developers/tutorials/logging-events-smart-contracts/index.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: Rejestrowanie danych z inteligentnych kontraktów ze zdarzeniami -description: Wprowadzenie do zdarzeń kontraktów inteligentnych i sposobów używania ich rejestrowania danych -author: "jdourlens" -tags: - - "inteligentne kontrakty" - - "remix" - - "solidity" - - "zdarzenia" -skill: intermediate -lang: pl -published: 2020-04-03 -source: EthereumDev -sourceUrl: https://ethereumdev.io/logging-data-with-events/ -address: "0x19dE91Af973F404EDF5B4c093983a7c6E3EC8ccE" ---- - -W Solidity [zdarzenia](/developers/docs/smart-contracts/anatomy/#events-and-logs) to wysyłane sygnały, które mogą uruchamiać inteligentne kontrakty. Aplikacje zdecentralizowane lub wszystko, co jest połączone z interfejsem API Ethereum JSON-RPC, może nasłuchiwać tych zdarzeń i odpowiednio działać. Zdarzenie można również zindeksować, aby później można było przeszukiwać historię zdarzeń. - -## Zdarzeniami {#events} - -Najczęstszym zdarzeniem na blockchainie Ethereum w momencie pisania tego artykułu jest zdarzenie Transfer, które jest emitowane przez tokeny ERC20, gdy ktoś przenosi tokeny. - -```solidity -event Transfer(address indexed from, address indexed to, uint256 value); -``` - -Sygnatura zdarzenia jest deklarowana w kodzie kontraktu i może być emitowana za pomocą słowa kluczowego emit. Na przykład dzienniki zdarzeń transferu, nadawca transferu (od), odbiorca transferu (_do_) i ilość przeniesionych tokenów (_wartość_). - -Jeśli wrócimy do naszego inteligentnego kontraktu Counter i zdecydujemy się rejestrować za każdym razem, gdy wartość się zmieni. Ponieważ kontrakt ten nie jest przeznaczony do wdrożenia, ale służy jako podstawa do zbudowania kolejnego kontraktu poprzez jego rozszerzenie: nazywa się to kontraktem abstrakcyjnym. W przypadku naszego przykładu counter wyglądałoby to tak: - -```solidity -pragma solidity 0.5.17;contract Counter { event ValueChanged(uint oldValue, uint256 newValue); // Zmienna prywatna typu unsigned int przechowywania liczby zliczeń uint256 private count = 0; // Funkcja zwiększająca licznik function increment() public { count += 1; emit ValueChanged(count - 1, count); } - - // Getter w celu uzyskania wartości zliczeń function getCount() public view returns (uint256) { return count; }} -``` - -Zauważ, że: - -- **Wiersz 5**: deklarujemy nasze wydarzenie i jego zawartość, starą wartość i nową wartość. - -- **Wiersz 13**: Kiedy zwiększamy naszą zmienną count, emitujemy zdarzenie. - -Jeżeli teraz wdrożymy umowę i wywołamy funkcję inkrementacji, zobaczymy, że Remix automatycznie ją wyświetli, jeśli zostanie kliknięta nowa transakcja w tablicy nazwanych rejestrów. - -![Zrzut ekranu Remix](../../../../../developers/tutorials/logging-events-smart-contracts/remix-screenshot.png) - -Dzienniki są naprawdę przydatne do debugowania inteligentnych kontraktów, ale są również ważne, jeśli tworzysz aplikacje używane przez różne osoby i ułatwiają analizę w celu śledzenia i zrozumienia, w jaki sposób jest używany inteligentny kontrakt. Logi generowane przez transakcje są wyświetlane w popularnych eksploratorach bloków i można je również wykorzystać np. do tworzenia skryptów off-chain do nasłuchiwania określonych zdarzeń i podejmowania działań w momencie ich wystąpienia. diff --git a/src/content/translations/pl/developers/tutorials/run-node-raspberry-pi/index.md b/src/content/translations/pl/developers/tutorials/run-node-raspberry-pi/index.md deleted file mode 100644 index a143889c84d..00000000000 --- a/src/content/translations/pl/developers/tutorials/run-node-raspberry-pi/index.md +++ /dev/null @@ -1,258 +0,0 @@ ---- -title: Jak zmienić Raspberry Pi 4 w węzeł, po prostu flashując kartę MicroSD -description: Flash Raspberry Pi 4, podłącz kabel Ethernet, podłącz dysk SSD i włącz urządzenie, aby zmienić Raspberry Pi 4 w pełny węzeł Ethereum 1.0 lub Ethereum 2.0 (łańcuch śledzący / walidator) -author: "EthereumOnArm" -tags: - - "klienty" - - "eth2" - - "węzły" -lang: pl -skill: intermediate -published: 2020-05-07 -source: r/ethereum -sourceUrl: https://www.reddit.com/r/ethereum/comments/gf3nhg/ethereum_on_arm_raspberry_pi_4_images_release/ ---- - -**TL;DR**: Flashuj Raspberry Pi 4, podłącz kabel Ethernet, podłącz dysk SSD i włącz urządzenie, aby zmienić Raspberry Pi 4 w pełne Ethereum 1.0 węzeł lub węzeł Ethereum 2.0 (łańcuch śledzący/ walidator) - -[Dowiedz się więcej o Ethereum 2.0 (Eth2)](/roadmap/) - -Najpierw trochę tła. Jak wiesz, napotkaliśmy pewne problemy z pamięcią [[1]](/developers/tutorials/run-node-raspberry-pi/#references) związane z obrazem Raspberry Pi 4 ponieważ Raspbian OS jest nadal 32-bitowy [[2]](/developers/tutorials/run-node-raspberry-pi/#references) (przynajmniej w przestrzeni użytkownika). Chociaż wolimy pozostać przy oficjalnym systemie operacyjnym, doszliśmy do wniosku, że aby rozwiązać te problemy, musimy przeprowadzić migrację do natywnego 64-bitowego systemu operacyjnego - -Poza tym klienty Eth 2.0 nie obsługują 32-bitowych plików binarnych, więc użycie Raspbian wykluczyłoby Raspberry Pi 4 z uruchamiania węzła Eth 2.0 (oraz możliwość stakingu). - -Po kilku testach wydajemy teraz 2 różne obrazy oparte na 64-bitowym Ubuntu 20.04 [[3]](/developers/tutorials/run-node-raspberry-pi/#references): Edycje Eth 1.0 i Eth 2.0. - -Zasadniczo oba są tym samym obrazem i zawierają te same cechy obrazów opartych na Raspbian. Ale są one domyślnie skonfigurowane do uruchamiania oprogramowania Eth 1.0 lub Eth 2.0. - -**Obrazy wykonują wszystkie niezbędne kroki**, od konfiguracji środowiska i formatowania dysku SSD po instalację i uruchomienie oprogramowania Ethereum, a także uruchomienie synchronizacji łańcucha bloków. - -## Główne funkcje {#main-features} - -- Na podstawie Ubuntu 20.04 64bit -- Automatyczna partycja i formatowanie dysku USB -- Dodaje pamięć wymiany (moduł jądra ZRAM + plik wymiany) na podstawie pracy Armbiana [[7]](/developers/tutorials/run-node-raspberry-pi/#references) -- Zmienia nazwę hosta na coś w rodzaju „ethnode-e2a3e6fe” w oparciu o hash MAC -- Uruchamia oprogramowanie jako usługę systemową i rozpoczyna synchronizację Blockchain -- Zawiera repozytorium APT do instalacji i aktualizacji oprogramowania Ethereum -- Zawiera panel monitorowania oparty na Grafana / Prometheus - -## Dołączone oprogramowanie {#software-included} - -Oba obrazy zawierają te same pakiety, jedyną różnicą między nimi jest to, że Eth 1.0 domyślnie uruchamia Geth, a Eth 2.0 domyślnie uruchamia łańcuch śledzący Prysm. - -### Klienty Ethereum 1.0 {#execution-clients} - -- Geth [[8]](/developers/tutorials/run-node-raspberry-pi/#references): 1.9.13 (oficjalny plik binarny) -- Parity [[9]](/developers/tutorials/run-node-raspberry-pi/#references): 2.7.2 (kompilacja krzyżowa) -- Nethermind [[10]](/developers/tutorials/run-node-raspberry-pi/#references): 1.8.28 (kompilacja krzyżowa) -- Hyperledger Besu [[11]](/developers/tutorials/run-node-raspberry-pi/#references): 1.4.4 (skompilowane) - -### Klienty Ethereum 2.0 {#consensus-clients} - -- Prysm [[12]](/developers/tutorials/run-node-raspberry-pi/#references): 1.0.0-alpha6 (oficjalny plik binarny) -- Lighthouse [[13]](/developers/tutorials/run-node-raspberry-pi/#references): 0.1.1 (kompilacja) - -### Framework Ethereum {#ethereum-framework} - -- Swarm [[14]](/developers/tutorials/run-node-raspberry-pi/#references): 0.5.7 (oficjalny plik binarny) -- Raiden Network [[15]](/developers/tutorials/run-node-raspberry-pi/#references): 0.200.0~rc1 (oficjalny plik binarny) -- IPFS [[16]](/developers/tutorials/run-node-raspberry-pi/#references): 0.5.0 (oficjalny plik binarny) -- Statusd [[17]](/developers/tutorials/run-node-raspberry-pi/#references): 0.52.3 (skompilowany) -- Vipnode [[18]](/developers/tutorials/run-node-raspberry-pi/#references): 2.3.3 (oficjalny plik binarny) - -## Instrukcja instalacji i użytkowania {#installation-guide-and-usage} - -### Zalecany sprzęt i konfiguracja {#recommended-hardware-and-setup} - -- Raspberry 4 (model B) - 4GB -- Karta MicroSD (16 GB klasy 10 minimum) -- SSD USB 3.0 (zob. sekcja pamięci) -- Zasilacz -- Kabel Ethernet -- 30303 Przekierowanie portów (Eth 1.0) i 13000 przekierowanie portów (Eth 2.0) [[4]](/developers/tutorials/run-node-raspberry-pi/#references) -- Obudowa z radiatorem i wentylatorem (opcjonalna, ale zdecydowanie zalecana) -- Klawiatura USB, monitor i kabel HDMI (micro-HDMI) (opcjonalnie) - -## Pamięć {#storage} - -Będziesz potrzebować dysku SSD, aby uruchomić klientów Ethereum (bez dysku SSD nie ma absolutnie żadnej szansy na zsynchronizowanie łańcucha bloków Ethereum). Istnieją dwie opcje: - -- Użyj przenośnego dysku SSD USB, takiego jak przenośny dysk SSD Samsung T5. -- Użyj etui na zewnętrzny dysk twardy USB 3.0 z dyskiem SSD. W naszym przypadku zastosowaliśmy obudowę dysku twardego Inateck 2.5 FE2011. Upewnij się, że kupujesz obudowę z chipem zgodnym z UAS, w szczególności jedną z nich: JMicron (JMS567 lub JMS578) lub ASMedia (ASM1153E). - -W obu przypadkach unikaj uzyskiwania dysków SSD niskiej jakości, ponieważ jest to kluczowy element węzła i może drastycznie wpłynąć na wydajność (i czasy synchronizacji). - -Pamiętaj, że musisz podłączyć dysk do portu USB 3.0 (niebieski) - -## Pobieranie i instalacja obrazu {#image-download-and-installation} - -### 1. Pobierz obrazy Eth 1.0 lub Eth 2.0 {#1-download-execution-or-consensus-images}Pobierz obraz Eth 1.0 - -sha256 7fa9370d13857dd6abcc8fde637c7a9a7e3a66b307d5c28b0c0d29a09c73c55cPobierz obraz Eth2 - -sha256 74c0c15b708720e5ae5cac324f1afded6316537fb17166109326755232cd316e - -### 2. Wgraj obraz {#2-flash-the-image} - -Włóż kartę microSD do komputera stacjonarnego / laptopa i pobierz plik (na przykład Eth 1.0): - -```bash -wget https://ethraspbian.com/downloads/ubuntu-20.04-preinstalled-server-arm64+raspi-eth1.img.zip -``` - -Uwaga: jeśli nie czujesz się dobrze z wierszem poleceń lub jeśli używasz systemu Windows, możesz użyć [Etcher](https://etcher.io) - -Otwórz terminal i sprawdź nazwę swojego urządzenia MicroSD, które działa: - -```bash -sudo fdisk -l -``` - -Powinieneś zobaczyć urządzenie o nazwie mmcblk0 lub sdd. Rozpakuj i wgraj obraz: - -```bash -unzip ubuntu-20.04-preinstalled-server-arm64+raspi-eth1.img.zip -sudo dd bs=1M if=ubuntu-20.04-preinstalled-server-arm64+raspi-eth1.img of=/dev/mmcblk0 && sync -``` - -### 3. Włóż microSD do Raspberry Pi 4. Podłącz kabel Ethernet i podłącz dysk USB SSD (upewnij się, że używasz niebieskiego portu). {#3-insert-the-microsd-into-the-raspberry-pi-4-connect-an-ethernet-cable-and-attach-the-usb-ssd-disk-make-sure-you-are-using-a-blue-port} - -### 4. Włącz urządzenie {#4-power-on-the-device} - -System operacyjny Ubuntu uruchomi się za mniej niż minutę, ale **trzeba poczekać około 10 minut**, aby skrypt mógł wykonać niezbędne zadania, aby zmienić urządzenie w węzeł Ethereum i zrestartuj Raspberry. - -W zależności od obrazu uruchomisz: - -- Eth 1.0: Geth jako domyślny klient synchronizujący łańcuch bloków -- Eth2: Prysm jako domyślny klient synchronizujący łańcuch śledzący (sieć testowa Topaz) - -### 5. Zaloguj się {#5-log-in} - -Możesz zalogować się przez SSH lub za pomocą konsoli (jeśli masz podłączony monitor i klawiaturę) - -```bash -User: ethereum -Password: ethereum -``` - -Zostaniesz poproszony o zmianę hasła przy pierwszym logowaniu, więc będziesz musiał zalogować się dwukrotnie. - -### 6. Otwórz port 30303 dla Getha i 13000, jeśli używasz łańcucha śledzącego Prysm. Jeśli nie wiesz, jak to zrobić, wygoogluj „przekierowanie portów”, a następnie model routera. {#6-open-30303-port-for-geth-and-13000-if-you-are-running-prysm-beacon-chain-if-you-dont-know-how-to-do-this-google-port-forwarding-followed-by-your-router-model} - -### 7. Uzyskaj dane wyjściowe konsoli {#7-get-console-output} - -Możesz zobaczyć, co dzieje się w tle, wpisując: - -```bash -sudo tail -f /var/log/syslog -``` - -**Gratulacje. Korzystasz teraz z pełnego węzła Ethereum na swoim Raspberry Pi 4.** - -## Synchronizowanie łańcucha bloków {#syncing-the-blockchain} - -Teraz musisz poczekać na synchronizację łańcucha bloków. W przypadku Eth 1.0 zajmie to kilka dni w zależności od kilku czynników, ale możesz spodziewać się do około 5-7 dni. - -Jeśli korzystasz z tesnetu Eth2 Topaz, możesz spodziewać się 1-2 dni czasu synchronizacji łańcucha śledzącego. Pamiętaj, że będziesz musiał ustawić walidator później, aby rozpocząć proces stakingu. [Jak uruchomić walidator Eth 2.0](/developers/tutorials/run-node-raspberry-pi/#validator) - -## Pulpity kontrolne {#monitoring-dashboards} - -W tej pierwszej wersji dołączyliśmy 3 panele monitorowania oparte na Prometheus [[5]](/developers/tutorials/run-node-raspberry-pi/#references) /Grafana [[6]](/developers/tutorials/run-node-raspberry-pi/#references) w celu monitorowania danych węzła i klientów (Geth i Besu). Możesz uzyskać dostęp przez przeglądarkę internetową: - -```bash -URL: http://your_raspberrypi_IP:3000 -User: admin -Password: ethereum -``` - -## Przełączanie klientów {#switching-clients} - -Wszyscy klienci działają jako usługa systemowa. Jest to ważne, ponieważ jeśli pojawi się problem, system automatycznie odrodzi proces. - -Łańcuch śledzący Geth i Prysm jest uruchamiany domyślnie (w zależności od tego, co synchronizujesz, Eth 1.0 lub Eth2), więc jeśli chcesz przełączyć się na innych klientów (na przykład z Geth na Nethermind), musisz najpierw zatrzymać i wyłączyć Geth, oraz włącz i uruchom drugiego klienta: - -```bash -sudo systemctl stop geth && sudo systemctl disable geth -``` - -Polecenia włączania i uruchamiania każdego klienta Eth 1.0: - -```bash -sudo systemctl enable besu && sudo systemctl start besu -sudo systemctl enable nethermind && sudo systemctl start nethermind -sudo systemctl enable parity && sudo systemctl start parity -``` - -Eth2: - -```bash -sudo systemctl stop prysm-beacon && sudo systemctl disable prysm-beacon -sudo systemctl start lighthouse && sudo systemctl enable lighthouse -``` - -## Zmiana parametrów {#changing-parameters} - -Pliki konfiguracyjne klientów znajdują się w katalogu /etc/ethereum/. Możesz edytować te pliki i ponownie uruchomić usługę systemd, aby zmiany zaczęły obowiązywać. Jedynym wyjątkiem jest Nethermind, który dodatkowo posiada plik konfiguracyjny sieci głównej, który znajduje się tutaj: - -```bash -/etc/nethermind/configs/mainnet.cfg -``` - -Dane klientów Blockchain są przechowywane na koncie domowym Ethereum w następujący sposób (zwróć uwagę na kropkę przed nazwą katalogu): - -### Eth 1.0 {#execution-layer} - -```bash -/home/ethereum/.geth -/home/ethereum/.parity -/home/ethereum/.besu -/home/ethereum/.nethermind -``` - -### Eth2 {#consensus-layer} - -```bash -/home/ethereum/.eth2 -/home/ethereum/.eth2validators -/home/ethereum/.lighthouse -``` - -## Nethermind i Hyperledger Besu {#nethermind-and-hyperledger-besu} - -Te 2 wspaniałe klienty Eth 1.0 stały się świetną alternatywą dla Geth and Parity. Im większa różnorodność w sieci, tym lepiej, więc możesz spróbować i przyczynić się do poprawy stanu sieci. - -Oba wymagają dalszych testów, więc wypróbuj je i zgłoś swoją opinię. - -## Jak uruchomić walidator Eth 2.0 (staking) {#validator} - -Gdy łańcuch śledzący sieci testowej Topaz zostanie zsynchronizowany, można uruchomić walidator na tym samym urządzeniu. Będziesz musiał postępować według [tych etapów uczestnictwa](https://prylabs.net/participate). - -Po raz pierwszy, musisz utworzyć ręcznie konto, uruchamiając plik binarny „validator” i skonfigurować hasło. Po zakończeniu tego kroku możesz dodać hasło do `/etc/ethereum/prysm-validator.conf` i uruchomić walidator jako usługę systemową. - -## Opinie są mile widziane! {#feedback-appreciated} - -Włożyliśmy dużo pracy, próbując skonfigurować Raspberry Pi 4 jako pełny węzeł Ethereum, ponieważ wiemy, że ogromna baza użytkowników tego urządzenia może mieć bardzo pozytywny wpływ na sieć. - -Proszę wziąć pod uwagę, że jest to pierwszy obraz oparty na Ubuntu 20.04, więc może być kilka błędów. Jeśli tak, otwórz zgłoszenie na [GitHub](https://github.com/diglos/ethereumonarm) lub skontaktuj się z nami na [Twitter](https://twitter.com/EthereumOnARM). - -## Odniesienia {#references} - -1. [geth repeatedly crashes with SIGSEGV](https://github.com/ethereum/go-ethereum/issues/20190) -2. [https://github.com/diglos/ethereumonarm](https://github.com/diglos/ethereumonarm) -3. https://ubuntu.com/download/raspberry-pi -4. https://wikipedia.org/wiki/Port_forwarding -5. https://prometheus.io -6. https://grafana.com -7. https://forum.armbian.com/topic/5565-zram-vs-swap/ -8. https://geth.ethereum.org -9. https://github.com/openethereum/openethereum -10. https://nethermind.io -11. https://www.hyperledger.org/projects/besu -12. https://github.com/prysmaticlabs/prysm -13. https://lighthouse.sigmaprime.io -14. https://ethersphere.github.io/swarm-home -15. https://raiden.network -16. https://ipfs.io -17. https://status.im -18. https://vipnode.org diff --git a/src/content/translations/pl/developers/tutorials/the-graph-fixing-web3-data-querying/index.md b/src/content/translations/pl/developers/tutorials/the-graph-fixing-web3-data-querying/index.md deleted file mode 100644 index 9611ccd4098..00000000000 --- a/src/content/translations/pl/developers/tutorials/the-graph-fixing-web3-data-querying/index.md +++ /dev/null @@ -1,316 +0,0 @@ ---- -title: "The Graph: zapytania o dane Web3" -description: Blockchain jest jak baza danych, ale bez SQL. Wszystkie dane tam są, ale nie ma do nich dostępu. Pokażę ci, jak to naprawić za pomocą The Graph i GraphQL. -author: Markus Waas -lang: pl -tags: - - "solidity" - - "inteligentne kontrakty" - - "zapytania" - - "the graph" - - "create-eth-app" - - "reakcja" -skill: intermediate -published: 2020-09-06 -source: soliditydeveloper.com -sourceUrl: https://soliditydeveloper.com/thegraph ---- - -Tym razem przyjrzymy się bliżej protokołowi The Graph, który zasadniczo stał się częścią standardowego stosu do tworzenia aplikacji dapps w zeszłym roku. Zobaczmy najpierw, jak zrobilibyśmy rzeczy w tradycyjny sposób... - -## Bez The Graph... {#without-the-graph} - -Przejdźmy więc do prostego przykładu w celach ilustracyjnych. Wszyscy lubimy gry, więc wyobraźmy sobie prostą grę z użytkownikami zakładów: - -```solidity -pragma solidity 0.7.1; - -contract Game { - uint256 totalGamesPlayerWon = 0; - uint256 totalGamesPlayerLost = 0; - event BetPlaced(address player, uint256 value, bool hasWon); - - function placeBet() external payable { - bool hasWon = evaluateBetForPlayer(msg.sender); - - if (hasWon) { - (bool success, ) = msg.sender.call{ value: msg.value * 2 }(''); - require(success, "Transfer failed"); - totalGamesPlayerWon++; - } else { - totalGamesPlayerLost++; - } - - emit BetPlaced(msg.sender, msg.value, hasWon); - } -} -``` - -Załóżmy teraz, że w naszej aplikacji dapp chcemy wyświetlić całkowitą liczbę przegranych/wygranych gier, a także aktualizować ją za każdym razem, gdy ktoś gra ponownie. Podejście byłoby następujące: - -1. Pobierz `totalGamesPlayerWon`. -2. Pobierz `totalGamesPlayerlost`. -3. Subskrybuj zdarzenia `BetPlaceed`. - -Możemy nasłuchiwać zdarzeń [w sieci Web3](https://docs.web3js.org/api/web3/class/Contract#events), jak widać po prawej stronie, ale wymaga to obsługi kilku przypadków. - -```solidity -GameContract.events.BetPlaced({ - fromBlock: 0 -}, function(error, event) { console.log(event); }) -.on('data', function(event) { - // event fired -}) -.on('changed', function(event) { - // event was removed again -}) -.on('error', function(error, receipt) { - // tx rejected -}); -``` - -W naszym prostym przykładzie jest to nadal poniekąd w porządku. Ale powiedzmy, że chcemy teraz wyświetlać kwoty przegranych/wygranych zakładów tylko dla aktualnego gracza. Cóż, nie mamy szczęścia, lepiej wdrożyć nowy kontrakt, który przechowuje te wartości i je pobiera. A teraz wyobraź sobie znacznie bardziej skomplikowany inteligentny kontrakt i dapp, rzeczy mogą szybko się popsuć. - -![Nie wystarczy po prostu zapytać](../../../../../developers/tutorials/the-graph-fixing-web3-data-querying/one-does-not-simply-query.jpg) - -Możesz zobaczyć, że to nieoptymalne: - -- Nie działa dla już wdrożonych kontraktów. -- Dodatkowe koszty gazu za przechowywanie tych wartości. -- Wymaga kolejnego wywołania w celu pobrania danych dla węzła Ethereum. - -![To nie jest wystarczająco dobre](../../../../../developers/tutorials/the-graph-fixing-web3-data-querying/not-good-enough.jpg) - -Spójrzmy teraz na lepsze rozwiązanie. - -## Pozwól, że przedstawię Ci GraphQL {#let-me-introduce-to-you-graphql} - -Najpierw porozmawiajmy o GraphQL, pierwotnie zaprojektowanym i zaimplementowanym przez Facebooka. Być może znasz tradycyjny model Rest API. Teraz wyobraź sobie, że zamiast tego możesz napisać zapytanie dla dokładnie tych danych, które chciałeś: - -![GraphQL API vs. REST API](../../../../../developers/tutorials/the-graph-fixing-web3-data-querying/graphql.jpg) - - - -Te dwa obrazy w dużym stopniu oddają istotę GraphQL. Za pomocą zapytania po prawej stronie możemy zdefiniować dokładnie, jakich danych chcemy, dzięki czemu otrzymujemy wszystko w jednym żądaniu i nic więcej niż dokładnie to, czego potrzebujemy. Serwer GraphQL obsługuje pobieranie wszystkich wymaganych danych, dzięki czemu jest niezwykle łatwy w użyciu dla użytkownika frontendu. [To dobre wyjaśnienie](https://www.apollographql.com/blog/graphql-explained-5844742f195e/), jak dokładnie serwer obsługuje zapytanie, jeśli jesteś zainteresowany. - -Teraz, mając tę ​​wiedzę, w końcu wskoczmy w przestrzeń blockchain i The Graph. - -## Co to jest The Graph? {#what-is-the-graph} - -Blockchain to zdecentralizowana baza danych, ale w przeciwieństwie do tego, co zwykle ma miejsce, nie mamy języka zapytań dla tej bazy danych. Rozwiązania do odzyskiwania danych są bolesne lub całkowicie niemożliwe. The Graph to zdecentralizowany protokół do indeksowania i odpytywania danych blockchain. I mogłeś się domyślić, że używa GraphQL jako języka zapytań. - -![The Graph](../../../../../developers/tutorials/the-graph-fixing-web3-data-querying/thegraph.png) - -Przykłady są zawsze najlepsze, aby coś zrozumieć, więc użyjmy The Graph dla naszego przykładu GameContract. - -## Jak stworzyć Subgraph {#how-to-create-a-subgraph} - -Definicja sposobu indeksowania danych nazywana jest subgraph. Wymaga trzech komponentów: - -1. Manifest (subgraf.yaml) -2. Schemat (schema.graphql) -3. Mapping (mapping.ts) - -### Manifest (subgraf.yaml) {#manifest} - -Manifest jest naszym plikiem konfiguracyjnym i definiuje: - -- które inteligentne kontrakty indeksować (adres, sieć, ABI...) -- jakich zdarzeń nasłuchiwać -- inne rzeczy do słuchania, takie jak wywołania funkcji lub bloki -- wywoływane funkcje mapujące (zobacz mapping.ts poniżej) - -Tutaj możesz zdefiniować wiele kontraktów i programów obsługi. Typowa konfiguracja miałaby folder podrzędny wewnątrz projektu Truffle/Hardhat z własnym repozytorium. Wtedy możesz łatwo odwołać się do ABI. - -Dla wygody możesz również użyć narzędzia szablonu, takiego jak wąsy. Następnie tworzysz subgraph.template.yaml i wstawiasz adresy oparte na najnowszych wdrożeniach. Aby zapoznać się z bardziej zaawansowaną przykładową konfiguracją, zobacz na przykład [Repozytorium subgrafów Aave](https://github.com/aave/aave-protocol/tree/master/thegraph). - -A pełną dokumentację można zobaczyć tutaj: https://thegraph.com/docs/define-a-subgraph#the-subgraph-manifest. - -```yaml -specVersion: 0.0.1 -description: Placing Bets on Ethereum -repository: - GitHub link - -schema: - file: ./schema.graphql -dataSources: - - kind: ethereum/contract - name: GameContract - network: mainnet - source: - address: '0x2E6454...cf77eC' - abi: GameContract - startBlock: 6175244 - mapping: - kind: ethereum/events - apiVersion: 0.0.1 - language: wasm/assemblyscript - entities: - - GameContract - abis: - - name: GameContract - file: ../build/contracts/GameContract.json - eventHandlers: - - event: PlacedBet(address,uint256,bool) - handler: handleNewBet - file: ./src/mapping.ts -``` - -### Schemat (schema.graphql) {#schema} - -Schematem jest definicja danych GraphQL. Pozwoli to na zdefiniowanie istniejących obiektów i ich typów. Obsługiwane typy z wykresu to - -- Bajty -- ID -- Tekst -- Boolean -- Wewnątrz -- BigInt -- BigDecimal - -Możesz również używać obiektów jako typu do definiowania relacji. W naszym przykładzie definiujemy relacje od gracza do zakładów. ! oznacza, że ​​wartość nie może być pusta. Pełną dokumentację można zobaczyć tutaj: https://thegraph.com/docs/define-a-subgraph#the-graphql-schema. - -```graphql -type Bet @entity { - id: ID! - player: Player! - playerHasWon: Boolean! - time: Int! -} - -type Player @entity { - id: ID! - totalPlayedCount: Int - hasWonCount: Int - hasLostCount: Int - bets: [Bet]! -} -``` - -### Mapping (mapping.ts) {#mapping} - -Plik mapowania na wykresie definiuje nasze funkcje, które przekształcają przychodzące zdarzenia w podmioty. Jest napisany w AssemblyScript, podzbiorze Typescript. Oznacza to, że może być skompilowany w WASM (WebAssembly) dla bardziej wydajnego i przenośnego wykonywania mapowania. - -Musisz zdefiniować każdą funkcję nazwaną w pliku subgraph.yaml, więc w naszym przypadku potrzebujemy tylko jednego: handleNewBet. Najpierw próbujemy załadować obiekt Gracza z adresu nadawcy w postaci identyfikatora. Jeśli nie istnieje, tworzymy nową jednostkę i wypełniamy ją wartościami początkowymi. - -Następnie tworzymy nową jednostkę zakładu. Identyfikatorem dla tego będzie event.transaction.hash.toHex() + "-" + event.logIndex.toString() zapewniający zawsze unikalną wartość. Używanie samego skrótu nie wystarczy, ponieważ ktoś może kilkakrotnie wywoływać funkcję placeBet w jednej transakcji za pośrednictwem inteligentnej umowy. - -Na koniec możemy zaktualizować podmiot Player, który będzie zawierał wszystkie dane. Tablice nie mogą być wypychane bezpośrednio, ale muszą zostać zaktualizowane, jak pokazano tutaj. Używamy identyfikatora, aby odnieść się do zakładu. A .save() jest wymagane na końcu do przechowywania obiektu. - -Pełną dokumentację można zobaczyć tutaj: https://thegraph.com/docs/define-a-subgraph#writing-mappings. Możesz także dodać dane wyjściowe rejestrowania do pliku mapowania, zobacz [tutaj](https://thegraph.com/docs/assemblyscript-api#api-reference). - -```typescript -import { Bet, Player } from "../generated/schema" -import { PlacedBet } from "../generated/GameContract/GameContract" - -export function handleNewBet(event: PlacedBet): void { - let player = Player.load(event.transaction.from.toHex()) - - if (player == null) { - // create if doesn't exist yet - player = new Player(event.transaction.from.toHex()) - player.bets = new Array(0) - player.totalPlayedCount = 0 - player.hasWonCount = 0 - player.hasLostCount = 0 - } - - let bet = new Bet( - event.transaction.hash.toHex() + "-" + event.logIndex.toString() - ) - bet.player = player.id - bet.playerHasWon = event.params.hasWon - bet.time = event.block.timestamp - bet.save() - - player.totalPlayedCount++ - if (event.params.hasWon) { - player.hasWonCount++ - } else { - player.hasLostCount++ - } - - // update array like this - let bets = player.bets - bets.push(bet.id) - player.bets = bets - - player.save() -} -``` - -## Używanie go w frontendzie {#using-it-in-the-frontend} - -Używając czegoś takiego jak Apollo Boost, możesz łatwo zintegrować The Graph z React Dapp (lub Apollo-Vue). Zwłaszcza gdy używasz hooków React i Apollo, pobieranie danych jest tak proste, jak napisanie pojedynczego zapytania GraphQl w twoim komponencie. Typowa konfiguracja może wyglądać tak: - -```javascript -// See all subgraphs: https://thegraph.com/explorer/ -const client = new ApolloClient({ - uri: "{{ subgraphUrl }}", -}) - -ReactDOM.render( - - - , - document.getElementById("root") -) -``` - -A teraz możemy napisać na przykład takie zapytanie. Spowoduje to pobranie - -- ile razy obecny użytkownik wygrał -- ile razy aktualny użytkownik przegrał -- listę sygnatur czasowych ze wszystkimi jego poprzednimi zakładami - -Wszystko w jednym żądaniu do serwera GraphQL. - -```javascript -const myGraphQlQuery = gql` - players(where: { id: $currentUser }) { - totalPlayedCount - hasWonCount - hasLostCount - bets { - time - } - } -` - -const { loading, error, data } = useQuery(myGraphQlQuery) - -React.useEffect(() => { - if (!loading && !error && data) { - console.log({ data }) - } -}, [loading, error, data]) -``` - -![Magic](../../../../../developers/tutorials/the-graph-fixing-web3-data-querying/magic.jpg) - -Ale brakuje nam ostatniego elementu układanki, a jest nim serwer. Możesz uruchomić go samodzielnie lub skorzystać z usługi hostowanej. - -## Serwer The Graph {#the-graph-server} - -### Graph Explorer: usługa hostowana {#graph-explorer-the-hosted-service} - -Najprostszym sposobem jest skorzystanie z usługi hostowanej. Postępuj zgodnie z instrukcjami [tutaj](https://thegraph.com/docs/deploy-a-subgraph), aby wdrożyć subgraf. W przypadku wielu projektów można znaleźć istniejące podgrafy w eksploratorze pod adresem https://thegraph.com/explorer/. - -![The Graph-Explorer](../../../../../developers/tutorials/the-graph-fixing-web3-data-querying/thegraph-explorer.png) - -### Uruchamianie własnego węzła {#running-your-own-node} - -Alternatywnie możesz uruchomić własny węzeł: https://github.com/graphprotocol/graph-node#quick-start. Jednym z powodów, aby to zrobić, może być korzystanie z sieci, która nie jest obsługiwana przez hostowaną usługę. Obecnie obsługiwane są sieć główna, Kovan, Rinkeby, Ropsten, Goerli, PoA-Core, xDAI i Sokol. - -## Zdecentralizowana przyszłość {#the-decentralized-future} - -GraphQL obsługuje również strumienie dla nowo przychodzących zdarzeń. Nie jest to jeszcze w pełni obsługiwane przez The Graph, ale zostanie wkrótce wydane. - -Brakującym aspektem jest jednak wciąż decentralizacja. The Graph w przyszłości ma ostatecznie stać się w pełni zdecentralizowanym protokołem. Oto dwa świetne artykuły, które bardziej szczegółowo wyjaśniają plan: - -- https://thegraph.com/blog/the-graph-network-in-depth-part-1 -- https://thegraph.com/blog/the-graph-network-in-depth-part-2 - -Dwa kluczowe aspekty to: - -1. Użytkownicy będą płacić indeksatorom za zapytania. -2. Indeksatorzy będą stakować tokeny Graph (GRT). diff --git a/src/content/translations/pl/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md b/src/content/translations/pl/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md deleted file mode 100644 index d2bed0d2f2b..00000000000 --- a/src/content/translations/pl/developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/index.md +++ /dev/null @@ -1,328 +0,0 @@ ---- -title: Transfery i zatwierdzenie tokenów ERC-20 z inteligentnego kontraktu Solidity -description: Jak używać inteligentnego kontraktu do interakcji z tokenem przy użyciu języka Solidity -author: "jdourlens" -tags: - - "inteligentne kontrakty" - - "tokeny" - - "solidity" - - "pierwsze kroki" - - "erc-20" -skill: intermediate -lang: pl -published: 2020-04-07 -source: EthereumDev -sourceUrl: https://ethereumdev.io/transfers-and-approval-or-erc20-tokens-from-a-solidity-smart-contract/ -address: "0x19dE91Af973F404EDF5B4c093983a7c6E3EC8ccE" ---- - -W poprzednim samouczku zbadaliśmy [anatomię tokena ERC-20 w Solidity](/developers/tutorials/understand-the-erc-20-token-smart-contract/) w blockchainie Ethereum. W tym artykule zobaczymy, jak możemy użyć inteligentnego kontraktu do interakcji z tokenem, używając języka Solidity. - -Dla tego inteligentnego kontraktu stworzymy naprawdę fikcyjną zdecentralizowaną giełdę, na której użytkownik może wymieniać ether na nasze nowo wdrożone [tokeny ERC-20](/developers/docs/standards/tokens/erc-20/). - -W tym samouczku użyjemy kodu, który napisaliśmy w poprzednim samouczku jako podstawy. Nasz DEX utworzy instancjr kontraktu w konstruktorze i wykona operacje: - -- wymiana tokenów na ether -- wymiana etheru na tokeny - -Rozpoczniemy nasz zdecentralizowany kod wymiany poprzez dodanie naszej prostej bazy kodowej ERC20: - -```solidity -pragma solidity ^0.6.0; - -interface IERC20 { - - function totalSupply() external view returns (uint256); - function balanceOf(address account) external view returns (uint256); - function allowance(address owner, address spender) external view returns (uint256); - - function transfer(address recipient, uint256 amount) external returns (bool); - function approve(address spender, uint256 amount) external returns (bool); - function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); - - - event Transfer(address indexed from, address indexed to, uint256 value); - event Approval(address indexed owner, address indexed spender, uint256 value); -} - - -contract ERC20Basic is IERC20 { - - string public constant name = "ERC20Basic"; - string public constant symbol = "ERC"; - uint8 public constant decimals = 18; - - - event Approval(address indexed tokenOwner, address indexed spender, uint tokens); - event Transfer(address indexed from, address indexed to, uint tokens); - - - mapping(address => uint256) balances; - - mapping(address => mapping (address => uint256)) allowed; - - uint256 totalSupply_ = 100 ether; - - using SafeMath for uint256; - - constructor(uint256 total) public { - balances[msg.sender] = totalSupply_; - } - - function totalSupply() public override view returns (uint256) { - return totalSupply_; - } - - function balanceOf(address tokenOwner) public override view returns (uint256) { - return balances[tokenOwner]; - } - - function transfer(address receiver, uint256 numTokens) public override returns (bool) { - require(numTokens <= balances[msg.sender]); - balances[msg.sender] = balances[msg.sender].sub(numTokens); - balances[receiver] = balances[receiver].add(numTokens); - emit Transfer(msg.sender, receiver, numTokens); - return true; - } - - function approve(address delegate, uint256 numTokens) public override returns (bool) { - allowed[msg.sender][delegate] = numTokens; - emit Approval(msg.sender, delegate, numTokens); - return true; - } - - function allowance(address owner, address delegate) public override view returns (uint) { - return allowed[owner][delegate]; - } - - function transferFrom(address owner, address buyer, uint256 numTokens) public override returns (bool) { - require(numTokens <= balances[owner]); - require(numTokens <= allowed[owner][msg.sender]); - - balances[owner] = balances[owner].sub(numTokens); - allowed[owner][msg.sender] = allowed[owner][msg.sender].sub(numTokens); - balances[buyer] = balances[buyer].add(numTokens); - emit Transfer(owner, buyer, numTokens); - return true; - } -} - -library SafeMath { - function sub(uint256 a, uint256 b) internal pure returns (uint256) { - assert(b <= a); - return a - b; - } - - function add(uint256 a, uint256 b) internal pure returns (uint256) { - uint256 c = a + b; - assert(c >= a); - return c; - } -} -``` - -Nasz nowy inteligentny kontrakt DEX wdroży ERC-20 i otrzyma wszystkie dostarczone: - -```solidity -contract DEX { - - IERC20 public token; - - event Bought(uint256 amount); - event Sold(uint256 amount); - - constructor() public { - token = new ERC20Basic(); - } - - function buy() payable public { - // TODO - } - - function sell(uint256 amount) public { - // TODO - } - -} -``` - -Więc wiemy, że mamy nasz DEX i ma całą dostępną rezerwę tokenów. Kontrakt spełnia dwie funkcje: - -- `buy`: użytkownik może wysyłać ether i otrzymywać tokeny w zamian -- `sell`: użytkownik może zdecydować się na wysłanie tokenów, aby odzyskać ether - -## Funkcja kupna {#the-buy-function} - -Zakodujmy funkcję kup. Najpierw będziemy musieli sprawdzić ilość etheru w wiadomości i sprawdzić, czy kontrakty posiadają wystarczającą ilość tokenów i czy wiadomość ma w niej jakiś eter. cJeśli kontrakt posiada wystarczającą ilość tokenów, wyśle liczbę tokenów do użytkownika i wyemituje zdarzenie `Bought`. - -Zauważ, że jeśli wywołamy wymagającą funkcję w przypadku błędu, ether wysłany zostanie bezpośrednio przywrócony i odesłany do użytkownika. - -Aby uprościć sprawę, po prostu wymieniamy 1 token na 1 eter. - -```solidity -function buy() payable public { - uint256 amountTobuy = msg.value; - uint256 dexBalance = token.balanceOf(address(this)); - require(amountTobuy > 0, "You need to send some ether"); - require(amountTobuy <= dexBalance, "Not enough tokens in the reserve"); - token.transfer(msg.sender, amountTobuy); - emit Bought(amountTobuy); -} -``` - -Jeśli zakup zakończył się sukcesem, powinniśmy zobaczyć dwa zdarzenia w transakcji: Token `Transfer` i `Bought` wydarzenie. - -![Dwa zdarzenia w transakcji: Transfer i Bought](../../../../../developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/transfer-and-bought-events.png) - -## Funkcja kupna {#the-sell-function} - -Funkcja odpowiedzialna za sprzedaż będzie najpierw wymagała od użytkownika zatwierdzenia kwoty poprzez uprzednie wywołanie zatwierdzonej funkcji. Następnie, gdy funkcja sprzedaży jest uruchomiona, sprawdzimy, czy przelew z adresu dzwoniącego na adres umowy zakończył się sukcesem, a następnie wyślemy Ethers z powrotem na adres dzwoniącego. - -```solidity -function sell(uint256 amount) public { - require(amount > 0, "You need to sell at least some tokens"); - uint256 allowance = token.allowance(msg.sender, address(this)); - require(allowance >= amount, "Check the token allowance"); - token.transferFrom(msg.sender, address(this), amount); - msg.sender.transfer(amount); - emit Sold(amount); -} -``` - -Jeśli wszystko działa, powinieneś zobaczyć 2 zdarzenia w transakcji (a `Transfer` i `Sold`) i Twoje saldo tokenu i saldo Ethereum zaktualizowane. - -![Dwa zdarzenia w transakcji: Transfer i Sold](../../../../../developers/tutorials/transfers-and-approval-of-erc-20-tokens-from-a-solidity-smart-contract/transfer-and-bought-events.png) - - - -Z tego samouczka zobaczyliśmy, jak sprawdzić saldo i przydział tokena ERC-20, a także jak wywołać `Transfer` i `TransferFrom` inteligentnego kontraktu ERC20 przy użyciu interfejsu. - -Po dokonaniu transakcji mamy samouczek JavaScript, aby [poczekać i uzyskać szczegółowe informacje o transakcjach](https://ethereumdev.io/waiting-for-a-transaction-to-be-mined-on-ethereum-with-js/), które zostały wykonane w ramach Twojego kontraktu oraz [samouczek dekodowania zdarzeń generowanych przez transfery tokenów lub inne zdarzenia](https://ethereumdev.io/how-to-decode-event-logs-in-javascript-using-abi-decoder/), o ile masz ABI. - -Oto kompletny kod do samouczka: - -```solidity -pragma solidity ^0.6.0; - -interface IERC20 { - - function totalSupply() external view returns (uint256); - function balanceOf(address account) external view returns (uint256); - function allowance(address owner, address spender) external view returns (uint256); - - function transfer(address recipient, uint256 amount) external returns (bool); - function approve(address spender, uint256 amount) external returns (bool); - function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); - - - event Transfer(address indexed from, address indexed to, uint256 value); - event Approval(address indexed owner, address indexed spender, uint256 value); -} - - -contract ERC20Basic is IERC20 { - - string public constant name = "ERC20Basic"; - string public constant symbol = "ERC"; - uint8 public constant decimals = 18; - - - event Approval(address indexed tokenOwner, address indexed spender, uint tokens); - event Transfer(address indexed from, address indexed to, uint tokens); - - - mapping(address => uint256) balances; - - mapping(address => mapping (address => uint256)) allowed; - - uint256 totalSupply_ = 10 ether; - - using SafeMath for uint256; - - constructor() public { - balances[msg.sender] = totalSupply_; - } - - function totalSupply() public override view returns (uint256) { - return totalSupply_; - } - - function balanceOf(address tokenOwner) public override view returns (uint256) { - return balances[tokenOwner]; - } - - function transfer(address receiver, uint256 numTokens) public override returns (bool) { - require(numTokens <= balances[msg.sender]); - balances[msg.sender] = balances[msg.sender].sub(numTokens); - balances[receiver] = balances[receiver].add(numTokens); - emit Transfer(msg.sender, receiver, numTokens); - return true; - } - - function approve(address delegate, uint256 numTokens) public override returns (bool) { - allowed[msg.sender][delegate] = numTokens; - emit Approval(msg.sender, delegate, numTokens); - return true; - } - - function allowance(address owner, address delegate) public override view returns (uint) { - return allowed[owner][delegate]; - } - - function transferFrom(address owner, address buyer, uint256 numTokens) public override returns (bool) { - require(numTokens <= balances[owner]); - require(numTokens <= allowed[owner][msg.sender]); - - balances[owner] = balances[owner].sub(numTokens); - allowed[owner][msg.sender] = allowed[owner][msg.sender].sub(numTokens); - balances[buyer] = balances[buyer].add(numTokens); - emit Transfer(owner, buyer, numTokens); - return true; - } -} - -library SafeMath { - function sub(uint256 a, uint256 b) internal pure returns (uint256) { - assert(b <= a); - return a - b; - } - - function add(uint256 a, uint256 b) internal pure returns (uint256) { - uint256 c = a + b; - assert(c >= a); - return c; - } -} - -contract DEX { - - event Bought(uint256 amount); - event Sold(uint256 amount); - - - IERC20 public token; - - constructor() public { - token = new ERC20Basic(); - } - - function buy() payable public { - uint256 amountTobuy = msg.value; - uint256 dexBalance = token.balanceOf(address(this)); - require(amountTobuy > 0, "You need to send some Ether"); - require(amountTobuy <= dexBalance, "Not enough tokens in the reserve"); - token.transfer(msg.sender, amountTobuy); - emit Bought(amountTobuy); - } - - function sell(uint256 amount) public { - require(amount > 0, "You need to sell at least some tokens"); - uint256 allowance = token.allowance(msg.sender, address(this)); - require(allowance >= amount, "Check the token allowance"); - token.transferFrom(msg.sender, address(this), amount); - msg.sender.transfer(amount); - emit Sold(amount); - } - -} -``` diff --git a/src/content/translations/pl/developers/tutorials/using-websockets/index.md b/src/content/translations/pl/developers/tutorials/using-websockets/index.md deleted file mode 100644 index a64b2dd5426..00000000000 --- a/src/content/translations/pl/developers/tutorials/using-websockets/index.md +++ /dev/null @@ -1,251 +0,0 @@ ---- -title: Używanie WebSockets -description: Przewodnik korzystania z WebSockets i Alchemy do wysyłania żądań JSON-RPC i subskrybowania zdarzeń. -author: "Elan Halpern" -lang: pl -tags: - - "alchemy" - - "websockets" - - "zapytania" - - "pierwsze kroki" - - "subskrypcja" - - "JavaScript" -skill: beginner -source: Dokumentacja Alchemy -sourceUrl: https://docs.alchemyapi.io/guides/using-websockets -published: 2020-12-01 ---- - -Jest to przewodnik na poziomie podstawowym do korzystania z WebSockets i Alchemy do wykonywania żądań do blockchainu Ethereum. - -## WebSockets vs. HTTP {#websockets-vs-http} - -W odróżnieniu od HTTP, z WebSockets, nie musisz ciągle wysyłać żądań, gdy chcesz uzyskać konkretne informacje. WebSockets utrzymuje dla Ciebie połączenie sieciowe (jeżeli zostało nawiązane) i nasłuchuje zmian. - -Podobnie jak w przypadku jakiegokolwiek połączenia sieciowego, nie należy zakładać, że WebSocket pozostanie otwarty na zawsze bez przerwy, ale właściwa obsługa zerwanego połączenia i ponowne nawiązanie połączenie może zapewnić ciągłość jego prawidłowego działania. Następną niedogodnością WebSocketów jest to, że nie otrzymujesz kodów statusu HTTP w odpowiedzi, ale tylko komunikat o błędzie. - -​[Alchemy Web3](https://docs.alchemy.com/reference/api-overview) automatycznie dodaje obsługę awarii WebSocket i ponawiania prób bez konieczności konfiguracji. - -## Wypróbuj {#try-it-out} - -Najprostszym sposobem na przetestowanie WebSockets jest zainstalowanie narzędzia wiersza poleceń do tworzenia żądań WebSocket, takich jak [wscat](https://github.com/websockets/wscat). Używając wscat, możesz wysyłać następujące żądania: - -_Uwaga: jeśli posiadasz konto Alchemy, możesz zastąpić `demo` własnym kluczem API. [Sign up for a free Alchemy account here!](https://auth.alchemyapi.io/signup)_ - -``` -wscat -c wss://eth-mainnet.ws.alchemyapi.io/ws/demo -> {"jsonrpc": "2.0", "id": 0, "method": "eth_gasPrice"} -< {"jsonrpc": "2.0", "result": "0xb2d05e00", "id": 0} - -``` - -## Jak korzystać z WebSockets {#how-to-use-websockets} - -Aby rozpocząć, otwórz WebSocket za pomocą adresu URL WebSocket dla swojej aplikacji. Możesz znaleźć adres URL swojej aplikacji WebSocket, otwierając stronę aplikacji w [pulpicie nawigacyjnym](https://dashboard.alchemyapi.io/) i klikając przycisk „Wyświetl klucz”. Pamiętaj, że adres URL Twojej aplikacji dla WebSocketów różni się od adresu URL dla żądań HTTP, ale oba można znaleźć klikając „Wyświetl klucz”. - -![Gdzie znaleźć twój adres URL WebSocket w panelu Alchemy](../../../../../developers/tutorials/using-websockets/use-websockets.gif) - -Każdy z API wymienionych w [alchemy API](https://docs.alchemyapi.io/documentation/alchemy-api-reference/) może być używany przez WebSocket. Aby to zrobić, użyj tego samego ładunku, który zostałby wysłany jako treść żądania HTTP POST, ale zamiast tego wyślij ten ładunek za pośrednictwem protokołu WebSocket. - -## Z Web3 {#with-web3} - -Przejście na WebSockets podczas korzystania z biblioteki klienckiej, takiej jak Web3, jest proste. Po prostu przekaż adres URL WebSocket zamiast HTTP podczas tworzenia instancji klienta Web3. Na przykład: - -```js -const web3 = new Web3("wss://eth-mainnet.ws.alchemyapi.io/ws/your-api-key") - -web3.eth.getBlockNumber().then(console.log) // -> 7946893 -``` - -## Subskrypcja API {#subscription-api} - -Po połączeniu przez WebSocket, możesz użyć dwóch dodatkowych metod: `eth_subscribe` i `eth_unsubscribe`. Te metody pozwolą Ci na wysłuchanie konkretnych wydarzeń i natychmiastowe powiadomienie. - -### `eth_subscribe` {#eth-subscribe} - -Tworzy nową subskrypcję dla określonych zdarzeń. [Dowiedz się więcej o `eth_subscribe`](https://docs.alchemyapi.io/documentation/alchemy-api-reference/json-rpc#eth_subscribe). - -#### Parametry {#parameters} - -1. Rodzaj subskrypcji -2. Parametry opcjonalne - -Pierwszy argument określa rodzaj wydarzenia, którego należy nasłuchiwać. Drugi argument zawiera dodatkowe opcje, które zależą od pierwszego argumentu. Poniżej opisano różne rodzaje opisów, ich opcje i obciążenia zdarzeniami. - -#### Zwraca {#returns} - -ID subskrypcji: Ten identyfikator zostanie dołączony do wszystkich otrzymanych wydarzeń, i może być również używany do anulowania subskrypcji za pomocą `eth_unsubscribe`. - -#### Zdarzenia subskrypcji {#subscription-events} - -Podczas gdy subskrypcja jest aktywna, otrzymasz zdarzenia, które są obiektami z następującymi polami: - -- `jsonrpc`: Zawsze "2.0" -- `method`: Zawsze "eth_subscription" -- `params`: Obiekt z następującymi polami: - - `subscription`: ID subskrypcji zwrócony przez połączenie `eth_subscription`, które utworzyło tę subskrypcję. - - `result`: Obiekt, którego zawartość różni się w zależności od rodzaju subskrypcji. - -#### Rodzaj subskrypcji {#subscription-types} - -1. `alchemy_newFullPendingTransactions` - -Zwraca informacje o transakcji dla wszystkich transakcji, które są dodane do stanu oczekującego. Ten typ subskrypcji subskrybuje oczekujące transakcje, podobne do standardowego połączenia Web3 `web3.eth. ubscribe("oczekujące transakcje")`, ale różni się w tym, że emituje _pełnych informacji o transakcjach_ zamiast tylko hashów transakcji. - -Przykład: - -```json -> {"jsonrpc": "2.0", "id": 1, "method": "eth_subscribe", "params": ["alchemy_newFullPendingTransactions"]} - -< {"id":1,"result":"0x9a52eeddc2b289f985c0e23a7d8427c8","jsonrpc":"2.0"} -< { - "jsonrpc":"2.0", - "method":"eth_subscription", - "params":{ - "result":{ - "blockHash":null, - "blockNumber":null, - "from":"0xa36452fc31f6f482ad823cd1cf5515177d57667f", - "gas":"0x1adb0", - "gasPrice":"0x7735c4d40", - "hash":"0x50bff0736c713458c92dd1848d12f3354149be1363123dae35e94e0f2a9d56bf", -"input":"0xa9059cbb0000000000000000000000000d0707963952f2fba59dd06f2b425ace40b492fe0000000000000000000000000000000000000000000015b1111266cfca100000", - "nonce":"0x0", - "to":"0xea38eaa3c86c8f9b751533ba2e562deb9acded40", - "transactionIndex":null, - "value":"0x0", - "v":"0x26", - "r":"0x195c2c1ed126088e12d290aa93541677d3e3b1d10f137e11f86b1b9227f01e3b", - "s":"0x60fc4edbf1527832a2a36dbc1e63ed6193a6eee654472fbebbf88ef1750b5344"}, - "subscription":"0x9a52eeddc2b289f985c0e23a7d8427c8" - } - } - -``` - -2. `newHeads` - -Emituje wydarzenie w dowolnym momencie, gdy nowy nagłówek zostanie dodany do łańcucha, w tym podczas reorganizacji łańcucha. - -Gdy nastąpi reorganizacja łańcucha, ta subskrypcja będzie emitować wydarzenie zawierające wszystkie nowe nagłówki dla nowego łańcucha. Oznacza to w szczególności, że można widzieć wiele emitowanych nagłówków z tą samą wysokością, i kiedy to nastąpi, późniejszy nagłówek powinien być uznany za prawidłowy po reorganizacji. - -Przykład: - -```json -> {"jsonrpc": "2.0", "id": 1, "method": "eth_subscribe", "params": ["newHeads"]} - -< {"jsonrpc":"2.0","id":2,"result":"0x9ce59a13059e417087c02d3236a0b1cc"} -< { - "jsonrpc": "2.0", - "method": "eth_subscription", - "params": { - "result": { - "difficulty": "0x15d9223a23aa", - "extraData": "0xd983010305844765746887676f312e342e328777696e646f7773", - "gasLimit": "0x47e7c4", - "gasUsed": "0x38658", - "logsBloom": -"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "miner": "0xf8b483dba2c3b7176a3da549ad41a48bb3121069", - "nonce": "0x084149998194cc5f", - "number": "0x1348c9", - "parentHash": "0x7736fab79e05dc611604d22470dadad26f56fe494421b5b333de816ce1f25701", - "receiptRoot": "0x2fab35823ad00c7bb388595cb46652fe7886e00660a01e867824d3dceb1c8d36", - "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "stateRoot": "0xb3346685172db67de536d8765c43c31009d0eb3bd9c501c9be3229203f15f378", - "timestamp": "0x56ffeff8", - "transactionsRoot": "0x0167ffa60e3ebc0b080cdb95f7c0087dd6c0e61413140e39d94d3468d7c9689f" - }, - "subscription": "0x9ce59a13059e417087c02d3236a0b1cc" - } -} - -``` - -3. `logs` - -Emituje logi będące częścią nowo dodanych bloków, które spełniają określone kryteria filtrów. - -Gdy nastąpi reorganizacja łańcucha, logi będące częścią bloków starego łańcucha będą ponownie emitowane z właściwością `removed` ustawioną na `true`. Ponadto emitowane są dzienniki będące częścią bloków w nowym łańcuchu, co oznacza, że ​​w przypadku reorganizacji możliwe jest wielokrotne wyświetlanie dzienników dla tej samej transakcji. - -Parametry - -1. Obiekt z następującymi opcjonalnymi kluczami: - - `adddress` (opcjonalnie): ciąg znaków reprezentujący adres lub tablica takich ciągów. - - Tylko logi utworzone z jednego z tych adresów zostaną wysłane. - - `topics`: tablica specyfikatorów tematów. - - Każdy specyfikator tematu jest albo `null`, ciągiem reprezentującym temat, albo tablicą ciągów. - - Każda pozycja w tablicy, która nie jest `null` ogranicza emitowane logi tylko do tych, którzy mają jeden z podanych tematów w tej pozycji. - -Przykłady specyfikacji tematu: - -- `[]`: Wszystkie dozwolone tematy. -- `[A]`: Pierwsza pozycja (i cokolwiek po). -- `[null, B]`: wszystko w pierwszej pozycji i B w drugiej pozycji (i cokolwiek po). -- `[null, B]`: wszystko w pierwszej pozycji i B w drugiej pozycji (i cokolwiek po). -- `[[A, B], [A, B]]`: (A lub B) w pierwszej pozycji i (A lub B) w drugiej pozycji (i cokolwiek po). - -Przykład: - -```json -> {"jsonrpc": "2.0", "id": 1, "method": "eth_subscribe", "params": ["logs", {"address": "0x8320fe7702b96808f7bbc0d4a888ed1468216cfd", "topics": ["0xd78a0cb8bb633d06981248b816e7bd33c2a35a6089241d099fa519e361cab902"]}]} - -< {"jsonrpc":"2.0","id":2,"result":"0x4a8a4c0517381924f9838102c5a4dcb7"} -< { - "jsonrpc": "2.0", - "method": "eth_subscription", - "params": { - "subscription": "0x4a8a4c0517381924f9838102c5a4dcb7", - "result": { - "address": "0x8320fe7702b96808f7bbc0d4a888ed1468216cfd", - "blockHash": "0x61cdb2a09ab99abf791d474f20c2ea89bf8de2923a2d42bb49944c8c993cbf04", - "blockNumber": "0x29e87", - "data": "0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003", - "logIndex":"0x0", - "topics":["0xd78a0cb8bb633d06981248b816e7bd33c2a35a6089241d099fa519e361cab902"], - "transactionHash": "0xe044554a0a55067caafd07f8020ab9f2af60bdfe337e395ecd84b4877a3d1ab4", - "transactionIndex": "0x0" - } - } -} - -``` - -### `eth_unsubscribe` {#eth-unsubscribe} - -Anuluje istniejącą subskrypcję, aby nie wysyłano żadnych kolejnych wydarzeń. - -Parametry - -1. ID subskrypcji, jakie zostało wcześniej zwrócone z połączenia `eth_subscribe`. - -Zwraca - -`true` jeśli subskrypcja została pomyślnie anulowana lub `false` jeśli nie istnieje subskrypcja z podanym identyfikatorem. - -Przykład: - -**Zapytanie** - -``` -curl https://eth-mainnet.alchemyapi.io/v2/your-api-key --X POST --H "Content-Type: application/json" --d '{"id": 1, "method": "eth_unsubscribe", "params": ["0x9cef478923ff08bf67fde6c64013158d"]}' - - -``` - -**Wynik** - -```json -{ - "jsonrpc": "2.0", - "id": 1, - "result": true -} -``` - ---- - -[Zarejestruj się w Alchemy](https://auth.alchemyapi.io/signup) za darmo, sprawdź [naszą dokumentację](https://docs.alchemyapi.io/) aby uzyskać najnowsze wiadomości, obserwuj nas na [Twitterze](https://twitter.com/AlchemyPlatform). diff --git a/src/content/translations/pl/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md b/src/content/translations/pl/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md deleted file mode 100644 index d4121baf93a..00000000000 --- a/src/content/translations/pl/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md +++ /dev/null @@ -1,297 +0,0 @@ ---- -title: "Waffle: Dynamiczne tworzenie atrap i testowanie wywołań kontraktów" -description: Zaawansowany samouczek Waffle do używania dynamicznego tworzenia atrap i testowania wywołań kontraktów -author: "Daniel Izdebski" -tags: - - "waffle" - - "inteligentne kontrakty" - - "solidity" - - "testowanie" - - "tworzenie atrap" -skill: intermediate -lang: pl -published: 2020-11-14 ---- - -## O czym jest ten samouczek? {#what-is-this-tutorial-about} - -Z tego samouczka dowiesz się, jak: - -- uużywać dynamicznego tworzenia atrap -- testować interakcje między inteligentnymi kontraktami - -Założenia: - -- wiesz już, jak napisać prosty inteligentny kontrakt w `Solidity ` -- znasz się na `JavaScript` i `TypeScript` -- zapoznałeś się z innymi samouczkami `Waffle` lub wiesz coś na ten temat - -## Dynamiczne tworzenie atrap {#dynamic-mocking} - -Dlaczego dynamiczne tworzenie atrap jest przydatne? No cóż, pozwala nam pisać testy jednostkowe zamiast testów integracyjnych. Co to oznacza? Oznacza to, że nie musimy martwić się zależnościami inteligentnych kontraktów, dlatego możemy je przetestować w całkowicie izolacji. Pozwolę sobie pokazać, jak dokładnie możesz to zrobić. - -### **1. Projekt** {#1-project} - -Zanim zaczniemy musimy przygotować prosty projekt node.js: - -```bash -$ mkdir dynamic-mocking -$ cd dynamic-mocking -$ mkdir contracts src - -$ yarn init -# or if you're using npm -$ npm init -``` - -Zacznijmy od dodania zależności typescript i test — mokka i chai: - -```bash -$ yarn add --dev @types/chai @types/mocha chai mocha ts-node typescript -# lub jeśli używasz npm $ npm install @types/chai @types/mocha chai mocha ts-node typescript --save-dev -``` - -Teraz dodajmy `Waffle` i `ethers`: - -```bash -$ yarn add --dev ethereum-waffle ethers -# or if you're using npm -$ npm install ethereum-waffle ethers --save-dev -``` - -Twoja struktura projektu powinna teraz wyglądać tak: - -``` -. -├── contracts -├── package.json -└── test -``` - -### **2. Inteligentny kontrakt** {#2-smart-contract} - -Aby rozpocząć dynamiczne tworzenie atrapy, potrzebujemy inteligentnego kontraktu z zależnościami. Nie martw się, pomyślałem o tym! - -Oto prosty inteligentny kontrakt napisany w `Solidity`, którego jedynym celem jest sprawdzenie, czy jesteśmy bogaci. Używa tokena ERC20 do sprawdzenia, czy mamy wystarczającą ilość tokenów. Umieść go w `./contracts/AmIRichAlready.sol`. - -```solidity -pragma solidity ^0.6.2; - -interface IERC20 { - function balanceOf(address account) external view returns (uint256); -} - -contract AmIRichAlready { - IERC20 private tokenContract; - uint public richness = 1000000 * 10 ** 18; - - constructor (IERC20 _tokenContract) public { - tokenContract = _tokenContract; - } - - function check() public view returns (bool) { - uint balance = tokenContract.balanceOf(msg.sender); - return balance > richness; - } -} -``` - -Ponieważ chcemy używać dynamicznego tworzenia atrap, nie potrzebujemy całego ERC20, dlatego używamy interfejsu IERC20 z tylko jedną funkcją. - -Nadszedł czas, aby zbudować ten kontrakt! W tym celu użyjemy `Waffle`. Najpierw stworzymy prosty plik konfiguracyjny `waffle.json`, który określa opcje kompilacji. - -```json -{ - "compilerType": "solcjs", - "compilerVersion": "0.6.2", - "sourceDirectory": "./contracts", - "outputDirectory": "./build" -} -``` - -Teraz jesteśmy gotowi zbudować kontrakt z Waffle: - -```bash -$ npx waffle -``` - -Łatwe, prawda? W folderze `build/` pojawiły się dwa pliki odpowiadające umowie i interfejsowi. Wykorzystamy je później do testowania. - -### **3. Testowanie** {#3-testing} - -Utwórzmy plik o nazwie `AmIRichAlready.test.ts` dla bieżącego testu. Przede wszystkim musimy poradzić sobie z importem. Będziemy ich potrzebować na później: - -```typescript -import { expect, use } from "chai" -import { Contract, utils, Wallet } from "ethers" -import { - deployContract, - deployMockContract, - MockProvider, - solidity, -} from "ethereum-waffle" -``` - -Z wyjątkiem zależności JS, musimy zaimportować naszą wbudowaną umowę i interfejs: - -```typescript -import IERC20 from "../build/IERC20.json" -import AmIRichAlready from "../build/AmIRichAlready.json" -``` - -Waffle używa `chai` do testowania. Zanim jednak będziemy mogli go użyć, musimy wstrzyknąć wyrażenie matcher Waffle do samego chai: - -```typescript -use(solidity) -``` - -Musimy zaimplementować funkcję `beforeEach()`, która zresetuje stan kontraktu przed każdym testem. Zastanówmy się najpierw nad tym, czego tam potrzebujemy. Aby wdrożyć umowę, potrzebujemy dwóch rzeczy: portfela i wdrożonego kontraktu ERC20, aby przekazać go jako argument dla kontraktu `AmIRichAlready`. - -Po pierwsze, tworzymy portfel: - -```typescript -const [wallet] = new MockProvider().getWallets() -``` - -Następnie musimy wdrożyć umowę ERC20. Oto trudna część - mamy tylko interfejs. Jest to ta część, w której Waffle nas ratuje. Waffle posiada magiczną funkcję `wdrożenieMockContract()`, która tworzy kontrakt wykorzystujący tylko _abi_ interfejsu: - -```typescript -const mockERC20 = await deployMockContract(wallet, IERC20.abi) -``` - -Teraz, zarówno z portfelem, jak i z ERC20, możemy kontynuować i wdrożyć kontrakt `AmIRichAlready`: - -```typescript -const contract = await deployContract(wallet, AmIRichAlready, [ - mockERC20.address, -]) -``` - -Po tym wszystkim nasza funkcja `beforeEach()` została zakończona. Jak dotąd plik `AmIRichAlready.test.ts` powinien wyglądać tak: - -```typescript -import { expect, use } from "chai" -import { Contract, utils, Wallet } from "ethers" -import { - deployContract, - deployMockContract, - MockProvider, - solidity, -} from "ethereum-waffle" - -import IERC20 from "../build/IERC20.json" -import AmIRichAlready from "../build/AmIRichAlready.json" - -use(solidity) - -describe("Am I Rich Already", () => { - let mockERC20: Contract - let contract: Contract - let wallet: Wallet - - beforeEach(async () => { - ;[wallet] = new MockProvider().getWallets() - mockERC20 = await deployMockContract(wallet, IERC20.abi) - contract = await deployContract(wallet, AmIRichAlready, [mockERC20.address]) - }) -}) -``` - -Zapiszmy pierwszy test do kontraktu `AmIRichAlready`. Czy uważasz, że powinniśmy mieć na uwadze nasz test? Tak, masz rację! Powinniśmy sprawdzić, czy już jesteśmy bogaci :) - -Ale poczekaj sekundę. Jak nasz pozorowany kontrakt będzie wiedział, jakie wartości należy zwrócić? Nie zaimplementowaliśmy żadnej logiki dla funkcji `balanceOf()`. Jeszcze raz Waffle może tu pomóc. Nasz pozorowany kontrakt ma teraz kilka nowych, fantazyjnych rzeczy: - -```typescript -await mockERC20.mock..returns() -await mockERC20.mock..withArgs().returns() -``` - -Dzięki tej wiedzy możemy wreszcie napisać nasz pierwszy test: - -```typescript -it("returns false if the wallet has less than 1000000 tokens", async () => { - await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) - expect(await contract.check()).to.be.equal(false) -}) -``` - -Podzielmy ten test na części: - -1. Ustawiliśmy naszą próbną umowę ERC20 tak, aby zawsze zwracała saldo 999999 tokenów. -2. Sprawdź, czy metoda `contract.check()` zwraca `false`. - -Jesteśmy gotowi wystrzelić z grubej rury: - -![Jeden test zaliczony](../../../../../developers/tutorials/waffle-dynamic-mocking-and-testing-calls/test-one.png) - -Tak więc test działa, ale... wciąż jest trochę miejsca na ulepszenia. Funkcja `balanceOf()` zawsze zwróci 99999. Możemy ją ulepszyć poprzez określenie portfela, dla którego funkcja powinna zwracać coś — tak jak prawdziwy kontrakt: - -```typescript -it("returns false if the wallet has less than 1000001 tokens", async () => { - await mockERC20.mock.balanceOf - .withArgs(wallet.address) - .returns(utils.parseEther("999999")) - expect(await contract.check()).to.be.equal(false) -}) -``` - -Jak dotąd przetestowaliśmy tylko przypadek, w którym nie jesteśmy wystarczająco bogaci. Przetestujmy przeciwnie: - -```typescript -it("returns true if the wallet has at least 1000001 tokens", async () => { - await mockERC20.mock.balanceOf - .withArgs(wallet.address) - .returns(utils.parseEther("1000001")) - expect(await contract.check()).to.be.equal(true) -}) -``` - -Uruchomiłeś testy... - -![Zaliczenie dwóch testów](../../../../../developers/tutorials/waffle-dynamic-mocking-and-testing-calls/test-two.png) - -...i tu jesteś! Nasza umowa wydaje się działać zgodnie z zamierzeniem :) - -## Testowanie wywołań kontraktów {#testing-contract-calls} - -Podsumujmy dotychczasowe osiągnięcia. Przetestowaliśmy funkcjonalność naszego kontraktu `AmIRichAlready` i wygląda na to, że działa poprawnie. To znaczy, że skończyliśmy, prawda? Nie całkiem! Waffle pozwala nam jeszcze bardziej przetestować nasz kontrakt. Ale jak dokładnie? No cóż, w arsenale Waffle'a znajduje się `calledOnContract()` i wyrażenia matcher `calledOnContractWith()`. Umożliwią nam one sprawdzenie, czy nasz kontrakt wywołał pozorowany kontrakt ERC20. Oto podstawowy test z jednym z tych wyrażeń: - -```typescript -it("checks if contract called balanceOf on the ERC20 token", async () => { - await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) - await contract.check() - expect("balanceOf").to.be.calledOnContract(mockERC20) -}) -``` - -Możemy pójść jeszcze dalej i ulepszyć ten test za pomocą innego wyrażenia matcher, o którym wam mówiłem: - -```typescript -it("checks if contract called balanceOf with certain wallet on the ERC20 token", async () => { - await mockERC20.mock.balanceOf - .withArgs(wallet.address) - .returns(utils.parseEther("999999")) - await contract.check() - expect("balanceOf").to.be.calledOnContractWith(mockERC20, [wallet.address]) -}) -``` - -Sprawdźmy, czy testy są poprawne: - -![Zaliczenie trzech testów](../../../../../developers/tutorials/waffle-dynamic-mocking-and-testing-calls/test-three.png) - -Świetnie, wszystkie testy są zielone. - -Testowanie połączeń kontraktowych z Waffle jest bardzo łatwe. I oto najlepsza część. Te wyrażenia matcher działają zarówno z normalnymi, jak i próbnymi kontraktami! Wynika to z tego, że Waffle rejestruje i filtruje połączenia EVM zamiast wstrzykiwać kod, tak jak w przypadku popularnych bibliotek testowych dla innych technologii. - -## Meta {#the-finish-line} - -Gratulacje! Teraz wiesz jak korzystać z Waffle do dynamicznego testowania połączeń i modelowania kontraktów. Istnieją o wiele bardziej interesujące funkcje, które należy odkryć. Zalecam nurkowanie w dokumentacji Waffle. - -Dokumentacja Waffle'a jest dostępna [tutaj](https://ethereum-waffle.readthedocs.io/). - -Kod źródłowy dla tego samouczka można znaleźć [tutaj](https://github.com/EthWorks/Waffle/tree/master/examples/dynamic-mocking-and-testing-calls). - -Samouczki mogą być interesujące: - -- [Testowanie inteligentnych kontraktów z Waffle](/developers/tutorials/testing-smart-contract-with-waffle/) diff --git a/src/content/translations/pl/nft/index.md b/src/content/translations/pl/nft/index.md deleted file mode 100644 index 8b360e2c8c1..00000000000 --- a/src/content/translations/pl/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Tokeny niezamienne (NFT) -description: Przedstawienie NFT na Ethereum -lang: pl -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: Logo Ethereum wyświetlane jako hologram. -summaryPoint1: Sposób reprezentowania czegoś wyjątkowego jako aktywu na blockchainie Ethereum. -summaryPoint2: NFT dają ich twórcom możliwości, których nigdy wcześniej nie mieli. -summaryPoint3: Wspierane przez inteligentne kontrakty na blockchainie Ethereum. ---- - -## Czym są NFT? {#what-are-nfts} - -NFT to tokeny, które są unikalne. Każdy NFT ma inne właściwości (niezamienne) i można udowodnić, że jest rzadki. Różni się to od tokenów takich jak ERC-20, gdzie każdy token w zestawie jest identyczny i ma te same właściwości („zamienne”). Nie obchodzi cię, który konkretnie banknot masz w portfelu, ponieważ wszystkie są identyczne i warte tyle samo. Jednakże _ma_ znaczenie, który konkretnie NFT posiadasz, ponieważ wszystkie mają indywidualne właściwości, które odróżniają je od innych („niezamienne”). - -Unikalność każdego NFT umożliwia tokenizację rzeczy takich jak dzieła artystyczne, przedmioty kolekcjonerskie, a nawet nieruchomości, gdzie jeden konkretny unikalny NFT reprezentuje konkretny unikalny prawdziwy lub cyfrowy przedmiot. Własność aktywa zabezpieczona jest przez blockchain Ethereum — nikt nie może zmodyfikować rejestrów własności ani skopiować/wkleić nowego NFT. - - - -## Internet rzeczy {#internet-of-assets} - -NFT i Ethereum rozwiązują niektóre z problemów występujących w dzisiejszym internecie. Ponieważ wszystko staje się coraz bardziej cyfrowe, istnieje potrzeba odtworzenia właściwości przedmiotów fizycznych, takich jak rzadkość, unikalność i dowód własności w sposób, który nie jest kontrolowany przez centralną organizację. Na przykład, dzięki NFT możesz posiadać muzykę mp3, która nie jest specyficzna dla konkretnej aplikacji muzycznej jednej firmy, lub możesz mieć nazwę konta w mediach społecznościowych, którą możesz sprzedać lub wymienić, ale nie może ona zostać samowolnie odebrana przez dostawcę platformy. - -Oto jak wygląda porównanie Internetu NFT z Internetem, z którego korzysta większość z nas... - -### Porównanie {#nft-comparison} - -| Internet NFT | Internet dzisiaj | -| --------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Ty jesteś właścicielem swoich aktywów! Tylko Ty możesz je sprzedać lub wymienić. | Wynajmujesz aktywa od jakiejś organizacji. | -| NFT są cyfrowo unikalne, nie istnieją dwa takie same NFT. | Kopia jakiejś jednostki często nie może być odróżniona od oryginału. | -| Własność NFT jest przechowywana w blockchainie tak, aby każdy mógł ją zweryfikować. | Rejestry własności przedmiotów cyfrowych są przechowywane na serwerach kontrolowanych przez instytucje — musisz im wierzyć na słowo. | -| NFT to inteligentne kontrakty na Ethereum. Oznacza to, że można je łatwo wykorzystać w innych inteligentnych kontraktach i aplikacjach na Ethereum! | Firmy posiadające elementy cyfrowe zazwyczaj wymagają własnej infrastruktury typu „ogrodzony ogród” („walled garden”). | -| Twórcy mogą sprzedawać swoje prace w dowolnym miejscu i mają dostęp do globalnego rynku. | Twórcy opierają się na infrastrukturze i systemie dystrybucji platform, z których korzystają. Są one często objęte określonymi warunkami użytkowania i ograniczeniami geograficznymi. | -| Twórcy NFT mogą zachować prawa własności do własnej pracy i zaprogramować tantiemy bezpośrednio w kontrakcie NFT. | Platformy, takie jak serwisy streamingu muzyki, zachowują większość zysków ze sprzedaży. | - -## Jak działają NFT? {#how-nfts-work} - -Podobnie jak każdy token wydany na Ethereum, NFT są wydawane przez inteligentny kontrakt. Inteligentny kontrakt jest zgodny z jednym z kilku standardów NFT (najczęściej ERC-721 lub ERC-1155), które określają funkcje, jakie posiada kontrakt. Kontrakt może tworzyć („wybijać”) NFT i przypisywać je do określonego właściciela. Własność jest określona w kontrakcie poprzez mapowanie określonych NFT na określone adresy. NFT ma ID i zazwyczaj powiązane z nim metadane, które sprawiają, że konkretny token jest unikalny. - -Kiedy ktoś tworzy lub wybija NFT, tak naprawdę wykonuje funkcję w inteligentnym kontrakcie, która przypisuje określony NFT do jego adresu. Informacja ta jest przechowywana w pamięci kontraktu, która jest częścią blochainu. Twórca kontraktu może zapisać w niej dodatkową logikę, na przykład ograniczając całkowitą ilość lub określając tantiemę, która ma być wypłacana twórcy za każdym razem, gdy token zostanie przeniesiony. - -## W jakim celu używa się NFT? {#nft-use-cases} - -NFT są używane do wielu rzeczy, w tym: - -- do udowadniania udziału w wydarzeniu -- do zaświadczania o ukończeniu kursu -- jako posiadalne przedmioty dla graczy -- cyfrowa sztuka -- tokenizacja prawdziwych aktywów -- do potwierdzania tożsamości w sieci -- do ograniczania dostępu do treści -- do wystawiania biletów -- zdecentralizowane nazwy domen internetowych -- jako zabezpieczenie w DeFi - -Być może jesteś artystą, który chce udostępniać swoje prace za pomocą NFT, bez utraty kontroli i poświęcania zysków na rzecz pośredników. Możesz utworzyć nowy kontrakt i określić liczbę NFT, ich właściwości oraz link do określonego dzieła sztuki. Jako artysta możesz zaprogramować w inteligentnym kontrakcie tantiemy, które powinny zostać Ci zapłacone (np. przekazać 5% ceny sprzedaży właścicielowi kontraktu za każdym razem, gdy NFT zostanie przeniesione). Zawsze możesz również udowodnić, że NFT został stworzony przez Ciebie, ponieważ jesteś właścicielem portfela, który wdrożył kontrakt. Kupujący mogą łatwo udowodnić, że posiadają autentyczny NFT z Twojej kolekcji, ponieważ ich adres portfela jest powiązany z tokenem w Twoim inteligentnym kontrakcie. Mogą go używać w całym ekosystemie Ethereum, mając pewność co do jego autentyczności. - -To tak jak bilet na wydarzenie sportowe. Podobnie jak organizator wydarzenia może wybrać, ile biletów chce sprzedać, twórca NFT może zdecydować, ile istnieje replik. Czasami są to dokładne repliki, takie jak 5000 takich samych biletów wstępu. Czasami wybijanych jest kilka bardzo podobnych, ale każdy z nich nieco się różni, np. bilet z przypisanym miejscem. Można je kupować i sprzedawać peer-to-peer bez płacenia osobie obsługującej bilety, a kupujący zawsze ma pewność co do autentyczności biletu, sprawdzając adres kontraktu. - -Na ethereum.org NFT są używane do pokazania, że ludzie wnieśli swój wkład do naszego repozytorium GitHub lub uczestniczyli w rozmowach, a nawet mamy własną nazwę domeny NFT. Jeśli przyczynisz się do rozwoju ethereum.org, możesz otrzymać NFT w formie POAPu. Niektóre spotkania kryptowalutowe wykorzystywały tokeny POAP jako bilety. [Więcej na temat przyczyniania się do rozwoju Ethereum](/contributing/#poap). - -![ethereum.org POAP](./poap.png) - -Ta strona ma alternatywną domenę obsługiwaną przez NFT, **ethereum.eth**. Nasz adres `.org` jest zarządzany centralnie przez DNS, podczas gdy ethereum`.eth` jest zarejestrowany na Ethereum za pośrednictwem Ethereum Name Service (ENS). Jest ona naszą własnością i jest zarządzana przez nas. [Sprawdź nasz wpis do ENS](https://app.ens.domains/name/ethereum.eth) - -[Więcej o ENS](https://app.ens.domains) - - - -### Bezpieczeństwo NFT {#nft-security} - -Bezpieczeństwo Ethereum wynika z algorytmu proof-of-stake. System został zaprojektowany w celu ekonomicznego zniechęcenia do złośliwych działań, dzięki czemu Ethereum jest odporne na manipulacje. To właśnie umożliwia działanie NFT. Gdy blok zawierający Twoją transakcję NFT zostanie sfinalizowany, zmiana go kosztowałaby atakującego miliony ETH. Każdy, kto korzysta z oprogramowania Ethereum, byłby w stanie natychmiast wykryć nieuczciwe manipulacje w NFT, a przestępca zostałby ekonomicznie ukarany i wyrzucony. - -Kwestie bezpieczeństwa związane z NFT są najczęściej związane z oszustwami typu phishing, lukami w inteligentnych kontraktach lub błędami użytkownika (takimi jak nieumyślne ujawnienie kluczy prywatnych), co sprawia, że dbanie o bezpieczeństwo portfela ma kluczowe znaczenie dla właścicieli NFT. - - - Więcej o bezpieczeństwie - - -## Dalsza lektura {#further-reading} - -- [Przewodnik po NFT dla początkujących](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) — _Linda Xie, styczeń 2020 r._ -- [Moduł śledzący EtherscanNFT](https://etherscan.io/nft-top-contracts) -- [Standard tokenów ERC-721](/developers/docs/standards/tokens/erc-721/) -- [Standard tokenów ERC-1155](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/pl/refi/index.md b/src/content/translations/pl/refi/index.md deleted file mode 100644 index d02c5f3e19d..00000000000 --- a/src/content/translations/pl/refi/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: Finanse regeneracyjne (ReFi) -description: Przegląd ReFi i jego obecnych zastosowań. -lang: pl -template: use-cases -emoji: ":recycle:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Alternatywny system ekonomiczny oparty na zasadach regeneracji -summaryPoint2: Próba wykorzystania Ethereum do rozwiązania globalnych kryzysów koordynacyjnych, takich jak zmiany klimatu -summaryPoint3: Narzędzie do drastycznego skalowania aktywów przynoszących korzyści ekologiczne, takich jak zweryfikowane kredyty węglowe (carbon credits) ---- - -## Czym jest ReFi? {#what-is-refi} - -**Finanse regeneracyjne (ReFi)** to zestaw narzędzi i pomysłów opartych na blockchainach, których celem jest tworzenie gospodarek, które są regeneracyjne, a nie wydobywcze lub eksploatacyjne. Ostatecznie systemy wydobywcze wyczerpią dostępne zasoby i upadną; bez mechanizmów regeneracyjnych brakuje im odporności. ReFi działa w oparciu o założenie, że tworzenie wartości pieniężnej musi być oddzielone od niezrównoważonego wydobycia zasobów z naszej planety i społeczności. - -Zamiast tego ReFi ma na celu rozwiązywanie problemów środowiskowych, komunalnych lub społecznych poprzez tworzenie cykli regeneracyjnych. Systemy te tworzą wartość dla uczestników, jednocześnie przynosząc korzyści ekosystemom i społecznościom. - -Jednym z fundamentów ReFi jest koncepcja ekonomii regeneracyjnej, której pionierem jest John Fullerton z [Capital Institute](https://capitalinstitute.org). Zaproponował osiem powiązanych ze sobą zasad, które leżą u podstaw zdrowia systemowego: - -![Osiem połączonych ze sobą zasad](../../assets/use-cases/refi-regenerative-economy-diagram.png) - -Projekty ReFi realizują te zasady przy użyciu [inteligentnych kontraktów](/developers/docs/smart-contracts/) i aplikacji [zdecentralizowanych finansów (DeFi)](/defi/) w celu zachęcania do zachowań regeneracyjnych, np. przywracania zdegradowanych ekosystemów i ułatwiania współpracy na dużą skalę w kwestii globalnych problemów, takich jak zmiany klimatu i utrata różnorodności biologicznej. - -ReFi nakłada się również z ruchem [zdecentralizowanej nauki (DeSci)](/desci/), który wykorzystuje Ethereum jako platformę do finansowania, tworzenia, recenzowania, kredytowania, przechowywania i rozpowszechniania wiedzy naukowej. Narzędzia DeSci mogą stać się przydatne do opracowywania weryfikowalnych standardów i praktyk realizacji i monitorowania działań regeneracyjnych, takich jak sadzenie drzew, usuwanie plastiku z oceanu lub przywracanie zdegradowanego ekosystemu. - -## Tokenizacja kredytów węglowych {#tokenization-of-carbon-credits} - -**[Dobrowolny rynek emisji dwutlenku węgla (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** to mechanizm finansowania projektów, które mają zweryfikowany pozytywny wpływ na emisję dwutlenku węgla, zmniejszając bieżące emisje, albo usuwając gazy cieplarniane już wyemitowane z atmosfery. Projekty te po weryfikacji otrzymują aktywa zwane „kredytami węglowymi”, które mogą sprzedawać osobom i organizacjom, które chcą wspierać działania na rzecz klimatu. - -Oprócz VCM istnieje również kilka rynków emisji dwutlenku węgla zarządzanych przez rząd („rynki zgodności”), które mają na celu ustalenie ceny emisji dwutlenku węgla za pomocą przepisów ustawowych lub wykonawczych w ramach określonej jurysdykcji (np. kraju lub regionu), kontrolując podaż pozwoleń do dystrybucji. Rynki zgodności zachęcają zanieczyszczających w ramach ich jurysdykcji do ograniczenia emisji, ale nie są w stanie usunąć gazów cieplarnianych, które zostały już wyemitowane. - -Pomimo rozwoju w ostatnich dekadach, VCM nadal boryka się z wieloma problemami: - -1. Bardzo rozdrobniona płynność -2. Nieprzejrzyste mechanizmy transakcyjne -3. Wysokie opłaty -4. Bardzo wolna prędkość handlu -5. Brak skalowalności - -Przejście VCM do nowego, opartego na blockchainie **cyfrowego rynku emisji (DCM)** może być okazją do ulepszenia istniejącej technologii walidacji, transakcji i konsumpcji kredytów węglowych. Blockchainy umożliwiają publiczną weryfikację danych, dostęp dla szerokiego grona użytkowników i większą płynność. - -Projekty ReFi wykorzystują technologię blockchain do złagodzenia wielu problemów tradycyjnego rynku: - -- **Płynność jest skoncentrowana w niewielkiej liczbie pul płynności**, którymi każdy może swobodnie handlować. Duże organizacje, a także indywidualni użytkownicy mogą korzystać z tych pul bez ręcznego wyszukiwania sprzedawców/kupujących, opłat za uczestnictwo lub wcześniejszej rejestracji. -- **Wszystkie transakcje są rejestrowane na publicznych blockchainach**. Ścieżka, którą podąża każdy kredyt węglowy w związku z aktywnością handlową, jest zawsze wykrywalna, gdy tylko zostanie udostępniona w DCM. -- **Prędkość transakcji jest niemal natychmiastowa**. Zabezpieczenie dużych ilości kredytów węglowych za pośrednictwem dotychczasowych rynków może zająć dni lub tygodnie, ale można to osiągnąć w ciągu kilku sekund na DCM. -- **Działalność handlowa odbywa się bez pośredników**, którzy pobierają wysokie opłaty. Według danych jednej z firm analitycznych cyfrowe kredyty węglowe tworzą [poprawę kosztów o 62% w porównaniu z równoważnymi tradycyjnymi kredytami](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne). -- **DCM jest skalowalny** i może sprostać wymaganiom zarówno osób fizycznych, jak i międzynarodowych korporacji. - -### Kluczowe elementy DCM {#key-components-dcm} - -Cztery główne elementy składają się na obecny wizerunek DCM: - -1. Rejestry takie jak [Verra](https://verra.org/project/vcs-program/registry-system/) i [Gold Standard](https://www.goldstandard.org/) zapewniają, że projekty tworzące kredyty węglowe są rzetelne. Obsługują również bazy danych, w których powstają cyfrowe kredyty węglowe i mogą być przenoszone lub wykorzystywane (wycofywane). - -Istnieje nowa fala innowacyjnych projektów budowanych na blockchainach, które próbują zakłócić działalność operatorów istniejących w tym sektorze. - -2. Mosty węglowe, zwane również tokenizatorami, dostarczają technologię reprezentowania lub przenoszenia kredytów węglowych z tradycyjnych rejestrów do DCM. Godnymi uwagi przykładami są [Toucan Protocol](https://toucan.earth/), [C3](https://c3.app/) i [Moss.Earth](https://moss.earth/). -3. Zintegrowane usługi oferują użytkownikom końcowym kredyty na unikanie i/lub usuwanie emisji dwutlenku węgla, dzięki czemu mogą oni ubiegać się o korzyści środowiskowe wynikające z kredytu i dzielić się ze światem swoim wsparciem dla działań na rzecz klimatu. - -Niektóre z nich, takie jak [Klima Infinity](https://www.klimadao.finance/infinity) i [Senken](https://senken.io/), oferują szeroki wybór projektów opracowanych przez strony trzecie i wydanych zgodnie z ustalonymi standardami, takimi jak Verra; inne, takie jak [Nori](https://nori.com/), oferują tylko określone projekty opracowane zgodnie z ich własnym standardem kredytów węglowych, które wydają i dla których mają własny dedykowany rynek. - -4. Podstawowe szyny i infrastruktura, które ułatwiają zwiększenie wpływu i wydajności całego łańcucha dostaw na rynku emisji dwutlenku węgla. [KlimaDAO](http://klimadao.finance/) zapewnia płynność jako dobro publiczne (umożliwiając każdemu kupno lub sprzedaż kredytów węglowych w przejrzystej cenie), zachęca do zwiększonej przepustowości rynków emisji dwutlenku węgla i wycofywania z nich za pomocą nagród oraz zapewnia przyjazne dla użytkownika interoperacyjne narzędzia umożliwiające dostęp do danych, a także nabywanie i wycofywanie szerokiego wyboru tokenizowanych kredytów emisji dwutlenku węgla. - -## ReFi poza rynkami emisji dwutlenku węgla {#refi-beyond} - -Chociaż obecnie kładzie się duży nacisk na rynki emisji dwutlenku węgla w ogóle, a w szczególności na przejście z VCM na DCM, termin „ReFi” nie ogranicza się ściśle do emisji dwutlenku węgla. Inne aktywa środowiskowe poza kredytami węglowymi mogą być rozwijane i tokenizowane, co będzie oznaczać, że inne negatywne efekty zewnętrzne mogą być również wyceniane w podstawowych warstwach przyszłych systemów ekonomicznych. Co więcej, regeneracyjny aspekt tego modelu ekonomicznego można zastosować w innych obszarach, takich jak finansowanie dóbr publicznych za pośrednictwem platform finansowania kwadratowego, takich jak [Gitcoin](https://gitcoin.co/). Organizacje, które opierają się na idei otwartego uczestnictwa i sprawiedliwej dystrybucji zasobów, umożliwiają każdemu przekazywanie pieniędzy na projekty oprogramowania open-source, a także projekty edukacyjne, środowiskowe i społecznościowe. - -Zmieniając kierunek kapitału z praktyk wydobywczych na regeneracyjne, projekty i firmy, które zapewniają korzyści społeczne, środowiskowe lub komunalne — i które mogą nie uzyskać finansowania w tradycyjnych finansach — mogą rozpocząć działalność i generować pozytywne efekty zewnętrzne dla społeczeństwa znacznie szybciej i łatwiej. Przejście na ten model finansowania otwiera również drzwi do znacznie bardziej inkluzywnych systemów ekonomicznych, w których ludzie ze wszystkich grup demograficznych mogą stać się aktywnymi uczestnikami, a nie tylko biernymi obserwatorami. ReFi oferuje wizję Ethereum jako mechanizmu koordynującego działania w zakresie egzystencjalnych wyzwań stojących przed naszym gatunkiem i całym życiem na naszej planecie — jako podstawowej warstwy nowego paradygmatu ekonomicznego, umożliwiającego bardziej inkluzywną i zrównoważoną przyszłość na nadchodzące stulecia. - -## Dodatkowe informacje na temat ReFi - -- [Ogólny przegląd walut węglowych i ich miejsca w gospodarce](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) -- [The Ministry for the Future, powieść przedstawiająca rolę waluty opartej na węglu w walce ze zmianami klimatu](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) -- [Szczegółowy raport grupy zadaniowej ds. dobrowolnego skalowania rynków emisji dwutlenku węgla](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) -- [Wpis Kevina Owockiego i Evana Miyazono w glosariuszu CoinMarketCap o ReFi](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/pl/roadmap/beacon-chain/index.md b/src/content/translations/pl/roadmap/beacon-chain/index.md deleted file mode 100644 index 060c93053ca..00000000000 --- a/src/content/translations/pl/roadmap/beacon-chain/index.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: Łańcuch śledzący -description: Dowiedz się więcej o łańcuchu śledzącym — uaktualnieniu, które wprowadziło mechanizm proof-of-stake w sieci Ethereum. -lang: pl -template: upgrade -image: ../../../../../assets/upgrades/core.png -summaryPoint1: Łańcuch śledzący wprowadził mechanizm proof-of-stake do ekosystemu Ethereum. -summaryPoint2: Został on połączony z pierwotnym łańcuchem proof-of-work Ethereum we wrześniu 2022 roku. -summaryPoint3: Łańcuch śledzący wprowadził logikę konsensusu i protokół uzgadniania bloków, które obecnie zabezpieczają Ethereum. ---- - - - Łańcuch śledzący wdrożono 1 grudnia 2020 roku, a 15 września 2022 roku uaktualniono Połączenie i sformalizowano proof-of-stake jako mechanizm konsensusu Ethereum. - - -## Czym był łańcuch śledzący? {#what-is-the-beacon-chain} - -Łańcuch śledzący to nazwa pierwotnego łańcucha bloków proof-of-stake, który został uruchomiony w 2020 r. Został on stworzony w celu zapewnienia, że logika konsensusu proof-of-stake jest solidna i zrównoważona, zanim zostanie uruchomiona w sieci głównej Ethereum. W związku z tym działał on równolegle z pierwotnym mechanizmem proof-of-work Ethereum. Wyłączenie mechanizmu proof-of-work i włączenie mechanizmu proof-of-stake w sieci Ethereum wymagało poinstruowania łańcucha śledzącego, aby akceptował transakcje z pierwotnego łańcucha Ethereum, łączył je w bloki, a następnie organizował je w łańcuch bloków przy użyciu mechanizmu konsensusu opartego na proof-of-stake. W tym samym momencie pierwotni klienci Ethereum wyłączyli wydobywanie, propagację bloków i logikę konsensusu, przekazując je w całości łańcuchowi śledzącemu. Wydarzenie to było określane jako [Połączenie](/roadmap/merge/). Po Połączeniu nie było już dwóch sieci blockchain; istniał tylko jeden łańcuch proof-of-stake Ethereum. - -## Co robił łańcuch śledzący? {#what-does-the-beacon-chain-do} - -Łańcuch śledzący to nazwa nadana księdze głównej kont, która prowadziła i koordynowała sieć [stakerów](/staking/) Ethereum, zanim stakerzy ci zaczęli zatwierdzać rzeczywiste transakcje Ethereum. Nie przetwarzał on transakcji ani nie obsługiwał interakcji inteligentnych kontraktów. - -Wprowadził on mechanizm konsensusu (lub „warstwę konsensusu”), który zajął miejsce wydobywania z mechanizmem proof-of-work w sieci Ethereum i przyniósł wiele znaczących ulepszeń. - -Łańcuch śledzący był podstawowym elementem [bezpiecznego, przyjaznego środowisku i skalowalnego Ethereum, które mamy teraz](/roadmap/vision/). - -## Wpływ łańcucha śledzącego {#beacon-chain-features} - -### Wprowadzenie do zastawiania {#introducing-staking} - -Łańcuch śledzący wprowadził do Ethereum mechanizm [proof-of-stake](/developers/docs/consensus-mechanisms/pos/). Zapewnia to bezpieczeństwo Ethereum i daje walidatorom więcej ETH w tym procesie. W praktyce staking polega na stakowaniu ETH w celu aktywowania oprogramowania walidatora. Jako staker używasz oprogramowania, które tworzy i waliduje nowe bloki w łańcuchu. - -Staking służy podobnym celom, co kiedyś [wydobywanie](/developers/docs/mining/), ale różni się pod wieloma względami. Wydobywanie wymagało dużych nakładów początkowych w postaci potężnego sprzętu i zużycia energii, co skutkowało ekonomią skali i sprzyjało centralizacji. Wydobywanie nie wiązało się również z wymogiem blokowania aktywów jako zabezpieczenia, co ograniczało możliwości protokołu w zakresie karania wrogich podmiotów po ataku. - -Przejście na proof-of-stake sprawiło, że sieć Ethereum stała się znacznie bezpieczniejsza i zdecentralizowana w porównaniu z proof-of-work. Im więcej osób uczestniczy w sieci, tym staje się ona bardziej zdecentralizowana i lepiej zabezpieczona przed atakami. - - - Jeśli chcesz zostać walidatorem i pomóc w zabezpieczaniu Ethereum, dowiedz się więcej o stakingu. - - -### Przygotowanie do shardingu {#setting-up-for-sharding} - -Odkąd łańcuch śledzący połączył się z pierwotną siecią główną Ethereum, społeczność Ethereum zaczęła myśleć o skalowaniu sieci. - -Zaletą proof-of-stake jest posiadanie rejestru wszystkich zatwierdzonych producentów bloków w danym czasie, z których każdy stakuje ETH. Rejestr ten stwarza możliwość dzielenia i zdobywania, a także niezawodnego rozdzielania określonych obowiązków w sieci. - -Ta odpowiedzialność jest przeciwieństwem proof-of-work, gdzie górnicy nie mają żadnych zobowiązań wobec sieci i mogą w jednej chwili zaprzestać wydobycia i wyłączyć oprogramowanie swojego węzła bez żadnych konsekwencji. Nie ma też rejestru znanych proponentów bloków ani niezawodnego sposobu na bezpieczny podział obowiązków sieciowych. - -[Więcej o shardingu](/roadmap/danksharding/) - -## Relacje między uaktualnieniami {#relationship-between-upgrades} - -Wszystkie uaktualnienia Ethereum są poniekąd wzajemnie powiązane. Podsumujmy zatem, jak łańcuch śledzący wpływa na inne uaktualnienia. - -### Łańcuch śledzący i Połączenie {#merge-and-beacon-chain} - -Na początku łańcuch śledzący istniał oddzielnie od sieci głównej Ethereum, ale zostały one połączone w 2022 r. - - - Połączenie - - -### Shardy i łańcuch śledzący {#shards-and-beacon-chain} - -Sharding może bezpiecznie wejść do ekosystemu Ethereum tylko z mechanizmem konsensusu proof-of-stake. W łańcuchu śledzącym wprowadzono staking, który „połączył się” z siecią główną, torując drogę shardingowi, który pomoże w dalszym skalowaniu Ethereum. - - - Łańcuchy odłamkowe - - -## Dalsza lektura - -- [Więcej na temat przyszłych uaktualnień Ethereum](/roadmap/vision) -- [Więcej o proof-of-stake](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/pl/roadmap/merge/index.md b/src/content/translations/pl/roadmap/merge/index.md deleted file mode 100644 index 9a61051285f..00000000000 --- a/src/content/translations/pl/roadmap/merge/index.md +++ /dev/null @@ -1,224 +0,0 @@ ---- -title: Połączenie -description: Dowiedz się więcej o Połączeniu — kiedy w sieci głównej Ethereum przyjęto dowód stawki (proof-of-stake). -lang: pl -template: upgrade -image: ../../../../../assets/upgrades/merge.png -summaryPoint1: Sieć główna Ethereum wykorzystuje mechanizm proof-of-stake, ale nie zawsze tak było. -summaryPoint2: Przejście z oryginalnego mechanizmu proof-of-work na proof-of-stake zostało nazwane Połączeniem. -summaryPoint3: Połączenie odnosi się do połączenia pierwotnej sieci głównej Ethereum z oddzielną siecią blockchain proof-of-stake nazywaną łańcuchem śledzącym, które teraz istnieją jako jeden łańcuch. -summaryPoint4: Połączenie zmniejszyło zużycie energii przez Ethereum o około 99,95%. ---- - - - Połączenie zostało przeprowadzone w dniu 15 września 2022 r. Zakończyło to przejście Ethereum na konsensus proof-of-stake i oficjalną rezygnację z mechanizmu proof-of-work, skutkujące zmniejszeniem zużycia energii o około 99,95%. - - -## Czym było Połączenie? {#what-is-the-merge} - -Połączenie to scalenie pierwotnej warstwy wykonania Ethereum (sieci głównej, która istnieje od [genezy](/history/#frontier)) z nową warstwą konsensusu proof-of-stake, łańcuchem śledzącym. Wyeliminowało to potrzebę energochłonnego wydobycia, a zamiast tego umożliwiło zabezpieczenie sieci za pomocą stakowanych ETH. To był naprawdę ekscytujący krok w realizacji wizji Ethereum — większej skalowalności, bezpieczeństwa i zrównoważenia ekologicznego. - - - -Początkowo [łańcuch śledzący](/roadmap/beacon-chain/) wdrażano oddzielnie od [sieci głównej](/glossary/#mainnet). Sieć główna Ethereum — wraz ze wszystkimi jej kontami, saldami, inteligentnymi kontraktami i stanem sieci blockchain — nadal była zabezpieczana przez mechanizm [proof-of-work](/developers/docs/consensus-mechanisms/pow/), nawet gdy łańcuch śledzący działał równolegle, używając [proof-of-stake](/developers/docs/consensus-mechanisms/pos/). Połączenie to moment, w którym te dwa systemy w końcu się połączyły, a mechanizm proof-of-work został na stałe zastąpiony przez mechanizm proof-of-stake. - -Wyobraź sobie, że Ethereum to statek kosmiczny, który wystartował, zanim był gotowy do podróży międzygwiezdnej. Dzięki łańcuchowi śledzącemu społeczność zbudowała nowy silnik i wzmocniony kadłub. Po intensywnych testach nadszedł czas, aby w czasie jazdy zamienić stary silnik na nowy. W ten sposób nowy, wydajniejszy silnik został zainstalowany w działającej maszynie, która dzięki temu nabrała kosmicznej prędkości. - -## Łączenie z siecią główną {#merging-with-mainnet} - -Mechanizm proof-of-work zabezpieczał sieć główną Ethereum od chwili jej genezy aż do Połączenia. Dzięki temu w lipcu 2015 roku powstała sieć blockchain Ethereum, do której wszyscy przywykliśmy, ze wszystkimi znanymi nam funkcjami — transakcjami, inteligentnymi kontraktami, kontami itd. - -Deweloperzy przygotowywali się do ostatecznego przejścia z proof-of-work na proof-of-stake przez całą historię Ethereum. 1 grudnia 2020 roku łańcuch śledzący utworzono jako działającą równolegle sieć blockchain oddzielną od sieci głównej. - -Początkowo łańcuch śledzący nie przetwarzał transakcji w sieci głównej. Zamiast tego osiągał konsensus co do swojego stanu, uzgadniając aktywnych walidatorów i salda ich kont. Po intensywnych testach nadszedł czas, aby łańcuch śledzący osiągnął konsensus na rzeczywistych danych. Po Połączeniu łańcuch śledzący stał się mechanizmem konsensusu dla wszystkich danych sieci, w tym transakcji w warstwie wykonania i sald kont. - -Połączenie oznaczało oficjalne przejście na używanie łańcucha śledzącego jako silnika produkcji bloków. Wydobywanie nie jest już środkiem do produkcji ważnych bloków. Zamiast tego rolę tę przejęli walidatorzy proof-of-stake, którzy są teraz odpowiedzialni za przetwarzanie ważności wszystkich transakcji i proponowanie bloków. - -Podczas Połączenia nie została utracona żadna historia. Gdy sieć główna połączyła się z łańcuchem śledzącym, połączona została również cała historia transakcyjna Ethereum. - - -Przejście na proof-of-stake zmieniło sposób emisji etheru. Dowiedz się więcej o emisji etheru przed i po Połączeniu. - - -### Użytkownicy i posiadacze {#users-holders} - -**Połączenie nie zmieniło niczego dla posiadaczy/użytkowników.** - -_Trzeba to powtórzyć_: jako użytkownik lub posiadacz ETH lub dowolnego innego zasobu cyfrowego w Ethereum, a także jako staker nie obsługujący węzła, **nie musisz robić niczego ze swoimi środkami lub portfelem po Połączeniu.** ETH to po prostu ETH. Nie ma czegoś takiego jak „stare ETH” / „nowe ETH” ani „ETH1”/„ETH2”, a portfele po Połączeniu działają dokładnie tak samo jak przed połączeniem — osoby, które mówią Ci, że jest inaczej, to prawdopodobnie oszuści. - -Mimo przejścia z proof-of-work cała historia Ethereum od genezy pozostała nienaruszona i niezmieniona przez przejście na proof-of-stake. Wszelkie środki znajdujące się w Twoim portfelu przed Połączeniem są nadal dostępne po Połączeniu. **Nie jest wymagane żadne działanie z Twojej strony, aby dokonać uaktualnienia.** - -[Więcej o zabezpieczeniach Ethereum](/security/#eth2-token-scam) - -### Operatorzy węzłów i deweloperzy aplikacji {#node-operators-dapp-developers} - - - -Kluczowe działania obejmują: - -1. Uruchomienie _zarówno_ klienta konsensusu, jak i klienta wykonania; punkty końcowe stron trzecich, które otrzymują dane wykonania, nie działają już od czasu Połączenia. -2. Uwierzytelnienie zarówno klienta wykonania, jak i klienta konsensusu za pomocą wspólnego klucza tajnego JWT, aby mogli się bezpiecznie komunikować. -3. Ustawienie adresu „odbiorcy opłat”, na który będziesz otrzymywać swoje zarobione napiwki z tytułu opłat transakcyjnych/MEV. - -Niewykonanie dwóch pierwszych punktów spowoduje, że węzeł będzie widoczny jako „offline”, dopóki obie warstwy nie zostaną zsynchronizowane i uwierzytelnione. - -Nieustawienie „odbiorcy opłat” sprawi, że walidator będzie zachowywać się jak zwykle, ale utracisz niespalone napiwki z tytułu opłat i wszystkie MEV, które w przeciwnym razie zarobił(a)byś w blokach proponowanych przez walidatora. - - - - -Do czasu Połączenia klient wykonania (taki jak Geth, Erigon, Besu czy Nethermind) wystarczał, aby odbierać, odpowiednio walidować i propagować bloki przekazywane przez sieć. _Po Połączeniu_ ważność transakcji zawartych w ładunku wykonania zależy teraz również od ważności „bloku konsensusu”, w którym jest on zawarty. - -W rezultacie pełny węzeł Ethereum wymaga teraz zarówno klienta wykonania, jak i klienta konsensusu. Ci dwaj klienci współpracują ze sobą za pomocą nowego interfejsu API mechanizmu. Interfejs API mechanizmu wymaga uwierzytelnienia za pomocą tajnego klucza JWT, który jest przekazywany obu klientom, co umożliwia bezpieczną komunikację. - -Kluczowe działania obejmują: - -- Instalację klienta konsensusu oprócz klienta wykonania -- Uwierzytelnienie klientów wykonania i konsensusu za pomocą wspólnego tajnego klucza JWT, aby mogli bezpiecznie komunikować się ze sobą. - -Niewykonanie powyższych działań spowoduje, że węzeł będzie wyświetlany jako „offline”, dopóki obie warstwy nie zostaną zsynchronizowane i uwierzytelnione. - - - - - -Połączenie wdrożono wraz ze zmianami w konsensusie, co obejmuje również zmiany dotyczące: - -- struktury bloku, -- synchronizacji slotów/bloków, -- zmian kodu operacyjnego, -- źródeł losowości w łańcuchu, -- koncepcji _bezpiecznej głowy_ i _sfinalizowanych bloków_. - -Więcej informacji znajdziesz w tym wpisie Tima Beiko [Jak Połączenie wpływa na warstwę aplikacji Ethereum](https://blog.ethereum.org/2021/11/29/how-the-merge-impacts-app-layer/). - - -## Połączenie i zużycie energii {#merge-and-energy} - -Połączenie stanowi koniec stosowania mechanizmu proof-of-work w sieci Ethereum i rozpoczęcie ery bardziej zrównoważonego ekologicznie Ethereum. Zużycie energii przez sieć Ethereum spadło o około 99,95%, dzięki czemu Ethereum stało się ekologiczną siecią blockchain. Dowiedz się więcej o [zużyciu energii przez Ethereum](/energy-consumption/). - -## Połączenie i skalowanie {#merge-and-scaling} - -Połączenie stwarza również miejsce dla dalszych uaktualnień skalowalności, które nie są możliwe w ramach mechanizmu proof-of-work, co przybliży Ethereum o krok do osiągnięcia pełnej skali, bezpieczeństwa i zrównoważenia ekologicznego, o których mowa w [wizji Ethereum](/roadmap/vision/). - -## Błędne przekonania o Połączeniu {#misconceptions} - - -Są dwa typy węzłów Ethereum: węzły, które mogą proponować bloki, i węzły, które tego nie mogą. - -Węzły proponujące bloki stanowią jedynie niewielką część wszystkich węzłów w sieci Ethereum. Kategoria ta obejmuje węzły wydobycia w ramach mechanizmu proof-of-work (PoW) oraz węzły walidatorów w ramach mechanizmu proof-of-stake (PoS). Ta kategoria wymaga zaangażowania zasobów ekonomicznych (takich jak moc obliczeniowa GPU w sieci proof-of-work lub stakowanych ETH w sieci proof-of-stake) w zamian za możliwość okazjonalnego proponowania następnego bloku i zdobywania nagród protokołu. - -Pozostałe węzły w sieci (czyli większość) nie muszą angażować żadnych zasobów ekonomicznych poza komputerem klasy konsumenckiej z 1–2 TB dostępnej pamięci masowej i połączeniem internetowym. Węzły te nie proponują bloków, ale nadal pełnią kluczową rolę w zabezpieczaniu sieci, gdyż rozliczają wszystkich proponujących bloki, nasłuchując nowych bloków i weryfikując ich ważność po przybyciu zgodnie z zasadami konsensusu sieci. Jeśli blok jest ważny, węzeł nadal propaguje go przez sieć. Jeśli blok jest nieważny z jakiegokolwiek powodu, oprogramowanie węzła odrzuci go jako nieważny i zatrzyma jego propagację. - -Prowadzenie węzła, który nie wytwarza bloków, jest możliwe dla każdego, niezależnie od mechanizmu konsensusu (proof-of-work lub proof-of-stake). Prowadzenie węzła jest niezwykle cenne dla Ethereum i daje dodatkowe korzyści każdej osobie, która go prowadzi, takie jak zwiększone bezpieczeństwo, prywatność i odporność na cenzurę. - -Możliwość uruchomienia przez każdego własnego węzła jest _absolutnie niezbędna_ do utrzymania decentralizacji sieci Ethereum. - -[Więcej o uruchamianiu własnego węzła](/run-a-node/) - - - - -Opłaty za gaz są wypadkową zapotrzebowania na sieć i jej przepustowości. W wyniku Połączenia zrezygnowano z mechanizmu proof-of-work, przechodząc na mechanizm konsensusu proof-of-stake, ale nie zmieniono znacząco żadnych parametrów, które bezpośrednio wpływają na przepustowość sieci. - -W ramach [planu działania skoncentrowanego na pakietach zbiorczych](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698) wysiłki koncentrują się na zwiększeniu aktywności użytkowników w [warstwie 2](/warstwa-2/), przy jednoczesnym umożliwieniu działania sieci głównej w warstwie 1 jako bezpiecznej, zdecentralizowanej warstwy rozliczenia, zoptymalizowanej do przechowywania danych pakietów zbiorczych, co pomoże uczynić transakcje na pakietach zbiorczych wykładniczo tańszymi. Przejście na proof-of-stake jest kluczowym prekursorem realizacji tego celu. [Więcej o gazie i opłatach](/developers/docs/gas/) - - - -„Szybkość” transakcji można mierzyć na kilka sposobów, m.in. jako czas dołączenia do bloku i czas do finalizacji. Oba te czasy uległy niewielkiej zmianie, ale nie w taki sposób, aby użytkownicy je zauważyli. - -Historycznie, w przypadku mechanizmu proof-of-work, celem było generowanie nowego bloku co około 13,3 sekundy. W przypadku mechanizmu proof-of-stake sloty pojawiają się dokładnie co 12 sekund, a każdy z nich stanowi dla walidatora okazję do opublikowania bloku. Większość slotów ma bloki, ale nie wszystkie (np. walidator jest offline). W przypadku mechanizmu proof-of-stake bloki są produkowane około 10% częściej niż w przypadku mechanizmu proof-of-work. To była dość mało znacząca zmiana i raczej nie zostanie zauważona przez użytkowników. - -Mechanizm proof-of-stake wprowadził nieistniejące wcześniej pojęcie nieodwołalności transakcji. W przypadku mechanizmu proof-of-work możliwość odwrócenia bloku staje się wykładniczo trudniejsza z każdym kolejnym blokiem wydobytym na podstawie transakcji, ale nigdy nie osiąga zera. W przypadku mechanizmu proof-of-stake bloki są łączone w epoki (6,4-minutowe odcinki czasu zawierające 32 szanse dla bloków), na które głosują walidatorzy. Gdy epoka się kończy, walidatorzy głosują, czy uznać ją za „uzasadnioną”. Jeśli walidatorzy zgodzą się na uzasadnienie epoki, zostanie ona sfinalizowana w następnej epoce. Cofnięcie sfinalizowanych transakcji jest ekonomicznie nieopłacalne, ponieważ wymagałoby uzyskania i spalenia ponad jednej trzeciej wszystkich stakowanych ETH. - - - - -Stakowane ETH i nagrody za stakowanie są nadal blokowane bez możliwości wypłaty. Wypłaty są planowane w najbliższym uaktualnieniu Shanghai. - - - -Może się to wydawać sprzeczne z powyższą informacją, że wypłaty nie są możliwe do uaktualnienia Shanghai, ale walidatorzy MAJĄ natychmiastowy dostęp do nagród za opłaty/MEV, zarobionych podczas propozycji bloków. - -Protokół wydaje ETH jako nagrodę dla walidatorów za przyczynianie się do konsensusu. Warstwa konsensusu rejestruje nowo wyemitowane ETH, a walidator ma unikalny adres, pod którym przechowuje swoje stakowane ETH i nagrody protokołu. Te ETH są blokowane aż do uaktualnienia Shanghai. - -ETH w warstwie wykonawczej są rejestrowane oddzielnie od warstwy konsensusu. Gdy użytkownicy wykonują transakcje w sieci głównej Ethereum, muszą zapłacić w ETH za pokrycie kosztów gazu, w tym napiwku dla walidatora. Te ETH znajdują się już w warstwie wykonania, NIE są nowo wydawane przez protokół i są dostępne dla walidatora natychmiast (pod warunkiem, że odpowiedni adres „odbiorcy opłaty” został podany w oprogramowaniu klienckim). - - - -Gdy uaktualnienie Shanghai umożliwi wypłaty, wszyscy walidatorzy będą zachęcani do wypłaty salda stakingu powyżej 32 ETH, ponieważ środki te nie zwiększają zysku, a są zablokowane. W zależności od APR (ustalanej na podstawie całkowitej ilości stakowanych ETH) użytkownicy mogą być zachęcani do wyjścia z walidatorów w celu odzyskania całego salda lub zestakowania jeszcze więcej i wykorzystania nagród do uzyskania większego zysku. - -Ważne zastrzeżenie: pełne wyjścia walidatorów są ograniczone przez protokół, więc wyjść może tylko sześciu walidatorów na epokę (co 6,4 minuty, czyli 1350 dziennie, lub tylko około 43 200 ETH dziennie z ponad 10 milionów stakowanych ETH). Limit ten dostosowuje się w zależności od sumy stakowanych ETH i zapobiega on masowemu odpływowi środków. Ponadto zapobiega to sytuacji, w której potencjalny atakujący wykorzysta swoje stakowane środki do popełnienia wykroczenia podlegającego cięciu i wycofa całe saldo stakingu w tej samej epoce, nim protokół będzie mógł wymusić karę za cięcie. - -APR jest celowo dynamiczna, co pozwala rynkowi stakerów wyważyć, jakiej zapłaty sobie życzą za pomoc w zabezpieczeniu sieci. Gdy wypłaty są włączone, jeśli szybkość jest za mała, walidatorzy będą wychodzić z szybkością ograniczoną przez protokół. Stopniowo podniesie to APR dla wszystkich, którzy pozostaną, przyciągając nowych lub powracających stakerów. - - -## Co się stało z „Eth2”? {#eth2} - -Termin „Eth2” został odrzucony. Po połączeniu „Eth1” i „Eth2” w jeden łańcuch nie trzeba już rozróżniać dwóch sieci Ethereum — jest tylko jedna sieć Ethereum. - -Aby ograniczyć zamieszanie, społeczność zaktualizowała te warunki: - -- „Eth1” jest teraz „warstwą wykonania”, która obsługuje transakcje i wykonanie. -- „Eth2” jest teraz „warstwą konsensusu”, która obsługuje konsensus dowodu stawki (proof-of-stake). - -Ta terminologia aktualizuje tylko konwencje nazewnictwa; nie zmienia celów ani planu działania Ethereum. - -[Dowiedz się więcej o zmianie nazwy „Eth2”](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) - -## Relacje między uaktualnieniami {#relationship-between-upgrades} - -Wszystkie uaktualnienia Ethereum są poniekąd wzajemnie powiązane. Podsumujmy więc, jak Połączenie ma się do innych uaktualnień. - -### Połączenie i łańcuch śledzący {#merge-and-beacon-chain} - -Połączenie reprezentuje formalne przyjęcie łańcucha śledzącego jako nowej warstwy konsensusu w stosunku do pierwotnej warstwy wykonania sieci głównej. Od czasu Połączenia walidatorzy są przypisani do bezpiecznej sieci głównej Ethereum, a wydobywanie na [proof-of-work](/developers/docs/consensus-mechanisms/pow/) nie jest już prawidłowym sposobem produkcji bloków. - -Bloki są natomiast proponowane przez węzły walidujące, które stakują ETH w zamian za prawo do udziału w konsensusie. Te uaktualnienia stanowią podstawę dla przyszłych uaktualnień skalowalności, w tym shardingu. - - - Łańcuch śledzący - - -### Połączenie i uaktualnienie Shanghai {#merge-and-shanghai} - -W celu zapewnienia uproszczenia i maksymalnego skupienia się na udanym przejściu na proof-of-stake uaktualnienie Połączenie nie zawierało pewnych oczekiwanych funkcji, takich jak możliwość wypłaty stakowanych ETH. Planuje się, że wdrożenie uaktualnienia Shanghai nastąpi po Połączeniu i umożliwi wypłaty stakerom. - -Bądź na bieżąco dzięki [zagadnieniu planowania uaktualnienia Shanghai w serwisie GitHub](https://github.com/ethereum/pm/issues/450) lub [blogowi poświęconemu badaniom i rozwojowi EF](https://blog.ethereum.org/category/research-and-development/). Można też dowiedzieć się więcej o tym, [Co się dzieje po Połączeniu](https://youtu.be/7ggwLccuN5s?t=101), z prezentacji Vitalika podczas wydarzenia ETHGlobal w kwietniu 2021 roku. - -### Połączenie i sharding {#merge-and-data-sharding} - -Pierwotnie planowano prace nad shardingiem przed Połączeniem, aby rozwiązać problem skalowalności. Jednak wraz z rozwojem [rozwiązań skalujących warstwę 2](/warstwa-2/) priorytet przesunął się na zamianę mechanizmu proof-of-work na proof-of-stake. - -Plany dotyczące shardingu szybko ewoluują, ale ze względu na rozwój i sukces technologii warstwy 2 do skalowania wykonania transakcji plany shardingu przesunęły się w kierunku znalezienia optymalnego sposobu rozłożenia ciężaru przechowywania skompresowanych calldata z kontraktów pakietów zbiorczych, co pozwala na wykładniczy wzrost przepustowości sieci. Nie byłoby to możliwe bez wcześniejszego przejścia na proof-of-stake. - - - Sharding - - -## Dalsza lektura {#further-reading} - - - - diff --git a/src/content/translations/pl/smart-contracts/index.md b/src/content/translations/pl/smart-contracts/index.md deleted file mode 100644 index 2e60d12b576..00000000000 --- a/src/content/translations/pl/smart-contracts/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Inteligentne kontrakty -description: Wprowadzenie do inteligentnych kontraktów w wersji nietechnicznej -lang: pl ---- - -# Wprowadzenie do inteligentnych kontraktów {#introduction-to-smart-contracts} - -Inteligentne kontrakty są podstawowymi elementami składowymi warstwy aplikacji Ethereum. Są to programy komputerowe przechowywane na blockchainie, które działają zgodnie z logiką „jeśli to, to tamto” i mają gwarancję działania zgodnie z zasadami określonymi przez ich kod, którego nie można zmienić po utworzeniu. - -Termin „inteligentny kontrakt” stworzył Nick Szabo. W 1994 r. napisał [wprowadzenie do tej koncepcji](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html), a w 1996 r. opisał [badania na temat możliwości inteligentnych kontraktów i tego co mogą zrobić](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). - -Szabo wyobraził sobie cyfrowy rynek, na którym automatyczne, kryptograficznie bezpieczne procesy umożliwiają przeprowadzanie transakcji i funkcji biznesowych bez zaufanych pośredników. Inteligentne kontrakty na Ethereum wprowadzają tę wizję w życie. - -### Zaufanie do konwencjonalnych kontraktów {#trust-and-contracts} - -Jednym z największych problemów związanych z tradycyjnym kontraktem jest konieczność przestrzegania jego postanowień przez zaufane osoby. - -Oto przykład: - -Alicja i Bob urządzają sobie wyścig rowerowy. Załóżmy, że Alice założyła się z Bobem o 10 dolarów, że wygra wyścig. Bob jest przekonany, że to on będzie zwycięzcą, i przyjmuje zakład. Jednak Alice kończy wyścig znacznie przed Bobem i zdecydowanie wygrywa. Bob jednak odmawia wypłacenia pieniędzy z zakładu, twierdząc, że Alicja musiała oszukiwać. - -Ten jaskrawy przykład ilustruje problem z dowolną umową nieinteligentną. Nawet jeśli warunki umowy zostaną spełnione (np. Ty jesteś zwycięzcą wyścigu), nadal musisz ufać innej osobie, że wywiąże się z umowy (np. wypłaci zakład). - -### Cyfrowy automat do sprzedaży {#vending-machine} - -Prostą metaforą inteligentnego kontraktu jest automat sprzedający, który działa nieco podobnie do inteligentnego kontraktu — określone wejścia gwarantują z góry określone wyjścia. - -- Wybierasz produkt. -- Automat sprzedający wyświetla cenę -- Płacisz cenę -- Automat weryfikuje, czy osoba zapłaciła odpowiednią kwotę -- Automat daje ci twój przedmiot - -Automat wyda żądany produkt dopiero po spełnieniu wszystkich wymagań. Jeśli nie wybierzesz produktu lub nie umieścisz wystarczającej ilości pieniędzy, automat sprzedający nie wyda produktu. - -### Automatyczne wykonanie {#automation} - -Główną zaletą inteligentnego kontraktu jest to, że deterministycznie wykonuje on jednoznaczny kod po spełnieniu określonych warunków. Nie ma potrzeby czekania, aż człowiek zinterpretuje lub wynegocjuje wynik. Eliminuje to potrzebę korzystania z zaufanych pośredników. - -Można na przykład napisać inteligentny kontrakt, który przechowuje środki finansowe na rzecz dziecka, umożliwiając mu wypłatę środków po określonej dacie. Jeśli spróbują wypłacić przed tą datą, inteligentny kontrakt nie zostanie wykonany. Możesz też napisać kontrakt, który automatycznie udostępni Ci cyfrową wersję tytułu własności samochodu, gdy zapłacisz sprzedawcy. - -### Przewidywalne wyniki {#predictability} - -Tradycyjne kontrakty są niejednoznaczne, ponieważ polegają na interpretacji i realizacji zależnej od człowieka. Na przykład, dwóch sędziów może różnie interpretować kontrakt, co może prowadzić do niespójnych decyzji i niejednakowych wyników. Inteligentne kontrakty usuwają tę możliwość. Zamiast tego, inteligentne kontrakty wykonują dokładnie to, co zostało zapisane w kodzie kontraktu. Dokładność ta oznacza, że w takich samych okolicznościach inteligentny kontrakt wygeneruje taki sam wynik. - -### Rekord publiczny {#public-record} - -Inteligentne kontrakty są przydatne do celów kontroli i śledzenia. Ponieważ inteligentne kontrakty Ethereum znajdują się w publicznym blockchainie, każdy może natychmiast śledzić transfery aktywów i inne powiązane informacje. Możesz na przykład sprawdzić, czy ktoś wysłał pieniądze na Twój adres. - -### Ochrona prywatności {#privacy-protection} - -Inteligentne kontrakty chronią również Twoją prywatność. Ponieważ Ethereum jest siecią pseudonimową (Twoje transakcje są związane publicznie z unikalnym adresem kryptograficznym, a nie z Twoją tożsamością), możesz chronić swoją prywatność przed obserwatorami. - -### Widoczne terminy {#visible-terms} - -Wreszcie, podobnie jak w przypadku tradycyjnych kontraktów, możesz sprawdzić, co jest w inteligentnym kontrakcie, zanim go podpiszesz (lub wejdziesz z nim w interakcje w inny sposób). Przejrzystość inteligentnego kontraktu gwarantuje, że każdy może go przeanalizować. - -## Przykłady wykorzystania inteligentnych kontraktów {#use-cases} - -Inteligentne kontrakty mogą robić zasadniczo wszystko, co robią programy komputerowe. - -Mogą wykonywać obliczenia, tworzyć walutę, przechowywać dane, wybijać NFT, wysyłać komunikaty, a nawet generować grafikę. Oto kilka popularnych, rzeczywistych przykładów: - -- [Stablecoiny](/stablecoins/) -- [Tworzenie i dystrybucja unikalnych zasobów cyfrowych](/nft/) -- [Automatyczna otwarta wymiana walut](/get-eth/#dex) -- [Zdecentralizowane gry](/dapps/?category=gaming) -- [Polisa ubezpieczeniowa automatycznie wypłacająca odszkodowanie](https://etherisc.com/) -- [Standard umożliwiający tworzenie niestandardowych, interoperacyjnych walut](/developers/docs/standards/tokens/) - -## Jesteś raczej wzrokowcem? {#visual-learner} - -Zobacz, jak Finematics tłumaczy inteligentne kontrakty: - - - -## Dalsza lektura {#further-reading} - -- [Jak inteligentne kontrakty zmienią świat](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [Inteligentne kontrakty: Technologia łańcucha bloków, która zastąpi prawników](https://blockgeeks.com/guides/smart-contracts/) -- [Inteligentne kontrakty dla programistów](/developers/docs/smart-contracts/) -- [Naucz się pisać inteligentne kontrakty](/developers/learning-tools/) -- [Mastering Ethereum - Co to jest inteligentny kontrakt?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/src/content/translations/pl/social-networks/index.md b/src/content/translations/pl/social-networks/index.md deleted file mode 100644 index a745980647b..00000000000 --- a/src/content/translations/pl/social-networks/index.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: Zdecentralizowane sieci społecznościowe -description: Przegląd zdecentralizowanych serwisów społecznościowych w Ethereum -lang: pl -template: use-cases -emoji: ":mega:" -sidebarDepth: 2 -image: ../../../../assets/ethereum-learn.png -summaryPoint1: Oparte na łańcuchu bloków platformy umożliwiające interakcje społeczne oraz tworzenie i rozpowszechnianie treści. -summaryPoint2: Zdecentralizowane sieci mediów społecznościowych zapewniają ochronę prywatności użytkowników i większe bezpieczeństwo danych. -summaryPoint3: Tokeny i NFT otwierają nowe możliwości monetyzacji treści. ---- - -Serwisy społecznościowe odgrywają ogromną rolę w naszej codziennej komunikacji i wzajemnych interakcjach. Scentralizowana kontrola takich serwisów jest jednak źródłem wielu problemów. Wycieki danych, przestoje serwerów, cenzurowanie treści czy naruszenia prywatności to tylko niektóre z nich. Aby stawić czoła tym wyzwaniom, deweloperzy tworzą serwisy społecznościowe, jako podstawę wykorzystując platformę Ethereum. Zdecentralizowane serwisy społecznościowe pozwalają wykluczyć większość problemów platform tradycyjnych, a przy tym zapewniają użytkownikom lepsze ogólne doświadczenia. - -## Czym są zdecentralizowane serwisy społecznościowe? {#what-are-decentralized-social-networks} - -Zdecentralizowane serwisy społecznościowe to oparte na łańcuchu bloków platformy umożliwiające użytkownikom wymianę informacji oraz publikowanie treści i udostępnianie ich grupom odbiorców. Ponieważ aplikacje te oparte są na łańcuchu bloków, można je zdecentralizować, uodparniając je na próby cenzurowania treści i nadmierną kontrolę. - -Wiele zdecentralizowanych serwisów społecznościowych funkcjonuje jako alternatywy dla platform konwencjonalnych, takich jak Facebook, LikedIn, Twitter i Medium. Serwisy społecznościowe oparte na łańcuchu bloków mają jednak wiele właściwości, które dają im przewagę nad platformami konwencjonalnymi. - -### Jak działają zdecentralizowane serwisy społecznościowe? {#decentralized-social-networks-overview} - -Zdecentralizowane serwisy społecznościowe reprezentują klasę [aplikacji zdecentralizowanych (d-aplikacji)](/dapps/), czyli aplikacji opartych na [inteligentnych kontraktach](/developers/docs/smart-contracts/) wdrożonych w łańcuchu bloków. Kod kontraktu służy jako backend tych aplikacji i określa ich logikę biznesową. - -Konwencjonalne serwisy społecznościowe polegają na bazach danych, w których przechowywane są dane użytkowników, kod programu i inne rodzaje informacji. Tworzy to jednak pojedyncze punkty awarii i wprowadza znaczne ryzyko. Za przykład może posłużyć głośny incydent z zeszłego roku, kiedy to ze względu na [wielogodzinny przestój](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) serwerów Facebooka użytkownicy zostali odcięci od platformy. - -Zdecentralizowane serwisy społecznościowe typu peer-to-peer obejmują tysiące węzłów na całym świecie. Nawet jeśli niektóre węzły ulegną awarii, sieć będzie działać nieprzerwanie, dzięki czemu aplikacje są odporne na awarie i przestoje. - -Zdecentralizowane systemy pamięci, takie jak [InterPlanetary File System (IPFS)](https://ipfs.io/), sieci społecznościowe zbudowane na Ethereum chronią dane użytkowników przed nadużyciem. Tu nikt nie sprzedaje danych osobowych reklamodawcom a hakerzy nie są w stanie ich wykraść. - -Wiele sieci społecznościowych opartych na łańcuchu bloków ma natywne tokeny, które je zasilają, bez potrzeby dochodu z reklam. Użytkownicy mogą kupić te tokeny, aby uzyskać dostęp do określonych funkcji, zrealizować zakupy w aplikacji lub dać napiwek swoim ulubionym twórcom treści. - -## Zalety zdecentralizowanych mediów społecznościowych {#benefits} - -1. Zdecentralizowane media społecznościowe są odporne na cenzurę i otwarte dla wszystkich. Oznacza to, że użytkownicy nie mogą być blokowani, usuwani z platformy ani ograniczani. - -2. Zdecentralizowane sieci społecznościowe są oparte na zasadach open source. Oznacza to, że ich kod źródłowy jest ogólnie dostępny. Eliminując wdrażanie nieprzejrzystych algorytmów powszechnych w tradycyjnych mediach społecznościowych, sieci społecznościowe oparte na łańcuchu bloków mogą pogodzić interesy użytkowników i twórców platformy. - -3. Zdecentralizowane sieci społecznościowe eliminują „pośrednika”. Twórcy treści są bezpośrednimi właścicielami swoich treści i angażują się bezpośrednio z osobami śledzącymi, fanami, kupującymi i innymi stronami, przy czym pomiędzy nimi nie ma nic poza inteligentnym kontraktem. - -4. Jako d-aplikacje działające w sieci Ethereum, która jest wspierana przez globalną sieć węzłów typu peer-to-peer, zdecentralizowane media społecznościowe są mniej podatne na przestoje i przerwy w pracy serwerów. - -5. Zdecentralizowane platformy społecznościowe oferują ulepszone ramy monetyzacji dla twórców treści poprzez tokeny niezbywalne (NFT), płatności kryptowalutowe w aplikacji i inne. - -6. Zdecentralizowane sieci społecznościowe zapewniają użytkownikom wysoki poziom prywatności i anonimowości. Na przykład każdy może się zalogować do sieci społecznościowej w Ethereum, korzystając z profilu lub portfela ENS — bez konieczności dzielenia się swoimi wrażliwymi danymi (PII), takimi jak nazwy, adresy e-mail itp. - -7. Zdecentralizowane sieci społecznościowe nie opierają sie na scentralizowanych bazach danych. Dane są przechowywane w sposób rozproszony, który lepiej je zabezpiecza. - -## Zdecentralizowane sieci społecznościowe w Ethereum {#ethereum-social-networks} - -Sieć Ethereum jest doskonałym narzędziem dla programistów, którzy tworzą zdecentralizowane media społecznościowe, ze względu na popularność jej tokenów (ERC-20/ERC-721) i ogromną bazę użytkowników. Oto kilka przykładów sieci społecznościowych opartych na Ethereum: - -### Peepeth {#peepeth} - -[Peepeth](https://peepeth.com/) to platforma mikroblogowa podobna do Twittera. Działa w oparciu o łańcuch bloków Ethereum i wykorzystuje IPFS do przechowywania danych użytkowników. - -Użytkownicy mogą wysyłać krótkie wiadomości, Peeps, których nie można usunąć ani zmodyfikować. Możesz otrzymywać napiwki lub dawać je każdemu na platformie, w etherach (ETH), nie opuszczając aplikacji. - -### Mirror {#mirror} - -[Mirror](https://mirror.xyz/) to oparta na web3 platforma do tworzenia treści, która ma być zdecentralizowana i należeć do użytkowników. Użytkownicy mogą czytać i pisać na platformie Mirror za darmo, po prostu podłączając swoje portfele. Mogą również zapisywać i subskrybować treści innych autorów. - -Posty opublikowane na platformie Mirror są trwale przechowywane na Arweave, zdecentralizowanej platformie do przechowywania, i można je wybić jako kolekcjonerskie [niewymienialne tokeny (NFT)](/nft/) znane jako Writing NFT. Wybicie Writing NFT jest całkowicie darmowe dla twórców treści i odbywa się w warstwie L2 Ethereum. Dzięki temu transakcje są niedrogie i szybkie oraz przyjazne dla środowiska. - -### MINDS {#minds} - -[MINDS](https://www.minds.com/) jest jedną z najczęściej używanych zdecentralizowanych sieci społecznościowych. Działa podobnie jak Facebook i już zyskała miliony użytkowników. - -Użytkownicy używają natywnego tokena ERC-20 platformy $MIND, aby zapłacić za produkty. Użytkownicy mogą także zarabiać tokeny $MIND, publikując popularne treści, mając swój udział w ekosystemie i kierując innych na platformę. - -## Zdecentralizowane media społecznościowe Ethereum w web2 {#web2-social-networks-and-ethereum} - -Natywne platformy społecznościowe [Web3](/web3/) nie są jedynymi, które używają technologii łańcucha bloków. Wiele scentralizowanych platform także planuje zintegrować swoją infrastrukturę z Ethereum: - -### Reddit {#reddit} - -Reddit ma tak zwane [punkty społeczności](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users). Są to [tokeny ERC-20](/developers/docs/standards/tokens/erc-20/), które użytkownicy mogą zdobywać, publikując wysokiej jakości treści i przyczyniając się do rozwoju społeczności internetowych (subreddity). Możesz wymienić te tokeny w subreddicie, aby [uzyskać ekskluzywne przywileje i korzyści](https://www.reddit.com/community-points/). W tym projekcie Reddit współpracuje z Arbitrum, [warstwą L2](/layer-2/)zaprojektowaną do skalowania transakcji w Ethereum. - -Program już działa, a subreddit r/CryptoCurrency [uruchamia swoją wersję punktów społeczności o nazwie „Moons”](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Według oficjalnego opisu, Moons „nagradzają posterów, komentatorów i moderatorów za ich wkład w subreddit”. Ponieważ tokeny te są w łańcuchu bloków (użytkownicy otrzymują je w portfelach), są niezależne od Reddit i nie mogą być odebrane. - -Teraz, po zakończeniu fazy beta w sieci testowej Rinkeby, punkty społeczności Reddit znajdują się w [Arbitrum Nova](https://nova.arbitrum.io/), łańcuchu bloków, który łączy w sobie właściwości [łańcucha bocznego](/developers/docs/scaling/sidechains/) i [optymistycznego pakietu zbiorczego](/developers/docs/scaling/optimistic-rollups/). Oprócz korzystania z punktów społeczności, aby odblokować specjalne funkcje, użytkownicy mogą je również wymieniać na giełdach na walutę. Ponadto liczba punktów społeczności, które ma użytkownik, decyduje o jego wpływie na proces decyzyjny w obrębie społeczności. - -### Twitter {#twitter} - -W styczniu 2021 r. Twitter Blue [uruchomił obsługę NFT](https://mashable.com/article/twitter-blue-nft-profile-picture), umożliwiając użytkownikom połączenie portfela i wyświetlanie NFT jako zdjęć profilowych. W czasie pisania tego tekstu firma ogłosiła również [plany](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) utworzenia w przyszłości zdecentralizowanej sieci społecznościowej. - -### Instagram {#instagram} - -W maju 2022 r. [Instagram ogłosił wsparcie dla NFT](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) w ekosystemach Ethereum i Polygon. Użytkownicy mogą publikować NFT bezpośrednio na Instagramie, podłączając swój portfel Ethereum. - -## Użytkowanie zdecentralizowanych sieci społecznościowych {#use-decentralized-social-networks} - -- **[Status.im](https://status.im/)** — _Status jest bezpieczną aplikacją typu open source do wysyłania wiadomości, z wykorzystaniem protokołu peer-to-peer i szyfrowania typu end-to-end w celu ochrony wiadomości przed stronami trzecimi._ -- **[Mirror.xyz](https://mirror.xyz/)** — _Mirror jest zdecentralizowaną platformą wydawniczą opartą na sieci Ethereum, która umożliwia użytkownikom finansowanie idei społecznościowych, monetyzowanie treści i budowanie społeczności o wysokiej wartości._ -- **[Lens Protocol](https://lens.xyz/)** — _Lens Protocol jest złożonym i zdecentralizowanym wykresem społecznym, pomagającym twórcom uwiarygodnić własność ich treści, niezależnie od miejsca ich pobytu w cyfrowym ogrodzie zdecentralizowanego internetu._ -- **[Farcaster](https://farcaster.xyz/)** — _Farcaster to wystarczająco zdecentralizowana sieć społeczna. Jest to protokół otwarty, który umożliwia obsługę wielu klientów — podobnie jak poczta e-mail._ - -## Dodatkowo przeczytaj {#further-reading} - -### Artykuły {#articles} - -- [Decentralizacja mediów społecznościowych: przewodnik po warstwach społecznych Web3](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) — _Coinbase Ventures_ -- [Media społecznościowe kolejną platformą z możliwością decentralizacji](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Goertzel_ -- [Web3 obietnicą zdecentralizowanych, kontrolowanych przez społeczność serwisów społecznościowych](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ -- [Przegląd mediów społecznościowych opartych na łańcuchu bloków](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ -- [Jak łańcuch bloków może rozwiązać problem z prywatnością w mediach społecznościowych](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Prableen Bajpai_ -- [Sieci mediów społecznościowych wprowadzają łańcuchy bloków](https://businesstechguides.co/what-are-decentralized-social-networks) — _Emmanuel Awosika_ -- [Dostateczna decentralizacja serwisów społecznościowych](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Varun Srinivasan_ - -### Materiały wideo {#videos} - -- [Jak działają zdecentralizowane media społecznościowe](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _CoinmarketCap_ -- [Dążenie do decentralizacji mediów społecznościowych: łańcuch bloków DeSo](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ -- [Przyszłość zdecentralizowanych mediów społecznościowych — Balaji Srinivasan, Vitalik Buterin, Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ - -### Społeczności {#communities} - -- [Status (serwer Discord)](https://discord.com/invite/3Exux7Y) -- [Mirror (serwer Discord)](https://discord.com/invite/txuCHcE8wV) -- [Wątek r/CryptoCurrency w serwisie Reddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/pl/staking/pools/index.md b/src/content/translations/pl/staking/pools/index.md deleted file mode 100644 index 0ec040c85ec..00000000000 --- a/src/content/translations/pl/staking/pools/index.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: Staking łączony -description: Przegląd tego, jak rozpocząć korzystanie ze stakowania ETH w puli -lang: pl -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-pool.png -alt: Nosorożec Leslie pływający w basenie. -sidebarDepth: 2 -summaryPoints: - - Stakuj i zdobywaj nagrody z dowolną ilością ETH, łącząc siły z innymi - - Pomiń trudną część i powierz operacje walidatora osobie trzeciej - - Przechowuj tokeny stakingu we własnym portfelu ---- - -## Czym jest stakowanie w puli? {#what-are-staking-pools} - -Stakowanie w puli to podejście oparte na współpracy, które pozwala wielu osobom posiadającym mniejsze ilości ETH uzyskać 32 ETH wymagane do aktywacji zestawu kluczy walidatora. Funkcja poolingu (w puli) nie jest natywnie obsługiwana w ramach protokołu, więc rozwiązania zostały stworzone osobno, aby zaspokoić tę potrzebę. - -Niektóre pule działają w oparciu o inteligentne kontrakty, w których środki można zdeponować do kontraktu, który bez zaufania zarządza i śledzi udziały użytkownika oraz wydaje token reprezentujący tę wartość. Inne pule mogą nie obejmować inteligentnych kontraktów i zamiast tego są pośredniczone poza łańcuchem. - -## Dlaczego stakować w puli? {#why-stake-with-a-pool} - -Oprócz korzyści, które opisaliśmy w naszym [wprowadzeniu do stakingu](/staking/), stakowanie w puli wiąże się z szeregiem wyraźnych korzyści. - - - - - - - - - -## Co wziąć pod uwagę {#what-to-consider} - -Stakowanie w puli lub delegowane nie jest natywnie obsługiwane przez protokół Ethereum, ale biorąc pod uwagę zapotrzebowanie użytkowników na stakowanie mniej niż 32 ETH, powstała rosnąca liczba rozwiązań, które zaspokajają to zapotrzebowanie. - -Każda pula i narzędzia lub inteligentne kontrakty, z których korzystają, zostały opracowane przez różne zespoły, a każdy z nich wiąże się z korzyściami i ryzykiem. Pule umożliwiają użytkownikom wymianę ETH na token reprezentujący zestakowane ETH. Token ten jest przydatny, ponieważ pozwala użytkownikom na zamianę dowolnej ilości ETH na równoważną ilość tokena przynoszącego zyski, który generuje zwrot z nagród za stakowanie zastosowanych do bazowego stakowanego ETH (i odwrotnie) na zdecentralizowanych giełdach, mimo że rzeczywiste ETH pozostaje stakowane w warstwie konsensusu. Oznacza to, że zamiany tam i z powrotem z przynoszącego zyski zestakowanego ETH i „surowego ETH” są szybkie, łatwe i dostępne nie tylko w wielokrotnościach 32 ETH. - -Jednak te zestakowane tokeny ETH mają tendencję do tworzenia zachowań kartelowych, w których duża ilość stakowanego ETH trafia pod kontrolę kilku scentralizowanych organizacji, zamiast rozprzestrzeniać się na wiele niezależnych osób. Stwarza to warunki do cenzury lub ekstrakcji wartości. Złotym standardem dla stakingu powinny być zawsze osoby uruchamiające walidatory na własnym sprzęcie, jeśli tylko jest to możliwe. - -[Więcej o ryzyku związanym ze stakowaniem tokenów](https://notes.ethereum.org/@djrtwo/risks-of-lsd). - -Wskaźniki atrybutów są używane poniżej, aby zasygnalizować godne uwagi mocne lub słabe strony, jakie może mieć wymieniona usługa stakowania w puli. Użyj tej sekcji jako odniesienia do sposobu definiowania tych atrybutów podczas wybierania puli, do której chcesz dołączyć. - - - -## Odkryj usługi stakowania w puli {#explore-staking-pools} - -Dostępnych jest wiele opcji ułatwiających konfigurację. Skorzystaj z powyższych wskaźników, które oprowadzą cię z poniższymi narzędziami. - - - - - -Należy pamiętać, że ważne jest, aby wybrać usługę, która poważnie traktuje [różnorodność klientów](/developers/docs/nodes-and-clients/client-diversity/), ponieważ zwiększa to bezpieczeństwo sieci i ogranicza ryzyko. Usługi, które mają dowody na ograniczanie korzystania z większości klientów, są oznaczone „różnorodność klientów wykonawczych” i „różnorodność klientów konsensusu.” - -Masz sugestię dotyczącą narzędzia do stakingu, które pominęliśmy? Zapoznaj się z naszymi [zasadami umieszczania produktów na liście](/contributing/adding-staking-products/), aby sprawdzić, czy są one odpowiednie i przesłać je do recenzji. - -## Często zadawane pytania {#faq} - - -Zazwyczaj tokeny stakingu ERC-20 są wydawane stakerom, które reprezentują wartość zestakowanego przez nich ETH plus nagrody. Należy pamiętać, że różne pule będą dystrybuować nagrody ze stakowania do swoich użytkowników za pomocą nieco innych metod, ale jest to częste. - - - -Już teraz! Aktualizacja sieci Shanghai/Capella miała miejsce w kwietniu 2023 r. i wprowadziła wypłaty ze stakingu. Konta walidatorów, które wspierają stakowanie w puli mają teraz możliwość wyjścia i wypłaty ETH na wyznaczony adres wypłaty. Daje to możliwość zdobycia swojej części swojej stawki za bazowe ETH. Sprawdź u swojego dostawcy, aby sprawdzić, w jaki sposób obsługuje tę funkcję. - -Alternatywnie, pule wykorzystujące token stakingowy ERC-20 pozwalają użytkownikom handlować tym tokenem na otwartym rynku, umożliwiając sprzedaż pozycji stakingowej, skutecznie „wypłacając” bez faktycznego usuwania ETH z kontraktu stakingowego. - -Więcej o wypłatach ze stakingu - - - -Jest wiele podobieństw między tymi opcjami stakowania w puli a scentralizowanymi giełdami, takimi jak możliwość stakowania niewielkich ilości ETH i łączenia ich w celu aktywacji walidatorów. - -W przeciwieństwie do scentralizowanych giełd wiele innych opcji stakowania w puli wykorzystuje inteligentne kontrakty i/lub tokeny stakingu, które zazwyczaj są tokenami ERC-20, które można przechowywać we własnym portfelu i kupować lub sprzedawać tak jak każdy inny token. Zapewnia to warstwę niezależności i bezpieczeństwa, dając ci kontrolę nad tokenami, ale nadal nie daje ci bezpośredniej kontroli nad klientem walidatora poświadczającym w twoim imieniu w tle. - -Niektóre opcje puli są bardziej zdecentralizowane niż inne, jeśli chodzi o węzły, które je obsługują. Aby promować zdrowie i decentralizację sieci, stakerzy są zawsze zachęcani do wyboru usługi w puli, która umożliwia zdecentralizowany zestaw operatorów węzłów bez zezwoleń. - - -## Dodatkowo przeczytaj {#further-reading} - -- [Staking z Rocket Pool - Przegląd stakingu](https://docs.rocketpool.net/guides/staking/overview.html) — _Dokumenty RocketPool_ -- [Staking Ethereum z Lido](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) — _dokumenty pomocy Lido_ diff --git a/src/content/translations/pl/staking/saas/index.md b/src/content/translations/pl/staking/saas/index.md deleted file mode 100644 index ca37584c295..00000000000 --- a/src/content/translations/pl/staking/saas/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Usługi stakingowe -description: Przegląd tego, jak rozpocząć korzystanie ze stakowania ETH w puli -lang: pl -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-saas.png -alt: Nosorożec Leslie unoszący się w chmurach. -sidebarDepth: 2 -summaryPoints: - - Działanie Twojego walidatora zapewniają zewnętrzni operatorzy węzłów - - Świetna opcja dla każdego, kto ma 32 ETH i nie czuje się komfortowo mając do czynienia z techniczną złożonością uruchamiania węzła - - Zredukuj zakres koniecznego zaufania i zachowaj kontrolę nad swoimi kluczami ---- - -## Czym są usługi stakingowe? {#what-is-staking-as-a-service} - -Usługi stakingowe („SaaS”) reprezentują kategorię usług stakingowych, w których użytkownik deponuje własne 32 ETH dla walidatora, ale deleguje operacje węzła do zewnętrznego operatora. Proces ten zwykle wymaga bycia przeprowadzonym przez początkową konfigurację, w tym generowanie kluczy i depozyt, a następnie przesłanie kluczy podpisujących do operatora. Dzięki temu usługa może obsługiwać Twój walidator w Twoim imieniu, zwykle za miesięczną opłatą. - -## Dlaczego warto postawić na usługę? {#why-stake-with-a-service} - -Protokół Ethereum nie wspiera natywnie delegowania stawek, więc stworzone zostały te usługi, aby zaspokoić zapotrzebowanie. Jeśli masz dostępne na poczet stakingu 32 ETH, ale nie czujesz się komfortowo z obsługą sprzętu, usługi SaaS pozwalają Ci na zdelegowanie tych czynności, podczas gdy Ty nadal możesz uzyskiwać natywne nagrody za blok. - - - - - - - - - -## Co wziąć pod uwagę {#what-to-consider} - -Powstaje coraz więcej dostawców SaaS, którzy pomogą Ci stakować Twoje ETH, ale każdy z nich ma swoje własne korzyści i ryzyka. Wszystkie opcje SaaS wymagają dodatkowych założeń dotyczących zaufania w porównaniu do domowego stakingu. Opcje SaaS mogą zawierać dodatkowy kod opakowujący klienta Ethereum, który nie będzie otwarty lub skontrolowany. SaaS ma również niekorzystny wpływ na decentralizację sieci. W zależności od konfiguracji możesz nie mieć możliwości kontrolowania swojego walidatora — operator może działać nieuczciwie, używając twojego ETH. - -Wskaźniki atrybutów są użyte poniżej, aby zasygnalizować godne uwagi mocne lub słabe strony, jakie może mieć wymieniony dostawca SaaS. Użyj tej sekcji jako odniesienia do sposobu definiowania tych atrybutów podczas wybierania usługi, która pomoże Ci w Twojej przygodzie ze stakingiem. - - - -## Poznaj dostawców usług stakingowych {#saas-providers} - -Poniżej znajduje się paru dostępnych dostawców SaaS. Skorzystaj z powyższych wskaźników, które oprowadzą cię z tymi usługami - - - -#### Dostawcy SaaS - - - -Należy pamiętać o znaczeniu wspierania [różnorodności klientów](/developers/docs/nodes-and-clients/client-diversity/), ponieważ poprawia to bezpieczeństwo sieci i ogranicza ryzyko. Usługi, które mają dowody na ograniczanie korzystania z większości klientów, są oznaczone „różnorodność klientów wykonawczych” i „różnorodność klientów konsensusu.” - -#### Generatory kluczy - - - -Masz sugestię dostawcy usług stakingowych, którego pominęliśmy? Zapoznaj się z naszymi [zasadami umieszczania produktów na liście](/contributing/adding-staking-products/), aby sprawdzić, czy są one odpowiednie i przesłać je do recenzji. - -## Często zadawane pytania {#faq} - - -Rozwiązania będą się różnić w zależności od dostawcy, ale zazwyczaj zostaniesz poprowadzony przez konfigurację wszystkich potrzebnych kluczy podpisywania (jeden na 32 ETH) i przesłanie ich do dostawcy, aby umożliwić mu walidację w Twoim imieniu. Same klucze podpisywania nie dają żadnej możliwości wypłaty, transferu ani wydawania środków. Zapewniają jednak możliwość oddawania głosów w celu osiągnięcia konsensusu, co w przypadku niewłaściwego wykonania może skutkować karami offline lub cięciem. - - - -Tak. Każde konto składa się zarówno z kluczy podpisujących BLS, jak i kluczy wypłat BLS. Aby walidator mógł poświadczyć stan łańcucha, uczestniczyć w komitetach synchronizacji i proponować bloki, klucze podpisujące muszą być łatwo dostępne dla klienta walidatora. Muszą one być połączone z Internetem w jakiś sposób, a zatem są z natury uważane za klucze „gorące”. Jest to wymagane, aby walidator mógł poświadczyć, a zatem klucze używane do przesyłania lub wypłacania środków są oddzielone ze względów bezpieczeństwa. - -Klucze wypłaty BLS są używane do podpisywania jednorazowej wiadomości, która deklaruje, na które konto warstwy wykonawczej powinny trafić nagrody za stakowanie i wycofane środki. Po nadaniu tej wiadomości klucze wypłat BLS nie są już potrzebne. Zamiast tego kontrola nad wypłaconymi środkami jest na stałe przekazywana na podany adres. Umożliwia to ustawienie adresu wypłaty zabezpieczonego za pomocą własnych zimnych danych, minimalizując ryzyko środków walidatora, nawet jeśli ktoś inny kontroluje klucze podpisywania walidatora. - -Aktualizowanie danych uwierzytelniających wypłaty jest wymagane, aby umożliwić wypłaty\*. Proces ten obejmuje generowanie kluczy wypłat przy użyciu mnemonicznej frazy odzyskiwania. - -Upewnij się, że bezpiecznie zapisałeś tę frazę odzyskiwania, w przeciwnym razie nie będziesz w stanie wygenerować kluczy wypłaty, gdy nadejdzie czas. - -\*Stakerzy, którzy podali adres wypłaty przy pierwszej wpłacie, nie muszą tego ustawiać. Skontaktuj się ze swoim dostawcą SaaS, aby uzyskać pomoc dotyczącą przygotowania walidatora. - - - -W kwietniu 2023 r. w ramach aktualizacji Shanghai/Capella wprowadzono wypłaty ze stakingu. Stakerzy muszą podać adres do wypłaty (jeśli nie podano go przy pierwszej wpłacie), a wypłaty nagród zaczną być wypłacane automatycznie co kilka dni. - -Walidatorzy mogą również w pełni wyjść jako walidator, co odblokuje ich pozostałe saldo ETH do wypłaty. Konta, które podały adres wypłaty i zakończyły proces wyjścia, otrzymają całe saldo na adres wypłaty podany podczas następnego przeglądu walidatora. - -Więcej o wypłatach ze stakingu - - - -Korzystając z usług dostawcy SaaS, powierzasz obsługę swojego węzła komuś innemu. Wiąże się to z ryzykiem niskiej wydajności węzła, na którą nie masz wpływu. W przypadku, gdy Twój walidator zostanie odcięty, saldo walidatora zostanie ukarane i przymusowo usunięte z puli walidatorów. - -Po zakończeniu procesu cięcia/wyjścia środki te zostaną przelane na adres wypłaty przypisany do walidatora. Wymaga to podania adresu wypłaty w celu włączenia. Mogło to zostać dostarczone przy pierwszej wpłacie. Jeśli nie, klucze wypłaty walidatora będą musiały zostać użyte do podpisania wiadomości deklarującej adres wypłaty. Jeśli nie podano adresu wypłaty, środki pozostaną zablokowane do czasu jego podania. - -Skontaktuj się z indywidualnym dostawcą SaaS, aby uzyskać więcej informacji na temat wszelkich gwarancji lub opcji ubezpieczenia, a także instrukcjami dotyczącymi sposobu podania adresu wypłaty. Jeśli wolisz mieć pełną kontrolę nad konfiguracją walidatora, dowiedz się więcej o solo stakingu ETH. - - -## Dodatkowo przeczytaj {#further-reading} - -- [Ocena usług stakingu](https://www.attestant.io/posts/evaluating-staking-services/) — _Jim McDonald 2020 r._ diff --git a/src/content/translations/pl/staking/solo/index.md b/src/content/translations/pl/staking/solo/index.md deleted file mode 100644 index bb2ee6e1098..00000000000 --- a/src/content/translations/pl/staking/solo/index.md +++ /dev/null @@ -1,203 +0,0 @@ ---- -title: Stakuj solo swoje ETH -description: Przegląd tego, jak rozpocząć samodzielne stakowanie ETH -lang: pl -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-solo.png -alt: Nosorożec Leslie na własnym chipie komputerowym. -sidebarDepth: 2 -summaryPoints: - - Otrzymuj maksymalne nagrody bezpośrednio z protokołu za utrzymywanie prawidłowego działania walidatora w trybie online - - Uruchamiaj sprzęt domowy i osobiście zwiększaj bezpieczeństwo i decentralizację sieci Ethereum - - Wyeliminuj potrzebę zaufania i nigdy nie rezygnuj z kontroli nad kluczami do swoich funduszy ---- - -## Czym jest solo staking? {#what-is-solo-staking} - -Solo staking polega na [uruchomieniu węzła Ethereum](/run-a-node/) podłączonego do Internetu i zdeponowaniu 32 ETH w celu aktywacji [walidatora](#faq), co daje możliwość bezpośredniego uczestniczenia w konsensusie sieci. - -**Solo staking zwiększa decentralizację sieci Ethereum**, dzięki czemu Ethereum jest bardziej odporne na cenzurę i ataki. Inne metody stakowania mogą nie pomóc sieci w ten sam sposób. Solo staking jest najlepszą opcją stakingu do zabezpieczania Ethereum. - -Węzeł Ethereum składa się zarówno z klienta warstwy wykonawczej (EL), jak i klienta warstwy konsensusu (CL). Ci klienci są oprogramowaniem, które współpracuje, wraz z prawidłowym zestawem kluczy podpisujących, w celu weryfikacji transakcji i bloków, poświadczania prawidłowej pozycji łańcucha, agregowania poświadczeń i proponowania bloków. - -Solo stakerzy są odpowiedzialni za obsługę sprzętu potrzebnego do uruchomienia tych klientów. Zaleca się używanie do tego celu dedykowanej maszyny obsługiwanej z domu — jest to niezwykle korzystne dla zdrowia sieci. - -Solo staker otrzymuje nagrody bezpośrednio z protokołu za utrzymywanie swojego walidatora prawidłowo działającego i online. - -## Dlaczego stakować solo? {#why-stake-solo} - -Staking solo wiąże się z większą odpowiedzialnością, ale zapewnia maksymalną kontrolę nad środkami i konfiguracją stakingu. - - - - - - - -## Rozważania przed solo stakingiem {#considerations-before-staking-solo} - -Chociaż chcielibyśmy, aby staking solo był dostępny i wolny od ryzyka dla każdego, nie jest to jednak rzeczywistością. Istnieje kilka praktycznych i poważnych kwestii, o których należy pamiętać przed podjęciem decyzji o samodzielnym stakowaniu ETH. - - - -Podczas obsługi własnego węzła należy poświęcić trochę czasu na naukę obsługi wybranego oprogramowania. Obejmuje to czytanie odpowiedniej dokumentacji i bycie na bieżąco z kanałami komunikacji tych zespołów programistów. - -Im więcej wiesz o oprogramowaniu, które uruchamiasz i jak działa dowód stawki (proof-of-stake), tym mniej ryzykowne będzie to jako staker i tym łatwiej będzie naprawić wszelkie problemy, które mogą pojawić się po drodze jako operator węzła. - - - -Konfiguracja węzła wymaga rozsądnego poziomu komfortu podczas pracy z komputerami, chociaż nowe narzędzia z czasem to ułatwiają. Zrozumienie interfejsu wiersza poleceń jest pomocne, ale nie jest już wymagane. - -Wymaga również bardzo podstawowej konfiguracji sprzętu i pewnego zrozumienia minimalnych zalecanych specyfikacji. - - - -Podobnie jak w przypadku kluczy prywatnych zabezpieczających adres Ethereum, konieczne będzie wygenerowanie kluczy specjalnie dla walidatora. Musisz wiedzieć, jak bezpiecznie przechowywać wszelkie frazy odzyskiwania lub klucze prywatne.{' '} - -Bezpieczeństwo Ethereum i zapobieganie oszustwom - - - -Sprzęt czasami zawodzi, połączenia sieciowe ulegają awarii, a oprogramowanie klienta czasami wymaga aktualizacji. Konserwacja węzła jest nieunikniona i od czasu do czasu będzie wymagać uwagi użytkownika. Musisz mieć pewność, że będziesz na bieżąco z wszelkimi przewidywanymi aktualizacjami sieci lub innymi krytycznymi aktualizacjami klienta. - - - -Nagrody są proporcjonalne do czasu, w którym walidator jest online i prawidłowo poświadcza. Przestój wiąże się z karami proporcjonalnymi do tego, ile innych walidatorów jest offline w tym samym czasie, ale nie powoduje cięcia. Przepustowość również ma znaczenie, ponieważ nagrody są zmniejszane za zaświadczenia, które nie są otrzymywane na czas. Wymagania będą się różnić, ale zalecane jest co najmniej 10 Mb/s wysyłania i pobierania. - - - -W odróżnieniu od kar za bycie offline, cięcie jest znacznie poważniejszą karą zarezerwowaną dla złośliwych wykroczeń. Uruchamiając klienta mniejszościowego z kluczami załadowanymi tylko na jednej maszynie w danym czasie, ryzyko odcięcia jest zminimalizowane. Biorąc to pod uwagę, wszyscy stakerzy muszą być świadomi ryzyka związanego z odcięciem. - -Więcej o cięciu i cyklu życia walidatora - - - - - -## Jak to działa {#how-it-works} - - - -Podczas aktywności będziesz zdobywać nagrody ETH, które będą okresowo wpłacane na Twój adres wypłaty. - -Jeśli chcesz, możesz wyjść jako walidator, co eliminuje wymóg bycia online i zatrzymuje wszelkie dalsze nagrody. Pozostałe saldo zostanie następnie wypłacone na adres wypłaty wskazany podczas konfiguracji. - -[Więcej o wypłatach ze stakingu](/staking/withdrawals/) - -## Rozpocznij na Staking Launchpad {#get-started-on-the-staking-launchpad} - -Staking Launchpad to aplikacja open source, która pomoże ci zostać stakerem. Poprowadzi cię przez wybór klientów, wygenerowanie kluczy i zdeponowanie ETH w kontrakcie depozytu na staking. Lista kontrolna jest dostęna, aby upewnić się, że wszystko zostało uwzględnione w celu bezpiecznego skonfigurowania walidatora. - - - -## Co wziąć pod uwagę w przypadku narzędzi do konfiguracji węzłów i klientów {#node-tool-considerations} - -Powstaje coraz więcej narzędzi i usług, które pomagają w samodzielnym stakowaniu ETH, ale każde z nich wiąże się z innym ryzykiem i korzyściami. - -Wskaźniki atrybutów są używane poniżej, aby zasygnalizować godne uwagi mocne lub słabe strony, jakie może mieć wymienione narzędzie do stakowania. Użyj tej sekcji jako odniesienia do sposobu definiowania tych atrybutów podczas wybierania narzędzi, które pomogą Ci w Twojej przygodzie ze stakingiem. - - - -## Poznaj narzędzia konfiguracji węzła i klienta {#node-and-client-tools} - -Dostępnych jest wiele opcji ułatwiających konfigurację. Skorzystaj z powyższych wskaźników, które oprowadzą cię z poniższymi narzędziami. - - - -#### Narzędzia węzła - - - -Należy pamiętać o znaczeniu wybrania [klienta mniejszościowego](/developers/docs/nodes-and-clients/client-diversity/), ponieważ poprawia to bezpieczeństwo sieci i ogranicza ryzyko. Narzędzia, które pozwalają na konfigurację klienta mniejszościowego są oznaczone jako „multi-klient”. - -#### Generatory kluczy - -Narzędzia te mogą być używane jako alternatywa dla [CLI depozytu stakingu](https://github.com/ethereum/staking-deposit-cli/), aby pomóc w generowaniu kluczy. - - - -Masz sugestię dotyczącą narzędzia do stakingu, które pominęliśmy? Zapoznaj się z naszymi [zasadami umieszczania produktów na liście](/contributing/adding-staking-products/), aby sprawdzić, czy są one odpowiednie i przesłać je do recenzji. - -## Zapoznaj się z przewodnikami solo stakingu {#staking-guides} - - - -## Często zadawane pytania {#faq} - -Oto kilka najczęściej zadawanych pytań dotyczących stakingu, o których warto wiedzieć. - - - -Walidator to wirtualny podmiot, który żyje w Ethereum i uczestniczy w konsensusie protokołu Ethereum. Walidatory są reprezentowane przez saldo, klucz publiczny i inne właściwości. Klient walidatora to oprogramowanie, które działa w imieniu walidatora, przechowując i używając jego klucza prywatnego. Pojedynczy klient walidatora może przechowywać wiele par kluczy, kontrolując wiele walidatorów. - - - - -Każda para kluczy powiązana z walidatorem wymaga dokładnie 32 ETH do aktywacji. Więcej ETH zdeponowanych w jednym zestawie kluczy nie zwiększa potencjału nagród, ponieważ każdy walidator jest ograniczony do efektywnego salda 32 ETH. Oznacza to, że staking odbywa się w przyrostach 32 ETH, każdy z własnym zestawem kluczy i saldem. - -Nie należy deponować więcej niż 32 ETH dla jednego walidatora. Nie zwiększy to twoich nagród. Jeśli dla walidatora ustawiono adres wypłaty, nadwyżka środków powyżej 32 ETH zostanie automatycznie wypłacona na ten adres podczas następnego przeniesienia walidatora. - -Jeśli solo staking wydaje ci się zbyt wymagający, rozważ skorzystanie z usług stakingowych lub jeśli masz mniej niż 32 ETH, sprawdź stakowanie w puli. - - - -Przejście w tryb offline, podczas poprawnej finalizacji sieci, NIE spowoduje odcięcia. Niewielkie kary za brak aktywności są naliczane, jeśli walidator nie jest dostępny do poświadczania w danej epoce (każda o długości 6,4 minuty), ale różni się to znacznie od cięcia. Kary te są nieco niższe niż nagroda, którą można by uzyskać, gdyby walidator był dostępny do poświadczenia, a straty można odzyskać w przybliżeniu w takim samym czasie, jak w przypadku powrotu do trybu online. - -Należy pamiętać, że kary za brak aktywności są proporcjonalne do liczby walidatorów znajdujących się w trybie offline w tym samym czasie. W przypadkach, gdy duża część sieci jest jednocześnie offline, kary dla każdego z tych walidatorów będą większe niż w przypadku niedostępności pojedynczego walidatora. - -W skrajnych przypadkach, jeśli sieć przestanie finalizować w wyniku tego, że ponad jedna trzecia walidatorów jest offline, użytkownicy ci ucierpią z powodu tak zwanego kwadratowego wycieku nieaktywności, który jest wykładniczym odpływem ETH z kont walidatorów offline. Pozwala to sieci na samoleczenie poprzez spalanie ETH nieaktywnych walidatorów, aż ich saldo osiągnie 16 ETH, w którym to momencie zostaną oni automatycznie usunięci z puli walidatorów. Pozostałe walidatory online ostatecznie ponownie obejmą ponad 2/3 sieci, spełniając większość potrzebną do ponownego sfinalizowania łańcucha. - - - -W skrócie mówiąc, nigdy nie można tego w pełni zagwarantować, ale jeśli działasz w dobrej wierze, uruchamiasz klienta mniejszościowego i przechowujesz klucze podpisujące tylko na jednym komputerze naraz, ryzyko odcięcia jest prawie zerowe. - -Istnieje tylko kilka konkretnych sposobów, które mogą spowodować, że walidator zostanie odcięty i wyrzucony z sieci. W chwili pisania tego tekstu, cięcia, które miały miejsce, były wyłącznie wynikiem zbędnych konfiguracji sprzętowych, w których klucze podpisujące były przechowywane na dwóch oddzielnych komputerach jednocześnie. Może to nieumyślnie spowodować podwójne głosowanie z Twoich kluczy, co jest wykroczeniem podlegającym odcięciu. - -Uruchomienie klienta superwiększościowego (dowolnego klienta używanego przez ponad 2/3 sieci) wiąże się również z ryzykiem potencjalnego odcięcia w przypadku, gdy klient ten ma błąd, który skutkuje rozwidleniem łańcucha. Może to skutkować błędnym forkiem, który zostanie sfinalizowany. Korekta z powrotem do zamierzonego łańcucha wymagałaby przesłania głosowania zaokrąglonego poprzez próbę cofnięcia sfinalizowanego bloku. Jest to również wykroczenie, za które można zostać odciętym, którego można uniknąć, po prostu uruchamiając klienta mniejszościowego. - -Równoważne błędy w kliencie mniejszościowym nigdy nie zostałyby sfinalizowane, a zatem nigdy nie skutkowałyby głosowaniem zaokrąglonym i po prostu skutkowałyby karami za brak aktywności, a nie cięciem. - - - - - -Poszczególne klienty mogą nieznacznie różnić się pod względem wydajności i interfejsu użytkownika, ponieważ każdy z nich jest opracowywany przez różne zespoły przy użyciu różnych języków programowania. To powiedziawszy, żaden z nich nie jest „najlepszy”. Wszyscy klienci produkcyjni są doskonałymi oprogramowaniami, które wykonuje te same podstawowe funkcje synchronizacji i interakcji z blockchainem. - -Ponieważ wszyscy klienci produkcyjni zapewniają tę samą podstawową funkcjonalność, bardzo ważne jest, aby wybrać klienta mniejszościowego, czyli dowolnego klienta, który NIE jest obecnie używany przez większość walidatorów w sieci. Może to zabrzmieć nieintuicyjnie, ale uruchomienie klienta większościowego lub superwiększościowego zwiększa ryzyko cięcia w przypadku błędu w tym kliencie. Korzystanie z klienta mniejszościowego drastycznie ogranicza to ryzyko. - -Dowiedz się więcej, dlaczego różnorodność klientów ma kluczowe znaczenie - - - -Chociaż wirtualny serwer prywatny (VPS) może być używany jako zamiennik sprzętu domowego, fizyczny dostęp i lokalizacja klienta walidatora ma znaczenie. Scentralizowane rozwiązania chmurowe, takie jak Amazon Web Services lub Digital Ocean, zapewniają wygodę polegającą na braku konieczności pozyskiwania i obsługi sprzętu kosztem centralizacji sieci. - -Im więcej klientów walidatora działa na jednym scentralizowanym rozwiązaniu pamięci w chmurze, tym bardziej niebezpieczne staje się to dla tych użytkowników. Każde zdarzenie, które spowoduje przejście w tryb offline tych dostawców, czy to przez atak, wymogi regulacyjne, czy po prostu przerwy w dostawie prądu/internetu, spowoduje, że każdy klient walidatora, który polega na tym serwerze, zostanie wyłączony w tym samym czasie. - -Kary za bycie offline są proporcjonalne do tego, ile innych osób jest offline w tym samym czasie. Korzystanie z VPS znacznie zwiększa ryzyko, że kary za bycie offline będą bardziej dotkliwe, a także zwiększa ryzyko kwadratowego wycieku lub cięcia w przypadku, gdy przerwa jest wystarczająco duża. Aby zminimalizować własne ryzyko i ryzyko dla sieci, użytkownicy są zdecydowanie zachęcani do uzyskania i obsługi własnego sprzętu. - - - - -Wypłaty wszelkiego rodzaju z łańcucha śledzącego wymagają ustawienia poświadczeń wypłaty. - -Nowi stakerzy ustawiają to w czasie generowania klucza i deponowania. Obecni stakerzy, którzy jeszcze tego nie ustawili, mogą zaktualizować swoje klucze, aby obsługiwały tę funkcję. - -Po ustawieniu poświadczeń wypłaty, płatności nagród (skumulowane ETH przez początkowe 32) będą okresowo automatycznie dystrybuowane na adres wypłaty. - -Aby odblokować i otrzymać całe saldo z powrotem, należy również zakończyć proces zamykania walidatora. - -Więcej o wypłatach ze stakingu - - -## Dalsza lektura {#further-reading} - -- [Problem różnorodności klientów Ethereum](https://hackernoon.com/ethereums-client-diversity-problem) — _@emmanuelawosika 2022 r._ -- [Wspieranie różnorodności klientów](https://www.attestant.io/posts/helping-client-diversity/) — _Jim McDonald 2022 r._ -- [Różnorodność klientów w warstwie konsensusu Ethereum](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) — _jmcook.eth 2022 r._ -- [Zakup sprzętu do walidacji Ethereum](https://www.youtube.com/watch?v=C2wwu1IlhDc) — _EthStaker 2022 r._ -- [Krok po kroku: jak dołączyć do sieci testowej Ethereum 2.0](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) — _Butta_ -- [Wskazówki dotyczące zapobieganiu cięciu Eth2](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) — _Raul Jordan 2020 r._ diff --git a/src/content/translations/pl/staking/withdrawals/index.md b/src/content/translations/pl/staking/withdrawals/index.md deleted file mode 100644 index a693fda5195..00000000000 --- a/src/content/translations/pl/staking/withdrawals/index.md +++ /dev/null @@ -1,218 +0,0 @@ ---- -title: Wypłaty ze stakingu -description: Strona podsumowująca, czym są wypłaty ze stakingu i jak działają, a także co muszą zrobić stakerzy, aby otrzymać nagrody -lang: pl -template: staking -image: ../../../../../assets/staking/leslie-withdrawal.png -alt: Nosorożec Leslie z nagrodami ze stakingu -sidebarDepth: 2 -summaryPoints: - - Aktualizacja Shanghai/Capella pozwoliła na wypłaty ze stakingu na Ethereum - - Operatorzy walidatorów muszą podać adres wypłaty, aby umożliwić - - Nagrody są przyznawane automatycznie co kilka dni - - Walidatory, które w pełni opuszczą staking, otrzymają swoje pozostałe saldo ---- - - -Wypłaty ze stakingu zostały włączone wraz z aktualizacją Shanghai/Capella, która miała miejsce 12 kwietnia 2023 r. Więcej informacji o Shanghai/Capella - - -**Wypłaty ze stakingu** odnoszą się do transferów ETH z konta walidatora w warstwie konsensusu Ethereum (łańcuch śledzący) do warstwy wykonawczej, w której można dokonywać transakcji. - -**Wypłaty nagród za nadwyżkę salda** powyżej 32 ETH będą automatycznie i regularnie wysyłane na adres wypłaty powiązany z każdym walidatorem, po podaniu go przez użytkownika. Użytkownicy mogą również **całkowicie opuścić stakowanie**, odblokowując prz tym ich pełne saldo walidatora. - -## Nagrody ze stakingu {#staking-rewards} - -Wypłaty nagród są automatycznie przetwarzane dla aktywnych kont walidatorów z maksymalnym efektywnym saldem 32 ETH. - -Każde saldo powyżej 32 ETH zarobione dzięki nagrodom w rzeczywistości nie przyczynia się do kapitału ani nie zwiększa wagi tego walidatora w sieci, a zatem jest automatycznie wypłacane jako nagroda co kilka dni. Poza jednorazowym podaniem adresu wypłaty, nagrody te nie wymagają żadnych działań ze strony operatora walidatora. Wszystko to jest inicjowane w warstwie konsensusu, więc na żadnym etapie nie jest wymagany gaz (opłata transakcyjna). - -### Jak się tutaj znaleźliśmy? {#how-did-we-get-here} - -W ciągu ostatnich kilku lat Ethereum przeszło kilka modernizacji sieci, przechodząc na sieć zabezpieczoną przez samo ETH, zamiast energochłonnego wydobycia, jak to było kiedyś. Uczestnictwo w konsensusie Ethereum jest obecnie znane jako „staking”, ponieważ uczestnicy dobrowolnie zablokowali ETH, stawiając je „na szali” w zamian za możliwość uczestnictwa w sieci. Użytkownicy, którzy przestrzegają zasad, zostaną nagrodzeni, podczas gdy próby oszukiwania mogą zostać ukarane. - -Od czasu uruchomienia kontraktu depozytowego stakingowego w listopadzie 2020 r. niektórzy odważni pionierzy Ethereum dobrowolnie zablokowali środki, aby aktywować „walidatory”, specjalne konta, które mają prawo do formalnego poświadczania i proponowania bloków, zgodnie z zasadami sieci. - -Przed aktualizacją Shanghai/Capella nie można było używać ani uzyskiwać dostępu do zestakowanego ETH. Jednakże teraz możesz zdecydować się na automatyczne otrzymywanie nagród na wybrane konto, a także możesz wypłacić zestakowane ETH, kiedy tylko chcesz. - -### Jak się przygotować? {#how-do-i-prepare} - - - -### Ważne informacje {#important-notices} - -Podanie adresu wypłaty jest wymaganym krokiem dla każdego konta walidatora, zanim będzie ono uprawnione do wypłaty ETH ze swojego salda. - - - Każde konto walidatora może mieć przypisany tylko jeden adres wypłaty, jeden raz. Po wybraniu adresu i przesłaniu go do warstwy konsensusu nie można tego cofnąć ani zmienić ponownie. Przed wysłaniem sprawdź dwukrotnie własność i poprawność podanego adresu. - - -Nie ma żadnego zagrożenia dla twoich funduszy w międzyczasie za niedostarczenie tego, zakładając, że twoja fraza mnemoniczna/odzyskiwania pozostała bezpieczna offline i nie została w żaden sposób naruszona. Brak dodania danych uwierzytelniających do wypłaty spowoduje po prostu zablokowanie ETH na koncie walidatora do czasu podania adresu do wypłaty. - -## Całkowite wyjście ze stakingu {#exiting-staking-entirely} - -Podanie adresu wypłaty jest wymagane, zanim _jakiekolwiek_ środki będą mogły zostać przelane z salda konta walidatora. - -Użytkownicy, którzy chcą całkowicie zrezygnować ze stakingu i wypłacić pełne saldo, muszą również podpisać i wysłać wiadomość o „dobrowolnym wyjściu” za pomocą kluczy walidatora, co rozpocznie proces wychodzenia ze stakingu. Odbywa się to za pomocą klienta walidatora i jest przesyłane do węzła konsensusu i nie wymaga gazu. - -Proces wychodzenia walidatora ze stakingu zajmuje różną ilość czasu, w zależności od tego, ile innych osób wychodzi w tym samym czasie. Po zakończeniu, konto to nie będzie już odpowiedzialne za wykonywanie obowiązków walidatorów sieci, nie będzie już kwalifikować się do nagród i nie będzie już mieć swojego ETH „na szali”. W tym momencie konto zostanie oznaczone jako w pełni „wypłacalne”. - -Po oznaczeniu konta jako „wypłacalne” i podaniu danych uwierzytelniających do wypłaty użytkownik nie musi nic więcej robić poza czekaniem. Konta są automatycznie i stale przenoszone przez wnioskodawców bloków pod kątem kwalifikujących się wycofanych środków, a saldo konta zostanie przelane w całości (znane również jako „pełna wypłata”) podczas następnej sesji przeniesienia. - -## Kiedy wypłaty ze stakingu są możliwe? {#when} - -Wypłaty ze stakingu są już dostępne! Funkcja wypłat została włączona w ramach aktualizacji Shanghai/Capella, która miała miejsce 12 kwietnia 2023 r. - -Aktualizacja Shanghai/Capella umożliwiła odzyskanie wcześniej zestakowanych ETH na zwykłych kontach Ethereum. Zamknęło to pętlę płynności stakingu i przybliżyło Ethereum o krok na drodze do zbudowania zrównoważonego, skalowalnego i bezpiecznego zdecentralizowanego ekosystemu. - -- [Więcej o historii Ethereum](/history/) -- [Więcej o planie działania Ethereum](/roadmap/) - -## Jak działają wypłaty środków? {#how-do-withdrawals-work} - -To, czy dany walidator kwalifikuje się do wypłaty, czy nie, zależy od stanu samego konta walidatora. Żadne dane wejściowe użytkownika nie są potrzebne w żadnym momencie, aby określić, czy konto powinno mieć zainicjowaną wypłatę, czy nie — cały proces jest wykonywany automatycznie przez warstwę konsensusu w ciągłej pętli. - -### Jesteś raczej wzrokowcem? {#visual-learner} - -Sprawdź to wyjaśnienie dotyczące wypłat ze stakingu Ethereum przez Finematics: - - - -### Walidator „przesunięcia” {#validator-sweeping} - -Gdy walidator ma zaproponować następny blok, musi utworzyć kolejkę wypłat, składającą się z maksymalnie 16 kwalifikujących się wypłat. Odbywa się to poprzez pierwotne rozpoczęcie od indeksu walidatora 0, określając, czy istnieje kwalifikująca się wypłata dla tego konta zgodnie z zasadami protokołu i dodanie jej do kolejki, jeśli tak. Walidator ustawiony na proponowanie następnego bloku będzie kontynuował w miejscu, w którym poprzedni został pozostawiony, postępując w kolejności w nieskończoność. - - -Pomyśl o zegarku analogowym. Wskazówka na zegarze wskazuje godzinę, przesuwa się w jednym kierunku, nie pomija żadnych godzin i ostatecznie zawija się do początku po osiągnięciu ostatniej liczby.

-Teraz zamiast od 1 do 12, wyobraź sobie, że zegar ma od 0 do N (całkowita liczba kont walidatorów, które kiedykolwiek zostały zarejestrowane w warstwie konsensusu, ponad 500 000 — stan na styczeń 2023 r.).

-Wskazówka na zegarze wskazuje następny walidator, który należy sprawdzić pod kątem kwalifikujących się wypłat. Zaczyna od 0 i postępuje dookoła, nie pomijając żadnego konta. Po osiągnięciu ostatniego walidatora cykl jest kontynuowany od początku. -
- -#### Sprawdzanie konta pod kątem wypłat {#checking-an-account-for-withdrawals} - -Podczas gdy wnioskodawca przegląda walidatory pod kątem możliwych wypłat, każdy sprawdzany walidator jest oceniany pod kątem krótkiej serii pytań w celu ustalenia, czy należy uruchomić wypłatę, a jeśli tak, to ile ETH należy wypłacić. - -1. **Czy został podany adres do wypłaty?** Jeśli nie podano adresu do wypłaty, konto zostanie pominięte i wypłata nie zostanie zainicjowana. -2. **Czy walidator wyszedł i jest wypłacalny?** Jeśli walidator całkowicie wyszedł, a my osiągnęliśmy epokę, w której jego konto jest uważane za „wypłacalne”, wówczas zostanie przetworzona pełna wypłata. Spowoduje to przeniesienie całego pozostałego salda na adres wypłaty. -3. **Czy efektywne saldo wynosi maksymalnie 32?** Jeśli konto ma dane uwierzytelniające do wypłaty, nie opuściło w pełni i ma oczekujące nagrody powyżej 32, zostanie przetworzona częściowa wypłata, która przeleje tylko nagrody powyżej 32 na adres wypłaty użytkownika. - -Istnieją tylko dwa działania podejmowane przez operatorów walidatorów w trakcie cyklu życia walidatora, które bezpośrednio wpływają na ten przepływ: - -- Podanie danych uwierzytelniających do wypłaty, aby umożliwić dowolną formę wypłaty -- Wyjście z sieci, które spowoduje całkowitą wypłatę - -### Bez gazu {#gas-free} - -Takie podejście do wypłat ze stakingu pozwala uniknąć konieczności ręcznego przesyłania transakcji z żądaniem wypłaty określonej kwoty ETH. Oznacza to, że **nie jest wymagany gaz (opłata transakcyjna)**, a wypłaty również nie konkurują o istniejącą przestrzeń blokową warstwy wykonawczej. - -### Jak często będę otrzymywać nagrody ze stakingu? {#how-soon} - -W jednym bloku może zostać przetworzonych maksymalnie 16 wypłat. W tym tempie można przetworzyć 115200 wypłat z walidatora dziennie (zakładając, że nie zostaną pominięte żadne sloty). Jak wspomniano powyżej, walidatory bez kwalifikujących się wypłat zostaną pominięte, skracając czas do zakończenia przesunięcia. - -Rozszerzając te obliczenia, możemy oszacować czas potrzebny na przetworzenie danej liczby wypłat: - - - -| Liczba wypłat | Czas realizacji | -| :-----------: | :-------------: | -| 400,000 | 3,5 dnia | -| 500,000 | 4,3 dnia | -| 600,000 | 5,2 dnia | -| 700,000 | 6,1 dnia | -| 800,000 | 7,0 dni | - - - -Jak widać, spowalnia to wraz ze wzrostem liczby walidatorów w sieci. Wzrost liczby pominiętych slotów może proporcjonalnie spowolnić ten proces, ale generalnie będzie to wolniejsza strona możliwych wyników. - -## Najczęściej zadawane pytania (FAQ) {#faq} - - -Nie, proces dostarczania danych uwierzytelniających do wypłaty jest jednorazowy i nie można go zmienić po przesłaniu. - - - -Ustawiając adres wypłat warstwy wykonawczej, dane uwierzytelniające wypłat dla tego walidatora zostały trwale zmienione. Oznacza to, że stare poświadczenia nie będą już działać, a nowe poświadczenia będą kierować do konta warstwy wykonawczej. - -Adresy wypłat mogą być albo inteligentnym kontraktem (kontrolowanym przez jego kod), albo zewnętrznym kontem (EOA, kontrolowanym przez jego klucz prywatny). Obecnie konta te nie mają sposobu na przekazanie wiadomości z powrotem do warstwy konsensusu, która sygnalizowałaby zmianę poświadczeń walidatora, a dodanie tej funkcji dodałoby niepotrzebnej złożoności protokołu. - -Jako alternatywę dla zmiany adresu wypłaty dla konkretnego walidatora, użytkownicy mogą zdecydować się na ustawienie inteligentnego kontraktu jako adresu wypłaty, który może obsługiwać obroty klucza, tak jak sejf. Użytkownicy, którzy ustawili swoje środki na własne EOA, mogą wykonać pełne wyjście, aby wypłacić wszystkie zestakowane środki, a następnie ponownie zestakować je przy użyciu nowych danych uwierzytelniających. - - - - -Jeśli jesteś częścią puli stakingowej lub posiadasz tokeny stakingowe, powinieneś skontaktować się ze swoim dostawcą, aby uzyskać więcej informacji na temat sposobu obsługi wypłat ze stakingu, ponieważ każda usługa działa inaczej. - -Ogólnie rzecz biorąc, użytkownicy powinni mieć możliwość odzyskania swoich bazowych stakowanych ETH lub zmiany dostawcy stakingu, z którego korzystają. Jeśli dana pula staje się zbyt duża, środki mogą zostać wycofane, wypłacone i ponownie zestakowane u mniejszego dostawcy. Lub, jeśli zgromadziłeś wystarczającą ilość ETH, możesz stakować z domu. - - - - -Tak, o ile weryfikator podał adres do wypłaty. Należy to podać raz, aby początkowo umożliwić jakiekolwiek wypłaty, a następnie wypłaty nagród będą automatycznie wykonywane co kilka dni przy każdym przesunięciu walidatora. - - - - -Nie, jeśli Twój walidator jest nadal aktywny w sieci, pełna wypłata nie nastąpi automatycznie. Wymaga to ręcznego zainicjowania dobrowolnego wyjścia. - -Gdy walidator zakończy proces wychodzenia i zakładając, że konto ma dane uwierzytelniające do wypłaty, wtedy pozostanie wypłacone pozostałe saldo podczas następnego przesunięcia walidatora. - - - - -Wypłaty są zaprojektowane tak, aby były realizowane automatycznie, przenosząc wszelkie ETH, które nie wnoszą aktywnego wkładu do stawki. Obejmuje to pełne salda dla kont, które zakończyły proces wyjścia. - -Nie jest możliwe ręczne żądanie wypłaty określonych kwot ETH. - - - - -Operatorom walidatorów zaleca się odwiedzenie strony wypłaty Staking Launchpad, gdzie można znaleźć więcej szczegółów na temat przygotowania walidatora do wypłat. przygotowane, czas zdarzeń i więcej szczegółów na temat funkcjonowania wypłat. - -Aby najpierw wypróbować swoją konfigurację w sieci testowej, odwiedź Goerli Testnet Staking Launchpad, aby rozpocząć. - - - - -Nie. Po wyjściu walidatora i wypłaceniu jego pełnego salda wszelkie dodatkowe środki wpłacone na jego rzecz zostaną automatycznie przesłane na adres wypłat środków podczas następnego przesunięcia walidatorów. Aby ponownie zestakować ETH, należy aktywować nowy walidator. - - -## Dalsza lektura {#further-reading} - -- [Wypłaty Staking Launchpad](https://launchpad.ethereum.org/withdrawals) -- [EIP-4895: Wypłaty z łańcucha śledzącego jako operacje](https://eips.ethereum.org/EIPS/eip-4895) -- [Ethereum Cat Herders — Szanghaj](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) -- [PEEPanEIP #94: Wypłata zestakowanego ETH (testowanie) z Potuz & Hsiao-Wei Wang](https://www.youtube.com/watch?v=G8UstwmGtyE) -- [PEEPanEIP#68: EIP-4895: Łańcuch śledzący wywiera wypłaty jako operacje z Alexem Stokesem](https://www.youtube.com/watch?v=CcL9RJBljUs) -- [Zrozumienie efektywnego bilansu walidatora](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/pl/whitepaper/index.md b/src/content/translations/pl/whitepaper/index.md deleted file mode 100644 index 058e42a5a90..00000000000 --- a/src/content/translations/pl/whitepaper/index.md +++ /dev/null @@ -1,501 +0,0 @@ ---- -title: Biała księga Ethereum -description: Dokument wprowadzający do Ethereum, opublikowany w 2013 r. przed jego uruchomieniem. -lang: pl -sidebarDepth: 2 ---- - -# Biała księga Ethereum {#ethereum-whitepaper} - -_Ten dokument wprowadzający został pierwotnie opublikowany w 2013 r. przez Vitalika Buterina, założyciela [Ethereum](/what-is-ethereum/), przed uruchomieniem projektu w 2015 r. Warto zauważyć, że Ethereum, podobnie jak wiele projektów oprogramowania opartych na społecznościach, rozwija się od czasu jego początkowego powstania._ - -_Przez okres kilkunastu lat, utrzymujemy ten dokument, ponieważ nadal służy on jako użyteczny punkt odniesienia i dokładna reprezentacja Ethereum i jego wizji. Aby dowiedzieć się o najnowszych zmianach w Ethereum i jak wprowadzone są zmiany w protokole, zalecamy [ten przewodnik](/learn/)._ - -## Inteligentny kontrakt nowej generacji i zdecentralizowana platforma aplikacji {#a-next-generation-smart-contract-and-decentralized-application-platform} - -Rozwój Bitcoina przez Satoshi Nakamoto w 2009 roku był często chwalony jako radykalny rozwój pieniądza i waluty, będący pierwszym przykładem zasobu cyfrowego, który jednocześnie nie ma wsparcia lub [wartości](http://bitcoinmagazine.com/8640/an-exploration-of-intrinsic-value-what-it-is-why-bitcoin-doesnt-have-it-and-why-bitcoin-does-have-it/) i brak scentralizowanego emitenta lub kontrolera. Jednak kolejna - prawdopodobnie ważniejsza - część eksperymentu Bitcoin to podstawowa technologia blockchain jako narzędzie rozproszonego konsensusu i uwaga szybko zaczyna się przechodzić na ten inny aspekt Bitcoina. Często cytowane alternatywne zastosowania technologii blockchain obejmują użycie zasobów cyfrowych w blockchain do reprezentowania niestandardowych walut oraz instrumentów finansowych ([kolorowych monet](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit)), własność podstawowego urządzenia fizycznego ([smart property](https://en.bitcoin.it/wiki/Smart_Property)), aktywów niezamiennych takich jak nazwy domen ([Namecoin](http://namecoin.org)), dodatkowo jako bardziej złożone aplikacje polegające na tym, że aktywa cyfrowe są kontrolowane bezpośrednio przez element kodu, wdrażający arbitralne reguły ([inteligentnych kontraktów](http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/idea.html)) lub nawet blockchain [zdecentralizowanych autonomicznych organizacji](http://bitcoinmagazine.com/7050/bootstrapping-a-decentralized-autonomous-corporation-part-i/) (DAO). To, co zamierza zapewnić Ethereum, to blockchain z wbudowanym w pełni rozwiniętym językiem programowania Turinga, którego można użyć, by tworzyć „kontrakty”, które mogą być użyte do zakodowania dowolnej zmiany stanu funkcji, pozwalającej użytkownikom na tworzenie dowolnych z opisanych powyżej systemów, a także wiele innych, których jeszcze nie wyobrażaliśmy sobie, po prostu pisząc logikę w kilku linijkach kodu. - -## Wprowadzenie do Bitcoina i istniejących koncepcji {#introduction-to-bitcoin-and-existing-concepts} - -### Historia {#history} - -Koncepcja zdecentralizowanej waluty cyfrowej, a także alternatywnych aplikacji, takich jak rejestry nieruchomości, istnieje od dziesięcioleci. Anonimowe protokoły e-gotówki z lat 80. i 90., oparte głównie na prymitywie kryptografii znanym jako oślepienie Chaumiana, głównym założeniem było że będzie to waluta o wysokim stopniu prywatności, ale protokoły w dużej mierze zawiodły. zyskały przyczepność ze względu na ich zależność od scentralizowanego pośrednika. W 1998 r. Wei Dai's [b-money](http://www.weidai.com/bmoney.txt) stał się pierwszą propozycją wprowadzenia pomysłu tworzenia pieniędzy poprzez rozwiązywanie zadań obliczeniowych oraz zdecentralizowanego konsensusu, jednak wniosek nie zawierał szczegółowych informacji na temat tego, w jaki sposób zdecentralizowany konsensus mógłby zostać faktycznie wdrożony. W 2005 roku Hal Finney wprowadził koncepcję [nadającego się do wielokrotnego użytku dowody pracy](http://nakamotoinstitute.org/finney/rpow/), system który wykorzystuje pomysły z b-money wraz z obliczeniami Adama Backa trudne zagadki Hashcash do stworzenia koncepcji kryptowaluty, ale po raz kolejny nie spełnił ideału, opierając się na zaufanych komputerach jako zaplecza. W 2009 r. zdecentralizowana waluta została po raz pierwszy wdrożona w praktyce przez Satoshi Nakamoto, połączenie ustanowionych prymitywów do zarządzania własnością za pomocą kryptografii klucza publicznego z algorytmem konsensusu do śledzenia tego, kto jest właścicielem monet, znany jako „dowód pracy”. - -Mechanizm dowodu pracy był przełomem w przestrzeni ponieważ jednocześnie rozwiązał dwa problemy. Po pierwsze, zapewnił prosty i umiarkowanie skuteczny algorytm konsensusu, umożliwiający węzłom w sieci do wspólnego uzgodnienia zestawu kanonicznych aktualizacji do to stanu księgi Bitcoin. Po drugie, zapewnił mechanizm pozwalający na swobodne wejście do procesu konsensusu, rozwiązanie politycznego problemu decydowania o tym, kto ma wpływ na konsensus, przy czym jednocześnie zapobiega atakom sybili. Czyni to, zastępując formalną barierę dla uczestnictwa, np. wymóg rejestracji jako niepowtarzalny podmiot w określonym wykazie, z ekonomiczną barierą - waga pojedynczego węzła w procesie głosowania konsensualnego jest wprost proporcjonalna do mocy obliczeniowej, którą tworzy węzeł. Od tamego czasu zaproponowano alternatywne podejście zwane _dowodem stawki_, obliczanie wagi węzła jako proporcjonalnej do jego waluty i zasobów obliczeniowych; dyskusja nad względnymi zaletami tych dwóch podejść wykracza poza zakres niniejszego dokumentu, ale należy zauważyć, że oba podejścia mogą służyć jako szkielet kryptowaluty. - -Oto wpis na blogu od Vitalika Buterina, założyciela Ethereum, na temat [prehistorii Ethereum](https://vitalik.ca/general/2017/09/14/prehistory.html). [Tutaj](https://blog.ethereum.org/2016/02/09/cut-and-try-building-a-dream/) jest kolejny post przedstawiający więcej informacji o historii. - -### Bitcoin jako system przejścia między stanami {#bitcoin-as-a-state-transition-system} - -![Zmiana stanu Ethereum](../../../whitepaper/ethereum-state-transition.png) - -Z technicznego punktu widzenia księga kryptowalut takich jak Bitcoin może być uważana za system transformacji stanu, gdzie jest "stan" składający się ze statusu własności wszystkich istniejących bitcoinów i "funkcja transformacji stanu", która przyjmuje stan i transakcję oraz wygeneruje nowy stan, który jest rezultatem. Przykładowo w standardowym systemie bankowym stan jest bilansem, transakcja jest prośbą o przeniesienie $X z A do B, a funkcja przejścia stanu zmniejsza wartość na koncie A o $X i zwiększa wartość na koncie B o $X. Jeśli konto A ma w pierwszej kolejności mniej niż X Usd, to stan funkcja przejścia zwraca błąd. Można zatem formalnie zdefiniować: - - ZASTOSUJ(S,TX) —>> S' lub BŁĄD - -W systemie bankowym zdefiniowanym powyżej: - - Zastosuj ({ Alice: $50, Bob: $50 },"wyślij $20 z Alice do Bob") = { Alice: $30, Bob: $70 } - -Ale: - - ZASTOSUJ({ Alice: $50, Bob: $50 }:,"wyślij 70 USD od Alicji do Roberta") = BŁĄD - -"Stan" w Bitcoinach to kolekcja wszystkich monet (technicznie, "niewykorzystane wyniki transakcji" lub UTXO, które zostały wydobyte i jeszcze nie zostały wydane, z każdym UTXO o nazwie i właścicielu (określonym przez 20-bajtowy adres, który zasadniczo jest publicznym kluczem kryptograficznym[fn. 1](#notes)). Transakcja zawiera jedno lub więcej danych wejściowych, przy każdym wejściu zawierającym odniesienie do istniejącego UTXO i podpisu kryptograficznego wygenerowanego przez prywatny klucz powiązany z adresem właściciela, i jedno lub więcej wyjść z każdym wyjściem zawierającym nowe UTXO dodawane do stanu. - -Funkcja przejścia stanu `APPLY(S,TX) -> S'` może być zdefiniowana w przybliżeniu w następujący sposób: - -1. Dla każdego wejścia w `TX`: - - - Jeśli odniesienie UTXO nie jest w `S`, zwraca błąd. - - Jeśli podany podpis nie pasuje do właściciela UTXO, zwraca błąd. - -2. Jeśli suma nominałów wszystkich wejściowych UTXO jest mniejsza niż suma nominałów wszystkich wyjściowych UTXO, zwraca błąd. -3. Zwraca `S'` z usuniętymi wszystkimi wprowadzonymi wartościami UTXO i wszystkimi dodanymi wartościami UTXO. - -Pierwsza połowa pierwszego kroku uniemożliwia nadawcom transakcji wydawanie monet, które nie istnieją, druga połowa pierwszego kroku uniemożliwia nadawcom transakcji wydawanie monet innych ludzi, a drugi wymusza zachowanie wartości. Aby użyć tego do płatności, protokół jest następujący. Załóżmy, że Alice chce wysłać 11,7 BTC do pracy. Najpierw Alice będzie szukać zestawu dostępnych UTXO które posiada w sumie do co najmniej 11.7 BTC. Realistycznie rzecz biorąc, Alice nie będzie w stanie uzyskać dokładnie 11,7 BTC; powiedzmy, że najmniejsza z nich to 6+4+2=12. Następnie tworzy transakcję z tymi trzema wejściami i dwoma wyjściami. Pierwsze wejście będzie miało wartość 11.7 BTC z adresem Boba jako jego właścicielem, a drugie będzie wartością 0. BTC "change",, a właścicielem jest Alice. - -### Wydobycie {#mining} - -![Bloki Ethereum](../../../whitepaper/ethereum-blocks.png) - -Gdybyśmy mieli dostęp do godnej zaufania usługi scentralizowanej, ten system byłby błahy do wdrożenia; można je po prostu zakodować dokładnie tak, jak to opisano, za pomocą scentralizowanego dysku twardy serwera, aby śledzić stan serwera. Jednak za pomocą Bitcoina próbujemy zbudować zdecentralizowaną walutę systemu, więc będziemy musieli połączyć system przejścia stanów z system konsensusu w celu zapewnienia, że ​​wszyscy zgadzają się na kolejność transakcji. Zdecentralizowany proces konsensusu Bitcoina wymaga węzłów w sieci, aby nieustannie próbować tworzyć pakiety transakcji zwanych "blokami". Sieć ma produkować z grubsza jeden blok co dziesięć minut, z każdym blokiem zawierającym znacznik czasu, a nonce, odwołanie do (tj. hash of) poprzedniego bloku i lista wszystkich transakcji, które miały miejsce od poprzedniego bloku. Z czasem tworzy to trwały, ciągle rozwijający się "blockchain", który stale aktualizuje, aby reprezentować najnowszy stan księgi Bitcoin. - -Algorytm sprawdzający, czy blok jest prawidłowy, wyrażony w tym paradygmatze, jest następujący: - -1. Sprawdź, czy poprzedni blok odwołany przez blok istnieje i jest ważny. -2. Sprawdź, czy znacznik czasu bloku jest większy niż w poprzednim bloku[fn. 2](#notes) i niecałe 2 godziny w przyszłość -3. Sprawdź, czy dowód pracy na bloku jest ważny. -4. Niech `S[0]` będzie stanem na końcu poprzedniego bloku. -5. Załóżmy, że `TX` jest listą transakcji z `n` transakcji. Za wszystkie `i` w `0... -1`, ustaw `S[i+1] = APPLY(S[i], X[i])` Jeśli jakakolwiek aplikacja zwróci błąd, wyjdź i zwróć fałsz. -6. Zwróć true i zarejestruj `S[n]` jako stan na końcu tego bloku. - -Zasadniczo, każda transakcja w bloku musi zapewniać prawidłowy stan przejścia od stanu kanonicznego przed wykonaniem transakcji do nowego stanu. Należy zauważyć, że stan nie jest zakodowany w bloku. jest to wyłącznie abstrakcja, która ma być zapamiętana przez węzeł walidacyjny i może być (bezpiecznie) obliczona tylko dla każdego bloku przez zaczynając od stanu genezy i sekwencyjnie stosując każdą transakcję w każdym bloku. Ponadto należy zwrócić uwagę, że kolejność, w której górnik zawiera transakcje w bloku ma znaczenie; jeżeli w bloku są dwie transakcje A i B takie, że B wydaje UTXO stworzone przez A, wtedy blok będzie prawidłowy, jeśli A pojawi się przed B, ale nie w przeciwnym wypadku. - -Jednym z warunków ważności obecnych na powyższej liście, który nie jest znaleziony w innych systemach, jest wymóg „dowodu pracy”. Dokładny warunek polega na tym, że podwójny skrót SHA256 każdego bloku, traktowany jako liczba 256-bitowa, musi być mniejsza niż dynamicznie dostosowany cel, który od czasu pisania wynosi około 2187. Ma to na celu spowodowanie tworzenia bloków w sposób obliczeniowy "utwardzony", uniemożliwiając tym samym atakującym sybil retworzenie całego łańcucha bloków na ich korzyść. Ponieważ SHA256 jest zaprojektowany jako funkcja całkowicie nieprzewidywalna, jedynym sposobem na stworzenie poprawnego bloku jest po prostu próba i błąd, wielokrotne zwiększanie liczby nonce i patrząc, czy nowy skrót pasuje. - -Przy obecnym celu \~2187 sieć musi wykonać średnia z \~269 prób przed znalezieniem prawidłowego bloku; w ogólnie, cel jest rekalibrowany przez sieć co 2016 bloki, więc że średnio nowy blok jest tworzony przez jakiś węzeł w sieci co dziesięć minut. Aby zrekompensować górnikom to obliczenie pracy, górnik każdego bloku ma prawo do zawarcia transakcji dając sobie 12,5 BTC znikąd. Dodatkowo, jeśli jakakolwiek transakcja ma wyższy nominał całkowity na wejściu niż na wyjściach, różnica trafia również do górnika jako „opłata transakcyjna”. Nawiasem mówiąc, jest to jedyny mechanizm, za pomocą którego BTC są emitowane; stan genetyczny nie zawierał żadnych monet. - -Aby lepiej zrozumieć cel górnictwa, zbadajmy co dzieje się w przypadku złośliwego atakującego. Ponieważ kryptografia bazowa Bitcoina jest znana jako bezpieczna, atakujący będzie kierował do jednej części systemu Bitcoin, która nie jest chroniona przez kryptografię bezpośrednio: kolejność transakcji. Strategia atakującego jest prosta: - -1. Wyślij 100 BTC do sprzedawcy w zamian za jakiś produkt (najlepiej szybką dostawę cyfrową) -2. Poczekaj na dostawę produktu -3. Wyprodukuj inną transakcję wysyłającą te same 100 BTC do siebie -4. Staraj się przekonać sieć, że jego transakcja dla siebie to taka, która pojawiła się pierwszy. - -Po wykonaniu kroku (1) po kilku minutach jakiś górnik uwzględni transakcję w bloku, powiedzmy numer bloku 270. Po około jednej godziny, pięć kolejnych bloków zostanie dodanych do łańcucha po tym bloku, z każdym z bloków pośrednio wskazującym transakcję, a tym samym „potwierdzającą”. W tym momencie sprzedawca zaakceptuje płatności w sfinalizowanej wersji i dostarczy produkt; ponieważ zakładamy, że to dobro cyfrowe, dostawa jest natychmiastowa. Teraz atakujący tworzy kolejną transakcję wysyłającą 100 BTC do siebie. Jeśli napastnik po prostu uwolni go do środowiska naturalnego, transakcja nie zostanie przetworzona; górnicy będą próbowali uruchomić `APPLY(S, X)` i zauważą, że `TX` zużywa UTXO, który już nie jest w stanie. Zamiast tego, napastnik tworzy "widek" blockchain, rozpoczynając od wydobycia innej wersji bloku 270 wskazującej na ten sam blok 269 jako element nadrzędny, ale z nową transakcją zamiast starej. Ponieważ dane bloku są różne, wymaga to ponownego potwierdzenia pracy. Ponadto nowa wersja bloku 270 atakującego ma inny hash, tak aby oryginalne bloki od 271 do 275 nie wskazywały na nią; w ten sposób oryginalny łańcuch i nowy łańcuch atakującego są całkowicie oddzielone. Reguła jest, że w forku najdłuższy blockchain jest prawdą, i tak legalni górnicy będą pracować w łańcuchu 275, podczas gdy sam atakujący pracuje w łańcuchu 270. Aby jego blockchain stał się najdłuższy, musiałby mieć więcej mocy obliczeniowej niż pozostała część sieci połączona w celu nadrabiania zaległości (tj. "51% ataku"). - -### Drzewa Merkle {#merkle-trees} - -![SPV w Bitcoinie](../../../whitepaper/spv-bitcoin.png) - -_Po lewej: wystarczy przedstawić tylko niewielką liczbę węzłów w drzewie Merkle, aby przedstawić dowód ważności gałęzi._ - -_Prawo: każda próba zmiany dowolnej części drzewa Merkle ostatecznie doprowadzi do niespójności w górę łańcucha._ - -Ważną funkcją skalowalności Bitcoina jest to, że blok jest przechowywany w wielopoziomowej strukturze danych. "hash" bloku to w rzeczywistości tylko skrót nagłówka bloku, około 200 bajtowych danych, które zawierają znacznik czasu, non, poprzedni skrót bloku i główny skrót struktury danych zwanej drzewem Merkle przechowującym wszystkie transakcje w bloku. Drzewo Merkle jest typem drzewa binarnego, złożony z węzłów z dużą liczbą węzłów liściowych u dołu drzewa zawierających podstawowe dane, zbiór węzłów pośrednich, w których każdy węzeł jest skrótem jego dwóch podrzędnych, a w końcu pojedynczym węzłem głównym, utworzono również z hashu jego dwóch dzieci, reprezentując "góra" drzewa. Drzewo Merkle ma na celu umożliwienie dostarczenia danych w bloku w części – węzeł może pobrać tylko nagłówek bloku z jednego źródła, niewielka część drzewa odnosząca się do nich z innego źródła i nadal musi być zapewniona, że wszystkie dane są poprawne. Powodem tego działania jest to, że hashuje szerzenie się w górę: jeśli złośliwy użytkownik próbuje zamienić fałszywą transakcję na dole drzewa Merkle, ta zmiana spowoduje zmianę w węźle powyżej, a, a następnie zmianę w węźle powyżej w końcu zmienia korzenie drzewa i tym samym skrót bloku, spowodowanie, że protokół zarejestruje go jako zupełnie inny blok (prawie na pewno z niepoprawnym dowodem pracy). - -Protokół drzewa Merkle jest niewątpliwie niezbędny do zapewnienia stabilności w dłuższej perspektywie. „Pełny węzeł” w sieci Bitcoin, który przechowuje i przetwarza cały każdy blok, zajmuje od kwietnia 2014 r. około 15 GB dysku w sieci Bitcoin, i rośnie o ponad gigabajt miesięcznie. Obecnie jest to opłacalne dla niektórych komputerów stacjonarnych, a nie telefonów, a później w przyszłości tylko przedsiębiorstwa i hobbyści będą mogli wziąć w nim udział. Protokół znany jako "uproszczona weryfikacja płatności (SPV) pozwala na istnienie innej klasy węzłów, zwana "lekkie węzły", które pobierają nagłówki bloków, sprawdź dowód pracy na nagłówkach bloku, a następnie pobierz tylko "branches" związane z transakcjami, które są dla nich istotne. Pozwala to węzłom świetlnych określić ich mocną gwarancję bezpieczeństwa, jaki jest status każdej transakcji Bitcoin, i ich obecne saldo jest podczas pobierających tylko bardzo małą część całego łańcucha bloków. - -### Alternatywne aplikacje Blockchain {#alternative-blockchain-applications} - -Pomysł przejęcia podstawowej idei blockchain i zastosowania go do innych pojęć ma również długą historię. W 1998 roku pojawił się Nick Szabo z koncepcją [bezpiecznych tytułów własności z właścicielem autorytet](http://nakamotoinstitute.org/secure-property-titles/), a dokument opisujący „nowe postępy w technologii replikowanych baz danych” pozwoli na system oparty na blockchain do przechowywania rejestru osób posiada jaką ziemię, tworząc rozbudowane ramy zawierające koncepcje takie jak jako gospodarstwo rolne, zawłaszczenie i kastralny podatek gruntowy. Niestety nie był dostępny w tym czasie skuteczny system baz danych i dlatego protokół nigdy nie był wdrażany w praktyce. Jednak po 2009 roku, kiedy zdecentralizowany konsensus Bitcoina został opracowany szereg alternatywnych aplikacji, które szybko zaczęły się pojawić się. - -- **Namecoin** - stworzony w 2010 roku, [Namecoin](https://namecoin.org/) jest go najlepiej opisać jako zdecentralizowaną bazę danych rejestracji nazw. W zdecentralizowanych protokołach, takich jak Tor, Bitcoin i BitMessage, musi być jakiś sposób identyfikacji kont, aby inni ludzie mogli z nimi współdziałać, ale we wszystkich istniejących rozwiązaniach jedynym dostępnym identyfikatorem jest pseudorandom hash, taki jak `1LW79wp5ZBqaHW1jL5TCiBCrhQYtHagUWy`. Najlepiej byłoby, gdyby było w stanie posiadać konto o nazwie takiej jak "george". Jednak problem polega na tym, że jeśli jedna osoba może utworzyć konto o nazwie "george", ktoś inny może użyć tego samego procesu do rejestracji "george" również dla siebie i podszywać się pod nie. Jedynym rozwiązaniem jest pierwszy do pliku, gdzie pierwszy rejestrator zakończył się sukcesem, a drugi porażka - problem doskonale pasujący do protokołu konsensusu Bitcoin. Naamecoin jest najstarszym i najbardziej udanym wdrożeniem systemu rejestracji nazw za pomocą takiego pomysłu. -- **Kolorowe monety** - celem [kolorowych monet](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit) jest służyć jako protokół umożliwiający ludziom tworzenie własnych walut cyfrowych - lub w ważnym trywialnym przypadku waluty z jedną jednostką, tokenami cyfrowymi, na blockchainie Bitcoin. W protokole z kolorowych monet, jeden „wydaje” nową walutę publicznie przypisanie koloru do konkretnego Bitcoin UTXO i protokołu rekursywnie definiuje kolor innego UTXO tak, aby był taki sam jak kolor danych wejściowych, które wydała transakcja je tworząca (niektóre specjalne zasady obowiązują w przypadku wejść mieszanych kolorów). Pozwala użytkownikom na utrzymywanie portfeli zawierających tylko UTXO o określonym kolorze i wysyłanie ich w pobliżu podobnych do zwykłych bitcoinów, śledzenie wsteczne przez łańcuch bloków, aby określić kolor każdego UTXO, który otrzymuje. -- **Metacoiny** – ideą stojącą za metacoinem jest posiadanie protokołu który żyje na szczycie Bitcoina, używając transakcji Bitcoin do przechowywania transakcje metacoin, ale z innym przejściem stanu funkcja, `ZASTOSUJ'`. Ponieważ protokół metacoin nie może zapobiec nieprawidłowym transakcjom metacoin pojawiającym się w blockchain Bitcoina, dodawana jest reguła, że ​​jeśli `ZASTOSUJ'(S,TX)` zwraca błąd, protokół domyślnie to `ZASTOSUJ'(S,TX) = S`. Zapewnia to łatwy mechanizm tworzenia arbitralnego protokołu kryptowalutowego, potencjalnie z zaawansowanymi funkcjami, które nie mogą być zaimplementowane wewnątrz samego Bitcoina, ale przy bardzo niskich kosztach rozwoju od czasu złożoności wydobycia i tworzenia sieci są już przedmiotem protokołu Bitcoin. Metacoins zostały użyte do implementacji niektórych klas umów finansowych, rejestracji nazw i zdecentralizowanej wymiany. - -Tak więc, ogólnie rzecz biorąc, istnieją dwa podejścia do budowania protokołu konsensusu: budowanie niezależnej sieci, i zbudowanie protokołu na górze Bitcoin. Trudno jest wdrożyć pierwsze podejście, choć w przypadku aplikacji takich jak Namecoin; każda indywidualna implementacja wymaga bootstrap niezależnego łańcucha bloków, oraz budowy i testowanie wszystkich niezbędnych zmian stanu i kodeksu tworzenia sieci. Dodatkowo, przewidujemy, że zestaw aplikacji dla zdecentralizowanej technologii konsensualnej będzie przebiegał zgodnie z rozdziałem prawa w którym zdecydowana większość aplikacji byłaby zbyt mała, aby uzasadnić ich własny blockchain, i zwracamy uwagę, że istnieją duże klasy zdecentralizowanych aplikacji, w szczególności autonomiczne organizacje, które muszą ze sobą współpracować. - -Z drugiej strony podejście oparte na Bitcoinach ma wadę, że nie dziedziczy uproszczonych funkcji weryfikacji płatności Bitcoina. SPV działa dla Bitcoina, ponieważ może użyć głębokości blockchain jako proxy dla ważności; w pewnym momencie, gdy przodkowie transakcji pójdą wystarczająco daleko wstecz, można bezpiecznie powiedzieć, że byli oni legalnie częścią stanu. Z drugiej strony, metaprotokoły oparte na technologii blockchain nie można zmusić blockchain do nieuwzględniania transakcji, które nie są ważne w kontekście ich własnych protokołów. Stąd w pełni bezpieczna implementacja meta-protokołu SPV musiałaby zeskanować wstecz na początek blockchaina Bitcoin, aby ustalić, czy określone transakcje są prawidłowe. Obecnie wszystkie "lekkie" implementacje meta-protokołów bazujących na Bitcoinach opierają się na zaufanym serwerze, aby dostarczyć dane, Prawdopodobnie wysoce nieoptymalny wynik, zwłaszcza gdy jednym z podstawowych celów kryptowaluty jest wyeliminowanie konieczności zaufania. - -### Skrypty {#scripting} - -Nawet bez żadnych rozszerzeń, protokół Bitcoin w rzeczywistości ułatwia słabą wersję pojęcia "inteligentnych umów". UTXO in Bitcoin może być własnością nie tylko klucza publicznego; ale także bardziej skomplikowanym skryptem wyrażonym w prostym języku programowania. W tym paradygmacie wydatki transakcyjne, które UTXO musi podać dane, które spełniają wymagania skryptu. Nawet podstawowy mechanizm własności klucza publicznego jest wdrażany za pomocą skryptu: skrypt przyjmuje eliptyczny podpis krzywej jako dane wejściowe, weryfikuje ją w odniesieniu do transakcji i adresu będącego właścicielem UTXO i zwraca 1 jeśli weryfikacja jest udana i 0 w innym przypadku. Inne, bardziej skomplikowane skrypty istnieją dla różnych dodatkowych przypadków użycia. Na przykład można zbudować skrypt wymagający podpisów z dwóch z trzech wybranych kluczy prywatnych do walidacji ("multisig"), konfiguracja przydatna dla kont korporacyjnych, zabezpiecz konta oszczędnościowe i niektóre sytuacje powiernika. Skrypty mogą również być używane do płacenia nagród za rozwiązania problemów obliczeniowych i jeden może nawet skonstruować skrypt, który mówi coś w stylu „ten Bitcoin UTXO jest twój, jeśli możesz dostarczyć dowód SPV, że wysłałeś Dogecoin transakcja tego nominału do mnie”, zasadniczo pozwalająca na zdecentralizowaną wymianę między kryptowalutami. - -Jednak język skryptu zaimplementowany w Bitcoinach ma kilka ważnych ograniczeń: - -- **Brak kompletności w sensie Turinga ** - to znaczy, że choć istnieje duży podzbiór obliczeń, które obsługuje język skryptowy Bitcoin, nie obsługuje on jednak wszystkiego. Główna kategoria, której brakuje, to pętle. Wykonuje się to w celu uniknięcia nieskończonych pętli podczas weryfikacji transakcji; teoretycznie jest to przeszkoda dla programistów skryptów, ponieważ dowolna pętla może być symulowana przez po prostu wielokrotne powtarzanie kodu bazowego z instrukcją, ale prowadzi to do bardzo nieefektywnych w przestrzeni skryptów. Na przykład implementacja alternatywnego algorytmu podpisu eliptycznego prawdopodobnie wymagałaby 256 powtarzanych mnożeń zaokrągla wszystkie osobno zawarte w kodzie. -- **Ślepota na wartości** - nie ma sposobu, aby skrypt UTXO zapewniał szczegółową kontrolę kwoty, która może zostać pobrana. Na przykład jednym potężnym przypadkiem wykorzystania kontraktu wyroczni byłby kontrakt zabezpieczający, gdzie A i B umieściły BTC o wartości 1000 USD i po 30 dniach, skrypt wysyła BTC o wartości 1000 USD do A, a resztę do B. Wymagałoby to wyroczni do określenia wartości 1 BTC w USD, ale nawet wtedy jest to ogromna poprawa pod względem zaufania i potrzeba infrastruktury nad w pełni scentralizowanymi rozwiązaniami, które są obecnie dostępne. Jednakże, ponieważ UTXO są typu "wszystko albo nic", jedynym sposobem, aby to osiągnąć jest bardzo nieefektywny hacking polegający na posiadaniu wielu UTXO o różnych nominałach (np. jedno UTXO o wartości 2k na każde k do 30) i posiadaniu O wyboru, które UTXO wysłać do A, a które do B. -- **Brak stanu** – [UTXO można wydać lub zostawić niewykorzystane](https://bitcoin.org/en/glossary/unspent-transaction-output); nie ma możliwości na wieloetapowe kontrakty czy skrypty, które utrzymują jakikolwiek inny wewnętrzny stan poza tym. To sprawia, że trudno jest tworzyć wieloetapowe kontrakty opcji, zdecentralizowane oferty wymiany lub dwuetapowe protokoły zobowiązań kryptograficznych (niezbędne do zabezpieczenia pól obliczeniowych). Oznacza to również, że UTXO może być używany tylko do: buduj proste, jednorazowe kontrakty i nie bardziej złożone „stanowe” kontrakty, takie jak zdecentralizowane organizacje i sprawia, meta-protokoły trudne do wdrożenia. Stan binarny w połączeniu z ślepotą wartości oznacza również, że inna ważna aplikacja, limity wypłaty jest niemożliwa. -- **Blockchain-blindness** - UTXO są ślepe na dane blockchain, takie jak nonce znacznik czasu i poprzedni hash bloku. To bardzo ogranicza zastosowania w grach i kilku innych kategoriach, przez pozbawienie języka skryptowego potencjalnie cennego źródła losowości. - -Widzimy zatem trzy podejścia do budowania zaawansowanych aplikacji bazujących na kryptowalucie: budowanie nowego blockchaina, używanie skryptów bazujących na Bitcoin i budowanie metaprotokołu opartego na Bitcoin. Budowanie nowego blockchainu pozwala na nieograniczoną swobodę w budowaniu zestawu funkcji, ale kosztem czasu rozwoju, wysiłku przy uruchamianiu i bezpieczeństwa. Korzystanie ze skryptów jest łatwe do wdrożenia i standaryzacji, ale jest bardzo ograniczone w swoich możliwościach, a metaprotokoły, choć łatwe, cierpią z powodu błędów w skalowalności. Dzięki Ethereum zamierzamy zbudować alternatywny framework, który zapewnia jeszcze większe korzyści w łatwości rozwoju, jak również jak również jeszcze silniejsze właściwości lekkiego klienta, a jednocześnie pozwala aplikacjom na współdzielenie środowiska ekonomicznego i bezpieczeństwa blockchainu. - -## Ethereum {#ethereum} - -Celem Ethereum jest stworzenie alternatywnego protokołu do budowy zdecentralizowanych aplikacji, zapewnienie innego zestawu kompromisów, które uważamy za bardzo przydatne dla dużej klasy zdecentralizowanych aplikacji, ze szczególnym naciskiem na sytuacje, w których szybki czas rozwoju, bezpieczeństwo dla małych i rzadkich zastosowań i zdolność różnych aplikacji do bardzo efektywnej interakcji jest istotna. Ethereum robi to budując to, co zasadniczo jest najlepszą abstrakcyjną warstwą podstawową: blockchain z wbudowanym językiem programowania, umożliwienie każdemu pisania inteligentnych kontraktów i zdecentralizowanych aplikacji, w których mogą tworzyć własne arbitralne zasady własności, formaty transakcji i funkcje przemiany stanu. Wersję „gołej kości” Namecoina można zapisać w dwóch linijkach kodu, a inne protokoły, takie jak waluty i systemy reputacji, mogą być zbudowany w czasie poniżej dwudziestu lat. Inteligentne kontrakty, „skrzynki” kryptograficzne, które zawierają wartość i odblokowują je tylko wtedy, gdy spełnione są określone warunki, można również budować na platformie z znacznie większą mocą niż oferowaną przez skryptowanie Bitcoina z powodu dodatkowych potęg Trójkompletność, świadomość wartości, świadomość blockchain-a i stan. - -### Filozofia {#philosophy} - -Ethereum ma być zaprojektowane zgodnie z następującymi zasadami: - -1. **Prostota**: protokół Ethereum powinien być jak najprostszy. Nawet kosztem mniejszej efektywności przechowywania danych lub czasu [fd. 3](#notes) Średni programista powinien być w stanie śledzić i implementować całą specyfikację,[fn. 4](#notes) tak, aby w pełni wykorzystać bezprecedensowy potencjał demokratyzacji, który kryptowaluta wnosi i rozwija wizję Ethereum jako protokół, który jest otwarty dla wszystkich. Żadna optymalizacja która zwiększa złożoność nie powinna być uwzględniona, chyba że optymalizacja ta zapewnia znaczną korzyść. -2. **Uniwersalność**: zasadnicza część filozofii projektowej Ethereum jest taka, że Ethereum nie posiada "funkcji".[fn. 5](#notes) Zamiast tego Ethereum zapewnia wewnętrzny Skrypt Turing-complete język, który programista może użyć do budowy inteligentnej umowy lub typu transakcji, które mogą być zdefiniowane matematycznie. Chcesz wynaleźć własną finansową pochodną? Z Ethereum, możesz. Chcesz stworzyć własną walutę? Skonfiguruj jako kontrakt Ethereum. Chcesz skonfigurować całą skalę Daemona lub Skynet? Być może będziesz potrzebować kilku tysiący powiązanych umów i pamiętaj, aby je nakarmić hojnie, ale nic Cię nie powstrzymuje z Ethereum i Twoimi opuszkami palców. -3. **Modularność**: części protokołu Ethereum powinny być zaprojektowane tak, aby były tak modułowe i możliwe do oddzielenia. W trakcie rozwoju, naszym celem jest stworzenie programu, w którym gdybyś miał wykonać małą modyfikację protokołu w jednym miejscu, stos aplikacji nadal funkcjonowałby bez żadnych dalszych modyfikacji. Innowacje takie jak Ethash (patrz [Żółty papier załącznik](https://ethereum.github.io/yellowpaper/paper.pdf#appendix.J) lub [artykuł wiki](https://github.com/ethereum/wiki/wiki/Ethash)), zmodyfikowanych drzew Patricia ([Żółty papier](https://ethereum.github.io/yellowpaper/paper.pdf#appendix.D), [wiki](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-Patricia-Tree)) i RLP ([YP](https://ethereum.github.io/yellowpaper/paper.pdf#appendix.B) [wiki](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-RLP)) powinien być i jest wdrożony jako oddzielna, funkcjonalnie wypełniona biblioteka. Jest to takie, że nawet jeśli są używane w Ethereum, nawet jeśli Ethereum nie wymaga pewnych funkcji, takie funkcje są nadal przydatne również w innych protokołach. Rozwój Ethereum powinien być maksymalnie wykonany, aby przynieść korzyści całemu ekosystemowi kryptowalut, a nie tylko samemu. -4. **Zdolność**: szczegóły protokołu Ethereum nie są ustawione w kamieniach. Chociaż będziemy bardzo roztropni w zakresie wprowadzania zmian do konstrukcji wysokiego szczebla, na przykład z [odcięciem mapy drogowej](https://ethresear.ch/t/sharding-phase-1-spec/1407/), abstrakcyjnym wykonaniem, przy czym tylko dostępność danych zapisana jest w konsensusie. Testy obliczeniowe później w procesie opracowywania mogą prowadzić do odkrycia, że niektóre modyfikacje, np. do architektury protokołu lub do maszyny wirtualnej Ethereum (EVM) znacząco zwiększą skalowalność lub bezpieczeństwo. Jeśli znajdziemy takie możliwości, wykorzystamy je. -5. **Niedyskryminacja** i **niecenzura**: protokół powinien nie próbować aktywnie ograniczać lub zapobiegać określonym kategoriom stosowania. Wszystkie mechanizmy regulacyjne zawarte w protokole powinny być zaprojektowane w taki sposób, aby bezpośrednio regulować szkody i nie próbować sprzeciwiać się określonym niepożądanym aplikacjom. Programista może nawet uruchomić nieskończoną pętlę na szczycie Ethereum tak długo, jak długo będą chciały utrzymać płacenie opłaty transakcyjnej. - -### Konta Ethereum {#ethereum-accounts} - -W Ethereum stan składa się z obiektów zwanych "kontami", z każdym kontem o 20-bajtowym adresie i przejściach stanu są bezpośrednie transfery wartości i informacji pomiędzy kontami. Konta Ethereum mają cztery pola: - -- **nonce**, licznik używany do upewnienia się, że każda transakcja może być przetworzona tylko raz -- Bieżące saldo **etheru konta** -- **kod umowy konta**, jeśli jest obecny -- Pamięć **konta** (pusta domyślnie) - -„Ether” jest główną wewnętrzną kryptowalutą Ethereum używaną do uiszczania opłat transakcyjnych. Ogólnie rzecz biorąc, istnieją dwa rodzaje kont: **rachunki zewnętrzne**, kontrolowane przez klucze prywatne oraz **konta kont kontraktowych**, kontrolowane przez ich kod kontraktu. Zewnętrznie posiadane konto nie posiada kodu i można wysyłać wiadomości z zewnętrznego konta poprzez tworzenie i podpisywanie transakcji; w koncie, za każdym razem, gdy konto kontraktowe otrzymuje komunikat o kodzie aktywuje, pozwala na odczytywanie i zapisywanie do pamięci wewnętrznej i wysyłanie innych wiadomości lub tworzenie kontraktów z kolei. - -Należy zauważyć, że „kontraktów” w Ethereum nie należy postrzegać jako czegoś, co powinno być „spełniane” lub „przestrzegane”; są raczej takie jak „czynniki autonomiczne”, które żyją w środowisku Ethereum execution, zawsze wykonując określony fragment kodu, gdy jest "poked" przez wiadomość lub transakcję, i sprawowanie bezpośredniej kontroli nad własnym eterem oraz ich własnym sklepem kluczowy/wartości w celu śledzenia trwałych zmiennych. - -### Wiadomości i Transakcje {#messages-and-transactions} - -Termin "transakcja" jest używany w Ethereum do odwoływania się do podpisanego pakietu danych, który przechowuje wiadomość, która ma być wysłana z zewnętrznego konta. Transakcje zawierają: - -- Odbiorca wiadomości -- Podpis identyfikujący nadawcę -- Ilość etheru do przeniesienia od nadawcy do odbiorcy -- Opcjonalne pole danych -- Wartość `STARTGAS` przedstawiająca maksymalną liczbę kroków do wykonania transakcji -- Wartość `GASPRICE`, przedstawiająca opłatę, którą nadawca płaci za krok obliczeniowy - -Pierwsze trzy pola to pola standardowe w każdej kryptowalucie. Pole danych nie posiada domyślnie żadnej funkcji, ale maszyna wirtualna posiada opcode, które kontrakt może wykorzystać do uzyskania dostępu do danych; jako przykład użyj, jeśli kontrakt działa jako usługa rejestracyjna domeny blockchain, następnie może zinterpretować dane przekazane do niego jako zawierające dwa "pola", pierwsze pole jest domeną do rejestracji, a drugie pole jest adresem IP do rejestracji. Umowa odczytałaby te wartości z danych wiadomości i odpowiednio umieściłaby je w pamięci. - -Pola `STARTGAS` i `GASPRICE` są kluczowe dla antynegowania modelu serwisowego. Aby zapobiec przypadkowemu lub wrogim nieskończonym pętlom lub innym stratom obliczeniowym w kodzie, każda transakcja jest wymagana, aby ustawić limit do ile kroków obliczeniowych wykonania kodu, które może użyć. Podstawową jednostką obliczeniową jest „gaz”; Zazwyczaj krok obliczeniowy kosztuje 1 gaz, ale niektóre operacje kosztują więcej gazu, ponieważ są bardziej kosztowne, lub zwiększyć ilość danych, które muszą być przechowywane jako część stanu. Za każdy bajt danych transakcji pobiera się również opłatę w wysokości 5 gazów. Zamiarem systemu opłat jest wymaganie od atakującego zapłaty proporcjonalnie za każdy zasób, który konsumowają, w tym obliczenia, szerokość pasma i przechowywanie; stąd jakakolwiek transakcja, która powoduje, że sieć zużywająca większą ilość dowolnego z tych zasobów musi mieć opłatę gazową w przybliżeniu proporcjonalną do przyrostu ilości. - -### Wiadomości {#messages} - -Umowy mają możliwość wysyłania „wiadomości” do innych umów. Wiadomości są obiektami wirtualnymi, które nigdy nie są serializowane i istnieją tylko w środowisku wykonania Ethereum. Wiadomość zawiera: - -- Nadawca wiadomości (niejawny) -- Odbiorca wiadomości -- Ilość etheru do przeniesienia wraz z wiadomością -- Opcjonalne pole danych -- Wartość `STARTGAS` - -Wiadomość jest zasadniczo jak transakcja, z wyjątkiem tego, że jest generowana przez kontrakt, a nie przez podmiot zewnętrzny. Wiadomość jest generowana, gdy kontrakt aktualnie wykonujący kod wykonuje kod `CALL` opcode, który tworzy i wykonuje wiadomość. Podobnie jak transakcja, wiadomość prowadzi do konta odbiorcy z jego kodem. Tak więc kontrakty mogą mieć relacje z innymi kontraktami w dokładnie taki sam sposób, jak podmioty zewnętrzne. - -Zauważ, że przydział gazu przydzielony przez transakcję lub umowę ma zastosowanie do całkowitej ilości gazu zużywanego przez tę transakcję i do wszystkich zleceń. Na przykład, jeśli zewnętrzny podmiot A wysyła transakcję do B z 1000 gazów, i B zużywa 600 gazu przed wysłaniem wiadomości do C, a wewnętrzna realizacja C zużywa 300 gazu przed powrotem, następnie B może wydać kolejne 100 gazu przed wyczerpaniem gazu. - -### Funkcja Przejścia Stanów Ethereum {#ethereum-state-transition-function} - -![Zmiana stanu etheru](../../../whitepaper/ether-state-transition.png) - -Funkcja zmiany stanu Ethereum, `ZASTOSUJ-(S,TX) -> S'` może być zdefiniowane w następujący sposób: - -1. Sprawdź, czy transakcja jest dobrze sformułowana (tj. ma prawą liczbę wartości), podpis jest prawidłowy, a nonce odpowiada nonce na koncie nadawcy. Jeśli nie, zwracaj błąd. -2. Oblicz opłatę transakcyjną jako `STARTGAS * GASPRICE`, i ustaw adres wysyłający na podstawie podpisu. Odejmij opłatę z salda konta nadawcy i pomnóż wartość jednorazową nadawcy. Jeśli nie ma wystarczającego salda do wydania, zwróć błąd. -3. Inicjalizacja `GAS = STARTGAS`, i odebrać pewną ilość gazu na bajt, aby zapłacić za bajty w transakcji. -4. Przenieś wartość transakcji z konta nadawcy na konto odbiorcze. Jeśli konto odbierające jeszcze nie istnieje, utwórz je. Jeśli konto otrzymujące jest umową, uruchom kod kontraktu albo w celu dokończenia lub do czasu wygaśnięcia wykonania gazu. -5. Jeśli transfer wartości nie powiódł się, ponieważ nadawca nie miał wystarczającej ilości pieniędzy lub podczas wykonanie kodu skończył się gaz, przywróć wszystkie zmiany stanu z wyjątkiem płatności opłat i dodać opłaty do konta kopalni. -6. W przeciwnym razie zwrot opłat za cały pozostały gaz nadawcy i wyślij opłaty zapłacone za gaz zużywany górnikowi. - -Na przykład należy przyjąć, że kod kontraktu jest: - - if !self.storage[calldataload(0)]: - self.storage[calldataload(0)] = calldataload(32) - -Zauważ, że w rzeczywistości kod umowy jest zapisany w kodzie EVM o niskim poziomie; ten przykład jest napisany w Serpent, jednym z naszych języków wysokiego szczebla, dla jasności i może być skompilowany do kodu EVM. Załóżmy, że magazyn umowy zaczyna się od pustego, a transakcja jest wysyłana o wartości 10 eterów, 2000 gazu, 0. 01 cena gazu dla eteru i 64 bajty danych, z bajtami 0-31 reprezentującymi liczbę `2` i bajty 32-63 reprezentujące ciąg `CHARLIE`.[fn. 6](#notes) Proces dla funkcji przejścia stanu w tym przypadku jest następujący: - -1. Sprawdź, czy transakcja jest prawidłowa i dobrze sformowana. -2. Sprawdź, czy nadawca transakcji ma co najmniej 2000 \* 0.001 = 2 każdego z nich. Jeśli tak, wówczas odjąć 2 ether od konta nadawcy. -3. Rozpoczęcie gazu = 2000; zakładając, że transakcja ma 170 bajtów a opłata bajtowa wynosi 5, odjąć 850 tak, że pozostało 1150 gazów. -4. Odejmij więcej 10 etherów od konta nadawcy i dodaj je do konta kontraktu. -5. Uruchom kod. W tym przypadku jest to proste: sprawdza, czy użyto magazynu w kontrakcie `2`, zauważa, że nie jest, i, aby ustawić pamięć w indeksie `2` na wartość `CHARLIE`. Załóżmy, że to zajmuje 187 gazu, więc pozostała ilość gazu wynosi 1150 - 187 = 963 -6. Dodaj 963 \* 0.001 = 0.963 ether z powrotem na konto nadawcy i zwróć otrzymany stan. - -W przypadku braku kontraktu na dzień otrzymania transakcji, następnie całkowita opłata transakcyjna byłaby po prostu równa dostarczonej `GASPRICE` pomnożonej przez długość transakcji wyrażonej w bajtach, i dane przesyłane wraz z transakcją byłyby nieistotne. - -Zauważ, że wiadomości działają równorzędnie do transakcji pod względem powracają: jeśli wykonanie wiadomości kończy się gazem, następnie tego komunikatu wykonania i wszystkich innych egzekucji wyzwalanych przez to wykonanie, cofnięcie,, ale wykonania nadrzędne nie muszą być przywrócone. Oznacza to, że "bezpiecznie" kontraktu na inną umowę, tak jak w przypadku połączeń B z gazem G, wówczas realizacja A jest gwarantowana utratą co najwyżej gazu G. Na koniec, weź pod uwagę, że istnieje opcode, `STWÓRZ`, który tworzy umowę; jego mechaniki wykonania są na ogół podobne do `CALL`, z wyjątkiem, że wyjście wykonania określa kod nowo utworzonej umowy. - -### Wykonanie kodu {#code-execution} - -Kod w kontraktach Ethereum jest napisany w niskopoziomowym, opartym na stosie języku kodowym bytecode, zwanym "Ethereum virtual machincode" lub "EVM code". Kod składa się z serii bajtów, gdzie każdy bajt reprezentuje operację. Zasadniczo wykonanie kodu jest nieskończoną pętlą polegającą na wielokrotnym przeprowadzaniu operacji w bieżącym liczniku programu (co rozpoczyna się od zera), a następnie zwiększaniu licznika programu o jeden, do momentu osiągnięcia końca kodu lub wykrycia błędu lub `STOP` lub `RETURN`. Operacje mają dostęp do trzech typów przestrzeni do przechowywania danych: - -- **stos**, kontener ostatniej w pierwszej kolejności, do którego wartości można wcisnąć i wyciąć -- **Pamięć**, nieskończenie rozszerzalna tablica bajtów -- Długoterminowa pamięć **kontraktu**, sklep klucz/wartość. W odróżnieniu od stosu i pamięci, które resetują się po zakończeniu obliczeń, pamięć utrzymuje się przez długi czas. - -Kod może również uzyskać dostęp do wartości, nadawcy i danych przychodzących wiadomości, jak również dane nagłówka bloku, a kod może również zwracać bajt tablicy danych jako dane wyjściowe. - -Formalny model realizacji kodu EVM jest zaskakująco prosty. Podczas gdy maszyna wirtualna Ethereum jest uruchomiona, jej pełny stan obliczeniowy może być zdefiniowany przez kropkę `(block_state, transakcja, wiadomość, kod, pamięć, stack, pc, gaz)`, gdzie `block_state` jest stanem globalnym zawierającym wszystkie konta, także zawiera salda i pamięć. Na początku każdej rundy egzekucji bieżąca instrukcja jest odnajdywana przez pobranie `pc`-tego bajtu `code` (lub 0, jeśli `pc >= len(kod)`), a każda instrukcja ma własną definicję pod względem tego, jak wpływa na krotkę. Na przykład `ADD` wyświetla dwa elementy poza stos i pycha ich sumę, zmniejsza `gaz` o 1 i przyrosty `pc` o 1, i `PRZECHOWYWANIE` wyświetla dwa najlepsze elementy poza stosem i wstawia drugą pozycję do magazynu kontraktu w indeksie określonym przez pierwszą pozycję. Chociaż istnieje wiele sposobów optymalizacji Ethereum wykonywania maszyny wirtualnej poprzez kompilację just-in-time podstawowa implementacja Ethereum może być wykonana za kilkaset linii kodu. - -### Łańcuch bloków i górnictwo {#blockchain-and-mining} - -![Schemat blokowy zastosowania Ethereum](../../../whitepaper/ethereum-apply-block-diagram.png) - -Blockchain Ethereum jest pod wieloma względami podobny do łańcucha bloków Bitcoin, choć ma pewne różnice. Główna różnica między Ethereum i Bitcoinem w odniesieniu do architektury blockchain polega na tym, że w odróżnieniu od Bitcoin(który zawiera tylko kopię listy transakcji), Bloki Ethereum zawierają kopię zarówno listy transakcji, jak i najnowszego stanu. Oprócz tego, dwie inne wartości, liczba bloku i trudności, są również przechowywane w bloku. Podstawowy blok algorytm walidacji w Ethereum jest następujący: - -1. Sprawdź, czy poprzedni blok odwołany przez blok istnieje i jest ważny. -2. Sprawdź, czy znacznik czasu bloku jest większy niż w poprzedni blok i mniej niż 15 minut w przyszłości -3. Sprawdź, czy numer bloku, poziom trudności, korzeń transakcji, wujek limit root i gazu (różne koncepcje specyficzne dla Ethereum niskiego poziomu) są ważne. -4. Sprawdź, czy dowód pracy na bloku jest ważny. -5. Niech `S[0]` będzie stanem na końcu poprzedniego bloku. -6. Załóżmy, że `TX` jest listą transakcji z `n` transakcji. Dla wszystkich `i` w `0...n-1`, ustaw `S[i+1] = APPLY(S[i],TX[i])`. Jeśli którakolwiek z aplikacji zwraca błąd, lub jeśli całkowity gaz zużywany w bloku w górę aż do momentu, gdy ten punkt przekroczy `GASLIMIT`, zwróć błąd. -7. Pozwól `S_FINAL` być `S[n]`, ale dodaj nagrodę za blok zapłaconą górnikowi. -8. Sprawdź, czy pierwiastek drzewa Merkle stanu `S_FINAL` jest równy końcowemu pierwiastkowi stanu podanemu w nagłówku bloku. Jeśli tak, blok jest ważny; w przeciwnym razie jest nieprawidłowy. - -Podejście na pierwszy rzut oka może wydawać się wysoce nieskuteczne, ponieważ musi przechowywać cały stan z każdym blokiem, ale w rzeczywistości wydajność powinna być porównywalna do wydajności Bitcoin. Powodem jest to, że stan jest przechowywany w strukturze drzewa, i po każdym bloku tylko mała część drzewa musi zostać zmieniona. Tak więc ogólnie pomiędzy dwoma sąsiadującymi blokami zdecydowana większość drzewa powinna być taka sama, i dlatego dane mogą być przechowywane raz i odsyłane dwukrotnie za pomocą wskaźników (tj. hashy subdrzewa). Aby to osiągnąć, użyto specjalnego rodzaju drzewa znanego jako "drzewo Patricia". łącznie z modyfikacją pojęcia drzewa Merkle, która pozwala na wstawienie węzłów i usunięcie, a nie tylko na sprawne zmiany. Dodatkowo, ponieważ wszystkie informacje o stanie są częścią ostatniego bloku, nie ma potrzeby przechowywania całej historii blockchain - strategii, która jeśli może być zastosowany do Bitcoina, można obliczyć aby zapewnić 5-20x oszczędności w przestrzeni. - -Często zadawane pytanie brzmi: "gdzie" kod kontraktu w kategoriach fizycznego sprzętu. Ma to prostą odpowiedź: proces wykonywania kodu kontraktu jest częścią definicji funkcji przejścia stanu, który jest częścią algorytmu walidacji bloku, więc jeśli transakcja jest dodana do bloku `B` kod wygenerowany przez tę transakcję zostanie wykonany przez wszystkie węzły, teraz i w przyszłości, ten pobierz i zweryfikuj blok `B`. - -## Aplikacje {#applications} - -Ogólnie rzecz biorąc, oprócz Ethereum istnieją trzy rodzaje zastosowań. Pierwsza kategoria to aplikacje finansowe, dające użytkownikom potężniejsze sposoby zarządzania i zawierania umów przy użyciu pieniędzy. Obejmuje to podzlecenia, pochodne instrumenty finansowe, kontrakty zabezpieczające, portfele oszczędnościowe, testamenty, a ostatecznie nawet niektóre klasy umów o pracę. Druga kategoria to aplikacje półfinansowe, w których zaangażowane są pieniądze, ale istnieje również ciężka strona niepieniężna tego, co się dzieje; Doskonałym przykładem jest samowymuszanie odbić się na rozwiązaniach problemów obliczeniowych. Wreszcie istnieją takie aplikacje, jak głosowanie online i zdecentralizowane zarządzanie które w ogóle nie są finansowe. - -### Systemy tokenów {#token-systems} - -Systemy tokenów blockchain mają wiele zastosowań, począwszy od podwalut reprezentujących aktywa takie jak USD lub złoto po firmę, indywidualne tokeny reprezentujące inteligentną nieruchomość, zabezpiecz nieprzerobione kupony, a nawet systemy tokenów bez powiązań z konwencjonalną wartością w ogóle używane jako systemy motywacyjne. Systemy tokenów są zaskakująco łatwe do wdrożenia w Ethereum. Kluczowym punktem do jest to, że waluta lub system tokenów, zasadniczo jest bazą danych z jedną operacją: odjąć X jednostki od A i dać X jednostkom B, z przepisem, że (1) A posiadała co najmniej X jednostek przed transakcją oraz (2) transakcja jest zatwierdzona przez A. Wszystko, czego potrzebuje do wdrożenia systemu tokenów to wdrożenie tej logiki do umowy. - -Podstawowy kod do implementacji systemu tokenów w Serpent wygląda tak: następuje: - - def wyślij (do, wartość): - jeśli siebie. torage[msg.sender] >= wartość: - siebie. torage[msg.sender] = self.storage[msg.sender] - wartość - samo. torage[to] = samodzielny.magazyn[to] + wartość - -Jest to zasadniczo dosłowne wdrożenie „systemu bankowego” funkcji transformacji stanu, opisanej powyżej w niniejszym dokumencie. Kilka dodatkowych linii kodu, aby zapewnić początkowy etap dystrybucji jednostek waluty w pierwszym miejscu i kilka innych skrzynek krawędziowych, i idealnie funkcja zostałaby dodana, aby umożliwić innym umowom zapytanie o saldo adresu. Ale to wszystko jest w porządku. Teoretycznie Systemy tokenów ethereum, działające jako subwaluty, mogą potencjalnie zawierać inną ważną funkcję, której w łańcuchu meta-waluty bazujące na Bitcoinach brakuje: możliwość uiszczania opłat za transakcje bezpośrednio w tej walucie. Sposób, w jaki miałaby być wdrożony, jest taki, że kontrakt utrzymałby saldo eteru, z którym zwrócił ether użyty do uiszczenia opłat na rzecz nadawcy, i napełniłby saldo pobierając wewnętrzne jednostki walutowe, które pobiera, i odsprzedając je na ciągłej aukcji. Użytkownicy musieliby zatem "aktywować" swoje konta z eterem, ale kiedy ether będzie tam taki, będzie mógł zostać ponownie użyty, ponieważ kontrakt będzie go zwracał za każdym razem. - -### Instrumenty pochodne i waluty o stabilnej wartości {#financial-derivatives-and-stable-value-currencies} - -Finansowe instrumenty pochodne są najczęstszym zastosowaniem „inteligentnego kontraktu ” i jednym z najprostszych do wdrożenia w kodzie. Głównym wyzwaniem dla realizacji umów finansowych jest to, że większość z nich wymaga odniesienia do zewnętrznego wskaźnika ceny; Na przykład bardzo pożądane zastosowanie jest inteligentnym kontraktem, który zabezpiecza się przed zmiennością eteru (lub innej kryptowaluty) w stosunku do amerykańskiego dolara, ale wykonanie tego wymaga od kontraktu wiedzieć, jaka jest wartość ETH/USD. Najprostszym sposobem na to jest kontrakt "kanał danych" utrzymywany przez konkretną stronę (np. NASDAQ) zaprojektowany tak, aby strona miała możliwość aktualizowania kontraktu w razie potrzeby, i udostępnienie interfejsu umożliwiającego innym kontraktom wysłanie wiadomości do tego kontraktu i odzyskanie odpowiedzi podającej cenę. - -Biorąc pod uwagę ten krytyczny składnik, kontrakt hedgingowy wyglądałby tak: następuje: - -1. Poczekaj, aż strona A wprowadzi 1000 etherów. -2. Poczekaj, aż strona B wprowadzi 1000 etherów. -3. Nagrywaj wartość USD 1000 eterów, obliczoną przez zapytanie o kontraktu na kanał w pamięci, powiedzmy, że to jest $x. -4. Po 30 dniach, zezwól A lub B na "reaktywację" kontraktu, aby wysłać $x wartość etheru (obliczoną przez ponowne zapytanie kontraktu w celu uzyskania nowej ceny) do A i reszty do B. - -Taka umowa miałaby znaczny potencjał w handlu kryptowalutami. Jeden z głównych wymienionych problemów dotyczących kryptowaluty jest fakt, że jest lotny; chociaż wielu użytkowników i sprzedawców może chcieć bezpieczeństwa i wygoda obchodzenia się z zasobami kryptograficznymi, mogą nie chcieć zmierzyć się z perspektywą utraty 23% wartości swoich środków w jednym dzień. Do tej pory najczęściej proponowanym rozwiązaniem było aktywów zabezpieczonych emitentami; emitent tworzy subwalutę, w której ma prawo do emisji i cofania jednostek uczestnictwa, i podaj jedną jednostkę waluty każdemu, kto dostarcza ją (offline) jedną jednostkę określonego składnika aktywów bazowych (np. Złoto, USD). Emitent obiecuje dostarczyć jedną jednostkę bazowego składnika aktywów każdemu, kto odsyła z powrotem jedną jednostkę kryptowaluty. Mechanizm ten pozwala każdemu niekryptograficznemu aktywowi "przekształcić go w aktywa kryptograficzne, pod warunkiem że emitent może być zaufany. - -W praktyce jednak emitenci nie zawsze są wiarygodni, a w niektórych przypadkach infrastruktura bankowa jest zbyt słaba lub zbyt wroga, aby takie usługi mogły istnieć. Alternatywnym rozwiązaniem są finansowe instrumenty pochodne. Tutaj, zamiast jednego emitenta dostarczającego środki do wykonania kopii zapasowej, zdecentralizowany rynek spekulantów, zakładający cenę kryptograficznego referencyjnego składnika aktywów (np. ETH) przejdzie do przodu, odgrywając tę rolę. W odróżnieniu od emitentów, spekulanci nie mają możliwości niewywiązania się ze zobowiązań z umowy, ponieważ kontrakt zabezpieczający przechowuje swoje środki w escrow. Zauważ, że to podejście nie jest w pełni zdecentralizowane, ponieważ zaufane źródło jest nadal potrzebne do zapewnienia znacznika ceny, chociaż jest to nawet nadal ogromna poprawa pod względem zmniejszenia wymogów w zakresie infrastruktury (w przeciwieństwie do emitenta, wystawienie ceny kanału nie wymaga żadnych licencji i może być sklasyfikowane jako swoboda wypowiedzi) i ograniczenie możliwości oszustw. - -### Systemy identyfikacji i reputacji {#identity-and-reputation-systems} - -Najwcześniejsza alternatywna kryptowaluta, [Namecoin](http://namecoin.org/), próbowała użyć blockchain podobny do Bitcoina, aby zapewnić system rejestracji nazwy, gdzie użytkownicy mogą rejestrować swoje nazwy w publicznej bazie danych wraz z innymi danymi. Główny cytowany przypadek użycia dotyczy a System [DNS](https://wikipedia.org/wiki/Domain_Name_System), mapowanie nazwy domen, takie jak „bitcoin.org” (lub, w przypadku Namecoin, „bitcoin.bit”) na adres IP. Inne przypadki użycia obejmują uwierzytelnianie poczty elektronicznej i potencjalnie bardziej zaawansowane systemy reputacji. Oto podstawowa umowa, aby dostarczyć system rejestracji nazw podobnych do Namecoin na Ethereum: - - def register(nazwa, wartość): - if !self.storage[name]: - self.storage[name] = wartość - -Umowa jest bardzo prosta; wszystko to jest baza danych wewnątrz sieci Ethereum, która może być dodawana do sieci ale nie modyfikowana ani usuwana. Każdy może zarejestrować nazwę z pewną wartością, a ta rejestracja zostanie zachowana na zawsze. Bardziej zaawansowana umowa rejestracji nazw będzie również zawierać "klauzulę funkcji" umożliwiającą innym umowom zapytanie o nie, jak również mechanizm dla "właściciela" (tj. pierwszy rejestrujący) nazwy mającej na celu zmianę danych lub przeniesienie własności. Można nawet dodać reputację i funkcji sieciowej zaufania. - -### Zdecentralizowane przechowywanie plików {#decentralized-file-storage} - -W ciągu ostatnich kilku lat pojawiło się wiele popularnych startów przechowywania plików online, z których najważniejszym jest Dropbox, szukanie pozwolenia użytkownikom na przesłanie kopii zapasowej dysku twardego i przechowywanie kopii zapasowej i umożliwienie użytkownikowi dostępu do niej w zamian za miesięczną opłatę. Jednak w tym momencie rynek przechowywania plików jest stosunkowo nieefektywny; kursory spojrzą na różne [istniejące rozwiązania](http://online-storage-service-review.toptenreviews.com/) pokazuje, że: w szczególności na poziomie 20–200 GB na poziomie, w którym nie pojawiają się żadne wolne kwoty ani rabaty na poziomie przedsiębiorstwa, miesięczne ceny głównego przechowywania plików są takie, że płacisz za więcej niż koszt całego dysku twardego w jednym miesiącu. Kontrakty Ethereum mogą umożliwić opracowanie zdecentralizowanego ekosystemu przechowywania plików, gdzie indywidualni użytkownicy mogą zarobić małe ilości pieniędzy poprzez wynajem własnych twardych dysków, a niewykorzystane miejsce może zostać wykorzystane do dalszego obniżenia kosztów przechowywania plików. - -Kluczowym elementem takiego urządzenia byłoby to, co nazwaliśmy "zdecentralizowanym kontraktem Dropbox". Umowa ta działa w następujący sposób. Najpierw dzieli żądane dane na bloki, szyfrując każdy blok dla prywatności i buduje z tego drzewo Merkle. Jeden z nich tworzy kontraktu z regułą, że każdy N bloków, kontrakt wybierze losowy indeks w drzewie Merkle (używając poprzedniego skrótu bloku, dostępny z kodu kontraktu, jako źródło losowania), i dać X eterowi pierwszemu podmiotowi, który dostarczył transakcję z uproszczonym dowodem posiadania tego bloku w tym określonym indeksie drzewa. Gdy użytkownik chce ponownie pobrać swój plik, może użyć protokołu kanału mikropłatności (np. zapłać 1 szabo per 32 kilobajtów) za odzyskanie pliku; najbardziej opłacalnym podejściem jest dla zleceniodawcy, aby nie publikować transakcji do końca, zamiast zastąpienie transakcji nieco bardziej dochodową transakcją tą samą nraz po 32 kilobajtach. - -Ważną cechą protokołu jest to, że: chociaż może wydawać się, że jeden ufa wielu losowym węzłom, aby nie zdecydowały się zapomnieć o pliku, jeden może zmniejszyć to ryzyko do niemal zera dzieląc plik na wiele kawałków poprzez tajne udostępnianie, i oglądanie kontraktów, aby zobaczyć każdy element jest nadal w posiadaniu jakiegoś węzła. Jeśli kontrakt nadal płaci pieniędze, to stanowi dowód kryptograficzny, że ktoś tam nadal przechowuje plik. - -### Zdecentralizowana Organizacja Autonomiczna {#decentralized-autonomous-organizations} - -Ogólna koncepcja „zdecentralizowanej organizacji autonomicznej” jest taka: wirtualnego podmiotu, który ma określony zestaw członków lub udziałowców które, być może z większością 67%, mają prawo do wydawania środków finansowych podmiotu funduszy i modyfikować jego kod. Członkowie wspólnie decydują, w jaki sposób organizacja powinna przydzielić swoje środki. Metody przydzielania a Fundusze DAO mogą obejmować nagrody, pensje, a nawet bardziej egzotyczne mechanizmy, takie jak wewnętrzna waluta, aby nagradzać pracę. Zasadniczo replikuje legalne obrazy tradycyjnej firmy lub non-profit, ale przy użyciu wyłącznie kryptograficznej technologii blockchain. Jak dotąd wiele rozmów o DAO-ach dotyczyło modelu „kapitalistycznego” „zdecentralizowanej autonomicznej korporacji” (DAC) z dywidendą otrzymującą udziałowców i zbywalnymi akcjami; alternatywę opisaną być może jako „zdecentralizowana społeczność autonomiczna”, gdyby wszyscy członkowie mieli równy udział w procesie podejmowania decyzji i wymagali, aby 67% istniejących członków wyraziło zgodę na dodanie lub usunięcie członka. Wymaganie, że jedna osoba może mieć tylko jedno członkostwo, musiałoby być wtedy wyegzekwowane wspólnie przez grupę. - -Ogólny zarys kodowania DAO przedstawia się następująco. Najprostszy projekt to po prostu fragment samomodyfikującego się kodu, który zmienia się, jeśli dwie trzecie członków zgadza się na zmianę. Chociaż kod teoretycznie jest niezmienny, można łatwo dotrzeć do tego i mieć faktyczną zmienność poprzez posiadanie fragmentów kodu w osobnych kontraktach, oraz posiadanie adresów, z których kontrakty na wezwanie do przechowywania przechowywane w zmodyfikowanym magazynie. W prostej realizacji takiej umowy DAO będą trzy typy transakcji, wyróżnione danymi dostarczonymi w transakcji: - -- `Struktura danych]` aby zarejestrować propozycję z indeksem `i` aby zmienić adres w indeksie magazynu `K` na wartość `V` -- `[1,i]` aby zarejestrować głos za wnioskiem `i` -- `[2,i]` aby sfinalizować propozycję `i` jeśli została złożona wystarczająca ilość głosów - -Umowa zawierałaby wówczas klauzule dla każdego z nich. Przechowuje zapis wszystkich otwartych zmian pamięci, wraz z listą osób, na które zagłosowały. Miałaby również listę wszystkich członków. Gdy jakakolwiek zmiana pamięci dostanie się do dwóch trzecich głosujących na nią członków, finalizacja transakcji może wykonać zmianę. Bardziej zaawansowany szkielet miałby również wbudowaną możliwość głosowania na funkcje takie jak wysyłanie transakcji, dodawanie członków i usuwanie członków, a nawet może przewidywać dla [Płynnej Demokracji](https://wikipedia.org/wiki/Delegative_democracy)- delegacji (np. każdy może przypisać kogoś do głosowania, i przypisanie jest translityczne, więc jeśli A przypisuje B i B przypisuje C wtedy C określa głos A). Ten projekt pozwoliłby DAO na rozwój organiczny jako społeczności zdecentralizowanej, umożliwienie ludziom w końcu delegowania zadania filtrowania, kto jest członkiem specjalistów, chociaż w odróżnieniu od „obecnego systemu” specjaliści mogą z łatwością wyskakać i z czasem przebywać w sytuacji, gdy indywidualni członkowie społeczności zmieniają swoje dostosowania. - -Alternatywnym modelem jest zdecentralizowana korporacja, gdzie każdy rachunek może mieć zero lub więcej akcji, a dwie trzecie akcji jest zobowiązane do podjęcia decyzji. Kompletny szkielet obejmowałby funkcje zarządzania aktywami, możliwość złożenia oferty kupna lub sprzedaży akcji, oraz zdolność przyjmowania ofert (najlepiej z mechanizmem dopasowania zleceń w ramach umowy). Delegacja istniałaby również w stylu płynnej demokracji, generalizując koncepcję rady dyrektorów. - -### Dalsze zastosowania {#further-applications} - -**1. Portfele oszczędzające**. Załóżmy, że Alice chce zabezpieczyć swoje fundusze, ale obawia się, że straci lub ktoś zhakuje swój klucz prywatny. Wstawia ether w kontrakt z Bob, bankiem, w następujący sposób: - -- Sama Alice może wypłacić maksymalnie 1% środków dziennie. -- Tylko Bob może wypłacić maksymalnie 1% środków dziennie, ale Alice ma możliwość dokonania transakcji z jej kluczem wyłączającym tę zdolność. -- Alice i Bob razem mogą wycofać wszystko. - -Zwykle 1% dziennie jest wystarczające dla Alice i jeśli Alice chce wycofać więcej może skontaktować się z Bobem w celu uzyskania pomocy. Jeśli klucz Alice zostanie zhakowany, biegnie do Boba, aby przenieść środki do nowego kontraktu. Jeśli straci swój klucz, Bob otrzyma ostatecznie środki. Jeśli Bob okaże się złośliwy, Alice może utracić możliwość wypłacenia środków. - -**2. Ubezpieczenie upraw**. Można łatwo stworzyć kontrakt pochodny poprzez wykorzystanie źródła danych pogodowych zamiast indeksu ceny. Jeśli rolnik z Iowa kupi instrument pochodny, który się opłaca odwrotnie w oparciu o opady w stanie Iowa, to jeśli jest susza, rolnik automatycznie otrzyma pieniądze, a jeśli będzie wystarczająco dużo deszczu, rolnik będzie szczęśliwy, ponieważ ich plony będą dobrze sobie radzić. Można go rozszerzyć na ogólne ubezpieczenie od klęsk żywiołowych. - -**3. Zdecentralizowany kanał danych**. W przypadku umów finansowych na różnica, faktycznie może być możliwa decentralizacja strumienia danych za pośrednictwem protokołu o nazwie [SchellingCoin](http://blog.ethereum.org/2014/03/28/schellingcoin-a-minimal-trust-universal-data-feed/). SchellingCoin działa zasadniczo w następujący sposób: N stron wstawionych do systemu wartości danego odniesienia (np. cena ETH/USD), wartości są sortowane, a każdy między 25. a 75. percentylem otrzymuje jeden token jako nagrodę. Każdy ma motywację do udzielenia odpowiedzi, która wszyscy inni zapewnią, i jedyną wartością, na którą wiele graczy może realistycznie się zgodzić, jest oczywisty domyślny: prawda. Tworzy to zdecentralizowany protokół, który teoretycznie może dostarczyć dowolną liczbę wartości, włączając w to cenę ETH/USD, temperaturę w Berlinie lub nawet wynik konkretnego twardego obliczenia. - -**4. Inteligentna escrow z multipodpisem**. Bitcoin pozwala na podpisywanie umów transakcji, na które na przykład trzy z pięciu kluczy mogą wydać środki. Ethereum pozwala na bardziej szczegółowość; na przykład czterech na pięć może wydawać wszystko, trzy na pięć mogą wydać do 10% na dobę, a dwa na pięć mogą wydać do 0. % dziennie. Dodatkowo, Ethereum multisig jest asynchroniczny - dwie strony mogą zarejestrować swoje podpisy w blockchain w różnych momentach, a ostatni podpis automatycznie wyśle transakcję. - -**5. Chmura obliczeniowa**. Technologia EVM może być również używana do tworzenia weryfikowalnego środowiska obliczeniowego, pozwalając użytkownikom na zwrócenie się do innych o przeprowadzenie obliczeń, a następnie opcjonalnie poproś o dowody na to, że obliczenia w wybranych losowo punktach kontrolnych zostały wykonane poprawnie. Pozwala to na stworzenie rynku przetwarzania w chmurze, na którym każdy użytkownik może uczestniczyć za pomocą komputera stacjonarnego, laptopa lub specjalnego serwera, i kontrola punktowa wraz z depozytami zabezpieczającymi może być wykorzystana w celu upewnienia się, że system jest wiarygodny (tj. węzły nie mogą dochodowo oszukiwać). Chociaż taki system może nie być odpowiedni dla wszystkich zadań; zadań, które wymagają wysokiego poziomu komunikacji międzyprocesowej, na przykład nie można łatwo wykonać na dużej chmurze węzłów. Inne zadania są jednak znacznie łatwiejsze do równoległe; projekty takie jak SETI@home, folding@home i genetyczne algorytmy mogą być z łatwością zaimplementowane na tej platformie. - -**6. Gry typu peer-to-peer**. Dowolna liczba protokołów gier hazardowych typu peer-to-peer, takich jak Frank Stajano i Richard Clayton [Cyberdice](http://www.cl.cam.ac.uk/~fms27/papers/2008-StajanoCla-cyberdice.pdf), może być zaimplementowane w blockchainu Ethereum. Najprostszy protokół gier to po prostu kontrakt na różnicę w następnym bloku hash, i bardziej zaawansowane protokoły można z nich opracować, tworząc usługi w zakresie gier hazardowych z opłatami niemal zerowymi, które nie mają możliwości oszukania. - -**7. Rynki prognostyczne**. Pod warunkiem, że wyścig lub SchellingCoin, rynki prognoz są również łatwe do wdrożenia, rynki prognozowania wraz z SchellingCoin mogą okazać się pierwszym głównym punktem zastosowania [futarchii](http://hanson.gmu.edu/futarchy.html) jako protokołu zarządzania zdecentralizowanymi organizacjami. - -**8. Zdecentralizowane rynki**w łańcuchu przy użyciu systemu tożsamości i reputacji jako bazy. - -## Różne obszary i obawy {#miscellanea-and-concerns} - -### Zmodyfikowane wdrożenie GHOST {#modified-ghost-implementation} - -Protokół GHOST to innowacja po raz pierwszy wprowadzony przez Yonatana Sompolinsky'ego i Aviva Zohara w [grudniu 2013](https://eprint.iacr.org/2013/881.pdf). Motywacja uzasadniająca wprowadzenie GHOST polega na tym, że blockchain z szybkim czasem potwierdzania cierpi z powodu zmniejszonego bezpieczeństwa ze względu na wysoką przeżywalność - ponieważ bloki potrzebują czasu pewien czas rozesłanie w sieci. Jeśli górnik A wydobywa blok, a następnie zdarzy się, że górnik B wydobędzie kolejny blok, zanim blok wydobycia A rozpropaguje się na B, blok górnika B zmarnuje się i nie przyczyni się do bezpieczeństwa sieci. Ponadto istnieje problem centralizacji: jeśli górnik A stanowi pulę wydobycia o 30% mocy hash, a B ma 10% mocy hash, Istnieje ryzyko wytworzenia przestarzałego bloku przez 70% czasu (ponieważ pozostałe 30% czasu A wyprodukował ostatni blok, a więc natychmiast uzyska dane kopalniane), podczas gdy B będzie ryzykował wytworzenia przestarzałego bloku przez 90% czasu. Zatem, jeśli interwał bloku jest wystarczająco krótki, aby przestarzała szybkość była wysoka, Będzie znacznie bardziej efektywny ze względu na jego wielkość. Z tymi dwoma objawami łącznie. blockchain, które szybko produkują bloki, bardzo prawdopodobne jest, że doprowadzi do jednej puli wydobywczej posiadającej wystarczająco dużo energii sieciowej, aby faktycznie sprawować kontrolę nad procesem wydobywania. - -Jak opisali Sompolinsky i Zohar, GHOST rozwiązuje pierwszy problem traty bezpieczeństwa sieci poprzez uwzględnienie przestarzałych bloków w obliczeniach , który łańcuch jest „najdłuższy”; to znaczy nie tylko rodzici kolejni przodkowie bloku, ale także starsi potomkowie bloku (w żargonie Ethereum „wujkowie”) zostają dodani do wyliczenia, który blok jest zabezpieczony nawiększą łączną liczbą proof of work. Aby rozwiązać drugą kwestię błędu centralizacji, wychodzimy poza protokół opisany przez Sompolinskiego i Zohara oraz zapewniamy nagrody za przestarzałe bloki: przestarzały blok otrzymuje 87,5 % nagrody bazowej nagród, a siostrzeniec, który zawiera przestarzały blok, otrzymuje pozostałe 12,5%. Opłaty transakcyjne nie są jednak przyznawane wujom. - -Ethereum wdraża uproszczoną wersję GHOST, która obniża się tylko o 7 poziomów. W szczególności definiuje się je w następujący sposób: - -- Blok musi określać nadrzędny i musi określać 0 lub więcej wujków -- Wujek zawarty w bloku `B` musi mieć następujące właściwości: -- Musi być bezpośrednim dzieckiem `k`-th generator `B`, gdzie `2 <= k <= 7`. -- Nie może być przodkiem `B` -- Wujek musi być prawidłowym nagłówkiem bloku, ale nie musi być wcześniej zweryfikowanym lub nawet poprawnym blokiem -- Wujek musi różnić się od wszystkich wujków zawartych w poprzednich blokach i wszystkich innych wujków zawartych w tym samym bloku (brak podwójnego włączenia) -- Za każdego wujka `U` w bloku `B`, górnik `B` otrzymuje dodatkowe 3,125% dodanych do swojej nagrody z bazy monet, a górnik z U otrzymuje 93,75% standardowej nagrody z bazy monet. - -Ta ograniczona wersja GHOST, z wujkami włączanymi tylko do 7 generacji, była używana z dwóch powodów. Po pierwsze, nieograniczony GHOSTmógłby uwzględnić zbyt wiele komplikacji w obliczeniach, którzy wujkowie dla danego bloku są ważni. Po drugie, nieograniczony GHOST z rekompensatą używaną w Ethereum usuwa zachętę dla górnika do wydobywania w głównym łańcuchu, a nie w łańcuchu publicznego atakującego. - -### Opłaty {#fees} - -Ponieważ każda transakcja publikowana w blockchain nakłada na sieć koszt pobrania i zweryfikowania, istnieje potrzeba mechanizmu regulacyjnego, zazwyczaj obejmującego opłaty transakcyjne, aby zapobiec nadużyciom. Domyślnym podejściem, stosowanym w Bitcoini, jest wprowadzenie czysto dobrowolnych opłat, polegając na tym, że górnicy będą działać jako strażnicy i ustalać dynamiczne minima. Ta metoda została przyjęta bardzo pozytywnie w społeczności Bitcoin, w szczególności dlatego, że jest ona „oparta na rynku”, umożliwiając, by podaż i popyu między górnikami a nadawcami transakcji określała ceny. Problem z tym rozumowaniem polega jednak na tym, że przetwarzanie transakcji nie jest rynkiem; chociaż intuicyjnie atrakcyjne jest konstruowanie przetwarzania transakcji jako usługi, którą górnik oferuje nadawcy, w rzeczywistości każda transakcja, którą górnik uwzględnia, będzie musiała być przetwarzana przez każdy węzeł w sieci, więc ogromną większość kosztów przetwarzania transakcji ponosi strona trzecia, a nie górnik, który podejmuje decyzję o uwzględnieniu. Dlatego bardzo prawdopodobne jest wystąpienie problemów typu „tragedia wspólnego pastwiska”. - -Jak się jednak okazuje, ta wada mechanizmu rynkowego, po przyjęciu konkretnego, nieprecyzyjnego założenia upraszczającego, magicznie się usuwa. Argumentacja jest następująca. Załóżmy, że: - -1. Transakcja prowadzi do operacji `k`, oferującej nagrodę `kR` każdemu górnikowi, który tę transakcję uwzględnia, gdzie `R` jest ustawiony przez nadawcę, a `k` i `R` są (z grubsza) wcześniej widoczne dla górnika. -2. Operacja ma koszt przetwarzania `C` dla każdego węzła (tj. wszystkie węzły mają taką samą wydajność) -3. Jest `N` węzłów kopalnych, każdy z nich ma dokładnie taką samą moc przetwarzania (tj. `1/N` razem) -4. Nie ma żadnych pełnych węzłów niekopalnych. - -Górnik byłby skłonny przetworzyć transakcję, jeśli oczekiwana nagroda jest wyższa niż koszt. Tak więc oczekiwana nagroda to `kR/N`, ponieważ górnik ma `1/N` szans na przetworzenie następnego bloku, a koszt przetwarzania dla górnika wynosi po prostu `kC`. A zatem górnicy będą uwzględniać transakcje, w których `kR/N > kC` lub `R > NC`. Zauważ, że `R` jest opłatą na operację dostarczoną przez nadawcę, a zatem jest niższą wartością korzyści, jakie nadawca uzyskuje transakcji, i `NC` to koszt dla całej sieci razem z przetwarzaniem operacji. W związku z tym górnicy mają motywację do uwzględniania tylko tych transakcji, dla których całkowita korzyść użytkowa przewyższa koszt. - -Istnieje jednak kilka istotnych odstępstw od tych założeń w rzeczywistości: - -1. Górnik ponosi wyższe koszty przetwarzania transakcji niż innych weryfikujących węzłów, ponieważ dodatkowy czas weryfikacji opóźnia propagację bloku i tym samym zwiększa szansę, że blok stanie się przestarzały. -2. Istnieją pełne węzły niekopalne. -3. Dystrybucja energii wydobywczeh może w praktyce stać się radykalnie nieegalitarna. -4. Spekulanci, wrogowie polityczni i maszyny, których funkcja użyteczności obejmuje wyrządzanie szkód w sieci, już istnieją, i mogą sprytnie tworzyć kontrakty, w których ich koszt jest znacznie niższy niż koszt zapłacony przez inne weryfikujące węzły. - -(1) daje górnikowi tendencję do uwzględniania mniejszej liczby transakcji, a (2) wzrasta `NC`; w związku z tym te dwa efekty co najmniej częściowo znoszą się nawzajem [Jak?](https://github.com/ethereum/wiki/issues/447#issuecomment-316972260) (3) i (4) są głównymi problemami; aby je rozwiązać, tworzymy zmienną pokrywę: żaden blok nie może mieć więcej operacji niż `BLK_LIMIT_FACTOR` razy długoterminowa wykładnicza średnia ruchoma. Konkretnie: - - blk.oplimit = floor((blk.parent.oplimit \* (EMAFACTOR - 1) + - floor(parent.opcount \* BLK\_LIMIT\_FACTOR)) / EMA\_FACTOR) - -`BLK_LIMIT_FACTOR` i `EMA_FACTOR` to stałe, które zostaną na razie ustawione na 65536 i 1,5, ale prawdopodobnie zostaną zmienione po dalszej analizie. - -Istnieje kolejny czynnik zniechęcający do dużych rozmiarów bloków w Bitcoin: propagacja dużych bloków trwa dłużej i dlatego występuje większe prawdopodobieństwo, że staną się przestarzałe. W Ethereum bloki o wysokim zużyciu gazu mogą również wymagać więcej czasu na propagację, zarówno dlatego, że są fizycznie większe, jak i dlatego, że przetwarzanie przejścia stanu transakcji do walidacji trwa dłużej. Ten czynnik zniechęcający do opóźnień jest istotnym czynnikiem w Bitcoinie, ale mniej istotnym w Ethereum ze względu na protokół GHOST; dlatego poleganie na regulowanych limitach bloków zapewnia bardziej stabilną podstawę. - -### Obliczanie i kompletność w sensie Turinga {#computation-and-turing-completeness} - -Ważną informacją jest to, że maszyna wirtualna Ethereum jest kompletna w sensie Turinga; oznacza to, że kod EVM może kodować każde obliczenie które może zostać przeprowadzone, w tym nieskończone pętle. Kod EVM umożliwia zapętlenie na dwa sposoby. Po pierwsze, istnieje instrukcja `JUMP`, która pozwala programowi wrócić do poprzedniego miejsca w kodzie, i instrukcje `JUMPI` przeskoku warunkowego, dopuszczanie wyrażeń takich jak `while x < 27: x = x * 2`. Po drugie, kontrakty mogą wywoływać inne kontrakty, potencjalnie umożliwiając zapętlenie poprzez rekurencję. To naturalnie prowadzi do problemu: czy złośliwi użytkownicy mogą zasadniczo wyłączyć górników i pełne węzły, zmuszając ich do wejścia w nieskończoną pętlę? Kwestia ta pojawia się z powodu problemu w informatyce znanego jako problem zatrzymania: nie ma sposobu, aby powiedzieć, w ogólnym przypadku, czy dany program kiedykolwiek się zatrzyma. - -Jak opisano w sekcji dotyczącej zmiany stanu, nasze rozwiązanie działa w ten sposób, że wymagamy od transakcji określenia maksymalnej liczby kroków obliczeniowych, które może ona wykonać, a jeśli wykonanie trwa dłużej, obliczenia są przerywane, ale opłaty są nadal uiszczane. Komunikaty działają w ten sam sposób. Aby pokazać motywację uzasadniającą nasze rozwiązanie, weźmy pod uwagę następujące przykłady: - -- Atakujący tworzy kontrakt, który uruchamia nieskończoną pętlę, a następnie wysyła transakcję aktywującą tę pętlę do górnika. Górnik przetwarza transakcję, uruchamia nieskończoną pętlę i czeka, aż skończy się gaz. Nawet jeśli w trakcie wykonywania transakcji zabraknie paliwa i zatrzyma się ona w połowie, transakcja jest nadal ważna, a górnik nadal żąda od atakującego opłaty za każdy krok obliczeniowy. -- Atakujący tworzy bardzo długą nieskończoną pętlę z zamiarem zmuszenia górnika do kontynuowania obliczeń przez tak długi czas, że do czasu zakończenia obliczeń pojawi się jeszcze kilka bloków i nie będzie możliwe, aby górnik uwzględnił transakcję, aby zażądać opłaty. Niemniej jednak napastnik będzie musiał przesłać wartość `STARTGAS`, ograniczając liczbę kroków obliczeniowych wykonania, więc górnik dowie się wcześniej, że obliczenie będzie wymagać zbyt dużej liczby kroków. -- Atakujący widzi kontrakt z kodem w jakiejś formie jak `send(A,contract.storage[A]); contract.storage[A] = 0`, i wysyła transakcję z wystarczającą ilością gazu, aby wykonać pierwszy krok, ale nie drugi (tzn. dokonać wypłaty, ale nie pozwolić na zmniejszenie salda). Autor kontraktu nie musi się martwić o ochronę przed takimi atakami, ponieważ jeśli wykonanie kontraktu zatrzyma się w połowie zmian, zostaną one cofnięte. -- Kontrakt finansowy działa poprzez przyjęcie mediany dziewięciu zastrzeżonych kanałów danych w celu zminimalizowania ryzyka. Atakujący przejmuje jeden z kanałów danych, który jest zaprojektowany do modyfikowania za pomocą mechanizmu wywołania zmiennego adresu opisanego w sekcji dotyczącej DAO i konwertuje go do uruchomienia nieskończonej pętli, próbując w ten sposób wymusić wszelkie próby odzyskania środków z kontraktu finansowego do wyczerpania gazu. Jednak umowa finansowa może ustalić limit gazu na komunikacie, aby zapobiec temu problemowi. - -Alternatywą dla kompletności transakcji jest niekompletność, gdzie `JUMP` i `JUMPI` nie istnieją i tylko jedna kopia każdego kontraktu może istnieć w danym momencie. W tym systemie opisany system opłat i niepewność dotycząca skuteczności naszego rozwiązania mogą nie być konieczne, ponieważ koszt wykonania kontraktu byłby ograniczony wielkością kontraktu. Ponadto, niekompletność w sensie Turinga nie jest nawet tak dużym ograniczeniem; ze wszystkich przykładów kontraktów, które wymyśliliśmy wewnętrznie, jak dotąd tylko jeden wymagał pętli, a nawet ta pętla mogła być usunięta przez wykonanie 26 powtórzeń jednowierszowego fragmentu kodu. Biorąc pod uwagę poważne następstwa kompletności w sensie Turinga i ograniczone korzyści, dlaczego nie ma po prostu języka Turinga niekompletnego w sensie Turinga? W rzeczywistości jednak niekompletność jest daleka od czystego rozwiązania problemu. Aby zobaczyć dlaczego, zastanów się nad następującymi kontraktami: - - C0: call(C1); call(C1); - C1: call(C2); call(C2); - C2: call(C3); call(C3); - ... - C49: call(C50); call(C50); - C50: (uruchom jeden krok programu i zapisz zmianę w pamięci) - -Teraz wyślij transakcję do A. Zatem w 51 transakcjach mamy kontrakt, który zajmuje 250 kroków obliczeniowych. Górnicy mogliby spróbować wykryć takie bomby logiczne z wyprzedzeniem, utrzymując przy każdym kontrakcie wartość określającą maksymalną liczbę kroków obliczeniowych, jakie może on wykonać, i obliczając ją dla kontraktów wywołujących rekurencyjnie inne kontrakty, ale wymagałoby to od górników zakazania kontraktów, które tworzą inne kontrakty (ponieważ tworzenie i wykonywanie wszystkich 26 powyższych kontraktów można by łatwo połączyć w jeden kontrakt). Innym problematycznym punktem jest to, że pole adresowe komunikatu jest zmienne, więc w zasadzie nie można nawet powiedzieć, które inne kontrakty będą wywoływane przez dany kontrakt z wyprzedzeniem. W związku z tym mamy zaskakujący wniosek: kompletność w sensie Turinga jest zaskakująco łatwa do opanowania, a jej brak kompletności jest równie zaskakująco trudny do opanowania, chyba że zastosuje się dokładnie takie same kontrole – ale w takim przypadku dlaczego nie pozwolić, by protokół był kompletny w sensie Turinga? - -### Waluta i emisja {#currency-and-issuance} - -Sieć Ethereum zawiera własną, wbudowaną walutę, ether, która służy podwójnemu celowi: zapewnia podstawową warstwę płynności, umożliwiając efektywną wymianę między różnymi rodzajami aktywów cyfrowych oraz, co ważniejsze, zapewniając mechanizm uiszczania opłat za transakcje. Dla wygody i w celu uniknięcia przyszłych sporów (patrz obecna debata mBTC/uBTC/satoshi w Bitcoin), nominały będą wstępnie oznaczone: - -- 1: wei -- 1012: szabo -- 1015: finney -- 1018: ether - -Należy to traktować jako rozszerzoną wersję pojęcia „dolarów” i „centów” lub „BTC” i „satoshi”. W najbliższej przyszłości oczekujemy, że „ether” będzie używany do zwykłych transakcji, „finney” do mikrotransakcji, a „szabo” i „wei” do dyskusji technicznych na temat opłat i implementacji protokołu; pozostałe nominały mogą stać się użyteczne później i nie powinny być w tym momencie włączane do klientów. - -Model emisji będzie następujący: - -- Ether zostanie opublikowany w sprzedaży walutowej po cenie 1000-2000 etheru na BTC, mechanizm służący finansowaniu organizacji Ethereum i opłacie za rozwój, który został wykorzystany z powodzeniem przez inne platformy, takie jak Mastercoin i NXT. Wcześni nabywcy odniosą korzyści z większych rabatów. BTC otrzymany ze sprzedaży zostanie całkowicie wykorzystany do wypłacania wynagrodzenia programistom i zainwestowanyc w różne projekty for-profit i non-profit w ekosystemu Ethereum i kryptowaluty. -- 0.099x całkowita kwota sprzedana (60102216 ETH) zostanie przeznaczona dla organizacji w celu wynagrodzenia wczesnych uczestników i zapłacenia wydatków denominowanych w ETH przed blokiem genezy. -- 0,099x łączna ilość sprzedanych produktów będzie utrzymana jako długoterminowa rezerwa. -- 0,26x łączna sprzedana ilość zostanie przydzielona górnikom na rok na zawsze po tym punkcie. - -| Grupa | Przy wprowadzeniu | Po 1 roku | Po 5 latach | -| --------------------------------- | ----------------- | --------- | ----------- | -| Jednostki waluty | 1,198X | 1,458X | 2,498X | -| Kupujący | 83,5% | 68,6% | 40,0% | -| Rezerwa wydana przed sprzedażą | 8,26% | 6,79% | 3,96% | -| Rezerwa wykorzystana po sprzedaży | 8,26% | 6,79% | 3,96% | -| Górnicy | 0% | 17,8% | 52,0% | - -**Długoterminowy wzrost podaży (w procentach)** - -![Inflacja w Ethereum](../../../whitepaper/ethereum-inflation.png) - -_Pomimo liniowej emisji waluty, podobnie jak w przypadku Bitcoina z czasem stopa wzrostu podaży dąży jednak do zera_ - -Dwa główne wybory w powyższym modelu to (1) istnienie i wielkość puli zasobów oraz (2) istnienie stale rosnącej liniowej podaży, w przeciwieństwie do ograniczonej podaży, jak w przypadku Bitcoina. Uzasadnienie puli zasobów jest następujące. Jeśli by pula zasobów nie istniała, a liniowa emisja zmniejszyła się do 0. 17x dla zapewnienia tej samej stopy inflacji, a następnie całkowita ilość eteru wynosiłaby 16,5% mniej, więc każda jednostka byłaby warta o 19,8% więcej. Tak więc w równowadze 19,8% więcej etheru zostałoby zakupione w sprzedaży, więc każda jednostka byłaby znów tak samo cenna jak poprzednio. Organizacja miałaby wtedy również 1,198x więcej BTC, które można uznać za podzielone na dwie części: oryginalny BTC i dodatkowe 0,198x. W związku z tym ta sytuacja jest _dokładnie równoważna_ z zaopatrzeniem, ale przy jednej istotnej różnicy: organizacja posiada wyłącznie BTC, a więc nie jest zachęcana do wspierania wartości jednostki etheru. - -Stały model liniowego wzrostu podaży zmniejsza ryzyko tego, co niektórzy postrzegają jako nadmierne stężenie bogactwa w Bitcoin, i daje osobom jednostek waluty, jednocześnie zachowując silną zachętę do uzyskania i wstrzymania eteru, ponieważ „stopa wzrostu podaży” wyrażona jako procent nadal wynosi w miarę upływu czasu. Teoretyzujemy również, że ponieważ monety są zawsze tracone z czasem z powodu nieostrożności, śmierci, itp., a utrata monet może być modelowana jako procent całkowitej podaży na rok, że całkowita podaż waluty w obiegu w rzeczywistości ostatecznie ustabilizuje się na wartości równej rocznej emisji podzielonej przez wskaźnik utraty (np. przy stopie strat 1%, gdy podaż osiągnie 26X, 0,26X będzie wydobywane i 0,26X tracone każdego roku, tworząc równowagę). - -Zauważ, że w przyszłości Ethereum przełączy się na model proof-of-stake dla bezpieczeństwa, ograniczając wymaganie emisji do jakiejś wartości między zerem a 0,05X rocznie. W przypadku, gdy organizacja Ethereum straci fundusze lub z jakiegokolwiek innego powodu zniknie, pozostawiamy otwartą „umowę społeczną”: każdy ma prawo do stworzenia przyszłej wersji kandydata Ethereum, pod jedynym warunkiem, że ilość eteru musi być co najwyżej równa `60102216 * (1. 198 + 0.26 * n)` gdzie `n` jest liczbą lat po bloku genezy. Twórcy mogą swobodnie sprzedać lub w inny sposób przypisać część lub całość różnicy między zwiększeniem podaży napędzanym przez PoS a maksymalnym dopuszczalnym zwiększeniem podaży do zapłaty za rozwój. Aktualizacje kandydujące, które nie są zgodne z umową społeczną, mogą być w uzasadniony sposób rozwidlone na wersje zgodne. - -### Centralizacja wydobycia {#mining-centralization} - -Algorytm wydobywczy Bitcoin działa w ten sposób, że górnicy obliczają SHA256 na lekko zmodyfikowanych wersjach nagłówka bloku miliony razy w kółko, aż w końcu jeden z węzłów znajdzie wersję, której hash jest mniejszy niż docelowy (obecnie około 2192). Ten algorytm wydobywania jest jednak podatny na dwie formy centralizacji. Po pierwsze, ekosystem górniczy został zdominowany przez ASIC (układy scalone specyficzne dla zastosowań), chipy komputerowe zaprojektowane dla konkretnego zadania wydobycia Bitcoina, a zatem tysiące razy bardziej wydajne. Oznacza to, że wydobycie bitcoinów nie jest już wysoce zdecentralizowanym i egalitarnym przedsięwzięciem, wymagającym milionów dolarów kapitału, aby efektywnie w nim uczestniczyć. Po drugie, większość górników Bitcoin nie wykonuje walidacji bloków lokalnie; zamiast tego polegają na scentralizowanej puli wydobywczej, która dostarcza nagłówki bloków. Ten problem jest prawdopodobnie poważniejszy: w czasie pisania tego tekstu trzy największe pule górnicze pośrednio kontrolują około 50% mocy obliczeniowej w sieci Bitcoin, chociaż jest to złagodzone przez fakt, że górnicy mogą przejść do innych pul górniczych, jeśli jakaś pula lub koalicja próbuje ataku 51%. - -Obecnym zamiarem w Ethereum jest wykorzystanie algorytmu wydobywczego, w którym górnicy są zobowiązani do pobierania losowych danych ze stanu, obliczania kilku losowo wybranych transakcji z ostatnich N bloków w blockchainie i zwracania skrótu wyniku. Ma to dwie ważne korzyści. Po pierwsze, kontrakty Ethereum mogą zawierać wszelkiego rodzaju obliczenia, więc Ethereum ASIC byłby zasadniczo ASIC do obliczeń ogólnych – np. lepszy CPU. Po drugie, wydobywanie wymaga dostępu do całego łańcucha bloków, co zmusza górników do przechowywania całego łańcucha bloków i przynajmniej weryfikowania każdej transakcji. Eliminuje to potrzebę istnienia scentralizowanych pul wydobywczych; chociaż pule wydobywcze mogą nadal pełnić uzasadnioną rolę wyrównywania losowości dystrybucji nagród, funkcja ta może być równie dobrze pełniona przez pule peer-to-peer bez centralnej kontroli. - -Niniejszy model nie jest testowany, i mogą pojawić się trudności w unikaniu pewnych inteligentnych optymalizacji podczas korzystania z wykonania kontraktu jako algorytmu górniczego. Jednak szczególnie interesującą cechą tego algorytmu jest to, że pozwala on każdemu na „zatrucie studni”, poprzez wprowadzenie do blockchainu dużej liczby kontraktów zaprojektowanych specjalnie po to, by powstrzymać pewne układy ASIC. Dla producentów ASIC istnieją zachęty ekonomiczne, aby używali tego rodzaju sztuczki do wzajemnego atakowania. Zatem rozwiązaniem, które opracowujemy, jest ostatecznie adaptacyjne rozwiązanie ekonomiczne, a nie czysto techniczne. - -### Skalowalność {#scalability} - -Jedną z powszechnych obaw związanych z Ethereum jest kwestia skalowalności. Podobnie jak w przypadku Bitcoina, wada Ethereum polega na tym, że każda transakcja musi być przetwarzana przez każdy węzeł w sieci. W przypadku Bitcoina, rozmiar obecnego łańcucha bloków wynosi około 15 GB, wzrastając o około 1 MB na godzinę. Jeśli sieć Bitcoin miała przetwarzać 2000 transakcji Visa na sekundę, rosłaby o 1 MB na trzy sekundy (1 GB na godzinę, 8 TB na rok). Ethereum prawdopodobnie doświadczy podobnego wzorca wzrostu, pogorszonego przez to, że na górze blockchainu Ethereum będzie wiele aplikacji zamiast tylko waluty, jak ma to miejsce w przypadku Bitcoina, ale złagodzi to fakt, że pełne węzły Ethereum muszą przechowywać tylko stan zamiast całej historii blockchainu. - -Problem z tak dużą wielkością blockchainu to ryzyko centralizacji. Jeśli rozmiar łańcucha bloków wzrasta na przykład do 100 TB, wtedy prawdopodobnym scenariuszem byłby fakt, że tylko bardzo mała liczba dużych przedsiębiorstw prowadziłaby pełnych węzłów, ze wszystkimi regularnymi użytkownikami używającymi lekkich węzłów SPV. W takiej sytuacji pojawia się potencjalna obawa, że wszystkie węzły mogłyby wspólnie i wszyscy zgadzają się na oszukiwanie w sposób przynoszący zyski (np. zmień nagrodę bloku, daj sobie BTC). Lekkie węzły nie miałyby sposobu na natychmiastowe wykrycie. Oczywiście przynajmniej jeden uczciwy pełny węzeł prawdopodobnie istniałby, a po kilku godzinach informacje o oszustwo wyciekłyby kanałami takimi jak Reddit, ale w tym momencie byłoby już za późno: zwykli użytkownicy zajmą się organizacją próby umieszczenia na czarnej liście podanych bloków, ogromnym i prawdopodobnie niewykonalnym problem koordynacji o podobnej skali, jak próba poderwania się na udany atak 51%. W przypadku Bitcoina, jest to obecnie problem, ale istnieje modyfikacja blockchain [zasugerowana przez Petera Todda](https://web.archive.org/web/20140623061815/http://sourceforge.net/p/bitcoin/mailman/message/31709140/), która poprawi ten problem. - -W najbliższym czasie Ethereum wykorzysta dwie dodatkowe strategie w celu rozwiązania tego problemu. Po pierwsze, z powodu algorytmów kopania opartych na blockchain, co najmniej każdy górnik będzie zmuszony do bycia pełnym węzłem, tworząc dolną granicę liczby pełnych węzłów. Drugie i więcej ważne jest jednak, że po przetworzeniu każdej transakcji znajdziemy pośrednie drzewo stanowe w łańcuchu bloków. Nawet jeśli blok jest scentralizowany, dopóki istnieje jeden uczciwy węzeł, problem centralizacji można obejść za pomocą protokołu weryfikacji. Jeśli górnik publikuje nieprawidłowy blok, ten blok musi być albo źle sformatowany, albo stan `S[n]` jest nieprawidłowy. Skoro `S[0]` jest znany jako poprawny, musi być jakiś pierwszy stan `S[i]` niepoprawny gdzie `S[i-1]` jest poprawny. Serwer weryfikujący dostarczy indeks `i`, wraz z „dowodem inwalidztwa” składającym się z podzbioru węzłów drzew Patricia, które muszą przetworzyć `APPLY(S[i-1], X[i]) -> S[i]`. Węzły będą mogły używać węzłów Patricia do uruchomienia tej części obliczeń, i zobacz, że wygenerowany `S[i]` nie pasuje do podanego `S[i]`. - -Inny, bardziej zaawansowany atak obejmowałby złośliwych górników publikowania niekompletnych bloków, więc pełna informacja nawet nie istnieje, aby określić, czy bloki są poprawne. Rozwiązaniem tego jest protokół wyzwania-odpowiedzi: węzły weryfikacyjne problem "wyzwania" w postaci docelowych wskaźników transakcji, i po otrzymaniu węzła węzeł świetlny traktuje blok jako niezaufany do czasu, aż inny węzeł, czy górnik lub inny weryfikator dostarcza podzbiór węzłów Patricia jako dowód ważności. - -## Podsumowanie {#conclusion} - -Protokół Ethereum został pierwotnie zaprojektowany jako zaktualizowana wersja kryptowaluty, zapewniająca zaawansowane funkcje, takie jak escrow- w blockchain, limity odstąpienia, umowy finansowe, rynki gier hazardowych i, np. poprzez wysoce uogólniony język programowania. Protokół Ethereum nie będzie "wspierał" żadnej aplikacji bezpośrednio, ale istnienie kompletnego języka programowania oznacza, że dowolny kontrakty można teoretycznie utworzyć dla każdego rodzaju transakcji lub aplikacji. Bardziej interesujące jest jednak to, że protokół Ethereum przesuwa się daleko poza samą walutę. Protokoły wokół zdecentralizowanego przechowywania plików, zdecentralizowanych obliczeń i zdecentralizowanych rynków przewidywania wśród dziesiątków innych takich koncepcji, mają potencjał znacznego zwiększenia wydajności przemysłu obliczeniowego, i stanowi ogromny bodziec dla innych protokołów peer-to-peer przez dodanie warstwy ekonomicznej. Wreszcie, istnieje również znaczna gama aplikacji, które w ogóle nie mają nic wspólnego z pieniędzmi. - -Koncepcja arbitralnej funkcji przejściowej państwa wdrożonej przez protokołu Ethereum zapewnia platformę o unikalnym potencjale; zamiast być zamkniętym, jednofunkcyjnym protokołem przeznaczonym do konkretnych zastosowań w przechowywaniu danych, gra hazardowa lub finansowa, Ethereum jest otwarte przez projekt, i uważamy, że w nadchodzących latach jest on niezwykle dobrze przygotowany do pełnienia funkcji podstawy dla bardzo dużej liczby protokołów finansowych i niefinansowych. - -## Uwagi i dalsze lektury {#notes-and-further-reading} - -### Uwagi {#notes} - -1. Czytelnik może zauważyć, że w rzeczywistości adres Bitcoin jest skrótem klucza publicznego krzywej eliptycznej, a nie klucz publiczny. Jednak w rzeczywistości całkowicie uzasadniona jest terminologia kryptograficzna określająca hash pubkey jako sam klucz publiczny. , ponieważ kryptografię Bitcoina można uznać za niestandardową algorytm podpisu cyfrowego, w przypadku gdy klucz publiczny składa się z skrótu pubke'a ECC, podpis składa się z pubkey ECC połączony z podpisem ECC, i algorytm weryfikacji obejmuje sprawdzanie pubkey ECC w podpisze za pomocą skrótu pubkey ECC dostarczonego jako klucz publiczny, a następnie weryfikację podpisu ECC za pomocą pubkey ECC. -2. Technicznie mediana 11 poprzednich bloków. -3. Protokół Ethereum powinien być tak prosty, jak to możliwe, ale może być konieczne do uzyskania dość wysokiego stopnia złożoności, na przykład do skali, do internalizacji kosztów przechowywania, szerokości pasma i I/O, dla bezpieczeństwa, prywatności, przejrzystości itp. W przypadku gdy złożoność jest konieczna, dokumentacja powinna być możliwie jak najwyraźniejsza, zwięzła i aktualna, aby ktoś całkowicie nieszkolony w Ethereum mógł nauczyć się tego i stać się ekspertem. -4. Zobacz [Yellow Paper](https://ethereum.github.io/yellowpaper/paper.pdf) dla maszyny wirtualnej Ethereum (która jest przydatna jako specyfikacja i punkt odniesienia dla budowania klienta Ethereum od podstaw), podczas gdy jest również wiele tematów w [Ethereum wiki](https://github.com/ethereum/wiki/wiki), takich jak rozwój, Podstawowy rozwój, rozwój aplikacji, badania, Casper R&D i protokoły sieciowe. Do badań i możliwej przyszłości implementacja istnieje [ethresear.ch](https://ethresear.ch). -5. Innym sposobem wyrażania tego jest abstrakcja. [najnowsza mapa drogowa](https://ethresear.ch/t/sharding-phase-1-spec/1407/67) planuje abstrakcję wykonania, zezwalanie na nie silnikom wykonującym musi być zgodne z jedną specyfikacją kanoniczną, ale na przykład może być dostosowany do konkretnej aplikacji, a do fragmentu. (Ta heterogeniczność silników egzekucyjnych nie jest wyraźnie podana w mapie drogowej. Istnieje również niejednorodny sharding, który Konceptualizuje Vlada Zamfira.) -6. Wewnętrznie 2 i „CHARLIE” to liczby, przy czym ta ostatnia to w reprezentacji big-endian base 256. Liczby mogą wynosić co najmniej 0 i co najwyżej 2256-1. - -### Czytaj Dalej {#further-reading} - -1. [Wartość wewnętrzna](http://bitcoinmagazine.com/8640/an-exploration-of-intrinsic-value-what-it-is-why-bitcoin-doesnt-have-it-and-why-bitcoin-does-have-it/) -2. [Inteligentna własność](https://en.bitcoin.it/wiki/Smart_Property) -3. [Inteligentne kontrakty](https://en.bitcoin.it/wiki/Contracts) -4. [B- pieniądze](http://www.weidai.com/bmoney.txt) -5. [Dowody pracy wielokrotnego użytku](https://nakamotoinstitute.org/finney/rpow/) -6. [Zabezpieczenie tytułów własności na podstawie uprawnień właściciela](https://nakamotoinstitute.org/secure-property-titles/) -7. [Biała księga Bitcoin](http://bitcoin.org/bitcoin.pdf) -8. [Namecoin](https://namecoin.org/) -9. [Trójkąt Zooko's](https://wikipedia.org/wiki/Zooko's_triangle) -10. [Biała księga kolorowych monet](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit) -11. [Biała księga Mastercoina](https://github.com/mastercoin-MSC/spec) -12. [Zdecentralizowane autonomiczne korporacje, Bitcoin Magazine](http://bitcoinmagazine.com/7050/bootstrapping-a-decentralized-autonomous-corporation-part-i/) -13. [Uproszczona weryfikacja płatności](https://en.bitcoin.it/wiki/Scalability#Simplifiedpaymentverification) -14. [Drzewa Merkle](https://wikipedia.org/wiki/Merkle_tree) -15. [Drzewa Patricia](https://wikipedia.org/wiki/Patricia_tree) -16. [GHOST](https://eprint.iacr.org/2013/881.pdf) -17. [StorJ i agenci autonomiczni, Jeff Garzik](http://garzikrants.blogspot.ca/2013/01/storj-and-bitcoin-autonomous-agents.html) -18. [Mike Hearn na temat Inteligentnej Własności podczas Festiwalu Turinga](http://www.youtube.com/watch?v=Pu4PAMFPo5Y) -19. [Ethereum RLP](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-RLP) -20. [Drzewa Patricia Merkle w Ethereum](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-Patricia-Tree) -21. [Peter Todd na temat sumy drzew Merkle](http://sourceforge.net/p/bitcoin/mailman/message/31709140/) - -_Historia białej księgi znajduje się na stronie https://github.com/ethereum/wiki/blob/old-before-deleting-all-files-go-to-wiki-wiki-instead/old-whitepaper-for-historical-reference.md_ - -_Warto zauważyć, że Ethereum, podobnie jak wiele projektów oprogramowania opartych na społecznościach, rozwija się od czasu jego początkowego powstania. Aby dowiedzieć się o najnowszych zmianach w Ethereum i jak wprowadzone są zmiany w protokole, zalecamy [ten przewodnik](/learn/)._ diff --git a/src/content/translations/pt-br/community/support/index.md b/src/content/translations/pt-br/community/support/index.md deleted file mode 100644 index c9c0b028b1f..00000000000 --- a/src/content/translations/pt-br/community/support/index.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -title: Suporte Ethereum -description: Obtenha suporte no ecossistema Ethereum. -lang: pt-br ---- - -# Suporte Ethereum {#support} - -## Suporte oficial do Ethereum {#official-support} - -Você está procurando pelo suporte oficial do Ethereum? A primeira coisa que você deve saber é que o Ethereum é descentralizado. Isso significa que nenhuma organização central, entidade ou pessoa é proprietária do Ethereum, e, por isso, não existem canais de suporte oficiais. - -Compreender a natureza descentralizada do Ethereum é vital porque qualquer pessoa que afirme ser um suporte oficial para o Ethereum está provavelmente tentando enganar você! A melhor proteção contra os golpistas é educar-se e levar a segurança a sério. - - - Segurança e prevenção de fraude do Ethereum - - - - Aprenda os conceitos básicos do Ethereum - - -Apesar da falta de suporte oficial, muitos grupos, comunidades e projetos em todo o ecossistema Ethereum estão felizes em ajudar, e você pode encontrar muitas informações e recursos úteis nesta página. Ainda tem dúvidas? Junte-se ao [Discord ethereum.org](/discord/) e tentaremos ajudar. - -## Suporte a carteiras {#wallet-support} - -Está tendo problemas com sua carteira? A maioria das carteiras tem equipes de suporte dedicadas que podem ajudar: - -- [MetaMask](https://metamask.zendesk.com/hc/) -- [Argent](https://support.argent.xyz/hc/) -- [MyEtherWallet](https://help.myetherwallet.com/) - -_Esta não é uma lista exaustiva. Precisa de ajuda para encontrar suporte para uma carteira específica? Una-se ao [Discord da ethereum.org](https://discord.gg/ethereum-org) e tentaremos ajudar._ - -Procurando uma carteira Ethereum? [Veja a nossa lista completa de carteiras Ethereum](/wallets/find-wallet/). - -## Criando dapps {#building-support} - -Desevolver um dapp pode ser difícil. Aqui estão alguns espaços voltados ao desenvolvimento com desenvolvedores Ethereum experientes dispostos a ajudar. - -- [Universidade Alchemy](https://university.alchemy.com/#starter_code) -- [Discord CryptoDevs](https://discord.gg/Z9TA39m8Yu) -- [Stackexchange do Ethereum](https://ethereum.stackexchange.com/) -- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) -- [Universidade Web3](https://www.web3.university/) -- [LearnWeb3](https://discord.com/invite/learnweb3) - -Você também pode encontrar documentação e guias de desenvolvimento em nossa seção [Recursos de desenvolvedor Ethereum](/developers/). - -### Ferramentas {#dapp-tooling} - -Sua pergunta está relacionada a uma ferramenta, projeto ou biblioteca em particular? A maioria dos projetos tem servidores de bate-papo ou fóruns dedicados a apoiar você. - -Aqui estão alguns exemplos populares: - -- [Solidity](https://gitter.im/ethereum/solidity/) -- [ethers.js](https://discord.gg/6jyGVDK6Jx) -- [web3.js](https://discord.gg/GsABYQu4sC) -- [Hardhat](https://discord.gg/xtrMGhmbfZ) -- [Truffle](https://discord.gg/8uKcsccEYE) -- [Alchemy](http://alchemy.com/discord) -- [Tenderly](https://discord.gg/fBvDJYR) - -## Executando um nó {#node-support} - -Se você estiver executando um nó ou validador, aqui estão algumas comunidades que se dedicam a ajudá-lo a começar. - -- [Discord EthStaker](https://discord.io/ethstaker) -- [Reddit EthStaker](https://www.reddit.com/r/ethstaker) - -A maioria das equipes que estão construindo clientes Ethereum também tem espaços dedicados ao público, onde você pode obter suporte e fazer perguntas. - -### Clientes de execução {#execution-clients} - -- [Geth](https://discord.gg/FqDzupGyYf) -- [Nethermind](https://discord.gg/YJx3pm8z5C) -- [Besu](https://discord.gg/p8djYngzKN) -- [Erigon](https://github.com/ledgerwatch/erigon/issues) - -### Clientes de consenso {#consensus-clients} - -- [Prysm](https://discord.gg/prysmaticlabs) -- [Nimbus](https://discord.gg/nSmEH3qgFv) -- [Lighthouse](https://discord.gg/cyAszAh) -- [Teku](https://discord.gg/7hPv2T6) -- [Lodestar](https://discord.gg/aMxzVcr) - -Você também pode [aprender a executar um nó aqui](/developers/docs/nodes-and-clients/run-a-node/). - -## Perguntas frequentes {#faq} - -#### Enviei ETH para a carteira errada {#wrong-wallet} - -Uma transação enviada em Ethereum é irreversível. Infelizmente, se você enviou ETH para a carteira errada, não há como recuperar esses fundos. Nenhuma organização central, entidade ou pessoa é proprietária do Ethereum, o que significa que ninguém pode reverter transações. Portanto, é vital verificar sempre as suas transações antes de enviá-las. - -#### Como eu posso solicitar minha doação de Ethereum? {#giveaway-scam} - -Doações/airdrops de Ethereum são golpes criados para roubar o seu ETH. Não se sinta tentado por ofertas que parecem boas demais para serem verdadeiras — se você enviar ETH para um endereço de doação, não receberá nenhuma doação/airdrop e não poderá recuperar seus fundos. - -[Mais sobre prevenção de fraudes](/security/#common-scams) - -#### Minha transação está bloqueada {#stuck-transaction} - -Transações em Ethereum podem algumas vezes ficar bloqueadas se você tiver enviado uma taxa de transação menor do que a necessária devido à demanda na rede. Muitas carteiras oferecem uma opção para reenviar a mesma transação com uma taxa de transação maior para permitir que a transação seja processada. Como alternativa, você pode cancelar uma transação pendente enviando uma transação para seu próprio endereço e usando o mesmo nonce que a transação pendente. - -[Como acelerar ou cancelar uma transação pendente no MetaMask](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) - -[Como cancelar transações pendentes no Ethereum](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) - -#### Como minero Ethereum? {#mining-ethereum} - -A mineração do Ethereum não é mais possível. A mineração foi desativada quando o Ethereum passou de prova de trabalho para prova de participação. Agora, em vez de mineradores, o Ethereum tem validadores. Os validadores participam com ETH e recebem recompensas de aposta para proteger a rede. - -#### Como me torno um participante/validador? {#become-validator} - -Para se tornar um validador, você deve participar com 32 ETH no contrato de depósito do Ethereum e configurar um nó validador. Mais informações estão disponíveis em nossas [páginas de participação](/staking) e na [plataforma de lançamento de participação](https://launchpad.ethereum.org/). diff --git a/src/content/translations/pt-br/contributing/translation-program/translators-guide/index.md b/src/content/translations/pt-br/contributing/translation-program/translators-guide/index.md deleted file mode 100644 index 1235191baaa..00000000000 --- a/src/content/translations/pt-br/contributing/translation-program/translators-guide/index.md +++ /dev/null @@ -1,293 +0,0 @@ ---- -title: Guia para tradutores -lang: pt-br -description: Instruções e dicas para os tradutores do ethereum.org ---- - -# Guia de Estilo de Tradução do Ethereum.org {#style-guide} - -O Guia de Estilo de Tradução do ethereum.org contém algumas das diretrizes, instruções e dicas mais importantes para os tradutores, que nos ajudam a traduzir o site. - -Este documento serve como um guia geral e não é específico para nenhum idioma. - -Se você tiver alguma dúvida, sugestão ou feedback, entre em contato conosco em translations@ethereum.org, envie uma mensagem para @ethdotorg no Crowdin, ou [inscreva-se no nosso Discord](https://discord.gg/ethereum-org), onde você poderá nos enviar mensagens no canal #translations ou entrar em contato com qualquer um dos membros da equipe. - -### Como usar o Crowdin {#using-crowdin} - -Você pode encontrar instruções básicas sobre como participar do projeto no Crowdin e como usar o editor online do Crowdin na [página do Programa de Tradução](/contributing/translation-program/#how-to-translate). - -Se você quiser saber mais sobre o Crowdin e usar alguns dos seus recursos avançados, a [Base de conhecimento do Crowdin](https://support.crowdin.com/online-editor/) contém vários de guias detalhados e resumos de todas as funcionalidades do Crowdin. - -### Captando a essência da mensagem {#capturing-the-essence} - -Ao traduzir o conteúdo do ethereum.org, evite traduções literais. - -É importante que as traduções captem a essência da mensagem. Isso pode significar reformular certas frases ou usar traduções descritivas em vez de traduzir o conteúdo palavra por palavra. - -Idiomas diferentes têm diferentes regras gramaticais, convenções e ordem de palavras. Ao traduzir, tenha em mente como as frases são estruturadas no idioma de destino e evite traduzir literalmente do inglês, pois isso pode resultar em um texto mal estruturado e difícil de compreender. - -Em vez de traduzir o texto de origem palavra por palavra, é recomendado ler toda a frase e adaptá-la para que ela se adapte às convenções do idioma de destino. - -### Formal ou informal {#formal-vs-informal} - -Utilizamos linguagem formal, que é sempre mais educada e apropriada a todos os visitantes. - -O uso do estilo formal nos permite evitar soarmos ofensivos ou inapropriados, e funciona independentemente da idade e sexo do visitante. - -A maioria dos idiomas indo-europeus e afro-asiáticos utiliza pronomes pessoais em segunda pessoa específicos de gênero, que fazem a distinção entre masculino e feminino. Quando nos dirigimos ao usuário ou usamos pronomes possessivos, podemos evitar supor o sexo do visitante, uma vez que a maneira formal de tratamento é geralmente aplicável e consistente, independentemente da forma como se identificam. - -### Vocabulário simples e claro {#simple-vocabulary} - -Nosso objetivo é tornar o conteúdo do site compreensível para o maior número de pessoas possível. - -Na maioria dos casos, isso pode ser facilmente alcançado através da utilização de palavras curtas e simples, que sejam facilmente compreensíveis. Se existirem várias traduções possíveis para uma determinada palavra no seu idioma com o mesmo significado, a melhor opção é, na maioria das vezes, a palavra mais curta que reflita claramente o significado. - -### Sistema de escrita {#writing-system} - -O ethereum.org está disponível em vários idiomas, utilizando sistemas de escrita (ou scripts de escrita) diferentes do sistema latino. - -Todo o conteúdo deve ser traduzido usando a norma padrão de seu idioma, e não deve incluir nenhuma palavra em caracteres latinos. - -Ao traduzir o conteúdo, você deve garantir que a tradução está correta. - -Um engano comum é o de que Ethereum deve ser escrito sempre em caracteres latinos. Essa é uma ideia incorreta, por isso, use a grafia do Ethereum de acordo com seu idioma nativo (por exemplo, 以太坊 em chinês, إيثيريوم em árabe, etc.). - -**O mencionado acima não se aplica a idiomas em que nomes próprios não devem ser traduzidos como regra geral.** - -### Traduzindo metadados da página {#translating-metadata} - -Algumas páginas contêm metadados, como "title", "lang", "description", "sidebar", etc. - -Ocultamos o conteúdo que os tradutores nunca devem traduzir ao carregar novas páginas no Crowdin, ou seja, todos os metadados visíveis aos tradutores no Crowdin devem ser traduzidos. - -Esteja atento ao traduzir quaisquer frases em que o texto de origem seja "en". Isso representa o idioma no qual a página está disponível e deve ser traduzida para o [código de idioma ISO para o seu idioma.](https://www.andiamo.co.uk/resources/iso-language-codes/). Essas frases devem sempre ser traduzidas usando caracteres latinos, e não o script de escrita nativo do idioma de destino. - -Se você não tem certeza de qual código de idioma usar, você pode verificar a memória de tradução no Crowdin ou encontrar o código de idioma para o seu idioma na URL da página no editor online do Crowdin. - -Alguns exemplos de códigos para os idiomas mais falados: - -- Árabe - ar -- Chinês Simplificado - zh -- Francês - fr -- Híndi - hi -- Espanhol - es - -### Títulos de artigos externos {#external-articles} - -Algumas frases contêm títulos de artigos externos. A maioria das nossas páginas de desenvolvedor contém links para artigos externos para uma leitura mais aprofundada. As frases que contêm títulos de artigos precisam ser traduzidas, independentemente do idioma do artigo, para garantir uma experiência de usuário mais eficiente para quem quiser acessar a página em seu idioma. - -Você pode encontrar alguns exemplos de como essas frases aparecem para os tradutores e como identificá-las abaixo (os links para artigos podem ser encontrados na parte inferior destas páginas, na seção "Leitura adicional"): - -![Títulos de artigos no sidebar.png](./article-titles-in-sidebar.png) ![Títulos de artigos no editor.png](./article-titles-in-editor.png) - -### Alertas do Crowdin {#crowdin-warnings} - -O Crowdin tem um recurso integrado que alerta os tradutores quando eles estão prestes a cometer um erro. O Crowdin avisará automaticamente antes de salvar sua tradução, caso você se esqueça de incluir uma tag da fonte, traduzir elementos que não devem ser traduzidos, adicionar espaços adicionais ou se esqueça da pontuação final, etc. Se você vir um aviso como este, verifique novamente a tradução sugerida. - -**Nunca ignore esses avisos, pois significa que algo está errado, ou está faltando uma parte importante do texto original.** - -Um exemplo de alerta do Crowdin quando você se esquece de adicionar uma tag à sua tradução: ![Exemplo de um aviso do Crowdin](./crowdin-warning-example.png) - -### Lidando com tags e trechos de código {#dealing-with-tags} - -Grande parte do conteúdo fonte contém tags e variáveis, que são destacadas em amarelo no editor do Crowdin. Elas desempenham funções diferentes e devem ser abordadas corretamente. - -**Configurações do Crowdin** - -Para tornar mais fácil gerenciar tags e copiá-las diretamente da fonte, recomendamos alterar as suas configurações no editor do Crowdin. - -1. Abra as configurações ![Como abrir as configurações no editor](./editor-settings.png) - -2. Role para baixo até a seção "Exibição de tags HTML" - -3. Selecione "Ocultar" ![Selecione "Ocultar"](./hide-tags.png) - -4. Clique em "Salvar" - -Ao selecionar esta opção, o texto completo da tag não será mais exibido e será substituído por um número. Ao traduzir, clicar nesta tag copiará automaticamente a tag exata para o campo de tradução. - -**Links** - -Você verá os links completos para páginas no ethereum.org ou em outros sites. - -Eles devem ser idênticos ao texto de origem e não devem ser alterados ou traduzidos. Se você traduzir um link ou mudá-lo de alguma forma, mesmo removendo apenas uma parte dele, como uma barra (/), isso corromperá os links e os inutilizará. - -A melhor maneira de lidar com links é copiá-los diretamente da fonte, clicando sobre eles ou usando o botão "Copiar texto" (Alt+C). - -![Exemplo de link.png](./example-of-link.png) - -Os links também aparecem no texto de origem na forma de tags (por exemplo, <0> ). Se você passar o mouse por cima da tag, o editor exibirá seu conteúdo completo. Às vezes, essas tags representarão links. - -É muito importante copiar os links da origem e não mudar a sua ordem. - -Se a ordem das tags for alterada, o link que elas representam será desfeito. - -![Exemplo de links dentro de tags.png](./example-of-links-inside-tags.png) - -**Tags e variáveis** - -O texto original contém diversos tipos de tags, que devem sempre ser copiadas da fonte e nunca alteradas. Como explicado acima, a ordem dessas tags na tradução também deve permanecer a mesma da origem. - -As tags sempre contêm uma identificação de abertura e fechamento. Geralmente, o texto entre as tags de abertura e fechamento deve ser traduzido. - -Exemplo: ``Descentralizado`` - -`` — _Tag de abertura que deixa o texto em negrito_ - -Descentralizado — _Texto traduzível_ - -`` — _Tag de fechamento_ - -![Exemplo de tags.png ''fortes"](./example-of-strong-tags.png) - -Os trechos de código (snippets) devem ser abordados de maneira ligeiramente diferente das outras tags por conterem código que não deveria ser traduzido. - -Exemplo: ``nonce`` - -`` — _Tag de abertura, que contém um trecho de código_ - -nonce — _Texto não traduzível_ - -`` — _Tag de fechamento_ - -![Exemplo de código snippets.png](./example-of-code-snippets.png) - -O texto original também contém tags abreviadas, que contêm apenas números, o que significa que sua função não é imediatamente óbvia. Você pode passar o mouse sobre essas tags para ver exatamente para qual função elas servem. - -No exemplo abaixo, ao passar o mouse sobre a <0> tag mostra que ela representa `` e contém um trecho de código. Portanto, o conteúdo dentro dessas tags não deve ser traduzido. - -![Exemplo de tags.png ambíguas](./example-of-ambiguous-tags.png) - -### Formas/abreviaturas curtas vs. completas {#short-vs-full-forms} - -Existem muitas abreviações usadas no site, por exemplo, dapps, NFT, DAO, DeFi, etc. Essas abreviações são comumente usadas em inglês e a maioria dos visitantes do site estão familiarizados com elas. - -Como elas geralmente não têm traduções estabelecidas em outros idiomas, a melhor maneira de abordar esses e outros termos semelhantes é fornecer uma tradução descritiva do formulário completo e adicionar a abreviação inglesa em parênteses. - -Não traduza essas abreviaturas, já que a maioria das pessoas não estaria familiarizada com elas e as versões localizadas não fariam muito sentido para a maioria dos visitantes. - -Exemplo de como traduzir dapps: - -- Aplicativos descentralizados (dapps) → _Formulário completo traduzido (abreviação em inglês entre parênteses)_ - -### Termos sem traduções estabelecidas {#terms-without-established-translations} - -Alguns termos podem não ter traduções estabelecidas em outros idiomas e são mais conhecidos pelo termo original em inglês. Esses termos incluem principalmente conceitos novos, como proof-of-work, proof-of-stake, Beacon Chain, staking, etc. - -Embora traduzir esses termos possa parecer não natural, já que a versão em inglês é comumente usada também em outros idiomas, é altamente recomendado que eles sejam traduzidos. - -Ao traduzi-los, sinta-se livre para ser criativo, use traduções descritivas ou simplesmente traduza-os literalmente. - -**A razão pela qual a maioria dos termos deveria ser traduzida, em vez ser deixada em inglês, é que essa nova terminologia se tornará mais difundida no futuro, à medida que mais pessoas começarem a usar o Ethereum e tecnologias relacionadas. Se queremos envolver mais pessoas de todo o mundo nesse espaço, precisamos fornecer uma terminologia compreensível no maior número possível de idiomas, mesmo que precisemos criá-la nós mesmos.** - -### Botões e chamadas para a ação (CTAs) {#buttons-and-ctas} - -O site contém vários botões, que devem ser traduzidos de forma diferente dos outros tipos de conteúdo. - -O texto do botão pode ser identificado visualizando o contexto das telas capturadas, conectadas com a maioria das frases, ou verificando o contexto no editor, que inclui a frase 'botão'. - -As traduções dos botões devem ser o mais curtas possível, para evitar incompatibilidade de formatação. Além disso, as traduções dos botões devem ter o verbo no imperativo, ou seja, apresentar um comando ou solicitação. - -![Como encontrar um botão.png](./how-to-find-a-button.png) - -### Traduzindo de forma inclusiva {#translating-for-inclusivity} - -Os visitantes do ethereum.org vêm de todo o mundo e de diferentes origens. Por conseguinte, a linguagem utilizada no site deve ser neutra, acolhedora para todos e inclusiva. - -Um aspecto importante dessa questão é a neutralidade de gênero. Isso é fácil de se obter com o uso de linguagem de tratamento formal e evitando quaisquer palavras específicas de gênero nas traduções. - -Outra forma de inclusão é tentar traduzir para um público global, sem especificidades de país, raça ou região. - -Por último, a língua deve ser adequada para todos os públicos e todas as idades. - -## Traduções específicas de um idioma {#language-specific-translations} - -Ao traduzir, é importante seguir as regras gramaticais, convenções e formatação usadas em seu idioma, em vez de copiá-las do idioma de origem. O texto de origem segue as regras e convenções gramaticais do inglês, o que não é aplicável a muitos outros idiomas. - -Você deve estar ciente das regras do seu idioma e traduzir de acordo com elas. Se precisar de ajuda, entre em contato conosco e ajudaremos você a encontrar alguns recursos sobre como esses elementos devem ser utilizados no seu idioma. - -Aqui estão alguns exemplos a que você deve ter atenção: - -### Pontuação, formatação {#punctuation-and-formatting} - -**Regras de uso de maiúsculas e minúsculas** - -- Há grandes diferenças de uso de maiúsculas e minúsculas em diferentes idiomas. -- Em inglês, é comum colocar a primeira letra de todas as palavras em títulos e nomes, meses e dias, nomes de idiomas, feriados, etc. em maiúsculas. Em muitas outras línguas, isso é gramaticalmente incorreto, já que elas têm diferentes regras de uso de maiúsculas e minúsculas. -- Alguns idiomas também têm regras de uso de maiúsculas de pronomes pessoais, substantivos e alguns adjetivos, diferentes do inglês. - -**Espaçamento** - -- As regras da ortografia definem o uso de espaços para cada língua. Como os espaços são usados em toda a parte, essas regras são frequentemente bem específicas e estão entre os elementos mais mal traduzidos. -- Algumas diferenças comuns de espaçamento entre inglês e outras línguas: - - Espaço antes das unidades de medida e moedas (por exemplo: USD, EUR, kB, MB) - - Espaço antes dos sinais de graus (ex.: °C, °F) - - Espaço antes de algumas marcas de pontuação, especialmente as reticências (…) - - Espaço antes e após barras (/) - -**Listas** - -- Toda língua tem um conjunto diversificado e complexo de regras para escrever listas. Elas podem ser significativamente diferentes do inglês. -- Em algumas línguas, a primeira palavra de cada nova linha precisa ser colocada em maiúscula, enquanto em outras, novas linhas devem começar com letras minúsculas. Muitas línguas também têm regras diferentes sobre o uso de maiúsculas em listas, dependendo do tamanho de cada linha. -- O mesmo se aplica à pontuação de itens de linha. A pontuação final em listas pode ser um ponto (**.**), vírgula (**,**), ou ponto e vírgula (**;**), dependendo do idioma. - -**Aspas** - -- Os idiomas usam muitas aspas diferentes. Frequentemente, é incorreto simplesmente copiar as aspas do inglês. -- Alguns dos tipos mais comuns de aspas são: - - „texto de exemplo“ - - ‚texto de exemplo’ - - »texto de exemplo« - - “texto de exemplo” - - ‘texto de exemplo’ - - «texto de exemplo» - -**Hifens e traços** - -- Em inglês, um hífen (-) é usado para juntar palavras ou diferentes partes de uma palavra, enquanto um traço (–) é usado para indicar intervalo ou pausa. -- Muitas línguas têm regras diferentes para o uso de hifens e traços que devem ser respeitadas. - -### Formatos {#formats} - -**Números** - -- A principal diferença entre is idiomas em relação à escrita de números é o separador usado para números decimais e milhares. Para milhares, isso pode ser um ponto, vírgula ou espaço. Da mesma forma, alguns idiomas usam um ponto decimal, enquanto outros usam uma vírgula decimal. - - Alguns exemplos de números grandes: - - Inglês — **1,000.50** - - Espanhol — **1.000,50** - - Francês — **1 000,50** -- Outra consideração importante ao traduzir números é o sinal de percentagem. Ele pode ser escrito de diferentes formas: **100%**, **100 %** ou **%100**. -- Por fim, números negativos podem ser exibidos de formas diferentes, dependendo do idioma: -100, 100-, (100) ou [100]. - -**Datas** - -- Ao traduzir datas, há várias considerações e diferenças dependendo do idioma. Eles incluem o formato de data, separador, uso de maiúsculas e minúsculas e zeros à esquerda. Também existem diferenças entre datas completas e datas numéricas. - - Alguns exemplos de diferentes formatos de data: - - Inglês britânico (dd/mm/yyyy) — 1st January, 2022 - - Inglês americano (dd/mm/yyyy) — January 1st, 2022 - - Chinês (yyyy-mm-dd) — 2022 年 1 月 1 日 - - Francês (dd/mm/yyyy) — 1er janvier 2022 - - Italiano (dd/mm/yyyy) — 1º gennaio 2022 - - Alemão (dd/mm/yyyy) — 1. Januar 2022 - -**Moedas** - -- A tradução de moedas pode ser desafiadora, devido aos diferentes formatos, convenções e conversões. Como regra geral, mantenha as moedas iguais à fonte. Você pode adicionar sua moeda local e conversão entre colchetes, para ajudar a compreensão do leitor. -- As principais diferenças na escrita das moedas em diferentes idiomas incluem posicionamento de símbolos, vírgulas decimais versus pontos decimais, espaçamento e abreviações versus símbolos. - - Posicionamento do símbolo: $100 ou 100$ - - Vírgulas decimais versus pontos decimais: 100,50$ ou 100.50$ - - Espaçamento: 100$ ou 100 $ - - Abreviações versus símbolos: 100 $ ou 100 USD - -**Unidades de medida** - -- Como regra geral, mantenha as unidades de medida iguais ao texto original. Se o seu país usa um sistema diferente, você pode incluir a conversão entre parênteses. -- Além da localização das unidades de medida, também é importante observar as diferenças na forma como as línguas abordam essas unidades. A principal diferença é o espaçamento entre o número e a unidade, que pode diferir dependendo da língua. Por exemplo: 100kB versus 100 kB ou 50ºF versus 50 ºF. - -### Conclusão {#conclusion} - -A tradução do ethereum.org é uma ótima oportunidade para aprender sobre os diferentes aspectos do Ethereum. - -Procure não ter pressa ao traduzir. Vá com calma e divirta-se! - -Agradecemos sua participação no Programa de Tradução e sua ajuda para tornar o site acessível a um público maior. A comunidade Ethereum é global e estamos felizes por você fazer parte dela! diff --git a/src/content/translations/pt-br/dao/index.md b/src/content/translations/pt-br/dao/index.md deleted file mode 100644 index 850420fa0f8..00000000000 --- a/src/content/translations/pt-br/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: Organizações autônomas descentralizadas (DAOs) -description: Uma visão geral de DAOs no Ethereum -lang: pt-br -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: Uma representação de uma votação DAO em uma proposta. -summaryPoint1: Comunidades de membros sem liderança centralizada. -summaryPoint2: Uma maneira segura de colaborar com desconhecidos na Internet. -summaryPoint3: Um local seguro para destinar fundos para uma causa específica. ---- - -## O que são DAOs? {#what-are-daos} - -Uma DAO é uma organização de propriedade coletiva governada por blockchain que trabalha para uma missão compartilhada. - -As DAOs permitem-nos trabalhar com pessoas que pensam da mesma maneira em todo o mundo sem confiar em um líder benevolente para gerenciar os fundos ou as operações. Não há CEO que possa gastar fundos por impulso ou CFO que capaz de manipular as contas. Em vez disso, as regras baseadas em blockchain incorporadas ao código definem como a organização funciona e como os fundos são gastos. - -Elas possuem receitas integradas que não podem ser acessadas por ninguém sem a aprovação do grupo. As decisões são regidas por propostas e votações para garantir que todos na organização tenham voz e tudo aconteça de forma transparente na cadeia. - -## Por que precisamos de DAOs? {#why-dao} - -Começar uma organização com alguém que envolva financiamento e dinheiro requer muita confiança nas pessoas com as quais você está trabalhando. Mas é difícil confiar em alguém que você só interagiu pela Internet. Com DAOs você não precisa confiar em mais ninguém no grupo, apenas no código da DAO, que é 100% transparente e verificável por todos. - -Isto abre muitas novas oportunidades para a colaboração e coordenação globais. - -### Uma comparação {#dao-comparison} - -| DAO | Uma empresa tradicional | -| --------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | -| Hierarquia horizontal e totalmente democratizada. | Hierarquia vertical. | -| Votação exigida pelos membros para que quaisquer alterações sejam implementadas. | Dependendo da estrutura, as mudanças podem ser requeridas por uma única parte, ou ter opção de voto. | -| Votos conhecidos e resultados implementados automaticamente sem intermediário confiável. | Se a votação é permitida, os votos são homologados internamente e o resultado da votação tem de ser tratado manualmente. | -| Os serviços oferecidos são tratados automaticamente de forma descentralizada (por exemplo, distribuição de fundos filantrópicos). | Requer manipulação humana, ou automação controlada centralmente, propensa a manipulação. | -| Toda a atividade é transparente e totalmente pública. | A atividade é tipicamente privada e limitada ao público. | - -### Exemplos de DAOs {#dao-examples} - -Para dar um pouco de contexto, veja alguns exemplos de como você poderia usar uma DAO: - -- Uma instituição de caridade – você pode aceitar doações de qualquer pessoa no mundo e votar em quais causas financiar. -- Propriedade coletiva – você pode comprar ativos físicos ou digitais e os membros podem votar sobre como usá-los. -- Venture de capital e recompensas: você pode criar um fundo de investimento capitalizado que reúne e vota em quais ventures apoiar. O rendimento do dinheiro aplicado poderia mais tarde ser redistribuído entre os membros da DAO. - -## Como funcionam as DAOs? {#how-daos-work} - -A espinha dorsal de uma DAO é seu contrato inteligente, que define as regras da organização e mantém a tesouraria do grupo. Quando o contrato for publicado no Ethereum, ninguém poderá alterar as regras, exceto por votação. Se alguém tentar fazer algo que não esteja coberto pelas regras e lógica do código, não terá sucesso. E como a tesouraria é definida pelo contrato inteligente, também significa que ninguém pode gastar o dinheiro sem a aprovação do grupo. Isso significa que as DAOs não precisam de uma autoridade central. Em vez disso, o grupo toma decisões coletivas e os pagamentos são autorizados automaticamente quando os votos são aprovados. - -Isso é possível porque os contratos inteligentes são imunes a adulterações quando são implementados no Ethereum. Você não pode simplesmente editar o código (as regras das DAOs) sem que as pessoas percebam porque tudo é público. - - - Mais sobre contratos inteligentes - - -## Ethereum e DAOs {#ethereum-and-daos} - -O Ethereum é a base perfeita para DAOs por várias razões: - -- O próprio consenso do Ethereum é distribuído e estabelecido o suficiente para que as organizações confiem na rede. -- O código do contrato inteligente não pode ser modificado uma vez lançado, nem mesmo por seus proprietários. Isto permite que a DAO funcione segundo as regras com que foi programada. -- Os contratos inteligentes podem enviar/receber fundos. Sem isso, você precisaria de um intermediário confiável para gerenciar os fundos do grupo. -- A comunidade Ethereum provou ser mais colaborativa do que competitiva, permitindo que as melhores práticas e sistemas de suporte surjam rapidamente. - -## Governança DAO {#dao-governance} - -Há muitas considerações ao governar um DAO, como o funcionamento da votação e das propostas. - -### Delegação {#governance-delegation} - -A delegação é como a versão DAO da democracia representativa. Os detentores de tokens delegam votos a usuários que se autonomeiam e se comprometem a administrar o protocolo e permanecer informados. - -#### Um exemplo famoso {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) – Os titulares de ENS (Ethereum Name Service) podem delegar seus votos a membros da comunidade engajados para representá-los. - -### Governança automática de transações {#governance-example} - -Em muitas DAOs, as transações serão executadas automaticamente se um quórum de membros votar afirmativamente. - -#### Um exemplo famoso {#governance-example} - -[Nouns](https://nouns.wtf) – No Nouns DAO, uma transação é executada automaticamente se o quórum de votos for satisfeito e a maioria dos votos for afirmativa, desde que não seja vetada pelos fundadores. - -### Governança Multisig {#governance-example} - -Embora as DAOs possam ter milhares de membros votantes, os fundos podem ficar em uma carteira compartilhada por 5 a 20 membros ativos da comunidade que são confiáveis e geralmente conhecidos publicamente (identidades públicas conhecidas pela comunidade). Após uma votação, os assinantes multisig executam a vontade da comunidade. - -## Leis DAO {#dao-laws} - -Em 1977, Wyoming inventou a LLC, que protege os empreendedores e limita a responsabilidade deles. Mais recentemente, eles foram pioneiros na lei DAO que estabelece o status legal para DAOs. Atualmente Wyoming, Vermont e as Ilhas Virgens têm leis DAO de alguma forma. - -#### Um exemplo famoso {#law-example} - -[CityDAO](https://citydao.io) – CityDAO usou a lei DAO do Wyoming para comprar 40 acres de terra perto do Parque Nacional de Yellowstone. - -## Adesão à DAO {#dao-membership} - -Existem diferentes modelos para a adesão à DAO. A adesão pode determinar como funciona a votação e outras partes fundamentais da DAO. - -### Adesão baseada em token {#token-based-membership} - -Normalmente, sem necessidade de permissão para utilizar, dependendo do token usado. Principalmente esses tokens de governança podem ser negociados sem permissão em uma corretora descentralizada. Outros devem ser obtidos através do fornecimento de liquidez ou alguma outra “prova de trabalho”. De qualquer forma, a simples detenção do token permite o acesso à votação. - -_Normalmente usado para governar amplos protocolos descentralizados e/ou tokens._ - -#### Um exemplo famoso {#token-example} - -[MakerDAO](https://makerdao.com) – O token MKR do MakerDAO está amplamente disponível em corretoras descentralizadas e qualquer pessoa pode comprar o poder de voto no futuro do protocolo Maker. - -### Adesão compartilhada {#share-based-membership} - -As DAOs compartilhadas são mais restritas, mas ainda bem abertas. Qualquer membro potencial pode apresentar uma proposta para participar da DAO, geralmente com uma contribuição sob a forma de tokens ou trabalho. Cotas representam o poder de voto e a propriedade. Os membros podem sair a qualquer momento, com a sua tesouraria proporcional. - -_Normalmente utilizado em organizações mais coesas e com abordagem humanitária, como instituições de caridade, cooperativas e clubes de investimento. Também podem controlar protocolos e tokens._ - -#### Um exemplo famoso {#share-example} - -[MolochDAO](http://molochdao.com/) – MolochDAO foca no financiamento dos projetos Ethereum. Exigem uma proposta de adesão para que o grupo possa avaliar se você dispõe dos conhecimentos especializados e do capital necessários para fazer considerações fundamentadas sobre potenciais donatários. Você não pode simplesmente comprar acesso à DAO no mercado aberto. - -### Adesão baseada em reputação {#reputation-based-membership} - -A reputação representa a prova de participação e concede poder de voto na DAO. Diferentemente de adesões baseadas em ações ou tokens, as DAOs baseadas em reputação não transferem a propriedade para seus colaboradores. Reputação não pode ser comprada, transferida ou delegada; os membros da DAO devem ganhar reputação por meio de participação. A votação em cadeia não requer permissão e os potenciais membros podem apresentar propostas livremente para ingressar na DAO e solicitar o recebimento de reputação e tokens como recompensa em troca de suas contribuições. - -_Normalmente usado para desenvolvimento descentralizado e governança de protocolos e dApps, mas também adequado para um conjunto diversificado de organizações como instituições de caridade, coletivos de trabalhadores, clubes de investimento etc._ - -#### Um exemplo famoso {#reputation-example} - -[DXdao](https://DXdao.eth.link) – O DXdao é um coletivo soberano global que cria e governa protocolos e aplicativos descentralizados desde 2019. Ele alavanca a governança baseada na reputação e o consenso holográfico para coordenar e gerenciar fundos, o que significa que ninguém pode comprar seu caminho para influenciar seu futuro. - -## Iniciar/participar de uma DAO {#join-start-a-dao} - -### Participe de uma DAO {#join-a-dao} - -- [DAOs da comunidade Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [Lista DAOHaus's de DAOs](https://app.daohaus.club/explore) -- [Lista Tally.xyz de DAOs](https://www.tally.xyz) - -### Inicie uma DAO {#start-a-dao} - -- [Comece uma DAO com DAOHaus](https://app.daohaus.club/summon) -- [Inicie uma DAO de Governança com sistema de contagem](https://www.tally.xyz/add-a-dao) -- [Criar uma DAO suportada por Aragon](https://aragon.org/product) -- [Inicie uma colônia](https://colony.io/) -- [Crie uma DAO com o consenso holográfico de DAOstack](https://alchemy.daostack.io/daos/create) - -## Leitura adicional {#further-reading} - -### Artigos sobre DAOs {#dao-articles} - -- [O que é uma DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) -- [O Manual da DAO](https://daohandbook.xyz) -- [Casa das DAOs](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) -- [O que é uma DAO e para que serve?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) -- [Como começar uma comunidade digital alimentada por DAO](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) -- [O que é uma DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) -- [O que é Consenso Holográfico?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) -- [DAOs não são corporações: onde a descentralização em organizações autônomas é importante para Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) -- [DAOs, DACs, DAs e mais: Um Guia Terminológico Incompleto](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Blog Ethereum](https://blog.ethereum.org) - -### Vídeos {#videos} - -- [O que é uma DAO em cripto?](https://youtu.be/KHm0uUPqmVE) -- [Uma DAO pode construir uma cidade?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/src/content/translations/pt-br/decentralized-identity/index.md b/src/content/translations/pt-br/decentralized-identity/index.md deleted file mode 100644 index 5a60ca0db79..00000000000 --- a/src/content/translations/pt-br/decentralized-identity/index.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: Identidade descentralizada -description: O que é uma identidade descentralizada e por que isso importa? -lang: pt-br -template: use-cases -emoji: ":id:" -sidebarDepth: 2 -image: ../../../../assets/eth-gif-cat.png -summaryPoint1: Os sistemas de identidade tradicionais centralizaram a emissão, manutenção e controle de seus identificadores. -summaryPoint2: A identidade descentralizada elimina a dependência de terceiros centralizados. -summaryPoint3: Graças à criptografia, os usuários agora têm as ferramentas para emitir, manter e controlar seus próprios identificadores e atestações novamente. ---- - -A identidade sustenta virtualmente todos os aspectos da sua vida hoje. Usar serviços on-line, abrir uma conta bancária, votar em eleições, comprar propriedades, garantir um emprego – todas essas coisas exigem que você prove sua identidade. - -Entretanto, os sistemas tradicionais de gerenciamento de identidade há muito tempo dependem de intermediários centralizados que emitem, mantêm e controlam seus identificadores e [atestados](#what-are-attestations). Isso significa que você não pode controlar as informações relacionadas à sua identidade ou decidir quem tem acesso às informações de identificação pessoal (PII) e quanto acesso essas partes têm. - -Para resolver esses problemas, temos sistemas de identidade descentralizados construídos em blockchains públicos como o Ethereum. A identidade descentralizada permite que indivíduos gerenciem informações relacionadas à sua identidade. Com soluções de identidade descentralizadas, _você_ pode criar identificadores e reivindicar e manter seus atestados sem depender de autoridades centrais, como provedores de serviços ou governos. - -## O que é identidade? {#what-is-identity} - -Identidade significa o sentido de si próprio de um indivíduo, definido por características únicas. Identidade refere-se a ser um _indivíduo_, ou seja, uma entidade humana distinta. A identidade também pode se referir a outras entidades não humanas, como uma organização ou autoridade. - -## O que são identificadores? {#what-are-identifiers} - -Um identificador é uma informação que atua como um ponteiro para uma identidade ou identidades específicas. Identificadores comuns incluem: - -- Nome -- Número da seguro social/número de identificação fiscal -- Número de celular -- Data e local de nascimento -- Credenciais de identificação digital, por exemplo, endereços de e-mail, nomes de usuário, avatares - -Esses exemplos tradicionais de identificadores são emitidos, mantidos e controlados por entidades centrais. Você precisa de permissão do seu governo para alterar seu nome ou de uma plataforma de mídia social para alterar seu nome. - -## O que são atestados? {#what-are-attestations} - -Um atestado é uma reivindicação feita por uma entidade sobre outra entidade. Se você mora nos Estados Unidos, a carteira de motorista emitida a você pelo Departamento de Veículos Motorizados (uma entidade) atesta que você (outra entidade) tem permissão legal para dirigir um carro. - -Atestados são diferentes de identificadores. Um atestado _contém_ identificadores para referir-se a uma identidade específica e faz uma declaração sobre um atributo relacionado a essa identidade. Portanto, sua carteira de motorista possui identificadores (nome, data de nascimento, endereço), mas também é o atestado sobre seu direito legal de dirigir. - -### O que são identificadores descentralizados? {#what-are-decentralized-identifiers} - -Identificadores tradicionais como seu nome legal ou endereço de e-mail dependem de terceiros – governos e provedores de e-mail. Os identificadores descentralizados (DIDs) são diferentes — eles não são emitidos, gerenciados ou controlados por qualquer entidade central. - -Os identificadores descentralizados são emitidos, mantidos e controlados por indivíduos. Uma [conta Ethereum](/developers/docs/accounts/) é um exemplo de identificador descentralizado. Você pode criar quantas contas quiser sem permissão de ninguém e sem a necessidade de armazená-las em um registro central. - -Os identificadores descentralizados são armazenados em livros-razões distribuídos (blockchains) ou redes ponto a ponto. Isso torna os DIDs [globalmente exclusivos, solucionáveis com alta disponibilidade e verificáveis criptograficamente](https://w3c-ccg.github.io/did-primer/). Um identificador descentralizado pode ser associado a diferentes entidades, incluindo pessoas, organizações ou instituições governamentais. - -## O que torna os identificadores descentralizados possíveis? {#what-makes-decentralized-identifiers-possible} - -### 1. Infraestrutura de chave pública (PKI) {#public-key-infrastructure} - -A infraestrutura de chave pública (PKI) é uma medida de segurança da informação que gera uma [chave pública](/glossary/#public-key) e uma [ chave privada](/glossary/#private-key) para uma entidade. A criptografia de chave pública é usada em redes blockchain para autenticar identidades de usuários e provar a propriedade de ativos digitais. - -Alguns identificadores descentralizados, como uma conta Ethereum, possuem chaves públicas e privadas. A chave pública identifica o controlador da conta, enquanto as chaves privadas podem assinar e descriptografar mensagens para essa conta. A PKI fornece as provas necessárias para autenticar entidades e evitar falsificação e uso de identidades falsas, usando [assinaturas criptográficas](https://andersbrownworth.com/blockchain/public-private-keys/) para verificar todas as reivindicações. - -### 2. Armazenamentos de dados descentralizados {#decentralized-datastores} - -Um blockchain serve como um registro de dados verificável: um repositório de informações aberto, com necessidade mínima de confiança e descentralizado. A existência de blockchains públicos elimina a necessidade de armazenar identificadores em registros centralizados. - -Se alguém precisar confirmar a validade de um identificador descentralizado, ele poderá procurar a chave pública associada no blockchain. Isso difere dos identificadores tradicionais que exigem autenticação de terceiros. - -## Como os identificadores e atestados descentralizados permitem a identidade descentralizada? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} - -A identidade descentralizada é a ideia de que as informações relacionadas à identidade devem ser autocontroladas, privadas e portáteis, com identificadores descentralizados e atestações sendo os principais blocos de construção. - -No contexto da identidade descentralizada, os atestados (também conhecidos como [Credenciais verificáveis](https://www.w3.org/TR/vc-data-model/)) são declarações à prova de adulteração e criptograficamente verificáveis feitas pelo emissor. Cada atestado ou credencial verificável de uma entidade (por exemplo, uma organização) está associada ao seu DID. - -Como os DIDs são armazenados no blockchain, qualquer pessoa pode verificar a validade de um atestado verificando o DID do emissor no Ethereum. Essencialmente, o blockchain Ethereum atua como um diretório global que permite a verificação de DIDs associados a determinadas entidades. - -Os identificadores descentralizados são o motivo de os atestados serem autocontrolados e verificáveis. Mesmo que o emissor não exista mais, o titular sempre tem a comprovação da procedência e validade do atestado. - -Os identificadores descentralizados também são cruciais para proteger a privacidade das informações pessoais por meio da identidade descentralizada. Por exemplo, se um indivíduo apresentar prova de um atestado (carteira de motorista), a parte verificadora não precisa verificar a validade das informações na prova. Em vez disso, o verificador precisa apenas de garantias criptográficas da autenticidade do atestado e da identidade da organização emissora para determinar se a prova é válida. - -## Categorias de atestados na identidade descentralizada {#types-of-attestations-in-decentralized-identity} - -Como as informações de atestado são armazenadas e recuperadas em um ecossistema de identidade baseado em Ethereum difere do gerenciamento de identidade tradicional. Aqui está uma visão geral das várias abordagens para emitir, armazenar e verificar atestados em sistemas de identidade descentralizados: - -### Atestados Off-Chain {#off-chain-attestations} - -Uma das preocupações com o armazenamento de certificados na cadeia é que eles podem conter informações que os usuários queiram manter privadas. A natureza pública da blockchain Ethereum a torna não atraente armazenar tais atestações. - -A solução é emitir atestados, mantidos por usuários off-chain em carteiras digitais, mas assinados com o DID do emissor armazenado on-chain. Esses atestados são codificados como [JSON Web Tokens](https://en.wikipedia.org/wiki/JSON_Web_Token) e contêm a assinatura digital do emissor, que permite a verificação fácil de reivindicações off-chain. - -Aqui está um cenário hipotético para explicar os atestados off-chain: - -1. Uma universidade (o emissor) gera um atestado (um certificado acadêmico digital), assina com suas chaves e o emite para Bob (o proprietário da identidade). - -2. Bob se candidata a um emprego e quer provar suas qualificações acadêmicas a um empregador, então ele compartilha o atestado de sua carteira móvel. A empresa (o verificador) pode então confirmar a validade do atestado verificando o DID do emissor (ou seja, sua chave pública no Ethereum). - -### Atestados off-chain com acesso persistente {#offchain-attestations-with-persistent-access} - -Sob esse arranjo, os atestados são transformados em arquivos JSON e armazenados off-chain (idealmente em uma plataforma de [armazenamento em nuvem descentralizado](/developers/docs/storage/), como IPFS ou Swarm). Entretanto, um [hash](/glossary/#hash) do arquivo JSON é armazenado on-chain e vinculado a um DID por meio de um registro on-chain. O DID associado pode ser o do emissor do atestado ou o do destinatário. - -Essa abordagem permite que os atestados obtenham persistência baseada em blockchain, mantendo as informações de declarações criptografadas e verificáveis. Ele também permite a divulgação seletiva, visto que o titular da chave privada pode descriptografar as informações. - -### Atestados on-chain {#onchain-attestations} - -Os atestados on-chain são mantidos em [contratos inteligentes](/developers/docs/smart-contracts/) no blockchain Ethereum. O contrato inteligente (agindo como um registro) mapeará um atestado para um identificador descentralizado on-chain correspondente (uma chave pública). - -Aqui está um exemplo para mostrar como os atestados on-chain podem funcionar na prática: - -1. Uma empresa (XYZ Corp) planeja vender ações de propriedade usando um contrato inteligente, mas quer apenas compradores que concluíram uma verificação de fundo. - -2. A empresa XYZ pode fazer com que a empresa realize verificações de fundo para emitir atestados on-chain no Ethereum. Este atestado certifica que um indivíduo passou na verificação de fundo sem expor nenhuma informação pessoal. - -3. O contrato inteligente de venda de ações pode verificar no contrato de registro as identidades dos compradores selecionados, possibilitando que o contrato inteligente determine quem tem permissão para comprar ações ou não. - -### Tokens Soulbound e identidade {#soulbound} - -[Tokens Soulbound](https://vitalik.ca/general/2022/01/26/soulbound.html) (NFTs não transferíveis) podem ser usados para coletar informações exclusivas de uma carteira específica. Isso cria efetivamente uma identidade única on-chain vinculada a um endereço Ethereum específico que pode incluir tokens que representam conquistas (por exemplo, terminar algum curso on-line específico ou passar uma pontuação mínima em um jogo) ou participação da comunidade. - -## Benefícios da identidade descentralizada {#benefits-of-decentralized-identity} - -1. A identidade descentralizada aumenta o controle individual de identificação da informação. Identificadores e atestados descentralizados podem ser verificados sem depender de autoridades centralizadas e serviços de terceiros. - -2. As soluções de identidade descentralizadas facilitam um método com necessidade mínima de confiança, sem interrupções e de proteção de privacidade para verificar e gerenciar a identidade do usuário. - -3. A identidade descentralizada aproveita a tecnologia blockchain, que cria confiança entre diferentes partes e fornece garantias criptográficas para provar a validade dos atestados. - -4. A identidade descentralizada torna os dados de identidade portáteis. Os usuários armazenam atestados e identificadores na carteira móvel e podem compartilhar com qualquer parte de sua escolha. Identificadores e atestados descentralizados não são bloqueados no banco de dados da organização emissora. - -5. A identidade descentralizada deve funcionar bem com tecnologias emergentes de conhecimento zero o qual permitirão que indivíduos provem que possuem ou fizeram algo sem revelar o que é essa coisa. Isso pode se tornar uma maneira poderosa de combinar confiança e privacidade para aplicações como votação. - -6. A identidade descentralizada permite que mecanismos anti-Sybil identifiquem quando um humano individual está fingindo ser vários humanos para jogar ou enviar spam a algum sistema. - -## Casos de uso de identidade descentralizadas {#decentralized-identity-use-cases} - -A identidade descentralizada tem muitos casos de uso em potencial: - -### 1. Logins universais {#universal-dapp-logins} - -A identidade descentralizada pode ajudar a substituir os logins baseados em senha por [autenticação descentralizada](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). Os provedores de serviços podem emitir atestados aos usuários, aos que podem ser armazenados em uma carteira Ethereum. Um exemplo de atestado seria uma [NFT](/nft/) concedendo ao titular acesso a uma comunidade on-line. - -Uma função [Entrar com Ethereum](https://login.xyz/) permitiria que os servidores confirmassem a conta Ethereum do usuário e buscassem o atestado necessário de seu endereço de conta. Isso significa que os usuários podem acessar plataformas e sites sem precisar memorizar senhas longas e melhorar a experiência on-line dos usuários. - -### 2. Autenticação KYC {#kyc-authentication} - -O uso de muitos serviços on-line exige que os indivíduos forneçam atestados e credenciais, como carteira de motorista ou passaporte nacional. Mas essa abordagem é problemática porque as informações privadas do usuário podem ser comprometidas e os provedores de serviços não podem verificar a autenticidade do atestado. - -A identidade descentralizada permite que as empresas ignorem os processos convencionais de [Conheça seu Cliente (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) e autentiquem identidades de usuários por meio de credenciais verificáveis. Isso reduz o custo de gerenciamento de identidade e previne o uso de documentação falsa. - -### 3. Votação e comunidades on-line {#voting-and-online-communities} - -A votação on-line e as mídias sociais são duas novas aplicações para a identidade descentralizada. Esquemas de votação on-line são suscetíveis à manipulação, especialmente se atores mal-intencionados criarem identidades falsas para votar. Pedir a indivíduos que apresentem atestados on-chain pode melhorar a integridade dos processos de votação on-line. - -A identidade descentralizada pode ajudar a criar comunidades on-line livres de contas falsas. Por exemplo, cada usuário pode ter que autenticar sua identidade usando um sistema de identidade on-chain, como o Nomes de Serviço Ethereum, reduzindo a possibilidade de bots. - -### 4. Proteção Anti-Sybil {#sybil-protection} - -Os ataques Sybil referem-se a humanos individuais enganando um sistema para pensar que são várias pessoas para aumentar sua influência. [Aplicativos de concessão](https://gitcoin.co/grants/) que usam [ votação quadrática](https://www.radicalxchange.org/concepts/plural-voting/) são vulneráveis a esses ataques Sybil porque o valor de uma concessão aumenta quando mais indivíduos votam nela, incentivando os usuários a dividir suas contribuições por meio de várias identidades. As identidades descentralizadas ajudam a evitar isso, aumentando o ônus de cada participante para provar que eles são realmente humanos, embora muitas vezes sem ter que revelar informações particulares específicas. - -## Use identidade descentralizada {#use-decentralized-identity} - -Existem muitos projetos ambiciosos usando Ethereum como base para soluções de identidade descentralizadas: - -- **[Nomes de Serviço Ethereum (ENS)](https://ens.domains/)** - _ Um sistema de nomes descentralizado para identificadores legíveis por máquina on-chain, como endereços de carteira Ethereum, hashes de conteúdo e metadados._ -- **[SpruceID](https://www.spruceid.com/)** - _Um projeto de identidade descentralizada que permite aos usuários controlar a identidade digital com contas Ethereum e perfis ENS em vez de depender de serviços de terceiros._ -- **[Serviço de Atestação do Ethereum (EAS)](https://attest.sh/)** - _ Um ledger/protocolo descentralizado para fazer atestações on-chain ou off-chain sobre qualquer coisa._ -- **[Prova de Humanidade](https://www.proofofhumanity.id)** - _Prova de Humanidade (ou PoH) é um sistema de verificação de identidade social construído no Ethereum._ -- **[BrightID](https://www.brightid.org/)** - _Uma descentralizada, rede de identidade social de código aberto que busca reformar a verificação de identidade por meio da criação e análise de um grafo social._ -- **[Passaporte de prova de personalidade](https://proofofpersonhood.com/)** - _ Um agregador de identidade digital descentralizado._ - -## Leitura adicional {#further-reading} - -### Artigos {#articles} - -- [Casos de uso de blockchain: Blockchain em identidade digital](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ -- [O que é Ethereum ERC725? Gerenciamento de identidade autossoberana no Blockchain](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Sam Town_ -- [Como o Blockchain pode resolver o problema da identidade digital](https://time.com/6142810/proof-of-humanity/) — _Andrew R. Comida_ -- [O que é identidade descentralizada e por que você deve se importar?](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ - -### Vídeos {#videos} - -- [Identidade descentralizada (bônus sessão de transmissão ao vivo)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Um ótimo vídeo explicativo sobre identidade descentralizada por Andreas Antoniopolitas_ -- [Faça login com o Ethereum e identidade descentralizada com Ceramic, IDX, React e 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _Tutorial do YouTube sobre como criar um sistema de gerenciamento de identidade para criar, ler e atualizar o perfil de um usuário usando sua carteira Ethereum por Nader Dabit_ -- [BrightID - Identidade descentralizada no Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _Episódio de podcast sem banco discutindo o BrightID, uma solução de identidade descentralizada para Ethereum_ -- [A Internet off-chain: identidade descentralizada & Credenciais verificáveis](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — apresentação EthDenver 2022 por Evin McMullen - -### Comunidades {#communities} - -- [Aliança ERC-725 no GitHub](https://github.com/erc725alliance) — _Apoiadores do padrão ERC725 para gerenciamento de identidade no blockchain Ethereum_ -- [Servidor do Discord do SpruceID](https://discord.com/invite/Sf9tSFzrnt) — _Comunidade para entusiastas e desenvolvedores que trabalham no Entrar com Ethereum_ -- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Uma comunidade de desenvolvedores contribuindo para criar um framework de dados verificáveis para aplicativos_ diff --git a/src/content/translations/pt-br/defi/index.md b/src/content/translations/pt-br/defi/index.md deleted file mode 100644 index 3674d63dd1b..00000000000 --- a/src/content/translations/pt-br/defi/index.md +++ /dev/null @@ -1,352 +0,0 @@ ---- -title: Finanças descentralizadas (DeFi) -description: Uma visão geral do DeFi na Ethereum -lang: pt-br -template: use-cases -emoji: ":money_with_wings:" -image: ../../../../assets/use-cases/defi.png -alt: Um logotipo Eth feito de blocos de lego. -sidebarDepth: 2 -summaryPoint1: Uma alternativa global e aberta ao sistema financeiro atual. -summaryPoint2: Produtos que deixam você pedir emprestado, economizar, investir, comercializar e muito mais. -summaryPoint3: Com base na tecnologia de código aberto com a qual qualquer pessoa pode programar. ---- - -A DeFi é um sistema financeiro aberto e global criado para a era da Internet – uma alternativa a um sistema que não é transparente, controlado rigorosamente e mantido por infraestruturas e processos com décadas de existência. Oferece controle e visibilidade sobre o seu dinheiro. Ela fornece exposição aos mercados globais e alternativas a sua moeda local ou opções bancárias. Os produtos DeFi oferecem serviços financeiros a qualquer pessoa com uma conexão com a Internet e são em grande parte de propriedade e mantidos por seus usuários. Até agora, dezenas de bilhões de dólares de criptos foram transacionados através de aplicativos DeFi e seguem crescendo todos os dias. - -## O que é DeFi? {#what-is-defi} - -DeFi é um termo coletivo para produtos e serviços financeiros que são acessíveis a qualquer um que possa usar Ethereum – qualquer pessoa com uma conexão com a Internet. Com as DeFi, os mercados estão sempre abertos e não há autoridades centralizadas que possam bloquear pagamentos ou negar o seu acesso a qualquer coisa. Serviços que eram anteriormente lentos e com risco de falha humana se tornam automáticos e mais seguros, agora que são processados por código que qualquer um pode inspecionar e auditar. - -Há uma economia cripto em expansão, na qual você pode emprestar, operar long/short, ganhar juros e muito mais. Os argentinos experientes em criptomoedas usaram as DeFi para escapar da inflação devastadora. Empresas começaram a transferir os salários de seus colaboradores em tempo real. Algumas pessoas contrataram e pagaram empréstimos, na casa dos milhões de dólares, sem necessidade de qualquer identificação pessoal. - - - -## DeFi vs. finanças tradicionais {#defi-vs-tradfi} - -Uma das melhores maneiras de avaliar o potencial das DeFi é compreender os problemas que existem hoje. - -- Algumas pessoas não têm acesso para abrir uma conta bancária ou usar serviços financeiros. -- A falta de acesso a serviços financeiros pode comprometer a empregabilidade das pessoas. -- A falta de acesso a serviços financeiros pode impedir que você seja pago. -- Uma cobrança oculta dos serviços financeiros são os seus dados pessoais. -- Os governos e as instituições centralizadas podem fechar os mercados de forma arbitrária. -- Os horários de negociação geralmente são limitados ao horário comercial de um fuso horário específico. -- Transferências de dinheiro podem levar dias devido a processos humanos internos. -- Há um prêmio para operar os serviços financeiros porque as instituições intermediárias cobram a parte delas. - -### Uma comparação {#defi-comparison} - -| DeFi | Finanças tradicionais | -| ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Você detém seu dinheiro. | Seu dinheiro é controlado por empresas. | -| Você controla a destinação de seu dinheiro e como será gasto. | Você precisa confiar que as empresas não administrarão os seus fundos indevidamente, como, por exemplo, fazer empréstimos a tomadores de risco. | -| Transferências de dinheiro acontecem em minutos. | Os pagamentos podem levar dias devido a processos manuais. | -| A transação é anônima. | A operação financeira é fortemente ligada à sua identidade. | -| A DeFi é aberta a qualquer pessoa. | Você deve se cadastrar para usar os serviços financeiros. | -| Os mercados estão sempre abertos. | Mercados fecham porque os empregados cumprem horários. | -| Construído com base na transparência – qualquer pessoa pode ver os dados de um produto e inspecionar como o sistema funciona. | As instituições financeiras são livros fechados: não se pode pedir para ver o histórico de empréstimos, um registro dos seus ativos gerenciados, e assim por diante. | - - - Ver aplicativos DeFi - - -## Tudo começou com o Bitcoin... {#bitcoin} - -O Bitcoin, de muitas maneiras, foi a primeira aplicação DeFi. O Bitcoin permite que você realmente tenha e controle valores e os envie para qualquer lugar ao redor do mundo. Isso é feito oferecendo uma maneira para que um grande número de pessoas, que não confiam umas nas outras, concordem com um livro de contas sem a necessidade de um intermediário confiável. O Bitcoin é aberto a qualquer um e ninguém tem autoridade para alterar suas regras. As regras do Bitcoin, como sua escassez e acessibilidade, estão incorporadas na tecnologia. Não funciona como nas finanças tradicionais, em que os governos podem imprimir moeda que desvaloriza as suas economias e as empresas podem fechar os mercados. - -Ethereum baseia-se nisso. Como o Bitcoin, as regras não mudam por você, e todos têm acesso. Mas ele também torna esse dinheiro digital programável, usando [contratos inteligentes](/glossary#smart-contract). Então você pode fazer mais do que guardar e enviar valores. - - - -## Dinheiro programável {#programmable-money} - -Isso soa estranho... "Por que eu gostaria de programar meu dinheiro"? No entanto, esta é mais uma característica padrão dos tokens no Ethereum. Qualquer um pode programar a lógica em pagamentos. Assim, você pode ter o controle e a segurança do Bitcoin somados aos serviços fornecidos por instituições financeiras. Isso permite fazer coisas com criptomoedas que você não poderia fazer com o Bitcoin, tais como emprestar e tomar empréstimos, agendar pagamentos, investir em fundos de índices e mais. - - -
Explore nossas sugestões de aplicativos DeFi para iniciar se você é novo no Ethereum.
- - Ver aplicativos DeFi - -
- -## O que você pode fazer com DeFi? {#defi-use-cases} - -Há uma alternativa descentralizada para a maioria dos serviços financeiros. Mas o Ethereum também cria oportunidades para a criação de produtos financeiros completamente novos. Esta lista está em constante crescimento. - -- [Envie dinheiro para qualquer lugar do mundo](#send-money) -- [Pagamentos em tempo real ao redor do mundo](#stream-money) -- [Acesso a moedas estáveis](#stablecoins) -- [Empréstimos com garantia](#lending) -- [Empréstimos sem garantias](#flash-loans) -- [Poupança com criptomoedas](#saving) -- [Negociar tokens](#swaps) -- [Aumente seu portfólio](#investing) -- [Financie seus projetos](#crowdfunding) -- [Compra de seguros](#insurance) -- [Gerenciamento de portfolio](#aggregators) - - - -### Envie dinheiro ao redor do mundo rapidamente {#send-money} - -Como um blockchain, o Ethereum foi concebido para o envio de transações de forma segura e de modo global. Assim como o Bitcoin, o Ethereum torna o envio de dinheiro ao redor do mundo tão fácil quanto enviar um e-mail. Basta digitar o nome do seu beneficiário [nome ENS](/nft/#nft-domains) (como bob.eth) ou o endereço de conta da respectiva carteira e seu pagamento será enviado em minutos (normalmente). Para enviar ou receber pagamentos, você precisará de uma [carteira](/wallets/). - - - Ver dapps de pagamento - - -#### Pagamentos em tempo real ao redor do mundo... {#stream-money} - -Você também pode transferir dinheiro através da Ethereum. Isso permite que você pague imediatamente o salário de alguém, dando a essa pessoa acesso ao valor devido sempre que preciso. Ou alugue algo de forma imediata, como um guarda-volume ou uma moto elétrica. - -E se você não quiser enviar ou pagar via [ETH](/eth/) devido à variação no valor, existem moedas alternativas na Ethereum: stablecoins. - - - -### Acesso a moedas estáveis {#stablecoins} - -A volatilidade das criptomoedas é um problema para muitos produtos financeiros e gastos em geral. A comunidade DeFi resolveu isso por meio das stablecoins. O valor delas permanece vinculado a outro ativo, geralmente uma moeda popular como o dólar. - -Moedas como Dai ou USDC têm um valor que não superam alguns centavos de dólar. Isso as torna perfeitas para rendimentos ou varejo. Muitas pessoas na América Latina utilizaram as stablecoins como forma de proteger suas poupanças, em tempos de grande incerteza com as moedas emitidas pelos governos. - - - Mais sobre moedas estáveis - - - - -### Empréstimos {#lending} - -Empréstimos de recursos de fornecedores descentralizados se dão de duas formas principais. - -- Ponto a ponto, quando um mutuário pede emprestado diretamente de um mutuante específico. -- Pool de fundos, onde credores fornecem fundos (liquidez) a um pool do qual os mutuários podem tomar empréstimo. - - - Ver dapps de empréstimos - - -Há diversas vantagens em usar um financiador descentralizado... - -#### Empréstimos com privacidade {#borrowing-privacy} - -Hoje, pegar dinheiro emprestado ou emprestar gira em torno dos indivíduos envolvidos. Os bancos precisam saber se você terá condições de pagar um empréstimo antes de concedê-lo. - -Os empréstimos descentralizados funcionam sem que as partes tenham que se identificar. Em vez disso, o mutuário deve oferecer uma garantia colateral que o credor receberá automaticamente se o empréstimo não for pago. Alguns credores aceitam NFTs como garantia. Os NFTs são escrituras de ativos únicos, como uma pintura. [Mais sobre NFTs](/nft/) - -Isso permite que você tome empréstimo de dinheiro sem checagem de crédito ou fornecimento de dados pessoais. - -#### Acesso a fundos globais {#access-global-funds} - -Quando você usa um mutuante descentralizado, você tem acesso a fundos depositados de todo o mundo, não apenas os fundos em custódia de seu banco ou instituição escolhida. Isto torna os empréstimos mais acessíveis e melhora as taxas de juro. - -#### Eficiência tributária {#tax-efficiencies} - -Pedir empréstimo pode dar a você acesso aos fundos de que você precisa sem precisar vender seus ETHs (um evento tributável). Em vez disso, você pode usar ETH como garantia colateral de um empréstimo em stablecoin. Isso dá a você acesso ao fluxo de caixa de que você precisa sem abrir mão de seus ETHs. Stablecoins são tokens muito melhores quando você precisa de dinheiro, já que elas não oscilam tanto quanto o ETH. [Mais sobre stablecoins](#stablecoins) - -#### Empréstimos rápidos {#flash-loans} - -Empréstimos rápidos são uma forma mais experimental de empréstimos descentralizados que permite que você peça empréstimo sem garantia ou sem fornecer qualquer informação pessoal. - -Neste momento, não estão amplamente acessíveis a pessoas não técnicas, mas dão uma ideia do que poderá ser possível a todos no futuro. - -Funciona com base no princípio de que o empréstimo é tomado e pago na mesma transação. Se não puder ser pago, a transação retroage como se nada tivesse acontecido. - -Os fundos que são mais frequentemente utilizados são mantidos em pools de liquidez (grandes pools de fundos utilizados para empréstimos). Se não estiverem sendo utilizados em um dado momento, isso cria uma oportunidade para alguém pedir esses fundos emprestados, fazer negócio com eles e devolver o valor integral literalmente no mesmo momento em que se toma emprestado. - -Isto significa que muita lógica tem de ser incluída em uma transação sob medida. Um exemplo simples pode ser alguém pedir um empréstimo rápido para adquirir um ativo a um preço para vendê-lo em outra exchange (corretora) onde o preço seja mais alto. - -Portanto, em uma única transação, ocorre o seguinte: - -- Você pega emprestado a quantia X de um ativo $asset por $ 1,00 de uma exchange A -- Você vende X do $asset na exchange B por $ 1,10 -- Então, você paga o empréstimo na exchange A -- Você embolsa o lucro menos a taxa de transação - -Se o estoque da exchange B cair de repente e o usuário não conseguir comprar o suficiente para cobrir o empréstimo original, a transação simplesmente não acontecerá. - -Para ser capaz de fazer o exemplo acima no mundo financeiro tradicional, você precisaria de uma quantidade enorme de dinheiro. Estas estratégias de fazer dinheiro só são acessíveis aos que já possuem economias. Os empréstimos rápidos são um exemplo do futuro em que possuir dinheiro não é necessariamente uma condição prévia para se fazer dinheiro. - -[Mais sobre empréstimos rápidos](https://aave.com/flash-loans/) - - - -### Comece a poupar com criptomoedas {#saving} - -#### Empréstimos {#lending} - -Você pode ganhar juros sobre suas criptomoedas emprestando-as e vendo seus fundos crescerem em tempo real. No momento, as taxas de juros são muito mais altas do que as que você pode obter no seu banco local (se você tiver sorte o suficiente para ter acesso a um). Aqui está um exemplo: - -- Você empresta 100 Dai, uma [stablecoin](/stablecoins/), a um produto como Aave. -- Você recebe 100 Aave Dai (aDai) que é um token que representa seus Dai emprestados. -- Seu aDai aumentará com base nas taxas de juros e você poderá ver o saldo crescendo na sua carteira. Dependendo da APR (taxa percentual anual), seu saldo em carteira irá mostrar algo como 100.1234 após alguns dias ou até mesmo horas! -- Você pode retirar uma quantidade de Dai regular, igual ao seu saldo em aDai, a qualquer momento. - - - Ver dapps de empréstimos - - -#### Loterias sem perda {#no-loss-lotteries} - -Loterias sem perda como a PoolTogether são uma divertida e inovadora maneira de economizar dinheiro. - -- Você compra 100 bilhetes usando 100 tokens Dai. -- Você recebe 100 plDai representando os seus 100 bilhetes. -- Se um de seus bilhetes for escolhido como vencedor, seu saldo plDai aumentará na proporção do dinheiro acumulado para premiação. -- Se você não vencer, os seus 100 plDai vão para o sorteio da próxima semana. -- Você pode retirar uma quantidade de Dai regular, que é igual ao seu saldo plDai, a qualquer momento. - -O dinheiro acumulado para premiação é gerado por todos os juros gerados pelo empréstimo dos bilhetes depositados, como no exemplo de empréstimo acima. - - - Experimente o PoolTogether - - - - -### Negociar tokens {#swaps} - -Existem milhares de tokens no Ethereum. Exchanges descentralizadas (DEXs) permitem que você opere diferentes tokens sempre que quiser. Você nunca entrega o controle de seus ativos. Isso é como usar uma exchange quando você visita um país diferente. Mas a versão de DeFi nunca fecha. Os mercados funcionam de maneira ininterrupta e a tecnologia garante que sempre haverá alguém disposto a fazer negociações. - -Por exemplo, se você quiser usar a loteria sem perda PoolTogether (descrita acima), você precisará de um token como Dai ou USDC. Estas DEXs permitem que você troque seus ETH por esses tokens e reverta novamente quando terminar. - - - Exibir exchanges de token - - - - -### Negociações avançadas {#trading} - -Existem opções mais avançadas para traders que gostam de um pouco mais de controle. Limitar ordens, contratos futuros sem vencimento, trading alavancado e muito mais é possível. Com negociações descentralizadas você obtém acesso à liquidez global, o mercado nunca fecha e você está sempre no controle de seus ativos. - -Quando você usa uma exchange centralizada, tem que depositar seus ativos antes da negociação e confiar a ela o cuidado dos ativos. Embora seus ativos estejam depositados, eles estão em risco, uma vez que as exchanges centralizadas são alvos atraentes para os hackers. - - - Ver dapps de trading - - - - -### Aumente seu portfolio {#investing} - -Existem produtos de gestão de fundos na Ethereum que tentarão aumentar a sua carteira com base em uma estratégia à sua escolha. Isto é automático, aberto a todos, e não precisa de um gerente humano pegando uma fatia de seus lucros. - -Um bom exemplo é o [fundo DeFi Pulse Index (DPI)](https://defipulse.com/blog/defi-pulse-index/). Esse é um fundo com balanceamento automático, de forma a garantir que o seu portfólio sempre inclua [os principais tokens de DeFi por capitalização de mercado](https://www.coingecko.com/en/defi). Nunca é necessário gerenciar nenhum dos detalhes e é possível sacar do fundo sempre que quiser. - - - Ver dapps de investimento - - - - -### Financie suas ideias {#crowdfunding} - -Ethereum é uma plataforma ideal para financiamento colaborativo: - -- Potenciais financiadores podem vir de qualquer lugar – a Ethereum e seus tokens estão abertos a qualquer pessoa, em qualquer lugar do mundo. -- É transparente para que os captadores de recursos possam provar quanto dinheiro foi levantado. Você pode até rastrear como os fundos estão sendo gastos posteriormente. -- Os captadores de recursos podem criar reembolsos automáticos se, por exemplo, houver um prazo específico e um montante mínimo que não seja cumprido. - - - Ver dapps de captação de recursos - - -#### Financiamento quadrático {#quadratic-funding} - -O Ethereum é um software de código aberto, e muito do trabalho até agora tem sido financiado pela comunidade. A essência do código aberto do Ethereum levou ao crescimento de um modelo interessante de captação de recursos: financiamento quadrático. Isto tem o potencial de melhorar a forma como financiamos todos os tipos de bens públicos no futuro. - -O financiamento quadrático assegura que os projetos que recebem mais recursos sejam aqueles com a maior procura. Em outras palavras, projetos que contribuem para melhorar a vida da maioria das pessoas. Funciona assim: - -1. Há um pool correspondente de fundos doados. -2. Começa uma rodada de financiamento público. -3. As pessoas podem sinalizar a demanda por um projeto através da doação de dinheiro. -4. Uma vez terminada a rodada, a reserva de fundos correspondente será distribuída aos projetos. Aqueles com a demanda mais alta obtêm o maior valor da reserva de fundos correspondente. - -Isso significa que o Projeto A com suas 100 doações de 1 dólar poderia acabar com mais financiamento que o Projeto B com uma única doação de 10.000 dólares (sujeito ao tamanho do pool correspondente). - -[Mais sobre financiamento quadrático](https://wtfisqf.com) - - - -### Seguros {#insurance} - -Seguros descentralizados visam tornar o seguro mais barato, mais rápido para pagar e mais transparente. Com mais automação, a cobertura é mais acessível e os pagamentos são muito mais rápidos. Os dados utilizados para decidir sobre a sua reivindicação são completamente transparentes. - -Os produtos Ethereum, como qualquer software, estão propensos a bugs e exploits. Então, atualmente, muitos produtos na área de seguros visam proteger seus usuários contra a perda de fundos. Entretanto, há projetos que estão começando a criar cobertura para tudo o que a vida pode nos oferecer. Um bom exemplo disto é a cobertura para o cultivo do Etherisc, que visa [proteger os pequenos agricultores do Quênia contra secas e inundações](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Um seguro descentralizado pode proporcionar cobertura mais barata aos agricultores que são frequentemente deixados de fora do seguro tradicional. - - - Ver dapps de seguros - - - - -### Agregadores e gerenciadores de portfolio {#aggregators} - -Com tanta coisa acontecendo, você precisará de uma maneira de acompanhar todos os seus investimentos, empréstimos e operações. Há uma série de produtos que permitem coordenar todas as atividades DeFi de um só lugar. Esta é a beleza da arquitetura aberta do DeFi. Equipes podem construir interfaces onde você não somente vê os saldos entre produtos, mas também pode usar os recursos correspondentes. Você vai achar isso útil enquanto aprende mais sobre DeFi. - - - Ver dapps de portfolio - - - - -## Como o funciona Defi? {#how-defi-works} - -O DeFi usa criptomoedas e contratos inteligentes para fornecer serviços que não precisam de intermediários. No mundo financeiro de hoje, as instituições financeiras atuam como garantidoras das transações. Isto confere a essas instituições um poder enorme, porque seu dinheiro flui por elas. Além disso, bilhões de pessoas ao redor do mundo não têm acesso a uma conta bancária. - -No DeFi, um contrato inteligente substitui a instituição financeira na transação. Um contrato inteligente é um tipo de conta Ethereum que pode ter fundos e enviá-los/reembolsá-los com base em certas condições. Ninguém pode alterar esse contrato inteligente quando estiver ativo – ele sempre será executado conforme o programado. - -Um contrato que foi concebido para distribuir um subsídio ou mesada poderia ser programado para enviar dinheiro da Conta A para Conta B todas as sextas-feiras. E isso só poderá acontecer enquanto a Conta A tiver os fundos necessários. Ninguém pode alterar o contrato e adicionar Conta C como beneficiário para roubar fundos. - -Os contratos também são públicos para qualquer pessoa inspecionar e auditar. Isto significa que os contratos pouco confiáveis passarão frequentemente a estar sob escrutínio comunitário muito rapidamente. - -Isto significa que atualmente há uma necessidade de confiar nos membros mais técnicos da comunidade Ethereum, que podem ler códigos. A comunidade baseada em código aberto ajuda a manter os desenvolvedores sob controle, mas esta necessidade diminuirá ao longo do tempo, à medida que os contratos inteligentes se tornem mais fáceis de ler e que se desenvolvam outras formas de provar a confiança no código. - -## Ethereum e DeFi {#ethereum-and-defi} - -O Ethereum é a base perfeita para DeFi por várias razões: - -- Ninguém é proprietário do Ethereum ou dos contratos inteligentes que existem nele – isso dá a todos uma oportunidade de usar o DeFi. Isto também significa que ninguém pode alterar as regras que são aplicadas a ele. -- Os produtos de DeFi falam todos o mesmo idioma nos bastidores: Ethereum. Isto significa que muitos dos produtos funcionam muito bem em conjunto. Você pode emprestar tokens em uma plataforma e negociar os juros do token em um mercado diferente através de uma aplicação totalmente distinta. Isso é como juntar pontos de fidelidade em seu banco. -- Tokens e criptomoedas estão integrados no Ethereum, um registro compartilhado – manter o controle das transações e a propriedade são a área de domínio do Ethereum. -- O Ethereum permite a liberdade financeira total – a maioria dos produtos nunca terá a custódia dos seus fundos, deixando você no controle. - -Pense no DeFi como camadas: - -1. O blockchain: Ethereum contém o histórico das transações e o estado das contas. -2. Os ativos: [ETH](/eth/) e outros tokens (moedas). -3. Os protocolos, [contratos inteligentes](/glossary/#smart-contract) que oferecem a funcionalidade, por exemplo, um serviço que permite o empréstimo descentralizado de ativos. -4. [As aplicações](/dapps/): os produtos que usamos para gerenciar e acessar os protocolos. - -## Criar Defi {#build-defi} - -DeFi é um movimento de código aberto. Os protocolos e aplicações DeFi são todos abertos, para você inspecionar, fazer updates e inovar. Por causa dessa pilha em camadas (todos compartilham o mesmo blockchain e ativos base), os protocolos podem ser combinados para proporcionar oportunidades únicas. - - - Mais sobre como criar Dapps - - -## Leitura adicional {#futher-reading} - -### Dados DeFi {#defi-data} - -- [DeFi Prime](https://defiprime.com/) -- [DeFi Llama](https://defillama.com/) -- [DeFi Rate](https://defirate.com/) - -### Artigos sobre DeFi {#defi-articles} - -- [Um guia de DeFi para iniciantes](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, 6 de janeiro de 2020_ - -### Vídeos {#videos} - -- [Finematics - Informações sobre finanças descentralizadas](https://finematics.com/) – _Vídeos sobre DeFi_ -- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _Fundamentos DeFi: Tudo o que você precisa saber para começar neste espaço às vezes desconcertante._ -- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _O que é DeFi?_ - -### Comunidades {#communities} - -- [Servidor DeFi Llama no Discord](https://discord.gg/buPFYXzDDd) -- [Servidor DeFi Pulse no Discord](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/pt-br/desci/index.md b/src/content/translations/pt-br/desci/index.md deleted file mode 100644 index 11f898d3ff0..00000000000 --- a/src/content/translations/pt-br/desci/index.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: Ciência descentralizada (DeSci) -description: Uma visão geral da ciência descentralizada no Ethereum -lang: pt-br -template: use-cases -emoji: ":microscope:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Uma alternativa global e aberta ao sistema científico atual. -summaryPoint2: Tecnologia que permite aos cientistas levantar fundos, realizar experimentos, compartilhar dados, distribuir informações e muito mais. -summaryPoint3: Constrói o movimento de ciência aberta. ---- - -## O que é ciência descentralizada (DeSci)? {#what-is-desci} - -A ciência descentralizada (DeSci) é um movimento que visa construir a infraestrutura pública para financiar, criar, revisar, creditar, armazenar e disseminar conhecimento científico de forma justa e equitativa usando a pilha Web3. - -A DeSci visa criar um ecossistema em que os cientistas sejam incentivados a partilhar abertamente a sua pesquisa e a receber crédito pelo seu trabalho, enquanto permite a qualquer pessoa acessar e contribuir para a pesquisa com facilidade. A DeSci parte da ideia de que o conhecimento científico deve ser acessível a todos e de que o processo de pesquisa científica deve ser transparente. A DeSci está criando um modelo de pesquisa científica mais descentralizado e distribuído, tornando-o mais resistente à censura e ao controle das autoridades centrais. A DeSci espera criar um ambiente no qual possam florescer novas ideias não convencionais por meio da descentralização do acesso ao financiamento, ferramentas científicas e canais de comunicação. - -A ciência descentralizada permite o acesso a fontes de financiamento mais diversificadas (de [DAOs](/dao/), [doações quadráticas](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) a financiamento coletivo, entre outros), dados de acesso e métodos mais acessíveis, assim como incentiva a reprodutibilidade. - -### Juan Benet — O Movimento DeSci - - - -## Como a DeSci melhora a ciência {#desci-improves-science} - -Uma lista incompleta dos principais problemas encontrados pela ciência e como a ciência descentralizada pode ajudar a resolver esses problemas - -| **Ciência descentralizada** | **Ciência tradicional** | -| ---------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -| A distribuição dos fundos é determinada pelo público por meio de mecanismos como doações quadráticas ou DAOs. | Grupos pequenos, fechados e centralizados controlam a distribuição de fundos. | -| Você colabora com pares de todo o mundo em equipes dinâmicas. | As organizações financiadoras e instituições domésticas limitam suas colaborações. | -| As decisões de financiamento são tomadas online e de forma transparente. São explorados novos mecanismos de financiamento. | As decisões de financiamento levam muito tempo e sua transparência é limitada. Existem poucos mecanismos de financiamento. | -| O compartilhamento de serviços de laboratório são mais fáceis e transparentes com os primitivos Web3. | O compartilhamento de recursos de laboratório é frequentemente lento e pouco transparente. | -| É possível desenvolver novos modelos para publicação que usam primitivos Web3 para garantir confiança, transparência e acesso universal. | Você publica por meio de caminhos estabelecidos, frequentemente reconhecidos como ineficientes, tendenciosos e exploradores. | -| Você pode ganhar tokens e reputação pelo trabalho de revisão por pares. | Sua tarefa de revisão por pares não é paga, o que beneficia editores com fins lucrativos. | -| Você possui a propriedade intelectual (IP) que gera e distribui de acordo com termos transparentes. | A sua instituição doméstica é dona do IP que você gera. O acesso ao IP não é transparente. | -| Compartilhar toda a pesquisa, incluindo dados de tentativas mal-sucedidas, por meio de todas as etapas na cadeia. | Viés de publicação significa que os pesquisadores são mais propensos a compartilhar experimentos que tiveram resultados bem sucedidos. | - -## Ethereum e DeSci {#ethereum-and-desci} - -Um sistema de ciência descentralizada exigirá segurança sólida, custos monetários e de transações mínimos, e um rico ecossistema para o desenvolvimento de aplicativos. O Ethereum fornece tudo o que é necessário para construir uma pilha científica descentralizada. - -## Casos de uso da DeSci {#use-cases} - -A DeSci está desenvolvendo um conjunto de ferramentas científicas para integrar a academia Web2 no mundo digital. Veja abaixo uma amostra de casos de uso que a Web3 pode oferecer à comunidade científica. - -### Publicação {#publishing} - -A publicação científica é notoriamente problemática por ser gerida por editoras que dependem do trabalho gratuito de cientistas, revisores e editores para produzir os artigos, mas, em seguida, cobram taxas de publicação exorbitantes. O público, que geralmente pagou indiretamente pelo trabalho e os custos de publicação por meio de impostos, muitas vezes, não conseguem acessar esse mesmo trabalho sem pagar novamente ao editor. As taxas totais para a publicação de artigos científicos individuais frequentemente somam dezenas de milhares de dólares, minando todo o conceito de conhecimento científico como um [bem público](https://www.econlib.org/library/Enc/PublicGoods.html), enquanto gera enormes lucros para um pequeno grupo de editoras. - -Plataformas de acesso aberto e gratuito existem na forma de servidores de pré-impressão, [como o ArXiv](https://arxiv.org/). No entanto, essas plataformas carecem de controle de qualidade, [mecanismos anti-sybil](https://csrc.nist.gov/glossary/term/sybil_attack) e geralmente não rastreiam métricas de nível de artigo, ou seja, geralmente são usadas apenas para divulgar o trabalho antes do envio a uma editora tradicional. O SciHub também disponibiliza os artigos publicados gratuitamente, mas não de forma legal, e apenas após os editores já terem pago e protegido o trabalho a uma rigorosa legislação de direitos autorais. Isso deixa uma lacuna grave nos artigos científicos e dados acessíveis com um mecanismo de legitimidade e um modelo de incentivos. As ferramentas para a construção desse sistema existem na Web3. - -### Reprodutibilidade e replicabilidade {#reproducibility-and-replicability} - -Reprodutibilidade e replicabilidade são os fundamentos da descoberta científica de qualidade. - -- Resultados reprodutíveis podem ser alcançados várias vezes seguidas pela mesma equipe usando a mesma metodologia. -- Resultados replicáveis podem ser alcançados por um grupo diferente usando a mesma configuração experimental. - -As novas ferramentas nativas da Web3 podem garantir que a reprodutibilidade e a replicabilidade sejam a base da descoberta. Dessa forma, é possível tecer ciência de qualidade no tecido tecnológico do mundo acadêmico. A Web3 oferece a capacidade de criar atestações para cada componente de análise: os dados brutos, o motor computacional e o resultado do aplicativo. A beleza dos sistemas de consenso é que quando uma rede confiável é criada para manter esses componentes, cada participante da rede pode ser responsável por reproduzir o cálculo e validar cada resultado. - -### Financiamento {#funding} - -O modelo padrão atual para o financiamento da ciência é que indivíduos ou grupos de cientistas façam solicitações por escrito a uma agência de financiamento. Um pequeno painel de indivíduos de confiança avaliam as inscrições e, em seguida, entrevistam os candidatos antes de conceder fundos a uma pequena porção de candidatos. Além de criar gargalos que às vezes levam a anos de espera entre a candidatura e o recebimento de uma bolsa, esse modelo é conhecido por ser altamente vulnerável a preconceitos, interesses próprios e políticas do painel de revisão. - -Estudos mostraram que os painéis de revisão de bolsas fazem um trabalho ruim na seleção de propostas de alta qualidade, pois as mesmas propostas apresentadas a diferentes painéis têm resultados totalmente diferentes. Como o financiamento se tornou mais escasso, ele se concentrou em um grupo menor de pesquisadores mais experientes com projetos mais intelectualmente conservadores. O efeito criou um cenário de financiamento hipercompetitivo, entrincheirando incentivos perversos e asfixiando a inovação. - -A Web3 tem o potencial de interromper este modelo de financiamento quebrado, experimentando diferentes modelos de incentivo desenvolvidos pelos DAOs e Web3 mais amplos. [Financiamento retroativo de bens públicos](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), [financiamento quadrático](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), [governança DAO](https://www.antler.co/blog/daos-and-web3-governance) e [estruturas de incentivo tokenizadas](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) são algumas das ferramentas Web3 que podem revolucionar o financiamento da ciência. - -### Propriedade e desenvolvimento de IP {#ip-ownership} - -A propriedade intelectual (IP) é um grande problema na ciência tradicional: de ficar presa em universidades ou não utilizada em biotecnologia, a ser notoriamente difícil de avaliar. No entanto, a propriedade de ativos digitais (como dados ou artigos científicos) é algo que a Web3 faz excepcionalmente bem usando [tokens não fungíveis (NFTs)](/nft/). - -Da mesma forma que os NFTs podem repassar receitas para transações futuras de volta ao criador original, você pode estabelecer cadeias de atribuição de valor transparentes para recompensar pesquisadores, órgãos governamentais (como DAOs) ou até mesmo as pessoas de cujos dados são coletados. - -[IP-NFTs](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) também podem funcionar como uma chave para um repositório descentralizado de dados, de experimentos de pesquisa que estão sendo realizados para conectar o NFT ao financiamento [DeFi](/defi/) (de fracionamento a fundos de empréstimos e avaliação de valor). Ele também permite que entidades nativamente em cadeia, como DAOs do tipo [VitaDAO](https://www.vitadao.com/), conduzam pesquisas diretamente em cadeia. O advento de [tokens "soulbound" intransferíveis](https://vitalik.ca/general/2022/01/26/soulbound.html) também pode desempenhar um papel importante no DeSci, permitindo que indivíduos provem sua experiência e credenciais vinculadas ao seu endereço Ethereum. - -### Armazenamento de dados, acesso e arquitetura {#data-storage} - -Os dados científicos podem se tornar muito mais acessíveis usando padrões Web3, e o armazenamento distribuído permite que a pesquisa sobreviva a eventos cataclísmicos. - -O ponto de partida deve ser um sistema acessível por qualquer identidade descentralizada que possua as credenciais verificáveis adequadas. Isso permite que dados confidenciais sejam replicados com segurança por partes confiáveis, permitindo redundância e resistência à censura, reprodução de resultados e até mesmo a capacidade de várias partes colaborarem e adicionarem novos dados ao conjunto de dados. Métodos de computação confidenciais como [compute-to-data](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol) fornecem mecanismos alternativos de acesso à replicação de dados brutos, criando ambientes de pesquisa confiáveis para os dados mais confidenciais. Ambientes de pesquisa confiáveis foram [citados pelo NHS](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) como uma solução voltada para o futuro para privacidade e colaboração de dados, criando um ecossistema no qual os pesquisadores podem trabalhar em segurança com dados no local usando ambientes padronizados para compartilhamento de código e práticas. - -As soluções flexíveis de dados Web3 suportam os cenários acima e fornecem a base para a verdadeira Ciência Aberta, na qual os pesquisadores podem criar bens públicos sem permissões ou taxas. Soluções de dados públicos da Web3 como IPFS, Arweave e Filecoin são otimizadas para descentralização. O dClimate, por exemplo, fornece acesso universal a dados climáticos e meteorológicos, inclusive de estações meteorológicas e modelos climáticos preditivos. - -## Participe {#get-involved} - -Explore projetos e junte-se à comunidade DeSci. - -- [DeSci.Global: eventos globais e calendário de encontros](https://desci.global) -- [Cadeia de blocos para o Science Telegram](https://t.me/BlockchainForScience) -- [Molecule: financie e obtenha financiamento para seus projetos de pesquisa](https://discover.molecule.to/) -- [Virotada: receba financiamento por meio de acordos de pesquisa patrocinados para pesquisas sobre longevidade](https://www.vitadao.com/) -- [ResearchHub: publique um resultado científico e converse com colegas](https://www.researchhub.com/) -- [LabDAO: dobre uma proteína in-silico](https://alphafodl.vercel.app/) -- [dClimate API: consulte dados climáticos coletados por uma comunidade descentralizada](https://api.dclimate.net/) -- [DeSci Foundation: construtor de ferramentas de publicação DeSci](https://descifoundation.org/) -- [DeSci.World: balcão único para os usuários visualizarem e interagirem com a ciência descentralizada](https://desci.world) -- [Fleming Protocol: economia de dados de código aberto que alimenta a descoberta biomédica colaborativa](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [OceanDAO: financiamento governado pela DAO para ciência relacionada a dados](https://oceanprotocol.com/dao) -- [Opscientia: fluxos de trabalho de ciência descentralizados abertos](https://opsci.io/research/) -- [LabDAO: dobre uma proteína in-silico](https://alphafodl.vercel.app/) -- [Bio.xyz: obtenha financiamento para sua DAO de biotecnologia ou projeto desci](https://www.molecule.to/) -- [ResearchHub: publique um resultado científico e converse com colegas](https://www.researchhub.com/) -- [Virotada: receba financiamento por meio de acordos de pesquisa patrocinados para pesquisas sobre longevidade](https://www.vitadao.com/) -- [Fleming Protocol: economia de dados de código aberto que alimenta a descoberta biomédica colaborativa](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [Active Inference Lab](https://www.activeinference.org/) -- [CureDAO: plataforma de saúde de precisão de propriedade da comunidade](https://docs.curedao.org/) -- [IdeaMarkets: para uma credibilidade científica descentralizada](https://ideamarket.io/) -- [DeSci Labs](https://www.desci.com/) - -Agradecemos o envio de sugestões para novos projetos a serem listados — veja nossa [política de listagem](/contributing/adding-desci-projects/) para começar! - -## Leitura adicional {#further-reading} - -- [DeSci Wiki por Jocelynn Pearl e Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) -- [Um guia sobre biotecnologia descentralizada por Jocelynn Pearl para o futuro a16z](https://future.a16z.com/a-guide-to-decentralized-biotech/) -- [O caso da DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) -- [Guia para a DeSci](https://future.com/what-is-decentralized-science-aka-desci/) -- [Recursos científicos descentralizados](https://www.vincentweisser.com/decentralized-science) -- [IP-NFTs Bio-Farmacêuticas da Molecule — Uma descrição técnica](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) -- [Construindo sistemas de ciência sem confiança, de Jon Arrastar](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) -- [O surgimento de DAOs biotecnológicas](https://molecule.to/blog/the-emergence-of-biotech-daos) -- [Paul Kohlhaas — DeSci: O Futuro da ciência descentralizada (podcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) -- [Uma ontologia de inferência ativa para a ciência descentralizada: da criação de sentido situada aos comuns epistêmicos](https://zenodo.org/record/6320575) -- [DeSci: O futuro da pesquisa por Samuel Azinhoso](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) -- [Financiamento de ciência (Epílogo: DeSci e novas criptoprimitivas) por Nadia](https://nadia.xyz/science-funding) -- [A descentralização está perturbando o desenvolvimento de medicamentos](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) - -### Vídeos {#videos} - -- [O que é ciência descentralizada?](https://www.youtube.com/watch?v=-DeMklVWNdA) -- [Conversa entre Vitalik Buterin e o cientista Aubrey de Gray sobre a interseção de pesquisas de longevidade e criptomoedas](https://www.youtube.com/watch?v=x9TSJK1widA) -- [A publicação científica está em pane. A Web3 pode resolver isso?](https://www.youtube.com/watch?v=WkvzYgCvWj8) -- [Juan Benet - DeSci, Laboratórios Independentes, & Ciência de Dados em Grande Escala](https://www.youtube.com/watch?v=zkXM9H90g_E) -- [Sebastian Brunemeier — Como a DeSci pode transformar a Pesquisa Biomédica e o Capital de Risco](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/block-proposal/index.md b/src/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/block-proposal/index.md deleted file mode 100644 index 00de9fab23b..00000000000 --- a/src/content/translations/pt-br/developers/docs/consensus-mechanisms/pos/block-proposal/index.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: Proposta de bloqueio -description: Explicação de como os blocos são propostos na prova de participação do Ethereum. -lang: pt-br ---- - -Os blocos são as unidades fundamentais da blockchain. Blocos são unidades discretas de informação passadas entre os nós, acordadas e adicionadas ao banco de dados de cada nó. Esta página explica como elas são produzidas. - -## Pré-requisitos {#prerequisites} - -A proposta de bloco faz parte do protocolo de prova de participação. Para ajudar a entender esta página, recomendamos que você leia sobre a [prova de participação](/developers/docs/consensus-mechanisms/pos/) e a [arquitetura de bloco](/developers/docs/blocks/). - -## Quem produz os blocos? {#who-produces-blocks} - -Contas validadoras propõem blocos. Contas validadoras são gerenciadas por operadores de nós que executam um software validador como parte de seus clientes de consenso e execução e que depositaram pelo menos 32 ETH no contrato de depósito. No entanto, cada validador é apenas ocasionalmente responsável por propor um bloco. O Ethereum mede o tempo em slots e épocas. Cada slot é de doze segundos, sendo que 32 slots (6,4 minutos) formam uma época. Cada slot é uma oportunidade de adicionar um novo bloco ao Ethereum. - -### Seleção aleatória {#random-selection} - -Um único validador é pseudo-aleatoriamente escolhido para propor um bloco em cada slot. Não existe algo realmente aleatório em uma blockchain, porque se cada nó gerou números genuinamente aleatórios, não há como chegar a um consenso. Em vez disso, o objetivo é tornar o processo de seleção do validador imprevisível. A aleatoriedade é alcançada no Ethereum usando um algoritmo chamado RANDAO, que mistura um hash do proponente do bloco com uma semente que é atualizada em todos os blocos. Esse valor é usado para selecionar um validador específico do validador total definido. A seleção do validador é fixa em duas épocas de antecedência como uma forma de proteção contra certos tipos de manipulação de sementes. - -Embora os validadores se adicionem ao RANDAO em cada slot, o valor global do RANDAO só é atualizado uma vez por época. Para calcular o índice do próximo proponente de bloco, o valor de RANDAO é misturado com o número do slot para dar um valor único a cada slot. A probabilidade de um validador individual ser selecionado não é simplesmente `1/N` (em que `N` = total de validadores ativos). Em vez disso, ele é ponderado pelo saldo de ETH efetivo de cada validador. O saldo máximo efetivo é de 32 ETH (isso significa que o `saldo < 32 ETH` leva a um peso menor do que o `saldo == 32 ETH`, mas `saldo > 32 ETH` não leva a uma ponderação maior que o saldo de `== 32 ETH`). - -Somente um proponente de blocos é selecionado em cada slot. Em condições normais, um único produtor de blocos cria e libera um único bloco no seu slot dedicado. A criação de dois blocos para o mesmo slot é uma ofensiva removível, geralmente conhecida como “ambiguidade”. - -## Como o bloco é criado? {#how-is-a-block-created} - -Espera-se que o proponente de blocos transmita um bloco beacon assinado que se baseia no cabeçalho mais recente da cadeia, de acordo com a visualização de seu próprio algoritmo de escolha de bifurcação (fork choice) local. O algoritmo de escolha de bifurcação (fork) aplica todas as atestações na fila deixadas no slot anterior e, em seguida, encontra o bloco com o maior peso acumulado de atestações em seu histórico. Esse bloco é o pai do novo bloco criado pelo proponente. - -O proponente de blocos cria um bloco coletando dados de seu próprio banco de dados local e visualização da cadeia. O conteúdo do bloco é mostrado no trecho de código abaixo: - -```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 -``` - -O campo `randao_reveal` leva um valor aleatório verificável que o proponente do bloco cria assinando o número da época atual. `eth1_data` é uma votação para a visualização do proponente do bloco no contrato de depósito, incluindo a raiz do depósito da árvore Merkle de depósito e o número total de depósitos que permitem a verificação de novos depósitos. `graffiti` é um campo opcional que pode ser usado para adicionar uma mensagem ao bloco. `proposer_slashings` e `attester_slashings` são campos que contêm provas de que alguns validadores cometeram ofensivas sujeitas a remoção segundo a visualização do proponente da cadeia. `depósitos` é uma lista de novos depósitos do validador dos quais o proponente de bloco está ciente, e `voluntary_exits` é uma lista de validadores que desejam sair, segundo o que o proponente de blocos ouviu falar na rede de fofocas da camada de consenso. O `sync_aggregate` é um vetor que mostra quais validadores foram previamente atribuídos a um comitê de sincronização (um subconjunto de validadores que atendem dados de cliente leve) e participaram da assinatura de dados. - -O `execution_payload` permite que informações sobre transações sejam passadas entre clientes de execução e clientes de consenso. O `execution_payload` é um bloco de dados de execução que fica aninhado em um bloco de sinal (beacon). Os campos dentro de `execution_payload` refletem a estrutura do bloco delineada nas especificações formais (Yellow Paper) do Ethereum, exceto pelo fato de não haver ommers e `prev_randao` existe no lugar de `difficulty`. O cliente de execução tem acesso a um conjunto de operações locais de que ouviu falar na sua própria rede de fofocas. Essas transações são executadas localmente para gerar uma árvore de estado atualizada, conhecida como pós-estado. As transações são incluídas no `execution_payload` como uma lista chamada `transactions` e o pós-estado é fornecido no campo `state-root`. - -Todos esses dados são coletados em um bloco de sinal, assinado e transmitido para os pares do proponente de blocos, que o propagam para seus pares, etc. - -Leia mais sobre a [anatomia dos blocos](/developers/docs/blocks). - -## O que acontece com os blocos? {#what-happens-to-blocks} - -O bloco é adicionado ao banco de dados local do proponente do bloco e transmitido aos pares pela rede de fofocas da camada de consenso. Quando um validador recebe o bloco, ele verifica os dados dentro dele, inclusive se o bloco tem o pai correto, corresponde ao pacote correto, se o índice do proponente é o esperado, se a revelação RANDAO é válida e se o proponente não foi removido. O `execution_payload` é descompactado e o cliente de execução do validador reexecuta as transações na lista para verificar a proposta de mudança de estado. Supondo que o bloco passe em todas essas verificações, cada validador adiciona o bloco à sua própria cadeia padronizada. O processo recomeça no próximo slot. - -## Recompensas do bloco {#block-rewards} - -O proponente de blocos recebe pagamento pelo seu trabalho. Há uma `base_reward` calculada como uma função do número de validadores ativos e seus saldos efetivos. O proponente de blocos recebe uma fração de `base_reward` por cada certificado válido incluído no bloco; quanto mais validadores atestarem o bloco, maior será a recompensa do seu proponente. Há também uma recompensa por reportar validadores que devem ser removidos, igual a `1/512 * saldo efetivo` para cada validador removido. - -[Recompensas e penalidades da PoS](/developers/docs/consensus-mechanisms/pos/rewards-and-penalties) - -## Leitura adicional {#further-reading} - -- [Introdução aos blocos](/developers/docs/blocks/) -- [Introdução à prova de participação](/developers/docs/consensus-mechanisms/pos/) -- [Especificações do consenso do Ethereum](https://www.github.com/ethereum/consensus-specs) -- [Introdução ao Gasper](/developers/docs/consensus-mechanisms/pos/) -- [Atualizando o Ethereum](https://eth2book.info/) diff --git a/src/content/translations/pt-br/developers/docs/mev/index.md b/src/content/translations/pt-br/developers/docs/mev/index.md deleted file mode 100644 index cbb66dd8e6f..00000000000 --- a/src/content/translations/pt-br/developers/docs/mev/index.md +++ /dev/null @@ -1,221 +0,0 @@ ---- -title: Valor máximo extraível (MEV) -description: Uma introdução ao valor máximo extraível (MEV) -lang: pt-br ---- - -Valor Máximo Extraível (MEV, na sigla em inglês) expressa o valor máximo que pode ser extraído da produção de blocos que excede a recompensa padrão do bloco e sua taxa de gás através da inclusão, exclusão e alteração da ordem de transações em um determinado bloco. - -### Valor máximo extraível {#miner-extractable-value} - -O valor máximo extraível foi aplicado pela primeira vez no contexto de [prova de trabalho](/developers/docs/consensus-mechanisms/pow/) e inicialmente referido como "valor extraível do minerador". Isto porque na prova de trabalho, os mineradores controlam a inclusão, exclusão e ordenação das transações. No entanto, desde a transição para a prova de participação por meio do [The Merge (A Fusão)](/roadmap/merge), os validadores têm sido responsáveis por essas funções, e a mineração não faz mais parte do protocolo Ethereum. Como os métodos de extração de valor ainda existem, o termo "valor máximo extraível" agora é usado. - -## Pré-Requisitos {#prerequisites} - -Certifique-se de estar familiarizado com [transações](/developers/docs/transactions/), [blocos](/developers/docs/blocks/), [prova de participação](/developers/docs/consensus-mechanisms/pos) e [gás](/developers/docs/gas/). Conhecer outros detalhes como [dapps](/dapps/) ou [DeFi](/defi/) também seria útil. - -## Extração via MEV {#mev-extraction} - -Em teoria, o MEV é revertido inteiramente para os validadores porque eles são a única parte que pode garantir a execução de uma oportunidade lucrativa de MEV. Na prática, porém, uma grande parte do MEV é extraída por participantes independentes da rede chamados "buscadores". Os buscadores executam algoritmos complexos nos dados da blockchain para detectar oportunidades de MEV lucrativas e usam bots para enviar automaticamente essas transações rentáveis para a rede. - -Os validadores recebem uma parte do valor total do MEV de qualquer maneira, porque os pesquisadores estão dispostos a pagar altas taxas de gás (que vão para o validador) em troca de maior probabilidade de inclusão de suas transações lucrativas em um bloco. Assumindo que os buscadores são economicamente racionais, a taxa de gás que um buscador está disposto a pagar será uma quantia de até 100% do MEV do buscador (porque se a taxa de gás fosse maior, o buscador perderia dinheiro). - -Com isso, para algumas oportunidades de MEV altamente competitivas, como [arbitragem DEX](#mev-examples-dex-arbitrage), os buscadores podem ter que pagar 90% ou até mais de sua receita total de MEV, em taxas de gás para o validador, porque muitas pessoas querem executar a mesma operação de arbitragem lucrativa. Isto porque a única maneira de garantir que a sua transação de arbitragem seja executada é submetendo a transação com o preço de gás mais elevado. - -### Redução do consumo de gás dos contratos (gas golfing) {#mev-extraction-gas-golfing} - -Esta dinâmica fez do "gas-golfing" — o fato de programar as transações para que elas usem a menor quantidade de gás possível — una vantagem competitiva, porque ela permite que os buscadores fixem um preço de gás superior sem deixar de manter as taxas de gás constantes (já que as taxas de gás = preço do gás \* gás usado). - -Algumas técnicas de "gas-golfing" conhecidas incluem: o uso de endereços que começam com uma longa série de zeros (por exemplo, [0x0000000000C521824EaFf97Eac7B73B084ef9306](https://etherscan.io/address/0x0000000000c521824eaff97eac7b73b084ef9306)), já que consomem menos espaço (e, portanto, gás); e deixar pequenos saldos de token de [ERC-20](/developers/docs/standards/tokens/erc-20/) em contratos, já que é mais caro inicializar um slot de armazenamento (o que acontece se o saldo for 0) que atualizá-lo. Encontrar mais técnicas para reduzir o uso de gás é uma área ativa de pesquisa entre pesquisadores. - -### Frontrunners generalizados {#mev-extraction-generalized-frontrunners} - -Em vez de programar algoritmos complexos para detectar oportunidades de MEV rentáveis, alguns buscadores executam frontrunners generalizados. Frontrunners generalizados são bots que assistem o mempool para detectar transações rentáveis. O frontrunner copiará o código da transação potencialmente rentável, substituirá os endereços pelo endereço do frontrunner, e executará a transação localmente para corroborar se a transação modificada resulta em lucro para o endereço do frontrunner. Se a transação for de fato rentável, o frontrunner enviará a transação modificada com o endereço substituído e um preço de gás mais alto, escolhendo a transação original (frontrunning) e obtendo a MEV do buscador original. - -### Flashbots {#mev-extraction-flashbots} - -Flashbots é um projeto independente que estende clientes de execução com um serviço que permite aos buscadores submeterem transações MEV aos validadores sem revelá-las ao mempool público. Isto evita que transações sejam executadas por frontrunners generalizados. - -## Exemplos de MEV {#mev-examples} - -O MEV surge na blockchain de diferentes maneiras. - -### Arbitragem DEX {#mev-examples-dex-arbitrage} - -A arbitragem em [exchanges descentralizadas](/glossary/#dex) (DEX) é a oportunidade mais simples e mais conhecida de MEV. Por conseguinte, é também a mais competitiva. - -Isso funciona assim: se dois DEXes estão oferecendo um token a dois preços diferentes, alguém pode comprar o token na DEX com preços mais baixos e vendê-lo nas DEX com preços mais altos em uma única transação atômica. Graças ao mecanismo da blockchain, está é sem dúvidas uma arbitragem sem risco. - -[Aqui está um exemplo](https://etherscan.io/tx/0x5e1657ef0e9be9bc72efefe59a2528d0d730d478cfc9e6cdd09af9f997bb3ef4) de uma transação de arbitragem lucrativa onde um buscador transformou 1.00 ETH em 1.045 ETH aproveitando os diferentes preços do par ETH/DAI no Uniswap vs. Sushiswap. - -### Liquidações {#mev-examples-liquidations} - -As liquidações do protocolo de empréstimo oferecem outra oportunidade conhecida de MEV. - -Protocolos de empréstimo como Maker e Aave exigem que os usuários depositem algumas garantias (por exemplo, ETH). Essa garantia depositada é então usada para emprestar a outros usuários. - -Os usuários podem então pedir emprestado ativos e tokens de outros, dependendo do que eles precisarem (por exemplo, você pode pedir emprestado MKR, se quiser votar em uma proposta de governança do MakerDAO) até um certo percentual de suas garantias depositadas. Por exemplo, se a quantia emprestada for um máximo de 30%, um usuário que depositar 100 DAI no protocolo poderá emprestar até 30 DAI de outro ativo. O protocolo determina a porcentagem exata do poder de empréstimo. - -O valor das garantias de quem pede o emprestado flutua, assim como sua capacidade de pedir empréstimo. Se, por causa das flutuações de mercado, o valor dos ativos emprestados excede, por exemplo, 30% do valor de suas garantias (novamente, a porcentagem exata é determinada pelo protocolo), o protocolo normalmente permite que qualquer pessoa liquide a garantia, pagando imediatamente os mutuantes (isso é semelhante a como [chamada de margem](https://www.investopedia.com/terms/m/margincall.asp) funciona nas finanças tradicionais). Se liquidado, o mutuário geralmente tem de pagar uma taxa de liquidação elevada, parte da qual vai para o liquidador. É aí que se encontra a oportunidade de MEV. - -Os buscadores competem para analisar os dados da blockchain o mais rápido possível para determinar quais mutuários podem ser liquidados e ser o primeiro a enviar uma transação de liquidação e coletar a taxa de liquidação para si mesmos. - -### Sandwich trading {#mev-examples-sandwich-trading} - -Sandwich trading é outro método comum de extração MEV. - -Para usar o método sandwich, um buscador observará o mempool para encontrar grandes negociações DEX. Por exemplo, suponha que alguém queira comprar 10.000 UNI com DAI na Uniswap. Uma transação desta magnitude causará um impacto significativo no par UNI/DAI, ocasionando aumento significativo no preço da UNI em relação ao DAI. - -Um buscador pode calcular o efeito de preço aproximado desta grande negociação no par UNI/DAI e executar uma ordem de compra ideal imediatamente _antes_ da grande negociação, comprando UNI mais barato e, em seguida, executar uma ordem de venda imediatamente _após_ a grande negociação, vendendo-a pelo preço mais alto causado pelo grande pedido. - -No entanto, o método sandwich é mais arriscado, pois não é atômico (ao contrário da arbitragem DEX, como descrito acima) e é propenso a um [ataque "salmonela"](https://github.com/Defi-Cartel/salmonella). - -### MEV com NFT {#mev-examples-nfts} - -O MEV no espaço de NFT é um fenômeno emergente e não é necessariamente lucrativo. - -No entanto, uma vez que as transações NFT acontecem na mesma blockchain compartilhada por todas as outras transações Ethereum, buscadores podem usar técnicas similares como as usadas em oportunidades de MEV tradicionais também no mercado NFT. - -Por exemplo, se há o lançamento de um NFT popular e um buscador quer um determinado NFT ou um determinado conjunto de NFTs, ele pode programar uma transação de tal forma a ser o primeiro a comprar a NFT ou ele pode comprar todo o conjunto de NFTs em uma única transação. Ou se um NFT estiver [listado por um preço baixo de maneira equivocada](https://www.theblockcrypto.com/post/113546/mistake-sees-69000-cryptopunk-sold-for-less-than-a-cent), um buscador pode se adiantar por meio de frontrun a outros compradores e adquiri-lo por baixo custo. - -Um exemplo proeminente de NFT com MEV ocorreu quando um buscador gastou US$ 7 milhões para [comprar](https://etherscan.io/address/0x650dCdEB6ecF05aE3CAF30A70966E2F395d5E9E5) cada Cryptopunk ao preço mínimo. Um pesquisador de blockchain [explicou no Twitter](https://twitter.com/IvanBogatyy/status/1422232184493121538) como o comprador trabalhou com um provedor de MEV para manter a compra em segredo. - -### A cauda longa {#mev-examples-long-tail} - -Arbitragem DEX, liquidações e o método sandwich trading são todos oportunidades de MEV muito conhecidas e são improváveis de serem lucrativas para novos buscadores. No entanto, há uma longa cauda de oportunidades de MEV menos conhecidas. MEV com NFT é, indiscutivelmente, uma dessas oportunidades. - -Os buscadores que estão apenas começando talvez consigam ter mais sucesso procurando MEV nesta cauda mais longa. O [quadro de trabalhos MEV](https://github.com/flashbots/mev-job-board) do Flashbot enumera algumas oportunidades emergentes. - -## Efeitos do MEV {#effects-of-mev} - -Nem tudo sobre o MEV é negativo. Há consequências positivas e negativas com respeito ao MEV no Ethereum. - -### As vantagens {#effects-of-mev-the-good} - -Muitos projetos DeFi dependem de atores economicamente racionais para assegurar a utilidade e a estabilidade dos seus protocolos. Por exemplo, a arbitragem DEX garante que os usuários obtenham os melhores preços corretos por seus totens, e os protocolos de empréstimo dependem de liquidações rápidas quando os mutuários caem abaixo das proporções de garantia para garantir que os mutuários recebam de volta. - -Sem buscadores racionais procurando e corrigindo as ineficiências econômicas e aproveitando os incentivos econômicos dos protocolos, os protocolos de DeFI e dApps podem, em geral, não ser tão robustos como são hoje. - -### As desvantagens {#effects-of-mev-the-bad} - -Na camada de aplicativo, algumas formas de MEV, como o método "sandwich trading", resultam em uma experiência inequivocamente pior para os usuários. Usuários que sofrem o método "sandwich trading" enfrentam maior slippage (derrapagem) e uma pior execução nas suas transações. - -Na camada de rede, os frontrunners generalizados e os leilões de preço do gás nos quais eles costumam participar (quando dois ou mais frontrunners competem para que sua transação seja incluída no bloco seguinte, aumentando progressivamente o preço do gás das suas próprias transações) resultam em congestionamento da rede e em elevados preços do gás para todos os outros que tentam realizar transações regulares. - -Além do que está acontecendo _nos_ blocos, o MEV pode ter efeitos prejudiciais _entre_ os blocos. Se o MEV disponível em um bloco excede significativamente a recompensa do bloco padrão, os validadores podem ser incentivados a reorganizar os blocos e capturar o MEV para si mesmos, causando reorganização da blockchain e instabilidade do consenso. - -Essa possibilidade de reorganização da blockchain foi [previamente explorada na blockchain Bitcoin](https://dl.acm.org/doi/10.1145/2976749.2978408). Como a recompensa de bloco do Bitcoin é reduzida pela metade e as recompensas de transação representam uma parte cada vez maior da recompensa do bloco, surgem situações nas quais é mais economicamente racional para os mineradores desistirem da recompensa do próximo bloco e, em vez disso, minarem novamente blocos passados com taxas mais elevadas. Com o crescimento do MEV, o mesmo tipo de situação poderia ocorrer com o Ethereum, ameaçando a integridade da blockchain. - -## Estado do MEV {#state-of-mev} - -A extração MEV teve um grande crescimento no início de 2021, o que resultou em preços de gás extremamente elevados nos primeiros meses do ano. O surgimento do relé MEV de Flashbots reduziu a efetividade dos frontrunners generalizados e tirou os leilões de preço de gás da cadeia, baixando os preços do gás para os utilizadores comuns. - -Enquanto muitos buscadores ainda estão ganhando um bom dinheiro com o MEV, à medida que as oportunidades se tornam mais conhecidas e mais e mais buscadores competem pela mesma oportunidade, os validadores irão capturar cada vez mais receita total do MEV (porque o mesmo tipo de leilão de gás descrito originalmente acima também ocorre em Flashbots, embora de forma particular, e os validadores irão capturar a receita de gás resultante). O MEV também não é exclusivo da Ethereum, e conforme as oportunidades se tornam mais competitivas no Ethereum, os buscadores estão migrando para blockchains alternativas, como a Binance Smart Chain, onde oportunidades de MEV semelhantes às que estão na Ethereum existem com menos concorrência. - -Por outro lado, a transição da prova de trabalho para prova de participação e o esforço contínuo para escalar o Ethereum usando rollups mudam todo o panorama do MEV de maneiras que ainda não estão claras. Ainda não se sabe bem de que maneira ter proponentes de bloco garantidos conhecidos com pouca antecedência altera a dinâmica da extração de MEV em comparação com o modelo probabilístico na prova de trabalho ou como isso será interrompido quando [a eleição de líder secreto único](https://ethresear.ch/t/secret-non-single-leader-election/11789) e [a tecnologia de validador distribuído](/staking/dvt/) forem implementados. Da mesma forma, resta saber quais são as oportunidades de MEV existentes quando a maioria das atividades do usuário é transferida do Ethereum para seus rollups e fragmentos de camada 2. - -## MEV na prova de participação (PoS) do Ethereum {#mev-in-ethereum-proof-of-stake} - -Conforme explicado, o MEV tem implicações negativas para a experiência geral do usuário e para a segurança da camada de consenso. Mas a transição do Ethereum para um consenso de prova de participação (denominado "A Fusão") introduz potencialmente novos riscos relacionados ao MEV: - -### Centralização do validador {#validator-centralization} - -No Ethereum pós-fusão, os validadores (tendo feito depósitos de segurança de 32 ETH) chegam a um consenso sobre a validade dos blocos adicionados à Beacon Chain. Como 32 ETH podem estar fora do alcance de muitos, [entrar em um staking pool](/staking/pools/) pode ser uma opção mais viável. No entanto, uma distribuição saudável de [stakers individuais](/staking/solo/) é ideal, pois mitiga a centralização dos validadores e melhora a segurança do Ethereum. - -No entanto, acredita-se que a extração MEV seja capaz de acelerar a centralização de validadores. Isso se deve em parte porque, como os validadores [ganham menos por propor blocos](/roadmap/merge/issuance/#how-the-merge-impacts-ETH-supply) do que os mineradores atualmente, a extração de MEV pode em muito [influenciar os ganhos do validador](https://github.com/flashbots/eth2-research/blob/main/notebooks/mev-in-eth2/eth2-mev-calc.ipynb) após o The Merge (A Fusão). - -Staking pools maiores provavelmente terão mais recursos para investir em otimizações necessárias para capturar oportunidades de MEV. Quanto mais MEV essas pools extraem, mais recursos eles têm para melhorar suas capacidades de extração MEV (e aumentar a receita geral), criando essencialmente [economias de escala](https://www.investopedia.com/terms/e/economiesofscale.asp#). - -Com menos recursos à sua disposição, os stakers individuais podem ser incapazes de lucrar com oportunidades de MEV. Isso pode aumentar a pressão sobre validadores independentes para se unirem a staking pools poderosas para aumentar os ganhos, reduzindo a descentralização no Ethereum. - -### Mempools autorizados {#permissioned-mempools} - -Em resposta aos ataques "sandwiching" e "frontrunning", os traders podem começar a realizar negócios off-chain com validadores para privacidade de transação. Em vez de enviar uma potencial transação MEV para o mempool público, o trader a envia diretamente ao validador, que a inclui em um bloco e divide os lucros com o trader. - -"Dark pools" são uma versão maior deste arranjo e funcionam como mempools autorizados só de acesso, abertas para usuários dispostos a pagar determinadas taxas. Esta tendência diminuiria a ausência de permissão e falta de confiança no Ethereum, e potencialmente transformaria a blockchain em um mecanismo "pay-to-play" que favorece a maior oferta. - -Mempools autorizados também acelerariam os riscos de centralização descritos na seção anterior. Grandes pools que executam vários validadores provavelmente se beneficiarão ao oferecer privacidade de transação a traders e usuários, aumentando as receitas MEV deles. - -A luta contra esses problemas relacionados ao MEV no Ethereum pós-Fusão é uma área central de pesquisa. Até hoje, duas soluções propostas para reduzir o impacto negativo do MEV na descentralização e na segurança do Ethereum, depois da Fusão são **Separação Proponente-Construtor (PBS)** e **Builder API**. - -### Separação Proponente/Construtor {#proposer-builder-separation} - -Em ambas prova de trabalho e prova de participação, um nó que cria um bloco o propõe para ser adicionado à cadeia para outros nós que participam do consenso. Um novo bloco se torna parte da cadeia canônica depois que outro minerador constrói com base nele (na prova de trabalho) ou recebe atestados da maioria dos validadores (na prova de participação). - -A combinação de funções de produtor de bloco e de proponente de bloco é o que introduz a maioria dos problemas relacionados com o MEV descritos anteriormente. Por exemplo, nós de consenso são incentivados a desencadear reorganizações da cadeia em ataques time-bandit para maximizar os ganhos MEV. - -A [Separação Proponente/Construtor](https://ethresear.ch/t/proposer-block-builder-separation-friendly-fee-market-designs/9725) (PBS) foi criada para mitigar o impacto do MEV, especialmente na camada de consenso. A principal característica do PBS é a separação entre o produtor de bloco e as regras do proponente de bloco. Os validadores ainda são responsáveis por propor e votar nos blocos, mas uma nova classe de entidades especializadas, chamada de **construtores de blocos**, é encarregada de ordenar transações e construir blocos. - -Em PBS, um construtor de blocos cria um pacote de transações e faz um lance para sua inclusão em um bloco da Beacon Chain (como o “payload de execução”). O validador selecionado para propor o próximo bloco verifica então os diferentes lances e escolhe o pacote com a taxa mais alta. O PBS cria essencialmente um mercado de leilão, no qual os construtores negociam com os validadores vendendo o espaço no bloco. - -O design de PBS atual usa um [esquema commit-reveal](https://gitcoin.co/blog/commit-reveal-scheme-on-ethereum/) no qual os construtores só publicam um compromisso criptográfico com o conteúdo de um bloco (header do bloco), juntamente com seus lances. Após aceitar o lance vencedor, o proponente cria uma proposta de bloco assinado que inclui o cabeçalho do bloco. O construtor do bloco deve publicar o corpo completo do bloco após ver a proposta do bloco assinado, e também deve receber [atestações](/glossary/#attestation) suficientes dos validadores antes de ser finalizado. - -#### Como a separação proponente-construtor atenua o impacto do MEV? {#how-does-pbs-curb-mev-impact} - -O protocolo de separação proponente-construtor reduz o efeito do MEV sobre o consenso removendo a extração MEV da alçada dos validadores. Em vez disso, são os construtores de blocos que executam hardware especializado que irão capturar oportunidades MEV no futuro. - -Isso não exclui totalmente os validadores das receitas relacionadas ao MEV, já que os construtores devem dar lances altos para conseguir que seus blocos sejam aceitos pelos validadores. No entanto, com validadores não mais focados diretamente na otimização de renda MEV, a ameaça de ataques time-bandit diminui. - -A separação proponente-construtor também reduz os riscos de centralização do MEV. Por exemplo, o uso de um esquema commit-reveal remove a necessidade de os construtores confiarem nos validadores para não roubarem a oportunidade MEV ou expô-la a outros construtores. Isso reduz a barreira para os stakers individuais se beneficiarem do MEV, caso contrário os construtores tenderiam a favorecer grandes pools com reputação off-chain e a conduzir acordos off-chain com eles. - -De forma similar, os validadores não têm que confiar que os construtores não vão reter os corpos de blocos ou publicar blocos inválidos porque o pagamento é incondicional. A taxa do validador ainda processa mesmo que o bloco proposto esteja indisponível ou seja declarado inválido por outros validadores. No último caso, o bloco é simplesmente descartado, forçando o construtor de blocos a perder todas as taxas de transação e a receita MEV. - -### Builder API {#builder-api} - -Embora a separação proponente-construtor prometa reduzir os efeitos da extração do MEV, a sua implementação requer alterações no protocolo de consenso. Especificamente, a regra de [escolha de fork](/developers/docs/consensus-mechanisms/pos/#fork-choice) na Beacon Chain precisaria ser atualizada. A [Builder API](https://github.com/ethereum/builder-specs) é uma solução temporária destinada a fornecer uma implementação funcional da separação proponente-construtor, embora com hipóteses mais confiáveis. - -A Builder API é uma versão modificada da [Engine API](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) usada por clientes da camada de consenso para solicitar payloads de execução de clientes da camada de execução. Conforme descrito na [especificação do validador honesto](https://github.com/ethereum/consensus-specs/blob/dev/specs/bellatrix/validator.md), validadores selecionados para funções de proposta de bloco solicitam um pacote de transação de um cliente de execução conectado, que eles incluem no bloco proposto da Beacon Chain. - -A Builder API também atua como um middleware entre validadores e clientes da camada de execução; mas é diferente porque permite aos validadores na Beacon Chain originar blocos de entidades externas (em vez de construir um bloco localmente usando um cliente de execução). - -Veja abaixo uma resumo geral de como a Builder API funciona: - -1. A Builder API conecta o validador a uma rede de construtores de blocos executando clientes de camada de execução. Como no PBS, construtores são grupos especializados que investem em construção de blocos com uso intensivo de recursos e usam diferentes estratégias para maximizar a receita obtida a partir de MEV + dicas prioritárias. - -2. Um validador (executando um cliente de camada de consenso) solicita payloads de execução juntamente com lances da rede de construtores. Os lances dos construtores conterão o cabeçalho do payload de execução, um compromisso criptográfico com o conteúdo do payload, e uma taxa a ser paga ao validador. - -3. O validador analisa os lances recebidos e escolhe o payload de execução com a taxa mais alta. Usando a Builder API, o validador cria uma proposta de bloco Beacon "cega" que inclui apenas a assinatura dele e o cabeçalho de payload de execução e o envia para o construtor. - -4. O construtor que executa a Builder API deverá responder com a carga completa de execução após ver a proposta de bloco cega. Isso permite que o validador crie um bloco Beacon "assinado" que eles propagam por toda a rede. - -5. Ainda é esperado que um validador usando a Builder API construa um bloco localmente caso o construtor de blocos não responda prontamente, para que não percam as recompensas de proposta de bloco. No entanto, o validador não pode criar outro bloco usando as transações agora reveladas ou outro conjunto, pois equivaleria a _equívoco_ (assinar dois blocos dentro do mesmo slot), o que é uma infração passível de advertência. - -Uma implementação de exemplo da Builder API é [MEV Boost](https://github.com/flashbots/mev-boost), uma melhoria no mecanismo de leilão [Flashbots](https://docs.flashbots.net/Flashbots-auction/overview/) projetada para limitar as externalidades negativas de MEV no Ethereum. O leilão Flashbots permite que os mineradores em prova de trabalho externalizem o trabalho de construção de blocos lucrativos a partes especializadas chamadas de **buscadores**. - -Os buscadores procuram oportunidades de MEV lucrativas e enviam pacotes de transação para os mineradores, juntamente com uma [oferta de preço selada](https://en.wikipedia.org/wiki/First-price_sealed-bid_auction) para inclusão no bloco. O minerador executando mev-geth, uma versão bifurcada do cliente go-ethereum (Geth) só precisa escolher o pacote com mais lucro e minerá-lo como parte do novo bloco. Para proteger os mineradores de transações de spam e inválidas, os pacotes de transações passam por **retransmissores** (relayers) para validação antes de chegar aos mineradores. - -O MEV Boost mantém o mesmo funcionamento do leilão original de Flashbots, embora com novos recursos projetados para a mudança à prova de participação do Ethereum. Os buscadores ainda consideram transações MEV lucrativas para inclusão em blocos, mas uma nova classe de partes especializadas, chamada de **construtores**, é responsável pela agregação de transações e pacotes em blocos. Um construtor aceita ofertas de preço seladas pelos buscadores e executa otimizações para encontrar o pedido mais lucrativo. - -O retransmissor ainda é responsável por validar pacotes de transações antes de passá-los para o proponente. No entanto, o MEV Boost introduz **escrows** responsáveis por fornecer [disponibilidade de dados](/developers/docs/data-availability/) ao armazenar corpos de blocos enviados por construtores e cabeçalhos de bloco enviados por validadores. Aqui, um validador conectado a um relay pede por payloads de execução disponíveis e usa o algoritmo de ordenação MEV Boost para selecionar o cabeçalho de payload com as maiores ofertas + valores MEV. - -#### Como a Builder API atenua o impacto do MEV? {#how-does-builder-api-curb-mev-impact} - -O principal benefício da Builder API é o seu potencial de democratizar o acesso a oportunidades de MEV. O uso de esquemas commit-revel elimina suposições de confiança e reduz as barreiras de entrada para os validadores que procuram se beneficiar com o MEV. Isso deve reduzir a pressão sobre os participantes individuais para se integrarem com grandes staking pools a fim de aumentar os lucros MEV. - -A vasta implementação da Builder API incentivará uma maior concorrência entre os construtores de blocos, o que aumentará a resistência à censura. Como os validadores revisam lances de vários construtores, a intenção de um construtor de censurar uma ou mais transações de usuários deve superar todos os outros construtores que não censuram para ter sucesso. Isto aumenta consideravelmente o custo da censura de usuários e desencoraja a prática. - -Alguns projetos, como MEV Boost, usam a Builder API como parte de uma estrutura global projetada para oferecer privacidade de transação a certas partes, tais como os traders que tentam evitar ataques frontrunning/sandwiching. Para isso, se proporciona um canal de comunicação particular entre usuários e construtores de blocos. Ao contrário dos mempools autorizados descritos anteriormente, esta abordagem é vantajosa pelas seguintes razões: - -1. A existência de múltiplos construtores no mercado torna a censura impraticável, o que beneficia os usuários. Em contrapartida, a existência de dark pools centralizadas e baseadas em confiança concentraria o poder nas mãos de poucos construtores de blocos e aumentaria a possibilidade de censura. - -2. O software da Builder API é de código aberto, o que permite que qualquer pessoa ofereça serviços de construtor de bloco. Isso significa que os usuários não são forçados a usar nenhum construtor de blocos em particular e melhora a neutralidade e a ausência de permissão do Ethereum. Além disso, os traders em busca de MEV não contribuirão inadvertidamente para a centralização por usar canais de transação particulares. - -## Recursos relacionados {#related-resources} - -- [Documentação sobre Flashbots (links em inglês)](https://docs.flashbots.net/) -- [Flashbots GitHub](https://github.com/flashbots/pm) -- [MEV-Explore](https://explore.flashbots.net/) _Painéis e explorador de transações ao vivo de transações MEV_ -- [mevboost.org](https://www.mevboost.org/) - _Rastreador com estatísticas em tempo real para relays MEV-Boost e construtores de blocos_ - -## Leitura adicional {#further-reading} - -- [Valor extraível da mineração (MEV)?](https://blog.chain.link/what-is-miner-extractable-value-mev/) -- [MEV e Mim](https://www.paradigm.xyz/2021/02/mev-and-me) -- [O Ethereum é uma Floresta Sombria](https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest/) -- [Escapando da Floresta Sombria](https://samczsun.com/escaping-the-dark-forest/) -- [Flashbots: Superando a crise MEV](https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752) -- [Tópicos sobre MEV de @bertcmiller](https://twitter.com/bertcmiller/status/1402665992422047747) -- [MEV-Boost: Arquitetura Flashbots pronta para a Fusão](https://ethresear.ch/t/mev-boost-merge-ready-flashbots-architecture/11177) -- [O que é MEV Boost](https://www.alchemy.com/overviews/mev-boost) -- [Por que executar mev-boost?](https://writings.flashbots.net/writings/why-run-mevboost/) -- [O Guia do Mochileiro sobre o Ethereum](https://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum) diff --git a/src/content/translations/pt-br/developers/docs/networking-layer/index.md b/src/content/translations/pt-br/developers/docs/networking-layer/index.md deleted file mode 100644 index 11d3b364887..00000000000 --- a/src/content/translations/pt-br/developers/docs/networking-layer/index.md +++ /dev/null @@ -1,155 +0,0 @@ ---- -title: Camada da Rede -description: Introdução à camada de rede Ethereum -lang: pt-br -sidebarDepth: 2 ---- - -Ethereum é uma rede ponto a ponto com milhares de nós que devem ser capazes de se comunicar uns com os outros usando protocolos padronizados. A "camada de rede" é a pilha de protocolos que permite que esses nós se encontrem e troquem informações. Isso inclui "propagar" informações (comunicação um-para-muitos) na rede, bem como trocar solicitações e respostas entre nós específicos (comunicação um-para-um). Cada nó deve aderir a regras de rede específicas para garantir que eles estejam enviando e recebendo as informações corretas. - -Existem duas partes no software cliente (clientes de execução e clientes de consenso), cada uma com sua própria pilha de rede distinta. Além de se comunicar com outros nós Ethereum, a execução e o consenso de clientes têm de se comunicar entre si. Esta página fornece uma explicação introdutória dos protocolos que permitem essa comunicação. - -Clientes de execução transmitem transações na rede ponto a ponto na camada de execução. Isso requer comunicação criptografada entre pares autenticados. Quando um validador é selecionado para propor um bloco, as transações do pool de transações locais do nó são passadas para clientes de consenso através de uma conexão RPC local, que será empacotada em blocos Beacon. Os clientes de consenso irão, então, propagar blocos Beacon em sua rede p2p. Isso requer duas redes p2p separadas: uma conectando clientes de execução para propagação de transação e outra conectando clientes de consenso para propagação de bloco. - -## Pré-requisitos {#prerequisites} - -Alguns conhecimentos dos [nós e clientes](/developers/docs/nodes-and-clients/) do Ethereum serão úteis para entender esta página. - -## A camada de execução {#execution-layer} - -Os protocolos de rede da camada de execução são divididos em duas pilhas: - -- a pilha de descoberta: criada em cima do UDP e que permite que um novo nó encontre pares para se conectar - -- a pilha DevP2P: fica no topo do TCP e permite que os nós troquem informações - -Ambas as pilhas funcionam em paralelo. A pilha de descoberta alimenta novos participantes da rede e a pilha DevP2P permite suas interações. - -### Descoberta {#discovery} - -Descoberta é o processo de encontrar outros nós na rede. Isso é inicializado usando um pequeno conjunto de bootnodes (nós cujos endereços são [hardcoded](https://github.com/ethereum/go-ethereum/blob/master/params/bootnodes.go) dentro do cliente para que possam ser encontrados imediatamente e conectar o cliente aos pares). Estes bootnodes (nós de inicialização) existem apenas para introduzir um novo nó a um conjunto de pares. Esse é o único objetivo deles; eles não participam de tarefas normais do cliente como sincronizar a cadeia e são usados somente na primeira vez que um cliente é ativado. - -O protocolo usado para as interações de node-bootnode (nós de inicialização) é uma forma modificada de [Kademlia](https://medium.com/coinmonks/a-brief-overview-of-kademlia-and-its-use-in-various-decentralized-platforms-da08a7f72b8f) que usa uma [tabela de hash distribuída](https://en.wikipedia.org/wiki/Distributed_hash_table) para compartilhar listas de nós. Cada nó tem uma versão desta tabela contendo as informações necessárias para se conectar aos seus pares mais próximos. Essa 'proximidade' não é geográfica. A distância é definida pela semelhança do ID de nós. A tabela de cada nó é atualizada regularmente como um recurso de segurança. Por exemplo, no [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5), os nós do protocolo de descoberta também podem enviar 'anúncios' que exibem os subprotocolos que o cliente suporta, permitindo que os pares negociem sobre os protocolos que ambos podem usar para se comunicar. - -A descoberta começa com um jogo de PING-PONG. Um PING-PONG bem-sucedido "liga" o novo nó a um bootnode (nó de inicialização). A mensagem inicial que alerta um bootnode sobre a existência de um novo nó entrando na rede é um `PING`. Este `PING` inclui informações em hash sobre o novo nó, o bootnode e um carimbo de data/hora de expiração. O bootnode recebe o `PING` e retorna um `PONG` contendo o hash `PING`. Se os hashes `PING` e `PONG` corresponderem, então a conexão entre o novo nó e o bootnode será verificada e diz-se que eles têm "vínculo". - -Uma vez vinculado, o novo nó pode enviar uma solicitação `FIND-NEIGHBOURS` para o bootnode. Os dados retornados pelo bootnode incluem uma lista de peers aos quais o novo nó pode se conectar. Se os nós não estiverem vinculados, a solicitação `FIND-NEIGHBOURS` falhará, então o novo nó não poderá entrar na rede. - -Uma vez que o novo nó recebe uma lista de vizinhos do bootnode, ele inicia uma troca de PING-PONG com cada um deles. PING-PONGs bem-sucedidos unem o novo nó com seus vizinhos, permitindo a troca de mensagens. - -``` -start client --> connect to bootnode --> bond to bootnode --> find neighbours --> bond to neighbours -``` - -Os clientes de execução estão usando atualmente o protocolo de descoberta [Discv4](https://github.com/ethereum/devp2p/blob/master/discv4.md) e há um esforço ativo para migrar para o protocolo [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5). - -#### ENR: Registros de Nó Ethereum {#enr} - -O [Registro de Nó Ethereum (ENR)](/developers/docs/networking-layer/network-addresses/) é um objeto que contém três elementos básicos: uma assinatura (hash do conteúdo do registro feito de acordo com algum esquema de identidade acordado), um número de sequência que rastreia as alterações no registro e uma lista arbitrária de pares chave:valor. Este é um formato moderno que permite uma troca mais fácil de informações de identificação entre novos pares e é o formato de [endereço de rede](/developers/docs/networking-layer/network-addresses) preferido dos nós Ethereum. - -#### Por que a descoberta é construída no UDP? {#why-udp} - -O UDP não suporta nenhuma verificação de erros, reenvio de pacotes com falha ou abertura e fechamento de conexões dinamicamente. Em vez disso, ele apenas dispara um fluxo contínuo de informações em um destino, independentemente de ter sido recebido com sucesso. Essa funcionalidade mínima também se traduz em sobrecarga mínima, tornando esse tipo de conexão muito rápida. Para descoberta, onde um nó simplesmente quer tornar sua presença conhecida, para depois estabelecer uma conexão formal com um par, o UDP é suficiente. No entanto, para o restante da pilha de rede, o UDP não é adequado. A troca de informações entre nós é bastante complexa e, portanto, precisa de um protocolo mais completo que possa suportar reenvio, verificação de erros etc. A sobrecarga adicional associada ao TCP vale a funcionalidade adicional. Portanto, a maioria da pilha P2P opera sobre TCP. - -### DevP2P {#devp2p} - -O DevP2P é em si uma pilha inteira de protocolos que o Ethereum implementa para estabelecer e manter a rede ponto a ponto. Depois que novos nós entram na rede, suas interações são regidas por protocolos na pilha [DevP2P](https://github.com/ethereum/devp2p). Todos eles ficam em cima do TCP e incluem o protocolo de transporte RLPx, o protocolo de fio e vários subprotocolos. [RLPx](https://github.com/ethereum/devp2p/blob/master/rlpx.md) é o protocolo que controla o início, a autenticação e a manutenção de sessões entre nós. O RLPx codifica mensagens usando RLP (Prefixo de Comprimento Recursivo), que é um método muito eficiente de codificação de dados em uma estrutura mínima para envio entre nós. - -Uma sessão RLPx entre dois nós começa com um acerto criptográfico inicial. Isso envolve o nó enviando uma mensagem de autenticação que é então verificada pelo par. Na verificação bem-sucedida, o para gera uma mensagem de confirmação de autenticação para retornar ao nó inicializador. Este é um processo de troca de chaves que permite que os nós se comuniquem de forma privada e segura. Um aperto de mão criptográfico bem-sucedido aciona ambos os nós para enviar uma mensagem "hello" um ao outro "na rede". O protocolo de transmissão é iniciado por uma troca bem-sucedida de mensagens de saudação. - -A mensagem "hello" contém: - -- versão do protocolo -- ID do cliente -- porta -- ID do nó -- lista de subprotocolos suportados - -Essa é a informação necessária para uma interação bem-sucedida, pois define quais recursos são compartilhados entre ambos os nós e configura a comunicação. Existe um processo de negociação de subprotocolos em que as listas de subprotocolos suportados por cada nó são comparadas e aqueles que são comuns a ambos os nós podem ser utilizados na sessão. - -Junto com as mensagens de saudação, o protocolo de transmissão também pode enviar uma mensagem de "desconexão" que avisa a um par que a conexão será fechada. O protocolo de transmissão também inclui mensagens PING e PONG que são enviadas periodicamente para manter uma sessão aberta. As trocas de protocolo RLPx e de transmissão, portanto, estabelecem as bases da comunicação entre os nós, fornecendo o scaffolding para que informações úteis sejam trocadas de acordo com um subprotocolo específico. - -### Subprotocolos {#sub-protocols} - -#### Protocolo de transmissão {#wire-protocol} - -Uma vez que os pares estão conectados e uma sessão RLPx foi iniciada, o protocolo de transmissão define como os pares se comunicam. Inicialmente, o protocolo de transmissão definiu três tarefas principais: sincronização de cadeia, propagação de bloco e troca de transação. No entanto, uma vez que o Ethereum mudou para a prova de participação, a propagação do bloco e a sincronização da cadeia tornaram-se parte da camada de consenso. A troca de transações ainda é da responsabilidade dos clientes de execução. Troca de transações refere-se à troca de transações pendentes entre nós para que os mineradores possam selecionar algumas delas para inclusão no próximo bloco. Informações detalhadas sobre essas tarefas estão disponíveis [aqui](https://github.com/ethereum/devp2p/blob/master/caps/eth.md). Os clientes que oferecem suporte a esses subprotocolos os expõem por meio do [JSON-RPC](/developers/docs/apis/json-rpc/). - -#### les (subprotocolo ethereum leve) {#les} - -Este é um protocolo mínimo para sincronizar clientes leves. Esse protocolo raramente é usado porque são necessários nós completos para fornecer dados a clientes leves sem serem incentivados. O comportamento padrão dos clientes de execução é não transmitir dados de clientes leves sobre subprotocolos ethereum leve (les). Mais informações estão disponíveis nas [especificações](https://github.com/ethereum/devp2p/blob/master/caps/les.md). - -#### Captura {#snap} - -O [protocolo de captura](https://github.com/ethereum/devp2p/blob/master/caps/snap.md#ethereum-snapshot-protocol-snap) é uma extensão opcional que permite que pares troquem instantâneos de estados recentes, permitindo que os pares verifiquem dados de conta e armazenamento sem precisar baixar nós intermediários da árvore Merkle. - -#### Wit (protocolo de testemunha) {#wit} - -O [protocolo de testemunha](https://github.com/ethereum/devp2p/blob/master/caps/wit.md#ethereum-witness-protocol-wit) é uma extensão opcional que permite a troca de testemunhas de estado entre os pares, ajudando a sincronizar os clientes com a ponta da cadeia. - -#### Whisper {#whisper} - -Whisper era um protocolo que visava entregar mensagens seguras entre pares sem escrever qualquer informação na blockchain. Fazia parte do protocolo de transmissão DevP2P, mas agora está obsoleto. Existem outros [projetos relacionados](https://wakunetwork.com/) com objetivos semelhantes. - -## A camada de consenso {#consensus-layer} - -Os clientes de consenso participam de uma rede ponto a ponto separada com uma especificação diferente. Os clientes de consenso precisam participar de gossip (comunicação de um para muitos) do bloco para que possam receber novos blocos de pares e transmiti-los quando for sua vez de propor blocos. Semelhante à camada de execução, isto requer primeiro um protocolo de descoberta para que um nó possa encontrar pares e estabelecer sessões seguras para a troca de blocos, atestados etc. - -### Descoberta {#consensus-discovery} - -Semelhante aos clientes de execução, os clientes de consenso usam [discv5](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-discovery-domain-discv5) sobre UDP para encontrar pares. A implementação da camada de consenso do discv5 difere daquela dos clientes de execução apenas porque inclui um adaptador conectando o discv5 em uma pilha [libP2P](https://libp2p.io/), descontinuando o DevP2P. As sessões RLPx da camada de execução foram descontinuadas a favor do handshake (acerto) de canal seguro de ruído da libP2P. - -### ENRs {#consensus-enr} - -O ENR para nós de consenso inclui a chave pública do nó, endereço IP, portas UDP e TCP e dois campos específicos de consenso: o campo de bits (bitfield) da sub-rede de atestado e a chave `eth2`. O primeiro torna mais fácil para os nós encontrarem pares que participam de sub-redes de gossip de atestado específicas. A chave `eth2` contém informações sobre qual versão do fork Ethereum o nó está usando, garantindo que os pares estejam se conectando ao Ethereum correto. - -### libP2P {#libp2p} - -A pilha libP2P suporta todas as comunicações após a descoberta. Os clientes podem discar e escutar em IPv4 e/ou IPv6 conforme definido em seu ENR. Os protocolos na camada libP2P podem ser subdivididos nos domínios gossip e req/resp (envio/resposta). - -### Gossip {#gossip} - -O domínio gossip inclui todas as informações que precisam se espalhar rapidamente pela rede. Isso inclui blocos de sinalização, provas, atestados, saídas e cortes. Isso é transmitido usando libP2P gossipsub v1 e depende de vários metadados armazenados localmente em cada nó, incluindo o tamanho máximo de cargas de gossip para receber e transmitir. Informações detalhadas sobre o domínio gossip estão disponíveis [aqui](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-gossip-domain-gossipsub). - -### Pedido-Resposta {#request-response} - -O domínio de pedido-resposta contém protocolos para clientes que solicitam informações específicas de seus pares. Os exemplos incluem pedidos de blocos Beacon específicos que correspondam a determinados hashes raiz ou dentro de um intervalo de slots. As respostas são sempre retornadas como bytes codificados em SSZ compactados rapidamente. - -## Por que o cliente de consenso prefere SSZ a RLP? {#ssz-vs-rlp} - -SSZ significa serialização simples. Ela usa deslocamentos fixos que facilitam a decodificação de partes individuais de uma mensagem codificada sem ter que decodificar toda a estrutura, o que é muito útil para o cliente de consenso, pois pode capturar com eficiência informações específicas de mensagens codificadas. Ele também é projetado especificamente para integração com protocolos Merkle, com ganhos de eficiência relacionados para Merkleization (transformação resultante de árvores de Merkle). Como todos os hashes na camada de consenso são raízes de Merkle, isso resulta em uma melhoria significativa. A SSZ também garante representações únicas de valores. - -## Conexão a execução e consensos de clientes {#connecting-clients} - -Ambos os clientes de consenso e execução executam em paralelo. Eles precisam estar conectados para que o cliente de consenso possa fornecer instruções ao cliente de execução, e o cliente de execução possa passar pacotes de transações para o cliente de consenso para incluir nos blocos Beacon. A comunicação entre os dois clientes pode ser realizada usando uma conexão RPC local. Uma API conhecida como ['Engine-API'](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) define as instruções enviadas entre os dois clientes. Como ambos os clientes estão atrás de uma única identidade de rede, eles compartilham um ENR (registro de nó Ethereum) que contém uma chave separada para cada cliente (chave eth1 e chave eth2). - -Um resumo do fluxo de controle é mostrado abaixo, com a pilha de rede relevante entre colchetes. - -##### Quando o cliente de consenso não é produtor de bloco: - -- O cliente de consenso recebe um bloco através do protocolo gossip do bloco (consenso p2p) -- O cliente de consenso pré-valida o bloco, ou seja, garante que chegou de um remetente válido com metadados corretos -- As transações no bloco são enviadas para a camada de execução como um payload (carga de dados) de execução (conexão RPC local) -- A camada de execução executa as transações e valida o estado no cabeçalho do bloco (ou seja, verifica a correspondência de hashes) -- A camada de execução passa os dados de validação de volta para a camada de consenso, bloco agora considerado validado (conexão RPC local) -- A camada de consenso adiciona bloco no nício de sua própria blockchain e o atesta, transmitindo o atestado pela rede (consenso p2p) - -##### Quando o cliente de consenso é produtor de blocos: - -- O cliente de consenso recebe o aviso de que é o próximo produtor de bloco (consenso p2p) -- A camada de consenso chama o método `create block` no cliente de execução (RPC local) -- A camada de execução acessa o mempool da transação que foi preenchido pelo protocolo gossip de transação (execução p2p) -- O cliente de execução agrupa as transações em um bloco, executa as transações e gera um hash de bloco -- O cliente de consenso pega as transações e bloqueia o hash do cliente de execução e o adiciona ao bloco beacon (RPC local) -- O cliente de consenso transmite o bloco pelo protocolo gossip do bloco (consenso p2p) -- Outros clientes recebem o bloco proposto através do bloco do protocolo gossip e validam conforme descrito acima (consenso p2p) - -Uma vez que o bloco tenha sido atestado por validadores suficientes, ele é adicionado ao cabeçalho da cadeia, justificado e finalmente finalizado. - -![](cons_client_net_layer.png) ![](exe_client_net_layer.png) - -Esquema da camada de rede para clientes de consenso e execução, de [ethresear.ch](https://ethresear.ch/t/eth1-eth2-client-relationship/7248) - -## Leitura Adicional {#further-reading} - -[DevP2P](https://github.com/ethereum/devp2p) [LibP2p](https://github.com/libp2p/specs) [Especificações de rede da camada de consenso](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#enr-structure) [Kademlia para Discv5](https://vac.dev/kademlia-to-discv5) [Paper Kademlia](https://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf) [Introdução ao Ethereum p2p](https://p2p.paris/en/talks/intro-ethereum-networking/) [Relacionamento eth1/eth2](http://ethresear.ch/t/eth1-eth2-client-relationship/7248) [Fusão e vídeo com detalhes do cliente eth2](https://www.youtube.com/watch?v=zNIrIninMgg) diff --git a/src/content/translations/pt-br/developers/docs/nodes-and-clients/client-diversity/index.md b/src/content/translations/pt-br/developers/docs/nodes-and-clients/client-diversity/index.md deleted file mode 100644 index f5061c43027..00000000000 --- a/src/content/translations/pt-br/developers/docs/nodes-and-clients/client-diversity/index.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -title: Diversidade dos clientes -description: Uma explicação de alto nível sobre a importância da diversidade de clientes do Ethereum. -lang: pt-br -sidebarDepth: 2 ---- - -O comportamento de um nó Ethereum é controlado pelo software do cliente que ele executa. Existem vários clientes Ethereum em nível de produção, cada um desenvolvido e mantido em diferentes idiomas por equipes separadas. Os clientes são construídos para uma especificação comum que garante que os clientes se comuniquem perfeitamente entre si e tenham a mesma funcionalidade e forneçam uma experiência de usuário equivalente. No entanto, no momento, a distribuição de clientes entre os nós não é igual o suficiente para realizar essa fortificação de rede em todo o seu potencial. O ideal é que os usuários se dividam de forma aproximadamente igualitária entre os vários clientes para trazer o máximo de diversidade de clientes possível para a rede. - -## Pré-requisitos {#prerequisites} - -Se você ainda não entende o que são nós e clientes, confira [nós e clientes](/developers/docs/nodes-and-clients/). As camadas de [execução](/glossary/#execution-layer) e [consenso](/glossary/#consensus-layer) estão definidas no glossário. - -## Por que existem vários clientes? {#why-multiple-clients} - -Vários clientes desenvolvidos e mantidos de forma independente existem porque a diversidade do cliente torna a rede mais resiliente a ataques e bugs. Vários clientes são uma força única para o Ethereum – outras cadeias de blocos dependem da infalibilidade de um único cliente. No entanto, não basta simplesmente ter vários clientes disponíveis, eles têm que ser adotados pela comunidade e o total de nós ativos distribuídos de forma relativamente uniforme entre eles. - -## Por que a diversidade de clientes é importante? {#client-diversity-importance} - -Ter muitos clientes desenvolvidos e mantidos de forma independente é vital para a saúde de uma rede descentralizada. Vamos explorar as razões do porquê. - -### Bugs {#bugs} - -Um bug em um cliente individual é um risco menor para a rede ao representar uma minoria de nós Ethereum. Com uma distribuição aproximadamente uniforme de nós entre muitos clientes, a probabilidade de a maioria dos clientes sofrer de um problema compartilhado é pequena e, como resultado, a rede é mais robusta. - -### Resiliência a ataques {#resilience} - -A diversidade de clientes também oferece resiliência a ataques. Por exemplo, um ataque que [engana um determinado cliente](https://twitter.com/vdWijden/status/1437712249926393858) em um determinado ramo da cadeia, provavelmente não será bem-sucedido porque é improvável que outros clientes sejam explorados da mesma forma e a cadeia canônica permanece incorruptível. A baixa diversidade de clientes aumenta o risco associado a um hack no cliente dominante. A diversidade de clientes já provou ser uma defesa importante contra ataques maliciosos na rede, por exemplo, o ataque de negação de serviço do Shanghai em 2016 foi possível porque os invasores foram capazes de enganar o cliente dominante (Geth) para executar uma operação lenta de E/S de disco dezenas de milhares de vezes por bloco. Como clientes alternativos também estavam online e não compartilharam a vulnerabilidade, o Ethereum foi capaz de resistir ao ataque e continuar operando enquanto a vulnerabilidade no Geth foi corrigida. - -### Finalidade da prova de participação {#finality} - -Um erro em um cliente de consenso com mais de 33% dos nós Ethereum poderia impedir a finalização da camada de consenso, e isso deixaria os utilizadores em dúvida com respeito à probabilidade de as transações não serem revertidas ou alteradas em algum momento. Isso seria muito problemático para muitos dos aplicativos construídos em cima do Ethereum, particularmente o DeFi. - - Pior ainda, um bug crítico em um cliente com uma maioria de dois terços poderia fazer com que a cadeia se dividisse e finalizasse incorretamente, gerando um grande conjunto de validadores que ficam presos em uma cadeia inválida. Se quiserem voltar a integrar à cadeia correta, esses validadores enfrentam cortes ou uma lenta e cara retirada e reativação voluntária. A magnitude de uma escala de remoção com o número de nós culpáveis com uma maioria de dois terços reduzido ao máximo (32 ETH). - -Embora estes sejam cenários improváveis, o ecossistema Ethereum pode mitigar seus riscos nivelando a distribuição de clientes entre os nós ativos. Idealmente, nenhum cliente de consenso chegaria a uma participação de 33% dos nós totais. - -### Responsabilidade compartilhada {#responsibility} - -Há também um custo humano para ter a maioria dos clientes. Isso coloca excesso de tensão e responsabilidade em uma pequena equipe de desenvolvimento. Quanto menor a diversidade de clientes, maior a carga de responsabilidade para os desenvolvedores que mantêm a maioria dos clientes. Promover essa responsabilidade em várias equipes é bom tanto para a saúde da rede de nós do Ethereum quanto para sua rede de pessoas. - -## Diversidade do cliente atual {#current-client-diversity} - -![Gráfico de pizza mostrando a diversidade do cliente](./client-diversity.png) _Dados do diagrama de [ethernodes.org](https://ethernodes.org) e [clientdiversity.org](https://clientdiversity.org/)_ - -Os dois gráficos de pizza acima mostram imagens da diversidade atual do cliente para as camadas de execução e consenso (no momento da escrita em janeiro de 2022). A camada de execução é dominada esmagadoramente por [Geth](https://geth.ethereum.org/), com [Open Ethereum](https://openethereum.github.io/) a um segundo de distância, [Erigon](https://github.com/ledgerwatch/erigon) em terceiro e [Nethermind](https://nethermind.io/) em quarto, com outros clientes compostos por menos de 1% da rede. O cliente mais comumente usado na camada de consenso – [Prysm](https://prysmaticlabs.com/#projects) – não é tão dominante quanto o Geth, mas ainda representa mais de 60% da rede. [Lighthouse](https://lighthouse.sigmaprime.io/) e [Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) compõem ~20% e ~14% respectivamente, e outros clientes são raramente usados. - -Os dados da camada de execução foram obtidos da [Ethernodes](https://ethernodes.org) em 23/01/2022. Os dados para clientes de consenso foram obtidos de [Michael Sproul](https://github.com/sigp/blockprint). Os dados dos clientes de consenso são mais difíceis de obter porque os clientes da camada de consenso nem sempre têm traços inequívocos que possam ser utilizados para identificá-los. Os dados foram gerados usando um algoritmo de classificação que confunde às vezes alguns dos clientes minoritários (consulte [aqui](https://twitter.com/sproulM_/status/1440512518242197516) para obter mais detalhes). No diagrama acima, essas classificações ambíguas são tratadas com um rótulo (por exemplo, Nimbus/Teku). No entanto, é claro que a maior parte da rede está executando o Prysm. Os dados são um retrato sobre um conjunto fixo de blocos (neste caso, blocos Beacon nos espaços 2048001 a 2164916) e o domínio do Prysm às vezes foi maior, excedendo 68%. Apesar de serem apenas capturas, os valores no diagrama fornecem uma boa noção geral do estado atual da diversidade do cliente. - -Os dados da diversidade do cliente atualizados para a camada de consenso agora estão disponíveis em [clientdiversity.org](https://clientdiversity.org/). - -## Camada de execução {#execution-layer} - -Até agora, a conversação em torno da diversidade do cliente tem se concentrado principalmente na camada de consenso. No entanto, o cliente de execução [Geth](https://geth.ethereum.org) atualmente representa cerca de 85% de todos os nós. Essa porcentagem é problemática pelos mesmos motivos dos clientes de consenso. Por exemplo, um bug no Geth afetando a manipulação de transações ou a construção de cargas de execução pode fazer com que clientes de consenso finalizem transações problemáticas ou com bugs. Portanto, o Ethereum seria mais saudável com uma distribuição mais uniforme dos clientes de execução, idealmente sem nenhum cliente representando mais de 33% da rede. - -## Use um cliente minoritário {#use-minority-client} - -Endereçar a diversidade do cliente requer mais do que usuários individuais para escolher clientes minoritários – requer pools de mineração/validadores e instituições como os principais dapps e exchanges para mudar também os clientes. No entanto, todos os usuários podem fazer sua parte para reparar o desequilíbrio atual e normalizar o uso de todo o software Ethereum disponível. Após A Fusão, todos os operadores de nó serão obrigados a executar um cliente de execução e um cliente de consenso. Escolher combinações dos clientes sugeridos abaixo ajudará a aumentar a diversidade do cliente. - -### Clientes de execução {#execution-clients} - -[Besu](https://www.hyperledger.org/use/besu) - -[Nethermind](https://downloads.nethermind.io/) - -[Erigon](https://github.com/ledgerwatch/erigon) - -[Go-Ethereum](https://geth.ethereum.org/) - -### Clientes de consenso {#consensus-clients} - -[Nimbus](https://nimbus.team/) - -[Lighthouse](https://github.com/sigp/lighthouse) - -[Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) - -[Lodestar](https://github.com/ChainSafe/lodestar) - -[Prysm](https://docs.prylabs.network/docs/getting-started) - -Os usuários técnicos podem ajudar a acelerar esse processo escrevendo mais tutoriais e documentações para clientes minoritários e encorajando seus pares operacionais de nó a migrar para longe dos clientes dominantes. Guias para mudar para um cliente de consenso minoritário estão disponíveis em [clientdiversity.org](https://clientdiversity.org/). - -## Painéis de diversidade de clientes {#client-diversity-dashboards} - -Vários painéis fornecem estatísticas de diversidade de cliente em tempo real para a camada de execução e consenso. - -**Camada de consenso:** - -- [Rated.network](https://www.rated.network/) -- [clientdiversity.org](https://clientdiversity.org/) **Camada de execução:** - -- [execution-diversity.info](https://execution-diversity.info/) -- [Ethernodes](https://ethernodes.org/) - -## Leitura adicional {#further-reading} - -- [Diversidade de clientes na camada de consenso do Ethereum](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) -- [A Fusão do Ethereume: execute o cliente majoritário por sua conta e risco!](https://dankradfeist.de/ethereum/2022/03/24/run-the-majority-client-at-your-own-peril.html) – _Dankrad Fest, 24 de março de 2022_ -- [Importância da diversidade de cliente](https://our.status.im/the-importance-of-client-diversity/) -- [Lista dos serviços de nós Ethereum](https://ethereumnodes.com/) -- ["Cinco porquês" do problema da diversidade de clientes](https://notes.ethereum.org/@afhGjrKfTKmksTOtqhB9RQ/BJGj7uh08) -- [Diversidade do Ethereum e como resolvê-la (YouTube)](https://www.youtube.com/watch?v=1hZgCaiqwfU) -- [clientdiversity.org](https://clientdiversity.org/) - -## Tópicos relacionados {#related-topics} - -- [Executando um nó Ethereum](/run-a-node/) -- [Nós e clientes](/developers/docs/nodes-and-clients/) diff --git a/src/content/translations/pt-br/developers/docs/smart-contracts/anatomy/index.md b/src/content/translations/pt-br/developers/docs/smart-contracts/anatomy/index.md deleted file mode 100644 index 5f2ade26179..00000000000 --- a/src/content/translations/pt-br/developers/docs/smart-contracts/anatomy/index.md +++ /dev/null @@ -1,656 +0,0 @@ ---- -title: Anatomia dos contratos inteligentes -description: Uma análise aprofundada na anatomia de um contrato inteligente - funções, dados e variáveis. -lang: pt-br ---- - -Um contrato inteligente (smart contract) é um programa executado em um endereço na Ethereum. Eles são compostos por dados e funções que podem ser executadas ao receber uma transação. Veja aqui uma visão geral do que compõe um contrato inteligente. - -### Pré-requisitos {#prerequisites} - -Não deixe de ler sobre [contratos inteligentes](/developers/docs/smart-contracts/). Este documento presume que você já está familiarizado com linguagens de programação como JavaScript ou Python. - -## Dados {#data} - -Quaisquer dados de contrato devem ser atribuídos a um local: seja para `armazenamento` ou `memória`. É caro modificar o armazenamento em um contrato inteligente, então você precisa considerar onde seus dados devem estar no ar. - -### Armazenamento {#storage} - -Dados persistentes são referidos como armazenamento e são representados por variáveis de estado. Esses valores são armazenados permanentemente na blockchain. É necessário declarar o tipo para que o contrato possa manter um registro de quanto espaço na blockchain será necessário quando ele compilar. - -```solidity -// Exemplo Solidity -contract SimpleStorage { - uint storedData; // State variable - // ... -} -``` - -```python -# Exemplo Vyper -storedData: int128 -``` - -Se você já programou linguagens orientadas a objetos, provavelmente você estará familiarizado com a maioria dos tipos. Entretanto, `address` (endereço) deve ser novo para você se você for novo no desenvolvimento com Ethereum. - -Um tipo `address` pode conter um endereço Ethereum que equivale a 20 bytes ou 160 bits. Ele retorna em hexadecimal com um 0 à frente. - -Outros tipos incluem: - -- booleano -- inteiro -- números de ponto fixo -- arrays de bytes de tamanho fixo -- arrays de bytes de tamanho dinâmico -- Literais racionais e inteiros -- Literais de strings -- Literais hexadecimais -- Enumeradores - -Para mais explicação, dê uma olhada na documentação: - -- [Veja tipos de Vyper](https://vyper.readthedocs.io/en/v0.1.0-beta.6/types.html#value-types) -- [Veja tipos de Solidity](https://solidity.readthedocs.io/en/latest/types.html#value-types) - -### Memória {#memory} - -Valores que são armazenados apenas para a duração da execução da função de contratos são chamadas de variáveis de memória. Como estes não são armazenados permanentemente na blockchain, são muito mais baratos de usar. - -Saiba mais sobre como a EVM armazena dados (Storage, Memória e Stack) em [Solidity docs](https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html?highlight=memory#storage-memory-and-the-stack). - -### Variáveis de ambiente {#environment-variables} - -Além das variáveis definidas no seu contrato, existem algumas variáveis globais especiais. Elas são usadas principalmente para fornecer informações sobre a blockchain (cadeia de blocos) ou transação atual. - -Exemplos: - -| **Prop** | **Variável de estado** | **Descrição** | -| ----------------- | ---------------------- | ------------------------------------- | -| `block.timestamp` | uint256 | Data/hora de início do bloco atual | -| `msg.sender` | endereço | Remetente da mensagem (chamada atual) | - -## Funções {#functions} - -Da forma mais simplista, funções podem obter informação ou um conjunto de informações em resposta a entrada de transações. - -Existem dois tipos de chamadas de função: - -- `internal` - estas não criam uma chamada EVM - - Funções internas e variáveis de estado só podem ser acessadas internamente (ou seja, de dentro do contrato atual ou de contratos derivados do mesmo) -- `external` - estas criam uma chamada EVM - - Funções externas fazem parte da interface do contrato, o que significa que elas podem ser chamadas a partir de outros contratos e através de transações. Uma função externa `f` não pode ser chamada internamente (ou seja, `f()` não funciona, mas `this.f()` funciona). - -Também podem ser `públicas` ou `privadas` - -- `funções públicas` podem ser chamadas internamente a partir de dentro do contrato ou externamente por meio de mensagens -- `funções privadas` são visíveis apenas para o contrato no qual elas estão definidas e não nos contratos derivados - -Tanto funções quanto variáveis de estado podem ser tornadas públicas ou privadas - -Aqui está uma função para atualizar uma variável de estado em um contrato: - -```solidity -// Exemplo de Solidity -function update_name(string value) public { - dapp_name = value; -} -``` - -- O parâmetro `valor` do tipo `string` é passado para a função: `update_name` -- É declarado `público`, o que significa que qualquer um pode acessá-lo -- Não é declarada a `visão`, então ela pode modificar o estado do contrato - -### Ver funções {#view-functions} - -Essas funções prometem não modificar o estado dos dados do contrato. Exemplos comuns são funções "obter" – você pode usar isso para receber o saldo de um usuário, por exemplo. - -```solidity -// Exemplo -function balanceOf(address _owner) public view return (uint256 _balance) { - return ownerPizzaCount[_owner]; -} -``` - -```python -dappName: public(string) - -@view -@public -def readName() -> string: - return dappName -``` - -O que é considerado como modificar estado: - -1. Escrevendo variáveis de estado. -2. [Emitir eventos](https://solidity.readthedocs.io/en/v0.7.0/contracts.html#events). -3. [Criação de outros contratos](https://solidity.readthedocs.io/en/v0.7.0/control-structures.html#creating-contracts). -4. Usando `autodestruct`. -5. Enviando ether por chamadas. -6. Chamar qualquer função não marcada como`view`ou`puro`. -7. Usando chamadas de baixo nível. -8. Usando montagem em linha que contém certos códigos. - -### Funções construtor {#constructor-functions} - -`construtor` funções são executadas apenas uma vez quando o contrato é implantado pela primeira vez. Como o `construtor` em muitas linguagens de programação baseadas em classe, essas funções geralmente inicializam variáveis de estado para seus valores especificados. - -```solidity -// Exemplo Solidity -// Inicializa os dados do contrato, definindo o `owner` -// como endereço do criador do contrato. -constructor() public { - // Todos os contratos inteligentes dependem de transações externas para acionar suas funções. - // `msg` é uma variável global que inclui dados relevantes sobre a transação em questão, - // como o endereço do remetente e o valor ETH incluído na transação. - // Saiba mais: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties - owner = msg.sender; -} -``` - -```python -# Exemplo Vyper - -@external -def __init__(_beneficiary: endereço, _bidding_time: uint256): - mesmo. eneficiário = _beneficiário - self.auctionStart = block.timestamp - self.auctionEnd = self.auctionStart + _bidding_time -``` - -### Funções integradas {#built-in-functions} - -Além das variáveis definidas no seu contrato, existem algumas variáveis globais especiais. O exemplo mais óbvio é: - -- `address.send()` – Solidity -- `Enviar(endereço)` – Vyper - -Estes permitem contratos para enviar ETH para outras contas. - -## Funções utilitárias {#writing-functions} - -Sua função precisa: - -- variável e tipo de parâmetro (se aceitar parâmetros) -- declaração de interno/externo -- declaração de puro/visualização/pagável -- tipo de retorno (se ele retornar um valor) - -```solidity -pragma solidity >=0.4.0 <=0.6.0; - -contract ExampleDapp { - string dapp_name; // state variable - - // Called when the contract is deployed and initializes the value - constructor() public { - dapp_name = "My Example dapp"; - } - - // Get Function - function read_name() public view returns(string) { - return dapp_name; - } - - // Set Function - function update_name(string value) public { - dapp_name = value; - } -} -``` - -Um contrato completo pode parecer algo assim. Aqui a função `construtor` fornece um valor inicial para a variável `dapp_name`. - -## Eventos e registros {#events-and-logs} - -Eventos permitem que você se comunique com seu contrato inteligente na interface do seu site ou de outros aplicativos de assinatura. Quando uma transação é minerada, os contratos inteligentes podem emitir eventos e escrever registros na blockchain que o frontend pode então processar. - -## Exemplos anotados {#annotated-examples} - -Estes são alguns exemplos escritos em Solidity. Se você quiser brincar com o código, pode interagir com eles no [Remix](http://remix.ethereum.org). - -### Olá, mundo {#hello-world} - -```solidity -// Especifica a versão do Solidity usando a versão semântica. -// Saiba mais: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma -pragma solidity ^0.5.10; - -// Define um contrato chamado `HelloWorld`. -// Um contrato é uma coleção de funções e dados (seu estado). -// Uma vez implantado, um contrato reside em um endereço específico na blockchain Ethereum. -// Saiba mais: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html -contract HelloWorld { - - // Declita uma variável `message` de tipo `string`. - // Variáveis de estado são variáveis cujos valores são permanentemente armazenados no armazenamento do contrato. - // A palavra-chave 'público' torna variáveis acessíveis fora de um contrato - // e cria uma função que outros contratos ou clientes podem chamar para acessar o valor. - mensagem pública de cadeia; - - // Semelhante a muitas linguagens de objeto, baseadas em classes, um construtor é - // uma função especial que é executada somente após a criação do contrato. - // Os construtores são usados para inicializar os dados do contrato. - // Saiba mais: https://solidity.readthedocs.io/en/v0.5.10/contracts. tml#constructors - constructor(string memory initMessage) public { - // Aceita um argumento de string `initMessage` e define o valor - // na variável de armazenamento `message` do contrato). - message = initMessage; - } - - // Uma função pública que aceita um argumento de string - // e atualiza a variável de armazenamento `message`. - function update(string memory newMessage) public { - message = newMessage; - } -} -``` - -### Token {#token} - -```solidity -pragma solidity ^0.5.10; - -contract Token { - // Um "endereço" é comparável a um endereço de e-mail - é usado para comparar uma conta no Ethereum. - // Endereços podem representar uma conta de contrato inteligente ou uma conta externa (usuário). - // Saiba mais: https://solidity.readthedocs.io/en/v0.5.10/types.html#address - address public owner; - - // Um `mapping` é essencialmente uma estrutura de dados de tabela de hash. - // Este `mapeamento` atribui um inteiro não assinado (o saldo do token) a um endereço (o titular do token). - // Saiba mais: https://solidity.readthedocs.io/en/v0.5.10/types.html#mapping-types - mapping (address => uint) public balances; - - // Eventos permitem registro de atividade no blockchain. - // Clientes Ethereum podem ouvir eventos para reagir às alterações do estado do contrato. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#events - event Transfer(address from, address to, uint amount); - - // Initializes the contract's data, setting the `owner` - // to the address of the contract creator. - constructor() public { - // Todos os contratos inteligentes dependem de transações externas para acionar suas funções. - // `msg` é uma variável global que inclui dados relevantes sobre a transação em questão, - // como o endereço do remetente e o valor ETH incluído na transação. - // Saiba mais: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties - owner = msg.sender; - } - - // Cria uma quantidade de novos tokens e os envia para um endereço. - function mint(address receiver, uint amount) public { - // `require` é uma estrutura de controle usada para aplicar certas condições. - // Se um comando `require` for avaliado como `false`, uma exceção é acionada, - // que reverte todas as alterações feitas ao estado durante a chamada atual. - // Saiba mais: https://solidity.readthedocs.io/en/v0.5.10/control-structures. tml#error-handling-assert-require-revert-and-exceptions - - // Somente o proprietário do contrato pode chamar esta função - require(msg. remetente == dono, "Você não é o dono. ); - - // Reforça uma quantidade máxima de tokens - require(amount < 1e60, "Emissão máxima excedida"); - - // Aumenta o saldo de `receiver` em `amount` - saldos[receiver] += amount; - } - - // Envia uma quantidade de tokens existentes de qualquer chamada para um endereço. - function transfer(address receiver, uint amount) public { - // O remetente deve ter tokens suficientes para enviar - require(amount <= balances[msg.sender], "Insufficient balance."); - - // Ajusta os saldos do token dos dois endereços - balances[msg.sender] -= quantidade; - balances[receiver] += quantidade; - - // Emite um evendo definido anteriormente - emite Transfer(msg.sender, receiver, amount); - } -} -``` - -### Asset digital único {#unique-digital-asset} - -```solidity -pragma solidity ^0.5.10. -// Neste caso, uma série de contratos auxiliares de OpenZeppelin. -// Saiba mais: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#importing-other-source-files - -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver. ol"; -import "../node_modules/@openzeppelin/contracts/introspection/ERC165.sol"; -import "../node_modules/@openzeppelin/contracts/math/SafeMath.sol"; - -// A palavra-chave `is` é usada para herdar funções e palavras-chave de contratos externos. -// Neste caso, o `CryptoPizza` herda dos contratos `IERC721` e `ERC165`. -// Saiba mais: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#inheritance -contract CryptoPizza is IERC721, ERC165 { - // Usa a biblioteca OpenZeppelin para executar operações aritméticas de forma segura. - // Saiba mais: https://docs.openzeppelin.com/contracts/2. /api/math#SafeMath - usando SafeMath para uint256; - - // Variáveis de estado constantes em Solidity são semelhantes a outros idiomas - // mas você deve atribuir a partir de uma expressão que é constante na hora de compilação. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constant-state-variables - uint256 constant dnaDigits = 10; - uint256 constant dnaModulus = 10 ** dnaDigits; - bytes4 private constant _ERC721_RECEIVED = 0x150b7a02; - - // Struct types let you define your own type - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#structs - struct Pizza { - string name; - uint256 dna; - } - - // Creates an empty array of Pizza structs - Pizza[] public pizzas; - - // Mapping from pizza ID to its owner's address - mapping(uint256 => address) public pizzaToOwner; - - // Mapping from owner's address to number of owned token - mapping(address => uint256) public ownerPizzaCount; - - // Mapping from token ID to approved address - mapping(uint256 => address) pizzaApprovals; - - // You can nest mappings, this example maps owner to operator approvals - mapping(address => mapping(address => bool)) private operatorApprovals; - - // Internal function to create a random Pizza from string (name) and DNA - function _createPizza(string memory _name, uint256 _dna) - // The `internal` keyword means this function is only visible - // within this contract and contracts that derive this contract - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#visibility-and-getters - internal - // `isUnique` is a function modifier that checks if the pizza already exists - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html#function-modifiers - isUnique(_name, _dna) - { - // Adds Pizza to array of Pizzas and get id - uint256 id = SafeMath.sub(pizzas.push(Pizza(_name, _dna)), 1); - - // Checks that Pizza owner is the same as current user - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions - - // note that address(0) is the zero address, - // indicating that pizza[id] is not yet allocated to a particular user. - - assert(pizzaToOwner[id] == address(0)); - - // Maps the Pizza to the owner - pizzaToOwner[id] = msg.sender; - ownerPizzaCount[msg.sender] = SafeMath.add( - ownerPizzaCount[msg.sender], - 1 - ); - } - - // Creates a random Pizza from string (name) - function createRandomPizza(string memory _name) public { - uint256 randDna = generateRandomDna(_name, msg.sender); - _createPizza(_name, randDna); - } - - // Generates random DNA from string (name) and address of the owner (creator) - function generateRandomDna(string memory _str, address _owner) - public - // Functions marked as `pure` promise not to read from or modify the state - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#pure-functions - pure - returns (uint256) - { - // Generates random uint from string (name) + address (owner) - uint256 rand = uint256(keccak256(abi.encodePacked(_str))) + - uint256(_owner); - rand = rand % dnaModulus; - return rand; - } - - // Returns array of Pizzas found by owner - function getPizzasByOwner(address _owner) - public - // Functions marked as `view` promise not to modify state - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#view-functions - view - returns (uint256[] memory) - { - // Uses the `memory` storage location to store values only for the - // lifecycle of this function call. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/introduction-to-smart-contracts.html#storage-memory-and-the-stack - uint256[] memory result = new uint256[](ownerPizzaCount[_owner]); - uint256 counter = 0; - for (uint256 i = 0; i < pizzas.length; i++) { - if (pizzaToOwner[i] == _owner) { - result[counter] = i; - counter++; - } - } - return result; - } - - // Transfers Pizza and ownership to other address - function transferFrom(address _from, address _to, uint256 _pizzaId) public { - require(_from != address(0) && _to != address(0), "Invalid address."); - require(_exists(_pizzaId), "Pizza does not exist."); - require(_from != _to, "Cannot transfer to the same address."); - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - - ownerPizzaCount[_to] = SafeMath.add(ownerPizzaCount[_to], 1); - ownerPizzaCount[_from] = SafeMath.sub(ownerPizzaCount[_from], 1); - pizzaToOwner[_pizzaId] = _to; - - // Emits event defined in the imported IERC721 contract - emit Transfer(_from, _to, _pizzaId); - _clearApproval(_to, _pizzaId); - } - - /** - * Safely transfers the ownership of a given token ID to another address - * If the target address is a contract, it must implement `onERC721Received`, - * which is called upon a safe transfer, and return the magic value - * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; - * otherwise, the transfer is reverted. - */ - function safeTransferFrom(address from, address to, uint256 pizzaId) - public - { - // solium-disable-next-line arg-overflow - this.safeTransferFrom(from, to, pizzaId, ""); - } - - /** - * Safely transfers the ownership of a given token ID to another address - * If the target address is a contract, it must implement `onERC721Received`, - * which is called upon a safe transfer, and return the magic value - * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; - * otherwise, the transfer is reverted. - */ - function safeTransferFrom( - address from, - address to, - uint256 pizzaId, - bytes memory _data - ) public { - this.transferFrom(from, to, pizzaId); - require(_checkOnERC721Received(from, to, pizzaId, _data), "Must implement onERC721Received."); - } - - /** - * Internal function to invoke `onERC721Received` on a target address - * The call is not executed if the target address is not a contract - */ - function _checkOnERC721Received( - address from, - address to, - uint256 pizzaId, - bytes memory _data - ) internal returns (bool) { - if (!isContract(to)) { - return true; - } - - bytes4 retval = IERC721Receiver(to).onERC721Received( - msg.sender, - from, - pizzaId, - _data - ); - return (retval == _ERC721_RECEIVED); - } - - // Burns a Pizza - destroys Token completely - // The `external` function modifier means this function is - // part of the contract interface and other contracts can call it - function burn(uint256 _pizzaId) external { - require(msg.sender != address(0), "Invalid address."); - require(_exists(_pizzaId), "Pizza does not exist."); - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - - ownerPizzaCount[msg.sender] = SafeMath.sub( - ownerPizzaCount[msg.sender], - 1 - ); - pizzaToOwner[_pizzaId] = address(0); - } - - // Returns count of Pizzas by address - function balanceOf(address _owner) public view returns (uint256 _balance) { - return ownerPizzaCount[_owner]; - } - - // Returns owner of the Pizza found by id - function ownerOf(uint256 _pizzaId) public view returns (address _owner) { - address owner = pizzaToOwner[_pizzaId]; - require(owner != address(0), "Invalid Pizza ID."); - return owner; - } - - // Approves other address to transfer ownership of Pizza - function approve(address _to, uint256 _pizzaId) public { - require(msg.sender == pizzaToOwner[_pizzaId], "Must be the Pizza owner."); - pizzaApprovals[_pizzaId] = _to; - emit Approval(msg.sender, _to, _pizzaId); - } - - // Returns approved address for specific Pizza - function getApproved(uint256 _pizzaId) - public - view - returns (address operator) - { - require(_exists(_pizzaId), "Pizza does not exist."); - return pizzaApprovals[_pizzaId]; - } - - /** - * Private function to clear current approval of a given token ID - * Reverts if the given address is not indeed the owner of the token - */ - function _clearApproval(address owner, uint256 _pizzaId) private { - require(pizzaToOwner[_pizzaId] == owner, "Must be pizza owner."); - require(_exists(_pizzaId), "Pizza does not exist."); - if (pizzaApprovals[_pizzaId] != address(0)) { - pizzaApprovals[_pizzaId] = address(0); - } - } - - /* - * Sets or unsets the approval of a given operator - * An operator is allowed to transfer all tokens of the sender on their behalf - */ - function setApprovalForAll(address to, bool approved) public { - require(to != msg.sender, "Cannot approve own address"); - operatorApprovals[msg.sender][to] = approved; - emit ApprovalForAll(msg.sender, to, approved); - } - - // Tells whether an operator is approved by a given owner - function isApprovedForAll(address owner, address operator) - public - view - returns (bool) - { - return operatorApprovals[owner][operator]; - } - - // Takes ownership of Pizza - only for approved users - function takeOwnership(uint256 _pizzaId) public { - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - address owner = this.ownerOf(_pizzaId); - this.transferFrom(owner, msg.sender, _pizzaId); - } - - // Checks if Pizza exists - function _exists(uint256 pizzaId) internal view returns (bool) { - address owner = pizzaToOwner[pizzaId]; - return owner != address(0); - } - - // Checks if address is owner or is approved to transfer Pizza - function _isApprovedOrOwner(address spender, uint256 pizzaId) - internal - view - returns (bool) - { - address owner = pizzaToOwner[pizzaId]; - // Disable solium check because of - // https://github.com/duaraghav8/Solium/issues/175 - // solium-disable-next-line operator-whitespace - return (spender == owner || - this.getApproved(pizzaId) == spender || - this.isApprovedForAll(owner, spender)); - } - - // Check if Pizza is unique and doesn't exist yet - modifier isUnique(string memory _name, uint256 _dna) { - bool result = true; - for (uint256 i = 0; i < pizzas.length; i++) { - if ( - keccak256(abi.encodePacked(pizzas[i].name)) == - keccak256(abi.encodePacked(_name)) && - pizzas[i].dna == _dna - ) { - result = false; - } - } - require(result, "Pizza with such name already exists."); - _; - } - - // Returns whether the target address is a contract - function isContract(address account) internal view returns (bool) { - uint256 size; - // Currently there is no better way to check if there is a contract in an address - // than to check the size of the code at that address. - // See https://ethereum.stackexchange.com/a/14016/36603 - // for more details about how this works. - // TODO Check this again before the Serenity release, because all addresses will be - // contracts then. - // solium-disable-next-line security/no-inline-assembly - assembly { - size := extcodesize(account) - } - return size > 0; - } -} -``` - -## Leitura adicional {#further-reading} - -Confira a documentação do Solidity e do Vyper para uma visão geral mais completa dos contratos inteligentes: - -- [Solidity](https://solidity.readthedocs.io/) -- [Vyper](https://vyper.readthedocs.io/) - -## Tópicos relacionados {#related-topics} - -- [Smart Contracts](/developers/docs/smart-contracts/) -- [Máquina Virtual Ethereum](/developers/docs/evm/) - -## Tutoriais relacionados {#related-tutorials} - -- [Diminuir contratos para enfrentar o limite de tamanho do contrato](/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/) _– Algumas dicas práticas para reduzir o tamanho de seu contrato inteligente._ -- [Registrando dados de contratos inteligentes com eventos](/developers/tutorials/logging-events-smart-contracts/) _– Uma introdução aos eventos de contratos inteligentes e como você pode usá-los para registrar dados._ -- [Interaja com outros contratos da Solidity](/developers/tutorials/interact-with-other-contracts-from-solidity/) _– Como implantar um contrato inteligente a partir de um contrato existente e interagir com ele._ 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 deleted file mode 100644 index f0b84354eb3..00000000000 --- a/src/content/translations/pt-br/developers/docs/standards/tokens/erc-20/index.md +++ /dev/null @@ -1,149 +0,0 @@ ---- -title: Padrão de token ERC-20 -description: Token -lang: pt-br ---- - -## Introdução {#introduction} - -**O que é um token?** - -Um token podem representar praticamente qualquer coisa em Ethereum: - -- pontos de reputação em uma plataforma online -- habilidades de um personagem em um jogo -- bilhetes de loteria -- ativos financeiros, como a ação em uma empresa -- uma moeda fiduciária, como USD -- 28,3 gr de ouro -- e mais... - -Uma característica tão poderosa do Ethereum deve ser tratada por um padrão robusto, certo? É aí que o ERC-20 entra! Este padrão permite que desenvolvedores criem aplicativos de token que são interoperáveis com outros produtos e serviços. - -**O que é ERC-20?** - -O ERC-20 introduz um padrão para os tokens fungíveis, ou seja, eles têm uma propriedade que faz com que cada token tenha exatamente o mesmo de outro token (em termos de tipo e valor). Por exemplo, um token ERC-20 age como o ETH, significando que 1 token é e será sempre igual a todos os outros tokens. - -## Pré-requisitos {#prerequisites} - -- [Contas](/developers/docs/accounts) -- [Contratos Inteligentes](/developers/docs/smart-contracts/) -- [Padrões de token](/developers/docs/standards/tokens/) - -## Apresentação {#body} - -O ERC-20 (Ethereum Request for Comments 20), proposto por Fabian Vogelsteller em novembro de 2015, é um padrão de token que implementa uma API para tokens em contratos inteligentes. - -Exemplo de funcionalidades que o ERC-20 fornece: - -- transferir tokens de uma conta a outra -- obter o saldo atual de tokens de uma conta -- obter a oferta total do token disponível na rede -- aprovar se uma quantidade de token de uma conta pode ser gasta por uma conta de terceiros - -Se um contrato inteligente implementa os métodos e eventos a seguir, ele pode ser chamado de Contrato de token ERC-20 e, uma vez implantado, é responsável por fazer um acompanhamento dos tokens criados no Ethereum. - -De [EIP-20](https://eips.ethereum.org/EIPS/eip-20): - -#### Métodos {#methods} - -```solidity -function name() public view returns (string) -function symbol() public view returns (string) -function decimals() public view returns (uint8) -function totalSupply() public view returns (uint256) -function balanceOf(address _owner) public view returns (uint256 balance) -function transfer(address _to, uint256 _value) public returns (bool success) -function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) -function approve(address _spender, uint256 _value) public returns (bool success) -function allowance(address _owner, address _spender) public view returns (uint256 remaining) -``` - -#### Eventos {#events} - -```solidity -event Transfer(address indexed _from, address indexed _to, uint256 _value) -event Approval(address indexed _owner, address indexed _spender, uint256 _value) -``` - -### Exemplos {#web3py-example} - -Vejamos por que um padrão é importante e como ele simplifica o controle de qualquer contrato de token ERC-20 no Ethereum. Só precisamos da Interface Binária de Aplicativos (ABI, pela sigla em inglês) do contrato para criar uma interface com qualquer token ERC-20. Como você pode ver abaixo, usaremos uma ABI simplificada, para torná-la um exemplo de fácil compreensão. - -#### Exemplo para a Web3.py {#web3py-example} - -Primeiro, certifique-se de que você instalou a biblioteca [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) do Python: - -``` -pip install web3 -``` - -```python -from web3 import Web3 - - -w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) - -dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI -weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # Wrapped ether (WETH) - -acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11" # Uniswap V2: DAI 2 - -# This is a simplified Contract Application Binary Interface (ABI) of an ERC-20 Token Contract. -# It will expose only the methods: balanceOf(address), decimals(), symbol() and totalSupply() -simplified_abi = [ - { - 'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], - 'name': 'balanceOf', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'decimals', - 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'symbol', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'totalSupply', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - } -] - -dai_contract = w3.eth.contract(address=w3.to_checksum_address(dai_token_addr), abi=simplified_abi) -symbol = dai_contract.functions.symbol().call() -decimals = dai_contract.functions.decimals().call() -totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals -addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals - -# DAI -print("===== %s =====" % symbol) -print("Total Supply:", totalSupply) -print("Addr Balance:", addr_balance) - -weth_contract = w3.eth.contract(address=w3.to_checksum_address(weth_token_addr), abi=simplified_abi) -symbol = weth_contract.functions.symbol().call() -decimals = weth_contract.functions.decimals().call() -totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals -addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals - -# WETH -print("===== %s =====" % symbol) -print("Total Supply:", totalSupply) -print("Addr Balance:", addr_balance) -``` - -## Leitura adicional {#further-reading} - -- [EIP-20: Padrão de token ERC-20](https://eips.ethereum.org/EIPS/eip-20) -- [OpenZeppelin: Tokens](https://docs.openzeppelin.com/contracts/3.x/tokens#ERC20) -- [OpenZeppelin: Implementação ERC-20](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) -- [Alchemy — Guia para os Tokens ERC20 do Solidity](https://www.alchemy.com/overviews/erc20-solidity) 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 deleted file mode 100644 index 8afa0ab2c15..00000000000 --- a/src/content/translations/pt-br/developers/docs/standards/tokens/erc-721/index.md +++ /dev/null @@ -1,244 +0,0 @@ ---- -title: ERC-721 Padrão de token não-fungível -description: Token -lang: pt-br ---- - -## Introdução {#introduction} - -**O que é um token não fungível (NFT)?** - -Um token não fungível (NFT) é utilizado para identificar algo ou alguém de uma forma única. Este tipo de token é perfeito para ser usado em plataformas que oferecem itens colecionáveis, acessar chaves, bilhetes de loteria, assentos numerados para concertos, jogos esportivos etc. Este tipo especial de token tem possibilidades incríveis, então merece um padrão adequado, o ERC-721! - -**O que é ERC-721?** - -O ERC-721 apresenta um padrão para NFT. Em outras palavras, este tipo de token é único e pode ter um valor diferente do que outro token do mesmo contrato inteligente, talvez devido a sua validade, raridade ou mesmo sua aparência. Um momento, aparência? - -Sim! Todos os NFTs têm uma variável `uint256` chamada `tokenId`, então para qualquer contrato ERC-721, o par `contract address, uint256 tokenId` deve ser globalmente único. Dito isso, um dApp pode ter um "conversor" que usa o `tokenId` como entrada e retorna uma imagem de algo legal, como zumbis, armas, habilidades ou gatinhos incríveis! - -## Pré-requisitos {#prerequisites} - -- [Contas](/developers/docs/accounts/) -- [Contratos Inteligentes](/developers/docs/smart-contracts/) -- [Padrões de token](/developers/docs/standards/tokens/) - -## Apresentação {#body} - -O ERC-721(Ethereum Request for Comments 721), proposto por William Entriken, Dieter Shirley, Jacob Evans e Nastassia Sachs em janeiro de 2018, é um padrão de token não-fungível que implementa uma API para tokens em contratos inteligentes. - -Oferece funcionalidades, como transferir tokens de uma conta para outra, para obter o saldo atual do token de uma conta e também a oferta total do token disponível na rede. Além disso, ele também tem algumas outras funcionalidades como aprovar que uma quantidade de token de uma conta pode ser gasta por uma conta de terceiros. - -Se um contrato inteligente implementa os métodos e eventos a seguir, ele pode ser chamado de Contrato de token ERC-721 e, uma vez implantado, é responsável por fazer um acompanhamento dos tokens criados no Ethereum. - -De [EIP-721](https://eips.ethereum.org/EIPS/eip-721): - -#### Métodos {#methods} - -```solidity - function balanceOf(address _owner) external view returns (uint256); - function ownerOf(uint256 _tokenId) external view returns (address); - function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; - function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; - function transferFrom(address _from, address _to, uint256 _tokenId) external payable; - function approve(address _approved, uint256 _tokenId) external payable; - function setApprovalForAll(address _operator, bool _approved) external; - function getApproved(uint256 _tokenId) external view returns (address); - function isApprovedForAll(address _owner, address _operator) external view returns (bool); -``` - -#### Eventos {#events} - -```solidity - event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); - event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); - event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); -``` - -### Exemplos {#web3py-example} - -Vejamos por que um padrão é importante e como ele simplifica o controle de qualquer contrato de token ERC-721 no Ethereum. Só precisamos da Interface Binária de Aplicativos (ABI, pela sigla em inglês) do contrato para criar uma interface com qualquer token ERC-721. Como você pode ver abaixo, usaremos uma ABI simplificada, para torná-la um exemplo de fácil compreensão. - -#### Exemplo Web3.py {#web3py-example} - -Primeiro, certifique-se de que você instalou a [biblioteca Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) do Python: - -``` -pip install web3 -``` - -```python -from web3 import Web3 -from web3._utils.events import get_event_data - - -w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) - -ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # CryptoKitties Contract - -acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # CryptoKitties Sales Auction - -# This is a simplified Contract Application Binary Interface (ABI) of an ERC-721 NFT Contract. -# Serão expostos apenas os métodos: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply() -simplified_abi = [ - { - 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], - 'name': 'balanceOf', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'name', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], - 'name': 'ownerOf', - 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'symbol', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'totalSupply', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, -] - -ck_extra_abi = [ - { - 'inputs': [], - 'name': 'pregnantKitties', - 'outputs': [{'name': '', 'type': 'uint256'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [{'name': '_kittyId', 'type': 'uint256'}], - 'name': 'isPregnant', - 'outputs': [{'name': '', 'type': 'bool'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - } -] - -ck_contract = w3.eth.contract(address=w3.toChecksumAddress(ck_token_addr), abi=simplified_abi+ck_extra_abi) -name = ck_contract.functions.name().call() -symbol = ck_contract.functions.symbol().call() -kitties_auctions = ck_contract.functions.balanceOf(acc_address).call() -print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}") - -pregnant_kitties = ck_contract.functions.pregnantKitties().call() -print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}") - -# Usando o Evento de Transferência ABI para obter informações sobre os Kitties transferidos. -tx_event_abi = { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'from', 'type': 'address'}, - {'indexed': False, 'name': 'to', 'type': 'address'}, - {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}], - 'name': 'Transfer', - 'type': 'event' -} - -# We need the event's signature to filter the logs -event_signature = w3.sha3(text="Transfer(address,address,uint256)").hex() - -logs = w3.eth.getLogs({ - "fromBlock": w3.eth.blockNumber - 120, - "address": w3.toChecksumAddress(ck_token_addr), - "topics": [event_signature] -}) - -# Notes: -# - 120 blocks is the max range for CloudFlare Provider -# - If you didn't find any Transfer event you can also try to get a tokenId at: -# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events -# Click to expand the event's logs and copy its "tokenId" argument - -recent_tx = [get_event_data(w3.codec, tx_event_abi, log)["args"] for log in logs] - -kitty_id = recent_tx[0]['tokenId'] # Paste the "tokenId" here from the link above -is_pregnant = ck_contract.functions.isPregnant(kitty_id).call() -print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}") -``` - -Contrato de CriptoKitties tem alguns eventos interessantes além dos padrões. - -Vamos ver dois deles, `Pregnant` e `Birth`. - -```python -# Usando o Evento ABI "Gravidez e Nascimento" para obter informações sobre os novos Kitties. -ck_extra_events_abi = [ - { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'owner', 'type': 'address'}, - {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, - {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, - {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}], - 'name': 'Pregnant', - 'type': 'event' - }, - { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'owner', 'type': 'address'}, - {'indexed': False, 'name': 'kittyId', 'type': 'uint256'}, - {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, - {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, - {'indexed': False, 'name': 'genes', 'type': 'uint256'}], - 'name': 'Birth', - 'type': 'event' - }] - -# We need the event's signature to filter the logs -ck_event_signatures = [ - w3.sha3(text="Pregnant(address,uint256,uint256,uint256)").hex(), - w3.sha3(text="Birth(address,uint256,uint256,uint256,uint256)").hex(), -] - -# Here is a Pregnant Event: -# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog -pregnant_logs = w3.eth.getLogs({ - "fromBlock": w3.eth.blockNumber - 120, - "address": w3.toChecksumAddress(ck_token_addr), - "topics": [ck_event_signatures[0]] -}) - -recent_pregnants = [get_event_data(w3.codec, ck_extra_events_abi[0], log)["args"] for log in pregnant_logs] - -# Here is a Birth Event: -# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a -birth_logs = w3.eth.getLogs({ - "fromBlock": w3.eth.blockNumber - 120, - "address": w3.toChecksumAddress(ck_token_addr), - "topics": [ck_event_signatures[1]] -}) - -recent_births = [get_event_data(w3.codec, ck_extra_events_abi[1], log)["args"] for log in birth_logs] -``` - -## NFTs populares {#popular-nfts} - -- [Etherscan NFT Tracker](https://etherscan.io/tokens-nft) lista o maior NFT no Ethereum por volume de transferências. -- [CryptoKitties](https://www.cryptokitties.co/) é um jogo centrado em criaturas de coleção adoráveis que chamamos de CryptoKitties. -- [Sorare](https://sorare.com/) é um jogo global de fantasia em que você pode coletar edições limitadas, gerenciar suas equipes e concorrer para ganhar prêmios. -- [Ethereum Name Service (ENS)](https://ens.domains/) oferece uma forma segura e descentralizada de endereçar os recursos dentro e fora da blockchain usando nomes legíveis simples. -- [POAP](https://poap.xyz) oferece NFTs grátis para pessoas que participam de eventos ou realizam ações específicas. Os POAPs são livres para criar e distribuir. -- [Unstoppable Domains](https://unstoppabledomains.com/) é uma empresa com sede em São Francisco que cria domínios em blockchains. Os domínios de blockchain substituem endereços de criptomoeda por nomes legíveis e podem ser usados para habilitar sites resistentes à censura. -- [Gods Unchained Cards](https://godsunchained.com/) é uma TCG na blockchain Ethereum que usa NFT para representar a propriedade real nos ativos do jogo. -- [Bored Ape Yacht Club](https://boredapeyachtclub.com) é uma coleção de 10.000 NFT exclusivos que, além de ser uma peça de arte comprovadamente eclética, atua como um token de adesão ao clube, oferecendo vantagens e benefícios aos membros, que aumentam ao longo do tempo como resultado dos esforços da comunidade. - -## Leia mais {#further-reading} - -- [EIP-721: ERC-721 Padrão de token não-fungível](https://eips.ethereum.org/EIPS/eip-721) -- [OpenZeppelin: Documentação ERC-721](https://docs.openzeppelin.com/contracts/3.x/erc721) -- [OpenZeppelin: Implementação ERC-721](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) -- [API do NFT da Alchemy](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) diff --git a/src/content/translations/pt-br/history/index.md b/src/content/translations/pt-br/history/index.md deleted file mode 100644 index d244d8bd544..00000000000 --- a/src/content/translations/pt-br/history/index.md +++ /dev/null @@ -1,489 +0,0 @@ ---- -title: Histórico e bifurcações do Ethereum -description: Uma história da blockchain Ethereum, incluindo marcos importantes, versões e bifurcações. -lang: pt-br -sidebarDepth: 1 ---- - -# A história do Ethereum {#the-history-of-ethereum} - -Uma linha do tempo dos principais marcos, bifurcações e atualizações da blockchain Ethereum. - - - -Bifurcações ocorrem quando grandes atualizações ou alterações técnicas precisam ser feitas na rede, que geralmente são decorrentes de [Propostas de Melhoria do Ethereum (EIPs)] (/ eips /) e alteram as "regras" do protocolo. - -Quando é necessário atualizar um software tradicional, com controle centralizado, a empresa apenas publica uma nova versão para o usuário final. Blockchains funcionam de maneira diferente porque não há propriedade centralizada. [Clientes Ethereum](/developers/docs/nodes-and-clients/) devem atualizar seu software para implementar as novas regras da bifurcação. Além disso, os criadores de bloco (mineradores em um mundo com prova de trabalho, validadores em um mundo com prova de participação) e nós devem criar blocos e validá-los conforme as novas regras. [Mais sobre mecanismos de consenso](/developers/docs/consenus-mechanisms/) - -Essas mudanças de regra podem criar uma divisão temporária na rede. Novos blocos podem ser produzidos conforme as novas regras ou as antigas. Geralmente, as bifurcações são acordadas antes do tempo, para que os clientes adotem as mudanças de uníssono e para que a bifurcação com as melhorias se torne a cadeia principal. No entanto, em casos raros, desacordos sobre as bifurcações podem fazer com que a rede seja dividida permanentemente. Esse foi notadamente o caso para a criação do Ethereum Classic com a [bifurcação DAO] (#dao-fork). - - -Vá direto para informações sobre algumas das atualizações anteriores particularmente importantes: [The Beacon Chain](/roadmap/beacon-chain/), [The Merge](/roadmap/merge/) e [EIP-1559](#london) - -Procurando por futuras melhorias de protocolo? [Saiba mais sobre as próximas atualizações no roteiro do Ethereum](/roadmap/). - - - -## 2023 {#2023} - -### Shanghai {#shanghai} - - - -#### Resumo {#shanghai-summary} - -A atualização Shanghai trouxe saques de stake para a camada de execução. Em conjunto com a atualização Capella, isso permitiu que os blocos aceitassem operações de saque, o que permite que os stakers saquem seu ETH da Beacon Chain para a camada de execução. - - - -- [EIP-3651](https://eips.ethereum.org/EIPS/eip-3651) – _Inicia o endereço `COINBASE` warm_ -- [EIP-3855](https://eips.ethereum.org/EIPS/eip-3855) – _Nova instrução `PUSH0`_ -- [EIP-3860](https://eips.ethereum.org/EIPS/eip-3860) – _Limita e mede o initcode_ -- [EIP-4895](https://eips.ethereum.org/EIPS/eip-4895) – _Envio de retiradas na Beacon Chain como operações_ -- [EIP-6049](https://eips.ethereum.org/EIPS/eip-6049) – _Substituir `SELFDESTRUCT`_ - - - -- [Leia a especificação de atualização Shangai](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/shanghai.md) - ---- - -### Capella {#capella} - - - -#### Resumo {#capella-summary} - -A atualização Capella foi a terceira maior atualização para a camada de consenso (Beacon Chain) e permitiu saques de stake. Capella ocorreu em sincronia com a atualização da camada de execução, Shanghai, e ativou a funcionalidade de saque de stake. - -Essa atualização da camada de consenso trouxe a capacidade para os stakers que não forneceram credenciais de saque com seu depósito inicial de fazê-lo, permitindo assim os saques. - -A atualização também forneceu a funcionalidade de varredura automática de contas, que processa continuamente as contas do validador para todos os pagamentos de recompensas disponíveis ou saques totais. - -- [Mais sobre saques de staking](/staking/withdrawals/). -- [Leia a especificação da atualização Capella](https://github.com/ethereum/consensus-specs/blob/dev/specs/capella/) - - - -## 2022 {#2022} - -### Paris (A Fusão) {#paris} - - - -#### Resumo {#paris-summary} - -A atualização Paris foi desencadeada pela cadeia de blocos de prova de trabalho com uma [dificuldade total final](/glossary/#terminal-total-difficulty) de 58750000000000000000000. Isso aconteceu no bloco 15537393, em 15 de setembro de 2022, iniciando a atualização Paris para o próximo bloco. Paris foi a transição para o [The Merge](/roadmap/merge/) — seu maior recurso era desativar o algoritmo de mineração da [prova de trabalho](/developers/docs/consensus-mechanisms/pow) e a lógica de consenso associada e ativar a [prova de participação](/developers/docs/consensus-mechanisms/pos) no lugar dela. Paris em si foi uma atualização para os [clientes de execução](/developers/docs/nodes-and-clients/#execution-clients) (equivalente à Bellatrix na camada de consenso) que permitiu que eles recebessem instruções de seus [clientes de consenso](/developers/docs/nodes-and-clients/#consensus-clients) conectados. Isso exigiu um novo conjunto de métodos internos da API, coletivamente conhecido como [API do mecanismo](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md), a ser ativado. Esta foi, indiscutivelmente, a atualização mais significativa na história do Ethereum desde o [Homestead](#homestead)! - -- [Leia a especificação de atualização Paris](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/paris.md) - - - -– [EIP-3675](https://eips.ethereum.org/EIPS/eip-3675) – _Atualização do consenso para prova de participação_ -– [EIP-4399](https://eips.ethereum.org/EIPS/eip-4399) – _Substituir o opcode DIFFICULTY por PREVRANDAO_ - - - ---- - -### Bellatrix {#bellatrix} - - - -#### Resumo {#bellatrix-summary} - -A atualização Bellatrix foi a segunda atualização agendada para a [Beacon Chain](/roadmap/beacon-chain), preparando a cadeia para o [The Merge](/roadmap/merge/). Ela traz penalidades ao validador para seus valores totais por inatividade e ofensas sancionáveis. Bellatrix também inclui uma atualização nas regras de escolha de bifurcações para preparar a cadeia para o The Merge e a transição do último bloco de prova de trabalho para o primeiro bloco de prova de participação. Isso inclui informar os clientes de consenso sobre a [dificuldade total do terminal](/glossary/#terminal-total-difficulty) de 58750000000000000000000. - -- [Leia a especificação da atualização Bellatrix](https://github.com/ethereum/consensus-specs/tree/dev/specs/bellatrix) - ---- - -### Gray Glacier {#gray-glacier} - - - -#### Resumo {#gray-glacier-summary} - -A atualização Gray Glacier atrasou a [bomba de dificuldade](/glossary/#difficulty-bomb) por 3 meses. Esta é a única mudança introduzida nessa atualização, e é parecida com a natureza das atualizações [Arrow Glacier](#arrow-glacier) e [Muir Glacier](#muir-glacier). Mudanças semelhantes foram realizadas nas atualizações de rede [Byzantium](#byzantium), [Constantinople](#constantinople) e [London](#london). - -- [Blog da EF – Comunicado da atualização Gray Glacier](https://blog.ethereum.org/2022/06/16/gray-glacier-announcement/) - - - -– [EIP-5133](https://eips.ethereum.org/EIPS/eip-5133) – _atrasa a bomba de dificuldade até setembro de 2022_ - - - - - -## 2021 {#2021} - -### Arrow Glacier {#arrow-glacier} - - - -#### Resumo {#arrow-glacier-summary} - -A implementação de rede Arrow Glacier atrasou a [bomba de dificuldade](/glossary/#difficulty-bomb) por vários meses. Essa é a única mudança introduzida nesta implementação, e é de natureza similar à atualização [Muir Glacier](#muir-glacier). Mudanças semelhantes foram realizadas nas implementações de rede [Byzantium](#byzantium), [Constantinople](#constantinople) e [London](#london). - -- [Blog da EF – Comunicado da atualização Arrow Glacier](https://blog.ethereum.org/2021/11/10/arrow-glacier-announcement/) -- [Ethereum Cat Herders – Atualização Ethereum Arrow Glacier](https://medium.com/ethereum-cat-herders/ethereum-arrow-glacier-upgrade-e8d20fa4c002) - - - -– [EIP-4345](https://eips.ethereum.org/EIPS/eip-4345) – _atrasa a bomba de dificuldade até junho 2022_ - - - ---- - -### Altair {#altair} - - - -#### Resumo {#altair-summary} - -A Altair foi a primeira implementação programada para a [Beacon Chain](/roadmap/beacon-chain). Foi adicionado suporte para “comitês de sincronização”, permitindo clientes leves, aumentando a inatividade do validador e removendo penalidades à medida que o desenvolvimento avançava para o The Merge. - -- [Leia a especificação de melhoria da Altair](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) - -#### Fato engraçado! {#altair-fun-fact} - -Altair foi a primeira grande atualização de rede que teve um tempo exato de implantação. Todas as atualizações anteriores eram baseadas em um número de bloco declarado na cadeia de prova de trabalho, na qual o tempo de mineração de cada bloco varia. A Beacon Chain não requer resolver a prova de trabalho, em vez disso, ela funciona segundo um sistema de tempo em épocas, composto de 32 “intervalos” de 12 segundos cada, durante os quais os validadores podem propor blocos. É por isso que sabíamos exatamente quando atingiríamos a época 74.240 e a data de lançamento da Altair! - -- [Tempo do bloco](/developers/docs/blocks/#block-time) - ---- - -### London {#london} - - - -#### Resumo {#london-summary} - -A atualização London introduziu a [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559), que reformou o mercado de taxas de transação, além de implementar mudanças na forma como os reembolsos de gás são realizados e no cronograma da [Ice Age](/glossary/#ice-age). - -- [Você é um desenvolvedor de dapp? Certifique-se de atualizar suas bibliotecas e ferramentas.](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/london-ecosystem-readiness.md) -- [Leia o comunicado da Ethereum Foundation](https://blog.ethereum.org/2021/07/15/london-mainnet-announcement/) -- [Leia a explicação do Ethereum Cat Herder](https://medium.com/ethereum-cat-herders/london-upgrade-overview-8eccb0041b41) - - - -– [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) – _melhora a taxa de transação do mercado_ -– [EIP-3198](https://eips.ethereum.org/EIPS/eip-3198) – _retorna o "BASEFEE" de um bloco_ -– [EIP-3529](https://eips.ethereum.org/EIPS/eip-3529) – _reduz os reembolsos de gás para operações de EVM_ -– [EIP-3541](https://eips.ethereum.org/EIPS/eip-3541) – _evita a implantação de contratos que iniciam com "0xEF"_ -– [EIP-3554](https://eips.ethereum.org/EIPS/eip-3554) – _atrasa a Ice Age até 2021_ - - - ---- - -### Berlin {#berlin} - - - -#### Resumo {#berlin-summary} - -A atualização Berlim otimizou o custo de gás para certas ações de EVM e aumenta o suporte para vários tipos de transação. - -- [Leia o anúncio da Fundação Ethereum](https://blog.ethereum.org/2021/03/08/ethereum-berlin-upgrade-announcement/) -- [Leia a explicação do Ethereum Cat Herder](https://medium.com/ethereum-cat-herders/the-berlin-upgrade-overview-2f7ad710eb80) - - - -– [EIP-2565](https://eips.ethereum.org/EIPS/eip-2565) - _reduz o custo de gás para ModExp_ -– [EIP-2718](https://eips.ethereum.org/EIPS/eip-2718) – _permite suporte mais fácil para vários tipos de transação_ -– [EIP-2929](https://eips.ethereum.org/EIPS/eip-2929) – _o custo de gás aumenta para os opcodes de acesso ao estado_ -– [EIP-2930](https://eips.ethereum.org/EIPS/eip-2930) – _adiciona listas de acesso opcionais_ - - - - - -## 2020 {#2020} - -### Origem da Beacon Chain {#beacon-chain-genesis} - - - -#### Resumo {#beacon-chain-genesis-summary} - -A [Beacon Chain](/roadmap/beacon-chain/) precisava de 16.384 depósitos de 32 ETH em stake (participação) para ser transferida com segurança. Isso aconteceu em 27 de novembro, ou seja, a Beacon Chain começou a produzir blocos em 1 de dezembro de 2020. Este é um primeiro passo importante para alcançar a [Visão Ethereum](/roadmap/vision/). - -[Leia o comunicado da Ethereum Foundation](https://blog.ethereum.org/2020/11/27/eth2-quick-update-no-21/) - - - A Beacon Chain - - ---- - -### Contrato de depósito de participação implantado {#staking-deposit-contract} - - - -#### Resumo {#deposit-contract-summary} - -O contrato de depósito fixo introduziu [staking](/glossary/#staking) (participação) no ecossistema Ethereum. Embora fosse um contrato da [Mainnet](/glossary/#mainnet), ela teve um impacto direto na linha do tempo para o lançamento da [Beacon Chain](/roadmap/beacon-chain/), uma importante [atualização do Ethereum](/roadmap/). - -[Leia o comunicado da Ethereum Foundation](https://blog.ethereum.org/2020/11/04/eth2-quick-update-no-19/) - - - Participação - - ---- - -### Muir Glacier {#muir-glacier} - - - -#### Resumo {#muir-glacier-summary} - -O fork (bifurcação) Muir Glacier introduziu um atraso na [bomba de dificuldade](/glossary/#difficulty-bomb). O aumento da dificuldade dos blocos do mecanismo de consenso da [prova de trabalho](/developers/docs/consensus-mechanisms/pow/) ameaçava degradar a usabilidade do Ethereum, aumentando os tempos de espera para o envio de transações e usando dapps. - -- [Leia o comunicado da Ethereum Foundation](https://blog.ethereum.org/2019/12/23/ethereum-muir-glacier-upgrade-announcement/) -- [Leia a explicação do Ethereum Cat Herder](https://medium.com/ethereum-cat-herders/ethereum-muir-glacier-upgrade-89b8cea5a210) - - - -– [EIP-2384](https://eips.ethereum.org/EIPS/eip-2384) – _atrasa a bomba de dificuldade por mais 4.000.000 blocos, ou ~611 dias._ - - - - - -## 2019 {#2019} - -### Istambul {#istanbul} - - - -#### Resumo {#istanbul-summary} - -O fork (bifurcação) Istanbul: - -- Otimizado o custo de [gás](/glossary/#gas) de certas ações no [EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine). -- Melhoria na resiliência a ataques de negação de serviço. -- Criou soluções de [escalonamento da Camada 2](/developers/docs/scaling/#layer-2-scaling)com soluções baseadas em SNARKs e STARKs de melhor desempenho. -- Interoperação entre Ethereum e Zcash habilitada. -- Contratos permitidos para introduzir funções mais criativas. - -[Leia o comunicado da Ethereum Foundation](https://blog.ethereum.org/2019/11/20/ethereum-istanbul-upgrade-announcement/) - - - -– [EIP-152](https://eips.ethereum.org/EIPS/eip-152) – _permite que o Ethereum trabalhe com moedas que preservam a privacidade, como o Zcash._ -– [EIP-1108](https://eips.ethereum.org/EIPS/eip-1108) – _criptografia mais barata para melhorar os custos de [gas](/glossary/#gas)._ -– [EIP-1344](https://eips.ethereum.org/EIPS/eip-1344) – _protege o Ethereum contra ataques de reprodução adicionando "CHAINID" [opcode](/developers/docs/ethereum-stack/#ethereum-virtual-machine)._ -– [EIP-1884](https://eips.ethereum.org/EIPS/eip-1884) – _otimização dos preços do gás dos códigos de operação baseados em consumo._ -– [EIP-2028](https://eips.ethereum.org/EIPS/eip-2028) – _reduz o custo dos dados de chamada para permitir mais dados nos blocos – bom para [escalonamento de Camada 2](/developers/docs/scaling/#layer-2-scaling)._ -– [EIP-2200](https://eips.ethereum.org/EIPS/eip-2200) – _outras alterações do preço do gás dos códigos de operação._ - - - ---- - -### Constantinopla {#constantinople} - - - -#### Resumo {#constantinople-summary} - -O fork (bifurcação) Constantinople: - -- Assegurou que a cadeia de blocos não congelasse antes de a [prova de participação ser implementada](#beacon-chain-genesis). -- Otimizado o custo de [gás](/glossary/#gas) de certas ações no [EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine). -- Adicionada a capacidade de interagir com endereços que ainda não foram criados. - -[Leia o comunicado da Ethereum Foundation](https://blog.ethereum.org/2019/02/22/ethereum-constantinople-st-petersburg-upgrade-announcement/) - - - -– [EIP-145](https://eips.ethereum.org/EIPS/eip-145) – _otimiza o custo de certas ações em cadeia. -– [EIP-1014](https://eips.ethereum.org/EIPS/eip-1014) – \_permite que você interaja com endereços que ainda não foram criados. -– [EIP-1052](https://eips.ethereum.org/EIPS/eip-1052) – \_otimiza o custo de certas ações em cadeia. -– [EIP-1234](https://eips.ethereum.org/EIPS/eip-1234) – \_verifica se a cadeia de blocos não congela antes da prova de participação._ - - - - - -## 2017 {#2017} - -### Byzantium {#byzantium} - - - -#### Resumo {#byzantium-summary} - -O fork (bifurcação) Byzantium: - -- Reduziu as recompensas de [mineração](/developers/docs/consensus-mechanisms/pow/mining/) de bloco de 5 para 3 ETH. -- A [bomba de dificuldade](/glossary/#difficulty-bomb) foi atrasada por um ano. -- Adicionada a capacidade de fazer chamadas sem alteração de estado para outros contratos. -- Adicionados alguns métodos de criptografia para permitir o [escalonamento da Camada 2](/developers/docs/scaling/#layer-2-scaling). - -[Leia o comunicado da Ethereum Foundation](https://blog.ethereum.org/2017/10/12/byzantium-hf-announcement/) - - - -– [EIP-140](https://eips.ethereum.org/EIPS/eip-140) – _adiciona o código de operação "REVERT"._ -– [EIP-658](https://eips.ethereum.org/EIPS/eip-658) – _campo de status adicionado aos recibos de transação para indicar êxito ou falha._ -– [EIP-196](https://eips.ethereum.org/EIPS/eip-196) – _adiciona curva elíptica e multiplicação escalar para permitir [ZK-Snarks](/developers/docs/scaling/zk-rollups/)._ -– [EIP-197](https://eips.ethereum.org/EIPS/eip-197) – _adiciona curva elíptica e multiplicação escalar permitir [ZK-Snarks](/developers/docs/scaling/zk-rollups/)._ -– [EIP-198](https://eips.ethereum.org/EIPS/eip-198) – _habilita a verificação de assinatura RSA._ -– [EIP-211](https://eips.ethereum.org/EIPS/eip-211) – _adiciona suporte para valores de retorno de tamanho variável._ -– [EIP-214](https://eips.ethereum.org/EIPS/eip-214) – _adiciona o código de operação "STATICCALL", permitindo chamadas sem alteração sem estado para outros contratos._ -– [EIP-100](https://eips.ethereum.org/EIPS/eip-100) – _altera a fórmula de ajuste de dificuldade._ -– [EIP-649](https://eips.ethereum.org/EIPS/eip-649) – _atrasa a [difficulty bomb](/glossary/#difficulty-bomb) em um ano e reduz a recompensa de bloco de 5 para 3 ETH._ - - - - - -## 2016 {#2016} - -### Spurious Dragon {#spurious-dragon} - - - -#### Resumo {#spurious-dragon-summary} - -O fork (bifurcação) Spurious Dragon foi a segunda resposta aos ataques de negação de serviço (DoS) na rede (setembro / outubro de 2016), incluindo: - -- ajustar preços do código de operação para evitar ataques futuros à rede. -- permitindo "desinchar" do estado da cadeia de blocos. -- adicionando proteção contra ataques de repetição. - -[Leia o comunicado da Ethereum Foundation](https://blog.ethereum.org/2016/11/18/hard-fork-no-4-spurious-dragon/) - - - -– [EIP-155](https://eips.ethereum.org/EIPS/eip-155) – _evita que as transações de uma cadeia Ethereum sejam retransmitidas em uma cadeia alternativa, por exemplo, uma transação de rede de testes sendo reproduzida na cadeia principal Ethereum._ -– [EIP-160](https://eips.ethereum.org/EIPS/eip-160) – _ajusta os preços do código de operação "EXP" – dificulta a desaceleração da rede pode meio de operações contratuais computacionalmente caras._ -– [EIP-161](https://eips.ethereum.org/EIPS/eip-161) – _permite a remoção de contas vazias adicionadas por meio dos ataques DOS (DOS)._ -– [EIP-170](https://eips.ethereum.org/EIPS/eip-170) – _muda o tamanho máximo de código que um contrato na cadeia de blocos pode ter – para 24576 bytes._ - - - ---- - -### Tangerine Whistle {#tangerine-whistle} - - - -#### Resumo {#tangerine-whistle-summary} - -O fork (bifurcação) Whistle Tangerine foi a primeira resposta aos ataques de negação de serviço (DoS) na rede (setembro / outubro de 2016), incluindo: - -- resolução de problemas urgentes de integridade da rede relacionados a códigos de operação com preços reduzidos. - -[Leia o comunicado da Ethereum Foundation](https://blog.ethereum.org/2016/10/18/faq-upcoming-ethereum-hard-fork/) - - - -– [EIP-150](https://eips.ethereum.org/EIPS/eip-150) – _aumenta os custos de gás de códigos de operação que podem ser usados em ataques de spam._ -– [EIP-158](https://eips.ethereum.org/EIPS/eip-158) – _reduz o tamanho do estado removendo muitas contas vazias que foram colocadas no estado a um custo muito baixo, devido a falhas em versões anteriores do protocolo Ethereum._ - - - ---- - -### Bifurcação DAO {#dao-fork} - - - -#### Resumo {#dao-fork-summary} - -O fork (bifurcação) DAO foi em resposta ao [ataque DAO de 2016](https://www.coindesk.com/markets/2016/06/25/understanding-the-dao-attack/), duranto o qual um contrato inseguro de [DAO](/glossary/#dao) foi esvaziado em mais de 3 milhões de ETH em um hack. O fork (bifurcação) moveu os fundos do contrato defeituoso para um [novo contrato](https://etherscan.io/address/0xbf4ed7b27f1d666546e30d74d50d173d20bca754) com uma única função: fazer saque. Qualquer pessoa que tenha perdido fundos poderia sacar 1 ETH para cada 100 tokens DAO em suas carteiras. - -Esse curso de ação foi votado pela comunidade Ethereum. Qualquer titular de ETH pôde votar por meio de uma transação em [uma plataforma de votação](http://v1.carbonvote.com/). A decisão de fazer a bifurcação ultrapassou 85% dos votos. - -Alguns mineradores recusaram a bifurcação porque o incidente da DAO não era um defeito do protocolo. Eles começaram a formar a [Ethereum Classic](https://ethereumclassic.org/). - -[Leia o comunicado da Ethereum Foundation](https://blog.ethereum.org/2016/07/20/hard-fork-completed/) - ---- - -### Homestead {#homestead} - - - -#### Resumo {#homestead-summary} - -O fork (bifurcação) Homestead que olhou para o futuro. Incluiu várias alterações no protocolo e uma alteração na rede que deu ao Ethereum a capacidade de fazer mais atualizações na rede. - -[Leia o comunicado da Ethereum Foundation](https://blog.ethereum.org/2016/02/29/homestead-release/) - - - -– [EIP-2](https://eips.ethereum.org/EIPS/eip-2) – _faz edições no processo de criação do contrato._ -– [EIP-7](https://eips.ethereum.org/EIPS/eip-7) – _adiciona um novo código de operação: `DELEGATECALL`_ -– [EIP-8](https://eips.ethereum.org/EIPS/eip-8) – _introduz os requisitos de compatibilidade devp2p_ - - - - - -## 2015 {#2015} - -### Frontier thawing {#frontier-thawing} - - - -#### Resumo {#frontier-thawing-summary} - -O fork (bifurcação) Frontier Thawing aumentou o limite de [gás](/glossary/#gas) de 5.000 por [bloco](/glossary/#block) e definiu o preço padrão do gás para 51 [gwei](/glossary/#gwei). Isso é permitido para transações – as transações requerem 21.000 em gás. A bomba de dificuldade [](/glossary/#difficulty-bomb) foi introduzida para garantir uma futura bifurcação fixa para a [prova de participação](/glossary/#pos). - -- [Leia o comunicado da Ethereum Foundation](https://blog.ethereum.org/2015/08/04/the-thawing-frontier/) -- [Leia a atualização do protocolo Ethereum 1](https://blog.ethereum.org/2015/08/04/ethereum-protocol-update-1/) - ---- - -### Frontier {#frontier} - - - -#### Resumo {#frontier-summary} - -Frontier era a implementação mais simples do projeto Ethereum. Ela veio após a fase de testes bem-sucedida da Olympic. Ela era destinada a usuários técnicos, especificamente a desenvolvedores. [Blocos](/glossary/#block) tiveram um limite de [gás](/glossary/#gas) de 5.000. Esse período de “escavação” permitiu que os mineradores iniciassem as suas operações e que os primeiros adotantes instalassem os seus clientes sem “pressa”. - -[Leia o comunicado da Ethereum Foundation](https://blog.ethereum.org/2015/07/22/frontier-is-coming-what-to-expect-and-how-to-prepare/) - - - -## 2014 {#2014} - -### Venda de Ether {#ether-sale} - - - -O Ether permaneceu à venda oficialmente por 42 dias. Era possível comprá-lo com BTC. - -[Leia o comunicado da Ethereum Foundation](https://blog.ethereum.org/2014/07/22/launching-the-ether-sale/) - ---- - -### Lançamento do Yellow Paper {#yellowpaper} - - - -O Yellow Paper, de autoria do Dr. Gavin Wood, é uma definição técnica do protocolo Ethereum. - -[Ver o Yellow Paper](https://github.com/ethereum/yellowpaper) - - - -## 2013 {#2013} - -### Lançamento do Whitepaper {#whitepaper} - - - -Este artigo introdutório foi originalmente publicado em 2013 por Vitalik Buterin, fundador da Ethereum, antes do lançamento do projeto em 2015. - - - Whitepaper - diff --git a/src/content/translations/pt-br/nft/index.md b/src/content/translations/pt-br/nft/index.md deleted file mode 100644 index baab75eb6d6..00000000000 --- a/src/content/translations/pt-br/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Tokens não fungíveis (NFT) -description: Uma visão geral de NFTs na Ethereum -lang: pt-br -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: Um logotipo Eth sendo exibido via holograma. -summaryPoint1: Uma forma de representar qualquer coisa única como um ativo baseado no Ethereum. -summaryPoint2: Os NFTs estão dando mais poder do que nunca aos criadores de conteúdo. -summaryPoint3: Desenvolvido por contratos inteligentes na blockchain Ethereum. ---- - -## O que são NFTs? {#what-are-nfts} - -NFTs são tokens que são individualmente exclusivos. Cada NFT contém diferentes propriedades (não-fungíveis) e é comprovadamente escasso. Isto é diferente de tokens como ERC-20, em que cada token em um conjunto é idêntico e tem as mesmas propriedades ('fungível'). Você não se importa com a nota de dólar específica que tem em sua carteira, porque todas são idênticas e têm o mesmo valor. Entretanto, você _se importa_ com o NFT específico que tem, porque todos têm propriedades individuais que os distinguem dos demais ("não fungíveis"). - -A exclusividade de cada NFT permite a tokenização de itens como arte, colecionáveis ou inclusive imóveis, em que um NFT exclusivo específico representa um item real ou digital único específico. A propriedade de um ativo é garantida pelo blockchain Ethereum – ninguém pode alterar o registro de propriedade ou copiar/colar um novo NFT. - - - -## A Internet de ativos {#internet-of-assets} - -Os NFTs e Ethereum resolvem alguns dos problemas que existem na internet atualmente. À medida que tudo se torna mais digital, há uma necessidade de replicar as propriedades de itens físicos, como escassez, exclusividade e prova de propriedade. de uma maneira não controlada por uma organização central. Por exemplo, com os NFTs, você pode ser titular de um mp3 de música que não é específico do aplicativo de música de uma empresa, ou pode ter um identificador de rede social que pode ser vendido ou trocado, mas que não pode ser arbitrariamente retirado de você por um provedor de plataforma. - -Veja como é uma Internet de NFTs comparada à Internet que a maioria de nós usa atualmente... - -### Uma comparação {#nft-comparison} - -| Uma Internet NFT | A Internet hoje | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Você é proprietário dos seus ativos! Apenas você pode vender ou trocá-los. | Você aluga um ativo de uma organização. | -| Os NFTs são digitalmente exclusivos e não há dois NFTs idênticos. | A cópia de uma entidade geralmente não pode ser distinguida da original. | -| A propriedade de um NFT é armazenada no blockchain e qualquer pessoa pode verificar. | Os registros de propriedade de itens digitais são armazenados em servidores controlados por instituições, e você precisa confiar nelas. | -| NFTs são contratos inteligentes no Ethereum. Isso significa que eles podem facilmente ser utilizados em outros contratos inteligentes e aplicativos no Ethereum! | As empresas com itens digitais geralmente exigem uma infraestrutura exclusiva de "jardim murado". | -| Os criadores de conteúdo podem vender o trabalho deles em qualquer lugar e acessar um mercado global. | Os criadores dependem da infraestrutura e da distribuição das plataformas que utilizam. Essas normalmente estão sujeitas a termos de utilização e a restrições geográficas. | -| Os criadores de NFT podem manter os direitos de propriedade sobre seu próprio trabalho e programar os royalties diretamente no contrato do NFT. | As plataformas, como os serviços de streaming de música, retêm a maior parte dos lucros das vendas. | - -## Como funcionam os NFTs? {#how-nfts-work} - -Como qualquer token emitido no Ethereum, NFTs são emitidos por um contrato inteligente. O contrato inteligente está em conformidade com uma das diversas normas NFT (geralmente ERC-721 ou ERC-1155) que definem as funções do contrato. O contrato pode criar ("mintar") NFTs e atribuí-los a um proprietário específico. A propriedade é definida no contrato por meio do mapeamento de NFTs específicos a endereços específicos. O NFT tem um identificador (ID) e normalmente metadados associados que fazem com que o token específico seja exclusivo. - -Quando alguém cria ou minta um NFT, o que a pessoa está fazendo é executar uma função do contrato inteligente que atribui um NFT específico ao respectivo endereço. Essas informações são armazenadas no armazenamento do contrato, que faz parte do blockchain. O criador do contrato pode escrever lógica adicional no contrato, por exemplo, para limitar o fornecimento total ou definir um royalty a ser pago ao criador sempre que um token é transferido. - -## Para que servem os NFTs? {#nft-use-cases} - -NFTs são utilizados para diversos fins, inclusive: - -- comprovar que você participou de um evento -- certificar que você concluiu um curso -- itens que podem ser adquiridos em jogos -- arte digital -- tokenização de ativos reais -- comprovar a sua identidade online -- obter acesso a conteúdo -- emissão de ingressos -- nomes de domínios de internet descentralizados -- garantia colateral em DeFi - -Você pode ser um artista que quer compartilhar o seu trabalho utilizando NFTs, sem perder o controle ou sacrificar os seus lucros porque precisa pagar intermediários. Você pode criar um novo contrato e especificar o número de NFTs, as propriedades e um link para um trabalho artístico específico. Como artista, você pode programar, no contrato inteligente, os royalties que deverá receber (por exemplo, transferir 5% do preço de venda ao proprietário do contrato sempre que um NFT é transferido). Além disso, você pode sempre comprovar que criou os NFTs, pois é o titular da carteira que implantou o contrato. Os seus compradores podem facilmente comprovar que são titulares de um NFT autêntico da sua coleção porque o endereço da carteira deles está associado a um token no seu contrato inteligente. Eles podem usá-lo em todo o ecossistema Ethereum, com certeza da autenticidade. - -Ou, por exemplo, considere um ingresso para um evento esportivo. Assim como o organizador de um evento pode escolher quantos ingressos vender, o criador de um NFT pode decidir quantas réplicas existem. Às vezes, são réplicas exatas, como 5 mil ingressos de acesso geral. Por vezes, são mintados diversos ingressos muito semelhantes, mas cada um ligeiramente diferente, como um ingresso com um assento designado. Eles podem ser comprados e vendidos ponto a ponto, sem precisar pagar processadores de ingressos, e o comprador tem sempre a garantia da autenticidade do ingresso ao verificar o endereço do contrato. - -No site ethereum.org, os NFTs são utilizados para demonstrar que as pessoas contribuíram com o nosso repositório Github ou participaram de reuniões, e temos inclusive o nosso próprio nome de domínio NFT. Se você contribuir no ethereum.org, poderá reivindicar um NFT tipo POAP, protocolo de comprovação de presença. Alguns meetups de cripto usam POAPs como ingresso. [Mais sobre contribuição](/contributing/#poap). - -![blog ethereum.org](../../assets/use-cases/poap.png) - -Este site também tem um nome de domínio alternativo fornecido por NFTs, **ethereum.eth**. Nosso endereço `.org` é gerenciado centralmente por um provedor de nomes de domínio (DNS), enquanto ethereum`. eth` está registrado na Ethereum por meio do Serviço de Nome Ethereum (ENS). Nós somos os titulares e responsáveis pela administração do site. [Confira nosso registro ENS](https://app.ens.domains/name/ethereum.eth) - -[Mais sobre ENS](https://app.ens.domains) - - - -### Segurança do NFT {#nft-security} - -A segurança do Ethereum vem da prova de participação. O sistema foi projetado para desincentivar economicamente ações maliciosas, o que faz com que o Ethereum seja à prova de adulteração. É isso que possibilita a existência dos NFTs. Assim que o bloco que contém a sua transação de NFT é finalizado, um invasor teria que gastar milhões de ETH para alterá-lo. Qualquer pessoa que execute o software Ethereum poderá detectar imediatamente a adulteração desonesta de um NFT, e o agente mal-intencionado será penalizado economicamente e expulso. - -Os problemas de segurança relacionados aos NFTs são, na maioria das vezes, relacionados a golpes de phishing, vulnerabilidades de contratos inteligentes ou erros do usuário (como a exposição inadvertida de chaves privadas), o que faz com que a segurança adequada da carteira seja essencial para os proprietários de NFTs. - - - Mais sobre segurança - - -## Leitura adicional {#further-reading} - -- [Um guia sobre NFTs para iniciantes](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, janeiro de 2020_ -- [Rastreador de NFT Etherscan](https://etherscan.io/nft-top-contracts) -- [Padrão de token ERC-721](/developers/docs/standards/tokens/erc-721/) -- [Padrão de token ERC-1155](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/pt-br/refi/index.md b/src/content/translations/pt-br/refi/index.md deleted file mode 100644 index 8d9701d947a..00000000000 --- a/src/content/translations/pt-br/refi/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: Finanças regenerativas (ReFi) -description: Uma visão geral de ReFi e casos de uso atuais. -lang: pt-br -template: use-cases -emoji: ":recycle:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Um sistema econômico alternativo desenvolvido com base em princípios regenerativos -summaryPoint2: Uma tentativa de aproveitar o Ethereum para resolver crises de coordenação em nível global, como, por exemplo, a mudança climática -summaryPoint3: Uma ferramenta para dimensionar drasticamente ativos de benefícios ecológicos, como créditos de carbono verificados ---- - -## O que é ReFi? {#what-is-refi} - -**Finanças regenerativas (ReFi)** é um conjunto de ferramentas e ideias desenvolvidas com base em blockchains, com o objetivo de criar economias regenerativas, em vez de extrativistas ou exploratórias. No final das contas, os sistemas extrativistas esgotam os recursos disponíveis e entram em colapso; sem mecanismos regenerativos, eles não têm resiliência. O sistema ReFi opera com base no pressuposto de que a criação de valor monetário deve ser dissociada da extração insustentável dos recursos do nosso planeta e das nossas comunidades. - -Em vez disso, o ReFi tem como objetivo solucionar problemas ambientais, comunitários ou sociais por meio da criação de ciclos regenerativos. Esses sistemas criam valor para os participantes e, ao mesmo tempo, beneficiam os ecossistemas e as comunidades. - -Um dos fundamentos do sistema ReFi é o conceito de economia regenerativa, criado por John Fullerton do [Capital Institute](https://capitalinstitute.org). Ele propôs oito princípios interconectados que fundamentam a integridade sistêmica: - -![Oito princípios interconectados](../../assets/use-cases/refi-regenerative-economy-diagram.png) - -Os projetos ReFi cumprem esses princípios por meio de [contratos inteligentes](/developers/docs/smart-contracts/) e aplicativos de [finanças descentralizadas (DeFi)](/defi/) para incentivar comportamentos regenerativos, como, por exemplo, a recuperação de ecossistemas degradados, e facilitar a colaboração em larga escala em relação a problemas globais, como a mudança climática e a perda de biodiversidade. - -O sistema ReFi também se sobrepõe ao movimento [ciência descentralizada (DeSci)](/desci/), que utiliza Ethereum como plataforma para financiar, criar, revisar, prestar crédito, armazenar e disseminar o conhecimento científico. As ferramentas DeSci podem ser úteis no desenvolvimento de padrões e práticas verificáveis para a implementação e o monitoramento de atividades regenerativas, como o plantio de árvores, a remoção de plástico dos oceanos ou a recuperação de um ecossistema degradado. - -## Tokenização de créditos de carbono {#tokenization-of-carbon-credits} - -O **[mercado voluntário de carbono (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** é um mecanismo para financiar projetos que comprovadamente afetam de maneira positiva as emissões de carbono atuais, seja por meio da redução de emissões ou da remoção da atmosfera de gases de efeito estufa já emitidos. Esses projetos recebem um ativo denominado "créditos de carbono" após serem verificados, que podem ser vendidos para pessoas físicas e jurídicas que querem apoiar a ação climática. - -Além do VCM, há também diversos mercados de carbono exigidos pelo governo ("mercados de conformidade") que visam estabelecer um preço de carbono por meio de leis ou regulamentos em uma jurisdição específica (por exemplo, país ou região), por meio do controle do fornecimento das permissões que são distribuídas. Os mercados de conformidade incentivam os poluidores na respectiva jurisdição a reduzir as emissões, mas não têm a capacidade de remover gases de efeito estufa que já foram emitidos. - -Apesar do respectivo desenvolvimento ao longo das últimas décadas, o VCM continua a enfrentar diversos problemas: - -1. Liquidez altamente fragmentada -2. Mecanismos de transação obscuros -3. Altas taxas -4. Velocidade de negociação muito baixa -5. Falta de escalabilidade - -A transição do VCM para o novo **mercado digital de carbono (DCM)** com base em blockchain pode ser uma oportunidade para melhoria da tecnologia existente para validação, transação e consumo de créditos de carbono. Os blockchains permitem dados publicamente verificáveis, acesso a uma ampla variedade de usuários e mais liquidez. - -Os projetos ReFi utilizam tecnologia blockchain para mitigar muitos dos problemas do mercado tradicional: - -- **A liquidez está concentrada em um pequeno número de pools de liquidez** que podem ser negociados livremente por qualquer pessoa. As grandes organizações, assim como usuários individuais, podem utilizar essas pools sem pesquisas manuais de vendedores/compradores, taxas de participação ou registro prévio. -- **Todas as transações são registradas em blockchains públicos**. Assim que o crédito é disponibilizado no DCM, será sempre possível rastrear o caminho que cada crédito de carbono percorre devido à atividade de negociação. -- **A velocidade da transação é quase instantânea**. A obtenção de grandes quantidades de créditos de carbono por meio dos mercados tradicionais pode demorar dias ou semanas, mas isso pode ser feito no DCM em poucos segundos. -- **A atividade de negociação ocorre sem intermediários**, que cobram altas taxas. Os créditos de carbono digitais representam uma [melhoria de custo de 62% em comparação com créditos tradicionais equivalentes](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne), de acordo com dados de uma empresa de análise. -- **O DCM é dimensionável** e pode atender às demandas de indivíduos e de sociedades multinacionais. - -### Os principais componentes do DCM {#key-components-dcm} - -Quatro principais componentes compõem o cenário atual do DCM: - -1. Registros como [Verra](https://verra.org/project/vcs-program/registry-system/) e [Gold Standard](https://www.goldstandard.org/) garantem que os projetos que criam créditos de carbono são confiáveis. Eles também podem operar os bancos de dados nos quias os créditos de carbono digitais se originam e podem ser transferidos ou utilizados (desativados). - -Uma nova onda de projetos inovadores estão sendo criados com base em blockchains que estão tentando desestabilizar os operadores históricos desse setor. - -2. As carbon bridges ("pontes de carbono"), também conhecidas como tokenizadoras, oferecem tecnologia para representar ou transferir créditos de carbono de registros tradicionais para o DCM. Alguns exemplos importantes incluem [Toucan Protocol](https://toucan.earth/), [C3](https://c3.app/) e [Moss.Earth](https://moss.earth/). -3. Os serviços integrados oferecem créditos de prevenção e/ou remoção de carbono aos usuários finais para que possam reivindicar o benefício ambiental de um crédito e compartilhar seu apoio à ação climática com o mundo. - -Alguns, como [Klima Infinity](https://www.klimadao.finance/infinity) e [Senken](https://senken.io/), oferecem uma ampla variedade de projetos desenvolvidos por terceiros e emitidos de acordo com padrões estabelecidos, como o Verra; outros, como [Nori](https://nori.com/), oferecem apenas projetos específicos, desenvolvidos de acordo com o respectivo padrão de crédito de carbono, que eles emitem e para os quais têm seu próprio mercado exclusivo. - -4. Os trilhos e a infraestrutura subjacentes que facilitam a escalabilidade dos impactos e da eficiência de toda a cadeia de suprimentos do mercado de carbono. A [KlimaDAO](http://klimadao.finance/) oferece liquidez como um bem público (o que permite que qualquer pessoa compre ou venda créditos de carbono a um preço transparente), incentiva o aumento do rendimento dos mercados de carbono e retiradas com recompensas, oferece ferramentas interoperáveis e fáceis de usar para acessar dados, bem como adquirir e retirar uma ampla variedade de créditos de carbono tokenizados. - -## O sistema ReFi além dos mercados de carbono {#refi-beyond} - -Embora atualmente haja uma forte ênfase nos mercados de carbono em geral e na transição do VCM para o DCM especificamente nesse espaço, o termo "ReFi" não se limita estritamente ao carbono. É possível desenvolver e tokenizar outros ativos ambientais, além dos créditos de carbono, o que significa que outras externalidades negativas também podem ser precificadas nas camadas básicas de futuros sistemas econômicos. Além disso, o aspecto regenerativo desse modelo econômico pode ser aplicado a outras áreas, como o financiamento de bens públicos por meio de plataformas de financiamento quadrático, como a [Gitcoin](https://gitcoin.co/). As organizações desenvolvidas com base na ideia de participação aberta e distribuição equitativa de recursos capacitam qualquer pessoa a canalizar fundos para projetos de software de código aberto, bem como projetos educacionais, ambientais e voltados à comunidade. - -Ao desviar a direção do capital das práticas extrativistas para um fluxo regenerativo, os projetos e as empresas que proporcionam benefícios sociais, ambientais ou comunitários - e que talvez não consigam obter financiamentos tradicionais - podem sair do papel e gerar externalidades positivas para a sociedade com muito mais rapidez e facilidade. A transição para esse modelo de financiamento também abre as portas para sistemas econômicos muito mais inclusivos, em que pessoas de todos os grupos demográficos podem se tornar participantes ativos em vez de observadores passivos. O sistema ReFi oferece uma visão do Ethereum como um mecanismo para coordenar ações em relação aos desafios existenciais enfrentados pela nossa espécie e por toda a vida no nosso planeta, como a camada de base de um novo paradigma econômico, possibilitando um futuro mais inclusivo e sustentável nos próximos séculos. - -## Leitura adicional sobre ReFi - -- [Uma visão geral detalhada de moedas de carbono e seu lugar na economia](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) -- [O livro “The Ministry for the Future“ (O Ministério do Futuro) é um romance que retrata o papel de moedas com base em carbono no combate às mudanças climáticas](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) -- [Um relatório detalhado do Taskforce for Scaling Voluntary Carbon Markets](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) -- [A entrada sobre Refi de Kevin Owocki e Evan Miyazono no CoinMarketCap Glossary](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/pt-br/roadmap/beacon-chain/index.md b/src/content/translations/pt-br/roadmap/beacon-chain/index.md deleted file mode 100644 index 84c00eca83c..00000000000 --- a/src/content/translations/pt-br/roadmap/beacon-chain/index.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: A Beacon Chain -description: Saiba mais sobre a Beacon Chain — a melhoria que introduziu a prova de participação no Ethereum. -lang: pt-br -template: upgrade -image: ../../../../../assets/upgrades/core.png -summaryPoint1: A Beacon Chain introduziu a prova de participação no ecossistema Ethereum. -summaryPoint2: Ela foi integrada à cadeia de prova de trabalho da Ethereum original em setembro de 2022. -summaryPoint3: A Beacon Chain introduziu a lógica de consenso e o protocolo de propagação de boatos de bloco que agora protege a Ethereum. ---- - - - A Beacon Chain foi lançada em 1º de Dezembro de 2020 e formalizou a prova de participação como mecanismo de consenso da Ethereum, com a atualização da Fusão em 15 de setembro de 2022. - - -## O que é a Beacon Chain? {#what-is-the-beacon-chain} - -Beacon Chain é o nome do blockchain de prova de participação original que foi lançado em 2020. Ela foi criada para garantir que a lógica de consenso de prova de participação era sólida e sustentável antes de implementá-la na rede principal do Ethereum. Portanto, ela existia paralelamente à prova de trabalho do Ethereum. Beacon Chain era uma cadeia de blocos '"vazios", mas para desativar a prova de trabalho e ativar a prova de participação no Ethereum era necessário instruir a Beacon Chain a aceitar dados de transação de clientes de execução, agrupá-los em blocos e depois organizá-los em um blockchain usando um mecanismo de consenso com base em prova de participação. Ao mesmo tempo, os nós da rede original do Ethereum desligaram sua lógica de consenso, propagação de blocos e mineração, passando essas funções para a Beacon Chain. Este evento ficou conhecido como [The Merge](/roadmap/merge/). Após a Fusão, não havia mais dois blockchains. Em vez disso, havia apenas um Ethereum de prova de participação, que agora exige dois clientes diferentes por nó. Agora, a Beacon Chain é a camada de consenso, uma rede ponto a ponto de clientes de consenso que processa a lógica de consenso e transmissão de blocos, enquanto os clientes originais formam a camada de execução, responsável pela transmissão e execução de transações e pelo gerenciamento do estado do Ethereum. As duas camadas podem se comunicar mutuamente por meio da Engine API. - -## O que a Beacon Chain faz? {#what-does-the-beacon-chain-do} - -Beacon Chain é o nome dado a um registro de contas que orientava e coordenava a rede de [stakers](/participantes/) do Ethereum antes que começassem a validar blocos reais do Ethereum. Entretanto, não processa transações nem interações de contratos inteligentes, pois isso é feito na camada de execução. A Beacon Chain é responsável por atividades como processamento de blocos e atestações, executação do algoritmo de escolha de bifurcação e gerenciamento de recompensas e penalidades. Leia mais em nossa [página de arquitetura de nós](/developers/docs/nodes-and-clients/node-architecture/#node-comparison). - -## O impacto da Beacon Chain {#beacon-chain-features} - -### Participação (staking) {#introducing-staking} - -A Beacon Chain introduziu a [prova de participação](/developers/docs/consensus-mechanisms/pos/) no Ethereum. Isso mantém o Ethereum protegido e os validadores recebem mais ETH no processo. Na prática, você precisará participar com os seus ETH para ativar o software de validador. Como participante, você executa o software que cria e valida novos blocos na cadeia. - -O processo de participação tem um objetivo semelhante ao da [mineração](/developers/docs/mining/), mas tem muitas diferenças. A mineração exigia grandes investimentos iniciais na forma de um hardware potente e consumo de energia, o que resultava em economias de escala e promovia a centralização. A mineração também não tem como garantia uma exigência de bloqueio de ativos, o que limita a capacidade do protocolo de punir os malfeitores após um ataque. - -A transição para a prova de participação tornou o Ethereum consideravelmente mais seguro e descentralizado, em comparação com a prova de trabalho. Quanto mais pessoas participarem da rede, mais descentralizada e segura contra ataques ela será. - -E utilizar a prova de participação como mecanismo de consenso é um componente fundamental para [o Ethereum seguro, ecológico e dimensionável que temos agora](/roadmap/vision/). - - - Se você estiver interessado em se tornar um validador e ajudar a manter o Ethereum seguro, saiba mais sobre o conceito de participação. - - -### Preparação para a fragmentação {#setting-up-for-sharding} - -Desde que a Beacon Chain se fundiu à rede principal original do Ethereum, a comunidade Ethereum começou tentar dimensionar a rede. - -A prova de participação tem a vantagem de manter um registro de todos os produtores de blocos aprovados a qualquer momento, cada um com ETH participado. Esse registro prepara o cenário para a capacidade de dividir e conquistar, mas dividir de forma confiável as responsabilidades específicas da rede. - -Essa responsabilidade contrasta com a prova de trabalho, em que os mineradores não têm nenhuma obrigação com a rede e podem interromper a mineração e desligar o software do nó permanentemente, em um instante, sem repercussão. Também não há registro de proponentes de blocos conhecidos e nenhuma maneira confiável de dividir as responsabilidades da rede com segurança. - -[Mais sobre fragmentação](/roadmap/danksharding/) - -## Relação entre as melhorias {#relationship-between-upgrades} - -As melhorias do Ethereum estão, de certa forma, relacionadas. Vamos recapitular como a Beacon Chain afeta as outras melhorias. - -### Beacon Chain e A Fusão {#merge-and-beacon-chain} - -No começo, a Beacon Chain existia separadamente da rede principal do Ethereum, mas ocorreu uma fusão em 2022. - - - A integração - - -### Fragmentos e a Beacon Chain {#shards-and-beacon-chain} - -As cadeias de fragmentação apenas podem ser introduzidas no ecossistema Ethereum por meio do estabelecimento de um mecanismo de consenso de prova de participação. A Beacon Chain introduziu a participação, que se "fundiu" com a rede principal, abrindo caminho para a fragmentação, de forma a ajudar a dimensionar ainda mais o Ethereum. - - - Cadeias de fragmentos - - -## Leituras adicionais - -- [Mais informações sobre as futuras atualizações do Ethereum](/roadmap/vision) -- [Mais sobre arquitetura de nós](/developers/docs/nodes-and-clients/node-architecture) -- [Mais sobre prova de participação](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/pt-br/roadmap/future-proofing/index.md b/src/content/translations/pt-br/roadmap/future-proofing/index.md deleted file mode 100644 index 0a87ed40827..00000000000 --- a/src/content/translations/pt-br/roadmap/future-proofing/index.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: Preparação do Ethereum para o futuro -description: Essas melhorias consolidam o Ethereum como a camada de base resiliente e descentralizada para o futuro, seja ele qual for. -lang: pt-br -image: ../../../../../assets/roadmap/roadmap-future.png -alt: "Planejamento Ethereum" -template: roadmap ---- - -Algumas partes do planejamento não são necessariamente obrigatórias para dimensionar ou proteger o Ethereum no curto prazo, mas preparam o Ethereum para a estabilidade e a confiabilidade no futuro. - -## Resistência quântica {#quantum-resistance} - -Parte da criptografia que protege o Ethereum atual será comprometida quando a computação quântica se tornar uma realidade. Embora os computadores quânticos estejam provavelmente a décadas de se tornarem uma ameaça genuína à criptografia moderna, o Ethereum tem sido desenvolvido para ser seguro nos próximos séculos. Isso significa tornar o [Ethereum resistente ao quântico](https://consensys.net/blog/developers/how-will-quantum-supremacy-affect-blockchain/) o mais rápido possível. - -O desafio enfrentado pelos desenvolvedores do Ethereum é que o protocolo atual de prova de participação depende de um esquema de assinatura muito eficiente, conhecido como BLS, para agregar votos em blocos válidos. Esse esquema de assinatura é quebrado por computadores quânticos, mas as alternativas quânticas resistentes não são tão eficientes. - -Os [esquemas de compromisso "KZG"](/roadmap/danksharding/#what-is-kzg) utilizados em diversos lugares no Ethereum para gerar segredos criptográficos são conhecidos por serem vulneráveis ao quântico. Atualmente, isso é contornado por meio da utilização de "configurações confiáveis", em que muitos usuários geram uma aleatoriedade que não pode ser revertida por um computador quântico. Entretanto, a solução ideal seria simplesmente incorporar a criptografia quântica segura. Há duas abordagens principais que poderiam se tornar substitutos eficientes para o esquema BLS: assinatura [com base em STARK](https://hackmd.io/@vbuterin/stark_aggregation) e [em malha](https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-lattice-encryption-326ac66e3175). Essas abordagens ainda estão sendo pesquisadas e desenvolvidas. - - Leia sobre o KZG e as configurações confiáveis - -## Ethereum mais simples e mais eficiente {#simpler-more-efficient-ethereum} - -A complexidade cria oportunidades para bugs ou vulnerabilidades que podem ser explorados por invasores. Portanto, parte do planejamento é simplificar o Ethereum e remover códigos que permaneceram ao longo de diversas melhorias, mas que não são mais necessários ou podem ser aprimorados. Os desenvolvedores conseguem manter e aplicar lógica de uma maneira mais fácil com uma base de código mais enxuta e simples. - -Diversas atualizações serão feitas na [Máquina Virtual do Ethereum (EVM)](/developers/docs/evm) para torná-la mais simples e eficiente. Isso inclui a [remoção do código de operação SELFDESTRUCT](https://hackmd.io/@vbuterin/selfdestruct), um comando raramente utilizado que não é mais necessário e, em algumas circunstâncias, pode ser perigoso de usar, especialmente quando combinado com outras melhorias futuras do modelo de armazenamento do Ethereum. Os clientes Ethereum também ainda são compatíveis com alguns tipos de transações antigas que agora podem ser completamente removidas. A maneira como o gás é calculado também pode ser aprimorada e podem ser introduzidos métodos mais eficientes para a aritmética que serve como base para algumas operações criptográficas. - -Da mesma forma, há atualizações que podem ser feitas em outras partes dos clientes atuais do Ethereum. Um exemplo é que os clientes atuais de execução e consenso utilizam um tipo diferente de compactação de dados. Quando o esquema de compactação for unificado em toda a rede, será muito mais fácil e intuitivo compartilhar dados entre clientes. - -## Progresso atual {#current-progress} - -A maioria das melhorias necessárias para preparar o Ethereum para o futuro ainda está em fase de pesquisa e poderá demorar diversos anos para implementação. Melhorias como a remoção do SELF-DESTRUCT e a harmonização do esquema de compactação utilizado na execução e nos clientes de consenso provavelmente ocorrerão antes da criptografia quântica resistente. - -**Leitura adicional** - -- [Gás](/developers/docs/gas) -- [EVM](/developers/docs/evm) -- [Estruturas de dados](/developers/docs/data-structures-and-encoding) diff --git a/src/content/translations/pt-br/roadmap/index.md b/src/content/translations/pt-br/roadmap/index.md deleted file mode 100644 index 78d557f737e..00000000000 --- a/src/content/translations/pt-br/roadmap/index.md +++ /dev/null @@ -1,117 +0,0 @@ ---- -title: Planejamento Ethereum -description: O caminho para mais escalabilidade, segurança e sustentabilidade no Ethereum. -lang: pt-br -template: roadmap -image: ../../../../assets/roadmap/roadmap-main.png -alt: "Planejamento Ethereum" -summaryPoints: -buttons: - - label: Melhorias adicionais - toId: próximas-alterações - - label: Melhorias anteriores - to: /history/ - variant: descrição ---- - -O Ethereum já é uma plataforma poderosa para a coordenação global, mas ainda está sendo aprimorado. Um conjunto ambicioso de melhorias atualizará o Ethereum da forma atual em uma plataforma totalmente dimensionada e com a máxima resiliência. Essas melhorias estão definidas no planejamento do Ethereum. - -**Para saber mais sobre as melhorias anteriores do Ethereum, acesse a nossa página [Histórico](/history/)** - -## Quais serão as próximas alterações no Ethereum? {#what-changes-are-coming} - -O planejamento do Ethereum descreve as melhorias específicas que serão feitas no protocolo no futuro. Em geral, o planejamento oferecerá os benefícios descritos a seguir aos usuários do Ethereum: - - - - - - - - -## Por que o Ethereum precisa de um planejamento? {#why-does-ethereum-need-a-roadmap} - -O Ethereum recebe melhorias regulares que aprimoram a escalabilidade, a segurança ou a sustentabilidade. Um dos principais pontos fortes do Ethereum é a adaptação à medida que novas ideias surgem a partir de pesquisa e desenvolvimento. A adaptabilidade confere ao Ethereum a flexibilidade para enfrentar os desafios emergentes e acompanhar os avanços tecnológicos mais revolucionários. - - - -O planejamento é, em grande parte, o resultado de anos de trabalho de pesquisadores e desenvolvedores, pois o protocolo é muito técnico, mas qualquer pessoa motivada pode participar. As ideias geralmente começam como discussões em um fórum, como [ethresear.ch](https://ethresear.ch/), [Ethereum magicians](https://www.figma.com/exit?url=https%3A%2F%2Fethereum-magicians.org%2F) ou no servidor Eth R&D no Discord. Elas podem ser respostas a novas vulnerabilidades constatadas, sugestões de organizações que trabalham na camada de aplicativos (como dApps e corretoras) ou de atritos conhecidos junto a usuários finais (como custos ou velocidades de transação). Quando essas ideias amadurecem, elas podem ser apresentadas como [Propostas de melhorias do Ethereum] (https://eips.ethereum.org/). Tudo isso é feito abertamente, e qualquer pessoa da comunidade pode dar sua opinião, a qualquer momento. - -[Mais sobre a governança do Ethereum](/governance/) - - - - -

O que era ETH2?

- -

O termo "Eth2" era normalmente usado para descrever o futuro do Ethereum antes da mudança para a prova de participação, mas foi eliminado em favor de uma terminologia mais exata. Originalmente, era utilizado para diferenciar a rede Ethereum antes da mudança para a prova de participação e a rede depois, ou às vezes para se referir aos diferentes clientes Ethereum (os clientes de execução eram às vezes chamados de clientes ETH1 e os clientes de consenso eram às vezes chamados de clientes ETH2).

- -
- -## O planejamento do Ethereum mudará ao longo do tempo? {#will-ethereums-roadmap-change-over-time} - -Sim, quase certamente. O planejamento é o plano atual de atualização do Ethereum, abrangendo planos futuros e de curto prazo. Esperamos que o planejamento mude à medida que novas informações e tecnologias sejam disponibilizadas. - -Pense no planejamento do Ethereum como um conjunto de intenções para aprimorar o Ethereum. É a melhor hipótese dos principais pesquisadores e desenvolvedores sobre o melhor caminho a seguir no Ethereum. - -## Quando o planejamento será finalizado? {#when-will-the-roadmap-be-finished} - -A Ethereum implementará algumas melhorias nos próximos seis meses (por exemplo, saques de participação); outras são de menos prioridade e provavelmente não serão implementadas nos próximos 5 a 10 anos (por exemplo, resistência à tecnologia quântica). É difícil prever o momento exato de cada melhoria, pois muitos itens do planejamento são trabalhados em paralelo e desenvolvidos em velocidades diferentes. A urgência de uma melhoria também pode mudar ao longo do tempo, dependendo de fatores externos (por exemplo, um avanço repentino no desempenho e na disponibilidade de computadores quânticos pode tornar a criptografia resistente a quânticos mais urgente). - -Uma maneira de pensar sobre o desenvolvimento do Ethereum é por analogia à evolução biológica. É mais provável que uma rede capaz de se adaptar a novos desafios e manter a adequação seja bem-sucedida do que uma resistente a mudanças, embora, à medida que a rede se torne cada vez mais eficiente, dimensionável e segura, sejam necessárias menos alterações no protocolo. - -## Preciso fazer algo quando uma melhoria é implementada? {#do-i-have-to-do-anything-when-there-is-an-upgrade} - -As melhorias normalmente não afetam os usuários finais, exceto ao proporcionar melhores experiências de usuário e um protocolo mais seguro e talvez mais opções de como interagir com o Ethereum. Os usuários finais não são obrigados a participar ativamente de uma melhoria, nem a fazer nada para proteger seus ativos. Os operadores de nós precisarão atualizar seus clientes para se prepararem para uma melhoria. Algumas melhorias podem gerar mudanças para os desenvolvedores de aplicativos. Por exemplo, as melhorias de expiração do histórico podem fazer com que os desenvolvedores de aplicativos obtenham dados históricos de novas fontes. - -## E quanto ao Verge, Splurge etc? {#what-about-the-verge-splurge-etc} - -[Vitalik Buterin propôs uma visão para o planejamento do Ethereum](https://twitter.com/VitalikButerin/status/1588669782471368704) que foi organizada em diversas categorias vinculadas pelos efeitos na arquitetura do Ethereum. Ela inclui: - -- A Fusão: melhorias relacionadas à mudança de prova de trabalho para prova de participação -- A Surge: melhorias relacionadas à escalabilidade por meio de rollups e fragmentação de dados -- A Scourge: melhorias relacionadas à resistência à censura, riscos de protocolo e descentralização do MEV -- A Verge: melhorias relacionadas à verificação de blocos com mais facilidade -- A Purge: melhorias relacionadas à redução dos custos computacionais dos nós em execução e à simplificação do protocolo -- A Splurge: outras melhorias que não se enquadram nas categorias anteriores. - -Decidimos não usar essa terminologia porque queríamos usar um modelo mais simples e mais centrado no usuário. Embora usemos uma linguagem centrada no usuário, a visão permanece idêntica à proposta por Vitalik. - -## E quanto à fragmentação? {#what-about-sharding} - -A fragmentação divide o blockchain do Ethereum de modo que subconjuntos de validadores sejam responsáveis apenas por uma fração do total de dados. Originalmente, essa era a forma de escalabilidade do Ethereum. Entretanto, os rollups da camada 2 se desenvolveram muito mais rápido do que o esperado e já proporcionaram um grande aumento de escala, e proporcionarão muito mais após a implementação do Proto-Danksharding. Isso significa que as "cadeias de fragmentos" não são mais necessárias e foram retiradas do planejamento. - -## Procurando por melhorias técnicas específicas? {#looking-for-specific-technical-upgrades} - -- [Danksharding](/roadmap/danksharding) - o Danksharding torna os rollups da camada 2 muito mais baratos para os usuários ao adicionar "blobs" de dados aos blocos Ethereum. -- [Saques de participação](/staking/withdrawals) - a melhoria Shanghai/Capella habilitou saques de participação no Ethereum, permitindo que as pessoas desbloqueassem seus ETHs participados. -- [Finalidade de um único espaço](/roadmap/single-slot-finality) - em vez de esperar quinze minutos, os blocos poderiam ser propostos e finalizados no mesmo espaço. Isso é mais conveniente para os aplicativos e muito mais difícil de atacar. -- [Separação entre proponente e construtor](/roadmap/pbs) - a divisão das tarefas de construção e proposta de blocos em validadores separados cria uma maneira mais justa, mais resistente à censura e mais eficiente para que o Ethereum chegue a um consenso. -- [Eleição de líder secreto](/roadmap/secret-leader-election) - a criptografia inteligente pode ser utilizada para garantir que a identidade do proponente do bloco atual não seja tornada pública, protegendo-o de determinados tipos de ataque. -- [Abstração da conta](/roadmap/account-abstraction) - a abstração da conta é uma classe de melhorias que oferece suporte a carteiras de contratos inteligentes nativamente no Ethereum, em vez de precisar usar um middleware complexo. -- [Verkle Trees](/roadmap/verkle-trees) - As Verkle Trees são uma estrutura de dados que pode ser utilizada para habilitar clientes sem estado no Ethereum. Esses clientes "sem estado" exigirão uma quantidade mínima de espaço de armazenamento, mas ainda poderão verificar novos blocos. -- [Sem estado](/roadmap/statelessness) - os clientes sem estado poderão verificar novos blocos sem precisar armazenar grandes quantidades de dados. Isso proporcionará todos os benefícios da execução de um nó a apenas uma pequena fração dos custos atuais. diff --git a/src/content/translations/pt-br/roadmap/merge/index.md b/src/content/translations/pt-br/roadmap/merge/index.md deleted file mode 100644 index 41adf859154..00000000000 --- a/src/content/translations/pt-br/roadmap/merge/index.md +++ /dev/null @@ -1,228 +0,0 @@ ---- -title: A Fusão -description: Aprenda sobre A Fusão — quando a Rede principal do Ethereum adotou a prova de participação. -lang: pt-br -template: upgrade -image: .../../../assets/upgrades/merge.png -summaryPoint1: A Rede principal do Ethereum usa prova de participação, mas nem sempre foi esse o caso. -summaryPoint2: A melhoria do mecanismo original de prova de trabalho para prova de participação foi chamada de The Merge, ou seja, A Fusão. -summaryPoint3: A Fusão se refere à fusão original da Rede Principal do Ethereum, com uma cadeia de blocos de prova de participação separada chamada Beacon Chain, agora existente como uma cadeia. -summaryPoint4: A Fusão reduziu o consumo de energia do Ethereum em ~99,95%. ---- - - - A Fusão foi executada em 15 de setembro de 2022. Isto completou a transição do Ethereum para o consenso de prova de participação, depreciando oficialmente a prova de trabalho, e reduzindo o consumo de energia em ~99,95%. - - -## O que foi A Fusão? {#what-is-the-merge} - -A Fusão foi a junção da camada de execução original do Ethereum (a Rede principal que existe desde a [origem](/history/#frontier)) com a sua nova camada de consenso de prova de participação, a Beacon Chain. Ele eliminou a necessidade de mineração que faz uso intensivo de energia e, em vez disso, permitiu que a rede fosse protegida usando participação de ETH. Foi uma etapa realmente emocionante para a realização da visão do Ethereum — mais escalabilidade, segurança e sustentabilidade. - - - -Inicialmente, a [Beacon Chain](/roadmap/beacon-chain/) foi enviada separadamente da [Mainnet](/glossary/#mainnet). A rede principal da Ethereum - com todas as suas contas, saldos, contratos inteligentes e estado da cadeia de blocos - continuou a ser protegida pela [prova de trabalho](/developers/docs/consensus-mechanisms/pow/), mesmo enquanto a Beacon Chain funcionava em paralelo usando a [prova de participação](/developers/docs/consensus-mechanisms/pos/). A Fusão foi quando esses dois sistemas finalmente se uniram, e a prova de trabalho foi permanentemente substituída pela prova de participação. - -Imagine que o Ethereum é uma espaçonave que foi lançada antes que estivesse pronta para uma viagem interestelar. Com a Beacon Chain, a comunidade construiu um novo motor e um casco reforçado. Após muitos testes, chegou a hora de trocar o novo motor a quente pelo antigo em pleno voo. Isso integrou o novo e mais eficiente motor à nave existente, o que lhe permitiu cruzar anos-luz e conquistar o universo. - -## Fusão com a Rede principal {#merging-with-mainnet} - -A prova de trabalho protegeu a rede principal do Ethereum desde sua origem até A Fusão. Isso permitiu que a cadeia de blocos do Ethereum com a qual todos estamos acostumados surgisse em julho de 2015 com todos os seus recursos familiares — transações, contratos inteligentes, contas, etc. - -Ao longo da história do Ethereum, os desenvolvedores se prepararam para uma eventual transição da prova de trabalho para a prova de participação. Em 1 de dezembro de 2020, a Beacon Chain foi criada como uma cadeia de blocos separada da Rede principal, rodando em paralelo. - -A Beacon Chain não estava processando originalmente as transações da Rede principal. Em vez disso, ela estava chegando ao consenso sobre seu próprio estado ao concordar com validadores ativos e seus saldos de conta. Após extensos testes, chegou a hora da Beacon Chain chegar a um consenso sobre os dados do mundo real. Após A Fusão, a Beacon Chain tornou-se o mecanismo de consenso para todos os dados da rede, incluindo transações da camada de execução e saldos de contas. - -A integração representou a mudança oficial para o uso da Beacon Chain como o motor de produção de blocos. A mineração não é mais o meio de produzir blocos válidos. Em vez disso, os validadores da prova de participação adotaram esse papel e agora são responsáveis por processar a validade de todas as transações e propor blocos. - -Nenhuma história foi perdida na Fusão. À medida que a Rede principal se uniu com a Beacon Chain, ela também integrou todo o histórico transacional do Ethereum. - - -Essa transição para a prova de participação mudou o modo como o ether é emitido. Saiba mais sobre Emissão de ether antes de depois do The Merge. - - -### Usuários e titulares {#users-holders} - -**A Fusão não mudou nada para titulares/usuários.** - -_Vale a pena repetir_: como usuário ou titular de ETH, ou qualquer outro ativo digital no Ethereum, bem como participantes não operantes dos nós, **você não precisa fazer nada com seus fundos ou carteira para dar conta da Fusão.** ETH é apenas ETH. Não existe algo como "ETH antigo"/"ETH novo" ou "ETH1"/"ETH2" e as carteiras funcionam exatamente da mesma forma após A Fusão como antes — pessoas dizendo a você o contrário provavelmente são golpistas. - -Apesar de trocar a prova de trabalho, toda a história do Ethereum desde a origem permaneceu intacta e inalterada com a transição para a prova de participação. Quaisquer fundos mantidos em sua carteira antes da Fusão ainda estarão acessíveis após A Fusão. **Nenhuma ação é necessária da sua parte para fazer parte dessa atualização revolucionária.** - -[Mais sobre segurança no Ethereum](/security/#eth2-token-scam) - -### Operadores de nós e desenvolvedores de dapps {#node-operators-dapp-developers} - - - -As principais ações incluem: - -1. Execute ao mesmo tempo um cliente de consenso e um cliente de execução; pontos de extremidade de terceiros para obter dados de execução não funcionam mais desde A Fusão. -2. Autentique os clientes de execução e de consenso com um segredo JWT compartilhado para que eles possam se comunicar com segurança. -3. Defina um endereço de "destinatário das taxas" para receber dicas sobre suas taxas de transação ganhas / MEV. - -Não completar os dois primeiros itens acima fará com que seu nó seja visto como "offline" até que ambas as camadas sejam sincronizadas e autenticadas. - -Não definir um "destinatário de taxa" ainda permitirá que seu validador se comporte como de costume, mas você perderá comissões de taxas não queimadas e qualquer MEV que você teria ganhado em blocos que seu validador propõe. - - - - -Até a integração, um cliente de execução (como Geth, Erigon, Besu ou Nethermind) era suficiente para receber, validar devidamente e propagar blocos sendo transmitidos pela rede. _Após A Fusão_, a validade das transações contidas em uma carga de execução agora também depende da validade do "bloco de consenso" que ele contém. - -Como resultado, um nó completo do Ethereum agora requer um cliente de execução e um cliente de consenso. Esses dois clientes trabalham juntos usando uma nova API do mecanismo. A API do mecanismo requer autenticação usando um segredo JTW, que é fornecido a ambos os clientes, permitindo uma comunicação segura. - -Os principais itens de ação incluem: - -- Instalar um cliente de consenso além de um cliente de execução -- Autenticar clientes de execução e de consenso com um segredo JWT compartilhado para que eles possam se comunicar com segurança uns com os outros. - -Não completar os itens acima resultará com que seu nó pareça estar "offline" até que ambas as camadas sejam sincronizadas e autenticadas. - - - - - -A Fusão veio com alterações no consenso, que também inclui alterações relacionadas a:< - -
    -
  • estrutura de bloco
  • -
  • timing de espaço/bloco
  • -
  • alterações de opcode
  • -
  • fontes de aleatoriedade em cadeia
  • -
  • conceito de cabeçalho seguro e blocos finalizados
  • -
- -Para obter mais informações, leia esta publicação de Tim Beiko sobre How The Merge Impacts Ethereum’s Application Layer (Como a Fusão afeta a camada de aplicação do Ethereum). - -
- -## A Fusão e o consumo de energia {#merge-and-energy} - -A Fusão marcou o fim da prova de trabalho para o Ethereum e iniciou a era do Ethereum mais sustentável e ecológico. O consumo de energia do Ethereum reduziu cerca de 99,95%, tornando o Ethereum uma blockchain verde. Descubra mais sobre [Consumo de energia na rede Ethereum](/energy-consumption/). - -## A Fusão e a escalabilidade {#merge-and-scaling} - -The Merge também preparou o terreno para futuras atualizações de escalabilidade que não eram possíveis na prova de trabalho, deixando o Ethereum mais próximo de alcançar a escalabilidade, segurança e sustentabilidade descritas na [Visão do Ethereum](/roadmap/vision/). - -## Concepções erradas sobre A Fusão {#misconceptions} - - - -Existem dois tipos de nós no Ethereum: nós que podem propor blocos e nós que não podem. - -Os nós que propõem blocos são apenas um pequeno número dos nós totais no Ethereum. Esta categoria inclui nós de mineração sob a prova de trabalho (PoW) e nós validadores sobre a prova de participação (PoS). Esta categoria requer comprometer recursos econômicos (como o poder de hash da GPU em prova de trabalho ou ETH em prova de participação) em troca da capacidade de propor, ocasionalmente, o próximo bloco e ganhar recompensas de protocolo. - -Os outros nós na rede (por exemplo, a maioria) não é obrigada a comprometer quaisquer recursos econômicos para além de um computador com 1 a 2 TB de armazenamento disponível e uma conexão com a internet. Esses nós não propõem blocos, mas eles ainda desempenham um papel crítico na segurança da rede, mantendo todos os proponentes de bloco responsáveis, ouvindo novos blocos e verificando sua validade na chegada de acordo com as regras de consenso da rede. Se o bloco for válido, o nó continua a propagá-lo pela rede. Se o bloco é inválido por qualquer motivo, o software do nó irá ignorá-lo como inválido e irá parar sua propagação. - -Qualquer pessoa pode executar um nó que não produz blocos, em qualquer mecanismo de consenso (prova de trabalho ou prova de participação); isso é amplamente incentivado para todos os usuários, se tiverem os meios. A execução de um nó é imensamente valiosa para o Ethereum e oferece benefícios adicionais a qualquer indivíduo executando um, como maior segurança, privacidade e resistência à censura. - -A capacidade de qualquer pessoa de executar seu próprio nó é absolutamente essencial para manter a descentralização da rede Ethereum. - -Mais detalhes sobre como executar seu próprio nó - - - - - -Taxas de gás são um produto da demanda de rede relativa à capacidade da rede. A Fusão depreciou o uso da prova de trabalho, passando para a prova de participação por consenso, mas não alterou significativamente nenhum parâmetro que influencie diretamente a capacidade da rede ou a taxa de transferência. - -Com um planejamento centrado em rollup, os esforços se concentram em dimensionar a atividade do usuário na camada 2 ao habilitar a rede principal da camada 1 como uma camada de estabelecimento descentralizada e segura, otimizada para o armazenamento de dados de rollup para ajudar a fazer com que as transações de rollup sejam exponencialmente mais acessíveis. A transição para a prova de participação é um precursor crítico para a realização desse objetivo. Mais informações sobre gás e taxas. - - - - -A "velocidade" da transação pode ser medida de poucas maneiras, incluindo o tempo para ser incluída em um bloco e o tempo para finalização. Esses dois fatores mudam ligeiramente, mas não de uma forma que os usuários perceberão. - -Historicamente, na prova de trabalho, o objetivo era ter um bloco novo a cada ~13,3 segundos. Já na prova de participação, os espaços ocorrem precisamente a cada 12 segundos, e cada um deles é uma oportunidade para um validador publicar um bloco. A maioria dos espaços tem blocos, mas não necessariamente todos (isto é, um validador está offline). Na prova de participação, os blocos são produzidos ~10% mais frequentemente do que na prova de trabalho. Essa foi uma mudança bastante insignificante e é pouco provável que seja notada pelos usuários. - -A prova de participação introduziu o conceito de finalidade da transação que não existia anteriormente. Na prova de trabalho, a capacidade de reverter um bloco fica exponencialmente mais difícil com cada bloco de passagem minerado em cima de uma transação, mas nunca chega a zero. Sob a prova de participação, os blocos são agrupados em épocas (períodos de tempo de 6,4 minutos contendo 32 chances de blocos) que os validadores votam. Quando uma época termina, os validadores votam se devem considerar a época "justificada". Se os validadores concordarem em justificar a época, ela será finalizada na próxima época. Desfazer transações finalizadas é economicamente inviável, pois exigiria obter e queimar mais de um terço do total de ETH colocado. - - - - - -Inicialmente, após a Fusão, os participantes podiam acessar apenas as comissões de taxas e o MEV obtidos como resultado de propostas de bloco. Essas recompensas são creditadas em uma conta de não participação controlada pelo validador (conhecido como destinatário da taxa), e ficam disponíveis imediatamente. Essas recompensas são separadas das recompensas do protocolo pela execução das obrigações do validador. - -Desde a melhoria da rede Shanghai/Capella, os participantes agora podem designar um endereço de saque para começar a receber pagamentos automáticos de qualquer saldo de participação excedente (ETH superior a 32 de recompensas do protocolo). Essa melhoria também permitiu que um validador desbloqueasse e recuperasse todo o saldo ao sair da rede. - -Mais sobre saques de participação - - - - -Como a melhoria do Shanghai/Capella permitiu saques, os validadores são incentivados a sacar o saldo de participação superior a 32 ETH, já que esses fundos não aumentam o rendimento e são bloqueados. Dependendo da APR (determinada pelo total de ETH participado), eles podem ser incentivados a sair de seus validadores para recuperar todo o saldo ou potencialmente participar ainda mais utilizando as recompensas, de forma a obter mais rendimento. - -Uma advertência importante aqui é que as saídas completas do validador são limitadas pelo protocolo, e apenas um número específico de validadores pode sair por época (a cada 6,4 minutos). Esse limite varia de acordo com o número de validadores ativos, mas chega a aproximadamente 0,33% do total de ETH participado que pode ser sacado da rede em um único dia. - -Isso evita um êxodo em massa dos fundos participados. Além disso, impede que um possível invasor com acesso a uma grande parte do total de ETH participado cometa uma ofensa passível de corte e saia/saque todos os saldos do validador infrator na mesma época, antes que o protocolo possa aplicar a penalidade de corte. - -A APR também é intencionalmente dinâmica, o que permite que um mercado de participantes equilibre o quanto estão dispostos a receber para ajudar a proteger a rede. Se a taxa for muito baixa, os validadores sairão a uma taxa limitada pelo protocolo. Gradualmente, isso aumentará a APR para todos os que permanecerem, atraindo participantes novos ou antigos novamente. - - -## O que aconteceu com o "Eth2"? {#eth2} - -O termo "Eth2" foi descontinuado. Após unir "Eth1" e "Eth2" em uma única cadeia, não há mais necessidade de distinguir entre duas redes Ethereum; agora existe apenas o Ethereum. - -Para diminuir a confusão, a comunidade atualizou estes termos: - -- O "Eth1" agora é a "camada de execução", que lida com transações e execução. -- O "Eth2" é agora a "camada de consenso", que lida com o consenso da prova de participação. - -Estas atualizações de terminologia apenas alteram as convenções de nomenclatura; isso não altera os objetivos ou o roteiro do Ethereum. - -[Saiba mais sobre a renomeação "Eth2"](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) - -## Relação entre as melhorias {#relationship-between-upgrades} - -Todas as melhorias do Ethereum estão, de alguma forma, interrelacionadas. Vamos então recapitular como a fusão se relaciona com as outras melhorias. - -### A Fusão e a Beacon Chain {#merge-and-beacon-chain} - -A Fusão representa a adoção formal do Beacon Chain como a nova camada de consenso para a camada de execução da Rede principal original. Desde A Fusão, os validadores são designados a proteger a Rede principal do Ethereum, e a mineração na [prova de trabalho](/developers/docs/consensus-mechanisms/pow/) não é mais um meio válido de produção em bloco. - -Em vez disso, os blocos são propostos validando nós que colocaram o ETH em troca do direito de participar do consenso. Essas atualizações preparam o cenário para futuras atualizações de escalabilidade, incluindo fragmentação. - - - A Beacon Chain - - -### A Fusão e a atualização do Shanghai {#merge-and-shanghai} - -Para simplificar e maximizar o foco em uma transição bem-sucedida para a prova de participação, a atualização da Fusão não incluiu certos recursos previstos, como a possibilidade de retirar o ETH colocado. Essa funcionalidade foi habilitada separadamente com a melhoria Shanghai/Capella. - -Se tiver curiosidade, assista ao vídeo [What Happens After The Merge](https://youtu.be/7ggwLccuN5s?t=101) (O que ocorre após a Fusão), apresentado por Vitalik no evento ETHGlobal de abril de 2021. - -### A Fusão e a fragmentação {#merge-and-data-sharding} - -Originalmente, o plano era trabalhar na fragmentação antes da Fusão para atender a escalabilidade. No entanto, com a expansão das [soluções de escalabilidade da camada 2](/layer-2/), a prioridade passou a ser a troca da prova de trabalho pela prova de participação. - -Os planos para fragmentação estão evoluindo rapidamente, mas dado o surgimento e o sucesso das tecnologias de camada 2 para escalar a execução de transação, os planos de fragmentação mudaram para encontrar a maneira mais otimizada de distribuir a carga de armazenamento dos dados de chamadas compactadas em contratos rollup, permitindo um crescimento exponencial da capacidade da rede. Isso não seria possível sem uma primeira transição para a prova de participação. - - - Fragmentação - - -## Leitura adicional {#further-reading} - - - - diff --git a/src/content/translations/pt-br/roadmap/scaling/index.md b/src/content/translations/pt-br/roadmap/scaling/index.md deleted file mode 100644 index 758bf5c1c65..00000000000 --- a/src/content/translations/pt-br/roadmap/scaling/index.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Escalar o Ethereum -description: Rollups agrupam transações fora da cadeia, o que reduz os custos para o usuário. Entretanto, a maneira como rollups usam os dados atualmente é muito cara, o que limita a acessibilidade das transações. Proto-Danksharding corrige isso. -lang: pt-br -image: ../../../../../assets/roadmap/roadmap-transactions.png -alt: "Planejamento Ethereum" -template: roadmap ---- - -A escalabilidade do Ethereum é feita por meio de [camadas 2s](/layer-2/#rollups) (também conhecidas como rollups), que agrupam transações em lote e enviam o resultado para o Ethereum. Embora os rollups sejam até oito vezes mais baratos do que a rede principal do Ethereum, é possível otimizar ainda mais os rollups de forma a reduzir os custos para os usuários finais. Os rollups também dependem de alguns componentes centralizados que os desenvolvedores podem remover à medida que os rollups se desenvolvem. - - -
    -
  • Os rollups atuais são ~3-8x mais baratos do que a camada 1 da Ethereum
  • -
  • ZK-rollups em breve reduzirão as taxas em ~40-100x
  • -
  • As próximas alterações no Ethereum oferecerão ~100-1000x a mais de escalabilidade
  • -
  • Os usuários devem se beneficiar com transações que custam menos do que $0,001
  • -
-
- -## Tornar os dados mais baratos {#making-data-cheaper} - -Os rollups coletam um grande número de transações, executam elas e enviam os resultados ao Ethereum. Isso gera muitos dados que precisam estar disponíveis abertamente para que qualquer pessoa possa executar as transações por conta própria e verificar se o operador de rollup foi honesto. Se alguém encontrar uma discrepância, pode abrir uma contestação. - -### Proto-Danksharding {#proto-danksharding} - -Os dados de rollup são armazenados no Ethereum permanentemente, o que é caro. Mais de 90% do custo de transação que os usuários pagam em rollups se deve a esse armazenamento de dados. Para reduzir os custos de transação, podemos mover os dados para um novo armazenamento "blob" temporário. Os blobs são mais baratos porque não são permanentes; eles são excluídos do Ethereum assim que não são mais necessários. O armazenamento de dados de rollup no longo prazo passa a ser responsabilidade das pessoas que precisam deles, como operadores de rollup, corretoras, serviços de indexação etc. A adição de transações de blob ao Ethereum faz parte de uma melhoria conhecida como "Proto-Danksharding". Espera-se que seja implementada relativamente em breve, talvez no final de 2023. - -Depois que as transações de blob se tornarem parte do protocolo Ethereum por meio do Proto-Danksharding, será possível adicionar muitos blobs aos blocos Ethereum. Esse será outro aumento substancial (>100x) da taxa de transferência da Ethereum e uma redução dos custos de transação. - -### Danksharding {#danksharding} - -O segundo estágio da expansão dos dados de blob é complicado, porque exige novos métodos para verificar se os dados de rollup estão disponíveis na rede e depende de validadores que realizem a separação das responsabilidades de construção e proposição de blocos. Isso também exige uma maneira de provar criptograficamente que os validadores verificaram pequenos subconjuntos dos dados do blob. - -Essa segunda etapa é conhecida como [“Danksharding”](/roadmap/danksharding/). É provável que a implementação total disso ainda demore muitos anos. O Danksharding depende de outros desenvolvimentos, como a [separação da construção e da proposta de bloco](/roadmap/pbs), e novos designs de rede que permitem que a rede confirme, de maneira eficaz, que os dados estão disponíveis por meio de uma amostragem aleatória de alguns kilobytes por vez, conhecida como [amostragem de disponibilidade de dados (DAS)](/developers/docs/data-availability). - -Mais sobre Danksharding - -## Descentralização de rollups {#decentralizing-rollups} - -[Os rollups](/layer-2) já estão dimensionando o Ethereum. Um [ecossistema sofisticado de projetos de rollup](https://l2beat.com/scaling/tvl) está permitindo que os usuários façam transações de forma rápida e barata, com diversas garantias de segurança. Entretanto, os rollups foram inicializados usando sequenciadores centralizados (computadores que fazem todo o processamento e a agregação das transações antes de enviá-las ao Ethereum). Isso é vulnerável à censura, pois os operadores do sequenciador podem ser sancionados, subornados ou comprometidos de qualquer outra forma. Ao mesmo tempo, os [rollups variam](https://l2beat.com) na maneira como validam os dados recebidos. A melhor maneira é os "provadores" enviarem provas de fraude ou de validação, mas nem todos os rollups estão disponíveis ainda. Mesmo os rollups que usam provas de validação/fraude utilizam um pequeno grupo de provadores conhecidos. Portanto, a próxima etapa essencial na escalabilidade do Ethereum é distribuir a responsabilidade pela execução de sequenciadores e provadores entre mais pessoas. - -Mais sobre rollups - -## Progresso atual {#current-progress} - -É provável que o Proto-Danksharding seja um dos primeiros itens do planejamento a ser implementado. As etapas de computação descentralizada necessárias para configurá-lo já estão em andamento e vários clientes implementaram protótipos para processa os dados do blob. É provável que o Danksharding completo esteja a vários anos de distância, pois depende da conclusão de diversos outros itens do planejamento. É provável que a descentralização da infraestrutura de rollup seja um processo gradual. Há muitos rollups diferentes que estão criando sistemas ligeiramente diferentes e que se descentralizarão totalmente a velocidades diferentes. diff --git a/src/content/translations/pt-br/roadmap/security/index.md b/src/content/translations/pt-br/roadmap/security/index.md deleted file mode 100644 index e24bce93d98..00000000000 --- a/src/content/translations/pt-br/roadmap/security/index.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: Um Ethereum mais seguro -description: O Ethereum é a plataforma de contrato inteligente mais segura e descentralizada que existe. Entretanto, ainda existem melhorias que podem ser feitas para que o Ethereum permaneça resiliente a qualquer nível de ataque no futuro. -lang: pt-br -image: ../../../../../assets/roadmap/roadmap-security.png -alt: "Planejamento Ethereum" -template: roadmap ---- - -Ethereum já é uma plataforma muito segura e descentralizada de contrato inteligente. Entretanto, ainda há melhorias que podem ser feitas para que o Ethereum permaneça resiliente a todos os tipos de ataque no futuro. Isso inclui alterações sutis na maneira como os clientes Ethereum lidam com blocos concorrentes, bem como o aumento da velocidade com que a rede considera os blocos como ["finalizados"](/developers/docs/consensus-mechanisms/pos/#finality) (o que significa que não podem ser alterados sem perdas econômicas extremas para um invasor). - -Há também melhorias que tornam as transações de censura muito mais difíceis, fazendo com que os proponentes de blocos não consigam ver o conteúdo real de seus blocos e novas maneiras de identificar quando um cliente está censurando. Juntas, essas melhorias atualizarão o protocolo de prova de participação para que os usuários, de indivíduos a corporações, confiem imediatamente em seus aplicativos, dados e ativos no Ethereum. - -## Saque de staking {#staking-withdrawals} - -A melhoria da prova de trabalho para a prova de participação começou com a "participação" de ETHs dos pioneiros do Ethereum em um contrato de depósito. Esse ETH é utilizado para proteger a rede. Entretanto, esse ETH ainda não pode ser desbloqueado e devolvido aos usuários. Permitir o saque do ETH é uma parte essencial da melhoria da prova de participação. Além de os saques serem um componente essencial de um protocolo de prova de participação totalmente funcional, permitir saques também é apropriado para a segurança do Ethereum, pois permite que os participantes usem suas recompensas de ETH para outros fins que não sejam de participação. Isso significa que os usuários que querem liquidez não precisam depender de derivativos de participação líquida (LSDs), que podem ser uma força centralizadora no Ethereum. Essa melhoria está programada para ser concluída em 12 de abril de 2023. - -Leia sobre saques - -## Defesa contra ataques {#defending-against-attacks} - -Mesmo após os saques, há melhorias que podem ser feitas no protocolo de [prova de participação](/developers/docs/consensus-mechanisms/pos/) do Ethereum. Uma delas é conhecida como [view-merge](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739), um algoritmo de escolha de bifurcação mais seguro que dificulta certos tipos sofisticados de ataque. - -Reduzir o tempo que o Ethereum leva para finalizar os blocos proporcionaria uma melhor experiência ao usuário e evitaria ataques sofisticados de "reorganização", em que os invasores tentam reorganizar blocos muito recentes para obter lucro ou censurar transações específicas. [**Finalidade de espaço único (SSF)**](/roadmap/single-slot-finality/) é uma maneira de minimizar o atraso na finalização. No momento, há 15 minutos de blocos que um invasor poderia, teoricamente, convencer outros validadores a reconfigurar. Com a SSF, há 0. Os usuários, de indivíduos a aplicativos e corretoras, beneficiam-se da garantia rápida de que as transações não serão revertidas, e a rede se beneficia ao desativar toda uma classe de ataques. - -Leia sobre a finalidade de espaço único - -## Defesa contra a censura {#defending-against-censorship} - -A descentralização evita que indivíduos ou pequenos grupos de validadores se tornem muito influentes. Novas tecnologias de participação podem ajudar a garantir que os validadores do Ethereum permaneçam o mais descentralizados possível e, ao mesmo tempo, defendê-los contra falhas de hardware, software e rede. Isso inclui software que compartilha as responsabilidades do validador entre diversos nós. Isso é conhecido como **tecnologia de validador distribuído (DVT)**. Os pools de participação são incentivados a usar a DVT porque ela permite que diversos computadores participem coletivamente da validação, agregando redundância e tolerância a falhas. Ela também divide as chaves do validador entre diversos sistemas, em vez de ter um único operador executando vários validadores. Isso torna mais difícil para os operadores desonestos coordenarem ataques ao Ethereum. Em geral, a ideia é obter benefícios de segurança ao executar validadores como _comunidades_, em vez de indivíduos. - -Leia sobre a tecnologia de validador distribuído - -A implementação da **separação entre proponente e construtor (PBS)** melhorará drasticamente as defesas internas do Ethereum contra a censura. A PBS permite que um validador crie um bloco e outro o transmita pela rede Ethereum. Isso garante que os ganhos dos algoritmos profissionais de construção de blocos que maximizam o lucro sejam compartilhados de forma mais justa em toda a rede, **impedindo que a participação se concentre** nos participantes institucionais de melhor desempenho ao longo do tempo. O proponente do bloco pode selecionar o bloco mais lucrativo oferecido por um mercado de construtores de blocos. Para censurar, um proponente de bloco geralmente teria que escolher um bloco menos lucrativo, o que seria **economicamente irracional e também óbvio para o restante dos validadores** na rede. - -Há potenciais complementos para a PBS, como transações criptografadas e listas de inclusão, que poderiam melhorar ainda mais a resistência do Ethereum à censura. Isso faz com que o construtor e o proponente do bloco não saibam quais são as transações reais incluídas nos respectivos blocos. - -Leia sobre a separação entre proponente e construtor - -## Proteção dos validadores {#protecting-validators} - -É possível que um invasor experiente identifique os próximos validadores e envie spam para impedi-los de propor blocos. Isso é conhecido como um ataque de **negação de serviço (DoS)**. A implementação da [**eleição de líder secreto (SLE)**](/roadmap/secret-leader-election) protegerá contra esse tipo de ataque ao impedir que os proponentes de blocos possam ser conhecidos antecipadamente. Isso funciona ao embaralhar continuamente um conjunto de compromissos criptográficos que representam os proponentes de blocos candidatos e utilizar a ordem deles para determinar qual validador é selecionado, de forma que apenas os validadores saibam a ordem com antecedência. - -Leia sobre a eleição do líder secreto - -## Progresso atual {#current-progress} - -As melhorias de segurança no planejamento estão em estágios avançados de pesquisa, e a implementação ainda vai demorar. As próximas etapas para view-merge, PBS, SSF e SLE são finalizar uma especificação e começar a criação de protótipos. diff --git a/src/content/translations/pt-br/roadmap/user-experience/index.md b/src/content/translations/pt-br/roadmap/user-experience/index.md deleted file mode 100644 index 43a0b795d8e..00000000000 --- a/src/content/translations/pt-br/roadmap/user-experience/index.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: Melhoria da experiência do usuário -description: Para a maioria das pessoas, ainda é complicado usar o Ethereum. Para incentivar a adoção em massa, o Ethereum precisa reduzir drasticamente as barreiras de entrada. Os usuários devem obter os benefícios do acesso descentralizado, sem permissão e resistente à censura ao Ethereum, mas isso precisa ser tão simples quanto usar um aplicativo web2 tradicional. -lang: pt-br -image: ../../../../../assets/roadmap/roadmap-ux.png -alt: "Planejamento Ethereum" -template: roadmap ---- - -É necessário simplificar o uso do Ethereum, desde o gerenciamento de chaves e carteiras até o início das transações. Para facilitar a adoção em massa, o Ethereum precisa aumentar drasticamente a facilidade de uso, permitindo que os usuários tenham acesso ao Ethereum sem permissão e com resistência à censura, com a experiência sem atrito que ocorre ao utilizar aplicativos Web2. - -## Além das frases sementes {#no-more-seed-phrases} - -As contas Ethereum são protegidas por um par de chaves utilizadas para identificar contas (chave pública) e assinar mensagens (chave privada). Uma chave privada é como uma senha mestra, ela permite acesso completo a uma conta Ethereum. Essa é uma maneira diferente de operar para pessoas que têm mais experiência com bancos e aplicativos Web2 e que gerenciam contas em nome de um usuário. Para que o Ethereum alcance a adoção em massa sem depender de terceiros centralizados, deve haver uma maneira direta e sem atritos para que um usuário assuma a custódia de seus ativos e mantenha o controle dos dados sem precisar compreender criptografia de chave pública-privada e gerenciamento de chaves. - -A solução para isso é usar carteiras de contratos inteligentes para interagir com o Ethereum. As carteiras de contratos inteligentes criam maneiras de proteger as contas em caso de perda ou roubo de chaves oportunidades para uma melhor detecção e defesa contra fraudes e permitem que as carteiras obtenham novas funcionalidades. Embora existam carteiras de contratos inteligentes atualmente, elas são difíceis de desenvolver porque o protocolo Ethereum precisa oferecer um melhor suporte. Esse suporte adicional é conhecido como abstração de conta. - -Mais sobre abstração de contas - -## Nós para todos - -Os usuários que executam nós não precisam confiar em terceiros que forneçam dados, e podem interagir de uma maneira rápida, privada e sem permissão com o blockchain do Ethereum. Entretanto, a execução de um nó atualmente exige conhecimento técnico e espaço considerável em disco, o que significa que muitas pessoas precisam confiar em intermediários. - -Há várias melhorias que tornarão a execução dos nós muito mais fácil e sem a necessidade de muitos recursos. A forma como os dados são armazenados será alterada para usar uma estrutura mais eficiente em termos de espaço, conhecida como **Verkle Tree**. Além disso, com [statelessness](/roadmap/statelessness) (sem estado) ou [expiração de dados](/roadmap/statelessness/#data-expiry), os nós do Ethereum não precisarão armazenar uma cópia de todos os dados de estado do Ethereum, o que reduz drasticamente os requisitos de espaço em disco rígido. [Os nós leves](/developers/docs/nodes-and-clients/light-clients/) oferecerão muitos benefícios da execução de um nó completo, mas podem ser executados facilmente em celulares ou em aplicativos simples de navegador. - -Leia sobre Verkle Trees - -Com essas melhorias, as barreiras à execução de um nó são erradicadas de maneira eficaz. Os usuários se beneficiarão do acesso seguro e sem permissão ao Ethereum sem precisar sacrificar espaço perceptível em disco ou CPU no computador ou celular e, ao usarem aplicativos, não precisarão depender de terceiros para obter acesso a dados ou à rede. - -## Progresso atual {#current-progress} - -As carteiras de contratos inteligentes já estão disponíveis, mas são necessárias mais melhorias para torná-las o mais descentralizadas e sem permissão possível. A EIP-4337 é uma proposta desenvolvida, que não exige alteração no protocolo do Ethereum. O principal contrato inteligente necessário para a EIP-4337 foi implementado em março de 2023. - -A ausência completa de estado ainda está em fase de pesquisa e provavelmente levará vários anos para ser implementada. Há vários marcos no caminho para uma condição total sem estado, incluindo a expiração de dados, que podem ser implementados mais cedo. Outros itens do planejamento, como [Verkle Trees](/roadmap/verkle-trees/) e a [separação entre proponente e construtor](/roadmap/pbs/), precisam ser concluídas primeiro. - -As redes de testes de Verkle Trees já estão em funcionamento, e a próxima fase é a execução de clientes habilitados para Verkle Trees em redes de testes privadas e, em seguida, públicas. Você pode ajudar a acelerar o progresso por meio da implantação de contratos nas redes de testes ou da execução de clientes de rede de testes. diff --git a/src/content/translations/pt-br/smart-contracts/index.md b/src/content/translations/pt-br/smart-contracts/index.md deleted file mode 100644 index 64f7877165b..00000000000 --- a/src/content/translations/pt-br/smart-contracts/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Contratos inteligentes -description: Uma introdução não técnica aos contratos inteligentes -lang: pt-br ---- - -# Introdução aos contratos inteligentes {#introduction-to-smart-contracts} - -Os contratos inteligentes são os elementos fundamentais da camada de aplicativos Ethereum. Eles são programas informáticos armazenados no blockchain que seguem a lógica "se isso, então aquilo" e têm a garantia de serem executados de acordo com as regras definidas pelo respectivo código, que não pode ser alterado depois de criado. - -Nick Szabo cunhou o termo "contrato inteligente". Em 1994, ele escreveu [uma introdução ao conceito](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html) e, em 1996, [uma análise sobre o que os contratos inteligentes poderiam fazer](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). - -Szabo imaginou um mercado digital em que processos automáticos e criptograficamente seguros permitiriam a ocorrência de funções de negócio e transações sem intermediários confiáveis. Os contratos inteligentes no Ethereum colocam em prática essa visão. - -### Confiança em contratos convencionais {#trust-and-contracts} - -Um dos maiores problemas de um contrato tradicional é a necessidade de se ter indivíduos confiáveis para acompanhar os resultados do contrato. - -Exemplo: - -Alice e Bob estão fazendo uma corrida de bicicleta. Digamos que Alice aposte R$ 10 com Bob que ela vencerá corrida. Bob está confiante que será o vencedor e aceita a aposta. No final, Alice termina a corrida bem à frente de Bob e vence. Mas Bob se recusa a pagar a aposta, alegando que Alice deve ter trapaceado. - -Esse exemplo ilustra o problema com qualquer contrato não inteligente. Mesmo que as condições do contrato sejam cumpridas (ou seja, você é o vencedor da corrida), você ainda precisa confiar que a outra pessoa cumprirá o contrato (ou seja, pagar a aposta). - -### Uma máquina de vendas digitais {#vending-machine} - -Uma metáfora simples de um contrato inteligente é como se fosse uma máquina de venda automática, que funciona de forma semelhante a um contrato inteligente – você insere algo específico e isso garante um produto predeterminado. - -- Você seleciona um produto -- A máquina de venda automática mostra o preço -- Você paga o preço -- A máquina de venda automática confirma que você pagou o valor correto -- A máquina de venda automática entrega o item comprado - -A máquina de venda automática só entregará o produto após o cumprimento de todas as exigências. Se você não selecionar um produto ou não inserir dinheiro suficiente, a máquina de venda automática não entrega o produto. - -### Execução automática {#automation} - -O principal benefício de um contrato inteligente é que ele executa, de maneira determinística, um código inequívoco quando determinadas condições são atendidas. Não há necessidade de esperar que um ser humano interprete ou negocie o resultado. Isso elimina a necessidade de intermediários confiáveis. - -Por exemplo, você pode redigir um contrato inteligente que mantenha fundos em depósito para uma criança e que permitirá que ela retire os fundos após uma data específica. Se a criança tentar retirar os fundos antes dessa data, o contrato inteligente não permitirá. Ou você pode redigir um contrato que entrega automaticamente uma versão digital do documento de propriedade de um carro assim que você pagar o valor à concessionária. - -### Resultados previsíveis {#predictability} - -Os contratos tradicionais são ambíguos porque dependem de seres humanos para interpretá-los e implementá-los. Por exemplo, dois juízes podem interpretar um contrato de forma diferente, o que pode resultar na tomada de decisões incoerentes e resultados desproporcionais. Os contratos inteligentes eliminar essa possibilidade. Em vez disso, os contratos inteligentes são executados precisamente com base nas condições escritas no código do contrato. Essa exatidão significa que, se as circunstâncias forem idênticas, o contrato inteligente produzirá o mesmo resultado. - -### Registro público {#public-record} - -Os contratos inteligentes são úteis para auditorias e rastreamento. Como os contratos inteligentes do Ethereum estão em um blockchain público, qualquer pessoa pode rastrear instantaneamente as transferências de ativos e outras informações relacionadas. Por exemplo, você pode verificar se alguém enviou fundos para o seu endereço. - -### Proteção de privacidade {#privacy-protection} - -Os contratos inteligentes também protegem a sua privacidade. Como o Ethereum é uma rede pseudônima (as suas transações são vinculadas publicamente a um único endereço criptográfico, não à sua identidade), você pode proteger a sua privacidade de observadores. - -### Termos visíveis {#visible-terms} - -Por último, como os contratos tradicionais, você pode verificar o conteúdo de um contrato inteligente antes de assiná-lo (ou interagir com ele de outra forma). A transparência de um contrato inteligente garante que qualquer pessoa pode analisar o conteúdo. - -## Casos de uso de contrato inteligente {#use-cases} - -Os contratos inteligentes podem fazer essencialmente qualquer coisa que os programas informáticos podem fazer. - -Eles podem realizar cálculos, criar moeda, armazenar dados, mintar NFTs, enviar comunicações e inclusive gerar gráficos. Apresentamos alguns exemplos reais e populares: - -- [Stablecoins](/stablecoins/) -- [Criação e distribuição de ativos digitais únicos](/nft/) -- [Uma negociação de moeda automática e aberta](/get-eth/#dex) -- [Jogos descentralizados](/dapps/?category=gaming) -- [Uma apólice de seguro que paga automaticamente](https://etherisc.com/) -- [Um padrão que permite que pessoas criem moedas personalizadas e interoperáveis](/developers/docs/standards/tokens/) - -## Você é o tipo de pessoa que aprende mais com recursos visuais? {#visual-learner} - -Assista à explicação de contratos inteligentes disponibilizada pelo canal Finematics: - - - -## Leitura adicional {#further-reading} - -- [Como os Contratos Inteligentes irão mudar o mundo](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [Contratos Inteligentes: A Tecnologia Blockchain que substituirá os Advogados](https://blockgeeks.com/guides/smart-contracts/) -- [Contratos inteligentes para desenvolvedores](/developers/docs/smart-contracts/) -- [Aprenda a escrever contratos inteligentes](/developers/learning-tools/) -- [Dominando o Ethereum – O que é um Contrato Inteligente?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/src/content/translations/pt-br/social-networks/index.md b/src/content/translations/pt-br/social-networks/index.md deleted file mode 100644 index 515ebb7d246..00000000000 --- a/src/content/translations/pt-br/social-networks/index.md +++ /dev/null @@ -1,120 +0,0 @@ ---- -title: Redes sociais descentralizadas -description: Uma visão geral das redes sociais descentralizadas no Ethereum -lang: pt-br -template: use-cases -emoji: ":mega:" -sidebarDepth: 2 -image: ../../../../assets/ethereum-learn.png -summaryPoint1: Plataformas baseadas em blockchain para interação social, criação e distribuição de conteúdo. -summaryPoint2: As redes de mídia social descentralizadas protegem a privacidade do usuário e aumentam a segurança dos dados. -summaryPoint3: Tokens e NFTs criam formas de monetizar conteúdo. ---- - -As redes sociais desempenham um papel enorme em nossas comunicações e interações diárias. Entretanto, o controle centralizado dessas plataformas criou muitos problemas: violações de dados, interrupções de servidores, "desplataformalizações", censuras e violações de privacidade são algumas das ações negativas que as mídias sociais costumam executar. Para combater esses problemas, os desenvolvedores estão construindo redes sociais no Ethereum. As redes sociais descentralizadas podem resolver muitos dos problemas das plataformas de redes sociais tradicionais e melhorar a experiência geral dos usuários. - -## O que são as redes sociais descentralizadas? {#what-are-decentralized-social-networks} - -As redes sociais descentralizadas são plataformas baseadas em blockchain que permitem que os usuários troquem informações, assim como publicar e distribuir conteúdo para o público. Como esses aplicativos são executados no blockchain, eles são capazes de ser descentralizados e resistentes à censura e controle indevido. - -Muitas redes sociais descentralizadas existem como alternativas aos serviços já estabelecidos de mídia social, como Facebook, LinkedIn, Twitter e Medium. Mas as redes sociais baseadas em blockchain têm vários recursos que as colocam à frente das plataformas sociais tradicionais. - -### Como funcionam as redes sociais descentralizadas? {#decentralized-social-networks-overview} - -As redes sociais descentralizadas são uma classe de [aplicativos descentralizados (dapps)](/dapps/)—aplicativos sustentados por [contratos inteligentes](/developers/docs/smart-contracts/) a> implantados no blockchain. O código do contrato serve como back-end para esses aplicativos e define sua lógica de negócios. - -As plataformas tradicionais de mídia social dependem de bancos de dados para armazenar informações do usuário, códigos do programa e outras formas de dados. Mas isso cria pontos únicos de falha e introduz um risco significativo. Por exemplo, os servidores do Facebook inacreditavelmente [ficaram off-line por horas](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) no ano passado, impedindo o acesso dos usuários na plataforma. - -As redes sociais descentralizadas existem em uma rede ponto a ponto que compreende milhares de nós em todo o mundo. Mesmo que alguns nós falhem, a rede funcionará ininterruptamente, tornando os aplicativos resistentes a falhas e interrupções. - -Usando sistemas de armazenamento descentralizados como o [ Sistema Interplanetário de Arquivos (IPFS)](https://ipfs.io/), as redes sociais criadas no Ethereum podem proteger as informações do usuário contra exploração e uso malicioso. Ninguém venderá suas informações pessoais para anunciantes, nem mesmo os hackers poderão roubar seus dados confidenciais. - -Muitas plataformas sociais baseadas em blockchain possuem tokens nativos que potencializam a monetização na ausência de receita de publicidade. Os usuários podem comprar esses tokens para acessar determinados recursos, concluir compras no aplicativo ou dar gorjetas a seus criadores de conteúdo favoritos. - -## Benefícios das redes sociais descentralizadas {#benefits} - -1. As redes sociais descentralizadas são resistentes à censura e abertas a todos. Isso significa que os usuários não podem ser banidos, '"desplataformados" ou restritos arbitrariamente. - -2. As redes sociais descentralizadas são construídas em ideais de código aberto e disponibilizam, para inspeção pública, o código-fonte para aplicativos. Ao eliminar a implementação de algoritmos opacos comuns nas mídias sociais tradicionais, as redes sociais baseadas em blockchain podem alinhar os interesses de usuários e criadores de plataformas. - -3. As redes sociais descentralizadas eliminam o “intermediário”. Os criadores de conteúdo têm propriedade direta sobre seu conteúdo e se envolvem diretamente com seguidores, fãs, compradores e outras partes, com nada além de um contrato inteligente entre eles. - -4. Como os dapps executados na rede Ethereum, que é sustentada por uma rede global de nós ponto a ponto, as redes sociais descentralizadas são menos suscetíveis ao tempo de inatividade e interrupções do servidor. - -5. As plataformas sociais descentralizadas oferecem uma estrutura de monetização aprimorada para criadores de conteúdo por meio de tokens não fungíveis (NFTs), pagamentos de criptomoedas pelo aplicativo e muito mais. - -6. As redes sociais descentralizadas proporcionam aos usuários um alto nível de privacidade e anonimato. Por exemplo, um indivíduo pode entrar em uma rede social baseada em Ethereum usando um perfil ou carteira ENS – sem ter que compartilhar informações de identificação pessoal (PII), como nomes, endereços de e-mail etc. - -7. As redes sociais descentralizadas contam com armazenamento descentralizado, e não com bancos de dados centralizados, sendo consideravelmente melhores para proteger os dados do usuário. - -## Redes sociais descentralizadas no Ethereum {#ethereum-social-networks} - -A rede Ethereum se tornou a ferramenta preferida para desenvolvedores que criam mídias sociais descentralizadas devido à popularidade de seus tokens (ERC-20/ERC-721) e sua enorme base de usuários. Veja alguns exemplos de redes sociais baseadas no Ethereum: - -### Peepeth {#peepeth} - -[Peepeth](https://peepeth.com/) é uma plataforma de microblogs semelhante ao Twitter. Ela é executada no blockchain Ethereum e usa IPFS para armazenar dados do usuário. - -Os usuários podem enviar mensagens curtas chamadas "Peeps", que não podem ser excluídas ou modificadas. Você pode coletar dicas ou dar dicas a qualquer pessoa na plataforma em ether (ETH) sem sair do aplicativo. - -### Mirror {#mirror} - -[Mirror](https://mirror.xyz/) é uma plataforma de escrita habilitada para web3 que visa ser descentralizada e de propriedade do usuário. Os usuários podem ler e escrever gratuitamente na Mirror simplesmente conectando suas carteiras. Os usuários também podem coletar textos e assinar seus escritores favoritos. - -As postagens publicadas na Mirror são armazenadas permanentemente no Arweave, uma plataforma de armazenamento descentralizada, e podem ser cunhadas como [tokens não fungíveis (NFTs)](/nft/) colecionáveis, conhecidos como NFTs de Escrita. NFTs de Escrita são totalmente gratuitos para os escritores criarem, e a coleta acontece em uma camada 2 da Ethereum – tornando as transações baratas, rápidas e ecologicamente corretas. - -### MINDS {#minds} - -[MINDS](https://www.minds.com/) é uma das redes sociais descentralizadas mais utilizadas. Funciona como o Facebook e já conseguiu milhões de usuários. - -Os usuários usam o token ERC-20 nativo $MIND da plataforma para pagar por itens. Os usuários também podem ganhar tokens $MIND publicando conteúdo popular, contribuindo para o ecossistema e indicando outras pessoas para a plataforma. - -## Redes sociais Web2 no Ethereum {#web2-social-networks-and-ethereum} - -As plataformas sociais nativas [Web3](/web3/) não são as únicas que tentam incorporar a tecnologia blockchain nas mídias sociais. Muitas plataformas centralizadas também planejam integrar o Ethereum em sua infraestrutura: - -### Reddit {#reddit} - -O Reddit tem [pontos de comunidade divulgados](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users), que são [tokens ERC-20](/developers/docs/standards/tokens/erc-20/) que os usuários podem ganhar postando conteúdo de qualidade e contribuindo para comunidades on-line (subreddits). Você pode resgatar esses tokens em um subreddit para [obter privilégios e vantagens exclusivos](https://www.reddit.com/community-points/). Para este projeto, o Reddit está trabalhando com o Arbitrum, um rollup de [camada 2](/layer-2/) projetado para dimensionar transações Ethereum. - -O programa já está ativo, com o subreddit r/CryptoCurrency [executando sua versão de pontuações comunitária chamada "Moons"](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Segundo a descrição oficial, Moons “recompensa pôsteres, comentaristas e moderadores por suas contribuições ao subreddit” Como esses tokens estão no blockchain (usuários os recebem em carteiras), eles são independentes do Reddit e não podem ser retirados. - -Depois de concluir uma fase beta na rede de testes Rinkeby, os Pontos da Comunidade Reddit agora estão no [Arbitrum Nova](https://nova.arbitrum.io/), uma cadeia de blocos que combina propriedades de um [cadeia lateral](/developers/docs/scaling/sidechains/) e um [rollup otimista](/developers/docs/scaling/optimistic-rollups/). Além de usar os pontos comunitários para desbloquear recursos especiais, os usuários também podem trocá-los por moeda fiduciária em trocas. Além disso, a quantidade de pontuações comunitárias que um usuário possui determina sua influência no processo de tomada de decisão na comunidade. - -### Twitter {#twitter} - -Em janeiro de 2021, o Twitter Blue [lançou suporte para NFTs](https://mashable.com/article/twitter-blue-nft-profile-picture), permitindo que os usuários conectem suas carteiras e exibam NFTs como fotos de perfil. No momento da redação deste texto, a empresa de mídia social também [anunciou planos](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) para criar uma rede social descentralizada no futuro. - -### Instagram {#instagram} - -Em maio de 2022, o [Instagram anunciou suporte para NFTs](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) no Ethereum e Polygon. Os usuários podem publicar NFTs diretamente no Instagram conectando sua carteira Ethereum. - -## Utilize redes sociais descentralizadas {#use-decentralized-social-networks} - -- **[Status.im](https://status.im/)** - _Status é um aplicativo de mensagens seguro que usa um protocolo ponto a ponto de código aberto e criptografia de ponta a ponta para proteger suas mensagens de terceiros._ -- **[Mirror.xyz](https://mirror.xyz/)** - _Mirror é uma plataforma de publicação descentralizada e de propriedade do usuário, construída no Ethereum para que os usuários financiem ideias, monetizem conteúdo e construam comunidades de alto valor._ -- **[Protocolo Lens](https://lens.xyz/)** - _Protocolo Lens é um gráfico social combinável e descentralizado que ajuda os criadores a se apropriarem de seu conteúdo onde quer que estejam no ambiente digital da internet descentralizada._ -- **[Farcaster](https://farcaster.xyz/)** — _Farcaster é uma rede social suficientemente descentralizada. É um protocolo aberto que pode oferecer suporte a muitos clientes, como o e-mail._ - -## Leitura adicional {#further-reading} - -### Artigos {#articles} - -- [Descentralizando mídias sociais: um guia para a pilha social da Web3](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) — _Coinbase Ventures _ -- [A Web3 mantém a promessa de redes sociais descentralizadas e sustentadas pela comunidade.](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ -- [Uma visão geral do cenário de mídia social do Blockchain](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ -- [Como o Blockchain pode resolver a privacidade das mídias sociais](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Prableen Bajpai_ -- [As redes de mídia social estão chegando ao Blockchain](https://businesstechguides.co/what-are-decentralized-social-networks) — \_Emmanuel Awosika< /em> -- [Descentralização suficiente para as redes sociais](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Varun Srinivasan_ - -### Vídeos {#videos} - -- [Mídia social descentralizada explicada](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ -- [DeSo Blockchain quer descentralizar as mídias sociais](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ -- [O futuro das mídias sociais descentralizadas com Balaji Srinivasan, Vitalik Buterin, Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ - -### Comunidades {#communities} - -- [Servidor do Discord da Status](https://discord.com/invite/3Exux7Y) -- [Servidor do Discord da Mirror](https://discord.com/invite/txuCHcE8wV) -- [Subreddit r/CryptoCurrency](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/pt-br/staking/pools/index.md b/src/content/translations/pt-br/staking/pools/index.md deleted file mode 100644 index 573df3e2d15..00000000000 --- a/src/content/translations/pt-br/staking/pools/index.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: Staking em pool (combinado) -description: Uma visão geral de como começar com pools de staking de ETH -lang: pt-br -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-pool.png -alt: Leslie, o rinoceronte, nadando na piscina -sidebarDepth: 2 -summaryPoints: - - Faça staking e ganhe recompensas com qualquer quantia de ETH unindo forças com outros - - Pule a parte difícil e delegue a operação de validação a terceiros - - Mantenha os tokens participados na sua carteira ---- - -## O que são pools de participação? {#what-are-staking-pools} - -Os pools de participação são uma abordagem colaborativa para permitir que muitos com quantidades menores de ETH obtenham os 32 ETH necessários para ativar um conjunto de chaves de validador. A funcionalidade de pooling não é nativamente suportada no protocolo, então soluções foram construídas separadamente para resolver essa necessidade. - -Alguns pools operam usando contratos inteligentes, onde os fundos podem ser depositados em um contrato, que gerencia e controla com necessidade mínima de confiança seu stake, e lhe emite um token que representa esse valor. Outros pools podem não envolver contratos inteligentes e, em vez disso, são mediadas fora da cadeia. - -## Por que fazer participação com um pool? {#why-stake-with-a-pool} - -Além dos benefícios delineados em nossa [introdução ao staking](/staking/), fazer stake em um pool traz alguns benefícios distintos. - - - - - - - - - -## O que considerar {#what-to-consider} - -Staking delegado ou em pools não é nativamente suportado pelo protocolo Ethereum, mas dada a demanda para que os usuários façam staking com menos de 32 ETH, um número crescente de soluções para servir esta demanda foram construídas. - -Cada pool, assim como as ferramentas ou contratos inteligentes que eles usam, foram construídos por diferentes times, e cada um tem seus benefícios e riscos. Os pools permitem que os usuários troquem ETH por um token representativo do ETH em depósito. O token é útil porque permite que os usuários troquem qualquer quantidade de ETH por uma quantidade equivalente de um token com rendimento que gera um retorno das recompensas de staking (participação) aplicadas ao ETH subjacente participado (e vice-versa) em corretoras descentralizadas, embora o ETH real permaneça em staking na camada de consenso. Isso significa que a troca de um produto ETH com rendimento em participação e “ETH bruto” é rápido, fácil e não apenas disponível em múltiplos de 32 ETH. - -Entretanto, esses tokens de ETH participado tendem a criar comportamentos semelhantes a cartéis, em que uma grande quantidade de ETH participado acaba sob o controle de algumas organizações centralizadas, em vez de ser distribuída entre diversos indivíduos independentes. Isso cria condições para censura ou extração de valor. O padrão ouro para participação deveria sempre ser indivíduos executando validadores em seu próprio hardware sempre que possível. - -[Mais sobre os riscos de tokens em participação](https://notes.ethereum.org/@djrtwo/risks-of-lsd). - -Os indicadores de atributo são usados abaixo para sinalizar notáveis pontos fortes ou fracos que um staking pool listado pode ter. Utilize esta seção como referência de como definimos estes atributos enquanto você está escolhendo participar de um pool. - - - -## Explore pools de participação {#explore-staking-pools} - -Há uma variedade de opções disponíveis para ajudá-lo na sua configuração. Use os indicadores acima para guiá-lo pelas ferramentas abaixo. - - - - - -Observe a importância de escolher um serviço que leve a sério a [diversidade de clientes](/developers/docs/nodes-and-clients/client-diversity/), pois isso aumenta a segurança da rede e limita seu risco. Os serviços que têm evidências de limitação do uso do cliente majoritário são indicados com "diversidade do cliente de execução" e "diversidade do cliente de consenso". - -Alguma sugestão de ferramenta de participação que não mencionamos? Leia a nossa [política de listagem de produtos](/contributing/adding-staking-products/) para ver se a sugestão é pertinente e para enviá-la para análise. - -## Perguntas frequentes {#faq} - - -Normalmente, os tokens de participação ERC-20 são emitidos para participantes (stakers) e representam o valor de ETH participado, mais as recompensas. Lembre-se de que diferentes pools distribuirão recompensas de staking para seus usuários por meio de métodos minimamente diferentes, mas esse é o assunto comum. - - - -Agora mesmo! A atualização da rede Shanghai/Capella ocorreu em abril de 2023 e introduziu saques de staking. As contas dos validadores que dão suporte aos pools de staking agora têm a capacidade de sair e sacar ETH para o endereço de saque designado. Isso permite resgatar sua parte do stake para o ETH subjacente. Verifique com o seu provedor para ver como eles dão suporte a essa funcionalidade. - -Como alternativa, os pools que utilizam um token de participação ERC-20 permitem que os usuários negociem esse token no mercado aberto, o que possibilita a venda da posição de participação, com "saque" sem realmente remover o ETH do contrato de participação. - -Mais sobre retirada de participação - - - -Existem muitas semelhanças entre essas opções de staking em pools agrupadas e trocas centralizadas, como a capacidade de fazer entrega de pequenas quantidades de ETH e fazê-los juntar para ativar validadores. - -Ao contrário das corretoras centralizadas, muitas outras opções de participação em pool utilizam contratos inteligentes e/ou tokens em participação, que normalmente são tokens ERC-20 que podem ser mantidos na sua carteira, e comprados ou vendidos como qualquer outro token. Isso oferece uma camada de soberania e segurança, dando-lhe controle sobre seus tokens, mas ainda não lhe dá controle direto sobre o cliente validador atestando em seu nome em segundo plano. - -Algumas opções de pooling são mais descentralizadas do que outras quando se trata dos nós que os sustentam. Para promover a saúde e a descentralização da rede, os participantes são sempre encorajados a selecionar um serviço de pooling (compartilhamento) que ofereça um conjunto descentralizado de operadores de nós sem permissão. - - -## Leitura adicional {#further-reading} - -- [Fazendo stake com a Rocket Pool – Visão global de staking](https://docs.rocketpool.net/guides/staking/overview.html) - _Documentação do Rocket Pool_ -- [Staking Ethereum com Lido](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Documentação de ajuda Lido_ diff --git a/src/content/translations/pt-br/staking/saas/index.md b/src/content/translations/pt-br/staking/saas/index.md deleted file mode 100644 index 4dbafbf78aa..00000000000 --- a/src/content/translations/pt-br/staking/saas/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Staking como um serviço -description: Uma visão geral de como começar com os pools de staking de ETH -lang: pt-br -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-saas.png -alt: Leslie, o rinoceronte, flutuando nas nuvens -sidebarDepth: 2 -summaryPoints: - - Operadores de nó terceirizados lidam com a operação de seu cliente validador - - Uma ótima opção para qualquer pessoa com 32 ETH que não se sinta confortável em lidar com a complexidade técnica da execução de um nó - - Reduza a confiança, e mantenha a posse de suas chaves de saque ---- - -## O que é staking como um serviço? {#what-is-staking-as-a-service} - -Staking como um serviço ("SaaS") representa uma categoria de serviços de staking onde você deposita seus próprios 32 ETH para um validador, mas delega operações de nó para um operador terceirizado. Este processo geralmente envolve ser guiado pela configuração inicial, incluindo a geração de chaves e depósito, e depois enviar suas chaves de assinatura para o operador. Isso permite que o serviço opere seu validador em seu nome, geralmente com uma taxa mensal. - -## Por que fazer staking com um serviço? {#why-stake-with-a-service} - -O protocolo Ethereum não suporta nativamente a delegação de stake, portanto esses serviços foram construídos para cumprir esta demanda. Se você tem 32 ETH para stake, mas não se sente à vontade para lidar com hardware, os serviços SaaS permitem que você delegue a parte difícil enquanto ganha recompensas nativas do bloco. - - - - - - - - - -## O que considerar {#what-to-consider} - -Há um número cada vez maior de provedores de SaaS para ajudar você a fazer participação com os seus ETH, mas todos têm benefícios e riscos. Todas as opções de SaaS exigem uma confiança adicional em comparação a fazer staking internamente. As opções SaaS podem ter código adicional envolvendo os clientes Ethereum que não são abertos ou auditáveis. O SaaS também tem um efeito prejudicial na descentralização da rede. Dependendo da configuração, você pode não controlar seu validador — o operador pode agir de forma desonesta usando seu ETH. - -Os indicadores de atributo são usados abaixo para sinalizar os pontos fortes ou fracos notáveis que um pool de staking pode ter. Utilize esta seção como referência de como definimos estes atributos enquanto você está escolhendo um serviço para auxiliar em sua jornada de staking. - - - -## Explore provedores de serviços de staking {#saas-providers} - -Abaixo estão alguns provedores SaaS disponíveis. Use os indicadores acima para guiá-lo pelos serviços abaixo - - - -#### Provedores SaaS - - - -Observe a importância de escolher um serviço que leve a [diversidade de cliente](/developers/docs/nodes-and-clients/client-diversity/) a sério, à medida que melhora a segurança da rede e limita o seu risco. Os serviços que têm evidências de limitação do uso do cliente majoritário são indicados com "diversidade do cliente de execução" e "diversidade do cliente de consenso". - -#### Geradores de chaves - - - -Alguma sugestão de um provedor de SaaS que não foi mencionado? Leia a nossa [política de listagem de produtos](/contributing/adding-staking-products/) para ver se a sugestão é pertinente e para enviá-la para análise. - -## Perguntas frequentes {#faq} - - -As disposições diferem de provedor para provedor, mas geralmente você será guiado pela configuração de quaisquer chaves de assinatura que você precise (uma a cada 32 ETH), e terá que enviar estas para o seu provedor para permitir que validem em seu nome. Só as chaves de assinatura não oferecem nenhuma possibilidade de saque, transferência ou gasto dos seus fundos. Entretanto, elas proporcionam a capacidade de votar em consensos, o que, se não for feito adequadamente, pode resultar em sanções ou em cortes off-line. - - - -Sim. Cada conta é composta por ambas chaves de assinatura BLS, e as chaves de saque BLS. Para que um validador ateste o estado da cadeia, participe de comitês de sincronização e proponha blocos, as chaves de assinatura devem estar prontamente acessíveis por um cliente validador. Elas devem estar conectadas à internet de alguma forma, portanto, são inerentemente consideradas chaves "quentes". Este é um requisito para as confirmações do seu validador, portanto, as chaves usadas para transferir ou sacar fundos são separadas por razões de segurança. - -As chaves de retirada BLS são usadas para assinar uma mensagem de uso único que declara para qual conta de execução de uma conta de recompensas de participação e fundos sacados elas devem ir. Uma vez que essa mensagem é transmitida, as chaves de saque de BLS não são mais necessárias. Em vez disso, o controle sobre os fundos retirados é permanentemente delegado ao endereço que você forneceu. Isso permite que você defina um endereço de retirada protegido por meio do seu próprio armazenamento frio, minimizando o risco para seus fundos de validador, mesmo se outra pessoa controlarem suas chaves de assinatura de validador. - -A atualização das credenciais de saque é uma etapa necessária para habilitar saques\*. Esse processo envolve gerar as chaves de retirada usando sua frase semente mnemônica. - -Certifique-se de fazer backup dessa frase de recuperação com segurança ou você não conseguirá gerar suas chaves de saque quando precisar. - -\*Os stakers que forneceram um endereço de saque com depósito inicial não precisam definir isso. Consulte com seu provedor SaaS para obter suporte sobre como preparar seu validador. - - - -Os saques de staking foram implementados na atualização Shanghai/Capella em abril de 2023. Os stakers precisam fornecer um endereço de saque (se não tiver sido fornecido no depósito inicial) e os pagamentos de recompensa começarão a ser distribuídos de forma automática periodicamente em intervalos de alguns dias. - -Os validadores também podem sair totalmente como validadores, o que desbloqueará seus saldos de ETH restantes para saque. As contas que forneceram um endereço de saque para execução e concluíram o processo de saída receberão todo o seu saldo no endereço de saque fornecido durante a próxima varredura do validador. - -Mais sobre saques de participação - - - -Usando um provedor SaaS, você está confiando a operação do seu nó a um terceiro. Isto implica o risco de um desempenho deficiente, que não está sob o seu controle. Caso seu validador seja cortado, seu saldo do validador será penalizado e removido à força da pool do validador. - -Após a conclusão do processo de remoção/saída, esses fundos serão transferidos para o endereço de saque atribuído ao validador. Para isso, é necessário habilitar um endereço de saque. Ela pode ter sido fornecida no depósito inicial. Caso contrário, será necessário usar as chaves de saque do validador para assinar uma mensagem declarando um endereço de saque. Os fundos permanecerão bloqueados até um endereço de saque ser fornecido. - -Entre em contato com o provedor de SaaS para obter mais detalhes sobre quaisquer garantias ou opções de seguro e instruções sobre como fornecer um endereço de saque. Se você preferir estar no controle total da sua configuração do validador, saiba mais sobre como fazer staking individual de seu ETH. - - -## Leitura adicional {#further-reading} - -- [Avaliando os Serviços de Staking](https://www.attestant.io/posts/evaluating-staking-services/) - _Jim McDonald 2020_ diff --git a/src/content/translations/pt-br/staking/solo/index.md b/src/content/translations/pt-br/staking/solo/index.md deleted file mode 100644 index 804a6b70052..00000000000 --- a/src/content/translations/pt-br/staking/solo/index.md +++ /dev/null @@ -1,203 +0,0 @@ ---- -title: Faça staking indivual com seu ETH -description: Uma visão geral de como começar a fazer staking individual com seu ETH -lang: pt-br -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-solo.png -alt: Leslie, o rinoceronte, em seu próprio chip de computador -sidebarDepth: 2 -summaryPoints: - - Receba recompensas máximas diretamente do protocolo para manter seu validador funcionando corretamente e on-line - - Execute o hardware local e adicione pessoalmente à segurança e descentralização da rede Ethereum - - Remova a confiança e nunca desista do controle das chaves dos seus fundos ---- - -## O que é staking individual? {#what-is-solo-staking} - -O staking individual é o ato de [executar um nó Ethereum](/run-a-node/) conectado à Internet e depositar 32 ETH para ativar um [validador](#faq), dando a você a capacidade de participar diretamente do consenso da rede. - -**A participação individual aumenta a descentralização da rede Ethereum**, tornando o Ethereum mais resistente a censura e ataques. Outros métodos de participação podem não ajudar a rede da mesma maneira. A participação individual é a melhor opção de participação para proteger o Ethereum. - -Um nó Ethereum consiste em um cliente de camada de execução (EL) e em um cliente de camada de consenso (CL). Esses clientes são softwares que trabalham em conjunto, juntamente com um conjunto válido de chaves de assinatura, para verificar transações e blocos, atestar o bloco correto no topo da cadeia, agregar atestações e propor blocos. - -Os stakers individuais são responsáveis por operar o hardware necessário para executar esses clientes. É altamente recomendável usar uma máquina dedicada para isso, que você opera em casa – isso é extremamente benéfico para a saúde da rede. - -Um staker individual recebe recompensas diretamente do protocolo por manter seu validador funcionando corretamente e on-line. - -## Por que fazer staking individual? {#why-stake-solo} - -A participação individual vem com mais responsabilidades, mas fornece o máximo de controle sobre seus fundos e configuração de participação. - - - - - - - -## Considerações antes de fazer staking individual {#considerations-before-staking-solo} - -Por mais que desejemos que o staking individual fosse acessível e sem riscos para todos, isso não é a realidade. Existem algumas considerações práticas e sérias a serem lembradas antes de optar por fazer staking individual de seu ETH. - - - -Ao operar seu próprio nó, você deve gastar algum tempo aprendendo a usar o software que escolheu. Isso envolve ler a documentação relevante e estar em sintonia com os canais de comunicação dessas equipes de desenvolvimento. - -Quanto mais você entender sobre o software que está executando e como funciona a prova de participação (proof of sake), menos arriscado será como um staker e mais fácil será corrigir quaisquer problemas que possam surgir ao longo do caminho como operador de nó. - - - -A configuração do nó requer um nível de conforto razoável ao trabalhar com computadores, embora novas ferramentas estejam tornando isso mais fácil com o tempo. A compreensão da interface de linha de comando é útil, mas não é mais estritamente necessária. - -Também requer uma configuração de hardware muito básica e alguma compreensão das especificações mínimas recomendadas. - - - -Assim como as chaves privadas protegem seu endereço Ethereum, você precisará gerar chaves especificamente para seu validador. Você precisa compreender como manter qualquer frase semente ou chave privada protegida e segura.{' '} - -Segurança Ethereum e prevenção à fraude - - - -O hardware falha ocasionalmente, as conexões de rede falham e o software cliente ocasionalmente precisa ser atualizado. A manutenção do nó é inevitável e ocasionalmente exigirá sua atenção. Você deve estar ciente de quaisquer informações de atualizações de rede ou outras atualizações críticas de clientes. - - - -Suas recompensas são proporcionais ao tempo que seu validador está on-line e atestando corretamente. O tempo de inatividade incorre em penalidades proporcionais a quantos outros validadores estão off-line ao mesmo tempo, mas não resulta em cortes. A largura de banda também é importante, pois as recompensas são reduzidas para declarações que não são recebidos a tempo. Os requisitos variam, mas é recomendado um mínimo de 10 Mb/s de upload e download. - - - -Diferente das penalidades de inatividade por estar off-line, o corte é uma penalidade muito mais séria reservada para infrações maliciosas. Ao executar um cliente minoritário com suas chaves carregadas em apenas uma máquina por vez, o risco de ser cortado é minimizado. Dito isto, todos os stakers devem estar cientes dos riscos de serem cortados. - - Mais informações sobre o ciclo de vida do validador e remoção - - - - - -## Como funciona {#how-it-works} - - - -Enquanto ativo, você ganhará recompensas ETH, que serão depositadas periodicamente no seu endereço de saque. - -Se desejar, você pode parar suas atividades como um validador, o que elimina a necessidade de estar on-line e interrompe outras recompensas. O seu saldo restante será sacado para o endereço de saque que você indicou durante a configuração. - -[Mais sobre saques de participação](/staking/withdrawals/) - -## Comece a usar o Staking Launchpad {#get-started-on-the-staking-launchpad} - -O Staking Launchpad é um aplicativo de código aberto que o ajudará a se tornar um staker. Ele o guiará na escolha de seus clientes, gerará suas chaves e depositará seu ETH no contrato de depósito de staking. Uma lista de verificação é fornecida para garantir que você cobriu tudo para configurar seu validador com segurança. - - - -## O que considerar com ferramentas de configuração de nó e cliente {#node-tool-considerations} - -Há um número crescente de ferramentas e serviços para ajudá-lo a fazer staking individualmente de seu ETH, mas cada um vem com diferentes riscos e benefícios. - -Os indicadores de atributo são usados abaixo para sinalizar pontos fortes ou fracos notáveis que uma ferramenta de staking listada pode ter. Use esta seção como referência de como definimos esses atributos enquanto você escolhe quais ferramentas ajudarão em sua jornada de staking. - - - -## Explore as ferramentas de configuração de nós e clientes {#node-and-client-tools} - -Há uma variedade de opções disponíveis para ajudá-lo na sua configuração. Use os indicadores acima para guiá-lo pelas ferramentas abaixo. - - - -#### Ferramentas do nó - - - -Observe a importância de escolher um [cliente minoritário](/developers/docs/nodes-and-clients/client-diversity/), pois melhora a segurança da rede e limita seu risco. As ferramentas que permitem configurar um cliente minoritário são indicadas como "multicliente." - -#### Geradores de chaves - -Essas ferramentas podem ser utilizadas como uma alternativa à [Staking Deposit CLI](https://github.com/ethereum/staking-deposit-cli/) para ajudar na geração de chaves. - - - -Alguma sugestão de ferramenta de participação que não mencionamos? Leia a nossa [política de listagem de produtos](/contributing/adding-staking-products/) para ver se a sugestão é pertinente e para enviá-la para análise. - -## Explore os guias de staking individual {#staking-guides} - - - -## Perguntas frequentes {#faq} - -Apresentamos algumas das perguntas mais comuns sobre staking (participação) que vale a pena saber. - - - -Um validador é uma entidade virtual que vive no Ethereum e participa no consenso do protocolo Ethereum. Os validadores são representados por um saldo, chave pública e outras propriedades. Um cliente validador é o software que atua em nome do validador mantendo e usando sua chave privada. Um único cliente validador pode conter muitos pares de chaves, controlando muitos validadores. - - - - -Cada par de chaves associado a um validador requer exatamente 32 ETH para ser ativado. Mais ETH depositado em um único conjunto de chaves não aumenta o potencial de recompensas, pois cada validador está limitado a um saldo efetivo de 32 ETH. Isso significa que o staking é feito em 32 incrementos de ETH, cada um com seu próprio conjunto de chaves e saldo. - -Não deposite mais de 32 ETH para um único validador. Isso não aumentará suas recompensas. Se um endereço de saque tiver sido definido para o validador, os fundos excedentes acima de 32 ETH serão automaticamente sacados para esse endereço durante a próxima varredura do validador. - -Se o staking individual demandar muito de você, considere usar um provedor de staking-as-a-service (staking como um serviço) ou, se estiver trabalhando com menos de 32 ETH, verifique as staking pools (pools de staking). - - - -Ficar off-line quando a rede estiver finalizando corretamente NÃO resultará em cortes. Pequenas penalidades por inatividade são incorridas se o seu validador não estiver disponível para atestar determinado período (cada um com 6,4 minutos de duração), mas isso é muito diferente de um corte. Essas penalidades são um pouco menores do que a recompensa que você ganharia se o validador estivesse disponível para atestar, e as perdas podem ser recuperadas com aproximadamente a mesma quantidade de tempo novamente on-line. - -Observe que as penalidades por inatividade são proporcionais a quantos validadores estão off-line ao mesmo tempo. Nos casos em que uma grande parte da rede estiver toda off-line ao mesmo tempo, as penalidades para cada um desses validadores serão maiores que quando um único validador estiver indisponível. - -Em casos extremos, se a rede parar de finalizar como resultado de mais de um terço dos validadores estarem off-line, esses usuários sofrerão o sendo conhecido como vazamento de inatividade quadrática, sendo um dreno exponencial de ETH de contas de validador off-line. Isso permite que a rede se recupere eventualmente queimando o ETH de validadores inativos até que seu saldo atinja 16 ETH, momento em que eles serão automaticamente ejetados da pool de validadores. Os validadores on-line restantes acabarão por abranger mais de 2/3 da rede novamente, satisfazendo a maioria qualificada necessária para finalizar mais uma vez a cadeia. - - - -Em resumo, isso nunca pode ser totalmente garantido, mas se você agir de boa-fé, executar um cliente minoritário e manter suas chaves de assinatura em apenas uma máquina por vez, o risco de ser cortado é quase zero. - -Existem apenas algumas maneiras específicas que podem resultar em um corte e expulsão de um validador da rede. No momento da redação deste texto, os cortes que ocorreram foram exclusivamente um produto de configurações de hardware redundantes onde as chaves de assinatura são armazenadas em duas máquinas separadas ao mesmo tempo. Isso pode resultar inadvertidamente em um voto duplo de suas chaves, o que é uma infração passível de corte. - -A execução de um cliente supermajoritário (qualquer cliente usado por mais de 2/3 da rede) também apresenta o risco de cortes em potencial caso esse cliente tenha uma falha que resulte em uma bifurcação da cadeia. Isso pode resultar em uma bifurcação com falha que será finalizada. Para corrigir de volta para a cadeia pretendida, seria necessário enviar um voto cercado (surround vote), na tentativa de desfazer um bloco finalizado. Essa também é uma infração que pode incorrer em um corte e pode ser evitada simplesmente por executar um cliente minoritário. - -Falhas equivalentes em um cliente minoritário jamais seriam finalizadas, portanto, nunca resultariam em um voto cercado, e simplesmente resultariam em penalidades de inatividade, não em cortes. - - - - - -Os clientes individuais podem variar um pouco em desempenho e interface do usuário, pois cada um é desenvolvido por equipes diferentes usando uma variedade de linguagens de programação. Assim sendo, nenhum deles é "melhor". Todos os clientes de implantação são excelentes softwares, que executam as mesmas funções principais para sincronizar e interagir com o blockchain. - -Como todos os clientes de implantação fornecem a mesma funcionalidade básica, é muito importante que você escolha um cliente minoritário, ou seja, qualquer cliente que NÃO esteja sendo usado pela maioria dos validadores na rede. Isso pode parecer contraintuitivo, mas executar um cliente majoritário ou supermajoritário aumenta o risco de cortes no caso de uma falha nesse cliente. A execução de um cliente minoritário limita drasticamente esses riscos. - -Saiba mais sobre a razão de a diversidade de clientes ser fundamental - - - -Embora um servidor virtual privado (VPS) possa ser usado como substituto do hardware doméstico, o acesso físico e a localização do seu cliente validador importam. Soluções em nuvem centralizadas como Amazon Web Services ou Digital Ocean permitem a conveniência de não ter que obter e operar hardware, à custa da centralização da rede. - -Quanto mais clientes validadores forem executados em uma única solução centralizada de armazenamento em nuvem, mais perigoso se torna para esses usuários. Qualquer evento que coloque esses provedores off-line, seja por um ataque, demandas regulatórias ou apenas quedas de energia/internet, fará com que todos os clientes validadores que dependem desse servidor fiquem off-line ao mesmo tempo. - -As penalidades por ficar off-line são proporcionais a quantos outros estão off-line ao mesmo tempo. O uso de um VPS aumenta muito o risco de que as penalidades por ficar offl-ine sejam mais severas e aumenta o risco de vazamento ou corte quadrático no caso de a interrupção ser grande o suficiente. Para minimizar seu próprio risco e o risco para a rede, os usuários são fortemente encorajados a obter e operar seu próprio hardware. - - - - -Saques de qualquer tipo da Beacon Chain exigem que sejam definidas credenciais de retirada. - -Os novos participantes estabeleceram isso no momento da geração da chave e do depósito. Os stakers existentes que ainda não definiram isso podem atualizar suas chaves para dar suporte a essa funcionalidade. - -Depois que as credenciais de saque estiverem definidas, os pagamentos de recompensa (ETH acumulado sobre os 32 iniciais) serão periodicamente distribuídos para o endereço de saque automaticamente. - -Para desbloquear e receber todo o seu saldo de volta, você deve concluir o processo de saída de seu validador. - -Mais sobre saques de participação - - -## Leitura adicional {#further-reading} - -- [Problema de diversidade de clientes da Ethereum](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ -- [Ajudando a diversidade dos clientes](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ -- [Diversidade de clientes na camada de consenso do Ethereum](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ -- [Como comprar o hardware validador do Ethereum](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ -- [Passo a passo: Como ingressar na rede de testes da Ethereum 2.0](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _ Butta_ -- [Dicas de prevenção de cortes Eth2](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raul Jordan 2020 _ diff --git a/src/content/translations/pt-br/staking/withdrawals/index.md b/src/content/translations/pt-br/staking/withdrawals/index.md deleted file mode 100644 index eb8c785498b..00000000000 --- a/src/content/translations/pt-br/staking/withdrawals/index.md +++ /dev/null @@ -1,218 +0,0 @@ ---- -title: Saque de staking -description: Página que resume o que são os saques por staking, como eles funcionam e o que os stakers (participantes) precisam fazer para obter suas recompensas -lang: pt-br -template: staking -image: ../../../../../assets/staking/leslie-withdrawal.png -alt: Leslie, o rinoceronte, com suas recompensas de staking -sidebarDepth: 2 -summaryPoints: - - A atualização Shanghai/Capella permitiu saques de stake no Ethereum - - Os operadores validadores devem fornecer um endereço de saque para ativá-los - - As recompensas são distribuídas automaticamente a cada dois ou três dias - - Validadores que saírem por completo do staking receberão o seu saldo restante ---- - - -Os saques de stake foram ativados com a atualização Shanghai/Capella, que ocorreu em 12 de abril de 2023. Mais sobre Shanghai/Capella - - -**Saques de stake** referem-se a transferências de ETH de uma conta do validador na camada de consenso do Ethereum (a Beacon Chain) para a camada de execução na qual ela pode efetuar a transação. - -**Pagamentos de recompensas de saldo excedente** acima de 32 ETH serão enviados de forma automática e regular para um endereço de saque vinculado a cada validador, uma vez fornecido pelo usuário. Usuários também podem **sair totalmente do staking**, desbloqueando seu saldo total do validador. - -## Recompensas de staking {#staking-rewards} - -Os pagamentos de recompensa são processados automaticamente para contas validadoras ativas, com um saldo efetivo máximo de 32 ETH. - -Qualquer saldo acima de 32 ETH ganho por meio de recompensas, não contribui realmente para o principal, ou aumenta o peso desse validador na rede e, portanto, é retirado automaticamente como pagamento de recompensa a cada dois ou três dias. Além de fornecer um endereço de saque uma vez, essas recompensas não exigem nenhuma ação do operador validador. Tudo isso é iniciado na camada de consenso, portanto, nenhum gás (taxa de transação) é necessário em nenhuma etapa. - -### Como chegamos aqui? {#how-did-we-get-here} - -Nos últimos anos, o Ethereum passou por várias atualizações de rede, fazendo a transição para uma rede protegida pelo próprio ETH, em vez da mineração intensiva de energia, como era antes. A participação em consenso no Ethereum agora é conhecida como "staking", pois os participantes têm bloqueado voluntariamente o ETH, colocando-o "em stake" para poder participar da rede. Os usuários que seguem as regras serão recompensados, enquanto as tentativas de trapaça podem ser penalizadas. - -Desde o lançamento do contrato de depósito de staking em novembro de 2020, alguns corajosos pioneiros do Ethereum bloquearam voluntariamente fundos para ativar “validadores”, contas especiais que têm o direito de atestar formalmente e propor blocos, seguindo as regras da rede. - -Antes da atualização Shanghai/Capella, não era possível usar ou acessar seu ETH em stake. Mas agora, você pode optar por receber automaticamente suas recompensas em uma conta escolhida, e também pode sacar seu ETH em stake sempre que quiser. - -### Como me preparo? {#how-do-i-prepare} - - - -### Avisos importantes {#important-notices} - -Fornecer um endereço de saque é uma etapa necessária para qualquer conta de validador, antes que ele seja elegível para sacar ETH de seu saldo. - - - Cada conta de validador pode ser atribuída a um único endereço de saque, uma única vez. Após a seleção e envio do endereço à camada de consenso, isso não pode ser desfeito ou alterado novamente. Verifique a propriedade e a precisão do endereço fornecido antes de enviar. - - -Não há nenhuma ameaça aos seus fundos enquanto não fornecer essa conta, contanto que sua frase mnemônica/de recuperação tenha permanecido segura offline e não tenha sido comprometida de nenhuma forma. A falha em adicionar credenciais de saque simplesmente deixará o ETH bloqueado na conta do validador como tem estado até que um endereço de saque seja fornecido. - -## Saindo do staking por completo {#exiting-staking-entirely} - -Fornecer um endereço de saque é necessário antes que _quaisquer_ fundos possam ser transferidos de um saldo de uma conta do validador. - -Os usuários que procuram sair totalmente do staking e sacar seu saldo total de volta, também devem assinar e transmitir uma mensagem de "saída voluntária", com as chaves do validador que iniciarão o processo de saída do staking. Isso é feito com o seu cliente validador e enviado ao seu nó de consenso, e não exige gás. - -O processo de saída de um validador do staking leva uma quantidade variável de tempo, dependendo de quantos outros estão saindo ao mesmo tempo. Uma vez concluída, esta conta não será mais responsável por executar as obrigações de rede do validador, não será mais elegível para recompensas e não terá mais seu ETH "em stake". Nesse momento, a conta será marcada como totalmente “sacável”. - -Uma vez que uma conta é marcada como "sacável" e as credenciais de saque são fornecidas, não há mais nada que o usuário precise fazer além de esperar. As contas são automática e continuamente varridas por proponentes de bloco para fundos elegíveis de saída, e o saldo da sua conta será transferido integralmente (também conhecido como "saque total") durante a próxima varredura. - -## Quando os saques de staking são ativados? {#when} - -Os saques de stake já estão disponíveis! A funcionalidade de saque foi habilitada como parte da atualização Shanghai/Capella que ocorreu em 12 de abril de 2023. - -A atualização Shanghai/Capella permitiu que o ETH previamente em stake fosse recuperado em contas normais do Ethereum. Isso fechou o ciclo de liquidez de stake e trouxe o Ethereum a um passo mais perto de sua jornada para a construção de um ecossistema descentralizado sustentável, dimensionável e seguro. - -- [Mais sobre a história do Ethereum](/history/) -- [Mais sobre o roteiro do Ethereum](/roadmap/) - -## Como funcionam os pagamentos de saque? {#how-do-withdrawals-work} - -Se um determinado validador é elegível para um saque ou não é determinado pelo estado da própria conta do validador. Nenhuma entrada de usuário é necessária a um dado momento para determinar se uma conta deveria ter um saque iniciado ou não — todo o processo é realizado automaticamente pela camada de consenso em um loop contínuo. - -### Você é o tipo de pessoa que aprende mais com recursos visuais? {#visual-learner} - -Confira esta explicação sobre saques de staking do Ethereum pela Finematics: - - - -### Validador de "varredura" {#validator-sweeping} - -Quando um validador está agendado para propor o próximo bloco, ele é necessário para construir uma fila de saque de até 16 saques elegíveis. Isso é feito originalmente começando com o validador de índice 0, determinando se há um saque elegível para essa conta, conforme as regras do protocolo, e adicionando-o à fila, se houver. O validador definido para propor o bloco seguinte continuará de onde o último parou, progredindo em ordem indefinidamente. - - -Pense em um relógio analógico. O ponteiro no relógio aponta para a hora, avança em uma direção, não pula nenhuma hora e, por fim, volta ao início após alcançar o último número.

-Agora, em vez de 1 a 12, imagine que o relógio é de 0 a N (o total de números de contas de validador que foram registradas na camada de consenso, mais de 500 mil em janeiro de 2023).

-O ponteiro do relógio aponta para o próximo validador que precisa ser verificado quanto a saques elegíveis. Começa em 0 e avança ao longo de todo o caminho sem pular nenhuma conta. Quando o último validador é alcançado, o ciclo continua de volta ao início. -
- -#### Verificando os saques de uma conta {#checking-an-account-for-withdrawals} - -Enquanto um proponente está verificando os validadores para possíveis saques, cada validador que está sendo verificado é avaliado em relação a uma pequena série de perguntas para determinar se um saque deve ser acionado e, em caso afirmativo, o quanto de ETH deve ser sacado. - -1. **Foi fornecido um endereço para saque?** Se nenhum endereço para saque foi fornecido, a conta é ignorada e nenhum saque é iniciado. -2. **O validador saiu e pode ser sacado?** Se o validador saiu completamente, e chegamos à época em que sua conta é considerada "sacável", então um saque total será processado. Isso transferirá todo o saldo restante para o endereço de saque. -3. **O saldo efetivo é maximizado em 32?** Se a conta que tiver credenciais de saque não for completamente encerrada e tiver recompensas acima de 32 em espera, um saque parcial será processado, o qual transfere apenas as recompensas acima de 32 para o endereço de saque do usuário. - -Existem apenas duas ações tomadas pelos operadores do validador ao longo do seu ciclo de vida que influenciam diretamente esse fluxo: - -- Fornecer credenciais de saque para habilitar qualquer forma de saque -- Sair da rede, o que desencadeará um saque total - -### Gás gratuito {#gas-free} - -Essa abordagem para saques de staking evita exigir que os stakers (participantes) enviem manualmente uma transação solicitando que uma quantia específica de ETH seja sacada. Isso significa que **nenhum gás (taxa de transação) é necessário** e os saques também não competem pelo espaço do bloco da camada de execução existente. - -### Com que frequência receberei minhas recompensas de staking? {#how-soon} - -Um máximo de 16 saques pode ser processado em um único bloco. A esse ritmo, 115.200 saques de validadores podem ser processados por dia (supondo que não haja slots perdidos). Conforme observado acima, os validadores sem saques elegíveis serão ignorados, diminuindo o tempo para concluir a varredura. - -Expandindo esse cálculo, podemos estimar o tempo que levará para processar um determinado número de saques: - - - -| Número de saques | Tempo de execução | -| :--------------: | :---------------: | -| 400.000 | 3,5 dias | -| 500.000 | 4,3 dias | -| 600.000 | 5,2 dias | -| 700.000 | 6,1 dias | -| 800.000 | 7,0 dias | - - - -Como você poder ver, isso fica lento à medida que mais validadores estão na rede. Um aumento nos slots perdidos poderia diminuir proporcionalmente, mas isso geralmente representará o lado mais lento dos resultados possíveis. - -## Perguntas frequentes {#faq} - - -Não, o processo para fornecer credenciais de saque é um processo único e não pode ser modificado após o envio. - - - -Ao definir um endereço de saque da camada de execução, as credenciais de saque para esse validador foram permanentemente alteradas. Isso significa que as credenciais antigas não funcionarão mais, e as novas credenciais serão direcionadas para uma conta de camada de execução. - -Os endereços de saque podem ser ou um contrato inteligente (controlado por seu código), ou uma conta de propriedade externa (EOA, controlada por sua chave privada). Atualmente, essas contas não têm como comunicar uma mensagem de volta para a camada de consenso, que sinalizaria uma mudança nas credenciais do validador, e adicionar essa funcionalidade aumentaria a complexidade do protocolo desnecessariamente. - -Uma alternativa para mudar o endereço de saque de um validador específico implicaria os usuários poderem optar por definir um contrato inteligente como seu endereço de saque, o que permitiria lidar com a rotação de chaves, como um cofre. Os usuários que definem seus fundos para seu próprio EOA podem realizar uma saída completa para sacar todos os seus fundos em stake e, em seguida, refazer o stake usando novas credenciais. - - - - -Se você faz parte de uma participação combinada (participação em pool) ou mantém tokens participados, deve solicitar ao seu provedor mais detalhes sobre o processamento de saques de participação, pois cada serviço funciona de maneira diferente. - -Em geral, os usuários podem recuperar seu ETH subjacente em stake ou alterar o provedor de stake que utilizam quando quiserem. Se um pool em particular estiver ficando muito grande, os fundos podem ser encerrados, resgatados e reinvestidos com um provedor menor. Ou então, se você acumulou ETH suficiente, pode fazer stake em casa. - - - - -Sim, desde que seu validador forneça um endereço de saque. Isso deve ser fornecido uma vez para permitir, inicialmente, quaisquer saques. Em seguida, os pagamentos de recompensa serão acionados automaticamente em poucos dias a cada varredura do validador. - - - - -Não, se o seu validador ainda estiver ativo na rede, um saque total não acontecerá automaticamente. Isso exige iniciar manualmente uma saída voluntária. - -Após um validador ter concluído o processo de saída, e presumindo que a conta tenha credenciais de saque, o saldo restante será então sacado durante a próxima varredura do validador. - - - - -Os saques foram projetados para serem enviados automaticamente, transferindo qualquer ETH que não esteja contribuindo ativamente para o stake. Isso inclui saldos completos das contas que completaram o processo de saída. - -Não é possível solicitar manualmente o saque de quantidades específicas de ETH. - - - - -Recomenda-se que os operadores do validador visitem a página Plataforma de Saque de Stake, na qual você encontrará mais detalhes sobre como preparar seu validador para saques. preparado, tempo de eventos e mais detalhes sobre como funcionam os saques. - -Para testar a sua configuração numa rede de testes, primeiro visite o Goerli Testnet Staking Launchpad para começar. - - - - -Não. Uma vez que um validador tenha saído e seu saldo completo tenha sido sacado, quaisquer fundos adicionais depositados nesse validador serão automaticamente transferidos para o endereço de saque durante a próxima varredura do validador. Para recolocar o ETH em stake, um novo validador deve ser ativado. - - -## Leitura adicional {#further-reading} - -- [Saques da plataforma de staking](https://launchpad.ethereum.org/withdrawals) -- [EIP-4895: Saques por push da Beacon chain como operações](https://eips.ethereum.org/EIPS/eip-4895) -- [Ethereum Cat Herders - Shanghai](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) -- [PEEPanEIP #94: Saque de ETH em skate (teste) com Potus e Hsiao-Wei Wang](https://www.youtube.com/watch?v=G8UstwmGtyE) -- [PEEPanEIP#68: EIP-4895: Beacon chain envia por push saques como operações com Alex Stokes](https://www.youtube.com/watch?v=CcL9RJBljUs) -- [Compreendendo como o Saldo Efetivo do Validador funciona](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/pt/dao/index.md b/src/content/translations/pt/dao/index.md deleted file mode 100644 index d6967478509..00000000000 --- a/src/content/translations/pt/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: Organizações Autónomas Descentralizadas (DAO) -description: Uma visão geral de DAO na Ethereum -lang: pt -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: Representação da votação de uma proposta numa DAO. -summaryPoint1: Comunidades pertencentes aos membros, sem liderança centralizada. -summaryPoint2: Uma forma segura de colaborar com desconhecidos na internet. -summaryPoint3: Um local seguro para afetar fundos a uma causa específica. ---- - -## O que são DAO? {#what-are-daos} - -Uma DAO é uma organização de propriedade coletiva, governada por uma blockchain (cadeia de blocos), que trabalha para uma missão partilhada. - -As DAO permitem-nos trabalhar com pessoas que pensam da mesma forma em todo o mundo sem confiar num líder benevolente para gerir os fundos ou as operações. Não existe um Diretor Executivo (CEO) que possa gastar fundos por capricho ou um Diretor Financeiro que possa manipular os livros de contas. Em vez disso, as regras baseadas em blockchain inscritas no código definem como a organização funciona e como os fundos são gastos. - -Têm tesourarias incorporadas às quais ninguém tem autoridade para aceder sem a aprovação do grupo. As decisões são regidas por propostas e votações para garantir que todos na organização têm voz ativa e tudo acontece de forma transparente na cadeia. - -## Porque é que precisamos de DAO? {#why-dao} - -Criar uma organização com alguém que envolve financiamento e dinheiro requer muita confiança nas pessoas com quem se está a trabalhar. Mas é complicado confiar em alguém com quem só interagimos na Internet. Com as DAO não é necessário confiar em mais ninguém do grupo, apenas no código da DAO, que é 100% transparente e verificável por qualquer um. - -Isto abre muitas novas oportunidades de colaboração e coordenação a nível global. - -### Uma comparação {#dao-comparison} - -| DAO | Uma organização tradicional | -| -------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | -| Geralmente plana e totalmente democratizada. | Normalmente hierárquica. | -| É necessária a votação dos seus membros para que quaisquer alterações sejam implementadas. | Dependendo da estrutura, podem ser exigidas alterações a uma única parte ou pode ser proposto um voto. | -| Os votos são contados e o resultado é aplicado automaticamente sem a intervenção de qualquer intermediário de confiança. | Se a votação for permitida, os votos são contabilizados internamente e o resultado da votação deve ser tratado manualmente. | -| Os serviços oferecidos são geridos automaticamente de forma descentralizada (por exemplo, distribuição de fundos filantrópicos). | Requer manuseamento humano ou automatização controlada centralmente, propensos a manipulação. | -| Toda a atividade é transparente e totalmente pública. | A atividade é tipicamente privada e limitada ao público. | - -### Exemplos DAO {#dao-examples} - -Para que isto faça mais sentido, eis alguns exemplos de como se pode utilizar uma DAO: - -- Uma instituição de caridade - pode aceitar donativos de qualquer pessoa no mundo e votar em que causas financiar. -- Propriedade coletiva - pode adquirir ativos físicos ou digitais e os membros podem votar sobre a forma de os utilizar. -- Empreendimentos e subvenções - pode criar um fundo de risco que reúna capital de investimento e vote em que empreendimentos apoiar. O dinheiro reembolsado pode mais tarde ser redistribuído entre os membros da DAO. - -## Como funcionam as DAO? {#how-daos-work} - -A espinha dorsal de uma DAO é o seu contrato inteligente, que define as regras da organização e detém a tesouraria do grupo. Assim que o contrato estiver ativo na Ethereum, ninguém pode alterar as suas regras, exceto através de uma votação. Se alguém tentar fazer algo que não esteja abrangido pelas regras e pela lógica do código, falhará. E como a tesouraria também é definida pelo contrato inteligente, isso significa que ninguém pode gastar dinheiro sem a aprovação do grupo. Isto significa que as DAO não precisam de uma autoridade central. Em vez disso, o grupo toma decisões coletivamente e os pagamentos são automaticamente autorizados quando as propostas são aprovadas. - -Isto é possível porque os contratos inteligentes são à prova de adulteração quando entram em funcionamento na Ethereum. Não se pode simplesmente editar o código (as regras das DAO) sem que as pessoas se apercebam, porque tudo é público. - - - Mais sobre contratos inteligentes - - -## Ethereum e DAO {#ethereum-and-daos} - -A Ethereum é a base perfeita para DAO por uma série de razões: - -- O próprio consenso da Ethereum é distribuído e estabelecido o suficiente para que as organizações confiem na rede. -- O código do contrato inteligente não pode ser modificado uma vez ativo, nem mesmo pelos seus proprietários. Isto permite que a DAO funcione de acordo com as regras com que foi programado. -- Os contratos inteligentes podem enviar e receber fundos. Sem isso, seria necessário um intermediário de confiança para gerir os fundos do grupo. -- A comunidade Ethereum provou ser mais colaborativa do que competitiva, permitindo que as melhores práticas e sistemas de apoio surjam rapidamente. - -## Governança DAO {#dao-governance} - -Há muitas considerações a ter em conta quando se governa uma DAO, tais como o modo de funcionamento da votação e das propostas. - -### Delegação {#governance-delegation} - -A delegação é a versão DAO da democracia representativa. Os detentores de tokens delegam os votos em utilizadores que se nomeiam a si próprios e se comprometem a gerir o protocolo e a manterem-se informados. - -#### Um exemplo famoso {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) - Os titulares de ENS podem delegar os seus votos em membros da comunidade empenhados em representá-los. - -### Governação automática de transações {#governance-example} - -Em muitas DAO, as transações serão automaticamente executadas se um quórum de membros votar favoravelmente. - -#### Um exemplo famoso {#governance-example} - -[Nouns](https://nouns.wtf) - Na Nouns DAO, uma transação é automaticamente executada se houver quórum de votos e a maioria votar afirmativamente, desde que não seja vetada pelos fundadores. - -### Governança Multisig {#governance-example} - -Enquanto as DAO podem ter milhares de membros votantes, os fundos podem viver numa carteira partilhada por 5 a 20 membros ativos da comunidade que são de confiança e geralmente doxxed (identidades públicas conhecidas pela comunidade). Após uma votação, os signatários multisig executam a vontade da comunidade. - -## Leis DAO {#dao-laws} - -Em 1977, o estado Americano de Wyoming inventou a LLC, que protege os empresários e limita a sua responsabilidade. Mais recentemente, foram os pioneiros da lei DAO, que estabelece o estatuto jurídico das DAO. Atualmente, os estados Americanos do Wyoming, Vermont e as Ilhas Virgens têm leis equivalentes à lei DAO. - -#### Um exemplo famoso {#law-example} - -[CityDAO](https://citydao.io) - A CityDAO utilizou a lei DAO do Wyoming para comprar 40 acres de terreno perto do Parque Nacional de Yellowstone. - -## Adesão à DAO {#dao-membership} - -Existem diferentes modelos de adesão à DAO. Os membros podem determinar como funciona a votação e outras áreas importantes do DAO. - -### Adesão baseada em tokens {#token-based-membership} - -Normalmente sem permissões, dependendo do token utilizado. Na sua maioria, estes tokens de governação podem ser negociados sem autorização, numa bolsa descentralizada. Outros devem ser ganhos através do fornecimento de liquidez ou de alguma outra "prova de trabalho". De qualquer forma, a simples posse do token dá acesso às votações. - -_Tipicamente utilizado para gerir protocolos descentralizados alargados e/ou os próprios tokens._ - -#### Um exemplo famoso {#token-example} - -[MakerDAO](https://makerdao.com) - O token MKR da MakerDAO está amplamente disponível em bolsas descentralizadas e qualquer pessoa pode comprar para ter poder de voto no futuro do protocolo Maker. - -### Participação com base em ações {#share-based-membership} - -As DAO baseadas em ações são mais controladas, mas ainda assim bastante abertas. Todos os potenciais membros podem apresentar uma proposta de adesão à DAO, oferecendo normalmente um tributo de algum valor sob a forma de tokens ou trabalho. As ações representam o poder de voto direto e a propriedade. Os membros podem sair a qualquer momento com a sua parte proporcional da tesouraria. - -_Tipicamente utilizado para organizações mais unidas e centradas no ser humano, como instituições de caridade, coletivos de trabalhadores e clubes de investimento. Podem também gerir protocolos e tokens._ - -#### Um exemplo famoso {#share-example} - -[MolochDAO](http://molochdao.com/) - A MolochDAO está focada no financiamento de projetos Ethereum. É necessária uma proposta de adesão para que o grupo possa avaliar se o proponente tem os conhecimentos e o capital necessários para fazer juízos informados sobre potenciais beneficiários. Não se pode simplesmente comprar o acesso ao DAO no mercado aberto. - -### Adesão com base na reputação {#reputation-based-membership} - -A reputação representa uma prova de participação e concede poder de voto na DAO. Ao contrário da adesão baseada em tokens ou acções, as DAO baseadas na reputação não transferem a propriedade para os seus contribuintes. A reputação não pode ser comprada, transferida ou delegada; os membros da DAO devem ganhar reputação através da sua participação. A votação em cadeia não tem permissões e os potenciais membros podem apresentar livremente propostas de adesão à DAO e pedir para receber reputação e tokens como recompensa em troca das suas contribuições. - -_Tipicamente utilizado para o desenvolvimento descentralizado e governação de protocolos e dapps, mas também adequado a um conjunto diversificado de organizações como instituições de caridade, coletivos de trabalhadores, clubes de investimento, etc._ - -#### Um exemplo famoso {#reputation-example} - -[DXdao](https://DXdao.eth.link) - DXdao é um coletivo soberano global que constrói e governa protocolos e aplicações descentralizadas desde 2019. Utiliza a governação baseada na reputação e o consenso holográfico para coordenar e gerir fundos, o que significa que ninguém pode comprar o seu caminho para influenciar o seu futuro. - -## Aderir / criar uma DAO {#join-start-a-dao} - -### Join a DAO {#join-a-dao} - -- [DAO da comunidade Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [Lista DAOHaus de DAO](https://app.daohaus.club/explore) -- [Lista de DAO da Tally.xyz](https://www.tally.xyz) - -### Criar uma DAO {#start-a-dao} - -- [Invocar uma DAO com DAOHaus](https://app.daohaus.club/summon) -- [Iniciar uma DAO governamental com o Tally](https://www.tally.xyz/add-a-dao) -- [Criar uma DAO com tecnologia Aragon](https://aragon.org/product) -- [Criar uma colónia](https://colony.io/) -- [Criar uma DAO com o consenso holográfico da DAOstack](https://alchemy.daostack.io/daos/create) - -## Leitura adicional {#further-reading} - -### Artigos DAO {#dao-articles} - -- [O que é uma DAO?](https://aragon.org/dao) - [Aragon](https://aragon.org/) -- [O manual da DAO](https://daohandbook.xyz) -- [A Casa das DAO](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) - [Metagame](https://wiki.metagame.wtf/) -- [O que é e para que serve uma DAO?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) - [DAOhaus](https://daohaus.club/) -- [Como iniciar uma comunidade digital potenciada por DAO](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) - [DAOhaus](https://daohaus.club/) -- [O que é uma DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) - [Coinmarketcap](https://coinmarketcap.com) -- [O que é o Consenso Holográfico?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) -- [As DAO não são empresas: onde é importante a descentralização em organizações autónomas, por Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) -- [DAO, DAC, DA e mais: Um Guia de Terminologia Incompleto](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Blog do Ethereum](https://blog.ethereum.org) - -### Vídeos {#videos} - -- [O que é uma DAO em criptografia?](https://youtu.be/KHm0uUPqmVE) -- [Uma DAO pode construir uma cidade?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) - [TED](https://www.ted.com/) diff --git a/src/content/translations/pt/decentralized-identity/index.md b/src/content/translations/pt/decentralized-identity/index.md deleted file mode 100644 index a31bd54cf02..00000000000 --- a/src/content/translations/pt/decentralized-identity/index.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: Identidade descentralizada -description: O que é a identidade descentralizada, e porque é importante? -lang: pt -template: use-cases -emoji: ":id:" -sidebarDepth: 2 -image: ../../../../assets/eth-gif-cat.png -summaryPoint1: Nos sistemas de identidade tradicionais, a emissão, manutenção e controlo da identificação dos utilizadores são centralizados. -summaryPoint2: Um sistema de identidade descentralizada deixa de depender de terceiros centralizados. -summaryPoint3: Graças à criptografia, os utilizadores possuem agora as ferramentas para conseguir emitir, manter e controlar a sua identificação e a respetiva prova da mesma. ---- - -Atualmente, a identidade está subjacente a praticamente todos os aspectos das nossas vidas. Utilizar serviços online, abrir uma conta bancária, votar em eleições, comprar um imóvel, garantir um emprego - tudo isto requer a prova da sua identidade. - -No entanto, os sistemas tradicionais de gestão de identidades há muito que dependem de intermediários centralizados que emitem, detêm e controlam os identificadores e [sua validação](#what-are-attestations). Isto significa que não pode controlar as informações relacionadas com a sua identidade ou decidir quem tem acesso a informações pessoalmente identificáveis (IPI) e qual o grau de acesso que essas entidades têm. - -Para resolver estes problemas, temos sistemas de identidade descentralizados construídos em blockchains públicos como o Ethereum. A identidade descentralizada permite aos indivíduos gerir a informação relacionada com a sua identidade. Com soluções de identidade descentralizadas, _podemos_ criar identificadores e reivindicar e manter as nossas certificações sem depender de autoridades centrais, como fornecedores de serviços ou governos. - -## O que é a identidade? {#what-is-identity} - -Identidade significa o sentido de individualidade de um indivíduo, definido por caraterísticas únicas. A identidade refere-se a ser um _indivíduo_, ou seja, uma entidade humana distintiva. A identidade pode também referir-se a outras entidades não humanas, como uma organização ou autoridade. - -## O que são identificadores? {#what-are-identifiers} - -Um identificador é um tipo de informação que funciona como um identificador para uma identidade ou identidades específicas. Os identificadores mais comuns incluem: - -- Nome -- Número da segurança social/número de identificação fiscal -- Número de telemóvel -- Data e local de nascimento -- Credenciais de identificação digital, por exemplo, endereços de correio eletrónico, nomes de utilizador, avatares - -Estes exemplos convencionais de identificadores são emitidos, detidos e controlados por entidades centrais. É necessária uma autorização do governo para alterar o nosso nome ou de uma plataforma de rede social para alterar o nosso nome de utilizador. - -## O que são certificações? {#what-are-attestations} - -Uma certificação é uma afirmação feita por uma entidade sobre outra entidade. Se vive nos Estados Unidos, a carta de condução que lhe é emitida pelo Department of Motor Vehicles (uma entidade) atesta que você (outra entidade) está legalmente autorizado a conduzir um determinado tipo de veículo. - -As certificações são diferentes dos identificadores. Uma certificação _contém_ identificadores que fazem referência a uma determinada identidade e faz uma declaração sobre um atributo relacionado com essa identidade. Assim, a sua carta de condução tem identificadores (nome, data de nascimento, morada) mas é também a certificação do seu direito legal de conduzir. - -### O que são identificadores descentralizados? {#what-are-decentralized-identifiers} - -Os identificadores tradicionais, como o seu nome jurídico ou endereço de correio eletrónico, dependem de terceiros - governos e fornecedores de correio eletrónico. Os identificadores descentralizados (DIDs) são diferentes - não são emitidos, geridos ou controlados por uma entidade central. - -Os identificadores descentralizados são emitidos, detidos e controlados por pessoas singulares. Uma [conta Ethereum](/developers/docs/accounts/) é um exemplo de um identificador descentralizado. Pode criar tantas contas quantas quiser sem a permissão de terceiros e sem a necessidade de as armazenar num registo central. - -Os identificadores descentralizados são armazenados em registos distribuídos ("blockchains") ou em redes peer-to-peer. Isto torna os DIDs [únicos a nível mundial, resolúveis com elevada disponibilidade e criptograficamente verificáveis](https://w3c-ccg.github.io/did-primer/). Um identificador descentralizado pode ser associado a diferentes entidades, incluindo indivíduos, organizações ou instituições governamentais. - -## O que torna possíveis os identificadores descentralizados? {#what-makes-decentralized-identifiers-possible} - -### 1. Infraestrutura de chave pública (PKI) {#public-key-infrastructure} - -A infraestrutura de chave pública (PKI) é uma medida de segurança da informação que gera uma [chave pública](/glossary/#public-key) e uma [chave privada](/glossary/#private-key) para uma entidade. A criptografia de chave pública é utilizada nas redes de blockchain para autenticar as identidades dos utilizadores e provar a propriedade de ativos digitais. - -Alguns identificadores descentralizados, como uma conta Ethereum, têm chaves públicas e privadas. A chave pública identifica o responsável pelo controlo da conta, enquanto as chaves privadas podem assinar e desencriptar mensagens para esta conta. A PKI fornece as provas necessárias para autenticar entidades e impedir a falsificação de identidade e a utilização de identidades falsas, utilizando [assinaturas criptográficas](https://andersbrownworth.com/blockchain/public-private-keys/) para verificar todas as declarações. - -### 2. Datastores descentralizados {#decentralized-datastores} - -Um blockchain funciona como um registo de dados verificável: um repositório de informação aberto, isento e descentralizado. A existência de blockchains públicas elimina a necessidade de armazenar identificadores em registos centralizados. - -Se alguém precisar de confirmar a validade de um identificador descentralizado, pode procurar a chave pública associada no blockchain. Isto é diferente dos identificadores tradicionais que exigem a autenticação de terceiros. - -## Como é que os identificadores e as certificações descentralizadas permitem a identidade descentralizada? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} - -A identidade descentralizada é a noção de que as informações relacionadas com a identidade devem ser autocontroladas, privadas e portáteis, sendo os identificadores e as certificações descentralizadas os principais blocos de construção. - -No contexto da identidade descentralizada, as certificações (também conhecidas como [Verifiable Credentials](https://www.w3.org/TR/vc-data-model/)) são afirmações à prova de adulteração e criptograficamente verificáveis efetuadas pelo emissor. Cada atestado ou Credencial Verificável que uma entidade (por exemplo, uma organização) emite está associado ao seu DID. - -Uma vez que os DIDs são armazenados no blockchain, qualquer um pode verificar a validade de um atestado através da verificação cruzada do DID do emissor no Ethereum. Basicamente, a blockchain Ethereum funciona como um diretório global que permite a verificação de DIDs associados a determinadas entidades. - -Os identificadores descentralizados são a razão pela qual os certificados são autocontrolados e verificáveis. Mesmo que o emissor já não exista, o titular tem sempre uma prova da proveniência e validade do certificado. - -Os identificadores descentralizados são também cruciais para proteger a privacidade das informações pessoais através da identidade descentralizada. Por exemplo, se alguém apresentar um comprovativo de um certificado (uma carta de condução), a parte verificadora não precisa de verificar a validade das informações contidas no comprovativo. Neste caso, o verificador só precisa de garantias criptográficas da autenticidade do certificado e da identidade da organização emissora para determinar se a prova é válida. - -## Tipos de certificados na identidade descentralizada {#types-of-attestations-in-decentralized-identity} - -A forma como as informações de certificação são armazenadas e recuperadas num ecossistema de identidade baseado no Ethereum é diferente da gestão de identidade tradicional. Segue-se uma visão geral das várias abordagens à emissão, armazenamento e verificação de certificados em sistemas de identidade descentralizados: - -### Certificados Off-chain {#off-chain-attestations} - -Uma preocupação com o armazenamento de certificados na cadeia é o facto de poderem conter informações que as pessoas pretendem manter privadas. A natureza pública da blockchain Ethereum torna pouco atrativo o armazenamento de tais certificados. - -A solução consiste em emitir certificados, detidos pelos utilizadores fora da cadeia em carteiras digitais, mas assinados com o DID do emissor armazenado na cadeia. Estes certificados são codificados como [JSON Web Tokens](https://en.wikipedia.org/wiki/JSON_Web_Token) e contêm a assinatura digital do emissor, o que permite uma fácil verificação de declarações fora da cadeia. - -Apresentamos aqui um cenário hipotético para explicar os certificados fora da cadeia: - -1. Uma universidade (o emissor) gera um certificado (um diploma académico digital), assina com as suas chaves e emite-o para Bob (o proprietário da identidade). - -2. Bob candidata-se a um emprego e quer provar as suas habilitações académicas a um empregador, pelo que partilha o certificado na sua carteira móvel. A empresa (o verificador) pode então confirmar a validade do certificado verificando o DID do emissor (ou seja, a sua chave pública no Ethereum). - -### Certificados fora da cadeia com acesso persistente {#offchain-attestations-with-persistent-access} - -De acordo com esse esquema, os certificados são transformados em ficheiros JSON e armazenados fora da cadeia (idealmente numa plataforma de [armazenamento descentralizado na nuvem](/developers/docs/storage/), como IPFS ou Swarm). No entanto, um [hash](/glossary/#hash) do ficheiro JSON é armazenado na cadeia e ligado a um DID através de um registo na cadeia. A DID associada pode ser a do emissor do certificado ou a do destinatário. - -Esta abordagem permite que os certificados ganhem persistência com base na blockchain, mantendo a informação dos pedidos encriptada e verificável. Permite também a divulgação seletiva, uma vez que o detentor da chave privada pode decifrar a informação. - -### Certificados Off-chain {#onchain-attestations} - -Os certificados na cadeia são mantidos em [smart contracts](/developers/docs/smart-contracts/) na blockchain Ethereum. O contrato inteligente (agindo como um registo) mapeará um certificado para um identificador descentralizado correspondente na cadeia (uma chave pública). - -Segue-se um exemplo para mostrar como os certificados na cadeia podem funcionar na prática: - -1. Uma empresa (XYZ Corp) pretende vender ações de propriedade usando um contrato inteligente, mas só quer compradores que tenham concluído uma verificação do seu historial. - -2. A XYZ Corp pode fazer com que a empresa que efetua verificações de historiais emita certificados na cadeia no Ethereum. Este certificado comprova que uma pessoa passou o inquérito pessoal sem expor qualquer informação pessoal. - -3. O contrato inteligente que efetua a venda de ações pode verificar no contrato de registo as identidades dos compradores selecionados, o que permite ao contrato inteligente determinar quem está autorizado a comprar ou não ações. - -### Tokens Soulbound (de alma) e identidade {#soulbound} - -[Tokens Soulbound](https://vitalik.ca/general/2022/01/26/soulbound.html) (NFTs não transferíveis) podem ser utilizados para recolher informações exclusivas de uma carteira específica. Isto cria efetivamente uma identidade única na cadeia ligada a um endereço Ethereum específico que pode incluir tokens que representam realizações (por exemplo, terminar um curso online específico ou passar uma pontuação limite num jogo) ou participação na comunidade. - -## Benefícios da identidade descentralizada {#benefits-of-decentralized-identity} - -1. A identidade descentralizada reforça o controlo individual das informações de identificação. Os identificadores e certificados descentralizados podem ser verificados sem depender de autoridades centralizadas ou serviços de terceiros. - -2. As soluções de identidade descentralizadas facilitam um método sem necessidade de confiança, sem falhas e com proteção da privacidade para verificar e gerir a identidade do utilizador. - -3. A identidade descentralizada aproveita a tecnologia blockchain, que cria relações de confiança entre diferentes partes e fornece garantias criptográficas para provar a validade dos certificados. - -4. A Identidade descentralizada torna portáteis os dados de identidade. Os utilizadores armazenam certificados e identificadores na carteira móvel e podem partilhá-los com qualquer entidade à sua escolha. Os identificadores e certificados descentralizados não ficam bloqueados na base de dados da organização emissora. - -5. A identidade descentralizada deve funcionar perfeitamente com as tecnologias emergentes de conhecimento zero que permitirão aos indivíduos provar que possuem ou realizaram algo sem revelar o que é esse algo. Esta pode tornar-se uma forma poderosa de combinar confiança e privacidade em aplicações como votações. - -6. A identidade descentralizada permite que os mecanismos anti-Sybil identifiquem quando um indivíduo humano está a fingir ser vários humanos para jogar ou enviar spam para um sistema. - -## Casos de utilização de identidade descentralizada {#decentralized-identity-use-cases} - -A identidade descentralizada tem muitos exemplos potenciais de utilização: - -### 1. Logins universais {#universal-dapp-logins} - -A identidade descentralizada pode ajudar a substituir os logins baseados em palavra-passe por [autenticação descentralizada](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). Os prestadores de serviços podem emitir certificados para os utilizadores, que podem ser armazenados numa carteira Ethereum. Um exemplo de certificado seria um [NFT](/nft/) que concede ao titular acesso a uma comunidade online. - -Uma função [Sign-In com Ethereum](https://login.xyz/) permitiria então aos servidores confirmar a conta Ethereum do utilizador e obter o atestado necessário a partir do endereço da sua conta. Isto significa que os utilizadores podem aceder a plataformas e websites sem terem de memorizar palavras-passe longas e permite melhorar a experiência online dos utilizadores. - -### 2. Autenticação KYC {#kyc-authentication} - -A utilização de muitos serviços online exige que as pessoas forneçam certificados e credenciais, como a carta de condução ou o passaporte emitido pelo Estado. Mas esta abordagem é problemática porque as informações privadas do utilizador podem ser comprometidas e os prestadores de serviços não podem verificar a autenticidade do certificado. - -A identidade descentralizada permite que as empresas ignorem os processos [Conheça o seu cliente (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) convencionais e autentiquem as identidades dos utilizadores através de credenciais verificáveis. Isto reduz o custo de gestão da identidade e previne a utilização de documentação falsa. - -### 3. As votações e as comunidades online {#voting-and-online-communities} - -A votação online e as redes sociais são duas novas aplicações que permitem a descentralização da identidade. Os sistemas de votação online são suscetíveis à manipulação, especialmente se atores criminosos criarem identidades falsas para votar. Pedir às pessoas que apresentem certificados na cadeia pode melhorar a integridade dos processos de votação online. - -A identidade descentralizada pode contribuir para a criação de comunidades online livres de contas falsas. Por exemplo, cada utilizador pode ter que autenticar a sua identidade usando um sistema de identidade na cadeia, como o Ethereum Name Service, limitando a possibilidade de bots. - -### 4. Proteção anti-Sybil {#sybil-protection} - -Os ataques Sybil referem-se a pessoas individuais que iludem um sistema, fazendo-o pensar que são várias pessoas para aumentar a sua influência. [Aplicações de atribuição de subsídios](https://gitcoin.co/grants/) que utilizam [votação quadrática](https://www.radicalxchange.org/concepts/plural-voting/) são vulneráveis a estes ataques Sybil porque o valor de um subsídio aumenta quando mais indivíduos votam nele, incentivando os utilizadores a dividir as suas contribuições por muitas identidades. As identidades descentralizadas ajudam a evitar esta situação, colocando sobre cada participante o ónus de provar que é realmente humano, embora muitas vezes sem ter de revelar informações privadas concretas. - -## Usar identidade descentralizada {#use-decentralized-identity} - -Existem muitos projetos ambiciosos que utilizam o Ethereum como base para soluções de identidade descentralizadas: - -- **[Ethereum Name Service (ENS)](https://ens.domains/)** - _ Um sistema de nomenclatura descentralizado para identificadores legíveis por computadores on-chain, como endereços de carteira Ethereum, hashes de conteúdo e metadados._ -- **[SpruceID](https://www.spruceid.com/)** - _Um projeto de identidade descentralizado que permite aos utilizadores controlar a identidade digital com contas Ethereum e perfis ENS em vez de dependerem de serviços de terceiros._ -- **[Ethereum Attestation Service (EAS)](https://attest.sh/)** - _Um livro-razão/protocolo descentralizado para fazer certificações na cadeia ou fora da cadeia sobre qualquer coisa._ -- **[Proof of Humanity](https://www.proofofhumanity.id)** - _Proof of Humanity (ou PoH) é um sistema de verificação de identidade social desenvolvido em Ethereum._ -- **[BrightID](https://www.brightid.org/)** - _Uma rede de identidade social descentralizada e de código aberto que procura reformular a verificação de identidade através da criação e análise de um diagrama social._ -- **[Proof-of-personhood Passport (Passaporte de prova de identidade)](https://proofofpersonhood.com/)** - _Um agregador de identidade digital descentralizado._ - -## Leitura adicional {#further-reading} - -### Artigos {#articles} - -- [Exemplos de uso de blockchain: Blockchain na Identidade Digital](https://consensys.net/blockchain-use-cases/digital-identity/) - _ConsenSys_ -- [O que é o Ethereum ERC725? Gestão da identidade auto-soberana na Blockchain](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) - _Sam Town_ -- [Como a blockchain pode resolver o problema da identidade digital](https://time.com/6142810/proof-of-humanity/) - _Andrew R. Chow_ -- [O que é identidade descentralizada e por que motivo nos devemos interessar?](https://web3.hashnode.com/what-is-decentralized-identity) - _Emmanuel Awosika_ - -### Vídeos {#videos} - -- [Identidade descentralizada (sessão de transmissão ao vivo como bónus)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) - _Um excelente vídeo explicativo sobre identidade descentralizada por Andreas Antonopolous_ -- [Sign-in com Ethereum e identidade descentralizada com Ceramic, IDX, React e 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) - _Tutorial no YouTube sobre a elaboração de um sistema de gestão de identidade para criar, ler e atualizar o perfil de um indivíduo usando a carteira Ethereum por Nader Dabit_ -- [BrightID - Identidade descentralizada no Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM) - _Episódio de podcast sobre o BrightID, uma solução de identidade descentralizada para o Ethereum_ -- [A Internet fora da cadeia: Identidade Descentralizada & Credenciais Verificáveis](https://www.youtube.com/watch?v=EZ_Bb6j87mg) - EthDenver 2022 apresentação feita por Evin McMullen - -### Comunidades {#communities} - -- [Aliança ERC-725 no GitHub](https://github.com/erc725alliance) - _Apoiantes da norma ERC725 para a gestão da identidade na blockchain Ethereum_ -- [Servidor Discord do SpruceID](https://discord.com/invite/Sf9tSFzrnt) - _Comunidade para entusiastas e programadores que trabalham no Sign-in com Ethereum_ -- [Veramo Labs](https://discord.gg/sYBUXpACh4) - _Uma comunidade de programadores que contribui para a criação de uma estrutura de dados verificáveis para aplicações_ diff --git a/src/content/translations/pt/defi/index.md b/src/content/translations/pt/defi/index.md deleted file mode 100644 index eb42d03a3e1..00000000000 --- a/src/content/translations/pt/defi/index.md +++ /dev/null @@ -1,352 +0,0 @@ ---- -title: Finanças descentralizadas (DeFi) -description: Uma visão geral da DeFi na Ethereum -lang: pt -template: use-cases -emoji: ":money_with_wings:" -image: ../../../../assets/use-cases/defi.png -alt: Um logótipo da Eth feito de peças de lego. -sidebarDepth: 2 -summaryPoint1: Uma alternativa global e aberta ao sistema financeiro atual. -summaryPoint2: Produtos que lhe permitem emprestar, economizar, investir, negociar e muito mais. -summaryPoint3: Com base em tecnologia de código aberto com a qual qualquer pessoa pode programar. ---- - -DeFi é um sistema financeiro aberto e global criado para a era da internet, uma alternativa a um sistema que é opaco, rigorosamente controlado e mantido por infraestruturas e processos que existem há décadas. Proporciona-lhe controlo e transparência no que respeita ao seu dinheiro. Permite-lhe ter acesso a mercados globais e a alternativas à sua moeda local ou opções bancárias. Os produtos DeFi disponibilizam serviços financeiros a qualquer pessoa com uma ligação à Internet e são, em grande medida, detidos e mantidos pelos seus utilizadores. Até à data, dezenas de milhares de milhões de dólares em criptomoedas passaram pelas aplicações DeFi e esta tendência aumenta diariamente. - -## O que é DeFi? {#what-is-defi} - -DeFi é um termo coletivo para produtos e serviços financeiros que são acessíveis a qualquer pessoa que possa usar a Ethereum - qualquer pessoa com uma ligação à Internet. Com a DeFi, os mercados estão sempre abertos e não existem autoridades centralizadas que possam bloquear pagamentos ou negar-lhe acesso ao que quer que seja. Os serviços que anteriormente eram lentos e sujeitos ao risco de erro humano são agora automáticos e mais seguros, uma vez que são geridos por um código que qualquer pessoa pode inspecionar e examinar. - -Existe uma economia de criptomoedas em expansão, onde é possível emprestar, pedir emprestado, fazer long/short, ganhar juros e muito mais. Argentinos experientes em criptomoedas utilizaram DeFi para escapar à inflação incapacitante. As empresas começaram a transmitir os salários aos seus colaboradores em tempo real. Algumas pessoas contraíram e pagaram empréstimos no valor de milhões de dólares sem a necessidade de qualquer identificação pessoal. - - - -## DeFi vs Finanças tradicionais {#defi-vs-tradfi} - -Uma das melhores maneiras de conhecer o potencial das DeFi é compreender os problemas que existem atualmente. - -- Algumas pessoas não obtêm acesso à abertura de uma conta bancária ou à utilização de serviços financeiros. -- A falta de acesso a serviços financeiros pode impedir a empregabilidade das pessoas. -- Os serviços financeiros podem impedi-lo de receber pagamentos. -- Um custo oculto dos serviços financeiros são os seus dados pessoais. -- Os governos e as instituições centralizadas podem encerrar os mercados conforme entenderem. -- Os horários de negociação estão frequentemente limitados ao horário comercial de um determinado fuso horário. -- As transferências monetárias podem demorar dias devido a processos humanos internos. -- Existe um prémio para os serviços financeiros porque as instituições intermediárias requerem a sua parte. - -### Uma comparação {#defi-comparison} - -| DeFi | Finanças Tradicionais | -| ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| O seu dinheiro está nas suas mãos. | O seu dinheiro é detido por empresas. | -| Você controla o destino do seu dinheiro e a forma como é gasto. | É necessário confiar nas empresas para que não façam uma má gestão do seu dinheiro, como conceder empréstimos a mutuários de risco. | -| As transferências de fundos são efetuadas em minutos. | Os pagamentos podem demorar dias devido a processos manuais. | -| A atividade de transação é pseudónima. | A atividade financeira está intimamente ligada à sua identidade. | -| As DeFi estão abertas a todos. | Para utilizar os serviços financeiros, é necessário candidatar-se. | -| Os mercados estão sempre abertos. | Os mercados encerram porque os funcionários precisam de pausas. | -| O sistema baseia-se na transparência: qualquer pessoa pode consultar os dados de um produto e verificar o funcionamento do sistema. | As instituições financeiras são livros fechados: não é possível pedir para consultar o seu historial de empréstimos, um registo dos seus ativos geridos, etc. | - - - Explore as aplicações DeFi - - -## Começou com a Bitcoin... {#bitcoin} - -A Bitcoin foi, em muitos aspetos, a primeira aplicação DeFi. A Bitcoin permite-lhe possuir e controlar realmente o valor e enviá-lo para qualquer parte do mundo. Para tal, proporciona uma forma de um grande número de pessoas, que não confiam umas nas outras, chegarem a acordo sobre um registo de contas sem necessidade de um intermediário de confiança. A Bitcoin está aberta a qualquer pessoa e ninguém tem autoridade para alterar as suas regras. As regras da Bitcoin, como a sua escassez e abertura, estão escritas na tecnologia. Não acontece como nas finanças tradicionais, onde os governos podem imprimir dinheiro que desvaloriza as suas poupanças e as empresas podem encerrar os mercados. - -A Ethereum baseia-se neste princípio. À semelhança da Bitcoin, as regras não podem mudar e toda a gente tem acesso. Mas também torna este dinheiro digital programável, utilizando [contratos inteligentes](/glossary#smart-contract), para que se possa ir além do armazenamento e envio de valor. - - - -## Dinheiro programável {#programmable-money} - -Isto parece estranho... "por que razão quereria eu programar o meu dinheiro"? No entanto, trata-se apenas de uma caraterística padrão dos tokens na Ethereum. Qualquer pessoa pode programar uma lógica nos pagamentos. Assim, é possível obter o controlo e a segurança da Bitcoin em combinação com os serviços prestados pelas instituições financeiras. Isso permite-lhe fazer coisas com criptomoedas que não pode fazer com a Bitcoin, como emprestar e pedir emprestado, agendar pagamentos, investir em fundos indexados e muito mais. - - -
Explore as nossas sugestões de aplicações DeFi para experimentar se é novo na Ethereum.
- - Explore as aplicações DeFi - -
- -## O que pode fazer com as DeFi? {#defi-use-cases} - -Existe uma alternativa descentralizada para a maioria dos serviços financeiros. Mas a Ethereum também cria oportunidades para a criação de produtos financeiros completamente novos. Esta é uma lista em constante crescimento. - -- [Envie dinheiro para todo o mundo](#send-money) -- [Transmita dinheiro em todo o mundo](#stream-money) -- [Aceda a moedas estáveis](#stablecoins) -- [Contraia empréstimos com garantias](#lending) -- [Contraia um empréstimo sem garantias](#flash-loans) -- [Inicie uma poupança em criptomoedas](#saving) -- [Negoceie tokens](#swaps) -- [Aumente o seu portfolio](#investing) -- [Financie as suas ideias](#crowdfunding) -- [Adquira seguros](#insurance) -- [Gira o seu portfolio](#aggregators) - - - -### Envie rapidamente dinheiro para todo o mundo {#send-money} - -Enquanto blockchain, a Ethereum foi concebida para enviar transações de forma segura e global. Tal como a Bitcoin, a Ethereum torna o envio de dinheiro para todo o mundo tão simples como enviar um e-mail. Basta digitar o nome [ENS do destinatário](/nft/#nft-domains) (como bob.eth) ou o endereço da carteira correspondente e o seu pagamento será enviado para o destinatário em minutos (normalmente). Para enviar ou receber pagamentos, é necessário ter uma [carteira](/wallets/). - - - Ver dapps de pagamento - - -#### Transmitir dinheiro para todo o mundo... {#stream-money} - -Também é possível transmitir dinheiro através da Ethereum. Isto permite-lhe pagar a alguém o seu salário em segundos, dando-lhe acesso ao seu dinheiro sempre que precisar dele. Ou alugue algo instantaneamente, como um cacifo ou uma scooter elétrica. - -E se não quiser enviar ou transmitir [ETH](/eth/) devido ao facto de o seu valor poder mudar, existem moedas alternativas na Ethereum: stablecoins. - - - -### Aceda a moedas estáveis {#stablecoins} - -A volatilidade das criptomoedas é um problema para muitos produtos financeiros e despesas gerais. A comunidade DeFi resolveu este problema com as stablecoins. O seu valor permanece indexado a um outro ativo, normalmente uma moeda popular como o dólar. - -Criptomoedas como o Dai ou o USDC têm um valor que se mantém a poucos cêntimos de um dólar. Isto torna-os perfeitos para ser utilizados como ganhos ou para venda a retalho. Muitas pessoas na América Latina utilizaram as stablecoins como uma forma de proteger as suas poupanças numa altura de grande incerteza em relação às moedas emitidas pelos seus governos. - - - Mais informações sobre stablecoins - - - - -### Contrair um empréstimo {#lending} - -O empréstimo de dinheiro a fornecedores descentralizados pode ser efetuado de duas formas principais. - -- Peer-to-peer, o que significa que o mutuário pedirá um empréstimo diretamente a um mutuante específico. -- Baseado num fundo comum, em que os mutuantes fornecem fundos (liquidez) a um fundo comum a partir do qual os mutuários podem contrair empréstimos. - - - Ver dapps de empréstimos - - -Existem muitas vantagens em utilizar um mutuante descentralizado... - -#### Contrair empréstimos com privacidade {#borrowing-privacy} - -Atualmente, a concessão e a obtenção de empréstimos dependem das pessoas envolvidas. Os bancos necessitam de saber se é expectável que pague um empréstimo antes de o concederem. - -Os empréstimos descentralizados funcionam sem que qualquer das partes tenha de se identificar. Em vez disso, o mutuário deve constituir uma garantia que o mutuante receberá automaticamente se o empréstimo não for reembolsado. Alguns credores aceitam até NFTs como garantia. Os NFTs são uma prova de propriedade de um ativo único, como um quadro. [Saber mais sobre NFTs](/nft/) - -Isto permite-lhe pedir um empréstimo sem ter de verificar o seu crédito ou fornecer qualquer informação privada. - -#### Acesso a fundos globais {#access-global-funds} - -Quando utiliza um mutuante descentralizado, tem acesso a fundos depositados em todo o mundo e não apenas aos fundos sob custódia do banco ou instituição que escolheu. Isto torna os empréstimos mais acessíveis e melhora as taxas de juro. - -#### Eficácias fiscais {#tax-efficiencies} - -Um empréstimo pode dar-lhe acesso aos fundos de que necessita sem ter de vender o seu ETH (um evento tributável). Em vez disso, pode utilizar ETH como garantia para um empréstimo em stablecoin. Isto dá-lhe o fluxo de caixa de que necessita e permite-lhe manter o seu ETH. Stablecoins são tokens que são muito melhores para quando precisar de dinheiro, pois não flutuam no seu valor como a ETH. [Mais informações sobre stablecoins](#stablecoins) - -#### Empréstimos flash {#flash-loans} - -Os empréstimos flash são uma forma experimental de empréstimo descentralizado que permite pedir um empréstimo sem garantias ou fornecer qualquer informação pessoal. - -Atualmente, não são muito acessíveis a pessoas não técnicas, mas dão uma ideia do que poderá estar ao alcance de todos futuramente. - -Funciona com base no facto de o empréstimo ser contraído e reembolsado na mesma transação. Se não puder ser reembolsada, a transação é anulada como se nada tivesse acontecido. - -Os fundos frequentemente utilizados são detidos em pools de liquidez (grandes pools de fundos utilizados para a contração de empréstimos). Se não estiverem a ser usados num determinado momento, cria-se uma oportunidade para alguém contrair um empréstimo desses fundos, fazer negócios com eles e reembolsá-los na totalidade, literalmente ao mesmo tempo que são emprestados. - -Tal significa que é preciso incluir muita lógica numa transação muito personalizada. Um exemplo comum é o de alguém que utiliza um empréstimo rápido para pedir emprestado o máximo de um ativo a um determinado preço para o poder vender numa bolsa diferente onde o preço é mais elevado. - -Assim, numa única transação, ocorre o seguinte: - -- É pedido um empréstimo de X montante de $asset a $1,00 do exchange A -- Vende X $asset no exchange B por $1,10 -- O empréstimo é reembolsado ao exchange A -- Fica com o lucro menos a taxa de transação - -Se a oferta do exchange B caísse subitamente e o utilizador não conseguisse comprar o suficiente para cobrir o empréstimo original, a transação simplesmente falharia. - -Para poder aplicar o exemplo anterior no mundo financeiro tradicional, seria necessária uma enorme quantidade de dinheiro. Estas estratégias para ganhar dinheiro só são acessíveis a quem já tem património. Os empréstimos instantâneos são um exemplo de um futuro em que ter dinheiro não é necessariamente um pré-requisito para ganhar dinheiro. - -[Mais informações sobre empréstimos instantâneos](https://aave.com/flash-loans/) - - - -### Comece a poupar com criptomoedas {#saving} - -#### Empréstimos {#lending} - -Pode ganhar juros sobre as suas criptomoedas emprestando-as e ver os seus fundos crescerem em tempo real. Atualmente, as taxas de juro são muito mais elevadas do que as que pode obter no seu banco tradicional (se tiver a sorte de poder aceder a um). Eis um exemplo: - -- Empresta-se 100 Dai, uma [stablecoin](/stablecoins/), a um produto como o Aave. -- Recebe 100 Aave Dai (aDai) que é um token que representa o seu Dai emprestado. -- O seu aDai aumentará com base nas taxas de juro e poderá ver o seu saldo crescer na sua carteira. Dependendo da TAEG, o saldo da sua carteira será algo como 100,1234 após alguns dias ou mesmo horas! -- Pode levantar um montante de Dai igual ao seu saldo de aDai a qualquer altura. - - - Mais sobre dapps de empréstimo - - -#### Lotarias sem perdas {#no-loss-lotteries} - -As lotarias sem perdas como a PoolTogether são uma forma divertida e inovadora de poupar dinheiro. - -- Compra-se 100 bilhetes com 100 tokens Dai. -- O utilizador recebe 100 plDai que representam os respetivos 100 bilhetes. -- Se um dos bilhetes for escolhido como vencedor, o saldo do plDai aumentará no valor do prémio. -- Se não ganhou, os 100 plDai que recebeu passam para o sorteio da semana seguinte. -- Pode levantar um montante de Dai igual ao seu saldo de plDai em qualquer altura. - -O prémio total é gerado por todos os juros gerados pelo empréstimo dos depósitos de bilhetes, como no exemplo de empréstimo acima. - - - Experimente PoolTogether - - - - -### Trocar tokens {#swaps} - -Há milhares de tokens no Ethereum. As trocas descentralizadas (DEXs) possibilitam a troca de diferentes tokens sempre que quiser. Nunca abdica do controlo dos seus ativos. É como utilizar uma agência de câmbios quando se visita um país estrangeiro. Mas a versão DeFi nunca encerra. Os mercados funcionam 24 horas por dia, 7 dias por semana, 365 dias por ano e a tecnologia garante que haverá sempre quem aceite uma transação. - -Por exemplo, se quiser usar a lotaria sem risco PoolTogether (descrita acima), precisará de um token como o Dai ou o USDC. Estas DEXs permitem-lhe trocar o seu ETH por tokens e vice-versa quando tiver terminado. - - - Ver exchanges de tokens - - - - -### Operações avançadas {#trading} - -Existem opções mais avançadas para os operadores que gostam de ter um pouco mais de controlo. São permitidas ordens limitadas, perpétuas, negociação de margem e muito mais. Com a negociação descentralizada, tem acesso à liquidez global, o mercado nunca fecha e tem sempre o controlo dos seus ativos. - -Quando utiliza um câmbiio centralizado, tem de depositar os seus ativos antes da transação e confiar que eles tomam conta deles. Enquanto os seus ativos são depositados, eles estão em risco, pois os câmbios centralizados são alvos apetecíveis para os hackers. - - - Ver dapps de negociação - - - - -### Aumente o seu portfolio {#investing} - -Existem produtos de gestão de fundos no Ethereum que tentarão fazer aumentar os seus ativos com base numa estratégia à sua escolha. É automático, aberto a todos e não necessita de um gestor humano que fique com uma parte dos lucros. - -Um bom exemplo é o [DeFi Pulse Index fund (DPI)](https://defipulse.com/blog/defi-pulse-index/). Este é um fundo que se reequilibra automaticamente para garantir que o seu portfólio sempre inclua [os principais tokens DeFi por capitalização de mercado](https://www.coingecko.com/en/defi). Não tem de gerir qualquer detalhe e pode levantar qualquer montante do fundo sempre que quiser. - - - Consultar dapps de investimento - - - - -### Financie as suas ideias {#crowdfunding} - -O Ethereum é uma plataforma ideal para o crowdfunding (financiamento coletivo): - -- Os potenciais financiadores podem vir de qualquer lado - o Ethereum e os seus tokens estão abertos a qualquer indivíduo, em qualquer parte do mundo. -- É transparente, pelo que os promotores da angariação de fundos podem provar o montante angariado. É até possível acompanhar a forma como os fundos estão a ser gastos ao longo do processo. -- Os promotores de campanhas podem configurar reembolsos automáticos se, por exemplo, houver um prazo específico e um montante mínimo que não seja cumprido. - - - Ver dapps de crowdfunding - - -#### Financiamento quadrático {#quadratic-funding} - -O Ethereum é um software de código aberto e uma grande parte do trabalho desenvolvido até à data foi financiado pela comunidade. Este cenário levou ao crescimento de um novo e interessante modelo de angariação de fundos: o financiamento quadrático. This has the potential to improve the way we fund all types of public goods in the future. - -Quadratic funding makes sure that the projects that receive the most funding are those with the most unique demand. In other words, projects that stand to improve the lives of the most people. Funciona da seguinte forma: - -1. Existe um fundo solidário para os fundos doados. -2. Inicia-se uma ronda de financiamento público. -3. Qualquer pessoa pode manifestar a sua preferência por um projeto doando algum montante. -4. Uma vez terminada a ronda, o conjunto de contribuições correspondentes é distribuído pelos projetos. Os que tiverem o pedido mais exclusivo recebem o montante mais elevado do conjunto de contribuições. - -Isto significa que o Projeto A, com os seus 100 donativos de 1 dólar, pode acabar por receber mais fundos do que o Projeto B, com um único donativo de 10.000 dólares (dependendo da dimensão da reserva de contrapartidas). - -[Mais sobre financiamento quadrático](https://wtfisqf.com) - - - -### Seguros {#insurance} - -Os seguros descentralizados têm como objetivo tornar os seguros mais baratos, mais rápidos de reembolsar e mais transparentes. Com mais automação, as coberturas são mais económicas e os pagamentos são muito mais rápidos. Os dados utilizados para decidir sobre cada reclamação são totalmente transparentes. - -Os sistemas Ethereum, como qualquer software, podem ser alvo de bugs e exploits. Por isso, atualmente, muitos produtos de seguros no mercado centram-se na proteção dos seus utilizadores contra a perda de fundos. No entanto, há projetos que começam a desenvolver uma cobertura para tudo o que a vida nos pode reservar. Um bom exemplo disto é a cobertura agrícola da Etherisc, que visa [proteger os pequenos agricultores do Quénia contra as secas e inundações](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Os seguros descentralizados podem proporcionar uma cobertura mais barata aos agricultores que, muitas vezes, não têm acesso aos seguros tradicionais. - - - Ver dapps de seguros - - - - -### Agregadores e gestores de portfólios {#aggregators} - -Com tanta iniciativa, precisará de uma forma de acompanhar todos os seus investimentos, empréstimos e negócios. Há uma série de produtos que permitem coordenar toda a atividade DeFi a partir de um único ponto. É a beleza da arquitetura aberta da DeFi. As equipas podem criar interfaces que permitam não só ver os saldos dos diferentes produtos, mas também utilizar as suas funcionalidades. Poderá ser útil para explorar melhor a DeFi. - - - Ver dapps de portefólio - - - - -## Como funciona a DeFi? {#how-defi-works} - -A DeFi usa criptomoedas e contratos inteligentes para fornecer serviços que não precisam de intermediários. No mundo atual dos negócios, as instituições financeiras atuam como avalistas das transações. Isto dá a estas instituições um poder imenso porque o nosso dinheiro é canalizado através delas. Além disso, milhares de milhões de pessoas em todo o mundo nem sequer têm acesso a uma conta bancária. - -Na DeFi, um contrato inteligente substitui a instituição financeira na transação. Um contrato inteligente é um tipo de conta Ethereum que pode reter fundos e enviá-los/reembolsá-los com base em determinadas condições. Ninguém pode alterar esse contrato inteligente quando ele está ativo - será sempre executado conforme programado. - -Um contrato concebido para distribuir uma mesada ou fundos para despesas pessoais pode ser programado para enviar dinheiro da conta A para a conta B todas as sextas-feiras. E só o fará enquanto a conta A tiver os fundos necessários. Ninguém pode alterar o contrato e acrescentar a conta C como destinatária para desviar fundos. - -Os contratos também são públicos, podendo ser fiscalizados e auditados por qualquer pessoa. Isto significa que os falsos contratos são frequentemente objeto de escrutínio comunitário muito rapidamente. - -Isto significa que atualmente é necessário confiar nos membros mais técnicos da comunidade Ethereum que sabem ler código. A comunidade baseada em código aberto ajuda a manter os programadores sob controlo, mas esta necessidade diminuirá com o tempo, à medida que os contratos inteligentes se tornarem mais fáceis de ler e forem desenvolvidas outras formas de provar a fiabilidade do código. - -## Ethereum e DeFi {#ethereum-and-defi} - -O Ethereum é a base perfeita para a DeFi por diversas razões: - -- Ninguém é proprietário da Ethereum ou dos contratos inteligentes que nela vivem, o que dá a todos a oportunidade de utilizar a DeFi. Isto também significa que ninguém pode alterar as regras que lhe são aplicadas. -- Todos os produtos DeFi falam a mesma linguagem nos bastidores: Ethereum. Isto significa que muitos dos produtos funcionam em perfeita sintonia. É possível emprestar tokens numa plataforma e trocar o token que rende juros num mercado diferente, numa aplicação totalmente diferente. É como poder trocar pontos de fidelidade no seu banco. -- Os tokens e as criptomoedas estão integrados no Ethereum, um livro-razão partilhado - manter o registo das transações e da propriedade é algo que faz naturalmente parte do Ethereum. -- O Ethereum permite uma liberdade financeira total - a maioria dos produtos nunca assumirá a custódia dos seus fundos, deixando-o com o controlo. - -Pode pensar-se na DeFi por camadas: - -1. A blockchain - Ethereum contém o histórico das transações e o estado das contas. -2. Ativos - [ETH](/eth/) e outros tokens (cripto moedas). -3. Os protocolos - [contratos inteligentes](/glossary/#smart-contract) que fornecem a funcionalidade, por exemplo, um serviço que permite o empréstimo descentralizado de ativos. -4. [As aplicações](/dapps/) - os produtos que usamos para gerir e aceder aos protocolos. - -## Criar DeFi {#build-defi} - -DeFi é um projeto de código aberto. Os protocolos e as aplicações DeFi estão todos abertos para que possa inspecionar, fazer fork e inovar. Devido a esta estrutura em camadas (todos partilham os mesmos ativos e a mesma blockchain de base), os protocolos podem ser misturados e combinados para desbloquear oportunidades de combinação únicas. - - - Mais informações sobre a criação de dapps - - -## Leitura adicional {#futher-reading} - -### Dados DeFi {#defi-data} - -- [DeFi Prime](https://defiprime.com/) -- [DeFi Llama](https://defillama.com/) -- [Taxa DeFi](https://defirate.com/) - -### Artigos DeFi {#defi-articles} - -- [Um guia para iniciados em DeFi](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) - _Sid Coelho-Prabhu, 6 de janeiro de 2020_ - -### Vídeos {#videos} - -- [Finematics - educação financeira descentralizada](https://finematics.com/) - _Vídeos sobre DeFi_ -- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _Noções básicas de DeFi: Tudo o que precisa saber para se iniciar neste cenário ocasionalmente desconcertante._ -- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _O que é DeFi?_ - -### Comunidades {#communities} - -- [Servidor Discord de DeFi Llama](https://discord.gg/buPFYXzDDd) -- [Servidor Discord DeFi Pulse](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/pt/desci/index.md b/src/content/translations/pt/desci/index.md deleted file mode 100644 index 3883509dd58..00000000000 --- a/src/content/translations/pt/desci/index.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: Ciência Descentralizada (DeSci) -description: Uma visão geral da filosofia descentralizada no Ethereum -lang: pt -template: use-cases -emoji: ":microscope:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Uma alternativa global e aberta ao atual sistema científico. -summaryPoint2: Tecnologia que permite aos cientistas angariar fundos, realizar experiências, partilhar dados, distribuir conhecimento e muito mais. -summaryPoint3: Baseia-se no movimento da ciência aberta. ---- - -## O que é a ciência descentralizada (DeSci)? {#what-is-desci} - -A ciência descentralizada (DeSci) é um movimento que tem como objetivo desenvolver uma infraestrutura pública para financiar, criar, rever, creditar, armazenar e disseminar o conhecimento científico de forma justa e equitativa usando a pilha Web3. - -O DeSci pretende criar um ecossistema em que os cientistas sejam incentivados a partilhar abertamente a sua investigação e a receber crédito pelo seu trabalho, permitindo simultaneamente que qualquer um aceda e contribua de forma simples para a investigação. O DeSci parte do princípio de que o conhecimento científico deve ser acessível a todos e que o processo de investigação científica deve ser transparente. O DeSci está a criar um modelo de investigação científica mais descentralizado e distribuído, tornando-o mais resistente à sua censura e ao controlo das autoridades centrais. DeSci espera criar um ambiente onde ideias novas e não convencionais possam florescer, descentralizando o acesso ao financiamento, às ferramentas científicas e aos canais de comunicação. - -A ciência descentralizada permite fontes de financiamento mais diversificadas (desde [DAOs](/dao/), [doações quadráticas](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) a crowdfunding e outras), dados e métodos de acesso mais fáceis e incentivos à reprodutibilidade. - -### Juan Benet - O Movimento DeSci - - - -## Como DeSci está a melhorar a ciência {#desci-improves-science} - -Uma lista não exaustiva dos principais problemas da ciência e da forma como a ciência descentralizada pode ajudar a resolvê-los - -| **Ciência descentralizada** | **Ciência tradicional** | -| ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | -| A distribuição dos fundos é determinada pelo público através de mecanismos como as doações quadráticas ou as DAO. | Grupos pequenos, fechados e centralizados controlam a distribuição dos fundos. | -| Colaboramos com pares de todo o mundo em equipas dinâmicas. | As organizações de financiamento e as instituições domésticas limitam as suas colaborações. | -| As decisões de financiamento são tomadas online e de forma transparente. São explorados novos mecanismos de financiamento. | As decisões de financiamento são tomadas num longo período de tempo e com pouca transparência. Os mecanismos de financiamento são escassos. | -| A partilha de serviços laboratoriais é facilitada e mais transparente utilizando as primitivas da Web3. | A partilha de recursos laboratoriais é frequentemente lenta e opaca. | -| Podem ser desenvolvidos novos modelos de publicação que utilizem as primitivas da Web3 para garantir a confiança, a transparência e o acesso universal. | Publica através de vias estabelecidas, frequentemente reconhecidas como ineficazes, tendenciosas e exploradoras. | -| Pode ganhar tokens e reputação por rever um trabalho. | O trabalho de revisão por pares não é remunerado, beneficiando as editoras comerciais. | -| O utilizador detém a propriedade intelectual (PI) que gera e distribui de acordo com condições transparentes. | A sua instituição local é proprietária do PI que gera. O acesso ao PI não é transparente. | -| Partilha de toda a investigação, incluindo os dados de esforços mal sucedidos, através da inclusão de todas as etapas na cadeia. | O preconceito de publicação significa que é mais provável que os investigadores partilhem experiências que tiveram resultados positivos. | - -## Ethereum e DeSci {#ethereum-and-desci} - -Um sistema científico descentralizado exigirá uma segurança robusta, custos monetários e de transação mínimos e um ecossistema rico para o desenvolvimento de aplicações. O Ethereum fornece tudo o que é necessário para construir uma plataforma científica descentralizada. - -## Casos de utilização DeSci {#use-cases} - -O DeSci está a criar o conjunto de ferramentas científicas para integrar o mundo académico da Web2 no mundo digital. Apresenta-se de seguida uma amostra de casos de utilização que a Web3 pode oferecer à comunidade científica. - -### Publicações {#publishing} - -A publicação científica é notoriamente problemática porque é gerida por editoras que dependem do trabalho gratuito de cientistas, revisores e editores para gerar os artigos, mas depois cobram taxas de publicação exorbitantes. O público, que normalmente pagou indiretamente a obra e os custos de publicação através dos impostos, não pode muitas vezes aceder a essa mesma obra sem pagar novamente ao editor. As taxas totais para a publicação de artigos científicos individuais são muitas vezes de cinco dígitos ($USD), comprometendo todo o conceito de conhecimento científico como um [bem público](https://www.econlib.org/library/Enc/PublicGoods.html), ao mesmo tempo que gera enormes lucros para um pequeno grupo de editores. - -Existem plataformas de acesso livre e aberto sob a forma de servidores de pré-impressão, [como o ArXiv](https://arxiv.org/). No entanto, estas plataformas carecem de controlo de qualidade, [mecanismos anti-sybil](https://csrc.nist.gov/glossary/term/sybil_attack), e geralmente não acompanham as métricas ao nível do artigo, o que significa que normalmente só são utilizadas para divulgar trabalhos antes da sua submissão a uma editora tradicional. O SciHub também torna os artigos publicados de acesso livre, mas não legalmente, e apenas após os editores terem recebido o seu pagamento e terem enquadrado o trabalho numa legislação rigorosa de direitos de autor. Isto abre uma lacuna crítica no que respeita a documentos e dados científicos acessíveis com um mecanismo de legitimidade e um modelo de incentivos integrados. As ferramentas para construir um sistema deste género estão disponíveis na Web3. - -### Reprodutibilidade e replicabilidade {#reproducibility-and-replicability} - -A reprodutibilidade e a replicabilidade são os fundamentos de uma descoberta científica de qualidade. - -- Podem ser obtidos resultados reproduzíveis múltiplas vezes pela mesma equipa, utilizando a mesma metodologia. -- Podem ser obtidos resultados replicáveis por um grupo diferente utilizando a mesma configuração experimental. - -As novas ferramentas nativas da Web3 podem garantir que a reprodutibilidade e a replicabilidade sejam a base da pesquisa. Podemos integrar a ciência de qualidade no tecido tecnológico do mundo académico. Web3 oferece a possibilidade de criar certificações para cada componente de análise: os dados brutos, o motor computacional e o resultado da aplicação. A vantagem dos sistemas de consenso é que, quando é criada uma rede de confiança para manter estes componentes, cada participante da rede pode ser responsável por replicar o cálculo e validar cada resultado. - -### Financiamento {#funding} - -O modelo padrão atual para o financiamento da ciência é que indivíduos ou grupos de cientistas apresentem pedidos escritos a uma entidade financiadora. Um pequeno painel de pessoas de confiança avalia as candidaturas e entrevista os candidatos antes de atribuir fundos a uma parte reduzida dos candidatos. Para além de criar estrangulamentos que levam, por vezes, a anos de espera entre a candidatura e a receção de uma subvenção, este modelo é conhecido por ser altamente vulnerável aos preconceitos, interesses individuais e políticas do painel de avaliação. - -Os estudos demonstraram que os painéis de avaliação das subvenções não selecionam corretamente as propostas de elevada qualidade, uma vez que as mesmas propostas apresentadas a diferentes painéis têm resultados muito distintos. À medida que o financiamento se tornou mais escasso, concentrou-se num grupo mais pequeno de investigadores seniores com projectos intelectualmente mais conservadores. O efeito criou um cenário de financiamento hipercompetitivo, consolidando incentivos perversos e sufocando a inovação. - -A Web3 tem o potencial de romper com este modelo de financiamento obsoleto, experimentando diferentes modelos de incentivo desenvolvidos pelas DAOs e pela Web3 em geral. [Financiamento retroativo de bens públicos](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), [financiamento quadrático](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), [governança DAO](https://www.antler.co/blog/daos-and-web3-governance) e [estruturas de incentivo tokenizadas](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) são algumas das Ferramentas Web3 que podem revolucionar o financiamento da ciência. - -### Propriedade intelectual e desenvolvimento {#ip-ownership} - -A propriedade intelectual (PI) é um enorme problema na ciência tradicional: desde estar retida nas universidades ou não ser utilizada nas biotecnologias, até ser notoriamente difícil de valorizar. No entanto, a propriedade de ativos digitais (como dados ou artigos científicos) é algo que a Web3 desempenha excecionalmente bem, utilizando [tokens não fungíveis (NFTs)](/nft/). - -Da mesma forma que os NFTs podem transferir as receitas de transações futuras para o criador original, é possível estabelecer cadeias de atribuição de valor transparente para recompensar investigadores, organismos governamentais (como os DAOs) ou mesmo os participantes cujos dados são recolhidos. - -[IP-NFTs](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) também podem funcionar como uma chave para um repositório de dados descentralizado das experiências de pesquisa que estão a ser realizadas, e ligar-se à NFT e à financiarização [DeFi](/defi/) (desde a fraccionalização a pools de empréstimos e avaliação de valor). Também permite que entidades nativamente on-chain, como DAOs como [VitaDAO](https://www.vitadao.com/), conduzam pesquisas diretamente on-chain. O surgimento de tokens não transferíveis ["soulbound" tokens](https://vitalik.ca/general/2022/01/26/soulbound.html) também pode desempenhar um papel importante no DeSci, permitindo que os indivíduos comprovem a sua experiência e as credenciais ligadas ao seu endereço Ethereum. - -### Armazenamento de dados, acesso e arquitetura {#data-storage} - -Os dados científicos podem tornar-se muito mais acessíveis utilizando padrões Web3 e o armazenamento distribuído permite que a investigação sobreviva a eventos catastróficos. - -O ponto de partida deve ser um sistema acessível a qualquer identidade descentralizada que possua as credenciais verificáveis adequadas. Isto permite que os dados sensíveis sejam replicados de forma segura por entidades de confiança, possibilitando a redundância e a resistência à censura, a reprodução de resultados e até a capacidade de várias entidades colaborarem e acrescentarem novos dados ao conjunto existente. Métodos de computação confidenciais como [compute-to-data](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol) fornecem mecanismos de acesso alternativos à replicação de dados em bruto, criando Ambientes de Investigação de Confiança para os dados mais sensíveis. Os Ambientes de Investigação Confiáveis foram [citados pelo NHS](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) como uma solução para o futuro em matéria de privacidade e colaboração de dados, através da criação de um ecossistema em que os investigadores podem trabalhar em segurança com dados no local, utilizando ambientes normalizados para a partilha de códigos e práticas. - -As soluções flexíveis de dados Web3 suportam os cenários acima referidos e constituem a base para uma verdadeira Ciência Aberta, em que os investigadores podem criar bens públicos sem permissões de acesso ou taxas. As soluções de dados públicos da Web3, como IPFS, Arweave e Filecoin, são otimizadas para a descentralização. O dClimate, por exemplo, fornece acesso universal a dados climáticos e meteorológicos, incluindo de estações meteorológicas e modelos climáticos preditivos. - -## Envolva-se {#get-involved} - -Explore projetos e junte-se à comunidade DeSci. - -- [DeSci.Global: calendário de eventos e encontros a nível mundial](https://desci.global) -- [Blockchain para a ciência na rede social Telegram](https://t.me/BlockchainForScience) -- [Molecule: Financie e obtenha financiamento para os seus projetos de investigação](https://discover.molecule.to/) -- [VitaDAO: receba financiamento através de acordos de investigação patrocinados para a investigação sobre a longevidade](https://www.vitadao.com/) -- [ResearchHub: publique um resultado científico e participe numa conversa com os seus pares](https://www.researchhub.com/) -- [LabDAO: dobre uma proteína in-silico](https://alphafodl.vercel.app/) -- [API dClimate: consulte os dados climáticos recolhidos por uma comunidade descentralizada](https://api.dclimate.net/) -- [Fundação DeSci: Criação da ferramentas de publicação DeSci](https://descifoundation.org/) -- [DeSci.World: um balcão único para visualização e envolvimento dos utilizadores com a ciência descentralizada](https://desci.world) -- [Protocolo Fleming: economia de dados de fonte aberta que alimenta a descoberta biomédica participativa](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [OceanDAO: financiamento gerido por uma DAO para a ciência relacionada com os dados](https://oceanprotocol.com/dao) -- [Opscientia: fluxos científicos abertos e descentralizados](https://opsci.io/research/) -- [LabDAO: dobre uma proteína in-silico](https://alphafodl.vercel.app/) -- [Bio.xyz: obter financiamento para o seu projeto biotecnológico DAO ou DeSci](https://www.molecule.to/) -- [ResearchHub: publique um resultado científico e participe numa conversa com os seus pares](https://www.researchhub.com/) -- [VitaDAO: receba financiamento através de acordos de investigação patrocinados para a investigação sobre a longevidade](https://www.vitadao.com/) -- [Protocolo Fleming: economia de dados de fonte aberta que alimenta a descoberta biomédica participativa](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [Laboratório de Inferência Ativa](https://www.activeinference.org/) -- [CureDAO: Plataforma de saúde de precisão detida pela comunidade](https://docs.curedao.org/) -- [IdeaMarkets: possibilitando a credibilidade científica descentralizada](https://ideamarket.io/) -- [Laboratórios DeSci](https://www.desci.com/) - -Aceitamos sugestões para novos projetos a serem incluídos na lista - consulte a nossa [política de publicação na lista](/contributing/adding-desci-projects/) para começar! - -## Leitura adicional {#further-reading} - -- [DeSci Wiki por Jocelynn Pearl e Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) -- [Um guia para a biotecnologia descentralizada por Jocelynn Pearl para a16z future](https://future.a16z.com/a-guide-to-decentralized-biotech/) -- [O caso DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) -- [Guia do DeSci](https://future.com/what-is-decentralized-science-aka-desci/) -- [Recursos científicos descentralizados](https://www.vincentweisser.com/decentralized-science) -- [IP-NFTs biofarmacêuticos da Molecule - Uma descrição técnica](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) -- [Construir sistemas de ciência isentos de confiança por Jon Starr](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) -- [O surgimento de DAOs biotecnológicas](https://molecule.to/blog/the-emergence-of-biotech-daos) -- [Paul Kohlhaas - DeSci: O futuro da ciência descentralizada (podcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) -- [Uma Ontologia de Inferência Ativa para a Ciência Descentralizada: do Sensemaking Situado aos Comuns Epistémicos](https://zenodo.org/record/6320575) -- [DeSci: O Futuro da Investigação por Samuel Akinosho](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) -- [Financiamento da ciência (Epílogo: DeSci e novos primitivos criptográficos) por Nadia](https://nadia.xyz/science-funding) -- [A descentralização está a desestabilizar o desenvolvimento de medicamentos](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) - -### Vídeos {#videos} - -- [O que é ciência descentralizada?](https://www.youtube.com/watch?v=-DeMklVWNdA) -- [Conversa entre Vitalik Buterin e o cientista Aubrey de Grey sobre a interseção entre a investigação da longevidade e as criptomoedas](https://www.youtube.com/watch?v=x9TSJK1widA) -- [A publicação científica está corrompida. A Web3 pode resolver este problema?](https://www.youtube.com/watch?v=WkvzYgCvWj8) -- [Juan Benet - DeSci, Independent Labs, & Ciência de dados em grande escala](https://www.youtube.com/watch?v=zkXM9H90g_E) -- [Sebastian Brunemeier - Como o DeSci pode transformar a investigação biomédica & Venture Capital](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/pt/nft/index.md b/src/content/translations/pt/nft/index.md deleted file mode 100644 index a29f66f0aa1..00000000000 --- a/src/content/translations/pt/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Tokens não fungíveis (NFT) -description: Uma visão geral sobre NFTs na Ethereum -lang: pt -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: Um logótipo Eth exibido através de um holograma. -summaryPoint1: Uma forma de representar algo único como um ativo baseado na Ethereum. -summaryPoint2: Os NFT estão a dar mais poder do que nunca aos criadores de conteúdo. -summaryPoint3: Desenvolvido por contratos inteligentes na blockchain Ethereum. ---- - -## What are NFTs? {#what-are-nfts} - -Os NFTs são tokens individualmente únicos. Cada NFT tem propriedades diferentes (não fungíveis) e é comprovadamente raro. Isto é diferente de tokens como os ERC-20, em que todos os tokens de um conjunto são idênticos e têm as mesmas propriedades ("fungíveis"). Não interessa que nota específica de dólar tem na sua carteira, porque são todas idênticas e valem o mesmo. No entanto, _não_ importa qual o NFT específico que possui, porque todos eles têm propriedades individuais que os distinguem uns dos outros ("não fungíveis"). - -A particularidade de cada NFT permite a tokenização de coisas como arte, objetos de coleção ou mesmo bens imobiliários, em que um NFT específico e único representa um item específico e único do mundo real ou digital. A propriedade de um ativo é garantida pela blockchain Ethereum – ninguém pode modificar o registo de propriedade ou copiar/colar um novo NFT. - - - -## A internet dos ativos {#internet-of-assets} - -Os NFT e a Ethereum resolvem alguns dos problemas que existem atualmente na Internet. À medida que tudo se torna mais digital, existe a necessidade de replicar as propriedades dos itens físicos como escassez, singularidade, e prova de propriedade. De uma forma que não seja controlada por uma organização central. Por exemplo, com os NFT, pode ser proprietário de um mp3 de música que não seja específico da aplicação de música de uma empresa, ou pode ser proprietário de um identificador de rede social que pode vender ou trocar, mas que não lhe pode ser retirado arbitrariamente por um fornecedor de plataformas. - -Veja como se parece uma internet de NFTs em comparação com a internet que a maioria usa hoje em dia... - -### Uma comparação {#nft-comparison} - -| Uma internet de NFT | A internet atual | -| ------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Os ativos são seus! Só você pode vendê-los ou trocá-los. | Aluga um ativo a uma organização. | -| Os NFT são digitalmente únicos, não existem dois NFT iguais. | Uma cópia de uma determinada entidade muitas vezes não pode ser diferenciada do original. | -| A propriedade de um NFT é registada no blockchain para que qualquer pessoa possa verificar. | Os registos de propriedade de itens digitais são armazenados em servidores controlados por instituições – devemos acreditar na palavra deles. | -| Os NFTs são contratos inteligentes na Ethereum. Isto significa que podem ser facilmente usados noutros contratos inteligentes e aplicações na Ethereum! | Geralmente, as empresas com objetos digitais necessitam da sua própria infraestrutura de "jardim amuralhado". | -| Os criadores de conteúdos podem vender o seu trabalho em qualquer lugar e aceder a um mercado global. | Os criadores dependem da infraestrutura e distribuição das plataformas que utilizam. Estes estão frequentemente sujeitos aos termos de utilização e restrições geográficas. | -| Os criadores de NFTs podem manter os direitos de propriedade sobre o seu próprio trabalho e programar os direitos de autor diretamente no contrato NFT. | As plataformas, como os serviços de streaming de música, mantêm a maioria dos lucros das vendas. | - -## Como funcionam os NFT? {#how-nfts-work} - -Como qualquer token emitido no Ethereum, os NFTs são gerados por um contrato inteligente. O contrato inteligente está em conformidade com uma das várias normas NFT (geralmente ERC-721 ou ERC-1155) que definem as funções do contrato. O contrato pode criar ("cunhar") NFTs e atribuí-los a um proprietário específico. A propriedade é definida no contrato através do mapeamento de NFTs específicos para endereços específicos. O NFT tem um ID e, normalmente, metadados associados que tornam único o token específico. - -Quando alguém cria ou cunha um NFT, está na realidade a executar uma função no contrato inteligente que atribui um NFT específico ao seu endereço. Esta informação é guardada no registo do contrato, que faz parte do blockchain. O criador do contrato pode introduzir lógica adicional no contrato, por exemplo, limitando o fornecimento total ou definindo um royalty a ser pago ao criador sempre que um token é transferido. - -## Para que servem os NFT? {#nft-use-cases} - -Os NFTs são utilizados para muitas coisas, incluindo: - -- prova de que participou num evento -- certificação da conclusão de um curso -- objetos que podem ser adquiridos para jogos -- arte digital -- tokenização de ativos do mundo real -- comprovação da sua identidade online -- acesso condicionado a conteúdos -- bilhete de acesso -- nomes de domínio de internet descentralizados -- garantia em DeFi - -Talvez seja um artista que queira partilhar o seu trabalho usando NFTs, sem perder o controlo nem dividir os lucros com intermediários. Pode criar um novo contrato e especificar o número de NFTs, as suas propriedades e uma associação a um trabalho artístico específico. Como artista, pode programar no contrato inteligente os royalties que lhe devem ser pagos (por exemplo, transferir 5% do preço de venda para o proprietário do contrato sempre que um NFT é transferido). Também pode sempre provar que criou os NFTs porque é o proprietário da carteira que desenvolveu o contrato. Os seus clientes podem facilmente provar que possuem um NFT autêntico da sua coleção porque o endereço da sua carteira está associado a um token no seu contrato inteligente. Podem utilizá-lo em todo o ecossistema Ethereum, confiantes na sua autenticidade. - -Ou considere um bilhete para um evento desportivo. Tal como o organizador do evento escolhe quantos bilhetes existem para venda, o criador de um NFT pode decidir quantas réplicas existem. Por vezes, tratam-se de réplicas exatas, tal como 5000 bilhetes de acesso geral ao evento. Outras vezes, vários bilhetes cunhados são muito semelhantes, mas com ligeiras diferenças, tal como um bilhete com lugar marcado. Estes bilhetes podem ser comprados e vendidos entre pares sem pagar a quem os distribui e o comprador tem sempre a garantia da autenticidade do bilhete, verificando o endereço do contrato. - -Em ethereum.org, os NFTs são usados para demonstrar que as pessoas contribuíram para o nosso repositório GitHub ou participaram em reuniões, e até temos o nosso próprio nome de domínio em NFT. Se é um colaborador de ethereum.org, pode pedir um NFT POAP. Alguns encontros relacionados com as criptomoedas utilizaram POAPs como bilhetes. [Saiba mais sobre como contribuir](/contributing/#poap). - -![POAP ethereum.org](./poap.png) - -Este site também tem um nome de domínio alternativo alimentado por NFTs, **ethereum.eth**. O nosso endereço `.org` é gerido centralmente por um fornecedor de nomes de domínio (DNS), ao passo que o ethereum`.eth` está registado na Ethereum através do Serviço de Nome Ethereum (ENS). E pertence-nos e é gerido por nós. [Consulte o nosso registo ENS](https://app.ens.domains/name/ethereum.eth) - -[Mais sobre ENS](https://app.ens.domains) - - - -### Segurança de NFT {#nft-security} - -A segurança da Ethereum provém da prova de participação. O sistema foi concebido para desincentivar economicamente as ações maliciosas, tornando a Ethereum à prova de adulteração. É isto que torna possível a existência dos NFT. Assim que o bloco contendo a sua transação NFT estiver finalizado, custará a um invasor milhões de ETH para o alterar. Qualquer pessoa que execute o software Ethereum seria imediatamente capaz de detetar adulteração desonesta de um NFT e o autor desse feito seria economicamente penalizado e expulso. - -As questões de segurança relacionadas com os NFT estão mais frequentemente relacionadas com esquemas de phishing, vulnerabilidades de contratos inteligentes ou erros do utilizador (como a exposição inadvertida de chaves privadas), o que torna a boa segurança da carteira crítica para os proprietários de NFT. - - - Mais informações sobre segurança - - -## Leitura adicional {#further-reading} - -- [Guia para principiantes sobre NFT](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) - _Linda Xie, janeiro de 2020_ -- [Analisador EtherscanNFT](https://etherscan.io/nft-top-contracts) -- [Norma ERC-721 para tokens](/developers/docs/standards/tokens/erc-721/) -- [Norma ERC-1155 para tokens](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/pt/refi/index.md b/src/content/translations/pt/refi/index.md deleted file mode 100644 index d88b2266d40..00000000000 --- a/src/content/translations/pt/refi/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: Finanças regenerativas (ReFi) -description: Uma panorâmica da ReFi e dos seus atuais casos de utilização. -lang: pt -template: use-cases -emoji: ":recycle:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Um sistema económico alternativo baseado em princípios regenerativos -summaryPoint2: Uma tentativa de aproveitar o Ethereum para resolver crises de coordenação a nível mundial, como as alterações climáticas -summaryPoint3: Uma ferramenta para aumentar drasticamente a escala dos ativos de benefícios ecológicos, como créditos de carbono verificados ---- - -## O que é DeFi? {#what-is-refi} - -**Finanças regenerativas (ReFi)** é um conjunto de ferramentas e ideias construidas sobre "blockchains", cujo objetivo é criar economias que são regenerativas, em vez de economias extrativas ou exploradoras. Eventualmente, sistemas extrativos esgotam os recursos e entram colapso, sem mecanismos regenerativos, não são sustentáveis. ReFi operam sob o pressuposto de que a criação de valor monetário deve ser desassociada da extração insustentável de recursos do nosso planeta e comunidades. - -Em vez de isso, ReFi visa resolver problemas ambientais, comunitários ou sociais ao criar ciclos regenerativos. Estes sistemas criam valor para os participantes enquanto beneficiam simultaneamente ecossistemas e comunidades. - -Um dos princípios de ReFi é o conceito de economia regenerativa criada por John Fullerton do [Capital Institute](https://capitalinstitute.org). Ele propôs oito princípios ligados entre si que criam a base para saúde sistemática: - -![Oito princípios interligados](../../assets/use-cases/refi-regenerative-economy-diagram.png) - -ReFi espera aplicar estes princípios usando [contratos inteligentes](/developers/docs/smart-contracts/) e aplicações baseadas em [finanças descentralizadas (DeFi)](/defi/) para incentivar comportamentos regenerativos, e.g. restaurar ecossistemas degradados e facilitar colaboração a larga escala em problemas globais como alterações climáticas ou perda de biodiversidade. - -ReFi também se intersecta com o movimento de [ciência descentralizada (DeSci)](/desci/), que usa Ethereum como plataforma para financiar, criar, armazenar e divulgar conhecimento cientifico. Ferramentas DeSci podem eventualmente ser úteis para desenvolver normas e práticas verificáveis para implementar e monitorizar atividades regenerativas como, plantação de árvores, remoção de plástico do oceano ou o restauro de uma ecossistema degradado. - -## "Tokenization" de créditos de carbono {#tokenization-of-carbon-credits} - -O **[ mercado voluntário de carbono (MVC)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** é um mecanismo para financiar projetos que têm um impacto positivo verificado nas emissões de carbono, seja reduzindo a quantidade atual de emissões, ou removendo gases responsáveis pelo efeito estufa da atmosfera. Estes projetos recebem um ativo chamado "crédito de carbono" após serem verificados, que podem vender a individuos e organizações que querem apoiar ações contra as alterações climáticas. - -Além do VCM, existem também vários mercados de carbono governamentais ("mercados regulados") que visam estabelecer um preço ao carbono mediante leis ou regulações com uma jurisdição específica (e.g. pais ou região), controlando a emissão de licenças a serem distribuídas. Os mercados regulados incentivam os poluidores sob a sua jurisdição a reduzir emissões, mas não conseguem remover os gases responsáveis pelo efeito de estufa que já foram emitidos. - -Apesar do seu desenvolvimento ao longo das mais recentes décadas, o VCM continua a sofrer com vários problemas: - -1. Liquidez altamente fragmentada -2. Mecanismos de transação opacos -3. Taxas elevadas -4. Baixa velocidade de negociação -5. Falta de escalabilidade - -A transição do VCM para o novo **mercado digital de carbono (DCM)** baseado em “blockchain” talvez seja uma oportunidade para melhorar a tecnologia atual para validar, negociar e consumir créditos de carbono. “Blockchains” permitem verificar dados publicamente, acesso a um amplo número de utilizadores e mais liquidez. - -Projetos ReFi utilizam a tecnologia “blockchain” para aliviar muitos dos problemas do mercado tradicional: - -- **A liquidez está concentrada num pequeno número de pools de liquidez** que podem ser transacionados livremente por qualquer pessoa. As grandes organizações, bem como os utilizadores individuais, podem utilizar estes pools sem necessidade de pesquisas manuais de vendedores/compradores, taxas de participação ou registo prévio. -- **Todas as transações são registadas em blockchains públicas**. O trajeto que cada crédito de carbono percorre devido à atividade de comercialização é rastreável para sempre, assim que é disponibilizado no DCM. -- **A velocidade das transações é quase instantânea**. Garantir grandes quantidades de créditos de carbono através dos mercados tradicionais pode levar dias ou semanas, mas isso pode ser conseguido em poucos segundos no DCM. -- **A atividade comercial ocorre sem intermediários**, que praticam taxas elevadas. Os créditos de carbono digitais representam uma [melhoria de 62% nos custos em comparação com os créditos tradicionais equivalentes](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne), de acordo com dados de uma empresa de análise. -- **O DCM é expansível** e pode satisfazer as exigências tanto de particulares como de empresas multinacionais. - -### Componentes-chave do DCM {#key-components-dcm} - -Quatro componentes principais constituem o panorama atual do DCM: - -1. Registos como [Verra](https://verra.org/project/vcs-program/registry-system/) e [Gold Standard](https://www.goldstandard.org/) garantem que os projectos que criam créditos de carbono são fiáveis. Também operam as bases de dados em que os créditos de carbono digitais têm origem e podem ser transferidos ou utilizados (retirados). - -Há uma nova vaga de projetos inovadores construídos com base em blockchain que estão a tentar romper com os operadores históricos deste setor. - -2. Pontes de carbono, ou seja tokenizadores, fornecem tecnologia para representar ou transferir créditos de carbono de registos tradicionais para o DCM. Exemplos famosos incluem [Protocolo Tucano](https://toucan.earth/), [C3](https://c3.app/) e [Moss.Earth](https://moss.earth/). -3. Os serviços integrados oferecem aos utilizadores finais créditos para evitar e/ou eliminar o carbono, para que possam reclamar o benefício ambiental de um crédito e partilhar com o mundo o seu apoio à ação climática. - -Alguns como [Klima Infinity](https://www.klimadao.finance/infinity) e [Senken](https://senken.io/) oferecem uma grande variedade de projetos desenvolvidos por terceiros e emitidos sob padrões estabelecidos como Verra; outros como [Nori](https://nori.com/) oferecem apenas projetos específicos desenvolvidos sob o seu próprio padrão de crédito de carbono, que eles emitem e para o qual possuem o seu próprio mercado dedicado. - -4. As vias e infra-estruturas subjacentes que facilitam o aumento do impacto e da eficiência de toda a cadeia de abastecimento do mercado do carbono. A [KlimaDAO](http://klimadao.finance/) fornece liquidez como um bem público (permitindo a qualquer um comprar ou vender créditos de carbono a um preço transparente), incentiva o aumento do rendimento dos mercados de carbono e as retiradas com recompensas, e fornece ferramentas interoperáveis de fácil utilização para aceder a dados sobre, bem como adquirir e retirar, uma grande variedade de créditos de carbono tokenizados. - -## A ReFi para além dos mercados de carbono {#refi-beyond} - -Embora atualmente se dê uma grande ênfase aos mercados de carbono em geral e à transição do VCM para o DCM em particular, o termo "ReFi" não se limita estritamente ao carbono. Outros ativos ambientais, para além dos créditos de carbono, podem ser desenvolvidos e tokenizados, o que significa que outras externalidades negativas também podem ser precificadas nas camadas de base dos futuros sistemas económicos. Além disso, o aspeto regenerativo deste modelo económico pode ser aplicado a outras áreas, como o financiamento de bens públicos através de plataformas de financiamento quadráticas como [Gitcoin](https://gitcoin.co/). As organizações que se baseiam na ideia de participação aberta e distribuição equitativa de recursos permitem que todos canalizem dinheiro para projetos de software de código aberto, bem como para projetos educativos, ambientais e comunitários. - -Ao desviar a direção do capital das práticas extrativas para um fluxo regenerativo, os projetos e as empresas que proporcionam benefícios sociais, ambientais ou comunitários - e que poderiam não conseguir obter financiamento nas finanças tradicionais - podem sair do papel e gerar externalidades positivas para a sociedade com muito mais rapidez e facilidade. A transição para este modelo de financiamento também abre a porta a sistemas económicos muito mais inclusivos, em que a população de todos os grupos demográficos pode tornar-se participante ativa em vez de mera observadora passiva. A ReFi oferece uma visão do Ethereum como um mecanismo para coordenar a ação em relação aos desafios existenciais que a nossa espécie e toda a vida no nosso planeta enfrentam - como a camada de base de um novo paradigma económico, permitindo um futuro mais inclusivo e sustentável para os séculos vindouros. - -## Leitura adicional sobre a ReFi - -- [Uma visão geral de alto nível das divisas de carbono e do seu lugar na economia](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) -- [O Ministério do Futuro, um romance que descreve o papel de uma divisa garantida pelo carbono na luta contra as alterações climáticas](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) -- [Um relatório pormenorizado da Taskforce for Scaling Voluntary Carbon Markets](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) -- [Página de Kevin Owocki e Evan Miyazono no Glossário CoinMarketCap sobre ReFi](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/pt/smart-contracts/index.md b/src/content/translations/pt/smart-contracts/index.md deleted file mode 100644 index 5ed43de09aa..00000000000 --- a/src/content/translations/pt/smart-contracts/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Contratos inteligentes -description: Uma introdução não técnica aos contratos inteligentes -lang: pt ---- - -# Introduction to smart contracts {#introduction-to-smart-contracts} - -Os Contratos inteligentes são os blocos fundamentais na construção da camada aplicacional de Ethereum. São programas de computador gravados no “blockchain” que segue a lógica "se isto, então aquilo", e é garantido que executem conforme as regras definidas no seu código, que não podem ser alteradas, uma vez que o programa tenha sido criado. - -Nick Szabo criou o termo "contrato inteligente". Em 1994, ele escreveu [, uma introdução ao conceito](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html), e em 1996 escreveu [, uma reflexão do que os contratos inteligentes conseguiam fazer](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). - -Szabo imaginou um mercado digital onde os processos automáticos e criptograficamente seguros permitem que as transações e as funções comerciais ocorram sem intermediários de confiança. Os contratos inteligentes no Ethereum põem em prática esta visão. - -### Confiança em contratos convencionais {#trust-and-contracts} - -Um dos principais problemas de um contrato tradicional é a necessidade de indivíduos de confiança cumprirem os requisitos do contrato. - -Eis um exemplo: - -A Alice e o Bob irão participar numa corrida de bicicletas. Digamos que a Alice aposta com o Bob €10 que vai ganhar a corrida. Bob está confiante de que será o vencedor e aceita a aposta. No final, Alice termina a corrida bem à frente de Bob e é a clara vencedora. Mas Bob recusa-se a pagar a aposta, alegando que Alice deve ter feito batota. - -Este exemplo absurdo ilustra o problema de qualquer acordo não inteligente. Mesmo que as condições do acordo sejam cumpridas (ou seja, se for o vencedor da corrida), tem de confiar na outra pessoa para cumprir o acordo (ou seja, pagar a aposta). - -### A digital vending machine {#vending-machine} - -Uma metáfora simples para um contrato inteligente é uma máquina de venda automática, que funciona de forma semelhante a um contrato inteligente - entradas específicas garantem saídas pré-determinadas. - -- Seleciona um produto -- A máquina de venda automática apresenta o preço -- Você paga o montante -- A máquina de venda automática verifica se introduziu a quantidade certa -- A maquina de venda automática entrega o seu artigo - -A máquina de venda automática só distribuirá o produto desejado após cumpridos todos os requisitos. Se não selecionar um produto ou se não inserir dinheiro suficiente, a máquina de venda automática não lhe fornecerá o produto. - -### Execução automática {#automation} - -A principal vantagem de um contrato inteligente é o facto de executar de forma determinística um código inequívoco quando determinadas condições são cumpridas. Não é necessário esperar que um humano avalie ou negoceie o resultado pretendido. Isto remove a necessidade de intermediários de confiança. - -Por exemplo, pode criar um contrato inteligente que mantenha fundos em depósito para uma criança, permitindo-lhe levantar os fundos após uma data específica. Se tentarem levantar os fundos antes da data, o contrato inteligente não será executado. Ou então, poderia criar um contrato que lhe desse automaticamente uma versão digital do registo de propriedade automóvel, após pagar ao vendedor. - -### Resultados previsíveis {#predictability} - -Os Contratos tradicionais são ambíguos porque eles dependem de humanos para interpretá-los e implementá-los. Por exemplo, dois juízes podem interpretar um contrato de forma diferente, o que poderia levar a decisões inconsistentes e resultados diferentes. Os contratos inteligentes removem esta possibilidade. Em vez disso, os contratos inteligentes são executados precisamente com base nas condições escritas no código do contrato. Esta precisão significa que, dadas as mesmas circunstâncias, o contrato inteligente produzirá sempre o mesmo resultado. - -### Registo público {#public-record} - -Os contratos inteligentes são úteis para auditorias e monitorização. Uma vez que os contratos inteligentes Ethereum estão numa blockchain pública, qualquer pessoa pode acompanhar instantaneamente as transferências de ativos e outras informações relacionadas. Por exemplo, pode verificar se alguém enviou dinheiro para o seu endereço. - -### Proteção da privacidade {#privacy-protection} - -Os contratos inteligentes também protegem a sua privacidade. Uma vez que o Ethereum é uma rede pseudónima (as suas transações estão ligadas publicamente a um endereço criptográfico único, não à sua identidade), pode proteger a sua privacidade dos curiosos. - -### Condições visíveis {#visible-terms} - -Por último, tal como nos contratos tradicionais, é possível verificar o conteúdo de um contrato inteligente antes de o assinar (ou de interagir com ele). A transparência de um contrato inteligente garante que qualquer pessoa o pode examinar. - -## Exemplos de utilização de contratos inteligentes {#use-cases} - -Os contratos inteligentes podem fazer, essencialmente, tudo o que os programas informáticos fazem. - -Podem efetuar cálculos, criar divisas, armazenar dados, cunhar NFTs, enviar comunicações e até gerar gráficos. Seguem-se alguns exemplos populares e reais: - -- [Stablecoins](/stablecoins/) -- [Criar e distribuir ativos digitais únicos](/nft/) -- [Um câmbio de moeda aberto e automático](/get-eth/#dex) -- [Jogos descentralizados](/dapps/?category=gaming) -- [Uma apólice de seguro que reembolsa automaticamente](https://etherisc.com/) -- [Uma norma que permite criar divisas personalizadas e interoperáveis](/developers/docs/standards/tokens/) - -## More of a visual learner? {#visual-learner} - -Veja a Finematics a explicar os contratos inteligentes: - - - -## Leitura adicional {#further-reading} - -- [Como os contratos inteligentes vão mudar o mundo](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [Contratos inteligentes: A tecnologia Blockchain que vai substituir os advogados](https://blockgeeks.com/guides/smart-contracts/) -- [Contratos inteligentes para programadores](/developers/docs/smart-contracts/) -- [Aprenda a criar contratos inteligentes](/developers/learning-tools/) -- [Dominar o Ethereum - O que é um contrato inteligente?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/src/content/translations/pt/social-networks/index.md b/src/content/translations/pt/social-networks/index.md deleted file mode 100644 index 3e719bdc5ab..00000000000 --- a/src/content/translations/pt/social-networks/index.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: Redes sociais descentralizadas -description: Uma visão global das redes sociais descentralizadas no Ethereum -lang: pt -template: use-cases -emoji: ":mega:" -sidebarDepth: 2 -image: ../../../../assets/ethereum-learn.png -summaryPoint1: Plataformas baseadas em blockchain para interação social, criação e distribuição de conteúdo. -summaryPoint2: As redes sociais descentralizadas protegem a privacidade dos utilizadores e reforçam a segurança dos dados. -summaryPoint3: Os Tokens e NFTs criam novas formas de rentabilizar os conteúdos. ---- - -As redes sociais desempenham um papel fundamental nas nossas comunicações e interações diárias. No entanto, o controlo centralizado destas plataformas tem criado muitos problemas: violações de dados, falhas de servidores, retirada de plataformas, censura e violações de privacidade são algumas das cedências que as redes sociais fazem frequentemente. Para combater estes problemas, os programadores estão a criar redes sociais no Ethereum. As redes sociais descentralizadas podem colmatar muitos dos problemas das plataformas de redes sociais tradicionais e melhorar a experiência geral dos utilizadores. - -## O que são redes sociais descentralizadas? {#what-are-decentralized-social-networks} - -As redes sociais descentralizadas são plataformas baseadas em blockchain que permitem aos utilizadores trocar informações, bem como publicar e distribuir conteúdos a potenciais audiências. Como estas aplicações são executadas na blockchain, podem ser descentralizadas e resistentes à censura e ao controlo indevido. - -Existem muitas redes sociais descentralizadas como alternativas aos serviços de redes sociais estabelecidos, como o Facebook, o LinkedIn, o Twitter e o Medium. Mas as redes sociais com base em blockchain têm uma série de caraterísticas que as colocam à frente das plataformas sociais tradicionais. - -### Como é que as redes sociais descentralizadas funcionam? {#decentralized-social-networks-overview} - -As redes sociais descentralizadas são uma classe de [aplicações descentralizadas (dapps)](/dapps)-aplicações alimentadas por [contratos inteligentes](/developers/docs/smart-contracts/) implementados na blockchain. O código do contrato funciona como suporte para estas aplicações e define a sua lógica empresarial. - -As plataformas tradicionais de redes sociais dependem de bases de dados para armazenar informações do utilizador, código de programas e outras formas de dados. Mas isto cria pontos de falha pontuais e introduz um risco significativo. Por exemplo, os servidores do Facebook ficaram dramaticamente [offline durante horas](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) no ano passado, impedindo os utilizadores de aceder à plataforma. - -As redes sociais descentralizadas existem numa rede peer-to-peer composta por milhares de nós espalhados pelo mundo. Mesmo que alguns nós falhem, a rede funcionará sem interrupções, tornando as aplicações imunes a falhas e interrupções. - -Utilizando sistemas de armazenamento descentralizados como [o InterPlanetary File System (IPFS)](https://ipfs.io/), as redes sociais baseadas no Ethereum podem proteger as informações dos utilizadores contra utilização maliciosa e não autorizada. Ninguém conseguirá vender as suas informações pessoais a anunciantes, nem os piratas informáticos conseguirão roubar os seus dados confidenciais. - -Muitas plataformas sociais baseadas em blockchain têm tokens nativos que permitem a monetização na ausência de receitas de publicidade. Os utilizadores podem comprar estes tokens para aceder a determinadas funcionalidades, efetuar compras na aplicação ou dar gratificações aos seus criadores de conteúdos favoritos. - -## Benefícios das redes sociais descentralizadas {#benefits} - -1. As redes sociais descentralizadas são imunes à censura e estão abertas a toda a gente. Isto significa que os utilizadores não podem ser banidos, retirados da plataforma ou restringidos arbitrariamente. - -2. As redes sociais descentralizadas são baseadas em princípios de código aberto e disponibilizam o código-fonte das aplicações para inspeção pública. Ao eliminar a implementação de algoritmos pouco transparentes, comuns nas redes sociais tradicionais, as redes sociais baseadas em blockchain podem alinhar os interesses dos utilizadores e dos criadores de plataformas. - -3. As redes sociais descentralizadas eliminam o "intermediário". Os criadores de conteúdos têm propriedade direta sobre os seus conteúdos e interagem diretamente com seguidores, fãs, compradores e outros intervenientes, sem nada mais do que um contrato inteligente pelo meio. - -4. Como dapps em execução na rede Ethereum, que é sustentada por uma rede global de nós ponto a ponto, as redes sociais descentralizadas são menos suscetíveis a paralisações e interrupções de servidores. - -5. As plataformas sociais descentralizadas oferecem uma estrutura de monetização aprimorada para criadores de conteúdo por meio de tokens não fungíveis (NFTs), pagamentos criptográficos integrados nas aplicações e muito mais. - -6. As redes sociais descentralizadas proporcionam aos utilizadores um elevado nível de privacidade e anonimato. Por exemplo, um indivíduo pode iniciar sessão numa rede social baseada no Ethereum utilizando um perfil ou carteira ENS - sem ter de partilhar informações pessoalmente identificáveis (PII), tais como nomes, endereços de correio eletrónico, etc. - -7. As redes sociais descentralizadas dependem do armazenamento descentralizado e não de bases de dados centralizadas, sendo consideravelmente melhores para salvaguardar os dados dos utilizadores. - -## Redes sociais descentralizadas no Ethereum {#ethereum-social-networks} - -A rede Ethereum tornou-se a ferramenta preferida dos informáticos que criam redes sociais descentralizadas devido à popularidade dos seus tokens (ERC-20/ERC-721) e à sua imensa comunidade de utilizadores. Eis alguns exemplos de redes sociais baseadas no Ethereum: - -### Peepeth {#peepeth} - -[Peepeth](https://peepeth.com/) é uma plataforma de microblogging semelhante ao Twitter. É executado na blockchain Ethereum e utiliza o IPFS para armazenar os dados do utilizador. - -Os utilizadores podem enviar mensagens curtas chamadas "Peeps", que não podem ser apagadas ou modificadas. Pode receber ou dar gratificações a qualquer pessoa na plataforma em ether (ETH) sem sair da aplicação. - -### Mirror {#mirror} - -[Mirror](https://mirror.xyz/) é uma plataforma de texto habilitada para web3 que pretende ser descentralizada e de propriedade do utilizador. Os utilizadores podem ler e escrever gratuitamente no Mirror ligando simplesmente as suas carteiras. Os utilizadores podem também colecionar textos e subscrever os seus escritores favoritos. - -As mensagens publicadas no Mirror são permanentemente armazenadas no Arweave, uma plataforma descentralizada e podem ser cunhadas como tokens coleccionáveis [não fungíveis (NFTs)](/nft/) conhecidos como Writing NFTs. Os NFTs de escrita são totalmente gratuitos para os escritores e a recolha ocorre num Ethereum L2 - tornando as transações baratas, rápidas e amigas do ambiente. - -### MINDS {#minds} - -[MINDS](https://www.minds.com/) é uma das redes sociais descentralizadas mais utilizadas. Funciona como o Facebook e já reuniu milhões de utilizadores. - -Os utilizadores recorrem ao token ERC-20 nativo da plataforma $MIND para pagar os artigos. Os utilizadores também podem ganhar tokens $MIND publicando conteúdo interessante, contribuindo para o ecossistema e recomendando a plataforma a outras pessoas. - -## Redes sociais Web2 no Ethereum {#web2-social-networks-and-ethereum} - -As plataformas sociais nativas [Web3](/web3/) não são as únicas a tentar incorporar a tecnologia blockchain nas redes sociais. Muitas plataformas centralizadas estão também a planear integrar o Ethereum nas suas infra-estruturas: - -### Reddit {#reddit} - -O Reddit tem [propagado Community Points](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users), que são [ERC-20 tokens](/developers/docs/standards/tokens/erc-20/) que os utilizadores podem ganhar publicando conteúdo de qualidade e contribuindo para as comunidades online (subreddits). Pode resgatar estes tokens num subreddit para [obter privilégios e regalias exclusivos](https://www.reddit.com/community-points/). Para este projeto, a Reddit está a trabalhar com a Arbitrum, um rollup [layer 2](/layer-2/) concebido para colocar transações Ethereum. - -O programa já está em funcionamento, com o subreddit r / CryptoCurrency [executando a sua versão de Community Points chamada "Moons"](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). De acordo com a descrição oficial, os Moons "recompensam os autores de posts, comentários e moderadores pelas suas contribuições para o subreddit" Como estes tokens estão na blockchain (os utilizadores recebem-nos em carteiras), são independentes do Reddit e não podem ser retirados. - -Depois de concluir uma fase beta na rede de testes Rinkeby, os Reddit Community Points estão agora no [Arbitrum Nova](https://nova.arbitrum.io/), um blockchain que combina propriedades de um [sidechain](/developers/docs/scaling/sidechains/) e um [rollup otimista](/developers/docs/scaling/optimistic-rollups/). Para além de utilizarem os Community Points para desbloquear funcionalidades especiais, os utilizadores também podem trocá-los por moeda fiduciária nas bolsas de valores. Além disso, a quantidade de pontos comunitários que um utilizador possui determina a sua influência no processo de tomada de decisões na comunidade. - -### Twitter {#twitter} - -Em janeiro de 2021, o Twitter Blue [lançou o suporte para NFTs](https://mashable.com/article/twitter-blue-nft-profile-picture), permitindo que os utilizadores liguem as suas carteiras e exibam NFTs como imagens de perfil. No momento em que este artigo foi escrito, a empresa de redes sociais também [anunciou planos](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) para criar uma rede social descentralizada no futuro. - -### Instagram {#instagram} - -Em maio de 2022, [Instagram anunciou suporte para NFTs](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) no Ethereum e Polygon (entratanto revogado). Os utilizadores podem publicar NFTs diretamente no Instagram, ligando a sua carteira Ethereum. - -## Utilize redes sociais descentralizadas {#use-decentralized-social-networks} - -- **[Status.im](https://status.im/)** - _Status é uma aplicação de mensagens segura que usa um protocolo ponto a ponto de código aberto e criptografia de ponta a ponta para proteger as suas mensagens de terceiros._ -- **[Mirror.xyz](https://mirror.xyz/)** - _Mirror é uma plataforma de publicação descentralizada e de propriedade dos utilizadores, programada no Ethereum para que os utilizadores financiem ideias, monetizem conteúdo e criem comunidades de alto valor._ -- **[Lens Protocol](https://lens.xyz/)** - _O Lens Protocol é um sistema gráfico social integrado e descentralizado que ajuda os criadores a apropriarem-se do seu conteúdo onde quer que estejam no jardim digital da Internet descentralizada._ -- **[Farcaster](https://farcaster.xyz/)** - _Farcaster é uma rede social suficientemente descentralizada. É um protocolo aberto que pode suportar muitos clientes, tal como o correio eletrónico._ - -## Leitura adicional {#further-reading} - -### Artigos {#articles} - -- [Descentralizando as redes sociais: um guia para a pilha social web3](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _Coinbase Ventures_ -- [As redes sociais são a próxima grande oportunidade de descentralização](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) - _Ben Goertzel_ -- [A Web3 promete redes sociais descentralizadas e orientadas para a comunidade](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) - _Sumit Ghosh_ -- [Uma visão geral do cenário das redes sociais de blockchain](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) - _Gemini Cryptopedia_ -- [Como a Blockchain pode resolver a privacidade nas redes sociais](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) - _Prableen Bajpai_ -- [As redes de média social estão a chegar ao Blockchain](https://businesstechguides.co/what-are-decentralized-social-networks) - _Emmanuel Awosika_ -- [Descentralização suficiente para redes sociais](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) - _Varun Srinivasan_ - -### Vídeos {#videos} - -- [Média Sociais Descentralizados Explicados](https://www.youtube.com/watch?v=UdT2lpcGvcQ) - _Coinmarketcap_ -- [DeSo Blockchain quer descentralizar as redes sociais](https://www.youtube.com/watch?v=SG2HUiVp0rE) - _Bloomberg Technology_ -- [O futuro das redes sociais descentralizadas com Balaji Srinivasan, Vitalik Buterin, Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) - _ETHGlobal_ - -### Comunidades {#communities} - -- [Servidor do Discord Status](https://discord.com/invite/3Exux7Y) -- [Servidor do Discord Mirror](https://discord.com/invite/txuCHcE8wV) -- [subreddit r/CryptoCurrency](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/ro/community/support/index.md b/src/content/translations/ro/community/support/index.md deleted file mode 100644 index 7af0bcfffb6..00000000000 --- a/src/content/translations/ro/community/support/index.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -title: Asistență pentru Ethereum -description: Obțineți asistență în ecosistemul Ethereum. -lang: ro ---- - -# Asistență pentru Ethereum {#support} - -## Asistența oficială pentru Ethereum {#official-support} - -Căutați asistența oficială pentru Ethereum? Primul lucru pe care trebuie să îl știți este că Ethereum este descentralizat. Acest lucru înseamnă că nicio organizație, entitate sau persoană nu deține Ethereum și din acest motiv nu există canale oficiale de asistență. - -Înțelegerea naturii descentralizate a lui Ethereum este vitală, deoarece oricine pretinde a reprezenta asistența oficială pentru Ethereum încearcă probabil să vă escrocheze! Cea mai bună protecție împotriva escrocilor este să vă educați și să luați în serios securitatea. - - - Securitatea și prevenirea fraudelor la Ethereum - - - - Învățați noțiunile de bază ale lui Ethereum - - -În ciuda lipsei de asistență oficială, multe grupuri, comunități și proiecte din ecosistemul Ethereum vă ajută bucuros. - -## Asistență pentru portofele {#wallet-support} - -Aveți probleme cu portofelul dvs.? Majoritatea portofelelor au echipe de asistență dedicate, care vă pot ajuta: - -- [MetaMask](https://metamask.zendesk.com/hc/) -- [Argent](https://support.argent.xyz/hc/) -- [MyEtherWallet](https://help.myetherwallet.com/) - -_Aceasta nu este o listă exhaustivă. Aveți nevoie de ajutor ca să găsiți asistență pentru un anumit portofel? Alăturați-vă la [ethereum.org discord](https://discord.gg/ethereum-org) și vom încerca să vă ajutăm._ - -Căutați un portofel Ethereum? [Explorați lista noastră completă de portofele Ethereum](/wallets/find-wallet/). - -## Construirea aplicațiilor dapp {#building-support} - -Poate fi dificil de construit. Iată câteva spații de dezvoltare cu dezvoltatori Ethereum experimentați care sunt bucuroși să vă ajute. - -- [CryptoDevs discord](https://discord.gg/Z9TA39m8Yu) -- [Ethereum StackExchange](https://ethereum.stackexchange.com/) -- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) -- [Web3 University](https://www.web3.university/) - -Puteți să găsiți documentație și ghiduri de dezvoltare și în secțiunea noastră [Resurse pentru dezvoltatorii Ethereum](/developers/). - -### Instrumente {#dapp-tooling} - -Întrebarea dvs. se referă la un anumit instrument, proiect sau bibliotecă? Cele mai multe proiecte au servere de chat sau forumuri consacrate pentru a vă sprijini. - -Iată doar câteva exemple populare: - -- [Solidity](https://gitter.im/ethereum/solidity/) -- [ethers.js](https://discord.gg/6jyGVDK6Jx) -- [web3.js](https://discord.gg/GsABYQu4sC) -- [Hardhat](https://discord.gg/xtrMGhmbfZ) -- [Truffle](https://discord.gg/8uKcsccEYE) -- [Alchemy](http://alchemy.com/discord) - -## Rularea unui nod {#node-support} - -Dacă rulați un nod sau un validator, iată câteva comunități dedicate să vă ofere ajutor să începeți. - -- [EthStaker discord](https://discord.gg/ethstaker) -- [EthStaker reddit](https://www.reddit.com/r/ethstaker) - -Cele mai multe dintre echipele care construiesc clienți Ethereum au de asemenea spații dedicate, cu caracter public, unde puteți obține asistență și pune întrebări. - -### Clienți de execuție {#execution-clients} - -- [Geth](https://discord.gg/FqDzupGyYf) -- [Nethermind](https://discord.gg/YJx3pm8z5C) -- [Besu](https://discord.gg/p8djYngzKN) -- [Erigon](https://github.com/ledgerwatch/erigon/issues) - -### Clienți de consens {#consensus-clients} - -- [Prysm](https://discord.gg/prysmaticlabs) -- [Nimbus](https://discord.gg/nSmEH3qgFv) -- [Lighthouse](https://discord.gg/cyAszAh) -- [Teku](https://discord.gg/7hPv2T6) -- [Lodestar](https://discord.gg/aMxzVcr) - -De asemenea, puteți [învăța cum să executați un nod aici](/developers/docs/nodes-and-clients/run-a-node/). - -## Întrebări frecvente {#faq} - -#### Am trimis ETH către un portofel greșit {#wrong-wallet} - -O tranzacție trimisă pe Ethereum este ireversibilă. Din nefericire, dacă ați trimis ETH către un portofel greșit, nu există nicio posibilitate de a recupera aceste fonduri. Nicio organizație centrală, entitate sau persoană nu deține Ethereum, ceea ce înseamnă că nimeni nu poate anula tranzacțiile. De aceea, este vital să vă verificați întotdeauna de două ori tranzacțiile înainte de a le trimite. - -#### Cum pot să îmi revendic giveaway-ul (cadoul) Ethereum? {#giveaway-scam} - -Cadourile Ethereum sunt escrocherii concepute pentru a vă fura ETH-ul. Nu vă lăsați tentat de oferte care par prea bune pentru a fi adevărate — dacă trimiteți ETH la o adresă de giveaway, nu veți primi un cadou și nu veți putea să vă recuperați fondurile. - -[Mai multe despre prevenirea fraudelor](/security/#common-scams) - -#### Tranzacția mea este blocată {#stuck-transaction} - -Tranzacțiile pe Ethereum pot rămâne uneori blocate dacă ați trimis un comision de tranzacție mai mic decât cel cerut din cauza cererii din rețea. Multe portofele oferă opțiunea de a retrimite aceeași tranzacție cu un comision de tranzacție mai mare, pentru a permite ca tranzacția să fie procesată. În mod alternativ, puteți anula o tranzacție în așteptare, trimițând o tranzacție la propria dvs. adresă și utilizând același nonce ca și tranzacția în așteptare. - -[Cum să accelerați sau să anulați o tranzacție în așteptare pe MetaMask](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) - -[Cum să anulați tranzacțiile în așteptare pe Ethereum](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) - -#### Cum pot să minez pe Ethereum? {#mining-ethereum} - -Nu vă recomandăm să cumpărați echipament de minare dacă nu ați minat deja pe Ethereum. În -T2 2022 va avea loc [fuziunea](/roadmap/merge/), prin care Ethereum va trece de la dovada-muncii la dovada-mizei. Această schimbare înseamnă că minarea pe Ethereum nu va mai fi posibilă. diff --git a/src/content/translations/ro/dao/index.md b/src/content/translations/ro/dao/index.md deleted file mode 100644 index 9ab37099fa9..00000000000 --- a/src/content/translations/ro/dao/index.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -title: Organizațiile autonome descentralizate (DAO) -description: Prezentare generală a organizațiilor DAO de pe Ethereum -lang: ro -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: O reprezentare a votului unui DAO în favoarea unei propuneri. -summaryPoint1: Comunități deținute de membri, fără o conducere centralizată. -summaryPoint2: Un mod sigur de a colabora cu persoane necunoscute pe internet. -summaryPoint3: Un loc sigur unde se pot aloca fonduri pentru o cauză anume. ---- - -## Ce sunt organizațiile DAO? {#what-are-daos} - -Organizațiile DAO constituie o modalitate eficientă și sigură de a lucra cu oameni care împărtășesc aceleași idei din întreaga lume. - -Considerați-le o afacere pe internet care este deținută și administrată colectiv de membrii săi. Ele au trezorerii încorporate pe care nimeni nu are autoritatea de a le accesa fără aprobarea grupului. Deciziile sunt luate prin propuneri și prin vot, pentru a garata ca fiecare din cadrul organizației să aibă un cuvânt de spus. - -Nu există niciun CEO care să autorizeze cheltuieli pe baza propriilor capricii, și nicio șansă ca un CFO dubios să manipuleze registrele contabile. Totul se petrece în mod deschis și regulile pentru cheltuieli sunt integrate în DAO prin codul acesteia. - -## De ce avem nevoie de organizații DAO? {#why-dao} - -Ca să puneți bazele unei organizații împreună cu cineva printr-un proces care implică finanțare și bani, aveți nevoie de multă încredere în oamenii cu care lucrați. Dar este greu să aveți încredere în cineva cu care nu ați interacționat decât pe internet. În cazul organizațiilor DAO, nu trebuie să aveți încredere în nimeni altcineva din grup, ci doar să vă bazați pe codul DAO, care este 100% transparent și oricine îl poate verifica. - -Acest lucru deschide atât de multe oportunități noi de colaborare și coordonare la nivel mondial. - -### O comparație {#dao-comparison} - -| DAO | O organizație tradițională | -| -------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | -| De obicei are structură pe orizontală și este complet democratizată. | De obicei are structură ierarhică. | -| Este necesar votul membrilor pentru implementarea oricărei modificări. | În funcție de structură, modificările pot fi solicitate de o singură parte sau se poate propune votul. | -| Se numără voturile și rezultatul este pus în aplicare în mod automat, fără intermediar fiabil. | Dacă votul este permis, voturile sunt numărate pe plan intern, iar rezultatul votului trebuie gestionat manual. | -| Serviciile oferite sunt gestionate automat în mod descentralizat (de exemplu, distribuirea fondurilor filantropice). | Necesită manipulare umană sau automatizare controlată centralizat, expusă manipulării. | -| Toată activitatea este transparentă și pe deplin publică. | Activitatea este în general privată și limitată publicului. | - -### Exemple de organizaţii DAO {#dao-examples} - -Ca să înțelegeți mai bine, iată câteva exemple despre cum ați putea utiliza o organizație DAO: - -- O organizație caritabilă – puteți accepta calitatea de membru și donațiile de la oricine din lume, iar grupul poate decide cum dorește să cheltuiască donațiile. -- O rețea de liber-profesioniști – ați putea crea o rețea de contractanți care să își pună în comun fondurile pentru spații de birou și abonamente de software. -- Parteneriate și subvenții – ați putea crea un fond de investiții care să colecteze capital de investiții și să voteze cu privire la proiectele pe care să le sprijine. Banii rambursați ar putea fi redistribuiți ulterior între membrii DAO. - -## Membrii DAO {#dao-membership} - -Există diferite modele pentru membrii DAO. Membrii pot determina modul în care funcționează votul și alte aspecte cheie ale organizaţiei DAO. - -### Membru pe baza tokenurilor {#token-based-membership} - -De obicei nu necesită permisiuni, este în funcție de tokenul utilizat. Cele mai multe dintre aceste tokenuri de guvernare pot fi tranzacționate fără permisiune, prin schimb descentralizat. Altele trebuie să fie câștigate prin furnizarea de lichidități sau alte „dovezi de muncă”. În orice caz, simplul fapt de a deține tokenul acordă accesul la vot. - -_De obicei guvernează protocoalele descentralizate ample și/sau tokenurile înseși._ - -#### Un exemplu celebru {#token-example} - -[MakerDAO](https://makerdao.com) - Token-ul MakerDAO, MKR, este disponibil pe scară largă în schimburile descentralizate. Așa că oricine poate să cumpere, pentru a avea putere de vot pe viitorul protocol Maker. - -### Calitatea de membru bazată pe acțiuni {#share-based-membership} - -Organizaţiile DAO bazate pe acțiuni sunt mai permisive, dar încă destul de deschise. Orice potențiali membri pot prezenta o propunere de aderare la organizaţia DAO, oferind de obicei tribut de o anumită valoare sub formă de token-uri sau de muncă. Acțiunile reprezintă puterea de vot direct și titlul de proprietate. Membrii pot ieși oricând cu partea lor proporțională din trezorerie. - -_De obicei sunt folosite pentru organizații umanitare cu rânduri strânse, precum organizaţiile caritabile, colectivitățile de muncitori și cluburile de investiții. De asemenea, pot guverna protocoalele și token-urile._ - -#### Un exemplu celebru {#share-example} - -[MolochDAO](http://molochdao.com/) – MolochDAO se axează pe finanțarea proiectelor Ethereum. Acestea necesită o propunere de aderare, astfel încât grupul să poată evalua dacă aveţi experienţa și capitalul necesar pentru a-i evalua în cunoștință de cauză pe potențiali beneficiari. Nu puteți pur și simplu să cumpărați accesul la organizaţia DAO pe piața deschisă. - -## Cum funcționează organizaţiile DAO? {#how-daos-work} - -Temelia unei organizaţii DAO este reprezentată de contractul său inteligent. Contractul definește regulile organizației și deține trezoreria grupului. Odată ce contractul este live pe Ethereum, nimeni nu poate modifica regulile decât prin vot. Dacă cineva încearcă să facă ceva ce nu corespunde regulilor și logicii din cod, nu va reuşi. Iar pentru că și trezoreria este definită prin contractul inteligent, nimeni nu poate nici cheltui banii fără aprobarea grupului. Asta înseamnă că organizaţiile DAO nu au nevoie de o autoritate centrală. În schimb, grupul ia decizii în mod colectiv, iar plățile sunt autorizate automat la câştigarea voturilor. - -Acest lucru este posibil deoarece contractele inteligente nu pot fi falsificate odată ce ajung live pe Ethereum. Nu puteţi pur și simplu să modificaţi codul (regulile organizaţiei DAO) fără ca lumea să observe, pentru că totul este public. - - - Mai multe despre contractele inteligente - - -## Ethereum și organizaţiile DAO {#ethereum-and-daos} - -Ethereum este fundația perfectă pentru organizaţiile DAO din mai multe motive: - -- Consensul lui Ethereum este distribuit și stabilit suficient pentru ca organizațiile să aibă încredere în rețea. -- Codul contractului inteligent nu poate fi modificat odată ce este live, nici chiar de către proprietarii săi. Acest lucru permite organizaţiei DAO să funcționeze după regulile cu care a fost programată. -- Contractele inteligente pot trimite/primi fonduri. În caz contrar, aţi avea nevoie de un intermediar de încredere ca să gestioneze fondurile grupului. -- Comunitatea Ethereum s-a dovedit a fi mai mult colaborativă decât competitivă, permițând apariția rapidă a celor mai bune practici și a sistemelor de asistenţă. - -## Intraţi într-o organizaţie DAO sau creaţi-o {#join-start-a-dao} - -### Intraţi într-o organizaţie DAO {#join-a-dao} - -- [Organizaţiile DAO din comunitatea Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [Lista de organizaţii DAO din DAOHaus](https://app.daohaus.club/explore) - -### Puneți bazele unei organizații DAO {#start-a-dao} - -- [Creați o organizație DAO cu DAOHaus](https://app.daohaus.club/summon) -- [Creați o organizație DAO acționată prin Aragon](https://aragon.org/product) -- [Puneți bazele unei colonii](https://colony.io/) -- [Construiți o organizație DAO cu DAOstack](https://daostack.io/) - -## Referințe suplimentare {#further-reading} - -### Articole despre DAO {#dao-articles} - -- [Ce este o organizaţie DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) -- [House of DAOs](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) -- [Ce este o organizaţie DAO și la ce folosește?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) -- [Cum să puneți bazele unei comunități digitale acționate prin DAO](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) -- [Ce este o organizație DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) - -### Videoclipuri {#videos} - -- [Ce înseamnă DAO în cripto?](https://youtu.be/KHm0uUPqmVE) diff --git a/src/content/translations/ro/defi/index.md b/src/content/translations/ro/defi/index.md deleted file mode 100644 index ddbd5674b48..00000000000 --- a/src/content/translations/ro/defi/index.md +++ /dev/null @@ -1,351 +0,0 @@ ---- -title: Finanțe descentralizate (DeFi) -description: Prezentare generală a DeFi de pe Ethereum -lang: ro -template: use-cases -emoji: ":money_with_wings:" -image: ../../../../assets/use-cases/defi.png -alt: Sigla Eth alcătuită din piese lego. -sidebarDepth: 2 -summaryPoint1: O alternativă la actualul sistem financiar, mondială și deschisă. -summaryPoint2: Instrumente care vă permit efectuarea de împrumuturi, economii, investiții, comerț etc. -summaryPoint3: Pe baza tehnologiei open-source cu care poate programa oricine. ---- - -DeFi este un sistem financiar deschis și mondial conceput pentru era internetului – o alternativă la un sistem opac, controlat îndeaproape și menținut în funcțiune prin infrastructuri și procese vechi de zeci de ani. Acesta vă oferă controlul și vizibilitatea asupra banilor dvs. Vă oferă vizibilitate pe piețele mondiale și alternative la moneda dvs. locală sau la opțiunile bancare. Produsele DeFi dau acces la servicii financiare oricui are o conexiune la internet și sunt în mare parte deținute și întreținute de utilizatorii lor. Cripto în valoare de zeci de miliarde de dolari a circulat prin aplicațiile DeFi până acum și această sumă crește pe zi ce trece. - -## Ce este DeFi? {#what-is-defi} - -DeFi este un termen colectiv pentru produsele și serviciile financiare care sunt accesibile oricui poate utiliza Ethereum – oricui are o conexiune la internet. Cu DeFi, piețele sunt întotdeauna deschise și nu există autorități centralizate care să vă blocheze plățile sau să vă interzică accesul la ceva. Serviciile care înainte erau lente și riscau să fie afectate de erori umane sunt automate și mai sigure acum, când sunt gestionate de coduri pe care oricine le poate inspecta și verifica. - -Există o economie cripto în plină expansiune, în care puteți să dați cu împrumut, să luați cu împrumut, să investiți pe termen lung sau scurt, să câștigați dobândă și multe altele. Argentinienii experți în domeniul cripto, au folosit DeFi pentru a scăpa de inflația paralizantă. Companiile au început să transmită prin internet salariile propriilor angajați în timp real. Unii oameni chiar au contractat și plătit împrumuturi în valoare de milioane de dolari fără a fi nevoie de vreo identificare personală. - - - -## DeFi în comparație cu finanțele tradiționale {#defi-vs-tradfi} - -Unul dintre cele mai bune moduri de a ne da seama de potențialul DeFi este prin înțelegerea problemelor actuale. - -- Unele persoane nu beneficiază de dreptul de a deschide un cont bancar sau de a folosi servicii financiare. -- Dacă nu au acces la servicii financiare, este posibil ca oamenii să nu se poată angaja. -- Serviciile financiare vă pot bloca plățile. -- Serviciile financiare vă costă datele personale, un cost ascuns. -- Guvernele și instituțiile centralizate pot să închidă piețele după bunul plac. -- Orele de tranzacționare se limitează adesea la orele de lucru pe anumite fusuri orare. -- Transferurile de bani pot dura zile întregi datorită unor procese umane interne. -- Serviciile financiare vă costă în plus, pentru că instituțiile intermediare își cer partea lor. - -### O comparație {#defi-comparison} - -| DeFi | Finanțele tradiționale | -| ------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Dvs. vă țineți banii. | Companiile vă țin banii. | -| Dvs. controlați unde vă merg banii și cum sunt cheltuiți. | Trebuie să vă bazați pe companii că nu vă gestionează prost banii, ca de exemplu acordând împrumuturi unor debitori riscanți. | -| Transferurile de fonduri se efectuează în câteva minute. | Plățile pot să dureze zile întregi din cauza proceselor manuale. | -| Activitatea de tranzacționare are loc sub pseudonim. | Activitatea financiară are o legătură strânsă cu identitatea dvs. | -| DeFi este deschis tuturor. | Trebuie să depuneți o cerere pentru a putea folosi serviciile financiare. | -| Piețele sunt întotdeauna deschise. | Piețele se închid pentru că angajații trebuie să ia pauze. | -| Este construită pe transparență – oricine se poate uita la datele unui produs și poate inspecta modul în care funcționează sistemul. | Instituțiile financiare sunt registre închise: nu puteți solicita să le vedeți istoricul de împrumuturi, o evidență a activelor pe care le gestionează și altele. | - - - Explorați aplicațiile DeFi - - -## A început cu Bitcoin... {#bitcoin} - -Bitcoin a fost, în multe privințe, prima aplicație DeFi. Bitcoin vă permite să dețineți și să controlați valori cu adevărat și să le trimiteți în întreaga lume. Face aceasta oferind o cale prin care un număr mare de oameni care nu au încredere între ei să se pună de acord asupra unui registru de conturi fără a fi nevoie de un intermediar de încredere. Bitcoin este deschis oricui și nimeni nu are autoritatea de a-i schimba regulile. Regulile Bitcoin, cum ar fi raritatea și deschiderea sa, sunt înscrise în tehnologie. Nu este ca finanțele tradiționale, în care guvernele pot tipări bani care vă devalorizează economiile şi companiile pot închide piețele. - -Ethereum construieşte pe aceste baze. La fel ca în cazul Bitcoin, regulile nu se pot schimba fără să fiţi consultat și oricine deţine accesul. Dar aceasta face şi ca acești bani digitali să fie programabili, folosind [contractele inteligente](/glossary#smart-contract), astfel încât să puteți ajunge mai departe de stocarea și trimiterea de valori. - - - -## Bani programabili {#programmable-money} - -Asta sună ciudat... „De ce aș vrea să-mi programez banii”? Cu toate acestea, este mai degrabă o funcţionalitate implicită a tokenurilor de pe Ethereum. Oricine poate programa logica în plăți. Așa că puteți obține controlul și securitatea Bitcoin îmbinate cu serviciile oferite de instituțiile financiare. Aceasta vă permite să faceți cu criptomonedele lucruri pe care nu le puteți face cu Bitcoin, cum ar fi a lua şi a da cu împrumut, a planifica plăţile, a investi în fonduri de indexare și multe altele. - - -
Explorați sugestiile noastre de aplicațiile DeFi pe care să le testaţi dacă nu aţi mai folosit Ethereum.
- - Explorați aplicațiile DeFi - -
- -## Ce puteți face cu DeFi? {#defi-use-cases} - -Există o alternativă descentralizată la majoritatea serviciilor financiare. Dar Ethereum oferă de asemenea oportunități pentru crearea de produse financiare complet noi. Aceasta este o listă în permanentă creștere. - -- [Trimiteți bani în întreaga lume](#send-money) -- [Trimiteți bani în flux în întreaga lume](#stream-money) -- [Aveți acces la monedele stabile](#stablecoins) -- [Luați cu împrumut fonduri cu garanții](#lending) -- [Luați cu împrumut fără garanții](#flash-loans) -- [Începeți să economisiți cripto](#saving) -- [Tranzacționați tokenuri](#swaps) -- [Vă măriți propriul portofoliu](#investing) -- [Vă finanțați propriile idei](#crowdfunding) -- [Cumpărați asigurări](#insurance) -- [Vă gestionați propriul portofoliu](#aggregators) - - - -### Trimiteți rapid bani în întreaga lume {#send-money} - -Ca blockchain, Ethereum este destinat tranzacțiilor în mod securizat și la nivel mondial. Ca și Bitcoin, Ethereum trimite bani în întreaga lume tot atât de ușor cum s-ar trimite un e-mail. Introduceți [numele ENS](/nft/#nft-Domains) al destinatarului (precum bob.eth) sau adresa contului acestuia din portofel și plata va fi efectuată direct către acesta în câteva minute (de obicei). Pentru a trimite sau a primi plăți, aveți nevoie de un [portofel](/wallets/). - - - Vedeți aplicațiile dapp de plată - - -#### Trimiteți bani în flux în întreaga lume... {#stream-money} - -Puteți să trimiteți bani în flux și prin Ethereum. Acest lucru vă permite să plătiți cuiva salariul la secundă, oferindu-i acestuia acces la bani oricând are nevoie de ei. Sau să închiriați ceva la secundă, cum ar fi un spațiu de depozitare sau un scuter electric. - -Și dacă nu doriți să trimiteți sau să transmiteți în flux [ETH](/eth/) din cauză că se modifică mult valoarea acestuia, există monede alternative pe Ethereum: stablecoins. - - - -### Accesați monedele stabile {#stablecoins} - -Volatilitatea criptomonedelor reprezintă o problemă pentru o mulțime de produse financiare și pentru cheltuielile generale. Comunitatea DeFi a rezolvat această problemă cu ajutorul stablecoin-urilor. Valoarea lor rămâne legată de un alt activ, de obicei o monedă populară, cum ar fi dolarul. - -Monede precum Dai sau USDC au o valoare care se menține la câțiva cenți de un dolar. Acest lucru le face perfecte pentru câștiguri sau pentru vânzarea cu amănuntul. Mulți oameni din America Latină au folosit stablecoin-urile ca o modalitate de a-și proteja economiile într-o perioadă de mare incertitudine pentru monedele emise de guvernele lor. - - - Mai multe despre stablecoins - - - - -### Împrumuturile {#lending} - -Împrumuturile de la furnizorii descentralizați se prezintă în două varietăți principale. - -- Direct între participanți (peer-to-peer), adică un debitor va împrumuta direct de la un anume creditor. -- Pe bază de fonduri comune (pool-based), în care creditorii pun la dispoziție fonduri (lichidități) într-o rezervă comună din care debitorii pot împrumuta. - - - Vedeți dapp-urile de împrumut - - -Există multe avantaje la utilizarea unui creditor descentralizat... - -#### Împrumut în condiții de confidențialitate {#borrowing-privacy} - -În prezent, creditarea de bani și luarea cu împrumut a acestora se petrece între persoanele implicate. Băncile trebuie să știe care este probabilitatea să rambursați un împrumut înainte de a-l acorda. - -Împrumuturile descentralizate funcționează fără ca vreuna dintre părți să fie nevoită să se identifice. În schimb, debitorul trebuie să depună o garanție pe care creditorul o va primi automat dacă împrumutul nu este rambursat. Unii creditori acceptă chiar și NFT-uri ca garanție. NFT-ul este un act de proprietate asupra unui bun unic, cum ar fi o pictură. [Mai multe despre NFT-uri](/nft/) - -Acest lucru vă permite să împrumutați bani fără verificări de credit sau comunicarea de informații private. - -#### Acces la fonduri mondiale {#access-global-funds} - -Când folosiți un creditor descentralizat, aveți acces la fonduri depuse din întreaga lume, nu doar la fondurile aflate în custodia băncii sau instituției pe care o alegeți. Acest lucru face împrumuturile mai accesibile și îmbunătățește ratele dobânzilor. - -#### Eficiențe fiscale {#tax-efficiencies} - -Împrumuturile vă pot oferi acces la fondurile de care aveți nevoie fără a fi nevoie să vă vindeți ETH-ul (un eveniment impozabil). În schimb, puteți să folosiți ETH ca garanție pentru un împrumut în stablecoin. Acest lucru vă oferă fluxul de numerar de care aveți nevoie și vă permite să vă păstraţi ETH-ul. Stablecoin-urile sunt tokenuri mult mai adecvate atunci când aveți nevoie de numerar, deoarece nu fluctuează ca valoare precum ETH-ul. [Mai multe despre stablecoin-uri](#stablecoins) - -#### Împrumuturi flash {#flash-loans} - -Împrumuturile flash sunt o formă mai experimentală de împrumut descentralizat care vă permit să luaţi cu împrumut fără să oferiți garanții sau să furnizați informații personale. - -În acest moment nu sunt accesibile pe scară largă pentru persoanele fără cunoștințe tehnice, dar ele sugerează ce ar fi posibil pentru toată lumea în viitor. - -Funcționează pe baza faptului că împrumutul este contractat și rambursat în cadrul aceleiași tranzacții. Dacă nu poate fi rambursat, tranzacția se anulează ca și cum nu ar fi avut loc nimic. - -Fondurile care sunt adesea utilizate sunt deținute în fonduri de lichiditate (fonduri comune mari utilizate pentru împrumuturi). Dacă nu sunt utilizate la un moment dat, acest lucru creează o oportunitate ca cineva să împrumute aceste fonduri, să facă afaceri cu ele și să le ramburseze integral literalmente la momentul în care sunt împrumutate. - -Acest lucru înseamnă că trebuie inclusă logică într-o tranzacție foarte personalizată. Un exemplu simplu ar putea fi când cineva utilizează un împrumut flash pentru a lua cu împrumut cât mai multe active la un anumit preț, ca să le poată vinde în cadrul unui alt schimb la care prețul este mai mare. - -Așadar, într-o singură tranzacție au loc următoarele: - -- Împrumutaţi o cantitate X de $asset la 1,00 $ de la schimbul A -- Vindeți X $asset pe schimbul B la 1,10 $ -- Plătiți împrumutul înapoi la schimbul A -- Păstrați profitul minus comisionul de tranzacție - -Dacă oferta schimbului B ar scădea brusc și utilizatorul nu ar fi putut cumpăra suficient pentru a acoperi împrumutul inițial, tranzacția ar eșua pur și simplu. - -Pentru a putea realiza cele din exemplul de mai sus în lumea financiară tradițională, ați avea nevoie de o sumă enormă de bani. Aceste strategii producătoare de bani sunt accesibile doar celor care au deja o avere. Împrumuturile flash sunt un exemplu al unui viitor în care nu este o condiție prealabilă să aveți bani pentru a produce bani. - -[Mai multe despre împrumuturile flash](https://aave.com/flash-loans/) - - - -### Începeți să economisiți cu cripto {#saving} - -#### Creditarea {#lending} - -Puteți să câștigați dobândă creditând cripto și să vedeți cum vă cresc fondurile în timp real. În acest moment, ratele dobânzilor sunt mult mai mari decât cele pe care le-ați putea obține la banca dvs. locală (dacă aveți norocul să puteți accesa vreuna). Iată un exemplu: - -- Creditați 100 Dai, o monedă [stablecoin](/stablecoins/), unui produs precum Aave. -- Primiți 100 Aave Dai (aDai), care este un token ce reprezintă Dai-ul creditat. -- Valoarea aDai va crește în funcție de ratele dobânzilor și puteți vedea cum vă crește soldul în portofel. În funcție de APR, soldul portofelului va deveni ceva de genul 100,1234 după câteva zile sau chiar ore! -- Puteți retrage în orice moment o cantitate de Dai obișnuită, egală cu soldul dvs. aDai. - - - Vedeți dapp-uri de creditare - - -#### Loterii fără pierderi {#no-loss-lotteries} - -Loteriile fără pierdere, precum PoolTogether, sunt un nou mod distractiv și inovator de a economisi bani. - -- Cumpărați 100 de bilete folosind 100 de tokenuri Dai. -- Primiți 100 de plDai care reprezintă cele 100 de bilete. -- Dacă unul dintre biletele dvs. este ales câștigător, soldul dvs. plDai va crește cu valoarea fondului de premii. -- Dacă nu câștigați, cei 100 de plDai se reportează la extragerea de săptămâna următoare. -- Puteți retrage oricând o cantitate de Dai obișnuită egală cu soldul plDai. - -Fondul de premii este generat de toate dobânzile generate de creditarea biletelor depuse, ca cele din exemplul de creditare de mai sus. - - - Testați PoolTogether - - - - -### Schimbați tokenuri {#swaps} - -Există mii de tokenuri pe Ethereum. Schimburile descentralizate (DEX) vă permit să tranzacționați tokenuri diferite oricând doriți. Nu renunțați niciodată la controlul activelor dvs. Acest lucru este ca și cum ați folosi un schimb valutar atunci când vizitați o altă țară. Dar versiunea DeFi nu se închide niciodată. Piețele sunt deschise 24/7, 365 de zile pe an, iar tehnologia garantează că va exista întotdeauna cineva care să accepte o tranzacție. - -De exemplu, dacă doriți să folosiți loteria fără pierderi PoolTogether (descrisă mai sus), veți avea nevoie de un token precum Dai sau USDC. DEX-urile vă permit să efectuați schimburi de ETH pentru aceste token-uri și invers în momentul în care ați terminat. - - - Vedeți schimburile de tokenuri - - - - -### Tranzacționare avansată {#trading} - -Există opțiuni mai avansate pentru cei ce doresc să tranzacționeze deținând ceva mai mult control. Ordinele cu limită, perpetue, tranzacționarea în marjă și multe altele sunt toate posibile. Cu tranzacționarea descentralizată aveți acces la lichidități mondiale, piața nu se închide niciodată și dețineți mereu controlul asupra activelor dvs. - -Atunci când folosiți un schimb centralizat, trebuie să vă depuneți activele înainte de tranzacție și să vă bazați că sunt pe mâini bune. Cât timp activele sunt depuse, acestea sunt în pericol, deoarece schimburile centralizate sunt ținte atractive pentru hackeri. - - - Vedeți dapp-urile de tranzacționare - - - - -### Măriți-vă portofoliul {#investing} - -Există produse de gestionare a fondurilor pe Ethereum care vor încerca să vă crească portofoliul utilizând o strategie la alegerea dvs. Acest lucru este automat, deschis tuturor și nu are nevoie de un manager uman care să vă reducă profiturile. - -Un bun exemplu este [fondul DeFi Pulse Index (DPI)](https://defipulse.com/blog/defi-pulse-index/). Acesta este un fond care se reechilibrează automat pentru a vă asigura că portofoliul dvs. include întotdeauna [tokenurile de top în funcție de capitalizarea de piață](https://www.coingecko.com/en/defi). Nu trebuie niciodată să gestionați vreun detaliu și puteți retrage din fond oricând doriți. - - - Vedeți aplicațiile dapp de investiţii - - - - -### Finanțați-vă ideile {#crowdfunding} - -Ethereum este o platformă ideală pentru finanțarea participativă: - -- Potențialii finanțatori pot veni de oriunde – Ethereum și tokenurile sale sunt deschise oricui, oriunde în lume. -- Este transparentă, deci colectorii de fonduri pot dovedi câți bani au fost strânși. Puteți urmări chiar și modul în care fondurile sunt cheltuite ulterior, pe parcurs. -- Finanțatorii pot configura rambursări automate dacă, de exemplu, nu s-a respectat un anumit termen limită și nu s-a întrunit o sumă minimă. - - - Vedeți aplicațiile dapp de finanțare participativă - - -#### Finanțare cuadratică {#quadratic-funding} - -Ethereum este un software open source și o mare parte din munca de până acum a fost finanțată de comunitate. Aceasta a dus la creșterea unui model nou și interesant de finanțare: finanțarea cuadratică. Acesta are potențialul de a îmbunătăți modul în care finanțăm toate tipurile de bunuri publice în viitor. - -Finanțarea cuadratică face în așa fel încât proiectele care primesc cea mai mare finanțare să fie cele cu cererea cât mai unică. Cu alte cuvinte, proiectele care vor îmbunătăți viaţa celor mai mulți oameni. Iată cum funcționează: - -1. Există un fond corespunzător de fonduri donate. -2. Începe o rundă de finanțare publică. -3. Puteți semnala că solicitați un proiect donând ceva bani. -4. Odată ce runda s-a încheiat, fondul comun este distribuit proiectelor. Cele cu cea mai mare cerere de câte unu primesc cea mai mare sumă din fondul comun. - -Aceasta înseamnă că Proiectul A cu cele 100 de donații de 1 dolar ar putea primi mai multe fonduri decât Proiectul B, cu o singură donație de 10.000 de dolari (în funcție de mărimea fondului comun). - -[Mai multe despre finanțarea cuadratică](https://wtfisqf.com) - - - -### Asigurările {#insurance} - -Asigurările descentralizate urmăresc reducerea costurilor de asigurare, fiind mai rapide și mai transparente. Fiind mai automatizată, acoperirea este mai accesibilă și plățile sunt mult mai rapide. Datele utilizate pentru decizia cu privire la solicitarea dvs. sunt complet transparente. - -Produsele Ethereum, ca orice software, pot fi afectate de bug-uri și alte moduri de a profita. Deci o mulțime de produse de asigurare din acest spațiu se concentrează acum pe protejarea utilizatorilor acestora de pierderile de fonduri. Cu toate acestea, există proiecte care încep să creeze o acoperire pentru tot ceea ce ni se poate întâmpla. Un bun exemplu în acest sens este asigurarea Etherisc's Crop, care are ca scop [protejarea micilor fermieri din Kenya de secetă și inundații](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Asigurarea descentralizată poate oferi o acoperire mai ieftină pentru fermierii care adesea nu își pot permite asigurarea tradițională. - - - Vedeți dapp-urile de asigurare - - - - -### Agregatorii și managerii de portofoliu {#aggregators} - -Având în vedere ceea ce se întâmplă, veți avea nevoie de o modalitate de a ține evidența tuturor investițiilor, împrumuturilor și tranzacțiilor. Există o multitudine de produse care vă permit să vă coordonați întreaga activitate DeFi dintr-un singur loc. Aceasta este splendoarea arhitecturii DeFi deschise. Echipele pot construi interfețe în care nu puteți doar vedea soldurile din toate produsele, ci puteți folosi și funcțiile acestora. Puteți descoperi utilitatea acestui fapt pe măsură ce continuați explorarea DeFi. - - - Vedeți dapp-urile portofoliului - - - - -## Cum funcționează DeFi? {#how-defi-works} - -DeFi utilizează criptomonede și contracte inteligente pentru a furniza servicii care nu au nevoie de intermediari. În lumea financiară de astăzi, instituțiile financiare acționează ca garanți ai tranzacțiilor. Acest lucru oferă acestor instituții o putere imensă, deoarece banii dvs. circulă prin ele. În plus, miliarde de oameni din întreaga lume nici măcar nu pot accesa un cont bancar. - -În DeFi, un contract inteligent înlocuiește instituția financiară în cadrul tranzacției. Un contract inteligent este un tip de cont Ethereum care poate deține fonduri și le poate trimite/rambursa în funcție de anumite condiții. Nimeni nu poate modifica acel contract inteligent atunci când este live – va funcționa întotdeauna așa cum este programat. - -Un contract care este conceput pentru a preda o indemnizație sau bani de buzunar ar putea fi programat să trimită bani din Contul A în Contul B în fiecare vineri. Și va face acest lucru doar atât timp cât Contul A are fondurile necesare. Nimeni nu poate să modifice contractul și să adauge Contul C ca beneficiar pentru a fura fonduri. - -Contractele sunt și publice, putând fi inspectate și auditate de oricine. Acest lucru înseamnă că, de multe ori, contractele proaste vor fi supuse destul de repede controlului comunității. - -Acest lucru înseamnă că trebuie actualmente să avem încredere în membrii cu mai multe abilități tehnice ai comunității Ethereum, care pot citi codul. Comunitatea bazată pe open-source ajută la menținerea dezvoltatorilor sub control, dar această necesitate se va diminua în timp, pe măsură ce contractele inteligente devin mai ușor de citit și sunt elaborate alte modalități pentru a dovedi fiabilitatea codului. - -## Ethereum și DeFi {#ethereum-and-defi} - -Ethereum este fundația perfectă pentru DeFi din mai multe motive: - -- Nimeni nu deține Ethereum sau contractele inteligente care îi sunt asociate – acest lucru oferă tuturor posibilitatea de a utiliza DeFi. Totodată, acest lucru înseamnă că nimeni nu poate schimba regulile ce vă privesc. -- Toate produsele DeFi vorbesc aceeași limbă în culise: Ethereum. Acest lucru înseamnă că multe dintre produse lucrează împreună impecabil. Puteți să împrumutați tokenuri pe o platformă și să schimbați tokenul purtător de dobândă pe o piață diferită sau pe o aplicație complet diferită. Este ca și cum ați fi în măsură să încasați puncte de loialitate la bancă. -- Tokenurile și criptomonedele sunt încorporate în Ethereum, un registru comun – urmărirea tranzacțiilor și a proprietății este ceea ce face Ethereum. -- Ethereum permite libertate financiară completă – majoritatea produselor nu vor prelua niciodată custodia fondurilor dvs., permițându-vă să vă păstrați controlul. - -Puteți să vă imaginați DeFi în niveluri: - -1. Blockchain – Ethereum conține istoricul tranzacțiilor și situația conturilor. -2. Activele – [ETH](/eth/) și celelalte tokenuri (monede). -3. Protocoalele – [contracte inteligente](/glossary/#smart-contract) care oferă funcționalitatea, de exemplu un serviciu care permite a da împrumuturi descentralizat de active. -4. [Aplicațiile](/dapps/) – produsele pe care le folosim pentru a gestiona și a accesa protocoalele. - -## Construiţi DeFi {#build-defi} - -DeFi este o mișcare open-source. Protocoalele și aplicațiile DeFi sunt dtoate eschise pentru ca dvs. să le puteţi inspecta, să puteţi crea fork-uri și inova. Din cauza acestei stive pe niveluri (toate împart același blockchain de bază și aceleași active), protocoalele pot fi combinate şi asortate pentru a debloca oportunități combo unice. - - - Mai multe despre construirea de aplicaţii dapp - - -## Referințe suplimentare {#futher-reading} - -### Date despre DeFi {#defi-data} - -- [DeFi Prime](https://defiprime.com/) -- [DeFi Llama](https://defillama.com/) - -### Articole despre DeFi {#defi-articles} - -- [Ghidul începătorului pentru DeFi](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, 6 ianuarie 2020_ - -### Videoclipuri {#videos} - -- [Finematks - educație financiară descentralizată](https://finematics.com/) – _Videoclipuri despre DeFi_ -- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _Bazele DeFi: Tot ce trebuie să știți pentru a porni în acest spațiu uneori derutant._ -- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _Ce este DeFi?_ - -### Comunități {#communities} - -- [Serverul Discord DeFi Llama](https://discord.gg/buPFYXzDDd) -- [Serverul Discord DeFi Pulse](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/ro/developers/docs/layer-2-scaling/index.md b/src/content/translations/ro/developers/docs/layer-2-scaling/index.md deleted file mode 100644 index d4e7836cd0a..00000000000 --- a/src/content/translations/ro/developers/docs/layer-2-scaling/index.md +++ /dev/null @@ -1,239 +0,0 @@ ---- -title: Scalare Nivel 2 -description: Prezentarea diferitelor opțiuni de scalare care sunt dezvoltate în prezent de comunitatea Ethereum. -lang: ro -incomplete: true -sidebarDepth: 3 -isOutdated: true ---- - -Nivelul 2 este un termen colectiv pentru soluții concepute pentru a te ajuta la scalarea aplicației prin gestionarea tranzacțiilor din lanțul principal Ethereum (nivelul 1). Viteza de tranzacție suferă atunci când rețeaua este ocupată, ceea ce poate face experiența utilizatorului slabă pentru anumite tipuri de aplicații dapp. Și pe măsură ce rețeaua devine mai aglomerată, prețurile gazului cresc, pe măsură ce expeditorii de tranzacții își propun să se supraliciteze reciproc. Aceasta poate face ca utilizarea Ethereum să fie foarte costisitoare. - -## Condiții prealabile {#prerequisites} - -Ar trebui să înțelegi bine toate subiectele fundamentale. Implementarea soluțiilor de nivel 2 este avansată, deoarece tehnologia este mai puțin testată în domeniu. - -## De ce este necesar nivelul 2? {#why-is-layer-2-needed} - -- Unele cazuri de utilizare, cum ar fi jocurile blockchain, nu au sens cu timpul curent de tranzacție -- Utilizarea aplicațiilor blockchain poate fi inutil de costisitoare -- Nicio actualizare a scalabilității nu ar trebui să fie în detrimentul descentralizării securității – nivelul 2 se bazează pe Ethereum. - -## Tipuri de soluții pentru Nivelul 2 {#types} - -- [Rollup-uri](#rollups) - - [Rollup-uri ZK](#zk-rollups) - - [Rollup-uri Optimistic](#optimistic-rollups) -- [Canale de stare](#channels) -- [Plasma](#plasma) -- [Validium](#validium) -- [Sidechain-uri](#sidechains) -- [Soluții hibride](#hybrid-solutions) - -Cele mai multe soluții de nivel 2 sunt centrate în jurul unui server sau cluster de servere, fiecare dintre acestea putând fi denumite nod, validator, operator, ordonator, producător de blocuri sau un termen similar. În funcție de implementare, aceste noduri de nivel 2, pot fi rulate de întreprinderi sau entități care le utilizează sau de un operator terț sau de un grup mare de persoane (similar cu rețeaua principală). În general, tranzacțiile sunt transmise la aceste noduri nivel 2 în loc să fie transmise direct la nivelul 1 ([rețeaua principală](/glossary/#mainnet)); instanța nivelului 2 le organizează apoi în grupuri înainte de a le ancora în nivelul 1, după care sunt securizate de nivelul 1 și nu mai pot fi modificate. Detaliile despre modul în care se face acest lucru variază semnificativ între diferite tehnologii de nivel 2 și implementări. - -O instanță specifică de nivel 2 poate fi deschisă și partajată de mai multe aplicații sau poate fi implementată de o singură companie și dedicată doar sprijinirii aplicației lor. - -## Rollup-uri {#rollups} - -Rollup-urile sunt soluții care grupează sau „roll-up” tranzacțiile sidechain într-o singură tranzacție și generează o dovadă criptografică, cunoscută sub numele de SNARK (Succinct Non-Interactive Argument of Knowledge). Numai această dovadă este prezentată lanțului principal. - -_Sidechain-urile sunt blockchain-uri independente compatibile cu Ethereum._ - -Cu alte cuvinte, rollup-urile înseamnă că toate stările și execuția sunt gestionate în sidechain-uri – verificarea semnăturii, executarea contractului etc. Lanțul principal Ethereum (nivelul 1) stochează doar datele despre tranzacții. - -Soluțiile rollup necesită resurse-releu care au mizat o obligațiune în contractul rollup. Aceasta îi stimulează să transmită rollup-urile cu exactitate. - -**Util pentru:** - -- reducerea taxelor pentru utilizatori -- participarea deschisă -- transferarea rapidă al tranzacției - -Există două tipuri de pachete cu modele de securitate diferite: - -- Cunoștințe zero: rulează calcule în afara lanțului și prezintă o [**dovadă de valabilitate**](/glossary/#validity-proof) lanțului -- Optimist: presupune că tranzacțiile sunt valabile în mod implicit și rulează doar calculul, printr-o [**dovadă de fraudă**](/glossary/#fraud-proof), în cazul unei contestații - -### Rollup-uri de „Cunoștințe zero” {#zk-rollups} - -Rollup-urile de cunoștințe zero, cunoscute și sub numele de ZK-Rollup-uri, grupează sute de transferuri în afara lanțului într-o singură tranzacție printr-un contract inteligent. Din datele transmise, contractul inteligent poate verifica toate transferurile incluse. Aceasta este cunoscut ca o dovadă de validitate. - -Cu un rollup ZK, validarea unui bloc este mai rapidă și mai ieftină, deoarece sunt incluse mai puține date. Nu ai nevoie de toate datele tranzacției pentru a o verifica, ci doar dovada. - -Sidechain-ul în care se întâmplă rollup-urile ZK poate fi optimizat pentru a reduce dimensiunea tranzacției. De exemplu, un cont este reprezentat mai degrabă de un index decât de o adresă, care reduce o tranzacție de la 32 de octeți la doar 4 octeți. Tranzacțiile sunt, de asemenea, scrise în Ethereum ca date de apel, reducând gazul. - -#### Avantaje și dezavantaje {#zk-pros-and-cons} - -| Avantaje | Dezavantaje | -| ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Nicio întârziere, deoarece dovezile sunt deja considerate valide atunci când sunt trimise lanțului principal. | Limitat la transferuri simple, nu este compatibil cu EVM. | -| Mai puțin vulnerabile la atacurile economice la care [Rollup-urile Optimistic](#optimistic-pros-and-cons) pot fi vulnerabile. | Dovezile de validitate necesită un mare număr de calcule – nu merită să fie folosite pentru aplicații cu activitate redusă pe lanț. | -| | Timp de [finalitate](/glossary/#finality) mai lent (10-30 min pentru a genera o dovada ZK) (dar mai rapide la finalitate completă, deoarece nu există întârzieri de dispută ca în [rollup-urile Optimistic](#optimistic-rollups)). | - -#### Folosește Rollup-uri ZK {#use-zk-rollups} - -- [Loopring](https://loopring.org/#/) -- [Starkware](https://starkware.co/) -- [Matter Labs zkSync](https://matter-labs.io/) -- [Aztec 2.0](https://aztec.network/) - -### Rollup-uri Optimistic {#optimistic-rollups} - -Rollup-urile Optimistic utilizează un sidechain care se află în paralel cu lanțul principal Ethereum. Ele pot oferi îmbunătățiri în scalabilitate, deoarece nu fac niciun calcul în mod implicit. În schimb, după o tranzacție, ele propun noua stare rețelei principale. Sau „legalizează” tranzacția. - -Cu rollup-urile Optimistic, tranzacțiile sunt scrise în lanțul principal Ethereum ca date de apel, optimizându-le în continuare prin reducerea costului gazului. - -Deoarece calculul este partea lentă și costisitoare a utilizării Ethereum, rollup-urilor Optimistic pot oferi până la 10-100 de ori îmbunătățiri ale scalabilității în funcție de tranzacție. Acest număr va crește și mai mult odată cu introducerea upgrade-ului Eth2: [lanțurile de fragmente](/roadmap/danksharding). Aceasta se datorează faptului că vor exista mai multe date disponibile în cazul în care o tranzacție este contestată. - -#### Contestarea tranzacțiilor {#disputing-transactions} - -Rollup-urile Optimistic nu calculează de fapt tranzacția, deci trebuie să existe un mecanism care să asigure că tranzacțiile sunt legitime și nu frauduloase. Aici intervin dovezile de fraudă. Dacă cineva observă o tranzacție frauduloasă, rollup-ul va executa o dovadă de fraudă și va rula calculul tranzacției, utilizând datele de stare disponibile. Aceasta înseamnă că este posibil să ai timpi de așteptare mai lungi pentru confirmarea tranzacției decât un rollup-ZK, deoarece ar putea fi contestat. - -![Diagramă care arată ce se întâmplă atunci când are loc o tranzacție frauduloasă într-un rollup Optimist pe Ethereum](../../../../../developers/docs/scaling/optimistic-rollups/optimistic-rollups.png) - -Gazul de care ai nevoie pentru a calcula dovada fraudelor este chiar rambursat. Ben Jones, de la Optimism, descrie sistemul de legături în loc: - -_„toți cei care ar putea fi în măsură să ia o măsură pe care tu ar trebui să o dovedești că este frauduloasă pentru a-ți asigura fondurile, trebuie să posteze o garanție. Practic, iei niște ETH și îl blochezi și spui „Hei, promit să spun adevărul”... Dacă nu spun adevărul și se dovedește că am comis fraudă, voi fi penalizat din acești bani. Nu numai că voi fi penalizat din acești bani, dar o parte din ei vor plăti pentru gazul celor care l-au cheltuit făcând dovada fraudei mele_" - -Deci, vei fi rambursat pentru dovedirea fraudei. - -#### Avantaje și dezavantaje {#optimistic-pros-and-cons} - -| Avantaje | Dezavantaje | -| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | -| Orice poți face pe nivelul 1 Ethereum, poți face cu rollup-ul Optimistic, deoarece este compatibil EVM și Solidity. | Perioade lungi de așteptare pentru tranzacțiile în lanț datorită potențialelor provocări legate de fraudă. | -| Toate datele tranzacțiilor sunt stocate pe nivelul 1 al lanțului, ceea ce înseamnă că este sigur și descentralizat. | Potențial vulnerabil la atacuri dacă valoarea într-un rollup Optimist depășește suma garanției unui operator. | - -#### Folosește rollup-uri Optimistic {#use-optimistic-rollups} - -- [Optimism](https://optimism.io/) -- [Offchain Labs Arbitrum Rollup](https://offchainlabs.com/) -- [Fuel Network](https://fuel.sh/) - -## Canale {#channels} - -Canalele permit participanților să tranzacționeze de `x` ori în afara lanțului, trimițând doar două tranzacții către rețeaua din lanț. Aceasta permite un transfer de tranzacții extrem de ridicat - -**Util pentru**: - -- o mulțime de actualizări de stare -- atunci când numărul de participanți este cunoscut în avans -- atunci când participanții sunt întotdeauna disponibili - -Participanții trebuie să blocheze o parte din starea Ethereum, ca un depozit ETH, într-un contract multisig. Un contract multisig este un tip de contract care necesită semnarea (și prin urmare, acordul) mai multor chei private pentru executare. - -Blocarea stării în acest mod este prima tranzacție și deschide canalul. Participanții pot tranzacționa rapid și liber în afara lanțului. Când interacțiunea este finalizată, este trimisă o tranzacție finală în lanț, care deblochează starea. - -### Canale de stare {#state-channels} - -Canal de stare tic tac toe: - -1. Creează un contract inteligent multisig „Judecător” pe lanțul principal Ethereum care înțelege regulile tic-tac-toe și poate identifica Alice și Bob ca fiind cei doi jucători din jocul nostru. Acest contract deține un premiu de 1 ETH. - -2. Apoi, Alice și Bob încep să joace, deschizând canalul de stare. Fiecare mișcare creează o tranzacție în afara lanțului care conține un „nonce”, ceea ce înseamnă că putem spune întotdeauna mai târziu în ce ordine s-au întâmplat mișcările. - -3. Când există un câștigător, acesta închid canalul prin trimiterea stării finale (de exemplu, o listă de tranzacții) la contractul Judecător, plătind doar o singură taxă de tranzacție. Judecătorul se asigură că această „stare finală” este semnată de ambele părți și așteaptă un timp pentru a se asigura că nimeni nu poate contesta în mod legitim rezultatul, apoi plătește premiul de 1 ETH lui Alice. - -În prezent există două tipuri de canale: - -- Canale de stare – așa cum am descris mai sus -- Canale de plată – canale de stare simplificate care se ocupă doar de plăți. Permit transferuri în afara lanțului între doi participanți, atâta timp cât suma netă a transferurilor lor nu depășește tokenurile depuse. - -#### Avantaje și dezavantaje {#channels-pros-and-cons} - -| Avantaje | Dezavantaje | -| --------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Retragere/soluționare instantanee pe lanțul principal (dacă ambele părți ale unui canal cooperează) | Timp și costuri pentru a configura și stabili un canal - nu sunt atât de bune pentru tranzacțiile ocazionale unice între utilizatori arbitrari. | -| Este posibil un debit extrem de ridicat | Trebuie să urmărești periodic rețeaua (cerința „liveness”) sau să delegi această responsabilitate altcuiva pentru a-ți asigura securitatea fondurilor. | -| Cel mai mic cost pe tranzacție - bun pentru microplăți în flux | Trebuie să blochezi fonduri în canale de plată deschise | -| | Nu acceptă participarea deschisă | - -#### Folosește canale de Stare {#use-state-channels} - -- [Connext](https://connext.network/) -- [Raiden](https://raiden.network/) -- [Perun](https://perun.network/) -- [Statechannels.org](https://statechannels.org/) - -## Plasma {#plasma} - -Un lanț „plasma” este un blockchain separat care este ancorat pe lanțul principal Ethereum și utilizează dovezi de fraudă (cum ar fi rollup-urile [Optimistic](#optimistic-rollups)) pentru a arbitra disputele. - -| Avantaje | Dezavantaje | -| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Randament ridicat, cost redus pe tranzacție. | Nu acceptă calculul general. Numai transferurile de bază, swap-urile și alte câteva tipuri de tranzacții sunt acceptate prin logica predicată. | -| Bun pentru tranzacțiile între utilizatori arbitrari (fără cheltuieli indirecte pentru fiecare pereche de utilizatori dacă ambele sunt stabilite pe lanțul de plasmă) | Trebuie să urmărești periodic rețeaua (cerința „liveness”) sau să delegi această responsabilitate altcuiva pentru a-ți asigura securitatea fondurilor. | -| | Se bazează pe unul sau mai mulți operatori pentru a stoca date și a le furniza la cerere. | -| | Retragerile sunt întârziate cu câteva zile pentru a permite provocări. Pentru activele fungibile acest lucru poate fi atenuat de furnizorii de lichidități, dar există un cost de capital asociat. | - -### Folosește Plasma {#use-plasma} - -- [OMG Network](https://omg.network/) -- [Matic Network](https://matic.network/) -- [Gluon](https://gluon.network/) -- [LeapDAO](https://ipfs.leapdao.org/) - -## Validium {#validium} - -Folosește dovezi de validitate, cum ar fi [rollup-ZK,](#zk-rollups) dar datele nu sunt stocate pe nivelul 1 al lanțului principal al Ethereum. Aceasta poate duce la 10k tranzacții pe secundă pe lanțul validium și lanțuri multiple pot fi rulate în paralel. - -| Avantaje | Dezavantaje | -| ------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Fără întârziere de retragere (fără latență tx în-lanț/între-lanțuri); în consecință, o mai mare eficiență a capitalului. | Suport limitat pentru calcule generale/contracte inteligente; necesită limbaje specializate. | -| Nu este vulnerabil la anumite atacuri economice cu care se confruntă sistemele bazate pe dovada fraudei în aplicații de mare valoare. | Putere de calcul ridicată necesară pentru a genera probe ZK; nu sunt eficiente din punct de vedere al costurilor pentru aplicațiile cu debit redus. | -| | Timp de finalitate subiectivă mai lent (10-30 min pentru a genera o dovadă ZK) (dar mai rapid la finalitate completă, deoarece nu există întârziere în dispută). | - -### Folosește Validium {#use-validium} - -- [Starkware](https://starkware.co/) -- [Matter Labs zkPorter](https://matter-labs.io/) -- [Loopring](https://loopring.org/#/) - -## Sidechain-uri {#sidechains} - -Un sidechain este un blockchain separat care rulează în paralel cu rețeaua principală și funcționează independent. Are propriul algoritm de consens ([Proba autorității](https://wikipedia.org/wiki/Proof_of_authority), [Dovada mizei delegată](https://en.bitcoinwiki.org/wiki/DPoS), [Toleranță la erori Byzantine](https://decrypt.co/resources/byzantine-fault-tolerance-what-is-it-explained) și așa mai departe). Este conectat la lanțul principal printr-un pod bidirecțional. - -| Avantaje | Dezavantaje | -| ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | -| Tehnologie stabilită. | Mai puțin descentralizate. | -| Acceptă calculul general, compatibilitatea EVM. | Utilizează un mecanism de consens separat. Nu este asigurat de nivelul1 (deci punct de vedere tehnic nu este nivelul 2). | -| | Un minim de validatori sidechain pot comite fraudă. | - -### Folosește Sidechain-uri {#use-sidechains} - -- [Skale](https://skale.network/) -- [POA Network](https://www.poa.network/) - -## Soluții hibride {#hybrid-solutions} - -Combină cele mai bune părți ale mai multor tehnologii de nivel 2 și pot oferi compromisuri configurabile. - -### Folosește soluții Hybrid {#use-hybrid-solutions} - -- [Celer](https://www.celer.network/) - -## Referințe suplimentare {#further-reading} - -- [Validium And The Layer 2 Two-By-Two — Issue No. 99](https://www.buildblockchain.tech/newsletter/issues/no-99-validium-and-the-layer-2-two-by-two) -- [Evaluating Ethereum layer 2 Scaling Solutions: A Comparison Framework](https://blog.matter-labs.io/evaluating-ethereum-l2-scaling-solutions-a-comparison-framework-b6b2f410f955) -- [Adding Hybrid PoS-Rollup Sidechain to Celer’s Coherent Layer-2 Platform on Ethereum](https://medium.com/celer-network/adding-hybrid-pos-rollup-sidechain-to-celers-coherent-layer-2-platform-d1d3067fe593) -- [Zero-Knowledge Blockchain Scalability](https://ethworks.io/assets/download/zero-knowledge-blockchain-scaling-ethworks.pdf) - -**Canale de stare** - -- [Making Sense of Ethereum’s Layer 2 Scaling Solutions: State Channels, Plasma, and Truebit](https://medium.com/l4-media/making-sense-of-ethereums-layer-2-scaling-solutions-state-channels-plasma-and-truebit-22cb40dcc2f4) _– Josh Stark, 12 februarie 2018_ -- [State Channels - an explanation](https://www.jeffcoleman.ca/state-channels/) _5 noiembrie 2015 - Jeff Coleman_ -- [Basics of State Channels](https://education.district0x.io/general-topics/understanding-ethereum/basics-state-channels/) _District0x_ - -**Canale de plată** - -**Rollup-uri ZK** - -**Rollup-uri Optimistic** - -- [OVM Deep Dive](https://medium.com/ethereum-optimism/ovm-deep-dive-a300d1085f52) - -**Sidechain-uri** - -- [Scaling Ethereum Dapps through Sidechains](https://medium.com/loom-network/dappchains-scaling-ethereum-dapps-through-sidechains-f99e51fff447) _8 februarie 2018 - Georgios Konstantopoulos_ diff --git a/src/content/translations/ro/developers/docs/mev/index.md b/src/content/translations/ro/developers/docs/mev/index.md deleted file mode 100644 index 330155b177c..00000000000 --- a/src/content/translations/ro/developers/docs/mev/index.md +++ /dev/null @@ -1,129 +0,0 @@ ---- -title: Maximal extractable value (MEV) -description: An introduction to maximal extractable value (MEV) -lang: ro ---- - -Maximal extractable value (MEV) refers to the maximum value that can be extracted from block production in excess of the standard block reward and gas fees by including, excluding, and changing the order of transactions in a block. - -### Miner extractable value - -This concept was first applied under the context of [proof-of-work](/developers/docs/consensus-mechanisms/pow/), and was initially referred to as "miner extractable value." Aceasta deoarece în dovada-muncii (PoW), miner-ii controlează includerea, excluderea și ordonarea tranzacțiilor. However, after the transition to proof-of-stake via [The Merge](/updates/merge) validators will be responsible for these roles, and mining will no longer be applicable. The value extraction methods here will still persist after this transition, and thus a name change was needed. To keep the same acronym for continuity while maintaining the same fundamental meaning, "maximal extractable value" is now used as a more inclusive replacement. - -## Condiții prealabile {#prerequisites} - -Aveţi grijă să vă familiarizaţi cu [tranzacțiile](/developers/docs/transactions/), [blocurile](/developers/docs/blocks/), [gazul](/developers/docs/gas/) și [minarea](/developers/docs/consensus-mechanisms/pow/mining/). Familiarizarea cu [aplicațiile dapp](/dapps/) și [DeFi](/defi/) este de asemenea utilă. - -## Extragerea MEV {#mev-extraction} - -In theory MEV accrues entirely to miners because miners are the only party that can guarantee the execution of a profitable MEV opportunity (at least on the current proof-of-work chain — this will change after [The Merge](/roadmap/merge/)). Cu toate acestea, în practică, o mare parte din MEV este extrasă de participanții independenți din rețea, denumiți „căutători” Căutătorii rulează algoritmi complecși pe datele blockchain pentru a detecta oportunitățile MEV profitabile și au roboți care să transmită automat aceste tranzacții profitabile în rețea. - -Miner-ii primesc oricum o parte din întreaga sumă MEV, deoarece căutătorii sunt dispuși să plătească taxe mari pe gaz (care ajung la miner) în schimbul unei probabilități mai mari de includere a tranzacțiilor lor profitabile într-un bloc. Dacă presupunem că acești căutători sunt raționali din punct de vedere economic, taxa pe gaz pe care un căutător este dispus să o plătească va fi o sumă de până la 100% din MEV-ul căutătorului (deoarece dacă taxa pe gaz ar fi mai mare, căutătorul ar pierde bani). - -Cu aceasta, pentru unele oportunități MEV foarte competitive, cum ar fi arbitrajul [DEX](#mev-examples-dex-arbitrage), căutătorii ar putea fi nevoiți să plătească 90% sau chiar mai mult din venitul lor MEV total pentru taxele pe gaz către miner, deoarece foarte mulți oameni doresc să efectueze aceeași tranzacție de arbitraj profitabilă. Acest lucru se datorează faptului că singura modalitate de a garanta că tranzacția lor de arbitraj se execută este dacă trimit tranzacția cu cel mai mare preț al gazului. - -### Gas golfing {#mev-extraction-gas-golfing} - -Această dinamică a făcut ca un bun jucător de „golf pe gaz” — care programează tranzacțiile astfel încât acestea să utilizeze cantitatea de gaz cea mai mică — să aibă astfel un avantaj competitiv, deoarece permite căutătorilor să stabilească un preț mai mare al gazului, menținând în același timp constante taxele totale pe gaz (deoarece taxele pe gaz = prețul gazului \* gazul utilizat). - -Câteva tehnici binecunoscute de „golf pe gaz” includ: utilizarea de adrese care încep cu un șir lung de zerouri (de exemplu, [0x0000000000C521824EaFf97Eac7B73B084ef9306](https://etherscan.io/address/0x0000000000c521824eaff97eac7b73b084ef9306)), deoarece acestea necesită mai puțin spațiu (și, prin urmare, gaz) pentru a fi stocate; și lăsarea unor solduri mici de tokenuri [ERC-20](/developers/docs/standards/tokens/erc-20/) în contracte, deoarece costă mai mult gaz pentru a inițializa un slot de stocare (cazul în care soldul este 0) decât pentru a actualiza un slot de stocare. Găsirea mai multor tehnici de reducere a consumului de gaz este un domeniu activ de studiu în rândul cercetătorilor. - -### Generalized frontrunners {#mev-extraction-generalized-frontrunners} - -În loc să programeze algoritmi complecși pentru a detecta oportunitățile MEV profitabile, unii căutători rulează frontrunneri generalizați. Frontrunnerii generalizați sunt roboți care supraveghează mempool pentru a detecta tranzacțiile profitabile. Frontrunner-ul va copia codul tranzacției potențial profitabile, va înlocui adresele cu adresa frontrunner-ului și va rula tranzacția la nivel local pentru a verifica dacă tranzacția modificată aduce un profit la adresa frontrunner-ului. În cazul în care tranzacția este într-adevăr profitabilă, frontrunner-ul va trimite tranzacția modificată cu adresa înlocuită și cu un preț mai mare al gazului, „devansând” tranzacția originală și obținând MEV-ul căutătorului inițial. - -### Flashbots {#mev-extraction-flashbots} - -Flashbots este un proiect independent care extinde clientul go-ethereum cu un serviciu care permite căutătorilor să trimită tranzacțiile MEV către miner-i fără a le dezvălui în mempool-ul public. Acest lucru previne ca tranzacțiile să nu fie rulate în față de către frontrunner-i generalizaţi. - -În momentul scrierii acestui articol, o parte semnificativă a tranzacțiilor MEV este direcționată prin Flashbots, ceea ce înseamnă că frontrunner-ii generalizați nu mai sunt la fel de eficienți ca înainte. - -## Exemple de MEV {#mev-examples} - -MEV apare pe blockchain în câteva moduri. - -### DEX arbitrage {#mev-examples-dex-arbitrage} - -[Arbitrajul de schimb descentralizat](/glossary/#dex) (DEX) este cea mai simplă și cea mai cunoscută oportunitate MEV. Ca urmare, este și cea mai competitivă. - -Funcționează astfel: dacă două DEX-uri oferă un token la două prețuri diferite, cineva poate cumpăra tokenul de pe DEX-ul cu prețul cel mai mic și îl poate vinde pe DEX-ul cu prețul cel mai mare într-o singură tranzacție atomică. Datorită mecanicii blockchain, acesta este un arbitraj adevărat, fără riscuri. - -[Iată un exemplu](https://etherscan.io/tx/0x5e1657ef0e9be9bc72efefe59a2528d0d730d478cfc9e6cdd09af9f997bb3ef4) de tranzacție de arbitraj profitabilă în care un căutător a transformat 1.000 ETH în 1.045 ETH profitând de prețurile diferite ale perechii ETH/DAI pe Uniswap față de Sushiswap. - -### Liquidations {#mev-examples-liquidations} - -Lichidările protocolului de împrumut prezintă o altă oportunitate MEV binecunoscută. - -Protocoalele de împrumut precum Maker și Aave funcționează prin faptul că le cer utilizatorilor să depună un fel de garanție (de exemplu, ETH). Utilizatorii pot împrumuta apoi diferite active și tokenuri de la alții, în funcție de ceea ce au nevoie (de exemplu, pot împrumuta MKR dacă doresc să voteze o propunere de guvernanță MakerDAO sau SUSHI dacă doresc să câștige o parte din taxele de tranzacționare pe Sushiswap) până la o anumită sumă din garanția depusă – de exemplu, 30% (procentul exact al puterii de împrumut este determinat de protocol). Utilizatorii de la care împrumută celelalte tokenuri funcționează ca împrumutători în acest caz. - -Pe măsură ce valoarea garanției unui împrumutat fluctuează, la fel și puterea de împrumut a acestuia. Dacă, din cauza fluctuațiilor pieței, valoarea activelor împrumutate depășește, să zicem, 30% din valoarea garanției lor (din nou, procentul exact este determinat de protocol); protocolul permite de obicei oricui să lichideze garanția, plătind instantaneu creditorii (acest lucru este similar cu modul în care funcționează [apelurile în marjă (margin call)](https://www.investopedia.com/terms/m/margincall.asp) în finanțele tradiționale). În cazul în care este lichidat, împrumutatul trebuie să plătească de obicei o taxă de lichidare considerabilă, din care o parte merge la lichidator — și aici intervine oportunitatea MEV. - -Căutătorii concurează pentru a analiza datele blockchain-ului cât mai repede posibil pentru a determina ce împrumutați pot fi lichidați și pentru a fi primii care trimit o tranzacție de lichidare și colectează taxa de lichidare pentru ei înșiși. - -### Sandwich trading {#mev-examples-sandwich-trading} - -Tranzacționarea Sandwich este o altă metodă comună de extragere a MEV. - -Pentru a face Sandwich, un căutător va căuta în mempool tranzacții DEX mari. De exemplu, să presupunem că cineva vrea să cumpere 10.000 UNI cu DAI pe Uniswap. A trade of this magnitude will have a meaningful effect on the UNI/DAI pair, potentially significantly raising the price of UNI relative to DAI. - -A searcher can calculate the approximate price effect of this large trade on the UNI/DAI pair and execute an optimal buy order immediately _before_ the large trade, buying UNI cheaply, then execute a sell order immediately _after_ the large trade, selling it for the higher price caused by the large order. - -Cu toate acestea, Sandwiching-ul este mai riscant, deoarece nu este atomic (spre deosebire de arbitrajul DEX, așa cum a fost descris mai sus) și este predispus la un [atac Salmonella](https://github.com/Defi-Cartel/salmonella). - -### NFT MEV {#mev-examples-nfts} - -MEV în spațiul NFT este un fenomen emergent și nu este neapărat profitabil. - -Cu toate acestea, deoarece tranzacțiile NFT au loc pe același blockchain partajat de toate celelalte tranzacții Ethereum, căutătorii pot folosi tehnici similare cu cele utilizate în oportunitățile MEV tradiționale și pe piața NFT-urilor. - -De exemplu, dacă există o scădere populară a NFT-ului și un căutător dorește un anumit NFT sau un set de NFT-uri, acesta poate programa o tranzacție astfel încât să fie primul la rând pentru a cumpăra NFT-ul sau poate cumpăra întregul set de NFT-uri într-o singură tranzacție. Sau, dacă un NFT este listat [din greșeală la un preț scăzut](https://www.theblockcrypto.com/post/113546/mistake-sees-69000-cryptopunk-sold-for-less-than-a-cent), un căutător poate să devanseze alți cumpărători și să îl achiziționeze la preț redus. - -Un exemplu proeminent de NFT MEV a avut loc atunci când un căutător a cheltuit 7 milioane USD pentru a [cumpăra](https://etherscan.io/address/0x650dCdEB6ecF05aE3CAF30A70966E2F395d5E9E5) fiecare Cryptopunk la prețul minim. Un cercetător blockchain [a explicat pe Twitter](https://twitter.com/IvanBogatyy/status/1422232184493121538) cum cumpărătorul a lucrat cu un furnizor MEV pentru a-și păstra secretă achiziția. - -### The long tail {#mev-examples-long-tail} - -Arbitrajul DEX, lichidările și tranzacțiile Sandwich sunt oportunități MEV foarte bine cunoscute și este puțin probabil să fie profitabile pentru noii căutători. Cu toate acestea, există o coadă lungă de oportunități MEV mai puțin cunoscute (NFT-ul MEV este, fără îndoială, o astfel de oportunitate). - -Căutătorii care sunt la început de drum ar putea avea mai mult succes căutând MEV în această coadă mai lungă. [Panoul cu locuri de muncă MEV](https://github.com/flashbots/mev-job-board) al Flashbot enumeră câteva oportunități emergente. - -## Consecințele MEV {#effects-of-mev} - -MEV nu face numai rău — există atât consecințe pozitive, cât și negative ale MEV pe Ethereum. - -### The good {#effects-of-mev-the-good} - -Multe proiecte DeFi se bazează pe actori raționali din punct de vedere economic pentru a asigura utilitatea și stabilitatea protocoalelor lor. De exemplu, arbitrajul DEX garantează că utilizatorii obțin cele mai bune prețuri, cele mai corecte, pentru tokenurile lor, iar protocoalele de creditare se bazează pe lichidări rapide atunci când debitorii scad sub ratele de colateralizare pentru a se asigura că sunt rambursaţi creditorii. - -Fără căutători raționali care caută și repară ineficiențele economice și care profită de stimulentele economice ale protocoalelor, protocoalele DeFi și aplicațiile dapp în general ar putea să nu fie la fel de solide ca în prezent. - -### Aspectele rele {#effects-of-mev-the-bad} - -La nivelul aplicației, unele forme de MEV, cum ar fi tranzacționarea Sandwich, au ca rezultat o experiență fără echivoc mai proastă pentru utilizatori. Utilizatorii care participă la tranzacții Sandwich se confruntă cu o creștere a derapajelor și o execuție mai slabă a tranzacțiilor. - -La nivel de rețea, frontrunner-ii generalizați și licitațiile de preț al gazului în care aceștia se angajează adesea (când doi sau mai mulți frontrunner-i concurează pentru ca tranzacția lor să fie inclusă în blocul următor prin creșterea progresivă a prețului gazului pentru propriile tranzacții) conduc la congestia rețelei și prețuri ridicate ale gazului pentru toți ceilalți care încearcă să efectueze tranzacții obișnuite. - -Dincolo de ceea ce se întâmplă _în interiorul_ blocurilor, MEV poate avea efecte dăunătoare _între_ blocuri. Dacă MEV-ul disponibil într-un bloc depășește în mod semnificativ recompensa standard a blocului, miner-ii pot fi stimulați să refacă blocurile și să captureze MEV-ul pentru ei înșiși, provocând reorganizarea blockchain-ului și instabilitatea consensului. - -Această posibilitate de reorganizare a blockchain-ului a fost [explorată anterior pe blockchain-ul Bitcoin](https://dl.acm.org/doi/10.1145/2976749.2978408). Pe măsură ce recompensa blocului Bitcoin se înjumătățește, iar comisioanele de tranzacție reprezintă o parte din ce în ce mai mare din recompensa blocului, apar situații în care devine rațional din punct de vedere economic ca miner-ii să renunțe la recompensa blocului următor și să remineze în schimb blocurile anterioare cu taxe mai mari. Odată cu creșterea MEV-ului, același tip de situație ar putea apărea în Ethereum, amenințând integritatea blockchain-ului. - -## Starea MEV {#state-of-mev} - -Extracția de MEV a explodat la începutul anului 2021, ceea ce a dus la prețuri extrem de ridicate ale gazului în primele câteva luni ale anului. Apariția releului MEV de la Flashbots a redus eficiența frontrunner-ilor generalizați și a scos licitațiile pentru prețul gazului în afara lanțului, reducând prețurile la gaz pentru utilizatorii obișnuiți. - -În timp ce mulți căutători încă fac bani buni din MEV, pe măsură ce oportunitățile devin mai cunoscute și tot mai mulți căutători concurează pentru aceeași oportunitate, miner-ii vor capta din ce în ce mai multe venituri totale din MEV (deoarece același tip de licitații de gaz descrise inițial mai sus au loc și în Flashbots, deși în mod privat, iar miner-ii vor capta veniturile rezultate din gaz). MEV nu este nici unic pentru Ethereum și, pe măsură ce oportunitățile devin mai competitive pe Ethereum, căutătorii se mută pe blockchain-uri alternative, cum ar fi Binance Smart Chain, unde există oportunități MEV similare cu cele de pe Ethereum, dar cu mai puțină concurență. - -Pe măsură ce DeFi se dezvoltă și cresc în popularitate, MEV ar putea în curând să depășească în mod semnificativ recompensa de bază a blocului Ethereum. Odată cu aceasta, apare o posibilitate din ce în ce mai mare de reminare egoistă a blocurilor și de instabilitate a consensului. Unii consideră că aceasta este o amenințare existențială pentru Ethereum, iar inhibarea mineritului egoist este un domeniu activ de cercetare în teoria protocolului Ethereum. O soluție explorată în prezent este [uniformizarea recompenselor MEV](https://ethresear.ch/t/committee-driven-mev-smoothing/10408). - -## Resurse conexe {#related-resources} - -- [Flashbots GitHub](https://github.com/flashbots/pm) -- [MEV-Explore](https://explore.flashbots.net/) _Tablou de bord și explorator de tranzacții live pentru tranzacțiile MEV_ - -## Referințe suplimentare {#further-reading} - -- [Ce este Valoarea extractibilă prin minare (MEV)?](https://blog.chain.link/what-is-miner-extractable-value-mev/) -- [MEV și cu mine](https://research.paradigm.xyz/MEV) -- [Ethereum este o pădure întunecată](https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest/) -- [Evadarea din pădurea întunecată](https://samczsun.com/escaping-the-dark-forest/) -- [Flashbots: Frontrunning-ul crizei MEV](https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752) -- [@bertcmiller's MEV Threads](https://twitter.com/bertcmiller/status/1402665992422047747) diff --git a/src/content/translations/ro/developers/docs/nodes-and-clients/index.md b/src/content/translations/ro/developers/docs/nodes-and-clients/index.md deleted file mode 100644 index c9036298917..00000000000 --- a/src/content/translations/ro/developers/docs/nodes-and-clients/index.md +++ /dev/null @@ -1,320 +0,0 @@ ---- -title: Noduri și clienți -description: O prezentare generală a nodurilor Ethereum și a software-ului client plus cum să configurați un nod și de ce ar trebui să faceți acest lucru. -lang: ro -sidebarDepth: 2 ---- - -Ethereum este o rețea distribuită de computere pe care rulează un software (cunoscute sub numele de noduri) care poate verifica blocurile și datele tranzacțiilor. Pentru a „rula” un nod aveți nevoie pe computer de o aplicație cunoscută sub numele de client. - -## Condiții prealabile {#prerequisites} - -Ar trebui să înțelegeți conceptul de rețea peer-to-peer și [principiile de bază ale EVM](/developers/docs/evm/) înainte de a vă implica mai îndeaproape și de a rula propria instanță a unui client Ethereum. Aruncați o privire la [introducerea despre Ethereum](/developers/docs/intro-to-ethereum/). - -If you're new to the topic of nodes, we recommend first checking out our user-friendly introduction on [running an Ethereum node](/run-a-node). - -## Ce sunt nodurile și clienții? {#what-are-nodes-and-clients} - -„Nodul” se referă la un software cunoscut sub numele de client. Un client este o implementare a lui Ethereum care verifică toate tranzacțiile din fiecare bloc, păstrând rețeaua securizată şi datele corecte. - -Puteți vizualiza în timp real rețeaua Ethereum uitându-vă pe această [hartă a nodurilor](https://etherscan.io/nodetracker). - -Există numeroși [clienți Ethereum](/developers/docs/nodes-and-clients/#execution-clients), într-o varietate de limbaje de programare, cum ar fi Go, Rust, JavaScript, Typescript, Python, C# .NET, Nim și Java. Punctul comun al acestor implementări este că toate respectă o specificație formală (inițial denumită [Cartea galbenă Ethereum](https://ethereum.github.io/yellowpaper/paper.pdf)). This specification dictates how the Ethereum network and blockchain functions. - -![Execution client](./client-diagram.png) Diagramă simplificată a funcţionalităţilor clientului Ethereum. - -## Tipuri de noduri {#node-types} - -If you want to [run your own node](/developers/docs/nodes-and-clients/run-a-node/), you should understand that there are different types of node that consume data differently. In fact, clients can run 3 different types of node - light, full and archive. Există de asemenea opţiunea de a aplica diverse strategii de sincronizare, care scurtează timpul de sincronizare. Sincronizarea se referă la viteza cu care poate obține cele mai actualizate informații despre starea lui Ethereum. - -### Nod complet {#full-node} - -- Stochează date complete despre blockchain. -- Participă la validarea blocurilor, verifică toate blocurile și stările. -- Se pot obţine toate stările dintr-un nod complet. -- Deservește rețeaua și oferă date la cerere. - -### Nod ușor {#light-node} - -- Stochează lanțul de anteturi și solicită tot restul. -- Poate verifica validitatea datelor în raport cu rădăcinile de stare din anteturile blocului. -- Este util pentru dispozitivele de capacitate redusă, cum ar fi dispozitivele încorporate sau telefoanele mobile, care nu își permit să stocheze gigaocteţi de date blockchain. - -### Nod de arhivă {#archive-node} - -- Stochează tot ce este păstrat în nodul complet și construiește o arhivă de stări istorice. Este necesar atunci când doriți să interogați ceva precum soldul unui cont la blocul #4.000.000 sau [să vă testați propriul set de tranzacții fără a le mina folosind OpenEthereum](https://openethereum.github.io/JSONRPC-trace-module#trace_callmany), în mod simplu şi fiabil. -- Aceste date reprezintă unități de teraocteţi, ceea ce face ca nodurile de arhivă să fie mai puțin atractive pentru utilizatorii obișnuiți, dar pot fi utile pentru servicii precum exploratorii de blocuri, furnizorii de portofele și analiza lanțului. - -Sincronizarea clienților în orice alt mod decât arhiva va duce la pierderea de date din blockchain. This means, there is no archive of all historical states but the full node is able to build them on demand. - -## De ce trebuie să rulez un nod Ethereum? {#why-should-i-run-an-ethereum-node} - -Rularea unui nod vă permite să utilizați Ethereum fără necesitatea acordării încrederii și în mod privat, susţinând în acelaşi timp ecosistemul. - -### Avantajele pentru dvs. {#benefits-to-you} - -Dacă rulaţi propriul nod, aceasta vă permite să utilizaţi Ethereum într-un mod cu adevărat privat, auto-suficient și fără a fi necesară acordarea încrederii. Nu aveţi nevoie să vă încredeţi e în rețea, deoarece puteţi verifica singur datele cu clientul. „Nu acordaţi încredere, verificaţi” este o mantra populară pe blockchain. - -- Nodul dvs. verifică toate tranzacțiile și blochează conform regulilor e de consens. Aceasta înseamnă că nu trebuie să vă bazaţi pe alte noduri din rețea, şi nici să le acordaţi încredere deplină. -- Nu va trebui să vă dezvăluiţi adresele și soldurile către noduri aleatorii. Totul poate fi verificat cu propriul dvs. client. -- Aplicația dvs. dapp poate fi mai securizată și mai privată dacă vă folosiţi propriul nod. [MetaMask](https://metamask.io), [MyEtherWallet](https://myetherwallet.com) and some other wallets can be easily pointed to your own local node. -- Puteți să vă programați propriile endpoint-uri RPC personalizate. -- Vă puteți conecta la nodul dvs. folosind **Comunicațiile între procese (IPC)** sau puteți rescrie nodul pentru a vă încărca programul ca plugin. Aceasta vă garantează o latență scăzută, necesară pentru a vă înlocui tranzacțiile cât mai repede posibil (adică frontrunning). - -![Cum puteți accesa Ethereum prin intermediul aplicației și al nodurilor](./nodes.png) - -### Avantajele rețelei {#network-benefits} - -Este important să existe o diversitate a seturilor de noduri pentru sănătatea, securitatea și rezilienţa operațională a lui Ethereum. - -- Acestea oferă acces la datele blockchain-ului pentru clienții ușori care depind de acestea. În perioadele de vârf ale utilizării trebuie să existe suficiente noduri complete pentru a ajuta la sincronizarea nodurilor ușoare. Nodurile ușoare nu stochează întregul blockchain, ci verifică datele prin [rădăcinile stării din anteturile blocurilor](/developers/docs/blocks/#block-anatomy). Ele pot solicita şi alte informații de la blocuri dacă le sunt necesare. -- Nodurile complete aplică regulile de consens pentru dovada-muncii, deci nu pot fi păcălite să accepte blocuri care nu urmează aceste reguli. Acest lucru oferă o securitate suplimentară în rețea, deoarece dacă toate nodurile ar fi noduri ușoare, care nu fac verificarea completă, miner-ii ar putea ataca rețeaua, creând, de exemplu, blocuri cu recompense mai mari. - -Dacă rulați un nod complet, întreaga rețea Ethereum beneficiază de acesta. - -## Rularea propriului dvs. nod {#running-your-own-node} - -Sunteți interesat să vă rulați propriul client Ethereum? - -For a beginner-friendly introduction visit our [run a node](/run-a-node) page to learn more. - -If you're more of a technical user, learn how to [spin up your own node](/developers/docs/nodes-and-clients/run-a-node/) with the command line! - -### Proiecte {#projects} - -[**Selectează un client și urmează instrucțiunile acestuia**](#clients) - -**ethnode -** **_Run an Ethereum node (Geth or OpenEthereum) for local development._** - -- [GitHub](https://github.com/vrde/ethnode) - -**DAppNode -** **_O interfață grafică a sistemului de operare pentru rularea nodurilor Web3, inclusiv Ethereum și lanțul beacon, pe o mașină dedicată._** - -- [dappnode.io](https://dappnode.io) - -### Resurse {#resources} - -- [Executarea nodurilor complete Ethereum: Ghid integral](https://medium.com/coinmonks/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _7 noiembrie 2019 - Justin Leroux_ -- [Listă de ponturi pentru configurarea nodurilor](https://dev.to/5chdn/ethereum-node-configuration-modes-cheat-sheet-25l8) _5 ianuarie 2019 - Afri Schoeden_ -- [Cum se instalează & Rularea unui nod Geth](https://www.quiknode.io/guides/infrastructure/how-to-install-and-run-a-geth-node) _4 octombrie 2020 - Sahil Sen_ -- [Cum se instalează & Rularea unui nod OpenEthereum (fka. Parity) Node](https://www.quiknode.io/guides/infrastructure/how-to-run-a-openethereum-ex-parity-client-node) _22 septembrie 2020 - Sahil Sen_ - -## Alternative {#alternatives} - -Rularea propriului nod poate fi dificilă și nu este nevoie să rulezi întotdeauna propria instanță. În acest caz, puteți utiliza un furnizor de API de la un terţ, cum ar fi [Infura](https://infura.io), [Alchemy](https://alchemyapi.io) sau [QuikNode](https://www.quiknode.io). Alternativ, [ArchiveNode](https://archivenode.io/) este un nod de tip „Archive” finanțat de comunitate, care se speră că va aduce date de arhivă pe blockchain-ul Ethereum pentru dezvoltatorii independenți, care altfel nu și-ar putea permite acest lucru. For an overview of using these services, check out [nodes as a service](/developers/docs/nodes-and-clients/nodes-as-a-service/). - -Dacă cineva rulează un nod Ethereum cu un API public în comunitatea dvs., vă puteți direcționa portofelele ușoare (cum ar fi MetaMask) către un nod al comunității [printr-un RPC personalizat](https://metamask.zendesk.com/hc/en-us/articles/360015290012-Using-a-Local-Node) și puteți obține mai multă confidențialitate decât cu un terţ de încredere aleatoriu. - -Pe de altă parte, dacă rulezi un client, îl poți partaja cu prietenii tăi care ar putea avea nevoie de el. - -## Clienți de execuție (anterior „clienți Eth1”) {#execution-clients} - -The Ethereum community maintains multiple open-source execution clients (previously known as 'Eth1 clients', or just 'Ethereum clients'), developed by different teams using different programming languages. Acest lucru face ca rețeaua să fie mai puternică și de mai mare diversitate. Obiectivul optim este de a realiza diversitatea fără ca vreun client să domine, pentru a reduce orice punct unic de eșec. - -Acest tabel prezintă o sinteză a diferiților clienți. Toţi aceştia trec nişte [teste pentru clienţi](https://github.com/ethereum/tests) și sunt menținuţi în mod activ pentru a rămâne la zi cu actualizările rețelei. - -| Client | Limbaj | Sisteme de operare | Rețele | Strategii de sincronizare | Starea curățării | -| ------------------------------------------------------------------------- | -------- | --------------------- | ------------------------------------------ | ------------------------- | ---------------- | -| [Geth](https://geth.ethereum.org/) | Go | Linux, Windows, macOS | Mainnet, Görli, Rinkeby, Ropsten | Snap, Full | Arhivă, Curățată | -| [Nethermind](http://nethermind.io/) | C#, .NET | Linux, Windows, macOS | Mainnet, Görli, Ropsten, Rinkeby și altele | Fast, Beam, Archive | Arhivă, Curățată | -| [Besu](https://besu.hyperledger.org/en/stable/) | Java | Linux, Windows, macOS | Mainnet, Rinkeby, Ropsten, Görli, and more | Rapidă, Completă | Arhivă, Curățată | -| [Erigon](https://github.com/ledgerwatch/erigon) | Începe | Linux, Windows, macOS | Rețea principală, Görli, Rinkeby, Ropsten | Full | Arhivă, Curățată | -| [OpenEthereum (Deprecated)](https://github.com/openethereum/openethereum) | Rust | Linux, Windows, macOS | Mainnet, Kovan, Ropsten și altele | Warp, Completă | Arhivă, Curățată | - -**Rețineți că OpenEthereum [a fost dezaprobat](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) și nu mai este întreținut.** Folosiți-l cu precauție și este preferabil să treceți la o altă implementare de client. - -Pentru a afla mai multe informații despre rețelele acceptate, citiți [rețelele Ethereum](/developers/docs/networks/). - -### Avantajele diferitelor implementări {#advantages-of-different-implementations} - -Fiecare client are cazuri de utilizare și avantaje unice, deci ar trebui să alegi unul pe baza propriilor preferințe. Diversitatea permite implementărilor să se concentreze pe diferite funcţionalităţi și categorii de utilizatori. Poate că doriți să alegeți un client în funcție de funcţionalităţi, acceptări, limbajul de programare sau licențe. - -#### Go Ethereum {#geth} - -Go Ethereum (pe scurt, Geth) este una dintre implementările originale ale protocolului Ethereum. Este actualmente cel mai răspândit client, cu cea mai mare bază de utilizatori și o varietate de instrumente pentru utilizatori și dezvoltatori. Este scris în Go, complet open source și licențiat sub GNU LGPL v3. - -#### OpenEthereum {#openethereum} - -OpenEthereum este un client Ethereum rapid, bogat în funcții şi avansat, bazat pe CLI. Este construit pentru a oferi infrastructura esențială pentru servicii rapide și fiabile, care necesită sincronizare rapidă și timp maxim de funcționare. Obiectivul OpenEthereum este de a fi cel mai rapid, mai ușor și mai securizat client Ethereum. Oferă o bază de cod modulară curată pentru: - -- personalizare ușoară. -- integrarea ușoară în servicii sau produse. -- consum minim de memorie și de stocare. - -OpenEthereum este dezvoltat folosind limbajul de programare Rust de ultimă oră și licențiat sub GPLv3. - -**Rețineți că OpenEthereum [a fost dezaprobat](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) și nu mai este întreținut.** Folosiți-l cu precauție și este preferabil să treceți la o altă implementare de client. - -#### Nethermind {#nethermind} - -Nethermind este o implementare Ethereum creată cu stiva de tehnologie C# .NET, care rulează pe toate platformele majore, inclusiv ARM. Acesta oferă o mare performanță cu: - -- o mașină virtuală optimizată -- acces la stare -- rețele și funcţionalităţi bogate, cum ar fi tablouri de bord Prometheus/Grafana, acceptarea logării seq enterprise, urmărire JSON RPC și plugin-uri analitice. - -Nethermind are o [documentație detaliată](https://docs.nethermind.io), asistenţă foarte bună pentru dezvoltatori, o comunitate online și asistenţă non-stop pentru utilizatorii premium. - -#### Besu {#besu} - -Hyperledger Besu este un client Ethereum de nivel de întreprindere pentru rețele publice și autorizate. Rulează toate funcţionalităţile Mainnet-ului Ethereum, de la urmărire la GraphQL, are o monitorizare extinsă și este sprijinită de ConsenSys, atât în canalele deschise ale comunității, cât și prin acordurile de servicii comerciale pentru întreprinderi. Este scris în Java și are licență Apache 2.0. - -#### Erigon {#erigon} - -Erigon, cunoscut anterior sub denumirea de Erigon, este un fork Go Ethereum ce vizează creşterea vitezei şi a eficienţei spaţiului pe disc. Erigon este o implementare complet reproiectată a lui Ethereum, actualmente scrisă în Go, dar care urmează să fie implementată și în alte limbaje. Scopul Erigon este de a oferi o implementare mai rapidă, mai modulară și mai optimizată a lui Ethereum. It can perform a full archive node sync using less than 2TB of disk space, in under 3 days - -### Moduri de sincronizare {#sync-modes} - -To follow and verify current data in the network, the Ethereum client needs to sync with the latest network state. Aceasta se realizează prin descărcarea datelor de la omologi și verificarea integrității lor prin criptografie, precum și prin construirea unei baze de date blockchain locale. - -Synchronization modes represent different approaches to this process with various trade-offs. Clienții diferă şi prin implementarea algoritmilor de sincronizare. Consultați întotdeauna documentația oficială a clientului pe care l-ați ales pentru a afla detalii privind implementarea. - -#### Prezentare generală a strategiilor {#overview-of-strategies} - -Prezentare generală a metodelor de sincronizare utilizate în cazul clienților pregătiți pentru Mainnet: - -##### Sincronizare completă - -Sincronizarea completă descarcă toate blocurile (inclusiv anteturile, tranzacțiile și chitanțele) și generează incremental starea blockchain-ului, executând fiecare bloc de la geneză. - -- Minimizează încrederea și oferă cea mai mare securitate prin verificarea fiecărei tranzacții. -- Odată cu creșterea numărului de tranzacții, procesarea tuturor tranzacțiilor poate dura câteva zile până la câteva săptămâni. - -##### Sincronizare rapidă - -Fast sync downloads all blocks (including headers, transactions, and receipts), verifies all headers, downloads the state and verifies it against the headers. - -- Se bazează pe securitatea mecanismului de consens. -- Sincronizarea durează doar câteva ore. - -##### Sincronizare ușoară - -Modul client ușor descarcă toate anteturile de bloc, datele de bloc și le verifică pe unele în mod aleatoriu. Only syncs tip of the chain from the trusted checkpoint. - -- Obține doar cea mai recentă stare, bazându-se în același timp pe încrederea în dezvoltatori și pe mecanismul de consens. -- Clientul este pregătit pentru utilizare cu starea curentă a rețelei în câteva minute. - -[More on Light clients](https://www.parity.io/blog/what-is-a-light-client/) - -##### Sincronizare instantanee - -Implemented by Geth. Prin utilizarea instantaneelor dinamice servite de omologi, se recuperează toate datele de cont și de stocare fără să se descarce noduri trie intermediare și apoi se reconstruiește Merkle trie la nivel local. - -- Este cea mai rapidă strategie de sincronizare dezvoltată de Geth, actualmente opţiunea sa implicită -- Economisește mult din spațiul de utilizare a discului și din lățimea de bandă a rețelei, fără a sacrifica securitatea. - -[More on Snap](https://github.com/ethereum/devp2p/blob/master/caps/snap.md) - -##### Sincronizare Warp - -Implementată de OpenEthereum. Nodes regularly generate a consensus-critical state snapshot and any peer can fetch these snapshots over the network, enabling a fast sync from this point. - -- Este modul de sincronizare implicit și cel mai rapid din OpenEthereum, care se bazează pe instantanee statice servite de omologi. -- Este o strategie similară cu sincronizarea instantanee „snap sync”, dar fără anumite beneficii de securitate. - -[More on Warp](https://openethereum.github.io/Beginner-Introduction#warping---no-warp) - -##### Sincronizare Beam - -Implementată de Nethermind și Trinity. Works like fast sync but also downloads the data needed to execute latest blocks, which allows you to query the chain within the first few minutes from starting. - -- Sincronizează mai întâi starea și vă permite să interogați RPC în câteva minute. -- Sincronizarea în fundal „background sync” este încetinită deoarece este încă în curs de dezvoltare și nu este complet fiabilă, iar răspunsurile RPC pot eșua. - -[More on Beam](https://medium.com/@jason.carver/intro-to-beam-sync-a0fd168be14a) - -#### Configurare în client {#client-setup} - -Clienții vă oferă opțiuni de configurare variate care să se conformeze necesităţilor dvs. Alegeți-o pe cea care vă convine cel mai mult, în funcție de nivelul de securitate, de datele disponibile și de costuri. În afară de algoritmul de sincronizare, puteți configura şi eliminarea diverselor tipuri de date vechi. Pruning-ul (curățarea) permite ștergerea datelor ieşite din uz, de exemplu, eliminarea nodurilor trie de stare care sunt inaccesibile din blocurile recente. - -Verificați cu atenţie documentația sau pagina de ajutor a clientului pentru a afla care este modul de sincronizare implicit. Vă puteți defini tipul preferat de sincronizare atunci când vă configurați în modul următor: - -**Setting up light sync in [GETH](https://geth.ethereum.org/) or [ERIGON](https://github.com/ledgerwatch/erigon)** - -`geth --syncmode "light"` - -For further details, check out the tutorial on [running Geth light node](/developers/tutorials/run-light-node-geth/). - -**Setting up full sync with archive in [Besu](https://besu.hyperledger.org/)** - -`besu --sync-mode=FULL` - -Ca orice altă configurație, aceasta poate fi definită cu ajutorul steguleţului de pornire sau în fișierul de configurare. Un alt exemplu este [Nethermind](https://docs.nethermind.io/nethermind/), care vă solicită să alegeți o configurație la prima inițializare și creează un fișier de configurare. - -## Clienți de consens (anterior clienți „Eth2”) {#consensus-clients} - -There are multiple consensus clients (previously known as 'Eth2' clients) to support the [consensus upgrades](/roadmap/beacon-chain/). They are running the Beacon Chain and will provide proof-of-stake consensus mechanism to execution clients after [The Merge](/roadmap/merge/). - -| Client | Limbaj | Sisteme de operare | Rețele | -| ----------------------------------------------------------- | ---------- | --------------------- | -------------------------------------- | -| [Teku](https://pegasys.tech/teku) | Java | Linux, Windows, macOS | Lanţul Beacon, Goerli | -| [Nimbus](https://nimbus.team/) | Nim | Linux, Windows, macOS | Lanţul Beacon, Goerli | -| [Lighthouse](https://lighthouse-book.sigmaprime.io/) | Rust | Linux, Windows, macOS | Lanţul Beacon, Goerli, Pyrmont | -| [Lodestar](https://lodestar.chainsafe.io/) | TypeScript | Linux, Windows, macOS | Lanţul Beacon, Goerli | -| [Prysm](https://docs.prylabs.network/docs/getting-started/) | Go | Linux, Windows, macOS | Lanţul Beacon, Gnosis, Goerli, Pyrmont | - -## Hardware {#hardware} - -Cerințele hardware diferă în funcție de client, dar în general nu sunt atât de mari, deoarece nodul trebuie doar să rămână sincronizat. Nu-l confunda cu mineritul care necesită mult mai multă putere de calcul. Cu toate acestea, timpul de sincronizare și performanța se îmbunătățesc cu un hardware mai puternic. În funcție de nevoile și dorințele dvs., Ethereum poate fi rulat pe computerul dvs., pe serverul de acasă, pe computere cu o singură placă (SBC) sau pe servere virtuale private în cloud. - -O modalitate ușoară de a rula propriul nod este utilizarea casetelor „plug and play”, cum ar fi [DAppNode](https://dappnode.io/). Oferă hardware pentru rularea clienților și a aplicațiilor care depind de aceștia, cu o interfață de utilizator simplă. - -### Cerințe {#requirements} - -Înainte de a instala orice client, asigurați-vă că aveți suficiente resurse pe computerul dvs. pentru a-l rula. Cerințele minime și recomandate pot fi găsite mai jos, totuși partea cheie este spațiul pe disc. Sincronizarea blockchain-ului Ethereum presupune o utilizare intensivă a intrărilor/ieșirilor. Cel mai bine este să aveți un solid-state drive (SSD). Pentru a rula un client Ethereum pe HDD, veți avea nevoie de cel puțin 8GB de memorie RAM pentru a o folosi ca memorie cache. - -#### Cerințe minime {#recommended-specifications} - -- Procesor cu cel puțin 2 nuclee -- 4 GB RAM minimum cu un SSD, 8 GB minimum, dacă aveți un HDD -- Lățime de bandă de 8 MBit/s - -#### Specificații recomandate {#recommended-specifications} - -- Procesor rapid cu cel puțin 4 nuclee -- Minimum 16 GB RAM -- SSD rapid cu cel puțin 500 GB spațiu liber -- Lățime de bandă de cel puțin 25 MBit/s - -Modul de sincronizare pe care îl alegeți va afecta spațiul necesar, dar am estimat mai jos spațiul pe disc de care veți avea nevoie pentru fiecare client. - -| Client | Mărimea discului (sinc. rapidă) | Mărimea discului (arhivă completă) | -| ------------ | ------------------------------- | ---------------------------------- | -| Geth | Minimum 400 GB | Minimum 6TB | -| OpenEthereum | Minimum 280 GB | Minimum 6TB | -| Nethermind | Minimum 200 GB | Minimum 5TB | -| Besu | Minimum 750 GB | Minimum 5TB | -| Erigon | Nu este cazul | Minimum 1TB | - -- Observaţie: Erigon nu oferă sincronizarea rapidă, însă permite curățarea completă (~500 GB) - -![O diagramă care arată că numărul de GB necesari pentru o sincronizare completă are o tendință de creștere](./full-sync.png) - -![O diagramă care arată că numărul de GB necesari pentru o sincronizare arhivă are o tendință de creștere](./archive-sync.png) - -Aceste diagrame arată cum cerințele de stocare sunt mereu în schimbare. Pentru cele mai recente date referitoare la Geth și OpenEthereum, consultați [date complete de sincronizare](https://etherscan.io/chartsync/chaindefault) și [date arhivate de sincronizare](https://etherscan.io/chartsync/chainarchive). - -### Ethereum pe un computer cu o singură placă (SBC) {#ethereum-on-a-single-board-computer} - -Cel mai convenabil și mai ieftin mod de a rula nodul Ethereum este de a utiliza un computer cu o singură placă bazată pe arhitectură ARM precum Raspberry Pi. [Ethereum pe ARM](https://twitter.com/EthereumOnARM) oferă imagini ale clienților Geth, OpenEthereum, Nethermind și Besu. Iată un tutorial simplu despre modul [cum se construiește și se configurează un client ARM](/developers/tutorials/run-node-raspberry-pi/). - -Astfel de dispozitive mici, accesibile și eficiente sunt ideale pentru rularea unui nod la domiciliu. - -## Referințe suplimentare {#further-reading} - -There is a lot of information about Ethereum clients on the internet. Here are few resources that might be helpful. - -- [Ethereum 101 - Partea 2 - Înțelegerea nodurilor](https://kauri.io/ethereum-101-part-2-understanding-nodes/48d5098292fd4f11b251d1b1814f0bba/a) _– Wil Barnes, 13 februarie 2019_ -- [Rularea de noduri Ethereum complete: Un ghid pentru cei nu prea motivați](https://medium.com/@JustinMLeroux/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _– Justin Leroux, 7 noiembrie 2019_ -- [Analiza cerințelor de hardware pentru a fi un nod Ethereum validat complet](https://medium.com/coinmonks/analyzing-the-hardware-requirements-to-be-an-ethereum-full-validated-node-dc064f167902) _– Albert Palau, 24 septembrie 2018_ -- [Rularea unui nod Hyperledger Besu pe Mainnet-ul Ethereum: avantaje, cerințe și configurare](https://pegasys.tech/running-a-hyperledger-besu-node-on-the-ethereum-mainnet-benefits-requirements-and-setup/) _– Felipe Faraggi, 7 mai 2020_ - -## Subiecte corelate {#related-topics} - -- [Blocuri](/developers/docs/blocks/) -- [Rețele](/developers/docs/networks/) - -## Tutoriale corelate {#related-tutorials} - -- [Rularea unui nod cu Geth](/developers/tutorials/run-light-node-geth/) _ – Cum se descarcă, se instalează şi se rulează Geth. Covering syncmodes, the JavaScript console, and more._ -- [Transformați Raspberry Pi 4 într-un nod validator doar prin flash-area cardului MicroSD – Ghidul de instalare](/developers/tutorials/run-node-raspberry-pi/) _– Flash-ați Raspberry Pi 4, conectați un cablu ethernet, conectați discul SSD și porniți dispozitivul pentru a transforma Raspberry Pi 4 într-un nod Ethereum complet care rulează nivelul de execuție (Mainnet) și / sau nivelul de consens (Lanțul Beacon / validatorul)._ diff --git a/src/content/translations/ro/developers/docs/nodes-and-clients/run-a-node/index.md b/src/content/translations/ro/developers/docs/nodes-and-clients/run-a-node/index.md deleted file mode 100644 index 156c3ae5b4c..00000000000 --- a/src/content/translations/ro/developers/docs/nodes-and-clients/run-a-node/index.md +++ /dev/null @@ -1,162 +0,0 @@ ---- -title: Creați-vă propriul nod Ethereum -description: Introducere generală despre rularea propriei instanțe a unui client Ethereum. -lang: ro -sidebarDepth: 2 ---- - -Rularea propriului nod vă oferă diverse beneficii, deschide noi posibilități și ajută la susținerea ecosistemului. Această pagină vă va îndruma prin procesul de creare a propriului nod și de participare la validarea tranzacțiilor Ethereum. - -## Condiții prealabile {#prerequisites} - -Ar trebui să înțelegeți ce este un nod Ethereum și de ce este de dorit să rulați un client. Acest aspect este tratat în secțiunea [Noduri și clienți](/developers/docs/nodes-and-clients/). - -If you're new to the topic of running a node, or looking for a less technical path, we recommend first checking out our user-friendly introduction on [running an Ethereum node](/run-a-node). - -## Alegerea unei metode de abordare {#choosing-approach} - -Primul pas în crearea nodului dvs. este să vă alegeţi un mod de abordare. You have to choose the client (the software), the environment, and the parameters you want to start with. Vizualizați toți [clienţii din Mainnet](/developers/docs/nodes-and-clients/#advantages-of-different-implementations) disponibili. - -#### Setările pentru client {#client-settings} - -Implementările clienţilor activează diferite moduri de sincronizare și diverse alte opțiuni. [Modurile de sincronizare](/developers/docs/nodes-and-clients/#sync-modes) reprezintă diferite metode de descărcare și validare a datelor din blockchain. Before starting the node, you should decide what network and sync mode to use. Cele mai importante lucruril de luat în considerare sunt spațiul pe disc și timpul de sincronizare de care va avea nevoie clientul. - -Puteţi afla toate funcţionalităţile și opțiunile în documentația clientului. Se pot seta diverse configurații ale clientului prin executarea clientului cu flagurile corespunzătoare. În scopul testării, este preferabil să executați un client pe una dintre rețelele testnet. [Vedeți o prezentare generală a rețelelor acceptate](/developers/docs/nodes-and-clients/#execution-clients). - -### Mediu și hardware {#environment-and-hardware} - -#### Local sau în cloud {#local-vs-cloud} - -Clienții Ethereum pot rula pe computerele obişnuite ale consumatorilor și nu necesită un hardware special, cum ar fi, de exemplu, cel de minare. Prin urmare, aveți diverse opțiuni pentru implementare în funcţie de necesităţile dvs. Pentru a simplifica, să ne gândim să rulăm un nod atât pe un computer fizic local, cât și pe un server în cloud: - -- Cloud - - Furnizorii oferă o disponibilitate ridicată a timpului de server, adrese IP publice statice - - Să obţineţi un server dedicat sau virtual poate fi mai comodă decât să vă construiţi un server propriu - - Compromisul este de a vă încrede într-un terţ - furnizorul serverului - - Din cauza dimensiunii de stocare necesare pentru un nod complet, prețul unui server închiriat ar putea să crească -- Hardware propriu - - O abordare ce nu necesită să vă bizuiţi pe încredere și care este mai independentă - - O investiție unică - - O opțiune de a cumpăra un computere preconfigurate - - Trebuie să întrețineți, să mențineți și eventual să depanați computerul, în mod fizic - -Ambele opțiuni au diverse avantaje, rezumate mai sus. Dacă sunteți interesat de o soluție în cloud, pe lângă numeroșii furnizori tradiționali de cloud computing, există și servicii axate pe implementarea de noduri. De exemplu: - -- [QuikNode](https://www.quiknode.io/) -- [Blockdaemon](https://blockdaemon.com) -- [LunaNode](https://www.lunanode.com/) -- [Alchemy](https://www.alchemy.com/) - -#### Hardware {#hardware} - -Cu toate acestea, o rețea rezistentă la cenzură, descentralizată nu ar trebui să se bazeze pe furnizorii de servicii în cloud. Este mai sănătos pentru ecosistem dacă vă rulaţi propriul nod pe hardware. Cele mai simple opțiuni sunt constituite de computerele preconfigurate, cum ar fi: - -- [DappNode](https://dappnode.io/) -- [Avado](https://ava.do/) - -Verificați [cerinţele de spațiu pe disc ale fiecărui client și mod de sincronizare](/developers/docs/nodes-and-clients/#requirements) minime şi recomandate. Generally, modest computing power should be enough. De obicei problema este reprezentată de viteza unității. During initial sync, Ethereum clients perform a lot of read/write operations. De aceea se recomandă insistent un SSD. S-ar putea ca un client să nu [poată nici măcar să sincronizeze starea curentă pe HDD](https://github.com/ethereum/go-ethereum/issues/16796#issuecomment-391649278) și să rămână blocat la câteva blocuri în spatele Mainnet-ului. Puteți rula cei mai mulți clienți pe un [computer cu o singură placă pe procesoare cu arhitectură ARM](/developers/docs/nodes-and-clients/#ethereum-on-a-single-board-computer/). You can also use the [Ethbian](https://ethbian.org/index.html) operating system for Raspberry Pi 4. This lets you [run a client by flashing the SD card](/developers/tutorials/run-node-raspberry-pi/). Pe baza opțiunilor dvs. de software și hardware, timpul pentru sincronizarea inițială și cerințele de stocare pot varia. Aveţi grijă să [verificaţi timpii de sincronizare și cerințele de stocare](/developers/docs/nodes-and-clients/#recommended-specifications). Totodată, verificați că nu aveți o conexiune la internet limitată de un [plafon de lățime de bandă](https://wikipedia.org/wiki/Data_cap). Este recomandat să utilizați o conexiune nelimitată, deoarece sincronizarea inițială și datele difuzate în rețea ar putea depăși limita dvs. - -#### Sistemul de operare {#operating-system} - -All clients support major operating systems - Linux, MacOS, Windows. Aceasta înseamnă că puteți rula nodurile pe computere desktop obișnuite sau pe servere cu sistemul de operare (SO) preferat. Asigurați-vă că sistemul dvs. de operare este actualizat, pentru a evita eventualele probleme și vulnerabilități de securitate. - -## Crearea nodului {#spinning-up-node} - -### Procurarea software-ului client {#getting-the-client} - -Mai întâi descărcați [software-ul client](/developers/docs/nodes-and-clients/#execution-clients) preferat - -Nu trebuie decât să descărcați o aplicație executabilă sau un pachet de instalare adaptat sistemului dvs. de operare și arhitecturii dvs. Always verify signatures and checksums of downloaded packages. Anumiți clienți oferă şi depozitare pentru a facilita instalarea și actualizările. If you prefer, you can build from source. All of the clients are open source so you can build them from source code with the proper compiler. - -Fișierele binare executabile destinate implementărilor clienților Mainnet stabili se pot descărca de pe paginile lor de lansare: - -- [Geth](https://geth.ethereum.org/downloads/) -- [OpenEthereum,](https://github.com/openethereum/openethereum/releases) -- [Nethermind](https://downloads.nethermind.io/) -- [Besu](https://besu.hyperledger.org/en/stable/) -- [Erigon](https://github.com/ledgerwatch/erigon) - -**Rețineți că OpenEthereum [a fost dezaprobat](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) și nu mai este întreținut.** Folosiți-l cu precauție și este preferabil să treceți la o altă implementare de client. - -### Lansarea clientului {#starting-the-client} - -Este bine ca, înainte de a porni software-ul client Ethereum, să efectuați o ultimă verificare că mediul dvs. este pregătit. For example, make sure: - -- Aveți suficient spațiu pe disc, în funcție de rețeaua aleasă și de modul de sincronizare. -- Memoria și CPU-ul nu sunt oprite de alte programe. -- Sistemul de operare este actualizat la ultima versiune. -- Data și ora sistemului sunt corecte. -- Routerul și firewall-ul acceptă conexiuni pe porturile de ascultare. Clienții Ethereum utilizează în mod implicit un port de ascultare (TCP) și un port de descoperire (UDP), ambele pe 30303 în mod implicit. - -Rulaţi mai întâi clientul pe un testnet, pentru a vă asigura că totul funcționează corect. [Dacă rulaţi un nod ușor Geth](/developers/tutorials/run-light-node-geth/), aceasta ar trebui să vă ajute. Toate setările de client ce nu sunt cele implicite trebuie să fie declarate de la început. You can use flags or the config file to declare your preferred configuration. Consultați documentația clientului dvs. pentru detalii Execuția clientului va iniția funcțiile sale de bază, endpoint-urile alese și va începe să caute partenerii. După ce a reuşit să descopere partenerii, clientul începe sincronizarea. Datele actualizate ale blockchain-ului vor fi disponibile după sincronizarea cu succes a clientului cu starea actuală. - -### Utilizarea clientului {#using-the-client} - -Clienții oferă endpoint-uri API RPC pe care le puteți utiliza pentru a controla clientul și a interacționa cu rețeaua Ethereum în diverse moduri: - -- Apelându-i manual cu un protocol adecvat (de exemplu, folosind `curl`) -- Atașându-le o consolă furnizată (de exemplu, `geth attach`) -- Implementându-i în aplicații - -Diverși clienți au implementări diferite ale endpoint-urilor RPC. Există însă un JSON-RPC standard pe care îl puteţi utiliza cu orice client. Ca să aflaţi o prezentare generală, [citiți documentația JSON-RPC](https://eth.wiki/json-rpc/API). Aplicațiile care au nevoie de informații din rețeaua Ethereum pot folosi acest RPC. For example, popular wallet MetaMask lets you [run a local blockchain instance and connect to it](https://metamask.zendesk.com/hc/en-us/articles/360015290012-Using-a-Local-Node). - -#### Atingerea RPC-ului {#reaching-rpc} - -Portul implicit al JSON-RPC este `8545`, dar puteţi modifica porturile endpoint-urilor locale în fișierul de configurare. By default, the RPC interface is only reachable on the localhost of your computer. To make it remotely accessible, you might want to expose it to the public by changing the address to `0.0.0.0`. This will make it reachable over local and public IP addresses. De cele mai multe ori va trebui să configurați și redirecționarea porturilor pe router. - -Trebuie să faceți aceasta cu multă precauție, deoarece astfel oricine de pe internet va putea să vă controleze nodul. Actorii rău intenționați ar putea să vă acceseze nodul, fie pentru a vă distruge sistemul, fie pentru a vă fura fondurile, dacă vă folosiți clientul ca portofel. - -O metodă de evitare a acestui lucru este de a nu permite ca unele metode RPC potențial dăunătoare să poată fi modificabile. For example, with `geth`, you can declare modifiable methods with a flag: `--http.api web3,eth,txpool`. - -You can also host access to your RPC interface by pointing service of web server, like Nginx, to your client's local address and port. - -The most privacy-preserving and simple way to set up a publicly reachable endpoint, you can host it on your own [Tor](https://www.torproject.org/) onion service. This will let you reach the RPC outside your local network without a static public IP address or opened ports. To do this: - -- Instalați `tor` -- Editați configurația `torrc` pentru a activa serviciul ascuns cu adresa și portul RPC al clientului dvs. -- Reporniți serviciul `tor` - -Once you restart Tor, you'll get hidden service keys and a hostname in your desired directory. From then, your RPC will be reachable on a `.onion` hostname. - -### Exploatarea nodului {#operating-the-node} - -You should regularly monitor your node to make sure it's running properly. You may need to do occasional maintenance. - -#### Păstrarea online a nodului {#keeping-node-online} - -Your node doesn't have to be online nonstop but you should keep it online as much as possible to keep it in sync with the network. You can shut it down to restart it but keep in mind that: - -- Închiderea poate dura câteva minute dacă starea actuală este încă scrisă pe disc. -- Închiderile forțate pot deteriora baza de date. -- Clientul dvs. se va desincroniza de la rețea și va trebui să se resincronizeze atunci când îl reporniți. - -_This doesn't apply on consensus layer validator nodes._ Taking your node offline will affect all services dependent on it. If you are running a node for _staking_ purposes you should try to minimize downtime as much as possible. - -#### Crearea unui serviciu client {#creating-client-service} - -Consider creating a service to run your client automatically on startup. For example on Linux servers, good practice would be creating a service that executes the client with proper config, under user with limited privileges and automatically restarts. - -#### Actualizarea clientului {#updating-client} - -You need to keep your client software up-to-date with the latest security patches, features, and [EIPs](/eips/). Especially before [hard forks](/history/), make sure you are running the correct client version. - -#### Rularea de servicii suplimentare {#running-additional-services} - -Running your own node lets you use services that require direct access to Ethereum client RPC. These are services built on top of Ethereum like [layer 2 solutions](/developers/docs/scaling/#layer-2-scaling), [consensus clients](/developers/docs/nodes-and-clients/#consensus-clients), and other Ethereum infrastructure. - -#### Monitorizarea nodului {#monitoring-the-node} - -"To properly monitor your node, consider collecting metrics. Clients provide metrics endpoints so you can get comprehensive data about your node. Use tools like [InfluxDB](https://www.influxdata.com/get-influxdb/) or [Prometheus](https://prometheus.io/) to create databases which you can turn into visualizations and charts in software like [Grafana](https://grafana.com/). There are many setups for using this software and different Grafana dashboards for you to visualise your node and the network as a whole. As part of your monitoring, make sure to keep an eye on your machine's performance. During your node's initial sync, the client software may be very heavy on CPU and RAM. In addition to Grafana, you can use the tools your OS offers like `htop` or `uptime` to do this. - -## Referințe suplimentare {#further-reading} - -- [Analizarea cerințelor hardware pentru a fi un nod Ethereum validat complet](https://medium.com/coinmonks/analyzing-the-hardware-requirements-to-be-an-ethereum-full-validated-node-dc064f167902) _– Albert Palau, 24 septembrie 2018_ -- [Rularea de Noduri Ethereum complete: Un ghid pentru cei abia motivați](https://medium.com/@JustinMLeroux/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) _– Justin Leroux, 7 noiembrie 2019_ -- [Rularea unui nod Besu Hyperledder pe Mainnet Ethereum: Beneficii, cerințe și instalare](https://pegasys.tech/running-a-hyperledger-besu-node-on-the-ethereum-mainnet-benefits-requirements-and-setup/) _– Felipe Faraggi, 7 mai 2020_ -- [Implementarea Clientului Nethermind Ethereum cu stiva de monitorizare](https://medium.com/nethermind-eth/deploying-nethermind-ethereum-client-with-monitoring-stack-55ce1622edbd) _– Nethermind.eth, 8 iulie 2020_ - -## Subiecte corelate {#related-topics} - -- [Noduri și clienți](/developers/docs/nodes-and-clients/) -- [Blocuri](/developers/docs/blocks/) -- [Rețele](/developers/docs/networks/) diff --git a/src/content/translations/ro/developers/docs/programming-languages/dot-net/index.md b/src/content/translations/ro/developers/docs/programming-languages/dot-net/index.md deleted file mode 100644 index 2f4f4732f23..00000000000 --- a/src/content/translations/ro/developers/docs/programming-languages/dot-net/index.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: Ethereum pentru dezvoltatorii .NET -description: Învăţaţi să faceţi dezvoltare pentru Ethereum folosind proiecte și instrumente .NET -lang: ro -incomplete: true ---- - - - -Folosiţi Ethereum pentru a crea aplicații descentralizate („dapp-uri”) care valorifică avantajele criptomonedelor și ale tehnologiei blockchain. Aceste aplicații descentralizate pot fi de încredere, întrucât, odată implementate pe Ethereum, vor rula întotdeauna așa cum au fost programate. Pot controla active digitale pentru a crea noi tipuri de aplicații financiare. Pot fi descentralizate, adică nicio entitate sau persoană nu le poate controla și sunt aproape imposibil de cenzurat. - -Dezvoltaţi aplicații descentralizate pe Ethereum și interacționaţi cu contractele inteligente folosind instrumente și limbaje de programare din stiva de tehnologie Microsoft - acceptă C#, # Visual Basic .NET, F#, pe instrumente ca VSCode și Visual Studio, în .NET Framework/.NET Core/.NET Standard. Implementaţi în câteva minute un blockchain Ethereum pe Azure folosind Microsoft Azure Blockchain. Aduceţi pasiunea pentru .NET pe Ethereum! - -## Primii pași în contractele inteligente și limbajul Solidity {#getting-started-with-smart-contracts-and-the-solidity-language} - -**Faceţi primii pași în integrarea .NET cu Ethereum** - -Aveţi nevoie de o scurtă introducere? Accesaţi [ethereum.org/learn](/learn/) sau [ethereum.org/developers](/developers/). - -- [Blockchain-ul explicat](https://kauri.io/article/d55684513211466da7f8cc03987607d5/blockchain-explained) -- [Înţelegerea noţiunii de contracte inteligente](https://kauri.io/article/e4f66c6079e74a4a9b532148d3158188/ethereum-101-part-5-the-smart-contract) -- [Scrieţi primul dvs. contract inteligent](https://kauri.io/article/124b7db1d0cf4f47b414f8b13c9d66e2/remix-ide-your-first-smart-contract) -- [Învăţaţi cum să compilaţi și să implementaţi Solidity](https://kauri.io/article/973c5f54c4434bb1b0160cff8c695369/understanding-smart-contract-compilation-and-deployment) - -## Resurse și linkuri pentru începători {#beginner-references-and-links} - -**Introducere despre biblioteca Nethereum și VS Code Solidity** - -- [Nethereum, Noțiuni introductive](https://docs.nethereum.com/en/latest/getting-started/) -- [Instalarea VS Code Solidity](https://marketplace.visualstudio.com/items?itemName=JuanBlanco.solidity) -- [Un flux de lucru al dezvoltatorului NET pentru crearea și apelarea contractelor inteligente Ethereum](https://medium.com/coinmonks/a-net-developers-workflow-for-creating-and-calling-ethereum-smart-contracts-44714f191db2) -- [Integrarea contractelor inteligente cu Nethereum](https://kauri.io/#collections/Getting%20Started/smart-contracts-integration-with-nethereum/#smart-contracts-integration-with-nethereumm) -- [Interfațarea .NET și contractelor inteligente Ethereum cu Nethereum](https://medium.com/my-blockchain-development-daily-journey/interfacing-net-and-ethereum-blockchain-smart-contracts-with-nethereum-2fa3729ac933), și în [中文版](https://medium.com/my-blockchain-development-daily-journey/%E4%BD%BF%E7%94%A8nethereum%E9%80%A3%E6%8E%A5-net%E5%92%8C%E4%BB%A5%E5%A4%AA%E7%B6%B2%E5%8D%80%E5%A1%8A%E9%8F%88%E6%99%BA%E8%83%BD%E5%90%88%E7%B4%84-4a96d35ad1e1) -- [Nethereum - O bibliotecă open source .NET pentru integrare cu blockchain](https://kauri.io/#collections/a%20hackathon%20survival%20guide/nethereum-an-open-source-.net-integration-library/) -- [Scrierea tranzacțiilor Ethereum în baza de date SQL folosind Nethereum](https://medium.com/coinmonks/writing-ethereum-transactions-to-sql-database-using-nethereum-fd94e0e4fa36) -- [Vedeţi cum să implementaţi cu ușurință contracte inteligente Ethereum utilizând C# și VisualStudio](https://koukia.ca/deploy-ethereum-smart-contracts-using-c-and-visualstudio-5be188ae928c) - -**Doriţi să treceţi peste etapele iniţiale acum și să ajungeţi direct la exemplele concrete?** - -- [Playground](http://playground.nethereum.com/) - Interacționaţi cu Ethereum și învăţaţi să folosiţi Nethereum prin browser. - - Interogarea soldului unui cont în [C#](http://playground.nethereum.com/csharp/id/1001) [VB.NET](http://playground.nethereum.com/vb/id/2001) - - Interogarea soldului unui contract smart ERC20 în [C#](http://playground.nethereum.com/csharp/id/1005) [VB.NET](http://playground.nethereum.com/vb/id/2004) - - Transferă ether către un cont [C#](http://playground.nethereum.com/csharp/id/1003) [VB.NET](http://playground.nethereum.com/vb/id/2003) - - ... Și altele! - -## Articole de nivel intermediar {#intermediate-articles} - -- [Registru de lucru Nethereum/listă de exemple](http://docs.nethereum.com/en/latest/Nethereum.Workbooks/docs/) -- [Implementaţi-vă propriile testchain-uri de dezvoltare](https://github.com/Nethereum/Testchains) -- [Plugin-ul VSCode Codegen pentru Solidity](https://docs.nethereum.com/en/latest/nethereum-codegen-vscodesolidity/) -- [Unity și Ethereum: De ce și cum](https://www.raywenderlich.com/5509-unity-and-ethereum-why-and-how) -- [Creaţi API ASP.NET Core Web pentru dapps Ethereum](https://tech-mint.com/blockchain/create-asp-net-core-web-api-for-ethereum-dapps/) -- [Utilizarea Nethereum Web3 pentru implementarea unui sistem de urmărire a lanțului de aprovizionare](http://blog.pomiager.com/post/using-nethereum-web3-to-implement-a-supply-chain-traking-system4) -- [Procesarea blocurilor Nethereum](https://nethereum.readthedocs.io/en/latest/nethereum-block-processing-detail/), cu [un exemplu C# Playground](http://playground.nethereum.com/csharp/id/1025) -- [Nethereum Websocket Streaming](https://nethereum.readthedocs.io/en/latest/nethereum-subscriptions-streaming/) -- [Kaleido și Nethereum](https://kaleido.io/kaleido-and-nethereum/) -- [Quorum și Nethereum](https://github.com/Nethereum/Nethereum/blob/master/src/Nethereum.Quorum/README.md) - -## Modele avansate de utilizare {#advanced-use-patterns} - -- [Azure Key Vault și Nethereum](https://github.com/Azure-Samples/bc-community-samples/tree/master/akv-nethereum) -- [Nethereum.DappHybrid](https://github.com/Nethereum/Nethereum.DappHybrid) -- [Arhitectura backend de referință pentru Ujo Nethereum](https://docs.nethereum.com/en/latest/nethereum-ujo-backend-sample/) - -## Proiecte .NET, instrumente și alte lucruri distractive {#dot-net-projects-tools-and-other-fun-stuff} - -- [Nethereum Playground](http://playground.nethereum.com/) - _Compilează, creează și rulează secvențe de cod Nethereum în browser_ -- [Nethereum Codegen Blazor](https://github.com/Nethereum/Nethereum.CodeGen.Blazor) - _Generator de cod Nethereum cu UI în Blazor_ -- [Nethereum Blazor](https://github.com/Nethereum/NethereumBlazor) - _Un explorer de blockchain în .NET Wasm SPA și un portofel simplu_ -- [Wonka Business Rules Engine](https://docs.nethereum.com/en/latest/wonka/) - _Un motor de reguli business (pentru platformele .NET și Ethereum) bazat inerent pe metadate_ -- [Nethermind](https://github.com/NethermindEth/nethermind) - _Un client esențial Ethereum.NET pentru Linux, Windows, MacOs_ -- [eth-utils](https://github.com/ethereum/eth-utils/) - _funcții utilitare pentru a lucra cu baze de cod Ethereum_ -- [TestChains](https://github.com/Nethereum/TestChains) - _Devchain-uri .NET preconfigurate pentru viteze mari de răspuns (PoA)_ - -Căutaţi şi alte resurse? Accesează [ethereum.org/developers](/developers/). - -## Colaboratori ai comunității .NET {#dot-net-community-contributors} - -Pe noi, cei de la Nethereum, ne puteţi găsi pe [Gitter](https://gitter.im/Nethereum/Nethereum), unde toată lumea poate să pună întrebări și să dea răspunsuri, să primească ajutor sau pur și simplu să se relaxeze. Puteţi crea un PR sau ridica o problemă în [Repo-ul GitHub Nethereum](https://github.com/Nethereum) sau puteţi descoperi numeroasele noastre proiecte secundare/de exemplificare. Ne puteţi găsi și pe [Discord](https://discord.gg/jQPrR58FxX)! - -La Nethermind, vă invităm să ne contactaţi prin [Gitter](//gitter.im/nethermindeth/nethermind). Pentru PR sau probleme, accesaţi [Repo-ul GitHub Nethermind](https://github.com/NethermindEth/nethermind). - -## Alte liste agregate {#other-aggregated-lists} - -[Site-ul oficial Nethereum](https://nethereum.com/) -[Site-ul oficial Nethermind](https://nethermind.io/) diff --git a/src/content/translations/ro/developers/docs/smart-contracts/anatomy/index.md b/src/content/translations/ro/developers/docs/smart-contracts/anatomy/index.md deleted file mode 100644 index d4f8648757b..00000000000 --- a/src/content/translations/ro/developers/docs/smart-contracts/anatomy/index.md +++ /dev/null @@ -1,658 +0,0 @@ ---- -title: Anatomia contractelor inteligente -description: O analiză aprofundată a anatomiei unui contact inteligent – funcțiile, datele și variabilele. -lang: ro ---- - -Un contract inteligent este un program care rulează la o adresă pe Ethereum. Este alcătuit din date și funcții care pot fi executate la primirea unei tranzacții. Iată o imagine de ansamblu a ceea ce constituie un contract inteligent. - -### Condiții prealabile {#prerequisites} - -Aveţi grijă să citiţi mai întâi despre [contractele inteligente](/developers/docs/smart-contracts/). Acest document presupune că sunteţi deja familiarizat cu limbaje de programarea precum JavaScript sau Python. - -## Datele {#data} - -Toate datele dintr-un contract trebuie alocate unei locații: fie de `stocare`, fie de `memorie`. Este costisitor de modificat locul de stocare într-un contract inteligent, deci trebuie să hotărâţi unde să vă plasaţi datele. - -### Stocare {#storage} - -Datele persistente sunt denumite stocare și sunt reprezentate de variabilele de stare. Aceste valori sunt stocate permanent pe blockchain. Trebuie să declaraţi de ce tip sunt, astfel încât contractul să poată ţine socoteala spaţiului de stocare de care are nevoie pe blockchain atunci când compilează. - -```solidity -// Exemplu Solidity -contract SimpleStorage { - uint storedData; // Stare variabilă - // ... -} -``` - -```python -# Exemplu Vyper -storedData: int128 -``` - -Dacă aţi programat deja în limbaje orientate pe obiecte, probabil că știţi deja majoritatea tipurilor. Cu toate acestea, `address` (adresa) ar trebui să fie nouă pentru dvs. dacă nu aţi mai dezvoltat pe Ethereum. - -Un tip de `address` poate conține o adresă Ethereum care echivalează cu 20 de octeţi sau 160 de biți. Acesta răspunde în notație hexazecimală cu un 0x la început. - -Alte tipuri includ: - -- boolean -- întreg -- numere în virgulă fixă -- matrice de octeți de dimensiuni fixe -- matrice de octeți de dimensiuni dinamice -- literale raționale și întregi -- literale de tip string -- literale hexazecimale -- enum-uri - -Pentru mai multe explicații, consultaţi documentele: - -- [Vedeţi tipurile Vyper](https://vyper.readthedocs.io/en/v0.1.0-beta.6/types.html#value-types) -- [Vedeţi tipurile Solidity](https://solidity.readthedocs.io/en/latest/types.html#value-types) - -### Memorie {#memory} - -Valorile care sunt stocate numai pe durata de viață a executării unei funcții contractuale se numesc variabile de memorie. Deoarece acestea nu sunt stocate permanent pe blockchain, sunt mult mai ieftin de utilizat. - -Aflaţi mai multe informații despre modul în care EVM stochează datele (stocare, memorie și stivă) în [documentația Solidity](https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html?highlight=memory#storage-memory-and-the-stack). - -### Variabile de mediu {#environment-variables} - -În plus față de variabilele pe care le definiţi în contract, există câteva variabile globale speciale. Acestea sunt utilizate în principal pentru a furniza informații despre blockchain sau tranzacția curentă. - -Exemple: - -| **Prop** | **Variabilă de stare** | **Descriere** | -| ----------------- | ---------------------- | ----------------------------------------- | -| `block.timestamp` | uint256 | Marca temporală actuală a epocii blocului | -| `msg.sender` | address | Expeditorul mesajului (apel curent) | - -## Funcții {#functions} - -În exprimare simplistă, funcțiile pot obține informații sau pot seta informații ca răspuns la tranzacțiile primite. - -Există două tipuri de apeluri funcționale: - -- `internal` – acestea nu creează un apel EVM - - Funcțiile interne și variabilele de stare pot fi accesate numai intern (adică din contractul actual sau contractele care derivă din acesta) -- `external` – acestea creează un apel EVM - - Funcțiile externe fac parte din interfața contractului, ceea ce înseamnă că pot fi apelate din alte contracte și prin tranzacții. O funcție externă `f` nu poate fi apelată intern (adică `f()` nu funcționează, dar `this.f()` funcționează). - -De asemenea, pot fi de tip `public` sau `private` - -- funcțiile de tip `public` pot fi apelate intern din cadrul contractului sau extern prin mesaje -- funcțiile `private` sunt vizibile numai pentru contractul în care sunt definite și nu sunt vizibile în contractele derivate - -Atât funcțiile, cât și variabilele de stare pot fi făcute publice sau private - -Iată o funcție pentru actualizarea unei variabile de stare pe un contract: - -```solidity -// Exemplu Solidity -function update_name(string value) public { - dapp_name = value; -} -``` - -- Parametrul `value` de tip `string` este trecut în funcția: `update_name` -- Este declarat `public`, ceea ce înseamnă că oricine îl poate accesa -- Nu este declarat `view`, astfel încât să poată modifica starea contractului - -### Funcții de vizualizare {#view-functions} - -Aceste funcții promit să nu modifice starea datelor contractului. Exemplele obişnuite sunt funcțiile „getter” (de obținere) – s-ar putea să utilizaţi acest lucru pentru a primi soldul unui utilizator, de exemplu. - -```solidity -// Exemplu Solidity -function balanceOf(address _owner) public view returns (uint256 _balance) { - return ownerPizzaCount[_owner]; -} -``` - -```python -dappName: public(string) - -@view -@public -def readName() -> string: - return dappName -``` - -Ce se consideră ca modificator de stare: - -1. Scrierea în variabilele de stare. -2. [Emiterea de evenimente](https://solidity.readthedocs.io/en/v0.7.0/contracts.html#events). -3. [Crearea altor contracte](https://solidity.readthedocs.io/en/v0.7.0/control-structures.html#creating-contracts). -4. Folosirea `selfdestruct`. -5. Trimiterea de ether prin apeluri. -6. Apelarea oricărei funcții care nu este marcată `view` sau `pure`. -7. Folosirea de apeluri de nivel inferior. -8. Utilizarea ansamblului în linie care conține anumite opcoduri. - -### Funcții constructor {#constructor-functions} - -Funcțiile `constructor` sunt executate o singură dată, la prima implementare a contractului. Precum `constructor`-ul din multe limbaje de programare bazate pe clase, aceste funcții inițializează adesea variabilele de stare la valorile lor specificate. - -```solidity -// Exemplu Solidity -// Inițializează datele contractului, setând `proprietarul` -// la adresa creatorului contractului. -constructor() public { - // Toate contractele inteligente se bazează pe tranzacții externe pentru a le declanșa funcțiile. - // `msg`este o variabilă globală care include date relevante privind tranzacția dată, - // cum ar fi adresa expeditorului și valoarea ETH inclusă în tranzacție. - // Află mai multe: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties - owner = msg.sender; -} -``` - -```python -# exemplu Vyper - -@external -def __init__(_beneficiary: address, _bidding_time: uint256): - self.beneficiary = _beneficiary - self.auctionStart = block.timestamp - self.auctionEnd = self.auctionStart + _bidding_time -``` - -### Funcții încorporate {#built-in-functions} - -În plus față de variabilele și funcțiile pe care le definiţi în contract, există câteva funcții speciale încorporate. Cel mai evident exemplu este: - -- `address.send()` – Solidity -- `send(address)` – Vyper - -Acestea permit contractelor să trimită ETH către alte conturi. - -## Scrierea de funcții {#writing-functions} - -Funcția dvs. are nevoie de: - -- parametru variabil și tipul acestuia (dacă acceptă parametri) -- declararea dacă este internal/external -- declararea dacă este pure/view/payable -- tipul de răspuns (dacă răspunde printr-o valoare) - -```solidity -pragma solidity >=0.4.0 <=0.6.0; - -contract ExampleDapp { - string dapp_name; // state variable - - // Called when the contract is deployed and initializes the value - constructor() public { - dapp_name = "My Example dapp"; - } - - // Get Function - function read_name() public view returns(string) { - return dapp_name; - } - - // Set Function - function update_name(string value) public { - dapp_name = value; - } -} -``` - -Un contract complet ar putea arăta astfel. Aici funcția `constructor` furnizează o valoare inițială pentru variabila `dapp_name`. - -## Evenimente și jurnale {#events-and-logs} - -Evenimentele vă permit să comunicaţi cu contractul dvs. inteligent din frontend sau din alte aplicații cu abonare. Când o tranzacție este minată, contractele inteligente pot emite evenimente și pot scrie jurnale în blockchain, pe care frontend-ul le poate procesa. - -## Exemple adnotate {#annotated-examples} - -Acestea sunt câteva exemple scrise în Solidity. Dacă doriţi să vă jucaţi cu codul, puteţi interacționa cu el în [Remix](http://remix.ethereum.org). - -### Hello world {#hello-world} - -```solidity -// Specifică versiunea Solidity, utilizând versiuni semantice. -// Află mai multe: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma -pragma solidity ^0.5.10; - -// Definește un contract numit `HelloWorld`. -// Un contract este o colecție de funcții și date - (starea sa). -// Odată implementat, un contract se află la o anumită adresă din blockchain-ul Ethereum. -// Află mai multe: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html -contract HelloWorld { - - // Declară o variabilă de stare `message` de tip `string`. - // Variabilele de stare sunt variabile ale căror valori sunt stocate permanent în stocarea contractului. - // Cuvântul cheie `public` face variabile accesibile din afara unui contract - // și creează o funcție pe care alte contracte sau clienți o pot apela pentru a accesa valoarea. - string public message; - - // Similar cu multe limbaje orientate pe obiecte bazate pe clase, un constructor este - // o funcție specială care se execută numai la crearea contractului. - // Funcțiile constructor sunt utilizate pentru a inițializa datele contractului. - // Află mai multe: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constructors - constructor(string memory initMessage) public { - // Acceptă un argument de string `initMessage` și setează valoarea - // în variabila de stocare `message` a contractului). - message = initMessage; - } - - // O funcție publică care acceptă un argument string - // și actualizează variabila de stocare `message`. - function update(string memory newMessage) public { - message = newMessage; - } -} -``` - -### Token {#token} - -```solidity -pragma solidity ^0.5.10; - -contract Token { - // `address` este comparabilă cu o adresă de e-mail - este utilizată pentru a identifica un cont pe Ethereum. - // Adresele pot reprezenta un contract inteligent sau un cont extern (utilizator). - // Află mai multe: https://solidity.readthedocs.io/en/v0.5.10/types.html#address - address public owner; - - // `mapping` este în esență o structură de date de tabel hash. - // Acest `mapping` atribuie un număr întreg nesemnat (echilibrul tokenului) unei adrese (deținătorul tokenului). - // Află mai multe: https://solidity.readthedocs.io/en/v0.5.10/types.html#mapping-types - mapping (address => uint) public balances; - - // Evenimentele permit înregistrarea activității pe blockchain. - // Clienții Ethereum pot asculta evenimente pentru a reacționa la modificările stării contractului. - // Află mai multe: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#events - event Transfer(address from, address to, uint amount); - - // Inițializează datele contractului, setând `owner` - // la adresa creatorului contractului. - constructor() public { - // Toate contractele inteligente se bazează pe tranzacții externe pentru a declanșa funcțiile sale. - // `msg` este o variabilă globală care include date relevante despre tranzacția dată, - // cum ar fi adresa expeditorului și valoarea ETH inclusă în tranzacție. - // Află mai multe: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties - owner = msg.sender; - } - - // Creează o cantitate de tokenuri noi și le trimite la o adresă. - function mint(address receiver, uint amount) public { - // `require` este o structură de control utilizată pentru a impune anumite condiții. - // Dacă o declarație `require` este evaluată ca `false`, se declanșează o excepție, - // care întoarce toate modificările aduse stării în timpul apelului curent. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions - - // Only the contract owner can call this function - require(msg.sender == owner, "You are not the owner."); - - // Enforces a maximum amount of tokens - require(amount < 1e60, "Maximum issuance exceeded"); - - // Increases the balance of `receiver` by `amount` - balances[receiver] += amount; - } - - // Sends an amount of existing tokens from any caller to an address. - function transfer(address receiver, uint amount) public { - // Expeditorul trebuie să aibă suficiente tokenuri pentru a le trimite - require(amount <= balances[msg.sender], "Insufficient balance."); - - // Reglează soldurile token ale celor două adrese - balances[msg.sender] -= amount; - balances[receiver] += amount; - - // Emite evenimentul definit anterior - emit Transfer(msg.sender, receiver, amount); - } -} -``` - -### Activ digital unic {#unique-digital-asset} - -```solidity -pragma solidity ^0.5.10; - -// Importă simboluri din alte fișiere în contractul curent. -// În acest caz, o serie de contracte de ajutor de la OpenZeppelin. -//Află mai multe: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#importing-other-source-files - -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; -import "../node_modules/@openzeppelin/contracts/introspection/ERC165.sol"; -import "../node_modules/@openzeppelin/contracts/math/SafeMath.sol"; - -// Cuvântul cheie `is` este folosit pentru a moșteni funcții și cuvinte cheie din contracte externe. -// În acest caz, `CryptoPizza` moștenește din contractele `IERC721` și `ERC165`. -// Află mai multe: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#inheritance -contract CryptoPizza is IERC721, ERC165 { - // Folosește biblioteca OpenZeppelin's SafeMath ca să efectuezi operațiuni aritmetice în siguranță. - // Află mai multe: https://docs.openzeppelin.com/contracts/2.x/api/math#SafeMath - using SafeMath for uint256; - - // Variabilele de stare constantă din Solidity sunt similare cu alte limbaje - // dar trebuie să atribui dintr-o expresie care este constantă în timpul compilării. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constant-state-variables - uint256 constant dnaDigits = 10; - uint256 constant dnaModulus = 10 ** dnaDigits; - bytes4 private constant _ERC721_RECEIVED = 0x150b7a02; - - // Struct types let you define your own type - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#structs - struct Pizza { - string name; - uint256 dna; - } - - // Creates an empty array of Pizza structs - Pizza[] public pizzas; - - // Mapping from pizza ID to its owner's address - mapping(uint256 => address) public pizzaToOwner; - - // Mapping from owner's address to number of owned token - mapping(address => uint256) public ownerPizzaCount; - - // Mapping from token ID to approved address - mapping(uint256 => address) pizzaApprovals; - - // You can nest mappings, this example maps owner to operator approvals - mapping(address => mapping(address => bool)) private operatorApprovals; - - // Internal function to create a random Pizza from string (name) and DNA - function _createPizza(string memory _name, uint256 _dna) - // The `internal` keyword means this function is only visible - // within this contract and contracts that derive this contract - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#visibility-and-getters - internal - // `isUnique` is a function modifier that checks if the pizza already exists - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html#function-modifiers - isUnique(_name, _dna) - { - // Adds Pizza to array of Pizzas and get id - uint256 id = SafeMath.sub(pizzas.push(Pizza(_name, _dna)), 1); - - // Checks that Pizza owner is the same as current user - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions - - // note that address(0) is the zero address, - // indicating that pizza[id] is not yet allocated to a particular user. - - assert(pizzaToOwner[id] == address(0)); - - // Maps the Pizza to the owner - pizzaToOwner[id] = msg.sender; - ownerPizzaCount[msg.sender] = SafeMath.add( - ownerPizzaCount[msg.sender], - 1 - ); - } - - // Creates a random Pizza from string (name) - function createRandomPizza(string memory _name) public { - uint256 randDna = generateRandomDna(_name, msg.sender); - _createPizza(_name, randDna); - } - - // Generates random DNA from string (name) and address of the owner (creator) - function generateRandomDna(string memory _str, address _owner) - public - // Functions marked as `pure` promise not to read from or modify the state - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#pure-functions - pure - returns (uint256) - { - // Generates random uint from string (name) + address (owner) - uint256 rand = uint256(keccak256(abi.encodePacked(_str))) + - uint256(_owner); - rand = rand % dnaModulus; - return rand; - } - - // Returns array of Pizzas found by owner - function getPizzasByOwner(address _owner) - public - // Functions marked as `view` promise not to modify state - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#view-functions - view - returns (uint256[] memory) - { - // Uses the `memory` storage location to store values only for the - // lifecycle of this function call. - // Află mai multe: https://solidity.readthedocs.io/en/v0.5.10/introduction-to-smart-contracts.html#storage-memory-and-the-stack - uint256[] memory result = new uint256[](ownerPizzaCount[_owner]); - uint256 counter = 0; - for (uint256 i = 0; i < pizzas.length; i++) { - if (pizzaToOwner[i] == _owner) { - result[counter] = i; - counter++; - } - } - return result; - } - - // Transferă Pizza și proprietatea asupra altei adrese - function transferFrom(address _from, address _to, uint256 _pizzaId) public { - require(_from != address(0) && _to != address(0), "Adresă invalidă."); - require(_exists(_pizzaId), "Pizza nu există."); - require(_from != _to, "Nu se poate transfera la aceeași adresă."); - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Adresa nu este aprobată."); - - ownerPizzaCount[_to] = SafeMath.add(ownerPizzaCount[_to], 1); - ownerPizzaCount[_from] = SafeMath.sub(ownerPizzaCount[_from], 1); - pizzaToOwner[_pizzaId] = _to; - - //Emite eveniment definit în contractul IERC721 importat - emit Transfer(_from, _to, _pizzaId); - _clearApproval(_to, _pizzaId); - } - - /** - * Transferă în siguranță dreptul de proprietate asupra unui ID de token dat la o altă adresă - * Dacă adresa țintă este un contract, aceasta trebuie să implementeze `onERC721Received`, - * care este apelat la un transfer sigur și returnează valoarea magică - * `bytes4 (keccak256 (" onERC721Received(address,address,uint256, bytes)"))`; - * în caz contrar, transferul este anulat. - */ - function safeTransferFrom(address from, address to, uint256 pizzaId) - public - { - // solium-disable-next-line arg-overflow - this.safeTransferFrom(from, to, pizzaId, ""); - } - - /** - * Transferă în siguranță dreptul de proprietate asupra unui ID de token dat la o altă adresă - * Dacă adresa țintă este un contract, aceasta trebuie să implementeze `onERC721Received`, - * care este apelat la un transfer sigur și returnează valoarea magică - * `bytes4 (keccak256 (" onERC721Received (address, address, uint256, bytes) "))`; - * în caz contrar, transferul este anulat. - */ - function safeTransferFrom( - address from, - address to, - uint256 pizzaId, - bytes memory _data - ) public { - this.transferFrom(from, to, pizzaId); - require(_checkOnERC721Received(from, to, pizzaId, _data), "Must implement onERC721Received."); - } - - /** - * Internal function to invoke `onERC721Received` on a target address - * The call is not executed if the target address is not a contract - */ - function _checkOnERC721Received( - address from, - address to, - uint256 pizzaId, - bytes memory _data - ) internal returns (bool) { - if (!isContract(to)) { - return true; - } - - bytes4 retval = IERC721Receiver(to).onERC721Received( - msg.sender, - from, - pizzaId, - _data - ); - return (retval == _ERC721_RECEIVED); - } - - // Burns a Pizza - destroys Token completely - // The `external` function modifier means this function is - // part of the contract interface and other contracts can call it - function burn(uint256 _pizzaId) external { - require(msg.sender != address(0), "Invalid address."); - require(_exists(_pizzaId), "Pizza does not exist."); - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - - ownerPizzaCount[msg.sender] = SafeMath.sub( - ownerPizzaCount[msg.sender], - 1 - ); - pizzaToOwner[_pizzaId] = address(0); - } - - // Returns count of Pizzas by address - function balanceOf(address _owner) public view returns (uint256 _balance) { - return ownerPizzaCount[_owner]; - } - - // Returns owner of the Pizza found by id - function ownerOf(uint256 _pizzaId) public view returns (address _owner) { - address owner = pizzaToOwner[_pizzaId]; - require(owner != address(0), "Invalid Pizza ID."); - return owner; - } - - // Approves other address to transfer ownership of Pizza - function approve(address _to, uint256 _pizzaId) public { - require(msg.sender == pizzaToOwner[_pizzaId], "Must be the Pizza owner."); - pizzaApprovals[_pizzaId] = _to; - emit Approval(msg.sender, _to, _pizzaId); - } - - // Returns approved address for specific Pizza - function getApproved(uint256 _pizzaId) - public - view - returns (address operator) - { - require(_exists(_pizzaId), "Pizza does not exist."); - return pizzaApprovals[_pizzaId]; - } - - /** - * Private function to clear current approval of a given token ID - * Reverts if the given address is not indeed the owner of the token - */ - function _clearApproval(address owner, uint256 _pizzaId) private { - require(pizzaToOwner[_pizzaId] == owner, "Must be pizza owner."); - require(_exists(_pizzaId), "Pizza does not exist."); - if (pizzaApprovals[_pizzaId] != address(0)) { - pizzaApprovals[_pizzaId] = address(0); - } - } - - /* - * Sets or unsets the approval of a given operator - * An operator is allowed to transfer all tokens of the sender on their behalf - */ - function setApprovalForAll(address to, bool approved) public { - require(to != msg.sender, "Cannot approve own address"); - operatorApprovals[msg.sender][to] = approved; - emit ApprovalForAll(msg.sender, to, approved); - } - - // Tells whether an operator is approved by a given owner - function isApprovedForAll(address owner, address operator) - public - view - returns (bool) - { - return operatorApprovals[owner][operator]; - } - - // Takes ownership of Pizza - only for approved users - function takeOwnership(uint256 _pizzaId) public { - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - address owner = this.ownerOf(_pizzaId); - this.transferFrom(owner, msg.sender, _pizzaId); - } - - // Checks if Pizza exists - function _exists(uint256 pizzaId) internal view returns (bool) { - address owner = pizzaToOwner[pizzaId]; - return owner != address(0); - } - - // Checks if address is owner or is approved to transfer Pizza - function _isApprovedOrOwner(address spender, uint256 pizzaId) - internal - view - returns (bool) - { - address owner = pizzaToOwner[pizzaId]; - // Disable solium check because of - // https://github.com/duaraghav8/Solium/issues/175 - // solium-disable-next-line operator-whitespace - return (spender == owner || - this.getApproved(pizzaId) == spender || - this.isApprovedForAll(owner, spender)); - } - - // Check if Pizza is unique and doesn't exist yet - modifier isUnique(string memory _name, uint256 _dna) { - bool result = true; - for (uint256 i = 0; i < pizzas.length; i++) { - if ( - keccak256(abi.encodePacked(pizzas[i].name)) == - keccak256(abi.encodePacked(_name)) && - pizzas[i].dna == _dna - ) { - result = false; - } - } - require(result, "Pizza with such name already exists."); - _; - } - - // Returns whether the target address is a contract - function isContract(address account) internal view returns (bool) { - uint256 size; - // Currently there is no better way to check if there is a contract in an address - // than to check the size of the code at that address. - // Consultă https://ethereum.stackexchange.com/a/14016/36603 - // pentru mai multe detalii despre cum funcționează acest lucru. - // DE_FĂCUT Verifică din nou acest lucru înainte de lansarea Serenity, deoarece toate adresele vor fi - // contracte atunci. - // solium-disable-next-line security/no-inline-assembly - assembly { - size := extcodesize(account) - } - return size > 0; - } -} -``` - -## Referințe suplimentare {#further-reading} - -Consultaţi documentația Solidity și Vyper pentru a vedea o prezentare mai completă a contractelor inteligente: - -- [Solidity](https://solidity.readthedocs.io/) -- [Vyper](https://vyper.readthedocs.io/) - -## Subiecte corelate {#related-topics} - -- [Contracte inteligente](/developers/docs/smart-contracts/) -- [Mașina Virtuală Ethereum](/developers/docs/evm/) - -## Tutoriale corelate {#related-tutorials} - -- [Reducerea contractelor pentru a contracara limita de mărime a contractului](/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/) _– Câteva sfaturi practice pentru reducerea dimensiunii contractului dvs. inteligent._ -- [Înregistrarea datelor din contracte inteligente cu evenimente](/developers/tutorials/logging-events-smart-contracts/) _– O introducere despre evenimentele contractelor inteligente și cum le puteţi utiliza pentru a înregistra date._ -- [Interacționaţi cu alte contracte din Solidity](/developers/tutorials/interact-with-other-contracts-from-solidity/) _– Cum să implementaţi un contract inteligent dintr-un contract existent și să interacționaţi cu acesta._ diff --git a/src/content/translations/ro/developers/docs/standards/tokens/erc-20/index.md b/src/content/translations/ro/developers/docs/standards/tokens/erc-20/index.md deleted file mode 100644 index 400bd649896..00000000000 --- a/src/content/translations/ro/developers/docs/standards/tokens/erc-20/index.md +++ /dev/null @@ -1,148 +0,0 @@ ---- -title: Standardul de token ERC-20 -description: -lang: ro ---- - -## Introducere {#introduction} - -**Ce este un token?** - -Tokenurile pot reprezenta practic orice în Ethereum: - -- puncte de reputație într-o platformă online -- abilități ale unui personaj într-un joc -- bilete de loterie -- active financiare cum ar fi o acțiune într-o întreprindere -- o monedă fiat precum USD -- o uncie de aur -- și altele... - -O funcţionalitate atât de puternică a lui Ethereum trebuie gestionată printr-un standard robust, nu? Exact aici își joacă rolul ERC-20! Aceste standarde permit dezvoltatorilor să construiască aplicații pentru tokenuri care sunt interoperabile cu alte produse și servicii. - -**Ce este ERC-20?** - -ERC-20 introduce un standard pentru Tokenurile Fungibile, cu alte cuvinte, acestea au o proprietate care face ca fiecare Token să fie exact la fel (ca tip și valoare) cu alt Token. De exemplu, un token ERC-20 acționează exact ca ETH-ul, însemnând că 1 token este și va fi întotdeauna egal cu toate celelalte tokenuri. - -## Condiții prealabile {#prerequisites} - -- [Conturi](/developers/docs/accounts) -- [Contracte inteligente](/developers/docs/smart-contracts/) -- [Standarde de tokenuri](/developers/docs/standards/tokens/) - -## Conținut {#body} - -ERC-20 (Cerere de comentarii Ethereum 20), propus de Fabian Vogelsteller în noiembrie 2015, este un standard de tokenuri care implementează un API pentru tokenuri în cadrul contractelor inteligente. - -Exemple de funcționalități pe care le oferă ERC-20: - -- transferă tokenuri de la un cont la altul -- obține soldul curent de tokenuri al unui cont -- obține numărul total de tokenuri disponibile în rețea -- aprobă dacă o sumă de tokenuri dintr-un cont poate fi cheltuită de un cont terț - -Dacă un contract inteligent implementează următoarele metode și evenimente, poate fi numit contract de tokenuri ERC-20 și, odată implementat, va avea responsabilitatea de a ţine evidența tokenurilor create pe Ethereum. - -De la [EIP-20](https://eips.ethereum.org/EIPS/eip-20): - -#### Metode {#methods} - -```solidity -function name() public view returns (string) -function symbol() public view returns (string) -function decimals() public view returns (uint8) -function totalSupply() public view returns (uint256) -function balanceOf(address _owner) public view returns (uint256 balance) -function transfer(address _to, uint256 _value) public returns (bool success) -function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) -function approve(address _spender, uint256 _value) public returns (bool success) -function allowance(address _owner, address _spender) public view returns (uint256 remaining) -``` - -#### Evenimente {#events} - -```solidity -event Transfer(address indexed _from, address indexed _to, uint256 _value) -event Approval(address indexed _owner, address indexed _spender, uint256 _value) -``` - -### Exemple {#web3py-example} - -Să vedem cât de important este un standard pentru a ne simplifica lucrurile când inspectăm orice contract de tokenuri ERC-20 pe Ethereum. Avem nevoie doar de Interfața binară cu aplicaţia (ABI) a contractului pentru a crea o interfață pentru orice token ERC-20. După cum puteţi vedea mai jos, vom folosi un ABI simplificat, pentru a facilita înţelegerea exemplului. - -#### Exemplu Web3.py {#web3py-example} - -În primul rând aveţi grijă să instalaţi librăria Python [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation): - -``` -pip install web3 -``` - -```python -from web3 import Web3 - - -w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) - -dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI -weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # Wrapped eter (WETH) - -acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11" # Uniswap V2: DAI 2 - -# Aceasta este o interfață binară simplificată pentru aplicația contractuală (ABI) a unui token Contract ERC-20. -# Va expune doar metodele: balanceOf(address), decimals(), symbol() and totalSupply() -simplified_abi = [ - { - 'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], - 'name': 'balanceOf', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'decimals', - 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'symbol', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'totalSupply', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - } -] - -dai_contract = w3.eth.contract(address=w3.toChecksumAddress(dai_token_addr), abi=simplified_abi) -symbol = dai_contract.functions.symbol().call() -decimals = dai_contract.functions.decimals().call() -totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals -addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals - -# DAI -print("===== %s =====" % symbol) -print("Total Supply:", totalSupply) -print("Addr Balance:", addr_balance) - -weth_contract = w3.eth.contract(address=w3.toChecksumAddress(weth_token_addr), abi=simplified_abi) -symbol = weth_contract.functions.symbol().call() -decimals = weth_contract.functions.decimals().call() -totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals -addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals - -# WETH -print("===== %s =====" % symbol) -print("Total Supply:", totalSupply) -print("Addr Balance:", addr_balance) -``` - -## Referințe suplimentare {#further-reading} - -- [EIP-20: Standard de tokenuri ERC-20](https://eips.ethereum.org/EIPS/eip-20) -- [OpenZeppelin - Tokenuri](https://docs.openzeppelin.com/contracts/3.x/tokens#ERC20) -- [OpenZeppelin - Implementare ERC-20](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) diff --git a/src/content/translations/ro/developers/docs/standards/tokens/erc-721/index.md b/src/content/translations/ro/developers/docs/standards/tokens/erc-721/index.md deleted file mode 100644 index 2c6e00fea18..00000000000 --- a/src/content/translations/ro/developers/docs/standards/tokens/erc-721/index.md +++ /dev/null @@ -1,243 +0,0 @@ ---- -title: Standardul de tokenuri nefungibile ERC-721 -description: -lang: ro ---- - -## Introducere {#introduction} - -**Ce este un token nefungibil?** - -Tokenurile nefungibile (NFT) sunt folosite pentru a identifica ceva sau pe cineva într-un mod unic. Acest tip de token este perfect pentru a fi utilizat pe platforme care oferă articole de colecții, chei de acces, bilete la loterie, locuri numerotate pentru concerte și meciuri sportive etc. Acest tip special de Token are posibilități uimitoare, așa că merită un Standard adecvat, iar ERC-721 a apărut ca soluţie! - -**Ce este ERC-721?** - -ERC-721 introduce un standard pentru NFT-uri, cu alte cuvinte, acest tip de Token este unic și poate avea o valoare diferită de un alt Token din același Contract inteligent, poate din cauza vârstei, a rarității sau chiar din alt motiv, cum ar fi reprezentarea sa vizuală. Ia staţi, vizuală? - -Da! Toate NFT-urile au o variabilă `uint256` numită `tokenId`, astfel încât pentru orice contract ERC-721, perechea `contract address, uint256 tokenId` trebuie să fie unică la nivel global. Acestea fiind spuse, o aplicaţie dApp poate avea un „convertor” care folosește `tokenId` ca date de intrare și produce la ieşire ceva grozav, cum ar fi o imagine cu zombi, arme, abilități sau pisicuțe uimitoare! - -## Condiții prealabile {#prerequisites} - -- [Conturi](/developers/docs/accounts/) -- [Contracte inteligente](/developers/docs/smart-contracts/) -- [Standarde de tokenuri](/developers/docs/standards/tokens/) - -## Conținut {#body} - -ERC-721 (Cerere de comentarii Ethereum), propus de William Entriken, Dieter Shirley, Jacob Evans, Nastassia Sachs în ianuarie 2018, este un Standard de tokenuri nefungibile care implementează un API pentru tokenuri în cadrul Contractelor inteligente. - -Acesta oferă funcționalități cum ar fi transferul de tokenuri dintr-un cont în altul, obținerea soldului actual al tokenurilor unui cont, obținerea proprietarului unui token specific și de asemenea a totalului de tokenuri disponibile în rețea. Pe lângă acestea, are și alte funcționalități, cum ar fi aceea de a aproba ca o cantitate de tokenuri dintr-un cont să poată fi mutată de către un cont terț. - -În cazul în care un Contract inteligent implementează următoarele metode și evenimente, acesta poate fi numit un contract de tokenuri nefungibile ERC-721 și, odată implementat, va avea responsabilitatea de a ține evidența tokenurilor create pe Ethereum. - -De la [EIP-721](https://eips.ethereum.org/EIPS/eip-721): - -#### Metode {#methods} - -```solidity - function balanceOf(address _owner) external view returns (uint256); - function ownerOf(uint256 _tokenId) external view returns (address); - function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; - function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; - function transferFrom(address _from, address _to, uint256 _tokenId) external payable; - function approve(address _approved, uint256 _tokenId) external payable; - function setApprovalForAll(address _operator, bool _approved) external; - function getApproved(uint256 _tokenId) external view returns (address); - function isApprovedForAll(address _owner, address _operator) external view returns (bool); -``` - -#### Evenimente {#events} - -```solidity - event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); - event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); - event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); -``` - -### Exemple {#web3py-example} - -Să vedem cât de important este un standard pentru a ne simplifica lucrurile când inspectăm orice contract de tokenuri ERC-721 pe Ethereum. Avem nevoie doar de interfața binară cu aplicația (ABI) a contractului pentru a crea o interfață pentru orice token ERC-721. După cum puteţi vedea mai jos, vom folosi un ABI simplificat, pentru a facilita înţelegerea exemplului. - -#### Exemplu Web3.py {#web3py-example} - -În primul rând aveţi grijă să instalaţi librăria Python [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation): - -``` -pip install web3 -``` - -```python -from web3 import Web3 -from web3._utils.events import get_event_data - - -w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) - -ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # CryptoKitties Contract - -acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # CryptoKitties Sales Auction - -# This is a simplified Contract Application Binary Interface (ABI) of an ERC-721 NFT Contract. -# Va expune numai metodele: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply() -simplified_abi = [ - { - 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], - 'name': 'balanceOf', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'name', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], - 'name': 'ownerOf', - 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'symbol', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'totalSupply', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, -] - -ck_extra_abi = [ - { - 'inputs': [], - 'name': 'pregnantKitties', - 'outputs': [{'name': '', 'type': 'uint256'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [{'name': '_kittyId', 'type': 'uint256'}], - 'name': 'isPregnant', - 'outputs': [{'name': '', 'type': 'bool'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - } -] - -ck_contract = w3.eth.contract(address=w3.toChecksumAddress(ck_token_addr), abi=simplified_abi+ck_extra_abi) -name = ck_contract.functions.name().call() -symbol = ck_contract.functions.symbol().call() -kitties_auctions = ck_contract.functions.balanceOf(acc_address).call() -print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}") - -pregnant_kitties = ck_contract.functions.pregnantKitties().call() -print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}") - -# Folosind evenimentul ABI „transfer” pentru a obține informații despre „Pisicile” transferate. -tx_event_abi = { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'from', 'type': 'address'}, - {'indexed': False, 'name': 'to', 'type': 'address'}, - {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}], - 'name': 'Transfer', - 'type': 'event' -} - -# We need the event's signature to filter the logs -event_signature = w3.sha3(text="Transfer(address,address,uint256)").hex() - -logs = w3.eth.getLogs({ - "fromBlock": w3.eth.blockNumber - 120, - "address": w3.toChecksumAddress(ck_token_addr), - "topics": [event_signature] -}) - -# Notes: -# - 120 blocks is the max range for CloudFlare Provider -# - If you didn't find any Transfer event you can also try to get a tokenId at: -# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events -# Click to expand the event's logs and copy its "tokenId" argument - -recent_tx = [get_event_data(w3.codec, tx_event_abi, log)["args"] for log in logs] - -kitty_id = recent_tx[0]['tokenId'] # Paste the "tokenId" here from the link above -is_pregnant = ck_contract.functions.isPregnant(kitty_id).call() -print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}") -``` - -Contractul CryptoKitties are câteva Evenimente interesante, altele decât cele standard. - -Să verificăm două dintre ele, `Pregnant` și `Birth`. - -```python -# Utilizarea evenimentelor ABI „Pregnant” și „Birth” pentru a obține informații despre noile pisici. -ck_extra_events_abi = [ - { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'owner', 'type': 'address'}, - {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, - {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, - {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}], - 'name': 'Pregnant', - 'type': 'event' - }, - { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'owner', 'type': 'address'}, - {'indexed': False, 'name': 'kittyId', 'type': 'uint256'}, - {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, - {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, - {'indexed': False, 'name': 'genes', 'type': 'uint256'}], - 'name': 'Birth', - 'type': 'event' - }] - -# We need the event's signature to filter the logs -ck_event_signatures = [ - w3.sha3(text="Pregnant(address,uint256,uint256,uint256)").hex(), - w3.sha3(text="Birth(address,uint256,uint256,uint256,uint256)").hex(), -] - -# Here is a Pregnant Event: -# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog -pregnant_logs = w3.eth.getLogs({ - "fromBlock": w3.eth.blockNumber - 120, - "address": w3.toChecksumAddress(ck_token_addr), - "topics": [ck_event_signatures[0]] -}) - -recent_pregnants = [get_event_data(w3.codec, ck_extra_events_abi[0], log)["args"] for log in pregnant_logs] - -# Here is a Birth Event: -# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a -birth_logs = w3.eth.getLogs({ - "fromBlock": w3.eth.blockNumber - 120, - "address": w3.toChecksumAddress(ck_token_addr), - "topics": [ck_event_signatures[1]] -}) - -recent_births = [get_event_data(w3.codec, ck_extra_events_abi[1], log)["args"] for log in birth_logs] -``` - -## NFT-uri populare {#popular-nfts} - -- [Etherscan NFT Tracker](https://etherscan.io/tokens-nft) listează NFT-urile de top pe Ethereum după volumul transferurilor. -- [CryptoKitties](https://www.cryptokitties.co/) este un joc centrat pe creaturile care pot fi crescute, colecționate și sunt atât de adorabile pe care le numim CryptoKitties. -- [Sorare](https://sorare.com/) este un joc global de fotbal fantezie unde puteţi colecta obiecte de colecţie de ediție limitată, vă puteţi gestiona echipele și puteţi concura pentru a câștiga premii. -- [Serviciul de nume Ethereum (ENS)](https://ens.domains/) oferă o modalitate securizată & și descentralizată de a aborda resursele, atât în ​​cadrul blockchain-ului, cât și în afara acestuia, folosind nume simple, care pot fi citite de oameni. -- [Unstoppable Domains](https://unstoppabledomains.com/) este o companie din San Francisco care construiește domenii pe blockchain-uri. Domeniile blockchain înlocuiesc adresele criptomonedei cu nume care pot fi citite de oameni și pot fi folosite pentru activarea de site-uri web rezistente la cenzură. -- [Gods Unchained Cards](https://godsunchained.com/) este un TCG (joc de cărți de tranzacționare) pe blockchain-ul Ethereum care folosește NFT-uri pentru a aduce proprietate reală activelor din joc. -- [Bored Ape Yacht Club](https://boredapeyachtclub.com) este o colecție de 10.000 de NFT-uri unice, care, în afară de a fi o piesă artistică cu adevărat rară, funcționează ca token de membru al clubului, oferind membrilor avantaje și beneficii care cresc în timp, ca rezultat al eforturilor comunității. - -## Referințe suplimentare {#further-reading} - -- [EIP-721: Standardul de tokenuri nefungibile ERC-721](https://eips.ethereum.org/EIPS/eip-721) -- [OpenZeppelin - Documentație ERC-721](https://docs.openzeppelin.com/contracts/3.x/erc721) -- [OpenZeppelin - Implementare ERC-721](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) -- [Alchemy NFT API](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) diff --git a/src/content/translations/ro/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md b/src/content/translations/ro/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md deleted file mode 100644 index 9cd06955a94..00000000000 --- a/src/content/translations/ro/developers/tutorials/how-to-use-tellor-as-your-oracle/index.md +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: Cum să configurați Tellor ca oracol personal -description: Un ghid pentru a începe integrarea oracolului Tellor în protocolul dvs. -author: "Tellor" -lang: ro -tags: - - "solidity" - - "contracte inteligente" - - "fluxuri de prețuri" - - "oracole" -skill: beginner -published: 2021-06-29 -source: Documentație Tellor -sourceUrl: https://docs.tellor.io/tellor/ ---- - -Pop Quiz: Your protocol is just about finished, but it needs an oracle to get access to off chain data...What do you do? - -## (Soft) Condiții prealabile {#soft-prerequisites} - -Această postare își propune să faciliteze și să simplifice pe cât posibil accesarea unui flux de oracol. Acestea fiind spuse, vom presupune următoarele despre nivelul dvs. de cunoștințe de programare pentru a ne putea axa pe partea de oracol. - -Ipoteze: - -- știți să navigați într-un terminal -- aveți npm instalat -- știți cum să folosiți npm pentru a gestiona dependențele - -Tellor este un Oracol live și open-source gata de implementare. Acest ghid pentru începători are rolul de a prezenta cât este de ușor să puneți în funcțiune Tellor, oferind astfel proiectului dvs. un oracol complet descentralizat și rezistent la cenzură. - -## Prezentare generală {#overview} - -Tellor is an oracle system where parties can request the value of an off-chain data point (e.g. BTC/USD) and reporters compete to add this value to an on-chain data-bank, accessible by all Ethereum smart contracts. The inputs to this data-bank are secured by a network of staked reporters. Tellor utilizes crypto-economic incentive mechanisms, rewarding honest data submissions by reporters and punishing bad actors through the issuance of Tellor’s token, Tributes (TRB) and a dispute mechanism. - -În acest tutorial vom trece în revistă: - -- Configurarea unui set inițial de instrumente necesare pentru punerea în funcțiune. -- Consultarea unui exemplu simplu. -- Consultarea unei liste de adrese testnet ale rețelelor pe care puteți actualmente testa Tellor. - -## FolosireaTellor {#usingtellor} - -Primul lucru pe care îl aveți de făcut este să instalați instrumentele de bază necesare pentru a utiliza Tellor ca oracol. Use [this package](https://github.com/tellor-io/usingtellor) to install the Tellor User Contracts: - -`npm install usingtellor` - -Odată instalat, acesta va permite contractelor dvs. să moștenească funcții din contractul „UsingTellor”. - -Super! Now that you've got the tools ready, let's go through a simple exercise where we retrieve the bitcoin price: - -### Exemplu BTC/USD {#btcusd-example} - -Moșteniți contractul „UsingTellor”, trecând adresa Tellor ca argument pentru constructor: - -Iată un exemplu: - -```solidity -import "usingtellor/contracts/UsingTellor.sol"; - -contract BtcPriceContract is UsingTellor { - - //This Contract now has access to all functions in UsingTellor - - bytes btcPrice; - bytes32 btcQueryId = 0x0000000000000000000000000000000000000000000000000000000000000002; - - constructor(address payable _tellorAddress) UsingTellor(_tellorAddress) public {} - - function setBtcPrice() public { - bool _didGet; - uint256 _timestamp; - - (_didGet, btcPrice, _timestamp) = getCurrentValue(btcQueryId); - } -} -``` - -**Want to try a different data feed? Check out the list of supported data feeds here: [Current Data Feeds](https://docs.tellor.io/tellor/integration/data-feed-ids)** - -## Addresses: {#addresses} - -Mainnet: [`0x88df592f8eb5d7bd38bfef7deb0fbc02cf3778a0`](https://etherscan.io/address/0x88df592f8eb5d7bd38bfef7deb0fbc02cf3778a0#code) - -#### Looking to do some testing first? See the list below for our active testnet addresses: {#looking-to-do-some-testing-first-see-the-list-below-for-our-active-testnet-addresses} - -Rinkeby: [`0x88df592f8eb5d7bd38bfef7deb0fbc02cf3778a0`](https://rinkeby.etherscan.io/address/0x88df592f8eb5d7bd38bfef7deb0fbc02cf3778a0#code) - -Kovan: [`0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7`](https://kovan.etherscan.io/address/0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7#code) - -Ropsten: [`0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7`](https://ropsten.etherscan.io/address/0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7#code) - -Goerli: [`0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7`](https://goerli.etherscan.io/address/0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7#code) - -BSC Testnet: [`0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7`](https://testnet.bscscan.com/address/0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7#code) - -Polygon Mumbai Testnet: [`0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7`](https://mumbai.polygonscan.com/address/0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7/contracts#code) - -Arbitrum Testnet: [`0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7`](https://rinkeby-explorer.arbitrum.io/address/0x3477EB82263dabb59AC0CAcE47a61292f28A2eA7) - -#### Pentru o implementare mai robustă a oracolului Tellor, consultați lista completă de funcții disponibile [aici.](https://github.com/tellor-io/usingtellor/blob/master/README.md) {#for-a-more-robust-implementation-of-the-tellor-oracle-check-out-the-full-list-of-available-functions-here} diff --git a/src/content/translations/ro/developers/tutorials/how-to-view-nft-in-metamask/index.md b/src/content/translations/ro/developers/tutorials/how-to-view-nft-in-metamask/index.md deleted file mode 100644 index 7c3a839fe4f..00000000000 --- a/src/content/translations/ro/developers/tutorials/how-to-view-nft-in-metamask/index.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: Cum să vă vizualizați NFT-ul în portofel (Partea 3/3 din seria de tutoriale NFT) -description: Tutorialul acesta descrie cum se poate vizualiza un NFT existent pe MetaMask! -author: "Sumi Mudgil" -tags: - - "NFT-uri" - - "ERC-721" - - "Alchemy" - - "tokenuri nefungibile" - - "Solidity" -skill: beginner -lang: ro -published: 2021-04-22 ---- - -Acest tutorial este Partea 3 din seria de trei părți a tutorialului despre NFT-uri în care vom vizualiza NFT-ul nostru proaspăt emis. Totodată, puteți utiliza tutorialul general pentru orice token ERC-721 folosind MetaMask, inclusiv pe Mainnet sau pe orice testnet. Dacă doriți să învățați cum să vă emiteţi propriul NFT pe Ethereum, ar trebui să consultați [Partea 1 despre Cum să scrieți & să implementați un contract inteligent NFT](/developers/tutorials/how-to-write-and-deploy-an-nft)! - -Felicitări! Ați ajuns la cea mai scurtă și mai simplă parte a seriei noastre de tutoriale despre NFT -uri — cum să vizualizați NFT-ul proaspăt emis într-un portofel virtual. Vom folosi de asemenea MetaMask pentru acest exemplu, deoarece l-am folosit în cele două părți anterioare. - -Ca şi condiţie prealabilă, ar trebui să aveți deja instalat MetaMask pe mobil, care să includă și contul în care v-ați emis NFT-ul — puteți obține aplicația gratuit pe [iOS](https://apps.apple.com/us/app/metamask-blockchain-wallet/id1438144202) sau [Android](https://play.google.com/store/apps/details?id=io.metamask&hl=en_US&gl=US). - -## Etapa 1: Configurați rețeaua pe Ropsten {#set-network-to-ropsten} - -În partea superioară a aplicației, apăsați butonul „Wallet” („Portofel”), după care vi se va cere să selectați o rețea. Deoarece NFT-ul nostru a fost emis în rețeaua Ropsten, va trebui să selectați Ropsten ca rețea. - -![Cum să setați Ropsten ca rețeaua dvs. pe MetaMask Mobile](./ropstenMetamask.gif) - -## Etapa 2: Adăugarea obiectului de colecție la MetaMask {#add-nft-to-metamask} - -Odată ce vă aflați în rețeaua Ropsten, selectați fila „Collectibles” („Obiecte de colecție”) din dreapta și adăugați adresa contractului inteligent NFT și ID-ul jetonului ERC-721 al NFT-ului dvs. — pe care ar trebui să le găsiți pe Etherscan pe baza hash-ului tranzacției din NFT-ul dvs. implementat în Partea 2 a tutorialului nostru. - -![Cum să găsiţi hash-ul tranzacției și ID-ul tokenului ERC-721](./findNFTEtherscan.png) - -Ar putea fi necesar să reîncărcaţi de câteva ori pentru a vă vedea NFT-ul — dar va fi acolo ! - -![Cum să vă încărcați NFT-ul pe MetaMask](./findNFTMetamask.gif) - -Felicitări! Ați emis cu succes un NFT și acum îl puteți vizualiza! Așteptăm cu nerăbdare să vedem cum luaţi cu asalt lumea NFT-urilor! diff --git a/src/content/translations/ro/developers/tutorials/how-to-write-and-deploy-an-nft/index.md b/src/content/translations/ro/developers/tutorials/how-to-write-and-deploy-an-nft/index.md deleted file mode 100644 index 12c8ef65e55..00000000000 --- a/src/content/translations/ro/developers/tutorials/how-to-write-and-deploy-an-nft/index.md +++ /dev/null @@ -1,349 +0,0 @@ ---- -title: Cum să scrieți și să implementați un NFT (Partea 1/3 din seria de tutoriale NFT) -description: Acesta este primul tutorial al unei serii despre NFT-uri care vă va arăta pas cu pas cum să scrieți și să implementați un contract inteligent de token nefungibil (token ERC-721) folosind Ethereum și Inter Planetary File System (IPFS). -author: "Sumi Mudgil" -tags: - - "NFT-uri" - - "ERC-721" - - "Alchemy" - - "Solidity" - - "contractele inteligente" -skill: beginner -lang: ro -published: 2021-04-22 ---- - -Având în vedere că NFT-urile aduc blockchain-ul în atenția publicului, acum aveți o ocazie excelentă de a trăi acest entuziasm, prin publicarea propriul NFT (tokenul ERC-721) pe blockchain-ul Ethereum! - -Alchemy se mândreşte mult că susține cele mai mari nume din spațiul NFT, printre care Makersplace (a atins recent un record de vânzare de opere de artă digitală la Christie's pentru 69 de milioane de dolari), Dapper Labs (creatorii NBA Top Shot & Crypto Kitties), OpenSea (cea mai mare piață de NFT -uri din lume), Zora, Super Rare, NFTfi, Foundation, Enjin, Origin Protocol, Immutable și multe altele. - -În acest tutorial vă vom îndruma pentru crearea și implementarea unui contract inteligent ERC-721 pe rețeaua de testare Ropsten folosind [MetaMask](https://metamask.io/), [Solidity](https://docs.soliditylang.org/en/v0.8.0/), [Hardhat](https://hardhat.org/), [Pinata](https://pinata.cloud/) și [Alchemy](https://dashboard.alchemyapi.io/signup) (nu vă faceți griji dacă nu înțelegeți încă ce înseamnă toate acestea — vă vom explica!). - -În Partea 2 a acestui tutorial vom examina cum putem utiliza contractul nostru inteligent pentru a emite un NFT, iar în Partea 3, vom explica în ce mod putem vizualiza NFT-ul pe MetaMask. - -Desigur, dacă aveți oricând întrebări, nu ezitați să ne contactați pe [Alchemy Discord](https://discord.gg/gWuC7zB)! - -## Etapa 1: Conectarea la rețeaua Ethereum {#connect-to-ethereum} - -Sunt o mulțime de modalități de a face cereri către blockchain-ul Ethereum, dar pentru a simplifica lucrurile vom folosi un cont gratuit pe [Alchemy](https://dashboard.alchemyapi.io/signup), o platformă de dezvoltare blockchain și un API care ne permite să comunicăm cu lanțul Ethereum fără a fi necesar să ne rulăm propriile noduri. - -În acest tutorial vom profita şi de instrumentele de dezvoltare Alchemy pentru monitorizare și analiză și pentru a înțelege ce se întâmplă în culise în timpul implementării contractului nostru inteligent. Dacă nu aveți deja un cont Alchemy, vă puteți înregistra gratuit [aici](https://dashboard.alchemyapi.io/signup). - -## Etapa 2: Crearea aplicației (și a cheii API) {#make-api-key} - -Odată ce v-ați creat un cont Alchemy, puteți să generați o cheie API creând o aplicație. Aceasta ne va permite să facem solicitări către rețeaua de testare Ropsten. Consultați [acest ghid](https://docs.alchemyapi.io/guides/choosing-a-network) dacă sunteți curios să aflați mai multe despre rețelele de testare. - -1. Navigați la pagina „Create App” (Creați o aplicație) din tabloul de bord Alchemy, trecând peste „Apps” (Aplicații) din bara de navigare și dați clic pe „Create App” (Creați o aplicație) - -![Creaţi-vă propria aplicație](./create-your-app.png) - -2. Numiți-vă aplicația „My First NFT!”, dați-i o scurtă descriere, selectați „Staging” pentru Mediu (folosit pentru contabilizarea aplicației) și alegeți „Ropsten” pentru rețea. - -![Configurați-vă și publicați-vă aplicația](./configure-and-publish-your-app.png) - -3. Dați clic pe „Create app” (Creați aplicația) și asta e tot! Aplicația dvs. ar trebui să apară în tabelul de mai jos. - -## Etapa 3: Crearea unui cont Ethereum (adresă) {#create-eth-address} - -Avem nevoie de un cont Ethereum pentru a trimite și primi tranzacții. În acest tutorial vom folosi un portofel virtual în browser, MetaMask, pentru a gestiona adresa contului Ethereum. Dacă doriți să înțelegeți mai multe despre cum funcționează tranzacțiile pe Ethereum, consultaţi [această pagină](/developers/docs/transactions/) de la fundația Ethereum. - -Puteți descărca și crea un cont MetaMask pe gratis [aici](https://metamask.io/download.html). Atunci când vă creați un cont sau dacă aveți deja unul, aveţi grijă să comutaţi pe „Ropsten Test Network” („Rețeaua de testare Ropsten”) în dreapta sus (pentru a nu avea de-a face cu bani reali). - -![Setați Ropsten ca rețeaua dvs.](./metamask-ropsten.png) - -## Etapa 4: Adăugarea de ether de la un faucet {#step-4-add-ether-from-a-faucet} - -Pentru implementarea contractului nostru inteligent în rețeaua de testare, vom avea nevoie de niște ETH fals. Pentru a-l obține, mergeți la [faucetul Ropsten](https://faucet.ropsten.be/), introduceți-vă adresa contului, apoi dați click pe „Trimiteți ETH Ropsten.” În scurt timp ar trebui să vă vedeți ETH-ul în contul dvs. MetaMask! - -## Etapa 5: Verificarea soldului {#check-balance} - -Pentru a ne verifica soldul de două ori, să facem o solicitare [eth_getBalance](https://docs.alchemyapi.io/alchemy/documentation/alchemy-api-reference/json-rpc#eth_getbalance) folosind [instrumentul compozitor al Alchemy](https://composer.alchemyapi.io?composer_state=%7B%22network%22%3A0%2C%22methodName%22%3A%22eth_getBalance%22%2C%22paramValues%22%3A%5B%22%22%2C%22latest%22%5D%7D). Aceasta va returna suma de ETH în portofelul nostru. După introducerea adresei contului MetaMask și după ce ați dat click pe „Send Request” („Trimiteți solicitarea”), ar trebui să vedeți un răspuns ca acesta: - - `{"jsonrpc": "2.0", "id": 0, "result": "0xde0b6b3a7640000"}` - -**OBSERVAŢIE:** Rezultatul este în wei, nu în ETH. Wei este folosit ca cea mai mică denominație de ether. Conversia din wei în ETH este: 1 eth = 1018 wei. Deci, convertind 0xde0b6b3a7640000 în zecimal, obținem 1\*1018 wei, ceea ce înseamnă 1 ETH. - -Pfiu! Banii noștri falși sunt toți acolo. - -## Etapa 6: Inițializarea proiectului {#initialize-project} - -Mai întâi va trebui să creem un dosar pentru proiectul nostru. Navigați la linia de comandă și tastați: - - mkdir my-nft - cd my-nft - -Odată ce suntem în dosarul proiectului nostru, vom folosi npm init pentru a inițializa proiectul. Dacă nu aveți deja instalat „npm”, urmați [aceste instrucțiuni](https://docs.alchemyapi.io/alchemy/guides/alchemy-for-macs#1-install-nodejs-and-npm) (vom avea nevoie și de [Node.js](https://nodejs.org/en/download/), așadar descărcați-l și pe acela!). - - npm init - -Nu este prea important cum răspundeți la întrebările de instalare; iată cum am făcut-o noi, ca referință: - - package name: (my-nft) - version: (1.0.0) - description: My first NFT! - entry point: (index.js) - test command: - git repository: - keywords: - author: - license: (ISC) - About to write to /Users/thesuperb1/Desktop/my-nft/package.json: - - { - "name": "my-nft", - "version": "1.0.0", - "description": "My first NFT!", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "author": "", - "license": "ISC" - } - -Aprobați package.json și suntem gata să începem! - -## Etapa 7: Instalarea [Hardhat](https://hardhat.org/getting-started/#overview) {#install-hardhat} - -Hardhat este un mediu de dezvoltare pentru compilarea, implementarea, testarea și depanarea de software Ethereum. Acesta ajută dezvoltatorii la construirea de contracte inteligente și aplicații dapp la nivel local, înainte de a le implementa în lanțul real. - -În cadrul proiectului nostru my-nft, rulați: - - npm install --save-dev hardhat - -Consultați această pagină pentru mai multe [informații de instalare](https://hardhat.org/getting-started/#overview). - -## Etapa 8: Crearea proiectului Hardhat {#create-hardhat-project} - -În dosarul proiectului nostru, executați: - - npx hardhat - -În acel moment ar trebui să vedeți un mesaj de bun venit și opțiunea de a selecționa ceea ce doriți să faceți. Selectați „create an empty hardhat.config.js” („creați un hardhat.config.js gol”): - - 888 888 888 888 888 - 888 888 888 888 888 - 888 888 888 888 888 - 8888888888 8888b. 888d888 .d88888 88888b. 8888b. 888888 - 888 888 "88b 888P" d88" 888 888 "88b "88b 888 - 888 888 .d888888 888 888 888 888 888 .d888888 888 - 888 888 888 888 888 Y88b 888 888 888 888 888 Y88b. - 888 888 "Y888888 888 "Y88888 888 888 "Y888888 "Y888 - 👷 Welcome to Hardhat v2.0.11 👷‍ - ? What do you want to do? … - Create a sample project - ❯ Create an empty hardhat.config.js - Quit - -Aceasta ne va genera un fișier hardhat.config.js, în care vom specifica toate setările proiectului nostru (în etapa 13). - -## Etapa 9: Adăugarea dosarelor proiectului {#add-project-folders} - -Pentru ne menţine proiectul organizat, vom crea două dosare noi. Mergeți în directorul rădăcină al proiectului dvs. și tastaţi în linia de comandă: - - mkdir contracts - mkdir scripts - -- contracts/ este locul în care vom păstra codul contractului nostru inteligent NFT - -- scripts/ este locul unde vom păstra scripturile pentru implementarea și interacțiunea cu contractul nostru inteligent - -## Etapa 10: Scrierea contractului nostru {#write-contract} - -Acum, că mediul nostru este configurat, să trecem la lucruri mai entuziasmante: _scrierea codului contractului nostru inteligent!_ - -Deschideți proiectul „my-nft” în editorul dvs. preferat (noi preferăm [VSCode](https://code.visualstudio.com/)). Contractele inteligente sunt scrise într-un limbaj numit Solidity, pe care îl vom folosi pentru a scrie contractul nostru inteligent „MyNFT.sol”. - -1. Navigați în dosarul `contracts` și creați un nou fișier numit „MyNFT.sol” - -2. Mai jos este codul contractului nostru inteligent NFT, cod pentru care ne-am bazat pe implementarea ERC-721 a bibliotecii [OpenZeppelin](https://docs.openzeppelin.com/contracts/3.x/erc721). Copiați și inseraţi conținutul de mai jos în fișierul MyNFT.sol. - - ```solidity - //Contract based on [https://docs.openzeppelin.com/contracts/3.x/erc721](https://docs.openzeppelin.com/contracts/3.x/erc721) - // SPDX-License-Identifier: MIT - pragma solidity ^0.8.0; - - import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; - import "@openzeppelin/contracts/utils/Counters.sol"; - import "@openzeppelin/contracts/access/Ownable.sol"; - import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol"; - - contract MyNFT is ERC721URIStorage, Ownable { - using Counters for Counters.Counter; - Counters.Counter private _tokenIds; - - constructor() public ERC721("MyNFT", "NFT") {} - - function mintNFT(address recipient, string memory tokenURI) - public onlyOwner - returns (uint256) - { - _tokenIds.increment(); - - uint256 newItemId = _tokenIds.current(); - _mint(recipient, newItemId); - _setTokenURI(newItemId, tokenURI); - - return newItemId; - } - } - ``` - -3. Deoarece moștenim clase din biblioteca de contracte OpenZeppelin, rulaţi în linia de comandă `npm install @openzeppelin/contractscontracte` pentru a instala biblioteca în folderul nostru. - -Deci ce _face_ acest cod mai exact? Să îl analizăm, linie cu linie. - -La începutul contractului nostru inteligent, importăm trei clase de contracte inteligente [OpenZeppelin](https://openzeppelin.com/): - -- @openzeppelin/contracts/token/ERC721/ERC721.sol conține implementarea standardului ERC-721, pe care îl va moşteni contractul nostru inteligent NFT. (Pentru a fi un NFT valid, contractul inteligent trebuie să implementeze toate metodele standardului ERC-721). Pentru a afla mai multe despre funcțiile ERC-721 moștenite, consultați definiția interfeței [aici](https://eips.ethereum.org/EIPS/eip-721). - -- @openzeppelin/contracts/utils/Counters.sol oferă contoare care pot fi incrementate sau decrementate doar cu unu. Contractul nostru inteligent utilizează acest contor pentru a ține evidența numărului total de NFT-uri emise și pentru a seta ID-ul unic pe noul nostru NFT. (Fiecărui NFT emis cu ajutorul unui contract inteligent trebuie să i se atribuie un ID unic—aici ID-ul nostru unic este doar determinat de numărul total de NFT-uri existente. De exemplu, primul NFT pe care îl emitem cu contractul nostru inteligent are un ID de „1”, al doilea NFT are un ID de „2” etc.) - -- @openzeppelin/contracts/access/Ownable.sol stabilește [controlul accesului](https://docs.openzeppelin.com/contracts/3.x/access-control) la contractul nostru inteligent, pentru ca numai proprietarul contractului inteligent (dvs.) să poată emite NFT-uri. (Observaţie: includerea controlului accesului este doar o preferință. Dacă preferați ca oricine să poată emite un NFT folosind contractul dvs. inteligent, eliminați cuvântul „Ownable” de la linia 10 și „onlyOwner„ de la linia 17.) - -După declarațiile de import, avem contractul nostru inteligent NFT personalizat, surprinzător de scurt — conține doar un contor, un constructor și o singură funcție! Aceasta datorită contractelor noastre moștenite din OpenZeppelin, care implementează majoritatea metodelor de care avem nevoie pentru a crea un NFT, cum ar fi `ownerOf`, care răspunde cine este proprietarul NFT-ului, și `transferFrom`, care transferă proprietatea NFT-ului de la un cont la altul. - -În constructorul nostru ERC-721, veți vedea că trecem două șiruri de caractere, „MyNFT” și „NFT.” Prima variabilă este numele contractului inteligent, iar cea de-a doua este simbolul acestuia. Puteți să numiți fiecare dintre aceste variabile cum doriți! - -În cele din urmă, avem funcția noastră `mintNFT(address recipient, string memory uri)` care ne permite să emitem un NFT! Veți observa că această funcție primește două variabile: - -- `adresa destinatarului` specifică adresa care va primi NFT-ul proaspăt emis - -- `string memory tokenURI` este un șir de caractere care ar trebui să rezolve la un document JSON care descrie metadatele NFT-ului. Metadatele unui NFT sunt într-adevăr ceea ce îi dă viață, permițându-i să aibă proprietăți configurabile, cum ar fi un nume, o descriere, o imagine și alte atribute. În partea a 2-a a acestui tutorial vom descrie cum să configurăm aceste metadate. - -`mintNFT` apelează câteva metode din biblioteca ERC-721 moștenită și, în cele din urmă, răspunde printr-un număr care reprezintă ID-ul NFT-ului proaspăt emis. - -## Etapa 11: Conectarea MetaMask & Alchemy la proiect {#connect-metamask-and-alchemy} - -Acum, că am creat un portofel MetaMask, un cont Alchemy și am scris contractul nostru inteligent, este timpul să le conectăm pe cele trei. - -Pentru fiecare tranzacție trimisă din portofelul dvs. virtual este necesară o semnătură cu ajutorul cheii private unice. Pentru a oferi programului nostru această permisiune, putem stoca în siguranță cheia noastră privată (și cheia API Alchemy) într-un fișier de mediu. - -Dacă doriți să aflați mai multe despre trimiterea de tranzacții, consultați [acest tutorial](/developers/tutorials/sending-transactions-using-web3-and-alchemy/) despre trimiterea de tranzacții utilizând Web3. - -Mai întâi instalați pachetul „dotenv” în dosarul proiectului dumneavoastră: - - npm install dotenv --save - -Apoi creați un fișier „.env” în directorul rădăcină al proiectului nostru și adăugați-vă cheia privată MetaMask și URL-ul HTTP al API-ului Alchemy în acesta. - -- Urmați [aceste instrucțiuni](https://metamask.zendesk.com/hc/en-us/articles/360015289632-How-to-Export-an-Account-Private-Key) pentru a exporta cheia dvs. privată din MetaMask - -- Vedeți mai jos cum să obţineţi URL-ul HTTP Alchemy API și copiați-l pe clipboard - -![Copiați URL-ul API-ului Alchemy](./copy-alchemy-api-url.gif) - -Fișierul dvs. „.env” ar trebui să arate acum așa: - - API_URL="https://eth-ropsten.alchemyapi.io/v2/your-api-key" - PRIVATE_KEY="your-metamask-private-key" - -Pentru a le conecta cu adevărat la codul nostru, vom face referire la aceste variabile în fișierul nostru hardhat.config.js în etapa 13. - -## Etapa 12: Instalarea Ethers.js {#install-ethers} - -„Ethers.js” este o bibliotecă ce facilitează interacțiunea cu Ethereum și solicitările către acesta, învelind („wrapping”) [metodele JSON-RPC standard](/developers/docs/apis/json-rpc/) cu metode mai ușor de utilizat. - -Hardhat simplifică foarte mult integrarea de [Plugin-uri](https://hardhat.org/plugins/) pentru instrumente suplimentare și funcționalități extinse. Vom profita de [plugin-ul Ethers](https://hardhat.org/plugins/nomiclabs-hardhat-ethers.html) pentru a implementa contractul ([Ethers.js](https://github.com/ethers-io/ethers.js/) are niște metode foarte simple de implementare a contractelor). - -În directorul de proiect, tastați: - - npm install --save-dev @nomiclabs/hardhat-ethers ethers@^5.0.0 - -De asemenea, vom solicita ether în fișierul nostru hardhat.config.js în etapa următoare. - -## Etapa 13: Actualizarea hardhat.config.js {#update-hardhat-config} - -Până acum am adăugat mai multe dependențe și plugin-uri, acum trebuie să actualizăm hardhat.config.js pentru ca proiectul nostru să știe despre toate acestea. - -Actualizați hardhat.config.js pentru a arăta astfel: - - /** - * @type import('hardhat/config').HardhatUserConfig - */ - require('dotenv').config(); - require("@nomiclabs/hardhat-ethers"); - const { API_URL, PRIVATE_KEY } = process.env; - module.exports = { - solidity: "0.8.0", - defaultNetwork: "ropsten", - networks: { - hardhat: {}, - ropsten: { - url: API_URL, - accounts: [`0x${PRIVATE_KEY}`] - } - }, - } - -## Etapa 14: Compilarea contractului nostru {#compile-contract} - -Pentru a fi siguri că totul funcționează până acum, să compilăm contractul nostru. Funcția „compile” este una dintre sarcinile încorporate în „hardhat”. - -Din linia de comandă, rulați: - - npx hardhat compile - -Dacă primiți un mesaj cu privire la indicatorul de licență SPDX care nu este furnizat în fișierul sursă, nu trebuie să vă îngrijorați — sperăm că tot restul arată bine! Dacă nu, puteți oricând să trimiteți un mesaj pe canalul [Discord Alchemy](https://discord.gg/u72VCg3). - -## Etapa 15: Scrierea scriptului nostru de implementare {#write-deploy} - -Odată ce avem contractul nostru scris și fișierul de configurare gata, putem să scriem scriptul de implementare al contractului. - -Navigați în dosarul `scripts/` și creați un nou fișier numit `deploy.js`, adăugându-i următorul conținut: - -```js -async function main() { - const MyNFT = await ethers.getContractFactory("MyNFT") - - // Start deployment, returning a promise that resolves to a contract object - const myNFT = await MyNFT.deploy() - await myNFT.deployed() - console.log("Contract deployed to address:", myNFT.address) -} - -main() - .then(() => process.exit(0)) - .catch((error) => { - console.error(error) - process.exit(1) - }) -``` - -[Tutorialul despre contracte](https://hardhat.org/tutorial/testing-contracts.html#writing-tests) al Hardhat explică foarte bine ce face fiecare dintre aceste linii de cod, iar noi am adoptat explicațiile acestuia aici. - - const MyNFT = await ethers.getContractFactory("MyNFT"); - -Un ContractFactory este o abstracție utilizată în „ethers.js” pentru a implementa noi contracte inteligente, deci „MyNTF” aici este o fabrică pentru instanțele contractului nostru NFT. Când utilizați plugin-ul „hardhat-ethers”, instanțele ContractFactory și Contract sunt conectate în mod implicit la primul semnatar. - - const myNFT = await MyNFT.deploy(); - -Apelarea „deploy()” pe un „ContractFactory” va începe implementarea și va răspunde printr-un „Promise” care va rezolva pe un „Contract”. Acesta este obiectul care are o metodă pentru fiecare dintre funcțiile noastre de contract inteligent. - -## Etapa 16: Implementarea contractului nostru {#deploy-contract} - -În sfârșit, suntem gata să implementăm contractul nostru inteligent! Navigați înapoi la rădăcina directorului proiectului dvs. și rulaţi în linia de comandă: - - npx hardhat --network ropsten run scripts/deploy.js - -Ar trebui să vedeți ceva de genul: - - Contract deployed to address: 0x81c587EB0fE773404c42c1d2666b5f557C470eED - -Dacă mergem pe [„Ropsten etherscan”](https://ropsten.etherscan.io/) și căutăm adresa contractului nostru, ar trebui să vedem că acesta a fost implementat cu succes. Tranzacția va arăta cam așa: - -![Vizualizați adresa tranzacției dvs. pe Etherscan](./etherscan-transaction.png) - -Adresa „From” (De la) ar trebui să corespundă cu adresa contului MetaMask, iar adresa „To” (Către) va preciza „Contract Creation” (Crearea contractului). Dacă facem clic pe tranzacție, vom vedea adresa contractului nostru în câmpul „To”: - -![Vizualizați adresa contractului dvs. pe Etherscan](./etherscan-contract.png) - -Yasssss! Tocmai v-ați implementat contractul inteligent NFT în lanțul Ethereum! - -Pentru a înțelege ce se întâmplă în culise, să navigăm la fila Explorer din [tabloul de bord Alchemy](https://dashboard.alchemyapi.io/explorer). Dacă aveți mai multe aplicații Alchimy, asigurați-vă că filtrați după aplicație și selectați „MyNFT”. - -![Vizualizați apelurile efectuate „în culise” cu Tabloul de bord al exploratorului Alchemy](./alchemy-explorer.png) - -Aici veți vedea o serie de apeluri JSON-RPC pe care Hardhat/Ethers le-a făcut în culise pentru noi atunci când am apelat funcția .deploy(). Este important de menţionat două dintre acestea aici: [eth_sendRawTransaction](/developers/docs/apis/json-rpc/#eth_sendrawtransaction), care este solicitarea de a scrie efectiv contractul nostru în lanțul Ropsten, și [eth_getTransactionByHash](/developers/docs/apis/json-rpc/#eth_gettransactionbyhash), care este o solicitare de a citi informații despre tranzacția noastră având în vedere hash-ul (un model tipic în cazul tranzacțiilor). Dacă doriți să aflați mai multe despre trimiterea de tranzacții, consultați acest tutorial despre [trimiterea de tranzacții utilizând Web3](/developers/tutorials/sending-transactions-using-web3-and-alchemy/). - -Asta e tot pentru partea 1 a acestui tutorial. În [Partea a 2-a vom interacționa efectiv cu contractul nostru inteligent prin emiterea unui NFT](/developers/tutorials/how-to-mint-an-nft/), iar în [Partea a 3-a vă vom arăta cum să vă vizualizați NFT-ul în portofelul Ethereum](/developers/tutorials/how-to-view-nft-in-metamask/)! diff --git a/src/content/translations/ro/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md b/src/content/translations/ro/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md deleted file mode 100644 index 0e22c11a29c..00000000000 --- a/src/content/translations/ro/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md +++ /dev/null @@ -1,298 +0,0 @@ ---- -title: "Waffle: Simularea dinamică și testarea apelurilor de contracte" -description: Tutorial Waffle avansat de folosire a simulării dinamice și testarea apelurilor de contracte -author: "Daniel Izdebski" -tags: - - "waffle" - - "contracte inteligente" - - "solidity" - - "testare" - - "simulare" -skill: intermediate -lang: ro -published: 2020-11-14 ---- - -## Care este obiectul acestui tutorial? {#what-is-this-tutorial-about} - -În acest tutorial veți învăța: - -- cum să utilizați simularea dinamică -- cum să testați interacțiunile dintre contractele inteligente - -Ipoteze: - -- știți deja cum să scrieți un contract inteligent simplu în `Solidity` -- știți cum să utilizați `JavaScript` și `TypeScript` -- ați parcurs alte tutoriale `Waffle` sau știți câte ceva despre acesta - -## Simulare dinamică {#dynamic-mocking} - -De ce este utilă simularea dinamică? Ei bine, ne permite să scriem teste unitare în loc de teste de integrare. Ce înseamnă aceasta? Înseamnă că nu trebuie să ne preocupăm de dependențele dintre contractele inteligente, astfel că le putem testa pe fiecare separat de celelalte. Permiteți-mi să vă arăt cum anume puteți face acest lucru. - -### **1. Proiect** {#1-project} - -Înainte de a începe, trebuie să pregătim un proiect simplu node.js: - -```bash -$ mkdir dynamic-mocking -$ cd dynamic-mocking -$ mkdir contracts src - -$ yarn init -# sau dacă utilizezi npm -$ npm init -``` - -Să începem adăugând typescript și testând dependențele - mocha & chai: - -```bash -$ yarn add --dev @types/chai @types/mocha chai mocha ts-node typescript -# sau dacă utilizezi npm -$ npm install @types/chai @types/mocha chai mocha ts-node typescript --save-dev -``` - -Acum să adăugăm `Waffle` și `ether`-ul: - -```bash -$ yarn add --dev ethereum-waffle ethers -# sau dacă utilizezi npm -$ npm install ethereum-waffle ethers --save-dev -``` - -Acum structura proiectului dvs. ar trebui să fie: - -``` -. -├── contracts -├── package.json -└── test -``` - -### **2. Contracte inteligente** {#2-smart-contract} - -Pentru a începe simularea dinamică, avem nevoie de un contract inteligent cu dependențe. Nu vă faceți griji, vă ajutăm noi! - -Iată un contract inteligent simplu scris în `Solidity` al cărui unic scop este să verificăm dacă suntem bogați. Acesta folosește tokenul ERC20 pentru a verifica dacă avem suficiente tokenuri. Să spunem că avem `./contracts/AmIRichAlready.sol`. - -```solidity -pragma solidity ^0.6.2; - -interface IERC20 { - function balanceOf(address account) external view returns (uint256); -} - -contract AmIRichAlready { - IERC20 private tokenContract; - uint public richness = 1000000 * 10 ** 18; - - constructor (IERC20 _tokenContract) public { - tokenContract = _tokenContract; - } - - function check() public view returns (bool) { - uint balance = tokenContract.balanceOf(msg.sender); - return balance > richness; - } -} -``` - -Deoarece vrem să folosim simularea dinamică, nu avem nevoie de întregul ERC20, de aceea folosim interfața IERC20 cu o singură funcție. - -A venit momentul să construim acest contract! Pentru aceasta vom folosi `Waffle`. În primul rând, vom crea un fișier simplu de configurare `Waffle.json` care specifică opțiunile de compilare. - -```json -{ - "compilerType": "solcjs", - "compilerVersion": "0.6.2", - "sourceDirectory": "./contracts", - "outputDirectory": "./build" -} -``` - -Acum suntem gata să construim contractul cu Waffle: - -```bash -$ npx waffle -``` - -E simplu, nu? În directorul `build/` au apărut două fișiere corespunzătoare contractului și interfeței. Le vom folosi mai târziu pentru testare. - -### **3. Testare** {#3-testing} - -Să creăm un fișier numit `AmIRichAlready.test.ts` pentru a testa ca atare. În primul rând, trebuie să ne ocupăm de importuri. Vom avea nevoie de ele pentru mai târziu: - -```typescript -import { expect, use } from "chai" -import { Contract, utils, Wallet } from "ethers" -import { - deployContract, - deployMockContract, - MockProvider, - solidity, -} from "ethereum-waffle" -``` - -Cu excepția dependențelor JS, trebuie să importăm contractul și interfața pe are le-am construit: - -```typescript -import IERC20 from "../build/IERC20.json" -import AmIRichAlready from "../build/AmIRichAlready.json" -``` - -Waffle folosește `chai` pentru testare. Cu toate acestea, înainte de a-l putea folosi, trebuie să injectăm validatori-matcher Waffle chiar în chai: - -```typescript -use(solidity) -``` - -Trebuie să implementăm funcția `beforeEach()`, care va reseta starea contractului înainte de fiecare test. Să ne gândim mai întâi la ce ne trebuie acolo. Pentru a implementa un contract avem nevoie de două lucruri: (1) un portofel și (2) un contract ERC20 implementat pe care să îl transmitem ca argument pentru contractul `AmIRichAlready`. - -În primul rând creăm un portofel: - -```typescript -const [wallet] = new MockProvider().getWallets() -``` - -Apoi trebuie să implementăm un contract ERC20. Partea dificilă este că avem doar o interfață. Aici apare Waffle să ne salveze. Waffle are o funcție magică `deployMockContract ()` care creează un contract folosind doar _abi_-ul interfeței: - -```typescript -const mockERC20 = await deployMockContract(wallet, IERC20.abi) -``` - -Acum, având portofelul și ERC20 implementate, putem continua implementând contractul ` AmIRichAlready`: - -```typescript -const contract = await deployContract(wallet, AmIRichAlready, [ - mockERC20.address, -]) -``` - -După toate acestea, am terminat cu funcția noastră `beforeEach()`. La acest moment fișierul dvs. `AmIRichAlready.test.ts` se prezintă astfel: - -```typescript -import { expect, use } from "chai" -import { Contract, utils, Wallet } from "ethers" -import { - deployContract, - deployMockContract, - MockProvider, - solidity, -} from "ethereum-waffle" - -import IERC20 from "../build/IERC20.json" -import AmIRichAlready from "../build/AmIRichAlready.json" - -use(solidity) - -describe("Am I Rich Already", () => { - let mockERC20: Contract - let contract: Contract - let wallet: Wallet - - beforeEach(async () => { - ;[wallet] = new MockProvider().getWallets() - mockERC20 = await deployMockContract(wallet, IERC20.abi) - contract = await deployContract(wallet, AmIRichAlready, [mockERC20.address]) - }) -}) -``` - -Să scriem primul test al contractului `AmIRichAlready`. Ce credeți că trebuie să testăm? Da, așa este! Trebuie să verificăm dacă ne-am îmbogățit :) - -Dar stați puțin. Cum va ști contractul nostru simulat prin ce valori să răspundă? Nu am implementat nicio logică pentru funcția `balanceOf()`. Dar Waffle ne ajută din nou. Contractul nostru simulat comportă acum niște șmecherii: - -```typescript -await mockERC20.mock..returns() -await mockERC20.mock..withArgs().returns() -``` - -Cunoscând acestea, ne putem scrie în sfârșit primul test: - -```typescript -it("returnează fals dacă portofelul are mai puțin de 1000000 tokenuri", async () => { - await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) - expect(await contract.check()).to.be.equal(false) -}) -``` - -Să descompunem acest test în mai multe părți: - -1. Ne-am configurat contractul simulat ERC20 ca să răspundă întotdeauna prin soldul de 999999 de tokenuri. -2. Verificați dacă prin metoda `contract.check()` obțineți răspunsul `false`. - -Suntem gata să dăm drumul fiarei: - -![A trecut un test](test-one.png) - -Deci a trecut cu bine testul, dar... mai sunt necesare ameliorări. Funcția `balanceOf()` va răspunde întotdeauna prin 99999. Se poate evita acest lucru dacă indicăm un portofel pentru care funcția trebuie să dea un răspuns - la fel ca un contract real: - -```typescript -it("returnează fals dacă portofelul are mai puțin de 1000001 tokenuri", async () => { - await mockERC20.mock.balanceOf - .withArgs(wallet.address) - .returns(utils.parseEther("999999")) - expect(await contract.check()).to.be.equal(false) -}) -``` - -Până acum am testat doar cazul în care nu suntem suficient de bogați. Să testăm și contrariul: - -```typescript -it("returnează true dacă portofelul are cel puțin 1000001 tokenuri", async () => { - await mockERC20.mock.balanceOf - .withArgs(wallet.address) - .returns(utils.parseEther("1000001")) - expect(await contract.check()).to.be.equal(true) -}) -``` - -Rulați testele... - -![A trecut două teste](test-two.png) - -...și iată! Contractul nostru pare să funcționeze cum trebuie :) - -## Testarea apelurilor de contracte {#testing-contract-calls} - -Să rezumăm ce am făcut până acum. Am testat funcționalitatea contractului nostru `AmIRichAlready` și se pare că funcționează corect. Asta înseamnă că am terminat, nu? Nu chiar! Waffle ne permite să mai testăm contractul. Dar cum anume? Ei bine, în arsenalul Waffle există doi validatori-matcher, `calledOnContract()` și `calledOnContractWith()`. Ei ne vor permite să verificăm dacă nu cumva contractul nostru a apelat contractul simulat ERC20. Iată un test simplu cu unul dintre acești validatori-matcher: - -```typescript -it("contractul nostru este verificat dacă a apelat balanceOf pe tokenul ERC20", async () => { - await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) - await contract.check() - expect("balanceOf").to.be.calledOnContract(mockERC20) -}) -``` - -Putem merge chiar mai departe pentru a ameliora acest test cu celălalt validator-matcher despre care v-am vorbit: - -```typescript -it("contractul nostru este verificat dacă a apelat balanceOf cu un anumit portofel pe tokenul ERC20", async () => { - await mockERC20.mock.balanceOf - .withArgs(wallet.address) - .returns(utils.parseEther("999999")) - await contract.check() - expect("balanceOf").to.be.calledOnContractWith(mockERC20, [wallet.address]) -}) -``` - -Să verificăm dacă testele sunt corecte: - -![A trecut trei teste](test-three.png) - -Super, a trecut cu verde toate testele. - -Testarea apelurilor de contracte cu Waffle este foarte ușoară. Și iată ce este grozav în această privință. Acești validatori-matcher funcționează și cu contracte normale, și cu cele simulate! Aceasta deoarece Waffle înregistrează și filtrează apelurile EVM în loc să injecteze cod, ca în cazul bibliotecilor populare de testare pentru alte tehnologii. - -## Linia de sosire {#the-finish-line} - -Felicitări! Acum știți cum să folosiți Waffle pentru a testa în mod dinamic apelurile de contracte și contractele simulate. Există mult mai multe funcționalități interesante de descoperit. Vă recomandăm să studiați în profunzime documentația Waffle. - -Documentația Waffle este disponibilă [aici](https://ethereum-waffle.readthedocs.io/). - -Codul sursă pentru acest tutorial se află [aici](https://github.com/EthWorks/Waffle/tree/master/examples/dynamic-mocking-and-testing-calls). - -Alte tutoriale care vă pot interesa: - -- [Testarea contractelor inteligente cu Waffle](/developers/tutorials/testing-smart-contract-with-waffle/) diff --git a/src/content/translations/ro/history/index.md b/src/content/translations/ro/history/index.md deleted file mode 100644 index c1288b463c2..00000000000 --- a/src/content/translations/ro/history/index.md +++ /dev/null @@ -1,399 +0,0 @@ ---- -title: Istoricul şi fork-urile lui Ethereum -description: Un istoric al blockchain-ului Ethereum care cuprinde repere majore, lansări și fork-uri. -lang: ro -sidebarDepth: 1 ---- - -# Istoricul lui Ethereum {#the-history-of-ethereum} - -O cronologie a tuturor reperelor majore, a fork-urilor și actualizărilor blockchain-ului Ethereum. - - - -Fork-urile apar atunci când trebuie făcute actualizări tehnice sau modificări majore în rețea – acestea provin de obicei din [Propunerile de îmbunătățire pentru Ethereum (EIP)](/eips/) și modifică „regulile” protocolului. - -Atunci când sunt necesare actualizări în software-ul tradițional, controlat central, compania doar va publica o nouă versiune pentru utilizatorul final. Blockchain-ul funcționează diferit, deoarece nu există proprietate centrală. [Clienții Ethereum](/developer/docs/nodes-and-clients/) trebuie să își actualizeze software-ul pentru a implementa noile reguli de fork-uri. În plus, creatorii de blocuri (miner-ii într-o lume a dovezii-muncii, validatorii într-o lume a dovezii-mizei) și nodurile trebuie să creeze blocuri și să valideze conform noilor reguli. [Mai multe despre mecanismele de consesn]/(developers/docs/consensus-mechanisms/) - -Aceste schimbări de reguli pot crea o separare temporară în rețea. Pot fi produse blocuri noi conform regulilor noi sau celor vechi. Se convine în avans asupra creării fork-urilor, astfel încât clienții să adopte schimbările la unison și fork-ul cu actualizările să devină lanțul principal. Cu toate acestea, în cazuri rare, dezacordurile asupra fork-urilor pot determina divizarea permanentă a rețelei – cea mai cunoscută fiind crearea lui Ethereum Classic cu [fork-ul DAO](#dao-fork). - - - -Sunteți în căutarea unor viitoare actualizări ale protocolului? [Aflați despre viitoarele actualizări ale lui Ethereum](/roadmap/). - - - -## 2021 {#2021} - -### Arrow Glacier {#arrow-glacier} - - - -#### Rezumat {#arrow-glacier-summary} - -Actualizarea Arrow Glacier a amânat [bomba de dificultate](/glossary/#difficulty-bomb) cu câteva luni. Aceasta este singura modificare introdusă în această actualizare și este similară ca natură cu actualizarea [Muir Glacier](#muir-glacier). Modificări similare au fost efectuate cu actualizările [Byzantium](#byzantium), [Constantinople](#constantinople) și [Londra](#london) ale reţelei. - -- [Blogul EF - Anunțul actualizării Arrow Glacier](https://blog.ethereum.org/2021/11/10/arrow-glacier-announcement/) -- [Ethereum Cat Herders - Actualizarea Ethereum Arrow Glacier](https://medium.com/ethereum-cat-herders/ethereum-arrow-glacier-upgrade-e8d20fa4c002) - - - -- [EIP-4345](https://eips.ethereum.org/EIPS/eip-4345) – _amână bomba de dificultate până în iunie 2022_ - - - -#### Operatorii de noduri {#arrow-glacier-node-operators} - -Aveţi grijă să vă actualizați software-ul client la versiunea cea mai recentă înainte de 5 decembrie 2021, pentru a justifica timpii de bloc variabili. Aceasta va evita sincronizarea clientului dvs. cu un lanț pre-fork, care va avea ca rezultat imposibilitatea de a trimite fonduri sau de a verifica în mod corect tranzacțiile. - ---- - -### Altair {#altair} - - - -#### Rezumat {#altair-summary} - -Actualizarea Altair a fost prima actualizare programată pentru [Lanțul Beacon](/roadmap/beacon-chain). A adăugat acceptarea „comitetelor de sincronizare”—prin activarea clienților light (ușori) și aducând penalităţi pentru inactivitatea și slashing-ul validatorului la valorile lor maxime. - -- [Citiţi specificaţiile actualizărilor Altair](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) - -#### Un fapt amuzant! {#altair-fun-fact} - -Altair a fost prima actualizare majoră a rețelei care a avut o dată exactă de lansare. Toate actualizările anterioare s-au bazat pe un număr de bloc declarat pe lanțul dovezii-muncii (PoW), unde timpii de bloc variază. Lanțul Beacon nu necesită rezolvarea de calcule ca dovadă-a-muncii (PoW), ci funcționează pe un sistem de epoci bazate pe timp, sistem care constă din 32 de „sloturi” de timp de 12 secunde în care validatorii pot propune blocuri. Acesta este motivul pentru care am știut exact când vom atinge epoca 74.240 și Altair va deveni funcțional! - -- [Beaconcha.in Glosar - Sloturi](https://kb.beaconcha.in/glossary#slots) - ---- - -### Londra {#london} - - - -#### Rezumat {#london-summary} - -Actualizarea Londra a introdus [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559), care a reformat piața de taxe de tranzacționare, precum și schimbările modului de gestionare a rambursărilor de gaz și ale programării [Erei glaciare](/glossary/#ice-age). - -- [Sunteți dezvoltator de aplicații dApp? Aveţi grijă să vă actualizați bibliotecile și instrumentele.](https://github.com/ethereum/eth1.0-specs/blob/master/network-upgrades/ecosystem-readiness.md) -- [Citiţi anunțul Fundației Ethereum](https://blog.ethereum.org/2021/07/15/london-mainnet-announcement/) -- [Citiţi explicatorul Ethereum Cat Herder](https://medium.com/ethereum-cat-herders/london-upgrade-overview-8eccb0041b41) - - - -- [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) – _îmbunătățește piața taxelor de tranzacționare_. -- [EIP-3198](https://eips.ethereum.org/EIPS/eip-3198) – _returnează `BASEFEE` de la un bloc_. -- [EIP-3529](https://eips.ethereum.org/EIPS/eip-3529) – _reduce rambursările de gaz pentru operațiunile EVM_. -- [EIP-3541](https://eips.ethereum.org/EIPS/eip-3541) – _împiedică implementarea contractelor care încep cu `0xEF`_ -- [EIP-3554](https://eips.ethereum.org/EIPS/eip-3554) – _întârzie Era glaciară până în decembrie 2021_ - - - ---- - -### Berlin {#berlin} - - - -#### Rezumat {#berlin-summary} - -Actualizarea Berlin a optimizat costul gazului pentru anumite acțiuni EVM și crește acceptarea mai multor tipuri de tranzacții. - -- [Citiţi anunțul Fundației Ethereum](https://blog.ethereum.org/2021/03/08/ethereum-berlin-upgrade-announcement/) -- [Citiţi explicatorul Ethereum Cat Herder](https://medium.com/ethereum-cat-herders/the-berlin-upgrade-overview-2f7ad710eb80) - - - -- [EIP-2565](https://eips.ethereum.org/EIPS/eip-2565) – _reduce costul gazului ModExp_. -- [EIP-2718](https://eips.ethereum.org/EIPS/eip-2718) – _permite acceptarea mai ușoară a mai multor tipuri de tranzacții_. -- [EIP-2929](https://eips.ethereum.org/EIPS/eip-2929) – _crește costul gazului pentru opcodurile accesului la stare_. -- [EIP-2930](https://eips.ethereum.org/EIPS/eip-2930) – _adăugă liste de acces opționale_ - - - - - -## 2020 {#2020} - -### Geneza Lanțului Beacon {#beacon-chain-genesis} - - - -#### Rezumat {#beacon-chain-genesis-summary} - -[Lanțul Beacon](/roadmap/beacon-chain/) avea nevoie de 16384 de depozite de 32 de ETH mizați pentru a transfera în siguranță. Acest lucru se întâmpla pe 27 noiembrie, ceea ce înseamnă că Lanțul Beacon a început să producă blocuri pe 1 decembrie 2020. Acesta este primul pas important în realizarea [viziunii Ethereum](/roadmap/vision/). - -[Citiţi anunțul Fundației Ethereum](https://blog.ethereum.org/2020/11/27/eth2-quick-update-no-21/) - - - Lanțul Beacon - - ---- - -### S-a implementat contractul de depunere a mizei {#staking-deposit-contract} - - - -#### Rezumat {#deposit-contract-summary} - -Contractul de depunere a mizei a introdus [mizarea](/glossary/#staking) în ecosistemul Ethereum. Cu toate că este un contract pe [Mainnet](/glossary/#mainnet), acesta a avut un impact direct asupra termenului de lansare a [Lanțului Beacon](/roadmap/beacon-chain/), o importantă [actualizare Ethereum](/roadmap/). - -[Citiţi anunțul Fundației Ethereum](https://blog.ethereum.org/2020/11/04/eth2-quick-update-no-19/) - - - Mizarea - - ---- - -### Muir Glacier {#muir-glacier} - - - -#### Rezumat {#muir-glacier-summary} - -Fork-ul Muir Glacier a introdus o întârziere a [bombei de dificultate](/glossary/#difficulty-bomb). Creșterea dificultăţii blocului în mecanismul de consens bazat pe [dovada-muncii](/developers/docs/consensus-mechanisms/pow/) ameninţa să degradeze calitățile funcționale ale lui Ethereum prin creșterea timpului de așteptare pentru trimiterea tranzacțiilor și folosirea aplicațiilor dapp. - -- [Citiţi anunțul Fundației Ethereum](https://blog.ethereum.org/2019/12/23/ethereum-muir-glacier-upgrade-announcement/) -- [Citiţi explicatorul Ethereum Cat Herder](https://medium.com/ethereum-cat-herders/ethereum-muir-glacier-upgrade-89b8cea5a210) - - - -- [EIP-2384](https://eips.ethereum.org/EIPS/eip-2384) – _întârzie bomba de dificultate cu încă 4.000.000 de blocuri sau ~611 zile._ - - - - - -## 2019 {#2019} - -### Istanbul {#istanbul} - - - -#### Rezumat {#istanbul-summary} - -Fork-ul Istanbul: - -- A optimizat costul [gazului](/glossary/#gas) pentru anumite acțiuni din [EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine). -- A îmbunătățit rezistența la atacul prin refuzul-serviciului. -- Made [Layer 2 scaling](/developers/docs/scaling/#layer-2-scaling) solutions based on SNARKs and STARKs more performant. -- A permis interoperabilitatea dintre Ethereum și Zcash. -- A permis contractelor să introducă funcții mai ingenioase. - -[Citiţi anunțul Fundației Ethereum](https://blog.ethereum.org/2019/11/20/ethereum-istanbul-upgrade-announcement/) - - - -- [EIP-152](https://eips.ethereum.org/EIPS/eip-152) – _allow Ethereum to work with privacy-preserving currency like Zcash._ -- [EIP-1108](https://eips.ethereum.org/EIPS/eip-1108) – _cheaper cryptography to improve [gas](/glossary/#gas) costs._ -- [EIP-1344](https://eips.ethereum.org/EIPS/eip-1344) – _protects Ethereum against replay attacks by adding `CHAINID` [opcode](/developers/docs/ethereum-stack/#ethereum-virtual-machine)._ -- [EIP-1884](https://eips.ethereum.org/EIPS/eip-1884) – _optimising opcode gas prices based on consumption._ -- [EIP-2028](https://eips.ethereum.org/EIPS/eip-2028) – _reduces the cost of CallData to allow more data in blocks – good for [Layer 2 scaling](/developers/docs/scaling/#layer-2-scaling)._ -- [EIP-2200](https://eips.ethereum.org/EIPS/eip-2200) – _other opcode gas price alterations._ - - - ---- - -### Constantinopol {#constantinople} - - - -#### Rezumat {#constantinople-summary} - -Fork-ul Constantinopol: - -- A asigurat ca blockchain-ul să nu înghețe înainte de [implementarea dovezii-mizei](#beacon-chain-genesis). -- A optimizat costul [gazului](/glossary/#gas) anumitor acțiuni din [EVM](/developers/docs/ethereum-stack/#ethereum-virtual-machine). -- A adăugat capacitatea de a interacționa cu adrese care nu au fost create încă. - -[Citiţi anunțul Fundației Ethereum](https://blog.ethereum.org/2019/02/22/ethereum-constantinople-st-petersburg-upgrade-announcement/) - - - -- [EIP-145](https://eips.ethereum.org/EIPS/eip-145) – _optimizează costul anumitor acțiuni on-chain._ -- [EIP-1014](https://eips.ethereum.org/EIPS/eip-1014) – _vă permite să interacționaţi cu adrese care nu au fost create încă._ -- [EIP-1052](https://eips.ethereum.org/EIPS/eip-1052) – _optimizează costul anumitor acțiuni on-chain._ -- [EIP-1234](https://eips.ethereum.org/EIPS/eip-1234) – _garantează că blockchain-ul nu îngheață înainte de a se implementa dovada-mizei._ - - - - - -## 2017 {#2017} - -### Byzantium {#byzantium} - - - -#### Rezumat {#byzantium-summary} - -Fork-ul Byzantium: - -- A redus recompensele pentru [minarea](/developers/docs/consensus-mechanisms/pow/mining/) pe bloc de la 5 la 3 ETH. -- A amânat [bomba de dificultate](/glossary/#difficulty-bomb) cu un an. -- A adăugat capacitatea de a efectua apeluri care nu modifică starea către alte contracte. -- Added certain cryptography methods to allow for [layer 2 scaling](/developers/docs/scaling/#layer-2-scaling). - -[Citiţi anunțul Fundației Ethereum](https://blog.ethereum.org/2017/10/12/byzantium-hf-announcement/) - - - -- [EIP-140](https://eips.ethereum.org/EIPS/eip-140) – _adds `REVERT` opcode._ -- [EIP-658](https://eips.ethereum.org/EIPS/eip-658) – _status field added to transaction receipts to indicate success or failure._ -- [EIP-196](https://eips.ethereum.org/EIPS/eip-196) – _adds elliptic curve and scalar multiplication to allow for [ZK-Snarks](/developers/docs/scaling/zk-rollups/)._ -- [EIP-197](https://eips.ethereum.org/EIPS/eip-197) – _adds elliptic curve and scalar multiplication to allow for [ZK-Snarks](/developers/docs/scaling/zk-rollups/)._ -- [EIP-198](https://eips.ethereum.org/EIPS/eip-198) – _enables RSA signature verification._ -- [EIP-211](https://eips.ethereum.org/EIPS/eip-211) – _adds support for variable length return values._ -- [EIP-214](https://eips.ethereum.org/EIPS/eip-214) – _adds `STATICCALL` opcode, allowing non-state-changing calls to other contracts._ -- [EIP-100](https://eips.ethereum.org/EIPS/eip-100) – _changes difficulty adjustment formula._ -- [EIP-649](https://eips.ethereum.org/EIPS/eip-649) – _delays [difficulty bomb](/glossary/#difficulty-bomb) by 1 year and reduces block reward from 5 to 3 ETH._ - - - - - -## 2016 {#2016} - -### Spurious Dragon {#spurious-dragon} - - - -#### Rezumat {#spurious-dragon-summary} - -Fork-ul Spurious Dragon a fost al doilea răspuns la atacurile prin refuzul-serviciului (DoS) din rețea (septembrie/octombrie 2016), incluzând: - -- reglarea prețurilor de opcode pentru a preveni atacurile viitoare asupra rețelei. -- permiterea „reducerii” stării blockchain-ului. -- adăugarea protecției împotriva atacurilor de reluare. - -[Citiţi anunțul Fundației Ethereum](https://blog.ethereum.org/2016/11/18/hard-fork-no-4-spurious-dragon/) - - - -- [EIP-155](https://eips.ethereum.org/EIPS/eip-155) – _împiedică tranzacțiile dintr-un lanț Ethereum să fie retransmise pe un lanț alternativ, de exemplu o tranzacție testnet care este retransmisă pe lanțul principal Ethereum._ -- [EIP-160](https://eips.ethereum.org/EIPS/eip-160) – _ajustează prețurile opcode-ului `EXP` – face mai dificilă încetinirea rețelei prin intermediul unor operațiuni contractuale costisitoare din punct de vedere al calculelor_ -- [EIP-161](https://eips.ethereum.org/EIPS/eip-161) – _permite eliminarea conturilor goale adăugate prin atacurile DOS._ -- [EIP-170](https://eips.ethereum.org/EIPS/eip-170) – _modifică dimensiunea maximă a codului pe care îl poate avea un contract pe blockchain – la 24576 octeți._ - - - ---- - -### Tangerine whistle {#tangerine-whistle} - - - -#### Rezumat {#tangerine-whistle-summary} - -Fork-ul Tangerine Whistle a fost primul răspuns la atacurile prin refuzul-serviciului (DoS) din rețea (septembrie/octombrie 2016), incluzând: - -- abordarea problemelor urgente de sănătate ale rețelei referitoare la codurile de funcționare subevaluate. - -[Citiţi anunțul Fundației Ethereum](https://blog.ethereum.org/2016/10/18/faq-upcoming-ethereum-hard-fork/) - - - -- [EIP-150](https://eips.ethereum.org/EIPS/eip-150) – _crește costurile gazului opcode-urilor care pot fi utilizate în atacurile spam._ -- [EIP-158](https://eips.ethereum.org/EIPS/eip-158) – _reduce dimensiunea stării prin eliminarea unui număr mare de conturi goale care au fost plasate în stare la un cost foarte scăzut din cauza erorilor din versiunile anterioare ale protocolului Ethereum._ - - - ---- - -### Fork-ul DAO {#dao-fork} - - - -#### Rezumat {#dao-fork-summary} - -Fork-ul DAO a fost un răspuns la [atacul DAO din 2016](https://www.coindesk.com/markets/2016/06/25/understanding-the-dao-attack/), în care un contract [DAO](/glossary/#dao) nesecurizat a fost golit de peste 3,6 milioane de ETH prin piratare. Fork-ul a mutat fondurile de pe contractul defectuos pe un [contract nou](https://etherscan.io/address/0xbf4ed7b27f1d666546e30d74d50d173d20bca754) cu o singură funcție: „withdraw” (retragere). Oricine a pierdut fonduri a putut retrage 1 ETH pentru fiecare 100 de tokenuri DAO din portofel. - -Această măsură a fost votată de comunitatea Ethereum. Orice deținător de ETH a putut vota printr-o tranzacție pe [o platformă de vot](http://v1.carbonvote.com/). Decizia de creare a fork-ului a întrunit peste 85% din voturi. - -Unii miner-i au refuzat să creeze fork-ul pentru că incidentul DAO nu a fost o deficienţă a protocolului. Ei au continuat să formeze [Ethereum Clasic](https://ethereumclassic.org/). - -[Citiţi anunțul Fundației Ethereum](https://blog.ethereum.org/2016/07/20/hard-fork-completed/) - ---- - -### Homestead {#homestead} - - - -#### Rezumat {#homestead-summary} - -Fork-ul Homestead care privea spre viitor. Acesta a inclus mai multe modificări ale protocolului și o schimbare de relaţionare care i-a permis lui Ethereum să efectueze noi actualizări ale reţelei. - -[Citiţi anunțul Fundației Ethereum](https://blog.ethereum.org/2016/02/29/homestead-release/) - - - -- [EIP-2](https://eips.ethereum.org/EIPS/eip-2) – _face modificări la procesul de creare a contractului._ -- [EIP-7](https://eips.ethereum.org/EIPS/eip-7) – _adaugă un nou opcode: „DELEGATECALL”_ -- [EIP-8](https://eips.ethereum.org/EIPS/eip-8) – _introduce cerințele de compatibilitate „devp2p forward”_ - - - - - -## 2015 {#2015} - -### Frontier thawing {#frontier-thawing} - - - -#### Rezumat {#frontier-thawing-summary} - -Fork-ul frontier thawing a ridicat limita de [gaz](/glossary/#gas) de 5.000 per [bloc](/glossary/#block) și a stabilit prețul implicit al gazului la 51 [gwei](/glossary/#gwei). Acest lucru a permis tranzacțiile – tranzacțiile necesită 21.000 de gaz. - -[Citiţi anunțul Fundației Ethereum](https://blog.ethereum.org/2015/08/04/the-thawing-frontier/) - ---- - -### Frontier {#frontier} - - - -#### Rezumat {#frontier-summary} - -Frontier a fost o implementare în direct, dar absolut esenţială pentru proiectul Ethereum. A urmat fazei de testare de succes Olympic. A fost destinat utilizatorilor tehnici, în special dezvoltatorilor. [Blocurile](/glossary/#block) aveau o limită de [gaz](/glossary/#gas) de 5.000. Această perioadă de „spargere a gheţii” le-a permis miner-ilor să-și înceapă operațiunile și celor care au adoptat din timp sistemul să-și instaleze clienții fără a avea nevoie să se „grăbească”. - -[Citiţi anunțul Fundației Ethereum](https://blog.ethereum.org/2015/07/22/frontier-is-coming-what-to-expect-and-how-to-prepare/) - - - -## 2014 {#2014} - -### Vânzarea de ether {#ether-sale} - - - -Ether-ul a fost pus în vânzare oficial timp de 42 de zile. Se putea cumpăra cu BTC. - -[Citiţi anunțul Fundației Ethereum](https://blog.ethereum.org/2014/07/22/launching-the-ether-sale/) - ---- - -### A fost lansată Cartea galbenă {#yellowpaper} - - - -Cartea galbenă, scrisă de Dr. Gavin Wood, este o definiție tehnică a protocolului Ethereum. - -[Vedeți Cartea galbenă](https://github.com/ethereum/yellowpaper) - - - -## 2013 {#2013} - -### A fost lansată Cartea albă {#whitepaper} - - - -Lucrarea introductivă, publicată în 2013 de Vitalik Buterin, fondatorul lui Ethereum, înainte de lansarea proiectului în 2015. - - - Cartea albă - diff --git a/src/content/translations/ro/nft/index.md b/src/content/translations/ro/nft/index.md deleted file mode 100644 index 5ad072548b9..00000000000 --- a/src/content/translations/ro/nft/index.md +++ /dev/null @@ -1,433 +0,0 @@ ---- -title: Tokenuri nefungibile (NFT-uri) -description: Prezentare generală a NFT-urilor pe Ethereum -lang: ro -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: Sigla Eth-ului afișată printr-o hologramă. -summaryPoint1: O manieră de reprezenta ceva unic ca un activ bazat pe Ethereum. -summaryPoint2: NTF-urile oferă putere mai multă creatorilor de conținut decât oricând. -summaryPoint3: Sunt acționate de contractele inteligente pe blockchain-ul Ethereum. ---- - -În prezent, NFT-urile iau cu asalt lumea artei digitale și a obiectelor de colecție. Artiștii din domeniul digital constată cum li se schimbă viața datorită vânzărilor enorme către o nouă cripto-audiență. Iar celebritățile se alătură, deoarece observă o nouă oportunitate de a se conecta cu fanii. Dar arta digitală este doar un singur mod de a utiliza NFT-urile. În realitate, ele pot fi folosite pentru a reprezenta proprietatea asupra oricărui bun unic, cum ar fi un act de proprietate pentru un obiect din domeniul digital sau fizic. - -Dacă Andy Warhol s-ar fi născut la sfârșitul anilor '90, probabil că ar fi bătut Campbell's Soup ca NFT. Este doar o chestiune de timp până când Kanye va pune o pereche de Yeezys pe Ethereum. Și într-o bună zi, v-ați putea dovedi proprietatea asupra mașinii cu un NFT. - -## Ce este un NFT? {#what-are-nfts} - -NFT-urile sunt tokenuri pe care le putem folosi pentru a reprezenta proprietatea asupra unor elemente unice. Acestea ne permit să tokenizăm lucruri precum arta, obiectele de colecție și chiar bunurile imobiliare. Ele pot avea doar un singur proprietar oficial și sunt protejate de blockchain-ul Ethereum – nimeni nu poate să modifice înregistrarea proprietății sau să copieze/insereze un nou NFT. - -NFT reprezintă un token nefungibil. Nefungibil este un termen economic pe care l-ați putea folosi pentru a descrie lucruri cum ar fi mobila, un fișier de muzică sau computerul dvs. Aceste lucruri nu sunt interschimbabile cu alte elemente, deoarece au proprietăți unice. - -Elementele fungibile, pe de altă parte, pot fi schimbate, pentru că ceea ce le definește este valoarea lor, și nu proprietățile lor unice. De exemplu, ETH-ul sau dolarii sunt fungibili, deoarece 1 ETH / 1 USD poate fi schimbat pentru un alt 1 ETH / 1 USD. - - - -## Internetul activelor {#internet-of-assets} - -NFT-urile și Ethereum rezolvă unele dintre problemele care există în prezent pe internet. Pe măsură ce totul devine mai digital, este necesar să se reproducă proprietățile obiectelor fizice, precum raritatea, unicitatea și dovada proprietății. Ca să nu mai vorbim de faptul că produsele digitale funcționează adesea numai în contextul produsului lor. De exemplu, nu puteți revinde un mp3 iTunes pe care l-ați achiziționat sau nu puteți schimba punctele de loialitate ale unei companii pe creditul altei platforme, chiar dacă există o piață pentru aceasta. - -Iată cum arată un internet al NFT-urilor în comparație cu internetul pe care majoritatea dintre noi îl folosim astăzi... - -### O comparație {#nft-comparison} - -| Un internet NFT | Internetul de astăzi | -| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| NFT-urile sunt unice din punct de vedere digital, nu există două NFT-uri identice. | O copie a unui fișier, cum ar fi un .mp3 sau un .jpg, este la fel cu originalul. | -| Fiecare NFT trebuie să aibă un proprietar, iar acest lucru constituie o înregistrare publică și ușor de verificat de oricine. | Înregistrările privind proprietatea elementelor digitale sunt stocate pe servere controlate de instituții – trebuie să le credeți pe cuvânt. | -| NFT-urile sunt compatibile cu orice a fost construit folosind Ethereum. Un bilet NFT pentru un eveniment poate fi tranzacționat pe orice piață Ethereum, pentru un NFT complet diferit. Ați putea tranzacționa o operă de artă pentru un bilet! | Companiile care dispun de produse digitale trebuie să își construiască propria infrastructură. De exemplu, o aplicație care emite bilete digitale pentru evenimente ar trebui să construiască propriul său sistem de schimb de bilete. | -| Creatorii de conținut își pot vinde lucrările oriunde și pot accesa o piață mondială. | Creatorii se bazează pe infrastructura și distribuția platformelor pe care le utilizează. Acestea fac adesea obiectul unor condiții de utilizare și al unor restricții geografice. | -| Creatorii își pot păstra drepturile de proprietate asupra propriei opere și pot solicita redevențe în mod direct. | Platformele, cum ar fi serviciile de streaming muzical, rețin majoritatea profiturilor din vânzări. | -| Elementele pot fi utilizate în moduri surprinzătoare. De exemplu, puteți utiliza arta digitală ca garanție într-un împrumut descentralizat. | | - -### Exemple de NFT-uri {#nft-examples} - -Lumea NFT-urilor este relativ nouă. Teoretic, domeniul de aplicare a NFT-urilor este tot ceea ce este unic și necesită o proprietate demonstrabilă. Iată câteva exemple de NFT-uri care există astăzi, ca să vă faceți o idee: - -- [O operă de artă digitală unică](https://foundation.app/artworks) -- [O pereche de adidași unică într-o ediție limitată a liniei de modă](https://www.metagrail.co/auctions/91cf83fb-3477-4155-aae8-6dcb9b853397) -- [Un obiect din joc](https://market.decentraland.org/) -- [Un eseu](https://zora.co/0x517bab7661C315C63C6465EEd1b4248e6f7FE183/145) -- [O piesă de colecție digitală](https://www.larvalabs.com/cryptopunks/details/1) -- [Un nume de domeniu](https://app.ens.domains/name/ethereum.eth) -- [Un bilet care vă oferă acces la un eveniment sau un cupon](https://www.yellowheart.io/) - -### exemple ethereum.org {#ethereum-org-examples} - -Folosim NFT-uri pentru a ne răsplăti colaboratorii și avem chiar propriul nostru nume de domeniu NFT. - -#### POAP-uri (Protocol de dovadă a prezenței) {#poaps} - -În cazul în care contribuiți la ethereum.org, puteți revendica un POAP NFT. Acestea sunt obiecte de colecție care dovedesc că ați participat la un eveniment. Unele reuniuni crypto au folosit POAP-urile ca un fel de bilet de intrare la evenimentele lor. [Mai multe despre modurile de a contribui](/contributing/#poap). - -![ethereum.org POAP](./poap.png) - -#### ethereum.eth {#ethereum-dot-eth} - -Acest site are un nume de domeniu alternativ acţionat de NFT-uri **ethereum.eth**. Adresa noastră `.org` este gestionată la nivel central de un furnizor de sistem de nume de domeniu (DNS), în timp ce ethereum`.eth` este înregistrată pe Ethereum prin intermediul Ethereum Name Service (ENS). Și este deținută și administrată de noi. [Verificați dosarul nostru ENS](https://app.ens.domains/name/ethereum.eth) - -[Mai multe despre ENS](https://app.ens.domains) - -## Cum funcționează NFT-urile? {#how-nfts-work} - -NFT-urile sunt diferite de tokenurile ERC-20, cum ar fi DAI sau LINK, prin faptul că fiecare token individual este complet unic și nu este divizibil. NFT-urile oferă posibilitatea de a atribui sau de a revendica dreptul de proprietate asupra oricărui set unic de date digitale ce poate fi urmărit prin utilizarea blockchain-ului Ethereum ca registru public. Un NFT este emis din obiecte digitale ca o reprezentare a activelor digitale sau non-digitale. De exemplu, un NFT ar putea reprezenta: - -- Artă digitală: - - GIF-uri - - Articole de colecție - - Muzică - - Videoclipuri -- Articole din lumea reală: - - Actele unei mașini - - Bilete la un eveniment din lumea reală - - Facturi tokenizate - - Documente juridice - - Semnături -- O mulțime de alte opțiuni prin care să deveniți creativi! - -Un NFT nu poate să aibă decât câte un singur proprietar. Proprietatea se gestionează cu ajutorul unui uniquelD și al metadatelor pe care niciun alt token nu poate să le reproducă. NFT-urile sunt emise cu ajutorul unor contracte inteligente care atribuie proprietatea și gestionează capacitatea de transfer a NFT-urilor. În momentul în care o persoană creează sau emite un NFT, aceasta execută codul stocat în contracte inteligente care respectă diferite standarde, cum ar fi ERC-721. Această informație este adăugată la blockchain-ul pe care este gestionat NFT-ul. Procesul de emitere, privit în ansamblu, trece prin următoarele etape: - -- Crearea unui bloc nou -- Validarea informațiilor -- Înregistrarea informațiilor în blockchain - -NFT-ul are niște proprietăți speciale: - -- Fiecare token emis are un identificator unic legat în mod direct de o adresă Ethereum. -- Acestea nu pot fi schimbate în mod direct cu alte tokenuri 1:1. De exemplu, 1 ETH este identic cu un alt ETH. Acesta nu este cazul NFT-urilor. -- Fiecare token are un proprietar și această informație se poate verifica ușor. -- Acestea există pe Ethereum și se pot cumpăra și vinde pe oricare din piețele NFT din Ethereum. - -Cu alte cuvinte, putem spune că, dacă _dețineți_ un NFT: - -- Puteți dovedi cu ușurință că este proprietatea dvs. - - Dovedirea proprietății unui NFT este foarte asemănătoare cu dovedirea faptului că dețineți ETH în contul dvs. - - Să spunem, de exemplu, că achiziționați un NFT, iar proprietatea tokenului unic este transferată în portofelul dvs. cu ajutorul adresei dvs. publice. - - Tokenul dovedește faptul că exemplarul de fișier digital pe care îl dețineți este cel original. - - Cheia dvs. privată dovedește că sunteți proprietarul originalului. - - Cheia publică a creatorului de conținut are valoare de certificat de autenticitate pentru acel artefact digital. - - Cheia publică a creatorilor face parte practic permanent din istoria tokenului. Cheia publică a creatorului poate demonstra că tokenul pe care îl dețineți a fost creat de o anumită persoană, contribuind astfel la valoarea sa de piață (în comparație cu un fals). - - Alt mod de a dovedi că dețineți un NFT este prin semnarea mesajelor care să dovedească faptul că dețineți cheia privată pe care se bazează adresa. - - Așa cum am menționat mai sus, cheia privată este dovada că sunteți proprietarul originalului. Aceasta ne spune că acele chei private pe care se bazează adresa respectivă controlează NFT-ul. - - Puteți utiliza un mesaj semnat ca dovadă că sunteți proprietarul cheilor dvs. private, fără să le dezvăluiți nimănui, dovedind în acest fel că sunteți și proprietarul NFT-ului! -- Nimeni nu îl poate manipula în niciun fel. -- Îl puteți vinde și, în unele cazuri, aceasta îi va aduce creatorului original redevențe de revânzare. -- Sau puteți să-l păstrați pentru totdeauna, știind că activul dvs. este asigurat de portofelul dvs. pe Ethereum. - -Și dacă vă _creați_ un NFT: - -- Puteți să dovediți cu ușurința ca sunteți creatorul. -- Dvs. determinați cât este de rar. -- Puteți să câștigați redevențe de fiecare dată când este vândut. -- Îl puteți vinde pe orice piață de NFT-uri sau direct între participanți (peer-to-peer). Nu sunteți blocat pe nicio platformă și nu vă trebuie niciun intermediar. - -### Raritatea {#scarcity} - -Cel care a creat un NFT decide cât de rar este activul său. - -Să luăm ca exemplu un bilet la un eveniment sportiv. Tot aşa cum organizatorul unui eveniment poate decide câte bilete să vândă, creatorul unui NFT poate decide câte duplicate pot exista. Uneori aceste duplicate sunt identice, cum ar fi 5000 de bilete de intrare generală. În alte cazuri sunt emise mai multe care se aseamănă foarte mult, însă fiecare este ușor diferit, precum un bilet cu loc rezervat. Alteori creatorul poate dori să creeze un NFT în care se emite un singur bilet ca piesă de colecție rară și specială. - -În astfel de cazuri fiecare NFT tot va avea un identificator unic (în genul unui cod de bare pe un „bilet” tradițional), cu un singur proprietar. Caracterul intenţionat limitat al NFT-ului contează și este la discreția creatorului său. Creatorul ar putea să facă unic fiecare NFT în mod intenţionat pentru a crea o penurie sau să aibă alte motive ca să creeze câteva mii de duplicate. Nu trebuie să uităm că toate acestea sunt informații publice. - -### Redevențe {#royalties} - -Unele NFT-uri vor plăti în mod automat redevențe creatorilor lor atunci când sunt vândute. Conceptul este încă în curs de dezvoltare, însă este unul dintre cele mai puternice. De exemplu, proprietarii originali ai [EulerBeats Originals](https://eulerbeats.com/) câștigă o redevență de 8% la fiecare vânzare a unui NFT. Iar o serie de platforme, cum ar fi [Foundation](https://foundation.app) și [Zora](https://zora.co/), oferă redevențe pentru artiștii lor. - -Aceasta se petrece complet automat, deci creatorii nu au decât să stea liniștiți și să câştige redevențe în momentul în care opera lor este vândută de la o persoană la alta. În momentul de față, calculul redevențelor se face de manieră foarte manuală și nu are precizia necesară – mulți creatori nu sunt plătiți așa cum merită. Atunci când NTF-ul dvs. este programat pentru redevențe, nu veți pierde niciodată nimic. - -## La ce se utilizează NFT-urile? {#nft-use-cases} - -Uitaţi câteva informații suplimentare despre unele cazuri de utilizare și viziuni mai bine dezvoltate pentru utilizarea NTF-urilor pe Ethereum. - -- [Conținut digital](#nfts-for-creators) -- [Articole de joc](#nft-gaming) -- [Nume de domenii](#nft-domains) -- [Articole fizice](#nft-physical-items) -- [Investiții și garanții](#nfts-and-defi) - - - -### Maximizarea veniturilor creatorilor {#nfts-for-creators} - -NFT-urile sunt utilizate cel mai mult în ziua de azi în lumea conținutului digital. Aceasta se întâmplă deoarece industria de azi este falimentară. Creatorii de conținut privesc cum le dispar profiturile şi potenţialul de câştig înghiţite de platformele care le publică acel conținut. - -Atunci când un artist publică o lucrare pe o rețea socială, aceasta câștigă bani prin vinderea de publicitate fanilor artiștilor. Acesta obține vizibilitate, dar vizibilitatea nu îi plătește facturile. - -NFT-urile acționează o nouă economie, în care creatorii nu cedează proprietatea asupra conținutului lor platformelor care le publică acel conținut. Dreptul de proprietate este incorporat în conținutul însuși. - -Odată ce conținutul este vândut, fondurile le revin în mod direct. Și chiar atunci când noul proprietar ar revinde NTF-urile, creatorul original poate primi în mod automat redevențe. Garanția acestui lucru este asigurată prin faptul că, la orice vânzare a sa, adresa creatorului este integrată în metadatele tokenului – iar metadatele nu pot fi modificate. - - -
Explorați, cumpărați sau creați-vă propriile NFT-uri de artă/de colecție...
- - Explorați arta NFT - -
- -#### Problema copierii/inserării {#nfts-copy-paste} - -Pesimiștii aduc în discuție faptul că NFT-urile sunt „o stupiditate”, de obicei alături de o imagine care îi arată făcând o captură de ecran a unui NFT de artă. „Iată, acum am această imagine pe gratis!” spun ei cu aroganță. - -Ei bine, da. Dar oare căutarea unei imagini cu Guenica lui Picasso pe Google vă face să deveniți mândrul nou proprietar al unei piese de istorie a artei de mai multe milioane de dolari? - -La urma urmei, valoarea unui lucru pe care îl posedați în mod real este determinată de valoarea sa de piață. Cu cât un anumit conținut este captat de pe ecran mai mult, este distribuit și folosit în general, cu atât câștigă o valoare mai mare. - -Proprietatea asupra lucrului real verificabil are o valoare mai mare decât dacă nu o dețineți. - - - -### Stimularea potențialului de joc {#nft-gaming} - -NFT-urile au stârnit un mare interes din partea dezvoltatorilor de jocuri. NFT-urile pot să ofere dovezi de proprietate asupra elementelor din jocuri, să alimenteze economiile în jocuri și să aducă numeroase beneficii jucătorilor. - -Multe jocuri obișnuite vă permit să cumpărați articole pe care puteți să le folosiți în jocul dvs. Dar dacă elementul respectiv este un NFT, după terminarea jocului puteți să vă recuperați banii vânzându-l. Ați putea chiar să realizați un profit dacă cererea crește pentru acel element. - -În cazul dezvoltatorilor de jocuri – ca emitenți de NFT-uri –, aceștia pot să cumpere o redevență ori de câte ori un articol este revândut pe piețele libere. Aceasta creează un model de afaceri reciproc mai avantajos, în care atât jucătorii, cât și dezvoltatorii câștigă de pe piața secundară de NFT-uri. - -Acest lucru mai înseamnă că atunci când un joc nu mai este întreținut de dezvoltatori, elementele colectate rămân proprietatea dvs. - -În cele din urmă, elementele pentru câștigarea cărora ați muncit în joc pot supraviețui jocurilor înseși. Și chiar dacă un joc nu mai este întreținut, elementele pe care le dețineți vor rămâne mereu sub controlul dumneavoastră. Acest lucru înseamnă că elementele din joc devin mementouri digitale și au o valoare în afara jocului. - -Jocul de realitate virtuală Decentraland vă oferă chiar posibilitatea să cumpărați NFT-uri care reprezintă parcele virtuale de teren pe care le puteți folosi după bunul plac. - - -
Aruncați o privire asupra jocurilor Ethereum, alimentate de NFT-uri...
- - Explorați jocurile NFT - -
- - - -### Cum se realizează adrese Ethereum mai ușor de reținut {#nft-domains} - -Serviciul de nume din Ethereum folosește NFT-uri pentru a vă crea o adresă Ethereum cu un nume mai ușor de reținut, precum `mywallet.eth`. Aceasta înseamnă că puteți cere cuiva să vă trimită ETH prin `mywallet.eth` în loc de `0x123456789.....`. - -Funcționează în mod asemănător cu numele de domeniu al unui site web, ceea ce face ca adresa IP să fie mai ușor de reținut. Și asemenea domeniilor, numele ENS au o valoare, bazată de obicei pe lungime și relevanță. Cu ENS nu aveți nevoie de un registru de domenii pentru a facilita transferul proprietății. În schimb, puteți să vă comercializați numele dvs. ENS pe o piață NFT. - -Numele dvs. ENS poate: - -- Să primească criptomonede și alte NFT-uri. -- Să indice un site web descentralizat, cum ar fi [ethereum.eth](https://ethereum.eth.link). [Mai multe despre descentralizarea site-ului dvs. web](https://docs.ipfs.io/how-to/websites-on-ipfs/link-a-domain/#domain-name-service-dns) -- Să stocheze orice informații arbitrare, inclusiv informații de profil, cum ar fi adrese de e-mail și numele de utilizator Twitter. - - - -### Elemente fizice {#nft-physical-items} - -Tokenizarea elementelor fizice nu este încă tot la fel de dezvoltată ca și cea a omologilor lor digitali. Însă există o mulțime de proiecte care explorează tokenizarea bunurilor imobiliare, a articolelor de modă unicat și altele. - -Deoarece NFT-urile sunt în esență acte de proprietate, într-o zi ați putea să cumpărați o mașină sau o casă cu ETH și să primiți în schimb actul de proprietate ca un NFT (în aceeași tranzacție). Pe măsură ce lucrurile devin din ce în ce mai performante din punct de vedere tehnologic, nu este greu de imaginat o lume în care portofelul Ethereum devine cheia mașinii sau a casei dvs. - ușa dvs. fiind descuiată de dovada criptografică a proprietății. - -Cu active valoroase ca mașinile și proprietățile care pot fi reprezentate pe Ethereum, puteți folosi NFT-urile ca garanție în cadrul unor împrumuturi descentralizate. Acest lucru este de mare ajutor în special dacă nu posedaţi bani sau criptomonede, dar dețineți obiecte fizice de valoare. [Mai multe despre DeFi](/defi/) - - - -### NFT-uri și DeFi {#nfts-and-defi} - -Lumea NFT-ului și cea a [finanțelor descentralizate (DeFi)](/defi/) încep să colaboreze într-o serie de moduri interesante. - -#### Împrumuturi garantate de NFT-uri {#nft-backed-loans} - -Există aplicații DeFi care vă permit să luaţi bani cu împrumut bani folosind garanții. De exemplu, garantați 10 ETH pentru a putea împrumuta 5000 DAI ([un stablecoin](/stablecoins/)). Acest lucru garantează că împrumutătorul îşi va primi banii înapoi – dacă împrumutatul nu rambursează DAI, garanția este trimisă împrumutătorului. Totuși, nu oricine are suficiente cripto pe care să le folosească drept garanție. - -În schimb, proiectele încep să exploreze posibilitatea de a folosi NFT-urile ca garanție. Imaginați-vă că ați cumpărat un NFT CryptoPunk rar în trecut – acesta poate ajunge la 1000 de dolari la prețurile de astăzi. Dacă garantaţi cu acesta, puteți să accesați un împrumut care se supune aceloraşi reguli. Dacă nu rambursați DAI, CryptoPunk-ul dvs. va fi trimis la împrumutător ca garanție. Acest lucru ar putea funcționa în cele din urmă cu orice ați tokeniza ca NFT. - -Iar această modalitate nu este greu de realizat pe Ethereum, pentru că ambele lumi (NFT-urile și DeFi) împart aceeași infrastructură. - -#### Proprietatea fracționată {#fractional-ownership} - -Creatorii de NFT-uri pot de asemenea să creeze „acțiuni” pentru NFT-ul lor. Acest lucru oferă investitorilor și fanilor posibilitatea să dețină o parte dintr-un NFT fără a fi nevoie să îl cumpere în întregime. Acest lucru deschide și mai multe oportunități, atât pentru creatorii de NFT-uri, cât și pentru colecționari. - -- NFT-urile fracționate se pot tranzacționa și pe [DEX-uri](/defi/#dex) precum Uniswap, nu doar pe [piețele de NFT-uri](/dapps?category=collectibles). Aceasta înseamnă mai mulți cumpărători și vânzători. -- Prețul global al unui NFT poate fi definit prin prețul fracțiunilor sale. -- Aveți mai multe posibilități să dețineți și să profitați de obiectele la care țineți. Este mai greu să vi se interzică să dețineți NFT-uri. - -Acest lucru este încă în faza experimentală, însă puteți afla mai multe despre posesia fracționară de NFT din următoarele sisteme de schimburi: - -- [NIFTEX](https://landing.niftex.com/) -- [NFTX](https://gallery.nftx.org/) - -Teoretic, aceasta ar debloca posibilitatea de a deține, de exemplu, o parte dintr-un Picasso. Ați deveni acționar al unui NFT Picasso, adică veți avea un cuvânt de spus cu privire, de exemplu, la împărțirea veniturilor. Este foarte probabil ca, în curând, deținerea unei fracțiuni dintr-un NFT să vă facă să intrați într-o organizație autonomă descentralizată (DAO) pentru gestionarea acelui activ. - -Acestea sunt organizații bazate pe Ethereum, care le permit străinilor, ca și acționarilor globali ai unui activ, să se coordoneze în siguranță fără a trebui neapărat să aibă încredere în ceilalți oameni. Aceasta deoarece nimeni nu poate cheltui un singur bănuț fără aprobarea grupului. - -Așa cum am menționat, acesta este un domeniu în creștere. NFT-urile, organizațiile DAO, tokenurile fracționate evoluează în ritmuri diferite. Însă toate infrastructurile lor există și pot colabora cu ușurință, deoarece toate vorbesc aceeași limbă: Ethereum. Așadar, urmăriți acest spațiu. - -[Mai multe despre organizațiile DAO](/dao/) - - - -## Ethereum și NFT-urile {#ethereum-and-nfts} - -Ethereum face posibilă funcționarea NFT-urilor din mai multe motive: - -- Istoricul tranzacțiilor și metadatele tokenurilor sunt verificabile public – este simplu să dovediți istoricul proprietății. -- Odată ce o tranzacție este confirmată, este aproape imposibil de manipulat aceste date pentru a „fura” proprietatea. -- Tranzacționarea NFT-urilor poate avea loc direct între participanți (peer-to-peer), fără a fi nevoie de platforme care pot percepe cote mari drept compensație. -- Toate produsele Ethereum au în comun același „backend”. Cu alte cuvinte, toate produsele Ethereum pot să se înțeleagă cu ușurință între ele – acest lucru face ca NFT-urile să fie portabile între produse. Puteți cumpăra un NFT pentru un produs și îl puteți vinde cu ușurință pentru un alt produs. În calitate de creator, puteți să vă listați NFT-urile simultan pe mai multe produse – fiecare produs va avea cele mai recente informații privind proprietatea. -- Ethereum nu se prăbușește niciodată, ceea ce înseamnă că tokenurile dvs. vor fi întotdeauna disponibile pentru vânzare. - -## Impactul NFT-urilor asupra mediului {#environmental-impact-nfts} - -NFT-urile cresc în popularitate, ceea ce înseamnă că sunt de asemenea supuse unei analize tot mai riguroase – în special asupra amprentei lor de carbon. - -Pentru a clarifica mai multe lucruri: - -- NFT-urile nu contribuie direct la creșterea amprentei de carbon a lui Ethereum. -- Modul în care Ethereum vă păstrează fondurile și activele în siguranță este în prezent mare consumator de energie, dar este pe cale de a fi îmbunătățit. -- Odată îmbunătățit, amprenta de carbon a lui Ethereum va fi cu 99,95 % mai bună, făcând-o mai eficientă din punct de vedere energetic decât multe industrii existente. - -Pentru a explica mai departe, va trebui să intrăm în aspecte mai tehnice, așa că aveți răbdare cu noi... - -### Nu dați vina pe NFT-uri {#nft-qualities} - -Întregul ecosistem NFT funcționează pentru că Ethereum este descentralizat și sigur. - -Descentralizat, însemnând că dvs. și toți ceilalți puteți verifica dacă dețineți ceva. Toate acestea fără a vă încrede sau a acorda custodia unui terț, care poate impune propriile reguli după bunul plac. De asemenea, înseamnă că NFT-ul dvs. este portabil pe mai multe produse și piețe diferite. - -Securizat, însemnând că nimeni nu poate să vă copieze/insereze NFT-ul sau să îl fure. - -Aceste calități ale lui Ethereum vă permit să posedați digital elemente unice și să obțineți un preț corect pentru conținutul dvs. Dar aceasta implică un cost. Blockchain-urile precum Bitcoin și Ethereum, sunt mari consumatoare de energie chiar acum, deoarece este nevoie de multă energie pentru a păstra aceste calități. Dacă era ușor ca istoria Ethereum să fie rescrisă pentru a fura NFT-uri sau criptomonede, sistemul s-ar prăbuși. - -#### Munca depusă pentru emiterea unui NFT {#minting-nfts} - -Atunci când emiteți un NFT, trebuie să aibă loc următoarele: - -- Trebuie să fie confirmat ca activ pe blockchain. -- Soldul contului proprietarului trebuie să fie actualizat pentru a include acest activ. Acest lucru îi permite apoi să fie tranzacționat sau să fie „deținut” în mod verificabil. -- Tranzacțiile care confirmă cele menționate mai sus trebuie adăugate unui bloc și „imortalizate” în lanț. -- Blocul trebuie confirmat de toți membrii rețelei ca fiind „corect”. Acest consens elimină nevoia de intermediari, întrucât rețeaua este de acord că NFT-ul dvs. există și vă aparține. Și se află în lanț, astfel încât oricine să poată verifica acest lucru. Acesta este unul din modurile în care Ethereum îi ajută pe creatorii de NFT-uri să își maximizeze câștigurile. - -Toate aceste sarcini sunt efectuate de miner-i. Și aceștia informează restul rețelei despre NFT-ul dvs. și cine îl deține. Aceasta înseamnă că minarea trebuie să fie suficient de dificilă, altfel oricine ar putea pretinde că deține NFT-ul pe care tocmai l-ați emis transferându-şi în mod fraudulos proprietatea. Sunt funcţionale o mulțime de stimulente care să asigure că miner-ii acționează în mod cinstit. - -[Aflați mai multe despre minare](/developers/docs/consensus-mechanisms/pow/) - -#### Securizarea NFT-ului prin minare {#securing-nfts} - -Dificultatea minării provine din faptul că este necesară multă putere de calcul pentru a crea noi blocuri în lanț. Important este faptul că blocurile sunt create în mod constant, nu numai atunci când sunt necesare. Acestea sunt create la un interval de aproximativ 12 secunde. - -Acesta este un lucru important pentru a face Ethereum imposibil de falsificat, una din calitățile care fac posibile NFT-urile. Cu cât sunt mai multe blocuri, cu atât mai securizat este lanțul. Dacă NFT-ul dvs. a fost creat în blocul #600 și un hacker ar încerca să vă fure NFT-ul modificându-i datele, amprenta digitală a tuturor blocurilor ulterioare s-ar schimba. Aceasta înseamnă că oricine rulează software-ul Ethereum ar putea imediat să detecteze și să împiedice producerea acestui lucru. - -Totuși, acest lucru înseamnă că puterea de calcul trebuie să fie folosită în mod constant. Aceasta mai înseamnă că un bloc care conține 0 tranzacții NFT va continua să aibă aproape aceeași amprentă de carbon, pentru că tot va fi consumată puterea de calcul pentru a-l crea. Alte tranzacții non-NFT vor umple blocurile. - -#### În acest moment blockchain-urile consumă multă energie {#blockchains-intensive} - -Deci da, există o amprentă de carbon asociată cu crearea de blocuri prin minare – și aceasta este o problemă şi pentru lanțuri cum ar fi Bitcoin – dar nu este direct generată de NFT-uri. - -O mare parte din minerit utilizează surse regenerabile de energie sau energie neexploatată în locații îndepărtate. Mai există și argumentul că sectoarele pe care le perturbă NFT-urile și criptomonedele au și ele amprente de carbon uriașe. Însă faptul că sectoarele industriale existente sunt dăunătoare nu înseamnă că nu ar trebui să ne străduim să facem lucrurile mai bine. - -Și noi facem asta. Ethereum evoluează pentru eficientiza din punct de vedere energetic utilizarea lui Ethereum (și, în consecință, a NFT-urilor). Și am avut întotdeauna în vedere acest lucru. - -Rolul nostru nu este de a pleda pentru amprenta de mediu a minării, ci vrem să explicăm în ce fel lucrurile se schimbă în bine. - -### Un viitor mai ecologic... {#a-greener-future} - -De când există Ethereum, consumul de energie pentru minare a fost în centrul atenției dezvoltatorilor și cercetătorilor. Și viziunea consta în înlocuirea acestuia cât mai curând posibil. [Mai multe despre viziunea Ethereum](/roadmap/vision/) - -Viziunea se concretizează chiar acum. - -#### Un Ethereum mai ecologic {#greener-ethereum} - -Ethereum parcurge în prezent o serie de actualizări care vor înlocui minarea cu [mizarea](/staking/). Aceasta va elimina puterea de calcul ca mecanism de securitate și va reduce amprenta de carbon a lui Ethereum cu ~99,95%[^1]. În această lume, staker-ii alocă fonduri în locul puterii de calcul pentru securizarea rețelei. - -Costul energetic al lui Ethereum va ajunge să fie egal cu costul de funcționare a unui computer personal înmulțit cu numărul de noduri din rețea. Dacă în rețea există 10.000 de noduri, iar costul de funcționare a unui computer personal este de aproximativ 525 KWh pe an. Aceasta înseamnă 5.250.000.000 kWh[^1] pe an pentru întreaga rețea. - -Putem folosi aceasta pentru a compara viitorul lui Ethereum cu cel al unui serviciu mondial precum Visa. 100.000 de tranzacții Visa consumă energie de 149 kWh[^2]. Într-un Ethereum bazat pe dovada-mizei, același număr de tranzacții ar costa cât 17,4kWh de energie sau ~11% din energia totală[^3]. Și aceasta fără a lua în considerare numeroasele optimizări la care se lucrează la nivelul consensului și în paralel la lanțurile de fragmente, cum ar fi [rollup-urile](/glossary/#rollups). Ar putea fi vorba de doar 0,166666666667 kWh de energie pentru 100.000 de tranzacții. - -Important este că aceasta crește eficiența energetică, păstrând în același timp descentralizarea și securitatea lui Ethereum. Multe alte blockchain-uri ar putea să folosească deja o anumită formă de mizare, dar acestea sunt securizate de câțiva staker-i selectați, nu de miile pe care îi va avea Ethereum. Cu cât sistemul este mai descentralizat, cu atât este mai sigur. - -[Aflați mai multe despre estimările energetice](#footnotes-and-sources) - -_V-am oferit o comparație elementară cu Visa pentru a vă ajuta să înțelegeți care este consumul de energie al unui Ethereum bazat pe dovada-mizei față de un nume cunoscut. În practică nu este însă absolut corectă comparația pe baza numărului de tranzacții. Randamentul energetic al lui Ethereum este în funcție de timp. Fie că Ethereum efectuează mai multe tranzacții de la un minut la altul, fie mai puține, randamentul energetic rămâne același._ - -_Este important să ne amintim că Ethereum nu doar efectuează tranzacții financiare, ci este o platformă pentru aplicații, așa că o comparație mai corectă ar fi cu mai multe companii/industrii, inclusiv Visa, AWS și multe altele!_ - -#### Desfășurarea în timp {#timelines} - -Procesul a început deja. [Lanțul Beacon](/roadmap/beacon-chain/), prima actualizare a fost lansată în decembrie 2020. Acesta oferă fundamentul pentru mizare, permițând stakerilor să intre în sistem. Pasul următor, important pentru eficiența energetică, este fuzionarea lanțului actual, cel securizat de miner-i, cu Lanțul Beacon, unde nu mai este nevoie de minare. Deocamdată, termenele de implementare nu pot fi exacte, dar se estimează că acest lucru se va întâmpla la un moment dat în 2022. Procesul este cunoscut sub numele de fuziune (cunoscut anterior sub numele de andocare). [Aflați mai multe despre fuziune](/roadmap/merge/). - - - Mai multe despre actualizările Ethereum - - -## Construiți cu NFT-uri {#build-with-nfts} - -Cele mai multe NFT-uri sunt construite cu ajutorul unui standard coerent cunoscut sub numele de [ERC-721](/developers/docs/standards/tokens/erc-721/). Totuși, există și alte standarde pe care ați putea dori să le analizați. Standardul [ERC-1155](https://blog.enjincoin.io/erc-1155-the-crypto-item-standard-ac9cf1c5a226) permite tokenurile semi-fungibile, care sunt deosebit de utile în lumea jocurilor. Mai recent, [EIP-2309](https://eips.ethereum.org/EIPS/eip-2309) a fost propus pentru a crește mult eficiența emiterii NFT-urilor. Acest standard vă permite să creați cât de multe tokenuri doriți într-o singură tranzacție! - -## Referințe suplimentare {#further-reading} - -- [Date legate de arta cripto](https://cryptoart.io/data) – Richard Chen, actualizate automat -- [OpenSea: Biblia NFT](https://opensea.io/blog/guides/non-fungible-tokens/) – _Devin Fizner, 10 ianuarie 2020_ -- [Ghidul începătorului în NFT-uri](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, ianuarie 2020_ -- [Tot ce trebuie să știți despre metavers](https://foundation.app/blog/enter-the-metaverse) – _Echipa Foundation, foundation.app_ -- [Nu, cripto-artiștii nu fac rău planetei](https://medium.com/superrare/no-cryptoartists-arent-harming-the-planet-43182f72fc61) -- [Consum de energie cât o țară, niciodată](https://blog.ethereum.org/2021/05/18/country-power-no-more/) – _Cart Beekhuizen, 18 mai 2021_ - - - -### Note de subsol și surse {#footnotes-and-sources} - -Aceasta explică felul în care am ajuns la estimările noastre energetice de mai sus. Aceste estimări se aplică rețelei ca întreg și nu se rezumă doar la procesul de creare, cumpărare sau vânzare de NFT-uri. - -#### 1. 99,95% de reducere a energiei pentru minare {#fn-1} - -Această reducere de 99,95% a consumului de energie de la un sistem securizat prin minare la un sistem securizat prin mizare se calculează folosind următoarele surse de date: - -- 44,49 TWh de energie electrică pe an este consumată prin minarea pe Ethereum - [Digiconomist](https://digiconomist.net/ethereum-energy-consumption) - -- Un computer desktop mediu, singurul lucru necesar pentru a rula dovada-mizei (proof-of-stake), consumă 0,06 KWh de energie pe oră – [Silicon Valley power chart](https://www.siliconvalleypower.com/residents/save-energy/appliance-energy-use-chart) (Unele estimări sunt puțin mai mari, de 0,15 KWh) - -La momentul când scriem acest articol există 140.592 de validatori de la 16.405 de adrese unice. Dintre aceștia, se presupune că 87.897 de validatori mizează de acasă. - -Se presupune că o persoană obişnuită care mizează de acasă folosește un computer personal desktop de 100 de wați pentru a rula în medie 5,4 clienți validatori. - -Cei 87.897 de validatori care rulează de acasă execută 16.300 de utilizatori care consumă ~1,64 megawatt de energie. - -Restul validatorilor sunt gestionați de către staker-i de custodie, cum ar fi schimburile și serviciile de mizare. Putem presupune că aceștia consumă 100 W la fiecare 5,5 validatori. Facem o supraestimare brută, doar ca să ne asigurăm că nu greşim. - -În total, Ethereum-ul pe sistemul dovezii-mizei (proof-of-stake) consumă în jur de 2,62 megawați, adică aproape cât un mic oraș american. - -Aceasta este o reducere de cel puțin 99,95% a consumului total de energie din estimarea Digiconomist de 44,94 TWh pe an pe care miner-ii Ethereum o consumă actualmente. - -#### 2. Consumul de energie al Visa {#fn-2} - -Costul a 100.000 de tranzacții Visa este de 149 kWh - [Consumul mediu de energie pe tranzacție al rețelei Bitcoin în comparație cu rețeaua VISA în 2020, Statista](https://www.statista.com/statistics/881541/bitcoin-energy-consumption-transaction-comparison-visa/) - -La sfârșitul anului încheiat în septembrie 2020 au procesat 140.839.000.000 de tranzacții – [Raportul financiar Visa pentru trimestrul IV 2020](https://s1.q4cdn.com/050606653/files/doc_financials/2020/q4/Visa-Inc.-Q4-2020-Operational-Performance-Data.pdf) - -#### 3. Consumul de energie pentru 100.000 de tranzacții pe o rețea de fragmente de dovada-mizei. {#fn-3} - -Se estimează că actualizările de scalabilitate vor permite rețelei să proceseze între 25.000 și 100.000 de tranzacții pe secundă, [,100.000 fiind maximul teoretic în acest moment](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698). - -[Vitalik Buterin despre potențialul tranzacțiilor pe secundă cu sistemul de fragmentare](https://twitter.com/VitalikButerin/status/1312905884549300224) - -Fragmentarea va permite cel puțin un număr de tranzacții de 64 de ori mai mare decât numărul actual, care este de aproximativ 15 tranzacții. Este cantitatea de lanțuri de fragmente (date și capacitate în plus) care va fi introdusă. [Mai multe informații despre lanțurile de fragmente](/roadmap/danksharding/) - -Asta înseamnă că putem estima cât timp va dura procesarea a 100.000 de tranzacții, astfel încât să putem compara cu exemplul Visa de mai sus. - -- `15 * 64 = 960` de tranzacții pe secundă. -- `100.000 / 960 = 104,2` secunde pentru a procesa 100.000 de tranzacții. - -În 104,2 secunde, rețeaua Ethereum utilizează următoarea cantitate de energie: - -`1,44 kWh utilizați zilnic * 10.000 de noduri de rețea = 14.400 kWh` pe zi. - -Într-o zi sunt 86.400 de secunde, deci `14.400 / 86.400 = 0,166666666667kWh` pe secundă. - -Prin înmulțirea acestui număr cu timpul necesar pentru a procesa 100.000 de tranzacții: `0,16666666666667 * 104,2 = 17,366666666701 kWh`. - -Aceasta înseamnă **11,655480989866%** din energia consumată de un număr similar de tranzacții pe Visa. - -Rețineți că acest lucru se bazează pe cantitatea minimă de tranzacții pe care Ethereum le va putea gestiona pe secundă. Dacă Ethereum atinge potențialul său de 100 000 de tranzacții pe secundă, aceste 100.000 de tranzacții ar consuma 0,166666666667kWh. - -Cu alte cuvinte, dacă Visa procesează 140.839.000.000 de tranzacții ce costă cât 149 kWh la 100.000 de tranzacții, înseamnă că se consumă 209.850.110 kWh de energie pe an. - -Într-un singur an, Ethereum va consuma 5.256.000 kWh. Cu un potențial de 788.940.000.000.000 - 3.153.600.000.000.000 de tranzacții procesate în această perioadă. - - - În cazul în care considerați că aceste statistici sunt incorecte sau se poate crește precizia lor, vă rugăm să semnalați o problemă sau să creați un PR. Acestea sunt estimări făcute de echipa ethereum.org utilizând informații accesibile publicului și ce este în faza de proiect pentru Ethereum. Aceasta nu reprezintă o promisiune oficială din partea Fundației Ethereum. - diff --git a/src/content/translations/ro/roadmap/beacon-chain/index.md b/src/content/translations/ro/roadmap/beacon-chain/index.md deleted file mode 100644 index e731c4578ba..00000000000 --- a/src/content/translations/ro/roadmap/beacon-chain/index.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: Lanțul Beacon -description: Aflați despre Lanțul Beacon - actualizarea care a introdus în Ethereum dovada-mizei. -lang: ro -template: upgrade -image: ../../../../../assets/upgrades/core.png -summaryPoint1: Lanțul Beacon a introdus dovada mizei în ecosistemul Ethereum. -summaryPoint2: Acesta a fost fuzionat cu lanțul dovadă a muncii Ethereum original în septembrie 2022. -summaryPoint3: Lanțul Beacon a introdus logica consensului și protocolul de bârfă al blocului care protejează Ethereum în acest moment. ---- - - - Lanțul Beacon a fost lansat pe 1 decembrie 2020 și a formalizat dovada mizei ca mecanism de consens al Ethereum prin modernizarea Fuziunii în 15 septembrie 2022. - - -## Ce este lanțul Beacon? {#what-is-the-beacon-chain} - -Lanțul Beacon a fost numele blockchain-ului dovada mizei original, lansat în 2020. A fost creat pentru a ne asigura că logica de consens cu dovada mizei este sănătoasă și durabilă înainte de a o activa în Rețeaua principală Ethernet. Prin urmare, a funcționat împreună cu dovada muncii Ethereum originală. Dezactivarea și activarea dovezii muncii în Ethereum a necesitat o instrucțiune prin care Lanțul Beacon să accepte tranzacții din lanțul Ethereum original, să le regrupeze în blocuri și să le organizeze într-un blockchain folosind un mecanism de consens bazat pe dovada mizei. În același moment, clienții originali Ethereum au oprit minarea, propagarea blocului și logica consensului, transferând toate acestea în Lanțul Beacon. Acest eveniment a fost cunoscut sub numele de [Fuziunea](/roadmap/merge/). Odată ce Fuziunea a avut loc, nu au mai existat două blockchain-uri, ci doar un singur lanț dovada mizei Ethereum. - -## Care a fost rolul Lanțului Beacon? {#what-does-the-beacon-chain-do} - -Lanțul Beacon a fost numele dat unui registru al conturilor care a condus și coordonat rețeaua de [stakeri](/staking/) Ethereum înainte ca stakerii să înceapă validarea tranzacțiilor Ethereum reale. Nu a procesat tranzacții și nu a gestionat interacțiunile contractului inteligent. - -A introdus motorul pentru consens (sau „stratul de consens”) care a luat locul minării prin dovada muncii în Ethereum și a adus îmbunătățiri majore. - -Lanțul Beacon a fost o componentă fundamentală pentru [securitatea, respectul pentru mediu și scalabilitatea Ethereum de care ne bucurăm acum](/roadmap/vision/). - -## Impactul Lanțului Beacon {#beacon-chain-features} - -### Introducere despre mizare {#introducing-staking} - -Lanțul Beacon a introdus [dovada mizei](/developers/docs/consensus-mechanisms/pos/) în Ethereum. Aceasta asigură securitatea Ethereum și generează mai mult ETH pentru validatori în cadrul procesului. În practică, mizarea implică mizarea ETH pentru activarea software-ului validatorului. În calitate de staker, rulați software-ul care creează și validează noile blocuri din lanț. - -Mizarea joacă același rol avut înainte de [minare](/developers/docs/mining/), dar diferă în multe moduri. Minarea necesita cheltuieli inițiale mari, sub forma unor echipamente hardware puternice și a unui consum mare de energie, ceea ce duce la economii de scalare și promovarea centralizării. De asemenea, minarea nu implica cerințe pentru blocarea activelor drept garanție, limitând capacitatea protocolului de a pedepsi actorii răi după un atac. - -Tranziția la dovada mizei a făcut ca Ethereum să fie mult mai sigur și mai descentralizat în comparație cu dovada muncii. Cu cât numărul de oameni din rețea este mai mare, cu atât mai descentralizată și mai sigură în caz de atacuri devine aceasta. - - - Dacă dorești să devii un validator și să contribui la securitatea Ethereum, află mai multe despre mizare. - - -### Configurarea pentru fragmentare {#setting-up-for-sharding} - -De la momentul în care Lanțul Beacon a fuzionat cu Rețeaua principală Ethereum, comunitatea Ethereum a început să caute să scaleze rețeaua. - -Dovada mizei are avantajul de a deține un registru cu toți producătorii aprobați în orice moment, fiecare având în joc ETH. Acest registru creează condițiile pentru capacitatea de a diviza și de a cuceri, dar separă în mod fiabil responsabilitățile specifice rețelei. - -Această responsabilitate contrastează cu dovada muncii, unde minerii nu au nicio obligație față de rețea și ar putea opri minarea și ar putea dezactiva permanent software-ul nodului într-o clipă, fără repercusiuni. De asemenea, nu există niciun registru al promotorilor de blocuri cunoscuți și nicio modalitate fiabilă de a împărți responsabilitățile din rețea în siguranță. - -[Aflați mai multe despre fragmentare](/roadmap/danksharding/) - -## Relațiile dintre actualizări {#relationship-between-upgrades} - -Toate actualizările Ethereum se află într-o anumită corelație. Deci, să recapitulăm cum afectează Lanțul Beacon celelalte actualizări. - -### Lanțul Beacon și Fuziunea {#merge-and-beacon-chain} - -La început, Lanțul Beacon a existat separat de Rețeaua principală Ethereum, dar au fuzionat în 2022. - - - Fuziunea - - -### Fragmentele și Lanțul Beacon {#shards-and-beacon-chain} - -Fragmentarea poate intra în ecosistemul Ethereum în siguranță doar cu un mecanism de consens în vigoare, dovada mizei. Lanțul Beacon a introdus mizarea, care a „fuzionat” cu Rețeaua principală, deschizând calea pentru fragmentare, pentru o scalare și mai mare a Ethereum. - - - Lanțurile de fragmente - - -## Referințe suplimentare - -- [Mai multe despre viitoarele modernizări ale Ethereum](/roadmap/vision) -- [Mai multe despre dovada mizei](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/ro/roadmap/merge/index.md b/src/content/translations/ro/roadmap/merge/index.md deleted file mode 100644 index 437695e894b..00000000000 --- a/src/content/translations/ro/roadmap/merge/index.md +++ /dev/null @@ -1,220 +0,0 @@ ---- -title: Fuziunea -description: Aflați mai multe despre Fuziune, când Rețeaua principală Ethereum a adoptat dovada mizei. -lang: ro -template: upgrade -image: ../../../../../assets/upgrades/merge.png -summaryPoint1: Rețeaua principală Ethereum folosește dovada mizei, dar nu a fost întotdeauna așa. -summaryPoint2: Modernizarea de la mecanismul original al dovezii muncii la dovada mizei a purtat numele de Fuziune. -summaryPoint3: Fuziunea se referă la fuziunea dintre Rețeaua principală Ethernet și un blockchain dovada mizei separat, numit Lanțul Beacon, ceea ce acum funcționează ca un singur lanț. -summaryPoint4: Fuziunea a redus consumul de energie al Ethereum cu aproximativ 99,95%. ---- - - - Fuziunea a avut loc în 15 septembrie 2022. Aceasta a finalizat tranziția Ethereum la consensul cu dovada mizei, scoțând din uz oficial dovada muncii și reducând consumul de energie cu aproximativ 99,95%. - - -## Ce este Fuziunea? {#what-is-the-merge} - -Fuziunea a reprezentat combinarea stratului de execuție original al Ethereum (Rețeaua principală care a existat încă de la [geneză](/history/#frontier)) cu noul strat de consens cu dovada mizei, Lanțul Beacon. Acesta a eliminat nevoie de minare cu un consum mare de energie și, în schimb, a permis ca rețeaua să fie securizată folosind miza ETH. Realizarea viziunii Ethereum a fost un pas cu adevărat extraordinar: mai multă scalabilitate, mai multă securitate și mai multă durabilitate. - - - -Inițial, [Lanțul Beacon](/roadmap/beacon-chain/) a fost lansat separat de [Rețeaua principală](/glossary/#mainnet). Rețeaua principală Ethereum - cu toate conturile, soldurile, contractele inteligente și starea blockchainului - a continuat să fie securizată prin [dovada muncii](/developers/docs/consensus-mechanisms/pow/), chiar și atunci când Lanțul Beacon funcționa în paralel folosind [dovada mizei](/developers/docs/consensus-mechanisms/pos/). Fuziunea a avut loc când acest două sisteme s-au reunit în cele din urmă și dovada muncii a fost înlocuită permanent de dovada mizei. - -Imaginează-ți Ethereum ca o navă spațială care a fost lansată înainte de a fi fost foarte bine pregătită pentru o călătorie interstelară. Prin Lanțul Beacon, comunitatea a construit un motor nou și o carenă întărită. După efectuarea unor teste majore, a venit timpul pentru schimbarea motorului vechi cu cel nou în timpul călătoriei. Aceasta e permis fuziunea motorului nou, mai eficient în nava existentă, ceea ce a dus la câștigarea unui număr mare de ani lumină și la cucerirea universului. - -## Fuzionarea cu Mainnet {#merging-with-mainnet} - -Dovada muncii a securizat Rețeaua principală Ethereum de la geneză până la Fuziune. Aceasta a permis blockchainului Ethereum pe care îl cunoaștem cu toții să vadă lumina zilei în iulie 2015, cu toate funcțiile sale familiare: tranzacții, contracte inteligente, conturi etc. - -De-a lungul istoriei Ethereum, dezvoltatorii s-au pregătit pentru o eventuală tranziție de la dovada muncii la dovada mizei. La 1 decembrie 2020, Lanțul Beacon a fost creat ca un blockchain separat de Rețeaua principală, funcționând în paralel. - -Lanțul Beacon nu a prelucrat inițial tranzacții din Rețeaua principală. În schimb, obținea consensul pe cont propriu, punând de acord validatorii activi și soldurile conturilor. După teste ample, a venit momentul în care Lanțul Beacon să ajungă la consens cu privire la datele din lumea reală. După Fuziune, Lanțul Beacon a devenit motorul pentru consens pentru toate datele rețelei, inclusiv tranzacțiile din stratul de execuție și soldurile conturilor. - -Fuziunea a reprezentat trecerea oficială la folosirea Lanțului Beacon drept motor al producției de blocuri. Minarea nu mai este mijlocul de producere a blocurilor valide. În schimb, validatorii care utilizează dovada mizei au adoptat acest rol și sunt responsabili acum de prelucrarea validității tuturor tranzacțiilor și de propunerea de blocuri. - -Niciun istoric nu a fost pierdut în Fuziune. Când Rețeaua principală a fuzionat cu Lanțul Beacon, a fuzionat cu întregul istoric al tranzacțiilor Ethereum. - - -Această tranziție la dovada mizei a schimbat felul în care este emis eterul. Aflați mai multe despre emiterea de eter înainte și după Fuziune. - - -### Utilizatori și deținători {#users-holders} - -**Fuziunea nu a schimbat nimic pentru deținători/uilizatori.** - -_Acest lucru trebuie repetat_: în calitate de utilizator sau deținător de ETH sau de orice alt activ digital în Ethereum, precum și în calitate de staker care nu operează pe noduri, **nu trebuie să faceți ceva în legătură cu fondurile sau portofelul dumneavoastră în urma Fuziunii.** ETH este pur și simplu ETH. Nu există un „ETH vechi”/„ETH nou” sau „ETH1”/„ETH2”, iar portofelele funcționează după Fuziune exact la fel ca înainte. Cel mai probabil, cei care îți spun altceva sunt escroci. - -În ciuda înlocuirii dovezii muncii, întregul istoric al Ethereum de la geneză a rămas intact și nemodificat de trecerea la dovada mizei. Toate fondurile deținute în portofel înainte de Fuziune pot fi accesate în continuare după Fuziune. **Nu trebuie să faci nimic pentru modernizare.** - -[Mai multe despre securitatea Ethereum](/security/#eth2-token-scam) - -### Operatorii de noduri și dezvoltatorii de aplicații {#node-operators-dapp-developers} - - - -Principalele elemente de acțiune includ: Execută _atât_ un client de consens, cât și un client de execuție; punctele finale terțe pentru obținerea datelor de execuție nu mai funcționează de la Fuziune. 2. Autentifică atât clientul de execuție, cât și cel de consens cu un secret JWT partajat, astfel încât să poată comunica în siguranță. 3. Setează o adresă „destinatar taxă” pentru a primi bacșișuri pentru comisioanele de tranzacție/MEV câștigate. - -Dacă nu efectuezi primele două elemente de mai sus, nodul va fi considerat „offline” până când ambele straturi sunt sincronizate și autentificate. - -Dacă nu definești un „destinatar pentru taxă”, validatorul va putea acționa în continuare ca de obicei, dar vei rata bacșișurile pentru taxele de tranzacție nearse și MEV pe care le-ai fi câștigat în blocurile propuse de validatorul tău. - - - - -Până la momentul Fuziunii, un client de execuție (precum Geth, Erigon, Besu sau Nethermind) a fost suficient pentru a primi, valida corect și propaga blocuri bârfite de rețea. _După Fuziune_, validitatea tranzacțiilor conținute în blocul de execuție depinde și de validitatea „blocului de consens” conținut. - -Ca urmare, un nod Ethereum complet necesită atât un client de execuție, cât și un client de consens. Acești doi clienți funcționează împreună folosind un nou API motor. API-ul motor necesită autentificare folosind un secret JWT, oferit pentru ambii clienți pentru a permite comunicații securizate. - -Principalele elemente de acțiune includ: - -- Instalarea unui client de consens pe lângă un client de execuție -- Autentificarea clientului de execuție și consens cu un secret JWT partajat, astfel încât să poată comunica între ele în siguranță. - -Dacă nu efectuezi elementele de mai sus, nodul tău va fi considerat „offline” până când ambele straturi sunt sincronizate și autentificate. - - - - - -Fuziunea a venit cu modificări ale consensului, care includ și modificări legate de: - -- structura blocului -- sincronizare fantă/bloc -- modificări de opcoduri -- surse de randomizare în lanț -- conceptul de _cap sigur_ și _blocuri finalizate_ - -Pentru mai multe informații, consultați această postare a lui Tim Beiko despre [Impactul Fuziunii asupra Stratului aplicației Ethereum](https://blog.ethereum.org/2021/11/29/how-the-merge-impacts-app-layer/). - - -## Fuziunea și consumul de energie {#merge-and-energy} - -Fuziunea a marcat finalul dovezii muncii pentru Ethereum și începutul unei ere Ethereum mai durabile, mai favorabile pentru mediu. Consumul de energie al Ethereum a scăzut cu aproximativ 99,95%, transformând Ethereum într-un blockchain verde. Află mai multe despre [Consumul de energie al Ethereum](/energy-consumption/). - -## Fuziunea și scalarea {#merge-and-scaling} - -De asemenea, Fuziunea a creat posibilitatea pentru și mai multe modernizări de scalabilitate care nu erau posibile în sistemul cu dovada muncii, aducând Ethereum cu un pas mai aproape de a atinge amploarea, securitatea și durabilitatea descrise în [Viziunea Ethereum](/roadmap/vision/). - -## Neînțelegeri despre Fuziune {#misconceptions} - - -Există două tipuri de noduri Ethereum: noduri care pot propune blocuri și noduri care nu pot propune blocuri. - -Nodurile care propun blocuri sunt doar un număr mic din numărul total de noduri pe Ethereum. Această categorie include noduri de minare în dovada muncii (PoW) și noduri de validator în dovada mizei (PoS). Această categorie necesită angajarea de resurse economice (precum puterea hashului pentru GPU în dovada muncii sau ETH mizat în dovada mizei) în schimbul posibilității de a propune ocazional următorul bloc și de a câștiga recompense acordate de protocol. - -Celelalte noduri ale rețelei (adică majoritatea) nu necesită angajarea de resurse economice mai mari în plus față de un computer de uz general cu o capacitate de stocare liberă de 1-2 TB și o conexiune la internet. Aceste noduri nu propun blocuri, dar continuă să joace un rol esențial în asigurarea securității rețelei prin tragerea la răspundere a tuturor inițiatorilor de blocuri, prin detectarea noilor blocuri și verificarea validității acestora la sosire, în conformitate cu regulile de consens ale rețelei. Dacă blocul este valid, nodul continuă propagarea acestuia prin rețea. Dacă blocul nu este valid indiferent de motiv, software-ul nod îl va ignora ca nefiind valid și va opri propagarea. - -Execuția unui nod care nu produce blocuri este posibilă pentru oricine, indiferent de mecanismul de consens (dovada muncii sau dovada mizei); acest lucru este _puternic încurajat_ pentru toți utilizatorii care au mijloacele necesare. Rularea unui nod este extrem de valoroasă pentru Ethereum și oferă beneficii suplimentare oricărei persoane care operează propriul nod, precum securitate, confidențialitate îmbunătățite și rezistență la cenzură. - -Capacitatea oricui de a rula propriul nod este _absolut esențială_ pentru păstrarea unei rețele Ethereum descentralizate. - -[Mai multe despre rularea propriului nod](/run-a-node/) - - - - -Taxele pentru gaz sunt produsul cererii rețelei în funcție de capacitatea rețelei. Fuziunea a scos din uz dovada muncii, realizând tranziția la dovada mizei pentru consens, dar nu a modificat în mod semnificativ parametrii care influențează direct capacitatea rețelei sau debitul. - -Cu o [foaie de parcurs centrată pe regrupare](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698), eforturile sunt concentrate pe scalarea activității utilizatorului la [stratul 2](/layer-2/), în timp ce se activează stratul 1 al Rețelei principale ca un strat de soluționare descentralizat, securizat și optimizat pentru stocarea datelor de rollup pentru a face tranzacțiile rollup exponențial mai ieftine. Tranziția la dovada mizei este un precursor esențial pentru acest lucru. [Mai multe despre gaz și taxe.](/developers/docs/gas/) - - - -„Viteza” unei tranzacții poate fi măsurată în câteva moduri, inclusiv timpul care trebuie inclus într-un bloc și timpul până la finalizare. Ambele se modifică puțin, dar nu într-un mod pe care utilizatorii îl vor observa. - -Din punct de vedere istoric, în ceea ce privește dovada muncii, obiectivul a fost crearea unui bloc nou la fiecare ~13,3 secunde. În cazul dovezii mizei, fantele apar precis la fiecare 12 secunde, fiecare dintre acestea fiind o oportunitate pentru ca un validator să publice un bloc. Cele mai multe fante au blocuri, dar nu neapărat toate (adică un validator este offline). În cazul dovezii mizei, blocurile sunt generate cu ~10% mai frecvent decât în cazul dovezii muncii. Această schimbare este destul de nesemnificativă și este puțin probabil să fie observată de utilizatori. - -Dovada mizei a introdus conceptul de finalitate a tranzacției, care nu exista anterior. În cazul dovezii muncii, capacitatea de a inversa un bloc devine exponențial mai dificilă cu fiecare bloc creat peste o tranzacție, dar nu ajunge niciodată la zero. În cazul dovezii mizei, blocurile sunt grupate în epoci (perioade de timp de 6,4 minute, cu 32 de șanse pentru blocuri), pe care validatorii le votează. Când o epocă se încheie, validatorii votează dacă epoca este „justificată”. Dacă validatorii sunt de acord să justifice epoca, aceasta se finalizează în următoarea epocă. Anularea tranzacțiilor finalizate nu este viabilă economic, deoarece ar necesita obținerea și arderea a mai mult de o treime din ETH mizat total. - - - - -ETH mizat și recompensele pentru mizare continuă să fie blocate fără posibilitatea de retragere. Retragerile sunt planificate pentru viitoarea actualizare Shanghai. - - - -Acest lucru poate părea contraintuitiv față de nota de mai sus, conform căreia retragerile nu sunt activate până la actualizarea Shanghai, dar validatorii AU acces imediat la recompensele pentru taxe/MEV dobândite în timpul propunerilor de bloc. - -Protocolul emite ETH drept recompensă validatorilor pentru contribuția la consens. Stratul de consens reprezintă noul ETH emis, unde un validator are o adresă unică ce conține ETH mizat și recompensele pentru protocol. Acest ETH este blocat până la actualizarea Shanghai. - -ETH de pe stratul de execuție este contabilizat separat de stratul de consens. Când utilizatorii execută tranzacții în Rețeaua principală Ethereum, ETH trebuie plătit pentru achitarea costului gazului, inclusiv un comision pentru validator. Acest ETH se află deja pe stratul de execuție, NU este nou emis de protocol și este disponibil pentru validator imediat (cu condiția furnizării unei adrese corecte a „destinatarului taxei” în software-ul client). - - - -După ce actualizarea Shanghai permite retragerile, toți validatorii vor fi stimulați să retragă soldul mizei peste 32 ETH, deoarece aceste fonduri nu se adaugă la randament și, în caz contrar, vor fi blocate. În funcție de APR (stabilit de ETH total mizat), aceștia ar putea fi stimulați să abandoneze validatorul(ii) pentru a-și recupera întregul sold sau, poate, pentru a miza și mai mult recompensele, pentru a obține un randament și mai bun. - -O precizare importantă și necesară aici, ieșirile complete ale validatorului sunt limitate de protocol, prin urmare doar șase validatori pot ieși pentru fiecare epocă (la fiecare 6,4 minute, prin urmare 1350 pe zi sau doar aproximativ 43.200 ETH pe zi din 10 milioane ETH mizate). Această limită a ratei se ajustează în funcție de ETH total mizat și împiedică un exod de fonduri în masă. În plus, împiedică un potențial atacator să folosească miza pentru a comite un atacat penalizabil și să retragă tot soldul mizat în aceeași epocă înainte ca protocolul să poată aplica penalitatea. - -APR este dinamic în mod intenționat, permițând stakerilor să găsească un echilibru pentru cât de mult sunt dispuși să fie plătiți pentru a ajuta la securizarea rețelei. Când retragerile sunt activate, dacă rata este prea mică, validatorii se vor retrage la o rată limitată de protocol. Treptat, acest lucru crește APR pentru toți cei care rămân, atrăgând stakeri noi sau care revin. - - -## Ce s-a întâmplat cu „Eth2”? {#eth2} - -Termenul „Eth” a devenit perimat. După fuzionarea „Eth1” și „Eth2” într-un singur lanț, nu mai există nevoia de a distinge între două rețele Ethereum. Există doar Ethereum. - -Pentru a limita confuziile, comunitatea a actualizat acești termeni: - -- „Eth1” este acum „stratul de execuție”, care gestionează tranzacțiile și execuția. -- „Eth2” este acum „stratul de consens”, care gestionează consensul pentru dovada mizei. - -Aceste actualizări ale terminologiei modifică numai convențiile pentru denumiri, și nu obiectivele sau foaia de parcurs a lui Ethereum. - -[Aflați mai multe despre noua denumire 'Eth2'](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) - -## Relațiile dintre actualizări {#relationship-between-upgrades} - -Toate actualizările Ethereum se află într-o anumită corelație. Să recapitulăm cum este corelată Fuziunea cu celelalte actualizări. - -### Fuziunea și Lanțul Beacon {#merge-and-beacon-chain} - -Fuziunea reprezintă adoptarea formală a Lanțului Beacon ca noul strat de consens pentru stratul de execuție original al Rețelei principale. De la Fuziune, validatorii sunt alocați pentru a securiza Rețeaua principală Ethereum, iar minarea pe [dovada muncii](/developers/docs/consensus-mechanisms/pow/) nu mai este un mijloc valid de producere a blocurilor. - -În schimb, blocurile sunt propuse prin validarea nodurilor care dețin ETH mizat în schimbul dreptului de a participa la consens. Aceste modernizări au deschis drumul pentru viitoarele modernizări de scalabilitate, inclusiv pentru fragmentare. - - - Lanțul Beacon - - -### Fuziunea și actualizarea Shanghai {#merge-and-shanghai} - -Pentru a simplifica și maximiza o tranziție rapidă și de succes la dovada mizei, modernizarea Fuziune nu a inclus anumite funcții anticipate, precum posibilitatea de a retrage ETH mizat. Actualizarea Shanghai este planificată să urmeze Fuziunii, ceea ce va permite stakerilor să efectueze retragerea. - -Rămâi la curent cu [planificarea actualizării Shanghai pe GitHub](https://github.com/ethereum/pm/issues/450) sau pe [Blogul pentru cercetare și dezvoltare al Fundației Ethereum](https://blog.ethereum.org/category/research-and-development/). Curioșii pot afla mai multe despre [Ce se întâmplă după Fuziune](https://youtu.be/7ggwLccuN5s?t=101), o prezentare efectuată de Vitalik la evenimentul ETHGlobal din aprilie 2021. - -### Fuziunea și fragmentarea {#merge-and-data-sharding} - -Inițial, se prevedea ca fragmentarea să fie implementată înainte ca Fuziunea să rezolve problema scalabilității. Cu toate acestea, odată cu avântul [nivelului 2 al soluțiilor de scalare](/layer-2/), prioritatea s-a mutat pe schimbarea dovezii muncii cu dovada mizei. - -Planurile pentru fragmentare evoluează rapid, dar, având în vedere apariția și succesul tehnologiilor de nivelul 2 pentru scalarea executării tranzacției, planurile pentru fragmentare au fost reorientate către găsirea modalității optime de distribuire a problemei de stocare a datelor de apel comprimate din contractele rollup, permițând creșterea exponențială a capacității rețelei. Acest lucru nu ar fi posibil fără a se trece mai întâi la dovada mizei. - - - Fragmentarea - - -## Referințe suplimentare {#further-reading} - - - - diff --git a/src/content/translations/ro/whitepaper/index.md b/src/content/translations/ro/whitepaper/index.md deleted file mode 100644 index 0da44b0d237..00000000000 --- a/src/content/translations/ro/whitepaper/index.md +++ /dev/null @@ -1,501 +0,0 @@ ---- -title: Ethereum Whitepaper -description: O lucrare introductivă la Ethereum, publicată în 2013 înainte de lansare. -lang: ro -sidebarDepth: 2 ---- - -# Ethereum Whitepaper {#ethereum-whitepaper} - -_Această lucrare introductivă a fost publicată inițial în 2013 de Vitalik Buterin, fondatorul [Ethereum](/what-is-ethereum/), înainte de lansarea proiectului în 2015. Este demn de remarcat faptul că Ethereum, ca multe proiecte software open-source bazate pe comunitate, a evoluat de la începuturile sale inițiale._ - -_Deși are câțiva ani de când a fost creat, menținem această lucrare, deoarece continuă să servească drept referință utilă și o reprezentare exactă a Ethereum și a viziunii sale. Pentru a afla despre cele mai recente evoluții ale Ethereum și despre modul în care se fac modificări ale protocolului, recomandăm acest [ghid](/learn/)._ - -## O nouă generație de contracte inteligente și o platformă de aplicații descentralizată {#a-next-generation-smart-contract-and-decentralized-application-platform} - -Dezvoltarea Bitcoin de către Satoshi Nakamoto în 2009 a fost adesea apreciată ca o dezvoltare radicală în bani și monedă, fiind primul exemplu a unui activ digital care simultan nu are niciun suport sau [valoare intrinsecă](http://bitcoinmagazine.com/8640/an-exploration-of-intrinsic-value-what-it-is-why-bitcoin-doesnt-have-it-and-why-bitcoin-does-have-it/) și niciun emitent sau controlor centralizat". Cu toate acestea, o altă parte - probabil mai importantă - a experimentului Bitcoin este tehnologia blockchain care stă la bază ca instrument de consens distribuit, iar atenția începe rapid să se deplaseze către acest alt aspect al Bitcoin. În mod obișnuit aplicațiile alternative citate ale tehnologiei blockchain includ utilizarea activelor digitale în-blockchain pentru a reprezenta monede personalizate și instrumente financiare ([monede colorate](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit)), proprietatea unui dispozitiv fizic subiacent ([proprietate inteligentă](https://en.bitcoin.it/wiki/Smart_Property)), active non-fungibile precum nume de domenii [(Namecoin](http://namecoin.org)), precum și aplicații mai complexe care implică existența de active digitale controlate direct de o bucată de cod care implementează reguli arbitrare ([contracte inteligente](http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/idea.html)) sau chiar [organizații autonome descentralizate](http://bitcoinmagazine.com/7050/bootstrapping-a-decentralized-autonomous-corporation-part-i/) bazate pe blockchain (DAO). Ce intenționează să ofere Ethereum este un blockchain cu un limbaj de programare Turing-complet încorporat, care poate fi folosit pentru a crea „contracte” care pot fi utilizate pentru a codifica funcții de tranziția de stare arbitrară, permițând utilizatorilor să creeze oricare dintre sistemele descrise mai sus, precum și multe altele pe care nu le-am imaginat încă, pur și simplu scriind logica în câteva linii de cod. - -## Introducere în Bitcoin și concepte existente {#introduction-to-bitcoin-and-existing-concepts} - -### Istoric {#history} - -Conceptul de monedă digitală descentralizată, precum și aplicațiile alternative, precum registrele de proprietate, există de zeci de ani. Protocoalele anonime de numerar electronic din anii 1980 și 1990, bazate în cea mai mare parte pe o primitivă criptografică, cunoscută sub numele de Chaumian Blinding, au furnizat o monedă cu un grad ridicat de confidențialitate, dar nu au reușit să câștige tracțiune din cauza dependenței lor de un sistem centralizat intermediar. În 1998, [b-money](http://www.weidai.com/bmoney.txt) ai lui Wei Dai au devenit prima propunere de a introduce ideea de a crea bani prin rezolvarea puzzle-urilor computaționale, precum și a consensului descentralizat, dar propunerea a avut puține detalii cu privire la modul în care consensul descentralizat ar putea fi implementat. În 2005, Hal Finney a introdus un concept al [dovezilor de muncă reutilizabile](http://nakamotoinstitute.org/finney/rpow/) (rpow), un sistem care folosește ideile de b-money și cele de puzzle-uri Hashcash dificile din punct de vedere al calculului ale lui Adam Back, pentru a crea un concept pentru o criptomonedă, dar din nou, nu a reușit să-și atingă idealul, bazându-se pe computerul de încredere ca back-end. În 2009, o monedă descentralizată a fost implementată pentru prima dată în practică de Satoshi Nakamoto, combinând primitive stabilite pentru gestionarea proprietății prin criptografie cu cheie publică cu un algoritm de consens pentru a urmări cine deține monede, cunoscut sub numele de „dovada muncii”. - -Mecanismul din spatele dovezii muncii a fost un progres astronomic, deoarece a rezolvat simultan două probleme. În primul rând, a furnizat un algoritm de consens simplu și moderat eficient, permițând nodurilor din rețea să convină în mod colectiv asupra unui set de actualizări canonice ale statului registrului Bitcoin. În al doilea rând, a oferit un mecanism pentru a permite intrarea liberă în procesul de consens, rezolvând problema politică de a decide cine ajunge să influențeze consensul, prevenind simultan atacurile de tip „sybil”. Face acest lucru prin substituirea unei bariere formale în calea participării, cum ar fi cerința de a fi înregistrată ca entitate unică pe o anumită listă, cu o barieră economică - greutatea unui singur nod în procesul de votare consens este direct proporțională cu puterea de calcul pe care o aduce nodul. De atunci, a fost propusă o abordare alternativă numită _dovada mizei_ (PoS), calculând greutatea unui nod ca fiind proporțională cu deținerile sale valutare și nu cu resursele de calcul; discutarea meritelor relative ale celor două abordări depășește scopul lucrării acesteia, dar trebuie remarcat faptul că ambele abordări pot fi utilizate pentru a servi drept coloana vertebrală a unei criptomonede. - -Iată o postare de pe blogul lui Vitalik Buterin, fondatorul Ethereum, despre [Preistoria Ethereum](https://vitalik.ca/general/2017/09/14/prehistory.html). [Aici](https://blog.ethereum.org/2016/02/09/cut-and-try-building-a-dream/) este o altă postare de pe blog cu mai multă istorie. - -### Bitcoin ca un sistem de tranziție de stare {#bitcoin-as-a-state-transition-system} - -![Tranziția de stare Ethereum](../../../whitepaper/ethereum-state-transition.png) - -Din punct de vedere tehnic, registrul unei criptomonede precum Bitcoin poate fi considerat un sistem de tranziție de stare, acolo unde există o „stare” constând din starea de proprietate a tuturor bitcoin-urilor existente și o „funcție de tranziție de stare” care ia o stare și o tranzacție și generează o nouă stare care este rezultatul. Într-un sistem bancar standard, de exemplu, starea este un bilanț, o tranzacție este o cerere să muți $X de la A la B, iar funcția de tranziție a stării reduce valoarea valoarea contului lui A cu $X și crește valoarea contului lui B cu $X. Când contul lui A are mai puțin de $X, în primul rând, starea funcției de tranziție returnează o eroare. Prin urmare, se pot defini formal: - - APPLY(S,TX) -> S' sau ERROR - -În sistemul bancar definit mai sus: - - APPLY({ Alice: $50, Bob: $50 },"trimite $20 de la Alice la Bob") = { Alice: $30, Bob: $70 } - -Dar: - - APPLY({ Alice: $50, Bob: $50 },"trimite $70 de la Alice la Bob") = ERROR - -„Starea” din Bitcoin este colecția tuturor monedelor (din punct de vedere tehnic, „ieșiri de tranzacție necheltuite” sau UTXO) care au fost exploatate dau nu au fost încă cheltuite, fiecare UTXO având o denumire și un proprietar (definit de o adresă de 20 de byți, care este în esență o cheie publică criptografică[fn. 1](#notes)). A tranzacția conține una sau mai multe intrări, fiecare intrare conținând o referință la un UTXO existent și la o semnătură criptografică produsă de cheia privată asociată cu adresa proprietarului și una sau mai multe ieșiri, fiecare ieșire conținând un nou UTXO care va fi adăugat la stare. - -Funcția de tranziție de stare `APPLY(S,TX) -> S'`se poate defini aproximativ după cum urmează: - -1. Pentru fiecare intrare în `TX`: - - - Dacă UTXO la care se face referire nu este în `S`, returnează o eroare. - - În cazul în care semnătura furnizată nu se potrivește cu proprietarul UTXO, returnează o eroare. - -2. În cazul în care suma valorilor tuturor intrărilor UTXO este mai mică decât suma nominală a tuturor ieșirilor UTXO, returnează o eroare. -3. Returnează `S'` cu toate intrările UTXO eliminate și toate ieșirile UTXO adăugate. - -Prima jumătate a primului pas împiedică tranzacțiile să cheltuiască monede care nu există, a doua jumătate a primului pas împiedică tranzacțiile să nu cheltuiască monedele altor persoane, iar a doua etapă impune conservarea valorii. Pentru a utiliza acest lucru pentru plată, protocolul este după urmează. Să presupunem că Alice vrea să trimită 11,7 BTC lui Bob. În primul rând, Alice va căuta un set de UTXO disponibile pe care le deține, care totalizează până la cel puțin 11,7 BTC. În mod realist, Alice nu va va putea obține exact 11,7 BTC; să spunem că minimul pe care îl poate obține este 6+4+2=12. Ea creează apoi o tranzacție cu aceste trei intrări și două ieșiri. Prima ieșire va fi 11,7 BTC cu adresa lui Bob ca proprietar, iar a doua ieșire va fi restul de 0,3 BTC „rest”, proprietarul fiind Alice însăși. - -### Minarea {#mining} - -![Blocuri Ethereum](../../../whitepaper/ethereum-blocks.png) - -Dacă am avea acces la un serviciu centralizat de încredere, implementarea acestui sistem ar fi banală; ar putea fi pur și simplu codificat exact cum am descris, utilizând discul dur al unui server centralizat pentru a ține evidența stării. Cu toate acestea, cu Bitcoin încercăm să construim un sistem valutar descentralizat, așa că va trebui să combinăm sistemul de tranziție de stare cu unul de consens, pentru a ne asigura că toată lumea este de acord cu ordinea tranzacțiilor. Procesul de consens descentralizat al Bitcoin necesită noduri în rețea pentru a încerca în mod continuu să producă pachete de tranzacții numite „blocuri”. Rețeaua este destinată să producă aproximativ un bloc la fiecare zece minute, fiecare bloc conținând un marcaj temporal, un nonce, o referință (adică hash) a blocului anterior și o listă a tuturor tranzacțiilor care au avut loc de la blocul anterior. În timp, acest lucru creează un „blockchain” persistent, în continuă creștere, care se actualizează constant pentru a reprezenta cea mai recentă stare a registrului Bitcoin. - -Algoritmul de verificare a validării unui bloc, exprimat în acest model, este după urmează: - -1. Verifică dacă blocul anterior la care face referire blocul există și este valid. -2. Verifică dacă marcajul temporal al blocului este mai mare decât cel al blocul anterior[fn. 2](#note) și mai puțin de 2 ore în viitor -3. Verifică dacă dovada muncii pe bloc este valabilă. -4. Să spunem că `S[0]` este starea de la sfârșitul blocului anterior. -5. Să presupunem că `TX` este lista de tranzacții a blocului cu `n` tranzacții. Pentru orice `i` din `0...n-1`, alege `S[i+1] = APPLY(S[i],TX[i])` Dacă vreo aplicație returnează o eroare, ieși și returnează fals. -6. Returnează true și înregistrează `S[n]` ca stare la sfârșitul acestui bloc. - -În esență, fiecare tranzacție în bloc trebuie să furnizeze o stare validă de trecere de la ceea ce a fost starea canonică înainte ca tranzacția să fie executată la noua stare. Reține că starea nu este codificată în bloc în niciun fel; este pur și simplu o abstractizare care să fie ținută minte de nodul de validare și poate fi calculată (în siguranță) pentru orice bloc numai pornind de la starea de geneză și aplicând secvențial fiecare tranzacție în fiecare bloc. În plus, reține că ordinea în care minerul include tranzacțiile în bloc contează; dacă sunt două tranzacții A și B într-un bloc, astfel încât B să cheltuiască UTXO creat de A, atunci blocul va fi valabil dacă A vine înainte de B, dar nu altfel. - -Singura condiție de valabilitate prezentă în lista de mai sus care nu se găsește în alte sisteme este cerința pentru „dovada muncii”. Condiția precisă este ca hash-ul dublu-SHA256 al fiecărui bloc, tratat ca un număr de 256 de biți, trebuie să fie mai mic decât o țintă ajustată dinamic, care din momentul acestei scrieri este de aproximativ 2187. Scopul acestui lucru este de a face crearea blocului „dificilă” din punct de vedere computațional, împiedicând astfel atacatorii „sybil” să refacă întregul blockchain în favoarea lor. Deoarece SHA256 este conceput pentru a fi o funcție de pseudorandom complet imprevizibilă, singura modalitate de a crea un bloc valid este pur și simplu prin încercare și eroare, crescând în mod repetat nonce-ul și verificând dacă noul hash se potrivește. - -La ținta curentă de \~2187, rețeaua trebuie să facă în medie \~269 încercări înainte de a găsi un bloc valid; în general, ținta este recalibrată de rețea la fiecare 2016 blocuri, astfel încât, în medie, un bloc nou este produs de unele noduri din rețea la fiecare zece minute. Pentru a compensa minerii pentru această lucrare de calcul, minerul fiecărui bloc are dreptul de a include o tranzacție oferindu-și 12,5 BTC de nicăieri. În plus, dacă orice tranzacție are o valoare nominală totală mai mare în intrări decât în ​​ieșiri ca rezultat, diferența, de asemenea, merge la miner ca o „taxă de tranzacție”. De altfel, acesta este singurul mecanism prin care este emis BTC; starea genezei nu conținea nicio monedă. - -Pentru a înțelege mai bine scopul mineritului, să examinăm ce se întâmplă în cazul unui atacator rău intenționat. Deoarece criptografia care stă la baza Bitcoin este cunoscută ca fiind sigură, atacatorul va viza o parte a sistemului Bitcoin care nu este protejată de criptografie direct: ordinea tranzacțiilor. Strategia atacatorului este simplă: - -1. Trimite 100 BTC unui comerciant în schimbul unui anumit produs (de preferință un bun digital cu livrare rapidă) -2. Așteaptă livrarea produsului -3. Produce o altă tranzacție trimițând aceleași 100 BTC lui însuși -4. Încercă să convingă rețeaua că tranzacția sa pentru el însuși a fost cea care a venit prima. - -Odată ce pasul (1) a avut loc, după câteva minute un miner va include tranzacția într-un bloc, să zicem blocul numărul 270. După aproximativ o oră, alte cinci blocuri vor fi adăugate lanțului după acel bloc, cu fiecare dintre aceste blocuri indicând indirect tranzacția și astfel, „confirmând-o". În acest moment, comerciantul va accepta plata ca fiind finalizată și va livra produsul; din moment ce presupunem că acesta este un bun digital, livrarea este instantanee. Acum, atacatorul creează o altă tranzacție, trimițând 100 de BTC către el însuși. În cazul în care atacatorul pur și simplu eliberează tranzacția la întâmplare, aceasta nu va fi procesată; minerii vor încerca să ruleze `APPLY(S,TX)` și să observe că `TX` consumă un UTXO care nu mai este în stare. Deci, în schimb, atacatorul creează o „furculiță” a blockchain-ului, începând prin exploatarea unei alte versiuni de bloc 270 indicând spre același bloc 269 ca fiind părinte, dar cu noua tranzacție în locul celei vechi. Pentru că datele blocului sunt diferite, acest lucru necesită refacerea dovezii de muncă. Mai mult decât atât, noua versiune a blocului 270 a atacatorului are un hash diferit, astfel încât blocurile originale de la 271 la 275 nu „indică” spre el; astfel, lanțul original și noul lanț al atacatorului sunt complet separate. Regula este că într-o furculiță cel mai lung blockchain este considerat a fi adevărat, astfel încât minerii legitimi vor lucra pe lanțul 275 în timp ce atacatorul singur lucrează pe lanțul 270. Pentru ca atacatorul să-și facă blockchain-ul lui ca cel mai lung, el ar trebui să aibă mai multă putere de calcul decât restul rețelei combinate pentru a ajunge din urmă (prin urmare, „51% atac”). - -### Arbori Merkle {#merkle-trees} - -![SPV în Bitcoin](../../../whitepaper/spv-bitcoin.png) - -_Stânga: este suficient să se prezinte doar un număr mic de noduri într-un arbore Merkle pentru a da o dovadă a valabilității unei ramuri._ - -_Dreapta: orice încercare de a schimba orice parte a arborelui Merkle va duce în cele din urmă la o inconsistență undeva în lanț._ - -O caracteristică importantă de scalabilitate a Bitcoin este că blocul este stocat într-o structură de date pe mai multe niveluri. „Hash”-ul unui bloc este de fapt numai hash-ul antetului blocului, o bucată de aproximativ 200 de byți de date care conține marcajul temporal, nonce, hash-ul blocului anterior și hash-ul rădăcină al unei structuri de date numită arborele Merkle care stochează toate tranzacțiile în bloc. Un arbore Merkle este un tip de arbore binar, compus dintr-un set de noduri cu un număr mare de noduri de frunze în partea de jos a arborelui care conțin datele subiacente (plasate dedesubt), un set de noduri intermediare în care fiecare nod este hash-ul celor doi copii ai săi, și în cele din urmă un singur nod rădăcină, format, de asemenea, din hash-ul celor doi copii ai săi, reprezentând „partea de sus” a arborelui. Scopului arborelui Merkle este să permită ca datele dintr-un bloc să fie livrate bucată cu bucată: un nod poate descărca numai antetul unui bloc dintr-o singură sursă, partea mică a arborelui relevantă pentru el de la o altă sursă, și încă să fie siguri că toate datele sunt corecte. Motivul pentru care funcționează este că hash-urile se propagă în sus: dacă un utilizator rău intenționat încearcă să schimbe o tranzacție cu una falsă în partea de jos a unui arbore Merkle, această modificare va provoca o modificare a nodului de mai sus și apoi o modificare a nodului de deasupra aceluia, schimbând în cele din urmă rădăcina arborelui și, prin urmare, hash-ul blocului, determinând protocolul să îl înregistreze ca un bloc complet diferit (aproape sigur cu o dovadă nevalidă de lucru). - -Protocolul arborelui Merkle este, fără îndoială, esențial pentru durabilitatea pe termen lung. Un „nod complet” în rețeaua Bitcoin, unul care stochează și procesează toate elementele fiecărui bloc, ocupă aproximativ 15 GB de spațiu pe disc în rețeaua Bitcoin începând cu aprilie 2014 și crește cu peste un gigabyte pe lună. În prezent, acest lucru este viabil pentru unele calculatoare desktop și nu pentru telefoane, și mai târziu, în viitor, numai întreprinderile și pasionații vor putea participa. Un protocol cunoscut sub numele de „verificare simplificată a plăților” (SPV) permite existența unei alte clase de noduri, numite „noduri ușoare”, care descarcă anteturile de bloc, verifică dovada muncii pe anteturile de bloc și apoi descarcă numai „ramurile” asociate cu tranzacțiile care sunt relevante pentru acestea. Acest lucru permite nodurilor ușoare să determine cu o garanție puternică a securității care este starea oricărei tranzacții Bitcoin, și echilibrul lor actual, doar descărcând o parte foarte mică a întregului blockchain. - -### Aplicații Alternative Blockchain {#alternative-blockchain-applications} - -Ideea de a lua ideea blockchain de bază și de a o aplica altor concepte are, de asemenea, o istorie lungă. În 1998, Nick Szabo a venit cu conceptul de [titluri de proprietate sigure cu autoritatea proprietarului](http://nakamotoinstitute.org/secure-property-titles/), un document care descrie modul în care „noi progrese în tehnologia de baze de date replicate” va permite un sistem bazat pe blockchain pentru stocarea unui registru al celor care dețin un anumit teren, creând un cadru elaborat, care să includă concepte precum exploatarea fermieră, posesia adversă și impozitul pe teren georgian. Cu toate acestea, la momentul respectiv nu a existat, din păcate, niciun sistem eficient de baze de date replicate disponibil, și astfel protocolul nu a fost niciodată pus în aplicare în practică. După 2009 însă, odată ce consensul descentralizat al Bitcoin a fost dezvoltat, o serie de aplicații alternative au început să apară rapid. - -- **Namecoin** - creat în 2010, [Namecoin](https://namecoin.org/) este cel mai bine descris ca o bază de date descentralizată de înregistrare a numelui. În protocoalele descentralizate, cum ar fi Tor, Bitcoin și BitMessage, trebuie să existe o modalitate de identificare a conturilor, astfel încât alte persoane să poată interacționa cu ele, dar în toate soluțiile existente, singurul tip de identificator disponibil este un hash pseudo-aleatoriu ca `1LW79wp5ZBqaHW1jL5TCiBCQYtHagUWy`. În mod ideal, cineva ar dori să poată avea un cont cu un nume ca „george”. Cu toate acestea, problema este că, dacă o persoană poate crea un cont numit „george”, atunci altcineva poate folosi același proces pentru a înregistra „george” pentru ei înșiși, precum și să le impersonalizeze. Singura soluție este modelul „first-to-file”, unde primul care înregistrează reușește și al doilea eșuează - o problemă perfect potrivită pentru protocolul de consens Bitcoin. Namecoin este cea mai veche și cea mai de succes implementare a unui sistem de înregistrare a numelui folosind o astfel de idee. -- **Monede colorate** - scopul [monedelor colorate](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit) este de a servi ca protocol pentru a permite oamenilor să-și creeze propriile monede digitale - sau, în cazul banal important al unei monede cu o unitate, tokenuri digitale, pe blockchain-ul Bitcoin. În protocolul de monede colorate, cineva „emite” o nouă monedă prin atribuirea publică a unei culori la un anumit Bitcoin UTXO, iar protocolul definește în mod recursiv (repetitiv), culoarea altor UTXO pentru a fi aceeași cu culoarea intrării pe care tranzacția care le-a creat o folosește (se aplică unele reguli speciale în cazul intrărilor de culori mixte). Acest lucru permite utilizatorilor să mențină portofele care conțin numai UTXO de o anumită culoare și le folosesc în operațiunile lor ca bitcoin-uri obișnuite, urmărind înapoi prin blockchain pentru a determina culoarea oricărui UTXO pe care îl primesc. -- **Metacoins** - ideea din spatele unei metacoin este de a avea un protocol bazat pe Bitcoin, folosind tranzacții Bitcoin pentru a stoca tranzacții cu metacoin, dar având o funcție de tranziție de stare diferită, `APLPPLY'`. Deoarece protocolul metacoin nu poate împiedica apariția tranzacțiilor metacoin nevalide în blockchain-ul Bitcoin, se adaugă o regulă conform căreia dacă `APPLY'(S,TX)` returnează o eroare, protocolul implicit este `APPLY'(S,TX) = S`. Aceasta oferă un mecanism ușor pentru crearea unui protocol arbitrar de criptomonedă, potențial cu funcții avansate care nu pot fi implementate în interiorul Bitcoin în sine, dar cu un cost de dezvoltare foarte scăzut, odată ce complexitatea mineritului și a rețelelor este deja gestionată de protocolul Bitcoin. Cripomonedele metacoin au fost utilizate pentru implementarea unor clase de contracte financiare, înregistrarea numelor și schimbul descentralizat. - -Astfel, în general, există două abordări către construirea unui protocol de consens: construirea unei rețele independente și construirea unui protocol bazat pe Bitcoin. Fosta abordare, deși are un succes rezonabil în cazul aplicațiilor precum Namecoin, este dificil de implementat; fiecare implementare individuală trebuie să acroșeze (bootstrap) un blockchain independent, precum și construirea și testarea tuturor tranzițiilor de stare necesară și codurilor de rețea. În plus, anticipăm că setul de aplicații pentru tehnologia consensului descentralizat va urma o distribuție a legii puterii în care marea majoritate a aplicațiilor ar fi prea mici pentru a-și justifica propriul blockchain și observăm că există clase mari de aplicații descentralizate, în special organizații autonome descentralizate, care trebuie să interacționeze între ele. - -Abordarea bazată pe Bitcoin, pe de altă parte, are defectul că nu moștenește caracteristicile simplificate ale Bitcoin de verificare a plăților. SPV funcționează pentru Bitcoin, deoarece poate utiliza adâncimea blockchain-ului ca un proxy pentru valabilitate; la un moment dat, odată ce strămoșii unei tranzacții merg destul de departe înapoi, este sigur să spunem că au fost în mod legitim parte a stării. Pe de altă parte, metaprotocoalele bazate pe blockchain nu pot forța blockchain-ul să nu includă tranzacții care nu sunt valabile în contextul propriilor protocoale. Prin urmare, o implementare pe deplin securizată de metaprotocol SPV, ar trebui să scaneze înapoi tot drumul până la începutul blockchain-ului Bitcoin pentru a determina dacă anumite tranzacții sunt sau nu valabile. În prezent, toate implementările „ușoare” de Bitcoin pe bază de metaprotocoale se bazează pe un server de încredere pentru a furniza date, fără îndoială, un rezultat extrem de suboptim mai ales atunci când unul dintre scopurile primare ale unei criptomonede este de a elimina nevoia de încredere. - -### Scripturi {#scripting} - -Chiar și fără extensii, protocolul Bitcoin facilitează de fapt o versiune slabă a unui concept de „contracte inteligente”. UTXO în Bitcoin poate fi deținut nu doar de o cheie publică, ci și de un script mai complicat exprimat într-un limbaj de programare simplu bazat pe stivă. În această paradigmă, o tranzacție care cheltuiește acest UTXO trebuie să furnizeze date care satisfac scriptul. Într-adevăr, chiar și mecanismul de bază de proprietate a unei chei publice este implementat printr-un script: scriptul ia ca intrare o semnătură curbă eliptică, o verifică în raport cu tranzacția și adresa care deține UTXO și returnează 1 dacă verificarea are succes sau 0 în caz contrar. Alte, scripturi mai complicate, există pentru diferite cazuri de utilizare suplimentare. De exemplu, se poate construi un script care necesită semnături din două dintre trei anumite chei private pentru a valida („multisig”), o configurare utilă pentru conturile corporative, conturile de economii sigure și unele situații de comerț fiduciar. Scripturile pot fi, de asemenea, folosite pentru plata de recompense pentru soluționarea de probleme de calcul, și se poate construi chiar și un script care spune ceva de genul „acest Bitcoin UTXO este al tău, dacă poți oferi o dovadă SPV că mi-ai trimis o tranzacție Dogecoin de această denumire”, permițând, în esență, schimbul încrucișat descentralizat de criptomonede. - -Cu toate acestea, limbajul de scripturi implementat în Bitcoin are mai multe limitări importante: - -- **Lipsa exhaustivității Turing** - adică, în timp ce există un subset mare de calcule pe care limbajul de script Bitcoin le acceptă, acesta nu suportă totul. Principala categorie care lipsește este funcția de bucle. Acest lucru se face pentru a evita bucle infinite în timpul verificării tranzacției; teoretic este un obstacol de depășit pentru programatorii de scripturi, deoarece orice buclă poate fi simulată prin simpla repetare a codului de bază de multe ori cu o instrucțiune if, dar conduce la scripturi care sunt foarte ineficiente în spațiu. De exemplu, implementarea unui algoritm alternativ de semnare a curbei eliptice ar necesita probabil 256 de runde de multiplicare repetate, toate incluse individual în cod. -- **Orbire-Valorică** - nu există nicio modalitate pentru ca un script UTXO să ofere un control fin asupra cantității care poate fi retrasă. De exemplu, un caz puternic de utilizare al unui contract oracol ar fi un contract de asigurare hedge, în care A și B introduc BTC în valoare de $1.000 USD, iar după 30 de zile scriptul trimite BTC în valoare de 1.000 USD către A, iar restul către B. Acest lucru ar necesita un oracol pentru a determina valoarea unui BTC în USD, dar chiar și atunci este o îmbunătățire masivă în ceea ce privește încrederea și cerințele de infrastructură față de soluțiile complet centralizate care sunt disponibile acum. Cu toate acestea, deoarece UTXO sunt totul-sau-nimic, singura modalitate de a realiza acest lucru este prin hack-ul foarte ineficient de a avea mai multe UTXO de diferite denominații (de exemplu, un UTXO de 2k pentru fiecare k până la 30) și de a alege O care UTXO îl trimite la A și care la B. -- **Lipsa stării** - [UTXO poate fi cheltuit sau necheltuit](https://bitcoin.org/en/glossary/unspent-transaction-output); nu există nicio oportunitate pentru contracte în mai multe etape sau scripturi care să mențină orice altă stare internă dincolo de aceasta. Acest lucru face dificilă încheierea de contracte de opțiuni în mai multe etape, oferte de schimb descentralizate sau protocoale de angajament criptografice în două etape (necesare pentru recompense de calcul sigure). De asemenea, înseamnă că UTXO poate fi utilizat doar pentru a construi contracte simple, unice și nu contracte mai complexe „fără stare”, cum ar fi organizațiile descentralizate și face dificilă implementarea metaprotocoalelor. Starea binară combinată cu orbirea valorică înseamnă, de asemenea, că o altă aplicație importantă, limitele de retragere, este imposibilă. -- **Orbire-Blockchain** - UTXO sunt oarbe la date blockchain, cum ar fi nonce, marca temporală și hash-ul blocului anterior. Acest lucru limitează sever aplicații cum ar fi jocurile de noroc și alte câteva categorii, privând limbajul de script de o sursă potențială de elemente aleatorii. - -Astfel, vedem trei abordări pentru construirea de aplicații avansate pe bază de criptomonedă: construirea unui nou blockchain, utilizarea scripturilor bazate pe Bitcoin și construirea unui metaprotocol bazat pe Bitcoin. Construirea unui nou blockchain permite libertatea nelimitată în construirea unui set de caracteristici, dar cu prețul timpului de dezvoltare, a efortului de bootstrap și a securității. Utilizarea scripturilor este ușor de implementat și standardizat, dar este foarte limitată în ceea ce privește capacitățile sale, iar metaprotocoalele, deși sunt ușoare, suferă de defecte în scalabilitate. Cu Ethereum, intenționăm să construim un cadru alternativ care să ofere câștiguri și mai mari în ceea ce privește ușurința dezvoltării, precum și proprietăți și mai puternice ale clientului ușor, permițând în același timp aplicațiilor să partajeze un mediu economic și de securitate blockchain. - -## Ethereum {#ethereum} - -Intenția Ethereum este de a crea un protocol alternativ pentru construirea de aplicații descentralizate, oferind un set diferit de compromisuri care credem că va fi foarte util pentru o mare clasă de aplicații descentralizate, cu un accent deosebit pe situații în care timpul de dezvoltare rapidă, securitatea pentru aplicațiile mici și rar utilizate, precum și capacitatea diferitelor aplicații de a interacționa foarte eficient sunt importante. Ethereum face acest lucru prin construirea a ceea ce este, în esență, nivelul fundamental abstract final: un blockchain cu un limbaj de programare built-in Turing-complet, care permite oricui să scrie contracte inteligente și aplicații descentralizate în care ei pot crea propriile reguli arbitrare pentru proprietate, formatele de tranzacție și funcțiile de tranziție de stare. O versiune de bază a Namecoin poate fi scrisă în două linii de cod, iar alte protocoale, cum ar fi monedele și sistemele de reputație pot fi construite în mai puțin de douăzeci de minute. Contracte inteligente, „cutii” criptografice care conțin valoare și o deblochează numai dacă sunt îndeplinite anumite condiții, pot fi, de asemenea, construite pe această platformă, cu mult mai multă putere decât cea oferită de scriptul Bitcoin din cauza puterilor adăugate de exhaustivitatea-Turing, valoarea-conștientizată, blockchain-conștientizat și starea. - -### Filozofie {#philosophy} - -Designul din spatele Ethereum este destinat să urmeze următoarele principii: - -1. **Simplitate**: protocolul Ethereum ar trebui să fie cât mai simplu posibil, chiar și cu prețul unor stocări de date sau ineficiență de timp.[fn. 3](#notes) În mod ideal, un programator mediu ar trebui să poată urmări și implementa întreaga specificație, [fn. 4](#notes) astfel încât să realizăm pe deplin potențialul de democratizare fără precedent pe care îl aduce criptomoneda și să promoveze viziunea Ethereum ca protocol deschis tuturor. Orice optimizare care adaugă complexitate nu ar trebui inclusă decât dacă oferă beneficii foarte substanțiale. -2. **Universalitatea**: o parte fundamentală a filozofiei de proiectare a Ethereum este că Ethereum nu are „caracteristici”.[fn. 5](#notes) În schimb, Ethereum oferă un limbaj de script intern Turing-complet, pe care un programator îl poate folosi pentru a construi orice tip de contract inteligent sau tranzacție care poate fi definit matematic. Dorești să inventezi propriul tău instrument financiar derivat? Cu Ethereum, poți. Vrei să-ți faci propria monedă? Configureaz-o ca un contract Ethereum. Dorești să configurezi un Daemon sau Skynet la scară largă? Este posibil să trebuiască să ai câteva mii de contracte și să te asiguri că le hrănești cu generozitate, pentru a face acest lucru, dar nimic nu te oprește cu Ethereum la îndemână. -3. **Modularitate**: părțile protocolului Ethereum ar trebui să fie proiectate astfel încât să fie cât mai modulare și separabile. Pe parcursul dezvoltării, obiectivul nostru este să creăm un program în care, dacă se va face o mică modificare de protocol într-un singur loc, stiva de aplicații ar continua să funcționeze fără alte modificări. Inovații precum Ethash (vezi [Anexa la Yellow Paper](https://ethereum.github.io/yellowpaper/paper.pdf#appendix.J) sau [articolul wiki](https://github.com/ethereum/wiki/wiki/Ethash)), arborii Patricia modificați ([Yellow Paper](https://ethereum.github.io/yellowpaper/paper.pdf#appendix.D), [wiki](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-Patricia-Tree)) și RLP ([YP](https://ethereum.github.io/yellowpaper/paper.pdf#appendix.B), [wiki](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-RLP)) ar trebui să fie și sunt implementate ca biblioteci separate, complete cu caracteristici. Acest lucru se întâmplă astfel încât, deși sunt utilizate în Ethereum, chiar dacă Ethereum nu necesită anumite caracteristici, astfel de caracteristici sunt încă utilizabile și în alte protocoale. Dezvoltarea Ethereum ar trebui realizată la maximum, astfel încât să beneficieze întregul ecosistem al criptomonedelor, nu doar tu însuți. -4. **Agilitate**: detaliile protocolului Ethereum nu sunt bătute în piatră. Deși vom fi extrem de prudenți în ceea ce privește modificările la construcțiile de nivel înalt, de exemplu, cu [foaia de parcurs a fragmentelor](https://ethresear.ch/t/sharding-phase-1-spec/1407/), abstractizarea executării, cu disponibilitatea datelor doar consacrată în consens. Testele de calcul ulterioare în procesul de dezvoltare ne pot determina să descoperim că anumite modificări, de exemplu, la arhitectura protocolului sau la Mașina Virtuală Ethereum (EVM), vor îmbunătăți în mod substanțial scalabilitatea sau securitatea. Dacă se găsesc astfel de oportunități, le vom exploata. -5. **Fără discriminare** și **fără cenzură**: protocolul nu ar trebui să încerce să restricționeze în mod activ sau să prevină anumite categorii de utilizare. Toate mecanismele de reglementare din protocol ar trebui să fie concepute pentru a reglementa direct prejudiciul și să nu încerce să se opună unor aplicații nedorite specifice. Un programator poate rula chiar și un script cu buclă infinită în Ethereum atâta timp cât este dispus să plătească în continuare taxa de tranzacție per pas de calcul. - -### Conturile Ethereum {#ethereum-accounts} - -În Ethereum, starea este alcătuită din obiecte numite „conturi”, fiecare cont având o adresă de 20 de byți, iar tranzițiile de stare sunt transferuri directe de valoare și informații între conturi. Un cont Ethereum conține patru câmpuri: - -- **Nonce**, un contor utilizat pentru a asigura că fiecare tranzacție poate fi procesată o singură dată -- **Soldul de eter** actual al contului curent -- **Codul contractului** contului, dacă este prezent -- **Stocarea** contului (gol implicit) - -Eter este principalul cripto-combustibil intern al Ethereum și este utilizat pentru plata taxelor de tranzacție. În general, există două tipuri de conturi: **conturi deținute extern**, controlate de chei private și **conturi de contract**, controlate de codul lor de contract. Un cont deținut extern nu are cod și cineva poate trimite mesaje dintr-un cont deținut extern prin crearea și semnarea unei tranzacții; într-un cont de contract, de fiecare dată când contul de contract primește un mesaj, codul său se activează, permițându-i să citească și să scrie în stocarea internă și să trimită alte mesaje sau să creeze contracte la rândul său. - -Reține că aceste „contracte” din Ethereum nu trebuie văzute ca ceva care ar trebui „îndeplinit” sau „respectat”; mai degrabă seamănă cu „agenți autonomi” care trăiesc în interiorul mediului de execuție Ethereum, executând întotdeauna o anumită bucată de cod atunci când sunt „împinși” de un mesaj sau tranzacție și având controlul direct asupra propriului echilibru de eter și propriul depozit de chei/valori pentru a urmări variabilele persistente. - -### Mesaje și tranzacții {#messages-and-transactions} - -Termenul „tranzacție” este utilizat în Ethereum pentru a se referi la pachetul de date semnat care stochează un mesaj care trebuie trimis dintr-un cont deținut extern. Tranzacțiile conțin: - -- Destinatarul mesajului -- Semnătura care identifică expeditorul -- Cantitatea de eter de transferat de la expeditor la destinatar -- Un câmp de date opțional -- Valoarea `STARTGAS`, reprezentând numărul maxim de pași de calcul pe care tranzacția este permisă să-i execute -- Valoare `GASPRICE`, reprezentând comisionul pe care expeditorul îl plătește pe fiecare pas de calcul - -Primele trei sunt câmpuri standard așteptate în orice criptomonedă. Câmpul de date nu are nicio funcție în mod implicit, dar mașina virtuală are un cod de operare pe care un contract îl poate utiliza pentru a accesa datele; un exemplu de utilizare este când un contract funcționează ca un serviciu de înregistrare a domeniului pe blockchain, atunci poate dori să interpreteze datele care i-au fost transmise ca și cum ar conține două „câmpuri”, primul câmp fiind un domeniu de înregistrat și al doilea câmpul fiind adresa IP la care să-l înregistreze. Contractul ar citi aceste valori din datele mesajului și le va pune în mod corespunzător în stocare. - -Câmpurile `STARTGAS` și `GASPRICE` sunt cruciale pentru modelul antinegare a serviciului Ethereum. Pentru a preveni buclele infinite accidentale sau ostile sau alte pierderi de calcul din cod, fiecare tranzacție trebuie să stabilească o limită a numărului de pași de calcul de execuție a codului pe care îi poate folosi. Unitatea fundamentală de calcul este „gazul”; de obicei, un pas de calcul costă 1 gaz, dar unele operațiuni costă cantități mai mari de gaz, deoarece sunt mai scumpe din punct de vedere al calculului sau măresc cantitatea de date care trebuie stocate ca parte a stării. Există, de asemenea, o taxă de 5 gaz pentru fiecare byte în datele tranzacției. Intenția sistemului de taxare este de a cere unui atacator să plătească proporțional pentru fiecare resursă pe care o consumă, inclusiv calculul, lățimea de bandă și stocarea; prin urmare, orice tranzacție care face ca rețeaua să consume o cantitate mai mare din oricare dintre aceste resurse trebuie să aibă o taxă de gaz aproximativ proporțională cu creșterea. - -### Mesaje {#messages} - -Contractele au capacitatea de a trimite „mesaje” către alte contracte. Mesajele sunt obiecte virtuale care nu sunt niciodată serializate și există doar în mediul de execuție Ethereum. Un mesaj conține: - -- Expeditorul mesajului (implicit) -- Destinatarul mesajului -- Cantitatea de eter de transferată cu mesajul -- Un câmp de date opțional -- O valoare `STARTGAS` - -În esență, un mesaj este ca o tranzacție, cu excepția faptului că este produs de un contract și nu de un actor extern. Un mesaj este produs atunci când un contract care execută codul execută opcodul `CALL`, care produce și execută un mesaj. Asemenea unei tranzacții, un mesaj duce la contul destinatarului care își execută codul. Astfel, contractele pot avea relații cu alte contracte exact în același mod în care pot avea actorii externi. - -A se reține că alocația de gaz atribuită unei tranzacții sau contract se aplică gazului total consumat de acea tranzacție și tuturor sub-execuțiilor. De exemplu, dacă un actor extern A trimite o tranzacție către B cu 1.000 de gaz, iar B consumă 600 de gaz înainte de a trimite un mesaj către C, iar executarea internă a lui C consumă 300 de gaz înainte de întoarcere, atunci B poate cheltui încă 100 de gaz înainte de a rula fără combustibil. - -### Funcția de tranziție a stării Ethereum {#ethereum-state-transition-function} - -![Tranziția stării eterului](../../../whitepaper/ether-state-transition.png) - -Funcția de tranziție a stării Ethereum, `APPLY(S,TX) -> S'` poate fi definită după urmează: - -1. Verifică dacă tranzacția este bine formată (de exemplu, are numărul corect de valori), semnătura este valabilă, iar nonce-ul se potrivește cu nonce-ul din contul expeditorului. Dacă nu, întoarce o eroare. -2. Calculează taxa de tranzacție ca `STARTGAS * GASPRICE` și determină adresa de trimitere din semnătură. Scade taxa din soldul contului expeditorului și incrementează nonce-ul expeditorului. Dacă nu există un sold suficient pentru a cheltui, întoarce o eroare. -3. Inițializează `GAS = STARTGAS` și scoate o anumită cantitate de gaz pe byte pentru a plăti pentru byți din tranzacție. -4. Transferă valoarea tranzacției din contul expeditorului în contul de primire. În cazul în care contul de primire nu există încă, îl creează. În cazul în care contul de primire este un contract, execută codul contractului, fie până la finalizarea contractului, fie până când execuția rămâne fără gaz. -5. Dacă transferul de valori nu a reușit, deoarece expeditorul nu a avut suficienți bani sau executarea codului a rămas fără gaz, anulează toate schimbările de stare, cu excepția plății taxelor, și adaugă taxele în contul minerului. -6. În caz contrar, rambursează expeditorului taxele pentru toate gazele rămase și trimite taxele plătite pentru gazul consumat minerului. - -Să presupunem că avem un contract cu acest cod: - - if !self.storage[calldataload(0)]: - self.storage[calldataload(0)] = calldataload(32) - -Reține că, în realitate, codul contractului este scris în cod EVM de nivel scăzut; acest exemplu este scris în Serpent, unul dintre limbajele noastre de nivel înalt, pentru claritate, și poate fi compilat în codul EVM. Să presupunem că stocarea contractului începe goală și că o tranzacție este trimisă cu o valoare de 10 eter, 2.000 gaz, 0,001 gasprice de eter și 64 de byți de date, cu byți 0-31 reprezentând numărul `2` și byți 32-63 care reprezintă șirul `CHARLIE`. [fn. 6](#notes) Procesul pentru funcția de tranziție de stare în acest caz este după urmează: - -1. Verifică dacă tranzacția este validă și bine formată. -2. Verifică dacă expeditorul tranzacției are cel puțin 2.000 \* 0,001 = 2 eter. Dacă este, atunci scade 2 eter din contul expeditorului. -3. Gazul inițial = 2.000; dacă presupunem că tranzacția are o lungime de 170 byți și taxa pe byte este de 5, scade 850, astfel încât să rămână 1.150 de gaz. -4. Scade încă 10 eter din contul expeditorului și îi adaugă în contul contractului. -5. Rulează codul. În acest caz, acest lucru este simplu: se verifică dacă se utilizează stocarea contractului la indexul `2`, observă că nu este, și astfel se setează stocarea la indexul `2` la valoarea `CHARLIE`. Să presupunem că acest lucru ia 187 de gaz, astfel încât cantitatea rămasă de gaz este de 1.150 - 187 = 963 -6. Adăugă 963 \* 0,001 = 0,963 eter înapoi în contul expeditorului și returnează starea rezultată. - -Dacă nu a existat niciun contract la finalul tranzacției, atunci taxa totală de tranzacție ar fi pur și simplu egală cu valoarea `GASPRICE` înmulțită cu durata tranzacției în byți, iar datele trimise împreună cu tranzacția ar fi irelevante. - -Reține că mesajele funcționează similar cu tranzacțiile în ceea ce privește revenirile: dacă o execuție de mesaj rămâne fără gaz, atunci execuția acelui mesaj și toate celelalte execuții declanșate de acea execuție revin, dar execuțiile părinte nu trebuie să revină. Aceasta înseamnă că este „sigur” ca un contract să solicite un alt contract, ca și cum A ar apela B cu gaz G, atunci execuția lui A este garantată că va pierde cel mult G gaz. În cele din urmă, reține că există un opcod, `CREATE`, care creează un contract; mecanica sa de execuție este în general similară cu `CALL`, cu excepția că rezultatul execuției determină codul unui contract nou creat. - -### Executarea codului {#code-execution} - -Codul din contractele Ethereum este scris într-un limbaj bytecode, de nivel scăzut, bazat pe stivă, denumit „codul mașinii virtuale Ethereum” sau „codul EVM”. Codul constă dintr-o serie de byți, în care fiecare byte reprezintă o operație. În general, execuția codului este o buclă infinită care constă din efectuarea în mod repetat a operației la contorul programului curent (care începe la zero) și apoi creșterea incrementală a contorului programului cu unul, până când se ajunge la sfârșitul codului sau se detectează o instrucțiune de eroare sau `STOP` sau `RETURN`. Operațiunile au acces la trei tipuri de spații în care să stocheze date: - -- **Stiva**, un container „last-in-first-out” (LIFO) către care valorile pot fi împinse și introduse -- **Memorie**, o matrice de byți extensibilă infinit -- **Stocarea** pe termen lung a contractului, un depozit de chei/valori. Spre deosebire de stivă și memorie, care se resetează după terminarea calculului, stocarea persistă pe termen lung. - -De asemenea, codul poate accesa valoarea, expeditorul și datele mesajului primit, precum și datele antetului blocului, iar codul poate returna, de asemenea, o matrice de byți de date ca ieșire. - -Modelul formal de execuție al codului EVM este surprinzător de simplu. În timp ce mașina virtuală Ethereum rulează, starea sa completă de calcul poate fi definită de secvența de variabile `(block_state, transaction, message, code, memory, stack, pc, gas)`, unde `block_state` este starea globală care conține toate conturile și include solduri și stocarea. La începutul fiecărei runde de execuție, instrucțiunea curentă se găsește luând byte-ul `pc` al `codului` (sau 0 dacă `pc >= len (cod)`) și fiecare instrucțiune are propria definiție în ceea ce privește modul în care afectează secvența de variabile. De exemplu, `ADD` scoate două articole din stivă și împinge suma lor, reduce `gas` cu 1 și crește `pc` cu 1, iar `SSTORE` scoate primele două articole din stivă și introduce al doilea articol în stocarea contractului la indexul specificat de primul articol. Deși există multe modalități de a optimiza execuția mașinii virtuale Ethereum prin compilare-din-mers, o implementare de bază a Ethereum se poate face în câteva sute de linii de cod. - -### Blockchain și minerit {#blockchain-and-mining} - -![Diagrama blocul aplicării Ethereum](../../../whitepaper/ethereum-apply-block-diagram.png) - -Blockchain-ul Ethereum este în multe feluri similar cu blockchain-ul Bitcoin, deși are unele diferențe. Principala diferență dintre Ethereum și Bitcoin în ceea ce privește arhitectura blockchain este că, spre deosebire de Bitcoin (care conține doar o copie a listei de tranzacții), blocurile Ethereum conțin o copie a listei de tranzacții și cea mai recentă stare. În afară de aceasta, alte două valori, numărul blocului și dificultatea, sunt, de asemenea, stocate în bloc. Algoritmul de validare a blocului de bază în Ethereum este după cum urmează: - -1. Verifică dacă blocul anterior la care se face referire există și este valid. -2. Verifică dacă marcajul temporal al blocului este mai mare decât cel al blocului anterior de referință și mai mic de 15 minute în viitor -3. Verifică dacă numărul blocului, dificultatea, rădăcina tranzacției, rădăcina unchiului și limita de gaz (diverse concepte specifice Ethereum de nivel scăzut) sunt valide. -4. Verifică dacă dovada muncii pe bloc este validă. -5. Stabilește `S[0]` ca stare la sfârșitul blocului anterior. -6. Stabilește `TX` să fie lista de tranzacții a blocului, cu `n` tranzacții. Pentru toate `i` în `0...n-1`, setează `S[i+1] = APPLY(S[i],TX[i])`. Dacă orice aplicație returnează o eroare sau dacă gazul total consumat în bloc până la acest punct depășește `GASLIMIT`, returnează o eroare. -7. Lasă `S_FINAL` să fie `S[n]`, dar adăugând recompensa bloc plătită minerului. -8. Verifică dacă rădăcina arborelui Merkle a stării `S_FINAL` este egală cu rădăcina de stare finală furnizată în antetul blocului. Dacă este egală, blocul este valid; în caz contrar, nu este valid. - -Abordarea poate părea extrem de ineficientă la prima vedere, deoarece trebuie să stocheze întreaga stare cu fiecare bloc, dar în realitate eficiența ar trebui să fie comparabilă cu cea a Bitcoin. Motivul este că starea este stocată în structura arborelui, iar după fiecare bloc trebuie schimbată doar o mică parte a arborelui. Astfel, în general, între două blocuri adiacente marea majoritate a arborilor ar trebui să fie aceeași, și, prin urmare, datele pot fi stocate o dată și menționate de două ori folosind indicii (adică hash-uri de sub-arbori). Un tip special de arbore cunoscut sub numele de „arborele Patricia” este folosit pentru a realiza acest lucru, inclusiv o modificare a conceptului de arbore Merkle, care permite ca nodurile să fie inserate și șterse, și nu doar schimbate, eficient. În plus, deoarece toate informațiile de stare fac parte din ultimul bloc, nu este nevoie să fie stocată întreaga istorie a blockchain-ului - o strategie care, dacă ar putea fi aplicată la Bitcoin, se poate calcula că ar oferi o economie de 5-20 de ori în spațiu. - -O întrebare frecventă este „unde” este executat codul contractului, în ceea ce privește hardware-ul fizic. Acest lucru are un răspuns simplu: procesul de executare a codului de contract face parte din definiția funcției de tranziție de stare, care face parte din algoritmul de validare al blocului, astfel încât, dacă o tranzacție este adăugată în blocul `B`, executarea codului generat de acea tranzacție va fi executată de toate nodurile, acum și în viitor, care descarcă și validează blocul `B`. - -## Aplicații {#applications} - -În general, există trei categorii de aplicații care funcționează pe Ethereum. În prima categorie sunt aplicațiile financiare, oferind utilizatorilor modalități mai puternice de gestionare și încheiere a contractelor folosind banii lor. Ele includ sub-monedele, instrumentele financiare derivate, contractele de acoperire a riscurilor, portofelele de economii, testamentele și, în final, chiar unele categorii de contracte de muncă pe scară largă. În a doua categorie sunt aplicațiile semi-financiare, în care sunt implicați bani, dar există, de asemenea, o latură grea nemonetară a ceea ce se face; un exemplu perfect este de auto-aplicarea de recompense pentru soluții la problemele de calcul. În cele din urmă, există aplicații precum votul on-line și guvernanța descentralizată care nu sunt deloc financiare. - -### Sisteme token {#token-systems} - -Sistemele token pe-blockchain au multe aplicații, de la sub-monede reprezentând active cum ar fi USD sau aur, la acțiunile companiei, tokenuri individuale reprezentând proprietăți inteligente, cupoane sigure nefalsificabile și chiar sisteme token fără legături la valori convenționale, utilizate ca sisteme de puncte pentru stimulare. Sistemele token sunt surprinzător de ușor de implementat în Ethereum. Ce trebuie să înțelegi este că o monedă, sau sistem de tokenuri, este o bază de date cu o singură operațiune: scade X unități de la A și adaugă X unități lui B, cu condiția ca (1) A să fi avut cel puțin X unități înainte de tranzacție și (2) tranzacția să fie aprobată de A. Tot ce este nevoie pentru a pune în aplicare un sistem de tokenuri este de a pune în aplicare această logică într-un contract. - -Codul de bază pentru implementarea unui sistem de tokenuri în Serpent arată după urmează: - - def send(to, value): - if self.storage[msg.sender] >= value: - self.storage[msg.sender] = self.storage[msg.sender] - value - self.storage[to] = self.storage[to] + value - -Aceasta este, în esență, implementare literală a „sistemului bancar” funcția de tranziție de stare descrisă mai sus în acest document. Câteva linii suplimentare de cod trebuie să fie adăugate pentru a asigura etapa inițială de distribuire a unităților monetare în primul rând și alte câteva cazuri de margine și, în mod ideal, ar trebui adăugată o funcție care să permită altor contracte să interogheze pentru soldul unei adrese. Dar asta e tot. Teoretic, sistemele token bazate pe Ethereum care acționează ca sub-monede pot include o altă caracteristică importantă pe care metamonedele bazate pe Bitcoin în-lanț nu o au: capacitatea de a plăti taxe de tranzacție direct în moneda respectivă. Modalitatea de implementare a acestui lucru este următoarea: contract menține soldul de eter cu cu care să ramburseze expeditorului eter utilizat pentru plata de taxe și reface soldul prin colectarea unităților valutare interne pe care le ia în taxe și revânzarea lor într-o licitație permanentă. Utilizatorii ar trebui, prin urmare, să „activeze” conturile lor cu eter, dar odată ce eterul este acolo ar fi reutilizabil, deoarece contractul ar rambursa de fiecare dată. - -### Instrumente financiare derivate și Monede cu Valoare Stabilă {#financial-derivatives-and-stable-value-currencies} - -Instrumentele financiare derivate sunt cea mai comună aplicație a unui „contract inteligent”, și una dintre cele mai simple de implementat în cod. Principala provocare în punerea în aplicare a contractelor financiare este că majoritatea acestora necesită trimiterea la un instrument bursier de prețuri extern; de exemplu, o aplicație foarte dezirabilă este un contract inteligent care să asigure volatilitatea eterului (sau a altei criptomonede) în raport cu dolarul SUA, dar acest lucru cere contractului să știe care este valoarea ETH/USD. Cel mai simplu mod de a face acest lucru este printr-un contract de „flux de date” menținut de o anumită parte (de exemplu. NASDAQ) conceput astfel încât acea parte are capacitatea de a actualiza contractul după cum este necesar, și oferind o interfață care permite altor contracte să trimită un mesaj la acel contract și a obține înapoi un răspuns care oferă prețul. - -Având în vedere acest ingredient critic, contractul de acoperire împotriva riscurilor ar arăta după urmează: - -1. Așteptă ca partea A să introducă 1.000 eter. -2. Așteptă ca partea B să introducă 1.000 eter. -3. Înregistrează valoarea în USD a 1.000 eter, calculată prin interogarea contractului de alimentare cu date, în stocare, să spunem că acest lucru este $x. -4. După 30 de zile, permite lui A sau B să „reactiveze” contractul pentru a trimite eter în valoare de $x (calculat la noul preț după interogarea contractului de alimentare cu date) la A, iar restul la B. - -Un astfel de contract ar avea un potențial semnificativ în cripto-comerț. Una dintre principalele probleme citate despre criptomonedă este faptul că este volatilă; deși mulți utilizatori și comercianți ar dori securitatea și comoditatea de a utiliza active criptografice, ei nu ar dori să se confrunte cu perspectiva de a pierde 23% din valoarea fondurilor lor într-o singură zi. Până în prezent, soluția cea mai frecvent propusă a fost activele garantate de emitent; ideea este că un emitent creează o sub-monedă în care are dreptul de a emite și revoca unități și furnizează o unitate de monedă oricui le furnizează (off-line) cu o unitate a unui activ suport specificat (de exemplu, aur, USD). Emitentul promite apoi să furnizeze o unitate a activului suport oricui trimite înapoi o unitate a cripto-activului. Acest mecanism permite oricărui element non-criptografic să fie „elevat” la un activ criptografic, cu condiția ca emitentul să poată fi de încredere. - -Cu toate acestea, în practică, emitenții nu sunt întotdeauna de încredere, iar în unele cazuri infrastructura bancară este prea slabă sau prea ostilă pentru ca astfel de servicii să existe. Instrumentele financiare derivate oferă o alternativă. Aici, în loc de un emitent unic care oferă fonduri pentru a susține un activ, o piață descentralizată de speculatori, pariind că prețul unui activ criptografic de referință (de exemplu ETH) va crește, va juca acest rol. Contrar emitenților, speculatorii nu au nicio opțiune să eșueze partea lor de negociere, deoarece contractul de asigurare le ține fondurile în garanție. Reține faptul că această abordare nu este pe deplin descentralizată, deoarece o sursă de încredere este în continuare necesară pentru un ticker de prețuri, deși discutabil, chiar și acest lucru este o îmbunătățire masivă în ceea ce privește reducerea cerințelor de infrastructură (spre deosebire de a fi un emitent, emiterea unui flux de informații privind prețurile nu necesită licențe și poate fi probabil clasificată drept libertatea cuvântului) și reducând potențialul de fraudă. - -### Sisteme de identitate și de reputație {#identity-and-reputation-systems} - -Cea mai veche criptomonedă alternativă dintre toate, [Namecoin](http://namecoin.org/), a încercat să utilizeze un blockchain ca Bitcoin pentru a oferi un sistem de înregistrare a numelui, unde utilizatorii își pot înregistra numele într-o bază de date publică alături de alte date. Cazul de utilizare citat major este pentru un sistem [DNS](https://wikipedia.org/wiki/Domain_Name_System), de mapare de nume de domenii, cum ar fi „bitcoin.org” (sau, în cazul Namecoin, „bitcoin.bit”) la o adresă IP. Alte cazuri de utilizare includ autentificarea prin e-mail și potențial, sisteme mai avansate de reputație. Iată contractul de bază de furnizare a unui sistem de înregistrare de nume asemănător cu Namecoin pe Ethereum: - - def register(name, value): - if !self.storage[name]: - self.storage[name] = value - -Contractul este foarte simplu; tot ce este o bază de date în interiorul rețelei Ethereum care poate fi adăugată, dar nu modificată sau eliminată. Oricine poate înregistra un nume cu o anumită valoare, iar acea înregistrare va rămâne pentru totdeauna. Un contract mai sofisticat de înregistrare a numelui va avea, de asemenea, o „clauză funcțională” care permite altor contracte să-l interogheze, precum și un mecanism pentru „proprietarul” (adică primul înregistrator) unui nume pentru a schimba datele sau a transfera proprietatea. Se poate adăuga chiar și reputație și funcționalitate web-of-trust. - -### Stocare descentralizată de fișiere {#decentralized-file-storage} - -În ultimii ani, au apărut o serie de companii start-up noi populare de stocare online a fișierelor, cea mai proeminentă fiind Dropbox, care urmărește să permită utilizatorilor să încarce o copie de rezervă a discului lor dur pentru a fi stocat și accesat de pe orice dispozitiv dintr-un dosar special sincronizat, în schimbul unei taxe lunare. Cu toate acestea, în acest moment piața stocării fișierelor este uneori relativ ineficientă; o privire superficială la diverse [soluții existente](http://online-storage-service-review.toptenreviews.com/) arată că, în special la bariera de netrecut a nivelului de 20-200 GB pe care nici cotele gratuite, nici reducerile la nivel de întreprindere nu pot să o treacă, prețurile lunare pentru costurile de stocare a fișierelor mainstream sunt de așa natură că plătești mai mult decât costul întregului disc dur într-o singură lună. Contractele Ethereum pot permite dezvoltarea unui ecosistem descentralizat de stocare a fișierelor, în care utilizatorii individuali pot câștiga cantități mici de bani prin închirierea propriilor discuri dure, iar spațiul neutilizat poate fi utilizat pentru a reduce în continuare costurile stocării fișierelor. - -Elementul cheie care stă la baza unui astfel de dispozitiv ar fi ceea ce am numit „contractul Dropbox descentralizat”. Acest contract funcționează după cum urmează. În primul rând, se împart datele dorite în blocuri, criptând fiecare bloc pentru confidențialitate și se construiește un arbore Merkle din acestea. Se face apoi un contract cu regula că, la fiecare N blocuri, contractul ar alege un index aleatoriu în arborele Merkle (folosind hash-ul blocului anterior, accesibil din codul contractului, ca sursă aleatorie), și să dea X eter primei entități care furnizează o tranzacție simplificată de verificare a plății, ca o dovadă a dreptului de proprietate asupra blocului la acel index specific în arbore. Atunci când un utilizator dorește să-și descarce din nou fișierul, poate folosi un protocol de canal de microplată (de exemplu, plătește 1 szabo pe 32 kilobyți) pentru a recupera fișierul; cea mai eficientă abordare este ca plătitorul să nu publice tranzacția până la final, înlocuind în schimb tranzacția cu una ușor mai profitabilă cu același nonce după fiecare 32 de kilobyți. - -O caracteristică importantă a protocolului este că, deși ar părea că cineva se încrede în mai multe noduri aleatorii care să nu decidă să uite fișierul, se poate reduce riscul aproape la zero, împărțind fișierul în mai multe bucăți prin partajare secretă și urmărind contractele pentru a vedea dacă fiecare bucată este încă în posesia unui nod. Dacă un contract plătește în continuare bani, acesta oferă criptografic o dovadă că cineva de acolo încă stochează fișierul. - -### Organizații autonome descentralizate {#decentralized-autonomous-organizations} - -Conceptul general al unei „organizații autonome descentralizate” este cel al unei entități virtuale care are un anumit set de membri sau acționari care, probabil cu o majoritate de 67%, au dreptul să cheltuiască fondurile entității și să-i modifice codul. Membrii vor decide în mod colectiv modul în care organizația ar trebui să-și aloce fondurile. Metodele de alocare a fondurilor unui DAO ar putea varia de la recompense, salarii la mecanisme și mai exotice, cum ar fi o monedă internă pentru recompensarea muncii. Aceasta replică în esență capcanele legale ale unei companii tradiționale sau nonprofit, dar folosind doar tehnologia blockchain criptografică pentru punerea în aplicare. Până în prezent, cele mai multe discuții despre DAO s-au bazat pe modelul „capitalist” al unei „societăți autonome descentralizate” (DAC) cu acționari care primesc dividende și acțiuni tranzacționale; o alternativă, probabil descrisă ca fiind o „comunitate autonomă descentralizată”, ar avea un procentaj egal în procesul decizional și ar necesita ca 67% dintre membrii existenți să fie de acord să adauge sau să elimine un membru. Cerința ca o persoană să poată avea o singură calitate de membru ar trebui apoi să fie pusă în aplicare în mod colectiv de către grup. - -O schemă generală pentru cum să codezi un DAO este următoarea. Cel mai simplu design este pur și simplu o bucată de cod auto-modificat care se schimbă dacă două treimi dintre membri sunt de acord asupra unei modificări. Deși codul este teoretic imuabil, aceasta se poate ocoli ușor și poate avea o mutabilitate de facto, având bucăți de cod în contracte separate și având adresa contractelor de apelat stocate în stocarea modificabilă. Într-o simplă implementare a unui astfel de contract DAO, ar exista trei tipuri de tranzacții, care se disting prin datele furnizate în tranzacție: - -- `[0, i, K, V]` pentru a înregistra o propunere cu indexul `i` pentru a schimba adresa la indexul de stocare `K` la valoarea `V` -- `[1, i]` pentru a înregistra un vot în favoarea propunerii `i` -- `[2, i]` pentru a finaliza propunerea `i` dacă s-au obținut suficiente voturi - -Contractul va avea apoi clauze pentru fiecare dintre acestea. Acesta va menține o evidență a tuturor modificărilor de stocare deschise, împreună cu o listă a celor care le-au votat. De asemenea, ar avea o listă cu toți membrii. Atunci când orice modificare de stocare ajunge la două treimi din membrii care votează pentru aceasta, o tranzacție finală ar putea executa modificarea. Un schelet mai sofisticat ar avea, de asemenea, capacitatea de vot încorporată pentru funcții precum trimiterea unei tranzacții, adăugarea de membri și eliminarea membrilor și poate prevedea chiar delegarea de vot în stilul [Democrației lichide](https://wikipedia.org/wiki/Delegative_democracy) (adică oricine poate desemna pe cineva să voteze pentru ei și atribuirea este tranzitivă, deci dacă A atribuie lui B și B atribuie lui C atunci C determină votul lui A). Această concepție ar permite DAO să crească organic ca o comunitate descentralizată, permițând oamenilor să delege în cele din urmă sarcina de a filtra cine este membru al specialiștilor, deși, spre deosebire de „sistemul actual”, specialiștii pot să apară și să iasă din existență de-a lungul timpului, deoarece membrii individuali ai comunității își modifică poziția. - -Un model alternativ este pentru o corporație descentralizată, în care orice cont poate avea zero sau mai multe acțiuni, iar două treimi din acțiuni sunt necesare pentru a lua o decizie. Un schelet complet ar implica funcționalitatea de gestionare a activelor, capacitatea de a face o ofertă de cumpărare sau vânzare de acțiuni și capacitatea de a accepta oferte (de preferință cu un mecanism de ordonare a comenzilor în cadrul contractului). Delegația ar exista, de asemenea, în stilul Democrației Lichide, generalizând conceptul de „consiliu de administrație”. - -### Alte aplicații {#further-applications} - -**1. Portofele de economii**. Să presupunem că Alice vrea să-și păstreze fondurile în siguranță, dar este îngrijorată că va pierde sau că cineva îi va pirata cheia privată. Ea pune eter într-un contract cu Bob, o bancă, după cum urmează: - -- Alice singură poate retrage maxim 1% din fonduri pe zi. -- Bob singur poate retrage maxim 1% din fonduri pe zi, dar Alice are capacitatea de a efectua o tranzacție cu cheia ei închizând această abilitate. -- Alice și Bob împreună pot retrage orice. - -În mod normal, 1% pe zi este suficient pentru Alice și, dacă Alice dorește să retragă mai mult, îl poate contacta pe Bob pentru ajutor. În cazul în care cheia lui Alice este piratată, ea aleargă la Bob pentru a muta fondurile într-un nou contract. Dacă ea își pierde cheia, Bob va scoate fondurile în cele din urmă. Dacă Bob se dovedește a fi rău intenționat, atunci ea îl poate bloca în capacitatea sa de a retrage. - -**2. Asigurarea culturilor**. Se poate face cu ușurință un contract de instrumente financiare derivate utilizând un flux de date al vremii în locul oricărui index de preț. Dacă un fermier din Iowa cumpără un instrument financiar derivat care plătește invers în funcție de precipitațiile din Iowa, atunci dacă este secetă, fermierul va fi plătit automat, iar dacă plouă suficient, fermierul va fi fericit, deoarece îi merge bine culturii lui. Aceasta se poate extinde la asigurarea împotriva dezastrelor naturale în general. - -**3. Un flux de date descentralizat**. Pentru contractele financiare pentru diferență, de fapt este posibilă descentralizarea fluxului de date printr-un protocol numit [SchellingCoin](http://blog.ethereum.org/2014/03/28/schellingcoin-a-minimal-trust-universal-data-feed/). SchellingCoin funcționează în principiu după cum urmează: N părți, pun toate în sistem valoarea unei date de referință (de exemplu, prețul ETH/USD), valorile sunt sortate și toți cei între procentajul de 25 și 75 la sută primesc un token ca recompensă. Toată lumea are stimulentul de a oferi răspunsul pe care îl vor oferi toți ceilalți, iar singura valoare pe care un număr mare de jucători pot să cadă de acord în mod realist este implicit evident: adevărul. Acest lucru creează un protocol descentralizat care poate oferi teoretic orice număr de valori, inclusiv prețul ETH/USD, temperatura din Berlin sau chiar rezultatul unui anumit calcul dur. - -**4. Garanția Escrow inteligentă cu multiple semnături**. Bitcoin permite contracte de tranzacții cu mai multe semnături în care, de exemplu, trei din cinci chei date pot cheltui fondurile. Ethereum permite mai multă granularitate; de exemplu, patru din cinci pot cheltui totul, trei din cinci pot cheltui până la 10% pe zi, iar doi din cinci pot cheltui până la 0,5% pe zi. În plus, Ethereum multisig este asincron - două părți își pot înregistra semnăturile pe blockchain în momente diferite, iar ultima semnătură va trimite automat tranzacția. - -**5. Cloud computing**. Tehnologia EVM poate fi utilizată și pentru a crea un mediu de calcul verificabil, permițând utilizatorilor să solicite altora să efectueze calcule și apoi, opțional, să solicite dovezile corectitudinii calculelor la anumite puncte de control selectate aleatoriu. Acest lucru permite crearea unei piețe de cloud computing în care orice utilizator poate participa cu desktopul, laptopul sau serverul specializat, iar verificarea prin sondaj împreună cu depozitele de securitate pot fi utilizate ca să asigure că sistemul este de încredere (și anume, nodurile nu pot trișa profitabil). Totuși, un astfel de sistem poate să nu fie potrivit pentru toate sarcinile; sarcinile care necesită un nivel ridicat de comunicare între procese, de exemplu, nu pot fi realizate cu ușurință pe un nor mare de noduri. Cu toate acestea, alte sarcini sunt mult mai ușor de paralelizat; proiecte precum SETI@home, folding@home și algoritmi genetici pot fi ușor implementate pe o astfel de platformă. - -**6. Jocuri de noroc peer-to-peer**. Orice număr de protocoale de jocuri de noroc peer-to-peer, cum ar fi Frank Stajano și [Cyberdice](http://www.cl.cam.ac.uk/~fms27/papers/2008-StajanoCla-cyberdice.pdf) a lui Richard Clayton, pot fi implementate pe blockchain-ul Ethereum. Cel mai simplu protocol de jocuri de noroc este de fapt pur și simplu un contract pentru diferențierea pe următorul hash de bloc, iar protocoale mai avansate pot fi construite de acolo, creând servicii de jocuri de noroc cu taxe aproape zero care nu au capacitatea de a trișa. - -**7. Piețe de predicție**. Odată furnizat un oracol sau un SchellingCoin, piețele de predicție sunt, de asemenea, ușor de implementat, iar piețele de predicție împreună cu SchellingCoin se pot dovedi a fi prima aplicație principală a [futarchy](http://hanson.gmu.edu/futarchy.html)-ei ca protocol de guvernanță pentru organizațiile descentralizate. - -**8. Piețe descentralizate în lanț**, folosind sistemul de identitate și reputație ca bază. - -## Diverse și preocupări {#miscellanea-and-concerns} - -### Implementare GHOST modificată {#modified-ghost-implementation} - -Protocolul „Greedy Heaviest Observed Subtree” (GHOST) este o inovație introdusă pentru prima dată de Yonatan Sompolinsky și Aviv Zohar în [decembrie 2013](https://eprint.iacr.org/2013/881.pdf). Motivația din spatele GHOST este că blockchain-urile cu timp de confirmare rapidă suferă în prezent de o securitate redusă din cauza unei rate vechi ridicate - deoarece blocurile iau un anumit timp pentru a se propaga prin rețea, dacă minerul A extrage un bloc și apoi minerul B se întâmplă să exploateze un alt bloc înainte ca blocul minerului A să se propage către B, blocul minerului B va ajunge să fie risipit și nu va contribui la securitatea rețelei. Mai mult, există o problemă de centralizare: dacă minerul A este o piscină minieră cu 30% hashpower și B are 10% hashpower, A va risca să producă un bloc vechi 70% din timp (în timp ce în restul de 30% din timp A produce ultimul bloc și astfel va obține date miniere imediat), în timp ce B va risca să producă un bloc vechi 90% din timp. Astfel, dacă intervalul de blocare este suficient de scurt pentru ca rata de învechire să fie mare, A va fi substanțial mai eficient pur și simplu în virtutea mărimii sale. Cu aceste două efecte combinate, blockchain-urile care produc blocuri rapid sunt foarte susceptibile de a conduce la o singură piscină minieră cu un procent suficient de mare din puterea hash a rețelei pentru a avea un control de facto asupra procesului minier. - -Așa cum este descris de Sompolinsky și Zohar, GHOST rezolvă prima problemă a pierderii securității rețelei prin includerea blocurilor vechi în calcularea cărui lanț este „cel mai lung”; adică nu doar părintele și strămoșii strămoșilor unui bloc, ci și descendenții învechiți ai strămoșului blocului (în jargonul Ethereum, „unchii”) se adaugă la calcularea cărui bloc are cea mai mare dovadă totală a muncii care îl suportă. Pentru a rezolva a doua problemă a prejudecății centralizării, mergem dincolo de protocolul descris de Sompolinsky și Zohar și oferim, de asemenea, recompense pentru blocurile vechi: un bloc vechi primește 87,5% din recompensa sa de bază, iar nepotul care include blocul vechi primește restul de 12,5%. Cu toate acestea, taxele de tranzacție nu sunt acordate unchilor. - -Ethereum implementează o versiune simplificată a GHOST care coboară doar șapte niveluri. Mai precis, este definit după cum urmează: - -- Un bloc trebuie să specifice un părinte și trebuie să specifice 0 sau mai mulți unchi -- Un unchi inclus în blocul `B` trebuie să aibă următoarele proprietăți: -- Acesta trebuie să fie un copil direct al strămoșului de generație `k` al `B`, unde `2 <= k <= 7`. -- Nu poate fi un strămoș al `B` -- Un unchi trebuie să fie un antet de bloc valid, dar nu trebuie să fie un bloc verificat anterior sau chiar valid -- Un unchi trebuie să fie diferit de toți unchii incluși în blocurile anterioare și de toți ceilalți unchi incluși în același bloc (neincludere-dublă) -- Pentru fiecare unchi `U` din blocul `B`, minerul lui `B` primește un plus de 3,125% adăugat la recompensa sa de coinbase, iar minerul lui U primește 93,75% dintr-o recompensă standard de coinbase. - -Această versiune limitată de GHOST, cu unchi incluși doar până la a șaptea generație, a fost folosită din două motive. În primul rând, un GHOST nelimitat ar include prea multe complicații în calcularea cărui unchi este valid pentru un anumit bloc. În al doilea rând, un GHOST nelimitat cu compensare așa cum se utilizează în Ethereum elimină stimulentul unui miner de a mina pe lanțul principal și nu pe lanțul unui atacator public. - -### Taxe {#fees} - -Deoarece fiecare tranzacție publicată în blockchain impune rețelei costul necesității descărcării și verificării acesteia, este nevoie de un anumit mecanism de reglementare, care implică de obicei taxe de tranzacție, pentru a preveni abuzul. Abordarea implicită, utilizată în Bitcoin, este de a avea taxe pur voluntare, bazându-se pe mineri să acționeze ca gardieni și a stabili minime dinamice. Această abordare a fost primită foarte favorabil în comunitatea Bitcoin, în special pentru că este „bazată pe piață”, permițând cererii și ofertei - între minerii și expeditorii tranzacțiilor - să stabilească prețul. Cu toate acestea, problema acestei rațiuni este că procesarea tranzacțiilor nu este o piață; deși este intuitiv atractiv să interpretăm procesarea tranzacției ca un serviciu pe care minerul îl oferă expeditorului, în realitate, fiecare tranzacție pe care un miner o include va trebui procesată de fiecare nod din rețea, deci marea majoritate a costului tranzacției prelucrarea este suportată de terți și nu de minerul care ia decizia de a o include sau nu. Prin urmare, este foarte probabil să apară probleme ale tragediei-bunurilor-comune. - -Totuși, așa după cum se dovedește acest defect al mecanismului bazat pe piață, atunci când i se oferă o ipoteză simplificatoare inexactă, magic se anulează singur. Argumentul este următorul. Să presupunem că: - -1. O tranzacție duce la `k` operațiuni, oferind recompensa `kR` oricărui miner care o include acolo unde `R` este setat de expeditor și `k` și `R` sunt (aproximativ) vizibile în prealabil minerului. -2. O operațiune are un cost de procesare `C` pentru orice nod (adică toate nodurile au o eficiență egală) -3. Există `N` noduri miniere, fiecare cu o putere de procesare exact egală (adică `1/N` din total) -4. Nu există noduri complete care nu sunt miniere. - -Un miner ar fi dispus să proceseze o tranzacție dacă recompensa așteptată este mai mare decât costul. Astfel, recompensa așteptată este `kR/N`, deoarece minerul are o șansă de `1/N` de a procesa următorul bloc, iar costul de procesare pentru miner este pur și simplu `kC`. Prin urmare, minerii vor include tranzacții în cazul în care `kR/N > kC` sau `R > NC`. Reține că `R` este taxa pe operațiunea furnizată de expeditor și, prin urmare, este o limită inferioară a beneficiului pe care expeditorul îl obține din tranzacție, iar `NC` este costul întregii rețele de procesare a unei operațiuni. Prin urmare, minerii sunt stimulați să includă doar acele tranzacții pentru care beneficiul utilitar total depășește costul. - -Cu toate acestea, există mai multe abateri importante de la aceste ipoteze în realitate: - -1. Minerul plătește un cost mai mare pentru procesarea tranzacției decât celelalte noduri de verificare, deoarece timpul de verificare suplimentar întârzie propagarea blocului și astfel crește șansa ca blocul să devină învechit. -2. Există noduri complete care nu sunt miniere. -3. Distribuția energiei miniere poate ajunge radical inegalizată în practică. -4. Speculatorii, dușmanii politici și nebunii ale căror funcții de utilitate includ provocarea de daune rețelei există și pot stabili în mod inteligent contracte în care costul lor este mult mai mic decât costul plătit de alte noduri de verificare. - -(1) oferă unui miner tendința de a include mai puține tranzacții și (2) crește `NC`; prin urmare, aceste două efecte, cel puțin parțial, se anulează reciproc. [Cum?](https://github.com/ethereum/wiki/issues/447#issuecomment-316972260) (3) și (4) sunt problemele majore; pentru a le rezolva, instituim pur și simplu un plafon variabil limitat: niciun bloc nu poate face mai multe operații decât `BLK_LIMIT_FACTOR` înmulțit cu media mișcării exponențiale pe termen lung. Mai precis: - - blk.oplimit = floor((blk.parent.oplimit \* (EMAFACTOR - 1) + - floor(parent.opcount \* BLK\_LIMIT\_FACTOR)) / EMA\_FACTOR) - -`BLK_LIMIT_FACTOR` și `EMA_FACTOR` sunt constante care vor fi setate pentru moment la 65536 și 1,5, dar probabil vor fi modificate după o analiză ulterioară. - -Există un alt factor care descurajează supradimensionarea blocurilor în Bitcoin: blocurile care sunt mari vor dura mai mult timp pentru a se propaga și, prin urmare, au o probabilitate mai mare de a deveni vechi. În Ethereum, propagarea blocurilor care consumă foarte mult gaz poate dura, de asemenea, mai mult, pentru sunt mai mari din punct de vedere fizic și pentru că au nevoie de mai mult timp pentru a procesa tranzițiile stării tranzacției pentru a le valida. Această descurajare a întârzierii este o considerație semnificativă în Bitcoin, dar mai puțin în Ethereum din cauza protocolului GHOST; prin urmare, bazarea pe limite de blocuri reglementate, oferă o linie de bază mai stabilă. - -### Calcul și completitudine-Turing {#computation-and-turing-completeness} - -O notă importantă este că mașina virtuală Ethereum este Turing-completă; aceasta înseamnă că orice calcul care se poate realiza, poate fi codificat de codul mașinii virtuale Ethereum, inclusiv buclele infinite. Codul EVM permite bucle infinite în două moduri. În primul rând, există o instrucțiune `JUMP` care permite programului să se întoarcă la un loc anterior din cod și o instrucțiune `JUMPI` pentru a face un salt condițional, permițând instrucțiuni precum `while x < 27: x = x * 2`. În al doilea rând, contractele pot apela alte contracte, permițând potențial buclarea prin recursivitate. Acest lucru duce în mod natural la o problemă: pot utilizatorii rău intenționați să blocheze minerii și nodurile complete, forțându-i să intre într-o buclă infinită? Problema apare din cauza unei probleme în informatică cunoscută sub numele de „problema opririi”: nu există nicio modalitate de a spune, în cazul general, dacă un anumit program se va opri vreodată. - -Așa cum este descris în secțiunea de tranziție de stare, soluția noastră funcționează solicitând unei tranzacții să stabilească un număr maxim de pași de calcul pe care este permis să-i facă, iar dacă execuția durează mai mult, calculul este anulat, dar taxele trebuie plătite. Mesajele funcționează în același mod. Pentru a arăta motivația din spatele soluției noastre, ia în considerare următoarele exemple: - -- Un atacator creează un contract care execută o buclă infinită, apoi trimite o tranzacție activând acea buclă către miner. Minerul va procesa tranzacția, rulând bucla infinită și va aștepta ca aceasta să rămână fără gaz. Chiar dacă execuția rămâne fără gaz și se oprește la jumătatea parcursului, tranzacția este încă valabilă, iar minerul cere totuși taxa de la atacator pentru fiecare etapă de calcul. -- Un atacator creează o buclă infinită foarte lungă cu intenția de a-l forța pe miner să continue să calculeze atât de mult timp, încât atunci când calculul se termină, vor mai apărea câteva blocuri și nu va fi posibil ca minerul să includă tranzacția pentru solicitarea taxei. Cu toate acestea, atacatorului i se va cere să trimită o valoare pentru `STARTGAS`, limitând numărul de pași de calcul pe care îi poate face execuția, astfel încât minerul va ști din timp că acest calcul va lua un număr excesiv de mare de pași. -- Un atacator vede un contract cu un cod cu o formă cum ar fi `send(A,contract.storage[A]); contract.storage[A] = 0` și trimite o tranzacție cu suficient gaz pentru a executa primul pas, dar nu și al doilea (adică efectuarea unei retrageri fără a permite scăderea soldului). Autorul contractului nu trebuie să-și facă griji cu privire la protecția împotriva unor astfel de atacuri, deoarece dacă execuția se oprește la jumătatea modificărilor, acestea vor fi anulate. -- Un contract financiar funcționează luând mediana a nouă fluxuri de date proprietare pentru a minimiza riscul. Un atacator preia unul dintre fluxurile de date, care este conceput pentru a fi modificabil prin intermediul mecanismului de apelare a adresei variabile descris în secțiunea despre DAO-uri și îl convertește pentru a rula o buclă infinită, încercând astfel să forțeze orice încercări de a solicita fonduri de la contractul financiar să ducă la o lipsă de gaz. Cu toate acestea, contractul financiar poate stabili o limită de gaz pentru mesaj pentru a preveni această problemă. - -Alternativa la completitudinea-Turing este incompletitudinea-Turing, în care `JUMP` și `JUMPI` nu există și este permis să existe numai o singură copie a fiecărui contract în stiva de apeluri la un moment dat. Cu acest sistem, sistemul de taxe descris și incertitudinile legate de eficacitatea soluției noastre ar putea să nu fie necesare, deoarece costul executării unui contract ar depăși sau fi egal cu contractul însuși datorită mărimii sale. În plus, incompletitudinea-Turing nu este o limitare chiar atât de mare; dintre toate exemplele de contracte pe care le-am conceput intern până acum, doar unul a necesitat o buclă și chiar și acea buclă ar putea fi eliminată făcând 26 de repetări ale unei bucăți de cod dintr-o linie. Având în vedere implicațiile serioase ale completitudinii-Turing și beneficiul limitat, de ce să nu avem pur și simplu un limbaj Turing incomplet? În realitate, totuși, incompletitudinea-Turing este departe de a fi o soluție elegantă la problemă. Pentru a vedea de ce, ia în considerare următoarele contracte: - - C0: call(C1); call(C1); - C1: call(C2); call(C2); - C2: call(C3); call(C3); - ... - C49: call(C50); call(C50); - C50: (rulează un pas al unui program și înregistrează modificarea stocării) - -Acum, trimite o tranzacție la A. Așadar, în 51 de tranzacții, avem un contract care durează 250 de pași de calcul. Minerii ar putea încerca să detecteze astfel de bombe logice din timp, menținând o valoare alături de fiecare contract, specificând numărul maxim de pași de calcul pe care îi poate face și calculând acest lucru pentru contractele care solicită alte contracte recursiv, dar asta ar necesita interzicerea de către mineri a contractelor care creează alte contracte (din moment ce crearea și executarea tuturor celor 26 de contracte de mai sus ar putea fi ușor transformate într-un singur contract). Un alt punct problematic este proprietatea de variabilitate a câmpului de adresă al unui mesaj, deci, în general, nici măcar nu este posibil să se spună din timp ce alt contract va apela un anumit contract. Prin urmare, una peste alta, avem o concluzie surprinzătoare: completitudinea-Turing este surprinzător de ușor de gestionat, iar lipsa completitudinii-Turing este la fel de surprinzător de dificil de gestionat dacă nu există exact aceleași controale - dar în acest caz de ce să nu lăsăm protocolul să fie doar Turing-complet? - -### Moneda și emiterea {#currency-and-issuance} - -Rețeaua Ethereum include propria sa monedă încorporată, eterul, care servește scopului dublu de a furniza un strat de lichiditate primar pentru a permite schimbul eficient între diferite tipuri de active digitale și, mai important, de a oferi un mecanism de plată a taxelor de tranzacție. Pentru comoditate și pentru a evita argumentele viitoare (a se vedea dezbaterea actuală mBTC/uBTC/satoshi în Bitcoin), denominațiile vor fi pre-etichetate: - -- 1: wei -- 1012: szabo -- 1015: finney -- 1018: eter - -Aceasta ar trebui luată ca o versiune extinsă a conceptului de „dolari” și „cenți” sau „BTC” și „satoshi”. În viitorul apropiat, ne așteptăm ca „eter” să fie utilizat pentru tranzacții obișnuite, „finney” pentru microtranzacții și „szabo" și „wei” pentru discuții tehnice despre taxe și implementarea protocolului; valorile rămase pot deveni utile ulterior și nu ar trebui incluse în clienți în acest moment. - -Modelul de emisiune va fi după cum urmează: - -- Eterul va fi lansat într-o vânzare valutară la prețul de 1.000-2.000 eter per BTC, un mecanism destinat finanțării organizației Ethereum și ca plată pentru dezvoltare care a fost utilizat cu succes de alte platforme, cum ar fi Mastercoin și NXT. Cumpărătorii timpurii vor beneficia de reduceri mai mari. BTC-ul primit din vânzare va fi utilizat în întregime pentru a plăti salarii și recompense programatorilor și va fi investit în diverse proiecte cu scop lucrativ și non-profit din ecosistemul Ethereum și criptomonedă. -- 0,099x suma totală vândută (60.102.216 ETH) va fi alocată organizației pentru a compensa contribuabilii timpurii și pentru a plăti cheltuielile exprimate în ETH înainte de blocul genezei. -- 0,099x suma totală vândută va fi menținută pe termen lung ca rezervă. -- 0,26x suma totală vândută va fi alocată minerilor pe an pentru totdeauna după acel moment. - -| Grup | La lansare | După 1 an | După 5 ani | -| ----------------------------- | ---------- | --------- | ---------- | -| Unități valutare | 1,198X | 1,458X | 2,498X | -| Cumpărători | 83,5% | 68,6% | 40,0% | -| Rezervă cheltuită pre-vânzare | 8,26% | 6,79% | 3,96% | -| Rezervă folosite post-vânzare | 8,26% | 6,79% | 3,96% | -| Mineri | 0% | 17,8% | 52,0% | - -**Rata de creștere a aprovizionării pe termen lung (procente)** - -![Inflația Ethereum](../../../whitepaper/ethereum-inflation.png) - -_În ciuda emiterii liniare a monedei, la fel ca în cazul Bitcoin în timp, rata de creștere a ofertei tinde totuși la zero_ - -Cele două alternative principale din modelul de mai sus sunt (1) existența și dimensiunea unui fond de dotare și (2) existența unei oferte liniare în continuă creștere, spre deosebire de o aprovizionare plafonată ca în Bitcoin. Justificarea fondului de dotare este următoarea. Dacă fondul de dotare nu ar exista și emisia liniară s-ar reduce la 0,217x pentru a furniza aceeași rată a inflației, atunci cantitatea totală de eter ar fi cu 16,5% mai mică și astfel fiecare unitate ar fi cu 19,8% mai valoroasă. Prin urmare, în echilibrul 19,8% mai mult eter ar fi cumpărat în vânzare, astfel încât fiecare unitate ar fi din nou la fel de valoroasă ca înainte. Organizația ar avea atunci 1,198x de BTC, care poate fi considerat a fi împărțit în două tranșe: BTC-ul original și 0,198x suplimentar. Prin urmare, această situație este _exact echivalentă_ cu dotarea, dar cu o diferență importantă: organizația deține pur BTC și, prin urmare, nu este stimulată să susțină valoarea unității de eter. - -Modelul permanent de creștere a ofertei liniare reduce riscul a ceea ce unii consideră a fi o concentrare excesivă a bogăției în Bitcoin și oferă persoanelor care trăiesc în epocile prezente și viitoare șansa justă de a achiziționa unități valutare, păstrând în același timp un puternic stimulent pentru a obține și deține eter pentru că „rata de creștere a ofertei” ca procent încă tinde la zero în timp. Teoretizăm, de asemenea, că, deoarece monedele se pierd întotdeauna în timp din cauza neglijenței, decesului etc., iar pierderea monedelor poate fi modelată ca procent din oferta totală pe an, că oferta totală de monedă în circulație se va stabiliza, de fapt, la o valoare egală cu emisiunea anuală împărțită la rata de pierdere (de exemplu, la o rată de pierdere de 1%, odată ce aprovizionarea atinge 26X, atunci se va extrage 0,26X și se va pierde 0,26X în fiecare an, creând un echilibru). - -De reținut că, în viitor, este probabil ca Ethereum să treacă la un model de dovadă a mizei pentru securitate, reducând cerința de emitere la undeva între zero și 0,05X pe an. În cazul în care organizația Ethereum pierde finanțarea sau din orice alt motiv dispare, lăsăm deschis un „contract social”: oricine are dreptul să creeze o viitoare versiune candidat a Ethereum, cu o singură condiție și anume cantitatea de eter să fie cel mult egală cu `60.102.216 * (1,198 + 0,26 * n)` unde `n` este numărul de ani după blocul de geneză. Creatorii sunt liberi să vândă în grup, sau să atribuie o parte sau toată diferența dintre expansiunea alimentării datorată PoS și extinderea maximă admisibilă a ofertei, pentru a plăti pentru dezvoltare. Upgrade-urile candidaților care nu respectă contractul social pot fi în mod justificat încorporați în versiuni conforme. - -### Centralizarea mineritului {#mining-centralization} - -Algoritmul de extragere Bitcoin funcționează pe faptul că minerii calculează SHA256 pe versiuni ușor modificate ale antetului blocului de milioane de ori din nou și din nou, până când în cele din urmă un nod vine cu o versiune al cărei hash este mai mic decât ținta (în prezent în jur de 2192). Cu toate acestea, acest algoritm de minerit este vulnerabil la două forme de centralizare. În primul rând, ecosistemul minier a ajuns să fie dominat de ASIC-uri (circuite integrate specifice aplicației), cipuri de calculator concepute pentru, și, prin urmare, de mii de ori mai eficiente la sarcina specifică mineritului de Bitcoin. Aceasta înseamnă că mineritul de Bitcoin și-a pierdut scopul primordial al descentralizării și egalității, necesitând milioane de dolari de capital pentru a participa efectiv. În al doilea rând, majoritatea minerilor Bitcoin nu efectuează de fapt validarea blocurilor la nivel local; în schimb, se bazează pe un bazin centralizat și temporar de date de minerit pentru a furniza anteturile blocului. Această problemă este, cu siguranță, mai gravă: în momentul scrierii acestui articol, primele trei grupuri miniere controlează indirect aproximativ 50% din puterea de procesare din rețeaua Bitcoin, deși acest lucru este atenuat de faptul că minerii pot trece la alte bazine miniere dacă un grup sau coaliția încearcă un atac de 51%. - -Intenția actuală la Ethereum este de a utiliza un algoritm de minerit în care minerii sunt obligați să aducă date aleatorii din stare, să calculeze unele tranzacții selectate aleatoriu din ultimele N blocuri din blockchain și să returneze hash-ul rezultatului. Aceasta are două beneficii importante. În primul rând, contractele Ethereum pot include orice tip de calcul, deci un ASIC Ethereum ar fi în esență un ASIC pentru calcul general - adică un procesor mai bun. În al doilea rând, mineritul necesită acces la întregul blockchain, forțând minerii să stocheze întregul blockchain și cel puțin să fie capabili să verifice fiecare tranzacție. Aceasta elimină necesitatea unor bazine miniere centralizate; deși bazinele miniere pot îndeplini în continuare rolul legitim de distribuire a recompenselor, această funcție poate fi servită la fel de bine de grupurile peer-to-peer fără control central. - -Acest model nu este testat și ar putea exista dificultăți pe parcurs pentru a evita anumite optimizări inteligente atunci când se utilizează executarea contractului ca algoritm minier. Cu toate acestea, o caracteristică deosebit de interesantă a acestui algoritm este aceea că permite oricui să „otrăvească fântâna”, prin introducerea unui număr mare de contracte în blockchain-ul special conceput pentru a bloca anumite ASIC-uri. Există stimulente economice pentru producătorii ASIC de a folosi un astfel de truc pentru a se ataca reciproc. Astfel, soluția pe care o dezvoltăm este, în cele din urmă, o soluție economică adaptativă umană, mai degrabă decât una pur tehnică. - -### Scalabilitatea {#scalability} - -O preocupare comună cu privire la Ethereum este problema scalabilității. Asemenea cu Bitcoin, Ethereum suferă de defectul că fiecare tranzacție trebuie procesată de fiecare nod din rețea. Cu Bitcoin, dimensiunea blockchain-ului actual se situează la aproximativ 15 GB, crescând cu aproximativ 1 MB pe oră. Dacă rețeaua Bitcoin ar procesa cele 2.000 de tranzacții Visa pe secundă, ar crește cu 1 MB pe trei secunde (1 GB pe oră, 8 TB pe an). Este posibil ca Ethereum să sufere un tipar similar de creștere, înrăutățit de faptul că vor exista multe aplicații bazate pe blockchain-ul Ethereum în loc de doar o monedă, așa cum este cazul cu Bitcoin, dar ameliorat de faptul că nodurile complete Ethereum trebuie să stocheze doar starea în locul întregului istoric blockchain. - -Problema cu o dimensiune atât de mare a blockchain-ului este riscul de centralizare. Dacă dimensiunea blockchain-ului crește la, să zicem, 100 TB, atunci scenariul probabil ar fi că doar un număr foarte mic de companii mari ar rula noduri complete, toți utilizatorii obișnuiți folosind noduri SPV ușoare. Într-o astfel de situație, apare potențialul îngrijorător că nodurile complete ar putea să se unească și să cadă cu toții de acord să trișeze într-un mod profitabil (de exemplu, să schimbe recompensa pe bloc, să-și acorde singuri BTC). Nodurile ușoare nu ar avea nicio modalitate de a detecta acest lucru imediat. Desigur, probabil ar exista cel puțin un nod cinstit complet și, după câteva ore, informațiile despre fraudă se vor scurge prin canale precum Reddit, dar în acel moment ar fi prea târziu: ar depinde de utilizatorii obișnuiți să se organizeze într-un efort de a pune pe lista neagră blocurile date, o problemă de coordonare masivă și probabil imposibil de realizat la o scară similară cu cea a lansării unui atac de succes de 51%. În cazul Bitcoin-ului, aceasta este în prezent o problemă, dar există o modificare blockchain [sugerată de Peter Todd](https://web.archive.org/web/20140623061815/http://sourceforge.net/p/bitcoin/mailman/message/31709140/) care va atenua această problemă. - -În viitorul apropiat, Ethereum va folosi două strategii suplimentare pentru a face față acestei probleme. În primul rând, datorită algoritmilor de exploatare bazate pe blockchain, cel puțin fiecare miner va fi forțat să fie un nod complet, încât să fie în numărul egal sau mai mic cu cel al nodurilor complete. În al doilea rând și mai important totodată, vom include o rădăcină intermediară de arbore de stare în blockchain, după procesarea fiecărei tranzacții. Chiar dacă validarea blocurilor este centralizată, atâta timp cât există un nod de verificare onest, problema centralizării poate fi ocolită printr-un protocol de verificare. Dacă un miner publică un bloc nevalid, acel bloc trebuie să fie formatat greșit sau să aibă o stare `S[n]` incorectă. Deoarece `S[0]` este cunoscut ca fiind corect, trebuie să existe o primă stare `S [i]` care este incorectă unde `S[i-1]` este corect. Nodul de verificare ar furniza indexul `i`, împreună cu o „dovadă de invaliditate” constând din subsetul de noduri de arbori Patricia care trebuie să proceseze `APPLY(S[i-1], TX [i]) -> S[i]`. Nodurile ar putea folosi acele noduri Patricia pentru a rula acea parte de calcul, și a vedea dacă `S[i]` generat nu corespunde cu `S[i]` furnizat. - -Un alt atac, mai sofisticat, ar implica minerii rău intenționați care publică blocuri incomplete, astfel încât informațiile complete nici măcar să nu existe pentru a determina dacă blocurile sunt valabile sau nu. Soluția la acest lucru este un protocol provocare-răspuns: nodurile de verificare emit „provocări” sub formă de indicii de tranzacție țintă, iar la primirea unui nod, un nod ușor tratează blocul ca fiind nesigur până când un alt nod, fie un miner fie un alt verificator, oferă un subset de noduri Patricia ca dovadă a validității. - -## Concluzie {#conclusion} - -Protocolul Ethereum a fost conceput inițial ca o versiune îmbunătățită a unei criptomonede, oferind caracteristici avansate, cum ar fi escrow pe-blockchain, limitele de retragere, contracte financiare, piețele de jocuri și altele asemenea, printr-un limbaj de programare extrem de generalizat. Protocolul Ethereum nu ar „sprijini” nicio aplicație în mod direct, dar existența unui limbaj de programare complet Turing înseamnă că, teoretic, pot fi create contracte arbitrare pentru orice tip de tranzacție sau aplicație. Totuși, ceea ce este mai interesant la Ethereum este că protocolul Ethereum se deplasează mult dincolo de simpla monedă. Protocoalele legate de stocarea descentralizată a fișierelor, calculul descentralizat și piețele de predicție descentralizate, printre alte zeci de astfel de concepte, au potențialul de a spori substanțial eficiența industriei de calcul și de a oferi un impuls masiv altor protocoale peer-to-peer prin adăugarea pentru prima dată a unui nivel economic. În cele din urmă, există, de asemenea, o gamă substanțială de aplicații care nu au nimic de-a face cu banii, absolut deloc. - -Conceptul unei funcții de tranziție de stare arbitrară așa cum este implementat de protocolul Ethereum furnizează o platformă cu potențial unic; mai degrabă decât să fie un protocol închis, cu un singur scop, destinat unei game specifice de aplicații în stocarea datelor, jocuri de noroc sau finanțe, Ethereum este deschis prin design și credem că este extrem de bine potrivit pentru a servi ca nivel fundamental pentru un număr foarte mare de protocoale atât financiare, cât și non-financiare în anii următori. - -## Note și referințe suplimentare {#notes-and-further-reading} - -### Note {#notes} - -1. Un cititor sofisticat poate observa că, de fapt, o adresă Bitcoin este hash-ul cheii publice a curbei eliptice și nu cheia publică în sine. Cu toate acestea, este de fapt o terminologie criptografică perfect legitimă să se refere la hash-ul cheii publice ca la cheia publică în sine. Acest lucru se întâmplă deoarece criptografia Bitcoin poate fi considerată a fi un algoritm personalizat de semnătură digitală, în care cheia publică se compune din hash-ul cheii publice ECC, semnătura constă din cheia publică ECC concatenată cu semnătura ECC, iar algoritmul de verificare implică verificarea cheii publice ECC în semnătură împotriva hash-ului cheii publice ECC furnizat ca o cheie publică și apoi verificarea semnăturii ECC împotriva cheii publice ECC. -2. Din punct de vedere tehnic, mediana celor 11 blocuri anterioare. -3. Protocolul Ethereum ar trebui să fie la fel de simplu pe cât de practic, dar poate fi necesar să ai un nivel destul de ridicat de complexitate, de exemplu, la scalare, pentru a absorbi costurile de stocare, lățimea de bandă și I/O, pentru securitate, confidențialitate, transparență etc. Acolo unde este necesară complexitatea, documentația ar trebui să fie cât mai clară, concisă și actualizată posibil, astfel încât cineva fără nici o cunoștință în Ethereum să-l poată învăța și să devină un expert. -4. Consultă [Yellow Paper](https://ethereum.github.io/yellowpaper/paper.pdf) pentru Mașina Virtuală Ethereum (care este utilă ca specificație și ca referință pentru construirea unui client Ethereum de la zero), în timp ce există multe subiecte în [wiki Ethereum](https://github.com/ethereum/wiki/wiki), cum ar fi dezvoltarea de fragmente, dezvoltarea de bază, dezvoltarea de aplicații dapp, cercetare, cercetare și dezvoltare Casper R&D și protocoale de rețea. Pentru cercetare și posibila implementare viitoare există [ethresear.ch](https://ethresear.ch). -5. Un alt mod de a exprima acest lucru este abstractizarea. Cea mai [recentă foaie de parcurs](https://ethresear.ch/t/sharding-phase-1-spec/1407/67) este planificarea abstractizării execuției, permițând motoarelor de execuție să nu trebuiască neapărat să respecte o specificație canonică, dar, de exemplu, ar putea fi adaptate pentru o aplicație specifică, precum și pentru un fragment. (Această eterogenitate a motoarelor de execuție nu este menționată în mod explicit în foaia de parcurs. Există, de asemenea, fragmentarea eterogenă, pe care Vlad Zamfir a conceput-o.) -6. Pe plan intern, 2 și „CHARLIE” sunt ambele numere, acesta din urmă fiind în reprezentare de bază big-endian 256. Numerele pot fi cel puțin 0 și cel mult 2256-1. - -### Referințe suplimentare {#further-reading} - -1. [Valoare intrinsecă](http://bitcoinmagazine.com/8640/an-exploration-of-intrinsic-value-what-it-is-why-bitcoin-doesnt-have-it-and-why-bitcoin-does-have-it/) -2. [Proprietate inteligentă](https://en.bitcoin.it/wiki/Smart_Property) -3. [Contracte inteligente](https://en.bitcoin.it/wiki/Contracts) -4. [B-money](http://www.weidai.com/bmoney.txt) -5. [Dovezi de muncă reutilizabile](http://www.finney.org/~hal/rpow/) -6. [Titluri de proprietate securizate cu autoritatea proprietarului](http://szabo.best.vwh.net/securetitle.html) -7. [Whitepaper Bitcoin](http://bitcoin.org/bitcoin.pdf) -8. [Namecoin](https://namecoin.org/) -9. [Triunghiul lui Zooko](https://wikipedia.org/wiki/Zooko's_triangle) -10. [Whitepaper Monede colorate](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit) -11. [Whitepaper Mastercoin](https://github.com/mastercoin-MSC/spec) -12. [Corporații autonome descentralizate, Bitcoin Magazine](http://bitcoinmagazine.com/7050/bootstrapping-a-decentralized-autonomous-corporation-part-i/) -13. [Verificare simplificată a plății](https://en.bitcoin.it/wiki/Scalability#Simplifiedpaymentverification) -14. [Arbori Merkle](https://wikipedia.org/wiki/Merkle_tree) -15. [Arbori Patricia](https://wikipedia.org/wiki/Patricia_tree) -16. [GHOST](https://eprint.iacr.org/2013/881.pdf) -17. [StorJ și agenți autonomi, Jeff Garzik](http://garzikrants.blogspot.ca/2013/01/storj-and-bitcoin-autonomous-agents.html) -18. [Mike Hearn despre Proprietăți Inteligente la Festivalul Turing](http://www.youtube.com/watch?v=Pu4PAMFPo5Y) -19. [Ethereum RLP](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-RLP) -20. [Arbori Merkle Patricia Ethereum](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-Patricia-Tree) -21. [Peter Todd despre arborii sumă Merkle](http://sourceforge.net/p/bitcoin/mailman/message/31709140/) - -_Pentru istoricul White Paper, vezi https://github.com/ethereum/wiki/blob/old-before-deleting-all-files-go-to-wiki-wiki-instead/old-whitepaper-for-historical-reference.md_ - -_Ethereum, ca multe proiecte software open-source bazate pe comunitate, a evoluat de la începuturile sale. Pentru a afla despre cele mai recente evoluții ale Ethereum și despre modul în care se fac modificările protocolului, îți recomandăm acest [ghid](/learn/)._ diff --git a/src/content/translations/ru/community/support/index.md b/src/content/translations/ru/community/support/index.md deleted file mode 100644 index 025f0565642..00000000000 --- a/src/content/translations/ru/community/support/index.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -title: Поддержка Ethereum -description: Получите поддержку в экосистеме Ethereum. -lang: ru ---- - -# Поддержка Ethereum {#support} - -## Официальная поддержка Ethereum {#official-support} - -Ищете официальную поддержку Ethereum? Первое, что вы должны знать, — Ethereum является децентрализованной системой. Это означает, что ни одна центральная организация, структура или лицо не владеет Ethereum, и поэтому не существует официальных каналов поддержки. - -Понимание децентрализованной природы Ethereum жизненно важно, потому что любой, кто утверждает, что является официальной поддержкой Ethereum, вероятно, пытается вас обмануть! Лучшая защита от мошенников — это самообучение и серьезное отношение к безопасности. - - - Безопасность Ethereum и предотвращение мошенничества - - - - Изучение основ Ethereum - - -Несмотря на отсутствие официальной поддержки, многие группы, сообщества и проекты в экосистеме Ethereum рады помочь, и на этой странице вы можете найти много полезной информации и ресурсов. Остались вопросы? Присоединяйтесь к [ethereum.org на платформе Discord](/discord/), и мы постараемся помочь. - -## Поддержка кошелька {#wallet-support} - -У вас проблемы с кошельком? У большинства кошельков есть специальные группы поддержки, которые могут помочь. - -- [MetaMask](https://metamask.zendesk.com/hc/) -- [Argent](https://support.argent.xyz/hc/) -- [MyEtherWallet](https://help.myetherwallet.com/) - -_Это не полный список. Нужна помощь в поиске поддержки для определенного кошелька? Присоединяйтесь к [ethereum.org на платформе Discord](https://discord.gg/ethereum-org), и мы постараемся помочь._ - -Ищете кошелек Ethereum? [Ознакомьтесь с полным списком кошельков Ethereum](/wallets/find-wallet/). - -## Разработка децентрализованных приложений {#building-support} - -Этот процесс может быть сложным. Вот несколько ориентированных на разработку ресурсов с опытными разработчиками Ethereum, которые будут рады помочь. - -- [Университет Alchemy](https://university.alchemy.com/#starter_code) -- [CryptoDevs на платформе Discord](https://discord.gg/Z9TA39m8Yu) -- [Ethereum StackExchange](https://ethereum.stackexchange.com/) -- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) -- [Университет Web3](https://www.web3.university/) -- [LearnWeb3](https://discord.com/invite/learnweb3) - -Вы также можете найти документацию и руководства по разработке в нашем разделе [ресурсов для разработчиков Ethereum](/developers/). - -### Инструментарий {#dapp-tooling} - -Ваш вопрос относится к конкретному инструменту, проекту или библиотеке? У большинства проектов есть чат-серверы или форумы, посвященные поддержке. - -Вот примеры нескольких популярных. - -- [Solidity](https://gitter.im/ethereum/solidity/) -- [ethers.js](https://discord.gg/6jyGVDK6Jx) -- [web3.js](https://discord.gg/GsABYQu4sC) -- [Hardhat](https://discord.gg/xtrMGhmbfZ) -- [Truffle](https://discord.gg/8uKcsccEYE) -- [Alchemy](http://alchemy.com/discord) -- [Tenderly](https://discord.gg/fBvDJYR) - -## Запуск узла {#node-support} - -Если вы запускаете узел или валидатора, вот несколько сообществ, призванных помочь вам начать работу. - -- [EthStaker на платформе Discord](https://discord.io/ethstaker) -- [EthStaker на платформе Reddit](https://www.reddit.com/r/ethstaker) - -У большинства команд, разрабатывающих клиентов Ethereum, также есть специальные открытые площадки, где вы можете получить поддержку и задать вопросы. - -### Клиенты исполнения {#execution-clients} - -- [Geth](https://discord.gg/FqDzupGyYf) -- [Nethermind](https://discord.gg/YJx3pm8z5C) -- [Besu](https://discord.gg/p8djYngzKN) -- [Erigon](https://github.com/ledgerwatch/erigon/issues) - -### Клиенты консенсуса {#consensus-clients} - -- [Prysm](https://discord.gg/prysmaticlabs) -- [Nimbus](https://discord.gg/nSmEH3qgFv) -- [Lighthouse](https://discord.gg/cyAszAh) -- [Teku](https://discord.gg/7hPv2T6) -- [Lodestar](https://discord.gg/aMxzVcr) - -Вы также можете [узнать, как запустить узел, здесь](/developers/docs/nodes-and-clients/run-a-node/). - -## Часто задаваемые вопросы {#faq} - -#### Эфиры (ETH) отправлены не на тот кошелек {#wrong-wallet} - -Транзакция, отправленная на Ethereum, необратима. К сожалению, если вы отправили эфиры (ETH) не на тот кошелек, вернуть эти средства невозможно. Ни одна центральная организация, структура или лицо не владеет Ethereum — это означает, что никто не может отменить транзакции. Поэтому очень важно всегда перепроверять свои транзакции перед отправкой. - -#### Как мне получить Ethereum в бесплатной раздаче? {#giveaway-scam} - -Раздачи Ethereum — это мошенничество, предназначенное для кражи ваших эфиров (ETH). Не ведитесь на предложения, которые кажутся слишком хорошими, чтобы быть правдой, — если вы отправите эфиры (ETH) на адрес раздачи, вы не получите раздачу и не сможете вернуть свои средства. - -[Подробнее о предотвращении мошенничества](/security/#common-scams) - -#### Моя транзакция зависла {#stuck-transaction} - -Транзакции в Ethereum иногда могут зависать, если вы ввели меньшую, чем требуется в сети из-за нагрузки, комиссию за транзакцию. Многие кошельки предоставляют возможность повторной отправки той же транзакции, но с более высокой комиссией, чтобы она была обработана. Кроме того, вы можете отменить ожидающую транзакцию, отправив транзакцию на свой адрес и используя тот же одноразовый номер (nonce), что и ожидающая транзакция. - -[Как ускорить или отменить ожидающую транзакцию на MetaMask](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) - -[Как отменить ожидающие транзакции Ethereum](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) - -#### Как я могу добыть Ethereum? {#mining-ethereum} - -Майнинг Ethereum стал невозможен. Майнинг был отключен, когда Ethereum перешел с доказательства работы на доказательство владения. Теперь вместо майнеров в Ethereum появились валидаторы. Валидаторы занимаются стейкингом ETH и получают вознаграждение за обеспечение безопасности сети. - -#### Как я могу стать дольщиком (стейкером) или валидатором? {#become-validator} - -Чтобы стать валидатором, нужно стать дольщиком 32 ETH в депозитном контракте Ethereum и установить узел валидатора. Более подробная информация доступна на [страницах](/staking) и [лаунчпаде](https://launchpad.ethereum.org/) стейкинга. diff --git a/src/content/translations/ru/dao/index.md b/src/content/translations/ru/dao/index.md deleted file mode 100644 index e6dc9cc0b28..00000000000 --- a/src/content/translations/ru/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: Децентрализованные автономные организации (DAO) -description: Обзор DAO на Ethereum -lang: ru -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: Представление голосований DAO по предложению. -summaryPoint1: Сообщества, принадлежащие его членам, без централизованного аппарата управления. -summaryPoint2: Безопасный способ сотрудничества с незнакомцами в Интернете. -summaryPoint3: Безопасное место для выделения средств на конкретную цель. ---- - -## Что такое DAO? {#what-are-daos} - -DAO — это организация, управляемая сообществом блокчейн и работающая над достижением общей цели. - -DAO позволяют работать с единомышленниками по всему миру, не нуждаясь в руководителе для управления денежными средствами и операциями. Нет генерального директора, тратящего деньги по своей прихоти, или финансового директора, манипулирующего отчетностью. Вместо этого встроенные в код правила, основанные на блокчейне, определяют, как организация работает и тратит деньги. - -У них встроенные капиталы, к которым никто не имеет права доступа без согласия группы. Решения принимаются после предложений и голосования. Благодаря этому каждый в организации имеет право голоса и все в сети происходит прозрачно. - -## Зачем нам нужны DAO? {#why-dao} - -Создание с кем-то организации, подразумавающее привлечение финансирования и денег, требует большого доверия к людям, с которыми вы работаете. Но трудно доверять тому, с кем вы взаимодействовали только в Интернете. При работе с DAO вам не нужно доверять другим членам группы. Достаточно доверия коду DAO, который на 100 % прозрачен и может быть проверен кем угодно. - -Это открывает огромные возможности для глобального сотрудничества и координации. - -### Сравнение {#dao-comparison} - -| DAO | Традиционная организация | -| -------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | -| Обычно абсолютно демократичная, без иерархии. | Обычно иерархичная. | -| Для внесения любых изменений требуется голосование. | В зависимости от структуры изменения могут запрашиваться одной стороной или предлагаться на основе голосования. | -| Голоса подсчитываются, и результат реализуется автоматически без доверенного посредника. | Если голосование разрешено, голоса подсчитываются с помощью внутренних процедур, а результаты голосования должны обрабатываться вручную. | -| Предлагаемые услуги обрабатываются автоматически децентрализованным образом (например, распределение благотворительных средств). | Требуется вмешательство человека или централизованно управляемая автоматизация, подверженная манипуляциям. | -| Вся деятельность является прозрачной и полностью доступной для публики. | Обычно деятельность конфиденциальна, а доступ публики к информации о ней ограничен. | - -### Примеры DAO {#dao-examples} - -Чтобы внести ясность, приведем несколько примеров возможного использования DAO. - -- Благотворительность: вы можете принимать пожертвования от любого человека в мире и голосовать за цели, которые будете спонсировать. -- Коллективное владение — это возможность приобретения физических или цифровых активов, участники которого могут голосовать за то, как их использовать. -- Венчурные инвестиции и гранты. Вы можете создать венчурный фонд, который объединяет инвестиционный капитал и голосует за участие в венчурных проектах. Выплаченные деньги впоследствии можно будет перераспределить между участниками DAO. - -## Как работают DAO? {#how-daos-work} - -В основе DAO лежит умный контракт, который определяет правила организации и предмет договора. Как только контракт будет запущен на Ethereum, никто не сможет изменить правила без голосования. Если кто-то попытается сделать что-то, что не предусмотрено правилами и логикой кода, он потерпит неудачу. Управление капиталом также определяется умным контрактом. Это означает, что никто не может тратить деньги без одобрения группы. Это значит, что DAO не нуждается в центральных органах управления. Вместо этого группа принимает решения коллективно, и платежи автоматически авторизуются при голосовании. - -Это возможно, потому что после запуска на Ethereum умные контракты защищены от несанкционированного доступа. Вы не можете незаметно редактировать код (правила DAO), потому что все находится в открытом доступе. - - - Подробнее об умных контрактах - - -## Ethereum и DAO {#ethereum-and-daos} - -Ethereum — идеальный фундамент для DAO по ряду причин: - -- Собственный консенсус Ethereum распространен и признан достаточно, чтобы организации могли доверять сети. -- Код умного контракта не может быть изменен даже его владельцами. Это позволяет DAO работать по изначально запрограммированным правилам. -- Умные контракты могут отправлять и получать средства. Без этого вам понадобится надежный посредник для управления средствами группы. -- Сообщество Ethereum оказалось более склонным к сотрудничеству, чем к конкуренции, что позволяет быстро внедрять передовой опыт и системы поддержки. - -## Управление DAO {#dao-governance} - -Управление DAO имеет множество аспектов, таких как принципы работы голосований и предложений. - -### Делегирование {#governance-delegation} - -Делегирование – пример репрезентативной демократии в DAO. Держатели токенов делегируют голоса пользователям, которые выдвигают свои кандидатуры и обязуются следовать протоколу. - -#### Известный пример {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) — владельцы токенов ENS могут передать свои голоса активным участникам сообщества, которые будут представлять их. - -### Автоматическое управление транзакциями {#governance-example} - -Во многих DAO транзакции автоматически подтверждаются, если кворум участников проголосовал утвердительно. - -#### Известный пример {#governance-example} - -[Nouns](https://nouns.wtf) – в DAO Nouns транзакция автоматически подтверждается, если набран кворум голосов и большинство проголосовали утвердительно. Исключение составляют случаи, когда основатели DAO накладывают вето. - -### Управление по мультиподписи {#governance-example} - -Несмотря на то, что в DAO может быть несколько тысяч участников с правом голоса, средствами могут распоряжаться 5–20 активных участников сообщества. Этим участникам доверяют, и обычно их данные выкладывают в открытый доступ. Их личности известны сообществу. После голосования владельцы мультиподписи исполняют волю сообщества. - -## Законодательство, относящееся к DAO {#dao-laws} - -В 1977 году в Вайоминге изобрели общество с ограниченной ответственностью (LLC), которое помогло защитить предпринимателей и ограничить их ответственность. Недавно в Вайоминге впервые приняли закон, который регулирует правовой статус DAO. На текущий момент законы, относящиеся к DAO, есть в Вайоминге, Вермонте и на Американских Виргинских островах. - -#### Известный пример {#law-example} - -[CityDAO](https://citydao.io) – CityDAO использовал законодательство Вайоминга по DAO, чтобы приобрести 40 акров земли около Национального парка Йеллоустоун. - -## Членство в DAO {#dao-membership} - -Существуют разные модели членства в DAO. От членства может зависеть работа голосования и другие ключевые составляющие DAO. - -### Членство на основе токенов {#token-based-membership} - -Обычно имеются все разрешения (в зависимости от используемого токена). В основном такими управляющими токенами можно торговать без специальных разрешений на децентрализованной бирже. Другие должны быть заработаны через обеспечение ликвидности или другое «доказательство работы». В любом случае простое владение токеном дает доступ к голосованию. - -_Обычно используется для управления обширными децентрализованными протоколами и/или самими токенами._ - -#### Известный пример {#token-example} - -[MakerDAO](https://makerdao.com) – токен MKR широко доступен на децентрализованной бирже, и любой может купить себе право голосовать за судьбу протокола Maker. - -### Членство на долевой основе {#share-based-membership} - -Основанные на долевом участии DAO более ориентированы на разрешения с подтверждением прав, но все еще достаточно открыты. Любые потенциальные члены могут отправить предложение присоединиться к DAO. Обычно за это они предлагают токены или работу. Доли реализуют право прямого голосования и подтверждения собственности. Члены могут выйти в любой момент и забрать с собой свою долю имущества. - -_Обычно используется для более сплоченных и ориентированных на человека организаций, таких как благотворительные учреждения, рабочие коллективы и инвестиционные клубы. Может также управлять протоколами и токенами._ - -#### Известный пример {#share-example} - -[MolochDAO](http://molochdao.com/). MolochDAO ориентируется на финансирование проектов Ethereum. Они требуют подачи предложения о членстве, чтобы группа могла оценить, есть ли у вас необходимый опыт и капитал для вынесения обоснованных решений о потенциальных получателей грантов. Вы не можете просто купить доступ к DAO на открытом рынке. - -### Членство на основе репутации {#reputation-based-membership} - -Репутация представляет собой доказательство участия и дает право голоса в DAO. В отличие от токена или членства, основанного на долевом участии, DAO на основе репутации не передают права собственности участникам. Репутация не может быть куплена, передана или делегирована; члены DAO должны заработать репутацию посредством участия. На голосование в цепи не требуется разрешение, и потенциальные члены могут свободно отправлять заявки на присоединение к DAO и выполнять запросы на получение репутации и токенов в качестве вознаграждения в обмен на их вклад. - -_Обычно используется для децентрализованной разработки протоколов и децентрализованных приложений и управления ими, но также хорошо подходит для различных организаций, таких как благотворительные, рабочие коллективы, инвестиционные клубы и т. д._ - -#### Известный пример {#reputation-example} - -[DXdao](https://DXdao.eth.link) – DXdao - глобальный независимый коллектив, создающий децентрализованные протоколы и приложения и управляющий ими с 2019 года. Он использует управление, основанное на репутации, и голографический консенсус для координации фондов и управления ими. Это означает, что никто не может купить себе право влиять на его будущее. - -## Присоединение или запуск DAO {#join-start-a-dao} - -### Присоединиться к DAO {#join-a-dao} - -- [DAO сообщества Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [Список DAO от DAOHaus](https://app.daohaus.club/explore) -- [Список DAO от Tally.xyz](https://www.tally.xyz) - -### Запуск DAO {#start-a-dao} - -- [Вызов DAO с DAOHaus](https://app.daohaus.club/summon) -- [Запуск Governor DAO с Tally](https://www.tally.xyz/add-a-dao) -- [Создать DAO на основе Aragon](https://aragon.org/product) -- [Запуск колонии](https://colony.io/) -- [Создать DAO с голографическим консенсусом DAOstack](https://alchemy.daostack.io/daos/create) - -## Дополнительные ресурсы {#further-reading} - -### Статьи о DAO {#dao-articles} - -- [Что такое DAO?](https://aragon.org/dao) — [Aragon](https://aragon.org/) -- [Руководство по DAO](https://daohandbook.xyz) -- [Дом DAO](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) — [Metagame](https://wiki.metagame.wtf/) -- [Что такое DAO и для чего они?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) — [DAOhaus](https://daohaus.club/) -- [Как создать цифровое сообщество на базе DAO](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) — [DAOhaus](https://daohaus.club/) -- [Что такое DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) — [Coinmarketcap](https://coinmarketcap.com) -- [Что такое голографический консенсус?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) — [DAOstack](https://daostack.io/) -- [DAO — не корпорации: когда децентрализация в автономных организациях имеет значение](https://vitalik.ca/general/2022/09/20/daos.html) -- [DAO, DAC, DA и другие: неполное руководство по терминологии](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) — [блог Ethereum](https://blog.ethereum.org) - -### Видео {#videos} - -- [Что такое DAO в криптовалютах?](https://youtu.be/KHm0uUPqmVE) -- [Может ли DAO построить город?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/src/content/translations/ru/decentralized-identity/index.md b/src/content/translations/ru/decentralized-identity/index.md deleted file mode 100644 index 26b323b998d..00000000000 --- a/src/content/translations/ru/decentralized-identity/index.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: Децентрализованная идентичность -description: Что такое децентрализованная идентичность и почему она важна? -lang: ru -template: use-cases -emoji: ":id:" -sidebarDepth: 2 -image: ../../../../assets/eth-gif-cat.png -summaryPoint1: Традиционные идентификационные системы централизовали выдачу, обслуживание и контроль ваших идентификаторов. -summaryPoint2: Децентрализованная идентификация устраняет зависимость от централизованных третьих лиц. -summaryPoint3: Благодаря криптовалюте у пользователей теперь есть инструменты, позволяющие получать, хранить и контролировать свои собственные идентификаторы и аттестации. ---- - -Сегодня идентификация лежит в основе практически всех аспектов вашей жизни. Использование онлайн-сервисов, открытие банковского счета, голосование на выборах, покупка собственности, обеспечивание занятости — все это требует подтверждения вашей личности. - -Однако традиционные системы управления идентификацией давно полагаются на централизованных посредников, которые выдают, хранят и контролируют ваши идентификаторы и [аттестации](#what-are-attestations). Это означает, что вы не можете контролировать информацию, относящуюся к вашей личности, или решать, кто имеет доступ к персональной информации (PII) и какой доступ имеют эти стороны. - -Для решения этих проблем мы создали децентрализованные системы идентификации, построенные на открытых блокчейнах, таких как Ethereum. Децентрализованная идентификация позволяет физическим лицам управлять информацией, связанной с их идентификацией. С децентрализованными системами идентификации _вы_ можете создавать, получать и хранить ваши идентификаторы и аттестации без зависимости от центральных органов, таких как поставщики услуг или правительства. - -## Что такое идентичность? {#what-is-identity} - -Идентичность означает индивидуальное ощущение себя, определяемое уникальными характеристиками. Идентичность означает быть _личностью_, т. е. отдельной человеческой сущностью. Идентичность также может относиться к другим нечеловеческим объектам, таким как организация или орган власти. - -## Что такое идентификаторы? {#what-are-identifiers} - -Идентификатор — это часть информации, которая действует как указатель на конкретный идентификатор или идентификаторы. К общим относятся такие идентификаторы: - -- Имя -- Номер социального страхования / налоговый номер -- Номер телефона -- Дата и место рождения -- Цифровые идентификационные данные, например адреса электронной почты, имена пользователей, аватары - -Эти традиционные примеры идентификаторов выпускаются, хранятся и контролируются центральными органами. Вам нужно разрешение от вашего правительства, чтобы изменить свое имя, или от платформы социальных сетей, чтобы изменить свой псевдоним. - -## Что такое аттестации? {#what-are-attestations} - -Аттестация — это заявление, сделанное одним субъектом в отношении другого субъекта. Если вы живете в Соединенных Штатах, водительские права, выданные вам Департаментом транспортных средств (одним субъектом), подтверждают, что вам (другому субъекту) по закону разрешено водить автомобиль. - -Аттестации отличаются от идентификаторов. Аттестация _содержит_ идентификаторы для ссылки на конкретное удостоверение и делает заявление об атрибуте, связанном с этим удостоверением. Таким образом, ваше водительское удостоверение имеет идентификаторы (имя, дата рождения, адрес), но также является подтверждением вашего законного права на вождение. - -### Что такое децентрализованные идентификаторы? {#what-are-decentralized-identifiers} - -Традиционные идентификаторы, такие как ваше официальное имя или адрес электронной почты, полагаются на третьи стороны — правительства и поставщиков услуг электронной почты. Децентрализованные идентификаторы (DID) отличаются от традиционных — они не выдаются, не управляются и не контролируются какой-либо центральной организацией. - -Децентрализованные идентификаторы выпускаются, хранятся и контролируются отдельными лицами. [Учетная запись Ethereum](/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) для объекта. Криптография с открытым ключом используется в сетях блокчейн для аутентификации пользователей и подтверждения права собственности на цифровые активы. - -Некоторые децентрализованные идентификаторы, такие как учетная запись Ethereum, имеют открытый и закрытый ключи. Открытый ключ идентифицирует контроллер учетной записи, а закрытые ключи могут подписывать и расшифровывать сообщения для этой учетной записи. PKI предоставляет доказательства, необходимые для аутентификации объектов и предотвращения олицетворения и использования поддельных удостоверений, используя [криптографические подписи](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 эмитента в Ethereum. По сути, блокчейн Ethereum действует как глобальный каталог, который позволяет проверять DID, связанные с определенными объектами. - -Благодаря децентрализованным идентификаторам аттестации являются самоконтролируемыми и проверяемыми. Даже если эмитент больше не существует, у держателя всегда есть доказательства происхождения и действительности аттестации. - -Децентрализованные идентификаторы также имеют решающее значение для защиты конфиденциальности личной информации посредством децентрализованной идентификации. Например, если физическое лицо представляет подтверждение аттестации (водительское удостоверение), проверяющей стороне не нужно проверять достоверность информации в подтверждении. Вместо этого верификатору нужны только криптографические гарантии подлинности аттестации и личности выдавшей организации, чтобы определить, действительно ли доказательство. - -## Виды аттестаций в децентрализованной идентификации {#types-of-attestations-in-decentralized-identity} - -Способы хранения и извлечения аттестационной информации в экосистеме удостоверений на основе Ethereum отличаются от традиционного управления удостоверениями. Ниже приведен обзор различных подходов к выдаче, хранению и проверке аттестаций в децентрализованных системах идентификации. - -### Аттестации вне сети {#off-chain-attestations} - -Одна из проблем с хранением аттестаций в сети заключается в том, что они могут содержать информацию, которую люди хотят сохранить в тайне. Публичный характер блокчейна Ethereum делает непривлекательным хранение таких подтверждений. - -Решение состоит в выдаче аттестаций, хранящихся пользователями вне сети в цифровых кошельках, но подписанных с помощью DID эмитента, хранящегося в сети. Эти аттестации кодируются как [веб-токены JSON](https://en.wikipedia.org/wiki/JSON_Web_Token) и содержат цифровую подпись эмитента, что позволяет легко проверять заявления вне сети. - -Вот гипотетический сценарий, объясняющий аттестации вне сети: - -1. Университет (эмитент) создает аттестат (цифровой академический сертификат), подписывает его своими ключами и выдает Бобу (владельцу удостоверения). - -2. Боб подает заявление о приеме на работу и хочет подтвердить свою академическую квалификацию работодателю, поэтому он делится аттестацией со своего мобильного кошелька. Затем компания (верификатор) может подтвердить действительность аттестации, проверив DID эмитента (т. е. его открытый ключ в Ethereum). - -### Аттестации вне сети с постоянным доступом {#offchain-attestations-with-persistent-access} - -В этом случае аттестации преобразуются в файлы JSON и хранятся вне сети (в идеале на платформе [децентрализованного облачного хранилища](/developers/docs/storage/), например IPFS или Swarm). Однако [хэш](/glossary/#hash) файла JSON хранится в сети и связан с DID через реестр в сети. Связанный DID может принадлежать либо издателю аттестации, либо получателю. - -Этот подход позволяет аттестациям сохранять устойчивость на основе блокчейна, сохраняя при этом информацию о заявках в зашифрованном виде и поддающейся проверке. Это также позволяет выборочное раскрытие, поскольку владелец закрытого ключа может расшифровать информацию. - -### Аттестации в сети {#onchain-attestations} - -Аттестации в сети проводятся в [смарт-контрактах](/developers/docs/smart-contracts/) на блокчейне Ethereum. Смарт-контракт (действующий как реестр) сопоставит аттестацию с соответствующим децентрализованным идентификатором в сети (открытым ключом). - -Вот пример, показывающий, как аттестация в сети может работать на практике: - -1. Компания (XYZ Corp) планирует продать доли собственности с помощью смарт-контракта, но хочет, чтобы покупатели прошли проверку их данных. - -2. XYZ Corp может поручить компании проводить проверку их данных для выдачи аттестаций в сети Ethereum. Эта аттестация удостоверяет, что человек прошел проверку данных, не раскрывая никакой личной информации. - -3. Смарт-контракт, продающий акции, может проверять договор реестра на предмет идентификации проверенных покупателей, что позволяет смарт-контракту определять, кому разрешено покупать акции, а кому нет. - -### Токены Soulbound и личность {#soulbound} - -[Токены Soulbound](https://vitalik.ca/general/2022/01/26/soulbound.html) (непередаваемые NFT) можно использовать для сбора информации, уникальной для конкретного кошелька. Это эффективно создает уникальную идентификацию в сети, привязанную к конкретному адресу Ethereum, которая может включать токены, представляющие достижения (например, окончание определенного онлайн-курса или достижение порогового балла в игре) или участие в сообществе. - -## Преимущества децентрализованной идентификации {#benefits-of-decentralized-identity} - -1. Децентрализованная идентификация увеличивает индивидуальный контроль над идентифицирующей информацией. Децентрализованные идентификаторы и аттестации можно проверять, не полагаясь на централизованные органы и сторонние службы. - -2. Децентрализованные решения для идентификации обеспечивают не требующий доверия, бесшовный и защищающий конфиденциальность метод проверки и управления идентификацией пользователей. - -3. Децентрализованная идентификация использует технологию блокчейна, которая создает доверие между различными сторонами и предоставляет криптографические гарантии для подтверждения действительности аттестаций. - -4. Децентрализованная идентификация делает идентификационные данные переносимыми. Пользователи хранят аттестации и идентификаторы в мобильном кошельке и могут делиться ими с любой стороной по своему выбору. Децентрализованные идентификаторы и аттестации не фиксируются в базе данных организации-эмитента. - -5. Децентрализованная идентификация должна хорошо работать с появляющимися технологиями с нулевым разглашением, которые позволят людям доказать, что они владеют чем-то или сделали что-то, не раскрывая, что это такое. Это может стать мощным способом объединения доверия и конфиденциальности для различных приложений, например для голосований. - -6. Децентрализованная идентификация позволяет механизмам противодействия атакам Сивиллы идентифицировать, когда один человек притворяется несколькими людьми, чтобы обмануть какую-то систему распространить в ней спам. - -## Варианты использования децентрализованной идентификации {#decentralized-identity-use-cases} - -Децентрализованная идентификация имеет много потенциальных вариантов использования: - -### 1. Универсальные логины {#universal-dapp-logins} - -Децентрализованная идентификация может помочь заменить вход на основе пароля на [децентрализованную аутентификацию](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). Поставщики услуг могут выдавать пользователям аттестаты, которые можно хранить в кошельке Ethereum. Примером аттестации может быть [NFT](/nft/), предоставляющий владельцу доступ к интернет-сообществу. - -Затем функция [Войти с помощью Ethereum](https://login.xyz/) позволит серверам подтвердить учетную запись Ethereum пользователя и получить требуемое подтверждение с адреса его учетной записи. Это означает, что пользователи могут получать доступ к платформам и веб-сайтам, не запоминая длинные пароли, и улучшает работу пользователей в Интернете. - -### 2. Аутентификация KYC {#kyc-authentication} - -Использование многих онлайн-сервисов требует от отдельных лиц предоставления свидетельств и учетных данных, таких как водительское удостоверение или национальный паспорт. Но этот подход проблематичен, поскольку личная информация пользователя может быть скомпрометирована, а поставщики услуг не могут проверить подлинность аттестации. - -Децентрализованная идентификация позволяет компаниям отказаться от традиционных процессов [«знай своего клиента» (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) и аутентифицировать личность пользователя с помощью проверяемых учетных данных. Это снижает стоимость управления идентификацией и предотвращает использование поддельной документации. - -### 3. Голосование и онлайн-сообщества {#voting-and-online-communities} - -Онлайн-голосование и социальные сети — два новых приложения для децентрализованной идентификации. Схемы онлайн-голосования подвержены манипуляциям, особенно если злоумышленники создают ложные имена для голосования. Просьба к отдельным лицам представить аттестацию в сети может повысить честность процессов онлайн-голосования. - -Децентрализованная идентификация может помочь в создании онлайн-сообществ, свободных от поддельных учетных записей. Например, каждому пользователю может потребоваться аутентифицировать свою личность с помощью сетевой системы идентификации, такой как служба имен Ethereum, что снижает вероятность появления ботов. - -### 4. Защита от атак Сивиллы {#sybil-protection} - -Атаки Сивиллы — это когда отдельные люди обманывают систему, заставляя ее думать, что они являются несколькими людьми, чтобы увеличить свое влияние. [Приложения для предоставления грантов](https://gitcoin.co/grants/), использующие [ квадратичное голосование](https://www.radicalxchange.org/concepts/plural-voting/), уязвимы для атак Сивиллы, потому что ценность гранта увеличивается, когда за него голосует больше людей, что побуждает пользователей разделить свой вклад между многими личностями. Децентрализованные удостоверения помогают предотвратить это, возлагая на каждого участника бремя доказывания того, что он действительно человек, хотя часто без необходимости раскрывать конкретную личную информацию. - -## Используйте децентрализованную идентификацию {#use-decentralized-identity} - -Есть много амбициозных проектов, использующих Ethereum в качестве основы для децентрализованной идентификации: - -- **[Служба имен Ethereum (ENS)](https://ens.domains/)** — _ децентрализованная система имен для сетевых, машиночитаемых идентификаторов, таких как адреса кошельков Ethereum, хэши контента и метаданные._ -- **[SpruceID](https://www.spruceid.com/)** — _проект децентрализованной идентификации, который позволяет пользователям контролировать цифровую идентификацию с помощью учетных записей Ethereum и профилей ENS, а не полагаться на сторонние службы._ -- **[Ethereum Attestation Service (EAS)](https://attest.sh/)** — _децентрализованный протокол и перепись для аттестаций любого назначения в цепочке и вне ее._ -- **[Proof of Humanity](https://www.proofofhumanity.id)** – _«доказательство человечества» (PoH) – это социальная система подтверждения личности, построенная на Ethereum._ -- **[BrightID](https://www.brightid.org/)** – _децентрализованная сеть социальной идентификации с открытым исходным кодом, стремящаяся реформировать проверку личности путем создания и анализа социального графа._ -- **[Proof-of-personhood Passport](https://proofofpersonhood.com/)** — _ децентрализованный агрегатор цифровой идентификации._ - -## Дополнительные ресурсы {#further-reading} - -### Статьи {#articles} - -- [Примеры использования блокчейна: блокчейн в цифровой идентификации](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ -- [Что такое Ethereum ERC725? Самостоятельное управление идентификацией в блокчейне](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Sam Town_ -- [Как блокчейн может решить проблему цифровой идентификации?](https://time.com/6142810/proof-of-humanity/) — _Эндрю Р. Чоу_ -- [Что такое децентрализованная идентификация и почему это должно волновать вас?](https://web3.hashnode.com/what-is-decentralized-identity) — _Эммануэль Авосика_ - -### Видео {#videos} - -- [Децентрализованная идентификация (бонусная стрим-сессия)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _отличное видео о децентрализованной идентификации от Андреаса Антонополуса_ -- [Войти в систему с помощью Ethereum и децентрализованной идентификации с помощью Ceramic, IDX, React, и 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _Учебное пособие на YouTube по созданию системы управления идентификацией для создания, чтения и обновления профиля пользователя с использованием его кошелька Ethereum от Надер Дебит_ -- [BrightID — децентрализованная идентификация на Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _подкаст бесплатных версий, обсуждающий BrightID, децентрализованное решение для Ethereum_ -- [Презентация «Интернет вне сети»: децентрализованная идентификация и проверяемые полномочия](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — _EthDenver 2022 от Эвина МакМаллена_ - -### Сообщества {#communities} - -- [ERC-725 Альянс на GitHab](https://github.com/erc725alliance) — _сторонники стандарта ERC725 для управления идентификацией на блокчейне Ethereum_ -- [Сервер SpruceID Discord](https://discord.com/invite/Sf9tSFzrnt) — _сообщество для энтузиастов и разработчиков, работающих над регистрацией в Ethereum_ -- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _сообщество разработчиков, содействующих созданию фреймворка для проверяемых данных для приложений_ diff --git a/src/content/translations/ru/defi/index.md b/src/content/translations/ru/defi/index.md deleted file mode 100644 index 886917ff769..00000000000 --- a/src/content/translations/ru/defi/index.md +++ /dev/null @@ -1,352 +0,0 @@ ---- -title: Децентрализованные финансы (DeFi) -description: Обзор DeFi на Ethereum -lang: ru -template: use-cases -emoji: ":money_with_wings:" -image: ../../../../assets/use-cases/defi.png -alt: Логотип Eth, составленный из деталей Лего. -sidebarDepth: 2 -summaryPoint1: Глобальная открытая альтернатива существующей финансовой системе. -summaryPoint2: Продукты, которые позволяют вам заимствовать, сберегать, инвестировать, торговать и не только. -summaryPoint3: На основе технологии с открытым исходным кодом, с которой программировать может каждый. ---- - -DeFi — это открытая глобальная финансовая система, созданная для эпохи Интернета. Это альтернатива непрозрачной системе со строгим контролем, базирующейся на используемых десятилетиями процессах и инфраструктуре. Она дает вам возможность контролировать и видеть ваши деньги. DeFi открывает пользователю глобальные рынки, создает альтернативы национальным валютам и стандартным банковским продуктам. Продукты DeFi открывают доступ к финансовым сервисам всем, у кого есть доступ к Интернету. Они в значительной степени принадлежат самим пользователям, которые и обеспечивают их функционирование. К настоящему времени через DeFi уже прошло криптовалютных транзакций на десятки миллиардов долларов, и этот объем растет с каждым днем. - -## Что такое DeFi? {#what-is-defi} - -DeFi — это обобщенный термин для финансовых продуктов и услуг, доступных всем, кто может использовать Ethereum, то есть фактически любому человеку, имеющему доступ в Интернет. В случае DeFi рынки открыты всегда и нет централизованного регулятора, который остановит платежи или закроет к чему-либо доступ. Услуги, которые раньше требовали много времени и были подвержены риску человеческой ошибки, теперь осуществляются автоматически и стали безопаснее, так как управляются кодом, открытым каждому для изучения и анализа. - -Криптоэкономика сегодня переживает бум: доступными стали кредитование и заимствование, открытие длинных и коротких позиций, вложения под проценты и многое другое. Продвинутые в криптовалютах аргентинцы использовали DeFi, чтобы нивелировать последствия инфляции. Компании начали платить своим сотрудникам зарплату в реальном времени. Кое-кто даже брал и возвращал кредиты на миллионы долларов без необходимости в персональной идентификации. - - - -## DeFi и традиционные финансы {#defi-vs-tradfi} - -Чтобы лучше понять потенциал DeFi, давайте взглянем на ныне существующие проблемы. - -- Не у всех людей есть возможность открыть счет в банке и воспользоваться финансовыми услугами. -- Недоступность финансовых услуг является одной из причин безработицы. -- Финансовые институты могут заблокировать поступление денежных средств. -- Есть и скрытая плата за финансовые услуги — предоставление личных данных. -- Правительства и централизованные институты могут прекратить функционирование рынков, когда захотят. -- Часы торговли часто ограничиваются рабочими часами конкретного часового пояса. -- Денежные переводы могут занять несколько дней из-за внутренних процессов, связанных с участием человека. -- Финансовые услуги оказываются с наценкой, потому что посреднические учреждения нуждаются в собственной прибыли. - -### Сравнение {#defi-comparison} - -| DeFi | Традиционные финансы | -| ----------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | -| Вы держите ваши активы. | Ваши активы держат компании. | -| Вы контролируете, куда идут ваши деньги и как они тратятся. | Вы должны доверять компаниям и верить, что они не злоупотребят вашими деньгами, давая их взаймы рискованным заемщикам. | -| Перевод активов происходит в считанные минуты. | Платежи могут занять несколько дней из-за дополнительных проверок. | -| Транзакционная деятельность носит псевдонимный характер. | Транзакционная деятельность носит личный характер. | -| Система DeFi открыта для каждого. | Вы должны подать заявку на использование финансовых услуг. | -| Рынки всегда открыты. | Рынки закрываются, потому что сотрудникам нужны перерывы. | -| Все построено на прозрачности: любой может просмотреть данные транзакции и проверить, как работает система. | Активность финансовых учреждений скрыта: вы не можете просмотреть их кредитную историю, сведения об их активах и так далее. | - - - Взглянуть на приложения DeFi - - -## Все началось с Bitcoin... {#bitcoin} - -Биткоин во многих отношениях был первым приложением DeFi. Биткоин позволяет вам действительно владеть валютой, контролировать ее и отправлять в любую точку мира. Это достигается за счет предоставления возможности большому числу людей, которые не доверяют друг другу, согласовать бухгалтерскую книгу без необходимости в доверенном посреднике. Биткоин открыт для всех, и никто не имеет полномочий изменять его правила. Правила Bitcoin, такие как его дефицит и открытость, прописаны в технологии. Это не похоже на традиционные финансы, где правительства могут печатать деньги, которые обесценивают ваши сбережения, а компании могут закрыть рынки. - -Ethereum построен на этом. Как и в Bitcoin, правила не могут измениться, у всех есть доступ. Но здесь цифровые деньги являются программируемыми с помощью [умных контрактов](/glossary#smart-contract), так что вы можете выйти за рамки хранения и отправки валюты. - - - -## Программируемые деньги {#programmable-money} - -Это звучит странно... «Зачем мне программировать свои деньги?» Однако это скорее функция по умолчанию для токенов на Ethereum. Каждый может закодировать логику в платежи. Поэтому вы можете получить контроль и безопасность Bitcoin в сочетании с услугами, предоставляемыми финансовыми учреждениями. Это позволит вам совершать операции с криптовалютами, которыми вы не можете заниматься с Bitcoin, такими как кредитование и заимствование, планирование платежей, инвестирование в индексные фонды и многое другое. - - -
Изучите наши предложения по приложениям DeFi, если вы только осваиваетесь в Ethereum.
- - Взглянуть на приложения DeFi - -
- -## Что можно делать с помощью DeFi? {#defi-use-cases} - -Существует децентрализованная альтернатива большинству финансовых услуг. Но Ethereum также создает возможности для создания финансовых продуктов, которые являются абсолютно новыми. Этот список постоянно растет. - -- [Отправка денег по всему миру](#send-money) -- [Потоковая передача денег по всему миру](#stream-money) -- [Доступ к стабильным валютам](#stablecoins) -- [Заем средств с залогом](#lending) -- [Заем средств без залога](#flash-loans) -- [Накопления в криптовалюте](#saving) -- [Торговля токенами](#swaps) -- [Увеличение своего портфеля](#investing) -- [Финансирование своих идей](#crowdfunding) -- [Покупка страховки](#insurance) -- [Управление своим портфелем](#aggregators) - - - -### Быстрая отправка денег по всему миру {#send-money} - -В качестве блокчейна Ethereum предназначен для отправки транзакций безопасным и глобальным путем. Как и Bitcoin, Ethereum делает перевод денег по всему миру таким же простым, как и отправка электронной почты. Просто введите [имя ENS вашего получателя](/nft/#nft-domains) (например, bob.eth) или адрес его учетной записи в вашем кошельке, и ваш платеж поступит непосредственно к нему в течение (как правило) нескольких минут. Чтобы отправлять или получать платежи, вам понадобится [кошелек](/wallets/). - - - Посмотреть платежные децентрализованные приложения - - -#### Передавайте деньги по всему миру... {#stream-money} - -Вы также можете передавать деньги через Ethereum. Это позволяет вам выплачивать кому-то зарплату за секунду, предоставляя доступ к деньгам, когда им это нужно. Или арендовать что-нибудь за секунду, например склад или электросамокат. - -Если вы не хотите отправлять или передавать [ETH](/eth/) из-за того, как сильно его цена может измениться, существуют альтернативные валюты на Ethereum: стейблкойны. - - - -### Получите доступ к стабильным валютам {#stablecoins} - -Неустойчивость криптовалют является проблемой для многих финансовых продуктов и общих расходов. Сообщество DeFi решило это с помощью стейблкойнов. Их стоимость привязана к другому активу, обычно к популярной валюте, такой как доллар. - -Монеты, такие как Dai или USDC, имеют стоимость, которая остается в пределах нескольких центов от доллара. Это делает их идеальными для заработка или розничной торговли. Многие жители Латинской Америки использовали стейблкойны в качестве средства защиты своих сбережений во время значительной неопределенности по отношению к валютам, выпускаемым правительствами. - - - Подробнее о стейблкойнах - - - - -### Займы {#lending} - -Заем денег от децентрализованных поставщиков происходит в двух основных вариантах. - -- Одноранговый формат (Peer-to-peer): заемщик будет одалживать средства непосредственно у конкретного кредитора. -- Основанный на пуле (Pool-based): кредиторы предоставляют средства (ликвидность), из которых берут в долг заемщики. - - - Посмотреть децентрализованные приложения для займа - - -Существует множество преимуществ использования децентрализованных кредитов... - -#### Заимствование с сохранением приватности {#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 будет увеличиваться в зависимости от процентной ставки, и вы сможете увидеть рост баланса в вашем кошельке. В зависимости от годовой процентной ставки, через несколько дней или даже часов баланс вашего кошелька будет выглядеть примерно как 100,1234! -- Вы можете вывести сумму обычного Dai, равную вашему балансу aDai, в любое время. - - - Посмотреть кредитные децентрализованные приложения - - -#### Беспроигрышные лотереи {#no-loss-lotteries} - -Беспроигрышные лотереи (например, PoolTogether) — это новый увлекательный и инновационный способ сэкономить деньги. - -- Вы покупаете 100 билетов, используя 100 токенов Dai. -- Вы получаете 100 plDai, представляющих ваши 100 билетов. -- Если один из ваших билетов будет выбран в качестве победителя, ваш баланс plDai увеличится на сумму призового фонда. -- Если вы не выиграете, ваши 100 plDai переходят в розыгрыш следующей недели. -- Вы можете вывести сумму обычного Dai, равную вашему балансу plDai, в любое время. - -Призовой фонд формируется за счет всех процентов, полученных от предоставления депозитов за билеты, как в приведенном выше примере кредитования. - - - Попробовать PoolTogether - - - - -### Обмен токенов {#swaps} - -На Ethereum тысячи токенов. Децентрализованные биржи (DEX) позволяют торговать различными токенами в любое время. Вы всегда контролируете свои активы. Это как использовать обмен валют при посещении другой страны. Но версия DeFi никогда не закрывается. Рынки работают 24/7, 365 дней в году, а технологии гарантируют, что всегда найдется кто-нибудь, кто согласится на сделку. - -Например, если вы хотите использовать беспроигрышную лотерею PoolTogether (описанную выше), вам понадобится токен, такой как Dai или USDC. DEX позволяют обменивать ваши ETH на эти токены и обратно, когда вы закончите. - - - Смотреть биржи токенов - - - - -### Продвинутая торговля {#trading} - -Есть более продвинутые варианты для трейдеров, которым нравится немного больше контроля. Возможны лимитные ордера, бессрочные контракты, маржинальная торговля и многое другое. Благодаря децентрализованной торговле вы получаете доступ к глобальной ликвидности и рынку, который никогда не закрывается, а также всегда контролируете свои активы. - -Когда вы используете централизованную биржу, вы должны внести свои активы перед торговлей и доверить бирже заботу о них. Пока ваши активы депонированы, они подвержены риску, поскольку централизованные биржи являются привлекательными целями для хакеров. - - - Посмотреть торговые децентрализованные приложения - - - - -### Увеличение своего портфеля {#investing} - -На Ethereum есть продукты для управления фондами, которые будут стараться развивать ваш портфель на основе выбранной вами стратегии. Это происходит автоматически, открыто для всех и не требует участия менеджера, получающего долю от вашей прибыли. - -Хорошим примером является фонд [ DeFi Pulse Index (DPI)](https://defipulse.com/blog/defi-pulse-index/). Это фонд, которое автоматически выполняет ребалансировку, чтобы гарантировать, что ваш портфель всегда включает [лучшие по рыночной капитализации токены DeFi](https://www.coingecko.com/en/defi). Вам не придется управлять мелочами, и вы сможете выйти из фонда, когда захотите. - - - Смотреть инвестиционные децентрализованные приложения - - - - -### Финансирование своих идей {#crowdfunding} - -Ethereum является идеальной платформой для краудфандинга: - -- Потенциальные спонсоры могут быть откуда угодно: Ethereum и его токены открыты для всех и в любой точке мира. -- Все прозрачно, потому что сборщики средств могут подтвердить, сколько денег было собрано. Вы даже сможете отслеживать, как средства расходуются в дальнейшем. -- Сборщики средств могут настроить автоматический возврат, если, например, есть определенный срок и минимальная сумма, которые не были соблюдены. - - - Посмотреть краудфандинговые децентрализованные приложения - - -#### Квадратичное финансирование {#quadratic-funding} - -Ethereum — это программное обеспечение с открытым исходным кодом, и большая часть работы до сих пор финансируется сообществом. Это привело к развитию новой интересной модели сбора средств: квадратичного финансирования. Это может улучшить способ финансирования всех видов общественных благ в будущем. - -Квадратичное финансирование гарантирует, что проекты, получившие наибольшее финансирование, будут наиболее востребованы. Иными словами, проекты, способствующие улучшению жизни большинства людей. Это работает так: - -1. Есть соответствующий пул пожертвованных средств. -2. Начинается раунд публичного финансирования. -3. Люди могут заявить о своей потребности в проекте, пожертвовав немного денег. -4. По завершении раунда соответствующий пул распределяется по проектам. Проекты с самым большим количеством уникальных запросов получают наибольшую сумму из соответствующего пула. - -Это означает, что Проект A с его 100 пожертвованиями по 1 доллару может получить больше финансирования, чем Проект B с одним пожертвованием в размере 10 000 долларов (в зависимости от размера соответствующего пула). - -[Подробнее о квадратичном финансировании](https://wtfisqf.com) - - - -### Страхование {#insurance} - -Децентрализованное страхование направлено на то, чтобы сделать страхование более дешевым, ускорить выплаты и увеличить прозрачность. Благодаря большей автоматизации страхование становится более доступным, а выплаты производятся намного быстрее. Данные, используемые для принятия решения по вашей претензии, полностью прозрачны. - -Продукты Ethereum, как и любое программное обеспечение, могут страдать от ошибок и эксплойтов. Так что прямо сейчас многие страховые продукты сосредоточены на защите своих пользователей от потери средств. Однако уже есть проекты, которые начинают страховать все, с чем мы можем столкнуться в реальной жизни. Хорошим примером этого является страхование урожая Etherisc, цель которого — [защитить мелких фермеров в Кении от засух и наводнений](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Децентрализованное страхование может обеспечить более дешевую страховку для фермеров, цены на которую часто выходят за рамки в традиционном страховании. - - - Смотреть страховые децентрализованные приложения - - - - -### Агрегаторы и менеджеры портфелей {#aggregators} - -Среди прочего, вам потребуется способ отслеживания всех ваших инвестиций, займов и сделок. Есть множество продуктов, которые позволяют вам управлять всеми вашими действиями с DeFi из одной программы. В этом прелесть открой архитектуры DeFi. Команды могут создавать интерфейсы, в которых вы можете не только просматривать балансы активов, но также использовать их функции. Это может оказаться полезным во время изучения DeFi. - - - Посмотреть децентрализованные приложения для портфелей - - - - -## Как работают DeFi? {#how-defi-works} - -DeFi использует криптовалюты и умные контракты для предоставления услуг, не требующих посредников. В современном финансовом мире финансовые учреждения выступают в качестве гарантов сделок. Это дает этим учреждениям огромную власть, потому что через них текут ваши деньги. Кроме того, у миллиардов людей по всему миру может даже не быть доступа к банковскому счету. - -В DeFi умный контракт заменяет финансовое учреждение в сделке. Умный контракт — это тип учетной записи Ethereum, на котором могут храниться средства и который может отправлять и возвращать их на определенных условиях. Никто не может изменить этот умный контракт после его запуска: он всегда будет работать так, как был запрограммирован. - -Контракт, предназначенный для выплаты пособий или карманных денег, может быть запрограммирован на отправку денег со счета A на счет B каждую пятницу. И он будет делать это до тех пор, пока на счете А есть необходимые средства. Никто не может изменить контракт и добавить аккаунт C в качестве получателя для кражи средств. - -Контракты также открыты для любой проверки и аудита. Это означает, что плохие контракты часто довольно быстро попадают в поле зрения сообщества. - -В настоящее время необходимо доверять более технически грамотным членам сообщества Ethereum, которые могут читать код. Сообщество с открытым исходным кодом помогает проверять разработчиков, но со временем эта потребность уменьшится, поскольку умные контракты станет легче читать и будут разработаны другие способы доказательства надежности кода. - -## Ethereum и DeFi {#ethereum-and-defi} - -Ethereum — идеальная основа для DeFi по ряду причин: - -- Никто не владеет Ethereum или умными контрактами, которые на нем используются, а это дает возможность каждому использовать DeFi. Это также означает, что никто не может изменить правила в отношении вас. -- Все продукты DeFi за кулисами говорят на одном языке: Ethereum. Это означает, что многие продукты без всяких проблем работают вместе. Вы можете одалживать токены на одной платформе и обменивать токены под проценты на другом рынке и в совершенно другом приложении. Это похоже на возможность обналичивать баллы лояльности в вашем банке. -- Токены и криптовалюты, построенные на Ethereum, общий реестр, отслеживающий транзакций и права на владение, — вот что такое Ethereum. -- Ethereum обеспечивает полную финансовую свободу: большинство продуктов никогда не перехватят ваши средства, контроль остается за вами. - -Вы можете разделить DeFi на слои: - -1. Блокчейн: Ethereum содержит историю транзакций и состояние счетов. -2. Активы: [ETH](/eth/) и другие токены (валюты). -3. Протоколы — [умные контракты](/glossary/#smart-contract), которые предоставляют функциональные возможности, например сервис, позволяющий децентрализовать кредитование активов. -4. [Приложения](/dapps/): продукты, которые мы используем для управления и доступа к протоколам. - -## Формирование DeFi {#build-defi} - -DeFi — это движение с открытым исходным кодом. Все протоколы и приложения DeFi открыты для ваших исследований, разветвлений и инноваций. Благодаря этому многоуровневому стеку (все они используют один и тот же блокчейн и активы) протоколы можно смешивать и сопоставлять, чтобы открыть уникальные комбинированные возможности. - - - Подробнее о децентрализованных приложениях - - -## Дополнительные ресурсы {#futher-reading} - -### Данные о DeFi {#defi-data} - -- [DeFi Prime](https://defiprime.com/) -- [DeFi Llama](https://defillama.com/) -- [DeFi Rate](https://defirate.com/) - -### Статьи о DeFi {#defi-articles} - -- [Руководство по DeFi для начинающих](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) — _Сид Коэльо-Прабху, 6 января 2020 г._ - -### Видео {#videos} - -- [Finematics — децентрализованное финансовое образование](https://finematics.com/) — _Видео о DeFi_ -- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) — _Основы DeFi: все, что нужно знать, чтобы начать работу в этом иногда непонятном пространстве._ -- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _Что такое DeFi?_ - -### Сообщества {#communities} - -- [DeFi Llama, сервер Discord](https://discord.gg/buPFYXzDDd) -- [DeFi Pulse, сервер Discord](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/ru/desci/index.md b/src/content/translations/ru/desci/index.md deleted file mode 100644 index 0756676c979..00000000000 --- a/src/content/translations/ru/desci/index.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: Децентрализованная наука (DeSci) -description: Обзор о децентрализованной науке на основе Ethereum -lang: ru -template: use-cases -emoji: ":microscope:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Глобальная открытая альтернатива существующей научной системе. -summaryPoint2: Технология, позволяющая ученым привлекать финансирование, проводить эксперименты, делиться данными, распределять идеи и т. д. -summaryPoint3: Основан на движении за открытую науку. ---- - -## Что такое децентрализованная наука (DeSci)? {#what-is-desci} - -Децентрализованная наука (DeSci) — это движение, целью которого является создание общественной инфраструктуры для финансирования, создания, проверки, кредитования, хранения и распространения научных знаний на справедливой и равноправной основе с использованием стека Web3. - -DeSci стремится создать экосистему, в которой ученые заинтересованы в том, чтобы открыто делиться своими исследованиями и получать вознаграждение за свою работу, позволяя любому легко получить доступ к исследованиям и внести свой вклад в них. DeSci исходит из идеи, что научные знания должны быть доступны каждому, а процесс научных исследований должен быть прозрачным. DeSci создает более децентрализованную и распределенную модель научных исследований, делая ее более устойчивой к цензуре и контролю со стороны центральных властей. DeSci надеется создать среду, в которой могут процветать новые и нетрадиционные идеи, путем децентрализации доступа к финансированию, научным инструментам и каналам связи. - -Децентрализованная наука позволяет использовать более разнообразные источники финансирования (от [DAO](/dao/), [квадратичных пожертвований](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) до краудфандинга и т. д.), более доступные данные и методы доступа, а также предоставление стимулов для воспроизводимости. - -### Хуан Бенет — Движение DeSci - - - -## Как DeSci улучшает науку {#desci-improves-science} - -Неполный список ключевых проблем в науке и то, как децентрализованная наука может помочь решить эти проблемы - -| **Децентрализованная наука** | **Традиционная наука** | -| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -| Распределение средств определяется общественностью с использованием таких механизмов, как квадратичные пожертвования или DAO. | Небольшие закрытые централизованные группы контролируют распределение средств. | -| Вы сотрудничаете с коллегами со всего мира в динамичных командах. | Финансовые организации и домашние учреждения ограничивают ваше взаимодействие. | -| Решения о финансировании принимаются онлайн и прозрачно. Изучаются новые механизмы финансирования. | Решения о финансировании принимаются с длительным сроком выполнения и ограниченной прозрачностью. Существует мало механизмов финансирования. | -| Совместное использование лабораторных услуг стало проще и прозрачнее с помощью примитивов Web3. | Совместное использование лабораторных ресурсов часто медленное и непрозрачное. | -| Для доверия, прозрачности и всеобщего доступа могут быть разработаны новые модели публикации, которые используют примитивы Web3. | Вы публикуете по установленным путям, которые часто признаются неэффективными, предвзятыми и эксплуататорскими. | -| Вы можете зарабатывать токены и репутацию за рецензирование работ. | Ваша рецензируемая работа является неоплачиваемой, принося доход коммерческим издателям. | -| Вы владеете интеллектуальной собственностью (ИС), которую создаете и распространяете в соответствии с прозрачными условиями. | Ваше домашнее учреждение владеет интеллектуальной собственностью (ИС), которую вы создаете. Доступ к ИС не является прозрачным. | -| Обмен всеми исследованиями, включая данные неудачных попыток, путем размещения всех шагов в блокчейне. | Предвзятость публикаций означает, что исследователи с большей вероятностью делятся экспериментами, которые дали успешные результаты. | - -## Ethereum и DeSci {#ethereum-and-desci} - -Децентрализованная научная система потребует надежной безопасности, минимальных денежных и транзакционных затрат и богатой экосистемы для разработки приложений. Ethereum предоставляет все необходимое для создания децентрализованного научного стека. - -## Варианты использования DeSci {#use-cases} - -DeSci создает набор научных инструментов для интеграции научных кругов Web2 в цифровой мир. Ниже приведены примеры вариантов использования, которые Web3 может предложить научному сообществу. - -### Публикация {#publishing} - -Публикация научных работ является известной проблемой, поскольку ею управляют издательства, которые полагаются на бесплатный труд ученых, рецензентов и редакторов для создания статей, но затем взимают непомерную плату за публикацию. Общественность, которая обычно косвенно оплачивает работу и расходы на публикацию за счёт налогообложения, часто не имеет доступа к той же работе без повторной оплаты издателю. Общая сумма гонораров за публикацию отдельных научных работ часто составляет пятизначную цифру ($USD), подрывая всю концепцию научного знания как [общественного блага](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 обладает потенциалом, который позволит разрушить эту сломанную модель финансирования, экспериментируя с различными моделями стимулирования, разработанными DAO и 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} - -Интеллектуальная собственность (ИС) является серьезной проблемой в области традиционной науки: от того, что она застряла в университетах или неиспользования в биотехнологиях, до того, что ее трудно оценить. Однако владение цифровыми активами (такими как научные данные или статьи) — это то, что Web3 делает исключительно хорошо с помощью [невзаимозаменяемых токенов (NFTs)](/nft/). - -Таким же образом, что и NFT могут передавать доход для будущих транзакций первоначальному создателю, вы можете установить прозрачные цепочки атрибутов ценности для вознаграждения исследователей, руководящих органов (как DAO), или даже тем субъектам, чьи данные собираются. - -[Токены IP-NFT](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) также могут функционировать как ключ к децентрализованному хранилищу данных проводимых исследовательских экспериментов и подключаться к NFT и [DeFi](/defi/) (от фракционирования до кредитных пулов и оценки стоимости). Это также позволяет находящимся на цепочке сущностям, таким как DAO (например [VitaDAO](https://www.vitadao.com/)), проводить исследования непосредственно на цепочке. Появление непередаваемых [токенов soulbound](https://vitalik.ca/general/2022/01/26/soulbound.html) может также сыграть важную роль в DeSci, позволяя людям подтверждать свой опыт и учетные данные, связанные с их адресом Ethereum. - -### Хранение данных, доступ и архитектура {#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 поддерживают вышеописанные сценарии и обеспечивают основу для подлинно открытой науки, где исследователи могут создавать общественные блага без разрешений на доступ или платы. Решения Web3 для публичных данных, такие как IPFS, Arweave и Filecoin, оптимизированы для децентрализации. dClimate, например, обеспечивает универсальный доступ к данным о климате и погоде, в том числе с метеостанций и прогнозных климатических моделей. - -## Участвовать {#get-involved} - -Исследуйте проекты и присоединяйтесь к сообществу DeSci. - -- [DeSci.Global: календарь глобальных мероприятий и встреч](https://desci.global) -- [Блокчейн для науки в Telegram](https://t.me/BlockchainForScience) -- [Molecule: финансируйте и получайте финансирование для своих исследовательских проектов](https://discover.molecule.to/) -- [VitaDAO: получайте финансирование через спонсорские соглашения на исследования долголетия](https://www.vitadao.com/) -- [ResearchHub: публикуйте научные результаты и участвуйте в беседах с коллегами](https://www.researchhub.com/) -- [LabDAO: складывание белка in-silico](https://alphafodl.vercel.app/) -- [dClimate API: запрос климатических данных, собранных децентрализованным сообществом](https://api.dclimate.net/) -- [DeSci Foundation: конструктор инструментов публикации DeSci](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: складывание белка in-silico](https://alphafodl.vercel.app/) -- [Bio.xyz: получите финансирование для своего биотехнологического проекта DAO или desci](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) -- [Active Inference Lab: лаборатория активного обобщения](https://www.activeinference.org/) -- [CureDAO: платформа точного здоровья, принадлежащая сообществу](https://docs.curedao.org/) -- [IdeaMarkets: обеспечение децентрализованного научного доверия](https://ideamarket.io/) -- [DeSci Labs](https://www.desci.com/) - -Мы рады предложениям, позволяющим пополнить наш список новыми проектами. Для начала ознакомьтесь с нашей [политикой размещения в списках](/contributing/adding-desci-projects/)! - -## Дополнительные ресурсы {#further-reading} - -- [DeSci Wiki от Jocelynn Pearl и Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) -- [Руководство по децентрализованной биотехнологии от Джоселин Перл для ресурса Future венчурного фонда a16z](https://future.a16z.com/a-guide-to-decentralized-biotech/) -- [Аргументы в пользу DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) -- [Руководство по DeSci](https://future.com/what-is-decentralized-science-aka-desci/) -- [Децентрализованные научные ресурсы](https://www.vincentweisser.com/decentralized-science) -- [IP-NFT от Molecule’s Biopharma — техническое описание](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) -- [Создание систем, не требующих доверия, в науке. Автор: Джон Старр](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) -- [Возникновение DAO в сфере биотехнологий](https://molecule.to/blog/the-emergence-of-biotech-daos) -- [Пол Калхас — 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) -- [DeSci: будущее исследований с Сэмюэлом Акиношо](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) -- [Финансирование науки (эпилог: DeSci и новые криптопримитивности). Автор: Надия](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) -- [Хуан Бенет — DeSci, независимые лаборатории и наука об обработке больших массивов данных](https://www.youtube.com/watch?v=zkXM9H90g_E) -- [Себастьян Брунемайер — Как DeSci может преобразовать биомедицинские исследования и венчурный капитал](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/ru/developers/docs/nodes-and-clients/index.md b/src/content/translations/ru/developers/docs/nodes-and-clients/index.md deleted file mode 100644 index 964899b1dc5..00000000000 --- a/src/content/translations/ru/developers/docs/nodes-and-clients/index.md +++ /dev/null @@ -1,320 +0,0 @@ ---- -title: Узлы и клиенты -description: Немного об узлах Ethereum и клиентском программном обеспечении, а также о том, как настроить узел и почему вы должны это сделать. -lang: ru -sidebarDepth: 2 ---- - -Ethereum — это распределенная сеть компьютеров с программным обеспечением (известным как узлы, или ноды), которое может проверять блоки и данные транзакций. Для «запуска» узла на вашем компьтере вам необходимо приложение, известное как клиент. - -## Прежде чем начать {#prerequisites} - -Вы должны понимать концепцию одноранговой сети и [основы EVM](/developers/docs/evm/), прежде чем углубляться и запускать собственный экземпляр клиента Ethereum. Начните с [введения в Ethereum](/developers/docs/intro-to-ethereum/). - -Если ты новичок в теме узлов, мы рекомендуем сначала ознакомиться с нашим удобным для пользователя введением по [ запуску узла Ethereum](/run-a-node). - -## Что такое узлы и клиенты? {#what-are-nodes-and-clients} - -«Узел» относится к запускаемой части клиентского программного обеспечения. Клиент — это реализация Ethereum, которая проверяет все транзакции в каждом блоке, обеспечивая безопасность сети и точность данных. - -Вы можете увидеть сеть Ethereum в реальном времени, посмотрев на эту [карту узлов](https://etherscan.io/nodetracker). - -[Клиенты Ethereum](/developers/docs/nodes-and-clients/#execution-clients) существуют на множестве языков программирования, таких как Go, Rust, JavaScript, Typescript, Python, C# .NET, Nim и Java. Что общего у этих реализаций, так это то, что все они следуют формальной спецификации (изначально [Желтая книга Ethereum](https://ethereum.github.io/yellowpaper/paper.pdf)). Эта спецификация определяет, как функционирует сеть Ethereum и блокчейн. - -![Клиент-исполнитель](./client-diagram.png) Упрощенная схема возможностей клиента Ethereum. - -## Типы узлов {#node-types} - -Если вы хотите [запустить собственный узел](/developers/docs/nodes-and-clients/run-a-node/), вы должны понимать, что существуют разные типы узлов, которые по-разному обрабатывают данные. Фактически клиенты могут запускать 3 разных типа узлов — легкий, полный и архивный. Существуют также варианты различных стратегий синхронизации, которые позволяют сократить время синхронизации. Синхронизация означает скорость, с которой он может получить самую свежую информацию о состоянии Ethereum. - -### Полный узел {#full-node} - -- Хранит полные данные блокчейна. -- Участвует в проверке блоков, проверяет все блоки и состояния. -- Все состояния могут быть получены из полного узла. -- Обслуживает сеть и предоставляет данные по запросу. - -### Легкий узел {#light-node} - -- Сохраняет цепочку заголовков и запрашивает все остальное. -- Может проверять достоверность данных относительно корней состояний в заголовках блоков. -- Полезно для устройств с малой емкостью, таких как встроенные устройства или мобильные телефоны, которые не могут позволить себе хранить гигабайты данных блокчейна. - -### Архивный узел {#archive-node} - -- Хранит все, что хранится в полном узле, и создает архив исторических состояний. Требуется, если вы хотите запросить что-то вроде баланса аккаунта в блоке № 4 000 000 или просто и надежно [протестировать свой собственный набор транзакций без их майнинга с помощью OpenEthereum](https://openethereum.github.io/JSONRPC-trace-module#trace_callmany). -- Эти данные представляют собой несколько терабайтов, что делает узлы архива менее привлекательными для обычных пользователей, но может быть полезно для таких сервисов, как обозреватели блоков, поставщики кошельков и аналитики цепочек. - -Синхронизация клиентов в любом режиме, кроме архива, приведет к удалению данных блокчейна. Это означает, что не существует архива всех исторических состояний, но полный узел способен построить их по требованию. - -## Зачем мне запускать узел Ethereum? {#why-should-i-run-an-ethereum-node} - -Запуск узла позволяет вам конфиденциально и ни на кого не полагаясь использовать Ethereum, поддерживая экосистему. - -### Польза для вас {#benefits-to-you} - -Запуск собственного узла позволяет вам использовать Ethereum в действительно конфиденциальной, самодостаточной и не требующей доверяться посторонним манере. Вам не нужно доверять сети, потому что вы можете сами проверить данные своим клиентом. «Не доверяйте, проверяйте» — популярная мантра блокчейна. - -- Ваш узел самостоятельно проверяет все транзакции и блоки на соответствие правилам согласования. Это означает, что вам не нужно полагаться на какие-либо другие узлы в сети или полностью им доверять. -- Вам не придется передавать свои адреса и балансы на случайные узлы. Все можно проверить с помощью собственного клиента. -- Ваше децентрализованное приложение может быть более безопасным и конфиденциальным, если вы используете свой собственный узел. [MetaMask](https://metamask.io), [MyEtherWallet](https://myetherwallet.com) и некоторые другие кошельки могут быть легко указаны в вашем собственном локальном узле. -- Вы можете запрограммировать собственные конечные точки RPC. -- Вы можете подключиться к своему узлу с помощью **межпроцессного взаимодействия (IPC)** или переписать узел, чтобы загрузить свою программу в виде плагина. Это обеспечивает низкую задержку, необходимую для максимально быстрой замены ваших транзакций (т. е. опережающего выполнения). - -![Как получать доступ к Ethereum через свое приложение и узлы](./nodes.png) - -### Преимущества сети {#network-benefits} - -Разнообразный набор узлов важен для работоспособности, безопасности и отказоустойчивости Ethereum. - -- Они предоставляют доступ к данным блокчейна для легких клиентов, которые от него зависят. При высоких пиках использования должно быть достаточно полных узлов, чтобы облегчить синхронизацию узлов. Легкие узлы не хранят всю цепочку блоков, вместо этого они проверяют данные через [корни состояний в заголовках блоков](/developers/docs/blocks/#block-anatomy). При необходимости они могут запросить у блоков дополнительную информацию. -- Полные узлы обеспечивают соблюдение правил согласования с доказательством работы, поэтому их нельзя обманом заставить принимать блоки, которые им не соответствуют. Это обеспечивает дополнительную безопасность в сети: если бы все узлы были легкими узлами, не выполняющими полную проверку, майнеры могли бы атаковать сеть и, например, создавать блоки с более высоким вознаграждением. - -Если вы запустите полный узел, от этого выиграет вся сеть Ethereum. - -## Запуск собственного узла {#running-your-own-node} - -Заинтересованы в запуске собственного клиента Ethereum? - -Для ознакомления с введением, удобным для начинающих, навестите нашу страницу [запуска узла](/run-a-node), чтобы узнать больше. - -Если вы более технически подкованный пользователь, узнайте, как [развернуть свой собственный узел](/developers/docs/nodes-and-clients/run-a-node/) с помощью командной строки! - -### Проекты {#projects} - -[**Выберите клиент и следуйте его инструкциям**](#clients) - -**ethnode** — **_запуск узла Ethereum (Geth или OpenEthereum) для локальной разработки._** - -- [GitHub](https://github.com/vrde/ethnode) - -**DAppNode** — **_графический интерфейс в операционной системе для запуска узлов Web3, включая Ethereum и Beacon Chain, на выделенной машине._** - -- [dappnode.io](https://dappnode.io) - -### Ресурсы {#resources} - -- [Запуск полных узлов Ethereum: полное руководство](https://medium.com/coinmonks/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) — _7 ноября 2019 г., Джастин Леру_ -- [Памятка по настройке узла](https://dev.to/5chdn/ethereum-node-configuration-modes-cheat-sheet-25l8) — _5 января 2019 г., Афри Шёден_ -- [Как установить и запустить узел Geth](https://www.quiknode.io/guides/infrastructure/how-to-install-and-run-a-geth-node) — _4 октября 2020 г., Сахил Сен_ -- [Как установить и запустить узел OpenEthereum (ранее Parity)](https://www.quiknode.io/guides/infrastructure/how-to-run-a-openethereum-ex-parity-client-node) — _22 сентября 2020 г., Сахил Сен_ - -## Альтернативы {#alternatives} - -Запуск собственного узла может быть трудным, и вам не всегда нужно запускать собственный экземпляр. В этом случае вы можете использовать стороннего поставщика API, например [Infura](https://infura.io), [Alchemy](https://alchemyapi.io) или [QuikNode](https://www.quiknode.io). В качестве альтернативы есть [ArchiveNode](https://archivenode.io/) — это финансируемый сообществом узел Archive, предоставляющий архивные данные блокчейна Ethereum независимым разработчикам, которые в противном случае не могли бы себе этого позволить. Для получения общего представления об использовании этих услуг ознакомьтесь с разделом [узлы как услуга](/developers/docs/nodes-and-clients/nodes-as-a-service/). - -Если в вашем сообществе кто-то запускает узел Ethereum с общедоступным API, вы можете направить свои легкие кошельки (например, MetaMask) на узел сообщества [через Custom RPC](https://metamask.zendesk.com/hc/en-us/articles/360015290012-Using-a-Local-Node) и обезопасить себя больше, чем при работе с какой-то случайной третьей стороной. - -С другой стороны, если вы запустите клиент, вы можете поделиться им со своими друзьями, которым он может понадобиться. - -## Клиенты-исполнители (ранее «клиенты Eth1») {#execution-clients} - -Сообщество Ethereum поддерживает несколько клиентов-исполнителей с открытым исходным кодом (ранее известных как «клиенты Eth1« или просто «клиенты Ethereum»), разработанных разными командами с использованием разных языков программирования. Это делает сеть более сильной и разнообразной. Идеальная цель — добиться разнообразия без доминирования клиентов, чтобы уменьшить количество точек отказа. - -В этой таблице представлены различные клиенты. Все они проходят [клиентское тестирование](https://github.com/ethereum/tests) и активно поддерживаются, чтобы обновляться совместно с обновлениями сети. - -| Клиент | Язык | Операционные системы | Сети | Стратегии синхронизации | Обрезка мусора | -| ----------------------------------------------------------------------- | -------- | --------------------- | ----------------------------------------------- | ----------------------- | -------------- | -| [Geth](https://geth.ethereum.org/) | Перейти | Linux, Windows, macOS | Основная сеть, Görli, Rinkeby, Ropsten | Снимок, полная | Архив, обрезка | -| [Nethermind](http://nethermind.io/) | C#, .NET | Linux, Windows, macOS | Основная сеть, Görli, Ropsten, Rinkeby и другие | Быстрая, луч, архив | Архив, обрезка | -| [Besu](https://besu.hyperledger.org/en/stable/) | Java | Linux, Windows, macOS | Основная сеть, Rinkeby, Ropsten, Görli и другие | Fast, Full | Архив, обрезка | -| [Erigon](https://github.com/ledgerwatch/erigon) | Перейти | Linux, Windows, macOS | Основная сеть, Görli, Rinkeby, Ropsten | Полная | Архив, обрезка | -| [OpenEthereum (устарело)](https://github.com/openethereum/openethereum) | Rust | Linux, Windows, macOS | Основная сеть, Kovan, Ropsten и другие | Warp, Full | Архив, обрезка | - -**Обратите внимение, что OpenEthereum [устарел](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) и больше не поддерживается.** Используйте его с осторожностью и по возможности перейдите на другую реализацию клиента. - -Подробнее о поддерживаемых сетях читайте в статье о [сетях Ethereum](/developers/docs/networks/). - -### Преимущества разных реализаций {#advantages-of-different-implementations} - -У каждого клиента есть уникальные варианты использования и преимущества, поэтому вы должны выбрать один, исходя из своих предпочтений. Разнообразие позволяет сфокусировать реализации на различных функциях и пользовательских аудиториях. Вы можете выбрать клиента на основе функций, поддержки, языка программирования или лицензий. - -#### Go Ethereum {#geth} - -Go Ethereum (сокращенно Geth) — одна из оригинальных реализаций протокола Ethereum. В настоящее время это самый распространенный клиент с самой большой пользовательской базой и множеством инструментов для пользователей и разработчиков. Он написан на Go с полностью открытым исходным кодом и под лицензией GNU LGPL v3. - -#### OpenEthereum {#openethereum} - -OpenEthereum — это быстрый, многофункциональный и продвинутый клиент Ethereum на основе интерфейса командной строки. Он создан для обеспечения необходимой инфраструктуры для быстрых и надежных услуг, требующих быстрой синхронизации и максимального времени безотказной работы. Цель OpenEthereum — стать самым быстрым, легким и безопасным клиентом Ethereum. Он предоставляет чистую модульную кодовую базу для: - -- простой перенастройки; -- легкой интеграции в услуги или продукты; -- минимального потребления памяти и хранилища. - -OpenEthereum разработан с использованием передового языка программирования Rust и распространяется под лицензией GPLv3. - -**Обратите внимение, что OpenEthereum [устарел](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) и больше не поддерживается.** Используйте его с осторожностью и по возможности перейдите на другую реализацию клиента. - -#### Nethermind {#nethermind} - -Nethermind — это реализация Ethereum, созданная с помощью технического стека C# .NET, работающая на всех основных платформах, включая ARM. Он предлагает отличную производительность с: - -- оптимизированной виртуальной машиной; -- доступом к состоянию; -- сетью и ценными функциями: панели управления Prometheus/Grafana, поддержка ведения корпоративного журнала seq, трассировка JSON RPC и аналитические плагины. - -У Nethermind также есть [подробная документация](https://docs.nethermind.io), мощная поддержка разработчиков, онлайн-сообщество и круглосуточная поддержка, доступная для премиум-пользователей. - -#### Besu {#besu} - -Hyperledger Besu — это клиент Ethereum корпоративного уровня для общедоступных и разрешенных сетей. Он работает со всеми функциями основной Ethereum, от трассировки до GraphQL, имеет обширный мониторинг и поддерживается ConsenSys, как в открытых каналах сообщества, так и в коммерческих соглашениях об уровне обслуживания для предприятий. Он написан на Java и имеет лицензию Apache 2.0. - -#### Erigon {#erigon} - -Erigon (в прошлом — Turbo-Geth) представляет собой ответвление Go Ethereum, ориентированное на скорость и эффективность использования дискового пространства. Erigon — это полностью переработанная архитектура реализации Ethereum, написанная на Go, но с планируемыми реализациями на других языках. Цель Erigon — обеспечение быстрой, более модульной и более оптимизированной реализации Ethereum. Он может выполнить полную синхронизацию архивного узла, используя менее 2ТВ дискового пространства менее чем за 3 дня - -### Режимы синхронизации {#sync-modes} - -Чтобы отслеживать и проверять текущие данные в сети, клиент Ethereum должен синхронизироваться с последним ее состоянием. Это делается путем загрузки данных от пиров, криптографической проверки их целостности и создания локальной базы данных блокчейна. - -Режимы синхронизации с различными решениями представляют разные подходы к этому процессу. Клиенты также различаются по реализации алгоритмов синхронизации. Всегда обращайтесь к официальной документации выбранного клиента для уточнения особенностей реализации. - -#### Обзор подходов {#overview-of-strategies} - -Общий обзор подходов к синхронизации, используемых в клиентах с поддержкой основной сети: - -##### Полная синхронизация - -Полная синхронизация загружает все блоки (включая заголовки, транзакции и квитанции) и генерирует состояние блокчейна постепенно, выполняя каждый блок из начала. - -- Минимизирует необходимость доверия и обеспечивает максимальную безопасность, проверяя каждую транзакцию. -- При увеличении количества транзакций обработка всех транзакций может занять от нескольких дней до нескольких недель. - -##### Быстрая синхронизация - -Быстрая синхронизация загружает все блоки (включая заголовки, транзакции и квитанции), проверяет все заголовки, загружает состояние и сверяет его с заголовками. - -- Полагается на безопасность механизма консенсуса. -- Синхронизация займет всего несколько часов. - -##### Легкая синхронизация - -В легком режиме клиент загружает все заголовки блоков и данные блоков, а некоторые из них проверяются случайным образом. Синхронизируется только конец цепи из доверенной контрольной точки. - -- Получает только последнее состояние, полагаясь на доверие к разработчикам и механизму консенсуса. -- Клиент будет готов к использованию с текущим состоянием сети через несколько минут. - -[Подробнее о легких клиентах](https://www.parity.io/blog/what-is-a-light-client/) - -##### Синхронизация снимка - -Реализовано Geth. Использование динамических снимков, обслуживаемых пирами, позволяет получить все данные о счетах и хранилищах без загрузки промежуточных узлов дерева, а затем восстановить дерево Меркла локально. - -- Самая быстрая стратегия синхронизации, разработанная компанией Geth, в настоящее время используется по умолчанию -- Экономия дискового пространства и пропускной способности сети без ущерба для безопасности. - -[Подробнее о снимке](https://github.com/ethereum/devp2p/blob/master/caps/snap.md) - -##### Варп-синхронизация - -Реализовано OpenEthereum. Узлы регулярно генерируют критичный для консенсуса снимок состояния, и любой пир может получить эти снимки по сети, обеспечивая быструю синхронизацию из этой точки. - -- Самый быстрый и стандартный режим синхронизации OpenEthereum полагается на статические снимки, обслуживаемые пирами. -- Стратегия похожа на синхронизацию снимков, но без определенных преимуществ в плане безопасности. - -[Подробнее о варпе](https://openethereum.github.io/Beginner-Introduction#warping---no-warp) - -##### Синхронизация луча - -Реализовано Nethermind и Trinity. Работает как быстрая синхронизация, но также загружает данные, необходимые для выполнения последних блоков, что позволяет запрашивать цепочку в течение первых нескольких минут после запуска. - -- Сначала синхронизирует состояние и позволяет запросить RPC за несколько минут. -- Этот тип все еще находится в разработке и не полностью надежен, фоновая синхронизация замедляется, а ответы RPC могут не срабатывать. - -[Подробнее о луче](https://medium.com/@jason.carver/intro-to-beam-sync-a0fd168be14a) - -#### Настройка в клиенте {#client-setup} - -Клиенты предлагают широкие возможности конфигурации в соответствии с вашими потребностями. Выберите тот, который подходит вам лучше всего, исходя из уровня безопасности, доступных данных и стоимости. Помимо алгоритма синхронизации, вы также можете настроить «обрезку» различных типов старых данных. Обрезка позволяет удалить устаревшие данные, примером может быть удаление узлов дерева состояний, которые недоступны из новых блоков. - -Обратите внимание на документацию клиента или страницу справки, чтобы узнать, какой режим синхронизации используется по умолчанию. Вы можете определить предпочтительный тип синхронизации при настройке следующим образом. - -**Настройка легкой синхронизации в [GETH](https://geth.ethereum.org/) или [ERIGON](https://github.com/ledgerwatch/erigon)** - -`geth --syncmode "light"` - -Для получения дополнительной информации ознакомьтесь с руководством по [запуску легкого узла Geth](/developers/tutorials/run-light-node-geth/). - -**Настройка полной синхронизации с архивом в [Besu](https://besu.hyperledger.org/)** - -`besu --sync-mode=FULL` - -Как и любую другую конфигурацию, ее можно определить с помощью флага запуска или в файле конфигурации. Другой пример — [Nethermind](https://docs.nethermind.io/nethermind/), который предлагает вам выбрать конфигурацию во время первой инициализации и создает файл конфигурации. - -## Консенсус-клиенты (ранее — «клиенты Eth2») {#consensus-clients} - -Существует несколько консенсус-клиентов (ранее известных как «клиенты Eth2»), поддерживающих [обновления консенсуса](/roadmap/beacon-chain/). Они управляют цепочкой Beacon Chain и предоставят механизм консенсуса с доказательством владения клиентам-исполнителям после [слияния](/roadmap/merge/). - -| Клиент | Язык | Операционные системы | Сети | -| ----------------------------------------------------------- | ---------- | --------------------- | ------------------------------------- | -| [Teku](https://pegasys.tech/teku) | Java | Linux, Windows, macOS | Beacon Chain, Goerli | -| [Nimbus](https://nimbus.team/) | Nim | Linux, Windows, macOS | Beacon Chain, Goerli | -| [Lighthouse](https://lighthouse-book.sigmaprime.io/) | Rust | Linux, Windows, macOS | Beacon Chain, Goerli, Pyrmont | -| [Lodestar](https://lodestar.chainsafe.io/) | TypeScript | Linux, Windows, macOS | Beacon Chain, Goerli | -| [Prysm](https://docs.prylabs.network/docs/getting-started/) | Go | Linux, Windows, macOS | Beacon Chain, Gnosis, Goerli, Pyrmont | - -## Аппаратное обеспечение {#hardware} - -Требования к оборудованию различаются в зависимости от клиента, но обычно не так высоки, поскольку узел просто должен оставаться синхронизированным. Не путайте это с майнингом, который требует гораздо большей вычислительной мощности. Однако время синхронизации и производительность улучшаются с более мощным оборудованием. В зависимости от ваших потребностей и желаний Ethereum можно запускать на вашем компьютере, домашнем сервере, одноплатных компьютерах или в виртуальных частных серверах в облаке. - -Самый простой способ запустить собственный узел — использовать самонастраиваемые блоки, такие как [DAppNode](https://dappnode.io/). Он предоставляет оборудование для запуска клиентов и приложений, которые зависят от них, с простым пользовательским интерфейсом. - -### Требования {#requirements} - -Перед установкой любого клиента убедитесь, что на вашем компьютере достаточно ресурсов для его запуска. Минимальные и рекомендуемые требования можно найти ниже, однако ключевой частью является дисковое пространство. Синхронизация блокчейна Ethereum требует очень больших затрат на ввод-вывод. Лучше всего иметь твердотельный накопитель (SSD). Чтобы запустить клиент Ethereum на жестком диске, вам понадобится как минимум 8 ГБ ОЗУ для использования в качестве кэша. - -#### Минимальные требования {#recommended-specifications} - -- ЦП с минимум 2 ядрами -- Минимум 4 ГБ ОЗУ с SSD, 8 ГБ, если у вас жесткий диск -- Пропускная способность 8 Мбит/с - -#### Рекомендуемые характеристики {#recommended-specifications} - -- Быстрый процессор с минимум 4 ядрами -- Минимум 16 ГБ ОЗУ -- Быстрый SSD с не менее 500 ГБ свободного места -- Пропускная способность от 25 Мбит/с - -Выбранный вами режим синхронизации повлияет на требования к дисковому пространству, но мы оценили объем, который вам потребуется для каждого клиента. - -| Клиент | Размер диска (быстрая синхронизация) | Размер диска (полный архив) | -| ------------ | ------------------------------------ | --------------------------- | -| Geth | 400ГБ+ | 6TБ+ | -| OpenEthereum | От 280 ГБ | От 6 TБ | -| Nethermind | От 200 ГБ | От 5 ТБ | -| Besu | От 750 ГБ | От 5 ТБ | -| Erigon | Н/Д | От 1 ТБ | - -- Примечание: Erigon не выполняет быструю синхронизацию, но возможна полная обработка (~500 ГБ) - -![График, показывающий объем памяти, необходимый для полной синхронизации, имеет тенденцию к увеличению](./full-sync.png) - -![График, показывающий объем памяти, необходимый для синхронизации архива, имеет тенденцию к увеличению](./archive-sync.png) - -Эти диаграммы показывают, что требования к хранилищу постоянно меняются. Для получения самых последних данных по Geth и OpenEthereum смотрите информацию о [полной синхронизации данных](https://etherscan.io/chartsync/chaindefault) и [синхронизации архива](https://etherscan.io/chartsync/chainarchive). - -### Ethereum на одноплатном компьютере {#ethereum-on-a-single-board-computer} - -Самый удобный и дешевый способ запустить узел Ethereum — использовать одноплатный компьютер с архитектурой ARM, такой как Raspberry Pi. [Ethereum на ARM](https://twitter.com/EthereumOnARM) предоставляет образы клиентов Geth, OpenEthereum, Nethermind и Besu. Вот простое руководство [как создать и настроить клиент ARM](/developers/tutorials/run-node-raspberry-pi/). - -Такие небольшие, доступные и эффективные устройства идеально подходят для работы узла дома. - -## Дополнительные ресурсы {#further-reading} - -В Интернете есть много информации о клиентах Ethereum. Вот несколько ресурсов, которые могут оказаться полезными. - -- [Ethereum 101, часть 2: понимание узлов](https://kauri.io/ethereum-101-part-2-understanding-nodes/48d5098292fd4f11b251d1b1814f0bba/a) — _Уил Барнс, 13 февраля 2019 г._ -- [Запуск полных узлов Ethereum: руководство для сомневающихся](https://medium.com/@JustinMLeroux/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) — _Джастин Леру, 7 ноября 2019 г._ -- [Анализ требований к оборудованию, чтобы стать полностью проверенным узлом Ethereum](https://medium.com/coinmonks/analyzing-the-hardware-requirements-to-be-an-ethereum-full-validated-node-dc064f167902) — _Альберт Палау, 24 сентября 2018 г._ -- [Запуск узла Hyperledger Besu в основной сети Ethereum: преимущества, требования и настройка](https://pegasys.tech/running-a-hyperledger-besu-node-on-the-ethereum-mainnet-benefits-requirements-and-setup/) — _Фелипе Фараджи, 7 мая 2020 г._ - -## Похожие темы {#related-topics} - -- [Блоки](/developers/docs/blocks/) -- [Сети](/developers/docs/networks/) - -## Связанные руководства {#related-tutorials} - -- [Запуск узла с помощью Geth](/developers/tutorials/run-light-node-geth/) _— как загрузить, установить и запустить Geth. О синхронизаторах, консоли JavaScript и многом другом._ -- [Превратите свой Raspberry Pi 4 в узел валидатора, просто прошив карту MicroSD: руководство по установке](/developers/tutorials/run-node-raspberry-pi/) _— прошейте свой Raspberry Pi 4, подключите кабель Ethernet, подключите SSD-диск и включите устройство, чтобы превратить Raspberry Pi 4 в полноценный узел Ethereum, работающий на уровне исполнения (Mainnet) и/или на уровне консенсуса (Beacon Chain / validator)._ diff --git a/src/content/translations/ru/developers/docs/nodes-and-clients/run-a-node/index.md b/src/content/translations/ru/developers/docs/nodes-and-clients/run-a-node/index.md deleted file mode 100644 index 0a2de57de44..00000000000 --- a/src/content/translations/ru/developers/docs/nodes-and-clients/run-a-node/index.md +++ /dev/null @@ -1,164 +0,0 @@ ---- -title: Развертывание собственного узла Ethereum -description: Общее введение в запуск собственного экземпляра клиента Ethereum. -lang: ru -sidebarDepth: 2 ---- - -Запуск собственного узла дает вам различные преимущества, открывает новые возможности и помогает поддерживать экосистему. Эта страница поможет вам развернуть собственный узел и принять участие в проверке транзакций Ethereum. - -## Прежде чем начать {#prerequisites} - -Вы должны понимать, что такое узел Ethereum и почему вам может понадобиться запустить клиент. Это описано в статье [Узлы и клиенты](/developers/docs/nodes-and-clients/). - -Если тема запуска собственного узла для вас новая или вы ищете менее «технический» способ, посмотрите наш более понятное для новичков [введение в запуск узлов Ethereum](/run-a-node). - -## Выбор подхода {#choosing-approach} - -Первый шаг в разворачивании вашего узла — выбор подхода. Вы должны выбрать клиент (программное обеспечение), среду и параметры, с которыми хотите начать. Просмотрите все доступные [клиенты основной сети](/developers/docs/nodes-and-clients/#advantages-of-different-implementations). - -#### Настройки клиента {#client-settings} - -Реализации клиента включают различные режимы синхронизации и многие другие параметры. [Режимы синхронизации](/developers/docs/nodes-and-clients/#sync-modes) представляют собой различные методы загрузки и проверки данных блокчейна. Перед запуском узла следует решить, какую сеть и режим синхронизации использовать. Наиболее важно учитывать дисковое пространство и время синхронизации, которые потребуются клиенту. - -Все функции и опции можно найти в документации клиента. Различные конфигурации клиента можно установить, запустив клиент с соответствующими флагами. В целях тестирования вы можете запустить клиент в одной из тестовых сетей. [Обзор поддерживаемых сетей](/developers/docs/nodes-and-clients/#execution-clients). - -### Среда и оборудование {#environment-and-hardware} - -#### Локально или в облаке {#local-vs-cloud} - -Клиенты Ethereum могут работать на компьютерах потребительского класса и не требуют специального оборудования (например, в отличие от майнинга). Таким образом, в зависимости от ваших нужд вам доступны различные способы развертывания. Для упрощения давайте рассмотрим запуск узла как на локальной физической машине, так и на облачном сервере. - -- Облако - - Провайдеры предлагают большое время безотказной работы сервера и статические общедоступные IP-адреса - - Получение выделенного или виртуального сервера может быть более удобным, чем создание собственного - - Необходимость доверяться третьей стороне — поставщику серверов - - Из-за большого размера хранилища для полного узла цена арендованного сервера может быть высока -- Собственное оборудование - - Более независимый подход, требующий меньшего доверия посторонним - - Однократное вложение - - Возможность покупки преднастроенной машины - - Необходимость подготовить и обслуживать оборудование, а также устранять возможные проблемы - -Оба варианта имеют различные преимущества, описанные выше. Если вы ищете облачное решение, помимо многих традиционных поставщиков облачных вычислений есть сервисы, ориентированные на развертывание узлов. Например: - -- [Узлы](https://www.quiknode.io/) -- [Blockdaemon](https://blockdaemon.com) -- [LunaNode](https://www.lunanode.com/) -- [Alchemy](https://www.alchemy.com/) - -#### Аппаратное обеспечение {#hardware} - -Однако устойчивая к цензуре децентрализованная сеть не должна полагаться на облачных провайдеров. Для экосистемы будет полезнее, если вы запустите свой узел на собственном оборудовании. Самыми простыми вариантами являются преднастроенные машины, такие как: - -- [DappNode](https://dappnode.io/) -- [Avado](https://ava.do/) - -Проверьте минимальные и рекомендуемые [требования к дисковому пространству для каждого клиента и режима синхронизации](/developers/docs/nodes-and-clients/#requirements). Обычно для этого достаточно довольно скромной вычислительной мощности. Проблема обычно заключается в скорости диска. Во время начальной синхронизации клиенты Ethereum выполняют множество операций чтения и записи. Поэтому настоятельно рекомендуется использовать SSD. Клиент может даже не иметь [возможности синхронизировать текущее состояние на HDD диске](https://github.com/ethereum/go-ethereum/issues/16796#issuecomment-391649278), застревая в нескольких блоках позади основной сети. Большинство клиентов можно запустить на [одноплатном компьютере с ARM](/developers/docs/nodes-and-clients/#ethereum-on-a-single-board-computer/). Вы также можете использовать операционную систему [Ethbian](https://ethbian.org/index.html) для Raspberry Pi 4. Это позволит вам [запустить клиент с SD-карты](/developers/tutorials/run-node-raspberry-pi/). В зависимости от выбранного вами программного и аппаратного обеспечения время первоначальной синхронизации и требования к объему хранилища могут различаться. Обязательно [проверьте время синхронизации и требования к хранилищу](/developers/docs/nodes-and-clients/#recommended-specifications). Также убедитесь, что у вашего интернет-соединения нет [ограничения пропускной способности](https://wikipedia.org/wiki/Data_cap). Рекомендуется использовать безлимитное соединение, так как первоначальная синхронизация и обмен данными с сетью могут превысить ваш лимит. - -#### Операционная система {#operating-system} - -Все клиенты поддерживают основные операционные системы — Linux, MacOS, Windows. Это означает, что вы можете запускать узлы на обычных настольных компьютерах или серверах с операционной системой (ОС), которая подходит вам лучше всего. Убедитесь, что ваша ОС обновлена, чтобы избежать потенциальных проблем и уязвимостей. - -## Раскрутка узла {#spinning-up-node} - -### Получение клиентского программного обеспечения {#getting-the-client} - -Сначала скачайте [клиентское программное обеспечение](/developers/docs/nodes-and-clients/#execution-clients) - -Вы можете просто скачать исполняемое приложение или установочный пакет, который подходит вашей операционной системе и архитектуре. Всегда проверяйте подписи и контрольные суммы скачанных пакетов. Некоторые клиенты также предлагают репозитории для упрощения установки и обновления. Если хотите, можете сами собрать из исходников. Все клиенты имеют открытый исходный код, поэтому вы можете собрать их из исходного кода с помощью соответствующего компилятора. - -Исполняемые файлы для стабильных реализаций клиентов основной сети можно загрузить со страниц их выпусков: - -- [Geth](https://geth.ethereum.org/downloads/) -- [OpenEthereum](https://github.com/openethereum/openethereum/releases) -- [Nethermind](https://downloads.nethermind.io/) -- [Besu](https://besu.hyperledger.org/en/stable/) -- [Erigon](https://github.com/ledgerwatch/erigon) - -**Обратите внимение, что OpenEthereum [устарел](https://medium.com/openethereum/gnosis-joins-erigon-formerly-turbo-geth-to-release-next-gen-ethereum-client-c6708dd06dd) и больше не поддерживается.** Используйте его с осторожностью и по возможности перейдите на другую реализацию клиента. - -### Запуск клиента {#starting-the-client} - -Перед запуском клиентского программного обеспечения Ethereum убедитесь что ваша среда готова. Например, убедитесь в следующем: - -- На диске достаточно места с учетом выбранной сети и режима синхронизации. -- Память и ЦП не нагружаются другими программами. -- Операционная система обновлена до последней версии. -- В системе установлены правильное время и дата. -- Ваш маршрутизатор и брандмауэр принимают подключения к прослушиваемым портам. По умолчанию клиенты Ethereum используют порт слушателя (TCP) и порт обнаружения (UDP), оба по умолчанию 30303. - -Сначала запустите свой клиент в тестовой сети, чтобы убедиться, что все работает правильно. [Инструкции по запуску легкого узла Geth](/developers/tutorials/run-light-node-geth/) должны помочь. Необходимо указать все настройки клиента, которые не установлены по умолчанию. Вы можете использовать конфигурационный файл, чтобы определить свой набор настроек. Конкретные настройки можно найти в документации вашего клиента Исполнение клиента запустит его базовые функции и выбранные конечные точки, а затем начнется поиск узлов одноранговой сети. Когда узел найдет одноранговые соединения, клиент начнет синхронизацию. Актуальные данные блокчейна будут доступны, как только клиент закончит синхронизацию до текущего состояния. - -### Использование клиента {#using-the-client} - -Клиенты предоставляют конечные точки RPC API, которые можно использовать для управления клиентом и взаимодействием с сетью Ethereum различными способами: - -- Вызывать API вручную через наиболее подходящий протокол (например, через `curl`) -- Подсоединять предоставленную консоль (например, `geth attach`) -- Использовать в приложении - -У разных клиентов различаются реализации конечных точек RPC. Но существует стандарт JSON-RPC, которые можно использовать с любым клиентом. Обзор приведен в [документации JSON-RPC](https://eth.wiki/json-rpc/API). Приложения, которым требуется информация из сети Ethereum, могут использовать этот RPC. Например, популярный кошелек MetaMask позволяет вам [запустить локальный узел и присоединиться к нему](https://metamask.zendesk.com/hc/en-us/articles/360015290012-Using-a-Local-Node). - -#### Доступ к RPC {#reaching-rpc} - -Порт JSON-RPC по умолчанию — `8545`, но порты локальных конечных точек можно изменять в конфигурационном файле. По умолчанию интерфейс RPC доступен только с локального хоста компьютера. Чтобы сделать его доступным удаленно, можно сделать его открытым, сменив адрес на `0.0.0.0`. Это сделает ваш узел доступным для локальных и публичных IP-адресов. В большинстве случаев вам также нужно настроить переадресацию портов на маршрутизаторе. - -Совершать подобные манипуляции нужно с осторожностью, так как это позволит любому в Интернете управлять вашим узлом. Злонамеренные пользователи, имея доступ к вашему узлу, могут навредить системе или украсть ваши активы, если вы используете свой клиент как кошелек. - -Эту проблему можно решить, предотвратив изменение потенциально опасных методов RPC. Например, в `geth` можно задать методы, которые можно будет использовать для модификации, через опцию командной строки: `--http.api web3,eth,txpool`. - -Вы также можете размещать доступ к RPC интерфейсу, указывая службу веб-сервера, например Nginx, на локальный адрес и порт вашего клиента. - -Наиболее конфиденциальный и одновременно простой способ настроить публично доступную конечную точку — развернуть ее как сервис onion [Tor](https://www.torproject.org/). Это позволит вам получать доступ к RPC за пределами вашей локальной сети без статического публичного IP-адреса или открытых портов. Для этого: - -- Установите `tor` -- Отредактируйте конфигурационный файл `torrc`, чтобы настроить скрытую службу с адресом и портом вашего RPC клиента -- Перезапустите службу `tor` - -После перезапуска Tor вы получите имя хоста и ключи скрытой службы в желаемой директории. С этого момента ваш RPC будет доступен в сети Tor по своему имени хоста `.onion`. - -### Управлением узлом {#operating-the-node} - -Вы должны регулярно проверять свой узел, чтобы убедиться, что он работает правильно. Время от времени может быть необходимо проводить техническое обслуживание. - -#### Поддержание работы узла в сети {#keeping-node-online} - -Ваш узел необязательно должен быть постоянно подключен к сети, но желательно держать его в сети как можно дольше, чтобы поддерживать его синхронизацию с сетью. Вы можете отключить его для перезапуска, но имейте в виду: - -- Завершение работы может занять несколько минут, если последнее состояние все еще записывается на диск. -- Принудительное отключение может повредить базу данных. -- Ваш клиент не будет синхронизироваться с сетью, и при перезапуске потребуется повторная синхронизация. - -_Это не относится к узлам-валидаторам слоя консенсуса._ Выключение вашего узла повлияет на все службы, которые от него зависят. Если вы запускаете узел для _стейкинга_, вы должны минимизировать время простоя, насколько это возможно. - -#### Создание клиентской службы {#creating-client-service} - -Рассмотрим возможность создания службы для автоматической активации клиента при запуске. Например, на серверах Linux хорошим решением будет создание службы, которая выполняет клиент с определенной конфигурацией от имени пользователя с ограниченными правами и перезапускается автоматически. - -#### Обновление клиента {#updating-client} - -Вам необходимо постоянно обновлять клиентское программное обеспечение последними исправлениями безопасности, функциями и [EIP](/eips/). Перед [хард-форками](/history/) обязательно нужно убедиться, что вы используете правильную версию клиента. - -Каждая реализация клиента имеет человекочитаемую строку версии, используемой в протоколе одноранговой связи, но она также доступна из командной строки. Эта строка версии позволяет пользователям убедиться, что они используют правильную версию, и использовать обозреватели блоков и другие аналитические инструменты, задействованные в количественной оценке распространения определенных клиентов в сети. Более подробную информацию о строках версии можно получить в документации к конкретному клиенту. - -#### Запуск дополнительных служб {#running-additional-services} - -Запуск собственного узла дает возможность вашим службам использовать прямой доступ к клиентскому RPC сети Ethereum. Такие службы построены поверх Ethereum, примером чего могут быть [решения слоя 2](/developers/docs/scaling/#layer-2-scaling), [консенсус-клиенты](/developers/docs/nodes-and-clients/#consensus-clients) и другие части инфраструктуры Ethereum. - -#### Наблюдение за узлом {#monitoring-the-node} - -«Чтобы правильно организовать наблюдение за узлом, представьте сбор метрик. Клиенты предоставляют конечные точки с метриками, и вы можете получить сравнительные данные о вашем узле. Используйте инструменты, подобные [InfluxDB](https://www.influxdata.com/get-influxdb/) или [Prometheus](https://prometheus.io/), для создания баз данных, которые вы можете превратить в визуализации и графики через такие инструменты, как [Grafana](https://grafana.com/). Вы можете использовать это программное обеспечение и другие панели Graphana в различных конфигурациях, чтобы визуализировать свой узел и всю сеть в целом. При отслеживании всегда обращайте внимание на производительность вашей системы. Во время первоначальной синхронизации узла клиентская программа может оказывать очень большую нагрузку на процессор и оперативную память. В дополнение к Graphana вы можете использовать инструменты, которая предлагает ваша операционная система, подобные `htop` или `uptime`. - -## Дополнительные ресурсы {#further-reading} - -- [Анализ требований к оборудованию, чтобы стать полностью проверенным узлом Ethereum](https://medium.com/coinmonks/analyzing-the-hardware-requirements-to-be-an-ethereum-full-validated-node-dc064f167902) — _Альберт Палау, 24 сентября 2018 г._ -- [Запуск полных узлов Ethereum: руководство для сомневающихся](https://medium.com/@JustinMLeroux/running-ethereum-full-nodes-a-guide-for-the-barely-motivated-a8a13e7a0d31) — _Джастин Леру, 7 ноября 2019 г._ -- [Запуск узла Hyperledger Besu в основной сети Ethereum: преимущества, требования и настройка](https://pegasys.tech/running-a-hyperledger-besu-node-on-the-ethereum-mainnet-benefits-requirements-and-setup/) — _Фелипе Фараджи, 7 мая 2020 г._ -- [Развертывание клиента Nethermind Ethereum со стеком мониторинга](https://medium.com/nethermind-eth/deploying-nethermind-ethereum-client-with-monitoring-stack-55ce1622edbd) _— Nethermind.eth, 8 июля 2020 г._ - -## Похожие темы {#related-topics} - -- [Узлы и клиенты](/developers/docs/nodes-and-clients/) -- [Блоки](/developers/docs/blocks/) -- [Сети](/developers/docs/networks/) diff --git a/src/content/translations/ru/nft/index.md b/src/content/translations/ru/nft/index.md deleted file mode 100644 index e819e24af7f..00000000000 --- a/src/content/translations/ru/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Невзаимозаменяемые токены (NFT) -description: Обзор NFT на Ethereum -lang: ru -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: Логотип ETH отображается в виде голограммы. -summaryPoint1: Способ представить что-либо уникальное как актив на основе Ethereum. -summaryPoint2: С NFT у создателей контента появляется больше возможностей, чем когда-либо прежде. -summaryPoint3: Основано на умных контрактах блокчейна Ethereum. ---- - -## Что такое NFT? {#what-are-nfts} - -NFT — это токены, каждый экземпляр которых уникален. Все NFT обладают разными характеристиками (т. е. не взаимозаменяемы) и являются доказуемо дефицитными. В этом и заключается отличие от других токенов, таких как ERC-20, которые идентичны друг другу и обладают одинаковыми характеристиками (т. е. взаимозаменяемы). Вам неважно, какая конкретно долларовая купюра находится в вашем кошельке, потому что они все идентичны и имеют одинаковую ценность. Однако вам _важно_, каким NFT вы владеете, потому что все они обладают разными характеристиками, отличающими их друг от друга (т. е. они невзаимозаменяемы). - -Уникальность каждого NFT делает возможной токенизацию произведений искусства, коллекционных вещей и даже недвижимости: один конкретный уникальный NFT может представлять собой какой-то конкретный реальный или цифровой объект. Право собственности на актив защищено блокчейном Ethereum — никто не может изменить запись о праве собственности или скопировать и вставить новый NFT. - - - -## Интернет активов {#internet-of-assets} - -NFT и Ethereum решают некоторые проблемы, характерные для современной интернет-индустрии. По мере того как все становится более цифровым, появляется необходимость репликации свойств физических предметов, таких как редкость, уникальность и доказательство права собственности. Таким образом, чтобы это не котролировала никакая централизованная организация. Например, с помощью NFT можно владеть музыкальным файлом mp3 без привязки к какому-то приложению, принадлежащему конкретной компании. Или можно владеть именем в какой-то социальной сети, которое можно продать или обменять, но которое не может быть самовольно отнято этой социальной сетью. - -Сравним Интернет NFT и современный Интернет, которым сегодня пользуется большинство из нас... - -### Сравнение {#nft-comparison} - -| Интернет NFT | Современный Интернет | -| --------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Вы владеете своими активами! Только вы можете продать или обменять их. | Вы арендуете актив у какой-то организации. | -| NFT уникальны в цифровой форме, не существует двух файлов NFT, которые были бы одинаковыми. | Копия объекта часто не отличима от оригинала. | -| Информация о праве собственности на NFT хранится непосредственно на блокчейне, проверить ее может каждый. | Записи о владении цифровыми объектами хранятся на серверах, контролируемых учреждениями: вы доверяете предоставляемой ими информации. | -| NFT — смарт-контракты в сети Ethereum. Это значит, что они с легкостью могут быть использованы другими смарт-контрактами и приложениями в Ethereum! | Компаниям, работающим с цифровыми объектами, необходима их собственная «защищенная» инфраструктура. | -| Создатели контента могут продавать свои работы где угодно и иметь доступ к глобальному рынку. | Создатели полагаются на инфраструктуру и дистрибьютерскую деятельность тех платформ, услугами которых они пользуются. Зачастую они попадают под влияние условий использования и ограничений в связи с географическим положением. | -| Создатели NFT могут сохранить право собственности на свою работу и запрограммировать получение роялти непосредственно в смарт-контракте NFT. | Платформы, такие как музыкальные потоковые сервисы, сохраняют большую часть прибыли от продаж. | - -## Как работают NFT? {#how-nfts-work} - -Как и другие токены в Ethereum, NFT выпускаются смарт-контрактами. Такой смарт-контракт соответствует одному из нескольких стандартов NFT (чаще всего — ERC-721 или ERC-1155), который и определяет его набор функций. Контракт может создавать («минтить») NFT и присваивать их конкретному владельцу. Владение определяется в контракте через соответствие конкретного NFT и конкретного адреса. Отдельный NFT имеет свой идентификатор и, как правило, связанные с ним метаданные, которые и делают конкретный токен уникальным. - -Когда кто-то создает (или «минтит») NFT, он по сути запускает функцию в смарт-контракте, которая связывает конкретный NFT с его адресом. Эта информация хранится в памяти смарт-контракта, который находится на блокчейне. Создатель контракта может добавить к нему дополнительную логику, например ограничить максимальное количество токенов или зафиксировать роялти, которые он должен получать при каждой передаче токена. - -## Для чего используются NFT? {#nft-use-cases} - -NFT используются для множества разных вещей: - -- Подтверждение вашего участия в мероприятии -- Сертификация прохождения курса -- Предметы, которыми можно владеть в играх -- Цифровое искусство -- Токенизация активов из реального мира -- Удостоверение личности онлайн -- Получение доступа к контенту -- Оформление билетов -- Имена децентрализованных интернет-доменов -- Залог в DeFi - -Предположим, вы художник, который хочет поделиться своей работой с помощью NFT, не теряя контроль и не жертвуя своей прибылью из-за посредников. Вы можете создать контракт, указать количество NFT, их характеристики и ссылку на конкретное произведение искусства. Как художник вы сможете запрограммировать в смарт-контракте роялти, которые будете получать (например, перевод 5 % от цены продажи владельцу контракта при каждой передаче NFT). Кроме того, вы всегда сможете доказать, что создали определенные NFT, владея адресом, с которого размещен контракт. Покупатели смогут легко доказать, что владеют подлинным NFT из вашей коллекции, так как адрес их кошелька связан с токеном в вашем смарт-контракте. Они смогут использовать его по всей экосистеме Ethereum и быть уверенными в его подлинности. - -Или рассмотрим билет на спортивное мероприятие. Как организатор мероприятия может выбрать, сколько билетов продать, так же и создатель NFT может решить, сколько будет копий. Иногда это точные копии, например 5000 обычных входных билетов. Иногда создают несколько очень похожих, но немного отличающихся друг от друга билетов, например с назначенным местом. Они могут быть куплены и проданы напрямую без платы продавцам билетов, а покупатель всегда будет иметь подтверждение подлинности билета, так как сможет проверить адрес контракта. - -На Ethereum.org NFT используются для демонстрации того, что люди внесли свой вклад в наш репозиторий GitHub или посещали созвоны. У нас даже есть собственное доменное имя в виде NFT. Внеся свой вклад в работу ethereum.org, вы можете запросить NFT POAP. Некоторые криптографические мероприятия использовали POAP в качестве билетов. [Подробнее об участии](/contributing/#poap). - -![POAP ethereum.org](./poap.png) - -Этот сайт также имеет альтернативное доменное имя, основанное на NFT: **ethereum.eth**. Наш `.org` адрес централизованно управляется провайдером системы доменных имен (DNS), тогда как адрес ethereum`.eth ` зарегистрирован на платформе Ethereum с помощью Ethereum Name Service (ENS). Он находится в нашей собственности и управляется нами. [Наши записи ENS](https://app.ens.domains/name/ethereum.eth) - -[Подробнее об ENS](https://app.ens.domains) - - - -### Безопасность NFT {#nft-security} - -Безопасность Ethereum основана на доказательстве владения. Система подразумевает экономическое сдерживание злонамеренных действий, что обеспечивает стойкость Ethereum к подделкам. Именно это делает возможными NFT. Как только блок, содержащий вашу NFT-транзакцию, будет завершен, его изменение потребует от злоумышленника миллионов ETH. Любой, кто использует программное обеспечение Ethereum, сразу же сможет обнаружить нечестную подделку NFT, а злоумышленник будет наказан экономически и удален. - -Проблемы безопасности, связанные с NFT, чаще всего связаны с фишинговыми мошенничествами, уязвимостями смарт-контрактов и ошибками пользователей (например, непреднамеренным раскрытием приватных ключей), что делает хорошую защиту кошелька очень важной для владельцев NFT. - - - Подробнее о безопасности - - -## Дополнительная литература {#further-reading} - -- [Руководство по NFT для начинающих](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) _Линда Се, январь 2020 г._ -- [Трекер EtherscanNFT](https://etherscan.io/nft-top-contracts) -- [Стандарт токенов ERC-721](/developers/docs/standards/tokens/erc-721/) -- [Стандарт токенов ERC-1155](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/ru/refi/index.md b/src/content/translations/ru/refi/index.md deleted file mode 100644 index fb1e01ea153..00000000000 --- a/src/content/translations/ru/refi/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: Регенеративные финансы (ReFi) -description: Обзор ReFi и текущие варианты использования. -lang: ru -template: use-cases -emoji: ":recycle:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Альтернативная экономическая система, построенная на регенеративных принципах -summaryPoint2: Попытка использовать Ethereum, чтобы решить координационные кризисы на глобальном уровне, такие как изменение климата -summaryPoint3: Инструмент который значительно масштабирует важные для экологии активы, включая проверенные углеродные кредиты ---- - -## Что такое ReFi? {#what-is-refi} - -**Регенеративные финансы (ReFi)** — это набор инструментов и идей, построенных поверх блокчейнов, которые нацелены на построение регенеративных экономик, а не добывающих или эксплуататорских. В конечном итоге добывающие системы истощают имеющиеся ресурсы и разрушаются; без регенеративных механизмов им не хватает устойчивости. ReFi работает исходя из предположения, что создание денежной стоимости должно быть отделено от нерационального извлечения ресурсов из нашей планеты и сообществ. - -Вместо этого ReFi стремится решить экологические, коммунальные или социальные проблемы путем создания регенеративных циклов. Эти системы создают ценность для участников, одновременно принося пользу экосистемам и общинам. - -Одним из основополагающих принципов ReFi является концепция регенеративной экономики, впервые предложенная Джоном Фуллертоном из [Capital Institute](https://capitalinstitute.org). Он предложил восемь взаимосвязанных принципов, лежащих в основе системного здоровья: - -![Восемь взаимосвязанных принципов](../../assets/use-cases/refi-regenerative-economy-diagram.png) - -Проекты ReFi воплощают эти принципы в жизнь, используя [умные контракты](/developers/docs/smart-contracts/) и приложения [децентрализованного финансирования (DeFi)](/defi/) для стимулирования регенеративного поведения, например восстановления деградировавших экосистем, и содействования крупномасштабному сотрудничеству по таким глобальным вопросам, как изменение климата и утрата биоразнообразия. - -ReFi также пересекается с движением [децентрализованной науки (DeSci)](/desci/), которое использует Ethereum в качестве платформы для финансирования, создания, обзора, кредитования, хранения и распространения научных знаний. Инструменты DeSci могут стать полезными для разработки поддающихся проверке стандартов и методов осуществления и мониторинга регенеративной деятельности, такой как посадка деревьев, удаление пластика из океана или восстановление деградировавшей экосистемы. - -## Токенизация углеродных кредитов {#tokenization-of-carbon-credits} - -**[Добровольный углеродный рынок (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** — это механизм финансирования проектов, которые оказывают проверенное положительное воздействие на выбросы углерода: либо сокращая текущие выбросы, либо удаляя парниковые газы, уже выбрасываемые из атмосферы. После проверки эти проекты получают активы, именуемые «углеродными кредитами», которые они могут продавать отдельным лицам и организациям, желающим поддержать деятельность в области климата. - -В дополнение к VCM существует также несколько санкционированных правительствами углеродных рынков («рынки соблюдения»), цель которых заключается в установлении цены на углерод с помощью законов или постановлений в рамках конкретной юрисдикции (к примеру, страны или региона), контролирующих выдачу разрешений на распространение. Рынки соблюдения стимулируют загрязнителей в пределах своей юрисдикции к сокращению выбросов, однако они не способны удалять парниковые газы, которые уже были выброшены. - -Несмотря на свою эволюцию в последние десятилетия, VCM продолжает страдать от целого ряда проблем: - -1. Крайне фрагментированная ликвидность -2. Непрозрачные механизмы совершения сделок -3. Высокие комиссии -4. Очень низкая скорость торговли -5. Недостаток масштабируемости - -Переход VCM на новый **цифровой углеродный рынок (DCM)** на основе блокчейна может быть возможностью для обновления существующей технологии для проверки, осуществления и потребления углеродных кредитов. Блокчейн позволяет публично проверять данные, открывает доступ для широкого круга пользователей и допускает больше ликвидности. - -Проекты ReFi используют блокчейн-технологии, чтобы смягчить многие проблемы традиционного рынка: - -- **Ликвидность сконцентрирована в небольшом количестве ликвидных пулов**, которые могут свободно использоваться для торговли кем угодно. Крупные организации, а также отдельные пользователи могут использовать эти пулы без ручного поиска продавцов и покупателей, платы за участие и предварительной регистрации. -- **Все транзакции регистрируются на публичных блокчейнах**. Путь, который каждый углеродный кредит проходит в связи с торговой деятельностью, навсегда становится отслеживаемым, как только он станет доступен в DCM. -- **Скорость транзакций почти мгновенна**. Обеспечение больших объемов углеродных кредитов через унаследованные рынки может занять дни или недели, но DCM позволяет добиться той же цели за секунды. -- **Торговая деятельность происходит без посредников**, которые взимают высокие сборы. По данным одной аналитической фирмы цифровые углеродные кредиты представляют [улучшение затрат по сравнению с эквивалентными традиционными кредитами на 62 %](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne). -- **DCM масштабируемы** и могут удовлетворить требования как физических лиц, так и многонациональных корпораций. - -### Ключевые компоненты DCM {#key-components-dcm} - -Нынешний ландшафт DCM состоит из четырех основных компонентов: - -1. Такие реестры, как [Verra](https://verra.org/project/vcs-program/registry-system/) и [Gold Standard](https://www.goldstandard.org/), гарантируют надежность проектов по созданию углеродных кредитов. Они также используют базы данных, в которых содержатся цифровые углеродные кредиты, которые могут передаваться или использоваться (списываться). - -Существует новая волна инновационных проектов, строящихся на блокчейнах, которые пытаются пошатнуть позиции лидеров в этом секторе. - -2. Так называемые «углеродные мосты», или токенизаторы, предлагающие технологии для представления или передачи углеродных кредитов из традиционных реестров в DCM. Примечательными примерами являются [Toucan Protocol](https://toucan.earth/), [C3](https://c3.app/), и [Moss.Earth](https://moss.earth/). -3. Встроенные сервисы предлагают конечным пользователям кредиты на предотвращение и/или удаление выбросов углерода, чтобы они могли претендовать на экологическую выгоду кредита и делиться своей поддержкой деятельности по борьбе с изменением климата со всем миром. - -Некоторые из них, такие как [Klima Infinity](https://www.klimadao.finance/infinity) и [Senken](https://senken.io/), предлагают широкий спектр проектов, разработанных третьими сторонами и выпущенных в соответствии с установленными стандартами, такими как Verra. Другие, такие как [Nori](https://nori.com/), предлагают только конкретные проекты, разработанные в соответствии с их собственным стандартом углеродных кредитов, которые они выпускают и для которых они имеют свой собственный выделенный рынок. - -4. Базовые рельсы и инфраструктура, которые облегчают масштабирование воздействия и эффективности всей цепочки поставок рынка углерода. [KlimaDAO](http://klimadao.finance/) обеспечивает ликвидность как общественное благо (позволяя каждому покупать или продавать углеродные кредиты по прозрачной цене), стимулирует увеличение пропускной способности углеродных рынков и списывание с наградами и обеспечивает удобный в использовании интероперабельный инструментарий для доступа к данным о широком спектре токенизированных углеродных кредитов, а также их приобретения и списывания. - -## ReFi за пределами углеродных рынков {#refi-beyond} - -Хотя в настоящее время большое внимание уделяется углеродным рынкам в целом и переходу VCM (добровольных углеродных рынков) на DCM (цифровые углеродные рынки) в частности, понятие ReFi не сводится к углероду. Помимо углеродных кредитов могут быть разработаны и официально оформлены другие экологические активы, что будет означать, что другие негативные внешние факторы также могут быть оценены в базовых уровнях будущих экономических систем. Более того, регенеративный аспект этой экономической модели может быть применен и к другим областям, таким как финансирование общественных благ с помощью квадратичных платформ финансирования, включая [Gitcoin](https://gitcoin.co/). Организации, построенные на идее открытого участия и справедливого распределения ресурсов, дают каждому возможность направлять деньги на проекты разработки программного обеспечения с открытым исходными кодами, а также на образовательные, экологические и общинные проекты. - -Смещая направление капитала от подхода, основанного на добыче, к регенеративному потоку, проектам и компаниям, которые предоставляют социальные, экологические или коммунальные блага (и могут не получить финансирования при традиционной финансовой модели), можно начать действовать и создавать положительный эффект для общества гораздо быстрее и проще. Переход к этой модели финансирования также открывает двери для гораздо более инклюзивных экономических систем, в которых представители всех демографических групп могут стать активными участниками, а не просто пассивными наблюдателями. ReFi предлагает видение Ethereum как механизма для координации действий по экзистенциальным вызовам, стоящим перед человечеством и всей жизнью на нашей планете, как базового слоя новой экономической парадигмы, создающей фундамент для более инклюзивного и устойчивого будущего на века вперед. - -## Дополнительно о ReFi - -- [Обзор углеродных валют высокого уровня и их места в экономике](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) -- [Министерство будущего: роман, описывающий роль валюты, основанной на углероде, в борьбе с изменением климата](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) -- [Подробный доклад от Taskforce по расширению добровольных углеродных рынков](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) -- [Кевин Овоцки и Эван Миядзоно в Глоссарии CoinMarketCap по ReFi](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/ru/roadmap/beacon-chain/index.md b/src/content/translations/ru/roadmap/beacon-chain/index.md deleted file mode 100644 index b9e579416f4..00000000000 --- a/src/content/translations/ru/roadmap/beacon-chain/index.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: Beacon Chain -description: Узнайте о сети Beacon — обновлении, которое ввело Ethereum с доказательством владения. -lang: ru -template: upgrade -image: ../../../../../assets/upgrades/core.png -summaryPoint1: Сеть Beacon ввела в экосистему Ethereum доказательство владения. -summaryPoint2: Она была объединена с первоначальной сетью Ethereum, основанной на доказательстве работы, в сентябре 2022 года. -summaryPoint3: Сеть Beacon ввела логику консенсуса и сплетенный протокол блоков, который теперь защищает Ethereum. ---- - - - Сеть Beacon была введена 1 декабря 2020 года и формализовала доказательство владения в качестве консенсусного механизма Ethereum с обновлением «Слияние» 15 сентября 2022 года. - - -## Что такое сеть Beacon? {#what-is-the-beacon-chain} - -Сеть Beacon — это название оригинального блокчейна с доказательством владения, который был запущен в 2020 году. Он был создан для того, чтобы убедиться, что логика консенсуса с доказательством владения была разумной и устойчивой, прежде чем он использовать ее в основной сети Ethereum. Поэтому он работал параллельно с оригинальной Ethereum на основе доказательства работы. Сеть Beacon была цепью «пустых» блоков, но отказ от доказательства работы и переход на доказательство владения в Ethereum требовали, чтобы сеть Beacon научилась принимать данные транзакций от клиентов-исполнителей, группировать их в блоки, а затем организовывать их в блокчейн, используя механизм консенсуса на основе доказательства владения. В то же время оригинальные клиенты Ethereum отключили логику майнинга, предложения блоков и консенсуса, передав все это сети Beacon. Это событие получило название [Слияние](/roadmap/merge/). После Слияния двух блокчейнов более не было. Остался только один блокчейн Ethereum с доказательством владения, который теперь требует двух разных клиентов на узел. Сеть Beacon сейчас находится на уровне консенсуса — одноранговой сети консенсусных клиентов, которая управляет сплетенными блоками и логикой консенсуса, в то время как первоначальные клиенты образуют уровень исполнения, который отвечает за сплетение и выполнение транзакций, а также управление состоянием Ethereum. Два слоя могут взаимодействовать друг с другом с помощью Engine API. - -## Что делает сеть Beacon? {#what-does-the-beacon-chain-do} - -Сеть Beacon — это имя, данное переписи аккаунтов, в которой обеспечивалась и координировалась работа сети [дольщиков](/staking/) Ethereum до того, как эти дольщики начали проверять настоящие блоки Ethereum. Она не обрабатывает транзакции и взаимодействия умных контрактов, поскольку это делается на уровне исполнения. Сеть Beacon отвечает за такие вещи, как обработка блоков и аттестаций, запуск алгоритма выбора ответвления, управление вознаграждениями и штрафами. Подробнее на нашей [странице об архитектуре узлов](/developers/docs/nodes-and-clients/node-architecture/#node-comparison). - -## Влияние сети Beacon {#beacon-chain-features} - -### Введение стейкинга {#introducing-staking} - -Сеть Beacon ввела [доказательство владения](/developers/docs/consensus-mechanisms/pos/) в Ethereum. Это обеспечивает безопасность Ethereum и дает валидаторам возможность зарабатывать ЕТН в процессе. На практике стейкинг представляет собой ставку ETH для того, чтобы активировать ПО валидатора. В роли дольщика вы запускаете программное обеспечение, которое создает и проверяет новые блоки в сети. - -Стейкинг служит той же цели, что и [майнинг](/developers/docs/mining/) в прошлом, но имеет много отличий. Майнинг требовал значительных начальных расходов в виде мощного оборудования и энергопотребления, что отражалось в нехватке масштабирования и способствовало централизации. Майнинг также не сопровождался каким-либо требованием о блокировании активов в качестве залога, что ограничивало способность протокола наказывать злоумышленников после атаки. - -Переход к доказательству владения сделал Ethereum значительно более безопасным и децентрализованным по сравнению с доказательством работы. Чем больше людей принимают участие в работе сети, тем более децентрализованной и защищенной от атак она становится. - -Использование доказательства владения как механизма консенсуса — это базовый компонент для [безопасного, экологически чистого и масштабируемого Ethereum, который мы сейчас имеем](/roadmap/vision/). - - - Если вы хотите стать валидатором и принять участие в защите Ethereum, узнайте больше о стейкинге. - - -### Настройка шардинга {#setting-up-for-sharding} - -После слияния сети Beacon с основной сетью сообщество Ethereum начало рассматривать масштабирование сети. - -Доказательство владения имеет преимущество, заключающееся в том, что в любой конкретный момент времени существует реестр утвержденных производителей блоков, каждый из которых имеет вложенные ЕТН. Этот реестр закладывает основу для возможности «разделять и властвовать», одновременно надежно распределяя конкретные сетевые обязанности. - -Эти обязанности контрастируют с принципом доказательства работы, согласно которому майнеры не имеют никаких обязательств перед сетью и могут прекратить добычу и полностью отключить программное обеспечение своих узлов без каких-либо последствий. Кроме того, не существует реестра известных строителей блоков, как и надежного способа безопасного разделения сетевых обязанностей. - -[Подробнее о шардинге](/roadmap/danksharding/) - -## Взаимосвязь между обновлениями {#relationship-between-upgrades} - -Все обновления Ethereum в некоторой степени взаимосвязаны. Поэтому давайте обобщим, как сеть Beacon влияет на другие обновления. - -### Сеть Beacon и слияние {#merge-and-beacon-chain} - -Первоначально сеть Beacon существовала отдельно от основной сети Ethereum, но они были слиты воедино в 2022 году. - - - Слияние - - -### Осколки и сеть Beacon {#shards-and-beacon-chain} - -Шардинг может безопасно войти в экосистему Ethereum только при наличии механизма консенсуса с доказательством владения. Сеть Beacon ввела стейкинг, который «слился» с основной сетью, прокладывая путь к шардингу, чтобы помочь дальнейшему масштабированию Ethereum. - - - Цепочки-осколки - - -## Дополнительные ресурсы - -- [Подробнее о будущих обновлениях Ethereum](/roadmap/vision) -- [Подробнее об архитектуре узлов](/developers/docs/nodes-and-clients/node-architecture) -- [Подробнее о доказательстве владения](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/ru/roadmap/future-proofing/index.md b/src/content/translations/ru/roadmap/future-proofing/index.md deleted file mode 100644 index d502fcd50db..00000000000 --- a/src/content/translations/ru/roadmap/future-proofing/index.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: Ethereum, готовый к будущему -description: Эти обновления закрепляют положение Ethereum в качестве устойчивого и децентрализованного базового блокчейна для будущего независимо от того, каким оно будет. -lang: ru -image: ../../../../../assets/roadmap/roadmap-future.png -alt: "Дорожная карта Ethereum" -template: roadmap ---- - -Некоторые элементы дорожной карты необязательно направлены на масштабирование и повышение безопасности Ethereum в краткосрочной перспективе, вместо этого они нацелены на повышение стабильности и надежности Ethereum в далеком будущем. - -## Квантовая устойчивость {#quantum-resistance} - -Когда квантовые компьютеры станут реальностью, некоторые криптографические средства, обеспечивающие безопасность Ethereum сегодня, будут скомпрометированы. Несмотря на то, что сегодняшнее состояние развития квантовых компьютеров отстает примерно на декаду от того, которое будет представлять опасность для современной криптографии, Ethereum создавался, чтобы быть безопасным на протяжении сотен лет. А это значит, что необходимо сделать [Ethereum квантово-устойчивым](https://consensys.net/blog/developers/how-will-quantum-supremacy-affect-blockchain/) как можно скорее. - -Проблема, с которой сталкиваются разработчики Ethereum, заключается в том, что текущий протокол доказательства участия опирается на очень эффективную схему подписи, известную как BLS, для агрегирования голосов за действительные блоки. Эта схема подписи нарушается квантовыми компьютерами, но квантово-устойчивые альтернативы не столь эффективны. - -[Схемы обязательств KZG](/roadmap/danksharding/#what-is-kzg) используются в нескольких местах Ethereum для создания криптографических секретов, которые известны как квантово-уязвимые. В настоящее время, это обходится с помощью «настроек с доверием», где многие пользователи создают случайность, которая не может быть обратно спроектирована квантовым компьютером. Однако идеальным решением было бы просто включение квантово-безопасной криптографии. Существуют два ведущих подхода, которые могли бы стать эффективной заменой схемы BLS: [подписи на основе STARK](https://hackmd.io/@vbuterin/stark_aggregation) и [подписи на основе решетки](https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-lattice-encryption-326ac66e3175). Пока они находятся на стадии изучения и подготовки прототипов. - - Подробнее о KZG и настройках с доверием - -## Более простой и эффективный Ethereum {#simpler-more-efficient-ethereum} - -Сложность создает возможности для ошибок и уязвимостей, которые могут быть использованы злоумышленниками. Таким образом, частью дорожной карты является упрощение Ethereum и удаление кода, который остался в системе после различных обновлений, но больше не нужен или теперь может быть улучшен. Разработчикам легче поддерживать базу кода и рассуждать о ней, если она компактнее и проще. - -Существует несколько обновлений, которые будут воплощены в [виртуальной машине Ethereum (EVM)](/developers/docs/evm) для упрощения и повышения эффективности. Они включают в себя [удаление машинного кода SELFDESTRUCT](https://hackmd.io/@vbuterin/selfdestruct) — редко используемой команды, которая больше не нужна и в некоторых обстоятельствах может быть опасной для использования, особенно в сочетании с другими будущими обновлениями для модели хранения Ethereum. Клиенты Ethereum также до сих пор поддерживают некоторые старые типы транзакций, которые теперь могут быть полностью удалены. Способ вычислений, связанных с газом, тоже может быть улучшен. Могут быть добавлены более эффективные методы арифметики, лежащие в основе некоторых криптографических операций. - -Аналогично: есть обновления, которые могут быть сделаны для других частей современных клиентов Ethereum. Одни из примеров — текущие клиенты выполнения и консенсуса используют разный тип сжатия данных. Будет гораздо проще и интуитивно понятнее обмениваться данными между клиентами, если схема сжатия будет единой по всей сети. - -## Текущий прогресс {#current-progress} - -Большинство обновлений, необходимых для будущей защиты Ethereum, все еще находятся в стадии исследования, До реализации может пройти еще несколько лет. Такие обновления, как удаление SELF-DESTRUCT и гармонизация схемы сжатия, используемой в клиентах выполнения и консенсуса, скорее всего, появятся раньше, чем квантово-устойчивая криптография. - -**Дополнительная литература** - -- [Газ](/developers/docs/gas) -- [EVM](/developers/docs/evm) -- [Структуры данных](/developers/docs/data-structures-and-encoding) diff --git a/src/content/translations/ru/roadmap/index.md b/src/content/translations/ru/roadmap/index.md deleted file mode 100644 index 1cefd55e887..00000000000 --- a/src/content/translations/ru/roadmap/index.md +++ /dev/null @@ -1,117 +0,0 @@ ---- -title: Дорожная карта Ethereum -description: Путь к большей масштабируемости, безопасности и экологичности Ethereum. -lang: ru -template: roadmap -image: ../../../../assets/roadmap/roadmap-main.png -alt: "Дорожная карта Ethereum" -summaryPoints: -buttons: - - label: Будущие обновления - toId: what-changes-are-coming - - label: Прошлые обновления - to: /history/ - variant: план ---- - -Ethereum — это мощная платформа для глобальной координации, и она продолжает совершенствоваться. Благодаря амбициозному набору обновлений Ethereum сможет улучшиться до полностью масштабируемой и максимально устойчивой платформы. Все эти обновления являются частью Дорожной карты Ethereum. - -**Чтобы узнать об уже реализованных улучшениях Ethereum, посетите раздел [История](/history/)** - -## Что меняется для Ethereum? {#what-changes-are-coming} - -Дорожная карта Ethereum описывает конкретные улучшения, которые будут внесены в протокол в будущем. В целом реализация Дорожной карты создаст для пользователей Ethereum такие преимущества: - - - - - - - - -## Для чего нужна Дорожная карта Ethereum? {#why-does-ethereum-need-a-roadmap} - -Ethereum обновляется регулярно, что приводит к улучшению масштабируемости, безопасности или устойчивости. Адаптация идей, возникающих в результате исследований и разработок, — это одно из основных достоинств Ethereum. Адаптивность дает Ethereum возможность гибко справляться с возникающими сложностями, а также идти в ногу с самыми современными техническими разработками. - - - -В большинстве своем, дорожная карта является результатом многолетней работы исследователей и разработчиков, поскольку этот протокол очень зависит от технических моментов, но в целом, внести свой вклад может любой мотивированный человек. Жизненный цикл идей обычно начинается с дискуссии на одном из форумов, таких как [ethresear.ch](https://ethresear.ch/), [Ethereum magicians](https://www.figma.com/exit?url=https%3A%2F%2Fethereum-magicians.org%2F) или на Discord сервере Eth R&D. Они могут появляться как ответ на выявленные уязвимые места, или как предложение от одной из компаний, работающей на уровне приложений (таких как децентрализованные приложения или биржи), или в результате понимания ограничений для конечных пользователей (таких как стоимость или скорость транзакций). Когда идеи готовы, они могут быть формализованы в виде Предложений по улучшению Ethereum (EIP). Все это происходит публично, чтобы каждый представитель сообщества мог в любой момент высказать свое мнение. - -[Подробнее об управлении Ethereum](/governance/) - - - - -

Что такое ETH2?

- -

Термин «ETH2» широко употреблялся для описания будущего Ethereum до перехода на proof-of-stake (доказательство доли владения), но был отменен в пользу более точной терминологии. Изначально он использовался для различения сети Ethereum до перехода на proof-of-stake и после, а еще иногда для обозначения различных клиентов Ethereum (клиенты-исполнители иногда назывались ETH1, а консенсус-клиенты — ETH2).

- -
- -## Будет ли Дорожная карта Ethereum меняться со временем? {#will-ethereums-roadmap-change-over-time} - -Да, практически наверняка. Дорожная карта — это текущий план улучшения Ethereum, покрывающий как ближайшие, так и далекие перспективы. Мы предполагаем, что дорожная карта будет меняться с появлением новой информации и доступных технологий. - -Дорожная карта — это ряд намерений, направленных на улучшение Ethereum, это наилучший план от ключевых исследователей и разработчиков о наиболее оптимальном пути развития Ethereum. - -## Когда будет завершена работа над Дорожной картой? {#when-will-the-roadmap-be-finished} - -Некоторые запланированные улучшения будут внедрены в течение ближайших 6 месяцев (например, вывод средств со стейкинга), в то время как другие, менее приоритетные, вероятнее всего, будут реализованы не раньше, чем в течение следующих 5–10 лет (например, квантовая устойчивость). Сложно предсказать точные сроки выхода каждого обновления, так как многие пункты Дорожной карты разрабатываются параллельно и с разной скоростью. Срочность внедрения изменений также может меняться со временем в зависимости от внешних факторов (например, резкий скачок в производительности и доступности квантовых компьютеров может сделать квантово-устойчивую криптографию более актуальной). - -Один из способов понять развитие Ethereum — это проведение аналогии с биологической эволюцией. Сеть, способная адаптироваться к новым вызовам и поддерживать свою работоспособность, имеет больше шансов на успех, чем та, которая сопротивляется изменениям, хотя по мере роста производительности, масштабируемости и безопасности сети ей потребуется все меньше изменений в протоколе. - -## Нужно ли мне что-нибудь делать после выхода обновления? {#do-i-have-to-do-anything-when-there-is-an-upgrade} - -Обновления зачастую не затрагивают конечных пользователей, а лишь предоставляют им больше возможностей и повышают безопасность протокола, иногда добавляя новые способы взаимодействия с Ethereum. От пользователей не требуется активного участия в процессе обновления, и они ничего не должны предпринимать дополнительно, чтобы защитить свои средства. Операторы узлов должны обновить свои клиенты и подготовиться к апгрейду. Некоторые обновления могут затронуть разработчиков приложений. Например, обновления, касающиеся срока хранения истории, требуют от разработчиков приложений получать данные об истории с новых источников. - -## Что насчёт Verge, Splurge и так далее? {#what-about-the-verge-splurge-etc} - -[Виталик Бутерин предложил видение дорожной карты Ethereum](https://twitter.com/VitalikButerin/status/1588669782471368704), которая была организована в несколько категорий, связанных влиянием на архитектуру Ethereum. Она включает в себя: - -- The Merge: обновления связанные с переходом с proof-of-work (доказательства работы) на proof-of-stake (доказательство доли владения) -- The Surge: обновления связанные с масштабированием роллапов и шардингом данных -- The Scourge: обновления связанные с устойчивостью к цензуре, децентрализацией и рисками для протокола, исходящими от MEV -- The Verge: обновления связанные с упрощением верификации блоков -- The Purge: обновления связанные с уменьшением расходов на вычисления для узлов, и упрощением протокола -- The Splurge: остальные обновления, которые не входят в вышеописанные категории. - -Мы приняли решение не использовать сложную терминологию, потому что мы хотим создать простую модель ориентированную на пользователей. Поскольку мы используем язык, понятный пользователям, мы и далее поддерживаем версию названий, предложенную Виталиком. - -## Что насчет шардинга? {#what-about-sharding} - -Шардинг — это разделение блокчейна Ethereum на подгруппы, где валидаторы ответственны только за фрагменты общего объема данных. Это изначальное предложение по масштабированию Ethereum. Тем не менее, роллапы 2-го уровня были разработаны гораздо быстрее, чем ожидалось, и уже привнесли многое в контекст масштабирования, и привнесут ещё больше после реализации плана Прото-Данкшардинга. То есть, «шард чейны» больше не понадобятся и будут исключены из дорожной карты. - -## Ищете определенные технические обновления? {#looking-for-specific-technical-upgrades} - -- Благодаря [данкшардингу](/roadmap/danksharding) свертки второго уровня становятся намного дешевле для пользователей посредством добавления блобов (объектов двоичной компоновки) данных в блоки Ethereum. -- [Вывод из стейкинга](/staking/withdrawals). Обновление Shanghai/Capella позволило делать вывод из стейкинга на Ethereum, что дало пользователям возможность разблокировать свои ETH в стейкинге. -- [Финализация в одном слоте](/roadmap/single-slot-finality). Вместо ожидания 15 минут, блоки могут быть предложены и финализированы в одном слоте. Этот вариант удобнее для приложений, и его сложнее атаковать. -- [Разделение на предлагающего-строящего](/roadmap/pbs). Благодаря разделению валидаторов на строителей блоков и предлагающих блоки создается более честный, устойчивый к цензуре и эффективный способ достижения консенсуса в Ethereum. -- [Выборы секретного лидера](/roadmap/secret-leader-election). Умная криптография может быть использована для обеспечения того, чтобы личность текущего предлагающего блока не была публичной, защищая его от определенных видов атак. -- [Абстракция аккаунта](/roadmap/account-abstraction). Абстракция аккаунта это класс обновлений, поддерживающий смарт-контрактные кошельки изначально на Ethereum, вместо использования сложного промежуточного программного обеспечения. -- [Деревья Веркла](/roadmap/verkle-trees) — это структура данных, которая может использоваться для клиентов без состояния на Ethereum. Эти клиенты без присутствия потребуют крошечного пространства для хранения, но все еще смогут проверять новые блоки. -- [Клиенты без состояния](/roadmap/statelessness) смогут проверять новые блоки без необходимости хранения больших объемов данных. Это обеспечит все преимущества работы узла всего с небольшой долей от сегодняшних затрат. diff --git a/src/content/translations/ru/roadmap/merge/index.md b/src/content/translations/ru/roadmap/merge/index.md deleted file mode 100644 index 4234d87caa7..00000000000 --- a/src/content/translations/ru/roadmap/merge/index.md +++ /dev/null @@ -1,228 +0,0 @@ ---- -title: Слияние -description: Узнайте о слиянии — переходе основной сети Ethereum на доказательство владения. -lang: ru -template: upgrade -image: ../../../../../assets/upgrades/merge.png -summaryPoint1: Основная сеть Ethereum использует доказательство владения, но так было не всегда. -summaryPoint2: Переход от изначального механизма доказательства работы на доказательство владения был назван слиянием. -summaryPoint3: Под слиянием понимается объединение исходной основной сети Ethereum с отдельным блокчейном на основе доказательства владения — сетью Beacon. Сейчас осталась лишь одна цепь. -summaryPoint4: Слияние уменьшило потребление энергии Ethereum на ~99,95 %. ---- - - - Слияние было выполнено 15 сентября 2022 года. Это завершило переход Ethereum к консенсусу на основе доказательства владения с официальным отказом от доказательства работы и сокращением энергопотребления на ~99,95 %. - - -## Что такое слияние? {#what-is-the-merge} - -Слияние было соединением исходного уровня исполнения Ethereum (основной сети, которая существовала с самого [начала](/history/#frontier)) с его новым уровнем консенсуса на основе доказательства владения, сетью Beacon. Это устранило необходимость в энергоемком майнинге и вместо этого позволило защищать сеть с помощью поставленного (использованного в стейкинге) эфира (ETH). Это был по-настоящему захватывающий шаг на пути к воплощению будущего Ethereum — увеличению масштабируемости, безопасности и экологичности. - - - -Сначала [сеть Beacon](/roadmap/beacon-chain/) работала отдельно от [основной сети](/glossary/#mainnet). Основная сеть Ethereum (со всеми ее аккаунтами, балансами, смарт-контрактами и статусом блокчейна) оставалась защищенной [доказательством работы](/developers/docs/consensus-mechanisms/pow/), даже когда параллельно работающая сеть Beacon использовала [доказательство владения](/developers/docs/consensus-mechanisms/pos/). Слияние произошло, когда эти две системы наконец-то слились, а доказательство работы было навсегда заменено доказательством владения. - -Представьте себе, что Ethereum — это космический корабль, который был запущен до того, как по-настоящему был готов к межзвездному путешествию. С помощью сети Beacon сообщество построило новый двигатель и укрепило корпус. После серьезных испытаний пришло время установить новый двигатель вместо старого прямо в полете. Это объединило новый, более эффективный двигатель с существующим кораблем, что позволило ему преодолеть световые годы и отправиться навстречу вселенной. - -## Слияние с основной сетью {#merging-with-mainnet} - -Доказательство работы защищало основную сеть Ethereum с начала и до самого слияния. Это позволило блокчейну Ethereum, к которому мы все так привыкли, появиться в июле 2015 года со всеми его знакомыми нам функциями: транзакциями, смарт-контрактами, аккаунтами и т. д. - -На протяжении истории Ethereum разработчики подготовились к возможному переходу от доказательства работы к доказательству владения. 1 декабря 2020 года сеть Beacon была создана как блокчейн, отдельный от основной сети и работающий параллельно. - -Сеть Beacon изначально не обрабатывала транзакции основной сети. Вместо этого она достигала консенсуса по своему собственному состоянию, соглашаясь с действующими валидаторами и их балансами аккаунтов. После обширных испытаний сети Beacon пришло время достичь консенсуса с реальными данными. После слияния сеть Beacon стала движком консенсуса для всех данных в сети, включая транзакции на уровне исполнения и балансы аккаунтов. - -Слияние представляло собой официальный переход к использованию сети Beacon в качестве движка для производства блоков. Для производства действительных блоков майнинг больше не используется. Вместо этого валидаторы с доказательством владения взяли на себя эту роль, теперь они отвечают за обработку действительности всех транзакций и предложение блоков. - -Старые данные при слиянии не пострадали. Когда основная сеть слилась с сетью Beacon, также произошло слияние всей истории транзакций Ethereum. - - -Этот переход к доказательству владения изменил подход к выпуску эфира. Подробнее о выпуске эфира до и после слияния. - - -### Пользователи и держатели {#users-holders} - -**Слияние ничего не изменило для держателей и пользователей.** - -_Стоит повторить_: пользователям и держателям ЕТН или любого другого цифрового актива в Ethereum, а также дольщикам, не управляющим узлами, **при слиянии не нужно ничего делать со своими средствами и кошельком**. ETH — это по-прежнему ETH. Не существует «старых ETH» и «новых ETH», ETH1 и ETH2, а кошельки после слияния работают абсолютно так же, как и до него. Говорящие обратно — скорее всего мошенники. - -Несмотря на отказ от доказательства работы, вся история Ethereum с самого начала при переходе на доказательство владения осталась нетронутой и неизменной. Все средства, хранившиеся в вашем кошельке до слияния, останутся доступны и после него. **От вас не требуется никаких действий по обновлению.** - -[Подробнее о безопасности Ethereum](/security/#eth2-token-scam) - -### Операторы узлов и разработчики децентрализованных приложений {#node-operators-dapp-developers} - - - -Ключевые действия: - -1. Запустите _оба_ клиента: консенсус-клиент и клиент-исполнитель. Сторонние конечные точки для получения данных о выполнении после слияния не работают. -2. Выполните аутентификацию клиентов консенсуса и исполнения с помощью общего секрета JWT, чтобы они могли безопасно общаться. -3. Установите адрес получателя комиссии, чтобы получать заработанные вами комиссионные за транзакции и MEV. - -Если не выполнить первые два элемента выше, ваш узел будет рассматриваться как «автономный» (офлайн), пока оба уровня не будут синхронизированы и аутентифицированы. - -Если не установить «получателя комиссии», валидатор сможет работать, но вы не будете получать несгорающие чаевые от комиссий и MEV, которые заработали бы за блоки, предложенные вашим валидатором. - - - - -До самого слияния клиентов-исполнителей (напимер, Geth, Erigon, Besu или Nethermind) было достаточно для получения, проверки надлежащим образом и распространения блоков, передаваемых сетью. _После слияния_ действительность сделок, содержащихся в составе исполняемой полезной нагрузки, теперь также зависит от действительности «консенсусного блока», в котором она содержится. - -В результате полный узел Ethereum теперь требует как клиента-исполнителя, так и консенсус-клиента. Эти два клиента работают вместе, используя новый движок API. Движок API требует аутентификации с использованием секрета JWT, который предоставляется обоим клиентам, обеспечивая безопасную связь. - -Ключевые действия: - -- Установка консенсус-клиента в дополнение к клиенту-исполнителю. -- Аутентификация клиентов исполнения и консенсуса с помощью общего секрета JWT, чтобы они могли безопасно поддерживать связь. - -Если не выполнить первые два элемента, ваш узел будет рассматриваться как автономный (офлайн), пока оба уровня не будут синхронизированы и аутентифицированы. - - - - - -Слияние внесло изменения в консенсус, который также включает в изменения, связанные со следующим:< - -
    -
  • Структура блока
  • -
  • Время слота/блока
  • -
  • Изменения операционного кода
  • -
  • Источники случайности он-чейн (на блокчейне)
  • -
  • Концепт безопасного начала и завершенных блоков
  • -
- -Для получения дополнительной информации посмотрите эту запись в блоге, написанную Тимом Бейко: Как слияние влияет на уровень применения Ethereum. - -
- -## Слияние и потребление энергии {#merge-and-energy} - -Слияние положило конец доказательству работы в Ethereum и начало эру его большей экологичности и устойчивого развития. Потребление энергии Ethereum упало на примерно 99,95 %, что делает Ethereum зеленым блокчейном. Узнайте больше об [энергопотреблении Ethereum](/energy-consumption/). - -## Слияние и масштабируемость {#merge-and-scaling} - -Слияние также создало почву для дальнейших масштабируемых обновлений, невозможных при доказательстве работы, приближая Ethereum на один шаг к достижению полной масштабируемости, безопасности и устойчивости, описанных в [видении Ethereum](/roadmap/vision/). - -## Заблуждения о слиянии {#misconceptions} - - - -Существует два типа узлов Ethereum: узлы, которые могут предлагать блоки, и те, которые не могут этого делать. - -К узлам, предлагающим блоки, относится лишь небольшое число от общего количества узлов на Ethereum. Эта категория включает в себя майнинговые узлы, работающие на основе доказательства работы (PoW), и узлы-валидаторы, основанные на доказательстве владения (PoS). Эта категория требует выделения экономических ресурсов (напимер, потенциала хэширования видеокарты при доказательстве работы или поставленных ETH при доказательстве владения) в обмен на возможность время от времени предлагать следующий блок и получать награды от протокола. - -Другие узлы в сети (т. е. большинство) не обязаны вносить какие-либо экономические ресурсы, кроме компьютера потребительского класса с 1–2 ТБ доступного места и подключением к Интернету. Эти узлы не предлагают блоки, но они по-прежнему играют важнейшую роль в обеспечении безопасности сети, возлагая на всех субъектов, предлагающих блоки, ответственность за прослушивание новых блоков и проверку их действительности по прибытии в соответствии с правилами сетевого консенсуса. Если блок является действителньым, узел продолжает распространять его по сети. Если блок по какой-либо причине действительным не является, программное обеспечение узла будет игнорировать его как недопустимый и прекратит его распространение. - -Запуск узла, не предлагающего блоки, возможен для любого пользователя при любом механизме консенсуса (с доказательством и работы, и владения). Делать это настоятельно рекомендуется всем пользователям, у которых есть такая возможность. Запускать узлы чрезвычайно важно для Ethereum, это дает дополнительные преимущества каждому, кто это делает, такие как повышение безопасности, конфиденциальности и устойчивости к цензуре. - -Возможность каждого запустить свой собственный узел является абсолютно необходимой для сохранения децентрализации в сети Ethereum. - -Подробнее о запуске собственного узла - - - - - -Комиссии за газ — это результат спроса сети, связанного с ее потенциалом. Слияние привело к отказу от доказательства работы и переходу на доказательство владения при достижении консенсуса, но не внесло существенных изменений в параметры, непосредственно влияющие на пропускную способность сети. - -С дорожной картой на основе свертков усилия сосредоточены на масштабировании активности пользователей на уровне 2, в то же время позволяя основной сети на уровне 1 существовать как безопасный децентрализованный уровень расчетов, оптимизированный для хранения данных свертков, чтобы помочь удешевлять свертки транзакций по экспоненте. Переход к доказательству владения является важнейшим предварительным условием для достижения этой цели. Подробнее о газе и комиссиях - - - - -«Скорость» транзакций можно измерить несколькими способами, включая время, подлежащее включению в блок, и время, необходимое для завершения. Оба эти изменения незначительны и являются едва заметными для пользователей. - -Исторически сложилось так, что при доказательстве работы целью было иметь новый блок каждые ~13,3 секунды. С введением доказательства владения ячейки (слоты) открываются ровно каждые 12 секунд, каждые из которых являются возможностью для валидатора опубликовать блок. Большинство ячеек имеет блоки, но не обязательно все (пример: валидатор в офлайн-режиме). При доказательстве владения блоки производятся на ~10 % чаще, чем при доказательстве работы. Это было довольно незначительным изменением и вряд ли будет замечено пользователями. - -Доказательство владения ввело концепцию завершенности транзакции, которой ранее не было. При доказательстве работы менять блок становится экспоненциально все более сложным с каждым проходящим блоком, добытым поверх транзакции, но вероятность никогда не достигает нуля. При доказательстве владения блоки группируются в эпохи (промежутки по 6,4 минуты, содержащие 32 шанса для блоков), по которым голосуют валидаторы. Когда эпоха заканчивается, валидаторы голосуют за то, считать ли эту эпоху «оправданной». Если валидаторы согласятся оправдать эпоху, она завершится (финализируется) в следующую эпоху. Отмена завершенных транзакций экономически нецелесообразна, поскольку для этого потребуется получить и сжечь более одной трети от всех использованных в стейкинге ЕТН. - - - - - -Первоначально после слияния дольщики могли получить доступ только к чаевым от комиссии и MEV, которые были заработаны в результате предложения блоков. Эти вознаграждения зачисляются на не участвующий в стейкинге аккаунт, контролируемый валидатором (известный как получатель комиссии), и доступны немедленно. Эти награды отделены от наград протокола за выполнение обязанностей валидатора. - -После обновления сети Shanghai/Capella дольщики получили возможность назначить адрес для вывода средств, чтобы начать получать автоматические выплаты всех избытков на балансе (ETH сверх 32 в рамках наград от протокола). Это обновление также позволило валидатору разблокировать и свободно вернуть весь баланс после выхода из сети. - -Подробнее о выводе средств из стейкинга - - - - -Поскольку обновление Shanghai/Capella позволило выводить средства, валидаторов стимулируют выводить баланс сверх 32 ЕТН в стейкинге, так как эти средства не увеличивают доход и просто остаются заблокированными. В зависимости от APR (определяется общим количеством ETH в стейкинге) им могут предлагать выполнить выход своих валидаторов с полным снятием баланса или поставить больше за счет вознаграждений, чтобы увеличить доход. - -Важным предостережением здесь является то, что полный выход валидатора ограничен протоколом, и только определенное количество валидаторов может выйти за одну эпоху (каждые 6,4 минуты). Этот предел колеблется в зависимости от числа активных валидаторов, но соответствует примерно 0,33 % от общего количества ЕТН в стейкинге, которые можно извлечь из сети за один день. - -Это предотвращает массовый отток поставленных средств. Кроме того, это не позволяет потенциальным злоумышленникам, имеющим доступ к большой доле от всего ЕТН в стейкинге, совершать нарушения, предусматривающие сокращение, и выход или вывод всего баланса своих валидаторов за одну эпоху, прежде чем протокол успеет применить наказание в виде сокращения. - -В APR также поддерживается намеренная динамичность, которая позволяет рынку дольщиков балансировать сумму, которую они хотят платить за помощь в защите сети. Если процентная ставка слишком низка, валидаторы будут выходить со скоростью, ограниченной протоколом. Постепенно это повысит APR для всех, кто останется, что привлечет новых или возвращающихся дольщиков снова. - - -## Что случилось с Eth2? {#eth2} - -Термин Eth2 более не используется. После слияния Eth1 и Eth2 в единую цепь больше нет необходимости различать две сети Ethereum. Ethereum един. - -Чтобы избежать путаницы, сообщество обновило эти термины. - -- Eth1 теперь является слоем исполнения, который обрабатывает и выполняет транзакции. -- Eth2 теперь является «уровнем консенсуса», который обрабатывает консенсус доказательства владения. - -Эти обновления терминологии влияют только на принятые названия; цели и дорожная карта Ethereum не меняются. - -[Подробнее о переименовании Eth2](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) - -## Взаимосвязь между обновлениями {#relationship-between-upgrades} - -Все обновления Ethereum в некоторой степени взаимосвязаны. Итак, давайте вспомним, как слияние связано с другими обновлениями. - -### Слияние и сеть Beacon {#merge-and-beacon-chain} - -Слияние представляет собой формальное принятие сети Beacon в качестве нового консенсусного уровня для первоначального уровня выполнения основной сети. После слияния были назначены валидаторы, чтобы обеспечивать безопасность основной сети Ethereum, а майнинг на основе [доказательства работы](/developers/docs/consensus-mechanisms/pow/) перестал быть действительным способом производства блоков. - -Вместо этого блоки предлагаются узлами-валидаторами, у которых есть поставленные ЕТН в обмен на право участия в консенсусе. Эти улучшения создали основу для будущих обновлений масштабируемости, включая шардинг. - - - Сеть Beacon - - -### Слияние и обновление Shanghai {#merge-and-shanghai} - -Чтобы максимально сфокусировать внимание на успешном переходе к доказательству владения и его упростить, обновление слияния не включало некоторые ожидаемые функции, такие как возможность вывода ЕТН, использованных в стейкинге. Эта функциональность была запущена отдельно с обновлением Shanghai/Capella. - -Для тех, кому интересно: узнайте больше о том, [что произойдет после слияния](https://youtu.be/7ggwLccuN5s?t=101), из презентации Виталика в апреле 2021 года на мероприятии ETHGlobal. - -### Слияние и шардинг (разделение на осколки) {#merge-and-data-sharding} - -Первоначально план состоял в том, чтобы работать над шардингом перед плиянием и решить проблему масштабируемости. Однако с учетом взрывной популярности [решений для масштабирования на уровне 2](/layer-2/) приоритет сместился на первоочередную замену доказательства работы доказательством владения. - -Планы по шардингу быстро развиваются. Но с учетом развития и успеха технологий уровня 2 для масштабирования выполнения транзакций планы, касающиеся шардинга, сместились в сторону поиска наиболее оптимального способа распределения бремени хранения сжатых данных из контрактов свертков. При этом должна сохраняться возможность экспоненциального роста пропускной способности сети. Это было бы невозможно без предварительного перехода на доказательство владения. - - - Шардинг - - -## Дополнительные ресурсы {#further-reading} - - - - diff --git a/src/content/translations/ru/roadmap/scaling/index.md b/src/content/translations/ru/roadmap/scaling/index.md deleted file mode 100644 index abe6cb98f0d..00000000000 --- a/src/content/translations/ru/roadmap/scaling/index.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Масштабирования Ethereum -description: Свертки объединяют транзакции вместе вне цепи, уменьшая расходы пользователя. Тем не менее сейчас свертки используют данные слишком дорогим способом, ограничивая удешевление транзакций. Прото-данкшардинг исправляет это. -lang: ru -image: ../../../../../assets/roadmap/roadmap-transactions.png -alt: "Дорожная карта Ethereum" -template: roadmap ---- - -Ethereum масштабируется с помощью сетей [уровня 2](/layer-2/#rollups) (также известными как свертки), которые собирают транзакции вместе и отправляют результат на Ethereum. Свертки до 8 раз дешевле основной сети Ethereum, но их можно оптимизировать еще лучше, чтобы снизить расходы для конечных пользователей. Они также полагаются на некоторые централизованные компоненты, которые разработчики могут удалять по мере развития свертков. - - -
    -
  • Сейчас свертки в ~3–8 раз дешевле уровня 1 Ethereum.
  • -
  • ZK-свертки в скором времени снизят комиссию в ~40–100 раз.
  • -
  • Предстоящие изменения в Ethereum увеличат масштабирование еще в ~100–1000 раз.
  • -
  • Преимуществом для пользователей должны стать транзакции стоимостью менее 0,001 $.
  • -
-
- -## Удешевление данных {#making-data-cheaper} - -Свертки собирают большое количество транзакций, исполняют их и отправляют результаты в Ethereum. Это генерирует много данных, которые должны быть в открытом доступе, чтобы любой мог выполнить транзакции у себя и убедиться, что оператор свертка был честным. Если кто-то найдет несоответствие, он сможет начать оспаривание. - -### Прото данкшардинг {#proto-danksharding} - -Данные свертка постоянно хранятся на Ethereum, что является дорогостоящим. Свыше 90 % расходов на транзакции, которые пользователи платят за свертки, идет на хранение этих данных. Для снижения стоимости транзакций мы можем перенести данные в новое временное хранилище больших бинарных объектов (блобы). Блобы дешевле, потому что они непостоянные. Они удаляются из Ethereum, как только становятся ненужными. Хранение данных свертка длительное время становится обязанностью нуждающихся в нем людях, таких как операторы свертка, биржи, службы индексирования и т. д. Добавление в Ethereum транзакций в блобах — часть обновления под названием «прото-данкшардинг». Ожидается, что оно произойдет относительно скоро — возможно, в конце 2023 года. - -Когда транзакции в блобах станут частью протокола Ethereum с помощью прото-данкшардинга, можно будет добавлять много блобов в блоки Ethereum. Это будет еще одним существенным (более, чем в 100 раз) масштабированием пропускной способности Ethereum и сокращением стоимости транзакций. - -### Данкшардинг {#danksharding} - -Второй этап расширения данных в блобах сложен, поскольку для проверки данных свертка, которые доступны в сети, необходимы новые методы, и он полагается на валидаторов, разделяя их обязанности по созданию и предложению блоков. Это также требует способ криптографически доказать, что валидаторы проверили небольшие подмножества данных блобов. - -Этот второй шаг называется [данкшардингом](/roadmap/danksharding/). Скорее всего, его полная реализация займет несколько лет. Данкшардинг опирается на другие разработки, такие как: [разделение создания и предложения блоков](/roadmap/pbs), и новые дизайны сети, позволяющие ей эффективно подтверждать, что данные доступны, путем случайного отбора нескольких килобайт. Это называется [выборкой доступности данных (DAS)](/developers/docs/data-availability). - -Подробнее о данкшардинге - -## Децентрализованные свертки {#decentralizing-rollups} - -[Свертки](/layer-2) уже масштабируют Ethereum. [Богатая экосистема проектов по сверткам](https://l2beat.com/scaling/tvl) позволяет пользователям быстро и дешево осуществлять транзакции с целым рядом гарантий безопасности. Тем не менее свертки были инициализированы с помощью централизованных секвенсоров (компьютеров, которые выполняют всю обработку и объединение транзакций перед их отправкой в Ethereum). Это создает уязвимость для цензуры, поскольку операторы-секвенсоры могут подпасть под санкции, быть подкупленными или иным образом скомпрометированными. В то же время [свертки отличаются](https://l2beat.com) по способу утверждения входящих данных. Лучший способ для доказывающих — отправлять доказательства мошенничества или достоверности, но пока еще не все свертки дошли до этого. Даже те свертки, что используют доказательства достоверности или мошенничества, полагаются на малый пул известных проверяющих. Поэтому следующим важным шагом в масштабировании Ethereum станет распределение ответственности за запуск секвенсоров и проверяющих среди большего числа людей. - -Подробнее о свертках - -## Текущий прогресс {#current-progress} - -Прото-данкшардинг, вероятно, будет одним из элементов дорожной карты, которые будут реализованы раньше прочих. Шаги для децентрализованных вычислений, нужные для его установки, уже предпринимаются, а некоторые клиенты уже внедрили прототипы для обработки данных в блобах. Полный данкшардинг, вероятно, будет реализован через несколько лет, так как он полагается на несколько других элементов дорожной карты, которые нужно воплотить перед этим. Децентрализация инфраструктуры свертков, скорее всего, будет проходить поэтапно: существует множество разных свертков, которые создают немного разные системы, и они с разной скоростью станут полностью децентрализованными. diff --git a/src/content/translations/ru/roadmap/security/index.md b/src/content/translations/ru/roadmap/security/index.md deleted file mode 100644 index 092e817e6f6..00000000000 --- a/src/content/translations/ru/roadmap/security/index.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: Более безопасный Ethereum -description: Ethereum — самая безопасная и децентрализованная платформа для смарт-контрактов из существующих. Однако потребуется еще ряд улучшений, чтобы в будущем Ethereum оставался устойчивым к любому уровню атак. -lang: ru -image: ../../../../../assets/roadmap/roadmap-security.png -alt: "Дорожная карта Ethereum" -template: roadmap ---- - -Ethereum уже является очень безопасной и децентрализованной платформой для смарт-контрактов. Однако потребуется еще ряд улучшений, чтобы в будущем Ethereum оставался устойчивым ко всем типам атак. Они включают в себя тонкие изменения в том, как клиенты Ethereum справляются с конкурирующими блоками, а также увеличивают скорость, с которой сеть признает блоки [законченными](/developers/docs/consensus-mechanisms/pos/#finality) (это означает, что они не могут быть изменены без значительных экономических потерь для хакера). - -Есть также улучшения, которые значительно затрудняют цензурирование транзакций, не позволяя предлагающим блоки видеть их содержимое, и новые способы выявления случаев, когда клиент занимается цензурой. Вместе эти улучшения модернизируют протокол доказательства владения таким образом, что пользователи — от физических лиц до корпораций — смогут мгновенно проверять свои приложения, данные и активы на Ethereum. - -## Вывод средств, использованных в стейкинге {#staking-withdrawals} - -Переход от доказательства работы к доказательству владения начался с первопроходцев Ethereum, ставивших свой эфир (ЕТН) в депозитном контракте. Этот ЕТН используется для защиты сети. Однако такой ЕТН пока не может быть разблокирован и возвращен пользователям. Обеспечение возможности выводить ЕТН — критически важная часть обновления по переходу к доказательству владения. Вывод средств — не просто критический компонент полнофункционального протокола доказательства владения. Разрешение выводить средства также принесет пользу для безопасности Ethereum, так как это позволяет дольщикам использовать свои вознаграждения в ЕТН для других целей, не связанных со стейкингом. Это означает, что пользователи, которым нужна ликвидность, не будут обязаны полагаться на ликвидные деривативы стейкинга (LSD), которые могут быть централизующей силой в Ethereum. Обновление запланировано на 12 апреля 2023 года. - -Подробнее о выводе средств - -## Защита от атак {#defending-against-attacks} - -Даже с действующим выводом средств останутся улучшения, которые можно будет вносить в протокол доказательства владения Ethereum. Одно из них известно как [слияние мнений](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739) — более безопасный алгоритм выбора ответвления, который усложняет некоторые сложные типы атак. - -Сокращение времени, которое тратит Ethereum на завершение блоков, обеспечит лучший пользовательский опыт и предотвратит сложные «реорганизационные» атаки, когда злоумышленники пытаются перемешать самые последние блоки для извлечения прибыли или цензуры определенных транзакций. [**Завершенность одного слота (SSF)**](/roadmap/single-slot-finality/) — это путь к минимизации задержки при завершении. Сейчас атакующий в теории может убедить других валидаторов переконфигурировать все блоки, которые были созданы за последние 15 минут. С использованием SSF это окно было бы сведено к 0. Пользователи, начиная от физических лиц и заканчивая приложениями и биржами, выигрывают от быстрой гарантии того, что их транзакции не будут возвращены. Выиграет и сеть, избавляясь от целого класса атак. - -Подробнее о завершенности одного слота - -## Защита от цензуры {#defending-against-censorship} - -Децентрализация не позволяет отдельным лицам или небольшим группам валидаторов стать слишком влиятельными. Новые технологии стейкинга могут помочь обеспечивать максимально возможную децентрализацию валидаторов в Ethereum, одновременно защищая их от аппаратных, программных и сетевых сбоев. Сюда относится программное обеспечение, которое распределяет обязанности валидатора между несколькими узлами. Это известно как **технология распределенного валидатора (DVT)**. Пулы стейкинга заинтересованы в использовании DVT, поскольку это позволяет нескольким компьютерам коллективно участвовать в валидации, добавляя избыточности и отказоустойчивости. Она также распределяет ключи валидатора между несколькими системами вместо того, чтобы один оператор запускал несколько валидаторов. Благодаря этому нечестным операторам труднее проводить скоординированные атаки на Ethereum. В целом идея заключается в получении преимуществ для безопасности за счет запуска валидаторов как _сообществ_, а не как отдельных лиц. - -Подробнее о технологии распределенного валидатора - -Внедрение **разделения между инициаторами и строителями блоков (PBS)** значительно улучшит защиту Ethereum от цензуры. PBS позволяет одному валидатору создать блок, а другому — передать его в сеть Ethereum. Это гарантирует, что прибыль от профессиональных алгоритмов построения блоков, максимизирующих прибыль, более справедливо распределяется по всей сети, **предотвращая концентрацию ставок** у наиболее эффективных институциональных игроков. Предлагающий выбирает самый прибыльный блок, предложенный ему рынком строителей блоков. Чтобы подвергнуть содержание блока цензуре, предлагающему будет необходимо выбрать менее прибыльный блок, что будет **экономически нерационально и очевидно для остальных валидаторов** в сети. - -Существуют возможные дополнения к PBS, такие как зашифрованные транзакции и списки вхождений, которые могут еще больше повысить устойчивость Ethereum к цензуре. Благодаря им предлагающие и строители блоков не смогут увидеть содержание транзакций, включаемых в блок. - -Подробнее о разделении предлагающих и строителей - -## Защита валидаторов {#protecting-validators} - -Возможно, что опытный злоумышленник мог бы идентифицировать будущих валидаторов и заваливать их спамом, чтобы помешать им предлагать блоки. Такой вид атаки называется **«отказом в обслуживании»‎ (DoS-атакой)**. Внедрение [**тайного выбора лидера (SLE)**](/roadmap/secret-leader-election) сможет защитить от таких атак, не позволяя заранее получать информацию о том, кто будет предлагать следующие блоки. Такой результат получается путем постоянного перетасовывания набора криптографических обязательств, которые представляют предлагающих блоки, и использования их порядка для определения того, какой валидатор выбран, таким образом, что только сами валидаторы заранее знают свой порядок. - -Подробнее о выборе тайного лидера - -## Текущий прогресс {#current-progress} - -Обновления безопасности, предусмотренные дорожной картой, находятся на продвинутых стадиях исследований, но ожидается, что они не будут внедрены в течение некоторого времени. Следующими шагами для слияния мнений, PBS, SSF и SLE являются завершение разработки спецификации и начало создания прототипов. diff --git a/src/content/translations/ru/roadmap/user-experience/index.md b/src/content/translations/ru/roadmap/user-experience/index.md deleted file mode 100644 index e2e3306ff96..00000000000 --- a/src/content/translations/ru/roadmap/user-experience/index.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: Улучшение опыта пользователей -description: До сих пор использование Ethereum слишком сложно для большинства людей. Чтобы поощрять массовое распространение, системе Ethereum необходимо значительно снизить порог входа. Пользователи должны получать преимущества от децентрализованного, общедоступного и устойчивого к цензуре доступа к Ethereum, но он должен быть таким же удобным, как использование традиционного приложения web2. -lang: ru -image: ../../../../../assets/roadmap/roadmap-ux.png -alt: "Дорожная карта Ethereum" -template: roadmap ---- - -Использование Ethereum необходимо упростить: от управления ключами и кошельками до инициации транзакций. Для облегчения массового внедрения Ethereum должен стать радикально проще в использовании, что позволит пользователям получить беспрепятственный и устойчивый к цензуре доступ к Ethereum с той же легкостью, что и при использовании приложений web2. - -## После кодовых фраз {#no-more-seed-phrases} - -Аккаунты Ethereum защищены парой ключей, используемых для идентификации аккаунтов (публичный ключ) и подписи сообщений (приватный ключ). Приватный ключ похож на главный пароль: он позволяет получить полный доступ к аккаунту Ethereum. Этот подход отличается от привычного людям, более знакомым с банками и приложениями Web2 для управления аккаунтами от имени пользователя. Чтобы Ethereum достиг массового распространения, не полагаясь на централизованные третьи стороны, у пользователя должен быть понятный и простой способ получить контроль над своими активами и данными без необходимости понимания криптографии публичных и приватных ключей и управления ими. - -Решение этого вопроса заключается в использовании кошельков смарт-контрактов для взаимодействия с Ethereum. Кошельки смарт-контрактов создают способы для защиты аккаунта (если ключи были потеряны или украдены), возможности для лучшего выявления мошенничества и для защиты от него. Они позволяют оснастить кошельки новыми функциями. Хотя кошельки смарт-контрактов и существуют сегодня, они неудобны для создания, потому что протокол Ethereum должен поддерживать их лучше. Эта дополнительная поддержка называется абстрагированием аккаунта. - -Подробнее об абстрагировании аккаунта - -## Узлы для каждого - -Пользователям, запускающим узлы, нет необходимости доверять посредникам, чтобы предоставлять им данные. Они могут взаимодействовать с блокчейном Ethereum быстро, конфиденциально и без необходимости получать чье-то разрешение. Однако сейчас запуск узла требует технической грамотности, а также значительного места на диске, поэтому люди вынуждены доверять посредникам. - -Существует несколько обновлений, которые могут сделать запуск и поддержание узла не таким сложным и ресурсоемким. Способ хранения данных будет изменен для использования более компактной структуры, известной как **дерево Веркла**. Кроме того, с клиентами [без состояния](/roadmap/statelessness) или [экспирацией данных](/roadmap/statelessness/#data-expiry) узлам Ethereum не нужно будет хранить копию всех данных о состоянии, что резко снизит потребности в пространстве на жестком диске. [Легкие узлы](/developers/docs/nodes-and-clients/light-clients/) в будущем позволят сохранить преимущества полных узлов, но станут легко запускаемыми на мобильных устройствах или в простом веб-приложении в браузере. - -Подробнее о деревьях Веркла - -Благодаря этим улучшениям барьеры для запуска узла практически сведутся к нулю. Пользователи получат преимущество от безопасного доступа к Ethereum, не требующего получения чьего-то разрешения и необходимости жертвовать заметным количеством места на диске и мощностей процессора на компьютере или телефоне. Кроме того, им не нужно будет полагаться на посредников для передачи данных или предоставления доступа к сети, когда они пользуются приложениями. - -## Текущий прогресс {#current-progress} - -Кошельки смарт-контрактов уже доступны, но требуется больше обновлений, чтобы сделать их как можно более децентрализованными и избавленными от разрешений. EIP-4337 — это зрелое предложение, которое не требует никаких изменений в протоколе Ethereum. Основной смарт-контракт, необходимый для EIP-4337, был развернут в марте 2023 года. - -Клиенты без состояния все еще находятся на стадии исследования, на их реализацию, скорее всего уйдут годы. На пути к клиентам без состояния есть несколько контрольных точек, включая экспирацию данных, которая может быть реализована быстрее. Другие элементы дорожной карты, такие как [деревья Веркла](/roadmap/verkle-trees/) и [разделение предлагающих и строящих](/roadmap/pbs/), должны быть завершены в первую очередь. - -Тестовые сети с деревьями Веркла уже работают, а следующим шагом будет запуск клиентов, основанных на деревьях Веркла: сначала в приватных, а потом и в общедоступных тестовых сетях. Вы можете помочь ускорить прогресс, развертывая смарт-контракты или клиенты в тестовых сетях. diff --git a/src/content/translations/ru/smart-contracts/index.md b/src/content/translations/ru/smart-contracts/index.md deleted file mode 100644 index 3d23d00fffa..00000000000 --- a/src/content/translations/ru/smart-contracts/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Умные контракты -description: Нетехническое введение в умные контракты -lang: ru ---- - -# Введение в умные контракты {#introduction-to-smart-contracts} - -Умные контракты — это основные кирпичи для создания слоя приложений Ethereum. Это компьютерные программы, хранящиеся на блокчейне, которые следуют логике «если это, тогда то» и гарантированно исполняются в соответствии с правилами, определенными его кодом, который не может быть изменен после создания. - -Nick Szabo придумал термин «умный контракт». В 1994 г. он написал [введение в концепцию](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html), а в 1996 г. — [исследование того, что умные контракты могли бы сделать](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). - -Szabo предвидел создание цифрового рынка, на котором автоматические криптографические процессы позволяют осуществлять транзакции и бизнес-функции без доверенных посредников. Умные контракты в Ethereum претворили это в жизнь. - -### Доверие при работе с традиционными контрактами {#trust-and-contracts} - -Одна из главных проблем традиционных контрактов — это необходимость привлекать доверенных третьих лиц, чтобы обеспечить выполнение условий. - -Вот пример. - -Алиса и Боб устраивают велогонку. Допустим, Алиса ставит 10 долларов на то, что она выиграет гонку. Боб же уверен в себе, считает, что победит он, и принимает ставку. В результате Алиса обгоняет Боба, заканчивает гонку первой и становится очевидным победителем. Но Боб отказывается платить и обвиняет Алису в жульничестве. - -Этот простой мысленный эксперимент обнаруживает проблему с любым «не умным» контрактом. Даже если все условия выполнены (например, вы выиграли гонку), вам по прежнему остается верить, что другая сторона выполнит свою часть соглашения (например, заплатит то, что поставила). - -### Цифровой торговый автомат {#vending-machine} - -Простейшая метафора для умного контракта — это торговый автомат, который работает похожим образом: определенный ввод гарантирует определенный вывод. - -- Вы выбираете товар -- Торговый автомат отображает цену -- Вы платите соответственно цене -- Торговый автомат удостоверяется, что вы заплатили верную сумму -- Торговый автомат дает вам вашу вещь - -Торговый автомат отдаст оплаченный товар, только когда все требования будут удовлетворены. Если товар не выбран или внесено недостаточно денег, торговый автомат не выдаст ничего. - -### Автоматическое выполнение {#automation} - -Главное преимущество умного контракта в том, что он однозначно выполняет недвусмысленный код при соблюдении определенных условий. Нет нужды ждать человека для выполнения любых требуемых операций. Это устраняет необходимость в доверенных посредниках. - -Например, вы можете написать умный контракт, который держит средства ребенка и позволяет ему снять их после определенной даты. Если он попробует снять деньги до этой даты, смарт-контракт этого не допустит. Или вы можете написать контракт, который автоматически дает вам цифровую версию прав на автомобиль, когда вы платите дилеру. - -### Предсказуемые результаты {#predictability} - -Традиционные контракты неоднозначны, потому что они полагаются на людей в их интерпретации и реализации. Например, двое судей могут по-разному толковать контракт, что может привести к непоследовательным решениям и неравным результатам. Умные контракты исключают такую возможность. Вместо этого умные контракты выполняются точно так, как написан их код. «Точность» означает, что при одинаковых обстоятельствах результат всегда будет одинаковым. - -### Открытая запись {#public-record} - -Умные контракты хорошо поддаются проверке и отслеживанию. Так как умные контракты Ethereum находятся в публичном блокчейне, кто угодно и в любой момент может отследить перемещение активов и связанную с ним информацию. Например, вы можете проверить, отправил ли кто-то деньги на ваш адрес. - -### Защита конфиденциальности {#privacy-protection} - -Смарт-контракты также защищают вашу конфиденциальность. Так как Ethereum — это псевдонимная сеть (транзакции публично отображаются от имени уникального криптографического адреса, но личность, стоящая за адресом, неизвестна), вы можете защищать свою конфиденциальность. - -### Видимые условия {#visible-terms} - -Наконец, как и в случае с обычными контрактами, вы можете проверить, что находится в умном контракте, прежде чем подписать его (или взаимодействовать с ним другим способом). Прозрачность смарт-контракта гарантирует, что любой может тщательно изучить его. - -## Варианты использования умных контрактов {#use-cases} - -В целом умные контракты могут делать практически все то же самое, что и другие компьютерные программы. - -Они могут выполнять вычисления, создавать валюту, хранить данные, выпускать NFT, отправлять сообщения и даже генерировать графику. Вот несколько распространенных примеров из реального мира. - -- [Стейблкойны](/stablecoins/) -- [Создание и распространение уникальных цифровых активов](/nft/) -- [Автоматический и открытый обмен валюты](/get-eth/#dex) -- [Децентрализованные игры](/dapps/?category=gaming) -- [Страховой полис с автоматической оплатой](https://etherisc.com/) -- [Стандарт, который позволяет людям создавать индивидуальные и совместимые валюты](/developers/docs/standards/tokens/) - -## Больше визуализации? {#visual-learner} - -Посмотрите, как Finematics объясняет умные контракты. - - - -## Дополнительная литература {#further-reading} - -- [Как умные контракты изменят мир](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [Умные контракты: блокчейн-технология, которая заменит юристов](https://blockgeeks.com/guides/smart-contracts/) -- [Умные контракты для разработчиков](/developers/docs/smart-contracts/) -- [Научитесь создавать Умные контракты](/developers/learning-tools/) -- [Освоение Ethereum: что такое умный контракт?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/src/content/translations/ru/social-networks/index.md b/src/content/translations/ru/social-networks/index.md deleted file mode 100644 index 9217565ceac..00000000000 --- a/src/content/translations/ru/social-networks/index.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: Децентрализованные социальные сети -description: Обзор децентрализованных социальных сетей на Ethereum -lang: ru -template: use-cases -emoji: ":mega:" -sidebarDepth: 2 -image: ../../../../assets/ethereum-learn.png -summaryPoint1: Платформы на основе блокчейна для социального взаимодействия, создания и распространения контента. -summaryPoint2: Децентрализованные социальные сети защищают конфиденциальность пользователей и повышают безопасность данных. -summaryPoint3: Токены и NFT создают новые способы монетизации контента. ---- - -Социальные сети играют огромную роль в нашем повседневном общении и взаимодействии. Однако централизованный контроль над этими платформами создал множество проблем: утечки данных, перебои в работе серверов, деплатформирование, цензура и нарушение конфиденциальности — некоторые из компромиссов, на которые часто идут социальные сети. Для борьбы с этими проблемами разработчики создают социальные сети на Ethereum. Децентрализованные социальные сети могут решить многие проблемы традиционных социальных сетей и улучшить общий опыт пользователей. - -## Что такое децентрализованные социальные сети? {#what-are-decentralized-social-networks} - -Децентрализованные социальные сети — это платформы, основанные на блокчейне, которые позволяют пользователям обмениваться информацией, а также публиковать и распространять контент среди аудитории. Поскольку эти приложения работают на блокчейне, они могут быть децентрализованными и устойчивыми к цензуре и неправомерному контролю. - -Многие децентрализованные социальные сети существуют в качестве альтернативы существующим социальным сетям, таким как Facebook, LinkedIn, Twitter и Medium. Но в социальных сетях блокчейн существует целый ряд особенностей, которые выгодно отличают их от традиционных социальных платформ. - -### Как работают децентрализованные социальные сети? {#decentralized-social-networks-overview} - -Децентрализованные социальные сети представляют собой класс [децентрализованных приложений (dapps)](/dapps/)— приложений, разработанных [с помощью смарт-контрактов](/developers/docs/smart-contracts/) на блокчейне. Код контракта служит серверной частью этих приложений и определяет их бизнес-логику. - -Традиционные социальные сети используют базы данных для хранения информации о пользователе, программного кода и других форм данных. Но это создает единые точки отказа и вносит значительный риск. Например, серверы Facebook внезапно [ушли в оффлайн на часы](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) в прошлом году, отрезав пользователей от платформы. - -Децентрализованные социальные сети существуют в одноранговой сети, состоящей из тысяч узлов по всему миру. Даже если некоторые узлы откажут, сеть будет работать бесперебойно, что сделает приложения устойчивыми к перебоям и простоям. - -С помощью децентрализованных систем хранения, например [InterPlanetary File System (IPFS)](https://ipfs.io/), социальные сети, построенные на Ethereum, могут защитить информацию пользователя от эксплуатации и злонамеренного использования. Никто не будет продавать вашу личную информацию рекламодателям, а хакеры не смогут украсть ваши конфиденциальные данные. - -Многие социальные платформы на основе блокчейна имеют собственные токены, которые обеспечивают монетизацию при отсутствии доходов от рекламы. Пользователи могут покупать эти токены, чтобы получить доступ к определенным функциям, совершать покупки в приложении или отправлять чаевые своим любимым создателям контента. - -## Преимущества децентрализованных социальных сетей {#benefits} - -1. Децентрализованные социальные сети устойчивы к цензуре и открыты для всех. Это означает, что пользователей нельзя произвольно заблокировать, деплатформировать или ограничить. - -2. Децентрализованные социальные сети построены на принципах открытого исходного кода и делают исходный код приложений доступным для всеобщего обозрения. Устраняя реализацию непрозрачных алгоритмов, распространенных в традиционных социальных сетях, социальные сети на основе блокчейна могут уравнивать интересы пользователей и создателей платформы. - -3. Децентрализованные социальные сети исключают «посредников». Создатели контента имеют прямое право собственности на свой контент и напрямую взаимодействуют с подписчиками, поклонниками, покупателями и другими сторонами, не имея ничего, кроме смарт-контракта между ними. - -4. Как и децентрализованные приложения, работающие в сети Ethereum, которая поддерживается глобальной одноранговой сетью узлов, децентрализованные социальные сети менее подвержены простоям и перебоям в работе серверов. - -5. Децентрализованные социальные сети предлагают улучшенную структуру монетизации для создателей контента с помощью невзаимозаменяемых токенов (NFT), криптовалютных платежей в приложениях и т. д. - -6. Децентрализованные социальные сети предоставляют пользователям высокий уровень конфиденциальности и анонимности. Например, человек может войти в социальную сеть на основе Ethereum, используя профиль или кошелек ENS, без необходимости делиться личной информацией, такой как имена, адреса электронной почты и т. д. - -7. Децентрализованные социальные сети полагаются не на централизованные базы данных, а на децентрализованные хранилища, которые значительно лучше защищают пользовательские данные. - -## Децентрализованные социальные сети на Ethereum {#ethereum-social-networks} - -Сеть Ethereum стала предпочтительным инструментом для разработчиков, создающих децентрализованные социальные сети, благодаря популярности ее токенов (ERC-20/ERC-721) и огромной пользовательской базе. Вот несколько примеров социальных сетей, основанных на Ethereum: - -### Peepeth {#peepeth} - -[Peepeth](https://peepeth.com/) — это платформа микроблогов, похожая на Twitter. Она работает на блокчейне Ethereum и использует IPFS для хранения пользовательских данных. - -Пользователи могут отправлять короткие сообщения под названием «Peeps», которые нельзя удалить или изменить. Вы можете получать чаевые или отправлять их кому-то на платформе в эфирах (ETH), не выходя из приложения. - -### Mirror {#mirror} - -[Mirror](https://mirror.xyz/) — это платформа для писателей с поддержкой web3, которая должна быть децентрализованной и принадлежать пользователям. Пользователи могут бесплатно читать и писать на Mirror, просто подключив свои кошельки. Пользователи также могут коллекционировать записи и подписываться на своих любимых писателей. - -Сообщения, опубликованные на Mirror, постоянно хранятся в Arweave, децентрализованном хранилище, и могут быть выпущены в виде коллекционных [невзаимозаменяемых токенов (NFT)](/nft/), известных как Writing NFT. Написание NFT совершенно бесплатно для авторов, а сбор происходит на Ethereum L2, что делает транзакции недорогими, быстрыми и экологически безопасными. - -### MINDS {#minds} - -[MINDS](https://www.minds.com/) — одна из самых популярных децентрализованных социальных сетей. Она работает как Facebook и уже набрала миллионы пользователей. - -Пользователи используют собственный токен ERC-20 $MIND для оплаты товаров. Пользователи также могут зарабатывать токены $MIND, публикуя популярный контент, внося свой вклад в экосистему и приводя других на платформу. - -## Социальные сети Web2 на Ethereum {#web2-social-networks-and-ethereum} - -Нативные социальные платформы [Web3](/web3/) не единственные, что пытаются внедрить технологию блокчейна в социальные сети. Многие централизованные платформы также планируют интегрировать Ethereum в свою инфраструктуру: - -### 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/), которые пользователи могут заработать, публикуя качественный контент и внося свой вклад в онлайн-сообщества (субреддиты). Вы можете обменять эти токены в субреддите, чтобы [получить эксклюзивные привилегии и льготы](https://www.reddit.com/community-points/). Для этого проекта Reddit работает с Arbitrum, сверткой [уровня 2](/layer-2/), предназначенной для масштабирования транзакций Ethereum. - -Программа уже запущена, и субреддит r/CryptoCurrency [запустил свою версию Community Points под названием «Moons»](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Согласно официальному описанию, Moons «поощряет авторов, комментаторов и модераторов за их вклад в сабреддит». Поскольку эти токены находятся в блокчейне (пользователи получают их в свой кошелек), они не зависят от Reddit и не могут быть отобраны. - -После завершения бета-тестирования на тестовой сети Rinkeby баллы сообщества Reddit теперь базируется на [Arbitrum Nova](https://nova.arbitrum.io/) — блокчейне, который совмещает в себе свойства [сайдчейнов](/developers/docs/scaling/sidechains/) и [оптимистических сверток](/developers/docs/scaling/optimistic-rollups/). Помимо использования баллов сообщества для разблокировки специальных возможностей, пользователи могут продавать их на биржах за фиатную валюту. Кроме того, количество баллов сообщества, которыми владеет пользователь, определяет его влияние на процесс принятия решений в сообществе. - -### Twitter {#twitter} - -В январе 2021 года Twitter Blue [развернул поддержку NFT](https://mashable.com/article/twitter-blue-nft-profile-picture), что позволило пользователям подключать свои кошельки и отображать NFT в качестве изображения профиля. На момент написания статьи, социальная сеть [объявила о планах](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) по созданию децентрализованной социальной сети в будущем. - -### Instagram {#instagram} - -В мае 2022 [ Instagram анонсировал поддержку NFT](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) на Ethereum и Polygon. Пользователи могут публиковать NFT напрямую в Instagram, подключив свой кошелек Ethereum. - -## Используйте децентрализованные социальные сети {#use-decentralized-social-networks} - -- **[Status.im](https://status.im/)**. _Status — это безопасное приложение для обмена сообщениями, в котором используется протокол одноранговой связи с открытым исходным кодом и сквозное шифрование для защиты ваших сообщений от третьих лиц._ -- **[Mirror.xyz](https://mirror.xyz/)**. _Mirror — это децентрализованная издательская платформа, которая принадлежит только пользователям. Она построена на Ethereum и позволяет пользователям собирать идеи, монетизировать контент и создавать ценные сообщества._ -- **[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/) — _Бен Герцль_ -- [Web3 выполняет обещание о децентрализованных, управляемых сообществом социальных сетях](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Сумит Гош_ -- [Обзор ландшафта социальных сетей на блокчейне](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Криптопедия Gemini_ -- [Как блокчейн может решить проблему с конфиденциальностью социальных сетей](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Праблин Баджпай_ -- [Социальные сети приходят на блокчейн](https://businesstechguides.co/what-are-decentralized-social-networks) — _Эммануэль Авосика_ -- [Достаточная децентрализация для социальных сетей](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Варун Сринивасан_ - -### Видео {#videos} - -- [Объяснение децентрализованной социальной сети](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ -- [Блокчейн DeSo хочет децентрализовать социальные сети](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ -- [Будущее децентрализованных социальных сетей: объясняют Баладжи Сринивасан, Виталик Бутерин, Хуан Бенет](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ - -### Сообщества {#communities} - -- [Status (сервер Discord)](https://discord.com/invite/3Exux7Y) -- [Mirror (сервер Discord)](https://discord.com/invite/txuCHcE8wV) -- [Сабреддит r/CryptoCurrency](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/ru/staking/pools/index.md b/src/content/translations/ru/staking/pools/index.md deleted file mode 100644 index 7f801611182..00000000000 --- a/src/content/translations/ru/staking/pools/index.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: Объединенный стейкинг -description: "Как начать совместный стейкинг ETH: краткий обзор" -lang: ru -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-pool.png -alt: Носорог Лесли плавает в бассейне. -sidebarDepth: 2 -summaryPoints: - - Становитесь дольщиком и зарабатывайте награды при любом количестве ETH, объединяя силы с другими. - - Пропустите сложную часть и доверьте работу валидатора третьим лицам. - - Храните токены стейкинга в своем кошельке. ---- - -## Что такое стейкинг-пул? {#what-are-staking-pools} - -Стейкинг-пулы — это совместный подход, который позволяет многим пользователям с малым количеством ETH вместе набирать32 ETH, необходимых для активации набора ключей валидатора. Функционал пулов изначально не поддерживался в рамках протокола, так что эти решения были созданы отдельно. - -Некоторые пулы управляются с помощью умных контрактов, где средства могут быть внесены на этот контракт, который без необходимости доверия управляет вашей ставкой и отслеживает ее, а также выдает вам токен с той же ценностью. Другие пулы могут не использовать смарт-контракты, а посредничество происходит вне цепочки. - -## Зачем делать ставки в пуле? {#why-stake-with-a-pool} - -В дополнение к преимуществам, которые мы описали в нашем [введении в стейкинг](/staking/), ставки в пуле предлагают еще несколько преимуществ. - - - - - - - - - -## Что следует принять во внимание {#what-to-consider} - -Протокол Ethereum нативно не поддерживает пулы и делегированный стейкинг, но с учетом спроса от пользователей на возможность ставить менее 32 ETH создается все больше решений, чтобы удовлетворить этот запрос. - -Каждый пул и инструменты или смарт-контракты, которые они используют, были созданы различными командами, и у каждого есть преимущества и риски. Пулы позволяют пользователям обменивать свои ETH на токен, представляющий ETH в ставке. Этот токен полезен, потому что он позволяет пользователям обменять любое количество ЕТН на эквивалентное количество приносящего доход токена, который генерирует прибыль от вознаграждений за стейкинг, применяемых к основной ставке ETH (и наоборот), на децентрализованных биржах, даже несмотря на то, что настоящие ЕТН остаются на слое консенсуса. Это означает, что обмен между прибыльным продуктом ETH, участвующим в стейкинге, и «оригинальным ETH» происходит быстро, просто и применяется не только к ETH в количестве, кратном 32. - -Однако такие ETH в ставке способствуют образованию своего рода картелей: большое количество поставленных ETH оказываются под контролем нескольких централизованных организаций, а не распространяется среди большого количества независимых лиц. Это создает условия для цензуры или извлечения ценности. Золотым стандартом стейкинга всегда должны быть отдельные люди, запускающие валидаторы на своем оборудовании, когда это возможно. - -[Подробнее о рисках токенов стейкинга](https://notes.ethereum.org/@djrtwo/risks-of-lsd). - -Индикаторы атрибутов ниже используются для указания на сильные и слабые стороны, которые могут быть у указанного стейкинг-пула. Используйте этот раздел в качестве справки о том, как мы определяем эти атрибуты, когда будете выбирать пул для участия. - - - -## Исследуйте стейкинг-пулы {#explore-staking-pools} - -Есть множество вариантов, которые помогут вам с установкой. Используйте индикаторы выше как руководство по инструментам, приведенным ниже. - - - - - -Обратите внимание на важность выбора службы, которая серьезно подходит к [разнообразию клиентов](/developers/docs/nodes-and-clients/client-diversity/), так как это повышет безопасность сети и ограничивает ваши риски. Службы, у которых есть доказательства ограничения для мажоритарных клиентов, имеют отметки разнообразие клиентов-исполнителей и разнообразие консенсус-клиентов. - -Есть предложение насчет инструмента для стейкинга, которого не хватает? Ознакомьтесь с нашей [политикой списка продуктов](/contributing/adding-staking-products/), убедитесь, что оно подойдет, и отправьте на рассмотрение. - -## Часто задаваемые вопросы {#faq} - - -Как правило, дольщикам выдаются токены стейкинга ERC-20, которые представляют ценность их вклада ETH, плюс вознаграждение. Имейте в виду, что разные пулы могут разными способами распределять награды среди вкладчиков, но в целом все обычно устроено так. - - - -Прямо сейчас! Обновление сети Shanghai/Capellа произошло в апреле 2023 года и ввело вывод средств из стейкинга. Аккаунты валидаторов, которые поддерживают стейкинг-пулы, теперь имеют возможность вывести ЕТН на их назначенный адрес вывода. Это дает возможность вернуть свою долю ставки за базовые ЕТН. Свяжитесь с вашим поставщиком, чтобы узнать, как он поддерживает эту функцию. - -В качестве альтернативы пулы, использующие токены стейкинга ERC-20, позволяют пользователям торговать этими токенами на открытом рынке. Это дает возможность продать находящуюся в стейкинге позицию без фактического вывода ETH из контракта стейкинга. - -Подробнее о выводе средств из стейкинга - - - -Существует много сходств между вариантами стейкинг-пулов и централизованными биржами. Например, возможность вклада небольшого количества ETH и объединения для активации валидатора. - -В отличие от централизованных бирж, многие другие варианты стейкинг-пулов используют умные контракты и/или стейкинговые токены ERC-20, которые хранятся в вашем кошельке и могут быть куплены или проданы, как и любой другой токен. Это обеспечивает определенный уровень суверенитета и безопасности, давая вам контроль над своими токенами, но не оставляя прямого контроля над клиентом валидатора, подтверждающего от вашего имени в фоновом режиме. - -Некоторые пулы более децентрализованы по сравнению с другими, когда речь идет об узлах, которые поддерживают их. Для укрепления здоровья и децентрализации сети вкладчиков всегда поощряют выбирать пул, обеспечивающий децентрализованный набор операторов узлов и не требующий разрешений. - - -## Дополнительные ресурсы {#further-reading} - -- [Стейкинг с помощью Rocket Pool: обзор стейкинга](https://docs.rocketpool.net/guides/staking/overview.html) — _документы RocketPool_ -- [Стейкинг Ethereum с помощью Lido](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) — _справочная документация Lido_ diff --git a/src/content/translations/ru/staking/saas/index.md b/src/content/translations/ru/staking/saas/index.md deleted file mode 100644 index 01687c5eb83..00000000000 --- a/src/content/translations/ru/staking/saas/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Стейкинг как услуга -description: Обзор того, как разместить ETH в пуле -lang: ru -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-saas.png -alt: Носорог Лесли плавает в облаках. -sidebarDepth: 2 -summaryPoints: - - Операторы сторонних узлов управляют работой вашего клиента валидатора - - Отличный вариант для всех обладателей 32 ETH, не желающих сталкиваться с техническими сложностями запуска узла - - Меньше необходимости доверия и хранение ваших ключей для вывода средств ---- - -## Что такое стейкинг как услуга? {#what-is-staking-as-a-service} - -Стейкинг как услуга (SaaS) представляет собой категорию услуг по стейкингу, с помощью которых вы вносите свои собственные 32 ETH для валидатора, но делегируете операции с узлом стороннему оператору. Как правило, этот процесс предусматривает начальную установку, включая генерацию ключей и депозит, а затем отправку ключей для подписи оператору. Это позволяет службе управлять вашим валидатором от вашего имени, как правило, за ежемесячную плату. - -## Зачем использовать стейкинг как услугу? {#why-stake-with-a-service} - -Протокол Ethereum нативно не поддерживает делегирование ставок, поэтому эти услуги предлагаются для удовлетворения существующего спроса. Если у вас есть 32 ETH для стейкинга, но вы не чувствуете себя комфортно при работе с оборудованием, службы SaaS позволяют делегировать сложную часть, пока вы зарабатываете собственные вознаграждения за блоки. - - - - - - - - - -## На что необходимо обратить внимание {#what-to-consider} - -Чтобы помочь вам ставить свои ETH, появляется все больше поставщиков SaaS, но у каждого есть свои преимущества и риски. Все варианты SaaS требуют дополнительного доверия по сравнению с домашним стейкингом. Параметры SaaS могут содержать дополнительный код, который вносит клиенты Ethereum в свертки и не является открытым или проверяемым. SaaS также имеет пагубное влияние на децентрализацию сети. В зависимости от настроек вы можете не контролировать свой валидатор: оператор может действовать нечестно, используя ваши ETH. - -Индикаторы атрибутов ниже используются для указания на сильные и слабые стороны, которые могут быть у указанного поставщика SaaS. Используйте этот раздел в качестве справки о том, как мы определяем эти атрибуты, когда вы выбираете услугу, которая поможет вам в вашем пути к стейкингу. - - - -## Изучите поставщиков услуг стейкинга {#saas-providers} - -Ниже приведены некоторые доступные поставщики SaaS. Используйте индикаторы выше как руководство по службам, приведенным ниже. - - - -#### Поставщики SaaS - - - -Обратите внимание на важность поддержки [разнообразия клиентов](/developers/docs/nodes-and-clients/client-diversity/), так как это повышет безопасность сети и ограничивает ваши риски. Службы, у которых есть доказательства ограничения для мажоритарных клиентов, имеют отметки разнообразие клиентов-исполнителей и разнообразие консенсус-клиентов. - -#### Генераторы ключей - - - -У вас есть предложение относительно поставщика услуг по стейкингу, которое мы пропустили? Ознакомьтесь с нашей [политикой списка продуктов](/contributing/adding-staking-products/), убедитесь, что оно подойдет, и отправьте на рассмотрение. - -## Часто задаваемые вопросы {#faq} - - -Договоренности будут отличаться от поставщика к поставщику, но обычно вам понадобится настроить с помощью подсказок все необходимые ключи для подписи (один на 32 ETH) и отправить их поставщику, чтобы позволить ему выполнять валидацию от вашего имени. Сами по себе ключи для подписи не дают возможности вывести, перевести или потратить ваши средства. Тем не менее, они дают возможность голосовать в пользу консенсуса. Если не делается должным образом, это может привести к офлайн-штрафам или сокращению. - - - -Да. Каждая учетная запись состоит как из ключей BLS для подписи, так и из BLS для вывода средств. Чтобы валидатор мог подтвердить состояние цепочки, учавствовать в комитетах синхронизации и предлагать блоки, ключи подписи должны быть легко доступны клиенту-валидатору. Они должны быть подключены к Интернету в той или иной форме и, таким образом, по своей сути считаются «горячими» клавишами. Это обязательное требование к валидатору для возможности подтверждения. Поэтому ключи, используемые для пердачи или вывода средств, разделены по соображениям безопасности. - -Ключи для вывода средств BLS используются для подписи одноразового сообщения, в котором указывается, на какую учетную запись уровня выполнения должны быть начислены вознаграждения за стейкинг и выведены средства. Как только это сообщение будет транслировано, ключи BLS для вывода средств больше не понадобятся. Вместо этого контроль над выведенными средствами навсегда передается указанному вами адресу. Это позволяет вам установить адрес вывода средств, защищенный через ваше собственное холодное хранилище, минимизируя риск для ваших средств валидатора, даже если кто-то другой контролирует ваши ключи подписи валидатора. - -Обновление учетных данных для вывода является необходимым шагом, чтобы активировать вывод средств\*. Этот процесс включает в себя генерацию ключей вывода с помощью вашей мнемонической кодовой фразы. - -Следите за безопасным хранением этой кодовой фразы. В противном случае вы не сможете генерировать ключи для вывода, когда придет время. - -\* Дольщикам, которые предоставили адрес вывода с начальным депозитом, не нужно настраивать это. Обратитесь к своему поставщику SaaS за помощью по подготовке валидатора. - - - -Вывод средств стейкинга введен с обновлением Shanghai/Capella в апреле 2023 года. Стейкеры должны предоставить адрес для вывода (если он не был указан при первоначальном депозите). Выплаты вознаграждений начнут распределяться автоматически на периодической основе каждые несколько дней. - -Валидаторы также могут полностью выйти из роли валидатора, что разблокирует остаток ЕТН для вывода. Учетные записи, указавшие адрес вывода средств и завершившие процесс выхода, получат весь остаток на адрес вывода, указанный во время следующего перебора валидаторов. - -More on staking withdrawals - - - -Используя поставщика SaaS, вы поручаете управление вашим узлом кому-то другому. Это связано с риском плохой производительности узла, которая находится вне вашего контроля. Если ваш валидатор будет сокращен, баланс вашего валидатора будет оштрафован и принудительно удален из пула валидаторов. - -После завершения процесса сокращения/выхода эти средства будут переведены на адрес для вывода средств, присвоенный валидатору. Для этого потребуется указать адрес вывода. Возможно, он был указан при первоначальном внесении депозита. Если нет, то для подписи сообщения, объявляющего адрес вывода средств, потребуется использовать ключи вывода средств валидатора. Если адрес для вывода средств не указан, средства остаются заблокированными до тех пор, пока его не укажут. - -Свяжитесь с конкретным поставщиком услуг SaaS для получения более подробной информации обо всех гарантиях и вариантах страхования, а также инструкций о том, как предоставить адрес для вывода средств. Если вы предпочитаете полностью контролировать настройки вашего валидатора, lузнайте больше о том, как самостоятельно поставить свои ETH. - - -## Дополнительные ресурсы {#further-reading} - -- [Оценка услуг стейкинга](https://www.attestant.io/posts/evaluating-staking-services/) — _Джим Макдональд, 2020г._ diff --git a/src/content/translations/ru/staking/solo/index.md b/src/content/translations/ru/staking/solo/index.md deleted file mode 100644 index 9b04714208c..00000000000 --- a/src/content/translations/ru/staking/solo/index.md +++ /dev/null @@ -1,203 +0,0 @@ ---- -title: Одиночный стейкинг со своими ETH -description: Обзор того, как начать одиночный стекинг ETH -lang: ru -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-solo.png -alt: Носорог Лесли на собственном компьютерном чипе. -sidebarDepth: 2 -summaryPoints: - - Получайте максимальное вознаграждение непосредственно от протокола за поддержание вашего валидатора в исправном состоянии и в режиме онлайн - - Запустите домашнее оборудование и лично добавьте безопасности и децентрализации сети Ethereum - - Избавьтесь от необходимости доверия и никогда не передавайте контроль над ключами к своим средствам ---- - -## Что такое одиночный стейкинг? {#what-is-solo-staking} - -Одиночный стейкинг — это [запуск узла Ethereum](/run-a-node/), подключенного к Интернету, и внесение 32 ETH для активации [валидатора](#faq), дающего вам возможность участвовать непосредственно в сетевом консенсусе. - -**Одиночный стейкинг увеличивает децентрализацию сети Ethereum**, делая Ethereum устойчивее к цензуре и атакам. Другие методы стейкинга не могут помочь сети в похожих случаях. Одиночный стейкинг — это лучший вариант стейкинга для обеспечения безопасности Ethereum. - -Узел Ethereum состоит из двух клиентов — на слое исполнения (EL) и слое консенсуса (CL). Эти клиенты — это программное обеспечение, которое работает вместе с действительным набором ключей для подписи, чтобы проверять транзакции и блоки, подтверждать правильность главы цепочки, агрегировать подтверждения и предлагать блоки. - -Одиночные дольщики отвечают за работу оборудования, необходимого для функционирования этих клиентов. Для этого настоятельно рекомендуется использовать специальную машину, которая работает на дому: это чрезвычайно полезно для здоровья сети. - -Одиночный дольщик получает вознаграждения непосредственно от протокола за поддержание правильной работы своего валидатора и постоянное подключение к Интернету. - -## Зачем становиться одиночным дольщиком? {#why-stake-solo} - -Одиночный стейкинг предполагает больше ответственности, но предагает вам максимальный контроль над вашими средствами и конфигурацией для стейкинга. - - - - - - - -## Важно знать перед одиночным стейкингом {#considerations-before-staking-solo} - -Как бы мы ни хотели, чтобы одиночный стейкинг был доступен и безопасен для всех, это не так. Есть несколько практических и серьезных соображений, о которых следует помнить, прежде чем делать одиночную ставку ETH. - - - -Запуская собственный узел, вы должны потратить некоторое время на обучение использованию выбранного вами программного обеспечения. Это включает чтение связанной документации и отслеживание каналов связи соответствующих команд разработчиков. - -Чем больше вы будете понимать программное обеспечение, которое запускаете, и чем лучше разберетесь в том, как работает доказательство владения, тем меньше рисков будет при стейкинге и тем легче будет устранять проблемы, возникающие в роли оператора узла. - - - -Настройка узлов требует довольно уверенного владения компьютером, хотя новые инструменты со временем делают все проще. Понимание интерфейса командной строки полезно, но это уже не обязательное требование. - -Также требуется настройка оборудования на самом базовом уровне и некоторое понимание минимальной рекомендуемой спецификации. - - - -Приватные ключи обеспечивают безопасность вашего адреса Ethereum, и вам тоже нужно будет сгенерировать ключи специально для вашего валидатора. Вы должны понимать, как держать все кодовые фразы и приватные ключи в безопасности. {' '} - -Безопасность Ethereum и предотвращение мошенничества - - - -Оборудование время от времени выходят из строя, сетевые подключения тоже, а программное обеспечение клиента иногда нуждается в обновлении. Обслуживание узлов неизбежно и иногда потребует вашего внимания. Советуем оставаться в курсе всех ожидаемых обновлений сети или других важных обновлений клиентов. - - - -Ваши награды пропорциональны времени, когда ваш валидатор находится в сети и должным образом выполняет процесс подтверждения. Простой влечет за собой штрафы, пропорциональные количеству других валидаторов офлайн в то же время, но не приводит к сокращению. Также важна пропускная способность, так как снижается вознаграждение за подтверждения, которые не получены вовремя. Требования будут варьироваться, но рекомендуется скорость не менее 10 Мб/с в обоих направлениях. - - - -В отличие от наказаний за бездействие в офлайн-режиме, сокращение является гораздо более серьезным наказанием, предназначенным для злонамеренных нарушений. Запуская миноритарный клиент с помощью своих ключей, загруженных только на одну машину за раз, вы минимизируете риск попасть под сокращение. С учетом вышесказанного все дольщики должны осознавать риски сокращения. - -Подробнее о сокращении и жизненном цикле валидатора - - - - - -## Как это работает {#how-it-works} - - - -За время активности вы будете зарабатывать вознаграждения в ЕТН, которые будут периодически вноситься на ваш адрес для вывода средств. - -При желании вы можете выйти из роли валидатора, что устраняет требование быть онлайн и останавливает все дальнейшие вознаграждения. Оставшийся баланс будет выведен на адрес вывода, указанный вами во время установки. - -[More on staking withdrawals](/staking/withdrawals/) - -## Начните с панели запуска стейкинга {#get-started-on-the-staking-launchpad} - -Панель запуска стейкинга — это приложение с открытым исходным кодом, которое поможет вам стать стейкером. Оно поможет вам пройти через выбор клиентов, генерирование ваших ключей и внесение депозита ЕТН в контракт депозита стейкинга. Чтобы убедиться, что сделано все необходимое для безопасной настройки валидатора, используйте предоставленный контрольный список. - - - -## На что необходимо обратить внимание при работе с инструментами для настройки клиента и узлов {#node-tool-considerations} - -Количество инструментов для помощи с одиночным стейкингом ваших ETH все время растет, но каждый из них имеет различные риски и выгоды. - -Индикаторы атрибутов, приведенные ниже, используются для предупреждения о сильных и слабых сторонах, которые могут иметь перечисленные инструменты для стейкинга. Используйте этот раздел в качестве справочного материала о том, как мы определяем эти атрибуты, пока вы выбираете, какие инструменты помогут вам на вашем пути к стейкингу. - - - -## Изучите инструменты для настройки узлов и клиентов {#node-and-client-tools} - -Есть множество опций, которые помогут вам с установкой. Используйте индикаторы описанные выше, в этом руководстве, с помощью инструментов, которые находятся ниже. - - - -#### Инструменты для узлов - - - -Обратите внимание на важность выбора [миноритарного клиента](/developers/docs/nodes-and-clients/client-diversity/), так как это повышает безопасность сети и ограничивает ваши риски. Инструменты, позволяющие настраивать миноритарный клиент, обозначаются как мультиклиент. - -#### Генераторы ключей - -Эти инструменты могут быть использованы в качестве альтернативы к [CLI депозита на стейкинг](https://github.com/ethereum/staking-deposit-cli/), чтобы помочь с генерацией ключей. - - - -Есть предложение насчет инструмента для стейкинга, которого не хватает? Ознакомьтесь с нашей [политикой списка продуктов](/contributing/adding-staking-products/), убедитесь, что оно подойдет, и отправьте на рассмотрение. - -## Изучите руководства по одиночному стейкингу {#staking-guides} - - - -## Часто задаваемые вопросы {#faq} - -Вот несколько наиболее распространенных вопросов о стейкинге, о которых стоит знать. - - - -Валидатор — это виртаульный обьект, который живет на Ethereum и участвует в консенсусе протокола Ethereum. Валидаторы представлены балансом, публичным ключом и другими свойствами. Клиент валидатора — это программное обеспечение, которое действует от имени валидатора путем держания и использования его приватного ключа. Один клиент валидатора может содержать много пар ключей, контролируя многие валидаторы. - - - - -Каждая пара ключей, связанная с валидатором, требует для активации ровно 32 ETH. Больше ЕТН, внесенных в депозит на один набор ключей, не увеличивает потенциал вознаграждений, так как каждый валидатор ограничен эффективным балансом в 32 ETH. Это означает, что стейкинг выполняется с шагом в 32 ETH, каждый с собственным набором ключей и баланса. - -Не вносите более 32 ЕТН для одного валидатора. Это не увеличит ваши вознаграждения. Если для валидатора был установлен адрес вывода средств, избыточные средства более 32 ETH будут автоматически выведены на этот адрес в течение следующего перебора валидаторов. - -Если одиночный стейкинг кажется слишком требовательным для вас, подумайте об обращении к поставщику стейкинга как услуги. Если вы работаете с менее чем 32 ETH, обратите внимание на стейкинг-пулы. - - - -Переход в офлайн-режим при завершении работы сети должным образом НЕ приведет к сокращению. Небольшие штрафы за бездействие применяются, если ваш валидатор недоступен для подтверждения данной эпохи (каждые 6,4 минуты), но это сильно отличается от сокращения. Эти штрафы немного меньше, чем вознаграждение, которое вы заработали бы, если бы валидатор был доступен для подтверждения, и потери могут быть возвращены за счет отрабатывания примерно равного количества времени. - -Обратите внимание, что штрафы за бездействие (неактивность) пропорциональны тому, сколько валидаторов отключено одновременно. В тех случаях, когда значительная часть сети одновременно отключена, штрафы для каждого из этих валидаторов будут больше, чем когда недоступен один валидатор. - -В крайних случаях, если сеть перестает завершаться в результате того, что более трети валидаторов находятся в автономном режиме, эти пользователи будут страдать от так называемой утечки квадратичной неактивности, которая является экспоненциальным стоком ETH из счетов офлайн-валидаторов. Это позволяет сети в конечном итоге самовосстанавливаться путем сжигания ЕТН неактивных валидаторов, пока их баланс не достигнет 16 ЕТН, после чего они будут автоматически выброшены из пула валидаторов. Оставшиеся онлайн-валидаторы в конечном итоге снова составят более 2/3 сети, удовлетворяя требования сверхбольшинства, необходимого для завершения цепочки. - - - -Короче говоря, абсолютной гарантии здесь быть не может, но если вы действуете добросовестно, управляете миноритарным клиентом и держите свои ключи для подписи только на одной машине за раз, риск быть скоращенным почти нулевой. - -Есть лишь несколько конкретных путей действия, которые могут привести к тому, что валидатор будет сокращен и выброшен из сети. На момент написания имевшие место сокращения были исключительно результатом избыточных аппаратных настроек, где ключи для подписи хранились на двух отдельных машинах одновременно. Это может непреднамеренно привести к двойному голосу с помощью ваших ключей, что является нарушением, подпадающим под сокращение. - -Запуск клиента сверхбольшинства (любого клиента, используемого более чем 2/3 в сети) также несет риск потенциального сокращения в случае, если у этого клиента возникнет ошибка, приводящая к ветвлению цепи. Это может привести к неисправному ветвлению, которое будет завершено. Чтобы вернуться к запланированной цепочке, потребуется провести окружающее голосование путем применения усилий, чтобы отменить оконченный блок. Этого нарушения, подпадающего под сокращение, также можно избежать, просто запустив вместо этого миноритарный клиент. - -Эквивалентные ошибки в миноритарном клиенте никогда не будут окончательными и, таким образом, никогда не приведут к окружающему голосованию, а просто повлекут штрафы за бездействие, (не сокращение). - - - - - -Индивидуальные клиенты могут немного отличаться по производительности и пользовательскому интерфейсу, поскольку все они разрабатываются разными командами с использованием различных языков программирования. Стоит отметить, что «лучшего» среди них нет. Все производственные клиенты являются отличными образцами программного обеспечения, все выполняют те же основные функции для синхронизации и взаимодействия с блокчейном. - -Поскольку все производственные клиенты предоставляют одинаковые базовые функции, на самом деле очень важно, чтобы вы выбрали миноритарный клиент, то есть любой, который в настоящее время НЕ используется большинством валидаторов в сети. Это может показаться нелогичным, но работа с мажоритарным или надмажоритарным клиентом повышает риск сокращения в случае ошибки в клиенте. Работа с миноритарным клиентом резко ограничивает эти риски. - -Подробнее о том, почему разнообразие клиентов имеет ключевое значение - - - -Хотя виртуальный частный сервер (VPS) может использоваться в качестве замены домашнего оборудования, физический доступ и расположение клиента-валидатора имеет значение. Централизованные облачные решения, такие как Amazon Web Services или Digital Ocean, позволяют избежать необходимости приобретения и эксплуатации оборудования ценой централизации сети. - -Чем больше клиентов-валидаторов работает на одном централизованном решении облачного хранилища, тем более опасным это становится для этих пользователей. Любое событие, при котором эти поставщики будут отключены от сети, будь то атака, нормативные требования или просто отключение питания лии Интернета, приведет к тому, что каждый клиент-валидатор, который полагается на этот сервер, одновременно перейдет в автономный режим. - -Штрафы за офлайн пропорциональны тому, сколько других одновременно находятся в офлайн-режиме. Использование VPS значительно увеличивает риск того, что штрафы за офлайн будут более серьезными, и увеличивает риск квадратичной утечки или сокращения в случае достаточно большого отключения. Чтобы минимизировать свой собственный риск и риск для сети, пользователям настоятельно рекомендуется приобретать и эксплуатировать свое собственное оборудование. - - - - -Для снятия любого вида средств из сети Beacon требуется задать учетные данные для вывода. - -Новые дольщики устанавливают их во время генерации ключа и депозита. Существующие дольщики, которые еще не настраивали этого, могут обновить свои ключи для поддержки этой функциональности. - -Когда будут установлены полномочия на вывод средств, выплаты вознаграждений (накопленные ЕТН после первых 32) будут периодически автоматически распределяться на адрес для вывода средств. - -Чтобы разблокировать и получить весь баланс обратно, вы также должны завершить процесс выхода вашего валидатора. - -More on staking withdrawals - - -## Дополнительные ресурсы {#further-reading} - -- [Проблема разнообразия клиентов Ethereum](https://hackernoon.com/ethereums-client-diversity-problem) — _@emmanuelawosika, 2022 г._ -- [Помощь с разнообразием клиентов](https://www.attestant.io/posts/helping-client-diversity/) — _Джим Макдональд, 2022 г._ -- [Разнообразие клиентов на консенсусном уровне Ethereum](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) — _jmcook.eth, 2022 г._ -- [Как покупать оборудование для валидатора Ethereum](https://www.youtube.com/watch?v=C2wwu1IlhDc) — _EthStaker, 2022 г._ -- [Шаг за шагом: как присоединиться к тестовой сети Ethereum 2.0](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) — _Butta_ -- [Советы по предотвращению сокращения Eth2](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) — _Рауль Джордан, 2020 г._ diff --git a/src/content/translations/ru/staking/withdrawals/index.md b/src/content/translations/ru/staking/withdrawals/index.md deleted file mode 100644 index 4356da9ef62..00000000000 --- a/src/content/translations/ru/staking/withdrawals/index.md +++ /dev/null @@ -1,218 +0,0 @@ ---- -title: Вывод средств, использованных в стейкинге -description: Страница с общим описаанием того, что такое вывод средств из стейкинга, как он работает и что нужно сделать дольщику, чтобы получить свои вознаграждения. -lang: ru -template: staking -image: ../../../../../assets/staking/leslie-withdrawal.png -alt: Носорог Лесли со своими вознаграждениями за стейкинг -sidebarDepth: 2 -summaryPoints: - - Обновление Shanghai/Capella ввело возможность выводить средства из стейкинга в Ethereum. - - Операторы валидаторов должны указать адрес вывода, чтобы активировать эту функцию. - - Вознаграждения автоматически распределяются каждые несколько дней. - - Валидаторы, которые полностью выйдут из стейкинга, получат свой остаток баланса. ---- - - -Вывод средств из стейкинга стал возможен с обновлением Shanghai/Capella, которое произошло 12 апреля 2023 года. Подробнее об обновлении Shanghai/Capella - - -**Вывод средств из стейкинга** — это передача ЕТН из учетной записи валидатора на консенсусном уровне Ethereum (сеть Beacon) на уровень выполнения, где с ними могут проводиться транзакции. - -**Выплаты возгаграждений за остаток** свыше 32 ETH будут автоматически и регулярно отправляться на адрес для вывода средств, связанный с каждым валидатором, после его указания пользователем. Пользователи могут также **выйти из стейкинга полностью**, разблокировав свой полный баланс валидатора. - -## Вознаграждения за стейкинг {#staking-rewards} - -Выплаты вознаграждений автоматически обрабатываются для активных учетных записей валидаторов с максимальным эффективным балансом 32 ETH. - -Весь баланс свыше 32 ETH, заработанный через вознаграждения, фактически не вносит вклад в основной капитал и не увеличивает вес этого валидатора в сети, а потому автоматически выводится в качестве выплаты вознаграждения каждые несколько дней. Помимо предоставления одноразового адреса для вывода средств эти награды не требуют каких-либо действий от оператора валидатора. Все это инициируется на консенсусном уровне, поэтому никакого газа (платы за транзакцию) не требуется ни на одном этапе. - -### Как мы к этому пришли? {#how-did-we-get-here} - -За последние несколько лет Ethereum прошел несколько сетевых обновлений, перейдя к сети, защищенной самими ЕТН вместо энергоемкой добычи, как это было раньше. Участие в консенсусе на Ethereum теперь называется «стейкингом» (т. е. ставками, внесением долей), поскольку участники добровольно блокируют свои ЕТН, «ставя» их ради возможности участвовать в сети. Пользователи, которые следуют правилам, будут вознаграждены, а попытки обмана могут привести к наказаниям. - -С самого запуска контракта на депозиты для стейкинга в ноябре 2020 года некоторые отважные первопроходцы Ethereum добровольно заблокировали средства, чтобы активировать «валидаторы» — специальные учетные записи, которые имеют право официально подтверждать и предлагать блоки, следуя сетевым правилам. - -До обновления Shanghai/Capella было невозможно использовать поставленные ETH или получать к ним доступ. Но теперь можно при желании автоматически получать вознаграждения на выбранную учетную запись, а также в любое время снимать поставленные ЕТН. - -### Как подготовиться? {#how-do-i-prepare} - - - -### Важные уведомления {#important-notices} - -Предоставление адреса вывода является необходимым шагом для любой учетной записи валидатора, прежде чем она получит право на вывод ЕТН со своего баланса. - - - Каждой учетной записи валидатора можно назначить только один адрес вывода, один раз. Как только адрес выбран и передан на уровень консенсуса, его нельзя отменить или изменить. Дважды проверьте принадлежность и точность указанного адреса, прежде чем его отправлять. - - -Неуказание адреса не создает угрозы для ваших средств при условии, что ваша мнемоническая/кодовая фраза остается в безопасности офлайн и не раскрывается каким-либо образом. Если не указывать учетные данные для вывода средств, ЕТН просто останутся заблокированными в учетной записи валидатора, как это было до предоставления адреса вывода средств. - -## Полный выход из стейкинга {#exiting-staking-entirely} - -Предоставление адреса вывода средств требуется до того, как _любые_ средства смогут быть переведены с баланса учетной записи валидатора. - -Пользователи, желающие выйти из стейкинга полностью и вывести обратно свой полный баланс, должны также подписать и транслировать сообщение о «добровольном выходе» с использованием ключей валидатора, что запустит процесс выхода из стейкинга. Это делается с клиентом-валидатором и передается на ваш консенсусный узел, газ не требуется. - -Процесс выхода валидатора занимает различные промежутки времени в зависимости от того, сколько других выходят одновременно. После завершения эта учетная запись больше не будет нести ответственность за выполнение сетевых обязанностей валидатора, иметь права на вознаграждения и иметь ЕТН «в доле» стейкинга. При этом учетная запись будет отмечена как имеющая возможность полного вывода средств. - -Когда учетная запись помечается как подходящая для вывода средств и предоставляются учетные данные для вывода, пользователю остается только подождать, делать ничего не нужно. Учетные записи автоматически и постоянно перебираются предлагающими блоки и проверяются на наличие подходящих средств после выхода. Остаток на вашем балансе будет переведен в полном объеме («полный вывод») во время следующего перебора. - -## Когда можно будет выводить средства из стейкинга? {#when} - -Выводить средства из стейкинга можно уже сейчас! Функция вывода была включена в рамках обновления Shanghai/Capella, которое вышло 12 апреля 2023 года. - -Обновление Shanghai/Capella позволило возвращать ранее внесенные ETH на обычные учетные записи Ethereum. Это замкнуло цикл ликвидности в стейкинге и на шаг приблизило Ethereum к построению устойчивой, масштабируемой, безопасной децентрализованной экосистемы. - -- [Подробнее об истории Ethereum](/history/) -- [Подробнее о дорожной карте Ethereum](/roadmap/) - -## Как происходят платежи при выводе средств? {#how-do-withdrawals-work} - -Наличие у конкретного валидатора права на вывод средств определяется состоянием самой учетной записи валидатора. Участие пользователя не требуется, чтобы определять, нужно ли инициировать вывод средств с учетной записи. Весь процесс выполняется автоматически консенсусным уровнем в рамках непрерывного цикла. - -### Больше визуализации? {#visual-learner} - -Посмотрите объяснение выводов средств из стейкинга в Ethereum от Finematics: - - - -### «Перебор» валидаторов {#validator-sweeping} - -Когда для валидатор запланировано предложение следующего блока, он должен построить очередь вывода до 16 правомочных снятий. При этом все начинается с индекса валидатора 0, определяется наличие возможных выводов для данной учетной записи по правилам протокола, а при таком наличии запись добавляется в очередь. Валидатор, предлагающий следующий блок, будет продолжать работу там, где остановился предыдущий, и продвижение по порядку происходит бесконечно. - - -Представьте себе аналоговые часы. Срелка на часах указывает на час, движется в одном направлении, не пропускает ни одного часа, а в конце концов снова поворачивается к началу после того, как достигнут последний номер.

-Теперь вместо 1 до 12 представьте, что часы имеют от 0 до N (общее число счетов валидаторов, которые когда-либо были зарегистрированы на консенсусном уровне, более 500 000 по состоянию на январь 2023 г.).

-Стрелка на часах указывает на следующего валидатора, который должен быть проверен на подходящий вывод средств. Это все начинается с 0 и продвигается до конца, не пропуская ни одной учетной записи. Когда достигается последний валидатор, цикл продолжается с начала. -
- -#### Проверка учетной записи для снятия средств {#checking-an-account-for-withdrawals} - -Когда инициатор перебирает валидаторы и проверяет наличие у них возможного вывода средств, каждый проверяемый валидатор оценивается по короткому ряду вопросов, чтобы определить, нужно ли инициировать вывод, а если да, то сколько ЕТН должно быть снято. - -1. **Указан ли адрес вывода?** Если адрес для вывода средств не указан, то учетная запись будет пропущена, а вывод средств не начнется. -2. **Валидатор вышел из системы и подходит для полного вывода средств?** Если валидатор полностью вышел, а мы достигли той эпохи, когда его учетная запись считается подходящей для вывода средств, будет обработан полный вывод. При этом весь оставшийся баланс будет переведен на адрес для вывода. -3. **Равен ли максимальный эффективный баланс 32?** Если в учетной записи есть учетные данные для вывода, она не вышла полностью из системы и имеет вознаграждения сверх 32 в состоянии ожидания, будет обработан частичный вывод средств, который переведет только вознаграждения сверх 32 на адрес вывода пользователя. - -Операторы валидаторов в течение жизненного цикла валидатора предпринимают только два действия, которые непосредственно влияют на этот поток: - -- Предоставление учетных данных для любого вывода средств -- Выход из сети, который вызовет полный вывод - -### Без газа {#gas-free} - -Такой подход к выводу средств из стейкинга позволяет избежать необходимости дольщикам вручную отправлять транзакцию с просьбой о выводе определенной суммы ЕТН. Это означает, что **газ (плата за транзакцию)** не требуется, а выводы средств не конкурируют за существующее пространство блока уровня исполнения. - -### Как часто я буду получать вознаграждения за стейкинг? {#how-soon} - -Максимальное количество выводов, которые можно обработать в одном блоке: 16. При таком темпе 115 200 выводов валидаторов могут обрабатываться в день (при условии, что нет пропущенных слотов). Как сказано выше, валидаторы, не имеющие права на вывод средств, будут пропущены, что сократит время, необходимое для завершения перебора валидаторов. - -Исходя из этого расчета, мы можем оценить время, которое потребуется для обработки заданного числа выводов: - - - -| Количество выводов | Время для завершения | -| :----------------: | :------------------: | -| 400 000 | 3,5 дня | -| 500 000 | 4,3 дня | -| 600 000 | 5,2 дня | -| 700 000 | 6,1 дня | -| 800 000 | 7,0 дня | - - - -Как видите, процесс замедляется при увеличении количества валидаторов в сети. Увеличение количества пропущенных слотов может пропорционально замедлить этот процесс, но в целом это будет представлять более медленный вариант возможных результатов. - -## Часто задаваемые вопросы {#faq} - - -Нет, предоставление учетных данных для вывода средств — однократное действие, после отправки их нельзя изменить. - - - -При установке адреса для вывода на уровне исполнения учетные данные для вывода у этого валидатора меняются навсегда. Это означает, что старые учетные данные больше не будут работать, а новые будут использоваться непосредственно для учетной записи уровня исполнения. - -Адресом вывода может быть либо смарт-контракт (контролируемый своим кодом), либо своя внешняя учетная запись (EOA, контролируемая своим приватным ключом). В настоящее время эти учетные записи не имеют возможности передавать сообщение обратно на консенсусный уровень, который сигнализировал бы об изменении учетных данных валидатора, и добавление этой функции добавило бы ненужную сложность к протоколу. - -В качестве альтернативы изменению адреса вывода для конкретного валидатора пользователи могут установить смарт-контракт в качестве адреса вывода, который мог бы обрабатывать ротацию ключей, например Safe. Пользователи, которые настраивают для своих средств собственную учетную запись EOA, могут выполнить полный выход, чтобы вывести все свои внесенные в стейкинг средства, а затем повторно внести их, используя новые учетные данные. - - - - -Если вы являетесь частью стейкинг-пула или удерживаете стейкинг-токены, то вы должны спросить у вашего поставщика более подробную информацию о том, как обрабатывается вывод из стейкинга, так как каждая служба работает по-своему. - -Как правило, пользователи должны иметь возможность свободно вернуть свои основные использованные в стейкинге ЕТН или изменить поставщика услуг стейкинга, которого они используют. Если конкретный пул становится слишком большим, средства могут быть выведены, выкуплены и повторно использованы в стейкинге у меньшего поставщика. А при наличии достаточного количества накопленных ЕТН вы можете заниматься стейкингом дома. - - - - -Да, если у вашего валидатора указан адрес вывода средств. Его необходимо указать один раз, чтобы активировать возможность вывода средств. Затем выплаты вознаграждений будут автоматически срабатывать каждые несколько дней при каждом переборе валидаторов. - - - - -Нет. Если ваш валидатор все еще активен в сети, полный вывод не произойдет автоматически. Для этого необходимо вручную инициировать добровольный выход. - -Как только валидатор завершит процесс выхода (и если у учетной записи есть учетные данные для вывода средств), лишь тогда остаток будет выведен во время следующего перебора валидаторов. - - - - -Вывод средств производится автоматически, передавая все ЕТН, которые не вносят активного вклада в стейкинг. Это включает весь баланс на учетных записях, которые завершили процесс выхода. - -Запросить вывод конкретной желаемой суммы ETH вручную невозможно. - - - - -Операторам валидаторов рекомендуется посетить страницу Вывод средств с панели запуска стейкинга, на которой можно найти более подробную информацию о том, как подготовить валидатор к выводу средств. Подготовка, время событий и дополнительная информация о том, как работает вывод средств. - -Чтобы сначала опробовать свою конфигурацию в тестовой сети, посетите панель запуска стейкинга в тестовой сети Goerli. - - - - -Нет. После выхода валидатора и вывода всего его баланса все дополнительные средства, размещаемые на этом валидаторе, будут автоматически переводиться на адрес для снятия средств во время следующего перебора валидаторов. Чтобы внести в стейкинг ETH заново, потребуется активировать новый валидатор. - - -## Дополнительная литература {#further-reading} - -- [Вывод средств с панели запуска стейкинга](https://launchpad.ethereum.org/withdrawals) -- [EIP-4895: вывод средств в сети Beacon в виде операций](https://eips.ethereum.org/EIPS/eip-4895) -- [Ethereum Cat Herders — об обновлении Shanghai](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) -- [PEEPanEIP #94: вывод ETH из стейкинга (тестирование), Potuz и Сяо-Вэй Ван](https://www.youtube.com/watch?v=G8UstwmGtyE) -- [PEEPanEIP#68: EIP-4895: вывод средств в сети Beacon как операции, Алекс Стокс](https://www.youtube.com/watch?v=CcL9RJBljUs) -- [Понимание эффективного баланса валидатора](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/se/nft/index.md b/src/content/translations/se/nft/index.md deleted file mode 100644 index b711dfc7000..00000000000 --- a/src/content/translations/se/nft/index.md +++ /dev/null @@ -1,356 +0,0 @@ ---- -title: Icke-fungibla polletter (NFT) -description: En översikt över NFT:er på Ethereum -lang: se -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: En Eth-logotyp visas via hologram. -summaryPoint1: Ett sätt att representera något unikt, som en Ethereum-baserad tillgång. -summaryPoint2: NFT:er ger mer kraft till innehållsskapare än någonsin tidigare. -summaryPoint3: Drivs av smarta kontrakt på Ethereums blockkedja. ---- - -NFT:er tar för närvarande den digitala konst- och samlarvärlden med storm. Digitala artister ser sina liv förändras tack vare enorm försäljning till en ny kryptopublik. Och kändisar hänger på tåget när de ser en ny möjlighet att bygga relationer med fansen. Men digital konst är bara ett sätt att använda NFT:er. De kan verkligen användas för att representera äganderätt till vilken unik tillgång som helst, som en officiell handling för ett föremål i den digitala eller fysiska sfären. - -Om Andy Warhol hade fötts i slutet av 90-talet, skulle han förmodligen ha skapat sin Campbell-soppa som en NFT. Det är bara en tidsfråga innan Nike lägger ut en serie Jordans på Ethereum. Och inom en snar framtid kanske du kan bevisa att du är ägare till din bil med hjälp av en NFT. - -## Vad är en NFT? {#what-are-nfts} - -NFT:er är polletter, eller tokens på engelska, som vi kan använda för att representera äganderätten till unika föremål. De låter oss pollettisera, det vill säga, skapa tokens för konst, samlarföremål eller till och med fastigheter. Ägarskap av en tillgång säkras av Ethereums blockkedja – ingen kan modifiera ägarregistret och eller kopiera/klistra in en ny NFT för att skapa den. - -NFT är en akronym för Non-Fungible Token, en icke-fungibel pollett. Icke-fungibel är en ekonomisk term som du kan använda för att beskriva saker som dina möbler, en låtfil eller din dator. Dessa saker är inte utbytbara mot andra föremål eftersom de har unika egenskaper. - -Fungibla föremål, å andra sidan, kan bytas ut eftersom det är deras värde som definierar, inte deras unika egenskaper. Till exempel är ETH eller dollar fungibla eftersom 1 ETH/1 USD kan bytas mot en annan 1 ETH/1 USD. - - - -## Internet för tillgångar {#internet-of-assets} - -NFT och Ethereum löser några av de problem som finns på internet idag. Allteftersom allt blir mer digitalt finns det ett behov av att replikera egenskaperna hos fysiska objekt som brist på tillgång, unikhet och bevis på ägande. För att inte tala om att digitala föremål ofta bara fungerar när de är kopplade till deras produkt. Du kan till exempel inte sälja en iTunes-mp3-fil som du har köpt eller så kan du inte byta ett företags lojalitetspoäng mot krediter på en annan plattform, även om det finns en marknad för det. - -Så här ser ett internet av NFT:er ut jämfört med internet som de flesta av oss använder idag ... - -### En jämförelse {#nft-comparison} - -| Ett NFT-internet | Internet idag | -| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| NFT:er är digitalt unika, det finns inte två NFT:er som är den andra lik. | En kopia av en fil, som en .mp3 eller .jpg, är samma som originalet. | -| Varje NFT måste ha en ägare och detta är offentligt registrerat och lätt för alla att verifiera. | Ägarregister för digitala föremål lagras på servrar som kontrolleras av institutioner – du måste lita på vad de lovar. | -| NFT:er är kompatibla med allt som byggts med hjälp av Ethereum. En NFT-biljett till ett evenemang kan handlas på alla Ethereum-marknader, mot en helt annan NFT. Du kan byta ett konstföremål mot en biljett till ett evenemang! | Företag med digitala objekt måste bygga sin egen infrastruktur. Till exempel skulle en app som utfärdar digitala biljetter till evenemang behöva bygga sin egen handelsplats för biljetter. | -| Innehållsskapare kan sälja sina verk var som helst och få tillgång till en global marknad. | Kreatörer förlitar sig på infrastrukturen och distributionen av de plattformar de använder. Dessa är ofta föremål för användarvillkor och geografiska begränsningar. | -| Kreatörer kan behålla äganderätten till sitt eget verk och göra anspråk på återförsäljningsavgifter direkt. | Plattformar, som musikstreamingtjänster, behåller huvuddelen av vinsten från försäljningen. | -| Föremål kan användas på överraskande sätt. Du kan till exempel använda digitala konstverk som säkerhet i ett decentraliserat lån. | | - -### Exempel på NFT:er {#nft-examples} - -NFT-världen är relativt ny. I teorin omfattar NFT allt som är unikt och där man behöver kunna bevisa ägandeskap. Här är några exempel på NFT:er som finns idag, för att hjälpa dig att förstå vad det egentligen är: - -- [Ett unikt digitalt konstverk](https://foundation.app/artworks) -- [Ett unikt par sneakers i en modelinje med begränsad upplaga](https://www.metagrail.co/auctions/91cf83fb-3477-4155-aae8-6dcb9b853397) -- [Ett föremål som används i ett spel](https://market.decentraland.org/) -- [En uppsats](https://zora.co/0x517bab7661C315C63C6465EEd1b4248e6f7FE183/145) -- [Ett digitalt samlarobjekt](https://www.larvalabs.com/cryptopunks/details/1) -- [Ett domännamn](https://app.ens.domains/name/ethereum.eth) -- [En biljett som ger dig tillgång till ett evenemang eller en kupong](https://www.yellowheart.io/) -- [Köp verkliga varor](https://www.tangible.store/) -- [Andelar i fastigheter](https://realt.co/) -- [Examensbevis](https://www.degreecert.com/) -- [Musik royalties via NFTs](https://opulous.org/) -- [Move 2 Earn](https://yeticoineth.com/about.html) -- [Digital identitet](https://photochromic.io/) - -### exempel på ethereum.org {#ethereum-org-examples} - -Exempel på ethereum.org - -#### POAPs (Proof of Attendance Protocol) {#poaps} - -Om du bidrar till ethereum.org kan du göra anspråk på en NFT för POAP. Det här är samlarobjekt som bevisar att du deltog i ett evenemang. Vissa kryptoträffar har använt POAP:er som en form av biljett till evenemangen. Vissa kryptoträffar har använt POAP:er som en typ av biljett till evenemangen. - -![ethereum.org POAP](./poap.png) - -#### ethereum.eth {#ethereum-dot-eth} - -Denna webbplats har ett alternativt domännamn som drivs med hjälp av NFT:er,**ethereum.eth**. Vår `.org`-adress hanteras centralt av en leverantör av domännamnssystem (DNS), medan ethereum`.eth` är registrerad på Ethereum via Ethereum Name Service (ENS). Och det ägs och förvaltas av oss. [Kontrollera vår ENS-historik](https://app.ens.domains/name/ethereum.eth) - -[Mer om ENS](https://app.ens.domains) - -## Hur fungerar NFT:er? {#how-nfts-work} - -NFT:er skiljer sig från ERC-20-polletter, såsom DAI eller LINK, på grund av att varje enskild polett är helt unik och inte delbar. NFT:er ger möjligheten att tilldela eller göra anspråk på ägande av alla unika digitala data. Dessa är spårbara genom att använda Ethereums blockkedja som en offentlig reskontra. En NFT präglas av digitala objekt som en representation av digitala eller icke-digitala tillgångar. Till exempel kan en NFT representera: - -- Digital konst: - - GIFs - - Samlarföremål - - Musik - - Videor -- Verkliga fysiska föremål: - - Handlingar till en bil - - Biljetter till ett verkligt evenemang - - Pollettiserade fakturor - - Juridiska dokument - - Signaturer -- Otroligt många flera alternativ för att öka din kreativitet! - -Ägarskap av NFT:er hanteras via ett unikt ID och metadata som ingen annan pollett kan kopiera. NFT:er skapas (präglas, som mynt) genom smarta kontrakt som tilldelar ägande och som ser till att NFT:er kan överföras mellan personer och enheter. När någon skapar eller präglar en NFT, så exekverar de kod som är lagrad i smarta kontrakt som överensstämmer med olika standarder, exempelvis [ERC-721](/developers/docs/standards/tokens/erc-721/). Denna information läggs till i den blockkedja där NFT hanteras. Präglingsprocessen, från en hög nivå, innefattar följande steg som den går igenom: - -- Skapar ett nytt block -- Validerar information -- Registrera information i blockkedjan - -NFT:er har några speciella egenskaper: - -- Varje pollett som präglas har en unik identifierare som är direkt kopplad till en Ethereum-adress. -- De är inte direkt utbytbara med andra polletter 1:1. Till exempel är 1 ETH exakt samma som en annan ETH. Detta är inte fallet med NFT:er. -- Varje pollett har en ägare och denna information är enkel att verifiera. -- De finns på Ethereum och kan köpas och säljas på vilken Ethereum-baserad NFT-marknad som helst. - -Med andra ord, om du _äger_ en NFT: - -- Du kan enkelt bevisa att du äger den. - - Att bevisa att du äger en NFT är mycket likt att bevisa att du har ETH på ditt konto. - - Eller till exempel, låt oss säga att du köper en NFT och äganderätten till denna unika pollett överförs till din plånbok via din offentliga adress. - - Polletten bevisar att din kopia av den digitala filen är originalet. - - Din privata nyckel är ett bevis på att du äger originalet. - - Innehållsskaparens offentliga nyckel fungerar som ett äkthetscertifikat för just den digitala artefakten. - - Skaparens offentliga nyckel är i huvudsak en permanent del av pollettens historia. Skaparens offentliga nyckel kan visa att den pollett du har skapades av en viss individ, vilket bidrar till dess marknadsvärde (kontra en förfalskning). - - Ett annat sätt att tänka vad gäller bevis på att du äger NFT, är genom att signera meddelanden för att bevisa att du äger den privata nyckeln bakom adressen. - - Som nämnts ovan är din privata nyckel ett bevis på äganderätten till originalet. Detta bevisar för oss att de privata nycklarna bakom den adressen är de som kontrollerar NFT:n. - - Ett signerat meddelande kan användas som bevis på att du äger dina privata nycklar utan att avslöja dem för någon och därmed bevisa att du även äger NFT:n! -- Ingen kan manipulera den på något sätt. -- Du kan sälja den, och i vissa fall kommer detta att ge den ursprungliga skaparen återförsäljningsroyalty. -- Eller så kan du behålla den för evigt, trygg i vetskapen om att din tillgång är säkrad av din plånbok på Ethereum. - -Och om du _skapar_ en NFT: - -- Du kan enkelt bevisa att du skapade den. -- Du bestämmer tillgången. -- Du kan tjäna royalties varje gång den säljs. -- Du kan sälja den på vilken NFT-marknad som helst eller peer-to-peer. Du är inte låst till någon plattform och du behöver inte någon som mellanhand. - -### Brist på tillgång {#scarcity} - -Skaparen av en NFT får bestämma hur mycket eller hur många det ska finnas av den. - -Tänk till exempel på en biljett till ett sportevenemang. Precis som en arrangör av ett evenemang kan välja hur många biljetter som ska säljas, kan skaparen av en NFT bestämma hur många kopior det ska finnas av den. Ibland är dessa exakta kopior, till exempel 5 000 normala entrébiljetter. Ibland präglas flera som är väldigt lika, men var och en lite olika, till exempel en biljett med en tilldelad plats. I ett annat fall kan skaparen vilja skapa en NFT där endast en är präglad som en speciell sällsynt samlarobjekt. - -I dessa fall skulle varje NFT fortfarande ha en unik identifierare (som en streckkod på en traditionell "biljett"), med endast en ägare. Den avsedda bristen på NFT spelar roll, och det är upp till skaparen. En skapare kan ha för avsikt att göra varje NFT helt unik för att skapa brist, eller ha skäl att producera flera tusen kopior. Kom ihåg att all denna information är offentlig. - -### Royalties {#royalties} - -Vissa NFTs kommer automatiskt att betala ut royalties till sina skapare när de säljs. Detta är fortfarande ett koncept under utveckling, men det är ett av de mest kraftfulla. Ursprungliga ägare till[EulerBeats Originals](https://eulerbeats.com/)tjäna 8 % royalty varje gång NFT säljs vidare. Och vissa plattformar, som [Foundation](https://foundation.app) och [Zora](https://zora.co/), stödja royalties för sina artister. - -Detta är helt automatiskt så kreatörer kan bara luta sig tillbaka och tjäna royalties när deras arbete säljs från person till person. För närvarande är det väldigt manuellt att ta reda på royalties och det saknar noggrannhet – många kreatörer får inte betalt vad de förtjänar. Om din NFT har en royalty inprogrammerad kommer du aldrig att missa någon royaltybetalning. - -## Vad används NFT till? {#nft-use-cases} - -Här är mer information om några av de bättre utvecklade användningsfallen och visionerna för NFTs på Ethereum. - -- [Digitalt innehåll](#nfts-for-creators) -- [Föremål inne i spel](#nft-gaming) -- [Domännamn](#nft-domains) -- [Fysiska föremål](#nft-physical-items) -- [Investeringar och säkerheter](#nfts-and-defi) -- [Tokengating](#tokengating) - - - -### Maximera intäkterna för kreatörer {#nfts-for-creators} - -Den största användningen av NFT:er sker idag inom världen för digitalt innehåll. Det beror på att branschen idag är splittrad. Innehållsskapare ser sin vinst och intjäningspotential slukas av plattformar. - -En konstär eller artist som publicerar arbete på ett socialt nätverk tjänar pengar på plattformen som säljer annonser till artistens följare. De får exponering i gengäld, men exponeringen betalar inte räkningarna. - -NFT: s driver en ny skaparekonomi där kreatörer inte lämnar över ägandet av sitt innehåll till plattformarna de använder för att publicera det. Ägarskap är inbakat i själva innehållet. - -När de säljer sitt innehåll går pengarna direkt till dem. Om den nya ägaren sedan säljer NFT, kan den ursprungliga skaparen till och med automatiskt få royalties. Detta garanteras varje gång den säljs eftersom skaparens adress är en del av pollettens metadata – metadata som inte kan ändras. - - -
Utforska, köp eller skapa din egen NFT-konst/dina egna NFT-samlarföremål ...
- - Utforska NFT-konst - -
- -#### Problemet med att kopiera/klistra in {#nfts-copy-paste} - -Kritiker tar ofta upp det faktum att NFT:er "är dumma" vanligtvis tillsammans med en bild av dem själva med skärmdumpar av ett NFT-konstverk. "Titta, nu har jag samma bild gratis!", säger de självbelåtet. - -Ja, på ett vis kanske det är så. Men gör googlingen av en bild av Picassos målning Guernica dig till den nya, stolta ägaren av ett konsthistoriens största verk värt flera miljoner dollar? - -Att faktiskt äga den äkta varan är i slutändan ldet som räknas och det är marknaden som bestämmer hur mycket den är värd. Ju fler gånger det tas skärmdumpar av innehåll och ju mer det delas och används av allmänheten, desto mer värde får det. - -Att äga en faktisk sak som kan verifieras har alltid mer värde än att inte göra det. - - - -### Öka spelpotentialen {#nft-gaming} - -NFT:er har skapat ett stort intresse bland spelutvecklare. NFT:er kan tillhandahålla register över ägande av föremål i spelet, driva på ekonomin i spelet och ge spelarna en mängd fördelar. - -I många vanliga spel kan du köpa saker som du kan använda inne i spelet. Men om det objektet skulle har varit en NFT skulle du ha kunnat få igen dina pengar genom att sälja det när du har spelat klart. Du kan till och med göra en vinst om just det objektet blir mer önskvärt. - -Spelutvecklare skulle kunna tjäna – som utgivare av NFT – en royalty varje gång ett föremål säljs vidare på den öppna marknaden. Detta skapar en mer ömsesidigt fördelaktig affärsmodell där både spelare och utvecklare kan tjäna pengar på den sekundära NFT-marknaden. - -Detta betyder också att om ett spel inte längre underhålls av utvecklarna, förblir de föremål du har samlat ihop dina. - -I slutändan kan de föremål som du svettas för i spelet alltid finnas kvar, även om spelet i sig inte finns kvar. Även om ett spel inte längre underhålls, kommer dina föremål alltid att vara i din ägo. Detta innebär att föremål i spelet blir digitala samlarföremål och har ett värde utanför spelet. - -Decentraland, ett virtuell verklighetsspel, låter dig till och med köpa NFT:er som representerar virtuella tomter som du kan använda hur du vill. - - -
Kolla in Ethereum-spel, som drivs med hjälp av NFT:er ...
- - Utforska NFT-spel - -
- - - -### Skapa Ethereum-adresser som är lättare att komma ihåg {#nft-domains} - -Ethereums namntjänst använder NFT för att ge din Ethereum-adress ett namn som är lättare att komma ihåg, som `mywallet.eth`. Det betyder att du kan be någon att skicka ETH till dig via `mywallet.eth` i ställe för `0x123456789.....`. - -Detta fungerar på liknande sätt som ett domännamn för en webbplats som gör en IP-adress enklare att komma ihåg. Och precis som domäner har ENS-namn ett värde, vanligtvis baserat på längd och relevans. Med ENS behöver du inget domänregister för att underlätta överföringen av ägandeskap. Istället kan du handla med dina ENS-namn på en NFT-marknadsplats. - -Ditt ENS-namn kan: - -- Ta emot kryptovaluta och andra NFT:er. -- Peka mot en decentraliserad webbplats, som[ethereum.eth](https://ethereum.eth.link). [Mer om att decentralisera din webbplats](https://docs.ipfs.io/how-to/websites-on-ipfs/link-a-domain/#domain-name-service-dns) -- Lagra eventuell godtycklig information, inklusive profilinformation som e-postadresser och Twitter-handtag. - - - -### Fysiska föremål {#nft-physical-items} - -Pollettisering av fysiska föremål är ännu inte lika utvecklad som deras digitala motsvarigheter. Men det finns massor av projekt som utforskar pollettiseringen av fastigheter, unika modeartiklar och många andra saker. - -Eftersom NFT:er i huvudsak är transaktionshandlingar kan du en dag kan köpa en bil eller ett hem med genom att använda ETH och få handlingen som en NFT i gengäld (i samma transaktion). När saker och ting blir allt mer högteknologiska är det inte svårt att föreställa sig en värld där din Ethereum-plånbok blir nyckeln till din bil eller hem – där din dörr låses upp av det kryptografiska beviset på ägande. - -När det finns värdefulla tillgångar som bilar och egendom representerade på Ethereum, kan du använda NFT:er som säkerhet i decentraliserade lån. Detta är särskilt användbart om du inte är rik på kontanter eller kryptovalutor medn äger fysiska föremål av värde. [Mer om DeFi](/defi/) - - - -### NFT:er och DeFi {#nfts-and-defi} - -NFT-världen och världen av [decentraliserade finanser (DeFi)](/defi/) börjar arbeta tillsammans på ett flertal intressanta sätt. - -#### NFT-stödda lån {#nft-backed-loans} - -Det finns DeFi-applikationer som låter dig låna pengar genom att använda säkerheter. Till exempel kan du ställa en säkerhet på 10 ETH för att du ska kunna låna 5 000 DAI ([en så kallad stablecoin](/stablecoins/)). Detta garanterar att långivaren får sina pengar tillbaka – om låntagaren inte betalar tillbaka i DAI skickas säkerheten till långivaren. Men alla har inte tillräckligt med krypto för att använda som säkerhet. - -Projekt börjar utforska möjligheten att använda NFT:er som säkerhet istället. Föreställ dig att du köpte en sällsynt CryptoPunk NFT för länge sedan – de kan vara värda tusentals dollar i dagens priser. Genom att ställa detta som säkerhet kan du få tillgång till ett lån med samma uppsättning av regler. Om du inte betalar tillbaka DAI kommer din CryptoPunk att skickas till långivaren som säkerhet. Detta kan så småningom fungera med allt du pollettiserar som en NFT. - -Och detta är inte svårt för Ethereum, eftersom båda världarna (NFT och DeFi) delar samma infrastruktur. - -#### Delägande {#fractional-ownership} - -NFT-skapare kan också skapa "aktier" för sin NFT:er. Detta ger investerare och fans möjlighet att äga en del av en NFT utan att behöva köpa hela objektet. Detta ger ännu fler möjligheter för både personer som myntar NFT och samlare. - -- Fraktionerade NFT:er kan handlas på en [>DEX](/defi/#dex), som Uniswap, inte bara på [NFT-marknadsplatser](/dapps?category=collectibles). Det innebär fler köpare och säljare. -- En NFT:s totala pris kan definieras med hjälp av priset för varje andel. -- Du har större möjlighet att äga och göra vinster på saker du bryr dig om. Det är svårare att hamna i situationer där du inte längre har råd om du äger NFT:er. - -Detta är fortfarande experimentellt men du kan lära dig mer om ägande av fraktionerade NFT:er på följande börser: - -- [NIFTEX](https://landing.niftex.com/) -- [NFTX](https://gallery.nftx.org/) - -I teorin skulle detta låsa upp möjligheten att göra en mängd olika saker, som att äga en del av en Picasso-målning. Du skulle bli aktieägare i en Picasso-NFT, vilket betyder att du skulle ha något att säga till om vad gäller det objektet, som intäktsdelning. Det är mycket troligt att du inom en snar framtid kommer att äga en andel i en NFT och tack vare det gå med i en decentraliserad autonom organisation (DAO) för hantering av den tillgången. - -Dessa är Ethereum-drivna organisationer som tillåter främlingar, som globala aktieägare av en tillgång, att samordna sig på ett säkert sätt, utan att nödvändigtvis behöva lita på de andra personerna. Det beror på att inte en enda krona kan spenderas utan gruppens godkännande. - -Som vi nämnde är detta ett område som håller på att utvecklas. NFT, DAO, fraktionerade polletter ... Alla utvecklas i olika takt. Men all infrastruktur för dem finns redan och de kan enkelt fungera tillsammans eftersom de alla talar samma språk: Ethereum. Så håll koll på detta område. - -[Mer om DAOs](/dao/) - -### Äkthetsintyg {#certificates} - -Företag som erbjuder falska certifikat för universitetsexamen är enligt uppgift en miljardindustri. Men NFT:er kan hjälpa till att bekämpa detta. NFT:er kan vara ett säkert och snabbt sätt att verifiera en persons examensbevis. - -Tokengating är ett sätt att begränsa tillgången till något och där kan NFT:er används för att få åtkomst till det som är begränsat. [Trinity Business School (TBS) i Irland planerar också att erbjuda NFT:er från 2023](https://trinitynews.ie/2022/04/business-school-to-offer-degree-nfts/). - - - -### Tokengating {#tokengating} - -Tokengating är ett sätt att begränsa tillgången till något och där kan NFT: er används för att få åtkomst till det som är begränsat. Dessa saker kan variera kraftigt beroende på plattform men några populära exempel är begränsat innehåll (gated content), privata chattservrar och inom e-handeln, exklusiva produkter. - -En plattform som använder sig av tokengating brukar be dig ansluta din plånbok för att bevisa att du äger den NFT som krävs. Om du har den NFT du behöver så får du åtkomst. Om du inte har det, kommer innehållet att förbli låst. På grund av att varje NFT är unik går det inte att förfalska ägarskap för att få tillgång till innehållet. - -Eftersom NFT:er befinner sig på Ethereums plattform, kan de användas för att låsa upp Ethereum pollettportar (tokengates) på alla plattformar som använder dem. En enskild NFT du äger skulle kunna låsa upp begränsat innehåll som finns bakom en port, exempelvis privata chattservrar eller andra exklusiva produkter på helt olika webbplatser eller applikationer. - -Om prägling och distribuering av NFT:er handlar om generering som görs av gemenskapen (community) eller gemenskapsdigitalisering, handlar tokengating – att låsa innehåll bakom portar – om att vårda gemenskapen och se till att den blir framgångsrik. NFT:er ses mer som ett verktyg för medlemskap eller lojalitet och de är ett bra sätt att leverera de belöningar som är kopplade till dem, på ett pålitligt sätt. - -#### Exempel - -- [Collab.land](https://collab.land/) utför tokengating för chattservrar för Discord eller grupper på Telegram -- [Unlock protocol](https://unlock-protocol.com/) är ett protokoll för tokengating -- [Shopify](https://help.shopify.com/en/manual/products/digital-service-product/nfts) har en växande lista med appar som tillåter handlare använda pollettportar för att få åtkomst till produkter och rabatter - - - -## Ethereum och NFT:er {#ethereum-and-nfts} - -Ethereum gör det möjligt för NFT:er att fungera av ett antal anledningar: - -- Transaktionshistorik och metadata för polletter är offentligt verifierbara – det är enkelt att bevisa ägarhistoriken. -- När en transaktion väl har bekräftats är det nästan omöjligt att manipulera den informationen för att "stjäla" äganderätten. -- Handel med NFT kan ske peer-to-peer utan att behöva plattformar som kan ta stora provisioner som kompensation. -- Alla Ethereum-produkter delar samma "backend". Med andra ord kan alla Ethereum-produkter lätt förstå varandra – detta gör NFT:er kan användas för en uppsjö av olika produkter. Du kan köpa en NFT på en produkt och sälja den på en annan på ett enkelt sätt. Som kreatör kan du lista dina NFT:er på flera produkter samtidigt – varje produkt kommer att ha den senaste ägarinformationen. -- Ethereum ligger aldrig nere, vilket betyder att dina polletter alltid kommer att vara tillgängliga för försäljning. - -## Miljöpåverkan av NFT:er {#environmental-impact-nfts} - -Att skapa och överföra NFT:er är precis som en Ethereum-transaktion - prägling, köp, byte eller interaktioner med NFT:er konsumerar inte direkt någon energi. Sedan [The Merge](/roadmap/merge) är Ethereum en blockkedja med låg energiförbrukning, vilket innebär att miljöeffekterna av att använda NFT:er är försumbara. - -[Mer om Ethereums energikonsumtion](/energy-consumption/). - -### Skyll inte på NFT:erna {#nft-qualities} - -Hela NFT-ekosystemet fungerar eftersom Ethereum är decentraliserat och säkert. - -Decentraliserat vilket innebär att du och alla andra kan verifiera att du äger något. Allt utan att lita på eller bevilja vårdnad till en tredje part som kan införa sina egna regler efter behag. Det betyder också att dina NFT kan flyttas och användas för en rad olika produkter och på en rad olika marknader. - -Säker betyder att ingen kan kopiera/klistra in dina NFT eller stjäla dem. - -Dessa egenskaper hos Ethereum gör det möjligt att digitalt äga unika föremål och få ett rättvist pris för ditt innehåll. Ethereum skyddar dina tillgångar genom att använda en decentraliserad mekanism för konsensus som involverar ["proof-of-stake"](/developers/docs/consensus-mechanisms/pos). Det är en metod med lågt koldioxidavtryck som avgör vem som kan lägga till ett block med transaktioner i kedjan. Något som anses vara mer säkert än det mer energislukande alternativet, ["proof-of-work"](/developers/docs/consensus-mechanisms/pow). NFT:er kopplas normalt ihop med en hög energiförbrukning eftersom Ethereum tidigare använde proof-of-work som säkringsmetod. Detta stämmer inte längre. - -#### Prägla NFT:er {#minting-nfts} - -När du skapar en NFT måste några saker hända: - -- De måste bekräftas som en tillgång i blockkedjan. -- Ägarens kontosaldo måste uppdateras för att inkludera den tillgången. Detta gör det möjligt att handla med dem vid ett senare tillfälle, eller att verifiera dem som "ägda av någon". -- Transaktionerna som bekräftar ovanstående behöver läggas till ett block och bli permanenta i kedjan. -- Blocket måste bekräftas av alla i nätverket som "korrekt". Denna konsensus eliminerar behovet av mellanhänder eftersom nätverket håller med om att dina NFT existerar och tillhör dig. Och de finns i kedjan så vem som helst kan kontrollera dem. Detta är ett av de sätt som Ethereum hjälper NFT-kreatörer att maximera sina intäkter på. - -Alla dessa arbetsuppgifter utförs av blockskapare och blockvaliderare. Blockförslagsställare lägger till din NFT-transaktion till ett block och sprider informationen till resten av nätverket. Validerarna kontrollerar att transaktionen är korrekt och lägger därefter till den i sina databaser. Det finns flera krypto-ekonomiska incitament på plats som säkerställer att validerarna agerar på ett ärligt sätt. Annars skulle vem som helst kunna hävda att de äger den NFT som du precis präglat och genom bedrägeri överföra ägarskapet. - -#### NFT-säkerhet {#nft-security} - -Ethereums säkerhet baseras på proof-of-stake. Systemet är utformat för att ekonomiskt avskräcka från skadliga handlingar och göra Ethereum manipuleringssäkert. Det är detta som gör NFT möjligt. När blocket som innehåller din NFT-transaktion har slutförts skulle det kosta en angripare miljontals ETH att ändra den. Alla som kör Ethereum-programvara skulle omedelbart kunna upptäcka oärlig manipulering med en NFT, och den skadliga aktören skulle straffas ekonomiskt och kastas ut. - -Säkerhetsfrågor relaterade till NFT är oftast relaterade till phishing-bedrägerier, sårbarheter i smarta kontrakt eller användarfel (som att oavsiktligt röjda privata nycklar). Detta gör att god plånbokssäkerhet är A och O för NFT-ägare. - - - Mer om säkerhet - - -## Bygg med NFT:er {#build-with-nfts} - -De flesta NFT:er är byggda med en konsekvent standard som kallas [ERC-721](/developers/docs/standards/tokens/erc-721/). Men det finns andra standarder som du kanske vill titta närmare på. Standaren [ERC-1155](/developers/docs/standards/tokens/erc-1155/) tillåter halvfungibla polletter vilket är särskilt användbart inom spelområdet. Och på senare tid har förslag gällande [EIP-2309](https://eips.ethereum.org/EIPS/eip-2309) börjat komma in, för att göra präglingen av NFT:er mycket effektivare. Denna standard låter dig prägla så många du vill i en transaktion! - -## Läs vidare {#further-reading} - -- [Kryptokonstdata](https://cryptoart.io/data) – _Richard Chen, uppdateras automatiskt_ -- [OpenSea: the NFT Bible](https://opensea.io/blog/guides/non-fungible-tokens/) – _Devin Fizner, 10 januari 2020_ -- [A beginner's guide to NFTs](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, januari 2020_ -- [Everything you need to know about the metaverse](https://foundation.app/blog/enter-the-metaverse) – _Foundation-teamet, foundation.app_ -- [Nej, kryptokonstnärer skadar inte planeten](https://medium.com/superrare/no-cryptoartists-arent-harming-the-planet-43182f72fc61) -- [Ethereums energikonsumtion](/energy-consumption/) -- [Ethereum NFT APIs](https://www.alchemy.com/list-of/nft-apis-on-ethereum) - _Alchemy_ - - diff --git a/src/content/translations/sl/community/grants/index.md b/src/content/translations/sl/community/grants/index.md deleted file mode 100644 index 8439e8eaba3..00000000000 --- a/src/content/translations/sl/community/grants/index.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: Ethereum Fundacija & Program za finančno spodbudo skupnosti -description: Seznam programov za finančne spodbude skozi Ethereum ekosistem. -lang: sl ---- - -# Ethereum finančne spodbude {#ethereum-grants} - -Spodaj navedeni programi ponujajo različne finančne spodbude za projekte, ki delajo na spodbujanju uspeha in rasti Ethereum ekosistema. To lahko uporabljajte kot vodnik pri iskanju in prijavi za pridobitev sredstev za pomoč, ki vam bo pomagala do uspešnega Ethereum projekta. - -Ta seznam je pripravila naša skupnost. Če na njem kaj manjka ali ni pravilno navedeno prosimo, da ga uredite! - -### Širok Ethereum ekosistem {#broad-ethereum-ecosystem} - -Te programi podpirajo širok Ethereum ekosistem s tem, da ponujajo finančne spodbude širšemu naboru projektov. Mednje sodijo rešitve za nadgradljivost, grajenje skupnosti, varnost, zasebnost in še več. Te finančne spodbude niso specifične vezane na nobeno Ethereum platformo in so dobro mesto za začetek, če niste povsem prepričani. - -- [EF Program za podporo ekosistemu](https://esp.ethereum.foundation) - _Financira odprtokodne projekte, ki koristijo Ethereumu, s posebnim fokusom na univerzalna orodja, infrastrukturo, raziskave in javne dobrine_ -- [Ethereum RFPs](https://github.com/ethereum/requests-for-proposals) - _Prošnje za predloge s strani Ethereum fundacije za delo in projekte v Ethereum ekosistemu_ -- [MetaCartel](https://www.metacartel.org/grants/) - _Dapp razvoj, Ustvarjanje DAO_ -- [Moloch DAO](https://www.molochdao.com/) - _Zasebnost, nadgradljivost z 2. plastmi, varnost in še več_ -- [Odprte spodbude](https://opengrants.com/explore) - -### Specifikacije projekta {#project-specific} - -Te projekti so ustvarili svoje finančne spodbude za projekte, ki merijo proti razvoju in eksperimentiranju z lastnimi tehnologijami. - -- [The Graph](https://airtable.com/shrdfvnFvVch3IOVm) – _[The Graph](https://thegraph.com/) ekosistem_ -- [Uniswap](https://www.unigrants.org/) – _[Uniswap](https://uniswap.org/) skupnost_ -- [Balancer](https://balancergrants.notion.site/Balancer-Community-Grants-23e562c5bc4347cd8304637bff0058e6) – _[Balancer](https://balancer.fi/) sklad ekosistema_ -- [mStable](https://docs.mstable.org/advanced/grants-program) - _[mStable](https://mstable.org/) skupnost_ - -### Kvadratično financiranje {#quadratic-funding} - -Odprtokodne korenine Ethereuma so pripeljale do rasti novega zanimivega modela financiranja: kvadratično financiranje. To predstavlja potencial za izboljšanje načina po katerem bomo v prihodnosti financirali vse vrste javnih dobrin. Kvadratično financiranje poskrbi, da so projekti, ki prejmejo največ sredstev tisti, ki imajo najbolj edinstveno povpraševanje. Z drugimi besedami projekti, ki se zavzemajo za izboljšanje življenj največjega števila ljudi. [Več o kvadratičnem financiranju.](/defi/#quadratic-funding) - -- [Gitcoin](https://gitcoin.co/grants) -- [clr.fund](https://clr.fund/) diff --git a/src/content/translations/sl/contributing/translation-program/faq/index.md b/src/content/translations/sl/contributing/translation-program/faq/index.md deleted file mode 100644 index 2a645b1483c..00000000000 --- a/src/content/translations/sl/contributing/translation-program/faq/index.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -title: Vodnik za prevajanje ethereum.org -lang: sl -description: Kako pomagati pri prevajanju ethereum.org ---- - -# Vodnik za prevajanje ethereum.org {#translating-ethereum-guide} - -Če ste novi v prevajalskem programu in se še obotavljate, so tukaj FAQ - pogosto zastavljena vprašanja, ki vam lahko pomagajo pri začetku. Uporabite ta vodnik, da najdete odgovore do najpogostejših poizvedb. - -## Kako prevedem te nize z ``? {#tags} - -Ni vsak niz napisan v čisti besedni obliki. Obstajajo nekateri nizi, ki so sestavljeni iz mešanih skript, kot so HTML tagi (`<0>`, ``). Te se po navadi uporabljajo za hiperpovezave ali alternativno oblikovanje v sredini stavka. - -- Prevedite besedilo znotraj tagov, ampak ne samih tagov. Karkoli v `<` in `>` ne sme biti prevedeno ali odstranjeno. -- Da ohranite niz varen, priporočamo, da kliknete "Copy Source" gumb spodaj levo. To bo kopiralo izvorni niz in ga prilepilo v besedilno polje. To vam omogoči razjasniti, kje so tagi in vam pomaga pri izogibanju napakam. - -![Crowdin vmesnik z izpostavljenim gumbom kopiraj vir](../../../../../contributing/translation-program/faq/html-tag-strings.png) - -Lahko premaknete položaj tagov znotraj niza, da bo bolje zvenel v vašem jeziku – le prepričajte se, da ste premaknili celoten tag. - -## Kje živijo nizi? {#strings} - -Pogosto le izvorni niz morda ne bo dovolj, da bi lahko zagotovili natančen prevod. - -- Oglejte si posnetke zaslona in kontekst za več informacij. V sekciji izvornega niza boste našli pripet posnetek zaslona, ki vam bo pokazal kako niz uporabljamo v kontekstu. -- Če še vedno niste prepričani postavite vprašanje v sekciji za komentarje. [Niste prepričani kako podati komentar?](#comment) - -![Prikaz načina zagotovitve konteksta za niz s posnetkom zaslona](../../../../../contributing/translation-program/faq/source-string.png) - -![Primer posnetka zaslona za kontekst](../../../../../contributing/translation-program/faq/source-string-2.png) - -## Kako lahko podam komentar ali postavim vprašanje? Rad bi označil težavo ali napako... {#comment} - -Če želite označiti določen niz, ki potrebuje pregled, lahko oddate komentar. - -- Kliknite drugi gumb v vrstici desno zgoraj. Skrit zavihek se bo pojavil na vaši desni. Podajte nov komentar in kliknite okence "težava" na dnu. Vrsto težave lahko opredelite z izbiro ene od možnosti iz spustnega menija. -- Ko je komentar podan, bo sporočen naši ekipi. Odpravili bomo težavo in vas obvestili z odgovorom na vaš komentar in zaprtjem težave. - -![Prikaz, kako ustvariti komentarje in označiti težave](../../../../../contributing/translation-program/faq/comment-issue.png) - -## Kaj je pomnilnik prevodov (TM)? {#translation-memory} - -Pomnilnik prevodov (TM) je funkcija orodja Crowdin, ki shrani vse predhodne prevedene nize na strani [ethereum.org](http://ethereum.org/). Ko je niz preveden, se samodejno shrani v TM našega projekta. To je lahko uporabno orodje, ki vam pomaga prihraniti vaš čas! - -- Oglejte si sekcijo "TM in MT predlogi" in lahko boste videli, kako so drugi prevajalci prevedli enak ali podoben niz. Če najdete predlog z visokim razmerjem ujemanja, ga s klikom brez težav uporabite za prevod. -- Če na seznamu ni ničesar, lahko iščete po TM za predhodne prevode in jih ponovno uporabite za ohranjanje konsistentnosti. - -![Posnetek zaslona pomnilnika prevodov](../../../../../contributing/translation-program/faq/translation-memory.png) - -## Kako uporabljam Crowdin slovar? {#glossary} - -Ethereum terminologija je naslednji ključni del našega prevajalskega dela, saj novi tehnološki izrazi pogosto še ne bodo lokalizirani v veliko jezikov. Prav tako obstajajo izrazi, ki imajo različne pomene v različnih kontekstih. [Več o prevajanju Ethereum terminologije](#terminology) - -Crowdin slovar je najboljše mesto za razjasnitev izrazov in definicij. Obstajata dva načina napotitve na slovar. - -- Prvič, ko najdete podčrtan izraz v izvornem nizu, se lahko z miško postavite nanj in tako razkrijete njegovo definicijo. - -![Primer definicije iz slovarja](../../../../../contributing/translation-program/faq/glossary-definition.png) - -- Drugič, če najdete pojem, ki ga ne poznate, vendar ni podčrtan, lahko iščete po zavihku slovarja (tretji gumb desnega stolpca). Našli boste razlage specifičnih izrazov in tistih pogosto uporabljenih v projektu. - -![Posnetek zaslona, ki prikazuje, kje najti zavihek slovarja v Crowdinu](../../../../../contributing/translation-program/faq/glossary-tab.png) - -- Če ga še vedno ne najdete, je to vaša priložnost, da dodate nov izraz! Spodbujamo vas, da ga poiščete v iskalniku in v slovar dodate opis. Bilo bo v veliko pomoč drugim prevajalcem, da bodo izraz lažje razumeli. - -![Posnetek zaslona, ki prikazuje kako dodati izraz v slovar v Crowdinu](../../../../../contributing/translation-program/faq/add-glossary-term.png) - -### Politika prevajanja terminologije {#terminology} - -_Za imena (znamk, podjetij, ljudi) in nove tehnološke izraze (Eth2, oddajniška veriga, itd.)_ - -Ethereum predstavlja veliko novih izrazov, ki so bili skovani pred kratkim. Nekateri izrazi se od prevajalca do prevajalca razlikujejo, saj uraden prevod v njihovem jeziku ne obstaja. Takšne neskladnosti lahko povzročijo nesporazume in poslabšajo berljivost. - -Zaradi jezikovne raznolikosti in različnih standardizacij v vsakem jeziku je bilo praktično nemogoče vzpostaviti poenoteno politiko prevajanja terminologije, ki se lahko prilagodi v vseh podprtih jezikih. - -Po tehtnem premisleku smo dosegli odločitev, da najpogosteje uporabljano terminologijo prepustimo vam prevajalcem. - -Tukaj so naši predlogi za primere, ko najdete izraz, ki vam ni poznan: - -- Glejte [Slovar izrazov](#glossary), tam boste morda našli predhodne prevode drugih prevajalcev. Če se vam zdi, da predhodno preveden izraz ni primeren, lahko vaš prevod obnovite, tako da v Crowdin slovar dodate nov izraz. -- Če takšen predhoden prevod v slovarju ne obstaja, vas spodbujamo, da ga poiščete prek iskalnika ali članka, ki prikazuje, kako se izraz dejansko uporablja v vaši skupnosti. -- Če ne najdete prav nobene reference, zaupajte svoji intuiciji in predlagajte nov prevod v vaš jezik! -- Če se ne čutite dovolj samozavestne, pustite izraz nepreveden. Včasih so angleški izrazi več kot ustrezni za podajo natančne definicije. - -Priporočamo, da pustite imena znamk, podjetij in osebja neprevedene, saj bi prevod lahko povzročil nepotrebno zmedo in SEO težave. - -## Kontaktirajte nas {#contact} - -Hvala, da ste vse to prebrali. Upamo, da vam je v pomoč pri uvajanju v naš program. Pridružite se našemu [Discord prevajalskemu kanalu](https://discord.gg/TkJFaewsaM) za kakršnakoli vprašanja in sodelovanje z ostalimi prevajalci! diff --git a/src/content/translations/sl/contributing/translation-program/index.md b/src/content/translations/sl/contributing/translation-program/index.md deleted file mode 100644 index 69838dcceed..00000000000 --- a/src/content/translations/sl/contributing/translation-program/index.md +++ /dev/null @@ -1,132 +0,0 @@ ---- -title: Prevajalski program -lang: sl -description: Kako prispevati k ethereum.org prevajalskemu programu? ---- - -# Prevajalski program {#translation-program} - -Prevajalski program je skupno prizadevanje za prevod ethereum.org v različne jezike, z namenom narediti stran bolj dostopno milijardam neangleško govorečih ljudi po svetu. - -Naš napredek do zdaj: - -- **2.000 +** prevajalcev -- **37** jezikov aktivnih na strani -- **1,9 milijona** besed prevedenih v 2021 - -Če se želite pridružiti in nam pomagati povečati globalno Ethereum skupnost s prevajanjem spletne strani v vaš jezik, sledite spodnjim korakom! - - - Prevzemite svoj POAP žeton! Če ste prevajali ethereum.org v letu 2021, vas čaka edinstven POAP. Več o POAP-ih - - -## Misija in vizija {#mission-and-vision} - -Ethereum skupnost želi biti globalna in vključevalna, vendar veliko njene vsebine poskrbi le za angleško govoreče in izpušča 6 milijard neangleško govorečih po celem svetu. Da bi ethereum.org lahko deloval kot portal v Ethereum za svetovno skupnost verjamemo, da je zagotavljanje Ethereum vsebin za neangleško govoreče v njihovih domačih jezikih ključnega pomena. - -Ethereum.org prevajalski program želi narediti Ethereum dostopen za vse, s prevajanjem strani ethereum.org in ostalih Ethereum vsebin v čim več jezikov. - -**Naša misija** - -- Prispevanje prevedenih verzij spletne strani, da opolnomočimo obiskovalce iz vsega sveta za učenje o Ethereumu v njihovem domačem jeziku -- Olajšanje uvajanja več članov v globalno Ethereum skupnost -- Omogočanje bolj dostopnega in vključujočega deljenje informacij in znanja o Ethereumu -- Opolnomočenje članov skupnosti, da prispevajo prevode k Ethereumu in pustijo svoj pečat na ekosistemu -- Prepoznavanje, povezovanje in prispevanje vodenja strastnim sodelavcem, ki se želijo pridružiti ekosistemu - -**Naša vizija** - -- Prevod ključnih vsebin za člane Ethereum skupnosti iz čim več držav in delov sveta -- Podpora deljenja znanja prek jezikov za ustvarjanje bolj informirane in izobražene Ethereum skupnosti -- Povečanje Ethereumove vključljivosti in dostopnosti z odstranitvijo jezikovnih ovir, ki preprečujejo neangleško govorečim pridružitev ekosistemu - -## Kako prevajate? {#how-to-translate} - -1. **[Pridružite se našemu projektu na Crowdinu](https://crowdin.com/project/ethereum-org/invite)** - Morali se boste prijaviti v vaš Crowdin račun ali ga ustvariti, če ga še nimate. Vse kar je potrebno za prijavo, je le e-poštni naslov in geslo. - -2. **Odprite jezik, ki ga želite prevajati in poiščite dokument za delo** - Vsebina spletne strani je razdeljena v številne dokumente in jezikovne verzije. Na desni lahko preverite napredek vsakega dokumenta – če je napredek prevoda pod 100 % prosimo prispevajte! - - Ne najdete svojega jezika na seznamu? [Odprite težavo](https://github.com/ethereum/ethereum-org-website/issues/new/choose) - - ![Prevedene in neprevedene datoteke na Crowdinu](../../../../contributing/translation-program/crowdin-files.png) - - Opomba na vsebinske verzije: uporabljamo upravljanje verzij z Crowdinom, da se izognemo prevajalskim zamudam za dodane vsebine. Ko preverite jezik, na primer [Filipinščino](https://crowdin.com/project/ethereum-org/fil#), boste našli mape za vsako verzijo strani ("v2.0", "v2.1", etc.). - - Spodbujamo vas, da najprej prevajate nižjo verzijo in se prebijate proti višjim verzijam (v.2.0 → v.2.1 → v.2.2 → ⋯), saj bodo nižje verzije na strani posodobljene najprej. - - [Preberite si več o ethereum.org vsebinskih verzijah](/contributing/translation-program/content-versions/) - -3. **Prevajanje** - Po izbiri datoteke, ki jo želite prevesti, se bo ta odprla v spletnem urejevalniku. Če niste še nikoli uporabljali Crowdina, lahko uporabite ta hitri vodnik, da pregledate osnove. - - ![Crowdin spletni urejevalnik](../../../../contributing/translation-program/online-editor.png) - - **_1 – Leva stranska vrstica_** - - - Neprevedeno (rdeča) – besedilo, na katerem se še ni delalo. To so nizi, ki bi jih morali prevajati. - - Prevedeno (zelena) – besedilo, ki je že bilo prevedeno, vendar še ne pregledano. Lahko podate alternativne predloge prevodov ali glasujete o obstoječih z uporabo ‘’+’’ in ‘’-‘‘ gumbov v urejevalniku. - - Potrjeno (kljukica) – besedilo je že bilo pregledano in je trenutno dostopno na spletni strani. - - Prav tako lahko uporabljate gumbe na vrhu, za iskanje določenih nizov, jih filtrirate glede na status ali spremenite pogled. - - **_2 – Območje urejevalnika_** - - Glavno prevajalsko območje – izvorno besedilo je prikazano na vrhu z dodatnim kontekstom in posnetki zaslonov, če so na voljo. Za predlog novega prevoda, vnesite svoj prevod v polje "Vnesite prevod tukaj" in pritisnite Shrani. - - Prav tako lahko v tej sekciji najdete obstoječe prevode nizov in prevode v ostale jezike, kot tudi ujemanja z pomnilnikom prevodov in predloge strojnega prevoda. - - **_3 – Desna stranska vrstica_** - - Tukaj lahko najdete komentarje, vnose v pomnilnik prevodov in vnose v slovar. Privzeti pogled prikazuje komentarje in prevajalcem omogoča komunikacijo, izpostavljanje težav ali prijavo nepravilnih prevodov. - - Z gumbi na vrhu lahko prikaz zamenjate na pomnilnik prevodov, kjer lahko iščete obstoječe prevode, ali slovar, ki vsebuje opise in standardizirane prevode ključnih izrazov. - - Si želite izvedeti več? Prosto si oglejte [dokumentacijo o uporabi Crowdinovega spletnega urejevalnika](https://support.crowdin.com/online-editor/) - -4. **Preces pregleda** - Ko ste zaključili prevod (torej vse datoteke vsebinskih verzij prikazujejo 100%), bo naša strokovna prevajalska pomoč pregledala (in po potrebi uredila) vsebino. Ko je pregled zaključen (torej proces pregleda je 100%), bomo vsebino dodali na spletno stran. - -Imate kakšno vprašanje? Ali želite sodelovati z našo ekipo in ostalimi prevajalci? Objavite v kanal #translations našega [ethereum.org Discord strežnika](https://discord.gg/ethereum-org) - -Prav tako nas lahko kontaktirate prek translations@ethereum.org - -Hvala za vaše sodelovanje pri ethereum.org prevajalskem programu! - - - Če nam pomagate pri prevajanju, boste morda našli uporabne informacije v naši prevajalski FAQ sekciji. - Prevajanje ethereum.org FAQ - - -## Viri {#resources} - -**Orodja** - -- [Microsoft Language Portal](https://www.microsoft.com/en-us/language) _– uporaben za iskanje in preverjanje standardnih prevodov tehničnih izrazov_ -- [Linguee](https://www.linguee.com/)_ – iskalnik za prevode in slovar, ki omogoča iskanje po besedah ali frazah_ -- [Proz term search](https://www.proz.com/search/)_ – podatkovna baza prevajalskih slovarjev za specializirane izraze_ -- [Eurotermbank](https://www.eurotermbank.com/)_ – zbirke evropske terminologije v 42-ih jezikih_ - -**Skupnosti** - -- [Prevajalske skupine za posamezne jezike](https://discord.gg/ethereum-org) _– iniciativa za povezovanje ethereum.org prevajalcev v prevajalske skupine_ -- [Kitajska prevajalska skupina](https://www.notion.so/Ethereum-org-05375fe0a94c4214acaf90f42ba40171)_ – Stran s pojmi za lažjo koordinacijo med kitajskimi prevajalci_ - -**Pregled verzij** - -- [Vsebinske verzije](/contributing/translation-program/content-versions/)_ – Katere strani so vključene v vsako verzijo strani ethereum.org_ - -**Zadnje spremembe** - -Da boste na tekočem z napredkom prevajalskega programa, sledite [blogu Ethereum fundacije](https://blog.ethereum.org/): - -- [December 2020 posodobitev mejnikov](https://blog.ethereum.org/2020/12/21/translation-program-milestones-updates-20/) -- [Julij 2020 posodobitev mejnikov](https://blog.ethereum.org/2020/07/29/ethdotorg-translation-milestone/) -- [Avgust 2019 zagon prevajalskega programa](https://blog.ethereum.org/2019/08/20/translating-ethereum-for-our-global-community/) - -## Prevajanje Ethereum Launchpada za zastavljanje {#staking-launchpad} - -Naša prevajalska skupnost prav tako dela na [Launchpad za zastavljanje](https://launchpad.ethereum.org/en/). Ta je v pomoč vsem, ki želijo nastaviti Ethereum validator in pomagati pri zavarovanju Ethereum omrežja. Launchpad je trenutno na voljo v 17 jezikih. - -Če ste zainteresirani, [se pridružite prevajalskemu projektu Ethereum Launchpad za zastavljanje na Crowdinu](https://crowdin.com/project/ethereum-staking-launchpad). Lahko [ustvarite težavo](https://github.com/ethereum/staking-launchpad/issues/new) na GitHubu, da zaprosite dodajanje novega jezika, če vaš jezik na Crowdinu še ni na voljo. diff --git a/src/content/translations/sl/dao/index.md b/src/content/translations/sl/dao/index.md deleted file mode 100644 index fc0da4e5cad..00000000000 --- a/src/content/translations/sl/dao/index.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -title: Decentralizirane avtonomne organizacije (DAOs) -description: Pregled DAOs na Ethereumu -lang: sl -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: Predstavitev DAO, ki glasuje o predlogu. -summaryPoint1: Skupnosti v lasti članov brez centraliziranega vodstva -summaryPoint2: Varen način za sodelovanje s tujci prek spleta. -summaryPoint3: Varno mesto za namen sredstev v specifičen namen. ---- - -## Kaj so DAOs? {#what-are-daos} - -DAOs so učinkovit in varen način za delo z enakomislečimi osebami po celem svetu. - -Predstavljajte si, da so to "podjetja", ki domujejo na internetu, in so v skupinski lasti ter upravljana s strani njihovih članov. Imajo vgrajene blagajne, do katerih brez odobritve skupine ne more dostopati nihče. Odločitve se sprejema na podlagi predlogov in glasovanja, da se vsem članom organizacije zagotovi beseda pri odločanju. - -Direkor, ki bi lahko odobril porabo sredstev na podlagi lastnih prebliskov, ne obstaja, prav tako ni sumljivih direktorjev financ, ki bi lahko manipulirali z računovodstvom. Vse je odprte narave in pravila za porabo so zapisana v DAO prek programske kode. - -## Zakaj potrebujemo DAOs? {#why-dao} - -Z nekom ustanoviti organizacijo, ki vključuje financiranje in denar, zahteva veliko zaupanja v osebe, s katerimi sodelujete. Ampak težko je zaupati nekomu, s katerim ste komunicirali le preko spleta. Z DAOs vam ni potrebno zaupati nikomur drugemu iz skupine, le programski kodi, ki je 100% transparentna in jo lahko kdorkoli potrdi. - -To predstavlja veliko novih priložnosti za globalno sodelovanje in koordinacijo. - -### Primerjava {#dao-comparison} - -| DAO | Tradicionalna organizacija | -| -------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | -| Običajno ploska in popolnoma demokratizirana. | Običajno hierarhična. | -| Glasovanje s strani članov je potrebno za implementacijo kakršnekoli spremembe. | Odvisno od strukture, so spremembe lahko zahtevane s strani ene osebe ali pa je lahko omogočeno glasovanje. | -| Glasovi so prešteti in rezultat je implementiran samodejno brez zaupanja vrednega posrednika. | Če je omogočeno glasovanje, so glasovi prešteti interno in rezultat mora biti izveden ročno. | -| Ponujene storitve so izvedene samodejno v decentralizirani naravi (na primer razdelitev dobrodelnih sredstev). | Potrebna je človeška izvedba ali centralno nadzorovana avtomatizacija, ki je nagnjena k manipulaciji. | -| Vse aktivnosti so transparentne in povsem javne. | Aktivnosti so ponavadi zasebne in javni vpogled je omejen. | - -### Primeri DAO {#dao-examples} - -Da bi bilo vse skupaj bolj smiselno, je tukaj nekaj primerov, kako bi lahko uporabili DAO: - -- Dobrodelnost – lahko sprejemate članstvo in donacije od kogarkoli na svetu in skupina se lahko odloči kako bodo donacije porabili. -- Mreža freelancerjev – lahko bi ustvarili mrežo izvajalcev, ki združujejo svoja sredstva za najem poslovnih prostorov in najem programske opreme. -- Naložbe in finančna podpora – lahko bi ustvarili naložbeni sklad, ki združuje investicijska sredstva in glasuje o priložnostih, ki bodo podprte. Povrnjen denar je lahko kasneje razdeljen med DAO člane. - -## Članstvo v DAO {#dao-membership} - -Obstajajo različni modeli za članstvo v DAO. Članstvo lahko določa, kako deluje glasovanje in ostali ključni deli DAO. - -### Članstvo na podlagi lastništva žetonov {#token-based-membership} - -Običajno povsem brez potrebnega soglasja, odvisno od uporabljenih žetonov. V večini primerov se s temi odločevalskimi žetoni lahko trguje na decentralizirani borzi. Drugi morajo biti zasluženi prek zagotavljanja likvidnosti ali nekateri z dokazom o delu. V obeh primerih vam lastništvo zagotavlja možnost glasovanja. - -_Običajno se ta oblika uporablja za upravljanje obširnih decentraliziranih protokolov in/ali samih žetonov._ - -#### Znameniti primer {#token-example} - -[MakerDAO](https://makerdao.com) – Žeton organizacije MakerDAO MKR je široko dostopen na decentraliziranih borzah. Tako si lahko kdorkoli kupi pravico do glasovanja o prihodnosti Maker protokola. - -### Članstvo na podlagi deleža {#share-based-membership} - -DAOs, ki delujejo na podlagi deleža zahtevajo dovoljenje, vendar so še vedno precej odprti. Katerikoli potencialni član lahko vloži predlog za pridružitev DAO, običajno s ponujenim prispevkom določene vrednosti v obliki žetonov ali dela. Deleži predstavljajo neposredno glasovalno pravico in lastništvo. Člani lahko kadarkoli izstopijo in prejmejo proporcionalen del sredstev v blagajni. - -_Običajno se ta oblika uporablja za tesneje prepletene organizacije osredotočene na osebe, kot so dobrodelne organizacije, delavski kolektivi in naložbeni klubi. Prav tako pa lahko upravljajo protokole in žetone._ - -#### Znameniti primer {#share-example} - -[MolochDAO](http://molochdao.com/) – MolochDAO se osredotoča na financiranje Ethereum projektov. Za pridobitev članstva zahtevajo vlogo, da skupina lahko oceni, če imate potrebno strokovno znanje in kapital za sprejemanje premišljenih mnenj o potencialnih prejemnikih financiranja. Lahko pa preprosto kupite dostop do DAO na prostem trgu. - -## Kako delujejo DAOs? {#how-daos-work} - -Podlaga za DAO je pametna pogodba. Ta pogodba določa pravila organizacije in hrani sredstva skupine. Ko je pogodba aktivna na Ethereumu, nihče ne more spremeniti pravil, razen z glasovanjem. Če kdorkoli poskusi narediti nekaj kar ni določeno v pravilih in logiki programske kode, ta poskus ne bo uspel. In ker je blagajna prav tako opredeljena s pametno pogodbo to pomeni, da nihče ne more porabiti sredstev brez soglasja skupine. To pomeni, da DAOs ne potrebujejo osrednje oblasti. Namesto tega skupina sprejema odločitve kot celota in po uspešnem glasovanju so plačila odobrena samodejno. - -To je mogoče, saj so pametne pogodbe odporne proti posegom, ko so enkrat aktivne na Ethereumu. Ne morete kar urejati kode (DAO pravil) brez, da bi kdo opazil, saj je vse javno dostopno. - - - Več o pametnih pogodbah - - -## Ethereum in DAOs {#ethereum-and-daos} - -Ethereum iz več razlogov predstavlja popolno podlago za DAOs: - -- Ethereumovo lastno soglasje je dovolj distribuirano in vzpostavljeno, da organizacije lahko zaupajo omrežju. -- Ko je pametna pogodba aktivna, njene programske koda ni možno spremeniti, niti s strani lastnikov. To omogoča, da DAO deluje po pravilih, ki so napisana v programski kodi. -- Pametne pogodbe lahko pošiljajo/sprejemajo sredstva. Brez tega bi potrebovali zaupanja vrednega posrednika, ki bi upravljal s sredstvi skupine. -- Ethereum skupnost je dokazala, da je bolj usmerjenja proti sodelovanju kot tekmovanju, kar omogoča najboljše prakse in podporo ekosistemu, da se hitro razvija. - -## Pridružite se/ustanovite DAO {#join-start-a-dao} - -### Pridružite se DAO {#join-a-dao} - -- [DAOs Ethereum skupnosti](/community/#decentralized-autonomous-organizations-daos/community/#decentralized-autonomous-organizations-daos) -- [DAOHaus seznam DAOs](https://app.daohaus.club/explore) - -### Ustanovite DAO {#start-a-dao} - -- [Prikličite DAO z DAOHaus](https://app.daohaus.club/summon) -- [Ustvarite DAO, ki ga poganja Aragon](https://aragon.org/product) -- [Ustanovite kolonijo](https://colony.io/) -- [Razvite DAO z DAOstack](https://daostack.io/) - -## Dodatno branje {#further-reading} - -### DAO članki {#dao-articles} - -- [Kaj je DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) -- [Hiša DAOs](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) -- [Kaj je DAO in čemu je namenjen?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOHaus](https://daohaus.club/) -- [Kako ustanoviti DAO-Powered Digital Community](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) -- [Kaj je DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) - -### Videoposnetki {#videos} - -- [Kaj je DAO v kriptu?](https://youtu.be/KHm0uUPqmVE) diff --git a/src/content/translations/sl/defi/index.md b/src/content/translations/sl/defi/index.md deleted file mode 100644 index ed26bb52a90..00000000000 --- a/src/content/translations/sl/defi/index.md +++ /dev/null @@ -1,324 +0,0 @@ ---- -title: Decentralizirane finance (DeFi) -description: Pregled DeFi na Ethereumu -lang: sl -template: use-cases -emoji: ":money_with_wings:" -image: ../../../../assets/use-cases/defi.png -alt: Logotip Ethereum narejen iz lego kock. -sidebarDepth: 2 -summaryPoint1: Globalna, odprta alternativa trenutnemu finančnemu sistemu. -summaryPoint2: Produkti, ki vam omogočajo izposojo, naložbe, trgovanje in drugo. -summaryPoint3: Na podlagi odprtokodne tehnologije, s katero lahko programira kdorkoli. ---- - -DeFi je odprt in globalen finančni sistem razvit za dobo interneta – alternativa sistemu, ki je netransparenten, strogo nadzorovan in postavljen na desetletja stari tehnologiji in procesih. Omogoča vam nadzor in vpogled nad vašim denarjem. Omogoča vam izpostavljenost globalnim trgom in alternativo vaši lokalni valuti ali bančnim možnostim. DeFi produkti so finančne storitve odprte komurkoli z internetno povezavo in so v veliki meri v lasti in upravljanju njihovih uporabnikov. Do zdaj se je desetine milijard dolarjev vredna količina kriptovalut stekla skozi DeFi aplikacije in ta številka je vsak dan večja. - -## Kaj je DeFi? {#what-is-defi} - -DeFi je skupni izraz za finančne produkte in storitve, ki so dostopne vsem, ki lahko uporabljajo Ethereum – komurkoli z internetno povezavo. Z DeFi so trgi vedno odprti in brez centralnih oblasti, ki lahko onemogočijo plačila ali vam zavrnejo dostop do česarkoli. Storitve, ki so bile včasih počasne in so bile podvržene možnosti človeške napake, so samodejne in varnejše, zdaj ko so izvedene s strani programske kode, ki jo lahko kdorkoli pregleda in zavaruje. - -Obstaja cvetoče kripto gospodarstvo, kjer lahko posojate, si izposojate, kupite/prodate, služite obresti in še več. Argentinci z kripto znanjem so uporabili DeFi, da so se izognili visoki inflaciji. Podjetja so začela zaposlenim "pretekati" plače v realnem času. Posamezniki so najeli in odplačali posojila v višini več milijonov dolarjev, brez da bi se morali kakorkoli identificirati. - - - -## DeFi v primerjavi s tradicionalnimi financami {#defi-vs-tradfi} - -Eden od najboljših načinov za prepoznanje potenciala DeFi je razumevanje problemov, ki jih poznamo danes. - -- Nekateri ljudje ne dobijo dostopa, da bi si lahko odprli bančni račun ali uporabljali finančne storitve. -- Pomanjkanje dostopa do finančnih storitev lahko ljudem prepreči možnost zaposlitve. -- Finančne storitve ti lahko onemogočijo prejetje plačila. -- Skrita cena finančnih storitev so vaši osebni podatki. -- Vlade in centralizirane institucije lahko po želji zaprejo trge. -- Trgovalne ure so pogosto omejene na delovni čas posameznih časovnih območij. -- Prenos denarja lahko zaradi internih človeških procesov traja dneve. -- Pri finančnih storitvah obstajajo premije, saj posredniške institucije potrebujejo svoj delež. - -### Primerjava {#defi-comparison} - -| DeFi | Tradicionalne finance | -| ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Sami hranite svoj denar. | Podjetja hranijo vaš denar. | -| Sami kontrolirate kam gre vaš denar in kako je porabljen. | Zaupate morate podjetjem, da ne upravljajo slabo z vašim denarjem, na primer, da ga ne posojajo rizičnim posojilojemalcem. | -| Prenos sredstev se zgodi v minutah. | Plačila lahko zaradi ročnih procesov trajajo dneve. | -| Aktivnost transakcij je pseudonimna. | Finančna aktivnost je tesno povezana z vašo identiteto. | -| DeFi je odprt za vse. | Za uporabo finančnih storitev morate podati vlogo. | -| Trgi so vedno odprti. | Trgi se zaprejo, saj zaposleni potrebujejo počitek. | -| Zgrajeno je na transparentnosti – kdorkoli lahko pogleda podatke o produktu in preveri kako sistem deluje. | Finančne institucije so zaprte knjige: ne morete zaprositi, da bi si ogledali njihovo zgodovino posojil, evidenco njihovega upravljanega premoženja in tako naprej. | - -Raziščite DeFi aplikacije - -## Začelo se je z Bitcoinom... {#bitcoin} - -Bitcoin je bil na mnogo načinov prva DeFi aplikacija. Bitcoin vam omogoča, da si zares lastite in kontrolirate vrednost ter jo pošiljate kamorkoli po svetu. To dosega na način, da omogoča velikemu številu ljudi, ki ne zaupajo drug drugemu, da se strinjajo o knjigi računov brez potrebe po zaupanja vrednemu posredniku. Bitcoin je odprt za vse in nihče nima oblasti, da bi lahko spremenil njegova pravila. Bitcoinova pravila, kot sta njegova omejena zaloga in odprtost, so zapisana v tehnologijo. Nasprotno kot pri tradicionalnih financah kjer države lahko tiskajo denar in s tem razvrednotijo vaše prihranke ter podjetja lahko ustavijo trge. - -Ethereum gradi na tem. Kot pri Bitcoinu se pravila ne morejo spremeniti in prav tako je dostop prost za vse. Prav tako pa naredi ta digitalni denar programljiv z uporabo [pametnih pogodb](/glossary#smart-contract), da greste lahko še naprej od shranjevanja in pošiljanja vrednosti. - - - -## Programirljiv denar {#programmable-money} - -To zveni čudno... "zakaj bi želel programirati svoj denar"? Kakorkoli, to je več kot le privzeta funkcija žetonov na Ethereumu. Kdorkoli lahko v plačila sprogramira logiko. Tako da lahko dobite kontrolo in varnost Bitcoina, zmešano z storitvami, ki jih ponujajo finančne institucije. To vam omogoča, da s kriptovalutami počnete stvari, ki jih z Bitcoinom ne morete. Kot so na primer posojanje in sposojanje, načrtovanje plačil, investiranje v indeksne sklade in še več. - - -
Raziščite naše predloge za DeFi aplikacije, ki jih lahko preizkusite, če ste novi v Ethereumu.
- Raziščite DeFi Aplikacije -
- -## Kaj lahko počnete z DeFi? {#defi-use-cases} - -Obstaja decentralizirana alternativa za večino finančnih storitev. Toda Ethereum prav tako ustvarja priložnosti za ustvarjanje finančnih produktov, ki so povsem novi. Ta seznam nenehno raste. - -- [Pošiljajte denar po vsem svetu](#send-money) -- [Ustvarjajte denarne tokove po vsem svetu](#stream-money) -- [Dostopajte do stabilnih valut](#stablecoins) -- [Sposodite si sredstva z zavarovanjem](#lending) -- [Sposodite si sredstva brez zavarovanja](#flash-loans) -- [Začnite s kripto varčevanjem](#saving) -- [Trgujte z žetoni](#swaps) -- [Povečajte svoj portfelj](#investing) -- [Financirajte svoje ideje](#crowdfunding) -- [Kupite zavarovanje](#insurance) -- [Upravljajte svoj portfelj](#aggregators) - - - -### Hitro pošiljajte denar po vsem svetu {#send-money} - -Ethereum kot blokovna veriga je zasnovan za pošiljanje transakcij na varen in globalen način. Kot Bitcoin tudi Ethereum naredi pošiljanje denarja po vsem svetu enostavno kot je poslati elektronsko pošto. Le vnesite prejemnikovo [ENS ime](/nft/#nft-domains) (recimo bob.eth) ali naslov njihovega računa iz vaše denarnice in plačilo bodo prejeli neposredno v minutah (običajno). Za pošiljanje ali prejemanje plačil boste potrebovali le [denarnico](/wallets/). - -Oglejte si plačilne dappe - -#### Ustvarjajte denarne tokove po vsem svetu... {#stream-money} - -Denarne tokove lahko ustvarjate tudi prek Ethereuma. To vam omogoča, da nekomu izplačate plačilo na sekundo, kar jim omogoči dostop do njihovega denarja, kadarkoli ga potrebujejo. Ali si sposodite nekaj na sekundo, kot na primer omarico za shranjevanje ali električni skuter. - -V primeru, da ne želite pošiljati ali pretakati [ETH](/eth/), zaradi spreminjanje njegove vrednosti, obstajajo alternativne valute na Ethereumu: stabilni kovanci. - - - -### Dostopajte do stabilnih kovancev {#stablecoins} - -Volatilnost kriptovalut za veliko finančnih produktov in splošne potrošnje predstavlja problem. DeFi skupnost je to rešila z stabilnimi kovanci. Njihova vrednost je vezana na neko drugo sredstvo, ponavadi na priljubljeno valuto kot je ameriški dolar. - -Kovanca kot sta Dai ali USDC imata vrednost, ki ostaja znotraj nekaj centov vrednosti dolarja. To jih dela popolne za zaslužek ali nakupovanje. Mnogi v Latinski Ameriki so uporabili stabilne kovance kot način za zaščito prihrankov v časih visoke negotovosti valut izdanih s strani njihovih držav. - -Več o stabilnih kovancih - - - -### Izposojanje {#lending} - -Izposoja denarja od decentraliziranih ponudnikov je na voljo v dveh glavnih različicah. - -- Vrstnik-vrstniku, kar pomeni, da si bo posojilojemalec sredstva sposodil neposredno od določenega posojilodajalca. -- Skupinsko, kjer posojilodajalci priskrbijo sredstva (likvidnost) v bazen iz katerega si posojilojemalci lahko izposojajo. - -Oglejte si dappe za izposojanje - -Pri uporabi decentraliziranih posojilodajalcev obstajajo številne prednosti... - -#### Izposojanje z ohranjanjem zasebnosti {#borrowing-privacy} - -Danes se posojanje in izposoja denarja vrti okoli vključenih posameznikov. Banko morajo vedeti, če boste posojilo lahko odplačali preden vam posodijo denar. - -Decentralizirano posojanje deluje brez, da se mora katerakoli stranka identificirati. Namesto tega mora posojilojemalec zagotoviti zavarovanje, ki ga bo posojilodajalec samodejno prejel v primeru, da posojilo ni odplačano. Nekateri posojilodajalci kot zavarovanje sprejemajo celo NFT-je. NFT-ji so lastniška listina za edinstveno sredstvo, kot je na primer umetniška slika. [Več o NFT-jih](/nft/) - -To vam omogoča, da si izposodite denar brez preverjanja kreditne sposobnosti ali posredovanja osebnih informacij. - -#### Dostop do globalnih sredstev {#access-global-funds} - -Kadar uporabljate decentraliziranega posojilodajalca imate dostop do sredstev, ki so položena z vseh koncev sveta in ne le sredstev, ki so v hrambi vaše izbrane banke ali institucije. To naredi posojila bolj dostopna in izboljša obrestne mere. - -#### Davčna učinkovitost {#tax-efficiencies} - -Izposojanje vam lahko omogoči dostop do sredstev, ki jih potrebujete brez, da bi morali prodati vaš ETH (obdavčljiv dogodek). Namesto tega lahko uporabite ETH kot zavarovanje za posojilo v stabilnih kovancih. To vam sprosti denarni tok, ki ga potrebujete in vam omogoči, da obdržite svoj ETH. Stabilni kovanci so žetoni, ki so precej boljši za situacije v katerih potrebujete denar, saj njihova vrednost ne niha kot ETH. [Več o stabilnih kovancih](#stablecoins) - -#### Flash posojila {#flash-loans} - -Flash posojila so bolj eksperimentalna oblika decentraliziranih posojil, ki vam omogoča najem posojila brez zavarovanja ali posredovanja kakršnihkoli osebnih podatkov. - -Trenutno niso široko dostopna ne-tehničnim uporabnikom, vendar namigujejo na to, kaj bi lahko bilo v prihodnosti mogoče za vse. - -Deluje na predpostavki, da je posojila najeto in odplačano znotraj ene transakcije. Če ne more biti odplačano, se transakcija zavrne kot, da se ni zgodilo nič. - -Sredstva, ki se običajno uporabljajo so hranjena v likvidnostnem bazenu (veliki bazeni sredstev namenjenih izposoji). Če v določenem trenutku niso uporabljena, to ustvari priložnost, da si ta sredstva nekdo izposodi, z njimi opravi posel in jih v celoti vrne dobesedno istočasno kot si jih je izposodil. - -To pomeni, da mora biti v kostumizirano transakcijo vključene veliko logike. Preprost primer bi lahko bil, da nekdo uporabi Flash posojilo za izposojo določene količine sredstev po določeni ceni, da jih lahko na drugi borzi prodajo po višji ceni. - -Tako se v eni transakciji zgodi sledeče: - -- Izposodite si količino X določenega $asset po ceni 1,00 USD na borzi A -- Prodate X $asset na borzi B za 1,10 USD -- Odplačate posojilo borzi A -- Obdržite dobiček zmanjšan za provizijo za izvedbo transakcije - -Če se je ponudba na borzi B nenadoma znižala in uporabnik ni mogel kupiti dovolj, da bi pokril izvorno posojilo, bi bila transakcija preprosto zavrnjena. - -Da bi zgoraj opisano transakcijo lahko izvedli v svetu tradicionalnih financ, bi potrebovali ogromno količino denarja. Takšne strategije za ustvarjanje denarja so dostopne le tistim z obstoječim bogastvom. Flash posojila so primer prihodnosti, kjer imeti denar, ni nujno predpogoj za ustvarjanje denarja. - -[Več o flash posojilih](https://aave.com/flash-loans/) - - - -### Začnite varčevati z kripto {#saving} - -#### Posojanje {#lending} - -S posojanjem lahko služite obresti na vaš kripto in opazujete, kako vaša sredstva rastejo v resničnem času. Trenutno so obresti precej višje kot tiste, ki jih boste verjetno dobili pri vaši lokalni banki (če imate dovolj sreče, da imate dostop do njih). Tukaj je primer: - -- Posodite vaših 100 Dai, [stabilni kovanec](/stablecoins/), produktu kot je Aave. -- Prejmete 100 Aave Dai (aDai), kar je žeton, ki predstavlja vaš posojen Dai. -- Vašemu aDai bo vrednost naraščala na podlagi obrestne mere in vi lahko opazujete, kako se povečuje stanje v denarnici. Odvisno od letne mere donosa (APR), bo vaše stanje v denarnici že po nekaj dneh ali celo urah prikazovalo nekaj takega 100.1234! -- Kadarkoli lahko dvignete količino navadnega Dai, ki je enaka količini vašega aDai stanja. - -Oglejte si posojilne dappe - -#### Loterije brez izgube {#no-loss-lotteries} - -Loterije brez izgube, kot je PoolTogether, so zabaven in inovativen način za varčevanje denarja. - -- Kupite 100 kart za 100 Dai žetonov. -- Prejmete 100 plDai, ki predstavljajo vaših 100 kart. -- Če je ena od vaših kart izbrana kot zmagovalna, se bo vaše plDai stanje zvišalo za količino v nagradnem bazenu. -- Če ne zmagate, se vaših 100 plDai prestavi v naslednje tedensko žrebanje. -- Kadarkoli lahko dvignete količino navadnega Dai, ki je enaka vašemu plDai stanju. - -Nagradni bazen je ustvarjen iz vseh obresti, ki so bile pridobljene s posojanjem pologov za karte, kot je opisano v primeru posojanja zgoraj. - -Preizkusite PoolTogether - - - -### Borzni žetoni {#swaps} - -Na Ethereumu obstaja na tisoče žetonov. Decentralizirane borze (DEXs) vam omogočajo trgovanje z različnimi žetoni, kadarkoli želite. Nikoli ne prepustite kontrole nad vašimi žetoni. To je kot uporaba denarne menjalnice, ko obiščete drugo državo. Vendar DeFi verzija se nikoli ne zapre. Trgi so odprti 24/7, 365 dni na leto in tehnologija zagotavlja, da bo za sprejem naročila vedno nekdo na voljo. - -Na primer, če želite uporabljati loterijo brez izgube PoolTogether (opisano zgoraj), boste potrebovali žeton kot je Dai ali USDC. Te DEXi vam omogočajo, da menjate vaš ETH za tiste žetone in nazaj v ETH, ko ste končali. - -Oglejte si borze žetonov - - - -### Napredno trgovanje {#trading} - -Obstajajo bolj napredne možnosti za trgovalce, ki želijo malce več kontrole. Naročila z omejitvami (limit), instrumenti brez zapadlosti (perpetuals), trgovanje s kritjem (margin) so vsi mogoči. Z decentraliziranim trgovanjem imate dostop do globalne likvidnosti, trg se nikoli ne zapre in vedno imate kontrolo nad svojimi sredstvi. - -Ko uporabljate centralizirane borze, morate položiti svoja sredstva preden začnete z trgovanjem in jim zaupati da bodo zanje dobro skrbeli. Med tem, ko so vaša sredstva položena, so izpostavljena tveganju, saj so centralizirane borze privlačna tarča za hekerje. - -Oglejte si trgovalne dappe - - - -### Povečajte svoj portfelj {#investing} - -Na Ethereumu obstajajo produkti za upravljanje sredstev, ki vam bodo poskušali povečati vaš portfelj po strategiji, ki jo izberete sami. To je avtomatsko, odprto vsem in ne potrebuje človeškega upravljalca, ki vam vzame del dobička. - -Dober primer je [DeFi Pulse indeksni sklad (DPI)](https://defipulse.com/blog/defi-pulse-index/). To je sklad, ki se samodejno rebalansira, da vašemu portfelju zagotovi, da vedno vključuje [najvišje uvrščene DeFi žetone po tržni kapitalizaciji](https://www.coingecko.com/en/defi). Nikoli vam ni potrebno skrbeti za podrobnosti in kadarkoli lahko sredstva dvignete iz sklada. - -Oglejte si naložbene dappe - - - -### Financirajte svoje ideje {#crowdfunding} - -Ethereum je idealna platforma za množično financiranje: - -- Potencialni ustanovitelji lahko prihajajo od kjerkoli – Ethereum in njegovi žetoni so odprti za kogarkoli, kjerkoli na svetu. -- Je transparenten, tako da zbiralci sredstev lahko dokažejo, koliko sredstev je bilo zbranih. Lahko celo sledite, kako so sredstva porabljena v nadaljevanju. -- Zbiralci sredstev lahko nastavijo samodejna vračila, če na primer obstaja določen rok ali minimalen znesek, ki ni dosežen. - - - Oglejte si dappe za množično financiranje - - -#### Kvadratično financiranje {#quadratic-funding} - -Ethereum je odprtokodna programska oprema in veliko dela do zdaj je bilo financirano s strani skupnosti. To je pripeljalo do rasti novega zanimivega modela financiranja: kvadratično financiranje. To predstavlja potencial za izboljšanje načina, s katerim bomo v prihodnosti financirali vse vrste javnih dobrin. - -Kvadratično financiranje poskrbi, da so projekti, ki prejmejo največ sredstev tisti, ki imajo najbolj edinstveno povpraševanje. Z drugimi besedami, projekti ki se zavzemajo za izboljšanje življenj največjega števila ljudi. Poglejmo, kako to deluje: - -1. Obstaja ujemajoč bazen sredstev za financiranje. -2. Krog javnega financiranja se začne. -3. Ljudje lahko signalizirajo njihovo povpraševanje po projektu z doniranjem sredstev. -4. Ko se krog zaključi, je ujemajoč bazen razdeljen projektom. Tisti z najbolj edinstvenim povpraševanjem dobijo največjo vsoto sredstev iz ujemajočega bazena. - -To pomeni, da projekt A s 100 donacijami po 1 dolar, lahko na koncu prejme več sredstev kot projekt B z eno samo donacijo v višini 10.000 dolarjev (odvisno od velikosti ujemajočega bazena). - -[Več o kvadratičnem financiranju](https://wtfisqf.com) - - - -### Zavarovanje {#insurance} - -Decentralizirano zavarovanje cilja na pocenitev zavarovanja, hitrejša izplačila in več transparentnosti. Z več avtomatizacije je zavarovanje bolj cenovno dostopno in izplačila so precej hitrejša. Podatki uporabljeni za odločitev o vašem zahtevku so popolnoma transparentni. - -Ethereum produkti kot ostala programska oprema lahko trpi zaradi napak in izkoriščanja teh. Tako da je trenutno veliko zavarovalnih produktov v tem prostoru osredotočenih na zaščito uporabnikov pred izgubo sredstev. Čeprav obstajajo projekti, ki začenjajo z razvojem zavarovanja za karkoli, kar se nam lahko zgodi v življenju. Dober primer tega je Etheriscovo zavarovanje pridelkov, ki cilja na [zaščito malih kmetov v Keniji pred sušo in poplavami](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Decentralizirano zavarovanje lahko zagotovi cenejše kritje za kmete, ki si tradicionalnega zavarovanja pogosto ne morejo privoščiti. - -Oglejte si zavarovalniške dappe - - - -### Agregatorji in upravljalci portfeljev {#aggregators} - -Ob tolikšnem dogajanju boste potrebovali način, da sledite vsem vašim naložbam, posojilom in menjavam. Obstaja množica produktov, ki vam omogoča koordinacijo vse vaše DeFi aktivnosti iz enega mesta. To je lepota odprte arhitekture DeFi. Ekipe lahko razvijejo vmesnike, v katerih ne le vidite vašega stanja v vseh produktih, temveč tudi uporabljate njihove funkcije. To bi lahko bilo uporabno pri vašem raziskovanju DeFi. - -Oglejte si portfeljne dappe - - - -## Kako deluje DeFi? {#how-defi-works} - -DeFi uporablja kriptovalute in pametne pogodbe za zagotavljanje storitev, ki ne potrebujejo posrednikov. V današnjem finančnem svetu, finančne institucije delujejo kot poroki za transakcije. To daje tem institucijam neizmerno moč, saj vaš denar teče skoznje. Plus milijarde ljudi po celem svetu sploh ne morejo dostopati do bančnega računa. - -V DeFi pametna pogodba nadomesti vlogo finančne institucije pri transakcijah. Pametna pogodba je različica Ethereum računa, ki lahko hrani sredstva in jih pošilja/vrača glede na določene pogoje. Nihče ne more spremeniti pametne pogodbe, ko je enkrat aktivna – vedno bo delovala kot je bila programirana. - -Pogodba, ki je zasnovana za izdajanje dodatka ali žepnine, je lahko programirana, da vsak petek pošilja denar z računa A na račun B. In to bo storila vedno, dokler je na računu A dovolj sredstev. Nihče ne more spremeniti pogodbe in kot prejemnika dodati računa C, da bi ukradel sredstva. - -Pogodbe so prav tako javne, da jih lahko kdorkoli pregleda in revidira. To pomeni, da bodo slabe pogodbe pogosto hitro prišle pod drobnogled skupnosti. - -To pomeni, da trenutno obstaja potreba za zaupanje bolj tehnično podkovanim članom Ethereum skupnosti, ki znajo brati programsko kodo. Skupnost, ki temelji na odprtokodnosti pomaga nadzorovati razvijalce, toda ta potreba bo s časom izginila, ko bodo pametne pogodbe postale bolj berljive in bodo razviti drugi načini dokazovanja zanesljivosti programske kode. - -## Ethereum in DeFi {#ethereum-and-defi} - -Ethereum je popolna podlaga za DeFi iz več razlogov: - -- Nihče si ne lasti Ethereuma ali pametnih pogodb, ki živijo na njem – to vsem omogoča priložnost za uporabo DeFi. To prav tako pomeni, da za vas nihče ne more spremeniti pravil. -- DeFi produkti v ozadju vsi govorijo isti jezik: Ethereum. To pomeni, da veliko produktov brez težav deluje skupaj. Žetone lahko posodite na eni platformi in zamenjate žetone, ki nosijo obresti na drugem trgu v povsem drugačni aplikaciji. To je podobno kot, da bi lahko unovčili točke zvestobe na vaši banki. -- Žetoni in kriptovalute so vgrajeni v Ethereum, skupno knjigo – beleženje transakcij in lastništva je nekako bistvo Ethereuma. -- Ethereum dovoljuje popolno finančno svobodo – večina produktov ne bo nikoli hranila vaših sredstev, kar vam prepušča nadzor. - -DeFi si lahko predstavljate v plasteh: - -1. Blokovna veriga – Ethereum vsebuje zgodovino transakcij in stanje računov. -2. Sredstva – [ETH](/eth/) in drugi žetoni (valute). -3. Protokoli – [pametne pogodbe](/glossary/#smart-contract), ki zagotavljajo funkcionalnost, na primer storitev, ki omogoča decentralizirano posojanje sredstev. -4. [Aplikacije](/dapps/) – produkti, ki jih uporabljamo za upravljanje in dostop do protokolov. - -## Razvijajte DeFi {#build-defi} - -DeFi je odprtokodno gibanje. DeFi protokoli in aplikacije so vam vse odprte za pregled, oddvojitev in inovacije. Zaradi tega kupa plasti (vse si delijo isto osnovno blokovno verigo in sredstva) se lahko protokoli mešajo in ujemajo z namenom odklepanja edinstvene kombinacije priložnosti. - -Več o razvoju dappov - -## Dodatno branje {#futher-reading} - -### DeFi podatki {#defi-data} - -- [DeFi Prime](https://defiprime.com/) -- [DeFi Llama](https://defillama.com/) - -### DeFi članki {#defi-articles} - -- [Začetniški vodnik po DeFi](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, 6. januar 2020_ - -### Videoposnetki {#videos} - -- [Finematics – izobraževanje na temo decentraliziranih financ](https://finematics.com/) – _Videoposnetki o decentraliziranih financah_ -- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _DeFi osnove: Vse kar morate vedeti za začetek v tem občasno zmedenem prostoru._ -- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _Kaj je DeFi?_ - -### Skupnosti {#communities} - -- [DeFi Pulse Discord strežnik](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/sl/developers/docs/mev/index.md b/src/content/translations/sl/developers/docs/mev/index.md deleted file mode 100644 index 17b0e832ac0..00000000000 --- a/src/content/translations/sl/developers/docs/mev/index.md +++ /dev/null @@ -1,129 +0,0 @@ ---- -title: Maksimalna pridobljiva vrednost (MEV) -description: Uvod v maksimalno pridobljivo vrednost (MEV) -lang: sl ---- - -Maksimalna pridobljiva vrednost (MEV) se nanaša na maksimalno vrednost, ki se lahko pridobi pri izdelavi bloka poleg standardne blokovne nagrade in provizij goriva z vključevanjem, izključevanjem in spreminjanjem vrstnega reda transakcij v bloku. - -### Pridobljiva vrednost rudarjev - -Ta koncept se je prvič pojavil v kontekstu [dokaza o delu](/developers/docs/consensus-mechanisms/pow/) in se je na začetku imenoval "pridobljiva vrednost rudarjev". To je zato, ker pri dokazu o delu rudarji nadzirajo vključevanje, izključevanje in razvrščanje transakcij. Vendar pa bodo validatorji po prehodu na dokaz o deležu prek [Spojitve](/roadmap/merge) odgovorni za te vloge in rudarjenje ne bo več uporabno. Metode za pridobivanje vrednosti bodo ostale tudi po prehodu in zato je bila potrebna zamenjava imena. Zaradi ohranjanja kontinuitete bomo ohranili enako kratico in obenem ohranili osnovni pomen, "maksimalna pridobljiva vrednost" se zdaj uporablja kot bolj vključujoča zamenjava. - -## Predpogoji {#prerequisites} - -Prepričajte se, da ste seznanjeni s [transakcijami](/developers/docs/transactions/), [bloki](/developers/docs/blocks/), [gorivom](/developers/docs/gas/) in [rudarjenjem](/developers/docs/consensus-mechanisms/pow/mining/). Seznanjenost z [dappi](/dapps/) in [DeFi](/defi/) je prav tako v pomoč. - -## Ekstrakcija MEV {#mev-extraction} - -V teoriji se MEV v celoti dodaja rudarjem, saj so samo te edini subjekt, ki lahko jamči izvedbo dobičkonosne priložnosti MEV (vsaj na trenutni verigi z dokazom o delu — to se bo spremenilo po [Spojitvi](/roadmap/merge/)). V praksi pa je velik del MEV pridobljen s strani neodvisnih sodelujočih v omrežju, ki se imenujejo "iskalci." Iskalci izvajajo kompleksne algoritme na podatkih blokovne verige, da zaznajo dobičkonosne priložnosti MEV, in imajo robote, da omrežju samodejno predložijo te dobičkonosne transakcije. - -Rudarji prejmejo del celotne količine MEV v vsakem primeru, saj so iskalci pripravljeni plačati visoke provizije goriva (ki gredo rudarjem) v zameno za višjo možnost vključitve njihove dobičkonosne transakcije v blok. Predpostavimo, da so iskalci ekonomsko racionalni, provizija goriva, ki jo je iskalec pripravljen plačati, bo obsegala do 100 % iskalčeve MEV (saj, če bi bila provizija goriva višja, bi iskalec izgubil denar). - -S tem morajo za nekatere visoko konkurenčne priložnosti MEV, kot je [arbitraža DEX](#mev-examples-dex-arbitrage), iskalci plačati do 90 % ali celo več svojega prihodka za provizije goriva rudarjem, saj želi veliko ljudi trgovati na isti dobičkonosni arbitraži. To pa zato, ker je edini način za zagotavljanje, da se njihova arbitražna transakcija izvede, ta, da predložijo transakcijo z najvišjo ceno goriva. - -### Golf z gorivom {#mev-extraction-gas-golfing} - -Ta dinamika je poskrbela, da je postalo dobro "igranje golfa z gorivom" — programiranje transakcij, da porabijo najmanjšo možno količino goriva — konkurenčna prednost, saj iskalcem omogoča, da nastavijo višjo ceno goriva, medtem ko ohranjajo svojo skupno provizijo goriva konstantno (glede na to, da so provizije goriva = cena goriva \* porabljeno gorivo). - -Nekaj prepoznanih tehnik golfa z gorivom vključuje: uporabo naslovov, ki se začnejo z dolgim nizom ničel (torej [0x0000000000C521824EaFf97Eac7B73B084ef9306](https://etherscan.io/address/0x0000000000c521824eaff97eac7b73b084ef9306)), glede na to, da zavzamejo manj prostora (in posledično goriva) v shrambi; in puščanje majhnih stanj žetonov [ERC-20](/developers/docs/standards/tokens/erc-20/) v pogodbah, glede na to, da iniciacija reže v shrambi stane več goriva (če je stanje 0) kot njena nadgradnja. Iskanje novih načinov za znižanje porabe goriva je aktivno področje raziskav med iskalci. - -### Generalizirani prehitevalci {#mev-extraction-generalized-frontrunners} - -Raje kot da programirajo kompleksne algoritme za zaznavanje dobičkonosnih priložnosti MEV, nekateri iskalci upravljajo generalizirane prehitevalce. Generalizirani prehitevalci so roboti, ki opazujejo čakalnico, da bi zaznali dobičkonosne transakcije. Prehitevalec bo kopiral kodo potencialno dobičkonosne transakcije, nadomestil naslove s svojimi in izvedel transakcijo lokalno, da ponovno preveri, če transakcija rezultira v dobičku za njegov naslov. Če se transakcija izkaže za dobičkonosno, bo prehitevalec predložil prilagojeno transakcijo z zamenjanim naslovom in višjo provizijo goriva, s čimer bo "prehitel" izvorno transakcijo in prejel MEV izvornega iskalca. - -### Flash roboti {#mev-extraction-flashbots} - -Flash roboti so neodvisen projekt, ki stranko go-ethereum razteza s storitvijo, ki iskalcem omogoča posredovanje transakcij MEV rudarjem, brez da bi jih razkril javni čakalnici. To preprečuje, da transakcije prehitijo generalizirani prehitevalci. - -V času tega pisanja je velik del transakcij MEV speljan prek Flash robotov, kar pomeni, da generalizirani prehitevalci niso tako učinkoviti, kot so bili. - -## Primeri MEV {#mev-examples} - -MEV se na blokovni verigi pojavlja na različne načine. - -### Arbitraža DEX {#mev-examples-dex-arbitrage} - -Arbitraža na [decentraliziranih borzah](/glossary/#dex) (DEX) je najenostavnejša in najbolj znana priložnost MEV. Posledično zanjo obstaja tudi največ konkurence. - -Deluje tako: če dva DEX-a ponujata isti žeton po dveh različnih cenah, lahko nekdo kupi žeton na cenejšem DEX-u in ga proda na dražjem DEX-u z eno samo atomsko transakcijo. Zahvaljujoč mehaniki blokovne verige je to prava arbitraža brez rizika. - -[Tukaj je primer](https://etherscan.io/tx/0x5e1657ef0e9be9bc72efefe59a2528d0d730d478cfc9e6cdd09af9f997bb3ef4) dobičkonosne arbitražne transakcije, kjer je iskalec 1,000 ETH pretvoril v 1,045 ETH s tem, da je izkoristil razliko v tečajnem paru ETH/DAI na Uniswapu in Sushiswapu. - -### Likvidacije {#mev-examples-liquidations} - -Likvidacije na posojilnih protokolih predstavljajo še eno znano priložnost MEV. - -Posojilni protokoli, kot sta Maker in Aave, delujejo tako, da od uporabnikov zahtevajo, da položijo neko vrsto zavarovanja (recimo ETH). Uporabniki si lahko nato od drugih sposodijo različna sredstva in žetone glede na to, kaj potrebujejo (na primer, lahko si sposodijo MKR, če želijo glasovati o upravljavskih predlogih MakerDAO, ali SUSHI, če želijo zaslužiti delež provizij od trgovanja na Sushiswapu) do določene količine svojega položenega zavarovanja — na primer 30 % (točno procentualno posojilojemalsko moč določi protokol). Uporabniki, pri katerih si izposodijo druge žetone, v tem primeru delujejo kot posojilodajalci. - -Glede na to, da vrednost posojilojemalčevega zavarovanja niha, niha tudi njihova posojilojemalska moč. Če zaradi tržnih fluktuacij vrednost sposojenih sredstev recimo preseže 30 % vrednosti zavarovanja (ponovno, točen odstotek določi protokol), protokol po navadi dovoli komurkoli, da likvidira zavarovanje in v trenutku poplača posojilodajalce (to deluje podobno, kot delujejo [pozivi h kritju](https://www.investopedia.com/terms/m/margincall.asp) v tradicionalnih financah). V primeru likvidacije mora posojilojemalec po navadi plačati mastno likvidacijsko provizijo, del katere gre likvidatorju — tukaj se pojavi priložnost MEV. - -Iskalci tekmujejo pri čim hitrejšem razčlenjevanju podatkov blokovne verige, da bi določili, kateri posojilojemalci so lahko likvidirani in bi tako prvi predložili likvidacijsko transakcijo ter zase pobrali likvidacijsko provizijo. - -### Trgovanje s sendvičem {#mev-examples-sandwich-trading} - -Trgovanje s sendvičem je še ena pogosta metoda ekstrakcije MEV. - -Za trgovanje s sendvičem bo iskalec opazoval čakalnico za visoke trgovalne zneske na DEX-u. Na primer predpostavimo, da želi nekdo kupiti 10,000 UNI z DAI na Uniswapu. Trgovanje v takem obsegu bo imelo konkreten vpliv na par UNI/DAI, kar bo potencialno precej dvignilo ceno UNI glede na DAI. - -Iskalec lahko izračuna približen cenovni učinek tega velikega trgovanja na paru UNI/DAI in izvede optimalno naročilo za nakup tik _pred_ velikim trgovanjem, UNI kupi poceni in nato izvede naročilo za prodajo tik _po_ velikem trgovanju ter tako sredstvo proda po višji ceni, ki nastane kot posledica velikega naročila. - -Trgovanje s sendvičem je bolj riskantno, saj ni atomsko (za razliko od arbitraže DEX, kot je opisana zgoraj) in je nagnjeno k [salmonela napadom](https://github.com/Defi-Cartel/salmonella). - -### NFT MEV {#mev-examples-nfts} - -MEV v svetu NFT je pojavljajoč se fenomen in ni nujno dobičkonosen. - -Vendar pa glede na to, da se transakcije NFT dogajajo na isti blokovni verigi, deljeni z vsemi drugimi transakcijami Ethereum, iskalci lahko uporabljajo podobne tehnike kot tiste, ki se uporabljajo pri tradicionalnih priložnostih MEV tudi na trgu NFT. - -Na primer, če obstaja priljubljena izdaja NFT in iskalec želi določen NFT ali več njih, lahko sprogramirajo takšno transakcijo, da so prvi v vrsti za nakup NFT-ja ali pa lahko kupijo celoten set NFT-jev z eno transakcijo. Ali če je NFT [po pomoti na voljo po nizki ceni](https://www.theblockcrypto.com/post/113546/mistake-sees-69000-cryptopunk-sold-for-less-than-a-cent), lahko iskalec prehiti druge kupce in ga poceni ukrade. - -Izrazit primer NFT MEV se je pojavil, ko je iskalec porabil 7 milijonov dolarjev za [nakup](https://etherscan.io/address/0x650dCdEB6ecF05aE3CAF30A70966E2F395d5E9E5) vseh Cryptopunkov na spodnjem pragu cene. Raziskovalec blokovnih verig je [na Twitterju pojasnil](https://twitter.com/IvanBogatyy/status/1422232184493121538), kako je kupec sodeloval s ponudnikom MEV, da je nakup ohranil tajen. - -### Dolgi rep {#mev-examples-long-tail} - -Arbitraža DEX, likvidacije in trgovanje s sendvičem so zelo dobro znane priložnosti MEV, ki za nove iskalce po vsej verjetnosti niso dobičkonosne. Vendar obstaja dolgi rep manj poznanih priložnosti MEV (NFT MEV je verjetno takšna priložnost). - -Iskalci, ki so še na začetku, bi lahko več uspeha našli pri iskanju MEV v tem dolgem repu priložnosti. Flashbotova [tabla zaposlitev MEV](https://github.com/flashbots/mev-job-board) navaja nekaj nastajajočih priložnosti. - -## Učinki MEV {#effects-of-mev} - -MEV ni samo slab — obstajajo tako pozitivne kot negativne posledice za MEV na Ethereumu. - -### Dobri {#effects-of-mev-the-good} - -Veliko projektov DeFi se zanaša na ekonomsko racionalne igralce za zagotavljanje uporabnosti in stabilnosti njihovih protokolov. Na primer, arbitraža DEX zagotavlja, da uporabniki dobijo najboljše, najbolj pravilne cene za svoje žetone, posojilni protokoli pa se za zagotavljanja poplačil posojilodajalcev zanašajo na hitre likvidacije, ko posojilojemalci padejo pod zavarovalna razmerja. - -Brez racionalnih iskalcev, ki iščejo in popravljajo ekonomske neučinkovitosti ter izkoriščajo prednosti protokolovih ekonomskih spodbud, protokoli DeFi in dappi v splošnem ne bi bili tako odporni, kot so danes. - -### Slabi {#effects-of-mev-the-bad} - -Na plasti aplikacij nekatere oblike MEV, kot je trgovanje s sendvičem, rezultirajo v neprimerljivo slabši izkušnji za uporabnike. Uporabniki, ki pristanejo v sendviču, se soočajo s povečanim drsenjem in slabšo izvedbo pri svojem trgovanju. - -Na plasti omrežja generalizirani prehitevalci in dražbe cen goriva, pri katerih pogosto sodelujejo (ko dva ali več prehitevalcev tekmuje za to, da je njihova transakcija vključena v naslednji blok, tako da postopoma dvigujejo ceno goriva za svoje lastne transakcije), rezultirajo v prezasedenosti omrežja in visokih cenah goriva za vse druge, ki poskušajo izvajati svoje običajne transakcije. - -Naprej od tega, kar se dogaja _znotraj_ blokov, ima lahko MEV škodljiv vpliv tudi _med_ bloki. Če MEV, razpoložljiv v bloku, bistveno presega standardno blokovno nagrado, bodo rudarji bolj spodbujeni k temu, da ponovno zrudarijo blok in si MEV zagotovijo zase ter s tem povzročijo reorganizacijo blokovne verige in nestabilnost soglasja. - -Ta možnost reorganizacije blokovne verige je bila [predhodno raziskovana na Bitcoinovi blokovni verigi](https://dl.acm.org/doi/10.1145/2976749.2978408). Glede na to, da se blokovna nagrada pri Bitcoinu razpolavlja in s tem provizije za transakcije predstavljajo večji del blokovne nagrade, se pojavljajo situacije, kjer za rudarje postane ekonomsko racionalno, da prepustijo blokovno nagrado naslednjega bloka in namesto tega ponovno zrudarijo predhodni blok z višjimi provizijami. Z rastjo MEV bi se lahko podobne vrste situacij pojavile tudi pri Ethereumu, kar bi ogrozilo integriteto blokovne verige. - -## Stanje MEV {#state-of-mev} - -Ekstrakcija MEV se je v začetku leta 2021 močno povečala, kar je rezultiralo v zelo visokih cenah goriva v prvih parih mesecih. Nastanek Flashbotovega trenda MEV je zmanjšal učinkovitost generaliziranih prehitevalcev in prenesel dražbe cene goriva z verige, kar je znižalo cene goriva za običajne uporabnike. - -Čeprav veliko iskalcev z MEV še vedno služi dober denar, s tem, ko postajajo vse bolj prepoznavne, vse več iskalcev tekmuje za iste priložnosti, zato bodo rudarji ujeli vse več skupnih prihodkov MEV (saj se enake vrste dražb goriva, opisanih zgoraj, čeprav zasebno, prav tako pojavljajo v Flashbotih in rudarji bodo tako ujeli posledični prihodek od goriva). MEV prav tako ni unikaten za Ethereum in s tem, ko priložnosti na Ethereumu postajajo bolj konkurenčne, se iskalci premikajo k drugim blokovnim verigam, kot je Binance Smart Chain, kjer obstajajo priložnosti, podobne tistim na Ethereumu, z manj konkurence. - -Medtem ko DeFi raste in pridobiva na popularnosti, bo MEV kmalu lahko konkretno presegel osnovno blokovno nagrado Ethereum. S tem pa raste možnost sebičnega ponovnega rudarjenja blokov in nestabilnosti soglasja. Nekateri to smatrajo kot eksistenčno grožnjo za Ethereum, zato destimulacija sebičnega rudarjenja predstavlja aktivno področje raziskav pri teoriji protokola Ethereum. Trenutno raziskovana rešitev je [glajenje nagrad MEV](https://ethresear.ch/t/committee-driven-mev-smoothing/10408). - -## Povezani viri {#related-resources} - -- [Flash roboti GitHub](https://github.com/flashbots/pm) -- [MEV-raziskovanje](https://explore.flashbots.net/) _Nadzorna plošča in raziskovalec za transakcije MEV_ - -## Nadaljnje branje {#further-reading} - -- [Kaj je rudarska pridobljiva vrednost (MEV)?](https://blog.chain.link/what-is-miner-extractable-value-mev/) -- [MEV in jaz](https://research.paradigm.xyz/MEV) -- [Ethereum je Temen gozd](https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest/) -- [Pobeg iz Temnega gozda](https://samczsun.com/escaping-the-dark-forest/) -- [Flashbots: prehitevanje krize MEV](https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752) -- [Zapisi MEV, ki jih je pripravil @bertcmiller](https://twitter.com/bertcmiller/status/1402665992422047747) diff --git a/src/content/translations/sl/developers/docs/standards/tokens/erc-20/index.md b/src/content/translations/sl/developers/docs/standards/tokens/erc-20/index.md deleted file mode 100644 index e354dfe2147..00000000000 --- a/src/content/translations/sl/developers/docs/standards/tokens/erc-20/index.md +++ /dev/null @@ -1,148 +0,0 @@ ---- -title: Standard za žetone ERC-20 -description: -lang: sl ---- - -## Uvod {#introduction} - -**Kaj je žeton?** - -V Ethereumu lahko žetoni predstavljajo praktično karkoli: - -- točke ugleda na spletni platformi, -- spretnosti osebe v igri, -- loterijske srečke, -- finančna sredstva, kot je delež v podjetju, -- fiat valuto, kot je USD, -- unčo zlata. -- in drugo ... - -Tako mogočna funkcionalnost Ethereuma mora biti upravljana z robustnim standardom, kajne? Točno to je področje, kjer ima ERC-20 svojo vlogo! Ta standard razvijalcem omogoča razvoj aplikacij žetonov, ki so interoperabilni z drugimi produkti in storitvami. - -**Kaj je ERC-20?** - -ERC-20 predstavlja standard za zamenljive žetone. Z drugimi besedami: žetoni imajo značilnost, ki vsak žeton naredi popolnoma identičen (po vrsti in vrednosti) drugemu žetonu. Na primer, žeton ERC-20 deluje enako kot ETH, kar pomeni, da je in vedno bo 1 žeton enak vsem drugim žetonom. - -## Predpogoji {#prerequisites} - -- [Računi](/developers/docs/accounts) -- [Pametne pogodbe](/developers/docs/smart-contracts/) -- [Standardi za žetone](/developers/docs/standards/tokens/) - -## Jedro {#body} - -ERC-20 (Zahteva Ethereum za komentarje 20), ki ga je novembra 2015 predlagal Fabian Vogelsteller, je standard za žetone, ki implementira API za žetone znotraj pametnih pogodb. - -Primeri funkcionalnosti, ki jih zagotavlja ERC-20: - -- prenos žetonov z enega računa na drugega, -- pridobitev trenutnega stanja žetonov računa, -- pridobitev celotne zaloge žetona, dostopne na omrežju, -- odobritev možnosti, da lahko količino žetona z enega računa porabi račun tretje osebe. - -Če pametna pogodba implementira naslednje metode in dogodke, se lahko imenuje pogodba žetona ERC-20; in ko je enkrat uveljavljena, bo odgovorna za sledenje ustvarjenih žetonov na Ethereumu. - -Od [EIP-20](https://eips.ethereum.org/EIPS/eip-20): - -#### Metode {#methods} - -```solidity -function name() public view returns (string) -function symbol() public view returns (string) -function decimals() public view returns (uint8) -function totalSupply() public view returns (uint256) -function balanceOf(address _owner) public view returns (uint256 balance) -function transfer(address _to, uint256 _value) public returns (bool success) -function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) -function approve(address _spender, uint256 _value) public returns (bool success) -function allowance(address _owner, address _spender) public view returns (uint256 remaining) -``` - -#### Dogodki {#events} - -```solidity -event Transfer(address indexed _from, address indexed _to, uint256 _value) -event Approval(address indexed _owner, address indexed _spender, uint256 _value) -``` - -### Primeri {#web3py-example} - -Oglejmo si, zakaj je standard tako pomemben za to, da poenostavi pregled katerekoli pogodbe žetona ERC-20 na Ethereumu. Za ustvarjanje vmesnika za katerikoli žeton ERC-20 potrebujemo le binarni vmesnik pogodbene aplikacije (ABI). Kot lahko vidite spodaj, bomo uporabili poenostavljen ABI, da bi ustvarili primer z nizkim trenjem. - -#### Primer Web3.py {#web3py-example} - -Najprej se prepričajte, da ste namestili knjižnico [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) Python: - -```bash -pip install web3 -``` - -```python -from web3 import Web3 - - -w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) - -dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI -weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # Wrapped ether (WETH) - -acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11" # Uniswap V2: DAI 2 - -# This is a simplified Contract Application Binary Interface (ABI) of an ERC-20 Token Contract. -# It will expose only the methods: balanceOf(address), decimals(), symbol() and totalSupply() -simplified_abi = [ - { - 'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], - 'name': 'balanceOf', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'decimals', - 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'symbol', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'totalSupply', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - } -] - -dai_contract = w3.eth.contract(address=w3.toChecksumAddress(dai_token_addr), abi=simplified_abi) -symbol = dai_contract.functions.symbol().call() -decimals = dai_contract.functions.decimals().call() -totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals -addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals - -# DAI -print("===== %s =====" % symbol) -print("Total Supply:", totalSupply) -print("Addr Balance:", addr_balance) - -weth_contract = w3.eth.contract(address=w3.toChecksumAddress(weth_token_addr), abi=simplified_abi) -symbol = weth_contract.functions.symbol().call() -decimals = weth_contract.functions.decimals().call() -totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals -addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals - -# WETH -print("===== %s =====" % symbol) -print("Total Supply:", totalSupply) -print("Addr Balance:", addr_balance) -``` - -## Nadaljnje branje {#further-reading} - -- [EIP-20: ERC-20 standard za žetone](https://eips.ethereum.org/EIPS/eip-20) -- [OpenZeppelin – žetoni](https://docs.openzeppelin.com/contracts/3.x/tokens#ERC20) -- [OpenZeppelin – implementacija ERC-20](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) diff --git a/src/content/translations/sl/developers/docs/standards/tokens/erc-721/index.md b/src/content/translations/sl/developers/docs/standards/tokens/erc-721/index.md deleted file mode 100644 index 78cee50a3da..00000000000 --- a/src/content/translations/sl/developers/docs/standards/tokens/erc-721/index.md +++ /dev/null @@ -1,243 +0,0 @@ ---- -title: ERC-721 standard za nezamenljive žetone -description: -lang: sl ---- - -## Uvod {#introduction} - -**Kaj je nezamenljiv žeton?** - -Nezamenljiv žeton (NFT) se uporablja za identifikacijo nečesa oz. nekoga na edinstven način. Ta tip žetona je popoln za uporabo na platformah, ki ponujajo zbirateljske predmete, ključe za dostop, loterijske srečke, oštevilčene sedeže za koncerte in športne tekme itd. Ta posebni tip žetona ima izjemne možnosti, zato si zasluži lasten standard. ERC-721 je namenjen točno temu! - -**Kaj je ERC-721?** - -ERC-721 predstavlja standard za NFT-je. Z drugimi besedami: ta tip žetona je edinstven in ima lahko različno vrednost glede na drug žeton iz iste pametne pogodbe, morda zaradi svoje starosti, redkosti ali celo nečesa drugega, kot je njegov videz. Počakajte, videz? - -Da! Vsi NFT-ji imajo spremenljivko `uint256`, ki se imenuje `tokenId`, tako da morata biti za katerokoli pogodbo ERC-721 `naslov pogodbe, uint256 tokenId` globalno edinstvena. Glede na to ima lahko dapp "pretvornik", ki uporablja `tokenId` kot vnos in tako izda sliko nečesa zanimivega, kot so zombiji, orožje, vrline ali izjemni mucki! - -## Predpogoji {#prerequisites} - -- [Računi](/developers/docs/accounts/) -- [Pametne pogodbe](/developers/docs/smart-contracts/) -- [Standardi za žetone](/developers/docs/standards/tokens/) - -## Jedro {#body} - -ERC-721 (Zahteva Ethereum za komentarje 721), ki so ga januarja 2018 predlagali William Entriken, Dieter Shirley, Jacob Evans in Nastassia Sachs, je standard za nezamenljive žetone, ki implementira API za žetone znotraj pametnih pogodb. - -Zagotavlja funkcionalnosti, kot so prenos žetonov z enega računa na drugega, prejem trenutnega stanja žetonov določenega računa in tudi prejem skupne količine žetonov, ki je na voljo v omrežju. Poleg tega ima tudi nekaj drugih funkcionalnosti, kot je potrditev porabe določene količine žetonov z enega računa s strani računa tretje osebe. - -Če pametna pogodba implementira naslednje metode in dogodke, se lahko imenuje pogodba nezamenljivega žetona ERC-721. Ko je enkrat uveljavljena, bo odgovorna za sledenje ustvarjenih žetonov na Ethereumu. - -Od [EIP-721](https://eips.ethereum.org/EIPS/eip-721): - -#### Metode {#methods} - -```solidity - function balanceOf(address _owner) external view returns (uint256); - function ownerOf(uint256 _tokenId) external view returns (address); - function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; - function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; - function transferFrom(address _from, address _to, uint256 _tokenId) external payable; - function approve(address _approved, uint256 _tokenId) external payable; - function setApprovalForAll(address _operator, bool _approved) external; - function getApproved(uint256 _tokenId) external view returns (address); - function isApprovedForAll(address _owner, address _operator) external view returns (bool); -``` - -#### Dogodki {#events} - -```solidity - event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); - event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); - event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); -``` - -### Primeri {#web3py-example} - -Oglejmo si, zakaj je standard tako pomemben za to, da poenostavi pregled katerekoli pogodbe žetona ERC-721 na Ethereumu. Za ustvarjanje vmesnika za katerikoli žeton ERC-721 potrebujemo le binarni vmesnik pogodbene aplikacije (ABI). Kot lahko vidite spodaj, bomo uporabili poenostavljen ABI, da bi ustvarili primer z nizkim trenjem. - -#### Primer Web3.py {#web3py-example} - -Najprej se prepričajte, da ste namestili knjižnico [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) Python: - -```bash -pip install web3 -``` - -```python -from web3 import Web3 -from web3._utils.events import get_event_data - - -w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) - -ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # CryptoKitties Contract - -acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # CryptoKitties Sales Auction - -# This is a simplified Contract Application Binary Interface (ABI) of an ERC-721 NFT Contract. -# It will expose only the methods: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply() -simplified_abi = [ - { - 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], - 'name': 'balanceOf', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'name', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], - 'name': 'ownerOf', - 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'symbol', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'totalSupply', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, -] - -ck_extra_abi = [ - { - 'inputs': [], - 'name': 'pregnantKitties', - 'outputs': [{'name': '', 'type': 'uint256'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [{'name': '_kittyId', 'type': 'uint256'}], - 'name': 'isPregnant', - 'outputs': [{'name': '', 'type': 'bool'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - } -] - -ck_contract = w3.eth.contract(address=w3.toChecksumAddress(ck_token_addr), abi=simplified_abi+ck_extra_abi) -name = ck_contract.functions.name().call() -symbol = ck_contract.functions.symbol().call() -kitties_auctions = ck_contract.functions.balanceOf(acc_address).call() -print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}") - -pregnant_kitties = ck_contract.functions.pregnantKitties().call() -print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}") - -# Using the Transfer Event ABI to get info about transferred Kitties. -tx_event_abi = { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'from', 'type': 'address'}, - {'indexed': False, 'name': 'to', 'type': 'address'}, - {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}], - 'name': 'Transfer', - 'type': 'event' -} - -# We need the event's signature to filter the logs -event_signature = w3.sha3(text="Transfer(address,address,uint256)").hex() - -logs = w3.eth.getLogs({ - "fromBlock": w3.eth.blockNumber - 120, - "address": w3.toChecksumAddress(ck_token_addr), - "topics": [event_signature] -}) - -# Notes: -# - 120 blocks is the max range for CloudFlare Provider -# - If you didn't find any Transfer event you can also try to get a tokenId at: -# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events -# Click to expand the event's logs and copy its "tokenId" argument - -recent_tx = [get_event_data(w3.codec, tx_event_abi, log)["args"] for log in logs] - -kitty_id = recent_tx[0]['tokenId'] # Paste the "tokenId" here from the link above -is_pregnant = ck_contract.functions.isPregnant(kitty_id).call() -print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}") -``` - -Pogodba CryptoKitties ima poleg standardnih tudi nekaj drugih zanimivih dogodkov. - -Oglejmo si dva od njih: `Nosečnost` in `Rojstvo`. - -```python -# Using the Pregnant and Birth Events ABI to get info about new Kitties. -ck_extra_events_abi = [ - { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'owner', 'type': 'address'}, - {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, - {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, - {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}], - 'name': 'Pregnant', - 'type': 'event' - }, - { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'owner', 'type': 'address'}, - {'indexed': False, 'name': 'kittyId', 'type': 'uint256'}, - {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, - {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, - {'indexed': False, 'name': 'genes', 'type': 'uint256'}], - 'name': 'Birth', - 'type': 'event' - }] - -# We need the event's signature to filter the logs -ck_event_signatures = [ - w3.sha3(text="Pregnant(address,uint256,uint256,uint256)").hex(), - w3.sha3(text="Birth(address,uint256,uint256,uint256,uint256)").hex(), -] - -# Here is a Pregnant Event: -# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog -pregnant_logs = w3.eth.getLogs({ - "fromBlock": w3.eth.blockNumber - 120, - "address": w3.toChecksumAddress(ck_token_addr), - "topics": [ck_event_signatures[0]] -}) - -recent_pregnants = [get_event_data(w3.codec, ck_extra_events_abi[0], log)["args"] for log in pregnant_logs] - -# Here is a Birth Event: -# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a -birth_logs = w3.eth.getLogs({ - "fromBlock": w3.eth.blockNumber - 120, - "address": w3.toChecksumAddress(ck_token_addr), - "topics": [ck_event_signatures[1]] -}) - -recent_births = [get_event_data(w3.codec, ck_extra_events_abi[1], log)["args"] for log in birth_logs] -``` - -## Priljubljeni NFT-ji {#popular-nfts} - -- [Sledilnik Etherscan NFT](https://etherscan.io/tokens-nft) navaja NFT-je na Ethereumu z najvišjo količino trgovanja. -- [CryptoKitties](https://www.cryptokitties.co/) je igra, osredotočena okoli vzreje, zbiranja in prisrčnih bitij, ki jih imenujemo CryptoKitties. -- [Sorare](https://sorare.com/) je globalna igra fantazijskega nogometa, kjer lahko zbirate omejene izdaje zbirateljskih predmetov, upravljate svoje ekipe in tekmujete za nagrade. -- [Storitev za Ethereum imena (ENS)](https://ens.domains/) ponuja varen in decentraliziran način za naslavljanje virov tako na kot tudi izven blokovne verige z uporabo preprostih, človeku berljivih imen. -- [Unstoppable Domains](https://unstoppabledomains.com/) je podjetje iz San Francisca, ki razvija imena na blokovnih verigah. Imena na blokovnih verigah nadomestijo naslove kriptovalut s človeško berljivimi imeni in so lahko uporabljena za omogočanje spletnih strani, odpornih na cenzuro. -- [Gods Unchained Cards](https://godsunchained.com/) je igra izmenjave kart na blokovni verigi Ethereum, ki za prenos dejanskega lastništva predmetov v igrah uporablja NFT-je. -- [Bored Ape Yacht Club](https://boredapeyachtclub.com) je zbirka 10 000 edinstvenih NFT-jev, ki poleg tega, da so dokazljivo redki umetniški kosi, delujejo tudi kot članski žeton kluba, ki članom zagotavlja prednosti in ugodnosti, ki se kot rezultat prizadevanja skupnosti s časom povečujejo. - -## Nadaljnje branje {#further-reading} - -- [EIP-721: standard za nezamenljive žetone ERC-721](https://eips.ethereum.org/EIPS/eip-721) -- [OpenZeppelin – dokumentacija ERC-721](https://docs.openzeppelin.com/contracts/3.x/erc721) -- [OpenZeppelin – implementacija ERC-721](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) -- [Alchemy NFT API](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) diff --git a/src/content/translations/sl/nft/index.md b/src/content/translations/sl/nft/index.md deleted file mode 100644 index c32a223ad81..00000000000 --- a/src/content/translations/sl/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Nezamenljivi žetoni (NFT) -description: Pregled NFT-jev na Ethereumu -lang: sl -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: Logotip Eth prikazan prek holograma. -summaryPoint1: Način predstavitve česarkoli edinstvenega kot sredstva, ki temelji na Ethereumu. -summaryPoint2: NFT-ji dajejo ustvarjalcem vsebin več moči, kot so jo imeli kadarkoli prej. -summaryPoint3: Podprto s pametnimi pogodbami na Ethereumovi verigi blokov. ---- - -## Kaj je NFT? {#what-are-nfts} - -NFT-ji so žetoni, ki so individualno unikatni. Vsak NFT ima drugačne lastnosti (nezamenljive) in je dokazljivo redek. To je drugače od žetonov, kot so ERC-20, kjer je vsak žeton v setu identičen in ima enake lastnosti (je zamenljiv). Vseeno vam je, kateri specifični bankovec imate v denarnici, zato ker so vsi identični in imajo enako vrednost. Vendar, vam _je_ pomembno, kateri specifični NFT imate, saj imajo vsi svoje individualne lastnosti, s katerimi jih lahko ločite od drugih (so nezamenljivi). - -Unikatnost vsakega NFT-ja omogoča spremembo stvari, kot so umetnost, zbirateljski predmeti ali celo nepremičnine, v žetone, kjer specifičen NFT predstavlja nek unikaten resničen ali digitalen izdelek. Lastništvo sredstva ščiti Ethereumova veriga blokov – nihče ne more spreminjati zapisa o lastništvu ali s kopiranjem in lepljenjem ustvariti novega nezamenljivega žetona. - - - -## Internet sredstev {#internet-of-assets} - -NFT-ji in Ethereum rešujejo nekatere težave, ki danes obstajajo na spletu. Medtem ko vse postaja bolj digitalno, se pojavlja potreba za repliciranje značilnosti fizičnih predmetov, kot so omejenost količine, edinstvenost in dokaz o lastništvu, brez potrebe po centralni avtoriteti. Z NFT-ji ste lahko na primer lastnik glasbene datoteke mp3, ki ni specifična aplikaciji ponudnika glasbe, ali pa si lastite uporabniško ime na socialnem omrežju, ki ga lahko prodate ali zamenjate, vendar vam ga ponudnik spletne platforme sam ne more odvzeti. - -Poglejte si, kako je videti primerjava interneta NFT-jev z internetom, ki ga večinoma uporabljamo danes ... - -### Primerjava {#nft-comparison} - -| Internet NFT-jev | Današnji internet | -| ---------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Ste lastnik svojih sredstev! Samo vi jih lahko prodate ali jih zamenjate. | Sredstva najamete od neke organizacije. | -| NFT-ji so digitalno edinstveni, nobena dva NFT-ja nista enaka. | Kopija entitete po navadi ni razločljiva od originala. | -| Lastništvo NFT-ja je shranjeno na blokovni verigi, kjer ga lahko kdorkoli preveri. | Lastniški zapisi digitalnih predmetov so shranjeni v strežnikih, ki jih upravljajo institucije – morate jim zaupati. | -| NFT-ji so pametne pogodbe na Ethereumu. To pomeni, da jih je enostavno uporabiti v drugih pametnih pogodbah in aplikacijah na Ethereumu! | Podjetja z digitalnimi izdelki po navadi zahtevajo, da uporabljate njihovo zagrajeno infrastrukturo. | -| Ustvarjalci vsebin lahko prodajo svoja dela kjerkoli in tako dostopajo do globalnega trga. | Ustvarjalci se zanašajo na infrastrukturo platform, ki jih uporabljajo. Te so pogosto podvržene pogojem uporabe in se poslužujejo geografskih omejitev. | -| Izdelovalci NFT-jev lahko ohranijo lastniške pravice svojega dela in vprogramirajo licenčnine neposredno v pogodbe NFT. | Platforme, kot so storitve za predvajanje glasbe, obdržijo večino dobička od prodaje. | - -## Kako NFT-ji delujejo? {#how-nfts-work} - -Kot vsak žeton, izdan na Ethereumu, so NFT-ji izdani s pametno pogodbo. Pametna pogodba je skladna z enim od različnih standardov NFT (običajno ERC-721 ali ERC-1155), ki določajo funkcije pogodbe. Pogodba lahko naredi NFT-je in jih dodeli specifičnemu lastniku. Lastništvo je definirano v pogodbi s povezavo določenega NFT-ja z določenim naslovom. NFT ima identifikator in po navadi tudi metapodatke, ki naredijo ta specifični žeton unikaten. - -Ko nekdo izdela NFT, v resnici izvaja funkcijo pametne pogodbe, ki dodeli specifičen NFT njihovemu naslovu. Te informacije so shranjene v podatkovni shrambi pametne pogodbe, ki pa je del blokovne verige. Izdelovalec pametne pogodbe lahko v pogodbo zapiše dodatno logiko, kot je recimo omejitev ponudbe žetona ali definiranje licenčnine, ki bo plačana ustvarjalcu vsakič, ko bo žeton prenesen. - -## Za kaj se uporabljajo NFT-ji? {#nft-use-cases} - -NFT-ji so uporabni za veliko stvari, kot so: - -- dokaz, da ste se udeležili dogodka, -- certifikat po dokončanem tečaju, -- predmeti, ki jih je mogoče imeti v lasti, za igre, -- digitalna umetnost, -- žetoni za fizične predmete, -- dokazovanje vaše spletne identitete, -- omejevanje dostopa do vsebine, -- upravljanje vstopnic, -- decentralizirana imena domen, -- zavarovanje v DeFi. - -Morda ste umetnik, ki želi svoje delo deliti ob pomoči NFT-jev, brez izgube nadzora nad njimi in žrtvovanja svojih zaslužkov posrednikom. Izdelate lahko novo pametno pogodbo ter določite število NFT-jev in njihove lastnosti ter jih povežete z določenim umetniškim delom. Kot umetnik lahko pametno pogodbo sprogramirate tako, da na primer ob vsakem prenosu NFT-ja prejmete licenčnino v višini 5 % prodajne cene. Prav tako lahko vedno dokažete, da ste vi ustvarili NFT-je, ker ste lastnik denarnice, ki je na blokovni verigi objavila pogodbo. Vaši kupci lahko enostavno preverijo, če so lastnik avtentičnega NFT-ja iz vaše zbirke, saj je naslov njihove denarnice povezan z žetonom v vaši pametni pogodbi. Kupci lahko NFT uporabljajo po celem ekosistemu Ethereum, brez dvoma o avtentičnosti. - -Predstavljajte si na primer vstopnico za športni dogodek. Kot lahko organizator dogodka izbere, koliko vstopnic bo prodal, se lahko ustvarjalec NFT-ja odloči, koliko replik bo obstajalo. Včasih so to natančne replike, kot je 5000 splošnih vstopnic. Včasih je ustvarjenih nekaj zelo podobnih, vendar je vsaka malo drugačna, kot so vstopnice z dodeljenim sedežem. Te se lahko kupi in proda neposredno, brez plačil posrednikom, kupec pa je lahko vedno gotov, da so vstopnice avtentične, saj lahko preveri naslov pametne pogodbe. - -Na ethereum.org se NFT-ji uporabljajo kot dokaz, da so ljudje sodelovali pri razvoju v naših repozitorijih GitHub ali pa so se udeležili klicev. Imamo celo svojo internetno domeno NFT. Če prispevate k ethereum.org, lahko pridobite NFT PAOP. Za nekatera kriptosrečanja so bile kot vstopnice uporabljeni protkoli POAP. [Več o prispevanju](/contributing/#poap). - -![ethereum.org POAP](./poap.png) - -To spletišče ima tudi alternativno ime domene, ki ga poganjajo NFT-ji, **ethereum.eth**. Naš naslov `.org` upravlja upravljavec sistema za imena domen (DNS), medtem ko je domena ethereum`.eth` registrirana prek Ethereumove imenske storitve (ENS). Je v naši lasti in jo upravljamo sami. [Oglejte si naš zapis ENS](https://app.ens.domains/name/ethereum.eth) - -[Več o storitvi ENS](https://app.ens.domains) - - - -### Varnost NFT-jev {#nft-security} - -Ethereumovo varnost zagotavlja mehanizem dokaza o deležu. Sistem je zasnovan tako, da odvrača ekonomsko zlonamerna dejanja, zato je Ethereum odporen na posege. Vse to omogoča obstoj in uporabo NFT-jev. Ko blok z vašo transakcijo z NFT-ji postane zaključen, bi napadalca stalo več milijonov ETH, da bi ga spremenil. Kdorkoli, ki uporablja Ethereumovo programsko opremo, bi lahko takoj zaznal nepoštene posege v NFT, krivec pa bi bil ekonomsko kaznovan in izločen iz omrežja. - -Varnostne težave, povezane z NFT-ji, so najpogosteje posledica prevar z lažnim predstavljanjem, ranljivosti v pametnih pogodbah ali uporabniških napak (na primer nenamerno izpostavljanje zasebnih ključev), zato je ustrezna zaščita denarnic za lastnike NFT-jev izjemno pomembna. - - - Več o varnosti - - -## Dodatno branje {#further-reading} - -- [Navodila za NFT-je za začetnike](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, januar 2020_ -- [Sledilnik EtherscanNFT](https://etherscan.io/nft-top-contracts) -- [Standard za žetone ERC-721](/developers/docs/standards/tokens/erc-721/) -- [Standard za žetone ERC-1155](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/sl/roadmap/beacon-chain/index.md b/src/content/translations/sl/roadmap/beacon-chain/index.md deleted file mode 100644 index ba00590a2e5..00000000000 --- a/src/content/translations/sl/roadmap/beacon-chain/index.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: Oddajniška veriga -description: Več informacij o oddajniški verigi – nadgradnji, s katero je bil uveden Ethereum z dokazom o deležu. -lang: sl -template: upgrade -image: ../../../../../assets/upgrades/core.png -summaryPoint1: Oddajniška veriga je v Ethereumovo okolje vpeljala dokaz o deležu. -summaryPoint2: Z izvirno Ethereumovo verigo, ki je uporabljala dokaz o delu, je bila spojena septembra 2022. -summaryPoint3: Oddajniška veriga je vpeljala protokol z logiko za doseganje soglasja in blokiranja lažnih govoric, ki zdaj ščiti Ethereum. ---- - - - Oddajniška veriga je začela delovati 1. decembra 2020 in je formalizirala dokaz o deležu kot Ethereumov mehanizem za doseganje soglasja ob spojitvi 15. septembra 2022. - - -## Kaj je bila oddajniška veriga? {#what-is-the-beacon-chain} - -Oddajniška veriga se je imenovala izvirna veriga blokov z mehanizmom dokaza o deležu, ki je začela delovati leta 2020. Ustvarili smo jo, da bi preverili, ali je mehanizem za doseganje soglasja z dokazom o deležu ustrezen in vzdržen, preden bi ga omogočili v glavnem Ethereumovem omrežju. Zaradi tega je delovala vzporedno z izvirnim Ethereumovim omrežjem z dokazom o delu. Za izklop mehanizma z dokazom o delu in vklop mehanizma z dokazom o deležu v Ethereumovem omrežju smo morali oddajniški verigi ukazati, da sprejema transakcije z izvirne Ethereumove verige, združiti te transakcije v bloke in jih razvrstiti v verigo blokov z mehanizmom za doseganje soglasja z dokazom o deležu. V istem trenutku so izvirni Ethereumovi odjemalci prenehali z rudarjenjem, posredovanjem blokov in logiko za doseganje soglasja ter jih predali oddajniški verigi. Ta dogodek se imenuje [spojitev](/roadmap/merge/). Ko je prišlo do spojitve, ni bilo več dveh verig blokov. Obstajala je le še ena Ethereumova veriga z dokazom o deležu. - -## Kaj je naredila oddajniška veriga? {#what-does-the-beacon-chain-do} - -Z oddajniško verigo je bila poimenovana glavna knjiga računov, s katero se je usmerjalo in koordiniralo omrežje Ethereumovih [zastavljavcev](/staking/), preden so ti začeli preverjati resnične Ethereumove transakcije. Ni obdelovala transakcij ali upravljala interakcij s pametnimi pogodbami. - -Uvedla je mehanizem za doseganje soglasja (ali "plast soglasja"), ki je zamenjalo Ethereumovo rudarjenje po mehanizmu z dokazom o delu, in tako prinesla številne izboljšave. - -Oddajniška veriga je bila temeljni del [varnega, okolju prijaznega in prilagodljivega Ethereuma, kot ga poznamo danes](/roadmap/vision/). - -## Vpliv oddajniške verige {#beacon-chain-features} - -### Vpeljava zastavljanja {#introducing-staking} - -Oddajniška veriga je v Ethereum vpeljala mehanizem [dokaza o deležu](/developers/docs/consensus-mechanisms/pos/). Ta ščiti Ethereum in omogoča validatorjem, da v postopku zaslužijo več ETH. V praksi to pomeni, da je treba za aktiviranje programske opreme za validacijo zastaviti ETH. Kot zastavljavec poganjate programsko opremo, ki ustvarja in validira nove bloke v verigi. - -Zastavljanje deluje podobno, kot je prej [rudarjenje](/developers/docs/mining/), vendar je drugačno. Rudarjenje je zahtevalo veliko predhodno investicijo v obliki zmogljive strojne opreme in porabe energije. Posledici sta bili ekonomija obsega in spodbujanje centralizacije. Rudarjenje prav tako ni vključevalo zahteve po zamrznitvi sredstev kot jamstva, kar je omejevalo možnosti prokotola, da kaznuje storilce po napadu. - -S prehodom na mehanizem dokaza o deležu je Ethereum postal občutno varnejši in bolj decentraliziran v primerjavi z mehanizmom dokaza o delu. Več ljudi kot sodeluje v omrežju, bolj decentralizirano in varno pred napadi postane. - - - Če želite postati validator in pomagati pri zaščiti Ethereuma, preberite več o zastavljanju. - - -### Priprava na razdrobitev {#setting-up-for-sharding} - -Odkar se je oddajniška veriga spojila z izvirnim Ethereumovim omrežjem, si Ethereumova skupnost prizadeva razširiti omrežje. - -Mehanizem dokaza o deležu ima to prednost, da ima v vsakem trenutku register vseh odobrenih ustvarjalcev blokov in njihove zastavljene deleže ETH. Ta register omogoča postopek deljenja in vladanja, s katerim zanesljivo razdeli določene odgovornosti v omrežju. - -Ta odgovornost je drugačna kot mehanizem dokaza o delu, kjer rudarji niso odgovorni omrežju. Tako lahko kadarkoli in brez posledic trajno prenehajo z rudarjenjem in izklopijo programsko opremo vozlišča. Pri tem mehanizmu prav tako ni registra znanih ustvarjalcev blokov niti zanesljivega načina za varno razdelitev odgovornosti v omrežju. - -[Več o razdrobitvi](/roadmap/danksharding/) - -## Razmerje med nadgradnjami {#relationship-between-upgrades} - -Vse nadgradnje Ethereuma so med seboj delno povezane. Povzemimo torej, kako oddajniška veriga vpliva na druge nadgradnje. - -### Oddajniška veriga in spojitev {#merge-and-beacon-chain} - -Oddajniška veriga je najprej delovala neodvisno od Ethereumovega glavnega omrežja, vendar sta se leta 2022 spojila. - - - Spojitev - - -### Drobci in oddajniška veriga {#shards-and-beacon-chain} - -Razdrobitev je mogoče v Ethereumovo okolje varno uvesti le, ko je vpeljan mehanizem za doseganje soglasja z dokazom o deležu. Oddajniška veriga je vpeljala zastavljanje, ki se je "spojilo" z glavnim omrežem in tlakovalo pot razdrobitvi, ki bo pomagala pri širitvi Ethereumovega omrežja. - - - Razdrobljene verige - - -## Dodatno branje - -- [Več o prihodnjih nadgradnjah Ethereuma](/roadmap/vision) -- [Več o dokazu o deležu](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/sl/roadmap/merge/index.md b/src/content/translations/sl/roadmap/merge/index.md deleted file mode 100644 index 7eef89a06fe..00000000000 --- a/src/content/translations/sl/roadmap/merge/index.md +++ /dev/null @@ -1,224 +0,0 @@ ---- -title: Spojitev -description: Več informacij o spojitvi – trenutku, ko je Ethereumovo glavno omrežje začelo uporabljati dokaz o deležu. -lang: sl -template: upgrade -image: ../../../../../assets/upgrades/merge.png -summaryPoint1: Ethereumovo glavno omrežje uporablja dokaz o deležu, vendar ni bilo vedno tako. -summaryPoint2: Nadgradnja z izvirnega mehanizma dokaza o delu na dokaz o deležu se je imenovala spojitev. -summaryPoint3: Spojitev je ime dogodka, ko se je Ethereumovo glavno omrežje spojilo z oddajniško verigo – ločeno verigo blokov, ki je uporabljalo dokaz o deležu. Obe omrežji zdaj obstajata kot ena veriga. -summaryPoint4: Spojitev je Ethereumovo porabo energijo zmanjšala za približno 99,95 %. ---- - - - Spojitev je bila izvedena 15. septembra 2022. Zaključila je Ethereumov prehod na mehanizem za doseganje soglasja z dokazom o deležu. Ta je uradno zamenjal mehanizem dokaza o delu in porabo energije zmanjšal za približno 99,95 %. - - -## Kaj je bila spojitev? {#what-is-the-merge} - -Spojitev je bila združitev izvirne izvajalne plasti Ethereuma (glavno omrežje, ki je obstajalo od [izvora](/history/#frontier)) z novo plastjo z mehanizmom za doseganje soglasja z dokazom o deležu, oddajniško verigo. Odpravila je potrebo po energijsko potratnem rudarjenju in namesto tega omogočila zaščito omrežja z zastavljanjem ETH. Predstavljala je zares vznemirljiv korak k realizaciji Ethereumove vizije – več možnosti širitve, varnosti in trajnosti. - - - -Najprej je [oddajniška veriga](/roadmap/beacon-chain/) stopila v uporabo ločeno od [glavnega omrežja](/glossary/#mainnet). Ethereumovo glavno omrežje z vsemi računi, zneski, pametnimi pogodbami in stanjem verige blokov je še naprej varoval mehanizem [dokaza o delu](/developers/docs/consensus-mechanisms/pow/), tudi ko je oddajniška veriga vzporedno uporabljala [dokaz o deležu](/developers/docs/consensus-mechanisms/pos/). Spojitev je končno združila oba sistema in mehanizem dokaza o delu je trajno zamenjal mehanizem dokaza o deležu. - -Predstavljajte si, da je Ethereum vesoljska ladja, ki je bila izstreljena, še preden je bila povsem pripravljena na medzvezdno potovanje. Z oddajniško verigo je skupnost pripravila nov motor in močnejši trup. Po celovitem testiranju je bil čas, da nov motor kar med poletom zamenja starega. Tako se je nov učinkovitejši motor združil z obstoječo vesoljsko ladjo, ki bo tako lahko prepotovala velike razdalje in raziskala vesolje. - -## Spojitev z glavnim omrežjem {#merging-with-mainnet} - -Z mehanizmom dokaza o delu je bilo Ethereumovo glavno omrežje zaščiteno od izvora do spojitve. Tako je lahko Ethereumova veriga blokov, ki jo vsi poznamo, julija 2015 začela delovati z vsemi znanimi funkcijami – transakcijami, pametnimi pogodbami, računi itd. - -Skozi celotno Ethereumovo zgodovino so se razvijalci pripravljali na neizogiben prehod z mehanizma dokaza o delu na mehanizem dokaza o deležu. 1. decembra 2020 je bila oddajniška veriga ustvarjena kot veriga blokov, ločena od glavnega omrežja, ki je delovala vzporedno. - -Oddajniška veriga najprej ni obdelovala transakcij v glavnem omrežju. Namesto tega je dosegala soglasja o lastnem stanju, tako da se je strinjala z aktivnimi validatorji in stanji na njihovih računih. Po obsežnem preskušanju je prišel čas, ko je začela oddajniška veriga dosegati soglasja o podatkih iz resničnega sveta. Po spojitvi je postala oddajniška veriga mehanizem za doseganje soglasij o vseh podatkih v omrežju, vključno s transakcijami in stanji na računih na izvajalni plasti. - -Spojitev je predstavljala uradni premik, kjer se je oddajniška veriga začela uporabljati kot sredstvo za ustvarjanje blokov. Rudarjenje ni več sredstvo za ustvarjanje veljavnih blokov. To vlogo so prevzeli validatorji dokaza o deležu, ki so zdaj odgovorni za preverjanje veljavnosti vseh transakcij in predlaganih blokov. - -V spojitvi ni bil izgubljen noben del zgodovine. Ko se je glavno omrežje spojilo z oddajniško verigo, je spojilo tudi celotno Ethereumovo zgodovino transakcij. - - -Ta prehod na mehanizem dokaza o deležu je spremenil način izdajanja etra. Preberite več o izdajanju etra pred spojitvijo in po njej. - - -### Uporabniki in imetniki {#users-holders} - -**Spojitev ni za imetnike in uporabnike spremenila ničesar.** - -_Naj ponovimo_: kot uporabniku ali imetniku ETH ali kateregakoli drugega digitalnega sredstva na Ethereumu pa tudi kot zastavljavcu, ki ne upravlja vozlišča, **vam po spojitvi s sredstvi ali denarnico ni treba narediti ničesar.** ETH je samo ETH. Ne obstajata "stari in novi ETH" ali "ETH1 in ETH2", pa tudi denarnice po spojitvi delujejo popolnoma enako kot prej – osebe, ki pravijo drugače, so zelo verjetno prevaranti. - -Tudi po zamenjavi mehanizma dokaza o delu je celotna Ethereumova zgodovina ostala enaka in se zaradi prehoda na mehanizem dokaza o deležu ni spremenila. Tudi po spojitvi imate še vedno dostop do vseh sredstev v svoji denarnici, ki ste jih tja shranili pred spojitvijo. **Ni vam treba opraviti nobene nadgradnje.** - -[Več o varnosti Ethereuma](/security/#eth2-token-scam) - -### Upravljavci vozlišč in razvijalci decentraliziranih aplikacij {#node-operators-dapp-developers} - - - -Ključne naloge vključujejo: - -1. Zaženite tako odjemalca za doseganje soglasja kot izvajalnega odjemalca. Končne točke drugih razvijalcev po spojitvi ne delujejo več. -2. Potrdite pristnost odjemalca za doseganje soglasja in izvajalnega odjemalca s skupnim geslom JWT, da lahko varno komunicirata. -3. Nastavite naslov "prejemnika provizij", da boste lahko prejemali zaslužene provizije transakcij in provizije MEV. - -Če za vozlišče ne opravite zgornjih dveh korakov, bo vozlišče prikazano kot "brez povezave", dokler obe plasti nista sinhronizirani in preverjeni. - -Če ne nastavite "prejemnika provizij", bo validator deloval kot običajno, ne boste pa prejeli neporabljenih provizij in maksimalnih pridobljivih vrednosti (MEV), ki bi jih zaslužili z bloki, ki jih predlaga vaš validator. - - - - -Do spojitve je bil za prejemanje, ustrezno preverjanje in širjenje blokov, ki jih šepeta omrežje, dovolj izvajalni odjemalec (na primer Geth, Erigon, Besu ali Nethermind). _Po spojitvi_ je veljavnost transakcij v izvajalnem tovoru odvisna tudi od veljavnosti "bloka soglasja", v katerem je. - -Zaradi tega potrebuje celotno Ethereumovo vozlišče zdaj izvajalnega odjemalca in odjemalca za doseganje soglasja. Ta dva odjemalca skupaj uporabljata nov programski vmesnik mehanizma. Programski vmesnik mehanizma zahteva preverjanje pristnosti z geslom JWT, ki je posredovan obema odjemalcema, kar omogoča varno komunikacijo. - -Ključne naloge vključujejo: - -– Poleg izvajalnega odjemalca namestite odjemalca za doseganje soglasja. -– Potrdite pristnost izvajalnega odjemalca in odjemalca za doseganje soglasja s skupnim geslom JWT, da bosta lahko varno komunicirala drug z drugim. - -Če za vozlišče ne opravite zgornjih korakov, bo vozlišče prikazano kot "brez povezave", dokler obe plasti nista sinhronizirani in preverjeni. - - - - - -Spojitev je spremenila način doseganja soglasja, kar vključuje tudi spremembe, povezane: - -– s strukturo blokov, -– s časi rež ali blokov, -– z izvajalno kodo, -– z viri naključnosti na verigi ter -– s koncepti _varnih vodilnih_ in _zaključenih blokov_. - -Za več informacij preberite blog [Kako spojitev vpliva na Ethereumovo aplikacijsko plast](https://blog.ethereum.org/2021/11/29/how-the-merge-impacts-app-layer/) Tima Beika. - - -## Spojitev in poraba energije {#merge-and-energy} - -Spojitev predstavlja konec mehanizma dokaza o delu za Ethereum in začetek bolj trajnostno usmerjenega in okolju prijaznega Ethereuma. Ethereumova poraba energije se je znižala za približno 99,95 %, zaradi česar je Ethereum zelena veriga blokov. Pridobite več informacij o [Ethereumovi porabi energije](/energy-consumption/). - -## Spojitev in širjenje omrežja {#merge-and-scaling} - -Spojitev je tudi postavila temelje za nadaljnje širitve omrežja, ki z dokazom o delu niso bile mogoče. Tako se je Ethereum še za korak približal velikosti, varnosti in trajnosti, opisani v [viziji za Ethereum](/roadmap/vision/). - -## Zmote o spojitvi {#misconceptions} - - -Obstajata dve vrsti Ethereumovih vozlišč: vozlišča, ki predlagajo bloke, in vozlišča, ki jih ne. - -Vozlišča, ki predlagajo bloke, predstavljajo le majhno število vseh Ethereumovih vozlišč. Ta kategorija vključuje vozlišča za rudarjenje, ki uporabljajo mehanizem dokaza o delu, in validacijska vozlišča, ki uporabljajo mehanizem dokaza o deležu. Zahteva zagotavljanje ekonomskih virov (na primer računske moči grafične kartice za dokaz o delu ali zastavljenega ETH za dokaz o deležu) za možnost, da občasno predlagajo naslednji blok in zaslužijo nagrade, ki jih podeljuje protokol. - -Drugim vozliščem v omrežju (ki so v večini) ni treba zagotavljati ekonomskih virov, razen običajnega osebnega računalnika z 1–2 TB razpoložljivega prostora za shranjevanje in internetno povezavo. Ta vozlišča ne predlagajo blokov, še vedno pa imajo nepogrešljivo vlogo pri varovanju omrežja. Zagotavljajo namreč ustreznost vseh predlagateljev blokov, tako da poslušajo, ali so nastali novi bloki, in ob njihovem nastanku preverjajo, ali so v skladu s pravili soglasja omrežja. Če je blok veljaven, ga vozlišče posreduje skozi omrežje. Če blok iz kateregakoli vzroka ni veljaven, ga bo programska oprema vozlišča smatrala za neveljavnega in ga ne bo posredovala v omrežje. - -Vozlišče, ki ne ustvarja blokov, lahko kdorkoli vodi v skladu s katerim od mehanizmov za doseganje soglasja (dokaz o delu ali dokaz o deležu). Uporabnike k temu _močno spodbujamo_, če imajo sredstva za to. Delovanje vozlišča je za Ethereum izjemno pomembno. Vsako tako posamezno vozlišče izboljšuje varnost, zasebnost in zaščito pred cenzuro za celotno omrežje. - -Zmožnost, da lahko kdorkoli upravlja svoje vozlišče, je _popolnoma nepogrešljiva_ za zagotavljanje decentralizacije Ethereumovega omrežja. - -[Več o upravljanju lastnega vozlišča](/run-a-node/) - - - - -Provizije za plin so posledica povpraševanja v omrežju glede na njegovo kapaciteto. Spojitev je odpravila uporabo mehanizma dokaza o delu in za doseganje soglasja uvedla mehanizem dokaza o deležu, ni pa občutno spremenila dejavnikov, ki neposredno vplivajo na kapaciteto ali pretočnost omrežja. - -Z [načrtom razvoja, ki se osredotoča na združevanje transakcij](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698), se trudimo širiti dejavnost uporabnikov na [2. plasti 2](/layer-2/), glavno omrežje na 1. plasti pa želimo razvijati kot varno decentralizirano plast za poravnavo, ki je optimizirana za povečevanje prostora za shranjevanje podatkov, s katerim bodo vse transakcije postale eksponentno cenejše. Prehod na mehanizem dokaza o deležu je nujen predpogoj za tako delovanje. [Več o plinu in provizijah.](/developers/docs/gas/) - - - -"Hitrost" transakcije se lahko meri na več načinov, na primer s časom vključitve v blok ali zaključka transakcije. Oba se bosta rahlo spremenila, ne pa toliko, da bi uporabniki opazili. - -V preteklosti je bil pri mehanizmu dokaza o delu cilj, da se nov blok ustvari približno vsakih 13,3 sekunde. Pri mehanizmu dokaza o deležu se vsaka reža pojavi na natanko 12 sekund. V vsaki reži lahko validator objavi blok. V večini rež so bloki, ne pa nujno v vseh (ko validator na primer ne deluje). Pri mehanizmu dokaza o deležu se bloki ustvarjajo za približno 10 % pogosteje kot pri mehanizmu dokaza o delu. To je majhna sprememba, ki je uporabniki verjetno ne bodo opazili. - -Mehanizem dokaza o deležu je uvedel koncept zaključka transakcije, ki prej ni bil na voljo. Pri mehanizmu dokaza o delu je zmožnost povrnitve bloka postala eksponentno težja z vsakim blokom, ki je bil ustvarjen po transakciji, vendar pa nikoli ni postala ničelna. Pri mehanizmu dokaza o deležu se bloki združujejo v epohe (6,4-minutna obdobja, ki vsebujejo 32 možnosti za bloke), o katerih glasujejo validatorji. Ko se epoha konča, validatorji glasujejo, ali jo smatrajo za "upravičeno". Če se validatorji strinjajo, da je epoha upravičena, se v naslednji epohi zaključi. Razveljavitev zaključenih transakcij ni ekonomsko smiselna, saj bi bilo treba za njo pridobiti in sežgati tretjino vsega zastavljenega ETH. - - - - -Zastavljen ETH in nagrade za zastavljanje so še naprej zadržane in jih ni mogoče dvigniti. Dvigi so načrtovani v prihajajoči nadgradnji Shanghai. - - - -Morda se zgornja opomba, da dvigi do nadgradnje Shanghai niso mogoči, zdi neintuitivna, vendar validatorji IMAJO takojšen dostop do provizij za transakcije in provizij MEV, ki so jih zaslužili med predlaganjem blokov. - -Protokol izdaja ETH kot nagrado za validatorje, ki prispevajo k doseganju soglasja. Plast za doseganje soglasja upošteva novo izdani ETH, kjer ima validator edinstveni naslov za hranjenje zastavljenega ETH in nagrad protokola. Ta ETH je zaklenjen do nadgradnje Shanghai. - -ETH na izvajalni plasti se upošteva ločeno od tistega na plasti za doseganje soglasja. Ko uporabniki opravljajo transakcije v Ethereumovem glavnem omrežju, se z ETH plačujejo plin in provizije validatorjem. Ta ETH je že na izvajalni plasti in ga protokol ne izdaja na novo – validatorjem je na voljo takoj (če so odjemalski programski opremi posredovali veljaven naslov "prejemnika provizije"). - - - -Ko bo nadgradnja Shanghai omogočila dvige, bodo vsi validatorji motivirani, da dvignejo zastavljena sredstva, ki presegajo 32 ETH, saj ta sredstva ne pripomorejo k izkupičku in niso zadržana na noben drug način. Odvisno od letne mere donosa (ki ga določa skupna vsota zastavljenega ETH) bodo morda želeli izklopiti validatorje in dvigniti vsa svoja sredstva ali pa nagrade izkoristiti za zastavitev še večje vsote, ki jim bo zagotovila večji izkupiček. - -Pomembna opomba: protokol omejuje popolne izhode validatorjev iz omrežja. Tako lahko na epoho iz omrežja izstopi največ šest validatorjev (vsake 6,4 minute, torej 1350 na dan ali približno največ 43.200 ETH na dan od več kot 10 milijonov zastavljenega ETH). Ta omejitev je odvisna od skupne vsote zastavljenega ETH in preprečuje prevelik beg sredstev. Poleg tega preprečuje morebitnim napadalcem, da bi s svojimi sredstvi povzročili prekršek za zmanjšanje deleža in v isti epohi dvignili vsa svoja sredstva, preden bi protokol lahko uveljavil kazen za zmanjšanje deleža. - -Letna mera donosa je namenoma dinamična, saj tako celotnemu trgu zastavljavcev omogoča, da pretehtajo, koliko so pripravljeni zaslužiti za pomoč pri ščitenju omrežja. Ko bodo dvigi omogočeni in bo omejitev prenizka, bodo validatorji izstopali pri omejitvi, ki jo določa protokol. S tem bo letna mera donosa postopoma naraščala, kar bo privabilo nove ali stare zastavljavce. - - -## Kaj se je zgodilo z "Eth2"? {#eth2} - -Pojem "Eth2" smo opustili. Po spojitvi omrežij "Eth1" in "Eth2" v eno verigo ni več mogoče razlikovati med obema Ethereumovima omrežjema. Obstaja samo še Ethereum. - -Da bi se izognila zmedi, je skupnost posodobila spodnja pojma: - -- "Eth1" je zdaj "izvajalna plast", ki opravlja transakcije in izvaja kodo. -- "Eth2" je zdaj "plast za doseganje soglasja", ki obravnava mehanizem za doseganje soglasja z dokazom o deležu. - -Te posodobitve terminologije spreminjajo samo konvencije o poimenovanju; ne spreminjajo ciljev ali načrta Ethereuma. - -[Pridobite več informacij o preimenovanju omrežja "Eth2"](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) - -## Razmerje med nadgradnjami {#relationship-between-upgrades} - -Vse nadgradnje Ethereuma so med seboj delno povezane. Povzemimo torej, kako spojitev vpliva na druge nadgradnje. - -### Spojitev in oddajniška veriga {#merge-and-beacon-chain} - -Spojitev predstavlja uradno dodajanje oddajniške verige kot nove plasti za doseganje soglasja izvirni izvajalni plasti glavnega omrežja. Od spojitve validatorji ščitijo Ethereumovo glavno omrežje, rudarjenje z mehanizmom [dokaza o delu](/developers/docs/consensus-mechanisms/pow/) pa ni več veljaven način ustvarjanja blokov. - -Namesto tega bloke predlagajo validacijska vozlišča, ki so zastavila ETH v zameno za pravico, da sodelujejo pri sprejemanju soglasja. Te nadgradnje postavljajo temelje za prihodnje nadgradnje za širjenje omrežja, vključno z razdrobitvijo. - - - Oddajniška veriga - - -### Spojitev in nadgradnja Shanghai {#merge-and-shanghai} - -Da bi poenostavila in se osredotočila na uspešen prehod na mehanizem dokaza o deležu, spojitev ni vključevala nekaterih pričakovanih funkcij, na primer možnosti dviga zastavljenega ETH. Spojitvi bo sledila nadgradnja Shanghai, ki bo zastavljavcem omogočila dvig teh sredstev. - -Na tekočem lahko ostanete tako, da preberete članek [Težava z načrtovanjem nadgradnje Shanghai na GitHubu](https://github.com/ethereum/pm/issues/450) ali [Spletni dnevnik Ethereumove fundacije o raziskavah in razvoju](https://blog.ethereum.org/category/research-and-development/). Vsi bolj radovedni si lahko več pogledate v predstavitvi [Kaj se bo zgodilo po spojitvi](https://youtu.be/7ggwLccuN5s?t=101), ki jo je imel Vitalik na dogodku ETHGlobal aprila 2021. - -### Spojitev in razdrobitev {#merge-and-data-sharding} - -Začetni načrt je predvideval delo na razdrobitvi, s katero bi nadgradljivost naslovili pred spojitvijo. Z razcvetom [rešitev za nadgradljivost na podlagi tehnologije 2. plasti](/layer-2/) se je prioriteta preusmerila na menjavo mehanizma dokaza o delu z mehanizmom dokaza o deležu. - -Načrti za razdrobitev se hitro spreminjajo, vendar so se s pojavom in uspehom tehnologij 2. plasti za nadgradnjo opravljanja transakcij preusmerili na iskanje najboljšega načina za porazdelitev bremena shranjevanja klicanih podatkov iz vseh pogodb, kar bi omogočilo eksponentno rast kapacitete omrežja. To ne bi bilo mogoče brez predhodnega prehoda na mehanizem dokaza o deležu. - - - Razdrobitev - - -## Nadaljnje branje {#further-reading} - - - - diff --git a/src/content/translations/sr/dao/index.md b/src/content/translations/sr/dao/index.md deleted file mode 100644 index a6941afd8f6..00000000000 --- a/src/content/translations/sr/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: Decentralizovane autonomne organizacije (DAO-i) -description: Pregled DAO-a na mreži Ethereum -lang: sr -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: Predstava nezavisne decentralizovane organizacije (DAO) koja glasa o predlogu. -summaryPoint1: Zajednice koje su u vlasništvu članova bez centralizovanog vođstva. -summaryPoint2: Siguran način da sarađujete sa strancima na internetu. -summaryPoint3: Sigurno mesto za ulaganje sredstava u neki specifičan cilj. ---- - -## Šta su DAO-i? {#what-are-daos} - -DAO je organizacija koja je u kolektivnom vlasništvu, kojom se upravlja putem lanca blokova i koja radi na zajedničkoj misiji. - -DAO omogućava da radimo sa osobama koje slično razmišljaju kao mi širom planete bez potrebe da verujemo dobroćudnom vođi da upravlja sredstvima ili operacijama. Ne postoji generalni direktor koji može da troši sredstva na svoje hirove ili finansijski direktor koji može da manipuliše knjigama. Umesto toga, pravila su definisana na lancu blokova i ugrađena u kod koji definiše kako organizacija funkcioniše i kako se sredstva troše. - -Imaju ugrađene trezore nad kojima niko nema ovlašćenja za pristup bez odobrenja grupe. Odluke se uređuju na osnovu predloga i glasanja kako bi se osiguralo da svaka osoba u organizaciji ima glas, i sve se dešava transparentno na lancu. - -## Zašto su nam potrebni DAO-i? {#why-dao} - -Pokretanje organizacije sa nekim ko podrazumeva finansiranje i novac zahteva veliko poverenje u osobe sa kojima sarađujete. Ali je teško verovati nekome sa kim ste interagovali samo putem interneta. Sa DAO-ima nema potrebe da se veruje bilo kome u grupi, već samo kodu DAO-a, što je 100% transparentno i može bilo ko da ga proveri. - -To otvara brojne nove mogućnosti za saradnju i koordinaciju na globalnom nivou. - -### Poređenje {#dao-comparison} - -| Decentralizovane i autonomne organizacije | Tradicionalna organizacija | -| -------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | -| Uglavnom je bez hijerarhije, potpuno demokratizovana. | Uglavnom ima hijerarhiju. | -| Za bilo kakvu promenu ili odluku potrebno je glasanje članova. | U zavisnosti od strukture, promene može zahtevati samo jedna strana ili se može ponuditi glasanje. | -| Glasovi se sabiraju, a ishod se automatski sprovodi bez potrebe za posrednikom. | Ako je glasanje dozvoljeno, glasovi se broje interno i ishod glasanja se daje ručno. | -| Usluge koje se nude automatski se obrađuju na decentralizovan način (npr. raspodelom filantropskih sredstava). | Potrebno je ljudsko upravljanje ili automatski, ali centralno kontrolisano, što je podložno manipulaciji. | -| Sve aktivnosti su transparentne i potpuno javne. | Aktivnosti su uglavnom privatne, i ograničene za javnost. | - -### DAO primeri {#dao-examples} - -Da bi ovo imalo više smisla, evo nekoliko primera kako možete koristiti DAO: - -- Humanitarna organizacija – Možete primati donacije od bilo koga na svetu i glasati koje ciljeve želite da finansirate. -- Kolektivno vlasništvo – možete kupiti fizičku ili digitalnu imovinu i članovi mogu glasati o tome kako će se ona koristiti. -- Ulaganja i stipendije – možete osnovati fond za ulaganja koji akumulira investicioni kapital i glasati koja ulaganja treba podržati. Vraćeni novac se kasnije može ponovo podeliti članovima DAO-a. - -## Kako DAO funkcioniše? {#how-daos-work} - -Suština svakog DAO-a je njegov pametni ugovor, kojim se definišu pravila organizacije i čuva njen budžet. Kada je ugovor objavljen na mreži Ethereum, niko ne može promeniti pravila izuzev na glasanju. Ako neko pokuša da uradi nešto što nije obuhvaćeno pravilima i logikom u kodeksu, neće uspeti. I s obzirom na to da je trezor definisan i pametnim ugovorom, to znači da niko ne može da potroši novac bez odobrenja ostalih članova grupe. To znači da DAO-u nije potreban centralni organ. Umesto toga, grupa kolektivno donosi odluke i plaćanja se automatski odobravaju nakon glasanja. - -To je moguće zato što su pametni ugovori, kada se objave na mreži Ethereum, zaštićeni od neovlašćenog rukovanja. Ne možete jednostavno urditi kod (pravila DAO-a), a da ljudi to ne primete zato što je sve javno. - - - Više o pametnim ugovorima - - -## Ethereum i DAO-i {#ethereum-and-daos} - -Ethereum je savršena osnova za DAO iz brojnih razloga: - -- Konsenzus mreže Ethereum je distribuiran i utvrđen dovoljno da bi organizacije verovale mreži. -- Kada se kod pametnog ugovora objavi, on se ne može menjati, pa čak ni od strane njegovih vlasnika. To omogućava da DAO funkcioniše prema pravilima na osnovu kojih je programiran. -- Pametni ugovori mogu da šalju/primaju sredstva. Bez toga, bio bi potreban posrednik koji bi upravljao sredstvima organizacije. -- Zajednica Ethereum se pokazala kao saradljivija, a ne kompetetivna, što omogućava brz razvoj najboljih praksi i sistema podrške. - -## Upravljanje DAO-m {#dao-governance} - -Postoji mnogo otvorenih pitanja pri upravljanju DAO-m, kao što su funkcionisanje glasanja i predlaganja. - -### Delegiranje {#governance-delegation} - -Delegiranje je DAO verzija predstavničke demokratije. Vlasnici tokena delegiraju glasove korisnicima koji sebe nominuju i potvrđuju se da će nadgledati protokol i biti informisani. - -#### Poznat primer {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) – Vlasnici tokena ENS mogu da delegiraju svoje glasove angažovanim članovima zajednice kako bi ih predstavljali. - -### Automatsko upravljanje transakcijama {#governance-example} - -U mnogim DAO-ima, transakcije će se automatski izvršavati ako članovi kvorumom glasaju potvrdno. - -#### Poznat primer {#governance-example} - -[Nouns](https://nouns.wtf) — U Nouns DAO-u, transakcije se izvršavaju automatski ako postoji kvorum glasova i ako se većinom glasa potvrdno, pod uslovom da neko od osnivača ne stavi veto. - -### Upravljanje višestrukim potpisima {#governance-example} - -Iako DAO-i mogu imati hiljade članova sa pravom glasa, sredstva mogu biti smeštena u novčaniku koji deli 5–20 aktivnih članova zajednice koji su pouzdani i obično su javno prepoznatljivi (javni identiteti poznati zajednici). Nakon glasanja, potpisnici sa više potpisa će izvršiti volju zajednice. - -## Zakoni DAO-a {#dao-laws} - -Godine 1977. američka savezna država Vajoming stvorila je LLC (limited liability company/društvo sa ograničenom odgovornošću), kojim štiti preduzetnike i ograničava njihovu odgovornost. Nedavno, ta država bila je pionir i u usvajanju zakona o DAO kojim se uspostavlja pravni status DAO-a. Trenutno, Vajoming, Vermont i Devičanska Ostrva imaju zakone o DAO u nekom obliku. - -#### Poznat primer {#law-example} - -[DAOGrad](https://citydao.io)Kompanija CityDAO je iskoristila zakon o DAO savezne države Vajoming da kupi 40 ari zemljišta u blizini Nacionalnog parka Jeloustoun. - -## Članstvo u DAO-u {#dao-membership} - -Postoje različiti modeli za članstvo u DAO-u. Članstvo može da odredi kako glasanje funkcioniše i ostale ključne delove DAO-a. - -### Članstvo zasnovano na tokenima {#token-based-membership} - -Uglavnom potpuno bez potrebe za dozvolama, u zavisnosti od korišćenog tokena. Uglavnom se tim upravljačkim tokenima može trgovati bez posebne dozvole na decentralizovanoj menjačnici. Ostali se moraju zaraditi pružanjem likvidnosti ili nekim drugim „dokazom o radu”. U svakom slučaju, prosto posedovanje tokena garantuje pristup glasanju. - -_Uglavnom se koriste za upravljanje širokim decentralizovanim protokolima i/ili samim tokenima._ - -#### Poznat primer {#token-example} - -[MakerDAO](https://makerdao.com) — Token MKR kompanije MakerDAO široko je dostupan u decentralizovanim menjačnicama i svako može da kupi pravo glasa o budućnosti protokola Maker. - -### Članstvo zasnovano na udelu {#share-based-membership} - -DAO-i zasnovani na udelu zahtevaju traženje više dozvola, ali i dalje prilično otvoreni. Potencijalni članovi mogu podneti zahtev za pridruživanje DAO-u, obično nudeći prilog vrednosti u vidu tokena ili rada. Udeo predstavlja direktno pravo glasanja i vlasništvo. Članovi mogu izaći u bilo kojem trenutku sa svojim proporcionalnim udelom iz trezora. - -_Obično se koriste za organizacije koje su bliskije, orijentisane ka ljudima, kao što su humanitarne organizacije, radničke zadruge i investicioni klubovi. Takođe mogu upravljati i protokolima i tokenima._ - -#### Poznat primer {#share-example} - -[MolochDAO](http://molochdao.com/) – Kompanija MolochDAO je usredsređena na finansiranje projekata u mreži Ethereum. Zahteva predlog za članstvo kako bi grupa mogla da proceni da li imate potrebnu stručnost i kapital da donosite odluke zasnovane na obaveštenosti o potencijalnim dobitnicima sredstava. Ne možete jednostavno da kupite pristup DAO-u na otvorenom tržištu. - -### Članstvo zasnovano na reputaciji {#reputation-based-membership} - -Reputacija predstavlja dokaz o učešću i omogućava pravo glasanja u DAO-u. Za razliku članstva zasnovanog na posedovanju tokena ili udela, DAO-i zasnovani na reputaciji ne prenose vlasništvo na one koji daju doprinos. Reputacija se ne može kupiti, preneti ili delegirati; članovi DAO-a moraju da zasluže svoju reputaciju učestvovanjem. Glasanje na lancu ne zahteva odobrenje i potencijalni članovi mogu slobodno da daju predloge za pridruživanje DAO-u i da traže da dobiju reputaciju i tokene kao nagradu za svoj doprinos. - -_Obično se koristi za decentralizovani razvoj i upravljanje protokolima i decentralizovanim aplikacijama, ali takođe, ovaj tip DAO-a je pogodan za različite vrste organizacija kao što su humanitarne organizacije, radničke zadruge, investicioni klubovi itd._ - -#### Poznat primer {#reputation-example} - -[DXdao](https://DXdao.eth.link) — DXdao je globalna samoupravljiva zadruga koja gradi decentralizovane protokole i aplikacije i upravlja njima od 2019. godine. DXdao koristi upravljanje zasnovano na reputaciji i holografski konsenzus za koordinaciju i upravljanje sredstvima, što znači da niko ne može da kupi uticaj na svoju budućnost. - -## Pridruži se/pokreni DAO {#join-start-a-dao} - -### Join a DAO {#join-a-dao} - -- [DAO-i zajednice mreže Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [Lista DAO-a organizacije DAOHaus](https://app.daohaus.club/explore) -- [Lista DAO-a organizacije Tally.xyz](https://www.tally.xyz) - -### Pokreni DAO {#start-a-dao} - -- [Prizovi DAO sa DAOHaus-om](https://app.daohaus.club/summon) -- [Pokreni upravljački DAO pomoću organizacije Tally](https://www.tally.xyz/add-a-dao) -- [Pokreni DAO koji pokreće Aragon](https://aragon.org/product) -- [Osnuj koloniju](https://colony.io/) -- [Pokreni DAO sa holografskim konsenzusom organizacije DAOstack](https://alchemy.daostack.io/daos/create) - -## Dodatna literatura {#further-reading} - -### Članci o DAO-u {#dao-articles} - -- [Šta je DAO?](https://aragon.org/dao) – [Aragon](https://aragon.org/) -- [Priručnik za DAO](https://daohandbook.xyz) -- [Kuća DAO-a](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [metaigra](https://wiki.metagame.wtf/) -- [Šta je DAO i čemu služi?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) -- [Kako pokrenuti digitalnu zajednicu koja koristi tehnologiju DAO](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) -- [Šta je DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) — [Coinmarketcap](https://coinmarketcap.com) -- [Šta je holografski konsenzus?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) – [DAOstack](https://daostack.io/) -- [DAO-i nisu korporacije: gde decentralizacija u autonomnim organizacijama ima značaj, autor: Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) -- [DAO-i, DAC-i, DA-i i još mnogo toga: nedovršen vodič kroz terminologiju](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) – [Ethereum Blog](https://blog.ethereum.org) - -### Videos {#videos} - -- [Šta je DAO u kriptovalutama?](https://youtu.be/KHm0uUPqmVE) -- [Može li DAO da izgradi grad?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) — [TED](https://www.ted.com/) diff --git a/src/content/translations/sr/decentralized-identity/index.md b/src/content/translations/sr/decentralized-identity/index.md deleted file mode 100644 index c3572e69a91..00000000000 --- a/src/content/translations/sr/decentralized-identity/index.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: Decentralizovan identitet -description: Šta je decentralizovani identitet i zašto je on važan? -lang: sr -template: use-cases -emoji: ":id:" -sidebarDepth: 2 -image: ../../../../assets/eth-gif-cat.png -summaryPoint1: Tradicionalni sistem identiteta je centralizovao izdavanje, održavanje i kontrolu vaših identifikatora. -summaryPoint2: Decentralizovani identitet eliminiše zavisnost od centralizovanih trećih strana. -summaryPoint3: Zahvaljujući kriptu, korisnici sada imaju alate da ponovo izdaju, drže i kontrolišu svoje vlastite identifikatore i potvrde. ---- - -Identitet podupire gotovo svaki aspekt vašeg života danas. Korišćenje onlajn usluge, otvaranje računa u banci, glasanje na izborima, kupovina imovine, zaposlenje — sve ove stvari zahtevaju dokaz o vašem identitetu. - -Ipak, tradicionalni menadžment identiteta se dugo oslanjao na centralizovane posrednike koji izdaju, čuvaju i kontrolišu vaše identifikatore i [potvrde](#what-are-attestations). Ovo znači da ne možete da kontrolišete informacije u vezi sa svojim identitetom ili da odlučite ko ima pristup vašim ličnim informacijama o identitetu (PII) i koliko pristupa ovi posrednici imaju. - -Da bi se rešili ovi problemi, mi imamo decentralizovani sistem identiteta izgrađen na javnom lancu blokova kao što je Ethereum. Decentralizovani identitet dopušta pojedincima da upravljaju informacijama o svom identitetu. Sa rešenjima decentralizovanih identiteta,\_vi_možete da stvorite identifikatore, zahtevati i zadržati svoje potvrde bez oslanjanja na centralne vlasti, kao što su pružaoci usluga ili vlada. - -## Šta je identitet? {#what-is-identity} - -Identitet je osećaj pojedinca o sebi koji je određen jedinstvenim karakteristikama. Identitet se odnosi na to da budete _jedinka_, odnosno određeno ljudsko biće. Identitet se takođe odnosi i na ne-ljudske entitete kao što su organizacija ili vlast. - -## Šta su identifikatori? {#what-are-identifiers} - -Identifikator je parče informacije koje se ponaša kao pokazatelj određenog ili određenih identiteta. Uobičajeni identifikatori uključuju: - -- Ime -- Broj socijalnog osiguranja/poreski identifikacioni broj -- Broj mobilnog telefona -- Datum i mesto rođenja -- Digitalni identifikacioni podaci, na primer, adrese elektronske pošte, korisnička imena, avatari - -Ovi tradicionalni primeri identifikatora se izdaju, drže i kontrolišu od strane centralnih entiteta. Potrebna vam je potvrda od strane vaše vlade da promenite svoje ime ili od strane društvene mreže da promenite svoje korisničko ime. - -## Šta su potvrde? {#what-are-attestations} - -Potvrde su tvrdnje jednog entiteta o drugom entitetu. Ukoliko živite u Sjedinjenim Američkim Državama, vozačka dozvola koja je je izdata od strane Odseka za motorna vozila (jedan entitet) potvrđuje da je vama (drugi entitet) legalno dozvoljeno da vozite auto. - -Potvrde nisu isto što i identifikatori. Potvrda_sadrži_identifikatore koje se odnose na određeni identitet i iznosi tvrdnju o nekom atributu koji se odnosi na taj identitet. Dakle, vaša vozačka dozvola ima identifikatore (ime, datum rođenja, adresu) ali i potvrdu da imate legalno pravo da vozite. - -### Šta su decentralizovani identifikatori? {#what-are-decentralized-identifiers} - -Tradicionalni identifikatori kao što su vaše ime ili email adresa se oslanjaju na treće učesnike — vlade i onog ko pruža usluge elektronske pošte. Decentralizovani identifikatori (DID-ovi) su drugačiji — oni nisu izdati, upravljani ili kontrolisani od strane centralnog entiteta. - -Decentralizovani identiteti se izdaju, drže i kontrolišu od strane pojedinaca. [Ethereum nalog](/developers/docs/accounts/)je jedan od primera decentralizovanog identifikatora. Vi možete da kreirate koliko god želite naloga bez ikakve dozvole od bilo koga i bez potrebe da iko taj nalog čuva u nekom centralnom registru. - -Decentralizovani identifikatori se čuvaju u distribuiranim bazama (lancima blokova) ili mrežama. Ovo čini decentralizovane identifikatore[globalno jedinstvenim, visoko dostupnim i kriptografski potvrđenim](https://w3c-ccg.github.io/did-primer/). Decentralizovani identifikator može se povezati sa različitim subjektima, uključujući osobe, organizacije ili državne institucije. - -## Šta omogućava decentralizovane identifikatore? {#what-makes-decentralized-identifiers-possible} - -### 1. Infrastruktura javnog ključa (PKI) {#public-key-infrastructure} - -Infrastruktura javnog ključa (PKI) je bezbednosna mera informacionih sistema koja generiše [javni ključ](/glossary/#public-key) i [privatni ključ](/glossary/#private-key) za jedan entitet. Kriptografija javnog ključa se izdaje na mrežama lanca blokova da bi dokazala identitet korisnika i kako bi dokazala vlasništvo nam digitalnom imovinom. - -Neki decentralizovani identifikatori, kao što Ethereum nalog, imaju javne i privatne ključeve. Javni ključ identifikuje ko kontroliše nalog dok privatni ključ može da potpisuje i dekriptuje poruke za ovaj nalog. PKI obezbeđuje potrebne dokaze za potvrdu entiteta i sprečava zloupotrebu i upotrebu lažnih identiteta, koristeći [kriptografske potpise](https://andersbrownworth.com/blockchain/public-private-keys/) za verifikaciju svih tvrdnji. - -### 2. Decentralizovane baze podataka {#decentralized-datastores} - -Lanac blokova služi kao verifikacioni registar podataka: otvoreno i decentralizovano skladište informacija bez potrebe za poverenjem. Postojanje javnih lanaca blokova eliminiše potrebu da se identifikatori skladište u centralizovanim registrima. - -Ukoliko neko želi da potvrdi validnost decentralizovanog identifikatora, mogu da pogledaju javni ključ koji je povezan sa tim identifikatorom na lancu blokova. Ovo se razlikuje od tradicionalnih identifikatora koji zahtevaju treće strane koje bi potvrđivale identitet. - -## Kako decentralizovani identifikatori i potvrde omogućavaju decentralizovani identitet? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} - -Decentralizovani identitet je ideja da informacije u vezi sa identitetom trebale biti samostalno kontrolisane, privatne i prenosive, pri čemu su decentralizovani identifikatori i potvrde osnovni gradivni elementi. - -U kontekstu decentralizovanog identiteta, potvrde (takođe poznate kao [verifikabilni podaci](https://www.w3.org/TR/vc-data-model/)) su neizmenjive i kriptografski verifikovane tvrdnje koje izdavalac pravi. Svaka potvrda ili proverljivi akreditiv koje izdaje neki subjekt (npr. organizacija) u vezi je sa njihovim decentralizovanim identifikatorom (DID). - -S obzirom na to da su DID-ovi smešteni na lancu blokova, svako može da proveri validnost potvrde tako što će uporediti izdavačev DID na Ethereumu. U suštini, Ethereum lanac blokova deluje kao globalni direktorijum koji omogućava verifikaciju DID-ova povezanih sa određenim entitetima. - -Decentralizovani identifikatori su razlog zašto su potvrde samo-kontrolisane i proverljive. Čak i ako izdavalac više ne postoji, nosilac identiteta će uvek imati dokaz o poreklu i validnosti potvrde. - -Decentralizovani identifikatori su takođe ključni za zaštitu privatnosti ličnih informacija putem decentralizovanih identiteta. Na primer, ako pojedinac dostavi dokaz potvrdi (vozačka dozvola), strana koja verifikuje ne mora da proverava validnost informacija u dokazu. Umesto toga, onom ko verifikuje su potrebne samo kriptografske garancije o autentičnosti potvrde i identitetu izdavačke organizacije kako bi utvrdio da li je dokaz validan. - -## Tipovi potvrda u decentralizovanom identitetu {#types-of-attestations-in-decentralized-identity} - -Način na koji se čuva i dobija informacija o potvrdama u ekosistemu identiteta zasnovanom na Ethereumu se razlikuje od tradicionalnog upravljanja identitetom. Evo pregleda kako izgledaju različiti pristupi izdavanju, skladištenju i verifikovanju potvrda u sistemu decentralizovanih identiteta: - -### Potvrde van lanca {#off-chain-attestations} - -Jedna briga pri čuvanju potvrda na lancu je da one mogu sadržati informacije koje pojedinci žele zadržati privatnim. Javna priroda Ethereum lanca blokova čini neprivlačni da se takve potvrde skladište tu. - -Rešenje za ovo je da se izdaju potvrde koje korisnici čuvaju van lanva u digitalnim novčanicima, ali potpisane od strane DID-a izdavača koji je na lancu. Ove potvrde su kodirane kao [JSON Web tokeni](https://en.wikipedia.org/wiki/JSON_Web_Token) i sadrže digitalni potpis izdavača — što dozvoljava jednostavnu verifikaciju van lanca. - -Evo jednog hipotetičkog scenarija kako bismo objasnili potvrde van lanca: - -1. Univerzitet (izdavač) generiše potvrdu (digitalni akademski sertifikat), potpisuje je svojim ključevima i izdaje je Bobu (vlasniku identiteta). - -2. Bob se prijavljuje za posao i želi da dokaže svoje akademske kvalifikacije poslodavcu tako što deli sa njim potvrdu iz svog mobilnog novčanika. Kompanija (ona koja verifikuje) može da potvrdi validnost potvrde tako što će da proveri DID izdavača (tj. javni ključ na Ethereumu). - -### Potvrde van lanca sa stalnim pristupom {#offchain-attestations-with-persistent-access} - -Pod ovim dogovorom, potvrde se pretvaraju u JSON datoteke i čuvaju izvan lanca (idealno na platformi za [decentralizovano skladištenje](/developers/docs/storage/) kao što su IPFS ili Swarm). Ipak, [heš](/glossary/#hash)iz JSON datoteke je skladišten na lancu i povezan je sa DID-om kroz register koji je na lancu. Povezani DID može biti ili od izdavača potvrde ili od primaoca. - -Ovaj pristup omogućava potvrdama da dobiju postojanost zasnovanu na lancu blokova, istovremeno zadržavajući enkripciju i mogućnost verifikacije informacija o njima. Takođe, omogućava selektivno otkrivanje informacija jer ih nosilac privatnog ključa može dešifrovati. - -### Potvrde na lancu {#onchain-attestations} - -Potvrde na lancu se čuvaju u [pametnim ugovorima](/developers/docs/smart-contracts/) na Ethereum lancu blokova. Pametni ugovor (koji se ponaša kao registar) će mapirati potvrdi na odgovarajući decentralizovani identifikator na lancu (javni ključ). - -Evo jednog primera da pokažemo kako potvrde na lancu funkcionišu u praksi: - -1. Kompanija (XYZ Corp) planira da proda vlasničke deonice koristeći pametni ugovor, ali želi da proda kupcima koji su provereni. - -2. XYZ Corp može da unajmi kompaniju koja vrši bezbednosne provere kako bi izdala potvrde na lancu na mreži Ethereum. Ova potvrda garantuje da je pojedinac koji je prošao proveru, bez otkrivanja bilo kojih ličnih informacija. - -3. Pametni ugovor koji prodaje deonice može proveriti registarski ugovor radi identiteta proveravanih kupaca, omogućavajući pametnom ugovoru da odredi ko ima dozvolu za kupovinu deonica, a ko ne. - -### Soulbound tokeni i identitet {#soulbound} - -[Soulbound tokeni](https://vitalik.ca/general/2022/01/26/soulbound.html) (NFT-ijevi koji se ne mogu prebacivati) se mogu koristiti kako bi se prikupile informacije koje su jedinstvene za određeni novčanik. Ovo efektivno stvara jedinstvenu identifikaciju na lancu blokova vezanu za određenu Ethereum adresu koja može uključivati tokene koji predstavljaju dostignuća (na primer, završavanje određenog onlajn kursa ili dostizanje određenog rezultata u igri) ili učešće u zajednici. - -## Benefiti decentralizovanog identiteta {#benefits-of-decentralized-identity} - -1. Decentralizovani identitet povećava kontrolu koju ima pojedinac nad svojim informacijama o identitetu. Decentralizovani identifikatori i potvrde se mogu potvrditi bez oslanjanja na centralizovane autoritete i treće strane. - -2. Rešenja za decentralizovani identitet omogućavaju bezbedan, jednostavan način za verifikaciju i upravljanje korisničkim identitetom i takođe štite privatnost. - -3. Decentralizovani identitet koristi tehnologiju lanca blokova koja uspostavlja poverenje između različitih strana i pruža kriptografske garancije za dokazivanje validnosti potvrda. - -4. Decentralizovani identitet čini podatke o identitetu prenosivim. Korisnici skladište potvrde i identifikatore u mobilnom novčaniku i mogu da ih podele sa kim žele. Decentralizovani identifikatori i potvrde nisu zaključani u bazi podataka organizacije koja ih izdaje. - -5. Decentralizovani identitet bi trebalo dobro da se uklopi sa novim tehnologijama nultog znanja koje će omogućiti pojedincima da dokažu da su vlasnici ili su nešto uradili, a da pri tome ne otkrivaju šta je to. Ovo može da postane moćan način da se kombinuje poverenje i privatnost za stvari kao što je glasanje. - -6. Decentralizovani identitet omogućava mehanizme anti-Sybil koji prepoznaju kada se jedno ljudsko biće pretvara da je više ljudi kako bi izigralo ili spamovalo neki sistem. - -## Primeri primene decentralizovanih identiteta {#decentralized-identity-use-cases} - -Decentralizovani identitet ima mnogo potencijalnih načina primene: - -### 1. Univerzalne prijave (login) {#universal-dapp-logins} - -Decentralizovani identitet može zameniti prijavljivanje uz pomoć lozinke sa prijavljivanjem uz pomoć[ decentralizovane autentifikacije](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). Pružaoci usluga mogu izdati potvrde korisnicima koje mogu biti čuvane u Ethereum novčaniku. Jedan primer potvrda bi bio [NFT](/nft/)koji garantuje da korisnik koji ga poseduje ima pristup onlajn zajednici. - -[Prijava sa Ethereumom](https://login.xyz/) bi omogućila serverima da potvrde korisnički Ethereum nalog i preuzmu potrebnu potvrdu sa njihove adrese naloga. Ovo znači da korisnici mogu da pristupe platformama i veb-sajtovima bez potrebe da pamte svoje duge šifre i na taj način poboljšava korisničko iskustvo. - -### 2. KYC autentifikacija {#kyc-authentication} - -Korišćenje mnogih onlajn usluga zahteva od pojedinca da dostavi potvrde i podatke kao što su vozačka dozvola ili pasoš. Ali ovaj pristup je problematičan zato što privatni korisnik informacije može biti kompromitovan i pružaoci usluga ne mogu da provere autentičnost potvrde. - -Decentralizovani identitet omogućava kompanijama da preskoče konvencionalni postupak [upoznavanja korisnika (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) i potvrde identitet korisnika putem proverljivih akreditiva. Ovo smanjuje troškove upravljanja identitetom i sprečava upotrebnu falsifikovane dokumentacije. - -### 3. Glasanje i onlajn zajednice {#voting-and-online-communities} - -Onlajn glasanje i društvene mreže su dve nove primene decentralizovanih identiteta. Onlajn sheme za glasanje su podložne manipulacijama, posebno ako zlonamerni akteri kreiraju lažne identitete za glasanje. Zahtevanje od pojedinaca da dostave potvrde na lancu može poboljšati integritet procesa onlajn glasanja. - -Decentralizovani identitet može pomoći u stvaranju onlajn zajednica u kojima nema lažnih naloga. Na primer, svaki korisnik bi mogao da dokaže svoj identitet koristeći sistem identiteta na lancu, kao što je Ethereum Name Service, čime bi se smanjila mogućnost botova. - -### 4. Anti-Sybil zaštita {#sybil-protection} - -Sybil napadi se odnose na pojedinačne ljude koji varaju sistem tako da se čini da su više osoba kako bi povećali svoj uticaj. [Aplikacije za dodelu grantova](https://gitcoin.co/grants/) [koje koriste kvadratno glasanje](https://www.radicalxchange.org/concepts/plural-voting/)su ranjive na Sybil napade jer se vrednost granta povećava kada više pojedinaca glasa za njega, što podstiče korisnike da raspodele svoje doprinose preko više lažnih identiteta. Decentralizovani identiteti pomažu u sprečavanju ovoga tako što povećavaju teret na svakom učesniku da dokaže da su zaista ljudi često bez otkrivanja određenih privatnih informacija. - -## Koristite decentralizovani identitet {#use-decentralized-identity} - -Postoji mnogo ambicioznih projekata koji koriste Ethereum kao osnovu za rešenja decentralizovanog identiteta: - -- **[Ethereum Name Service (ENS) ](https://ens.domains/)** — _Decentralizovani sistem imenovanja za identifikatore koji mogu čitati mašine, poput Ethereum novčanika, heševa sadržaja i metapodataka._ -- **[SpruceID](https://www.spruceid.com/)** — _Projekat za decentralizovani identitet koji omogućava korisnicima da kontrolišu digitalni identitet putem Ethereum naloga i ENS profila umesto oslanjanja na usluge trećih strana._ -- **[Usluga Ethereum potvrde (EAS)](https://attest.sh/)** – _Decentralizovana baza/protokol za izdavanje potvrda o bilo čemu na lancu ili izvan njega._ -- **[Proof of Humanity](https://www.proofofhumanity.id)** — _Proof of Humanity (ili PoH) je sistem za verifikaciju društvenog identiteta izgrađen na Ethereumu._ -- **[BrightID](https://www.brightid.org/)** — _Decentralizovana, otvorena društvena mreža identiteta koja teži reformi verifikacije identiteta kroz kreiranje i analizu društvenog grafa._ -- **[Proof-ofpersonhood Passport](https://proofofpersonhood.com/)** — _Agregator decentralizovanih digitalnih identiteta._ - -## Dodatna literatura {#further-reading} - -### Članci {#articles} - -- [Načini primene lanca blokova: Lanac blokova u digitalnom identitetu](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ -- [Šta je Ethereum ERC725? Samoupravljanje suverenim identitetom na lancu blokova](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _ Sem Taun_ -- [Kako lanac blokova može da reši problem digitalnog identiteta](https://time.com/6142810/proof-of-humanity/) — _Endru R. Ču_ -- [Šta je decentralizovani identitet i zašto bi trebalo da nam je važan?](https://web3.hashnode.com/what-is-decentralized-identity) — _Emanuel Avosika_ - -### Videos {#videos} - -- [Decentralizovani identitet (Bonus uživo prenos)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Odličan video koji objašnjava decentralizovan identitet od strane Andreasa Antonopolusa_ -- [Prijavite se pomoću Ethereuma i decentralizovanog identiteta uz upotrebu Ceramic, IDX, React i 3ID Connect-a](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _YouTube tutorial o izgradnji sistema za upravljanje identitetom za kreiranje, čitanje i ažuriranje korisničkog profila korišćenjem Ethereum novčanika od strane Nadera Dabita_ -- [BrightID — Decentralizovani identitet na Ethereumu](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _Epizoda Bankless podkasta o BrightID-u, rešenju za decentralizovan identitet na Ethereumu_ -- [Internet van lanca: Decentralizovani identitet&Podaci koji se mogu verifikovati](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — EthDenver 2022, prezentacija od strane Evina MekMulena - -### Zajednice {#communities} - -- [ERC-725 Alijansa na GitHubu](https://github.com/erc725alliance) — _Podržavaoci ERC725 standarda za upravljanje identitetom na Ethereum lancu blokova_ -- [SpruceIS Discord server](https://discord.com/invite/Sf9tSFzrnt) — _Zajednica za entuzijaste i programere koji rade na Sign-in sistemu sa Ethereumom_ -- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Zajednica programera koji doprinose građenju okvira (framework) za za podatke koji se mogu verifikovati za aplikacije_ diff --git a/src/content/translations/sr/defi/index.md b/src/content/translations/sr/defi/index.md deleted file mode 100644 index 215c6cc6fe9..00000000000 --- a/src/content/translations/sr/defi/index.md +++ /dev/null @@ -1,352 +0,0 @@ ---- -title: Decentralizovane finansije (DeFi) -description: Pregled decentralizovanih finansija na mreži Ethereum -lang: sr -template: use-cases -emoji: ":money_with_wings:" -image: ../../../../assets/use-cases/defi.png -alt: Logo Eth-a napravljen od lego kocki. -sidebarDepth: 2 -summaryPoint1: Globalna, otvorena alternativa u odnosu na trenutni finansijski sistem. -summaryPoint2: Proizvodi koji vam omogućavaju da pozajmljujete, štedite, investirate, trgujete i još mnogo toga. -summaryPoint3: Zasnovano na tehnologiji otvorenog koda kojom svako može da programira. ---- - -DeFi (decentralizovane finansije) prestavljaju otvoren i globalan finansijski sistem napravljen za Internet doba – kao alternativa sistemu koji je nejasan, čvrsto kontrolisan i koji održavaju zastarela infrastruktura i procesi. Pruža vidljivost i kontrolu nad vašim novcem. Daje pristup globalnim tržištima i alternative u odnosu na lokalne valute i bankarski sistem. Proizvodi decentralizovanih finansija otvaraju finansijske usluge svakome ko ima internet vezu i uglavnom su u vlasništvu njihovih korisnika koji ih održavaju. Do sada su kriptovalute u vrednosti na desetine milijardi dolara putovale kroz aplikacije decentralizovanih finansija i taj iznos raste svakog dana. - -## Šta su decentralizovane finansije? {#what-is-defi} - -Decentralizovane finansije predstavljaju zbirni termin za finansijske proizvode i usluge koji su dostupni svakome ko koristi Ethereum – dakle, svakome ko ima internet vezu. Pomoću decentralizovanih finansija, tržišta su uvek otvorena i nema centralnih organa koji mogu da blokiraju plaćanja ili da uskrate pristup bilo čemu. Usluge koje su ranije bile spore i u opasnosti od ljudske greške automatske su i sigurnije sada kada njima upravlja kod koji svako može da pregleda i prouči. - -Došlo je do procvata kripto-ekonomije, u kojoj možete davati na zajam, pozajmljivati, dugoročno/kratkoročno, zarađivati kamatu i još mnogo toga. Argentinci koji poznaju kriptovalute su iskoristili decentralizovane finansije da bi se sačuvali od razorne inflacije. Kompanije su počele da isplaćuju plate zaposlenim u stvarnom vremenu. Neki ljudi su čak uzimali i isplaćivali milionske pozajmice u dolarima bez potrebe za bilo kakvom ličnom identifikacijom. - - - -## Decentralizovane finansije nasuprot tradicionalnim finansijama {#defi-vs-tradfi} - -Jedan od najboljih načina da se vidi potencijal decentralizovanih finansija jeste razumevanje problema koji postoje danas. - -- Neke osobe nemaju pristup pravljenju računa u banci ili korišćenju finansijskih usluga. -- Nedostatak pristupa finansijskim uslugama može sprečiti da osobe budu zapošljive. -- Finansijske usluge mogu da blokiraju isplatu zarade. -- Skriveni troškovi finansijskih usluga su i vaši podaci o ličnosti. -- Vlade i centralizovane institucije mogu zatvoriti tržišta ako to požele. -- Vreme za trgovanje često je ograničeno na tradicionalne radno vreme u određenoj vremenskoj zoni. -- Transfer novca može da potraje danima u zavisnosti od internih ljudskih procesa. -- Postoje premije za finansijske usluge jer posredničke institucije moraju uzeti svoj deo. - -### Poređenje {#defi-comparison} - -| Decentralizovane finansije | Tradicionalne finansije | -| ---------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | -| Vi čuvate svoj novac. | Vaš novac čuvaju kompanije. | -| Vi kontrolišete kuda vaš novac ide i kako se troši. | Morate da verujete kompanijama da neće loše upravljati vašim novcem, npr. pozajmljivati rizičnim zajmoprimcima. | -| Transferi sredstava se dešavaju u minutima. | Uplate mogu da se obrađuju danima zbog ručne obrade. | -| Aktivnost transakcije je pseudonimizovana. | Finansijska aktivnost je usko povezana sa vašim identitetom. | -| Decentralizovane finansije su otvorene za svakoga. | Morate da se prijavite da biste koristili finansijske usluge. | -| Tržišta su uvek otvorena. | Tržišta se zatvaraju zato što je zaposlenima potrebna pauza. | -| Izgrađene su na transparentnosti – svako može da pogleda podatke proizvoda i da istraži kako sistem funkcioniše. | Finansijske institucije su zatvorene knjige: ne možete da tražite da vidite istoriju njihovih pozajmica, podatke o upravljanju sredstvima i sl. | - - - Istražite aplikacije decentralizovanih finansija - - -## Sve je počelo od valute Bitcoin… {#bitcoin} - -Bitcoin je na mnoge načine bio prva aplikacija decentralizovanih finansija. Bitcoin omogućava da zaista imate vlasništvo i kontrolu nad sredstvima i da ih šaljete bilo gde u svetu. To radi tako što omogućava velikom broju ljudi, koji ne veruju jedni drugima, da se dogovore o bazi naloga bez potrebe za pouzdanim posrednikom. Bitcoin je otvoren za svakoga i niko nema ovlašćenje da menja njegova pravila. Pravila valute Bitcoin, kao što su njegova retkost i otvorenost, zapisana su u tehnologiji. Nije kao tradicionalne finansije u kojima vlade mogu da štampaju novac koji devalvira vrednost ušteđevine i kompanije mogu da zatvore tržišta. - -Ethereum počiva na tome. Kao i Bitcoin, pravila se ne mogu promeniti za vas i svako ima pristup. Ali, to takođe ovaj digitalni novac čini podložnim programiranju, pomoću [pametne ugovore](/glossary#smart-contract), tako da možete ići dalje od čuvanja i slanja vrednosti. - - - -## Novac koji se može programirati {#programmable-money} - -Ovo zvuči čudno… „Zašto bih želeo/la da programiram svoj novac?” Međutim, to je samo osnovna karakteristika tokena u mreži Ethereum. Svako može da programira logiku u plaćanja. Tako da vi možete dobijete kontrolu i sigurnost koju ima Bitcoin, zajedno sa uslugama koje pružaju finansijske institucije. To omogućava da radite stvari sa kriptovalutama koje ne možete da radite sa valutom Bitcoin, npr. da dajete pozajmice ili pozajmljujete, zakazujete plaćanja, investirate u indeksne fondove i još mnogo toga. - - -
Istražite i isprobajte naše predloge za aplikacije decentralizovanih finansija ako ste novi u mreži Ethereum.
- - Istražite aplikacije decentralizovanih finansija - -
- -## Šta možete da uradite sa decentralizovanim finansijama? {#defi-use-cases} - -Postoji decentralizovana alternativa većini finansijskih usluga. Ali Ethereum takođe stvara prilike za kreiranje finansijskih proizvoda koji su potpuno novi. To je lista koja stalno raste. - -- [Pošaljite novac bilo gde na svetu](#send-money) -- [Šaljite novac širom sveta](#stream-money) -- [Pristup stabilnim valutama](#stablecoins) -- [Pozajmite sredstva pomoću sredstava obezbeđenja](#lending) -- [Pozajmite sredstva bez sredstava obezbeđenja](#flash-loans) -- [Započnite štednju u kriptovalutama](#saving) -- [Trgujte tokenima](#swaps) -- [Razvijajte portfolio](#investing) -- [Finansirajte svoje ideje](#crowdfunding) -- [Kupite osiguranje](#insurance) -- [Upravljajte svojim portfoliom](#aggregators) - - - -### Brzo pošaljite novac bilo gde na svetu {#send-money} - -Kao lanac blokova, Ethereum je projektovan za izvršavanje transakcija na bezbedan način širom sveta. Kao i Bitcoin, i Ethereum čini slanje novca širom sveta jednostavnim kao da šaljete imejl. Samo unesite [ENS ime](/nft/#nft-domains) primaoca (npr. bob.eth) ili njegovu adresu naloga u svoj novčanik i vaša uplata će se izvršiti u roku od nekoliko minuta (uglavnom). Da biste slali ili primali uplate, potreban vam je [novčanik](/wallets/). - - - Pogledajte decentralizovane aplikacije za plaćanje - - -#### Šaljite novac širom sveta… {#stream-money} - -Možete slati novac i putem mreže Ethereum. To omogućava da isplatite nekome njegovu platu u sekundi, omogućavajući pristup novcu kada god mu je potreban. Ili da iznajmite nešto u sekundi kao što su skladište ili električni skuter. - -I ako ne želite da šaljete ili pošaljete [ETH](/eth/) zato što njegova vrednost može da se promeni, postoje alternativne valute na mreži Ethereum: stabilni novčići. - - - -### Pristup stabilnim valutama {#stablecoins} - -Nestalnost kriptovaluta je problem za mnoge finansijske proizvode i uopštenu potrošnju. Zajednica decentralizovanih finansija to je rešila uvođenjem stabilnih novčića. Njihova vrednost ostaje vezana za drugu vrednost, obično popularnu valutu kao što je dolar. - -Novčići kao što su Dai ili USDC imaju vrednost koja ostaje blizu jednog dolara. To ih čini savršenim za zaradu ili maloprodaju. Mnoge osobe u Latinskoj Americi koriste stabilne novčiće da bi zaštitili svoju štednju u vremenima velike nesigurnosti njihovih državnih valuta. - - - Više informacija o stabilnim novčićima - - - - -### Pozajmljivanje {#lending} - -Pozajmljivanje novca direktno od decentralizovanih pružalaca usluga može se vršiti na dva načina. - -- Putem mreže peer-to-peer, što znači da zajmoprimac to čini direktno od konkretnog zajmodavca. -- Iz grupnog fonda pri čemu zajmodavci stavljaju sredstva (likvidnost) u fond iz kojeg zajmoprimci mogu da pozajme. - - - Pogledajte decentalizovane aplikacije za pozajmljivanje - - -Korišćenje decentralizovanih zajmodavaca ima brojne prednosti… - -#### Pozajmljivanje uz privatnost {#borrowing-privacy} - -Danas se davanje i primanje zajmova vrti oko pojedinaca koji su u to uključeni. Banke moraju da znaju kolike su šanse da vratite zajam pre nego što ga uzmete. - -Decentralizovano davanje zajmova funkcioniše tako da nijedan učesnik ne mora da se identifikuje. Umesto toga, zajmoprimac mora da pruži sredstvo obezbeđenja koje će automatski sledovati zajmodavcu ako ne vrati zajam. Neki zajmodavci čak prihvataju i NFT-ove kao sredstvo obezbeđenja. NFT-ovi su ugovori za jedinstvena sredstva, poput slika. [Više o NFT-ovima](/nft/) - -To omogućava da pozajmite novac bez provera kreditne sposobnosti ili predaje privatnih informacija. - -#### Pristup globalnim sredstvima {#access-global-funds} - -Kada koristite decentralizovanog zajmodavca, imate pristup sredstvima deponovanim širom planete, ne samo sredstvima koja se nalaze u vlasništvu vaše izabrane banke ili institucije. To pozajmice čini dostupnijim i poboljšava kamatne stope. - -#### Poreska efikasnost {#tax-efficiencies} - -Pozajmice mogu pružiti potrebna sredstva bez potrebe za prodajom ETH-a (što je podložno porezu). Umesto toga možete iskoristiti ETH kao sredstvo obezbeđenja za pozajmicu stabilnih novčića. Tako ćete dobiti protok novca koji vam je potreban i zadržaćete ETH. Stabilni novčići su tokeni koji su mnogo bolji kada vam je potrebna gotovina jer njihova vrednost ne fluktuira kao kod valuete ETH. [Više informacija o stabilnim novčićima](#stablecoins) - -#### Brze pozajmice {#flash-loans} - -Brze pozajmice su eksperimentalni oblik decentralizovanih pozajmica u kojima možete da pozajmljujete bez sredstava obezbeđenja ili pružanja bilo kakvih informacija o ličnosti. - -Trenutno nisu lako dostupne netehničkim licima ali daju dobru nazkanu toga šta bi moglo da bude omogućeno svima u budućnosti. - -Funkcionišu tako što se zajam uzima i isplaćuje u okviru iste transakcije. Ako se ispostavi da se ne može vratiti, transakcija će biti poništena kao da se ništa nikad nije ni dogodilo. - -Koriste se uglavnom sredstva koja se drže u grupama za likvidnost (velike grupe fondova namenjenih za pozajmljivanje). Ako se ne koriste u datom trenutku, otvara se mogućnost da neko pozajmi ta sredstva, obavi posao koristeći ih i vrati pozajmicu u celosti bukvalno u istom trenutku kada i uzima pozajmicu. - -To znači da se za poprilično prilagođenu transakciju mora koristiti logika. Jednostavan primer može biti kada neko koristi brzi zajam da pozajmi što više sredstava po jednoj ceni kako bi je prodao u drugoj menjačnici u kojoj je cena viša. - -Tako da se u jednoj transakciji dešava sledeće: - -- Pozajmite iznos od X sredstva $asset po ceni od 1 USD iz menjačnice A -- Prodate X sredstva $asset u menjačnici B za 1,10 USD -- Vratite pozajmicu menjačnici A -- Zadržite profit umanjen za proviziju za transakciju - -Ako bi potražnja menjačnice B naglo opala i korisnik ne može da kupi dovoljno da pokrije izvorni zajam, transakcija bi jednostavno propala. - -Da biste mogli da izvedete gornji primer u tradicionalnom finansijskom svetu, bila bi vam potrebna ogromna količina novca. Ovakve strategije za pravljenje novca dostupne su samo onima koji već imaju bogatstvo. Brzi zajmovi su primer budućnosti u kojima posedovanje novca nije nužno uslov za zaradu novca. - -[Više informacija o brzim zajmovima](https://aave.com/flash-loans/) - - - -### Počnite da štedite u kriptovalutama {#saving} - -#### Davanje zajmova {#lending} - -Možete da zaradite kamatu na svojoj kripto-imovini tako što je pozajmljujete i da gledate kako vaša sredstva rastu u realnom vremenu. Trenutno su kamatne stope znatno veće nego što biste verovatno dobili u lokalnoj banci (ako imate sreće da možete da pristupite banci). Sledi primer: - -- Dajte 100 Dai-ja u zajam, u vrednosti [stabilnog novčića](/stablecoins/), proizvodu poput Aave-a. -- Dobijate 100 Aave Dai-ja (aDai) što je token koji predstavlja vaš pozajmljeni Dai. -- Vaš aDai će se povećavati na osnovu kamatnih stopa i možete videti kako raste saldo u vašem novčaniku. U zavisnosti od APR-a, saldo vašeg novčanika će nakon nekoliko dana ili čak sati iznositi oko 100,1234! -- U bilo kom trenutku možete povući određeni iznos običnih Dai-ja koji je jednak vašem saldu aDai-ja. - - - Pogledajte decentralizovane aplikacije za davanje pozajmica - - -#### Lutrije bez gubitaka {#no-loss-lotteries} - -Lutrije bez gubitaka kao što je PoolTogether predstavljaju zabavan i inovativan način da štedite novac. - -- Kupite 100 karata koristeći 100 Dai tokena. -- Dobijate 100 pIDai-ja koji predstavljaju vaših 100 karata. -- Ako se neka od vaših karata izvuče kao dobitna, vaš saldo pIDai-ja će se povećati za iznos nagradnog fonda. -- Ako ga ne osvojite, vaših 100 pIDai-ja se prebacuje na izvlačenje sledeće nedelje. -- Možete povući sredstva u Dai-ima koja su jednaka vašem saldu pIDai-ja u bilo kom trenutku. - -Nagradni fond se generiše od svih kamata nastalih iz pozajmica depozita karata, kao u primeru pozajmica iznad. - - - Probajte PoolTogether - - - - -### Tokeni menjačnice {#swaps} - -Postoje na hiljade tokena na mreži Ethereum. Decentralizovane menjačnice (DEX) omogućuju da trgujete različitim tokenima kad god poželite. Nikada ne predajete kontrolu nad svojim sredstvima. To je kao kada koristite menjačnicu kada ste u poseti stranoj državi. Ali se verzija menjačnice za decentralizovane finansije nikad ne zatvara. Tržišta su otvorena 24/7, 365 dana godišnje i tehnologija garantuje da će tu uvek biti neko ko će prihvatiti razmenu. - -Npr. ako želite da koristite lutriju bez gubitka PoolTogether (opisanu iznad), potrebni su vam tokeni kao što su Dai ili USDC. Ove decentralizovane menjačnice (DEX) omogućavaju da menjate ETH za te tokene i obrnuto kada završite sa trgovinom. - - - Pogledajte menjačnice tokena - - - - -### Napredna trgovina {#trading} - -Postoje napredne opcije za trgovce koji žele malo više kontrole. Ograničene narudžbine, perpeticionni ugovori, trgovanje na margini i još mnogo toga su sve moguće opcije. Sa decentralizovanom trgovinom dobijate pristup globalnoj likvidnosti, tržište se nikada ne zatvara i uvek imate kontrolu nad svojim sredstvima. - -Kada koristite centralizovane menjačnice morate da dostavite sredstva pre trgovanja i da verujete menjačnicu da će da vodi računa o njima. Dok su vaša sredstva deponovana, ona su u riziku jer su centralizovane menjačnice atraktivna meta za hakere. - - - Pogledajte decentralizovane aplikacije o trgovanju - - - - -### Razvijajte portfolio {#investing} - -Na Ethereumu postoje proizvodi za upravljanje fondovima koji vam mogu pomoći da povećate vaš portfolio na osnovu strategije koju odaberete. Ovo su automatski proizvodi, otvoreni za sve i ne zahtevaju ljudskog menadžera koji uzima deo vaših profita. - -Dobar primer je [DeFi Pulse Index fond (DPI)](https://defipulse.com/blog/defi-pulse-index/). Ovo je fond koji automatski rebalansira kako bi se osiguralo da vaš portfolio uvek uključuje [najviše DeFi tokena prema tržišnoj kapitalizaciji](https://www.coingecko.com/en/defi). Nikada nećete morati da upravljate detaljima i možete povući sredstva iz fonda kad god poželite. - - - Pogledajte decentralizovane aplikacije za investiranje - - - - -### Finansirajte svoje ideje {#crowdfunding} - -Ethereum je idealna platforma za masovno finansiranje (crowdfunding): - -- Potencijalni finansijeri mogu biti od bilo gde — Ethereum i njegovi tokeni su otvoreni za svakoga, bilo gde u svetu. -- Sve je transparentno tako da oni koji podižu sredstva mogu dokazati koliko novca je prikupljeno. Kasnije, možete čak i da pratite kako se sredstva troše. -- Oni koji skupljaju sredstva mogu da postave automatsko refundiranje ukoliko, na primer, postoji određeni rok ili minimalni iznos nije dostignut. - - - Pogledajte aplikacije za masovno finansiranje - - -#### Kvadratno finansiranje {#quadratic-funding} - -Ethereum je softver otvorenog koda i dosta uloženog rada do sada je finansirano od strane zajednice. Ovo je dovelo do novog načina prikupljanja sredstava: kvadratnog finansiranja. This has the potential to improve the way we fund all types of public goods in the future. - -Quadratic funding makes sure that the projects that receive the most funding are those with the most unique demand. In other words, projects that stand to improve the lives of the most people. Evo kako funkcioniše: - -1. Postoji određena količina sredstava za poklapanje donacija. -2. Počinje runda javnog finansiranja. -3. Ljudi mogu iskazati svoj interes za projektom doniranjem određenog novčanog iznosa. -4. Kada se runda završi, sredstva iz fonda su podeljena projektima. Oni koji imaju najviše jedinstvene potražnje dobiće najveći iznos iz fonda. - -To znači da projekat A sa svojih 100 donacija u iznosu od 1 dolara može biti finansiraniji nego projekat B sa jednom donacijom od 10.000 dolara (u zavisnosti od veličine fonda). - -[Više o kvadratnom finansiranju](https://wtfisqf.com) - - - -### Osiguranje {#insurance} - -Decentralizovano osiguranje pokušava da učini osiguranje jeftinijim, bržim za isplatu i transparentnijim. Sa više automatizacije, pokrivanje osiguranja je pristupačnije, a isplate se obavljaju brže. Podaci koji se koriste za odlučivanje o vašem zahtevu su potpuno transparentni. - -Ethereum proizvodi, kao i bilo koji drugi softver, može imati greške i slabe tačke. Tako da sada, mnogo proizvoda za osiguranje u prostoru se fokusira na zaštitu njihovih korisnika od gubitka sredstava. Ipak, postoje projekti koji počinju razvijati osiguranja za sve što može da nas snađe. Dobar primer toga je Crop osiguranje kompanije Etherisc koje se trudi da [zaštiti male poljoprivrednike u Keniji od suše i poplave](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Decentralizovano osiguranje može pružiti jeftiniju pokrivenost za poljoprivrednike koji često nisu u mogućnosti da priušte tradicionalno osiguranje. - - - Pogledajte decentralizovane aplikacije za osiguranje - - - - -### Agregatori i menadžeri portfolija {#aggregators} - -S obzirom na toliko dešavanja trenutno, treba vam način da pratite sve svoje investicije, pozajmice i trgovanja. Postoji niz proizvoda koji vam omogućavaju da koordinišete sve svoje DeFi aktivnosti sa jednog mesta. U ovome je lepota otvorene arhitekture decentralizovanih finansija. Timovi mogu da izgrade interfejse gde, ne samo da možete videti svoj saldo na različitim proizvodima, već možete koristiti i njihove funkcije. Ovo vam možete biti korisno kako budete više istraživali decentralizovane finansije. - - - Pogledajte decentralizovane aplikacije o portfolijima - - - - -## Kako DeFi funkcioniše? {#how-defi-works} - -DeFi koristi kriptovalute i pametne ugovore kako bi pružio usluge bez posrednika. U današnjem finansijskom svetu, finansijske institucije se ponašaju kao garancije za transakcije. Ovo daje tim institucijama ogromnu moć zato što vaš novac teče kroz njih. Plu, milijarde ljudi širom sveta ni nema pristup bankovnom računu. - -U decentralizovanim finansijama, pametni ugovor zamenjuju finansijske institucije u transakciji. Pametni ugovor je tip Ethereum naloga koji može da drži sredstva i može da ih prima/refundira na osnovu određenih uslova. Niko ne može da zameni pametni ugovor jednom kada je objavljen — uvek će se pokretati tako kako je programiran. - -Ugovor koji je dizajniran da dodeljuje džeparac ili mesečnu nadoknadu može biti programiran da svakog petka šalje novac sa Računa A na Račun B. I to će se dešavati samo ukoliko Račun A ima dovoljno sredstava. Niko ne može da promeni ugovor i da doda Račun C kao primaoca da ukrade sredstva. - -Ugovori su takođe javni za bilo koga da ih pregleda i proveri. Ovo znači da će loši ugovori često brzo privući pažnju zajednice. - -Ovo znači da trenutno postoji potreba da se veruje više tehničkim članovima Ethereum zajednica koja ume da čita kod. Zajednica bazirana na otvorenom kodu pomaže da se programeri drže pod kontrolom, ali ova potreba će se vremenom smanjivati kako pametni ugovori postanu lakši za čitanje i kako se razvijaju druge metode za dokazivanje pouzdanosti koda. - -## Ethereum i DeFi {#ethereum-and-defi} - -Ethereum je savršena osnova za DeFi zbog mnogobrojnih razloga: - -- Niko ne poseduje Ethereum ili pametne ugovore koji su na njemu — ovo daje priliku svima da koriste decentralizovane finansije. Ovo takođe znači da niko ne može da promeni pravila bez vašeg znanja. -- Svi DeFi proizvodi govore isti jezik iza scene: Ethereum. Ovo znači da mnogi proizvodi savršeno rade zajedno. Možete pozajmiti tokene na jednoj platformi i razmeniti token koji nosi kamatu na drugom tržištu putem potpuno različite aplikacije. Ovo je slično mogućnosti da unovčite bodove lojalnosti u svojoj banci. -- Tokeni i kriptovalute su ugrađeni u Ethereum, zajednički registar – u kojem se prate transakcije i vlasništvo je nešto što Ethereum radi. -- Ethereum omogućuje potpunu finansijsku slobodu — većina proizvoda nikada neće zadržati vaša sredstva, već ćete vi imati kontrolu nad njima. - -Možete misliti o decentralizovanim finansijama u nivoima: - -1. Lanac blokova — Ethereum sadrži istoriju transakcija i stanja računa. -2. Sredstva — [ETH](/eth/)i drugi tokeni (valute). -3. Protokoli — [pametni ugovori](/glossary/#smart-contract)koji pružaju funkcionalnost, na primer uslugu koja omogućava decentralizovano pozajmljivanje sredstava. -4. [Aplikacije](/dapps/) — proizvodi koje koristimo da upravljamo i pristupamo protokolima. - -## Izgradite DeFi {#build-defi} - -Decentralizovane finansije predstavljaju pokret otvorenog koda. Protokoli decentralizovanih finansija i aplikacija su otvoreni da ih istražite, forkujete i inovirate na njima. Zbog ovog slojevitog sistema (sve dele isti osnovni lanac blokova i resurse), protokoli se mogu kombinovati kako bi se otključale jedinstvene kombinacione mogućnosti. - - - Više o građenju decentralizovanih aplikacija - - -## Dodatna literatura {#futher-reading} - -### DeFi podaci {#defi-data} - -- [DeFi Prime](https://defiprime.com/) -- [DeFi Llama](https://defillama.com/) -- [DeFi Rate](https://defirate.com/) - -### DeFi članci {#defi-articles} - -- [Vodič za početnike kroz DeFi](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) — _Sid Koeljo-Prabu, 6. januar 2020._ - -### Videos {#videos} - -- [Finematics — edukacija o decentralizovanim finansijama](https://finematics.com/) — _Video o DeFi-ju_ -- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) — _DeFi osnove: Sve što treba da znate da biste započeli u ovom ponekad zbunjujućem prostoru._ -- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA)_Šta je DeFi?_ - -### Zajednice {#communities} - -- [DeFi Llama Discord server](https://discord.gg/buPFYXzDDd) -- [DeFi Pulse Discord server](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/sr/desci/index.md b/src/content/translations/sr/desci/index.md deleted file mode 100644 index 4a31d5e08ec..00000000000 --- a/src/content/translations/sr/desci/index.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: Decentralizovana nauka (DeSci) -description: Pregled decentralizovanih nauka na Ethereumu -lang: sr -template: use-cases -emoji: ":microscope:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Globalna, otvorena alternativa trenutnom naučnom sistemu. -summaryPoint2: Tehnologija koja omogućava naučnicima da dobiju sredstva, eksperimentišu, dele podatke i uvide i još mnogo toga. -summaryPoint3: Gradi se na pokretu za otvorenu nauku. ---- - -## Šta je decentralizovana nauka (DeSci)? {#what-is-desci} - -Decentralizovana nauka (DeSci) je pokret koji se trudi da izgradi javnu infrastrukturu za finasiranje, stvaranje, pregledanje, akreditaciju, skladištenje i širenje naučnog znanja na pravičan i jednak način koristeći Web3 tehnologiju. - -DeSci ima za cilj da stvori ekosistem u kojem su naučnici podstaknuti da otvoreno dele svoja istraživanja i dobijaju priznanje za svoj rad, istovremeno omogućujući svima da lako pristupe i doprinose istraživanjima. DeSci se oslanja na ideju da naučno znanje treba da bude dostupno svima i da proces naučnog istraživanja treba da bude transparentan. DeSci stvara model naučnog istraživanja koji je više decentralizovan i distribuiran, čime se čini otpornijim na cenzuru i kontrolu centralnih autoriteta. DeSci se nada da će stvoriti okruženje u kojem nove i nekonvencionalne ideje mogu procvetati decentralizacijom pristupa finansiranju, naučnim alatima i komunikacionim kanalima. - -Decentralizovana nauka omogućava raznovrsnije izvore finansiranja (od [DAO-a](/dao/), [kvadratnih donacija](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) do masovnog finansiranja i još mnogo toga), lakši pristup podacima i metodama, i pružanjem podsticaja za reproduktivnost. - -### Huan Benet — DeSci pokret - - - -## Kako DeSci unapređuje nauku {#desci-improves-science} - -Nepotpuna lista ključnih problema u nauci i kako decentralizovana nauka može pomoći da se reše ovi problemi - -| **Decentralizovana nauka** | **Tradicionalna nauka** | -| ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------- | -| Raspodela sredstava je određena od strane javnosti koristeći mehanizme kao što su kvadratno doniranje ili DAO-i. | Mala, zatvorena, centralizovana grupa kontroliše raspodelu sredstava. | -| Sarađujete sa svojim kolegama iz celog sveta u dinamičnim timovima. | Organizacije za finansiranje i matične institucije ograničavaju vaše saradnje. | -| Odluke o finansiranju se donose onlajn i transparentno. Istražuju se novi mehanizmi finansiranja. | Odluke o finansiranju se donose dugim i sa ograničenom transparentnošću. Postoji veoma malo mehanizama za finansiranje. | -| Deljenje laboratorijskih usluga postaje lakše i transparentnije korišćenjem osnovnih elemenata Web3 tehnologije. | Deljenje laboratorijskih resursa često je sporo i prikriveno. | -| Mogu se razviti novi modeli za objavljivanje koji koriste osnovne elemente Web3 tehnologije za poverenje, transparentnost i univerzalni pristup. | Objavljujete putem uspostavljenih puteva koji se često prepoznaju kao neefikasni, pristrasni i iskorišćavajući. | -| Možete zaraditi tokene i reputaciju za pregledanje radova kolega. | Vaše recfenzije drugih radova su besplatne, i doprinose samo profitnim izdavačima. | -| Vi posedujete intelektualnu svojinu (IP) koju generišete i distribuirate prema transparentnim uslovima. | Vaša matična organizacija poseduje intelektualnu svojinu koju vi generišete. Pristup intelektualnoj svojini nije transparentan. | -| Delite sva istraživanja, uključujući i podatke neuspešnih pokušaja, postavljanjem svih koraka na lanac blokova. | Pozitivna selekcija u publikacijama znači da istraživači češće dele eksperimente koji su imali uspešne rezultate. | - -## Ethereum i DeSci {#ethereum-and-desci} - -Decentralizovani naučni sistem zahteva snažnu bezbednost, minimalne monetarne i transakcione troškove i bogat ekosistem za razvoj aplikacija. Ethereum pruža sve što je potrebno za izgradnju decentralizovanog naučnog steka. - -## Primeri primene decentralizovane nauke {#use-cases} - -DeSci predstavlja izgradnju naučnog skupa alata kako bi integrisao akademsku zajednicu iz Web2 akademije u digitalni svet. Ispod su primeri nekoliko primena koje Web3 može ponuditi naučnoj zajednici. - -### Objavljivanje {#publishing} - -Objavljivanje naučnih radova je često problematično jer njime upravljaju izdavačke kuće koje se oslanjaju na besplatni rad naučnika, recenzenata i urednika kako bi generisali radove, ali potom naplaćuju enormne naknade za objavljivanje. Javnost, koja je obično indirektno platila za rad i troškove objavljivanja putem poreza, često ne može pristupiti istom radu bez ponovnog plaćanja izdavaču. Ukupne naknade za objavljivanje pojedinačnih naučnih radova često dosežu petocifrene iznose (u američkim dolarima), čime se podriva ceo koncept naučnog znanja kao [javne dobrobiti](https://www.econlib.org/library/Enc/PublicGoods.html) dok istovremeno generiše ogromne profite za malu grupu izdavača. - -Besplatne platforme sa otvorenim pristupom postoje u obliku serverskih sistema za predstavljanje naučnih radova, [kao što je ArXiv](https://arxiv.org/). Međutim, ove platforme nemaju kontrolu kvaliteta, [anti-Sybil mehanizme](https://csrc.nist.gov/glossary/term/sybil_attack), i uglavnom ne prate metrike na nivou članka, što znači da se obično koriste samo za promociju rada pre nego što se podnese tradicionalnom izdavaču. SciHub takođe omogućava besplatan pristup objavljenim radovima, ali nelegalno, i to tek nakon što su izdavači već naplatili svoj honorar i ograničili rad strogom autorskom zaštitom. To ostavlja kritičnu prazninu za pristupačne naučne radove i podatke sa ugrađenim mehanizmom za legitimnost i modelom podsticaja. Alat za građenje takvog sistema postoji u Web3-ju. - -### Reproducibilnost i replikabilnost {#reproducibility-and-replicability} - -Reproducibilnost i replikabilnost su osnove za kvalitetno naučno otkriće. - -- Reproducibilni rezultati mogu biti postignuti više puta zaredom od strane jednog tima koristeći istu metodologiju. -- Replikabilni rezultati mogu biti postignuti od strane druge grupe koristeći isti postavke eksperimenta. - -Novi alati iz Web3 sveta mogu da osiguraju da su reproducibilnost i replikabilnost osnova otkrića. Možemo ukomponovati kvalitetnu nauku u tehnološku strukturu akademske zajednice. Web3 nudi mogućnost da se kreiraju potvrde za svaku komponentu analize: sirove podatke, računarski motor i rezultate aplikacije. Lepota sistema konsenzusa je u tome što kada se uspostavi pouzdana mreža za održavanje ovih komponenata, svaki učesnik u mreži može biti odgovoran za reprodukovanje računanja i validaciju svakog rezultata. - -### Finansiranje {#funding} - -Trenutni standardni model finansiranja nauke podrazumeva da pojedinci ili grupe naučnika podnose pisane prijave agencijama za finansiranje. Mali panel pouzdanih pojedinaca ocenjuje prijave, a potom intervjuše kandidate pre nego što dodeli sredstva malom broju aplikanata. Osim što stvara usko grlo koje dovodi do, ponekad višegodišnjeg, čekanja između podnošenja zahteva za grant i dobijanja istog, ovaj model je poznat po visokoj ranjivosti na pristrasnosti, lične interese i politiku ocenjivačkog panela. - -Studije su pokazale da su ocenjivački paneli za dodelu grantova loši u izboru visokokvalitetnih predloga, s obzirom na to da isti predlozi dati različitim panelima na ocenjivanje imaju znatno različite ishode. Kako je finansiranje postalo sve ređe, postalo je skoncentrisanije u manji krug iskusnijih istraživača sa intelektualno konzervativnijim projektima. Ovaj efekat je stvorio hiper-kompetitivnu finansijsku sredinu, učvršćujući perverzne podsticaje i gušeći inovacije. - -Web3 ima potencijal da poremeti ovaj nefunkcionalni model finansiranja eksperimentišući sa različitim modelima podsticaja koji su razvijeni od strane DAO-a i šire, u okviru Web3 tehnologije. [Retroaktivno finansiranje javnih dobara](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), [kvadratno finansiranje](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), [DAO upravljanje](https://www.antler.co/blog/daos-and-web3-governance) i [tokenizovane strukture insentiva](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design) su neki od Web3 alata koji mogu da revolucioniraju finansiranje nauke. - -### Vlasništvo intelektualne svojine i razvoj {#ip-ownership} - -Intelektualna svojina (IP) predstavlja veliki problem u tradicionalnoj nauci: od toga što je zaglavljena na univerzitetima ili se ne koristi u biotehnologiji, do velikih teškoća u određivanju njene vrednosti. Međutim, određivanje vlasništva nad digitalnom imovinom (kao što su naučni podaci ili članci) je nešto što Web3 radi veoma dobro koristeći [nezamenljive tokene (NFT-ijeve)](/nft/). - -Na isti način na koji NFT-jevi mogu omogućiti prenos prihoda za buduće transakcije nazad originalnom tvorcu, isto tako i vi možete uspostaviti transparentne lance za pripisivanje vrednosti kako biste nagrađivali istraživače, upravne organe (kao što su DAO-ovi) ili čak subjekte čiji se podaci prikupljaju. - -[NFT-ovi sa intelektualnom svojinom](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) takođe mogu da funkcionišu kao ključ za decentralizovani repozitorijum podataka o istraživačkim eksperimentima koji se sprovode, i integrisati se u NFT i finansiranje [decentralizovanih finansija](/defi/) (od razlaganja do fondova za davanje pozajmica i procene vrednosti). Takođe omogućava da entiteti koji su na lancu kao što su DAO-ovi poput [VitaDAO](https://www.vitadao.com/) direktno sprovode istraživanja na lancu. Dolazak neotuđivih ["soulbound" tokena](https://vitalik.ca/general/2022/01/26/soulbound.html) takođe može odigrati važnu ulogu u DeSci omogućavajući pojedincima da dokažu svoje iskustvo i akademske kvalifikacije povezane sa njihovom Ethereum adresom. - -### Skladišta podataka, pristup i arhitektura {#data-storage} - -Naučni podaci mogu postati znatno dostupniji korišćenjem Web3 obrazaca, a distribuirano skladištenje omogućava da istraživanje preživi kataklizmične događaje. - -Startna pozicija mora biti sistem kom može da pristupi svaki decentralizovani identitet koji ima ispravne akreditive koji se mogu potvrditi. To omogućava da osetljivi podaci budu sigurno replicirani od strane pouzdanih strana, omogućavajući redudantnost i otpornost na cenzuru, reprodukciju rezultata, pa čak i sposobnost da više strana sarađuje i dodaje nove podatke u skup podataka. Metode poverljivog računarstva poput [compute-to-data](https://7wdata.be/predictive-analytics/compute-to-data-using-blockchain-to-decentralize-data-science-and-ai-with-the-ocean-protocol) pružaju alternativne mehanizme pristupa sirovim podacima, stvarajući pouzdane istraživačke okoline za najosetljivije podatke. Pouzdane istraživačke okoline su [spomenute od strane NHS (Nacionalne zdravstvene službe u Ujedinjenom Kraljevstvu)](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) kao rešenje za budućnost u vezi sa zaštitom podataka i saradnjom, stvarajući ekosistem u kojem istraživači mogu bezbedno raditi sa podacima na licu mesta koristeći standardizovana okruženja za deljenje koda i praksi. - -Fleksibilna Web3 rešenja za podatke podržavaju navedene scenarije i pružaju osnovu za istinski Otvorenu Nauku, gde istraživači mogu stvarati javna dobra bez potrebe za dozvolama za pristup ili naknadama. Web3 rešenja za javne podatke poput IPFS-a, Arweave-a i Filecoina optimizovana su za decentralizaciju. Na primer, dClimate omogućava univerzalni pristup podacima o klimi i vremenu, uključujući podatke sa meteoroloških stanica i prediktivnih modela klime. - -## Uključi se {#get-involved} - -Istražite projekte i pridružite se DeSci zajednici. - -- [DeSci.Global: globalni događaji i kalendar okupljanja](https://desci.global) -- [Lanac blokova za Nauku Telegram](https://t.me/BlockchainForScience) -- [Molecule: Finansirajte i dobijte finansiranje za istraživačke projekte](https://discover.molecule.to/) -- [VitaDAO: dobijte sredstva finansiranje putem ugovora o sponzorisanju istraživanja za istraživanje dugovečnosti](https://www.vitadao.com/) -- [ResearchHub: objavite naučne rezultate i učestvujte u diskusiji sa kolegama](https://www.researchhub.com/) -- [LabDAO: Istraživanja proteina u virtuelnom okruženju](https://alphafodl.vercel.app/) -- [dClimate API omogućava upite za klimatske podatke koji su prikupljeni od strane decentralizovane zajednice](https://api.dclimate.net/) -- [DeSci fondacija: DeSci alat za izgradnju sistema za objavljivanje](https://descifoundation.org/) -- [DeSci.World: jedno mesto za korisnike da vide i učestvuju u decentralizovanoj nauci](https://desci.world) -- [Fleming Protokol: otvorena ekonomija podataka za saradnju u oblasti biomedicine](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [OceanDAO: finansiranje kojim upravlja DAO za nauku povezanu sa podacima](https://oceanprotocol.com/dao) -- [Opscientia: otvoreni decentralizovani tokovi rada u nauci](https://opsci.io/research/) -- [LabDAO: Istraživanja proteina u virtuelnom okruženju](https://alphafodl.vercel.app/) -- [Bio.xyz: finansirajte svoj biotehnološki DAO ili desci projekat](https://www.molecule.to/) -- [ResearchHub: objavite naučne rezultate i učestvujte u diskusiji sa kolegama](https://www.researchhub.com/) -- [VitaDAO: dobijte sredstva finansiranje putem ugovora o sponzorisanju istraživanja za istraživanje dugovečnosti](https://www.vitadao.com/) -- [Fleming Protokol: otvorena ekonomija podataka za saradnju u oblasti biomedicine](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [Active Inference Lab](https://www.activeinference.org/) -- [CureDAO. Platforma za preciznu medicinu koja je u vlasništvu zajednice](https://docs.curedao.org/) -- [IdeaMarkets: omogućavanje decentralizovane naučne verodostojnosti](https://ideamarket.io/) -- [DeSci Labs](https://www.desci.com/) - -Dobrodošli su predlozi novih projekata za listu — molim vas, pogledajte našu [politiku listinga](/contributing/adding-desci-projects/) da biste počeli! - -## Dodatna literatura {#further-reading} - -- [DeSci Wiki od strane Džoselin Perl i Ultrarare-a](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) -- [Vodič za decentralizovanu biotehnologiju od strane Džoselin Prl za a16z future program](https://future.a16z.com/a-guide-to-decentralized-biotech/) -- [Argumenti za DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) -- [Vodič kroz DeSci](https://future.com/what-is-decentralized-science-aka-desci/) -- [Resursi za decentralizovanu nauku](https://www.vincentweisser.com/decentralized-science) -- [Molecule-ova Biophrama IP-NFT-jevi — Tehnički opis](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) -- [Izgradnja sistema nauke bez potrebe za poverenjem, autor Džon Star](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) -- [Pojava biotehnoloških DAO-a](https://molecule.to/blog/the-emergence-of-biotech-daos) -- [Pol Kohlas — DeSci: Budućnost decentralizovane nauke (podkast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) -- [Aktivna ontologija zaključivanja za decentralizovanu nauku: od situacionog tumačenja do epistemiološke zajednice](https://zenodo.org/record/6320575) -- [DeSci: Budućnost istraživanja, autor Samjuel Akinošo](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) -- [Finansiranje nauke (Epilog: decentralizovanu nauka i novi primitivni kripto-algoritmi), od strane Nađe](https://nadia.xyz/science-funding) -- [Decentralizacija menja iz korena razvoj lekova](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) - -### Videos {#videos} - -- [Šta je decentralizovana nauka?](https://www.youtube.com/watch?v=-DeMklVWNdA) -- [Razgovor između Vitalika Buterina i naučnice Obri de Grej o raskrsnici istraživanja dugovečnosti i kripto sveta](https://www.youtube.com/watch?v=x9TSJK1widA) -- [Naučno objavljivanje je pokvareno. Može li Web3 da ga popravi?](https://www.youtube.com/watch?v=WkvzYgCvWj8) -- [Huan Benet — DeSci, nezavisne laboratorije,& nauka o podacima velike skale](https://www.youtube.com/watch?v=zkXM9H90g_E) -- [Sebastijan Brunmejer — Kako DeSci može da transformiše biomedincska istraživanja & preduzetnički kapital](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/sr/nft/index.md b/src/content/translations/sr/nft/index.md deleted file mode 100644 index 471ece9ead3..00000000000 --- a/src/content/translations/sr/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Nezamenljivi tokeni (NFT) -description: Pregled NFT-ijeva na Ethereum -lang: sr -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: Eth logo koji se prikazuje putem holograma. -summaryPoint1: Način da se bilo šta jedinstveno prikaže kao sredstvo zasnovano na Ethereum. -summaryPoint2: NFT-ijevi daju više moći kreatorima sadržaja nego ikada ranije. -summaryPoint3: Pokreću ih pametni ugovori na Ethereum-ovom blokčejnu. ---- - -## Šta su NFT-ijevi? {#what-are-nfts} - -NFT-ijevi su tokeni koji su jedinstveni. Svaki NFT ima drugačije karakteristike (nezamenjiv je) i ograničeno je dostupan. NFT-ovi se razlikuju od tokena kao što je ERC-20 u kom je svaki token isti i ima iste karakteristike (zamenjiv je). Ne zanima vas koji dolar imate u novčaniku, zato što je svaki isti i vredi isto. Ipak, veoma je bitno koji NFT posedujete zato što svaki ima svoje karakteristike koje ga razlikuju od drugih ("nezamenljivi su"). - -Jedinstvenost svakog NFT-ja omogućava tokenizaciju stvari poput umetnosti, kolekcionarskih predmeta ili čak nekretnina, gde jedan određeni jedinstveni NFT predstavlja određenu jedinstvenu stvar iz stvarnog sveta ili digitalni predmet. Vlasništvo nad nekom imovinom je osigurano Ethereum blokčejnom — niko ne može da izmeni zapis o vlasništvu niti da kopira/nalepi novi NFT. - - - -## Internet imovine {#internet-of-assets} - -NFT-ijevi i Ethereum rešavaju neke od problema koji postoje na Internetu. Kao što sve postaje digitalno, postoji potreba da se i karakteristike fizičkih proizvoda kao što su ograničena dostupnost, jedinstvenost i dokaz o vlasništvu repliciraju u digitalni svet. na takav način da nije kontrolisano od strane neke centralne organizacije. Na primer, sa NFT-ijevima možete da posedujete muzički mp3 koji nije specifičan za određenu aplikaciju za reprodukciju muzike jedne kompanije, ili možete posedovati korisničko ime na društvenim mrežama koje možete prodati ili razmeniti, ali vam ga pružalac platforme ne može proizvoljno oduzeti. - -Evo kako se Internet NFT-ijeva razlikuje od Interneta koji većina nas koristi... - -### Poređenje {#nft-comparison} - -| Internet NFT-ova | Internet današnjice | -| --------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | -| Posedujete svoju imovinu! Samo vi možete da je prodajete ili menjate. | Unajmljujete proizvode od neke organizacije. | -| NFT-jevi su digitalno jedinstveni, ne postoje dva ista. | Kopija jednog entiteta uglavnom ne može da se razlikuje od originala. | -| Vlasništvo nad NFT-jem je upisano na lancu blokova i svako može to da utvrdi. | Vlasništvo nad digitalnom imovinom je upisano na serverima koji su kontrolisani od strane institucija — i morate im verovati. | -| NFT-ijevi su pametni ugovori na Ethereumu. Ovo znači da ih možete jednostavno koristiti u okviru drugih pametnih ugovora i aplikacija na Ethereumu! | Kompanije sa digitalnim predmetima uglavnom zahtevaju svoju sopstvenu "zatvorenu" infrastrukturu. | -| Kreatori sadržaja mogu da prodaju svoj rad bilo gde i imaju pristup globalnom marketu. | Kreatori se oslanjaju na infrastrukturu i distribuciju platforme koju koriste. Često su podložni uslovima korišćenja i geografskim ograničenjima. | -| Kreatori NFT-ijeva mogu da zadrže prava vlasništva nad svojim delom i direktno programirati autorske naknade u NFT ugovor. | Platforme kao što su one za strimovanje muzike zadržavaju većinu profita od prodaje. | - -## Kako NFT-ijevi funkcionišu? {#how-nfts-work} - -Kao i bilo koji token izdat na Ethereumu, NFT-ijevi su izdati putem pametnog ugovora. Pametni ugovor se pridržava jednog od nekoliko standarda za NFT-ijeve (uglavnom ERC-721 ili ERC-1155) koji definišu koje funkcije ugovor ima. Ugovor može da kreira ("izrudari") NFT-ijeve i da ih dodeli nekom vlasniku. Vlasništvo je definisano ugovorom mapiranjem određenih NFT-ijeva određenim adresama. NFT ima identifikator (ID) i obično ima povezane metapodatke koji čine određeni token jedinstvenim. - -Kada neko kreira ili izrađuje NFT, zapravo izvršava funkciju u pametnom ugovoru koja dodeljuje određeni NFT njihovoj adresi. Ova informacija se čuva u skladištu ugovora koje je deo lanca blokova. Kreator ugovora može dopisati dodatnu logiku u ugovor, na primer može ograničiti ukupnu ponudu ili definisati autorske naknade koje će biti isplaćivane kreatoru svaki put kada se token prenese. - -## Za šta se NFT koristi? {#nft-use-cases} - -NFT-ijevi se koriste za mnoge svrhe, uključujući: - -- Dokaz da ste prisustvovali nekom događaju -- Sertifikat da ste završili neki kurs -- Predmeti koji se mogu posedovati u igrama -- Digitalna umetnost -- Tokenizacija predmeta iz fizičkog sveta -- Dokaz o onlajn identitetu -- Ograničavanje pristupa sadržaju -- Prodaja karata -- Decentralizovani Internet nazivi domena -- Kolateral u decentralizovanim finansijama (DeFi) - -Možda ste vi umetnik koji želi da podeli svoj rad koristeći NFT. ijeve bez gubljenja kontrole i žrtvovanja profita u korist posrednika. Možete kreirati novi ugovor i tačno odrediti broj NFT-ijeva, njihovih karakteristika i link ka određenom umetničkom delu. Kao umetnik, možete programirati autorske naknade u pametni ugovor koje bi trebalo da budete plaćeni (na primer, preneti 5% od cene prodaje vlasniku ugovora svaki put kada se NFT prenese). Takođe, možete dokazati da ste vi kreirali NFT tako što posedujete novčanik koji je sproveo ugovor. Vaši kupci mogu jednostavno da dokažu vlasništvo nad NFT-ijem iz vaše kolekcije zato što je njihova adresa novčanika povezana sa tokenom u vašem pametnom ugovoru. Mogu da koriste taj NFT u Ethereum ekosistemu sa uverenjem u njegovu autentičnost. - -Ili, zamislite ulaznicu za neki sportski događaj. Kao što organizator nekog događaja može da izabere koliko karata će prodati, isto tako i kreator NFT-ijeva može da odluči koliko replika će postojati. Ponekad su to identične replike kao što je na primer 5000 karata za opšti ulaz. Ponekad nekoliko njih je izrudareno koje su veoma slične, ali ipak malo različite, na primer karte koje imaju određen broj stolice za sedenje. One mogu biti kupljene i prodate direktno bez plaćanja posredniku za ulaznice, a kupac uvek može biti siguran u autentičnost ulaznice proverom adrese ugovora. - -Na ethereum.org, NFT-ijevi se koriste da pokažu da su neke osobe doprinele našem Github nalogu ili su prisustvovali pozivu ili čak imaju svoj NFT domen. Ukoliko doprinesete ethereum.org, možete preuzeti svoj POAP NFT. Neki kripto događaju koriste POAP-e kao ulaznice. [Više o doprinosu](/contributing/#poap). - -![ethereum.org POAP](./poap.png) - -Ovaj sajt takođe ima alternativni naziv domena u vidu NFT-ova, **ethereum.eth**. Našom adresom sa `.org` ekstenzijom se centralno upravlja od strane pružaoca sistema za imena domena (DNS), dok je ethereum`.eth` registrovan na Ethereum putem Ethereum Name Service (ENS). I on je u vlasništvu i upravljanju nas. [Proverite nas ENS zapis](https://app.ens.domains/name/ethereum.eth) - -[Više o ENS-u](https://app.ens.domains) - - - -### Bezbednost u pogledu NFT-ova {#nft-security} - -Bezbednost Ethereum dolazi od dokaza o ulogu. Sistem je projektovan tako da ekonomski demotiviše zlonamerne radnje, čime se Ethereum čini otpornim na manipulacije. Ovo omogućava NFT-ijeve. Jednom kada blok koji sadrži vašu NFT transakciju postane finalizovan, napadača bi koštalo na milione ETH da to promeni. Bilo ko ko pokreće Ethereum softver odmah bi mogao da otkrije nepošteno manipulisanje NFT-om, a zlonamerni akter bi bio ekonomski kažnjen i izbačen. - -Problemi bezbednosti NFT-ijeva su uglavnom povezani sa fišingom, ranjivošću pametnih ugovora ili korisničkom greškom (kao što je nenamerno izlaganje privatnih ključeva), čineći sigurnost novčanika ključnom za vlasnike NFT-ijeva. - - - Više o bezbednosti - - -## Dodatna literatura {#further-reading} - -- [Vodič za početnike u NFT-u](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) — _ Linda Ksie, Januar 2020._ -- [Praćenje EtherscanNFT-a](https://etherscan.io/nft-top-contracts) -- [Standard za tokene ERC-721](/developers/docs/standards/tokens/erc-721/) -- [ERC-1155 standard za tokene](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/sr/refi/index.md b/src/content/translations/sr/refi/index.md deleted file mode 100644 index 00a1bf46603..00000000000 --- a/src/content/translations/sr/refi/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: Regenerativne finansije (ReFi) -description: Pregled regenerativnih finansija i njegove trenutke primene. -lang: sr -template: use-cases -emoji: ":recycle:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Alternativa ekonomskom sistemu izgrađena na regenerativnim principima -summaryPoint2: Pokušaj upotrebe Ethereuma za rešavanje globalnih koordinacionih kriza kao što su klimatske promene -summaryPoint3: Alatka za značajno povećanje ekoloških korisnih sredstava poput verifikovanih kreditnih bodova za smanjenje emisije ugljenika ---- - -## Šta je ReFi? {#what-is-refi} - -**Regenerativne finansije (ReFi)** je skup alatki i ideja izgrađenih na vrhu lanca blokova, koje imaju za cilj stvaranje ekonomija koje su regenerativne, umesto ekstraktivnih ili eksploatativnih. Na kraju, ekstraktivni sistemi iscrpljuju dostupne resurse i propadaju; bez regenerativnih mehanizama, nedostaje im otpornost. ReFi deluje na pretpostavci da stvaranje monetarne vrednosti mora biti odvojeno od neodrživog izvlačenja resursa sa naše planete i zajednica. - -Umesto toga, ReFi želi da reši probleme životne sredine, zajednice i društve kreirajući regenerativne cikluse. Ovi sistemi kreiraju vrednost za korisnike dok istovremeno donosi benefit i ekosistemima i zajednicama. - -Jedna od osnova ReFi-ja je koncept regenerativne ekonomije koji je razvio Džon Fulerton iz [Capital Instituta](https://capitalinstitute.org). On je predložio osam međusobno povezanih principa koji su deo sistemskog zdravlja: - -![Osam međusobno povezanih principa](../../assets/use-cases/refi-regenerative-economy-diagram.png) - -ReFi projekti ostvaruju ove principe korišćenjem [pametnih ugovora](/developers/docs/smart-contracts/) i aplikacija za [decentralizovane finansije](/defi/) (DeFi) kako bi podstakli regenerativna ponašanja, na primer obnavljanje degradiranih ekosistema, i kako bi olakšali masovnu saradnju na globalnim pitanjima kao što su klimatske promene i gubitak biodiverziteta. - -ReFi takođe se preklapa sa pokretom [decentralizovane nauke (DeSci)](/desci/), koji koristi Ethereum kao platformu za finansiranje, kreiranje, recenzije, dodelu zasluga, skladištenje i širenje naučnog znanja. DeSci alati mogli bi da postanu korisni za razvoj verifikovanih standarda i praksi za implementaciju i praćenje regenerativnih aktivnosti poput sadnje drveća, uklanjanja plastike iz okeana ili obnove degradiranog ekosistema. - -## Tokenizacija karbonskih kredita {#tokenization-of-carbon-credits} - -**[Dobrovoljno ugljenično tržište (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** predstavlja mehanizam za finansiranje projekata koji imaju potvrđen pozitivan uticaj na emisije ugljenika, bilo smanjivanjem postojećih emisija ili uklanjajem efekta staklene bašte već emitovanih emisija u atmosferi. Ovi projekti dobijaju sredstva nazvano "karbonski krediti" nakon što verifikovani, i njih mogu prodavati pojedincima i organizacijama koje žele podržati borbu protiv klimatskih promena. - -Pored dobrovoljnog ugljeničnog tržišta (VCM), postoje i različita ugljenična tržišta koja traže vlade ('tržišta usaglašenosti') koja nastoje da uspostave cenu ugljenika putem zakona ili propisa unutar određene nadležnosti (npr. države ili regiona), čime se kontroliše snabdevanje dozvolama. Tržišta usaglašenosti podstiču zagađivače u okviru svojih nadležnosti da smanje emisije, ali one nisu u mogućnosti da smanje efekat staklene bašte postojećih emisija. - -Uprkos svom razvoju u proteklih nekoliko decenija, VCM-ijevi i dalje imaju mnoge probleme: - -1. Visoko fragmentisana likvidnost -2. Komlikovane mehanizme transakcija -3. Visoke nadoknade -4. Veoma sporo trgovanje -5. Nemogućnost skalabilnosti - -Prelazak sa VCM-a na novo **digitalno tržište za ugljenik** na lancu blokova (DCM) može biti prilika za unapređenje postojeće tehnologije za validaciju, transakcije i korišćenje karbonskih kredita. Lanci blokova omogućavaju javno verifikovanje podataka, pristup za veliki broj korisnika i više likvidnosti. - -Projekti ReFi koriste blokčejn tehnologiju kako bi ublažili mnoge probleme tradicionalnog tržišta: - -- **Likvidnost je skoncentrisana u malom broju fondova likvidnosti**u kojim svako može slobodno da trguje. Velike organizacije kao i pojedinačni korisnici mogu da koriste ove fondove bez ručnih pretraga za prodavce/kupce, naknade za učešće ili prethodne registracije. -- **Sve transakcije su zabeležene na javnim lancima blokova**. Put kojim svaka karbonska kreditna jedinica prolazi zbog trgovinske aktivnosti se može pratite čim postane dostupna u DCM-u. -- **Transakcije se izvršavaju gotovo instant**. Obezbeđivanje velikih količina karbonskih kreditnih jedinica putem tradicionalnih tržišta može trajati dane ili nedelje, dok se u DCM-u isto može postići za nekoliko sekundi. -- **Trgovanje se dešava bez posrednika** koji naplaćuju visoke naknade. Digitalne karbonske kreditne jedinice predstavljaju[ poboljšanje troškova od 62% u odnosu na ekvivalentne tradicionalne kredite,](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne) prema podacima jedne analitičke firme. -- **DCM je skalabilan** i možete jednako da izvrši zahteve pojedinaca i korporacija. - -### Ključne komponente DCM-a {#key-components-dcm} - -Četiri glavne komponente čine trenutnu sliku DCM-a: - -1. Registri kao što su [Verra](https://verra.org/project/vcs-program/registry-system/) i [ Gold Standard](https://www.goldstandard.org/) osiguravaju da projekti koji stvaraju karbonske kredite budu pouzdane. Takođe upravljaju bazama podataka iz kojih potiču digitalni ugljenični krediti i mogu se prenositi ili iskoristiti (penzionisati). - -Krenuo je novi talas inovativnih projekata koji se grade na tehnologiji lanca blokova, a koji pokušavaju da drastično unaprede postojeće aktere u ovom sektoru. - -2. Karbon mostovi, poznati i kao tokenizatori pružaju tehnologiju za prikazivanje ili prenos karbonskih kredita iz tradicionalnih registara u DCM. Neki od poznatijih primera su [Toucan Protokol](https://toucan.earth/), [C3](https://c3.app/) i [Moss.Earth](https://moss.earth/). -3. Integrisane usluge nude korisnicima kredite za izbegavanje i/ili uklanjanje ugljenika kako bi mogli da ostvare ekološke koristi od kredita i podele svoju podršku akcijama za klimatske promene sa svetom. - -Neki od njih, kao što su [Klima Infinity](https://www.klimadao.finance/infinity) i [Senken](https://senken.io/), nude raznovrsne projekte razvijene od strane trećih lica i izdate prema unapred uspostavljenim standardima kao što je Verra; drugi, kao kao što je na primer [Nori](https://nori.com/), nude samo određene projekte razvijene prema njihovom sopstvenom standardu za kredite za uklanjanje ugljenika, koje izdaju i za koje imaju sopstveno tržište. - -4. Osnovna infrastruktura koja olakšava povećanje uticaja i efikasnosti celokupnog lanca snabdevanja tržišta ugljenikom. [KlimaDAO](http://klimadao.finance/) pruža likvidnost kao javno dobro (omogućujući svima da kupe ili prodaju kreditne vrednosti ugljenika po transparentnoj ceni), stimuliše povećan protok tržišta ugljenika i povlačenje uz nagrade, obezbeđuje korisnički prijateljske interoperabilne alate za pristup podacima i omogućuje sticanje i povlačenje različitih tokenizovanih kreditnih vrednosti ugljenika. - -## ReFi izvan tržišta ugljenika {#refi-beyond} - -Iako trenutno postoji snažan naglasak na tržišta ugljenika uopšteno i posebno na prelazak sa VCM na DCM unutar ovog prostora, termin "ReFi" nije strogo ograničen samo na ugljenik. Drugi ekološki resursi osim kredita za ugljenik mogu biti razvijeni i tokenizovani, što znači da će i drugi negativni eksterni uticaji moći biti precizno procenjeni unutar osnovnih slojeva budućih ekonomskih sistema. Osim toga, regenerativni aspekt ovog ekonomskog modela može se primeniti i na druge oblasti, poput finansiranja javnih dobara putem platformi za kvadratno finansiranje kao što je [Gitcoin](https://gitcoin.co/). Organizacije koje su izgrađene na ideji otvorenog učešća i jednake distribucije resursa ohrabruju svakog da preusmeri sredstva projektima otvorenog koda, projektima za zaštitu životne sredine, edukativnih projektima i projektima orijentisane ka zajednici. - -Preusmeravanje kapitala od ekstraktivnih praksi ka regenerativnom toku, projekti i kompanije koje pružaju društvene, ekološke ili benefite za zajednicu — a koje možda ne bi uspele dobiti sredstva u tradicionalnom finansiranju — mogu se brže i lakše pokrenuti i generisati pozitivni efekti na društvo. Prelazak na ovaj model finansiranja takođe otvara vrata mnogo inkluzivnijim ekonomskim sistemima, gde ljudi svih demografskih grupa mogu postati aktivni učesnici umesto pasivni posmatrači. ReFi nudi viziju Ethereuma kao mehanizma za koordinisanje akcija za egzistencijalne izazove sa kojima se suočava naša vrsta i sva živa bića na planeti — kao osnovni sloj nove ekonomske paradigme, omogućavajući inkluzivniju i održivu budućnost u narednim vekovima. - -## Dodatni resursi o ReFi-ju - -- [Sveobuhvatan pregled carbon valuta i njihovo mesto u ekonomiji](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) -- [Ministarstvo za budućnost, roman koji prikazuje ulogu valute podržane ugljenikom u borbi protiv klimatskih promena](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) -- [Detaljan izveštaj Radne grupe za skaliranje dobrovoljnih tržišta za ugljenik](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) -- [ReFi pojam u CoinMarketCap rečniku, autori Kevin Ovocki i Juan Mijazono](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/sr/smart-contracts/index.md b/src/content/translations/sr/smart-contracts/index.md deleted file mode 100644 index 0fadfbc1cba..00000000000 --- a/src/content/translations/sr/smart-contracts/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Pametni ugovori -description: Ne-tehnički uvod u pametne ugovore -lang: sr ---- - -# Introduction to smart contracts {#introduction-to-smart-contracts} - -Pametni ugovori su osnovni gradivni elementi aplikativni nivo Ethereuma. To su računarski programi smešteni na lancu blokova koji slede logiku "ako je ovo onda je to" (if this then that), i garantovano će se izvršiti prema pravilima definisanim u svom kodu, koja se ne mogu promeniti nakon što su kreirani. - -Termin "pametni ugovor" je skovao Nik Sabo. 1994. je napisao [uvod u koncept](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html) a 1996. [istraživanje šta sve može pametni ugovor](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html). - -Sabo je zamislio digitalno tržište gde automatski, kriptografski-sigurni procesi omogućavaju transakcije i biznis funcije bez potrebe za posrednikom. Pametni ugovori na Ethereumu su ovu viziju pretvorili u realnost. - -### Poverenje u konvencionalne ugovore {#trust-and-contracts} - -Jedan od najvećih problema sa tradicionalnim ugovorima je potreba za pouzdanim pojedincima koji će pratiti izvršenje ugovora. - -Evo jednog primera: - -Alis i Bob imaju trku biciklima. Hajde da kažemo da se klade u 10 dolara da će Alis da pobedi. Bob je uveren da će biti pobednik i složi se sa opkladom. Na kraju, Alisa pobedi Bobu. Međutim, Boba odbija da isplati opkladu, tvrdeći da je Alisa sigurno varala. - -Ovaj blesavi primer ilustruje problem koji imaju ne-pametni dogovori. Čak i ukoliko su uslovi dogovora ispunjeni (tj. vi ste pobednik trke), morate i dalje verovati drugoj osobi da će ona ispuniti dogovor (tj. isplati opkladu). - -### A digital vending machine {#vending-machine} - -Jednostavna metafora za pametne ugovore je aparat za slatkiše koji radi otprilike kao pametni ugovor — specifični ulog (input) garantuje unapred određeni ishod (output). - -- Izaberete proizvod -- Mašina prikaže cenu -- Platite iznos -- Mašina potvrdi da ste platili pravi iznos -- Mašina vam da ono što ste tražili - -Mašina će izbaciti proizvod koji želite tek kad ispunite sve uslove koji su traženi. Ukoliko ne izaberete proizvod ili ne unesete dovoljno novca, mašina vam neke dati proizvod. - -### Automatsko izvršenje {#automation} - -Glavna korist pametnog ugovora je da deterministički izvršava jednoznačan kod kada se određeni uslovi ispune. Ne postoji potreba da se čeka čovek koji će da interpretira ili pregovara oko rezultata. Ovo uklanja potvrdu za posrednikom. - -Npr. možete da napišete pametni ugovor kojim se zadržavaju sredstva u zalogu za dete, čime se detetu dozvoljava da povuče sredstva nakon određenog datuma. Ukoliko pokuša da povuče novac pre tog datuma, pametni ugovor se neće izvršiti. Ili možete napisati ugovor koji vam automatski daje digitalnu verziju registracije auta kada platite prodavcu. - -### Predvidivi ishodi {#predictability} - -Tradicionalni ugovori su višesmisleni zato što se oslanjaju na ljude da ih interpretiraju i implementiraju. Na primer, dvojica sudija mogu interpretirati ugovor drugačije što može dovesti do nekonzistentnih odluka i nejednakih ishoda. Pametni ugovori uklanjaju ovu mogućnost. Umesto toga, pametni ugovor se izvršava precizno na osnovu upisanih uslova u kodu ugovora. Preciznost znači da uz iste okolnosti, pametni ugovor će dati isti rezultat. - -### Javni zapis {#public-record} - -Pametni ugovori su korisni za revizije i praćenje. S obzirom na to da su Ethereum pametni ugovori na javnom lancu blokova, svako može instant da prati transfer sredstava i druge informacije sa tim u vezi. Na primer, možete proveriti da vidite da li je neko poslao novac na vašu adresu. - -### Zaštita privatnosti {#privacy-protection} - -Pametni ugovori takođe štite vašu privatnost. S obzirom na to da je Ethereum pseudonimna mreža (vaše transakcije su povezane javno za određenu kriptografsku adresu, ne za vaš identitet), možete zaštiti svoju privatnost od posmatrača. - -### Transparentni uslovi {#visible-terms} - -Konačno, kao i tradicionalni ugovori, možete proveriti šta se nalazi u pametnom ugovoru pre potpisivanja (ili interagujete sa njim na neki drugi način). Transparentnost pametnog ugovora garantuje da svako može da ga pažljivo ispita. - -## Primene pametnog ugovora {#use-cases} - -Pametni ugovori mogu da urade sve što i kompjuterski programi. - -Mogu da izvršavaju računanja, naprave valutu, skladište podatke, rudare NFT-ijeve, komuniciraju ili generišu grafike. Evo nekih popularnih primera iz stvarnog sveta: - -- [Stablecoins](/stablecoins/) -- [kreiranje i distribuiranje jedinstvenih digitalnih sredstava](/nft/) -- [automatska, otvorena razmena valuta](/get-eth/#dex) -- [Decentralizovano igranje](/dapps/?category=gaming) -- [polisa osiguranja koja se automatski izvršava](https://etherisc.com/) -- [standard koji omogućava da ljudi kreiraju prilagođene, interoperabilne valute](/developers/docs/standards/tokens/) - -## Više ste navikli na vizuelno učenje? {#visual-learner} - -Gledajte kako Finematics objašnjava pametne ugovore: - - - -## Dodatna literatura {#further-reading} - -- [Kako će pametni ugovori promeniti svet](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [Pametni ugovori: Blokčejn tehnologija koja će zameniti advokate](https://blockgeeks.com/guides/smart-contracts/) -- [Pametni ugovori za programere](/developers/docs/smart-contracts/) -- [Naučite kako da napišete pametne ugovore](/developers/learning-tools/) -- [Masteriraj Ethereum — Šta je pametni ugovor?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/src/content/translations/sr/social-networks/index.md b/src/content/translations/sr/social-networks/index.md deleted file mode 100644 index 7957dc61f47..00000000000 --- a/src/content/translations/sr/social-networks/index.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: Decentralizovane društvene mreže -description: Pregled decentralizovanih društvenih mreža na Ethereumu -lang: sr -template: use-cases -emoji: ":mega:" -sidebarDepth: 2 -image: ../../../../assets/ethereum-learn.png -summaryPoint1: Platforme bazirane na blokčejnu za društvenu interakciju i kreiranje i distribuciju sadržaja. -summaryPoint2: Decentralizovane društvene mreže štite privatnost korisnika i pospešuju bezbednost podataka. -summaryPoint3: Tokeni i NFT-ijevi kreiraju nove načine kako monetizovati sadržaj. ---- - -Društvene mreže igraju bitnu ulogu u našim dnevnim komunikacijama i interakcijama. Ipak, centralizovana kontrola nad ovim platformama je stvorila mnoge probleme: curenje podataka, prekide servera, brisanje sadržaja, cenzuru i kršenje privatnosti su samo neki od kompromisa koje društvene mreže često prave. Da bi se borili protiv ovih problema, programeri su napravili društvene mreže na Ethereumu. Decentralizovane društvene mreže mogu da poprave mnoge probleme tradicionalnih društvenih mreža i da poboljšaju korisničko iskustvo. - -## Šta su decentralizovane društvene mreže? {#what-are-decentralized-social-networks} - -Decentralizovane društvene mreže su bazirane na blokčejnu i omogućavaju korisnicima da razmenjuju informacije i da objavljuju i dostribuiraju sadržaj publici. Pošto te aplikacije rade na lancima blokova, one mogu da budu decentralizovane i otporne na cenzuru i prekomernu kontrolu. - -Mnoge decentralizovane društvene mreže postoje kao alternativa već postojećim mrežama kao što su Facebook, LinkedIn, Twitter i Medium. Ali društvene mreže na blokčejnu imaju brojne karakteristike koje ih čine boljima od tradicionalnih društvenih mreža. - -### Kako decentralizovane društvene mreže funkcionišu? {#decentralized-social-networks-overview} - -Decentralizovane društvene mreže su vrsta [decentralizovanih aplikacija(dapps)](/dapps/) — aplikacija napravljenih uz pomoć [pametnih ugovora](/developers/docs/smart-contracts/)implementiranih na lancu blokova. Kod ugovora služi kao bekend za ove aplikacije i definiše njihovu biznis logiku. - -Tradicionalne društvene mreže se oslanjaju na baze podatake koje skladište informacije o korisniku, kod i ostale podatke. Ali ono stvara slabe tačke i ogroman rizik. Na primer, Facebookovi serveri su neslavno[prestali da rade na nekoliko sati](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact)prošle godine, i tako korisnici nisu imali pristup platformi. - -Decentralizovane društvene mreže postoje na mreži korisnika koja obuhvata hiljade čvorova širom sveta. Iako neki čvorovi prestanu da rade, mreža će nastaviti da funkcioniše neometano čineći aplikacije otporne na takve probleme. - -Korišćenje decentralizovanih baza, kao što je [InterPlanetary File System (IPFS)](https://ipfs.io/),društvene mreže izgrađene na Ethereumu mogu da zaštite informacije korisnika od bilo kakve zloupotrebe. Niko neće prodati vaše podatke oglašivačima, niti će hakeri moći da ukradu vaše poverljive informacije. - -Mnoge društvene mreže zasnovane na lancu blokova imaju svoje tokene kojima vrše monetizaciju u odsustvu prihoda od oglašivača. Korisnici mogu da kupe te tokene da bi imali pristup određenim opcijama, da vrše kupovinu u aplikacijama ili da daju bakšiš omiljenim kreatorima sadržaja. - -## Benefiti decentralizovanih društvenih mreža {#benefits} - -1. Decentralizovane društvene mreže su otporne na cenzuru i otvorene za sve. Ovo znači da korisnici ne mogu da budu zabranjeni, uklonjeni sa platforme ili proizvoljno ograničeni. - -2. Decentralizovane društvene mreže su izgrađene na idealima otvorenog koda i njihov kod je javno dostupan ukoliko želite da ga revidirate. Eliminacijom upotrebe nejasnih algoritama koji su uobičajeni u tradicionalnim društvenim medijima, društvene mreže bazirane na blokčejnu mogu uskladiti interese korisnika i kreatora platforme. - -3. Decentralizovane društvene mreže eliminišu posrednika. Kreatori sadržaja imaju direktno vlasništvo nad svojim sadržajem i mogu direktno da komuniciraju sa svojim pratiteljima, obožavateljima, kupcima itd, bez ičega osim pametnog ugovora između njih. - -4. Kao što decentralizovane aplikacije koji funkcionišu na Ethereum mreži, koja je održavana globalnom mrežom povezanih korisnika, decentralizovane društvene mreže su manje podložne prekidima i ispadima servera. - -5. Decentralizovane društvene platforme nude poboljšani okvir za zaradu za kreatore sadržaja uz pomoć nezamenljivih tokena (NFT-ijeva), kripto uplatama i sl. - -6. Decentralizovane društvene mreže daju korisnicima visok nivo privatnosti i anonimnosti. Na primer, pojedinac može da se prijavi na društvenu mrežu na Ethereumu koristeći ENS profil ili novčanik — bez ostavljanja ličnih podataka kao što su ime ili adresa elektronske pošte. - -7. Decentralizovane društvene mreže se oslanjaju na decentralizovana skladišta, a ne na centralizovane baze podataka što je mnogo bolji način za bezbedno čuvanje korisničkih podataka. - -## Decentralizovane društvene mreže na Ethereumu {#ethereum-social-networks} - -Ethereum mreža je postala omiljena alatka za programere kada kreiraju društvene medije najviše zahvaljujući popularnosti njenih tokena (ERC-20ERC-721) i njene ogromne baze korisnika. Evo nekih primera društvenih mreža na Ethereumu: - -### Peepeth {#peepeth} - -[Peepeth](https://peepeth.com/)je platforma za mikrobloging slična Twitteru. Pokreće se na Ethereum lancu blokova i koristi IPFS za skladištenje korisničkih podataka. - -Korisnici mogu da objavljuju kratke poruke koje se zovu "Peeps" i koje ne mogu biti izbrisane ili izmenjene. Možete prikupljati bakšiš ili davati bakšiš bilo kome na platformi u etherima (ETH) bez napuštanja aplikacije. - -### Mirror {#mirror} - -[Mirror](https://mirror.xyz/)je web3 platforma za pisanje koja cilja da bude decentralizovana i u vlasništvu korisnika. Korisnici mogu da čitaju i pišu besplatno na Mirroru jednostavnim povezivanjem novčanika sa platformom. Korisnici takođe mogu sakupljati tekstove i pratiti svoje omiljene pisce. - -Tekstovi objavljeni na Mirroru se trajno skladište na Arweave-u, decentralizovanoj platformi za skladištenje i mogu biti rudareni kao kolekcija [nezamenljivih tokena (NFT-ijevi)](/nft/)Pisani NFT-ijevi. Pisani NFT-ijevi su potpuno besplatni za pisce da stvaraju, a kolekcije se dešavaju na nivou 2 Ethereuma — čineći tako transakcije jeftinim, brzim i pogodnim za okolinu. - -### MINDS {#minds} - -[MINDS](https://www.minds.com/) je jedna od najkorišćenijih decentralizovanih društvenih mreža. Radi kao Facebook i već je privukao milione korisnika. - -Korisnici koriste platformin ERC-20 token $MIND da plaćaju. Korisnici takođe mogu da zarade $MIND tokene tako što će objavljivati sadržaj, doprinositi ekosistemu i preporučivati platformu novim korisnicima. - -## Web2 društvene mreže na Ethereumu {#web2-social-networks-and-ethereum} - -[Web3](/web3/)društvene platforme nisu jedine društvene mreže koje koriste blokčejn tehnologiju. Mnoge centralizovane platforme takođe planiraju da integrišu Ethereum u svoju infrastrukturu: - -### Reddit {#reddit} - -Reddit je[istakao poene zajednice](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users)koji su [ERC-20 tokeni](/developers/docs/standards/tokens/erc-20/) koji korisnici mogu da zarade tako što će postavljati kvalitetan sadržaj i doprinositi onlajn zajednicama (subredditima). Možete iskoristiti ove tokene unutar podforuma kako biste dobili [ekskluzivne privilegije i pogodnosti](https://www.reddit.com/community-points/). Za ovaj projekat, Reddit sarađuje sa Arbitrumom, [nivo 2](/layer-2/)rolap rešenjem dizajniranim za skaliranje Ethereum transakcija. - -Program već funkcioniše, a podforum r/CryptoCurrency [koristi svoju verziju poena zajednice nazvanu "Moons"](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Prema zvaničnom opisu, Moons "nagrađuje one koji objavljuju, komentarišu i moderatore za njihove doprinose podforumu." S obzirom na to da su ovi tokeni na lancu blokova (korisnici mogu da ih prime u novčanik), oni su nezavisni od Reddita i ne mogu biti otuđeni. - -Nakon završetka beta faze na Rinkeby testnoj mreži, Reddit poeni zajednice su sada dostupni na[ Arbitrum Nova-i](https://nova.arbitrum.io/), lancu blokova koji kombinuje osobine [sporednog lanca](/developers/docs/scaling/sidechains/) i [optimističkog rolapa](/developers/docs/scaling/optimistic-rollups/). Pored korišćenja poena zajednice za otključavanje novih opcija, korisnici takođe mogu da trguju njima za valute fiat u menjačnicama. Takođe, količina poena zajednice koju korisnik poseduje određuje njihov uticaj u donošenju odluka u zajednici. - -### Twitter {#twitter} - -U januaru 2021, Twitter Blue [ je lansirao podršku za NFT-ijeve](https://mashable.com/article/twitter-blue-nft-profile-picture) omogućujući korisnicima da povežu svoje novčanike i koriste svoj NFT kao profilnu sliku. U trenutku pisanja ovog tekstva, ova društvena mreža je takođe[objavila planove](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) da kreira decentralizovanu društvenu mrežu u budućnosti. - -### Instagram {#instagram} - -U maju 2022, [Instagram je objavio da podržava NFT-ijeve](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) na Ethereumu i Polygonu. Korisnici mogu da postavljuju NFT-ijeve direktno na Instagram tako što će se povezati na Ethereum novčanik. - -## Koristite decentralizovane društvene mreže {#use-decentralized-social-networks} - -- **[Status.im](https://status.im/)** — _Status je aplikacija za sigurno dopisivanje koja koristi otvoreni kod, "peer-to-peer" protokol i "end-to-end" enkripciju da bi zaštitila vaše poruke od trećih lica._ -- **[Mirror.xyz](https://mirror.xyz/)** — _Mirror je decentralizovana, mreža za objavljivanje u vlasništvu korisnika, sagrađena na Ethereumu za korisnike da masovno finansiraju svoje ideje, monetizuju sadržaj ili izgrade visoko-vredne zajednice._ -- **[Lens protokol](https://lens.xyz/)** — _Lens Protokol je kompozabilan i decentralizovan društveni grafikon koji pomaže kreatorima da preuzmu vlasništvo nad svojim sadržajem gde god da idu u digitalnom vrtu decentralizovanog interneta._ -- **[Farcaster](https://farcaster.xyz/)** — _Farcaster je dovoljno decentralizovana društvena mreža. To je otvoreni protokol koji može da podrži mnoge klijente, kao email._ - -## Dodatna literatura {#further-reading} - -### Članci {#articles} - -- [Decentralizovanje društvenih mreža: vodič za web3 društveni stek](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) — _Coinbase Ventures_ -- [Društvene mreže su sledeća velika prilika za decentralizaciju](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Gercel_ -- [Web3 drži obećanje o decentralizovanih, društvenim mrežama od strane zajednica](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _ Samit Goš_ -- [Pregled društvenih mreža na lancu blokova](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ -- [Kako lanci blokova mogu da reše privatnost na društvenim mrežama](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) – _Prablin Badžpaj_ -- [Društvene mreže stižu na lance blokova](https://businesstechguides.co/what-are-decentralized-social-networks) – _Emanuel Avosika_ -- [Dovoljno decentralizacije za društvene mreže](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Varun Srinivasan_ - -### Videos {#videos} - -- [Objašnjenje decentralizovanih društvenih mreža](https://www.youtube.com/watch?v=UdT2lpcGvcQ) – _ Coinmarketcap_ -- [DeSo blokčejn želi da decentralizuje društvene mreže](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ -- [Budućnost decentralizovanih društvenih medija sa Baladži Srinivasanom, Vitalikom Buterinom, Huanom Benetom](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ - -### Zajednice {#communities} - -- [Server platforme Status u aplikaciji Discord](https://discord.com/invite/3Exux7Y) -- [Mirror Discord Server](https://discord.com/invite/txuCHcE8wV) -- [r/CryptoCurrency podforum](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/sw/community/support/index.md b/src/content/translations/sw/community/support/index.md deleted file mode 100644 index 155cc252587..00000000000 --- a/src/content/translations/sw/community/support/index.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -title: Msaada wa Ethereum -description: Pata msaada kwenye ikolojia ya Ethereum. -lang: sw ---- - -# Msaada wa Ethereum {#support} - -## Msaada rasmi wa Ethereum {#official-support} - -Je, unatafuta msaada rasmi wa Ethereum? Cha kwanza unachopaswa kujua ni kua Ethereum imegatuliwa. Hii inamaana hamna mashirika ya kati ama ya kiserikali, chombo, ama mtu anayemiliki Ethereum, na kwasababu hio, hakunana chaneli ya kutoa msaada ilio rasmi. - -Ufahamu wa asili ya ugatuzi wa Ethereum ni muhimu kwa kila mmoja maana yeyote anayedai kua mtu anaeweza kutoa msaada kuhusu Ethereum anaweza kukulaghai! Ulinzi thabiti dhidi ya walaghai na kujifunza na kua makini na ulinzi. - - - Usalama wa Ethereum na udhibiti wa matapeli - - - - Jifunze mambo ya msingi ya Ethereum - - -Licha ya upungufu wa uungaji mkono, makundi mengi, jumuiya na mirandi ndani ya ikolojia ya Ethereum wanafurahi kuunga mkono, na unaweza kupata taarifa muhimu na vyanzo kwenye ukurasa huu. Bado unamswali? Jiunge na [Discord ya ethereum.org](/discord/), na tutajaribu kukusaidia. - -## Huduma za pochi {#wallet-support} - -Je unapata shida na pochi yako? Pochi nyingi zina timu inayojiyuma inayoweza kukusaidia: - -- [MetaMask](https://metamask.zendesk.com/hc/) -- [Argent](https://support.argent.xyz/hc/) -- [MyEtherWallet](https://help.myetherwallet.com/) - -_Hii sio orodha kamili. Unahitaji msaada kupata huduma juu ya pochi maalum? Jiunge na [ discord ya etehreum.org](https://discord.gg/ethereum-org) na tutajaribu kusaidia._ - -Unatafuta pochi ya Ethereum? [Chunguza orodha yetu yote ya Ethereum](/wallets/find-wallet/). - -## Jenga dapps {#building-support} - -Ujenzi unaweza kua mgumu. Haya ni majukwaa yaliojikita kwenye uendelezaji ukiwa na wasanidi programu waliobobea wenye furaha kukuasaidia. - -- [Discord ya CryptoDevs](https://discord.gg/Z9TA39m8Yu) -- [StackExchange ya Ethereum](https://ethereum.stackexchange.com/) -- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) -- [Chuo cha Web3](https://www.web3.university/) - -Unaweza kupata nyarak na miongozo ya usanidi kwenye kipengele cha [vyanzo vya msanidi programu wa Ethereum](/developers/). - -### Zana {#dapp-tooling} - -Je swali lako linahusiana na chimbo fulani maalum, mradi au maktaba? Miradi mingi ina seva za soga au vikako vilivyojikita kukusaidia wewe. - -Hii ni baadhi ya mifano maalum: - -- [Uimara](https://gitter.im/ethereum/solidity/) -- [ethers.js](https://discord.gg/6jyGVDK6Jx) -- [web3.js](https://discord.gg/GsABYQu4sC) -- [Hardhat](https://discord.gg/xtrMGhmbfZ) -- [Truffle](https://discord.gg/8uKcsccEYE) -- [Alchemy](http://alchemy.com/discord) - -## Endesha nodi {#node-support} - -Kama unaendesha nodi am mthibitishaji, hizi ni baadhi ya jamii zinazotoa msaada ili upate kuanza katika Ethereum. - -- [Discord ya EthStaker](https://discord.gg/ethstaker) -- [Reddit ya EthStaker](https://www.reddit.com/r/ethstaker) - -Timu zilizo nyingi za usanidi programu za Ethereum zinajitolea kusaidia mikutano ya hadhara amabayo unaweza kupata waunga mkono na kuuliza maswaloi muhimu. - -### Programu za utelekezji {#execution-clients} - -- [Geth](https://discord.gg/FqDzupGyYf) -- [Nethermind](https://discord.gg/YJx3pm8z5C) -- [Besu](https://discord.gg/p8djYngzKN) -- [Erigon](https://github.com/ledgerwatch/erigon/issues) - -### Programu ya makubaliano {#consensus-clients} - -- [Prysm](https://discord.gg/prysmaticlabs) -- [Nimbus](https://discord.gg/nSmEH3qgFv) -- [Taa ya taa](https://discord.gg/cyAszAh) -- [Teku](https://discord.gg/7hPv2T6) -- [Mwangaza](https://discord.gg/aMxzVcr) - -Unaweza [kujifunza jinsi ya kuendesha nodi hapa](/developers/docs/nodes-and-clients/run-a-node/). - -## Maswali yanayoulizwa mara kwa mara {#faq} - -#### Nimetuma ETH kwenye pochi isiyo sahihi {#wrong-wallet} - -Muamala unaofanyika kwenye Ethereum hauwezi kurudishwa ulikotoka. Kwa bahati mbaya, kama umetuma ETH kwenye pochi isiyo sahihi, hamna njia ya kupata fedha hizo. Hakuna shirika la kati, chombo ama mtu mmoja anaemiliki Ethereum, kwa maana kwamba hamna anaeweza kurudisha muamala ulikwishafanyika. Kwahiyo, ni muhimu kukagua mara kadhaa kama anauani ya pochi unayoingiza iko sahihi kabala ya kufanya muamala. - -#### Nawezaje kudai zawadi yangu ya Ethereum? {#giveaway-scam} - -Zawadi za Ethereum ni mitego/ulaghai unaobuniwa ili kuiba ETH zako. Usishawishike na huduma inayotanganzwa inayoonekana kua ya uwongo - ukiotuma ETH kwenye anwani ya zawadi, hautapokea zawadi, na hautaweza kupata fedha ulizotuma mwanzo. - -[Zaidi juu ya kuzuia ulaghai](/security/#common-scams) - -#### Muamala wangu umegota {#stuck-transaction} - -Wakati mwingine miamala hugita kwenye Ethereum kama umetoa kiwango kidogo cha malipo ya muamala kuliko kile kinachohitajika kwenye mtandao. Pochi nyingi hutoa chaguo la kutuma tena muamala huo huo kwa bei ya juu zaidi ili muamala ufanyiwe mchakato. Kwa njia mbadala unaweza kughairi muamala usio kamili kwa kutuma fedha hizo kwenye anwani yako mwenyewe, na kutumia nonce sawa na ya muamala ambao haujakamlika. - -[Jinsi ya kuongeza kasi au kusimamisha malipo/muamala ambao haujamkamilika kwenye MetaMask](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) - -[Jinsi ya kuzuia/ghairi miamala kwenye Ethereum](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) - -#### Nawezaje kuchimba Ethereum? {#mining-ethereum} - -Hatushauri kununua maunzi ya kuchimba Ethereum kama bado haujaanza kuchimba. Kwenye ~Q3. Q4 2022, [Muungano](/roadmap/merge/) utatokea, utabadilisha Ethereum kutoka kwenye uthibitisho-wa-kazi kwenda kwenye usthibitisho-wa-hisa. Haya mabadiliko yatafanya uchimbaji wa Ethereum kutowezekana tena. diff --git a/src/content/translations/sw/nft/index.md b/src/content/translations/sw/nft/index.md deleted file mode 100644 index 7fa77716b29..00000000000 --- a/src/content/translations/sw/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Ishara zisizokuvu (NFTs) -description: Muhtasari wa NFT kwenye Ethereum -lang: sw -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: Nembo ya Eth ikionyeshwa kwa kupitia hologramu. -summaryPoint1: Njia ya kuwakilisha kitu chochote cha pekee kama mali zilizojengwa na Ethereum. -summaryPoint2: NFT zinawapatia waundaji wa maudhui nguvu zaidi kuliko zamani. -summaryPoint3: Inaendeshwa na mikataba erevu kwenye mnyororo wa bloku wa Ethereum. ---- - -## What are NFTs? {#what-are-nfts} - -NFT ni tokeni zilizo na ubinafsi wa kipekee. Kila NTF ina sifa tofauti (haziwezi kuigwa) na ni chache. Hii ni tofauti na tokeni kama ERC-20 ambapo kila tokeni kwenye kikundi hufanana na huwa na sifa sawa ('inaweza kuigwa'). Hujali bili ya dola mahususi uliyo nayo kwenye pochi yako kwa sababu zote zinafanana na thamani zao ni sawa. Hata hivyo, _unajali_ tokeni ya kidijitali unayomiliki, kwa sababu zote huwa na sifa zao za binafsi na unaweza kuzitofautisha kutoka kwen ye nyingine ('haziwezi kuigwa'). - -Upekee wa kila tokeni za kidijitali zisizoweza kuigwa ni kuwezesha ishara ya vitu kama sanaa, vitu vinavyokusanywa ama mali isiyohamishika, ambapo kila tokeni maalum ya kidijitali isiyoweza kuigwa huwakilisha ulimwengu halisi ama bidhaa ya kidijitali. Umiliki wa mali unalindwa na mnyororo wa bloku wa Ethereum – hakuna anayeweza kubadili nyaraka za umiliki ama kutoa/kubandika nakala mpya za NFT. - - - -## Mtandao wa mali {#internet-of-assets} - -Tokeni zisizoweza kuigwa na Ethereum husuluhisha shida zinazokuwepo kwenye intaneti leo. Kwa kuwa kila kitu kinakuwa cha kidijitali, kuna haja ya kuiga sifa za vitu halisi kama uhaba, upekee na ushahidi wa umiliki. kwa njia isiyoweza kudhibitiwa na mashirika yasiyogatuliwa. Kwa mfano, ukiwa na tokeni za kidijitali zisizoigwa, unaweza kumiliki muziki wa sampuli ya MP3 ambao hauko kwenye programu ya muziki maalum au unaweza kumiliki tovuti ya mtandao wa kijamii ambao unaweza kuuza ama kubadilishana lakini hauwezi kuchukuliwa kihohela kutoka kwako na mtoaji jukwaa. - -Hivi ndivyo mtandao wa NFT unafanya kazi ukilinganisha na intaneti ambao wengi wengi tunatumia leo... - -### Ulinganisho {#nft-comparison} - -| Intaneti/Mtandao wa NFT | Intaneti ya leo | -| --------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | -| Unamiliki mali yako! Ni wewe tu unayeweza kuziuza ama kuzibadilisha mwenyewe. | Unaweza kukodisha mali kutoka kwenye mashirika mengine. | -| NFT zina sifa za kipekee za kidijitlai, hakuna NFT mbili zitakazofanana. | Mara nyingi nakala ya chombo haiwezi kutofautishwa na ya asili. | -| Umiliki wa tokeni zisizoweza kuigwa unawekwa kwenye mnyororo wa bloku ili kila mtu aweze kuthibitisha. | Rekodi za umiliki wa vitu vya kidijitali zinahifadhiwa kwenye seva zinazodhibitiwa na taasisi – lazima uziamini. | -| Tokeni zisizoigwa ni mikataba erevu kwenye Ethereum. Hii inamaana kuwa zinaweza kutumika kwenye mikataba erevu mingine na programu kwenye Ethereum! | Kampuni zenye bidhaa za kidigitali huhitaji kuwa na "hifadhi yenye ukingo". | -| Waunda maudhui wanaweza kuuza kazi zao sehemu yoyote na kufikia soko la ulimwengu mzima. | Waundaji wanategemea miundombinu na usambazaji wa majukwaa wanayotumia. Mara nyingi hili hufuata sheria na masharit na vizuizi vya kijiografia. | -| Watengenezaji wa tokeni zisizoigwa wanaweza kuhifadhi haki za kazi na mirabaha ya programu zao moja kwa moja kwenye mkataba wa tokeni zisizoigwa. | Majukwaa kama ya huduma za kutiririsha muziki, yanapata faida nyingi kutoka kwenye mauzo. | - -## NFT zinafanyaje kazi? {#how-nfts-work} - -Kama aina yeyote ya tokeni inayotolewa kwenye Ethereum, tokeni zisizoigwa zinatolewa na mkataba erevu. Mkataba erevu hutimiza moja viwango kadhaa vya tokeni zisizoigwa (haswa ERC-721 au ERC-1155) ambavyo hufafanua kazi ya mkataba huo. Mkataba huu unaweza kuunda ('kuzalisha') tokeni zisizoigwa na kuzipa kwa mmiliki maalum. Umiliki unafafanuliwa kwenye mkataba kwa kuweka tokeni zisizoigwa kwenye anwani maalum. Tokeni isiyoigwa ina kitambulisho na kwa kawaida ina maelezo ya data ambayo hufanya tokeni hii mahususi kuwa ya kipekee. - -Mtu anapotengeneza ama kuzalisha tokeni zisizoigwa, anatekeleza kazi ndani ya mkataba erevu ambao huteua tokeni isiyoigwa kwenye anwani yake. Habari hii huhifadhiwa hifadhi ya mkataba wake ambayo ni sehemu ya mnyororo wa bloku. Mtengenezaji wa mkataba anaweza kuandika mantiki zaidi kwenye mkataba, kwa mfano, kuweka kiwango cha usambazaji ama kufafanua mrabaha utakaolipwa kwa mtengenezaji kila mara tokeni zinapohamishwa. - -## NFT zinatumika kufanya nini? {#nft-use-cases} - -Tokeni zisizoigwa hutumika kwa mambo mengi, ikiwa ni pamoja na: - -- kuthibitisha kwamba ulihudhuria tukio -- kuthibitisha kwamba ulimaliza kozi -- umiliki wa vitu vya michezo -- sanaa ya kidijitali -- kugeuza mali za kidunia kuwa tokeni -- kuthibitisha utambulisho wako kwenye mtandao -- kuzuia ufikiaji wa maudhui -- ukataji tiketi -- majina ya kikoa kwenye intaneti iliyogatuliwa -- dhamana kwenye mambo ya fedha yaliyogatuliwa - -Labda wewe ni msanii amabaye angependa kushiriki kazi yake kupitia tokeni zisizoigwa, bila wewe kupoteza udhibiti ama kuwapa waamuzi faida zako. Wewe unaweza kutengeneza mkataba mpya na kuweka bayana hesabu ya tokeni zisizoigizwa, vipengele vyao na kiungo chao kwa kazi mahususi ya sanaa. Kama msanii, unaweza kuprogramu ndani ya mkataba-erevu mrabaha unaofaa kulipwa (kwa mfano hamisha 5% ya bei ya mauzo kwa mwenye mkataba kila wakati tokeni isiyoigwa) inapohamishwa. Vile vile unaweza kuthibitisha kwamba wewe ndiwe umetengeneza tokeni isiyoigwa kwa sababu wewe ndiwe mmiliki wa pochi iliyotuma mkataba huo. Wanunuzi wako wanaweza kuthibitisha kuthibitisha kwa urahisi kwamba wao ndio wamiliki wa tokeni isiyoigwa halisi kutoka kwenye mkusanyiko wako kwa sababu anwani ya pochi zao inashirikishwa na tokeni kutoka kwenye mkataba wako. Wanaweza kuitumia katika mfumo wa ikologia ya Ethereum, inayoaminika kwa uhalisi wake. - -Ama zingatia tiketi ya mechi ijayo. Kama mratibu wa matukio anavyoweza kuamua idadi ya tiketi za kuchapisha, muundaji wa NFT anaweza kuamua idadi ya kuwepo kwa nakala za kazi yake. Wakati mwingine huwa na nakala za ziada, kama vile Tiketi 5000 za Kiingilio cha Jumla. Wakati mwingine nyingine zinachapishwa zinazofanana, ila kila moja ina tofauti ndogo na yenzake, kama vile tiketi yeneye nambari ya kiti. Hizi zinaweza kununuliwa na kuuzwa kutoka kwa mshirika mmoja mpaka kwa mwingine kusipokuwepo na ulipaji wa washikaji tiketi na wanunuzi watakuwa na uhakika wa tiketi halisi kwa kuangalia anwani ya mkataba huo. - -Kwenye ethereum.org, tokeni zisizoigwa zinatumika kuonyesha kwamba watu wamechangia kwenye hazina ya GitHub ama kushiriki kwa wito uliotolewa, vile vile tuna jina la kikoa cheti cha tokeni isiyoigwa. Ukichangia kwenye ethereum.org, unaweza kudai NFT ya POAP. Mikutano mingine ya sarafu za kidijitali imetumia POAPs kama tiketi. [Zaidi juu ya uchangiaji](/contributing/#poap). - -![POAP za ethereum.org](./poap.png) - -Tovuti hii pia inatumia jina mbadala la kikoa linaloendeshwa na NFT, **ethereum.eth**. Anwani yetu ya `.org` inasimamiwa na mfumo wa majina wa kati/jadi(DNS), wakati ethereum`.eth` imesajiliwa kwenye huduma za majina ya Ethereum (ENS). Na hii linamilikiwa na kuendeshwa na sisi. [Angalia rekodi zetu za ENS](https://app.ens.domains/name/ethereum.eth) - -[Zaidi juu ya ENS](https://app.ens.domains) - - - -### Usalama wa NFT {#nft-security} - -Usalama wa Ethereum unakuja kutokana na ushahidi wa hisa. Mfumo huu umebuniwa ili uweze kuondoa vitendo ya kihasidi kiuchumi na basi kuifanya Ethereum sugu kwa uharibifu. Hii ndiyo inayofanya tokeni zisizoigwa kuwezekana. Mara tu bloku yenye muamala wako wa NFT inapokamilika, inaweza kugharimu mshambulizi mamilioni ya ETH kuibadilisha. Mtu yeyote anayetumia programu ya Ethereum anaweza kujua haraka mambo yasiyofaa ya kuhitilafiana na NFT, na mtu huyu mbaya atatozwa malipo na kuondolewa. - -Maswala ya usalama yanayohusiana na NFT sana sana yanahusiana na utapeli wa kutumia barua pepe, hatari za mkataba-erevu au makosa ya mtumiaji (kama vile kuweka wazi funguo za siri) na hivyo kufanya usalam bora wa pochi uwe muhimu sana kwa wamiliki NFT. - - - Maelezo zaidi kuhusu usalama - - -## Soma zaidi {#further-reading} - -- [Mwongozo wa wa mwanafunzi wa NFT](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, Januari 2020_ -- [Mfuatliliaji EtherscanNFT](https://etherscan.io/nft-top-contracts) -- [Kiwango cha tokeni cha ERC-721](/developers/docs/standards/tokens/erc-721/) -- [Kiwango cha tokeni cha ERC-1155](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/sw/roadmap/beacon-chain/index.md b/src/content/translations/sw/roadmap/beacon-chain/index.md deleted file mode 100644 index 61484d96951..00000000000 --- a/src/content/translations/sw/roadmap/beacon-chain/index.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Mnyororo Kioleza -description: Jifunze juu ya Mnyororo Kioleza - Kisasisho kilichoanzishwa na Ethereum ya uthibitisho-wa-hisa. -lang: sw -template: upgrade -image: ../../../../../assets/upgrades/core.png -summaryPoint1: Mnyororo Kioleza haitabadili kitu chochote katika Ethereum ya leo. -summaryPoint2: Itaratibu mtandao, na kutumikia kama safu ya makubaliano. -summaryPoint3: Inatoa muhtasari wa uthibitisho-wa-hisa kwenyeikolojia ya Ethereum. -summaryPoint4: Unaweza kua unaitambua hii kama "Awamu 0" kwenye mipango ya kitaalamu. ---- - - - Mnyororo wa Kioleza ulisafirishwa Disemba 1 saa sita mchana wakati wa ulimwengu ulioratibiwa. Kujifunza zaidi, chunguza taarifa. Kama unataka kuhalalisha mnyororo, unaweza kuweka ETH yako kama hisa. - - -## Myororo wa Kioleza ni nini? {#what-does-the-beacon-chain-do} - -Mnyororo wa Beacon utaendeleza mwenendo wa kutanua mtandao wake wa [shards](/roadmap/danksharding/) na [wanahisa](/staking/). Lakini haitakua kama [mtandao mkuu wa Ethereum](/glossary/#mainnet) wa leo. Inaweza kuhimili akaunti au mikataba mahiri. - -Jukumu ya mnyororo wa Kioleza litabadilika baada ya mda ila sehemu ya msingi ya [usalama, kuendeleza na ubadilikaji wa Ethereum tunayoijenga](/roadmap/vision/). - -## Sura za mnyororo wa Kioleza {#beacon-chain-features} - -### Kuanzisha hisa {#introducing-staking} - -Mnyororo wa Kioleza utaingiza [uthibitisho-wa-hisa](/developers/docs/consensus-mechanisms/pos/) kwenye Ethereum. Hii ndio njia mpya ya wewe kusaidia Ethereum kua salama. Ifikirie kama faida kw jamii ambayo itafanya Ethereum kua na afya na kukutenegenezea hela zaidi wakati wa mchakato. Kiuhalisia, itahusisha wewe kuweka hisa za ETH ili kuamsha programu. Kama mthibitishaji utafanya mchakato wa shughuli za pesa na utaunda vitalu vipya kwenye mnyororo. - -Kuweka hisa na kua mt hibitishaji ni rahisi kuliko [kuchimba](/developers/docs/mining/)(jinsi ambavyo mtandao ni saklama kwa sasa). Mwishowe hii inamatumaini itasaidia Ethereum kua salama zaidi. Jinsi watu wengi wanavyoshiriki katika mtandao, ndivyo unavyozodi kujitegemea na salama kutoka kwa shambulio litakalokuja. - - -Kama ungependa kua mthibitishaji na kusaidia kulinda mnyororo wa Kioleza, jifunze zaidi jinsi ya kuweka hisa. - - -Hili pia ni badiliko muhumu kwa ajili ya uboreshaji wa Eth2:[minyororo ya vigae](/roadmap/danksharding/). - -### Maandalizi ya minyororo ya shards {#setting-up-for-shard-chains} - -Baada ya mtandao mkuu kuungana na mnyororo wa Kioleza, Uboreshaji utakaofuata utaanzisha minyororo ya shard kwenda kwenye mtandao wa uthibitisho-wa-hisa. Hizi "shards" zitaongeza nafasi kwenye mtandao na kuendeleza kasi za shughuli kwa kutanua mtandao kufikia minyororo ya vitalu 64. Mnyororo Kioleza ni hatua ya kwanza muhimu katika uanzilishi wa minyororo ya shard, hii ni kwasababu inahitaji hisa ili kufanya kazi kwa usalama. - -Mwishowe mnyororo Kioleza utakua na wajibu wa kugawa ruhusa kwa wanahisa bila mpangilio ili kuthibitisha minyororo ya vigae. Hii ni funguo ya kuweka ugumu kwa wanahisa ili wasiungane na kuteka nyara shard. Vizuri basi, hii inamaanisha [wanachini ya 1 katika nafasi trilioni](https://medium.com/@chihchengliang/minimum-committee-size-explained-67047111fa20). - -## Mahusiano kati ya visasisho {#relationship-between-upgrades} - -Visasisho vyote vya Eth2 vinahusiana kwa kiasi fulani. Basi hebu tukumbushe jinsi mnyororo wa Beacon(Kioleza) unavyoathiri visasisho vingine. - -### Mtandao mkuu na mnyororo Kioleza {#mainnet-and-beacon-chain} - -Mnyororo Kioleza, mwanzoni, itakuwa imetengana na Mtandao mkuu wa Ethereum tunaotumia leo hii. Lakini mwishowe vitaunganishwa. Mpango ni "kuunganisha" Mtandao Mkuu kwenye mfumo wa uthibitisho-wa-hisa amabao Mnyororo Kioleza unaudhibiti na kuuratibu. - - - Unganisha - - -### Vigae na Mnyororo Kioleza {#shards-and-beacon-chain} - -Minyororo ya Vigae itakua salama kuingia katika ikolojia ya Ethereum pale tu utaratibu wa makubaliano kwenye uthibitisho-wa-hisa utakapochukua nafasi. Mnyororo Kioleza utaanzisha hisa, ikitengeneza njia ili uboreshwaji wa mnyororo-kigae ufuate. - - - Minyororo ya Kigae - - - - -## Ingiliana na Mnyororo Kioleza {#interact-with-beacon-chain} - - diff --git a/src/content/translations/sw/roadmap/merge/index.md b/src/content/translations/sw/roadmap/merge/index.md deleted file mode 100644 index 9f46cdd2555..00000000000 --- a/src/content/translations/sw/roadmap/merge/index.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: Muungano -description: Jifunze kuhusu muunganiko - ambapo mtandao mkuu wa Etheream utakapoungana na Mnyororo Kioleza ulioratibu mfumo wa uthibitisho-wa-hisa. -lang: sw -template: upgrade -image: ../../../../../assets/upgrades/merge.png -summaryPoint1: Hatimaye Ethereum ya sasa itafanya "muungano" na mfumo wa uthibitisho-wa-hisa wa mnyororo kioleza. -summaryPoint2: Hii itaweka alama ya kuhitumu kwa Ethereum ya uthibitisho-wa-kazi, na mpito mzima kwenda kwenye uthibitisho-wa-hisa. -summaryPoint3: Hii imepangwa kutangulia utolewaji wa minyororo ya vigae. -summaryPoint4: Kabla tuliita hii hatua kama "utiaji nanga" ---- - - - Sasisho hili linawakilisha mabadiliko rasmi kuwa makubaliano ya uthibitisho-wa-hisa. Hii inaondoa mahitaji ya umeme wenye nguvu wakati wa uchimbaji, na badala yake italinda mtandao kwa kutumia ether iliopo. Hatua ya kusisimua kweli katika kutambua maono ya Eth2 - inayoweza kubadilika zaidi, yenye usalama na endelevu. - - -## Muunganisho ni nini? {#what-is-the-docking} - -Ni muhimu kukumbuka kwamba mwanzoni, [Mnyororo Kioleza](/roadmap/beacon-chain/)ulitenganishwa na [Mtandao Mkuu](/glossary/#mainnet) wakati wa usafirishaji - mtandao tunaoutumia leo hii. Mtandao mkuu wa Ethereum utaendelea kulindwa na [uthibitisho-wa-kazi](/developers/docs/consensus-mechanisms/pow/), hata pale Myororo Kioleza utakapofanya kazi sambamba uklitumia [uthibitisho-wa-hisa](/developers/docs/consensus-mechanisms/pos/). Muunganisho ni pale mifumo hii miwili itakapokuwa pamoja. - -Fikiria kwamba Ethereum ni chombo cha anga kilichotayari kusafiri katikati ya nyota mablimbali. Pamoja na Mnyororo wa Kioleza jamii imeunda injini mpya na ganda ngumu. Wakati ukifika, meli ya sasa itapanda gati na mfumo huu mpya, ikiungana kuwa meli moja, tayari kuweka miaka mingine mizito na kuchukua ulimwengu. - -## Kuunganika na Mtandao Mkuu {#docking-mainnet} - -Wkati iko tayari, Mtandao Mkuu wa Ethereum "itaungana" na Mnyororo Kioleza, kisha kitakuwa kipande chake kinachojitegemea kinachotumia uthibitisho-wa-hisa bala ya [uthibitisho-wa-kazi](/developers/docs/consensus-mechanisms/pow/). - -Mtandao Mkuu utaleta uwezo wa kuendesha mikataba mahiri kwenye mfumo wa uthibitisho-wa-hisa, pamoja na historia kamili na hali ya sasa ya Ethereum, kuhakikisha kuwa mabadiliko ni laini kwa wamiliki na watumiaji wote wa ETH. - -## Baada ya muunganisho {#after-the-merge} - -Hii itaashiria kumalizika kwa uthibitisho-wa-kazi kwa Ethereum na kuanza enzi ya Ethereum endelevu zaidi, rafiki kwa ikolojia ya mazingira. Kwa wakati huu Ethereum itakuwa hatua moja karibu na kufikia kiwango kamili, usalama na uendelevu ulioainishwa katika [Maono ya Ethereum](/roadmap/vision/). - -Ni muhimu kutambua kuwa lengo la utekelezaji wa unganisho ni urahisishaji ili kuharakisha mabadiliko kutoka kwa uthibitisho-wa-kazi hadi uthibitisho-wa-hisa. Waendelezaji wanazingatia juhudi zao kwenye mpito huu, na kupunguza huduma zingine ambazo zinaweza kuchelewesha lengo hili. - -** Hii inamaanisha huduma chache, kama vile uwezo wa kutoa ETH iliyodumu, italazimika kusubiri kwa muda mrefu baada ya muunganiko kukamilika. ** Mipango ni pamoja na "usafishaji" wa baada ya kuungana sasisha kushughulikia huduma hizi, ambazo zinatarajiwa kutokea mapema sana baada ya unganisho kukamilika. - -## Mahusiano kati ya visasisho {#relationship-between-upgrades} - -Visasisho vyote vya Eth2 vinahusiana kwa kiasi fulani. Kwahio tukumbushie jinsi muungano huu unavyohusiana na visasisho vingine. - -### Muungano na Mnyororo Kioleza {#docking-and-beacon-chain} - -Pale tu muungano utakapotokea, wamililiki wa hisa watapewa mamlaka ya kuthibitisha Mtandao Mkuu wa Ethereum. [Uchimbaji](/developers/docs/consensus-mechanisms/pow/mining/)hautahitajika tena kwa hivyo wachimbaji watawekeza mapato yao kwa kusimama katika mfumo mpya wa uthibitisho-wa-hisa. - - - Beacon chain - - -### Muungano na usafi wa baada ya kuungana {#merge-and-post-merge-cleanup} - -Mara tu baada ya muungano, baadhi ya huduma kama vile kutoa ETH iliyodumu, hazitakua zinafanya kazi. Hizi zimepangwa kwa sasisho tofauti kufuata muda mfupi baada ya kuungana. - -Pata habari mpya katika [Kurasa za Utafiti na Maendeleo EF](https://blog.ethereum.org/category/research-and-development/). Kwa wale wanaotamani kujua, jifunze zaidi kuhusu [Nini Kitatokea Baada Ya Muungano](https://youtu.be/7ggwLccuN5s?t=101), iliyowasilishwa na Vitalik katika hafla ya Aprili 2021 ETH-Ulimwenguni. - -### Muungano na minyororo ya vigae {#docking-and-shard-chains} - -Hapo awali, mpango huo ulikuwa ukifanya kazi kwenye minyororo iliyokatwa kabla ya kuungana - kushughulikia hali ya ubadilikaji. Walakini, na kuongezeka kwa [suluhisho la kuongeza safu ya 2](/developers/docs/scaling/#layer-2-scaling), kipaumbele kimehamia kwenye kubadilisha uthibitisho-wa-kazi kuwa uthibitisho-wa-hisa kupitia muungano. - -Hii itakuwa tathmini inayoendelea kutoka kwa jamii juu ya hitaji la raundi nyingi za vipande vya minyororo ili kuruhusu uendelevu usio na mwisho. - - - Vipande vya minyororo - - -## Soma zaidi {#read-more} - - diff --git a/src/content/translations/tr/community/support/index.md b/src/content/translations/tr/community/support/index.md deleted file mode 100644 index 78c075111cf..00000000000 --- a/src/content/translations/tr/community/support/index.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -title: Ethereum destek -description: Ethereum ekosisteminde destek alın. -lang: tr ---- - -# Ethereum destek {#support} - -## Resmi Ethereum destek {#official-support} - -Resmi Ethereum desteği mi arıyorsunuz? Bilmeniz gereken ilk şey, Ethereum'un merkeziyetsiz olduğudur. Bu, hiçbir merkezi organizasyon, kuruluş veya kişinin Ethereum'a sahip olmadığı ve bu nedenle resmi destek kanallarının bulunmadığı anlamına gelir. - -Ethereum'un merkeziyetsiz yapısını anlamak çok önemlidir çünkü Ethereum için resmi destek olduğunu iddia eden herkes muhtemelen sizi dolandırmaya çalışıyordur! Dolandırıcılara karşı en iyi koruma, kendinizi eğitmek ve güvenliği ciddiye almaktır. - - - Ethereum güvenliği ve dolandırıcılık önleme - - - - Ethereum'un temellerini öğrenin - - -Resmi desteğin olmamasına rağmen, Ethereum ekosistemindeki birçok grup, topluluk ve proje yardımcı olmaktan mutluluk duyar ve bu sayfada birçok faydalı bilgi ve kaynak bulabilirsiniz. Başka sorularınız mı var? [ethereum.org Discord](/discord/)'una katılın, yardım etmeye çalışacağız. - -## Cüzdan desteği {#wallet-support} - -Cüzdanınızla ilgili sorun mu yaşıyorsunuz? Çoğu cüzdan, aşağıdakilere yardımcı olabilecek özel destek ekiplerine sahiptir: - -- [MetaMask](https://metamask.zendesk.com/hc/) -- [Argent](https://support.argent.xyz/hc/) -- [MyEtherWallet](https://help.myetherwallet.com/) - -_Bu kapsamlı bir liste değildir. Belirli bir cüzdan için destek bulma konusunda yardıma mı ihtiyacınız var? [ethereum.org Discord](https://discord.gg/ethereum-org)'una katılın, yardım etmeye çalışacağız._ - -Ethereum cüzdanı mı arıyorsunuz? [Ethereum cüzdanlarının tam listesini keşfedin](/wallets/find-wallet/). - -## Dapp geliştirmek {#building-support} - -Geliştirme zor olabilir. İşte size yardımcı olmaktan mutluluk duyan deneyimli Ethereum geliştiricileri bulunan geliştirme odaklı bazı alanlar. - -- [Alchemy University](https://university.alchemy.com/#starter_code) -- [CryptoDevs Discord'u](https://discord.gg/Z9TA39m8Yu) -- [Ethereum StackExchange](https://ethereum.stackexchange.com/) -- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) -- [Web3 University](https://www.web3.university/) -- [LearnWeb3](https://discord.com/invite/learnweb3) - -[Ethereum geliştirici kaynakları](/developers/) bölümümüzde de belgelere ve geliştirme kılavuzlarına ulaşabilirsiniz. - -### Araçlandırma {#dapp-tooling} - -Sorunuz belirli bir araç, proje veya kütüphane ile mi ilgili? Çoğu projede sizi desteklemeye adanmış sohbet sunucuları veya forumlar bulunur. - -İşte bazı popüler örnekler: - -- [Solidity](https://gitter.im/ethereum/solidity/) -- [ethers.js](https://discord.gg/6jyGVDK6Jx) -- [web3.js](https://discord.gg/GsABYQu4sC) -- [Hardhat](https://discord.gg/xtrMGhmbfZ) -- [Truffle](https://discord.gg/8uKcsccEYE) -- [Alchemy](http://alchemy.com/discord) -- [Tenderly](https://discord.gg/fBvDJYR) - -## Bir düğüm çalıştırma {#node-support} - -Bir düğüm veya doğrulayıcı çalıştırıyorsanız, başlamanıza yardımcı olmaya adanmış bazı toplulukları burada bulabilirsiniz. - -- [EthStaker Discord'u](https://discord.io/ethstaker) -- [EthStaker Reddit'i](https://www.reddit.com/r/ethstaker) - -Ethereum istemcileri geliştiren ekiplerin çoğu, destek alabileceğiniz ve soru sorabileceğiniz özel, herkese açık alanlara da sahiptir. - -### Yürütme istemcileri {#execution-clients} - -- [Geth](https://discord.gg/FqDzupGyYf) -- [Nethermind](https://discord.gg/YJx3pm8z5C) -- [Besu](https://discord.gg/p8djYngzKN) -- [Erigon](https://github.com/ledgerwatch/erigon/issues) - -### Mutabakat istemcileri {#consensus-clients} - -- [Prysm](https://discord.gg/prysmaticlabs) -- [Nimbus](https://discord.gg/nSmEH3qgFv) -- [Lighthouse](https://discord.gg/cyAszAh) -- [Teku](https://discord.gg/7hPv2T6) -- [Lodestar](https://discord.gg/aMxzVcr) - -Ayrıca [burada bir düğümün nasıl çalıştırılacağını öğrenebilirsiniz](/developers/docs/nodes-and-clients/run-a-node/). - -## Sıkça sorulan sorular {#faq} - -#### ETH'yi yanlış cüzdana gönderdim {#wrong-wallet} - -Ethereum'da gönderilen bir işlem geri alınamaz. Ne yazık ki, ETH'yi yanlış cüzdana gönderdiyseniz bunu geri almanın bir yolu yoktur. Hiçbir merkezi organizasyon, kuruluş veya kişi Ethereum'a sahip değildir, bu da hiç kimsenin işlemleri tersine çeviremeyeceği anlamına gelir. Bu nedenle işlemlerinizi göndermeden önce her zaman iki kez kontrol etmeniz çok önemlidir. - -#### Ethereum çekilişimi nasıl talep edebilirim? {#giveaway-scam} - -Ethereum çekilişleri, ETH'nizi çalmak için tasarlanmış dolandırıcılıklardır. Gerçek olamayacak kadar iyi görünen tekliflere kapılmayın. Bir çekiliş adresine ETH gönderirseniz, hem bir çekilişe katılmazsınız hem de paranızı geri alamazsınız. - -[Dolandırıcılığı önleme hakkında daha fazla bilgi](/security/#common-scams) - -#### İşlemim sıkıştı {#stuck-transaction} - -Ağ talebi nedeniyle gerekenden daha düşük bir işlem ücreti gönderdiyseniz, Ethereum'daki işlemler bazen sıkışabilir. Birçok cüzdan, işleme izin vermek için aynı işlemi daha yüksek bir ücretle yeniden gönderme seçeneği sunar. Alternatif olarak, kendi adresinize bir işlem göndererek ve bekleyen işlemle aynı nonce değerini kullanarak bekleyen bir işlemi iptal edebilirsiniz. - -[MetaMask'te bekleyen bir işlem nasıl hızlandırılır veya iptal edilir](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) - -[Bekleyen Ethereum işlemleri nasıl iptal edilir](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) - -#### Ethereum madenciliği nasıl yapılır? {#mining-ethereum} - -Ethereum madenciliği artık mümkün değildir. Ethereum iş isoatından hisse ispatına geçtiğinde madencilik kapatılmıştı. Artık madenciler yerine Ethereum'un doğrulayıcıları var. Doğrulayıcılar, ağın güvenliğini sağlamak için ETH'yi hisseler ve hisseleme ödülleri alır. - -#### Nasıl bir paydaş/doğrulayıcı olabilirim? {#become-validator} - -Doğrulayıcı olmak için Ethereum para yatırma sözleşmesine 32 ETH yatırmanız ve bir doğrulayıcı düğümü kurmanız gerekir. [Hisseleme sayfalarımızda](/staking) ve [hisseleme başlama noktasında](https://launchpad.ethereum.org/) daha fazla bilgi mevcuttur. diff --git a/src/content/translations/tr/contributing/translation-program/translators-guide/index.md b/src/content/translations/tr/contributing/translation-program/translators-guide/index.md deleted file mode 100644 index 60ca16b5dee..00000000000 --- a/src/content/translations/tr/contributing/translation-program/translators-guide/index.md +++ /dev/null @@ -1,293 +0,0 @@ ---- -title: Çevirmen rehberi -lang: tr -description: Ethereum.org çevirmenleri için talimatlar ve ipuçları ---- - -# Ethereum.org Çeviri Stili Rehberi {#style-guide} - -Ethereum.org çeviri stili rehberi, web sitesini yerelleştirmemize yardımcı olan çevirmenler için en önemli yönergelerden, talimatlardan ve ipuçlarından bazılarını içerir. - -Bu belge, genel bir rehber görevi görür ve herhangi bir dile özgü değildir. - -Herhangi bir sorunuz, öneriniz veya geri bildiriminiz varsa lütfen bize translations@ethereum.org adresinden bize ulaşın, Crowdin'de @ethdotorg'a bir mesaj gönderin veya #translations kanalından bize mesaj gönderebileceğiniz veya ekip üyelerinden herhangi birine ulaşabileceğiniz [Discord](https://discord.gg/ethereum-org)'umuza katılın. - -### Crowdin kullanma {#using-crowdin} - -[Çeviri Programı sayfasında](/contributing/translation-program/#how-to-translate) Crowdin'de projeye nasıl katılacağınıza ve Crowdin çevrimiçi düzenleyicisinin nasıl kullanılacağına ilişkin temel talimatları bulabilirsiniz. - -Crowdin hakkında daha fazla bilgi edinmek ve gelişmiş özelliklerinden bazılarını kullanmak istiyorsanız, [Crowdin bilgi bankası](https://support.crowdin.com/online-editor/) birçok kapsamlı kılavuz ve tüm Crowdin işlevlerine genel bakış içerir. - -### Mesajın özünü yakalamak {#capturing-the-essence} - -Ethereum.org içeriğini çevirirken, kelimenin tam anlamıyla çeviri yapmaktan kaçının. - -Çevirilerin, mesajın özünü yakalaması önemlidir. Bu, belirli ifadeleri yeniden ifade etmek veya içeriği kelimesi kelimesine tercüme etmek yerine açıklayıcı çeviriler kullanmak anlamına gelebilir. - -Farklı dillerin farklı gramer kuralları, kuralları ve kelime sırası vardır. Çeviri yaparken, zayıf cümle yapısına ve okunabilirliğe yol açabileceği için lütfen cümlelerin hedef dillerde nasıl yapılandırıldığına dikkat edin ve İngilizce kaynağı kelimenin tam anlamıyla çevirmekten kaçının. - -Kaynak metni kelimesi kelimesine tercüme etmek yerine, tüm cümleyi okumanız ve onu hedef dilin kurallarına uyacak şekilde uyarlamanız tavsiye edilir. - -### Resmi ve günlük dil {#formal-vs-informal} - -Her zaman, kibar ve tüm ziyaretçiler için uygun olan resmi hitap biçimini kullanırız. - -Resmi hitap biçimini kullanmak, günlük veya saldırgan görünmekten kaçınmamızı sağlar ve ziyaretçinin yaşı ve cinsiyeti ne olursa olsun işe yarar. - -Hint-Avrupa ve Afro-Asya dillerinin çoğu, eril ve dişil kelimeler arasında ayrım yapan cinsiyete özgü ikinci şahıs zamirlerini kullanır. Kullanıcıya hitap ederken veya iyelik zamirlerini kullanırken, resmi hitap şekli genellikle nasıl tanımlandıklarına bakılmaksızın uygulanabilir ve tutarlı olduğundan, ziyaretçinin cinsiyetini varsaymaktan kaçınabiliriz. - -### Basit ve net olan kelime hazinesi ve anlam {#simple-vocabulary} - -Amacımız, web sitesindeki içeriği mümkün olduğunca çok kişi için anlaşılır kılmaktır. - -Çoğu durumda bu, kolayca anlaşılabilir kısa ve basit kelimeler kullanılarak kolayca başarılabilir. Kendi dilinizde aynı anlama sahip belirli bir kelimenin birden fazla olası çevirisi varsa, en iyi seçenek çoğu zaman anlamı açıkça yansıtan en kısa kelimedir. - -### Yazım sistemi {#writing-system} - -Ethereum.org, Latince'ye alternatif yazma sistemleri (veya komut dosyaları yazma) kullanarak birçok dilde kullanılabilir. - -İçeriğin tamamı dilinize uygun yazı sistemi kullanılarak çevrilmeli ve Latin karakterleri kullanılarak yazılmış herhangi bir kelime içermemelidir. - -İçeriği çevirirken çevirilerin tutarlı olmasına ve Latince karakter içermemesine dikkat etmelisiniz. - -Yaygın bir yanılgı, Ethereum'un her zaman Latince yazılması gerektiğidir. Bu çoğunlukla yanlıştır, lütfen kendi dilinize özgü Ethereum yazımını kullanın (örn. Çince'de 以太坊, Arapça'da إيثيريوم, vb.). - -**Yukarıdakiler, özel isimlerin kural olarak tercüme edilmemesi gereken diller için geçerli değildir.** - -### Sayfa meta verilerini çevirme {#translating-metadata} - -Bazı sayfalar sayfada "başlık", "dil", "açıklama", "kenar çubuğu" vb. gibi meta veriler içerir. - -Crowdin'e yeni sayfalar yüklerken çevirmenlerin asla çevirmemesi gereken içeriği gizleriz, bu da çevirmenlerin Crowdin'de görebildiği tüm meta verilerin çevrilmesi gerektiği anlamına gelir. - -Lütfen kaynak metnin "en" olduğu dizeleri çevirirken özellikle dikkatli olun. Bu, sayfanın mevcut olduğu dili temsil eder ve [dilinizin ISO dil koduna çevrilmesi gerekir](https://www.andiamo.co.uk/resources/iso-language-codes/). Bu dizgiler her zaman hedef dile özgü yazı dizisi değil, Latin karakterler kullanılarak çevrilmelidir. - -Hangi dil kodunu kullanacağınızdan emin değilseniz, Crowdin'deki çeviri belleğini kontrol edebilir veya Crowdin çevrimiçi düzenleyicideki sayfanın URL'sinde kendi dilinizin dil kodunu bulabilirsiniz. - -En çok konuşulan diller için bazı dil kodları örnekleri: - -- Arapça - ar -- Çince (Basitleştirilmiş) - zh -- Fransızca - fr -- Hintçe - hi -- İspanyolca - es - -### Harici makalelerin başlıkları {#external-articles} - -Bazı dizgiler, harici makalelerin başlıklarını içerir. Geliştirici belgesi sayfalarımızın çoğu, daha fazla okuma için harici makalelere yönlendiren bağlantılar içerir. Sayfayı kendi dillerinde görüntüleyen ziyaretçiler için daha tutarlı bir kullanıcı deneyimi sağlamak için makalenin dilinden bağımsız olarak makale başlıklarını içeren dizgilerin çevrilmesi gerekir. - -Bu dizgilerin çevirmenler için nasıl göründüğüne ve bunların nasıl tanımlanacağına ilişkin bazı örnekleri aşağıda bulabilirsiniz (makalelere yönlendiren bağlantılar çoğunlukla bu sayfaların alt kısmında, "Daha fazla bilgi" bölümünde bulunabilir): - -![Sidebar.png'deki makale başlıkları](./article-titles-in-sidebar.png) ![editor.png'deki makale başlıkları](./article-titles-in-editor.png) - -### Crowdin uyarıları {#crowdin-warnings} - -Crowdin, çevirmenleri hata yapmak üzereyken uyaran yerleşik bir özelliğe sahiptir. Çevrilmemesi gereken öğeleri çevirirseniz, kaynaktan bir etiket eklemeyi, birkaç ardışık boşluk eklemeyi, son noktalama işaretlerini koymayı vb. unutursanız, Crowdin çevirinizi kaydetmeden önce sizi bu konuda otomatik olarak uyaracaktır. Bunun gibi bir uyarı görürseniz lütfen geri dönün ve önerilen çeviriyi tekrar kontrol edin. - -**Bu uyarıları asla göz ardı etmeyin, çünkü bunlar genellikle bir şeylerin yanlış olduğu veya çevirinin kaynak metnin önemli bir bölümünün eksik olduğu anlamına gelir.** - -Çevirinize bir etiket eklemeyi unuttuğunuzda verilen bir Crowdin uyarısı örneği: ![Bir Crowdin uyarısı örneği](./crowdin-warning-example.png) - -### Etiketler ve kod parçacıkları hakkında yapılacaklar {#dealing-with-tags} - -Kaynak içeriğin çoğu, Crowdin düzenleyicisinde sarı renkle vurgulanan etiketler ve değişkenler içerir. Bunlar, farklı fonksiyonlar gerçekleştirir ve bunlara doğru bir şekilde yaklaşılmalıdır. - -**Crowdin ayarları** - -Etiket yönetimini kolaylaştırmak ve onları doğrudan kaynağından kopyalamak için Crowdin düzenleyicisinden ayarlarınızı değiştirmenizi öneririz. - -1. Açık ayarlar ![Düzenleyicide ayarları açma](./editor-settings.png) - -2. "HTML etiketlerini görüntüleme" bölümüne inin - -3. "Sakla" öğesini seçin ![Lütfen "Gizle" öğesini seçin](./hide-tags.png) - -4. "Kaydet" öğesine tıklayın - -Bu seçeneği seçtikten sonra tüm etiket metni artık gösterilmez ve onun yerine bir sayı gösterilir. Tercüme yaparken bu etikete tıkladığınızda, aynı etiket tercüme alanına doğrudan kopyalanır. - -**Bağlantılar** - -Ethereum.org veya diğer web sitelerindeki sayfalara yönlendiren tam bağlantılar görebilirsiniz. - -Bunlar kaynakla aynı olmalı; değiştirilmemeli veya tercüme edilmemelidir. Bir bağlantıyı çevirirseniz veya hatta ters eğik çizgi (/) gibi sadece bir kısmını kaldırarak herhangi bir şekilde değiştirirseniz, çalışmayan ve kullanılamaz bağlantılar ortaya çıkacaktır. - -Bağlantılar için yapılacak en iyi şey, üzerlerine tıklayarak veya "Kaynağı Kopyala" düğmesini (Alt+C) kullanarak onları doğrudan kaynaktan kopyalamaktır. - -![Link örneği.png](./example-of-link.png) - -Bağlantılar, kaynak metinde etiketler biçiminde de görünür (örn. <0> ). Etiketin üzerine geldiğinizde, düzenleyici tam içeriğini gösterir: Bazen bu etiketler bağlantıları temsil eder. - -Bağlantıları kaynaktan kopyalamak ve sıralarını değiştirmemek çok önemlidir. - -Etiketlerin sırası değiştirilirse temsil ettikleri bağlantı çalışmaz. - -![Etiketlerin içinde link örnekleri.png](./example-of-links-inside-tags.png) - -**Etiketler ve değişkenler** - -Kaynak metin, her zaman kaynaktan kopyalanması ve asla değiştirilmemesi gereken birçok farklı türde etiket içerir. Yukarıdakine benzer şekilde, bu etiketlerin çevirideki sırası da kaynakla aynı kalmalıdır. - -Etiketler her zaman bir açma ve kapatma etiketi içerir. Çoğu durumda, açma ve kapatma etiketleri arasındaki metin çevrilmelidir. - -Örnek: ``Decentralized`` - -`` - _Metni kalın yapan açma etiketi_ - -Decentralized - _Çevrilebilir metin_ - -`` - _Kapatma etiketi_ - -!["strong" etiketlerinin örneği.png](./example-of-strong-tags.png) - -Kod parçacıkları, çevrilmemesi gereken kodlar içerdiğinden diğer etiketlerden biraz farklı bir şekilde ele alınmalıdır. - -Örnek: ``nonce`` - -`` - _Bir kod parçacığı içeren açma etiketi_ - -nonce - _Çevrilmemesi gereken metin_ - -`` - _Kapatma etiketi_ - -![Kod parçacıklarının örneği.png](./example-of-code-snippets.png) - -Kaynak metin, yalnızca sayıları içeren kısaltılmış etiketler de içerir; yani, bunların fonksiyonu hemen anlaşılabilir olmayabilir. Tam olarak hangi fonksiyonu yerine getirdiklerini görmek için imleci bu etiketlerin üzerine götürebilirsiniz. - -Aşağıdaki örnekte, imleç üzerine götürüldüğünde <0> etiketin `` öğesini temsil ettiğini ve bir kod parçacığı içerdiğini görebilirsiniz; bu nedenle, bu etiketlerin içindeki içerik çevrilmemelidir. - -![Belirsiz etiketlerin örneği.png](./example-of-ambiguous-tags.png) - -### Kısa vs. eksiksiz hâller/kısatmalar {#short-vs-full-forms} - -Web sitesinde kullanılan birçok kısaltma vardır, örn. dapps, NFT, DAO, DeFi vb. Bu kısaltmalar genellikle İngilizce olarak kullanılır ve web sitesini ziyaret edenlerin çoğu bunlara aşinadır. - -Genellikle diğer dillerde yerleşik çevirileri olmadığı için bu ve benzeri terimleri ele almanın en iyi yolu, tam hâlinin açıklayıcı bir çevirisini sağlamak ve İngilizce kısaltmasını parantez içinde eklemektir. - -Çoğu insan bunlara aşina olmayacağından ve yerelleştirilmiş hâlleri çoğu ziyaretçi için pek anlamlı olmayacağından bu kısaltmaları çevirmeyin. - -Dapps kısaltmasının nasıl çevrilmesi gerektiğine dair örnek: - -- Merkeziyetsiz uygulamalar (dapps) → _Tercüme edilmiş tam metin (parantez içinde İngilizce kısaltması)_ - -### Yerleşmiş çevirileri olmayan terimler {#terms-without-established-translations} - -Bazı terimlerin diğer dillerde yerleşmiş çevirileri bulunmayabilir ve bu terimler, orijinal İngilizce hâliyle yaygın olarak biliniyor olabilir. Proof-of-work, proof-of-stake, Beacon Chain, staking vb. nispeten yeni olan terimler buna örnek gösterilebilir. - -İngilizce versiyonu diğer dillerde de yaygın olarak kullanıldığından bu terimleri çevirmek kulağa doğal gelmese de çevrilmeleri şiddetle tavsiye edilir. - -Bunları çevirirken yaratıcı ve açıklayıcı çeviriler kullanmaktan çekinmeyin veya gerekirse düz bir şekilde tam anlamıyla çevirin. - -**Bazı terimleri İngilizce bırakmak yerine çoğu terimin çevrilmesinin nedeni, Ethereum ve ilgili teknolojileri daha fazla insan kullanmaya başladıkça, bu yeni terminolojinin gelecekte daha yaygın hâle geleceği gerçeğidir. Dünyanın her yerinden daha fazla insanı bu alana dahil etmek istiyorsak, kendimiz oluşturmamız gerekse bile mümkün olduğunca çok dilde anlaşılır terminoloji sağlamamız gerekir.** - -### Düğmeler ve CTA'lar {#buttons-and-ctas} - -Web sitesi, diğer içeriklerden farklı şekilde çevrilmesi gereken çok sayıda düğme içerir. - -Düğme metni, çoğu dizeyle bağlantılı bağlam ekran görüntülerini görüntüleyerek veya düzenleyicideki "düğme" ifadesini içeren bağlamı kontrol ederek anlaşılabilir. - -Biçimlendirme uyumsuzluklarını önlemek için düğmelerin çevirileri mümkün olduğunca kısa olmalıdır. Ek olarak, düğme çevirileri emir kipi hâlinde olmalıdır, yani bir komut veya istek içermelidir. - -![Bir düğme nasıl bulunur.png](./how-to-find-a-button.png) - -### Kapsayıcılık için çevirme {#translating-for-inclusivity} - -Ethereum.org'un ziyaretçileri, dünyanın farklı bölgelerindendir ve farklı geçmişlere sahiptir. Bu nedenle web sitesindeki dil; tarafsız, herkese açık ve kapsayıcı olmalıdır. - -Cinsiyetsiz ifadeler bunun önemli bir parçasıdır. Bu, resmi hitap biçimini kullanarak ve çevirilerde cinsiyete özgü sözcüklerden kaçınarak kolayca başarılabilir. - -Kapsayıcılığın başka bir biçimi; herhangi bir ülkeye, ırka veya bölgeye özgü olmayan küresel bir kullanıcı kitlesine yönelik çeviri yapmaya çalışmaktır. - -Son olarak üslup, tüm kullanıcılara ve her yaşa uygun olmalıdır. - -## Dile özel çeviriler {#language-specific-translations} - -Çeviri yaparken kaynaktan kopyalamak yerine kendi dilinizde kullanılan dil bilgisi kurallarına, kabullere ve biçimlendirmeye uymak önemlidir. Kaynak metin, İngilizce dil bilgisi kural ve kabullerine uygundur; bu kural ve kabuller, diğer birçok dil için geçerli değildir. - -Dilinizin kurallarını bilmeli ve buna göre çeviri yapmalısınız. Yardıma ihtiyacınız olduğunda bize ulaşırsanız ve bu öğelerin kendi dilinizde nasıl kullanılması gerektiğine dair bazı kaynaklar bulmanıza yardımcı olabiliriz. - -Özellikle nelere dikkat edilmesi gerektiğine dair bazı örnekler: - -### Noktalama, düzenleme {#punctuation-and-formatting} - -**Büyük/Küçük Harf** - -- Farklı dillerde büyük/küçük harf kullanımında büyük farklılıklar bulunur. -- İngilizce'de; başlıklarda ve adlarda, aylarda ve günlerde, dil adlarında, tatillerde vb. tüm sözcüklerin büyük harfle yazılması yaygındır. Diğer birçok dilde, farklı büyük harf kullanım kurallarına sahip oldukları için bu durum dil bilgisi açısından yanlıştır. -- Bazı dillerde, İngilizce'de büyük harfle yazılmayan şahıs zamirlerinin, isimlerin ve belirli sıfatların büyük harfle yazılmasıyla ilgili kurallar da vardır. - -**Boşluklar** - -- İmla kuralları, her dil için boşluk kullanımını tanımlar. Boşluklar her yerde kullanıldığından, bu kurallar en belirgin olanlardan bazılarıdır ve boşluklar en yanlış çevrilen öğelerden bazılarıdır. -- İngilizce ve diğer diller arasındaki boşluk bırakma ilgili bazı yaygın farklılıklar: - - Ölçü birimlerinden ve para birimlerinden önceki boşluk (ör. USD, EUR, kB, MB) - - Derece işaretlerinden önceki boşluk (örneğin, °C, ℉) - - Bazı noktalama işaretlerinden önce boşluk, özellikle üç nokta (…) - - Taksimlerden (/) önce ve sonra boşluk - -**Listeler** - -- Her dilin liste yazmak için çeşitli ve karmaşık kuralları vardır. Bunlar İngilizceden önemli ölçüde farklı olabilir. -- Bazı dillerde, her yeni satırın ilk kelimesi büyük harfle yazılmalı, bazılarında ise yeni satırlar küçük harflerle başlamalıdır. Ayrıca birçok dilde, her satırın uzunluğuna bağlı olarak, listelerde büyük harf kullanımıyla ilgili farklı kurallar vardır. -- Aynısı satır öğelerinin noktalama işaretleri için de geçerlidir. Listelerdeki son noktalama işaretleri, dile bağlı olarak nokta (**.**), virgül (**,**) veya noktalı virgül (**;**) olabilir. - -**Tırnak işaretleri** - -- Diller birçok farklı tırnak işareti kullanır. İngilizce tırnak işaretlerini kaynaktan basitçe kopyalamak çoğu zaman yanlıştır. -- En yaygın tırnak işareti türlerinden bazıları şunlardır: - - „örnek metin“ - - ‚örnek metin’ - - »örnek metin« - - “örnek metin” - - ‘örnek metin’ - - «örnek metin» - -**Kısa çizgiler ve tireler** - -- İngilizce'de kısa çizgi (-) sözcükleri veya bir sözcüğün farklı bölümlerini birleştirmek için kullanılırken tire (–) bir aralığı veya duraklamayı belirtmek için kullanılır. -- Birçok dilde, dikkat edilmesi gereken kısa çizgi ve tire kullanımı için farklı kurallar vardır. - -### Formatlar {#formats} - -**Sayılar** - -- Farklı dillerde sayıların yazılmasındaki temel fark, ondalık ve binler için kullanılan ayırıcıdır. Binlerce kişi için bu nokta, virgül veya boşluk olabilir. Benzer şekilde, bazı diller ondalık nokta kullanırken, diğerleri ondalık virgül kullanır. - - Büyük sayılara bazı örnekler: - - İngilizce – **1,000.50** - - İspanyolca – **1.000,50** - - Fransızca – **1 000,50** -- Sayıları çevirirken dikkat edilmesi gereken bir diğer önemli nokta da yüzde işaretidir. Farklı şekillerde yazılabilir: **100%**, **100 %** veya **%100**. -- Son olarak, dile bağlı olarak negatif sayılar farklı şekilde görüntülenebilir: -100, 100-, (100) veya [100]. - -**Tarihler** - -- Tarihleri çevirirken, dile bağlı olarak bir takım hususlar ve farklılıklar vardır. Bunlara tarih biçimi, ayırıcı, büyük harf kullanımı ve baştaki sıfırlar dahildir. Tam uzunluktaki ve sayısal tarihler arasında da farklılıklar vardır. - - Farklı tarih biçimlerine bazı örnekler: - - Birleşik Krallık İngilizcesi (gg/aa/yyyy) - 1 Ocak 2022 - - Amerikan İngilizcesi (aa/gg/yyyy) - Ocak 1, 2022 - - Çince (yyyy-aa-gg) – 2022 年 1 月 1 日 - - French (gg/aa/yyyy) – 1er janvier 2022 - - Italian (gg/aa/yyyy) – 1º gennaio 2022 - - German (gg/aa/yyyy) – 1. Ocak 2022 - -**Para birimleri** - -- Farklı biçimler, kurallar ve dönüşümler nedeniyle para birimlerini çevirmek zor olabilir. Genel bir kural olarak, lütfen para birimlerini kaynakla aynı tutun. Okuyucunun yararına parantez içinde yerel para biriminizi ve dönüşümünüzü ekleyebilirsiniz. -- Farklı dillerde para birimleri yazmanın temel farklılıkları arasında sembol yerleşimi, ondalık virgül ve ondalık nokta, boşluk ve kısaltmalar ve semboller yer alır. - - Sembol yerleştirmesi: $100 veya 100$ - - Ondalık virgül ve ondalık nokta: 100,50$ veya 100.50$ - - Boşluklar: $100 veya 100 $ - - Kısaltmalar vs. semboller: 100 $ veya 100 USD - -**Ölçü birimleri** - -- Genel bir kural olarak, lütfen ölçü birimlerini kaynağa uygun şekilde koruyun. Ülkeniz farklı bir sistem kullanıyorsa, dönüştürmeyi parantez içinde ekleyebilirsiniz. -- Ölçü birimlerinin yerelleştirilmesinin yanı sıra, dillerin bu birimlere yaklaşımlarındaki farklılıkları da not etmek önemlidir. Temel fark, dile bağlı olarak farklı olabilen sayı ve birim arasındaki boşluktur. Bunun örnekleri arasında 100 kB'ye karşı 100 kB veya 50ºF'ye karşı 50 ºF yer alır. - -### Sonuç {#conclusion} - -Ethereum.org'u çevirmek, Ethereum'un farklı yönlerini öğrenmek için harika bir fırsattır. - -Çeviri yaparken acele etmemeye çalışın. Rahat olun ve eğlenin! - -Çeviri Programına dahil olduğunuz ve web sitesini daha geniş bir kitleye ulaştırmamıza yardımcı olduğunuz için teşekkür ederiz. Ethereum topluluğu küreseldir ve bunun bir parçası olduğunuz için mutluyuz! diff --git a/src/content/translations/tr/dao/index.md b/src/content/translations/tr/dao/index.md deleted file mode 100644 index 197192233cd..00000000000 --- a/src/content/translations/tr/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: Merkeziyetsiz otonom organizasyonlar (DAO'lar) -description: Ethereum'daki DAO'lara genel bakış -lang: tr -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: Bir teklif üzerinde oy kullanan bir DAO'nun temsili. -summaryPoint1: Merkezi liderliği olmayan üyelere ait topluluklar. -summaryPoint2: İnternette tanımadığnız kişilerle iş birliği yapmanın güvenli bir yolu. -summaryPoint3: Belirli bir amaca para yatırmak için güvenli bir yer. ---- - -## DAO'lar Nedir? {#what-are-daos} - -DAO, müşterek bir görev için çalışan, müşterek olarak sahip olunan, blokzincir tarafından yönetilen bir organizasyondur. - -DAO'lar, fonları veya operasyonları yönetmesi için hayırsever bir lidere güvenmeden dünyanın dört bir yanındaki benzer fikirlere sahip kişilerle çalışmamıza olanak tanır. Burada, fonları canı istediği gibi harcayan bir CEO veya hesapları manipüle edecek bi CFO yok. Bunun yerine, kodda işlenen blok zinciri tabanlı kurallar, kuruluşun nasıl çalıştığını ve fonların nasıl harcandığını tanımlar. - -Grubun onayı olmadan kimsenin erişme otoritesine sahip olmadığı yerleşik hazinelere sahiplerdir. Kararlar, kuruluştaki herkesin söz sahibi olmasını sağlamak için teklifler ve oylamalarla yönetilir ve her şey zincir üzerinde şeffaf bir şekilde gerçekleşir. - -## Neden DAO'lara ihtiyacımız var? {#why-dao} - -Birisiyle finansman ve para içeren bir organizasyon başlatmak, çalıştığınız kişilerle ileri düzeyde güven gerektirir. Ancak yalnızca internette etkileşimde bulunduğunuz birine güvenmek zordur. DAO'larla gruptaki başka kimseye güvenmeniz gerekmez, yalnızca DAO'nun %100 şeffaf ve herkes tarafından doğrulanabilir koduna güvenmeniz gerekir. - -Bu küresel iş birliği ve koordinasyon için birçok yeni fırsat sunar. - -### Bir karşılaştırma {#dao-comparison} - -| DAO | Geleneksel bir organizasyon | -| ------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------- | -| Genelde düz ve tamamen demokratikleştirilmiş. | Genelde hiyerarşik. | -| Herhangi bir değişikliğin uygulanması için üyeler tarafından oylama yapılması gerekli. | Yapısına bağlı olarak, değişiklikler tekil bir partiden istenebilir veya oylama önerilebilir. | -| Oylar toplanır ve sonuç güvenilir bir aracı olmadan otomatik şekilde uygulanır. | Eğer oylamaya izin verildiyse, oylar içeride toplanır ve oylamanın sonucu manuel şekilde idare edilir. | -| Teklif edilen servisler merkezi olmadan ve otomatik bir şekilde idare edilir (örnek olarak hayırseverlik fonları). | İnsan idaresi veya merkezi şekilde kontrol edilen bir otomasyon gerektirir, bu da manipülasyona açıktır. | -| Tüm etkinlikler şeffaftır ve tamamen halka açıktır. | Etkinlikler genelde gizlidir ve tamamı halka açılmaz. | - -### DAO örnekleri {#dao-examples} - -Bunun biraz daha mantıklı olması için, burada bir DAO'yu nasıl kullanabileceğiniz hakkında birkaç örnek mevcut: - -- Hayır kurumu - Dünyanın herhangi bir yerinden bağışları kabul edebilir ve bu bağışların neler için kullanılacağını oylamaya sunabilirsiniz. -- Kolektif mülkiyet – fiziksel veya dijital varlıklar satın alabilir ve üyeler bunların nasıl kullanılacağına oy verebilir. -- Girişimler ve hibeler: Yatırım sermayesini bir araya toplayan ve desteklenecek girişimlere oy veren bir girişim fonu oluşturabilirsiniz. Geri ödenen para daha sonrasında DAO üyeleri arasında yeniden dağıtılabilir. - -## DAO'lar nasıl çalışır? {#how-daos-work} - -Bir DAO'nun bel kemiği, organizasyonun kurallarını tanımlayan ve grubun hazinesini içeren akıllı sözleşmesidir. Sözleşmenin Ethereum'da yayınlandığı andan itibaren kimse oylama olmadan kuralları değiştiremez. Birisi koddaki kurallara veya mantığa uymayan bir şey yapmaya çalışırsa, başarılı olamaz. Ayrıca, hazinenin de akıllı sözleşme tarafından belirlenmesi, kimsenin grubun onayı olmadan parayı harcayamayacağı anlamına gelir. Bu, DAO'ların merkezi bir otoriteye ihtiyacı olmadığı anlamına gelir. Bunun yerine, grup kararları toplu olarak alır ve oylar geçtiğinde ödemeler otomatik olarak yetkilendirilir. - -Bu, akıllı sözleşmelerin Ethereum'da yayınlandıktan sonra kurcalanamaz olmaları sayesinde mümkündür. İnsanlar fark etmeden kodu (yani DAO'ların kurallarını) değiştiremezsiniz çünkü her şey halka açıktır. - - - Akıllı kontratlar hakkında daha fazla bilgi - - -## Ethereum ve DAO'lar {#ethereum-and-daos} - -Ethereum, birkaç nedenden dolayı DAO'lar için mükemmel bir temeldir: - -- Ethereum'un mutabakatı organizasyonların ağa güvenmesini sağlayacak kadar dağıtılmış ve yerleşmiştir. -- Akıllı sözleşme kodu, yayınlandıktan sonra sahipleri tarafından bile düzenlenemez. Bu, DAO'nun yazıldığı kurallar çerçevesinde çalışmasını sağlar. -- Akıllı sözleşmeler fon gönderebilir/alabilir. Bu olmasaydı grup fonlarını yönetmek için güvenilir bir aracıya ihtiyacınız olurdu. -- Ethereum topluluğu, en iyi yöntemlerin ve destek sistemlerinin hızlıca ortaya çıkmasına izin vererek rekabetçi değil; iş birlikçi olduğunu kanıtlamıştır. - -## DAO yönetişimi {#dao-governance} - -Bir DAO'yu yönetirken karar vermeniz gereken birçok husus vardır Mesela oylamaların ve tekliflerin nasıl çalıştığı gibi. - -### Delegasyon {#governance-delegation} - -Delegasyon, temsiliyetçi demokrasinin DAO versiyonu gibidir. Token sahipleri, kendi kendilerini aday gösteren ve protokole hizmet etmeyi ve bilgi sahibi olmayı taahhüt eden kullanıcılara oy yetkisi verir. - -#### Meşhur bir örnek {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) – ENS sahipleri, kendilerini temsil etmeleri için ilgili topluluk üyelerine oylarını devredebilir. - -### Otomatik İşlem yönetişimi {#governance-example} - -Birçok DAO'da, üyelerin çoğunluğu olumlu oy kullanırsa işlemler otomatik olarak yürütülür. - -#### Meşhur bir örnek {#governance-example} - -[Nouns](https://nouns.wtf) – Nouns DAO'da, kurucular tarafından veto edilmediği sürece, bir oy yeter sayısı sağlandığında ve çoğunluk olumlu oy kullandığında bir işlem otomatik olarak yürütülür. - -### Çoklu imzalı yönetişim {#governance-example} - -DAO'ların binlerce oylama üyesi olabilirken, fonlar güvenilir ve genellikle "doxxed" (topluluk tarafından gerçek kimliği bilinen) olan 5-20 aktif topluluk üyesi tarafından paylaşılan bir cüzdanda tutulabilir. Oylamadan sonra, çoklu imza imzalayacılıları, topluluğun isteğini hayata geçirir. - -## DAO yasaları {#dao-laws} - -1977'de Wyoming, girişimcileri koruyan ve sorumluluklarını sınırlayan LLC'yi (Sınırlı Sorumlu Şirket) icat etti. Daha yakın zamanlarda, DAO'lar için yasal statü oluşturan DAO yasasına öncülük ettiler. Şu anda Wyoming, Vermont ve Virgin Adaları bir şekilde DAO yasalarına sahiptir. - -#### Meşhur bir örnek {#law-example} - -[CityDAO](https://citydao.io) – CityDAO, Wyoming'in DAO yasasını kullanarak Yellowstone Milli Parkı yakınında 40 dönümlük arazi satın aldı. - -## DAO üyeliği {#dao-membership} - -DAO üyeliği için farklı modeller bulunmaktadır. Üyelik, oylamanın nasıl işleyeceğini ve DAO'nun diğer önemli kısımlarını belirleyebilir. - -### Token tabanlı üyelik {#token-based-membership} - -Kullanılan token'a bağlı olarak genelde tamamen yetkisizdir. Çoğunlukla bu yönetişim token'ları yetkisiz bir şekilde merkeziyetsiz bir borsada takas edilebilir. Diğerleri ise likidite sağlayarak veya başka bir "iş ispatı" ile kazanılabilir. İki şekilde de sadece token'a sahip olmak oy hakkı sağlar. - -_Tipik olarak geniş merkeziyetsiz protokolleri ve/veya token'ları yönetmek için kullanılır._ - -#### Meşhur bir örnek {#token-example} - -[MakerDAO](https://makerdao.com) – MakerDAO'nun belirteci MKR, merkezi olmayan borsalarda geniş çapta mevcuttur ve herkes Maker protokolünün geleceği üzerinde oylama gücüne sahip olmayı satın alabilir. - -### Hisse tabanlı üyelik {#share-based-membership} - -Hisse tabanlı DAO'lar daha çok yetki içerir ama yine de oldukça açıktırlar. Herhangi bir olası üye, DAO'ya katılmak için bir teklif sunabilir ve genellikle token veya çalışma şeklinde bir miktar değere sahip bir komisyon sunar. Hisseler, direkt oy gücünü ve sahipliğini temsil eder. Üyeler istedikleri zaman hazineden hisselerini ayrılabilirler. - -_Tipik olarak hayır kurumları, işçi kolektifleri ve girişim kulüpleri gibi birbirine bağlı, insan merkezli organizasyonlarda kullanılır. Token'ları ve protokolleri de yönetebilir._ - -#### Meşhur bir örnek {#share-example} - -[MolochDAO](http://molochdao.com/) – MolochDAO, Ethereum projelerini finanse etmeye odaklıdır. Üyelik için bir teklif gerektirirler, bu sayede grup potansiyel imtiyaz sahipleri hakkında bilinçli kararlar vermek için yeterli deneyim ve sermayeye sahip olup olmadığınızı değerlendirebilir. Serbest piyasada bir DAO'ya erişim satın alamazsınız. - -### İtibara dayalı üyelik {#reputation-based-membership} - -İtibar, katılımın kanıtını temsil eder ve DAO'da oy kullanma yetkisi verir. Token veya hisse tabanlı üyeliğin aksine, itibara dayalı DAO'lar mülkiyeti, katkıda bulunanlara devretmez. İtibar satın alınamaz, devredilemez veya başkası tarafından temsil edilemez; DAO üyeleri katılım yoluyla itibar kazanmalıdır. Zincir üzerinde oylama izinsizdir ve potansiyel üyeler, DAO'ya katılmak için serbestçe teklif gönderebilir ve katkıları karşılığında ödül olarak itibar ve token almayı talep edebilir. - -_Protokollerin ve merkeziyetsiz uygulamaların merkeziyetsiz gelişimi ve yönetişimi için kullanılır, ancak aynı zamanda hayır kurumları, işçi kolektifleri, yatırım kulüpleri vb. gibi çeşitli kuruluşlar için de çok uygundur._ - -#### Meşhur bir örnek {#reputation-example} - -[DXdao](https://DXdao.eth.link) – DXdao, 2019'dan beri merkeziyetsiz protokolleri yöneten ve uygulamalar oluşturan küresel bağımsız bir kolektiftir. Fonları koordine etmek ve yönetmek için itibara dayalı yönetişim ve holografik mutabakattan yararlanır, bu da hiç kimsenin geleceğini etkileme yolunu satın alamayacağı anlamına gelir. - -## Bir DAO başlatma veya DAO'ya katılma {#join-start-a-dao} - -### Bir DAO'ya katıl {#join-a-dao} - -- [Ethereum topluluk DAO'ları](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [DAOHaus'un DAO listesi](https://app.daohaus.club/explore) -- [DAO'ların tally.xyz listesi](https://www.tally.xyz) - -### Bir DAO başlatma {#start-a-dao} - -- [DAOHaus ile bir DAO çağırma](https://app.daohaus.club/summon) -- [Tally ile bir Governor DAO başlatma](https://www.tally.xyz/add-a-dao) -- [Aragon tarafından desteklenen bir DAO oluşturma](https://aragon.org/product) -- [Bir koloni başlatma](https://colony.io/) -- [DAOstack'in holografik mutabakatıyla bir DAO oluşturun](https://alchemy.daostack.io/daos/create) - -## Daha fazla okuma {#further-reading} - -### DAO Makaleleri {#dao-articles} - -- [Bir DAO nedir?](https://aragon.org/dao) – [Aragon](https://aragon.org/) -- [DAO El Kitabı](https://daohandbook.xyz) -- [DAO'lar Evi](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) -- [Bir DAO nedir ve amacı nedir?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) -- [DAO Destekli bir Dijital Topluluk Nasıl Başlatılır](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) -- [Bir DAO nedir?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) -- [Holografik Mutabakat Nedir?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) -- [DAO'lar Vitalik'e göre özerk kuruluşlarda ademi merkeziyetçiliğin önemli olduğu şirketler değildir:](https://vitalik.ca/general/2022/09/20/daos.html) -- [DAO'lar, DAC'ler, DA'lar ve Daha Fazlası: Tamamlanmamış Terminoloji Rehberi](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Ethereum Blogu](https://blog.ethereum.org) - -### Videolar {#videos} - -- [Kripto dünyasında DAO nedir?](https://youtu.be/KHm0uUPqmVE) -- [Bir DAO Şehir Kurabilir mi?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/src/content/translations/tr/decentralized-identity/index.md b/src/content/translations/tr/decentralized-identity/index.md deleted file mode 100644 index 610b22454cc..00000000000 --- a/src/content/translations/tr/decentralized-identity/index.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: Merkeziyetsiz kimlik -description: Merkeziyetsiz kimlik nedir ve neden önemlidir? -lang: tr -template: use-cases -emoji: ":id:" -sidebarDepth: 2 -image: ../../../../assets/eth-gif-cat.png -summaryPoint1: Geleneksel kimlik sistemleri, tanımlayıcılarınızın verilmesini, bakımını ve kontrolünü merkezileştirdi. -summaryPoint2: Merkeziyetsiz kimlik, merkezi üçüncü taraflara olan bağımlılığı ortadan kaldırır. -summaryPoint3: Kripto sayesinde, kullanıcılar artık kendi tanımlayıcılarını ve onaylarını yayınlama, tutma ve kontrol etme araçlarına bir kez daha sahipler. ---- - -Kimlik, bugün hayatınızın neredeyse her yönünün temelini oluşturuyor. Çevrimiçi hizmetleri kullanmak, bir banka hesabı açmak, seçimlerde oy kullanmak, mülk satın almak, istihdam sağlamak - bunların tümü kimliğinizi kanıtlamayı gerektirir. - -Bununla birlikte, geleneksel kimlik yönetim sistemleri uzun süredir kimlik tanımlayıcılarınızı ve [tasdiklerinizi](#what-are-attestations) düzenleyen, tutan ve kontrol eden merkezi aracılara dayanmaktadır. Bu, kimlikle ilgili bilgilerinizi kontrol edemeyeceğiniz veya kişisel olarak tanımlanabilir bilgilere (PII) kimin erişebileceğine ve bu tarafların ne kadar erişime sahip olduğuna karar veremeyeceğiniz anlamına gelir. - -Bu sorunları çözmek için Ethereum gibi halka açık blok zincirler üzerine inşa edilmiş merkeziyetsiz kimlik sistemlerimiz var. Merkeziyetsiz kimlik, bireylerin kimlikle ilgili bilgilerini yönetmelerine olanak tanır. Merkeziyetsiz kimlik çözümleriyle, hizmet sağlayıcılar veya hükûmetler gibi merkezi yetkililere güvenmeden tanımlayıcılar oluşturabilir ve tasdiklerinizi _talep edebilir_ ve _tutabilirsiniz._ - -## Kimlik nedir? {#what-is-identity} - -Kimlik, bir bireyin benzersiz özelliklerle tanımlanan benlik duygusu anlamına gelir. Kimlik, bir _birey_, yani ayrı bir insan varlığı anlamına gelir. Kimlik ayrıca bir kuruluş veya otorite gibi diğer insan dışı varlıklara da atıfta bulunabilir. - -## Tanımlayıcılar nedir? {#what-are-identifiers} - -Tanımlayıcı, belirli bir kimliğe veya kimliklere işaretçi olarak işlev gören bir bilgi parçasıdır. Ortak tanımlayıcılar şunları içerir: - -- İsim -- Sosyal güvenlik numarası/vergi numarası -- Cep telefonu numarası -- Doğum tarihi ve yeri -- Dijital kimlik bilgileri, ör. e-posta adresleri, kullanıcı adları, avatarlar - -Bu geleneksel tanımlayıcı örnekleri merkezi kuruluşlar tarafından düzenlenir, tutulur ve kontrol edilir. İsminizi değiştirmek için devletinizden veya kullanıcı adınızı değiştirmek için bir sosyal medya platformundan izin almanız gerekir. - -## Tasdik nedir? {#what-are-attestations} - -Tasdik, bir kurum tarafından başka bir kurum hakkında bulunulan bir iddiadır. Amerika Birleşik Devletleri'nde yaşıyorsanız Motorlu Taşıtlar Dairesi (bir kurum) tarafından size verilen sürücü belgesi, sizin (başka bir kurum) yasal olarak araba kullanma iznine sahip olduğunuzu kanıtlar. - -Tasdikler tanımlayıcılardan farklıdır. Bir tasdik, belirli bir kimliğe atıfta bulunmak için tanımlayıcılar _içerir_ ve bu kimlikle ilgili bir nitelik hakkında bir iddiada bulunur. Yani, ehliyetiniz tanımlayıcılara (isim, doğum tarihi, adres) sahiptir, ancak aynı zamanda yasal araç kullanma hakkınızla ilgili bir tasdiktir. - -### Merkeziyetsiz tanımlayıcılar nelerdir? {#what-are-decentralized-identifiers} - -Yasal isminiz, e-posta adresiniz gibi geleneksel tanımlayıcılar, üçüncü taraflara (hükümet veya e-posta servis sağlayıcılar) bağlıdır. Merkeziyetsiz tanımlayıcılar (MT'ler) farklıdır. Bunlar çıkarılmaz, yönetilmez veya merkezi bir kuruluş tarafından kontrol edilmez. - -Merkeziyetsiz tanımlayıcılar bireyler tarafından çıkarılır, tutulur ve kontrol edilir. Bir [Ethereum hesabı](/developers/docs/accounts/) merkeziyetsiz tanımlayıcının örneğidir. Kimseden izin almadan veya merkezi bir depolamaya ihtiyaç duymadan istediğiniz kadar hesap oluşturabilirsiniz. - -Merkeziyetsiz tanımlayıcılar dağıtık defterlerde (blok zincirler) veya eşler arası ağlarda depolanır. Bu MT'leri [küresel olarak eşsiz, yüksek kullanımda bile çözümlenebilir ve kriptografik olarak doğrulanabilir yapar](https://w3c-ccg.github.io/did-primer/). Merkeziyetsiz bir tanımlayıcı; kişiler, kuruluşlar veya devlet kurumları dahil olmak üzere farklı varlıklarla ilişkilendirilebilir. - -## Merkeziyetsiz tanımlayıcıları mümkün kılan nedir? {#what-makes-decentralized-identifiers-possible} - -### 1. Açık Anahtar Altyapısı (AAA) {#public-key-infrastructure} - -Açık Anahtar altyapısı (AAA) bir kuruluş veya birey için bir [açık anahtar](/glossary/#public-key) ve bir de [özel anahtar](/glossary/#private-key) oluşturan güvenlik önlemidir. Açık anahtar kriptografisi blok zincir ağlarında kullanıcı hesaplarını ve dijital varlıkların mülkiyetini doğrulamak için kullanılır. - -Bazı merkeziyetsiz tanımlayıcıların, (Ethereum hesabı gibi) açık ve özel anahtarları vardır. Açık anahtar hesabın yöneticisini tanımlar, özel anahtarsa bu hesap için mesajları imzalayıp şifrelerini çözebilir. AAA, tüm iddiaları doğrulamak için [kriptografik imzalar](https://andersbrownworth.com/blockchain/public-private-keys/) kullanarak varlıkların kimliğini doğrulamak ve taklitçiliği ve sahte kimliklerin kullanımını önlemek adına gereken kanıtları sağlar. - -### 2. Merkeziyetsiz veri depoları {#decentralized-datastores} - -Bir blok zincir açık, güvensiz (güvene ihtiyaç duymayan) ve merkeziyetsiz veri deposu olarak hizmet eder. Açık blok zincirlerin varlığı, tanımlayıcıların merkezi kayıtlarda tutulma ihtiyacını ortadan kaldırır. - -Eğer bir merkeziyetsiz tanımlayıcının geçeriliğinin kontrol edilmesi gerekirse blok zincirde karşılığı olan açık anahtara bakılabilir. Bu üçüncü tarafların doğrulamalarının gerektiği geleneksel tanımlayıcılardan farklıdır. - -## Merkeziyetsiz tanımlayıcılar ve tasdikler merkeziyetsiz kimliği nasıl mümkün kılar? {#how-decentralized-identifiers-and-attestations-enable-decentralized-identity} - -Merkeziyetsiz kimlik, kimlikle ilgili bilgilerin kendi kendini kontrol eden, özel ve taşınabilir olması gerektiği, merkeziyetsiz tanımlayıcılar ve onayların birincil yapı taşları olduğu fikridir. - -Merkezi olmayan kimlik bağlamında, tasdikler ([Doğrulanabilir Kimlik Bilgileri](https://www.w3.org/TR/vc-data-model/) olarak da bilinir), ihraççı tarafından yapılan kurcalamaya karşı korumalı, kriptografik olarak doğrulanabilir iddialardır. Bir varlığın (ör. bir kuruluş) verdiği her onay veya Doğrulanabilir Kimlik Bilgisi, MT'leriyle ilişkilendirilir. - -MT'ler blok zincirde depolandığından herkes, verenin Ethereum'daki MT'sini çapraz kontrol ederek bir tasdikin geçerliliğini doğrulayabilir. Esasen, Ethereum blok zinciri, belirli varlıklarla ilişkili MT'lerin doğrulanmasını sağlayan küresel bir dizin gibi davranır. - -Merkeziyetsiz tanımlayıcılar, tasdiklerin kendi kendini kontrol etmesinin ve doğrulanabilir olmasının nedenidir. Düzenleyen artık mevcut olmasa bile, hamil her zaman tasdikin kaynağına ve geçerliliğine dair kanıta sahiptir. - -Merkeziyetsiz tanımlayıcılar, merkeziyetsiz kimlik aracılığıyla kişisel bilgilerin gizliliğini korumak için de çok önemlidir. Örneğin, bir kişi bir tasdik belgesi (sürücü belgesi) sunarsa doğrulayan tarafın kanıttaki bilgilerin geçerliliğini kontrol etmesine gerek yoktur. Bunun yerine doğrulayıcı, kanıtın geçerli olup olmadığını belirlemek için yalnızca tasdikin gerçekliğine ve veren kuruluşun kimliğine ilişkin kriptografik garantilere ihtiyaç duyar. - -## Merkeziyetsiz kimlikte tasdik türleri {#types-of-attestations-in-decentralized-identity} - -Tasdik bilgilerinin Ethereum tabanlı bir kimlik ekosisteminde nasıl depolandığı ve alındığı, geleneksel kimlik yönetiminden farklıdır. Burada, merkeziyetsiz kimlik sistemlerinde tasdiklerin yayınlanması, saklanması ve doğrulanmasına yönelik çeşitli yaklaşımlara genel bir bakış sunulmaktadır: - -### Zincir dışındaki tasdikler {#off-chain-attestations} - -Tasdikleri zincir üstünde tutmanın endişelerinden biri, bireylerin gizli tutmak isteyeceği bilgiler içerebilmeleridir. Ethereum blok zincirinin açık doğası bu gibi tasdiklerin depolanmasını tercih edilmez hale getirmektedir. - -Bu soruna çözüm tasdikleri çıkarıp kullanıcıların zincir dışı dijital cüzdanlarında tutmasıdır. Tasdiklerse çıkaranın zincirde depolanan MT'si ile imzalanacaktır. Bu tasdikler [JSON Web Token'ları](https://en.wikipedia.org/wiki/JSON_Web_Token) olarak kodlanır ve çıkaranın dijital imzasını içerir, bu da zincir dışı iddiaların kolayca doğrulanmasını sağlar. - -Burada, zincir dışı tasdikleri açıklamak için varsayımsal bir senaryo verilmiştir: - -1. Bir üniversite (çıkaran), bir tasdik (dijital akademik sertifika) oluşturur, anahtarları ile imzalar ve Bob'a (kimlik sahibine) verir. - -2. Bob işe başvurur ve akademik niteliklerini işverene kanıtlamak ister ve mobil cüzdanındaki tasdiği paylaşır. Şirket (doğrulayan) tasdiğin geçerliliğini çıkaranın MT'sini (ör. Ethereum'daki açık anahtarını) kontrol ederek doğrulayabilir. - -### Kalıcı erişime sahip zincir dışındaki tasdikler {#offchain-attestations-with-persistent-access} - -Bu düzenleme kapsamında tasdikler JSON dosyalarına dönüştürülür ve zincir dışında depolanır (ideal olarak IPFS veya Swarm gibi [merkeziyetsiz bulut depolama](/developers/docs/storage/) platformlarında). Ancak JSON dosyasının [karması](/glossary/#hash) zincirde depolanır ve MT'nin zincir üztündeki kaydına bağlanır. Bağlantılı MT, tasdiğin çıkaranı veya alıcısı olabilir. - -Bu yaklaşım tasdikleri şifreli ve doğrulanabilir kılarken blok zincir temelli kalıcılığını da sağlar. Ayrıca özel anahtarın sahibi bilginin şifresini açabilidiği için seçici gösterimi de mümkün kılar. - -### Zincir üstündeki tasdikler {#onchain-attestations} - -Zincir üstündeki tasdikler Ethereum blok zincirinde [akıllı sözleşmelerde](/developers/docs/smart-contracts/) tutulur. Akıllı sözleşme (kayıt defteri işlevi görür) tasdiği zincir üstündeki bir kimliğe (açık anahtara) bağlar. - -Burada, zincir üstündeki tasdiklerin uygulamada nasıl çalışabileceğine bir örnek verilmiştir: - -1. Bir şirket (XYZ Şirketi) hisselerini akıllı sözleşme kullanarak satmayı planlıyor ama sadece sabıka kaydı yaptırmış alıcıların alabilmesini istiyor. - -2. XYZ Şirketi Ethereum zinciri üstünde tasik çıkarmak için firmanın sabıka kaydı kontrolleri yapmasını sağlayabilir. Bu tasdik bir kimsenin sabıka kaydı kontrolünden geçtiğini herhangi bir kişisel veri teşhir etmeden onaylar. - -3. Akıllı sözleşme satan hisse senetleri, taranan alıcıların kimlikleri için sicil sözleşmesini kontrol edebilir ve akıllı sözleşmenin kimin hisse satın almasına izin verilip verilmediğini belirlemesini mümkün kılar. - -### Soulbound token'lar ve kimlik {#soulbound} - -[Soulbound token'lar](https://vitalik.ca/general/2022/01/26/soulbound.html) (aktarılamaz NFT'ler), belirli bir cüzdana özgü bilgileri toplamak için kullanılabilir. Bu, başarıları (örneğin, belirli bir çevrimiçi kursu bitirme veya bir oyunda bir eşik puanını geçme) veya topluluk katılımını temsil eden tokenleri içerebilen belirli bir Ethereum adresine bağlı benzersiz bir zincir-üstü kimlik oluşturur. - -## Merkeziyetsiz kimliğin avantajları {#benefits-of-decentralized-identity} - -1. Merkeziyetsiz kimlik, tanımlayıcı bilgilerin bireysel kontrolünü arttırır. Merkeziyetsiz tanımlayıcılar ve tasdikler, merkezi otoritelere veya üçüncü taraflara ihtiyaç duymadan doğrulanabilir. - -2. Merkeziyetsiz kimlik çözümleri güvene dayalı olmayan, sorunsuz ve kullanıcı kimliğini yönetirken ve doğrularken gizliliğini korumayı sağlar. - -3. Merkeziyetsiz kimlik, blok zincir teknolojisinden yararlanır, bu farklı taraflar arasında güven yaratır ve tasdiklerin geçerliliğini kanıtlayan kriptografik garantiler sağlar. - -4. Merkeziyetsiz kimlik, kimlik verilerini taşınabilir kılar. Kullanıcılar tasdikleri ve tanımlayıcıları mobil cüzdanlarında depolayıp istedikleri herhangi bir tarafla paylaşabilirler. Merkeziyetsiz tanımlayıcılar ve tasdikler, veren kuruluşların veritabanında kilitli değildir. - -5. Merkeziyetsiz kimlik ortaya çıkmakta olan sıfır-bilgi teknolojileri ile iyi çalışmalıdır. Bu teknoloji, bireylerin sahip oldukları veya yaptıkları bir şeyin ne olduğunu belirtmeden kanıtlayabilmelerini sağlayacaktır. Bu oylama benzeri uygulamalar için güven ve gizliliği birleştirmenin güçlü bir yolu olabilir. - -6. Merkeziyetsiz kimlik, bir insanın bir sistemi kandırmak veya spamlamak için birden fazla insan gibi davrandığını tespit etmek için anti-Sybil mekanizmalarını mümkün kılar. - -## Merkeziyetsiz kimlik kullanım örnekleri {#decentralized-identity-use-cases} - -Merkeziyetsiz kimliğin birçok potansiyel kullanım örneği vardır: - -### 1. Evrensel girişler {#universal-dapp-logins} - -Merkeziyetsiz kimlik, şifre bazlı giriş yönetmlerinin [merkeziyetsiz doğrulama](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/) ile değiştirilmesine yardımcı olabilir. Hizmet sağlayıcılar, kullanıcılara tasdik verebilir, bu tasdikler bir Ethereum cüzdanında saklanabilir. Bir tasdik örneği, sahibinin çevrimiçi topluluğa erişimini sağlayan bir [NFT](/nft/)'dir. - -[Ethereum ile Oturum Açma](https://login.xyz/) işlevi, sunucuların kullanıcının Ethereum hesabını onaylamasını ve hesap adreslerinden gerekli tasdiği almasına olanak tanır. Bu, kullanıcıların uzun şifreleri ezberlemek zorunda kalmadan platformlara ve web sitelerine erişebileceği ve kullanıcılar için çevrimiçi deneyimi iyileştirebileceği anlamına gelir. - -### 2. KYC kimlik doğrulaması {#kyc-authentication} - -Birçok çevrimiçi hizmeti kullanmak, bireylerin ehliyet veya ulusal pasaport gibi tasdik ve kimlik bilgilerini sağlamasını gerektirir. Ancak bu yaklaşım sorunludur çünkü özel kullanıcı bilgilerinin güvenliği ihlal edilebilir ve hizmet sağlayıcılar tasdiğin gerçekliğini doğrulayamaz. - -Merkeziyetsiz kimlik, şirketlerin geleneksel [Müşterini Tanı (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) süreçlerini atlamalarına ve Doğrulanabilir Kimlik Bilgileri aracılığıyla kullanıcı kimliklerini doğrulamalarına olanak tanır. Bu, kimlik yönetimi maliyetini düşürür ve sahte dokümanların kullanılmasını önler. - -### 3. Oylama ve çevrimiçi topluluklar {#voting-and-online-communities} - -Çevrimiçi oylama ve sosyal medya, merkeziyetsiz kimlik için iki yeni uygulamadır. Çevrimiçi oylama düzenleri, özellikle kötü niyetli aktörler oy vermek için sahte kimlikler oluşturursa manipülasyona açıktır. Bireylerden zincir üstünde tasdikler sunmalarını istemek, çevrimiçi oylama süreçlerinin dürüstlüğünü iyileştirebilir. - -Merkeziyetsiz kimlik, sahte hesaplardan arınmış çevrimiçi topluluklar oluşturmaya yardımcı olabilir. Örneğin, her kullanıcının bot olasılığını azaltarak Ethereum İsim Hizmeti gibi bir zincir üstünde kimlik sistemi kullanarak kimliğini doğrulaması gerekebilir. - -### 4. Sybil'e karşı koruma {#sybil-protection} - -Sybil saldırıları, kişilerin bir sistemi kandırarak etkilerini artırmak için birden fazla kişi olduklarını düşünmesini sağladıkları saldırılardır. [Karesel oylama](https://www.radicalxchange.org/concepts/plural-voting/) kullanan [yetki veren uygulamalar](https://gitcoin.co/grants/) bu Sybil saldırılarına açıktırlar çünkü yetkinin değeri daha çok insan tarafından oylandıkça artar, kullanıcıların katkılarını birden çok kimliğe bölmelerini teşvik eder. Merkeziyetsiz kimlikler, her katılımcının gerçekten insan olduğunu kanıtlama yükünü kaldırarak bunu önlemeye yardımcı olur ve bunu genelde özel bilgileri açığa çıkarmaya gerek duymadan yaparlar. - -## Merkeziyetsiz kimliği kullanın {#use-decentralized-identity} - -Merkeziyetsiz kimlik çözümlerinin temeli olarak Ethereum'u kullanan çok sayıda iddialı proje var: - -- **[Ethereum İsim Servisi (ENS)](https://ens.domains/)** - _Ethereum cüzdan adresleri, içerik karmaları ve metaveriler için zincir üstünde, makine tarafından okunabilen, merkeziyetsiz isimlendirme sistemi._ -- **[SpruceID](https://www.spruceid.com/)** - _Kullanıcıların üçüncü taraf hizmetlerine güvenmek yerine Ethereum hesapları ve ENS profilleri ile dijital kimliği kontrol etmelerini sağlayan merkeziyetsiz bir kimlik projesi._ -- **[Ethereum Tasdik Hizmeti (EAS)](https://attest.sh/)** - _Her şey hakkında zincir üstünde veya dışında tasdik etmek için merkeziyetsiz bir ledger'dır/protokoldür._ -- **[Proof of Humanity](https://www.proofofhumanity.id)** - _Proof of Humanity (veya PoH) Ethereum üzerine inşa edilmiş bir sosyal kimlik doğrulama sistemidir._ -- **[BrightID](https://www.brightid.org/)** - _Bir sosyal grafiğin oluşturulması ve analizi yoluyla kimlik doğrulamasını yeniden düzenlemeyi amaçlayan merkeziyetsiz, açık kaynaklı bir sosyal kimlik ağı._ -- **[Proof-of-personhood Passport](https://proofofpersonhood.com/)** - _Merkezi olmayan bir dijital kimlik toplayıcısı._ - -## Daha fazla okuma {#further-reading} - -### Makaleler {#articles} - -- [Blockchain Use Cases: Blockchain in Digital Identity](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ -- [What is Ethereum 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) — _Emmanuel Awosika_ - -### Videolar {#videos} - -- [Decentralized Identity (Bonus Livestream Session)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Andreas Antonopoulos'tan merkezi olmayan kimlik üzerine harika bir açıklayıcı video_ -- [Sign In with Ethereum and Decentralized Identity with Ceramic, IDX, React, and 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _Nader Dabit tarafından Ethereum cüzdanı kullanarak bir profili oluşturmak, okumak ve güncellemek için bir kimlik yönetim sistemi oluşturmaya yönelik YouTube eğitimi_ -- [BrightID - Decentralized Identity on Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _Ethereum için merkeziyetsiz bir kimlik çözümü olan BrightID'yi tartışan Bankless podcast bölümü_ -- [The Off Chain Internet: Decentralized Identity & Verifiable Credentials](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — Evin McMullen tarafından yapılan EthDenver 2022 sunumu - -### Topluluklar {#communities} - -- [ERC-725 Alliance on GitHub](https://github.com/erc725alliance) — _Ethereum blok zincirinde kimlik yönetimi için ERC725 standardının destekçileri_ -- [SpruceID Discord server](https://discord.com/invite/Sf9tSFzrnt) — _Ethereum ile oturum açma üzerinde çalışan meraklılar ve geliştiriciler için topluluk_ -- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _Uygulamalar için doğrulanabilir veriler için bir çerçeve oluşturmaya katkıda bulunan bir geliştiriciler topluluğu_ diff --git a/src/content/translations/tr/defi/index.md b/src/content/translations/tr/defi/index.md deleted file mode 100644 index e2a34a97a5b..00000000000 --- a/src/content/translations/tr/defi/index.md +++ /dev/null @@ -1,352 +0,0 @@ ---- -title: Merkeziyetsiz finans (DeFi) -description: Ethereum'da DeFi'ye genel bakış -lang: tr -template: use-cases -emoji: ":money_with_wings:" -image: ../../../../assets/use-cases/defi.png -alt: Lego parçalarından yapılmış bir Eth logosu. -sidebarDepth: 2 -summaryPoint1: Mevcut finansal sisteme küresel ve açık bir alternatif. -summaryPoint2: Ödünç almanıza, tasarruf etmenize, yatırım yapmanıza, ticaret yapmanıza ve daha pek çok şeye olanak veren ürünler. -summaryPoint3: Herkesin programlayabileceği açık kaynak teknolojisine dayalıdır. ---- - -DeFi, şeffaf olmayan, sıkı bir şekilde kontrol edilen ve onlarca yıllık altyapı ve süreçler tarafından bir arada tutulan bir sisteme alternatif olarak internet çağı için oluşturulmuş açık ve küresel bir finansal sistemdir. Paranız üzerinde kontrol ve görünürlük sağlar. Küresel pazarlara erişim sağlar ve yerel para biriminize veya bankacılık seçeneklerine alternatifler sunar. DeFi ürünleri, internet bağlantısı olan herkese finansal hizmetler sunar ve büyük ölçüde kullanıcılarına aittirler ve kullanıcılar tarafından sürdürülürler. Şimdiye kadar, DeFi uygulamalarından on milyarlarca dolar değerinde kripto para aktı ve bu miktar her geçen gün artıyor. - -## DeFi nedir? {#what-is-defi} - -DeFi, Ethereum kullanabilen herkesin, yani internet bağlantısı olan herkesin erişebildiği finansal ürünler ve hizmetler için toplu bir terimdir. DeFi ile piyasalar her zaman açıktır ve ödemeleri engelleyebilecek veya herhangi bir şeye erişiminizi engelleyebilecek merkezi bir otorite yoktur. Önceden yavaş olan ve insan hatası riski taşıyan hizmetler, herkesin denetleyip inceleyebileceği bir kodla yönetildikleri için artık otomatik ve daha güvenlidir. - -Borç verebileceğiniz, ödünç alabileceğiniz, uzun/kısa pozisyonlara girebileceğiniz, faiz kazanabileceğiniz ve daha fazlasını yapabileceğiniz gelişen bir kripto ekonomisi var. Kripto meraklısı Arjantinliler, felç edici enflasyondan kaçmak için DeFi'yi kullandılar. Şirketler, çalışanlarına ücretlerini gerçek zamanlı olarak aktarmaya başladı. Hatta bazı insanlar herhangi bir kişisel kimlik belgesine ihtiyaç duymadan milyonlarca dolar değerinde kredi çekip ödediler. - - - -## Geleneksel finansa karşı DeFi {#defi-vs-tradfi} - -DeFi'nin potansiyelini görmenin en iyi yollarından biri, bugün var olan sorunları anlamaktır. - -- Bazı kişilere banka hesabı oluşturma veya finansal hizmetleri kullanma izni verilmez. -- Finansal hizmetlere erişim eksikliği, insanların istihdam edilebilir olmalarını engelleyebilir. -- Finansal hizmetler ödeme almanızı engelleyebilir. -- Finansal hizmetlerin gizli bir ücreti, kişisel verilerinizdir. -- Hükümetler ve merkezi kurumlar piyasaları istedikleri zaman kapatabilirler. -- İşlem saatleri genelde belirli bir saat diliminin iş saatleriyle sınırlıdır. -- Para transferleri içsel insan süreçleri nedeniyle günler alabilir. -- Aracı kurumların pay almaya ihtiyacı olduğu için finansal hizmetler için bir ücret bulunur. - -### Bir karşılaştırma {#defi-comparison} - -| DeFi | Geleneksel finans | -| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | -| Paranızı siz saklarsınız. | Paranız şirketler tarafından saklanır. | -| Paranızın nereye gittiğini ve nasıl harcandığını siz kontrol edersiniz. | Borç vermesi riskli olan kişilere borç vermek gibi paranızı yanlış şekilde yönetmemeleri için şirketlere güvenmelisiniz. | -| Para transferleri dakikalar içinde gerçekleşir. | Manuel işlemler nedeniyle ödemeler günler sürebilmektedir. | -| İşlem etkinliği takma addır. | Finansal etkinlik, kimliğinizle sıkı sıkıya bağlıdır. | -| DeFi herkese açıktır. | Finansal hizmetlerden yararlanmak için başvurmanız gerekir. | -| Piyasalar her zaman açıktır. | Çalışanların molaya ihtiyacı olduğu için piyasalar kapanır. | -| Şeffaflık üzerine kurulmuştur: Herkes bir ürünün verilerine bakabilir ve sistemin nasıl çalıştığını inceleyebilir. | Finansal kurumlar kapalı kutulardır: Kredi geçmişlerini, yönetilen varlıklarının kaydını vb. görmeyi talep edemezsiniz. | - - - DeFi uygulamalarını keşfedin - - -## Bitcoin ile başladı... {#bitcoin} - -Bitcoin, birçok yönden ilk DeFi uygulamasıydı. Bitcoin, değere gerçekten sahip olmanızı, onu kontrol etmenizi ve dünyanın her yerine göndermenizi sağlar. Bunu, birbirine güvenmeyen çok sayıda insanın, güvenilir bir aracıya ihtiyaç duymadan bir hesap defteri üzerinde anlaşmaya varması için bir yol sağlayarak yapar. Bitcoin herkese açıktır ve hiç kimsenin kurallarını değiştirme yetkisi yoktur. Bitcoin'in kıtlığı ve açıklığı gibi kuralları teknolojinin içine yazılmıştır. Geleneksel finans sisteminde hükümetler, paranızın değerini düşürecek paralar basabilir ve şirketler pazarları kapatabilir. - -Ethereum bunun üzerine kurulu. Bitcoin gibi, kurallar sizin aleyhinize değişemez ve herkesin erişimi vardır. Ama aynı zamanda [akıllı sözleşmeler](/glossary#smart-contract) kullanarak bu dijital parayı programlanabilir hâle getirir, böylece değer depolamanın ve göndermenin ötesine geçebilirsiniz. - - - -## Programlanabilir para {#programmable-money} - -Bu kulağa tuhaf geliyor... "Neden paramı programlamak isteyeyim ki"? Bununla birlikte, bu daha çok Ethereum'daki token'ların varsayılan bir özelliğidir. Herkes ödemelerin içine mantık programlayabilir. Böylece Bitcoin'in kontrolünü ve güvenliğini finans kurumlarının sunduğu hizmetler ile karıştırarak elde edebilirsiniz. Bu, borç verme ve borç alma, ödemeleri planlama, endeks fonlarına yatırım yapma ve daha fazlası gibi Bitcoin ile yapamayacağınız şeyleri kripto para birimleriyle yapmanızı sağlar. - - -
Ethereum'da yeniyseniz denemek için DeFi uygulamalarına yönelik önerilerimizi keşfedin.
- - DeFi uygulamalarını keşfet - -
- -## DeFi ile ne yapabilirsiniz? {#defi-use-cases} - -Çoğu finansal hizmetin merkezi olmayan bir alternatifi var. Ancak Ethereum, tamamen yeni olan finansal ürünler yaratmak için fırsatlar da yaratıyor. Bu sürekli büyüyen bir liste. - -- [Dünyanın her yerine para gönderin](#send-money) -- [Dünya çapında para akışı sağlayın](#stream-money) -- [Sabit para birimlerine erişin](#stablecoins) -- [Teminat ile borç alın](#lending) -- [Teminatsız borç alın](#flash-loans) -- [Kripto biriktirmeye başlayın](#saving) -- [Token ticareti yapın](#swaps) -- [Portföyünüzü büyütün](#investing) -- [Fikirlerinizi fonlayın](#crowdfunding) -- [Sigorta satın alın](#insurance) -- [Portföyünüzü yönetin](#aggregators) - - - -### Dünyanın her yerine çabucak para gönderin {#send-money} - -Bir blok zinciri olarak Ethereum, işlemleri güvenli ve küresel bir şekilde göndermek için tasarlanmıştır. Bitcoin gibi, Ethereum da dünyanın her yerine para göndermeyi bir e-posta göndermek kadar kolay hâle getiriyor. Cüzdanınızdan alıcınızın [ENS adını](/nft/#nft-domains) (bob.eth gibi) veya hesap adresini girdikten sonra ödemeniz (genellikle) dakikalar içinde doğrudan alıcıya gidecektir. Ödeme göndermek veya almak için bir [cüzdan](/wallets/) gerekir. - - - Ödeme dApp'lerini gör - - -#### Dünya çapında para akışı sağlayın... {#stream-money} - -Ayrıca Ethereum üzerinden para akışı da yapabilirsiniz. Bu, birisine maaşını saniyede ödemenize izin vererek, ihtiyaç duyduklarında paralarına erişmelerini sağlar. Ya da anında depo veya elektrikli scooter gibi bir şeyler kiralayın. - -Ve değerinin değişebileceğinden dolayı [ETH](/eth/) göndermek veya akışı yapmak istemiyorsanız, Ethereum'da alternatif para birimleri vardır: sabit paralar. - - - -### Stabil para birimlerine erişin {#stablecoins} - -Kripto para birimi volatilitesi, birçok finansal ürün ve genel harcama için bir sorundur. DeFi topluluğu bunu sabit paralarla çözdü. Değerleri, genellikle dolar gibi popüler bir para birimi olan başka bir varlığa sabitlenir. - -Dai veya USDC gibi paralar, dolara birkaç sent kadar yakın bir değere sahiptir. Bu, onları kazanç veya perakende satış için mükemmel kılar. Latin Amerika'daki birçok insan, devlet tarafından verilen para birimleriyle ilgili büyük bir belirsizlik döneminde birikimlerini korumanın bir yolu olarak sabit paraları kullandı. - - - Sabit paralar hakkında daha fazlası - - - - -### Borçlanma {#lending} - -Merkezi olmayan sağlayıcılardan borç para almanın iki ana çeşidi vardır. - -- Eşler arası, yani borç alan bir kişi belirli bir borç verenden doğrudan borç alır. -- Borç verenlerin, borç alacak kişilerin borç alabileceği bir havuza fon (likidite) sağladığı havuz tabanlı çeşit. - - - Borç alma dapp'leri gör - - -Merkezi olmayan bir borç veren kullanmanın birçok avantajı vardır... - -#### Gizlilikle borçlanma {#borrowing-privacy} - -Bugün, borç vermek ve borç almak, ilgili kişilerin etrafında dönmektedir. Bankaların, borç vermeden önce bir krediyi geri ödeme olasılığınız olup olmadığını bilmesi gerekir. - -Merkezi olmayan borç verme, tarafların kendilerini tanımlamasına gerek kalmadan çalışır. Böylece, borç alan kişi kredisini geri ödemezse kredi verenin otomatik olarak alacağı bir teminat sunulmuş olur. Bazı borç verenler, NFT'leri bile teminat olarak kabul ederler. NFT'ler, bir tablo gibi benzersiz bir varlığın tapusudur. [NFT'ler hakkında daha fazla bilgi](/nft/) - -Bu, kredi kontrolü olmadan veya özel bilgileri teslim etmeden borç para almanızı sağlar. - -#### Küresel fonlara erişim {#access-global-funds} - -Merkezi olmayan bir borç veren kullandığınızda, yalnızca seçtiğiniz banka veya kurumun gözetimindeki fonlara değil, dünyanın her yerinden yatırılan fonlara erişebilirsiniz. Bu, kredileri daha erişilebilir hâle getirir ve faiz oranlarını iyileştirir. - -#### Vergi açısından verimlilik {#tax-efficiencies} - -Borçlanma, ETH'nizi satmanıza (vergiye tabi bir eylem) gerek kalmadan ihtiyacınız olan fonlara erişmenizi sağlayabilir. Bunun yerine, bir sabit para kredisi için teminat olarak ETH'yi kullanabilirsiniz. Bu, size ihtiyacınız olan nakit akışını sağlar ve ETH'nizi korumanıza izin verir. Sabit paralar, ETH gibi değerlerinde dalgalanma olmadığı için nakit ihtiyacınız olduğunda çok daha iyi olan token'lardır. [Sabit paralar hakkında daha fazla bilgi](#stablecoins) - -#### Hızlı krediler (flash loan) {#flash-loans} - -Hızlı krediler, teminat olmadan veya herhangi bir kişisel bilgi vermeden borçlanmanıza izin veren, merkezi olmayan kredilendirmenin daha deneysel bir şeklidir. - -Şu anda teknik olmayan kişiler için geniş çapta erişilebilir değiller ancak gelecekte herkes için neyin mümkün olabileceğine dair ipuçları veriyorlar. - -Kredinin aynı işlem içerisinde alınıp geri ödenmesi esasına göre çalışır. Geri ödenemezse, işlem hiçbir şey olmamış gibi geri döner. - -Genellikle kullanılan fonlar likidite havuzlarında (borçlanma için kullanılan büyük fon havuzları) tutulur. Belirli bir anda kullanılmıyorlarsa, bu, birisinin bu fonları ödünç alması, onlarla iş yapması ve kelimenin tam anlamıyla ödünç alındıkları anda tam olarak geri ödemesi için bir fırsat yaratır. - -Bu, çok özel bir işlem için çok fazla mantığın dahil edilmesi gerektiği anlamına gelir. Basit bir örnek: Fiyatın daha yüksek olduğu farklı bir borsada satmak için bir varlıktan tek bir fiyat üzerinden olabildiğince borçlanmak için hızlı kredi kullanan birisi. - -Yani tek bir işlemde aşağıdakiler gerçekleşir: - -- A borsasından 1,00 ABD Doları karşılığında X miktarda $asset alırsınız -- B borsasında 1,10 ABD Doları karşılığında X $asset satarsınız -- A borsasına krediyi geri ödersiniz -- İşlem ücreti hariç kârı alırsınız - -B borsasının arzı aniden düşerse ve kullanıcı orijinal krediyi karşılayacak kadar satın alamazsa, işlem başarısız olur. - -Yukarıdaki örneği geleneksel finans dünyasında yapabilmek için çok büyük miktarda paraya ihtiyacınız var. Bu para kazanma stratejilerine yalnızca önceden bir servete sahip olanlar erişebilir. Hızlı krediler, paraya sahip olmanın para kazanmak için mutlaka bir ön koşul olmadığı bir geleceğe bir örnektir. - -[Hızlı krediler hakkında daha fazla bilgi](https://aave.com/flash-loans/) - - - -### Kripto ile biriktirmeye başlayın {#saving} - -#### Borç Verme {#lending} - -Borç vererek kripto paranızdan faiz kazanabilir ve fonlarınızın gerçek zamanlı olarak büyümesini sağlayabilirsiniz. Şu anda faiz oranları, yerel bankanızda elde edebileceğinizden çok daha yüksek (eğer bir bankaya erişebilecek kadar şanslıysanız). İşte bir örnek: - -- Bir [sabit para](/stablecoins/) olan 100 Dai'nizi Aave gibi bir ürüne borç veriyorsunuz. -- Borç verdiğiniz Dai'nizi temsil eden bir token olan 100 Aave Dai (aDai) alırsınız. -- aDai'niz faiz oranlarına göre artacak ve cüzdanınızdaki bakiyenizin büyüdüğünü görebilirsiniz. APR'ye (yıllık yüzde oran) bağlı olarak, cüzdan bakiyenizde birkaç gün hatta birkaç saat sonra 100.1234 gibi bir tutar görebilirsiniz! -- İstediğiniz zaman aDai bakiyenize eşit miktarda normal Dai çekebilirsiniz. - - - Borç verme uygulamalarına bakın - - -#### Kayıpsız piyangolar {#no-loss-lotteries} - -PoolTogether gibi kayıpsız piyangolar, paradan tasarruf etmenin eğlenceli ve yenilikçi yeni bir yoludur. - -- 100 Dai token'ı kullanarak 100 bilet satın alırsınız. -- 100 biletinizi temsil eden 100 plDai alırsınız. -- Biletlerinizden biri kazanan olarak seçilirse, plDai bakiyeniz ödül havuzunun miktarı kadar artacaktır. -- Kazanamazsanız, 100 plDai'niz gelecek haftanın çekilişine aktarılır. -- İstediğiniz zaman plDai bakiyenize eşit miktarda normal Dai çekebilirsiniz. - -Ödül havuzu, yukarıdaki borç verme örneğinde olduğu gibi, bilet yatırmalarının borç verilmesiyle elde edilen tüm faiz tarafından oluşturulur. - - - PoolTogether'ı deneyin - - - - -### Takas token'ları {#swaps} - -Ethereum'da binlerce token var. Merkeziyetsiz borsalar (DEX'ler), istediğiniz zaman farklı token'larla işlem yapmanızı sağlar. Varlıklarınızın kontrolünü asla bırakmazsınız. Bu, farklı bir ülkeyi ziyaret ederken bir döviz bürosu kullanmak gibidir. Ancak DeFi sürümü asla kapanmaz. Piyasalar 7/24, yılda 365 gün açıktır ve teknoloji, her zaman bir ticareti kabul edecek birinin olacağını garanti ediyor. - -Örneğin, kayıpsız piyango PoolTogether'ı (yukarıda açıklanmıştır) kullanmak istiyorsanız, Dai veya USDC gibi bir token'a ihtiyacınız olacaktır. Bu DEX'ler, ETH'nizi bu token'larla değiştirmenize ve işiniz bittiğinde tekrar geri almanıza olanak tanır. - - - Token borsalarını gör - - - - -### Gelişmiş ticaret {#trading} - -Biraz daha fazla kontrol isteyen borsa kullanıcıları için daha gelişmiş seçenekler bulunuyor. Limit emirleri, vadesizler, marj ticareti ve daha fazlası mümkündür. Merkezi olmayan ticaret ile küresel likiditeye erişirsiniz, piyasa asla kapanmaz ve varlıklarınızın kontrolü her zaman sizde olur. - -Merkezi bir borsa kullandığınızda, varlıklarınızı ticaretten önce yatırmanız ve varlıklarınızı koruması için merkezi borsaya güvenmeniz gerekir. Merkezi borsalar hacker'lar için önemli hedefler olduğundan varlıklarınız yatırıldıktan sonra risk altındadır. - - - Ticaret dapp'lerini gör - - - - -### Portföyünüzü büyütün {#investing} - -Ethereum'da, seçtiğiniz bir stratejiye dayalı olarak portföyünüzü büyütmeye çalışacak fon yönetimi ürünleri bulunmaktadır. Bu otomatiktir, herkese açıktır ve kârınızdan pay alan bir insan yöneticiye ihtiyaç duymaz. - -İyi bir örnek: [DeFi Pulse Index fonu (DPI)](https://defipulse.com/blog/defi-pulse-index/). Bu, sizin portföyünüzün her zaman [piyasa değerine göre en iyi DeFi token'larını](https://www.coingecko.com/en/defi) içermesini sağlamak için otomatik olarak yeniden dengelenen bir fondur. Hiçbir zaman herhangi bir ayrıntıyı yönetmek zorunda kalmazsınız ve istediğiniz zaman fondan çıkabilirsiniz. - - - Yatırım dapp'lerini gör - - - - -### Fikirlerinizi fonlayın {#crowdfunding} - -Ethereum, kitle fonlaması için ideal bir platformdur: - -- Potansiyel fon sağlayıcılar her yerden gelebilir: Ethereum ve token'ları, dünyanın dört bir yanındaki insanlara açıktır. -- Şeffaf olduğu için fon toplayanlar ne kadar para toplandığını kanıtlayabilir. Daha sonra fonların nasıl harcandığını bile takip edebilirsiniz. -- Fon toplayanlar, örneğin belirli bir son tarih ve karşılanmayan minimum tutar varsa otomatik geri ödemeler ayarlayabilir. - - - Kitle fonlaması dapp'lerini gör - - -#### İkinci dereceden finansman {#quadratic-funding} - -Ethereum açık kaynaklı bir yazılımdır ve şimdiye kadar yapılan çalışmaların çoğu topluluk tarafından fonlanmıştır. Bu, ilginç bir yeni fon yaratma modelinin büyümesine yol açtı: ikinci dereceden finansman. Bu, gelecekte her tür kamu malını finanse etme şeklimizi iyileştirme potansiyeline sahiptir. - -İkinci dereceden finansman, en benzersiz talebe sahip projelerin en yüksek finansmanı almasını sağlar. Başka bir deyişle, çoğu insanın hayatını iyileştirecek projeler. Şöyle çalışır: - -1. Bağışlanan fonların oluşturduğu bir eşleştirme havuzu bulunur. -2. Bir kamu fonlaması turu başlar. -3. İnsanlar bir miktar para bağışlayarak bir projeye olan taleplerini belirtebilirler. -4. Tur bittiğinde, eşleştirme havuzu projelere dağıtılır. En benzersiz talebe sahip olanlar, eşleştirme havuzdan en yüksek tutarı alır. - -Bu, 1 dolarlık 100 bağışa sahip olan A Projesi'nin, tek bir 10.000 dolarlık bağışa sahip olan B Projesi'nden daha fazla fon alabilmesi anlamına gelir (eşleştirme havuzunun boyutuna bağlı olarak). - -[İkinci dereceden finansman hakkında daha fazla bilgi](https://wtfisqf.com) - - - -### Sigorta {#insurance} - -Merkezi olmayan sigorta; sigortayı daha ucuz, ödemesi daha hızlı ve daha şeffaf hâle getirmeyi amaçlar. Daha fazla otomasyonla, kapsama alanı daha ekonomiktir ve ödemeler çok daha hızlıdır. Tazminatınıza karar vermek için kullanılan veriler tamamen şeffaftır. - -Ethereum ürünleri, herhangi bir yazılım gibi, hatalardan ve açıklardan zarar görebilir. Dolayısıyla şu anda bu alandaki birçok sigorta ürünü, kullanıcılarını fon kaybına karşı korumaya odaklanıyor. Ancak hayatın karşımıza çıkarabileceği her şeyi kapsamaya başlayan projeler mevcuttur. Güzel bir örnek: [Kenya'daki küçük çiftçileri kuraklık ve sele karşı korumayı](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc) amaçlayan Etherisc'in Hasat teminatı. Merkezi olmayan sigorta, genellikle geleneksel sigortadan fiyatlandırılan çiftçiler için daha ucuz teminat sağlayabilir. - - - Sigorta dapp'lerini gör - - - - -### Toplayıcılar ve portföy yöneticileri {#aggregators} - -Bu kadar çok şey olurken, tüm yatırımlarınızı, kredilerinizi ve ticaretlerinizi takip etmenin bir yoluna ihtiyacınız olacak. Tüm DeFi aktivitelerinizi tek bir yerden koordine etmenize izin veren bir dizi ürün var. Bu, DeFi'nin açık mimarisinin güzelliğidir. Ekipler, ürünler arasında sadece bakiyelerinizi görmenin ötesinde ürünlerin özelliklerini de kullanabileceğiniz arayüzler oluşturabilir. DeFi keşfederken bunu faydalı bulabilirsiniz. - - - Portföy dapp'lerini gör - - - - -## DeFi nasıl çalışır? {#how-defi-works} - -DeFi, aracılara ihtiyaç duymayan hizmetler sağlamak için kripto para birimleri ve akıllı sözleşmeler kullanır. Günümüz finans dünyasında, finansal kurumlar işlemlerin garantörü olarak hareket etmektedir. Bu, bu kurumlara muazzam bir güç verir çünkü paranız onların üzerinden aktarılır. Ayrıca dünya çapında milyarlarca insan bir banka hesabına bile erişemiyor. - -DeFi'de, işlemdeki finansal kurumun yerini bir akıllı sözleşme alır. Akıllı sözleşme, para tutabilen ve belirli koşullara göre gönderebilen/geri ödeyebilen bir tür Ethereum hesabıdır. Kullanıma girdikten sonra hiç kimse bu akıllı sözleşmeyi değiştiremez: Her zaman programlandığı gibi çalışır. - -Harçlık veya ödenek dağıtmak için tasarlanmış bir sözleşme, her cuma günü A Hesabından B Hesabına para göndermek üzere programlanabilir. Ve bunu yalnızca A Hesabı gerekli fonlara sahip olduğu sürece yapar. Hiç kimse sözleşmeyi değiştiremez ve fonları çalmak için C Hesabını alıcı olarak ekleyemez. - -Sözleşmeler ayrıca herkesin incelemesi ve denetlemesi için halka açıktır. Bu, kötü niyetli sözleşmelerin genellikle oldukça hızlı bir şekilde topluluk incelemesine gireceği anlamına gelir. - -Bu, şu anda Ethereum topluluğunun kod okuyabilen daha teknik bilgiye sahip üyelerine güvenmek gerektiği anlamına geliyor. Açık kaynak tabanlı topluluk, geliştiricileri kontrol altında tutmaya yardımcı olur, ancak akıllı sözleşmelerin okunması daha kolay hâle geldikçe ve kodun güvenilirliğini kanıtlamak için başka yollar geliştirildikçe bu ihtiyaç zamanla azalacaktır. - -## Ethereum ve DeFi {#ethereum-and-defi} - -Ethereum, birkaç nedenden dolayı DeFi için mükemmel bir temeldir: - -- Hiç kimse Ethereum'a veya Ethereum'da bulunan akıllı sözleşmelere sahip değildir: Bu, herkese DeFi kullanma fırsatı verir. Bu aynı zamanda kimsenin kuralları sizin aleyhinize değiştiremeyeceği anlamına gelir. -- DeFi ürünlerinin tümü, perde arkasında aynı dili konuşur: Ethereum. Bu, birçok ürünün sorunsuz bir şekilde birlikte çalıştığı anlamına gelir. Token'ları tek bir platformda borç verebilir ve faiz getiren token'ı tamamen farklı bir uygulamadaki farklı bir pazarda takas edebilirsiniz. Bu, bankanızda sadakat puanlarını bozdurabilmeye benzer. -- Token'lar ve kripto para birimi, paylaşılan bir defter olan Ethereum'da yerleşiktir: İşlemleri ve mülkiyeti takip etmek biraz Ethereum'un işidir. -- Ethereum, eksiksiz bir finansal özgürlük sağlar: Çoğu ürün asla paranızın gözetimini almaz ve kontrolü size bırakır. - -DeFi'yi katmanlar halinde düşünebilirsiniz: - -1. Blok zinciri: Ethereum, işlem geçmişini ve hesapların durumunu içerir. -2. Varlıklar: [ETH](/eth/) ve diğer token'lar (para birimleri). -3. Protokol – [akıllı sözleşmeler](/glossary/#smart-contract) işlevsellik sağlar; örneğin, bu varlıklara merkeziyetsiz borçlanmaya izin veren bir servis sağlar. -4. [Uygulamalar](/dapps/): Protokolleri yönetmek ve bunlara erişmek için kullandığımız ürünler. - -## DeFi oluşturun {#build-defi} - -DeFi, açık kaynaklı bir akımdır. DeFi protokolleri ve uygulamaları; incelemeniz, çatallamanız ve yenilik yapmanız için tamamen açıktır. Bu katmanlı yığın sayesinde (hepsi aynı temel blok zincirini ve varlıkları paylaşır), benzersiz birleşik fırsatların kilidini açmak için protokoller karıştırılabilir ve eşleştirilebilir. - - - Dapp oluşturma hakkında daha fazla bilgi - - -## Daha fazla bilgi {#futher-reading} - -### DeFi verisi {#defi-data} - -- [DeFi Prime](https://defiprime.com/) -- [DeFi Llama](https://defillama.com/) -- [DeFi Oranı](https://defirate.com/) - -### DeFi makaleleri {#defi-articles} - -- [DeFi Başlangıç Rehberi](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu, 6 Ocak 2020_ - -### Videolar {#videos} - -- [Finematics - merkeziyetsiz finans eğitimi](https://finematics.com/) – _DeFi ile ilgili Videolar_ -- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _DeFi ile ilgili temel bilgiler: Bu bazen kafa karıştırıcı olan alana giriş yapmak için bilmeniz gereken her şey._ -- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _DeFi nedir?_ - -### Topluluklar {#communities} - -- [DeFi Llama Discord sunucusu](https://discord.gg/buPFYXzDDd) -- [DeFi Pulse Discord sunucusu](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/tr/deprecated-software/index.md b/src/content/translations/tr/deprecated-software/index.md deleted file mode 100644 index 52acfbdc0e4..00000000000 --- a/src/content/translations/tr/deprecated-software/index.md +++ /dev/null @@ -1,482 +0,0 @@ ---- -title: Kullanımdan kaldırılmış yazılım -description: Geliştiricileri tarafından kullanımdan kaldırılmış yazılım -lang: tr -sidebarDepth: 2 ---- - -# Kullanımdan kaldırılmış yazılım {#summary-deprecated-software} - -Bu, Ethereum ile ilgili kullanımdan kaldırılmış veya artık desteklenmeyen önemli proje ve kaynakların bir listesidir. Kullanımdan kaldırılmış çalışmaları vurgulamak, kullanıcıların işlevsel alternatifleri bulmalarını sağlamak ve kötü amaçlı sürümlerin dağıtılmasını önlemek açısından önemlidir. - -Bu liste topluluğumuz tarafından hazırlanmıştır. Eksik veya yanlış bir şey varsa, lütfen bu sayfayı düzenleyin! - -## İş ispatı {#pow} - -[İş ispatı](/developers/docs/consensus-mechanisms/pow), Ethereum'da Eylül 2022'ye kadar kullanılan bir mutabakat motorudur. Ethereum, [hisse ispatı](/developers/docs/consensus-mechanisms/pos) tabanlı bir mutabakat mekanizmasına geçiş yaptığında kullanımı sona ermiştir. Bu, istemci yazılımının [Ethhash](/developers/docs/consensus-mechanisms/pow/mining-algorithms/ethhash) (madencilik algoritması) ve başlangıçta yürütüm istemcilerinde tümleşik olarak sunulan mutabakat mantığı ve blok yayılım işlevselliğininin tümü dahil olmak üzere iş ispatı madenciliği ile ilgili kısımlarının kullanımdan kaldırılmasıyla gerçekleştirildi. İstemcilerin kendileri değil, bazı temel bileşenleri kullanımdan kaldırılmıştır. İş ispatı kavramı, istemci yazılımının ilgili bileşenlerinin kaldırılmasının yarattığı genel etki sonucunda kullanımdan kaldırılmıştır. - -## Yazılım {#software} - -Bu bölüm, kullanımdan kaldırılmış masaüstü, komut satırı veya sunucu yazılımlarını içerir. Başlıca türleri arasında cüzdanlar, entegre geliştirme ortamları, diller ve Ethereum istemcileri yer alır. Kullanımdan kaldırılmış yazılımı, https://github.com/ethereum adresi altında barındırılan bir depo gibi orijinal kaynaktan geldiğinden emin olmadan yüklememeye dikkat edin. - -### OpenEthereum {#open-ethereum} - -

- -

- -Temmuz 2021'de kullanımdan kaldırılmıştır - -**Özet** - -OpenEthereum, düğüm sayısı bakımından ikinci en büyük Ethereum uygulamasıydı. OpenEthereum, Etherscan ve Gnosis Safe gibi Ethereum'un en büyük kullanıcılarından bazıları için anahtar altyapı parçası olması yönüyle önemli bir rol oynamıştır. İzleme yetenekleri, veri sağlayıcılar için güvenilir ve hızlı senkronizasyon sağlayarak onu diğer istemcilerden öne çıkarmıştır. - -**Arşivler** - -[Arşivlenmiş GitHub deposu](https://github.com/openethereum/openethereum) - -**Tarihçe** - -OpenEthereum, madenciler, hizmet sağlayıcılar ve hızlı senkronizasyon ile maksimum çalışma süresine ihtiyaç duyan borsalar için tasarlanmıştır. OpenEthereum, hızlı ve güvenilir hizmetler için gereken temel altyapıyı sağlamıştır. - -**Alternatifler** - -[Tüm Ethereum yürütüm istemcisi seçeneklerini karşılaştırın](/developers/docs/nodes-and-clients/#execution-clients). - -### Grid {#grid} - -

- -

- -10 Ocak 2020'de kullanımdan kaldırılmıştır - -**Özet** - -Grid; Ethereum, IPFS ve merkeziyetsiz diğer ağlara güvenli bir şekilde erişmenizi sağlayan JavaScript tabanlı bir masaüstü uygulamasıydı. Grid, daha az teknik bilgiye sahip kullanıcıların merkeziyetsiz uygulamalarla güvenli bir şekilde etkileşime girmelerine yardımcı olmak için kullanıcı dostu bir arayüz sunuyordu ve bu da herkes için erişilebilirliği artırıyordu. - -**Arşivler** - -[Arşivlenmiş GitHub deposu](https://github.com/ethereum/grid) - -**Tarihçe** - -Grid, aynı zamanda Mist'in varisi olarak görülebilir. Mist de bağımsız bir JavaScript tabanlı masaüstü uygulamasıydı ve bir Geth düğümü içeriyordu. Grid, cüzdan işlevini kaldırdı ve farklı türde düğümleri çalıştırmaya yönelik eklenti tarzında bir yaklaşım getirdi. - -**Alternatifler** - -[DAppNode](https://dappnode.io/), merkeziyetsiz uygulamaları, P2P istemcilerini ve blokzincir düğümlerini dağıtmaya ve barındırmaya yarayan bir platformdur. - -### Ethereum Studio {#ethereum-studio} - -

- -

- -7 Aralık 2020'de kullanımdan kaldırılmıştır - -**Özet** - -Ethereum Studio, kullanıcıların akıllı sözleşmeler oluşturmasına, test etmesine ve bunlar için ön yüzler geliştirmesine olanak tanıyan web tabanlı bir IDE idi. - -**Arşivler** - -[Arşivlenmiş GitHub deposu](https://github.com/SuperblocksHQ/ethereum-studio) - -**Tarihçe** - -Ethereum Studio, kullanıcılara tümleşik bir Ethereum blokzinciri ve Solidity derleyicisine sahip bir IDE sunmak amacıyla geliştirilmiştir. Bunun yanı sıra, canlı kod düzenlemesi yapma ve bir terminal ihtiyacı olmadan tam merkeziyetsiz uygulamalar çıkarabilme olanağı da sağlamıştır. - -**Alternatifler** - -[Remix](https://remix.ethereum.org/), Solidity geliştirmeleri için alternatif bir web IDE'sidir. Ayrıca [Geliştirici Portalı](/developers/), web ve yerel geliştirme, belgeleme ve daha fazlası için araçlar sunmaktadır. - -### Meteor Dapp Wallet {#meteor-dapp-wallet} - -

- -

- -27 Mart 2019'da kullanımdan kaldırılmıştır - -**Özet** - -Meteor Dapp Wallet, Ethereum hesaplarını yönetmeye ve akıllı sözleşmelerle etkileşime girmeye yarayan bir Ethereum cüzdanı olan Mist'in bir bileşeniydi. Meteor Dapp Wallet web kullanıcı arayüzü, uzun yıllar boyunca "wallet.ethereum.org" alt alan adı olarak barındırılmıştır. - -Ayrıca, Mist Çok İmzalı Sözleşmesi (solidity kodu) de dahil edilmiş ve Meteor Dapp Wallet, bu sözleşmeyi yapılandırmaya ve dağıtmaya yönelik bir kullanıcı arayüzü de sunmuştur. - -**Kullanımdan kaldırılmamıştır: dağıtılmış Mist Çoklu İmzaları** - -Binlerce kullanıcı tarafından Ethereum Ana Ağı'na bayt kodu olarak dağıtılmış olan Mist Çoklu İmzası, olaysız biçimde değerleri depolamak ve yönetmek amacıyla kullanılmaya devam etmektedir. [Bir Mist Çok İmzalı Sözleşmesiyle Etkileşim Kurma](https://support.mycrypto.com/how-to/sending/how-to-interact-with-a-multisig-contract), bu akıllı sözleşmelerin nasıl kullanılacağıyla ilgili iyi bir genel görünüm sunar. - -**Arşivler** - -[Arşivlenmiş GitHub deposu](https://github.com/ethereum/meteor-dapp-wallet) - -**Tarihçe** - -Aşağıda Mist'e göz atın. - -**Alternatifler** - -Ethereum.org'da [Ethereum Cüzdanları](/wallets/) sayfasına göz atın. - -### Mist {#mist} - -

- -

- -27 Mart 2019'da kullanımdan kaldırılmıştır - -**Özet** - -Mist, Electron ile geliştirilmiş ve kullanıcıların Ethereum hesaplarını yönetmesini ve geleneksel internette barındırılan merkeziyetsiz uygulamalarla etkileşime geçmesini sağlayan özelleştirilmiş bir tarayıcıydı. - -**Arşivler** - -[Arşivlenmiş GitHub deposu](https://github.com/ethereum/mist) - -**Tarihçe** - -Mist, Ethereum anahtarlarının nasıl yönetileceğini keşfettiği, kullanıcılara çoklu imzalar gibi finansal araçları tanıttığı ve Web3'ün nasıl çalışacağını gösterdiği için önemli bir erken deneme olmuştur. Ayrıca kullanıcılara, Ethereum anahtarlarını temsil eden şirin ve akılda kalıcı 8 bit stili grafikler olan blokçukları da tanıtmıştır. - -**Alternatifler** - -[MetaMask](https://metamask.io/), Ethereum anahtarlarını yönetmenizi ve merkeziyetsiz uygulamalarla etkileşime geçmenizi sağlayan bir tarayıcı içi cüzdandır. Google Chrome ve Firefox'ta uzantı olarak mevcuttur ve [Brave Tarayıcı](https://brave.com/)'da da bulunur. - -### Mix {#mix} - -11 Ağustos 2016'da kullanımdan kaldırılmıştır - -**Özet** - -Mix, geliştiricilerin Ethereum'da akıllı sözleşme oluşturmasını ve dağıtmasını sağlayan, C++'da yazılmış bir IDE idi. - -**Arşivler** - -[Arşivlenmiş GitHub deposu](https://github.com/ethereum/mix) - -**Tarihçe** - -Mix, Ethereum'la ilgili en eski uygulamalardan biridir. [Devcon0'da Gavin Wood tarafından yapılan bu sunuma](https://www.youtube.com/watch?v=hcP_z_wBlaM) göz atın. - -**Alternatifler** - -[Remix](https://remix.ethereum.org/), Solidity/akıllı sözleşme geliştiriciliği, testleri ve dağıtılması için tarayıcıda barındırılan bir IDE'dir. Bir masaüstü seçeneği de vardır. - -### Minimal {#minimal} - -2020'de kullanımdan kaldırılmıştır. - -**Özet** - -Minimal, Ethereum blokzincirinin Go'da yazılmış modüler bir uygulamasıydı. - -**Arşivler** - -[Arşivlenmiş GitHub deposu](https://github.com/umbracle/minimal) - -**Tarihçe** - -Minimal'in yerini [polgon-sdk](https://github.com/0xPolygon/polygon-edge) almıştır - -### Hyperledger Burrow {#hyperledger-burrow} - -2022'de kullanımdan kaldırılmıştır. - -**Özet** - -Hyperledger Burrow, izin verilmiş bir Ethereum akıllı sözleşme blokzincir düğümüydü. Ethereum EVM'yi ve WASM akıllı sözleşme kodunu, izin verilen sanal makinelerde çalıştırmıştır. - -**Arşivler** - -[Arşivlenmiş GitHub deposu](https://github.com/hyperledger/burrow) - -### Mana-Ethereum {#mana-ethereum} - -**Özet** - -Mana-Ethereum, Elixir kullanılarak geliştirilmiş bir Ethereum istemcisiydi. - -**Arşivler** - -[Arşivlenmiş GitHub deposu](https://github.com/mana-ethereum/mana) - -**Tarihçe** - -Mana-Ethereum'un Github deposu, henüz açık bir şekilde arşivlenmemiştir ancak son giriş 2019'da yapılmıştır. - -### Aleth (cpp-ethereum) {#aleth} - -6 Ekim 2021'de kullanımdan kaldırılmıştır - -**Özet** - -Aleth (önceden cpp-ethereum olarak bilinirdi) C++'da yazılmış bir Ethereum istemcisiydi. - -**Arşivler** - -[Arşivlenmiş GitHub deposu](https://github.com/ethereum/aleth) - -**Tarihçe** - -Aleth, 6 Ekim 2021'de kullanımdan kaldırılmadan önce Ethereum'un en popüler üçüncü istemcisiydi. - -**Alternatifler** - -[Geth](https://geth.ethereum.org/), iyi bilinen alternatif bir Ethereum istemcisidir. - -### Ethereum-H {#ethereum-h} - -**Arşivler** - -Ethereum-H arşivleri GitHub'dan kaldırılmıştır. - -**Tarihçe** - -Ethereum-H, Haskell'de yazılmış bir Ethereum istemcisiydi. 2015 civarında kullanımdan kaldırılmıştır. - -**Alternatifler** - -[Geth](https://geth.ethereum.org/), [Nethermind](http://nethermind.io/), [Besu](https://besu.hyperledger.org/en/stable/) ve [Erigon](https://github.com/ledgerwatch/erigon) uygulanabilir alternatif Ethereum istemcileridir - güncel bir Haskell istemcisi yoktur. - -### ruby-ethereum {#ruby-ethereum} - -**Arşivler** - -[ruby-ethereum GitHub deposu](https://github.com/cryptape/ruby-ethereum) - -**Tarihçe** - -ruby-ethereum, Ruby'de yazılmış bir Ethereum istemcisiydi. 2018 civarında kullanımdan kaldırılmıştır. - -**Alternatifler** - -[Geth](https://geth.ethereum.org/), [Nethermind](http://nethermind.io/), [Besu](https://besu.hyperledger.org/en/stable/) and [Erigon](https://github.com/ledgerwatch/erigon) uygulanabilir alternatif Ethereum istemcileridir. Güncel bir Ruby istemcisi yoktur. - -### Parity {#parity} - -

- -

- -2 Haziran 2020'de kullanımdan kaldırılmıştır - -**Özet** - -Parity, Rust'ta yazılmış bir Ethereum istemcisiydi. - -**Arşivler** - -[Arşivlenmiş GitHub deposu](https://github.com/openethereum/parity-ethereum) - -**Tarihçe** - -Ethereum'un ilk yıllarındaki iki önde gelen uygulanabilir istemciden biri olan (diğeri Geth) Parity, ekosistemin çok önemli bir parçasıydı. 2016'daki Şanghay Saldırıları sırasında Parity, Geth gibi istemciler saldırı tarafından durdurulduğunda Ethereum Ağı'nın çalışmaya devam etmesini sağlamıştır, bu da istemci çeşitliliğinin önemini kanıtlar. - -**Alternatifler** - -[Erigon](https://github.com/ledgerwatch/erigon) (önceden Turbo-Geth diye adlandırılıyordu), Go'da yazılmış, verimlilik cephesindeki yeni nesil bir Ethereum istemcisidir. - -**Not:** _Parity Ethereum istemcisinin yerine geçtiği proje olan [OpenEthereum](https://github.com/openethereum/openethereum)**, o tarihten beri kullanımdan kalkmış durumdadır.**_ - -Ethereum.org'daki ["Kendi Ethereum düğümünüzü programlayın"](/developers/docs/nodes-and-clients/run-a-node/#getting-the-client) kaynağı, bir Ethereum istemcisini indirme, kurma ve çalıştırma bölümlerini kapsar. - -### Trinity {#trinity} - -

- -

- -1 Temmuz 2021'de kullanımdan kaldırılmıştır - -**Özet** - -Trinity, topluluk için bir araştırma ve eğitim aracı olarak hizmet eden python tabanlı bir Ethereum istemcisiydi. Trinity ile ilgisi olan çok sayıda python tabanlı modül, hala aynı takım tarafından yönetilmektedir; bunlara, [Py-EVM](https://github.com/ethereum/py-evm) de dahildir. - -**Arşivler** - -[Arşivlenmiş GitHub deposu](https://github.com/ethereum/trinity) - -**Tarihçe** - -Trinity, python tabanlı ilk Ethereum istemcilerinden biri olan [pyethereum](https://github.com/ethereum/pyethereum/tree/b704a5c6577863edc539a1ec3d2620a443b950fb)'un yerine almıştır. - -**Alternatifler** - -Ethereum.org'daki ["Kendi Ethereum düğümünüzü programlayın"](/developers/docs/nodes-and-clients/run-a-node/#getting-the-client) kaynağı, bir Ethereum istemcisini indirme, kurma ve çalıştırma bölümlerini kapsar. - -[EthereumJS](https://github.com/ethereumjs) projesi de Trinity ile benzer bir araştırma ve eğitim amaçlı kullanım senaryosuna sahiptir. - -## Merkeziyetsiz Uygulamalar ve Hizmetler {#dapps-and-services} - -Bu bölüm, Ethereum Ana Ağı'na ve EVM tabanlı diğer ağlara dağıtılmış olan hizmetlere yöneliktir. Buradaki merkeziyetsiz uygulama ve hizmetlerin bakımsızlık, protokol değişiklikleri, vs. gibi sebeplerden hack'lenmiş ya da güvenlik açıklarına sahip olan DeFi uygulamalarını kapsayabileceğini göz önünde bulundurun. - -### Cover Protokolü {#cover-protocol} - -

- -

- -2021 sonbaharında kapatılmıştır - -**Özet** - -Cover, Ethereum ve diğer EVM tabanlı ağlarda çalışan bir DeFi sigorta protokolüydü. - -**Arşivler** - -[Web sitesi](https://wayback.archive-it.org/17679/20211004074635/https://www.coverprotocol.com/) - -[Medium makaleleri](https://wayback.archive-it.org/17679/20211004074633/https://coverprotocol.medium.com/) - -[Github depoları](https://github.com/CoverProtocol/cover-core-v1) - -[Dokümanlar](https://wayback.archive-it.org/17679/20211004074634/https://docs.coverprotocol.com/) - -### DAO {#the-dao} - -2016 yazında hack'lenmiş ve kapatılmıştır - -**Özet** - -DAO, projelerin fonlanmasını organize etmeye yönelik bir akıllı sözleşme, merkeziyetsiz uygulama ve forumdu. Bir güvenlik açığından faydalanarak ETH'nin çoğu boşaltıldı, bu da DAO'ya yatırmış olanların ETH'lerini geri vermek için topluluk tarafından organize edilen bir sert çatallanmayı beraberinde getirdi. UX ön yüzü ve forum kapatıldı. - -**Arşivler** - -[14 Mayıs 2016 tarihli "daohub.org" İnternet Arşivi](https://web.archive.org/web/20160514105232/https://daohub.org/) - -**Tarihçe** - -DAO başarısız olmasına rağmen, konsept devam ettirildi. DAO için geliştirilmiş temel teknik, sosyal ve yönetişim özellikli model, DeFi, NFT ve proje fonlama topluluklarında yaygın biçimde kullanılmaktadır. - -[ethereum.org'daki "DAO Çatallanması"](/history/#dao-fork) - -["DAO" için Wikipedia girdisi]() - -**Alternatifler** - -[ethereum.org'daki "DAO'lar"](/dao/) - -[MolochDAO](https://www.molochdao.com/) - -[Gitcoin Hibeleri](https://gitcoin.co/grants/) - -### SparkPool {#sparkpool} - -

- -

- -2021 sonbaharında kapatılmıştır - -**Özet** - -Merkezi Hangzhou'da bulunan Sparkpool hizmeti ve topluluğu, dünyanın Ethereum merkezli madencilik havuzlarının en büyüklerinden biriydi. - -**Arşivler** - -**Tarihçe** - -EthFans topluluğu ile ilişkili olan hizmet, 2015'te başlatıldı. Spankpool, yasal düzenlemelerin daha katı hale gelmesinin sonucu olarak 2021 sonbaharında dağıldı. - -**Alternatifler** - -[Ethermine](https://ethermine.org/) - -## Dokümantasyon ve Bilgi Kaynakları {#documentation-and-information-sources} - -Şu anda kaldırılmış ya da mevcut olmasına rağmen sürdürülmeyen sayısız dokümantasyon, makale, öğretici ve forum kaynağı vardır. Önemli olan ya da güncel durumu kullanımdan kaldırılmış olmasına rağmen kafa karışıklığına ya da dolandırıcılık girişimlerine sebep olabilecek birkaç taneyi seçtik. - -### Legacy Wiki ve eth.wiki {#eth-wiki} - -**Özet** - -Legacy Wiki ve eth.wiki, topluluğun geneli için Ethereum Foundation tarafından yönetilen wiki'lerdi. Bunlar, daha çok Ethereum platformunun temel yönleri hakkında detaylı açıklamaları ve teknik yol haritalarının özetlerini barındırmaya yöneliklerdi. - -**Arşivler** - -[eth.wiki için arşivlenmiş GitHub deposu](https://github.com/ethereum/eth-wiki) - -[Legacy Wiki için arşivlenmiş bir GitHub deposu](https://github.com/ethereum/wiki/wiki) - -**Tarihçe** - -Legacy Wiki, bir GitHub wiki'siydi ve teknik içeriklerden (orijinal Ethereum Tanıtım Belgesi de dahil) oluşan erken bir alandı. Ethereum geliştiricileri, zaman içinde kendi dokümantasyonlarını, spesifikasyonlarını ve teknik açıklama çalışmalarını [Dokümanları Okuyun](https://readthedocs.org/) gibi diğer platformlara ve GitHub'da barındırılan içeriklere taşıdılar. - -2019 ve 2020'de eth.wiki, Legacy Wiki'nin yerini aldı ancak katkıda bulunan katılımcılardan oluşan sağlam bir topluluk oluşmadı. - -**Alternatifler** - -Topluluk tarafından yönetilen içerik: [Ethereum.org Web Sitesi](/) - -Ethereum yazılım projeleri, genelde dokümantasyonlarını [Dokümanları Okuyun](https://readthedocs.org/) içinde barındırır - -Github'da barındırılan teknik spesifikasyonlar: [EIP'ler](https://github.com/ethereum/EIPs), [Yürütüm Spesifikasyonları](https://github.com/ethereum/execution-specs), [Mutabakat Spesifikasyonları](https://github.com/ethereum/consensus-specs) - -### forum.ethereum.org {#forum-ethereum-org} - -**Özet** - -Ethereum Topluluk Forumu, Ethereum Foundation tarafından yönetilen ve Vanilla Forums üzerinde barındırılan bir tartışma panosuydu. Bu pano, "forum.ethereum.org" alt etki alanını kullanıyordu. - -**Arşivler** - -Arşiv URL'si: [https://wayback.archive-it.org/16516/20210618210825/https://forum.ethereum.org/](https://wayback.archive-it.org/16516/20210618210825/https://forum.ethereum.org/) - -**Tarihçe** - -Bu Forum, erken dönemlerde Ethereum topluluğunun "resmi" tartışma panosuydu. Forum, [/r/ethereum](https://reddit.com/r/ethereum) ve birkaç Skype kanalı ile birlikte geliştiriciler, tasarımcılar ve idareciler için önemli bir koordinasyon noktasıydı. Yıllar geçtikçe Forumun katılımcıları başka yerlere geçti ve burası daha çok bir madencilik topluluğuna dönüştü. - -**Alternatifler** - -[/r/ethereum](https://reddit.com/r/ethereum) ve çok sayıda DAO Forum ile Discord sunucusu. - -## Gitter Kanalları {#gitter-channels} - -### AllCoreDevs {#allcorewdevs-gitter} - -**Özet** - -AllCoreDevs Gitter, [Ethereum istemcisinin temel geliştiricileri](https://github.com/ethereum/pm/) için herkese açık ana koordinasyon iletişim kanalıydı. - -**Arşivler** - -[ethereum/AllCoreDevs Gitter Kanalı](https://gitter.im/ethereum/AllCoreDevs) - -**Alternatifler** - -Lütfen [EthR&D Discord Sunucusu](https://discord.gg/qHv7AjTDuK)'ndaki "allcoredevs" kanalını kullanın - -### EthereumJS {#ethereumjs-gitter} - -**Özet** - -EthereumJS Gitter, [EthereumJS projesinin](https://ethereumjs.github.io/) herkese açık ana koordinasyon iletişim kanalıydı. - -**Arşivler** - -[ethereum/EthereumJS Gitter Kanalı](https://gitter.im/ethereum/ethereumjs) - -**Alternatifler** - -Lütfen [EthereumJS Discord Sunucusu](https://discord.gg/TNwARpR)'nu kullanın diff --git a/src/content/translations/tr/desci/index.md b/src/content/translations/tr/desci/index.md deleted file mode 100644 index 14a64bac391..00000000000 --- a/src/content/translations/tr/desci/index.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: Merkeziyetsiz bilim (DeSci) -description: Ethereum üzerindeki merkeziyetsiz bilime genel bakış -lang: tr -template: use-cases -emoji: ":microscope:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Mevcut bilimsel sisteme küresel, açık bir alternatif. -summaryPoint2: Bilim insanlarının finansman sağlamasına, deneyler yürütmesine, veri paylaşmasına, görüşlerini dağıtmasına ve daha fazlasını yapmalarına olanak tanıyan teknoloji. -summaryPoint3: Açık bilim hareketine dayanır. ---- - -## Merkeziyetsiz bilim (DeSci) nedir? {#what-is-desci} - -Merkeziyetsiz bilim (DeSci), Web3 kullanarak bilimsel bilginin adil ve eşit şekilde finanse edilmesi, oluşturulması, gözden geçirilmesi, kredilendirilmesi, depolanması ve yayılması için kamusal altyapı oluşturma hedefi olan bir harekettir. - -DeSci, bilimsel araştırmalarını açıkça paylaşmaya teşvik edilen bilim insanlarının çalışmalarını kredi almalarına olanak tanıyan ve araştırmaya kolayca erişim sağlayan herkesin katkıda bulunabileceği bir ekosistem oluşturmayı hedefleyen bir harekettir. DeSci, bilimsel bilginin herkes tarafından erişilebilir olması gerektiği ve bilimsel araştırma sürecinin şeffaf olması gerektiği fikrinden yola çıkarak çalışır. Merkeziyetsiz bilim, daha merkeziyetsiz ve dağıtılmış bir bilimsel araştırma modeli yaratmayı amaçlamakta olup, bu sayede sansür ve merkezi otoritelerin kontrolüne daha dirençli hale gelmektedir. Merkeziyetsiz bilim, fonlamanın, bilimsel araçların ve iletişim kanallarının merkeziyetsizleştirilmesiyle yeni ve alışılmadık fikirlerin gelişebileceği bir ortam yaratmayı ummaktadır. - -Merkeziyetsiz bilim, daha çeşitli fon kaynaklarına ( [DAO'lardan](/dao/), [karesel bağışlara](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) kitlesel fonlamalara ve daha fazlasına), daha erişilebilir veri ve yöntemlere olanak tanıyarak ve yeniden üretilebilirlik için teşvikler sağlayarak bu alanda katkıda bulunur. - -### Juan Benet - DeSci Hareketi - - - -## Merkeziyetsiz bilimin, bilimi nasıl geliştirdiği {#desci-improves-science} - -Bilimdeki temel sorunlara dair eksik olan bir liste ve merkeziyetsiz bilimin bu sorunları ele alarak nasıl yardımcı olabileceği - -| **Merkeziyetsiz bilim** | **Geleneksel bilim** | -| --------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | -| Fonların dağıtımı, ikinci dereceden bağışlar veya DAO'lar gibi mekanizmalar kullanılarak halk tarafından belirlenir. | Küçük, kapalı, merkezi gruplar fonların dağıtımını kontrol eder. | -| Dinamik ekiplerde dünyanın her yerinden meslektaşlarla iş birliği yaparsınız. | Finansman kuruluşları ve yerel kurumlar, iş birliklerinizi sınırlar. | -| Finansman kararları çevrimiçi ve şeffaf bir şekilde alınır. Yeni finansman mekanizmaları araştırılmaktadır. | Finansman kararları, uzun bir geri dönüş süresi ve sınırlı şeffaflık ile alınır. Birkaç finansman mekanizması mevcuttur. | -| Laboratuvar hizmetlerini paylaşmak, Web3 primitifleri kullanılarak daha kolay ve daha şeffaf hale getirilir. | Laboratuvar kaynaklarının paylaşımı genellikle yavaş ve şeffaf değildir. | -| Güven, şeffaflık ve evrensel erişim için Web3 ilkelerini kullanan yeni yayınlama modelleri geliştirilebilir. | Sıklıkla verimsiz, ön yargılı ve sömürücü olarak kabul edilen yerleşik yollarla yayın yapıyorsunuz. | -| Emsal değerlendirme çalışması için token ve itibar kazanabilirsiniz. | Emsal değerlendirme çalışmanız ücretsiz olup, kâr amacı güden yayıncılara fayda sağlar. | -| Oluşturduğunuz fikri mülkiyetin (IP) sahibi sizsiniz ve şeffaf şartlara göre dağıtıyorsunuz. | Kendi kurumunuz, oluşturduğunuz IP'nin sahibidir. IP'ye erişim şeffaf değildir. | -| Tüm adımları zincirleme yaparak, başarısız çabalardan elde edilen veriler de dahil olmak üzere tüm araştırmalar paylaşılır. | Yayın yanlılığı, araştırmacıların başarılı sonuçları olan deneyleri paylaşma olasılıklarının daha yüksek olduğu anlamına gelir. | - -## Ethereum ve Merkeziyetsiz Bilim {#ethereum-and-desci} - -Merkeziyetsiz bir bilim sistemi, güçlü güvenlik, düşük maliyet, düşük işlem ücretleri ve uygulama geliştirme için zengin bir ekosistem gerektirir. Ethereum, merkeziyetsiz bilim birikimi oluşturmak için gereken her şeyi sunar. - -## Merkeziyetsiz Bilim kullanım senaryoları {#use-cases} - -Merkeziyetsiz Bilim, Web2 akademisini dijital dünyaya taşımak için bilimsel araç setini inşa ediyor. Aşağıda, Web3'ün bilimsel topluluğa sunabileceği kullanım durumlarından bazı örnekler bulunmaktadır. - -### Yayımlama {#publishing} - -Bilim yayıncılığı, yayın evlerinin yönettiği ve bilim insanları, hakemler ve editörlerin ücretsiz emeğine dayanan, ardından fahiş yayıncılık ücretleri talep eden bir yapıya sahip olmasıyla ünlüdür. Eser ve yayın masraflarını genellikle dolaylı olarak vergilendirme yoluyla ödeyen halk, yayıncıya tekrar ödeme yapmadan aynı esere çoğu kez erişememektedir. Bireysel bilim makalelerini yayınlamak için toplam ücretler genellikle beş rakamlıdır ($USD), bu da küçük bir yayıncı grubu için muazzam kârlar sağlarken, bir [kamu malı](https://www.econlib.org/library/Enc/PublicGoods.html) olarak tüm bilimsel bilgi kavramını baltalamaktadır. - -[ArXiv](https://arxiv.org/) gibi baskı öncesi sunucular şeklinde ücretsiz ve açık erişimli platformlar mevcuttur. Bununla birlikte, bu platformlarda kalite kontrol, [anti-sybil mekanizmaları](https://csrc.nist.gov/glossary/term/sybil_attack) yoktur ve genellikle makale seviyesindeki metrikleri izlemezler, yani genellikle geleneksel bir yayıncıya sunulmadan önce yalnızca çalışmaları duyurmak için kullanılırlar. SciHub ayrıca yayınlanmış makaleleri, (yasal olarak değil) ancak yayıncılar ödemelerini aldıktan ve çalışmayı sıkı telif hakkı mevzuatına sardıktan sonra erişime ücretsiz hale getirir. Bu durum, yerleşik bir meşruiyet mekanizması ve teşvik modeli ile erişilebilir bilim makaleleri ve verileri için kritik bir boşluk bırakmaktadır. Böyle bir sistem oluşturmak için gerekli araçlar Web3'te mevcuttur. - -### Tekrarlanabilirlik ve çoğaltılabilirlik {#reproducibility-and-replicability} - -Tekrarlanabilirlik ve çoğaltılabilirlik, kaliteli bilimsel keşfin temelleridir. - -- Tekrarlanabilir sonuçlar, aynı ekip tarafından aynı metodoloji kullanılarak arka arkaya birden fazla kez elde edilebilir. -- Aynı deneysel düzeneği kullanan farklı bir grup tarafından tekrarlanabilir sonuçlar elde edilebilir. - -Web3'e has yeni araçlar, tekrarlanabilirlik ve çoğaltılabilirliğin keşfin temeli olduğunu garanti edebilir. Kaliteli bilimi, akademinin teknolojik kumaşına işleyebiliriz. Web3, her bir çözümleme bileşeni (ham veri, hesaplama motoru ve uygulama sonucu) için ayrı ayrı tasdikname sunar. Bu bileşenlerin sürdürülebilirliğini sağlamak için güvenilir bir ağ oluşturulduğunda; her ağ katılımcısı, hesaplamayı tekrar tekrar yapıp her bir sonucu onaylayarak sorumluluk alabilir. Mutabakat sistemlerinin güzelliği buradadır. - -### Fonlama {#funding} - -An itibarıyla bilime kaynak sağlamak için izlenen yol, bireylerin veya bir grup bilim insanının kaynak sağlayan kuruluşa yazılı başvuruda bulunmasıdır. Başvuranların küçük bir bölümüne kaynak sağlamadan önce, güvenilir kişilerden oluşan bir heyet başvuruları puanlar ve sonrasında adaylar mülakata girer. Bir hibeye başvurmak ile hibeyi almak arasında bazen yıllarca bekleme süresine yol açan darboğazlar yaratmasının yanı sıra, bu modelin ön yargılara, kişisel çıkarlara ve inceleme heyetinin politikalarına karşı oldukça savunmasız olduğu bilinmektedir. - -Çalışmalar, farklı panellere verilen aynı tekliflerin çok farklı sonuçları olduğundan, hibe inceleme panellerinin yüksek kaliteli teklifleri seçmekte yetersiz kaldığını göstermiştir. Finansman nadir hale geldikçe, entelektüel açıdan daha muhafazakar projelere sahip daha kıdemli araştırmacılardan oluşan daha küçük bir havuzda yoğunlaştı. Etki, hiper rekabetçi bir finansman ortamı yaratarak, sapkın teşvikleri sağlamlaştırdı ve yeniliği boğdu. - -Web3, DAO'lar ve geniş çapta Web3 tarafından geliştirilen farklı teşvik modellerini deneyerek bu bozuk finansman modelini dağıtma potansiyeline sahiptir. Bilimin fonlanmasında köklü değişim yapabilecek Web3 araçlarından bazıları [geriye dönük kamu malları fonlaması](https://medium.com/ethereum-optimism/retroactive-public-goods-funding-33c9b7d00f0c), [kuadratik fonlama](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531), [DAO yönetişimi](https://www.antler.co/blog/daos-and-web3-governance) ve [tokenlaştırılmış teşvik yapılarıdır](https://cdixon.org/2017/05/27/crypto-tokens-a-breakthrough-in-open-network-design). - -### Fikri mülkiyet sahipliği ve geliştirme {#ip-ownership} - -Fikri mülkiyet (IP), geleneksel bilimde büyük bir sorundur: üniversitelerde sıkışıp kalmaktan veya biyoteknolojilerde kullanılmamaktan, değer biçilmesinin çok zor olmasına kadar. Bununla birlikte, dijital varlıkların (bilimsel veriler veya makaleler gibi) mülkiyeti, Web3'ün [değiştirilemez token'lar (NFT'ler)](/nft/) kullanarak son derece iyi yaptığı bir şeydir. - -NFT'ler gelecekteki işlem gelirlerini orijinal yaratıcıya aktarabilir. Aynı şekilde şeffaf değer eşleştirme zincirleri ile araştırmacılar, yönetim organları (DAOlar gibi), ve hatta veri toplayan özneler bile ödüllendirilebilir. - -Yürütülen araştırma deneylerinin merkeziyetsiz veri depoları için, [IP-NFT'ler](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) bir kilit işlevi görebilir. Ayrıca NFT ve [DeFi](/defi/) finansallaştırılmasına (bölümlere ayırmaktan toplama havuzlarına ve değer biçmeye) bağlanabilir. Bu durum zincir üstündeki varlıkların, örneğin DAO'ların, doğrudan zincir üstünde araştırma yapmasına olanak sağlar. Örnek olarak [VitaDAO](https://www.vitadao.com/) verilebilir. Başkalarına transfer edilemeyen ["soulbound" (ruha bağlı) token'ların](https://vitalik.ca/general/2022/01/26/soulbound.html) ortaya çıkışı DeSci için önemli bir rol oynar çünkü bu token'lar, kişilerin Ethereum adreslerine bağlı deneyim ve referanslarını kanıtlayabilmesini sağlar. - -### Veri depolama, erişim ve mimari {#data-storage} - -Bilimsel veriler, Web3 uygulamaları yardmıyla çok daha işlevsel hale dönüştürülebilir. Ve bu işlenmiş bilimsel veriler sayesinden araştırmalar için daha olumlu sonuçlar sağlanabilir. - -Başlangıç noktası, uygun doğrulanabilir kimlik bilgilerine sahip herhangi bir merkezi olmayan kimlik tarafından erişilebilen bir sistem olmalıdır. Bu durum, önemli verilerin güvenilir taraflarca güvenli bir şekilde çoğaltılmasına, tekrara ve sansüre karşı direnç sağlanmasına, sonuçların yeniden üretilmesine ve hatta birden fazla tarafın iş birliği yapmasına ve veri kümesine yeni veriler eklemesine olanak tanır. "Compute-to-data" gibi gizli bilgi işleme yöntemleri bizim için, sadeleştirilmiş veriye alternatif olarak erişimemizi sağlar ve bu veriler için Güvenilir Araştırma Ortamları oluşturur. [NHS kuruluşu, Güvenilir Araştırma Ortamları](https://medium.com/weavechain/whats-in-store-for-the-future-of-healthcare-data-b6398745fbbb) tabiri için veri gizliliği sağladığını ve araştırmacıların ekosistemleri güvenilir şekilde birbirleri arasında bilgi paylaşımı yaparak inşa etmelerine olanak sağladığı için faydalı bir çözüm yöntemi olduğunu belirtti. - -Esnek Web3 veri çözümleri yukarıda bahsedilen sorunları çözme konusunda yardımcı olur, ayrıca araştırmacıların ve meraklıların özgürce ve ücretsiz şekilde işlem yapabildiği bir bilim ortamı sağlar. Web3'ün IPFS, Arweave, Filecoin gibi veri çözümleri merkeziyetsizlik için optimize edilmiştir. Örneğin, dClimate meteoroloji istasyonları ve tahmini iklim modelleri de dahil olmak üzere iklim ve hava durumu verilerine evrensel erişim sağlar. - -## Dahil olun {#get-involved} - -DeSci topluluğuna katılın ve gelişmelerden haberdar olun! - -- [DeSci.Global: küresel etkinlikler ve buluşma takvimi](https://desci.global) -- [Bilim İçin Blok Zincir Telegram Adresi](https://t.me/BlockchainForScience) -- [Molecule: Araştırma projeleriniz için fon sağlayın ve fon alın](https://discover.molecule.to/) -- [VitaDAO: Uzun ömürlü araştırmalar için sponsorlu araştırma anlaşmalı yoluyla fon alın](https://www.vitadao.com/) -- [ResearchHub: Bilimsel bir sonuç yayınlayın ve taraflarla iletişime geçin](https://www.researchhub.com/) -- [LabDAO: in-silico proteinini katlayın](https://alphafodl.vercel.app/) -- [dClimate API: Merkeziyetsiz bir topluluk tarafından toplanmış iklim verilerini sorgulayın](https://api.dclimate.net/) -- [DeSci Vakfı: DeSci yayınlama aracı oluşturucu](https://descifoundation.org/) -- [DeSci.Dünyası: Kullanıcıların merkeziyetsiz bilimi görüntülemesi ve etkileşim kurması için tek adres](https://desci.world) -- [Fleming Protokolü: Ortak çalışmaya dayalı biyomedikal buluşları destekleyen açık kaynak veri ekonomisi](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [OceanDAO: Veri ile ilgili bilimler için DAO tarafından yönetilen fonlama](https://oceanprotocol.com/dao) -- [Opscientia: Açık merkeziyetsiz bilim iş akışları](https://opsci.io/research/) -- [LabDAO: in-silico proteinini katlayın](https://alphafodl.vercel.app/) -- [Bio.xyz: Biyoteknoloji DAO'nuz veya desci projeniz için fon toplayın](https://www.molecule.to/) -- [ResearchHub: Bilimsel bir sonuç yayınlayın ve taraflarla iletişime geçin](https://www.researchhub.com/) -- [VitaDAO: Uzun ömürlü araştırmalar için sponsorlu araştırma anlaşmalı yoluyla fon alın](https://www.vitadao.com/) -- [Fleming Protokolü: Ortak çalışmaya dayalı biyomedikal buluşları destekleyen açık kaynak veri ekonomisi](https://medium.com/@FlemingProtocol/a-data-economy-for-patient-driven-biomedical-innovation-9d56bf63d3dd) -- [Etkin Sonuç Çıkarma Lab](https://www.activeinference.org/) -- [CureDAO: Topluluğa Ait Hassas Sağlık Platformu](https://docs.curedao.org/) -- [IdealMarkets: Merkeziyetsiz bilimsel güvenilirliği sağlar](https://ideamarket.io/) -- [DeSci Laboratuvarları](https://www.desci.com/) - -Listelenecek yeni proje önerilerine açığız - başlamak için lütfen [listeleme politikamızı](/contributing/adding-desci-projects/) gözden geçirin! - -## Daha fazla bilgi {#further-reading} - -- [DeSci Wiki Jocelynn Pearl ve Ultrarare taradından hazırlandı](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) -- [Jocelynn Pearl tarafından a16z geleceği için merkeziyetsiz biyoteknoloji rehberi](https://future.a16z.com/a-guide-to-decentralized-biotech/) -- [DeSci için durum](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) -- [DeSci Rehberi](https://future.com/what-is-decentralized-science-aka-desci/) -- [Merkeziyetsiz bilim kaynakları](https://www.vincentweisser.com/decentralized-science) -- [Molekülün Biyofarması IP-NFT'ler - Teknik Bir Açıklama](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) -- [Bilim İçin Güvensiz Sistemler Geliştirmek, Jon Starr](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) -- [Biyoteknoloji DAO'larının Ortaya Çıkışı](https://molecule.to/blog/the-emergence-of-biotech-daos) -- [Paul Kohlhass - DeSci: Merkeziyetsiz Bilimin Geleceği (podcast)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) -- [Merkeziyetsiz Bilim İçin Bir Çıkarım Ontolojisi: Yerleşik Anlamlandırmadan Epistemik Müştereklere](https://zenodo.org/record/6320575) -- [DeSci: Araştırmanın Geleceği, Samuel Akinosho tarafından yazıldı](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) -- [Bilim Fonlaması (Son söz: DeSci ve yeni kripto ilkeleri) Nadia tarafından](https://nadia.xyz/science-funding) -- [Merkeziyetsizcilik İlaç Geliştirmeyi Engelliyor](https://medium.com/id-theory/decentralisation-is-disrupting-drug-development-28b5ba5d447f) - -### Videolar {#videos} - -- [Merkeziyetsiz Bilim nedir?](https://www.youtube.com/watch?v=-DeMklVWNdA) -- [Vitalik Buterin ve bilim insanı Aubrey de Grey'in uzun yaşam araştırmaları ve kriptonun kesişimi hakkındaki konuşması](https://www.youtube.com/watch?v=x9TSJK1widA) -- [Bilimsel Yayıncılık Bozuldu. Web3 Düzeltebilir mi?](https://www.youtube.com/watch?v=WkvzYgCvWj8) -- [Juan Benet - DeSci, Bağımsız Labaratuvarlar ve Büyük Ölçekli Veri Bilimi](https://www.youtube.com/watch?v=zkXM9H90g_E) -- [Sebastian Brunemeier - DeSci Biyomedikal Araştırmaları ve Girişim Şirketini Nasıl Dönüştürebilir](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/tr/developers/docs/mev/index.md b/src/content/translations/tr/developers/docs/mev/index.md deleted file mode 100644 index aee1f83274c..00000000000 --- a/src/content/translations/tr/developers/docs/mev/index.md +++ /dev/null @@ -1,221 +0,0 @@ ---- -title: Maksimal çıkarılabilir değer (MEV) -description: Maksimal çıkarılabilir değere (MEV) giriş -lang: tr ---- - -Maksimal çıkarılabilir değer (MEV), bir bloktaki işlemlerin sırasını dahil ederek, hariç tutarak ve değiştirerek standart blok ödülü ve gaz ücretlerini aşan blok üretiminden elde edilebilecek maksimum değeri ifade eder. - -### Madenci çıkarılabilir değeri {#miner-extractable-value} - -Maksimum çıkarılabilir değer, ilk olarak [iş ispatı](/developers/docs/consensus-mechanisms/pow/) bağlamında uygulandı ve başlangıçta "madenci çıkarılabilir değeri" olarak adlandırıldı. Bunun sebebi, iş ispatında katılım, çıkarım ve sıralamayı madencilerin kontrol etmesidir. Ancak, [Birleşim](/roadmap/merge) aracılığıyla hisse ispatına geçişten sonra bu rollerden doğrulayıcılar sorumlu olacak ve madencilik artık Ethereum protokolünün bir parçası olmayacaktır. Ancak değer çıkarım yöntemleri hala mevcuttur, yani artık bunun yerine "Maksimum çıkarılabilir değer" kullanılacaktır. - -## Ön Koşullar {#prerequisites} - -[İşlemler](/developers/docs/transactions/), [bloklar](/developers/docs/blocks/), [hisse ispatı](/developers/docs/consensus-mechanisms/pos) ve [gaz](/developers/docs/gas/) hakkında bilgi sahibi olduğunuzdan emin olun. [Merkeziyetsiz uygulamalar](/dapps/) ve [DeFi](/defi/) ile aşina olmak da faydalı olabilir. - -## MEV çıkarma {#mev-extraction} - -Teoride MEV, kârlı bir MEV fırsatının yürütülmesini garanti edebilecek tek taraf oldukları için tamamen doğrulayıcılara ilave edilir. Ancak pratikte, MEV'in büyük bir kısmı "arayıcılar" olarak bilinen bağımsız ağ katılımcıları tarafından çıkarılır. Arayıcılar kârlı MEV fırsatlarını tespit etmek için blok zinciri verisi üzerinde karmaşık algoritmalar çalıştırırlar ve botların otomatik olarak bu karlı işlemleri ağa göndermesini sağlarlar. - -Doğrulayıcılar tüm MEV miktarının bir kısmını her şekilde alırlar çünkü arayıcılar kârlı işlemlerinin bir bloğa katılımının yüksek ihtimali karşılığında yüksek gaz ücretleri (doğrulayıcılara giden) ödemeye razıdır. Arayıcıların ekonomik olarak rasyonel olduklarını varsayarsak, bir arayıcının ödemeye razı olduğu gaz ücreti, arayıcının MEV'sinin %100'üne kadar bir miktar olacaktır (çünkü gaz ücreti daha yüksek olsaydı, arayıcı para kaybederdi). - -Bununla birlikte, [merkeziyetsiz borsa arbitrajı](#mev-examples-dex-arbitrage) gibi oldukça rekabetçi MEV fırsatları için arayıcılar, toplam MEV gelirlerinin %90'ını veya daha fazlasını doğrulayıcıya gaz ücreti olarak ödemek zorundadır, çünkü pek çok insan aynı kârlı arbitraj ticareti yapmak ister. Bunun nedeni, arbitraj işlemlerinin devam etmesini garanti etmenin tek yolunun, işlemi en yüksek gaz fiyatıyla sunmak olmasıdır. - -### Gaz golfü {#mev-extraction-gas-golfing} - -Bu dinamik, "gaz golfü"nde iyi olmayı, yani işlemleri en az miktarda gaz kullanacak şekilde programlamayı bir rekabet avantajı hâline getirdi, çünkü bu, arayıcıların toplam gaz ücretlerini sabit tutarken daha yüksek bir gaz fiyatı belirlemesine olanak tanır (gaz ücretleri = gaz fiyatı \* kullanılan gaz). - -Birkaç iyi bilinen gazlı golf tekniği: daha az depolama alanı (ve böylece gaz) harcadıkları için uzun bir sıfır dizisiyle başlayan adresler kullanmak (ör. [0x000000000C521824EaFf97Eac7B73B084ef9306](https://etherscan.io/address/0x0000000000c521824eaff97eac7b73b084ef9306)); bir depolama yuvası başlatmak (bakiye 0 olduğunda gerçekleşen durum), bir depolama yuvasını güncellemekten daha fazla gaza mal olduğu için sözleşmelerde ufak bir [ERC-20](/developers/docs/standards/tokens/erc-20/) token bakiyesi bırakmak. Gaz kullanımını azaltmak için daha fazla teknik bulmak, arayıcılar arasında aktif bir araştırma alanıdır. - -### Genelleştirilmiş öncüler (frontrunner) {#mev-extraction-generalized-frontrunners} - -Kârlı MEV fırsatlarını tespit etmek için karmaşık algoritmalar programlamaktansa, bazı arayıcılar genelleştirilmiş öncüler kullanırlar. Genelleştirilmiş öncüler, bellek havuzunu kârlı işlemleri tespit etmek için izleyen botlardır. Öncü, kâr potansiyeli olan işlemin kodunu kopyalar, adresleri öncü adresiyle değiştirir ve değiştirilmiş işlemin öncü adresine kâr olarak döndüğünü iki kez kontrol etmek için işlemi yerel olarak çalıştırır. İşlem gerçekten kârlıysa öncü, değiştirilmiş işlemi değiştirilmiş adresle ve daha yüksek bir gaz ücretiyle gönderecektir, yani orijinal işleme "öncülük" yapacak ve orijinal arayıcının MEV'ini alacaktır. - -### Flashbotlar {#mev-extraction-flashbots} - -Flashbot'lar, yürütüm istemcilerini arama yapanların MEV işlemlerini genel bellek havuzuna açıklamadan doğrulayıcılara göndermelerine olanak tanıyan bir hizmetle genişleten bağımsız bir projedir. Bu, işlemlere genelleştirilmiş öncüler tarafından öncülük edilmesini önler. - -## MEV örnekleri {#mev-examples} - -MEV, blokzincirde birkaç şekilde ortaya çıkar. - -### DEX arbitrajı {#mev-examples-dex-arbitrage} - -[Merkeziyetsiz borsa](/glossary/#dex) (DEX) arbitrajı, en basit ve yaygın MEV fırsatıdır. Bunun sonucu olarak ayrıca en rekabetçi olanıdır. - -Şu şekilde çalışır: İki merkeziyetsiz borsa bir jetonu iki farklı fiyattan sunuyorsa, biri jetonu düşük fiyatlı merkeziyetsiz borsada satın alabilir ve tek bir atomik işlemde daha yüksek fiyatlı merkeziyetsiz borsada satabilir. Blokzincirin işleme şekli sayesinde bu, gerçek ve risksiz bir arbitrajdır. - -[Burada](https://etherscan.io/tx/0x5e1657ef0e9be9bc72efefe59a2528d0d730d478cfc9e6cdd09af9f997bb3ef4) bir araştırmacının Uniswap ve Sushiswap'ta ETH/DAI çiftinin farklı fiyatlandırmasından yararlanarak 1.000 ETH'yi 1.045 ETH'ye çevirdiği kârlı bir arbitraj işlemi örneği verilmiştir. - -### Likidasyon {#mev-examples-liquidations} - -Borç protokolü likidasyonları başka bir yaygın MEV fırsatı sunar. - -Maker ve Aave gibi borç verme protokolleri, kullanıcıların bir tür teminat (örneğin, ETH) yatırmasını gerektirir. Yatırılan teminat, sonrasında diğer kullanıcılara borç vermek için kullanılır. - -Kullanıcılar sonrasında diğerlerinden neye ihtiyaç duyduklarına göre (örn. bir MakerDAO yönetişim önerisinde oy vermek için MKR ödünç alabilirsiniz) yatırdıkları teminatın belli bir yüzdeliğine kadar varlık ve jeton ödünç alabilir. Örnek olarak, ödünç miktarı maksimum %30 ise, protokole 100 DAI yatıran bir kullanıcı başka bir varlıktan 30 DAI değerine kadar ödünç alabilir. Tam ödünç gücü yüzdesini protokol belirler. - -Bir borçlunun teminatı dalgalandıkça, borç alma gücü de azalır. Piyasa dalgalanmaları nedeniyle ödünç alınan varlıkların değeri, teminatlarının değerinin %30'unu aşarsa (yine, kesin yüzde protokol tarafından belirlenir), protokol tipik olarak herkesin teminatı likide etmesine izin vererek borç verenlere anında ödeme yapmasına izin verir (bu, geleneksel finanstaki [teminat çağrılarının](https://www.investopedia.com/terms/m/margincall.asp) işleyişine benzer). Likide edilirse, borçlu genellikle bir kısmı likide eden kişiye giden yüksek bir likidasyon ücreti ödemek zorundadır: MEV fırsatı bu noktada devreye girer. - -Arayıcılar, hangi borçluların likide edilebileceğini belirlemek ve bir likidasyon işlemi gönderen ve likidasyon ücretini kendileri için toplayan ilk kişi olmak için blok zinciri verilerini mümkün olduğunca hızlı bir şekilde ayrıştırmak için rekabet eder. - -### Sandviç ticareti {#mev-examples-sandwich-trading} - -Sandviç ticareti, başka bir yaygın MEV çıkarma yöntemidir. - -Arayıcı, sandviçlemek için bellek havuzunda büyük DEX ticaretleri arar. Örneğin, birinin Uniswap üzerinde DAI ile 10.000 UNI satın almak istediğini varsayalım. Bu büyüklükteki bir ticaret, UNI/DAI çifti üzerinde anlamlı bir etkiye sahip olacak ve DAI'ye göre UNI'nin fiyatını potansiyel olarak önemli ölçüde artıracaktır. - -Bir arayıcı, bu büyük ticaretin UNI/DAI çifti üzerindeki yaklaşık fiyat etkisini hesaplayabilir ve büyük ticaretten hemen _önce_ bir optimal satın alma emri yürüterek UNI'yi ucuza satın alabilir, ardından büyük ticaretten hemen _sonra_ bir satış emri yürüterek, büyük emirin neden olduğu daha yüksek fiyata satar. - -Ancak sandviçleme, atomik olmadığı için daha risklidir (yukarıda açıklandığı gibi DEX arbitrajının aksine) ve bir [salmonella saldırısına](https://github.com/Defi-Cartel/salmonella) açıktır. - -### NFT MEV {#mev-examples-nfts} - -MEV, NFT dünyası içinde yükselen bir fenomendir ve muhakkak kârlı olmayabilir. - -Bununla birlikte NFT işlemleri, diğer tüm Ethereum işlemleri tarafından paylaşılan aynı blok zincirinde gerçekleştiğinden, arayıcılar NFT pazarındaki geleneksel MEV fırsatlarında kullanılanlara benzer teknikleri de kullanabilirler. - -Örneğin, popüler bir NFT yayınlanacaksa ve bir arayıcı belirli bir NFT veya NFT seti istiyorsa, NFT'yi satın almak için ilk sırada olacak şekilde bir işlemi programlayabilir veya NFT setinin tamamını tek seferde tek işlemde satın alabilir. Veya bir NFT [hatayla düşük bir fiyata listelenirse](https://www.theblockcrypto.com/post/113546/mistake-sees-69000-cryptopunk-sold-for-less-than-a-cent), bir arayıcı diğer alıcıların önüne geçebilir ve onu ucuza kapabilir. - -Önde gelen bir NFT MEV örneği, bir arayıcı her bir Cryptopunk'u taban fiyatta [satın almak](https://etherscan.io/address/0x650dCdEB6ecF05aE3CAF30A70966E2F395d5E9E5) için 7 milyon $ harcadığında gerçekleşti. Bir blok zinciri araştırmacısı, [Twitter'da](https://twitter.com/IvanBogatyy/status/1422232184493121538) alıcının satın alım işlemini gizlemek için bir MEV sağlayıcısıyla nasıl çalıştığını açıkladı. - -### Uzun kuyruk {#mev-examples-long-tail} - -DEX arbitrajı, likidasyonlar ve sandviç ticareti çok iyi bilinen MEV fırsatlarıdır ve yeni arayıcılar için kârlı olmaları pek olası değildir. Bununla birlikte, daha az bilinen MEV fırsatlarından oluşan uzun bir kuyruk bulunur (NFT MEV'in böyle bir fırsat olduğu söylenebilir). - -Yeni başlayan arayıcılar, bu uzun kuyrukta MEV'i arayarak daha fazla başarıya erişebilirler. Flashbotların [MEV iş ilanları](https://github.com/flashbots/mev-job-board), bazı yükselen fırsatları listeler. - -## MEV'in etkileri {#effects-of-mev} - -MEV tamamen kötü değildir: Ethereum üzerinde MEV'in iyi ve kötü sonuçları bulunmaktadır. - -### İyi {#effects-of-mev-the-good} - -Birçok DeFi projesi, protokollerinin kullanışlılığını ve istikrarını sağlamak için ekonomik olarak rasyonel aktörlere güvenir. Örneğin DEX arbitrajı, kullanıcıların token'ları için en iyi, en doğru fiyatları almalarını sağlar ve borç verme protokolleri, borç verenlere ödeme yapılmasını sağlamak için borç alanlar teminatlandırma oranlarının altına düştüğünde hızlı likidasyonlara dayanır. - -Ekonomik verimsizlikleri araştıran ve düzelten ve protokollerin ekonomik teşviklerinden yararlanan rasyonel arayıcılar olmadan, DeFi protokolleri ve genel olarak dapp'ler bugün olduğu kadar sağlam olmayabilirdi. - -### Kötü {#effects-of-mev-the-bad} - -Uygulama katmanında, sandviç ticareti gibi bazı MEV biçimleri kullanıcılar için kesinlikle daha kötü bir deneyime neden olur. Sandviçlenen kullanıcılar yüksek düşüş ve ticaretlerinde daha kötü yürütme ile karşı karşıya kalırlar. - -Ağ katmanında, genelleştirilmiş öncüler ve sıklıkla katıldıkları gaz fiyatı açık artırmaları (iki veya daha fazla öncü, kendi işlemlerinin gaz fiyatını aşamalı olarak yükselterek işlemlerini bir sonraki bloğa dahil etmek için rekabet ettiğinde) normal işlemler yapmaya çalışan herkes için ağ tıkanıklığına ve yüksek gaz fiyatı maliyetine neden olur. - -Bloklar _içinde_ gerçekleşenlerin ötesinde MEV, bloklar _arası_ zararlı etkilere sahip olabilir. Bir blokta mevcut olan MEV, standart blok ödülünü önemli ölçüde aşarsa, doğrulayıcılar blokları yeniden düzenlemeye ve MEV'yi kendi adlarına yakalamaya teşvik edilebilir, bu da blok zincirinin yeniden düzenlenmesine ve mutabakat kararsızlığına neden olabilir. - -Blok zincirinin yeniden düzenlenmesine yönelik bu ihtimal [geçmişte Bitcoin blok zincirinde incelenmiştir](https://dl.acm.org/doi/10.1145/2976749.2978408). Bitcoin'in blok ödülü yarıları ve işlem ücretleri, blok ödülünün gitgide daha büyük bir bölümünü oluşturduğundan madencilerin bir sonraki bloğun ödülünden vazgeçmesinin ve bunun yerine geçmiş blokları daha yüksek ücretlerle yeniden kazmasının ekonomik olarak rasyonel hâle geldiği durumlar ortaya çıkıyor. MEV'nin büyümesiyle Ethereum'da benzer bir durum meydana gelebilir ve blok zincirinin bütünlüğü tehlikeye girebilir. - -## MEV'nin Durumu {#state-of-mev} - -MEV çıkarımı 2021'in başlarında balonlanarak yılın ilk birkaç ayında son derece yüksek gaz fiyatlarına neden oldu. Flashbotların MEV rölesinin ortaya çıkması, genelleştirilmiş öncülerin etkinliğini azalttı ve gaz fiyatı açık artırmalarını zincirden çıkararak sıradan kullanıcılar için gaz fiyatlarını düşürdü. - -Birçok araştırmacı MEV'den hala iyi para kazanırken, fırsatlar daha iyi bilinir hale geldikçe ve daha fazla araştırmacı aynı fırsat için rekabet ettikçe, madenciler/doğrulayıcılar giderek daha fazla toplam MEV geliri elde edecektir (çünkü başlangıçta yukarıda açıklananla aynı tür gaz açık artırmaları, özel olarak da olsa Flashbot'larda da gerçekleşir ve doğrulayıcılar ortaya çıkan gaz gelirini yakalar). MEV ayrıca Ethereum'a özgü değildir ve fırsatlar Ethereum'da daha rekabetçi hâle geldikçe arayıcılar, Ethereum'dakilere benzer MEV fırsatlarının daha az rekabetle mevcut olduğu Binance Smart Chain gibi alternatif blok zincirlerine yöneliyorlar. - -Öte yandan, iş ispatından hisse ispatına geçiş ve Ethereum'u toplamaları kullanarak ölçeklendirmeye yönelik süregelen çabalar, MEV görünümünü halen belirgin olmayan şekillerde değiştirmektedir. Garantili blok önericilerinin kısa bir süre önceden bilinmesinin, iş ispatındaki olasılıksal model ile karşılaştırılğında MEV çıkarma dinamiklerini nasıl etkileyeceği veya [tek gizli lider seçimi](https://ethresear.ch/t/secret-non-single-leader-election/11789) ve [dağıtılmış doğrulayıcı teknolojisi](/staking/dvt/) uygulandığında bunun nasıl bozulacağı henüz çok iyi bilinmemektedir. Benzer şekilde, hangi MEV fırsatlarının var olduğu, çoğu kullanıcı etkinliği Ethereum'dan uzağa ve katman 2 toplama ve parçalamalarına taşındığında görülecektir. - -## Ethereum Hisse İspatında (PoS) MEV {#mev-in-ethereum-proof-of-stake} - -Açıklandığı gibi, MEV genel kullanıcı deneyimi ve mutabakat katmanı güvenliği üzerinde negatif etkilere sahiptir. Ancak Ethereum'un bir hisse ispatı mutabakatına geçişi ("Birleşim"), MEV ile ilgili yeni riskler ortaya çıkarabilir: - -### Doğrulayıcı merkezileşmesi {#validator-centralization} - -Birleşim sonrası Ethereum'da, doğrulayıcılar (32 ETH'lik teminat yatırımları yapan) İşaret Zinciri'ne eklenen blokların doğruluğu hakkında mutabakata varır. 32 ETH çoğu kişinin erişebileceği bir şey olmadığı için [bir paydaşlık havuzuna katılmak](/staking/pools/) daha makul bir seçenek olabilir. Buna rağmen, [tekil paydaş](/staking/solo/)ların sağlıklı dağılımı idealdir, çünkü doğrulayıcıların merkezileşmesini hafifletir ve Ethereum'un güvenliğini geliştirir. - -Ancak, MEV çıkarımının doğrulayıcı merkezileşmesini hızlandırabilme kabiliyetine sahip olduğuna inanılmaktadır. Bunun nedeni kısmen şudur; doğrulayıcılar [blok önerdiklerinde madencilerin şu anda kazandığından daha az kazanacakları](/roadmap/merge/issuance/#how-the-merge-impacts-ETH-supply) için MEV çıkarımı, Birleşim sonrası [doğrulayıcı kazançlarını büyük ölçüde etkileyebilir](https://github.com/flashbots/eth2-research/blob/main/notebooks/mev-in-eth2/eth2-mev-calc.ipynb). - -Daha büyük paydaşlık havuzları muhtemelen MEV fırsatlarını yakalamak için gerekli optimizasyonlara yatırım yapmak adına daha çok kaynağa sahip olacaktır. Bu havuzların çıkardığı MEV arttıkça, MEV çıkarım kabiliyetlerini geliştirmeleri (ve genel kazancı artırmak) için daha çok kaynağa sahip olacaklar ve sonucunda [ölçek ekonomileri](https://www.investopedia.com/terms/e/economiesofscale.asp#) ortaya çıkacaktır. - -Kullanım için daha az kaynak olduğunda, tekil paydaşlar MEV fırsatlarından kâr elde edemeyebilir. Bu, bağımsız doğrulayıcıların kazançlarını artırmak için güçlü paydaş havuzlarına katılmasına yönelik baskıyı artırarak Ethereum'da merkeziyetsizliği düşürebilir. - -### Yetkilendirilmiş bellek havuzları {#permissioned-mempools} - -Sandviç ve genelleştirilmiş öncü (frontrunner) saldırılarına karşılık olarak tacirler, işlem gizliliği için doğrulayıcılarla zincir dışında anlaşmalar yapmaya başlayabilir. Tacirler, potansiyel MEV işlemlerini bellek havuzuna göndermek yerine, işlemleri ddoğrudan bunları bloklara işleyen doğrulayıcılara gönderir ve kar paylaşılır. - -"Karanlık havuzlar" bu anlaşmanın daha büyük versiyonlarıdır ve bunlar belirli ücretler ödemek isteyen kullanıcılara açık, yetkilendirilmiş, yalnızca erişimi olanlara açık bellek havuzları olarak çalışırlar. Bu trend, Ethereum'un izin ve güven gerektirmezliğini azaltır ve potansiyel olarak blokzinciri en yüksek teklif vereni ödüllendirecek bir "kazanmak-için-öde" mekanizmasına dönüştürür. - -İzin gerektiren bellek havuzları, yukarıda bahsedilen merkezileşme risklerini de arttıracaktır. Birden çok doğrulayıcı çalıştıran büyük havuzlar, tacirlere ve kullanıcılara işlem gizliliği sunmaktan büyük olasılıkla kazanç sağlayacak ve MEV gelirlerini artıracaktır. - -Birleşim sonrası Ethereum'da MEV ile ilgili bu problemlerle mücadele etmek, temel bir araştırma alanıdır. Bugüne kadar, MEV'nin Ethereum'un merkeziyetsizliği ve Birleşim sonrasında güvenliği üzerindeki olumsuz etkisini azaltmak için önerilen iki çözüm, **Önerici - İnşacı Ayrımı (PBS)** ve **İnşacı API**'dir. - -### Önerici-İnşacı Ayrımı {#proposer-builder-separation} - -Hem iş ispatı hem de hisse ispatında bir blok inşa eden düğüm, onu zincire eklenmesi için mutabakata katılan diğer düğümlere önerir. Yeni bir blok başka bir madenci onun üzerine inşa ettiğinde (PoW'da) veya doğrulayıcıların çoğunluğundan tasdik aldığında (PoS'ta) kanonik zincirin parçası olur. - -Blok üreticisi ve blok önericisinin rollerinin kombinasyonu, önceden açıklanmış olan MEV ile ilgili sorunların çoğunu ortaya çıkaran şeydir. Örnek olarak mutabakat düğümleri, MEV kazançlarını en üst seviyeye çıkartmak amaçlı zaman hırsızı saldırılarında zincir yeniden düzenlemelerini tetiklemek için teşvik edilir. - -[Önerici-inşacı ayrımı](https://ethresear.ch/t/proposer-block-builder-separation-friendly-fee-market-designs/9725) (PBS) MEV'nin özellikle fikir birliği katmanındaki etkisini azaltmak için tasarlanmıştır. PBS'nin ana özelliği, blok üreticisi ile blok önericisi kurallarının ayrımıdır. Doğrulayıcılar yine bloklar önermekten ve oylamaktan sorumludur ancak **blok inşacıları** denilen yeni uzman bir varlık sınıfı işlemleri sıralamak ve bloklar inşa etmekle görevlendirilmiştir. - -Bir blok inşacısı, PBS altında bir işlem kümesi oluşturur ve bu kümenin bir İşaret Zinciri bloğuna dahil edilmesi için bir teklif sunar ("yürütme yükü" olarak). Sıradaki bloğu önermek için seçilen doğrulayıcı sonrasında farklı teklifleri inceler ve en yüksek ücretli kümeyi seçer. PBS temelde inşacıların blok alanı satan doğrulayıcılar ile pazarlık edeceği bir ihale piyasası oluşturur. - -Mevcut PBS tasarımları, inşacıların bir bloğun içeriğine (blok başlığı) teklifleri ile beraber kriptografik bir taahhüt paylaştığı bir [taahhüt etme-açığa çıkarma](https://gitcoin.co/blog/commit-reveal-scheme-on-ethereum/) şeması kullanır. Kazanan teklifi kabul ettikten sonra, önerici blok başlığını kapsayan imzalı bir blok önerisi oluşturur. Blok inşacısının imzalı blok önerisini gördükten sonra tam blok gövdesini paylaşması beklenir ve ayrıca kesinleştirilmeden önce doğrulayıcılardan yeterli sayıda [tasdik](/glossary/#attestation) alması gerekir. - -#### Önerici-inşacı ayrımı MEV'nin etkisini nasıl hafifletir? {#how-does-pbs-curb-mev-impact} - -Protokol içi önerici-inşacı ayrımı, MEV çıkarımını doğrulayıcıların sahasından kaldırarak MEV'nin mutabakat üzerindeki etkisini azaltır. Bunun yerine, bundan sonra uzman donanımlar çalıştıran blok inşacıları MEV fırsatlarını yakalayacaktır. - -Ancak bu, inşacılar bloklarının doğrulayıcılar tarafından kabul edilmesi için yüksek teklifler vermek zorunda olduğundan doğrulayıcıları MEV ile ilgili gelirlerin tamamen dışında bırakmaz. Buna rağmen, doğrulayıcılar artık doğrudan MEV getirisini optimize etmeye odaklı olmayacağı için zaman hırsızı saldırılarının tehdit düzeyi azalır. - -Önerici-inşacı ayrımı ayrıca MEV'nin merkezileşme risklerini de azaltır. Örnek olarak, bir taahhüt etme-açığa çıkarma şemasının kullanımı, inşacıların doğrulayıcılara MEV fırsatını çalmamaları veya diğer inşacılara ifşa etmemeleri için güvenmesi gerekliliğini ortadan kaldırır. Bu, tekil paydaşların MEV'den fayda sağlaması önündeki engeli küçültür; aksi takdirde, inşacılar zincir dışında itibarı olan büyük havuzları tercih etmeye ve onlarla zincir dışı anlaşmalar gerçekleştirmeye yönelirdi. - -Benzer şekilde, ödeme koşulsuz olduğu için doğrulayıcıların da inşacılara blok gövdelerini tutmamaları veya geçersiz bloklar yayımlamamaları için güvenmeye ihtiyaçları yoktur. Önerilen blok kullanılabilir olmasa veya diğer doğrulayıcılar tarafından geçersiz sayılsa bile doğrulayıcının ücreti işlenir. İkinci durumda, blok atılarak blok inşacısının tüm işlem ücretlerini ve MEV getirisini kaybetmesine yol açar. - -### İnşacı API {#builder-api} - -Önerici-inşacı ayrımı MEV'nin etkilerini azaltmayı vaat etse de, bunu uygulamak için mutabakat protokolünün değişmesi gerekir. Özellikle İşaret Zinciri'ndeki [çatallanma seçimi](/developers/docs/consensus-mechanisms/pos/#fork-choice) kuralının güncellenmesi gerekecektir. [İnşacı API](https://github.com/ethereum/builder-specs), daha yüksek güven varsayımlarıyla da olsa önerici-inşacı ayrımına çalışan bir uygulama sunmayı amaçlayan geçici bir çözümdür. - -İnşacı API, fikir birliği katmanı istemcileri tarafından yürütüm katmanı istemcilerinden yürütme yüklerini istemek amacıyla kullanılan [Motor API](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md)'nin geliştirilmiş bir versiyonudur. [Dürüst doğrulayıcı spesifikasyonunda](https://github.com/ethereum/consensus-specs/blob/dev/specs/bellatrix/validator.md) özetlendiği gibi, blok önerme görevleri için seçilen doğrulayıcılar, bağlı bir yürütüm istemcisinden önerilen İşaret Zinciri bloğuna ekledikleri bir işlem paketi talep eder. - -İnşacı API, ayrıca doğrulayıcılar ile yürütme katmanı istemcileri arasında bir ara yazılım görevi görür; ancak İşaret Zinciri'ndeki doğrulayıcıların blokları harici varlık almalarına izin verdiği için farklıdır (bir yürütüm istemcisi kullanarak yerel olarak blok oluşturmak yerine). - -İnşacı API'nin çalışma şekline genel bir bakışı aşağıda bulabilirsiniz: - -1. İnşacı API, doğrulayıcıyı yürütüm katmanı istemcilerini çalıştıran blok inşacılarının ağına bağlar. PBS'de olduğu gibi, inşacılar kaynak olarak yoğun blok inşasına yatırım yapan ve MEV + öncelik bahşişlerinden gelen geliri maksimize etmek için farklı stratejiler kullanan uzman taraflardır. - -2. Bir doğrulayıcı (fikir birliği katmanı istemcisi çalıştıran), inşacı ağından teklifler ile beraber yürütme yükleri ister. İnşacıların teklifleri yürütme yükü başlığını (yükün içeriğine yönelik bir kriptografik taahhüt) ve doğrulayıcıya ödenecek ücreti içerecektir. - -3. Doğrulayıcı, gelen teklifleri inceleyecek ve en yüksek ücretli yürütme yükünü seçecektir. Doğrulayıcı, İnşacı API'yi kullanarak sadece kendi imzasını ve yürütme yükü başlığını içeren "kör" bir İşaret bloğu önerisi oluşturur ve inşacıya gönderir. - -4. İnşacı API çalıştıran inşacının kör blok önerisini gördüğünde tam yürütme yükü ile cevap vermesi beklenir. Bu, doğrulayıcının ağa yayımlayacağı "imzalı" bir İşaret bloğu oluşturmasını sağlar. - -5. İnşacı API kullanan bir doğrulayıcının, blok önerisi ödüllerini kaçırmamak adına blok oluşturucunun hemen yanıt vermemesi durumunda yerel olarak bir blok oluşturması beklenir. Fakat doğrulayıcı, o anda açığa çıkarılan işlemleri veya başka bir kümeyi kullanarak yeni blok oluşturamaz. Çünkü bu durumda, kesme ile cezalandırabilecek bir suç olan _yanıltmaca_ (aynı yuva içinde iki bloğu imzalama) gerçekleşir. - -İnşacı API uygulamasının bir örneği, MEV'nin Ethereum üzerindeki olumsuz dışsallıklarını azaltmak için tasarlanan [Flashbotlar açık arttırma mekanizması](https://docs.flashbots.net/Flashbots-auction/overview/) olan [MEV Boost](https://github.com/flashbots/mev-boost)'tur. Flashbotlar açık artırması, iş ispatındaki madencilerin kar eden bloklar oluşturma işini **araştırmacılar** olarak adlandıran uzmanlaşmış taraflara yaptırabilmesini sağlar. - -Araştırmacılar, kazançlı MEV fırsatları arar ve madencilere bloğa dahil edilmek üzere işlem paketlerini [kapalı fiyat teklifi](https://en.wikipedia.org/wiki/First-price_sealed-bid_auction) ile birlikte gönderir. Go-ethereum (Geth) istemcisinin çatallı bir versiyonu olan mev-geth'i çalıştıran madencinin tek yapması gereken, en fazla kârı sağlayan paketi seçmek ve yeni bloğun bir parçası olacak şekilde madencilik yapmaktır. Madencileri istenmeyen mesaj ve geçersiz işlemlerden korumak için işlem paketleri madencilere ulaşmadan önce doğrulama için **aktarıcılardan** geçer. - -MEV Boost, Ethereum'un hisse ispatına geçişi için tasarlanmış yeni özellikleri olsa da, başlangıçtaki Flashbotlar açık artırmasıyla aynı işleyişi korur. Araştırmacılar hala bloklara eklemek üzere kazançlı MEV işlemleri bulmaktadır. Ancak **inşacılar** olarak adlandırılan yeni bir grup, işlemleri ve paketleri bloklara yerleştirmekten sorumludur. İnşacılar araştırmacıların kapalı fiyat tekliflerini kabul eder ve en kazançlı sıralamayı bulmak için optimizasyon yapar. - -Aktarıcı, işlem paketlerini önericiye aktarmadan önce onaylamaktan hala sorumludur. Ancak MEV Boost, inşacılar tarafından gönderilen blok gövdelerini ve doğrulayıcılar tarafından gönderilen blok başlıklarını depolayarak [veri kullanılabilirliği](/developers/docs/data-availability/) sağlamaktan sorumlu **emanetler** sunar. Burada bir aktarıcıya bağlı bir doğrulayıcı, kullanılabilir yürütme yüklerini ister ve en yüksek teklifi + MEV ipuçlarını içeren yük başlığını seçmek için MEV Boost'un sıralama algoritmasını kullanır. - -#### İnşacı API MEV'nin etkisini nasıl azaltır? {#how-does-builder-api-curb-mev-impact} - -İnşacı API'nin en temel faydası, MEV fırsatlarına erişimi demokratik hale getirme potansiyelidir. Taahhüt etme - açığa çıkarma şemalarını kullanmak, güven varsayımlarını ortadan kaldırır ve MEV'den yararlanmak isteyen doğrulayıcılar için giriş engellerini azaltır. Bu durum, MEV kazançlarını arttırmak için büyük paydaş havuzlarıyla etkileşime giren tekil paydaşlar üzerindeki baskıyı azaltacaktır. - -İnşacı API'nin yaygın kullanımı, blok inşacıları arasında daha büyük bir rekabeti beraberinde getirecek ve bu durum, sansüre karşı direnci artıracaktır. Doğrulayıcılar birden çok inşacıdan gelen teklifleri gözden geçirdikçe, bir veya daha fazla kullanıcı işlemini sansürlemeyi amaçlayan inşacıların başarılı olabilmesi için sansür uygulamayan diğer tüm inşacılardan yüksek teklif vermesi gerekecektir. Bu durum, sansür uygulayan kullanıcıların maliyetini ciddi şekilde yükseltir ve sansür uygulanmasına karşı caydırıcı etki oluşturur. - -MEV Boost gibi bazı projeler, genelleştirilmiş öncü/sandviç saldırılarından kaçınmaya çalışan tacirler gibi belirli taraflara işlem gizliliği sağlamak için tasarlanmış genel bir yapının parçası olarak İnşacı API'yi kullanır. Bu, kullanıcılar ve blok inşacıları arasında özel bir iletişim kanalı sağlanarak elde edilir. Daha önce bahsedilen izin gerektiren bellek havuzlarından farklı olarak bu bakış açısı aşağıda belirtilen sebeplerden dolayı faydalıdır: - -1. Piyasada birden fazla inşacının bulunması sansürü kullanışsız kılar ve bu durum kullanıcılar için faydalıdır. Bunun aksine, merkezi ve güvene dayalı karanlık havuzların varlığı, gücün birkaç blok inşacısının elinde yoğunlaşmasına ve sansür olasılığının artmasına neden olacaktır. - -2. İnşacı API yazılımı açık kaynaklıdır ve herkesin blok inşa hizmetleri sunmasına olanak tanır. Bu, kullanıcıların herhangi bir blok inşacısını kullanmaya zorlanmadığı ve Ethereum'un tarafsızlığını ve izin gerektirmezliğini artırdığı anlamına gelir. Üstelik MEV arayışında olan tacirler, özel işlem kanallarını kullanarak istemeden merkezileşmeye katkıda bulunmayacaklardır. - -## İlgili kaynaklar {#related-resources} - -- [Flashbot belgeleri](https://docs.flashbots.net/) -- [Flashbotlar GitHub](https://github.com/flashbots/pm) -- [MEV-Explore](https://explore.flashbots.net/) _MEV işlemleri için gösterge paneli ve canlı işlem gezgini_ -- [mevboost.org](https://www.mevboost.org/)-_ MEV-Boost röle ve blok inşacıları için gerçek zamanlı istatistiklere sahip izleyici_ - -## Daha fazla okuma {#further-reading} - -- [Madenci Çıkarılabilirlik Değeri (MEV) nedir?](https://blog.chain.link/what-is-miner-extractable-value-mev/) -- [MEV ve Ben](https://www.paradigm.xyz/2021/02/mev-and-me) -- [Ethereum Karanlık bir Ormandır](https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest/) -- [Karanlık Ormandan Kaçış](https://samczsun.com/escaping-the-dark-forest/) -- [Flashbotlar: MEV Krizine Öncülük Etmek](https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752) -- [@bertcmiller'ın MEV Yazıları](https://twitter.com/bertcmiller/status/1402665992422047747) -- [MEV-Boost: Birleşime hazır Flashbot'lar Mimarisi](https://ethresear.ch/t/mev-boost-merge-ready-flashbots-architecture/11177) -- [MEV-Boost nedir?](https://www.alchemy.com/overviews/mev-boost) -- [MEV-Boost neden çalıştırılmalı?](https://writings.flashbots.net/writings/why-run-mevboost/) -- [Otostopçunun Ethereum El Kitabı](https://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum) diff --git a/src/content/translations/tr/developers/docs/networking-layer/index.md b/src/content/translations/tr/developers/docs/networking-layer/index.md deleted file mode 100644 index f7824f21632..00000000000 --- a/src/content/translations/tr/developers/docs/networking-layer/index.md +++ /dev/null @@ -1,155 +0,0 @@ ---- -title: Ağ katmanı -description: Ethereum ağ katmanına giriş. -lang: tr -sidebarDepth: 2 ---- - -Ethereum, standart protokoller kullanarak birbirleriyle iletişim kurabilmesi gereken, binlerce düğüme sahip, eşler arası bir ağdır. "Ağ katmanı", bu düğümlerin birbirini bulmasını ve bilgi alışverişinde bulunmasını sağlayan protokoller yığınıdır. Bu, ağ üzerinden "dedikodu" bilgilerini (birden çoğa iletişim) ve belirli düğümler arasında istekleri ve yanıtları değiş tokuş etmeyi (bire bir iletişim) içerir. Her düğüm, doğru bilgileri gönderip aldıklarından emin olmak için belirli ağ kurallarına uymalıdır. - -İstemci yazılımının, her biri kendi ayrı ağ yığınına sahip iki kısmı (yürütüm istemcileri ve fikir birliği istemcileri) vardır. Diğer Ethereum düğümleriyle iletişim kurmanın yanı sıra, yürütme ve konsensus istemcilerinin birbirleriyle iletişim kurması gerekir. Bu sayfa, bu iletişimi sağlayan protokollerin giriş niteliğinde bir açıklamasını verir. - -Yürütüm istemcileri, yürütüm katmanı eşler arası ağı üzerinden işlemleri yayarlar. Bu, kimliği doğrulanmış eşler arasında şifrelenmiş iletişimi gerektirir. Blok önermek için bir doğrulayıcı seçildiğinde düğümün yerel işlem havuzundan geçen işlemler, İşaret blokları şeklinde paketlenerek RPC bağlantısı aracılığı ile fikir birliği istemcilerine iletilir. Bunun ardından, fikir birliği istemcileri eşler arası ağlarında İşaret bloklarını yayar. Bu, biri işlemin yayılması için yürütüm istemcilerine, diğeri ise bloğun yayılması için fikir birliği istemcilerine bağlanan iki farklı p2p ağı gerektirir. - -## Ön koşullar {#prerequisites} - -Ethereum [düğümleri ve istemcileri](/developers/docs/nodes-and-clients/) hakkında biraz bilgi edinmeniz, bu sayfayı anlamanıza yardımcı olacaktır. - -## Yürütüm katmanı {#execution-layer} - -Yürütme katmanının ağ protokolleri iki yığına bölünmüştür: - -- keşif yığını: UDP'nin üzerine inşa edilmiştir ve yeni bir düğümün bağlanacak eşler bulmasını sağlar - -- devP2P yığını: TCP'nin üzerinde yer alır ve düğümlerin bilgi alışverişinde bulunmasını sağlar - -Her iki yığın paralel çalışır. Keşif yığını, yeni ağ katılımcılarını ağa besler ve DevP2P yığını, onların etkileşimlerini sağlar. - -### Keşif {#discovery} - -Keşif, ağdaki diğer düğümleri bulma işlemidir. Bu, küçük bir dizi önyükleme düğümü, anında bulunabilmeleri ve istemciyi eşlere bağlayabilmeleri için (adresleri [sabit kodlanmış](https://github.com/ethereum/go-ethereum/blob/master/params/bootnodes.go) olan düğümler kullanılarak önyüklenir). Bu önyükleme düğümleri yalnızca bir dizi eşe, yeni bir düğüm tanıtmak için var olur - bu onların tek amacıdır, zinciri senkronize etmek gibi normal istemci görevlerine katılmazlar ve yalnızca bir istemci ilk kez çalıştırıldığında kullanılırlar. - -Düğüm-önyükleme düğümü etkileşimleri için kullanılan protokol, [Kademlia](https://medium.com/coinmonks/a-brief-overview-of-kademlia-and-its-use-in-various-decentralized-platforms-da08a7f72b8f), düğüm listelerini paylaşmak için [dağıtılmış karma tablosu](https://en.wikipedia.org/wiki/Distributed_hash_table) kullanır. Her düğümün, en yakın eşlerine bağlanmak için gereken bilgileri içeren bu tablonun bir sürümü vardır. Bu 'yakınlık' coğrafi değildir - mesafe, düğüm kimliğinin benzerliği ile tanımlanır. Her düğümün tablosu, bir güvenlik özelliği olarak düzenli olarak yenilenir. Örneğin, [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5)'te, keşif protokolü düğümleri, istemcinin desteklediği alt protokolleri görüntüleyen 'reklamlar' da gönderebilir, bu da eşlerin, her ikisinin de iletişim kurmak için kullanabilecekleri protokoller hakkında pazarlık yapmasına olanak tanır. - -Keşif, bir PİNG-PONG oyunuyla başlar. Başarılı bir PING-PONG, yeni düğümü bir önyükleme düğümüne "bağlar". Bir önyükleme düğümünü ağa giren yeni bir düğümün varlığı konusunda uyaran ilk mesaj bir `PING`'dir. Bu `PING`, yeni düğüm, önyükleme düğümü ve bir sona erme zaman damgası hakkında hash edilmiş bilgileri içerir. Başlangıç düğümü `PING`'i alır ve `PING` karmasını içeren bir `PONG` döndürür. `PING` ve `PONG` karma değerleri eşleşirse, yeni düğüm ile önyükleme düğümü arasındaki bağlantı doğrulanır ve "bağlı" oldukları söylenir. - -Bağlandıktan sonra, yeni düğüm, önyükleme düğümüne bir `KOMŞUNU BUL` isteği gönderebilir. Önyükleme düğümü tarafından döndürülen veriler, yeni düğümün bağlanabileceği eşlerin bir listesini içerir. Düğümler bağlı değilse, `KOMŞULARI BUL` isteği başarısız olur, bu nedenle yeni düğüm ağa giremez. - -Yeni düğüm, önyükleme düğümünden komşuların bir listesini aldığında, her biri ile bir PING-PONG alışverişi başlatır. Başarılı PING-PONG'lar yeni düğümü, komşularına bağlayarak mesaj alışverişini mümkün kılar. - -``` -istemciyi başlat --> önyükleme düğümüne bağlan --> önyükleme düğümüne bağ --> komşuları bul --> komşularla bağ -``` - -Yürütüm istemcileri şu anda [Discv4](https://github.com/ethereum/devp2p/blob/master/discv4.md) keşif protokolünü kullanıyor ve [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5) protokolüne geçmek için aktif bir çaba söz konusudur. - -#### ENR: Ethereum Düğüm Kayıtları {#enr} - -[Ethereum Düğüm Kaydı (ENR)](/developers/docs/networking-layer/network-addresses/), üç temel öğeyi içeren bir nesnedir: bir imza (kabul edilmiş kimlik şemasına uygun şekilde yapılmış kayıt içerikleri karması), kayıtta yapılan değişiklikleri takip eden bir sıra numarası ve keyfi anahtar listesi: değer çiftleri. Bu, yeni eşler arasında daha kolay tanımlayıcı bilgi alışverişi sağlayan geleceğe yönelik bir biçimdir ve Ethereum düğümleri için tercih edilen [ağ adresi](/developers/docs/networking-layer/network-addresses) biçimidir. - -#### Keşif neden UDP üzerine kuruludur? {#why-udp} - -UDP, herhangi bir hata kontrolünü, başarısız paketlerin yeniden gönderilmesini veya dinamik olarak bağlantıların açılıp kapanmasını desteklemez - bunun yerine, başarılı bir şekilde alınıp alınmadığına bakılmaksızın, yalnızca bir hedefe, sürekli bir bilgi akışı gönderir. Bu minimum işlevsellik, aynı zamanda minimum ek yük anlamına gelir ve bu tür bir bağlantıyı çok hızlı hale getirir. Keşif için, bir düğümün bir akran ile resmi bir bağlantı kurmak için sadece varlığını bildirmek istediği durumlarda, UDP yeterlidir. Ancak, ağ yığınının geri kalanı için UDP amaca uygun değildir. Düğümler arasındaki bilgi alışverişi oldukça karmaşıktır ve bu nedenle yeniden gönderme, hata denetimi vb. destekleyebilen daha tam özellikli bir protokole ihtiyaç duyar. TCP ile ilişkili ek yük, ek işlevsellik değerindedir. Bu nedenle, P2P yığınının çoğunluğu TCP üzerinden çalışır. - -### DevP2P {#devp2p} - -DevP2P'nin kendisi, Ethereum'un eşler arası ağı kurmak ve sürdürmek için uyguladığı bir protokol yığınıdır. Yeni düğümler ağa girdikten sonra, etkileşimleri [DevP2P](https://github.com/ethereum/devp2p) yığınındaki protokoller tarafından yönetilir. Bunların tümü TCP'nin üzerinde yer alır ve RLPx aktarım protokolünü, kablo protokolünü ve birkaç alt protokolü içerir. [RLPx](https://github.com/ethereum/devp2p/blob/master/rlpx.md), düğümler arasındaki oturumları başlatmayı, doğrulamayı ve sürdürmeyi yöneten protokoldür. RLPx, düğümler arasında göndermek için verileri minimum bir yapıya kodlamak için alan açısından çok verimli bir yöntem olan RLP'yi (Yinelemeli Uzunluk Öneki) kullanarak mesajları kodlar. - -İki düğüm arasındaki bir RLPx oturumu, ilk olarak kriptografik el sıkışma ile başlar. Bu, düğümün daha sonra eş tarafından doğrulanan bir yetkilendirme mesajı göndermesini içerir. Başarılı doğrulamadan sonra, eş, başlatıcı düğüme geri dönmek için bir yetkilendirme alındı mesajı oluşturur. Bu, düğümlerin özel ve güvenli bir şekilde iletişim kurmasını sağlayan bir anahtar değişim sürecidir. Başarılı bir kriptografik el sıkışma, daha sonra her iki düğümü de birbirlerine "kablo üzerinden" bir "merhaba" mesajı göndermeleri için tetikler. Kablo protokolü, başarılı bir merhaba mesaj alışverişi ile başlatılır. - -Merhaba mesajları şunları içerir: - -- protokol versiyonu -- istemci kimliği -- bağlantı noktası -- düğüm ID'si -- desteklenen alt protokollerin listesi - -Bu, başarılı bir etkileşim için gereken bilgidir, çünkü her iki düğüm arasında hangi yeteneklerin paylaşıldığını tanımlar ve iletişimi yapılandırır. Her düğüm tarafından desteklenen alt protokol listelerinin karşılaştırıldığı ve her iki düğüm için ortak olanların oturumda kullanılabileceği bir alt protokol görüşmesi süreci vardır. - -Merhaba mesajları ile birlikte, kablo protokolü ayrıca bir eşe bağlantının kapatılacağı konusunda uyarı veren bir "bağlantıyı kes" mesajı da gönderebilir. Kablo protokolü ayrıca, bir oturumu açık tutmak için periyodik olarak gönderilen PING ve PONG mesajlarını da içerir. RLPx ve kablolu protokol değiş tokuşları, bu nedenle, belirli bir alt protokole göre değiş tokuş edilecek faydalı bilgiler için iskele sağlayarak, düğümler arasındaki iletişimin temellerini oluşturur. - -### Alt-protokoller {#sub-protocols} - -#### Kablo protokolü {#wire-protocol} - -Eşler bağlandığında ve bir RLPx oturumu başlatıldığında, kablo protokolü eşlerin nasıl iletişim kurduğunu tanımlar. Kablo protokolü başlangıçta üç ana görevi tanımlıyordu: zincir senkronizasyonu, blok yayılımı ve işlem değişimi. Bununla birlikte, Ethereum hisse ispatına geçiş yaptıktan sonra blok yayılımı ve zincir senkronizasyonu, fikir birliği katmanının bir parçası haline geldi. İşlem borsası, hala yürütüm istemcilerinin faaliyet alanındadır. İşlem bilgisi değişimi, madencilerin bir sonraki bloğa dahil edilmek üzere bazılarını seçebilmeleri için düğümler arasında bekleyen işlemlerin değiş tokuşunu ifade eder. Bu görevlerle ilgili ayrıntılı bilgilere [buradan](https://github.com/ethereum/devp2p/blob/master/caps/eth.md) ulaşabilirsiniz. Bu alt protokolleri destekleyen istemciler, bunları [JSON-RPC](/developers/docs/apis/json-rpc/) aracılığıyla kullanıma sunar. - -#### les (hafif ethereum alt protokolü) {#les} - -Bu, hafif istemcileri senkronize etmek için minimum bir protokoldür. Geleneksel olarak bu protokol nadiren kullanılmıştır, çünkü tam düğümlerin hafif istemcilere teşvik olmadan veri sunması gerekir. Yürütme istemcilerinin varsayılan davranışı, hafif istemci verilerini les üzerinden sunmamaktır. Daha fazla bilgi les [spesifikasyonu](https://github.com/ethereum/devp2p/blob/master/caps/les.md)nda mevcuttur. - -#### Snap {#snap} - -[Snap protokolü](https://github.com/ethereum/devp2p/blob/master/caps/snap.md#ethereum-snapshot-protocol-snap), eşlere, son durumların anlık görüntülerini değiş tokuş etmek için, eşlerin ara Merkle trie düğümlerini indirmesine gerek kalmadan hesap ve depolama verilerini doğrulamasına izin veren isteğe bağlı bir uzantıdır. - -#### Wit (tanık protokolü) {#wit} - -[Tanık protokolü](https://github.com/ethereum/devp2p/blob/master/caps/wit.md#ethereum-witness-protocol-wit), eşler arasında durum şahitlerinin değiş tokuşunu sağlayan ve istemcileri zincirin ucuna senkronize etmeye yardımcı olan isteğe bağlı bir uzantıdır. - -#### Fısıltı {#whisper} - -Fısıltı, blok zincirine herhangi bir bilgi yazmadan eşler arasında güvenli mesajlaşma sağlamayı amaçlayan bir protokoldü. DevP2P tel protokolünün bir parçasıydı, ancak artık kullanımdan kaldırıldı. Benzer amaçlara sahip başka [ilgili projeler](https://wakunetwork.com/) de mevcuttur. - -## Konsensus katmanı {#consensus-layer} - -Konsensus istemcileri, farklı bir özellik ile ayrı bir eşler arası ağda yer alır. Konsensus istemcilerinin, eşlerinden yeni bloklar alabilmeleri ve blok teklif sahibi olma sırası kendilerine geldiğinde bunları yayınlayabilmeleri için blok dedikodularına katılmaları gerekir. Bu, yürütüm katmanına benzer şekilde ilk olarak bir keşif protokolü gerektirir, böylece bir düğüm eşleri bulabilir ve bloklar, tasdikler vb. alışverişi için güvenli oturumlar kurabilir. - -### Keşif {#consensus-discovery} - -Fikir birliği istemcileri, yürütüm istemcilerine benzer şekilde eş bulmak için UDP üzerinden [discv5](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-discovery-domain-discv5) kullanır. Discv5'in konsensus katmanı uygulaması, yalnızca discv5'i bir [libP2P](https://libp2p.io/) yığınına bağlayan ve DevP2P'yi kullanımdan kaldıran bir adaptör içermesi bakımından yürütme istemcilerinden farklıdır. Yürütüm katmanının RLPx oturumları, libP2P'nin gürültü güvenli kanal anlaşması lehine kullanımdan kaldırılmıştır. - -### ENRler {#consensus-enr} - -Konsensüs düğümleri için ENR, düğümün genel anahtarını, IP adresini, UDP ve TCP bağlantı noktalarını ve iki konsensusa özgü alanı içerir: onay alt ağı bit alanı ve `eth2` anahtarı. İlki, düğümlerin belirli tasdik dedikodu alt ağlarına katılan eşler bulmasını kolaylaştırır. `eth2` anahtarı, eşlerin doğru Ethereum'a bağlanmasını sağlayarak, düğümün hangi Ethereum çatalı sürümünü kullandığı hakkında bilgi içerir. - -### libP2P {#libp2p} - -LibP2P yığını, keşiften sonra tüm iletişimleri destekler. İstemciler, ENR'lerinde tanımlandığı şekilde IPv4 ve/veya IPv6'yı arayabilir ve dinleyebilir. LibP2P katmanındaki protokoller, dedikodu ve req/resp alanlarına bölünebilir. - -### Gossip {#gossip} - -Dedikodu alanı, ağ boyunca hızla yayılması gereken tüm bilgileri içerir. Bu, işaret bloklarını, kanıtları, tasdikleri, çıkışları ve kesmeleri içerir. Bu, libP2P gossipsub v1 kullanılarak iletilir ve alınacak ve iletilecek maksimum dedikodu yükü boyutu da dahil olmak üzere her düğümde yerel olarak depolanan çeşitli meta verilere dayanır. Dedikodu alanı hakkında detaylı bilgiye [buradan](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-gossip-domain-gossipsub) ulaşabilirsiniz. - -### Talep-yanıt {#request-response} - -İstek-yanıt etki alanı, eşlerinden belirli bilgiler isteyen istemciler için protokoller içerir. Örnekler arasında, belirli kök karmalarıyla eşleşen veya bir dizi yuva içinde belirli İşaret blokları talep etmek yer alır. Yanıtlar her zaman hızlı sıkıştırılmış SSZ kodlu baytlar olarak döndürülür. - -## Konsensus istemcisi neden SSZ'yi RLP'ye tercih ediyor? {#ssz-vs-rlp} - -SSZ, basit serileştirme anlamına gelir. Tüm yapının kodunu çözmek zorunda kalmadan, kodlanmış bir mesajın tek tek parçalarının kodunu çözmeyi kolaylaştıran sabit ofsetler kullanır; bu, kodlanmış mesajlardan belirli bilgi parçalarını verimli bir şekilde alabildiğinden, konsensus istemcisi için çok yararlıdır. Ayrıca, Merkleizasyon için ilgili verimlilik kazanımları ile Merkle protokolleriyle entegre olmak üzere özel olarak tasarlanmıştır. Konsensus katmanındaki tüm karmalar Merkle kökleri olduğundan, bu önemli bir gelişme sağlar. SSZ ayrıca değerlerin benzersiz temsillerini de garanti eder. - -## Yürütme ve konsensüs istemcilerini bağlama {#connecting-clients} - -Fikir birliği ve yürütüm istemcileri paralel şekilde çalışır. Fikir birliği istemcisinin yürütüm istemcisine talimatlar sağlayabilmesi ve yürütüm istemcisinin, İşaret bloklarına dahil etmek üzere fikir birliği istemcisine işlem paketlerini iletebilmesi için bunların birbirine bağlanması gerekir. İki istemci arasında iletişim, yerel bir RPC bağlantısı kullanılarak sağlanabilir. ["Engine-API"](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md) olarak bilinen bir API, iki istemci arasında gönderilen talimatları tanımlar. Her iki istemci de tek bir ağ kimliğinin arkasında bulunduğundan, her istemci için ayrı bir anahtar (eth1 anahtarı ve eth2 anahtarı) içeren bir ENR'yi (Ethereum düğüm kaydı) ortak kullanırlar. - -İlgili ağ yığını parantez içinde olacak şekilde, kontrol akışının bir özeti aşağıda gösterilmiştir. - -##### Fikir birliği istemcisi blok üreticisi olmadığında: - -- Konsensus istemcisi, blok dedikodu protokolü aracılığıyla bir blok alır (konsensus p2p) -- Konsensus istemcisi bloğu önceden doğrular, yani doğru meta verilerle geçerli bir göndericiden gelmesini sağlar -- Bloktaki işlemler yürütüm katmanına yürütüm yükü olarak gönderilir (yerel RPC bağlantısı) -- Yürütüm katmanı, işlemleri yürütür ve blok başlığındaki durumu doğrular (yani, karma eşleşmesini kontrol eder) -- Yürütüm katmanı, doğrulama verilerini konsensus katmanına geri iletir, blok artık doğrulanmış olarak kabul edilir (yerel RPC bağlantısı) -- Konsensus katmanı, kendi blok zincirinin başına blok ekler ve bunu onaylar, onaylamayı ağ üzerinden yayınlar (konsensus p2p) - -##### Fikir birliği istemcisi blok üreticisi olduğunda: - -- Konsensus istemcisi, bir sonraki blok üreticisi olduğuna dair bildirim alır (konsensus p2p) -- Konsensus katmanı, yürütüm istemcisinde (yerel RPC) `create block` yöntemini çağırır -- Yürütüm katmanı, işlem dedikodu protokolü tarafından doldurulmuş işlem belleğine erişir (yürütme p2p) -- Yürütüm istemcisi, işlemleri bir bloğa toplar, işlemleri yürütür ve bir blok karması oluşturur -- Fikir birliği istemcisi, işlemleri ve blok karmasını yürütüm istemcisinden alır ve işaret bloğuna (yerel RPC) ekler -- Consensus istemcisi bloğu blok dedikodu protokolü üzerinden yayınlar (consensus p2p) -- Diğer istemciler, önerilen bloğu, blok dedikodu protokolü aracılığıyla alır ve yukarıda açıklandığı gibi doğrular (konsensus p2p) - -Blok, yeterli onaylayıcılar tarafından onaylandıktan sonra, zincirin başına eklenir, gerekçelendirilir ve sonunda kesinleştirilir. - -![](cons_client_net_layer.png) ![](exe_client_net_layer.png) - -[ethresear.ch](https://ethresear.ch/t/eth1-eth2-client-relationship/7248)'den fikir birliği ve yürütüm istemcileri için ağ katmanı şeması - -## Daha Fazla Okuma {#further-reading} - -[DevP2P](https://github.com/ethereum/devp2p) [LibP2p](https://github.com/libp2p/specs) [Konsensus katmanı ağ özellikleri](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#enr-structure) [kademlia'dan discv5'e](https://vac.dev/kademlia-to-discv5) [kademlia belgesi](https://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf) [Ethereum p2p'ye giriş](https://p2p.paris/en/talks/intro-ethereum-networking/) [eth1/eth2 ilişkisi](http://ethresear.ch/t/eth1-eth2-client-relationship/7248) [birleştirme ve eth2 istemci ayrıntıları videosu](https://www.youtube.com/watch?v=zNIrIninMgg) diff --git a/src/content/translations/tr/developers/docs/nodes-and-clients/client-diversity/index.md b/src/content/translations/tr/developers/docs/nodes-and-clients/client-diversity/index.md deleted file mode 100644 index 88e0c82f32f..00000000000 --- a/src/content/translations/tr/developers/docs/nodes-and-clients/client-diversity/index.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -title: İstemci çeşitliliği -description: Ethereum istemci çeşitliliğinin önemine dair üst düzey bir açıklama. -lang: tr -sidebarDepth: 2 ---- - -Ethereum düğümünün davranışı, çalıştırdığı istemci yazılımı tarafından kontrol edilir. Her biri farklı dillerde ayrı takımlar tarafından geliştirilen ve sürdürülen birden çok kullanılabilir seviyede Ethereum istemcisi bulunmaktadır. İstemciler, istemcilerin birbiriyle kesintisiz biçimde iletişim kuracağı, aynı fonksiyonelliğe sahip olacağı ve eş değer bir kullanıcı deneyimi sunacağı ortak özellikler üzerine kurulmuştur. Ancak, şu anda düğümler arasında istemcilerin dağıtımı ağ güçlendirmenin tam potansiyeline erişmesi için yeterince eşit değildir. İdeal olarak kullanıcılar ağa olabildiğince istemci çeşitliliği getirmek için farklı istemciler arasında aşağı yukarı eşit olarak dağılırlar. - -## Ön koşullar {#prerequisites} - -Düğümlerin ve istemcilerin ne olduğu konusunda henüz bir fikriniz yoksa, [düğümler ve istemciler](/developers/docs/nodes-and-clients/) kısmına bakın. [Yürütme](/glossary/#execution-layer) ve [mutabakat](/glossary/#consensus-layer) katmanları sözlükte tanımlanmıştır. - -## Neden birden fazla istemci var? {#why-multiple-clients} - -Birden fazla, bağımsız geliştirilen ve sürdürülen istemci bulunmaktadır çünkü istemci çeşitliliği ağı saldırılara ve hatalara karşı daha dayanıklı hale getirir. Birden fazla istemci Ethereum'a özel bir güçtür - diğer blok zincirler tek bir istemcinin yanılmazlığına güvenir. Ancak, sadece birden fazla istemci olması yetmez, topluluk tarafından benimsenmiş ve toplam aktif düğümlerin onların arasında neredeyse eş olarak dağıtılmış olması gerekir. - -## İstemci çeşitliliği neden önemli? {#client-diversity-importance} - -Birçok bağımsız geliştirilen ve sürdürülen istemci olması merkeziyetsiz bir ağın iyi durumu için hayatidir. Hadi sebeplerini öğrenelim. - -### Hatalar {#bugs} - -Tekil bir istemcideki hata Ethereum düğümlerinin azınlık bir kısmını temsil ediyorken ağ için daha küçük bir risktir. Birçok istemci arasında kabaca eşit bir düğüm dağılımı ile, çoğu istemcinin paylaşılan bir sorundan muzdarip olma olasılığı düşüktür ve sonuç olarak ağ daha sağlamdır. - -### Saldırılara karşı dayanıklılık {#resilience} - -İstemci çeşitliliği saldırılara karşı da dayanıklılık sağlar. Örneğin, [spesifik bir istemciyi](https://twitter.com/vdWijden/status/1437712249926393858) zincirin özel bir dalına doğru kandıran bir saldırının başarılı olma ihtimali düşüktür çünkü diğer istemcilerin aynı şekilde saldırılabilir olması muhtemel değildir ve normal zincir bozulmamış şekilde durur. Düşük istemci çeşitliliği, baskın istemciye yönelik bir saldırıyla ilişkilendirilen riski arttırır. İstemci çeşitliliği, ağdaki kötü niyetli saldırılara karşı önemli bir savunma olduğunu zaten kanıtlamıştır, örneğin 2016'daki Şanghay hizmet reddi saldırısı, saldırganların baskın istemciyi (Geth) blok başına on binlerce kez yavaş bir disk girdi/çıktı işlemi yürütmesi için kandırabilmeleri nedeniyle mümkün oldu. Çünkü açığı paylaşmayan alternatif istemciler de çevrimiçiydi, Geth'teki açık kapatılırken Ethereum saldırıya karşı koymayı ve çalışmaya devam etmeyi başarmıştı. - -### Hisse kanıtı nihayeti {#finality} - -Ethereum düğümlerinin %33'ünden fazlasına sahip olan bir fikir birliği katmanındaki bir açık fikir birliği katmanının kesinleşmesini engelleyebilirdi, yani kullanıcılar işlemlerin bir noktada geri alınmayacağına veya değiştirilmeyeceğine güvenemezdi. Bu özellikle DeFi gibi Ethereum üzerinde inşa edilmiş birçok uygulama için bayağı sıkıntılı olurdu. - - Daha kötüsü, üçte ikilik bir çoğunluğa sahip olan bir istemcideki kritik bir hata zincirin hatalı biçimde ayrılmasına ve kesinleşmesine yol açabilirdi, bu da doğrulayıcıların büyük bir kısmının geçersiz bir zincirde takılı kalmasına sebep olurdu. Eğer doğru zincire geri katılmak isterlerse, bu doğrulayıcılar ya cezalandırma ile ya da yavaş ve pahalı bir gönüllü çekilme ve yeniden aktifleştirme ile karşı karşıya kalırlardı. Bir kesintinin büyüklüğü maksimum olarak üçte ikilik bir çoğunluk cezalandırılacak şekilde (32 ETH) sorunlu düğümlerin sayısı ile ölçeklendirilir. - -Bunlar muhtemel olmayan senaryolar olsa da, Ethereum ekosistemi istemcilerin aktif düğümler arasındaki dağıtımını eşitleyerek riski azaltabilir. İdeal olarak, hiçbir fikir birliği istemcisi, toplam düğümlerin %33'lük bir kısmına sahip olamaz. - -### Ortak sorumluluk {#responsibility} - -Çoğunluk istemciye sahip olmanın bir insan maliyeti de vardır. Küçük bir geliştirme ekibine aşırı baskı ve sorumluluk yükler. İstemci çeşitliliği ne kadar azsa, çoğunluk istemciyi koruyan geliştiricilerin sorumluluk yükü o kadar büyük olur. Bu sorumluluğu birden fazla ekibe yaymak, hem Ethereum'un düğüm ağının hem de insan ağının durumu için için iyidir. - -## Mevcut istemci çeşitliliği {#current-client-diversity} - -![İstemci çeşitliliğini gösteren pasta grafiği](./client-diversity.png) _[ethernodes.org](https://ethernodes.org) ve [clientdiversity.org](https://clientdiversity.org/) diyagram verisi_ - -Yukarıdaki iki pasta grafiği yürütüm ve fikir birliği katmanları için mevcut istemci çeşitliliğini resmetmektedir (yazıldığı Ocak 2022 esnasında). Yürütüm katmanı büyük oranda [Geth](https://geth.ethereum.org/) tarafından domine edilmiştir, uzak ikinci sırada [Open Ethereum](https://openethereum.github.io/) gelir, [Erigon](https://github.com/ledgerwatch/erigon) üçüncü ve [Nethermind](https://nethermind.io/) dördüncüdür, diğer istemciler de ağın %1'den azını kapsar. Fikir birliği katmanında en yaygın kullanılan istemci - [Prysm](https://prysmaticlabs.com/#projects) - Geth kadar baskın olmasa da yine de ağın %60'tan fazlasını temsil eder. [Lighthouse](https://lighthouse.sigmaprime.io/) ve [Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) sırasıyla 20% ve 14% civarını kapsar ve diğer istemciler nadiren kullanılır. - -Yürütüm katmanı verileri 23/01/2022 tarihinde [Ethernodes](https://ethernodes.org)'dan alınmıştır. Fikir birliği istemcileri hakkındaki veriler [Micheal Sproul](https://github.com/sigp/blockprint)'dan alınmıştır. Fikir birliği istemcisi verilerinin elde edilmesi daha zordur çünkü fikir birliği katmanı müşterileri her zaman onları tanımlamak için kullanılabilecek açık izlere sahip değildir. Veri bazen azınlık istemcilerin bazılarını karıştıran bir sınıflandırma algoritması tarafından oluşturulmuştur (daha fazla ayrıntı için [buraya](https://twitter.com/sproulM_/status/1440512518242197516) bakın). Yukarıdaki diyagramda, bu karışık sınıflandırmalar bir ya/veya etiketiyle işlem görmüştür (ör. Nimbus/Teku). Yine de, ağın çoğunluğunun Prysm çalıştırdığı açıktır. Veri belirli bir blok dizisinin anlık çekimidir (bu durumda 2048001 ila 2164916 arası yuvalardaki İşaret blokları) ve Prysm'in baskınlığı bazen %68'i geçecek şekilde daha yüksek olmuştur. Sadece anlık çekimler olmasına rağmen, diyagramdaki değerler mevcut istemci çeşitliliği durumu hakkında iyi bir genel algı sağlamaktadır. - -Fikir birliği katmanı için güncel istemci çeşitliliği verileri artık [clientdiversity.org](https://clientdiversity.org/) adresinde mevcuttur. - -## Yürütüm katmanı {#execution-layer} - -Şimdiye kadar, istemci çeşitliliği etrafındaki konuşmalar esas olarak fikir birliği katmanına odaklandı. Ancak, yürütüm istemcisi [Geth](https://geth.ethereum.org) şu anda tüm düğümlerin yaklaşık %85'ini oluşturmaktadır. Bu yüzde, fikir birliği istemcileri için olduğu gibi aynı nedenlerle sorunludur. Örneğin, Geth'de işlemlerin ele alınmasını veya yürütme yüklerinin oluşturulmasını etkileyen bir hata fikir birliği istemcilerinin sıkıntılı veya hatalı işlemleri sonlandırmasına yol açabilir. Bundan dolayı, Ethereum daha eşit bir yürütüm katmanı dağılımı ile, ideal olarak hiçbir istemcinin ağın %33'ünden fazlasını temsil etmediği bir durum ile daha sağlıklı olurdu. - -## Azınlık istemcisi kullanın {#use-minority-client} - -İstemci çeşitliliğini ele almak, azınlık istemcileri seçmek için bireysel kullanıcılardan daha fazlasını gerektirir - madencilik/doğrulayıcı havuzları ve büyük dapp'ler ve borsalar gibi kurumların da istemcileri değiştirmesini gerektirir. Ancak tüm kullanıcılar tüm mevcut Ethereum yazılımlarının kullanımını normalleştirerek mevcut eşitsizliği ortadan kaldırmaya katkı sağlayabilirler. Birleşimden sonra, tüm düğüm operatörlerinin, bir yürütüm istemcisi ve bir fikir birliği istemcisi çalıştırmaları gerekecektir. Aşağıda önerilen istemci kombinasyonlarını seçmek, istemci çeşitliliğini artırmaya yardımcı olacaktır. - -### Yürütüm istemcileri {#execution-clients} - -[Besu](https://www.hyperledger.org/use/besu) - -[Nethermind](https://downloads.nethermind.io/) - -[Erigon](https://github.com/ledgerwatch/erigon) - -[Go-Ethereum](https://geth.ethereum.org/) - -### Mutabakat istemcileri {#consensus-clients} - -[Nimbus](https://nimbus.team/) - -[Lighthouse](https://github.com/sigp/lighthouse) - -[Teku](https://consensys.net/knowledge-base/ethereum-2/teku/) - -[Lodestar](https://github.com/ChainSafe/lodestar) - -[Prysm](https://docs.prylabs.network/docs/getting-started) - -Teknik kullanıcılar azınlık istemcileri için daha fazla öğretici ve doküman yazarak ve düğüm yöneten yakınlarını baskın istemcilerden ayrılmaya yönlendirerek bu süreci hızlandırmaya yardımcı olabilirler. Bir azınlık fikir birliği katmanına geçiş için kılavuzlar [clientdiversity.org](https://clientdiversity.org/) adresinde mevcuttur. - -## İstemci çeşitliliği gösterge panelleri {#client-diversity-dashboards} - -Birden fazla gösterge paneli yürütüm ve fikir birliği katmanları için gerçek zamanlı istemci çeşitliliği istatisikleri verir. - -**Fikir birliği katmanı:** - -- [Rated.network](https://www.rated.network/) -- [clientdiversity.org](https://clientdiversity.org/) **Yürütüm katmanı:** - -- [execution-diversity.info](https://execution-diversity.info/) -- [Ethernodes](https://ethernodes.org/) - -## Daha fazla okuma {#further-reading} - -- [Ethereum'un fikir birliği katmanında istemci çeşitliliği](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) -- [Ethereum Birleşimi: Çoğunluk istemcisini sorumluluğunu alarak çalıştırın!](https://dankradfeist.de/ethereum/2022/03/24/run-the-majority-client-at-your-own-peril.html) – _Dankrad Fiest, 24 Mart 2022_ -- [İstemci çeşitliliğinin önemi](https://our.status.im/the-importance-of-client-diversity/) -- [Ethereum düğüm hizmetleri listesi](https://ethereumnodes.com/) -- [İstemci çeşitliliği sorununun "Beş Nedeni"](https://notes.ethereum.org/@afhGjrKfTKmksTOtqhB9RQ/BJGj7uh08) -- [Ethereum Çeşitliliği ve Bunun İçin Nasıl Çözüm Buluruz (YouTube)](https://www.youtube.com/watch?v=1hZgCaiqwfU) -- [clientdiversity.org](https://clientdiversity.org/) - -## İlgili konular {#related-topics} - -- [Bir Ethereum düğümü çalıştırın](/run-a-node/) -- [Düğümler ve istemciler](/developers/docs/nodes-and-clients/) diff --git a/src/content/translations/tr/developers/docs/smart-contracts/anatomy/index.md b/src/content/translations/tr/developers/docs/smart-contracts/anatomy/index.md deleted file mode 100644 index 2dbe64a3b58..00000000000 --- a/src/content/translations/tr/developers/docs/smart-contracts/anatomy/index.md +++ /dev/null @@ -1,658 +0,0 @@ ---- -title: Akıllı sözleşmelerin anatomisi -description: Akıllı bir sözleşmenin anatomisine derinlemesine bir bakış - fonksiyonlar, veriler ve değişkenler. -lang: tr ---- - -Bir akıllı sözleşme Ethereum üzerindeki bir adreste çalışan bir programdır. Bir işlem alındığında yürütülebilen fonksiyonlar ve verilerden oluşurlar. Burada bir akıllı sözleşmenin nelerden oluştuğu hakkında genel bir bakış bulunmaktadır. - -### Ön Koşullar {#prerequisites} - -İlk olarak [akıllı sözleşmeler](/developers/docs/smart-contracts/) hakkında okuduğunuzdan emin olun. Bu belge, hâlihazırda JavaScript veya Python gibi programlama dillerine aşina olduğunuzu varsayar. - -## Veri {#data} - -Her sözleşme verisi bir lokasyona atanmalıdır: ya `storage` ya da `memory`. Bir akıllı sözleşmede depolamayı değiştirmek pahalıdır, bundan dolayı verinizin nerede yaşayacağını düşünmelisiniz. - -### Depolama {#storage} - -Kalıcı veriden depolama olarak bahsedilir ve durum değişkenleri tarafından temsil edilir. Bu değerler kalıcı olarak blok zincirinde depolanır. Sözleşmenin derlendiğinde blok zincirinde ne kadar depolama ihtiyacı duyacağını takip edebilmesi için türünü deklare etmelisiniz. - -```solidity -// Solidity example -contract SimpleStorage { - uint storedData; // State variable - // ... -} -``` - -```python -# Vyper example -storedData: int128 -``` - -Hâlihazırda nesne odaklı dillerde programlama yaptıysanız, büyük ihtimalle çoğu türe aşinasınızdır. Ancak eğer Ethereum geliştirme konusunda acemiyseniz `address` türünü pek görmemişsinizdir. - -Bir `address` türü 20 bayt veya 160 bite eşit olan bir Ethereum adresi tutabilir. Önünde 0x olan onaltılık gösterim şeklinde döndürür. - -Diğer türler: - -- boolean -- tam sayı -- sabit noktalı sayılar -- sabit boyutlu bayt dizileri -- dinamik olarak boyutlandırılmış bayt dizileri -- Rasyonel ve tam sayı sabitleri -- Metin değişmezleri -- Değişmez onaltılıklar -- Sıralamalar - -Daha fazla açıklama için belgelere göz atın: - -- [Vyper türlerini gör](https://vyper.readthedocs.io/en/v0.1.0-beta.6/types.html#value-types) -- [Solidity türlerini gör](https://solidity.readthedocs.io/en/latest/types.html#value-types) - -### Bellek {#memory} - -Sadece bir sözleşme fonksiyonunun yürütümü esnasında depolanan değerlere bellek değişkenleri denir. Bunlar blok zincirinde kalıcı şekilde depolanmadıkları için kullanımları çok daha ucuzdur. - -[Solidity belgelerinden](https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html?highlight=memory#storage-memory-and-the-stack) EVM'nin nasıl veri depoladığıyla (Depolama, Bellek ve Yığın) ilgili daha fazla bilgi edinin. - -### Ortam değişkenleri {#environment-variables} - -Sözleşmenizde tanımladığınız değişkenlere ek olarak, bazı özel global değişkenler bulunmaktadır. Başlıca blok zinciri veya mevcut işlem hakkında bilgi sağlamak için kullanılırlar. - -Örnekler: - -| **Özellik** | **Durum değişkeni** | **Açıklama** | -| ----------------- | ------------------- | ---------------------------------- | -| `block.timestamp` | uint256 | Mevcut blok dönemi zaman damgası | -| `msg.sender` | adres | Mesajın göndericisi (mevcut çağrı) | - -## Fonksiyonlar {#functions} - -En basit şekilde, fonksiyonlar gelen işlemlere yanıt olarak bilgi alabilir veya düzenleyebilir. - -İki tip fonksiyon çağrısı bulunur: - -- `internal` – bunlar bir EVM çağrısı oluşturmazlar - - Internal fonksiyonlar ve durum değişkenleri sadece içten erişilebilir (yani mevcut sözleşmeden veya ondan türemiş sözleşmelerden) -- `external` – bunlar bir EVM çağrısı oluştururlar - - External fonksiyonlar sözleşme arayüzünün bir parçasıdır, bu da diğer sözleşmelerden ve işlemler aracılığıyla çağrılabilecekleri anlamına gelir. Bir external fonksiyon olan `f` içten çağrılamaz (yani `f()` çalışmaz ama `this.f()` çalışır). - -Ayrıca `public` veya `private` olabilirler - -- `public` fonksiyonları sözleşmenin içinden veya mesajlar aracılığıyla çağrılabilirler -- `private` fonksiyonları sadece tanımlandıkları sözleşmede mevcutturlar ve türetilmiş sözleşmelerde olmazlar - -Hem fonksiyonlar hem de durum değişkenleri public veya private yapılabilir - -Burada bir sözleşmedeki bir durum değişkenini güncellemek için bir fonksiyon bulunmaktadır: - -```solidity -// Solidity example -function update_name(string value) public { - dapp_name = value; -} -``` - -- `string` türünün `value` parametresi müteakip fonksiyona geçirilir: `update_name` -- `public` olarak deklare edilir, bu da herkesin ona erişebileceği anlamına gelir -- `view` olarak deklare edilmez, yani sözleşme durumunu değiştirebilir - -### Fonksiyonları gör {#view-functions} - -Bu fonksiyonlar sözleşmenin verisinin durumunu değiştirmemeye söz verirler. Yaygın örnekler "alıcı" fonksiyonlardır – örnek olarak bunu bir kullanıcının bakiyesini almak için kullanabilirsiniz. - -```solidity -// Solidity example -function balanceOf(address _owner) public view returns (uint256 _balance) { - return ownerPizzaCount[_owner]; -} -``` - -```python -dappName: public(string) - -@view -@public -def readName() -> string: - return dappName -``` - -Durumu değiştirme olarak sayılan şeyler: - -1. Değişkenlikleri belirtmek için yazma. -2. [Olaylar yayınlama](https://solidity.readthedocs.io/en/v0.7.0/contracts.html#events). -3. [Başka sözleşmeler oluşturma](https://solidity.readthedocs.io/en/v0.7.0/control-structures.html#creating-contracts). -4. Müteakip komutun kullanımı, `selfdestruct`. -5. Çağrılar aracılığıyla ether gönderme. -6. İşareti `view` ya da `pure` olmayan herhangi bir fonksiyonu çağırma. -7. Alt düzey çağrıları kullanma. -8. Belirli işlem kodları içeren satır içi tümleşkeler kullanma. - -### Yapıcı fonksiyonlar {#constructor-functions} - -`constructor` fonksiyonları sadece sözleşme ilk dağıtılığında tek sefer yürütülür. Birçok sınıf odaklı programlama dilinde olan `constructor` gibi, bu fonksiyonlar genellikle durum değişkenlerini belirtilmiş değerlere ilkler. - -```solidity -// Solidity example -// Initializes the contract's data, setting the `owner` -// to the address of the contract creator. -constructor() public { - // All smart contracts rely on external transactions to trigger its functions. - // `msg` is a global variable that includes relevant data on the given transaction, - // such as the address of the sender and the ETH value included in the transaction. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties - owner = msg.sender; -} -``` - -```python -# Vyper example - -@external -def __init__(_beneficiary: address, _bidding_time: uint256): - self.beneficiary = _beneficiary - self.auctionStart = block.timestamp - self.auctionEnd = self.auctionStart + _bidding_time -``` - -### Yerleşik fonksiyonlar {#built-in-functions} - -Sözleşmenizde tanımladığınız değişkenler ve fonksiyonlara ek olarak, bazı özel yerleşik fonksiyonlar bulunmaktadır. En bariz örnek şudur: - -- `address.send()` – Solidity -- `send(address)` – Vyper - -Bunlar sözleşmelerin başka hesaplara ETH göndermesini sağlar. - -## Fonksiyon yazmak {#writing-functions} - -Fonksiyonunuz şunlara ihtiyaç duyar: - -- parametre değişkeni ve türü (eğer parametre kabul ediyorsa) -- internal/external deklarasyonu -- pure/view/payable deklarasyonu -- dönüş türü (eğer bir değer döndürüyorsa) - -```solidity -pragma solidity >=0.4.0 <=0.6.0; - -contract ExampleDapp { - string dapp_name; // state variable - - // Called when the contract is deployed and initializes the value - constructor() public { - dapp_name = "My Example dapp"; - } - - // Get Function - function read_name() public view returns(string) { - return dapp_name; - } - - // Set Function - function update_name(string value) public { - dapp_name = value; - } -} -``` - -Tam bir sözleşme bu şekilde gözükebilir. Burada `constructor` fonksiyonu `dapp_name` değişkeni için bir başlangıç değeri sağlıyor. - -## Olaylar ve kayıtlar {#events-and-logs} - -Olaylar, akıllı sözleşmenizle ön uç tarafından veya başka katılımcı uygulamalarla iletişim kurmanızı sağlar. Bir işlem kazıldığında, akıllı sözleşmeler olay yayınlayabilirler ve blok zincirine ön ucun daha sonra işleyebileceği kayıtlar yazabilirler. - -## Açıklamalı örnekler {#annotated-examples} - -Bunlar Solidity ile yazılmış bazı örneklerdir. Eğer kodlarla oynamak isterseniz, onlarla [Remix](http://remix.ethereum.org) içinde etkileşime geçebilirsiniz. - -### Merhaba dünya {#hello-world} - -```solidity -// Specifies the version of Solidity, using semantic versioning. -// Learn more: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma -pragma solidity ^0.5.10; - -// Defines a contract named `HelloWorld`. -// A contract is a collection of functions and data (its state). -// Once deployed, a contract resides at a specific address on the Ethereum blockchain. -// Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html -contract HelloWorld { - - // Declares a state variable `message` of type `string`. - // State variables are variables whose values are permanently stored in contract storage. - // The keyword `public` makes variables accessible from outside a contract - // and creates a function that other contracts or clients can call to access the value. - string public message; - - // Similar to many class-based object-oriented languages, a constructor is - // a special function that is only executed upon contract creation. - // Constructors are used to initialize the contract's data. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constructors - constructor(string memory initMessage) public { - // Accepts a string argument `initMessage` and sets the value - // into the contract's `message` storage variable). - message = initMessage; - } - - // A public function that accepts a string argument - // and updates the `message` storage variable. - function update(string memory newMessage) public { - message = newMessage; - } -} -``` - -### Token {#token} - -```solidity -pragma solidity ^0.5.10; - -contract Token { - // An `address` is comparable to an email address - it's used to identify an account on Ethereum. - // Addresses can represent a smart contract or an external (user) accounts. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#address - address public owner; - - // A `mapping` is essentially a hash table data structure. - // This `mapping` assigns an unsigned integer (the token balance) to an address (the token holder). - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#mapping-types - mapping (address => uint) public balances; - - // Events allow for logging of activity on the blockchain. - // Ethereum clients can listen for events in order to react to contract state changes. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#events - event Transfer(address from, address to, uint amount); - - // Initializes the contract's data, setting the `owner` - // to the address of the contract creator. - constructor() public { - // All smart contracts rely on external transactions to trigger its functions. - // `msg` is a global variable that includes relevant data on the given transaction, - // such as the address of the sender and the ETH value included in the transaction. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties - owner = msg.sender; - } - - // Creates an amount of new tokens and sends them to an address. - function mint(address receiver, uint amount) public { - // `require` is a control structure used to enforce certain conditions. - // If a `require` statement evaluates to `false`, an exception is triggered, - // which reverts all changes made to the state during the current call. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions - - // Only the contract owner can call this function - require(msg.sender == owner, "You are not the owner."); - - // Enforces a maximum amount of tokens - require(amount < 1e60, "Maximum issuance exceeded"); - - // Increases the balance of `receiver` by `amount` - balances[receiver] += amount; - } - - // Sends an amount of existing tokens from any caller to an address. - function transfer(address receiver, uint amount) public { - // The sender must have enough tokens to send - require(amount <= balances[msg.sender], "Insufficient balance."); - - // Adjusts token balances of the two addresses - balances[msg.sender] -= amount; - balances[receiver] += amount; - - // Emits the event defined earlier - emit Transfer(msg.sender, receiver, amount); - } -} -``` - -### Benzersiz dijital varlık {#unique-digital-asset} - -```solidity -pragma solidity ^0.5.10; - -// Imports symbols from other files into the current contract. -// In this case, a series of helper contracts from OpenZeppelin. -// Learn more: https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#importing-other-source-files - -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; -import "../node_modules/@openzeppelin/contracts/introspection/ERC165.sol"; -import "../node_modules/@openzeppelin/contracts/math/SafeMath.sol"; - -// The `is` keyword is used to inherit functions and keywords from external contracts. -// In this case, `CryptoPizza` inherits from the `IERC721` and `ERC165` contracts. -// Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#inheritance -contract CryptoPizza is IERC721, ERC165 { - // Uses OpenZeppelin's SafeMath library to perform arithmetic operations safely. - // Learn more: https://docs.openzeppelin.com/contracts/2.x/api/math#SafeMath - using SafeMath for uint256; - - // Constant state variables in Solidity are similar to other languages - // but you must assign from an expression which is constant at compile time. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constant-state-variables - uint256 constant dnaDigits = 10; - uint256 constant dnaModulus = 10 ** dnaDigits; - bytes4 private constant _ERC721_RECEIVED = 0x150b7a02; - - // Struct types let you define your own type - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#structs - struct Pizza { - string name; - uint256 dna; - } - - // Creates an empty array of Pizza structs - Pizza[] public pizzas; - - // Mapping from pizza ID to its owner's address - mapping(uint256 => address) public pizzaToOwner; - - // Mapping from owner's address to number of owned token - mapping(address => uint256) public ownerPizzaCount; - - // Mapping from token ID to approved address - mapping(uint256 => address) pizzaApprovals; - - // You can nest mappings, this example maps owner to operator approvals - mapping(address => mapping(address => bool)) private operatorApprovals; - - // Internal function to create a random Pizza from string (name) and DNA - function _createPizza(string memory _name, uint256 _dna) - // The `internal` keyword means this function is only visible - // within this contract and contracts that derive this contract - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#visibility-and-getters - internal - // `isUnique` is a function modifier that checks if the pizza already exists - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html#function-modifiers - isUnique(_name, _dna) - { - // Adds Pizza to array of Pizzas and get id - uint256 id = SafeMath.sub(pizzas.push(Pizza(_name, _dna)), 1); - - // Checks that Pizza owner is the same as current user - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions - - // note that address(0) is the zero address, - // indicating that pizza[id] is not yet allocated to a particular user. - - assert(pizzaToOwner[id] == address(0)); - - // Maps the Pizza to the owner - pizzaToOwner[id] = msg.sender; - ownerPizzaCount[msg.sender] = SafeMath.add( - ownerPizzaCount[msg.sender], - 1 - ); - } - - // Creates a random Pizza from string (name) - function createRandomPizza(string memory _name) public { - uint256 randDna = generateRandomDna(_name, msg.sender); - _createPizza(_name, randDna); - } - - // Generates random DNA from string (name) and address of the owner (creator) - function generateRandomDna(string memory _str, address _owner) - public - // Functions marked as `pure` promise not to read from or modify the state - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#pure-functions - pure - returns (uint256) - { - // Generates random uint from string (name) + address (owner) - uint256 rand = uint256(keccak256(abi.encodePacked(_str))) + - uint256(_owner); - rand = rand % dnaModulus; - return rand; - } - - // Returns array of Pizzas found by owner - function getPizzasByOwner(address _owner) - public - // Functions marked as `view` promise not to modify state - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#view-functions - view - returns (uint256[] memory) - { - // Uses the `memory` storage location to store values only for the - // lifecycle of this function call. - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/introduction-to-smart-contracts.html#storage-memory-and-the-stack - uint256[] memory result = new uint256[](ownerPizzaCount[_owner]); - uint256 counter = 0; - for (uint256 i = 0; i < pizzas.length; i++) { - if (pizzaToOwner[i] == _owner) { - result[counter] = i; - counter++; - } - } - return result; - } - - // Transfers Pizza and ownership to other address - function transferFrom(address _from, address _to, uint256 _pizzaId) public { - require(_from != address(0) && _to != address(0), "Invalid address."); - require(_exists(_pizzaId), "Pizza does not exist."); - require(_from != _to, "Cannot transfer to the same address."); - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - - ownerPizzaCount[_to] = SafeMath.add(ownerPizzaCount[_to], 1); - ownerPizzaCount[_from] = SafeMath.sub(ownerPizzaCount[_from], 1); - pizzaToOwner[_pizzaId] = _to; - - // Emits event defined in the imported IERC721 contract - emit Transfer(_from, _to, _pizzaId); - _clearApproval(_to, _pizzaId); - } - - /** - * Safely transfers the ownership of a given token ID to another address - * If the target address is a contract, it must implement `onERC721Received`, - * which is called upon a safe transfer, and return the magic value - * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; - * otherwise, the transfer is reverted. - */ - function safeTransferFrom(address from, address to, uint256 pizzaId) - public - { - // solium-disable-next-line arg-overflow - this.safeTransferFrom(from, to, pizzaId, ""); - } - - /** - * Safely transfers the ownership of a given token ID to another address - * If the target address is a contract, it must implement `onERC721Received`, - * which is called upon a safe transfer, and return the magic value - * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; - * otherwise, the transfer is reverted. - */ - function safeTransferFrom( - address from, - address to, - uint256 pizzaId, - bytes memory _data - ) public { - this.transferFrom(from, to, pizzaId); - require(_checkOnERC721Received(from, to, pizzaId, _data), "Must implement onERC721Received."); - } - - /** - * Internal function to invoke `onERC721Received` on a target address - * The call is not executed if the target address is not a contract - */ - function _checkOnERC721Received( - address from, - address to, - uint256 pizzaId, - bytes memory _data - ) internal returns (bool) { - if (!isContract(to)) { - return true; - } - - bytes4 retval = IERC721Receiver(to).onERC721Received( - msg.sender, - from, - pizzaId, - _data - ); - return (retval == _ERC721_RECEIVED); - } - - // Burns a Pizza - destroys Token completely - // The `external` function modifier means this function is - // part of the contract interface and other contracts can call it - function burn(uint256 _pizzaId) external { - require(msg.sender != address(0), "Invalid address."); - require(_exists(_pizzaId), "Pizza does not exist."); - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - - ownerPizzaCount[msg.sender] = SafeMath.sub( - ownerPizzaCount[msg.sender], - 1 - ); - pizzaToOwner[_pizzaId] = address(0); - } - - // Returns count of Pizzas by address - function balanceOf(address _owner) public view returns (uint256 _balance) { - return ownerPizzaCount[_owner]; - } - - // Returns owner of the Pizza found by id - function ownerOf(uint256 _pizzaId) public view returns (address _owner) { - address owner = pizzaToOwner[_pizzaId]; - require(owner != address(0), "Invalid Pizza ID."); - return owner; - } - - // Approves other address to transfer ownership of Pizza - function approve(address _to, uint256 _pizzaId) public { - require(msg.sender == pizzaToOwner[_pizzaId], "Must be the Pizza owner."); - pizzaApprovals[_pizzaId] = _to; - emit Approval(msg.sender, _to, _pizzaId); - } - - // Returns approved address for specific Pizza - function getApproved(uint256 _pizzaId) - public - view - returns (address operator) - { - require(_exists(_pizzaId), "Pizza does not exist."); - return pizzaApprovals[_pizzaId]; - } - - /** - * Private function to clear current approval of a given token ID - * Reverts if the given address is not indeed the owner of the token - */ - function _clearApproval(address owner, uint256 _pizzaId) private { - require(pizzaToOwner[_pizzaId] == owner, "Must be pizza owner."); - require(_exists(_pizzaId), "Pizza does not exist."); - if (pizzaApprovals[_pizzaId] != address(0)) { - pizzaApprovals[_pizzaId] = address(0); - } - } - - /* - * Sets or unsets the approval of a given operator - * An operator is allowed to transfer all tokens of the sender on their behalf - */ - function setApprovalForAll(address to, bool approved) public { - require(to != msg.sender, "Cannot approve own address"); - operatorApprovals[msg.sender][to] = approved; - emit ApprovalForAll(msg.sender, to, approved); - } - - // Tells whether an operator is approved by a given owner - function isApprovedForAll(address owner, address operator) - public - view - returns (bool) - { - return operatorApprovals[owner][operator]; - } - - // Takes ownership of Pizza - only for approved users - function takeOwnership(uint256 _pizzaId) public { - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - address owner = this.ownerOf(_pizzaId); - this.transferFrom(owner, msg.sender, _pizzaId); - } - - // Checks if Pizza exists - function _exists(uint256 pizzaId) internal view returns (bool) { - address owner = pizzaToOwner[pizzaId]; - return owner != address(0); - } - - // Checks if address is owner or is approved to transfer Pizza - function _isApprovedOrOwner(address spender, uint256 pizzaId) - internal - view - returns (bool) - { - address owner = pizzaToOwner[pizzaId]; - // Disable solium check because of - // https://github.com/duaraghav8/Solium/issues/175 - // solium-disable-next-line operator-whitespace - return (spender == owner || - this.getApproved(pizzaId) == spender || - this.isApprovedForAll(owner, spender)); - } - - // Check if Pizza is unique and doesn't exist yet - modifier isUnique(string memory _name, uint256 _dna) { - bool result = true; - for (uint256 i = 0; i < pizzas.length; i++) { - if ( - keccak256(abi.encodePacked(pizzas[i].name)) == - keccak256(abi.encodePacked(_name)) && - pizzas[i].dna == _dna - ) { - result = false; - } - } - require(result, "Pizza with such name already exists."); - _; - } - - // Returns whether the target address is a contract - function isContract(address account) internal view returns (bool) { - uint256 size; - // Currently there is no better way to check if there is a contract in an address - // than to check the size of the code at that address. - // Bunun nasıl çalıştığı hakkında daha fazla ayrıntı için - // bkz. https://ethereum.stackexchange.com/a/14016/36603. - // Serenity sürümünden önce bunu tekrar kontrol edin, - // çünkü o zaman tüm adresler sözleşme olacaktır. - // solium-disable-next-line security/no-inline-assembly - assembly { - size := extcodesize(account) - } - return size > 0; - } -} -``` - -## Daha fazla bilgi {#further-reading} - -Akıllı sözleşmelere daha detaylı bir genel bakış için Solidity ve Vyper'ın belgelerine bakın: - -- [Solidity](https://solidity.readthedocs.io/) -- [Vyper](https://vyper.readthedocs.io/) - -## İlgili konular {#related-topics} - -- [Akıllı sözleşmeler](/developers/docs/smart-contracts/) -- [Ethereum Sanal Makinesi](/developers/docs/evm/) - -## İlgili öğreticiler {#related-tutorials} - -- [Sözleşme boyut limitiyle savaşmak için sözleşmelerin boyutunu azaltma](/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/) _– Akıllı sözleşmenizin boyutunu küçültmek için bazı pratik ipuçları._ -- [Olaylar ile akıllı sözleşmelerden veri kaydetme](/developers/tutorials/logging-events-smart-contracts/) _– Akıllı sözleşme olaylarına ve onları veri kaydetmek için nasıl kullanabileceğinize bir giriş._ -- [Solidity ile başka sözleşmelerle etkileşime geçmek](/developers/tutorials/interact-with-other-contracts-from-solidity/) _– Mevcut bir sözleşmeden nasıl bir akıllı sözleşme dağıtılır ve etkileşime geçilir._ diff --git a/src/content/translations/tr/developers/docs/standards/tokens/erc-20/index.md b/src/content/translations/tr/developers/docs/standards/tokens/erc-20/index.md deleted file mode 100644 index d979a3b55dc..00000000000 --- a/src/content/translations/tr/developers/docs/standards/tokens/erc-20/index.md +++ /dev/null @@ -1,149 +0,0 @@ ---- -title: ERC-20 Token Standardı -description: -lang: tr ---- - -## Giriş {#introduction} - -**Token nedir?** - -Token'lar Ethereum'daki hemen hemen her şeyi temsil edebilir: - -- çevrimiçi bir platformdaki itibar puanları -- bir oyundaki karakterin becerileri -- çekiliş biletleri -- şirket hissesi gibi finansal varlıklar -- ABD Doları gibi itibari para birimi -- ons altın -- ve daha fazlası... - -Ethereum'un bu kadar güçlü bir özelliği güçlü bir standart tarafından idare edilmeli, değil mi? ERC-20 tam da bu noktada devreye giriyor! Bu standart, geliştiricilerin diğer ürün ve servislerle uyumlu token uygulamaları inşa etmesini sağlar. - -**ERC-20 nedir?** - -ERC-20, Değiştirilebilir Jetonlar için bir standart getirmiştir: Başka bir deyişle bunlar, her bir Jetonun (tür ve değer olarak) başka bir Jeton ile tamamen aynı olmasını sağlayan bir özelliğe sahiptir. Örnek olarak, bir ERC-20 Token'ı tıpkı ETH gibi davranır, yani 1 Token her zaman tüm diğer Token'lara eşit olur. - -## Ön Koşullar {#prerequisites} - -- [Hesaplar](/developers/docs/accounts) -- [Akıllı Sözleşmeler](/developers/docs/smart-contracts/) -- [Token standartları](/developers/docs/standards/tokens/) - -## Şablon {#body} - -Fabian Vogelsteller tarafından Kasım 2015'te önerilen ERC-20 (Ethereum Yorum Talebi 20), Akıllı Sözleşmeler içindeki token'lar için bir API sağlayan bir Token Standardıdır. - -ERC-20'nin sağladığı örnek işlevler: - -- token'ları bir hesaptan diğerine aktarma -- bir hesabın mevcut token bakiyesini alma -- ağda mevcut olan token'ların toplam arzını alma -- bir hesaptaki token miktarının bir üçüncü taraf hesabı tarafından harcanıp harcanamayacağını onaylama - -Eğer bir Akıllı Sözleşme aşağıdaki metodları ve olayları uygularsa bir ERC-20 Token Sözleşmesi olarak çağrılabilir ve dağıtıldığı andan itibaren Ethereum'da oluşturulan token'ları takip etmekten sorumludur. - -[EIP-20](https://eips.ethereum.org/EIPS/eip-20)'den: - -#### Yöntemler {#methods} - -```solidity -function name() public view returns (string) -function symbol() public view returns (string) -function decimals() public view returns (uint8) -function totalSupply() public view returns (uint256) -function balanceOf(address _owner) public view returns (uint256 balance) -function transfer(address _to, uint256 _value) public returns (bool success) -function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) -function approve(address _spender, uint256 _value) public returns (bool success) -function allowance(address _owner, address _spender) public view returns (uint256 remaining) -``` - -#### Olaylar {#events} - -```solidity -event Transfer(address indexed _from, address indexed _to, uint256 _value) -event Approval(address indexed _owner, address indexed _spender, uint256 _value) -``` - -### Örnekler {#web3py-example} - -Ethereum'daki herhangi bir ERC-20 Token Sözleşmesini incelememizi basitleştirmek için bir Standart'ın ne kadar önemli olduğunu görelim. Herhangi bir ERC-20 token'a arayüz oluşturmak için sadece Sözleşme Uygulama İkili Arayüzü'ne (ABI) ihtiyacımız var. Aşağıda görebileceğiniz gibi az sürtünmeli bir örnek olması için basitleştirilmiş bir ABI kullanacağız. - -#### Web3.py Örneği {#web3py-example} - -İlk olarak, [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) Python kütüphanesini kurduğunuzdan emin olun: - -``` -pip install web3 -``` - -```python -from web3 import Web3 - - -w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) - -dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI -weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # Wrapped ether (WETH) - -acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11" # Uniswap V2: DAI 2 - -# This is a simplified Contract Application Binary Interface (ABI) of an ERC-20 Token Contract. -# It will expose only the methods: balanceOf(address), decimals(), symbol() and totalSupply() -simplified_abi = [ - { - 'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], - 'name': 'balanceOf', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'decimals', - 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'symbol', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'totalSupply', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - } -] - -dai_contract = w3.eth.contract(address=w3.to_checksum_address(dai_token_addr), abi=simplified_abi) -symbol = dai_contract.functions.symbol().call() -decimals = dai_contract.functions.decimals().call() -totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals -addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals - -# DAI -print("===== %s =====" % symbol) -print("Total Supply:", totalSupply) -print("Addr Balance:", addr_balance) - -weth_contract = w3.eth.contract(address=w3.to_checksum_address(weth_token_addr), abi=simplified_abi) -symbol = weth_contract.functions.symbol().call() -decimals = weth_contract.functions.decimals().call() -totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals -addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals - -# WETH -print("===== %s =====" % symbol) -print("Total Supply:", totalSupply) -print("Addr Balance:", addr_balance) -``` - -## daha fazla okuma {#further-reading} - -- [EIP-20: ERC-20 Token Standardı](https://eips.ethereum.org/EIPS/eip-20) -- [OpenZeppelin - Token'lar](https://docs.openzeppelin.com/contracts/3.x/tokens#ERC20) -- [OpenZeppelin - ERC-20 Uygulaması](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) -- [Alchemy - Solidity ERC20 Jetonları için bir Rehber](https://www.alchemy.com/overviews/erc20-solidity) diff --git a/src/content/translations/tr/developers/docs/standards/tokens/erc-721/index.md b/src/content/translations/tr/developers/docs/standards/tokens/erc-721/index.md deleted file mode 100644 index 8072a58c430..00000000000 --- a/src/content/translations/tr/developers/docs/standards/tokens/erc-721/index.md +++ /dev/null @@ -1,244 +0,0 @@ ---- -title: ERC-721 Değiştirilemez Token Standardı -description: -lang: tr ---- - -## Giriş {#introduction} - -**Değiştirilemeyen Token nedir?** - -Bir Değiştirilemez Token (NFT), bir şeyi veya bir kimseyi eşsiz bir yolla tanımlamak için kullanılır. Bu Token türü; koleksiyon öğeleri, erişim anahtarları, çekiliş biletleri, konserler ve spor maçları için numaralı koltuklar vb. sunan platformlarda kullanılmak için mükemmeldir. Bu özel Token türü, inanılmaz olanaklara sahip olduğu için uygun bir Standardı hak ediyor: ERC-721 bunu çözmek için geldi! - -**ERC-721 nedir?** - -ERC-721, NFT için bir standart getirir, başka bir deyişle, bu Token türü benzersizdir ve örneğin yaşı, nadirliği ve hatta görseli gibi başka bir şey nedeniyle aynı Akıllı Sözleşmedeki başka bir Token'dan farklı değere sahip olabilir. Görsel mi? - -Evet! Tüm NFT'ler `tokenId` denilen bir `uint256` değişkenine sahiptir, yani herhangi bir ERC-721 sözleşmesi için, `sözleşme adresi, uint256 tokenId` çifti küresel olarak eşsiz olmalıdır. Bununla birlikte, bir dapp girdi olarak `tokenId` kullanan ve çıktı olarak da zombiler, silahlar, yetenekler ya da muhteşem kedicikler gibi havalı bir şeyin görüntüsünü veren bir "dönüştürücüye" sahip olabilir! - -## Ön Koşullar {#prerequisites} - -- [Hesaplar](/developers/docs/accounts/) -- [Akıllı Sözleşmeler](/developers/docs/smart-contracts/) -- [Token standartları](/developers/docs/standards/tokens/) - -## Şablon {#body} - -William Entriken, Dieter Shirley, Jacob Evans ve Nastassia Sachs tarafından Ocak 2018'de önerilen ERC-721 (Ethereum Yorum Talebi 721), Akıllı Sözleşmeler içindeki token'lar için bir API uygulayan bir Değiştirilebilir Token Standardıdır. - -Token'ları bir hesaptan diğerine aktarmak, bir hesabın mevcut token bakiyesini almak, belirli bir token'ın sahibini almak ve ayrıca ağda mevcut olan token'ın toplam arzını almak gibi işlevler sağlar. Bunların yanı sıra, bir hesaptan bir miktar token'ın üçüncü taraf bir hesap tarafından taşınabileceğini onaylamak gibi başka işlevleri de vardır. - -Bir Akıllı Sözleşme aşağıdaki yöntemleri ve olayları uygularsa, ERC-721 Değiştirilemez Token Sözleşmesi olarak adlandırılabilir ve dağıtıldıktan sonra, Ethereum üzerinde oluşturulan token'ları takip etmekten sorumlu olur. - -[EIP-721](https://eips.ethereum.org/EIPS/eip-721)'den: - -#### Yöntemler {#methods} - -```solidity - function balanceOf(address _owner) external view returns (uint256); - function ownerOf(uint256 _tokenId) external view returns (address); - function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; - function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; - function transferFrom(address _from, address _to, uint256 _tokenId) external payable; - function approve(address _approved, uint256 _tokenId) external payable; - function setApprovalForAll(address _operator, bool _approved) external; - function getApproved(uint256 _tokenId) external view returns (address); - function isApprovedForAll(address _owner, address _operator) external view returns (bool); -``` - -#### Olaylar {#events} - -```solidity - event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); - event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); - event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); -``` - -### Örnekler {#web3py-example} - -Ethereum'daki herhangi bir ERC-721 Token Sözleşmesini incelememizi basitleştirmek için bir Standart'ın ne kadar önemli olduğunu görelim. Herhangi bir ERC-721 token'a arayüz oluşturmak için sadece sözleşmenin Uygulama İkili Arayüzü'ne (ABI) ihtiyacımız var. Aşağıda görebileceğiniz gibi az sürtünmeli bir örnek olması için basitleştirilmiş bir ABI kullanacağız. - -#### Web3.py Örneği {#web3py-example} - -İlk olarak, [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) Python kütüphanesini kurduğunuzdan emin olun: - -``` -pip install web3 -``` - -```python -from web3 import Web3 -from web3._utils.events import get_event_data - - -w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) - -ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # CryptoKitties Contract - -acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # CryptoKitties Sales Auction - -# This is a simplified Contract Application Binary Interface (ABI) of an ERC-721 NFT Contract. -# It will expose only the methods: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply() -simplified_abi = [ - { - 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], - 'name': 'balanceOf', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'name', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], - 'name': 'ownerOf', - 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'symbol', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'totalSupply', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, -] - -ck_extra_abi = [ - { - 'inputs': [], - 'name': 'pregnantKitties', - 'outputs': [{'name': '', 'type': 'uint256'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [{'name': '_kittyId', 'type': 'uint256'}], - 'name': 'isPregnant', - 'outputs': [{'name': '', 'type': 'bool'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - } -] - -ck_contract = w3.eth.contract(address=w3.to_checksum_address(ck_token_addr), abi=simplified_abi+ck_extra_abi) -name = ck_contract.functions.name().call() -symbol = ck_contract.functions.symbol().call() -kitties_auctions = ck_contract.functions.balanceOf(acc_address).call() -print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}") - -pregnant_kitties = ck_contract.functions.pregnantKitties().call() -print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}") - -# Using the Transfer Event ABI to get info about transferred Kitties. -tx_event_abi = { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'from', 'type': 'address'}, - {'indexed': False, 'name': 'to', 'type': 'address'}, - {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}], - 'name': 'Transfer', - 'type': 'event' -} - -# We need the event's signature to filter the logs -event_signature = w3.keccak(text="Transfer(address,address,uint256)").hex() - -logs = w3.eth.get_logs({ - "fromBlock": w3.eth.block_number - 120, - "address": w3.to_checksum_address(ck_token_addr), - "topics": [event_signature] -}) - -# Notes: -# - Increase the number of blocks up from 120 if no Transfer event is returned. -# - If you didn't find any Transfer event you can also try to get a tokenId at: -# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events -# Click to expand the event's logs and copy its "tokenId" argument -recent_tx = [get_event_data(w3.codec, tx_event_abi, log)["args"] for log in logs] - -if recent_tx: - kitty_id = recent_tx[0]['tokenId'] # Paste the "tokenId" here from the link above - is_pregnant = ck_contract.functions.isPregnant(kitty_id).call() - print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}") -``` - -CryptoKitties Sözleşmesi, Standart olanlar dışında bazı ilginç Olaylara sahiptir. - -Hadi ikisine bakalım, `Pregnant` ve `Birth`. - -```python -# Using the Pregnant and Birth Events ABI to get info about new Kitties. -ck_extra_events_abi = [ - { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'owner', 'type': 'address'}, - {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, - {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, - {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}], - 'name': 'Pregnant', - 'type': 'event' - }, - { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'owner', 'type': 'address'}, - {'indexed': False, 'name': 'kittyId', 'type': 'uint256'}, - {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, - {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, - {'indexed': False, 'name': 'genes', 'type': 'uint256'}], - 'name': 'Birth', - 'type': 'event' - }] - -# We need the event's signature to filter the logs -ck_event_signatures = [ - w3.keccak(text="Pregnant(address,uint256,uint256,uint256)").hex(), - w3.keccak(text="Birth(address,uint256,uint256,uint256,uint256)").hex(), -] - -# Here is a Pregnant Event: -# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog -pregnant_logs = w3.eth.get_logs({ - "fromBlock": w3.eth.block_number - 120, - "address": w3.to_checksum_address(ck_token_addr), - "topics": [ck_event_signatures[0]] -}) - -recent_pregnants = [get_event_data(w3.codec, ck_extra_events_abi[0], log)["args"] for log in pregnant_logs] - -# Here is a Birth Event: -# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a -birth_logs = w3.eth.get_logs({ - "fromBlock": w3.eth.block_number - 120, - "address": w3.to_checksum_address(ck_token_addr), - "topics": [ck_event_signatures[1]] -}) - -recent_births = [get_event_data(w3.codec, ck_extra_events_abi[1], log)["args"] for log in birth_logs] -``` - -## Popüler NFT'ler {#popular-nfts} - -- [Etherscan NFT Tracker](https://etherscan.io/tokens-nft), aktarım hacmine göre Ethereum üzerindeki en yüksek NFT'leri sıralar. -- [CryptoKitties](https://www.cryptokitties.co/) yetiştirilebilen, toplanabilen ve aşırı şirin olan CryptoKitties dediğimiz yaratıklar çevresinde gelişen bir oyundur. -- [Sorare](https://sorare.com/), sınırlı sayılı koleksiyon parçaları toplayabileceğiniz, takımlarınızı yönetebileceğiniz ve ödüller kazanmak için rekabet edebileceğiniz küresel bir fantezi futbol oyunudur. -- [Ethereum İsim Hizmeti (ENS)](https://ens.domains/); basit, insanlar tarafından okunabilir isimler kullanarak hem blok zinciri üstünde hem de dışında kaynakları yönetmenin güvenli ve merkeziyetsiz bir yolunu sunar. -- [POAP](https://poap.xyz), etkinliklere katılan veya belirli eylemleri tamamlayan kişilere ücretsiz NFT'ler sunar. POAP'ler oluşturmak ve dağıtmak ücretsizdir. -- [Unstoppable Domains](https://unstoppabledomains.com/), blok zincirleri üzerinde alan adları inşa eden San-Francisco merkezli bir şirkettir. Blok zinciri alan adları, kripto para adreslerini insanlar tarafından okunabilir adlarla değiştirir ve sansüre dayanıklı web sitelerini etkinleştirmek için kullanılabilir. -- [Gods Unchained Cards](https://godsunchained.com/), oyun içi varlıklara gerçek sahiplik getirmek için NFT'leri kullanan Ethereum blok zinciri üzerindeki bir Kart Ticareti Oyunudur. -- [Bored Ape Yacht Club](https://boredapeyachtclub.com), kanıtlanabilir derecede ender bir sanat eseri olmasının yanı sıra, kulübe üyelik simgesi olarak hareket eden ve topluluk çabalarının sonucu olarak zamanla artan üye avantajları ve faydaları sağlayan 10.000 benzersiz NFT'den oluşan bir koleksiyondur. - -## Daha fazla bilgi {#further-reading} - -- [EIP-721: ERC-721 Değiştirilemez Token Standardı](https://eips.ethereum.org/EIPS/eip-721) -- [OpenZeppelin - ERC-721 Belgeleri](https://docs.openzeppelin.com/contracts/3.x/erc721) -- [OpenZeppelin - ERC-721 Uygulaması](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) -- [Alchemy NFT API](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) diff --git a/src/content/translations/tr/nft/index.md b/src/content/translations/tr/nft/index.md deleted file mode 100644 index 0ad5c263f60..00000000000 --- a/src/content/translations/tr/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Nitelikli Fikrî Tapu (NFT) -description: Ethereum'daki NFT'lere genel bakış -lang: tr -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: Hologram ile gösterilen bir Eth logosu. -summaryPoint1: Benzersiz bir şeyi Ethereum tabanlı bir varlık olarak göstermenin yolu. -summaryPoint2: NFT'ler içerik oluşturuculara her zamankinden daha fazla güç veriyor. -summaryPoint3: Ethereum blokzincirindeki akıllı sözleşmelerle desteklenmektedir. ---- - -## NFT'ler nelerdir? {#what-are-nfts} - -NFT'ler tekil olarak eşsiz jeton'lardır. Her NFT farklı özelliklere (değiştirilemez) sahiptir ve kanıtlanabilir şekilde nadirdir. Bu, ERC-20'ler gibi ("değiştirilebilir") her token'ın set içinde eşit ve aynı özelliklere sahip olduğu token'lardan farklıdır. Cüzdanınızda hangi spesifik dolar banknotu olduğunu önemsemezsiniz çünkü hepsi aynıdır ve aynı değere sahiptir. Ancak, hangi spesifik NFT'ye sahip olduğunuzu _önemsersiniz_ çünkü hepsinin diğerlerinden ayıran kendine has özellikleri ("değiştirilemez") vardır. - -Her NFT'nin eşsizliği, sanat, koleksiyon ürünleri hatta gayrimenkul gibi şeylerin tokenleştirilmesini sağlar; burada belirli bir eşsiz NFT, belli bir eşsiz gerçek veya dijital öğeyi temsil eder. Bir varlığın sahipliği, Ethereum blokzincir'i tarafından güvence altına alınır: böylece hiç kimse sahiplik kaydını değiştiremez ya da kopyala/yapıştır yaparak yeni bir NFT'yi varlık olarak üretemez. - - - -## Varlıkların interneti {#internet-of-assets} - -NFT'ler ve Ethereum, günümüz internetinde mevcut olan bazı problemleri çözmektedir. Her şey daha da dijitalleşirken nadirlik, benzersizlik ve sahiplik kanıtı gibi fiziksel öğelerin özelliklerini kopyalamaya ihtiyaç duyulmaktadır. merkezi bir organizasyon tarafından kontrol edilmeyen şekilde. Örneğin, NFT'ler sayesinde belirli bir şirketin müzik uygulamasına bağlı olmaksızın herhangi bir müzik mp3'üne sahip olabilir ya da satabileceğiniz veya takas edebileceğiniz bir sosyal medya kullanıcı adına sahip olabilirsiniz. Üstelik kullanıcı adınız, platform sağlayıcısı tarafından keyfi olarak sizden alınamaz. - -Günümüzde çoğumuzun kullandığı internete kıyasla NFT'lerin interneti şu şekilde görünüyor... - -### Karşılaştırma {#nft-comparison} - -| NFT interneti | Günümüz interneti | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Varlıkların yalnızca sizindir! Bunları yalnızca sizin satma ya da takas etme yetkiniz vardır. | Bir platformdan bir varlık kiralarsınız. | -| NFT'ler dijital olarak benzersizdir, herhangi iki NFT aynı değildir. | Bir varlığın kopyası genellikle orjinalinden ayırt edilemez. | -| Bir NFT'nin sahipliği, bir kimsenin doğrulayabileceği şekilde blok zincir üzerinde saklanır. | Dijital öğelerin sahiplik kayıtları, kurumlar tarafından kontrol edilen sunucularda saklanır, bu nedenle bunlara güvenmek zorundasınız. | -| NFT'ler Ethereum üzerindeki Akıllı sözleşmelerdir. Bu, onların Ethereum üzerindeki diğer akıllı sözleşmeler ve uygulamalarda kolaylıkla kullanılabileceği anlamına gelir! | Dijital öğelere sahip şirketler genellikle kendi "kapalı ekosistem" altyapılarına ihtiyaç duyar. | -| İçerik oluşturucular, eserlerini istedikleri her yerde satabilir ve küresel bir pazara erişebilirler. | İçerik oluşturucular, kullandıkları platformların altyapısına ve dağıtımına bağlı kalmak zorundadır. Platformlar genellikle kullanım koşulları ve coğrafi kısıtlamalara tabidir. | -| NFT yaratıcıları kendi çalışmaları üzerinde sahiplik haklarını koruyabilir ve telif ücretlerini doğrudan NFT sözleşmesine gömebilirler. | Müzik yayını hizmetleri gibi platformlar, satışlardan elde edilen kârın büyük kısmını ellerinde bulundurur. | - -## NFT'ler nasıl çalışır? {#how-nfts-work} - -Ethereum'da yayınlanan diğer token'lar gibi, NFT'ler de bir akıllı sözleşme tarafından verilir. Akıllı sözleşme, sözleşmenin hangi fonksiyonlara sahip olacağını tanımlayan birkaç NFT standardından birine (genellikle ERC-721 veya ERC-1155) uygundur. Sözleşme, NFT'leri oluşturabilir ("basabilir") ve bunları belirli bir sahibe atayabilir. Sahiplik, belirli NFT'leri belirli adreslere sözleşmeyle eşleyerek tanımlanır. NFT'nin bir kimliği ve genellikle bu kimlikle ilişkili spesifik token'ı benzersiz kılan meta verisi vardır. - -Birisi bir NFT yaratır veya basarsa, aslında akıllı sözleşmede, belirli NFT'yi kendi adreslerine atayan bir fonksiyonu yürütüyordur. Bu bilgi, sözleşmenin depolama alanında saklanır, ki bu da blok zincirin bir parçasıdır. Sözleşme oluşturucu, sözleşmeye ek kurallar ekleyebilir; örneğin toplam arzı sınırlamak ya da bir token'ın her aktarılışında oluşturucusuna ödenecek olan telif hakkını tanımlamak gibi. - -## NFT'ler ne için kullanılır? {#nft-use-cases} - -NFT'ler, şunlar dahil olmak üzere pek çok şey için kullanılabilir: - -- bir etkinliğe katıldığınızı kanıtlama -- bir kursu tamamladığınızı onaylama -- oyunlar için sahiplenebilir öğeler -- dijital sanat -- gerçek dünya varlıklarını tokenlaştırma -- çevrimiçi kimliğinizi kanıtlama -- içeriğe has, özelleştirilmiş erişim -- biletlendirme -- merkeziyetsiz internet alan adları -- DeFi'de teminat - -Belki de eserlerinizi NFT'leri kullanarak paylaşmak isteyen, eserlerinizin kontrolünü kaybetmeden ve kazançlarınızı aracılara feda etmeden çalışmak isteyen bir sanatçısınızdır. NFT'lerin sayısını, özelliklerini ve belirli bir sanat eserine olan bağlantısını belirleyebildiğiniz yeni bir sözleşme oluşturabilirsiniz. Sanatçı olarak, bir NFT aktarılırken almanız gereken telif hakkı bedelini akıllı sözleşmeyle programlayabilirsiniz (yani NFT her aktarıldığında %5'inin sözleşme sahibine transferi gibi). Ayrıca, sözleşmeyi dağıtan cüzdan size ait olduğu için NFT'lerin oluşturucusu olduğunuzu her zaman kanıtlayabilirsiniz. Alıcılarınız, cüzdan adreslerinin akıllı sözleşmenizdeki bir token ile ilişkilendirildiği için koleksiyonunuzdan özgün bir NFT'ye sahip olduklarını kolayca kanıtlayabilirler. Alıcılar, özgünlüğünden ve kontrolünden emin olarak bunu Ethereum ekosistemi içerisinde kullanabilirler. - -Yahut bir spor etkinliğine ait bileti düşünün. Bir etkinlik organizatörü kaç bilet satılacağına karar verdiği gibi, bir NFT'nin oluşturucusu da kaç kopya olacağına karar verebilir. Bazen bunlar, 5000 Genel Giriş bileti gibi birebir kopyalardır. Bazen birbirine çok benzer ama her biri biraz farklı olan kopyalar basılır, örneğin sıralı ve sınırlı atanmış koltuk numarası olan bir bilet gibi. Bu biletler, bilet işletmecilerine ödeme yapmadan eşten eşe alınıp satılabilir ve alıcı, sözleşme adresini kontrol ederek biletin özgünlüğünden her zaman emin olabilir. - -Ethereum.org'da NFT'ler, GitHub deposuna katkıda bulunan kişileri veya çağrılara katılanları göstermek için kullanılır ve hatta kendi NFT etki alanı adımıza da sahip oluruz. Ethereum.org'a katkıda bulunursanız, bir POAP NFT'si talep edebilirsiniz. Bazı kripto buluşmaları için POAP'lar bilet olarak kullanıldı. [Katkıda bulunma hakkında daha fazla bilgi](/contributing/#poap). - -![ethereum.org POAP](./poap.png) - -Bu web sitesinin NFT'lerle desteklenen alternatif bir alan adı da bulunmaktadır: **ethereum.eth**. `.org` adresimiz bir alan adı sistemi (DNS) sağlayıcısı tarafından merkezi olarak yönetilirken, ethereum`.eth`, Ethereum İsim Hizmeti (ENS) aracılığıyla Ethereum'a kaydedilir. Ayrıca sahibi ve yönetimi de bize aittir. [ENS kayıtlarımıza göz atın](https://app.ens.domains/name/ethereum.eth) - -[ENS hakkında daha fazlası](https://app.ens.domains) - - - -### NFT güvenliği {#nft-security} - -Ethereum'un güvenliği, hisse ispatından gelir. Sistem, kötü niyetli eylemleri ekonomik olarak caydırmak ve Ethereum'u müdaheleye karşı dirençli hale getirmek için tasarlanmıştır. Bu NFT'leri mümkün kılan şeydir. NFT işleminizi içeren blok kesinleştiğinde, bir saldırganın bunu değiştirmesi milyonlarca ETH'ye mal olacaktır. Ethereum yazılımını çalıştıran herkes, bir NFT ile dürüst olmayan kurcalamayı hemen tespit edebilecek ve kötü aktör ekonomik olarak cezalandırılacak ve ağdan atılacaktır. - -NFT'lerle ilgili güvenlik sorunları çoğunlukla kimlik avı dolandırıcılığı, akıllı sözleşme güvenlik açıkları veya kullanıcı hataları (istenmeden özel anahtarların açığa çıkarılması gibi) ile ilgilidir ve bu da iyi cüzdan güvenliğini NFT sahipleri için kritik hale getirir. - - - Güvenlik hakkında daha fazla bilgi - - -## Daha fazla bilgi {#further-reading} - -- [NFT'lere yeni başlayanlar için kılavuz](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, Ocak 2020_ -- [EtherscanNFT izleyici](https://etherscan.io/nft-top-contracts) -- [ERC-721 token standardı](/developers/docs/standards/tokens/erc-721/) -- [ERC-1155 token standardı](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/tr/refi/index.md b/src/content/translations/tr/refi/index.md deleted file mode 100644 index ae4886bb553..00000000000 --- a/src/content/translations/tr/refi/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: Rejeneratif Finans (ReFi) -description: ReFi'ye ve mevcut kullanım durumlarına genel bakış. -lang: tr -template: use-cases -emoji: ":recycle:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Yenileyici ilkeler üzerine inşa edilmiş alternatif bir ekonomik sistem -summaryPoint2: İklim değişikliği gibi küresel düzeydeki koordinasyon krizlerini çözmek için Ethereum'dan yararlanma girişimi -summaryPoint3: Doğrulanmış karbon kredileri gibi ekolojik fayda varlıklarını büyük ölçüde ölçeklendirmek için bir araç ---- - -## ReFi nedir? {#what-is-refi} - -**Rejeneratif Finans (ReFi)**, çıkarıcı veya sömürücü olmaktan ziyade canlandırıcı ekonomiler yaratmayı amaçlayan, blok zincirler üzerine inşa edilmiş bir dizi araç ve fikirdir. Sonunda, çıkarıcı sistemler mevcut olan kaynakları tüketir ve çökerler; rejeneratif sistemler olmadan eksiktir. ReFi, parasal değer yaratmanın, gezegenimiz ve topluluklarımızdan sürdürülemez şekilde kaynak çıkarılmasından ayrıştırılması gerektiği varsayımı ile işler. - -Bunun yerine, ReFi rejeneratif döngüler oluşturarak çevresel, toplumsal veya sosyal sorunları çözmeyi amaçlar. Bu sistemler, aynı anda ekosistemlere ve topluluklara yarar sağlamanın yanı sıra katılımcılar için değer yaratır. - -ReFi'nin temellerinden birisi [Capital Institute](https://capitalinstitute.org)'tan John Fullerton tarafından öncülük edilen rejeneratif ekonomi konseptidir. O sistemik sağlığın temelinde yatan sekiz birbirine bağlı prensip önerdi: - -![Birbirine bağlanmış sekiz prensip](../../assets/use-cases/refi-regenerative-economy-diagram.png) - -ReFi projeleri bu prensiplerin kullanıldığı [akıllı sözleşmelerde](/developers/docs/smart-contracts/) ve [merkeziyetsiz finans (DeFi)](/defi/) uygulamalarının canlandırıcı davranışlara teşvik ettiğini fark etti, örneğin bozulmuş ekosistemleri kurtarmak ve evrensel sorunlarda iklim değişikliği ve biyolojik çeşitlilik kaybı gibi büyük ölçekli iş birliklerini kolaylaştırdığını anladı. - -ReFi aynı zamanda Ethereum'u bilimsel bilgiyi finanse etmek, oluşturmak, gözden geçirmek, kredilendirmek, depolamak ve yaymak için platform olarak kullanan [merkeziyetsiz bilim (DeSci)](/desci/) hareketi ile örtüşür. DeSci araçları ağaç dikmek, okyanustan plastik temizlemek veya bozulmuş bir ekosistemi yenilemek gibi rejeneratif aktiviteleri uygulamak ve gözlemlemek için doğrulanabilir standartlar ve pratikler geliştirme amaçlı kullanışlı olabilir. - -## Karbon Kredilerinin Tokenlaştırılması {#tokenization-of-carbon-credits} - -**[Gönüllü karbon piyasası (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** mevcut emisyonları azaltarak veya atmosferde yayılan sera gazlarını kaldırarak karbon emisyonları üzerinde doğrulanmış pozitif etki yaratan projeleri fonlamak için bir mekanizmadır. Bu projeler doğrulandıktan sonra iklim hareketini destekleyen kişiler veya organizasyonlara satabilecekleri "karbon kredisi" isimli bir varlık elde ederler. - -VCM'ye ek olarak, spesifik bir yetki alanında (örneğin, ülke veya bölge) kanunlar veya yönetmelikler aracılığıyla bir karbon fiyatı belirlemeyi hedefleyen ve dağıtılacak izinlerin arzını kontrol eden, devlet destekli birkaç karbon piyasası ("uyum piyasaları") vardır. Uyum piyasaları kendi yetki alanlarındaki kirleticileri emisyonları azaltmaları için teşvik eder, ancak hali hazırda yayılmış sera gazlarını yok etme imkânları yoktur. - -Geçmiş on yıllardaki gelişimine rağmen, VCM birtakım sorunlarla boğuşmaya devam ediyor: - -1. Yüksek oranda parçalanmış likidite -2. Şeffaf olmayan işlem mekanizmaları -3. Yüksek ücretler -4. Çok düşük ticaret hızı -5. Ölçeklenebilirlik eksikliği - -VCM'yi yeni blok zincir temelli **dijital karbon piyasasına (DCM)** dönüştürmek karbon kredilerini doğrulama, işlemde kullanma ve tüketme için mevcut teknolojiyi yükseltme fırsatı olabilir. Blok zincirler herkese açık şekilde doğrulanabilir veri, geniş bir kullanıcı aralığı ve daha çok likidite sağlar. - -ReFi projeleri geleneksel piyasaların sorunlarını hafifletmek için blok zincir teknolojilerini kullanır: - -- **Likidite az sayıda likidite havuzunda yoğunlaşmıştır** ve herkes tarafından takas edilebilir. Tekil kişiler gibi büyük organizasyonlar da bu havuzları elle alıcı/satıcı arayışı, katılım ücreti veya ön kayıt olmadan kullanabilir. -- **Tüm işlemler herkese açık blok zincirlerde kayıtlıdır**. Her bir karbon kredisinin takas aktivitesi sebebiyle takip ettiği yolun DCM'de var olduktan sonra sonsuza kadar izi sürülebilir. -- **İşlem hızı neredeyse anlıktır**. Klasik piyasalar aracılığıyla büyük miktarda karbon kredisini güvenli hale getirmek günler veya haftalar alabilir, ancak DCM ile bu birkaç saniye içerisinde gerçekleştirilebilir. -- **Takas aktivitesi aracılar olmadan gerçekleşir**, aracılar yüksek ücretler alırlar. Dijital karbon kredileri bir analiz firmasının verisine göre [eş değer geleneksek kredilere göre %62 masraf iyileştirmesini](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne) temsil eder. -- **DCM ölçeklenebilirdir** ve benzer tekillerin ve uluslararası firmaların isteklerini karşılayabilir. - -### DCM'in Ana Bileşenleri {#key-components-dcm} - -Dört ana bileşen DCM'nin mevcut peyzajını oluşturur: - -1. [Verra](https://verra.org/project/vcs-program/registry-system/) ve [Gold Standard](https://www.goldstandard.org/) gibi kayıt defterleri karbon kredisi oluşturan projelerin güvenilir olduğunu doğrular. Ayrıca bunlar, dijital karbon kredilerinin oluşturulduğu ve transfer edildiği veya kullanıldığı (emekli edildiği) veritabanlarını yönetir. - -Blok zincirler üzerinde inşa edilen ve bu sektördeki mevcut önde gelenlerle rekabet etmeye çalışan yeni bir yenilikçi proje dalgası bulunmaktadır. - -2. Karbon köprüler, diğer adıyla tokenlaştırıcılar, geleneksel kayıt defterlerinden DCM'ye karbon kredisi temsil veya transfer etmek için teknoloji sunarlar. Önde gelen örnekleri şunları içerir: [Toucan Protocol](https://toucan.earth/), [C3](https://c3.app/) ve [Moss.Earth](https://moss.earth/). -3. Entegre servisler son kullanıcılara bir kredinin çevresel faydasını alma ve dünyadaki iklim hareketine desteğini paylaşma için karbon iptali ve/veya kaldırma kredileri sunarlar. - -[Klima Infinity](https://www.klimadao.finance/infinity) ve [Senken](https://senken.io/) gibi bazıları üçüncü şahıslar tarafından geliştirilen ve yerleşmiş standartlar altında arz edilen geniş aralıkta projeler sunarlar; [Nori](https://nori.com/) gibi diğerleri ise sadece kendilerinin arz ettikleri ve kendi özel pazarlarına sahip oldukları kendi karbon kredisi standardına göre geliştirilmiş spesifik projeler sunarlar. - -4. Karbon piyasasının tüm tedarik zinciri etkisinin ve verimliliğinin ölçeklendirilmesini kolaylaştıran temeldeki raylar ve altyapı. [KlimaDAO](http://klimadao.finance/) likiditeyi bir kamu malı olarak sunar (herhangi birinin karbon kredilerini şeffaf bir fiyatla alıp satabilmesini sağlar), karbon piyasalarında girdi artışını ve emeklilikleri ödüllerle teşvik eder, alım ve emekliliğin yanında, geniş bir tokenlaştırılmış karbon kredileri yelpazesi ile alakalı veriye erişim için kullanıcı dostu ve beraber çalışabilen araçlar sunar. - -## Karbon pazarlarının ötesinde ReFi {#refi-beyond} - -Şu anda karbon piyasaları ve VCM'nin DCM'ye dönüşümü hakkında alan içinde büyük bir vurgu olsa da, "ReFi" terimi sadece karbon ile sınırlı değildir. Karbon kredilerinin dışında diğer çevresel varlıklar da geliştirilebilir ve tokenlaştırılabilir, yani ayrıca diğer negatif dışsallıklar da gelecekteki ekonomik sistemlerin temel katmanlarında fiyatlandırılabilir. Dahası, bu ekonomik modelin rejeneratif yönü diğer alanlara uygulanabilir, tıpkı [Gitcoin](https://gitcoin.co/) gibi ikinci dereceden finansman platformları aracılığıyla kamu mallarının fonlanması gibi. Açık katılım ve kaynakların eşit dağıtımı fikri üzerinde inşa edilmiş organizasyonlar herkesi açık kaynak yazılım projelerine olduğu gibi eğitimsel, çevresel ve topluluk odaklı projelere para aktarmak için destekler. - -Sermayenin yönünü çıkarımcı pratiklerden rejeneratif bir akışa çevirerek, sosyal, çevresel veya toplumsal faydalar sağlayan ve geleneksel finansta finansmanı başaramayan projeler ve şirketler ayağa kalkabilir ve toplum için pozitif dışsallıkları çok daha hızlı ve kolay şekilde oluşturabilir. Bu finansman modeline geçiş yapmak aynı zamanda tüm nüfusların sadece pasif izleyicilerdense aktif katılımcılar olabileceği çok daha kapsayıcı ekonomik sistemlere kapı açar. ReFi türümüz ve gezegenimizdeki tüm yaşamın karşılaştığı varoluşsal meydan okumalara karşı hareketi koordine etmek için bir mekanizma ve önümüzdeki yüzyıllar için daha kapsayıcı ve sürdürülebilir geleceği sağlayan yeni bir ekonomik paradigmanın temel katmanı olan bir Ethereum vizyonu sunar. - -## ReFi hakkında ek okuma - -- [Karbon paralarına ve ekonomideki yerine yüksek seviye bir genel bakış](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) -- [Gelecek Bakanlığı, karbon destekli bir para biriminin iklim değişikliği ile savaştaki rolünü gösteren bir roman](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) -- [Gönüllü Karbon Pazarlarının Ölçeklendirilmesi Görev Gücü tarafından detaylı bir rapor](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) -- [Kevin Owocki ve Evan Miyazono'nun ReFi hakkındaki CoinMarketCap Sözlük girdisi](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/tr/roadmap/beacon-chain/index.md b/src/content/translations/tr/roadmap/beacon-chain/index.md deleted file mode 100644 index 371484651df..00000000000 --- a/src/content/translations/tr/roadmap/beacon-chain/index.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: İşaret Zinciri -description: Hisse ispatını Ethereum'a tanıtan yükseltme olan İşaret Zinciri hakkında bilgi edinin. -lang: tr -template: upgrade -image: ../../../../../assets/upgrades/core.png -summaryPoint1: İşaret Zincirinin Ethereum ekosistemine hisse ispatı olarak eklenmesi. -summaryPoint2: Original Ethereum Hisse İspatı zinciri ile eylül 2022de birleştirilmiştir. -summaryPoint3: İşaret Zinciri ve mutabakat mantığını ve şimdilerde Ethereumu güvende tutan blok dedikodusu protokolünü tanıttı. ---- - - - İşaret Zinciri 1 Aralık 2020'de geldi ve hisse ispatını Ethereumun mutabakat mekanizması olarak 15 Eylül 2022'de Birleşim yükseltmesiyle resmileştirdi. - - -## İşaret Zinciri Nedir? {#what-is-the-beacon-chain} - -İşaret Zinciri 2020'de hayata geçirilmiş olan hisse ispatı blok zincirinin orijinal adıdır. Ethereum Markette ulaşılabilir hale gelmeden önce Hisse ispatı mutabakatı mantığının sağlam ve sürdürülebilir olduğundan emin olmak için oluşturuldu. Bu yüzden, Ethereum'un iş ispatı ile birlikte çalıştırıldı. İşaret zinciri boş bloklardan oluşan bir zincirdi, ancak Ethereumda İş ispatından ve hisse ispatına geçiş İşaret Zincirinin tanıtılmasına ve Yürütüm İstemcilerinden gelen işlem verilerinin kabul edilmesine, blokların paket haline getirilmesine ve bir blok zincirin içine hisse ispatı ve mutabakat mantığıyla organize edilmesine yol açtı. Aynı zamanda, orijinal Ethereum Müşterileri madenciliklerini, blok yayılmalarını ve Mutabakat mantıklarını kapattılar ve bunları tamamen İşaret Zincirine bıraktılar. Bu olay [Birleşim](/roadmap/merge/) olarak bilinir. Birleşim olduğunda, artık ikili blok zincirler yoktu. Onun yerine, sadece bir hisse ispatı Ethereumu vardı ve bu artık düğüm başına iki farklı istemci gerektiriyor. İşaret Zinciri artık fikir birliği katmanı, fikir birliği istemcileri için eşler arası bir ağ ve blok dedikodusu ve mutabakat mantığını hallediyor. Dedikodu ve işlemlerin uygulanmasından, Ethereum'un duruşunu yönetmekten sorumlu. Bu iki katman birbirleriyle Motor API'sını kullanarak iletişim kurabilirler. - -## İşaret Zinciri Ne Yapar? {#what-does-the-beacon-chain-do} - -İşaret Zinciri Ethereum [paydaşlar](/staking/) ağını oluşturan ve koordine eden hesap defterlerine verilen addır, bunlardan önce ise hissedarlar gerçek Ethereum bloklarını doğrulamaya başlamışlardı. Ama, İşaret Zinciri işlemleri ilerletmez ya da akıllı sözleşme etkileşimlerini halletmez çünkü bu işlemler Yürütüm Katmanında yapılmaktadır. İşaret Zinciri, blok ve tasdik işlemleri, çatallanma seçim algoritmasını çalıştırma ve ödül ve cezaları yönetme gibi şeylerden sorumludur. [Düğüm mimarisi sayfamızda](/developers/docs/nodes-and-clients/node-architecture/#node-comparison) daha fazlasını okuyun. - -## İşaret Zinciri etkisi {#beacon-chain-features} - -### Staking ile Tanışın {#introducing-staking} - -İşaret Zinciri, Ethereum'a [Hisse İspatını](/developers/docs/consensus-mechanisms/pos/) tanıttı. Bu, Ethereum'u güvende tutar ve süreç doğrulayıcılarına daha fazla ETH kazandırır. Pratikte hisseleme, doğrulayıcı yazılımını aktive etmek için ETH'nin hisselenmesini içerir. Bir paydaş olarak, zincirde yeni bloklar oluşturan ve doğrulayan yazılımı çalıştırırsınız. - -Hisseleme [ madenciliğin](/developers/docs/mining/) eskiden yaptığına benzer bir amaca hizmet eder, ancak birçok yönden farklıdır. Madencilik güçlü donanım, enerji harcaması gibi büyük ön harcamalar gerektiriyordu ve ölçeklendirilmiş ekonomilere sebep oluyor ve merkeziyetçiliği teşvik ediyordu. Madencilik ayrıca varlıkları teminat olarak kitlemeye gerek duymuyordu ve protokolün uğranan saldırıdan sonra gerekli kişilere gerekli ceza vermesini de sınırlandırıyordu. - -Hisse ispatına geçiş Ethereum'u, iş ispatına kıyasla, çok daha güvenli ve merkeziyetsiz hale getirdi. Ağa katılan insan sayısı arttıkça, mevcut ağ bir o kadar merkeziyetsiz ve saldırılara karşı daha da güvende olur. - -Ve hisse ispatını mutabakat mekanizması olarak kullanmak, [ şuan sahip olduğumuz güvenli, çevre dostu ve ölçeklenebillir Ethereum](/roadmap/vision/) için temel bir bileşendir. - - - Eğer doğrulayıcı olmakla ve Ethereum'un güvenliğini sağlamaya yardımcı olmakla ilgileniyorsanız, hisseleme ile ilgili daha fazla şey öğrenin. - - -### Parçalama için ayarlamalar {#setting-up-for-sharding} - -İşaret Zinciri, Ethereum Ana Ağı ile birleştiğinden beri, Ethereum topluluğu ağı ölçeklendirmeye başladı. - -Hisse İspatı, herhangi bir zamanda, her biri ETH'nin söz konusu olduğu tüm onaylanmış blok üreticilerinin kaydına sahip olma avantajına sahiptir. Bu kayıt defteri, bölme ve fethetme yeteneği için zemin hazırlar, ancak belirli ağ sorumluluklarını güvenilir bir şekilde böler. - -Bu sorumluluk, madencilerin ağa karşı hiçbir yükümlülüğünün olmadığı ve madenciliği durdurup düğüm yazılımlarını anında kalıcı olarak kapatabilecekleri iş ispatının karşıtıdır. Ayrıca bilinen blok teklifçilerinin kaydı ile ağ sorumluluklarını güvenli bir şekilde bölmenin güvenilir bir yolu yoktur. - -[Parçalama hakkında daha fazlası](/roadmap/danksharding/) - -## Yükseltmeler arasındaki ilişki {#relationship-between-upgrades} - -Ethereum yükseltmelerinin tamamı bir şekilde ilişkilidir. İşaret Zincirinin diğer yükseltmeleri nasıl etkilediğini özetleyelim. - -### İşaret Zinciri ve Birleşim {#merge-and-beacon-chain} - -İlk başta İşaret Zinciri, Ethereum Ana Ağı'ndan ayrıydı, ancak 2022'de birleştirildi. - - - Birleştirme - - -### Parçalar ve İşaret Zinciri {#shards-and-beacon-chain} - -Parçalama, Ethereum ekosistemine yalnızca bir Hisse İspatı mutabakat mekanizması ile güvenli bir şekilde girebilir. İşare Zinciri Ana Ağ ile "bireleşerek" Ethereum'un daha da ölçeklenmesine yardımcı olmak için parçalamanın önünü açan hisselemeyi tanıttı. - - - Parça zincirleri - - -## Daha Fazla Okuma - -- [Ethereum'un gelecekteki yükseltmeleri hakkında daha fazla bilgi](/roadmap/vision) -- [Düğüm mimarisi hakkında daha fazlası](/developers/docs/nodes-and-clients/node-architecture) -- [Hisse ispatına dair daha fazlası](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/tr/roadmap/future-proofing/index.md b/src/content/translations/tr/roadmap/future-proofing/index.md deleted file mode 100644 index e2e7fe2875f..00000000000 --- a/src/content/translations/tr/roadmap/future-proofing/index.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: Ethereum'u geleceğe dirençli hale getirmek -description: Bu yükseltmeler, ileride ne olursa olsun Ethereum'u gelecek için esnek, merkeziyetsiz temel katman olarak sağlamlaştırıyor. -lang: tr -image: ../../../../../assets/roadmap/roadmap-future.png -alt: "Ethereum yol haritası" -template: roadmap ---- - -Yol haritasının bazı bölümleri Ethereum'u yakın vadede ölçeklendirmek veya güvence altına almak için gerekli değildir, ancak Ethereum'u geleceğe yönelik istikrar ve güvenilirlik için ayarlar. - -## Kuantum direnci {#quantum-resistance} - -Günümüz Ethereum'unu koruyan bazı kriptografiler, kuantum hesaplama gerçeklik haline geldiğinde tehlikeye girecek. Kuantum bilgisayarlarının modern kriptografiye gerçek anlamda bir tehdit oluşturması muhtemelen onlarca yıl uzakta olsa da, Ethereum gelecek yüz yıllar boyunca güvende olacak şekilde inşa ediliyor. Bunun anlamı; mümkün olan en kısa sürede [ Ethereum'u kuantum dirençli](https://consensys.net/blog/developers/how-will-quantum-supremacy-affect-blockchain/) hale getirmektir. - -Ethereum geliştiricilerinin karşılaştığı zorluk, Mevcut hisse ispatı protokolünün geçerli bloklara dair oyları toplamak için BLS olarak bilinen çok verimli bir imza şemasına dayanmasından kaynaklanmaktadır. Bu imza şeması kuantum bilgisayarlar tarafından kırılabilir, ancak kuantum dirençli alternatifleri de o kadar verimli değildir. - -Ethereum'da kriptografik sırlar oluşturmak için çeşitli yerlerde kullanılan ["KZG" taahhüt şemaları](/roadmap/danksharding/#what-is-kzg)nın kuantum açısından savunmasız olduğu bilinmektedir. Şu anda, bu durum "güvenilir kurulumlar" kullanılarak önlenmektedir, burada birçok kullanıcı kuantum bilgisayar tarafından tersine mühendislik yapılamayan rastgelelik oluşturur. Ancak ideal çözüm, sadece kuantum güvenli kriptografiyi entegre etmek olacaktır. BLS şemasının yerine verimli bir şekilde geçebilecek iki önde gelen yaklaşım bulunmaktadır: [STARK tabanlı](https://hackmd.io/@vbuterin/stark_aggregation) ve [kafes tabanlı](https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-lattice-encryption-326ac66e3175) imzalama. Bu yöntemler hâlâ araştırılıyor ve prototip aşamasında bulunuyor. - - KZG ve güvenilir kurulumlar hakkındakileri okuyun - -## Daha basit ve daha verimli Ethereum {#simpler-more-efficient-ethereum} - -Karmaşıklık, "hatalar" ve saldırganlar tarafından kötüye kullanılabilecek kırılganlıkların önünü açar. Bu yüzden, yol haritası Ethereum'u basitleştirir ve birçok yükseltmeden orada kalmış olan, ancak artık ihtiyaç duyulmayan kodu siler. Daha sade ve daha basit bir kod tabanı geliştiricilerin işlerini sürdürebilmesini ve anlayabilmesini kolaylaştırır. - -Her şeyi daha tutarlı ve basit hale getirmek için [Ethereum Sanal Makinesi'ne (ESM)](/developers/docs/evm) gelecek birkaç güncelleme olacak. Bu güncellemeler[SELFDESTRUCT adındaki işlem kodunu](https://hackmd.io/@vbuterin/selfdestruct) silmeyi de kapsayacak. SELFDESTRUCT, artık ihtiyaç duyulmayan ve nadiren kullanılan, hatta eğer Ethereum'un depolama modeliyle kombine edilir ya da yükseltmelerden herhangi birine katılırsa tehlikeli hale bile gelebilecek bir işlem kodudur. Ethereum istemcileri aynı zamanda hâlâ istense tamamen silinebilecek olan eski işlem türlerini de destekliyor. Gazın hesaplanma şekli kriptografik operasyonları destekleyen matematiksel ve daha tutarlı metodlarla geliştirilebilir. - -Benzer olarak, Ethereum istemcilerinin günümüzdeki diğer kısımlarına yapılabilecek güncellemeler de var. Şu anda bunun için farklı bir veri sıkıştırma yöntemi kullanan fikir birliği istemcilerini bir örnek olarak verebiliriz. Sıkıştırma şeması bütün ağ ile birleştirildiğinde istemciler arası veri paylaşmak çok daha kolay ve içgüdüsel bir hal alacak. - -## Güncel ilerleme {#current-progress} - -Ethereum gelecek ispatı için gereken bir çok yükseltme hâlâ araştırma aşamasında ve uygulanmasına birkaç yıl daha var. SELFDESTRUCT komutunu silme ve fikir birliği istemcilerinde kullanılan sıkıştırma şemasını harmanlama gibi yükseltmeler muhtemelen kuantuma dayanıklı kriptografiden çok daha önce gelecek. - -**Daha fazla bilgi** - -- [Gaz](/developers/docs/gas) -- [EVM](/developers/docs/evm) -- [Veri Yapıları](/developers/docs/data-structures-and-encoding) diff --git a/src/content/translations/tr/roadmap/index.md b/src/content/translations/tr/roadmap/index.md deleted file mode 100644 index e4bcc935b7d..00000000000 --- a/src/content/translations/tr/roadmap/index.md +++ /dev/null @@ -1,117 +0,0 @@ ---- -title: Ethereum yol haritası -description: Ethereum için daha ölçeklenebilir, güvenli ve sürdürülebilir olmanın yolu. -lang: tr -template: roadmap -image: ../../../../assets/roadmap/roadmap-main.png -alt: "Ethereum yol haritası" -summaryPoints: -buttons: - - label: Sonraki yükseltmeler - toId: hangi-degişiklikler-geliyor - - label: Geçmiş yükseltmeler - to: /history/ - variant: ana hat ---- - -Ethereum halihazırda küresel koordinasyon için güçlü bir platform, ancak yine de iyileştiriliyor. İddialı bir geliştirme takımı Ethereum'u mevcut formundan tam anlamıyla ölçeklendirilmiş, azami esnek platforma yükseltecektir. Bu yükseltmeler Ethereum yol haritasında tasarlanmıştır. - -**Ethereum'daki daha önceki yükseltmeler hakkında öğrenmek için lütfen [Geçmiş](/history/) sayfamızı ziyaret edin** - -## Ethereum'a hangi değişiklikler geliyor? {#what-changes-are-coming} - -Ethereum yol haritası, gelecekte protokole yapılacak özgün geliştirmelerin ana hatlarını oluşturur. Genel anlamda yol haritası, Ethereum kullanıcılarına aşağıdaki faydaları sağlayacaktır: - - - - - - - - -## Neden Ethereum bir yol haritasına ihtiyaç duyar? {#why-does-ethereum-need-a-roadmap} - -Ethereum; ölçeklenebilirliğini, güvenliğini ya da sürdürülebilirliğini kuvvetlendirecek düzenli yükseltmeler alır. Ethereum'un temel güçlerinden biri, araştırma ve geliştirmeden ortaya çıkan yeni fikirlere uyumlu olmasıdır. Uyumluluk, Ethereum'a ortaya çıkan engelleri aşma ve en gelişmiş teknolojik atılımlara yetişme esnekliğini verir. - - - -Yol haritası çoğunlukla, araştırmacı ve geliştirmecilerin yıllar süren çalışmasının ürünüdür çünkü protokol oldukça tekniktir, ancak motive olmuş kişiler katılabilir. Fikirler genellikle [ethresear.ch](https://ethresear.ch/), [Ethereum sihirbazları](https://www.figma.com/exit?url=https%3A%2F%2Fethereum-magicians.org%2F) gibi forumlarda veya Eth Ar&Ge discord sunucusunda ortaya atılır. Yeni keşfedilmiş sistem açıklarına karşı tepkiler, uygulama katmanında çalışan organizasyonlardan (merkeziyetsiz uygulama ve borsalar) öneriler ya da son kullanıcılar için bilinen ihtilaflar (ücretler veya işlem hızları gibi) olabilir. Bu fikirler olgunlaştığında [Ethereum İyileştirme Önerileri](https://eips.ethereum.org/) olarak önerilebilirler. Herhangi bir zamanda topluluk içinden fikir sunulması için bu, tümüyle halka açık biçimde yapılır. - -[Ethereum yönetişimi hakkında daha fazlası](/yönetişim/) - - - - -

ETH2 neydi?

- -

"Eth2" terimi hisse ispatına geçişten önce sıklıkla Ethereum'un geleceği olarak tanımlandı ancak bu, daha kesin bir terminoloji için aşamalı olarak kaldırıldı. Aslen, hisse ispatına geçişten önceki Ethereum ağını geçişten sonraki ağdan ayırmak ya da kimi zaman farklı Ethereum müşterilerine atfedilmek (yürütüm istemcisi bazen ETH1 olarak atfedildi ve fikir birliği istemcileri bazen ETH2 istemcisi olarak atfedildi) için kullanıldı.

- -
- -## Ethereum'un yol haritası zaman içinde değişecek mi? {#will-ethereums-roadmap-change-over-time} - -Evet, neredeyse kesinlikle. Yol haritası, hem yakın dönemi hem gelecek planlarını kapsayan, Ethereum'u yükseltmenin şu anlık planıdır. Yeni bilgi ve teknolojiler kullanılabilir oldukça yol haritasının değişmesini umuyoruz. - -Ethereum'un yol haritasını Ethereum'un gelişmesi için bir niyet takımı olarak düşünün; bu, temel araştırma ve geliştiricilerin Ethereum'un ileriye dönük en uygun yolu için en iyi varsayımlarıdır. - -## Yol haritası ne zaman sonlanacak? {#when-will-the-roadmap-be-finished} - -Ethereum, gelecek 6 ay içinde kimi yükseltmeleri uygulamaya koyacak (ör. hisseleme çekimleri); diğerleri ise daha az önceliğe sahip ve önümüzdeki 5-10 yıl içerisinde uygulamaya konması mümkün görünmüyor (ör. kuantum direnci). Birçok yol haritası elemanı birbirine paralel olarak çalıştığı ve farklı hızlarla geliştirildiği için her bir yükseltmenin kesin zamanlamasını vermek karmaşıktır. Bir yükseltmenin ivediliği zaman içinde dış etmenlere (ör. kuantum bilgisayarlarının performansı ve kullanılabilirliğindeki ani sıçrama, kuantum dirençli kriptografiyi daha ivedi hale getirir) bağlı olarak değişebilir. - -Ethereum gelişmesini düşünmenin bir yolu da onu biyolojik evrimle kıyaslamaktır. Her ne kadar ağ giderek daha etkin, ölçeklenebilir ve güvenli hale gelip protokol daha az değişime ihtiyaç duysa dahi yeni zorluklara uyum sağlama ve uyumunu sürdürme becerisine sahip bir ağın değişime direnen bir ağa kıyasla başarılı olması daha olasıdır. - -## Bir yükseltme varken herhangi bir şey yapmak zorunda mıyım? {#do-i-have-to-do-anything-when-there-is-an-upgrade} - -Yükseltmeler; Ethereum ile nasıl etkileşileceği konusunda daha iyi kullanıcı deneyimi sağlayarak ve belki daha fazla seçenek sunarak son kullanıcıları etkilememe eğilimindedir. Son kullanıcılar ne aktif olarak yükseltmelerde yer alma ne de varlıklarını güvenli tutmak için herhangi bir şey yapma zorunluluğunda değiller. Düğüm operatörleri, müşterilerini bir yükseltmeye hazırlanmaları için bilgilendirmeliler. Bazı yükseltmeler, uygulama geliştiricileri için değişikliklere yol açabilir. Örneğin, tarih sonlanma yükseltmesi, uygulamala geliştiriclerinin geçmiş veriyi farklı kaynaklardan elde etmelerine yol açabilir. - -## Peki ya Verge, Splurge ve diğerleri? {#what-about-the-verge-splurge-etc} - -[Vitalik Buterin Ethereum yol haritası için](https://twitter.com/VitalikButerin/status/1588669782471368704), Ethereum mimarisine olan etkileriyle bağlantılı olarak çeşitli kategorilere ayrılmış [bir vizyon önerdi](https://twitter.com/VitalikButerin/status/1588669782471368704). Şunları içeriyordu: - -- Merge: iş ispatından hisse ispatına geçişle alakalı yükseltmeler -- Surge: toplamalar ve veri parçalama sayesinde ölçeklenebilirlikle alakalı yükseltmeler -- Ceza: sansür direnci, merkeziyetsizlik ve MEV'den protokol riskleri ile alakalı yükseltmeler -- Verge: blokların daha kolayca onaylanması ile alakalı yükseltmeler -- Purge: protokol basitleştirilmesi ve düğüm yürütme bilişimsel masraflarının azaltılması ile alakalı yükseltmeler -- Splurge: önceki kategorilerde sınıflandırılamayan diğer yükseltmeler. - -Bu terminolojiyi kullanmamaya karar verdik çünkü daha temel ve kullanıcı odaklı model kullanmak istiyoruz. Kullanıcı odaklı dil kullansak dahi vizyon, Vitalik'in önerdiği gibi aynı kalıyor. - -## Peki ya parçalama? {#what-about-sharding} - -Parçalama; doğrulayıcı alt kümeleri tüm verinin yalnızca bir kısmından sorumlu olsunlar diye Ethereum blok zincirinin ayrılmasıdır. Bu aslen, Ethereum'un ölçeklendirilmesi için bir yol olarak tasarlanmıştı. Ancak katman 2 toplamalar beklenenden çok daha hızlı gelişti ve halihazırda oldukça fazla ölçeklendirme sağladılar ve Proto-Danksharding yürürlüğe konmasından sonra da çokça ölçeklendirme sağlayacaklar. Bunun anlamı artık ''parça zincirlerine'' gerek kalmayacak ve yol haritasından düşülecekler. - -## Özgün teknik yükseltmeler mi arıyorsunuz? {#looking-for-specific-technical-upgrades} - -- [Danksharding](/roadmap/danksharding)-Dankharding katman 2 toplamalarını Ethereum Bloklarına veri "damlaları" ekleyerek çok daha ucuz hale getirir. -- [Hisseleme çekimleri](/staking/withdrawals) - Shanghai/Capella yükseltmesi; insanların hisselenmiş ETH'lerini açmalarına olanak tanıyarak hisseleme çekimlerini mümkün kıldı. -- [Tekli Yuva Kesinliği](/roadmap/single-slot-finality) 15 dakika beklemek yerine, bloklar tek bir yuvada önerilip kesinleştirilebilir. Bu, uygulamalar için daha kullanışlı ve saldırmak için zor. -- [Önerici-inşa edici ayrımı](/roadmap/pbs) - Blok inşa ve blok öneri görevlerini ayrı doğrulayıcılar arasında paylaştırmak; Ethereum'un mutabakata ulaşması için daha adil, daha sansür dirençli ve daha etkin bir yol yaratır. -- [Gizli lider seçimi](/roadmap/secret-leader-election) - Akıllı kriptografi; o andaki blok önerenini açık etmeden, onları belli başlı saldırı çeşitlerinden koruyarak kimliklerini güvence altına almada kullanılabilir. -- [Hesap soyutlaması](/roadmap/account-abstraction) - Hesap soyutlaması; akıllı sözleşme cüzdanlarını karmaşık ara katman yazılımı kullanmak zorunda olmadan doğası gereği Ethereum üzerinde destekleyen bir yükseltme sınıfıdır. -- [Verkle ağaçları](/roadmap/verkle-trees) - Verkle ağaçları, Ethereum üzerinde durumsuz müşterileri mümkün kılmak için kullanılabilecek bir veri yapısıdır. Bu 'durumsuz'' müşterilerin yalnızca çok az miktarda depo hacmi gereksinimi olacak, ancak onlar yine de yeni blokları doğrulamaya devam edebilecekler. -- [Durumsuzluk](/roadmap/statelessness) - durumsuz müşteriler yeni blokları, çok fazla veriyi depolamak zorunda kalmadan doğrulayabilecekler. Bu sayede, düğüm yürütmenin tüm faydaları yalnızca bugünün masraflarının küçük bir kısmıyla karşılanabilecek. diff --git a/src/content/translations/tr/roadmap/merge/index.md b/src/content/translations/tr/roadmap/merge/index.md deleted file mode 100644 index f2cdba4fd27..00000000000 --- a/src/content/translations/tr/roadmap/merge/index.md +++ /dev/null @@ -1,228 +0,0 @@ ---- -title: Birleştirme -description: "Birleşim: Ana Ağ Ethereum'un hisse ispatını kullanmaya başlama zamanı hakkında bilgi edinin." -lang: tr -template: upgrade -image: ../../../../../assets/upgrades/merge.png -summaryPoint1: Ethereum Ana Ağı hisse ispatı kullanır, ancak bu her zaman geçerli olan durum değildi. -summaryPoint2: Özgün iş ispatı mekanizmasının hisse ispatına yükseltilmesi Birleşim olarak adlandırılır. -summaryPoint3: Birleşim, esas Ethereum Ana Ağı'nın İşaret Zinciri olarak adlandırılan ayrı bir iş ispatı blok zinciri ile birleşmesi ile artık tek bir zincir olarak varlığını sürdürmesini ifade eder. -summaryPoint4: Birleşim, Ethereum'un enerji tüketimini ~%99,95 oranında azalttı. ---- - - - Birleşim 15 Eylül 2022 de gerçekleştirildi. Bu, iş ispatını resmi olarak kullanım dışı bırakarak ve enerji tüketimini yaklaşık %99,95 azaltarak Ethereum'un iş ispatı mutabakatına geçişini tamamladı. - - -## Birleşim neydi? {#what-is-the-merge} - -Birleşim Ethereum'un orijinal yürütüm katmanı ([başlangıç](/history/#frontier) zamanından beri olan Ana Ağ) ile yeni hisse ispatı fikir birliği katmanı olan İşaret Zinciri'nin birleşmesiydi. Yoğun enerji tüketen madenciliğe olan ihtiyacı kaldırdı ve ağın hisselenmiş ETH aracılığıyla güvenli kılınmasına ön ayak oldu. Ethereum vizyonunun gerçekleştirilmesinde gerçekten heyecan verici bir adımdı; daha fazla ölçeklenebilirlik, güvenlik ve sürdürülebilirlik. - - - -Başlangıçta, [İşaret Zinciri](/roadmap/beacon-chain/) [Ana Ağ'dan](/glossary/#mainnet) farklı olarak yayımlandı. Ethereum Ana Ağı - tüm hesapları, bakiyeleri, akıllı sözleşmeleri ve blok zincir durumu dahil - [iş ispatı](/developers/docs/consensus-mechanisms/pow/) ile güvence altına alınmaya devam ediyordu, İşaret Zinciri, [hisse ispatı](/developers/docs/consensus-mechanisms/pos/) kullanarak paralel olarak çalışırken de dahil olmak üzere. Birleşim bu iki sistemin bir araya geldiği ve hisse ispatının iş kanıtının yerini kalıcı olarak aldığı zamandı. - -Ethereum'un yıldızlar arası bir yolculuğa pek hazır olmadan önce fırlatılan bir uzay gemisi olduğunu düşünün. İşaret Zinciri ile topluluk, yeni bir motor ve sertleştirilmiş bir gövde inşa etti. Kayda değer testlerden sonra, uçuş esnasında yeni motoru eski motorla çalışma esnasında değiştirme vakti geldi. Bu yeni ve daha etkili olan motoru mevcut gemiyle birleştirdi ve ciddi miktarda ışık yılı ortaya koyarak evrene meydan okudu. - -## Ana Ağ ile birleştirme {#merging-with-mainnet} - -İş ispatı Ethereum Ana Ağı'nı başlangıçtan Birleşim'e kadar güvenli kıldı. Bu aşina olduğumuz Ethereum blok zincirinin bilinen özellikleriyle Temmuz 2015'te var olmasını sağladı; işlemler, akıllı sözleşmeler, hesaplar ve benzeri. - -Ethereum'un tarihi boyunca geliştiriciler, iş ispatından hisse ispatına nihai bir geçiş için hazırlandılar. 1 Aralık 2020'de, Ana Ağ'dan ayrı bir blok zincir olarak var olan ve paralel olarak çalışan İşaret Zinciri oluşturuldu. - -İşaret Zinciri, normalde Ana Ağ işlemlerini işlemiyordu. Bunun yerine, aktif doğrulayıcılar ve hesap bakiyeleri üzerinde anlaşmaya vararak kendi durumu üzerinde fikir birliğine varıyordu. Geniş testler sonrası, İşaret Zinciri'nin gerçek verilere göre fikir birliğine varmasının zamanı geldi. Birleşim sonrası, İşaret Zinciri yürütüm katmanı işlemleri ve hesap bakiyeleri dahil tüm ağ verisi için mutabakat motoru haline geldi. - -Birleşim blok üretim motoru olarak İşaret Zinciri'ne resmi geçişi temsil eder. Madencilik artık geçerli bloklar üretmenin yolu değildir. Yerine, hisse ispatı doğrulayıcıları bu rolü almıştır ve artık tüm işlemlerin doğruluğunu işlemekten ve bloklar önermekten sorumludur. - -Birleşim'de herhangi bir geçmiş kaybedilmedi. Ana Ağ İşaret Zinciri ile birleşti, ayrıca Ethereum'un tüm işlemsel geçmişini de birleştirdi. - - -Hisse ispatına geçiş ether basım şeklini değiştirdi. Birleşim'den önce ve sonra ether verilmesi hakkında daha fazla bilgi edinin. - - -### Kullanıcılar ve sahipler {#users-holders} - -**Birleşim, sahipler/kullanıcılar için herhangi bir şey değiştirmedi.** - -_Bu tekrar ister_: Ya düğüm yönetmeyen bir kilitleyici olarak ya da Ethereum üzerinde bir ETH veya herhangi diğer bir dijital varlığın sahibi olarak, **Birleşim için fonlarınız, cüzdanınız veya hesabınız için herhangi bir şey yapmanız gerekmez.** ETH sadece ETH'dir. "Eski ETH"/"yeni ETH" veya "ETH1"/"ETH2" diye bir şey yoktur ve cüzdanlar Birleşim'den önce nasıl çalışıyorsa sonrasında da öyle çalışacaktır, size bunun aksini söyleyenler muhtemelen dolandırıcılardır. - -İş ispatından ayrılmasına rağmen, Ethereum'un başlangıçtan itibaren tüm geçmişi sabit kalmıştır ve hisse ispatına geçişten etkilenmemiştir. Birleşim'den önce cüzdanınızda bulunan herhangi bir fon Birleşim'den sonra da erişilebilirdir. **Yeni sürüme geçmek için herhangi bir işlem yapmanız gerekmez.** - -[Ethereum güvenliği hakkında daha fazlası](/security/#eth2-token-scam) - -### Düğüm operatörleri ve dapp geliştiricileri {#node-operators-dapp-developers} - - - -Anahtar eylem maddeleri şunları içerir: - -1. _Hem_ bir fikir birliği istemcisi hem de yürütüm istemcisi çalıştırın; yürütme verisi elde etmek için kullanılan üçüncü şahıs uç noktaları Birleşim'den itibaren çalışmaz. -2. Güvenli bir şekilde iletişim kurabilmeleri için hem yürütme hem de fikir birliği istemcilerinin kimliğini paylaşılan bir JWT sırrıyla doğrulayın. -3. Kazanılmış işlem ücreti/MEV ücretinizini almak için bir "ücret alıcısı" adresi belirleyin. - -İlk iki maddeyi tamamlamamak iki katman da eşlenene ve doğrulanana kadar düğümünüzün "çevrimdışı" olarak görülmesine sebep olur. - -Bir "ücret alıcısı" ayarlamamak doğrulayıcınızın davranışını etkilemez, ancak doğrulayıcınızın önerdiği bloklarda kazanılan yakılmamış ücretleri ve MEV ücretlerini kaçırırsınız. - - - - -Birleşim'e kadar bir yürütüm istemcisi (Geth, Erigon, Besu veya Nethermind gibi) ağdan anlatılan blokları almak, düzgünce doğrulamak ve yaymak için yeterliydi. _Birleşim sonrası_, bir yürütme yükü içinde bulunan işlemlerin geçerliliği artık ayrıca bulunduğu "mutabakat blokunun" geçerliliğine bağlı olacaktır. - -Bunun bir sonucu olarak, bir Ethereum düğümü artık hem bir yürütüm istemcisi hem de fikir birliği istemcisi gerektirir. Bu iki müşteri, yeni bir Motor API'sı kullanarak birlikte çalışır. Motor API'sı, her iki müşteriye de sağlanan ve güvenli iletişime izin veren bir JWT sırrı kullanılarak kimlik doğrulaması gerektirir. - -Anahtar eylem maddeleri şunları içerir: - -- Yürütüm istemcisine ek olarak bir fikir birliği istemcisinin kurulumunu yapma -- Birbirleriyle güvenli bir biçimde iletişime geçebilmeleri için yürütüm ve fikir birliği istemcilerini paylaşımlı bir JWT sırrı ile doğrulama. - -Yukarıdaki maddeleri tamamlamamak iki katman da eşlenene ve doğrulanana kadar düğümünüzün "çevrim dışı" olarak görülmesine sebep olur. - - - - - -Birleşim, mutabakata değişikliklerle beraber geldi, bu değişiklikler şunlarla ilişkili olanları da içerir:< - -
    -
  • blok yapısı
  • -
  • yuva/blok zamanlaması
  • -
  • işlem kodu değişiklikleri
  • -
  • zincir üstündeki rastgeleliğin kaynakları
  • -
  • güvenli baş ve sonlandırılmış bloklar konsepti
  • -
- -Daha fazla bilgi için, Tim Beiko tarafından yazılmış Birleşim Ethereum'un Uygulama Katmanını Nasıl Etkiler üzerine blog gönderisine bakın. - -
- -## Birleşim ve enerji tüketimi {#merge-and-energy} - -Birleşim Ethereum için iş ispatının sonunu getirdi ve daha sürdürülebilir ve doğa dostu bir Ethereum devrini başlattı. Ethereum'un enerji tüketimi %99,95 düştü ve Ethereum çevre dostu bir blok zincir haline geldi. [Ethereum enerji tüketimi](/energy-consumption/) hakkında daha fazla bilgi edinin. - -## Birleşim ve ölçeklendirme {#merge-and-scaling} - -Birleşim aynı zamanda, iş ispatı altında mümkün olmayan daha fazla ölçeklenebilirlik yükseltmeleri için zemin hazırlayacak ve Ethereum'u [Ethereum vizyonunda](/roadmap/vision/) belirtilen tam ölçek, güvenlik ve sürdürülebilirliğe bir adım daha yaklaştıracak. - -## Birleşim hakkında yanlış bilinenler {#misconceptions} - - - -İki tip Ethereum düğümü bulunur: Blok önerebilen ve öneremeyen düğümler. - -Blok önerebilen düğümler Ethereum üzerindeki toplam düğüm sayısının küçük bir kısmıdır. Bu kategori, iş ispatı (PoW) altındaki madencilik düğümleri ile hisse ispatı (PoS) altındaki doğrulayıcı düğümleri kapsar. Bu kategori ekonomik kaynakların (iş ipatındaki GPU karma gücü ya da hisse ispatında hisselenmiş ETH gibi), yeni bloku kimi zaman önerme ve protokol ödülleri kazanma yetenekleri karşılığında buraya adanmasını gerektirir. - -Ağdaki diğer düğümler (yani çoğunluğu)1-2 TB'lik depolama alanı ve internet bağlantısı olan tüketici seviyesindeki bir bilgisarın ötesinde bir ekonomik kaynağa ihtiyaç duymaz. Bu düğümler blok önermezler, ancak yine de yeni bloklardan haberdar olarak ve blokların geçerliliğini ağ mutabakat kurallarına göre onaylayarak blok önericilerini açıklanabilir tutarlar ve ağı güvende tutmada önemli bir rol oynarlar. Eğer blok geçerliyse, düğüm ağ içinde yayılmaya devam eder. Eğer blok herhangi bir sebepten dolayı geçersizse, düğüm yazılımı geçersiz olduğu için bloku umursamayacak ve yayılmasını durduracaktır. - -Blok üretimi yapmayan bir düğümü çalıştırmak da mutabakat mekanizması (iş ispatı ya da hisse ispatı) altındaki herkes için yapılabilirdir ve bu konuda imkân ve niyetleri varsa şiddetle tavsiye edilir. Bir düğümü çalıştırmak Ethereum için son derece önemlidir ve çalıştıran bireye gelişmiş güvenlik, gizlilik ve sansüre dayanıklılık gibi birçok avantaj sağlar. - -Herhangi bir kişinin kendi düğümünü çalıştırabilmesi Ethereum ağının merkeziyestizliğinin korunması konusu için kesinlikle gereklidir. - -Kendi kodunuzu çalıştırmanızla ilgili daha fazlası - - - - - -Gaz ücretleri ağın kapasitesine bağlı olan bir ağ talebidir. Birleşim iş ispatı modasını bitirip onun yerine mutabakat için hisse ispatını getirdi, ancak hiçbir parametreyi ciddi şekilde değiştirmedi ya da ağ kapasitesini ve iş hacmini etkilemedi. - -Toplama merkezli bir yol haritasıyla, K2'deki Katman 2deki kullanıcı aktivitesini ölçeklendirmeye odaklanılırken, Katman 1 Ana Ağı'nı toplama işlemlerinin kat kat ucuz olmasına yardım eden bir optimize edilmiş veri deposu ve güvenli merkeziyesiz bir uzlaşma katmanı olmasını sağlıyor. Hisse ispatına geçiş bunu fark etmede öncü rol oynuyor. Gaz ve ücretler hakkında daha fazlası - - - - -Bir işlemin "hızı", bloka dahil edilme ve sonuçlandırma süresini de kapsayan birkaç farklı yolla ölçülebilir. Bunların ikisi de biraz farklıdır, ancak kullanıcıların fark edeceği bir şekilde değil. - -Tarihi olarak, iş ispatı döneminde, hedef her ~13,3 saniyede yeni bir bloka sahip olmaktı. Hisse ispatında ise yuvalar kesin olarak her 12 saniyede bir ortaya çıkar, hepsi doğrulayıcının bir blok yayınlaması için bir fırsattır. Yuvaların çoğunun blokları vardır, ancak hepsinin olması gerekmez (doğrulayıcı çevrimdışı olabilir). Hisse ispatında, bloklar iş ispatına göre ~%10 daha sık üretilir. Bu epey önemsiz bir değişiklikti ve muhtemelen kullanıcılar tarafından fark edilmeyecekti. - -Hisse ispatı daha önce var olmayan işlem kesinliiğii konseptini tanıttı. İş ispatında, bir bloku ters çevirebilmekmek her geçen blokun işlemin en tepesine çıkarılmış olmasıyla katlanarak zorlaşıyordu, ancak hiçbir zaman da 0'a ulaşmıyordu. Hisse ispatında, bloklar doğrulayıcının oyladıkları dönemlere ayrılmıştır (bloklar için 32 şans içeren 6,4 saniyelik zaman açıklıkları). Bir dönem sonlandığında doğrulayıcılar dönemin "makul" olarak değerlendirilmesi konusunda oylama yapar. Eğer doğrulayıcılar dönemin makul olduğunda fikir birliğine varırlarsa o, bir sonraki dönemde sonuçlandırılır. Kesinleşmiş işlemleri geri çevirmek ekonomik olarak yaşamaz çünkü bu toplam pay edilmiş Ethereum'un üçte birini yakmak demekti. - - - - - -Birleşim'den sonraki ilk zamanlarda, paydaşlar sadece masraf tüyolarına ve blok önerileriyle kazandıkları MEV'lere erişebiliyorlardı. Bu ödüller doğrulayıcı (ücret alıcı olarak da bilinir) tarafından kontrol edilen ve hisseleme yapmayan hesaplara yatırılır ve anında ulaşılabilir olurlar. Bu ödüller doğrulayıcı görevlerini yapmak için verilen protokol ödüllerinden farklıdır. - -Shangai/Capella ağ yükseltmesinden bu yana, paydaşlar herhangi bir hisse bakiyesinden artan ödemeleri alabilmek için (protokol ödüllerinden gelen 32'den fazla Ethereum) artık bir para çekme adresi belirleyebiliyor. Bu yükseltme aynı zamanda bir doğrulayıcının ağdan çıktıktan sonra da bakiyelerinin kilitlerini açabilmesini ve tekrar alabilmesini sağladı. - -Hisseleme çekimleri hakkında daha fazlası - - - - -Shanghai/Capella yükseltmesi çekimleri yapılabilir hale getirdiğinden beri, doğrulayıcılar da 32 Ethereum'dan yüksek olan hisse bakiyelerini çekmeye teşvik edildiler, zaten bunlar getiriye eklenmiyordu ve eğer aksi bir durum varsa da kilitleniyordu. APR'ye (toplam hisselenen ETH tarafından belirlenir) bağlı olarak, tüm bakiyelerini geri almak için doğrulayıcılarından çıkmaya veya daha fazla getiri elde etmek için ödüllerini kullanarak potansiyel olarak daha fazla hisselemeye teşvik edilebilirler. - -Önemli bir uyarı, tam doğrulayıcı çıkışlarının hızı protokol tarafından sınırlandırılmıştır ve bir dönem (6,4 dakika) başına sadece izin verilen sayıda doğrulayıcı çıkabilir. Bu limit dalgalanmaları aktif doğrulayıcı sayısına bağlıdır, ancak bir günde toplam hisselenmiş Ethereum'un yaklaşık olarak %0,33'ünün ağdan çıkarılabilmesiyle sonuçlanır. - -Bu hisselenmiş kaynaklar için büyük bir hareketi, "sermaye kaçışı"nı engeller. Ayrıca, hisselenen ETH'nin büyük bir kısmına erişimi olan potansiyel saldırganlar, protokolün kesilme cezasını uygulayabilmesinden önce, tehdit ettiği tüm doğrulayıcı bakiyelerinden çekilmesi engellenir. - -APR ayrıca kasten dinamik yapılmıştır, bu da bir grup paydaşın ağı güvende tutmaya yardımcı olmak için ne kadar ödeme almak istediklerini belirlemelerine olanak verir. Eğer oran çok düşükse, doğrulayıcılar protokol tarafından kısıtlanmış bir oranda çıkacaklardır. Yavaş yavaş bu, kalan herkes için APR'yi artıracak, yeni veya geri dönen paydaşları tekrar çekecektir. - - -## "Eth2"ye ne oldu? {#eth2} - -"Eth2" terimi artık kullanım dışı. "Eth1" ve "Eth2"nin tek bir zincirde birleşiminin ardından 2 Ethereum ağının ayırt edilmesine gerek kalmayacak, artık yalnızca bir Ethereum var. - -Karışıklığı önlemek için topluluk şu şartları güncelledi: - -- "Eth1" artık, işlemleri ve çalışmayı yapan "çalıştırma katmanı"dır. -- "Eth2" artık, hisse ispatı mutabakatını yöneten "mutabakat katmanı"dır. - -Bu terminoloji güncellemeleri yalnızca adlandırma alışkanlıklarını değiştirir; bu, Ethereum'un hedeflerini veya yol haritasını değiştirmez. - -["Eth2" ad değişimi hakkında daha fazla bilgi edinin](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) - -## Yükseltmeler arasındaki ilişki {#relationship-between-upgrades} - -Ethereum yükseltmelerinin tamamı bir şekilde ilişkilidir. Öyleyse Birleşim'in diğer yükseltmelerle nasıl ilişkili olduğunu özetleyelim. - -### Birleşim ve İşaret Zinciri {#merge-and-beacon-chain} - -Birleşim, yeni fikir birliği katmanı olarak İşaret Zinciri'nin asıl Ana Ağ yürütüm katmanına resmi olarak eklenmesini temsil eder. Birleşim'den beri doğrulayıcılar, Ethereum Ana Ağı'nı güvence altına almakla görevlendirildiler ve [iş ispatı](/developers/docs/consensus-mechanisms/pow/) artık geçerli bir blok üretimi anlamına gelmiyor. - -Bloklar, mutabakata katılma hakkı karşılığında hisselenmiş ETH sahibi doğrulayan düğümler tarafından önerilmektedir. Bu yükseltmeler, parçalama da dahil olmak üzere gelecekteki ölçeklenebilirlik yükseltmeleri için zemin hazırlar. - - - İşaret Zinciri - - -### Birleşim ve Shanghai yükseltmesi {#merge-and-shanghai} - -Hisse ispatına başarıyla geçişe en yüksek düzeyde odaklanma ve bunu basitleştirmek için Birleşim yükseltmesi, hisselenmiş ETH'nin çekilme yeteneği gibi beklenen özellikleri içermemektedir. Bu işlevsellik Shanghai/Capella yükseltmesi ile ayrıca mümkün kılınmıştır. - -Merak edenler için, 2021 yılının Nisan ayında ETHGlobal etkinliğinde Vitalik tarafından sunulan [Birleşimden Sonra Ne Olacağı](https://youtu.be/7ggwLccuN5s?t=101) hakkında daha fazla bilgi edinin. - -### Birleşim ve parçalama {#merge-and-data-sharding} - -Başlangıçta plan, ölçeklenebilirliği ele almak için Birleşim'den önce parçalama üzerinde çalışmaktı. Buna rağmen [katman 2 ölçeklendirme çözümlerinin](/layer-2/) patlaması ile, öncelik ilk olarak iş isparını hisse ispatı ile değiştirmeye kaymıştır. - -Parçalama planları hızla gelişiyor, ancak işlem yürütmeyi ölçeklendirmek için katman 2 teknolojilerinin yükselişi ve başarısı göz önüne alındığında, parçalama planları, toplama sözleşmelerinden sıkıştırılmış çağrı verilerini depolamanın yükünü dağıtmak için en uygun yolu bulmaya kaydı ve ağ kapasitesinde katlanarak büyümeye izin verdi. Bu, ilk olarak hisse ispatına geçmeden mümkün olmazdı. - - - Parçalama - - -## Daha fazla okuma {#further-reading} - - - - diff --git a/src/content/translations/tr/roadmap/scaling/index.md b/src/content/translations/tr/roadmap/scaling/index.md deleted file mode 100644 index cef941f0077..00000000000 --- a/src/content/translations/tr/roadmap/scaling/index.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Ethereum'u ölçeklendirmek -description: Toplamalar işlemleri zincir dışında topluca gerçekleştiriyor, böylece kullanıcı için maliyetleri azaltıyor. Ancak, toplamaların şu andaki veri kullanımı çok pahalı ve bu durum, işlemlerin ucuz olabilme yolunu sınırlıyor. Proto-Danksharding bunu çözüyor. -lang: tr -image: ../../../../../assets/roadmap/roadmap-transactions.png -alt: "Ethereum yol haritası" -template: roadmap ---- - -Ethereum, birlikte toplu işlemler yapan ve çıktıyı Ethereum'a gönderen [katman 2'ler](/layer-2/#rollups) (toplamalar olarak da bilinir) kullanılarak ölçeklendirilir. Toplamalar Ethereum Ana Ağı'ndan 8 kat daha ucuz olsa da, onları son kullanıcıların masraflarını azaltmak için optimize etmek mümkün. Toplamalar aynı zamanda, geliştiricilerin toplamalar olgunlaştıkça kaldırabilecekleri bazı merkezi bileşenlere dayanır. - - -
    -
  • Günümüzün toplamaları Ethereum katman 1'den ~3-8x daha ucuz
  • -
  • ZK toplamaları yakında ücretleri ~40-100x düşürecek
  • -
  • Ethereum'da yapılacak değişiklikler ~100-1000x daha fazla ölçeklendirme sağlayacak
  • -
  • Kullanıcılar 0,001 dolardan daha az maliyetli işlemlerden yararlanmalıdır
  • -
-
- -## Veriyi ucuzlatmak {#making-data-cheaper} - -Toplamalar, çok sayıda işlemi bir araya getirir, bunları gerçekleştirir ve sonuçlarını Ethereum'a iletir. Bu, herkesin kendi işlemlerini gerçekleştirebilmesi için ve toplama işlemcisinin dürüst olduğunu doğrulayabilmek için açıkça ulaşılabilir olması gereken birçok veri üretir. Eğer birisi bir uyuşmazlık bulursa, meydan okuyabilir. - -### Proto-Danksharding {#proto-danksharding} - -Toplama verileri Ethereum üzerinde kalıcı olarak depolanır ve bu maliyetlidir. Toplamalarda kullanıcıların ödediği işlem ücretlerinin %90'ından fazlası bu veri depolamadan kaynaklıdır. İşlem ücretlerini azaltmak için depolama verilerini yeni bir geçici "bloka" taşıyabiliriz. Bloklar ucuzdur çünkü kalıcı değillerdir. Artık daha fazla ihtiyaç kalmadığında, Ethereum üzerinden silinirler. Toplama verilerinin uzun süreli depolanması, toplama işletmecileri, borsalar, indeksleme hizmetleri vb. gibi ihtiyaç duyan insanların sorumululuğudur. Blob işlemlerini Ethereum'a eklemenin bir parçası olan yükseltmenin adı "Proto-Danksharding"dir. Muhtemelen yakında, 2023'ün sonlarına doğru kullanıma sunulacak. - -Proto-Danksharding sayesinde, blob işlemlerinin Ethereum'un bir parçası olmasından sonra, Ethereum bloklarına birçok blob eklemek mümkün olacak. Bu Ethereum'un işlem kapasitesinde (>100x) artış ve işlem maliyetlerinde düşüş sağlayacak önemli bir ölçeklendirme olacak. - -### Danksharding {#danksharding} - -Blob verilerinin genişlemesinin ikinci aşaması karmaşıktır çünkü ağdaki toplama verisinin mevcudiyetini kontrol etmek için yeni metotlar gerektirir ve bu, doğrulayıcıların blok oluşturma ve blok önerme sorumluluklarını ayırmalarına dayanır. Aynı zamanda, doğrulayıcıların blob verisinin küçük alt kümelerini doğruladıklarını kriptografik olarak kanıtlamak için bir yol gerekir. - -İkinci adım [“Danksharding”](/roadmap/danksharding/) olarak bilinir. Tam olarak uygulanmasına muhtemelen birkaç yıl var. Danksharding [blok oluşturma ve blok önermenin yanında](/roadmap/pbs), [veri kullanılabilirliği örneklendirmesi (DAS)](/developers/docs/data-availability) şeklinde adlandırılan, her seferinde rastgele birkaç kilobayt örneklendirme ile verilerin kullanılabildiği ve kullanılabilirliği verimli bir şekilde doğrulayan yeni ağ tasarımlarına dayanır. - -Danksharding hakkında daha fazlası - -## Toplamaları merkeziyetsizleştirmek {#decentralizing-rollups} - -[Toplamalar](/layer-2) halihazırda Ethereum'u ölçeklendiriyor. [rToplama projelerinden oluşan zengin bir ekosistem](https://l2beat.com/scaling/tvl), bir dizi güvenlik garantisi ile kullanıcıların hızlı ve ucuz bir şekilde işlem yapmasını sağlıyor. Ancak toplamalar merkezi sıralayıcılar kulanılarak (Ethereum'a göndermeden önce işleme ve toplama işlemlerini gerçekleştiren bilgisayarlar) başlatıldı. Bu, sansüre karşı savunmasızdır çünkü sıralayıcı işlemlerine yaptırım uygulanabilir, rüşvet veya başka şekilde tehlikeye atılabilir. Aynı zamanda [toplamalar](https://l2beat.com), gelen veriyi doğrulama şekillerine göre de değişiklik gösterir. "Kanıtlayıcılar" için en iyi yol geçerlilik ve dolandırıcılık kanıtları sunmasını sağlmakatır, ancak bu henüz tüm toplamalar için mümkün değil. Geçerlilik/sahtecilik kanıtları kullanan toplamalar bile bilinen küçük bir kanıt havuzu kullanır. Bu sebeple, Ethereum'u ölçeklendirme yolundaki bir sonraki kritik adım, sıralayıcıların ve kanıtlayıcıların çalıştırılma sorumluluğunu daha fazla insana dağıtmaktır. - -Toplama hakkında daha fazlası - -## Güncel ilerleme {#current-progress} - -Muhtemelen Proto-Danksharding uygulanacak erken yol haritası öğelerinden biri olacak. Kurulum için merkeziyetsiz hesaplama adımları halihazırda devam ediyor ve birkaç istemci veri damlalarını işlemek için prototipler uyguladı. Tam Danksharding için muhtemelen birkaç yıl var çünkü öncesinde tamamlanması gereken başka birkaç yol haritası var. Toplama altyapısını merkeziyetsiz hale getirme işlemi muhtemelen kademeli bir süreç olacak, farklı toplamalar farklı işlemler inşa ediyor. Bu nedenle farklı hızlarda merkeziyetsizleşme gerçekleşecektir. diff --git a/src/content/translations/tr/roadmap/security/index.md b/src/content/translations/tr/roadmap/security/index.md deleted file mode 100644 index af76df7c6f6..00000000000 --- a/src/content/translations/tr/roadmap/security/index.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: Daha güvenli bir Ethereum -description: Ethereum, var olan en güvenli ve merkeziyetsiz akıllı sözleşme platformudur. Bununla birlikte, Ethereum'un gelecekte her türlü saldırıya karşı dayanıklı kalabilmesi için yapılabilecek iyileştirmeler hâlâ var. -lang: tr -image: ../../../../../assets/roadmap/roadmap-security.png -alt: "Ethereum yol haritası" -template: roadmap ---- - -Ethereum halihazırda çok güvenli, merkeziyetsiz bir akıllı sözleşme platformudur. Bununla birlikte, Ethereum'un gelecekte her türlü saldırıya karşı dayanıklı kalabilmesi için yapılabilecek iyileştirmeler hâlâ var. Bu iyileştirmeler, Ethereum istemcilerinin rakip bloklarla başa çıkma şeklindeki ince değişikliklere ek olarak, ağın blokların [sonlandırılmış](/developers/docs/consensus-mechanisms/pos/#finality) kabul ettiği hız arttırma sürecini de içerir (bu, blokların saldırgana aşırı ekonomik kayıplar vermeden değiştirilemeyeceği anlamına gelir). - -Ayrıca, bir istemci sansür uyguladığında belirlenmesini sağlayan, blok önericilerini blokların gerçek içeriğine kör ederek işlemleri sansürlemeyi çok daha zor hale getiren yeni iyileştirmeler de var. Bu iyileştirmeler, hisse ispatı protokolünü yükseltecek, böylece kullanıcılar -bireylerden şirketlere- Ethereum'daki uygulama, veri ve varlıklarına anında güven duyacaklar. - -## Hisseden ödeme alma {#staking-withdrawals} - -İş ispatından hisse ispatına yükseltme, Ethereum öncülerinin ETH'lerini bir mevduat sözleşmesinde "hisselemeleri" ile başladı. Adı geçen ETH, ağı korumak için kullanılıyor ancak bu ETH'nin kilidi henüz açılamıyor ve kullanıcılara iade edilemiyor. Hisse ispatı yükseltmesinin en kritik parçası ETH'nin çekilmesine olanak sağlaması. ETH çekme işlemlerinin, işlevsel bir hisse ispatı protokolünün kritik bir parçası olmasına ek olarak, bu çekme işlemleri paydaşların ETH ödüllerini hisseleme amaçları dışında kullanmalarına izin vererek Ethereum güvenliğine de katkı sağlıyor. Bu, likidite isteyen kullanıcıların, Ethereum üzerinde merkezileştirici bir gücü olabilecek likit hisseleme türevlerine (LSD'ler) bel bağlamak zorunda olmadıkları anlamına geliyor. Bu yükseltmenin 12 Nisan 2023'te tamamlanması planlanıyor. - -Para çekme hakkındakileri oku - -## Saldırılara karşı savunma {#defending-against-attacks} - -ETH çekimine olanak sağlandığı halde, Ethereum'un [hisse ispatı](/developers/docs/consensus-mechanisms/pos/) protokolünde yapılabilecek iyileştirmeler hâlâ mevcut. Bi̇r tanesi [Görüntü Birleşimi](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739) olarak bilinir- belli komplike atakları zorlaştıran daha güvenli bir çatal seçim algoritmasıdır. - -Ethereum'un blokları sonlandırmak için harcadığı süreyi azaltmak, daha iyi bir kullanıcı deneyimi sağlar ve saldırganların kar elde etmek veya belirli işlemleri sansürlemek amacıyla yeni blokları yeniden düzenlemeye çalıştığı karmaşık "reorg" saldırılarını engeller. [**Tek yuva kesinliği (SSF)**](/roadmap/single-slot-finality/) sonlandırma gecikmesini en aza indirgemenin bir yoludur. Şu anda bir saldırganın teorik olarak diğer doğrulayıcıları yeniden yapılandırmaya ikna edebileceği 15 dakika değerinde bloklar var. Bu süre SSF ile birlikte sıfıra iniyor. Bireylerden uygulamalara ve borsalara kadar kullanıcılar, işlemlerinin iptal edilmeyeceğine dair hızlı güvenceden yararlanır, ağ ise bütün bir saldırı grubunu durdurarak fayda sağlar. - -Tek yuva kesinliği hakkındakileri oku - -## Sansüre karşı savunma {#defending-against-censorship} - -Merkeziyetsizlik, kişilerin ya da küçük doğrulayıcı gruplarının fazla etkili olmalarını engeller. Yeni hisseleme teknolojileri, Ethereum doğrulayıcılarının mümkün olduğunca merkeziyetsiz kalmalarına yardımcı olurken aynı zamanda onları donanım, yazılım ve ağ hatalarına karşı da korur. Bu teknolojilerden biri doğrulayıcı sorumluluklarını birden fazla düğüm arasında paylaşan bir yazılımdır Bu, **dağıtılmış doğrulayıcı teknolojisi (DVT)** olarak bilinir. Hisseleme havuzları, DVT kullanımına teşvik edilir çünkü bu, birden fazla bilgisayarın toplu olarak doğrulamaya katılarak fazlalık katıp hata toleransını arttırır. Aynı zamanda, birden fazla doğrulayıcıyı çalıştıran tek bir operatöre sahip olmak yerine, doğrulayıcı anahtarlarını birkaç sisteme de böler. Bu, sahtekar operatörlerin Ethereum'a karşı saldırı koordine etmesini daha zor hale getirir. Genel olarak fikir, doğrulayıcıları bireyler yerine _topluluklar_ olarak çalıştırarak güvenlik avantajı elde etmektir. - -Dağıtılmış doğrulayıcı teknolojisi hakkındakileri oku - -**Önerici-inşa edici ayrımının (PBS)** uygulanması, Ethereum'un sansüre karşı dahili savunmalarını büyük ölçüde geliştirecektir. PBS, bir doğrulayıcının bir blok oluşturmasına ve diğerinin bunu Ethereum ağında yayınlamasına olanak verir. Bu, profesyonel kâr maksimizasyonu sağlayan ve blok inşa eden algoritmalardan elde edilen kazançların adil bir şekilde dağıtılmasını sağlayarak, zaman içinde en iyi performans gösteren kurumsal paydaşların **hisselemelerinin yoğunlaşmasını engeller**. Blok önerici, bir blok oluşturucu pazarı tarafından kendilerine sunulan en kazançlı bloku seçer. Sansürleme için bir blok önericinin çoğunlukla daha az kazançlı bir blok seçmesi gerekir. Bu **ekonomik açıdan mantıksız ve ağdaki diğer doğrulayıcılar için de aşikardır**. - -Ethereum'un sansüre dayanıklılığını daha da arttırabilecek şifrelenmiş işlemler ve dahil etme listeleri gibi potansiyel PBS eklentileri vardır. Bunlar, blok inşa edenlerin ve önerenlerin bloklarına dahil olan asıl işlemleri görmelerini engeller. - -Önerici-inşa edici ayrımı hakkındakileri okuyun - -## Doğrulayıcıları koruma {#protecting-validators} - -Tecrübeli bir saldırganın, yaklaşan doğrulayıcıları saptayıp, blok önermelerini engellemek için onları spamlaması mümkündür ve buna **hizmet reddi (DoS)** saldırısı denir. [**Gizli lider seçiminin (SLE)**](/roadmap/secret-leader-election) uygulanması, blok önericilerin önceden bilinmesini önleyerek bu tür saldırılara karşı koruma sağlayacaktır. Bu, aday blok önericilerini temsil eden bir dizi kriptografik taahütün sürekli olarak karıştırılarak ve bunların sırasını kullanarak çalışır. Bu şekilde, sadece doğrulayıcıların kendi sıralarını önceden bileceği şekilde hangi doğrulayıcının seçildiği belirlenir. - -Gizli lider seçimi hakkındakileri okuyun - -## Güncel ilerleme {#current-progress} - -Yol haritasındaki güvenlik yükseltmeleri, araştırmanın ileri seviyelerinde olsa da, bir süre daha uygulanmaları beklenmiyor. Görüntü birleşiminin sonraki adımları ise PBS, SSF ve SLE'dir, bunlar uzmanlaşmayı kesinleştirip prototip inşa etmeye başlamak içindir. diff --git a/src/content/translations/tr/roadmap/user-experience/index.md b/src/content/translations/tr/roadmap/user-experience/index.md deleted file mode 100644 index 2e5c5438bc8..00000000000 --- a/src/content/translations/tr/roadmap/user-experience/index.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: Kullanıcı deneyimini iyileştirme -description: Ethereum'u kullanmak çoğu kişi için hâlâ oldukça karmaşık. Kitlesel kullanımı teşvik etmek için Ethereum, giriş engellerini büyük ölçüde azaltmalıdır - kullanıcılar, Ethereum'a merkeziyetsiz, izinsiz ve sansüre dirençli erişimin avantajlarından yararlanmalıdır; ancak bu, geleneksel bir web2 uygulamasını kullanmak kadar sorunsuz olmalıdır. -lang: tr -image: ../../../../../assets/roadmap/roadmap-ux.png -alt: "Ethereum yol haritası" -template: roadmap ---- - -Anahtar ve cüzdan kullanımından işlemlerin başlatılmasına kadar Ethereum'un kullanımı basitleştirilmeli. Ethereum, kitlesel kullanımı hafifletmek için, kullanıcılara izinsizliği deneyimlemesini ve Ethereuma Web2 uygulamaları kullanarak sansürsüz ve sıkıntısız bir şekilde erişmesini sağlayarak kullanımı ciddi olanda kolaylaştırmalıdır. - -## Güvenlik kelimelerinin ötesinde {#no-more-seed-phrases} - -Ethereum hesapları, hesapların tanınması (açık anahtar) ve mesajların imzalanması (özel anahtar) için bir çift anahtar ile korunmaktadır. Bir özel anahtar üst düzey parola gibidir, Ethereum hesabına tam erişim imkânı sunar. Bu; hesapların kullanıcılar adına bankalar ve Web2 uygulamaları tarafından yönetilen insanlar için farklı bir işlem metodudur. Merkezi üçüncü şahıslara muhtaç olmadan Ethereum'un kitlesel kullanımı amacıyla, kullanıcı için varlıklarının sorumluluğunu üstlenecek ve kendi verilerinin kontrolünü açık-özel anahtar kriptografisi ile anahtar yönetimini anlamasını zorunlu kılmayacak, açık ve düz bir yol olmak zorundadır. - -Bunun için çözüm, Ethereum ile etkileşecek akıllı sözleşme cüzdanlarının kullanımıdır. Akıllı sözleşme cüzdanları; anahtarlar kaybolur veya çalınırsa korunma yolları ile daha iyi sahtekarlık denetimi ve savunma yaratır ve cüzdanların yeni işlevsellik kazanmalarını sağlar. Bugün dahi akıllı sözleşme cüzdanları var olsa da üzerine inşa etmek için henüz kullanışsızdır çünkü Ethereum protokolünün bunları daha iyi desteklemesi gerekir. Bu fazladan destek, hesap soyutlaması olarak bilinmektedir. - -Hesap soyutlaması hakkında daha fazlası - -## Herkes için düğümler - -Düğüm işleten kullanıcılar, veri sağlamaları için üçüncü şahıslara güven duymak zorunda değillerdir ve hızlı, özel ve izne ihtiyaç duymayan bir biçimde Ethereum blok zinciri ile etkileşebilirler. Ancak bir düğümü yürütmek, birçok insanın aracılara güven duymak zorunda kalacağı anlamına gelen teknik bilgi ve azımsanmayacak disk hacmi gerektirir. - -Düğümleri yürütmeyi çok daha kolay ve daha az kaynak bağımlı hale getirecek birçok yükseltme vardır. Verinin depolanma yolu, hacmi daha etkili kullanmak adına **Verkle Ağacı** olarak da bilinen bir yapı ile değiştirilecektir. Aynı zamanda [durumsuzluk](/roadmap/statelessness) veya [veri sonlanması](/roadmap/statelessness/#data-expiry) ile beraber Ethereum düğümleri, hard disk boşluğu gereksinimini azımsanamayacak miktarda düşürecek olan tüm Ethereum durum verilerinin bir kopyasını depolamaya gerek duymayacaklar. [Hafif düğümler](/developers/docs/nodes-and-clients/light-clients/), tam bir düğümü yürütmenin çoğu getirisini sunacak, ancak cep telefonları veya temel tarayıcı uygulamalarının içinde kolaylıkla yürütülebilecektir. - -Verkle ağaçları hakkındakileri okuyun - -Bu yükseltmelerle bir düğüm yürütmenin önündeki engeller işlevsel olarak sıfıra indirilir. Kullanıcılar, bilgisayar veya cep telefonlarından, fark edilebilir disk hacmi veya CPU feda etmek zorunda kalmadan ve uygulama kullanırken veri ya da ağ erişimi için üçüncü şahıslara bel bağlamak zorunda olmadan Ethereum'a güvenli ve izne ihtiyaç duymayan erişimden faydalanacak. - -## Güncel ilerleme {#current-progress} - -Akıllı sözleşme cüzdanları çoktan beri mevcut, ancak bu cüzdanları olabildiğinde merkeziyetsiz ve izinsiz hale getirmek için daha fazla yükseltme gerekiyor. EIP-4337, Ethereum'un protokülende hiçbir değişiklik gerektirmeyen, olgun bir öneridir. EIP-4337 için gerekli temel akıllı sözleşme Mart 2023'te dağıtıldı. - -Tam durumsuzluk hâlâ araştırma safhasında ve yürürlüğe geçirilmesine uzun yıllar var gibi. Tam durumsuzluğa giden yolda, daha yakın tarihte yürürlüğe konabilecek veri sonlanmasını da içeren birçok kilometre taşı vardır. [Verkle Ağacı](/roadmap/verkle-trees/) ve [önerici-inşa edici ayrımı](/roadmap/pbs/) gibi diğer yol haritası elemanları öncelikle tamamlanmalıdır. - -Verkle ağacı test ağları şu an aktif ve çalışıyor ve sonraki safha öncelikle özel sonrasında da açık test ağlarında Verkle ağacı kullanan istemcilerin yürütülmesidir. Test ağlarında sözleşme dağıtarak veya test ağı istemcilerini yürüterek gelişimin hızlanmasına yardımcı olabilirsiniz. diff --git a/src/content/translations/tr/smart-contracts/index.md b/src/content/translations/tr/smart-contracts/index.md deleted file mode 100644 index 3ab078a1230..00000000000 --- a/src/content/translations/tr/smart-contracts/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Akıllı sözleşmeler -description: Akıllı sözleşmelere teknik olmayan bir giriş -lang: tr ---- - -# Akıllı sözleşmelere giriş {#introduction-to-smart-contracts} - -Akıllı sözleşmeler, Ethereum'un uygulama katmanının temel taşlarıdır. "Eğer buysa o zaman şu" mantığını izleyen, kodunda tanımlanan kurallar çerçevesinde çalışacağı garantilenmiş olan, blok zincirde saklanan bilgisayar programlarıdır. - -"Akıllı sözleşme" terimini Nick Szabo ortaya atmıştır. 1994'te [akıllı sözleşme kavramına giriş](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html), 1996'da ise [akıllı sözleşmelerin neler yapabileceğinin keşfi](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html) adlı iki yazısı vardır. - -Szabo; otomatik ve kriptografik açıdan güvenli işlemlerin ve işletme fonksiyonlarının, güvene dayalı aracılar olmadan gerçekleşebileceği dijital bir pazar öngörmüştür. Ethereum üzerindeki akıllı sözleşmeler bu vizyonu hayata geçirdi. - -### Geleneksel sözleşmelerde güven {#trust-and-contracts} - -Geleneksel sözleşmelerle ilgili en büyük sıkıntılardan biri sözleşmenin sonuçlarını harfiyen gerçekleştirecek şahıslara duyulan ihtiyaçtır. - -İşte bir örnek: - -Alice ve Bob bisiklet yarışı yapıyorlar. Diyelim ki Alice, Bob'la yarışı kazanacağına dair 10 dolar bahse girdi. Bob kazanacağından emindir ve bahsi kabul eder. Sonunda Alice yarışı Bob'un çok önünde bitirir ve açık ara kazanan olur. Ama Bob, Alice'in hile yaptığını iddia ederek bahsi ödemeyi reddeder. - -Bu küçük örnek, akıllı olmayan anlaşmalarla ilgili sorunu göstermektedir. Anlaşmanın koşulları sağlansa bile (yani yarışmanın kazananı siz olsanız bile) hâlâ anlaşmayı yerine getirmesi için (yani bahis ödemesinin yapılması için) başka bir kişiye güvenmelisiniz. - -### Dijital bir otomat {#vending-machine} - -Akıllı sözleşmeler için basit bir metafor akıllı sözleşmeye benzer sayılabilecek şekilde çalışan otomatlardır; belirli girdiler önceden belirlenmiş çıktıları garantiler. - -- Bir ürün seçersiniz -- Otomat fiyatı gösterir -- Fiyatı ödersiniz -- Otomat, doğru miktarı ödediğinizi onaylar -- Otomat size ürünü verir - -Otomat istediğiniz ürünü sadece tüm gereksinimler karşılandığında verecektir. Eğer ürün seçmezseniz veya yeterli parayı girmezseniz otomat ürününüzü vermeyecektir. - -### Otomatik yürütüm {#automation} - -Akıllı sözleşmenin asıl yararı, belirli şartlar sağlandığında anlamı açık olmayan kodu kesin bir şekilde yürütmesidir. Bir insanın sonucu yorumlamasını veya sonucun sağlamasını yapmasına gerek yoktur. Bu, güvenilir aracılara olan ihtiyacı ortadan kaldırır. - -Örneğin, bir çocuk için fonu bloke altında tutan ve onun belirli bir tarih sonrasında fonu çekmesine izin veren bir akıllı sözleşme hazırlayabilirsiniz. Eğer bu tarihten önce çekim yapmaya çalışırlarsa, akıllı sözleşme yürütülmeyecektir. Yahut bir galericiye ödeme yaptığınızda arabanın tapusunun dijital halini size otomatik olarak veren bir sözleşme hazırlayabilirsiniz. - -### Tahmin edilebilir sonuçlar {#predictability} - -Geleneksel sözleşmeler belirsizdir çünkü yorumlama ve uygulama için insanlara dayanırlar. Örnek olarak, iki hakim bir sözleşmeyi farklı yorumlayabilir, bu da tutarsız seçimler ve eşit olmayan sonuçlara yol açabilir. Akıllı sözleşmeler bu ihtimali ortadan kaldırır. Bunun yerine, akıllı sözleşmeler sözleşmenin kodu dahilindeki koşullara bağlı olarak eksiksiz şekilde yürütülür. Bu kesinlik, aynı şartlar sağlandığında akıllı sözleşmenin aynı sonucu ortaya çıkaracağı anlamına gelir. - -### Herkese açık kayıt {#public-record} - -Akıllı sözleşmeler denetim ve takip için kullanışlıdır. Ethereum akıllı sözleşmeleri herkese açık bir blok zincir üzerinde olduğu için herkes varlık aktarımlarını ve diğer bağlantılı bilgileri anında takip edebilir. Örnek olarak, birisinin sizin adresinize para gönderip göndermediğini kontrol edebilirsiniz. - -### Gizlilik koruması {#privacy-protection} - -Akıllı sözleşmeler ayrıca gizliliğinizi de korur. Ethereum takma adlı bir ağ olduğu için (işlemleriniz herkese açık olarak eşsiz kriptografik bir adrese bağlıdır, kimliğinize değil) gizliliğinizi gözlemleyicilerden koruyabilirsiniz. - -### Açık koşullar {#visible-terms} - -Son olarak, tıpkı geleneksel sözleşmelerde olduğu gibi bir akıllı sözleşmeyi imzalamadan (ya da etkileşime geçmeden) önce içinde ne olup olmadığını kontrol edebilirsiniz. Bir akıllı sözleşmenin şeffaflığı herhangi birinin onu inceleyebileceğini garanti eder. - -## Akıllı sözleşme kullanım durumları {#use-cases} - -Akıllı sözleşmeler temel olarak bilgisayar programlarının yaptığı her şeyi yapabilir. - -Hesaplamalar gerçekleştirebilir, para birimleri oluşturabilir, veri tutabilir, NFT'ler basabilir, iletişim gönderebilir, hatta grafikler oluşturabilir. İşte gerçek dünyadan bazı popüler örnekler: - -- [Sabit coinler](/stablecoins/) -- [Eşsiz dijital varlıkların oluşturulması ve dağıtılması](/nft/) -- [Otomatik, açık bir para birimi borsası](/get-eth/#dex) -- [Merkezi olmayan oyun](/dapps/?category=gaming) -- [Otomatik olarak ödeme yapan bir sigorta poliçesi](https://etherisc.com/) -- [İnsanların özel, uyumlu para birimleri oluşturmasını sağlayan bir standart](/developers/docs/standards/tokens/) - -## Görsel olarak öğrenmeyi mi tercih ediyorsunuz? {#visual-learner} - -Finematics'in akıllı sözleşmeleri açıklamasını izleyin: - - - -## Daha fazla bilgi {#further-reading} - -- [Akıllı Sözleşmeler Dünya'yı Nasıl Değiştirecek?](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [Akıllı Sözleşmeler: Avukatların Yerine Geçecek Olan Blokzincir Teknolojisi](https://blockgeeks.com/guides/smart-contracts/) -- [Geliştiriciler için akıllı sözleşmeler](/developers/docs/smart-contracts/) -- [Akıllı sözleşmeler yazmayı öğrenin](/developers/learning-tools/) -- [Ethereum'da Ustalaşma: Akıllı Sözleşme Nedir?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/src/content/translations/tr/social-networks/index.md b/src/content/translations/tr/social-networks/index.md deleted file mode 100644 index 216e9bc732a..00000000000 --- a/src/content/translations/tr/social-networks/index.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: Merkeziyetsiz sosyal ağlar -description: Ethereum'daki merkeziyetsiz sosyal ağlara genel bakış -lang: tr -template: use-cases -emoji: ":mega:" -sidebarDepth: 2 -image: ../../../../assets/ethereum-learn.png -summaryPoint1: Sosyal etkileşim, içerik oluşturma ve dağıtım için blok zincir tabanlı platformlar. -summaryPoint2: Merkeziyetsiz sosyal medya ağları, kullanıcı gizliliğini korur ve veri güvenliğini artırır. -summaryPoint3: Token'lar ve NFT'ler, içerikten para kazanmanın yeni yollarını oluşturur. ---- - -Sosyal ağlar, günlük iletişimlerimizde ve etkileşimlerimizde büyük bir rol oynamaktadır. Bununla birlikte, bu platformların merkezi kontrolü birçok sorun yarattı: veri ihlalleri, sunucu kesintileri, platformdan çıkarma, sansür ve gizlilik ihlalleri, sosyal medyanın sıklıkla verdiği tavizlerden bazılarıdır. Bu sorunlarla mücadele etmek için geliştiriciler, Ethereum üzerinde sosyal ağlar oluşturuyor. Merkeziyetsiz sosyal ağlar, geleneksel sosyal ağ platformlarının birçok sorununu çözebilir ve kullanıcıların genel deneyimini iyileştirebilir. - -## Merkeziyetsiz sosyal ağlar nelerdir? {#what-are-decentralized-social-networks} - -Merkeziyetsiz sosyal ağlar, kullanıcıların bilgi alışverişinde bulunmalarının yanı sıra izleyicilere içerik yayınlayıp dağıtmalarına olanak tanıyan blok zincir tabanlı platformlardır. Bu uygulamalar blok zincir üzerinde çalıştığından, merkeziyetsiz olma kapasitesine sahip olmakla beraber, sansüre ve aşırı kontrole karşı dirençli olma yeteneğine de sahiptir. - -Birçok merkeziyetsiz sosyal ağ, Facebook, LinkedIn, Twitter ve Medium gibi yerleşik sosyal medya hizmetlerine alternatif olarak mevcuttur. Ancak blok zincir destekli sosyal ağlar, onları geleneksel sosyal platformların önüne koyan bir dizi özelliğe sahiptir. - -### Merkeziyetsiz sosyal ağlar nasıl çalışır? {#decentralized-social-networks-overview} - -Merkeziyetsiz sosyal ağlar, [merkeziyetsiz uygulamaların (dapps)](/dapps/) bir sınıfıdır - blok zincirde dağıtılan [akıllı sözleşmeler](/developers/docs/smart-contracts/) tarafından desteklenen uygulamalardır. Sözleşme kodu, bu uygulamalar için arka uç görevi görür ve iş mantığını tanımlar. - -Geleneksel sosyal medya platformları, kullanıcı bilgilerini, program kodunu ve diğer veri türlerini depolamak için veritabanlarına güvenir. Ancak bu, hata noktaları yaratır ve önemli riskler ortaya koyar. Örneğin, Facebook'un sunucuları geçen yıl kötü bir şekilde [saatlerce çevrimdışı kaldı](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) ve kullanıcıların platformla bağlantısı kesildi. - -Merkeziyetsiz sosyal ağlar, dünya çapında binlerce düğümden oluşan eşler arası bir ağda bulunur. Bazı düğümler başarısız olsa bile, ağ kesintisiz olarak çalışacak ve uygulamaları arızalara ve kesintilere karşı dirençli hale getirecektir. - -[the InterPlanetary File System (IPFS)](https://ipfs.io/) gibi merkeziyetsiz depolama sistemlerini kullanarak Ethereum üzerine kurulu sosyal ağlar, kullanıcı bilgilerini istismar ve kötü niyetli kullanımdan koruyabilir. Hiç kimse kişisel bilgilerinizi reklamcılara satmayacak, bilgisayar korsanları da gizli bilgilerinizi çalamayacak. - -Birçok blok zincir tabanlı sosyal platform, reklam geliri olmadığında para kazanmayı destekleyecek yerel token'lara sahiptir. Kullanıcılar, belirli özelliklere erişmek, uygulama içi satın alma işlemlerini tamamlamak veya favori içerik yaratıcılarına bahşiş vermek için bu token'ları satın alabilir. - -## Merkeziyetsiz sosyal ağların faydaları {#benefits} - -1. Merkeziyetsiz sosyal ağlar sansüre dayanıklıdır ve herkese açıktır. Bu, kullanıcıların keyfi olarak yasaklanamayacağı, platformdan kaldırılamayacağı veya kısıtlanamayacağı anlamına gelir. - -2. Merkeziyetsiz sosyal ağlar, açık kaynak idealleri üzerine kuruludur ve uygulamalar için kaynak kodunu herkesin incelemesi amacıyla açık hale getirir. Blok zinciri tabanlı sosyal ağlar, geleneksel sosyal medyada yaygın olan çetrefilli algoritmaların uygulanmasını ortadan kaldırarak, kullanıcıların ve platform yaratıcılarının çıkarlarını aynı hizaya getirebilir. - -3. Merkeziyetsiz sosyal ağlar "aracıyı" ortadan kaldırır. İçerik yaratıcılar, içerikleri üzerinde doğrudan mülkiyete sahiptir ve aralarında akıllı bir sözleşmeden başka bir şey olmaksızın takipçiler, hayranlar, alıcılar ve diğer taraflarla doğrudan etkileşim kurarlar. - -4. Küresel, eşler arası bir düğüm ağı tarafından desteklenen Ethereum ağında çalışan dapp'ler olarak, merkeziyetsiz sosyal ağlar, sunucu kesintilerine ve kesintilerine karşı daha az hassastır. - -5. Merkeziyetsiz sosyal platformlar, içerik yaratıcılar için değiştirilemez token'lar (NFT'ler), uygulama içi kripto ödemeleri ve daha fazlası aracılığıyla gelişmiş bir para kazanma çerçevesi sunar. - -6. Merkeziyetsiz sosyal ağlar kullanıcılara yüksek düzeyde gizlilik ve anonimlik sağlar. Örneğin, bir kişi isimler, e-posta adresleri vb. gibi kişisel olarak tanımlanabilir bilgileri (PII) paylaşmak zorunda kalmadan bir ENS profili veya cüzdanı kullanarak Ethereum tabanlı bir sosyal ağda oturum açabilir. - -7. Merkeziyetsiz sosyal ağlar, kullanıcı verilerini korumak için çok daha iyi olan merkezi veritabanlarına değil, merkeziyetsiz depolamaya dayanır. - -## Ethereum'da merkeziyetsiz sosyal ağlar {#ethereum-social-networks} - -Ethereum ağı, token'ların popülaritesi (ERC-20/ERC-721) ve devasa kullanıcı tabanı sayesinde merkeziyetsiz sosyal medya yaratan geliştiriciler için tercih edilen araç haline geldi. İşte Ethereum tabanlı sosyal ağların bazı örnekleri: - -### Peepeth {#peepeth} - -[Peepeth](https://peepeth.com/), Twitter'a benzer bir mikroblog platformudur. Ethereum blok zincirinde çalışır ve kullanıcı verilerini depolamak için IPFS kullanır. - -Kullanıcılar, silinemeyen veya değiştirilemeyen "Peeps" adlı kısa mesajlar gönderebilir. Uygulamadan çıkmadan platformda, ether (ETH) üzerinden bahşişler toplayabilir veya herhangi bir kişiye bahşiş verebilirsiniz. - -### Mirror {#mirror} - -[Mirror](https://mirror.xyz/), merkeziyetsiz ve kullanıcıya ait olmayı hedefleyen web3 özellikli bir yazı platformudur. Kullanıcılar, sadece cüzdanlarını bağlayarak Mirror'da ücretsiz olarak okuyabilir ve yazabilir. Kullanıcılar ayrıca yazı toplayabilir ve favori yazarlarına abone olabilirler. - -Mirror'da yayınlanan gönderiler, merkeziyetsiz bir depolama platformu olan Arweave'de kalıcı olarak depolanır ve Yazma NFT'leri olarak bilinen, toplanabilir [değiştirilemez token'lar (NFT'ler)](/nft/) olarak basılabilir. NFT yazmak, yazarlar için tamamen ücretsizdir ve toplama bir Ethereum L2'de gerçekleşir; bu da işlemleri ucuz, hızlı ve çevre dostu hale getirir. - -### MINDS {#minds} - -[MINDS](https://www.minds.com/) en çok kullanılan merkeziyetsiz sosyal ağlardan biridir. Facebook gibi çalışıyor ve şimdiden milyonlarca kullanıcıya ulaştı. - -Kullanıcılar, öğeler için ödeme yapmak için platformun yerel ERC-20 token'ını $MIND kullanır. Kullanıcılar ayrıca popüler içerikler yayınlayarak ekosisteme katkıda bulunarak ve başkalarını platforma yönlendirerek $MIND token kazanabilirler. - -## Ethereum üzerinde Web2 sosyal ağları {#web2-social-networks-and-ethereum} - -Blok zincir teknolojisini sosyal medyaya dahil etmeye çalışanlar yalnızca [Web3](/web3/) yerel sosyal platformları değil. Birçok merkezi platform da Ethereum'u altyapılarına entegre etmeyi planlıyor: - -### Reddit {#reddit} - -Reddit, kullanıcıların kaliteli içerik yayınlayarak ve çevrimiçi topluluklara (alt dizinler) katkıda bulunarak kazanabilecekleri [ERC-20 token'ları](/developers/docs/standards/tokens/erc-20/) olan [Topluluk Puanlarını lanse etti](https://cointelegraph.com/news/reddit-to-reportedly-tokenize-karma-points-and-onboard-500m-new-users). Bu token'ları, [özel ayrıcalıklar ve avantajlar elde etmek](https://www.reddit.com/community-points/) için bir alt dizin içinde kullanabilirsiniz. Bu proje için Reddit, Ethereum işlemlerini ölçeklendirmek için tasarlanmış bir [katman 2](/layer-2/) toplaması olan Arbitrum ile çalışıyor. - -Program zaten yayında ve r/Kripto para subreddit ["Moons" adlı Topluluk Puanları sürümünü çalıştırıyor](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Resmi açıklamaya göre, Moons "alt diziye katkılarından dolayı posterleri, yorumcuları ve moderatörleri ödüllendiriyor." Bu token'lar blok zincirde olduğundan (kullanıcılar bunları cüzdanlarda alır), Reddit'ten bağımsızdırlar ve alınamazlar. - -Rinkeby test ağında bir beta aşamasını tamamladıktan sonra, Reddit Topluluk Puanları artık bir [yan ağ](/developers/docs/scaling/sidechains/) ve bir [iyimser toplama](/developers/docs/scaling/optimistic-rollups/) özelliklerini birleştiren bir blok zincir olan [Arbitrum Nova'da](https://nova.arbitrum.io/). Kullanıcılar, özel özelliklerin kilidini açmak için Topluluk Puanlarını kullanmanın yanı sıra, bunları borsalarda fiat karşılığında takas edebilirler. Ayrıca, bir kullanıcının sahip olduğu Topluluk Puanlarının miktarı, topluluk içindeki karar verme süreci üzerindeki etkisini belirler. - -### Twitter {#twitter} - -Ocak 2021'de Twitter Blue, NFT'ler için destek sunarak kullanıcıların cüzdanlarını bağlamalarına ve NFT'leri profil resmi olarak görüntülemelerine [olanak tanıdı](https://mashable.com/article/twitter-blue-nft-profile-picture). Bu yazının yazıldığı sırada, sosyal medya şirketi gelecekte merkezi olmayan bir sosyal ağ oluşturmayı [planladığını da duyurdu](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web). - -### İnstagram {#instagram} - -Mayıs 2022'de [Instagram, Ethereum ve Polygon'da NFT'ler için destek verdiğini duyurdu](https://about.instagram.com/blog/announcements/instagram-digital-collectibles). Kullanıcılar, Ethereum cüzdanlarını bağlayarak NFT'leri doğrudan Instagram'a gönderebilirler. - -## Merkeziyetsiz sosyal ağları kullanın {#use-decentralized-social-networks} - -- **[Status.im](https://status.im/)** - _Status, mesajlarınızı üçüncü taraflardan korumak için açık kaynaklı, eşler arası bir protokol ve uçtan uca şifreleme kullanan güvenli bir mesajlaşma uygulamasıdır._ -- **[Mirror.xyz](https://mirror.xyz/)** - _Mirror, kullanıcıların fikirlerini kitle fonlaması, içerikten para kazanması ve yüksek değerli topluluklar oluşturması için Ethereum üzerine inşa edilmiş, merkeziyetsiz, kullanıcıya ait bir yayın platformudur._ -- **[Lens Protocol](https://lens.xyz/)** - _Lens Protocol, içerik yaratıcıların merkeziyetsiz internetin dijital bahçesinde nereye giderlerse gitsinler içeriklerinin mülkiyetini almalarına yardımcı olan birleştirilebilir ve merkeziyetsiz bir sosyal grafiktir._ -- **[Farcaster](https://farcaster.xyz/)** - _Farcaster yeterince merkeziyetsiz bir sosyal ağdır. Birçok istemciyi destekleyen açık bir protokoldür, tıpkı e-posta gibi._ - -## Daha fazla okuma {#further-reading} - -### Makaleler {#articles} - -- [Sosyal medyayı merkeziyetsizleştirmek: web3 sosyal yığınına bir rehber](https://www.coinbase.com/blog/decentralizing-social-media-a-guide-to-the-web3-social-stack) - _Coinbase Ventures_ -- [Social Networks Are the Next Big Decentralization Opportunity](https://www.coindesk.com/tech/2021/01/22/social-networks-are-the-next-big-decentralization-opportunity/) — _Ben Goertzel_ -- [Web3 holds the promise of decentralized, community-powered social networks](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Sumit Ghosh_ -- [An Overview of the Blockchain Social Media Landscape](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Gemini Cryptopedia_ -- [How Blockchain Can Solve Social Media Privacy](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Prableen Bajpai_ -- [Social Media Networks Are Coming To The Blockchain](https://businesstechguides.co/what-are-decentralized-social-networks) — _Emmanuel Awosika_ -- [Sosyal Ağlar İçin Yeterli Merkeziyetsizlik](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) - _Varun Srinivasan_ - -### Videolar {#videos} - -- [Decentralized Social Media Explained](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ -- [DeSo Blockchain Wants to Decentralize Social Media](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_ - -### Topluluklar {#communities} - -- [Status Discord Sunucusu](https://discord.com/invite/3Exux7Y) -- [Mirror Discord Sunucusu](https://discord.com/invite/txuCHcE8wV) -- [r/CryptoCurrency subreddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/tr/staking/pools/index.md b/src/content/translations/tr/staking/pools/index.md deleted file mode 100644 index b06d015d5c6..00000000000 --- a/src/content/translations/tr/staking/pools/index.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: Havuzlanmış hisseleme -description: Ortak ETH hisselemeye nasıl başlanacağına dair genel bir bakış -lang: tr -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-pool.png -alt: Gergedan Leslie havuzda yüzüyor. -sidebarDepth: 2 -summaryPoints: - - Diğerleriyle güçlerinizi birleştirerek istediğiniz miktarda ETH ile hisse alın ve ödüller kazanın - - Zor kısmı atlayıp doğrulayıcı görevini bir üçüncü tarafa bırakın - - Hisseleme token'larınızı kendi cüzdanınızda tutun ---- - -## Paydaşlık havuzları nedir? {#what-are-staking-pools} - -Paydaşlık havuzları, daha az miktarda ETH'ye sahip birçok kişinin bir dizi doğrulayıcı anahtarını etkinleştirmek için gereken 32 ETH'yi elde etmesine olanak tanıyan ortaklık temelli bir yaklaşımdır. Havuzlama işlevi protokol içinde yerel olarak desteklenmez, bu nedenle çözümler bu ihtiyacı karşılamak için ayrı olarak oluşturulmuştur. - -Bazı havuzlar, fonların bir sözleşmeye yatırılabileceği, bahis tutarınızı güvenilir bir şekilde yöneten ve izleyen ve size bu değeri temsil eden bir token veren akıllı sözleşmeler kullanarak çalışır. Başka havuzlar ise akıllı sözleşmelere dahil olmayabilirler, onun yerine zincir dışı çalışırlar. - -## Neden bir havuz ile hisseleme? {#why-stake-with-a-pool} - -[Staking'e giriş](/staking/) kısmında altını çizdiğimiz faydalara ek olarak havuz ile birlikte getiri elde etmek çok sayıda farklı yarar sağlar. - - - - - - - - - -## Ne dikkate alınmalı {#what-to-consider} - -Havuzlanmış veya devredilmiş stake etme, Ethereum protokolü tarafından doğal olarak desteklenmez, ancak kullanıcıların 32 ETH'den daha az stake etme talebi göz önüne alındığında, bu talebi karşılamak için artan sayıda çözüm oluşturulmuştur. - -Her havuz ve araçlar ya da akıllı sözleşmeler farklı ekiplerce oluşturulmuştur ve hepsinin faydaları ve riskleri vardır. Havuzlar, kullanıcıların ETH'lerini, hisselenmiş ETH'yi temsil eden bir token ile değişmelerini sağlar. Kullanıcılara herhangi bir miktarda ETH'yi; ETH Fikir birliği katmanında hisselenmiş olarak kalsa bile, merkeziyetsiz borsalardaki hisselenmiş ETH'ye uygulanan hisseleme ödüllerinden bir getiri sağlayan (ya da tam tersi) aynı miktarda getiriyi sağlayan bir token ile değişmelerini sağladığı için bu token yararlıdır. Bu da getiri sağlayan hisselenmiş ETH ile "asıl ETH" arasında iki yönlü takasın hızlı ve kolay olduğu ve yalnızca 32 ETH'nin katları halinde mevcut olmadığı anlamına gelir. - -Ancak, bu kilitli ETH token'ları, büyük miktarda hisselenmiş ETH'nin birçok bağımsız bireyde dağılması yerine birkaç merkezi kuruluşun kontrolüne geçtiği kartel benzeri yapılar oluşturma eğilimindedir. Bu da sansür ya da faydalanma için gerekli koşulları oluşturur. Hisseleme için altın standart, mümkün olduğunca doğrulayıcıları kendi donanımlarında çalıştıran bireyler olmalıdır. - -[Token'ları stake etmenin riskleri hakkında daha fazla bilgi.](https://notes.ethereum.org/@djrtwo/risks-of-lsd). - -Nitelik göstergeleri, listelenen bir stake havuzunun sahip olabileceği dikkate değer güçlü veya zayıf yönleri belirtmek için aşağıda kullanılmaktadır. Katılmak için bir havuz seçerken bu öznitelikleri nasıl tanımladığımız konusunda bu bölümü referans olarak kullanın. - - - -## Paydaşlık havuzlarını keşfet {#explore-staking-pools} - -Kurulumunuzda size yardımcı olacak çeşitli seçenekler mevcuttur. Aşağıdaki araçlarda size rehberlik etmesi için yukarıdaki göstergeleri kullanın. - - - - - -Ağ güvenliğini iyileştirdiği ve riskinizi sınırladığı için [istemci çeşitliliğini](/developers/docs/nodes-and-clients/client-diversity/) ciddiye alan bir hizmet seçmenin önemini lütfen unutmayın. Çoğunluk istemcisi kullanımı sınırladığına dair kanıtları olan hizmetler;"yürütme istemcisi çeşitliliği" ve "fikir birliği istemcisi çeşitliliği" ile belirtilir. - -Kaçırdığımız bir hisseleme aracı için öneriniz mi var mı? Uygun olup olmadığını görmek ve incelemeye göndermek için [ürün listeleme politikamıza](/contributing/adding-staking-products/) göz atın. - -## Sıkça sorulan sorular {#faq} - - -Tipik olarak ERC-20 hisseleme token'ları, hisselenen ETH artı ödüllerinin değerini temsil eden paydaşlara verilir. Farklı havuzların, kullanıcılarına biraz farklı yöntemlerle hisseleme ödüllerini dağıtacağını aklınızda tutun, ancak bu ortak temadır. - - - -Hemen şimdi! Şangay/Capella ağ yükseltmesi Nisan 2023'te gerçekleşti, hisseleme para çekim işlemlerini başlattı. Hisseleme havuzlarını destekleyen doğrulayıcı hesaplar artık çıkış ve ayarladıkları çekim adresine ETH çekim yeteneğine sahipler. Bu hisse miktarını arkaplandaki ETH için kullanma yeteneğini aktif eder. Bu işlevselliği ne şekilde desteklediklerini görmek için sağlayıcınıza danışın. - -Alternatif olarak, bir ERC-20 likidite token'ı kullanan havuzlar, kullanıcıların bu token'ın açık pazarda ticaretini yapmalarına izin vererek hisseleme pozisyonunuzu satmanıza, ETH'yi hisseleme sözleşmesinden fiilen çıkarmadan etkin bir şekilde "çekmenize" olanak tanır. - -Hisseleme para çekmeleri hakkında daha fazlası - - - -Bu havuzlanmış stake seçenekleri ile merkezi borsalar arasında, küçük miktarlarda ETH stake etme ve doğrulayıcıları etkinleştirmek için bir araya getirme gibi birçok benzerlik vardır. - -Merkezi borsalardan farklı olarak, diğer birçok havuzlanmış hisseleme seçeneği, genellikle kendi cüzdanınızda tutulabilen ve tıpkı diğer herhangi bir token gibi alınıp satılan ERC-20 token'ları olan akıllı sözleşmeleri ve/veya hisseleme token'larını kullanır. Bu, size tokenleriniz üzerinde kontrol sağlayarak bir egemenlik ve güvenlik katmanı sunar, ancak yine de arka planda sizin adınıza onaylayan doğrulayıcı istemci üzerinde doğrudan kontrol sağlamaz. - -Arkalarındaki düğümler söz konusu olduğunda bazı havuzlar diğerlerinden daha merkeziyetsizdir. Ağın sağlığını ve merkeziyetsizliğini teşvik etmek için, pay sahipleri her zaman izinsiz merkeziyetsiz bir dizi düğüm operatörü sağlayan bir havuz hizmeti seçmeye teşvik edilir. - - -## Daha fazla bilgi {#further-reading} - -- [Roket Havuzuyla Staking - Staking'e Genel Bakış](https://docs.rocketpool.net/guides/staking/overview.html) - _RocketPool belgeleri_ -- [Lido ile Ethereum stake et](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Lido yardımcı dökümanları_ diff --git a/src/content/translations/tr/staking/saas/index.md b/src/content/translations/tr/staking/saas/index.md deleted file mode 100644 index 4a270274dce..00000000000 --- a/src/content/translations/tr/staking/saas/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Bir hizmet olarak stake etme -description: Havuzlanmış ETH faiz getirisi elde etmeye nasıl başlanacağına dair genel bir bakış -lang: tr -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-saas.png -alt: Gergedan Leslie bulutlarda dalgalanıyor. -sidebarDepth: 2 -summaryPoints: - - Üçüncü taraf düğüm operatörleri, doğrulayıcı istemcinizin çalışmasını yönetir - - Bir düğüm çalıştırmanın teknik karmaşıklığıyla başa çıkmak konusunda kendini rahat hissetmeyen 32 ETH'si olan herkes için harika bir seçenek - - Güveni azaltın ve para çekme anahtarlarınızın velayetini koruyun ---- - -## Hizmet olarak staking nedir? {#what-is-staking-as-a-service} - -Hizmet olarak staking ("SaaS"), bir doğrulayıcı için kendi 32 ETH'nizi yatırdığınız, ancak düğüm işlemlerini üçüncü taraf bir operatöre devrettiğiniz bir staking hizmetleri kategorisini temsil eder. Bu süreç genellikle, anahtar oluşturma ve yatırma dahil olmak üzere ilk kurulum boyunca yönlendirilmeyi ve ardından imzalama anahtarlarınızı operatöre yüklemeyi içerir. Bu, hizmetin genellikle aylık bir ücret karşılığında doğrulayıcınızı sizin adınıza çalıştırmasını sağlar. - -## Neden bir hizmet ile hisseleme? {#why-stake-with-a-service} - -Ethereum protokolü doğal olarak pay devrini desteklemez, bu nedenle bu hizmetler bu talebi karşılamak için oluşturulmuştur. Stake edilecek 32 ETH'niz varsa, ancak donanımla uğraşmaktan rahatsızlık duyuyorsanız, SaaS hizmetleri, yerel blok ödülleri kazanırken zor kısmı devretmenize izin verir. - - - - - - - - - -## Ne dikkate alınmalı {#what-to-consider} - -ETH'nizi kilitlemenize yardımcı olacak SaaS sağlayıcılarının sayısı artmaktadır, anca her birinin kendine ait fayda ve riskleri bulunur. Tüm SaaS seçenekleri evde hisseleme ile karşılaştırıldığında ek güven varsayımları gerektirir. Saas seçenekleri açık veya denetlenebilir olmayan Ethereum istemcilerini saran ek kodlara sahip olabilir. SaaS ayrıca ağ merkeziyetsizliği üzerinde zararlı bir etkiye de sahiptir. Kuruluma göre, doğrulayıcınızı kontrol edemeyebilirsiniz - operatör sizin ETH'nizi kullanarak aldatıcı biçimde davranabilir. - -Nitelik göstergeleri, listelenen bir SaaS sağlayıcısının sahip olabileceği dikkate değer güçlü veya zayıf yönleri belirtmek için aşağıda kullanılmaktadır. Bu bölümü, stake etme yolculuğunuza yardımcı olacak bir hizmet seçerken bu nitelikleri nasıl tanımladığımıza dair bir referans olarak kullanın. - - - -## Staking servis sağlayıcılarını keşfedin {#saas-providers} - -Aşağıda bazı mevcut SaaS sağlayıcıları bulunmaktadır. Bu hizmetlerde size rehberlik etmesi için yukarıdaki göstergeleri kullanın - - - -#### SaaS sağlayıcıları - - - -Ağın güvenliğini iyileştirdiği ve riskinizi sınırladığı için [istemci çeşitliliğini](/developers/docs/nodes-and-clients/client-diversity/) desteklemenin önemini lütfen unutmayın. Çoğunluk istemcisi kullanımı sınırladığına dair kanıtları olan hizmetler;"yürütme istemcisi çeşitliliği" ve "fikir birliği istemcisi çeşitliliği" ile belirtilir. - -#### Anahtar Üreticileri - - - -Kaçırdığımız bir hizmet sağlayıcı olarak hisseleme için bir öneriniz mi var? Uygun olup olmadığını görmek ve incelemeye göndermek için [ürün listeleme politikamıza](/contributing/adding-staking-products/) göz atın. - -## Sıkça sorulan sorular {#faq} - - -Düzenlemeler sağlayıcıdan sağlayıcıya farklılık gösterecektir, ancak genellikle ihtiyacınız olan tüm imzalama anahtarlarını (32 ETH başına bir tane olmak üzere) ayarlamanız ve bunları sizin adınıza doğrulamalarına izin vermek için sağlayıcınıza yüklemeniz konusunda size rehberlik edilecektir. İmza anahtarları tek başına paranızı çekme, transfer etme veya harcama imkanı vermez. Ancak, uygun şekilde yapılmadığı takdirde çevrimdışı cezalara veya kesintilere neden olabilecek konsensusa doğru oy kullanma yeteneği sağlarlar. - - - -Evet. Tüm hesaplar BLS imzalama ve BLS para çekme anahtarlarından oluşur. Doğrulayıcının zincirin durumunu tasdik etmesi, eşitleme kurullarına katılması ve bloklar önermesi için imzalama anahtarlarına, bir doğrulayıcı müşterisi tarafından kolayca erişilebilir olmalıdır. Bunların bir şekilde internete bağlı olması gerekir ve bu nedenle doğal olarak "kısayol" tuşları olarak kabul edilirler. Bu, doğrulayıcınızın onaylayabilmesi için bir gerekliliktir ve bu nedenle, para transfer etmek veya çekmek için kullanılan anahtarlar güvenlik nedeniyle ayrılmıştır. - -BLS para çekme anahtarları, hangi yürütme katmanı hesabının hisseleme ödüllerinin ve çıkış yapılan fonların gitmesi gerektiğini gösteren tek seferlik bir mesajı imzalamak için kullanılır. Bu mesaj bir kere yayınlandıktan sonra BLS para çekme anahtarlarına ihtiyaç duyulmaz. Bunun yerine, çekilen fonların kontrolü kalıcı bir şekilde verdiğiniz adrese devredilir. Bu kendi soğuk depolamanız tarafından güvenli kılınan bir çekim adresi ayarlayarak, başkası sizin doğrulayıcı imzalama anahtarlarınızı kontrol etse bile doğrulayıcı fonlarınızın riskini minimize eder. - -Çekim bilgilerini güncellemek çekimi aktif hale getirmek için gerekli bir adımdır\*. Bu süreç sizin anımsatıcı güvenlik kelimenizi kullanarak çekim anahtarlarını oluşturmayı kapsar. - -Bu güvenlik kelimesini güvenli biçimde yedeklediğinizden emin olun, yoksa zamanı geldiğinde çekim anahtarlarınızı oluşturamazsınız. - -\*İlk yatırımında çekim adresi vermiş olan kilitleyicilerin bunu ayarlamasına gerek yoktur. Doğrulayıcınızı nasıl hazırlayacağınızla ilgili destek almak için SaaS sağlayıcınıza danışın. - - - -Kilitleme çekimleri Nisan 2023'teki Shanghai/Capella yükseltmesinde uygulanmıştır. Paydaşların (eğer ilk yatırımda verilmediyse) bir çekim adresi vermesi gerekir ve ödül ödemeleri periyodik olarak birkaç günde bir otomatik olarak dağıtılmaya başlayacaktır. - -Doğrulayıcılar ayrıca bir doğrulayıcı olarak tamamen çıkabilir, bu da kalan ETH bakiyelerinin çekim için kilidini kaldıracaktır. Bir yürütme çekim adresi sağlamış ve çıkış sürecini tamamlamış adresler sıradaki doğrulayıcı süpürmesinde çekim adresine tüm bakiyelerini alacaklardır. - -Hisseleme para çekmeleri hakkında daha fazlası - - - -Bir SaaS sağlayıcısı kullanarak, düğümünüzün çalışmasını başka birine emanet ediyorsunuz. Bu, sizin kontrolünüzde olmayan düşük düğüm performansı riskiyle birlikte gelir. Doğrulayıcınızın kesintiye uğraması durumunda, doğrulayıcı bakiyeniz cezalandırılacak ve doğrulayıcı havuzundan zorla kaldırılacaktır. - -Kesinti/çıkış sürecinin tamamlanmasından sonra, bu fonlar doğrulayıcıya atanmış olan çekim adresine transfer edilecektir. Bu, aktif hale getirilmek için bir çekim adresinin sağlanmasını gerektirir. Bu ilk yatırımda sağlanabilir. Eğer sağlanmadıysa, doğrulayıcı çekim anahtarları çekim adresini belirten bir mesajı imzalamak için kullanılmalıdır. Eğer herhangi bir çekim adresi sağlanmadıysa, sağlanana kadar fonlar kilitli kalacaktır. - -Herhangi bir garanti veya sigorta seçeneği hakkında daha fazla detay için ya da nasıl çekim adresi sağlanacağıyla ilgili yönergeler için bireysel SaaS sağlayıcınızla iletişime geçin. Doğrulayıcı kurulumunuzun tam kontrolünün sizde olmasını tercih ediyorsanız, ETH'nizi tek başına nasıl stake edeceğiniz hakkında daha fazla bilgi edinin. - - -## Daha fazla bilgi {#further-reading} - -- [Staking hizmetlerini değerlendirmek](https://www.attestant.io/posts/evaluating-staking-services/) - _Jim McDonald 2020_ diff --git a/src/content/translations/tr/staking/solo/index.md b/src/content/translations/tr/staking/solo/index.md deleted file mode 100644 index dbe283a2066..00000000000 --- a/src/content/translations/tr/staking/solo/index.md +++ /dev/null @@ -1,201 +0,0 @@ ---- -title: ETH'nizi bireysel olarak hisseleyin -description: ETH'nizi solo stake etmeye nasıl başlayacağınıza dair genel bir bakış -lang: tr -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-solo.png -alt: Gergedan Leslie bilgisayar çipinin üstünde. -sidebarDepth: 2 -summaryPoints: - - Doğrulayıcınızın düzgün çalışmasını ve çevrimiçi olmasını sağlamak için doğrudan protokolden maksimum ödülleri alın - - Ev donanımını çalıştırın ve Ethereum ağının güvenliğine ve merkezsizleştirilmesine kişisel olarak katkıda bulunun - - Güveni ortadan kaldırın ve fonlarınızın anahtarlarının kontrolünü asla bırakmayın ---- - -## Bireysel hisseleme nedir? {#what-is-solo-staking} - -Solo stake etme, internete bağlı [bir Ethereum düğümü çalıştırma](/run-a-node/) ve bir [doğrulayıcıyı](#faq) etkinleştirmek için 32 ETH yatırma işlemidir, size doğrudan ağ konsensüsüne katılma yeteneği verir. - -** Bireysel hisseleme Ethereum ağının merkeziyetsizliğini arttırır ** ve Ethereum'un sansüre ve saldırılara karşı dayanıklılığını arttırır. Diğer hisseleme yöntemleri ağa aynı şekillerde yardım etmeyebilir. Solo hisseleme, Ethereum'un güvenliğini sağlamak için en iyi seçenektir. - -Bir Ethereum düğümü, hem bir yürütüm katmanı (YK) istemcisinden hem de bir konsensus katmanı (MK) istemcisinden oluşur. Bu istemciler, işlemleri ve blokları doğrulamak, zincirin doğru başını doğrulamak, tasdikleri toplamak ve blok önermek için geçerli bir imza anahtarı seti ile birlikte çalışan yazılımlardır. - -Bu istemcileri çalıştırmak için gereken donanımı çalıştırmaktan tek başına pay sahipleri sorumludur. Evden çalıştırdığınız bunun için özel bir makine kullanmanız şiddetle tavsiye edilir – bu, ağın sağlığı için son derece faydalıdır. - -Solo staker, doğrulayıcısının düzgün şekilde çalışmasını ve çevrimiçi olmasını sağladığı için doğrudan protokolden ödüller alır. - -## Neden solo stake? {#why-stake-solo} - -Solo hisseleme daha fazla sorumluluk gerektirmesine rağmen fonlarınız ve hisseleme kurulumunuz üzerinde maksimum kontrol sağlar. - - - - - - - -## Solo staking yapmadan önce dikkate alınması gerekenler {#considerations-before-staking-solo} - -Solo staking'in herkes için erişilebilir ve risksiz olmasını dilesek de, bu gerçek değil. ETH'nizi solo stake etmeyi seçmeden önce akılda tutulması gereken bazı pratik ve ciddi hususlar vardır. - - - -Kendi düğümünüzü çalıştırırken, seçtiğiniz yazılımı nasıl kullanacağınızı öğrenmek için biraz zaman harcamalısınız. Bu, ilgili belgeleri okumayı ve bu geliştirme ekiplerinin iletişim kanallarına uyum sağlamayı içerir. - -Çalıştırdığınız yazılım ve hisse kanıtının nasıl çalıştığı hakkında ne kadar çok şey anlarsanız, bir staker olarak daha az risk almış olacaksınız ve bir düğüm operatörü olarak yol boyunca ortaya çıkabilecek sorunları çözmek de o kadar kolay olacaktır. - - - -Düğüm kurulumu, bilgisayarlarla çalışırken makul bir rahatlık düzeyi gerektirir, ancak yeni araçlar bunu zamanla daha da kolay hale getirir. Komut satırı arabiriminin anlaşılması yararlıdır, ancak artık kesinlikle gerekli değildir. - -Ayrıca, çok temel donanım kurulumu ve önerilen minimum özelliklerin biraz anlaşılmasını gerektirir. - - - -Tıpkı özel anahtarların Ethereum adresinizi koruduğu gibi, doğrulayıcınız için özel olarak anahtarlar oluşturmanız gerekecektir. Güvenlik kelimelerinizi ve özel anahtarınızı nasıl güvenli tutacağınızı anlamalısınız - - - -Donanım bazen başarısız oluyor, ağ bağlantıları hata veriyor ve istemci yazılımının zaman zaman yükseltilmesi gerekiyor. Düğüm bakımı kaçınılmazdır ve zaman zaman ilgilenmenizi gerektirir. Beklenen ağ yükseltmelerinden veya diğer kritik müşteri yükseltmelerinden haberdar olduğunuzdan emin olmak isteyeceksiniz. - - - -Ödülleriniz, doğrulayıcınızın çevrimiçi olduğu ve doğru şekilde tasdik ettiği süre ile orantılıdır. Kapalı kalma süresi, aynı anda kaç doğrulayıcının çevrimdışı olduğuyla orantılı olarak cezalara neden olur, ancak slashing ile sonuçlanmaz. Bant genişliği de önemlidir, çünkü zamanında alınmayan onaylar için ödüller azalır. Gereksinimler değişiklik gösterecektir, ancak minimum 10 Mb/sn yukarı ve aşağı önerilir. - - - -Çevrimdışı olmanın verdiği hareketsizlik cezalarından farklı olarak, kesme, kötü niyetli suçlar için ayrılmış çok daha ciddi bir cezadır. Anahtarlarınız aynı anda yalnızca bir makineye yüklenmiş bir azınlık istemcisi çalıştırarak cezalandırılma riskiniz en aza indirilir. Özetle, bütün stakerlar kesilme risklerini göze almak zorundadır. - -Kesme ve doğrulayıcı döngüsü hakkında daha fazlası - - - - - -## Nasıl Çalışır {#how-it-works} - - - -Aktif olduğu durumda ETH ödülleri kazanırsınız. Bu ödüller periyodik olarak para çekme adresinize yatırılır. - -İstenirse, çevrimiçi olma gereksinimini ortadan kaldıran ve diğer ödülleri durduran bir doğrulayıcı olarak çıkabilirsiniz. Sonrasında kalan bakiyeniz kurulum esnasında belirlediğiniz çekim adresine aktarılacaktır. - -[Hisseleme para çekmeleri hakkında daha fazlası](/staking/withdrawals/) - -## Hisseleme Başlama Noktası başlangıç rehberi {#get-started-on-the-staking-launchpad} - -Staking Launchpad, stake yapmanıza yardımcı olacak açık kaynaklı bir uygulamadır. İstemcilerinizi seçme, anahtarlarınızı oluşturma ve ETH'nizi stake depozito sözleşmesine yatırma konusunda size rehberlik edecektir. Doğrulayıcınızı güvenli bir şekilde kurmak ve her şeyi kapsadığınızdan emin olmak için bir kontrol listesi sağlanmıştır. - - - -## Düğüm ve istemci kurulum araçlarıyla ilgili olarak nelere dikkat edilmelidir {#node-tool-considerations} - -ETH'nizi tek başınıza stake etmenize yardımcı olacak, giderek artan sayıda araç ve hizmet var, ancak bunların her biri farklı riskler ve faydalar içeriyor. - -Nitelik göstergeleri, listelenen bir stake etme aracının sahip olabileceği dikkate değer güçlü veya zayıf yönleri belirtmek için aşağıda kullanılmaktadır. Stake yolculuğunuza yardımcı olacak araçları seçerken bu özellikleri nasıl tanımladığımıza dair bu bölümü referans olarak kullanın. - - - -## Düğüm ve istemci kurulum araçlarını keşfedin {#node-and-client-tools} - -Kurulumunuzda size yardımcı olacak çeşitli seçenekler mevcuttur. Aşağıdaki araçlarda size rehberlik etmesi için yukarıdaki göstergeleri kullanın. - - - -#### Düğüm araçları - - - -Ağın güvenliğini iyileştirdiği ve riskinizi sınırladığı için bir [azınlık istemcisi](/developers/docs/nodes-and-clients/client-diversity/) seçmenin önemini lütfen unutmayın. Azınlık istemcisini kurmanıza izin veren araçlar, "çoklu istemci" olarak anılır. - -#### Anahtar Üreticileri - -Bu araçlar, anahtar oluşturmaya yardımcı olmak için [hisseleme Mevduat CLI'sına](https://github.com/ethereum/staking-deposit-cli/) alternatif olarak kullanılabilir. - - - -Kaçırdığımız bir hisseleme aracı için öneriniz mi var mı? Uygun olup olmadığını görmek ve incelemeye göndermek için [ürün listeleme politikamıza](/contributing/adding-staking-products/) göz atın. - -## Solo staking kılavuzlarını keşfet {#staking-guides} - - - -## Sıkça sorulan sorular {#faq} - -Bunlar, hisseleme hakkında bilmeye değer en yaygın sorulardan birkaçıdır. - - - -Doğrulayıcı, Ethereum üzerinde yaşayan sanal bir varlıktır ve Ethereum protokolünün mutabakatına katılır. Doğrulayıcılar bir denge, ortak anahtar ve diğer özelliklerle temsil edilir. Bir doğrulayıcı istemcisi, özel anahtarını tutup kullanarak doğrulayıcı adına hareket eden yazılımdır. Tek bir doğrulayıcı istemcisi, birçok doğrulayıcıyı kontrol ederek birçok anahtar çiftini tutabilir. - - - - -Doğrulayıcı ile ilişkili her bir anahtar çiftinin etkinleştirilmesi için tam olarak 32 ETH gerekir. Tek bir anahtar setine daha fazla ETH yatırılması ödül potansiyelini artırmaz çünkü her doğrulayıcı 32 ETH'lik etkili bakiye ile sınırlandırılmıştır. Bu, stake işleminin her biri kendi anahtar ve dengesine sahip 32 ETH artışıyla yapıldığı anlamına gelir. - -Tek bir doğrulayıcı için 32 ETH'den fazla para yatırmayın. Ödüllerinizi artırmayacaktır. Eğer doğrulayıcı için bir para çekme adresi ayarlanmışsa, bir sonraki doğrulayıcı taraması sırasında 32 ETH'in üzerindeki fonlar otomatik olarak bu adrese yatırılacaktır. - -Solo staking sizin için çok zorlu görünüyorsa, bir servis sağlayıcı kullanmayı düşünün veya 32 ETH'den daha azıyla çalışıyorsanız, stake havuzlarına göz atın. - - - -Ağ düzgün bir şekilde sonlandırılırken çevrimdışı duruma geçmek, kesintiye neden OLMAZ. Doğrulayıcınız belirli bir dönem için (her biri 6,4 dakika uzunluğunda) kanıtlamak için müsait değilse küçük hareketsizlik cezaları uygulanır, ancak bu kesmeden çok farklıdır. Bu cezalar, doğrulayıcının onay vermesi durumunda kazanacağınız ödülden biraz daha azdır ve kayıplar tekrar çevrimiçi durumda yaklaşık olarak eşit bir süre ile geri kazanılabilir. - -Hareketsizlik cezalarının aynı anda kaç doğrulayıcının çevrimdışı olduğuyla orantılı olduğunu unutmayın. Ağın büyük bir bölümünün aynı anda çevrimdışı olduğu durumlarda, bu doğrulayıcıların her biri için verilen cezalar, tek bir doğrulayıcının kullanılamadığı duruma göre daha fazla olacaktır. - -Aşırı durumlarda, doğrulayıcıların üçte birinden fazlasının çevrimdışı olmasının bir sonucu olarak ağ sonlandırmayı durdurursa, bu kullanıcılar, çevrimdışı doğrulayıcı hesaplarından üstel bir ETH tahliyesi olan kuadratik hareketsizlik sızıntısı olarak bilinen sorunla karşılaşacaklardır. Bu, ağın etkin olmayan doğrulayıcıların ETH'sini bakiyeleri 16 ETH'ye ulaşana kadar yakarak sonunda kendi kendini iyileştirmesini sağlar; bu noktada doğrulayıcı havuzundan otomatik olarak çıkarılırlar. Kalan çevrimiçi doğrulayıcılar, sonunda tekrar ağın 2/3'ünden fazlasını oluşturacak ve zinciri bir kez daha sonlandırmak için gereken süper çoğunluğu karşılayacaktır. - - - -Kısacası, bu hiçbir zaman tam olarak garanti edilemez, ancak iyi niyetle hareket ederseniz, bir azınlık istemcisi çalıştırırsanız ve imzalama anahtarlarınızı bir seferde yalnızca bir makinede tutarsanız, kesilme riski neredeyse sıfırdır. - -Bir doğrulayıcının ağdan ayrılmasına ve çıkarılmasına neden olabilecek yalnızca birkaç belirli yol vardır. Yazma sırasında, meydana gelen kesikler, yalnızca imzalama anahtarlarının aynı anda iki ayrı makinede depolandığı yedekli donanım kurulumlarının bir ürünüydü. Bu yanlışlıkla anahtarlarınızdan çifte oy almanıza neden olabilir, bu da bölünebilir bir suçtur. - -Süper çoğunluklu bir istemciyi çalıştırmak (ağın 2/3'ünden fazlası tarafından kullanılan herhangi bir istemci), bu istemcide zincir çatalıyla sonuçlanan bir hata olması durumunda olası kesinti riskini de taşır. Bu, sonlandırılan hatalı bir çatala neden olabilir. Amaçlanan zincire geri dönmek için, kesinleşmiş bir bloğu geri almaya çalışarak bir çevre oyu göndermeniz gerekir. Bu aynı zamanda cezalandırılabilinir bir suçtur ve bunun yerine bir azınlık istemcisi çalıştırılarak basitçe önlenebilir. - -Bir azınlık istemcisindeki eşdeğer hatalar hiçbir zaman kesinleşmeyecek ve dolayısıyla hiçbir zaman bir çevre oylamasıyla sonuçlanmayacak ve yalnızca kesik yeme değil hareketsizlik cezalarıyla sonuçlanacaktır. - - - - - -Her biri farklı ekipler tarafından çeşitli programlama dilleri kullanılarak geliştirildiğinden, bireysel istemciler performans ve kullanıcı arabirimi açısından biraz farklılık gösterebilir. Bununla birlikte, hiçbiri "en iyi" değildir Tüm üretim müşterileri, blok zinciri ile senkronize etmek ve etkileşim kurmak için hepsi aynı temel işlevleri gerçekleştiren mükemmel yazılım parçalarıdır. - -Tüm üretim istemcileri aynı temel işlevi sağladığından, aslında bir azınlık istemcisi seçmeniz çok önemlidir; bu, şu anda, ağdaki doğrulayıcıların çoğunluğu tarafından KULLANILMAYAN herhangi bir istemci anlamına gelir. Bu kulağa mantıksız gelebilir, ancak çoğunluk veya üstün çoğunluk istemcisi çalıştırmak, o istemcide bir hata olması durumunda, sizi artan bir kesinti riskine sokar. Bir azınlık istemcisini çalıştırmak bu riskleri büyük ölçüde sınırlar. - -İstemci çeşitliliğinin neden kritik olduğu hakkında daha fazla bilgi edinin - - - -Sanal özel sunucu (VPS) ev donanımının yerine kullanılabilse de, doğrulayıcı istemcinizin fiziksel erişimi ve konumu önemlidir. Amazon Web Services veya Digital Ocean gibi merkezi bulut çözümleri, ağı merkezileştirme pahasına donanım edinme ve çalıştırma zorunluluğunu ortadan kaldırıyor. - -Tek bir merkezi bulut depolama çözümü üzerinde çalışan doğrulayıcı istemci sayısı arttıkça, bu kullanıcılar için daha tehlikeli hale gelir. Bu sağlayıcıları bir saldırı, düzenleyici talepler veya yalnızca güç/internet kesintileri nedeniyle çevrimdışına alan herhangi bir olay, bu sunucuya güvenen her doğrulayıcı istemcinin aynı anda çevrimdışı olmasına neden olur. - -Çevrimdışı cezalar, aynı anda kaç kişinin çevrimdışı olduğuyla orantılıdır. Bir VPS kullanmak, çevrimdışı cezaların daha şiddetli olması riskini büyük ölçüde artırır ve kesintinin yeterince büyük olması durumunda ikinci dereceden sızıntı veya kesinti riskinizi artırır. Kendi riskinizi ve ağ riskini en aza indirmek için, kullanıcıların kendi donanımlarını edinmeleri ve çalıştırmaları şiddetle tavsiye edilir. - - - - -İşaret Zincirinden tüm para çekme işlemleri, para çekme bilgilerinin belirlenmiş olmasını gerektirir. - -Yeni paydaşlar bunu anahtar üretim ve yatırma zamanında belirler. Henüz bu bilgileri belirlememiş mevcut paydaşlar kendi anahtarlarını güncelleyerek bu işlevi destekleyebilir. - -Çekim bilgileri ayarlandığında, ödül ödemeleri (başlangıçtaki 32 adedin üstünde toplananlar) periyodik olarak çekim adresine otomatik dağıtılacaktır. - -Tüm bakiyenizin kilidini kaldırmak ve tamamını almak için aynı zamanda doğrulayıcınızın çıkış sürecini tamamlamanız da gerekir. - -Hisseleme para çekmeleri hakkında daha fazlası - - -## Daha fazla bilgi {#further-reading} - -- [Ethereum'un İstemci Çeşitliliği Sorunu](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ -- [İstemci Çeşitliliğine Yardımcı Olmak](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ -- [Ethereum'un konsensüs katmanında müşteri çeşitliliği](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ -- [Nasıl Yapılır: Ethereum Doğrulayıcı Donanımı Satın Alımı](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ -- [Adım Adım: Ethereum 2.0 Testnet'e nasıl katılınır](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _Butta_ -- [Eth2 Slashing Önleme İpuçları](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raul Jordan 2020_ diff --git a/src/content/translations/tr/staking/withdrawals/index.md b/src/content/translations/tr/staking/withdrawals/index.md deleted file mode 100644 index 06a33ebdf2c..00000000000 --- a/src/content/translations/tr/staking/withdrawals/index.md +++ /dev/null @@ -1,218 +0,0 @@ ---- -title: Hisseden ödeme alma -description: Hisseleme para çekimlerinin ne olduğu, nasıl çalıştıkları ve ödüllerini almak içn paydaşların ne yapmaları gerektiğini özetleyen sayfa -lang: tr -template: staking -image: ../../../../../assets/staking/leslie-withdrawal.png -alt: Hisseleme ödülleri ile gergedan Leslie -sidebarDepth: 2 -summaryPoints: - - Şangay/Capella yükseltmesi Ethereum'da hisseleme içerisindeki para çekim işlemlerini mümkün kıldı - - Doğrulayıcı operatörler, etkinleştirmek için para çekim adresi sağlamalıdır - - Ödüller birkaç günde bir otomatik olarak dağıtılır - - Hisselemeden tamamen çıkan doğrulayıcılar kalan bakiyelerini geri alacaklardır ---- - - -12 Nisan 2023'te gerçekleşen Şangay/Capella yükseltmesiyle birlikte hisseleme çekim işlemleri etkinleştirildi. Şangay/Capella ile ilgili daha fazlası - - -**Hisseleme çekimleri** Ethereum fikir birliği katmanındaki (İşaret Zinciri) bir doğrulayıcı hesabından, beraber işletilebileceği yürütüm katmanına ETH transferlerine karşılık gelir. - -32 ETH'den **fazla bakiyenin ödül ödemeleri** her bir doğrulayıcı ile ilişkilendirilmiş çekim adresine, her kullanıcı tarafından sağlanır sağlanmaz otomatik ve düzenli olarak gönderilir. Kullanıcılar ayrıca tüm doğrulayıcı bakiyesinin kilidini açarak **hisselemeden toptan çıkabilir**. - -## Hisseleme ödülleri {#staking-rewards} - -Ödül ödemeleri, etkin bakiyeleri maksimum 32 ETH olan aktif doğrulayıcı hesaplar için otomatik olarak işlenir. - -Ödüller yoluyla kazanılan 32 ETH'nin üzerindeki herhangi bir bakiye aslında esas paraya hiçbir katkıda bulunmaz veya bu doğrulayıcının ağ üzerindeki ağırlığını artırmaz. Bu nedenle birkaç günde bir ödül ödemesi olarak otomatik olarak çekilir. Bir seferlik para çekme adresi sağlamanın dışında bu ödüller doğrulayıcının başka bir işlem yapmasını gerektirmez. Tüm bunlar fikir birliği katmanında başlatılır, bu sayede herhangi bir adımda gaz (işlem ücreti) gerekmez. - -### Buraya nasıl geldik? {#how-did-we-get-here} - -Ethereum bir zamanlar olduğu gibi yoğun enerji tüketen madencilik yerine geçtiğimiz birkaç yıl boyunca geçirdiği ağ yükseltmeleri sayesinde ETH'nin kendisi tarafından güvence altına alınan bir ağ haline geldi. Ethereum mütabakatına katılım artık "hisseleme" olarak biliniyor, bu sistemde katılımcılar ağa katılım sağlayabilmek için ellerindeki ETH'yi kitleyip "kilitli" duruma getiriyorlar. Kurallara uyan kullanıcılar ödüllendirilecekken uymayanlar ve hile yapmaya çalışanlar ise cezalandırılabilirler. - -Kasım 2020'deki hisseleme yatırım sözleşmesinin piyasaya sürülmesinden bu yana kimi cesur Ethereum öncüleri gönüllü olarak fonlarını ''doğrulayıcıları'', ağ kurallarını takip eden, resmi olarak blokları doğrulama ve önerme hakkına sahip özel hesapları aktif hale getirmek için kilitledi. - -Shanghai/Capella yükseltmesinden önce hisselenmiş ETH'lerinizi kullanamaz veya onlara erişemezdiniz. Ancak şimdi, ödüllerinizi seçilmiş bir hesaba otomatik olarak aktarmak ve hisselenmiş ETH'lerinizi istediğiniz zaman çekmek için kaydolabilirsiniz. - -### Nasıl hazırlanırım? {#how-do-i-prepare} - - - -### Önemli bildiriler {#important-notices} - -Herhangi bir doğrulayıcı hesabının kendi bakiyesinden ETH çekebilir durumuna erişmesi için bir çekim adresi belirtmesi, gerekli adımdır. - - - Her bir doğrulayıcı hesabı bir seferde yalnızca bir çekim adresi atayabilir. Bir adres seçilip fikir birliği katmanına kaydedildiğinde bu, geri alınamaz veya tekrardan değiştirilemez. Kaydetmeden önce sahipliği ve bildirilen adresin doğruluğunu iki defa kontrol edin. - - -Aksini belirtmediğiniz için güvenlik kelimelerinizin çevrimdışı ortamda güvende kaldığı ve herhangi bir yolla ele geçirilemeyeceği varsayıldığından aynı zamanda bakiyelerinize herhangi bir tehdit de bulunmamaktadır. Çekim kimliği ekleme başarısızlığı, çekim adresi belirtilene kadar ETH'nizi basit bir biçimde doğrulayıcı hesabında kilitli halde bırakacaktır. - -## Hisselemeden tamamen çıkış {#exiting-staking-entirely} - -Doğrulayıcı hesap bakiyesinin dışına _herhangi bir_ fon gönderilebilmesi için çekim adresi belirtilmesi gerekir. - -Hisselemeden tamamen çıkmak ve tüm bakiyelerini çekmek isteyen kullanıcılar, hisselemeden çıkış sürecini başlatacak ''gönüllü çıkış'' mesajını doğrulayıcı anahtarlarıyla birlikte imzalamak ve yayımlamak zorundadır. Bu, doğrulayıcı müşteriniz ile tamamlanır ve mutabakat düğümünüze kaydedilir, bundan ötürü herhangi bir gaz gerektirmez. - -Bir doğrulayıcının hisselemeden çıkma süreci, kaç tane diğer doğrulayıcının da aynı zamanda çıktığına bağlı olarak değişken vakit alır. Bir kez tamamlandığında bu hesap artık doğrulayıcı hesap görevlerinden sorumlu olmayacak, ödül kazanma hakkı olmayacak ve ETH'leri daha fazla ''hisselemede'' kalmaycaktır. Bu sürede hesap, tamamen ''çekilebilir'' olarak işaretlenecektir. - -Bir hesap "para çekilebilir" olarak işaretlendikten ve de hesap para çekme bilgilerini sağladıktan sonra kullanıcın beklemekten başka yapması gereken bir şey yoktur. Hesaplar, uygun çıkış fonları için otomatik ve devamlı olarak blok teklif verenleri tarafından süpürülüyor ve hesap bakiyeniz bir sonraki süpürülmedetamamen süprülüyor (tam çekilme olarak da bilinir). - -## Hisseleme para çekme işlemleri ne zaman aktifleşir? {#when} - -Hisseleme para çekimleri aktif! Para çekebilme işlevi 12 Nisan 2023'te gerçekleşen Şangay/Capella yükseltmesinin bir kısmı sonucu aktifleştirildi. - -Şangay/Capella yükseltmesi, daha önceden hisselenmiş ETH'lerin normal Ethereum hesaplarına geri alınabilmesini sağladı. Bu da likidite hisseleme döngüsünü kapattı; Ethereum'u daha sürdürülebilir, ölçeklenebilir ve de merkeziyetsiz ekosistem oluşturma yolculuğuna bir adım daha yaklaştırdı. - -- [Ethereum'un tarihçesi hakkında daha fazla bilgi](/history/) -- [Ethereum'un yol haritası hakkında daha fazla bilgi](/roadmap/) - -## Para çekme ödemeleri nasıl çalışır? {#how-do-withdrawals-work} - -Belirli bir doğrulayıcının para çekmek için uygun olup olmadığı, söz konusu doğrulayıcının hesabının durumuna göre belirlenir. Bir hesabın para çekme işleminin başlatılıp başlatılamayacağına karar verebilmek için herhangi bir kullanıcı girdisine ihtiyaç yoktur; tüm süre otomatik bir fikir birliği katmanı üzerinden yürütülür. - -### Görsel olarak öğrenmeyi mi tercih ediyorsunuz? {#visual-learner} - -Finematics tarafından sağlanmış Ethereum hisseleme çekim işlemleri açıklamasına buradan göz atabilirsiniz: - - - -### Doğrulayıcı "süpürülmesi" {#validator-sweeping} - -Doğrulayıcının bir sonraki bloku önerebilmesi için 16 adede kadar uygun para çekme işleminden oluşan bir para çekme kuyruğu oluşturması gerekir. Bu başlangıçta doğrulayıcı indeksinin 0 ile başlayarak, bu hesabın protokolün kuralları gereğince para çekmeye uygun olup olmadığını belirleyerek ve uygunsa kuyruğa ekleyerek yapılır. Aşağıdaki bloku önermek için ayarlanan doğrulayıcı son blokun kaldığı yerden devam edecek ve sonsuza kadar bu sırayla ilerleyecek. - - -Analog bir saat düşünün. Saatteki akrep saate işaret eder, bir yönde ilerler, herhangi bir saati atlamaz ve eninde sonunda son sayıya ulaşıldıktan sonra tekrardan başa sarar.

-Şimdi 1 ile 12 arası yerine, saatin 0 ile N (fikir birliği katmanına şimdiye kadar kayıt olmuş tüm doğrulayıcı hesaplarının sayısı, Ocak 2023 itibariyle 500.000) arasına sahip olduğunu düşünün.

-Saatin akrebi çekim uygunluğu için kontrol edilmesi gereken sıradaki doğrulayıcıya işaret edecektir. 0 ile başlar ve hiçbir sayıyı atlamadan tüm yol boyunca devam eder. Son doğrulayıcıya ulaşıldığında döngü baştan başlayarak devam eder. -
- -#### Çekimler için hesabı kontrol etme {#checking-an-account-for-withdrawals} - -Bir önerici muhtemel çekimler için doğrulayıcıları süpürürken, kontrol edilen her bir doğrulayıcı bir çekim gerçekleşip gerçekleşmediğini ve gerçekleşiyorsa ne kadar ETH'nin çekilmesi gerektiğini belirlemek için kısa bir soru serisi ile değerlendirilir. - -1. **Bir çekim adresi sağlandı mı?** Eğer herhangi bir çekim adresi sağlanmadıysa hesap atlanır ve hiçbir çekim işlemi başlatılmaz. -2. **Doğrulayıcı çıktı mı ve para çekilebilir mi?** Eğer doğrulayıcı tamamen çıkmış ve hesabın ''para çekilebilir'' olarak değerlendirildiği döneme ulaşmışsak tam para çekimi işletilir. Bu, kalan tüm bakiyeyi çekim adresine transfer eder. -3. **İşlevsel bakiye 32'de azamiye ulaştı mı?** Eğer hesap para çekim kriterlerine ulaşmış, tamamen çıkmamış ve 32'den fazla ödüle sahipse yalnızca 32'nin üzerindeki ödülleri kullanıcıların çekim adreslerine transfer edecek kısmi bir para çekim işlemi sürdürülür. - -Bir doğrulayıcının hayat döngüsü boyunca doğrulayıcı operatörleri tarafından alınan ve bu akımı etkileyen yalnızca iki eylem vardır: - -- Herhangi bir para çekimi formunu etkinleştirmek için para çekim kimliği sağlayın -- Tam para çekimi sağlayan işlem olan ağdan çıkın - -### Gazsız {#gas-free} - -Hisseleme çekimlerine bu yaklaşım, belirli miktarda ETH'nin çekilmesi istenen bir işlemin manuel olarak paydaşlar için gerekmesinden kaçınır. Bu, **herhangi bir gaz (işlem ücreti) gerektirmez** ve ayrıca para çekimleri, var olan yürütüm katmanı blok hacmi için yarışmaz. - -### Hisseleme ödüllerimi ne sıklıkla alacağım? {#how-soon} - -Tek bir blokta en fazla 16 para çekimi gerçekleştirilebilir. Bu hızda, her gün 115.200 doğrulayıcı çekimi (herhangi bir kayıp yuva olmadığını varsayarsak) işlenebilir. Yukarıda da belirtildiği üzere, para çekimine uygun olmayan doğrulayıcılar süpürme süresini azaltarak atlanır. - -Bu hesaplamayı genişleterek belirli sayıda para çekme işlemi için ne kadar süre gerektiğini tahmin edebiliriz: - - - -| Para çekme sayısı | Tamamlanma zamanı | -| :---------------: | :---------------: | -| 400.000 | 3,5 gün | -| 500.000 | 4,3 gün | -| 600.000 | 5,2 gün | -| 700.000 | 6,1 gün | -| 800.000 | 7,0 gün | - - - -Gördüğünüz üzere bu, ağda daha fazla doğrulayıcı varlığında yavaşlar. Kayıp yuvalarda artış oransal olarak bunu yavaşlatır ancak bu, genellikle olası sonuçların daha yavaş kısmını temsil eder. - -## Sıkça sorulan sorular {#faq} - - -Hayır, çünkü para çekme kimlik bilgilerini sağlama süreci tek seferlik bir süreçtir bu yüzden gönderildikten sonra değiştirilemez. - - - -Bir yürütme katmanı para çekme adresi belirleyerek söz konusu doğrulayıcı için para çekme kimlik bilgileri kalıcı olarak değiştirilmiştir. Bunun anlamı da eski kimlik bilgilerinin artık çalışmayacağı ve yeni kimlik bilgilerinin doğrudan bir yürütme katmanı hesabına yönlendirileceğidir. - -Çekim adresleri ya akıllı sözleşme (kendi kodu ile kontrol edilen) ya da harici sahip olunan hesap (EOA, kendi özel anahtrarıyla kontrol edilen) olabilir. Şu anda bu hesapların doğrulayıcı kimlik bilgilerinde bir değişikliği işaret edecek bir fikir birliği katmanına geri iletme yolu yoktur ve bu işlevin eklenmesi de protokole gereksiz bir karmaşıklık katacaktır. - -Belirli bir doğrulayıcı için çekim adresini değiştirmeye alternatif olarak, kullanıcılar anahtar döngüsünü yönetebilen, Safe gibi bir akıllı sözleşmeyi çekim adresi olarak kullanmayı seçebilirler. Fonlarını kendi EOA'larına göre ayarlayan kullanıcılar, tüm stake edilmiş fonlarını çekebilmek için tam bir çıkış gerçekleştirebilir ve ardından yeni kimlik bilgilerini sunarak yeniden hisseleyebilirler. - - - - -Eğer bir paydaşlık havuzunun parçasıysanız veya hisseleme token'ları tutuyorsanız, her bir servis farklı çalıştığı için hisseleme çekimlerinin nasıl yapıldığıyla ilgili daha fazla detay için sağlayıcınıza danışın. - -Genel olarak kullanıcılar, temelde hisselenmiş ETH'lerini geri almakta veya kullandıkları hisseleme sağlayıcısını değiştirmekte özgürdür. Eğer spesifik bir havuz çok büyük hale geliyorsa fonlar çıkartılabilir, alınabilir ve daha küçük bir sağlayıcı ile yeniden hisselenebilir. Ya da yeterince ETH biriktirdiyseniz evden hisseleyebilirsiniz. - - - - -Evet, doğrulayıcınız bir çekim adresi sağladığı sürece. Bu herhangi bir çekimi etkinleştirmek için bir defa sağlanmalıdır, sonrasında ödül ödemeleri otomatik olarak birkaç günde bir her doğrulayıcı süpürmesinde çalışacaktır. - - - - -Hayır eğer doğrulayıcınız hâlâ ağda aktif ise otomatik olarak tam bir çekme gerçekleşmeyecektir. Bu, gönüllü çıkışı manuel olarak başlatmayı gerektirir. - -Bir doğrulayıcı çıkış sürecini tamamladığında ve hesabın çekim kredilerinin olduğunu varsayarsak kalan bakiye, sonrasında sıradaki doğrulayıcı süpürmesinde çekilecektir. - - - - -Çekimler otomatik olarak kilitlemeye katkısı olmayan herhangi bir ETH'yi atmaya yönelik düzenlenmiştir. Bu, çıkış sürecini tamamlamış olan hesaplar için tüm bakiyeleri de kapsar. - -Belirli miktarlarda ETH'nin çekilmesini manuel olarak talep etmek mümkün değildir. - - - - -Doğrulayıcı operatörlerinin doğrulayıcıyı çekimler için nasıl hazırlayacağı hakkında daha fazla detay bulabilecekleri Hisseleme Başlama Noktası Çekimleri sayfasını ziyaret etmeleri önerilir. hazır, olayların gerçekleşme süreci ve çekimlerin nasıl çalıştığı ile ilgili daha fazla ayrıntı. - -Kurulumunuzu ilk olarak bir test ağında denemek isterseniz, başlamak için Goerli Test Ağı Hisseleme Başlama Noktası sayfasını ziyaret edin. - - - - -Hayır. Bir doğrulayıcı çıktıktan ve tüm bakiyesi çekildikten sonra, bu doğrulayıcıya yatırılan tüm ek fonlar, bir sonraki doğrulayıcı süpürmesi sırasında otomatik olarak çekim adresine aktarılacaktır. ETH'yi tekrar hisselemek için yeni bir doğrulayıcı aktive olmalıdır. - - -## Daha fazla bilgi {#further-reading} - -- [Hisseleme Başlama Noktası Para Çekimleri](https://launchpad.ethereum.org/withdrawals) -- [EIP-4895: İşlem olarak işaret zinciri çekim işlemleri](https://eips.ethereum.org/EIPS/eip-4895) -- [Ethereum Kedi Çobanları - Şangay](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) -- [PEEPanEIP #94: Potuz ve Hsiao-Wei Wang ile Kilitli ETH Çekimi (Test)](https://www.youtube.com/watch?v=G8UstwmGtyE) -- [PEEPanEIP#68: EIP-4895: Alex stokes ile operasyonlar olarak işaret zinciri çekimleri](https://www.youtube.com/watch?v=CcL9RJBljUs) -- [Doğrulayıcının Geçerli Bakiyesini Anlamak](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/uk/community/support/index.md b/src/content/translations/uk/community/support/index.md deleted file mode 100644 index b6c8e96aab1..00000000000 --- a/src/content/translations/uk/community/support/index.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -title: Підтримка Ethereum -description: Отримайте підтримку в екосистемі Ethereum. -lang: uk ---- - -# Підтримка Ethereum {#support} - -## Офіційна підтримка Ethereum {#official-support} - -Вам потрібна офіційна підтримка Ethereum? Перше, що вам слід знати, — Ethereum є децентралізованою системою. Це означає, що жодна централізована організація чи особа не володіє Ethereum, і через це не існує жодних офіційних каналів підтримки. - -Розуміння децентралізованої природи Ethereum є життєво важливим, оскільки будь-хто, хто стверджує, що є офіційною підтримкою Ethereum, імовірно, є шахраєм! Найкращий захист від шахраїв — це самоосвіта й серйозне ставлення до безпеки. - - - Система безпеки Ethereum і запобігання шахрайству - - - - Вивчайте основи Ethereum - - -Попри відсутність офіційної підтримки, багато груп, спільнот і проєктів у всій екосистемі Ethereum із радістю нададуть допомогу, і ви можете знайти багато корисної інформації та ресурсів на цій сторінці. Залишилися питання? Приєднуйтесь до [ethereum.org на платформі Discord](/discord/), ми спробуємо вам допомогти. - -## Підтримка гаманця {#wallet-support} - -Виникли проблеми з гаманцем? Більшість гаманців мають спеціальні команди підтримки, які можуть допомогти: - -- [MetaMask](https://metamask.zendesk.com/hc/) -- [Argent](https://support.argent.xyz/hc/) -- [MyEtherWallet](https://help.myetherwallet.com/) - -_Це не вичерпний список. Потрібна допомога в пошуку підтримки для конкретного гаманця? Приєднуйтеся до [ethereum.org на платформі Discord](https://discord.gg/ethereum-org), і ми спробуємо допомогти._ - -Шукаєте гаманець Ethereum? [Перегляньте наш повний список гаманців Ethereum](/wallets/find-wallet/). - -## Розробка децентралізованих програм {#building-support} - -Цей процес може бути складним. Ось кілька орієнтованих на розробку ресурсів із досвідченими розробниками Ethereum, які з радістю допоможуть. - -- [Університет Alchemy](https://university.alchemy.com/#starter_code) -- [CryptoDevs на платформі Discord](https://discord.gg/Z9TA39m8Yu) -- [Ethereum StackExchange](https://ethereum.stackexchange.com/) -- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) -- [Університет Web3](https://www.web3.university/) - -Ви також можете знайти документацію та посібники з розробки в нашому розділі [Ресурси для розробників Ethereum](/developers/). - -### Інструменти {#dapp-tooling} - -Чи стосується ваше запитання певного інструменту, проєкту чи бібліотеки? Більшість проєктів мають чат-сервери або форуми, призначені для підтримки. - -Ось кілька популярних прикладів: - -- [Solidity](https://gitter.im/ethereum/solidity/) -- [ethers.js](https://discord.gg/6jyGVDK6Jx) -- [web3.js](https://discord.gg/GsABYQu4sC) -- [Hardhat](https://discord.gg/xtrMGhmbfZ) -- [Truffle](https://discord.gg/8uKcsccEYE) -- [Alchemy](http://alchemy.com/discord) -- [Tenderly](https://discord.gg/fBvDJYR) - -## Запуск вузла {#node-support} - -Якщо ви використовуєте вузол або валідатор, ось кілька спільнот, які допоможуть вам розпочати роботу. - -- [EthStaker на платформі Discord](https://discord.gg/ethstaker) -- [EthStaker на платформі Reddit](https://www.reddit.com/r/ethstaker) - -Більшість команд, які створюють клієнти Ethereum, мають також спеціальні відкриті майданчики, де ви можете отримати підтримку й поставити запитання. - -### Клієнти виконання {#execution-clients} - -- [Geth](https://discord.gg/FqDzupGyYf) -- [Nethermind](https://discord.gg/YJx3pm8z5C) -- [Besu](https://discord.gg/p8djYngzKN) -- [Erigon](https://github.com/ledgerwatch/erigon/issues) - -### Клієнти консенсусу {#consensus-clients} - -- [Prysm](https://discord.gg/prysmaticlabs) -- [Nimbus](https://discord.gg/nSmEH3qgFv) -- [Lighthouse](https://discord.gg/cyAszAh) -- [Teku](https://discord.gg/7hPv2T6) -- [Lodestar](https://discord.gg/aMxzVcr) - -Ви також можете [дізнатися, як запустити вузол, тут](/developers/docs/nodes-and-clients/run-a-node/). - -## Часті питання {#faq} - -#### Ефіри (ETH) надіслано не на той гаманець {#wrong-wallet} - -Транзакція, надіслана на Ethereum, є незворотною. На жаль, якщо ви надіслали ETH на неправильний гаманець, неможливо повернути ці кошти. Жодна центральна організація чи особа не володіє Ethereum, а це означає, що ніхто не може скасовувати транзакції. Тому важливо завжди двічі перевіряти свої транзакції, перш ніж надіслати їх. - -#### Як я можу отримати Ethereum під час безкоштовної роздачі? {#giveaway-scam} - -Роздачі Ethereum — це шахрайство, призначене для крадіжки ваших ефірів (ETH). Не спокушайтеся пропозиціями, які здаються занадто хорошими, щоб бути правдою, — якщо ви надішлете ефіри (ETH) на адресу роздачі, ви не отримаєте роздачу й не зможете повернути свої кошти. - -[Докладніше про запобігання шахрайству](/security/#common-scams) - -#### Мою транзакцію заблоковано {#stuck-transaction} - -Транзакції в Ethereum іноді можуть заблокуватись, якщо ви вказали нижчу комісію за транзакцію, ніж потрібно через мережевий попит. Багато гаманців надають можливість повторно надіслати ту саму транзакцію з вищою комісією, щоб її було оброблено. Крім того, ви можете скасувати транзакцію, що очікує на розгляд, надіславши транзакцію на вашу власну адресу й використавши той самий одноразовий номер, що має транзакція в очікуванні. - -[Як прискорити або скасувати незавершену транзакцію на MetaMask](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) - -[Як скасувати незавершені транзакції Ethereum](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) - -#### Як мені видобувати Ethereum? {#mining-ethereum} - -Майнинг Ethereum уже неможливий. Майнинг було вимкнуто, коли Ethereum перейшов від доказу роботи на доказ володіння. Тепер замість майнерів в Ethereum з’явилися валідатори. Валідатори займаються стейкінгом ETH і отримують винагороду за захист мережі. - -#### Як я можу стати стейкером/валідатором? {#become-validator} - -Щоб стати валідатором, необхідно стати стейкером 32 ETH у депозитному контракті Ethereum і встановити вузол валідатора. Більше інформації доступно на [сторінках](/staking) і [стартовій платформі](https://launchpad.ethereum.org/) стейкінгу. diff --git a/src/content/translations/uk/dao/index.md b/src/content/translations/uk/dao/index.md deleted file mode 100644 index 71657c28af1..00000000000 --- a/src/content/translations/uk/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: Децентралізовані автономні організації (DAO) -description: Огляд DAO на Ethereum -lang: uk -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: Представлення голосувань DAO за пропозицію. -summaryPoint1: Спільноти, що належать учасникам, без централізованого керування. -summaryPoint2: Безпечний спосіб співпраці з незнайомцями в Інтернеті. -summaryPoint3: Безпечне місце для фінансування конкретної справи. ---- - -## Що таке DAO? {#what-are-daos} - -DAO — це організація, керована спільнотою блокчейн, що працює над досягненням спільної цілі. - -DAO дає нам змогу працювати з однодумцями по всьому світу, не довіряючи доброзичливому лідеру керувати коштами чи операціями. Немає генерального директора, який міг би витрачати кошти на свої капризи, або фінансового директора, який би міг маніпулювати бухгалтерськими книгами. Натомість правила, засновані на блокчейні, записані в код, визначають, як працює організація та як витрачаються кошти. - -Вони мають вбудовані скарбниці, до яких ніхто не має права доступу без схвалення групи. Рішення приймаються на основі пропозицій і голосування, щоб кожен в організації мав право голосу, і все відбувалося прозоро всередині мережі. - -## Для чого нам потрібні DAO? {#why-dao} - -Заснування організації з кимось, що передбачає фінансування та гроші, вимагає великої довіри до людей, з якими ви працюєте. Однак важко довіряти тим, з ким мали справу тільки в Інтернеті. Працюючи з DAO, вам не потрібно довіряти іншим учасникам — тільки кодові DAO, який є повністю прозорим і може бути перевірений будь-ким. - -Це дає так багато нових можливостей для всесвітньої співпраці та координації. - -### Порівняння {#dao-comparison} - -| DAO | Традиційна організація | -| ------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | -| Зазвичай повністю демократична, без ієрархії. | Зазвичай ієрархічна. | -| Для внесення змін необхідне голосування учасників. | Залежно від структури, зміни можуть вимагатись однією стороною або висуватися на голосування. | -| Після підрахунку голосів результат впроваджується автоматично без довіреного посередника. | Якщо дозволено провести голосування, голоси підраховуються за допомогою внутрішніх процедур, а результат обробляється вручну. | -| Запропоновані послуги обробляються автоматично децентралізованим способом (наприклад, розподіл благодійних коштів). | Необхідне втручання людини або централізовано керована автоматизація; існує можливість махінацій. | -| Уся діяльність є прозорою та повністю публічною. | Зазвичай діяльність конфіденційна, з обмеженим доступом. | - -### Приклади DAO {#dao-examples} - -Щоб було зрозуміліше, наведемо кілька прикладів використання DAO. - -- Благодійність: ви можете приймати пожертви від будь-кого у світі й голосувати за те, які цілі фінансувати. -- Колективна власність: ви можете придбати фізичні або цифрові активи, а учасники можуть голосувати за те, як їх використовувати. -- Венчурні інвестиції та гранти. Ви можете створити венчурний фонд, який об’єднує інвестиційний капітал і голосує за участь у венчурних проєктах. Пізніше виплачені гроші можна заново розподілити між учасниками DAO. - -## Як працює DAO? {#how-daos-work} - -Основою DAO є її смартконтракт, який визначає правила організації та зберігає скарбницю групи. Щойно контракт буде запущено на Ethereum, ніхто не зможе змінити правила без голосування. Якщо хтось спробує зробити дію, на яку не поширюються правила та логіка коду, він зазнає невдачі. Оскільки скарбниця також визначається смартконтрактом, ніхто не зможе витрачати гроші без схвалення групи. Це означає, що DAO не потребує центрального органу влади. Натомість група приймає рішення колективно, а виплати автоматично авторизуються, коли відбувається голосування. - -Це можливо, тому що після запуску на Ethereum смартконтракти отримують захист від злому. Ви не можете непомітно відредагувати код (правила DAO), тому що все перебуває в публічному доступі. - - - Докладніше про розумні контракти - - -## Ethereum і DAO {#ethereum-and-daos} - -Ethereum є ідеальним фундаментом для DAO з таких причин: - -- Власний консенсус Ethereum розповсюджується та визнаний достатньо, щоб організації могли довіряти цій мережі. -- Код розумного контракту неможливо змінити після його запуску. Це не під силу навіть його власникам. Це дає змогу DAO працювати згідно з початковими запрограмованими правилами. -- Розумні контракти можуть надсилати й отримувати кошти. Без цього вам знадобиться довірений посередник для керування коштами групи. -- Спільнота Ethereum виявилася більш схильною до співпраці, ніж конкуренції, що дає змогу швидко розвивати передові практики та системи підтримки. - -## Управління DAO {#dao-governance} - -Управління DAO має багато аспектів, як-от принципи, за якими працюють голосування та пропозиції. - -### Делегування {#governance-delegation} - -Делегування схоже на DAO-версію представницької демократії. Власники токенів делегують голоси користувачам, які призначають себе й зобов’язуються керувати протоколом і бути в курсі. - -#### Відомий приклад {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking) — власники ENS можуть делегувати свої голоси зацікавленим членам спільноти, щоб представляти їх. - -### Автоматичне керування транзакціями {#governance-example} - -У багатьох DAO транзакції виконуватимуться автоматично, якщо кворум членів проголосує «за». - -#### Відомий приклад {#governance-example} - -[Nouns](https://nouns.wtf) – У Nouns DAO транзакція виконується автоматично, якщо досягнуто кворуму голосів і більшість голосів за неї, доки засновники не наклали вето. - -### Управління за мультипідписом {#governance-example} - -Хоча DAO можуть мати тисячі членів з правом голосу, кошти можуть зберігатися в гаманці, спільному для 5–20 активних членів спільноти. Цим членам довіряють, і зазвичай їхні дані розміщують у відкритому доступі (публічні особи, відомі спільноті). Після голосування мультипідписані виконують волю спільноти. - -## Закони DAO {#dao-laws} - -У 1977 році в штаті Вайомінг винайшли товариство з обмеженою відповідальністю (LLC), яке захищає підприємців і обмежує їх відповідальність. Зовсім недавно вони запровадили закон про DAO, який встановлює правовий статус для DAO. Зараз у Вайомінгу, Вермонті та на Віргінських островах у тій чи іншій формі діють закони DAO. - -#### Відомий приклад {#law-example} - -[CityDAO](https://citydao.io) – CityDAO використовував закон штату Вайомінг DAO, щоб купити 40 акрів землі поблизу національного парку Єллоустоун. - -## Членство в DAO {#dao-membership} - -Існують різні моделі членства в DAO. Членство може визначати, як працює голосування та інші ключові частини DAO. - -### Членство на основі токенів {#token-based-membership} - -Зазвичай повністю без дозволу, залежно від використовуваного токена. Здебільшого цими токенами керування можна вільно торгувати на децентралізованій біржі. Інші потрібно заробити за допомогою забезпечення ліквідності або інших «доказів роботи». У будь-якому разі просте володіння токеном дає доступ до голосування. - -_Зазвичай використовується для керування широкими децентралізованими протоколами та/або власне токенами._ - -#### Відомий приклад {#token-example} - -[MakerDAO](https://makerdao.com) – Токен MakerDAO MKR широко доступний на децентралізованих біржах, і будь-хто може придбати право голосу щодо майбутніх протоколів Maker. - -### Членство на основі частки {#share-based-membership} - -DAO з членством на основі частки більш орієнтовані на надання дозволів, але все одно досить відкриті. Будь-який потенційний учасник може подати пропозицію приєднатися до DAO, зазвичай пропонуючи данину певної вартості у вигляді токенів або роботи. Частки надають право безпосереднього голосування та власності. Учасники можуть вийти в будь-який час зі своєю пропорційною часткою скарбниці. - -_Зазичай використовується для більш тісних, орієнтованих на людину організацій, як-от благодійні установи, робочі колективи й інвестиційні клуби. Можливе також керування протоколами й токенами._ - -#### Відомий приклад {#share-example} - -[MolochDAO](http://molochdao.com/). MolochDAO зосереджується на фінансуванні проєктів Ethereum. Вони вимагають пропозиції про членство, щоб група могла оцінити, чи маєте ви необхідні знання та капітал для прийняття обґрунтованих рішень щодо потенційних одержувачів грантів. Неможливо просто придбати доступ до DAO на відкритому ринку. - -### Членство на основі репутації {#reputation-based-membership} - -Репутація є доказом участі й надає право голосу в DAO. На відміну від членства на основі токенів або частки, DAO з членством на основі репутації не передають учасникам право власності. Репутацію не можна купити, передати чи делегувати. Учасники DAO повинні заробляти репутацію завдяки участі. Голосування в межах ланцюга не потребує дозволів, і потенційні учасники можуть вільно подавати пропозиції приєднатися до DAO та вимагати отримання репутації й токенів як винагороду в обмін на свій внесок. - -_Зазвичай використовується для децентралізованої розробки й керування протоколами й децентралізованими програмами, але також добре підходить для різноманітних організацій, як-от благодійні організації, трудові колективи, інвестиційні клуби тощо._ - -#### Відомий приклад {#reputation-example} - -[DXdao](https://DXdao.eth.link). DXdao — це глобальний незалежний колектив спеціалістів, що з 2019 року займаються створенням децентралізованих протоколів і програм, а також керуванням ними. Вони використовують метод на основі репутації та голографічний консенсус для координування фондів і керування ними, а отже, ніхто не може отримати вплив на їхнє майбутнє за гроші. - -## Приєднання або запуск DAO {#join-start-a-dao} - -### Приєднатися до DAO {#join-a-dao} - -- [DAO спільноти Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [Список DAO від DAOHaus](https://app.daohaus.club/explore) -- [Список DAO Tally.xyz](https://www.tally.xyz) - -### Запуск DAO {#start-a-dao} - -- [Виклик DAO з DAOHaus](https://app.daohaus.club/summon) -- [Запустіть Governor DAO з Tally](https://www.tally.xyz/add-a-dao) -- [Створення DAO на основі Aragon](https://aragon.org/product) -- [Запуск колонії](https://colony.io/) -- [Створіть DAO з голографічним консенсусом DAOstack](https://alchemy.daostack.io/daos/create) - -## Додаткові ресурси {#further-reading} - -### Статті про DAO {#dao-articles} - -- [Що таке DAO?](https://aragon.org/dao) — [Aragon](https://aragon.org/) -- [Довідник DAO](https://daohandbook.xyz) -- [Будинок DAO](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) — [Metagame](https://wiki.metagame.wtf/) -- [Що таке DAO та для чого вони?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) — [DAOhaus](https://daohaus.club/) -- [Як запустити цифрову спільноту на основі DAO](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) — [DAOhaus](https://daohaus.club/) -- [Що таке DAO?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) — [Coinmarketcap](https://coinmarketcap.com) -- [Що таке голографічний консенсус?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) — [DAOstack](https://daostack.io/) -- [DAO — не корпорація: де має значення децентралізація в автономних організаціях, Віталік](https://vitalik.ca/general/2022/09/20/daos.html) -- [DAO, DAC, DA тощо: неповний посібник з термінології](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [блог Ethereum](https://blog.ethereum.org) - -### Відеоматеріали {#videos} - -- [Що таке DAO в криптовалюті?](https://youtu.be/KHm0uUPqmVE) -- [Чи може DAO побудувати місто?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/src/content/translations/uk/decentralized-identity/index.md b/src/content/translations/uk/decentralized-identity/index.md deleted file mode 100644 index 124514e94ed..00000000000 --- a/src/content/translations/uk/decentralized-identity/index.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: Децентралізована ідентичність -description: Що таке децентралізована ідентифікація і чому вона важлива? -lang: uk -template: use-cases -emoji: ":id:" -sidebarDepth: 2 -image: ../../../../assets/eth-gif-cat.png -summaryPoint1: Традиційні системи ідентифікації централізовано видають, підтримують і контролюють ваші ідентифікатори. -summaryPoint2: Децентралізована ідентифікація усуває залежність від централізованих третіх сторін. -summaryPoint3: Завдяки криптовалюті користувачі знову мають інструменти для видачі, зберігання та контролю власних ідентифікаторів і атестацій. ---- - -Сьогодні ідентифікація лежить в основі майже всіх аспектів вашого життя. Користування онлайн-сервісами, відкриття банківського рахунку, голосування на виборах, купівля нерухомості, працевлаштування — усе це потребує підтвердження особи. - -Однак традиційні системи управління ідентифікацією вже давно покладаються на централізованих посередників, які видають, зберігають і контролюють ваші ідентифікатори та [атестації](#what-are-attestations). Це означає, що ви не можете контролювати інформацію, пов'язану з вашою особою, або вирішувати, хто має доступ до інформації, що ідентифікує особу (PII), і в якому обсязі ці особи мають доступ. - -Для розв’язання цих проблем у нас є децентралізовані системи ідентифікації, побудовані на публічних блокчейнах, як-от Ethereum. Децентралізована ідентифікація дозволяє особам управляти інформацією, пов'язаною з їхньою ідентифікацією. Завдяки децентралізованим рішенням ідентифікації _ви_ можете створювати ідентифікатори, вимагати та зберігати свої атестації, не покладаючись на центральні органи, як-от постачальники послуг або уряди. - -## Що таке ідентичність? {#what-is-identity} - -Ідентичність — це особисте відчуття себе, що визначається унікальними характеристиками. Ідентичність означає бути _особою_, тобто окремою людською сутністю. Ідентичність може також стосуватися інших нелюдських суб'єктів, як-от організація або орган влади. - -## Що таке ідентифікатори? {#what-are-identifiers} - -Ідентифікатор — це частина інформації, яка діє як покажчик на певну особу або особи. До загальних ідентифікаторів відносяться: - -- Ім'я -- Номер соціального страхування / податковий номер -- Номер мобільного телефону -- Дата й місце народження -- Цифрові ідентифікаційні дані, як-от адреси електронної пошти, імена користувачів, аватари - -Ці традиційні приклади ідентифікаторів видаються, зберігаються й контролюються центральними органами. Вам потрібен дозвіл від уряду вашої країни, щоб змінити своє ім’я, або від платформи соціальних мереж, щоб змінити свій псевдонім. - -## Що таке атестації? {#what-are-attestations} - -Атестація — це заява, яку зроблено одним суб’єктом відносно іншого суб’єкта. Якщо ви проживаєте в Сполучених Штатах, посвідчення водія, видане вам Департаментом автотранспорту (одним суб’єктом), засвідчує, що ви (інший суб'єкт) маєте право керувати автомобілем на законних підставах. - -Атестації відрізняються від ідентифікаторів. Атестація _містить_ ідентифікатори для посилання на певну ідентичність і робить заяву про атрибут, пов'язаний з цією ідентичністю. Отже, ваше посвідчення водія має ідентифікаційні дані (ПІБ, дата народження, адреса), а також є атестацією вашого законного права на керування транспортним засобом. - -### Що таке децентралізовані ідентифікатори? {#what-are-decentralized-identifiers} - -Традиційні ідентифікатори, як-от ваше юридичне ім’я або адреса електронної пошти, покладаються на третіх осіб — уряди та провайдерів електронної пошти. Децентралізовані ідентифікатори (DID) відрізняються від традиційних — вони не видаються, не управляються і не контролюються жодним центральним органом. - -Децентралізовані ідентифікатори видаються, зберігаються й контролюються фізичними особами. Прикладом децентралізованого ідентифікатора є обліковий запис [Ethereum](/developers/docs/accounts/). Ви можете створювати скільки завгодно облікових записів без дозволу будь-кого й без необхідності зберігати їх у центральному реєстрі. - -Децентралізовані ідентифікатори зберігаються в розподілених реєстрах (блокчейнах) або однорангових мережах. Це робить DID [глобально унікальними, вирішуваними з високою доступністю та криптографічно перевірюваними](https://w3c-ccg.github.io/did-primer/). Децентралізований ідентифікатор може бути пов’язаний із різними суб'єктами, зокрема людьми, організаціями або державними установами. - -## Що уможливлює децентралізовані ідентифікатори? {#what-makes-decentralized-identifiers-possible} - -### 1. Інфраструктура відкритих ключів (PKI) {#public-key-infrastructure} - -Інфраструктура відкритих ключів (ІВК) — це захід інформаційної безпеки, який генерує [відкритий ключ](/glossary/#public-key) і [приватний ключ](/glossary/#private-key) для суб’єкта. Криптографія з відкритим ключем використовується в мережах блокчейн для автентифікації користувачів і підтвердження права власності на цифрові активи. - -Деякі децентралізовані ідентифікатори, як-от обліковий запис Ethereum, мають публічні та приватні ключі. Відкритий ключ ідентифікує контролера облікового запису, а закриті ключі дають змогу підписувати й розшифровувати повідомлення для цього облікового запису. PKI надає докази, необхідні для автентифікації суб’єктів і запобігання видавання себе за іншу особу й використання фальшивих ідентифікаційних даних, використовуючи [криптографічні підписи](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 емітента в Ethereum. По суті, блокчейн Ethereum діє як глобальний каталог, який дає змогу перевіряти DID, пов’язані з певними суб'єктами. - -Завдяки децентралізованим ідентифікаторам атестації є самоконтрольованими й перевірюваними. Навіть якщо емітента більше не існує, тримач завжди має доказ походження й дійсності атестації. - -Децентралізовані ідентифікатори також мають вирішальне значення для захисту конфіденційності особистої інформації шляхом децентралізованої ідентифікації. Наприклад, якщо фізична особа подає підтвердження атестації (водійське посвідчення), стороні, що перевіряє, не потрібно перевіряти правдивість інформації, що міститься у підтвердженні. Натомість верифікатору потрібні лише криптографічні гарантії автентичності атестації та ідентифікація організації, яка його видала, щоб визначити, чи є доказ дійсним. - -## Види атестацій у децентралізованій ідентичності {#types-of-attestations-in-decentralized-identity} - -Спосіб зберігання й отримання інформації про атестацію в екосистемі ідентифікації на основі Ethereum відрізняється від традиційного управління ідентифікацією. Нижче наведено огляд різних підходів до видачі, зберігання та перевірки посвідчень у децентралізованих системах ідентифікації: - -### Атестації поза мережею {#off-chain-attestations} - -Однією з проблем, пов’язаних зі зберіганням атестацій у ланцюжку, є те, що вони можуть містити інформацію, яку люди хочуть зберегти конфіденційною. Публічний характер блокчейну Ethereum робить непривабливим зберігання таких атестацій. - -Рішення полягає у видачі атестацій, які зберігаються користувачами поза мережею в цифрових гаманцях, але підписані DID емітента, що зберігається в мережі. Ці атестації закодовані як [вебтокени JSON](https://en.wikipedia.org/wiki/JSON_Web_Token) і містять цифровий підпис емітента, що дає змогу легко перевірити заяви поза мережею. - -Ось гіпотетичний сценарій для пояснення атестацій поза мережею: - -1. Університет (емітент) створює атестацію (цифровий академічний сертифікат), підписує своїми ключами й видає її Бобу (власнику посвідчення). - -2. Боб подає заявку на роботу й хоче підтвердити роботодавцю свою академічну кваліфікацію, тому він ділиться атестацією зі свого мобільного гаманця. Потім компанія (верифікатор) може підтвердити дійсність атестації, перевіривши DID емітента (тобто його відкритий ключ в Ethereum). - -### Атестації поза мережею з постійним доступом {#offchain-attestations-with-persistent-access} - -Відповідно до цієї домовленості атестації перетворюються у файли JSON і зберігаються поза мережею (в ідеалі на платформі [децентралізованого хмарного сховища](/developers/docs/storage/), як-от IPFS або Swarm). Однак [хеш](/glossary/#hash) файлу JSON зберігається в блокчейні й пов’язується з DID через реєстр у блокчейні. Пов’язаний DID може належати або тому, хто видав атестацію, або одержувачу. - -Цей підхід дає атестаціям змогу отримати стійкість на основі блокчейну, водночас зберігаючи інформацію про заявку в зашифрованому вигляді й такою, яку можна перевірити. Це також дає змогу вибіркового розкриття, оскільки власник закритого ключа може розшифрувати інформацію. - -### Атестації в блокчейні {#onchain-attestations} - -Атестації в блокчейні проводяться в [розумних контрактах](/developers/docs/smart-contracts/) у блокчейні Ethereum. Розумний контракт (діючи як реєстр) зіставлятиме атестацію з відповідним децентралізованим ідентифікатором у ланцюжку (відкритим ключем). - -Ось приклад, щоб показати, як на практиці можуть працювати атестації в блокчейні: - -1. Компанія (XYZ Corp) планує продати частки власності за допомогою розумного контракту, але хоче мати лише покупців, які пройшли перевірку. - -2. XYZ Corp може доручити компанії провести перевірку репутації для видачі атестацій у мережі Ethereum. Ця атестація засвідчує, що особа пройшла перевірку репутації без розкриття будь-якої особистої інформації. - -3. Розумний контракт на продаж акцій може перевіряти в договорі реєстру особи перевірених покупців, що дає змогу розумному контракту визначати, кому дозволено купувати акції, а кому ні. - -### Токени Soulbound та ідентичність {#soulbound} - -[Токени Soulbound](https://vitalik.ca/general/2022/01/26/soulbound.html) (NFT, що не підлягають передаванню) можна використовувати для збору інформації, унікальної для певного гаманця. Це фактично створює унікальну ідентифікаційну інформацію в ланцюжку, прив’язану до конкретної адреси Ethereum, яка може містити токени, що представляють досягнення (наприклад, завершення певного онлайн-курсу або проходження порогового значення в грі) або участь у спільноті. - -## Переваги децентралізованої ідентичності {#benefits-of-decentralized-identity} - -1. Децентралізована ідентифікація підвищує індивідуальний контроль над ідентифікаційною інформацією. Децентралізовані ідентифікатори й атестації можна перевіряти, не покладаючись на централізовані органи та сторонні служби. - -2. Децентралізовані рішення для ідентифікації забезпечують безперебійний метод перевірки й управління ідентифікацією користувачів, який не вимагає довіри й захищає конфіденційність. - -3. Децентралізована ідентифікація використовує технологію блокчейн, яка створює довіру між різними сторонами й забезпечує криптографічні гарантії для підтвердження дійсності атестацій. - -4. Децентралізована ідентичність дає змогу переносити ідентифікаційні дані. Користувачі зберігають атестати й ідентифікатори в мобільному гаманці та можуть обмінюватися ними з будь-якою стороною за власним вибором. Децентралізовані ідентифікатори й атестації не прив'язані до бази даних організації, що їх видала. - -5. Децентралізована ідентичність повинна добре працювати з новими технологіями нульового знання, які дадуть людям змогу довести, що вони володіють чимось чи зробили щось, не розкриваючи, що це таке. Це може стати потужним способом поєднання довіри й конфіденційності для різних застосунків, як-от голосування. - -6. Децентралізована ідентичність дає механізму протидії атакам Сивілли змогу виявляти випадки, коли одна людина видає себе за іншу, щоб грати або поширювати спам у якійсь системі. - -## Випадки використання децентралізованої ідентифікації {#decentralized-identity-use-cases} - -Децентралізована ідентифікація має багато потенційних варіантів використання: - -### 1. Універсальні логіни {#universal-dapp-logins} - -Децентралізована ідентифікація може допомогти замінити парольні входи на [децентралізовану автентифікацію](https://www.ibm.com/blogs/blockchain/2018/10/decentralized-identity-an-alternative-to-password-based-authentication/). Постачальники послуг можуть видавати користувачам атестати, які можуть зберігатися в гаманці Ethereum. Прикладом атестації може бути [NFT](/nft/), що надає власнику доступ до онлайн-спільноти. - -Функція [Увійти за допомогою Ethereum](https://login.xyz/) дасть серверам змогу підтвердити обліковий запис користувача Ethereum і отримати необхідне підтвердження з адреси його облікового запису. Це означає, що користувачі можуть отримати доступ до платформ і вебсайтів без необхідності запам'ятовувати довгі паролі й покращує онлайн-досвід для користувачів. - -### 2. Автентифікація KYC {#kyc-authentication} - -Використання багатьох онлайн-сервісів вимагає від осіб надання атестацій і облікових даних, як-от водійське посвідчення або національний паспорт. Але такий підхід є проблематичним, оскільки приватна інформація користувачів може бути скомпрометована, а постачальники послуг не можуть перевірити справжність атестації. - -Децентралізована ідентифікація дає компаніям змогу відмовитися від традиційних процесів [«знай свого клієнта» (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) і автентифікувати ідентифікаційні дані користувачів за допомогою перевірених облікових даних. Це зменшує витрати на управління ідентифікацією та запобігає використанню підроблених документів. - -### 3. Голосування й онлайн-спільноти {#voting-and-online-communities} - -Онлайн-голосування й соціальні мережі — два нових застосування децентралізованої ідентифікації. Схеми онлайн-голосування піддаються маніпуляціям, особливо якщо зловмисники створюють фальшиві імена для голосування. Прохання до осіб надавати атестації в блокчейні може підвищити чесність процесів онлайн-голосування. - -Децентралізована ідентифікація може допомогти створити онлайн-спільноти, вільні від фейкових облікових записів. Наприклад, кожному користувачеві, можливо, доведеться підтверджувати свою особу за допомогою заснованої на блокчейні системи ідентифікації, як-от служба імен Ethereum, що зменшує ймовірність появи ботів. - -### 4. Захист від атак Сивілли {#sybil-protection} - -Атаки Сивілли — це коли окремі люди обманюють систему, змушуючи її думати, що вони є кількома людьми, щоб збільшити свій вплив. [Програми для надання грантів](https://gitcoin.co/grants/), які використовують [квадратичне голосування](https://www.radicalxchange.org/concepts/plural-voting/), уразливі до цих атак Сивілли, оскільки вартість гранту збільшується, коли за нього голосує більше осіб, що стимулює користувачів розподіляти свої внески між багатьма особами. Децентралізовані ідентифікаційні дані допомагають запобігти цьому, зобов’язуючи на кожного учасника довести, що вони справді люди, хоча часто без необхідності розкривати приватну інформацію. - -## Використання децентралізованої ідентифікації {#use-decentralized-identity} - -Існує багато амбітних проєктів, що використовують Ethereum як основу для децентралізованої ідентифікації: - -- **[Служба імен Ethereum (ENS)](https://ens.domains/)** — _децентралізована система імен для мережевих машинозчитуваних ідентифікаторів, як-от адреси гаманців Ethereum, хеші вмісту й метаданих. _ -- **[SpruceID](https://www.spruceid.com/)** — _проєкт децентралізованої ідентифікації, який дає користувачам змогу контролювати цифрову ідентифікацію за допомогою облікових записів Ethereum і профілів ENS замість використання сторонніх служб._ -- **[Служба атестації Ethereum (EAS)](https://attest.sh/)** — _децентралізований реєстр/протокол для створення будь-яких атестацій у ланцюжку та поза ним._ -- **[Proof of Humanity](https://www.proofofhumanity.id)** — _Доказ людства (або PoH) — це соціальна система підтвердження особистості, побудована на Ethereum._ -- **[BrightID](https://www.brightid.org/)** — _децентралізована мережа соціальної ідентифікації з відкритим вихідним кодом, яка прагне реформувати перевірку особистості шляхом створення й аналізу соціального графа._ -- **[Паспорт, що підтверджує особу,](https://proofofpersonhood.com/)** — _децентралізований агрегатор цифрових ідентифікаційних даних._ - -## Довідкові джерела {#further-reading} - -### Статті {#articles} - -- [Випадки використання блокчейну: блокчейн у цифровій ідентифікації](https://consensys.net/blockchain-use-cases/digital-identity/)—_ConsenSys_ -- [Що таке Ethereum ERC725? Самостійне керування ідентифікацією в блокчейні](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Sam Town_ -- [Як блокчейн може розв’язувати проблему цифрової ідентичності](https://time.com/6142810/proof-of-humanity/) — _Ендрю Р. Чоу_ -- [Що таке децентралізована ідентифікація і чому це має вас хвилювати?](https://web3.hashnode.com/what-is-decentralized-identity) — _Еммануель Авосіка_ - -### Відео {#videos} - -- [Децентралізована ідентифікація (бонусна сесія в прямому ефірі)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _Чудове пояснювальне відео про децентралізовану ідентифікацію від Андреаса Антонополуса_ -- [Увійдіть за допомогою Ethereum і децентралізованої ідентифікації за допомогою Ceramic, IDX, React і 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _Посібник на YouTube зі створення системи керування ідентифікацією для створення, читання й оновлення профілю користувача профіль за допомогою його гаманця Ethereum від Надер Дебіт_ -- [BrightID – децентралізована ідентифікація в Ethereum](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _подкаст безкоштовних версій, у якому обговорюється BrightID, децентралізоване рішення ідентифікації для Ethereum_ -- [Інтернет поза ланцюгом: децентралізована ідентифікація та перевірювані повноваження](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — презентація EthDenver 2022 від Евіна Мак-Маллена - -### Спільноти {#communities} - -- [Альянс ERC-725 на GitHub](https://github.com/erc725alliance) — _Прихильники стандарту ERC725 для керування ідентифікацією в блокчейні Ethereum_ -- [Сервер Discord SpruceID](https://discord.com/invite/Sf9tSFzrnt) — _Спільнота для ентузіастів і розробників, які працюють над входом за допомогою Ethereum_ -- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _спільнота розробників, які роблять внесок у створення основи для перевірених даних для програм_ diff --git a/src/content/translations/uk/defi/index.md b/src/content/translations/uk/defi/index.md deleted file mode 100644 index 02500fea4c0..00000000000 --- a/src/content/translations/uk/defi/index.md +++ /dev/null @@ -1,352 +0,0 @@ ---- -title: Децентралізовані фінанси (DeFi) -description: Огляд DeFi на Ethereum -lang: uk -template: use-cases -emoji: ":money_with_wings:" -image: ../../../../assets/use-cases/defi.png -alt: Логотип Eth із блоків Lego. -sidebarDepth: 2 -summaryPoint1: Глобальна відкрита альтернатива наявній фінансовій системі. -summaryPoint2: Продукти, що дають змогу позичати, заощаджувати, інвестувати, торгувати тощо. -summaryPoint3: На основі технології з відкритим вихідним кодом, з якою програмувати може кожен. ---- - -DeFi — це глобальна відкрита фінансова система, створена відповідно до потреб епохи інтернету. Це альтернатива жорстко контрольованим, непрозорим традиційним системам із застарілою інфраструктурою та процесами. Вона дає можливість контролювати й бачити ваші гроші. Крім того, вона надає доступ до світових ринків і створює альтернативи місцевій валюті чи банківським рішенням. Кожен, хто має доступ до інтернету, може користуватися фінансовими послугами продуктів DeFi. Вони значною мірою належать власне користувачам, які й займаються їх обслуговуванням. Наразі через програми DeFi уже пройшли десятки мільярдів доларів у криптовалютному еквіваленті, і кількість транзакцій щодня зростає. - -## Що таке DeFi? {#what-is-defi} - -DeFi — це збірне поняття, що охоплює фінансові продукти й послуги, доступні всім, хто може використовувати Ethereum. Тобто всім, у кого є доступ до Інтернету. Завдяки DeFi ринки завжди відкриті й немає централізованого органу влади, який би блокував платежі або відмовляв у доступі. Послуги, які раніше вимагали багато часу та були вразливі до помилок людського фактора, тепер виконуються автоматично та стали безпечнішими, тому що керуються кодом, доступним для огляду й аналізу всіма бажаючими. - -Криптоекономіка процвітає та пропонує інструменти для позики, довгих і коротких пропозицій, вкладання під відсотки тощо. За допомогою своїх знань із криптоекономіки та DeFi аргентинці зуміли уникнути наслідків інфляції. Компанії почали платити своїм працівникам у реальному часі. Дехто навіть брав і повертав позики на мільйони доларів без необхідності підтвердження особи. - - - -## DeFi і традиційні фінанси {#defi-vs-tradfi} - -Щоб якнайкраще осягнути потенціал DeFi, потрібно ознайомитися з актуальними проблемами. - -- Не всі мають можливість відкрити рахунок у банку та користуватися фінансовими послугами. -- Цих людей можуть не взяти на роботу саме через відсутність доступу до фінансових послуг. -- Постачальники фінансових послуг можуть перешкоджати виплаті зарплат. -- Під час використання фінансових послуг можуть збиратись особисті дані. -- Уряди та централізовані установи можуть за бажання закрити ринки. -- Часи торгівлі часто обмежені робочими годинами конкретного часового поясу. -- Грошові перекази можуть тривати кілька днів через внутрішні процеси, які виконуються вручну. -- Фінансові послуги надаються з націнкою, тому що установи-посередники вимагають плату. - -### Порівняння {#defi-comparison} - -| DeFi | Традиційні фінанси | -| ---------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | -| Ви зберігаєте свої гроші. | Ваші гроші зберігають компанії. | -| Ви контролюєте, куди спрямовуються ваші гроші та як вони витрачаються. | Вам залишається сподіватися, що компанії не зловживатимуть вашими грошима, позичаючи їх ненадійним особам тощо. | -| Переказ коштів триває кілька хвилин. | Платежі можуть тривати кілька днів через виконання процесів вручну. | -| Транзакції здійснюються під псевдонімами. | Фінансова діяльність тісно пов’язана з вашою особою. | -| Система DeFi доступна всім. | Для користування фінансовими послугами потрібно подати заявку. | -| Ринки завжди відкриті. | Ринки закриваються, бо працівникам потрібна перерва. | -| Головний принцип — прозорість. Кожен може ознайомитися з даними продукту та перевірити, як працює система. | Діяльність фінансових установ прихована. Ви не можете переглянути їх кредитну історію, записи про доступні активи тощо. | - - - Ознайомитися з програмами DeFi - - -## Усе почалося з Bitcoin… {#bitcoin} - -Bitcoin була першою програмою DeFi з усіх боків. Bitcoin дає змогу по-справжньому володіти активами, контролювати їх і надсилати в будь-який куточок світу. Це можливо завдяки наданню великій кількості людей, які не довіряють одне одному, можливості узгоджувати бухгалтерський облік без довіреного посередника. Bitcoin відкритий для всіх, і ніхто не має повноважень змінювати правила. Правила Bitcoin, як-от рідкісність і відкритість, прописані в технології. Це не схоже на традиційні фінанси, коли уряди можуть друкувати гроші, знецінюючи ваші заощадження, а компанії здатні закривати ринки. - -На цих принципах базується й Ethereum. Як і в Bitcoin, ніхто не може змінити правила, а доступ є для всіх. Але Ethereum також дає змогу запрограмовувати цифрові гроші за допомогою [розумних контрактів](/glossary#smart-contract), тож ви можете вийти за рамки простого зберігання та надсилання активів. - - - -## Програмовані гроші {#programmable-money} - -Звучить дивно, чи не так? Для чого програмувати гроші? Однак це радше стандартна функція для токенів на Ethereum. Будь-хто може запрограмувати логіку в платежі. Так ви отримуєте контроль і надійність Bitcoin у поєднанні з послугами, які надають фінансові установи. Це дасть вам змогу виконувати операції з криптовалютою, недоступні в Bitcoin, як-от надання й отримання позик, планування платежів, інвестування в індексні фонди тощо. - - -
Ознайомтеся з програмами DeFi, якщо ви лише починаєте працювати з Ethereum.
- - Ознайомитися з програмами DeFi - -
- -## Які можливості надає DeFi? {#defi-use-cases} - -Існує децентралізована альтернатива для більшості фінансових послуг. Але Ethereum також надає простір для створення абсолютно нових фінансових продуктів. Перелік можливостей постійно зростає. - -- [Надсилання грошей по всьому світу](#send-money) -- [Потокове передавання грошей по всьому світу](#stream-money) -- [Доступ до стабільних валют](#stablecoins) -- [Позика грошей під заставу](#lending) -- [Позика без застави](#flash-loans) -- [Накопичення криптовалюти](#saving) -- [Торгівля токенами](#swaps) -- [Збільшення портфеля](#investing) -- [Фінансування ідей](#crowdfunding) -- [Придбання страхування](#insurance) -- [Керування портфелем](#aggregators) - - - -### Швидке надсилання грошей по всьому світу {#send-money} - -Ethereum створено як блокчейн для надійних і глобальних транзакцій. Як і Bitcoin, Ethereum дає змогу надсилати кошти в будь-яку частину світу так само просто, як листи. Просто введіть [ім’я ENS](/nft/#nft-domains) отримувача (наприклад, bob.eth) або адресу його облікового запису у вашому гаманці, і за декілька хвилин (зазвичай) платіж буде отримано. Щоб надсилати й отримувати перекази, вам потрібен [гаманець](/wallets/). - - - Переглянути децентралізовані платіжні програми - - -#### Потокове передавання грошей по всьому світу... {#stream-money} - -Ethereum можна використовувати для потокового передавання коштів. Це дає змогу виплатити зарплатню за секунду та надати доступ до коштів у будь-який момент. Або орендувати що-небудь за секунду, як-от камеру зберігання або електросамокат. - -А якщо ви не хочете надсилати або передавати [ETH](/eth/) через часту зміну курсу, можете скористатись альтернативною валютою Ethereum — стейблкоїнами («стабільні монети»). - - - -### Доступ до стабільних валют {#stablecoins} - -Нестабільність криптовалют — проблема для багатьох фінансових продуктів і загальних витрат. Спільнота DeFi позбулася цієї проблеми за допомогою стейблкоїнів. Їх вартість прикріплена до іншого активу — зазвичай якої-небудь популярної валюти, як-от долара. - -Вартість монет, зокрема Dai або USDC, залишається в межах кількох центів від вартості долара. Завдяки цьому вони ідеально підходять для виплати зарплатні або роздрібної торгівлі. Багато жителів Латинської Америки використовували стейблкоїни для захисту своїх заощаджень у часи, коли їхні державні валюти були надто нестабільними. - - - Докладніше про стейблкоїни - - - - -### Позики {#lending} - -Позики в децентралізованих постачальників виконуються двома основними способами. - -- В одноранговому форматі (peer-to-peer), коли кошти в позику надає конкретний позикодавець. -- На основі пулу (pool-based), коли позикодавці надсилають кошти (ліквідність) у пул, звідки їх можна брати в борг. - - - Ознайомитися з децентралізованими програмами для позик - - -Існує багато переваг використання децентралізованих позикодавців... - -#### Конфіденційні позики {#borrowing-privacy} - -Сьогодні позики обертаються навколо залучених у цю діяльність осіб. Перш ніж давати кошти в позику, банкам потрібно впевнитися, що ви зможете їх повернути. - -Децентралізована видача позик не вимагає підтвердження особи жодної зі сторін. Натомість позичальник має внести заставу, яку позикодавець автоматично отримає, якщо борг не буде погашено. Деякі позикодавці навіть приймають NFT в ролі застави. NFT — це документи, прив’язані до унікальних активів, як-от картин. [Докладніше про NFT](/nft/) - -Це дає змогу позичати кошти без чеків і надання особистої інформації. - -#### Доступ до глобальних коштів {#access-global-funds} - -За використання послуг децентралізованих позикодавців ви отримуєте доступ до коштів з усього світу, а не лише тих, що зберігаються у вибраному вами банку або установі. Завдяки цьому позики стають доступніші, а процентні ставки — вигідніші. - -#### Оптимізація податків {#tax-efficiencies} - -Позики дають доступ до потрібних коштів без потреби в продажі власних монет ETH (оподатковувана дія). Натомість можна використовувати ETH як заставу для позики в стейблкоїнах. Так ви отримаєте необхідний потік коштів і не витратите ETH. Стейблкоїни — це токени, які набагато краще підходять для обміну в готівку, оскільки їх вартість не коливається так сильно, як в ETH. [Докладніше про стейблкоїни](#stablecoins) - -#### Миттєві позики {#flash-loans} - -Миттєві позики — це більш експериментальний спосіб децентралізованого видавання позик, який дає змогу взяти позику без застави та надання особистої інформації. - -Сьогодні вони не широко доступні для нетехнічних спеціалістів, але дають зрозуміти, які можливості можуть відкритися в майбутньому. - -Ідея в тому, що позика береться та виплачується в рамках тієї самої транзакції. Якщо позику неможливо виплатити, транзакція скасовується, ніби нічого й не сталося. - -Часто використовувані кошти зберігаються в пулах ліквідності (великі пули з коштами, які використовуються для позик). Якщо в цей момент вони не використовуються, з’являється можливість для іншої особи позичити ці кошти, провести з ними ділові операції та повернути всю суму буквально одночасно з отриманням позики. - -Щоб транзакції проходили успішно, потрібно докласти чимало зусиль на програмування логіки. Простий приклад: хтось бере миттєву позику, щоб позичити якнайбільшу кількість активу за однією ціною та продати його на іншій біржі, де ціна вища. - -Тобто в межах однієї транзакції відбуваються такі операції: - -- Ви позичаєте кількість Х $asset за ціною 1 $ на біржі A. -- Ви продаєте кількість Х $asset на біржі B за ціною 1,1 $. -- Ви повертаєте позику біржі A. -- Ви залишаєте собі прибуток, оплативши з нього комісію за транзакцію. - -Якщо на біржі B раптово впаде пропозиція і користувач не зможе придбати достатньо для виплати початкової позики, транзакція просто скасується. - -Щоб виконати наведений процес у світі традиційних фінансів, вам знадобиться величезна сума грошей. Подібні стратегії заробітку доступні лише заможним людям. Миттєві позики — це приклад того, як у майбутньому наявність коштів не буде обов’язковою умовою для заробітку. - -[Докладніше про миттєві позики](https://aave.com/flash-loans/) - - - -### Почніть заощаджувати в криптовалюті {#saving} - -#### Вкладення {#lending} - -Ви можете отримувати відсотки від вашої криптовалюти, вкладаючи її та спостерігаючи за зростанням ваших коштів у реальному часі. Навіть зараз відсоткові ставки набагато вищі, ніж ви можете отримати в місцевому банку (якщо вам ще пощастило мати доступ до його послуг). Ось приклад: - -- Ви вкладаєте свої 100 Dai ([стейблкоїни](/stablecoins/)), наприклад, у продукт Aave. -- Ви отримуєте 100 Aave Dai (aDai) — це токен, що відповідає вашим вкладеним монетам Dai. -- aDai зростатиме залежно від відсоткових ставок, і ви зможете побачити підвищення балансу у вашому гаманці. Залежно від річної відсоткової ставки на балансі вашого гаманця за декілька днів або навіть годин уже буде 100,1234 aDai! -- У будь-який момент можна вивести суму звичайних монет Dai, що дорівнює балансу aDai. - - - Ознайомитися з децентралізованими програмами для вкладення - - -#### Безпрограшні лотереї {#no-loss-lotteries} - -Безпрограшні лотереї, як-от PoolTogether, — цікавий та інноваційний спосіб заощадження. - -- Ви купуєте 100 лотерейних білетів за 100 токенів Dai. -- Ви отримуєте 100 plDai, які відповідають вашим 100 білетам. -- Якщо один із ваших білетів стане виграшним, до вашого балансу plDai додасться сума призового фонду. -- Якщо ви не виграєте, усі 100 plDai перейдуть у розіграш наступного тижня. -- У будь-який момент можна вивести суму звичайних монет Dai, що дорівнює балансу plDai. - -Призовий фонд формується з усіх відсотків, отриманих від вкладених коштів у білети, як у наведеному вище прикладі вкладення. - - - Спробувати PoolTogether - - - - -### Обмін токенів {#swaps} - -На Ethereum тисячі токенів. Децентралізовані біржі (DEX) дають змогу коли завгодно торгувати різноманітними токенами. Ви ніколи не втрачаєте контроль над своїми активами. Це схоже на обмін валюти під час відвідання іншої країни. Але DeFi, на відміну від звичайних обмінників, ніколи не закривається. Ринки відкриті цілодобово, а технологія створена так, що завжди знайдеться хтось, хто погодиться укласти угоду. - -Наприклад, для участі в описаній вище безпрограшній лотереї PoolTogether необхідно мати токен Dai або USDC. DEX дають змогу обміняти ETH на ці токени й назад, коли вони вам уже не будуть потрібні. - - - Ознайомитися з біржами токенів - - - - -### Просунута торгівля {#trading} - -Для трейдерів, які бажають отримати більше контролю над процесами, існують розширені функції. Доступні лімітні ордери, безстрокові контракти, маржинальна торгівля та багато інших можливостей. Завдяки децентралізованій торгівлі ви отримуєте доступ до глобальної ліквідності. Цей ринок ніколи не закривається, а ви завжди контролюєте свої активи. - -На централізованих біржах активи доводиться вносити перед торгівлею на свій страх і ризик. Внесені активи перебувають у небезпеці, оскільки централізовані біржі часто атакують хакери. - - - Ознайомитися з децентралізованими програмами для торгівлі - - - - -### Збільшення портфеля {#investing} - -На Ethereum присутні продукти для керування фондами, які можуть допомогти збільшити портфель на основі вибраної стратегії. Усе відбувається автоматизовано, відкрито й без потреби в посередництві менеджера, який отримає частку вашого прибутку. - -Хорошим прикладом є [фонд DeFi Pulse Index (DPI)](https://defipulse.com/blog/defi-pulse-index/). Цей фонд автоматично виконує повторне балансування, щоб ваш портфель завжди містив [найкращі токени DeFi відповідно до ринкової капіталізації](https://www.coingecko.com/en/defi). Вам не потрібно заглиблюватися в деталі, а вийти з фонду можна коли завгодно. - - - Ознайомитися з децентралізованими програмами для інвестицій - - - - -### Фінансування ідей {#crowdfunding} - -Ethereum — ідеальна платформа для краудфандингу. - -- Потенційні інвестори можуть з’явитися звідки завгодно: Ethereum і токени доступні будь-кому в будь-кому куточку світу. -- Процес прозорий, тож інвестори можуть перевірити зібрану кількість коштів. Навіть можна відстежити, як вони витрачатимуться в майбутньому. -- Інвестори можуть налаштувати автоматичне повернення коштів, якщо, наприклад, не було дотримано дедлайну або не вдалося зібрати мінімальну суму. - - - Ознайомитися з децентралізованими програмами для краудфандингу - - -#### Квадратичне фінансування {#quadratic-funding} - -Ethereum — це програмне забезпечення з відкритим вихідним кодом, і наразі переважна частина роботи фінансується спільнотою. Це дало поштовх для розвитку нової цікавої моделі інвестування — квадратичного фінансування. Ця модель може покращити спосіб фінансування всіх видів суспільних товарів у майбутньому. - -Квадратичне фінансування гарантує, що найбільше коштів отримують проєкти, які мають найвищий попит. Інакше кажучи, це проєкти, спрямовані на покращення умов життя більшості людей. Ось як це працює: - -1. Існує спеціальний пул для пожертвувань. -2. Починається раунд суспільного фінансування. -3. Люди можуть продемонструвати свою зацікавленість проєктом, пожертвувавши трохи грошей. -4. Після завершення раунду кошти з відповідного пулу розподіляються між проєктами. Проєкти, які мають найвищий попит, отримують найбільше грошей із відповідного пулу. - -Це означає, що проєкт A із 100 пожертвуваннями на суму 1 долар може отримати більше коштів, ніж проєкт B з одним пожертвуванням на суму 10 000 доларів (залежно від розміру відповідного пулу). - -[Докладніше про квадратичне фінансування](https://wtfisqf.com) - - - -### Страхування {#insurance} - -Мета децентралізованого страхування — зробити його дешевшим, прискорити виплати й збільшити прозорість. Завдяки більшій автоматизації страхування стає доступнішим, а виплати — значно швидшими. Дані, що використовуються для прийняття рішення щодо вашого запиту, абсолютно прозорі. - -Продукти Ethereum, як і будь-яке програмне забезпечення, можуть мати помилки й експлойти. Наразі багато страхувальних продуктів зосереджуються на захисті користувачів від втрати коштів. Однак уже з’являються проєкти, які починають страхувати від будь-яких життєвих проблем. Хорошим прикладом є страхування врожаю від Etherisc, що [має на меті захистити дрібних кенійських фермерів від збитків через засуху та повені](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc). Децентралізоване страхування може забезпечити дешевші послуги для фермерів, які часто потерпають від зависоких цін на страхування в традиційних установах. - - - Ознайомитися з децентралізованими програмами для страхування - - - - -### Агрегатори та менеджери портфелів {#aggregators} - -У середовищі, де всього так багато відбувається, вам потрібен інструмент для відстеження всіх ваших інвестицій, позик та угод. Є безліч продуктів, які дають змогу координувати всю вашу взаємодію з DeFi на єдиній платформі. У цьому вся перевага відкритої архітектури DeFi. Розробники здатні створювати інтерфейси, де можна не тільки переглядати баланси в різних продуктах, а й використовувати їх функції. Це може стати вам у пригоді під час дослідження DeFi. - - - Ознайомитися з децентралізованими програмами для портфелів - - - - -## Як працює DeFi? {#how-defi-works} - -Щоб надавати послуги без посередників, DeFi використовує криптовалюти й розумні контракти. У сучасному фінансовому світі гарантами транзакцій виступають фінансові установи. Через них проходять ваші кошти, що дає цим установам величезну владу. Крім того, мільярди людей в усьому світі навіть не мають доступу до банківських послуг. - -DeFi використовує розумні контракти, які виконують роль фінансових установ під час транзакцій. Розумний контракт — це тип рахунку Ethereum, який дає змогу зберігати кошти, надсилати й повертати їх згідно з певними умовами. Ніхто не зможе змінити розумний контракт після запуску: він завжди працюватиме так, як було запрограмовано. - -Контракт, призначений для виплати допомоги або кишенькових витрат, можна запрограмувати на надсилання коштів із рахунку A на рахунок B щоп’ятниці. І це повторюватиметься, поки на рахунку A залишатиметься потрібна сума. Ніхто не може змінити контракт і додати рахунок C як отримувача, щоб викрасти кошти. - -Контракти публічні, тож кожен може їх оглянути й перевірити. Це означає, що спільнота зможе швидко помітити скомпрометований контракт і відповідно відреагувати. - -Сьогодні варто вірити учасникам Ethereum спільноти, які розуміються на технологіях і вміють читати код. Спільнота з відкритим вихідним кодом допомагає контролювати розробників, але з часом потреба в цьому зменшиться, адже розумні контракти стане легше читати, а для перевірки коду з’являться інші способи. - -## Ethereum і DeFi {#ethereum-and-defi} - -Ethereum являє собою ідеальний фундамент для DeFi із кількох причин. - -- Ethereum і запущені розумні контракти нікому не належать, тому кожен має можливість використовувати DeFi. Це також означає, що ніхто не може змінити правила стосовно вас. -- Усі продукти DeFi насправді працюють на основі Ethereum. Тому багато з них можна легко налаштувати на спільну роботу. Ви можете позичати токени на одній платформі, а обмінювати їх під відсотки вже на іншому ринку та в зовсім іншій програмі. Це схоже на можливість обміну балів лояльності в банку на готівку. -- Токени та криптовалюта вписані в блокчейн Ethereum, а загальний реєстр, що відстежує транзакції та право власності, — одна з унікальних особливостей Ethereum. -- Ethereum допомагає досягти фінансової свободи. Більшість продуктів ніколи не захоплять ваші кошти, адже надають вам повний контроль над ними. - -DeFi можна розділити на рівні: - -1. Блокчейн. Ethereum містить історію транзакцій і стан рахунків. -2. Активи. [ETH](/eth/) та інші токени (валюти). -3. Протоколи. [Смартконтракти](/glossary/#smart-contract) забезпечують надання послуг, як-от децентралізоване вкладення активів. -4. [Програми](/dapps/). Продукти, які використовуються для керування й отримання доступу до протоколів. - -## Розбудова DeFi {#build-defi} - -DeFi — це ініціатива з відкритим вихідним кодом. Усі протоколи та програми DeFi відкриті для перевірок, розгалужень і впровадження інновацій. Завдяки цьому багаторівневому стеку (адже на всіх рівнях використовується той самий базовий блокчейн і активи) протоколи можна поєднувати й зіставляти, створюючи унікальні комбінації з новими можливостями. - - - Докладніше про децентралізовані програми для розбудови - - -## Довідкові ресурси {#futher-reading} - -### Інформація про DeFi {#defi-data} - -- [DeFi Prime](https://defiprime.com/) -- [DeFi Llama](https://defillama.com/) -- [DeFi Rate](https://defirate.com/) - -### Статті про DeFi {#defi-articles} - -- [Посібник із роботи з DeFi для початківців](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) — _Сід Коельо-Прабху, 6 січня 2020 р._ - -### Відео {#videos} - -- [Finematics — навчання децентралізованим фінансам](https://finematics.com/) — _Відео про DeFi_ -- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) — _Основи DeFi: усе, що потрібно знати для початку роботи в цьому незрозумілому середовищі._ -- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) — _Що таке DeFi?_ - -### Спільноти {#communities} - -- [DeFi Llama (сервер на Discord)](https://discord.gg/buPFYXzDDd) -- [DeFi Pulse (сервер на Discord)](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/uk/desci/index.md b/src/content/translations/uk/desci/index.md deleted file mode 100644 index febb80aa341..00000000000 --- a/src/content/translations/uk/desci/index.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: Децентралізована наука (DeSci) -description: Огляд децентралізованих наук на Ethereum -lang: uk -template: use-cases -emoji: ":microscope:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Глобальна, відкрита альтернатива сучасній науковій системі. -summaryPoint2: Технологія, яка дає вченим змогу отримувати фінансування, проводити експерименти, ділитися даними, поширювати аналітику тощо. -summaryPoint3: Засновано на русі за відкриту науку. ---- - -## Що таке децентралізована наука (DeSci)? {#what-is-desci} - -Децентралізована наука (DeSci) — це рух, який має на меті побудувати громадську інфраструктуру для фінансування, створення, перевірки, кредитування, зберігання та поширення наукових знань на справедливій і рівноправній основі за допомогою стека Web3. - -DeSci має на меті створити екосистему, у якій учені зацікавлені в тому, щоб відкрито ділитися своїми дослідженнями, й отримують нагороду за свою роботу, і водночас дають кожному змогу легко отримати доступ до досліджень і активно робити свій внесок у них. DeSci відтворює ідею, що наукові знання мають бути доступними всім і що процес наукових досліджень має бути прозорим. DeSci створює більш децентралізовану й розподілену модель наукових досліджень, роблячи її стійкішою до цензури й контролю з боку центральних органів влади. DeSci намагається створити середовище, у якому нові й нетрадиційні ідеї можуть процвітати, децентралізуючи доступ до фінансування, наукових інструментів і каналів зв’язку. - -Децентралізована наука дає змогу використовувати різноманітніші джерела фінансування (від [DAOs](/dao/), [квадратичних пожертвувань](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=2003531) до краудфандингу тощо), доступніші дані й методи доступу, а також надання заохочень за відтворюваність. - -### Хуан Бенет — Рух DeSci - - - -## Як DeSci покращує науку {#desci-improves-science} - -Неповний перелік ключових проблем у науці та те, як децентралізована наука може допомогти у розв’язанні цих проблем - -| **Децентралізована наука** | **Традиційна наука** | -| --------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | -| Розподіл коштів визначається спільнотою з використанням таких механізмів, як квадратичні пожертви або DAO. | Малі, закриті, централізовані групи контролюють розподіл коштів. | -| Ви співпрацюєте з колегами з усього світу в динамічних командах. | Фінансові організації та домашні установи обмежують вашу співпрацю. | -| Рішення про фінансування приймаються онлайн і прозоро. Досліджуються нові механізми фінансування. | Рішення про фінансування приймаються упродовж тривалого часу й мають обмежену прозорість. Існує мало механізмів фінансування. | -| Спільне використання лабораторних послуг стає простішим і прозорішим завдяки використанню примітивів Web3. | Спільне використання лабораторних ресурсів зазвичай є повільним і непрозорим. | -| Для довіри, прозорості й загального доступу може бути розроблено нові моделі публікації, які використовують примітиви Web3. | Ви публікуєте через усталені шляхи, які часто визнаються неефективними, упередженими й експлуататорськими. | -| Ви можете заробити токени й репутацію за рецензування роботи. | Ваша рецензована робота не оплачується, а тільки приносить користь комерційним видавцям. | -| Ви володієте інтелектуальною власністю (ІВ), яку створюєте й поширюєте відповідно до прозорих умов. | Ваша домашня установа володіє створеною вами інтелектуальною власністю (ІВ). Доступ до інтелектуальної власності не є прозорим. | -| Обмін усіма дослідженнями, зокрема даними про невдалі спроби, шляхом розміщення всіх кроків у блокчейні. | Упередженість видання означає, що дослідники схильніші ділитися експериментами, які мають успішні результати. | - -## Ethereum і DeSci {#ethereum-and-desci} - -Децентралізована наукова система вимагає надійної безпеки, мінімальних грошових і транзакційних витрат, а також багатої екосистеми для розробки програм. Ethereum надає все необхідне для створення децентралізованого наукового стека. - -## Варіанти використання DeSci {#use-cases} - -DeSci розробляє набір наукових інструментів для включення академічних кіл Web2 до цифрового світу. Нижче наведено приклади варіантів використання, які Web3 може запропонувати науковій спільноті. - -### Публікація {#publishing} - -Публікація наукової інформації є проблемною, оскільки нею керують видавництва, які покладаються на безоплатну працю вчених, рецензентів і редакторів для створення статей, але потім стягують непомірну плату за публікацію. Спільнота, яка зазвичай опосередковано оплачує роботу й витрати на публікацію через оподаткування, часто не може отримати доступ до тієї самої роботи, повторно не заплативши видавцеві. Загальна сума гонорарів за публікацію окремих наукових робіт часто становить п’ятизначну цифру ($USD), що підриває всю концепцію наукових знань як [суспільного блага](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 має потенціал розірвати цю несправну модель фінансування, експериментуючи з різними моделями стимулювання, розробленими DAO та 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} - -Інтелектуальна власність (ІВ) є великою проблемою в традиційній науці: від того, що вона застрягла в університетах або залишається не використаною в біотехнологічних компаніях, до того, що її важко оцінити. Проте володіння цифровими активами (як-от наукові дані або статті) є тим, що Web3 робить надзвичайно добре, використовуючи[невзаємозамінні токени (NFT)](/nft/). - -Так само як NFT можуть передавати дохід від майбутніх транзакцій початковому творцю, ви можете встановити прозорі ланцюжки атрибуції вартості для винагороди дослідників, управлінських органів (наприклад, DAO) або навіть суб'єктів, чиї дані збираються. - -[Токени IP-NFT](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) можуть також виконувати функцію ключа до децентралізованого сховища даних досліджень, що проводяться, і підключатися до NFT і фінансування [DeFi](/defi/) (від фракціонування до пулів кредитування та оцінки вартості). Це також дає сутностям, що перебувають на ланцюжку, як-от DAO (наприклад, [VitaDAO](https://www.vitadao.com/)), здійснювати дослідження безпосередньо на ланцюжку. Поява непередаваних [токенів soulbound](https://vitalik.ca/general/2022/01/26/soulbound.html) також може відігравати важливу роль у DeSci, даючи людям змогу засвідчувати свій досвід і облікові дані, пов'язані з їхньою адресою Ethereum. - -### Зберігання й архітектура даних і доступ до них {#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 підтримують вищеописані сценарії та створюють основу для дійсно відкритої науки, де дослідники можуть створювати громадські блага без обмежень щодо доступу чи оплати. Рішення публічних даних Web3, як-от IPFS, Arweave і Filecoin, є оптимізованими для децентралізації. Наприклад, dClimate забезпечує універсальний доступ до кліматичних і погодних даних, зокрема даних із метеостанцій і прогностичних кліматичних моделей. - -## Долучитися {#get-involved} - -Досліджуйте проєкти та приєднуйтесь до спільноти DeSci. - -- [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: складіть білок in-silico](https://alphafodl.vercel.app/) -- [dClimate API: запитуйте кліматичні дані, зібрані децентралізованою спільнотою](https://api.dclimate.net/) -- [DeSci Foundation: конструктор інструментів публікації DeSci](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: складіть білок in-silico](https://alphafodl.vercel.app/) -- [Bio.xyz: отримуйте фінансування для свого біотехнологічного проєкту DAO або DeSci](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) -- [Active Inference Lab: лабораторія активного узагальнення](https://www.activeinference.org/) -- [CureDAO: суспільна платформа точної охорони здоров'я](https://docs.curedao.org/) -- [IdeaMarkets: платформа, яка дає змогу забезпечувати децентралізовану наукову довіру](https://ideamarket.io/) -- [DeSci Labs](https://www.desci.com/) - -Ми раді отримати пропозиції щодо нових проєктів, якими можна поповнити наш перелік. Спершу ознайомтеся з [нашою політикою розміщення в переліку](/contributing/adding-desci-projects/)! - -## Довідкові джерела {#further-reading} - -- [DeSci Wiki від Jocelynn Pearl і Ultrarare](https://docs.google.com/document/d/1aQC6zn-eXflSmpts0XGE7CawbUEHwnL6o-OFXO52PTc/edit#) -- [Посібник із децентралізованої біотехнології від Джоселін Перл для ресурсу Future венчурного фонду a16z](https://future.a16z.com/a-guide-to-decentralized-biotech/) -- [Аргументи на користь DeSci](https://gitcoin.co/blog/desci-the-case-for-decentralised-science/) -- [Посібник із DeSci](https://future.com/what-is-decentralized-science-aka-desci/) -- [Децентралізовані наукові ресурси](https://www.vincentweisser.com/decentralized-science) -- [Biopharma IP-NFTs від Molecule - Технічний опис](https://molecule.to/blog/molecules-biopharma-ip-nfts-a-technical-description) -- [Побудова систем, що не потребують довіри, у науці. Автор: Джон Старр](https://medium.com/@jringo/building-systems-of-trustless-science-1cd2d072f673) -- [Зародження DAO в галузі біотехнологій](https://molecule.to/blog/the-emergence-of-biotech-daos) -- [Пол Колхаас — DeSci: майбутнє децентралізованої науки (подкаст)](https://anchor.fm/andrew-steinwold/episodes/Paul-Kohlhaas---DeSci-The-Future-of-Decentralized-Science---Zima-Red-ep-117-e1h683a) -- [Онтологічний підхід з використанням концепції активного висновку (Active Inference) для децентралізованої науки: від ситуативного надання змістовності до епістемічних спільнот](https://zenodo.org/record/6320575) -- [DeSci: майбутнє досліджень. Самуель Акіношо](https://lucidsamuel.medium.com/desci-the-future-of-research-b76cfc88c8ec) -- [Фінансування науки (епілог: DeSci і нові криптовалютні примітиви). Автор: Надія](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) -- [Хуан Бенет — DeSci, незалежні лабораторії та широкомасштабна наука про дані](https://www.youtube.com/watch?v=zkXM9H90g_E) -- [Себастьян Бронекатер — Як DeSci може трансформувати біомедичні дослідження й венчурний капітал](https://www.youtube.com/watch?v=qB4Tc3FcVbM) diff --git a/src/content/translations/uk/nft/index.md b/src/content/translations/uk/nft/index.md deleted file mode 100644 index ba91a45c03a..00000000000 --- a/src/content/translations/uk/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Невзаємозамінні токени (NFT) -description: Огляд NFT на Ethereum -lang: uk -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: Логотип Eth відображається за допомогою голограми. -summaryPoint1: Спосіб представити що-небудь унікальне як актив на основі Ethereum. -summaryPoint2: Завдяки NFT у творців контенту з’являється більше можливостей, ніж будь-коли раніше. -summaryPoint3: На основі смартконтрактів блокчейну Ethereum. ---- - -## Що таке NFT? {#what-are-nfts} - -NFT — це токени, кожен екземпляр яких є унікальним. Кожен NFT має різні властивості (невзаємозамінні) і є доказово дефіцитним. У цьому полягає відмінність від токенів, як-от ERC-20s, де кожен токен у наборі ідентичний і має однакові властивості («взаємозамінний»). Вам однаково, який саме долар у вас є в гаманці, оскільки всі вони ідентичні й коштують однаково. Однак вам _не однаково_, яким саме NFT ви володієте, оскільки всі вони мають індивідуальні властивості, які відрізняють їх від інших («невзаємозамінні»). - -Унікальність кожного NFT дає змогу токенізувати такі речі, як мистецтво, колекціонування або навіть нерухомість, де один конкретний унікальний NFT представляє якийсь конкретний елемент із цифрового або реального світу. Право власності на актив захищене блокчейном Ethereum — ніхто не може змінити запис про право власності або скопіювати/вставити новий NFT. - - - -## Інтернет активів {#internet-of-assets} - -За допомогою NFT й Ethereum можна позбутися деяких проблем, які існують в Інтернеті сьогодні. Оскільки все стає більш цифровим, з’являється потреба в реплікації властивостей фізичних предметів, як-от рідкісність, унікальність і підтвердження права власності так, щоб це не контролювалося центральною організацією. Наприклад, з NFT, ви можете володіти музикальним файлом mp3, який не є специфічним для конкретної музичної програми однієї компанії, або ви можете володіти соціальними мережами, які ви можете продати або обміняти, але вони не можуть бути довільно відібрані у вас постачальником платформи. - -Розгляньмо, як виглядає Інтернет NFT в порівнянні з Інтернетом, яким сьогодні користується більшість. - -### Порівняння {#nft-comparison} - -| Інтернет NFT | Інтернет сьогодення | -| ----------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | -| Ви володієте своїми активами! Тільки ви можете продати або обміняти їх. | Ви орендуєте актив у якоїсь організації. | -| Токени NFT унікальні в цифровій формі. Двох однакових NFT не існує. | Копію сутності (обʼєкту) часто не можна відрізнити від оригіналу. | -| Право власності на NFT зберігається в блокчейні, щоб будь-хто міг його перевірити. | Записи про авторські права на цифрові об’єкти зберігаються на серверах під контролем установ, яким доводиться вірити на слово. | -| NFT — це смартконтракти на Ethereum. Це означає, що їх можна легко використовувати в інших смартконтрактах і програмах на Ethereum! | Компанії із цифровими об’єктами зазвичай вимагають власної «захищеної» інфраструктури. | -| Творці контенту можуть продавати свої роботи будь-де й отримати доступ до світового ринку. | Творці покладаються на інфраструктуру й аудиторію платформ, якими користуються. Вони часто залежать від умов використання та географічних обмежень. | -| Творці NFT можуть зберігати права власності на власну роботу, а також програмувати роялті (гонорари) безпосередньо в контракті NFT. | Платформи, як-от сервіси потокової музики, отримують більшу частину прибутків від продажу. | - -## Як працюють NFT? {#how-nfts-work} - -Як і будь-який токен, виданий на Ethereum, NFT видаються за допомогою смартконтракту. Смартконтракт відповідає одному з кількох стандартів NFT (зазвичай ERC-721 або ERC-1155), які визначають, які функції має контракт. Контракт може створювати («карбувати») NFT і призначати їх конкретному власнику. Право власності визначається в контракті шляхом пов’язування конкретних NFT з конкретними адресами. NFT має ідентифікатор і зазвичай метадані, пов’язані з ним, які роблять конкретний токен унікальним. - -Коли хтось створює або карбує NFT, вони насправді виконують функцію в смартконтракті, яка призначає конкретний NFT на їхню адресу. Ця інформація зберігається в сховищі контракту, яке є частиною блокчейну. Творець контракту може записувати додаткову логіку в контракт, наприклад, обмежуючи загальну пропозицію (постачання) або визначаючи роялті (гонорари), які будуть виплачуватися творцю щоразу, коли токен передається. - -## Для чого використовуються токени NTF? {#nft-use-cases} - -NFT використовуються для багатьох речей, зокрема: - -- підтвердження вашої участі в заході; -- підтвердження того, що ви завершили курс; -- володіння предметами для ігор; -- цифрове мистецтво; -- токенізація активів у реальному світі; -- підтвердження вашої особи в Інтернеті; -- надання доступу до контенту; -- виписування квитка; -- децентралізовані доменні імена в Інтернеті; -- як застава в децентралізованих фінансах (DeFi). - -Можливо, ви художник, який хоче поділитися своїми роботами за допомогою NFT, не втрачаючи контролю і не жертвуючи своїми прибутками через посередників. Ви можете створити новий контракт і вказати кількість NFT, їхні властивості й посилання на певний витвір мистецтва. Як художник ви можете запрограмувати в смартконтракті гонорари, які будуть вам виплачені (наприклад, перевести 5 % від ціни продажу на контракт власника за кожного переказу NFT). Ви також завжди можете довести, що створили ці NFT, оскільки ви володієте гаманцем, який розмістив контракт. Ваші покупці можуть легко довести, що вони володіють справжнім NFT з вашої колекції, оскільки адреса їхнього гаманця пов'язана з токеном у вашому смартконтракті. Вони можуть використовувати його в екосистемі Ethereum і бути впевненими в його автентичності. - -Або уявіть квиток на спортивний захід. Як організатор заходу може вибрати кількість квитків для продажу, так і творець токена NFT може вирішити, скільки існуватиме його примірників. Іноді це точні примірники, як-от 5000 звичайних квитків для входу. Іноді карбуються кілька схожих, але дещо відмінних, як-от квитки з призначеним місцем. Їх можна купити й продати однорангово без оплати за послуги продавцям квитків, і покупець завжди має гарантію справжності квитка, перевіряючи адресу контракту. - -На ethereum.org NFT використовуються для демонстрації того, що люди зробили свій внесок у наш репозиторій Github або відвідували дзвінки, і у нас навіть є власне доменне ім’я NFT. Якщо ви долучилися до ethereum.org, можете отримати NFT протоколу POAP. Деякі криптозустрічі використовували POAP як квитки. [Докладніше про участь](/contributing/#poap). - -![Протокол POAP ethereum.org](./poap.png) - -Цей сайт має альтернативне доменне ім’я на основі NFT: **ethereum.eth**. Наша адреса `.org` центрально керується постачальником системи доменних імен (DNS), тоді як адресу ethereum`.eth` зареєстровано на платформі Ethereum за допомогою служби імен Ethereum (ENS). Володіємо й керуємо ним ми. [Переглянути наші записи ENS](https://app.ens.domains/name/ethereum.eth) - -[Докладніше про ENS](https://app.ens.domains) - - - -### Безпека NFT {#nft-security} - -Безпека Ethereum ґрунтується на доказі частки. Система покликана економічно дестимулювати зловмисні дії, роблячи Ethereum стійкою до підробок. Завдяки цьому існують NFT. Щойно блок, що містить вашу NFT-транзакцію, стане фіналізованим, його зміна коштуватиме зловмиснику мільйони ETH. Кожен, хто працює з програмним забезпеченням Ethereum, зможе негайно виявити нечесне втручання в NFT, а зловмисника буде економічно покарано й видалено. - -Проблеми безпеки під час використання NFT найчастіше пов’язані з фішинговими шахрайствами, уразливістю смартконтрактів або помилками користувачів (наприклад, ненавмисне розкриття приватних ключів), що робить належну безпеку гаманців критично важливою для власників NFT. - - - Більше про безпеку - - -## Довідкові джерела {#further-reading} - -- [Посібник із NFT для початківців](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) — _Лінда Се, січень 2020 року_ -- [Трекер EtherscanNFT](https://etherscan.io/nft-top-contracts) -- [Стандарт токену ERC-721](/developers/docs/standards/tokens/erc-721/) -- [Стандарт токену ERC-1155](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/uk/refi/index.md b/src/content/translations/uk/refi/index.md deleted file mode 100644 index b86e8d2c33c..00000000000 --- a/src/content/translations/uk/refi/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: Регенеративні фінанси (ReFi) -description: Огляд ReFi і його поточних варіантів використання. -lang: uk -template: use-cases -emoji: ":recycle:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: Альтернативна економічна система, побудована на регенеративних принципах -summaryPoint2: Спроба використати Ethereum для вирішення глобальних координаційних криз, як-от зміна клімату -summaryPoint3: Інструмент для радикального масштабування екологічно вигідних активів, як-от перевірені вуглецеві кредити ---- - -## Що таке ReFi? {#what-is-refi} - -**Регенеративне фінансування (ReFi)** — це набір інструментів та ідей, побудованих поверх блокчейнів, які спрямовані на створення економік, які є регенеративними, а не екстрактивними або експлуататорними. Зрештою, екстрактивні системи виснажують наявні ресурси й падають; без регенеративних механізмів їм не вистачає стійкості. ReFi працює на припущенні, що створення грошової вартості необхідно відокремити від нестійкого видобутку ресурсів з нашої планети й громад. - -Замість цього ReFi прагне вирішити екологічні, комунальні або соціальні проблеми шляхом створення регенеративних циклів. Ці системи створюють цінність для учасників, одночасно користуючись екосистемами та громадами. - -Однією з основ ReFi є концепція регенеративної економіки, започаткована Джоном Фуллертоном із [Capital Institute](https://capitalinstitute.org). Він запропонував вісім взаємопов’язаних принципів, які лежать в основі здоров’я системи: - -![Вісім взаємопов’язаних принципів](../../assets/use-cases/refi-regenerative-economy-diagram.png) - -Проєкти ReFi реалізують ці принципи, використовуючи [смартконтракти](/developers/docs/smart-contracts/) та [децентралізовані фінанси (DeFi)](/defi/) у формі програм для стимулювання регенеративної поведінки, як-от відновлення деградованих екосистем, і полегшення масштабної співпраці з таких глобальних питань, як зміна клімату й утрата біорізноманіття. - -ReFi також перетинається з [децентралізованою наукою (DeSci)](/desci/) — рухом, який використовує Ethereum як платформу для фінансування, створення, огляду, кредитування, зберігання та поширення наукових знань. Інструменти DeSci можуть стати корисними для розробки стандартів і практик, що піддаються перевірці, для впровадження та моніторингу регенеративної діяльності, як-от посадка дерев, видалення пластику з океану або відновлення деградованої екосистеми. - -## Токенізація вуглецевих кредитів {#tokenization-of-carbon-credits} - -**[Добровільний ринок вуглецю (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** — це механізм фінансування проєктів, які чинять перевірений позитивний вплив на викиди вуглецю, зменшують поточні викиди або видаляють парникові гази, вже випущені з атмосфери. Ці проєкти отримують актив під назвою «вуглецеві кредити» після їх перевірки, які вони можуть продати приватним особам і організаціям, які хочуть підтримати заходи з протидії зміни клімату. - -На додаток до VCM, існують також кілька уповноважених урядом ринків вуглецю («ринки відповідності»), які мають на меті встановити ціну вуглецю за допомогою законів або нормативних актів у межах певної юрисдикції (наприклад, країни або регіону), контролюючи постачання дозволів для розподілу. Ринки відповідності стимулюють забруднювачів у межах своєї юрисдикції скорочувати викиди, але вони не здатні видаляти парникові гази, які вже були випущені. - -Попри свій розвиток протягом останніх десятиліть, VCM продовжує страждати від низки проблем: - -1. Сильно фрагментована ліквідність -2. Непрозорі механізми транзакцій -3. Високі комісії -4. Дуже повільна швидкість торгівлі -5. Відсутність масштабованості - -Перехід VCM на новий **цифровий ринок вуглецю (DCM)** на основі блокчейну може бути можливістю оновити чинну технологію для перевірки, реалізації та споживання вуглецевих кредитів. Блокчейни дають змогу публічно перевіряти дані, уможливлюють доступ для широкого кола користувачів і більше ліквідності. - -Проєкти ReFi використовують технологію блокчейн, щоб полегшити багато проблем традиційного ринку: - -- **Ліквідність зосереджена в невеликій кількості пулів ліквідності**, якими може вільно торгувати будь-хто. Великі організації, а також окремі користувачі можуть використовувати ці пули без ручного пошуку продавців/покупців, плати за участь або попередньої реєстрації. -- **Усі транзакції реєструються на публічних блокчейнах**. Шлях, який кожен вуглецевий кредит приймає через торговельну активність, простежується назавжди, щойно він доступний у DCM. -- **Швидкість транзакцій майже миттєва**. Процес забезпечення великої кількості вуглецевих кредитів через застарілі ринки може тривати кілька днів або тижнів, водночас у DCM це може бути досягнуто за кілька секунд. -- **Торгова активність відбувається без посередників**, які стягують високі збори. Цифрові вуглецеві кредити являють собою [поліпшення витрат на 62 % порівняно з еквівалентними традиційними кредитами](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne), згідно з даними однієї аналітичної фірми. -- **DCM масштабується** і може задовольнити вимоги як приватних осіб, так і транснаціональних корпорацій. - -### Ключові компоненти DCM {#key-components-dcm} - -Чотири основні компоненти складають нинішній ландшафт DCM: - -1. Реєстри, як-от [Verra](https://verra.org/project/vcs-program/registry-system/) і [>Gold Standard](https://www.goldstandard.org/) гарантують надійність проєктів, що створюють вуглецеві кредити. Вони також керують базами даних, у яких цифрові кредити вуглецю зʼявляються і можуть бути передані або використані (звільнені). - -Існує нова хвиля інноваційних проєктів, побудованих на блокчейнах, які намагаються посунути позиції лідерів цієї галузі. - -2. Вуглецеві мости, так звані токенайзери, забезпечують технологію представлення або передавання вуглецевих кредитів із традиційних реєстрів до DCM. Відомими прикладами є [Toucan Protocol](https://toucan.earth/), [C3](https://c3.app/) і [Moss.Earth](https://moss.earth/). -3. Інтегровані послуги пропонують кредити на уникнення викидів вуглецю та/або видалення викидів кінцевим користувачам, щоб вони могли претендувати на екологічну користь кредиту й поділитися з усім світом своєю підтримкою заходів із боротьби зі зміною клімату. - -Деякі, як-от [Klima Infinity](https://www.klimadao.finance/infinity) і [Senken](https://senken.io/), пропонують широкий спектр проєктів, розроблених третіми особами й виданих за встановленими стандартами, як-от Verra; інші, наприклад [Nori](https://nori.com/), пропонують лише конкретні проєкти, розроблені під свій власний вуглецевий кредитний стандарт, який вони видають і для якого вони мають свій власний спеціалізований ринок. - -4. Базові рейки й інфраструктура, які сприяють розширенню впливу й ефективності всього ланцюжка постачання вуглецевого ринку. [KlimaDAO](http://klimadao.finance/) забезпечує ліквідність як суспільне благо (даючи будь-кому змогу купувати або продавати вуглецеві кредити за прозорою ціною), стимулює збільшення пропускної здатності вуглецевих ринків і видалення з винагородами, а також забезпечує зручний сумісний інструментарій для доступу до даних про широкий спектр токенізованих вуглецевих кредитів, а також їх придбання і видалення. - -## ReFi за межами вуглецевих ринків {#refi-beyond} - -Хоча нині багато уваги приділяється ринкам вуглецю загалом і переходу з VCM до DCM зокрема в межах простору, термін «ReFi» не обмежується виключно вуглецем. Можуть бути розроблені й токенізовані інші екологічні активи за межами вуглецевих кредитів, що означатиме, що інші негативні зовнішні впливи також можуть бути оцінені на базових рівнях майбутніх економічних систем. Крім того, регенеративний аспект цієї економічної моделі може бути застосований і до інших галузей, як-от фінансування суспільних благ через квадратичні платформи фінансування на кшталт [Gitcoin](https://gitcoin.co/). Організації, які є побудованими на ідеї відкритої участі та справедливого розподілу ресурсів, дають кожному змогу спрямовувати гроші на програмні проєкти з відкритим кодом, а також освітні, екологічні та громадські проєкти. - -Зміщуючи напрямок руху капіталу від екстрактивних практик до регенеративного потоку, проекти й компанії, які забезпечують соціальні, екологічні або комунальні вигоди (і які можуть не досягти фінансування в традиційних фінансах), можуть зрушити з місця й генерувати позитивні зовнішні ефекти для суспільства набагато швидше і легше. Перехід до цієї моделі фінансування також відчиняє двері до набагато інклюзивніших економічних систем, де представники всіх демографічних груп можуть стати активними учасниками, а не просто пасивними спостерігачами. ReFi пропонує бачення Ethereum як механізму координації дій з екзистенційних проблем, що стоять перед нашим видом і всім життям на нашій планеті, — як базового рівня нової економічної парадигми, що уможливлює більш інклюзивне та стійке майбутнє на прийдешні століття. - -## Додаткова література про ReFi - -- [Огляд вуглецевих валют високого рівня та їхнє місце в економіці](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) -- [Міністерство майбутнього — роман, що зображує роль валюти, закріпленої за вуглецем, у боротьбі зі зміною клімату](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) -- [Докладний звіт Taskforce із масштабування добровільних ринків вуглецю](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) -- [Запис Кевіна Овоцького й Евана Міязоно в Глосарії CoinMarketCap про ReFi](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/uk/roadmap/beacon-chain/index.md b/src/content/translations/uk/roadmap/beacon-chain/index.md deleted file mode 100644 index a80bd803197..00000000000 --- a/src/content/translations/uk/roadmap/beacon-chain/index.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: Beacon Chain -description: Дізнайтеся про Beacon Chain — оновлення, за якого платформа Ethereum перейшла на модель доказу частки. -lang: uk -template: upgrade -image: ../../../../../assets/upgrades/core.png -summaryPoint1: Запуск Beacon Chain приніс в екосистему Ethereum модель доказу частки. -summaryPoint2: У вересні 2022 року здійснено об’єднання з оригінальним ланцюгом Ethereum, що працював за моделлю підтвердження роботи. -summaryPoint3: З Beacon Chain у системі з’явився протокол логіки консенсусу та поширення блоків, який наразі захищає Ethereum. ---- - - - Beacon Chain було запущено 1 грудня 2020 року, а модель доказу частки стала офіційним механізмом консенсусу Ethereum після оновлення The Merge, яке відбулося 15 вересня 2022 року. - - -## Що таке Beacon Chain? {#what-is-the-beacon-chain} - -Beacon Chain — назва оригінального блокчейну з моделлю доказу частки, який було запущено у 2020 році. Його було створено для забезпечення стабільної та екологічної роботи логіки консенсусу з моделлю доказу частки, перш ніж її буде впроваджено в головній мережі Ethereum. Тому він функціонував паралельно з оригінальною мережею Ethereum із підтвердженням роботи. Для переходу Ethereum із моделі підтвердження роботи на модель доказу частки потрібно було навчити Beacon Chain приймати транзакції від оригінального ланцюга Ethereum, групувати їх у блоки й організовувати в блокчейн за допомогою механізму консенсусу на основі доказу частки. Водночас оригінальні клієнти Ethereum вимкнули майнінг і логіку консенсусу та поширення блоків, передавши всі ці функції в Beacon Chain. Ця подія мала назву [The Merge](/roadmap/merge/). Після The Merge більше немає двох блокчейнів, лишився лише один ланцюг Ethereum із моделлю доказу частки. - -## Що відбулося після запуску Beacon Chain? {#what-does-the-beacon-chain-do} - -Назва «Beacon Chain» застосовувалася до реєстру облікових записів, що моніторили та координували мережу [стейкерів](/staking/) Ethereum, перш ніж вони почали валідувати справжні транзакції Ethereum. Він не обробляв транзакції та не керував роботою смартконтрактів. - -Цей блокчейн запровадив механізм консенсусу (або «рівень консенсусу»), що замінив майнінг, який проводився в Ethereum за використання моделі підтвердження роботи, і це призвело до багатьох важливих покращень. - -Beacon Chain був необхідним компонентом для [безпеки, екологічності й масштабування Ethereum, які ми маємо сьогодні](/roadmap/vision/). - -## Вплив Beacon Chain {#beacon-chain-features} - -### Про стейкінг {#introducing-staking} - -Завдяки Beacon Chain в Ethereum з’явилася модель [доказу частки](/developers/docs/consensus-mechanisms/pos/). Це дає змогу захищати Ethereum і допомагає валідаторам заробляти більше ETH у процесі. На практиці процес стейкінгу передбачає виставляння ETH для активації програмного забезпечення валідатора. Стейкер запускає програмне забезпечення, що створює нові блоки в ланцюгу та здійснює їх валідацію. - -Стейкінг виконує функцію, схожу на ту, яку мав [майнінг](/developers/docs/mining/), але ці процеси відрізняються в багатьох аспектах. Майнінг потребував високих попередніх витрат, як-от потужного апаратного забезпечення та великої кількості енергії, що призвело до економії масштабів і просування централізації. Майнінг також не вимагав фіксування додаткових активів, що обмежувало здатність протоколу карати зловмисників після атак. - -Завдяки переходу на модель доказу частки мережа Ethereum стала набагато безпечнішою та більш децентралізованою, як порівняти з періодом використання моделі підтвердження роботи. Що більше людей беруть участь у мережі, то більш децентралізованою та захищеною від атак вона стає. - - - Якщо ви хочете стати валідатором і допомагати захистити Ethereum, дізнайтеся більше про стейкінг. - - -### Налаштування для сегментування {#setting-up-for-sharding} - -З моменту об’єднання Beacon Chain і оригінальної головної мережі Ethereum спільнота Ethereum почала шукати способи масштабування мережі. - -Перевага моделі доказу частки — наявність реєстру всіх затверджених генераторів блоків, доступ до якого можна отримати в будь-який момент, з частками у вигляді ETH. Цей реєстр формує підґрунтя для здатності розділяти й володарювати, водночас надійно розподіляючи конкретні зобов’язання в мережі. - -Це зобов’язання суперечить моделі підтвердження роботи, коли в майнерів немає обов’язків перед мережею: вони можуть припинити майнінг і відразу повністю вимкнути програмне забезпечення вузла без жодних наслідків для себе. Немає також реєстру відомих пропозицій блоків і надійного та безпечного способу розділяти зобов’язання в мережі. - -[Докладніше про сегментування](/roadmap/danksharding/) - -## Зв’язок між оновленнями {#relationship-between-upgrades} - -Усі оновлення Ethereum певним чином пов’язані. Тож пояснимо, як Beacon Chain впливає на інші оновлення. - -### Beacon Chain і The Merge {#merge-and-beacon-chain} - -Спочатку блокчейн Beacon Chain існував окремо від головної мережі Ethereum, але у 2022 році вони об’єдналися. - - - Об’єднання - - -### Сегменти даних і Beacon Chain {#shards-and-beacon-chain} - -Сегментування можливо безпечним чином запровадити в екосистемі Ethereum лише за використання механізму консенсусу на основі доказу частки. З Beacon Chain з’явився стейкінг, що «об’єднався» з головною мережею та дав можливість застосовувати сегментування для подальшого масштабування Ethereum. - - - Ланцюги сегментів даних - - -## Додаткові матеріали - -- [Детальніше про майбутні оновлення Ethereum](/roadmap/vision) -- [Детальніше про доказ частки](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/uk/roadmap/merge/index.md b/src/content/translations/uk/roadmap/merge/index.md deleted file mode 100644 index 2710507ad97..00000000000 --- a/src/content/translations/uk/roadmap/merge/index.md +++ /dev/null @@ -1,224 +0,0 @@ ---- -title: The Merge -description: Дізнайтеся про об’єднання (The Merge) — коли головна мережа Ethereum прийняла модель доказу частки. -lang: uk -template: upgrade -image: ../../../../../assets/upgrades/merge.png -summaryPoint1: Головна мережа Ethereum використовує модель доказу, але так було не завжди. -summaryPoint2: Терміном «The Merge» (об’єднання) назвали перехід від оригінального механізму підтвердження роботи до моделі доказу частки. -summaryPoint3: Наразі The Merge позначає об’єднання оригінальної головної мережі Ethereum з окремим блокчейном на основі доказу частки Beacon Chain, після чого вони стали єдиним ланцюжком. -summaryPoint4: Проведення The Merge знизило енергоспоживання Ethereum приблизно на 99,95 %. ---- - - - The Merge було виконано 15 вересня 2022 року. Ця дія завершила перехід Ethereum на модель консенсусу доказу частки, офіційно затвердивши відмову від механізму підтвердження роботи й скоротивши енергоспоживання приблизно на 99,95 %. - - -## Для позначення чого вживався термін «The Merge»? {#what-is-the-merge} - -Термін «The Merge» позначав об’єднання оригінального виконавчого рівня Ethereum (головної мережі, що існувала з [моменту створення](/history/#frontier)) з новим рівнем консенсусу доказу частки — Beacon Chain. Завдяки цьому зникла потреба в майнінгу, за якого витрачається багато енергії, і з’явилася можливість захищати мережу за допомогою стейкінгу ETH. Це був захопливий етап реалізації бачення Ethereum: перехід на вищий рівень масштабованості, безпеки та екологічності. - - - -Спочатку [Beacon Chain](/roadmap/beacon-chain/) було запущено окремо від [головної мережі](/glossary/#mainnet). Головна мережа Ethereum з усіма обліковими записами, балансами, смартконтрактами та станом блокчейну й надалі захищалася за моделлю [підтвердження роботи](/developers/docs/consensus-mechanisms/pow/), навіть під час паралельного функціонування Beacon Chain за моделлю [доказу частки](/developers/docs/consensus-mechanisms/pos/). У процесі The Merge ці дві системи нарешті об’єдналися, і модель підтвердження роботи остаточно було замінено на модель доказу частки. - -Уявіть, що мережа Ethereum — це космічний корабель, який запустили, коли він був не зовсім готовий до польоту в космос. За допомогою Beacon Chain спільноті вдалося побудувати новий двигун і міцніший корпус. Після ретельного тестування настав час замінити старий двигун новим, не перериваючи політ. У результаті наш корабель отримав новий ефективніший двигун, завдяки чому зумів подолати значно більшу кількість світлових років і кинути виклик всесвіту. - -## Об’єднання з головною мережею {#merging-with-mainnet} - -Захист головної мережі Ethereum від її створення до об’єднання (The Merge) забезпечувала модель підтвердження роботи. Це дало змогу створити в липні 2015 року блокчейн Ethereum, до якого ми всі звикли, зі знайомими функціями — транзакціями, смартконтрактами, обліковими записами тощо. - -Протягом усього існування Ethereum розробники готувалися до неминучого переходу з моделі підтвердження роботи на доказ частки. 1 грудня 2020 року було створено Beacon Chain — окремий блокчейн, що функціонував паралельно з головною мережею. - -Спочатку транзакції головної мережі не оброблялися Beacon Chain. Натомість консенсус досягався на власному стані блокчейну за узгодження активних валідаторів і балансів їхніх облікових записів. Після ґрунтовного тестування настав час для досягнення консенсусу в Beacon Chain на основі реальних даних. Після The Merge блокчейн Beacon Chain став знаряддям досягнення консенсусу для всіх мережевих даних, включно з транзакціями виконавчого рівня та балансами облікових записів. - -Процес The Merge став офіційним переходом на використання Beacon Chain як знаряддя виробництва блоків. Для виробництва чинних блоків більше не застосовується майнінг. Натомість валідатори доказу частки прийняли цю роль і зараз відповідають за обробку чинності всіх транзакцій і пропонування блоків. - -Під час The Merge не було втрачено жодної частини історії. Під час об’єднання головної мережі та Beacon Chain відбулося також об’єднання всієї історії транзакцій Ethereum. - - -Перехід на модель доказу частки змінив процедуру видання ether. Дізнайтеся більше про видання ether до та після проведення The Merge. - - -### Користувачі та власники {#users-holders} - -**Настання The Merge нічого не змінило для власників і користувачів.** - -_Повторюємо_: як користувачу або власнику ETH чи будь-яких інших цифрових активів в Ethereum, а також як стейкеру, який не є оператором вузла, **вам не потрібно нічого робити зі своїми коштами або гаманцем, щоб приєднатися до The Merge.** ETH — це лише ETH. Немає ні «старих ETH» чи «нових ETH», ні «ETH1» чи «ETH2», а гаманці працюватимуть так само, як і до The Merge. Якщо хтось говорить вам протилежне, то це, найімовірніше, шахраї. - -Попри відмову від моделі підтвердження роботи, уся історія Ethereum від моменту створення залишилася недоторканою та незміненою через перехід на доказ частки. Усі кошти, що були у вашому гаманці до The Merge, будуть доступними й після об’єднання. **Для оновлення вам не потрібно нічого робити.** - -[Детальніше про безпеку Ethereum](/security/#eth2-token-scam) - -### Оператори вузлів і розробники децентралізованих програм {#node-operators-dapp-developers} - - - -Далі описано ключові дії. - -1. Запустіть _обидва_ клієнти: консенсус-клієнт і клієнт-виконавець. Після The Merge сторонні кінцеві точки для отримання даних виконання більше не працюватимуть. -2. Автентифікуйте клієнтів-виконавців і консенсус-клієнтів за допомогою спільного секрету JWT, щоб вони могли безпечно обмінюватися даними. -3. Задайте адресу отримувача комісії, щоб отримувати зароблені чайові або максимальні суми, які можна добути (MEV), за транзакцію. - -Якщо не виконати перші дві наведені вище дії, ваш вузол відображатиметься зі статусом «офлайн», поки не буде синхронізовано й автентифіковано обидва рівні. - -Якщо не задати отримувача комісії, ваш валідатор однаково працюватиме як зазвичай, але ви не отримуватимете неспалювані чайові комісій і максимальні суми, що можна добути (MEV), які ви б могли заробляти в запропонованих вашим валідатором блоках. - - - - -До моменту The Merge клієнта-виконавця (як-от Geth, Erigon, Besu або Nethermind) було достатньо для отримання, належної валідації та поширення блоків, що передаються мережею. _Після The Merge_ чинність транзакцій у межах навантаження виконання тепер також залежить від чинності блока консенсусу, що міститься в ньому. - -У підсумку цілий вузол Ethereum тепер вимагає і клієнта-виконавця, і консенсус-клієнта. Ці два клієнти співпрацюють за допомогою нового інтерфейсу Engine API. Engine API вимагає автентифікації за допомогою секрету JWT, що надається для обох клієнтів і гарантує безпечний обмін даними. - -Далі описано ключові дії. - -— Установіть на додаток до клієнта-виконавця консенсус-клієнт. -— Автентифікуйте клієнта-виконавця та консенсус-клієнта за допомогою спільного секрету JWT, щоб гарантувати безпечний обмін даними між ними. - -Якщо не виконати наведені вище дії, ваш вузол відображатиметься зі статусом «офлайн», поки не буде синхронізовано й автентифіковано обидва рівні. - - - - - -Виконання The Merge принесло зміни до консенсусу, серед яких були зміни, пов’язані з такими елементами: - -— структура блоків; -— час формування слотів і блоків; -— зміни операційних кодів; -— джерела випадковості в ланцюжку; -— концепт _безпечної початкової частини ланцюжка_ та _завершених блоків_. - -Щоб дізнатися більше, ознайомтеся з дописом Тіма Бейко в нашому блозі [Як The Merge впливає на рівень програм в Ethereum](https://blog.ethereum.org/2021/11/29/how-the-merge-impacts-app-layer/). - - -## The Merge і споживання енергії {#merge-and-energy} - -Після The Merge принцип підтвердження роботи більше не використовуватиметься, і в мережі Ethereum розпочнеться новий етап надійнішого й екологічнішого функціонування. Споживання енергії мережею Ethereum знизилося приблизно на 99,95 %, завдяки чому Ethereum вважається екологічним блокчейном. Дізнайтеся більше про [енергоспоживання Ethereum](/energy-consumption/). - -## The Merge і масштабування {#merge-and-scaling} - -The Merge також підготує основу для подальших оновлень з огляду на масштабування, які були б неможливими за використання механізму підтвердження роботи. Такі оновлення зроблять Ethereum на крок ближче до досягнення повного масштабування, безпеки й екологічності на рівні, що відповідає [баченню Ethereum](/roadmap/vision/). - -## Хибні уявлення про The Merge {#misconceptions} - - -Існує два типи вузлів Ethereum: вузли, які можуть пропонувати блоки, і вузли, які цього не можуть. - -Вузли, що пропонують блоки, становлять невелику частину від загальної кількості вузлів у мережі Ethereum. До цієї категорії належать вузли для майнінгу, що працюють за моделлю підтвердження роботи (PoW), і вузли валідаторів, що працюють за моделлю доказу частки (PoS). Ця категорія потребує використання економічних ресурсів (як-от потужність хешування графічного процесора за моделі підтвердження роботи або стейкінг ETH за моделі доказу частки) в обмін на можливість час від часу пропонувати наступний блок і здобувати винагороди від протоколу. - -Інші вузли в мережі (тобто більшість вузлів) не потребують використання економічних ресурсів, які перевершують комп’ютер споживчого класу з доступним об’ємом пам’яті 1–2 ТБ і підключенням до Інтернету. Ці вузли не пропонують блоки, але все одно відіграють важливу роль у забезпеченні захисту мережі та стежать за всіма пропозиціями блоків, відокремлюючи нові блоки та підтверджуючи їх чинність за появи відповідно до правил консенсусу мережі. Якщо блок чинний, вузол і далі поширює його в мережі. Якщо з якої-небудь причини блок не є чинним, вузлове програмне забезпечення не сприйматиме його чинним і припинить його поширення. - -Запускати вузол, який не створює блоки, може будь-хто за використання будь-якого механізму консенсусу (підтвердження роботи або доказу частки); це _настійно рекомендується_ робити всім користувачам, якщо в них є така можливість. Запуск вузла є надзвичайно цінним для Ethereum і надає додаткові переваги особі, яка його запускає, як-от підвищений рівень безпеки, конфіденційності й протидії цензурі. - -Можливість запустити власний вузол для будь-яких користувачів є _абсолютно обов’язковою_ умовою для підтримання децентралізації мережі Ethereum. - -[Детальніше про запуск власного вузла](/run-a-node/) - - - - -Комісії на газ — це результат попиту мережі, пов’язаного з її потужністю. Після виконання The Merge модель підтвердження роботи було замінено на модель доказу частки для консенсусу, але це не викликало значних змін жодних параметрів, які безпосередньо впливають на потужність або пропускну здатність мережі. - -За наявності [плану розвитку, орієнтованого на зведення](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698) зусилля зосереджуються на масштабуванні діяльності користувачів на [рівні 2](/layer-2/), водночас перетворюючи рівень 1 головної мережі на надійний децентралізований рівень узгодження, оптимізований для зберігання зведених даних, що допоможе зробити транзакції, пов’язані зі зведенням, значно дешевшими. Перехід на модель доказу частки є важливою передумовою для усвідомлення цього. [Детальніше про газ і комісії.](/developers/docs/gas/) - - - -«Швидкість» транзакції можна вимірювати кількома способами, зокрема за допомогою часу, який потрібно включити до блоку, і часу, необхідного для завершення. Обидва ці параметри зазнають невеликих змін, непомітних для користувачів. - -Раніше, за використання моделі підтвердження роботи, метою було запускати нові блоки з інтервалом приблизно 13,3 секунди. За використання моделі доказу частки слоти з’являються з чітким інтервалом 12 секунд; кожен слот є можливістю для валідатора опублікувати блок. Більшість слотів мають блоки, але це необов’язкова умова (тобто валідатор може перебувати в офлайн-режимі). За використання моделі доказу частки блоки створюються на приблизно 10 % частіше, ніж за використання моделі підтвердження роботи. Ця зміна досить незначна, і користувачі навряд чи її помітять. - -З моделлю доказу частки було впроваджено концепцію завершення транзакцій, якої раніше не існувало. За використання моделі підтвердження роботи змінювати блок стає все складніше з кожним добутим блоком поверх транзакції, але ця можливість ніколи не зникає повністю. За використання моделі доказу частки блоки групуються в епохи (проміжки в 6,4 хвилини містять 32 можливості створення блоків), щодо яких голосують валідатори. Коли завершується епоха, валідатори голосують, чи можна вважати її «правомірною». Якщо валідатори погоджуються визнати епоху правомірною, вона завершується під час наступної епохи. Для скасування завершених транзакцій немає економічних можливостей, адже це потребує отримання та спалення понад третини всіх виставлених ETH. - - - - -Виставлені ETH і винагороди за стейкінг лишаються заблоковані без можливості їх зняти. Зняття планується реалізувати в майбутньому оновленні Shanghai. - - - -Хоча це може здаватися нелогічним з огляду на попереднє твердження про те, що зняття буде реалізовано в оновленні Shanghai, але у валідаторів Є миттєвий доступ до винагород і максимальних сум, які можна видобути (MEV), зароблених під час пропозицій блоків. - -Протокол видає ETH як винагороду валідаторам за внески до консенсусу. Рівень консенсусу відповідає за нововидані ETH, а валідатор має унікальну адресу, що містить виставлені ETH і винагороди протоколу. Ці ETH заблоковані до виходу оновлення Shanghai. - -ETH на виконавчому рівні розглядаються окремо від рівня консенсусу. Коли користувачі виконують транзакції в головній мережі Ethereum, ETH потрібно виплачувати для покриття витрат на газ, зокрема у вигляді чайових валідатору. Ці ETH уже перебувають на виконавчому рівні, а НЕ видаються протоколом заново. Вони стають доступними валідатору відразу (якщо програмне забезпечення клієнта отримало належну адресу отримувача комісії). - - - -Після впровадження зняття з виходом оновлення Shanghai усіх валідаторів заохочуватимуть зняти їхній стейкінговий баланс, що перевищує 32 ETH, оскільки ці кошти не додаються до прибутку та в іншому разі будуть заблоковані. Залежно від річної відсоткової ставки (APR), що визначається за загальною кількістю виставлених ETH, їх можуть заохочувати виходити зі своїх валідаторів, щоб зняти баланс повністю або потенційно виставити ще більше, використовуючи свої винагороди, аби заробити більше. - -Важливо зауважити, що частоту повних виходів валідаторів обмежено протоколом: протягом епохи можна виходити лише шістьом валідаторам (з інтервалом 6,4 хвилини, що дорівнює 1350 виходам на день або лише приблизно 43 200 ETH на день із понад 10 мільйонів виставлених ETH). Це обмеження частоти регулюється залежно від загальної кількості виставлених ETH і запобігає масовому виведенню коштів. Крім того, це не дає змоги потенційним зловмисникам використовувати свою частку для відсікання та виводити весь свій стейкінговий баланс у тій самій епосі, перш ніж протокол зможе застосувати штраф за відсікання. - -Річна відсоткова ставка (APR) навмисно зроблена динамічною, що допомагає ринку стейкерів балансувати обсяги платежів, які вони готові витрачати на захист мережі. Після реалізації зняття, якщо частота буде занизькою, валідатори виходитимуть із частотою, обмеженою протоколом. Це поступово підвищуватиме річну відсоткову ставку (APR) для всіх, хто залишиться, а також заохочуватиме приєднатися нових стейкерів або повернутися старих. - - -## Що сталося з Eth2? {#eth2} - -Термін «Eth2» більше не використовуватиметься. Після об’єднання «Eth1» і «Eth2» в єдиний ланцюг більше немає потреби у двох окремих мережах — є тільки Ethereum. - -Щоб обмежити плутанину, спільнота оновила ці терміни: - -- «Eth1» тепер означає «виконавчий рівень», який обробляє транзакції та виконання. -- «Eth2» тепер означає «рівень консенсусу», який обробляє консенсус доказу частки. - -Ці оновлення термінології змінюють лише правила найменування; це не впливає на цілі або план розвитку Ethereum. - -[Докладніше про перейменування Eth2](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) - -## Зв’язок між оновленнями {#relationship-between-upgrades} - -Усі оновлення Ethereum певним чином пов’язані. Тож підсумуймо, як процес The Merge пов’язаний з іншими оновленнями. - -### The Merge і Beacon Chain {#merge-and-beacon-chain} - -The Merge — це офіційне визнання Beacon Chain як нового рівня консенсусу стосовно оригінального виконавчого рівня головної мережі. Після The Merge валідатори призначені захищати головну мережу Ethereum. Майнінг за моделлю [підтвердження роботи](/developers/docs/consensus-mechanisms/pow/) більше не вважатиметься допустимим способом створення блоків. - -Натомість блоки пропонуються вузлами валідації, які мають виставлені ETH, в обмін на право брати участь у консенсусі. Ці оновлення готують підґрунтя для майбутніх оновлень масштабованості, зокрема сегментування. - - - Beacon Chain - - -### The Merge і оновлення Shanghai {#merge-and-shanghai} - -Щоб спростити й максимізувати фокус на успішному переході до моделі доказу частки, оновлення The Merge не містить певних очікуваних функцій, як-от можливості знімати виставлені ETH. Оновлення Shanghai планується після The Merge. Воно дасть змогу стейкерам знімати кошти. - -Дізнавайтеся всі новини про [запланований випуск оновлення Shanghai на GitHub](https://github.com/ethereum/pm/issues/450) або в [блозі EF про дослідження та розробку](https://blog.ethereum.org/category/research-and-development/). Крім того, можете дізнатися більше про те, [що відбудеться після The Merge](https://youtu.be/7ggwLccuN5s?t=101), з презентації Віталіка на заході ETHGlobal у квітні 2021 року. - -### The Merge і сегментування {#merge-and-data-sharding} - -Спочатку план полягав у роботі над сегментуванням до The Merge, щоб розв’язати проблему масштабованості. Однак унаслідок буму на [рішення для масштабування рівня 2](/layer-2/) пріоритетом став спочатку перехід із моделі підтвердження роботи на модель доказу частки. - -Плани щодо сегментування стрімко розвиваються. Але з огляду на зростання й успішність технологій рівня 2 для масштабування виконання транзакцій, плани щодо сегментування змістилися: тепер на меті пошук найоптимальнішого способу розділити тягар зберігання стиснутих даних викликів від контрактів зведення, що забезпечить можливість для швидкого зростання потужності мережі. Це не було б можливим без попереднього переходу на модель доказу частки. - - - Сегментування - - -## Додаткові матеріали {#further-reading} - - - - diff --git a/src/content/translations/uk/smart-contracts/index.md b/src/content/translations/uk/smart-contracts/index.md deleted file mode 100644 index d0b61540d38..00000000000 --- a/src/content/translations/uk/smart-contracts/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Розумні контракти -description: Нетехнічне знайомство з розумними контрактами -lang: uk ---- - -# Коротко про розумні контракти {#introduction-to-smart-contracts} - -Смартконтракти є основними будівельними блоками прикладного рівня Ethereum. Вони є комп'ютерними програмами, що зберігаються в блокчейні та слідують логіці «якщо це, тоді те», і гарантовано виконуються за правилами, визначеними їхнім кодом, який не може бути змінений після створення. - -Термін «розумний контракт» ввів Нік Шабо. У 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). - -Шабо передбачив цифровий ринок, де автоматичні криптографічно безпечні процеси дають змогу здійснювати транзакції та бізнес-функції без довірених посередників. Смартконтракти в Ethereum втілюють це бачення в життя. - -### Довіра до звичайних контрактів {#trust-and-contracts} - -Одна з найбільших проблем, пов’язаних із традиційними контрактами, — зобов’язання довірених осіб виконувати їх положення. - -Розгляньмо приклад. - -Аліна й Борис влаштовують велозмагання. Скажімо, Аліна закладається на 100 гривень, що вона переможе. Борис упевнений, що переможцем стане він, і погоджується на парі. Зрештою, Аліна фінішує набагато швидше, ніж Борис, і стає очевидним переможцем. Але Борис відмовляється платити, стверджуючи, що Аліна схитрувала. - -Цей простенький приклад ілюструє проблему будь-якого звичайного контракту. Навіть якщо умови будуть виконані (ви переможете у велозмаганні), вам однаково потрібно довіряти іншій особі щодо виконання умов контракту (виплати грошей за парі). - -### Цифровий торговий автомат {#vending-machine} - -Смартконтракт можна порівняти з торговим автоматом, механізм роботи якого дійсно схожий — виконання конкретних дій із вхідними даними гарантують заздалегідь визначені результати. - -- Ви вибираєте продукт. -- Торговий автомат показує ціну -- Ви платите відповідну ціну. -- Торговий автомат перевіряє, чи ви заплатили потрібну суму. -- Торговий автомат дає вам ваш товар. - -Торговий автомат видасть бажаний продукт лише після виконання всіх вимог. Якщо ви не виберете продукт або не внесете достатньо грошей, торговий автомат не видасть вам продукт. - -### Автоматичне виконання {#automation} - -Основною перевагою смартконтракту є те, що він детерміновано виконує однозначний код за виконання певних умов. Не потрібно чекати, поки людина інтерпретує або домовиться про результат. Це усуває необхідність довірених посередників. - -Наприклад, ви можете написати смартконтракт, який утримуватиме кошти на умовному депонуванні для дитини, даючи їй змогу зняти їх після настання певної дати. Якщо дитина спробує зняти кошти до зазначеної дати, смартконтракт не буде виконано. Або ви можете укласти контракт, який автоматично надаватиме вам цифрову версію права власності на автомобіль після внесення оплати продавцю. - -### Передбачувані результати {#predictability} - -Традиційні контракти неоднозначні, тому що вони покладаються на людей для їх інтерпретації та реалізації. Наприклад, два судді можуть інтерпретувати контракт по-різному, що може призвести до непослідовних рішень і нерівних результатів. Смартконтракти усувають таку можливість. Натомість вони передбачають чітке виконання на основі умов, записаних у коді контракту. Ця точність означає, що за однакових обставин смартконтракт видаватиме однакові результати. - -### Загальнодоступні записи {#public-record} - -Смартконтракти стають у пригоді під час аудиту й відстеження. Оскільки смартконтракти Ethereum перебувають у загальнодоступному блокчейні, будь-хто може миттєво відстежити передачу активів та іншу пов’язану інформацію. Наприклад, ви можете перевірити, чи хтось надіслав гроші на вашу адресу. - -### Захист конфіденційності {#privacy-protection} - -Смартконтракти також захищають вашу конфіденційність. Оскільки Ethereum — це мережа під псевдонімами (ваші транзакції публічно прив’язані до унікальної криптографічної адреси, а не вашої особи), ви можете захистити свою конфіденційність від спостерігачів. - -### Видимі умови {#visible-terms} - -Нарешті, як і в разі традиційних контрактів, ви можете перевірити умови смартконтракту, перш ніж підписувати його (або іншим чином взаємодіяти з ним). Прозорість смартконтракту гарантує, що кожен може його ретельно вивчити. - -## Приклади використання смартконтрактів {#use-cases} - -Смартконтракти можуть власне робити все те, що й звичайні комп’ютерні програми. - -Вони можуть виконувати розрахунки, створювати валюту, зберігати дані, карбувати NFT, надсилати повідомлення та навіть створювати графіки. Ось кілька популярних прикладів із реального світу: - -- [Стейблкоїни](/stablecoins/) -- [Створення та розповсюдження унікальних цифрових активів](/nft/) -- [Автоматичний і відкритий обмін валют](/get-eth/#dex) -- [Децентралізовані ігри](/dapps/?category=gaming) -- [Страховий поліс, який виплачується автоматично](https://etherisc.com/) -- [Стандарт, який дає змогу створювати індивідуальні, взаємосумісні валюти](/developers/docs/standards/tokens/) - -## Краще сприймаєте інформацію візуально? {#visual-learner} - -Перегляньте відео від **Finematics** про смартконтракти: - - - -## Довідкові джерела {#further-reading} - -- [Як розумні контракти змінять світ](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [Розумні контракти: блокчейн-технологія, яка замінить юристів](https://blockgeeks.com/guides/smart-contracts/) -- [Розумні контракти для розробників](/developers/docs/smart-contracts/) -- [Навчіться створювати розумні контракти](/developers/learning-tools/) -- [Освоєння Ethereum: що таке розумний контракт?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/src/content/translations/uk/social-networks/index.md b/src/content/translations/uk/social-networks/index.md deleted file mode 100644 index c43df921a62..00000000000 --- a/src/content/translations/uk/social-networks/index.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: Децентралізовані соціальні мережі -description: Огляд децентралізованих соціальних мереж на Ethereum -lang: uk -template: use-cases -emoji: ":mega:" -sidebarDepth: 2 -image: ../../../../assets/ethereum-learn.png -summaryPoint1: Платформи на основі блокчейну для соціальної взаємодії та створення й розповсюдження контенту. -summaryPoint2: Децентралізовані соціальні мережі захищають конфіденційність користувачів і підвищують безпеку даних. -summaryPoint3: Токени й NFT створюють нові способи монетизації вмісту. ---- - -Соціальні мережі відіграють величезну роль у нашому щоденному спілкуванні та взаємодії. Однак централізований контроль над цими платформами створив багато проблем: витік даних, збої в роботі серверів, деплатформування, цензура й порушення конфіденційності — ось деякі компроміси, на які часто йдуть соціальні мережі. Для боротьби із цими проблемами розробники будують соціальні мережі на Ethereum. Децентралізовані соціальні мережі можуть розв’язати багато проблем традиційних платформ соціальних мереж і покращити загальний досвід користувачів. - -## Що таке децентралізовані соціальні мережі? {#what-are-decentralized-social-networks} - -Децентралізовані соціальні мережі — це платформи на основі блокчейну, які дають користувачам змогу обмінюватися інформацією, а також публікувати й поширювати контент серед аудиторії. Оскільки ці програми працюють на блокчейні, вони здатні бути децентралізованими та стійкими до цензури й надмірного контролю. - -Багато децентралізованих соціальних мереж існують як альтернативи усталеним службам соціальних мереж, як-от Facebook, LinkedIn, Twitter і Medium. Але соціальні мережі, що працюють на блокчейні, мають низку особливостей, які випереджають традиційні соціальні платформи. - -### Як працюють децентралізовані соціальні мережі? {#decentralized-social-networks-overview} - -Децентралізовані соціальні мережі — це клас [децентралізованих програм (dapps)](/dapps/), тобто програм, що працюють на основі [розумних контрактів](/developers/docs/smart-contracts/), розгорнутих на блокчейні. Код контракту служить основою для цих програм і визначає їх бізнес-логіку. - -Традиційні соціальні мережі використовують бази даних для зберігання інформації користувачів, програмного коду й інших форм даних. Але це створює окремі точки відмови та вносить значний ризик. Наведемо сумнозвісний приклад: сервери Facebook [вийшли з мережі на години](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact) минулого року, відрізавши користувачів від платформи. - -Децентралізовані соціальні мережі існують в одноранговій мережі, яка складається з тисяч вузлів по всьому світу. Навіть якщо деякі вузли вийдуть з ладу, мережа працюватиме безперебійно, завдяки чому програми будуть стійкими до збоїв і простоїв. - -Використовуючи децентралізовані системи зберігання, як-от [InterPlanetary File System (IPFS)](https://ipfs.io/), соціальні мережі, побудовані на Ethereum, можуть захистити інформацію користувачів від експлуатації та зловмисного використання. Ніхто не продасть вашу особисту інформацію рекламодавцям, і хакери не зможуть викрасти ваші конфіденційні дані. - -Багато соціальних платформ на основі блокчейну мають рідні токени, які забезпечують монетизацію за відсутності прибутку від реклами. Користувачі можуть купувати ці маркери, щоб отримати доступ до певних функцій, здійснювати покупки в програмі або давати чайові своїм улюбленим творцям вмісту. - -## Переваги децентралізованих соціальних мереж {#benefits} - -1. Децентралізовані соціальні мережі стійкі до цензури й відкриті для всіх. Це означає, що користувачів не можна заборонити, деплатформувати чи довільно обмежити. - -2. Децентралізовані соціальні мережі побудовані на ідеалі відкритого вихідного коду й роблять вихідний код програм доступним для загального огляду. Усуваючи реалізацію непрозорих алгоритмів, поширених у традиційних соціальних медіа, соціальні мережі на основі блокчейну можуть узгоджувати інтереси користувачів і творців платформи. - -3. Децентралізовані соціальні мережі усувають «посередника». Творці контенту мають безпосереднє право власності на свій контент і взаємодіють безпосередньо з підписниками, шанувальниками, покупцями та іншими сторонами, не маючи нічого, крім розумного контракту між ними. - -4. Оскільки прикладні програми працюють у мережі Ethereum, яка підтримується глобальною одноранговою мережею вузлів, децентралізовані соціальні мережі менш сприйнятливі до простоїв і збоїв серверів. - -5. Децентралізовані соціальні платформи пропонують покращену систему монетизації для творців контенту за допомогою невзаємозамінних токенів (NFT), криптоплатежів у програмі тощо. - -6. Децентралізовані соціальні мережі забезпечують користувачам високий рівень конфіденційності й анонімності. Наприклад, особа може ввійти в соціальну мережу на основі Ethereum за допомогою профілю ENS або гаманця — без необхідності ділитися особистою інформацією (PII), як-от імена, адреси електронної пошти тощо. - -7. Децентралізовані соціальні мережі покладаються на децентралізоване сховище, яке значно краще захищає дані користувачів, а не на централізовані бази даних. - -## Децентралізовані соціальні мережі на Ethereum {#ethereum-social-networks} - -Мережа Ethereum стала улюбленим інструментом для розробників, які створюють децентралізовані соціальні мережі, завдяки популярності її токенів (ERC-20/ERC-721) і величезній базі користувачів. Ось кілька прикладів соціальних мереж на основі Ethereum: - -### Peepeth {#peepeth} - -[Peepeth](https://peepeth.com/) — це платформа мікроблогів, схожа на Twitter. Вона працює на блокчейні Ethereum і використовує IPFS для зберігання даних користувачів. - -Користувачі можуть надсилати короткі повідомлення під назвою «Peeps», які не можна видалити чи змінити. Ви можете збирати чайові або надсилати їх будь-кому на платформі в криптовалюті ether (ETH), не виходячи з програми. - -### Mirror {#mirror} - -[Mirror](https://mirror.xyz/) – це платформа для письменників із підтримкою web3, яка має бути децентралізованою та належати користувачам. Користувачі можуть безплатно читати та писати на Mirror, просто під’єднавши свої гаманці. Користувачі також можуть збирати тексти й підписуватися на своїх улюблених письменників. - -Повідомлення, опубліковані на Mirror, постійно зберігаються на Arweave, децентралізованій платформі зберігання, і можуть карбуватися як колекційні [незамінні токени (NFT)](/nft/), відомі як Writing NFT. Токени Writing NFT абсолютно безплатні для авторів, а збір відбувається на рівні Ethereum L2, що робить транзакції недорогими, швидкими й екологічно чистими. - -### MINDS {#minds} - -[MINDS](https://www.minds.com/) є однією з найбільш використовуваних децентралізованих соціальних мереж. Вона працює як Facebook і вже набрала мільйони користувачів. - -Користувачі використовують власний токен платформи ERC-20 $MIND для оплати товарів. Користувачі також можуть заробляти токени $MIND, публікуючи популярний вміст, роблячи внески в екосистему й залучаючи інших до платформи. - -## Соціальні мережі Web2 на Ethereum {#web2-social-networks-and-ethereum} - -Нативні соціальні платформи [Web3](/web3/) не єдині, що намагаються запровадити технологію блокчейну в соціальні мережі. Багато централізованих платформ також планують інтегрувати Ethereum у свою інфраструктуру: - -### 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/) і які користувачі можуть заробити, публікуючи якісний вміст і роблячи внески в онлайн-спільноти (субреддіти). Ви можете викупити ці токени в субреддіті, щоб [отримати ексклюзивні привілеї та бонуси](https://www.reddit.com/community-points/). Для цього проєкту Reddit співпрацює з Arbitrum, зведеним пакетом [рівня 2](/layer-2/), призначеним для масштабування транзакцій Ethereum. - -Програма вже запущена, і субреддіт r/CryptoCurrency [запустив свою версію Community Points під назвою «Moons»](https://www.reddit.com/r/CryptoCurrency/wiki/moons_wiki). Згідно з офіційним описом, Moons «винагороджує авторів, коментаторів і модераторів за їхній внесок у субреддіт» Оскільки ці токени перебувають у блокчейні (користувачі отримують їх у гаманці), вони не залежать від Reddit і не можуть бути забрані. - -Після завершення бета-фази на тестовій мережі Rinkeby бали спільноти Reddit Community Points тепер доступні на [Arbitrum Nova](https://nova.arbitrum.io/), блокчейні, який поєднує властивості [сайдчейнів](/developers/docs/scaling/sidechains/) і [оптимістичного розгортання](/developers/docs/scaling/optimistic-rollups/). Окрім використання балів спільноти для розблокування спеціальних функцій, користувачі також можуть обмінювати їх на фіатну валюту на біржах. Крім того, кількість балів спільноти, якими володіє користувач, визначає його вплив на процес прийняття рішень у спільноті. - -### Twitter {#twitter} - -У січні 2021 року Twitter Blue [розгорнув підтримку NFT](https://mashable.com/article/twitter-blue-nft-profile-picture), даючи користувачам змогу під’єднувати свої гаманці й відображати NFT як зображення профілю. На момент написання статті соціальна мережа також [оголосила про плани](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web) створити децентралізовану соціальну мережу в майбутньому. - -### Instagram {#instagram} - -У травні 2022 року [Instagram оголосив про підтримку NFT](https://about.instagram.com/blog/announcements/instagram-digital-collectibles) на Ethereum і Polygon. Користувачі можуть публікувати NFT безпосередньо в Instagram, підключивши свій гаманець Ethereum. - -## Використовуйте децентралізовані соціальні мережі {#use-decentralized-social-networks} - -- **[Status.im](https://status.im/)** - _Статус — це захищена програма для обміну повідомленнями, яка використовує одноранговий протокол із відкритим кодом і наскрізне шифрування для захисту ваших повідомлень від сторонніх осіб._ -- **[Mirror.xyz](https://mirror.xyz/)** - _Дзеркало – це децентралізована видавнича платформа, яка належить користувачам, створена на базі Ethereum для краудингового фінансування ідей, монетизації вмісту та створення цінних спільнот._ -- **[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/) — _Бен Герцель_ -- [Web3 обіцяє децентралізовані, контрольовані спільнотою соціальні мережі](https://venturebeat.com/2022/02/26/web3-holds-the-promise-of-decentralized-community-powered-social-networks/) — _Суміт Гош_ -- [Огляд ландшафту соціальних мереж на основі блокчейну](https://www.gemini.com/cryptopedia/blockchain-social-media-decentralized-social-media) — _Криптопедія Gemini_ -- [Як блокчейн може розв’язати проблему конфіденційності соціальних мереж](https://www.investopedia.com/news/ethereum-blockchain-social-media-privacy-problem-linkedin-indorse/) — _Праблін Баджпай_ -- [Соціальні мережі переходять на блокчейн](https://businesstechguides.co/what-are-decentralized-social-networks) — _Еммануель Авосіка_ -- [Достатня децентралізація для соціальних мереж](https://www.varunsrinivasan.com/2022/01/11/sufficient-decentralization-for-social-networks) — _Варун Срінівасан_ - -### Відео {#videos} - -- [Пояснення децентралізованих соціальних мереж](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ -- [Блокчейн DeSo хоче децентралізувати соціальні мережі](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ -- [Майбутнє децентралізованих соціальних медіа з Баладжі Шрінівасаном, Віталіком Бутеріним, Хуаном Бенетом](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ - -### Спільноти {#communities} - -- [Status (сервер Discord)](https://discord.com/invite/3Exux7Y) -- [Mirror (сервер Discord)](https://discord.com/invite/txuCHcE8wV) -- [Субреддіт r/CryptoCurrency](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/uk/staking/pools/index.md b/src/content/translations/uk/staking/pools/index.md deleted file mode 100644 index ebe7b94e64c..00000000000 --- a/src/content/translations/uk/staking/pools/index.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: Стейкінг у пулі -description: Огляд початку роботи з об’єднаним стейкінгом ETH -lang: uk -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-pool.png -alt: Носоріг Леслі плаває в басейні. -sidebarDepth: 2 -summaryPoints: - - Вкладайте кошти й отримуйте винагороди з будь-якою кількістю ETH, об’єднуючи зусилля з іншими. - - Пропустіть складну частину й довірте роботу валідатора третім особам. - - Зберігайте токени стейкінгу у власному гаманці ---- - -## Що таке стейкінг-пули? {#what-are-staking-pools} - -Об’єднаний стейкінг — це спосіб, який дає змогу багатьом користувачам, у яких недостатня сума ефірів (ETH), отримати 32 ETH, необхідних для активації набору ключів валідатора. Функція пулу не підтримується протоколом, тому для задоволення цієї потреби було створено окремі рішення. - -Деякі пули працюють за допомогою смартконтрактів, де кошти можуть бути внесені в контракт, який надійно керує вашою часткою й відстежує її, а також видає вам токен, який представляє цю вартість. Інші пули можуть не використовувати смартконтракти, а натомість опосередковуються поза мережею. - -## Навіщо робити стейкінг із пулом? {#why-stake-with-a-pool} - -На додаток до переваг, які ми окреслили в нашому [вступі до стейкінгу](/staking/), стейкінг із пулом має низку незаперечних переваг. - - - - - - - - - -## Що врахувати {#what-to-consider} - -Об’єднаний або делегований стейкінг не підтримуються самим протоколом Ethereum, але, враховуючи попит користувачів на ставки менше ніж 32 ETH, для задоволення цього попиту створюється дедалі більше рішень. - -Кожен пул та інструменти чи смартконтракти, які вони використовують, були створені різними командами, і кожен має переваги й ризики. Пули дають користувачам змогу обмінювати свої ETH на токен, що представляє поставлені ETH. Токен корисний тим, що дає користувачам змогу обмінювати будь-яку кількість ETH на еквівалентну кількість дохідних токенів, які приносять прибуток від винагороди за стейкінг, що застосовується до вкладених ETH, за які вони отримані (і навпаки), на децентралізованих біржах, навіть попри те що фактичні ETH залишаються вкладеними на рівні консенсусу. Це означає, що обмін між прибутковим продуктом ETH, який залучено до стейкінгу, і «оригінальними ETH» відбувається швидко й просто та застосовується не лише до сум ETH, кратних 32. - -Однак ці вкладені в ETH токени можуть спричинити картельну поведінку, коли велика кількість вкладених ETH потрапляє під контроль кількох централізованих організацій, а не поширюється між багатьма незалежними особами. Це створює умови для цензури або виманювання вартості. Золотим стандартом стейкінгу завжди повинні бути окремі особи, які запускають валідатори на власному обладнанні, коли це можливо. - -[Докладніше про ризики токенів стейкінгу](https://notes.ethereum.org/@djrtwo/risks-of-lsd). - -Нижче використовуються індикатори атрибутів, що вказують на помітні сильні чи слабкі сторони, які можуть бути притаманні вказаному пулу ставок. Під час вибору пулу для приєднання використовуйте цей розділ як довідник, у якому ми визначаємо ці атрибути. - - - -## Досліджуйте пули стейкінгу {#explore-staking-pools} - -Існує безліч доступних варіантів, які допоможуть вам із налаштуванням. Використовуйте наведені вище індикатори, які допоможуть вам отримати інформацію про інструменти нижче. - - - - - -Зверніть увагу на важливість вибору служби, яка серйозно ставиться до [різноманітності клієнтів](/developers/docs/nodes-and-clients/client-diversity/), оскільки це покращує безпеку мережі й обмежує ваш ризик. Послуги, які мають докази обмеження використання мажоритарними клієнтами, мають позначку «виконання різноманітності клієнтів» і «консенсус різноманітності клієнтів». - -Маєте пропозицію щодо інструменту стейкінгу, який ми пропустили? Ознайомтеся з нашою [політикою щодо переліку продуктів](/contributing/adding-staking-products/), щоб дізнатися, чи підійде він, і надіслати його на розгляд. - -## Поширені запитання {#faq} - - -Зазвичай токени стейкінгу ERC-20 видаються стейкерам і представляють вартість їхніх вкладених ETH і винагород. Майте на увазі, що різні пули розподілятимуть винагороди за ставки своїм користувачам дещо різними методами, але це загальна тема. - - - -Просто зараз! Оновлення мережі Shanghai/Capella відбулося у квітні 2023 року і ввело можливість виведення коштів під час стейкінгу. Облікові записи валідаторів, які підтримують стейкінгові пули, тепер мають змогу вийти та вивести ETH на свою призначену адресу виведення. Це дає змогу викупити свою частку ставки за базові ETH. Дізнайтесь у свого провайдера, як підтримується ця функціональність. - -Крім того, пули, які використовують токен стейкінгу ERC-20, дають користувачам змогу торгувати цим токеном на відкритому ринку. Це дає можливість продати свою стейкінг-позицію й фактично «вивести» кошти, насправді не видаляючи ETH із контракту стейкінгу. - -Докладніше про виведення коштів під час стейкінгу - - - -Існує багато подібностей між цими варіантами об’єднаного стейкінгу й централізованими біржами, як-от можливість робити ставки на невеликі суми ETH і об’єднувати їх разом для активації валідаторів. - -На відміну від централізованих бірж, багато інших варіантів об’єднаного стейкінгу використовують смартконтракти та/або токени стейкінгу. Зазвичай це токени ERC-20, які можна зберігати у своєму гаманці та купувати чи продавати, як будь-який інший токен. Це забезпечує певний рівень суверенітету й безпеки, надаючи вам контроль над своїми токенами, але все ще не дає вам прямого контролю над клієнтом валідатора, який підтверджує від вашого імені у фоновому режимі. - -Деякі варіанти об’єднання є більш децентралізованими, ніж інші, коли йдеться про вузли, які їх підтримують. Щоб сприяти здоров’ю та децентралізації мережі, стейкерам завжди рекомендується вибирати службу об’єднання, яка забезпечує децентралізований набір операторів вузлів без дозволу. - - -## Довідкові джерела {#further-reading} - -- [Стейкінг за допомогою Rocket Pool: огляд стейкінгу](https://docs.rocketpool.net/guides/staking/overview.html) — _Документи RocketPool_ -- [Стейкінг Ethereum за допомогою Lido](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) — _Довідкова документація Lido_ diff --git a/src/content/translations/uk/staking/saas/index.md b/src/content/translations/uk/staking/saas/index.md deleted file mode 100644 index 2d5f1ec9a9a..00000000000 --- a/src/content/translations/uk/staking/saas/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Стейкінг як служба -description: Огляд того, як почати роботу з об’єднаним ставками ETH -lang: uk -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-saas.png -alt: Носоріг Леслі плаває в хмарах. -sidebarDepth: 2 -summaryPoints: - - Сторонні оператори вузлів керують роботою вашого клієнта перевірки. - - Чудовий варіант для всіх, хто має 32 ETH, але не бажає мати справу з технічною складністю роботи вузла. - - Зменште довіру та самостійно контролюйте свої ключі для виведення коштів. ---- - -## Що таке стейкінг як послуга? {#what-is-staking-as-a-service} - -Стейкінг як послуга (SaaS) — це категорія послуг стейкінгу, користуючись якими ви вносите власні 32 ETH для валідатора, але делегуєте операції з вузлами сторонньому оператору. Зазвичай цей процес передбачає початкове налаштування, зокрема генерацію та депозит, а потім завантаження ваших ключів підпису оператору. Це дає службі змогу керувати вашим валідатором від вашого імені, зазвичай за щомісячну плату. - -## Які переваги дає використання стейкінгу як послуги? {#why-stake-with-a-service} - -Сам протокол Ethereum не підтримує делегування частки, тому ці служби створено для задоволення цього попиту. Якщо у вас є 32 ETH для ставки, але вам незручно мати справу з апаратним забезпеченням, послуги SaaS дадуть вам змогу делегувати складну частину, поки ви отримуєте власну винагороду за блок. - - - - - - - - - -## Що врахувати {#what-to-consider} - -Зростає кількість постачальників стейкінгу як послуги (SaaS), які пропонують допомогу у вкладенні ETH, але в кожного з них є свої переваги й ризики. Слід ураховувати, що всі варіанти SaaS вимагають додаткових припущень щодо довіри у порівнянні з домашнім стейкінгом. Параметри Saas можуть мати додатковий код, що обгортає клієнти Ethereum, який не є відкритим або доступним для перевірок. SaaS також згубно впливає на децентралізацію мережі. Залежно від налаштувань ви можете не контролювати свій валідатор: оператор може діяти нечесно, використовуючи ваші ефіри (ETH). - -Нижче ми використовуємо індикатори атрибутів, щоб повідомити про суттєві сильні чи слабкі сторони зазначеного постачальника SaaS. Використовуйте цей розділ як довідник визначень цих атрибутів, коли вибираєте послугу, що допоможе вам під час стейкінгу. - - - -## Дізнайтеся докладніше про постачальників послуг стейкінгу {#saas-providers} - -Нижче наведено відомості про деяких доступних постачальників SaaS. Використовуйте наведені вище індикатори, щоб вибрати, якими послугами скористатися. - - - -#### Провайдери SaaS - - - -Зверніть увагу на важливість підтримки [різноманітності клієнтів](/developers/docs/nodes-and-clients/client-diversity/), оскільки це покращує безпеку мережі й обмежує ваш ризик. Послуги, які мають докази обмеження використання мажоритарними клієнтами, мають позначку «виконання різноманітності клієнтів» і «консенсус різноманітності клієнтів». - -#### Генератори ключів - - - -Маєте пропозицію щодо постачальника стейкінгу як послуги, якого ми пропустили? Ознайомтеся з нашою [політикою щодо переліку продуктів](/contributing/adding-staking-products/), щоб дізнатися, чи підійде він, і надіслати його на розгляд. - -## Поширені запитання {#faq} - - -Домовленості різняться залежно від постачальника, але зазвичай вам доведеться налаштувати будь-які потрібні ключі підпису (по одному на 32 ETH) і завантажити їх до свого постачальника, щоб він міг виконувати валідацію від вашого імені. Ключі підпису самі по собі не дають можливості вивести, переказати або витратити ваші кошти. Однак вони дають змогу віддавати голоси за консенсус, що, якщо не зробити це належним чином, може призвести до покарань офлайн або скорочення. - - - -Так. Кожен обліковий запис складається з ключів підпису та ключів виведення. Щоб валідатор засвідчував стан ланцюга, брав участь у комітетах синхронізації та пропонував блоки, ключі підпису повинні бути легкодоступними для клієнта валідатора. Вони повинні бути підключені до інтернету в певній формі, тому за своєю суттю вважаються «гарячими» клавішами. Це вимога, щоб ваш валідатор міг засвідчити, тому ключі, які використовуються для переказу або виведення коштів, розділені з міркувань безпеки. - -Ключі виведення BLS використовуються для підпису одноразового повідомлення, яке оголошує, до якого облікового запису виконавчого рівня повинні бути спрямовані нагороди за стейкінг та кошти, які було виведено. Щойно це повідомлення буде розіслано, ключі BLS для виведення вже не потрібні. Натомість керування виведеними коштами постійно делегується на адресу, яку ви вказали. Це дає змогу встановити адресу виведення, яку захищено власним холодним сховищем, мінімізуючи ризик для коштів вашого валідатора, навіть якщо інша особа контролює ключі для підпису. - -Оновлення підтверджувальних даних для виведення коштів є обов’язковим кроком для активації виведення\*. Цей процес передбачає генерацію ключів для виведення коштів за допомогою вашої кодової фрази. - -Обов’язково зберігайте цю кодову фразу в безпечному місці, інакше ви не зможете згенерувати ключі для виведення коштів, коли настане час. - -\* Стейкери, які вказали адресу для виведення коштів під час початкового депозиту, не потребують цього налаштування. Зверніться до свого SaaS-провайдера, щоб отримати підтримку щодо підготовки вашого валідатора. - - - -Виведення коштів під час стейкінгу реалізовано в оновленні Shanghai/Capella у квітні 2023 року. Стейкери повинні надати адресу виведення (якщо її не було надано під час початкового депозиту), а платежі винагороди почнуть автоматично розподілятись на періодичній основі кожні кілька днів. - -Валідатори також можуть повністю вийти зі статусу валідатора, що розблокує їх залишковий баланс ETH для виведення. Облікові записи, які надали адресу виведення виконання та завершили процес виходу, отримають увесь свій баланс на адресу виведення, надану під час наступного сканування валідатора. - -Докладніше про виведення коштів під час стейкінгу - - - -Використовуючи постачальника SaaS, ви довіряєте роботу свого вузла комусь іншому. Це супроводжується ризиком низької продуктивності вузла, який не залежить від вас. Якщо ваш валідатор буде скорочено, ваш баланс валідатора буде штрафовано та примусово видалено з пулу валідаторів. - -Після завершення процесу скорочення / виходу з програми ці кошти будуть переведені на адресу виведення, призначену для валідатора. Для цього потрібно вказати адресу для виведення коштів. Це може бути надано під час початкового депозиту. Якщо ні, ключі виведення валідатора повинні бути використані для підпису повідомлення, у якому буде зазначено адресу виведення. Якщо не було надано жодної адреси виведення, кошти залишаться заблокованими до її надання. - -Щоб отримати докладнішу інформацію про будь-які гарантії або варіанти страхування, а також для інструкцій щодо надання адреси виведення коштів, зв’яжіться з конкретним провайдером SaaS. Якщо ви бажаєте повністю контролювати налаштування свого валідатора, дізнайтеся більше про те, як самостійно ставити свої ефіри (ETH). - - -## Довідкові джерела {#further-reading} - -- [Оцінювання послуг стейкінгу](https://www.attestant.io/posts/evaluating-staking-services/) — _Джим Макдональд, 2020_ diff --git a/src/content/translations/uk/staking/solo/index.md b/src/content/translations/uk/staking/solo/index.md deleted file mode 100644 index 60d9fcafe32..00000000000 --- a/src/content/translations/uk/staking/solo/index.md +++ /dev/null @@ -1,203 +0,0 @@ ---- -title: Індивідуальний стейкінг ваших ETH -description: "Огляд: як почати самостійний стейкінг своїх ефірів (ETH)" -lang: uk -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-solo.png -alt: Носоріг Леслі на власному комп’ютерному чіпі. -sidebarDepth: 2 -summaryPoints: - - Отримайте максимальну винагороду безпосередньо від протоколу за підтримку належного функціонування валідатора та його перебування онлайн - - Запустіть домашнє обладнання та особисто додайте безпеку й децентралізацію мережі Ethereum. - - Позбудьтеся довіри, але ніколи не передавайте контроль над ключами від своїх фондів. ---- - -## Що таке самостійний стейкінг? {#what-is-solo-staking} - -Самостійний стейкінг — це [запуск вузла Ethereum](/run-a-node/), підключеного до інтернету, і внесення 32 ETH для активації [валідатора](#faq), що дає вам змогу безпосередньо брати участь у мережевому консенсусі. - -**Самостійний стейкінг збільшує децентралізацію мережі Ethereum**, роблячи Ethereum стійкішим до цензури й атак. Інші методи стейкінгу можуть не допомогти мережі в той самий спосіб. Самостійний стейкінг — це найкращий варіант для захисту Ethereum. - -Вузол Ethereum складається як з клієнта рівня виконання (EL), так і з клієнта рівня консенсусу (CL). Такі клієнти — це програмне забезпечення, яке працює разом із дійсним набором ключів підпису для перевірки транзакцій і блоків, підтвердження правильності голови ланцюжка, агрегування атестацій і пропозиції блоків. - -Самостійні стейкери відповідають за роботу обладнання, необхідного для роботи цих клієнтів. Наполегливо рекомендується використовувати для цього спеціальну машину, якою ви керуєте вдома, це надзвичайно корисно для працездатності мережі. - -Самостійний стейкер отримує винагороду безпосередньо від протоколу за те, що його валідатор функціонує належним чином і працює онлайн. - -## Які переваги має самостійний стейкінг? {#why-stake-solo} - -Самостійний стейкінг передбачає більшу відповідальність, але забезпечує максимальний контроль над своїми коштами й налаштуванням ставок. - - - - - - - -## Що потрібно обміркувати, перш ніж починати самостійний стейкінг {#considerations-before-staking-solo} - -Хоч би як ми хотіли, щоб самостійний стейкінг був доступним для всіх і не ніс жодного ризику, це не так. Є кілька практичних і серйозних міркувань, про які слід пам’ятати, перш ніж вирішувати самостійно ставити свої ETH. - - - -Керуючи власним вузлом, вам слід витратити певний час, щоб навчитися користуватися вибраним програмним забезпеченням. Це передбачає читання відповідної документації та налагодження каналів зв’язку цих команд розробників. - -Що більше ви розумієте програмне забезпечення, яке використовуєте, і те, як працює proof-of-stake, то меншим ризиком буде для вас стейкінг і тим легше вам як оператору вузла буде розв’язувати будь-які проблеми, які можуть виникнути під час роботи. - - - -Налаштування вузла вимагає розумного рівня впевненості під час роботи з комп’ютерами, хоча нові інструменти з часом роблять це легше. Розуміння інтерфейсу командного рядка є корисним, але більше не обов’язковим. - -Це також вимагає базового налаштування апаратного забезпечення та певного розуміння мінімальних рекомендованих специфікацій. - - - -Подібно до того, як приватні ключі захищають вашу адресу Ethereum, вам потрібно буде створити ключі спеціально для вашого валідатора. Ви повинні розуміти, як убезпечити й захистити кодові фрази або приватні ключі.{' '} - -Безпека й запобігання шахрайству в Ethereum - - - -Іноді апаратне забезпечення виходить з ладу, мережеве з’єднання з’являється помилково, а клієнтське програмне забезпечення час від часу потребує оновлення. Технічне обслуговування вузла неминуче і час від часу потребуватиме вашої уваги. Радимо уважно стежити за інформацією про будь-які очікувані оновлення мережі або інші важливі оновлення клієнта. - - - -Ваші винагороди пропорційні часу, протягом якого ваш валідатор перебуває в мережі й належним чином атестується. Час простою тягне за собою штрафні санкції, пропорційні кількості інших валідаторів, які перебувають в автономному режимі одночасно, але не призводить до скорочення. Пропускна здатність також має значення, оскільки винагороди зменшуються за атестації, які не отримані вчасно. Вимоги можуть різнитися, але рекомендовано підтримувати вхідну й вихідну швидкість щонайменше 10 Мбіт/с. - - - -На відміну від покарань за бездіяльність у режимі офлайн, скорочення є набагато серйознішим покаранням, призначеним за зловмисні порушення. Якщо ви запустите міноритарний клієнт із завантаженими ключами лише на одній машині одночасно, ваш ризик бути скороченими зводиться до мінімуму. З огляду на це, усі стейкери повинні усвідомлювати ризики скорочення. - -Докладніше про покарання та життєвий цикл валідатора - - - - - -## Як це працює {#how-it-works} - - - -Під час активної участі ви отримуватимете винагороду у вигляді ETH, які періодично будуть зараховуватись на ваш вказаний рахунок виведення коштів. - -Якщо колись забажаєте, ви можете вийти як валідатор, що скасовує вимогу бути онлайн і зупиняє будь-які подальші винагороди. Ваш залишок коштів буде автоматично виведено на адресу зняття, яку ви вкажете під час налаштування. - -[Докладніше про виведення коштів під час стейкінгу](/staking/withdrawals/) - -## Початок роботи на стартовій платформі стейкінгу {#get-started-on-the-staking-launchpad} - -Staking Launchpad (Стартова платформа стейкінгу) — це програма з відкритим кодом, яка допоможе вам стати стейкером. Ця платформа допоможе вам вибрати програми-клієнти, згенерувати ключі та вкласти свої ETH у договір депозиту для стейкінгу. Використовуйте наданий контрольний список, щоб перевірити, чи виконано все необхідне для безпечного налаштування валідатора. - - - -## Що слід враховувати під час роботи з інструментами налаштування вузла та клієнта {#node-tool-considerations} - -Кількість інструментів і послуг, які допоможуть вам самостійно робити ставки на ETH, дедалі зростає, але кожен із них має різні ризики й переваги. - -Нижче ми використовуємо індикатори атрибутів, щоб вказати на суттєві сильні чи слабкі сторони, які може мати наведений інструмент стейкінгу. Використовуйте цей розділ як довідник визначень цих атрибутів, коли вибираєте інструменти, що допоможуть вам під час стейкінгу. - - - -## Ознайомтеся з інструментами налаштування вузла та клієнта {#node-and-client-tools} - -Існує безліч доступних опцій, які допоможуть вам з налаштуванням. Використовуйте наведені вище індикатори, щоб допомогти вам скористатися наведеними нижче інструментами. - - - -#### Інструменти для вузлів - - - -Зверніть увагу на важливість вибору [міноритарного клієнта](/developers/docs/nodes-and-clients/client-diversity/), оскільки це покращує безпеку мережі й обмежує ваш ризик. Інструменти, які дають змогу налаштувати міноритарний клієнт, позначаються як «мультиклієнт». - -#### Генератори ключів - -Ці інструменти можна використовувати як альтернативу [CLI депозиту на стейкінг](https://github.com/ethereum/staking-deposit-cli/), щоб допомогти з генерацією ключів. - - - -Маєте пропозицію щодо інструменту стейкінгу, який ми пропустили? Ознайомтеся з нашою [політикою щодо переліку продуктів](/contributing/adding-staking-products/), щоб дізнатися, чи підійде він, і надіслати його на розгляд. - -## Ознайомтеся з інструкціями щодо самостійного стейкінгу {#staking-guides} - - - -## Поширені запитання {#faq} - -Це кілька найпоширеніших запитань про стейкінг, про які варто знати. - - - -Валідатор — це віртуальна сутність, яка живе на Ethereum і бере участь у консенсусі протоколу Ethereum. Валідатори представлені балансом, відкритим ключем та іншими властивостями. Клієнт валідатора — це програмне забезпечення, яке діє від імені валідатора, зберігаючи та використовуючи його закритий ключ. Один клієнт валідатора може містити багато пар ключів, керуючи багатьма валідаторами. - - - - -Для активації кожної пари ключів, пов’язаної з валідатором, потрібно рівно 32 ETH. Внесення для одного набору ключів більшої суми ETH не збільшує потенціал винагороди, оскільки кожен валідатор обмежений ефективним балансом 32 ETH. Це означає, що ставка виконується з кроком 32 ETH, кожен із власним набором ключів і балансу. - -Не вносьте більше ніж 32 ETH за один валідатор. Це не збільшить ваші винагороди. Якщо для валідатора було встановлено адресу для виведення коштів, зайві кошти понад 32 ETH автоматично буде виведено на цю адресу під час наступного проходження валідатора. - -Якщо самостійний стейкінг здається вам надто вимогливим, спробуйте скористатися постачальником стейкінгу як послуги або, якщо ви працюєте з менше ніж 32 ETH, розгляньте варіант використання пулів стейкінгу. - - - -Перехід в автономний режим, коли мережа фіналізується належним чином, НЕ призведе до скорочення. Невеликі штрафи за бездіяльність стягуються, якщо ваш валідатор недоступний для перевірки певної епохи (кожна тривалістю 6,4 хвилини), але це дуже відрізняється від скорочення. Ці штрафи трохи менші, ніж винагорода, яку б ви отримали, якби валідатор був доступний для підтвердження, а збитки можна відшкодувати за приблизно стільки ж часу, коли ви знову в мережі. - -Зауважте, що штрафи за бездіяльність пропорційні кількості валідаторів, які одночасно перебувають в автономному режимі. У випадках, коли велика частина мережі одночасно перебуває в автономному режимі, штрафи для кожного із цих валідаторів будуть більшими, ніж коли один валідатор недоступний. - -У надзвичайних випадках, якщо мережа припиняє фіналізацію внаслідок того, що понад третина валідаторів перебуває поза мережею, ці користувачі постраждають від так званого квадратичного витоку бездіяльності, тобто експоненціального витоку ETH з облікових записів валідаторів, що перебувають поза мережею. Це дає змогу мережі зрештою самовідновлюватися шляхом спалювання ETH неактивних валідаторів, доки їхній баланс не досягне 16 ETH, після чого їх буде автоматично видалено з пулу валідаторів. Решта онлайн-валідаторів згодом знову складатиме понад 2/3 мережі, задовольняючи супербільшість, необхідну для повторного завершення ланцюжка. - - - -Якщо коротко, це ніколи не може бути повністю гарантовано, але якщо ви дієте добросовісно, ​​запускаєте міноритарний клієнт і зберігаєте свої ключі підпису лише на одній машині одночасно, ризик отримати скорочення майже дорівнює нулю. - -Є лише кілька конкретних типів дій, через які валідатор може бути скорочено й виключено з мережі. На момент написання статті скорочення, які виникли, були виключно продуктом надлишкових установок апаратного забезпечення, коли ключі підпису зберігаються на двох окремих машинах одночасно. Це може ненавмисно призвести до подвійного голосування від ваших ключів, що є порушенням, яке може каратися скороченням. - -Запуск клієнта супербільшості (будь-якого клієнта, який використовується понад 2/3 мережі) також може каратися скороченням, якщо цей клієнт має помилку, яка призводить до розгалуження ланцюга. Це може призвести до несправної вилки, яку буде завершено. Для виправлення назад до запланованого ланцюга потрібно було б подати навколишнє голосування, спробувавши скасувати завершений блок. Це також є порушенням, яке може призвести до скорочення, але його можна уникнути, просто запустивши натомість міноритарний клієнт. - -Еквівалентні помилки в міноритарному клієнті ніколи не завершаться і, отже, ніколи не призведуть до навколишнього голосування, натомість буде просто застосовано штрафи за бездіяльність, а не скорочення. - - - - - -Окремі клієнти можуть дещо різнитися за продуктивністю та інтерфейсом користувача, оскільки кожен розробляється різними командами з використанням різних мов програмування. Потрібно зазначити, що жоден із них не є «найкращим». Усі виробничі клієнти — це чудові частини програмного забезпечення, які виконують однакові основні функції для синхронізації та взаємодії з блокчейном. - -Оскільки всі робочі клієнти надають однакову базову функціональність, насправді дуже важливо вибрати міноритарний клієнт, тобто будь-який клієнт, який зараз НЕ використовується більшістю валідаторів у мережі. Це може здатися нерозумним, але запуск клієнта більшості або надбільшості піддає вас підвищеному ризику скорочення в разі помилки в цьому клієнті. Запуск міноритарного клієнта різко обмежує ці ризики. - -Докладніше про те, чому різноманітність клієнтів є критичною - - - -Попри те що віртуальний приватний сервер (VPS) можна використовувати як заміну домашнього обладнання, фізичний доступ і розташування клієнта валідатора має значення. Централізовані хмарні рішення, як-от Amazon Web Services або Digital Ocean, дають змогу уникнути потреби в отриманні й експлуатації обладнання коштом централізації мережі. - -Що більше клієнтів валідатора працює в одному централізованому хмарному сховищі, то небезпечніше воно стає для цих користувачів. Будь-яка подія, яка виводить цих провайдерів в автономний режим, — атака, нормативні вимоги чи просто перебої в електропостачанні/інтернеті — призведе до того, що кожен клієнт валідатора, який покладається на цей сервер, вийде в автономний режим у той самий час. - -Штрафи за офлайн пропорційні кількості інших користувачів, які перебувають офлайн одночасно. Використання VPS значно підвищує ризик того, що покарання за автономний режим будуть більш суворими, а також підвищує ризик квадратичного витоку або скорочення у разі достатньо великого збою. Щоб мінімізувати власний ризик і ризик для мережі, користувачам наполегливо рекомендується придбати й використовувати власне обладнання. - - - - -Виведення будь-яких коштів із Beacon Chain вимагає зазначення ідентифікаційних даних виведення. - -Нові стейкери встановлюють їх під час створення ключів і внесення депозиту. Наявні стейкери, які ще не вказали їх, можуть оновити свої ключі для підтримки цієї функціональності. - -Якщо облікові дані для виведення коштів встановлено, винагороди (накопичені ETH понад початкові 32) періодично розподілятимуться на вказану адресу автоматично. - -Щоб розблокувати й повернути собі повну суму, вам необхідно також завершити процес виходу зі свого валідатора. - -Докладніше про виведення коштів під час стейкінгу - - -## Довідкові джерела {#further-reading} - -- [Проблема різноманітності клієнтів Ethereum](https://hackernoon.com/ethereums-client-diversity-problem) — _@emmanuelawosika, 2022_ -- [Допомога у різноманітності клієнтів](https://www.attestant.io/posts/helping-client-diversity/) — _Джим Макдональд, 2022_ -- [Різноманітність клієнтів на консенсусному рівні Ethereum](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) — _jmcook.eth 2022_ -- [Як: придбати обладнання для валідатора Ethereum](https://www.youtube.com/watch?v=C2wwu1IlhDc) — _EthStaker 2022_ -- [Крок за кроком: як приєднатися до тестової мережі Ethereum 2.0](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) — _Butta_ -- [Поради щодо запобігання скороченням Eth2](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) — _Рауль Джордан, 2020_ diff --git a/src/content/translations/uk/staking/withdrawals/index.md b/src/content/translations/uk/staking/withdrawals/index.md deleted file mode 100644 index 623bc307fcb..00000000000 --- a/src/content/translations/uk/staking/withdrawals/index.md +++ /dev/null @@ -1,217 +0,0 @@ ---- -title: Виведення ставок -description: На сторінці наведено стислий опис виведення коштів під час стейкінгу, принципу роботи цієї функції, а також порядку дій стейкерів, які бажають отримати свої винагороди. -lang: uk -template: staking -image: ../../../../../assets/staking/leslie-withdrawal.png -alt: Носоріг Леслі з її винагородами за стейкінг -sidebarDepth: 2 -summaryPoints: - - Поліпшення Shanghai/Capella дало змогу виводити кошти під час стейкінгу на Ethereum. - - Оператори валідаторів повинні надати адресу для виведення коштів, щоб увімкнути цю функцію. - - Винагороди автоматично розподіляються кожні кілька днів. - - Валідатори, які повністю виходять зі стейкінгу, отримають залишок балансу. ---- - - -Функцію виведення коштів під час стейкінгу було запроваджено під час поліпшення Shanghai/Capella, яке відбулося 12 квітня 2023 року. Докладніше про поліпшення Shanghai/Capella - - -Під **виведенням коштів під час стейкінгу** мається на увазі переведення ефірів (ETH) з облікового запису валідатора на рівні консенсусу Ethereum (Beacon Chain) на рівень виконання, на якому з ними можна здійснювати транзакції. - -**Винагороди за залишок** понад 32 ETH автоматично й регулярно надсилатимуться на адресу виведення, яку пов’язано з кожним валідатором і надано користувачем. Користувачі також можуть **повністю вийти зі стейкінгу**, у такий спосіб розблокувавши свій загальний баланс валідатора. - -## Винагорода за стейкінг {#staking-rewards} - -Виплати винагород автоматично обробляються для активних рахунків валідаторів із максимально можливим ефективним балансом 32 ETH. - -Будь-який залишок понад 32 ETH, отриманий через винагороди, фактично не внесе вкладу в капітал і не збільшить вагу цього валідатора в мережі, і тому автоматично виводиться як виплата винагороди кожні кілька днів. Ці винагороди не потребують жодної дії від оператора перевірки. Потрібно лише один раз надати адресу для виведення коштів. Усе це ініціюється на рівні консенсусу, а отже платити за газ (плату за транзакцію) на будь-якому кроці не потрібно. - -### Як ми досягли цього? {#how-did-we-get-here} - -Протягом останніх кількох років Ethereum пройшов кілька оновлень мережі, переходячи до мережі, захищеної самим ETH, а не енергозатратним майнінгом, як це відбувалося раніше. Участь у консенсусі на Ethereum зараз називається «стейкінгом», оскільки учасники добровільно заблокували свої ефіри (ETH), виконавши «ставку», щоб мати змогу брати участь у роботі мережі. Користувачі, які дотримуються правил, будуть винагороджені, тоді як спроби обману можуть призвести до покарання. - -З моменту запуску контракту на депозити для стейкінгу в листопаді 2020 року кілька сміливих піонерів Ethereum добровільно заблокували кошти для активації «валідаторів» — спеціальних облікових записів, які мають право формально підтверджувати та пропонувати блоки відповідно до правил мережі. - -До оновлення Shanghai/Capella не можна було використовувати поставлені ETH або отримувати до них доступ. Тепер ви можете за бажанням автоматично отримувати свої винагороди на вибраний рахунок, а також будь-коли вивести поставлені ETH. - -### Як підготуватися? {#how-do-i-prepare} - - - -### Важливі зауваження {#important-notices} - -Надання адреси для виведення коштів є обов’язковим кроком для будь-якого облікового запису валідатора, перш ніж він буде здатний вивести ETH зі свого балансу. - - - Кожному обліковому запису валідатора можна призначити лише одну адресу виведення коштів, один раз. Щойно адресу вибрано й надіслано на рівень консенсусу, її не можна скасувати або змінити знову. Перевірте двічі приналежність і точність наданої адреси, перш ніж надсилати її. - - -Ненадання цієї адреси не становить загрози для ваших коштів, якщо ваша мнемонічна/кодова фраза залишається в безпеці офлайн і не піддавалася жодним вторгненням або компрометації. Збій додавання облікових даних для виведення коштів просто призведе до того, що ETH залишаться заблокованими на рахунку валідатора доти, доки не буде надано адресу для виведення коштів. - -## Повний вихід зі стейкінгу {#exiting-staking-entirely} - -Зазначення адреси для виведення коштів є обов'язковим перед переказом _будь-якої суми_ коштів із балансу облікового запису валідатора. - -Користувачі, які планують повністю вийти зі стейкінгу й вивести всі свої кошти, повинні також підписати та розіслати повідомлення про «добровільний вихід» з ключами валідатора, що запустить процес виходу зі стейкінгу. Це робиться за допомогою вашого клієнта валідатора, надсилається на ваш вузол консенсусу й не вимагає використання газу. - -Час, необхідний для виходу валідатора зі стейкінгу, залежить від кількості інших валідаторів, які також виходять одночасно. Тому тривалість процесу виходу може різнитися. Після завершення процесу цей обліковий запис більше не несе відповідальності за виконання обов'язків мережі валідаторів, не має права на отримання винагороди й не має поставлених ефірів (ETH). Тепер обліковий запис буде позначений для повного виведення коштів. - -Після позначення облікового запису для повного виведення коштів та надання відповідних даних для виведення користувачу потрібно лише чекати. Облікові записи постійно автоматично перевіряються пропонентами блоків на наявність коштів після вибуття зі стейкінгу, і ваш баланс буде повністю переказаний (ця операція також називається «повним виведенням») під час наступного проходження. - -## Коли активуються можливості виведення під час стейкінгу? {#when} - -Можливості виведення під час стейкінгу доступні постійно! Функціонал виведення було активовано в межах оновлення Shanghai/Capella, яке відбулося 12 квітня 2023 року. - -Оновлення Shanghai/Capella дало змогу повертати раніше вкладені ETH на звичайні облікові записи Ethereum. Це закрило коло стейкінгової ліквідності та привело Ethereum на крок ближче до створення стійкої, масштабованої, безпечної децентралізованої екосистеми. - -- [Докладніше про історію Ethereum](/history/) -- [Більше про план розвитку Ethereum](/roadmap/) - -## Як працюють платежі з виведення коштів? {#how-do-withdrawals-work} - -Наявність чи відсутність у конкретного валідатора права на виведення визначається станом самого облікового запису валідатора. У будь-який момент визначення того, чи слід ініціювати виведення з облікового запису, відбувається без жодної участі користувача — процес виконується повністю автоматично на рівні консенсусу в неперервному циклі. - -### Краще сприймаєте інформацію візуально? {#visual-learner} - -Ознайомтеся з поясненням щодо функції виведення під час стейкінгу Ethereum від Finematics: - - - -### «Проходження» валідатора {#validator-sweeping} - -Коли валідатору заплановано запропонувати наступний блок, він зобов'язаний створити чергу виведення, до 16 можливих виведень. Це робиться так: індекси валідаторів перебираються починаючи з 0, і для кожного визначається, чи є можливе виведення для облікового запису відповідно до правил протоколу. Якщо виведення можливе, обліковий запис додається до черги. Валідатор, налаштований на те, щоб пропонувати наступний блок, продовжить роботу з місця, де зупинився попередній, просуваючись впорядковано нескінченно. - - -Уявіть аналоговий годинник. Стрілка на годиннику вказує на годину та рухається в одному напрямку, не пропускаючи жодної години, і зрештою повертається до початку після досягнення останнього числа.

. -Тепер замість чисел від 1 до 12 уявіть, що на годиннику від 0 до N (загальна кількість облікових записів валідаторів, які коли-небудь були зареєстровані на рівні консенсусу, понад 500 000 станом на січень 2023 року).

Стрілка на годиннику вказує на наступний валідатор, який потрібно перевірити на наявність коштів, що підлягають виведенню. Стрілка починає з 0 і просувається повним колом, не пропускаючи жодного облікового запису. Коли буде досягнуто останній валідатор, цикл розпочнеться з початку. -
- -#### Перевірка облікового запису на виведення коштів {#checking-an-account-for-withdrawals} - -Коли ініціатор проходить валідатори й перевіряє їх на можливу необхідність виведення коштів, кожен валідатор, який перевіряється, оцінюється короткою серією питань, щоб визначити, чи слід викликати виведення коштів, і якщо так, то скільки ETH слід вивести. - -1. **Чи була надана адреса для виведення коштів?** Якщо не вказано жодної адреси виведення коштів, рахунок пропускається, а виведення не ініціюється. -2. **Чи можна завершити роботу валідатора й вивести кошти?**Якщо валідатор повністю завершив роботу й ми досягли того, що особовий рахунок вважається «доступним для виведення», буде оброблено повне виведення коштів. Це переведе весь залишковий баланс на адресу виведення коштів. -3. **Чи максимально можливий ефективний баланс становить 32?** Якщо обліковий запис має облікові дані для виведення коштів, не повністю вийшов зі стейкінгу та містить винагороди більше за 32, буде оброблено часткове зняття коштів, яке передає лише винагороди понад 32 на адресу виведення користувача. - -Існує лише дві дії, які виконуються операторами валідатора протягом його життєвого циклу, які безпосередньо впливають на цей потік: - -- надання облікових даних для виведення, щоб дозволити будь-яку форму виведення; -- вихід із мережі, що призведе до повного виведення коштів. - -### Без газу {#gas-free} - -Цей підхід до виведення коштів під час стейкінгу не вимагає, щоб стейкери надсилали транзакції вручну для запиту на виведення певної суми ETH. Це означає, що **не потрібно сплачувати за газ (комісію за транзакцію)**, а виведення не конкурують за наявний блоковий простір виконавчого рівня. - -### Як часто я отримуватиму винагороди за стейкінг? {#how-soon} - -В одному блоці можна обробити щонайбільше 16 виведень. З такою швидкістю можна обробити 115 200 виведень валідаторів за день (за умови відсутності пропущених слотів). Як зазначено вище, валідатори без виправданих виведень буде пропущено, що скорочує час завершення процесу. - -Розширюючи цей розрахунок, ми можемо оцінити час, необхідний для обробки певної кількості виведень: - - - -| Кількість виведень коштів | Час до завершення | -| :-----------------------: | :---------------: | -| 400,00 | 3,5 дня | -| 500,00 | 4,3 дня | -| 600,00 | 5,2 дня | -| 700,00 | 6,1 дня | -| 800,00 | 7,0 дня | - - - -Як бачите, цей процес сповільнюється зі зростанням кількості валідаторів у мережі. Збільшення кількості пропущених слотів може пропорційно уповільнити цей процес, але в загальному це буде представляти повільніший варіант можливих результатів. - -## Часті питання {#faq} - - -Ні, процес надання облікових даних для виведення коштів є одноразовим, а адресу не можна змінити після надсилання. - - - -Коли адресу виведення встановлено на виконавчому рівні, облікові дані виведення для цього валідатора змінюються назавжди. Це означає, що старі облікові дані більше не працюватимуть, а нові будуть спрямовані до облікового запису на виконавчому рівні. - -Адресами виведення коштів може бути смартконтракт (контролюється його кодом) або зовнішній обліковий запис (EOA, контролюється його приватним ключем). Зараз ці облікові записи не мають змоги передавати повідомлення назад на рівень консенсусу, що б сигналізувало про зміну облікових даних валідатора, а впровадження цієї функціональності додало б зайвої складності протоколу. - -Замість зміни адреси виведення коштів для конкретного валідатора користувачі можуть установити як адресу виведення коштів смартконтракт, який може обробляти обертання ключів, як-от Safe. Користувачі, які налаштовують свої кошти до свого особистого зовнішнього облікового запису (EOA), можуть здійснити повне виведення для зняття всіх своїх зареєстрованих коштів, а потім знову зареєструватися, використовуючи нові облікові дані. - - - - -Якщо ви є частиною пулу стейкінгу чи маєте токени стейкінгу, вам слід звернутися до свого постачальника послуг, щоб отримати докладнішу інформацію про те, як здійснюється виведення стейкінгу, оскільки кожна служба працює по-своєму. - -Загалом, користувачі повинні мати змогу повернути основні поставлені ETH або змінити постачальника стейкінгу, яким вони користуються. Якщо певний пул стає надто великим, кошти можуть бути виведені, викуплені та знову застосовані з меншим постачальником. Або, якщо ви накопичили достатню кількість ETH, ви можете займатися стейкінгом вдома. - - - - -Так, якщо ваш валідатор надав адресу для виведення коштів. Її потрібно надати один раз для початкової активації виведення коштів, після чого виплати винагород автоматично запускатимуться кожні кілька днів під час кожного проходження валідатора. - - - - -Ні, якщо ваш валідатор все ще активний у мережі, повне виведення не відбудеться автоматично. Для цього потрібно вручну ініціювати добровільне виведення. - -Після завершення процесу виведення валідатора, якщо обліковий запис має дані для виведення, залишок коштів буде виведений під час наступного проходження валідатора. - - - - -Виведення розроблені для автоматичного виконання, переносячи будь-яку суму ETH, яку не було внесено користувачем для стейкінгу. Це, зокрема, повний баланс для облікових записів, які завершили процес виходу. - -Неможливо вручну запитати конкретну суму ETH для виведення. - - - - -Операторам валідаторів рекомендується відвідати сторінку Виведення на стартовій платформі стейкінгу, на якій ви знайдете докладніші відомості про те, як підготувати свій валідатор до виведення коштів. підготовку, часові рамки подій і докладнішу інформацію про те, як працює процес виведення коштів. - -Щоб спробувати налаштування спочатку на тестовій мережі, почніть роботу на стартовій платформі стейкінгу в тестовій мережі Goerli. - - - - -Ні. Після виходу валідатора й повного зняття його балансу будь-які додаткові кошти, внесені на цей валідатор, автоматично будуть переведені на адресу для виведення під час наступного проходження валідатора. Для повторного стейкінгу ETH потрібно активувати новий валідатор. - - -## Довідкові джерела {#further-reading} - -- [Виведення на стартовій платформі стейкінгу](https://launchpad.ethereum.org/withdrawals) -- [EIP-4895: Протокол ланцюжка Beacon здійснює виведення як операції](https://eips.ethereum.org/EIPS/eip-4895) -- [Ethereum Cat Herders — Шанхай](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) -- [PEEPanEIP #94: Виведення ETH під час стейкінгу (тестування) із Potuz і Hsiao-Wei Wang](https://www.youtube.com/watch?v=G8UstwmGtyE) -- [PEEPanEIP#68: EIP-4895: Ланцюжок Beacon виконує виведення як операції, Алекс Стокс](https://www.youtube.com/watch?v=CcL9RJBljUs) -- [Розуміння ефективного балансу валідатора](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/vi/dao/index.md b/src/content/translations/vi/dao/index.md deleted file mode 100644 index 3c16be97f8e..00000000000 --- a/src/content/translations/vi/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: Các tổ chức tự trị phi tập trung (DAO) -description: Tổng quan về DAO trên Ethereum -lang: vi -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: Đại diện cho biểu quyết của tổ chức tự trị phi tập trung (DAO) đối với một đề xuất. -summaryPoint1: Các cộng đồng được sở hữu bởi thành viên mà không cần sự lãnh đạo tập trung. -summaryPoint2: Một cách an toàn để hợp tác với những người lạ trên Internet. -summaryPoint3: Một nơi an toàn để cam kết tài trợ cho một quỹ cụ thể. ---- - -## Các tổ chức tự trị phi tập trung (DAO) là gì? {#what-are-daos} - -Tổ chức tự trị phi tập trung (DAO) là một tổ chức thuộc quyền sở hữu tập thể, hoạt động dựa trên công nghệ chuỗi khối (blockchain) hướng đến một sứ mệnh chung. - -Các DAO này cho phép chúng ta làm việc cùng những người đồng chí hướng mà không cần đến một cá nhân lãnh đạo đủ tin cậy để quản lý ngân sách và vận hành của tổ chức. Trong tổ chức không có một CEO nhất định có khả năng tiêu tiền bừa bãi, hay một CFO có quyền hành sửa đổi ngân sách. Các quy tắc dựa trên công nghệ chuỗi khối (blockchain) được viết trong các đoạn mã nguồn sẽ quyết định cách hoạt động của tổ chức, và cách ngân khố được sử dụng. - -Chúng có những ngân khố riêng mà không ai có thẩm quyền tiếp cận mà không có sự chấp thuận của nhóm. Các quyết định được quản lý bằng các đề xuất và bầu cử, để đảm bảo tất cả thành viên trong tổ chức đều có tiếng nói, và đảm bảo mọi việc đều diễn ra trong minh bạch trên chuỗi (on-chain). - -## Tại sao chúng ta lại cần đến các tổ chức tự trị phi tập trung (DAO)? {#why-dao} - -Để bắt đầu xây dựng một tổ chức cần có đầu tư và tiền bạc, cộng với sự hợp tác của những người khác. Điều này đòi hỏi phải có rất nhiều sự tin cậy giữa những người mà bạn đang cộng tác. Tuy nhiên, rất khó để tin tưởng ai đó mà bạn mới chỉ tương tác trên Internet. Với các tổ chức tự trị phi tập trung (DAO), bạn không cần phải tin tưởng bất kì ai khác trong nhóm. Bạn chỉ cần tin tưởng vào những đoạn mã của DAO, những đoạn mã này minh bạch 100% và có thể được xác minh bởi bất kì người nào. - -Điều này mở ra vô vàn cơ hội mới cho những sự hợp tác và điều phối toàn cầu. - -### Một so sánh {#dao-comparison} - -| Tổ chức tự trị phi tập trung (DAO) | Một tổ chức truyền thống | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | -| Thường có cấu trúc rõ ràng và dân chủ toàn diện. | Thường có cấu trúc phân tầng. | -| Đòi hỏi các thành viên phải bỏ phiếu cho bất kì một thay đổi nào. | Tùy vào cấu trúc, thay đổi có thể đến từ một đảng phái duy nhất, hoặc việc bỏ phiếu có thể được phe cầm quyền đề nghị. | -| Lá phiếu được đếm và kết quả bỏ phiếu được thi hành một cách tự động mà không cần đến một bên trung gian. | Nếu việc bỏ phiếu được cho phép, lá phiếu được đếm trong nội bộ tổ chức và kết quả của cuộc bỏ phiếu được thi hành một cách thủ công. | -| Những dịch vụ được cung cấp bởi tổ chức được thực hiện một cách tự động theo một phương thức phi tập trung (ví dụ: việc phân bổ của những khoản tiền từ thiện). | Đòi hỏi phải có sự tham gia của con người hoặc sự tự động hóa được điều khiển bởi một quyền lực trung ương, dễ bị thao túng. | -| Mọi hoạt động đều minh bạch và công khai. | Hoạt động thường mang tính riêng tư và không có sự tham gia của cộng đồng. | - -### Những ví dụ về tổ chức tự trị phi tập trung (DAO) {#dao-examples} - -Để giúp làm rõ hơn khái niệm này, sau đây là một số ví dụ về các tổ chức tự trị phi tập trung (DAO): - -- Tổ chức từ thiện - Bạn có thể nhận quyên góp từ bất kỳ ai trên thế giới, và bầu chọn nên hỗ trợ quyên góp cho tổ chức, lý tưởng nào. -- Quyền sở hữu tập thể - Bạn có thể mua tài sản số hoặc vật chất và các thành viên trong tổ chức có thể bầu chọn cách sử dụng các tài sản này. -- Các khoản đầu tư và tài trợ - bạn có thể tạo ra một quỹ đầu tư từ vốn góp chung và bỏ phiếu cho những dự án mà quỹ muốn rót vốn. Tiền lời sau đó có thể được tái phân bổ cho những thành viên của tổ chức (DAO). - -## Những tổ chức tự trị phi tập trung (DAO) hoạt động như thế nào? {#how-daos-work} - -Phần cốt lõi của một tổ chức tự trị phi tập trung (DAO) là các Hợp đồng thông minh, là thứ sẽ đặt ra các quy tắc trong tổ chức và nắm giữ ngân khố cả nhóm. Một khi hợp đồng đã được kích hoạt trên Ethereum, không ai có thể thay đổi luật chơi ngoại trừ bằng một cuộc bỏ phiếu. Nếu bất kì ai cố gắng làm một điều gì đó nằm ngoài phạm vi của luật chơi và logic trong đoạn mã đã được lập trình, hành động đó sẽ thất bại. Và bởi vì ngân khố cũng được định nghĩa bởi hợp đồng thông minh nên không ai có thể dùng tiền mà không có sự chấp thuận của nhóm. Điều này đồng nghĩa với việc những tổ chức tự trị phi tập trung (DAO) không cần một thẩm quyền trung ương. Thay vào đó, tổ chức sẽ đưa ra quyết định tập thể và các khoản chi được thông qua một cách tự động khi đã đủ số phiếu. - -Cách tổ chức này là có thể vì những hợp đồng thông minh trở nên không thể bị thay đổi một khi chúng đã được kích hoạt trên Ethereum. Bạn không thể chỉnh sửa những đoạn mã trong hợp đồng (những điều luật của DAO) mà không bị người khác phát hiện vì tất cả đều được công khai. - - - Hiểu thêm về những hợp đồng thông minh - - -## Ethereum và những tổ chức tự trị phi tập trung (DAO) {#ethereum-and-daos} - -Ethereum là nền tảng hoàn hảo cho những tổ chức tự trị phi tập trung (DAO) bởi một số lý do sau: - -- Cơ chế đồng thuận của Ethereum có sự phân tán đủ rộng và bảng dày thành tích đủ lớn để cho các tổ chức có thể tin tưởng vào mạng lưới. -- Mã của hợp đồng thông minh không thể chỉnh sửa được một khi được kích hoạt, kể cả bởi những người chủ sở hữu của nó. Điều này cho phép tổ chức tự trị phi tập trung (DAO) vận hành bởi những luật chơi đã được lập trình từ ban đầu. -- Các hợp đồng thông minh có thể gửi/nhận tiền. Không có chúng, bạn sẽ cần một bên trung gian đủ tin cậy để quản lý ngân khố của nhóm. -- Cộng đồng của Ethereum mang tính tương hỗ nhiều hơn là cạnh tranh. Điều này cho phép các phương pháp hay nhất và những hệ thống bổ trợ được ra đời một cách nhanh chóng. - -## Các pháp chế của DAO {#dao-governance} - -Có rất nhiều yếu tố cần xem xét khi điều hành một DAO, chẳng hạn như cách thức bỏ phiếu và đề xuất hoạt động. - -### Sự uỷ quyền {#governance-delegation} - -Sự uy quyền giống như phiên bản DAO của đại diện nền dân chủ. Các chủ sở hữu Token ủy quyền phiếu bầu cho những người dùng tự đề cử và cam kết đảm bảo quản trị giao thức và luôn cập nhật thông tin. - -#### Một ví dụ phổ biến {#governance-example} - -[ENS](https://claim.ens.domains/delegate-ranking)– Chủ sở hữu ENS có thể uỷ quyền phiếu bầu cho các thành viên trong cộng đồng để đại diện cho họ. - -### Quản lý giao dịch tự động {#governance-example} - -Ở nhiều DAO, các giao dịch sẽ được thực hiện tự động nếu một số thành viên bỏ phiếu đồng ý. - -#### Một ví dụ nổi tiếng {#governance-example} - -[Nouns](https://nouns.wtf) – Trong Nouns DAO, một giao dịch sẽ tự động được thực hiện nếu đáp ứng đủ số phiếu bầu và đa số phiếu ủng hộ, miễn là nó không bị những người sáng lập phủ quyết. - -### Quản trị đa chữ ký {#governance-example} - -Trong khi DAO có thể có hàng ngàn thành viên bỏ phiếu, tài khoản tiền có thể được lưu trữ trong một ví được chia sẻ bởi 5-20 thành viên cộng đồng hoạt động tích cực, được tin tưởng và thường công khai danh tính (được cộng đồng biết đến danh tính). Sau khi một cuộc bỏ phiếu được tiến hành, những người ký đa chữ ký sẽ thực hiện quyết định của cộng đồng. - -## Các luật của DAO {#dao-laws} - -Vào năm 1977, Wyoming đã phát minh ra LLC để bảo vệ các doanh nhân và giới hạn quyền của họ. Gần đây nhất, họ đã đi tiên phong trong luật DAO thiết lập tư cách pháp lý cho DAO. Hiện tại Wyoming, Vermont và quần đảo Virgin đã có đạo luật DAO dưới một số hình thức. - -#### Một ví dụ nổi tiếng {#law-example} - -[CityDAO](https://citydao.io) – CityDAO đã sử dụng luật DAO của Wyoming để mua 40 mẫu đất gần Công viên Quốc gia Yellowstone. - -## Hội viên của tổ chức tự trị phi tập trung (DAO membership) {#dao-membership} - -Có những mô hình khác nhau cho hội viên của một tổ chức tự trị phi tập trung (DAO). Hội viên có thể quyết định việc bỏ phiếu vận hành như thế nào cũng như phần cốt lõi khác của DAO. - -### Hội viên dựa trên token {#token-based-membership} - -Thường hoàn toàn không cần sự cho phép, tùy thược vào loại token được sử dụng. Hầu hết các token quản trị này có thể được trao đổi tự do trên các sàn giao dịch phi tập trung. Một số khác có thể kiếm được thông qua cung cấp thanh khoản hoặc một vài cơ chế 'proof of work' khác. Dù bằng cách nào thì việc nắm giữ token giúp người sở hữu có quyền bỏ phiếu. - -_Token thường được dùng để quản trị những giao thức phi tập trung lớn hoặc/và chính những token đó._ - -#### Một ví dụ nổi tiếng {#token-example} - -[MakerDAO](https://makerdao.com) – Token của MakerDAO là MKR có sẵn trên các sàn giao dịch phi tập trung và bất kỳ ai cũng có thể mua để có quyền biểu quyết đối với tương lai của giao thức Maker. - -### Hội viên dựa trên cổ phần {#share-based-membership} - -Những tổ chức tự trị phi tập trung (DAO) dựa trên cổ phần cần đến sự cho phép nhiều hơn nhưng vẫn rất cởi mở. Bất kỳ ai cũng có thể đề xuất gia nhập DAO, bằng cách đóng góp cho tổ chức giá trị nào đó, thường dưới dạng token hoặc lao động. Cổ phần đại diện cho quyền bổ phiếu và quyền sở hữu trực tiếp. Hội viên có thể rời bỏ bất cứ lúc nào và được giữ toàn bộ ngân khố tương đương tỉ lệ hội viên đó nắm giữ. - -_Hình thức này thường được dùng cho những tổ chức có sự gắn kết cao và xoay quanh con người như những quỹ từ thiện, công đoàn và câu lạc bộ đầu tư. Nó cũng có thể quản trị những giao thức và token._ - -#### Một ví dụ nổi tiếng {#share-example} - -[MolochDAO](http://molochdao.com/) - Tổ chức tự trị phi tập trung Moloch chuyên về đầu tư cho các dự án liên quan đến Ethereum. Moloch yêu cầu hội viên tiềm năng nộp một đề xuất tham gia. Dự trên đề xuất đó, Moloch có thể đánh giá liệu bạn có kĩ năng chuyên môn và tài chính cần thiết để đưa ra những phán quyết sáng suốt về những ứng viên tương lai hay không. Bạn không thể mua quyền truy cập DAO trên một sàn dịch mở. - -### Tư cách hội viên dựa trên uy tín {#reputation-based-membership} - -Độ uy tín đại diện cho bằng chứng về sự tham gia và trao quyền biểu quyết trong DAO. Không giống như token hoặc tư cách hội viên dựa trên cổ phần, các DAO dựa trên uy tín không thể chuyển quyền sở hữu cho những người đóng góp. Độ uy tín không thể mua, chuyển nhượng hoặc ủy quyền; hội viên DAO phải xây dựng uy tín qua sự đóng góp. Bỏ phiếu trên chuỗi không yêu cầu sự cho phép và các hội viên tiềm năng có thể tự do gửi đề xuất tham gia DAO và yêu cầu độ uy tín và token như một phần thưởng để đổi lấy những đóng góp của họ. - -_Thường được sử dụng để phát triển và quản lí phi tập trung các giao thức và ứng dụng phi tập trung, nhưng cũng rất phù hợp với một loạt các tổ chức như tổ chức từ thiện, tập thể công nhân, câu lạc bộ đầu tư, v.v._ - -#### Một ví dụ nổi tiếng {#reputation-example} - -[DXdao](https://DXdao.eth.link) - DXdao là một tổ chức có quyền xây dựng và quản lý toàn cầu các giao thức và ứng dụng phi tập trung kể từ năm 2019. Nó thúc đẩy quản trị dựa trên quyền lực và sự đồng thuận đa chiều để điều phối và quản lý các quỹ, có nghĩa là không ai có thể dùng tiền để ảnh hưởng đến nó sau này. - -## Gia nhập / khởi phát một tổ chức tự trị phi tập trung (DAO) {#join-start-a-dao} - -### Gia nhập một tổ chức tự trị phi tập trung (DAO) {#join-a-dao} - -- [Những DAO trên Ethereum](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [Danh sách các DAO của DAOHaus](https://app.daohaus.club/explore) -- [Danh sách các DAO của Tally.xyz](https://www.tally.xyz) - -### Khởi phát một DAO {#start-a-dao} - -- [Kêu gọi một DAO với DAOHaus](https://app.daohaus.club/summon) -- [Bắt đầu một Governor DAO với Tally](https://www.tally.xyz/add-a-dao) -- [Tạo ra một DAO được hỗ trợ bởi Aragon](https://aragon.org/product) -- [Khởi phát một thuộc địa](https://colony.io/) -- [Tạo một DAO với sự đồng thuận đa chiều DAOstack](https://alchemy.daostack.io/daos/create) - -## Đọc thêm {#further-reading} - -### Những bài viết về DAO {#dao-articles} - -- [DAO là gì?](https://aragon.org/dao) – [Aragon](https://aragon.org/) -- [Sổ tay DAO](https://daohandbook.xyz) -- [Ngôi nhà của các DAO](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) - [Metagame](https://wiki.metagame.wtf/) -- [Một DAO là gì và để làm gì?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) - [DAOhaus](https://daohaus.club/) -- [Làm thế nào để khởi phát một cộng đồng số hoạt động dựa trên DAO](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) - [DAOhaus](https://daohaus.club/) -- [DAO là gì?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) - [Coinmarketcap](https://coinmarketcap.com) -- [Đồng thuận đa chiều là gì?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) -- [DAO không phải là công ty: Khi sự phân quyền trong tổ chức tự trị có vai trò quan trọng, theo Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) -- [DAO, DAC, DA và Nhiều Hơn Nữa: Hướng Dẫn Thuật Ngữ Không Hoàn Chỉnh](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [Ethereum Blog](https://blog.ethereum.org) - -### Video {#videos} - -- [DAO đóng vai trò gì trong tiền mã hóa?](https://youtu.be/KHm0uUPqmVE) -- [Một DAO có thể tạo nên một thành phố được không?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) - [TED](https://www.ted.com/) diff --git a/src/content/translations/vi/nft/index.md b/src/content/translations/vi/nft/index.md deleted file mode 100644 index 3f4540f4f0e..00000000000 --- a/src/content/translations/vi/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Mã thông báo không thể thay thế (NFT) -description: Tổng quan về NFT trên Ethereum -lang: vi -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: Biểu trưng của Eth được hiển thị qua ảnh ba chiều. -summaryPoint1: Một cách để đại diện cho bất kỳ thứ gì độc nhất dưới dạng tài sản dựa trên Ethereum. -summaryPoint2: NFT đang mang lại nhiều quyền lực hơn cho người tạo nội dung hơn bao giờ hết. -summaryPoint3: Được hỗ trợ bởi các hợp đồng thông minh trên chuỗi khối Ethereum. ---- - -## What are NFTs? {#what-are-nfts} - -NFT là các token độc nhất. Mỗi NFT có các thuộc tính khác nhau (không thể thay thế) và sở hữu tính khan hiếm có thể chứng minh được. Nó khác các loại token như ERC-20 mà mỗi token trong một tệp đều giống nhau y đúc và có cùng các thuộc tính ('thay thế được'). Bạn đâu để ý tờ tiền nào cùng 1 loại đang nằm trong ví của mình, bởi vì tờ tiền cùng loại cũng giống nhau và có giá trị bằng nhau. Tuy nhiên, bạn _phải_ để ý bạn đang sở hữu loại NFT nào, bởi vì chúng đều có các thuộc tính riêng khác nhau ('không thể thay thế'). - -Tính độc nhất của mỗi NFT cho phép chuyển hóa nhiều thứ như tác phẩm nghệ thuật, các bộ sưu tập, hoặc thậm chí là bất động sản thành token, trong đó một NFT độc nhất đại diện cho một tài sản thế giới thực hoặc một vật phẩm số. Quyền sở hữu của tài sản được bảo mật bởi chuỗi khối Ethereum – không một ai có thể chỉnh sửa chứng từ sở hữu hay sao chép/dán để cho ra đời một NFT mới. - - - -## Internet của tài sản {#internet-of-assets} - -NFT và Ethereum giải quyết một số vấn đề mà đang hiện tại tồn tại trên mạng. Trong bối cảnh mọi thứ dần trở nên số hóa, việc mô phỏng những tính chất của các món đồ vật lý như tính khan hiếm, sự đặc trưng, và chứng từ sở hữu là một nhu cầu cần thiết. bằng một cách mà không bị kiểm soát bởi một tổ chức tập trung. Ví dự như, với NFT, bạn có thể sở hữu một tệp nhạc mp3 mà không phụ thuộc vào một ứng dụng bất kỳ của một công ty nào, hoặc bạn có thể sở hữu một cái tên trên mạng xã hội có thể bán được hoặc hoán đổi được, mà không bị một nhà cung cấp nền tảng nào tùy tiện tước đi. - -Sau đây là một phép so sánh giữa Internet của NFT và Internet mà hầu hết chúng ta dang dùng ngày nay... - -### Một phép so sánh {#nft-comparison} - -| Internet của NFT | Internet ngày nay | -| ----------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Bạn sở hữu tài sản của chính mình! Chỉ có mình bạn bán hoặc hoán đổi chúng được. | Bạn thuê một tài sản từ một tổ chức nào đó. | -| NFT mang tính chất đặc trưng về số hóa, không có NFT nào là hoàn toàn giống nhau. | Một bản sao của một thực thể thường không phân biệt được với bản gốc. | -| Quyền sở hữu của một NFT được lưu trữ trên chuỗi khối mà bất kì ai cũng có thể xác thực được. | Chứng từ sở hữu của những sản phẩm số được lưu trữ trên máy chủ kiểm soát bởi các định chế - bạn chỉ có cách tin vào lời của họ. | -| NFT là hợp đồng thông minh trên Ethereum. Điều này có nghĩa là chúng có thể được dùng dễ dàng trong các hợp đồng thông minh và ứng dụng khác trên Ethereum! | Các công ty với vật phẩm số thường yêu cầu cơ sở hạ tầng "khu vườn có tường rào" của riêng họ. | -| Các nhà sáng tạo nội dung có thể bán sản phẩm của họ ở bất kì đâu và có thể tiếp cận với một thị trường toàn cầu. | Các nhà sáng tạo nội dung dựa vào cơ sở hạ tầng và hệ thống phân phối của những nền tảng mà họ sử dụng. Phương thức này thường chịu những hạn chế liên quan đến điều khoản sử dụng và các giới hạn địa lý. | -| Nhà sáng tạo NFT có thể giữ quyền sở hữu với các tác phẩm của mình, và thiết lập phí bản quyền thẳng trong hợp đồng NFT. | Các nền tảng, ví dụ như các dịch vụ phát trực tuyến âm nhạc, nắm giữ phần lớn lợi nhuận từ việc bán sản phẩm. | - -## NFT hoạt động như thế nào? {#how-nfts-work} - -Như token bất kì nào được phân phối trên Ethereum, NFT được phân phối bởi một hợp đồng thông minh. Hợp đồng thông minh tuân thủ một vài tiêu chuẩn NFT (thường là ERC-721 hoặc ERC-1155) có chức năng xác định tính năng của hợp đồng đó. Hợp đồng đó có thể tạo ra ('khởi tạo') nhiều NFT và phân bổ chúng cho một chủ sở hữu riêng biệt. Quyền sở hữu được định sẵn trong hợp đồng bằng cách liên kết các NFT cụ thể tới từng địa chỉ cụ thể. NFT có một mã ID và cũng thường có siêu dữ liệu liên kết làm cho token đó trở nên độc nhất. - -Khi ai đó tạo ra hoặc khởi tạo một NFT, họ thường dùng một phương trình trong hợp đồng thông mình mà phân bổ một NFT cụ thể đó tới địa chỉ của họ. Thông tin này được lưu trữ trong kho của hợp đồng đó, mà cũng là một phần của chuỗi khối. Người sáng tạo ra hợp đồng có thể viết thêm logic vào trong hợp đồng, ví dụ như giới hạn tổng số lượng hay xác định một phí bản quyền cần trả cho người sáng tạo đó mỗi lần một token được chuyển đi. - -## NFT được dùng để làm gì? {#nft-use-cases} - -NFT được dùng cho nhiều thứ, bao gồm: - -- chứng minh rằng bạn đã tham dự một sự kiện -- chứng nhận rằng bạn đã hoàn thành một khóa học -- những vật phẩm sở hữu được cho các trò chơi -- nghệ thuật số -- chuyển hóa các tài sản thực thành token -- chứng nhận định danh trực tuyến của bạn -- quản lý quyền truy cập vào nội dung -- quản lý vé -- tên miền mạng phi tập trung -- tài sản thế chấp trong DeFi - -Có thể bạn là một nghệ sĩ muốn chia sẻ tác phẩm của mình bằng NFT mà không bị mất quyền kiểm soát chúng hoặc hy sinh lợi nhuận của mình cho các bên trung gian. Bạn có thể tạo một hợp đồng mới và định sẵn số lượng NFT, thuộc tính của chúng và một liên kết tới một tác phẩm nghệ thuật cụ thể nào đó. Là nghệ sĩ, bạn có thể lập trình vào hợp đồng thông minh phí bản quyền sẽ được trả cho bạn (ví dụ như chuyển 5% của giá bán tới người sở hữu hợp đồng mỗi lần một NFT được chuyển đi). Bạn luôn luôn có thể chứng minh rằng bạn đã tạo ra những NFT đó bởi vì bạn sở hữu ví mà triển khai hợp đồng đó. Người mua của bạn có thể dễ dàng chứng minh rằng họ sở hữu NFT xác thực từ bộ sưu tập của bạn bởi vì địa chỉ ví của họ được liên kết với một token trong hợp đồng thông minh của bạn. Họ có thể dùng nó trong hệ sinh thái Ethereum và yên tâm về tính xác thực của nó. - -Hoặc xem nó như một vé tham gia một sự kiện thể thao. Giống như một nhà tổ chức sự kiện có thể lựa chọn số lượng vé sẽ bán, tác giả của một NFT có thể quyết định số lượng phiên bản NFT tồn tại. Đôi khi chúng là những phiên bản y hệt nhau, ví dụ như 5000 vé tham dự một sự kiện. Đôi khi một số khác thì được phát hành rất tương đồng nhưng mỗi phiên bản sẽ hơi khác nhau, ví dụ như mỗi tấm vé với một số ghế riêng. Những thứ này có thể được bán và mua giữa người dùng mà không phải trả tiền cho các nhà quản lí vé, và người mua luôn đảm bảo được tính xác thực của vé đó bằng cách kiểm tra địa chỉ của hợp đồng đó. - -Trên ethereum.org, NFT được dùng để xác thực rằng người dùng đã đóng góp vào kho chứa GitHub của chúng tôi hoặc đã tham gia các cuộc trò chuyện, và chúng tôi thậm chí có luôn các tên miền NFT của chính mình. Nếu đóng góp cho ethereum.org, bạn có thể yêu cầu một NFT POAP. Một vài sự kiện gặp gỡ trong crypto đã dùng POAP như vé tham gia. [Đọc thêm về việc đóng góp](/contributing/#poap). - -![ethereum.org POAP](./poap.png) - -Trang web này cũng có một tên miền thay thế được vận hành bởi NFT, **ethereum.eth**. Địa chỉ `.org` của chúng tôi được quản lý một cách tập trung bởi một nhà cung cấp tên miền (DNS), trong khi ethereum`.eth` được đăng kí trên Ethereum thông qua Dịch vụ tên miền Ethereum (ENS). Và nó được sở hữu và quản lý bởi chúng tôi. [Hãy xem sổ lưu trữ ENS của chúng tôi](https://app.ens.domains/name/ethereum.eth) - -[Đọc thêm về ENS](https://app.ens.domains) - - - -### Bảo mật NFT {#nft-security} - -Tính bảo mật của Ethereum đến từ cơ chế đồng thuận bằng chứng cổ phần. Hệ thống được thiết kế để ngăn chặn các hành động phá hoại kinh tế, giúp Ethereum chống được mạo danh. Đây là thứ làm cho NFT trở nên khả thi. Sau khi khối chứa giao dịch NFT của bạn được xác thực xong, kẻ tấn công sẽ tốn hàng triệu ETH để thay đổi. Bất kỳ ai chạy phần mềm Ethereum sẽ ngay lập tức có thể phát hiện tình trạng gian lận bất hợp pháp của NFT đó và kẻ tình nghi sẽ bị phạt tiền và cấm cửa vĩnh viễn. - -Các vấn đề bảo mật liên quan đến NFT thường ít hay nhiều liên quan đến nạn lừa đảo, lỗ hổng hợp đồng thông minh hoặc lỗi người dùng (chẳng hạn như vô tình làm lộ khóa cá nhân), khiến cho việc bảo vệ ví điện tử trở nên cực kì quan trọng đối với chủ sở hữu NFT. - - - Tìm hiểu thêm về bảo mật - - -## Đọc thêm {#further-reading} - -- [Hướng dẫn nhập môn cho NFT](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, tháng 01, 2020_ -- [Công cụ theo dõi EtherscanNFT](https://etherscan.io/nft-top-contracts) -- [Tiêu chuẩn token ERC-721](/developers/docs/standards/tokens/erc-721/) -- [Tiêu chuẩn token ERC-1155](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/zh-tw/community/support/index.md b/src/content/translations/zh-tw/community/support/index.md deleted file mode 100644 index 475030c43ca..00000000000 --- a/src/content/translations/zh-tw/community/support/index.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -title: 以太坊支援 -description: 在以太坊生態系統內獲取支援。 -lang: zh-tw ---- - -# 以太坊支援 {#support} - -## 官方提供的以太坊支援 {#official-support} - -你正在尋找官方的以太坊支援嗎? 第一件你應該知道的事情是以太坊為去中心化。 這代表沒有中心組織、實體或個體會持有以太坊,也因此沒有官方支援頻道。 - -明白以太坊的去中心化本質十分重要,因為任何聲稱是以太坊官方支援的人可能正在試圖欺詐你! 最佳預防騙徒的保護措施是自行學習,並認真看待網路安全。 - - - 以太坊安全及詐騙預防 - - - - 學習以太坊基礎知識 - - -儘管具有如欠缺官方支援之類的問題,很多以太坊生態系統上的團體、社群和專案都很樂意提供協助。你也能夠在此頁找到很多有用的資訊及資源。 仍有疑問? 加入 [ethereum.org discord](/discord/),我們會嘗試提供幫助。 - -## 錢包支援 {#wallet-support} - -錢包出現問題了嗎? 大多數錢包都備有可提供幫助的專用支援團隊: - -- [MetaMask](https://metamask.zendesk.com/hc/) -- [Argent](https://support.argent.xyz/hc/) -- [MyEtherWallet](https://help.myetherwallet.com/) - -_此清單並未列出所有受支援錢包。 是否需要幫你尋找特定的錢包的支援? 加入 [ethereum.org discord](https://discord.gg/ethereum-org),我們會嘗試提供幫助。_ - -尋找以太坊錢包? [請查看我們完整的以太坊錢包清單](/wallets/find-wallet/)。 - -## 開發去中心化應用程式 {#building-support} - -開發可能很難, 但有一些專注發展的空間具有樂意提供幫助且經驗豐富的以太坊開發者。 - -- [Alchemy University](https://university.alchemy.com/#starter_code) -- [CryptoDevs discord](https://discord.gg/Z9TA39m8Yu) -- [Ethereum StackExchange](https://ethereum.stackexchange.com/) -- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) -- [Web3 University](https://www.web3.university/) -- [LearnWeb3](https://discord.com/invite/learnweb3) - -你也可以在我們的[以太坊開發者資源](/developers/)部分找到文件和開發指南。 - -### 模組化 {#dapp-tooling} - -你的問題跟某個特定的質押池、專案或庫相關嗎? 多數專案具有專有的聊天伺服器或論壇,以為你提供支援。 - -常見示例有: - -- [Solidity](https://gitter.im/ethereum/solidity/) -- [ethers.js](https://discord.gg/6jyGVDK6Jx) -- [web3.js](https://discord.gg/GsABYQu4sC) -- [安全帽](https://discord.gg/xtrMGhmbfZ) -- [Truffle](https://discord.gg/8uKcsccEYE) -- [Alchemy](http://alchemy.com/discord) -- [Tenderly](https://discord.gg/fBvDJYR) - -## 運行節點 {#node-support} - -如果你要運行一個節點或者驗證程式,有一些專門的社群可幫助你開始。 - -- [EthStaker discord](https://discord.io/ethstaker) -- [EthStaker reddit](https://www.reddit.com/r/ethstaker) - -大部份開發以太坊用戶端的團隊也具有面向大眾的專有空間,在此你能夠獲得支援及提出疑問。 - -### 執行用戶端 {#execution-clients} - -- [Geth](https://discord.gg/FqDzupGyYf) -- [Nethermind](https://discord.gg/YJx3pm8z5C) -- [Besu](https://discord.gg/p8djYngzKN) -- [Erigon](https://github.com/ledgerwatch/erigon/issues) - -### 共識用戶端 {#consensus-clients} - -- [Prysm](https://discord.gg/prysmaticlabs) -- [Nimbus](https://discord.gg/nSmEH3qgFv) -- [Lighthouse](https://discord.gg/cyAszAh) -- [Teku](https://discord.gg/7hPv2T6) -- [Lodestar](https://discord.gg/aMxzVcr) - -你也可以[在此學習如何運行節點](/developers/docs/nodes-and-clients/run-a-node/)。 - -## 常見問題 {#faq} - -#### 我一直往錯的錢包傳送以太幣 {#wrong-wallet} - -在以太坊進行的傳送不可還原。 不幸的是,如你已經將以太幣傳送至錯的錢包,則沒有方法追回這些資金。 沒有中心組織、實體或個體持有以太坊,這代表沒有人能夠逆轉交易。 因此,在傳送交易前請務必進行雙重核查。 - -#### 如何索要以太坊贈品? {#giveaway-scam} - -以太坊贈品是為了偷取你持有的以太幣而設計好的騙案。 不要被一些高得不真實的回報率給欺騙 - 如果你將以太幣傳送至一個贈品地址,你將不會收到申領的贈品,而且你也不能索要賠償。 - -[有關防止騙案的詳細資訊](/security/#common-scams) - -#### 我的交易卡住了 {#stuck-transaction} - -如果你提交了一個低於所需的交易費,由於網路需求,你在以太坊上的交易有時可能會卡住。 很多錢包會提供一個選項,重新用較高的手續費去提交同一個交易,讓交易能夠順利進行。 另外,你還可以取消正在等待處理的交易。該動作能將一筆交易傳送到你持有的地址,然後使用與待處理交易相同的隨機數繼續。 - -[怎樣在 MetaMask 加速或者取消待完成交易](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) - -[怎樣取消待完成的以太坊交易](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) - -#### 如何在以太坊挖礦? {#mining-ethereum} - -以太坊挖礦已不再可能。 當以太坊由工作量證明更換為權益證明時,挖礦就被關閉了。 現在以太坊沒有礦工了,取而代之的是驗證者。 驗證者質押以太幣並收到因為幫助維持網路安全而獲得的質押酬勞。 - -#### 如何成為質押者/驗證者? {#become-validator} - -要成為驗證者,你必須在以太坊存款合約質押至少 32 個以太幣並設定驗證者節點。 更多資訊可以參考我們的[質押頁面](/staking)和[質押啟動面板](https://launchpad.ethereum.org/)。 diff --git a/src/content/translations/zh-tw/dao/index.md b/src/content/translations/zh-tw/dao/index.md deleted file mode 100644 index f9bdf57a0f0..00000000000 --- a/src/content/translations/zh-tw/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: 去中心化自治組織 (DAO) -description: 以太坊上的去中心化自治組織概要 -lang: zh-tw -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: 在對提案投票的去中心化自治組織代表。 -summaryPoint1: 沒有中心化領導的成員共有社群。 -summaryPoint2: 一個與網路上陌生人合作的安全方式。 -summaryPoint3: 一個將資產投入特定事業的安全場所。 ---- - -## 什麼是去中心化自治組織 {#what-are-daos} - -去中心化自治組織為一種集體擁有、由區塊鏈治理,並致力於一個共同使命的組織。 - -去中心化自治組織使我們不需信任一個良善的領導者來管理資金或經營,便能與世界各地志趣相投的人們共事。 沒有執行長能夠衝動使用資金,也沒有財務長可以作假帳。 取而代之的是,由基於區塊鏈上程式碼所制定的規則來定義組織如何運作以及如何使用資金。 - -組織擁有自己的資金庫,未經團體核准,任何人都無權使用。 每項決策都是經由提案和投票來治理,並確保每位組織成員都能發聲,且任何事都是上鏈且透明的。 - -## 為何我們需要去中心化自治組織? {#why-dao} - -要和他人合作創立涉及經費和金錢的組織,你必須高度信任你的合夥人。 但你很難信任一個只在網路上互動過的人。 使用去中心化自治組織,你不必信任團體中的每個人,只需要相信 100% 透明、任何人都能驗證的去中心化自治組織程式碼。 - -這開啟了許多全球協作與合作的新機會。 - -### 比較 {#dao-comparison} - -| 去中心化自治組織 | 傳統組織 | -| -------------------------------------------------- | ------------------------------------------------------ | -| 通常是扁平組織,而且完全民主。 | 通常等級嚴明。 | -| 任何更改都需要成員投票決定後才能實施。 | 視組織結構而定,可能由部分人進行決策,也可能投票表決。 | -| 不需要可信的中間人便能自動統計投票、執行結果。 | 如果允許投票,會在內部計票,而且投票結果必須人工執行。 | -| 以去中心化方式自動提供服務(例如慈善基金的分配)。 | 需要人工處理,或集中管控自動處理,易受操縱。 | -| 所有活動皆完全公開透明。 | 活動通常是隱密進行,公開程度有限。 | - -### 去中心化自治組織範例 {#dao-examples} - -為了幫助你了解,以下略舉幾個去中心化自治組織的使用範例: - -- 慈善機構 – 你可以接受來自全世界任何人的捐款,並投票決定資助的事業。 -- 共同擁有權 – 你可以購買實體或虛擬資產,且組織成員可以對如何使用資產進行投票。 -- 風險投資和捐款 – 你可以成立風險基金,透過該基金匯集投資資本並投票進行商業投資。 後續收益可以分配給相應的去中心化自治組織成員。 - -## 去中心化自治組織如何運作? {#how-daos-work} - -去中心化自治組織背後的運作架構為其智慧型合約,智慧型合約定義組織的規則,並對該團體的資金庫進行規範。 一旦在以太坊上部署合約,除非投票通過,否則不能修改規則。 任何不符合程式碼規則和邏輯的行為都會失效。 由於資金庫也是以智慧型合約定義,因此任何人都無法不經團體核准而挪用資金。 這意味著去中心化自治組織不需要中心化管理機構。 相反地,團體會共同做出決定,而付款會在投票通過之後自動獲得授權。 - -之所以能夠做到這一點,是因為智慧型合約一旦部署於以太坊,就無法被篡改。 一切都是公開的,只要有人修改程式碼(去中心化自治組織的規則)就會被發現。 - - - 進一步了解智慧型合約 - - -## 以太坊與去中心化自治組織 {#ethereum-and-daos} - -以太坊為去中心化自治組織提供了極佳的基礎,原因如下: - -- 以太坊本身的共識足夠分散,同時建立已久,足以讓組織信任其網路。 -- 智慧型合約程式碼部署後便無法修改,即使是所有人亦然。 這使得去中心化自治組織可以完全按照程式設定的規則運作。 -- 智慧型合約可以發送/接收資金。 如果少了這點,你就需要可信的中間人來管理團體的資金。 -- 事實證明,比起競爭,以太坊社群更趨向合作,使得最佳做法和支援系統得以快速發展。 - -## 去中心化自治組織的治理 {#dao-governance} - -管理去中心化自治組織時有許多考量,例如投票及提案該如何運作。 - -### 授權 {#governance-delegation} - -授權類似去中心化自治組織版本的代議民主。 代幣持有者向自我提名、並承諾管理協議且掌握最新消息的使用者分配選票。 - -#### 知名案例 {#governance-example} - -[以太坊域名服務](https://claim.ens.domains/delegate-ranking)——以太坊域名服務持有者可將其選票分配給積極代表他們參與活動的社群成員。 - -### 自動交易治理 {#governance-example} - -在許多去中心化自治組織中,如達規定人數的成員投予同意,交易將被自動執行。 - -#### 知名案例 {#governance-example} - -[Nouns](https://nouns.wtf) – Nouns DAO 中,如票數達規定數量且大多數票投予同意,只要不被創辦人所否決,一筆交易會自動被執行。 - -### 多簽治理 {#governance-example} - -雖然去中心化治理組織可有上千名的投票成員,資金可存在於一個由 5-20 名被信任且通常資訊公開(由社群所知的公開身份)的活躍社群成員所共享的錢包中。 投票後,多簽簽署人會執行社群的意願。 - -## 去中心化自治組織相關法律 {#dao-laws} - -1977 年,懷俄明州創造了有限責任公司制度以保護創業家並限定其責任。 更近期,懷俄明州首創去中心化自治組織相關法律,給予去中心化自治組織法律地位。 目前懷俄明州、佛蒙特州,以及維京群島皆某種程度上具去中心化自治組織相關法律。 - -#### 知名案例 {#law-example} - -[CityDAO](https://citydao.io)——CityDAO 透過懷俄明州去中心化自治組織的相關法律購買了黃石國家公園附近 40 英畝的地。 - -## 去中心化自治組織成員 {#dao-membership} - -成為去中心化自治組織的成員有多個模式。 成員可以決定投票方式和去中心化自治組織的其他重要事務。 - -### 代幣型成員 {#token-based-membership} - -取決於使用的代幣,通常完全開放。 這類治理代幣大部分都能在去中心化交易所自由地交易。 只有少部分必須透過提供流動性或其他某些「工作量證明」來賺取。 無論是哪一種方式,只要持有代幣就能獲得投票權。 - -_通常用於治理廣泛的去中心化協定及/或代幣本身。_ - -#### 知名案例 {#token-example} - -[MakerDAO](https://makerdao.com)——MakerDAO 的代幣 MKR 在去中心化交易所普遍可得,且任何人皆可買進投票權來決定 Maker 協議的未來。 - -### 股份型成員 {#share-based-membership} - -股份型去中心化自治組織擁有更多權力,但仍然相當公開。 任何潛在的會員都可以申請加入去中心化自治組織,通常會以代幣或工作的形式提供有價值的貢獻。 股份直接代表投票權及所有權。 成員可以隨時帶著自己所佔的股份退出。 - -_通常用於關係較為緊密、以人為中心的組織,例如慈善機構、勞工團體、投資組織等, 也可以治理協定及代幣。_ - -#### 知名案例 {#share-example} - -[MolochDAO](http://molochdao.com/) – MolochDAO 專注於資助以太坊計畫。 想加入為成員必須提出申請,以便團體評估你是否具備必要的專業知識和資金來對潛在的受資助者作出明智判斷。 你無法直接在公開市場購買加入該去中心化自治組織的權限。 - -### 信譽型成員 {#reputation-based-membership} - -信譽代表參與證明,並能授予去中心化自治組織的投票權。 不同於代幣型或股份型成員,信譽型去中心化自治組織不會將所有權轉讓給貢獻者。 信譽不能購買、移轉或授權;去中心化自治組織成員必須透過參與來獲得信譽。 鏈上投票是開放式的,潛在成員可以自由提出加入去中心化自治組織的申請,並要求獲得信譽和代幣作為貢獻的獎勵。 - -_通常用於協定和去中心化應用程式的去中心化開發及治理,但也非常適合各種組織,如慈善機構、勞工團體、投資俱樂部等。_ - -#### 知名案例 {#reputation-example} - -[DXdao](https://DXdao.eth.link) – DXdao 是一個全球主權聯合組織,自 2019 年以來一直致力於建構與治理去中心化協定和應用程式。 它利用信譽型治理和全局共識來協調和管理資金,這意味著沒有人可以透過收購來影響其未來。 - -## 參與/建立去中心化自治組織 {#join-start-a-dao} - -### 參與去中心化自治組織 {#join-a-dao} - -- [以太坊社群去中心化自治組織](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [DAOHaus 的去中心化自治組織清單](https://app.daohaus.club/explore) -- [Tally.xyz 的去中心化自治組織清單](https://www.tally.xyz) - -### 建立去中心化自治組織 {#start-a-dao} - -- [使用 DAOHaus 建立去中心化自治組織](https://app.daohaus.club/summon) -- [使用 Tally 建立一個治理者型去中心化自治組織](https://www.tally.xyz/add-a-dao) -- [建立由 Aragon 支援的去中心化自治組織](https://aragon.org/product) -- [建立 colony](https://colony.io/) -- [使用 DAOstack 全局共識建立去中心化自治組織](https://alchemy.daostack.io/daos/create) - -## 延伸閱讀 {#further-reading} - -### 去中心化自治組織相關文章 {#dao-articles} - -- [什麼是去中心化自治組織?](https://aragon.org/dao)– [Aragon](https://aragon.org/) -- [去中心化自治組織手冊](https://daohandbook.xyz) -- [去中心化自治組織之家](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) -- [何謂去中心化自治組織?它有何用途?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for)– [DAOhaus](https://daohaus.club/) -- [如何創立由去中心化自治組織支援的數位社群](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) -- [什麼是去中心化自治組織?](https://coinmarketcap.com/alexandria/article/what-is-a-dao)– [Coinmarketcap](https://coinmarketcap.com) -- [什麼是全局共識?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c)- [DAOstack](https://daostack.io/) -- [Vitalik,《去中心化自治組織並非法人團體:去中心化在自治組織裡的重要之處》](https://vitalik.ca/general/2022/09/20/daos.html) -- [去中心化自治組織、去中心化自治公司、去中心化應用程式等:不完整術語指引](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [以太坊部落格](https://blog.ethereum.org) - -### 影片 {#videos} - -- [什麼是加密貨幣世界的去中心化自治組織?](https://youtu.be/KHm0uUPqmVE) -- [一個去中心化自治組織是否能建立一座城市?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city)– [TED](https://www.ted.com/) diff --git a/src/content/translations/zh-tw/decentralized-identity/index.md b/src/content/translations/zh-tw/decentralized-identity/index.md deleted file mode 100644 index 4f48b048f78..00000000000 --- a/src/content/translations/zh-tw/decentralized-identity/index.md +++ /dev/null @@ -1,185 +0,0 @@ ---- -title: 去中心化身分 -description: 什麼是去中心化身分,它為什麼很重要? -lang: zh-tw -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/))是由發行人所發布、可加密驗證的防篡改聲明。 實體(如,組織)發行的每個身分證明或可驗證憑證都與它們的去中心化身分識別有關。 - -由於去中心化身分識別儲存在區塊鏈上,任何人都可以在以太坊上交叉驗證發行人的去中心化身分識別,來驗證身分證明的有效性。 實際上,以太坊就像是一個全球目錄,能夠驗證與某些實體相關的去中心化身分識別。 - -去中心化身分識別是讓身分證明能夠自行控制和驗證的原因。 即使發行者不再存在,持有者也始終能夠證明,其身分證明的出處和有效性。 - -透過去中心化身分,來使去中心化身分識別能夠保護個人隱私資訊也至關重要。 例如,如果某人提交一個身分證明(駕駛執照),則驗證方不需要檢查身分證明中資訊的有效性。 反之,驗證者只需要獲得身分證明真實性的加密擔保以及發證機構的身分,就足以確定此證明是否有效。 - -## 去中心化身分中的身分證明類型 {#types-of-attestations-in-decentralized-identity} - -在基於以太坊的身分生態系統中,如何儲存和檢索身分證明資訊與傳統身分管理不同。 以下是在去中心化身分系統中發行、儲存和驗證身分證明的各種方法的概覽: - -### 鏈外身分證明 {#off-chain-attestations} - -將身份證明儲存在鏈上的一個問題是,其中可能包含個人想要保密的資訊。 以太坊區塊鏈具有公開性,因此不適合用於儲存此類身分證明。 - -解決方案是發行身分證明,由使用者在數位錢包中鏈外持有,但使用儲存在鏈上的發行人的去中心化身分識別進行簽名。 這些身分證明被編碼為 [JSON Web 代幣](https://en.wikipedia.org/wiki/JSON_Web_Token),其中包含發行人的數位簽名,從而可以輕鬆驗證鏈外聲明。 - -以下是解釋鏈外身分證明的假設場景: - -1. 某大學(發行人)產生身分證明(數位學歷證書),用其金鑰簽署,然後將證書頒發給 Bob(身分持有者)。 - -2. Bob 申請了一份工作並想向雇主證明他的學歷,因此他分享了行動裝置錢包中的身分證明。 公司(驗證者)可以透過檢查發行人的去中心化身分識別(即,其在以太坊上的公鑰),來確認身分證明的有效性。 - -### 可持續訪問的鏈外身分證明 {#offchain-attestations-with-persistent-access} - -在這種場景下,身分證明被轉換為 JSON 文件並儲存在鏈外(理想情況下儲存在[去中心化雲端儲存](/developers/docs/storage/)平台上,例如 IPFS 或 Swarm)。 然而,JSON 文件的[雜凑值](/glossary/#hash)儲存在鏈上,並透過鏈上註冊系統連結到去中心化身分識別。 所關聯的去中心化身分識別可以是發行人或接收者的身分證明。 - -這種方法使身份證明能夠獲得基於區塊鏈的持久性,同時確保聲明資訊的加密性和可驗證性。 它還允許選擇性揭露,因為私鑰的持有者可以解密資訊。 - -### 鏈上身分證明 {#onchain-attestations} - -鏈上身份證明保存在以太坊區塊鏈上的[智慧型合約](/developers/docs/smart-contracts/)中。 智慧型合約(充當註冊系統)將身分證明對應到相關的鏈上去中心化身分識別(公鑰)。 - -以下範例展示了鏈上身分證明在實踐中的使用方式: - -1. 一家公司(XYZ 公司)計畫使用智慧型合約出售所有權股份,但只想賣給那些已經完成背景調查的買家。 - -2. XYZ 公司可以讓執行背景調查的公司,在以太坊上發行鏈上身分證明。 此身分證明可以證實某人已經通過背景調查,但不會暴露任何個人資訊。 - -3. 出售股份的智慧型合約可以檢查註冊合約以獲得經篩選之買家的身分,從而使智慧型合約可以確定哪些人被允許購買股份。 - -### 靈魂綁定代幣和身分 {#soulbound} - -[靈魂綁定代幣](https://vitalik.ca/general/2022/01/26/soulbound.html)(不可轉讓的非同質化代幣)可以用於收集特定錢包的獨有資訊。 這有效地創建了綁定到特定以太坊地址的唯一鏈上身分,這可能包括代表成就的代幣(例如完成某些特定的線上課程或在遊戲中超過分數門檻)或社區參與代幣。 - -## 去中心化身分的好處 {#benefits-of-decentralized-identity} - -1. 去中心化身分增加了個人對身分識別資訊的掌握。 可以在無需依賴中心化機構和第三方服務的情況下,驗證去中心化身分識別和身分證明。 - -2. 去中心化身分解決方案為驗證和管理使用者身分,提供了一種去信任、無縫且保護隱私的方法。 - -3. 去中心化身分利用區塊鏈技術,在不同方之間建立信任,並提供加密擔保來驗證身分證明的有效性。 - -4. 去中心化身分使得身分資料具有可便攜性。 使用者將身分證明和身分識別儲存在行動裝置錢包中,並可以分享給他們選擇的任一夥伴。 去中心化身分識別和身分證明不會被鎖在發行組織的資料庫中。 - -5. 去中心化身分與新興的零知識證明技術應具有良好的配合,這將使個人能夠證明他們擁有某物或做過某些事,而無需透露那是什麼。 這可以成為一種將信任與隱私結合在一起的強而有力方案,適用於投票等應用方面。 - -6. 去中心化身分能夠防範女巫機制,可識別一人假裝多人來玩遊戲或向某個系統發送垃圾郵件。 - -## 去中心化身分使用案例 {#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/),可以授與持有者訪問線上社群的權利。 - -[使用以太坊登入](https://login.xyz/)功能將允許伺服器能夠確認使用者的以太坊帳戶,並從他們的帳戶地址中獲取所需的身分證明。 這意味著使用者無需記住冗長的密碼,就能夠訪問平台和網站,進而改善使用者的線上體驗。 - -### 2. “了解你的客戶”驗證 {#kyc-authentication} - -許多線上服務的使用,需要提供個人的身分證明和憑證,例如駕駛執照或國家護照。 但這種方式是有問題的,因為使用者的私人資訊有可能會被洩露,並且服務提供商無法驗證身分證明的真實性。 - -去中心化身分使公司能夠跳過傳統的[了解你的客戶 (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) 流程,並透過可驗證憑證來核實使用者身分。 這降低了身份管理的成本,並防止使用偽造文件。 - -### 3 投票和線上社群 {#voting-and-online-communities} - -線上投票和社交媒體是去中心化身分的兩個新應用。 線上投票方案容易受到操縱,尤其是在惡意行為者創建虛假身分進行投票的情況下。 要求個人提供鏈上身分證明可以提高線上投票過程的完整性。 - -去中心化身分可以幫助創建沒有虛假帳戶的線上社群。 例如,每個用使用者可能必須使用鏈上身分系統,如以太坊名稱服務,來驗證他們的身分,從而減少機器人的可能性。 - -### 4 反女巫保護 {#sybil-protection} - -女巫攻擊是指個人欺騙系統使某個系統認為他們是多個人而增加他們的影響力。 [捐款應用程式](https://gitcoin.co/grants/)使用[平方投票法](https://www.radicalxchange.org/concepts/plural-voting/)很容易受到這些女巫攻擊,因為當更多人投票支持時,捐款的價值就會增加,從而激勵使用者將他們的貢獻分配給多個身分。 去中心化身分透過增加每位參與者的負擔來證明他們是真正的人,這有助於防止這種情況發生,而且通常也不必透露具體的私人資訊。 - -## 使用去中心化身分 {#use-decentralized-identity} - -有許多雄心勃勃的項目使用以太坊作為去中心化身分解決方案的基礎: - -- **[以太坊名稱服務 (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/)** - _一個去中心化的數位身分聚合器。_ - -## 延伸閱讀 {#further-reading} - -### 文章 {#articles} - -- [區塊鏈使用案例:數位身分中的區塊鏈](https://consensys.net/blockchain-use-cases/digital-identity/) — _ConsenSys_ -- [什麼是以太坊 ERC725? 區塊鏈上的自我主權身分管理](https://cryptoslate.com/what-is-erc725-self-sovereign-identity-management-on-the-blockchain/) — _Sam Town_ -- [區塊鏈如何解決數位身分問題](https://time.com/6142810/proof-of-humanity/) — _Andrew R. Chow_ -- [什麼是去中心化身分以及你為什麼需要關心?](https://web3.hashnode.com/what-is-decentralized-identity) — _Emmanuel Awosika_ - -### 影片 {#videos} - -- [去中心化身分(直播獎勵環節)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _一個很好的去中心化身分解說影片,創作者 Andreas Antonopolous_ -- [使用以太坊和去中心化身分登錄 Ceramic、IDX、React 和 3ID Connect](https://www.youtube.com/watch?v=t9gWZYJxk7c) — _YouTube 使用教學,作者 Nader Dabit,介紹如何構建身分管理系統,透過以太坊錢包建立、讀取和更新使用者個人資料。_ -- [BrightID - 以太坊上的去中心化身分](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _Bankless 播客節目討論 BrightID,一個以太坊上的去中心化身分解決方案_ -- [鏈外互聯網:去中心化身分 & 可驗證憑證](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — Evin McMullen 在 EthDenver 2022 的演講 - -### 社群 {#communities} - -- [GitHub 上的 ERC-725 聯盟](https://github.com/erc725alliance) — _在以太坊區塊鏈上管理身分的 ERC725 標準的支持者_ -- [SpruceID Discord 伺服器](https://discord.com/invite/Sf9tSFzrnt) — _研究使用以太坊登錄的愛好者和開發者社群_ -- [Veramo Labs](https://discord.gg/sYBUXpACh4) — _一個開發人員社區,致力於為應用程式構建可驗證資料的框架_ diff --git a/src/content/translations/zh-tw/defi/index.md b/src/content/translations/zh-tw/defi/index.md deleted file mode 100644 index ef633a773b5..00000000000 --- a/src/content/translations/zh-tw/defi/index.md +++ /dev/null @@ -1,352 +0,0 @@ ---- -title: 去中心化金融 (DeFi) -description: 以太坊生態系之去中心化金融概要 -lang: zh-tw -template: use-cases -emoji: ":money_with_wings:" -image: ../../../../assets/use-cases/defi.png -alt: 以樂高積木製作的以太幣標誌。 -sidebarDepth: 2 -summaryPoint1: 現行金融系統的全球開放性替代方案。 -summaryPoint2: 讓你借款、儲蓄、投資、交易和進行更多應用的產品。 -summaryPoint3: 基於所有人都可以編寫的開放原始碼技術。 ---- - -去中心化金融是專為網際網路時代建構的開放式全球金融系統,可取代不透明、遭到嚴密控制、以幾十年前的基礎設施和流程維繫的系統, 讓你有能力控制及監管自己的資金, 觸及全球市場,並獲得本地貨幣或銀行以外的替代選項。 去中心化金融產品向所有擁有網際網路連線的人開放金融服務,同時主要是由使用者控制和維護。 到目前為止,已有價值數百億的加密貨幣透過去中心化金融應用程式流通,而且這個數字每天都還在成長。 - -## 何謂去中心化金融? {#what-is-defi} - -「去中心化金融」是任何可以使用以太坊的人(也就是任何擁有網際網路連線的人)都可以存取的金融產品與服務的通稱。 有了去中心化金融,市場能隨時保持開放,沒有中心化的機關可以封鎖付款或讓你無法企及任何產品或服務。 傳統金融服務不但速度緩慢,還可能出現人為錯誤,現在改由任何人都能檢查和審省的程式碼來自動處理,作業更為安全。 - -加密經濟正在迅速發展,提供了放貸、借款、做多/放空、賺取利息等業務的管道。 精通加密經濟的阿根廷人已經在運用去中心化金融來擺脫嚴重的通貨膨脹, 企業也開始運用去中心化金融服務來即時發放員工薪資, 有些人甚至在不需要證明個人身分的情況下,就獲得及償還了數百萬美元的貸款。 - - - -## 去中心化金融 vs 傳統金融 {#defi-vs-tradfi} - -了解去中心化金融潛力的一種最佳方法是了解目前存在的問題。 - -- 有些人沒有開立銀行帳戶或使用金融服務的途徑。 -- 無法獲得金融服務可能會讓人找不到工作。 -- 金融服務可以讓你無法收款。 -- 傳統金融服務還有一項隱藏費用,就是你的個人資料。 -- 政府及中心化機構可以任意關閉市場。 -- 交易時間通常受到特定時區的營業時間所限。 -- 資金移轉可能因為內部人工流程而花上好幾天的時間。 -- 金融服務存在溢價,因為中間機構需要分一杯羹。 - -### 比較 {#defi-comparison} - -| 去中心化金融 | 傳統金融 | -| -------------------------------------------------------------- | -------------------------------------------------------------------------- | -| 你的資金由你自己持有。 | 你的資金由企業持有。 | -| 由你自行管控資金流向及使用方式。 | 你必須相信企業不會不當管理你的資金,例如借貸給高風險借款人。 | -| 移轉資金只需要幾分鐘的時間。 | 支付可能因為人工處理而得花上幾天時間。 | -| 交易活動為匿名方式。 | 金融活動與你的身分綁定。 | -| 去中心化金融對所有人開放。 | 使用金融服務必須申請。 | -| 市場永遠開放。 | 員工需要休息,因此市場會關閉。 | -| 奠基於透明的系統 ── 所有人都能查看產品資料及檢查系統運作狀況。 | 金融機構完全是黑箱作業:你不能要求查看他們的放貸記錄、資產管理記錄等資訊。 | - - - 探索去中心化金融應用程式 - - -## 一切要從比特幣開始說起…… {#bitcoin} - -從許多方面來說,比特幣是第一款去中心化金融應用程式。 比特幣能讓你真正擁有及掌控價值,並傳送到世界上任何一個角落。 它提供了一種方式,讓眾多互不信任的人同意使用一套帳戶帳本,而無需透過可信賴的中間機構。 比特幣對所有人開放,而且沒有人有權改變其規則。 比特幣的規則,例如其稀有度及開放性,是這項技術與生俱來的特色。 在傳統金融中,政府可以印鈔讓你的存款貶值,企業也可以關閉市場,而比特幣與傳統金融截然不同。 - -以太坊便是以此概念為基礎。 和比特幣一樣,以太坊的規則不能任意更改,而且所有人都能使用。 但它進一步使用[智慧型合約](/glossary#smart-contract)讓這種數位貨幣可程式化,使其功能不侷限於存放及傳送價值。 - - - -## 可程式化的貨幣 {#programmable-money} - -這聽起來很奇怪……「我幹嘛把我的錢程式化?」 不過,這只是以太坊代幣的預設功能之一。 所有人都可以在付款時加入程式邏輯。 因此,你可以結合比特幣的控制權和安全性,以及金融機構提供的各種金融服務, 用加密貨幣來做一些比特幣辦不到的事,例如借貸、安排付款、投資指數型基金等等。 - - -
如果你是剛開始使用以太坊,請嘗試我們推薦的去中心化金融應用程式。
- - 探索去中心化金融應用程式 - -
- -## 你可以用去中心化金融來做什麼? {#defi-use-cases} - -大多數金融服務都有去中心化的替代方案。 但以太坊也為打造嶄新的金融產品創造了許多機會。 這個清單還在不斷成長。 - -- [匯款到世界各地](#send-money) -- [讓資金在全球流通](#stream-money) -- [取得穩定幣](#stablecoins) -- [抵押借款](#lending) -- [無抵押借款](#flash-loans) -- [開始儲蓄加密貨幣](#saving) -- [交易代幣](#swaps) -- [擴大投資組合](#investing) -- [為構想募資](#crowdfunding) -- [購買保險](#insurance) -- [管理投資組合](#aggregators) - - - -### 快速匯款到世界各地 {#send-money} - -作為一種區塊鏈,以太坊的核心功能是安全地在全球傳送交易。 和比特幣一樣,以太坊可以讓跨境匯款像傳送電子郵件一樣簡單。 只需從錢包輸入收款人的[以太坊名稱服務名稱](/nft/#nft-domains)(例如 bob.eth)或帳戶地址,你的款項就會在幾分鐘內直接到達對方的帳戶(通常情況下)。 要收發款項,你需要一個[錢包](/wallets/)。 - - - 查看支付去中心化應用程式 - - -#### 讓資金在全球流通…… {#stream-money} - -你可以運用以太坊流通資金。 以太坊可以讓你在幾秒之內支付某人的薪資,供對方隨時取用; 或快速租用物品,如置物櫃或電動滑板車。 - -如果你因為[以太幣](/eth/)的價值可能大幅波動而不想發送或流通以太幣,那麼以太坊上還有其他貨幣選項:穩定幣。 - - - -### 取得穩定幣 {#stablecoins} - -對許多金融產品和一般支出而言,加密貨幣的價格波動是一大問題。 去中心化金融社群以穩定幣解決了這個問題。 穩定幣的價值與其他資產掛鈎,通常是美元這類熱門貨幣。 - -Dai、USDC 等穩定幣的價值和美元的差距通常維持在幾美分之內, 使穩定幣非常適合用於收入或零售。 在南美洲,因為政府發行的貨幣有極大的不確定性,許多人已經在使用穩定幣保護自己的儲蓄。 - - - 深入了解穩定幣 - - - - -### 借款 {#lending} - -向去中心化供應商借款主要有兩種方式。 - -- 點對點,即借款者直接向特定貸款者借款。 -- 資金池,即貸款者將資金(流動性)注入資金池,而借款者從資金池借款。 - - - 查看借款去中心化應用程式 - - -選擇去中心化貸款有許多優勢…… - -#### 在保有隱私的情況下借貸 {#borrowing-privacy} - -今天,資金的借與貸都是圍繞著相關個人進行。 銀行在放款前,需要知道你是不是真的有能力償還貸款。 - -去中心化借貸則不需任何一方表明身分即可運作。 相對地,借款者必須提供抵押品,如果無法償還,抵押品就會自動歸貸款者所有。 有些貸款者甚至接受以非同質化代幣作為抵押品。 非同質化代幣為獨特資產(如繪畫)的契據。 [深入了解非同質化代幣](/nft/) - -透過這種方式,不必接受徵信調查或提供私人資訊也能借款。 - -#### 獲得全球資金 {#access-global-funds} - -選擇去中心化借貸服務時,你可以借入來自全球各地的存款,而不僅止於你選擇的銀行或機構所持有的資金。 這讓貸款更容易取得,也能改善利率。 - -#### 納稅效益 {#tax-efficiencies} - -借款可以讓你獲得需要的資金,而無需出售以太幣(此行為會被課稅)。 相對地,你可以使用以太幣作為抵押品以借貸穩定幣。 如此一來,你便可以在保有以太幣的情況下,獲得所需的現金流。 穩定幣是需要現金時的最佳選擇,因為穩定幣的價值不像以太幣一樣易於波動。 [深入了解穩定幣](#stablecoins) - -#### 閃電貸 {#flash-loans} - -閃電貸是一種較具實驗性的去中心化借貸形式,可以讓你在沒有抵押品或不提供個人資訊的情況下借款。 - -目前非技術人員還無法大規模運用這種模式,但我們已經看出它未來流行的潛力。 - -閃電貸的運作基礎為放款和還款發生在同一次交易內。 如果無法還款,則交易會被還原,就像什麼都沒有發生過一樣。 - -經常使用的資金會注入流動資產池(用於放貸的龐大資金池)。 如果資金在某個時點無人使用,就創造了一個機會,讓人借用此資金來拓展業務,並在借入資金的幾乎同一個時點全額償還。 - -這意味著必須在量身打造的交易中納入大量邏輯。 舉個簡單的例子:某個人透過閃電貸,以某個價格借入一大筆資產,轉而在價格更高的其他交易所出售。 - -所以在這一筆交易中,發生了以下情況: - -- 你以 $1.00 的價格,從 A 交易所借入 X 數量的 $asset -- 你在 B 交易所以 $1.10 的價格售出 X 數量的 $asset -- 接著,你到 A 交易所償還貸款 -- 你賺得了扣除交易手續費後的利潤 - -如果 B 交易所的供給量急速下降,使用者無法購足量額來償還原始貸款,那麼這筆交易就會失敗。 - -要在傳統金融體系內完成以上操作,你需要鉅額資金。 這種財產創造策略只有已經擁有財富的人才能操作。 閃電貸的例子告訴我們,未來「有錢」不見得是「賺錢」的先決條件。 - -[深入了解閃電貸](https://aave.com/flash-loans/) - - - -### 開始儲蓄加密貨幣 {#saving} - -#### 放貸 {#lending} - -你可以透過放貸加密貨幣來賺取利息,並即時看到資金成長。 目前的利息比你當地的銀行高出許多(如果你運氣夠好,可以使用銀行服務的話)。 例如: - -- 你借出 100 Dai(一種[穩定幣](/stablecoins/))給某個類似 Aave 的產品。 -- 你會收到 100 Aave Dai (aDai),此代幣代表著你借出的 Dai。 -- 你的 aDai 會按利率增加,你可以看到錢包裡的餘額在增長。 視年利率而定,幾天或甚至幾小時後,你的錢包餘額可能會變成 100.1234! -- 你可以隨時提取和你的 aDai 餘額等額的一般 Dai。 - - - 查看借貸去中心化應用程式 - - -#### 無損樂透 {#no-loss-lotteries} - -無損樂透(如 PoolTogether)是一種有趣而創新的儲蓄方法。 - -- 你用 100 Dai 代幣購買 100 張樂透。 -- 你會收到 100 個 plDai,代表你的 100 張樂透。 -- 如果其中有一張樂透中獎,你的 plDai 餘額會按獎金池的金額增加。 -- 如果沒有中獎,你的 100 個 plDai 會滾動進入下週的抽獎。 -- 你可以隨時提取相當於 plDai 餘額的一般 Dai。 - -和上述放貸案例一樣,獎金池的資金來自於放貸樂透存款產生的所有利息。 - - - 嘗試 PoolTogether - - - - -### 兌換代幣 {#swaps} - -以太坊有成千上萬種代幣。 去中心化交易所 (DEX) 可以讓你隨時交易不同代幣。 你永遠不會放棄對資產的控制權。 這就像造訪其他國家時到外幣收兌處換匯一樣。 但去中心化金融版本的收兌處永不關閉, 去中心化金融市場全天候開放,其技術可保證永遠有人受理交易。 - -例如,如果你想使用無損樂透 PoolTogether(參閱前文),你需要 Dai 或 USDC 這類代幣。 這些去中心化交易所可讓你將以太幣兌換成這些代幣,完成交易後再兌換回來。 - - - 查看代幣交易所 - - - - -### 進階交易 {#trading} - -對希望獲得更大控制權的交易者而言,還有一些進階選項可以運用。 限價單、永續債、信用交易等都可以實現。 透過去中心化交易,你可以獲得全球流動性,市場永不關閉,而且你始終能控制自己的資產。 - -使用中央化交易所時,你必須在交易前先存入資產,並相信交易所會妥善看管你的資產。 資產存入交易所后就要承擔風險,因為中央化交易所往往是駭客鎖定的目標。 - - - 查看交易去中心化應用程式 - - - - -### 擴大投資組合 {#investing} - -以太坊上有一些資金管理產品可以根據你選擇的策略來擴展你的投資組合。 這是自動化作業,對所有人開放,而且不需要管理人員來分一杯羹。 - -[DeFi Pulse 指數基金 (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 的捐贈,則最終計畫案 A 獲得的資金會多於計畫案 B(具體取決於配比池的規模)。 - -[深入了解平方募資法](https://wtfisqf.com) - - - -### 保險 {#insurance} - -去中心化保險的目標是使保險更加便宜、理賠更快速,同時更為透明。 隨著自動化程度的提高,保險價格可以更加低廉,理賠也可以更加快速。 用以決定索賠的資料完全透明。 - -和其他軟體一樣,以太坊產品也可能受到錯誤或入侵的威脅, 因此目前這個領域有許多保險產品將重點放在保護使用者不會損失資金上。 然而,若干專案開始涵蓋了生活中可能遇到的各種大小意外保障。 Etherisc 的農作物保險就是個很好的例子,這項產品的目標在於[保護肯亞小農對抗乾旱及洪災](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc)。 去中心化保險可以為買不起傳統保險的農民提供更實惠的保障。 - - - 查看保險去中心化應用程式 - - - - -### 彙總工具與投資組合管理工具 {#aggregators} - -有了這麼多服務,你需要找個方法來追蹤所有投資、貸款和交易。 目前有許多產品可以幫助你集中協調所有去中心化金融活動。 這就是去中心化金融開放架構的魅力所在。 團隊可以建立介面供你檢視各產品的餘額並使用其功能。 深入探索去中心化金融之際,你會發現這種工具極為實用。 - - - 查看投資組合去中心化應用程式 - - - - -## 去中心化金融如何運作? {#how-defi-works} - -去中心化金融使用加密貨幣及智慧型合約來提供服務,不需透過中間機構。 在今日的金融體系下,金融機構是交易的保證人。 你的資金是透過金融機構流通,因此賦予了這些機構巨大的權利。 此外,世界上還有數十億人甚至無法使用銀行帳戶。 - -在去中心化金融,智慧型合約取代了交易中的金融機構。 智慧型合約是一種以太坊帳戶,可以持有資金並根據特定條件發送/退還資金。 智慧型合約上線後就沒有人可以篡改,它會永遠依照設定的方式運作。 - -一份用來發放津貼或零用錢的合約可以設定為每週五從 A 帳戶匯款至 B 帳戶。 只要 A 帳戶還有所需的資金,合約就會持續執行。 沒有人能篡改合約,將 C 帳戶設為收款人藉以竊取資金。 - -合約也會公開,供所有人檢查及審核。 這意味著不良合約通常很快就會受到社群監控。 - -確實,這也意味著目前需要仰賴以太坊社群中能閲讀程式碼的技術人員。 以開放原始碼為基礎的社群會協調開發人員參與監控,但這種需求會隨著時間而趨緩,因為智慧型合約會變得越來越容易閲讀,同時也有其他可以證明程式碼可信度的方法誕生。 - -## 以太坊及去中心化金融 {#ethereum-and-defi} - -以太坊為去中心化金融提供了良好的基礎,原因包括: - -- 以太坊或部署在以太坊上的智慧型合約不屬於任何人所有 ── 這讓所有人都有機會使用去中心化金融, 也意味著沒有人可以變更規則。 -- 所有去中心化金融產品都使用著相同的語言:以太坊。 這意味著許多產品可以合作無間地共同運作。 你可以在某個平台上出借代幣,然後透過完全不同的應用程式,在不同的市場中兌換帶有利息的代幣。 這就像可以將銀行的忠誠度點數兌現。 -- 代幣和加密貨幣全都建立在以太坊這個共享帳本上 ── 追蹤交易和所有權全都交給以太坊處理。 -- 以太坊可以實現完全的金融自由 ── 大多數產品不會保管你的資金,控制權完全操之在己。 - -你可以把去中心化金融想成好幾層: - -1. 區塊鏈:以太坊包含了交易記錄和帳戶狀態。 -2. 資產:[以太幣](/eth/)及其他代幣(貨幣)。 -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} - -- [去中心化金融新手指南](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu,2020 年 1 月 6 日_ - -### 影片 {#videos} - -- [Finematics - 去中心化金融教育](https://finematics.com/) – _關於去中心化金融的影片_ -- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _去中心化金融基本知識:在這個偶爾讓人感到困惑的領域裡邁出第一步,你所需要知道的一切。_ -- [加密貨幣白板講解](https://youtu.be/17QRFlml4pA) _- 何謂去中心化金融?_ - -### 社群 {#communities} - -- [DeFi Llama Discord 伺服器](https://discord.gg/buPFYXzDDd) -- [DeFi Pulse Discord 伺服器](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/zh-tw/desci/index.md b/src/content/translations/zh-tw/desci/index.md deleted file mode 100644 index e71fa4ca8a8..00000000000 --- a/src/content/translations/zh-tw/desci/index.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -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/) -- [去中心化科研實驗室](https://www.desci.com/) - -歡迎補充新計畫 - 請先查看我們的[列表政策](/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/nft/index.md b/src/content/translations/zh-tw/nft/index.md deleted file mode 100644 index f3c3705386a..00000000000 --- a/src/content/translations/zh-tw/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: 非同質化代幣 (NFT) -description: 以太坊生態系非同質化代幣概要 -lang: zh-tw -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: 全息投影顯示的以太幣標誌。 -summaryPoint1: 一種用以太坊資產來呈現任何獨特事物的方式。 -summaryPoint2: 非同質化代幣賦予了內容創作者前所未有的強大力量。 -summaryPoint3: 由建置於以太坊區塊鏈上的智慧型合約提供支援。 ---- - -## 什麼是非同質化代幣? {#what-are-nfts} - -每個非同質化代幣都是獨一無二的代幣。 每個非同質化代幣都有不同的屬性(非同質性),它們的稀缺性是可以驗證的。 這與 ERC-20 代幣有明顯分別,其中一組中的每一個代幣都一樣,且具有相同屬性(同質化)。 你不會在乎你錢包內的特定美鈔,因為它們都長得一樣且價值相同。 但你*確實會*在意你自己持有的特定非同質化代幣,因為它們不同於其他的資產,全都有各自的屬性(非同質化)。 - -每個非同質化代幣的獨特性使藝術品、收藏品,甚至房地產等等事物能夠代幣化,即一個特定的唯一非同質化代幣對應到現實世界的一些特定且獨一無二的物品或數位物品。 資產的所有權受到太坊區塊鏈的保障 – 沒有人可以修改所有權紀錄,或以複製/貼上的方式新增一個非同質化代幣。 - - - -## 資產網路 {#internet-of-assets} - -非同質化代幣和以太坊解決了網際網路上現存的某些問題。 在一切事物均邁向數位化的同時,以不受中心化組織控制的方式複製實體物品屬性(如稀有度、獨特性、所有權證明) 的需求也隨之產生。 舉例來說,透過非同質化代幣,你可以擁有某音樂的 mp3 檔,其非某公司特定音樂應用程式專屬的音樂;又或者,你可以擁有可自行販賣或交換的社交媒體帳戶名稱,而平臺供應商無法任意從你手上奪走。 - -相較於我們大多數人今天使用的網際網路,非同質化代幣網際網路的特色如下... - -### 比較 {#nft-comparison} - -| 非同質化代幣網際網路 | 目前的網際網路 | -| ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -| 你擁有自己的數位資產! 只有你可以販售或交換這些資產。 | 你向某些組織租用某資產。 | -| 非同質化代幣具有數位獨特性,每個非同質化代幣皆獨一無二。 | 正品和實體複本往往無法區分。 | -| 非同質化代幣的所有權儲存在區塊鏈上供任何人驗證。 | 數位物品的所有權紀錄儲存在由機構控制的伺服器上–由他們說了算。 | -| 非同質化代幣都是以太坊上的智慧型合約。 這表示以太坊上的其他智慧型合約及應用程式中都能輕易使用這些代幣! | 擁有數位物品的公司通常需要自己的「防火牆防禦地區」(指電信業者或服務供應商擁有控制應用、內容與媒體的能力)基礎架構。 | -| 內容創作者可以在任何地點出售自己的作品,還能進入全球市場。 | 創作者依賴其使用的平台所提供的基礎架構和發佈通路。 這些通常會受到使用條款和地理限制的約束。 | -| 非同質化代幣創作者可以保留自身作品的所有權,並將版稅計費直接編程進非同質化代幣的合約。 | 音樂串流服務等平台分到大部分的銷售利潤。 | - -## 非同質化代幣如何運作? {#how-nfts-work} - -如同任何在以太坊上發行的代幣,非同質化代幣同樣以智慧型合約發行。 智慧型合約符合其中一個非同質化代幣標準(常見的有 ERC-721 或 ERC-1155),其定義了合約中有哪些函式。 合約可建立(「鑄造」)非同質化代幣,並將它們指派給特定持有者。 合約中定義的所有權是將特定的非同質化代幣映射到特定地址。 非同質化代幣具有識別碼,通常也有與它相關聯的元數據,因此可使特定代幣具有唯一性。 - -當某人建立或鑄造非同質化代幣時,他們其實是在執行智慧型合約中的某個函式,合約會將某個特定的非同質化代幣分配給他們的地址。 此資訊記錄在合約的儲存空間中,它也是區塊鏈的一部分。 智慧型合約的創作者可以在合約中撰寫額外邏輯,舉例來說:限制非同質化代幣的總供應量,或定義每當代幣被轉移時,應付多少版稅給創作者。 - -## 非同質化代幣有哪些用途? {#nft-use-cases} - -非同質化代幣有許多用途,例如: - -- 證明你參加過某活動 -- 證明你完成一堂課程 -- 可擁有的遊戲物品 -- 數位藝術 -- 現實資產代幣化 -- 證明你的線上身分 -- 限制內容存取 -- 票務 -- 去中心化的網際網路網域名稱 -- 去中心化金融中的抵押品 - -或許你是位藝術家,想透過非同質化代幣分享你的作品,同時不失去對藝術品的控制權,並因中介而使你的收益受損。 你可以建立一份新合約,並明訂非同質化代幣的數量、它們的屬性,以及連到某些特定藝術品的連結。 作為藝術家,你可以將你應得的版稅編程進智慧型合約(如:每當某非同質化代幣被轉移時,將銷售價格的 5% 撥給合約持有者)。 由於你擁有部署合約的錢包,你隨時也都能證明是你建立了那些非同質化代幣。 你的買家可輕易證明他們擁有賣家收藏品的正版非同質化代幣,因為他們的錢包地址與賣家智慧型合約中的代幣相關聯。 他們可以在以太坊生態系統中使用,並可信任代幣的真實性。 - -又或者以體育賽事的門票為例, 如同賽事主辦者可以決定要販售幾張門票,非同質化代幣的創作者也可以決定要發行幾份複製品。 有時可能是完全相同的複製品,例如 5000 張普通門票; 有時可能會製作好幾種極為類似,但各不相同的複製品,例如指定席的票券。 此類票券可以在不需要給票務員付款的情況下進行點對點買賣,買家可以隨時檢查合約地址,以確保票券的真實性。 - -在 ethereum.org 上,非同質化代幣用於證明人們對我們的 GitHub 儲存庫有所貢獻,或者參加了會議,我們甚至有自己的非同質化代幣網域名稱。 如果你對 ethereum.org 有所貢獻,就可以領取出席證明協議的非同質化代幣。 某些加密貨幣聚會使用出席證明協議作為入場門票。 [深入了解如何貢獻](/contributing/#poap)。 - -![ethereum.org 出席證明協議](./poap.png) - -此網站也有一個由非同質化代幣提供支援的替代網域名稱:**ethereum.eth**。 我們的 `.org` 位址是由網域名稱系統 (DNS) 供應商集中管理,而 ethereum`.eth` 則是透過以太坊名稱服務 (ENS) 於以太坊註冊, 為我們所有,且由我們管理。 [查看我們的以太坊名稱服務 (ENS) 記錄](https://app.ens.domains/name/ethereum.eth) - -[深入了解以太坊名稱服務](https://app.ens.domains) - - - -### 非同質化代幣的安全性 {#nft-security} - -以太坊的安全性來自權益證明。 以太坊系統被設計成以經濟制度抑制惡意行為,這讓以太坊得以防竄改。 這也讓非同質化代幣得以成真。 一旦包含你的非同質化代幣交易的區塊最終化,攻擊者要改變它,就得花費數百萬以太幣。 任何運行以太坊軟體的人皆能立即偵測到對非同質化代幣進行的欺詐性篡改,且惡意行為者也會遭到經濟處罰及驅逐。 - -與非同質化代幣有關的安全問題最常與釣魚詐騙、智慧型合約漏洞或使用者錯誤(如無意間洩漏私密金鑰)有關,所以良好的錢包安全性對非同質化代幣持有者十分重要。 - - - 更多安全相關資訊 - - -## 了解更多 {#further-reading} - -- [非同質化代幣的入門指南](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie,2020 年 1 月_ -- [Etherscan 的非同質化代幣追蹤器](https://etherscan.io/nft-top-contracts) -- [ERC-721 代幣標準](/developers/docs/standards/tokens/erc-721/) -- [ERC-1155 代幣標準](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/zh-tw/refi/index.md b/src/content/translations/zh-tw/refi/index.md deleted file mode 100644 index 21c8886df45..00000000000 --- a/src/content/translations/zh-tw/refi/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: 再生金融 (ReFi) -description: 再生金融概覽及當前使用案例。 -lang: zh-tw -template: use-cases -emoji: ":recycle:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: 建立在可再生原則上的替代性金融系統。 -summaryPoint2: 使用以太坊嘗試解決全球協調危機,如氣候變遷。 -summaryPoint3: 大幅擴展生態效益資產(如已驗證碳權)的工具 ---- - -## 再生金融 (ReFi) 是什麼? {#what-is-refi} - -**再生金融 (ReFi)** 是建立在區塊鏈上的一整套想法及工具,目標是建立可再生經濟,而非榨取或剝削式經濟。 榨取式系統最終會耗盡可用資源並崩潰;若沒有再生機制,這套系統便缺乏恢復力。 再生金融在此假設下運作:貨幣的價值創造必須脫離以非永續的手段,從我們星球及社群抽取資源。 - -相對的,再生金融的目標是透過建立再生循環以解決環境、公共或社會問題。 這些系統為參與者創造了價值,同時也有益於生態系統及社群。 - -再生經濟的概念由[資本研究機構](https://capitalinstitute.org) (Capital Institute) 的 John Fullerton 率先提出,此概念為再生金融的基礎之一。 他提出了組成底層系統健康的八個關聯原則: - -![八個關聯原則](../../assets/use-cases/refi-regenerative-economy-diagram.png) - -再生金融項目透過[智慧型合約](/developers/docs/smart-contracts/)及[去中心化金融 (DeFi)](/defi/) 應用程式來實現這些原則,從而獎勵可再生行為,例如復原衰退的生態系統及促進氣候變遷及生物多樣性減損等國際性議題的大規模合作。 - -再生金融也和[去中心化科研 (DeSci)](/desci/) 運動重疊,此運動將以太坊當成融資、創建、審查、融資、儲存及傳播科學知識的平臺。 去中心化科研工具有益於開發可驗證的再生活動導入及監控之標準及實踐,例如:植樹、消除海洋中的塑膠垃圾,或復原衰退的生態系統等再生活動。 - -## 碳權代幣化 {#tokenization-of-carbon-credits} - -**[自願性碳交易市場 (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** 是為項目融資的一種機制,該項目必須對碳排放產生經驗證的正向影響,能減少持續進行中的碳排放,或消除大氣中已排放的溫室氣體。 這些項目在經過驗證後會收到稱為「碳權」的資產,他們可將其出售給願意支持氣候行動的個人或組織。 - -除了自願性碳交易市場外,也有若干政府批准的官方碳交易市場(「規範市場」),目標是透過特定司法管轄區(如國家或地區)的法律或法規來制定碳權價格,控制可分配的許可供應量。 規範市場能獎勵其司法管轄區內的汙染排放者減少碳排放,但無法消除已被排放的溫室氣體。 - -雖然自願性碳交易市場已發展了數十年,它仍面臨各種問題: - -1. 流動性高度分散 -2. 不透明的交易機制 -3. 手續費過高 -4. 交易速度太慢 -5. 缺乏可擴容性 - -將自願性碳交易市場過渡到以區塊鏈為基礎的新**數位碳交易市場 (DCM)** 可能是一個升級現有碳權驗證、交易及消費技術的好機會。 區塊鏈允許公開驗證數據、更廣泛的使用者存取權,以及更高的流動性。 - -再生金融項目採用區塊鏈科技來緩解傳統市場遇到的諸多問題: - -- **流動性集中於少數流動池中**,任何人都能在裡面自由交易。 大型組織或個人可以直接在流動池中交易,不用手動尋找買家/賣家,也不需要支付參與費用或預先註冊。 -- **所有交易都記錄在公開的區塊鏈上**。 數位碳交易市場中一出現碳權,每筆交易活動的路徑永遠都能被追蹤。 -- **交易幾乎即時完成**。 透過傳統市場獲得大量碳權可能會花上數天或數週的時間,但在數位碳交易市場中只需幾秒即可實現。 -- **交易活動不需要中間人**,中間人還會向你收取高額費用。 根據分析公司的統計,數位碳權[與同等的傳統碳權相比,成本降低了 62%](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne)。 -- **數位碳交易市場既可擴張**,亦可滿足個人及跨國公司的需求。 - -### 數位碳交易市場的核心元件 {#key-components-dcm} - -當前的數位碳交易市場由四個主要元件所組成: - -1. [Verra](https://verra.org/project/vcs-program/registry-system/) 和 [Gold Standard](https://www.goldstandard.org/) 等登記處可確保建立碳權的項目可信、可靠。 他們也運用資料庫來記錄數位碳權的來源,碳權可在其中轉移或用罄(註銷)。 - -一波建立於區塊鏈的創新項目正試圖顛覆該領域的現有企業。 - -2. 碳權跨鏈橋,又稱 代幣轉換器,提供了將碳權由傳統登記處轉移到數位碳交易市場的技術。 著名例子包括 [Toucan Protocol](https://toucan.earth/)、[C3](https://c3.app/)和[Moss.Earth](https://moss.earth/)。 -3. 整合服務是一種向使用者端提供碳減排和/或移除碳權的服務,讓使用者可以宣稱碳權對環境的效益,並與全世界分享他們對氣候行動的支持。 - -像是 [Klima Infinity](https://www.klimadao.finance/infinity) 和 [Senken](https://senken.io/) 提供了第三方開發的各種項目,並在既定標準(如 Verra)下發行;其他如 [Nori](https://nori.com/) 就只提供了以其自家碳權標準開發的特定項目,由他們發行這些項目,他們也為之準備了自己的專門市場。 - -4. 基礎設施促使碳交易市場整體供應鏈的影響和效益隨之擴張。 [KlimaDAO](http://klimadao.finance/) 將流動性當成公共財(允許任何人以透明的價格買賣碳權)供應,透過獎勵來提高碳交易市場和碳註銷(指碳權的配額永久減少)的吞吐量,並提供簡單易用的可交互運作工具來存取相關數據,以及收購和註銷各種代幣化碳權。 - -## 超越碳交易市場的再生金融 {#refi-beyond} - -雖然整體來說,目前各界對碳交易市場極為重視,且此領域中,特別看重從自願性碳交易市場轉換到數位碳交易市場,但「再生金融」一詞並不囿限於碳。 碳權以外的其他環境資產均可被開發和代幣化,這表示其他外部成本也可以在未來經濟體系的基礎層中被定價。 此外,再生式的經濟模型也可用於其他領域,如使用 [Gitcoin](https://gitcoin.co/) 等平方融資平臺為公共財融資。 以開放參與及公平分配資源為核心精神的組織讓每個人都能資助開源軟體項目和教育、環保和社群導向項目。 - -透過將資本由搾取式的做法轉向成再生循環的金錢流,對那些提供了社會、環境,或公共利益,以及可能難以夠過傳統金融取得資金的項目及公司來說,他們因而能順利發展,並更快、更輕鬆地為社會產生正向外部影響。 轉變到此融資模式也開啟了更包容的經濟體系,各種背景的人都可以成為主動參與者,而非僅僅是被動的觀察者。 再生金融是以太坊的願景,可作為一種行動協調機制,解決人類及地球上所有生命正面臨的現存挑戰——並作為新經濟典範的基礎層,促進更包容且更永續的未來數百年。 - -## 關於再生金融的延伸閱讀 - -- [深入了解代幣化碳權及其在經濟中的地位](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) -- [小說《未來部門》(Ministry for the Future),描繪了代幣化碳權在對抗氣候變遷上起到的作用。](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) -- [Taskforce 針對擴張自願性碳交易市場所撰的詳細報告](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) -- [由 Kevin Owocki 和 Evan Miyazono 針對再生金融所建的 CoinMarketCap 術語列表](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/zh-tw/roadmap/beacon-chain/index.md b/src/content/translations/zh-tw/roadmap/beacon-chain/index.md deleted file mode 100644 index c54809a1956..00000000000 --- a/src/content/translations/zh-tw/roadmap/beacon-chain/index.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: 信標鏈(Beacon Chain) -description: 瞭解信標鍊 - 將權益證明引入以太坊的升級。 -lang: zh-tw -template: upgrade -image: ../../../../../assets/upgrades/core.png -summaryPoint1: 信標鏈將權益證明引入以太坊生態系統。 -summaryPoint2: 信標鏈已於 2022 年 9 月與原先的以太坊工作量證明鏈合併。 -summaryPoint3: 信標鏈引入共識邏輯和區塊流言協定,現在可保護以太坊安全。 ---- - - - 信標鏈於 2020 年 12 月 1 日發佈,並於 2022 年 9 月 15 日透過合併正式將權益證明確定為以太坊的共識機制。 - - -## 信標鏈是什麼? {#what-is-the-beacon-chain} - -信標鍊是 2020 年推出的原始權益證明區塊鏈的名稱。 信標鏈的作用是在以太坊主網上啟用權益證明共識邏輯之前,確保它健全且可永續存在。 因此,它與原先的工作量證明以太坊一起運行。 信標鏈是「空」區塊鏈,但在以太坊上,要從工作量證明過渡到權益證明,需要指示信標鏈接受來自執行用戶端的交易資料,將它們打包進區塊,並使用基於權益證明的共識機制,將它們整合成一個區塊鏈。 與此同時,原始的以太坊用戶端關閉挖礦、區塊廣播和共識邏輯,將它們全部交給信標鏈。 這個事件稱為[合併](/roadmap/merge/)。 一旦合併發生,即不再有兩個區塊鏈。 相反,只有一個權益證明以太坊,每個節點現在需要兩個不同的用戶端。 信標鏈目前是共識層,是處理區塊流言(註:gossip,一種分散式協定)和共識邏輯的共識用戶端點對點網路,而原始用戶端則形成執行層,負責傳播流言和執行交易,以及管理以太坊狀態。 這兩層可以用引擎 API 相互通訊。 - -## 信標鏈可以做什麼? {#what-does-the-beacon-chain-do} - -信標鏈是帳戶帳本的名稱,在以太坊[質押者](/staking/)開始驗證真正的以太坊區塊前,信標鏈會指揮並協調這些質押者。 但它並不處理交易或智慧型合約互動,因為這些事是在執行層完成的。 信標鏈負責區塊和證明處理、運行分叉選擇演算法、管理獎勵和懲罰等事務。 請參閱[節點架構頁面](/developers/docs/nodes-and-clients/node-architecture/#node-comparison)瞭解更多內容。 - -## 信標鏈的影響 {#beacon-chain-features} - -### 質押簡介 {#introducing-staking} - -信標鏈將[權益證明](/developers/docs/consensus-mechanisms/pos/)引入以太坊。 這可以保證以太坊的安全,驗證者可以在此過程中賺取更多以太幣。 實際上,你需要使用質押以太幣來啟用驗證者軟體。 身為質押者,你將運行在鏈中建立及驗證新區塊的軟體。 - -質押的目的與[挖礦](/developers/docs/mining/)相似,但在很多方面有所不同。 挖礦需要大量的前期支出,包括強大的硬體和能耗,從而產生規模經濟並促進中心化。 挖礦也不需要將任何資產鎖倉以作為抵押品,這限制了協定在攻擊發生後懲罰作惡者的能力。 - -相較於工作量證明,過渡到權益證明後,以太坊的安全性和去中心化程度大幅提升。 參與網路的人越多,去中心化程度和安全性越高,抵禦攻擊的能力也越強。 - -使用權益證明作為共識機制是[我們現在擁有的安全、環保、可擴容的以太坊](/roadmap/vision/)的基石。 - - - 若有興趣成為驗證者或幫助保護以太坊安全,請瞭解有關質押的更多資訊。 - - -### 針對分片進行設定 {#setting-up-for-sharding} - -自信標鏈與原先的以太坊主網合併以來,以太坊社群便開始尋找網路擴容方案。 - -權益證明的優點是,在任何時間都擁有所有經核准區塊產生者的註冊表,每個人都各自質押以太幣。 此註冊表奠定了分而治之的基礎,同時也可靠地劃分了具體的網路責任。 - -這種責任與採用工作量證明時的責任相反。採用工作量證明時,礦工對網路沒有義務,可以隨時停止挖礦並永久關閉其節點軟體,而不需承擔後果。 此外,也沒有已知區塊提交者的註冊表,並且沒有可靠的方法來安全地劃分網路責任。 - -[更多分片相關更多資訊](/roadmap/danksharding/) - -## 不同升級之間的關聯 {#relationship-between-upgrades} - -所有以太坊升級都存在某種程度的關聯。 所以,我們來回顧一下信標鏈會如何影響其他升級。 - -### 信標鏈和合併 {#merge-and-beacon-chain} - -起初,信標鏈獨立於以太坊主網而存在,但兩者已於 2022 年合併。 - - - 合併 - - -### 分片與信標鏈 {#shards-and-beacon-chain} - -僅當採用權益證明共識機制時,分片才能安全地進入以太坊生態系統。 已與主網「合併」的信標鏈引入了質押,為未來擴容以太坊所需的分片機制鋪平道路。 - - - 分片鏈 - - -## 衍生閱讀 - -- [關於以太坊未來升級的更多資訊](/roadmap/vision) -- [關於節點架構的更多資訊](/developers/docs/nodes-and-clients/node-architecture) -- [關於權益證明的更多資訊](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/zh-tw/roadmap/future-proofing/index.md b/src/content/translations/zh-tw/roadmap/future-proofing/index.md deleted file mode 100644 index e57f15c9200..00000000000 --- a/src/content/translations/zh-tw/roadmap/future-proofing/index.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: 面向未來的以太坊 -description: 不論未來如何發展,這些升級可鞏固以太坊作為有韌性的去中心化基礎層的地位。 -lang: zh-tw -image: ../../../../../assets/roadmap/roadmap-future.png -alt: "以太坊開發藍圖" -template: roadmap ---- - -開發藍圖的有些部分在短期內並不是一定要用於擴容或保護以太坊,其目的是為以太坊未來的長期穩定性與可靠性奠定基礎。 - -## 抗量子技術 {#quantum-resistance} - -當量子計算成為現實的時候,有一部分用於保護當今以太坊的密碼學技術將會受到攻擊。 儘管量子電腦可能還需幾十年的時間才能對現代密碼學構成真正的威脅,但建立以太坊的目的是確保未來幾個世紀的安全。 這意味著,我們應該盡速[在以太坊部署抗量子技術](https://consensys.net/blog/developers/how-will-quantum-supremacy-affect-blockchain/)。 - -目前以太坊開發者遇到的挑戰是,現在的權益證明協定高度仰賴非常高效的簽名方案(即 BLS)來匯集有效區塊上的投票。 這種簽名方案可以被量子電腦破解,但其他抗量子替代方案又不夠有效率。 - -眾所周知,以太坊中多個地方用於產生加密密鑰的[「KZG」承諾方案](/roadmap/danksharding/#what-is-kzg)不具抗量子能力。 目前,這個風險是使用「可信設定」來規避的,其中許多使用者會產生無法被量子電腦逆向工程的隨機性。 然而,理想的解決方案還是引入量子安全密碼學。 現在有兩種能夠有效替代 BLS 方案的主流方案:[STARK 簽名](https://hackmd.io/@vbuterin/stark_aggregation)和[網格簽名](https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-lattice-encryption-326ac66e3175)。 這些方案仍處於研究與試驗開發階段。 - - 閱讀 KZG 與可信設定相關資訊 - -## 更便捷、更高效的以太坊 {#simpler-more-efficient-ethereum} - -複雜性使得產生錯誤及漏洞的機率提高,導致攻擊者有機可乘。 然而,開發藍圖中也包括精簡以太坊、移除歷經好幾次升級後已不再需要或可以改進的程式碼。 對開發者來說,更精簡、單純的程式碼庫更容易維護和理解。 - -業界將對[以太坊虛擬機 (EVM)](/developers/docs/evm) 進行多項更新,以使其更簡單、更高效。 其中包括[移除 SELFDESTRUCT 操作碼](https://hackmd.io/@vbuterin/selfdestruct),這是一個不常用且已不需要的指令,某些情況下可能帶來危險,特別是和以太坊未來升級的儲存模型一起使用時。 此外,以太坊用戶端仍然支援一些舊的交易類型,現在完全可以移除。 Gas 的計算方式也有改進空間,可以引入更高效的演算法來進行一些加密運算。 - -同樣,目前以太坊用戶端的其他部分也可以進行更新。 其中一個範例是,目前執行和共識用戶端使用的是不同類型的資料壓縮方案。 若能在整個網路上統一壓縮方案,在用戶端之間分享資料會變得更簡單直覺。 - -## 目前進度 {#current-progress} - -大部分面向未來的以太坊升級都仍在研究階段,且距離實作還有數年。 像移除 SELF-DESTRUCT 以及統一執行和共識用戶端中所用的壓縮方案這樣的升級,可能比引入抗量子密碼學更快實現。 - -**了解更多** - -- [Gas](/developers/docs/gas) -- [以太坊虛擬機](/developers/docs/evm) -- [Data structures](/developers/docs/data-structures-and-encoding) diff --git a/src/content/translations/zh-tw/roadmap/index.md b/src/content/translations/zh-tw/roadmap/index.md deleted file mode 100644 index 46d69b06702..00000000000 --- a/src/content/translations/zh-tw/roadmap/index.md +++ /dev/null @@ -1,117 +0,0 @@ ---- -title: 以太坊開發藍圖 -description: 以太坊實現更高可擴容性、安全性和永續性的路徑。 -lang: zh-tw -template: roadmap -image: ../../../../assets/roadmap/roadmap-main.png -alt: "以太坊開發藍圖" -summaryPoints: -buttons: - - label: 進一步升級 - toId: 即將發生的變化 - - label: 過往的升級 - to: /history/ - variant: 概述 ---- - -雖然以太坊已經是強大的全球協調平台,但仍在不斷改進當中。 一系列雄心勃勃的改進將把以太坊從本來的型態升級為一個全面擴容、韌性最大的平台。 這些升級已在以太坊開發藍圖中列出。 - -**若要進一步瞭解過往的以太坊升級,請造訪我們的[歷史](/history/)頁面** - -## 以太坊將發生哪些變化? {#what-changes-are-coming} - -以太坊開發藍圖概述了未來將對協定進行的具體改進。 整體而言,開發藍圖會給以太坊使用者帶來以下好處: - - - - - - - - -## 以太坊為何需要開發藍圖? {#why-does-ethereum-need-a-roadmap} - -以太坊會定期升級,以提高其可擴容性、安全性或永續性。 以太坊的核心優勢之一是適應研發中出現的新想法。 以太坊具備出色的適應力,能夠靈活地應對新出現的挑戰並跟上最先進的技術突破。 - - - -以太坊的開發藍圖主要是研發人員多年努力的成果,因為協定的技術性非常強,不過任何有想法與動力的人皆可參與。 理念通常始於論壇上的討論,比如 [ethresear.ch](https://ethresear.ch/)、[以太坊魔術師](https://www.figma.com/exit?url=https%3A%2F%2Fethereum-magicians.org%2F) 或以太坊研發 Discord 伺服器。 它們可能是對新發現的漏洞的回應、在應用層工作的組織提出的意見(比如去中心化應用程式和交易所),或是對最終使用者已知問題的解決辦法(比如成本或交易速度)。 當這些理念成熟之後,可以作為 [以太坊改進提案] 提出 (https://eips.ethereum.org/)。 這一切都是公開進行的,因此社群中的每個人都可以隨時發表意見。 - -[有關以太坊管理體系的更多資訊](/管理體系/) - - - - -

ETH2 是什麼?

- -

在轉向權益證明之前,「Eth2」一詞通常用於描述以太坊的未來,但現在已被逐步淘汰,取而代之的是更精確的術語。它最初用來區分轉換到權益證明之前和之後的以太坊網路,有時指不同的以太坊用戶端(執行用戶端有時稱為 ETH1 用戶端,共識用戶端有時稱為 ETH2 用戶端)。

- -
- -## 以太坊的開發藍圖會隨時間而變更嗎? {#will-ethereums-roadmap-change-over-time} - -是的,幾乎可以肯定會。 開發藍圖是最新的以太坊升級計劃,涵蓋近期和未來的計劃。 我們預計隨著新資訊和技術的出現,開發藍圖也會變更。 - -將以太坊的開發藍圖視為改進以太坊的一系列意圖;這是核心研究者和開發者對以太坊最優前進路徑的最佳假設。 - -## 開發藍圖將於何時完成? {#when-will-the-roadmap-be-finished} - -以太坊會在接下來的六個月實作部分升級(比如質押提款);其他的優先級較低,未來 5-10 年內可能不會實作(比如抗量子性)。 給出每次升級的精確時間很難預測,因為許多開發藍圖上的事項是並行處理的,並以不同速度開發。 升級的緊迫性也會隨著時間的推移而變化,這取決於外部因素(例如,量子電腦的效能和可用性突然提升可能導致抗量子密碼學的實作更加緊急)。 - -可以將以太坊的發展類比為生物進化。 相較於抗拒改變的網路,能夠適應新挑戰及維持健康的網路更可能成功,不過隨著網路的效能、可擴容性和安全性越來越高,需要對協定進行的變更也會減少。 - -## 升級時我需要做什麼嗎? {#do-i-have-to-do-anything-when-there-is-an-upgrade} - -升級往往不會影響最終使用者,除了提供更好的使用者體驗和更安全的協定,或許還提供更多與以太坊互動的選項。 最終使用者並不需要主動參與升級,也不需要做任何事來保護資產。 節點營運者需要更新他們的用戶端,為升級做好準備。 有些升級可能帶來適用於應用程式開發者的變更。 舉例來說,完成歷史記錄到期升級之後,應用程式開發者可從新來源取得歷史資料。 - -## The Verge、The Splurge 等等將如何? {#what-about-the-verge-splurge-etc} - -[Vitalik Buterin 提出了以太坊發展藍圖的願景](https://twitter.com/VitalikButerin/status/1588669782471368704),發展藍圖上的事項被分為多個類別,根據各自對以太坊架構的影響相互關聯。 其中包括: - -- 合併 (The Merge):從工作量證明過渡到權益證明的相關升級 -- 激增 (The Surge):透過卷軸和資料分片進行與可擴容性相關的升級 -- 災厄 (The Scourge):與最大可提取價值的抗審查性、去中心化和協定風險相關的升級 -- 邊際 (The Verge):使得驗證區塊更容易的升級 -- 淨化 (The Purge):有助降低運行節點的運算成本和簡化協定的升級 -- 誇耀 (The Splurge):不屬於上述類別的其他升級 - -我們決定不使用這些術語,因為想使用更簡單、更以使用者為中心的模型。 雖然我們使用以使用者為中心的語言,但願景仍然與 Vitalik 提出的願景相同。 - -## 分片會如何? {#what-about-sharding} - -分片是指將以太坊區塊鏈分割,使部分驗證者只需負責所有資料中的一小部分。 這原本是以太坊的擴容方式。 然而,二層網路卷軸的發展速度比預期快得多,並且已經提供大量擴容,並且 Proto-Danksharding 實作後將提供更多功能。 這意味著已不再需要「分片鏈」,並且已將其從開發藍圖中刪除。 - -## 在尋找特定的技術更新嗎? {#looking-for-specific-technical-upgrades} - -- [Danksharding](/roadmap/danksharding) - Danksharding 透過新增資料的 blob(註:二進位大型物件)到以太坊區塊中,使二層網路卷軸的成本大大降低。 -- [質押提款](/staking/withdrawals) - 上海/卡佩拉在以太坊上升級啟用了質押提款,允許人們解套質押的以太幣。 -- [單一時隙最終確定性](/roadmap/single-slot-finality) - 無需等待十五分鐘,就可以在同一時隙內提出並最終確定區塊。 這對於應用程式來說更方便,也更難被攻擊。 -- [提交者-建置者分離](/roadmap/pbs) - 讓不同的驗證者承擔區塊建置和區塊提交任務,為以太坊達成共識建立了一種更公平、更抗審查且更有效的方式。 -- [秘密領導者選舉](/roadmap/secret-leader-election) - 可以使用巧妙的密碼學來確保目前區塊提交者的身分不被公開,從而保護他們免遭某些類型的攻擊。 -- [帳戶抽象](/roadmap/account-abstraction) - 帳戶抽像是一類升級,支援以太坊上原生的智慧型合約錢包,而不必使用複雜的中間件。 -- [Verkle 樹](/roadmap/verkle-trees) - Verkle 樹是一種資料結構,可用於在以太坊上啟用無狀態用戶端。 這些「無狀態」用戶端只需少量的儲存空間,但仍然能夠驗證新區塊。 -- [無狀態](/roadmap/statelessness) - 無狀態用戶端可以驗證新區塊,不必儲存大量資料。 這將提供運行節點的所有好處,而成本僅為目前的一小部分。 diff --git a/src/content/translations/zh-tw/roadmap/merge/index.md b/src/content/translations/zh-tw/roadmap/merge/index.md deleted file mode 100644 index 9141525f985..00000000000 --- a/src/content/translations/zh-tw/roadmap/merge/index.md +++ /dev/null @@ -1,228 +0,0 @@ ---- -title: 合併 -description: 瞭解「合併 - 當以太坊主網採用權益證明時」的相關資訊 -lang: zh-tw -template: upgrade -image: ../../../../../assets/upgrades/merge.png -summaryPoint1: 以太坊主網使用權益證明,但以前並非總是如此。 -summaryPoint2: 從原本的工作量證明機制到權益證明的升級稱之為「合併」(The Merge) -summaryPoint3: 合併指原本的以太坊主網與稱為信標鏈的獨立權益證明區塊鏈合併,現在作為一條鏈存在。 -summaryPoint4: 合併將以太坊的能耗降低了大約 99.95%。 ---- - - - 「合併」已於 2022 年 9 月 15 日執行。 這使得以太坊完全過渡到權益證明共識,正式棄用工作量證明並將能耗降低大約 99.95%。 - - -## 「合併」是什麼? {#what-is-the-merge} - -合併指將以太坊的原始執行層(自[創世](/history/#frontier)以來就存在的主網)與其新的權益證明共識層「信標鏈」結合在一起。 它減少了對能源密集型挖礦的需求,而是藉由質押的以太幣來確保網路安全。 這是實現以太坊「更高的可擴容性、安全性和永續性」願景的真正令人興奮的一步。 - - - -一開始,[信標鏈](/roadmap/beacon-chain/)與[主網](/glossary/#mainnet)是分別發佈的。 以太坊主網及其所有帳戶、餘額、智慧型合約以及區塊練狀態繼續受到[工作量證明](/developers/docs/consensus-mechanisms/pow/)的保護,即使信標鏈使用[權益證明](/developers/docs/consensus-mechanisms/pos/)並行運作。 合併完成即表示這兩個系統最終結合在一起,權益證明永久取代工作量證明。 - -將以太坊想像成一艘宇宙飛船,還未完全準備好星際旅行就已經升空。 以太坊社群藉由信標鏈打造全新的引擎與堅固的外殼。 經過大量的測試後,是時候在飛行旅途中以熱插拔的方式將舊引擎更換為新引擎了。 這將全新且更高效的引擎合併到現有的飛船中,使之能夠進行長達數光年的太空之旅。 - -## 與主網合併 {#merging-with-mainnet} - -從創世到合併之前,工作量證明一直保護著以太坊主網的安全。 這使得我們都習慣的以太坊區塊鏈於 2015 年 7 月誕生,並具備所有熟悉的功能——交易、智慧型合約、帳戶等。 - -在以太坊整個發展歷程中,開發者們一直在為最終從工作量證明過渡到權益證明努力準備著。 2020 年 12 月 1 日,信標鏈作為主網的獨立區塊鏈建立,與主網並行運行。 - -信標鏈原本並沒有處理主網的交易, 而是透過商定活躍的驗證者及其帳戶的餘額來就其自己的狀態達成共識。 廣泛的測試完成後,就是讓信標鏈就真實資料達成共識的時候了。 合併之後,信標鏈會成為所有網路資料的共識引擎,包含執行層的交易以及帳戶餘額。 - -合併代表正式轉用信標鏈作為區塊生產引擎。 挖礦不再是生產有效區塊的方式。 相反,權益證明驗證者已擔任這個角色,現在負責處理所有交易的有效性及提交區塊。 - -合併中,歷史記錄不會丟失。 隨著主網與信標鏈合併,以太坊的所有交易記錄也已一併整合。 - - -這種向權益證明的過渡改變了以太幣的發行方式。 瞭解合併前後的以太幣發行的更多相關資訊。 - - -### 使用者及持有者 {#users-holders} - -**合併並不會對持有者或使用者造成任何影響。** - -*再次提醒:*作為以太幣或其他以太坊數位資產的使用者或持有者,以及非節點運行質押者,**在合併前,你並不需要針對自己的資金或錢包採取任何行動**。以太幣還是原本的以太幣。 並沒有所謂的「舊以太幣」/「新以太幣」或「ETH1」/「ETH2」,而且合併前後錢包的使用方式也完全一樣。若有人告訴你其他的說法,那他很可能是個騙子。 - -儘管不再使用工作量證明,以太坊自從創世以來的完整歷史記錄將完整保留,不會因為轉用權益證明而有所改變。 合併前即存在於錢包的所有資金,合併之後一樣可用。 **無須採取任何行動即可升級。** - -[關於以太坊安全性的更多資訊](/security/#eth2-token-scam) - -### 節點營運者與去中心化應用程式開發者 {#node-operators-dapp-developers} - - - -主要行動事項包括: - -1. 同時運行共識用戶端及執行用戶端;合併之後,無法再使用取得執行資料的第三方端點。 -2. 使用共用的 JWT 金鑰來驗證執行與共識用戶端,以便他們能夠安全地通訊。 - 3 設定「收費」地址以接收賺取的礦工費小費/礦工可提取價值 (MEV)。 - -在完成上述兩點以前,你的節點會顯示為「離線」,直到兩個層皆同步且通過驗證為止。 - -若未設定「收費」地址,驗證者仍舊可以如常行事,但你將無法賺取未銷毀費用小費,以及原本可以在驗證者提交的區塊中賺取的礦工可提取價值。 - - - - -合併以前,執行用戶端(例如 Geth、Erigon、Besu 或 Nevermind)可以接收、正確驗證以及廣播藉由網路傳播的區塊。 _合併之後_,執行有效負載中包含的交易之有效性現在也取決於其所在的「共識區塊」的有效性。 - -因此,完整的以太坊節點現在同時需要執行用戶端與共識用戶端。 這兩個用戶端使用新的引擎 API 協同運作。 引擎 API 需要使用 JWT 金鑰進行驗證,該金鑰會提供給兩個用戶端來支援安全通訊。 - -主要行動事項包括: - -- 除共識用戶端之外,還要安裝執行用戶端 -- 利用共用的 JWT 金鑰來驗證執行用戶端和共識用戶端,這樣他們就可以安全地同彼此溝通。 - -若未完成上述事項,你的節點將會顯示為「離線」狀態,直到兩個層皆同步且通過驗證為止。 - - - - - -合併過程中共識機制亦發生變更,包括以下方面的相關更動:< - -
    -
  • 區塊結構
  • -
  • 時隙/區塊時間
  • -
  • 操作碼變更
  • -
  • 鏈上隨機性來源
  • -
  • 安全標頭定案區塊的概念
  • -
- -更多資訊請閱讀 Tim Beiko 的部落格文章:合併如何影響以太坊的應用層。 - -
- -## 合併與能耗 {#merge-and-energy} - -合併標誌著以太坊工作量證明的結束,並開啟了更永續、更環保的以太坊紀元。 以太坊的能耗預計下降了 99.95%,使得以太坊成為綠色區塊鏈。 瞭解關於[以太坊能耗](/energy-consumption/)的更多資訊。 - -## 合併與擴容 {#merge-and-scaling} - -合併也為工作量證明之下無法實現的進一步擴容升級奠定了基礎,使得以太坊更接近實現[以太坊願景](/roadmap/vision/)中所描繪的全面擴容、安全性與永續性。 - -## 關於合併的誤解 {#misconceptions} - - - -以太坊的節點有兩種類型:可以提交區塊;無法提交區塊。 - -提交區塊的節點僅佔以太坊節點總數的一小部分。 這一類別中包含工作量證明 (PoW) 下的挖礦節點及權益證明 (PoS) 下的驗證者節點。 這一類別必須要付出經濟資源(例如工作量證明下 GPU 的算力,或是權益證明下的以太幣質押)來換取不時提交下一個區塊並賺取協定獎勵的能力。 - -除了具有 1-2 TB 可用儲存空間和網際網路連線的消費級電腦之外,網路上的其他節點(即其他大多數)不需要付出任何經濟資源。 這些節點並不會提交區塊,但仍然會在保護網路安全中扮演很重要的角色,它們透過偵聽新區塊並根據網路共識規則在到達時驗證其有效性,讓所有區塊提交者負責。 如果區塊有效,節點會繼續將其廣播到網路上。 如果區塊無效,無論什麼樣的原因,節點軟體會將其視為無效並停止其傳播。 - -在任一共識機制(工作量證明或權益證明)下,任何人都可以運行非區塊生產節點;如果可以,強烈推薦所有使用者都這麼做。 運行節點不只對以太坊非常有價值,還可以為運行節點的個人帶來額外的好處,例如提高安全性、隱私性和抗審查能力。 - -任何人都能夠運行自己的節點對於維持以太坊網路的去中心化絕對至關重要。 - -關於運行自己節點的更多資訊 - - - - - -Gas 費用是網路需求相對於網路容量的產物。 合併後,我們棄用了工作量證明,轉而採用權益證明共識機制,但並沒有顯著改變任何直接影響網路容量或吞吐量的參數。 - -根據以卷軸為中心的開發藍圖,我們主要專注於擴容二層網路上的使用者活動,同時讓一層網路主網成為針對卷軸資料儲存進行最佳化的安全去中心化結算層,以協助使卷軸交易成本呈指數級下降。 轉用權益證明是實現這點的關鍵前導步驟。 關於 Gas 和費用的更多資訊。 - - - - -交易的「速度」可以透過多種方式衡量,包括包含在區塊中的時間和最終化時間。 兩者的改變都非常細微,使用者不太會注意到。 - -過往採用工作量證明時,目標是約每 13.3 秒產生一個新區塊。 採用權益證明時,時隙恰好每 12 秒發生一次,每個時隙都是驗證者發佈區塊的機會。 多數時隙都有區塊,但不一定全部都是這樣(如驗證者離線)。 採用權益證明時,區塊的產生頻率比工作量證明高出約 10%。 這是非常細微的改變,使用者不太可能注意到。 - -權益證明引入了先前不存在的交易最終性的概念。 在工作量證明中,交易後經過的每個區塊會讓區塊逆轉的難度指數型加大,但機率並不完全為零。 在權益證明下,區塊會捆綁進驗證者投票的時期(每 6.4 分鐘含有 32 個提交區塊的機會)。 當一個時期結束時,驗證者投票決定該時期是否「合法」。 如果驗證者們同意該時期合法,它會在下個時期最終確定。 取消最終確定的交易在經濟上不可行,因為需要取得和銷毀超過三分之一的總質押以太幣。 - - - - - -合併初期,質押者僅能賺取區塊提案的小費和礦工可提取價值收益。 這些獎勵被計入驗證者控制的非質押帳戶(又稱收費地址),且立即可用。 這些獎勵與執行驗證者職責的協定獎勵是分開的。 - -自從上海/卡佩拉網路升級後,質押者現在可以指定提款地址,以開始接收自動支付的額外質押餘額(原本質押的 32 個以太幣以外的協定獎勵)。 此升級也使驗證者可以在退出網路時解套和收回其全部餘額。 - -關於質押提款的更多資訊 - - - - -由於上海/卡佩拉升級啟用了提款功能,我們鼓勵驗證者提取其質押的 32 個以太幣以外的餘額,因為這些資金不會增加收益率,不提取會被鎖定。 根據年化報酬率(取決於質押的以太幣總量),他們可能被激勵退出驗證者,以回收其全部餘額,或者用其質押獲得的獎勵繼續質押,賺取更多以太幣。 - -這裡有個重要的限制:協定限制了驗證者完全退出的速率,每個時期(每 6.4 分鐘)只有一定數量的驗證者可以退出。 此限制會根據活躍驗證者數量波動,但單日可退出網路的驗證者總數約為全部驗證者的 0.33%。 - -這可以防止質押資金大規模外流。 此外,這也可以阻止潛在的攻擊者在協定執行罰沒懲處之前,獲得因犯下可罰沒的罪行,並在同一時期退出/提取所有有問題的驗證者餘額而質押的以太幣總量的很大一部分。 - -年化報酬率也是特意設計成動態的,使得市場上的質押者可以權衡他們願意付出多少成本來協助維護網路安全。 如果速率太低,驗證者將以協定限制的速率退出。 這將逐漸提高留下的所有人的年利率,再次吸引新的或返回的質押者。 - - -## “Eth2”發生了什麽? {#eth2} - -「Eth2」這個術語已被棄用。 將「Eth1」和「Eth2」合併為單一的區塊鏈後,已不需要區分這兩個以太坊網路;現在只有以太坊。 - -為了減少混亂,社區更新了這些條款: - -- “Eth1”現在是處理交易和執行的“執行層”。 -- “Eth2”現在是處理權益證明共識的“共識層”。 - -這些術語更新只是改變了命名慣例;這並沒有改變以太坊的目標或路線圖。 - -[瞭解更多關於“Eth2”重命名的信息](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) - -## 不同升級之間的關聯 {#relationship-between-upgrades} - -所有以太坊升級都有某種程度上的關聯。 我們來重新回顧合併與其他升級之間的關係。 - -### 合併與信標鏈 {#merge-and-beacon-chain} - -合併代表著信標鏈作為原始主網執行層的新共識層被正式採用。 合併後,驗證者需負責維護以太坊安全,且[工作量證明](/developers/docs/consensus-mechanisms/pow/)挖礦已不再是有效的區塊生產方式。 - -相反,區塊的提交方式是驗證已質押以太幣的節點,以換取參與共識的權利。 這為包括分片在內的未來擴容升級奠定了基礎。 - - - 信標鏈 - - -### 合並與上海升級 {#merge-and-shanghai} - -為了簡化流程並最大限度地專注於成功過渡到權益證明,合併升級不包括某些預期的功能,例如提取質押以太幣的能力。 此功能是在上海/卡佩拉升級時單獨啟用的。 - -歡迎感興趣人士詳細瞭解 Vitalik 在 2021 年 4 月的 ETHGlobal 活動上介紹的[合併後會發生什麼](https://youtu.be/7ggwLccuN5s?t=101)的更多資訊。 - -### 合併與分片 {#merge-and-data-sharding} - -原本的計劃是,在合併前進行分片以處理擴容問題。 然而,鑑於[二層網路擴容解決方案](/layer-2/)的蓬勃發展,優先事務就是摒棄工作量證明,轉用權益證明。 - -分片計劃正在迅速發展,但考慮到用於擴展交易執行的二層網路技術的興起和成功,分片計劃已轉向尋找最佳方式來分配儲存來自卷軸合約的壓縮呼叫資料的負擔,從而實現網路容量的指數級增長。 如果不轉用權益證明,這是不可能的。 - - - 分片 - - -## 延伸閱讀 {#further-reading} - - - - diff --git a/src/content/translations/zh-tw/roadmap/scaling/index.md b/src/content/translations/zh-tw/roadmap/scaling/index.md deleted file mode 100644 index b54c898c809..00000000000 --- a/src/content/translations/zh-tw/roadmap/scaling/index.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: 以太坊擴容 -description: 卷軸可在鏈外批次處理交易,從而降低使用者的成本。 但現今卷軸使用資料的方式還是過於昂貴,限制了交易金額的下限。 Proto-Danksharding 可以解決這個問題。 -lang: zh-tw -image: ../../../../../assets/roadmap/roadmap-transactions.png -alt: "以太坊開發藍圖" -template: roadmap ---- - -以太坊利用[二層網路](/layer-2/#rollups)(也稱「卷軸」)實現擴容,可批次處理交易並將輸出傳送至以太坊。 儘管成本已比以太坊主網低八倍,卷軸還有進一步最佳化的空間,進而幫助降低最終使用者的成本。 此外,卷軸還仰賴於一些中心化組件,隨著其不斷發展成熟,開發者可以移除這些組件。 - - -
    -
  • 現今卷軸的成本比以太坊一層網路便宜大約 3-8 倍
  • -
  • ZK 卷軸很快會讓費用降低大約 40-100 倍
  • -
  • 以太坊即將更動,會帶來大約 100-1000 倍的擴容
  • -
  • 使用者應該能夠從成本低於 $0.001 的交易中受益
  • -
-
- -## 降低資料使用費用 {#making-data-cheaper} - -卷軸會集合大量交易,執行它們並將結果提交到以太坊。 這會產生大量需要公開的資料,以便所有人都可以自己執行交易並驗證卷軸營運者是否誠實。 若有人發現矛盾之處,可以提起質詢。 - -### Proto-Danksharding {#proto-danksharding} - -卷軸資料會永久儲存在以太坊上,成本非常高昂。 使用者為卷軸支付的交易費用中,超過 90% 都是花在資料儲存上。 為了降低交易費用,我們可以將資料移至新的「blob」(註:二進位大型物件)臨時儲存區。 Blob 更便宜,因為它們不是永久性的,一旦不再需要,就會從以太坊中刪除。 長期儲存卷軸資料成為需要它的人的責任,例如卷軸營運者、交易所、索引服務等。 將 blob 交易新增至以太坊是「Proto-Danksharding」升級的一部分。 我們預計這一功能很快(可能在 2023 年年底)會發佈。 - -當 blob 交易透過「Proto-Danksharding」成為以太坊協定的一部分後,可以將多個 blob 新增至以太坊區塊。 這將是以太坊吞吐量的又一次大幅(>100 倍)擴容和交易成本的縮減。 - -### Danksharding {#danksharding} - -擴展 blob 資料的第二階段很複雜,因為需要新的方法來檢查網路上可用的卷軸資料,並仰賴驗證者將其區塊構建和區塊提案職責分開。 它還需要一種方法來以加密方式證明驗證者已驗證一小部分 blob 資料。 - -這個第二步也稱作[「Danksharding」](/roadmap/danksharding/), 全面實作可能還需要數年時間。 Danksharding 還需要仰賴其他的技術開發,例如[將區塊構建和區塊提案分開](/roadmap/pbs),以及新的網路設計,使得網路能夠透過一次隨機採樣幾千字節來有效地確認資料可用(也稱作[資料可用性採樣,簡稱 DAS](/developers/docs/data-availability))。 - -有關分片的更多資訊 - -## 卷軸去中心化 {#decentralizing-rollups} - -[卷軸](/layer-2)已在推動以太坊擴容。 憑藉[豐富的卷軸專案生態系統](https://l2beat.com/scaling/tvl),使用者可以在有安全保證的狀況下快速實惠地完成交易。 然而,一直以來卷軸都是使用中心化排序者(先完成所有交易處理和匯總,再將結果提交至以太坊的電腦)啟動的。 這讓審查制度變得十分脆弱,因為排序者營運者可能被制裁、賄賂或者做出其他讓步。 同時,[卷軸也會採取不同方式](https://l2beat.com)驗證傳入的資料。 最好的方法是「證明者」提交欺詐證明或有效性證明,但並非所有卷軸都已存在。 即使是確實使用有效性/欺詐證明的卷軸也只使用一小部分已知的證明者。 因此,以太坊擴容的下一個關鍵步驟就是將運行排序者和證明者的責任分配給更多人。 - -關於卷軸的更多資訊 - -## 目前進度 {#current-progress} - -Proto-Danksharding 可能是較早實作的開發藍圖專案之一。 設定它所需的去中心化計算步驟已在進行當中,有些用戶端已經實作處理 blob 資料的原型。 完整的 Danksharding 可能還需要幾年的時間,因為它要求先完成其他幾個開發藍圖專案。 卷軸基礎設施的去中心化可能是一個漸進的過程,有許多不同的卷軸正在構建略有不同的系統,並將以不同的速率完全去中心化。 diff --git a/src/content/translations/zh-tw/roadmap/security/index.md b/src/content/translations/zh-tw/roadmap/security/index.md deleted file mode 100644 index d0b698b09ff..00000000000 --- a/src/content/translations/zh-tw/roadmap/security/index.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: 一個更安全的以太坊 -description: 以太坊是現有最安全、去中心化程度最高的智慧型合約平台。 然而,我們還可以繼續對其進行改進,以便未來能夠保持韌性來對抗任意級別的攻擊。 -lang: zh-tw -image: ../../../../../assets/roadmap/roadmap-security.png -alt: "以太坊開發藍圖" -template: roadmap ---- - -雖然以太坊已經是一個非常安全的去中心化智慧型合約平台, 但還可以繼續對其進行改進,以便未來能夠保持韌性來對抗各種攻擊。 這其中包含對以太坊使用者處理競爭區塊的方式進行微妙的調整,以及提高網路認定的區塊[「最終」](/developers/docs/consensus-mechanisms/pos/#finality)速度(意即,攻擊者必須付出巨大的經濟代價才能更改它們)。 - -我們還可以做一些改進來提高交易審查難度,方法是讓區塊提交者無法獲知區塊的實際內容,以及無法找尋新的方法來識別用戶端的審查。 同時完成這些改進即相當於實現權益證明協定升級,如此,使用者(從個人到企業)將即刻對其在以太坊上的應用程式、資料和資產充滿信心。 - -## 質押提款 {#staking-withdrawals} - -從工作量證明到權益證明的升級始於以太坊先驅將他們的以太幣「質押」到存款合約中。 質押的以太幣用於保護網路安全, 但無法解套並退還給使用者。 權益證明升級的一個關鍵環節是,允許使用者取出以太幣。 提款是全功能權益證明協定的關鍵組成部分,除此之外,允許提款對以太坊的安全性也很有益,因為它允許質押者將以太幣獎勵用於其他非質押用途。 這意味著想要流動性的使用者不必依賴流動性質押衍生品 (LSD),以免加劇以太坊的中心化。 此次升級預計於 2023 年 4 月 12 日完成。 - -閱讀提款的相關資訊 - -## 對抗攻擊 {#defending-against-attacks} - -除新增提款功能外,我們還可以對以太坊[權益證明](/developers/docs/consensus-mechanisms/pos/)協定進行其他改進。 其中之一是 [view-merge](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739),這是一種更安全的分叉選擇演算法,可讓某些複雜類型的攻擊實作難度加大。 - -縮短以太坊最終化區塊所需的時間將帶來更好的使用者體驗,並防止複雜的「重組」攻擊,即攻擊者試圖重新洗牌最近的區塊以獲取利潤或審查某些交易。 [**單一時隙最終確定性 (SSF)**](/roadmap/single-slot-finality/) 是盡力縮短最終化延遲的一種方法。 目前,攻擊者理論上可以說服其他驗證者重新設定 15 分鐘的區塊。 採用單一時隙最終確定性時,這一數值將變為 0。 使用者(從個人至應用程式乃至交易所)都將受益於快速保證其交易不會被還原,消滅整個攻擊類別會讓網路受益。 - -閱讀單一時隙最終確定性的相關資訊 - -## 對抗審查 {#defending-against-censorship} - -去中心化可避免驗證者個人或小團體影響力過大。 新的質押技術有助於確保以太坊的驗證者盡可能保持去中心化,同時保護他們免遭硬體、軟體及網路故障。 這包括跨多個節點共擔驗證者職責的軟體, 被稱為**分散式驗證者技術 (DVT)**。 分散式驗證者技術允許多台電腦共同參與驗證,增強了冗餘性和容錯能力,所以質押池被鼓勵使用分散式驗證者技術。 它還將驗證者金鑰拆分到多個系統中,而不是讓單個操作員運行多個驗證者。 這使得不誠實的操作員更難協調對以太坊的攻擊。 總結來說,分散式驗證者技術的理念是以*群體*而非個體的方式運行驗證者,從而獲得安全優勢。 - -閱讀分散式驗證者技術的相關資訊 - -實作**提交者-建置者分離 (PBS)** 可大幅提升以太坊內建的抗審查能力。 提交者-建置者分離讓一個驗證者建立區塊,另一個負責將該區塊廣播至以太坊網路。 這樣可確保在整個網路中更公平地分享專業的利潤最大化區塊建置演算法帶來的收益,**避免質押逐漸集中**到表現最佳的機構質押者手上。 區塊提交者可以從眾多區塊建置者提供給他們的區塊中,選取收益最高的區塊。 為了對抗審查,區塊提交者常常退而求其次,選取收益較低的區塊,這在**經濟上不合理,網路上的其他驗證者也很容易看出其意圖**。 - -提交者-建置者分離有潛在的附加功能(如交易加密及包含清單),可以進一步提高以太坊的抗審查能力。 這些功能使得區塊建置者和提交者無法得知其區塊中包含的實際交易。 - -閱讀提交者-建置者分離的相關資訊 - -## 保護驗證者 {#protecting-validators} - -經驗老道的攻擊者可能有辦法識別下一輪的驗證者,透過傳送垃圾訊息阻止他們提交區塊,這被稱為**阻斷服務 (DoS)** 攻擊。 實作[**秘密領導者選舉 (SLE)**](/roadmap/secret-leader-election) 可以阻止區塊提交者提前獲知區塊內容,從而防範此類攻擊。 其作用原理為:不斷變換代表候選區塊提交者的一組加密承諾,並使用其順序來確定驗證者,以便只有驗證者預先知道自己的順序。 - -閱讀秘密領導者選舉的相關資訊 - -## 目前進度 {#current-progress} - -以太坊開發藍圖上的安全升級正處於研究的後期階段,但預計一段時間內還不會實作。 至於 view-merge、提交者-建置者分離、單一時隙最終確定性和秘密領導者選舉,下一步是最終確定規範並開始建置原型。 diff --git a/src/content/translations/zh-tw/roadmap/user-experience/index.md b/src/content/translations/zh-tw/roadmap/user-experience/index.md deleted file mode 100644 index c9b76fd5ea5..00000000000 --- a/src/content/translations/zh-tw/roadmap/user-experience/index.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: 改善使用者體驗 -description: 對大部分人而言,使用以太坊仍然是非常複雜的一件事。 為了推動普及化,以太坊必須大幅降低使用門檻——使用者必須獲得去中心化、無需許可、抗審查存取以太坊的優勢,同時體驗必須與使用傳統 web2 應用程式一樣順暢。 -lang: zh-tw -image: ../../../../../assets/roadmap/roadmap-ux.png -alt: "以太坊開發藍圖" -template: roadmap ---- - -從管理金鑰和錢包到發起交易,以太坊的使用方式需要簡化。 為促成大規模的使用,以太坊必須大幅提高易用性,讓使用者無需許可即能抗審查存取以太坊,收穫仿如使用 Web2 應用程式一般的順暢體驗。 - -## 超越種子助記詞 {#no-more-seed-phrases} - -以太坊帳戶由一對用於識別帳戶(公開金鑰)和簽名訊息(私密金鑰)的金鑰保護。 私密金鑰就像主密碼,允許使用者完整存取以太坊帳戶。 對於更熟悉銀行和代使用者管理帳戶之 Web2 應用程式的人來說,這是一種不同的操作方式。 若要讓以太坊在不依賴中心化第三方的情況下被大規模採用,必須為使用者提供一種簡單直接的順暢方式來管理資產並掌控自己的資料,而無需瞭解公開-私密金鑰加密及金鑰管理方面的知識。 - -為解決此問題,可採取的辦法是使用智慧型合約錢包與以太坊互動。 智慧型合約錢包確立了金鑰丟失或被盜時保護帳戶的方法,提供更好地檢測和防禦欺詐的機會,並且允許為錢包新增功能。 儘管智慧型合約錢包目前已經存在,但其建構難度還很大,因為需要以太坊協定提供更好的支援。 此額外的支援稱為帳戶抽象。 - -關於帳戶抽象的更多資訊 - -## 所有人都能運行的節點 - -運行節點的使用者不必信任第三方為其提供資料,他們無需許可即可快速、私密地與以太坊區塊鏈互動。 然而,現在運行節點需要技術知識以及大量的磁碟空間,這意味著許多人必須信任中介。 - -有些升級可以讓運行節點變得更加簡單,且不需消耗如此大量的資源。 儲存資料時將改為使用更節省空間的架構,稱為 **Verkle 樹**。 同時,透過[無狀態](/roadmap/statelessness)或[資料過期](/roadmap/statelessness/#data-expiry),以太坊節點無需儲存全部以太坊狀態資料的副本,從而大大減少硬碟空間需求。 [輕節點](/developers/docs/nodes-and-clients/light-clients/)將帶來運行全節點的許多好處,並且可以在行動電話或簡單的瀏覽器應用程式中輕鬆運行。 - -閱讀 Verkle 樹的相關資訊 - -透過這些升級,可以有效地將運行節點的障礙降低至零。 使用者無需許可即能安全存取以太坊,而不必犧牲電腦或行動電話上的大量磁碟或 CPU 空間,且使用應用程式時,不必仰賴第三方存取資料或是網路。 - -## 目前進度 {#current-progress} - -智慧型合約錢包早已可用,但需要更多升級才能讓它們盡可能去中心化及無需許可。 EIP-4337 是一項成熟的提案,無需對以太坊協定進行任何更動。 EIP-4337 所需的主要智慧型合約已於 2023 年 3 月部署。 - -「完全無狀態」仍處於研究階段,距離實作可能還需幾年時間。 還需要完成幾個里程碑才能實現「完全無狀態」,包括可能更快實作的資料過期。 [Verkle 樹](/roadmap/verkle-trees/)及[提案者與構建者分離](/roadmap/pbs/)等其他開發藍圖事項需要先行完成。 - -Verkle 樹測試網已經上線運行,下一階段為先在私密、後在公開的測試網上運行已啟用 Verkle 樹的用戶端。 將合約部署至測試網或是運行測試網用戶端有助加快進度。 diff --git a/src/content/translations/zh-tw/smart-contracts/index.md b/src/content/translations/zh-tw/smart-contracts/index.md deleted file mode 100644 index c6ade9d8fb3..00000000000 --- a/src/content/translations/zh-tw/smart-contracts/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: 智慧型合約 -description: 智慧型合約的非技術性簡介 -lang: zh-tw ---- - -# 智慧型合約簡介 {#introduction-to-smart-contracts} - -智慧型合約是以太坊應用層的基本構成要素。 這些合約是儲存在區塊鏈上的電腦程式,其跟從「條件式」的設計邏輯,且保證依程式碼所定義的規則來執行,程式碼一經建立即無法變更。 - -Nick Szabo 率先提出「智慧型合約」一詞。 他在 1994 年撰寫了[這個概念](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html),並在 1996 年撰寫了[《探索智慧型合約可以做什麼》](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html)。 - -Szabo 預見了一個無需可信的中介,即能以自動化加密安全流程實現交易和業務功能的數位拍賣市場。 以太坊上的智慧型合約讓此一願景付諸實踐。 - -### 傳統合約內的信任 {#trust-and-contracts} - -傳統合約最大的問題之一是需要值得信賴的個人來監督合約執行結果。 - -例如: - -Alice 和 Bob 進行一場自行車比賽。 Alice 和 Bob 打賭 10 美金,賭她會鸁。 而 Bob 堅信自己會鸁得比賽,因此同意打賭。 結果,Alice 把 Bob 遠遠抛在身後,她顯然鸁了。 但 Bob 拒絕支付賭注,聲稱 Alice 一定是做弊。 - -這個搞笑的範例說明了非智慧型協議會發生的問題。 即使已符合協議的條件(亦即,你是比賽的獲勝者),你還得相信對方會履行協議(也就是支付賭注)。 - -### 數位自動販賣機 {#vending-machine} - -用簡單的比喻來說,智慧型合約就像一台自動販賣機,只要按下特定的按鍵,就保證會得到預先設定好的商品。 - -- 你選擇一個商品 -- 販賣機顯示價格 -- 你付款給販賣機 -- 販賣機確認你是否投入正確的金額 -- 自動販賣機掉出你要的商品 - -自動販賣機只在所有需求都符合時,才會掉出你想要的商品。 如果你沒選擇商品或是投入足額的錢,自動販賣機便不會掉出你要的商品。 - -### 自動執行 {#automation} - -智慧型合約的主要好處在於當特定條件成立時,它便會確切執行非模糊的程式碼。 你不需要等真人來詮釋或協調結果。 這消除了可信中介的需求。 - -例如,你可以撰寫為孩子代管資金的智慧型合約,讓他們過了特定日期後才能提領該資金。 如果他們想在到期日前提領資金,智慧型合約便不會執行。 你也可以撰寫一份智慧型合約,當你付錢給汽車經銷商後,合約便會自動發給你一張數位版的車輛所有權證明。 - -### 可預測的結果 {#predictability} - -傳統合約的模糊之處在於它們有賴於真人自行詮釋和履約。 舉例來說,兩名法官可能會對同一張合保持不同見解,這就造成判決不一致,繼而產生不同結果。 智慧型合約消除了這種可能性。 相反地,智慧型合約依合約程式碼內所寫條件準確執行。 準確的意思是指,只要提供相同的條件,智慧型合約就會產生相同的結果。 - -### 公開的記錄 {#public-record} - -智慧型合約對於審計和追蹤也非常有用。 由於以太坊的智慧型合約寫在公共區塊鏈上,因此任何人都能立即追蹤資產的傳送和其他相關資訊。 舉例來說,你可以查閱某人是否把錢轉到你的地址了。 - -### 隱私保護 {#privacy-protection} - -智慧型合約也可以保護你的隱私權。 由於以太坊是匿名網路(你進行的交易公開綁定唯一的加密地址,而非綁定個人身分),因而可以保護隱私不受監視。 - -### 公開可見的條款 {#visible-terms} - -最後,如同傳統合約,你可以在簽名同意前檢查智慧型合約裡的內容,或與合約互動。 智慧型合約的透明度擔保每個人都可以審閱它。 - -## 智慧型合約使用案例 {#use-cases} - -基本上,智慧型合約可以做到所有電腦程式都能做到的事。 - -它們可以執行計算、創建貨幣、儲存資料、鑄造非同質化代幣、傳送通訊內容,甚至產生圖形。 以下是一些真實世界流行的範例: - -- [穩定幣](/stablecoins/) -- [建立和分發唯一的數位資產](/nft/) -- [自動、開放的貨幣交易所](/get-eth/#dex) -- [去中心化遊戲](/dapps/?category=gaming) -- [自動理賠的保單](https://etherisc.com/) -- [讓人們建立自訂、可互相流通的貨幣的標準](/developers/docs/standards/tokens/) - -## 想透過視覺方式學習? {#visual-learner} - -觀看 Finematics 講解智慧型合約: - - - -## 了解更多 {#further-reading} - -- [智慧型合約將如何改變世界](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [智慧型合約:將取代律師的區塊鏈技術](https://blockgeeks.com/guides/smart-contracts/) -- [適用於開發者的智慧型合約](/developers/docs/smart-contracts/) -- [學習撰寫智慧型合約](/developers/learning-tools/) -- [精通以太坊 ─ 智慧型合約是什麼?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/src/content/translations/zh-tw/social-networks/index.md b/src/content/translations/zh-tw/social-networks/index.md deleted file mode 100644 index f3bef1213a3..00000000000 --- a/src/content/translations/zh-tw/social-networks/index.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: 去中心化社交網路 -description: 以太坊去中心化社交網路概覽 -lang: zh-tw -template: use-cases -emoji: ":mega:" -sidebarDepth: 2 -image: ../../../../assets/ethereum-learn.png -summaryPoint1: 基於區塊鏈的平台,用於社交互動、内容建立和分發。 -summaryPoint2: 去中心化社交媒體網路可保護用戶隱私和增強資料安全性。 -summaryPoint3: 代幣和非同質化代幣創造了將內容貨幣化的新方法。 ---- - -社交網路在我們的日常交流和互動中發揮著重要作用。 然而,這些平台的中心化控制產生了許多問題:資料洩露、伺服器中斷、平台禁言、審查制度和侵犯隱私,是社交媒體經常做出的一些取捨。 為了解決這些問題,開發者正在以太坊上建立社交網路。 去中心化社交網路可以解決傳統社交網路平台的許多問題,並提升用戶的整體體驗。 - -## 什麼是去中心化社交網路? {#what-are-decentralized-social-networks} - -去中心化社交網路是基於區塊鏈的平台,允許用戶交換資訊以及向受眾發布和分發內容。 由於這些應用程式在區塊鏈上運作,它們能夠去中心化且抵抗審查和不當控制。 - -許多去中心化的社交網路已成為現有社交媒體服務的替代品,例如 Facebook、LinkedIn、Twitter 和 Medium。 但基於區塊鏈的社交網路有許多功能,使其領先於傳統社交平台。 - -### 去中心化社交網路是如何運作的? {#decentralized-social-networks-overview} - -去中心化社交網路是一種[去中心化應用程式 (dApp) ](/dapps/)——由部署在區塊鏈上的[智慧型合約](/developers/docs/smart-contracts/)提供支持的應用程式。 合約程式碼充當這些應用程式的後端並定義它們的業務邏輯。 - -傳統社交媒體平台依靠資料庫來儲存用戶資訊、程式碼和其他形式的資料。 但這會產生單點故障並帶來重大風險。 例如,去年 Facebook 的伺服器[離線數小時](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact),使得用戶與平台的連線中斷,引起了許多用戶抱怨。 - -去中心化社交網路存在於由全球數千個節點組成的點對點網路上。 即使某些節點發生故障,網路仍然會持續運作,使應用程式能夠抵抗故障和中斷。 - -基於以太坊建立的社交網路,使用去中心化儲存系統,如[星際文件系統 (IPFS)](https://ipfs.io/),可以保護用戶資訊不被利用和惡意使用。 不會有人將你的個人資訊出售給廣告商,駭客也無法竊取你的機密資訊。 - -許多基於區塊鏈的社交平台都有原生代幣,可以在沒有廣告收入的情況下實現貨幣化。 使用者可以購買這些代幣來訪問某些功能、完成應用程式內購或給他們最喜歡的內容創作者小費。 - -## 去中心化社交網路的好處 {#benefits} - -1. 去中心化社交網路可抵抗審查,並對所有人開放。 這意味著使用者不能被任意禁止、被平台禁言或限制。 - -2. 去中心化社交網路建立在開放原始碼理念的基礎上,並使應用程式的源程式碼可供公眾查看。 透過去除傳統社交媒體中常見的不透明演算法實作,基於區塊鏈的社交網路可以讓使用者和平台創立者的利益保持一致。 - -3. 去中心化社交網路取消了「中間人」。 內容創作者對其創作內容擁有直接所有權,他們直接與追隨者、粉絲、買家和其他各方互動,雙方之間僅有智慧型合約。 - -4. 由於去中心化應用程式在以太坊網路上運作,而該網路是由全球 P2P 節點網路所維持,因此去中心化社交網路不太容易受到伺服器停機和中斷的影響。 - -5. 去中心化社交平台透過非同質化代幣 (NFT)、應用程式內加密貨幣支付等,為內容創作者提供更好的貨幣化框架。 - -6. 去中心化的社交網路為使用者提供了高度的隱私和匿名性。 例如,個人可以使用以太坊名稱服務個人資料或錢包,登錄基於以太坊的社交網路,而無需共享個人身分資訊 (PII),例如姓名、電子郵件地址等。 - -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)](/nft/),也稱為寫作非同質化代幣。 鑄造寫作非同質化代幣對作者來說是完全免費的,並且收集發生在以太坊二層網路上——使交易變得便宜、快速且環保。 - -### MINDS {#minds} - -[MINDS](https://www.minds.com/) 是最常用的去中心化社交網絡之一。 它的運作方式與 Facebook 類似,並且已經吸引了數百萬使用者。 - -使用者使用平台的原生 ERC-20 代幣 $MIND 來支付物品價格。 使用者還可以透過發布熱門內容、為生態系統做出貢獻以及將其他人推薦給平台來賺取 $MIND 代幣。 - -## 以太坊上的 Web2 社交網路 {#web2-social-networks-and-ethereum} - -[Web3](/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 合作,後者是一個旨在擴展以太坊交易的[二層網路](/layer-2/)卷軸。 - -該程式現已上線,使用[運行名為「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 是一條集合了[側鏈](/developers/docs/scaling/sidechains/)和[樂觀卷軸](/developers/docs/scaling/optimistic-rollups/)屬性的區塊鏈。 除使用社群積分來解鎖特殊功能外,使用者亦可以在交易所用它們來換取法定貨幣。 此外,使用者擁有社群積分的數量決定了他們在社群決策過程中的影響力。 - -### Twitter {#twitter} - -2021 年 1 月,Twitter Blue [推出了對非同質化代幣的支援](https://mashable.com/article/twitter-blue-nft-profile-picture),允許使用者連接他們的錢包並顯示非同質化代幣作為個人資料圖片。 在撰寫本文時,這家社交媒體公司還[宣布計劃](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web),未來創建一個去中心化社交網路。 - -### Instagram {#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 是安全的訊息傳遞應用程式,使用開放程式碼、點對點協議和端到端加密來保護你的訊息免受第三方的侵害。_ -- **[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} - -- [去中心化社交媒體闡述](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ -- [DeSo 區塊鏈希望將社交媒體去中心化](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ -- [去中心化社交媒體的未來展望 - Balaji Srinivasan、Vitalik Buterin 和 Juan Benet](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ - -### 社群 {#communities} - -- [Status Discord 伺服器](https://discord.com/invite/3Exux7Y) -- [Mirror Discord 伺服器](https://discord.com/invite/txuCHcE8wV) -- [r/CryptoCurrency subreddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/zh-tw/staking/pools/index.md b/src/content/translations/zh-tw/staking/pools/index.md deleted file mode 100644 index f640b5c544c..00000000000 --- a/src/content/translations/zh-tw/staking/pools/index.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: 聯合質押 -description: 關於如何開始聯合以太幣質押的概覽 -lang: zh-tw -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-pool.png -alt: 萊斯利犀牛在池中游泳 -sidebarDepth: 2 -summaryPoints: - - 與其他人一起質押任意數量的以太幣並獲得酬勞 - - 跳過困難的部分,將驗證者運作委託給第三方 - - 在你自己的錢包中持有質押代幣 ---- - -## 什麼是質押礦池 {#what-are-staking-pools} - -質押礦池是一種協作方式,允許擁有少量以太幣的人能夠滿足 32 個以太幣這一條件,以激活一組驗證者金鑰。 由於協定本身並不支援聯合質押這項功能,因此需要單獨建立解決方案來滿足此需求。 - -一些礦池使用智慧型合約運作,可以將資金存入合約,由合約以去信任的方式管理和追蹤你的質押品,並向你發放相應價值的代幣。 其他礦池可能不涉及智慧型合約,而是在鏈外調解。 - -## 為什麼要使用礦池進行質押 {#why-stake-with-a-pool} - -除了我們在[質押簡介](/staking/)中描述的好處之外,聯合質押還具有許多獨特的好處。 - - - - - - - - - -## 需要考慮的事項 {#what-to-consider} - -以太坊協定本身並不支援聯合質押或委託質押,但考量到想要質押的以太幣不足 32 個的使用者的需求,越來越多的解決方案已經開始建立。 - -每個質押池和工具,或者它們所用的智慧型合約,均由不同的團隊建立,因此有著各自的好處和風險。 質押池能夠將使用者的以太幣換成一種相應的以太幣質押代幣。 此代幣非常有用,因為它允許用戶將任意數量的以太幣兌換成等值的有收益代幣(反之亦然),流動性質押衍生品由質押在去中心化交易所的以太幣產生收益,即使實際的以太幣是質押在共識層上。 這意味著可以在有收益的質押以太幣產品和“原始以太幣”之間快速、簡單地切換,且適用的以太幣數不僅限於 32 的倍數。 - -然而,這些質押以太幣代幣往往會產生類卡特爾的行為,大量質押的以太幣最終會受到少數中心化組織的控制,而不是分散到大量獨立個體中。 這為審查或價值提取創造了條件。 質押的黃金標準應始終是個人盡可能在自己的硬件上運行驗證者。 - -[更多關於質押代幣風險的資訊](https://notes.ethereum.org/@djrtwo/risks-of-lsd)。 - -以下使用屬性指標表示列出的質押礦池可能具有的顯著優勢或劣勢。 在你選擇要加入的礦池時,請將此章節的内容當作參考,瞭解這些屬性的具體定義。 - - - -## 探索質押礦池 {#explore-staking-pools} - -有多種方案可以幫你完成設定。 請運用上述指標來幫助你了解以下工具。 - - - - - -請注意,仔細選擇具有[用戶端多樣性](/developers/docs/nodes-and-clients/client-diversity/)的服務相當重要,因為它可以提高網路的安全性並降低你的風險。 如果某服務可以證明它會限制主流用戶端的使用,則稱它具有「執行層用戶端多樣性」「共識層用戶端多樣性」。 - -關於我們遺漏的質押工具,你有什麼推薦嗎? 請參閱我們的[產品刊登政策](/contributing/adding-staking-products/),如果合適,請提交以供審核。 - -## 常見問題 {#faq} - - -一般來說,ERC-20 質押代幣會發給質押者,相當於他們的質押以太幣加上酬勞的價值。 請記住,不同的礦池將通過略有不同的方法向其使用者分配質押酬勞,但主旨是共通的。 - - - -就是現在! 上海/卡佩拉升級發生於 2023 年 4 月,可實現質押提款。 支持質押池的驗證者帳戶現在可以退出並將以太幣提取到他們指定的提款地址。 這樣你可以將質押的份額兌換為基礎以太幣。 有關此功能的具體操作方式,請與你的提供商確認。 - -或者,使用 ERC-20 質押代幣的質押池允許使用者在公開市場上交易該代幣,讓你可以出售質押位置,這相當於允許你「提款」,但無需實際從質押合約中移除以太幣。 - -更多關於質押提款的資訊 - - - -這些聯合質押選項和中心化交易所之間有許多相似之處,例如能夠質押少量以太幣並將它們捆綁在一起以激活驗證者。 - -與中心化交易所不同的是,許多其他聯合質押方案採用的是智慧型合約和/或質押代幣,通常是 ERC-20 代幣。這些代幣可以保存在你自己的錢包中,並能像任何其他代幣一樣正常買賣。 透過讓你控制自己的代幣,這為你提供了一層主權和安全性,但這並不代表你能夠直接控制在后台代表你執行證明的驗證者用戶端。 - -當涉及到支持它們的節點時。一些聯合質押方案比其他方案更去中心化。 為了加強網路的健康和去中心化程度,我們始終鼓勵質押者選擇這樣的聯合質押服務:無需許可且實現節點營運商去中心化。 - - -## 延伸閱讀 {#further-reading} - -- [使用 Rocket Pool 進行質押 - 質押概覽](https://docs.rocketpool.net/guides/staking/overview.html) - _RocketPool 文件_ -- [使用 Lido 質押以太坊](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Lido 幫助文件_ diff --git a/src/content/translations/zh-tw/staking/saas/index.md b/src/content/translations/zh-tw/staking/saas/index.md deleted file mode 100644 index 37cc9606207..00000000000 --- a/src/content/translations/zh-tw/staking/saas/index.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -title: 質押即服務 -description: 關於如何開始聯合以太幣質押的概覽 -lang: zh-tw -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-saas.png -alt: 漂浮在雲端的犀牛萊斯利。 -sidebarDepth: 2 -summaryPoints: - - 第三方節點營運商負責處理你的驗證者用戶端的運作 - - 對於擁有 32 個以太幣且不喜歡處理運行節點的複雜技術的人來說,這是一個不錯的選擇 - - 降低信任依賴,並保持你對提款金鑰的控制權 ---- - -## 什麼是質押即服務? {#what-is-staking-as-a-service} - -質押即服務(「SaaS」)代表一種質押服務,你將自己的 32 個以太幣存入驗證者,但將節點運作委託給第三方營運商。 此流程通常需要你按指引完成初始化設定,包括產生金鑰和存入資金,然後將你的簽名金鑰上傳給營運商。 這將允許該服務代表你運作你的驗證者,通常是按月收費。 - -## 為什麼需要質押服務? {#why-stake-with-a-service} - -以太坊協定本身並不支援質押委託,因此為了滿足此項需求,這類服務應運而生。 如果你有 32 個以太幣要質押,但懶得處理硬體設備,質押即服務可以讓你在賺取原生區塊酬勞的同時將困難的部分外包。 - - - - - - - - - -## 需要考慮的事項 {#what-to-consider} - -有越來越多的質押即服務供應商提供以太幣質押服務,但有各自的好處及風險。 相較於居家質押,所有質押即服務方案都需要額外的信任假設。 質押即服務可能有整合以太坊用戶端的額外程式碼,這些程式碼並不開放或無法審核。 質押即服務對於網絡的去中心化也有不利影響。 根據設定,你可能無法控制你的驗證者 - 營運商可以使用你的以太幣做出不正當行為。 - -以下屬性指標可以用來衡量質押即服務供應商可能具備的顯著優勢或劣勢。 在選擇服務,展開質押之旅之際,請將本節作為參考,了解我們如何定義這些屬性。 - - - -## 探索質押服務供應商 {#saas-providers} - -以下是幾個市面上的質押即服務供應商。 請運用上述指標來了解這些服務。 - - - -#### 質押即服務供應商 - - - -切記,支援[用戶端多元化](/developers/docs/nodes-and-clients/client-diversity/)極為重要,因為這可以提高網路的安全性,降低你的風險。 如果某服務可以證明它會限制主流用戶端的使用,則稱它具有「執行層用戶端多樣性」「共識層用戶端多樣性」。 - -#### 金鑰產生器 - - - -關於我們遺漏的質押即服務供應商,你有任何推薦嗎? 請參閱我們的[產品刊登政策](/contributing/adding-staking-products/),如果合適,請提交以供審核。 - -## 常見問題 {#faq} - - -不同供應商的做法有所不同,但一般而言,他們都會引導你設定所需的簽名金鑰(每 32 個以太幣一個金鑰),並將這些金鑰上傳給你的供應商,以便他們代表你進行驗證。 單憑簽名金鑰無法提取、移轉或使用你的資金, 不過簽名金鑰可以用來投票形成共識,如果操作不當,可能會受到離線處罰或罰沒。 - - - -是的, 每個帳戶都包含 BLS 簽名金鑰和 BLS 提款金鑰。 為了讓驗證者證明鏈的狀態、參與同步委員會並提出區塊建議,簽名金鑰必須易於驗證者用戶端訪問。 這些金鑰必須以某種形式連線至網際網路,因此本質上可視為「熱」金鑰。 這是驗證者證明區塊鏈的必要條件,因此基於安全因素,簽名金鑰與用以移轉或提取資金的金鑰是分開的。 - -BLS 提款金鑰用於簽署一次性訊息,說明應將質押酬勞和退出資金轉到哪個執行層帳戶。 廣播此訊息後,便不再需要 BLS 提款金鑰。 取而代之的是,資金提款的權力將被永久地委託至你所提供的地址。 這允許你透過自己的冷存儲設定一個安全的提款地址,最小化驗證者資金的風險,即使有他人控制你的驗證者的簽名金鑰。 - -更新提款者憑證是啟用提款的必要步驟\*。 這個過程涉及到使用你的種子助記詞生成提款金鑰。 - -請務必妥善保存這份種子助記詞,否則到時候你將無法生成提款金鑰。 - -\*首次存款時提供了提款地址的質押者不需要設定助記詞。 有關如何準備驗證者,請向你的質押即服務供應商請求支援。 - - - -2023 年 4 月的上海/卡佩拉升級中實施了質押提款。 質押者需要提供提款地址(如果初次存款時未提供),酬勞付款將每隔幾天定期自動分配。 - -驗證者還可以作為驗證者完全退出,這將解鎖剩餘的以太幣餘額以供提款。 已提供執行提款地址並完成退出流程的帳戶,提供的提款地址將在下一次驗證者掃描期間收到全部餘額。 - -更多關於提取質押代幣的資訊 - - - -使用質押即服務供應商,你會將節點的運作委託給其他人。 這伴隨著節點效能不佳的風險,這是你無法控制的。 如果你的驗證者遭到罰沒,驗證者的餘額會受到罰款,驗證者也會強制從驗證者池下架。 - -罰沒/退出流程完成後,這些資金將被轉移到分配給驗證者的提款地址。 需要提供提款地址才能啟用該功能。 提款地址可能在一開始存款時便已提供。 如果沒有,則需要使用驗證者提款金鑰來簽署說明提款地址的訊息。 如果未提供提款地址,資金將保持鎖定狀態,直到提供地址。 - -請聯繫各質押即服務提供商,了解關於任何擔保或保險方案的詳細訊息,以及如何提供提款地址的說明。 如果你希望完全掌控你的驗證者設定,請詳細了解如何單獨質押以太幣。 - - -## 延伸閱讀 {#further-reading} - -- [評估質押服務](https://www.attestant.io/posts/evaluating-staking-services/) - _Jim McDonald 2020_ diff --git a/src/content/translations/zh-tw/staking/solo/index.md b/src/content/translations/zh-tw/staking/solo/index.md deleted file mode 100644 index f69653d3d20..00000000000 --- a/src/content/translations/zh-tw/staking/solo/index.md +++ /dev/null @@ -1,203 +0,0 @@ ---- -title: 單獨質押你的以太幣 -description: 如何開始單獨質押你的以太幣概覽 -lang: zh-tw -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-solo.png -alt: 萊斯利犀牛在她自己的電腦晶片上。 -sidebarDepth: 2 -summaryPoints: - - 直接從協定中獲得最大酬勞,以保持你的驗證者正常運作和上線 - - 執行家用硬體,親自貢獻於以太坊網路的安全和去中心化 - - 消除信任依賴,永遠不需放棄對資金金鑰的控制權 ---- - -## 什麼是單獨質押? {#what-is-solo-staking} - -單獨質押指執行一個連線至網際網路的[以太坊節點](/run-a-node/)並存入 32 個以太幣,以啟用一個[驗證者](#faq),使你能夠直接參與網路共識。 - -**單獨質押提高了以太坊網路的去中心化**,使以太坊更加無懼審查並能更可靠地抵禦攻擊。 其他質押方法可能無法以同樣的方式幫助網路。 單獨質押是保護以太坊的最佳質押方案。 - -以太坊節點由執行層 (EL) 用戶端和共識層 (CL) 用戶端組成。 這類用戶端是一套共同運作的軟體加上一組有效的簽名金鑰,可驗證交易和區塊、證明正確的區塊鏈頭、匯總證明並提交區塊。 - -單獨質押者負責操作執行這類用戶端所需的硬體。 強烈建議你使用專用機器在家操作,這對網路健康非常有益。 - -單獨質押者保持驗證者的正常上線運作,即可直接從協定獲得酬勞。 - -## 為什麼需要單獨質押? {#why-stake-solo} - -單獨質押需要承擔更多責任,但可以實現對資金和質押設置的最大控制。 - - - - - - - -## 單獨質押前的注意事項 {#considerations-before-staking-solo} - -儘管我們希望每個人都可以在沒有風險的情況下進行單獨質押,但這並不現實。 在選擇單獨質押以太幣之前,你必須留意一些實際而嚴肅的考量因素。 - - - -在操作自己的節點時,你應該花一些時間學習如何使用你選擇的軟體, 包括閱讀相關文件,以及了解這些開發團隊的溝通管道。 - -越是了解你在執行的軟體以及權益證明的運作原理,你作為質押者的風險就越小,也越容易解決節點運作過程中可能出現的問題。 - - - -設定節點仍然需要對電腦有一定程度的掌握,不過隨著時間經過,新工具會越來越容易使用。 了解命令列介面會有幫助,但不是必要的。 - -設定節點也需要設置非常基本的硬體,以及對最低建議規格有一些了解。 - - - -就像以私密金鑰保護以太坊地址一樣,你還需要專門為驗證者生成金鑰。 你必須了解如何確保你的種子助記詞或私密金鑰的安全。{' '} - -以太坊安全及詐騙預防 - - - -硬體偶爾會出現故障,網路連線會中斷,用戶端軟體偶爾也需要升級。 節點維護是不可避免的,你偶爾需要留意, 最好能隨時掌握預期的網路升級或其他重要的用戶端升級。 - - - -你的酬勞和你的驗證者在線上並提供正確證明的時間成正比。 停機會導致一定程度的罰金,這和有多少其他驗證者同時離線成正比,但不會導致罰沒。 頻寬也很重要,因為如果沒有及時收到證明,酬勞就會減少。 要求可能有所差異,但建議上傳和下載速率至少都要有 10 Mb/s。 - - - -與離線的怠工罰金不同,罰沒是針對惡意犯罪的更嚴重的懲罰。 如果同一個時間只在一台電腦上載入金鑰來執行非主流用戶端,遭到罰沒的風險微乎其微。 話雖如此,所有質押者都必須意識到罰沒的風險。 - -關於罰沒和驗證者生命週期的更多資訊 - - - - - -## 運作原理 {#how-it-works} - - - -在活躍期間,你將獲得以太幣獎勵,這些獎勵將定期存入你的提款地址。 - -如果需要,你可以退出驗證者,如此一來就不必一直在線上,但也不會再有任何酬勞。 然後,你的餘額將被提取到你在設置過程中指定的提款地址。 - -[更多關於提取質押代幣的資訊](/staking/withdrawals/) - -## 開始使用質押啟動面板 {#get-started-on-the-staking-launchpad} - -質押啟動面板是一個開放原始碼應用程式,可以幫助你成為質押者。 它會指引你選擇用戶端、產生金鑰,並將你的以太幣存入質押存款合約。 它會提供一份檢查清單,確認你已完成所有內容,可安全地設定驗證者。 - - - -## 使用節點和用戶端設定工具時需要考量的事項 {#node-tool-considerations} - -有越來越多的工具和服務可以幫助你單獨質押以太幣,其風險和收益各有不同。 - -以下屬性指標可以用來衡量所列質押工具可能具備的顯著優勢或劣勢。 在選擇工具,展開質押之旅之際,請將本節作為參考,了解我們如何定義這些屬性。 - - - -## 探索節點和用戶端設定工具 {#node-and-client-tools} - -有多種方案可以幫你完成設定。 請運用上述指標來幫助你了解以下工具。 - - - -#### 節點工具 - - - -切記,選擇[非主流用戶端](/developers/docs/nodes-and-clients/client-diversity/)極為重要,因為這可以提高網路的安全性,降低你的風險。 可讓你設定非主流用戶端的工具稱為「多重用戶端」。 - -#### 金鑰產生器 - -這些工具可以代替[質押存款命令列介面](https://github.com/ethereum/staking-deposit-cli/),幫助你生成金鑰。 - - - -關於我們遺漏的質押工具,你有什麼推薦嗎? 請參閱我們的[產品刊登政策](/contributing/adding-staking-products/),如果合適,請提交以供審核。 - -## 探索單獨質押指南 {#staking-guides} - - - -## 常見問題 {#faq} - -以下是關於質押的一些最常見問題,建議仔細閱讀。 - - - -驗證者是一個存在於以太坊並參與以太坊協議共識的虛擬實體。 驗證者由餘額、公鑰和其他屬性表示。 驗證者用戶端是通過持有和使用私密金鑰代表驗證者進行操作的軟體。 一個驗證者用戶端可以持有多組金鑰,控制許多驗證者。 - - - - -與驗證者相關聯的每組金鑰都需要 32 個以太幣才能啟用。 將更多以太幣存入一組金鑰不會增加潛在的酬勞,因為一個驗證者的有效餘額以 32 個以太幣為限。 這意味著質押是以 32 個以太幣為遞增單位,每個單位都有自己的一組金鑰和餘額。 - -請勿為一個驗證者存入超過 32 個以太幣。 這並不會增加你的酬勞。 如果為驗證者設置了提現地址,超過 32 個以太幣的多餘資金將在下一次驗證者掃描時自動提款到該地址。 - -如果單獨質押對你來說要求太高,可以考慮使用質押即服務供應商,或者如果你的資金少於 32 個以太幣,可以參考質押池。 - - - -如果你在網路正確進行最終確認時離線,則不會發生罰沒。 如果你的驗證者無法在特定時期內(每個時期 6.4 分鐘)完成證明,則會產生少量的怠工罰金,但這與罰沒完全不同。 這些罰金略低於你在驗證者可以完成證明的情況下獲得的酬勞,因此只要讓驗證者再次上線,經過差不多相同的時間就能賺回來。 - -請注意,怠工罰金與同時離線的驗證者數量成正比。 如果大部分網路同時離線,則每個驗證者承擔的罰金將大於單一驗證者怠工時的罰金。 - -在極端情況下,如果有超過三分之一的驗證者同時離線導致網路停止最終確認,那麼這些使用者會遭受所謂的二次怠工罰金,離線驗證者帳戶中的以太幣將受到指數級別的損失。 這時以太坊網路會消耗怠工驗證者的以太幣來進行自我修復,直到其餘額達到 16 個以太幣為止,此時它們將自動被踢出驗證者池。 最後還在線上的剩餘驗證者將再次超過網路的三分之二,滿足再次最終確認區塊鏈所需的絕對多數要求。 - - - -簡而言之,雖然我們永遠無法完全保證你不會被罰沒,但如果你真誠行事,執行非主流用戶端,而且一次只將簽名金鑰保存在一台電腦上,那麼遭到罰沒的風險微乎其微。 - -只有幾個特定的狀況會導致驗證者遭到罰沒並被踢出網路。 截止撰寫本文為止,發生過的罰沒事件完全是因為事主設置了冗餘硬體,同時間將簽名金鑰儲存在兩台不同的電腦上。 這可能導致你的金鑰在無意中出現雙重投票,這是一種可被罰沒的違規行為。 - -執行絕對主流用戶端(任何超過三分之二的網路所使用的用戶端)也有潛在的罰沒風險,例如該用戶端出現錯誤,導致一個區塊鏈分叉。 這可能會導致最終確認的是有問題的分叉。 要修正回預期的區塊鏈,需要提交環繞投票,嘗試撤銷最終確認的區塊。 這也是一種可被罰沒的行爲,但執行非主流用戶端即可避免。 - -非主流用戶端絕對不會最終確認相同的錯誤,因此也不會導致環繞投票,只可能產生怠工罰金,而不會遭到罰沒。 - - - - - -各用戶端的效能和使用者介面可能略有不同,因為每個用戶端都是由不同的團隊使用不同程式語言開發的。 這表示沒有「最好的」用戶端。 所有生產環境的用戶端都是優秀的軟體,會執行相同的核心功能來與區塊鏈同步和互動。 - -由於所有生產環境用戶端的基本功能都相同,因此實際上選擇非主流用戶端非常重要;「非主流」意指網路上大多數驗證者都「不是」使用該用戶端。 這聽起來可能有悖直覺,但執行主流或絕對主流用戶端會使你在該用戶端出現錯誤時面臨更高的罰沒風險。 執行非主流用戶端可以大幅降低這些風險。 - -詳細了解為什麼用戶端多元化如此重要 - - - -雖然虛擬私人伺服器 (VPS) 可以作為家用硬體的替代品,但驗證者用戶端的實體存取和位置有其重要性。 Amazon Web Services 或 Digital Ocean 等集中式雲端解決方案提供了不必擁有和運作硬體的便利,但代價是網路集中化。 - -在一個集中式雲端儲存解決方案上執行的驗證者用戶端越多,對這些使用者而言就越危險。 如果發生任何事件導致這些供應商離綫,無論是由於攻擊、監管要求,抑或僅因為電源/網際網路中斷,都將導致依賴此伺服器的所有驗證者用戶端同時離綫。 - -離線罰金與同時離線的其他驗證者數量成正比。 使用虛擬私人伺服器會大幅提高承受更嚴重的離線罰金的風險,甚至如果發生大量當機,還會增加二次懲罰或罰沒的風險。 為了將你自己的風險和網路風險降至最低,我們強烈鼓勵使用者取得並操作自己的硬體。 - - - - -在信標鏈中進行任何類型的提款都需要設置提款憑證。 - -新質押者在生成金鑰和存款時就設置了提款憑證。 尚未設置此憑證的現有質押者可以升級其金鑰以支持此功能。 - -設置提款憑證後,酬勞支付(扣除初始 32 個以太幣後的累積以太幣)將定期自動分配到提款地址。 - -要解鎖並拿回全部餘額,你還必須完成退出驗證者的過程。 - -更多關於提取質押代幣的資訊 - - -## 延伸閱讀 {#further-reading} - -- [以太坊用戶端的多元化問題](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ -- [幫助用戶端多元化](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ -- [以太坊共識層的用戶端多元化](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ -- [如何購買以太坊驗證者硬體](https://www.youtube.com/watch?v=C2wwu1IlhDc) - _EthStaker 2022_ -- [按部就班:如何加入以太坊 2.0 測試網](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _Butta_ -- [以太坊 2.0 罰沒預防技巧](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raul Jordan 2020_ diff --git a/src/content/translations/zh-tw/staking/withdrawals/index.md b/src/content/translations/zh-tw/staking/withdrawals/index.md deleted file mode 100644 index f68cd563a91..00000000000 --- a/src/content/translations/zh-tw/staking/withdrawals/index.md +++ /dev/null @@ -1,218 +0,0 @@ ---- -title: 質押提款 -description: 此頁總結了什麼是質押推送提款,該功能如何運作,以及質押者需要做什麼才能獲得酬勞 -lang: zh-tw -template: staking -image: ../../../../../assets/staking/leslie-withdrawal.png -alt: 犀牛萊斯利和她的質押酬勞 -sidebarDepth: 2 -summaryPoints: - - 上海/卡佩拉升級支持在以太坊提款 - - 驗證者營運商必須提供提款地址才能啟用 - - 每隔幾天自動分發酬勞 - - 完全退出質押的驗證者將收到剩餘餘額 ---- - - -2023 年 4 月 12 日上海/卡佩拉升級後便啟用了質押提款。 關於上海/卡佩拉升級的更多資訊 - - -**質押提款**是指將以太幣從以太坊共識層(信標鏈)上的驗證者帳戶轉移到可以進行交易的執行層。 - -只要用戶提供了提款地址,超過 32 個以太幣的**超額酬勞**將自動定期發送到每個驗證者關聯的提款地址。 使用者也可**完全退出質押**,解鎖他們的全部驗證者餘額。 - -## 質押酬勞 {#staking-rewards} - -對於最高有效餘額為 32 以太幣的活躍驗證者帳戶,系統會自動處理酬勞付款。 - -通過酬勞賺取的任何超過 32 以太幣的餘額實際上不會影響本金,也不會增加該驗證者在網路上的權重,因此每隔幾天就會自動提取酬勞。 除了提供一次提款地址之外,這些酬勞不需要驗證者營運商採取任何行動。 這些均在共識層上發起,因此所有步驟都不需要燃料(礦工費)。 - -### 我們是如何走到這一步的? {#how-did-we-get-here} - -在過去幾年,以太坊經歷了多次網路升級,過渡到由以太幣自身提供保護的網路,而不是像以前那樣進行能源密集型挖礦。 參與以太坊共識現在被稱為「質押」,因為參與者自願鎖定以太幣,將其「質押」,以獲得參與網路的能力。 遵守規則的用戶將獲得酬勞,而試圖欺詐的用戶將受到懲罰。 - -自 2020 年 11 月推出質押存款合約以來,一些勇敢的以太坊先驅者自願鎖定資金以激活「驗證者」,即有權按照網路規則正式證明和提交區塊的特殊帳戶。 - -在上海/卡佩拉升級前,你無法使用或存取已經質押的以太幣。 但現在,你可以選擇自動將酬勞存入所選帳戶,並且可以隨時提取質押的以太幣。 - -### 我該如何準備? {#how-do-i-prepare} - - - -### 重要通知 {#important-notices} - -對於任何驗證者帳戶來說,提供提款地址是必要的步驟,然後才有資格從其餘額中提取以太幣。 - - - 每個驗證者帳戶一次只能分配一個提款地址。一旦選好地址並提交到共識層,就無法撤消或再次更改。 提交前請再次檢查所提供地址的所有權和正確性。 - - -假設你的助記詞/種子助記詞在離線狀態下保持安全,沒有受到任何損害,那麼即使沒有提供提權地址,也不會對你的資金造成威脅。 如果未能添加提款憑證,以太幣只會被鎖定在驗證者帳戶中,直到提供提款地址為止。 - -## 完全退出質押 {#exiting-staking-entirely} - -在從驗證者帳戶餘額中轉出*任何*資金之前,需要提供提款地址。 - -希望完全退出質押並提取全部餘額的用戶,還必須使用驗證者金鑰簽署並廣播「自願退出」訊息,這將啟動退出質押流程。 此操作通過你的驗證者用戶端完成,並提交到你的共識節點,無需燃料。 - -驗證者退出質押的過程所需時間不同,具體取決於有多少驗證者同時退出。 完成此流程後,該帳戶將不再負責執行 ​​ 驗證者網路職責,不再有資格獲得酬勞,且他們的以太幣不再處於「質押狀態」。 此時該帳戶將被標記為完全「可提款」。 - -一旦帳戶被標記為「可提款」,並且已提供提款憑證,用戶無需執行任何操作,靜靜等待即可。 區塊提交者將自動連續掃描賬戶,尋找符合資格的退出資金,你的帳戶餘額將在下一次掃描期間全額轉移(也稱為「全額提款」)。 - -## 何時啟用質押提款? {#when} - -質押提款現已上線! 提款功能在 2023 年 4 月 12 日進行的上海/卡佩拉升級中啟用。 - -上海/卡佩拉升級使之前質押的以太幣回收到常規以太坊帳戶中。 這結束了質押流動性的循環,使以太坊在構建永續、可擴展、安全的去中心化生態系統的道路上又近了一步。 - -- [關於以太坊歷史的更多資訊](/history/) -- [關於以太坊開發藍圖的更多資訊](/roadmap/) - -## 提款付款流程如何運作? {#how-do-withdrawals-work} - -給定驗證者是否有資格提款,由驗證者帳戶本身的狀態決定。 在任何給定時間都不需要用戶輸入來確定帳戶是否應該發起提款—整個過程由共識層在連續循環上自動完成。 - -### 想透過視覺方式學習? {#visual-learner} - -查看 Finematics 對以太坊質押提款的解釋: - - - -### 驗證者「掃描」 {#validator-sweeping} - -當驗證者準備提交下一個區塊時,需要建立一個提款隊列,其中最多包含 16 項符合資格的提款。 最初從驗證者索引 0 開始,根據協議規則確定該帳戶是否有符合條件的提款,如果有,則將其添加到隊列中。 提交下一個區塊的驗證者們將從上一個區塊停止的地方開始,按順序依次進行。 - - -想象一下指針式時鐘。 時鐘上的指針指向小時,朝一個方向前進,不會跳過任何小時,並最終在到達最後一個數字後再次回到起點。

-現在,假設時鐘不是 1 到 12,而是 0 到 N (共識層上註冊的驗證者帳戶總數,截至 2023 年 1 月超過 500,000 個)。

-時鐘上的指針指向下一個驗證者,需要檢查其是否具備提款資格。 它從 0 開始,一路前進,不跳過任何帳戶。 到達最後一個驗證者後,從頭開始繼續循環。 -
- -#### 檢查帳戶提款情況 {#checking-an-account-for-withdrawals} - -當提交者在驗證者中掃描可能的提款時,每個被檢查的驗證者都會通過一系列簡短的問題接受評估,以確定是否應該觸發提款,如果是,應該提取多少以太幣。 - -1. **是否已提供提款地址?**如果未提供提款地址,則跳過該帳戶,不發起提款。 -2. **驗證者是否已退出並可提款?**如果驗證者已完全退出,且已達到其帳戶被視為「可提款」的時期,則會處理全額提款。 這會將全部餘額轉移至提款地址。 -3. **有效餘額是否已滿 32?**如果帳戶有提款憑證,未完全退出,且有 32 以上的酬勞待提取,將進行部分提款,僅轉出超過 32 的酬勞至用戶提款地址。 - -在驗證者的生命週期中,驗證者營運商只執行兩項直接影響此流程的操作: - -- 提供提款憑證以實現任何形式的提款 -- 退出網絡,觸發全額提款 - -### 燃料費 {#gas-free} - -這種質押提款方法避免了質押者手動提交請求提取特定數量以太幣的交易。 這意味著**不需要燃料(礦工費)**,並且提款也無需爭取現有的執行層區塊空間。 - -### 我多久可以獲得一次質押酬勞? {#how-soon} - -一個區塊最多可以處理 16 筆提款。 按照這個速度,每天可以處理 115,200 次驗證者提款(假設沒有遺漏時隙)。 如上所述,不符合提款條件的驗證者將被跳過,從而縮短完成掃描的時間。 - -擴展此計算,我們可以估計處理給定數量的提款所需的時間: - - - -| 提款數量 | 完成時間 | -| :------: | :------: | -| 400,000 | 3.5 日 | -| 500,000 | 4.3 日 | -| 600,000 | 5.2 日 | -| 700,000 | 6.1 日 | -| 800,000 | 7.0 日 | - - - -如你所見,隨著網路上驗證者的增加,速度會變慢。 遺漏時隙增加可能會相應地降低速度,但這通常代表可能結果中較慢的一面。 - -## 常見問題 {#faq} - - -不可以,提供提款憑證的過程是一次性的,一旦提交就無法更改。 - - - -通過設定執行層提款地址,該驗證者的提款憑證已永久更改。 這意味著舊憑證將失效,新憑證將直接指向執行層帳戶。 - -提款地址可以是智慧型合約(由其程式碼控制),也可以是外部所有帳戶(EOA,由私密金鑰控制)。 目前,這些帳戶無法將訊息傳回共識層,以表明驗證者憑證的更改,增加此功能會給協議增加不必要的複雜性。 - -如果無法更改特定驗證者的提款地址,用戶可以選擇將智慧型合約設置為可以處理金鑰輪換的提款地址,例如保險箱。 將資金設置為自己的外部所有帳戶的用戶可以執行完全退出以提取所有質押資金,然後使用新憑證重新質押。 - - - - -如果你參與質押池或持有質押代幣,則應向你的提供商諮詢,了解有關如何處理質押提款的詳細資訊,因為每種服務的運作方式不同。 - -一般來說,用戶應該可以自由地收回其質押的以太幣,或者更改他們使用的質押提供商。 如果特定質押池變得過大,則可以退出、贖回資金,並透過較小的提供商重新質押。 或者,如果積累了足夠的以太幣,你可以在家進行質押。 - - - - -是的,只要你的驗證者提供了提款地址。 必須提供一次才能啟用任何提款,然後酬勞支付將在每次驗證器掃描時,每隔幾天自動觸發一次。 - - - - -不會,如果你的驗證者在網路上仍然處於活躍狀態,則不會自動發生全額提款。 需要手動啟動自願退出。 - -一旦驗證者完成退出過程,並且假設該帳戶具有提款憑證,餘額將在下一次驗證者掃描期間提出。 - - - - -提款設計為自動推送,轉移任何未主動質押的以太幣。 包括已完成退出流程帳戶的全部餘額。 - -無法手動請求提取特定數量的以太幣。 - - - - -建議驗證者營運商訪問質押啟動面板提款頁面,其中可以找到關於如何準備驗證者提款的詳細資訊。 包括準備情況、活動時間安排以及有關提款如何運作的詳細資訊。 - -若想先在測試網上嘗試你的設置,請從訪問 Goerli 測試網質押啟動面板開始。 - - - - -否。 驗證者退出並成功提取其全部餘額後,任何後續存入該驗證者的資金都會在下一次驗證者掃描期間自動轉移到提款地址。 要重新質押以太幣,必須啟用新的驗證者。 - - -## 了解更多 {#further-reading} - -- [質押啟動面板提款](https://launchpad.ethereum.org/withdrawals) -- [EIP-4895:將提款作為操作推送至信標鏈。](https://eips.ethereum.org/EIPS/eip-4895) -- [以太坊牧貓人組織 - 上海](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) -- [PEEPanEIP #94:與 Potuz 和 Hsiao-Wei Wang 討論質押以太幣提款(測試中)](https://www.youtube.com/watch?v=G8UstwmGtyE) -- [PEEPanEIP#68:EIP-4895:與 Alex Stokes 討論信標鏈將提款作為操作推送](https://www.youtube.com/watch?v=CcL9RJBljUs) -- [了解驗證者有效餘額](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/translations/zh/community/support/index.md b/src/content/translations/zh/community/support/index.md deleted file mode 100644 index 9c655d5a3e3..00000000000 --- a/src/content/translations/zh/community/support/index.md +++ /dev/null @@ -1,115 +0,0 @@ ---- -title: 以太坊支持 -description: 在以太坊生态系统中获得支持。 -lang: zh ---- - -# 以太坊支持 {#support} - -## 以太坊官方支持 {#official-support} - -您正在寻求以太坊官方支持吗? 您应该知道的第一件事是以太坊是去中心化的。 这意味着以太坊不属于任何中心化组织、实体或个人,因此没有官方支持渠道。 - -了解以太坊的去中心化性质至关重要,因为任何自称是以太坊官方支持人员的人都可能在试图诈骗您! 预防诈骗的最好办法就是自学并认真对待安全问题。 - - - 以太坊安全和预防欺诈措施 - - - - 学习以太坊基础知识 - - -尽管缺乏官方支持,但以太坊生态系统中的许多团体、社区和项目都乐于提供帮助,并且您可以在此页面上找到很多有用的信息和资源。 还有问题吗? 加入 [ethereum.org Discord](/discord/),我们会尽力提供帮助。 - -## 钱包支持 {#wallet-support} - -您的钱包有问题吗? 大多数钱包都有专门的支持团队可以提供帮助: - -- [MetaMask](https://metamask.zendesk.com/hc/) -- [Argent](https://support.argent.xyz/hc/) -- [MyEtherWallet](https://help.myetherwallet.com/) - -_这并不是完整的列表。 需要帮助寻找特定钱包的支持? 加入 [ethereum.org Discord](https://discord.gg/ethereum-org),我们会尝试帮助您。_ - -正在寻找以太坊钱包? [深入了解我们完整的以太坊钱包列表](/wallets/find-wallet/)。 - -## 构建去中心化应用程序 {#building-support} - -构建这类应用可能很困难。 以下提供了一些专注于开发的平台,其中有经验丰富的以太坊开发人员,他们会乐意提供帮助。 - -- [Alchemy University](https://university.alchemy.com/#starter_code) -- [CryptoDevs discord](https://discord.gg/Z9TA39m8Yu) -- [以太坊堆栈交易所](https://ethereum.stackexchange.com/) -- [StackOverflow](https://stackoverflow.com/questions/tagged/web3) -- [Web3 University](https://www.web3.university/) - -您还可以在我们的[以太坊开发者资源](/developers/)部分找到文档和开发指南。 - -### 工具 {#dapp-tooling} - -您的问题是否与某个特定的工具、项目或程序库有关? 大多数项目都有专用于用户支持的聊天服务器或论坛。 - -以下是一些比较常见的例子: - -- [Solidity](https://gitter.im/ethereum/solidity/) -- [ethers.js](https://discord.gg/6jyGVDK6Jx) -- [web3.js](https://discord.gg/GsABYQu4sC) -- [安全帽](https://discord.gg/xtrMGhmbfZ) -- [Truffle](https://discord.gg/8uKcsccEYE) -- [Alchemy](http://alchemy.com/discord) -- [Tenderly](https://discord.gg/fBvDJYR) - -## 运行节点 {#node-support} - -如果您正在运行节点或验证者节点,下面是一些专门帮助您入门的社区。 - -- [EthStaker discord](https://discord.gg/ethstaker) -- [EthStaker reddit](https://www.reddit.com/r/ethstaker) - -大多数构建以太坊客户端的团队也有专门的、面向公众的平台,您可以在这些平台获取支持和提问。 - -### 执行客户端 {#execution-clients} - -- [Geth](https://discord.gg/FqDzupGyYf) -- [Nethermind](https://discord.gg/YJx3pm8z5C) -- [Besu](https://discord.gg/p8djYngzKN) -- [Erigon](https://github.com/ledgerwatch/erigon/issues) - -### 共识客户端 {#consensus-clients} - -- [Prysm](https://discord.gg/prysmaticlabs) -- [Nimbus](https://discord.gg/nSmEH3qgFv) -- [Lighthouse](https://discord.gg/cyAszAh) -- [Teku](https://discord.gg/7hPv2T6) -- [Lodestar](https://discord.gg/aMxzVcr) - -您还可以[在此处了解如何运行节点](/developers/docs/nodes-and-clients/run-a-node/)。 - -## 常见问题 {#faq} - -#### 我把以太币发到了错误的钱包中 {#wrong-wallet} - -以太坊上发送的交易是不可逆的。 如果您将以太币发送到错误的钱包,很遗憾,没有办法追回这些资金。 以太坊不属于任何中心化组织、实体或个人,这意味着没有人可以逆转交易。 因此,在发送交易之前,一定要仔细检查您的交易,这一点至关重要。 - -#### 如何获取以太坊的赠品? {#giveaway-scam} - -以太坊赠品是用来窃取您以太币的骗局。 不要被看起来好得令人难以置信的优惠所诱惑 — 如果您将以太币发送到赠品地址,您不但收不到赠品,还将无法追回您的资金。 - -[关于预防诈骗的更多信息](/security/#common-scams) - -#### 我的交易被卡住了 {#stuck-transaction} - -如果你提交的交易费低于网络需求,以太坊上的交易有时会被卡住。 许多钱包提供了一个选项,即以更高的交易费重新提交同一项交易,使该交易得以处理。 或者,您可以发送交易到您自己的地址,并使用与待定交易相同的随机数,以取消待定交易。 - -[如何在 MetaMask 上加速或取消待定交易](https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-speed-up-or-cancel-a-pending-transaction) - -[如何取消待定以太坊交易](https://info.etherscan.com/how-to-cancel-ethereum-pending-transactions/) - -#### 我如何开采以太坊? {#mining-ethereum} - -以太坊不再支持挖矿。 在以太坊从工作量证明过渡到权益证明后,挖矿就终止了。 现在,以太坊使用验证者而不是矿工。 验证者质押以太币并通过保护以太坊安全获得质押奖励。 - -#### 我如何成为质押人/验证者? {#become-validator} - -要成为验证者,你必须在以太坊存款合约中质押 32 个以太币并搭建一个验证节点。 更多信息见[质押界面](/staking)和[质押启动版](https://launchpad.ethereum.org/)。 diff --git a/src/content/translations/zh/contributing/translation-program/translators-guide/index.md b/src/content/translations/zh/contributing/translation-program/translators-guide/index.md deleted file mode 100644 index 0abe3c050a8..00000000000 --- a/src/content/translations/zh/contributing/translation-program/translators-guide/index.md +++ /dev/null @@ -1,293 +0,0 @@ ---- -title: 翻译人员指南 -lang: zh -description: 适用于 Ethereum.org 翻译人员的说明和技巧 ---- - -# Ethereum.org 翻译风格指南 {#style-guide} - -Ehereum.org 翻译风格指南包含一些最重要的指南、说明和翻译技巧,帮助我们对网站进行本地化。 - -本文档是一份一般性指南,并不特定于任何一种语言。 - -如果您有任何问题、建议或反馈,请随时通过 translations@ethereum.org 与我们联系,在 Crowdin 上向 @ethdotorg 发送消息,或 [ 加入我们的 Discord](https://discord.gg/ethereum-org),您可以在其中通过#translations 频道向我们发送消息或联系任何团队成员。 - -### 使用 Crowdin {#using-crowdin} - -您可以在[翻译计划页面](/contributing/translation-program/#how-to-translate)上找到有关如何在 Crowdin 中加入项目以及如何使用 Crowdin 在线编辑器的基本说明。 - -如果您想了解更多关于 Crowdin 并使用它的一些高级功能,[Crowdin 知识库](https://support.crowdin.com/online-editor/)包含很多所有 Crowdin 功能的深入指南和概述。 - -### 抓取信息的实质内容 {#capturing-the-essence} - -当翻译 ethereum.org 内容时,避免直译。 - -重要的是翻译要抓住信息的本质。 这可能意味着改写某些短语,或者使用描述性翻译而不是逐字翻译内容。 - -不同的语言有不同的语法规则、约定和词序。 翻译时,请注意目标语言中句子的结构,避免按字面翻译英文源,因为这会导致句子结构和可读性差。 - -建议您阅读整个句子并对其进行调整以适应目标语言的惯例,而不是逐字翻译源文本。 - -### 正式与非正式 {#formal-vs-informal} - -我们使用正式的地址形式,这对所有访客来说始终是礼貌和适当的。 - -使用正式地址可以让我们避免听起来不官方或冒犯,并且无论访客的年龄和性别如何都可以工作。 - -大多数印欧语和亚非语语言使用特定性别的第二人称人称代词,以区分男性和女性。 在称呼用户或使用所有格代词时,我们可以避免假设访问者的性别,因为正式的地址形式通常适用且一致,无论他们如何识别。 - -### 简单明了的词汇和意思 {#simple-vocabulary} - -我们的目标是让尽可能多的人能够理解网站上的内容。 - -在大多数情况下,这可以通过使用易于理解的简短单词轻松实现。 如果您的语言中具有相同含义的某个单词有多种可能的翻译,那么最好的选择通常是清楚地反映含义的最短单词。 - -### 书写系统 {#writing-system} - -Ethereum.org 提供多种语言版本,使用替代拉丁文的书写系统(或书写脚本)。 - -所有内容都应使用适合您的语言的正确书写系统进行翻译,并且不应包含使用拉丁字符书写的任何单词。 - -翻译内容时,应确保翻译内容一致且不包含任何拉丁字符。 - -一个常见的误解是,Ethereum 一直是用拉丁文书写。 这大部分是不正确的,请使用您的母语拼写 Ethereum(例如:中文的以太坊,阿拉伯语的 إيثيريوم 等)。 - -**以上规则不适用于通常不应翻译专有名词的语言。** - -### 翻译页面元数据 {#translating-metadata} - -某些页面包含页面上的元数据,例如“title”、“lang”、“description”、“sidebar”等。 - -在将新页面上传到 Crowdin 时,我们隐藏了翻译人员不应翻译的内容,这意味着 Crowdin 中翻译人员可见的所有元数据都应该被翻译。 - -翻译源文本为“en”的任何字符串时,请特别注意。 这表示页面可用的语言,应翻译为[您的语言的 ISO 语言代码](https://www.andiamo.co.uk/resources/iso-language-codes/)。 这些字符串应始终使用拉丁字符而不是目标语言原生的书写脚本进行翻译。 - -如果您不确定要使用哪种语言代码,您可以查看 Crowdin 中的翻译记忆库,或在 Crowdin 在线编辑器的页面 URL 中找到您的语言的语言代码。 - -使用最广泛的语言的语言代码示例: - -- 阿拉伯语 - ar -- 简体中文 - zh -- 法语 - fr -- 印地语 - hi -- 西班牙语 - es - -### 外文标题 {#external-articles} - -一些字符串包含外部文章的标题。 我们的大多数开发人员文档页面都包含指向外部文章的链接,以供进一步阅读。 无论文章的语言如何,都需要翻译包含文章标题的字符串,以确保以他们的语言查看页面的访问者获得更一致的用户体验。 - -您可以在下面找到一些示例,说明这些字符串对于翻译人员的外观以及如何识别它们(文章链接主要位于这些页面的底部,位于“进一步阅读”部分): - -![Sidebar.png 中的文章标题](./article-titles-in-sidebar.png) ![Editor.png 中的文章标题](./article-titles-in-editor.png) - -### Crowdin 警告 {#crowdin-warnings} - -Crowdin 有一个内置功能,可以在翻译人员即将出错时发出警告。 在保存翻译之前,如果您忘记在译文中加上原文中的标签、翻译了不应翻译的元素、添加了多个连续的空格、忘记结尾标点等,Crowdin 会自动提醒您。 如果您看到这样的警告,请返回并仔细检查建议的翻译。 - -**永远不要忽略这些警告,因为它们通常意味着有问题,或者翻译缺少源文本的关键部分。** - -当您忘记在翻译中添加标签时出现 Crowdin 警告的示例: ![Crowdin 警告示例](./crowdin-warning-example.png) - -### 处理标签和代码片段 {#dealing-with-tags} - -许多源内容包含标签和变量,它们在 Crowdin 编辑器中以黄色突出显示。 它们具有不同的功能,应该正确处理。 - -**Crowdin 设置** - -为了更轻松地管理标签并直接从源中复制它们,我们建议你在 Crowdin 编辑器中更改你的设置。 - -1. 打开“设置” ![如何打开编辑器中的设置](./editor-settings.png) - -2. 向下滚动到“HTML 标签显示”部分 - -3. 选择“隐藏” ![请选择“隐藏”](./hide-tags.png) - -4. 点击“保存” - -通过选择此选项,完整的标签文本将不再显示,而是由一个数字代替。 翻译时,点击此标签会自动将确切的标签复制到翻译字段。 - -**链接** - -你可能会注意到 ethereum.org 或其他网站上的页面的完整链接。 - -这些链接应该与源相同,并且不要更改或翻译。 如果你翻译了链接或以任何方式更改了链接,即使只是删除其中的一部分,如斜杠 (/),也将导致链接损坏且不可用。 - -处理链接的最佳方法是直接从源中复制它们,方法是点击它们或使用“复制源”按钮 (Alt+C)。 - -![link.png 示例](./example-of-link.png) - -链接也以标签的形式出现在源文本中(即 <0> )。 如果你将鼠标悬停在标签上,编辑器将显示其全部内容 - 有时这些标签将代表链接。 - -从源复制链接而不要更改其顺序,这一点非常重要。 - -如果标签的顺序发生变化,它们所代表的链接将被破坏。 - -![tags.png 中的链接示例](./example-of-links-inside-tags.png) - -**标签和变量** - -源文本包含许多不同类型的标签,这些标签应始终从源中复制并且永远不要更改。 与上述类似,这些标签在翻译中的顺序也应与源相同。 - -标签总是包含一个开始和结束标签。 在大多数情况下,应该翻译开始和结束标签之间的文本。 - -示例:``Decentralized`` - -`` - _使文本变粗的开始标签_ - -Decentralized - _可翻译文本_ - -`` - _结束标签_ - -!['strong' tags.png 的示例](./example-of-strong-tags.png) - -代码片段的处理方式与其他标签略有不同,因为它们包含不应翻译的代码。 - -示例:``nonce`` - -`` - _开始标签,其中包含一段代码_ - -nonce - _不可翻译的文本_ - -`` - _结束标签_ - -![代码片段 .png 的示例](./example-of-code-snippets.png) - -源文本还包含缩短的标签,这些标签只包含数字,这意味着它们的功能不是很明显。 你可以将鼠标悬停在这些标签上,以准确查看它们提供的功能。 - -在下面的示例中,你可以看到,将鼠标悬停在 <0> 标签显示,它代表 `` 并包含代码片段,因此不应翻译这些标签内的内容。 - -![模棱两可的 tags.png 的示例](./example-of-ambiguous-tags.png) - -### 简短与完整形式/缩写 {#short-vs-full-forms} - -网站上使用了很多缩写,例如 dApp、NFT、DAO、DeFi 等。 这些缩写通常用于英语,并且大多数网站访问者都熟悉它们。 - -由于它们通常没有其他语言的既定翻译,处理这些和类似术语的最佳方法是提供完整形式的描述性翻译,并在括号中添加英文缩写。 - -不要翻译这些缩写,因为大多数人不熟悉它们,而且本地化版本对大多数访问者来说没有多大意义。 - -如何翻译 dApp 的示例: - -- Decentralized applications (dapps) → _完整的翻译形式 (括号中为英文缩写)_ - -### 没有既定翻译的术语 {#terms-without-established-translations} - -某些术语在其他语言中可能没有既定翻译,并且以原始英语术语而广为人知。 这些术语主要包括较新的概念,如工作量证明、权益证明、信标链、质押等。 - -虽然翻译这些术语听起来不自然,但由于英文版本也常用于其他语言,因此强烈建议将它们翻译。 - -翻译它们时,请随意发挥创意,使用描述性翻译,或直接按字面翻译。 - -**大多数术语应该翻译而不是将其中一些保留英文的原因是,随着越来越多的人开始使用以太坊和相关技术,这种新术语将在未来变得更加普遍。 如果我们想让来自世界各地的更多人加入这个领域,我们需要以尽可能多的语言提供易于理解的术语,即使我们需要自行创建它。** - -### 按钮与行动号召 {#buttons-and-ctas} - -网站包含许多按钮,其翻译方式应与其他内容不同。 - -可以通过查看上下文屏幕截图、与大多数字符串连接或通过检查编辑器中的上下文(包括短语“button”)来识别按钮文本。 - -按钮的翻译应尽可能简短,以防止格式不匹配。 此外,按钮翻译应该是必要的,即呈现命令或请求。 - -![如何查找按钮 .png](./how-to-find-a-button.png) - -### 翻译包容性 {#translating-for-inclusivity} - -Ethereum.org 的访问者来自世界各地和不同的背景。 因此,网站上的语言应该是中立的,欢迎所有人而不是排他性的。 - -其中一个重要方面是性别中立。 这可以通过使用正式的地址形式并避免在翻译中使用任何特定性别的词来轻松实现。 - -另一种形式的包容性是,尝试面向全球观众翻译,而不是面向任何国家、种族或地区。 - -最后,语言应该适合所有大众和年龄段的读者。 - -## 特定语言的翻译 {#language-specific-translations} - -翻译时,重要的是要遵循你的语言中使用的语法规则、约定和格式,而不是从源复制。 源文本遵循英语语法规则和约定,而这不适用于许多其他语言。 - -你应该了解你的语言规则并进行相应的翻译。 如果你需要帮助,请与我们联系,我们将帮助你找到一些有关如何在你的语言中使用这些元素的资源。 - -一些需要特别注意的例子: - -### 标点、格式 {#punctuation-and-formatting} - -**大写** - -- 不同语言的大小写存在巨大差异。 -- 在英语中,通常将标题和名称、月份和日期、语言名称、假期等中的所有单词大写。 在许多其他语言中,这在语法上是不正确的,因为它们具有不同的大小写规则。 -- 一些语言也有关于人称代词、名词和某些形容词大写的规则,这些在英语中是不大写的。 - -**间距** - -- 正字法规则定义了每种语言的空格使用。 因为到处都使用空格,所以这些规则是最独特的,而空格是最容易误译的元素。 -- 英语和其他语言之间的一些常见间距差异: - - 计量单位和货币前的空格(例如 USD、EUR、kB、MB) - - 度数符号前的空格(例如 °C、℉) - - 一些标点符号前的空格,尤其是省略号 (...) - - 斜杠前后的空格 (/) - -**列表** - -- 每种语言都有一套多样化和复杂的规则来编写列表。 这些可能与英语有很大不同。 -- 在某些语言中,每个新行的第一个单词需要大写,而在其他语言中,新行应该以小写字母开头。 许多语言对列表中的大小写也有不同的规则,具体取决于每行的长度。 -- 这同样适用于行项目的标点符号。 列表中的结束标点可以是句点 (**.**)、逗号 (**,**) 或分号 (**;**)具体取决于语言 - -**引号** - -- 语言使用许多不同的引号。 简单地从源中复制英文引号通常是不正确的。 -- 一些最常见的引号类型包括: - - “示例文本” - - ‘示例文本’ - - »示例文本« - - “示例文本” - - ‘示例文本’ - - «示例文本» - -**连字符和破折号** - -- 在英语中,连字符 (-) 用于连接单词或单词的不同部分,而破折号 (-) 用于表示范围或停顿。 -- 许多语言对使用连字符和破折号有不同的规则,应遵守这些规则。 - -### 格式 {#formats} - -**数字** - -- 用不同语言书写数字的主要区别在于用于小数和千位的分隔符。 对于千数来说,这可以是句号、逗号或空格。 同样,一些语言使用小数点,而另一些语言使用小数点逗号。 - - 一些大数的例子: - - 英语 - **1,000.50** - - 西班牙语 - **1.000,50** - - 法语 - **1 000,50** -- 翻译数字时的另一个重要考虑因素是百分号。 它可以用不同的方式编写:**100%**、**100 %** 或 **%100**。 -- 最后,负数可以不同地显示,具体取决于语言:-100、100-、(100) 或 [100]。 - -**日期** - -- 在翻译日期时,有许多基于语言的考虑因素和差异。 这些包括日期格式、分隔符、大写和前导零。 全长日期和数字日期之间也存在差异。 - - 不同日期格式的一些示例: - - 英语(英国)(dd/mm/yyyy) – 1st January, 2022 - - 英语(美国)(mm/dd/yyyy) – January 1st, 2022 - - 中文 (yyyy-mm-dd) – 2022 年 1 月 1 日 - - 法语 (dd/mm/yyyy) – 1er janvier 2022 - - 意大利语 (dd/mm/yyyy) – 1º gennaio 2022 - - 德语 (yyyy/mm/dd) – 1. Januar 2022 - -**货币** - -- 由于格式、惯例和转换不同,货币转换可能具有挑战性。 作为一般规则,请保持货币与来源相同。 为了读者的利益,您可以在括号中添加您的当地货币和转换。 -- 用不同语言书写货币的主要区别包括符号位置、小数逗号与小数点、间距以及缩写与符号。 - - 符号放置:美元 100 或 100 美元 - - 小数逗号和。小数点:100,50$ 或 100.50$ - - 间距:100 美元或 100 美元 - - 缩写和符号:100$ 或 100 USD - -**计量单位** - -- 作为一般规则,请根据来源保留计量单位。 如果您所在的国家/地区使用不同的系统,您可以将转换包括在括号中。 -- 除了度量单位的本地化之外,注意语言处理这些单位的方式的差异也很重要。 主要区别在于数字和单位之间的间距,可以根据语言而有所不同。 这方面的示例包括 100kB 与 100 kB 或 50ºF 与 50ºF。 - -### 总结 {#conclusion} - -翻译 ethereum.org 是了解以太坊不同方面的绝佳机会。 - -翻译时尽量不要着急。 放轻松,玩得开心! - -感谢你参与翻译计划并帮助我们让更广泛的受众可以访问网站。 以太坊社区是全球性的,我们很高兴你也成为其中的一员! diff --git a/src/content/translations/zh/dao/index.md b/src/content/translations/zh/dao/index.md deleted file mode 100644 index d4244f6a3d0..00000000000 --- a/src/content/translations/zh/dao/index.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: 去中心化自治组织 (DAO) -description: 以太坊上的去中心化自治组织简介 -lang: zh -template: use-cases -emoji: ":handshake:" -sidebarDepth: 2 -image: ../../../../assets/use-cases/dao-2.png -alt: 表示去中心化自治组织在对提案投票。 -summaryPoint1: 没有集中领导的、成员共同拥有的社区。 -summaryPoint2: 一种与互联网上的陌生人合作的安全方式。 -summaryPoint3: 一个为特定事业投入资金的安全场所。 ---- - -## 什么是去中心化自治组织? {#what-are-daos} - -去中心化自治组织是指集体所有且由区块链监管的组织,为一个共同的使命而奋斗。 - -去中心化自治组织让全世界志同道合之士开展合作,而无需信赖一位宅心仁厚的领导来管理资金和运营。 没有可以随意花钱的首席执行官,也没有能够做假账的首席财务官。 取而代之的是,融入代码的基于区块链的规则规定组织如何运作以及资金如何使用。 - -去中心化自治组织拥有内部资产,未经该组织批准,任何人都无权动用。 决策通过提案和投票监管,确保组织中的每位成员都有发言权,一切都发生在链上,公开透明。 - -## 我们为什么需要去中心化自治组织? {#why-dao} - -与他人创办涉及资金和金钱的组织,需要对与合作对象高度信任。 不过,显然很难相信互联网上素不相识的人。 通过去中心化自治组织,你不需要相信组织中的其他人,只需要相信去中心化自治组织的代码就够了,它是 100% 公开透明的,任何人都可以验证。 - -这为全球合作和协调提供了许多新机会。 - -### 对比 {#dao-comparison} - -| 去中心化自治组织 | 传统组织 | -| -------------------------------------------------- | ------------------------------------------------------------ | -| 通常是平等的,并且完全民主。 | 通常等级鲜明。 | -| 需要成员投票才能实施任何更改。 | 可能部分人就能进行决策,也可能投票表决,具体取决于组织结构。 | -| 不需要可信的中间人就可以自动计算投票、执行结果。 | 如果允许投票,则在内部计票,投票结果必须由人工处理。 | -| 以去中心化方式自动提供服务(例如慈善基金的分配)。 | 需要人工处理或自动集中控制,易受操纵。 | -| 所有活动公开透明。 | 活动通常是私密进行,不向公众开放。 | - -### 去中心化自治组织示例 {#dao-examples} - -为了帮助你更好地理解,这里有一些去中心化自治组织的应用示例: - -- 慈善机构 – 可以接受全世界任何人的捐赠,并投票决定要资助的项目。 -- 集体所有权 – 可以购买实体或数字资产,组织成员可以投票决定如何使用它们。 -- 风险投资和赠款 - 你可以成立一个风险基金,汇集投资资本并投票进行商业投资。 后续收益可以分配给相应 DAO 成员。 - -## 去中心化自治组织如何运作? {#how-daos-work} - -智能合约是去中心化自治组织的基础,它定义了组织的规则并持有组织的资产。 合约在以太坊上生效后,除非表决通过,否则任何人都不能修改规则。 任何人都无法超越合约定义的规则和逻辑行事。 由于资产也由智能合约定义,这也意味着未经组织批准任何人都不能使用资金。 所以去中心化组织也不需要中央权威。 相反,组织集体作出决定,而付款会在表决通过后自动获批。 - -之所以能够做到这一点,是因为智能合约在以太坊上生效后,就无法被篡改。 一切都是公开的,你不可能在其他人一无所知的情况下修改代码(去中心化组织定义的规则)。 - - - 更多关于智能合约的信息 - - -## 以太坊与去中心化自治组织 {#ethereum-and-daos} - -以太坊为去中心化自治组织提供了坚实基础,原因如下: - -- 以太坊本身已经建立足够的共识,足以让各类组织信任以太坊网络。 -- 智能合约一旦生效就无法更改,即便是其所有者也是如此。 这使得去中心化自治组织能够按照编程规则运行。 -- 智能合约可以发送/接收资金。 没有这点,你就需要可信的中间人来管理组织资金。 -- 比起竞争,以太坊社区更趋向于合作,这使得各类应用程序和服务系统蓬勃发展。 - -## 去中心化自治组织的治理 {#dao-governance} - -治理去中心化自治组织时要考虑很多因素,比如投票和提案如何运作。 - -### 委托 {#governance-delegation} - -委托就像是去中心化自治组织的代议制民主。 代币持有者将投票委托给那些自提名并承诺管理协议和随时了解动态的用户。 - -#### 知名案例 {#governance-example} - -[以太坊域名服务](https://claim.ens.domains/delegate-ranking) - 以太坊域名服务持有者可以将他们的选票委托给参与的社区成员来代表他们。 - -### 自动交易治理 {#governance-example} - -在很多去中心化自治组织中,如果达到法定人数的成员投票赞成,交易将自动执行。 - -#### 知名案例 {#governance-example} - -[Nouns](https://nouns.wtf) — 在 Nouns 去中心化自治组织中,只要创始人不否决,如果投票达到法定票数并且多数票赞成,那么交易将自动执行。 - -### 多重签名治理 {#governance-example} - -虽然去中心化自治组织可能有数千名有投票权的成员,但资金一般会放在一个由 5 到 20 名活跃社区成员共同管理的钱包中,这些成员受组织信任并接受监督(社区知道他们的公开身份)。 投票后,执行多重签名的签名者将执行社区的意志。 - -## 去中心化自治组织相关法律 {#dao-laws} - -1977 年,怀俄明州发明了有限责任公司制度,保护企业家并对他们的责任范围做出限制。 最近,他们率先制定了《去中心化自治组织法》,确定了去中心化自治组织的法律地位。 目前,怀俄明州、佛蒙特州和维尔京群岛都制定了各自的去中心化自治组织法律。 - -#### 知名案例 {#law-example} - -[CityDAO](https://citydao.io) — 依照怀俄明州的去中心化自治组织相关法律,CityDAO 购买了黄石国家公园附近的 40 英亩土地。 - -## 去中心化自治组织的成员资格 {#dao-membership} - -去中心化自治组织成员资格分为多种模式。 成员资格可以决定投票方式和去中心化自治组织的其他关键事项。 - -### 基于代币的成员资格 {#token-based-membership} - -通常无需许可,取决于其使用的代币。 通常,这些治理代币在去中心化交易所无需许可即可易, 其余代币要通过提供流动性或“工作量证明”才能赚取。 无论何种方式,只要持有代币就可以参与投票。 - -_通常用来管理各种去中心化协议和/或代币本身。_ - -#### 知名案例 {#token-example} - -[MakerDAO](https://makerdao.com) — 去中心化交易所普遍提供 MakerDAO 的代币 MKR,任何人都可以买入,从而获得对 Maker 协议未来的投票权。 - -### 基于份额的成员资格 {#share-based-membership} - -基于份额的去中心化自治组织通常拥有更多权限,但仍然相当公开透明。 任何潜在成员都可以提交加入去中心化自治组织的提案,并且通常以代币或工作的形式提供有价值的贡献。 份额代表直接投票权和所有权。 成员可以随时退出组织并带走属于他们的资金份额。 - -_通常用于联系更紧密、以人为中心的组织,例如慈善机构、工人团体和投资俱乐部等。 也可以管理协议和代币。_ - -#### 知名案例 {#share-example} - -[MolochDAO](http://molochdao.com/) – MolochDAO 致力于为以太坊项目募集资金。 他们需要成员资格提案,以便组织可以评估你是否具有必要的专业知识和资本来对潜在受资助者做出明智判断。 你无法通过在公开市场上购买代币来加入这类去中心化自治组织。 - -### 基于信誉的成员资格 {#reputation-based-membership} - -信誉代表参加投票的证明,并授予去中心化自治组织中的投票权。 不同于基于代币或份额的成员资格,基于信誉的去中心化自治组织不会将所有权转让给贡献者。 信誉积分不能够购买、转让或委托;去中心化自治组织成员必须通过参与获得信誉积分。 链上投票无需许可,潜在成员可以自由提交加入去中心化自治组织的提案,并要求获得信誉积分和代币,作为他们所做贡献的奖励。 - -_通常用于协议和去中心化应用程序的去中心化开发和管理,但同时非常适合各类组织,例如慈善机构、工人团体、投资俱乐部等。_ - -#### 知名案例 {#reputation-example} - -[DXdao](https://DXdao.eth.link) -- DXdao 是一个全球性的主权团体,自 2019 年以来一直致力于构建和管理去中心化协议和应用。 该组织利用基于信誉积分的治理和全息共识来协调和管理资金,这意味着任何人都不能对它的未来施加影响。 - -## 加入/创立去中心化自治组织 {#join-start-a-dao} - -### 加入去中心化自治组织 {#join-a-dao} - -- [以太坊社区中的去中心化自治组织](/community/get-involved/#decentralized-autonomous-organizations-daos) -- [DAOHaus 的去中心化自治组织列表](https://app.daohaus.club/explore) -- [Tally.xyz 的去中心化自治组织列表](https://www.tally.xyz) - -### 创立去中心化自治组织 {#start-a-dao} - -- [使用 DAOHaus 创立去中心化自治组织](https://app.daohaus.club/summon) -- [从 Tally 开创治理去中心化自治组织](https://www.tally.xyz/add-a-dao) -- [创立由 Aragon 支持的去中心化自治组织](https://aragon.org/product) -- [创立 colony](https://colony.io/) -- [使用 DAOstack 的全息共识机制创建去中心化自治组织](https://alchemy.daostack.io/daos/create) - -## 延伸阅读 {#further-reading} - -### 去中心化自治组织相关文章 {#dao-articles} - -- [什么是去中心化自治组织?](https://aragon.org/dao)– [Aragon](https://aragon.org/) -- [《去中心化自治组织手册》](https://daohandbook.xyz) -- [去中心化自治组织之家](https://wiki.metagame.wtf/docs/great-houses/house-of-daos) – [Metagame](https://wiki.metagame.wtf/) -- [什么是去中心化自治组织,其宗旨是什么?](https://daohaus.substack.com/p/-what-is-a-dao-and-what-is-it-for) – [DAOhaus](https://daohaus.club/) -- [如何创立由去中心化自治组织提供支持的数字社区](https://daohaus.substack.com/p/four-and-a-half-steps-to-start-a) – [DAOhaus](https://daohaus.club/) -- [什么是去中心化自治组织?](https://coinmarketcap.com/alexandria/article/what-is-a-dao) – [Coinmarketcap](https://coinmarketcap.com) -- [什么是全息共识?](https://medium.com/daostack/holographic-consensus-part-1-116a73ba1e1c) - [DAOstack](https://daostack.io/) -- [《去中心化自治组织不是公司:去中心化在自治组织中很重要》,作者 Vitalik](https://vitalik.ca/general/2022/09/20/daos.html) -- [去中心化自治组织、数据可用性委员会、数据可用性等等:不完整术语指南](https://blog.ethereum.org/2014/05/06/daos-dacs-das-and-more-an-incomplete-terminology-guide) - [以太坊博客](https://blog.ethereum.org) - -### 视频 {#videos} - -- [什么是加密货币中的去中心化自治组织?](https://youtu.be/KHm0uUPqmVE) -- [去中心化自治组织能构建一座城市吗?](https://www.ted.com/talks/scott_fitsimones_could_a_dao_build_the_next_great_city) – [TED](https://www.ted.com/) diff --git a/src/content/translations/zh/decentralized-identity/index.md b/src/content/translations/zh/decentralized-identity/index.md deleted file mode 100644 index f722afc0292..00000000000 --- a/src/content/translations/zh/decentralized-identity/index.md +++ /dev/null @@ -1,189 +0,0 @@ ---- -title: 去中心化身份 -description: 什么是去中心化身份,它为什么很重要? -lang: zh -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/))是由签发者发布、可加密验证的防篡改声明。 实体(如,组织)发出的每个身份证明或可验证凭证都与他们的去中心化身份标识有关。 - -由于去中心化身份标识存储在区块链上,任何人都可以多方查证以太坊上签发者的去中心化身份标识,以验证身份证明的有效性。 实际上,以太坊区块链就像是一个共用目录,能够验证与某些实体相关的去中心化身份标识。 - -去中心化身份标识是让身份证明能够自行控制和可以验证的原因。 即使签发者不再存在,持有人也总会有证据证实该身份证明的出处和有效性。 - -去中心化身份标识对于通过去中心化身份保护个人隐私信息不受侵犯也至关重要。 例如,如果某人提交一份身份证明的证据(驾驶执照),则验证者不需要检查证据中信息的有效性。 只需要获得身份证明真实性的加密保证,以及颁发组织身份的加密保证,验证者就可以确定证据是否有效。 - -## 去中心化身份中身份证明的类型 {#types-of-attestations-in-decentralized-identity} - -在基于太坊的身份生态系统中,如何存储和检索身份证明信息与传统身份管理系统不同。 下文概括了一些在去中心化身份系统中签发、存储和验证身份证明的方法。 - -### 链下身份证明 {#off-chain-attestations} - -将身份证明存储在链上的一个问题是,其中可能包含个人想要保密的信息。 以太坊区块链具有开放性,因此不适合用于存储此类身份证明。 - -解决方法是签发身份证明至用户的数字钱包,由用户链下持有,但使用签发者链上存储的去中心化身份标识进行签名。 这些身份证明被编码为 [JSON Web 令牌](https://en.wikipedia.org/wiki/JSON_Web_Token),其中包含签发者的数字签名,从而可以轻松验证链下声明。 - -以下是用于解释链下身份证明的假设场景: - -1. 大学(签发者)生成身份证明(数字学术证书),用其密钥签名,然后将其颁发给 Bob(身份所有者)。 - -2. Bob 申请了一份工作并想向雇主证明他的学历,因此他分享了移动钱包中的身份证明。 然后,公司(验证者)可以通过检查签发者的去中心化身份(即其在以太坊上的公钥)来确认身份证明的有效性。 - -### 可以随时访问的链下身份证明 {#offchain-attestations-with-persistent-access} - -在这种协议下,身份证明将被转变为 JSON 文件并存储在链下(理想情况下存储在[去中心化云存储](/developers/docs/storage/)平台上,例如 IPFS 或 Swarm)。 但是,JSON 文件的[哈希值](/glossary/#hash)存储在链上,并通过链上注册系统链接至去中心化身份。 所关联的去中心化身份可以是身份证明的签发者或接收者。 - -这种方法使身份证明能够基于区块链长期存在,同时使声明信息保持加密并维持其可验证性。 它还允许选择性披露,因为私钥的持有者可以解密信息。 - -### 链上身份证明 {#onchain-attestations} - -链上身份证明保存在以太坊区块链上的[智能合约](/developers/docs/smart-contracts/)中。 智能合约(充当注册系统)将身份证明映射到相应的链上去中心化身份标识(公钥)。 - -以下示例展示了链上身份证明在实践中的使用方式: - -1. 一家公司(XYZ 公司)计划使用智能合约出售所有权份额,但只想卖给那些已完成背景调查的买家。 - -2. XYZ 公司可以让执行背景调查的公司在以太坊上发布链上身份证明。 此身份证明可以证实某人已通过背景调查,但不会暴露任何个人信息。 - -3. 出售股份的智能合约可以核查注册合约中筛选出的买家的身份,从而使智能合约确定哪些人可以购买股份。 - -### 灵魂绑定代币和身份 {#soulbound} - -[灵魂绑定代币](https://vitalik.ca/general/2022/01/26/soulbound.html)(不可转让的非同质化代币)可用于收集特定钱包的独有信息。 这有效地创建了一个绑定至特定以太坊地址的唯一链上身份,其中可能包括代表成就(例如完成某些特定在线课程或在游戏中超过特定分数)或社区参与度的代币。 - -## 去中心化身份的好处 {#benefits-of-decentralized-identity} - -1. 去中心化身份增加了个人对识别信息的控制度。 可以在不依赖中心化机构和第三方服务的情况下验证去中心化身份标识和身份证明。 - -2. 去中心化身份解决方案为验证和管理用户身份提供一种可保护隐私的去信任无缝方法。 - -3. 去中心化身份利用区块链技术,在不同方之间建立信任,并提供加密保证来证实身份证明的有效性。 - -4. 去中心化身份使身份数据可移植。 用户将身份证明和身份标识存储在移动钱包中,并可以与他们选择的任何一方共享。 去中心化身份标识和身份证明不会被锁在签发组织的数据库中。 - -5. 去中心化身份应与新兴的零知识技术很好地配合,这将使个人能够证明他们拥有过某物或做过某事,但无需透露具体是什么。 这可以成为一种将信任和隐私结合在一起的强有力方式,适用于投票等应用。 - -6. 去中心化身份使防女巫机制能够识别一个人假装多人游戏或向某个系统发送垃圾邮件的情况。 - -## 去中心化身份用例 {#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/),可授予持有者访问在线社区的权限。 - -然后,[使用以太坊登录](https://login.xyz/)功能将使服务器能够确认用户的以太坊帐户,并从他们的帐户地址获取所需的身份证明。 这意味着用户无需记住冗长的密码即可访问平台和网站,从而改善用户的线上体验。 - -### 2. “了解你的客户”身份验证 {#kyc-authentication} - -许多在线服务的使用需要个人提供身份证明和凭证,例如驾驶执照或国家护照。 但这种方法是有问题的,因为私人用户信息可能会被泄露,并且服务提供商无法验证身份证明的真实性。 - -去中心化身份使公司能够跳过传统的[了解你的客户 (KYC)](https://en.wikipedia.org/wiki/Know_your_customer) 流程,通过可验证凭据验证用户身份。 这降低了身份管理的成本,并防止使用伪造证件。 - -### 3. 投票和在线社区 {#voting-and-online-communities} - -在线投票和社交媒体是去中心化身份的两个新应用。 在线投票方案容易受到操控,尤其当恶意行为者创建虚假身份进行投票时。 要求个人提供链上身份证明可以提高在线投票流程的公平性。 - -去中心化身份可以帮助创建没有虚假帐户的在线社区。 例如,每位用户可能必须使用链上身份系统(如以太坊域名服务)来验证他们的身份,从而减少是机器人的可能性。 - -### 4. 防女巫保护 {#sybil-protection} - -女巫攻击是指个人欺骗系统,使系统认为他们是多人以增加他们的影响力。 使用[平方投票法](https://www.radicalxchange.org/concepts/plural-voting/)的[资助应用](https://gitcoin.co/grants/)容易受到这些女巫攻击,因为当更多人投票支持时,资助的价值会增加,从而激励用户将他们的贡献分配给多个身份。 通过增加每位参与者证明他们是真人的负担,去中心化身份有助于防止这种情况发生,尽管通常不必透露具体的私人信息。 - -## 使用去中心化身份 {#use-decentralized-identity} - -有许多雄心勃勃的项目使用以太坊作为去中心化身份解决方案的基础: - -- **[以太坊域名服务 (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/)** - _一个去中心化数字身份聚合模块。_ -- **[walt.id](https://walt.id)** — _开源去中心化身份和钱包基础架构,使开发人员和组织能够利用自主主权身份和非同质化代币/灵魂绑定代币。_ - -## 延伸阅读 {#further-reading} - -### 文章 {#articles} - -- [区块链用例:数字身份中的区块链](https://consensys.net/blockchain-use-cases/digital-identity/) — _共识系统_ -- [什么是以太坊 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://walt.id/white-paper/digital-identity) — _Dominik Beron_ - -### 视频 {#videos} - -- [去中心化身份(奖励直播环节)](https://www.youtube.com/watch?v=ySHNB1za_SE&t=539s) — _一个很好的去中心化身份解说视频,来自 Andreas Antonopolous_ -- [使用以太坊和 Ceramic、IDX、React 以及 3ID Connect 的去中心化身份登录](https://www.youtube.com/watch?v=t9gWZYJxk7c) - _来自 Nader Dabit 的一个 YouTube 教程,介绍如何使用用户的以太坊钱包构建身份管理系统以创建、读取和更新他们的个人资料_ -- [BrightID - 以太坊上的去中心化身份](https://www.youtube.com/watch?v=D3DbMFYGRoM) — _Bankless 播客节目讨论 BrightID(以太坊的去中心化身份解决方案)_ -- [链下互联网:去中心化身份和可验证凭证](https://www.youtube.com/watch?v=EZ_Bb6j87mg) — Evin McMullen 的 EthDenver 2022 演讲 -- [可验证凭据释义](https://www.youtube.com/watch?v=ce1IdSr-Kig) - Tamino Baumann 的 YouTube 讲解视频和演示 - -### 社区 {#communities} - -- [GitHub 上的 ERC-725 联盟](https://github.com/erc725alliance) — _支持 ERC725 标准管理以太坊区块链上的身份_ -- [SpruceID Discord 服务器](https://discord.com/invite/Sf9tSFzrnt) — _使用以太坊登录的爱好者和开发者社区_ -- [Veramo Labs](https://discord.gg/sYBUXpACh4) - _开发者社区,帮助为应用程序构建可验证数据框架_ -- [walt.id](https://discord.com/invite/AW8AgqJthZ) — _一个由开发者和构建者组成的社区,致力于研究跨各种行业的去中心化身份用例_ diff --git a/src/content/translations/zh/defi/index.md b/src/content/translations/zh/defi/index.md deleted file mode 100644 index e7fec081414..00000000000 --- a/src/content/translations/zh/defi/index.md +++ /dev/null @@ -1,352 +0,0 @@ ---- -title: 去中心化金融 (DeFi) -description: 以太坊上的去中心化金融简介 -lang: zh -template: use-cases -emoji: ":money_with_wings:" -image: ../../../../assets/use-cases/defi.png -alt: 由乐高积木拼成的以太坊徽标。 -sidebarDepth: 2 -summaryPoint1: 当前金融体系的全球性、开放性替代方案。 -summaryPoint2: 允许用户进行借贷、储蓄、投资、交易等等的产品。 -summaryPoint3: 基于开源技术,任何人都可以来编程。 ---- - -去中心化金融是专为互联网时代构建的开放式全球金融系统,可替代不透明、控制严格并由几十年前的基础设施和流程支撑的系统。 让你可以控制和了解自己的资金。 让你有机会接触全球市场,并可以替代当地货币或银行业务。 去中心化金融产品向任何有互联网连接的人开放金融服务,产品主要由用户创造和维护。 迄今为止,价值数百亿美元的加密货币已经通过去中心化金融应用程序流动,而且每天都在增长。 - -## 什么是去中心化金融? {#what-is-defi} - -去中心化金融是金融产品和服务的统称,任何可以使用以太坊(具有互联网连接)的人都可以访问这些产品和服务。 有了去中心化金融,市场始终开放,没有集中管理机构可以阻止付款或拒绝访问任何内容。 以前有可能出现人为错误的缓慢服务,替代为由任何人都可以检查和审查的代码来处理,变得自动和安全。 - -这是一个蓬勃发展的加密经济,你可以在那里放贷、借款、做多/做空、赚取利息等等。 精通加密技术的阿根廷人已经使用去中心化金融来逃避严重的通货膨胀。 公司已经开始实时向员工发放工资。 有些人甚至在不需要任何个人身份证明的情况下,就已经获得或偿还了价值数百万美元的贷款。 - - - -## 去中心化金融与传统金融 {#defi-vs-tradfi} - -了解去中心化金融潜力的最佳方法是了解目前存在的问题。 - -- 有些人无法设立银行帐户或使用金融服务。 -- 无法获得金融服务会阻碍人们就业。 -- 金融机构可能会阻止你获得报酬。 -- 金融服务的一个隐性收费就是个人数据。 -- 政府和中央机构可以随意关闭市场。 -- 交易时间通常受特定时区的营业时间限制。 -- 由于内部的人工流程,资金转移可能需要几天时间。 -- 金融服务存在溢价,因为中介机构需要分成。 - -### 对比 {#defi-comparison} - -| 去中心化金融 | 传统金融 | -| --------------------------------------------------------------- | ------------------------------------------------------------------------ | -| 你持有你的钱。 | 资金由机构持有。 | -| 你可以控制自己的资金流向和使用方式。 | 你必须相信机构不会出现资金管理不善问题,比如不会将钱借给高风险借款人。 | -| 资金转移在几分钟内完成。 | 如果人工处理,支付可能需要几天时间。 | -| 匿名交易。 | 金融活动与你的身份紧密相连。 | -| 去中心化金融对任何人开放。 | 你必须申请使用金融服务。 | -| 交易时间 24 小时不间断。 | 根据人工作息时间制定交易时间。 | -| 建立在透明基础上 - 任何人都可以查看产品数据并检查系统运行状况。 | 金融机构是闭门造车:你不能要求查看他们的贷款历史,管理资产的记录,等等。 | - - - 探索去中心化金融应用程序 - - -## 从比特币开始... {#bitcoin} - -从某种程度来讲,比特币是第一款去中心化金融应用程序。 比特币让你真正拥有和掌控价值,并可将其发送到世界任何地方。 为实现这一点,它提供了一种方式,让众多互不信任的人在无需可信赖中介的情况下,就帐户的账本达成一致。 比特币向所有人公开,任何人都无权更改其规则。 比特币的规则(例如稀缺性和开放性),都写入了技术中。 与传统金融不同:在传统金融中,政府可以印钞使你的存款贬值,而机构则可以关闭市场。 - -以太坊便以此为基础。 就像比特币一样,规则不会因你而改变,而且每个人都可以得到。 使用[智能合约](/glossary#smart-contract)技术还可以让这种数字货币程序化,使它的功能不仅限于储蓄和交易。 - - - -## 可编程货币 {#programmable-money} - -这听起来很奇怪……“我为什么会想对钱进行编程”? 然而,这只是以太坊代币的一个默认功能。 任何人都可以对逻辑编程,以生成支付。 这样,你就可以将比特币的控制权和安全性与传统金融机构提供的服务相结合。 然后,你就可以用加密货币做一些比特币做不到的事情,比如借贷、预约付款、投资指数基金等等。 - - -
如果你不熟悉以太坊,请尝试我们推荐的去中心化金融应用程序。
- - 探索去中心化金融应用程序 - -
- -## 你可以用去中心化金融做什么? {#defi-use-cases} - -大多数金融服务都有去中心化的替代方案。 但以太坊也为打造全新的金融产品开辟了机会。 这个清单还在不断增长。 - -- [向世界各地汇款](#send-money) -- [在全球范围内流转资金](#stream-money) -- [获取稳定货币](#stablecoins) -- [抵押借款](#lending) -- [无抵押借款](#flash-loans) -- [开始加密货币存款](#saving) -- [交易代币](#swaps) -- [扩充你的投资组合](#investing) -- [为你的想法提供资金](#crowdfunding) -- [购买保险](#insurance) -- [管理你的投资组合](#aggregators) - - - -### 向世界各地快速汇款 {#send-money} - -作为一个区块链,以太坊设计用于让用户在全球范围内安全地发送交易。 与比特币一样,以太坊使得向世界各地发送资金就像发送电子邮件一样容易。 只需从钱包中输入收款人的 [ENS 名称](/nft/#nft-domains)(如 bob.eth)或他们的帐户地址,你的付款(通常)将在几分钟内直接到达对方帐户。 要发送或接收付款,你将需要一个[钱包](/wallets/)。 - - - 查看支付 dapp - - -#### 在全球范围内流转资金... {#stream-money} - -你也可以通过以太坊汇款。 这可以让你秒速支付某人的工资,让他们可以在需要时获得资金。 或者立刻租用一些物品,如储物柜或电动滑板车。 - -而且,如果你因为以太币的价值可能发生变化而不想发送[以太币](/eth/),以太坊上还有其它可供选择的货币:稳定币。 - - - -### 获取稳定货币 {#stablecoins} - -对很多金融产品和一般支出来说,数字货币的波动都是问题。 去中心化金融社区已经通过稳定币解决了这个问题。 它们的价值始终与其他资产挂钩,通常是像美元这样的通用货币。 - -Dai 或 USDC 等代币的价值和美元的差距通常保持在几美分以内。 这使他们能够完美地用于收入或零售。 在政府发行的货币出现巨大不确定性的时候,拉丁美洲的许多人都曾使用稳定币作为保护储蓄的一种方式。 - - - 关于稳定币的更多信息 - - - - -### 借款 {#lending} - -向去中心化供应商借钱主要有两种情况。 - -- 点对点,意味着借款人将直接从特定贷款人那里借款。 -- 基于资金池,贷款人向借款人可以借贷的资金池提供资金(流动性)。 - - - 查看借款 dapp - - -选择去中心化贷款人具有许多优势... - -#### 隐私借贷 {#borrowing-privacy} - -今天,贷款和借钱都围绕着相关个人进行。 在放贷前,银行需要了解你是否有能力偿还贷款。 - -去中心化借贷无需任何一方表明自己的身份即可进行。 但是,借款人必须提供抵押品,如果他们没有偿还贷款,贷款人将自动获得抵押品。 有的贷款人甚至接受非同质化代币作为抵押品。 非同质化代币是指绘画等独特资产。 [关于非同质化代币的更多信息](/nft/) - -这允许你在不进行征信调查或透露私人信息的情况下借钱。 - -#### 获得全球资金 {#access-global-funds} - -当你选择去中心化贷款人时,可以使用来自全球各地的存款,而不仅仅是选定银行或机构保管的资金。 这使人们更容易获得贷款,并提高利率。 - -#### 税收优惠 {#tax-efficiencies} - -借贷可以让你获得所需资金,而无需出售你的以太币(该行为需要征税)。 然而,你可以使用以太币作为抵押品,借入稳定币。 这不仅为你提供所需的现金流,你还可以继续持有自己的以太币。 当你需要现金时,稳定币是更好的代币,因为它们不会像以太币一样波动。 [关于稳定币的更多信息](#stablecoins) - -#### 闪电贷 {#flash-loans} - -闪电贷是一种实验性更强的去中心化借贷形式,让你在没有抵押物或未提供任何个人信息的情况下借贷。 - -目前,非技术人员还不能广泛使用它们,但它们暗示了将来每个人都可以使用。 - -它的工作原理是,在一次交易中放贷和还款。 如果无法偿还,资金将返还给贷款方,就像什么都没有发生过一样。 - -经常使用的资金放入流动资金池(用于借贷的大资金池)。 如果资金在给定时刻没有使用,这就创造了一个机会,有人可以借用这些资金用于开展业务,并几乎在借入资金的同时全额偿还。 - -这意味着必须在专门编写的交易中包含大量逻辑。 举一个简单的例子,有人可以使用闪电贷按特定价格借入尽可能多的资产,以便在价格更高的其他交易所出售资产。 - -所以在这笔交易中,情况如下: - -- 以 $1.00 的价格从 A 交易所中借入 X 数量的 $asset -- 在 B 交易所按 $1.10 的价格出售 X 数量的 $asset -- 在 A 交易所偿还贷款 -- 赚到扣除交易费后的收益 - -如果交易所 B 的供应突然下降,而用户无法购买足够的资金来支付原始贷款,交易就会失败。 - -要想在传统金融世界实现上述操作,你需要大量的资金。 这些赚钱的策略仅供已经拥有财富的人士使用。 闪电贷款是一个未来的例子,在这里,拥有金钱不一定是赚钱的先决条件。 - -[关于闪电贷的更多信息](https://aave.com/flash-loans/) - - - -### 开始使用加密货币存款 {#saving} - -#### 借款 {#lending} - -你可以通过借出加密货币来赚取利息,并看到资金的实时增长。 现在的利率比当地银行可能高出许多(如果有幸能够使用当地的银行系统)。 下面是一个示例: - -- 你借出 100 Dai [稳定币](/stablecoins/),借给类似 Aave 的产品。 -- 你会收到 100 个 Aave Dai (aDai),代表你已借出的 Dai。 -- 你的 aDai 将根据利率增加,你可以看到钱包里的余额在增长。 根据 APR,你的钱包余额在几天甚至几小时后会显示为 100.1234 这样的数字。 -- 你可以随时提取与 aDai 余额等额的普通 Dai。 - - - 查看借款 dapp - - -#### 无损彩票 {#no-loss-lotteries} - -像 PoolTogether 这样的无损彩票是一种有趣而创新的省钱方法。 - -- 你使用 100 Dai 购买了 100 张彩票。 -- 你将收到 100 个 plDai,代表你的 100 张彩票。 -- 如果你有一张彩票中奖,你的 plDai 余额将按奖池金额增加。 -- 如果未中奖,你的 100 plDai 就会滚到进入下周的抽奖。 -- 你可以随时提取与你的 plDai 余额相等的普通 Dai。 - -奖池由所有借出彩票存款产生的利息汇聚而成,类似上面的借贷案例。 - - - 尝试 PoolTogether - - - - -### 兑换代币 {#swaps} - -以太坊上有数千种代币。 去中心化交易所可让你随时交易不同的代币。 你的资产永远由你掌控。 这就像前往其他国家时要兑换货币。 但去中心化金融版本从来不关闭。 市场全年全天候开放,技术支持可保证始终有人接受交易。 - -例如,如果你想使用无损彩票 PoolTogether(如上所述),则需要类似 Dai 或 USDC 的代币。 DEX 允许你将以太币换成这些代币,并在完成交易后再换回来。 - - - 查看代币兑换 - - - - -### 高级交易 {#trading} - -对于喜欢加强控制的交易者来说,还有更多高级选项。 限价单、永续合约、保证金交易等都可实现。 通过去中心化交易,你可以获得全球流动性,市场永远不会关闭,而且你始终控制着自己的资产。 - -使用中心化交易所时,你必须在交易前存入资产,并相信交易所会妥善处理这些资产。 当你存入资产时,它们会面临风险,因为中心化交易所对黑客来说是诱人目标。 - - - 查看更多交易 dapp - - - - -### 扩充你的投资组合 {#investing} - -以太坊上有一些基金管理产品,它们会尝试根据你选择的策略为你的投资组合增值。 自动完成而且对每个人都开放,没有管理人员从利润中抽成。 - -一个很好的示例是[去中心化金融指数基金](https://defipulse.com/blog/defi-pulse-index/)。 这是一支自动再平衡基金,可确保你的投资组合总是包含[市值最高的去中心化金融代币](https://www.coingecko.com/en/defi)。 你无需管理任何细节,并且可以随时从基金中提款。 - - - 查看投资去中心化应用程序 - - - - -### 为你的想法提供资金 {#crowdfunding} - -以太坊是一个理想的众筹平台: - -- 潜在的资助者可以来自任何地方 - 以太坊及其代币向世界上任何地方的任何人开放。 -- 公开透明,募捐者可以证明已经筹集了多少资金。 你甚至可以在以后的工作中追踪资金的使用情况。 -- 募捐者可以设置自动退款,例如,如果有未达到特定的最后期限和最低金额,就可以自动退款。 - - - 查看更多众筹去中心化应用程序 - - -#### 二次方融资 {#quadratic-funding} - -以太坊是开源软件,到目前为止,很多工作都由社区资助。 这催生了一种有趣的新型募资模式:二次方融资。 这有可能改进我们在未来为各种公共产品募资的方式。 - -二次方募资确保获得最多资金的项目是那些具有最独特需求的项目。 换句话说,就是那些能够改善大多数人生活的项目。 其运作方式如下: - -1. 有一个相应的捐助资金库。 -2. 开始一轮公共融资。 -3. 人们可以通过捐资来表明对一个项目的需求。 -4. 一旦这轮结束,匹配池的资金就会分配给项目。 那些需求最独特的项目会从匹配池中获得最高金额。 - -这意味着获得 100 笔 1 美元捐款的项目 A 最终可能比获得 1 笔 1 万美元捐款的项目 B 获得更多资金(取决于匹配池的大小)。 - -[关于二次方融资的更多信息](https://wtfisqf.com) - - - -### 保险 {#insurance} - -去中心化保险旨在使保险更便宜、支付速度更快且更加透明。 随着自动化程度的提高,保险的价格更加低廉,赔付的速度也快了很多。 用来决定你的索赔的数据完全透明。 - -就像任何软件一样,以太坊产品也可能出现漏洞。 因此,目前该领域中的许多保险产品都致力于保护用户免受资金损失。 然而,一些项目开始构建全面覆盖我们生活中可能出现的各种情况的保险方案。 Etherisc 的作物保护就是一个很好的例子,其目的是[保护肯尼亚的小农户对抗干旱和洪水侵袭](https://blog.etherisc.com/etherisc-teams-up-with-chainlink-to-deliver-crop-insurance-in-kenya-137e433c29dc)。 去中心化保险可以为那些经常被传统保险拒之门外的农民提供更便宜的保险。 - - - 查看保险去中心化应用程序 - - - - -### 聚集者和投资组合管理 {#aggregators} - -拥有了这么多种服务,你需要一种方法来跟踪跟踪所有投资、贷款和交易。 有许多产品可以让你集中协调所有去中心化金融活动。 这就是去中心化金融开放架构的魅力所在。 团队可以创建界面,你不仅可以看到各个产品中的余额,也可以使用其功能。 当你探索更多的去中心化金融时,可能会发现这个很有用。 - - - 查看投资组合去中心化应用程序 - - - - -## 去中心化金融如何运作? {#how-defi-works} - -去中心化金融使用加密货币和智能合约提供服务,无需中介。 在现代金融体系下,金融机构充当交易的担保人。 因为你的资产通过这些机构流通,从而为这些机构赋予了巨大的权力。 世界上还有数十亿人甚至无法使用银行帐户。 - -在去中心化金融,智能合约取代了交易中的金融机构。 智能合约是一种以太坊帐户,可以持有资金,并可以根据某些条件发送/退还资金。 智能合约上线时,没有人可以改变其有效期,它会始终按程序运行。 - -一份旨在发放补贴或零用钱的合同可以被编程为:每周五从 A 帐户向 B 帐户汇款。 只有帐户 A 拥有所需资金,它才会这样做。 没有人可以改变智能合约并将帐户 C 添加为收款人以窃取资金。 - -合约也是公开的,任何人都可以检查和审核。 这意味着不良合约往往会很快受到社会监督。 - -这确实意味着,目前需要信任以太坊社区中能够读取代码的技术员。 基于开源的社区有助于控制开发者,但是随着时间的推移,这种需求将逐渐减少,因为智能合约变得更易于阅读。并且开发了其他方法来证明代码的可信赖性。 - -## 以太坊与去中心化金融 {#ethereum-and-defi} - -以太坊为去中心化金融提供了良好基础,原因如下: - -- 没有人拥有以太坊或部署在以太坊上的智能合约 - 这让每个人都有机会使用去中心化金融。 这也意味着任何人都不能改变规则。 -- 去中心化金融产品都使用相同的语言:以太坊。 这意味着许多产品能够无缝合作。 你可以在一个平台上借出代币,并通过完全不同的应用程序在不同的市场上交换带利息的代币。 这就像能够在银行兑现忠诚度积分。 -- 代币和加密货币内置在以太坊这个共享账本上的 - 记录交易和所有权是以太坊的事情。 -- 以太坊可实现完全财务自由 - 大多数产品永远不会保管你的资金,让你掌控一切。 - -你可以把去中心化金融看成分层结构: - -1. 区块链 - 以太坊包含交易历史和帐户状态。 -2. 资产 - [以太币](/eth/)和其他代币。 -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} - -- [去中心化金融 (DeFi) 初学者指南](https://blog.coinbase.com/a-beginners-guide-to-decentralized-finance-defi-574c68ff43c4) – _Sid Coelho-Prabhu,2020 年 1 月 6 日_ - -### 视频 {#videos} - -- [Finematics - 去中心化金融教育](https://finematics.com/) - _关于去中心化金融的视频_ -- [The Defiant](https://www.youtube.com/playlist?list=PLaDcID4s1KronHMKojfjwiHL0DdQEPDcq) - _去中心化金融基础:在这个偶尔令人困惑的空间里,你开始需要了解的一切。_ -- [Whiteboard Crypto](https://youtu.be/17QRFlml4pA) _ - 什么是去中心化金融?_ - -### 社区 {#communities} - -- [去中心化金融 Llama Discord 服务器](https://discord.gg/buPFYXzDDd) -- [去中心化金融 Pulse Discord 服务器](https://discord.gg/Gx4TCTk) diff --git a/src/content/translations/zh/desci/index.md b/src/content/translations/zh/desci/index.md deleted file mode 100644 index 9cfa695fece..00000000000 --- a/src/content/translations/zh/desci/index.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: 去中心化科学 (DeSci) -description: 以太坊去中心化科学概览 -lang: zh -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} - -科学出版是一个比较出名的问题,它由出版社进行管理,依靠科学家、评审人和编辑者这些免费劳动力来产生论文,然后收取高额的出版费。 普通大众通常已经通过税收间接支付了工作成果和出版费用,但仍需要再次向出版商付费来获取同一个工作成果。 发表个人科学论文的总费用通常是五位数 ($USD),这违背了科学知识作为[公共利益](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 有可能打破这一不合理的资金模式。 [可溯源的公益资助](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)是一些可以彻底改变科学资助的 Web3 工具。 - -### 知识产权所有权和发展 {#ip-ownership} - -知识产权 (IP) 是传统科学中的一个大问题:从被卡在大学里或未能在生物技术领域使用,到众所周知的难以估值。 然而,Web3 利用[非同质化代币 (NFT)](/nft/) 将数字资产(例如科学数据或文章)的所有权做得特别好。 - -就像非同质化代币可以将未来交易的受益转回给原创作者一样,你可以建立透明的价值归属链,以此奖励研究人员、管理机构(比如去中心化自治组织),甚至是数据收集对象。 - -[IP-NFT](https://medium.com/molecule-blog/ip-nfts-for-researchers-a-new-biomedical-funding-paradigm-91312d8d92e6) 就像一把钥匙,可以打开进行中的研究实验的去中心化数据存储库,还可以插入了同质化代币和[去中心化金融](/defi/)这些金融领域(从分片化到借贷池和价值评估)。 它也允许一些原生链上实体直接在链上进行研究,比如[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 中可以创造公共利益,无需访问权限和费用。 Web3 的公共数据解决方案,比如星际文件系统、Arweave 和菲乐币,也专门为去中心化做了优化。 例如 dClimate,让所有人获取气候和天气数据,包括来自气象站和气候预测模型的数据。 - -## 参与其中 {#get-involved} - -探索项目并加入去中心化科学社区。 - -- [DeSci.Global:全球事件和会议日历](https://desci.global) -- [科学电报区块链](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 应用程序接口:查询由去中心化社区收集的气候数据](https://api.dclimate.net/) -- [去中心化科学基金:去中心化出版工具构建者](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/) -- [DeSci Labs](https://www.desci.com/) - -我们欢迎提出新项目加入到列表中 - 开始前,请查看我们的[上架政策](/contributing/adding-desci-projects/)! - -## 延伸阅读 {#further-reading} - -- [DeSci Wiki 由 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 的生物制药知识产权-非同质化代币 - 技术描述](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 - 去中心化科学:去中心化科学的未来(播客)](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/developers/docs/mev/index.md b/src/content/translations/zh/developers/docs/mev/index.md deleted file mode 100644 index f3b266de51b..00000000000 --- a/src/content/translations/zh/developers/docs/mev/index.md +++ /dev/null @@ -1,221 +0,0 @@ ---- -title: 最大可提取价值 (MEV) -description: 最大可提取价值 (MEV) 简介 -lang: zh ---- - -最大可提取价值 (MEV) 是指通过在区块中添加和排除交易并更改区块中的交易顺序,可以从区块生产中提取的超过标准区块奖励和燃料费用的最大值。 - -### 矿工可提取价值 {#miner-extractable-value} - -最大可提取价值首先应用于[工作量证明](/developers/docs/consensus-mechanisms/pow/)背景下,最初称为“矿工可提取价值”。 这是因为在工作量证明中,矿工掌握了交易的包含、排除和顺序。 然而,自从通过[合并](/roadmap/merge/)过渡到权益证明以来,验证者一直负责这些角色,并且挖矿不再是以太坊协议的一部分。 但是,价值提取方法仍然存在,因此现在使用的是术语“最大可提取价值”。 - -## 前提条件 {#prerequisites} - -确保你已熟悉[交易](/developers/docs/transactions/)、[区块](/developers/docs/blocks/)、[权益证明](/developers/docs/consensus-mechanisms/pos)和[燃料](/developers/docs/gas/)。 熟悉 [dapps](/dapps/) 和 [DeFi](/defi/) 也很有帮助。 - -## MEV 提取 {#mev-extraction} - -从理论上讲,最大可提取价值完全属于验证者,因为他们是唯一可以保证执行有利可图的最大可提取价值机会的一方。 但实际上,大部分 MEV 是由称为“搜索人”的独立网络参与者提取的。 搜索人在区块链数据上运行复杂的算法来检测盈利的 MEV 机会,并且有机器人自动将这些盈利交易提交到网络。 - -无论如何,验证者确实会获得全部最大可提取价值金额的一部分,因为搜索者愿意支付高昂的燃料费用(这些费用将归验证者所有),以换取将其有利可图的交易纳入一个区块的更高可能性。 假定搜索人在经济上是合理的。搜索人愿意支付的燃料费将是 MEV 的 100% 的金额(因为如果燃料费更高,搜索人将亏钱)。 - -这样一来,对于一些竞争激烈的最大可提取价值机会,例如[去中心化交易所套利](#mev-examples-dex-arbitrage),搜索者可能不得不将其最大可提取价值总收入的 90% 甚至更多作为燃料费用支付向验证者,因为很多人都想进行同样有利可图的套利交易。 这是因为,确保套利交易运行的唯一方法是提交最高 gas 费用的交易。 - -### 燃料高尔夫 {#mev-extraction-gas-golfing} - -这种动态使得“燃料高尔夫”——编程交易——能够使用最少数量的燃料——这成为一种竞争优势。因为它允许搜索人设置较高的燃料价格,同时保持总燃料费不变(因为使用燃料费 = 燃料价格\* 燃料用量)。 - -一些著名的燃料高尔夫技术包括:使用用长串零开头的地址(如:[0x0000000000C521824EaFf97Eac7B73B084ef9306](https://etherscan.io/address/0x0000000000c521824eaff97eac7b73b084ef9306)),因为他们的需要的存储空间较少(因而燃料也减少);并留下很小 [ERC-20](/developers/docs/standards/tokens/erc-20/) 令牌余额在合约中,因为相比于更新储存插槽,初始化存储插槽需要更多的燃料(余额为 0 时)。 寻找如何更多的减少 gas 使用是搜索人在积极研究的一个领域。 - -### 通用领跑者 {#mev-extraction-generalized-frontrunners} - -一些搜索人并没有编写复杂的算法来检测盈利的 MEV 机会,而是运行通用的领跑者。 通用的领跑者是监控内存池以检测盈利交易的机器人。 领跑者将复制潜在的盈利交易代码,用领跑者的地址替换其地址。然后在本地执行交易,重复检查修改后的交易是否给领跑者地址带来利润。 如果交易确实有利可图,领跑者将以更替地址和更高的燃料价格提交修改后的交易。“领跑”原始交易并获取原始搜索人的 MEV。 - -### Flashbots {#mev-extraction-flashbots} - -Flashbots 是一个独立项目,它通过一项服务扩展执行客户端,该服务允许搜索者将最大可提取价值交易提交给验证者,而无需将它们透露给公共内存池。 这就防止了交易被通用领跑者领跑。 - -## MEV 相关案例 {#mev-examples} - -最大可提取价值以几种方式出现在区块链上。 - -### 去中心化交易所 (DEX) 套利 {#mev-examples-dex-arbitrage} - -[去中心化交易所](/glossary/#dex) (DEX) 套利是最简单和最著名的最大可提取价值机会。 因此,它也是竞争最激烈的。 - -它的作用原理就像这样:如果有两个去中心化交易所以两种不同的价格提供一种代币,有人可以通过一笔原子交易,在价格较低的去中心化交易所购买此代币,并在价格较高的去中心化交易所将其出售。 得益于区块链的机制,这是真实的无风险套利。 - -[这是一个有利可图的套利交易示例](https://etherscan.io/tx/0x5e1657ef0e9be9bc72efefe59a2528d0d730d478cfc9e6cdd09af9f997bb3ef4),在此交易中,一名搜索者利用以太币/DAI 对在 Uniswap 和 Sushiswap 的不同价格,将 1, 000 个以太币变成了 1,045 个以太币。 - -### 清算 {#mev-examples-liquidations} - -借贷协议清算提供了另一个众所周知的最大可提取价值机会。 - -Maker 和 Aave 等借贷协议要求用户存入一些抵押品(例如以太币)。 然后将这些存入的抵押品借出给其他用户。 - -然后,用户可以根据他们的需要从其他人那里借入资产和代币(例如,如果你想在 MakerDAO 治理提案中投票,你可以借用 MKR),最高可达他们所存抵押品的一定比例。 例如,如果借款金额不超过 30%,则将 100 DAI 存入协议的用户最多可以借入价值 30 DAI 的另一种资产。 该协议确定了确切的借款能力百分比。 - -随着借款人抵押品价值的波动,他们的借款能力也会波动。 如果由于市场波动,借入资产的价值超过其抵押品价值的 30%(同样,准确的百分比由协议确定,协议通常允许任何人清算抵押品,立即偿还贷款人(这类似于传统金融中的 [追加保证金通知](https://www.investopedia.com/terms/m/margincall.asp))。 如果清算,借款人通常必须支付大笔清算费,其中有些是流向变现人的——这是多 MEV 机会出现的地方。 - -搜索人竞相以最快的速度解析区块链数据,以确定哪些借款人可以被清算,并成为第一个提交清算交易并自行收取清算费的人。 - -### 夹心交易 {#mev-examples-sandwich-trading} - -夹心交易是另外一种 MEV 提取的常用方法。 - -为了实现夹心交易,搜索人会监视内存池内 DEX 的大额交易。 例如,有人想要在 Uniswap 上使用 DAI 购买 10,000 UNI。 这类大额交易会对 UNI/DAI 对产生重大的影响,可能会显着提高 UNI 相对于 DAI 的价格。 - -搜索人可以计算该大额交易对 UNI/DAI 对的大致价格影响,并在大额交易*之前*立即执行最优买单,低价买入 UNI,然后在大额交易*之后*立即执行卖单,以大额订单造成的更高价格卖出。 - -然而,夹心交易风险很高,因为它不是原子交易(不像上文所述的 DEX 套利),而且容易受到 [salmonella 攻击](https://github.com/Defi-Cartel/salmonella)。 - -### NFT MEV {#mev-examples-nfts} - -NFT 领域的 MEV 是一种新兴现象,而且不一定能赚钱。 - -然而,由于 NFT 交易发生在所有其他以太坊交易共享的同一个区块链上,搜寻者也可以在 NFT 市场上使用与传统 MEV 机会类似的技术。 - -例如,如果有一个流行的 NFT 下降,并且搜索者想要某个 NFT 或一组 NFT,他们可以写一个交易,使他们成为第一个排队购买 NFT 的人,或者他们可以在一个交易中购买整个 NFT 组合。 或者,如果一个 NFT 被[错误地以低价挂出](https://www.theblockcrypto.com/post/113546/mistake-sees-69000-cryptopunk-sold-for-less-than-a-cent),搜寻者就可以抢在其他购买者前面,低价抢购。 - -NFT MEV 的一个显著例子发生在一个搜寻者花费 700 万美元来[购买](https://etherscan.io/address/0x650dCdEB6ecF05aE3CAF30A70966E2F395d5E9E5)价格底线的每一个 Cryptopunk。 一位区块链研究员[在 Twitter](https://twitter.com/IvanBogatyy/status/1422232184493121538)上解释了买家是如何与 MEV 供应商合作以保持其购买的秘密。 - -### 长尾 {#mev-examples-long-tail} - -DEX 套利、清算和三明治交易都是非常知名的 MEV 机会,对于新的搜寻者来说不太可能获利。 然而,还有一长串鲜为人知的 MEV 机会(NFT MEV 可以说是这样一个机会)。 - -刚刚起步的搜索者可能会通过在这个长尾搜索 MEV 而找到更多的成功。 Flashbots 的[MEV 招聘板](https://github.com/flashbots/mev-job-board)列出了一些新兴的机会。 - -## MEV 的影响 {#effects-of-mev} - -MEV 并不都是坏事 - 以太坊的 MEV 既有积极的作用,也有消极的影响。 - -### 优点 {#effects-of-mev-the-good} - -许多 DeFi 项目依靠经济上的理性行为者,来确保其协议的有用性和稳定性。 例如,DEX 套利确保用户为他们的代币获得最好、最正确的价格,而借贷协议在借款人低于抵押率时依靠快速清算来确保贷款人得到回报。 - -如果没有理性的搜索者寻求和修复经济上的低效率,并利用协议的经济激励,DeFi 协议和一般的 dapps 可能不会像今天这样强大。 - -### 缺点 {#effects-of-mev-the-bad} - -在应用层,某些形式的 MEV,如夹心交易,会导致用户的体验明显变差。 被夹在中间的用户面临更高的滑点和更差的交易执行。 - -在网络层,一般的抢跑者和他们经常参与的矿工费拍卖(当两个或更多的先行者通过逐步提高自己交易的矿工费,从而使他们的交易被打包到下一个区块),导致网络拥堵和试图运行正常交易的其他人的高矿工费。 - -除了区块*内*发生的,MEV 也可能会在区块*间*产生有害的影响。 如果区块中可用的最大可提取价值大幅超过标准区块奖励,验证者可能会被激励重组区块并为自己捕获最大可提取价值,从而导致区块链重组和共识不稳定。 - -这种区块链重新组织的可能性已经[在以前的比特币区块链上探索过](https://dl.acm.org/doi/10.1145/2976749.2978408)。 随着比特币的区块奖励减半,交易费用占区块奖励的比例越来越大,于是出现了这样的情况:矿工放弃下一个区块的奖励,而用更高的费用重新开采过去的区块,这在经济上变得很合理。 随着 MEV 的发展,以太坊也可能出现同样的情况,威胁到区块链的完整性。 - -## MEV 的状况 {#state-of-mev} - -2021 年初,MEV 开采量剧增,导致今年前几个月的矿工费价格极高。 Flashbots 的 MEV 中继的出现,降低了普通抢跑者的效力,并将矿工费价格拍卖带出链外,降低了普通用户的矿工费。 - -虽然许多搜索者仍然从最大可提取价值赚到了很多钱,但随着机会变得越来越广为人知,越来越多的搜索者争夺相同的机会,验证者将获得越来越多的最大可提取价值总收入(因为如最初描述的相同类型的燃料拍卖也在 Flashbots 中发生,尽管是私下进行的,验证者将获得由此产生的燃料收入)。 MEV 也不是以太坊独有的,随着以太坊上的机会变得越来越有竞争力,搜索者正在转移到其他区块链,如 Binance Smart Chain,那里存在与以太坊上类似的 MEV 机会,但竞争更少。 - -另一方面,从工作量证明到权益证明的过渡以及当前利用卷叠和分片持续进行以太坊扩容的努力,都在给最大可提取价值的竞争格局带来目前尚不明朗的改变。 与工作量证明中的概率模型相比,预先知道有保证的区块提议者会如何改变最大可提取价值提取的发展变化,以及当[单一秘密领导人选举](https://ethresear.ch/t/secret-non-single-leader-election/11789)和[分布式验证者技术](https://github.com/ethereum/distributed-validator-specs)得到实现后会如何颠覆当前格局,目前尚未可知。 同样,当大多数用户活动迁离以太坊并转移至其二层网络卷叠和分片时,存在哪些最大可提取价值机会还有待观察。 - -## 以太坊权益证明 (PoS) 机制下的最大可提取价值 {#mev-in-ethereum-proof-of-stake} - -如上所述,最大可提取价值对用户综合体验和共识层安全性产生了不利影响。 但以太坊向权益证明共识的过渡(称为“合并”)还可能带来与最大可提取价值有关的新风险: - -### 验证者中心化 {#validator-centralization} - -在合并后的以太坊中,验证者(已经存入 32 个以太币作为保证金)就添加到信标链的区块的有效性达成共识。 由于 32 个以太币可能超出了许多人的能力范围,[加入质押池](/staking/pools/)也许是一种更可行的选择。 然而,[单独质押人](/staking/solo/)合理分布才是一种理想状态,因为它削弱了验证者的中心化并且提升了以太坊的安全性。 - -不过,最大可提取价值提取被认为能够加速验证者中心化。 部分原因是,由于验证者[在提出区块时收益要低于](/roadmap/merge/issuance/#how-the-merge-impacts-ETH-supply)当前矿工提出区块的收益,合并后最大可提取价值提取可能会显著[影响验证者的收益](https://github.com/flashbots/eth2-research/blob/main/notebooks/mev-in-eth2/eth2-mev-calc.ipynb)。 - -更大的质押池可能会有更多的资源投资进行必要的优化,以抓住最大可提取价值机会。 这些质押池提取的最大可提取价值越多,它们用来提升最大可提取价值提取能力(并增加总收入)的资源就越多,这在本质上形成了[规模经济](https://www.investopedia.com/terms/e/economiesofscale.asp#)。 - -由于可支配的资源较少,单独质押人可能无法从最大可提取价值机会中获利。 这种情况可能会增加独立验证者加入强大的质押池以提高收益的压力,从而削弱以太坊的去中心化。 - -### 许可内存池 {#permissioned-mempools} - -为了应对三明治攻击和抢先交易攻击,交易者可能会开始与验证者进行链下交易以确保交易隐私。 交易者将潜在的最大可提取价值交易直接发送给验证者而非公共内存池,验证者将交易添加到区块中并与交易者分配利润。 - -“暗池”扩展了这种模式,是一种只供访问的许可内存池,对愿意支付一定费用的用户开放。 这一趋势将弱化以太坊的无许可和免信任特性,并有可能将区块链转变成一种有利于最高出价者的“付费参与”机制。 - -许可内存池还会增加上一节中描述的中心化风险。 运行多个验证者的大型池可能会受益于为交易者和用户提供交易隐私,增加其最大可提取价值收入。 - -在合并后的以太坊中解决这些与最大可提取价值相关的问题是一个核心研究领域。 迄今为止,为了减少最大可提取价值对合并后以太坊去中心化和安全性的负面影响,提出了两种解决方案:**提议者-构建者分离 (PBS)** 和**构建者应用程序接口**。 - -### 提议者-构建者分离 {#proposer-builder-separation} - -在工作量证明和权益证明机制中,构建区块的节点面向参与共识的其他节点提出区块以将其添加到链中。 新区块在另一位矿工在其上构建区块(在工作量证明中)或从大多数验证者那里获得认证(在权益证明中)后,成为规范链的一部分。 - -区块生产者和区块提议者角色的合并造成了大多数前面描述的与最大可提取价值相关的问题。 例如,在时间盗贼攻击中,共识节点受到激励引发区块链重组,以最大限度增加最大可提取价值收入。 - -[提议者-构建者分离](https://ethresear.ch/t/proposer-block-builder-separation-friendly-fee-market-designs/9725) (PBS) 旨在减轻最大可提取价值的影响,尤其是对共识层的影响。 提议者-构建者分离的主要特点是区块生产者和区块提议者规则的分离。 验证者仍然负责提出区块并投票,但有一类新的特别实体(称为**区块构建者**),其任务是对交易排序和构建区块。 - -在提议者-构建者分离解决方案下,区块构建者创建一个交易包并出价将其包含在信标链区块中(作为“执行有效负载”)。 选中提出下一个区块的验证者随后查看不同的出价,并选择费用最高的交易包。 提议者-构建者分离实际上创建了一个拍卖市场,让构建者和出售区块空间的验证者谈判。 - -当前,提议者-构建者分离设计采用一种[提交-披露方案](https://gitcoin.co/blog/commit-reveal-scheme-on-ethereum/),即构建者仅发布对区块内容(区块头)的加密承诺及他们的出价。 在接受成交出价后,提议者创建一个包括区块头的签名区块提案。 区块构建者在看到签名区块提案后可能会发布整个区块体,并且它必须还要从验证者那里获得足够多的[认证](/glossary/#attestation)后才能最终确定区块。 - -#### 提议者-构建者分离如何减弱最大可提取价值的影响? {#how-does-pbs-curb-mev-impact} - -协议内的提议者-构建者分离将最大可提取价值提取从验证者权限范围内移除,降低了最大可提取价值对共识的影响。 相反,运行专用硬件的区块构建者将抓住出现的最大可提取价值机会。 - -不过,这并没有完全杜绝验证者与最大可提取价值有关的收入,因为构建者必须出高价才能让验证者接受他们的区块。 然而,由于验证者不再直接关注如何尽可能提高最大可提取价值收入,时间盗贼攻击的威胁降低了。 - -提议者-构建者分离也降低了最大可提取价值中心化的风险。 例如,使用提交-披露方案,构建者就无需信任验证者不会窃取最大可提取价值机会或将其暴露给其他构建者。 这就降低了单独质押人从最大可提取价值获益的门槛,否则,构建者将倾向于支持有着链下声誉的大型池并与它们进行链下交易。 - -同样,验证者不必信任构建者不会隐藏区块体或者发布无效区块,因为付款是无条件的。 即使提出的区块不可用或被其他验证者宣称无效,验证者的费用依然会支付。 在后一种情况下,区块被直接丢弃,迫使区块构建者失去所有交易费和最大可提取价值收入。 - -### 构建者应用程序接口 {#builder-api} - -虽然提议者-构建者分离有望减弱最大可提取价值提取的影响,但实现它需要对共识协议进行更改。 具体而言,需要更新信标链的[分叉选择](/developers/docs/consensus-mechanisms/pos/#fork-choice)规则。 [构建者应用程序接口](https://github.com/ethereum/builder-specs)是一种临时解决方案,旨在有效实现提议者-构建者分离,然而信任假设更高。 - -构建者应用程序接口是一种改良版的[引擎应用程序接口](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md),共识层客户端使用它向执行层客户端请求执行有效负载。 正如[诚实验证者规范](https://github.com/ethereum/consensus-specs/blob/dev/specs/bellatrix/validator.md)中所述,选中承担区块提出职责的验证者向连接的执行客户端请求交易包,并将交易包添加到提出的信标链区块中。 - -构建者应用程序接口还充当验证者和执行层客户端之间的中间件;不同之处是,它允许信标链上的验证者从外部实体获取区块(而不是使用执行客户端在本地构建区块)。 - -下面简述构建者应用程序接口如何运作: - -1. 构建者应用程序接口将验证者连接到由运行执行层客户端的区块构建者组成的网络。 与提议者-构建者分离一样,构建者专注于投资资源密集型区块构建活动,并利用不同的策略最大程度提高从最大可提取价值 + 优先费中赚取的收入。 - -2. 验证者(运行共识层客户端)向构建者网络请求执行有效负载及出价。 构建者的出价将包含执行有效负载标头(对有效负载内容的加密承诺)和向验证者支付的费用。 - -3. 验证者查看收到的出价并选择费用最高的执行有效负载。 使用构建者应用程序接口,验证者创建一个仅包括其签名和执行有效负载标头的“盲”信标区块提案并发送给构建者。 - -4. 在看到盲区块提案时,运行构建者应用程序接口的构建者可能会用完整的执行有效负载响应。 这样,验证者可以创建一个“已签名”信标区块并在整个网络中传播。 - -5. 如果区块构建者未能及时响应,使用构建者应用程序接口的验证者仍有可能在本地构建区块,这样他们就不会错过区块提出奖励。 然而,验证者不能使用当前披露的交易或另一个集合创建另一个区块,因为这相当于*模棱两可*(对同一时隙内的两个区块签名),这是一种可受到惩罚的恶行。 - -构建者应用程序接口的一个示例实现是 [MEV Boost](https://github.com/flashbots/mev-boost),它是对 [Flashbots 拍卖机制](https://docs.flashbots.net/Flashbots-auction/overview/)的改进,旨在抑制最大可提取价值在以太坊上的负面外部性。 Flashbots 拍卖允许工作量证明下的矿工将构建可获利区块的工作外包给专门的参与方,即**搜索者**。 - -搜索者寻找利润丰厚的最大可提取价值机会,并向矿工发送交易包以及[价格密封出价](https://en.wikipedia.org/wiki/First-price_sealed-bid_auction),以将交易包添加到区块中。 运行 mev-geth(go-ethereum (Geth) 客户端的分叉版本)的矿工只需要选择利润最高的交易包,并将其作为新区块的一部分开采。 为了避免矿工收到垃圾交易和无效交易,交易包先通过**中继者**验证然后在到达矿工处。 - -MEV Boost 运行机制与原来的 Flashbots 拍卖相同,但增加了一些针对以太坊向权益证明过渡的新功能。 搜索者仍然寻找有利润的交易以便添加到区块中,但一类新的名为**构建者**的专门参与方负责将交易聚合并打包到区块中。 构建者接受搜索者提供的价格密封出价,并进行优化以找到利润最大的排序。 - -中继者仍然负责验证交易包并将它们传送给提议者。 然而,MEV Boost 通过存储构建者发送的区块体和验证者发送的区块头,引入了负责提供[数据可用性](/developers/docs/data-availability/)的**托管**。 对于托管,连接到中继的验证者请求可用的执行有效负载,并使用 MEV Boost 的排序算法选择出价 + 最大可提取价值小费最高的有效负载标头。 - -#### 构建者应用程序接口如何减弱最大可提取价值的影响? {#how-does-builder-api-curb-mev-impact} - -构建者应用程序接口的核心优势在于,它有可能让参与者平等获得最大可提取价值机会。 使用提交-披露方案消除了信任假设,降低了寻求从最大可提取价值中获益的验证者的进入门槛。 这应该可以减轻单独质押人加入大型质押池以提高最大可提取价值利润的压力。 - -构建者应用程序接口的广泛实现将鼓励区块构建者之间进行更激烈的竞争,这会增强抗审查能力。 验证者审查多个构建者的出价时,有意审查一笔或多笔用户交易的构建者必须出价高于所有其他不审查的构建者才能成功。 这大大增加了审查用户的成本并对审查有所限制。 - -一些项目(如 MEV Boost)将构建者应用程序接口作为整体结构的一部分,旨在为某些参与方(例如试图避免抢先交易攻击或三明治攻击的交易者)提供交易隐私。 这是通过在用户和区块构建者之间提供一条私密通信通道来实现的。 与前面描述的许可内存池不同,这种方法是有益处的,原因如下: - -1. 市场上有多种构建者存在,使得审查变得不切实际,这是有利于用户的。 相比之下,基于信任的中心化暗池的存在将权力集中在少数区块构建者手中,增加了审查的可能性。 - -2. 构建者应用程序接口软件是开源的,允许任何人提供区块构建者服务。 这意味着用户不会被迫使用任何特定的区块构建者,并提高了以太坊的中立和无许可特性。 此外,寻求最大可提取价值的交易者不会由于使用私密交易渠道而无意中促进中心化。 - -## 相关资源 {#related-resources} - -- [Flashbots 文档](https://docs.flashbots.net/) -- [Flashbots GitHub](https://github.com/flashbots/pm) -- [MEV-Explore](https://explore.flashbots.net/) - _用于最大可提取价值交易的仪表板和实时交易浏览器_ -- [mevnot.org](https://www.mevboost.org/) - _可提供 MEV-Boost 中继和区块构建者实时统计数据的追踪器_ - -## 延伸阅读 {#further-reading} - -- [什么是 MEV?](https://blog.chain.link/what-is-miner-extractable-value-mev/) -- [MEV 和我](https://research.paradigm.xyz/MEV) -- [以太坊黑暗森林](https://www.paradigm.xyz/2020/08/ethereum-is-a-dark-forest/) -- [逃离黑暗森林](https://samczsun.com/escaping-the-dark-forest/) -- [Flashbos:在 MEV 危机中抢跑](https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752) -- [@bertcmiller's MEV 评论](https://twitter.com/bertcmiller/status/1402665992422047747) -- [MEV-Boost:直接适用于合并的 Flashbots 架构](https://ethresear.ch/t/mev-boost-merge-ready-flashbots-architecture/11177) -- [什么是 MEV Boost](https://www.alchemy.com/overviews/mev-boost) -- [为什么运行 mev-boost?](https://writings.flashbots.net/writings/why-run-mevboost/) -- [以太坊漫游指南](https://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum) diff --git a/src/content/translations/zh/developers/docs/networking-layer/index.md b/src/content/translations/zh/developers/docs/networking-layer/index.md deleted file mode 100644 index 4fbd93c2c97..00000000000 --- a/src/content/translations/zh/developers/docs/networking-layer/index.md +++ /dev/null @@ -1,155 +0,0 @@ ---- -title: 网络层 -description: 以太坊网络层简介。 -lang: zh -sidebarDepth: 2 ---- - -以太坊是一个由数千个节点组成的点对点网络,节点之间必须能够使用标准化协议相互通信。 “网络层”是使节点能够找到彼此并交换信息的协议栈。 可交换信息包括网络上的“广播”信息(一对多通信),以及特定节点之间的交换请求和答复(一对一通信)。 每个节点必须遵守特定的网络规则,以确保发送和接收正确的信息。 - -客户端软件由两部分组成(执行客户端和共识客户端),它们都具有各自的网络堆栈。 除了与其他以太坊节点进行通信外,执行客户端和共识客户端还必须互相通信。 本页介绍了用以实现这种通信的协议。 - -执行客户端通过执行层的点对点网络广播交易信息。 这需要经验证的对等点之间进行加密通信。 当一个验证者被选中来提议区块时,该节点本地交易池中的交易将会通过一个本地远程过程调用连接传递至共识客户端,然后再将其打包进信标区块。 之后,共识客户端将在它们的对等网络中广播信标区块。 广播过程需要两个独立的对等网络:一个连接执行客户端,负责交易的广播;另一个连接共识客户端,负责区块的广播。 - -## 前提条件 {#prerequisites} - -对以太坊[节点和客户端](/developers/docs/nodes-and-clients/)略有了解将有助于理解本文。 - -## 执行层 {#execution-layer} - -执行层的网络协议分为两个堆栈: - -- 发现堆栈:建立在用户数据报协议之上,并使新节点能够找到相应节点并连接 - -- DevP2P 堆栈:建立在传输控制协议之上,并使节点能够交换信息 - -这两个堆栈并行作用, 发现堆栈将新的网络参与者输送到网络中,DevP2P 则使它们进行交互。 - -### 发现 {#discovery} - -发现是在网络中寻找其他节点的过程。 该过程使用一小组引导节点(即地址[硬编码](https://github.com/ethereum/go-ethereum/blob/master/params/bootnodes.go)为客户端的节点,以便它们能被立即找到,并将客户端连接至对等点)进行引导。 这些引导节点旨在将新节点引入一组对等点,这是它们唯一的目的。它们不参与普通的客户端任务,例如同步链,仅在第一次使用客户端时使用。 - -节点与引导节点交互所使用的协议是 [Kademlia](https://medium.com/coinmonks/a-brief-overview-of-kademlia-and-its-use-in-various-decentralized-platforms-da08a7f72b8f) 的修改版,它使用[分布式散列表](https://en.wikipedia.org/wiki/Distributed_hash_table)共享节点列表。 每个节点都有一版此表格,其中包含连接到最近节点所需的信息。 这个“最近”不是指地理距离,而是由节点 ID 的相似性来界定的。 每个节点的表格都会定期刷新,作为一种安全特性。 例如,在 [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5) 中,发现协议节点也可以发送显示客户端支持的子协议的聚合发现服务,以便对等点协调通信所用的协议。 - -发现过程从 PING-PONG 游戏开始。 一个成功的 PING-PONG 将新节点“连接”到一个启动节点。 提醒引导节点有新节点进入网络的初始消息为 `PING`。 此 `PING` 包括关于新节点、引导节点和过期时间戳的哈希信息。 引导节点接收到 `PING` 返回 `PONG`,其中包含 `PING` 哈希值。 如果 `PING` 和 `PONG` 的哈希值相匹配,新节点和引导节点之间的连接就会得到验证,然后就认为它们已经“绑定”。 - -绑定之后,新节点即可向引导节点发送 `FIND-NEIGHBOURS` 请求。 引导节点返回的数据包含一个新节点可以连接的节点列表。 如果这两个节点没有绑定,`FIND-NEIGHBOURS` 请求将失败,新节点将无法进入网络。 - -新节点从引导节点收到邻居节点列表后,就会开始与每个邻居节点交换 PING-PONG。 成功的 PING-PONG 将新节点与邻居节点绑定在一起,以实现消息交换。 - -``` -启动客户端 --> 连接到 bootnode --> 绑定到 bootnode --> 寻找邻居--> 绑定到邻居。 -``` - -执行客户端目前使用 [Discv4](https://github.com/ethereum/devp2p/blob/master/discv4.md) 发现协议,并且正在积极迁移到 [Discv5](https://github.com/ethereum/devp2p/tree/master/discv5) 协议。 - -#### ENR:以太坊节点记录 {#enr} - -[以太坊节点记录 (ENR)](/developers/docs/networking-layer/network-addresses/) 是一个包含三个基本元素的对象:签名(根据某种商定的身份识别方案创建的记录内容的散列)、跟踪记录更改的序号和键:值对的任意列表。 这种格式不会过时,使新对等点之间身份识别信息的交换更加容易,并且是以太坊节点的首选[网络地址](/developers/docs/networking-layer/network-addresses)格式。 - -#### 发现为什么建立在 UDP 协议上? {#why-udp} - -UDP 协议不支持任何错误检查、重新发送失败的数据包,或者动态地打开和关闭连接;相反,它只是将连续的信息流发送至目标,无论它们是否被对方成功接收。 这种最简化的功能会产生最少的连接开销,从而使这种连接非常迅速。 对于发现而言,如果某个节点只想让其它节点知道它的存在以便它与某个对等点建立正式的连接,UDP 协议就已经足够了。 然而,对网络协议栈的其余部分来说,UDP 协议就不那么合适了。 节点之间的信息交流相当复杂,因此需要一个功能更完善的协议来支持重新发送、错误检查等。 TCP 协议带来更多功能所产生的额外连接开销是值得的。 因此,对等网络协议栈中的大多数协议在 TCP 协议之上运行。 - -### DevP2P {#devp2p} - -DevP2P 本身就是以太坊为建立和维护对等网络而实施的一整套协议。 新节点进入网络后,它们的交互由 [DevP2P](https://github.com/ethereum/devp2p) 堆栈中的协议管控。 这些操作均基于传输控制协议,包括 RLPx 传输协议、线路协议和若干子协议。 [RLPx](https://github.com/ethereum/devp2p/blob/master/rlpx.md) 是管理启动、验证和维护节点之间会话的协议。 使用 RLP(递归长前缀)的 RLPx 对消息进行编码。递归长度前缀是一种非常节省空间的编码方法,可将数据编码成最小结构,以便在节点之间发送。 - -两个节点之间的 RLPx 会话始于初始的加密握手。 这需要节点发送身份验证消息,然后等待对方进行验证。 成功验证后,对方会生成身份确认信息,并将信息返回初始节点。 这是一个密钥交换过程,使节点能够私下安全地进行沟通。 成功的加密握手会触发两个节点“在线”互相发送“hello”消息。 线路协议则通过成功地交换“hello”信息发起。 - -Hello 消息包含: - -- 协议版本 -- 客戶端 ID -- 端口 -- 节点 ID -- 支持的子协议列表 - -成功交互需要这些信息,因为它们定义节点之间共享的能力并配置通信。 另外还有个子协议协调过程,届时会将每个节点支持的子协议列表进行对比,并能将两个节点共用的子协议用于会话。 - -除了“hello”消息之外,线路协议还可以发送一个“disconnect”消息,以警告对等点连接将被断开。 线路协议还包含定期发送的 PING 和 PONG 消息,以使会话保持开放。 因此,RLPx 和线路协议之间信息交换为节点之间的通信奠定了基础,并为根据特定子协议交换有用的信息提供了平台。 - -### 子协议 {#sub-protocols} - -#### 线路协议 {#wire-protocol} - -连接对等点并启动 RLPx 会话后,线路协议定义了对等点间的通信方式。 起初,线路协议定义了三项主要任务:链同步、区块传播和交易交换。 但是当以太坊切换至权益证明之后,区块传播和链同步变为共识层的一部分。 交易交换仍由执行客户端负责。 交易交换所指的是节点之间互相交换待处理的交易,以便矿工能够选择其中一些交易放到下一区块中。 有关这些任务的详细信息可从[这里](https://github.com/ethereum/devp2p/blob/master/caps/eth.md)获取。 支持这些子协议的客户端通过 [JSON-RPC](/developers/docs/apis/json-rpc/) 将自己公开给网络中的其它部分。 - -#### les(以太坊轻客户端子协议) {#les} - -这是用于同步轻量级客户端的最小协议。 传统上很少使用这一协议,因为全部节点都要求在没有任何奖励的情况下向轻量级客户端提供数据。 执行客户端的默认行为不是通过以太坊轻客户端子协议为轻量级客户端数据提供服务。 更多信息请见以太坊轻客户端子协议[规范](https://github.com/ethereum/devp2p/blob/master/caps/les.md)。 - -#### 快照 {#snap} - -[快照协议](https://github.com/ethereum/devp2p/blob/master/caps/snap.md#ethereum-snapshot-protocol-snap)是一种可选扩展,该扩展使对等点能够交换最近状态的快照,从而无需下载默克尔前缀树的内部节点就能验证帐户信息和存储的数据。 - -#### Wit(见证协议) {#wit} - -[见证协议](https://github.com/ethereum/devp2p/blob/master/caps/wit.md#ethereum-witness-protocol-wit)也是一种可选扩展,可以使对等点交换彼此的状态见证,从而帮助客户端与链端同步。 - -#### 耳语 {#whisper} - -耳语协议旨在实现对等节点之间的安全消息传输,无需向区块链写入任何信息。 它曾是 DevP2P 线路协议的一部分,但现在已经弃用。 其他[相关项目](https://wakunetwork.com/)也存在类似目标。 - -## 共识层 {#consensus-layer} - -共识客户端参与具有不同规范的单独对等网络。 共识客户端需要参与区块广播,以便它们可以从对等点接收新区块,并在轮到它们成为区块提议者时进行广播。 与执行层类似,此过程首先需要一个发现协议,以便节点可以找到对等节点并建立安全会话,以交换区块、认证等。 - -### 发现 {#consensus-discovery} - -与执行客户端类似,共识客户端使用基于用户数据报协议的 [discv5](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-discovery-domain-discv5) 寻找对等点。 Discv5 的共识层实现与执行客户端的不同之处仅在于它包含一个将 discv5 连接到 [libP2P](https://libp2p.io/) 堆栈的适配器,而且弃用了 DevP2P。 执行层的 RLPx 会话已被弃用,取而代之的是 libP2P 的噪声安全信道握手。 - -### 以太坊节点记录 {#consensus-enr} - -共识节点的以太坊节点记录包括节点的公钥、IP 地址、用户数据报协议和传输控制协议端口,以及两个共识特定字段:证明子网位字段和 `eth2` 密钥。 前者使节点更容易找到参与特定证明广播子网络的对等点。 `eth2` 密钥包含有关节点正在使用的以太坊分叉的版本信息,以确保对等点连接到正确的以太坊。 - -### libP2P {#libp2p} - -LibP2P 堆栈支持发现后的所有通信。 根据其以太坊节点记录的定义,客户端可以在 IPv4 和/或 IPv6 上拨号和收听。 LibP2P 层上的协议可以细分为广播和请求-响应域。 - -### 广播 {#gossip} - -广播域包括必须在整个网络中快速传播的所有信息。 这包括信标块、证明、认证、退出和罚没。 这是使用 libP2P gossipsub v1 传输的,并且依赖于在每个节点本地存储的各种元数据,包括要接收和传输的广播有效载荷的上限。 有关广播域的详细信息可在[此处](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-gossip-domain-gossipsub)找到。 - -### 请求-响应 {#request-response} - -请求-响应域包含客户端从其对等点请求特定信息的协议。 示例包括请求匹配某些根哈希值或在一定时隙范围内的特定信标块。 响应总是以快速压缩的简单序列化编码字节的形式返回。 - -## 为什么共识客户端更偏好简单序列化而不是递归长度前缀? {#ssz-vs-rlp} - -SSZ 代表简单序列化。 它使用固定偏移量,可以轻松解码编码消息的各个部分,而无需解码整个结构,这对于共识客户端非常有用,因为它可以有效地从编码消息中获取特定信息。 它还专门设计用于与默克尔协议集成,并提升与默克尔化有关的效率。 由于共识层中的所有哈希值都是默克尔树根,因此这带来了显著的改进。 简单序列化还保证了值的唯一表示。 - -## 连接执行客户端和共识客户端 {#connecting-clients} - -共识客户端和执行客户端同时运行。 它们需要彼此连接,这样共识客户端才能向执行客户端提供指令,后者也才能向前者传送需要纳入信标区块的交易捆绑包。 两个客户端之间的通信可通过本地远程过程调用连接实现。 名为[“引擎-API”](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md)的应用程序接口定义两个客户端之间发送的指令。 由于两个客户端共用同一个网络身份,因此它们也共享同一个以太坊节点记录 (ENR),其中包含了每个客户端单独的密钥(eth1 密钥和 eth2 密钥)。 - -下面显示了控制流摘要,括号中是相关的网络堆栈。 - -##### 当共识客户端不是区块生产者时: - -- 共识客户端通过区块广播协议接收区块(共识对等网络) -- 共识客户端预先验证区块,即确保它来自具有正确元数据的有效发送人 -- 区块中的交易作为执行有效载荷发送到执行层(本地远程过程调用连接) -- 执行层执行交易并验证区块头中的状态(即检查哈希匹配度) -- 执行层将验证数据传回共识层,现认为区块已验证(本地远程过程调用连接) -- 共识层将区块添加到自己的区块链头并对其进行证明,通过网络广播认证(共识对等网络) - -##### 当共识客户端是区块生产者时: - -- 共识客户端收到通知,指出它将成为下一个区块的生产者(共识对等网络) -- 共识层在执行客户端调用 `create block` 方法(本地远程过程调用) -- 执行层访问由交易广播协议填充的交易内存池(执行对等网络) -- 执行客户端将交易打包为一个区块、执行交易并生成一个区块哈希 -- 共识客户端从执行客户端获取交易和区块哈希,并将它们加入信标区块(本地远程过程调用) -- 共识客户端通过区块广播协议广播区块(共识对等网络) -- 其他客户端通过区块广播协议接收提议的区块,并如上所述进行验证(共识对等网络) - -区块被足够多的验证者认证后,就会被添加到链头,经过合理化并最终确定。 - -![](cons_client_net_layer.png) ![](exe_client_net_layer.png) - -共识客户端和执行客户端的网络层示意图,取自 [ethresear.ch](https://ethresear.ch/t/eth1-eth2-client-relationship/7248) - -## 延伸阅读 {#further-reading} - -[DevP2P](https://github.com/ethereum/devp2p) [LibP2p](https://github.com/libp2p/specs) [共识层网络规范](https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#enr-structure) [kademlia 至 discv5](https://vac.dev/kademlia-to-discv5) [kademlia 论文](https://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf) [以太坊对等网络简介](https://p2p.paris/en/talks/intro-ethereum-networking/) [以太坊 1/以太坊 2 的关系](http://ethresear.ch/t/eth1-eth2-client-relationship/7248) [合并和以太坊 2 客户端详情视频](https://www.youtube.com/watch?v=zNIrIninMgg) diff --git a/src/content/translations/zh/developers/docs/smart-contracts/anatomy/index.md b/src/content/translations/zh/developers/docs/smart-contracts/anatomy/index.md deleted file mode 100644 index b5a67f90e33..00000000000 --- a/src/content/translations/zh/developers/docs/smart-contracts/anatomy/index.md +++ /dev/null @@ -1,655 +0,0 @@ ---- -title: 详解智能合约 -description: 深入解读智能合约:函数、数据和变量。 -lang: zh ---- - -智能合约是一种在以太坊某个地址上运行的程序。 它们是由数据和函数组成的,可以在收到交易时执行。 以下概述一个智能合约的组成。 - -### 前置要求 {#prerequisites} - -确保您已经先阅读了[智能合约](/developers/docs/smart-contracts/)。 本文档假设您已经熟悉某种编程语言,例如 JavaScript 或 Python。 - -## 数据 {#data} - -任何合约数据必须分配到一个位置:要么是`存储`,要么是`内存`。 在智能合约中修改存储消耗很大,因此您需要考虑数据在哪里存取。 - -### 存储 {#storage} - -持久性数据被称之为存储,由状态变量表示。 这些值被永久地存储在区块链上。 您需要声明一个类型,以便于合约在编译时可以跟踪它在区块链上需要多少存储。 - -```solidity -// Solidity example -contract SimpleStorage { - uint storedData; // State variable - // ... -} -``` - -```python -# Vyper example -storedData: int128 -``` - -如果用过面向对象编程语言,应该会熟悉大多数类型。 但如果是刚接触以太坊开发,则会发现 `address` 是一个新类型。 - -一个 `address` 类型可以容纳一个以太坊地址,相当于 20 个字节或 160 位。 它以十六进制的形式返回,前导是 0x。 - -其它类型包括: - -- 布尔 -- 整数(integer) -- 定点数(fixed point numbers) -- 固定大小的字节数组(fixed-size byte arrays) -- 动态大小的字节数组(dynamically-sized byte arrays) -- 有理数和整数常量(Rational and integer literals) -- 字符常量(String literals) -- 十六进制常量(Hexadecimal literals) -- 枚举(Enums) - -了解更多信息,请参阅文档: - -- [查看 Vyper 类型](https://vyper.readthedocs.io/en/v0.1.0-beta.6/types.html#value-types) -- [查看 Solidity 类型](https://solidity.readthedocs.io/en/latest/types.html#value-types) - -### 内存 {#memory} - -仅在合约函数执行期间存储的值被称为内存变量。 由于这些变量不是永久地存储在区块链上,所以它们的使用成本要低得多。 - -在 [Solidity 文档](https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html?highlight=memory#storage-memory-and-the-stack)中了解更多关于以太坊虚拟机如何存储数据(存储、内存和栈)。 - -### 环境变量 {#environment-variables} - -除了在自己合约上定义的变量之外,还有一些特殊的全局变量。 它们主要用于提供有关区块链或当前交易的信息。 - -示例: - -| **属性** | **状态变量** | **描述** | -| ----------------- | ------------ | ------------------------ | -| `block.timestamp` | uint256 | 当前区块的时间戳 | -| `msg.sender` | 地址 | 消息的发送者(当前调用) | - -## 函数 {#functions} - -用最简单的术语来说,函数可以获得信息或设置信息,以响应传入的交易。 - -有两种函数调用方式: - -- `internal` – 不会创建以太坊虚拟机调用 - - Internal 函数和状态变量只能在内部访问(只能在合约内部或者从其继承的合约内部访问)。 -- `external` – 会创建以太坊虚拟机调用 - - External 函数是合约接口的一部分,这意味着他可以被其它合约和交易调用。 一个 external 函数 `f` 不可以被内部调用(即 `f()` 不行,但 `this.f()` 可以)。 - -它们可以是 `public` 或 `private` - -- `public` 函数可以在合约内部调用或者通过消息在合约外部调用 -- `private` 函数仅在其被定义的合约内部可见,并且在该合约的派生合约中不可见。 - -函数和状态变量都可以被定义为 public 或 private - -下面是更新合约上一个状态变量的函数: - -```solidity -// Solidity example -function update_name(string value) public { - dapp_name = value; -} -``` - -- `string` 类型的参数 `value` 传入函数 `update_name` -- 函数声明为 `public`,意味着任何人都能访问它 -- 函数没有被声明为 `view`,因此它可以修改合约状态 - -### View 函数 {#view-functions} - -这些函数保证不会修改合约数据的状态。 常见的示例是 "getter" 函数 - 例如,它可以用于接收用户的余额。 - -```solidity -// Solidity 示例 -function balanceOf(address _owner) public view returns (uint256 _balance) { - return ownerPizzaCount[_owner]; -} -``` - -```python -dappName: public(string) - -@view -@public -def readName() -> string: - return dappName -``` - -这些操作被视为修改状态: - -1. 写入状态变量。 -2. [正在导出事件](https://solidity.readthedocs.io/en/v0.7.0/contracts.html#events)。 -3. [创建其它合约](https://solidity.readthedocs.io/en/v0.7.0/control-structures.html#creating-contracts)。 -4. 使用 `selfdestruct`。 -5. 通过调用发送 ether。 -6. 调用任何未标记为 `view` 或 `pure` 的函数。 -7. 使用底层调用。 -8. 使用包含某些操作码的内联程序组。 - -### 构造函数 {#constructor-functions} - -`constructor` 函数只在首次部署合约时执行一次。 与许多基于类的编程语言中的 `constructor` 函数类似,这些函数常将状态变量初始化到指定的值。 - -```solidity -// Solidity 示例 -// 初始化合约数据,设置 `owner`为合约的创建者。 -constructor() public { - // 所有智能合约依赖外部交易来触发其函数。 - // `msg` 是一个全局变量,包含了给定交易的相关数据, - // 例如发送者的地址和交易中包含的 ETH 数量。 - // 了解更多:https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties - owner = msg.sender; -} -``` - -```python -# Vyper 示例 - -@external -def __init__(_beneficiary: address, _bidding_time: uint256): - self.beneficiary = _beneficiary - self.auctionStart = block.timestamp - self.auctionEnd = self.auctionStart + _bidding_time -``` - -### 内置函数 {#built-in-functions} - -除了自己在合约中定义的变量和函数外,还有一些特殊的内置函数。 最明显的例子是: - -- `address.send()` – Solidity -- `send(address)` – Vyper - -这使合约可以发送以太币给其它帐户。 - -## 编写函数 {#writing-functions} - -您的函数需要: - -- 参数变量及其类型(如果它接受参数) -- 声明为 internal/external -- 声明为 pure/view/payable -- 返回类型(如果它返回值) - -```solidity -pragma solidity >=0.4.0 <=0.6.0; - -contract ExampleDapp { - string dapp_name; // state variable - - // Called when the contract is deployed and initializes the value - constructor() public { - dapp_name = "My Example dapp"; - } - - // Get Function - function read_name() public view returns(string) { - return dapp_name; - } - - // Set Function - function update_name(string value) public { - dapp_name = value; - } -} -``` - -一个完整的合约可能就是这样。 在这里,`constructor` 函数为 `dapp_name` 变量提供了初始化值。 - -## 事件和日志 {#events-and-logs} - -事件可以让您通过前端或其它订阅应用与您的智能合约通信。 当交易被挖矿执行时,智能合约可以触发事件并且将日志写入区块链,然后前端可以进行处理。 - -## 附带说明的例子 {#annotated-examples} - -这是一些用 Solidity 写的例子。 如果希望运行这些代码,您可以在 [Remix](http://remix.ethereum.org) 中调试。 - -### Hello world {#hello-world} - -```solidity -// Specifies the version of Solidity, using semantic versioning. -// 了解更多:https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#pragma -pragma solidity ^0.5.10; - -// 定义合约名称 `HelloWorld`。 -// 一个合约是函数和数据(其状态)的集合。 -// 一旦部署,合约就会留在以太坊区块链的一个特定地址上。 -// 了解更多: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html -contract HelloWorld { - - // 定义`string`类型变量 `message` - // 状态变量是其值永久存储在合约存储中的变量。 - // 关键字 `public` 使得可以从合约外部访问。 - // 并创建了一个其它合约或客户端可以调用访问该值的函数。 - string public message; - - // 类似于很多基于类的面向对象语言, - // 构造函数是仅在合约创建时执行的特殊函数。 - // 构造器用于初始化合约的数据。 - // 了解更多:https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constructors - constructor(string memory initMessage) public { - // 接受一个字符变量 `initMessage` - // 并为合约的存储变量`message` 赋值 - message = initMessage; - } - - // 一个 public 函数接受字符参数并更新存储变量 `message` - function update(string memory newMessage) public { - message = newMessage; - } -} -``` - -### 代币(Token) {#token} - -```solidity -pragma solidity ^0.5.10; - -contract Token { - // 一个 `address` 类比于邮件地址 - 它用来识别以太坊的一个帐户。 - // 地址可以代表一个智能合约或一个外部(用户)帐户。 - // 了解更多:https://solidity.readthedocs.io/en/v0.5.10/types.html#address - address public owner; - - // `mapping` 是一个哈希表数据结构。 - // 此 `mapping` 将一个无符号整数(代币余额)分配给地址(代币持有者)。 - // 了解更多: https://solidity.readthedocs.io/en/v0.5.10/types.html#mapping-types - mapping (address => uint) public balances; - - // 事件允许在区块链上记录活动。 - // 以太坊客户端可以监听事件,以便对合约状态更改作出反应。 - // 了解更多: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#events - event Transfer(address from, address to, uint amount); - - // 初始化合约数据,设置 `owner`为合约创建者的地址。 - constructor() public { - // 所有智能合约依赖外部交易来触发其函数。 - // `msg` 是一个全局变量,包含了给定交易的相关数据, - // 例如发送者的地址和包含在交易中的 ETH 数量。 - // 了解更多:https://solidity.readthedocs.io/en/v0.5.10/units-and-global-variables.html#block-and-transaction-properties - owner = msg.sender; - } - - // 创建一些新代币并发送给一个地址。 - function mint(address receiver, uint amount) public { - // `require` 是一个用于强制执行某些条件的控制结构。 - // 如果 `require` 的条件为 `false`,则异常被触发, - // 所有在当前调用中对状态的更改将被还原。 - // 学习更多: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions - - // 只有合约创建人可以调用这个函数 - require(msg.sender == owner, "You are not the owner."); - - // 强制执行代币的最大数量 - require(amount < 1e60, "Maximum issuance exceeded"); - - // 将 "收款人"的余额增加"金额" - balances[receiver] += amount; - } - - // 从任何调用者那里发送一定数量的代币到一个地址。 - function transfer(address receiver, uint amount) public { - // 发送者必须有足够数量的代币用于发送 - require(amount <= balances[msg.sender], "Insufficient balance."); - - // 调整两个帐户的余额 - balances[msg.sender] -= amount; - balances[receiver] += amount; - - // 触发之前定义的事件。 - emit Transfer(msg.sender, receiver, amount); - } -} -``` - -### 唯一的数字资产 {#unique-digital-asset} - -```solidity -pragma solidity ^0.5.10; - -// 从其它文件向当前合约中导入符号。 -// 本例使用一系列来自 OpenZeppelin 的辅助合约。 -// 了解更多:https://solidity.readthedocs.io/en/v0.5.10/layout-of-source-files.html#importing-other-source-files - -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol"; -import "../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol"; -import "../node_modules/@openzeppelin/contracts/introspection/ERC165.sol"; -import "../node_modules/@openzeppelin/contracts/math/SafeMath.sol"; - -// `is` 关键字用于从其它外部合约继承函数和关键字。 -// 本例中,`CryptoPizza` 继承 `IERC721` 和 `ERC165` 合约。 -// 了解更多:https://solidity.readthedocs.io/en/v0.5.10/contracts.html#inheritance -contract CryptoPizza is IERC721, ERC165 { - // 使用 OpenZeppelin's SafeMath 库来安全执行算数操作。 - // 了解更多:https://docs.openzeppelin.com/contracts/2.x/api/math#SafeMath - using SafeMath for uint256; - - // Solidity 语言中的常量状态变量与其他语言类似。 - // 但是必须用一个表达式为常量赋值,而这个表达式本身必须在编译时是一个常量。 - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#constant-state-variables - uint256 constant dnaDigits = 10; - uint256 constant dnaModulus = 10 ** dnaDigits; - bytes4 private constant _ERC721_RECEIVED = 0x150b7a02; - - // Struct types let you define your own type - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/types.html#structs - struct Pizza { - string name; - uint256 dna; - } - - // Creates an empty array of Pizza structs - Pizza[] public pizzas; - - // Mapping from pizza ID to its owner's address - mapping(uint256 => address) public pizzaToOwner; - - // Mapping from owner's address to number of owned token - mapping(address => uint256) public ownerPizzaCount; - - // Mapping from token ID to approved address - mapping(uint256 => address) pizzaApprovals; - - // You can nest mappings, this example maps owner to operator approvals - mapping(address => mapping(address => bool)) private operatorApprovals; - - // Internal function to create a random Pizza from string (name) and DNA - function _createPizza(string memory _name, uint256 _dna) - // The `internal` keyword means this function is only visible - // within this contract and contracts that derive this contract - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#visibility-and-getters - internal - // `isUnique` is a function modifier that checks if the pizza already exists - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/structure-of-a-contract.html#function-modifiers - isUnique(_name, _dna) - { - // Adds Pizza to array of Pizzas and get id - uint256 id = SafeMath.sub(pizzas.push(Pizza(_name, _dna)), 1); - - // Checks that Pizza owner is the same as current user - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/control-structures.html#error-handling-assert-require-revert-and-exceptions - - // note that address(0) is the zero address, - // indicating that pizza[id] is not yet allocated to a particular user. - - assert(pizzaToOwner[id] == address(0)); - - // Maps the Pizza to the owner - pizzaToOwner[id] = msg.sender; - ownerPizzaCount[msg.sender] = SafeMath.add( - ownerPizzaCount[msg.sender], - 1 - ); - } - - // Creates a random Pizza from string (name) - function createRandomPizza(string memory _name) public { - uint256 randDna = generateRandomDna(_name, msg.sender); - _createPizza(_name, randDna); - } - - // Generates random DNA from string (name) and address of the owner (creator) - function generateRandomDna(string memory _str, address _owner) - public - // Functions marked as `pure` promise not to read from or modify the state - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#pure-functions - pure - returns (uint256) - { - // Generates random uint from string (name) + address (owner) - uint256 rand = uint256(keccak256(abi.encodePacked(_str))) + - uint256(_owner); - rand = rand % dnaModulus; - return rand; - } - - // Returns array of Pizzas found by owner - function getPizzasByOwner(address _owner) - public - // Functions marked as `view` promise not to modify state - // Learn more: https://solidity.readthedocs.io/en/v0.5.10/contracts.html#view-functions - view - returns (uint256[] memory) - { - // Uses the `memory` storage location to store values only for the - // lifecycle of this function call. - // 了解更多:https://solidity.readthedocs.io/en/v0.5.10/introduction-to-smart-contracts.html#storage-memory-and-the-stack - uint256[] memory result = new uint256[](ownerPizzaCount[_owner]); - uint256 counter = 0; - for (uint256 i = 0; i < pizzas.length; i++) { - if (pizzaToOwner[i] == _owner) { - result[counter] = i; - counter++; - } - } - return result; - } - - // 转移 Pizza 和归属关系到其它地址 - function transferFrom(address _from, address _to, uint256 _pizzaId) public { - require(_from != address(0) && _to != address(0), "Invalid address."); - require(_exists(_pizzaId), "Pizza does not exist."); - require(_from != _to, "Cannot transfer to the same address."); - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - - ownerPizzaCount[_to] = SafeMath.add(ownerPizzaCount[_to], 1); - ownerPizzaCount[_from] = SafeMath.sub(ownerPizzaCount[_from], 1); - pizzaToOwner[_pizzaId] = _to; - - // 触发继承自 IERC721 合约中定义的事件。 - emit Transfer(_from, _to, _pizzaId); - _clearApproval(_to, _pizzaId); - } - - /** - * 安全转账给定代币 ID 的所有权到其它地址 - * 如果目标地址是一个合约,则该合约必须实现 `onERC721Received`函数, - * 该函数调用了安全转账并且返回一个 magic value。 - * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; - * 否则,转账被回退。 - */ - function safeTransferFrom(address from, address to, uint256 pizzaId) - public - { - // solium-disable-next-line arg-overflow - this.safeTransferFrom(from, to, pizzaId, ""); - } - - /** - * 安全转账给定代币 ID 所有权到其它地址 - * 如果目标地址是一个合约,则该合约必须实现 `onERC721Received` 函数, - * 该函数调用安全转账并返回一个 magic value - * `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`; - * 否则,转账被回退。 - */ - function safeTransferFrom( - address from, - address to, - uint256 pizzaId, - bytes memory _data - ) public { - this.transferFrom(from, to, pizzaId); - require(_checkOnERC721Received(from, to, pizzaId, _data), "Must implement onERC721Received."); - } - - /** - * Internal function to invoke `onERC721Received` on a target address - * The call is not executed if the target address is not a contract - */ - function _checkOnERC721Received( - address from, - address to, - uint256 pizzaId, - bytes memory _data - ) internal returns (bool) { - if (!isContract(to)) { - return true; - } - - bytes4 retval = IERC721Receiver(to).onERC721Received( - msg.sender, - from, - pizzaId, - _data - ); - return (retval == _ERC721_RECEIVED); - } - - // Burns a Pizza - destroys Token completely - // The `external` function modifier means this function is - // part of the contract interface and other contracts can call it - function burn(uint256 _pizzaId) external { - require(msg.sender != address(0), "Invalid address."); - require(_exists(_pizzaId), "Pizza does not exist."); - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - - ownerPizzaCount[msg.sender] = SafeMath.sub( - ownerPizzaCount[msg.sender], - 1 - ); - pizzaToOwner[_pizzaId] = address(0); - } - - // Returns count of Pizzas by address - function balanceOf(address _owner) public view returns (uint256 _balance) { - return ownerPizzaCount[_owner]; - } - - // Returns owner of the Pizza found by id - function ownerOf(uint256 _pizzaId) public view returns (address _owner) { - address owner = pizzaToOwner[_pizzaId]; - require(owner != address(0), "Invalid Pizza ID."); - return owner; - } - - // Approves other address to transfer ownership of Pizza - function approve(address _to, uint256 _pizzaId) public { - require(msg.sender == pizzaToOwner[_pizzaId], "Must be the Pizza owner."); - pizzaApprovals[_pizzaId] = _to; - emit Approval(msg.sender, _to, _pizzaId); - } - - // Returns approved address for specific Pizza - function getApproved(uint256 _pizzaId) - public - view - returns (address operator) - { - require(_exists(_pizzaId), "Pizza does not exist."); - return pizzaApprovals[_pizzaId]; - } - - /** - * Private function to clear current approval of a given token ID - * Reverts if the given address is not indeed the owner of the token - */ - function _clearApproval(address owner, uint256 _pizzaId) private { - require(pizzaToOwner[_pizzaId] == owner, "Must be pizza owner."); - require(_exists(_pizzaId), "Pizza does not exist."); - if (pizzaApprovals[_pizzaId] != address(0)) { - pizzaApprovals[_pizzaId] = address(0); - } - } - - /* - * Sets or unsets the approval of a given operator - * An operator is allowed to transfer all tokens of the sender on their behalf - */ - function setApprovalForAll(address to, bool approved) public { - require(to != msg.sender, "Cannot approve own address"); - operatorApprovals[msg.sender][to] = approved; - emit ApprovalForAll(msg.sender, to, approved); - } - - // Tells whether an operator is approved by a given owner - function isApprovedForAll(address owner, address operator) - public - view - returns (bool) - { - return operatorApprovals[owner][operator]; - } - - // Takes ownership of Pizza - only for approved users - function takeOwnership(uint256 _pizzaId) public { - require(_isApprovedOrOwner(msg.sender, _pizzaId), "Address is not approved."); - address owner = this.ownerOf(_pizzaId); - this.transferFrom(owner, msg.sender, _pizzaId); - } - - // Checks if Pizza exists - function _exists(uint256 pizzaId) internal view returns (bool) { - address owner = pizzaToOwner[pizzaId]; - return owner != address(0); - } - - // Checks if address is owner or is approved to transfer Pizza - function _isApprovedOrOwner(address spender, uint256 pizzaId) - internal - view - returns (bool) - { - address owner = pizzaToOwner[pizzaId]; - // Disable solium check because of - // https://github.com/duaraghav8/Solium/issues/175 - // solium-disable-next-line operator-whitespace - return (spender == owner || - this.getApproved(pizzaId) == spender || - this.isApprovedForAll(owner, spender)); - } - - // Check if Pizza is unique and doesn't exist yet - modifier isUnique(string memory _name, uint256 _dna) { - bool result = true; - for (uint256 i = 0; i < pizzas.length; i++) { - if ( - keccak256(abi.encodePacked(pizzas[i].name)) == - keccak256(abi.encodePacked(_name)) && - pizzas[i].dna == _dna - ) { - result = false; - } - } - require(result, "Pizza with such name already exists."); - _; - } - - // Returns whether the target address is a contract - function isContract(address account) internal view returns (bool) { - uint256 size; - // Currently there is no better way to check if there is a contract in an address - // than to check the size of the code at that address. - // See https://ethereum.stackexchange.com/a/14016/36603 - // for more details about how this works. - // TODO Check this again before the Serenity release, because all addresses will be - // contracts then. - // solium-disable-next-line security/no-inline-assembly - assembly { - size := extcodesize(account) - } - return size > 0; - } -} -``` - -## 延伸阅读 {#further-reading} - -查阅 Solidity 和 Vyper 文档,以获得关于智能合约的更完整概述: - -- [Solidity](https://solidity.readthedocs.io/) -- [Vyper](https://vyper.readthedocs.io/) - -## 相关主题 {#related-topics} - -- [智能合约](/developers/docs/smart-contracts/) -- [以太坊虚拟机](/developers/docs/evm/) - -## 相关教程 {#related-tutorials} - -- [减少合约大小以应对合约大小的限制](/developers/tutorials/downsizing-contracts-to-fight-the-contract-size-limit/) _– 一些减少智能合约大小的实用提示。_ -- [用事件记录智能合约的数据](/developers/tutorials/logging-events-smart-contracts/) _——对智能合约事件的介绍以及如何使用它们来记录数据。_ -- [在 Solidity 中与其它合约交互](/developers/tutorials/interact-with-other-contracts-from-solidity/) _——如何从现有合约中部署智能合约并与之交互。_ diff --git a/src/content/translations/zh/developers/docs/standards/tokens/erc-20/index.md b/src/content/translations/zh/developers/docs/standards/tokens/erc-20/index.md deleted file mode 100644 index 499ecf12697..00000000000 --- a/src/content/translations/zh/developers/docs/standards/tokens/erc-20/index.md +++ /dev/null @@ -1,148 +0,0 @@ ---- -title: ERC-20 代币标准 -description: -lang: zh ---- - -## 介绍 {#introduction} - -**什么叫做代币?** - -代币可以在以太坊中表示任何东西: - -- 在线平台中的信誉积分 -- 游戏中一个角色的技能 -- 彩票卷 -- 金融资产类似于公司股份的资产 -- 像美元一样的法定货币 -- 一盎司黄金 -- 及更多... - -以太坊的这种强大特点必须以强有力的标准来处理,对吗? 这正是 ERC-20 发挥其作用的地方! 此标准允许开发者构建可与其他产品和服务互相操作的代币应用程序。 - -**什么是 ERC-20?** - -ERC-20 提出了一个同质化代币的标准,换句话说,它们具有一种属性,使得每个代币都与另一个代币(在类型和价值上)完全相同。 例如,一个 ERC-20 代币就像以太币一样,意味着一个代币会并永远会与其他代币一样。 - -## 前提条件 {#prerequisites} - -- [帐户](/developers/docs/accounts) -- [智能合约](/developers/docs/smart-contracts/) -- [代币标准](/developers/docs/standards/tokens/) - -## 正文 {#body} - -ERC-20(以太坊意见征求 20)由 Fabian Vogelsteller 提出于 2015 年 11 月。这是一个能实现智能合约中代币的应用程序接口标准。 - -ERC-20 的功能示例包括: - -- 将代币从一个帐户转到另一个帐户 -- 获取帐户的当前代币余额 -- 获取网络上可用代币的总供应量 -- 批准一个帐户中一定的代币金额由第三方帐户使用 - -如果智能合约实施了下列方法和事件,它可以被称为 ERC-20 代币合约,一旦部署,将负责跟踪以太坊上创建的代币。 - -来自 [EIP-20](https://eips.ethereum.org/EIPS/eip-20): - -#### 方法 {#methods} - -```solidity -function name() public view returns (string) -function symbol() public view returns (string) -function decimals() public view returns (uint8) -function totalSupply() public view returns (uint256) -function balanceOf(address _owner) public view returns (uint256 balance) -function transfer(address _to, uint256 _value) public returns (bool success) -function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) -function approve(address _spender, uint256 _value) public returns (bool success) -function allowance(address _owner, address _spender) public view returns (uint256 remaining) -``` - -#### 事件 {#events} - -```solidity -event Transfer(address indexed _from, address indexed _to, uint256 _value) -event Approval(address indexed _owner, address indexed _spender, uint256 _value) -``` - -### 示例 {#web3py-example} - -让我们看看如此重要的一个标准是如何使我们能够简单地检查以太坊上的任何 ERC-20 代币合约。 我们只需要合约的应用程序二进制接口 (ABI) 来创造一个 ERC-20 代币界面。 下面我们将使用一个简化的应用程序二进制接口,让例子变得更为简单。 - -#### Web3.py 示例 {#web3py-example} - -首先,请确保您已安装 [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) Python 库: - -``` -pip install web3 -``` - -```python -from web3 import Web3 - - -w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) - -dai_token_addr = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI -weth_token_addr = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # Wrapped ether (WETH) - -acc_address = "0xA478c2975Ab1Ea89e8196811F51A7B7Ade33eB11" # Uniswap V2: DAI 2 - -# This is a simplified Contract Application Binary Interface (ABI) of an ERC-20 Token Contract. -# It will expose only the methods: balanceOf(address), decimals(), symbol() and totalSupply() -simplified_abi = [ - { - 'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], - 'name': 'balanceOf', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'decimals', - 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'symbol', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'totalSupply', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - } -] - -dai_contract = w3.eth.contract(address=w3.to_checksum_address(dai_token_addr), abi=simplified_abi) -symbol = dai_contract.functions.symbol().call() -decimals = dai_contract.functions.decimals().call() -totalSupply = dai_contract.functions.totalSupply().call() / 10**decimals -addr_balance = dai_contract.functions.balanceOf(acc_address).call() / 10**decimals - -# DAI -print("===== %s =====" % symbol) -print("Total Supply:", totalSupply) -print("Addr Balance:", addr_balance) - -weth_contract = w3.eth.contract(address=w3.to_checksum_address(weth_token_addr), abi=simplified_abi) -symbol = weth_contract.functions.symbol().call() -decimals = weth_contract.functions.decimals().call() -totalSupply = weth_contract.functions.totalSupply().call() / 10**decimals -addr_balance = weth_contract.functions.balanceOf(acc_address).call() / 10**decimals - -# WETH -print("===== %s =====" % symbol) -print("Total Supply:", totalSupply) -print("Addr Balance:", addr_balance) -``` - -## 延伸阅读 {#further-reading} - -- [EIP-20:ERC-20 代币标准](https://eips.ethereum.org/EIPS/eip-20) -- [OpenZeppelin - 代币](https://docs.openzeppelin.com/contracts/3.x/tokens#ERC20) -- [OpenZeppelin - ERC-20 实施](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol) diff --git a/src/content/translations/zh/developers/docs/standards/tokens/erc-721/index.md b/src/content/translations/zh/developers/docs/standards/tokens/erc-721/index.md deleted file mode 100644 index 896acbefd10..00000000000 --- a/src/content/translations/zh/developers/docs/standards/tokens/erc-721/index.md +++ /dev/null @@ -1,244 +0,0 @@ ---- -title: ERC-721 非同质化代币标准 -description: -lang: zh ---- - -## 介绍 {#introduction} - -**什么是非同质化代币?** - -非同质化代币(NFT)用于以唯一的方式标识某人或者某物。 此类型的代币可以被完美地用于出售下列物品的平台:收藏品、密钥、彩票、音乐会座位编号、体育比赛等。 这种类型的代币有着惊人的潜力,因此它需要一个适当的标准。ERC-721 就是为解决这个问题而来! - -**ERC-721 是什么?** - -ERC-721 为 NFT 引入了一个标准,换言之,这种类型的代币是独一无二的,并且可能与来自同一智能合约的另一代币有不同的价值,也许是因为它的年份、稀有性、甚至是它的观感。 稍等,看起来怎么样呢? - -是的。 所有 NFTs 都有一个 `uint256` 变量,名为 `tokenId`,所以对于任何 ERC-721 合约,这对值`contract address, tokenId` 必须是全局唯一的。 也就是说,去中心化应用程序可以有一个“转换器”, 使用 `tokenId` 作为输入并输出一些很酷的事物图像,例如僵尸、武器、技能或神奇的小猫咪! - -## 前提条件 {#prerequisites} - -- [帐户](/developers/docs/accounts/) -- [智能合约](/developers/docs/smart-contracts/) -- [代币标准](/developers/docs/standards/tokens/) - -## 正文 {#body} - -ERC-721(Ethereum Request for Comments 721),由 William Entriken、Dieter Shirley、Jacob Evans、Nastassia Sachs 在 2018 年 1 月提出,是一个在智能合约中实现代币 API 的非同质化代币标准。 - -它提供了一些功能,例如将代币从一个帐户转移到另一个帐户,获取帐户的当前代币余额,获取代币的所有者,以及整个网络的可用代币总供应量。 除此之外,它还具有其他功能,例如批准帐户中一定数量的代币可以被第三方帐户转移。 - -如果一个智能合约实现了下列方法和事件,它就可以被称为 ERC-721 非同质化代币合约。 一旦被部署,它将负责跟踪在以太坊上创建的代币。 - -来自[ EIP-721 ](https://eips.ethereum.org/EIPS/eip-721): - -#### 方法 {#methods} - -```solidity - function balanceOf(address _owner) external view returns (uint256); - function ownerOf(uint256 _tokenId) external view returns (address); - function safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes data) external payable; - function safeTransferFrom(address _from, address _to, uint256 _tokenId) external payable; - function transferFrom(address _from, address _to, uint256 _tokenId) external payable; - function approve(address _approved, uint256 _tokenId) external payable; - function setApprovalForAll(address _operator, bool _approved) external; - function getApproved(uint256 _tokenId) external view returns (address); - function isApprovedForAll(address _owner, address _operator) external view returns (bool); -``` - -#### 事件 {#events} - -```solidity - event Transfer(address indexed _from, address indexed _to, uint256 indexed _tokenId); - event Approval(address indexed _owner, address indexed _approved, uint256 indexed _tokenId); - event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); -``` - -### 示例 {#web3py-example} - -让我们看看一个标准是多么重要,它使我们能够简单地在以太坊上检查任何 ERC-721 代币合约。 我们只需要合约的应用程序二进制接口(ABI)就可以创造任何 ERC-721 代币的接口。 下面我们将使用一个简化的应用程序二进制接口,让例子变得更为简单。 - -#### Web3.py 示例 {#web3py-example} - -首先,请确保您已安装 [Web3.py](https://web3py.readthedocs.io/en/stable/quickstart.html#installation) Python 库: - -``` -pip install web3 -``` - -```python -from web3 import Web3 -from web3._utils.events import get_event_data - - -w3 = Web3(Web3.HTTPProvider("https://cloudflare-eth.com")) - -ck_token_addr = "0x06012c8cf97BEaD5deAe237070F9587f8E7A266d" # CryptoKitties Contract - -acc_address = "0xb1690C08E213a35Ed9bAb7B318DE14420FB57d8C" # CryptoKitties Sales Auction - -# This is a simplified Contract Application Binary Interface (ABI) of an ERC-721 NFT Contract. -# It will expose only the methods: balanceOf(address), name(), ownerOf(tokenId), symbol(), totalSupply() -simplified_abi = [ - { - 'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], - 'name': 'balanceOf', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'name', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], - 'name': 'ownerOf', - 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'symbol', - 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [], - 'name': 'totalSupply', - 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], - 'stateMutability': 'view', 'type': 'function', 'constant': True - }, -] - -ck_extra_abi = [ - { - 'inputs': [], - 'name': 'pregnantKitties', - 'outputs': [{'name': '', 'type': 'uint256'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - }, - { - 'inputs': [{'name': '_kittyId', 'type': 'uint256'}], - 'name': 'isPregnant', - 'outputs': [{'name': '', 'type': 'bool'}], - 'payable': False, 'stateMutability': 'view', 'type': 'function', 'constant': True - } -] - -ck_contract = w3.eth.contract(address=w3.toChecksumAddress(ck_token_addr), abi=simplified_abi+ck_extra_abi) -name = ck_contract.functions.name().call() -symbol = ck_contract.functions.symbol().call() -kitties_auctions = ck_contract.functions.balanceOf(acc_address).call() -print(f"{name} [{symbol}] NFTs in Auctions: {kitties_auctions}") - -pregnant_kitties = ck_contract.functions.pregnantKitties().call() -print(f"{name} [{symbol}] NFTs Pregnants: {pregnant_kitties}") - -# Using the Transfer Event ABI to get info about transferred Kitties. -tx_event_abi = { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'from', 'type': 'address'}, - {'indexed': False, 'name': 'to', 'type': 'address'}, - {'indexed': False, 'name': 'tokenId', 'type': 'uint256'}], - 'name': 'Transfer', - 'type': 'event' -} - -# We need the event's signature to filter the logs -event_signature = w3.sha3(text="Transfer(address,address,uint256)").hex() - -logs = w3.eth.getLogs({ - "fromBlock": w3.eth.blockNumber - 120, - "address": w3.toChecksumAddress(ck_token_addr), - "topics": [event_signature] -}) - -# Notes: -# - 120 blocks is the max range for CloudFlare Provider -# - If you didn't find any Transfer event you can also try to get a tokenId at: -# https://etherscan.io/address/0x06012c8cf97BEaD5deAe237070F9587f8E7A266d#events -# Click to expand the event's logs and copy its "tokenId" argument - -recent_tx = [get_event_data(w3.codec, tx_event_abi, log)["args"] for log in logs] - -kitty_id = recent_tx[0]['tokenId'] # Paste the "tokenId" here from the link above -is_pregnant = ck_contract.functions.isPregnant(kitty_id).call() -print(f"{name} [{symbol}] NFTs {kitty_id} is pregnant: {is_pregnant}") -``` - -除了标准事件之外,CryptoKitties 合约还有其它一些有趣的事件。 - -让我们看看其中的两个,`Pregnant` 和 `Birth`。 - -```python -# Using the Pregnant and Birth Events ABI to get info about new Kitties. -ck_extra_events_abi = [ - { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'owner', 'type': 'address'}, - {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, - {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, - {'indexed': False, 'name': 'cooldownEndBlock', 'type': 'uint256'}], - 'name': 'Pregnant', - 'type': 'event' - }, - { - 'anonymous': False, - 'inputs': [ - {'indexed': False, 'name': 'owner', 'type': 'address'}, - {'indexed': False, 'name': 'kittyId', 'type': 'uint256'}, - {'indexed': False, 'name': 'matronId', 'type': 'uint256'}, - {'indexed': False, 'name': 'sireId', 'type': 'uint256'}, - {'indexed': False, 'name': 'genes', 'type': 'uint256'}], - 'name': 'Birth', - 'type': 'event' - }] - -# We need the event's signature to filter the logs -ck_event_signatures = [ - w3.sha3(text="Pregnant(address,uint256,uint256,uint256)").hex(), - w3.sha3(text="Birth(address,uint256,uint256,uint256,uint256)").hex(), -] - -# Here is a Pregnant Event: -# - https://etherscan.io/tx/0xc97eb514a41004acc447ac9d0d6a27ea6da305ac8b877dff37e49db42e1f8cef#eventlog -pregnant_logs = w3.eth.getLogs({ - "fromBlock": w3.eth.blockNumber - 120, - "address": w3.toChecksumAddress(ck_token_addr), - "topics": [ck_event_signatures[0]] -}) - -recent_pregnants = [get_event_data(w3.codec, ck_extra_events_abi[0], log)["args"] for log in pregnant_logs] - -# Here is a Birth Event: -# - https://etherscan.io/tx/0x3978028e08a25bb4c44f7877eb3573b9644309c044bf087e335397f16356340a -birth_logs = w3.eth.getLogs({ - "fromBlock": w3.eth.blockNumber - 120, - "address": w3.toChecksumAddress(ck_token_addr), - "topics": [ck_event_signatures[1]] -}) - -recent_births = [get_event_data(w3.codec, ck_extra_events_abi[1], log)["args"] for log in birth_logs] -``` - -## 热门的 NFT {#popular-nfts} - -- [Etherscan NFT Tracker](https://etherscan.io/tokens-nft) 列出了以太坊上交易量最大的 NFT。 -- [CryptoKitties](https://www.cryptokitties.co/) 是一个围绕着我们称之为加密猫的可繁殖、可收藏和可爱的生物游戏。 -- [Sorare](https://sorare.com/) 是一场全球迷幻足球赛,您可以在这里收集有限版本的收藏品,管理您的球队,参加比赛以获得奖品。 -- [以太坊域名服务 (ENS)](https://ens.domains/) 提供了一种安全和去中心化的方式,用人类可读的名字来处理链上和链下的资源。 -- [POAP](https://poap.xyz) 向参加事件或完成特定行动的人免费提供非同质化代币。 POAP 的创建和分发是免费的。 -- [Unstoppable Domains](https://unstoppabledomains.com/) 总部设在旧金山,是一家在区块链上创建域的公司。 区块链域将加密货币地址替换为人类可读的名称,并且可用于支持抗审查的网站。 -- [Gods Unchained Cards](https://godsunchained.com/) 是以太坊区块链上的一款集换式卡牌游戏,它使用非同质化代币来为游戏中的资产提供真实所有权。 -- [无聊猿游艇俱乐部](https://boredapeyachtclub.com)是一件由 10,000 个独一无二的非同质化代币构成的收藏品,也是一件非常罕见的艺术品,它作为俱乐部会员资格代币,可为成员提供多种特权和福利,而且在社区的努力下,这些特权和福利还会随着时间的推移不断增加。 - -## 延伸阅读 {#further-reading} - -- [EIP-721:ERC-721 非同质化代币标准](https://eips.ethereum.org/EIPS/eip-721) -- [OpenZeppelin - ERC-721 文档](https://docs.openzeppelin.com/contracts/3.x/erc721) -- [OpenZeppelin - ERC-721 实施](https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC721/ERC721.sol) -- [Alchemy NFT API](https://docs.alchemy.com/alchemy/enhanced-apis/nft-api) diff --git a/src/content/translations/zh/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md b/src/content/translations/zh/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md deleted file mode 100644 index 2eabe73e62f..00000000000 --- a/src/content/translations/zh/developers/tutorials/waffle-dynamic-mocking-and-testing-calls/index.md +++ /dev/null @@ -1,298 +0,0 @@ ---- -title: "Waffle:动态模拟和测试合约调用" -description: 有关使用动态模拟和测试合约调用的高级Waffle教程 -author: "Daniel Izdebski" -tags: - - "waffle" - - "智能合约" - - "solidity" - - "测试" - - "模拟" -skill: intermediate -lang: zh -published: 2020-11-14 ---- - -## 本教程是关于什么的? {#what-is-this-tutorial-about} - -在本教程中,您将学习如何: - -- 使用动态模拟 -- 测试智能合约之间的交互 - -本文假定: - -- 您已经知道如何在`Solidity`中编写一个简单的智能合约 -- 您熟悉`JavaScript`和`TypeScript` -- 您已经完成其他`Waffle`教程或对其略知一二。 - -## 动态模拟 {#dynamic-mocking} - -为什么动态模拟有用? 它允许我们编写单元测试,而不是集成测试。 这是什么意思呢? 这意味着我们不必担心智能合约的依赖性,因此我们可以完全孤立地测试所有合约。 让我演示一下如何才能实现。 - -### **1. 项目** {#1-project} - -在开始之前,我们需要准备一个简单的 node.js 项目: - -```bash -mkdir dynamic-mocking -cd dynamic-mocking -mkdir contracts src - -yarn init -# or if you're using npm -npm init -``` - -让我们从添加类型脚本和测试依赖项开始-mocha & chai: - -```bash -yarn add --dev @types/chai @types/mocha chai mocha ts-node typescript -# or if you're using npm -npm install @types/chai @types/mocha chai mocha ts-node typescript --save-dev -``` - -现在让我们添加`Waffle`和`Ethers`: - -```bash -yarn add --dev ethereum-waffle ethers -# or if you're using npm -npm install ethereum-waffle ethers --save-dev -``` - -您的项目结构现在应该如下所示: - -``` -. -├── contracts -├── package.json -└── test -``` - -### **2. 智能合约** {#2-smart-contract} - -要开始动态模拟,我们需要一个包含依赖项的智能合约。 别担心,我会掩护您的! - -这是一个用`Solidity`编写的简单智能合约,其唯一目的是检查我们是否富有。 它使用 ERC20 通证来检查我们是否有足够的通证。 将其放在`./contracts/AmIRichAlready.sol`中。 - -```solidity -pragma solidity ^0.6.2; - -interface IERC20 { - function balanceOf(address account) external view returns (uint256); -} - -contract AmIRichAlready { - IERC20 private tokenContract; - uint public richness = 1000000 * 10 ** 18; - - constructor (IERC20 _tokenContract) public { - tokenContract = _tokenContract; - } - - function check() public view returns (bool) { - uint balance = tokenContract.balanceOf(msg.sender); - return balance > richness; - } -} -``` - -因为我们想使用动态模拟,所以我们不需要整个 ERC20,这就是为什么我们使用只有一个函数的 IERC20 接口的原因。 - -现在是构建这个合约的时候了! 为此,我们将使用`Waffle`。 首先,我们将创建一个简单的`waffle.json`配置文件,它指定了编译选项。 - -```json -{ - "compilerType": "solcjs", - "compilerVersion": "0.6.2", - "sourceDirectory": "./contracts", - "outputDirectory": "./build" -} -``` - -现在我们已经准备好使用 Waffer 构建合约: - -```bash -npx waffle -``` - -很简单,对吗? 在`build/`文件夹中,出现了与合约和接口相对应的两个文件。 我们稍后将使用它们进行测试。 - -### **3. 测试** {#3-testing} - -让我们创建一个名为`AmIRichAlready.test.ts`的文件来进行实际测试。 首先,我们必须处理导入。 我们稍后将需要它们: - -```typescript -import { expect, use } from "chai" -import { Contract, utils, Wallet } from "ethers" -import { - deployContract, - deployMockContract, - MockProvider, - solidity, -} from "ethereum-waffle" -``` - -除了 JS 依赖项,我们需要导入我们创建的合约和接口。 - -```typescript -import IERC20 from "../build/IERC20.json" -import AmIRichAlready from "../build/AmIRichAlready.json" -``` - -Waffle 使用`chai`进行测试。 然而,在我们使用它之前,我们必须将 Waffle 的匹配器注入到 chai 本身: - -```typescript -use(solidity) -``` - -我们需要实现`beforeEach()`函数,它将在每次测试前重置合约的状态。 让我们先想想我们在那里需要什么。 为了部署一个合约,我们需要两样东西:一个钱包和一个已部署的 ERC20 合约,以便将其作为`AmIRichAlready`合约的参数传递。 - -首先,我们创建一个钱包: - -```typescript -const [wallet] = new MockProvider().getWallets() -``` - -然后我们需要部署一个 ERC20 合约。 这里是棘手的部分 -- 我们只有一个接口。 这就是 Waffle 来拯救我们的部分。 Waffle 有一个神奇的`deployMockContract()`函数,它只使用接口的*abi*来创建合约。 - -```typescript -const mockERC20 = await deployMockContract(wallet, IERC20.abi) -``` - -现在有了钱包和部署的 ERC20,我们可以继续部署`AmIRichAlready`合约。 - -```typescript -const contract = await deployContract(wallet, AmIRichAlready, [ - mockERC20.address, -]) -``` - -做完这些,我们的`beforeEach()`函数就完成了。 到目前为止,您的`AmIRichAlready.test.ts`文件看起来应如下所示: - -```typescript -import { expect, use } from "chai" -import { Contract, utils, Wallet } from "ethers" -import { - deployContract, - deployMockContract, - MockProvider, - solidity, -} from "ethereum-waffle" - -import IERC20 from "../build/IERC20.json" -import AmIRichAlready from "../build/AmIRichAlready.json" - -use(solidity) - -describe("Am I Rich Already", () => { - let mockERC20: Contract - let contract: Contract - let wallet: Wallet - - beforeEach(async () => { - ;[wallet] = new MockProvider().getWallets() - mockERC20 = await deployMockContract(wallet, IERC20.abi) - contract = await deployContract(wallet, AmIRichAlready, [mockERC20.address]) - }) -}) -``` - -让我们为`AmIRichAlready`合约编写第一个测试。 您认为我们的测试应该是关于什么的? 没错,您是对的! 我们应该检查我们是否有很多钱:) - -但是等一下。 我们的模拟合约怎么知道要返回什么值呢? 我们还没有实现`balanceOf()`函数的任何逻辑。 同样,Waffle 在这里可以提供帮助。 我们的模拟合约现在有了一些新花招。 - -```typescript -await mockERC20.mock..returns() -await mockERC20.mock..withArgs().returns() -``` - -有了这些知识,我们终于可以写出我们的第一个测试啦: - -```typescript -it("returns false if the wallet has less than 1000000 tokens", async () => { - await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) - expect(await contract.check()).to.be.equal(false) -}) -``` - -让我们把这个测试分解成几个部分: - -1. 将我们的模拟 ERC20 合约设置为始终返回 99999 个通证的余额。 -2. 检查`contract.check()`方法是否返回`false`。 - -我们已经准备好启动这个野兽了: - -![一次测试通过](test-one.png) - -所以这个测试是有效的,但是......还是有一些改进的余地。 `balanceOf()`函数将始终返回 99999。 我们可以通过指定一个钱包来改进它,该函数应该为它返回一些东西 -- 就像一个真正的合约。 - -```typescript -it("returns false if the wallet has less than 1000001 tokens", async () => { - await mockERC20.mock.balanceOf - .withArgs(wallet.address) - .returns(utils.parseEther("999999")) - expect(await contract.check()).to.be.equal(false) -}) -``` - -到目前为止,我们只测试了我们不够有钱的情况。 让我们来测试一下相反的情况。 - -```typescript -it("returns true if the wallet has at least 1000001 tokens", async () => { - await mockERC20.mock.balanceOf - .withArgs(wallet.address) - .returns(utils.parseEther("1000001")) - expect(await contract.check()).to.be.equal(true) -}) -``` - -您运行测试... - -![两次测试通过](test-two.png) - -...您已经到这儿啦! 我们的合约似乎按计划进行 :) - -## 测试合约调用 {#testing-contract-calls} - -让我们总结一下到目前为止所做的事情。 我们已经测试了我们的`AmIRichAlready`合约的功能,它似乎正常工作。 这意味着我们已经完成了,对吧? 并非如此! Waffle 允许我们进一步测试合约。 但是具体怎么做呢? 那么,在 Waffle 的武器库中,有一个`calledOnContract()`和`calledOnContractWith()`匹配器。 他们允许我们检查,我们的合约是否调用了 ERC20 模拟合约。 下面是对其中一个匹配器的基本测试: - -```typescript -it("checks if contract called balanceOf on the ERC20 token", async () => { - await mockERC20.mock.balanceOf.returns(utils.parseEther("999999")) - await contract.check() - expect("balanceOf").to.be.calledOnContract(mockERC20) -}) -``` - -我们可以更进一步,用我告诉您的另一个匹配器改进这个测试: - -```typescript -it("checks if contract called balanceOf with certain wallet on the ERC20 token", async () => { - await mockERC20.mock.balanceOf - .withArgs(wallet.address) - .returns(utils.parseEther("999999")) - await contract.check() - expect("balanceOf").to.be.calledOnContractWith(mockERC20, [wallet.address]) -}) -``` - -让我们检查测试是否正确: - -![三次测试通过](test-three.png) - -太好了,所有测试都通过了。 - -用 Waffle 测试智能合约调用非常容易。 而这是最精彩的部分。 这些匹配器对正常合约和模拟合约都有效! 这是因为 Waffle 记录和过滤 EVM 调用,而不是像其他技术的流行测试库那样注入代码。 - -## 最后 {#the-finish-line} - -恭喜! 现在您知道如何使用 Waffle 来测试合约调用和动态模拟智能合约了。 还有更多有趣的功能等着我们去发现。 我建议您深入研究 Waffle 文档。 - -Waffle 的文档可在[此处](https://ethereum-waffle.readthedocs.io/)获得。 - -本教程的源代码可以在[此处](https://github.com/EthWorks/Waffle/tree/master/examples/dynamic-mocking-and-testing-calls)找到。 - -您可能还感兴趣的教程: - -- [使用 Waffle 测试智能合约](/developers/tutorials/testing-smart-contract-with-waffle/) diff --git a/src/content/translations/zh/history/index.md b/src/content/translations/zh/history/index.md deleted file mode 100644 index 8cd2257c97e..00000000000 --- a/src/content/translations/zh/history/index.md +++ /dev/null @@ -1,516 +0,0 @@ ---- -title: 以太坊的历史和分叉 -description: 以太坊区块链的历史,包括了主要的里程碑、版本发布和分叉。 -lang: zh -sidebarDepth: 1 ---- - -# 以太坊的历史 {#the-history-of-ethereum} - -所有主要里程碑、分叉和更新以太坊区块链的时间表 - - - -分叉是需要对网络进行重大技术升级或更改时的变化 – 它们通常源自以太坊改进建议 (EIP) 并更改了以太坊协议的“规则”。 - -当传统的中心化软件需要升级时,公司会为终端用户发布新版本。 因为没有中心化所有权,区块链以不同的方式运作。 以太坊客户端必须更新他们的软件以执行新的分叉规则。 直链区块创造者(POW 中的矿工,POS 中的验证者)和节点必须创造区块和按照新规则进行验证。 关于共识机制的更多信息 - -这些规则更改可能会在网络中造成暂时的分叉。 新区块的产生,可以来自新规则,也可以来自旧规则。 分叉通常提前商定,以便让客户端能够采用 Unison 的升级,升级后的分叉链成为主链。 然而,在极少数情况下,对分叉的不同意见可能导致网络永久硬分叉 – 最为著名的是 DAO 分叉 产生了 Ethereum Classic。 - - - -直接查阅有关一些特别重要的以往升级的信息:[信标链](/roadmap/beacon-chain/)、[合并](/roadmap/merge/)和 [EIP-1559](#london) - -想了解未来的协议升级? [了解以太坊路线图上即将进行的升级](/roadmap/)。 - - - -## 2023 年 {#2023} - -### 上海升级 {#shanghai} - - - -#### 摘要 {#shanghai-summary} - -上海升级将质押提款引入执行层。 上海升级与卡佩拉升级同时进行,使区块能够接受提款操作,因此质押人可以将以太币从信标链提取到执行层。 - - - - - - - -- [阅读上海升级规范](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/shanghai.md) - ---- - -### 卡佩拉升级 {#capella} - - - -#### 摘要 {#capella-summary} - -卡佩拉升级是共识层(信标链)的第三次重大升级,实现了质押提款。 卡佩拉与上海同步升级执行层并启用了质押提款功能。 - -这次共识层升级让未提供初始存款提款凭证的质押人能够提供提款凭证,从而实现提款。 - -该升级还提供了自动帐户扫描功能,可以持续处理验证者帐户的任何可用奖励支付或全额提款。 - -- [有关质押提款的更多信息](/staking/withdrawals/)。 -- [阅读卡佩拉升级规范](https://github.com/ethereum/consensus-specs/blob/dev/specs/capella/) - - - -## 2022 年 {#2022} - -### 巴黎升级(合并) {#paris} - - - -#### 摘要 {#paris-summary} - -巴黎升级是由于工作量证明区块链超过了[终端总难度](/glossary/#terminal-total-difficulty) 58750000000000000000000 而触发的。 这发生在 2022 年 9 月 15 日区块 15537393 上,并在下一个区块处触发了巴黎升级。 巴黎升级就是[合并](/roadmap/merge/)过渡,以太坊的主要功能结束了[工作量证明](/developers/docs/consensus-mechanisms/pow)挖矿算法及相关共识逻辑并启动了[权益证明](/developers/docs/consensus-mechanisms/pos)。 巴黎升级本身是对[执行客户端](/developers/docs/nodes-and-clients/#execution-clients)的升级(相当于共识层上的 Bellatrix 升级),让执行客户端能够从与其连接的[共识客户端](/developers/docs/nodes-and-clients/#consensus-clients)接受指令。 这需要激活一组新的内部应用程序接口方法,统称为[引擎应用程序接口](https://github.com/ethereum/execution-apis/blob/main/src/engine/common.md)。 该升级可能是自[家园](#homestead)以来以太坊历史上最重要的升级! - -- [阅读巴黎升级规范](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/mainnet-upgrades/paris.md) - - - -
    -
  • EIP-3675升级权益证明共识
  • -
  • EIP-4399使用 PREVRANDAO 取代 DIFFICULTY 操作码
  • -
- -
- ---- - -### Bellatrix 升级 {#bellatrix} - - - -#### 摘要 {#bellatrix-summary} - -Bellatrix 升级是计划的第二次[信标链](/roadmap/beacon-chain)升级,让信标链为[合并](/roadmap/merge/)做好准备。 它将验证者由于怠惰及进行了可被罚没的行为而受到的惩罚提高到其全部价值。 Bellatrix 升级还包括对分叉选择规则的更新,让信标链为合并以及从最后一个工作量证明区块过渡到第一个权益证明区块做好准备。 这包括让共识客户端意识到[终端总难度](/glossary/#terminal-total-difficulty) 58750000000000000000000。 - -- [阅读 Bellatrix 升级规范](https://github.com/ethereum/consensus-specs/tree/dev/specs/bellatrix) - ---- - -### 灰色冰川升级 {#gray-glacier} - - - -#### 摘要 {#gray-glacier-summary} - -灰色冰川网络升级将[难度炸弹](/glossary/#difficulty-bomb)推迟了三个月。 这是此次升级中引入的唯一变更,本质上类似于[箭形冰川](#arrow-glacier)和[缪尔冰川](#muir-glacier)升级。 [拜占庭](#byzantium)、[君士坦丁堡](#constantinople)和[伦敦](#london)网络升级也做了类似的变更。 - -- [以太坊基金会博客 - 灰色冰川升级公告](https://blog.ethereum.org/2022/06/16/gray-glacier-announcement/) - - - -
    -
  • EIP-5133将难度炸弹推迟到 2022 年 9 月启动
  • -
- -
- - - -## 2021 年 {#2021} - -### 箭形冰川升级 {#arrow-glacier} - - - -#### 摘要 {#arrow-glacier-summary} - -箭形冰川网络升级将[难度炸弹](/glossary/#difficulty-bomb)推迟了数月。 这是此次升级中引入的唯一变更,本质上类似于[缪尔冰川](#muir-glacier)升级。 [拜占庭](#byzantium)、[君士坦丁堡](#constantinople)和[伦敦](#london)网络升级也做了类似的更改。 - -- [以太坊基金会博客 - 箭形冰川升级公告](https://blog.ethereum.org/2021/11/10/arrow-glacier-announcement/) -- [以太坊牧猫人组织 - 以太坊箭形冰川升级](https://medium.com/ethereum-cat-herders/ethereum-arrow-glacier-upgrade-e8d20fa4c002) - - - -
    -
  • EIP-4345将难度炸弹推迟到 2022 年 6 月启动
  • -
- -
- ---- - -### 天鹰座升级 {#altair} - - - -#### 摘要 {#altair-summary} - -天鹰座升级是计划的第一次[信标链](/roadmap/beacon-chain)升级。 它增加了对“同步委员会”的支持—支持轻客户端,在向合并进展的过程中,增加了对验证者怠惰及可被罚没行为的惩罚。 - -- [阅读天鹰座升级规范](https://github.com/ethereum/consensus-specs/tree/dev/specs/altair) - -#### 有趣的事实! {#altair-fun-fact} - -天鹰座升级是第一个有确切发布时间的重大网络升级。 之前的每一次升级均基于一个已经在工作量证明链上申报过的区块编号,而该链上的区块时间各不相同。 信标链不需要解析工作量证明,而是在一个基于时间、由 32 个 12 秒“时隙”组成的时段系统上运作。在这个系统上,验证者可以提出区块。 这就是为什么我们能准确知晓达到时段 74,240 以及天鹰座升级启动的时间! - -- [出块时间](/developers/docs/blocks/#block-time) - ---- - -### 伦敦升级 {#london} - - - -#### 摘要 {#london-summary} - -伦敦升级引入了 [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559),对交易费市场进行了改革,同时还对燃料费的退款处理方式和[冰河世纪](/glossary/#ice-age)日程进行了修改。 - -- [你是去中心化应用程序的开发者吗? 请务必升级你的程序库和工具。](https://github.com/ethereum/execution-specs/blob/master/network-upgrades/london-ecosystem-readiness.md) -- [请阅读以太坊基金会公告](https://blog.ethereum.org/2021/07/15/london-mainnet-announcement/) -- [请阅读以太坊牧猫人组织的解释说明](https://medium.com/ethereum-cat-herders/london-upgrade-overview-8eccb0041b41) - - - -
    -
  • EIP-1559改善交易费市场
  • -
  • EIP-3198从一个区块返回 BASEFEE
  • -
  • EIP-3529 - 减少用于 EVM 运营的燃料退款
  • -
  • EIP-3541 - 防止部署以 0xEF 开头的合约
  • -
  • EIP-3554将冰河世纪推迟到 2021 年 12 月启动
  • -
- -
- ---- - -### 柏林升级 {#berlin} - - - -#### 摘要 {#berlin-summary} - -柏林升级优化了某些以太坊虚拟机操作的燃料成本,并增加了对多种交易类型的支持。 - -- [请阅读以太坊基金会公告](https://blog.ethereum.org/2021/03/08/ethereum-berlin-upgrade-announcement/) -- [请阅读以太坊牧猫人组织的解释说明](https://medium.com/ethereum-cat-herders/the-berlin-upgrade-overview-2f7ad710eb80) - - - -
    -
  • EIP-2565降低了 ModExp 燃料成本
  • -
  • EIP-2718可以更容易地支持多种交易类型
  • -
  • EIP-2929提高状态访问操作码的燃料成本
  • -
  • EIP-2930增加了可选访问列表
  • -
- -
- - - -## 2020 年 {#2020} - -### 信标链创世块 {#beacon-chain-genesis} - - - -#### 摘要 {#beacon-chain-genesis-summary} - -[信标链](/roadmap/beacon-chain/)需要 16384 个存储了 32 个质押以太币的帐户,以确保安全上线。 这发生于 2020 年 11 月 27 日,意味着信标链在 2020 年 12 月 1 日开始生产区块。 这是实现[以太坊愿景](/roadmap/vision/)的第一步,十分重要。 - -[请阅读以太坊基金会公告](https://blog.ethereum.org/2020/11/27/eth2-quick-update-no-21/) - - - 信标链 - - ---- - -### 已部署质押存款合约 {#staking-deposit-contract} - - - -#### 摘要 {#deposit-contract-summary} - -质押存款合约将[质押](/glossary/#staking)引入以太坊生态系统。 虽然是一个[主网](/glossary/#mainnet)合约,但它直接影响到[信标链](/roadmap/beacon-chain/)的发布时间线,而后者是[以太坊升级](/roadmap/)的重要部分。 - -[请阅读以太坊基金会公告](https://blog.ethereum.org/2020/11/04/eth2-quick-update-no-19/) - - - 质押 - - ---- - -### 缪尔冰川升级 {#muir-glacier} - - - -#### 摘要 {#muir-glacier-summary} - -缪尔冰川分叉使[难度炸弹](/glossary/#difficulty-bomb)延迟。 增加[工作量证明](/developers/docs/consensus-mechanisms/pow/)共识机制的区块难度可能会增加发送交易和使用去中心化应用程序的等待时间,从而降低以太坊的可用性。 - -- [请阅读以太坊基金会公告](https://blog.ethereum.org/2019/12/23/ethereum-muir-glacier-upgrade-announcement/) -- [请阅读以太坊牧猫人组织的解释说明](https://medium.com/ethereum-cat-herders/ethereum-muir-glacier-upgrade-89b8cea5a210) - - - -
    -
  • EIP-2384将难度炸弹再延迟 4,000,000 个区块,大约是 611 天
  • -
- -
- - - -## 2019 年 {#2019} - -### 伊斯坦布尔分叉 {#istanbul} - - - -#### 摘要 {#istanbul-summary} - -伊斯坦布尔分叉: - -- 优化了[以太坊虚拟机](/developers/docs/ethereum-stack/#ethereum-virtual-machine)中特定操作的[燃料](/glossary/#gas)成本。 -- 提高受到拒绝服务攻击后的复原能力。 -- 使基于“零知识简洁非交互式知识论证”和“零知识可扩容透明知识论证”的[二层网络扩容](/developers/docs/scaling/#layer-2-scaling)解决方案具有更佳的性能。 -- 使以太坊和 Zcash 能够互操作。 -- 让合约能够引入更多创造性功能。 - -[请阅读以太坊基金会公告](https://blog.ethereum.org/2019/11/20/ethereum-istanbul-upgrade-announcement/) - - - -
    -
  • EIP-152允许以太坊与 Zcash 等受隐私保护的数字货币一起使用。
  • -
  • EIP-1108以更低廉的加密技术改善燃料成本。
  • -
  • EIP-1344通过添加 CHAINID 操作码,保护以太坊免受重放攻击。
  • -
  • EIP-1884优化基于消耗量的操作码燃料价格。
  • -
  • EIP-2028降低了 CallData 的成本,从而允许更多数据储放入区块中 – 这对 二层扩容很有帮助。
  • -
  • EIP-2200其他操作码的燃料价格变更。
  • -
- -
- ---- - -### 君士坦丁堡分叉 {#constantinople} - - - -#### 摘要 {#constantinople-summary} - -君士坦丁堡分叉: - -- 确保在[实现权益证明](#beacon-chain-genesis)之前,区块链不会冻结。 -- 优化了[以太坊虚拟机](/developers/docs/ethereum-stack/#ethereum-virtual-machine)中特定操作的[燃料](/glossary/#gas)成本。 -- 添加了与尚未创建的地址进行交互的能力。 - -[请阅读以太坊基金会公告](https://blog.ethereum.org/2019/02/22/ethereum-constantinople-st-petersburg-upgrade-announcement/) - - - -
    -
  • EIP-145优化某些链上操作的成本。
  • -
  • EIP-1014允许你与尚未创建的地址互动。
  • -
  • EIP-1052优化某些链上操作的成本。
  • -
  • EIP-1234确保在实现权益证明之前,区块链不会冻结。
  • -
- -
- - - -## 2017 年 {#2017} - -### 拜占庭升级 {#byzantium} - - - -#### 摘要 {#byzantium-summary} - -拜占庭分叉: - -- 将区块[挖矿](/developers/docs/consensus-mechanisms/pow/mining/)奖励从 5 个以太币减少到 3 个以太币。 -- 将[难度炸弹](/glossary/#difficulty-bomb)推迟一年。 -- 增加了调用其他合约而不更改状态的能力。 -- 增加了某些加密方法,以实现[二层网络扩容](/developers/docs/scaling/#layer-2-scaling)。 - -[请阅读以太坊基金会公告](https://blog.ethereum.org/2017/10/12/byzantium-hf-announcement/) - - - -
    -
  • EIP-140添加 REVERT 操作码。
  • -
  • EIP-658在交易收据中添加状态字段,以指示成功或失败。
  • -
  • EIP-196增加了椭圆曲线和标量乘法以允许 ZK-Snarks
  • -
  • EIP-197增加了椭圆曲线和标量乘法以允许 ZK-Snarks
  • -
  • EIP-198启用 RSA 签名验证。
  • -
  • EIP-211添加了对可变长度返回值的支持。
  • -
  • EIP-214添加 STATICCALL 操作码,允许对其他合约进行非状态改变调用。
  • -
  • EIP-100更改难度调整公式。
  • -
  • EIP-649难度炸弹推迟 1 年启动,并将区块奖励从 5 个以太币减少到 3 个以太币。
  • -
- -
- - - -## 2016 年 {#2016} - -### Spurious Dragon {#spurious-dragon} - - - -#### 摘要 {#spurious-dragon-summary} - -伪龙分叉是对拒绝服务 (DoS) 网络攻击(2016 年 9 月/10 月)的第二个响应,包括: - -- 调整操作码价格,以防网络将来再受攻击。 -- 启用区块链状态的“区块链减重”。 -- 增加重放攻击保护。 - -[请阅读以太坊基金会公告](https://blog.ethereum.org/2016/11/18/hard-fork-no-4-spurious-dragon/) - - - -
    -
  • EIP-155防止在一条以太坊链上的交易被重复广播到另一条链,例如测试网交易在主以太坊链上重放。
  • -
  • EIP-160调整 EXP 操作码的价格 – 使通过计算成本高昂的合约操作来降低网络速度变得更加困难。
  • -
  • EIP-161允许删除通过 DOS 攻击产生的空帐户。
  • -
  • EIP-170将区块链上合约可达到的最大代码大小改为 24576 字节。
  • -
- -
- ---- - -### 橘子口哨分叉 {#tangerine-whistle} - - - -#### 摘要 {#tangerine-whistle-summary} - -橘子口哨分叉是对拒绝服务 (DoS) 网络攻击(2016 年 9 月/10 月)的第一个响应,包括: - -- 解决与作价低估的操作代码有关的紧急网络健康问题。 - -[请阅读以太坊基金会公告](https://blog.ethereum.org/2016/10/18/faq-upcoming-ethereum-hard-fork/) - - - -
    -
  • EIP-150增加可用于垃圾邮件攻击的操作码的燃料成本。
  • -
  • EIP-158通过移除大量空帐户来减小状态大小。由于早期版本的以太坊协议中存在缺陷,这些帐户以非常低的成本置于相应状态下。
  • -
- -
- ---- - -### 去中心化自治组织分叉 {#dao-fork} - - - -#### 摘要 {#dao-fork-summary} - -去中心化自治组织分叉是为了响应 [2016 DAO 攻击](https://www.coindesk.com/learn/understanding-the-dao-attack/),当时一个不安全的[去中心化自治组织](/glossary/#dao)合约被黑客盗走了超过 360 万个以太币。 此分叉将资金从有问题的合约转移到一个[新合约](https://etherscan.io/address/0xbf4ed7b27f1d666546e30d74d50d173d20bca754),新合约只有一个功能:提款。 任何损失了资金的人都可以在他们的钱包中提取以太币,每 100 个 DAO 代币 1 个以太币。 - -此操作是由以太坊社区投票决定的。 所有以太币持有者都能通过[投票平台](https://web.archive.org/web/20170620030820/http://v1.carbonvote.com/)上的交易进行投票。 分叉的决定获得了 85% 以上的投票。 - -一些矿工拒绝分叉,因为那次 DAO 事件并不是协议中的缺陷。 他们之后组建了[以太坊经典](https://ethereumclassic.org/)。 - -[请阅读以太坊基金会公告](https://blog.ethereum.org/2016/07/20/hard-fork-completed/) - ---- - -### 家园分叉 {#homestead} - - - -#### 摘要 {#homestead-summary} - -家园分叉展望未来, 包括若干协议修改和联网变更,使以太坊能够进一步进行网络升级。 - -[请阅读以太坊基金会公告](https://blog.ethereum.org/2016/02/29/homestead-release/) - - - -
    -
  • EIP-2对合约创建过程进行编辑。
  • -
  • EIP-7添加新操作码:DELEGATECALL
  • -
  • EIP-8引入 devp2p 向前兼容性要求
  • -
- -
- - - -## 2015 年 {#2015} - -### 边境解冻分叉 {#frontier-thawing} - - - -#### 摘要 {#frontier-thawing-summary} - -边境解冻分叉提高了每个[区块](/glossary/#block) 5,000 单位[燃料](/glossary/#gas)的限制,并将默认燃料价格设为 51 [gwei](/glossary/#gwei)。 这样便能进行交易 - 交易需要 21,000 单位燃料。 而引入[难度炸弹](/glossary/#difficulty-bomb)是为了确保未来硬分叉到[权益证明](/glossary/#pos)。 - -- [请阅读以太坊基金会公告](https://blog.ethereum.org/2015/08/04/the-thawing-frontier/) -- [阅读以太坊协议更新 1](https://blog.ethereum.org/2015/08/04/ethereum-protocol-update-1/) - ---- - -### 边境 {#frontier} - - - -#### 摘要 {#frontier-summary} - -边境是以太坊最初的版本,但在上面能做的事情很少。 该版本在奥利匹克测试阶段成功完成之后推出。 它面向的是技术用户,特别是开发者。 [区块](/glossary/#block)有 5,000 单位的[燃料](/glossary/#gas)限制。 此“解冻”期使矿工能够开始操作,并使早期采用者能够有足够的时间来安装客户端。 - -[请阅读以太坊基金会公告](https://blog.ethereum.org/2015/07/22/frontier-is-coming-what-to-expect-and-how-to-prepare/) - - - -## 2014 年 {#2014} - -### 以太币销售 {#ether-sale} - - - -以太币的预售期为 42 天, 可以使用比特币进行购买。 - -[请阅读以太坊基金会公告](https://blog.ethereum.org/2014/07/22/launching-the-ether-sale/) - ---- - -### 黄皮书已发布 {#yellowpaper} - - - -Gavin Wood 博士撰写的黄皮书,关于以太坊协议的技术定义。 - -[查看黄皮书](https://github.com/ethereum/yellowpaper) - - - -## 2013 年 {#2013} - -### 白皮书已发布 {#whitepaper} - - - -以太坊项目在 2015 年启动。但早在 2013 年,以太坊创始人 Vitalik Buterin 就发表了这一介绍性文章。 - - - 白皮书 - diff --git a/src/content/translations/zh/nft/index.md b/src/content/translations/zh/nft/index.md deleted file mode 100644 index d7593279775..00000000000 --- a/src/content/translations/zh/nft/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: 非同质化代币 (NFT) -description: 以太坊上的非同质化代币简介 -lang: zh -template: use-cases -emoji: ":frame_with_picture:" -sidebarDepth: 2 -image: ../../../../assets/infrastructure_transparent.png -alt: 通过全息图显示的以太币徽标。 -summaryPoint1: 一种用以太坊资产表示任何独特事物的方法。 -summaryPoint2: 非同质化代币正在前所未有地向内容创作人赋予更多权利。 -summaryPoint3: 由以太坊区块链上的智能合约提供支持 ---- - -## 什么是非同质化代币? {#what-are-nfts} - -每个非同质化代币都是独一无二的。 每个非同质化代币都有不同的属性(非同质化),并且可证明其稀缺性。 这与 ERC-20 等代币不同,同一 ERC-20 代币集合中的所有代币都是完全相同的,拥有同样的属性(“同质化”)。 你无需关心钱包中的具体某一张钞票,因为它们完全相同并具有同样的价值。 然而,你*需要*关心你拥有具体哪一个非同质化代币,因为它们都有区分于其他非同质化代币的独特属性(“非同质化”)。 - -每个非同质化代币的独特性使其能够实现艺术品、收藏品甚至房地产等资产的代币化,一个特定的独特非同质化代币可以代表一个特定的独特实体或数字物品。 资产所有权由以太坊区块链保护 - 任何人都不能修改所有权记录或复制/粘贴新的非同质化代币。 - - - -## 资产互联网 {#internet-of-assets} - -非同质化代币和以太坊解决了当前互联网上存在的一些问题。 随着一切都变得更加数字化,我们需要以不受中心化机构控制的方式,复制实体物品的属性, 如稀缺性、独特性和所有权证明。 例如,通过非同质化代币,你可以拥有不属于某个公司特定音乐应用的音乐 mp3,或者拥有一个可以出售或交换但不会被平台提供商任意收回的社交媒体账号。 - -非同质化代币互联网与我们今天大多数人使用的互联网的对比如下…… - -### 对比 {#nft-comparison} - -| 非同质化代币互联网 | 当今互联网 | -| --------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | -| 你拥有自己的数字资产! 只有你可以出售或交换它们。 | 你从某个组织租借到资产。 | -| 非同质化代币在数字世界里是独一无二的,没有两个相同的非同质化代币。 | 物体的副本通常无法与原件区分开。 | -| 非同质化代币的所有权储存在区块链上,任何人都可以验证。 | 数字物品的所有权记录存储在由机构控制的服务器上 - 你必须相信他们的话。 | -| 非同质化代币是以太坊上的智能合约。 这意味人们很容易在以太坊上的其他智能合约或者应用中使用它。 | 拥有数字物品的公司通常需要自己的“围墙花园(封闭平台)”基础设施。 | -| 内容创建人可以在任何地方出售他们的作品,并可以进入全球市场。 | 创建人依靠所用平台的基础设施和分布。 这通常受到使用条款和地理限制的制约。 | -| 非同质化代币创建人可以保留自己作品的所有权,并直接在非同质化代币合约中设置版税。 | 音乐媒体服务等平台扣留大部分销售利润。 | - -## 非同质化代币的工作原理是什么? {#how-nfts-work} - -和在以太坊上发行的任何代币一样,非同质化代币也是由智能合约发行的。 智能合约符合几种非同质化代币标准中的一种(通常是 ERC-721 或 ERC-1155),这些标准定义了合约具有的功能。 合约可以创建(“铸造”)非同质化代币并将它们分配给特定所有者。 在合约中,通过将特定非同质化代币映射到特定地址来定义所有权。 非同质化代币有一个 ID,并通常有与之相关联的元数据,这使其成为独一无二的特定代币。 - -当有人创建或铸造一个非同质化代币时,他们实际上是在智能合约中执行一个函数,将特定非同质化代币分配到其地址。 这一信息储存在合约的存储空间中,也是区块链的一部分。 合约创建人可以在合约中添加额外逻辑,例如限制总供应量或定义每次转让代币时需支付给创建人的版税。 - -## 非同质化代币有哪些用武之地? {#nft-use-cases} - -非同质化代币可以用于多种用途,包括: - -- 证明你参加过某个活动 -- 证明你完成了某个课程 -- 在游戏中拥有的物品 -- 数字艺术 -- 将实体资产代币化 -- 证明你的线上身份 -- 限制内容访问权限 -- 发放凭据 -- 分布式互联网域名 -- DeFi 抵押品 - -假设你是一位艺术家,希望使用非同质化代币分享自己的作品,同时不想失去对作品的控制,也不想中间商分走利润。 你可以创建一个新合约,指定非同质化代币的数量、属性和特定艺术品的链接。 作为艺术家,你可以在智能合约中设置你应该收取的版税(例如,每次转让非同质化代币时,将销售价格的 5% 转到合约所有人)。 因为你拥有部署合约的钱包,所以你可以始终证明是你是非同质化代币的创建人。 你的买家也可以轻松地证明他们拥有你的系列艺术品中的一个真正的非同质化代币,因为他们的钱包地址与你的智能合约中的一个代币相关联。 他们可以在整个以太坊生态系统中使用非同质化代币,因为其真实性能得到保证。 - -再以体育活动的门票为例。 就像活动组织方可以选择出售多少门票一样,非同质化代币的创建人可以决定创建多少份复制品。 有时候,这些是完全相同的复制品,如 5000 张普通门票。 有时候,会制作一些非常相似但略有不同的门票,如指定座位的门票。 这些门票可以在用户之间点对点买卖,而无需支付票务处理费用,买家也可以通过检查合约地址来确保门票的真实性。 - -在 ethereum.org 上,非同质化代币被用来证明人们对我们的 GitHub 库做出了贡献或者参加了电话会议,我们甚至拥有自己的非同质化代币域名。 如果你对 ethereum.org 做了贡献,即可认领出勤证明协议非同质化代币。 一些数字货币相关活动使用 POAP 作为门票。 [关于贡献的更多信息](/contributing/#poap)。 - -![ethereum.org 出勤证明协议](./poap.png) - -本网站也有一个由非同质化代币支持的备用域名:**ethereum.eth**。 我们的 `.org` 地址由域名系统 (DNS) 提供商集中管理,而 ethereum`.eth` 则通过以太坊域名服务 (ENS) 在以太坊上注册。 此域名由我们所有和管理。 [查看我们的 ENS 记录](https://app.ens.domains/name/ethereum.eth) - -[关于以太坊域名服务的更多信息](https://app.ens.domains) - - - -### 非同质化代币安全性 {#nft-security} - -以太坊的安全性来自权益证明。 该机制旨在通过经济手段遏制恶意行为,使以太坊防篡改。 这使得非同质化代币成为可能。 一旦包含你的非同质化代币交易的区块最终确定,攻击者需要花费数百万个以太币才能更改它。 运行以太坊软件的任何人都能立即检测到对非同质化代币的不诚实篡改,并且不良行为者将受到经济处罚并被驱逐出网络。 - -非同质化代币的安全问题通常与网络钓鱼诈骗、智能合约漏洞或用户错误(例如无意中暴露私钥)有关,因此非同质化代币所有者务必保障钱包的安全性。 - - - 有关安全性的更多信息 - - -## 延伸阅读 {#further-reading} - -- [非同质化代币初学者指南](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) - _Linda Xie,2020 年 1 月_ -- [EtherscanNFT 跟踪器](https://etherscan.io/nft-top-contracts) -- [ERC-721 代币标准](/developers/docs/standards/tokens/erc-721/) -- [ERC-1155 代币标准](/developers/docs/standards/tokens/erc-1155/) - - - - diff --git a/src/content/translations/zh/refi/index.md b/src/content/translations/zh/refi/index.md deleted file mode 100644 index 4ec7e5277c3..00000000000 --- a/src/content/translations/zh/refi/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: 再生金融 (ReFi) -description: 再生金融及主流用例概览。 -lang: zh -template: use-cases -emoji: ":recycle:" -sidebarDepth: 2 -image: ../../../../assets/future_transparent.png -alt: "" -summaryPoint1: 一种构建于再生原则之上的替代经济体系 -summaryPoint2: 一次利用以太坊解决全球协作危机(如气候变化)的尝试 -summaryPoint3: 一种可以大幅扩展生态效益资产的工具,例如经过验证的碳信用 ---- - -## 什么是再生金融? {#what-is-refi} - -**再生金融 (ReFi) **是一套建立在区块链之上的工具和理念,其目的是创建再生型经济,而不是攫取型或剥削型经济。 最终,攫取型体系在耗尽所有可用资源后崩溃;没有再生机制,体系缺乏恢复能力。 再生金融的运作基于一个假设,即货币价值的创造必须同向我们的星球和社区不可持续地攫取资源脱钩。 - -然而,再生金融旨在通过建立再生循环来解决环境、公共或社会问题。 这些体系为参与者创造价值,同时使生态系统和社区受益。 - -再生金融的基础之一是由 Capital Institute(资本研究院)的 John Fullerton 开创的再生经济学概念。 他提出了[ 8 项相互关联的原则,](https://capitalinstitute.org/8-principles-regenerative-economy/)作为保持体系健康的基础: - -![8 项相互关联的原则](../../assets/use-cases/refi-regenerative-economy-diagram.png) - -再生金融项目借助[智能合约](/developers/docs/smart-contracts/)和[去中心化金融 (DeFi)](/defi/) 应用程序来实现这些原则,以激励再生行为,例如恢复退化的生态系统,推动气候变化和生物多样性丧失等全球问题上的大规模合作。 - -再生金融还与[去中心化科学 (DeSci)](/desci/) 重叠,后者使用以太坊作为资助、创作、审查、增加、存储和传播科学知识的平台。 去中心化科学工具可用于制定可验证的标准和实践,以实施和监测再生活动,如植树,清理海洋中的塑料或恢复退化的生态系统。 - -## 碳信用代币化 {#tokenization-of-carbon-credits} - -**[自愿碳市场 (VCM)](https://climatefocus.com/so-what-voluntary-carbon-market-exactly/)** 是一种对碳排放产生积极影响的项目融资机制,可以减少持续进行的排放,也可以清理已经排放到大气中的温室气体。 这些项目在经过验证后会获得一种称为“碳信用”的资产,碳信用可以出售给希望支持气候行动的个人和组织。 - -除自愿碳市场外,还有几个政府批准的碳市场(“合规市场”),旨在于某个司法管辖区(例如国家或地区)内通过法律或法规建立碳价格,控制要分发的许可证的供应。 合规市场激励其司法管辖区内的污染者减少排放,但无法清理已经排放的温室气体。 - -尽管近几十年来一直在发展,但自愿碳市场一直受到各种问题的困扰: - -1. 高度分散的流动性 -2. 不透明的交易机制 -3. 高额费用 -4. 极慢的交易速度 -5. 缺乏可扩展性 - -从自愿碳市场过渡到基于区块链的新型**数字碳市场 (DCM) **也许是一次升级现有碳信用验证、交易和使用技术的机会。 区块链允许可公开验证的数据,为广泛的用户提供访问权限并拥有更多流动性。 - -再生金融项目利用区块链技术来缓解传统市场中的诸多问题: - -- **流动性集中在少数几个可以由任何人自由交易的流动性池中。** 大型组织和个人用户都可以在不需要手动搜索卖家/买家、支付参与费用或事先注册的情况下使用这些流动性池。 -- **所有交易都记录在公共区块链上**。 一旦碳信用进入数字碳市场,由于交易活动引起的每个碳信用的路径始终都是有迹可查。 -- **交易的速度几乎是即时的。** 通过传统市场获得大量碳信用可能需要数天或数周,但在数字碳市场上仅需要几秒钟。 -- **交易活动在没有中介的情况下进行**,无需支付高额费用。 根据一家分析公司提供的数据,数字碳信用[相对于传统碳信用可以节省 62% 的成本](https://www.klimadao.finance/blog/klimadao-analysis-of-the-base-carbon-tonne)。 -- **数字碳市场具有可扩展性**,可以满足个人和跨国公司的需求。 - -### 数字碳市场的关键构成部分 {#key-components-dcm} - -四大主要版块构成了数字碳市场的当前格局: - -1. 诸如 [Verra](https://verra.org/project/vcs-program/registry-system/) 和 [Gold Standard](https://www.goldstandard.org/) 这类注册机构确保创建碳信用的项目是可靠的。 它们还运营着数字碳信用的源头数据库,碳信用可以在数据库中转移或使用(清退)。 - -新一轮的创新项目正在区块链上构建,试图打破该领域的现有局面。 - -2. 碳桥又称 代币转换器,它提供了一种技术,可以表示碳信用,或将碳信用从传统注册机构转移到数字碳市场。 重要的碳桥示例包括 [Toucan 协议](https://toucan.earth/)、[C3](https://c3.app/) 以及 [Moss.Earth](https://moss.earth/)。 -3. 综合服务向最终用户提供避免和/或消除碳排放的信用额度,这样他们就可以认领信用额度带来的环境效益,并与全世界分享他们对气候行动的支持。 - -像 [Klima Infinity](https://www.klimadao.finance/infinity) 和 [Senken](https://senken.io/) 等一些服务提供由第三方依据已制定的标准(如 Verra)开发和发布的各种项目;而另一些服务(如 [Nori](https://nori.com/))仅提供依据它们自己的碳信用标准开发和发布的特定项目,这些项目有自己的专用市场。 - -4. 有助于碳市场整条供应链的影响和效率提升的底层保障和基础设施。 [KlimaDAO](http://klimadao.finance/) 将流动性作为公共物品提供(允许任何人以透明的价格购买或出售碳信用),通过奖励激励碳市场吞吐量的增加和碳信用的清退,并提供用户友好的可互操作工具,以访问有关各种代币化碳信用的数据以及获取和清退这些碳信用。 - -## 再生金融在碳市场以外的应用 {#refi-beyond} - -尽管目前普遍重点强调碳市场,特别是该领域内从自愿碳市场到数字碳市场的过渡,但“再生金融”一词并不严格局限于碳。 除碳信用以外,还可以开发和代币化其他环保资产,这意味着其他负外部效应也可以在未来经济体系的基础层内定价。 此外,这种经济模式的再生方面可以应用于其他领域,例如通过 [Gitcoin](https://gitcoin.co/) 等二次方融资平台为公共物品提供资金。 基于开放参与和资源公平分配理念的组织让每个人都能够将资金输送到开源软件项目以及教育、环境和社区驱动的项目。 - -通过将资本流动方向从攫取型活动转向再生项目,提供社会、环境或公共效益的项目和公司以及可能无法从传统金融中获得资金的项目和公司,可以顺利启动并更快、更容易地为社会产生正外部效应。 过渡到这种融资模式也打开了通向更具包容性的经济体系的大门,让所有人口结构的人都可以成为积极的参与者,而不仅仅是被动的观察者。 再生金融提出了以太坊的愿景,即作为一种机制,协调行动,应对我们人类和地球上所有生命面临的生存挑战,作为新经济范式的基础层,为未来数百年创造一个更具包容性和可持续性的未来。 - -## 关于再生金融的延伸阅读 - -- [碳货币及其在经济体系中的地位的高层概览](https://www.klimadao.finance/blog/the-vision-of-a-carbon-currency) -- [小说《The Ministry for the Future》(未来部)描写了一种锚定碳的货币在应对气候变化中发挥的作用。](https://en.wikipedia.org/wiki/The_Ministry_for_the_Future) -- [扩大自愿碳市场工作组 (TSVCM) 的详细报告](https://www.iif.com/Portals/1/Files/TSVCM_Report.pdf) -- [CoinMarketCap 术语表中有关再生金融的条目,由 Kevin Owocki 和 Evan Miyazono 撰写](https://coinmarketcap.com/alexandria/glossary/regenerative-finance-refi) diff --git a/src/content/translations/zh/roadmap/beacon-chain/index.md b/src/content/translations/zh/roadmap/beacon-chain/index.md deleted file mode 100644 index d3c07be66a8..00000000000 --- a/src/content/translations/zh/roadmap/beacon-chain/index.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: 信标链 -description: 了解信标链 - 引入权益证明的以太坊升级。 -lang: zh -template: upgrade -image: ../../../../../assets/upgrades/core.png -summaryPoint1: 信标链为以太坊生态系统引入了权益证明。 -summaryPoint2: 信标链于 2022 年 9 月与原有的以太坊工作量证明链合并。 -summaryPoint3: 信标链引入的共识逻辑和区块广播协议目前保护着以太坊。 ---- - - - 信标链于 2020 年 12 月 1 日上线,并且在 2022 年 9 月 15 日完成合并升级,将权益证明正式确定为太坊的共识机制。 - - -## 什么是信标链? {#what-is-the-beacon-chain} - -信标链是 2020 年推出的原始权益证明区块链的名称。 它的创立是为了在以太坊主网上运行权益证明共识逻辑之前确保该逻辑是可靠且可持续的。 因此,它与原有的工作量证明以太坊一起运行。 信标链是一个由“空”区块组成的链,但在以太坊上停止工作量证明并启动权益证明,需要指示信标链接受来自执行客户端的交易数据,将它们打包到区块,再将区块组织到一条运行权益证明共识机制的区块链上。 与此同时,原有的以太坊客户端停止挖矿、区块传播及旧的共识逻辑,并将这一切转交给信标链。 这一事件称为[合并](/roadmap/merge/)。 在合并发生后,就不再有两个区块链。 相反,只有一个权益证明以太坊,现在每个节点需要两个不同的客户端。 信标链现在是共识层,一个处理区块消息和共识逻辑的共识客户端的点对点网络,而原始客户端形成执行层,负责传播消息和执行交易,以及管理以太坊的状态。 这两层可以使用引擎应用程序接口相互通信。 - -## 信标链有什么作用? {#what-does-the-beacon-chain-do} - -信标链是在以太坊[质押人](/staking/)开始验证真实的以太坊区块之前管理和协调以太坊质押人网络的帐户账本的名称。 它不处理交易或智能合约交互,因为这些任务在执行层完成。 信标链负责处理区块和证明、运行分叉选择算法以及管理奖励和惩罚等。 要了解更多内容,请参阅我们的[节点架构页面](/developers/docs/nodes-and-clients/node-architecture/#node-comparison)。 - -## 信标链的影响 {#beacon-chain-features} - -### 质押介绍 {#introducing-staking} - -信标链将[权益证明机制](/developers/docs/consensus-mechanisms/pos/)引入以太坊。 这保证了以太坊的安全,并在此过程中让验证者获得更多以太币。 在实际操作中,质押将需要质押以太币,以激活验证者软件。 作为质押人,你运行该软件并在链中创建和验证新区块。 - -质押的作用与曾经的[挖矿](/developers/docs/mining/)类似,但有许多不同之处。 挖矿的前期支出庞大,需要投入强大的硬件和消耗大量能源,从而产生规模经济并促进集中化。 挖矿也没有提出任何将资产锁定作为抵押品的要求,这限制了被攻击后协议惩罚不良行为者的能力。 - -和工作量证明相比,过渡到权益证明让以太坊的安全性与去中心化得到显著提升。 参与该网络的人越多,网络去中心化程度越高,面临攻击时也越安全。 - -采用权益证明共识机制为[我们现在拥有的安全、环保和可扩展的以太坊](/roadmap/vision/)奠定了基础。 - - - 如果你有兴趣成为验证者并帮助保护以太坊,请点击此处了解更多关于质押的信息。 - - -### 设置分片 {#setting-up-for-sharding} - -在信标链与最初的以太坊主网合并后,以太坊社区开始寻求扩展该网络。 - -权益证明的优势是,在任何给定时间都有全部已批准的区块生产者的记录,每个区块生产者都质押了以太币。 这个记录不但为分开治理奠定了基础,还可靠地划分了具体的网络责任。 - -这种责任与工作量证明形成对比,在工作量证明中,矿工对网络没有义务,可以立即停止挖矿并永久关闭其节点而不会受到任何影响。 而且,也没有已知区块提议者的记录,并且没有可靠的方法安全地划分网络责任。 - -[有关分片的更多信息](/roadmap/danksharding/) - -## 升级间的关系 {#relationship-between-upgrades} - -以太坊的所有升级都存在一些关联。 所以我们来回顾一下信标链对其他升级的影响。 - -### 信标链和合并 {#merge-and-beacon-chain} - -最初,信标链与以太坊主网相互独立,但两者在 2022 合并。 - - - 合并 - - -### 分片和信标链 {#shards-and-beacon-chain} - -只有在已建立权益证明共识机制的情况下,分片才能安全进入以太坊生态系统。 信标链引入了质押,它与主网“合并”,为分片铺平了道路,以帮助进一步扩展以太坊。 - - - 分片链 - - -## 延伸阅读 - -- [有关以太坊未来升级的更多信息](/roadmap/vision) -- [有关节点架构的更多信息](/developers/docs/nodes-and-clients/node-architecture) -- [更多关于关权益证明的信息](/developers/docs/consensus-mechanisms/pos) diff --git a/src/content/translations/zh/roadmap/future-proofing/index.md b/src/content/translations/zh/roadmap/future-proofing/index.md deleted file mode 100644 index b9e032d0da4..00000000000 --- a/src/content/translations/zh/roadmap/future-proofing/index.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: 打造面向未来的以太坊 -description: 无论未来会发生什么,这些升级都可以增强以太坊,使其成为可以适应未来需求的有韧性、去中心化的基础层。 -lang: zh -image: ../../../../../assets/roadmap/roadmap-future.png -alt: "以太坊路线图" -template: roadmap ---- - -路线图的部分内容并不是对于以太坊的短期扩展或保护而言必不可少,但可以为以太坊长期稳定性和可靠性奠定基础。 - -## 量子抗性 {#quantum-resistance} - -当量子计算成为现实时,目前一些用于保护以太坊安全的加密技术将会受到威胁。 尽管量子计算机可能还需要几十年才能对现代加密技术构成真正的威胁,但以太坊的构建方式要保证以太坊在未来几个世纪内都保持安全。 这意味着要尽快使[以太坊具备量子抗性](https://consensys.net/blog/developers/how-will-quantum-supremacy-affect-blockchain/)。 - -以太坊开发者面临的挑战是,当前的权益证明协议依赖一种非常高效的签名方案(即 BLS)对有效区块的投票进行聚合。 这种签名方案会被量子计算机破解,但是具有量子抗性的替代方案没有那么高效。 - -在以太坊的多个地方使用的、用于生成密码学密钥的[“KZG”承诺方案](/roadmap/danksharding/#what-is-kzg)面临量子计算时存在漏洞。 目前,这个问题是通过“可信设置”来规避的,即多个用户生成的随机性无法被量子计算机逆向工程。 然而,理想的解决方案就是采用量子安全加密技术。 可以替代 BLS 方案的高效方法主要有两种:[基于 STARK ](https://hackmd.io/@vbuterin/stark_aggregation)和[基于点阵的](https://medium.com/asecuritysite-when-bob-met-alice/so-what-is-lattice-encryption-326ac66e3175)签名方案。 这些方法仍在研究和原型开发阶段。 - - 阅读了解 KZG 和可信设置的相关内容。 - -## 简化以太坊,提高以太坊效率 {#simpler-more-efficient-ethereum} - -复杂性会导致出现可以被攻击者利用的错误或漏洞。 因此,路线图的一部分是简化以太坊,并删除那些在各种升级后留存但不再需要或可以改进的代码。 更精简、更简单的代码库更容易被开发者维护和推理。 - -我们将对[以太坊虚拟机 (EVM)](/developers/docs/evm)进行多项更新,使其更简单和更高效。 其中包括[删除 SELFDESTRUCT 操作码](https://hackmd.io/@vbuterin/selfdestruct),该命令很少使用、不再需要,并且在某些情况下使用可能会带来危险,特别是当与以太坊存储模型的其他未来升级结合时。 以太坊客户端还支持一些旧的交易类型,现在可以完全将其删除。 可以改进计算燃料的方式,并引入更高效的算法来支持一些密码操作的运算。 - -同样,现有以太坊客户端的其他部分也可以进行更新。 例如,目前执行和共识客户端使用不同类型的数据压缩。 当整个网络统一压缩方案时,客户端之间共享数据将变得更加简单直观。 - -## 当前进展 {#current-progress} - -为防止以太坊未来被淘汰而需要进行的大部分升级仍处于研究阶段,可能需要数年时间才能实现。 删除 SELF-DESTRUCT 指令和统一执行和共识客户端中使用的压缩方案等升级,可能会比抗量子加密技术更早实现。 - -**延伸阅读** - -- [燃料](/developers/docs/gas) -- [EVM 以太坊虚拟机](/developers/docs/evm) -- [数据结构](/developers/docs/data-structures-and-encoding) diff --git a/src/content/translations/zh/roadmap/index.md b/src/content/translations/zh/roadmap/index.md deleted file mode 100644 index 13e7eb00b38..00000000000 --- a/src/content/translations/zh/roadmap/index.md +++ /dev/null @@ -1,117 +0,0 @@ ---- -title: 以太坊路线图 -description: 提高以太坊可扩展性、安全性和可持续性的路径。 -lang: zh -template: roadmap -image: ../../../../assets/roadmap/roadmap-main.png -alt: "以太坊路线图" -summaryPoints: -buttons: - - label: 进一步升级 - toId: 即将发生什么变化 - - label: 以往升级 - to: /history/ - variant: 简要 ---- - -以太坊已经是一个强大的全球协调平台,但它仍在不断改进。 我们制定的一套雄心勃勃的改进措施将使以太坊从目前的形式升级为一个可以完全扩展、具有最大弹性的平台。 以太坊路线图呈现了这些升级。 - -**若要了解以太坊之前的升级,请访问我们的[历史记录](/history/)页面** - -## 以太坊将发生什么变化? {#what-changes-are-coming} - -以太坊路线图概述了以太坊未来将对协议作出的具体改进。 总的来说,该路线图将给以太坊用户带来以下好处: - - - - - - - - -## 为什么以太坊需要一份路线图? {#why-does-ethereum-need-a-roadmap} - -以太坊定期升级,以提高其可扩展性、安全性或可持续性。 以太坊的核心优势之一是随着研究和开发产生的新的思想而不断进化。 这种适应性使以太坊得以灵活应对新出现的挑战,紧跟最先进的技术突破。 - - - -因为协议的技术性很强,所以路线图主要是研究人员和开发人员多年来工作的结果,但任何有意向的人都可以参与进来。 相关想法往往是在 [ethresear.ch](https://ethresearch.ch/)、[以太坊魔术师](https://www.figma.com/exit?url=https%3A%2F%2Fethereum-magicians.org%2F) 等论坛或以太币研发 Discord 服务器讨论时产生的。 它们可能是对发现的新漏洞的反馈、来自位于应用层的组织(如去中心化应用和交易所)的建议或对于最终用户面临的问题(例如成本或交易速度)的建议。 这些想法一旦成熟,就可以作为 [以太坊改进建议](https://eips.ethereum.org/) 提出。 整个过程都是公开进行的,社区的任何人可以随时发表意见。 - -[关于以太坊治理的更多信息](/governance/) - - - - -

ETH2 是什么?

- -

在以太坊转用权益证明之前,“Eth2” 一词通常用于描述以太坊的未来,但它已被淘汰,被更加准确的术语取代。它最初被用来区分转用权益证明之前和之后的以太坊网络,有时被用来指不同的以太坊客户端(执行客户端有时被称为 ETH1 客户端,共识客户端有时被称为 ETH2 客户端)。

- -
- -## 以太坊的路线图是否会随着时间的推移而改变? {#will-ethereums-roadmap-change-over-time} - -是的,几乎肯定会。 路线图是目前的以太坊升级计划,涵盖近期计划和未来计划。 我们预计路线图会随着新的信息和技术的出现而改变。 - -我们将以太坊路线图视为改进以太坊的一整套计划;这是研究人员和开发人员对以太坊最佳发展道路的最佳假设。 - -## 路线图将何时完成? {#when-will-the-roadmap-be-finished} - -以太坊将在今后 6 个月内实施一些升级(例如质押提款) - 其他升级的优先性较低,可能在今后 5-10 年内不会实施(例如量子计算抗性)。 我们很难预测每次升级的确切完成时间,因为许多路线图项目是以不同速度平行进行和开发的。 随着时间的推移,升级的紧迫性也可能由于外部因素而发生变化(例如,量子计算机的性能和可用性突然飞跃可能会使抗量子计算加密技术的紧迫性提高)。 - -思考以太坊发展的一种方法是类比生物进化。 虽然随着网络的性能、可拓展性和安全性越来越强,需要对协议进行的更改越来越少,但一个能够适应新挑战和保持健康的网络仍然比抗拒变化的网络更有可能成功。 - -## 升级时我要做什么吗? {#do-i-have-to-do-anything-when-there-is-an-upgrade} - -升级往往不会对最终用户产生影响,除非提供更好的用户体验、更安全的协议以及更多与以太坊互动的选项。 最终用户既不需要积极参与升级,也不需要采取任何行动来保护资产。 节点运营商需要更新其客户端以准备升级。 某些升级可能导致应用开发者更改。 例如,历史数据到期升级可能需要应用开发者从新的来源获取历史数据。 - -## Verge、Splurge 等升级是什么? {#what-about-the-verge-splurge-etc} - -[Vitalik Buterin 提出了以太坊线路图](https://twitter.com/VitalikButerin/status/1588669782471368704)的愿景,根据对以太坊架构的影响,该路线图将升级分为几个类别。 这包括: - -- 合并:涉及从工作量证明转为权益证明的升级 -- Surge:涉及通过卷叠和数据分片进行扩展的升级 -- Scourge:涉及抗审查性、去中心化和最大可提取价值的协议风险的升级 -- Verge:涉及更轻松地验证区块的升级 -- Purge:涉及降低运营节点的计算成本和简化协议的升级 -- Splurge:不属于上述类别的其他升级 - -我们决定不使用这些术语,因为我们希望使用更简单、更以用户为中心的模型。 虽然我们使用是以用户为中心的语言,但我们的愿景仍与 Vitalik 提出的愿景相同。 - -## 什么是分片? {#what-about-sharding} - -分片是指将以太坊区块链分割开来,让一部分验证者只负责全部数据的一小部分。 这最初是用于扩展以太坊的一种方式。 然而,二层卷叠的发展速度远远快于预期,已经实现了大量扩展,并且在 Proto-Danksharding 实施后还将实现比现在多很多的扩展。 这意味着不再需要"分片链",因此已将其从路线图中删除。 - -## 正在寻求什么特定技术升级? {#looking-for-specific-technical-upgrades} - -- [Danksharding](/roadmap/danksharding) - Danksharding 通过向以太坊区块添加数据块,为用户大大降低二层卷叠成本。 -- [质押提现](/staking/withdrawals) - 上海/卡佩拉升级启用了以太坊质押提款,允许用户解锁质押的以太币。 -- [单时隙确定性](/roadmap/single-slot-finality)-让区块可以在同一时隙内提议和最终确定,无需等待 15 分钟。 这提高了应用的便利性,大大增加了攻击难度。 -- [提议者-构建者分离方案](/roadmap/pbs) - 将区块构建和区块提议任务分给不同验证者,为以太坊达成共识提供了一种更公平、更抗审查和更高效的方式。 -- [秘密领袖选举](/roadmap/secret-leader-election) - 采用巧妙的加密技术可以确保当前区块提议者的身份不被公开,从而保护他们免受某些类型的攻击。 -- [帐户抽象](/roadmap/account-abstraction) -帐户抽象是一种在以太坊上为智能合约钱包提供本地支持而非使用复杂中间件的升级。 -- [沃克尔树](/roadmap/verkle-trees) - 沃克尔树是一种数据结构,可用于在以太坊上启用无状态客户端。 这些“无状态”客户端只需要很小的存储空间,但仍然能够验证新的区块。 -- [无状态](/roadmap/statelessness) - 无状态客户端将能够验证新区块,而无需存储大量数据。 这可以为运营节点带来很多好处,而成本仅为目前的一小部分。 diff --git a/src/content/translations/zh/roadmap/merge/index.md b/src/content/translations/zh/roadmap/merge/index.md deleted file mode 100644 index 19eebe0ba59..00000000000 --- a/src/content/translations/zh/roadmap/merge/index.md +++ /dev/null @@ -1,228 +0,0 @@ ---- -title: 合并 -description: 了解合并 - 以太坊主网何时采用权益证明机制。 -lang: zh -template: upgrade -image: ../../../../../assets/upgrades/merge.png -summaryPoint1: 以太坊主网采用权益证明机制,但情况并非一直如此。 -summaryPoint2: 从原有的工作量证明机制过渡到权益证明机制的升级称为合并。 -summaryPoint3: 合并是指原有的以太坊主网与单独的权益证明区块链即信标链合并,现已成为一条链。 -summaryPoint4: 合并将使以太坊的能源消耗减少大约 99.95%。 ---- - - - 合并于 2022 年 9 月 15 日执行, 它完成了以太坊向权益证明共识的过渡,以太坊正式弃用了工作量证明并将能源消耗减少了约 99.95%。 - - -## 什么是合并? {#what-is-the-merge} - -合并是指以太坊的原有执行层(从[创世块](/history/#frontier)开始就一直存在的主网)加入其新的权益证明共识层,即信标链。 合并摒弃了消耗大量能源的挖矿,而是通过质押以太币来保护网络的安全。 这是实现以太坊愿景 — 可扩展性、安全性和可持续性更强 — 这一过程中真正激动人心的一步。 - - - -[信标链](/roadmap/beacon-chain/)最初是与[主网](/glossary/#mainnet)分开上线的。 以太坊主网(所有帐户、余额、智能合约和区块链状态)仍继续由[工作量证明](/developers/docs/consensus-mechanisms/pow/)保护,即便与此同时,与之一起运行的信标链采用[权益证明](/developers/docs/consensus-mechanisms/pos/)。 合并是指这两个系统最终整合在一起之时,而工作量证明被权益证明永久取代。 - -想象一下,以太坊是一艘还没有完全准备好进行星际航行的就已经起飞的宇宙飞船。 借助信标链,社区构建了新的引擎和坚固的外壳。 经过大量测试,是时候在飞行途中通过“热插拔”用新引擎更换旧引擎了。 将新的、更高效引擎装入现有飞船后,飞船就能够开始许多光年的航行并占领整个宇宙。 - -## 与主网合并 {#merging-with-mainnet} - -直到合并之前,工作量证明一直保护着以太坊主网的安全。 这使得我们都习惯的以太坊区块链在 2015 年 7 月诞生,并且具有我们熟悉的所有功能 — 交易、智能合约、帐户等等。 - -纵观以太坊的历史,开发人员一直在为从工作量证明到权益证明的最终过渡做准备。 信标链于 2020 年 12 月 1 日创建,它作为独立的区块链与主网一起运行。 - -信标链最开始并不处理主网上的交易。 而是通过对活跃的验证者及其账户余额达成一致来就自己的状态达成共识。 经过广泛测试后,是时候让信标链就真实数据上达成共识了。 合并后,信标链将成为所有网络数据的共识引擎,包括执行层交易和账户余额。 - -合并代表正式转变成使用信标链作为区块生产引擎。 挖矿将不再是生产有效区块的手段。 而是由权益证明验证者承担这个角色,并且现在负责处理所有交易的有效性及提出区块。 - -历史记录不会在合并中丢失。 随着主网与信标链合并,它还合并以太坊的整个交易历史记录。 - - -这种向权益证明的过渡改变了以太币的发行方式。 了解有关合并前后以太币发行的更多信息。 - - -### 用户与持有者 {#users-holders} - -**对于持有者/用户而言,合并不会带来任何变化。** - -*再次提醒:*作为以太币或以太坊上任何其他数字资产的用户或持有者,以及非节点运营的质押人,**不需要在合并之前对你的资金或钱包做任何事情以加入合并。**以太币还是以太币。 没有像“旧以太币”/“新以太币”或“以太坊 1”/“以太坊 2”这样说法,钱包在合并前后的工作方式一样 — 告诉你其他说法人很可能是骗子。 - -虽然权益证明替代了工作量证明,但是以太坊自创世块以来的全部历史记录都完整保留且没有改变。 合并前你钱包里的所有资金在合并后仍可使用。 **你不需要采取任何行动来升级。** - -[有关以太坊安全的更多内容](/security/#eth2-token-scam) - -### 节点运营商与去中心化应用程序开发者 {#node-operators-dapp-developers} - - - -主要操作项目包括: - -1. 同时运行共识层客户端和执行层客户端;合并之后,获取执行数据的第三方端点将不可用。 -2. 使用共享 JWT 密钥对执行层和共识层客户端进行身份验证,以便它们能够安全地通信。 -3. 设置“费用接收人”地址,以接收你赚取的交易费的小费/矿工可提取价值。 - -如果没有完成上述操作的前两项,会导致你的节点被视为“离线”,直到这两层都完成同步和身份验证。 - -不设置“费用接收人”将仍然允许验证者像往常一样运行,但你将无法获得交易费小费和矿工可提取价值,这些你原本可以在你的验证者提出的区块中赢得。 - - - - -在合并之前,执行层客户端(比如 Geth、Erigon、Besu 或 Nethermind)足以接收、正确验证和传播由网络传播的区块。 合并之后,包含在执行负载中的交易的有效性也将取决于包含它的“共识区块”的有效性。 - -因此,一个完整的以太坊节点现在同时需要执行层客户端和共识层客户端。 这两种客户端使用一个新的引擎应用程序接口协同工作。 该引擎应用程序接口需要使用 JWT 密钥进行身份验证,密钥提供给两种客户端以允许安全通信。 - -主要行动项目包括: - -- 除了安装执行客户端外,还需要安装共识客户端 -- 使用共享的 JWT 秘钥对执行客户端和共识客户端进行身份验证,以便它们可以安全地彼此通信。 - -如果不能及时完成上述项目,在合并之后你的节点会显示为“离线”,直到两层都同步并通过身份验证。 - - - - - -合并导致共识层发生变化,其中还包括以下方面的变化:< - -
    -
  • 区块结构
  • -
  • 时隙/区块时间
  • -
  • 操作码变化
  • -
  • 链上随机性的来源
  • -
  • 安全头部区块最终确定区块的概念
  • -
- -有关详细信息,请查看 Tim Beiko 的博客文章“合并对以太坊的应用程序层有何影响”。 - -
- -## 合并和能源消耗 {#merge-and-energy} - -合并标志着以太坊工作量证明的终结,从此以太坊将进入一个可持续性更强、更加环保的时代。 以太坊的能耗预计会下降 99.95%,这使得以太坊成为一个绿色环保的区块链。 了解有关[以太坊能源消耗](/energy-consumption/)的更多信息。 - -## 合并与扩容 {#merge-and-scaling} - -合并还为工作量证明下无法实现的进一步可扩展性升级奠定了基础,使以太坊距离实现[以太坊愿景](/roadmap/vision/)中概述的全面可扩展、安全性和可持续性更近一步。 - -## 合并的误区 {#misconceptions} - - - -以太坊节点有两种类型:可以提议区块的节点和不能提议区块的节点。 - -可以提议区块的节点只占以太坊节点总数的一小部分。 这类节点包括工作量证明 (PoW) 下的挖矿节点和权益证明 (PoS) 下的验证者节点。 该类别需要投入经济资源(例如工作量证明中的 GPU 哈希算力或权益证明中的质押以太币),以换取有时提出下一个区块并获得协议奖励的能力。 - -网络上的其他节点(例如大部分节点)不需要投入任何经济资源,只需一台有着 1 到 2 TB 的可用存储空间并且可以连接互联网的消费级计算机即可。 这些节点不提出区块,但它们仍然在网络安全中扮演着关键的角色,通过监听新的区块,在区块到达时根据网络共识机制验证它们的有效性,并对所有的区块产出负责任。 如果区块是有效的,节点将继续通过网络传播它。 如果区块出于任何原因无效,节点软件将会忽略它将他视为无效区块并停止传播。 - -在任一共识机制(工作量证明或权益证明)下,任何人都可以运行非区块生产节点;我们强烈建议所有有能力的用户都这样做。 运行一个节点对以太坊非常有价值,并为任何运行节点的个人提供额外的好处,如改进的安全性、隐私性和抗审查性。 - -让任何人都拥有运行自己的节点的能力对于维持以太坊网络的去中心化极其重要。 - -更多关于运行你自己的节点的信息 - - - - - -燃料费用是网络需求受限于网络容量的产物。 合并弃用了工作量证明,过渡到权益证明共识机制,但这并不会明显改变直接影响网络容量和吞吐量的任何参数。 - -根据以卷叠为中心的路线图,工作重点是扩展用户在二层网络的活动,同时使一层主网成为安全的去中心化结算层,针对卷叠数据存储进行优化,帮助迅速降低卷叠交易费用。 转变成权益证明机制是实现这一点的关键先导步骤。 更多关于燃料和费用的信息。 - - - - -交易的“速度”可用多种方式衡量,既可以是入块时间,也可以是最终确定的时间。 这些变化都是很轻微的,用户不会注意到 - -以前,工作量证明机制的目标是每 13.3 秒产生一个新的区块。 在权益证明机制下,时隙每 12 秒精确出现一次,每个时隙都是验证者发布区块的机会。 大多数时隙都有区块产出,但不一定全部都有(即验证者离线)。 在权益证明机制下,区块的产生频率比工作量证明下提升了约 10%。 这是一个相当微不足道的变化,用户不太可能注意到。 - -权益证明引入了以前不存在的交易最终确定概念。 在工作量证明机制下,回滚一个区块的难度将随着在它之后因交易产生的区块数目的增加而呈指数增长,但这个难度却永远不会归零。 在权益证明机制下,区块打包在一起放入由验证者投票的时段中,时段为 6.4 分钟的时间跨度,包含 32 次出块机会。 当一个时段结束时,验证者投票来决定是否认为该时段“合理”。 如果验证者同意证明该时段的合理性,它将在下一个时段中最终确定。 撤销最终确定的交易在经济上是不可行的,因为它需要获得并销毁超过 1/3 的质押以太币总量。 - - - - - -在刚刚合并后,质押者只能获得因提议区块而赚取的小费和最大可提取价值。 这些奖励会被记入由验证者(称为费用接收者)控制的非质押帐户,并可以立即获得。 这些奖励与因履行验证者职责而获得的协议奖励区分开。 - -在上海/卡佩拉网络升级后,质押者现在可以指定一个提款地址,开始接收自动支付的任何超额质押余额(协议奖励中超过 32 以太币的部分)。 这次升级还使验证者可以在退出网络时解锁并收回全部余额。 - -更多关于质押提款的信息 - - - - -上海/卡佩拉升级启用提款功能后,我们鼓励所有验证者将超过 32 以太币的质押余额提取出来,因为这些资金不会增加收益并且不提取还会被锁定。 根据年化利率(由质押的以太币总量决定),验证者可能会退出以提取他们的全部余额,或者使用他们的奖励增加质押,以赚取更多收益。 - -这里有一项重要限制,协议对验证者的退出速度设置了限制,每个时段只允许退出一定数量的验证者(每 6.4 分钟退出 1 个)。 这一限制会根据活跃验证者的数量浮动,但每天可以退出网络的验证者数量为质押以太币总数的大约 0.33%。 - -这样可以防止质押资金大规模流出。 另外,还可以防止掌握一大部分质押以太币总量的潜在攻击者进行可遭致罚没的行为,然后在同一时段、协议能够执行罚没之前退出/提取违规所得的所有验证者余额。 - -以太坊故意将年化利率设置为动态,以便市场上的质押人权衡他们愿意为保护网络付出多少资金。 如果利率过低,验证者将按照协议限制的速度退出。 这样会逐渐提高所有留下来的验证者的年化利率,从而吸引新的质押人加入或者退出的质押人回归。 - - -## “以太坊 2”发生了什么? {#eth2} - -“以太坊 2”一词已弃用。 在将“以太坊 1”和“以太坊 2”合并为一条链之后,将不再需要区分两个不同 的以太坊网络;只有以太坊。 - -为了减少混乱,社区更新了这些条款: - -- “以太坊 1”现在是处理交易和执行的“执行层”。 -- “以太坊 2”现在是处理权益证明共识的“共识层”。 - -这些术语的更新仅会改变命名约定;不会改变以太坊的目标及路线图。 - -[了解有关“以太坊 2”重命名的更多信息](https://blog.ethereum.org/2022/01/24/the-great-eth2-renaming/) - -## 升级间的关系 {#relationship-between-upgrades} - -以太坊所有升级都存在一些关联。 因此,让我们回顾一下合并与其他升级的关系。 - -### 合并与信标链 {#merge-and-beacon-chain} - -合并表示正式采用信标链作为原有主网执行层的新共识层。 合并之后,将分配验证者以保护以太坊主网的安全,[工作量证明](/developers/docs/consensus-mechanisms/pow/)机制下的挖矿将不再是有效的区块生产方式。 - -相反,区块由验证节点提出,验证节点质押以太币以获得参与共识的权利。 这些升级为未来的可扩展性升级(包括分片)奠定了基础。 - - - 信标链 - - -### 合并与上海升级 {#merge-and-shanghai} - -为了简化并确保顺利过渡到权益证明,合并升级没有包括某些预期的功能,如提取质押以太币的功能。 该功能是通过上海/卡佩拉升级单独启用的。 - -如果感兴趣,请参阅 Vitalik 在 2021 年 4 月的 ETHGlobal 活动中发表的演讲“[合并后会发生什么](https://youtu.be/7ggwLccuN5s?t=101)”,了解更多信息。 - -### 合并与分片 {#merge-and-data-sharding} - -最初的计划是在合并之前进行分片,以解决可扩展性问题。 然而,随着[二层网络扩容解决方案](/layer-2/)方兴未艾,工作重点已经变成首先从工作量证明过渡到权益证明。 - -分片计划正在迅速发展,但随着扩展交易执行的二层网络技术的兴起和成功,分片计划已变为寻找最佳的负载分配方式,来存储来自卷叠合约中的压缩调用数据,这使得网络容量呈指数级增长。 如果不先过渡到权益证明,这是不可能的。 - - - 分片 - - -## 延伸阅读 {#further-reading} - - - - diff --git a/src/content/translations/zh/roadmap/scaling/index.md b/src/content/translations/zh/roadmap/scaling/index.md deleted file mode 100644 index b45545ae652..00000000000 --- a/src/content/translations/zh/roadmap/scaling/index.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: 以太坊扩容 -description: 卷叠链下批量处理交易,从而降低用户的成本。 然而,当前卷叠在数据使用上存在高昂的成本,限制了交易费用的降低。 Proto-Danksharding 解决了这个问题。 -lang: zh -image: ../../../../../assets/roadmap/roadmap-transactions.png -alt: "以太坊路线图" -template: roadmap ---- - -以太坊使用[二层](/layer-2/#rollups)网络(也称为“卷叠”)进行扩展,卷叠批量处理交易并将结果发送到以太坊上。 尽管卷叠比以太坊主网便宜多达八倍,但还可以进一步优化,以降低最终用户的成本。 卷叠还依赖于一些中心化的组件,随着卷叠的成熟,开发者可以逐步移除这些组件。 - - -
    -
  • 目前,卷叠比以太坊一层网络便宜大约 3-8 倍
  • -
  • 零知识卷叠将很快把费用降低约 40-100 倍
  • -
  • 即将进行的以太坊变更会再次扩容 100-1000 倍
  • -
  • 用户将从中受益,交易成本降至不足 0.001 美元
  • -
-
- -## 让数据更实惠 {#making-data-cheaper} - -卷叠会收集、执行大量的交易,并将结果提交到以太坊。 这会生成大量数据,这些数据需要公开,以便任何人都能执行交易并验证卷叠运营商的诚实性。 如果有人发现交易有出入,就会提出质疑。 - -### Proto-Danksharding {#proto-danksharding} - -卷叠数据永久存储在以太坊上,这导致费用昂贵。 用户在卷叠中支付的超过 90% 的交易费用是由于这种数据存储造成的。 为了减少交易费用,我们可以将数据转移到新的临时“二进制大对象”中存储。 由于二进制大对象不是永久性存储,所以相对便宜。一旦不再需要这些数据,可以将它们从以太坊中删除。 长期存储卷叠数据将由需要者负责,例如卷叠运营商、交易所、索引服务等。 向以太坊添加数据块交易是被称作“Proto-Danksharding”的升级的一部分。 该升级预计将较快上线 — 可能是 2023 年底。 - -在 Proto-Danksharding 将二进制大对象交易变为以太坊协议的一部分之后,将可以向以太坊区块添加很多二进制大对象。 这会进一步大幅(>100 倍)提高以太坊吞吐量、降低交易费用。 - -### Danksharding {#danksharding} - -拓展二进制大对象数据的第二阶段十分复杂,因为它需要以新的方式检查网络上卷叠数据的可用性,并依赖验证者们分离它们的区块构建和区块提出责任。 同时,它还需要以一种加密方式证明验证者已验证二进制大对象数据的小子集。 - -这个第二步名为[“Danksharding”](/roadmap/danksharding/)。 它可能还需要几年才能完全实现。 Danksharding 依赖于其他开发工作,例如[分离区块构建和区块提出](/roadmap/pbs),以及进行新网络设计,让网络能够通过一次性随机采样少许千字节数据即可高效确认数据可用性,这称为“[数据可用性采样 (DAS)](/developers/docs/data-availability)”。 - -更多关于 Danksharding 的信息 - -## 去中心化卷叠 {#decentralizing-rollups} - -[卷叠](/layer-2)已经在对以太坊扩容。 一个[丰富的卷叠项目生态系统](https://l2beat.com/scaling/tvl)正在使用户能够在一系列安全保证下快速和低成本地进行交易。 然而,卷叠目前是通过中心化的排序者(在提交给以太坊之前进行所有交易处理和聚合的计算机)来引导的。 这容易审查,因为这些排序运营商可能会受到制裁、受贿、或因其他原因妥协。 与此同时,[卷叠在验证传入数据的方式上也存在差异](https://l2beat.com)。 最好的方法是让“证明者”提交欺诈证明或有效性证明,但不是所有卷叠都实现了这一点。 甚至那些使用了有效性/欺诈证明的卷叠也仅使用少数已知的证明者。 因此,以太坊扩容的下一个重要步骤是向更多人分配运行排序者和证明者的责任。 - -更多关于卷叠的信息 - -## 当前进展 {#current-progress} - -Proto-Danksharding 可能是较早实现的路线图项目之一。 设置该升级所需要的去中心化计算步骤已经落地,一些客户端已经实现了处理二进制大对象数据的原型。 由于 Danksharding 依赖于路线图中一些其他需要首先完成的项目,所以其全面实现可能仍需数年。 卷叠基础设施去中心化很可能是一个渐进过程 - 存在许多不同的卷叠,它们正在建立的系统略有不同,并且完全去中心化的速度也不同。 diff --git a/src/content/translations/zh/roadmap/security/index.md b/src/content/translations/zh/roadmap/security/index.md deleted file mode 100644 index e9e871ffbbc..00000000000 --- a/src/content/translations/zh/roadmap/security/index.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: 更安全的以太坊 -description: 以太坊是现有的最安全和去中心化的智能合约平台。 然而,我们仍可以进行一些改进,以确保以太坊能够抵御未来任何程度的攻击。 -lang: zh -image: ../../../../../assets/roadmap/roadmap-security.png -alt: "以太坊路线图" -template: roadmap ---- - -以太坊已经是一个非常安全、去中心化的智能合约平台。 然而,我们仍可以进行一些改进,以确保以太坊能够抵御未来各种攻击。 这包括对以太坊客户端处理竞争区块的方式进行微调,以及提高网络认为区块[“最终确认”](/developers/docs/consensus-mechanisms/pos/#finality)(意味着在不对攻击者造成极端经济损失的情况下无法改变)的速度。 - -此外,还可以进行一些改进,使审查交易变得更加困难,比如对区块提议者隐藏区块的实际内容,或者采用新的方法来识别客户端何时在审查。 这些改进将共同升级权益证明协议,使从个人到企业的所有用户都对他们在以太坊上的应用程序、数据和资产随即产生信心。 - -## 质押提款 {#staking-withdrawals} - -从工作量证明升级到权益证明的过程始于以太坊的先驱们在存款合约中质押以太币。 这些以太币用于保护网络。 然而,这些以太币尚不能解锁并退还给用户。 允许提取以太币是权益证明升级的一个关键部分。 提款是功能完善的权益证明协议的关键组成部分,而且允许提款也有利于以太坊的安全性,因为这可以让质押人将以太币奖励用于其他非质押目的。 这意味着需要流动性的用户不必依赖于可能推动以太坊的中心化的流动性质押衍生品 (LSD)。 这项升级预定在 2023 年 4 月 12 日完成。 - -阅读关于提款的信息 - -## 防御攻击 {#defending-against-attacks} - -即使在提款后,仍然可以对以太坊的 [权益证明](/developers/docs/consensus-mechanisms/pos/)协议进行改进。 其中一项被称为[视图合并](https://ethresear.ch/t/view-merge-as-a-replacement-for-proposer-boost/13739) - 这是一种更安全的分叉选择算法,可以让某些复杂攻击更加困难。 - -减少以太坊最终确定区块所需的时间将可以改善用户体验,并防止复杂的“重组”攻击,即攻击者试图重组最近的区块以获取利润或审查特定交易。 [**单时隙最终确定性 (SSF)**](/roadmap/single-slot-finality/)是一种尽可能减少最终确定延迟的方式。 现在,攻击者理论上可以说服其他验证者重新配置 15 分钟的区块。 采用单时隙最终确定性后,该数值为 0。 从个人到应用程序和交易所,所有用户都可以从中受益,快速确保他们的交易不会被撤销,而网络也可以从中受益,防范一整类攻击。 - -了解单时隙最终确定性 - -## 防范审查 {#defending-against-censorship} - -去中心化可以防止个人或一小部分验证者的影响力过大。 新型质押技术有助于确保以太坊的验证者尽可能保持去中心化,同时还能防范硬件、软件和网络故障。 包括将验证者责任分散到多个节点的软件。 这被称为**分布式验证者技术 (DVT)**。 由于分布式验证者技术允许多台计算机共同参与验证,从而增加了冗余和容错性,因此我们鼓励质押池使用分布式验证者技术。 它还将验证者密钥分散到多个系统中,而不是由一个运营商运行多个验证者。 这增加了不诚实运营商协调对以太坊的攻击的难度。 总之,这种想法是由*社区*而非个人运行验证者,从而提高安全性。 - -了解分布式验证者技术 - -实施**提议者-构建者器分离 (PBS)** 将大大提高以太坊对审查的固有防范能力。 提议者-构建者器分离可以让一个验证者创建区块,另一个验证者在以太坊网络中广播区块。 这可以确保在整个网络中更加公平地分享利润最大化的区块构建算法带来的收益,**防止质押随着时间的推移集中到表现最好的机构质押人**。 区块提议者可以从区块构建者市场中选择收益最高的区块。 要进行审查,区块提议者往往需要选择收益较低的区块,这**在经济上不合理,而且很容易被网络上的其他验证者发现**。 - -提议者-构建者器分离还有一些潜在的附件功能,如加密交易和纳入清单,可以进一步提高以太坊的抗审查性。 这使得区块构建者和提议者无法看到其区块中包含的实际交易。 - -了解提议者-构建者分离 - -## 保护验证者 {#protecting-validators} - -老练的攻击者有可能识别出即将到来的验证者,并向它们发送垃圾邮件,以阻止它们提议区块。这被称为**拒绝服务 (DoS)**攻击。 实施[**秘密领袖选举 (SLE)**](/roadmap/secret-leader-election) 可以防止预先知道区块提议者,从而防范此类攻击。 其工作原理是对代表候选区块提议者的加密承诺进行不断混洗,并利用它们的顺序来决定选择哪个验证者,从而使验证者自己才能事先知道它们的顺序。 - -了解秘密领袖选举 - -## 当前进展 {#current-progress} - -路线图上的安全升级已进入高级研究阶段,但预计在一段时间内不会实施。 视图合并、提议者-构建者器分离、单时隙确定性和秘密领袖选举的下一步工作是最终确定规范并开始构建原型。 diff --git a/src/content/translations/zh/roadmap/user-experience/index.md b/src/content/translations/zh/roadmap/user-experience/index.md deleted file mode 100644 index 81968c23c42..00000000000 --- a/src/content/translations/zh/roadmap/user-experience/index.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: 改善用户体验 -description: 对于大多数人来说,使用以太坊仍然过于复杂。 为了促进以太坊的大规模普及,必须大幅降低其进入门槛 - 必须让用户在访问以太坊时,享受去中心化、无需许可和抗审查的好处,同时像使用传统的 Web2 应用一样丝滑顺畅。 -lang: zh -image: ../../../../../assets/roadmap/roadmap-ux.png -alt: "以太坊路线图" -template: roadmap ---- - -从管理密钥和钱包到发起交易,以太坊的使用过程都需要简化。 为了促进以太坊的大规模普及,必须大幅提升使用的便捷性,让用户在访问以太坊时,体验无需许可和抗审查的好处,同时像使用 Web2 应用一样丝滑顺畅。 - -## 超越助记词 {#no-more-seed-phrases} - -以太坊帐户由一对密钥保护,其中,公钥用于帐户识别,私钥用于消息签名。 私钥类似于主密码,提供以太坊帐户的完全访问权限。 对于更熟悉代表用户管理帐户的银行和 Web2 应用的人来说,这是一种完全不同的操作方式。 为了使以太坊在不依赖中心化第三方的情况下大规模普及,必须有一种方法,可以让用户简单顺畅地掌握自己的资产并控制自己的数据,且无需了解公私钥加密法和密钥管理。 - -这个问题的解决办法是使用智能合约与以太坊交互。 智能合约钱包提供了在密钥丢失或被盗时保护帐户的途径以及更好地发现和防范欺诈的机会,还可以让钱包拥有新功能。 虽然智能合约钱包现在已经存在,但很难构建,因为它们需要以太坊协议的更好支持。 这种额外支持被称为帐户抽象。 - -关于帐户抽象的更多信息 - -## 人人皆有节点 - -运行节点的用户不必依赖第三方为他们提供数据,他们可以快速、匿名且无需许可地与以太坊区块链交互。 然而,现在运行一个节点需要技术知识和大量磁盘空间,这意味着许多人不得不依赖第三方。 - -以太坊将进行几项升级,使节点更容易运行,资源密集程度更低。 存储数据的方式将改为使用被称为**沃克尔树**的更具空间效率的结构。 同时,通过[无状态性](/roadmap/statelessness)或[数据到期](/roadmap/statelessness/#data-expiry)升级,以太坊节点将不再需要存储完整的以太坊状态数据的拷贝,从而大幅降低硬盘空间需求。 [轻节点](/developers/docs/nodes-and-clients/light-clients/)将具备运营完整节点的许多好处,但是在手机或简单的浏览器应用中就可以轻松运行。 - -阅读关于沃克尔树的信息 - -通过这些升级,运行节点的障碍实际上减少到零。 用户将可以安全、无需许可地访问以太坊,且不需要在计算机或手机上牺牲大量磁盘空间或 CPU,在使用应用时,也不必依赖第三方提供数据或网络访问权限。 - -## 当前进展 {#current-progress} - -智能合约钱包已经推出,但需要进行更多升级以使其尽可能去中心化和无需许可。 EIP-4337 是一个成熟的提案,不需要对以太坊协议做出任何修改。 EIP-4337 需要的主要智能合约于 2023 年 3 月部署。 - -完全的无状态性仍处于研究阶段,可能还需要几年才能实现。 在通往完全无状态性的路上有许多里程碑,包括可能不久后就会实现的数据到期。 可能需要首先完成其他路线图项目,例如[沃克尔树](/roadmap/verkle-trees/)和[提议者-构建者分离](/roadmap/pbs/)。 - -沃克尔树测试网已经上线并运行,下一阶段是在私有测试网上运行启用沃克尔树的客户端,然后在公共测试网运行。 你可以通过在测试网部署智能合约或运行测试网客户端来帮助加速这一进程。 diff --git a/src/content/translations/zh/smart-contracts/index.md b/src/content/translations/zh/smart-contracts/index.md deleted file mode 100644 index ff944f4c00b..00000000000 --- a/src/content/translations/zh/smart-contracts/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: 智能合约 -description: 智能合约的非技术性介绍 -lang: zh ---- - -# 智能合约简介 {#introduction-to-smart-contracts} - -智能合约是以太坊应用程序层的基石。 它们是存储在区块链上的计算机程序,遵循“如果...那么...”(IFTTT) 逻辑,并且保证按照其代码定义的规则执行,智能合约一旦创建就无法更改。 - -Nick Szabo 创造了“智能合约”这一术语。 1994 年,他撰写了[智能合约简介](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart.contracts.html);1996 年,他撰写了[对智能合约潜在功能的探索](https://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/smart_contracts_2.html)。 - -Szabo 构想了一个数字市场,在这个市场中,自动化的、通过加密学保证安全的流程使得交易和商业功能可在不需要可信中介的情况下进行。 以太坊上的智能合约将这一设想付诸实践。 - -### 传统合约中的信任问题 {#trust-and-contracts} - -传统合约的最大问题之一是需要可信的个人来执行合约的结果。 - -下面是一个例子: - -Alice 和 Bob 要进行一场自行车比赛。 假设 Alice 和 Bob 打赌 $10 元她会赢得比赛。 Bob 相信自己会成为赢家并同意下注。 最后,Alice 远远领先 Bob 完成了比赛,并且毫无疑问是赢家。 但 Bob 拒绝支付赌注,声称 Alice 一定是作弊了。 - -这个荒唐的例子说明了所有非智能协议存在的问题。 即使协议条件得到满足(即你是比赛的获胜者),你仍然必须要信任对方会履行协议(即支付赌注)。 - -### 数字自动售货机 {#vending-machine} - -一个适合智能合约的简单比喻是自动售货机,其工作方式有点类似于智能合约 — 特定的输入保证预定的输出。 - -- 你选择一种产品 -- 自动售货机显示出价格 -- 你付款 -- 自动售货机验证你的付款金额是否正确 -- 自动售货机给你提供产品 - -只有在所有要求满足后,自动售货机才会提供你想要的产品。 如果你不选择产品或投入足够的钱,自动售货机将不会提供你选择的产品。 - -### 自动执行 {#automation} - -智能合约的主要优点是在满足特定条件时确定地执行清晰的代码。 无需等待人来执行或商量结果。 这消除了对可信中介的需求。 - -例如,你可以编写一个智能合约为孩子托管资金,并允许他们在特定日期后提取资金。 如果他们试图在指定日期前提取资金,智能合约将无法执行。 或者你可以编写一份合约,在你向经销商付款后它会自动授予你汽车的数字化所有权。 - -### 可预测的结果 {#predictability} - -传统合约比较含糊,因为它们依赖于人来解释和执行。 例如,两位法官可能会对合同有不同的解释,这可能会导致不一致的判决和不公平的结果。 智能合约消除了这种可能性。 然而,智能合约会根据合约代码中写入的条件精确执行。 这种精确性意味着在相同情况下,智能合约将产生相同的结果。 - -### 公开的记录 {#public-record} - -智能合约可用于审计和跟踪。 由于以太坊智能合约位于公共区块链上,任何人都可以立即跟踪资产转移和其他相关信息。 例如,你可以检查是否有人向自己的地址发送了资金。 - -### 隐私保护 {#privacy-protection} - -智能合约还可以保护你的隐私。 由于以太坊是匿名网络(你的交易公开绑定到唯一的加密地址,而不是你的身份),你可以保护你的隐私不受观察者窥探。 - -### 可查看的条款 {#visible-terms} - -最后一点,与传统合约一样,你可以在签署(或以其他方式与之交互)之前检查智能合约的内容。 智能合约的透明性保证了任何人都可以进行审查。 - -## 智能合约用例 {#use-cases} - -其他计算机程序可以做的事情,智能合约基本上都可以做。 - -它们可以执行计算、创建货币、存储数据、铸造非同质化代币、发送通信甚至生成图形。 以下是一些常见的真实示例: - -- [稳定币](/stablecoins/) -- [创建和分发独特的数字资产](/nft/) -- [自动、开放的货币交易所](/get-eth/#dex) -- [去中心化游戏](/dapps/?category=gaming) -- [自动赔付的保单](https://etherisc.com/) -- [允许创建定制、可互操作货币的标准](/developers/docs/standards/tokens/) - -## 更愿意通过视频学习? {#visual-learner} - -观看 Finematics 解释智能合约: - - - -## 延伸阅读 {#further-reading} - -- [智能合约将如何改变世界](https://www.youtube.com/watch?v=pA6CGuXEKtQ) -- [智能合约:将要取代律师的区块链技术](https://blockgeeks.com/guides/smart-contracts/) -- [面向开发者的智能合约](/developers/docs/smart-contracts/) -- [学习编写智能合约](/developers/learning-tools/) -- [精通以太坊 — 什么是智能合约?](https://github.com/ethereumbook/ethereumbook/blob/develop/07smart-contracts-solidity.asciidoc#what-is-a-smart-contract) diff --git a/src/content/translations/zh/social-networks/index.md b/src/content/translations/zh/social-networks/index.md deleted file mode 100644 index 239bb31cbba..00000000000 --- a/src/content/translations/zh/social-networks/index.md +++ /dev/null @@ -1,121 +0,0 @@ ---- -title: 去中心化社交网络 -description: 以太坊去中心化社交网络概览 -lang: zh -template: use-cases -emoji: ":mega:" -sidebarDepth: 2 -image: ../../../../assets/ethereum-learn.png -summaryPoint1: 基于区块链的社交互动与内容平台的创建和分配。 -summaryPoint2: 去中心化社交媒体网络可保护用户隐私并增强数据安全性。 -summaryPoint3: 代币和非同质化代币创造了一种将内容货币化的新方法。 ---- - -社交网络在我们的日常交流和互动中发挥着重要作用。 然而,这些平台的集中控制产生了许多问题:数据泄露、服务器中断、去平台化、审查和侵犯隐私是社交媒体经常做出的一些取舍。 为了解决这些问题,开发人员正在以太坊上构建社交网络。 去中心化社交网络可以解决传统社交网络平台的诸多问题,提升用户的整体体验。 - -## 什么是去中心化社交网络? {#what-are-decentralized-social-networks} - -去中心化社交网络是基于区块链的平台,允许用户交换信息以及向受众发布和分发内容。 由于这些应用程序在区块链上运行,它们能够去中心化并抵制审查和不当控制。 - -许多去中心化的社交网络已成为现有社交媒体服务的替代品,例如 Facebook、LinkedIn、Twitter 和 Medium。 但基于区块链的社交网络有许多领先于传统社交平台的功能。 - -### 去中心化的社交网络是如何工作的? {#decentralized-social-networks-overview} - -去中心化社交网络是一类[去中心化应用程序 (dapps)](/dapps/) - 由部署在区块链上的[智能合约](/developers/docs/smart-contracts/)驱动的应用程序。 合约代码充当这些应用程序的后端并定义它们的业务逻辑。 - -传统社交媒体平台依靠数据库来存储用户信息、程序代码和其他形式的数据。 但这会产生单点故障并带来重大风险。 例如,去年 Facebook 的服务器[离线了数个小时](https://www.npr.org/2021/10/05/1043211171/facebook-instagram-whatsapp-outage-business-impact),切断了用户与平台的连接。这件事引起了极差的反响。 - -去中心化社交网络存在于由全球数千个节点组成的对等网络上。 即使某些节点发生故障,网络也将不间断地运行,使应用程序能够抵御故障和中断。 - -基于以太坊建立的社交网络使用类似[星际文件系统 (IPFS)](https://ipfs.io/) 之类的去中心化存储系统,可以保护用户信息免遭利用和恶意使用。 没有人会将你的个人信息出售给广告商,黑客也无法窃取你的机密信息。 - -许多基于区块链的社交平台都有原生代币,可以在没有广告收入的情况下实现货币化。 用户可以购买这些代币来访问某些功能、完成应用内购买或打赏他们最喜欢的内容创作者。 - -## 去中心化社交网络的好处 {#benefits} - -1. 去中心化社交网络可抵御审查,并对所有人开放。 这意味着用户不能被任意禁止、被社交平台禁言或遭到限制。 - -2. 去中心化社交网络建立在开源理念的基础上,并使应用程序的源代码可供公众查看。 通过去除传统社交媒体中常见的不透明算法,基于区块链的社交网络可以使用户和平台创建者的利益保持一致。 - -3. 去中心化社交网络淘汰了“中间人”。 内容创建者对其内容拥有直接所有权,他们直接与关注者、粉丝、买家和其他各方互动,双方之间仅有智能合约。 - -4. 由于去中心化应用程序在由全球节点对等网络提供支持的以太坊网络上运行,去中心化社交网络受服务器停机和中断的影响较小。 - -5. 去中心化社交平台通过非同质化代币 (NFT)、应用程序内加密支付等为内容创建人提供改进的货币化框架。 - -6. 去中心化的社交网络为用户提供了高度的隐私和匿名性。 例如,个人可以使用以太坊域名服务的配置文件或钱包登录基于以太坊的社交网络,而无需共享可识别个人信息 (PII),例如姓名、电子邮件地址等。 - -7. 去中心化社交网络依赖于去中心化存储,而不是中心化数据库。在保护用户数据方面,前者更加优秀。 - -## 以太坊上的去中心化社交网络 {#ethereum-social-networks} - -由于其代币 (ERC-20/ERC-721) 的流行和庞大的用户群,以太坊网络已成为开发人员打造去中心化社交媒体的首选工具。 以下是基于以太坊的社交网络的一些示例: - -### Peepeth {#peepeth} - -[Peepeth](https://peepeth.com/) 是一个类似于 Twitter 的微博平台。 它在以太坊区块链上运行,并使用 IPFS 来存储用户数据。 - -用户可以发送名为“Peep”的短信,这些短信不能删除或修改。 你可以在不离开应用程序的情况下用以太币 (ETH) 收取赏钱或打赏给平台上的任何人。 - -### Mirror {#mirror} - -[Mirror](https://mirror.xyz/) 是一个支持 web3 的写作平台,旨在实现去中心化并被用户所有。 用户只需连接钱包即可在 Mirror 上免费读写。 用户还可以收集写作作品并订阅他们喜欢的作者。 - -在 Mirror 上发布的帖子会永久存储在去中心化存储平台 Arweave 上,并且可以作为铸造为可收集的[非同质化代币 (NFT)](/nft/),称为写作 NFT。 创造写作 NFT 对作者来说是完全免费的,并且收集发生在以太坊二层——这使得交易成本低、快速且环保。 - -### MINDS {#minds} - -[MINDS](https://www.minds.com/) 是最常用的去中心化社交网络之一。 它的运作方式与 Facebook 类似,并且已经吸引了数百万用户。 - -用户使用平台原生的 ERC-20 代币 $MIND 来支付物品价格。 用户还可以通过发布热门内容、为生态系统做出贡献以及将其他人推荐给平台来赚取 $MIND 代币。 - -## 以太坊上的 Web2 社交网络 {#web2-social-networks-and-ethereum} - -[Web3](/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/),用户可以通过发布优质内容和为在线社区 (subreddit) 做出贡献来赚取。 你可以在 subreddit 中兑换这些代币以[获得独有的特权和福利](https://www.reddit.com/community-points/)。 对于这个项目,Reddit 正在与 Arbitrum 合作,后者是旨在扩展以太坊交易的[第 2 层](/layer-2/)汇总。 - -该程序已经上线,r/CryptoCurrency 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 年 1 月,Twitter Blue [开始支持非同质化代币](https://mashable.com/article/twitter-blue-nft-profile-picture),允许用户连接他们的钱包并将非同质化代币展示为个人资料图片。 在撰写本文时,这家社交媒体公司还[宣布,计划](https://www.theverge.com/2021/8/16/22627435/twitter-bluesky-lead-jay-graber-decentralized-social-web)在将来打造一个去中心化社交网络。 - -### Instagram {#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 是一个安全的消息收发应用程序,使用开源、对等协议和端到端加密来保护你的消息免受第三方侵害。_ -- **[Mirror.xyz](https://mirror.xyz/)** - _Mirror 是一个基于以太坊的去中心化、用户所有发布平台,供用户众筹创意、将内容货币化并创建高价值社区。_ -- **[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} - -- [去中心化社交媒体阐述](https://www.youtube.com/watch?v=UdT2lpcGvcQ) — _Coinmarketcap_ -- [DeSo 区块链希望将社交媒体去中心化](https://www.youtube.com/watch?v=SG2HUiVp0rE) — _Bloomberg Technology_ -- [去中心化社交媒体,以及 Balaji Srinivasan、Vitalik Buterin、Juan Benet 的未来](https://www.youtube.com/watch?v=DTxE9KV3YrE) — _ETHGlobal_ - -### 社区 {#communities} - -- [Status Discord Server](https://discord.com/invite/3Exux7Y) -- [Mirror Discord Server](https://discord.com/invite/txuCHcE8wV) -- [r/CryptoCurrency subreddit](https://www.reddit.com/r/CryptoCurrency/) diff --git a/src/content/translations/zh/staking/pools/index.md b/src/content/translations/zh/staking/pools/index.md deleted file mode 100644 index 5ae67ced2fe..00000000000 --- a/src/content/translations/zh/staking/pools/index.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: 联合质押 -description: 简要介绍如何开始以太币联合质押 -lang: zh -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-pool.png -alt: 莱斯利犀牛在泳池中游泳。 -sidebarDepth: 2 -summaryPoints: - - 通过联合其他人质押任意数量的以太币获得奖励 - - 跳过硬件部分,将验证者操作委托给第三方 - - 在自己的钱包中保存质押代币 ---- - -## 什么是质押池? {#what-are-staking-pools} - -激活一组验证者密钥需要 32 个以太币,而质押池这种协作方式使拥有少量以太币的人能够满足这一条件。 协议本身并不支持联合功能,因此需要单独创建解决方案来满足这一需求。 - -一些资金池使用智能合约运行,资金会存入一个合约中,该合约以去信任的方式管理和跟踪你的质押,并向你发放代表该价值的代币。 其他资金池不涉及智能合约,而是在链下促成。 - -## 为什么要联合质押? {#why-stake-with-a-pool} - -除了我们在[质押简介](/staking/)中概述的好处之外,联合质押还有许多独有益处。 - - - - - - - - - -## 需考虑事项 {#what-to-consider} - -联合质押和委托质押并未得到以太坊的原生支持,但是为满足用户质押少于 32 个以太币的需求,越来越多的方案已经开始建立。 - -每种质押池和它们使用的工具或智能合约均由不同的团队创建,因此都各有优点和风险。 质押池能够让用户使用以太币兑换代表已质押以太币的代币。 代币的用处在于允许用户在去中心化交易所将任意数量的以太币兑换成同等数量的可产生收益的代币,从底层质押以太币的质押奖励获得回报(反之亦然),即便实际上以太币仍然在共识层上质押。 这意味着,可以快速便捷地在产生收益的质押以太币产品和“原始以太币”之间进行双向兑换,同时兑换数量不必是 32 个以太币的整数倍。 - -然而,这些被质押的以太币往往会导致类似垄断的行为 — 大量质押的以太币最终处于少数中心化组织的控制之下,而非散布于许多独立的个人手中。 这就为审查或价值提取创造了条件。 质押的黄金标准应该始终是尽可能在自己的硬件上运行验证者的个人。 - -[更多关于质押代币相关风险的信息](https://notes.ethereum.org/@djrtwo/risks-of-lsd)。 - -下面使用属性指标来表示所列质押池可能具有的显著优势或劣势。 选择要加入的池时,请使用本节作为参考,了解我们如何定义这些属性。 - - - -## 探索质押池 {#explore-staking-pools} - -有多种方案可帮助你进行设置。 上述指标可引导你了解如何使用下方的工具。 - - - - - -请注意,选择重视[客户端多样性](/developers/docs/nodes-and-clients/client-diversity/)的服务很重要,因为这样可以提高网络安全性,还可以限制你的风险。 “执行客户端多样性”“共识客户端多样性”表明服务可证明其在限制使用主流客户端。 - -想要推荐其他未提到的质押工具吗? 可以查看我们的[产品上线政策](/contributing/adding-staking-products/),确定你推荐的质押工具是否合适,合适的话,请提交以供审核。 - -## 常见问题 {#faq} - - -通常,ERC-20 质押代币会发行给质押人,代表其质押以太币的价值以及奖励。 请记住,不同资金池向用户发放质押奖励的方法也略有不同,但主题却是相同的。 - - - -现在!马上! 上海/卡佩拉网络升级发生在 2023 年 4 月,并引入了质押提款。 支持质押池的验证者帐户现在能够退出并将以太币提取到他们指定的提款地址。 这样你便能够赎回自己那部分质押的底层以太币。 请咨询你的提供商,了解他们如何支持此功能。 - -或者,使用 ERC-20 质押代币的资金池允许用户在公开市场上交易该代币,从而使你能够出售你的质押头寸,有效地“提款”,而无需实际从质押合约中移除以太币。 - -更多关于质押提款的信息 - - - -这些联合质押方案和中心化交易所之间有许多相似之处,例如能够质押少量以太币并将它们捆绑在一起以激活验证者。 - -与中心化交易所不同,许多其他联合质押方案使用智能合约和/或质押代币,质押代币通常是 ERC-20 代币,可以保存在你自己的钱包中并像其他任何代币一样买卖。 这样你就可以控制自己的代币,从而获得了一定的自主权和安全性,但仍旧你还是无法直接控制在后台代表你进行验证的验证者客户端。 - -涉及到支持它们的节点时,一些联合质押方案比其他方案更加分散。 为了加强网络的健康和去中心化程度,我们始终鼓励质押人选择一种无需许可即可实现节点运营商去中心化的联合服务。 - - -## 延伸阅读 {#further-reading} - -- [以太坊质押目录](https://www.staking.directory/) - _Eridian 和 Spacesider_ -- [火箭池质押 - 质押概述](https://docs.rocketpool.net/guides/staking/overview.html) - _火箭池文档_ -- [用 Lido 质押以太坊](https://help.lido.fi/en/collections/2947324-staking-ethereum-with-lido) - _Lido 帮助文档_ diff --git a/src/content/translations/zh/staking/saas/index.md b/src/content/translations/zh/staking/saas/index.md deleted file mode 100644 index 29451d82816..00000000000 --- a/src/content/translations/zh/staking/saas/index.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -title: 质押即服务 -description: 简要介绍如何开始以太币联合质押 -lang: zh -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-saas.png -alt: 莱斯利犀牛在云中漂浮。 -sidebarDepth: 2 -summaryPoints: - - 第三方节点运营商负责你的验证者客户端的操作 - - 对于那些拥有 32 个以太币但是不能解决运行节点的技术问题的人来说,这是个很好的选择 - - 降低信任并保持你对提款密钥的控制权 ---- - -## 什么是质押即服务? {#what-is-staking-as-a-service} - -质押即服务 (“SaaS") 代表一类质押服务,采用这种服务的用户会存入 32 个以太币用于验证者,但是将节点运营委托给第三方运营商执行。 这个过程通常需要你按引导完成初始设置,包括密钥生成和存款,然后将你的签名密钥上传给运营商。 这项服务将代表你运行验证者,通常按月收费。 - -## 为什么需要质押服务? {#why-stake-with-a-service} - -以太坊协议本身并不支持质押委托,于是这类服务便为了满足这一需求而建。 如果你有 32 个以太币需要质押,但是没有合适的硬件设备,那么质押即服务可以使你在使用运营商硬件设施的同时获得区块奖励。 - - - - - - - - - -## 需考虑事项 {#what-to-consider} - -为了满足人们质押以太币的需求,质押即服务提供商的数量不断增长,但每位提供商的优势与风险不尽相同。 相比于自行质押,所有质押即服务方案都需要进一步的信任假设。 质押即服务方案可能使用更多代码包装以太坊客户端,而且这些代码未公开且不可审计。 质押即服务还会对网络去中心化造成有害影响。 取决于设置情况,你可能无法控制自己的验证者 - 运营者在使用你的以太币时可能会缺失诚信。 - -下列属性指标可以用来衡量市场上质押即服务供应商的优势或劣势。 在选择帮你度过质押之旅的服务时,请使用本节作为参考,了解我们如何定义这些属性。 - - - -## 探索质押服务提供商 {#saas-providers} - -以下是一些可用的质押即服务提供商。 你可以利用上述指标来辅助你选择。 - - - -#### 质押即服务提供商 - - - -请注意支持[客户端多样性](/developers/docs/nodes-and-clients/client-diversity/)的重要性,因为它可以提高网络安全性,并限制你的风险。 “执行客户端多样性”“共识客户端多样性”表明服务可证明其在限制使用主流客户端。 - -#### 密钥生成器 - - - -想要推荐其他未提到的质押即服务提供商吗? 可以查看我们的[产品上线政策](/contributing/adding-staking-products/),确定你推荐的质押工具是否合适,合适的话,请提交以供审核。 - -## 常见问题 {#faq} - - -不同的提供商会有不同的安排,但通常情况下,他们都会指导你设置所需的签名密钥(每 32 个以太币需要一个签名密钥),并将这些密钥上传给你的服务提供商,让他们代表你进行验证。 这些签名密钥本身并没有提现、转帐或者花费你资金的权限。 他们只提供为达成共识而投票的权限,如果投票执行方式不恰当,可能会受到离线处罚或罚没。 - - - -由此可见, 每个帐户都由 BLS 签名密钥和 BLS 提款密钥组成。 为了让验证者证明链的状态、参与同步委员会并提出区块建议,签名密钥必须易于验证者客户端访问。 为此签名密钥必须以某种形式与互联网连接,所以它们本质上被认为是“热”密钥。 这是验证者能够参与证明的必要条件,因此,出于安全原因,用于转移或提取资金的密钥是单独分开的。 - -BLS 提款密钥用于签署一次性信息,声明质押奖励和退出的资金应该转入哪个执行层帐户。 在该信息广播后,不再需要 BLS 提款密钥。 然而,已提取资金的控制权将永久委托给你提供的地址。 因此,你可以设置一个用自己的冷存储保护的提款地址,即使有人控制了你的验证者签名密钥,也可以最大程度降低验证者资金的风险。 - -更新提款凭证是进行提款的必需步骤\*。 此过程包括使用自己的助记词生成提款密钥。 - -确保安全备份该助记词,否则在需要时将无法生成提款密钥。 - -\*提供了提款地址和初始存款的质押人不需要设置此项。 如需有关准备验证者方面的支持,请联系你的质押即服务提供商。 - - - -2023 年 4 月,上海/卡佩拉升级实现了质押提款功能。 质押人需要提供一个提款地址(如果在初始存款时没有提供),并将开始每隔几天定期自动分发奖励支付。 - -验证者还能够以验证者身份完全退出,这种情况下,他们剩余的以太币余额将解锁以供提取。 提供执行提款地址并完成退出流程的帐户将在下次验证者扫描时在提供的提款地址收到其全部余额。 - -更多关于质押提款的信息 - - - -使用质押即服务提供商,你需要将节点运营委托给别人。 这伴随着一些你不能控制的节点性能不佳的风险。 如果你的验证者受到罚没,你的验证者余额将因处罚而遭受损失,验证者也将从验证者池中强行移除。 - -在罚没/退出流程结束后,这些资金将转移到分配给验证者的提款地址。 需要提供一个提款地址才能实现资金转移。 提款地址可能已在初次存款时提供。 如果没有提供,就需要使用验证者提款密钥签署一条声明提款地址的信息。 如果没有提供提款地址,资金将保持锁定状态,直到提供提款地址为止。 - -有关任何担保或保险方案的详细信息,以及如何提供提款地址的说明,请联系各质押即服务提供商。 如果你想完全控制你的验证者设置,请详细了解如何单独质押以太币。 - - -## 延伸阅读 {#further-reading} - -- [以太坊质押目录](https://www.staking.directory/) - _Eridian 和 Spacesider_ -- [评估质押服务](https://www.attestant.io/posts/evaluating-staking-services/) - _Jim McDonald 2020_ diff --git a/src/content/translations/zh/staking/solo/index.md b/src/content/translations/zh/staking/solo/index.md deleted file mode 100644 index 0078edfb062..00000000000 --- a/src/content/translations/zh/staking/solo/index.md +++ /dev/null @@ -1,204 +0,0 @@ ---- -title: 单独质押你的以太币 -description: 简要介绍如何单独质押你的以太币 -lang: zh -template: staking -emoji: ":money_with_wings:" -image: ../../../../../assets/staking/leslie-solo.png -alt: 莱斯利犀牛在自己的电脑芯片上。 -sidebarDepth: 2 -summaryPoints: - - 直接从协议中获得最大奖励,以保持你的验证者正常运行和在线 - - 运行家用硬件并自行加入以太坊网络的安全和去中心化 - - 消除信任依赖,始终自己掌控资金密钥 ---- - -## 什么是单独质押? {#what-is-solo-staking} - -单独质押是指运行一个连接到互联网的[以太坊节点](/run-a-node/),并存入 32 个以太币以激活一个[验证者](#faq),使你有能力直接参与网络共识。 - -**单独质押增强了以太坊网络的去中心化**,使以太坊更加抗审查,更加稳健,能够抵御攻击。 其他质押方法可能不会给网络带来同样的助益。 单独质押是保护以太坊的最佳质押方案。 - -一个以太坊节点既包括执行层 (EL) 客户端,也包括共识层 (CL) 客户端。 这些客户端是一套共同工作的软件,拥有一套有效的签名密钥,以验证交易和区块、证明链头的正确性、汇总认证和提交区块。 - -单独质押用户负责操作运行这些客户端所需的硬件。 强烈建议使用一台专用机器在家进行操作,这对网络安全非常有益。 - -单独质押人可以直接从协议中获得奖励,以保持他们的验证者在线并正常运行。 - -## 为什么要单独质押? {#why-stake-solo} - -单独质押让你承担更大的责任,但会让你对资金和质押设置拥有最大的控制权。 - - - - - - - -## 单独质押前的考量 {#considerations-before-staking-solo} - -尽管我们希望每个人都能无风险地进行单独质押,但这并不现实。 在选择单独质押以太币之前,有一些实际和严肃的事项需要记住。 - - - -在操作自己的节点时,你应该花一些时间学习如何使用你所选择的软件。 这涉及到阅读相关文档,以及了解开发团队的沟通渠道。 - -你对所运行的软件和权益证明的原理了解得越多,作为一名质押人的风险就越小,也越容易解决在节点运行过程中可能出现的任何问题。 - - - -节点设置要求用户能够熟练使用计算机,尽管随着时间的推移,新的工具正在使其变得更容易。 了解命令行界面会有帮助,但并非必需。 - -节点设置还需要用户对基本的硬件设置,以及最低推荐规格有一些了解。 - - - -就像私钥保护以太坊地址的方式一样,你也需要为验证者单独生成密钥。 你必须了解如何保护好助记词或私钥的安全。{' '} - -以太坊的安全性和防范欺诈 - - - -硬件设施会发生故障,网络连接会出错,客户端软件也需要升级。 因此节点维护不可避免,需要你偶尔关注。 你要确保知道任何预期的网络升级,或其他关键的客户端升级。 - - - -你的回报与你的验证者在线并正确验证的时间成正比。 宕机会导致一定比例的处罚,具体与有多少其他验证者同时离线有关,但不会导致罚没。 同时网络带宽也很重要,因为如果没有及时收到认证,奖励就会减少。 建议至少要有 10 Mb/s 的上行和下行带宽。 - - - -与离线导致的怠工处罚不同,罚没是一种更严重的处罚,专门针对恶意违规。 同一时间只在一台机器上运行加载你密钥的客户端,你被罚没的风险可以降到最低。 总得来说,所有质押人都必须意识到被罚没的风险。 - -更多关于惩罚和验证者生命周期的信息 - - - - - -## 工作原理 {#how-it-works} - - - -在线时你将赢得以太币奖励,奖励将定期存入你的提款地址。 - -如果需要,你可以验证者身份退出,这样就不需要在线,也不会再有任何奖励。 之后,你的余额将提取到你在设置过程指定的提款地址。 - -[更多关于质押提款的信息](/staking/withdrawals/) - -## 开始使用 Staking Launchpad {#get-started-on-the-staking-launchpad} - -Staking Launchpad 是一个开源应用程序,可帮助你成为质押人。 它将指导你选择客户端、生成密钥并将你的以太币存入质押存款合约。 会提供一份清单,确保已经涵盖安全设置验证者需要的所有内容。 - - - -## 使用节点和客户端设置工具时应考虑的事项 {#node-tool-considerations} - -有越来越多的工具和服务可以帮助你单独质押以太币,但每种工具和服务的风险和收益各不相同。 - -下面使用属性指标来表示列出的质押工具可能具有的显著优势或劣势。 在选择帮你度过质押之旅的工具时,请使用本节作为参考,了解我们如何定义这些属性。 - - - -## 探索节点和客户端设置工具 {#node-and-client-tools} - -有多种方案可帮助你进行设置。 上述指标可引导你了解如何使用下方的工具。 - - - -#### 节点工具 - - - -请注意选择[非主流客户端](/developers/docs/nodes-and-clients/client-diversity/)的重要性,因为可以提高网络安全性,并限制你的风险。 可让你设置非主流客户端的工具称为“多客户端”。 - -#### 密钥生成器 - -这些工具可用来替代[质押存款命令行接口](https://github.com/ethereum/staking-deposit-cli/),帮助生成密钥。 - - - -想要推荐其他未提到的质押工具吗? 可以查看我们的[产品上线政策](/contributing/adding-staking-products/),确定你推荐的质押工具是否合适,合适的话,请提交以供审核。 - -## 探索单独质押指南 {#staking-guides} - - - -## 常见问题 {#faq} - -下面是一些关于质押的最常见问题,值得了解一下。 - - - -验证者是一个虚拟实体,存在于以太坊上并参与以太坊协议的共识。 验证者由余额、公钥和其他属性信息表示。 验证者客户端是通过持有并使用验证者的私钥代表验证者行动的软件。 一个验证者客户端可以持有多个密钥对,从而控制多个验证者。 - - - - -每个与验证者相关的密钥对都需要正好 32 个以太币才能激活。 将更多以太币存入一对密钥并不能增加可能获得的奖励,因为每个验证者的有效余额被限制为 32 个以太币。 这意味着质押时需要以 32 个以太币为单位递增,每个验证者都有自己的一套密钥和余额。 - -不要为一个验证者存入超过 32 以太币的资金。 这样做不会增加你的奖励。 如果为验证者设置了提款地址,超过 32 个以太币多余资金将在下一次验证者扫描时自动提取到该地址。 - -如果单独质押对你来说要求太高,可以考虑使用质押即服务提供商,或者如果你的资金少于 32 个以太币,则可以考虑联合质押。 - - - -在网络最终确认时下线,不会导致罚没。 如果你的验证者在某个周期(每个周期 6.4 分钟)内无法进行验证,就会导致少量的怠工处罚,但这与罚没有很大不同。 这些处罚比你在验证者可用的情况下获得的奖励要少一些,而且损失可以通过将验证者上线大约相等的时间赚回来。 - -请注意,对怠工验证者的处罚与有多少个验证者同时下线成正比。 在大部分网络参与者同时离线的情况下,对每个验证者的处罚会比单个验证者怠工所受的处罚大。 - -在极端情况下,如果网络因超过三分之一的验证者离线而停止最终确认,这些验证者将受到所谓的二次怠惰惩罚,离线验证者帐户中的以太币将遭受指数级损失。 这时以太坊网络将通过消耗怠工验证者的以太币进行自我修复,直到他们的余额达到 16 个以太币,此时他们将自动从验证者池中退出。 剩余在线的验证者最终将再次超过 2/3,从而满足再次最终确认链的绝对多数要求。 - - - -简而言之,虽然永远不能完全保证,但如果你真诚行事,运行非主流客户端,并且每次只在一台机器上保留你的签名密钥,你被罚没的风险几乎为零。 - -只有几种特定的情况会导致验证者被罚没并从网络中退出。 在撰写本文时,已经发生的罚没事件完全是冗余硬件设置的产物,即签名密钥同时存储在两台不同的机器上。 这可能会无意中导致你的密钥出现两次投票,这是一种可被罚没的行为。 - -运行主流客户端(任何被超过 2/3 的用户使用的客户端)也存在可能被罚没的风险,比如该客户端有一个导致链分叉的错误。 这可能会导致一个有问题的分叉被最终确认。 要纠正并返回预定链,需要提交一个环绕投票,以尝试撤销最终确定的区块。 这也是一种可被罚没的行为,可以通过运行非主流客户端来避免。 - -非主流客户端中的等效错误永远不会被最终确认,因此也不会导致环绕投票,只会导致怠工处罚,而非罚没。 - - - - - -各个客户端在性能和用户界面方面可能略有不同,因为每个客户端都是由不同的团队使用不同编程语言开发的。 这意味着,它们之中没有“最好的”。 所有生产用客户端都是优秀的软件,它们都执行相同的核心功能,即与区块链进行同步和交互。 - -由于所有生产用客户端都提供相同的基本功能,所以选择一个非主流客户端实际上非常重要,即并未被网络上大多数验证者使用的任何客户端。 这听起来可能有悖常理,但运行多数或绝对多数人使用的客户端会使你在该客户端出现错误时面临更大的罚没风险。 运行一个少数人使用的客户端可以极大地降低这些风险。 - -详细了解为什么客户端多样性至关重要 - - - -虽然虚拟专用服务器 (VPS) 可用于替代家庭硬件设施,但你的验证者客户端的物理访问和位置确实很重要。 使用中心化云计算解决方案(如亚马逊网络服务或 Digital Ocean)的便捷之处在于,你不必拥有和操作硬件设施,但代价是网络需要中心化。 - -在一个中心化云存储解决方案上运行的验证者客户端越多,对这些用户来说就越危险。 任何使这些提供商离线的事件,无论是攻击、监管要求,还是电力/互联网中断,都会导致每个依赖于该服务器的验证者客户端同时离线。 - -离线处罚与有多少其他验证者同时离线成正比。 使用虚拟专用服务器会大大增加离线处罚的风险,并在大范围宕机的情况下增加你的二次惩罚或罚没的风险。 为了尽量降低你自己的风险,以及以太坊网络的风险,我们强烈建议用户获取并操作自己的硬件。 - - - - -从信标链上进行任何类型的提款都需要设置提款凭据。 - -新质押人在生成密钥和存款时设置提款凭据。 尚未设置提款凭证的现有质押人可以升级他们的密钥,以支持提款功能。 - -设置提款凭据后,奖励支付(最初的 32 个以太币累积的以太币奖励)将自动定期分发到提款地址。 - -要解锁并收回全部余额,还必须完成验证者退出流程。 - -更多关于质押提款的信息 - - -## 延伸阅读 {#further-reading} - -- [以太坊质押目录](https://www.staking.directory/) - _Eridian 和 Spacesider_ -- [以太坊客户端多样性问题](https://hackernoon.com/ethereums-client-diversity-problem) - _@emmanuelawosika 2022_ -- [帮助实现客户端多样性](https://www.attestant.io/posts/helping-client-diversity/) - _Jim McDonald 2022_ -- [以太坊共识层的客户端多样性](https://mirror.xyz/jmcook.eth/S7ONEka_0RgtKTZ3-dakPmAHQNPvuj15nh0YGKPFriA) - _jmcook.eth 2022_ -- [如何选购以太坊验证者的硬件](https://www.youtube.com/watch?v=C2wwu1IlhDc)- _EthStaker 2022_ -- [加入以太坊 2.0 测试网的详细步骤](https://kb.beaconcha.in/guides/tutorial-eth2-multiclient) - _Butta_ -- [以太坊 2 防止罚没小技巧](https://medium.com/prysmatic-labs/eth2-slashing-prevention-tips-f6faa5025f50) - _Raul Jordan 2020_ diff --git a/src/content/translations/zh/staking/withdrawals/index.md b/src/content/translations/zh/staking/withdrawals/index.md deleted file mode 100644 index 426d1d6392d..00000000000 --- a/src/content/translations/zh/staking/withdrawals/index.md +++ /dev/null @@ -1,218 +0,0 @@ ---- -title: 质押提款 -description: 本页面概述质押推送提款是什么,它们如何工作,质押人需要做什么才能获得奖励 -lang: zh -template: staking -image: ../../../../../assets/staking/leslie-withdrawal.png -alt: 犀牛莱斯利与她的质押奖励 -sidebarDepth: 2 -summaryPoints: - - 上海/卡佩拉升级实现了以太坊上的质押提款功能。 - - 验证者操作员必须提供一个提款地址以启用 - - 奖励每隔几天自动分发 - - 完全退出质押的验证者将收到他们的剩余余额 ---- - - -2023 年 4 月 12 日进行的上海/卡佩拉升级已实现质押提款功能。 更多关于上海/卡佩拉升级的信息 - - -**质押提款**是指将以太币从以太坊共识层(信标链)上的验证者帐户转移到可以进行交易的执行层。 - -用户提供提款地址后,超过 32 个以太币的余额的**奖励支付**将自动定期发送到和每个验证者相关的提款地址。 用户还可以**完全退出质押**,解锁他们全部的验证者余额。 - -## 质押奖励 {#staking-rewards} - -对于有效余额已满 32 ETH 的活跃验证者帐户,奖励支付将自动处理。 - -通过奖励获得的超过 32 ETH 的余额实际上并不构成本金,也不会增加该验证者在网络上的权重,因此每隔几天会自动提取作为奖励支付。 除了一次性提供提款地址外,这些奖励不需要验证者操作员采取任何行动。 这都是在共识层启动的,因此在任何步骤都不需要燃料(交易费)。 - -### 我们怎么发展到现在的? {#how-did-we-get-here} - -在过去的几年里,以太坊经历了几次网络升级,从依赖能源密集型挖矿的网络转变为由以太坊本身保护的网络。 现在,在以太坊上参与共识被称为“质押”,因为参与者自愿锁定以太币,将其“押注”以参与网络。 遵守规则的用户将获得奖励,而尝试欺骗的行为可能会受到惩罚。 - -自 2020 年 11 月推出质押存款合约以来,一些勇敢的以太坊先驱者自愿锁定资金以激活“验证者”,验证者即遵循网络规则有权正式证明和提出区块的特殊帐户。 - -在上海/卡佩拉升级之前,你可能无法使用或访问自己质押的以太币。 但现在,你可以选择在选定的帐户自动接收你的奖励,也可以随时提取质押的以太币。 - -### 我应该如何准备? {#how-do-i-prepare} - - - -### 重要通知 {#important-notices} - -为任何验证器帐户提供提款地址是一个必需的步骤,否则无法从其余额中提取以太币。 - - - 每个验证者帐户一次只能分配一个提款地址。一旦选择地址并提交到共识层,就无法撤消或再次更改。 在提交前,请仔细检查所提供地址的所有权和准确性。 - - -同时,如果你的助记符/助记词在离线时一直保持安全,没有受到任何损害。不提供提款地址不会给你的资金带来任何威胁。 未添加提款凭据只会将以太币保持锁定在验证者帐户中,直到提供提款地址为止。 - -## 完全退出质押 {#exiting-staking-entirely} - -在从验证者帐户余额中转移*任何*资金之前,必须提供提款地址。 - -希望完全退出质押并取回全部余额的用户还必须使用验证者密钥签署并广播一个“自愿退出”的消息,这将启动退出质押的过程。 此操作通过你的验证者客户端完成,并提交给你的共识节点,无需燃料。 - -验证者从抵押退出的过程所需时间不同,具体取决于同时退出的人数。 一旦完成,此帐户将不再负责执行验证者网络职责,不再有资格获得奖励,并且不再拥有“质押”的以太币。 此时,该帐户将被标记为完全“可提款”。 - -一旦帐户被标记为“可提款”,并且已提供提款凭据,用户除了等待之外,无需再做任何事情。 区块提议者会自动且持续地扫描是否有可退出资金,并在下一次扫描期间将你帐户的余额全额转移(也称为“全额提款”)。 - -## 何时启用质押提款? {#when} - -质押提款已经上线! 提款功能已在 2023 年 4 月 12 日进行的上海/卡佩拉升级中实现。 - -上海/卡佩拉升级后,可以将之前质押的以太币收回到普通以太坊帐户中。 这就结束了质押流动性循环,并使以太坊向着建立一个可持续、可扩展、安全的去中心化生态系统迈进一步。 - -- [更多关于以太坊历史的信息](/history/) -- [更多关于以太坊路线图的信息](/roadmap/) - -## 提款支付是如何运作的? {#how-do-withdrawals-work} - -特定验证者是否有资格提款取决于验证者帐户本身的状态。 在任何时候,都不需要用户输入来确定帐户是否应该发起提款,整个过程由共识层在连续循环中自动完成。 - -### 更愿意通过视频学习? {#visual-learner} - -请查看 Finematics 对以太坊质押提款的解释: - - - -### 验证者“扫描” {#validator-sweeping} - -当验证者被安排提议下一个区块时,需要构建一个最多包含 16 个合格提款的提款队列。 首先从验证者索引 0 开始,根据协议规则判断该帐户是否有合格的提款,如果有,则将其添加到队列中。 被安排提议下一个区块的验证者将从上一个验证者离开的地方继续,无限期地按顺序进行。 - - -想象一个模拟时钟。 时钟的指针指向小时,朝一个方向前进,不跳过任何小时,最后在达到最后一个数字后再次回到开始。

-现在,想象这个时钟不再是 1 至 12,而是从 0 到 N(在共识层上注册的验证者帐户的总数,截至 2023 年 1 月已超过 500,000 个)。

-时钟的指针指向需要检查是否符合提款条件的下一个验证者。 它从 0 开始,不跳过任何帐户,一直前进。 当达到最后一个验证者时,循环从头开始继续。 -
- -#### 检查帐户的提款 {#checking-an-account-for-withdrawals} - -在提议者扫描验证者以寻找可能的提款时,使用一系列简短的问题评估正接受检查的每个验证者,以确定是否应触发提款,如果是,应提取多少以太币。 - -1. **是否已提供提款地址?**如果未提供提款地址,则跳过该帐户,不会发起提款。 -2. **验证者是否已退出且可提款?**如果验证者已完全退出,并且我们已到达帐户被视为“可提款”的时段,那么将处理全额提款。 这将把所有剩余余额转移到提款地址。 -3. **有效余额是否达到 32 的最大值?** 如果帐户具有提款凭证,尚未完全退出,并且有超过 32 的奖励在等待,将处理部分提款,只将超过 32 的奖励转移到用户的提款地址。 - -在验证者生命周期中,验证者操作员只会执行以下两个直接影响此流程的操作: - -- 提供提款凭证以启用任何形式的提款 -- 退出网络,这将触发全额提款 - -### 免燃料费 {#gas-free} - -这种质押提款方法不需要质押人手动提交交易来请求提款特定数量以太币。 这意味着**不需要提交燃料费(交易费)**,并且提款也不争夺现有的执行层区块空间。 - -### 我会多久收到一次质押奖励? {#how-soon} - -单个区块最多可处理 16 笔提款。 以这个速度计算,每天可处理 115,200 个验证者提款(假设没有错过任何时隙)。 如上所述,没有符合条件的提款的验证者将被跳过,这将减少完成扫描所需的时间。 - -扩展这个算法,我们可以预估处理特定数量的提款所需的时间: - - - -| 提款数量 | 所需时间 | -| :------: | :------: | -| 400,000 | 3.5 天 | -| 500,000 | 4.3 天 | -| 600,000 | 5.2 天 | -| 700,000 | 6.1 天 | -| 800,000 | 7.0 天 | - - - -正如你所看到的,随着网络上的验证者数量增加,完成该过程的速度也会变慢。 错过的时隙数增加可能成比例减慢提款速度,但这通常代表了可能的结果中较慢的情况。 - -## 常见问题 {#faq} - - -不,提供提款凭证的过程只需进行一次,一旦提交后就无法更改。 - - - -通过设置执行层提款地址,该验证者的提款凭证已永久更改。 这意味着旧的提款凭证将不再起作用,新的提款凭证将指向执行层帐户。 - -提款地址可以是智能合约(由其代码控制),也可以是外部拥有的帐户(EOA,由其私钥控制)。 目前,这些帐户无法向共识层传回信息以表示验证者凭证已更改,而添加此功能将给协议增加不必要的复杂性。 - -作为更改特定验证者提款地址的替代方案,用户可以选择设置智能合约作为他们的提款地址,该智能合约可以处理密钥轮换,例如 Safe。 将资金去向设置为自己的外部帐户的用户可以执行完全退出以提取所有的质押资金,然后使用新的凭证重新进行质押。 - - - - -如果你参加了质押池,或持有质押代币,你应该咨询你的提供商,了解更多关于如何处理质押提款的细节,因为每种服务的运作方式不同。 - -一般来说,用户应该可以随意收回他们的底层质押以太币,或者更换他们使用的质押服务提供商。 如果某个质押池变得过大,可以退出、收回资金,并通过较小的提供商重新质押。 或者,如果你已经积攒了足够多的以太币,你就可以自行质押。 - - - - -是的,只要你的验证者提供了提款地址。 提款地址必须要提供一次,以便在最初时启用任何提款,之后奖励支付将每隔几天在进行验证者扫描时自动分发。 - - - - -不。如果你的验证者仍在网络上运行,则不会自动执行完全提款。 需要手动发起自愿退出。 - -一旦验证者完成退出流程,并且假设该帐户具有提款凭证,则剩余余额随后将在下一次验证者扫描期间提取。 - - - - -提款旨在自动推送,转移任何未积极为质押做贡献的以太币。 这包括已完成退出流程的帐户的全部余额。 - -无法手动请求要提取以太币的具体数量。 - - - - -建议验证者运营商访问质押启动板提款页面,你可以在其中找到有关如何准备验证者以便提款的更多详细信息、事件的时间安排,以及有关提款如何运作的更多详细信息。 - -要首先在测试网上测试你的设置,请访问 Goerli 测试网质押启动板开始测试。 - - - - -否。 一旦验证者退出并提取其全部余额,存入该验证者的任何额外资金将在下一次验证者扫描期间自动转移到提款地址。 要重新质押以太币,必须激活新的验证者。 - - -## 延伸阅读 {#further-reading} - -- [质押启动板提款](https://launchpad.ethereum.org/withdrawals) -- [EIP-4895:信标链提款推送操作](https://eips.ethereum.org/EIPS/eip-4895) -- [以太坊牧猫人组织 - 上海](https://www.ethereumcatherders.com/shanghai_upgrade/index.html) -- [PEEPanEIP #94:质押以太币提取(测试)与 Potuz 和王筱维](https://www.youtube.com/watch?v=G8UstwmGtyE) -- [PEEPanEIP#68:与 Alex Stokes 讨论 EIP-4895:信标链推送提款操作](https://www.youtube.com/watch?v=CcL9RJBljUs) -- [了解验证者有效余额](https://www.attestant.io/posts/understanding-validator-effective-balance/) diff --git a/src/content/whitepaper/index.md b/src/content/whitepaper/index.md deleted file mode 100644 index 7d003569fa9..00000000000 --- a/src/content/whitepaper/index.md +++ /dev/null @@ -1,524 +0,0 @@ ---- -title: Ethereum Whitepaper -description: An introductory paper to Ethereum, published in 2013 before its launch. -lang: en -sidebarDepth: 2 -hideEditButton: true ---- - -# Ethereum Whitepaper {#ethereum-whitepaper} - -_This introductory paper was originally published in 2014 by Vitalik Buterin, the founder of [Ethereum](/what-is-ethereum/), before the project's launch in 2015. It's worth noting that Ethereum, like many community-driven, open-source software projects, has evolved since its initial inception._ - -_While several years old, we maintain this paper because it continues to serve as a useful reference and an accurate representation of Ethereum and its vision. To learn about the latest developments of Ethereum, and how changes to the protocol are made, we recommend [this guide](/learn/)._ - -[Researchers and academics seeking a historical or canonical version of the whitepaper [from December 2014] should use this PDF.](./whitepaper-pdf/Ethereum_Whitepaper_-_Buterin_2014.pdf) - -## A Next-Generation Smart Contract and Decentralized Application Platform {#a-next-generation-smart-contract-and-decentralized-application-platform} - -Satoshi Nakamoto's development of Bitcoin in 2009 has often been hailed as a radical development in money and currency, being the first example of a digital asset which simultaneously has no backing or "[intrinsic value](http://bitcoinmagazine.com/8640/an-exploration-of-intrinsic-value-what-it-is-why-bitcoin-doesnt-have-it-and-why-bitcoin-does-have-it/)" and no centralized issuer or controller. However, another, arguably more important, part of the Bitcoin experiment is the underlying blockchain technology as a tool of distributed consensus, and attention is rapidly starting to shift to this other aspect of Bitcoin. Commonly cited alternative applications of blockchain technology include using on-blockchain digital assets to represent custom currencies and financial instruments ("[colored coins](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit)"), the ownership of an underlying physical device ("[smart property](https://en.bitcoin.it/wiki/Smart_Property)"), non-fungible assets such as domain names ("[Namecoin](http://namecoin.org)"), as well as more complex applications involving having digital assets being directly controlled by a piece of code implementing arbitrary rules ("[smart contracts](http://www.fon.hum.uva.nl/rob/Courses/InformationInSpeech/CDROM/Literature/LOTwinterschool2006/szabo.best.vwh.net/idea.html)") or even blockchain-based "[decentralized autonomous organizations](http://bitcoinmagazine.com/7050/bootstrapping-a-decentralized-autonomous-corporation-part-i/)" (DAOs). What Ethereum intends to provide is a blockchain with a built-in fully fledged Turing-complete programming language that can be used to create "contracts" that can be used to encode arbitrary state transition functions, allowing users to create any of the systems described above, as well as many others that we have not yet imagined, simply by writing up the logic in a few lines of code. - -## Introduction to Bitcoin and Existing Concepts {#introduction-to-bitcoin-and-existing-concepts} - -### History {#history} - -The concept of decentralized digital currency, as well as alternative applications like property registries, has been around for decades. The anonymous e-cash protocols of the 1980s and the 1990s, mostly reliant on a cryptographic primitive known as Chaumian blinding, provided a currency with a high degree of privacy, but the protocols largely failed to gain traction because of their reliance on a centralized intermediary. In 1998, Wei Dai's [b-money](http://www.weidai.com/bmoney.txt) became the first proposal to introduce the idea of creating money through solving computational puzzles as well as decentralized consensus, but the proposal was scant on details as to how decentralized consensus could actually be implemented. In 2005, Hal Finney introduced a concept of "[reusable proofs of work](https://nakamotoinstitute.org/finney/rpow/)", a system which uses ideas from b-money together with Adam Back's computationally difficult Hashcash puzzles to create a concept for a cryptocurrency, but once again fell short of the ideal by relying on trusted computing as a backend. In 2009, a decentralized currency was for the first time implemented in practice by Satoshi Nakamoto, combining established primitives for managing ownership through public key cryptography with a consensus algorithm for keeping track of who owns coins, known as "proof-of-work". - -The mechanism behind proof-of-work was a breakthrough in the space because it simultaneously solved two problems. First, it provided a simple and moderately effective consensus algorithm, allowing nodes in the network to collectively agree on a set of canonical updates to the state of the Bitcoin ledger. Second, it provided a mechanism for allowing free entry into the consensus process, solving the political problem of deciding who gets to influence the consensus, while simultaneously preventing sybil attacks. It does this by substituting a formal barrier to participation, such as the requirement to be registered as a unique entity on a particular list, with an economic barrier - the weight of a single node in the consensus voting process is directly proportional to the computing power that the node brings. Since then, an alternative approach has been proposed called _proof-of-stake_, calculating the weight of a node as being proportional to its currency holdings and not computational resources; the discussion of the relative merits of the two approaches is beyond the scope of this paper but it should be noted that both approaches can be used to serve as the backbone of a cryptocurrency. - -### Bitcoin As A State Transition System {#bitcoin-as-a-state-transition-system} - -![Ethereum state transition](./ethereum-state-transition.png) - -From a technical standpoint, the ledger of a cryptocurrency such as Bitcoin can be thought of as a state transition system, where there is a "state" consisting of the ownership status of all existing bitcoins and a "state transition function" that takes a state and a transaction and outputs a new state which is the result. In a standard banking system, for example, the state is a balance sheet, a transaction is a request to move $X from A to B, and the state transition function reduces the value in A's account by $X and increases the value in B's account by $X. If A's account has less than $X in the first place, the state transition function returns an error. Hence, one can formally define: - -``` -APPLY(S,TX) -> S' or ERROR -``` - -In the banking system defined above: - -```js -APPLY({ Alice: $50, Bob: $50 },"send $20 from Alice to Bob") = { Alice: $30, Bob: $70 } -``` - -But: - -```js -APPLY({ Alice: $50, Bob: $50 },"send $70 from Alice to Bob") = ERROR -``` - -The "state" in Bitcoin is the collection of all coins (technically, "unspent transaction outputs" or UTXO) that have been minted and not yet spent, with each UTXO having a denomination and an owner (defined by a 20-byte address which is essentially a cryptographic public key[fn1](#notes)). A transaction contains one or more inputs, with each input containing a reference to an existing UTXO and a cryptographic signature produced by the private key associated with the owner's address, and one or more outputs, with each output containing a new UTXO to be added to the state. - -The state transition function `APPLY(S,TX) -> S'` can be defined roughly as follows: - -
    -
  1. - For each input in TX: -
      -
    • - If the referenced UTXO is not in S, return an error. -
    • -
    • - If the provided signature does not match the owner of the UTXO, return an error. -
    • -
    -
  2. -
  3. - If the sum of the denominations of all input UTXO is less than the sum of the denominations of all output UTXO, return an error. -
  4. -
  5. - Return S with all input UTXO removed and all output UTXO added. -
  6. -
- -The first half of the first step prevents transaction senders from spending coins that do not exist, the second half of the first step prevents transaction senders from spending other people's coins, and the second step enforces conservation of value. In order to use this for payment, the protocol is as follows. Suppose Alice wants to send 11.7 BTC to Bob. First, Alice will look for a set of available UTXO that she owns that totals up to at least 11.7 BTC. Realistically, Alice will not be able to get exactly 11.7 BTC; say that the smallest she can get is 6+4+2=12. She then creates a transaction with those three inputs and two outputs. The first output will be 11.7 BTC with Bob's address as its owner, and the second output will be the remaining 0.3 BTC "change", with the owner being Alice herself. - -### Mining {#mining} - -![Ethereum blocks](./ethereum-blocks.png) - -If we had access to a trustworthy centralized service, this system would be trivial to implement; it could simply be coded exactly as described, using a centralized server's hard drive to keep track of the state. However, with Bitcoin we are trying to build a decentralized currency system, so we will need to combine the state transaction system with a consensus system in order to ensure that everyone agrees on the order of transactions. Bitcoin's decentralized consensus process requires nodes in the network to continuously attempt to produce packages of transactions called "blocks". The network is intended to produce roughly one block every ten minutes, with each block containing a timestamp, a nonce, a reference to (ie. hash of) the previous block and a list of all of the transactions that have taken place since the previous block. Over time, this creates a persistent, ever-growing, "blockchain" that constantly updates to represent the latest state of the Bitcoin ledger. - -The algorithm for checking if a block is valid, expressed in this paradigm, is as follows: - -1. Check if the previous block referenced by the block exists and is valid. -2. Check that the timestamp of the block is greater than that of the previous block[fn2](#notes) and less than 2 hours into the future -3. Check that the proof-of-work on the block is valid. -4. Let `S[0]` be the state at the end of the previous block. -5. Suppose `TX` is the block's transaction list with `n` transactions. For all `i` in `0...n-1`, set `S[i+1] = APPLY(S[i],TX[i])` If any application returns an error, exit and return false. -6. Return true, and register `S[n]` as the state at the end of this block. - -Essentially, each transaction in the block must provide a valid state transition from what was the canonical state before the transaction was executed to some new state. Note that the state is not encoded in the block in any way; it is purely an abstraction to be remembered by the validating node and can only be (securely) computed for any block by starting from the genesis state and sequentially applying every transaction in every block. Additionally, note that the order in which the miner includes transactions into the block matters; if there are two transactions A and B in a block such that B spends a UTXO created by A, then the block will be valid if A comes before B but not otherwise. - -The one validity condition present in the above list that is not found in other systems is the requirement for "proof-of-work". The precise condition is that the double-SHA256 hash of every block, treated as a 256-bit number, must be less than a dynamically adjusted target, which as of the time of this writing is approximately 2187. The purpose of this is to make block creation computationally "hard", thereby preventing sybil attackers from remaking the entire blockchain in their favor. Because SHA256 is designed to be a completely unpredictable pseudorandom function, the only way to create a valid block is simply trial and error, repeatedly incrementing the nonce and seeing if the new hash matches. - -At the current target of ~2187, the network must make an average of ~269 tries before a valid block is found; in general, the target is recalibrated by the network every 2016 blocks so that on average a new block is produced by some node in the network every ten minutes. In order to compensate miners for this computational work, the miner of every block is entitled to include a transaction giving themselves 25 BTC out of nowhere. Additionally, if any transaction has a higher total denomination in its inputs than in its outputs, the difference also goes to the miner as a "transaction fee". Incidentally, this is also the only mechanism by which BTC are issued; the genesis state contained no coins at all. - -In order to better understand the purpose of mining, let us examine what happens in the event of a malicious attacker. Since Bitcoin's underlying cryptography is known to be secure, the attacker will target the one part of the Bitcoin system that is not protected by cryptography directly: the order of transactions. The attacker's strategy is simple: - -1. Send 100 BTC to a merchant in exchange for some product (preferably a rapid-delivery digital good) -2. Wait for the delivery of the product -3. Produce another transaction sending the same 100 BTC to himself -4. Try to convince the network that his transaction to himself was the one that came first. - -Once step (1) has taken place, after a few minutes some miner will include the transaction in a block, say block number 270000. After about one hour, five more blocks will have been added to the chain after that block, with each of those blocks indirectly pointing to the transaction and thus "confirming" it. At this point, the merchant will accept the payment as finalized and deliver the product; since we are assuming this is a digital good, delivery is instant. Now, the attacker creates another transaction sending the 100 BTC to himself. If the attacker simply releases it into the wild, the transaction will not be processed; miners will attempt to run `APPLY(S,TX)` and notice that `TX` consumes a UTXO which is no longer in the state. So instead, the attacker creates a "fork" of the blockchain, starting by mining another version of block 270000 pointing to the same block 269999 as a parent but with the new transaction in place of the old one. Because the block data is different, this requires redoing the proof-of-work. Furthermore, the attacker's new version of block 270000 has a different hash, so the original blocks 270001 to 270005 do not "point" to it; thus, the original chain and the attacker's new chain are completely separate. The rule is that in a fork the longest blockchain is taken to be the truth, and so legitimate miners will work on the 270005 chain while the attacker alone is working on the 270000 chain. In order for the attacker to make his blockchain the longest, he would need to have more computational power than the rest of the network combined in order to catch up (hence, "51% attack"). - -### Merkle Trees {#merkle-trees} - -![SPV in Bitcoin](./spv-bitcoin.png) - -_Left: it suffices to present only a small number of nodes in a Merkle tree to give a proof of the validity of a branch._ - -_Right: any attempt to change any part of the Merkle tree will eventually lead to an inconsistency somewhere up the chain._ - -An important scalability feature of Bitcoin is that the block is stored in a multi-level data structure. The "hash" of a block is actually only the hash of the block header, a roughly 200-byte piece of data that contains the timestamp, nonce, previous block hash and the root hash of a data structure called the Merkle tree storing all transactions in the block. A Merkle tree is a type of binary tree, composed of a set of nodes with a large number of leaf nodes at the bottom of the tree containing the underlying data, a set of intermediate nodes where each node is the hash of its two children, and finally a single root node, also formed from the hash of its two children, representing the "top" of the tree. The purpose of the Merkle tree is to allow the data in a block to be delivered piecemeal: a node can download only the header of a block from one source, the small part of the tree relevant to them from another source, and still be assured that all of the data is correct. The reason why this works is that hashes propagate upward: if a malicious user attempts to swap in a fake transaction into the bottom of a Merkle tree, this change will cause a change in the node above, and then a change in the node above that, finally changing the root of the tree and therefore the hash of the block, causing the protocol to register it as a completely different block (almost certainly with an invalid proof-of-work). - -The Merkle tree protocol is arguably essential to long-term sustainability. A "full node" in the Bitcoin network, one that stores and processes the entirety of every block, takes up about 15 GB of disk space in the Bitcoin network as of April 2014, and is growing by over a gigabyte per month. Currently, this is viable for some desktop computers and not phones, and later on in the future only businesses and hobbyists will be able to participate. A protocol known as "simplified payment verification" (SPV) allows for another class of nodes to exist, called "light nodes", which download the block headers, verify the proof-of-work on the block headers, and then download only the "branches" associated with transactions that are relevant to them. This allows light nodes to determine with a strong guarantee of security what the status of any Bitcoin transaction, and their current balance, is while downloading only a very small portion of the entire blockchain. - -### Alternative Blockchain Applications {#alternative-blockchain-applications} - -The idea of taking the underlying blockchain idea and applying it to other concepts also has a long history. In 2005, Nick Szabo came out with the concept of "[secure property titles with owner authority](https://nakamotoinstitute.org/secure-property-titles/)", a document describing how "new advances in replicated database technology" will allow for a blockchain-based system for storing a registry of who owns what land, creating an elaborate framework including concepts such as homesteading, adverse possession and Georgian land tax. However, there was unfortunately no effective replicated database system available at the time, and so the protocol was never implemented in practice. After 2009, however, once Bitcoin's decentralized consensus was developed a number of alternative applications rapidly began to emerge. - -- **Namecoin** - created in 2010, [Namecoin](https://namecoin.org/) is best described as a decentralized name registration database. In decentralized protocols like Tor, Bitcoin and BitMessage, there needs to be some way of identifying accounts so that other people can interact with them, but in all existing solutions the only kind of identifier available is a pseudorandom hash like `1LW79wp5ZBqaHW1jL5TCiBCrhQYtHagUWy`. Ideally, one would like to be able to have an account with a name like "george". However, the problem is that if one person can create an account named "george" then someone else can use the same process to register "george" for themselves as well and impersonate them. The only solution is a first-to-file paradigm, where the first registerer succeeds and the second fails - a problem perfectly suited for the Bitcoin consensus protocol. Namecoin is the oldest, and most successful, implementation of a name registration system using such an idea. -- **Colored coins** - the purpose of [colored coins](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit) is to serve as a protocol to allow people to create their own digital currencies - or, in the important trivial case of a currency with one unit, digital tokens, on the Bitcoin blockchain. In the colored coins protocol, one "issues" a new currency by publicly assigning a color to a specific Bitcoin UTXO, and the protocol recursively defines the color of other UTXO to be the same as the color of the inputs that the transaction creating them spent (some special rules apply in the case of mixed-color inputs). This allows users to maintain wallets containing only UTXO of a specific color and send them around much like regular bitcoins, backtracking through the blockchain to determine the color of any UTXO that they receive. -- **Metacoins** - the idea behind a metacoin is to have a protocol that lives on top of Bitcoin, using Bitcoin transactions to store metacoin transactions but having a different state transition function, `APPLY'`. Because the metacoin protocol cannot prevent invalid metacoin transactions from appearing in the Bitcoin blockchain, a rule is added that if `APPLY'(S,TX)` returns an error, the protocol defaults to `APPLY'(S,TX) = S`. This provides an easy mechanism for creating an arbitrary cryptocurrency protocol, potentially with advanced features that cannot be implemented inside of Bitcoin itself, but with a very low development cost since the complexities of mining and networking are already handled by the Bitcoin protocol. Metacoins have been used to implement some classes of financial contracts, name registration and decentralized exchange. - -Thus, in general, there are two approaches toward building a consensus protocol: building an independent network, and building a protocol on top of Bitcoin. The former approach, while reasonably successful in the case of applications like Namecoin, is difficult to implement; each individual implementation needs to bootstrap an independent blockchain, as well as building and testing all of the necessary state transition and networking code. Additionally, we predict that the set of applications for decentralized consensus technology will follow a power law distribution where the vast majority of applications would be too small to warrant their own blockchain, and we note that there exist large classes of decentralized applications, particularly decentralized autonomous organizations, that need to interact with each other. - -The Bitcoin-based approach, on the other hand, has the flaw that it does not inherit the simplified payment verification features of Bitcoin. SPV works for Bitcoin because it can use blockchain depth as a proxy for validity; at some point, once the ancestors of a transaction go far enough back, it is safe to say that they were legitimately part of the state. Blockchain-based meta-protocols, on the other hand, cannot force the blockchain not to include transactions that are not valid within the context of their own protocols. Hence, a fully secure SPV meta-protocol implementation would need to backward scan all the way to the beginning of the Bitcoin blockchain to determine whether or not certain transactions are valid. Currently, all "light" implementations of Bitcoin-based meta-protocols rely on a trusted server to provide the data, arguably a highly suboptimal result especially when one of the primary purposes of a cryptocurrency is to eliminate the need for trust. - -### Scripting {#scripting} - -Even without any extensions, the Bitcoin protocol actually does facilitate a weak version of a concept of "smart contracts". UTXO in Bitcoin can be owned not just by a public key, but also by a more complicated script expressed in a simple stack-based programming language. In this paradigm, a transaction spending that UTXO must provide data that satisfies the script. Indeed, even the basic public key ownership mechanism is implemented via a script: the script takes an elliptic curve signature as input, verifies it against the transaction and the address that owns the UTXO, and returns 1 if the verification is successful and 0 otherwise. Other, more complicated, scripts exist for various additional use cases. For example, one can construct a script that requires signatures from two out of a given three private keys to validate ("multisig"), a setup useful for corporate accounts, secure savings accounts and some merchant escrow situations. Scripts can also be used to pay bounties for solutions to computational problems, and one can even construct a script that says something like "this Bitcoin UTXO is yours if you can provide an SPV proof that you sent a Dogecoin transaction of this denomination to me", essentially allowing decentralized cross-cryptocurrency exchange. - -However, the scripting language as implemented in Bitcoin has several important limitations: - -- **Lack of Turing-completeness** - that is to say, while there is a large subset of computation that the Bitcoin scripting language supports, it does not nearly support everything. The main category that is missing is loops. This is done to avoid infinite loops during transaction verification; theoretically it is a surmountable obstacle for script programmers, since any loop can be simulated by simply repeating the underlying code many times with an if statement, but it does lead to scripts that are very space-inefficient. For example, implementing an alternative elliptic curve signature algorithm would likely require 256 repeated multiplication rounds all individually included in the code. -- **Value-blindness** - there is no way for a UTXO script to provide fine-grained control over the amount that can be withdrawn. For example, one powerful use case of an oracle contract would be a hedging contract, where A and B put in $1000 worth of BTC and after 30 days the script sends $1000 worth of BTC to A and the rest to B. This would require an oracle to determine the value of 1 BTC in USD, but even then it is a massive improvement in terms of trust and infrastructure requirement over the fully centralized solutions that are available now. However, because UTXO are all-or-nothing, the only way to achieve this is through the very inefficient hack of having many UTXO of varying denominations (eg. one UTXO of 2k for every k up to 30) and having the oracle pick which UTXO to send to A and which to B. -- **Lack of state** - UTXO can either be spent or unspent; there is no opportunity for multi-stage contracts or scripts which keep any other internal state beyond that. This makes it hard to make multi-stage options contracts, decentralized exchange offers or two-stage cryptographic commitment protocols (necessary for secure computational bounties). It also means that UTXO can only be used to build simple, one-off contracts and not more complex "stateful" contracts such as decentralized organizations, and makes meta-protocols difficult to implement. Binary state combined with value-blindness also mean that another important application, withdrawal limits, is impossible. -- **Blockchain-blindness** - UTXO are blind to blockchain data such as the nonce, the timestamp and previous block hash. This severely limits applications in gambling, and several other categories, by depriving the scripting language of a potentially valuable source of randomness. - -Thus, we see three approaches to building advanced applications on top of cryptocurrency: building a new blockchain, using scripting on top of Bitcoin, and building a meta-protocol on top of Bitcoin. Building a new blockchain allows for unlimited freedom in building a feature set, but at the cost of development time, bootstrapping effort and security. Using scripting is easy to implement and standardize, but is very limited in its capabilities, and meta-protocols, while easy, suffer from faults in scalability. With Ethereum, we intend to build an alternative framework that provides even larger gains in ease of development as well as even stronger light client properties, while at the same time allowing applications to share an economic environment and blockchain security. - -## Ethereum {#ethereum} - -The intent of Ethereum is to create an alternative protocol for building decentralized applications, providing a different set of tradeoffs that we believe will be very useful for a large class of decentralized applications, with particular emphasis on situations where rapid development time, security for small and rarely used applications, and the ability of different applications to very efficiently interact, are important. Ethereum does this by building what is essentially the ultimate abstract foundational layer: a blockchain with a built-in Turing-complete programming language, allowing anyone to write smart contracts and decentralized applications where they can create their own arbitrary rules for ownership, transaction formats and state transition functions. A bare-bones version of Namecoin can be written in two lines of code, and other protocols like currencies and reputation systems can be built in under twenty. Smart contracts, cryptographic "boxes" that contain value and only unlock it if certain conditions are met, can also be built on top of the platform, with vastly more power than that offered by Bitcoin scripting because of the added powers of Turing-completeness, value-awareness, blockchain-awareness and state. - -### Ethereum Accounts {#ethereum-accounts} - -In Ethereum, the state is made up of objects called "accounts", with each account having a 20-byte address and state transitions being direct transfers of value and information between accounts. An Ethereum account contains four fields: - -- The **nonce**, a counter used to make sure each transaction can only be processed once -- The account's current **ether balance** -- The account's **contract code**, if present -- The account's **storage** (empty by default) - -"Ether" is the main internal crypto-fuel of Ethereum, and is used to pay transaction fees. In general, there are two types of accounts: **externally owned accounts**, controlled by private keys, and **contract accounts**, controlled by their contract code. An externally owned account has no code, and one can send messages from an externally owned account by creating and signing a transaction; in a contract account, every time the contract account receives a message its code activates, allowing it to read and write to internal storage and send other messages or create contracts in turn. - -Note that "contracts" in Ethereum should not be seen as something that should be "fulfilled" or "complied with"; rather, they are more like "autonomous agents" that live inside of the Ethereum execution environment, always executing a specific piece of code when "poked" by a message or transaction, and having direct control over their own ether balance and their own key/value store to keep track of persistent variables. - -### Messages and Transactions {#messages-and-transactions} - -The term "transaction" is used in Ethereum to refer to the signed data package that stores a message to be sent from an externally owned account. Transactions contain: - -- The recipient of the message -- A signature identifying the sender -- The amount of ether to transfer from the sender to the recipient -- An optional data field -- A `STARTGAS` value, representing the maximum number of computational steps the transaction execution is allowed to take -- A `GASPRICE` value, representing the fee the sender pays per computational step - -The first three are standard fields expected in any cryptocurrency. The data field has no function by default, but the virtual machine has an opcode using which a contract can access the data; as an example use case, if a contract is functioning as an on-blockchain domain registration service, then it may wish to interpret the data being passed to it as containing two "fields", the first field being a domain to register and the second field being the IP address to register it to. The contract would read these values from the message data and appropriately place them in storage. - -The `STARTGAS` and `GASPRICE` fields are crucial for Ethereum's anti-denial of service model. In order to prevent accidental or hostile infinite loops or other computational wastage in code, each transaction is required to set a limit to how many computational steps of code execution it can use. The fundamental unit of computation is "gas"; usually, a computational step costs 1 gas, but some operations cost higher amounts of gas because they are more computationally expensive, or increase the amount of data that must be stored as part of the state. There is also a fee of 5 gas for every byte in the transaction data. The intent of the fee system is to require an attacker to pay proportionately for every resource that they consume, including computation, bandwidth and storage; hence, any transaction that leads to the network consuming a greater amount of any of these resources must have a gas fee roughly proportional to the increment. - -### Messages {#messages} - -Contracts have the ability to send "messages" to other contracts. Messages are virtual objects that are never serialized and exist only in the Ethereum execution environment. A message contains: - -- The sender of the message (implicit) -- The recipient of the message -- The amount of ether to transfer alongside the message -- An optional data field -- A `STARTGAS` value - -Essentially, a message is like a transaction, except it is produced by a contract and not an external actor. A message is produced when a contract currently executing code executes the `CALL` opcode, which produces and executes a message. Like a transaction, a message leads to the recipient account running its code. Thus, contracts can have relationships with other contracts in exactly the same way that external actors can. - -Note that the gas allowance assigned by a transaction or contract applies to the total gas consumed by that transaction and all sub-executions. For example, if an external actor A sends a transaction to B with 1000 gas, and B consumes 600 gas before sending a message to C, and the internal execution of C consumes 300 gas before returning, then B can spend another 100 gas before running out of gas. - -### Ethereum State Transition Function {#ethereum-state-transition-function} - -![Ether state transition](./ether-state-transition.png) - -The Ethereum state transition function, `APPLY(S,TX) -> S'` can be defined as follows: - -1. Check if the transaction is well-formed (ie. has the right number of values), the signature is valid, and the nonce matches the nonce in the sender's account. If not, return an error. -2. Calculate the transaction fee as `STARTGAS * GASPRICE`, and determine the sending address from the signature. Subtract the fee from the sender's account balance and increment the sender's nonce. If there is not enough balance to spend, return an error. -3. Initialize `GAS = STARTGAS`, and take off a certain quantity of gas per byte to pay for the bytes in the transaction. -4. Transfer the transaction value from the sender's account to the receiving account. If the receiving account does not yet exist, create it. If the receiving account is a contract, run the contract's code either to completion or until the execution runs out of gas. -5. If the value transfer failed because the sender did not have enough money, or the code execution ran out of gas, revert all state changes except the payment of the fees, and add the fees to the miner's account. -6. Otherwise, refund the fees for all remaining gas to the sender, and send the fees paid for gas consumed to the miner. - -For example, suppose that the contract's code is: - -```py -if !self.storage[calldataload(0)]: - self.storage[calldataload(0)] = calldataload(32) -``` - -Note that in reality the contract code is written in the low-level EVM code; this example is written in Serpent, one of our high-level languages, for clarity, and can be compiled down to EVM code. Suppose that the contract's storage starts off empty, and a transaction is sent with 10 ether value, 2000 gas, 0.001 ether gasprice, and 64 bytes of data, with bytes 0-31 representing the number `2` and bytes 32-63 representing the string `CHARLIE`. The process for the state transition function in this case is as follows: - -1. Check that the transaction is valid and well formed. -2. Check that the transaction sender has at least 2000 \* 0.001 = 2 ether. If it is, then subtract 2 ether from the sender's account. -3. Initialize gas = 2000; assuming the transaction is 170 bytes long and the byte-fee is 5, subtract 850 so that there is 1150 gas left. -4. Subtract 10 more ether from the sender's account, and add it to the contract's account. -5. Run the code. In this case, this is simple: it checks if the contract's storage at index `2` is used, notices that it is not, and so it sets the storage at index `2` to the value `CHARLIE`. Suppose this takes 187 gas, so the remaining amount of gas is 1150 - 187 = 963 -6. Add 963 \* 0.001 = 0.963 ether back to the sender's account, and return the resulting state. - -If there was no contract at the receiving end of the transaction, then the total transaction fee would simply be equal to the provided `GASPRICE` multiplied by the length of the transaction in bytes, and the data sent alongside the transaction would be irrelevant. - -Note that messages work equivalently to transactions in terms of reverts: if a message execution runs out of gas, then that message's execution, and all other executions triggered by that execution, revert, but parent executions do not need to revert. This means that it is "safe" for a contract to call another contract, as if A calls B with G gas then A's execution is guaranteed to lose at most G gas. Finally, note that there is an opcode, `CREATE`, that creates a contract; its execution mechanics are generally similar to `CALL`, with the exception that the output of the execution determines the code of a newly created contract. - -### Code Execution {#code-execution} - -The code in Ethereum contracts is written in a low-level, stack-based bytecode language, referred to as "Ethereum virtual machine code" or "EVM code". The code consists of a series of bytes, where each byte represents an operation. In general, code execution is an infinite loop that consists of repeatedly carrying out the operation at the current program counter (which begins at zero) and then incrementing the program counter by one, until the end of the code is reached or an error or `STOP` or `RETURN` instruction is detected. The operations have access to three types of space in which to store data: - -- The **stack**, a last-in-first-out container to which values can be pushed and popped -- **Memory**, an infinitely expandable byte array -- The contract's long-term **storage**, a key/value store. Unlike stack and memory, which reset after computation ends, storage persists for the long term. - -The code can also access the value, sender and data of the incoming message, as well as block header data, and the code can also return a byte array of data as an output. - -The formal execution model of EVM code is surprisingly simple. While the Ethereum virtual machine is running, its full computational state can be defined by the tuple `(block_state, transaction, message, code, memory, stack, pc, gas)`, where `block_state` is the global state containing all accounts and includes balances and storage. At the start of every round of execution, the current instruction is found by taking the `pc`th byte of `code` (or 0 if `pc >= len(code)`), and each instruction has its own definition in terms of how it affects the tuple. For example, `ADD` pops two items off the stack and pushes their sum, reduces `gas` by 1 and increments `pc` by 1, and `SSTORE` pops the top two items off the stack and inserts the second item into the contract's storage at the index specified by the first item. Although there are many ways to optimize Ethereum virtual machine execution via just-in-time compilation, a basic implementation of Ethereum can be done in a few hundred lines of code. - -### Blockchain and Mining {#blockchain-and-mining} - -![Ethereum apply block diagram](./ethereum-apply-block-diagram.png) - -The Ethereum blockchain is in many ways similar to the Bitcoin blockchain, although it does have some differences. The main difference between Ethereum and Bitcoin with regard to the blockchain architecture is that, unlike Bitcoin, Ethereum blocks contain a copy of both the transaction list and the most recent state. Aside from that, two other values, the block number and the difficulty, are also stored in the block. The basic block validation algorithm in Ethereum is as follows: - -1. Check if the previous block referenced exists and is valid. -2. Check that the timestamp of the block is greater than that of the referenced previous block and less than 15 minutes into the future -3. Check that the block number, difficulty, transaction root, uncle root and gas limit (various low-level Ethereum-specific concepts) are valid. -4. Check that the proof-of-work on the block is valid. -5. Let `S[0]` be the state at the end of the previous block. -6. Let `TX` be the block's transaction list, with `n` transactions. For all `i` in `0...n-1`, set `S[i+1] = APPLY(S[i],TX[i])`. If any applications returns an error, or if the total gas consumed in the block up until this point exceeds the `GASLIMIT`, return an error. -7. Let `S_FINAL` be `S[n]`, but adding the block reward paid to the miner. -8. Check if the Merkle tree root of the state `S_FINAL` is equal to the final state root provided in the block header. If it is, the block is valid; otherwise, it is not valid. - -The approach may seem highly inefficient at first glance, because it needs to store the entire state with each block, but in reality efficiency should be comparable to that of Bitcoin. The reason is that the state is stored in the tree structure, and after every block only a small part of the tree needs to be changed. Thus, in general, between two adjacent blocks the vast majority of the tree should be the same, and therefore the data can be stored once and referenced twice using pointers (ie. hashes of subtrees). A special kind of tree known as a "Patricia tree" is used to accomplish this, including a modification to the Merkle tree concept that allows for nodes to be inserted and deleted, and not just changed, efficiently. Additionally, because all of the state information is part of the last block, there is no need to store the entire blockchain history - a strategy which, if it could be applied to Bitcoin, can be calculated to provide 5-20x savings in space. - -A commonly asked question is "where" contract code is executed, in terms of physical hardware. This has a simple answer: the process of executing contract code is part of the definition of the state transition function, which is part of the block validation algorithm, so if a transaction is added into block `B` the code execution spawned by that transaction will be executed by all nodes, now and in the future, that download and validate block `B`. - -## Applications {#applications} - -In general, there are three types of applications on top of Ethereum. The first category is financial applications, providing users with more powerful ways of managing and entering into contracts using their money. This includes sub-currencies, financial derivatives, hedging contracts, savings wallets, wills, and ultimately even some classes of full-scale employment contracts. The second category is semi-financial applications, where money is involved but there is also a heavy non-monetary side to what is being done; a perfect example is self-enforcing bounties for solutions to computational problems. Finally, there are applications such as online voting and decentralized governance that are not financial at all. - -### Token Systems {#token-systems} - -On-blockchain token systems have many applications ranging from sub-currencies representing assets such as USD or gold to company stocks, individual tokens representing smart property, secure unforgeable coupons, and even token systems with no ties to conventional value at all, used as point systems for incentivization. Token systems are surprisingly easy to implement in Ethereum. The key point to understand is that all a currency, or token system, fundamentally is, is a database with one operation: subtract X units from A and give X units to B, with the proviso that (i) A had at least X units before the transaction and (2) the transaction is approved by A. All that it takes to implement a token system is to implement this logic into a contract. - -The basic code for implementing a token system in Serpent looks as follows: - -```py -def send(to, value): - if self.storage[msg.sender] >= value: - self.storage[msg.sender] = self.storage[msg.sender] - value - self.storage[to] = self.storage[to] + value -``` - -This is essentially a literal implementation of the "banking system" state transition function described further above in this document. A few extra lines of code need to be added to provide for the initial step of distributing the currency units in the first place and a few other edge cases, and ideally a function would be added to let other contracts query for the balance of an address. But that's all there is to it. Theoretically, Ethereum-based token systems acting as sub-currencies can potentially include another important feature that on-chain Bitcoin-based meta-currencies lack: the ability to pay transaction fees directly in that currency. The way this would be implemented is that the contract would maintain an ether balance with which it would refund ether used to pay fees to the sender, and it would refill this balance by collecting the internal currency units that it takes in fees and reselling them in a constant running auction. Users would thus need to "activate" their accounts with ether, but once the ether is there it would be reusable because the contract would refund it each time. - -### Financial derivatives and Stable-Value Currencies {#financial-derivatives-and-stable-value-currencies} - -Financial derivatives are the most common application of a "smart contract", and one of the simplest to implement in code. The main challenge in implementing financial contracts is that the majority of them require reference to an external price ticker; for example, a very desirable application is a smart contract that hedges against the volatility of ether (or another cryptocurrency) with respect to the US dollar, but doing this requires the contract to know what the value of ETH/USD is. The simplest way to do this is through a "data feed" contract maintained by a specific party (eg. NASDAQ) designed so that that party has the ability to update the contract as needed, and providing an interface that allows other contracts to send a message to that contract and get back a response that provides the price. - -Given that critical ingredient, the hedging contract would look as follows: - -1. Wait for party A to input 1000 ether. -2. Wait for party B to input 1000 ether. -3. Record the USD value of 1000 ether, calculated by querying the data feed contract, in storage, say this is $x. -4. After 30 days, allow A or B to "reactivate" the contract in order to send $x worth of ether (calculated by querying the data feed contract again to get the new price) to A and the rest to B. - -Such a contract would have significant potential in crypto-commerce. One of the main problems cited about cryptocurrency is the fact that it's volatile; although many users and merchants may want the security and convenience of dealing with cryptographic assets, they many not wish to face that prospect of losing 23% of the value of their funds in a single day. Up until now, the most commonly proposed solution has been issuer-backed assets; the idea is that an issuer creates a sub-currency in which they have the right to issue and revoke units, and provide one unit of the currency to anyone who provides them (offline) with one unit of a specified underlying asset (eg. gold, USD). The issuer then promises to provide one unit of the underlying asset to anyone who sends back one unit of the crypto-asset. This mechanism allows any non-cryptographic asset to be "uplifted" into a cryptographic asset, provided that the issuer can be trusted. - -In practice, however, issuers are not always trustworthy, and in some cases the banking infrastructure is too weak, or too hostile, for such services to exist. Financial derivatives provide an alternative. Here, instead of a single issuer providing the funds to back up an asset, a decentralized market of speculators, betting that the price of a cryptographic reference asset (eg. ETH) will go up, plays that role. Unlike issuers, speculators have no option to default on their side of the bargain because the hedging contract holds their funds in escrow. Note that this approach is not fully decentralized, because a trusted source is still needed to provide the price ticker, although arguably even still this is a massive improvement in terms of reducing infrastructure requirements (unlike being an issuer, issuing a price feed requires no licenses and can likely be categorized as free speech) and reducing the potential for fraud. - -### Identity and Reputation Systems {#identity-and-reputation-systems} - -The earliest alternative cryptocurrency of all, [Namecoin](http://namecoin.org/), attempted to use a Bitcoin-like blockchain to provide a name registration system, where users can register their names in a public database alongside other data. The major cited use case is for a [DNS](https://wikipedia.org/wiki/Domain_Name_System) system, mapping domain names like "bitcoin.org" (or, in Namecoin's case, "bitcoin.bit") to an IP address. Other use cases include email authentication and potentially more advanced reputation systems. Here is the basic contract to provide a Namecoin-like name registration system on Ethereum: - -```py -def register(name, value): - if !self.storage[name]: - self.storage[name] = value -``` - -The contract is very simple; all it is is a database inside the Ethereum network that can be added to, but not modified or removed from. Anyone can register a name with some value, and that registration then sticks forever. A more sophisticated name registration contract will also have a "function clause" allowing other contracts to query it, as well as a mechanism for the "owner" (ie. the first registerer) of a name to change the data or transfer ownership. One can even add reputation and web-of-trust functionality on top. - -### Decentralized File Storage {#decentralized-file-storage} - -Over the past few years, there have emerged a number of popular online file storage startups, the most prominent being Dropbox, seeking to allow users to upload a backup of their hard drive and have the service store the backup and allow the user to access it in exchange for a monthly fee. However, at this point the file storage market is at times relatively inefficient; a cursory look at various existing solutions shows that, particularly at the "uncanny valley" 20-200 GB level at which neither free quotas nor enterprise-level discounts kick in, monthly prices for mainstream file storage costs are such that you are paying for more than the cost of the entire hard drive in a single month. Ethereum contracts can allow for the development of a decentralized file storage ecosystem, where individual users can earn small quantities of money by renting out their own hard drives and unused space can be used to further drive down the costs of file storage. - -The key underpinning piece of such a device would be what we have termed the "decentralized Dropbox contract". This contract works as follows. First, one splits the desired data up into blocks, encrypting each block for privacy, and builds a Merkle tree out of it. One then makes a contract with the rule that, every N blocks, the contract would pick a random index in the Merkle tree (using the previous block hash, accessible from contract code, as a source of randomness), and give X ether to the first entity to supply a transaction with a simplified payment verification-like proof of ownership of the block at that particular index in the tree. When a user wants to re-download their file, they can use a micropayment channel protocol (eg. pay 1 szabo per 32 kilobytes) to recover the file; the most fee-efficient approach is for the payer not to publish the transaction until the end, instead replacing the transaction with a slightly more lucrative one with the same nonce after every 32 kilobytes. - -An important feature of the protocol is that, although it may seem like one is trusting many random nodes not to decide to forget the file, one can reduce that risk down to near-zero by splitting the file into many pieces via secret sharing, and watching the contracts to see each piece is still in some node's possession. If a contract is still paying out money, that provides a cryptographic proof that someone out there is still storing the file. - -### Decentralized Autonomous Organizations {#decentralized-autonomous-organizations} - -The general concept of a "decentralized autonomous organization" is that of a virtual entity that has a certain set of members or shareholders which, perhaps with a 67% majority, have the right to spend the entity's funds and modify its code. The members would collectively decide on how the organization should allocate its funds. Methods for allocating a DAO's funds could range from bounties, salaries to even more exotic mechanisms such as an internal currency to reward work. This essentially replicates the legal trappings of a traditional company or nonprofit but using only cryptographic blockchain technology for enforcement. So far much of the talk around DAOs has been around the "capitalist" model of a "decentralized autonomous corporation" (DAC) with dividend-receiving shareholders and tradable shares; an alternative, perhaps described as a "decentralized autonomous community", would have all members have an equal share in the decision making and require 67% of existing members to agree to add or remove a member. The requirement that one person can only have one membership would then need to be enforced collectively by the group. - -A general outline for how to code a DAO is as follows. The simplest design is simply a piece of self-modifying code that changes if two thirds of members agree on a change. Although code is theoretically immutable, one can easily get around this and have de-facto mutability by having chunks of the code in separate contracts, and having the address of which contracts to call stored in the modifiable storage. In a simple implementation of such a DAO contract, there would be three transaction types, distinguished by the data provided in the transaction: - -- `[0,i,K,V]` to register a proposal with index `i` to change the address at storage index `K` to value `V` -- `[1,i]` to register a vote in favor of proposal `i` -- `[2,i]` to finalize proposal `i` if enough votes have been made - -The contract would then have clauses for each of these. It would maintain a record of all open storage changes, along with a list of who voted for them. It would also have a list of all members. When any storage change gets to two thirds of members voting for it, a finalizing transaction could execute the change. A more sophisticated skeleton would also have built-in voting ability for features like sending a transaction, adding members and removing members, and may even provide for [Liquid Democracy](https://wikipedia.org/wiki/Liquid_democracy)-style vote delegation (ie. anyone can assign someone to vote for them, and assignment is transitive so if A assigns B and B assigns C then C determines A's vote). This design would allow the DAO to grow organically as a decentralized community, allowing people to eventually delegate the task of filtering out who is a member to specialists, although unlike in the "current system" specialists can easily pop in and out of existence over time as individual community members change their alignments. - -An alternative model is for a decentralized corporation, where any account can have zero or more shares, and two thirds of the shares are required to make a decision. A complete skeleton would involve asset management functionality, the ability to make an offer to buy or sell shares, and the ability to accept offers (preferably with an order-matching mechanism inside the contract). Delegation would also exist Liquid Democracy-style, generalizing the concept of a "board of directors". - -### Further Applications {#further-applications} - -**1. Savings wallets**. Suppose that Alice wants to keep her funds safe, but is worried that she will lose or someone will hack her private key. She puts ether into a contract with Bob, a bank, as follows: - -- Alice alone can withdraw a maximum of 1% of the funds per day. -- Bob alone can withdraw a maximum of 1% of the funds per day, but Alice has the ability to make a transaction with her key shutting off this ability. -- Alice and Bob together can withdraw anything. - -Normally, 1% per day is enough for Alice, and if Alice wants to withdraw more she can contact Bob for help. If Alice's key gets hacked, she runs to Bob to move the funds to a new contract. If she loses her key, Bob will get the funds out eventually. If Bob turns out to be malicious, then she can turn off his ability to withdraw. - -**2. Crop insurance**. One can easily make a financial derivatives contract but using a data feed of the weather instead of any price index. If a farmer in Iowa purchases a derivative that pays out inversely based on the precipitation in Iowa, then if there is a drought, the farmer will automatically receive money and if there is enough rain the farmer will be happy because their crops would do well. This can be expanded to natural disaster insurance generally. - -**3. A decentralized data feed**. For financial contracts for difference, it may actually be possible to decentralize the data feed via a protocol called "[SchellingCoin](http://blog.ethereum.org/2014/03/28/schellingcoin-a-minimal-trust-universal-data-feed/)". SchellingCoin basically works as follows: N parties all put into the system the value of a given datum (eg. the ETH/USD price), the values are sorted, and everyone between the 25th and 75th percentile gets one token as a reward. Everyone has the incentive to provide the answer that everyone else will provide, and the only value that a large number of players can realistically agree on is the obvious default: the truth. This creates a decentralized protocol that can theoretically provide any number of values, including the ETH/USD price, the temperature in Berlin or even the result of a particular hard computation. - -**4. Smart multisignature escrow**. Bitcoin allows multisignature transaction contracts where, for example, three out of a given five keys can spend the funds. Ethereum allows for more granularity; for example, four out of five can spend everything, three out of five can spend up to 10% per day, and two out of five can spend up to 0.5% per day. Additionally, Ethereum multisig is asynchronous - two parties can register their signatures on the blockchain at different times and the last signature will automatically send the transaction. - -**5. Cloud computing**. The EVM technology can also be used to create a verifiable computing environment, allowing users to ask others to carry out computations and then optionally ask for proofs that computations at certain randomly selected checkpoints were done correctly. This allows for the creation of a cloud computing market where any user can participate with their desktop, laptop or specialized server, and spot-checking together with security deposits can be used to ensure that the system is trustworthy (ie. nodes cannot profitably cheat). Although such a system may not be suitable for all tasks; tasks that require a high level of inter-process communication, for example, cannot easily be done on a large cloud of nodes. Other tasks, however, are much easier to parallelize; projects like SETI@home, folding@home and genetic algorithms can easily be implemented on top of such a platform. - -**6. Peer-to-peer gambling**. Any number of peer-to-peer gambling protocols, such as Frank Stajano and Richard Clayton's [Cyberdice](http://www.cl.cam.ac.uk/~fms27/papers/2008-StajanoCla-cyberdice.pdf), can be implemented on the Ethereum blockchain. The simplest gambling protocol is actually simply a contract for difference on the next block hash, and more advanced protocols can be built up from there, creating gambling services with near-zero fees that have no ability to cheat. - -**7. Prediction markets**. Provided an oracle or SchellingCoin, prediction markets are also easy to implement, and prediction markets together with SchellingCoin may prove to be the first mainstream application of [futarchy](http://hanson.gmu.edu/futarchy.html) as a governance protocol for decentralized organizations. - -**8. On-chain decentralized marketplaces**, using the identity and reputation system as a base. - -## Miscellanea And Concerns {#miscellanea-and-concerns} - -### Modified GHOST Implementation {#modified-ghost-implementation} - -The "Greedy Heaviest Observed Subtree" (GHOST) protocol is an innovation first introduced by Yonatan Sompolinsky and Aviv Zohar in [December 2013](https://eprint.iacr.org/2013/881.pdf). The motivation behind GHOST is that blockchains with fast confirmation times currently suffer from reduced security due to a high stale rate - because blocks take a certain time to propagate through the network, if miner A mines a block and then miner B happens to mine another block before miner A's block propagates to B, miner B's block will end up wasted and will not contribute to network security. Furthermore, there is a centralization issue: if miner A is a mining pool with 30% hashpower and B has 10% hashpower, A will have a risk of producing a stale block 70% of the time (since the other 30% of the time A produced the last block and so will get mining data immediately) whereas B will have a risk of producing a stale block 90% of the time. Thus, if the block interval is short enough for the stale rate to be high, A will be substantially more efficient simply by virtue of its size. With these two effects combined, blockchains which produce blocks quickly are very likely to lead to one mining pool having a large enough percentage of the network hashpower to have de facto control over the mining process. - -As described by Sompolinsky and Zohar, GHOST solves the first issue of network security loss by including stale blocks in the calculation of which chain is the "longest"; that is to say, not just the parent and further ancestors of a block, but also the stale descendants of the block's ancestor (in Ethereum jargon, "uncles") are added to the calculation of which block has the largest total proof-of-work backing it. To solve the second issue of centralization bias, we go beyond the protocol described by Sompolinsky and Zohar, and also provide block rewards to stales: a stale block receives 87.5% of its base reward, and the nephew that includes the stale block receives the remaining 12.5%. Transaction fees, however, are not awarded to uncles. - -Ethereum implements a simplified version of GHOST which only goes down seven levels. Specifically, it is defined as follows: - -- A block must specify a parent, and it must specify 0 or more uncles -- An uncle included in block B must have the following properties: - - It must be a direct child of the kth generation ancestor of B, where 2 <= k <= 7. - - It cannot be an ancestor of B - - An uncle must be a valid block header, but does not need to be a previously verified or even valid block - - An uncle must be different from all uncles included in previous blocks and all other uncles included in the same block (non-double-inclusion) -- For every uncle U in block B, the miner of B gets an additional 3.125% added to its coinbase reward and the miner of U gets 93.75% of a standard coinbase reward. - -This limited version of GHOST, with uncles includable only up to 7 generations, was used for two reasons. First, unlimited GHOST would include too many complications into the calculation of which uncles for a given block are valid. Second, unlimited GHOST with compensation as used in Ethereum removes the incentive for a miner to mine on the main chain and not the chain of a public attacker. - -### Fees {#fees} - -Because every transaction published into the blockchain imposes on the network the cost of needing to download and verify it, there is a need for some regulatory mechanism, typically involving transaction fees, to prevent abuse. The default approach, used in Bitcoin, is to have purely voluntary fees, relying on miners to act as the gatekeepers and set dynamic minimums. This approach has been received very favorably in the Bitcoin community particularly because it is "market-based", allowing supply and demand between miners and transaction senders determine the price. The problem with this line of reasoning is, however, that transaction processing is not a market; although it is intuitively attractive to construe transaction processing as a service that the miner is offering to the sender, in reality every transaction that a miner includes will need to be processed by every node in the network, so the vast majority of the cost of transaction processing is borne by third parties and not the miner that is making the decision of whether or not to include it. Hence, tragedy-of-the-commons problems are very likely to occur. - -However, as it turns out this flaw in the market-based mechanism, when given a particular inaccurate simplifying assumption, magically cancels itself out. The argument is as follows. Suppose that: - -1. A transaction leads to `k` operations, offering the reward `kR` to any miner that includes it where `R` is set by the sender and `k` and `R` are (roughly) visible to the miner beforehand. -2. An operation has a processing cost of `C` to any node (ie. all nodes have equal efficiency) -3. There are `N` mining nodes, each with exactly equal processing power (ie. `1/N` of total) -4. No non-mining full nodes exist. - -A miner would be willing to process a transaction if the expected reward is greater than the cost. Thus, the expected reward is `kR/N` since the miner has a `1/N` chance of processing the next block, and the processing cost for the miner is simply `kC`. Hence, miners will include transactions where `kR/N > kC`, or `R > NC`. Note that `R` is the per-operation fee provided by the sender, and is thus a lower bound on the benefit that the sender derives from the transaction, and `NC` is the cost to the entire network together of processing an operation. Hence, miners have the incentive to include only those transactions for which the total utilitarian benefit exceeds the cost. - -However, there are several important deviations from those assumptions in reality: - -1. The miner does pay a higher cost to process the transaction than the other verifying nodes, since the extra verification time delays block propagation and thus increases the chance the block will become a stale. -2. There do exist nonmining full nodes. -3. The mining power distribution may end up radically inegalitarian in practice. -4. Speculators, political enemies and crazies whose utility function includes causing harm to the network do exist, and they can cleverly set up contracts where their cost is much lower than the cost paid by other verifying nodes. - -(1) provides a tendency for the miner to include fewer transactions, and -(2) increases `NC`; hence, these two effects at least partially -cancel each other -out.[How?](https://github.com/ethereum/wiki/issues/447#issuecomment-316972260) -(3) and (4) are the major issue; to solve them we simply institute a -floating cap: no block can have more operations than -`BLK_LIMIT_FACTOR` times the long-term exponential moving average. -Specifically: - -```js -blk.oplimit = floor((blk.parent.oplimit \* (EMAFACTOR - 1) + -floor(parent.opcount \* BLK\_LIMIT\_FACTOR)) / EMA\_FACTOR) -``` - -`BLK_LIMIT_FACTOR` and `EMA_FACTOR` are constants that will be set to 65536 and 1.5 for the time being, but will likely be changed after further analysis. - -There is another factor disincentivizing large block sizes in Bitcoin: blocks that are large will take longer to propagate, and thus have a higher probability of becoming stales. In Ethereum, highly gas-consuming blocks can also take longer to propagate both because they are physically larger and because they take longer to process the transaction state transitions to validate. This delay disincentive is a significant consideration in Bitcoin, but less so in Ethereum because of the GHOST protocol; hence, relying on regulated block limits provides a more stable baseline. - -### Computation And Turing-Completeness {#computation-and-turing-completeness} - -An important note is that the Ethereum virtual machine is Turing-complete; this means that EVM code can encode any computation that can be conceivably carried out, including infinite loops. EVM code allows looping in two ways. First, there is a `JUMP` instruction that allows the program to jump back to a previous spot in the code, and a `JUMPI` instruction to do conditional jumping, allowing for statements like `while x < 27: x = x * 2`. Second, contracts can call other contracts, potentially allowing for looping through recursion. This naturally leads to a problem: can malicious users essentially shut miners and full nodes down by forcing them to enter into an infinite loop? The issue arises because of a problem in computer science known as the halting problem: there is no way to tell, in the general case, whether or not a given program will ever halt. - -As described in the state transition section, our solution works by requiring a transaction to set a maximum number of computational steps that it is allowed to take, and if execution takes longer computation is reverted but fees are still paid. Messages work in the same way. To show the motivation behind our solution, consider the following examples: - -- An attacker creates a contract which runs an infinite loop, and then sends a transaction activating that loop to the miner. The miner will process the transaction, running the infinite loop, and wait for it to run out of gas. Even though the execution runs out of gas and stops halfway through, the transaction is still valid and the miner still claims the fee from the attacker for each computational step. -- An attacker creates a very long infinite loop with the intent of forcing the miner to keep computing for such a long time that by the time computation finishes a few more blocks will have come out and it will not be possible for the miner to include the transaction to claim the fee. However, the attacker will be required to submit a value for `STARTGAS` limiting the number of computational steps that execution can take, so the miner will know ahead of time that the computation will take an excessively large number of steps. -- An attacker sees a contract with code of some form like `send(A,contract.storage[A]); contract.storage[A] = 0`, and sends a transaction with just enough gas to run the first step but not the second (ie. making a withdrawal but not letting the balance go down). The contract author does not need to worry about protecting against such attacks, because if execution stops halfway through the changes get reverted. -- A financial contract works by taking the median of nine proprietary data feeds in order to minimize risk. An attacker takes over one of the data feeds, which is designed to be modifiable via the variable-address-call mechanism described in the section on DAOs, and converts it to run an infinite loop, thereby attempting to force any attempts to claim funds from the financial contract to run out of gas. However, the financial contract can set a gas limit on the message to prevent this problem. - -The alternative to Turing-completeness is Turing-incompleteness, where `JUMP` and `JUMPI` do not exist and only one copy of each contract is allowed to exist in the call stack at any given time. With this system, the fee system described and the uncertainties around the effectiveness of our solution might not be necessary, as the cost of executing a contract would be bounded above by its size. Additionally, Turing-incompleteness is not even that big a limitation; out of all the contract examples we have conceived internally, so far only one required a loop, and even that loop could be removed by making 26 repetitions of a one-line piece of code. Given the serious implications of Turing-completeness, and the limited benefit, why not simply have a Turing-incomplete language? In reality, however, Turing-incompleteness is far from a neat solution to the problem. To see why, consider the following contracts: - -```sh -C0: call(C1); call(C1); -C1: call(C2); call(C2); -C2: call(C3); call(C3); -... -C49: call(C50); call(C50); -C50: (run one step of a program and record the change in storage) -``` - -Now, send a transaction to A. Thus, in 51 transactions, we have a contract that takes up 250 computational steps. Miners could try to detect such logic bombs ahead of time by maintaining a value alongside each contract specifying the maximum number of computational steps that it can take, and calculating this for contracts calling other contracts recursively, but that would require miners to forbid contracts that create other contracts (since the creation and execution of all 26 contracts above could easily be rolled into a single contract). Another problematic point is that the address field of a message is a variable, so in general it may not even be possible to tell which other contracts a given contract will call ahead of time. Hence, all in all, we have a surprising conclusion: Turing-completeness is surprisingly easy to manage, and the lack of Turing-completeness is equally surprisingly difficult to manage unless the exact same controls are in place - but in that case why not just let the protocol be Turing-complete? - -### Currency And Issuance {#currency-and-issuance} - -The Ethereum network includes its own built-in currency, ether, which serves the dual purpose of providing a primary liquidity layer to allow for efficient exchange between various types of digital assets and, more importantly, of providing a mechanism for paying transaction fees. For convenience and to avoid future argument (see the current mBTC/uBTC/satoshi debate in Bitcoin), the denominations will be pre-labelled: - -- 1: wei -- 1012: szabo -- 1015: finney -- 1018: ether - -This should be taken as an expanded version of the concept of "dollars" and "cents" or "BTC" and "satoshi". In the near future, we expect "ether" to be used for ordinary transactions, "finney" for microtransactions and "szabo" and "wei" for technical discussions around fees and protocol implementation; the remaining denominations may become useful later and should not be included in clients at this point. - -The issuance model will be as follows: - -- Ether will be released in a currency sale at the price of 1000-2000 ether per BTC, a mechanism intended to fund the Ethereum organization and pay for development that has been used with success by other platforms such as Mastercoin and NXT. Earlier buyers will benefit from larger discounts. The BTC received from the sale will be used entirely to pay salaries and bounties to developers and invested into various for-profit and non-profit projects in the Ethereum and cryptocurrency ecosystem. -- 0.099x the total amount sold (60102216 ETH) will be allocated to the organization to compensate early contributors and pay ETH-denominated expenses before the genesis block. -- 0.099x the total amount sold will be maintained as a long-term reserve. -- 0.26x the total amount sold will be allocated to miners per year forever after that point. - -| Group | At launch | After 1 year | After 5 years | -| ---------------------- | --------- | ------------ | ------------- | -| Currency units | 1.198X | 1.458X | 2.498X | -| Purchasers | 83.5% | 68.6% | 40.0% | -| Reserve spent pre-sale | 8.26% | 6.79% | 3.96% | -| Reserve used post-sale | 8.26% | 6.79% | 3.96% | -| Miners | 0% | 17.8% | 52.0% | - -#### Long-Term Supply Growth Rate (percent) - -![Ethereum inflation](./ethereum-inflation.png) - -_Despite the linear currency issuance, just like with Bitcoin over time the supply growth rate nevertheless tends to zero._ - -The two main choices in the above model are (1) the existence and size of an endowment pool, and (2) the existence of a permanently growing linear supply, as opposed to a capped supply as in Bitcoin. The justification of the endowment pool is as follows. If the endowment pool did not exist, and the linear issuance reduced to 0.217x to provide the same inflation rate, then the total quantity of ether would be 16.5% less and so each unit would be 19.8% more valuable. Hence, in the equilibrium 19.8% more ether would be purchased in the sale, so each unit would once again be exactly as valuable as before. The organization would also then have 1.198x as much BTC, which can be considered to be split into two slices: the original BTC, and the additional 0.198x. Hence, this situation is _exactly equivalent_ to the endowment, but with one important difference: the organization holds purely BTC, and so is not incentivized to support the value of the ether unit. - -The permanent linear supply growth model reduces the risk of what some see as excessive wealth concentration in Bitcoin, and gives individuals living in present and future eras a fair chance to acquire currency units, while at the same time retaining a strong incentive to obtain and hold ether because the "supply growth rate" as a percentage still tends to zero over time. We also theorize that because coins are always lost over time due to carelessness, death, etc, and coin loss can be modeled as a percentage of the total supply per year, that the total currency supply in circulation will in fact eventually stabilize at a value equal to the annual issuance divided by the loss rate (eg. at a loss rate of 1%, once the supply reaches 26X then 0.26X will be mined and 0.26X lost every year, creating an equilibrium). - -Note that in the future, it is likely that Ethereum will switch to a proof-of-stake model for security, reducing the issuance requirement to somewhere between zero and 0.05X per year. In the event that the Ethereum organization loses funding or for any other reason disappears, we leave open a "social contract": anyone has the right to create a future candidate version of Ethereum, with the only condition being that the quantity of ether must be at most equal to `60102216 * (1.198 + 0.26 * n)` where `n` is the number of years after the genesis block. Creators are free to crowd-sell or otherwise assign some or all of the difference between the PoS-driven supply expansion and the maximum allowable supply expansion to pay for development. Candidate upgrades that do not comply with the social contract may justifiably be forked into compliant versions. - -### Mining Centralization {#mining-centralization} - -The Bitcoin mining algorithm works by having miners compute SHA256 on slightly modified versions of the block header millions of times over and over again, until eventually one node comes up with a version whose hash is less than the target (currently around 2192). However, this mining algorithm is vulnerable to two forms of centralization. First, the mining ecosystem has come to be dominated by ASICs (application-specific integrated circuits), computer chips designed for, and therefore thousands of times more efficient at, the specific task of Bitcoin mining. This means that Bitcoin mining is no longer a highly decentralized and egalitarian pursuit, requiring millions of dollars of capital to effectively participate in. Second, most Bitcoin miners do not actually perform block validation locally; instead, they rely on a centralized mining pool to provide the block headers. This problem is arguably worse: as of the time of this writing, the top three mining pools indirectly control roughly 50% of processing power in the Bitcoin network, although this is mitigated by the fact that miners can switch to other mining pools if a pool or coalition attempts a 51% attack. - -The current intent at Ethereum is to use a mining algorithm where miners are required to fetch random data from the state, compute some randomly selected transactions from the last N blocks in the blockchain, and return the hash of the result. This has two important benefits. First, Ethereum contracts can include any kind of computation, so an Ethereum ASIC would essentially be an ASIC for general computation - ie. a better CPU. Second, mining requires access to the entire blockchain, forcing miners to store the entire blockchain and at least be capable of verifying every transaction. This removes the need for centralized mining pools; although mining pools can still serve the legitimate role of evening out the randomness of reward distribution, this function can be served equally well by peer-to-peer pools with no central control. - -This model is untested, and there may be difficulties along the way in avoiding certain clever optimizations when using contract execution as a mining algorithm. However, one notably interesting feature of this algorithm is that it allows anyone to "poison the well", by introducing a large number of contracts into the blockchain specifically designed to stymie certain ASICs. The economic incentives exist for ASIC manufacturers to use such a trick to attack each other. Thus, the solution that we are developing is ultimately an adaptive economic human solution rather than purely a technical one. - -### Scalability {#scalability} - -One common concern about Ethereum is the issue of scalability. Like Bitcoin, Ethereum suffers from the flaw that every transaction needs to be processed by every node in the network. With Bitcoin, the size of the current blockchain rests at about 15 GB, growing by about 1 MB per hour. If the Bitcoin network were to process Visa's 2000 transactions per second, it would grow by 1 MB per three seconds (1 GB per hour, 8 TB per year). Ethereum is likely to suffer a similar growth pattern, worsened by the fact that there will be many applications on top of the Ethereum blockchain instead of just a currency as is the case with Bitcoin, but ameliorated by the fact that Ethereum full nodes need to store just the state instead of the entire blockchain history. - -The problem with such a large blockchain size is centralization risk. If the blockchain size increases to, say, 100 TB, then the likely scenario would be that only a very small number of large businesses would run full nodes, with all regular users using light SPV nodes. In such a situation, there arises the potential concern that the full nodes could band together and all agree to cheat in some profitable fashion (eg. change the block reward, give themselves BTC). Light nodes would have no way of detecting this immediately. Of course, at least one honest full node would likely exist, and after a few hours information about the fraud would trickle out through channels like Reddit, but at that point it would be too late: it would be up to the ordinary users to organize an effort to blacklist the given blocks, a massive and likely infeasible coordination problem on a similar scale as that of pulling off a successful 51% attack. In the case of Bitcoin, this is currently a problem, but there exists a blockchain modification [suggested by Peter Todd](https://web.archive.org/web/20140623061815/http://sourceforge.net/p/bitcoin/mailman/message/31709140/) which will alleviate this issue. - -In the near term, Ethereum will use two additional strategies to cope with this problem. First, because of the blockchain-based mining algorithms, at least every miner will be forced to be a full node, creating a lower bound on the number of full nodes. Second and more importantly, however, we will include an intermediate state tree root in the blockchain after processing each transaction. Even if block validation is centralized, as long as one honest verifying node exists, the centralization problem can be circumvented via a verification protocol. If a miner publishes an invalid block, that block must either be badly formatted, or the state `S[n]` is incorrect. Since `S[0]` is known to be correct, there must be some first state `S[i]` that is incorrect where `S[i-1]` is correct. The verifying node would provide the index `i`, along with a "proof of invalidity" consisting of the subset of Patricia tree nodes needing to process `APPLY(S[i-1],TX[i]) -> S[i]`. Nodes would be able to use those nodes to run that part of the computation, and see that the `S[i]` generated does not match the `S[i]` provided. - -Another, more sophisticated, attack would involve the malicious miners publishing incomplete blocks, so the full information does not even exist to determine whether or not blocks are valid. The solution to this is a challenge-response protocol: verification nodes issue "challenges" in the form of target transaction indices, and upon receiving a node a light node treats the block as untrusted until another node, whether the miner or another verifier, provides a subset of Patricia nodes as a proof of validity. - -## Conclusion {#conclusion} - -The Ethereum protocol was originally conceived as an upgraded version of a cryptocurrency, providing advanced features such as on-blockchain escrow, withdrawal limits, financial contracts, gambling markets and the like via a highly generalized programming language. The Ethereum protocol would not "support" any of the applications directly, but the existence of a Turing-complete programming language means that arbitrary contracts can theoretically be created for any transaction type or application. What is more interesting about Ethereum, however, is that the Ethereum protocol moves far beyond just currency. Protocols around decentralized file storage, decentralized computation and decentralized prediction markets, among dozens of other such concepts, have the potential to substantially increase the efficiency of the computational industry, and provide a massive boost to other peer-to-peer protocols by adding for the first time an economic layer. Finally, there is also a substantial array of applications that have nothing to do with money at all. - -The concept of an arbitrary state transition function as implemented by the Ethereum protocol provides for a platform with unique potential; rather than being a closed-ended, single-purpose protocol intended for a specific array of applications in data storage, gambling or finance, Ethereum is open-ended by design, and we believe that it is extremely well-suited to serving as a foundational layer for a very large number of both financial and non-financial protocols in the years to come. - -## Notes and Further Reading {#notes-and-further-reading} - -### Notes {#notes} - -1. A sophisticated reader may notice that in fact a Bitcoin address is the hash of the elliptic curve public key, and not the public key itself. However, it is in fact perfectly legitimate cryptographic terminology to refer to the pubkey hash as a public key itself. This is because Bitcoin's cryptography can be considered to be a custom digital signature algorithm, where the public key consists of the hash of the ECC pubkey, the signature consists of the ECC pubkey concatenated with the ECC signature, and the verification algorithm involves checking the ECC pubkey in the signature against the ECC pubkey hash provided as a public key and then verifying the ECC signature against the ECC pubkey. -2. Technically, the median of the 11 previous blocks. -3. Internally, 2 and "CHARLIE" are both numbers[fn3](#notes), with the latter being in big-endian base 256 representation. Numbers can be at least 0 and at most 2256-1. - -### Further Reading {#further-reading} - -1. [Intrinsic value](http://bitcoinmagazine.com/8640/an-exploration-of-intrinsic-value-what-it-is-why-bitcoin-doesnt-have-it-and-why-bitcoin-does-have-it/) -2. [Smart property](https://en.bitcoin.it/wiki/Smart_Property) -3. [Smart contracts](https://en.bitcoin.it/wiki/Contracts) -4. [B-money](http://www.weidai.com/bmoney.txt) -5. [Reusable proofs of work](https://nakamotoinstitute.org/finney/rpow/) -6. [Secure property titles with owner authority](https://nakamotoinstitute.org/secure-property-titles/) -7. [Bitcoin whitepaper](http://bitcoin.org/bitcoin.pdf) -8. [Namecoin](https://namecoin.org/) -9. [Zooko's triangle](https://wikipedia.org/wiki/Zooko's_triangle) -10. [Colored coins whitepaper](https://docs.google.com/a/buterin.com/document/d/1AnkP_cVZTCMLIzw4DvsW6M8Q2JC0lIzrTLuoWu2z1BE/edit) -11. [Mastercoin whitepaper](https://github.com/mastercoin-MSC/spec) -12. [Decentralized autonomous corporations, Bitcoin Magazine](http://bitcoinmagazine.com/7050/bootstrapping-a-decentralized-autonomous-corporation-part-i/) -13. [Simplified payment verification](https://en.bitcoin.it/wiki/Scalability#Simplified_payment_verification) -14. [Merkle trees](https://wikipedia.org/wiki/Merkle_tree) -15. [Patricia trees](https://wikipedia.org/wiki/Patricia_tree) -16. [GHOST](https://eprint.iacr.org/2013/881.pdf) -17. [StorJ and Autonomous Agents, Jeff Garzik](http://garzikrants.blogspot.ca/2013/01/storj-and-bitcoin-autonomous-agents.html) -18. [Mike Hearn on Smart Property at Turing Festival](https://www.youtube.com/watch?v=MVyv4t0OKe4) -19. [Ethereum RLP](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-RLP) -20. [Ethereum Merkle Patricia trees](https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-Patricia-Tree) -21. [Peter Todd on Merkle sum trees](https://web.archive.org/web/20140623061815/http://sourceforge.net/p/bitcoin/mailman/message/31709140/) - -_For history of the whitepaper, see [this wiki](https://github.com/ethereum/wiki/blob/old-before-deleting-all-files-go-to-wiki-wiki-instead/old-whitepaper-for-historical-reference.md)._ - -_Ethereum, like many community-driven, open-source software projects, has evolved since its initial inception. To learn about the latest developments of Ethereum, and how changes to the protocol are made, we recommend [this guide](/learn/)._ diff --git a/src/data/WalletSimulatorData.tsx b/src/data/WalletSimulatorData.tsx index f66495d39a8..cc3737bd371 100644 --- a/src/data/WalletSimulatorData.tsx +++ b/src/data/WalletSimulatorData.tsx @@ -6,26 +6,27 @@ import { TextProps, UnorderedList, } from "@chakra-ui/react" + import Emoji from "../components/Emoji" -import type { SimulatorData } from "../components/Simulator/types" +import GlossaryTooltip from "../components/Glossary/GlossaryTooltip" +import Link from "../components/Link" import { - ConnectWeb3, - CreateAccount, - SendReceive, -} from "../components/Simulator/screens" + CONNECT_WEB3, + CREATE_ACCOUNT, + SEND_RECEIVE, +} from "../components/Simulator/constants" import { - CreateAccountIcon, ConnectWeb3Icon, + CreateAccountIcon, SendReceiveIcon, } from "../components/Simulator/icons" import { - CONNECT_WEB3, - CREATE_ACCOUNT, - SEND_RECEIVE, -} from "../components/Simulator/constants" -import Link from "../components/Link" -import GlossaryTooltip from "../components/Glossary/GlossaryTooltip" + ConnectWeb3, + CreateAccount, + SendReceive, +} from "../components/Simulator/screens" import { CONTACTS } from "../components/Simulator/screens/SendReceive/constants" +import type { SimulatorData } from "../components/Simulator/types" const Text: React.FC = (props) => @@ -39,14 +40,16 @@ export const walletOnboardingSimData: SimulatorData = { header: "Begin your journey by downloading a wallet", description: ( <> - To get started, you'll need to download a wallet app. + + To get started, you'll need to download a wallet app. + Most people use mobile apps, but desktop apps and browser extensions are also available. - Let's set up a mobile wallet. Click "Install a wallet" to get - started. + Let's set up a mobile wallet. Click "Install a + wallet" to get started. ), @@ -75,7 +78,9 @@ export const walletOnboardingSimData: SimulatorData = { Ethereum accounts are created privately and do not require any forms or approval—no personal identifying information required! - Click on "Create account" to generate a new account. + + Click on "Create account" to generate a new account. + ), }, @@ -98,8 +103,8 @@ export const walletOnboardingSimData: SimulatorData = { steps to backup and secure it. - Read carefully and click "I understand" to see and backup your - recovery phrase. + Read carefully and click "I understand" to see and + backup your recovery phrase. ), @@ -168,8 +173,8 @@ export const walletOnboardingSimData: SimulatorData = { should ever ask you for this. - Click the words in the correct order to prove you've backed up - your phrase. + Click the words in the correct order to prove you've backed + up your phrase. ), @@ -178,7 +183,7 @@ export const walletOnboardingSimData: SimulatorData = { header: "That's it! Welcome to Ethereum 🎉", description: ( - In the next lesson we'll learn how to use your new account to + In the next lesson we'll learn how to use your new account to receive and send some funds. ), @@ -212,14 +217,16 @@ export const walletOnboardingSimData: SimulatorData = { Your wallet helps you manage your funds,{" "} NFTs,{" "} Web3 identity - and more. Here we'll go over how to receive and send some tokens - on Ethereum. + and more. Here we'll go over how to receive and send some + tokens on Ethereum. - Let's first look at how to receive ether (ETH), Ethereum's native - currency. + Let's first look at how to receive ether (ETH), + Ethereum's native currency. + + + Click the "Receive" button to see how to receive funds. - Click the "Receive" button to see how to receive funds. ), }, @@ -249,12 +256,13 @@ export const walletOnboardingSimData: SimulatorData = { submit transactions yourself. - Note that you didn't need to provide any personal information, or - have any funds to begin with to start receiving assets to your - address—receiving is free. + Note that you didn't need to provide any personal + information, or have any funds to begin with to start receiving + assets to your address—receiving is free. - Let's try sending some ETH by clicking the "Send" button. + Let's try sending some ETH by clicking the "Send" + button. ), @@ -268,10 +276,12 @@ export const walletOnboardingSimData: SimulatorData = { parties intervening and stopping your transactions. - Ethereum doesn't discriminate, and never stops, allowing you full - control over your funds—24/7. + Ethereum doesn't discriminate, and never stops, allowing you + full control over your funds—24/7. + + + Select an amount to send then click "Select recipient." - Select an amount to send then click "Select recipient." ), }, @@ -286,7 +296,8 @@ export const walletOnboardingSimData: SimulatorData = { You can send tokens anywhere globally at any time. As you use your wallet, you can save users as contacts for - repeated use. Let's send some funds back to {CONTACTS[0].name}. + repeated use. Let's send some funds back to{" "} + {CONTACTS[0].name}. ), @@ -337,8 +348,8 @@ export const walletOnboardingSimData: SimulatorData = { allowing you to interact with your on-chain assets. - Your friend just sent an NFT art piece to your address! Let's go - to a new NFT marketplace website to view it. + Your friend just sent an NFT art piece to your address! Let's + go to a new NFT marketplace website to view it. ), @@ -394,12 +405,12 @@ export const walletOnboardingSimData: SimulatorData = { "No geographical or political discrimination against who can use Ethereum services", description: ( <> - There's the NFT you received! + There's the NFT you received! Wallets are technically only an interface to show you your balance and to make transactions— - your assets aren't stored inside the wallet, but on the + your assets aren't stored inside the wallet, but on the blockchain. @@ -411,7 +422,7 @@ export const walletOnboardingSimData: SimulatorData = { description: ( <> - Great job! You're ready to start using apps on Ethereum. + Great job! You're ready to start using apps on Ethereum. What to do next: diff --git a/src/data/consensus-bounty-hunters.csv b/src/data/consensus-bounty-hunters.csv deleted file mode 100644 index 22fc133a2b7..00000000000 --- a/src/data/consensus-bounty-hunters.csv +++ /dev/null @@ -1,17 +0,0 @@ -username, name, score -protolambda, "protolambda", 42400 -cryptosubtlety, "Quan Thoi Minh Nguyen", 19650 -jrhea, "Jonny Rhea", 18700 -guidovranken, "Guido Vranken", 17850 -, "scio", 10000 -sifraitech, "Grandine team", 9000 -kilic, "Onur Kılıç", 6000 -atoulme, "Antoine Toulme", 5000 -Vulnerability-X, "VulnerabilityX", 5000 -asanso, "Antonio Sanso", 4000 -itsunixiknowthis, "ItsUnixIKnowThis", 2850 -AlexSSD7, "Alexander Sadovskyi", 2500 -tintinweb, "tintin", 2500 -holiman, "Martin Holst Swende", 2500 -, "Akincibor", 1750 -mcdee, "Jim McDonald", 200 diff --git a/src/data/consensus-bounty-hunters.json b/src/data/consensus-bounty-hunters.json new file mode 100644 index 00000000000..57042ed3186 --- /dev/null +++ b/src/data/consensus-bounty-hunters.json @@ -0,0 +1,82 @@ +[ + { + "username": "protolambda", + "name": "protolambda", + "score": 42400 + }, + { + "username": "cryptosubtlety", + "name": "Quan Thoi Minh Nguyen", + "score": 19650 + }, + { + "username": "jrhea", + "name": "Jonny Rhea", + "score": 18700 + }, + { + "username": "guidovranken", + "name": "Guido Vranken", + "score": 17850 + }, + { + "username": "", + "name": "scio", + "score": 10000 + }, + { + "username": "sifraitech", + "name": "Grandine team", + "score": 9000 + }, + { + "username": "kilic", + "name": "Onur Kılıç", + "score": 6000 + }, + { + "username": "atoulme", + "name": "Antoine Toulme", + "score": 5000 + }, + { + "username": "Vulnerability-X", + "name": "VulnerabilityX", + "score": 5000 + }, + { + "username": "asanso", + "name": "Antonio Sanso", + "score": 4000 + }, + { + "username": "itsunixiknowthis", + "name": "ItsUnixIKnowThis", + "score": 2850 + }, + { + "username": "AlexSSD7", + "name": "Alexander Sadovskyi", + "score": 2500 + }, + { + "username": "tintinweb", + "name": "tintin", + "score": 2500 + }, + { + "username": "holiman", + "name": "Martin Holst Swende", + "score": 2500 + }, + { + "username": "", + "name": "Akincibor", + "score": 1750 + }, + { + "username": "mcdee", + "name": "Jim McDonald", + "score": 200 + } +] diff --git a/src/data/crowdin/combined-translators.json b/src/data/crowdin/combined-translators.json index 4dd461d6341..3788db5d2a7 100644 --- a/src/data/crowdin/combined-translators.json +++ b/src/data/crowdin/combined-translators.json @@ -357,7 +357,7 @@ { "id": 15029207, "username": "mohammedouahman", - "totalCosts": 610.04, + "totalCosts": 581.76, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15029207/medium/da39ed145b99af8a9ad688d94669b468_default.png" } ] @@ -618,7 +618,7 @@ { "id": 15954257, "username": "arifulone", - "totalCosts": 1670.54, + "totalCosts": 1642.26, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15954257/medium/a836f4b9acb6585087ed674cb6b3b77e.jpg" } ] @@ -795,7 +795,7 @@ { "id": 14643068, "username": "egelizo", - "totalCosts": 529.24, + "totalCosts": 520.15, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14643068/medium/f6f25b4f0e429a11e235ade8d866b314.jpeg" } ] @@ -1090,13 +1090,13 @@ { "id": 15086733, "username": "hedwika", - "totalCosts": 1520.05, + "totalCosts": 1491.77, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15086733/medium/e58bffb1edb2cd4a9e2bbe7046a0d1e8.jpeg" }, { "id": 15843833, "username": "FoltinV", - "totalCosts": 326.23, + "totalCosts": 297.95, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15843833/medium/d9afa5c66a59b8166143dd4e1cca0630.jpeg" } ] @@ -1163,7 +1163,7 @@ { "id": 15185884, "username": "carmen1912", - "totalCosts": 473.69, + "totalCosts": 409.05, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15185884/medium/0d349af8ba0364fdd96b55b46c40590c.jpg" }, { @@ -1213,12 +1213,6 @@ { "fileId": "7320", "contributors": [ - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 960.51, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" - }, { "id": 15371878, "username": "Tedmeier", @@ -1259,12 +1253,6 @@ "username": "akashdihot01", "totalCosts": 38.38, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15116937/medium/412c70a956fd5ebd86ff7a8cd0ff83b1.jpeg" - }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 2.02, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" } ] }, @@ -1294,12 +1282,6 @@ "username": "chrboesch", "totalCosts": 24.24, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15221766/medium/9818a6f07e95c5f3260f34774d4e26fe.jpg" - }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 7.07, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" } ] }, @@ -1312,12 +1294,6 @@ "totalCosts": 281.79, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15123193/medium/b3211607cc43c707c0034f7502299d8d.jpeg" }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 53.53, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" - }, { "id": 15047729, "username": "EricTheTurtle", @@ -1341,12 +1317,6 @@ { "fileId": "6165", "contributors": [ - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 151.5, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" - }, { "id": 15947755, "username": "RubenSilva", @@ -1367,15 +1337,9 @@ { "id": 15123193, "username": "Coram_Deo", - "totalCosts": 479.75, + "totalCosts": 470.66, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15123193/medium/b3211607cc43c707c0034f7502299d8d.jpeg" }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 76.76, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" - }, { "id": 15221766, "username": "chrboesch", @@ -1450,12 +1414,6 @@ "totalCosts": 183.82, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15055847/medium/fca34f3df4d32ab5f9b476d91f7b5372_default.png" }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 52.52, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" - }, { "id": 15932515, "username": "Astronaut828", @@ -1533,7 +1491,7 @@ { "id": 15181418, "username": "flockchain", - "totalCosts": 401.98, + "totalCosts": 384.81, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15181418/medium/f80cb1c08c29018a1e9dbd93fa5ff510.jpg" }, { @@ -1547,12 +1505,6 @@ "username": "Coram_Deo", "totalCosts": 86.86, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15123193/medium/b3211607cc43c707c0034f7502299d8d.jpeg" - }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 10.1, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" } ] }, @@ -1612,12 +1564,6 @@ "totalCosts": 669.63, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15123193/medium/b3211607cc43c707c0034f7502299d8d.jpeg" }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 222.2, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" - }, { "id": 15189582, "username": "Mainnesti", @@ -1717,12 +1663,6 @@ "username": "Coram_Deo", "totalCosts": 72.72, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15123193/medium/b3211607cc43c707c0034f7502299d8d.jpeg" - }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 15.15, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" } ] }, @@ -1773,7 +1713,7 @@ { "id": 15123193, "username": "Coram_Deo", - "totalCosts": 401.98, + "totalCosts": 373.7, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15123193/medium/b3211607cc43c707c0034f7502299d8d.jpeg" }, { @@ -1811,12 +1751,6 @@ "totalCosts": 59.59, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15100521/medium/fe9d65cd1375728e7bab4f4e42e23d08_default.png" }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 56.56, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" - }, { "id": 15556215, "username": "johannes.hadasch", @@ -1898,12 +1832,6 @@ "username": "KaptainBollo", "totalCosts": 30.3, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15471540/medium/77d451813919ef4c15f0a698102f7f46.png" - }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 24.24, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" } ] }, @@ -2045,12 +1973,6 @@ "totalCosts": 8.08, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14616556/medium/08dc4b444eeae3ffdb2c3f20533bdf85.png" }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 7.07, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" - }, { "id": 14866158, "username": "Kazel", @@ -2227,12 +2149,6 @@ "totalCosts": 146.45, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15123193/medium/b3211607cc43c707c0034f7502299d8d.jpeg" }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 38.38, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" - }, { "id": 14692718, "username": "Z3rtr0x", @@ -2479,7 +2395,7 @@ { "id": 15932515, "username": "Astronaut828", - "totalCosts": 3094.64, + "totalCosts": 3084.54, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15932515/medium/ff4f1f9efa429e626e53821ae26ecf21.png" }, { @@ -2502,9 +2418,27 @@ { "id": 15123193, "username": "Coram_Deo", - "totalCosts": 1834.16, + "totalCosts": 3805.68, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15123193/medium/b3211607cc43c707c0034f7502299d8d.jpeg" }, + { + "id": 14743258, + "username": "brentspine", + "totalCosts": 56.56, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14743258/medium/2d318d68dfc26d6e33dc92185225e37c.gif" + }, + { + "id": 16141426, + "username": "Ndjsl01", + "totalCosts": 48.48, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16141426/medium/8076d339c9504fd8c8ada15918b38175_default.png" + }, + { + "id": 16157350, + "username": "Veri88", + "totalCosts": 48.48, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16157350/medium/2dfe0cfc9a703b0640e740eae153e2e1.png" + }, { "id": 14920111, "username": "JueK3y", @@ -2519,7 +2453,7 @@ { "id": 15123193, "username": "Coram_Deo", - "totalCosts": 167.66, + "totalCosts": 143.42, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15123193/medium/b3211607cc43c707c0034f7502299d8d.jpeg" }, { @@ -2574,12 +2508,6 @@ "totalCosts": 38.38, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15471540/medium/77d451813919ef4c15f0a698102f7f46.png" }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 36.36, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" - }, { "id": 15123193, "username": "Coram_Deo", @@ -2789,12 +2717,6 @@ "username": "miekemouse123", "totalCosts": 14.14, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14730314/medium/16b2144d4a68a5deb2ce4e52e7cbab80_default.png" - }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 7.07, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" } ] }, @@ -2921,7 +2843,7 @@ { "id": 15932515, "username": "Astronaut828", - "totalCosts": 720.13, + "totalCosts": 695.89, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15932515/medium/ff4f1f9efa429e626e53821ae26ecf21.png" }, { @@ -3037,7 +2959,7 @@ { "id": 15932515, "username": "Astronaut828", - "totalCosts": 4857.09, + "totalCosts": 4821.74, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15932515/medium/ff4f1f9efa429e626e53821ae26ecf21.png" }, { @@ -3060,9 +2982,15 @@ { "id": 15932515, "username": "Astronaut828", - "totalCosts": 3471.37, + "totalCosts": 3349.16, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15932515/medium/ff4f1f9efa429e626e53821ae26ecf21.png" }, + { + "id": 15123193, + "username": "Coram_Deo", + "totalCosts": 79.79, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15123193/medium/b3211607cc43c707c0034f7502299d8d.jpeg" + }, { "id": 14920111, "username": "JueK3y", @@ -3273,12 +3201,6 @@ "totalCosts": 16.16, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14842386/medium/26d2e5d1d9b5f0e6ec25878feb24840b.jpeg" }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 13.13, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" - }, { "id": 14920111, "username": "JueK3y", @@ -3355,12 +3277,6 @@ "totalCosts": 15.15, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15221766/medium/9818a6f07e95c5f3260f34774d4e26fe.jpg" }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 10.1, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" - }, { "id": 14920111, "username": "JueK3y", @@ -3433,7 +3349,7 @@ { "id": 15189582, "username": "Mainnesti", - "totalCosts": 267.65, + "totalCosts": 255.53, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15189582/medium/607fd2e858dc07184c9200683f906fdb.jpg" }, { @@ -3528,12 +3444,6 @@ { "fileId": "2950", "contributors": [ - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 273.71, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" - }, { "id": 13959389, "username": "inlak16", @@ -3581,12 +3491,6 @@ "totalCosts": 47.47, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15123193/medium/b3211607cc43c707c0034f7502299d8d.jpeg" }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 15.15, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" - }, { "id": 14707408, "username": "Just-Stev", @@ -3658,12 +3562,6 @@ "totalCosts": 28.28, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15778695/medium/39882c72b2ccf81893116e4c5ba6a5e8_default.png" }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 15.15, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" - }, { "id": 15545841, "username": "bensaknikolas", @@ -3702,7 +3600,7 @@ { "id": 13959389, "username": "inlak16", - "totalCosts": 274.72, + "totalCosts": 237.35, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13959389/medium/8163669279ee4bd20f4b7db97f6000fa.png" }, { @@ -3711,12 +3609,6 @@ "totalCosts": 20.2, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15123193/medium/b3211607cc43c707c0034f7502299d8d.jpeg" }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 17.17, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" - }, { "id": 14920111, "username": "JueK3y", @@ -3893,12 +3785,6 @@ "totalCosts": 80.8, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15471540/medium/77d451813919ef4c15f0a698102f7f46.png" }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 64.64, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" - }, { "id": 15810863, "username": "bitblondy", @@ -3940,12 +3826,6 @@ { "fileId": "2926", "contributors": [ - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 1231.19, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" - }, { "id": 15471540, "username": "KaptainBollo", @@ -4015,12 +3895,6 @@ "username": "johannt", "totalCosts": 980.71, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15421538/medium/7e1f5d90509951072c0de0d9684baa35.png" - }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 345.42, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" } ] }, @@ -4056,12 +3930,6 @@ "username": "Gorm-the-Old", "totalCosts": 30.3, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15116307/medium/46b6a030b92eb4909c82bcc68026e4eb_default.png" - }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 27.27, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" } ] }, @@ -4097,12 +3965,6 @@ "username": "RubenSilva", "totalCosts": 33.33, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15947755/medium/cf9980cfafab6b7c43f6e16e1ca48324_default.png" - }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 31.31, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" } ] }, @@ -4115,12 +3977,6 @@ "totalCosts": 696.9, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15221766/medium/9818a6f07e95c5f3260f34774d4e26fe.jpg" }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 404, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" - }, { "id": 15082843, "username": "StevenR73", @@ -4179,12 +4035,6 @@ "totalCosts": 52.52, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13959389/medium/8163669279ee4bd20f4b7db97f6000fa.png" }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 43.43, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" - }, { "id": 15082843, "username": "StevenR73", @@ -4213,12 +4063,6 @@ "totalCosts": 176.75, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15932515/medium/ff4f1f9efa429e626e53821ae26ecf21.png" }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 101, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" - }, { "id": 15039555, "username": "aggu", @@ -4242,12 +4086,6 @@ "totalCosts": 48.48, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15471540/medium/77d451813919ef4c15f0a698102f7f46.png" }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 28.28, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" - }, { "id": 15185884, "username": "carmen1912", @@ -4365,12 +4203,6 @@ "totalCosts": 176.75, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13959389/medium/8163669279ee4bd20f4b7db97f6000fa.png" }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 118.17, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" - }, { "id": 15123193, "username": "Coram_Deo", @@ -4511,12 +4343,6 @@ "totalCosts": 8.08, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15185884/medium/0d349af8ba0364fdd96b55b46c40590c.jpg" }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 8.08, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" - }, { "id": 14734372, "username": "translator-543216", @@ -4537,7 +4363,7 @@ { "id": 13959389, "username": "inlak16", - "totalCosts": 161.6, + "totalCosts": 146.45, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13959389/medium/8163669279ee4bd20f4b7db97f6000fa.png" }, { @@ -4549,7 +4375,7 @@ { "id": 15123193, "username": "Coram_Deo", - "totalCosts": 97.97, + "totalCosts": 93.93, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15123193/medium/b3211607cc43c707c0034f7502299d8d.jpeg" }, { @@ -4581,12 +4407,6 @@ "totalCosts": 31.31, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15116307/medium/46b6a030b92eb4909c82bcc68026e4eb_default.png" }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 24.24, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" - }, { "id": 15932515, "username": "Astronaut828", @@ -4628,12 +4448,6 @@ "totalCosts": 282.8, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15122537/medium/8bb720cf25d5b0adbd778a826d4d57ee.jpg" }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 104.03, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" - }, { "id": 14591426, "username": "d4r3d3v1l", @@ -4648,13 +4462,13 @@ { "id": 15181418, "username": "flockchain", - "totalCosts": 652.46, + "totalCosts": 640.34, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15181418/medium/f80cb1c08c29018a1e9dbd93fa5ff510.jpg" }, { "id": 15189582, "username": "Mainnesti", - "totalCosts": 652.46, + "totalCosts": 640.34, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15189582/medium/607fd2e858dc07184c9200683f906fdb.jpg" }, { @@ -4712,21 +4526,15 @@ { "id": 15002975, "username": "Sabine.Goesker", - "totalCosts": 215.13, + "totalCosts": 186.85, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15002975/medium/c27bb77b234f3e4492a3880925ffa6f3.jpeg" }, { "id": 14729586, "username": "hila1gt2", - "totalCosts": 203.01, + "totalCosts": 174.73, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14729586/medium/b2148ad52e0bc29f3b569d164434a221.jpeg" }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 65.65, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" - }, { "id": 14920111, "username": "JueK3y", @@ -4807,12 +4615,6 @@ "username": "Coram_Deo", "totalCosts": 38.38, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15123193/medium/b3211607cc43c707c0034f7502299d8d.jpeg" - }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 9.09, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" } ] }, @@ -4906,6 +4708,12 @@ "totalCosts": 207.05, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15947755/medium/cf9980cfafab6b7c43f6e16e1ca48324_default.png" }, + { + "id": 16131602, + "username": "Davsennn", + "totalCosts": 49.49, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16131602/medium/5a7d91b8bb2a21522b0c3281766e4b5e_default.png" + }, { "id": 15123193, "username": "Coram_Deo", @@ -4923,12 +4731,6 @@ "username": "EricTheTurtle", "totalCosts": 3.03, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15047729/medium/705657a47d8515302fce11fdaf1e1081.png" - }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 3.03, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" } ] }, @@ -4982,12 +4784,6 @@ "totalCosts": 1723.06, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15402842/medium/ff63192dd995e88e0c9e3fe60b787aaa_default.png" }, - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 132.31, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" - }, { "id": 15123193, "username": "Coram_Deo", @@ -5123,7 +4919,7 @@ { "id": 15932515, "username": "Astronaut828", - "totalCosts": 1113.02, + "totalCosts": 1087.77, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15932515/medium/ff4f1f9efa429e626e53821ae26ecf21.png" }, { @@ -5292,7 +5088,7 @@ { "id": 15421538, "username": "johannt", - "totalCosts": 1986.67, + "totalCosts": 1983.64, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15421538/medium/7e1f5d90509951072c0de0d9684baa35.png" }, { @@ -5400,12 +5196,6 @@ { "fileId": "7597", "contributors": [ - { - "id": 15455500, - "username": "SebastianSupreme", - "totalCosts": 114.13, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15455500/medium/529d1b028e7c3d98b67d4008773a75a9.png" - }, { "id": 13959389, "username": "inlak16", @@ -5567,7 +5357,7 @@ { "id": 14568334, "username": "mr_giorgos", - "totalCosts": 271.69, + "totalCosts": 321.18, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14568334/medium/245b5c69aab62ffabb575daf603b70b8.jpg" }, { @@ -5647,7 +5437,7 @@ { "id": 14568334, "username": "mr_giorgos", - "totalCosts": 1674.58, + "totalCosts": 1673.57, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14568334/medium/245b5c69aab62ffabb575daf603b70b8.jpg" } ] @@ -5696,6 +5486,100 @@ "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14568334/medium/245b5c69aab62ffabb575daf603b70b8.jpg" } ] + }, + { + "fileId": "8019", + "contributors": [ + { + "id": 14568334, + "username": "mr_giorgos", + "totalCosts": 532.27, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14568334/medium/245b5c69aab62ffabb575daf603b70b8.jpg" + } + ] + }, + { + "fileId": "6161", + "contributors": [ + { + "id": 14568334, + "username": "mr_giorgos", + "totalCosts": 161.6, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14568334/medium/245b5c69aab62ffabb575daf603b70b8.jpg" + } + ] + }, + { + "fileId": "6163", + "contributors": [ + { + "id": 14568334, + "username": "mr_giorgos", + "totalCosts": 657.51, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14568334/medium/245b5c69aab62ffabb575daf603b70b8.jpg" + } + ] + }, + { + "fileId": "6185", + "contributors": [ + { + "id": 14568334, + "username": "mr_giorgos", + "totalCosts": 681.75, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14568334/medium/245b5c69aab62ffabb575daf603b70b8.jpg" + } + ] + }, + { + "fileId": "8023", + "contributors": [ + { + "id": 14568334, + "username": "mr_giorgos", + "totalCosts": 1994.75, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14568334/medium/245b5c69aab62ffabb575daf603b70b8.jpg" + } + ] + }, + { + "fileId": "6167", + "contributors": [ + { + "id": 14568334, + "username": "mr_giorgos", + "totalCosts": 603.98, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14568334/medium/245b5c69aab62ffabb575daf603b70b8.jpg" + } + ] + }, + { + "fileId": "5557", + "contributors": [ + { + "id": 14568334, + "username": "mr_giorgos", + "totalCosts": 295.93, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14568334/medium/245b5c69aab62ffabb575daf603b70b8.jpg" + }, + { + "id": 15618027, + "username": "Chachlis", + "totalCosts": 29.29, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15618027/medium/0a87e1d8533d696281d67ac87d2ddd78_default.png" + } + ] + }, + { + "fileId": "6165", + "contributors": [ + { + "id": 14568334, + "username": "mr_giorgos", + "totalCosts": 237.35, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14568334/medium/245b5c69aab62ffabb575daf603b70b8.jpg" + } + ] } ] }, @@ -5708,7 +5592,7 @@ { "id": 15194310, "username": "MGETH", - "totalCosts": 581.76, + "totalCosts": 533.28, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15194310/medium/7729d9dbda8c9420c26f689b4a2b2918.jpg" }, { @@ -6090,12 +5974,6 @@ "totalCosts": 238.36, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15155208/medium/10c38f6da511bcb1a7cd9e99bb851b0f.jpeg" }, - { - "id": 15058949, - "username": "gracieluu_ar", - "totalCosts": 13.13, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15058949/medium/c8bf678ba85795ea778fbc67e30f0733.jpeg" - }, { "id": 15225340, "username": "gabriellassh", @@ -6110,7 +5988,7 @@ { "id": 14559630, "username": "jorge.arveg", - "totalCosts": 414.1, + "totalCosts": 396.93, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14559630/medium/fe2910f8bbc5bd2e5c7a41ca4303943b.jpg" }, { @@ -6227,13 +6105,13 @@ { "id": 15500572, "username": "aspoky_dev", - "totalCosts": 640.34, + "totalCosts": 593.88, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15500572/medium/82f4c4ed41642c9eab1d510f97122467.jpg" }, { "id": 15085311, "username": "bunturx", - "totalCosts": 531.26, + "totalCosts": 484.8, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15085311/medium/ead5dd5aa5070be2f8d446c286f27d7a.jpeg" }, { @@ -6457,7 +6335,7 @@ { "id": 15704001, "username": "joelca", - "totalCosts": 724.17, + "totalCosts": 695.89, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15704001/medium/0d2121c62c049140bc80c8bce144afc2.jpeg" }, { @@ -6514,6 +6392,12 @@ "totalCosts": 28.28, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15767291/medium/7fad807cd8381eba8c73fbe5cff78eea.png" }, + { + "id": 15714091, + "username": "Karym_GG", + "totalCosts": 27.27, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15714091/medium/69afa2fb791e1be17640c54018cb4e2e_default.png" + }, { "id": 15966545, "username": "askr", @@ -7073,6 +6957,12 @@ "username": "gonzab27", "totalCosts": 6.06, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15866753/medium/1f6bb2900a3f89af7cf2dffb4ca6df4d.png" + }, + { + "id": 15714091, + "username": "Karym_GG", + "totalCosts": 2.02, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15714091/medium/69afa2fb791e1be17640c54018cb4e2e_default.png" } ] }, @@ -8015,7 +7905,7 @@ { "id": 15194310, "username": "MGETH", - "totalCosts": 3417.84, + "totalCosts": 3389.56, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15194310/medium/7729d9dbda8c9420c26f689b4a2b2918.jpg" }, { @@ -8073,7 +7963,7 @@ { "id": 15056237, "username": "ismaventuras", - "totalCosts": 718.11, + "totalCosts": 693.87, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15056237/medium/c39d757d40c1ae7e6980ec82af4f939d.jpeg" }, { @@ -8100,22 +7990,28 @@ "fileId": "2822", "contributors": [ { - "id": 15029495, - "username": "caceres.jose.fr", - "totalCosts": 83.83, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15029495/medium/6cfbaec8bb35e6835abad73d00c81517.jpeg" + "id": 15874711, + "username": "JHON38", + "totalCosts": 69.69, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15874711/medium/aa1137d9b988c12e00d7510a93e05dd8_default.png" }, { "id": 14779212, "username": "matthewrock2011", - "totalCosts": 70.7, + "totalCosts": 55.55, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14779212/medium/39661a937aa3dc153a7acd8d06b4a8fd.jpeg" }, { - "id": 15874711, - "username": "JHON38", - "totalCosts": 69.69, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15874711/medium/aa1137d9b988c12e00d7510a93e05dd8_default.png" + "id": 15194310, + "username": "MGETH", + "totalCosts": 55.55, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15194310/medium/7729d9dbda8c9420c26f689b4a2b2918.jpg" + }, + { + "id": 15029495, + "username": "caceres.jose.fr", + "totalCosts": 24.24, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15029495/medium/6cfbaec8bb35e6835abad73d00c81517.jpeg" }, { "id": 15966607, @@ -8290,19 +8186,19 @@ { "id": 15874711, "username": "JHON38", - "totalCosts": 1833.15, + "totalCosts": 1793.76, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15874711/medium/aa1137d9b988c12e00d7510a93e05dd8_default.png" }, { "id": 15194310, "username": "MGETH", - "totalCosts": 969.6, + "totalCosts": 1025.15, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15194310/medium/7729d9dbda8c9420c26f689b4a2b2918.jpg" }, { "id": 14630706, "username": "Amendez75", - "totalCosts": 275.73, + "totalCosts": 270.68, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14630706/medium/988e8eef4a1356d0798f71d49827c3fa.jpeg" }, { @@ -8314,7 +8210,7 @@ { "id": 15899559, "username": "Lgallardo", - "totalCosts": 149.48, + "totalCosts": 118.17, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15899559/medium/ecdf8f03a04339dbb187185df6b7fce4_default.png" } ] @@ -8876,6 +8772,12 @@ "totalCosts": 152.51, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15135505/medium/8e95dff743c0a7e4feedb53ef122eba5_default.png" }, + { + "id": 15714091, + "username": "Karym_GG", + "totalCosts": 92.92, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15714091/medium/69afa2fb791e1be17640c54018cb4e2e_default.png" + }, { "id": 15150834, "username": "pabloberru", @@ -8914,13 +8816,13 @@ { "id": 15159056, "username": "ariel.barros", - "totalCosts": 537.32, + "totalCosts": 525.2, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15159056/medium/a055cc2e6c5ab28d0ebcb99d0eec29e3_default.png" }, { "id": 15500572, "username": "aspoky_dev", - "totalCosts": 323.2, + "totalCosts": 308.05, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15500572/medium/82f4c4ed41642c9eab1d510f97122467.jpg" }, { @@ -8929,10 +8831,16 @@ "totalCosts": 307.04, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15474196/medium/7d0c8d1b9a3745f3d1dbfaec3ab9e4a2.jpeg" }, + { + "id": 15194310, + "username": "MGETH", + "totalCosts": 60.6, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15194310/medium/7729d9dbda8c9420c26f689b4a2b2918.jpg" + }, { "id": 15204694, "username": "JavierDiaz-12", - "totalCosts": 21.21, + "totalCosts": 9.09, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15204694/medium/9102104cfc3ce019c4053e7dbd1de2ad_default.png" } ] @@ -8955,8 +8863,14 @@ { "id": 15058949, "username": "gracieluu_ar", - "totalCosts": 27.27, + "totalCosts": 15.15, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15058949/medium/c8bf678ba85795ea778fbc67e30f0733.jpeg" + }, + { + "id": 15194310, + "username": "MGETH", + "totalCosts": 11.11, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15194310/medium/7729d9dbda8c9420c26f689b4a2b2918.jpg" } ] }, @@ -8975,18 +8889,18 @@ "totalCosts": 174.73, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15946267/medium/094f1891b25266289c4aa5df7b08cfb7.jpg" }, + { + "id": 15194310, + "username": "MGETH", + "totalCosts": 120.19, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15194310/medium/7729d9dbda8c9420c26f689b4a2b2918.jpg" + }, { "id": 15096589, "username": "paulanieto1010", "totalCosts": 114.13, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15096589/medium/11bda7e6ac773b4cf8c3a84fdd9da4bd.jpeg" }, - { - "id": 15194310, - "username": "MGETH", - "totalCosts": 75.75, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15194310/medium/7729d9dbda8c9420c26f689b4a2b2918.jpg" - }, { "id": 15204694, "username": "JavierDiaz-12", @@ -10379,7 +10293,7 @@ { "id": 15058949, "username": "gracieluu_ar", - "totalCosts": 477.73, + "totalCosts": 468.64, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15058949/medium/c8bf678ba85795ea778fbc67e30f0733.jpeg" }, { @@ -11308,7 +11222,7 @@ { "id": 15194310, "username": "MGETH", - "totalCosts": 1750.33, + "totalCosts": 1747.3, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15194310/medium/7729d9dbda8c9420c26f689b4a2b2918.jpg" }, { @@ -11495,7 +11409,7 @@ { "id": 15194310, "username": "MGETH", - "totalCosts": 950.41, + "totalCosts": 943.34, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15194310/medium/7729d9dbda8c9420c26f689b4a2b2918.jpg" }, { @@ -11774,7 +11688,7 @@ { "id": 15194310, "username": "MGETH", - "totalCosts": 2780.53, + "totalCosts": 2745.18, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15194310/medium/7729d9dbda8c9420c26f689b4a2b2918.jpg" }, { @@ -12103,6 +12017,12 @@ "totalCosts": 1026.16, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15966349/medium/1d277519e5b8ccdfc1de7b60ec89e1b0.jpeg" }, + { + "id": 16028920, + "username": "paopastorelli", + "totalCosts": 978.69, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16028920/medium/e3049f379e035388449ee79ea5b75888.jpeg" + }, { "id": 15502508, "username": "fgavadeveloper", @@ -12118,19 +12038,13 @@ { "id": 15714091, "username": "Karym_GG", - "totalCosts": 473.69, + "totalCosts": 492.88, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15714091/medium/69afa2fb791e1be17640c54018cb4e2e_default.png" }, - { - "id": 16028920, - "username": "paopastorelli", - "totalCosts": 360.57, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16028920/medium/e3049f379e035388449ee79ea5b75888.jpeg" - }, { "id": 15946267, "username": "socopower", - "totalCosts": 328.25, + "totalCosts": 309.06, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15946267/medium/094f1891b25266289c4aa5df7b08cfb7.jpg" }, { @@ -12240,7 +12154,7 @@ { "id": 15194310, "username": "MGETH", - "totalCosts": 523.18, + "totalCosts": 483.79, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15194310/medium/7729d9dbda8c9420c26f689b4a2b2918.jpg" } ] @@ -12251,7 +12165,7 @@ { "id": 15160522, "username": "daianayurrebaso", - "totalCosts": 173.72, + "totalCosts": 149.48, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15160522/medium/d85407776c94ea7ad76ca6c061fd4fcd_default.png" }, { @@ -12259,6 +12173,12 @@ "username": "CryptoSpace", "totalCosts": 35.35, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15155844/medium/6e6407e27f509308774f480afe52ff7d.png" + }, + { + "id": 15714091, + "username": "Karym_GG", + "totalCosts": 24.24, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15714091/medium/69afa2fb791e1be17640c54018cb4e2e_default.png" } ] }, @@ -12319,7 +12239,7 @@ { "id": 15968127, "username": "gonzagramaglia", - "totalCosts": 1744.27, + "totalCosts": 1689.73, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15968127/medium/0c91665492f81a2479639eba5271d7bc.png" } ] @@ -12422,7 +12342,7 @@ { "id": 15194310, "username": "MGETH", - "totalCosts": 1010, + "totalCosts": 984.75, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15194310/medium/7729d9dbda8c9420c26f689b4a2b2918.jpg" }, { @@ -12431,6 +12351,12 @@ "totalCosts": 98.98, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15960287/medium/82ae690984766dd6f391b26757bfedab_default.png" }, + { + "id": 15714091, + "username": "Karym_GG", + "totalCosts": 25.25, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15714091/medium/69afa2fb791e1be17640c54018cb4e2e_default.png" + }, { "id": 15847249, "username": "AlexanderMartinezz", @@ -12585,6 +12511,124 @@ "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15553253/medium/2077ec790711bf21dd6cad91f776f003.png" } ] + }, + { + "fileId": "7328", + "contributors": [ + { + "id": 15435306, + "username": "ValeriaRaizman", + "totalCosts": 151.5, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15435306/medium/5e6284f116d89bd11b6dea3228531657.jpeg" + } + ] + }, + { + "fileId": "7340", + "contributors": [ + { + "id": 15194310, + "username": "MGETH", + "totalCosts": 1633.17, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15194310/medium/7729d9dbda8c9420c26f689b4a2b2918.jpg" + }, + { + "id": 15469966, + "username": "1Sergio", + "totalCosts": 1.01, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15469966/medium/8ad720027eb1d4565db121b5abcbbe32_default.png" + } + ] + }, + { + "fileId": "7336", + "contributors": [ + { + "id": 15194310, + "username": "MGETH", + "totalCosts": 965.56, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15194310/medium/7729d9dbda8c9420c26f689b4a2b2918.jpg" + } + ] + }, + { + "fileId": "6568", + "contributors": [ + { + "id": 15194310, + "username": "MGETH", + "totalCosts": 2079.59, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15194310/medium/7729d9dbda8c9420c26f689b4a2b2918.jpg" + }, + { + "id": 15155844, + "username": "CryptoSpace", + "totalCosts": 178.77, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15155844/medium/6e6407e27f509308774f480afe52ff7d.png" + }, + { + "id": 15866753, + "username": "gonzab27", + "totalCosts": 70.7, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15866753/medium/1f6bb2900a3f89af7cf2dffb4ca6df4d.png" + }, + { + "id": 15498602, + "username": "Nicolocorbara2005", + "totalCosts": 2.02, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15498602/medium/418a1006c09a0ed82089e76d59dca22f_default.png" + }, + { + "id": 15335938, + "username": "eduardo.c.ramos98", + "totalCosts": 2.02, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15335938/medium/5199f2bf7b73614fec715bcf7de37b27.jpeg" + } + ] + }, + { + "fileId": "6572", + "contributors": [ + { + "id": 15946267, + "username": "socopower", + "totalCosts": 385.82, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15946267/medium/094f1891b25266289c4aa5df7b08cfb7.jpg" + } + ] + }, + { + "fileId": "7334", + "contributors": [ + { + "id": 15194310, + "username": "MGETH", + "totalCosts": 965.56, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15194310/medium/7729d9dbda8c9420c26f689b4a2b2918.jpg" + } + ] + }, + { + "fileId": "7483", + "contributors": [ + { + "id": 15946267, + "username": "socopower", + "totalCosts": 773.66, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15946267/medium/094f1891b25266289c4aa5df7b08cfb7.jpg" + } + ] + }, + { + "fileId": "8011", + "contributors": [ + { + "id": 15194310, + "username": "MGETH", + "totalCosts": 1101.91, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15194310/medium/7729d9dbda8c9420c26f689b4a2b2918.jpg" + } + ] } ] }, @@ -12677,7 +12721,7 @@ { "id": 15097099, "username": "nader.sedigh", - "totalCosts": 483.79, + "totalCosts": 474.7, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15097099/medium/4fca4ea357c99c5d605850315f21ae65.png" }, { @@ -13979,7 +14023,7 @@ { "id": 15955625, "username": "Coiniran", - "totalCosts": 1984.65, + "totalCosts": 1981.62, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15955625/medium/cea2317824f592725aac52fcd2eedb26_default.png" }, { @@ -14196,7 +14240,7 @@ { "id": 15185884, "username": "carmen1912", - "totalCosts": 569.64, + "totalCosts": 505, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15185884/medium/0d349af8ba0364fdd96b55b46c40590c.jpg" }, { @@ -14205,6 +14249,12 @@ "totalCosts": 69.69, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14587094/medium/e9433666871c85df7a54d1837c3b5659_default.png" }, + { + "id": 12844463, + "username": "MATsxm", + "totalCosts": 64.64, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12844463/medium/6fae27edb4b41f363587f737ea2f96de.jpg" + }, { "id": 14758970, "username": "JJulles", @@ -14413,13 +14463,13 @@ { "id": 13249257, "username": "SuperDelphi", - "totalCosts": 477.73, + "totalCosts": 468.64, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13249257/medium/f566e07e86e26f5911df1ddf5fae796d.png" }, { "id": 12844463, "username": "MATsxm", - "totalCosts": 122.21, + "totalCosts": 131.3, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12844463/medium/6fae27edb4b41f363587f737ea2f96de.jpg" }, { @@ -14574,7 +14624,7 @@ { "id": 12844463, "username": "MATsxm", - "totalCosts": 150.49, + "totalCosts": 163.62, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12844463/medium/6fae27edb4b41f363587f737ea2f96de.jpg" }, { @@ -14582,12 +14632,6 @@ "username": "SuperDelphi", "totalCosts": 88.88, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13249257/medium/f566e07e86e26f5911df1ddf5fae796d.png" - }, - { - "id": 15442454, - "username": "Im-SpiETH", - "totalCosts": 13.13, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15442454/medium/860696ab89262fe98a0b888882d2b2da_default.png" } ] }, @@ -14597,7 +14641,7 @@ { "id": 13249257, "username": "SuperDelphi", - "totalCosts": 276.74, + "totalCosts": 259.57, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13249257/medium/f566e07e86e26f5911df1ddf5fae796d.png" }, { @@ -14612,18 +14656,18 @@ "totalCosts": 94.94, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15954931/medium/7254d648c451b822632980e5bfcb61fa.png" }, + { + "id": 12844463, + "username": "MATsxm", + "totalCosts": 42.42, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12844463/medium/6fae27edb4b41f363587f737ea2f96de.jpg" + }, { "id": 17361, "username": "plamarque", "totalCosts": 40.4, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/17361/medium/fecfafa7716ac9d6838b43c31f48f6b9.png" }, - { - "id": 12844463, - "username": "MATsxm", - "totalCosts": 25.25, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12844463/medium/6fae27edb4b41f363587f737ea2f96de.jpg" - }, { "id": 15415492, "username": "sashasrs", @@ -14656,7 +14700,7 @@ { "id": 12844463, "username": "MATsxm", - "totalCosts": 8.08, + "totalCosts": 15.15, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12844463/medium/6fae27edb4b41f363587f737ea2f96de.jpg" } ] @@ -14664,22 +14708,22 @@ { "fileId": "6412", "contributors": [ + { + "id": 12844463, + "username": "MATsxm", + "totalCosts": 464.6, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12844463/medium/6fae27edb4b41f363587f737ea2f96de.jpg" + }, { "id": 17361, "username": "plamarque", "totalCosts": 459.55, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/17361/medium/fecfafa7716ac9d6838b43c31f48f6b9.png" }, - { - "id": 12844463, - "username": "MATsxm", - "totalCosts": 418.14, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12844463/medium/6fae27edb4b41f363587f737ea2f96de.jpg" - }, { "id": 13249257, "username": "SuperDelphi", - "totalCosts": 356.53, + "totalCosts": 310.07, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13249257/medium/f566e07e86e26f5911df1ddf5fae796d.png" }, { @@ -14867,9 +14911,15 @@ { "id": 15120909, "username": "stradi-invarious", - "totalCosts": 168.67, + "totalCosts": 140.39, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15120909/medium/804841ae67c6c31ca6191266e630de22_default.png" }, + { + "id": 12844463, + "username": "MATsxm", + "totalCosts": 27.27, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12844463/medium/6fae27edb4b41f363587f737ea2f96de.jpg" + }, { "id": 15442454, "username": "Im-SpiETH", @@ -15109,7 +15159,7 @@ { "id": 15954931, "username": "XofEE", - "totalCosts": 1199.88, + "totalCosts": 1183.72, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15954931/medium/7254d648c451b822632980e5bfcb61fa.png" }, { @@ -15121,7 +15171,7 @@ { "id": 12844463, "username": "MATsxm", - "totalCosts": 203.01, + "totalCosts": 238.36, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12844463/medium/6fae27edb4b41f363587f737ea2f96de.jpg" }, { @@ -15450,7 +15500,7 @@ { "id": 12844463, "username": "MATsxm", - "totalCosts": 1120.09, + "totalCosts": 1127.16, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12844463/medium/6fae27edb4b41f363587f737ea2f96de.jpg" }, { @@ -15846,7 +15896,7 @@ { "id": 12844463, "username": "MATsxm", - "totalCosts": 261.59, + "totalCosts": 263.61, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12844463/medium/6fae27edb4b41f363587f737ea2f96de.jpg" }, { @@ -17009,7 +17059,7 @@ { "id": 15624473, "username": "CaverneCrypto", - "totalCosts": 2774.47, + "totalCosts": 2764.37, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15624473/medium/7790c08f2ef4a5ba028091b6393900be_default.png" }, { @@ -17018,17 +17068,17 @@ "totalCosts": 660.54, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15426512/medium/3d6568dc6e76931cee4766ecb4c3163a.jpg" }, + { + "id": 12844463, + "username": "MATsxm", + "totalCosts": 161.6, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12844463/medium/6fae27edb4b41f363587f737ea2f96de.jpg" + }, { "id": 14823260, "username": "omahs", "totalCosts": 157.56, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14823260/medium/2e90039ed53752ac5277c9cf4fce6fe7.jpeg" - }, - { - "id": 12844463, - "username": "MATsxm", - "totalCosts": 121.2, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12844463/medium/6fae27edb4b41f363587f737ea2f96de.jpg" } ] }, @@ -17096,7 +17146,7 @@ { "id": 12844463, "username": "MATsxm", - "totalCosts": 382.79, + "totalCosts": 358.55, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12844463/medium/6fae27edb4b41f363587f737ea2f96de.jpg" }, { @@ -17131,15 +17181,21 @@ { "id": 14711854, "username": "Gamma-Software", - "totalCosts": 159.58, + "totalCosts": 144.43, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14711854/medium/0ae62f880c9fdec755310b2d551953ae.jpeg" }, { "id": 14835444, "username": "a2b", - "totalCosts": 138.37, + "totalCosts": 70.7, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14835444/medium/c763bb4be253ef0166d94f56093fa6ce.jpeg" }, + { + "id": 12844463, + "username": "MATsxm", + "totalCosts": 63.63, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12844463/medium/6fae27edb4b41f363587f737ea2f96de.jpg" + }, { "id": 14075861, "username": "Kler", @@ -17301,7 +17357,7 @@ { "id": 15136089, "username": "demaupeoucorentin", - "totalCosts": 2654.28, + "totalCosts": 2618.93, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15136089/medium/4ba75954f478f17b20559a3035f6adbd.png" }, { @@ -17348,9 +17404,15 @@ { "id": 15442454, "username": "Im-SpiETH", - "totalCosts": 3270.38, + "totalCosts": 3170.39, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15442454/medium/860696ab89262fe98a0b888882d2b2da_default.png" }, + { + "id": 12844463, + "username": "MATsxm", + "totalCosts": 79.79, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12844463/medium/6fae27edb4b41f363587f737ea2f96de.jpg" + }, { "id": 14711854, "username": "Gamma-Software", @@ -17927,7 +17989,7 @@ { "id": 12844463, "username": "MATsxm", - "totalCosts": 566.61, + "totalCosts": 578.73, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12844463/medium/6fae27edb4b41f363587f737ea2f96de.jpg" }, { @@ -17939,7 +18001,7 @@ { "id": 15129139, "username": "BloodMoon__", - "totalCosts": 52.52, + "totalCosts": 41.41, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15129139/medium/143204fd42dfaed4630ee2b84153dada.jpg" }, { @@ -18020,7 +18082,7 @@ { "id": 12844463, "username": "MATsxm", - "totalCosts": 1378.65, + "totalCosts": 1351.38, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12844463/medium/6fae27edb4b41f363587f737ea2f96de.jpg" }, { @@ -18041,6 +18103,12 @@ "totalCosts": 39.39, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/17361/medium/fecfafa7716ac9d6838b43c31f48f6b9.png" }, + { + "id": 14720166, + "username": "stephanefullstack", + "totalCosts": 26.26, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14720166/medium/b417af0cc9c688dae80ac936c9e3612a_default.png" + }, { "id": 15954931, "username": "XofEE", @@ -18084,7 +18152,7 @@ { "id": 12844463, "username": "MATsxm", - "totalCosts": 1578.63, + "totalCosts": 1580.65, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12844463/medium/6fae27edb4b41f363587f737ea2f96de.jpg" }, { @@ -18206,7 +18274,7 @@ { "id": 14823260, "username": "omahs", - "totalCosts": 196.95, + "totalCosts": 184.83, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14823260/medium/2e90039ed53752ac5277c9cf4fce6fe7.jpeg" }, { @@ -18220,6 +18288,12 @@ "username": "SuperDelphi", "totalCosts": 15.15, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13249257/medium/f566e07e86e26f5911df1ddf5fae796d.png" + }, + { + "id": 14720166, + "username": "stephanefullstack", + "totalCosts": 11.11, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14720166/medium/b417af0cc9c688dae80ac936c9e3612a_default.png" } ] }, @@ -19104,9 +19178,15 @@ { "id": 14737644, "username": "DylanCONIN", - "totalCosts": 239.37, + "totalCosts": 202, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14737644/medium/d981e7d9ae1b98b7e8a21245675fc0e0.jpg" }, + { + "id": 12844463, + "username": "MATsxm", + "totalCosts": 30.3, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12844463/medium/6fae27edb4b41f363587f737ea2f96de.jpg" + }, { "id": 15961437, "username": "harpocryptes", @@ -19133,7 +19213,7 @@ { "id": 14655214, "username": "LeMarx", - "totalCosts": 203.01, + "totalCosts": 174.73, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14655214/medium/fab7695facba2ed2c28049aa0d65753e_default.png" }, { @@ -19142,6 +19222,12 @@ "totalCosts": 61.61, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/17361/medium/fecfafa7716ac9d6838b43c31f48f6b9.png" }, + { + "id": 12844463, + "username": "MATsxm", + "totalCosts": 16.16, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12844463/medium/6fae27edb4b41f363587f737ea2f96de.jpg" + }, { "id": 15454340, "username": "LumiNeoZ", @@ -19271,6 +19357,12 @@ "totalCosts": 19.19, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/17361/medium/fecfafa7716ac9d6838b43c31f48f6b9.png" }, + { + "id": 12844463, + "username": "MATsxm", + "totalCosts": 14.14, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12844463/medium/6fae27edb4b41f363587f737ea2f96de.jpg" + }, { "id": 14572502, "username": "Little_UY_Scuti", @@ -19294,12 +19386,6 @@ "username": "Elikill58", "totalCosts": 5.05, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14587890/medium/1d5b3a9de8a7b7f6082357f1fe99d654.jpeg" - }, - { - "id": 12844463, - "username": "MATsxm", - "totalCosts": 5.05, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12844463/medium/6fae27edb4b41f363587f737ea2f96de.jpg" } ] }, @@ -20537,7 +20623,7 @@ { "id": 15528915, "username": "J4yD3v", - "totalCosts": 2050.3, + "totalCosts": 2037.17, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15528915/medium/c334abf55946c66116d12971fd368f2d_default.png" }, { @@ -20555,7 +20641,7 @@ { "id": 12844463, "username": "MATsxm", - "totalCosts": 137.36, + "totalCosts": 150.49, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12844463/medium/6fae27edb4b41f363587f737ea2f96de.jpg" }, { @@ -20913,6 +20999,192 @@ "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15430214/medium/2b8391bf50f94b404bcd2967c0528ed7.png" } ] + }, + { + "fileId": "8019", + "contributors": [ + { + "id": 14823260, + "username": "omahs", + "totalCosts": 532.27, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14823260/medium/2e90039ed53752ac5277c9cf4fce6fe7.jpeg" + } + ] + }, + { + "fileId": "8023", + "contributors": [ + { + "id": 14823260, + "username": "omahs", + "totalCosts": 1473.59, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14823260/medium/2e90039ed53752ac5277c9cf4fce6fe7.jpeg" + }, + { + "id": 15954931, + "username": "XofEE", + "totalCosts": 520.15, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15954931/medium/7254d648c451b822632980e5bfcb61fa.png" + }, + { + "id": 13324494, + "username": "hdmed", + "totalCosts": 71.71, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13324494/medium/e15dc911ade7cf545aeb847438d6742c.jpeg" + } + ] + }, + { + "fileId": "7565", + "contributors": [ + { + "id": 14823260, + "username": "omahs", + "totalCosts": 489.85, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14823260/medium/2e90039ed53752ac5277c9cf4fce6fe7.jpeg" + }, + { + "id": 15954931, + "username": "XofEE", + "totalCosts": 155.54, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15954931/medium/7254d648c451b822632980e5bfcb61fa.png" + } + ] + }, + { + "fileId": "7935", + "contributors": [ + { + "id": 15954931, + "username": "XofEE", + "totalCosts": 681.75, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15954931/medium/7254d648c451b822632980e5bfcb61fa.png" + } + ] + }, + { + "fileId": "7585", + "contributors": [ + { + "id": 14823260, + "username": "omahs", + "totalCosts": 151.5, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14823260/medium/2e90039ed53752ac5277c9cf4fce6fe7.jpeg" + }, + { + "id": 15954931, + "username": "XofEE", + "totalCosts": 11.11, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15954931/medium/7254d648c451b822632980e5bfcb61fa.png" + } + ] + }, + { + "fileId": "7581", + "contributors": [ + { + "id": 15961437, + "username": "harpocryptes", + "totalCosts": 7.07, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15961437/medium/d495096dfb14721b3d4848a1bc7cfdd5.jpeg" + } + ] + }, + { + "fileId": "7589", + "contributors": [ + { + "id": 15954931, + "username": "XofEE", + "totalCosts": 60.6, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15954931/medium/7254d648c451b822632980e5bfcb61fa.png" + }, + { + "id": 14823260, + "username": "omahs", + "totalCosts": 17.17, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14823260/medium/2e90039ed53752ac5277c9cf4fce6fe7.jpeg" + } + ] + }, + { + "fileId": "8015", + "contributors": [ + { + "id": 15954931, + "username": "XofEE", + "totalCosts": 290.88, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15954931/medium/7254d648c451b822632980e5bfcb61fa.png" + }, + { + "id": 14823260, + "username": "omahs", + "totalCosts": 223.21, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14823260/medium/2e90039ed53752ac5277c9cf4fce6fe7.jpeg" + }, + { + "id": 12844463, + "username": "MATsxm", + "totalCosts": 33.33, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12844463/medium/6fae27edb4b41f363587f737ea2f96de.jpg" + } + ] + }, + { + "fileId": "8011", + "contributors": [ + { + "id": 15954931, + "username": "XofEE", + "totalCosts": 1101.91, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15954931/medium/7254d648c451b822632980e5bfcb61fa.png" + } + ] + }, + { + "fileId": "7569", + "contributors": [ + { + "id": 14823260, + "username": "omahs", + "totalCosts": 349.46, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14823260/medium/2e90039ed53752ac5277c9cf4fce6fe7.jpeg" + }, + { + "id": 15954931, + "username": "XofEE", + "totalCosts": 51.51, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15954931/medium/7254d648c451b822632980e5bfcb61fa.png" + } + ] + }, + { + "fileId": "7939", + "contributors": [ + { + "id": 15954931, + "username": "XofEE", + "totalCosts": 389.86, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15954931/medium/7254d648c451b822632980e5bfcb61fa.png" + } + ] + }, + { + "fileId": "8007", + "contributors": [ + { + "id": 14823260, + "username": "omahs", + "totalCosts": 325.22, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14823260/medium/2e90039ed53752ac5277c9cf4fce6fe7.jpeg" + }, + { + "id": 15954931, + "username": "XofEE", + "totalCosts": 24.24, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15954931/medium/7254d648c451b822632980e5bfcb61fa.png" + } + ] } ] }, @@ -21114,7 +21386,7 @@ { "id": 15967185, "username": "waseemnaik", - "totalCosts": 1251.39, + "totalCosts": 1223.11, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15967185/medium/8544c16b7d24e687e63334d42c70d6dd.png" }, { @@ -21506,6 +21778,23 @@ "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15363678/medium/50e493deacc1ae7d512f2b38aab07d00.png" } ] + }, + { + "fileId": "6518", + "contributors": [ + { + "id": 15967185, + "username": "waseemnaik", + "totalCosts": 783.76, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15967185/medium/8544c16b7d24e687e63334d42c70d6dd.png" + }, + { + "id": 15363678, + "username": "Dawyer", + "totalCosts": 40.4, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15363678/medium/50e493deacc1ae7d512f2b38aab07d00.png" + } + ] } ] }, @@ -21649,6 +21938,12 @@ { "fileId": "2704", "contributors": [ + { + "id": 15965461, + "username": "Satglow", + "totalCosts": 1021.11, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15965461/medium/d0c82c3b7d4885069b13e4b4dc3f2963_default.png" + }, { "id": 14357794, "username": "robertdosa", @@ -21660,6 +21955,12 @@ { "fileId": "2702", "contributors": [ + { + "id": 15965461, + "username": "Satglow", + "totalCosts": 1303.91, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15965461/medium/d0c82c3b7d4885069b13e4b4dc3f2963_default.png" + }, { "id": 14357794, "username": "robertdosa", @@ -21671,6 +21972,12 @@ { "fileId": "2712", "contributors": [ + { + "id": 15965461, + "username": "Satglow", + "totalCosts": 1014.04, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15965461/medium/d0c82c3b7d4885069b13e4b4dc3f2963_default.png" + }, { "id": 14357794, "username": "robertdosa", @@ -21682,6 +21989,12 @@ { "fileId": "2710", "contributors": [ + { + "id": 15965461, + "username": "Satglow", + "totalCosts": 785.78, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15965461/medium/d0c82c3b7d4885069b13e4b4dc3f2963_default.png" + }, { "id": 14357794, "username": "robertdosa", @@ -21776,7 +22089,7 @@ { "id": 15965461, "username": "Satglow", - "totalCosts": 180.79, + "totalCosts": 182.81, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15965461/medium/d0c82c3b7d4885069b13e4b4dc3f2963_default.png" } ] @@ -22084,6 +22397,12 @@ { "fileId": "2814", "contributors": [ + { + "id": 15965461, + "username": "Satglow", + "totalCosts": 800.93, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15965461/medium/d0c82c3b7d4885069b13e4b4dc3f2963_default.png" + }, { "id": 14357794, "username": "robertdosa", @@ -22098,13 +22417,13 @@ { "id": 15965461, "username": "Satglow", - "totalCosts": 412.08, + "totalCosts": 387.84, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15965461/medium/d0c82c3b7d4885069b13e4b4dc3f2963_default.png" }, { "id": 14357794, "username": "robertdosa", - "totalCosts": 167.66, + "totalCosts": 152.51, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14357794/medium/a28b741096516a710523b87d9ee07223.png" } ] @@ -22162,7 +22481,14 @@ }, { "fileId": "2804", - "contributors": [] + "contributors": [ + { + "id": 15965461, + "username": "Satglow", + "totalCosts": 3424.91, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15965461/medium/d0c82c3b7d4885069b13e4b4dc3f2963_default.png" + } + ] }, { "fileId": "2848", @@ -22305,13 +22631,13 @@ { "id": 15965461, "username": "Satglow", - "totalCosts": 287.85, + "totalCosts": 280.78, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15965461/medium/d0c82c3b7d4885069b13e4b4dc3f2963_default.png" }, { "id": 14357794, "username": "robertdosa", - "totalCosts": 227.25, + "totalCosts": 189.88, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14357794/medium/a28b741096516a710523b87d9ee07223.png" } ] @@ -22322,13 +22648,13 @@ { "id": 15965461, "username": "Satglow", - "totalCosts": 325.22, + "totalCosts": 313.1, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15965461/medium/d0c82c3b7d4885069b13e4b4dc3f2963_default.png" }, { "id": 14357794, "username": "robertdosa", - "totalCosts": 203.01, + "totalCosts": 174.73, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14357794/medium/a28b741096516a710523b87d9ee07223.png" } ] @@ -22451,6 +22777,12 @@ { "fileId": "2958", "contributors": [ + { + "id": 15965461, + "username": "Satglow", + "totalCosts": 11587.73, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15965461/medium/d0c82c3b7d4885069b13e4b4dc3f2963_default.png" + }, { "id": 14357794, "username": "robertdosa", @@ -22623,7 +22955,7 @@ { "id": 15965461, "username": "Satglow", - "totalCosts": 1670.54, + "totalCosts": 1669.53, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15965461/medium/d0c82c3b7d4885069b13e4b4dc3f2963_default.png" } ] @@ -22849,7 +23181,7 @@ { "id": 15965461, "username": "Satglow", - "totalCosts": 1997.78, + "totalCosts": 1994.75, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15965461/medium/d0c82c3b7d4885069b13e4b4dc3f2963_default.png" } ] @@ -22884,18 +23216,18 @@ { "fileId": "2966", "contributors": [ - { - "id": 15594493, - "username": "0xceife", - "totalCosts": 376.73, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15594493/medium/ada4e2f5276b6085495631bb59486bc8.gif" - }, { "id": 15927303, "username": "roifnaufal21", "totalCosts": 326.23, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15927303/medium/e39f725004e850246a765bb86dddf780_default.png" }, + { + "id": 15594493, + "username": "0xceife", + "totalCosts": 312.09, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15594493/medium/ada4e2f5276b6085495631bb59486bc8.gif" + }, { "id": 14907079, "username": "Ayano85", @@ -23008,7 +23340,7 @@ { "id": 14866604, "username": "yeremiaryangunadi", - "totalCosts": 481.77, + "totalCosts": 472.68, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14866604/medium/285a89179a206f3621ba14bf04085b27.png" }, { @@ -23210,7 +23542,7 @@ { "id": 15927303, "username": "roifnaufal21", - "totalCosts": 1534.19, + "totalCosts": 1515, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15927303/medium/e39f725004e850246a765bb86dddf780_default.png" }, { @@ -23840,7 +24172,7 @@ { "id": 14866604, "username": "yeremiaryangunadi", - "totalCosts": 163.62, + "totalCosts": 139.38, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14866604/medium/285a89179a206f3621ba14bf04085b27.png" }, { @@ -24226,7 +24558,7 @@ { "id": 15934037, "username": "fuji.anggara10", - "totalCosts": 336.33, + "totalCosts": 312.09, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15934037/medium/e913f10d6d3550452e0b7c072e15aa40.jpeg" }, { @@ -24243,7 +24575,7 @@ { "id": 14866604, "username": "yeremiaryangunadi", - "totalCosts": 255.53, + "totalCosts": 180.79, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14866604/medium/285a89179a206f3621ba14bf04085b27.png" }, { @@ -24329,7 +24661,7 @@ { "id": 15927303, "username": "roifnaufal21", - "totalCosts": 2996.67, + "totalCosts": 2961.32, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15927303/medium/e39f725004e850246a765bb86dddf780_default.png" }, { @@ -24364,19 +24696,19 @@ { "id": 15934037, "username": "fuji.anggara10", - "totalCosts": 1750.33, + "totalCosts": 1710.94, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15934037/medium/e913f10d6d3550452e0b7c072e15aa40.jpeg" }, { "id": 15927303, "username": "roifnaufal21", - "totalCosts": 1543.28, + "totalCosts": 1487.73, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15927303/medium/e39f725004e850246a765bb86dddf780_default.png" }, { "id": 14861756, "username": "RahayuRafika_12", - "totalCosts": 125.24, + "totalCosts": 120.19, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14861756/medium/68ce2b760b107d1cf2a5a1508aa8ee96.jpeg" }, { @@ -24778,7 +25110,7 @@ { "id": 14866604, "username": "yeremiaryangunadi", - "totalCosts": 960.51, + "totalCosts": 949.4, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14866604/medium/285a89179a206f3621ba14bf04085b27.png" }, { @@ -24823,7 +25155,7 @@ { "id": 14866604, "username": "yeremiaryangunadi", - "totalCosts": 936.27, + "totalCosts": 924.15, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14866604/medium/285a89179a206f3621ba14bf04085b27.png" } ] @@ -24834,7 +25166,7 @@ { "id": 14866604, "username": "yeremiaryangunadi", - "totalCosts": 1526.11, + "totalCosts": 1510.96, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14866604/medium/285a89179a206f3621ba14bf04085b27.png" }, { @@ -24902,13 +25234,13 @@ { "id": 14866604, "username": "yeremiaryangunadi", - "totalCosts": 268.66, + "totalCosts": 256.54, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14866604/medium/285a89179a206f3621ba14bf04085b27.png" }, { "id": 15223998, "username": "eusisaku", - "totalCosts": 27.27, + "totalCosts": 15.15, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15223998/medium/4021b9a7382785cd2170c90797f713d7_default.png" } ] @@ -25449,7 +25781,7 @@ { "id": 14866604, "username": "yeremiaryangunadi", - "totalCosts": 321.18, + "totalCosts": 283.81, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14866604/medium/285a89179a206f3621ba14bf04085b27.png" }, { @@ -25466,7 +25798,7 @@ { "id": 14866604, "username": "yeremiaryangunadi", - "totalCosts": 206.04, + "totalCosts": 177.76, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14866604/medium/285a89179a206f3621ba14bf04085b27.png" }, { @@ -25761,6 +26093,12 @@ "totalCosts": 89.89, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15526713/medium/a65fab62bbc032697e4d12599f864085.jpeg" }, + { + "id": 14861756, + "username": "RahayuRafika_12", + "totalCosts": 37.37, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14861756/medium/68ce2b760b107d1cf2a5a1508aa8ee96.jpeg" + }, { "id": 14708760, "username": "hypebeans", @@ -25772,12 +26110,6 @@ "username": "HA22", "totalCosts": 22.22, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15762357/medium/813b5d9f883b9c10efe8b10ec282fb74_default.png" - }, - { - "id": 14861756, - "username": "RahayuRafika_12", - "totalCosts": 16.16, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14861756/medium/68ce2b760b107d1cf2a5a1508aa8ee96.jpeg" } ] }, @@ -25787,7 +26119,7 @@ { "id": 15775647, "username": "utomo878", - "totalCosts": 1605.9, + "totalCosts": 1577.62, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15775647/medium/e6c4302f1613714c53e496f87b61ae01.jpg" }, { @@ -25799,13 +26131,13 @@ { "id": 15752359, "username": "feriywahyu", - "totalCosts": 167.66, + "totalCosts": 139.38, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15752359/medium/93acc17e0d8f3debaa4916c1e6aef690.png" }, { "id": 14861756, "username": "RahayuRafika_12", - "totalCosts": 29.29, + "totalCosts": 56.56, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14861756/medium/68ce2b760b107d1cf2a5a1508aa8ee96.jpeg" }, { @@ -25834,7 +26166,7 @@ { "id": 14861756, "username": "RahayuRafika_12", - "totalCosts": 27.27, + "totalCosts": 56.56, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14861756/medium/68ce2b760b107d1cf2a5a1508aa8ee96.jpeg" }, { @@ -26194,7 +26526,7 @@ { "id": 15934037, "username": "fuji.anggara10", - "totalCosts": 1082.72, + "totalCosts": 1057.47, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15934037/medium/e913f10d6d3550452e0b7c072e15aa40.jpeg" }, { @@ -26410,7 +26742,7 @@ { "id": 15185884, "username": "carmen1912", - "totalCosts": 540.35, + "totalCosts": 491.87, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15185884/medium/0d349af8ba0364fdd96b55b46c40590c.jpg" }, { @@ -26422,7 +26754,7 @@ { "id": 13461670, "username": "GiorgioHerbie", - "totalCosts": 57.57, + "totalCosts": 41.41, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13461670/medium/9093f2d7047615a270b4c00bc2abd595_default.png" }, { @@ -26431,6 +26763,12 @@ "totalCosts": 38.38, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14745718/medium/062695516239cdaadf6d37ac6345ff3c_default.png" }, + { + "id": 16171038, + "username": "bianc8", + "totalCosts": 26.26, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16171038/medium/d0bf697b97124361ae9caa68aab37fa9.jpeg" + }, { "id": 14684140, "username": "migangelo.espo", @@ -26613,7 +26951,7 @@ { "id": 14657804, "username": "jhonnyvianello", - "totalCosts": 387.84, + "totalCosts": 378.75, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14657804/medium/005d9fa70fdc5a4fcd818f63cf61e1a0.jpg" }, { @@ -26628,6 +26966,12 @@ "totalCosts": 89.89, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15101201/medium/e83a56185107895cbc97cbd279ecf901.jpg" }, + { + "id": 16171038, + "username": "bianc8", + "totalCosts": 9.09, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16171038/medium/d0bf697b97124361ae9caa68aab37fa9.jpeg" + }, { "id": 15946127, "username": "hyperalchemy", @@ -26773,7 +27117,7 @@ { "id": 13461670, "username": "GiorgioHerbie", - "totalCosts": 801.94, + "totalCosts": 788.81, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13461670/medium/9093f2d7047615a270b4c00bc2abd595_default.png" }, { @@ -26781,6 +27125,12 @@ "username": "jhonnyvianello", "totalCosts": 13.13, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14657804/medium/005d9fa70fdc5a4fcd818f63cf61e1a0.jpg" + }, + { + "id": 16171038, + "username": "bianc8", + "totalCosts": 13.13, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16171038/medium/d0bf697b97124361ae9caa68aab37fa9.jpeg" } ] }, @@ -26790,15 +27140,21 @@ { "id": 13461670, "username": "GiorgioHerbie", - "totalCosts": 484.8, + "totalCosts": 467.63, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13461670/medium/9093f2d7047615a270b4c00bc2abd595_default.png" }, { "id": 14657804, "username": "jhonnyvianello", - "totalCosts": 107.06, + "totalCosts": 103.02, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14657804/medium/005d9fa70fdc5a4fcd818f63cf61e1a0.jpg" }, + { + "id": 16171038, + "username": "bianc8", + "totalCosts": 17.17, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16171038/medium/d0bf697b97124361ae9caa68aab37fa9.jpeg" + }, { "id": 15946127, "username": "hyperalchemy", @@ -26813,7 +27169,7 @@ { "id": 13461670, "username": "GiorgioHerbie", - "totalCosts": 1199.88, + "totalCosts": 1176.65, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13461670/medium/9093f2d7047615a270b4c00bc2abd595_default.png" }, { @@ -26852,10 +27208,10 @@ "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15688407/medium/d9dd6891978b373502758e0907c22ff4_default.png" }, { - "id": 15946127, - "username": "hyperalchemy", - "totalCosts": 2.02, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15946127/medium/fb8809671278895b42cf50c752fd7bf2.png" + "id": 16171038, + "username": "bianc8", + "totalCosts": 7.07, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16171038/medium/d0bf697b97124361ae9caa68aab37fa9.jpeg" } ] }, @@ -26865,15 +27221,21 @@ { "id": 13461670, "username": "GiorgioHerbie", - "totalCosts": 1477.63, + "totalCosts": 1431.17, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13461670/medium/9093f2d7047615a270b4c00bc2abd595_default.png" }, { "id": 14657804, "username": "jhonnyvianello", - "totalCosts": 531.26, + "totalCosts": 484.8, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14657804/medium/005d9fa70fdc5a4fcd818f63cf61e1a0.jpg" }, + { + "id": 16171038, + "username": "bianc8", + "totalCosts": 46.46, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16171038/medium/d0bf697b97124361ae9caa68aab37fa9.jpeg" + }, { "id": 15498288, "username": "Zybe22", @@ -26993,7 +27355,7 @@ { "id": 13461670, "username": "GiorgioHerbie", - "totalCosts": 1708.92, + "totalCosts": 1707.91, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13461670/medium/9093f2d7047615a270b4c00bc2abd595_default.png" }, { @@ -27121,7 +27483,7 @@ { "id": 13461670, "username": "GiorgioHerbie", - "totalCosts": 1727.1, + "totalCosts": 1730.13, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13461670/medium/9093f2d7047615a270b4c00bc2abd595_default.png" }, { @@ -27486,6 +27848,12 @@ "username": "GiorgioHerbie", "totalCosts": 994.85, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13461670/medium/9093f2d7047615a270b4c00bc2abd595_default.png" + }, + { + "id": 16171038, + "username": "bianc8", + "totalCosts": 7.07, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16171038/medium/d0bf697b97124361ae9caa68aab37fa9.jpeg" } ] }, @@ -27748,7 +28116,7 @@ { "id": 13461670, "username": "GiorgioHerbie", - "totalCosts": 412.08, + "totalCosts": 414.1, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13461670/medium/9093f2d7047615a270b4c00bc2abd595_default.png" }, { @@ -27963,7 +28331,7 @@ { "id": 13461670, "username": "GiorgioHerbie", - "totalCosts": 1760.43, + "totalCosts": 1765.48, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13461670/medium/9093f2d7047615a270b4c00bc2abd595_default.png" }, { @@ -28600,7 +28968,7 @@ { "id": 13461670, "username": "GiorgioHerbie", - "totalCosts": 3641.05, + "totalCosts": 3671.35, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13461670/medium/9093f2d7047615a270b4c00bc2abd595_default.png" }, { @@ -28674,13 +29042,13 @@ { "id": 13461670, "username": "GiorgioHerbie", - "totalCosts": 327.24, + "totalCosts": 311.08, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13461670/medium/9093f2d7047615a270b4c00bc2abd595_default.png" }, { "id": 14686678, "username": "ametel01", - "totalCosts": 159.58, + "totalCosts": 144.43, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14686678/medium/42da64bc8743fcf14d7efc7aaebbd99f.jpeg" }, { @@ -28801,7 +29169,7 @@ { "id": 13461670, "username": "GiorgioHerbie", - "totalCosts": 3299.67, + "totalCosts": 3269.37, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13461670/medium/9093f2d7047615a270b4c00bc2abd595_default.png" } ] @@ -29220,7 +29588,7 @@ { "id": 13461670, "username": "GiorgioHerbie", - "totalCosts": 999.9, + "totalCosts": 1000.91, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13461670/medium/9093f2d7047615a270b4c00bc2abd595_default.png" }, { @@ -29289,7 +29657,7 @@ { "id": 13461670, "username": "GiorgioHerbie", - "totalCosts": 1541.26, + "totalCosts": 1540.25, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13461670/medium/9093f2d7047615a270b4c00bc2abd595_default.png" }, { @@ -29365,7 +29733,7 @@ { "id": 13461670, "username": "GiorgioHerbie", - "totalCosts": 1646.3, + "totalCosts": 1648.32, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13461670/medium/9093f2d7047615a270b4c00bc2abd595_default.png" }, { @@ -29415,13 +29783,13 @@ { "id": 13461670, "username": "GiorgioHerbie", - "totalCosts": 338.35, + "totalCosts": 349.46, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13461670/medium/9093f2d7047615a270b4c00bc2abd595_default.png" }, { "id": 15101201, "username": "andreapiani.dev", - "totalCosts": 268.66, + "totalCosts": 256.54, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15101201/medium/e83a56185107895cbc97cbd279ecf901.jpg" } ] @@ -29989,7 +30357,7 @@ { "id": 13461670, "username": "GiorgioHerbie", - "totalCosts": 274.72, + "totalCosts": 237.35, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13461670/medium/9093f2d7047615a270b4c00bc2abd595_default.png" }, { @@ -30006,7 +30374,7 @@ { "id": 14633448, "username": "ilrado", - "totalCosts": 203.01, + "totalCosts": 174.73, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14633448/medium/00e36a91231d5f6980f4ea96c1f24ab9.jpg" }, { @@ -30453,13 +30821,13 @@ { "id": 15370640, "username": "radiofreekekistan", - "totalCosts": 722.15, + "totalCosts": 699.93, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15370640/medium/a078ae2d5a193a9bfeedbf92e849f9da.jpeg" }, { "id": 13461670, "username": "GiorgioHerbie", - "totalCosts": 409.05, + "totalCosts": 431.27, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13461670/medium/9093f2d7047615a270b4c00bc2abd595_default.png" } ] @@ -31225,7 +31593,7 @@ { "id": 13754187, "username": "Carla78", - "totalCosts": 3923.85, + "totalCosts": 3901.63, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13754187/medium/37de2106b564cdd5431a9c1f7e091087.png" }, { @@ -31234,6 +31602,12 @@ "totalCosts": 1546.31, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15266690/medium/beb929d96ab06718fce198051fdffaae.jpg" }, + { + "id": 13461670, + "username": "GiorgioHerbie", + "totalCosts": 22.22, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13461670/medium/9093f2d7047615a270b4c00bc2abd595_default.png" + }, { "id": 15946127, "username": "hyperalchemy", @@ -31259,7 +31633,7 @@ { "id": 15266690, "username": "Fuliggine", - "totalCosts": 1610.95, + "totalCosts": 1607.92, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15266690/medium/beb929d96ab06718fce198051fdffaae.jpg" }, { @@ -31282,20 +31656,26 @@ { "id": 13754187, "username": "Carla78", - "totalCosts": 459.55, + "totalCosts": 424.2, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13754187/medium/37de2106b564cdd5431a9c1f7e091087.png" }, { "id": 15266690, "username": "Fuliggine", - "totalCosts": 63.63, + "totalCosts": 59.59, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15266690/medium/beb929d96ab06718fce198051fdffaae.jpg" }, { "id": 13461670, "username": "GiorgioHerbie", - "totalCosts": 21.21, + "totalCosts": 54.54, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13461670/medium/9093f2d7047615a270b4c00bc2abd595_default.png" + }, + { + "id": 16171038, + "username": "bianc8", + "totalCosts": 38.38, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16171038/medium/d0bf697b97124361ae9caa68aab37fa9.jpeg" } ] }, @@ -31321,7 +31701,7 @@ { "id": 15208868, "username": "HiroyukiNaito", - "totalCosts": 647.41, + "totalCosts": 582.77, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15208868/medium/4ed4a0a0659f1c63e52f395079aeb3c4.jpg" }, { @@ -31518,7 +31898,7 @@ { "id": 15169660, "username": "kurotaky", - "totalCosts": 473.69, + "totalCosts": 464.6, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15169660/medium/05e3e729e62f12747a7d06b8f27d3cf5.jpeg" }, { @@ -31695,7 +32075,7 @@ { "id": 15169660, "username": "kurotaky", - "totalCosts": 420.16, + "totalCosts": 402.99, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15169660/medium/05e3e729e62f12747a7d06b8f27d3cf5.jpeg" }, { @@ -31782,7 +32162,7 @@ { "id": 15275810, "username": "sakamotomasayuki7", - "totalCosts": 1492.78, + "totalCosts": 1446.32, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15275810/medium/3af3394e8787b462699f2e56425983a1.jpeg" }, { @@ -31880,7 +32260,7 @@ { "id": 15680077, "username": "miyamo", - "totalCosts": 1552.37, + "totalCosts": 1524.09, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15680077/medium/a9db402339c4ac996a32133a844692ef_default.png" }, { @@ -32068,7 +32448,7 @@ { "id": 15208868, "username": "HiroyukiNaito", - "totalCosts": 2406.83, + "totalCosts": 2390.67, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15208868/medium/4ed4a0a0659f1c63e52f395079aeb3c4.jpg" }, { @@ -33154,7 +33534,7 @@ { "id": 15208868, "username": "HiroyukiNaito", - "totalCosts": 171.7, + "totalCosts": 147.46, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15208868/medium/4ed4a0a0659f1c63e52f395079aeb3c4.jpg" }, { @@ -33618,7 +33998,7 @@ { "id": 15135089, "username": "indwm", - "totalCosts": 3627.92, + "totalCosts": 3617.82, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15135089/medium/ad0dde7b6943eb1bdc2b8c64223dd070.png" }, { @@ -33714,12 +34094,6 @@ "totalCosts": 90.9, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14880458/medium/6b71180a926d6213e33b21e50df8e409_default.png" }, - { - "id": 15427130, - "username": "universay", - "totalCosts": 24.24, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15427130/medium/67a9892e5cdc1c7711bbc9698c3f4962.jpg" - }, { "id": 14395884, "username": "Frodo821", @@ -33734,32 +34108,26 @@ { "id": 14880458, "username": "sekisanchi", - "totalCosts": 160.59, + "totalCosts": 145.44, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14880458/medium/6b71180a926d6213e33b21e50df8e409_default.png" }, { - "id": 14395884, - "username": "Frodo821", - "totalCosts": 110.09, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14395884/medium/be6488d24fd9f5ff7ac7d461e6cd6758.jpeg" + "id": 15208868, + "username": "HiroyukiNaito", + "totalCosts": 86.86, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15208868/medium/4ed4a0a0659f1c63e52f395079aeb3c4.jpg" }, { "id": 15333126, "username": "1056shigezane", - "totalCosts": 106.05, + "totalCosts": 85.85, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15333126/medium/8636a8bf1e089984f0b201f93b551fb2.png" }, { - "id": 15208868, - "username": "HiroyukiNaito", - "totalCosts": 86.86, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15208868/medium/4ed4a0a0659f1c63e52f395079aeb3c4.jpg" - }, - { - "id": 15169660, - "username": "kurotaky", - "totalCosts": 12.12, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15169660/medium/05e3e729e62f12747a7d06b8f27d3cf5.jpeg" + "id": 14395884, + "username": "Frodo821", + "totalCosts": 38.38, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14395884/medium/be6488d24fd9f5ff7ac7d461e6cd6758.jpeg" }, { "id": 14563438, @@ -33897,7 +34265,7 @@ { "id": 15208868, "username": "HiroyukiNaito", - "totalCosts": 5082.32, + "totalCosts": 5046.97, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15208868/medium/4ed4a0a0659f1c63e52f395079aeb3c4.jpg" }, { @@ -33914,7 +34282,7 @@ { "id": 15208868, "username": "HiroyukiNaito", - "totalCosts": 3177.46, + "totalCosts": 3077.47, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15208868/medium/4ed4a0a0659f1c63e52f395079aeb3c4.jpg" }, { @@ -34495,13 +34863,13 @@ { "id": 15208868, "username": "HiroyukiNaito", - "totalCosts": 934.25, + "totalCosts": 935.26, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15208868/medium/4ed4a0a0659f1c63e52f395079aeb3c4.jpg" }, { "id": 15053289, "username": "saka32", - "totalCosts": 177.76, + "totalCosts": 166.65, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15053289/medium/4913b97dd50a7c93bfb2f0b709bd3cd3_default.png" }, { @@ -34570,13 +34938,13 @@ { "id": 15117055, "username": "mfujimori1018", - "totalCosts": 936.27, + "totalCosts": 924.15, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15117055/medium/e3eebafe5df0403d9d8d27c6e0fe207a.png" }, { "id": 15341508, "username": "hesoponyo", - "totalCosts": 490.86, + "totalCosts": 463.59, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15341508/medium/070055fd80d21a5f4b26e37dd49cd0d0.png" }, { @@ -34610,13 +34978,13 @@ { "id": 15460936, "username": "tsukky", - "totalCosts": 1651.35, + "totalCosts": 1636.2, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15460936/medium/99ed6b4051dfcad3d1fa3e4cfaa17073.JPG" }, { "id": 15208868, "username": "HiroyukiNaito", - "totalCosts": 1627.11, + "totalCosts": 1629.13, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15208868/medium/4ed4a0a0659f1c63e52f395079aeb3c4.jpg" } ] @@ -34678,7 +35046,7 @@ { "id": 15117055, "username": "mfujimori1018", - "totalCosts": 268.66, + "totalCosts": 256.54, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15117055/medium/e3eebafe5df0403d9d8d27c6e0fe207a.png" }, { @@ -35295,13 +35663,13 @@ { "id": 14880458, "username": "sekisanchi", - "totalCosts": 249.47, + "totalCosts": 212.1, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14880458/medium/6b71180a926d6213e33b21e50df8e409_default.png" }, { "id": 15208868, "username": "HiroyukiNaito", - "totalCosts": 245.43, + "totalCosts": 208.06, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15208868/medium/4ed4a0a0659f1c63e52f395079aeb3c4.jpg" }, { @@ -35330,7 +35698,7 @@ { "id": 14852734, "username": "0xEthDuzIt", - "totalCosts": 209.07, + "totalCosts": 180.79, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14852734/medium/da1e9138c30b0fbcfd54f987a7e55328.jpg" }, { @@ -36023,7 +36391,7 @@ { "id": 15208868, "username": "HiroyukiNaito", - "totalCosts": 1131.2, + "totalCosts": 1105.95, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15208868/medium/4ed4a0a0659f1c63e52f395079aeb3c4.jpg" } ] @@ -36137,6 +36505,40 @@ "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15208868/medium/4ed4a0a0659f1c63e52f395079aeb3c4.jpg" } ] + }, + { + "fileId": "7927", + "contributors": [ + { + "id": 15964877, + "username": "ten5235", + "totalCosts": 1147.36, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15964877/medium/31d3f81a4dc84f53fcc1b3da395a06d4_default.png" + }, + { + "id": 15208868, + "username": "HiroyukiNaito", + "totalCosts": 382.79, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15208868/medium/4ed4a0a0659f1c63e52f395079aeb3c4.jpg" + } + ] + }, + { + "fileId": "7597", + "contributors": [ + { + "id": 15680077, + "username": "miyamo", + "totalCosts": 117.16, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15680077/medium/a9db402339c4ac996a32133a844692ef_default.png" + }, + { + "id": 15208868, + "username": "HiroyukiNaito", + "totalCosts": 9.09, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15208868/medium/4ed4a0a0659f1c63e52f395079aeb3c4.jpg" + } + ] } ] }, @@ -36283,7 +36685,7 @@ { "id": 15442454, "username": "Im-SpiETH", - "totalCosts": 1668.52, + "totalCosts": 1640.24, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15442454/medium/860696ab89262fe98a0b888882d2b2da_default.png" }, { @@ -36303,18 +36705,18 @@ { "fileId": "6183", "contributors": [ + { + "id": 16054974, + "username": "swpark1004", + "totalCosts": 119.18, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16054974/medium/21f3f27ceb5330aeabde9a90ba4a5f85.jpeg" + }, { "id": 15328532, "username": "Seung_Gi_Kim", "totalCosts": 59.59, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15328532/medium/78e4ff5d50b928c2aea8ff50b2ff1c39.jpg" }, - { - "id": 16054974, - "username": "swpark1004", - "totalCosts": 41.41, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16054974/medium/21f3f27ceb5330aeabde9a90ba4a5f85.jpeg" - }, { "id": 15530275, "username": "emunwon", @@ -36845,7 +37247,7 @@ { "id": 15084373, "username": "tarcanhursit", - "totalCosts": 617.11, + "totalCosts": 608.02, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15084373/medium/63831adb2cf079020b094666d47417fd.jpg" } ] @@ -37069,7 +37471,7 @@ { "id": 15750423, "username": "less_explorer", - "totalCosts": 1000.91, + "totalCosts": 972.63, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15750423/medium/44085a2751d1f337f4e4aee5459b2ccf.jpg" }, { @@ -37114,13 +37516,13 @@ { "id": 15284800, "username": "msliwinski123", - "totalCosts": 697.91, + "totalCosts": 633.27, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15284800/medium/a5707bdd7287b30379bd9c3cb122ef9b.png" }, { "id": 15894449, "username": "wosek_", - "totalCosts": 613.07, + "totalCosts": 548.43, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15894449/medium/a1d92e3a822252a09f842a8a5451c403.jpg" }, { @@ -37236,13 +37638,13 @@ { "id": 15771025, "username": "Andrzej1072", - "totalCosts": 1663.47, + "totalCosts": 1635.19, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15771025/medium/e70215b910c59f0fa39516bbbe11c35d.png" }, { "id": 15894449, "username": "wosek_", - "totalCosts": 7.07, + "totalCosts": 34.34, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15894449/medium/a1d92e3a822252a09f842a8a5451c403.jpg" } ] @@ -37990,20 +38392,20 @@ { "id": 15894449, "username": "wosek_", - "totalCosts": 235.33, + "totalCosts": 207.05, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15894449/medium/a1d92e3a822252a09f842a8a5451c403.jpg" }, - { - "id": 15284800, - "username": "msliwinski123", - "totalCosts": 210.08, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15284800/medium/a5707bdd7287b30379bd9c3cb122ef9b.png" - }, { "id": 14775946, "username": "Beas", - "totalCosts": 168.67, + "totalCosts": 153.52, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14775946/medium/22ad4db44fa2f657ec257775cddc899c.jpg" + }, + { + "id": 15284800, + "username": "msliwinski123", + "totalCosts": 150.49, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15284800/medium/a5707bdd7287b30379bd9c3cb122ef9b.png" } ] }, @@ -38584,7 +38986,7 @@ { "id": 14775946, "username": "Beas", - "totalCosts": 322.19, + "totalCosts": 284.82, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14775946/medium/22ad4db44fa2f657ec257775cddc899c.jpg" }, { @@ -38601,7 +39003,7 @@ { "id": 14775946, "username": "Beas", - "totalCosts": 209.07, + "totalCosts": 180.79, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14775946/medium/22ad4db44fa2f657ec257775cddc899c.jpg" }, { @@ -38809,7 +39211,7 @@ { "id": 15894449, "username": "wosek_", - "totalCosts": 3223.92, + "totalCosts": 3421.88, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15894449/medium/a1d92e3a822252a09f842a8a5451c403.jpg" }, { @@ -38963,7 +39365,7 @@ { "id": 15894449, "username": "wosek_", - "totalCosts": 1994.75, + "totalCosts": 1991.72, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15894449/medium/a1d92e3a822252a09f842a8a5451c403.jpg" } ] @@ -38974,13 +39376,13 @@ { "id": 15284800, "username": "msliwinski123", - "totalCosts": 603.98, + "totalCosts": 594.89, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15284800/medium/a5707bdd7287b30379bd9c3cb122ef9b.png" }, { "id": 15894449, "username": "wosek_", - "totalCosts": 226.24, + "totalCosts": 217.15, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15894449/medium/a1d92e3a822252a09f842a8a5451c403.jpg" }, { @@ -39272,7 +39674,7 @@ { "id": 13986387, "username": "rafarocha", - "totalCosts": 599.94, + "totalCosts": 535.3, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13986387/medium/72bb87143f2a8d013cddac84c4e2afac.jpg" }, { @@ -39511,7 +39913,7 @@ { "id": 15114963, "username": "tiagoyonamine.eth", - "totalCosts": 55.55, + "totalCosts": 46.46, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15114963/medium/b9c830466fee03c6d68be46beacfdd16_default.png" }, { @@ -39672,12 +40074,6 @@ "totalCosts": 431.27, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13986387/medium/72bb87143f2a8d013cddac84c4e2afac.jpg" }, - { - "id": 15376854, - "username": "RenanDeveloper", - "totalCosts": 13.13, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15376854/medium/960a793d255cc1e610c7ccd5667ed9d9_default.png" - }, { "id": 15241638, "username": "Panegali", @@ -39692,27 +40088,27 @@ { "id": 13986387, "username": "rafarocha", - "totalCosts": 323.2, + "totalCosts": 318.15, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13986387/medium/72bb87143f2a8d013cddac84c4e2afac.jpg" }, { "id": 15165600, "username": "Horberlan", - "totalCosts": 75.75, + "totalCosts": 71.71, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15165600/medium/5ba9d519f33745fa64879cff2511ace4.png" }, - { - "id": 15121067, - "username": "DiegoCabral", - "totalCosts": 38.38, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15121067/medium/7622a32578aec0440b8e01743f23435f.png" - }, { "id": 15431346, "username": "BenedettiLucca", "totalCosts": 38.38, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15431346/medium/d5bf45d5fbceebd23be3d23b2f8c8a1a_default.png" }, + { + "id": 15121067, + "username": "DiegoCabral", + "totalCosts": 30.3, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15121067/medium/7622a32578aec0440b8e01743f23435f.png" + }, { "id": 15515516, "username": "MCreimer", @@ -39803,7 +40199,7 @@ { "id": 15515516, "username": "MCreimer", - "totalCosts": 68.68, + "totalCosts": 66.66, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15515516/medium/cad56d6fa7c03af94b18ead23e791019.png" }, { @@ -39851,18 +40247,18 @@ "totalCosts": 615.09, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13986387/medium/72bb87143f2a8d013cddac84c4e2afac.jpg" }, - { - "id": 15269576, - "username": "camolina", - "totalCosts": 506.01, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15269576/medium/1a3566292dbbb3d62c42cba932c6509c_default.png" - }, { "id": 15728117, "username": "alnrsnd", "totalCosts": 482.78, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15728117/medium/7631d966177edc87bcb5a0cbd146ca21_default.png" }, + { + "id": 15269576, + "username": "camolina", + "totalCosts": 459.55, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15269576/medium/1a3566292dbbb3d62c42cba932c6509c_default.png" + }, { "id": 15657153, "username": "leomarar", @@ -39964,13 +40360,13 @@ { "id": 13986387, "username": "rafarocha", - "totalCosts": 1135.24, + "totalCosts": 1106.96, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13986387/medium/72bb87143f2a8d013cddac84c4e2afac.jpg" }, { "id": 15515516, "username": "MCreimer", - "totalCosts": 637.31, + "totalCosts": 609.03, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15515516/medium/cad56d6fa7c03af94b18ead23e791019.png" } ] @@ -41451,7 +41847,7 @@ { "id": 15158848, "username": "massardo", - "totalCosts": 150.49, + "totalCosts": 126.25, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15158848/medium/e71dc81c159e8a7f2393636435ad6e09.jpeg" }, { @@ -41819,7 +42215,7 @@ { "id": 15435992, "username": "italosantana", - "totalCosts": 264.62, + "totalCosts": 254.52, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15435992/medium/61afc2a3a2417f17a118fea970030cbf.jpeg" } ] @@ -41864,7 +42260,7 @@ { "id": 13986387, "username": "rafarocha", - "totalCosts": 540.35, + "totalCosts": 516.11, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13986387/medium/72bb87143f2a8d013cddac84c4e2afac.jpg" }, { @@ -41996,7 +42392,7 @@ { "id": 13986387, "username": "rafarocha", - "totalCosts": 4024.85, + "totalCosts": 3989.5, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13986387/medium/72bb87143f2a8d013cddac84c4e2afac.jpg" }, { @@ -42031,19 +42427,19 @@ { "id": 15515516, "username": "MCreimer", - "totalCosts": 2119.99, + "totalCosts": 2083.63, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15515516/medium/cad56d6fa7c03af94b18ead23e791019.png" }, { "id": 14573604, "username": "bceschini", - "totalCosts": 798.91, + "totalCosts": 759.52, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14573604/medium/e07f0a64aea775f906b999491ca671d9.jpeg" }, { "id": 13986387, "username": "rafarocha", - "totalCosts": 288.86, + "totalCosts": 264.62, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13986387/medium/72bb87143f2a8d013cddac84c4e2afac.jpg" }, { @@ -42404,18 +42800,18 @@ { "fileId": "6223", "contributors": [ - { - "id": 13986387, - "username": "rafarocha", - "totalCosts": 379.76, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13986387/medium/72bb87143f2a8d013cddac84c4e2afac.jpg" - }, { "id": 13855929, "username": "gabriel.silva", "totalCosts": 368.65, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13855929/medium/51d997bd43d246da34052b5cab702f56.jpg" }, + { + "id": 13986387, + "username": "rafarocha", + "totalCosts": 364.61, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13986387/medium/72bb87143f2a8d013cddac84c4e2afac.jpg" + }, { "id": 15121067, "username": "DiegoCabral", @@ -42436,7 +42832,7 @@ { "id": 15114963, "username": "tiagoyonamine.eth", - "totalCosts": 268.66, + "totalCosts": 256.54, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15114963/medium/b9c830466fee03c6d68be46beacfdd16_default.png" }, { @@ -42744,7 +43140,7 @@ { "id": 14636118, "username": "frontedu", - "totalCosts": 186.85, + "totalCosts": 158.57, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14636118/medium/d3d3ec3fab34702c4b19674b06e1ddff.png" }, { @@ -42884,6 +43280,12 @@ "username": "rafarocha", "totalCosts": 231.29, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13986387/medium/72bb87143f2a8d013cddac84c4e2afac.jpg" + }, + { + "id": 16099664, + "username": "yanvictorsn", + "totalCosts": 16.16, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16099664/medium/0be252ecf72e8e4d5021a63cd4ad3353.png" } ] }, @@ -43584,7 +43986,7 @@ { "id": 13986387, "username": "rafarocha", - "totalCosts": 1103.93, + "totalCosts": 1100.9, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13986387/medium/72bb87143f2a8d013cddac84c4e2afac.jpg" }, { @@ -43660,6 +44062,12 @@ "username": "MCreimer", "totalCosts": 1165.54, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15515516/medium/cad56d6fa7c03af94b18ead23e791019.png" + }, + { + "id": 16099664, + "username": "yanvictorsn", + "totalCosts": 29.29, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16099664/medium/0be252ecf72e8e4d5021a63cd4ad3353.png" } ] }, @@ -43726,13 +44134,13 @@ { "id": 15350616, "username": "Carlos_Silva", - "totalCosts": 1109.99, + "totalCosts": 1087.77, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15350616/medium/d1c4c996fc6985d2df9db6d157e17356.png" }, { "id": 13986387, "username": "rafarocha", - "totalCosts": 18.18, + "totalCosts": 15.15, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13986387/medium/72bb87143f2a8d013cddac84c4e2afac.jpg" } ] @@ -43980,7 +44388,7 @@ { "id": 14087195, "username": "nicklcanada", - "totalCosts": 477.73, + "totalCosts": 468.64, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14087195/medium/810aea3ef8ba145e88db17a73c95a4b8_default.png" } ] @@ -44406,7 +44814,7 @@ { "id": 14087195, "username": "nicklcanada", - "totalCosts": 163.62, + "totalCosts": 139.38, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14087195/medium/810aea3ef8ba145e88db17a73c95a4b8_default.png" } ] @@ -44662,17 +45070,17 @@ { "fileId": "2822", "contributors": [ - { - "id": 12804952, - "username": "imgelu", - "totalCosts": 172.71, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12804952/medium/59d5d165d5b422c57908e7797d3b83ee.jpg" - }, { "id": 14087195, "username": "nicklcanada", - "totalCosts": 168.67, + "totalCosts": 153.52, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14087195/medium/810aea3ef8ba145e88db17a73c95a4b8_default.png" + }, + { + "id": 12804952, + "username": "imgelu", + "totalCosts": 93.93, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/12804952/medium/59d5d165d5b422c57908e7797d3b83ee.jpg" } ] }, @@ -44960,7 +45368,7 @@ { "id": 14087195, "username": "nicklcanada", - "totalCosts": 955.46, + "totalCosts": 944.35, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14087195/medium/810aea3ef8ba145e88db17a73c95a4b8_default.png" }, { @@ -44999,7 +45407,7 @@ { "id": 14087195, "username": "nicklcanada", - "totalCosts": 936.27, + "totalCosts": 924.15, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14087195/medium/810aea3ef8ba145e88db17a73c95a4b8_default.png" } ] @@ -45010,7 +45418,7 @@ { "id": 14087195, "username": "nicklcanada", - "totalCosts": 1562.47, + "totalCosts": 1547.32, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14087195/medium/810aea3ef8ba145e88db17a73c95a4b8_default.png" } ] @@ -45054,7 +45462,7 @@ { "id": 14087195, "username": "nicklcanada", - "totalCosts": 268.66, + "totalCosts": 256.54, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14087195/medium/810aea3ef8ba145e88db17a73c95a4b8_default.png" } ] @@ -45371,7 +45779,7 @@ { "id": 14087195, "username": "nicklcanada", - "totalCosts": 306.03, + "totalCosts": 268.66, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14087195/medium/810aea3ef8ba145e88db17a73c95a4b8_default.png" } ] @@ -45382,7 +45790,7 @@ { "id": 14087195, "username": "nicklcanada", - "totalCosts": 212.1, + "totalCosts": 183.82, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14087195/medium/810aea3ef8ba145e88db17a73c95a4b8_default.png" } ] @@ -45667,7 +46075,7 @@ { "id": 14514124, "username": "ViktorOn", - "totalCosts": 567.62, + "totalCosts": 558.53, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14514124/medium/fa0297b182b72fbcf006daba457ef1a3.png" }, { @@ -46440,7 +46848,7 @@ }, { "id": 15049205, - "username": "aleksandrmedvecky", + "username": "MedveckyA", "totalCosts": 14.14, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15049205/medium/0be15eb751f0359262535f9dfed66c95.jpeg" }, @@ -47027,7 +47435,7 @@ { "id": 15619839, "username": "mediaquest", - "totalCosts": 277.75, + "totalCosts": 249.47, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15619839/medium/99c14ce4e8161f6b077fa0849ac4c5b0.png" }, { @@ -47507,7 +47915,7 @@ { "id": 15947515, "username": "blockson", - "totalCosts": 1976.57, + "totalCosts": 1973.54, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15947515/medium/52b0b3490fcf6940d9027ef2f32a424b.jpeg" }, { @@ -47599,7 +48007,7 @@ { "id": 15966943, "username": "yulkor", - "totalCosts": 552.47, + "totalCosts": 530.25, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15966943/medium/0d340104d53d3ff4df1c7c2412e8c86e_default.png" }, { @@ -47611,7 +48019,7 @@ { "id": 15763855, "username": "dovbyshbgd", - "totalCosts": 289.87, + "totalCosts": 286.84, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15763855/medium/5b59dc54e26664f82eab09a76961eaf7.png" }, { @@ -48159,7 +48567,7 @@ { "id": 14957177, "username": "joeurassa", - "totalCosts": 535.3, + "totalCosts": 526.21, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14957177/medium/8323f79a3f73f2e723da72db082c0c22.jpg" } ] @@ -48243,7 +48651,7 @@ { "id": 15908487, "username": "insidetrader", - "totalCosts": 577.72, + "totalCosts": 513.08, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15908487/medium/2dad4c49ee42d9df9633332d432e708e.jpg" }, { @@ -48417,7 +48825,7 @@ { "id": 14996861, "username": "kaanmetu", - "totalCosts": 481.77, + "totalCosts": 472.68, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14996861/medium/eb0c9870f3f6317e6bfdc4a838e4fd5f.jpg" }, { @@ -48604,12 +49012,6 @@ "totalCosts": 49.49, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15082707/medium/1422c6237f35e4d0e31e08554a233472.jpeg" }, - { - "id": 15908487, - "username": "insidetrader", - "totalCosts": 13.13, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15908487/medium/2dad4c49ee42d9df9633332d432e708e.jpg" - }, { "id": 15076881, "username": "yavuzarslan.atakan", @@ -48642,7 +49044,7 @@ { "id": 15082707, "username": "selcuk45", - "totalCosts": 81.81, + "totalCosts": 68.68, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15082707/medium/1422c6237f35e4d0e31e08554a233472.jpeg" }, { @@ -48654,7 +49056,7 @@ { "id": 15076881, "username": "yavuzarslan.atakan", - "totalCosts": 24.24, + "totalCosts": 20.2, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15076881/medium/10e51ff77863c9559147fcb0546c119d.jpeg" }, { @@ -48718,7 +49120,7 @@ { "id": 15908487, "username": "insidetrader", - "totalCosts": 328.25, + "totalCosts": 326.23, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15908487/medium/2dad4c49ee42d9df9633332d432e708e.jpg" }, { @@ -48741,7 +49143,7 @@ { "id": 14996861, "username": "kaanmetu", - "totalCosts": 569.64, + "totalCosts": 523.18, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14996861/medium/eb0c9870f3f6317e6bfdc4a838e4fd5f.jpg" }, { @@ -49863,7 +50265,7 @@ { "id": 15082707, "username": "selcuk45", - "totalCosts": 3099.69, + "totalCosts": 3089.59, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15082707/medium/1422c6237f35e4d0e31e08554a233472.jpeg" }, { @@ -49945,7 +50347,7 @@ { "id": 14996861, "username": "kaanmetu", - "totalCosts": 164.63, + "totalCosts": 140.39, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14996861/medium/eb0c9870f3f6317e6bfdc4a838e4fd5f.jpg" }, { @@ -50403,13 +50805,13 @@ { "id": 15963921, "username": "bicebaris", - "totalCosts": 950.41, + "totalCosts": 932.23, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15963921/medium/5ed57dad6d6d747e47d9378a8006ede1.jpg" }, { "id": 15966191, "username": "0xokan", - "totalCosts": 458.54, + "totalCosts": 448.44, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15966191/medium/a5d1d36d7404974d591cbcf59f089df9.jpg" }, { @@ -50522,18 +50924,6 @@ "username": "sekoman01", "totalCosts": 91.91, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14690454/medium/595a121d4a7427f7a21b75b32017c247.jpg" - }, - { - "id": 15956829, - "username": "isinasli", - "totalCosts": 24.24, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15956829/medium/e7a64fde9e9413a2ae5add75cba88f09_default.png" - }, - { - "id": 14131653, - "username": "Berke37", - "totalCosts": 24.24, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14131653/medium/ff295534ec23d3428ba06f99e0fd50bb.jpg" } ] }, @@ -50543,13 +50933,13 @@ { "id": 15082707, "username": "selcuk45", - "totalCosts": 362.59, + "totalCosts": 282.8, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15082707/medium/1422c6237f35e4d0e31e08554a233472.jpeg" }, { "id": 14996861, "username": "kaanmetu", - "totalCosts": 60.6, + "totalCosts": 40.4, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14996861/medium/eb0c9870f3f6317e6bfdc4a838e4fd5f.jpg" } ] @@ -50641,7 +51031,7 @@ { "id": 15082707, "username": "selcuk45", - "totalCosts": 3602.67, + "totalCosts": 3567.32, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15082707/medium/1422c6237f35e4d0e31e08554a233472.jpeg" }, { @@ -50676,19 +51066,19 @@ { "id": 15966007, "username": "0xselimc", - "totalCosts": 2057.37, + "totalCosts": 1981.62, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15966007/medium/6008a158d741536a305a81bd295ab407.jpeg" }, { "id": 15082707, "username": "selcuk45", - "totalCosts": 737.3, + "totalCosts": 725.18, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15082707/medium/1422c6237f35e4d0e31e08554a233472.jpeg" }, { "id": 15966271, "username": "zeydrm", - "totalCosts": 452.48, + "totalCosts": 440.36, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15966271/medium/bbeac0fbc387f8f821f861bc79c625fd.png" }, { @@ -51277,13 +51667,13 @@ { "id": 14996861, "username": "kaanmetu", - "totalCosts": 766.59, + "totalCosts": 754.47, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14996861/medium/eb0c9870f3f6317e6bfdc4a838e4fd5f.jpg" }, { "id": 15357538, "username": "yakupgurhangurcan", - "totalCosts": 335.32, + "totalCosts": 320.17, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15357538/medium/c1b4eeb66ab399014df370502e9d2c6e.jpeg" }, { @@ -51318,7 +51708,7 @@ { "id": 14996861, "username": "kaanmetu", - "totalCosts": 269.67, + "totalCosts": 257.55, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14996861/medium/eb0c9870f3f6317e6bfdc4a838e4fd5f.jpg" }, { @@ -51790,7 +52180,7 @@ { "id": 14996861, "username": "kaanmetu", - "totalCosts": 281.79, + "totalCosts": 244.42, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14996861/medium/eb0c9870f3f6317e6bfdc4a838e4fd5f.jpg" }, { @@ -51807,13 +52197,13 @@ { "id": 14154609, "username": "mustafaturan", - "totalCosts": 206.04, + "totalCosts": 177.76, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14154609/medium/3855733ddf0efc6bcbdf6889afd13a76.png" }, { "id": 14996861, "username": "kaanmetu", - "totalCosts": 149.48, + "totalCosts": 121.2, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14996861/medium/eb0c9870f3f6317e6bfdc4a838e4fd5f.jpg" }, { @@ -52522,7 +52912,7 @@ { "id": 15082707, "username": "selcuk45", - "totalCosts": 1216.04, + "totalCosts": 1213.01, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15082707/medium/1422c6237f35e4d0e31e08554a233472.jpeg" }, { @@ -52554,18 +52944,18 @@ "totalCosts": 418.14, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14690454/medium/595a121d4a7427f7a21b75b32017c247.jpg" }, - { - "id": 15810797, - "username": "truthdeal", - "totalCosts": 254.52, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15810797/medium/fffa31f58ceab96c6db901b98fabf132.png" - }, { "id": 13429141, "username": "Faedonn", "totalCosts": 245.43, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13429141/medium/47665044a49c8caae72a8e5d6c6c74fc.jpg" }, + { + "id": 15810797, + "username": "truthdeal", + "totalCosts": 226.24, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15810797/medium/fffa31f58ceab96c6db901b98fabf132.png" + }, { "id": 15672817, "username": "thebuzagi", @@ -52653,12 +53043,6 @@ "username": "thebuzagi", "totalCosts": 138.37, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15672817/medium/51945b15a89b4d9de324372227ac36de_default.png" - }, - { - "id": 15966007, - "username": "0xselimc", - "totalCosts": 7.07, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15966007/medium/6008a158d741536a305a81bd295ab407.jpeg" } ] }, @@ -52772,13 +53156,13 @@ { "id": 15963465, "username": "Ozje", - "totalCosts": 590.85, + "totalCosts": 570.65, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15963465/medium/da85affc52fa58f2bf27e2e90cebb31e_default.png" }, { "id": 15963921, "username": "bicebaris", - "totalCosts": 440.36, + "totalCosts": 406.02, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15963921/medium/5ed57dad6d6d747e47d9378a8006ede1.jpg" }, { @@ -53000,13 +53384,13 @@ { "id": 15908487, "username": "insidetrader", - "totalCosts": 1041.31, + "totalCosts": 1019.09, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15908487/medium/2dad4c49ee42d9df9633332d432e708e.jpg" }, { "id": 15963921, "username": "bicebaris", - "totalCosts": 40.4, + "totalCosts": 37.37, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15963921/medium/5ed57dad6d6d747e47d9378a8006ede1.jpg" }, { @@ -53874,7 +54258,7 @@ { "id": 15964741, "username": "0xberil", - "totalCosts": 426.22, + "totalCosts": 386.83, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15964741/medium/f8fb148047395cf62c924755cb300f17_default.png" }, { @@ -54254,7 +54638,7 @@ { "id": 14996861, "username": "kaanmetu", - "totalCosts": 848.4, + "totalCosts": 837.29, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14996861/medium/eb0c9870f3f6317e6bfdc4a838e4fd5f.jpg" }, { @@ -54283,7 +54667,7 @@ { "id": 15963921, "username": "bicebaris", - "totalCosts": 5470.16, + "totalCosts": 5447.94, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15963921/medium/5ed57dad6d6d747e47d9378a8006ede1.jpg" } ] @@ -54323,7 +54707,7 @@ { "id": 14996861, "username": "kaanmetu", - "totalCosts": 1343.3, + "totalCosts": 1328.15, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14996861/medium/eb0c9870f3f6317e6bfdc4a838e4fd5f.jpg" }, { @@ -54548,13 +54932,13 @@ { "id": 14131653, "username": "Berke37", - "totalCosts": 2893.65, + "totalCosts": 2880.52, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14131653/medium/ff295534ec23d3428ba06f99e0fd50bb.jpg" }, { "id": 15963921, "username": "bicebaris", - "totalCosts": 2416.93, + "totalCosts": 2403.8, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15963921/medium/5ed57dad6d6d747e47d9378a8006ede1.jpg" }, { @@ -55044,7 +55428,7 @@ { "id": 15129995, "username": "alinabilyk", - "totalCosts": 151.5, + "totalCosts": 142.41, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15129995/medium/91175a3cc7e81c64ccdb5b22139074e3_default.png" }, { @@ -55154,7 +55538,7 @@ { "id": 15804803, "username": "sun_dariia", - "totalCosts": 1663.47, + "totalCosts": 1635.19, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15804803/medium/e753b43a4cf480cd2a37c5795cdb83ba_default.png" }, { @@ -56058,7 +56442,7 @@ { "id": 15729281, "username": "Junel", - "totalCosts": 625.19, + "totalCosts": 560.55, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15729281/medium/0be4e0167eb236dea935c2ecf60ab99e_default.png" }, { @@ -56345,7 +56729,7 @@ { "id": 14829178, "username": "EffectChen", - "totalCosts": 477.73, + "totalCosts": 468.64, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14829178/medium/39ff70d1cbcdbad8e9056cb4aa4ee789.jpg" }, { @@ -56430,6 +56814,12 @@ "totalCosts": 163.62, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15193608/medium/c3b5342b0fef9f5f51eff5b0c2b93c70.jpg" }, + { + "id": 16105472, + "username": "Mindy00", + "totalCosts": 19.19, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16105472/medium/e3c4ba4f35bd3c3e5bc13053976cd282.png" + }, { "id": 14553216, "username": "rielychen", @@ -56603,12 +56993,6 @@ "username": "yuping", "totalCosts": 328.25, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15193608/medium/c3b5342b0fef9f5f51eff5b0c2b93c70.jpg" - }, - { - "id": 15911295, - "username": "Xin_Cheng", - "totalCosts": 13.13, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15911295/medium/8aae130b64f46cd1ea960d085950a560_default.png" } ] }, @@ -56618,19 +57002,19 @@ { "id": 15193608, "username": "yuping", - "totalCosts": 356.53, + "totalCosts": 339.36, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15193608/medium/c3b5342b0fef9f5f51eff5b0c2b93c70.jpg" }, { "id": 15086195, "username": "saintchen", - "totalCosts": 269.67, + "totalCosts": 256.54, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15086195/medium/cb67cfa9d14a4cb5d9cb8c9ad9fa18b9.jpg" }, { "id": 13830805, "username": "kecrily", - "totalCosts": 131.3, + "totalCosts": 127.26, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13830805/medium/d5b39b24969778b502182557fb61c4eb.jpg" }, { @@ -56753,7 +57137,7 @@ { "id": 15193608, "username": "yuping", - "totalCosts": 884.76, + "totalCosts": 838.3, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15193608/medium/c3b5342b0fef9f5f51eff5b0c2b93c70.jpg" }, { @@ -56929,7 +57313,7 @@ { "id": 15657887, "username": "DreamInMorning", - "totalCosts": 1385.72, + "totalCosts": 1357.44, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15657887/medium/9212535a0a5fb7ec22a9f8a8329dac3b.jpg" }, { @@ -56974,6 +57358,12 @@ "totalCosts": 39.39, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15722739/medium/316f09f87baa8a22fbb7fc449db7ed1e.png" }, + { + "id": 16051140, + "username": "MichaelQubycn", + "totalCosts": 27.27, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16051140/medium/0edba76345410b615bac4fabf336d4ba.jpeg" + }, { "id": 14553216, "username": "rielychen", @@ -57228,6 +57618,12 @@ "totalCosts": 463.59, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15314206/medium/97a1d7142aa4eba6ed8a0212ddada4a8.jpeg" }, + { + "id": 15924353, + "username": "Li_Rui", + "totalCosts": 198.97, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15924353/medium/24be33af9672c1afbe79146c7acda3a0_default.png" + }, { "id": 14792498, "username": "tyevlag", @@ -58149,6 +58545,12 @@ "totalCosts": 206.04, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15425018/medium/a0ec669dae445a589d6b020b2fd856c8.png" }, + { + "id": 16105472, + "username": "Mindy00", + "totalCosts": 140.39, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16105472/medium/e3c4ba4f35bd3c3e5bc13053976cd282.png" + }, { "id": 15680993, "username": "nzinmymind", @@ -58202,6 +58604,12 @@ "totalCosts": 87.87, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15871701/medium/211aaa985795803b88e9fa89069ed517.png" }, + { + "id": 16166796, + "username": "cy185210", + "totalCosts": 50.5, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16166796/medium/fb8eb88bf2533e6b95147d698877a690.png" + }, { "id": 14829178, "username": "EffectChen", @@ -59237,6 +59645,12 @@ "totalCosts": 2298.76, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15558917/medium/3140ea0253adc0e3f3c81b050f3b30b3.png" }, + { + "id": 15924353, + "username": "Li_Rui", + "totalCosts": 668.62, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15924353/medium/24be33af9672c1afbe79146c7acda3a0_default.png" + }, { "id": 15236832, "username": "Andypsl8", @@ -59293,7 +59707,7 @@ { "id": 15101527, "username": "alexanderhawl", - "totalCosts": 163.62, + "totalCosts": 139.38, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15101527/medium/d5363de72b7fd3067a430db7ac9ad8ab.jpeg" }, { @@ -59301,6 +59715,12 @@ "username": "cuijia", "totalCosts": 44.44, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15314206/medium/97a1d7142aa4eba6ed8a0212ddada4a8.jpeg" + }, + { + "id": 15924353, + "username": "Li_Rui", + "totalCosts": 24.24, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15924353/medium/24be33af9672c1afbe79146c7acda3a0_default.png" } ] }, @@ -59746,7 +60166,7 @@ { "id": 15314206, "username": "cuijia", - "totalCosts": 3702.66, + "totalCosts": 3692.56, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15314206/medium/97a1d7142aa4eba6ed8a0212ddada4a8.jpeg" }, { @@ -59772,6 +60192,12 @@ "username": "Meriky", "totalCosts": 25.25, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15531743/medium/06edb2b0a7a9cbb46f2c00669e0103ab.gif" + }, + { + "id": 16166796, + "username": "cy185210", + "totalCosts": 11.11, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16166796/medium/fb8eb88bf2533e6b95147d698877a690.png" } ] }, @@ -59836,12 +60262,6 @@ "totalCosts": 83.83, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14770398/medium/8895f12e399c436af12059556ba1aaf7_default.png" }, - { - "id": 15314206, - "username": "cuijia", - "totalCosts": 24.24, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15314206/medium/97a1d7142aa4eba6ed8a0212ddada4a8.jpeg" - }, { "id": 14958061, "username": "Dearry", @@ -59862,19 +60282,25 @@ { "id": 14770398, "username": "zhangyuenet", - "totalCosts": 164.63, + "totalCosts": 149.48, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14770398/medium/8895f12e399c436af12059556ba1aaf7_default.png" }, + { + "id": 15924353, + "username": "Li_Rui", + "totalCosts": 55.55, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15924353/medium/24be33af9672c1afbe79146c7acda3a0_default.png" + }, { "id": 14958061, "username": "Dearry", - "totalCosts": 97.97, + "totalCosts": 38.38, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14958061/medium/120296ee25b4bfc07225bfbc8a6d5666_default.png" }, { "id": 14792498, "username": "tyevlag", - "totalCosts": 97.97, + "totalCosts": 38.38, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14792498/medium/3d13e013f50df91c50a9d67e9034daf8.png" }, { @@ -60103,7 +60529,7 @@ { "id": 15557599, "username": "PetitLui", - "totalCosts": 194.93, + "totalCosts": 159.58, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15557599/medium/07164e7ca2a48fc9a2bc037fdbf1fd55_default.png" }, { @@ -60144,27 +60570,33 @@ { "id": 15856841, "username": "weiyuzhi2022", - "totalCosts": 2459.35, + "totalCosts": 2422.99, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15856841/medium/604c48d6d4f0f60a4495f8586908076c.png" }, { "id": 15156816, "username": "Fengfeng0157", - "totalCosts": 499.95, + "totalCosts": 460.56, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15156816/medium/8ce4621e9192a27e8a0ec7e37d9e316e_default.png" }, { "id": 15871701, "username": "maxwellcotto", - "totalCosts": 311.08, + "totalCosts": 286.84, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15871701/medium/211aaa985795803b88e9fa89069ed517.png" }, { "id": 15911295, "username": "Xin_Cheng", - "totalCosts": 288.86, + "totalCosts": 264.62, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15911295/medium/8aae130b64f46cd1ea960d085950a560_default.png" }, + { + "id": 16105472, + "username": "Mindy00", + "totalCosts": 70.7, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16105472/medium/e3c4ba4f35bd3c3e5bc13053976cd282.png" + }, { "id": 15914021, "username": "Ddoulia", @@ -61025,7 +61457,7 @@ { "id": 14792498, "username": "tyevlag", - "totalCosts": 929.2, + "totalCosts": 918.09, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14792498/medium/3d13e013f50df91c50a9d67e9034daf8.png" }, { @@ -61049,7 +61481,7 @@ { "id": 14553216, "username": "rielychen", - "totalCosts": 28.28, + "totalCosts": 17.17, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14553216/medium/ff7357a18e524ec40facc964cb2d15bc.jpeg" } ] @@ -61166,19 +61598,19 @@ { "id": 14829178, "username": "EffectChen", - "totalCosts": 936.27, + "totalCosts": 924.15, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14829178/medium/39ff70d1cbcdbad8e9056cb4aa4ee789.jpg" }, { "id": 15197954, "username": "shaokui", - "totalCosts": 503.99, + "totalCosts": 491.87, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15197954/medium/058338ea4a7972aaeded9dd1bf949a9e.jpg" }, { "id": 15357618, "username": "finereganyue", - "totalCosts": 308.05, + "totalCosts": 292.9, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15357618/medium/12f023106f6a24e98bfc6553c07a46f4.jpg" }, { @@ -61248,7 +61680,7 @@ { "id": 14975403, "username": "codeboi", - "totalCosts": 91.91, + "totalCosts": 76.76, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14975403/medium/992d0a7a141c37997bc25297470f0b25_default.png" }, { @@ -61382,7 +61814,7 @@ { "id": 14829178, "username": "EffectChen", - "totalCosts": 248.46, + "totalCosts": 236.34, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14829178/medium/39ff70d1cbcdbad8e9056cb4aa4ee789.jpg" }, { @@ -61396,6 +61828,12 @@ "username": "Xin_Cheng", "totalCosts": 89.89, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15911295/medium/8aae130b64f46cd1ea960d085950a560_default.png" + }, + { + "id": 16158452, + "username": "sang_shi", + "totalCosts": 11.11, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16158452/medium/8544f339158effd95f9bda0987cb93aa_default.png" } ] }, @@ -61708,7 +62146,7 @@ { "id": 15314206, "username": "cuijia", - "totalCosts": 4543.99, + "totalCosts": 4530.86, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15314206/medium/97a1d7142aa4eba6ed8a0212ddada4a8.jpeg" }, { @@ -61794,6 +62232,12 @@ "totalCosts": 16.16, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/13555518/medium/7857fc7cd3690f272e61c6c33185c508.png" }, + { + "id": 16156296, + "username": "ningxxu", + "totalCosts": 16.16, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16156296/medium/086e5585aa0d1a2d037cd72e68e26988_default.png" + }, { "id": 15327162, "username": "ZXC_crowdin", @@ -62073,6 +62517,12 @@ "totalCosts": 40.4, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14822732/medium/5fbcf45bc14f5cbe8d207e8adee7bfc1.jpeg" }, + { + "id": 16105472, + "username": "Mindy00", + "totalCosts": 33.33, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16105472/medium/e3c4ba4f35bd3c3e5bc13053976cd282.png" + }, { "id": 15911295, "username": "Xin_Cheng", @@ -62526,7 +62976,7 @@ { "id": 14792200, "username": "liuxiaotong15", - "totalCosts": 281.79, + "totalCosts": 244.42, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14792200/medium/651095028597144eac73720a0c320b3d.jpeg" }, { @@ -62555,7 +63005,7 @@ { "id": 14690748, "username": "penglaishan.cn", - "totalCosts": 205.03, + "totalCosts": 176.75, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14690748/medium/dd3be098cca6b66915e02147fd6407e7.jpg" }, { @@ -62567,7 +63017,7 @@ { "id": 14553216, "username": "rielychen", - "totalCosts": 51.51, + "totalCosts": 23.23, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14553216/medium/ff7357a18e524ec40facc964cb2d15bc.jpeg" }, { @@ -64085,13 +64535,13 @@ { "id": 15911295, "username": "Xin_Cheng", - "totalCosts": 946.37, + "totalCosts": 926.17, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15911295/medium/8aae130b64f46cd1ea960d085950a560_default.png" }, { "id": 15918181, "username": "QuinnHou", - "totalCosts": 907.99, + "totalCosts": 853.45, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15918181/medium/17e80957f6d7eef4f215c6cc41951dae_default.png" }, { @@ -64112,6 +64562,12 @@ "totalCosts": 67.67, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15904987/medium/e244ed0a7efcd919389d457f8bea4225_default.png" }, + { + "id": 16166796, + "username": "cy185210", + "totalCosts": 54.54, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16166796/medium/fb8eb88bf2533e6b95147d698877a690.png" + }, { "id": 15906651, "username": "ying.ying09", @@ -64272,13 +64728,13 @@ { "id": 14712154, "username": "fivenicerice", - "totalCosts": 733.26, + "totalCosts": 711.04, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14712154/medium/3730e404a7ef0a2e5f76426f84376d53.jpg" }, { "id": 15911295, "username": "Xin_Cheng", - "totalCosts": 409.05, + "totalCosts": 406.02, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15911295/medium/8aae130b64f46cd1ea960d085950a560_default.png" }, { @@ -64713,6 +65169,53 @@ "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15917907/medium/f06e750eace178a6fde1f936a0d717b8_default.png" } ] + }, + { + "fileId": "8035", + "contributors": [ + { + "id": 15984133, + "username": "weiyuabc", + "totalCosts": 641.35, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15984133/medium/2a5267dbac29dc0063600e4c5013a732_default.png" + }, + { + "id": 14829178, + "username": "EffectChen", + "totalCosts": 213.11, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/14829178/medium/39ff70d1cbcdbad8e9056cb4aa4ee789.jpg" + }, + { + "id": 15906651, + "username": "ying.ying09", + "totalCosts": 166.65, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15906651/medium/7fbb552cabdbfcd79477e56fc90a2670.png" + }, + { + "id": 16040800, + "username": "qngyn", + "totalCosts": 86.86, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16040800/medium/3efd8f03d477d6fff8e79522ed5a9770_default.png" + }, + { + "id": 15911391, + "username": "Aleczzz", + "totalCosts": 78.78, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15911391/medium/b8497df2da3374cd5f0cb8183169e4db_default.png" + }, + { + "id": 15156816, + "username": "Fengfeng0157", + "totalCosts": 50.5, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15156816/medium/8ce4621e9192a27e8a0ec7e37d9e316e_default.png" + }, + { + "id": 15386722, + "username": "Fred-Porlock", + "totalCosts": 3.03, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15386722/medium/d45a14868eeb521fcff121613eaeee3c.png" + } + ] } ] }, @@ -64769,6 +65272,12 @@ "totalCosts": 2151.3, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15201846/medium/3d9d29022427094faeb700ddbd5c078a.jpeg" }, + { + "id": 15783149, + "username": "xy710.eth", + "totalCosts": 56.56, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15783149/medium/f395b4c1a1b358bcc9e01ef741887e40.jpeg" + }, { "id": 15399006, "username": "Xeift", @@ -64806,7 +65315,7 @@ { "id": 15783149, "username": "xy710.eth", - "totalCosts": 827.19, + "totalCosts": 826.18, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15783149/medium/f395b4c1a1b358bcc9e01ef741887e40.jpeg" }, { @@ -64867,6 +65376,12 @@ { "fileId": "5565", "contributors": [ + { + "id": 15783149, + "username": "xy710.eth", + "totalCosts": 213.11, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15783149/medium/f395b4c1a1b358bcc9e01ef741887e40.jpeg" + }, { "id": 15055487, "username": "xaviershen1", @@ -64876,7 +65391,7 @@ { "id": 15399006, "username": "Xeift", - "totalCosts": 77.77, + "totalCosts": 134.33, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15399006/medium/4b4638642287027a89529ecb11074e44.png" }, { @@ -64987,7 +65502,7 @@ { "id": 15399006, "username": "Xeift", - "totalCosts": 202, + "totalCosts": 229.27, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15399006/medium/4b4638642287027a89529ecb11074e44.png" }, { @@ -65215,7 +65730,7 @@ { "id": 15399006, "username": "Xeift", - "totalCosts": 124.23, + "totalCosts": 126.25, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15399006/medium/4b4638642287027a89529ecb11074e44.png" } ] @@ -65388,6 +65903,12 @@ "username": "hmsc", "totalCosts": 155.54, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15532451/medium/1558c22671c8674e0f77412238047eb8_default.png" + }, + { + "id": 15783149, + "username": "xy710.eth", + "totalCosts": 29.29, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15783149/medium/f395b4c1a1b358bcc9e01ef741887e40.jpeg" } ] }, @@ -65417,6 +65938,12 @@ "totalCosts": 1983.64, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15399006/medium/4b4638642287027a89529ecb11074e44.png" }, + { + "id": 15783149, + "username": "xy710.eth", + "totalCosts": 45.45, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15783149/medium/f395b4c1a1b358bcc9e01ef741887e40.jpeg" + }, { "id": 14829178, "username": "EffectChen", @@ -65457,6 +65984,12 @@ "username": "Xeift", "totalCosts": 24.24, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15399006/medium/4b4638642287027a89529ecb11074e44.png" + }, + { + "id": 15783149, + "username": "xy710.eth", + "totalCosts": 7.07, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15783149/medium/f395b4c1a1b358bcc9e01ef741887e40.jpeg" } ] }, @@ -65634,7 +66167,7 @@ { "id": 15399006, "username": "Xeift", - "totalCosts": 1994.75, + "totalCosts": 1991.72, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15399006/medium/4b4638642287027a89529ecb11074e44.png" } ] @@ -65645,7 +66178,7 @@ { "id": 15222542, "username": "Jcys", - "totalCosts": 528.23, + "totalCosts": 519.14, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15222542/medium/c4b538278714558f9a5430c0cef783de.JPG" }, { @@ -65706,18 +66239,18 @@ { "fileId": "6183", "contributors": [ + { + "id": 15399006, + "username": "Xeift", + "totalCosts": 372.69, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15399006/medium/4b4638642287027a89529ecb11074e44.png" + }, { "id": 16116538, "username": "Cherryscgg", "totalCosts": 173.72, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16116538/medium/3cc485b5bf32f7179536a7084af47db2_default.png" }, - { - "id": 15399006, - "username": "Xeift", - "totalCosts": 123.22, - "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15399006/medium/4b4638642287027a89529ecb11074e44.png" - }, { "id": 15668579, "username": "apullo777", @@ -65827,7 +66360,7 @@ { "id": 15399006, "username": "Xeift", - "totalCosts": 6.06, + "totalCosts": 13.13, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15399006/medium/4b4638642287027a89529ecb11074e44.png" } ] @@ -65912,7 +66445,7 @@ { "id": 15399006, "username": "Xeift", - "totalCosts": 399.96, + "totalCosts": 425.21, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15399006/medium/4b4638642287027a89529ecb11074e44.png" }, { @@ -65946,7 +66479,7 @@ { "id": 15399006, "username": "Xeift", - "totalCosts": 1510.96, + "totalCosts": 1546.31, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15399006/medium/4b4638642287027a89529ecb11074e44.png" }, { @@ -66080,13 +66613,13 @@ { "id": 15399006, "username": "Xeift", - "totalCosts": 830.22, + "totalCosts": 873.65, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15399006/medium/4b4638642287027a89529ecb11074e44.png" }, { "id": 15957819, "username": "ming30650", - "totalCosts": 282.8, + "totalCosts": 257.55, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15957819/medium/2baae61ca579f0a04efd89cd210f2c6a_default.png" } ] @@ -66240,7 +66773,7 @@ { "id": 15399006, "username": "Xeift", - "totalCosts": 2021.01, + "totalCosts": 2041.21, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15399006/medium/4b4638642287027a89529ecb11074e44.png" } ] @@ -66315,7 +66848,7 @@ { "id": 15399006, "username": "Xeift", - "totalCosts": 40.4, + "totalCosts": 48.48, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15399006/medium/4b4638642287027a89529ecb11074e44.png" }, { @@ -66546,7 +67079,7 @@ { "id": 15837955, "username": "Magdalena_", - "totalCosts": 1670.54, + "totalCosts": 1642.26, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15837955/medium/8c0a833a266fd86e17f6e6ce9592278d.jpg" } ] @@ -67009,7 +67542,7 @@ { "id": 15967185, "username": "waseemnaik", - "totalCosts": 545.4, + "totalCosts": 517.12, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15967185/medium/8544c16b7d24e687e63334d42c70d6dd.png" } ] @@ -67109,7 +67642,7 @@ { "id": 15962007, "username": "omkarkamale001", - "totalCosts": 1670.54, + "totalCosts": 1642.26, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15962007/medium/9019d6a347ebffa6f6464e00132355aa.jpeg" } ] @@ -67333,6 +67866,12 @@ "username": "Bohjypellar", "totalCosts": 111.1, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15921661/medium/46083a608a938f869b4855d0113b3930.jpg" + }, + { + "id": 16111424, + "username": "BETTER14", + "totalCosts": 6.06, + "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/16111424/medium/40280822e61e92af7ca0f36e0cae45aa.jpeg" } ] } @@ -67433,7 +67972,7 @@ { "id": 15885247, "username": "ct1aic.eth", - "totalCosts": 1670.54, + "totalCosts": 1642.26, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15885247/medium/cf22113f9226047f8f9868e4774bc4c3.png" } ] @@ -67544,7 +68083,7 @@ { "id": 15967793, "username": "TanjaPale", - "totalCosts": 1670.54, + "totalCosts": 1642.26, "avatarUrl": "https://crowdin-static.downloads.crowdin.com/avatar/15967793/medium/7a23945a1b7ec0fd21d81d4820ba115f_default.png" } ] diff --git a/src/data/developer-docs-links.yaml b/src/data/developer-docs-links.yaml index aea656f0866..3e78cfd945c 100644 --- a/src/data/developer-docs-links.yaml +++ b/src/data/developer-docs-links.yaml @@ -4,253 +4,253 @@ # To display item as a collapsable directory vs. a link # use the `path` property (of the directory) vs. the `to` property - id: docs-nav-readme - to: /developers/docs/ + to: /developers/docs - id: docs-nav-foundational-topics path: /developers/docs/ items: - id: docs-nav-intro-to-ethereum - to: /developers/docs/intro-to-ethereum/ + to: /developers/docs/intro-to-ethereum description: docs-nav-intro-to-ethereum-description - id: docs-nav-intro-to-ether - to: /developers/docs/intro-to-ether/ + to: /developers/docs/intro-to-ether description: docs-nav-intro-to-ether-description - id: docs-nav-intro-to-dapps - to: /developers/docs/dapps/ + to: /developers/docs/dapps description: docs-nav-intro-to-dapps-description - id: docs-nav-web2-vs-web3 - to: /developers/docs/web2-vs-web3/ + to: /developers/docs/web2-vs-web3 description: docs-nav-web2-vs-web3-description - id: docs-nav-accounts - to: /developers/docs/accounts/ + to: /developers/docs/accounts description: docs-nav-accounts-description - id: docs-nav-transactions - to: /developers/docs/transactions/ + to: /developers/docs/transactions description: docs-nav-transactions-description - id: docs-nav-blocks - to: /developers/docs/blocks/ + to: /developers/docs/blocks description: docs-nav-blocks-description - id: docs-nav-evm - to: /developers/docs/evm/ + to: /developers/docs/evm description: docs-nav-evm-description items: - id: docs-nav-opcodes to: /developers/docs/evm/opcodes - id: docs-nav-gas - to: /developers/docs/gas/ + to: /developers/docs/gas description: docs-nav-gas-description - id: docs-nav-nodes-and-clients - to: /developers/docs/nodes-and-clients/ + to: /developers/docs/nodes-and-clients description: docs-nav-nodes-and-clients-description items: - id: docs-nav-run-a-node - to: /developers/docs/nodes-and-clients/run-a-node/ + to: /developers/docs/nodes-and-clients/run-a-node - id: docs-nav-client-diversity - to: /developers/docs/nodes-and-clients/client-diversity/ + to: /developers/docs/nodes-and-clients/client-diversity - id: docs-nav-nodes-as-a-service - to: /developers/docs/nodes-and-clients/nodes-as-a-service/ + to: /developers/docs/nodes-and-clients/nodes-as-a-service - id: docs-nav-node-architecture - to: /developers/docs/nodes-and-clients/node-architecture/ + to: /developers/docs/nodes-and-clients/node-architecture - id: docs-nav-light-clients to: /developers/docs/nodes-and-clients/light-clients - id: docs-nav-archive-nodes - to: /developers/docs/nodes-and-clients/archive-nodes/ + to: /developers/docs/nodes-and-clients/archive-nodes - id: docs-nav-bootnodes to: /developers/docs/nodes-and-clients/bootnodes - id: docs-nav-networks - to: /developers/docs/networks/ + to: /developers/docs/networks description: docs-nav-networks-description - id: docs-nav-consensus-mechanisms - to: /developers/docs/consensus-mechanisms/ + to: /developers/docs/consensus-mechanisms description: docs-nav-consensus-mechanisms-description items: - id: docs-nav-proof-of-work - to: /developers/docs/consensus-mechanisms/pow/ + to: /developers/docs/consensus-mechanisms/pow items: - id: docs-nav-mining - to: /developers/docs/consensus-mechanisms/pow/mining/ + to: /developers/docs/consensus-mechanisms/pow/mining items: - id: docs-nav-mining-algorithms - to: /developers/docs/consensus-mechanisms/pow/mining-algorithms/ + to: /developers/docs/consensus-mechanisms/pow/mining-algorithms items: - id: docs-nav-dagger-hashimoto to: /developers/docs/consensus-mechanisms/pow/mining-algorithms/dagger-hashimoto - id: docs-nav-ethash to: /developers/docs/consensus-mechanisms/pow/mining-algorithms/ethash - id: docs-nav-proof-of-stake - to: /developers/docs/consensus-mechanisms/pos/ + to: /developers/docs/consensus-mechanisms/pos items: - id: docs-nav-gasper - to: /developers/docs/consensus-mechanisms/pos/gasper/ + to: /developers/docs/consensus-mechanisms/pos/gasper - id: docs-nav-weak-subjectivity - to: /developers/docs/consensus-mechanisms/pos/weak-subjectivity/ + to: /developers/docs/consensus-mechanisms/pos/weak-subjectivity - id: docs-nav-attestations to: /developers/docs/consensus-mechanisms/pos/attestations - id: docs-nav-rewards-and-penalties - to: /developers/docs/consensus-mechanisms/pos/rewards-and-penalties/ + to: /developers/docs/consensus-mechanisms/pos/rewards-and-penalties - id: docs-nav-attack-and-defense - to: /developers/docs/consensus-mechanisms/pos/attack-and-defense/ + to: /developers/docs/consensus-mechanisms/pos/attack-and-defense - id: docs-nav-keys - to: /developers/docs/consensus-mechanisms/pos/keys/ + to: /developers/docs/consensus-mechanisms/pos/keys - id: docs-nav-pos-vs-pow to: /developers/docs/consensus-mechanisms/pos/pos-vs-pow - id: docs-nav-block-proposal - to: /developers/docs/consensus-mechanisms/pos/block-proposal/ + to: /developers/docs/consensus-mechanisms/pos/block-proposal - id: docs-nav-pos-faqs to: /developers/docs/consensus-mechanisms/pos/faqs - id: docs-nav-ethereum-stack path: /developers/docs/ items: - id: docs-nav-intro-to-the-stack - to: /developers/docs/ethereum-stack/ + to: /developers/docs/ethereum-stack description: docs-nav-intro-to-the-stack-description - id: docs-nav-smart-contracts - to: /developers/docs/smart-contracts/ + to: /developers/docs/smart-contracts description: docs-nav-smart-contracts-description items: - id: docs-nav-smart-contract-languages - to: /developers/docs/smart-contracts/languages/ + to: /developers/docs/smart-contracts/languages - id: docs-nav-smart-contract-anatomy - to: /developers/docs/smart-contracts/anatomy/ + to: /developers/docs/smart-contracts/anatomy - id: docs-nav-smart-contracts-libraries - to: /developers/docs/smart-contracts/libraries/ + to: /developers/docs/smart-contracts/libraries - id: docs-nav-testing-smart-contracts - to: /developers/docs/smart-contracts/testing/ + to: /developers/docs/smart-contracts/testing - id: docs-nav-compiling-smart-contracts - to: /developers/docs/smart-contracts/compiling/ + to: /developers/docs/smart-contracts/compiling - id: docs-nav-deploying-smart-contracts - to: /developers/docs/smart-contracts/deploying/ + to: /developers/docs/smart-contracts/deploying - id: docs-nav-verifying-smart-contracts - to: /developers/docs/smart-contracts/verifying/ + to: /developers/docs/smart-contracts/verifying - id: docs-nav-upgrading-smart-contracts - to: /developers/docs/smart-contracts/upgrading/ + to: /developers/docs/smart-contracts/upgrading - id: docs-nav-smart-contract-security - to: /developers/docs/smart-contracts/security/ + to: /developers/docs/smart-contracts/security description: docs-nav-smart-contract-security-description - id: docs-nav-smart-contract-formal-verification - to: /developers/docs/smart-contracts/formal-verification/ + to: /developers/docs/smart-contracts/formal-verification description: docs-nav-smart-contract-formal-verification-description - id: docs-nav-composability - to: /developers/docs/smart-contracts/composability/ + to: /developers/docs/smart-contracts/composability - id: docs-nav-development-networks - to: /developers/docs/development-networks/ + to: /developers/docs/development-networks description: docs-nav-development-networks-description - id: docs-nav-development-frameworks - to: /developers/docs/frameworks/ + to: /developers/docs/frameworks description: docs-nav-development-frameworks-description - id: docs-nav-ethereum-client-apis description: docs-nav-ethereum-client-apis-description items: - id: docs-nav-java-script-apis - to: /developers/docs/apis/javascript/ + to: /developers/docs/apis/javascript - id: docs-nav-backend-apis - to: /developers/docs/apis/backend/ + to: /developers/docs/apis/backend - id: docs-nav-json-rpc - to: /developers/docs/apis/json-rpc/ + to: /developers/docs/apis/json-rpc - id: docs-nav-data-and-analytics - to: /developers/docs/data-and-analytics/ + to: /developers/docs/data-and-analytics description: docs-nav-data-and-analytics-description items: - id: docs-nav-block-explorers - to: /developers/docs/data-and-analytics/block-explorers/ + to: /developers/docs/data-and-analytics/block-explorers - id: docs-nav-storage - to: /developers/docs/storage/ + to: /developers/docs/storage description: docs-nav-storage-description - id: docs-nav-integrated-development-environments-ides - to: /developers/docs/ides/ + to: /developers/docs/ides description: docs-nav-integrated-development-environments-ides-description - id: docs-nav-programming-languages - to: /developers/docs/programming-languages/ + to: /developers/docs/programming-languages description: docs-nav-programming-languages-description items: - id: docs-nav-dart - to: /developers/docs/programming-languages/dart/ + to: /developers/docs/programming-languages/dart - id: docs-nav-delphi - to: /developers/docs/programming-languages/delphi/ + to: /developers/docs/programming-languages/delphi - id: docs-nav-dot-net - to: /developers/docs/programming-languages/dot-net/ + to: /developers/docs/programming-languages/dot-net - id: docs-nav-golang - to: /developers/docs/programming-languages/golang/ + to: /developers/docs/programming-languages/golang - id: docs-nav-java - to: /developers/docs/programming-languages/java/ + to: /developers/docs/programming-languages/java - id: docs-nav-javascript - to: /developers/docs/programming-languages/javascript/ + to: /developers/docs/programming-languages/javascript - id: docs-nav-python - to: /developers/docs/programming-languages/python/ + to: /developers/docs/programming-languages/python - id: docs-nav-ruby - to: /developers/docs/programming-languages/ruby/ + to: /developers/docs/programming-languages/ruby - id: docs-nav-rust - to: /developers/docs/programming-languages/rust/ + to: /developers/docs/programming-languages/rust - id: docs-nav-advanced path: /developers/docs/ items: - id: docs-nav-bridges - to: /developers/docs/bridges/ + to: /developers/docs/bridges description: docs-nav-bridges-description - id: docs-nav-standards - to: /developers/docs/standards/ + to: /developers/docs/standards description: docs-nav-standards-description items: - id: docs-nav-token-standards - to: /developers/docs/standards/tokens/ + to: /developers/docs/standards/tokens items: - id: docs-nav-erc-20 - to: /developers/docs/standards/tokens/erc-20/ + to: /developers/docs/standards/tokens/erc-20 - id: docs-nav-erc-721 - to: /developers/docs/standards/tokens/erc-721/ + to: /developers/docs/standards/tokens/erc-721 - id: docs-nav-erc-777 - to: /developers/docs/standards/tokens/erc-777/ + to: /developers/docs/standards/tokens/erc-777 - id: docs-nav-erc-1155 - to: /developers/docs/standards/tokens/erc-1155/ + to: /developers/docs/standards/tokens/erc-1155 - id: docs-nav-erc-4626 - to: /developers/docs/standards/tokens/erc-4626/ + to: /developers/docs/standards/tokens/erc-4626 - id: docs-nav-mev - to: /developers/docs/mev/ + to: /developers/docs/mev description: docs-nav-mev-description - id: docs-nav-oracles - to: /developers/docs/oracles/ + to: /developers/docs/oracles description: docs-nav-oracles-description - id: docs-nav-scaling - to: /developers/docs/scaling/ + to: /developers/docs/scaling description: docs-nav-scaling-description items: - id: docs-nav-scaling-optimistic-rollups - to: /developers/docs/scaling/optimistic-rollups/ + to: /developers/docs/scaling/optimistic-rollups - id: docs-nav-scaling-zk-rollups to: /developers/docs/scaling/zk-rollups - id: docs-nav-scaling-channels - to: /developers/docs/scaling/state-channels/ + to: /developers/docs/scaling/state-channels - id: docs-nav-scaling-sidechains - to: /developers/docs/scaling/sidechains/ + to: /developers/docs/scaling/sidechains - id: docs-nav-scaling-plasma - to: /developers/docs/scaling/plasma/ + to: /developers/docs/scaling/plasma - id: docs-nav-scaling-validium - to: /developers/docs/scaling/validium/ + to: /developers/docs/scaling/validium - id: docs-nav-data-availability - to: /developers/docs/data-availability/ + to: /developers/docs/data-availability description: docs-nav-data-availability-description - id: docs-nav-networking-layer - to: /developers/docs/networking-layer/ + to: /developers/docs/networking-layer description: docs-nav-networking-layer-description items: - id: docs-nav-networking-layer-network-addresses - to: /developers/docs/networking-layer/network-addresses/ + to: /developers/docs/networking-layer/network-addresses - id: docs-nav-networking-layer-portal-network - to: /developers/docs/networking-layer/portal-network/ + to: /developers/docs/networking-layer/portal-network - id: docs-nav-data-structures-and-encoding - to: /developers/docs/data-structures-and-encoding/ + to: /developers/docs/data-structures-and-encoding description: docs-nav-data-structures-and-encoding-description items: - id: docs-nav-data-structures-and-encoding-patricia-merkle-trie - to: /developers/docs/data-structures-and-encoding/patricia-merkle-trie/ + to: /developers/docs/data-structures-and-encoding/patricia-merkle-trie - id: docs-nav-data-structures-and-encoding-rlp - to: /developers/docs/data-structures-and-encoding/rlp/ + to: /developers/docs/data-structures-and-encoding/rlp - id: docs-nav-data-structures-and-encoding-ssz - to: /developers/docs/data-structures-and-encoding/ssz/ + to: /developers/docs/data-structures-and-encoding/ssz - id: docs-nav-data-structures-and-encoding-web3-secret-storage - to: /developers/docs/data-structures-and-encoding/web3-secret-storage/ + to: /developers/docs/data-structures-and-encoding/web3-secret-storage - id: docs-nav-design-fundamentals path: /developers/docs/ items: - id: docs-nav-design-and-ux - to: /developers/docs/design-and-ux/ + to: /developers/docs/design-and-ux description: docs-nav-design-and-ux-description diff --git a/src/data/exchanges-by-country.csv b/src/data/exchanges-by-country.csv deleted file mode 100644 index 258b4c8f090..00000000000 --- a/src/data/exchanges-by-country.csv +++ /dev/null @@ -1,240 +0,0 @@ -country,coinmama,bittrex,simplex,wyre,moonpay,coinbase,kraken,gemini,binance,binanceus,bitbuy,rain,cryptocom,itezcom,coinspot,bitvavo,mtpelerin,wazirx,bitflyer,easycrypto,okx,kucoin,huobiglobal,gateio,bitfinex,bybit,bitkub,bitso,shakepay,korbit -Afghanistan,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Albania,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Algeria,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -American Samoa (USA),FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Andorra,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Angola,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Anguilla (UK),TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Antigua and Barbuda,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Argentina,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE -Armenia,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Aruba (Netherlands),TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Australia,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Austria,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Azerbaijan,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Bahamas,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Bahrain,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Bangladesh,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Barbados,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Belarus,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Belgium,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Belize,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Benin,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Bermuda (UK),TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Bhutan,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Bolivia,TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Bonaire (Netherlands),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Bosnia and Herzegovina,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Botswana,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Brazil,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE -British Virgin Islands (UK),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Brunei,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Bulgaria,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Burkina Faso,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Burundi,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Cambodia,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Cameroon,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Canada,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE -Cape Verde,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Cayman Islands (UK),TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Central African Republic (CAR),TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Chad,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Chile,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -China,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE -Clipperton Island (France),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Colombia,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE -Comoros,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Congo, Democratic Republic of the,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Congo, Republic of the,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Cook Islands (New Zealand),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Costa Rica,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Cote d'Ivoire,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Crimea,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE -Croatia,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Cuba,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE -Curacao (Netherlands),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Cyprus,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Czech republic,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Denmark,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Djibouti,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Dominica,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Dominican Republic,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Ecuador,TRUE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Egypt,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -El Salvador,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Equatorial Guinea,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Eritrea,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Estonia,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Eswatini (formerly Swaziland),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Ethiopia,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Falkland Islands (UK),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Fiji,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Finland,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -France,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -French Guiana (France),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -French Polynesia (France),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Gabon,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Gambia,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Georgia,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Germany,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Ghana,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Gibraltar,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Greece,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Greenland (Denmark),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Grenada,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Guadeloupe (France),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Guam (USA),FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Guatemala,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Guernsey,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Guinea,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Guinea-Bissau,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Guyana,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Haiti,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Honduras,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Hong Kong,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Hungary,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Iceland,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -India,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Indonesia,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Iran,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE -Iraq,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Ireland,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Isle of Man,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Israel,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Italy,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Jamaica,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Japan,TRUE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Jersey,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Jordan,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Kazakhstan,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Kenya,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Kiribati,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Kosovo,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Kuwait,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Kyrgyzstan,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Laos,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Latvia,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Lebanon,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Lesotho,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Liberia,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Libya,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Liechtenstein,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Lithuania,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Luxembourg,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Madagascar,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Malawi,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Malaysia,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Maldives,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Mali,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Malta,TRUE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Marshall Islands,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Martinique (France),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Mauritania,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Mauritius,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Mexico,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE -Micronesia,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Moldova,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Monaco,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Mongolia,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Montenegro,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Montserrat (UK),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Morocco,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Mozambique,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Myanmar (formerly Burma),TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Namibia,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Nauru,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Navassa Island (USA),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Nepal,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Netherlands,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -New Caledonia (France),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -New Zealand,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Nicaragua,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Niger,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Nigeria,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Niue (New Zealand),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Norfolk Island (Australia),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -North Korea,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE -North Macedonia (formerly Macedonia),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Northern Mariana Islands (USA),FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Norway,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Oman,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Pakistan,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Palau,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Palestine,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Panama,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Papua New Guinea,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Paraguay,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Peru,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Philippines,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Pitcairn Islands (UK),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Poland,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Portugal,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Puerto Rico (USA),FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Qatar,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Romania,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Russia,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Rwanda,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Saba (Netherlands),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Saint Barthelemy (France),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Saint Kitts and Nevis,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Saint Lucia,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Saint Martin (France),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Saint Pierre and Miquelon (France),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Saint Vincent and the Grenadines,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Samoa,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -San Marino,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Sao Tome and Principe,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Saudi Arabia,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Senegal,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Serbia,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Seychelles,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Sierra Leone,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Singapore,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE -Sint Eustatius (Netherlands),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Sint Maarten (Netherlands),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Slovakia,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Slovenia,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Solomon Islands,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Somalia,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -South Africa,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -South Georgia and the South Sandwich Islands (UK),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -South Korea,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE -South Sudan,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Spain,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Sri Lanka,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Sudan,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE -Suriname,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Sweden,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Switzerland,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Syria,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE -Taiwan,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Tajikistan,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Tanzania,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Thailand,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE -Timor-Leste,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Togo,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Tokelau (New Zealand),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Tonga,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Trinidad and Tobago,TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Tunisia,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Turkey,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Turkmenistan,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Turks and Caicos Islands (UK),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Tuvalu,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Uganda,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Ukraine,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -United Arab Emirates (UAE),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -United Kingdom (UK),TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -United States of America (USA),TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE -Uruguay,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -US Virgin Islands (USA),FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Uzbekistan,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Vanuatu,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Venezuela,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Vietnam,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Wake Island (USA),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Wallis and Futuna (France),TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE -Yemen,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Zambia,TRUE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE -Zimbabwe,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE \ No newline at end of file diff --git a/src/data/exchangesByCountry.ts b/src/data/exchangesByCountry.ts new file mode 100644 index 00000000000..c8c269c4200 --- /dev/null +++ b/src/data/exchangesByCountry.ts @@ -0,0 +1,3657 @@ +// TODO: Set up for i18n support; currently all in English +const exchangesByCountry = { + Afghanistan: [ + "coinmama", + "bittrex", + "simplex", + "binance", + "wazirx", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Albania: [ + "coinmama", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Algeria: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "kraken", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "American Samoa (USA)": [ + "simplex", + "kraken", + "okx", + "kucoin", + "huobiglobal", + "bitfinex", + "bybit", + ], + Andorra: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Angola: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "itezcom", + "mtpelerin", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Anguilla (UK)": [ + "coinmama", + "simplex", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "gateio", + "bybit", + ], + "Antigua and Barbuda": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Argentina: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "binance", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + "bitso", + ], + Armenia: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Aruba (Netherlands)": [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "gateio", + "bybit", + ], + Australia: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "kraken", + "gemini", + "binance", + "cryptocom", + "itezcom", + "coinspot", + "mtpelerin", + "wazirx", + "easycrypto", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Austria: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "kraken", + "gemini", + "cryptocom", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Azerbaijan: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Bahamas: [ + "coinmama", + "coinbase", + "kraken", + "gemini", + "cryptocom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Bahrain: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "rain", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Bangladesh: [ + "coinmama", + "simplex", + "kraken", + "binance", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "bybit", + ], + Barbados: [ + "coinmama", + "coinbase", + "kraken", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Belarus: [ + "coinmama", + "bittrex", + "simplex", + "wyre", + "kraken", + "itezcom", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Belgium: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "cryptocom", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Belize: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Benin: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Bermuda (UK)": [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "gemini", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "gateio", + "bybit", + ], + Bhutan: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "gemini", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Bolivia: [ + "coinmama", + "simplex", + "wyre", + "kraken", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "bybit", + ], + "Bonaire (Netherlands)": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "bitflyer", + "kucoin", + "huobiglobal", + "gateio", + "bybit", + ], + "Bosnia and Herzegovina": [ + "coinmama", + "bittrex", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Botswana: [ + "coinmama", + "bittrex", + "coinbase", + "kraken", + "mtpelerin", + "wazirx", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Brazil: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "binance", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + "bitso", + ], + "British Virgin Islands (UK)": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "gemini", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Brunei: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Bulgaria: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "gemini", + "binance", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Burkina Faso": [ + "coinmama", + "simplex", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Burundi: [ + "coinmama", + "bittrex", + "simplex", + "moonpay", + "kraken", + "itezcom", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Cambodia: [ + "coinmama", + "bittrex", + "kraken", + "binance", + "mtpelerin", + "wazirx", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Cameroon: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Canada: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "bitbuy", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "bitfinex", + "bybit", + "shakepay", + ], + "Cape Verde": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Cayman Islands (UK)": [ + "coinmama", + "simplex", + "kraken", + "gemini", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bybit", + ], + "Central African Republic (CAR)": [ + "coinmama", + "bittrex", + "simplex", + "moonpay", + "itezcom", + "wazirx", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Chad: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Chile: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "binance", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + China: [ + "coinmama", + "simplex", + "kraken", + "wazirx", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + ], + "Clipperton Island (France)": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bybit", + ], + Colombia: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "binance", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + "bitso", + ], + Comoros: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Congo: [ + "coinmama", + "simplex", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Cook Islands (New Zealand)": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "easycrypto", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Costa Rica": [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Cote d'Ivoire": [ + "coinmama", + "bittrex", + "simplex", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Crimea: [ + "bittrex", + "simplex", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "bitfinex", + ], + Croatia: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "gemini", + "cryptocom", + "itezcom", + "bitvavo", + "mtpelerin", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Cuba: ["bittrex", "simplex", "mtpelerin", "wazirx", "bitfinex"], + "Curacao (Netherlands)": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bybit", + ], + Cyprus: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "cryptocom", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Czech republic": [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "cryptocom", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Denmark: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "cryptocom", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Djibouti: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Dominica: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Dominican Republic": [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Ecuador: [ + "coinmama", + "simplex", + "coinbase", + "kraken", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "bybit", + ], + Egypt: [ + "coinmama", + "bittrex", + "simplex", + "moonpay", + "kraken", + "gemini", + "binance", + "cryptocom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "El Salvador": [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "gemini", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Equatorial Guinea": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Eritrea: [ + "coinmama", + "bittrex", + "simplex", + "moonpay", + "itezcom", + "mtpelerin", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Estonia: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "cryptocom", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Eswatini (formerly Swaziland)": [ + "coinmama", + "simplex", + "moonpay", + "itezcom", + "mtpelerin", + "wazirx", + "kucoin", + "huobiglobal", + "gateio", + "bybit", + ], + Ethiopia: [ + "coinmama", + "bittrex", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Falkland Islands (UK)": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "kucoin", + "huobiglobal", + "gateio", + "bybit", + ], + Fiji: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Finland: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "cryptocom", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + France: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "binance", + "cryptocom", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "French Guiana (France)": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "kucoin", + "huobiglobal", + "gateio", + "bybit", + ], + "French Polynesia (France)": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "bitflyer", + "kucoin", + "huobiglobal", + "gateio", + "bybit", + ], + Gabon: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Gambia: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Georgia: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Germany: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "cryptocom", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Ghana: [ + "coinmama", + "coinbase", + "kraken", + "mtpelerin", + "wazirx", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Gibraltar: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "gemini", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Greece: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "binance", + "cryptocom", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Greenland (Denmark)": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bybit", + ], + Grenada: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Guadeloupe (France)": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "kucoin", + "huobiglobal", + "gateio", + "bybit", + ], + "Guam (USA)": ["simplex", "kraken", "kucoin", "huobiglobal", "bybit"], + Guatemala: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Guernsey: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "gemini", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Guinea: [ + "coinmama", + "bittrex", + "simplex", + "moonpay", + "itezcom", + "wazirx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Guinea-Bissau": [ + "coinmama", + "bittrex", + "simplex", + "moonpay", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Guyana: [ + "coinmama", + "bittrex", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "gateio", + "bitfinex", + "bybit", + ], + Haiti: [ + "coinmama", + "simplex", + "itezcom", + "mtpelerin", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Honduras: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Hong Kong": [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Hungary: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "gemini", + "binance", + "cryptocom", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Iceland: [ + "coinmama", + "wyre", + "coinbase", + "kraken", + "gemini", + "cryptocom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + India: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "binance", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Indonesia: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "binance", + "cryptocom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Iran: ["bittrex", "itezcom", "okx", "huobiglobal", "bitfinex"], + Iraq: [ + "coinmama", + "bittrex", + "simplex", + "kraken", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Ireland: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "cryptocom", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Isle of Man": [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Israel: [ + "simplex", + "wyre", + "moonpay", + "kraken", + "gemini", + "binance", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Italy: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "binance", + "cryptocom", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Jamaica: [ + "coinmama", + "coinbase", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Japan: [ + "coinmama", + "simplex", + "wyre", + "coinbase", + "binance", + "cryptocom", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "gateio", + "bitfinex", + "bybit", + ], + Jersey: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "gemini", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Jordan: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Kazakhstan: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "binance", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Kenya: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Kiribati: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Kosovo: [ + "coinmama", + "simplex", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Kuwait: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "rain", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Kyrgyzstan: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "mtpelerin", + "wazirx", + "okx", + "huobiglobal", + "bybit", + ], + Laos: [ + "coinmama", + "bittrex", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Latvia: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "binance", + "cryptocom", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Lebanon: [ + "bittrex", + "simplex", + "moonpay", + "kraken", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Lesotho: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Liberia: [ + "coinmama", + "simplex", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Libya: [ + "coinmama", + "bittrex", + "simplex", + "moonpay", + "kraken", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Liechtenstein: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "gemini", + "cryptocom", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Lithuania: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "cryptocom", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Luxembourg: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "cryptocom", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Madagascar: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Malawi: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Malaysia: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "kraken", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Maldives: [ + "coinmama", + "bittrex", + "simplex", + "moonpay", + "coinbase", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Mali: [ + "coinmama", + "bittrex", + "simplex", + "moonpay", + "kraken", + "itezcom", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Malta: [ + "coinmama", + "simplex", + "coinbase", + "kraken", + "cryptocom", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Marshall Islands": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Martinique (France)": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bybit", + ], + Mauritania: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Mauritius: [ + "coinmama", + "coinbase", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Mexico: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "binance", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + "bitso", + ], + Micronesia: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Moldova: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Monaco: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Mongolia: [ + "coinmama", + "coinbase", + "kraken", + "binance", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Montenegro: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "itezcom", + "mtpelerin", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Montserrat (UK)": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bybit", + ], + Morocco: [ + "coinmama", + "simplex", + "kraken", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Mozambique: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Myanmar (formerly Burma)": [ + "coinmama", + "bittrex", + "kraken", + "gemini", + "itezcom", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bybit", + ], + Namibia: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Nauru: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Navassa Island (USA)": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "okx", + "kucoin", + "bybit", + ], + Nepal: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Netherlands: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "kraken", + "gemini", + "cryptocom", + "itezcom", + "bitvavo", + "mtpelerin", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "New Caledonia (France)": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "gateio", + "bybit", + ], + "New Zealand": [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "binance", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "easycrypto", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Nicaragua: [ + "coinmama", + "bittrex", + "coinbase", + "kraken", + "itezcom", + "wazirx", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Niger: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Nigeria: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "gemini", + "binance", + "cryptocom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Niue (New Zealand)": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "easycrypto", + "okx", + "kucoin", + "gateio", + "bybit", + ], + "Norfolk Island (Australia)": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "easycrypto", + "okx", + "kucoin", + "gateio", + "bybit", + ], + "North Korea": ["bittrex", "bitfinex"], + "North Macedonia (formerly Macedonia)": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Northern Mariana Islands (USA)": [ + "simplex", + "kraken", + "kucoin", + "huobiglobal", + "bybit", + ], + Norway: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "cryptocom", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Oman: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "rain", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Pakistan: [ + "coinmama", + "bittrex", + "kraken", + "binance", + "mtpelerin", + "wazirx", + "okx", + "huobiglobal", + "bitfinex", + "bybit", + ], + Palau: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Palestine: [ + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Panama: [ + "coinmama", + "bittrex", + "coinbase", + "kraken", + "gemini", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Papua New Guinea": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Paraguay: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Peru: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "binance", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Philippines: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "binance", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Pitcairn Islands (UK)": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bybit", + ], + Poland: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "binance", + "cryptocom", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Portugal: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "binance", + "cryptocom", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Puerto Rico (USA)": [ + "simplex", + "moonpay", + "kraken", + "kucoin", + "huobiglobal", + "bybit", + ], + Qatar: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Romania: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "gemini", + "binance", + "cryptocom", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Russia: [ + "coinmama", + "simplex", + "kraken", + "binance", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Rwanda: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "itezcom", + "mtpelerin", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Saba (Netherlands)": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "gateio", + "bybit", + ], + "Saint Barthelemy (France)": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "gateio", + "bybit", + ], + "Saint Kitts and Nevis": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bybit", + ], + "Saint Lucia": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "gemini", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "gateio", + "bitfinex", + "bybit", + ], + "Saint Martin (France)": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bybit", + ], + "Saint Pierre and Miquelon (France)": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "gateio", + "bybit", + ], + "Saint Vincent and the Grenadines": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "gemini", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bybit", + ], + Samoa: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "mtpelerin", + "wazirx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "San Marino": [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Sao Tome and Principe": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Saudi Arabia": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "binance", + "rain", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Senegal: [ + "coinmama", + "simplex", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Serbia: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "cryptocom", + "itezcom", + "mtpelerin", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Seychelles: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Sierra Leone": [ + "coinmama", + "simplex", + "moonpay", + "itezcom", + "mtpelerin", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Singapore: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "gemini", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "gateio", + "bitfinex", + ], + "Sint Eustatius (Netherlands)": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bybit", + ], + "Sint Maarten (Netherlands)": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Slovakia: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "binance", + "cryptocom", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Slovenia: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "binance", + "cryptocom", + "itezcom", + "bitvavo", + "mtpelerin", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Solomon Islands": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Somalia: [ + "coinmama", + "bittrex", + "simplex", + "moonpay", + "kraken", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "South Africa": [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "binance", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "South Georgia and the South Sandwich Islands (UK)": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "gateio", + "bybit", + ], + "South Korea": [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "gemini", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + "korbit", + ], + "South Sudan": [ + "bittrex", + "simplex", + "kraken", + "itezcom", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Spain: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "binance", + "cryptocom", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Sri Lanka": [ + "coinmama", + "bittrex", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Sudan: ["bittrex", "simplex", "kucoin", "bitfinex"], + Suriname: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Sweden: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "cryptocom", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Switzerland: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "binance", + "cryptocom", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Syria: ["bittrex", "wazirx", "okx", "bitfinex"], + Taiwan: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "gemini", + "binance", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Tajikistan: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Tanzania: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Thailand: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "kraken", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + "bitkub", + ], + "Timor-Leste": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Togo: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Tokelau (New Zealand)": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "easycrypto", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bybit", + ], + Tonga: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Trinidad and Tobago": [ + "coinmama", + "bittrex", + "simplex", + "coinbase", + "kraken", + "mtpelerin", + "wazirx", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Tunisia: [ + "coinmama", + "bittrex", + "simplex", + "moonpay", + "coinbase", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Turkey: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "coinbase", + "kraken", + "gemini", + "binance", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Turkmenistan: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Turks and Caicos Islands (UK)": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bybit", + ], + Tuvalu: [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Uganda: [ + "coinmama", + "bittrex", + "coinbase", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Ukraine: [ + "coinmama", + "bittrex", + "simplex", + "binance", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "United Arab Emirates (UAE)": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "binance", + "rain", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "United Kingdom (UK)": [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "gemini", + "cryptocom", + "itezcom", + "bitvavo", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "United States of America (USA)": [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "gemini", + "binanceus", + "bitflyer", + ], + Uruguay: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "gemini", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "US Virgin Islands (USA)": [ + "simplex", + "coinbase", + "kraken", + "cryptocom", + "kucoin", + "huobiglobal", + "bybit", + ], + Uzbekistan: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Vanuatu: [ + "coinmama", + "bittrex", + "simplex", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Venezuela: [ + "coinmama", + "bittrex", + "simplex", + "kraken", + "wazirx", + "okx", + "bitfinex", + "bybit", + ], + Vietnam: [ + "coinmama", + "simplex", + "wyre", + "moonpay", + "gemini", + "binance", + "cryptocom", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + "Wake Island (USA)": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "okx", + "kucoin", + "bybit", + ], + "Wallis and Futuna (France)": [ + "coinmama", + "simplex", + "moonpay", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "bitflyer", + "okx", + "kucoin", + "gateio", + "bybit", + ], + Yemen: [ + "coinmama", + "bittrex", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Zambia: [ + "coinmama", + "simplex", + "moonpay", + "coinbase", + "kraken", + "itezcom", + "mtpelerin", + "wazirx", + "okx", + "kucoin", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], + Zimbabwe: [ + "coinmama", + "bittrex", + "binance", + "okx", + "huobiglobal", + "gateio", + "bitfinex", + "bybit", + ], +} + +export default exchangesByCountry diff --git a/src/data/execution-bounty-hunters.csv b/src/data/execution-bounty-hunters.csv deleted file mode 100644 index 2516d63c530..00000000000 --- a/src/data/execution-bounty-hunters.csv +++ /dev/null @@ -1,56 +0,0 @@ -username, name, score -holiman, "Martin Holst Swende", 37500 -samczsun, "Sam Sun", 35000 -chainsecurity, "ChainSecurity", 23500 -junorouse, "Juno Im", 20500 -uknowy, "Yoonho Kim (team Hithereum)", 20000 -johnyangk, "John Youngseok Yang (Software Platform Lab)", 20000 -guidovranken, "Guido Vranken", 28250 -peckshield, "PeckShield", 17000 -itsunixiknowthis, "ItsUnixIKnowThis", 15000 -catageek, "Bertrand Masius", 15000 -tintinweb, "Tin", 12500 -, "Ralph Pichler", 12500 -, "Bob Conan", 13000 -lukaszmatczak, "Łukasz Matczak", 11000 -, "Heilman/Marcus/Goldberg", 10000 -jonasnick, "Jonas Nick", 10000 -jtoman, "John Toman", 10000 -, "Sebastian Henningsen", 8000 -, "Dominic Brütsch", 7500 -HarryR, "Harry Roberts", 5000 -p-, "Peter Stöckli", 5000 -Dedaub, "Neville Grech", 5000 -EthHead, "EthHead", 5000 -iosiro,"iosiro", 5000 -axic, "Alex Beregszaszi", 3500 -SergioDemianLerner, "Sergio Demian Lerner", 2500 -danhper, "Daniel Perez", 2500 -yaronvel, "Yaron Velner", 2000 -whitj00, "Whit Jackson", 2000 -, "Ming Chuan Lin", 2000 -melonport, "Melonport team", 2000 -maurelian, "Maurelian", 2000 -Cjentzsch, "Christoph Jentzsch", 2000 -hwanjo, "Hwanjo Heo", 1500 -DVPNET, "DVP (dvpnet.io)", 1200 -, "Vasily Vasiliev", 1000 -talko, "talko", 1000 -swaldman, "Steve Waldman", 1000 -ptk, "Panu Kekäläinen", 1000 -montyly, "Josselin Feist", 1000 -henrit, "Henrit", 1000 -BlameByte, "Marc Bartlett", 1000 -, "Barry Whitehat", 1000 -badmofo, "Lucas Ryan", 1000 -agroce, "Alex Groce", 1000 -n0thingness, "Daniel Briskin", 750 -daenamkim, "Daenam Kim", 750 -, "Myeongjae Lee", 500 -, "Marcin Noga (Cisco/Talos Security)", 500 -, "jazzybedi", 500 -feeker, "Feeker - 360 ESG Codesafe Team", 500 -ethernomad, "Jonathan Brown", 500 -davidmurdoch, "David Murdoch", 500 -wadeAlexC, "Alexander Wade", 500 -gitpusha, "Luis Schliesske", 200 diff --git a/src/data/execution-bounty-hunters.json b/src/data/execution-bounty-hunters.json new file mode 100644 index 00000000000..f1282594b14 --- /dev/null +++ b/src/data/execution-bounty-hunters.json @@ -0,0 +1,277 @@ +[ + { + "username": "holiman", + "name": "Martin Holst Swende", + "score": 37500 + }, + { + "username": "samczsun", + "name": "Sam Sun", + "score": 35000 + }, + { + "username": "chainsecurity", + "name": "ChainSecurity", + "score": 23500 + }, + { + "username": "junorouse", + "name": "Juno Im", + "score": 20500 + }, + { + "username": "uknowy", + "name": "Yoonho Kim (team Hithereum)", + "score": 20000 + }, + { + "username": "johnyangk", + "name": "John Youngseok Yang (Software Platform Lab)", + "score": 20000 + }, + { + "username": "guidovranken", + "name": "Guido Vranken", + "score": 28250 + }, + { + "username": "peckshield", + "name": "PeckShield", + "score": 17000 + }, + { + "username": "itsunixiknowthis", + "name": "ItsUnixIKnowThis", + "score": 15000 + }, + { + "username": "catageek", + "name": "Bertrand Masius", + "score": 15000 + }, + { + "username": "tintinweb", + "name": "Tin", + "score": 12500 + }, + { + "username": "", + "name": "Ralph Pichler", + "score": 12500 + }, + { + "username": "", + "name": "Bob Conan", + "score": 13000 + }, + { + "username": "lukaszmatczak", + "name": "Łukasz Matczak", + "score": 11000 + }, + { + "username": "", + "name": "Heilman/Marcus/Goldberg", + "score": 10000 + }, + { + "username": "jonasnick", + "name": "Jonas Nick", + "score": 10000 + }, + { + "username": "jtoman", + "name": "John Toman", + "score": 10000 + }, + { + "username": "", + "name": "Sebastian Henningsen", + "score": 8000 + }, + { + "username": "", + "name": "Dominic Brütsch", + "score": 7500 + }, + { + "username": "HarryR", + "name": "Harry Roberts", + "score": 5000 + }, + { + "username": "p-", + "name": "Peter Stöckli", + "score": 5000 + }, + { + "username": "Dedaub", + "name": "Neville Grech", + "score": 5000 + }, + { + "username": "EthHead", + "name": "EthHead", + "score": 5000 + }, + { + "username": "iosiro", + "name": "iosiro", + "score": 5000 + }, + { + "username": "axic", + "name": "Alex Beregszaszi", + "score": 3500 + }, + { + "username": "SergioDemianLerner", + "name": "Sergio Demian Lerner", + "score": 2500 + }, + { + "username": "danhper", + "name": "Daniel Perez", + "score": 2500 + }, + { + "username": "yaronvel", + "name": "Yaron Velner", + "score": 2000 + }, + { + "username": "whitj00", + "name": "Whit Jackson", + "score": 2000 + }, + { + "username": "", + "name": "Ming Chuan Lin", + "score": 2000 + }, + { + "username": "melonport", + "name": "Melonport team", + "score": 2000 + }, + { + "username": "maurelian", + "name": "Maurelian", + "score": 2000 + }, + { + "username": "Cjentzsch", + "name": "Christoph Jentzsch", + "score": 2000 + }, + { + "username": "hwanjo", + "name": "Hwanjo Heo", + "score": 1500 + }, + { + "username": "DVPNET", + "name": "DVP (dvpnet.io)", + "score": 1200 + }, + { + "username": "", + "name": "Vasily Vasiliev", + "score": 1000 + }, + { + "username": "talko", + "name": "talko", + "score": 1000 + }, + { + "username": "swaldman", + "name": "Steve Waldman", + "score": 1000 + }, + { + "username": "ptk", + "name": "Panu Kekäläinen", + "score": 1000 + }, + { + "username": "montyly", + "name": "Josselin Feist", + "score": 1000 + }, + { + "username": "henrit", + "name": "Henrit", + "score": 1000 + }, + { + "username": "BlameByte", + "name": "Marc Bartlett", + "score": 1000 + }, + { + "username": "", + "name": "Barry Whitehat", + "score": 1000 + }, + { + "username": "badmofo", + "name": "Lucas Ryan", + "score": 1000 + }, + { + "username": "agroce", + "name": "Alex Groce", + "score": 1000 + }, + { + "username": "n0thingness", + "name": "Daniel Briskin", + "score": 750 + }, + { + "username": "daenamkim", + "name": "Daenam Kim", + "score": 750 + }, + { + "username": "", + "name": "Myeongjae Lee", + "score": 500 + }, + { + "username": "", + "name": "Marcin Noga (Cisco/Talos Security)", + "score": 500 + }, + { + "username": "", + "name": "jazzybedi", + "score": 500 + }, + { + "username": "feeker", + "name": "Feeker - 360 ESG Codesafe Team", + "score": 500 + }, + { + "username": "ethernomad", + "name": "Jonathan Brown", + "score": 500 + }, + { + "username": "davidmurdoch", + "name": "David Murdoch", + "score": 500 + }, + { + "username": "wadeAlexC", + "name": "Alexander Wade", + "score": 500 + }, + { + "username": "gitpusha", + "name": "Luis Schliesske", + "score": 200 + } +] diff --git a/src/data/layer-2/layer-2.json b/src/data/layer-2/layer-2.json deleted file mode 100644 index 852d47ac94d..00000000000 --- a/src/data/layer-2/layer-2.json +++ /dev/null @@ -1,161 +0,0 @@ -{ - "optimistic": [ - { - "name": "Arbitrum One", - "website": "https://arbitrum.io/", - "developerDocs": "https://developer.arbitrum.io/", - "l2beat": "https://l2beat.com/projects/arbitrum/", - "bridge": "https://bridge.arbitrum.io/", - "bridgeWallets": ["MetaMask", "WalletConnect", "Coinbase Wallet"], - "blockExplorer": "https://arbiscan.io/", - "ecosystemPortal": "https://portal.arbitrum.one/", - "tokenLists": "https://www.coingecko.com/en/categories/arbitrum-ecosystem", - "noteKey": "layer-2-arbitrum-note", - "purpose": ["universal"], - "descriptionKey": "arbitrum-description", - "imageKey": "arbitrum", - "background": "white" - }, - { - "name": "Optimism", - "website": "https://optimism.io/", - "developerDocs": "https://community.optimism.io/docs/developers/", - "l2beat": "https://l2beat.com/projects/optimism/", - "bridge": "https://app.optimism.io/bridge", - "bridgeWallets": ["MetaMask", "WalletConnect", "Coinbase Wallet"], - "blockExplorer": "https://optimistic.etherscan.io/", - "ecosystemPortal": "https://www.optimism.io/apps/all", - "tokenLists": "https://tokenlists.org/token-list?url=https://static.optimism.io/optimism.tokenlist.json", - "noteKey": "layer-2-optimism-note", - "purpose": ["universal"], - "descriptionKey": "optimism-description", - "imageKey": "optimism", - "background": "white" - }, - { - "name": "Boba Network", - "website": "https://boba.network/", - "developerDocs": "https://docs.boba.network/", - "l2beat": "https://l2beat.com/projects/bobanetwork/", - "bridge": "https://gateway.boba.network/", - "bridgeWallets": ["MetaMask"], - "blockExplorer": "https://blockexplorer.boba.network/", - "ecosystemPortal": "", - "tokenLists": "", - "noteKey": "layer-2-boba-note", - "purpose": ["universal"], - "descriptionKey": "boba-description", - "imageKey": "boba", - "background": "black" - } - ], - "zk": [ - { - "name": "Loopring", - "website": "https://loopring.org/#/", - "developerDocs": "https://docs.loopring.io/en/", - "l2beat": "https://l2beat.com/projects/loopring/", - "bridge": "https://loopring.io/#/layer2", - "bridgeWallets": ["MetaMask", "WalletConnect"], - "blockExplorer": "https://explorer.loopring.io/", - "ecosystemPortal": "", - "tokenLists": "", - "noteKey": "", - "purpose": ["payments", "exchange"], - "descriptionKey": "loopring-description", - "imageKey": "loopring", - "background": "white" - }, - { - "name": "zkSync", - "website": "https://zksync.io/", - "developerDocs": "https://zksync.io/dev/", - "l2beat": "https://l2beat.com/projects/zksync/", - "bridge": "https://wallet.zksync.io/account", - "bridgeWallets": [ - "MetaMask", - "WalletConnect", - "Formatic", - "Trezor", - "Ledger", - "Keystone", - "Lattice", - "Portis", - "Opera", - "Torus", - "Coinbase Wallet" - ], - "blockExplorer": "https://zkscan.io/", - "ecosystemPortal": "", - "tokenLists": "", - "noteKey": "", - "purpose": ["tokens", "nft"], - "descriptionKey": "zksync-description", - "imageKey": "zksync", - "background": "#11142b" - }, - { - "name": "ZKSpace", - "website": "https://zks.org", - "developerDocs": "https://en.wiki.zks.org/", - "l2beat": "https://l2beat.com/projects/zkswap/", - "bridge": "https://zks.app/wallet/token", - "bridgeWallets": [ - "MetaMask", - "WalletConnect", - "imToken", - "TokenPocket", - "MathWallet", - "Trust Wallet" - ], - "blockExplorer": "", - "ecosystemPortal": "", - "tokenLists": "", - "noteKey": "", - "purpose": ["payments", "exchange"], - "descriptionKey": "zkspace-description", - "imageKey": "zkspace", - "background": "black" - }, - { - "name": "Aztec", - "website": "https://aztec.network/", - "developerDocs": "https://docs.aztec.network/", - "l2beat": "https://l2beat.com/projects/aztec", - "bridge": "https://zk.money/", - "bridgeWallets": ["MetaMask", "WalletConnect"], - "blockExplorer": "https://aztec-connect-prod-explorer.aztec.network/", - "ecosystemPortal": "", - "tokenLists": "", - "noteKey": "", - "purpose": ["payments", "integrations"], - "descriptionKey": "aztec-description", - "imageKey": "aztec", - "background": "white" - }, - { - "name": "Starknet", - "website": "https://www.starknet.io", - "developerDocs": "https://docs.starknet.io", - "l2beat": "https://l2beat.com/scaling/projects/starknet", - "bridge": "https://starkgate.starknet.io", - "bridgeWallets": [ - "MetaMask", - "Coinbase Wallet", - "WalletConnect", - "Trust Wallet", - "Rainbow", - "Argent X", - "Braavos" - ], - "blockExplorer": "https://starkscan.co", - "ecosystemPortal": "https://www.starknet-ecosystem.com", - "tokenLists": "https://github.com/starknet-io/starknet-addresses/blob/master/bridged_tokens/mainnet.json", - "noteKey": "", - "purpose": ["universal"], - "descriptionKey": "starknet-description", - "imageKey": "starknet", - "background": "white" - } - ] -} diff --git a/src/data/layer-2/layer-2.ts b/src/data/layer-2/layer-2.ts new file mode 100644 index 00000000000..b2fce9ed6e7 --- /dev/null +++ b/src/data/layer-2/layer-2.ts @@ -0,0 +1,195 @@ +import { StaticImageData } from "next/image" + +import type { TranslationKey } from "@/lib/types" + +import ArbitrumImage from "@/public/layer-2/arbitrum.png" +import AztecImage from "@/public/layer-2/aztec.png" +import BobaImage from "@/public/layer-2/boba.png" +import LoopringImage from "@/public/layer-2/loopring.png" +import OptimismImage from "@/public/layer-2/optimism.png" +import StarknetImage from "@/public/layer-2/starknet.png" +import ZKSpaceImage from "@/public/layer-2/zkspace.png" +import zkSyncImage from "@/public/layer-2/zksync.png" + +export type RollupType = "optimistic" | "zk" + +export interface Rollup { + name: string + website: string + developerDocs: string + l2beat: string + bridge: string + bridgeWallets: Array + blockExplorer: string + ecosystemPortal: string + tokenLists: string + noteKey: TranslationKey + purpose: Array + descriptionKey: string + image: StaticImageData + background: string +} + +export type Rollups = { [type in RollupType]: Array } + +export const layer2Data: Rollups = { + optimistic: [ + { + name: "Arbitrum One", + website: "https://arbitrum.io/", + developerDocs: "https://developer.arbitrum.io/", + l2beat: "https://l2beat.com/projects/arbitrum/", + bridge: "https://bridge.arbitrum.io/", + bridgeWallets: ["MetaMask", "WalletConnect", "Coinbase Wallet"], + blockExplorer: "https://arbiscan.io/", + ecosystemPortal: "https://portal.arbitrum.one/", + tokenLists: "https://www.coingecko.com/en/categories/arbitrum-ecosystem", + noteKey: "layer-2-arbitrum-note", + purpose: ["universal"], + descriptionKey: "arbitrum-description", + image: ArbitrumImage, + background: "white" + }, + { + name: "Optimism", + website: "https://optimism.io/", + developerDocs: "https://community.optimism.io/docs/developers/", + l2beat: "https://l2beat.com/projects/optimism/", + bridge: "https://app.optimism.io/bridge", + bridgeWallets: ["MetaMask", "WalletConnect", "Coinbase Wallet"], + blockExplorer: "https://optimistic.etherscan.io/", + ecosystemPortal: "https://www.optimism.io/apps/all", + tokenLists: "https://tokenlists.org/token-list?url=https://static.optimism.io/optimism.tokenlist.json", + noteKey: "layer-2-optimism-note", + purpose: ["universal"], + descriptionKey: "optimism-description", + image: OptimismImage, + background: "white" + }, + { + name: "Boba Network", + website: "https://boba.network/", + developerDocs: "https://docs.boba.network/", + l2beat: "https://l2beat.com/projects/bobanetwork/", + bridge: "https://gateway.boba.network/", + bridgeWallets: ["MetaMask"], + blockExplorer: "https://blockexplorer.boba.network/", + ecosystemPortal: "", + tokenLists: "", + noteKey: "layer-2-boba-note", + purpose: ["universal"], + descriptionKey: "boba-description", + image: BobaImage, + background: "black" + } + ], + zk: [ + { + name: "Loopring", + website: "https://loopring.org/#/", + developerDocs: "https://docs.loopring.io/en/", + l2beat: "https://l2beat.com/projects/loopring/", + bridge: "https://loopring.io/#/layer2", + bridgeWallets: ["MetaMask", "WalletConnect"], + blockExplorer: "https://explorer.loopring.io/", + ecosystemPortal: "", + tokenLists: "", + noteKey: "", + purpose: ["payments", "exchange"], + descriptionKey: "loopring-description", + image: LoopringImage, + background: "white" + }, + { + name: "zkSync", + website: "https://zksync.io/", + developerDocs: "https://zksync.io/dev/", + l2beat: "https://l2beat.com/projects/zksync/", + bridge: "https://wallet.zksync.io/account", + bridgeWallets: [ + "MetaMask", + "WalletConnect", + "Formatic", + "Trezor", + "Ledger", + "Keystone", + "Lattice", + "Portis", + "Opera", + "Torus", + "Coinbase Wallet" + ], + blockExplorer: "https://zkscan.io/", + ecosystemPortal: "", + tokenLists: "", + noteKey: "", + purpose: ["tokens", "nft"], + descriptionKey: "zksync-description", + image: zkSyncImage, + background: "#11142b" + }, + { + name: "ZKSpace", + website: "https://zks.org", + developerDocs: "https://en.wiki.zks.org/", + l2beat: "https://l2beat.com/projects/zkswap/", + bridge: "https://zks.app/wallet/token", + bridgeWallets: [ + "MetaMask", + "WalletConnect", + "imToken", + "TokenPocket", + "MathWallet", + "Trust Wallet" + ], + blockExplorer: "", + ecosystemPortal: "", + tokenLists: "", + noteKey: "", + purpose: ["payments", "exchange"], + descriptionKey: "zkspace-description", + image: ZKSpaceImage, + background: "black" + }, + { + name: "Aztec", + website: "https://aztec.network/", + developerDocs: "https://docs.aztec.network/", + l2beat: "https://l2beat.com/projects/aztec", + bridge: "https://zk.money/", + bridgeWallets: ["MetaMask", "WalletConnect"], + blockExplorer: "https://aztec-connect-prod-explorer.aztec.network/", + ecosystemPortal: "", + tokenLists: "", + noteKey: "", + purpose: ["payments", "integrations"], + descriptionKey: "aztec-description", + image: AztecImage, + background: "white" + }, + { + name: "Starknet", + website: "https://www.starknet.io", + developerDocs: "https://docs.starknet.io", + l2beat: "https://l2beat.com/scaling/projects/starknet", + bridge: "https://starkgate.starknet.io", + bridgeWallets: [ + "MetaMask", + "Coinbase Wallet", + "WalletConnect", + "Trust Wallet", + "Rainbow", + "Argent X", + "Braavos" + ], + blockExplorer: "https://starkscan.co", + ecosystemPortal: "https://www.starknet-ecosystem.com", + tokenLists: "https://github.com/starknet-io/starknet-addresses/blob/master/bridged_tokens/mainnet.json", + noteKey: "", + purpose: ["universal"], + descriptionKey: "starknet-description", + image: StarknetImage, + background: "white" + } + ] +} diff --git a/src/data/published.json b/src/data/published.json new file mode 100644 index 00000000000..8c3c6ed8d54 --- /dev/null +++ b/src/data/published.json @@ -0,0 +1 @@ +{"date":"2023-10-26"} diff --git a/src/data/quizzes/index.ts b/src/data/quizzes/index.ts index e9a2c1195f4..cb22f4236f5 100644 --- a/src/data/quizzes/index.ts +++ b/src/data/quizzes/index.ts @@ -1,5 +1,6 @@ // Import data types -import { QuizzesSection, RawQuizzes } from "../../types" +import type { QuizzesSection } from "@/lib/types" +import type { RawQuizzes } from "@/lib/interfaces" // Declare hash-map of quizzes based on slug key const quizzes: RawQuizzes = { @@ -32,7 +33,7 @@ const quizzes: RawQuizzes = { questions: ["g001", "g002", "g003", "g004"], }, merge: { - title: "page-assets-merge", + title: "learn-quizzes:page-assets-merge", questions: ["h001", "h002", "h003", "h004", "h005"], }, } diff --git a/src/data/quizzes/questionBank.ts b/src/data/quizzes/questionBank.ts index 1af69d47734..ba3d3907753 100644 --- a/src/data/quizzes/questionBank.ts +++ b/src/data/quizzes/questionBank.ts @@ -1,5 +1,5 @@ // Import data types -import { QuestionBank } from "../../types" +import type { QuestionBank } from "@/lib/interfaces" // Declare hash map of question bank const questionBank: QuestionBank = { diff --git a/src/data/wallets/wallet-data.ts b/src/data/wallets/wallet-data.ts index b591a3b4ba5..bbd3b9401af 100644 --- a/src/data/wallets/wallet-data.ts +++ b/src/data/wallets/wallet-data.ts @@ -1,7 +1,62 @@ +import { StaticImageData } from "next/image" + +import OneInchWalletImage from "@/public/wallets/1inch.png" +import AirgapImage from "@/public/wallets/airgap.png" +import AktionariatImage from "@/public/wallets/aktionariat.png" +import AlphaWalletImage from "@/public/wallets/alpha.png" +import AmbireImage from "@/public/wallets/ambire.png" +import ApexImage from "@/public/wallets/apex.png" +import ArgentImage from "@/public/wallets/argent.png" +import BitcoindotcomImage from "@/public/wallets/bitcoindotcom.png" +import BitkeepImage from "@/public/wallets/bitkeep.png" +import BlockWalletImage from "@/public/wallets/blockwallet.png" +import BraveImage from "@/public/wallets/brave.png" +import BridgeWalletImage from "@/public/wallets/bridge.png" +import Coin98Image from "@/public/wallets/coin98.png" +import CoinbaseImage from "@/public/wallets/coinbase.png" +import CoinwalletImage from "@/public/wallets/coinwallet.png" +import EnkryptImage from "@/public/wallets/enkrypt.png" +import ExodusImage from "@/public/wallets/exodus.png" +import FoxWalletImage from "@/public/wallets/foxwallet.png" +import FrameImage from "@/public/wallets/frame.png" +import GridPlusImage from "@/public/wallets/gridplus.png" +import GuardaImage from "@/public/wallets/guarda.png" +import imTokenImage from "@/public/wallets/imtoken.png" +import InfinityWalletImage from "@/public/wallets/infinity_wallet.png" +import KeystoneImage from "@/public/wallets/keystone.png" +import LedgerImage from "@/public/wallets/ledger.png" +import LoopringImage from "@/public/wallets/loopring.png" +import MetaMaskImage from "@/public/wallets/metamask.png" +import MewImage from "@/public/wallets/mew.png" +import MyCryptoImage from "@/public/wallets/mycrypto.png" +import MyEtherWalletImage from "@/public/wallets/myetherwallet.png" +import NumioImage from "@/public/wallets/numio.png" +import OKXImage from "@/public/wallets/okx.jpeg" +import OneKeyImage from "@/public/wallets/onekey.png" +import OperaImage from "@/public/wallets/opera.png" +import PhantomImage from "@/public/wallets/phantom.png" +import PillarImage from "@/public/wallets/pillar.png" +import PortisImage from "@/public/wallets/portis.png" +import RabbyWalletImage from "@/public/wallets/rabbywallet.png" +import RainbowImage from "@/public/wallets/rainbow.png" +import SafeImage from "@/public/wallets/safe.png" +import SequenceImage from "@/public/wallets/sequence.png" +import ShapeShiftImage from "@/public/wallets/shapeshift.png" +import StatusImage from "@/public/wallets/status.png" +import TahoImage from "@/public/wallets/taho.png" +import TokenPocketImage from "@/public/wallets/tokenpocket.png" +import TorusImage from "@/public/wallets/torus.png" +import TrezorImage from "@/public/wallets/trezor.png" +import UnstoppableWalletImage from "@/public/wallets/unstoppable.png" +import Web3AuthImage from "@/public/wallets/web3auth.png" +import XDEFIImage from "@/public/wallets/xdefi.png" +import ZengoImage from "@/public/wallets/zengo.png" +import ZerionImage from "@/public/wallets/zerion.png" + export interface WalletData { last_updated: string name: string - image_name: string + image: StaticImageData brand_color: string url: string wallet_live_date: string @@ -50,7 +105,7 @@ const walletData: WalletData[] = [ { last_updated: "June 22, 2022", name: "Keystone", - image_name: "keystone", + image: KeystoneImage, brand_color: "#ffffff", url: "https://keyst.one/", wallet_live_date: "Dec 2018", @@ -98,7 +153,7 @@ const walletData: WalletData[] = [ { last_updated: "June 22, 2022", name: "Numio", - image_name: "numio", + image: NumioImage, brand_color: "#3F3F3F", url: "https://www.numio.one/", wallet_live_date: "December 2020", @@ -143,7 +198,7 @@ const walletData: WalletData[] = [ { last_updated: "June 22, 2022", name: "Coin98", - image_name: "coin98", + image: Coin98Image, brand_color: "#ffffff", url: "https://coin98.com/wallet", wallet_live_date: "2018", @@ -201,7 +256,7 @@ const walletData: WalletData[] = [ { last_updated: "June 22, 2022", name: "Loopring wallet", - image_name: "loopring", + image: LoopringImage, brand_color: "#ffffff", url: "https://loopring.io/#/wallet", wallet_live_date: "Nov 25, 2020", @@ -250,7 +305,7 @@ const walletData: WalletData[] = [ { last_updated: "June 22, 2022", name: "AirGap wallet", - image_name: "airgap", + image: AirgapImage, brand_color: "#50249F", url: "https://airgap.it/", wallet_live_date: "July 2017", @@ -297,7 +352,7 @@ const walletData: WalletData[] = [ { last_updated: "June 22, 2022", name: "Argent", - image_name: "argent", + image: ArgentImage, brand_color: "#ffffff", url: "https://www.argent.xyz/", wallet_live_date: "2018", @@ -345,7 +400,7 @@ const walletData: WalletData[] = [ { last_updated: "June 22, 2022", name: "Portis", - image_name: "portis", + image: PortisImage, brand_color: "#ffffff", url: "https://www.portis.io", wallet_live_date: "Nov, 2018", @@ -390,7 +445,7 @@ const walletData: WalletData[] = [ { last_updated: "November 15, 2022", name: "Coinbase Wallet", - image_name: "coinbase", + image: CoinbaseImage, brand_color: "#0052FF", url: "https://www.coinbase.com/wallet", wallet_live_date: "2018", @@ -436,7 +491,7 @@ const walletData: WalletData[] = [ { last_updated: "June 22, 2022", name: "Frame", - image_name: "frame", + image: FrameImage, brand_color: "#222021", url: "https://frame.sh", wallet_live_date: "April 2019", @@ -482,7 +537,7 @@ const walletData: WalletData[] = [ { last_updated: "June 22, 2022", name: "Brave Wallet", - image_name: "brave", + image: BraveImage, brand_color: "#fe1f02", url: "https://brave.com/wallet", wallet_live_date: "November 2021", @@ -529,7 +584,7 @@ const walletData: WalletData[] = [ { last_updated: "June 22, 2022", name: "MetaMask", - image_name: "metamask", + image: MetaMaskImage, brand_color: "#ffffff", url: "https://metamask.io", wallet_live_date: "2016", @@ -574,7 +629,7 @@ const walletData: WalletData[] = [ { last_updated: "2023-01-25", name: "Safe", - image_name: "safe", + image: SafeImage, brand_color: "#12ff80", url: "https://safe.global/", wallet_live_date: "2017", @@ -619,7 +674,7 @@ const walletData: WalletData[] = [ { last_updated: "June 22, 2022", name: "Coin wallet", - image_name: "coinwallet", + image: CoinwalletImage, brand_color: "#ffffff", url: "https://coin.space/", wallet_live_date: "July 2015", @@ -690,7 +745,7 @@ const walletData: WalletData[] = [ { last_updated: "August 23, 2023", name: "Ambire", - image_name: "ambire", + image: AmbireImage, brand_color: "#aa6aff", url: "https://www.ambire.com", wallet_live_date: "December 2021", @@ -736,7 +791,7 @@ const walletData: WalletData[] = [ { last_updated: "June 23, 2022", name: "ZenGo", - image_name: "zengo", + image: ZengoImage, brand_color: "#35C4BA", url: "https://zengo.com/", wallet_live_date: "Jan, 2020", @@ -781,7 +836,7 @@ const walletData: WalletData[] = [ { last_updated: "June 24, 2022", name: "imToken", - image_name: "imtoken", + image: imTokenImage, brand_color: "#098de6", url: "https://token.im/", wallet_live_date: "2016", @@ -837,7 +892,7 @@ const walletData: WalletData[] = [ { last_updated: "2022-08-22", name: "1inch Wallet", - image_name: "oneinch", + image: OneInchWalletImage, brand_color: "#082D6E", url: "https://1inch.io/", wallet_live_date: "2022-04-27", @@ -896,7 +951,7 @@ const walletData: WalletData[] = [ { last_updated: "June 24, 2022", name: "FoxWallet", - image_name: "foxwallet", + image: FoxWalletImage, brand_color: "#ffffff", url: "https://foxwallet.com/en", wallet_live_date: "November, 2021", @@ -941,7 +996,7 @@ const walletData: WalletData[] = [ { last_updated: "June 24, 2022", name: "MyCrypto", - image_name: "mycrypto", + image: MyCryptoImage, brand_color: "#FFFFFF", url: "https://mycrypto.com", wallet_live_date: "Feb, 2018", @@ -1007,7 +1062,7 @@ const walletData: WalletData[] = [ { last_updated: "June 24, 2022", name: "Pillar", - image_name: "pillar", + image: PillarImage, brand_color: "#7501D9", url: "https://www.pillar.fi/", wallet_live_date: "December 18 2018 V1, June 2020 V2", @@ -1055,7 +1110,7 @@ const walletData: WalletData[] = [ { last_updated: "June 24, 2022", name: "MEW wallet", - image_name: "mew", + image: MewImage, brand_color: "#05C0A5", url: "https://www.mewwallet.com", wallet_live_date: "13 March 2020", @@ -1101,7 +1156,7 @@ const walletData: WalletData[] = [ { last_updated: "June 24, 2022", name: "Unstoppable wallet", - image_name: "unstoppable", + image: UnstoppableWalletImage, brand_color: "#ffbe43", url: "https://unstoppable.money/", wallet_live_date: "2017", @@ -1147,7 +1202,7 @@ const walletData: WalletData[] = [ { last_updated: "June 24, 2022", name: "MyEtherWallet", - image_name: "myetherwallet", + image: MyEtherWalletImage, brand_color: "#ffffff", url: "https://www.myetherwallet.com/", wallet_live_date: "August 2015", @@ -1193,7 +1248,7 @@ const walletData: WalletData[] = [ { last_updated: "June 24, 2022", name: "AlphaWallet", - image_name: "alpha", + image: AlphaWalletImage, brand_color: "#ffffff", url: "https://alphawallet.com/", wallet_live_date: "2018", @@ -1239,7 +1294,7 @@ const walletData: WalletData[] = [ { last_updated: "June 24, 2022", name: "Opera wallet", - image_name: "opera", + image: OperaImage, brand_color: "#ffffff", url: "https://crypto.opera.com/", wallet_live_date: "January 19 2022", @@ -1285,7 +1340,7 @@ const walletData: WalletData[] = [ { last_updated: "June 24, 2022", name: "Guarda", - image_name: "guarda", + image: GuardaImage, brand_color: "#ffffff", url: "https://guarda.com/", wallet_live_date: "2017", @@ -1331,7 +1386,7 @@ const walletData: WalletData[] = [ { last_updated: "September 14, 2022", name: "Web3Auth", - image_name: "web3auth", + image: Web3AuthImage, brand_color: "#0364ff", url: "https://web3auth.io", wallet_live_date: "Jan, 2022", @@ -1378,7 +1433,7 @@ const walletData: WalletData[] = [ { last_updated: "June 24, 2022", name: "Bridge wallet", - image_name: "bridge", + image: BridgeWalletImage, brand_color: "#ffffff", url: "https://www.mtpelerin.com/bridge-wallet", wallet_live_date: "April 2020", @@ -1424,7 +1479,7 @@ const walletData: WalletData[] = [ { last_updated: "September 14, 2022", name: "Torus Wallet", - image_name: "torus", + image: TorusImage, brand_color: "#0364ff", url: "https://app.tor.us", wallet_live_date: "May 2019", @@ -1471,7 +1526,7 @@ const walletData: WalletData[] = [ { last_updated: "July 18, 2022", name: "TokenPocket", - image_name: "tokenpocket", + image: TokenPocketImage, brand_color: "#2980fe", url: "https://www.tokenpocket.pro/", wallet_live_date: "April, 2018", @@ -1528,7 +1583,7 @@ const walletData: WalletData[] = [ { last_updated: "June 30, 2022", name: "Rainbow", - image_name: "rainbow", + image: RainbowImage, brand_color: "#001A4D", url: "https://rainbow.me", wallet_live_date: "June 2019", @@ -1574,7 +1629,7 @@ const walletData: WalletData[] = [ { last_updated: "June 30, 2022", name: "Status", - image_name: "status", + image: StatusImage, brand_color: "#4360DF", url: "https://status.im/", wallet_live_date: @@ -1645,7 +1700,7 @@ const walletData: WalletData[] = [ { last_updated: "June 30, 2022", name: "Aktionariat", - image_name: "aktionariat", + image: AktionariatImage, brand_color: "#ffffff", url: "https://www.aktionariat.com/", wallet_live_date: "28.01.2021", @@ -1691,7 +1746,7 @@ const walletData: WalletData[] = [ { last_updated: "2022-08-21", name: "Sequence", - image_name: "sequence", + image: SequenceImage, brand_color: "#000000", url: "https://www.sequence.xyz", wallet_live_date: "2021-11-04", @@ -1739,7 +1794,7 @@ const walletData: WalletData[] = [ { last_updated: "2022-08-21", name: "Trezor", - image_name: "trezor", + image: TrezorImage, brand_color: "#ffffff", url: "https://trezor.io/", wallet_live_date: "2012-12-31", @@ -1785,7 +1840,7 @@ const walletData: WalletData[] = [ { last_updated: "2022-08-21", name: "Ledger", - image_name: "ledger", + image: LedgerImage, brand_color: "#fb5e01", url: "https://www.ledger.com/", wallet_live_date: "2014-12-31", @@ -1843,7 +1898,7 @@ const walletData: WalletData[] = [ { last_updated: "2022-08-19", name: "Infinity Wallet", - image_name: "infinity_wallet", + image: InfinityWalletImage, brand_color: "#137dc7", url: "https://infinitywallet.io/", wallet_live_date: "2019-11-01", @@ -1889,7 +1944,7 @@ const walletData: WalletData[] = [ { last_updated: "2022-08-19", name: "Exodus", - image_name: "exodus", + image: ExodusImage, brand_color: "#1F2033", url: "https://exodus.com", wallet_live_date: "2015-12-31", @@ -1941,7 +1996,7 @@ const walletData: WalletData[] = [ { last_updated: "2022-08-22", name: "Rabby Wallet", - image_name: "rabbywallet", + image: RabbyWalletImage, brand_color: "#FFFFFF", url: "https://rabby.io", wallet_live_date: "2021-07-27", @@ -1989,7 +2044,7 @@ const walletData: WalletData[] = [ { last_updated: "2022-08-22", name: "Bitcoin.com Wallet", - image_name: "bitcoindotcom", + image: BitcoindotcomImage, brand_color: "#F2F7FC", url: "https://wallet.bitcoin.com", wallet_live_date: "2017-06-18", @@ -2059,7 +2114,7 @@ const walletData: WalletData[] = [ { last_updated: "2022-08-31", name: "Zerion Wallet", - image_name: "zerion", + image: ZerionImage, brand_color: "#2962EF", url: "https://zerion.io/", wallet_live_date: "2022-05-26", @@ -2105,7 +2160,7 @@ const walletData: WalletData[] = [ { last_updated: "2022-08-31", name: "Enkrypt", - image_name: "enkrypt", + image: EnkryptImage, brand_color: "#ffffff", url: "https://www.enkrypt.com", wallet_live_date: "2022-08-03", @@ -2151,7 +2206,7 @@ const walletData: WalletData[] = [ { last_updated: "2022-10-31", name: "GridPlus Lattice1", - image_name: "gridplus", + image: GridPlusImage, brand_color: "#ffffff", url: "https://gridplus.io/", wallet_live_date: "2020-10-01", @@ -2197,7 +2252,7 @@ const walletData: WalletData[] = [ { last_updated: "2023-01-24", name: "Bitkeep", - image_name: "bitkeep", + image: BitkeepImage, brand_color: "#ffffff", url: "https://www.bitkeep.com/", wallet_live_date: "2018-07-01", @@ -2243,7 +2298,7 @@ const walletData: WalletData[] = [ { last_updated: "2023-11-21", name: "BlockWallet", - image_name: "blockwallet", + image: BlockWalletImage, brand_color: "#52C200", url: "https://blockwallet.io", wallet_live_date: "2022-02-28", @@ -2295,7 +2350,7 @@ const walletData: WalletData[] = [ { last_updated: "2023-01-25", name: "OKX", - image_name: "okx", + image: OKXImage, brand_color: "#000000", url: "https://www.okx.com/web3", wallet_live_date: "2019-03-25", @@ -2343,7 +2398,7 @@ const walletData: WalletData[] = [ { last_updated: "2022-01-24", name: "OneKey", - image_name: "onekey", + image: OneKeyImage, brand_color: "#00B812", url: "https://onekey.so/", wallet_live_date: "2022-07-31", @@ -2389,7 +2444,7 @@ const walletData: WalletData[] = [ { last_updated: "2023-01-25", name: "Apex", - image_name: "apex", + image: ApexImage, brand_color: "CF9500", url: "https://apexwallet.xyz/", wallet_live_date: "2022-08-31", @@ -2435,7 +2490,7 @@ const walletData: WalletData[] = [ { last_updated: "2023-04-21", name: "Taho", - image_name: "taho", + image: TahoImage, brand_color: "#FDAE49", url: "https://taho.xyz", wallet_live_date: "2021-12-20", @@ -2486,7 +2541,7 @@ const walletData: WalletData[] = [ { last_updated: "2023-05-01", name: "ShapeShift Wallet", - image_name: "shapeshift", + image: ShapeShiftImage, brand_color: "#386FF9", url: "https://app.shapeshift.com/", wallet_live_date: "2020-07-01", @@ -2532,7 +2587,7 @@ const walletData: WalletData[] = [ { last_updated: "2023-07-19", name: "Phantom", - image_name: "phantom", + image: PhantomImage, brand_color: "#AB9FF2", url: "https://phantom.app/", wallet_live_date: "2021-05-17", @@ -2611,7 +2666,7 @@ const walletData: WalletData[] = [ { last_updated: "2023-08-29", name: "XDEFI Wallet", - image_name: "XDEFI", + image: XDEFIImage, brand_color: "#2041E0", url: "https://www.xdefi.io", wallet_live_date: "2021-10-12", diff --git a/src/data/wallets/wallet-filters.ts b/src/data/wallets/wallet-filters.ts index 8fc43ab63d1..7e8ab36f7ab 100644 --- a/src/data/wallets/wallet-filters.ts +++ b/src/data/wallets/wallet-filters.ts @@ -1,4 +1,4 @@ -import { TranslationKey } from "../../utils/translations" +import type { TranslationKey } from "@/lib/types" interface WalletFilter { title: TranslationKey diff --git a/src/global.d.ts b/src/global.d.ts index 3cc74b3903b..5952a1d7bc2 100644 --- a/src/global.d.ts +++ b/src/global.d.ts @@ -14,10 +14,6 @@ declare global { GITHUB_TOKEN: string ALGOLIA_ADMIN_KEY: string ETHERSCAN_API_KEY: string - GATSBY_ALGOLIA_APP_ID: string - GATSBY_ALGOLIA_SEARCH_KEY: string - GATSBY_GITHUB_TOKEN_READ_ONLY: string - GATSBY_FUNCTIONS_PATH: string CROWDIN_API_KEY: string } } diff --git a/src/hooks/useActiveHash.ts b/src/hooks/useActiveHash.ts index 026ee777d62..290b3d80127 100644 --- a/src/hooks/useActiveHash.ts +++ b/src/hooks/useActiveHash.ts @@ -1,4 +1,4 @@ -import { useState, useEffect } from "react" +import { useEffect, useState } from "react" /** * A hook to determine which section of the page is currently in the viewport. @@ -25,7 +25,8 @@ export const useActiveHash = ( ) itemIds?.forEach((id) => { - const element = document.getElementById(id) + // Remove # from id. EX: #element-id -> element-id + const element = document.getElementById(id.replace("#", "")) if (element !== null) { observer.observe(element) } diff --git a/src/hooks/useCentralizedExchanges.ts b/src/hooks/useCentralizedExchanges.ts new file mode 100644 index 00000000000..cb61f04979c --- /dev/null +++ b/src/hooks/useCentralizedExchanges.ts @@ -0,0 +1,349 @@ +import { useState } from "react" +import { shuffle } from "lodash" +import { useRouter } from "next/router" +import { useTranslation } from "next-i18next" + +// TODO: Remove unused? +// import argent from "@/public/wallets/argent.png" +// import binanceus from "@/public/exchanges/binance.png" +// import imtoken from "@/public/wallets/imtoken.png" +// import mycrypto from "@/public/wallets/mycrypto.png" +// import myetherwallet from "@/public/wallets/myetherwallet.png" +// import squarelink from "@/public/wallets/squarelink.png" +// import trust from "@/public/wallets/trust.png" +import type { ImageProps } from "@/components/Image" + +import { trackCustomEvent } from "@/lib/utils/matomo" + +import exchangeData from "@/data/exchangesByCountry" + +import binance from "@/public/exchanges/binance.png" +import bitbuy from "@/public/exchanges/bitbuy.png" +import bitfinex from "@/public/exchanges/bitfinex.png" +import bitflyer from "@/public/exchanges/bitflyer.png" +import bitkub from "@/public/exchanges/bitkub.png" +import bitso from "@/public/exchanges/bitso.png" +import bittrex from "@/public/exchanges/bittrex.png" +import bitvavo from "@/public/exchanges/bitvavo.png" +import bybit from "@/public/exchanges/bybit.png" +import coinbase from "@/public/exchanges/coinbase.png" +import coinmama from "@/public/exchanges/coinmama.png" +import coinspot from "@/public/exchanges/coinspot.png" +import cryptocom from "@/public/exchanges/crypto.com.png" +import easycrypto from "@/public/exchanges/easycrypto.png" +import gateio from "@/public/exchanges/gateio.png" +import gemini from "@/public/exchanges/gemini.png" +import huobiglobal from "@/public/exchanges/huobiglobal.png" +import itezcom from "@/public/exchanges/itezcom.png" +import korbit from "@/public/exchanges/korbit.png" +import kraken from "@/public/exchanges/kraken.png" +import kucoin from "@/public/exchanges/kucoin.png" +import moonpay from "@/public/exchanges/moonpay.png" +import mtpelerin from "@/public/exchanges/mtpelerin.png" +import okx from "@/public/exchanges/okx.png" +import rain from "@/public/exchanges/rain.png" +import shakepay from "@/public/exchanges/shakepay.png" +import wazirx from "@/public/exchanges/wazirx.png" + +type ExchangeKey = + | "binance" + | "binanceus" + | "bitbuy" + | "bitfinex" + | "bitflyer" + | "bitkub" + | "bitso" + | "bittrex" + | "bitvavo" + | "bybit" + | "coinbase" + | "coinmama" + | "coinspot" + | "cryptocom" + | "easycrypto" + | "gateio" + | "gemini" + | "huobiglobal" + | "itezcom" + | "kraken" + | "kucoin" + | "mtpelerin" + | "moonpay" + | "okx" + | "rain" + | "shakepay" + | "wazirx" + | "korbit" + +type ExchangeDetail = { + name: string + url: string + image: ImageProps["src"] + usaExceptions: string[] +} + +type ExchangeDetails = Record + +type Country = keyof typeof exchangeData + +type ExchangeData = Record + +type ExchangeByCountryOption = { + value: string + label: string + exchanges: string[] +} + +type FilteredData = { + title: string + description?: string + link: string + image: ImageProps["src"] + alt: string +} + +const UNITED_STATES = "United States of America (USA)" + +const exchanges: ExchangeDetails = { + binance: { + name: "Binance", + url: "https://www.binance.com/", + image: binance, + usaExceptions: [], + }, + binanceus: { + name: "Binance US", + url: "https://www.binance.us/", + image: binance, + usaExceptions: ["HI", "ID", "NY", "TX", "VT"], + }, + bitbuy: { + name: "Bitbuy", + url: "https://bitbuy.ca/", + image: bitbuy, + usaExceptions: [], + }, + bitfinex: { + name: "Bitfinex", + url: "https://www.bitfinex.com/", + image: bitfinex, + usaExceptions: [], + }, + bitflyer: { + name: "bitFlyer", + url: "https://bitflyer.com/", + image: bitflyer, + usaExceptions: ["NV", "WV"], + }, + bitkub: { + name: "Bitkub", + url: "https://www.bitkub.com/", + image: bitkub, + usaExceptions: [], + }, + bitso: { + name: "Bitso", + url: "https://bitso.com/", + image: bitso, + usaExceptions: [], + }, + bittrex: { + name: "Bittrex", + url: "https://global.bittrex.com/", + image: bittrex, + usaExceptions: ["CT", "HI", "NY", "NH", "TX", "VT", "VA"], + }, + bitvavo: { + name: "Bitvavo", + url: "https://bitvavo.com/en/ethereum", + image: bitvavo, + usaExceptions: [], + }, + bybit: { + name: "Bybit", + url: "https://www.bybit.com/", + image: bybit, + usaExceptions: [], + }, + coinbase: { + name: "Coinbase", + url: "https://www.coinbase.com/", + image: coinbase, + usaExceptions: ["HI"], + }, + coinmama: { + name: "Coinmama", + url: "https://www.coinmama.com/", + image: coinmama, + usaExceptions: ["CT", "FL", "IA", "NY"], + }, + coinspot: { + name: "CoinSpot", + url: "https://www.coinspot.com.au/", + image: coinspot, + usaExceptions: [], + }, + cryptocom: { + name: "Crypto.com", + url: "https://crypto.com/exchange/", + image: cryptocom, + usaExceptions: ["NY"], + }, + easycrypto: { + name: "Easy Crypto", + url: "https://easycrypto.com/", + image: easycrypto, + usaExceptions: [], + }, + gateio: { + name: "Gate.io", + url: "https://www.gate.io/", + image: gateio, + usaExceptions: [], + }, + huobiglobal: { + name: "Huobi Global", + url: "https://huobi.com/", + image: huobiglobal, + usaExceptions: [], + }, + itezcom: { + name: "Itez", + url: "https://itez.com/", + image: itezcom, + usaExceptions: [], + }, + kraken: { + name: "Kraken", + url: "https://www.kraken.com/", + image: kraken, + usaExceptions: ["NY, WA"], + }, + kucoin: { + name: "KuCoin", + url: "https://www.kucoin.com/", + image: kucoin, + usaExceptions: [], + }, + moonpay: { + name: "MoonPay", + url: "https://www.moonpay.com/", + image: moonpay, + usaExceptions: ["VI"], + }, + mtpelerin: { + name: "Mt Pelerin", + url: "https://www.mtpelerin.com/", + image: mtpelerin, + usaExceptions: [], + }, + okx: { + name: "OKX", + url: "https://www.okx.com/", + image: okx, + usaExceptions: [], + }, + gemini: { + name: "Gemini", + url: "https://gemini.com/", + image: gemini, + usaExceptions: ["HI"], + }, + rain: { + name: "Rain", + url: "https://rain.bh", + image: rain, + usaExceptions: [], + }, + shakepay: { + name: "Shakepay", + url: "https://shakepay.com", + image: shakepay, + usaExceptions: [], + }, + wazirx: { + name: "WazirX", + url: "https://wazirx.com/", + image: wazirx, + usaExceptions: [], + }, + korbit: { + name: "Korbit", + url: "https://korbit.co.kr", + image: korbit, + usaExceptions: [], + }, +} + +export const useCentralizedExchanges = () => { + const { locale } = useRouter() + const { t } = useTranslation("page-get-eth") + const [selectedCountry, setSelectedCountry] = useState() + + const placeholderString = t("page-get-eth-exchanges-search") + + // Add `value` & `label` for Select component, sort alphabetically + const selectOptions: ExchangeByCountryOption[] = Object.entries(exchangeData as ExchangeData) + .map(([country, exchanges]) => ({ value: country, label: country, exchanges })) + .sort((a, b) => a.value.localeCompare(b.value)) + + const handleSelectChange = (selectedOption: ExchangeByCountryOption): void => { + trackCustomEvent({ + eventCategory: `Country input`, + eventAction: `Selected`, + eventName: selectedOption.value, + }) + setSelectedCountry(selectedOption) + } + + const exchangesArray = Object.keys(exchanges) as ExchangeKey[] + + const formatList = (values: string[]): string => new Intl.ListFormat(locale, { + style: 'long', + type: 'conjunction', + }).format(values) + + // Construct arrays for CardList + let filteredExchanges: FilteredData[] = [] + + const hasSelectedCountry = !!selectedCountry?.value + if (hasSelectedCountry) { + // Filter to exchanges that serve selected Country + filteredExchanges = shuffle( + exchangesArray + .filter( + (exchange) => selectedCountry?.exchanges.includes(exchange) + ) + // Format array for + .map((exchange) => { + // Add state exceptions if Country is USA + let description: string | undefined + // TODO: Set up for i18n support; currently all country names in English: + if (selectedCountry.value === UNITED_STATES) { + const { usaExceptions } = exchanges[exchange] + if (usaExceptions.length > 0) { + description = `${t("page-get-eth-exchanges-except")} ${formatList(usaExceptions)}` + } + } + return { + title: exchanges[exchange].name, + description, + link: exchanges[exchange].url, + image: exchanges[exchange].image, + alt: "", // TODO: Add alt text for exchange image + } + }) + ) + } + + const hasExchangeResults = filteredExchanges.length > 0 + + return { + selectOptions, + handleSelectChange, + placeholderString, + hasSelectedCountry, + hasExchangeResults, + filteredExchanges, + } +} diff --git a/src/hooks/useClientSideGitHubContributors.ts b/src/hooks/useClientSideGitHubContributors.ts new file mode 100644 index 00000000000..095a6dd7c32 --- /dev/null +++ b/src/hooks/useClientSideGitHubContributors.ts @@ -0,0 +1,71 @@ +import { join } from "path" + +import { useEffect, useState } from "react" + +import type { Author, FileContributorsState } from "@/lib/types" + +import { GITHUB_COMMITS_URL, OLD_CONTENT_DIR } from "@/lib/constants" + +export const gitHubAuthHeaders = { + headers: new Headers({ + // About personal access tokens https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token#about-personal-access-tokens + Authorization: "Token " + process.env.NEXT_PUBLIC_GITHUB_TOKEN_READ_ONLY, + }), +} + +const fetchGitHubContributors = async ( + relativePath: string, +): Promise => { + const url = new URL(GITHUB_COMMITS_URL) + // TODO: OLD_CONTENT_DIR -> CONTENT_DIR for production + const filePath = join(OLD_CONTENT_DIR, relativePath, "index.md") + url.searchParams.set("path", filePath) + + try { + const response = await fetch(url, gitHubAuthHeaders) + if (!response.ok) throw new Error(response.statusText) + const commits = await response.json() + const authorSet = new Set() + commits + .filter(({ author }) => author) + .forEach(({ author, commit }) => { + const entry: Author = { + name: commit.author.name, + email: commit.author.email, + avatarUrl: author.avatar_url, + user: { + login: author.login, + url: author.html_url, + }, + } + // Unique authors only + authorSet.add(JSON.stringify(entry)) + }) + const authors = Array.from(authorSet).map( + JSON.parse as (entry: string) => Author + ) + return { loading: false, data: authors } + } catch (error: unknown) { + if (error instanceof Error) { + console.error(filePath, error.message) + } + return { loading: false, error } + } +} +/** + * Client-side hook to fetch GitHub contributors for a given file + * @param relativePath Relative path of the file being queried + * @returns `state` comprise of { loading, data, error } where + * data is an array of Author objects if successful + */ +export const useClientSideGitHubContributors = ( + relativePath: string +): FileContributorsState => { + const [state, setState] = useState({ loading: true }) + useEffect(() => { + ; (async () => { + setState(await fetchGitHubContributors(relativePath)) + })() + }, [relativePath]) + return state +} diff --git a/src/hooks/useClientSideGitHubLastEdit.ts b/src/hooks/useClientSideGitHubLastEdit.ts new file mode 100644 index 00000000000..f1c3490a168 --- /dev/null +++ b/src/hooks/useClientSideGitHubLastEdit.ts @@ -0,0 +1,58 @@ +import { join } from "path" + +import { useEffect, useState } from "react" +import { useRouter } from "next/router" + +import type { Lang, LastUpdatedState } from "@/lib/types" + +import { + DEFAULT_LOCALE, + GITHUB_COMMITS_URL, + OLD_CONTENT_DIR, +} from "@/lib/constants" + +import { gitHubAuthHeaders } from "@/hooks/useClientSideGitHubContributors" + +const fetchGitHubLastEdit = async ( + relativePath: string, + locale?: Lang +): Promise => { + const url = new URL(GITHUB_COMMITS_URL) + // TODO: OLD_CONTENT_DIR -> CONTENT_DIR for production + const localePath = + locale && locale !== DEFAULT_LOCALE + ? join("translations", locale, relativePath) + : relativePath + const filePath = join(OLD_CONTENT_DIR, localePath, "index.md") + url.searchParams.set("path", filePath) + + try { + const response = await fetch(url, gitHubAuthHeaders) + if (!response.ok) throw new Error(response.statusText) + const lastCommit = (await response.json())[0] + const lastEdit = lastCommit.commit.author.date + return { loading: false, data: lastEdit } + } catch (error: unknown) { + if (error instanceof Error) { + console.error(filePath, error.message) + } + return { loading: false, error } + } +} +/** + * Client-side hook to fetch date of last commit through GitHub + * @param relativePath Relative path of the file being queried + * @returns `state` comprise of data with loading state, where data is last edit string + */ +export const useClientSideGitHubLastEdit = ( + relativePath: string +): LastUpdatedState => { + const [state, setState] = useState({ loading: true }) + const { locale } = useRouter() + useEffect(() => { + ;(async () => { + setState(await fetchGitHubLastEdit(relativePath, locale as Lang)) + })() + }, [relativePath, locale]) + return state +} diff --git a/src/hooks/useEthPrice.tsx b/src/hooks/useEthPrice.tsx index e6710e76649..4bd3990bc3e 100644 --- a/src/hooks/useEthPrice.tsx +++ b/src/hooks/useEthPrice.tsx @@ -1,15 +1,13 @@ -import axios from "axios" -import { useState, useEffect } from "react" -import { getData } from "../utils/cache" +import { useEffect, useState } from "react" export const useEthPrice = (): number => { const [ethPrice, setEthPrice] = useState(0) useEffect(() => { ;(async () => { try { - const data = await getData<{ ethereum: { usd: number } }>( + const data: { ethereum: { usd: number } } = await fetch( "https://api.coingecko.com/api/v3/simple/price?ids=ethereum&vs_currencies=usd" - ) + ).then((res) => res.json()) const { ethereum: { usd }, } = data diff --git a/src/hooks/useEventCallback.ts b/src/hooks/useEventCallback.ts new file mode 100644 index 00000000000..2788e7c7902 --- /dev/null +++ b/src/hooks/useEventCallback.ts @@ -0,0 +1,23 @@ +import { useCallback, useRef } from "react" + +import { useIsomorphicLayoutEffect } from "./useIsomorphicLayoutEffect" + +/** + * Custom callback hook from `useHook-ts` that ensures that an event + * handler is not called while rendering. + * + * @source https://github.com/juliencrn/usehooks-ts/blob/master/packages/usehooks-ts/src/useEventCallback/useEventCallback.ts + */ +export function useEventCallback( + fn: (...args: Args) => R +) { + const ref = useRef(() => { + throw new Error("Cannot call an event handler while rendering.") + }) + + useIsomorphicLayoutEffect(() => { + ref.current = fn + }, [fn]) + + return useCallback((...args: Args) => ref.current(...args), [ref]) +} diff --git a/src/hooks/useEventListener.ts b/src/hooks/useEventListener.ts new file mode 100644 index 00000000000..04ce95a2072 --- /dev/null +++ b/src/hooks/useEventListener.ts @@ -0,0 +1,87 @@ +import { RefObject, useEffect, useRef } from "react" + +import { useIsomorphicLayoutEffect } from "./useIsomorphicLayoutEffect" + +// MediaQueryList Event based useEventListener interface +function useEventListener( + eventName: K, + handler: (event: MediaQueryListEventMap[K]) => void, + element: RefObject, + options?: boolean | AddEventListenerOptions +): void + +// Window Event based useEventListener interface +function useEventListener( + eventName: K, + handler: (event: WindowEventMap[K]) => void, + element?: undefined, + options?: boolean | AddEventListenerOptions +): void + +// Element Event based useEventListener interface +function useEventListener< + K extends keyof HTMLElementEventMap, + T extends HTMLElement = HTMLDivElement +>( + eventName: K, + handler: (event: HTMLElementEventMap[K]) => void, + element: RefObject, + options?: boolean | AddEventListenerOptions +): void + +// Document Event based useEventListener interface +function useEventListener( + eventName: K, + handler: (event: DocumentEventMap[K]) => void, + element: RefObject, + options?: boolean | AddEventListenerOptions +): void + +/** + * A robust event-handling hook from `useHook-ts` + * + * @source https://usehooks-ts.com/react-hook/use-event-listener + */ +function useEventListener< + KW extends keyof WindowEventMap, + KH extends keyof HTMLElementEventMap, + KM extends keyof MediaQueryListEventMap, + T extends HTMLElement | MediaQueryList | void = void +>( + eventName: KW | KH | KM, + handler: ( + event: + | WindowEventMap[KW] + | HTMLElementEventMap[KH] + | MediaQueryListEventMap[KM] + | Event + ) => void, + element?: RefObject, + options?: boolean | AddEventListenerOptions +) { + // Create a ref that stores handler + const savedHandler = useRef(handler) + + useIsomorphicLayoutEffect(() => { + savedHandler.current = handler + }, [handler]) + + useEffect(() => { + // Define the listening target + const targetElement: T | Window = element?.current ?? window + + if (!(targetElement && targetElement.addEventListener)) return + + // Create event listener that calls handler function stored in ref + const listener: typeof handler = (event) => savedHandler.current(event) + + targetElement.addEventListener(eventName, listener, options) + + // Remove event listener on cleanup + return () => { + targetElement.removeEventListener(eventName, listener, options) + } + }, [eventName, element, options]) +} + +export { useEventListener } diff --git a/src/hooks/useFetchStat.ts b/src/hooks/useFetchStat.ts deleted file mode 100644 index ddb559bc653..00000000000 --- a/src/hooks/useFetchStat.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { useEffect, useState } from "react" - -import { getData } from "../utils/cache" -import { defaultLanguage } from "../utils/languages" -import { getLocaleForNumberFormat } from "../utils/translations" - -interface IStat { - timestamp: number - value: number -} - -export interface IFetchStat { - data: Array - value?: IStat - formattedValue: string - hasError: boolean -} - -const defaultLocale = getLocaleForNumberFormat(defaultLanguage) - -export const defaultFormatter = (value: number, locale = defaultLocale) => { - return new Intl.NumberFormat(locale, { - notation: "compact", - minimumSignificantDigits: 3, - maximumSignificantDigits: 4, - }).format(value) -} - -const useFetchStat = ( - url: string, - fn: (response: T) => Array, - format: (value: number) => string = defaultFormatter -): IFetchStat => { - const [stat, setStat] = useState({ - data: [], - formattedValue: "", - hasError: false, - }) - - useEffect(() => { - const fetchStat = async () => { - try { - const response = await getData(url) - - const data = fn(response) - - const lastValue = data[data.length - 1] - const formattedValue = format(lastValue.value) - - setStat({ - data, - value: lastValue, - formattedValue, - hasError: false, - }) - } catch (error) { - console.error(error) - - setStat({ - ...stat, - hasError: true, - }) - } - } - - fetchStat() - }, []) - - return stat -} - -export default useFetchStat diff --git a/src/hooks/useIsomorphicLayoutEffect.ts b/src/hooks/useIsomorphicLayoutEffect.ts new file mode 100644 index 00000000000..89443cf7cbd --- /dev/null +++ b/src/hooks/useIsomorphicLayoutEffect.ts @@ -0,0 +1,10 @@ +import { useEffect, useLayoutEffect } from "react" + +/** + * useHook from `useHook-ts` that determines which effect hook to use + * based on the execution environment. + * + * @source https://usehooks-ts.com/react-hook/use-isomorphic-layout-effect + */ +export const useIsomorphicLayoutEffect = + typeof window !== "undefined" ? useLayoutEffect : useEffect diff --git a/src/hooks/useLocalStorage.ts b/src/hooks/useLocalStorage.ts index 47b0298d378..b09d7973d76 100644 --- a/src/hooks/useLocalStorage.ts +++ b/src/hooks/useLocalStorage.ts @@ -1,30 +1,107 @@ -import { useEffect, useState } from "react" +import { + Dispatch, + SetStateAction, + useCallback, + useEffect, + useState, +} from "react" + +import { useEventCallback } from "./useEventCallback" +import { useEventListener } from "./useEventListener" + +// Code source: https://usehooks-ts.com/react-hook/use-local-storage + +declare global { + interface WindowEventMap { + "local-storage": CustomEvent + } +} + +type SetValue = Dispatch> + +export function useLocalStorage( + key: string, + initialValue: T +): [T, SetValue] { + // Get from local storage then + // parse stored json or return initialValue + const readValue = useCallback((): T => { + // Prevent build error "window is undefined" but keeps working + if (typeof window === "undefined") { + return initialValue + } -// This custom hook allows to read data from localStorage to initialize state -export const useLocalStorage = (key: string, initialValue: T) => { - const [storedValue, setStoredValue] = useState(initialValue) - const setValue = (value: T) => { try { - const valueToStore = - value instanceof Function ? value(storedValue) : value - setStoredValue(valueToStore) - window.localStorage.setItem(key, JSON.stringify(valueToStore)) + const item = window.localStorage.getItem(key) + return item ? (parseJSON(item) as T) : initialValue } catch (error) { - console.log(error) + console.warn(`Error reading localStorage key “${key}”:`, error) + return initialValue + } + }, [initialValue, key]) + + // State to store our value + // Pass initial value to support hydration server-client + const [storedValue, setStoredValue] = useState(initialValue) + + // Return a wrapped version of useState's setter function that ... + // ... persists the new value to localStorage. + const setValue: SetValue = useEventCallback((value) => { + // Prevent build error "window is undefined" but keeps working + if (typeof window === "undefined") { + console.warn( + `Tried setting localStorage key “${key}” even though environment is not a client` + ) } - } - useEffect(() => { try { - const item = window.localStorage.getItem(key) + // Allow value to be a function so we have the same API as useState + const newValue = value instanceof Function ? value(storedValue) : value - setStoredValue(item ? JSON.parse(item) : initialValue) - } catch (error) { - console.log(error) + // Save to local storage + window.localStorage.setItem(key, JSON.stringify(newValue)) + + // Save state + setStoredValue(newValue) - return setStoredValue(initialValue) + // We dispatch a custom event so every useLocalStorage hook are notified + window.dispatchEvent(new Event("local-storage")) + } catch (error) { + console.warn(`Error setting localStorage key “${key}”:`, error) } + }) + + useEffect(() => { + setStoredValue(readValue()) + // eslint-disable-next-line react-hooks/exhaustive-deps }, []) - return [storedValue, setValue] as const + const handleStorageChange = useCallback( + (event: StorageEvent | CustomEvent) => { + if ((event as StorageEvent)?.key && (event as StorageEvent).key !== key) { + return + } + setStoredValue(readValue()) + }, + [key, readValue] + ) + + // this only works for other documents, not the current one + useEventListener("storage", handleStorageChange) + + // this is a custom event, triggered in writeValueToLocalStorage + // See: useLocalStorage() + useEventListener("local-storage", handleStorageChange) + + return [storedValue, setValue] +} + +// A wrapper for "JSON.parse()"" to support "undefined" value +function parseJSON(value: string | null): T | undefined { + try { + return value === "undefined" ? undefined : JSON.parse(value ?? "") + } catch { + console.log("parsing error on", { value }) + return undefined + } } diff --git a/src/hooks/useLocaleDirection.ts b/src/hooks/useLocaleDirection.ts new file mode 100644 index 00000000000..3877b0939ce --- /dev/null +++ b/src/hooks/useLocaleDirection.ts @@ -0,0 +1,19 @@ +import { useEffect } from "react" +import { useRouter } from "next/router" + +import { Lang } from "@/lib/types" + +import { isLangRightToLeft } from "@/lib/utils/translations" + +/** + * Custom hook that sets the DOM direction based on the locale, + * responding to changes in the locale without requiring refresh. + */ +export const useLocaleDirection = (): void => { + const { locale } = useRouter() + + useEffect(() => { + const dir = isLangRightToLeft(locale as Lang) ? "rtl" : "ltr" + document.documentElement.setAttribute("dir", dir) + }, [locale]) +} diff --git a/src/hooks/useRtlFlip.ts b/src/hooks/useRtlFlip.ts new file mode 100644 index 00000000000..d0e16ff2551 --- /dev/null +++ b/src/hooks/useRtlFlip.ts @@ -0,0 +1,17 @@ +import { useRouter } from "next/router" + +import type { Lang } from "@/lib/types" + +import { isLangRightToLeft } from "@/lib/utils/translations" + +/** + * Checks locale text direction and conditionally applies a scaleX(-1) for RTL locales + * Applied to elements that should be visually flipped for RTL languages, ie: directional arrows + * Usage: const { flipForRtl } = useRtlFlip(); transform={flipForRtl} + * @returns { flipForRtl: "scaleX(-1)" | undefined } + */ +export const useRtlFlip = (): { flipForRtl: string | undefined } => { + const { locale } = useRouter() + const isRtl = isLangRightToLeft(locale as Lang) + return { flipForRtl: isRtl ? "scaleX(-1)" : undefined } +} \ No newline at end of file diff --git a/src/hooks/useStakingConsiderations.ts b/src/hooks/useStakingConsiderations.ts new file mode 100644 index 00000000000..cb14b452542 --- /dev/null +++ b/src/hooks/useStakingConsiderations.ts @@ -0,0 +1,433 @@ +import { useState } from "react" +import { useTranslation } from "next-i18next" +import { chakra } from "@chakra-ui/react" + +import type { StakingPage } from "@/lib/types" + +import { List as ButtonDropdownList } from "@/components/ButtonDropdown" +import { + AuditedIcon, + BattleTestedIcon, + BugBountyIcon, + EconomicalIcon, + LiquidityTokenIcon, + MultiClientIcon, + OpenSourceStakingIcon, + PermissionlessIcon, + SelfCustodyIcon, + TrustlessIcon, +} from "@/components/icons/staking" +import { IProps as StakingConsiderationsProps } from "@/components/Staking/StakingConsiderations" + +import { MatomoEventOptions } from "@/lib/utils/matomo" + +type DataType = { + title: string + description: string + valid: string + caution: string + warning: string + Svg: any + matomo: MatomoEventOptions +} + +export const useStakingConsiderations = ({ + page, +}: StakingConsiderationsProps) => { + const [activeIndex, setActiveIndex] = useState(0) + const { t } = useTranslation("page-staking") + + const data: { [key in StakingPage]: DataType[] } = { + solo: [ + { + title: t("page-staking-considerations-solo-1-title"), + description: t("page-staking-considerations-solo-1-description"), + valid: t("page-staking-considerations-solo-1-title"), + caution: "", + warning: t("page-staking-considerations-solo-1-warning"), + Svg: OpenSourceStakingIcon, + matomo: { + eventCategory: `StakingConsiderations`, + eventAction: `Clicked`, + eventName: "clicked solo open source", + }, + }, + { + title: t("page-staking-considerations-solo-2-title"), + description: t("page-staking-considerations-solo-2-description"), + valid: t("page-staking-considerations-solo-2-title"), + caution: "", + warning: t("page-staking-considerations-solo-2-warning"), + Svg: AuditedIcon, + matomo: { + eventCategory: `StakingConsiderations`, + eventAction: `Clicked`, + eventName: "clicked solo audited", + }, + }, + { + title: t("page-staking-considerations-solo-3-title"), + description: t("page-staking-considerations-solo-3-description"), + valid: t("page-staking-considerations-solo-3-valid"), + caution: t("page-staking-considerations-solo-3-caution"), + warning: t("page-staking-considerations-solo-2-warning"), + Svg: BugBountyIcon, + matomo: { + eventCategory: `StakingConsiderations`, + eventAction: `Clicked`, + eventName: "clicked solo bug bounty", + }, + }, + { + title: t("page-staking-considerations-solo-4-title"), + description: t("page-staking-considerations-solo-4-description"), + valid: t("page-staking-considerations-solo-4-valid"), + caution: t("page-staking-considerations-solo-4-caution"), + warning: t("page-staking-considerations-solo-4-warning"), + Svg: BattleTestedIcon, + matomo: { + eventCategory: `StakingConsiderations`, + eventAction: `Clicked`, + eventName: "clicked solo battle tested", + }, + }, + { + title: t("page-staking-considerations-solo-5-title"), + description: t("page-staking-considerations-solo-5-description"), + valid: t("page-staking-considerations-solo-5-title"), + caution: "", + warning: t("page-staking-considerations-solo-5-warning"), + Svg: TrustlessIcon, + matomo: { + eventCategory: `StakingConsiderations`, + eventAction: `Clicked`, + eventName: "clicked solo trustless", + }, + }, + { + title: t("page-staking-considerations-solo-6-title"), + description: t("page-staking-considerations-solo-6-description"), + valid: t("page-staking-considerations-solo-6-valid"), + caution: "", + warning: t("page-staking-considerations-solo-6-warning"), + Svg: PermissionlessIcon, + matomo: { + eventCategory: `StakingConsiderations`, + eventAction: `Clicked`, + eventName: "clicked solo permissionless", + }, + }, + { + title: t("page-staking-considerations-solo-7-title"), + description: t("page-staking-considerations-solo-7-description"), + valid: t("page-staking-considerations-solo-7-valid"), + caution: "", + warning: t("page-staking-considerations-solo-7-warning"), + Svg: MultiClientIcon, + matomo: { + eventCategory: `StakingConsiderations`, + eventAction: `Clicked`, + eventName: "clicked solo multi-client", + }, + }, + { + title: t("page-staking-considerations-solo-8-title"), + description: t("page-staking-considerations-solo-8-description"), + valid: t("page-staking-considerations-solo-8-title"), + caution: "", + warning: t("page-staking-considerations-solo-8-warning"), + Svg: SelfCustodyIcon, + matomo: { + eventCategory: `StakingConsiderations`, + eventAction: `Clicked`, + eventName: "clicked solo self custody", + }, + }, + { + title: t("page-staking-considerations-solo-9-title"), + description: t("page-staking-considerations-solo-9-description"), + valid: t("page-staking-considerations-solo-9-valid"), + caution: "", + warning: t("page-staking-considerations-solo-9-warning"), + Svg: EconomicalIcon, + matomo: { + eventCategory: `StakingConsiderations`, + eventAction: `Clicked`, + eventName: "clicked solo economical", + }, + }, + ], + saas: [ + { + title: t("page-staking-considerations-solo-1-title"), + description: t("page-staking-considerations-solo-1-description"), + valid: t("page-staking-considerations-solo-1-title"), + caution: "", + warning: t("page-staking-considerations-solo-1-warning"), + Svg: OpenSourceStakingIcon, + matomo: { + eventCategory: `StakingConsiderations`, + eventAction: `Clicked`, + eventName: "clicked saas open source", + }, + }, + { + title: t("page-staking-considerations-solo-2-title"), + description: t("page-staking-considerations-solo-2-description"), + valid: t("page-staking-considerations-solo-2-title"), + caution: "", + warning: t("page-staking-considerations-solo-2-warning"), + Svg: AuditedIcon, + matomo: { + eventCategory: `StakingConsiderations`, + eventAction: `Clicked`, + eventName: "clicked saas audited", + }, + }, + { + title: t("page-staking-considerations-solo-3-title"), + description: t("page-staking-considerations-solo-3-description"), + valid: t("page-staking-considerations-solo-3-valid"), + caution: t("page-staking-considerations-solo-3-caution"), + warning: t("page-staking-considerations-solo-2-warning"), + Svg: BugBountyIcon, + matomo: { + eventCategory: `StakingConsiderations`, + eventAction: `Clicked`, + eventName: "clicked saas bug-bounty", + }, + }, + { + title: t("page-staking-considerations-solo-4-title"), + description: t("page-staking-considerations-saas-4-description"), + valid: t("page-staking-considerations-solo-4-valid"), + caution: t("page-staking-considerations-solo-4-caution"), + warning: t("page-staking-considerations-solo-4-warning"), + Svg: BattleTestedIcon, + matomo: { + eventCategory: `StakingConsiderations`, + eventAction: `Clicked`, + eventName: "clicked saas battle tested", + }, + }, + { + title: t("page-staking-considerations-solo-6-title"), + description: t("page-staking-considerations-saas-6-description"), + valid: t("page-staking-considerations-saas-6-valid"), + caution: "", + warning: t("page-staking-considerations-saas-6-warning"), + Svg: PermissionlessIcon, + matomo: { + eventCategory: `StakingConsiderations`, + eventAction: `Clicked`, + eventName: "clicked saas permissionless", + }, + }, + { + title: t("page-staking-considerations-saas-7-title"), + description: t("page-staking-considerations-saas-7-description"), + valid: t("page-staking-considerations-saas-7-valid"), + caution: t("page-staking-considerations-saas-7-caution"), + warning: t("page-staking-considerations-saas-7-warning"), + Svg: MultiClientIcon, + matomo: { + eventCategory: `StakingConsiderations`, + eventAction: `Clicked`, + eventName: "clicked saas diverse consensus clients", + }, + }, + { + title: t("page-staking-considerations-saas-8-title"), + description: t("page-staking-considerations-saas-8-description"), + valid: t("page-staking-considerations-saas-8-valid"), + caution: t("page-staking-considerations-saas-8-caution"), + warning: t("page-staking-considerations-saas-8-warning"), + Svg: MultiClientIcon, + matomo: { + eventCategory: `StakingConsiderations`, + eventAction: `Clicked`, + eventName: "clicked saas diverse execution clients", + }, + }, + { + title: t("page-staking-considerations-solo-8-title"), + description: t("page-staking-considerations-solo-8-description"), + valid: t("page-staking-considerations-solo-8-title"), + caution: "", + warning: t("page-staking-considerations-solo-8-warning"), + Svg: SelfCustodyIcon, + matomo: { + eventCategory: `StakingConsiderations`, + eventAction: `Clicked`, + eventName: "clicked saas self custody", + }, + }, + ], + pools: [ + { + title: t("page-staking-considerations-solo-1-title"), + description: t("page-staking-considerations-solo-1-description"), + valid: t("page-staking-considerations-solo-1-title"), + caution: "", + warning: t("page-staking-considerations-solo-1-warning"), + Svg: OpenSourceStakingIcon, + matomo: { + eventCategory: `StakingConsiderations`, + eventAction: `Clicked`, + eventName: "clicked pooled open source", + }, + }, + { + title: t("page-staking-considerations-solo-2-title"), + description: t("page-staking-considerations-solo-2-description"), + valid: t("page-staking-considerations-solo-2-title"), + caution: "", + warning: t("page-staking-considerations-solo-2-warning"), + Svg: AuditedIcon, + matomo: { + eventCategory: `StakingConsiderations`, + eventAction: `Clicked`, + eventName: "clicked pooled audited", + }, + }, + { + title: t("page-staking-considerations-solo-3-title"), + description: t("page-staking-considerations-solo-3-description"), + valid: t("page-staking-considerations-solo-3-valid"), + caution: t("page-staking-considerations-solo-3-caution"), + warning: t("page-staking-considerations-solo-2-warning"), + Svg: BugBountyIcon, + matomo: { + eventCategory: `StakingConsiderations`, + eventAction: `Clicked`, + eventName: "clicked pooled bug bounty", + }, + }, + { + title: t("page-staking-considerations-solo-4-title"), + description: t("page-staking-considerations-saas-4-description"), + valid: t("page-staking-considerations-solo-4-valid"), + caution: t("page-staking-considerations-solo-4-caution"), + warning: t("page-staking-considerations-solo-4-warning"), + Svg: BattleTestedIcon, + matomo: { + eventCategory: `StakingConsiderations`, + eventAction: `Clicked`, + eventName: "clicked pooled battle tested", + }, + }, + { + title: t("page-staking-hierarchy-solo-pill-4"), + description: t("page-staking-considerations-pools-5-description"), + valid: t("page-staking-hierarchy-solo-pill-4"), + caution: "", + warning: t("page-staking-considerations-solo-5-warning"), + Svg: TrustlessIcon, + matomo: { + eventCategory: `StakingConsiderations`, + eventAction: `Clicked`, + eventName: "clicked pooled trustless", + }, + }, + { + title: t("page-staking-considerations-pools-6-title"), + description: t("page-staking-considerations-pools-6-description"), + valid: t("page-staking-considerations-saas-6-valid"), + caution: "", + warning: t("page-staking-considerations-saas-6-warning"), + Svg: PermissionlessIcon, + matomo: { + eventCategory: `StakingConsiderations`, + eventAction: `Clicked`, + eventName: "clicked pooled permissionless nodes", + }, + }, + { + title: t("page-staking-considerations-saas-7-title"), + description: t("page-staking-considerations-pools-7-description"), + valid: t("page-staking-considerations-saas-7-valid"), + caution: t("page-staking-considerations-saas-7-caution"), + warning: t("page-staking-considerations-saas-7-warning"), + Svg: MultiClientIcon, + matomo: { + eventCategory: `StakingConsiderations`, + eventAction: `Clicked`, + eventName: "clicked pooled diverse execution clients", + }, + }, + { + title: t("page-staking-considerations-saas-8-title"), + description: t("page-staking-considerations-pools-9-description"), + valid: t("page-staking-considerations-saas-8-valid"), + caution: t("page-staking-considerations-saas-8-caution"), + warning: t("page-staking-considerations-saas-8-warning"), + Svg: MultiClientIcon, + matomo: { + eventCategory: `StakingConsiderations`, + eventAction: `Clicked`, + eventName: "clicked pooled diverse consensus clients", + }, + }, + { + title: t("page-staking-considerations-pools-8-title"), + description: t("page-staking-considerations-pools-8-description"), + valid: t("page-staking-considerations-pools-8-valid"), + caution: "", + warning: t("page-staking-considerations-pools-8-warning"), + Svg: LiquidityTokenIcon, + matomo: { + eventCategory: `StakingConsiderations`, + eventAction: `Clicked`, + eventName: "clicked pooled liquidity token", + }, + }, + ], + } + + const pageData = data[page] + const { title, description, valid, caution, warning, Svg } = + pageData[activeIndex] + + const dropdownLinks: ButtonDropdownList = { + text: "Staking Considerations", + ariaLabel: "Dropdown menu for staking considerations", + items: pageData.map(({ title, matomo }) => ({ + text: title, + callback: setActiveIndex, + matomo: matomo, + })), + } + + const handleSelection = (idx: number): void => { + setActiveIndex(idx) + } + + const indicatorSvgStyle = { width: 20, height: "auto" } + const StyledSvg = !!Svg + ? chakra(Svg, { + baseStyle: { + path: { + fill: "text", + }, + }, + }) + : chakra("div", { + baseStyle: { + display: "none", + }, + }) + + return { + title, + description, + valid, + caution, + warning, + dropdownLinks, + handleSelection, + indicatorSvgStyle, + StyledSvg, + pageData, + activeIndex, + } +} diff --git a/src/hooks/useSurvey.ts b/src/hooks/useSurvey.ts index 03c34e4a019..86e5105bfae 100644 --- a/src/hooks/useSurvey.ts +++ b/src/hooks/useSurvey.ts @@ -1,14 +1,13 @@ import { useMemo } from "react" +import { useRouter } from "next/router" -const location = typeof window !== "undefined" ? window.location.href : "" +import { SITE_URL } from "@/lib/constants" -export type Survey = { - url: string - prompt: string -} - -export const useSurvey = (feedbackSubmitted: boolean) => - useMemo((): string | null => { +export const useSurvey = (feedbackSubmitted: boolean) => { + const { asPath } = useRouter() + const url = SITE_URL + asPath + return useMemo((): string | null => { if (!feedbackSubmitted) return null - return `https://iwokuhuz.paperform.co//?url=${location}` - }, [feedbackSubmitted, location]) + return `https://iwokuhuz.paperform.co//?url=${url}` + }, [feedbackSubmitted, url]) +} diff --git a/src/interfaces.ts b/src/interfaces.ts deleted file mode 100644 index 21fc0b1b851..00000000000 --- a/src/interfaces.ts +++ /dev/null @@ -1,3 +0,0 @@ -export interface Messages { - [key: string]: string -} diff --git a/src/intl/am/page-stablecoins.json b/src/intl/am/page-stablecoins.json index 44bbb86331c..cb1c3939a70 100644 --- a/src/intl/am/page-stablecoins.json +++ b/src/intl/am/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "የገንዘብ ኖት", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "የከበሩ ብረቶች", "page-stablecoins-table-error": "ስቴብልኮይኖችን መጫን አልተቻለም። ገጹን በድጋሚ እንድ አዲስ ይሞክሩ።", - "page-stablecoins-table-loading": "የስቲብልኮይንን መረጃ በመጫን ላይ...", "page-stablecoins-title": "ስቴብልኮይኖች", "page-stablecoins-top-coins": "ከፍተኛ የገበያ ካፒታል ያላቸው ስቴብልኮይኖች", "page-stablecoins-top-coins-intro": "የገበያ ካፒታል ማለት", diff --git a/src/intl/ar/page-bug-bounty.json b/src/intl/ar/page-bug-bounty.json index 86858e3b7d4..ff579294695 100644 --- a/src/intl/ar/page-bug-bounty.json +++ b/src/intl/ar/page-bug-bounty.json @@ -121,7 +121,7 @@ "bug-bounty-faq-q4-content-1": "We can donate your reward to an established charitable organization of your choice.", "bug-bounty-faq-q5-title": "I reported an issue / vulnerability but have not received a response!", "bug-bounty-faq-q5-contentPreview": "Please allow a few days for someone to respond to your submission.", - "bug-bounty-faq-q5-content-1": "We aim to respond to submissions as fast as possible. Feel free to email us at bounty@ethereum.orgif you have not received a response within a day or two.", + "bug-bounty-faq-q5-content-1": "We aim to respond to submissions as fast as possible. Feel free to email us at bounty@ethereum.org if you have not received a response within a day or two.", "bug-bounty-faq-q6-title": "I want to be anonymous / I do not want my name on the leader board.", "bug-bounty-faq-q6-contentPreview": "You can do this, but it might make you ineligble for rewards.", "bug-bounty-faq-q6-content-1": "Submitting anonymously or with a pseudonym is OK, but will make you ineligible for ETH/DAI rewards. To be eligible for ETH/DAI rewards, we require your real name and a proof of your identity. Donating your bounty to a charity doesn’t require your identity.", diff --git a/src/intl/ar/page-stablecoins.json b/src/intl/ar/page-stablecoins.json index fe3aee97851..029d335311e 100644 --- a/src/intl/ar/page-stablecoins.json +++ b/src/intl/ar/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "العملة الورقية", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "المعادن الثمينة", "page-stablecoins-table-error": "تعذر تحميل العملات المستقرة. حاول تحديث الصفحة.", - "page-stablecoins-table-loading": "جاري تحميل بيانات العملات المستقرة...", "page-stablecoins-title": "العملات المستقرة", "page-stablecoins-top-coins": "أعلى الإسطبلات عن طريق رسملة السوق", "page-stablecoins-top-coins-intro": "رسملة السوق هي", diff --git a/src/intl/az/page-stablecoins.json b/src/intl/az/page-stablecoins.json index e991aa20e29..3ee1a15d388 100644 --- a/src/intl/az/page-stablecoins.json +++ b/src/intl/az/page-stablecoins.json @@ -128,7 +128,6 @@ "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ı:", diff --git a/src/intl/bg/page-stablecoins.json b/src/intl/bg/page-stablecoins.json index 09879b7e70f..2f5037e11d2 100644 --- a/src/intl/bg/page-stablecoins.json +++ b/src/intl/bg/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Фиат/традиционна", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Ценни метали", "page-stablecoins-table-error": "Не успяхте да вземете стейбълкойни. Опитайте отново да отворите страницата.", - "page-stablecoins-table-loading": "Зареждане на данни за стейбълкойн...", "page-stablecoins-title": "Стейбълкойни", "page-stablecoins-top-coins": "Най-популярни стейбълкойни по пазарна капитализация", "page-stablecoins-top-coins-intro": "Пазарната капитализация е", diff --git a/src/intl/bn/page-stablecoins.json b/src/intl/bn/page-stablecoins.json index 72ba5f2ce99..e8ca59e78e0 100644 --- a/src/intl/bn/page-stablecoins.json +++ b/src/intl/bn/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Fiat", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "মূল্যবান ধাতু", "page-stablecoins-table-error": "স্টেবলকয়েন লোড করা যায়নি। পৃষ্ঠাটি রিফ্রেশ করার চেষ্টা করুন।", - "page-stablecoins-table-loading": "স্টেবলকয়েন ডেটা লোড হচ্ছে...", "page-stablecoins-title": "স্টেবলকয়েন", "page-stablecoins-top-coins": "বাজার মূলধন দ্বারা শীর্ষ স্টেবলকয়েন", "page-stablecoins-top-coins-intro": "বাজার মূলধন হলো", diff --git a/src/intl/ca/page-stablecoins.json b/src/intl/ca/page-stablecoins.json index e06dec8c2c8..c1f78282c1d 100644 --- a/src/intl/ca/page-stablecoins.json +++ b/src/intl/ca/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Fiat", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Metalls preciosos", "page-stablecoins-table-error": "No es poden carregar les monedes estables. Proveu d'actualitzar la pàgina.", - "page-stablecoins-table-loading": "S'estan carregant dades de la moneda estable...", "page-stablecoins-title": "Monedes estables", "page-stablecoins-top-coins": "Millors monedes estables per capitalització de mercat", "page-stablecoins-top-coins-intro": "La capitalització del mercat és", diff --git a/src/intl/cs/page-stablecoins.json b/src/intl/cs/page-stablecoins.json index b9fdfb58b63..ac43cfc82fe 100644 --- a/src/intl/cs/page-stablecoins.json +++ b/src/intl/cs/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Fiat", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Drahé kovy", "page-stablecoins-table-error": "Nepodařilo se načíst stablecoiny. Zkuste obnovit stránku.", - "page-stablecoins-table-loading": "Načítání dat stablecoinu...", "page-stablecoins-title": "Stabilní kryptoměny (stablecoins)", "page-stablecoins-top-coins": "Největší stablecoiny podle tržní kapitalizace", "page-stablecoins-top-coins-intro": "Tržní kapitalizace je", diff --git a/src/intl/de/page-stablecoins.json b/src/intl/de/page-stablecoins.json index f9490afcb62..f70eee88d8d 100644 --- a/src/intl/de/page-stablecoins.json +++ b/src/intl/de/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Fiat", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Edelmetalle", "page-stablecoins-table-error": "Stablecoins konnten nicht geladen werden. Versuchen Sie, die Seite zu aktualisieren.", - "page-stablecoins-table-loading": "Stablecoin-Daten werden geladen...", "page-stablecoins-title": "Stablecoins", "page-stablecoins-top-coins": "Top-Stablecoins nach Marktkapitalisierung", "page-stablecoins-top-coins-intro": "Marktkapitalisierung ist", diff --git a/src/intl/el/page-stablecoins.json b/src/intl/el/page-stablecoins.json index bbd6b2a127e..5abb71e6e7c 100644 --- a/src/intl/el/page-stablecoins.json +++ b/src/intl/el/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Fiat", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Πολύτιμα μέταλλα", "page-stablecoins-table-error": "Δεν ήταν δυνατή η φόρτωση των κρυπτονομισμάτων σταθερής αξίας. Δοκιμάστε να ανανεώσετε τη σελίδα.", - "page-stablecoins-table-loading": "Φόρτωση δεδομένων κρυπτονομισμάτων σταθερής αξίας...", "page-stablecoins-title": "Κρυπτονομίσματα σταθερής αξίας", "page-stablecoins-top-coins": "Κορυφαία κρυπτονομίσματα σταθερής αξίας ανά κεφαλαιοποίηση αγοράς", "page-stablecoins-top-coins-intro": "Η κεφαλαιοποίηση αγοράς είναι", diff --git a/src/intl/en/common.json b/src/intl/en/common.json index feec76a7989..2776770d91c 100644 --- a/src/intl/en/common.json +++ b/src/intl/en/common.json @@ -15,6 +15,7 @@ "aria-toggle-menu-button": "Toggle menu button", "beacon-chain": "Beacon Chain", "bridges": "Blockchain bridges", + "bug-bounty": "Bug bounty", "clear": "Clear", "close": "Close", "community": "Community", diff --git a/src/intl/en/learn-quizzes.json b/src/intl/en/learn-quizzes.json index ffef2fd65ad..c62ecbb2a97 100644 --- a/src/intl/en/learn-quizzes.json +++ b/src/intl/en/learn-quizzes.json @@ -10,6 +10,7 @@ "explanation": "Explanation", "next-question": "Next question", "next-quiz": "Next quiz", + "question-number": "Question number {{number}}:", "page-assets-merge": "The Merge", "passed": "You passed the quiz!", "questions": "Questions", diff --git a/src/intl/en/page-bug-bounty.json b/src/intl/en/page-bug-bounty.json index ade02b22c1f..2a465f2a7e2 100644 --- a/src/intl/en/page-bug-bounty.json +++ b/src/intl/en/page-bug-bounty.json @@ -121,7 +121,7 @@ "bug-bounty-faq-q4-content-1": "We can donate your reward to an established charitable organization of your choice.", "bug-bounty-faq-q5-title": "I reported an issue / vulnerability but have not received a response!", "bug-bounty-faq-q5-contentPreview": "Please allow a few days for someone to respond to your submission.", - "bug-bounty-faq-q5-content-1": "We aim to respond to submissions as fast as possible. Feel free to email us at bounty@ethereum.orgif you have not received a response within a day or two.", + "bug-bounty-faq-q5-content-1": "We aim to respond to submissions as fast as possible. Feel free to email us at bounty@ethereum.org if you have not received a response within a day or two.", "bug-bounty-faq-q6-title": "I want to be anonymous / I do not want my name on the leader board.", "bug-bounty-faq-q6-contentPreview": "You can do this, but it might make you ineligble for rewards.", "bug-bounty-faq-q6-content-1": "Submitting anonymously or with a pseudonym is OK, but will make you ineligible for ETH/DAI rewards. To be eligible for ETH/DAI rewards, we require your real name and a proof of your identity. Donating your bounty to a charity doesn’t require your identity.", diff --git a/src/intl/en/page-layer-2.json b/src/intl/en/page-layer-2.json index 00547d91568..877639c24e3 100644 --- a/src/intl/en/page-layer-2.json +++ b/src/intl/en/page-layer-2.json @@ -2,6 +2,7 @@ "layer-2-arbitrum-note": "Fraud proofs only for whitelisted users, whitelist not open yet", "layer-2-boba-note": "State validation in development", "layer-2-optimism-note": "Fault proofs in development", + "layer-2-metadata-description": "Introduction page to layer 2", "layer-2-hero-title": "Layer 2", "layer-2-hero-header": "Ethereum for everyone", "layer-2-hero-subtitle": "Scaling Ethereum for mass adoption.", diff --git a/src/intl/en/page-stablecoins.json b/src/intl/en/page-stablecoins.json index ed2aaffea07..9287933aaeb 100644 --- a/src/intl/en/page-stablecoins.json +++ b/src/intl/en/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Fiat", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Precious metals", "page-stablecoins-table-error": "Couldn't load stablecoins. Try refreshing the page.", - "page-stablecoins-table-loading": "Loading stablecoin data...", "page-stablecoins-title": "Stablecoins", "page-stablecoins-top-coins": "Top stablecoins by market capitalisation", "page-stablecoins-top-coins-intro": "Market capitalisation is", diff --git a/src/intl/es/page-stablecoins.json b/src/intl/es/page-stablecoins.json index 368289408cd..b319c104e18 100644 --- a/src/intl/es/page-stablecoins.json +++ b/src/intl/es/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Dinero fiduciario", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Metales preciosos", "page-stablecoins-table-error": "No se pudieron cargar las monedas estables. Intente actualizar la página.", - "page-stablecoins-table-loading": "Cargando datos de monedas estables...", "page-stablecoins-title": "Monedas estables", "page-stablecoins-top-coins": "Mejores monedas estables por capitalización de mercado", "page-stablecoins-top-coins-intro": "La capitalización del mercado es", diff --git a/src/intl/fa/page-stablecoins.json b/src/intl/fa/page-stablecoins.json index 9996779637c..4a2efbe42da 100644 --- a/src/intl/fa/page-stablecoins.json +++ b/src/intl/fa/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "فیات", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "فلزات گران‌بها", "page-stablecoins-table-error": "استیبل کوین‌ها بارگیری نشدند. صفحه را تازه‌سازی کنید.", - "page-stablecoins-table-loading": "در حال بارگیری داده‌های استیبل کوین‌ها...", "page-stablecoins-title": "استیبل کوین‌ها", "page-stablecoins-top-coins": "برترین استیبل کوین‌ها بر حسب حجم سرمایه بازار", "page-stablecoins-top-coins-intro": "حجم سرمایه بازار", diff --git a/src/intl/fi/page-stablecoins.json b/src/intl/fi/page-stablecoins.json index 770ea093918..288a0dfd1ab 100644 --- a/src/intl/fi/page-stablecoins.json +++ b/src/intl/fi/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Fiat, perinteinen valuutta", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Jalometallit", "page-stablecoins-table-error": "Ei voitu ladata vakaita kryptoja. Yritä päivittää sivu.", - "page-stablecoins-table-loading": "Lataus käynnissä...", "page-stablecoins-title": "Vakaat kryptovaluutat", "page-stablecoins-top-coins": "Vakaat kryptovaluutat TOP 7, markkina-arvon mukaan", "page-stablecoins-top-coins-intro": "Markkina-arvo on", diff --git a/src/intl/fil/page-stablecoins.json b/src/intl/fil/page-stablecoins.json index 0f873129723..2c38ae954a5 100644 --- a/src/intl/fil/page-stablecoins.json +++ b/src/intl/fil/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Fiat", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Precious metals", "page-stablecoins-table-error": "Hindi ma-load ang mga stablecoin. Subukang i-refresh ang page.", - "page-stablecoins-table-loading": "Nilo-load ang data ng stablecoin...", "page-stablecoins-title": "Mga Stablecoin", "page-stablecoins-top-coins": "Mga nangungunang stablecoin ayon sa market capitalization", "page-stablecoins-top-coins-intro": "Ang market capitalization ay", diff --git a/src/intl/fr/page-stablecoins.json b/src/intl/fr/page-stablecoins.json index 291b10c59b8..727e3e0282a 100644 --- a/src/intl/fr/page-stablecoins.json +++ b/src/intl/fr/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Monnaie fiduciaire", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Métaux précieux", "page-stablecoins-table-error": "Impossible de charger les stablecoins. Essayez de rafraîchir la page.", - "page-stablecoins-table-loading": "Chargement des données de stablecoin...", "page-stablecoins-title": "Stablecoins", "page-stablecoins-top-coins": "Top des stablecoins par capitalisation boursière", "page-stablecoins-top-coins-intro": "La capitalisation boursière est", diff --git a/src/intl/hi/page-bug-bounty.json b/src/intl/hi/page-bug-bounty.json index fc4ed6794b3..39681614907 100644 --- a/src/intl/hi/page-bug-bounty.json +++ b/src/intl/hi/page-bug-bounty.json @@ -121,7 +121,7 @@ "bug-bounty-faq-q4-content-1": "We can donate your reward to an established charitable organization of your choice.", "bug-bounty-faq-q5-title": "I reported an issue / vulnerability but have not received a response!", "bug-bounty-faq-q5-contentPreview": "Please allow a few days for someone to respond to your submission.", - "bug-bounty-faq-q5-content-1": "We aim to respond to submissions as fast as possible. Feel free to email us at bounty@ethereum.orgif you have not received a response within a day or two.", + "bug-bounty-faq-q5-content-1": "We aim to respond to submissions as fast as possible. Feel free to email us at bounty@ethereum.org if you have not received a response within a day or two.", "bug-bounty-faq-q6-title": "I want to be anonymous / I do not want my name on the leader board.", "bug-bounty-faq-q6-contentPreview": "You can do this, but it might make you ineligble for rewards.", "bug-bounty-faq-q6-content-1": "Submitting anonymously or with a pseudonym is OK, but will make you ineligible for ETH/DAI rewards. To be eligible for ETH/DAI rewards, we require your real name and a proof of your identity. Donating your bounty to a charity doesn’t require your identity.", diff --git a/src/intl/hi/page-stablecoins.json b/src/intl/hi/page-stablecoins.json index 2d15be0b452..94034bdfc00 100644 --- a/src/intl/hi/page-stablecoins.json +++ b/src/intl/hi/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "फिएट", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "कीमती धातुएं", "page-stablecoins-table-error": "स्थिर कॉइन लोड नहीं किए जा सके। पृष्ठ को ताज़ा करने का प्रयास करें।", - "page-stablecoins-table-loading": "स्थिर कॉइन डेटा लोड हो रहा है...", "page-stablecoins-title": "स्थिर कॉइन", "page-stablecoins-top-coins": "बाजार पूंजीकरण के अनुसार शीर्ष स्थिर कॉइन", "page-stablecoins-top-coins-intro": "बाजार पूंजीकरण है", diff --git a/src/intl/hr/page-stablecoins.json b/src/intl/hr/page-stablecoins.json index 49f5732f208..18aae6e6213 100644 --- a/src/intl/hr/page-stablecoins.json +++ b/src/intl/hr/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Fiat", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Dragocjeni metali", "page-stablecoins-table-error": "Nije moguće učitati stabilne kovanice. Pokušajte osvježiti stranicu.", - "page-stablecoins-table-loading": "Učitavanje podataka stabilnih kovanica...", "page-stablecoins-title": "Stabilne kovanice", "page-stablecoins-top-coins": "Najbolje stabilne kovanice prema tržišnoj kapitalizaciji", "page-stablecoins-top-coins-intro": "Tržišna kapitalizacija je", diff --git a/src/intl/hu/page-stablecoins.json b/src/intl/hu/page-stablecoins.json index 184548303f9..3b286578909 100644 --- a/src/intl/hu/page-stablecoins.json +++ b/src/intl/hu/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Fiat", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Nemesfémek", "page-stablecoins-table-error": "Nem lehet betölteni a stabil érméket. Próbálja meg frissíteni az oldalt.", - "page-stablecoins-table-loading": "Stabilérmeadatok betöltése...", "page-stablecoins-title": "Stabil érmék", "page-stablecoins-top-coins": "Legfontosabb stabil érmék piaci kapitalizáció alapján", "page-stablecoins-top-coins-intro": "A piaci kapitalizáció", diff --git a/src/intl/hy-am/page-stablecoins.json b/src/intl/hy-am/page-stablecoins.json index a606a28d6e4..28f04ab5754 100644 --- a/src/intl/hy-am/page-stablecoins.json +++ b/src/intl/hy-am/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Ֆիատային", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Թանկարժեք մետաղներ", "page-stablecoins-table-error": "Չստացվեծ բեռնել ստեյբլքոիները: Փորձեք թարմացնել էջը:", - "page-stablecoins-table-loading": "Ստեյբլքոինի տվյալների բեռնում...", "page-stablecoins-title": "Ստեյբլքոիներ", "page-stablecoins-top-coins": "Ստեյբլքոիները ըստ շուկայական ծավալի", "page-stablecoins-top-coins-intro": "Շուկայական ծավալը", diff --git a/src/intl/id/page-stablecoins.json b/src/intl/id/page-stablecoins.json index 1549c5db662..762e00e1461 100644 --- a/src/intl/id/page-stablecoins.json +++ b/src/intl/id/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Fiat", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Logam mulia", "page-stablecoins-table-error": "Tidak dapat memuat stablecoin. Coba muat ulang halaman.", - "page-stablecoins-table-loading": "Memuat data stablecoin...", "page-stablecoins-title": "Stablecoin", "page-stablecoins-top-coins": "Stablecoin teratas berdasarkan kapitalisasi pasar", "page-stablecoins-top-coins-intro": "Kapitalisasi pasar adalah", diff --git a/src/intl/ig/page-stablecoins.json b/src/intl/ig/page-stablecoins.json index e51891b9997..ec34bf7d392 100644 --- a/src/intl/ig/page-stablecoins.json +++ b/src/intl/ig/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Fịyatị", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Ọla dị oke ọnụ", "page-stablecoins-table-error": "E nweghị ike itinye stebụlkọịn. Gbanwegodu ihu akwụkwọ ahụ.", - "page-stablecoins-table-loading": "Mweputa data stebụlkọịn...", "page-stablecoins-title": "Stebụlkọịn", "page-stablecoins-top-coins": "Stebụlkọịn nke sitere n'irite uru ahịa", "page-stablecoins-top-coins-intro": "Irite uru ahịa bụ", diff --git a/src/intl/it/page-stablecoins.json b/src/intl/it/page-stablecoins.json index a553976e286..f3ec5e69734 100644 --- a/src/intl/it/page-stablecoins.json +++ b/src/intl/it/page-stablecoins.json @@ -128,7 +128,6 @@ "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 le Stablecoin. Prova ad aggiornare la pagina.", - "page-stablecoins-table-loading": "Caricamento dei dati delle Stablecoin...", "page-stablecoins-title": "Stablecoin", "page-stablecoins-top-coins": "Stablecoin più popolari per capitalizzazioni di mercato", "page-stablecoins-top-coins-intro": "La capitalizzazione di mercato è", diff --git a/src/intl/ja/page-stablecoins.json b/src/intl/ja/page-stablecoins.json index 6fa37bf03e2..dab0107e5b3 100644 --- a/src/intl/ja/page-stablecoins.json +++ b/src/intl/ja/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "通貨", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "貴金属", "page-stablecoins-table-error": "ステーブルコインをロードできませんでした。ページを更新してみてください。", - "page-stablecoins-table-loading": "ステーブルコインのデータを読み込んでいます...", "page-stablecoins-title": "ステーブルコイン", "page-stablecoins-top-coins": "時価総額別の上位ステーブルコイン", "page-stablecoins-top-coins-intro": "時価総額は", diff --git a/src/intl/km/page-stablecoins.json b/src/intl/km/page-stablecoins.json index 48468c19c78..ce3adf26207 100644 --- a/src/intl/km/page-stablecoins.json +++ b/src/intl/km/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "ក្រុមហ៊ុន Fiat", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "លោហធាតុដ៏មានតម្លៃ", "page-stablecoins-table-error": "មិនអាចផ្ទុកកាក់ស្ថិរភាពបានទេ។ ព្យាយាមធ្វើឱ្យទំព័រឡើងវិញ។", - "page-stablecoins-table-loading": "កំពុងផ្ទុកទិន្នន័យស្ថិរភាពកាក់...", "page-stablecoins-title": "Stablecoins", "page-stablecoins-top-coins": "កាក់ស្ថិរភាពកំពូលដោយមូលធនប័ត្រទីផ្សារ", "page-stablecoins-top-coins-intro": "មូលធនប័ត្រទីផ្សារគឺ", diff --git a/src/intl/kn/page-stablecoins.json b/src/intl/kn/page-stablecoins.json index de7203424f2..60218cb0ec2 100644 --- a/src/intl/kn/page-stablecoins.json +++ b/src/intl/kn/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "ಫಿಯೆಟ್", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "ಅಮೂಲ್ಯ ಲೋಹಗಳು", "page-stablecoins-table-error": "ಸ್ಟೇಬಲ್‍ಕಾಯಿನ್‍‍ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಪುಟವನ್ನು ತಾಜಾ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ.", - "page-stablecoins-table-loading": "ಸ್ಟೇಬಲ್‍ಕಾಯಿನ್‍‍ ಡೇಟಾ ಲೋಡ್ ಆಗುತ್ತಿದೆ...", "page-stablecoins-title": "ಸ್ಟೇಬಲ್‍ಕಾಯಿನ್‍‍ಗಳು", "page-stablecoins-top-coins": "ಮಾರುಕಟ್ಟೆ ಬಂಡವಾಳೀಕರಣದ ಪ್ರಕಾರ ಅಗ್ರ ಸ್ಟೇಬಲ್‍ಕಾಯಿನ್‍‍ಗಳು", "page-stablecoins-top-coins-intro": "ಮಾರುಕಟ್ಟೆ ಬಂಡವಾಳೀಕರಣ", diff --git a/src/intl/ko/page-stablecoins.json b/src/intl/ko/page-stablecoins.json index 790e981054a..cc665bb68ad 100644 --- a/src/intl/ko/page-stablecoins.json +++ b/src/intl/ko/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "명목화폐", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "귀금속", "page-stablecoins-table-error": "스테이블 코인을 불러오지 못했습니다. 페이지를 새로 고쳐보세요.", - "page-stablecoins-table-loading": "스테이블 코인 데이터를 로드하는 중...", "page-stablecoins-title": "스테이블 코인", "page-stablecoins-top-coins": "시가총액에 따른 상위 스테이블 코인", "page-stablecoins-top-coins-intro": "시가총액이란", diff --git a/src/intl/ml/page-stablecoins.json b/src/intl/ml/page-stablecoins.json index 84aab90ea0e..9c0a50ff97f 100644 --- a/src/intl/ml/page-stablecoins.json +++ b/src/intl/ml/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "ഫിയറ്റ്", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "വിലയേറിയ ലോഹങ്ങൾ", "page-stablecoins-table-error": "സ്റ്റേബിൾകോയിനുകൾ ലോഡുചെയ്യാനായില്ല. പേജ് പുതുക്കാൻ ശ്രമിക്കുക.", - "page-stablecoins-table-loading": "സ്റ്റേബിൾകോയിൻ ഡാറ്റ ലോഡുചെയ്യുന്നു...", "page-stablecoins-title": "സ്റ്റേബിള്‍കോയിനുകള്‍", "page-stablecoins-top-coins": "മാര്ക്കറ്റ് ക്യാപിറ്റലൈസേഷന് അനുസരിച്ച് മികച്ച സ്റ്റേബിള് കോയിനുകള്", "page-stablecoins-top-coins-intro": "മാർക്കറ്റ് ക്യാപിറ്റലൈസേഷൻ ആണ്", diff --git a/src/intl/mr/page-stablecoins.json b/src/intl/mr/page-stablecoins.json index ed470058d57..b0f7977ea92 100644 --- a/src/intl/mr/page-stablecoins.json +++ b/src/intl/mr/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "अधिकृत", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "मौल्यवान धातू", "page-stablecoins-table-error": "स्टेबलकॉइन लोड करू शकलो नाही. पृष्ठ रीफ्रेश करण्याचा प्रयत्न करा.", - "page-stablecoins-table-loading": "स्टेबलकॉइन डेटा लोड करत आहे...", "page-stablecoins-title": "स्टेबलकोइन्स", "page-stablecoins-top-coins": "बाजार भांडवलानुसार शीर्ष स्टेबलकॉइन्स", "page-stablecoins-top-coins-intro": "बाजार भांडवल आहे", diff --git a/src/intl/ms/page-stablecoins.json b/src/intl/ms/page-stablecoins.json index 0f80c145fa5..1874d0cc4a4 100644 --- a/src/intl/ms/page-stablecoins.json +++ b/src/intl/ms/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Fiat", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Logam berharga", "page-stablecoins-table-error": "Tidak dapat memuatkan syiling stabil. Cuba segar semula halaman.", - "page-stablecoins-table-loading": "Memuatkan data syiling stabil...", "page-stablecoins-title": "Syiling Stabil", "page-stablecoins-top-coins": "Syiling stabil terbesar berdasarkan permodalan pasaran", "page-stablecoins-top-coins-intro": "Permodalan pasaran ialah", diff --git a/src/intl/nl/page-stablecoins.json b/src/intl/nl/page-stablecoins.json index 4a3382807a9..96a8ed8b769 100644 --- a/src/intl/nl/page-stablecoins.json +++ b/src/intl/nl/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Fiat", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Edele metalen", "page-stablecoins-table-error": "Kan stablecoins niet laden. Probeer de pagina te vernieuwen.", - "page-stablecoins-table-loading": "Stablecoindata wordt geladen...", "page-stablecoins-title": "Stablecoins", "page-stablecoins-top-coins": "Beste stablecoins per marktkapitalisatie", "page-stablecoins-top-coins-intro": "Marktkapitalisatie is", diff --git a/src/intl/pcm/page-stablecoins.json b/src/intl/pcm/page-stablecoins.json index ef1292a40a2..694632493fe 100644 --- a/src/intl/pcm/page-stablecoins.json +++ b/src/intl/pcm/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Fiat", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Metals wey dey preshios", "page-stablecoins-table-error": "E nor fit load stabolcoins. Try rifresh di page.", - "page-stablecoins-table-loading": "Stabolcoin data dey load...", "page-stablecoins-title": "Stabolcoins", "page-stablecoins-top-coins": "Top stabolcoins by market kapitalizashon", "page-stablecoins-top-coins-intro": "Market kapitalizashon na", diff --git a/src/intl/pl/page-stablecoins.json b/src/intl/pl/page-stablecoins.json index c9a65629bac..b0ebfd932ab 100644 --- a/src/intl/pl/page-stablecoins.json +++ b/src/intl/pl/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Waluta fiducjarna", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Metale szlachetne", "page-stablecoins-table-error": "Nie udało się wczytać stablecoinów. Spróbuj odświeżyć stronę.", - "page-stablecoins-table-loading": "Ładowanie danych stablecoina...", "page-stablecoins-title": "Stablecoiny", "page-stablecoins-top-coins": "Najlepsze stablecoiny według kapitalizacji rynkowej", "page-stablecoins-top-coins-intro": "Kapitalizacja rynkowa to", diff --git a/src/intl/pt-br/page-stablecoins.json b/src/intl/pt-br/page-stablecoins.json index e4c1d50c770..01ebae92a2c 100644 --- a/src/intl/pt-br/page-stablecoins.json +++ b/src/intl/pt-br/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Fiduciária", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Metais preciosos", "page-stablecoins-table-error": "Não foi possível carregar as stablecoins. Tente atualizar a página.", - "page-stablecoins-table-loading": "Carregando dados de stablecoins...", "page-stablecoins-title": "Stablecoins", "page-stablecoins-top-coins": "Principais stablecoins por capitalização de mercado", "page-stablecoins-top-coins-intro": "A capitalização de mercado é", diff --git a/src/intl/pt/page-stablecoins.json b/src/intl/pt/page-stablecoins.json index 8cfde72401e..ed3626b159e 100644 --- a/src/intl/pt/page-stablecoins.json +++ b/src/intl/pt/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Moeda fiduciária", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Metais preciosos", "page-stablecoins-table-error": "Não foi possível carregar as stablecoins. Tente atualizar a página.", - "page-stablecoins-table-loading": "A carregar os dados da stablecoin...", "page-stablecoins-title": "Stablecoins", "page-stablecoins-top-coins": "Principais stablecoins por capitalização de mercado", "page-stablecoins-top-coins-intro": "Capitalização de mercado", diff --git a/src/intl/ro/page-stablecoins.json b/src/intl/ro/page-stablecoins.json index c1f8588948a..001f6b6f12b 100644 --- a/src/intl/ro/page-stablecoins.json +++ b/src/intl/ro/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Fiat", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Metalele prețioase", "page-stablecoins-table-error": "Nu s-au putut încărca stablecoins. Încercați să reîncărcați pagina.", - "page-stablecoins-table-loading": "Se încarcă date pentru stablecoins...", "page-stablecoins-title": "Stablecoins", "page-stablecoins-top-coins": "Stablecoins de top conform valorificării pe piață", "page-stablecoins-top-coins-intro": "Valorificarea pe piață este", diff --git a/src/intl/ru/page-stablecoins.json b/src/intl/ru/page-stablecoins.json index 84b63681c43..9c70f6b63cf 100644 --- a/src/intl/ru/page-stablecoins.json +++ b/src/intl/ru/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Фиат", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Драгоценные металлы", "page-stablecoins-table-error": "Не удалось загрузить стабильные монеты. Попробуйте обновить страницу.", - "page-stablecoins-table-loading": "Загрузка данных о стабильных монетах...", "page-stablecoins-title": "Стабильные монеты", "page-stablecoins-top-coins": "Список стабильных монет с максимальной рыночной капитализацией", "page-stablecoins-top-coins-intro": "Рыночная капитализация - это", diff --git a/src/intl/se/page-stablecoins.json b/src/intl/se/page-stablecoins.json index 5d895651c8c..da1d5be3aec 100644 --- a/src/intl/se/page-stablecoins.json +++ b/src/intl/se/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Fiat", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Ädelmetaller", "page-stablecoins-table-error": "Det gick inte att ladda stablecoins. Prova att uppdatera sidan.", - "page-stablecoins-table-loading": "Laddar stablecoin-data ...", "page-stablecoins-title": "Stablecoins", "page-stablecoins-top-coins": "Stablecoins sorterade efter marknadsvärde", "page-stablecoins-top-coins-intro": "Marknadsvärde är", diff --git a/src/intl/sl/page-stablecoins.json b/src/intl/sl/page-stablecoins.json index ff05a7fd964..97f037f1ee6 100644 --- a/src/intl/sl/page-stablecoins.json +++ b/src/intl/sl/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Fiat", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Plemenite kovine", "page-stablecoins-table-error": "Stabilnih kovancev ni bilo mogoče naložiti. Poskusite osvežiti stran.", - "page-stablecoins-table-loading": "Nalaganje podatkov o stabilnih kovancih ...", "page-stablecoins-title": "Stabilni kovanci", "page-stablecoins-top-coins": "Vodilni stabilni kovanci po tržni kapitalizaciji", "page-stablecoins-top-coins-intro": "Tržna kapitalizacija je", diff --git a/src/intl/sr/page-stablecoins.json b/src/intl/sr/page-stablecoins.json index c7b7fc676f2..02b7683819f 100644 --- a/src/intl/sr/page-stablecoins.json +++ b/src/intl/sr/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Fiat", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Plemeniti metali", "page-stablecoins-table-error": "Nije moguće učitati stabilne novčiće. Pokušajte da osvežite stranicu.", - "page-stablecoins-table-loading": "Učitavanje podataka o stabilnim novčićima…", "page-stablecoins-title": "Stablecoins", "page-stablecoins-top-coins": "Najbolji stabilni novčići prema tržišnoj kapitalizaciji", "page-stablecoins-top-coins-intro": "Tržišna kapitalizacija je", diff --git a/src/intl/sw/page-stablecoins.json b/src/intl/sw/page-stablecoins.json index 259b5ec3708..b2ffcee7d56 100644 --- a/src/intl/sw/page-stablecoins.json +++ b/src/intl/sw/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Fiat", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Vyuma vya thamani", "page-stablecoins-table-error": "Haikuweza kupakua sarafu-imara. Anzisha ukurasa upya.", - "page-stablecoins-table-loading": "Inapakia data za sarafu-imara...", "page-stablecoins-title": "Sarafu-imara", "page-stablecoins-top-coins": "Sarafu-imara za juu katika mtaji wa soko", "page-stablecoins-top-coins-intro": "Mtaji wa soko ni", diff --git a/src/intl/tr/page-stablecoins.json b/src/intl/tr/page-stablecoins.json index 12605061a4c..99fc498dd44 100644 --- a/src/intl/tr/page-stablecoins.json +++ b/src/intl/tr/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Resmi Para", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Değerli madenler", "page-stablecoins-table-error": "Sabit paralar yüklenemedi. Sayfayı yenilemeyi deneyin.", - "page-stablecoins-table-loading": "Sabit para verileri yükleniyor...", "page-stablecoins-title": "Sabit paralar", "page-stablecoins-top-coins": "Piyasa değerine göre en iyi sabit paralar", "page-stablecoins-top-coins-intro": "Piyasa değeri", diff --git a/src/intl/uk/page-stablecoins.json b/src/intl/uk/page-stablecoins.json index 1cfb8d8623b..3909f888b8b 100644 --- a/src/intl/uk/page-stablecoins.json +++ b/src/intl/uk/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Кредитно-паперові гроші", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Дорогоцінні метали", "page-stablecoins-table-error": "Не вдалося завантажити стабільні монети. Спробуйте оновити сторінку.", - "page-stablecoins-table-loading": "Завантаження даних про стабільні монети...", "page-stablecoins-title": "Стабільні монети", "page-stablecoins-top-coins": "Найкращі стабільні монети за ринковою ціною капіталу", "page-stablecoins-top-coins-intro": "Ринкова капіталізація – це", diff --git a/src/intl/vi/page-stablecoins.json b/src/intl/vi/page-stablecoins.json index 8ef4579e8b7..0002ea09cf1 100644 --- a/src/intl/vi/page-stablecoins.json +++ b/src/intl/vi/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "Tiền pháp định", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "Kim loại quý", "page-stablecoins-table-error": "Không thể nạp stablecoin. Hãy thử làm mới trang.", - "page-stablecoins-table-loading": "Đang tải dữ liệu stablecoin...", "page-stablecoins-title": "Stablecoin", "page-stablecoins-top-coins": "Các loại stablecoin hàng đầu theo vốn hóa thị trường", "page-stablecoins-top-coins-intro": "Vốn hóa thị trường là", diff --git a/src/intl/zh-tw/page-stablecoins.json b/src/intl/zh-tw/page-stablecoins.json index 01a8b17d725..ef7abd62c16 100644 --- a/src/intl/zh-tw/page-stablecoins.json +++ b/src/intl/zh-tw/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "法定貨幣", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "貴金屬", "page-stablecoins-table-error": "無法載入穩定幣,請嘗試更新頁面。", - "page-stablecoins-table-loading": "正在載入穩定幣資料...", "page-stablecoins-title": "穩定幣", "page-stablecoins-top-coins": "依據市值之穩定幣排名", "page-stablecoins-top-coins-intro": "市值為", diff --git a/src/intl/zh/page-stablecoins.json b/src/intl/zh/page-stablecoins.json index 89e289e3087..64aed86d8d4 100644 --- a/src/intl/zh/page-stablecoins.json +++ b/src/intl/zh/page-stablecoins.json @@ -128,7 +128,6 @@ "page-stablecoins-stablecoins-table-type-fiat-backed": "法币", "page-stablecoins-stablecoins-table-type-precious-metals-backed": "贵金属", "page-stablecoins-table-error": "无法加载稳定币数据。请刷新页面。", - "page-stablecoins-table-loading": "正在加载稳定币数据...", "page-stablecoins-title": "稳定币", "page-stablecoins-top-coins": "处于领先地位的稳定币(按市值排序)", "page-stablecoins-top-coins-intro": "市值等于", diff --git a/src/layouts/Docs.tsx b/src/layouts/Docs.tsx new file mode 100644 index 00000000000..71da7a9420e --- /dev/null +++ b/src/layouts/Docs.tsx @@ -0,0 +1,287 @@ +import { useRouter } from "next/router" +import { + Badge, + Box, + Divider as ChakraDivider, + Flex, + FlexProps, + HeadingProps, + ListItem as ChakraListItem, + ListItemProps, + ListProps, + OrderedList as ChakraOrderedList, + UnorderedList as ChakraUnorderedList, + useToken, +} from "@chakra-ui/react" + +import { ChildOnlyProp } from "@/lib/types" +import type { DocsFrontmatter, MdPageContent } from "@/lib/interfaces" + +import BannerNotification from "@/components/BannerNotification" +import { ButtonLink } from "@/components/Buttons" +import CallToContribute from "@/components/CallToContribute" +import Card from "@/components/Card" +import Codeblock from "@/components/Codeblock" +import CrowdinContributors from "@/components/CrowdinContributors" +import DeveloperDocsLinks from "@/components/DeveloperDocsLinks" +import DocsNav from "@/components/DocsNav" +import Emoji from "@/components/Emoji" +import FeedbackCard from "@/components/FeedbackCard" +import GitHubContributors from "@/components/GitHubContributors" +import GlossaryTooltip from "@/components/Glossary/GlossaryTooltip" +import InfoBanner from "@/components/InfoBanner" +import Link from "@/components/Link" +import MainArticle from "@/components/MainArticle" +import { + Heading1 as MdHeading1, + Heading2 as MdHeading2, + Heading3 as MdHeading3, + Heading4 as MdHeading4, + Paragraph, +} from "@/components/MdComponents" +import RollupProductDevDoc from "@/components/RollupProductDevDoc" +import SideNav from "@/components/SideNav" +import SideNavMobile from "@/components/SideNavMobile" +import { mdxTableComponents } from "@/components/Table" +import TableOfContents from "@/components/TableOfContents" +import Translation from "@/components/Translation" +import YouTube from "@/components/YouTube" + +// Utils +import { DEFAULT_LOCALE, EDIT_CONTENT_URL } from "@/lib/constants" + +import { useClientSideGitHubLastEdit } from "@/hooks/useClientSideGitHubLastEdit" + +const Page = (props: ChildOnlyProp & Pick) => ( + +) + +const Divider = () => ( + +) + +const ContentContainer = (props: ChildOnlyProp) => ( + +) + +const baseHeadingStyle: HeadingProps = { + fontFamily: "mono", + textTransform: "uppercase", + fontWeight: "bold", + scrollMarginTop: 40, +} + +const H1 = (props: HeadingProps) => ( + +) + +const H2 = (props: HeadingProps) => ( + +) + +const baseSubHeadingStyles: HeadingProps = { + lineHeight: 1.4, + fontWeight: "semibold", +} + +const H3 = (props: HeadingProps) => ( + +) + +const H4 = (props: HeadingProps) => ( + +) + +const UnorderedList = (props: ListProps) => ( + +) +const OrderedList = (props: ListProps) => ( + +) + +const ListItem = (props: ListItemProps) => ( + +) + +// Apply styles for classes within markdown here +const Content = (props: ChildOnlyProp) => { + const mdBreakpoint = useToken("breakpoints", "md") + + return ( + + ) +} + +const BackToTop = (props: ChildOnlyProp) => ( + + + ↑ + + +) + +export const docsComponents = { + h1: H1, + h2: H2, + h3: H3, + h4: H4, + p: Paragraph, + ul: UnorderedList, + ol: OrderedList, + li: ListItem, + pre: Codeblock, + ...mdxTableComponents, + Badge, + ButtonLink, + Card, + CallToContribute, + DeveloperDocsLinks, + Divider, + Emoji, + GlossaryTooltip, + InfoBanner, + RollupProductDevDoc, + YouTube, +} + +interface DocsLayoutProps + extends Pick< + MdPageContent, + "slug" | "tocItems" | "lastUpdatedDate" | "crowdinContributors" + >, + ChildOnlyProp { + frontmatter: DocsFrontmatter +} + +export const DocsLayout = ({ + children, + frontmatter, + slug, + tocItems, + lastUpdatedDate, + crowdinContributors, +}: DocsLayoutProps) => { + const isPageIncomplete = !!frontmatter.incomplete + const { asPath: relativePath } = useRouter() + const absoluteEditPath = `${EDIT_CONTENT_URL}${relativePath}` + + const gitHubLastEdit = useClientSideGitHubLastEdit(relativePath) + const intlLastEdit = "data" in gitHubLastEdit ? gitHubLastEdit.data! : "" + const useGitHubContributors = + frontmatter.lang === DEFAULT_LOCALE || crowdinContributors.length === 0 + + return ( + + + {isPageIncomplete && ( + + + + )} + + + +

{frontmatter.title}

+ {useGitHubContributors ? ( + + ) : ( + + )} + + {children} + {isPageIncomplete && } + + + +
+ {tocItems && ( + + )} +
+
+ ) +} diff --git a/src/layouts/Roadmap.tsx b/src/layouts/Roadmap.tsx new file mode 100644 index 00000000000..1eb171d76ce --- /dev/null +++ b/src/layouts/Roadmap.tsx @@ -0,0 +1,210 @@ +import { + Box, + Center, + Flex, + Show, + SimpleGrid, + useToken, + Wrap, + WrapItem, +} from "@chakra-ui/react" + +import type { ChildOnlyProp, TranslationKey } from "@/lib/types" +import type { MdPageContent, RoadmapFrontmatter } from "@/lib/interfaces" + +import Breadcrumbs from "@/components/Breadcrumbs" +import { List as ButtonDropdownList } from "@/components/ButtonDropdown" +import { Button, ButtonLink } from "@/components/Buttons" +import FeedbackCard from "@/components/FeedbackCard" +import HubHero from "@/components/Hero/HubHero" +import { Image } from "@/components/Image" +import LeftNavBar from "@/components/LeftNavBar" +import { + ContentContainer, + MobileButton, + MobileButtonDropdown, + Page, + Title, +} from "@/components/MdComponents" +import OldText from "@/components/OldText" +import Pill from "@/components/Pill" +import RoadmapActionCard from "@/components/Roadmap/RoadmapActionCard" +import RoadmapImageContent from "@/components/Roadmap/RoadmapImageContent" +import TableOfContents from "@/components/TableOfContents" + +import RoadmapHubHeroImage from "@/public/heroes/roadmap-hub-hero.jpg" + +const CardGrid = (props: ChildOnlyProp) => ( + +) + +const HeroContainer = (props: ChildOnlyProp) => ( + +) + +const TitleCard = (props: ChildOnlyProp) => ( + +) + +// Roadmap layout components +export const roadmapComponents = { + CardGrid, + Pill, + RoadmapActionCard, + RoadmapImageContent, +} + +interface IProps + extends ChildOnlyProp, + Pick { + frontmatter: RoadmapFrontmatter +} +export const RoadmapLayout: React.FC = ({ + children, + frontmatter, + slug, + tocItems, +}) => { + // TODO: Replace with direct token implementation after UI migration is completed + const lgBp = useToken("breakpoints", "lg") + + const dropdownLinks: ButtonDropdownList = { + text: "Roadmap Options" as TranslationKey, + ariaLabel: "Roadmap options dropdown menu", + items: [ + { + text: "Roadmap home" as TranslationKey, + to: "/roadmap/", + matomo: { + eventCategory: `Roadmap dropdown`, + eventAction: `Clicked`, + eventName: "clicked roadmap home", + }, + }, + { + text: "Better security" as TranslationKey, + to: "/roadmap/security", + matomo: { + eventCategory: `Roadmap security dropdown`, + eventAction: `Clicked`, + eventName: "clicked roadmap security", + }, + }, + { + text: "Scaling" as TranslationKey, + to: "/roadmap/scaling", + matomo: { + eventCategory: `Roadmap scaling dropdown`, + eventAction: `Clicked`, + eventName: "clicked roadmap scaling home", + }, + }, + { + text: "Better user experience" as TranslationKey, + to: "/roadmap/user-experience/", + matomo: { + eventCategory: `Roadmap user experience dropdown`, + eventAction: `Clicked`, + eventName: "clicked roadmap user experience home", + }, + }, + { + text: "Future-proofing" as TranslationKey, + to: "/roadmap/future-proofing", + matomo: { + eventCategory: `Roadmap future-proofing dropdown`, + eventAction: `Clicked`, + eventName: "clicked roadmap future-proofing home", + }, + }, + ], + } + + return ( + + {slug === "/roadmap/" ? ( + + ) : ( + + + {/* TODO: Double check this slug works */} + + {frontmatter.title} + {frontmatter.description} + {frontmatter?.buttons && ( + + {frontmatter.buttons.map((button, idx) => { + if (button?.to) { + return ( + + + {button.label} + + + ) + } + return ( + + + + ) + })} + + )} + + +
+ {frontmatter.alt +
+
+ )} + + {/* TODO: Switch to `above="lg"` after completion of Chakra Migration */} + + + {children} + + + + + + + + +
+ ) +} diff --git a/src/layouts/RootLayout.tsx b/src/layouts/RootLayout.tsx new file mode 100644 index 00000000000..00c6ec18dec --- /dev/null +++ b/src/layouts/RootLayout.tsx @@ -0,0 +1,72 @@ +import { join } from "path" + +import { useRouter } from "next/router" +import { Container } from "@chakra-ui/react" + +import type { Root } from "@/lib/types" + +import FeedbackWidget from "@/components/FeedbackWidget" +import Footer from "@/components/Footer" +import Nav from "@/components/Nav" +import { SkipLink } from "@/components/SkipLink" +import TranslationBanner from "@/components/TranslationBanner" +import TranslationBannerLegal from "@/components/TranslationBannerLegal" + +import { toPosixPath } from "@/lib/utils/relativePath" + +import { DEFAULT_LOCALE } from "@/lib/constants" + +import { lightTheme as oldTheme } from "../theme" + +export const RootLayout = ({ + children, + contentIsOutdated, + contentNotTranslated, + lastDeployDate, +}: Root) => { + const { locale, asPath } = useRouter() + + const CONTRIBUTING = "/contributing" + const isUntranslatedContributingPage = + asPath.includes(CONTRIBUTING) && + !(asPath.endsWith(CONTRIBUTING) || asPath.includes("/translation-program")) + + const isLegal = + isUntranslatedContributingPage || + asPath.includes(`/cookie-policy/`) || + asPath.includes(`/privacy-policy/`) || + asPath.includes(`/terms-of-use/`) || + asPath.includes(`/style-guide/`) + + const isPageLanguageEnglish = locale === DEFAULT_LOCALE + + const shouldShowTranslationBanner = + (contentIsOutdated || (contentNotTranslated && !isPageLanguageEnglish)) && + !isLegal + const shouldShowLegalTranslationBanner = isLegal && !isPageLanguageEnglish + const originalPagePath = toPosixPath(join(DEFAULT_LOCALE, asPath)) + + return ( + + + +